summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
committerKarl Berry <karl@freefriends.org>2006-01-09 23:38:21 +0000
commit215012a8d684889983ec2c0629e1c704e6853d9c (patch)
treeebf1271bd71869069824935ae8a5678745bf8bce /Master
parent1af3d19d6dbcbf309667d9cb4aa3cdda914914a9 (diff)
trunk/Master/texmf-dist/fonts/source
git-svn-id: svn://tug.org/texlive/trunk@101 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master')
-rw-r--r--Master/texmf-dist/fonts/source/archaic/copsn10.mf1001
-rw-r--r--Master/texmf-dist/fonts/source/archaic/givbc10.mf921
-rw-r--r--Master/texmf-dist/fonts/source/archaic/gvibc10.mf354
-rw-r--r--Master/texmf-dist/fonts/source/archaic/vik10.mf38
-rw-r--r--Master/texmf-dist/fonts/source/archaic/vikglyph.mf394
-rw-r--r--Master/texmf-dist/fonts/source/archaic/viktitle.mf52
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbi3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbl3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbm.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecbx3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc.mf119
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eccc3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecci3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecdh3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecfb.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecff.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecfi.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecfs.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecit3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eclb8.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecli8.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eclo8.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/eclq8.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecltt8.mf94
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc.mf130
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecoc3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecqi8.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb.mf98
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrb3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecrm3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc.mf118
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsc3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsi3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsl3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecso3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsq8.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss.mf91
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecss3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecssdc10.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecst3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecsx3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc.mf119
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectc3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecti3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ectt3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecui3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvi3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecvt3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc.mf127
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ecxc3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exaccent.mf132
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exaccess.mf891
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exbase.mf1341
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exbraces.mf268
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/excligtb.mf263
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/excsc.mf122
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/excspl.mf247
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exidigit.mf278
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exileast.mf739
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exilig.mf275
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exiligtb.mf261
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exillett.mf571
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exilwest.mf761
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exisixts.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exitalp.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exmligtb.mf39
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/expseudo.mf94
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/expunct.mf349
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exrdigit.mf337
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exrleast.mf1130
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exrlig.mf221
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exrligtb.mf341
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exrllett.mf833
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exrlwest.mf1166
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exroman.mf78
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exromp.mf107
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exrueast.mf991
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exrulett.mf765
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exruwest.mf992
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exsign.mf233
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/exsixtst.mf85
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/extextit.mf76
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ieclb8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/iecli8.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ieclo8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/ieclq8.mf93
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/iecltt8.mf95
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbi3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbl3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbm.mf87
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcbx3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcci3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcdh.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcfb.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcff.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcfi.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcfs.mf92
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcit3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrb3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcrm3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsi3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsl3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcso3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcss3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcst3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcsx3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti.mf90
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcti3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt.mf89
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tctt3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui0500.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui0600.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui0700.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcui3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvi3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt.mf88
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt0800.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt0900.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt1000.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt1095.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt1200.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt1440.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt1728.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt2074.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt2488.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt2986.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/tcvt3583.mf6
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txaccent.mf180
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txgen.mf111
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txifract.mf141
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txisuper.mf122
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txitlod.mf292
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txpseudo.mf66
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txrfract.mf200
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txromod.mf334
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txrsuper.mf186
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txsymb.mf70
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/ec/txsymbol.mf2183
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcbx.mf10
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxi.mf70
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxsl.mf11
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxu.mf66
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fccsc.mf247
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fci.mf9
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcitt.mf25
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcr.mf9
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcsibx.mf11
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcsitt.mf13
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcsl.mf13
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcss.mf10
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcssbx.mf10
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcssi.mf13
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcsstt.mf12
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fctt.mf9
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/b-fcu.mf10
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/c-fcsstt.mf246
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcaccent.mf319
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbx9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxi9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcbxu9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccoding.mf167
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccsc9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fccscspu.mf369
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fci9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcilig.mf278
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitalic.mf58
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitligt.mf167
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitlpct.mf120
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcitt9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcmacros.mf133
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcpunct.mf795
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcr9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcrlig.mf288
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcroligt.mf188
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcroman.mf68
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcrompct.mf137
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcscligt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsfligt.mf184
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsibx9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsitt9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsl9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcss9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssbx9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcssi9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcsstt9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fctt9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcttligt.mf28
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu11.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu14.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu20.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu25.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/fcu9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/itala.mf164
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italbcd.mf226
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/itale.mf310
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italfgh.mf231
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italij.mf183
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italklm.mf154
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italn.mf187
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italo.mf300
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italpqr.mf96
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italst.mf255
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italuvw.mf253
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/italxyz.mf178
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowera.mf222
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowerbcd.mf336
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowere.mf372
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowerfgh.mf325
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowerij.mf260
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowerklm.mf210
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowern.mf179
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowero.mf342
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowerpqr.mf133
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf451
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/loweruvw.mf278
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/lowerxyz.mf236
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/uppera.mf200
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/upperbcd.mf284
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/uppere.mf383
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/upperfgh.mf258
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/upperij.mf148
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/upperklm.mf198
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/uppern.mf251
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/uppero.mf354
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/upperpqr.mf130
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf271
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/upperuvw.mf295
-rw-r--r--Master/texmf-dist/fonts/source/jknappen/fc/upperxyz.mf214
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/fikparm.mf291
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lcyrbeg.mf188
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lcyrdefs.mf1403
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/ldcsc.mf215
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/ldroman.mf193
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/ldtextit.mf175
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/ldtitle.mf92
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lecsc.mf129
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/leroman.mf85
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/letextit.mf94
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgcspl.mf67
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgcsplff.mf192
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgcyracc.mf480
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgcyri.mf50
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgcyrl.mf48
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgcyrsp.mf165
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf459
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgcyru.mf62
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgengsym.mf586
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgidigit.mf286
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgilig.mf59
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgiligff.mf242
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgitalp.mf86
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgocyrac.mf779
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgpunct.mf288
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgrdigit.mf344
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgrlig.mf77
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgrligff.mf184
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgromp.mf97
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgrusi.mf838
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgrusl.mf1414
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgrusu.mf1374
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf529
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2coml.mf796
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2comu.mf875
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2loi.mf932
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf1449
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf1385
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf192
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2slvl.mf1053
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2slvu.mf1091
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2slxi.mf189
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2slxl.mf843
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2slxu.mf867
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2upi.mf765
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2upl.mf1226
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf1197
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lkligtbl.mf138
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/llcligtb.mf120
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lliligtb.mf142
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/llmligtb.mf85
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/llrligtb.mf228
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/llvligtb.mf244
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lwnligs.mf190
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lxpseudo.mf105
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lycyracc.mf317
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/lypseudo.mf76
-rw-r--r--Master/texmf-dist/fonts/source/lh/base/nodraw.mf77
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/ilhcsc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/ilhtt8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/illhss8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/illhssb8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/illhssi8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr17.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr9.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrbx10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl17.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl9.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhccsc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcodes.mf87
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcsl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcsl9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcslc9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhcti10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhliker.mf1197
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhsltl10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/lhtl10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/llhss8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/llhssb8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-lcy/llhssi8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnss8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnssb8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnssi8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/iwncsc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/iwntt8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/lwnss8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/lwnssb8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/lwnssi8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr17.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr9.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrbx10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl17.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl9.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnccsc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncodes.mf103
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncr5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncr6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncr7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncsl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncsl9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncslc9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wncti10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnliker.mf1543
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wnsltl10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-ot2/wntl10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/ilalb8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/ilali8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/ilalo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/ilalq8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/ilaltt8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labbx10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labmo10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labmo17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labmo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labmo9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labmr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labmr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labmr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labmr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labso10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labso17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labso8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labso9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labsr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labsr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labsr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labsr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labtl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/labto10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/lacodes.mf158
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/lalb8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/lali8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laliker.mf1616
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/lalo8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/lalq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laltt8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laocc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laorm10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laorm5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laorm6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laorm7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laorm8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laorm9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laosl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laosl5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laosl6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laosl7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laosl8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laosl9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laoti10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/laqi8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/lasq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2a/lassdc10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/ilblb8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/ilbli8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/ilblo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/ilblq8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/ilbltt8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbbx10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbtl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbbto10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbcodes.mf158
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lblb8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbli8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbliker.mf1359
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lblo8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lblq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbltt8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbocc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lborm10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lborm5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lborm6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lborm7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lborm8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lborm9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lboti10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbqi8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbsq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2b/lbssdc10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/ilclb8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/ilcli8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/ilclo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/ilclq8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/ilcltt8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbbx10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbtl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcbto10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lccodes.mf158
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lclb8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcli8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcliker.mf1243
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lclo8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lclq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcltt8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcocc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcoti10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcqi8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcsq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2c/lcssdc10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ildlb8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ildli8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ildlo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ildlq8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ildltt8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbbx10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbtl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldbto10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldcodes.mf163
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldlb8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldli8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldliker.mf1572
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldlo8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldlq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldltt8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldocc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldoti10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldqi8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldsq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-t2d/ldssdc10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/irxlb8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/irxli8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/irxlo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/irxlq8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/irxltt8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbbx10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbso10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbso17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbso8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbso9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr17.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbtl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxbto10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxcodes.mf215
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxlb8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxli8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxliker.mf2304
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxlo8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxlq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxltt8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxocc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxorm10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxorm5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxorm6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxorm7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxorm8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxorm9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxosl10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxosl5.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxosl6.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxosl7.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxosl8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxosl9.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxoti10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxqi8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxsq8.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/lh-x2/rxssdc10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgbersta.mf869
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgberstb.mf1034
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgberstc.mf1105
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgcacci.mf951
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgcaccl.mf1128
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgcaccu.mf1240
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgcmodi.mf104
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgcmodl.mf160
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgcmodu.mf167
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgcvaci.mf861
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgcvacl.mf1318
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgcvacu.mf1395
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgunici.mf506
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgunicl.mf949
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lgunicu.mf881
-rw-r--r--Master/texmf-dist/fonts/source/lh/nont2/lhberest.mf73
-rw-r--r--Master/texmf-dist/fonts/source/lh/specific/lgcrusl.mf262
-rw-r--r--Master/texmf-dist/fonts/source/lh/specific/lgrucl.mf338
-rw-r--r--Master/texmf-dist/fonts/source/lh/specific/lgrucu.mf328
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frua.mf514
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruabm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruabn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruabq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruabr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruabs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruabt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruacm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruacn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruacq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruacr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruacs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruact.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruakm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruakn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruakq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruakr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruaks.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruakt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frualm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frualn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frualq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frualr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruals.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frualt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruamm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruamn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruamq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruamr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruams.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruamt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruanm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruann.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruanq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruanr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruans.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruant.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frubase.mf1611
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruc.mf687
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucbm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucbn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucbq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucbr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucbs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucbt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruccm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruccn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruccq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruccr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruccs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruckm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruckn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruckq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruckr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucks.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruckt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruclm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucln.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruclq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruclr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucls.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruclt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucmm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucmn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucmq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucmr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucms.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucmt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucnm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucnn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucnq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucnr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucns.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frucnt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frul.mf183
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulbm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulbn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulbq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulbr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulbs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulbt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulcm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulcn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulcq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulcr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulcs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulkm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulkn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulkq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulkr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulks.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulkt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frullm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulln.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frullq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frullr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulls.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frullt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulmm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulmn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulmq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulmr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulms.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulmt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulnm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulnn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulnq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulnr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulns.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frulnt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frum.mf1156
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumbm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumbn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumbq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumbr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumbs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumbt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumcm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumcn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumcq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumcr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumcs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumkm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumkn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumkq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumkr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumks.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumkt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumlm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumln.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumlq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumlr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumls.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumlt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frummm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frummn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frummq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frummr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumms.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frummt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumnm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumnn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumnq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumnr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumns.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frumnt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frun.mf712
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunbm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunbn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunbq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunbr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunbs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunbt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruncm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruncn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruncq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruncr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/fruncs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunkm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunkn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunkq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunkr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunks.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunkt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunlm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunln.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunlq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunlr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunls.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunlt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunmm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunmn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunmq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunmr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunms.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunmt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunnm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunnn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunnq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunnr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunns.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frunnt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frusep.mf176
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frut.mf470
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutbm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutbn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutbq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutbr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutbs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutbt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutcm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutcn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutcq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutcr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutcs.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutkm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutkn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutkq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutkr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutks.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutkt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutlm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutln.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutlq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutlr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutls.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutlt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutmm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutmn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutmq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutmr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutms.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutmt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutnm.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutnn.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutnq.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutnr.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutns.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/allrunes/frutnt.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/amsya.mf62
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/amsyb.mf62
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/asymbols.mf1959
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/bsymbols.mf1645
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmbsy5.mf129
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmbsy6.mf129
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmbsy7.mf129
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmbsy8.mf129
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmbsy9.mf129
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmcsc8.mf142
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmcsc9.mf142
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmex7.mf118
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmex8.mf118
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmex9.mf118
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmmib5.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmmib6.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmmib7.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmmib8.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cmmib9.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cyrcsc.mf178
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cyrfont.mf152
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cyrilu.mf632
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cyrital.mf134
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cyrmax.mf213
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cyrpunc.mf786
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cyrspl.mf480
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cyrspu.mf284
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/cyrti.mf1060
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/ebigop.mf964
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eubase.mf419
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/euex10.mf118
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/euex7.mf118
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/euex8.mf118
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/euex9.mf118
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufb10.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufb5.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufb6.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufb7.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufb8.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufb9.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufbch.mf6335
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufm10.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufm5.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufm6.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufm7.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufm8.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufm9.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eufmch.mf6397
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurb10.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurb5.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurb6.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurb7.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurb8.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurb9.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurbch.mf6642
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurm10.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurm5.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurm6.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurm7.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurm8.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurm9.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eurmch.mf6739
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusb10.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusb5.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusb6.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusb7.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusb8.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusb9.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusbch.mf3499
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusm10.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusm5.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusm6.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusm7.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusm8.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusm9.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/eusmch.mf3551
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msam10.mf163
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msam5.mf164
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msam6.mf164
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msam7.mf162
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msam8.mf162
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msam9.mf163
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msbm10.mf130
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msbm5.mf128
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msbm6.mf128
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msbm7.mf128
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msbm8.mf128
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/msbm9.mf128
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/serb.mf550
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/serbspu.mf183
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyb10.mf147
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyb5.mf151
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyb6.mf146
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyb7.mf151
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyb8.mf146
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyb9.mf147
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyi10.mf116
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyi5.mf115
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyi6.mf113
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyi7.mf116
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyi8.mf113
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyi9.mf113
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyr10.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyr5.mf151
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyr6.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyr7.mf151
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyr8.mf146
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyr9.mf147
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncysc10.mf151
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyss10.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyss8.mf148
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/wncyss9.mf148
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/xbbase.mf232
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/xbbold.mf191
-rw-r--r--Master/texmf-dist/fonts/source/public/ams/xbcaps.mf833
-rw-r--r--Master/texmf-dist/fonts/source/public/apl/cmapl10.mf3174
-rw-r--r--Master/texmf-dist/fonts/source/public/ar/ar10.mf142
-rw-r--r--Master/texmf-dist/fonts/source/public/ar/ar12.mf143
-rw-r--r--Master/texmf-dist/fonts/source/public/ar/ar5.mf145
-rw-r--r--Master/texmf-dist/fonts/source/public/ar/ar6.mf144
-rw-r--r--Master/texmf-dist/fonts/source/public/ar/ar7.mf145
-rw-r--r--Master/texmf-dist/fonts/source/public/ar/ar8.mf143
-rw-r--r--Master/texmf-dist/fonts/source/public/ar/ar9.mf144
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/hcaption.mf199
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/hcbase.mf1020
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/hclassic.mf208
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat209
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.mf213
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xnsh.mf43
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xnsh14.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xnsh14bf.mf51
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xnshbase.mf578
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xnshchar.mf646
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xnshdia.mf145
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xnshdig.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xnshlig.mf547
-rw-r--r--Master/texmf-dist/fonts/source/public/arabtex/xnshspec.mf202
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/arssb10.mf5376
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/arssbs10.mf5377
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/arssr10.mf6867
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/arsssl10.mf6868
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/artmb10.mf7676
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/artmbi10.mf9005
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/artmbs10.mf7677
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/artmi10.mf9094
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/artmr10.mf7954
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/artmsl10.mf7955
-rw-r--r--Master/texmf-dist/fonts/source/public/armenian/ps2mfbas.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/astro/astrosym.cal491
-rw-r--r--Master/texmf-dist/fonts/source/public/astro/astrosym.cmn441
-rw-r--r--Master/texmf-dist/fonts/source/public/astro/astrosym.mac153
-rw-r--r--Master/texmf-dist/fonts/source/public/astro/astrosym.mf99
-rw-r--r--Master/texmf-dist/fonts/source/public/astro/astrosym.uni302
-rw-r--r--Master/texmf-dist/fonts/source/public/astro/astrosym.xtr115
-rw-r--r--Master/texmf-dist/fonts/source/public/backgammon/bg.mf1098
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bang10.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangbase.mf49
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangconso.mf483
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangdefs.mf914
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangfala.mf133
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/banghalf.mf198
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangjuk.mf800
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangkaar.mf146
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/banglig.mf183
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf267
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangnum.mf209
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangpunc.mf247
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangsl10.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangvow.mf227
-rw-r--r--Master/texmf-dist/fonts/source/public/bangtex/bangwd10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/barcode2/wlc11.mf101
-rw-r--r--Master/texmf-dist/fonts/source/public/barcode2/wlc128.mf187
-rw-r--r--Master/texmf-dist/fonts/source/public/barcode2/wlc39.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/barcode2/wlc93.mf144
-rw-r--r--Master/texmf-dist/fonts/source/public/barcode2/wlcr39.mf115
-rw-r--r--Master/texmf-dist/fonts/source/public/barcode2/wlean.mf417
-rw-r--r--Master/texmf-dist/fonts/source/public/barcodes/barcodes.mf269
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal-accents.mf164
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal-digits.mf162
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal-extras.mf366
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal-ligatures.mf116
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal-lowers.mf347
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal-punctuations.mf301
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal-specials.mf200
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal-uppers.mf335
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal.mf131
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal10.mf43
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal12.mf43
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal17.mf43
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal8.mf43
-rw-r--r--Master/texmf-dist/fonts/source/public/bayer/universal9.mf43
-rw-r--r--Master/texmf-dist/fonts/source/public/bbding/bbding10.mf2628
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbm10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbm12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbm17.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbm5.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbm6.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbm7.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbm8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbm9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmb10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmbx10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmbx12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmbx5.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmbx6.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmbx7.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmbx8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmbx9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmbxsl10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmdunh10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmfib8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbminch.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmsl10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmsl12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmsl8.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmsl9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmsltt10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmss10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmss12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmss17.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmss8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmss9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmssbx10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmssdc10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmssi10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmssi12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmssi17.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmssi8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmssi9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmssq8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmssqi8.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmtt10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmtt12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmtt8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmtt9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/bbmvtt10.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/blbbase.mf182
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/blbord.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/blbordl.mf975
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/blbordsp.mf131
-rw-r--r--Master/texmf-dist/fonts/source/public/bbm/blbordu.mf884
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbbase.mf374
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbgreekl.mf684
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbgreeku.mf315
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbligs.mf91
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bblower.mf760
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbnum.mf300
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbold.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbold10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbold12.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbold17.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbold5.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbold6.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbold7.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbold8.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbold9.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbparams.mf205
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbpunc.mf691
-rw-r--r--Master/texmf-dist/fonts/source/public/bbold/bbupper.mf698
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bn.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnbanjon.mf508
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bndigit.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnjuk.mf980
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnkaar.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnlig.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnligtbl.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnmacro.mf668
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnmisc.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnpunct.mf203
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnr10.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnsl10.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/bnswar.mf162
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/xbnr10.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/xbnsl10.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/bengali/xbnsupp.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/auncl10.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/auncl17.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/auncl7.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/aunclb10.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/aunclb17.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/aunclb7.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/auncldig.mf224
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/auncll.mf640
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/auncllig.mf133
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/aunclpunct.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/auncltitle.mf271
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/aunclu.mf646
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cmin10.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cmin17.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cmin7.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cminb10.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cminb17.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cminb7.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cmindig.mf223
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cminl.mf787
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cminlig.mf271
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cminpunct.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cmintitle.mf706
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/cminu.mf787
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egoth10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egoth17.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egoth7.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egothb10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egothb17.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egothb7.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egothdig.mf224
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egothl.mf798
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egothlig.mf269
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egothpunct.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egothtitle.mf716
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/egothu.mf836
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hmin10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hmin17.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hmin7.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hminb10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hminb17.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hminb7.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hmindig.mf223
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hminl.mf786
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hminlig.mf262
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hminpunct.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hmintitle.mf706
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hminu.mf765
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/huncl10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/huncl17.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/huncl7.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hunclb10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hunclb17.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hunclb7.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/huncldig.mf228
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/huncll.mf611
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/huncllig.mf155
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hunclpunct.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf306
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/hunclu.mf617
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imaj10.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imaj17.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imaj7.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imajb10.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imajb17.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imajb7.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imajdig.mf300
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imajl.mf842
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imajlig.mf145
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imajpunct.mf138
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imajtitle.mf611
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imaju.mf840
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imin10.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imin17.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imin7.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/iminb10.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/iminb17.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/iminb7.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imindig.mf223
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/iminl.mf729
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/iminlig.mf148
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/iminpunct.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/imintitle.mf666
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/iminu.mf738
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgoth10.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgoth17.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgoth7.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgothb10.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgothb17.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgothb7.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgothdig.mf245
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgothl.mf699
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgothlig.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgothpunct.mf125
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgothtitle.mf870
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/pgothu.mf1234
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtnd10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtnd17.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtnd7.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtndb10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtndb17.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtndb7.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtnddig.mf228
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtndl.mf787
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtndlig.mf148
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtndpunct.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtndtitle.mf734
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rtndu.mf833
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rust10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rust17.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rust7.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rustb10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rustb17.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rustb7.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rustdig.mf224
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rustl.mf637
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rustlig.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rustpunct.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rusttitle.mf297
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/rustu.mf637
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrc10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrc17.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrc7.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrcb10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrcb17.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrcb7.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrcdig.mf251
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrcl.mf836
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrclig.mf142
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrcpunct.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrctitle.mf710
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/sqrcu.mf836
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgoth10.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgoth17.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgoth7.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf243
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf695
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf125
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf842
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf1234
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/uncl10.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/uncl17.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/uncl7.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/unclb10.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/unclb17.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/unclb7.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/uncldig.mf218
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/uncll.mf699
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/uncllig.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/unclpunct.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/uncltitle.mf236
-rw-r--r--Master/texmf-dist/fonts/source/public/bookhands/unclu.mf705
-rw-r--r--Master/texmf-dist/fonts/source/public/calligra/callig15.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/calligra/calligra.mf12259
-rw-r--r--Master/texmf-dist/fonts/source/public/casyl/casyll10.mf601
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbaccent.mf638
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbbase.mf318
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbdigits.mf1053
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbgreek.mf60
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbgrk.mf197
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cblig.mf201
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbligit.mf682
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbligrm.mf491
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbligsc.mf176
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbligtt.mf120
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cblower.mf4581
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbmetre.mf892
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbpunct.mf435
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbspline.mf112
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/cbupper.mf858
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glic.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glic1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glii.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glii1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glin.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glin1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glio.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glio1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gliu.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gliu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gljc.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gljc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gljn.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gljn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gljo.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gljo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmc.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmi.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmi1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmn.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmo.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmu.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glmu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gltc.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gltc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gltn.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gltn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glto.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glto1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwc.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwi.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwi1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwn.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwo.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwu.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glwu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxc.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxi.mf87
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxi1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxn.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxo.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxu.mf87
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/glxu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmmn.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmmn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmmo.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmmo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmtr.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmtr1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmxn.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmxn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmxo.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gmxo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomc.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomi.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomi1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomn.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomo.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomu.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gomu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxc.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxi.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxi1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxn.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxo.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxu.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/goxu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grbl.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grbl1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmc.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmi.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmi1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grml.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grml1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmn.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmo.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmu.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grmu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxc.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxi.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxi1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxl.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxl1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxn.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxo.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxu.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/grxu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmc.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmi.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmi1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmn.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmo.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmu.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsmu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxc.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxi.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxi1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxn.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxo.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxo1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxu.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gsxu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gttc.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gttc1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gtti.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gtti1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gttn.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gttn1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gtto.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gtto1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gttu.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/cb/gttu1000.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cbcoptic/coptbase.mf285
-rw-r--r--Master/texmf-dist/fonts/source/public/cbcoptic/copti.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/cbcoptic/copto.mf5750
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/fic_mic.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/g300pc.mfj14
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/g600pc.mfj14
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pccsc10.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcmi10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcr10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcr5.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcr6.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcr7.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcr8.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcr9.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcsl10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcslc9.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/cc-pl/pcti10.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/cchess/cchess46.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/cchess/ccpieces.mf1173
-rw-r--r--Master/texmf-dist/fonts/source/public/chemarrow/arrow.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/cherokee/cherokee.mf636
-rw-r--r--Master/texmf-dist/fonts/source/public/chess/chess10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/chess/chess20.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/chess/chess30.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/chess/chessbase.mf285
-rw-r--r--Master/texmf-dist/fonts/source/public/chess/chessdiag.mf56
-rw-r--r--Master/texmf-dist/fonts/source/public/chess/chessf10.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/chess/chessfig10.mf35
-rw-r--r--Master/texmf-dist/fonts/source/public/chess/chesspieces.mf197
-rw-r--r--Master/texmf-dist/fonts/source/public/chess/empty.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/china2e/china10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/china2e/chinasym.add330
-rw-r--r--Master/texmf-dist/fonts/source/public/china2e/chinasym.alf443
-rw-r--r--Master/texmf-dist/fonts/source/public/china2e/chinasym.ele250
-rw-r--r--Master/texmf-dist/fonts/source/public/china2e/chinasym.num137
-rw-r--r--Master/texmf-dist/fonts/source/public/china2e/chinasym.sbl295
-rw-r--r--Master/texmf-dist/fonts/source/public/china2e/chinasym.sta346
-rw-r--r--Master/texmf-dist/fonts/source/public/china2e/readme.txt65
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cibimos.mf261
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cicirc.mf439
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cidiod.mf108
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cioptic.mf539
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/ciphysic.mf237
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cirest.mf740
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/cisym.mf181
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/ciwidko.mf160
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/csym.mf499
-rw-r--r--Master/texmf-dist/fonts/source/public/circ/defcirc.mf160
-rw-r--r--Master/texmf-dist/fonts/source/public/cirth/cirbf.mf65
-rw-r--r--Master/texmf-dist/fonts/source/public/cirth/cirsl.mf67
-rw-r--r--Master/texmf-dist/fonts/source/public/cirth/cirss.mf64
-rw-r--r--Master/texmf-dist/fonts/source/public/cirth/cirth.mf65
-rw-r--r--Master/texmf-dist/fonts/source/public/cirth/ligs.mf35
-rw-r--r--Master/texmf-dist/fonts/source/public/cirth/macros.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/cirth/runes.mf927
-rw-r--r--Master/texmf-dist/fonts/source/public/clock/clock.mf137
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/accent.mf214
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/bigacc.mf35
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/bigdel.mf700
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/bigop.mf389
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/calu.mf397
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmb10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbase.mf704
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbcsc10.mf112
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbsy10.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbtex10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbtt10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbtt8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbtt9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbx10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbx12.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbx5.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbx6.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbx7.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbx8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbx9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbxsl10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmbxti10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmcsc10.mf113
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmdunh10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmex10.mf87
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmexb10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmff10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmfi10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmfib8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cminch.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmitt10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmmi10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmmi12.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmmi5.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmmi6.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmmi7.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmmi8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmmi9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmmib10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmplain.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmr10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmr12.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmr17.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmr5.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmr6.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmr7.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmr8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmr9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsl10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsl12.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsl8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsl9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsltt10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmss10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmss12.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmss17.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmss8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmss9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmssbx10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmssdc10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmssi10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmssi12.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmssi17.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmssi8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmssi9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmssq8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmssqi8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsy10.mf98
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsy5.mf98
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsy6.mf98
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsy7.mf98
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsy8.mf98
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmsy9.mf98
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmtcsc10.mf113
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmtex10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmtex8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmtex9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmti10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmti12.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmti7.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmti8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmti9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmtt10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmtt12.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmtt8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmtt9.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmttb10.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmu10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cmvtt10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/comlig.mf62
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/csc.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/cscspu.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/greekl.mf494
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/greeku.mf258
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/itald.mf262
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/italig.mf201
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/itall.mf462
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/italms.mf118
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/italp.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/italsp.mf128
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/mathex.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/mathit.mf65
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/mathsy.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/olddig.mf317
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/punct.mf287
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/roman.mf67
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/romand.mf321
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/romanl.mf823
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/romanp.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/romanu.mf741
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/romlig.mf166
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/romms.mf244
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/romspl.mf188
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/romspu.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/romsub.mf41
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/sym.mf461
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/symbol.mf1043
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/texset.mf58
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/textit.mf60
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/title.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/tset.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/tsetsl.mf140
-rw-r--r--Master/texmf-dist/fonts/source/public/cm/white_setup.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/cmastro/cmastro10.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cmastro/cmastro5.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cmastro/cmastro6.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cmastro/cmastro7.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cmastro/cmastro8.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cmastro/cmastro9.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cmastro/symbols.mf303
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ams10pt.mf70
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ams8pt.mf70
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ams9pt.mf70
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/baccent.mf213
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/bgreeku.mf257
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/bitalms.mf133
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/bpunct.mf290
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/br10pt.mf70
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/br17pt.mf72
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/br8pt.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/br9pt.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/brmsa.mf111
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/brmsb.mf171
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/broman.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/bromanl.mf832
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/bromlig.mf170
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/bromms.mf243
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/brs10pt.mf74
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/brs17pt.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/brs8pt.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/brs9pt.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbr10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbr17.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbr8.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbr9.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbras10.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbras8.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbras9.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrbs10.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrbs8.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrbs9.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrbx10.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrmb10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrmi10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrmi8.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrmi9.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrsl10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrsl17.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrsl8.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrsl9.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrsy10.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrsy8.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmbrsy9.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmsltl10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/cmtl10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebaccess.mf893
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebbase.mf1347
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebbraces.mf267
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebbx10.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebmo10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebmo17.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebmo8.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebmo9.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebmr10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebmr17.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebmr8.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebmr9.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebpseudo.mf93
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebpunct.mf340
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebrleast.mf1126
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebrlig.mf217
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebrligtb.mf340
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebrllett.mf829
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebrlwest.mf1163
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebroman.mf68
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebso10.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebso17.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebso8.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebso9.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebsr10.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebsr17.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebsr8.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebsr9.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebtl10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ebto10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/manifest.txt107
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/mathsl.mf72
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/msa.mf1762
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/msb.mf1461
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbbx10.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbmo10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbmo17.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbmo8.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbmo9.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbmr10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbmr17.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbmr8.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbmr9.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbpseudo.mf70
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbso10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbso17.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbso8.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbso9.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbsr10.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbsr17.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbsr8.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbsr9.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbsymb.mf58
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbsymbol.mf2197
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbtl10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/tbto10.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ttsymb.mf64
-rw-r--r--Master/texmf-dist/fonts/source/public/cmbright/ttsymbol.mf2208
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/ccsc.mf42
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/citall.mf660
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcb10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcbx10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcbx12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcbx5.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcbx6.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcbx7.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcbx8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcbx9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcbxsl1.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcbxti1.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmccsc10.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmccsc8.mf116
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmccsc9.mf116
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcinch.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcitt10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsc11.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsc12.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsc14.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsc18.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsc24.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsc36.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcscsl1.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsl10.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsl12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsl8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsl9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcsltt1.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcss10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcss12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcss17.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcss8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcss9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcssbx1.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcssdc1.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcssi10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcssi12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcssi17.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcssi8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcssi9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcssq8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcssqi8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcti10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcti12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcti7.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcti8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcti9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmctitle.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmctt10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmctt12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmctt8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmctt9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcu10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcyr10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcyr12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcyr17.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcyr5.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcyr6.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcyr7.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcyr8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cmcyr9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/coding.bak69
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/coding.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cyrillic.mf276
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cyrl.mf1061
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cyrlc.mf1179
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cyrsymb.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cyrt.mf1024
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cyru.mf1027
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cytextit.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/cmcyr/cytitle.mf280
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmbxcd10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmbxti12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmbxti7.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmcscsl10.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmfibs8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmitt12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmitt9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmsl6.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmsltt9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmssbxo10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmsslu30.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmssu30.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmextra/cmvtti10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/cmpica/cmpica.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/cmpica/cmpicab.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/cmpica/cmpicati.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/cmpica/pcpunct.mf291
-rw-r--r--Master/texmf-dist/fonts/source/public/cmpica/pica.mf61
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccam10.mf139
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccam5.mf140
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccam6.mf140
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccam7.mf140
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccam8.mf140
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccam9.mf140
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccbm10.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccbm5.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccbm6.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccbm7.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccbm8.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccbm9.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccex10.mf95
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccex7.mf95
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccex8.mf95
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccex9.mf95
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccmi10.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccmi5.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccmi6.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccmi7.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccmi8.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccmi9.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccsy10.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccsy5.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccsy6.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccsy7.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccsy8.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concmath/xccsy9.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/cccsc10.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccmi10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccmic9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccr10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccr5.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccr6.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccr7.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccr8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccr9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccsl10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccsl9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccslc9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/ccti10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/concrete/odigs.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/bass.mf67
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/bass10.mf51
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/basscc.mf637
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/cal.mf268
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/cal10.mf267
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/croatian-i.mf1456
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/croblm.mf580
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/croblv.mf605
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/crocyrm.mf416
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/crocyrv.mf426
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/gg.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/gg10.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/ggv.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/ggv1.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/glz.mf183
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/hcyr.mf70
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/kraj.mf240
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/kur.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/kurzivm.mf432
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/kurzivv.mf429
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/lom.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/lomm.mf66
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/lomv.mf66
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/obl.mf91
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/obl10.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/oblm.mf960
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/oblv.mf950
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/ple.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/plet.mf580
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/pleter.mf297
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/stechak.mf909
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/ugl.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/ugl10.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/ugv.mf55
-rw-r--r--Master/texmf-dist/fonts/source/public/croatian/ugve.mf55
-rw-r--r--Master/texmf-dist/fonts/source/public/cryst/cryst.mf1476
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csaccent.mf413
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csacutl.mf223
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csacutu.mf215
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csadded.mf219
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csb10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csb12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csb17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csb5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csb6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csb7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csb8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csb9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbx10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbx12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbx5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbx6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbx7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbx8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbx9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxsl10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxsl12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxsl5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxsl6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxsl7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxsl8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxsl9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxti10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxti12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csbxti17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cscode.mf201
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cscsc10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cscsc12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cscsc17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cscsc8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cscsc9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csdunh10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csdunh12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csdunh17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csdunh5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csdunh6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csdunh7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csdunh8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csdunh9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csff10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csfi10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csfib10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csfib12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csfib8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csfib9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cshachel.mf187
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cshacheu.mf246
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cshyph.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csiacutl.mf125
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csihachl.mf114
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csinch.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csiothrl.mf168
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csitt10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csitt12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csitt17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csitt8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csitt9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csotherl.mf288
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csotheru.mf167
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csr10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csr12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csr17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csr5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csr6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csr7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csr8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csr9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssl10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssl12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssl17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssl5.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssl6.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssl7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssl8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssl9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssltt10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssltt12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssltt8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cssltt9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csss10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csss12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csss17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csss8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csss9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssbx10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssbx12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssbx17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssbx9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssdc10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssi10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssi12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssi17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssi8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssi9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssq8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csssqi8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstcsc10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstcsc12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstcsc17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstex10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstex8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstex9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csti10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csti12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csti17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csti7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csti8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csti9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstt10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstt12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstt8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/cstt9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csu10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csu12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csu17.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csu7.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csu8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csu9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csvtt10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csvtt12.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csvtt8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/csvtt9.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/icscsc10.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/icstt8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/ilcsss8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/ilcsssb8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/ilcsssi8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/kmcsc.mf178
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/kmroman.mf198
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/kmtexset.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/kmtextit.mf135
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/kmtitle.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/lcsss8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/lcsssb8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/cs/lcsssi8.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/ctib/bzrsetup.mf208
-rw-r--r--Master/texmf-dist/fonts/source/public/ctib/ctib.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/ctib/ctibcode.mf304
-rw-r--r--Master/texmf-dist/fonts/source/public/ctib/ctiblett.mf19878
-rw-r--r--Master/texmf-dist/fonts/source/public/ctib/ctibligs.mf1242
-rw-r--r--Master/texmf-dist/fonts/source/public/ctib/ctibnum.mf743
-rw-r--r--Master/texmf-dist/fonts/source/public/ctib/ctibpunc.mf2066
-rw-r--r--Master/texmf-dist/fonts/source/public/ctib/ctibsplt.mf1856
-rw-r--r--Master/texmf-dist/fonts/source/public/ctib/ctibvow.mf1367
-rw-r--r--Master/texmf-dist/fonts/source/public/dancers/dancers.mf1538
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dnchars.mf5247
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dndefs.mf313
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dngen.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dninit.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnb10.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnb8.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnb9.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnbb10.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnbb8.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnbb9.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnbbi10.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnbbi8.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnbbi9.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnbi10.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnbi8.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnbi9.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnc10.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnc8.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnc9.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvncb10.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvncb8.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvncb9.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvncbi10.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvncbi8.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvncbi9.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnci10.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnci8.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnci9.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvng10.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvng8.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvng9.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvngb10.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvngb8.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvngb9.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvngbi10.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvngbi8.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvngbi9.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvngi10.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvngi8.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvngi9.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnn10.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnn8.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnn9.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnnb10.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnnb8.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnnb9.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnnbi10.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnnbi8.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnnbi9.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnni10.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnni8.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvnni9.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpb10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpb8.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpb9.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpc10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpc8.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpc9.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpn10.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpn8.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpn9.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpnn10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpnn8.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/devanagr/dvpnn9.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/dice/dice3d.mf886
-rw-r--r--Master/texmf-dist/fonts/source/public/dingbat/ark10.mf320
-rw-r--r--Master/texmf-dist/fonts/source/public/dingbat/dingbat.mf711
-rw-r--r--Master/texmf-dist/fonts/source/public/doublestroke/dsrom.mf42
-rw-r--r--Master/texmf-dist/fonts/source/public/doublestroke/dsrom10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/doublestroke/dsrom12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/doublestroke/dsrom8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/doublestroke/dsromo.mf157
-rw-r--r--Master/texmf-dist/fonts/source/public/doublestroke/dsromu.mf982
-rw-r--r--Master/texmf-dist/fonts/source/public/doublestroke/dsss10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/doublestroke/dsss12.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/doublestroke/dsss8.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/duerer/cdb10.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/duerer/cdi10.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/duerer/cdr10.mf70
-rw-r--r--Master/texmf-dist/fonts/source/public/duerer/cdsl10.mf70
-rw-r--r--Master/texmf-dist/fonts/source/public/duerer/cdss10.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/duerer/cdtt10.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/duerer/dromani.mf643
-rw-r--r--Master/texmf-dist/fonts/source/public/duerer/dromanu.mf728
-rw-r--r--Master/texmf-dist/fonts/source/public/duerer/dtitle.mf234
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb10.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb10e.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb10f.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb10g.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb10l.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb10s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb10x.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb5.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb6.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb7.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb8.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrb9.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrbdef.mf912
-rw-r--r--Master/texmf-dist/fonts/source/public/ean/ocrbmac.mf270
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/conc10pt.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/conc5pt.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/conc6pt.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/conc7pt.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/conc8pt.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/conc9pt.mf72
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/coni10pt.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eocc10.mf117
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eorm10.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eorm5.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eorm6.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eorm7.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eorm8.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eorm9.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eosl10.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eosl5.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eosl6.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eosl7.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eosl8.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eosl9.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/eoti10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/tcssdc10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/torm10.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/torm5.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/torm6.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/torm7.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/torm8.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/torm9.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/tosl10.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/tosl5.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/tosl6.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/tosl7.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/tosl8.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/tosl9.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/ecc/toti10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/Fbf10.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/Fr10.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadb10.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadbx10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadbxi10.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadbxsl10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadccsc10.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadci10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadcr10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadcsc10.mf99
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadcsl10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadcslc9.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiaddunh10.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadff10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadfi10.mf34
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadfib8.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadi10.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiaditt10.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadr10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadr12.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadr17.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadsl10.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadsltt10.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadss10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadssbx10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadssdc10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadssi10.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadssq8.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadssqi8.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadtcsc10.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadtt10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiadvtt10.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eira.mf140
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eirl.mf424
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/eiru.mf481
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/gaec7cb.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/eiad/gaelach.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/elvish/elvish-cirth.mf779
-rw-r--r--Master/texmf-dist/fonts/source/public/elvish/teng10.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/elvish/tengdev.mf350
-rw-r--r--Master/texmf-dist/fonts/source/public/elvish/tengmacs.mf221
-rw-r--r--Master/texmf-dist/fonts/source/public/elvish/tengmain.mf296
-rw-r--r--Master/texmf-dist/fonts/source/public/elvish/tengsecs.mf311
-rw-r--r--Master/texmf-dist/fonts/source/public/elvish/tengteht.mf195
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/barcap.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/bars.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/eng.mf27
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/engacc.mf174
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/englcase.mf307
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/englig.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/engnum.mf115
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/engpun.mf163
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/engucase.mf287
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/engwar.mf58
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/lucap.mf50
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/luvar.mf50
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/telcap.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/engwar/telcor.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/esint/bigint.mf1158
-rw-r--r--Master/texmf-dist/fonts/source/public/esint/esint10.mf115
-rw-r--r--Master/texmf-dist/fonts/source/public/esint/mathint.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/esvect/mathvec.mf42
-rw-r--r--Master/texmf-dist/fonts/source/public/esvect/vecsym.mf578
-rw-r--r--Master/texmf-dist/fonts/source/public/esvect/vect10.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/esvect/vect5.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/esvect/vect6.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/esvect/vect7.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/esvect/vect8.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/esvect/vect9.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/esvect/vsymbol.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth__a.mf204
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth__g.mf166
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_acce.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_b.mf276
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_c_c.mf173
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_cc.mf163
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_cc_c.mf190
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_ccc2.mf186
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_d.mf244
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_dd.mf277
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_f.mf138
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_fu.mf141
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_g.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_g_a.mf117
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_gg.mf145
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_ggu.mf126
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_gu.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_h.mf153
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_h_a.mf199
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_h_c.mf164
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_hh.mf217
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_hu_c.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_j.mf290
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_k.mf180
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_k_a.mf214
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_kk.mf189
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_kku.mf176
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_ku.mf168
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_l.mf159
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_m.mf214
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_mrf.mf87
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_mu.mf195
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_n.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_nn.mf176
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_num.mf495
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_p.mf133
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_pp.mf236
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_pu.mf159
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_punc.mf422
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_q.mf190
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_q_a.mf213
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_qq.mf223
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_qqu.mf186
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_qu.mf166
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_r.mf131
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_s.mf201
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_s_a.mf220
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_s_c.mf219
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_ss.mf209
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_t.mf140
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_tt.mf171
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_v.mf210
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_w.mf174
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_wu.mf173
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_y.mf179
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_z.mf209
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/eth_z_c.mf235
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha6.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha7.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha_cod.mf260
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha_drv.mf58
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/etha_lig.mf309
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab11.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab12.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab14.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab18.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab24.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab36.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethab9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethas10.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb11.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb14.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb18.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb24.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb36.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethasb9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethatt10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb6.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb7.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb_cod.mf260
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb_drv.mf60
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethb_lig.mf1
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb11.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb12.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb14.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb18.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb24.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb36.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbb9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbs10.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb10.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb11.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb14.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb18.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb24.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb36.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbsb9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethbtt10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/ethiop/ethiomac.mf353
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/ceit.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/cemac.mf107
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/cerm.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/cesl.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurobf.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurobfit.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurobfsl.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/euroit.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/euromac.mf245
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/euroof.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurorm.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurosl.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/euro-ce/eurosp.mf124
-rw-r--r--Master/texmf-dist/fonts/source/public/eurosym/fey.mf289
-rw-r--r--Master/texmf-dist/fonts/source/public/eurosym/feybl10.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/eurosym/feybo10.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/eurosym/feybr10.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/eurosym/feyml10.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/eurosym/feymo10.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/eurosym/feymr10.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/euxm/euxm10.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/euxm/euxm5.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/euxm/euxm7.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/euxm/euxmch.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/feyn/feyn.mf274
-rw-r--r--Master/texmf-dist/fonts/source/public/feyn/feyn10.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/feyn/feyn11.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/feyn/feyn12.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/feyn/feynmac.mf188
-rw-r--r--Master/texmf-dist/fonts/source/public/feyn/feyntext10.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/feyn/feyntext11.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/feyn/feyntext12.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frca10.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcbx10.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcbx11.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcbx12.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcbx14.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcbx17.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcbx7.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcbx8.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcbx9.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcc10.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcc11.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcc12.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcc14.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcf10.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcf11.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcf12.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcf14.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcr10.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcr11.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcr12.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcr14.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcr17.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcr7.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcr8.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcr9.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcsl10.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcsl11.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcsl12.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcsl14.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcsl17.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcsl7.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcsl8.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcsl9.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcslbx10.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcslbx11.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcslbx12.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcslbx14.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcslbx17.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcslbx7.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcslbx8.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcslbx9.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcursive.mf2498
-rw-r--r--Master/texmf-dist/fonts/source/public/frcursive/frcw10.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/futhark/futhol10.mf38
-rw-r--r--Master/texmf-dist/fonts/source/public/futhark/futhol20.mf38
-rw-r--r--Master/texmf-dist/fonts/source/public/futhark/futhol30.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/futhark/futhol40.mf38
-rw-r--r--Master/texmf-dist/fonts/source/public/futhark/futhol50.mf38
-rw-r--r--Master/texmf-dist/fonts/source/public/futhark/futhold.mf237
-rw-r--r--Master/texmf-dist/fonts/source/public/genealogy/drgen.mf131
-rw-r--r--Master/texmf-dist/fonts/source/public/genealogy/drgen10.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go.mf333
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go15.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go1bla10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go1bla15.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go1bla20.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go1black.mf1341
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go1whi10.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go1whi15.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go1whi20.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go1white.mf1341
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go20.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go2bla10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go2bla15.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go2bla20.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go2black.mf1446
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go2whi10.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go2whi15.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go2whi20.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/go/go2white.mf1446
-rw-r--r--Master/texmf-dist/fonts/source/public/go/gosign50.mf169
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/cmfrabase.mf231
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/cmfrak.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/cmfraklow.mf785
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/cmfrakmis.mf769
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/cmfraknum.mf193
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/cmfrakoth.mf551
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/cmfrakupp.mf1749
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/schwell.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/su-lig.mf232
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/su-low.mf796
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/su-spec.mf555
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/su-upp.mf849
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/suet14.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/xxfrak.mf168
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yfrabase.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yfrak.mf137
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yfraklow.mf593
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yfrakmis.mf574
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yfraknum.mf194
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yfrakoth.mf528
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yfrakupp.mf1342
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/ygotbase.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/ygoth.mf134
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/ygothgen.mf452
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/ygothlig.mf1578
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/ygothlow.mf768
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/ygothmis.mf177
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/ygothnum.mf229
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/ygothupp.mf2399
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinit.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitA.mf139
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitB.mf135
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitC.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitD.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitE.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitF.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitG.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitH.mf123
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitJ.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitK.mf125
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitL.mf107
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitM.mf123
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitN.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitO.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitP.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitQ.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitR.mf120
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitS.mf117
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitT.mf113
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitU.mf120
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitV.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitW.mf138
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitX.mf126
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitY.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitZ.mf114
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitas.mf114
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yinitdd.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yintbase.mf229
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/ysmfrak.mf137
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yswab.mf138
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yswabase.mf103
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yswablow.mf700
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yswabmis.mf1300
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yswabnum.mf288
-rw-r--r--Master/texmf-dist/fonts/source/public/gothic/yswabupp.mf1179
-rw-r--r--Master/texmf-dist/fonts/source/public/greenpoint/greenpoint.mf65
-rw-r--r--Master/texmf-dist/fonts/source/public/grtimes/lgrligs.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/hands/hands.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/hands/handsdef.mf66
-rw-r--r--Master/texmf-dist/fonts/source/public/hands/mirror.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/hands/reverse.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/hands/rvmirror.mf27
-rw-r--r--Master/texmf-dist/fonts/source/public/hieroglf/pmhg.mf3550
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/abary4.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/cigma4.mf22
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/digamma4.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/ebary4.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/fibb84.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/fibb848.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/fibb849.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/fibo84.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/fibo848.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/fibo849.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/fibr84.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/fibr848.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/fibr849.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/hbary4.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/ibary4.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/ibyacc4.mf608
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/ibycus4.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/ibylig4.mf250
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/ibylwr4.mf195
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/ibypnct4.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/ibyupr4.mf54
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/koppa4.mf50
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/obary4.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/sampi4.mf27
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/ubary4.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/version4.mf1
-rw-r--r--Master/texmf-dist/fonts/source/public/ibycus/wbary4.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/abary4.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/cigma4.mf22
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/digamma4.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/ebary4.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/fibb84.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/fibb848.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/fibb849.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/fibo84.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/fibo848.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/fibo849.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/fibr84.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/fibr848.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/fibr849.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/hbary4.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/ibary4.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/ibyacc4.mf608
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/ibycus4.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/ibylig4.mf250
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/ibylwr4.mf195
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/ibypnct4.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/ibyupr4.mf54
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/koppa4.mf50
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/obary4.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/sampi4.mf27
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/ubary4.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/version4.mf1
-rw-r--r--Master/texmf-dist/fonts/source/public/ibygrk/wbary4.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifclk.gen111
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifclk10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifclkb10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifgeo.gen265
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifgeo10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifgeob10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifgeobn10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifgeobw10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifgeon10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifgeow10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifsym.gen591
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifsym10.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifsymb10.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifsymbi10.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifsymi10.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifwea.gen313
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifwea10.mf22
-rw-r--r--Master/texmf-dist/fonts/source/public/ifsym/ifweab10.mf22
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kan12.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kan12b.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kan12nx.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kan12ny.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kan12s.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kan18.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kanbase.mf896
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kancodes.mf269
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kanlets.mf220
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kanmain.mf1298
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kanparam.mf181
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kanspc.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/kanvarna.mf2359
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/tamilORG.mf2020
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/tel12.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/tel12b.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/tel12nx.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/tel12ny.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/tel12s.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/tel18.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/telbase.mf871
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/telchrs1.mf1061
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/telchrs2.mf506
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/telchrs3.mf502
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/telcodes.mf282
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/telmode.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/telparam.mf135
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/telspc.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/telugu.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/wntml12.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/itrans/wntml17.mf77
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdaccent.mf489
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdbase.mf300
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdbf10.mf126
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdbf8.mf126
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdbf9.mf127
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kddigits.mf347
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdgr10.mf120
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdgr8.mf123
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdgr9.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdgreek.mf59
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdidigit.mf287
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdilower.mf1282
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdlig.mf264
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdligcom.mf142
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdlower.mf1383
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdpunct.mf336
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdsl10.mf117
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdti10.mf119
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdtt10.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/kdgreek/kdupper.mf645
-rw-r--r--Master/texmf-dist/fonts/source/public/kixfont/kix.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1.mf2105
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf113
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/aphalf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddhalf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddralf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/halftone.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imhalf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imralf.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/logobase.mf34
-rw-r--r--Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/metafon.mf50
-rw-r--r--Master/texmf-dist/fonts/source/public/kuvio/arrsy.mf116
-rw-r--r--Master/texmf-dist/fonts/source/public/kuvio/arrsy10.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/kuvio/arrsym.mf477
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams1.mf675
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams2.mf623
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams3.mf902
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams4.mf614
-rw-r--r--Master/texmf-dist/fonts/source/public/lamstex/lams5.mf533
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/circle.mf551
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/icmcsc10.mf115
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/icmex10.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/icmmi8.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/icmsy8.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/icmtt8.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/ilasy8.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/ilcmss8.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/ilcmssb8.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/ilcmssi8.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lasy.mf375
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lasy10.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lasy5.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lasy6.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lasy7.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lasy8.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lasy9.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lasyb10.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lcircle.mf550
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lcircle10.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lcirclew10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lcmss8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lcmssb8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/lcmssi8.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/legal.txt37
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/line.mf552
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/line10.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/linew10.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/sroman.mf70
-rw-r--r--Master/texmf-dist/fonts/source/public/latex/sromanu.mf54
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/a.mf145
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/b.mf58
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/d.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/digits.mf317
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/e.mf78
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/f.mf34
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/g.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/gen_acc.mf213
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/gen_sigma.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/graccent.mf105
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/grbase.mf223
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/grbld10.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/grbld8.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/grbld9.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/greek.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/grpunct.mf294
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/grreg10.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/grreg8.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/grreg9.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/grtt10.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/h.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/i.mf113
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/j.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/k.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/l.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/lig.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/lower.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/m.mf51
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/n.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/o.mf64
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/p.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/q.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/r.mf49
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/s.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/t.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/u.mf105
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/upper.mf603
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/w.mf145
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/x.mf38
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/y.mf35
-rw-r--r--Master/texmf-dist/fonts/source/public/levy/z.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/accents.mf670
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/alpha.mf203
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/beta.mf154
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/capitals.mf717
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/charmap.mf216
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/delta.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/epsilon.mf195
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/eta.mf204
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/gamma.mf141
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/iota.mf200
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/kappa.mf147
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/khi.mf144
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lambda.mf146
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfb.mf165
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfb10.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfb11.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfb12.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfb5.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfb6.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfb7.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfb8.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfb9.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfbb10.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfbb11.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfbb12.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfbb5.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfbb6.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfbb7.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfbb8.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/lfbb9.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/ligature.mf477
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/mu.mf152
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/nu.mf143
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/omega.mf198
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/omikron.mf183
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/others.mf559
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/phi.mf153
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/pi.mf157
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/psi.mf158
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/rho.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/serifs.mf324
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/sigma.mf138
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/sigmafin.mf142
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/tau.mf143
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/theta.mf149
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/upsilon.mf214
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/xi.mf165
-rw-r--r--Master/texmf-dist/fonts/source/public/lfb/zeta.mf157
-rw-r--r--Master/texmf-dist/fonts/source/public/logic/milstd.mf439
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/effects/effect.mf1
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/effects/esoteric.mf27
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/effects/hstripes.mf44
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/effects/malayalam-reverse.mf34
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/effects/outline.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/effects/shadow.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/fnt_code.mf290
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mm.bat66
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mm.fts57
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mm.job17
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmcillu.mf120
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmcoding.mf290
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmconj.mf752
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmcons.mf443
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmcvconj.mf943
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmdefs.mf633
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmfnt.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmfont.mf46
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmlnums.mf125
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmnums.mf167
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmpunct.mf278
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmrconj.mf254
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmscons.mf169
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmsec.mf263
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmstyles.txt47
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmtest.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/mmvowels.mf509
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/orn10.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/rejected.mf273
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm10s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm12.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm12s.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm17.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm17s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm6.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm6s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm8.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mm8s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmb10.mf22
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmb10s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmb12.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmb12s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmb17.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmb17s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmbig.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmbigo.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmc10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmc10s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmc12.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmc12s.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmc17.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmc17s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb10s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb12.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb12s.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb17.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb17s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl10s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl12.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl12s.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpa12.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpb12.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpc12.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl10s.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl12.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl12s.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/malayalam/var_ja.mf199
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/flogo.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/logo.mf127
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/logo10.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/logo8.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/logo9.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/logobf10.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/logod10.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/logosl10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/logosl8.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/logosl9.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/nlogo.mf15
-rw-r--r--Master/texmf-dist/fonts/source/public/mflogo/sklogo.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/mfpic/grafbase.mf2359
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/black.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/blackaps.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/blackcx.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/blackimagen.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/blacklino.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/blacklj.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/cmman.mf511
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/dummy.mf57
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/gray.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/grayaps.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/graycx.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/grayf.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/grayimagen.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/grayimagen3.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/grayimagenlight.mf12
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/graylj.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/manfnt.mf788
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/mfman.mf2474
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/oneone.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/random.mf198
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slant.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slantaps4.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slantcx4.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slantcx6.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slantimagen4.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slantimagen6.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slantlino4.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slantlj4.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/misc/slantlj6.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bcghsb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bcghsm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bcghwb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bcghwm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bcgvsb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bcgvsm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bcgvwb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bcgvwm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bicighb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bicighm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bicigvb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bicigvm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bthhsb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bthhsm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bthhwb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bthhwm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bthvsb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bthvsm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bthvwb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bthvwm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bxghsb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bxghsm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bxghwb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bxghwm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bxgvsb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bxgvsm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bxgvwb.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/bxgvwm.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/cyrmorec.mf132
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/cyrmorei.mf203
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/cyrmorel.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/cyrmoreu.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmb10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmbx10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmbx12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmbx5.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmbx6.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmbx7.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmbx8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmbx9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmbxsl10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmbxti10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmcsc10.mf116
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmcsc8.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmcsc9.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmdunh10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmff10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmfi10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmfib8.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kminch.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmitt10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmr10.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmr12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmr17.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmr5.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmr6.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmr7.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmr8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmr9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmsl10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmsl12.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmsl8.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmsl9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmsltt10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmss10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmss12.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmss17.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmss8.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmss9.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmssbx10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmssdc10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmssi10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmssi12.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmssi17.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmssi8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmssi9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmssq8.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmssqi8.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmtcsc10.mf115
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmti10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmti12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmti7.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmti8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmti9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmtt10.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmtt12.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmtt8.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmtt9.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmu10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmvtt10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/kmvtti10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/lmligs.mf38
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/macodes.mf160
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/maglyphs.mf660
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mantrlig.mf2606
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mbatoms.mf1334
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mbcodes.mf138
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mbglyphs.mf660
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mbligtbl.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mbnums.mf373
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mbparmb.mf108
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mbparmm.mf108
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mbparms.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mbpunc.mf244
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mcccscco.mf41
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mccoding.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mctextit.mf44
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mcyccsc.mf50
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mcyitall.mf691
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mcyrill.mf295
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mcyrl.mf1085
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mcyrligs.mf38
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mcyrsymb.mf171
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mcyru.mf1041
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mcytitle.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mlscodes.mf116
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mocodes.mf191
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/moglyphs.mf750
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/montrlig.mf2036
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mxcodes.mf237
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mxglyphs.mf2
-rw-r--r--Master/texmf-dist/fonts/source/public/montex/mxntrlig.mf131
-rw-r--r--Master/texmf-dist/fonts/source/public/morse/morse.alf36
-rw-r--r--Master/texmf-dist/fonts/source/public/morse/morse.def23
-rw-r--r--Master/texmf-dist/fonts/source/public/morse/morse.num40
-rw-r--r--Master/texmf-dist/fonts/source/public/morse/morse10.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamd20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamn11.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamn13.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamn16.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamn20.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamngen.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamq20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamt20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/beamv20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicbra.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicbrb.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicbrg.mf53
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicbrh.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicd11.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicd13.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicd16.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicd20.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicdef.mf61
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicg16.mf1360
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicgen.mf1372
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicn11.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicn13.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicn16.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musicn20.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikd11.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikd13.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikd16.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikd20.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikgen.mf1252
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikn11.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikn13.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikn16.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/musikn20.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slur16.mf230
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurdd16.mf41
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurdu16.mf42
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurgen.mf133
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurn16.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurn20.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/slurud16.mf41
-rw-r--r--Master/texmf-dist/fonts/source/public/musictex/sluruu16.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/musixps/mxsk.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musexgen.mf194
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musix11.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musix13.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musix16.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musix20.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musix24.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musix25.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musix29.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musixgen.mf1550
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musixsps.mf314
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/musixspx.mf314
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xdrawsl.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xdrawzl.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xgreg11.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xgreg13.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xgreg16.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xgreg20.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xgreg24.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xgreg25.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xgreg29.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xgreggen.mf369
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld11.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld11d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld13.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld13d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld16.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld16d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld20.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld20d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld24.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld24d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld29.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsld29d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsldd20.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xsldu20.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslgen.mf94
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslgend.mf34
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslgenu.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd11.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd11d.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd13.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd13d.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd16.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd16d.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd20d.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd24.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd24d.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd29.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhd29d.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu.mf68
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu11.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu11d.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu13.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu13d.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu16.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu16d.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu20.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu20d.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu24.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu24d.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu29.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhu29d.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhz-o.mf51
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhz.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhz20.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslhz20d.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu11.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu11d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu13.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu13d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu16.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu16d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu20.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu20d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu24.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu24d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu29.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslu29d.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslud20.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslup20.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslz.mf67
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslz20.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xslz20d.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/musixtex/xtie20.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdatoms.mf210
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdcodes.mf119
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdglyph.mf1020
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdligs.mf72
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdparmb.mf64
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdparmr.mf64
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdrb.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdrm.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdsb.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/mxd/mxdsm.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxed.mf107
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxed10.mf126
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxedacc.mf63
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxedbase.mf79
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxedbf10.mf126
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxedc10.mf126
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxedcaps.mf869
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxedd.mf170
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxedfont.mf980
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxedi10.mf127
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/mxedp.mf252
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/xuc.mf120
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/xuc10.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/xucbase.mf122
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/xucd.mf170
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/xucfont.mf965
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/xucl.mf1162
-rw-r--r--Master/texmf-dist/fonts/source/public/mxedruli/xucp.mf252
-rw-r--r--Master/texmf-dist/fonts/source/public/niceframe/bbding10.mf2631
-rw-r--r--Master/texmf-dist/fonts/source/public/niceframe/dingbat.mf711
-rw-r--r--Master/texmf-dist/fonts/source/public/niceframe/karta.mf7790
-rw-r--r--Master/texmf-dist/fonts/source/public/niceframe/karta15.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/niceframe/umrand.mf66
-rw-r--r--Master/texmf-dist/fonts/source/public/niceframe/umranda.mf478
-rw-r--r--Master/texmf-dist/fonts/source/public/niceframe/umrandb.mf596
-rw-r--r--Master/texmf-dist/fonts/source/public/nkarta/nkarta.mf59
-rw-r--r--Master/texmf-dist/fonts/source/public/nkarta/nkarta15.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/nkarta/nkchars.mf7323
-rw-r--r--Master/texmf-dist/fonts/source/public/oca/ocra.mf2133
-rw-r--r--Master/texmf-dist/fonts/source/public/oca/ocra10.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/oca/ocra12.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/oca/ocra17.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-a.mf1009
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-ai.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-aii.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiii.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiv.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr.mf2133
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr10.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr12.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/ocr-a/ocr16.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/oesch/lig.mf268
-rw-r--r--Master/texmf-dist/fonts/source/public/oesch/oesch.mf41
-rw-r--r--Master/texmf-dist/fonts/source/public/oesch/oesch_m.mf1200
-rw-r--r--Master/texmf-dist/fonts/source/public/oesch/oeschb.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/ogham/ogham.mf144
-rw-r--r--Master/texmf-dist/fonts/source/public/osmanian/osmanian.mf191
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot.mf663
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot10.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot15.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1bla10.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1bla15.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1bla20.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1black.mf735
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1neu.mf702
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1neu10.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1neu15.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1neu20.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1whi10.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1whi15.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1whi20.mf25
-rw-r--r--Master/texmf-dist/fonts/source/public/othello/ot1white.mf735
-rw-r--r--Master/texmf-dist/fonts/source/public/otibet/bzrsetup.mf208
-rw-r--r--Master/texmf-dist/fonts/source/public/otibet/tibetan.mf19338
-rw-r--r--Master/texmf-dist/fonts/source/public/pacioli/cpclig.mf81
-rw-r--r--Master/texmf-dist/fonts/source/public/pacioli/cpcpunct.mf175
-rw-r--r--Master/texmf-dist/fonts/source/public/pacioli/cpcr10.mf87
-rw-r--r--Master/texmf-dist/fonts/source/public/pacioli/cpcromanp.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/pacioli/cpcromanu.mf970
-rw-r--r--Master/texmf-dist/fonts/source/public/pacioli/cpcsl10.mf87
-rw-r--r--Master/texmf-dist/fonts/source/public/pacioli/cpctitle.mf202
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmph10.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmph5.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmph6.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmph7.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmph8.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmph9.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmphb10.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmphi10.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmphi7.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmphi8.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/cmphi9.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/local.mf58
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/phochar.mf1314
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/phoital.mf65
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/phoitchar.mf853
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/phosym.mf46
-rw-r--r--Master/texmf-dist/fonts/source/public/phonetic/symchar.mf47
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/cmssbi10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/dlr10.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/fik_mik.mf75
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pl.mft111
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pl_cud.mf146
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pl_dl.mf314
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pl_dod.mf832
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pl_ml.mf327
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pl_mlk.mf204
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pl_sym.mf49
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plb10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbsy10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbsy5.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbsy7.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbx10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbx12.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbx5.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbx6.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbx7.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbx8.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbx9.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbxsl10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plbxti10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plcsc10.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pldunh10.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plex10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plff10.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plfi10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plfib8.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plinch.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plitt10.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmi10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmi12.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmi5.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmi6.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmi7.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmi8.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmi9.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmib10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmib5.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plmib7.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plr10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plr12.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plr17.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plr5.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plr6.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plr7.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plr8.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plr9.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsl10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsl12.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsl8.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsl9.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsltt10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plss10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plss12.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plss17.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plss8.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plss9.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssbi10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssbx10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssdc10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssi10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssi12.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssi17.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssi8.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssi9.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssq8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plssqi8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsy10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsy5.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsy6.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsy7.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsy8.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plsy9.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pltcsc10.mf4
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pltex10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pltex8.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pltex9.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plti10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plti12.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plti7.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plti8.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plti9.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pltt10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pltt12.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pltt8.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/pltt9.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plu10.mf3
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/plvtt10.mf5
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/polan.mf163
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/polkap.mf224
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/polkur.mf132
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/polmat.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/pl/poltyt.mf63
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punk.mf56
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punk10.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punk12.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punk20.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punka.mf60
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punkae.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punkbx20.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punkd.mf54
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punkg.mf63
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punkl.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punkp.mf177
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punksl.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/punk/punksl20.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/rsfs/rsfs10.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/rsfs/rsfs5.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/rsfs/rsfs7.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/rsfs/script.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/rsfs/scriptu.mf650
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/skt10.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/skt8.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/skt9.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/sktb10.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/sktbs10.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/sktchars.mf1254
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/sktdefs.mf195
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/sktf10.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/sktfs10.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/sktligs.mf158
-rw-r--r--Master/texmf-dist/fonts/source/public/sanskrit/skts10.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmb.mf27
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmbsy.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmbx.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmbxsl.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmbxti.mf68
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmcsc.mf224
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmdunh.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmex.mf38
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmff.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmfi.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmfib.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cminch.mf61
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmitt.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmmi.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmmib.mf42
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmr.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmsl.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmsltt.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmss.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmssbx.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmssdc.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmssi.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmssq.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmssqi.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmssxi.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmsy.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmtcsc.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmtex.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmti.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmtt.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmu.mf23
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/b-cmvtt.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-bmath.mf67
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmbx.mf246
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmex.mf34
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmff.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmmi.mf80
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmr.mf348
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmss.mf329
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmssbx.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmssq.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmsy.mf14
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmti.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-cmtt.mf245
-rw-r--r--Master/texmf-dist/fonts/source/public/sauter/c-sigma.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/semaf.mf691
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfbf10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfebf10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfer10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfesl10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfett10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfpbf10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfpr10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfpsl10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfptt10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfr10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smfsl10.mf19
-rw-r--r--Master/texmf-dist/fonts/source/public/semaphor/smftt10.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/simpsons/bart.mf123
-rw-r--r--Master/texmf-dist/fonts/source/public/simpsons/burns.mf171
-rw-r--r--Master/texmf-dist/fonts/source/public/simpsons/homer.mf130
-rw-r--r--Master/texmf-dist/fonts/source/public/simpsons/lisa.mf108
-rw-r--r--Master/texmf-dist/fonts/source/public/simpsons/maggie.mf136
-rw-r--r--Master/texmf-dist/fonts/source/public/simpsons/marge.mf136
-rw-r--r--Master/texmf-dist/fonts/source/public/simpsons/simpsons.mf309
-rw-r--r--Master/texmf-dist/fonts/source/public/simpsons/snpp.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skak10.mf27
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skak15.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skak20.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skak30.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakbase.mf337
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakbrikker.mf197
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakf10.mf65
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakf10b.mf65
-rw-r--r--Master/texmf-dist/fonts/source/public/skak/skakinf.mf739
-rw-r--r--Master/texmf-dist/fonts/source/public/skull/skull.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/soyombo/soyombo.mf1996
-rw-r--r--Master/texmf-dist/fonts/source/public/soyombo/soyombot.mf145
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmary10.mf60
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmary5.mf59
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmary6.mf59
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmary7.mf59
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmary8.mf59
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmary9.mf59
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmaryaj.mf1066
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmaryba.mf121
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmarych.mf221
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmaryjg.mf600
-rw-r--r--Master/texmf-dist/fonts/source/public/stmaryrd/stmaryrd.mf95
-rw-r--r--Master/texmf-dist/fonts/source/public/tapir/tap-enc.mf192
-rw-r--r--Master/texmf-dist/fonts/source/public/tapir/tap.mf3866
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/accents.mf223
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/additionals.mf203
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/calmatema.mf49
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/carriers.mf43
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/fullvowels.mf42
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/ligtable.mf17
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/numerals.mf197
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/parmatema.mf68
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/punctuation.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/quessetema.mf57
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/tengwar.mf58
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/tengwarweird.mf62
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/tincotema.mf55
-rw-r--r--Master/texmf-dist/fonts/source/public/tengwar/tiw.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/timing/timing.mf492
-rw-r--r--Master/texmf-dist/fonts/source/public/timing/timing1.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/timing/timing1s.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/timing/timing2.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/timing/timing2s.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/gentfm.sh34
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/gentipa.sh91
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/gentipx.sh90
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/genxipa.sh67
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/genxipx.sh67
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/mktipapk.sh173
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/mkxipapk.sh147
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipa.mf166
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipa10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipa12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipa17.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipa8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipa9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipab10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipabase.mf431
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipabs10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipabx10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipabx12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipabx8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipabx9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipadiac.mf806
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipaextr.mf1909
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipagerm.mf137
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipanew.mf8
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipapnct.mf221
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipaprm.def78
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tiparoml.mf813
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasb10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasc.mf496
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasi10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasl10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasl12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasl8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasl9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipass10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipass12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipass17.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipass8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipass9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasym1.mf922
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasym2.mf720
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasym3.mf646
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipasym4.mf670
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipatone.mf311
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipatr.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipats10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipatt10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipatt12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipatt8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipatt9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipx.mf55
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipx10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipx12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipx17.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipx8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipx9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxb10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxbs10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxbx10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxbx12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxbx8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxbx9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxsb10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxsi10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxsl10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxsl12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxsl8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxsl9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxss10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxss12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxss17.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxss8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxss9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxts10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxtt10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxtt12.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxtt8.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/tipxtt9.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipa10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipab10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipabs10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipaprm.def80
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipasb10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipasi10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipasl10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipass10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipx10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipxb10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipxbs10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipxsb10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipxsi10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipxsl10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/tipa/xipxss10.mf92
-rw-r--r--Master/texmf-dist/fonts/source/public/trsym/trsy.mf90
-rw-r--r--Master/texmf-dist/fonts/source/public/trsym/trsy10.mf42
-rw-r--r--Master/texmf-dist/fonts/source/public/trsym/trsy12.mf42
-rw-r--r--Master/texmf-dist/fonts/source/public/ulsy/ulsy10.mf289
-rw-r--r--Master/texmf-dist/fonts/source/public/umrand/ua000.mf57
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbc10.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbc12.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbc17.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbc8.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbc9.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbo10.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbo12.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbo17.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbo8.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbo9.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbr10.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbr12.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbr17.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbr8.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbr9.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbst10.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbst12.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbst17.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbst8.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulbst9.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmc10.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmc12.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmc17.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmc8.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmc9.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmo10.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmo12.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmo17.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmo8.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmo9.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmr10.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmr12.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmr17.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmr8.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmr9.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmst10.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmst12.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmst17.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmst8.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/fulmst9.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/uniacc.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/unibase.mf279
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/unidig.mf119
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/uniext.mf239
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/unilig.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/unilow.mf247
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/unipun.mf170
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/unispe.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/universa/uniupp.mf264
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/lasychr.mf388
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/rsym.mf1732
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/wasy10.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/wasy5.mf103
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/wasy6.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/wasy7.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/wasy8.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/wasy9.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/wasyb10.mf100
-rw-r--r--Master/texmf-dist/fonts/source/public/wasy/wasychr.mf225
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/acctmax.mf106
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/acutacct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/addpunc.mf115
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/baraacct.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/bargacct.mf49
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/bnduacct.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/brbracct.mf48
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/brevacct.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/cdilacct.mf34
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/facutact.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/fbaraact.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/fbargact.mf52
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/fbrevact.mf26
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/fgravact.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/fhachact.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/fhattact.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/fubrvact.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/fudacact.mf46
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/fudgract.mf45
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/gamma.mf50
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/gram_max.mf552
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/grampunc.mf255
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/gravacct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/greeks.mf83
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/haccbase.mf67
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/hachacct.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/hattacct.mf32
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/iaesc.mf94
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/ibrvacct.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/igamma.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/italcskt.mf171
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/italla.mf643
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/ligature.mf218
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/ligaturi.mf163
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/macracct.mf36
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/mudaacct.mf61
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/odotacct.mf27
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/orngacct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/product.mf9
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/romanla.mf1075
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/romanskt.mf193
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/romanua.mf941
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/sktmisc.mf72
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/tildacct.mf37
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/u-ring.mf18
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/ubaracct.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/ubrvacct.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/udacacct.mf44
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/udgracct.mf43
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/udmcacct.mf43
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/udotacct.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/uibvacct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/umlaacct.mf30
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/urmcacct.mf44
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/urngacct.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/uumlacct.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnindic.map146
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnrib10.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnrib8.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnribi10.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnrii10.mf98
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnrii8.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnrir10.mf97
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnrir8.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnris10.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnris8.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnrit10.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/wnri/wnrit8.mf96
-rw-r--r--Master/texmf-dist/fonts/source/public/wntamil/tamil.mf2020
-rw-r--r--Master/texmf-dist/fonts/source/public/wntamil/tamilmax.mf446
-rw-r--r--Master/texmf-dist/fonts/source/public/wntamil/wntamil.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/wntamil/wntml10.mf76
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/compilefonts56
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/iaccent.mf306
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/igreekl.mf441
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/iparoman.mf33
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/iromanl.mf2236
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/iromanp.mf150
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/iromanu.mf321
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wbxipa10.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wbxipa11.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wbxipa12.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wbxipa17.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wbxipa8.mf110
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wbxipa9.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wslipa10.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wslipa11.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wslipa12.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wslipa17.mf112
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wslipa8.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wslipa9.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wsuipa10.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wsuipa11.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wsuipa12.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wsuipa17.mf112
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wsuipa8.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/wsuipa/wsuipa9.mf109
-rw-r--r--Master/texmf-dist/fonts/source/public/xbmc/xbmc10.mf6
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyatip.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyatip10.mf54
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xybsql10.mf82
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xybtip.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xybtip10.mf54
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xycirc10.mf154
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xycm.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xycmat10.mf53
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xycmat11.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xycmat12.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xycmbt10.mf53
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xycmbt11.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xycmbt12.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyd.mf71
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyd2.mf73
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xydash10.mf84
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyeuat10.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyeuat11.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyeuat12.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyeubt10.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyeubt11.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyeubt12.mf39
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyeuler.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyline10.mf114
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xymisc10.mf138
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xyqc10.mf94
-rw-r--r--Master/texmf-dist/fonts/source/public/xypic/xytech.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/csc_misce.mf678
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/gen_m_acc.mf69
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/greekcsc.mf34
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/it_digits.mf262
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/it_lig.mf93
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/it_lower.mf889
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/ligcsc.mf10
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/m_accent.mf55
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/m_greek.mf28
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/mrgrbf10.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/mrgrrg10.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/mrgrsl10.mf86
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/mrgrti10.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgen_acc.mf229
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgraccent.mf55
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrbase.mf229
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrbf10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgreek.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrlig.mf91
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrlower.mf992
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrpunct.mf235
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrrg10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrsc10.mf171
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrsl10.mf85
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrti10.mf88
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/rgrupper.mf614
-rw-r--r--Master/texmf-dist/fonts/source/public/yannisgr/scsc.mf46
-rw-r--r--Master/texmf-dist/fonts/source/public/yhmath/yhbigacc.mf259
-rw-r--r--Master/texmf-dist/fonts/source/public/yhmath/yhbigdel.mf1046
-rw-r--r--Master/texmf-dist/fonts/source/public/yhmath/yhcmex10.mf93
-rw-r--r--Master/texmf-dist/fonts/source/public/yhmath/yhmathex.mf21
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yib-1.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yib-2.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yib-3.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yib-4.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yib-5.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yibparms.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yir-1.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yir-2.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yir-3.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yir-4.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yir-5.mf11
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yirdefs.mf519
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yirparms.mf31
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yis-1.mf3526
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yis-2.mf3201
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yis-3.mf2914
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yis-4.mf2855
-rw-r--r--Master/texmf-dist/fonts/source/public/yi4latex/yis-5.mf1517
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnaccent.mf505
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnacomp.mf58
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnb10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbase.mf954
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbx10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbx12.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbx5.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbx6.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbx7.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbx8.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbx9.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbxsl10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnbxti10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vncligtb.mf159
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vncode.mf339
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vncombac.mf28
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vncsc.mf164
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vncsc10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vndothook.mf19
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vndunh10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnecomp.mf40
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnff10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnfi10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnfib8.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnicomp.mf22
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vniligtb.mf135
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnitt10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlacc.mf28
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlai.mf45
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlar.mf112
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnldi.mf55
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnldr.mf70
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlei.mf48
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnler.mf73
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlii.mf62
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlir.mf74
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnloi.mf38
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlor.mf38
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlui.mf50
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlur.mf70
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlyi.mf57
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnlyr.mf101
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnminus.mf39
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnmligtb.mf16
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnocomp.mf65
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnr10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnr12.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnr17.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnr5.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnr6.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnr7.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnr8.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnr9.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnrligtb.mf211
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnrm.mf97
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnroman.mf119
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnsl10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnsl12.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnsl8.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnsl9.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnsltt10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnss10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnss12.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnss17.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnss8.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnss9.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnssbx10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnssdc10.mf7
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnssi10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnssi12.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnssi17.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnssi8.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnssi9.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnssq8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnssqi8.mf7
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vntcsc10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vntextit.mf120
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnti10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnti12.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnti7.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnti8.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnti9.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vntt10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vntt12.mf9
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vntt8.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vntt9.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnu10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnuacc.mf28
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnuar.mf65
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnucomp.mf47
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnudr.mf58
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnuer.mf72
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnuir.mf32
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnuor.mf44
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnuur.mf94
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnuyr.mf63
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnvtt10.mf8
-rw-r--r--Master/texmf-dist/fonts/source/vntex/vnr/vnycomp.mf22
4621 files changed, 775605 insertions, 0 deletions
diff --git a/Master/texmf-dist/fonts/source/archaic/copsn10.mf b/Master/texmf-dist/fonts/source/archaic/copsn10.mf
new file mode 100644
index 00000000000..5cba60ec790
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/archaic/copsn10.mf
@@ -0,0 +1,1001 @@
+%%
+%% This is file `copsn10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% oldprsn.dtx (with options: `up')
+%% ------------------------------------------------------------------
+%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
+%% Copyright 1999--2005 Peter R. Wilson
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the Latex Project Public License, either
+%% version 1.3 of this license or (at your option) any
+%% later version.
+%% The latest version of the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% This work consists of the files listed in the README file.
+%% ------------------------------------------------------------------
+%%% COPSN10.MF Computer Old Persian Cuneiform font 10 point design size.
+
+
+font_identifier:="oldprsn"; font_size 10pt#;
+
+u#:=.2pt#; % unit width
+ht#:=8pt#; % height of characters (CM cap-height is approx 6.8pt)
+s#:=1.5pt#; % width correction (right and left)
+o#:=1/20pt#; % overshoot
+px#:=.4pt#; % horizontal width of pen
+font_normal_space:=7pt#; % width of a blank space
+font_normal_shrink:=.9pt#; % width correction for blank space
+font_x_height:=4.5pt#; % height of one ex
+font_quad:=10pt#; % an em
+
+font_coding_scheme:="Old Persian glyphs";
+mode_setup;
+
+ho#:=o#; % horizontal overshoot
+leftloc#:=s#; % leftmost xcoord of character
+py#:=px#; % vertical thickness of the pen
+
+define_pixels(s,u);
+define_blacker_pixels(px,py);
+define_good_x_pixels(leftloc);
+define_corrected_pixels(o); % turn on overshoot correction
+define_horizontal_corrected_pixels(ho);
+
+numeric midloc, rightloc, aw;
+pickup pencircle xscaled px yscaled py;
+stylus:=savepen;
+
+numeric trht, trbs;
+numeric th, tb;
+th = 6/24; tb = 8/24;
+numeric wiht, wibs;
+numeric wh, wb;
+wh = 10/24; wb = 20/24;
+def beginglyph(expr code, unit_width) =
+ beginchar(code, unit_width*ht#+2s#, ht#, 0);
+ midloc:=1/2w; rightloc:=(w-s); aw := rightloc-leftloc;
+ trht := th*h; trbs := tb*h;
+ wiht := wh*h; wibs := wb*h;
+ pickup stylus enddef;
+
+let cmchar=\;
+
+
+def triangle(suffix $)(expr ht, bs, ang) =
+ path pth[];
+ pair pr[];
+ pr1 := (x$-ht,y$); % midpoint of base in default position
+ pr2 := pr1 shifted (1/2bs*up); % base points
+ pr3 := pr1 shifted (1/2bs*down);
+ z$trl = pr2 rotatedaround(z$, ang);
+ z$trr = pr3 rotatedaround(z$, ang);
+ z$trc = 1/2[z$trl,z$trr];
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def trir(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$-ht, y$); % midpoint of base
+ z$trl = (x$trc, y$trc+1/2bs); % base points
+ z$trr = (x$trc, y$trc-1/2bs);
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def triu(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$, y$-ht); % midpoint of base
+ z$trl = (x$-1/2bs, y$trc); % base points
+ z$trr = (x$+1/2bs, y$trc); % base points
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def tril(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$+ht, y$); % midpoint of base
+ z$trl = (x$trc, y$trc-1/2bs); % base points
+ z$trr = (x$trc, y$trc+1/2bs);
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def tril(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$+ht, y$); % midpoint of base
+ z$trl = (x$trc, y$trc-1/2bs); % base points
+ z$trr = (x$trc, y$trc+1/2bs);
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def trid(suffix $)(expr ht, bs) =
+ path pth[];
+ z$trc = (x$, y$+ht); % midpoint of base
+ z$trl = (x$+1/2bs, y$trc); % base points
+ z$trr = (x$-1/2bs, y$trc); % base points
+ z$tic = 1/2[z$,z$trc];
+ pth$ := z$--z$trl--z$trr--cycle;
+enddef;
+
+
+def wing(suffix $)(expr ht, bs, ang) =
+ path pth[];
+ pair pr[];
+ pr1 := (x$+ht,y$); % midpoint of base in default position
+ pr2 := pr1 shifted (1/2bs*down); % base points
+ pr3 := pr1 shifted (1/2bs*up);
+ pr4 := pr1 rotatedaround(z$, ang);
+ z$wil = pr2 rotatedaround(z$, ang);
+ z$wir = pr3 rotatedaround(z$, ang);
+ z$wic = 1/2[z$,pr4];
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+
+def wingl(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$+ht, y$-1/2bs); % base points
+ z$wir = (x$wil, y$+1/2bs);
+ z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+
+def wingd(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$+1/2bs, y$+ht); % base points
+ z$wir = (x$-1/2bs, y$wil);
+ z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+
+def wingr(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$-ht, y$+1/2bs); % base points
+ z$wir = (x$wil, y$-1/2bs);
+ z$wic = (1/2[x$,x$wil], y$); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+
+def wingu(suffix $)(expr ht, bs) =
+ path pth[];
+ z$wil = (x$-1/2bs, y$-ht); % base points
+ z$wir = (x$+1/2bs, y$wil);
+ z$wic = (x$, 1/2[y$,y$wil]); % midpoint of base curve
+ pth$ := z$--z$wil{(z$wic-z$wil)}..z$wic..{(z$wir-z$wic)}z$wir--cycle;
+enddef;
+
+cmchar "Old Persian letter a";
+beginglyph("a", (3tb+2th));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z12trc=(midloc,y1trr); % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z11trl=z12trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z13trr=z12trl; % right pin
+ trid(13, trht, trbs); fill pth13;
+ z13'=(x13,0); draw z13tic--z13';
+ labels(1,11,12,13);
+endchar;
+
+cmchar "Old Persian letter i";
+beginglyph("i", (2tb)); %% 3tb too large
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z11trr=z1trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2trc=(x11trl,y1); % second top head
+ trir(2, trht, trbs); fill pth2;
+ labels(1,2,11,12,13);
+endchar;
+
+cmchar "Old Persian letter u";
+beginglyph("u", (2tb+wh)); %% 3tb+wh too large
+ z31=(leftloc,1/2h); % left wing
+ wingl(31, wiht, wibs); fill pth31;
+ z1trl=(x31wil,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z11trr=z1trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable ka (k)";
+beginglyph("k", (3tb)); %% 4tb too large
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trr=(x1trl,1/2h); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ labels(1,11,12);
+endchar;
+
+cmchar "Old Persian syllable ku (K)";
+beginglyph("K", (tb+wh));
+ z1=(leftloc,1/2h); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2trr=(x1wil,h); % pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian syllable xa (x)";
+beginglyph("x", (2tb+2wh));
+ z1=(leftloc,1/2h); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1wil,y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x2wil,h); % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable ga (g)";
+beginglyph("g", (3tb+wh));
+ z1=(leftloc,1/2h); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z11trr=(x1wil,h); % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z21trc=(x12trl,y1); % small pin
+ trir(21, trht, trbs); fill pth21;
+ z21'=(rightloc,y21); draw z21tic--z21';
+ labels(1,2,11,12,21);
+endchar;
+
+cmchar "Old Persian syllable gu (G)";
+beginglyph("G", (2tb+th+wh)); %% 3tb+wh too large
+ z1=(leftloc,1/2h); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z12trc=(x1wil, 1/2h); % middle pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(rightloc,y13); draw z13tic--z13';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z111trc=1/2[z11trc,z11'];
+ trir(111, trht, trbs); fill pth111;
+ labels(1,2,3,4,5,6,11,12,13,111);
+endchar;
+
+cmchar "Old Persian syllable ca (c)";
+beginglyph("c", (4tb));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z11trr=(x1, y1trr); % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % middle pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2trl=z12trl; % bottom pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z1'=(x2trl,y1); draw z1tic--z1'; % body of top pin
+ labels(1,2,3,4,5,6,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable ja (j)";
+beginglyph("j", (th+tb+wh));
+ z1trc=(leftloc,1/2h); % hor pin
+ trir(1, trht, trbs); fill pth1;
+ z2=(rightloc-wiht,y1); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ draw z1tic--z2;
+ z11trc=(1/2[x1,x2], h); % vert pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ labels(1,2,3,4,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable ji (J)";
+beginglyph("J",(7/2tb+wh)); %% 4tb+wh too large
+ z1trc=(leftloc, 1/2h); % left pin
+ trir(1, trht, trbs); fill pth1;
+ z2=(x1+trbs, y1); % wing
+ draw z1tic--z2;
+ wingl(2, wiht, wibs); fill pth2;
+ z12trc=(x2wil,y1); % middle pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc, y12); draw z12tic--z12';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc, y11); draw z11tic--z11';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(rightloc, y13); draw z13tic--z13';
+ labels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable ta (t)";
+beginglyph("t", (4tb+th)); %% 5tb too large
+ z3trl=(rightloc,h); % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ z1trl=(x3trr-trbs,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trr=(leftloc,1/2h); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ z2trc=(1/2[x1,x3], y11trl); % middle pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ labels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+cmchar "Old Persian syllable tu (T)";
+beginglyph("T", (4tb+th)); %% 5tb too large
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trr=z1trl; % center pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z3trr=z2trl; % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ z11trl=(x3trl, 1/2h); % short hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ labels(1,2,3,11);
+endchar;
+
+cmchar "Old Persian syllable tha (o)";
+beginglyph("o", (2tb+wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2=(x1,1/2h); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ z3trr=(x2wil,h); % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ labels(1,2,3);
+endchar;
+
+cmchar "Old Persian syllable c(cedilla)a (C)";
+beginglyph("C", (2tb));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z2trl=z1trr; % center pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z11trr=z2trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable da (d)";
+beginglyph("d", (2tb));
+ z1trl=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z11trr=z1trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable di (P)";
+beginglyph("P", (3tb+th)); %% 4tb too large
+ z2trl=(rightloc,h); % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z1trl=z2trr; % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z12trc=(leftloc,1/2h); % center pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(x1,y13); draw z13tic--z13';
+ labels(1,2,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable du (D)";
+beginglyph("D", (2tb+th+wh)); %% 3tb+wh too large
+ z1=(leftloc,h/2); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2trl=(rightloc,h); % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z12trc=(x1wil,h/2); % center pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x2,y12); draw z12tic--z12';
+ z11trr=z12trl; % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x2,y11); draw z11tic--z11';
+ z13trl=z12trr; % bottom pin
+ trir(13, trht, trbs); fill pth13;
+ z13'=(x2,y13); draw z13tic--z13';
+ labels(1,2,11,12,13);
+endchar;
+
+cmchar "Old Persian syllable na (n)";
+beginglyph("n", (2tb+wh));
+ z1=(rightloc-wiht, h/2); % wing
+ wingl(1, wiht, wibs); fill pth1;
+ z11trr=(leftloc,h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ labels(1,11,12);
+endchar;
+
+cmchar "Old Persian syllable nu (N)";
+beginglyph("N", (2tb+2wh));
+ z1=(leftloc, h/2); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1wil, y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x2wil,h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable pa (p)";
+beginglyph("p", (2tb));
+ z1trc=(leftloc,h); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(rightloc,y1); draw z1tic--z1';
+ z2trl=(x1,y1); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z3trl=(x1trc,y2); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(rightloc,y3); draw z3tic--z3';
+ z11trr=z3trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z12trr=z11trl; % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ labels(1,2,3,11,12);
+endchar;
+
+cmchar "Old Persian syllable fa (f)";
+beginglyph("f", (tb+2wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11=(x1,h/2); % left wing
+ wingl(11, wiht, wibs); fill pth11;
+ z12=(x11wil,y11); % right wing
+ wingl(12, wiht, wibs); fill pth12;
+ labels(1,11,12);
+endchar;
+
+cmchar "Old Persian syllable ba (b)";
+beginglyph("b", (3tb));
+ z1trl=(rightloc,h); % right pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trr=(leftloc,h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x1,y12); draw z12tic--z12';
+ labels(1,11,12);
+endchar;
+
+cmchar "Old Persian syllable ma (m)";
+beginglyph("m", (4tb+th)); %% 5tb too large
+ z3trl=(rightloc,h); % right pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,0); draw z3tic--z3';
+ z2trl=(x3trr,y3); % center pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z1trl=(x2trr,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z11trc=(leftloc, h/2); % hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x1,y11); draw z11tic--z11';
+ labels(1,2,3,11);
+endchar;
+
+cmchar "Old Persian syllable mi (w)";
+beginglyph("w", (2tb+wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2=(x1,h/2); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x2wil, h/2); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(rightloc,y12); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable mu (M)";
+beginglyph("M", (5tb+wh));
+ z5trc=(rightloc-2trbs, h/2); % right pin
+ trir(5, trht, trbs); fill pth5;
+ z5'=(rightloc,y5); draw z5tic--z5';
+ z4=(x5trc-wiht,y5); % wing
+ wingl(4, wiht, wibs); fill pth4;
+ z2trc=(leftloc+trht,y5); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=z4; draw z2tic--z2';
+ z1trr=(leftloc,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(3/4[x1,x2'],y1); draw z1tic--z1';
+ z3trl=(leftloc,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x1',y3); draw z3tic--z3';
+ labels(1,2,3,4);
+endchar;
+
+cmchar "Old Persian syllable ya (y)";
+beginglyph("y", (2tb+wh));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2=(x1,h/2); % wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trc=(x2wil, h/2); % right pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian syllable ra (r)";
+beginglyph("r", (3tb+th)); %% 4tb too large
+ z11trl=(rightloc, h); % right pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z2trc=(leftloc+trht,h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(x11,y2); draw z2tic--z2';
+ z1trr=(leftloc,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(leftloc,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,4);
+endchar;
+
+cmchar "Old Persian syllable ru (R)";
+beginglyph("R", (tb+th+2wh)); %% 2tb+2wh too large
+ z3=(rightloc-wiht,h/2); % right wing
+ wingl(3, wiht, wibs); fill pth3;
+ z2=(x3-wiht,y3); % left wing
+ wingl(2, wiht, wibs); fill pth2;
+ z1trc=(leftloc,y3); % pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=z2; draw z1tic--z1';
+ labels(1,2,3);
+endchar;
+
+cmchar "Old Persian syllable la (l)";
+beginglyph("l", (3tb+th)); %% 4tb too large
+ z11trl=(rightloc,h); % right pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z2trc=(leftloc,h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(x11,y2); draw z2tic--z2';
+ z1trr=(x2,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(x1trr,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,11);
+endchar;
+
+cmchar "Old Persian syllable va (v)";
+beginglyph("v", (5tb));
+ z11trc=(leftloc,h/2); % left hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x11+trbs,y11); draw z11tic--z11';
+ z12trc=(x11',h); % vert pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2=(x12+1/2trbs+2trht, h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z1trr=(x2trc-trht,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(x1trr,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,11);
+endchar;
+
+cmchar "Old Persian syllable vi (V)";
+beginglyph("V", (2tb));
+ z1trl=(midloc,1/3h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trr=z1trl; % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z3trc=(x1trl,h); % top pin
+ trid(3, trht, trbs); fill pth3;
+ z3'=(x3,y1trl); draw z3tic--z3';
+ z11trc=(leftloc, 1/2[y1trl,y3trl]); % hor pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ labels(1,2,3,4,11);
+endchar;
+
+cmchar "Old Persian syllable sa (s)";
+beginglyph("s", (3tb+th)); %% 4tb too large
+ z12trr=(leftloc,h); % vert pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z2=(x12+1/2trbs+2trht, h/2); % middle pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(rightloc,y2); draw z2tic--z2';
+ z1trr=(x2trc-trht,y2trl); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x2',y1); draw z1tic--z1';
+ z3trl=(x1trr,y2trr); % bottom pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(x2',y3); draw z3tic--z3';
+ labels(1,2,3,11,12);
+endchar;
+
+cmchar "Old Persian syllable sva (S)";
+beginglyph("S", (2wh));
+ z1=(leftloc,1/2wibs); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1+wiht,y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z3trl=(leftloc,h); % pin
+ trir(3, trht, trbs); fill pth3;
+ z3'=(rightloc,y3); draw z3tic--z3';
+ labels(1,2,3);
+endchar;
+
+cmchar "Old Persian syllable za (z)";
+beginglyph("z", (4tb));
+ z1trr=(leftloc,h); % left pin
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trl=(rightloc,h); % right pin
+ trid(2, trht, trbs); fill pth2;
+ z2'=(x2,0); draw z2tic--z2';
+ z11trc=(x1trl,h/2); % hor pins
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x2trr,y11); draw z11tic--z11';
+ z12trc=1/2[z11trc,z11'];
+ trir(12, trht, trbs); fill pth12;
+ labels(1,2,11);
+endchar;
+
+cmchar "Old Persian syllable ha (h)";
+beginglyph("h", (2tb+2wh));
+ z1=(leftloc,h/2); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(rightloc-wiht,y1); % right wing
+ wingl(2, wiht, wibs); fill pth2;
+ z11trr=(x1wil,y1); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(x2,y11); draw z11tic--z11';
+ z12trl=z11trr; % bottom pin
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x2,y12); draw z12tic--z12';
+ labels(1,2,11,12);
+endchar;
+
+cmchar "Old Persian word: king (X)";
+beginglyph("X", (3tb+2wh));
+ z4=(rightloc-wiht, h/2); % right wing
+ wingl(4, wiht, wibs); fill pth4;
+ z11trc=(x4,h); % center vert pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z3wir=(x11trr,y4wir); % left wing
+ wingl(3, wiht, wibs); fill pth3;
+ z1trr=(leftloc,y4); % top pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=(x3,y1); draw z1tic--z1';
+ z2trl=z1trr; % bottom pin
+ trir(2, trht, trbs); fill pth2;
+ z2'=(x1',y2); draw z2tic--z2';
+ labels(1,2,3,4,11);
+endchar;
+
+cmchar "Old Persian word: country (version a) (q)";
+beginglyph("q", (9/4tb+wh)); %% 5/2tb+wh too large
+ numeric n[];
+ n1 := 1/2wiht;
+ n2 := 1/2wibs;
+ z12trl=(rightloc,h); % right pin
+ trid(12, trht, trbs); fill pth12;
+ z12'=(x12,0); draw z12tic--z12';
+ z11trl=z12trr; % left pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z1=(leftloc, h-1/2n2); % top left wing
+ wingl(1, n1, n2); fill pth1;
+ z2=(x1wil, y1); % top right wing
+ wingl(2, n1, n2); fill pth2;
+ z3=(x1, 1/2n2); % bottom left wing
+ wingl(3, n1, n2); fill pth3;
+ z4=(x2, y3); % bottom right wing
+ wingl(4, n1, n2); fill pth4;
+ labels(1,2,3,4,11,12);
+endchar;
+
+cmchar "Old Persian word: country (version b) (Q)";
+beginglyph("Q", (5/4tb+wh)); %% 3/2tb+wh too large
+ numeric n[];
+ n1 := 1/2wiht;
+ n2 := 1/2wibs;
+ z11trl=(rightloc,h); % right pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ z1=(leftloc, h-1/2n2); % top left wing
+ wingl(1, n1, n2); fill pth1;
+ z2=(x1wil, y1); % top right wing
+ wingl(2, n1, n2); fill pth2;
+ z3=(x1, 1/2n2); % bottom left wing
+ wingl(3, n1, n2); fill pth3;
+ z4=(x2, y3); % bottom right wing
+ wingl(4, n1, n2); fill pth4;
+ labels(1,2,3,4,11,12);
+endchar;
+
+cmchar "Old Persian word: earth (L)";
+beginglyph("L", (3wh));
+ z1=(leftloc, wiht); % left wing
+ wingl(1, wiht, wibs); fill pth1;
+ z2=(x1wil, y1); % center wing
+ wingl(2, wiht, wibs); fill pth2;
+ z3=(x2wil, y1); % right wing
+ wingl(3, wiht, wibs); fill pth3;
+ z11trr=(x1,y1wir); % top pin
+ trir(11, trht, trbs); fill pth11;
+ z11'=(rightloc,y11); draw z11tic--z11';
+ z12trc=(x2,y11);
+ trir(12, trht, trbs); fill pth12;
+ z13trc=(x3,y11);
+ trir(13, trht, trbs); fill pth13;
+ labels(1,2,3,11,12,13);
+endchar;
+
+cmchar "Old Persian word: god (B)";
+beginglyph("B", (2tb+2wh));
+ z4=(rightloc-wiht, h/2); % right wing
+ wingl(4, wiht, wibs); fill pth4;
+ z3=(x4-wiht, y4); % left wing
+ wingl(3, wiht, wibs); fill pth3;
+ z1trc=(leftloc,y4); % pin
+ trir(1, trht, trbs); fill pth1;
+ z1'=z3; draw z1tic--z1';
+ z2trc=1/2[z1trc,z1'];
+ trir(2, trht, trbs); fill pth2;
+ labels(1,2,3,4);
+endchar;
+
+cmchar "Old Persian word: Auramazda (version a) (e)";
+beginglyph("e", (3tb+wh));
+ z43=(rightloc-wiht, h/2); % wing
+ wingl(43, wiht, wibs); fill pth43;
+ z46trc=(x43,h); % vert pin
+ trid(46, trht, trbs); fill pth46;
+ z46'=(x46,0); draw z46tic--z46';
+ z14trr=(leftloc,h/2); % pin 3
+ trir(14, trht, trbs); fill pth14;
+ z14'=(x46,y14); draw z14tic--z14';
+ z24trc=1/2[z14trc,z14']; z34trc=2/3[z14trc,z14'];
+ trir(24, trht, trbs); fill pth24;
+
+ z12trl=z14trr; % pin 2
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x46,y12); draw z12tic--z12';
+ z22=(x24,y12); z32=(x34,y12);
+ trir(22, trht, trbs); fill pth22;
+
+ labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46);
+endchar;
+
+cmchar "Old Persian word: Auramazda (version b) (E)";
+beginglyph("E", (4tb));
+%% z43=(rightloc-wiht, h/2); % wing
+%% wingl(43, wiht, wibs); fill pth43;
+ z46trc=(rightloc,h+trht); % vert pin
+ trid(46, trht, trbs); fill pth46;
+ z46'=(x46,-1/2trbs); draw z46tic--z46';
+ z14trr=(leftloc,h/2); % pin 3
+ trir(14, trht, trbs); fill pth14;
+ z14'=(x46,y14); draw z14tic--z14';
+ z24trc=1/3[z14trc,z14']; z34trc=2/3[z14trc,z14'];
+ trir(24, trht, trbs); fill pth24;
+ trir(34, trht, trbs); fill pth34;
+
+ z12trl=z14trr; % pin 2
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x46,y12); draw z12tic--z12';
+ z22=(x24,y12); z32=(x34,y12);
+ trir(22, trht, trbs); fill pth22;
+ trir(32, trht, trbs); fill pth32;
+
+ z21trl=(x24trc, y12trr); % pin 1
+ trir(21, trht, trbs); fill pth21;
+ z21'=(x46,y21); draw z21tic--z21';
+ z31=(x34,y21);
+ trir(31, trht, trbs); fill pth31;
+
+ z25trr=(x24trc, y14trl); % pin 4
+ trir(25, trht, trbs); fill pth25;
+ z25'=(x46,y25); draw z25tic--z25';
+ z35=(x34,y25);
+ trir(35, trht, trbs); fill pth35;
+ labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46);
+endchar;
+
+cmchar "Old Persian word: Auramazda (version c) (F)";
+beginglyph("F", (4tb+wh));
+ z43=(rightloc-wiht, h/2); % wing
+ wingl(43, wiht, wibs); fill pth43;
+ z46trc=(x43,h+trht); % vert pin
+ trid(46, trht, trbs); fill pth46;
+ z46'=(x46,-1/2trbs); draw z46tic--z46';
+ z14trr=(leftloc,y43); % pin 3
+ trir(14, trht, trbs); fill pth14;
+ z14'=(x46,y14); draw z14tic--z14';
+ z24trc=1/3[z14trc,z14']; z34trc=2/3[z14trc,z14'];
+ trir(24, trht, trbs); fill pth24;
+ trir(34, trht, trbs); fill pth34;
+
+ z12trl=z14trr; % pin 2
+ trir(12, trht, trbs); fill pth12;
+ z12'=(x46,y12); draw z12tic--z12';
+ z22=(x24,y12); z32=(x34,y12);
+ trir(22, trht, trbs); fill pth22;
+ trir(32, trht, trbs); fill pth32;
+
+ z21trl=(x24trc, y12trr); % pin 1
+ trir(21, trht, trbs); fill pth21;
+ z21'=(x46,y21); draw z21tic--z21';
+ z31=(x34,y21);
+ trir(31, trht, trbs); fill pth31;
+
+ z25trr=(x24trc, y14trl); % pin 4
+ trir(25, trht, trbs); fill pth25;
+ z25'=(x46,y25); draw z25tic--z25';
+ z35=(x34,y25);
+ trir(35, trht, trbs); fill pth35;
+ labels(12,14,21,22,23,24,25,31,32,33,34,35,41,42,43,44,45,46);
+endchar;
+
+cmchar "Old Persian numeral 1 (1)";
+beginglyph("1", (tb));
+ z1trc=(midloc,h);
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian numeral 2 (2)";
+beginglyph("2", (tb));
+ z1trc=(midloc,h);
+ trid(1, trht, trbs); fill pth1;
+ z1'=(x1,0); draw z1tic--z1';
+ z2trc=1/2[z1trc,z1'];
+ trid(2, trht, trbs); fill pth2;
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian numeral 10 (3)";
+beginglyph("3", (wh));
+ z1=(leftloc,h/2);
+ wingl(1, wiht, wibs); fill pth1;
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian numeral 20 (4)";
+beginglyph("4", (1/2wh));
+ z1=(leftloc,3/4h);
+ wingl(1, 1/2wiht, 1/2wibs); fill pth1;
+ z2=(leftloc,1/4h);
+ wingl(2, 1/2wiht, 1/2wibs); fill pth2;
+ labels(1,2);
+endchar;
+
+cmchar "Old Persian numeral 100 (5)";
+beginglyph("5", (tb+2th));
+ z1trl=(leftloc,h); % top pins
+ trir(1, trht, trbs); fill pth1;
+ z2trr=(rightloc,h);
+ tril(2, trht, trbs); fill pth2;
+ draw z1tic--z2tic;
+ z11trc=(1/2[x1,x2],y1trr); % vertical pin
+ trid(11, trht, trbs); fill pth11;
+ z11'=(x11,0); draw z11tic--z11';
+ labels(1,2,11);
+endchar;
+
+cmchar "Old Persian word divider (:)";
+beginglyph(":", (3tb));
+ numeric alpha;
+ alpha := trbs;
+ z1=(leftloc+alpha, h-alpha);
+ z2=(rightloc-alpha, alpha);
+ triangle(1, trht, trbs, angle((z2-z1)));
+ fill pth1; draw z1tic--z2;
+ labels(1,2);
+endchar;
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/archaic/givbc10.mf b/Master/texmf-dist/fonts/source/archaic/givbc10.mf
new file mode 100644
index 00000000000..e2e190fa50c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/archaic/givbc10.mf
@@ -0,0 +1,921 @@
+%%
+%% This is file `givbc10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% greek4cbc.dtx (with options: `up')
+%% ------------------------------------------------------------------
+%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
+%% Copyright 1999--2005 Peter R. Wilson
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the Latex Project Public License, either
+%% version 1.3 of this license or (at your option) any
+%% later version.
+%% The latest version of the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% This work consists of the files listed in the README file.
+%% ------------------------------------------------------------------
+ %%% GIVBC10.MF Computer Greek 4 century BC font 10 point design size.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="GIVBC"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+half_height#:=1/2cap_height#; % half the height of caps
+
+side#:=cap_height#; % Height and width of the square
+thickfudge:=1/9;
+thick#:=thickfudge*side#; % thickness of all lines in the font
+
+rule_thickness#:=.4pt#; % thickness of lines
+
+cap_stem#:=thick#; % thickness of majuscule stems
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=0pt#; % fine tuning of overshoot
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=38/36pt#; % size of dots
+square_dots:=false; % should dots be square?
+
+boolean whole_font; % try generating a complete font?
+whole_font:=false;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% MACRO SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+cap_height, y$bl); % BRHC
+ z$tr = (x$bl+cap_height, y$bl+cap_height); % TRHC
+ z$tl = (x$bl, y$bl+cap_height); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+let cm_font_setup=font_setup; % Knuth's original font_setup
+
+
+def greek_font_setup= % contains special stuff for archaic Greek font
+ define_pixels(u);
+ define_pixels(side,thick,half_height);
+ let adjust_fit=normal_adjust_fit;
+ define_whole_pixels(letter_fit);
+ define_whole_vertical_pixels(body_height,asc_height,
+ cap_height,x_height,desc_depth);
+ body_depth:=desc_depth+body_height-asc_height;
+ define_pixels(dot_size);
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode:
+ if mode<=smoke:
+ shrink_fit:=0;
+ fi
+ fi
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% END OF MACROS %%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+font_coding_scheme:="ASCII caps and miniscules";
+
+mode_setup;
+
+greek_font_setup;
+
+numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+define_pixels(pcshiftx);
+
+
+font_slant slant;
+font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+cmchar "Greek 394BC letter alpha (a)";
+beginchar("a", 2u#+side#+2thick#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100 = h/2; x100 = pcshiftx+y100; % center point
+numeric alpha[], hor, vert, hypot, theta;
+pair greek[];
+hor := 0.5h; vert := h-thick;
+greek1 = (hor, vert);
+theta = 270 + angle(greek1);
+ % for left leg
+penpos1(thick,theta); penpos2(thick,theta);
+ % and for the right leg
+penpos3(thick,-theta); penpos4(thick,-theta);
+rt x1r=pcshiftx; lft x4l=x1r+side;
+bot y1r=bot y4l=0;
+top y3r= top y2l=h;
+x3r=x2l = 0.5[x1r,x4l];
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ % draw the legs
+filldraw z1l--z2l--z4r--z4l--z0--z1r--cycle;
+ % now for the bar
+y5l=y6l=hround(1/3h);
+y5r-y5l=y6r-y6l=thick;
+penpos5(whatever, angle(z2-z1)); penpos6(whatever, angle(z3-z4));
+z5=whatever[z1,z2]; z6=whatever[z3,z4];
+penstroke z5e--z6e; % bar line
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,100); endchar;
+
+
+cmchar "Greek 394BC letter beta (b)";
+beginchar("b",4u#+5/9side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100=h/2; x100=pcshiftx+y100; % square center
+penpos1(thick,0); penpos2(thick,0);
+y2l=0; y1l=h; x1l=x2l=pcshiftx;
+numeric alpha, long, short, hypot;
+long=(w-2pcshiftx); short=h/4; hypot=short++long;
+alpha := hypot/long;
+penpos3(alpha*thick,90); penpos4(alpha*thick,90);
+penpos5(alpha*thick,90); penpos6(alpha*thick,90);
+z3l=z2l;
+x4l=w-pcshiftx; y4l=0.25[y2l,y1l];
+z5r=z4l;
+x6l=x2r; y6l=0.5[y2l,y1l];
+penpos7(alpha*thick,90); penpos8(alpha*thick,90);
+penpos9(alpha*thick,90); penpos10(alpha*thick,90);
+z7r=z6l;
+x8l=x4l; y8l=0.75[y2l,y1l];
+z9r=z8l;
+z10r=z1l;
+z11=whatever[z2r,z1r]=whatever[z3r,z4r]; % bottom bowl and stem
+z12=whatever[z3r,z4r]=whatever[z6l,z5l]; % bottom bowl inner
+z13=whatever[z5r,z6r]=whatever[z7l,z8l]; % between the bowls
+z14=whatever[z7r,z8r]=whatever[z9l,z10l]; % top bowl inner
+z15=whatever[z2r,z1r]=whatever[z9l,z10l]; % top bowl and stem
+filldraw z1l--z2l--z4l--z13--z8l--cycle;
+unfilldraw z6l--z12--z11--cycle;
+unfilldraw z7r--z15--z14--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100);
+endchar;
+
+
+cmchar "Greek 394BC letter gamma (g)";
+beginchar("g",2u#+thick#+2/3side#, cap_height#, 0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+x1l=x2l=pcshiftx; top y1l=h; bot y2l=0;
+filldraw stroke z1e--z2e;
+penpos3(thick,90); penpos4(thick,90);
+y3r=y4r=y1l; x3l=x1l; x4l=w-pcshiftx;
+filldraw stroke z3e--z4e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100); endchar;
+
+
+cmchar "Greek 394BC letter delat (d)";
+beginchar("d", 2u#+side#+2thick#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100 = h/2; x100 = pcshiftx+y100; % center point
+numeric alpha, hor, vert, hypot, theta;
+pair greek[];
+hor := 0.5h; vert := h-thick;
+greek1 = (hor, vert);
+theta = 270 + angle(greek1);
+ % for left leg
+penpos1(thick,theta); penpos2(thick,theta);
+ % and for the right leg
+penpos3(thick,-theta); penpos4(thick,-theta);
+rt x1r=pcshiftx; lft x4l=x1r+side;
+bot y1r=bot y4l=0;
+top y2l= top y3r=h;
+x3r=x2l = 0.5[x1r,x4l];
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ % now for the bar
+penpos5(thick,90); penpos6(thick,90);
+bot y5l=bot y6l=0;
+x5l=pcshiftx; x6l=w-pcshiftx;
+z7=whatever[z1l,z2l]=whatever[z5l,z6l];
+z8=whatever[z3r,z4r]=whatever[z5l,z6l];
+z9=whatever[z1r,z2r]=whatever[z5r,z6r];
+z10=whatever[z3l,z4l]=whatever[z5r,z6r];
+filldraw z7--z2l--z8--cycle;
+unfilldraw z9--z0--z10--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar;
+
+
+cmchar "Greek 394BC letter epsilon (e)";
+beginchar("e", 2u#+2/3side#+2thick#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+lft x1l=lft x2l=pcshiftx; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(thick,90); penpos6(thick,90);
+x5=x1; y5=y6=h/2; rt x6=pcshiftx + 2/3side;
+filldraw stroke z5e--z6e;
+penpos3(thick,90); penpos4(thick,90);
+x3=x1; top y3r=top y4r=h; x4=x6+thick;
+filldraw stroke z3e--z4e;
+penpos7(thick,90); penpos8(thick,90);
+x7=x1; bot y7l=bot y8l=0; x8=x6+2thick;
+filldraw stroke z7e--z8e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100); endchar; % end of "E"
+
+
+cmchar "Greek 394BC letter zeta (z)";
+beginchar("z", 2u#+side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center of square
+numeric alpha, hor, vert, hypot;
+vert=h; hor=4/5side; hypot=vert++hor;
+alpha=hypot/vert;
+penpos1(thick,90); penpos2(thick,90); penpos3(alpha*thick, 0);
+penpos4(alpha*thick, 0);
+top y1r=h; lft x1=pcshiftx;
+y2=y1; rt x2=x3;
+rt x3r=x1+4/5side;; top y3=h; x4l=x1; bot y4=0;
+filldraw stroke z1e--z2e; % top bar
+filldraw stroke z3e--z4e; % diagonal
+penpos8(thick,90); penpos9(thick,90);
+x8=x4; bot y8l=0;
+x9=pcshiftx+side; y9=y8;
+filldraw stroke z8e--z9e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,100); endchar;
+
+
+cmchar "Greek 394BC letter eta (h)";
+beginchar("h", 4u#+side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+lft x1l=lft x2l=pcshiftx; bot y1=0; top y2=h;
+filldraw stroke z1e--z2e;
+penpos3(thick,0); penpos4(thick,0);
+rt x3r= rt x4r= x1l+side; bot y3=0; top y4=h;
+filldraw stroke z3e--z4e;
+penpos5(thick,90); penpos6(thick,90);
+x5=x1; x6=x3; y5=y6=h/2;
+filldraw stroke z5e--z6e;
+proofpcbb(100, y100, y100);
+labels(1,2,3,4,5,6,100); endchar;
+
+
+cmchar "Greek 394BC letter theta (T)";
+beginchar("T", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric alpha; alpha=0.75;
+x2r=pcshiftx; x4r=x2r+h; y2r=y4r=y100;
+y1r=h; y3r=0; x1r=x3r=x100;
+x2l=x2r+thick; x4l=x4r-thick; y2l=y4l=y2r;
+y1l=y1r-thick; y3l=y3r+thick; x1l=x3l=x1r;
+filldraw z1r..z2r..z3r..z4r..cycle;
+unfilldraw z1l..z2l..z3l..z4l..cycle;
+x12=x100-alpha*thick; x14=x100+alpha*thick; y12=y14=y100;
+y11=y100+alpha*thick; y13=y100-alpha*thick; x11=x13=x100;
+path p;
+p= z11..z12..z13..z14..cycle;
+filldraw p; filldraw p;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100); endchar;
+
+
+cmchar "Greek 394BC letter iota (i)";
+beginchar("i", 4u#+thick#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + 0.5thick; % center point
+penpos1(thick,0); penpos2(thick,0);
+x1=x2=hround(w/2); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % vertical stem
+proofpcbb(100, y100, y100);
+penlabels(1, 2, 100);
+endchar;
+
+
+cmchar "Greek 394BC letter kappa (k)";
+beginchar("k", 2u#+2/3side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+penpos1(thick,0); penpos2(thick,0);
+lft x1l=lft x2l=pcshiftx;
+ top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % left stem
+numeric hor, vert, theta[];
+pair greek[];
+hor := 2/3side; vert := side/2;
+greek1 = (hor,vert);
+theta1=270+angle(greek1);
+penpos3(thick,theta1); penpos4(thick,theta1);
+x3l=x2r; y3l=side/2;
+y4l=h; x4r=x1l+2/3side;
+vert := -side/4;
+greek2 = (hor,vert);
+theta2=270+angle(greek2);
+penpos5(thick,theta2); penpos6(thick,theta2);
+z5r=z3l;
+x6l=x4r; y6l=side/4;
+z0=whatever[z3r,z4r]=whatever[z5l,z6l];
+filldraw z3l--z4l--z4r--z0--z6l--z6r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,100); endchar;
+
+
+cmchar "Greek 394BC letter lambda (l)";
+beginchar("l", 2u#+side#+2thick#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100 = h/2; x100 = pcshiftx+y100; % center point
+numeric alpha[], hor, vert, hypot, theta;
+pair greek[];
+hor := 0.5h; vert := h-thick;
+greek1 = (hor, vert);
+theta = 270 + angle(greek1);
+ % for left leg
+penpos1(thick,theta); penpos2(thick,theta);
+ % and for the right leg
+penpos3(thick,-theta); penpos4(thick,-theta);
+rt x1r=pcshiftx; lft x4l=x1r+side;
+bot y1r=bot y4l=0;
+top y3r= top y2l=h;
+x3r=x2l = 0.5[x1r,x4l];
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ % draw the legs
+filldraw z1l--z2l--z4r--z4l--z0--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,100); endchar; % end of "L"
+
+
+cmchar"Greek 394BC letter mu (m)";
+beginchar("m", 2u#+side#+2thick#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric alpha, hor, vert, hypot, theta[];
+pair greek[];
+hor := 3thick; vert := side;
+greek1 = (hor, vert);
+theta1 = 270 + angle(greek1);
+penpos1(thick,theta1); penpos2(thick,theta1);
+z1r=(pcshiftx,0); z2l=(pcshiftx+2thick,h);
+penpos3(thick,-theta1); penpos4(thick,-theta1);
+z3l=(pcshiftx+side,0); z4r=(pcshiftx+side-2thick,h);
+z0=z100;
+theta2 = 270 + angle(z4r-z0);
+penpos5(thick,-theta2); penpos6(thick,-theta2);
+z5r=z0; z6r=z2l;
+penpos7(thick,theta2); penpos8(thick,theta2);
+z7l=z0; z8l=z4r;
+z9=whatever[z1r,z2r]=whatever[z5l,z6l];
+z10=whatever[z5l,z6l]=whatever[z7r,z8r];
+z11=whatever[z7r,z8r]=whatever[z3l,z4l];
+filldraw z1l--z2l--z0--z4r--z3r--z3l--z11--z10--z9--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar;
+
+
+cmchar "Greek 394BC letter nu (n)";
+beginchar("n", 4u#+side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric hor, vert, theta;
+pair greek[];
+hor = side-thick; vert = h;
+greek1=(hor,vert);
+theta=270 + angle(greek1);
+penpos1(thick,0); penpos2(thick,0);
+z1l=(pcshiftx,0); z2l=(pcshiftx,h);
+penpos3(thick,0); penpos4(thick,0);
+z3r=(pcshiftx+side,0); z4r=(pcshiftx+side,h);
+penpos5(thick,-theta); penpos6(thick,-theta);
+z5l=z3r; z6r=z2l;
+z7=whatever[z1r,z2r]=whatever[z5l,z6l];
+z8=whatever[z5r,z6r]=whatever[z3l,z4l];
+filldraw z1l--z2l--z8--z4l--z4r--z3r--z7--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100); endchar;
+
+
+cmchar "Greek 394BC letter xi (x)";
+beginchar("x", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+z1=(x100,0); z2=(x100,h);
+filldraw stroke z1e--z2e;
+penpos3(thick,90); penpos4(thick,90);
+z3r=(pcshiftx,h); z4r=(pcshiftx+side,h);
+filldraw stroke z3e--z4e;
+penpos5(thick,90); penpos6(thick,90);
+z5=(pcshiftx,h/2); z6=(pcshiftx+side,h/2);
+filldraw stroke z5e--z6e;
+penpos7(thick,90); penpos8(thick,90);
+z7l=(pcshiftx,0); z8l=(pcshiftx+side,0);
+filldraw stroke z7e--z8e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar;
+
+
+cmchar "Greek 394BC letter omicron (o)";
+beginchar("o", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+x2r=pcshiftx; x4r=x2r+h; y2r=y4r=y100;
+y1r=h; y3r=0; x1r=x3r=x100;
+x2l=x2r+thick; x4l=x4r-thick; y2l=y4l=y2r;
+y1l=y1r-thick; y3l=y3r+thick; x1l=x3l=x1r;
+filldraw z1r..z2r..z3r..z4r..cycle;
+unfilldraw z1l..z2l..z3l..z4l..cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100); endchar;
+
+
+cmchar "Greek 394BC letter pi (p)";
+beginchar("p", 4u#+side#, cap_height#, 0);
+adjust_fit(0, 0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+x1l=x2l=pcshiftx; top y1l=h; bot y2l=0;
+filldraw stroke z1e--z2e;
+penpos3(thick,90); penpos4(thick,90);
+y3r=y4r=y1l; x3l=x1l; x4l=w-pcshiftx;
+filldraw stroke z3e--z4e;
+penpos5(thick,0); penpos6(thick,0);
+x5r=x6r=x4; top y5=h; bot y6=h/2;
+filldraw stroke z5e--z6e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100); endchar;
+
+
+cmchar "Greek 394BC letter rho (r)";
+beginchar("r", 2u#+5/9side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+penpos1(thick,0); penpos2(thick,0);
+ top lft z1l=(pcshiftx,h); bot lft z2l=(pcshiftx,0);
+filldraw stroke z1e--z2e; % vertical stem
+penpos3(thick,90); penpos4(thick,0); penpos5(thick,-90);
+top y3r=top y1; x3r=x1r;
+bot y5r=5/9[y1,y2]; x5=x3;
+x4r=x1l+5/9side; y4=0.5[y5r,y3r];
+filldraw z3r{right}..z4r{down}..z5r{left}--z5l{right}..z4l{up}..z3l{left}--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar;
+
+
+cmchar "Greek 394BC letter sigma (s)";
+beginchar("s", 2u#+2/3side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pair greek[];
+numeric theta[];
+numeric hor, vert;
+hor := 2/3side; vert := 1/3h;
+greek1=(hor,vert);
+theta1=270+angle(greek1);
+penpos1(thick,-theta1); penpos2(thick,-theta1);
+penpos7(thick,theta1); penpos8(thick,theta1);
+hor := 2/3side-thick; vert := h/2 - h/3;
+greek2=(hor,vert);
+theta2=270-angle(greek2);
+penpos3(thick,theta2); penpos4(thick,theta2);
+penpos5(thick,-theta2); penpos6(thick,-theta2);
+y1l=0; x1r=pcshiftx+2/3side;
+z2l=(pcshiftx,h/3);
+z3l=z2l;
+z4r=(pcshiftx+2/3side-thick, h/2);
+z5r=z4r;
+z6l=(pcshiftx,2/3h);
+z7l=z6l;
+y8l=h; x8r=x1r;
+z10=whatever[z1r,z2r]=whatever[z3r,z4r];
+z11=whatever[z3l,z4l]=whatever[z5l,z6l];
+z12=whatever[z5r,z6r]=whatever[z7r,z8r];
+filldraw z1l--z2l--z11--z6l--z8l--z8r--z12--z4r--z10--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,10,11,12,100); endchar;
+
+
+cmchar "Greek 394BC letter tau (t)";
+beginchar("t",2u#+side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric hor, vert, theta;
+numeric alpha[]; pair greek[];
+alpha1=h-thick;
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,0); z2=(w/2,alpha1);
+filldraw stroke z1e--z2e;
+penpos3(thick,90); penpos4(thick,90);
+z3r=(pcshiftx,alpha1); z4r=(w/2,alpha1);
+filldraw stroke z3e--z4e;
+hor := w/2; vert := h/5;
+greek1=(hor,vert);
+theta = 270 + angle(greek1);
+penpos5(thick,theta);
+y5l=h; x5r=w-pcshiftx;
+filldraw z4l{right}..{greek1}z5r--z5l{-greek1}..{left}z4r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100); endchar;
+
+
+cmchar "Greek 394BC letter upsilon (y)";
+beginchar("y", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center of square
+numeric alpha, theta;
+numeric hor, vert;
+pair greek[];
+alpha=h/3;
+hor := h; vert := 0.75h;
+greek1 = (hor,vert); greek2 = (-hor, -vert);
+greek3 = (-hor,vert); greek4 = (hor, -vert);
+theta = 270 + angle(greek1);
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,0); z2=(w/2,alpha);
+penpos3(thick,theta);
+y3l=h; x3r=w-pcshiftx;
+penpos4(thick,-theta);
+y4r=h; x4l=pcshiftx;
+filldraw z1l--z1r--z2r{up}..{greek1}z3r--z3l{greek2}..{down}z2l--cycle;
+filldraw z1l--z1r--z2r{up}..{greek3}z4r--z4l{greek4}..{down}z2l--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,100); endchar; % End of "U"
+
+
+cmchar "Greek 394BC letter chi (X)";
+beginchar("X", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center of square
+numeric theta;
+theta = 270+45;
+penpos1(thick,theta); penpos2(thick,theta);
+x1l=pcshiftx; y1r=0; x2r=pcshiftx+side; y2l=h;
+filldraw stroke z1e--z2e;
+penpos3(thick,-theta); penpos4(thick,-theta);
+x3l=pcshiftx; y3r=h; x4r=pcshiftx+side; y4l=0;
+filldraw stroke z3e--z4e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100); endchar;
+
+
+cmchar "Greek 394BC letter phi (f)";
+beginchar("f", 2u#+2/3side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,0); z2=(w/2,h);
+z0=(w/2,h/2);
+numeric alpha;
+alpha := 1/3h;
+y3o=y3i=y5i=y5o=h/2;
+x3o=x0-alpha; x3i=x3o+thick; x5o=x0+alpha; x5i=x5o-thick;
+x4o=x4i=x6i=x6o=w/2;
+y4o=y0+alpha; y4i=y4o-thick; y6o=y0-alpha; y6i=y6o+thick;
+unfilldraw z3i..z4i..z5i..z6i..cycle;
+filldraw z3o..z4o..z5o..z6o..cycle;
+filldraw stroke z1e--z2e; filldraw stroke z1e--z2e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar;
+
+
+cmchar "Greek 394BC letter psi (P)";
+beginchar("P", 2u#+5/6side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric alpha, beta;
+numeric hor, vert, theta;
+pair greek;
+alpha=5/6; % scale factor
+beta=1/3alpha*side+thick; % arm seperation height
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,0); z2=(w/2,h);
+filldraw stroke z1e--z2e;
+hor := w/2; vert := h-beta;
+greek = (hor,vert);
+theta=270+angle(greek);
+penpos3(thick,theta); penpos4(thick,theta);
+z3l=(w/2,beta); y4l=alpha*h; x4r=w-pcshiftx;
+penpos5(thick,-theta); penpos6(thick,-theta);
+z5r=z3l; x6l=pcshiftx; y6r=y4l;
+z10=whatever[z1r,z2r]=whatever[z3r,z4r];
+z11=whatever[z1l,z2l]=whatever[z5l,z6l];
+filldraw z3l--z4l--z4r--z10--cycle; % right arm
+filldraw z5r--z6r--z6l--z11--cycle; % left arm
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,10,11,100);
+endchar;
+
+
+cmchar "Greek 394BC letter omega (O)";
+beginchar("O", 2u#+4/3side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+penpos1(thick,90); penpos2(thick,90); penpos3(thick,90); penpos4(thick,90);
+z1l=(pcshiftx,0); z4l=(w-pcshiftx,0);
+x2l = w/2-side/4; x3l=w/2+side/4; y2l=y3l=0;
+numeric theta, hor, vert;
+pair greek[];
+hor := x2r-pcshiftx; vert := h;
+greek1=(hor,vert); greek2=(-hor,-vert);
+greek3=(-hor,vert); greek4=(hor,-vert);
+theta = 270+angle(greek1);
+penpos5(thick,-theta); penpos9(thick,theta);
+z5r=z2l; z9l=z3l;
+penpos6(thick,0); penpos8(thick,0);
+z6l=(w/2-side/2, h/2); z8r=(w/2+side/2, h/2);
+penpos7(thick,90);
+z7r=(w/2,h);
+path p[];
+p1=z5l{greek3}..z6l{up}..{right}z7r;
+p2=z7r{right}..z8r{down}..{greek2}z9r;
+p3=z1r--z4r;
+z10 = p3 intersectionpoint p1;
+z11 = p3 intersectionpoint p2;
+filldraw z1r--z10{greek3}..z6l{up}..z7r{right}..z8r{down}..{greek2}z11--z4r
+ --z4l--z3l{greek1}..z8l{up}..z7l{left}..z6r{down}..{greek4}z2l--z1l--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,100);
+endchar;
+
+
+cmchar "Greek 394BC letter beta (rough, B)";
+beginchar("B",4u#+2/3side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric beta;
+beta := side/10; % amount to extend top and bottom
+penpos1(thick,0); penpos2(thick,0);
+y2l=-beta; y1l=h+beta; x1l=x2l=pcshiftx;
+numeric alpha, long, short, hypot;
+long=(w-2pcshiftx); short=h/4; hypot=short++long;
+alpha := hypot/long;
+penpos3(alpha*thick,90); penpos4(alpha*thick,90);
+penpos5(alpha*thick,90); penpos6(alpha*thick,90);
+z3l=z2l;
+x4l=w-pcshiftx; y4l=0.25[y2l,y1l];
+z5r=z4l;
+x6l=x2r; y6l=0.5[y2l,y1l];
+penpos7(alpha*thick,90); penpos8(alpha*thick,90);
+penpos9(alpha*thick,90); penpos10(alpha*thick,90);
+z7r=z6l;
+x8l=x4l; y8l=0.75[y2l,y1l];
+z9r=z8l;
+z10r=z1l;
+z11=whatever[z2r,z1r]=whatever[z3r,z4r]; % bottom bowl and stem
+z12=whatever[z3r,z4r]=whatever[z6l,z5l]; % bottom bowl inner
+z13=whatever[z5r,z6r]=whatever[z7l,z8l]; % between the bowls
+z14=whatever[z7r,z8r]=whatever[z9l,z10l]; % top bowl inner
+z15=whatever[z2r,z1r]=whatever[z9l,z10l]; % top bowl and stem
+filldraw z1l--z2l--z4l--z13--z8l--cycle;
+unfilldraw z6l--z12--z11--cycle;
+unfilldraw z7r--z15--z14--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,100);
+endchar;
+
+
+cmchar"Greek 394BC letter mu (rough, M)";
+beginchar("M", 2u#+side#+2thick#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+thick;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric alpha, hor, vert, hypot, theta[];
+pair greek[];
+hor := 3thick; vert := side;
+greek1 = (hor, vert);
+theta1 = 270 + angle(greek1);
+numeric beta;
+beta := thick; % extra depth below baseline
+penpos1(thick,theta1); penpos2(thick,theta1);
+z1r=(pcshiftx,-beta); z2l=(pcshiftx+2thick,h);
+penpos3(thick,-theta1); penpos4(thick,-theta1);
+z3l=(pcshiftx+side,0); z4r=(pcshiftx+side-2thick,h);
+z0=z100;
+theta2 = 270 + angle(z4r-z0);
+penpos5(thick,-theta2); penpos6(thick,-theta2);
+z5r=z0; z6r=z2l;
+penpos7(thick,theta2); penpos8(thick,theta2);
+z7l=z0; z8l=z4r;
+z9=whatever[z1r,z2r]=whatever[z5l,z6l];
+z10=whatever[z5l,z6l]=whatever[z7r,z8r];
+z11=whatever[z7r,z8r]=whatever[z3l,z4l];
+filldraw z1l--z2l--z0--z4r--z3r--z3l--z11--z10--z9--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,100); endchar;
+
+
+cmchar "Greek 394BC letter nu (rough, N)";
+beginchar("N", 4u#+side#, cap_height#,0);
+adjust_fit(0,0);
+pcshiftx := 2u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric hor, vert, theta;
+pair greek[];
+hor = side-thick; vert = h;
+greek1=(hor,vert);
+theta=270 + angle(greek1);
+numeric beta;
+beta := thick; % extra extensions of the legs
+penpos1(thick,0); penpos2(thick,0);
+z1l=(pcshiftx,-beta); z2l=(pcshiftx,h);
+penpos3(thick,0); penpos4(thick,0);
+z3r=(pcshiftx+side,0); z4r=(pcshiftx+side,h+beta);
+penpos5(thick,-theta); penpos6(thick,-theta);
+z5l=z3r; z6r=z2l;
+z7=whatever[z1r,z2r]=whatever[z5l,z6l];
+z8=whatever[z5r,z6r]=whatever[z3l,z4l];
+filldraw z1l--z2l--z8--z4l--z4r--z3r--z7--z1r--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100); endchar;
+
+
+cmchar "Greek 394BC letter rho (rough, R)";
+beginchar("R", 2u#+2/3side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % square center
+numeric beta;
+beta := side/10; % extra top and bottom extensions
+penpos1(thick,0); penpos2(thick,0);
+ top lft z1l=(pcshiftx,h+beta); bot lft z2l=(pcshiftx,-beta);
+filldraw stroke z1e--z2e; % vertical stem
+penpos3(thick,90); penpos4(thick,0); penpos5(thick,-90);
+top y3r=top y1; x3r=x1r;
+bot y5r=5/9[y1,y2]; x5=x3;
+x4r=x1l+5/9side; y4=0.5[y5r,y3r];
+filldraw z3r{right}..z4r{down}..z5r{left}--z5l{right}..z4l{up}..z3l{left}--cycle;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar;
+
+
+cmchar "Greek 394BC letter upsilon (rough, Y)";
+beginchar("Y", 2u#+6/5side#, cap_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100=h/2; x100=pcshiftx+y100; % center of square
+numeric beta;
+beta := side/10; % extra at top and bottom
+numeric alpha, theta;
+numeric hor, vert;
+pair greek[];
+alpha=h/3;
+hor := h; vert := 0.75h;
+greek1 = (hor,vert); greek2 = (-hor, -vert);
+greek3 = (-hor,vert); greek4 = (hor, -vert);
+theta = 270 + angle(greek1);
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,-beta); z2=(w/2,alpha);
+penpos3(thick,theta);
+y3l=h+beta; x3r=w-pcshiftx;
+penpos4(thick,-theta);
+y4r=h+beta; x4l=pcshiftx;
+filldraw z1l--z1r--z2r{up}..{greek1}z3r--z3l{greek2}..{down}z2l--cycle;
+filldraw z1l--z1r--z2r{up}..{greek3}z4r--z4l{greek4}..{down}z2l--cycle;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,100); endchar; % End of "u"
+
+
+cmchar "Greek 394BC letter phi (rough, F)";
+beginchar("F", 2u#+4/5side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric beta;
+beta := side/10; % extra at top and bottom
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,-beta); z2=(w/2,h+beta);
+z0=(w/2,h/2);
+numeric alpha;
+alpha := 2/5side;
+y3o=y3i=y5i=y5o=h/2;
+x3o=x0-alpha; x3i=x3o+thick; x5o=x0+alpha; x5i=x5o-thick;
+x4o=x4i=x6i=x6o=w/2;
+y4o=y0+alpha; y4i=y4o-thick; y6o=y0-alpha; y6i=y6o+thick;
+unfilldraw z3i..z4i..z5i..z6i..cycle;
+filldraw z3o..z4o..z5o..z6o..cycle;
+filldraw stroke z1e--z2e; filldraw stroke z1e--z2e;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar;
+
+
+cmchar "Greek 394BC letter psi (rough, Q)";
+beginchar("Q", 2u#+side#, cap_height#,0);
+adjust_fit(0, 0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx + y100; % center point
+numeric alpha, beta;
+numeric hor, vert, theta;
+pair greek;
+alpha=1; % scale factor
+beta=1/3alpha*side+thick; % arm seperation height
+numeric gamma;
+gamma := side/10; % extra at top and bottom
+penpos1(thick,0); penpos2(thick,0);
+z1=(w/2,-gamma); z2=(w/2,h+gamma);
+filldraw stroke z1e--z2e;
+hor := w/2; vert := h-beta;
+greek = (hor,vert);
+theta=270+angle(greek);
+penpos3(thick,theta); penpos4(thick,theta);
+z3l=(w/2,beta); y4l=alpha*h; x4r=w-pcshiftx;
+penpos5(thick,-theta); penpos6(thick,-theta);
+z5r=z3l; x6l=pcshiftx; y6r=y4l;
+z10=whatever[z1r,z2r]=whatever[z3r,z4r];
+z11=whatever[z1l,z2l]=whatever[z5l,z6l];
+filldraw z3l--z4l--z4r--z10--cycle; % right arm
+filldraw z5r--z6r--z6l--z11--cycle; % left arm
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,10,11,100);
+endchar;
+
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/archaic/gvibc10.mf b/Master/texmf-dist/fonts/source/archaic/gvibc10.mf
new file mode 100644
index 00000000000..07fab0a4262
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/archaic/gvibc10.mf
@@ -0,0 +1,354 @@
+%%
+%% This is file `gvibc10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% greek6cbc.dtx (with options: `up')
+%% ------------------------------------------------------------------
+%% Author: Peter Wilson (Herries Press) herries dot press at earthlink dot net
+%% Copyright 1999--2005 Peter R. Wilson
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the Latex Project Public License, either
+%% version 1.3 of this license or (at your option) any
+%% later version.
+%% The latest version of the license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of
+%% LaTeX version 2003/06/01 or later.
+%%
+%% This work has the LPPL maintenance status "author-maintained".
+%%
+%% This work consists of the files listed in the README file.
+%% ------------------------------------------------------------------
+%%% GVIBC10.MF Computer Greek font (6th century BC) 10 point design size.
+
+
+font_identifier:="Greek"; font_size 10pt#;
+
+u#:=.2pt#; % unit width
+ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt)
+s#:=1.5pt#; % width correction (right and left)
+o#:=1/20pt#; % overshoot
+px#:=.7pt#; % horizontal width of pen
+font_normal_space:=7pt#; % width of a blank space
+font_normal_shrink:=.9pt#; % width correction for blank space
+font_x_height:=4.5pt#; % height of one ex
+font_quad:=10pt#; % an em
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_coding_scheme:="Greek glyphs";
+mode_setup;
+
+ho#:=o#; % horizontal overshoot
+leftloc#:=s#; % leftmost xcoord of character
+py#:=.9px#; % vertical thickness of the pen
+
+define_pixels(s,u);
+define_blacker_pixels(px,py);
+define_good_x_pixels(leftloc);
+define_corrected_pixels(o); % turn on overshoot correction
+define_horizontal_corrected_pixels(ho);
+
+numeric midloc, rightloc;
+pickup pencircle xscaled px yscaled py;
+stylus:=savepen;
+
+def beginglyph(expr code, unit_width) =
+ beginchar(code, unit_width*ht#+2s#, ht#, 0);
+ midloc:=1/2w; rightloc:=(w-s);
+ pickup stylus enddef;
+
+let cmchar=\;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+cmchar "Greek letter alpha (a)";
+beginglyph("a",0.6);
+x1=leftloc; x3=rightloc; % base points
+bot y1 = bot y3 = -o;
+x2 = midloc; top y2 = h; % apex
+draw z1--z2--z3; % draw the legs
+z4 = 0.4[z1, z2];
+draw z3--z4; % draw the bar
+labels(1,2,3,4);
+endchar;
+
+
+cmchar "Greek letter beta (b)";
+beginglyph("b",0.6);
+x1=x3=x5=leftloc;
+x2=x4=rightloc;
+bot y1=-o; top y5=h;
+y2=1/4h; y3=1/2h; y4=3/4h;
+draw z1--z5; % the upright
+draw z1{right}..z2..z3{left}; % lower bowl
+draw z3{right}..z4..z5{left}; % upper bowl
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter gamma (g)";
+beginglyph("g", 0.4);
+x1=x2=leftloc; x3=rightloc;
+bot y1=-o; top y2 = top y3= h;
+draw z1--z2--z3;
+labels(1,2,3); endchar;
+
+
+cmchar "Greek letter delta (d)";
+beginglyph("d",0.6);
+x1=leftloc; x2=midloc; x3=rightloc;
+bot y1 = bot y3= 0;
+top y2=h;
+draw z1--z2--z3--cycle;
+labels(1,2,3); endchar;
+
+
+cmchar "Greek letter epsilon (e)";
+beginglyph("e",0.6);
+x1=x3=leftloc; x4=x6=rightloc;
+bot y1= bot y4= -o; top y3= top y6= h;
+z2=0.5[z1,z3]; z5=0.5[z4,z6];
+draw z4--z1--z3--z6;
+draw z2--z5;
+labels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Greek letter digamma (F)";
+beginglyph("F",0.6);
+x1=x3=leftloc; x4=x6=rightloc;
+bot y1= bot y4= -o; top y3= top y6= h;
+z2=0.65[z1,z3]; z5=0.65[z4,z6];
+draw z1--z3--z6;
+draw z2--z5;
+labels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Greek letter zeta (z)";
+beginglyph("z",0.2);
+x1=x2=midloc;
+bot y1=-o; top y2=h;
+draw z1--z2; % the upright
+x3=x5=leftloc; x4=x6=rightloc;
+y3=y4=y1; y5=y6=y2;
+draw z3--z4; % lower bar
+draw z5--z6; % upper bar
+labels(1,2); endchar;
+
+
+cmchar "Greek letter eta (h)";
+beginglyph("h", 0.6);
+numeric alpha;
+x1=x3=leftloc; x4=x6=rightloc;
+bot y1 = bot y4= -o; top y3= top y6= h;
+z2=0.5[z1,z3]; z5=0.5[z4,z6];
+draw z1--z3--z6--z4--cycle; % rectangle
+draw z2--z5; % bar
+labels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Greek letter theta (T)";
+beginglyph("T",1.0);
+path p;
+x1=leftloc; x3=rightloc;
+y2=h; y4=0;
+x2=x4=midloc;
+y1=y3=h/2;
+z100=(x2,y3); % circle center
+p = z1..z2..z3..z4..cycle; % the circle
+draw p;
+draw z1--z3; draw z2--z4; % the cross
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter iota (i)";
+beginglyph("i",0.2);
+x1=x2=midloc;
+bot y1=-o; top y2=h;
+draw z1--z2;
+labels(1,2); endchar;
+
+
+cmchar "Greek letter kappa (k)";
+beginglyph("k",0.6);
+numeric alpha;
+alpha:=0.1;
+x1=rightloc;
+x2=x1+alpha*(w-s);
+x3=x4=x5=leftloc;
+bot y1= bot y3=-o;
+y2=y5=h; y4=1/2h;
+draw z3--z5; % the upright
+draw z1--z4; draw z4--z2; % the arms
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter lambda (l)";
+beginglyph("l",0.4);
+x1=x2=leftloc; x3=rightloc;
+bot y1=-o; y2=h;
+y3=.7h;
+draw z1--z2--z3;
+labels(1,2,3); endchar;
+
+
+cmchar"Greek letter mu (m)";
+beginglyph("m",1.0);
+x1=rightloc;
+x5=x6=leftloc;
+x2=3/4[x5,x1]; x3=1/2[x5,x1]; x4=1/4[x5,x1];
+bot y6= -o;
+top y5= top y3 = h;
+top y1=.8h;
+y2=.6h;
+y4=.7h;
+draw z6--z5;
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Greek letter nu (n)";
+beginglyph("n",0.6);
+x1=x2=leftloc; x3=x4=rightloc;
+y1=0; y2=0.8h; y3=0.3h; y4=h;
+draw z1--z2--z3--z4;
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter xi (x)";
+beginglyph("x", 0.6);
+x1=x3=leftloc; x4=x6=rightloc;
+bot y1= bot y4= -o; top y3= top y6= h;
+z2=0.5[z1,z3]; z5=0.5[z4,z6];
+z7=0.5[z1,z4]; z8=0.5[z3,z6];
+draw z1--z4; draw z2--z5; draw z3--z6; % horizontals
+draw z7--z8; % vertical
+labels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "Greek letter omicron (o)";
+beginglyph("o",1.0);
+x1=leftloc; x3=rightloc;
+y2=h; y4=0;
+x2=x4=midloc;
+y1=y3=h/2;
+draw z1..z2..z3..z4..cycle;
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter pi (p)";
+beginglyph("p", 0.4);
+x1=x2=leftloc; x3=x4=rightloc;
+bot y1=-o; top y2= top y3= h; y4=0.6h;
+draw z1--z2--z3--z4;
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter (koppa) q";
+beginglyph("q",0.6);
+numeric alpha;
+x1=leftloc;
+x3=rightloc;
+alpha=0.5(x3-x1); % circle radius
+y2=h;
+y4=y2-2alpha;
+bot y5=-o;
+x2=x4=x5=midloc;
+y1=y3=h-alpha;
+draw z1..z2..z3..z4..cycle; % the circle
+draw z5--z4; % the upright
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter rho (r)";
+beginglyph("r", 0.4);
+x1=x2=x3=leftloc; x4=rightloc;
+bot y1=-o; top y2=h;
+y3=y4=0.5h;
+draw z1--z2--z4--z3; % the P shape
+x5=midloc; y5=0.2h;
+draw z3--z5; % a little leg
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter sigma (s)";
+beginglyph("s", 0.8);
+x2=x4=leftloc; x1=x5=rightloc;
+y1=0; y5=h;
+y2=0.1h; y4=0.9h;
+z3=(midloc,0.5h);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter tau (t)";
+beginglyph("t", 0.6);
+x1=midloc; x2=leftloc; x4=rightloc;
+bot y1=-o; top y2= top y4= h;
+z3=0.5[z2,z4];
+draw z1--z3; % upright
+draw z2--z4; % bar
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter upsilon (y)";
+beginglyph("y", 0.6);
+x1=x3=midloc; x2=leftloc; x4=rightloc;
+bot y1=-o; top y2= top y4= h;
+y3=0.6h;
+draw z1--z3; % upright
+draw z2--z3--z4; % V
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter chi (X)";
+beginglyph("X", 0.6);
+x1=x2=leftloc; x3=x4=rightloc;
+bot y1= bot y3=-o; top y2= top y4=h;
+draw z1--z4; draw z2--z3;
+labels(1,2,3,4); endchar;
+
+
+cmchar "Greek letter phi (f)";
+beginglyph("f",0.6);
+x1=leftloc; x3=rightloc;
+x2=x4=midloc;
+y1=y3=0.5h;
+y2=h; y4=0;
+draw z1..z2..z3..z4..cycle; % the oval
+draw z4--z2; % the upright
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter psi (P)";
+beginglyph("P", 0.6);
+x1=x3=midloc; x2=leftloc; x4=rightloc;
+bot y1=-o; top y2= top y4= h;
+y3=0.5h;
+z5=0.5[z2,z4];
+draw z1--z5; % upright
+draw z2--z3--z4; % V
+labels(1,2,3,4,5); endchar;
+
+
+cmchar "Greek letter omega (O)";
+beginglyph("O", 1.0);
+x1=leftloc; x4=rightloc;
+y1=y4=0;
+z2=0.35[z1,z4]; z3=0.35[z4,z1];
+x7=midloc; y7=h;
+x5=0.1[x1,x4]; x6=0.1[x4,x1];
+y5=y6=0.5h;
+draw z1--z2..z5..z7..z6..z3--z4;
+labels(1,2,3,4,5,6,7); endchar;
+
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/archaic/vik10.mf b/Master/texmf-dist/fonts/source/archaic/vik10.mf
new file mode 100644
index 00000000000..fedc7050ea6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/archaic/vik10.mf
@@ -0,0 +1,38 @@
+%%
+%% This is file `vik10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% viking.dtx (with options: `up')
+%%
+%% Copyright 2003 Uwe Zimmermann
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Uwe Zimmermann
+%% uwe.zimmermann@sciencetronics.com
+%%
+%% based on runic.ins by Peter R. Wilson
+%%
+%%% VIK10.MF Computer Runic font 10 point design size.
+
+
+font_identifier:="Viking"; font_size 10pt#;
+
+u#:=.2pt#; % unit width
+ht#:=7pt#; % height of characters (CM cap-height is approx 6.8pt)
+s#:=1.5pt#; % width correction (right and left)
+o#:=1/20pt#; % overshoot
+px#:=.7pt#; % horizontal width of pen
+font_normal_space:=7pt#; % width of a blank space
+font_normal_shrink:=.9pt#; % width correction for blank space
+font_x_height:=4.5pt#; % height of one ex
+font_quad:=10pt#; % an em
+
+input viktitle %% switch to the driver file---Runic title
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/archaic/vikglyph.mf b/Master/texmf-dist/fonts/source/archaic/vikglyph.mf
new file mode 100644
index 00000000000..aa2408f2e8b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/archaic/vikglyph.mf
@@ -0,0 +1,394 @@
+%%
+%% This is file `vikglyph.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% viking.dtx (with options: `maj')
+%%
+%% Copyright 2003 Uwe Zimmermann
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Uwe Zimmermann
+%% uwe.zimmermann@sciencetronics.com
+%%
+%% based on runic.ins by Peter R. Wilson
+%%
+cmchar "Runic letter F";
+beginglyph("F",0.6);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.4h);
+z3 = (leftloc, 0.7h);
+z4 = (leftloc, 1.0h);
+z5 = (midloc, 1.0h);
+z6 = (rightloc, 1.0h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter U";
+beginglyph("U",0.6);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (0.75rightloc, 0.65h);
+z4 = (rightloc, 0.0h);
+draw z1--z2--z3--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter TH";
+beginglyph("D",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.2h);
+z3 = (leftloc, 0.8h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.5h);
+draw z1--z4;
+draw z2--z5;
+draw z3--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter O";
+beginglyph("O",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.4h);
+z3 = (leftloc, 0.7h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.5h);
+z6 = (rightloc, 0.2h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter R";
+beginglyph("R",0.6);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (0.7(leftloc+rightloc), 0.75h);
+z4 = (0.3(leftloc+rightloc), 0.5h);
+z5 = (rightloc, 0.0h);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter K";
+beginglyph("K",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 1.0h);
+draw z1--z3;
+draw z2--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter G";
+beginglyph("G",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 1.0h);
+z5 = (midloc, 0.95h);
+draw z1--z3;
+draw z2--z4;
+draw z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter H";
+beginglyph("H",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (leftloc, 0.3h);
+z4 = (leftloc, 0.7h);
+z5 = (rightloc, 0.7h);
+z6 = (rightloc, 0.3h);
+draw z1--z2;
+draw z3--z5;
+draw z4--z6;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter N";
+beginglyph("N",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z4 = (leftloc, 0.7h);
+z6 = (rightloc, 0.3h);
+draw z1--z2;
+draw z4--z6;
+labels(1,2,4,6);
+endchar;
+cmchar "Runic letter I";
+beginglyph("I",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+draw z1--z2;
+labels(1,2);
+endchar;
+cmchar "Runic letter E";
+beginglyph("E",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (midloc, 0.5h);
+draw z1--z2;
+pickup stugna
+draw z3;
+labels(1,2,3);
+endchar;
+cmchar "Runic letter A";
+beginglyph("A",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z4 = (leftloc, 0.3h);
+z6 = (rightloc, 0.7h);
+draw z1--z2;
+draw z4--z6;
+labels(1,2,4,6);
+endchar;
+cmchar "Runic letter S";
+beginglyph("S",0.4);
+z1 = (rightloc, 0.0h);
+z2 = (rightloc, 0.7h);
+z3 = (leftloc, 0.3h);
+z4 = (leftloc, 1.0h);
+draw z1--z2--z3--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter Z";
+beginglyph("Z",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.7h);
+z3 = (rightloc, 0.3h);
+z4 = (rightloc, 1.0h);
+draw z1--z2--z3--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter T";
+beginglyph("T",0.4);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (leftloc, 0.8h);
+z4 = (rightloc, 0.8h);
+draw z1--z2;
+draw z2--z3;
+draw z2--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter B";
+beginglyph("B",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 0.75h);
+z5 = (rightloc, 0.25h);
+draw z1--z3;
+draw z3--z4--z2;
+draw z2--z5--z1;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter M";
+beginglyph("M",0.6);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 0.7h);
+z3 = (midloc, 1.0h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 1.0h);
+draw z1--z3;
+draw z2--z4;
+draw z2--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter L";
+beginglyph("L",0.4);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (rightloc, 0.8h);
+draw z1--z2--z3;
+labels(1,2,3);
+endchar;
+cmchar "Runic letter Y";
+beginglyph("Y",0.6);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 0.3h);
+z3 = (midloc, 1.0h);
+z4 = (leftloc, 0.0h);
+z5 = (rightloc, 0.0h);
+draw z1--z3;
+draw z2--z4;
+draw z2--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter :";
+beginglyph(":",0.2);
+z3 = (leftloc, 0.4h);
+z4 = (leftloc, 0.6h);
+z5 = (rightloc, 0.6h);
+z6 = (rightloc, 0.4h);
+draw z3--z5;
+draw z4--z6;
+labels(3,4,5,6);
+endchar;
+cmchar "Runic letter .";
+beginglyph(".",0.2);
+z3 = (midloc, 0.5h);
+draw z3;
+labels(3);
+endchar;
+cmchar "Runic letter F";
+beginglyph("f",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 0.75h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 1.0h);
+z6 = (rightloc, 0.75h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter U";
+beginglyph("u",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z4 = (rightloc, 0.0h);
+draw z1--z2--z4;
+labels(1,2,4);
+endchar;
+cmchar "Runic letter TH";
+beginglyph("d",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.2h);
+z3 = (leftloc, 0.8h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.5h);
+draw z1--z4;
+draw z2--z5;
+draw z3--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter O";
+beginglyph("o",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.4h);
+z3 = (leftloc, 0.7h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.5h);
+z6 = (rightloc, 0.2h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter R";
+beginglyph("r",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (0.7(leftloc+rightloc), 0.75h);
+z4 = (0.3(leftloc+rightloc), 0.5h);
+z5 = (rightloc, 0.0h);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+endchar;
+cmchar "Runic letter K";
+beginglyph("k",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.5h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 1.0h);
+draw z1--z3;
+draw z2--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter H";
+beginglyph("h",0.2);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (leftloc, 0.5h);
+z5 = (rightloc, 0.5h);
+draw z1--z2;
+draw z3--z5;
+labels(1,2,3,5);
+endchar;
+cmchar "Runic letter N";
+beginglyph("n",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z4 = (leftloc, 0.6h);
+z6 = (rightloc, 0.3h);
+draw z1--z2;
+draw z4--z6;
+labels(1,2,4,6);
+endchar;
+cmchar "Runic letter I";
+beginglyph("i",0.2);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+draw z1--z2;
+labels(1,2);
+endchar;
+cmchar "Runic letter A";
+beginglyph("a",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z4 = (leftloc, 0.4h);
+z6 = (rightloc, 0.7h);
+draw z1--z2;
+draw z4--z6;
+labels(1,2,4,6);
+endchar;
+cmchar "Runic letter S";
+beginglyph("s",0.2);
+z1 = (midloc, 0.5h);
+z2 = (midloc, 1.0h);
+draw z1--z2;
+labels(1,2);
+endchar;
+cmchar "Runic letter T";
+beginglyph("t",0.3);
+z1 = (rightloc, 0.0h);
+z2 = (rightloc, 1.0h);
+z3 = (leftloc, 0.8h);
+draw z1--z2;
+draw z2--z3;
+labels(1,2,3);
+endchar;
+cmchar "Runic letter B";
+beginglyph("b",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 0.3h);
+z3 = (leftloc, 0.6h);
+z4 = (leftloc, 1.0h);
+z5 = (rightloc, 0.8h);
+z6 = (rightloc, 0.5h);
+draw z1--z4;
+draw z2--z6;
+draw z3--z5;
+labels(1,2,3,4,5,6);
+endchar;
+cmchar "Runic letter M";
+beginglyph("m",0.3);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 1.0h);
+z3 = (leftloc, 1.0h);
+z4 = (rightloc, 1.0h);
+draw z1--z2;
+draw z3--z4;
+labels(1,2,3,4);
+endchar;
+cmchar "Runic letter L";
+beginglyph("l",0.3);
+z1 = (leftloc, 0.0h);
+z2 = (leftloc, 1.0h);
+z3 = (rightloc, 0.8h);
+draw z1--z2--z3;
+labels(1,2,3);
+endchar;
+cmchar "Runic letter Y";
+beginglyph("y",0.2);
+z1 = (midloc, 0.0h);
+z2 = (midloc, 0.5h);
+draw z1--z2;
+labels(1,2);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/archaic/viktitle.mf b/Master/texmf-dist/fonts/source/archaic/viktitle.mf
new file mode 100644
index 00000000000..0b3a96e83c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/archaic/viktitle.mf
@@ -0,0 +1,52 @@
+%%
+%% This is file `viktitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% viking.dtx (with options: `mfd')
+%%
+%% Copyright 2003 Uwe Zimmermann
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Uwe Zimmermann
+%% uwe.zimmermann@sciencetronics.com
+%%
+%% based on runic.ins by Peter R. Wilson
+%%
+
+font_coding_scheme:="Runic glyphs";
+mode_setup;
+
+ho#:=o#; % horizontal overshoot
+leftloc#:=s#; % leftmost xcoord of character
+py#:=.9px#; % vertical thickness of the pen
+
+define_pixels(s,u);
+define_blacker_pixels(px,py);
+define_good_x_pixels(leftloc);
+define_corrected_pixels(o); % turn on overshoot correction
+define_horizontal_corrected_pixels(ho);
+
+numeric midloc, rightloc;
+pickup pencircle xscaled px yscaled py;
+stylus:=savepen;
+
+pickup pencircle xscaled 2px yscaled 2px;
+stugna:=savepen;
+
+def beginglyph(expr code, unit_width) =
+ beginchar(code, unit_width*ht#+2s#, ht#, 0);
+ midloc:=1/2w; rightloc:=(w-s);
+ pickup stylus enddef;
+
+let cmchar=\;
+
+
+input vikglyph; % Runic glyphs
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi.mf
new file mode 100644
index 00000000000..d0d733a1391
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi.mf
@@ -0,0 +1,92 @@
+% ecbi.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Bold Extended Text Italic
+%
+%
+font_identifier:="ECBXTI";
+font_size gensize*pt#;
+basedef ( 7, 8, 9, 10, 12, 14.40, 17.28, 24.88, 35.83);
+gendef [1/36pt#]( u# )( 16, 18, 19.56, 21.2, 24.8, 28.9, 37.2, 49.59, 67.6);
+gendef [1/36pt#]( width_adj# )( 8.6, 9.4, 10.2, 11, 13, 15, 19.5, 26, 35.45);
+serif_fit# :=0pt#;
+gendef [1/36pt#]( cap_serif_fit# )( 4.6, 5.4, 6.2, 7, 8, 9.3, 12, 16, 21.8);
+gendef [1/36pt#]( letter_fit# )( 8.8, 9.5, 10.22, 11, 13, 15.12, 19.48, 25.98, 35.42);
+gendef [1/36pt#]( body_height# )( 189, 216, 243, 270, 324, 378, 486, 648, 972);
+gendef [1/36pt#]( asc_height# )( 175, 200, 225, 250, 300, 350, 450, 600, 900);
+gendef [1/36pt#]( cap_height# )(172.2, 197.6, 222.3, 247, 296.4, 345.8, 444.6, 592.8, 889);
+gendef [1/36pt#]( fig_height# )(162.4, 185.6, 208.8, 232, 278.4, 324.8, 417.6, 556.8, 835);
+gendef [1/36pt#]( x_height# )( 112, 128, 144, 160, 192, 224, 288, 384, 576);
+gendef [1/36pt#]( math_axis# )( 63, 72, 81, 90, 108, 126, 162, 216, 324);
+gendef [1/36pt#]( bar_height# )( 60.9, 67, 76, 85, 102, 119, 153, 204, 306);
+gendef [1/36pt#]( comma_depth# )( 49, 56, 63, 70, 84, 98, 126, 168, 252);
+gendef [1/36pt#]( desc_depth# )( 49, 56, 63, 70, 84, 98, 126, 168, 252);
+gendef [1/36pt#]( acc_height# )( 52.5, 60, 67.5, 75, 90, 105, 120, 150, 210);
+gendef [1/36pt#]( dot_height# )( 52.5, 60, 67.5, 75, 90, 105, 120, 150, 210);
+gendef [1/36pt#]( udot_height# )( 28.5, 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 12, 12, 13, 13, 13, 11, 13, 13, 13);
+gendef [1/36pt#]( tiny# )( 12, 12, 13, 13, 13, 13, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 10, 10, 10, 10, 10, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 10, 10, 10, 10, 10.5, 12.25, 15.75, 21, 28);
+gendef [1/36pt#]( hair# )( 18.6, 19, 19.4, 20, 21.5, 25, 32.22, 42.26, 57.5);
+gendef [1/36pt#]( stem# )( 30, 32, 34.7, 38, 43, 50.08, 64.43, 85.9, 117);
+gendef [1/36pt#]( curve# )( 33, 36, 39.6, 43, 48, 55.98, 72, 95, 130);
+gendef [1/36pt#]( ess# )( 26, 29, 31.8, 35, 40, 46.6, 60, 80, 109);
+gendef [1/36pt#]( flare# )( 34, 36, 38.6, 42, 47, 54.97, 70.45, 94, 128);
+gendef [1/36pt#]( dot_size# )( 38, 43, 48, 53, 58, 67.6, 87, 116, 158);
+gendef [1/36pt#]( cap_hair# )( 19, 20, 21, 22, 23, 26.79, 34.5, 46, 62.6);
+gendef [1/36pt#]( cap_stem# )( 37, 41, 45, 49, 54.7, 63.77, 82, 109, 148.6);
+gendef [1/36pt#]( cap_curve# )( 38, 43, 47.6, 52, 57, 66.4, 85, 114, 155);
+gendef [1/36pt#]( cap_ess# )( 36, 40.4, 45.5, 50, 55.5, 64.67, 83, 111, 151);
+gendef [pt#]( rule_thickness#)( .51, .54, .57, .6, .66, .77, .99, 1.3, 1.8);
+gendef [1/36pt#]( dish# )( 1, 1, 1, 1, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 7, 8, 9, 10, 12, 14, 18, 24, 36);
+gendef [1/36pt#]( jut# )( 17, 20, 23.3, 27, 32, 37, 47.7, 63.6, 95.4);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 35, 39, 46, 53.6, 69, 92, 125);
+gendef [1/36pt#]( beak_jut# )( 7.3, 8.5, 9.29, 10, 11.3, 13.17, 17, 21.86, 30);
+gendef [1/36pt#]( beak# )( 47, 55, 62, 70, 84, 98, 126, 168, 252);
+gendef [1/36pt#]( vair# )( 11.5, 12, 12.5, 13, 14.3, 16.68, 21.45, 28, 39);
+gendef [pt#]( notch_cut# )( 7, 8, 9, 10, 12, 14, 18, 24, 36);
+gendef [1/36pt#]( bar# )( 14, 15, 16, 17, 18.5, 21.58, 27.75, 37, 50);
+gendef [1/36pt#]( slab# )( 14, 15, 16, 17, 18.5, 21.58, 27.75, 37, 50);
+gendef [1/36pt#]( cap_bar# )( 14, 15, 16, 17, 18.5, 21.58, 27.75, 37, 50);
+gendef [1/36pt#]( cap_band# )( 14, 15, 16, 17, 18.5, 21.58, 27.75, 37, 50);
+gendef [pt#]( cap_notch_cut# )( 7, 8, 9, 10, 12, 14, 18, 24, 36);
+gendef [1/36pt#]( serif_drop# )( 2.1, 2.4, 2.7, 3, 3.6, 4.2, 5.4, 7.2, 10.8);
+gendef [1/36pt#]( stem_corr# )( 1.7, 1.8, 1.9, 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1.2, 1.3, 1.4, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 5, 6, 7, 8, 9, 9.5, 10, 12, 16.3);
+gendef [1/36pt#]( apex_o# )( 3, 3.5, 4, 4.5, 5, 5.6, 6, 8, 10.9);
+slant:=1/4;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.1, .9, .7, .5, .4, .46, .41, .31, .23);
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate extextit
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0500.mf
new file mode 100644
index 00000000000..9c23d0a2ff1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0500.mf
@@ -0,0 +1,6 @@
+% This is ecbi0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0600.mf
new file mode 100644
index 00000000000..4aaccb5a7cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0600.mf
@@ -0,0 +1,6 @@
+% This is ecbi0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0700.mf
new file mode 100644
index 00000000000..fe5b29b2a35
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0700.mf
@@ -0,0 +1,6 @@
+% This is ecbi0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0800.mf
new file mode 100644
index 00000000000..eb61095294a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0800.mf
@@ -0,0 +1,6 @@
+% This is ecbi0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0900.mf
new file mode 100644
index 00000000000..6699f584eb0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi0900.mf
@@ -0,0 +1,6 @@
+% This is ecbi0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1000.mf
new file mode 100644
index 00000000000..9df6ef3e1a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1000.mf
@@ -0,0 +1,6 @@
+% This is ecbi1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1095.mf
new file mode 100644
index 00000000000..bb418b11360
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1095.mf
@@ -0,0 +1,6 @@
+% This is ecbi1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1200.mf
new file mode 100644
index 00000000000..75fa0748355
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1200.mf
@@ -0,0 +1,6 @@
+% This is ecbi1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1440.mf
new file mode 100644
index 00000000000..f30e2a05138
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1440.mf
@@ -0,0 +1,6 @@
+% This is ecbi1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1728.mf
new file mode 100644
index 00000000000..1baf7e4cf45
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi1728.mf
@@ -0,0 +1,6 @@
+% This is ecbi1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi2074.mf
new file mode 100644
index 00000000000..aed707cfb66
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi2074.mf
@@ -0,0 +1,6 @@
+% This is ecbi2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi2488.mf
new file mode 100644
index 00000000000..0ca36d75a8f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi2488.mf
@@ -0,0 +1,6 @@
+% This is ecbi2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi2986.mf
new file mode 100644
index 00000000000..bce1975bbca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi2986.mf
@@ -0,0 +1,6 @@
+% This is ecbi2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbi3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi3583.mf
new file mode 100644
index 00000000000..8ad46e217f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbi3583.mf
@@ -0,0 +1,6 @@
+% This is ecbi3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl.mf
new file mode 100644
index 00000000000..85ad7070a46
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl.mf
@@ -0,0 +1,92 @@
+% ecbl.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Bold Extended Slanted Roman
+%
+%
+font_identifier:="ECBXSL";
+font_size (gensize*pt#);
+basedef ( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 14.5, 16.2, 17.9, 19.6, 21.3, 23, 27);
+gendef [1/36pt#]( width_adj# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 13);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.6, 5.4, 6.2, 7, 8);
+gendef [1/36pt#]( letter_fit# )( 3, 2, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 123.5, 148.2, 172.9, 197.6, 222.3, 247, 296.4);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 80, 96, 112, 128, 144, 160, 192);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 40, 49, 58, 67, 76, 85, 102);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 11, 12, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 8, 9, 9, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 8, 9, 9, 10, 10, 10, 10.5);
+gendef [1/36pt#]( hair# )( 15, 15.4, 15.8, 16.2, 16.6, 17, 18.3);
+gendef [1/36pt#]( stem# )( 24, 28, 32, 35, 38, 41, 47);
+gendef [1/36pt#]( curve# )( 27, 31, 35, 39, 43, 46, 52);
+gendef [1/36pt#]( ess# )( 19, 25, 29, 32, 35, 38, 44);
+gendef [1/36pt#]( flare# )( 27, 31, 35, 39, 42, 45, 51);
+gendef [1/36pt#]( dot_size# )( 31, 36, 41, 46, 51, 56, 62);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 18, 19, 19, 19, 20);
+gendef [1/36pt#]( cap_stem# )( 28, 33, 38, 43, 47, 51, 57);
+gendef [1/36pt#]( cap_curve# )( 31, 36, 41, 46, 51, 55, 61);
+gendef [1/36pt#]( cap_ess# )( 24, 31, 37, 43, 48, 53, 59);
+gendef [pt#]( rule_thickness#)( .43, .47, .51, .54, .57, .60, .66);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( jut# )( 13, 15, 17, 19, 22, 25, 30);
+gendef [1/36pt#]( cap_jut# )( 19, 23, 27, 31, 35, 39, 46);
+gendef [1/36pt#]( beak_jut# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 12.4);
+gendef [1/36pt#]( beak# )( 25, 36, 46, 55, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 10, 11, 11.5, 12, 12.5, 13, 14.3);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( slab# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_band# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 1.5, 1.8, 2.1, 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( stem_corr# )( 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 5, 2, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3, 3, 4, 4, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 3, 3, 3, 4);
+slant:=1/6;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, 1.3, 1.1, .9, .7, .5, .5);
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0500.mf
new file mode 100644
index 00000000000..8743b127c87
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0500.mf
@@ -0,0 +1,6 @@
+% This is ecbl0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0600.mf
new file mode 100644
index 00000000000..466bed437b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0600.mf
@@ -0,0 +1,6 @@
+% This is ecbl0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0700.mf
new file mode 100644
index 00000000000..16ebb581711
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0700.mf
@@ -0,0 +1,6 @@
+% This is ecbl0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0800.mf
new file mode 100644
index 00000000000..7a1e4dc01b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0800.mf
@@ -0,0 +1,6 @@
+% This is ecbl0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0900.mf
new file mode 100644
index 00000000000..2cb08eef478
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl0900.mf
@@ -0,0 +1,6 @@
+% This is ecbl0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1000.mf
new file mode 100644
index 00000000000..5b11dbcfebf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1000.mf
@@ -0,0 +1,6 @@
+% This is ecbl1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1095.mf
new file mode 100644
index 00000000000..b2c98b354f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1095.mf
@@ -0,0 +1,6 @@
+% This is ecbl1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1200.mf
new file mode 100644
index 00000000000..fd4a44e0a59
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1200.mf
@@ -0,0 +1,6 @@
+% This is ecbl1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1440.mf
new file mode 100644
index 00000000000..94539a61673
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1440.mf
@@ -0,0 +1,6 @@
+% This is ecbl1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1728.mf
new file mode 100644
index 00000000000..eee33e60b55
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl1728.mf
@@ -0,0 +1,6 @@
+% This is ecbl1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl2074.mf
new file mode 100644
index 00000000000..d7e3f29a13d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl2074.mf
@@ -0,0 +1,6 @@
+% This is ecbl2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl2488.mf
new file mode 100644
index 00000000000..b6c8def3b48
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl2488.mf
@@ -0,0 +1,6 @@
+% This is ecbl2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl2986.mf
new file mode 100644
index 00000000000..5544f209901
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl2986.mf
@@ -0,0 +1,6 @@
+% This is ecbl2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbl3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl3583.mf
new file mode 100644
index 00000000000..db8486b792a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbl3583.mf
@@ -0,0 +1,6 @@
+% This is ecbl3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbm.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbm.mf
new file mode 100644
index 00000000000..f3b628f9ece
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbm.mf
@@ -0,0 +1,90 @@
+% ecbm.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% This is an experimental file, just for fun,
+%
+
+if unknown exbase: input exbase fi
+
+font_identifier:="ECBOM";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 9.5, 11, 12.5, 14, 15.5, 17, 20.5, 29.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.5, 5.1, 5.6, 6, 6.8, 9);
+gendef [1/36pt#]( letter_fit# )( 5, 3, 2, .1, .1, .1, .1, 0);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 36.5, 45.2, 57.9, 62.6, 71.3, 80, 96.4, 143);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( .8, .9, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 29, 31, 33, 35, 37, 38, 41, 46);
+gendef [1/36pt#]( curve# )( 28, 30.5, 33, 35.5, 38, 40, 43, 51);
+gendef [1/36pt#]( ess# )( 22, 27, 31, 33, 35, 37, 34, 45);
+gendef [1/36pt#]( flare# )( 28, 30, 33, 36, 39, 42, 45, 54);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 5, 5.5, 6, 6.5, 7, 8, 8.5, 10);
+gendef [1/36pt#]( cap_stem# )( 21, 26, 30, 34, 38, 42, 45, 50);
+gendef [1/36pt#]( cap_curve# )( 32, 35, 38, 41, 44, 48, 51, 59);
+gendef [1/36pt#]( cap_ess# )( 21, 26, 30, 34, 38, 42, 45, 50);
+gendef [pt#]( rule_thickness#)( .48, .51, .54, .56, .58, .6, .64, .8);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( .6, .68, .76, .84, .92, 1, 1.14, 1.5);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 6, 6.5, 7, 7.5, 8, 9, 10.5, 14);
+gendef [1/36pt#]( slab# )( 6, 6.5, 7, 7.5, 8, 9, 10.5, 14);
+gendef [1/36pt#]( cap_bar# )( 6, 6.5, 7, 7.5, 8, 9, 10.5, 14);
+gendef [1/36pt#]( cap_band# )( 6, 6.5, 7, 7.5, 8, 9, 10.5, 14);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.4]);
+superness:=.76;
+superpull:=1/6;
+beak_darkness:=15/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx.mf
new file mode 100644
index 00000000000..2245281afdf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx.mf
@@ -0,0 +1,92 @@
+% ecbx.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Bold Extend Roman
+%
+%
+font_identifier:="ECBX";
+font_size (gensize*pt#);
+basedef ( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 14.5, 16.2, 17.9, 19.6, 21.3, 23, 27);
+gendef [1/36pt#]( width_adj# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 13);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.6, 5.4, 6.2, 7, 8);
+gendef [1/36pt#]( letter_fit# )( 3, 2, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 123.5, 148.2, 172.9, 197.6, 222.3, 247, 296.4);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 80, 96, 112, 128, 144, 160, 192);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 40, 49, 58, 67, 76, 85, 102);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 11, 12, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 8, 9, 9, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 8, 9, 9, 10, 10, 10, 10.5);
+gendef [1/36pt#]( hair# )( 15, 15.4, 15.8, 16.2, 16.6, 17, 18.3);
+gendef [1/36pt#]( stem# )( 24, 28, 32, 35, 38, 41, 47);
+gendef [1/36pt#]( curve# )( 27, 31, 35, 39, 43, 46, 52);
+gendef [1/36pt#]( ess# )( 19, 25, 29, 32, 35, 38, 44);
+gendef [1/36pt#]( flare# )( 27, 31, 35, 39, 42, 45, 51);
+gendef [1/36pt#]( dot_size# )( 31, 36, 41, 46, 51, 56, 62);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 18, 19, 19, 19, 20);
+gendef [1/36pt#]( cap_stem# )( 28, 33, 38, 43, 47, 51, 57);
+gendef [1/36pt#]( cap_curve# )( 31, 36, 41, 46, 51, 55, 61);
+gendef [1/36pt#]( cap_ess# )( 24, 31, 37, 43, 48, 53, 59);
+gendef [pt#]( rule_thickness#)( .43, .47, .51, .54, .57, .60, .66);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( jut# )( 13, 15, 17, 19, 22, 25, 30);
+gendef [1/36pt#]( cap_jut# )( 19, 23, 27, 31, 35, 39, 46);
+gendef [1/36pt#]( beak_jut# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 12.4);
+gendef [1/36pt#]( beak# )( 25, 36, 46, 55, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 10, 11, 11.5, 12, 12.5, 13, 14.3);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( slab# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_band# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 1.5, 1.8, 2.1, 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( stem_corr# )( 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 5, 2, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3, 3, 4, 4, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 3, 3, 3, 4);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, 1.3, 1.1, .9, .7, .5, .5);
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0500.mf
new file mode 100644
index 00000000000..6e78c4eeaed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0500.mf
@@ -0,0 +1,6 @@
+% This is ecbx0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0600.mf
new file mode 100644
index 00000000000..59f57d62228
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0600.mf
@@ -0,0 +1,6 @@
+% This is ecbx0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0700.mf
new file mode 100644
index 00000000000..d858a1ad25e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0700.mf
@@ -0,0 +1,6 @@
+% This is ecbx0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0800.mf
new file mode 100644
index 00000000000..b8a26b466e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0800.mf
@@ -0,0 +1,6 @@
+% This is ecbx0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0900.mf
new file mode 100644
index 00000000000..4c5ce3aa6b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx0900.mf
@@ -0,0 +1,6 @@
+% This is ecbx0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1000.mf
new file mode 100644
index 00000000000..9205ef4af07
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1000.mf
@@ -0,0 +1,6 @@
+% This is ecbx1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1095.mf
new file mode 100644
index 00000000000..e717fd57738
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1095.mf
@@ -0,0 +1,6 @@
+% This is ecbx1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1200.mf
new file mode 100644
index 00000000000..ec503e4bf5e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1200.mf
@@ -0,0 +1,6 @@
+% This is ecbx1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1440.mf
new file mode 100644
index 00000000000..8ec1f0d3c5e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1440.mf
@@ -0,0 +1,6 @@
+% This is ecbx1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1728.mf
new file mode 100644
index 00000000000..1d6430ad25a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx1728.mf
@@ -0,0 +1,6 @@
+% This is ecbx1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx2074.mf
new file mode 100644
index 00000000000..c1e14d05da2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx2074.mf
@@ -0,0 +1,6 @@
+% This is ecbx2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx2488.mf
new file mode 100644
index 00000000000..06292c3cd3a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx2488.mf
@@ -0,0 +1,6 @@
+% This is ecbx2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx2986.mf
new file mode 100644
index 00000000000..df7ad4f4a45
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx2986.mf
@@ -0,0 +1,6 @@
+% This is ecbx2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecbx3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx3583.mf
new file mode 100644
index 00000000000..96ac2fb88f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecbx3583.mf
@@ -0,0 +1,6 @@
+% This is ecbx3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc.mf
new file mode 100644
index 00000000000..46c8bb325d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc.mf
@@ -0,0 +1,119 @@
+% eccc.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Caps and Small Caps
+%
+%
+font_identifier:="ECCSC";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 13.5, 15, 16.5, 18, 19.5, 21, 24.5, 33.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 5, 5, 5, 5, 5, 5, 5);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 41);
+gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 40);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 48);
+gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.4]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+gendef [1/36pt#]( lower.u# )( 8.5, 10, 11.5, 13, 14.5, 16, 19.5, 28.5);
+gendef [1/36pt#]( lower.width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( lower.cap_serif_fit# )( 1, 1.8, 2.5, 3.1, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( lower.letter_fit# )( 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4);
+gendef [1/36pt#]( lower.body_height# )( 65, 92, 119, 146, 173, 200, 254, 396);
+gendef [1/36pt#]( lower.cap_height# )( 94, 105, 121.2, 135.8, 160.4, 185, 226, 335);
+gendef [1/36pt#]( lower.x_height# )( 38.5, 54, 69.5, 85, 100.5, 116, 147, 228.8);
+gendef [1/36pt#]( lower.bar_height# )( 21.5, 30.2, 38.9, 47.6, 56.3, 65, 82.4, 128);
+gendef [1/36pt#]( lower.comma_depth# )( 17, 24, 31, 38, 45, 52, 64, 103);
+gendef [1/36pt#]( lower.flare# )( 11, 13, 16, 19, 22, 25, 28, 37);
+gendef [1/36pt#]( lower.dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( lower.cap_hair# )( 6.1, 6.6, 7.1, 7.6, 8.1, 9.1, 9.6, 11.1);
+gendef [1/36pt#]( lower.stem# )( 12, 14, 16, 18, 20, 21, 24, 29);
+gendef [1/36pt#]( lower.cap_stem# )( 13, 15.5, 18, 20.5, 23, 26, 29, 34);
+gendef [1/36pt#]( lower.cap_curve# )( 15, 18, 21, 24, 27, 31, 34, 42);
+gendef [1/36pt#]( lower.cap_ess# )( 7, 12, 16, 20, 24, 28, 31, 36);
+gendef [1/36pt#]( lower.cap_jut# )( 9, 12, 15, 18, 22, 26, 30, 39);
+gendef [1/36pt#]( lower.beak_jut# )( 3, 3.8, 4.6, 5.4, 6.2, 7, 8.4, 12);
+gendef [1/36pt#]( lower.beak# )( 17, 24, 31, 38, 45, 52, 66, 103);
+gendef [1/36pt#]( lower.slab# )( 6.1, 6.6, 7.1, 7.6, 8.1, 9.1, 10.6, 14.1);
+gendef [1/36pt#]( lower.cap_bar# )( 6.1, 6.6, 7.1, 7.6, 8.1, 9.1, 10.6, 14.1);
+gendef [1/36pt#]( lower.cap_band# )( 6.1, 6.6, 7.1, 7.6, 8.1, 9.1, 10.6, 14.1);
+gendef [pt#]( lower.cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( lower.o# )( 1, 1.5, 2, 3, 4, 5, 6, 7);
+gendef [1/36pt#]( lower.apex_o# )( 0, .5, 1, 2, 3, 4, 5, 6);
+gendef ( lower.fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+
+clear_extra_memory;
+
+generate excsc
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0500.mf
new file mode 100644
index 00000000000..2edd32efd20
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0500.mf
@@ -0,0 +1,6 @@
+% This is eccc0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0600.mf
new file mode 100644
index 00000000000..a648f53ea57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0600.mf
@@ -0,0 +1,6 @@
+% This is eccc0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0700.mf
new file mode 100644
index 00000000000..6edc09108d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0700.mf
@@ -0,0 +1,6 @@
+% This is eccc0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0800.mf
new file mode 100644
index 00000000000..4441674005c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0800.mf
@@ -0,0 +1,6 @@
+% This is eccc0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0900.mf
new file mode 100644
index 00000000000..a29a41bdda7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc0900.mf
@@ -0,0 +1,6 @@
+% This is eccc0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1000.mf
new file mode 100644
index 00000000000..fdc5ca1360c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1000.mf
@@ -0,0 +1,6 @@
+% This is eccc1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1095.mf
new file mode 100644
index 00000000000..c83dff94986
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1095.mf
@@ -0,0 +1,6 @@
+% This is eccc1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1200.mf
new file mode 100644
index 00000000000..f2aae52b423
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1200.mf
@@ -0,0 +1,6 @@
+% This is eccc1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1440.mf
new file mode 100644
index 00000000000..5c5a33f9b34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1440.mf
@@ -0,0 +1,6 @@
+% This is eccc1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1728.mf
new file mode 100644
index 00000000000..c9706e20ba3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc1728.mf
@@ -0,0 +1,6 @@
+% This is eccc1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc2074.mf
new file mode 100644
index 00000000000..0d9a4fd5a06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc2074.mf
@@ -0,0 +1,6 @@
+% This is eccc2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc2488.mf
new file mode 100644
index 00000000000..434ccf45780
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc2488.mf
@@ -0,0 +1,6 @@
+% This is eccc2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc2986.mf
new file mode 100644
index 00000000000..eb46e6af983
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc2986.mf
@@ -0,0 +1,6 @@
+% This is eccc2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eccc3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eccc3583.mf
new file mode 100644
index 00000000000..f1bb74bf4e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eccc3583.mf
@@ -0,0 +1,6 @@
+% This is eccc3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate eccc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci.mf
new file mode 100644
index 00000000000..4a5cbbd2746
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci.mf
@@ -0,0 +1,93 @@
+% ecci.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Text Classical Serif Italic
+%
+%
+font_identifier:="ECCI";
+font_size (gensize*pt#);
+basedef ( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 14.8, 15.8, 17, 18.4, 21.6);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3.5, 4.1, 4.6, 5, 5.8);
+gendef [1/36pt#]( letter_fit# )( 9.4, 7.9, 8.5, 9.2, 10.8);
+gendef [1/36pt#]( body_height# )( 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 172.2, 196.8, 221.4, 246, 295.2);
+gendef [1/36pt#]( fig_height# )( 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 108.5, 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 60.9, 69.6, 78.3, 87, 104.4);
+gendef [1/36pt#]( comma_depth# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 7, 8, 8, 8, 8);
+gendef [1/36pt#]( tiny# )( 7, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 6, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 6, 7, 7, 7, 7.5);
+gendef [1/36pt#]( hair# )( 10.5, 11, 11, 11, 12);
+gendef [1/36pt#]( stem# )( 18.5, 20, 22, 23, 26);
+gendef [1/36pt#]( curve# )( 21.5, 23.5, 26, 28, 31);
+gendef [1/36pt#]( ess# )( 21, 23, 25, 27, 29);
+gendef [1/36pt#]( flare# )( 21, 24, 26, 29, 32);
+gendef [1/36pt#]( dot_size# )( 29, 32, 35, 38, 42);
+gendef [1/36pt#]( cap_hair# )( 9, 9.5, 10, 11, 11.5);
+gendef [1/36pt#]( cap_stem# )( 21.5, 23.5, 26, 29, 32);
+gendef [1/36pt#]( cap_curve# )( 24.5, 27, 30, 34, 37);
+gendef [1/36pt#]( cap_ess# )( 21, 24, 27, 31, 34);
+gendef [pt#]( rule_thickness#)( .34, .36, .38, .4, .44);
+gendef [1/36pt#]( dish# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 14, 16, 18, 20, 24);
+gendef [1/36pt#]( jut# )( 21, 24, 27, 30, 35);
+gendef [1/36pt#]( cap_jut# )( 24, 27, 30.5, 34, 38);
+gendef [1/36pt#]( beak_jut# )( 7.4, 7.9, 8.5, 9, 10.4);
+gendef [1/36pt#]( beak# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 7, 8, 8, 8, 8.5);
+gendef [pt#]( notch_cut# )( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( slab# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( cap_bar# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( cap_band# )( 9, 9.5, 10, 11, 12.5);
+gendef [pt#]( cap_notch_cut# )( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 2.8, 3.2, 3.6, 4, 4.8);
+gendef [1/36pt#]( stem_corr# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 5, 6, 7, 8, 9);
+gendef [1/36pt#]( apex_o# )( 5, 6, 7, 8, 9);
+slant:=1/4;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )( .6, .4, .2, 0, [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+classic_serif:=true;
+
+clear_extra_memory;
+
+generate extextit
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0500.mf
new file mode 100644
index 00000000000..2a98292c0aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0500.mf
@@ -0,0 +1,6 @@
+% This is ecci0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0600.mf
new file mode 100644
index 00000000000..cd2c523f077
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0600.mf
@@ -0,0 +1,6 @@
+% This is ecci0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0700.mf
new file mode 100644
index 00000000000..0ed963eacff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0700.mf
@@ -0,0 +1,6 @@
+% This is ecci0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0800.mf
new file mode 100644
index 00000000000..7edd9a15185
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0800.mf
@@ -0,0 +1,6 @@
+% This is ecci0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0900.mf
new file mode 100644
index 00000000000..d07cf17c34f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci0900.mf
@@ -0,0 +1,6 @@
+% This is ecci0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1000.mf
new file mode 100644
index 00000000000..f74136a2313
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1000.mf
@@ -0,0 +1,6 @@
+% This is ecci1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1095.mf
new file mode 100644
index 00000000000..aa2a62894ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1095.mf
@@ -0,0 +1,6 @@
+% This is ecci1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1200.mf
new file mode 100644
index 00000000000..0a21c1f086a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1200.mf
@@ -0,0 +1,6 @@
+% This is ecci1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1440.mf
new file mode 100644
index 00000000000..e0fb80f7b55
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1440.mf
@@ -0,0 +1,6 @@
+% This is ecci1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1728.mf
new file mode 100644
index 00000000000..9e79ffeaf57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci1728.mf
@@ -0,0 +1,6 @@
+% This is ecci1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci2074.mf
new file mode 100644
index 00000000000..7fc25ef6c0e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci2074.mf
@@ -0,0 +1,6 @@
+% This is ecci2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci2488.mf
new file mode 100644
index 00000000000..68fa78f69c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci2488.mf
@@ -0,0 +1,6 @@
+% This is ecci2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci2986.mf
new file mode 100644
index 00000000000..e80f455aacf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci2986.mf
@@ -0,0 +1,6 @@
+% This is ecci2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecci3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecci3583.mf
new file mode 100644
index 00000000000..b63be0decdc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecci3583.mf
@@ -0,0 +1,6 @@
+% This is ecci3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh.mf
new file mode 100644
index 00000000000..9c9a3ef4b34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh.mf
@@ -0,0 +1,92 @@
+% ecdh.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Dunhill Roman
+%
+%
+font_identifier:="ECDUNH";
+font_size (gensize*pt#);
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 3, 2, 0, 0, 0, 0, [-.1]);
+gendef [1/36pt#]( body_height# )( 235, 262, 289, 316, 343, 370, 424, 566);
+gendef [1/36pt#]( asc_height# )( 225, 250, 275, 300, 325, 350, 400, 532);
+gendef [1/36pt#]( cap_height# )( 223, 247.6, 272.2, 296.8, 321.4, 346, 395.2, 525);
+gendef [1/36pt#]( fig_height# )( 216, 239.2, 262.4, 285.6, 308.8, 332, 378.4, 501);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 41);
+gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 40);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 48);
+gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.4]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0500.mf
new file mode 100644
index 00000000000..61f227f7f18
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0500.mf
@@ -0,0 +1,6 @@
+% This is ecdh0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0600.mf
new file mode 100644
index 00000000000..d0bd663d26b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0600.mf
@@ -0,0 +1,6 @@
+% This is ecdh0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0700.mf
new file mode 100644
index 00000000000..c9bbbe182d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0700.mf
@@ -0,0 +1,6 @@
+% This is ecdh0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0800.mf
new file mode 100644
index 00000000000..85d8bee44a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0800.mf
@@ -0,0 +1,6 @@
+% This is ecdh0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0900.mf
new file mode 100644
index 00000000000..dd41e5e1521
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh0900.mf
@@ -0,0 +1,6 @@
+% This is ecdh0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1000.mf
new file mode 100644
index 00000000000..cab0cc47187
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1000.mf
@@ -0,0 +1,6 @@
+% This is ecdh1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1095.mf
new file mode 100644
index 00000000000..16456a54bf8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1095.mf
@@ -0,0 +1,6 @@
+% This is ecdh1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1200.mf
new file mode 100644
index 00000000000..235fc5f8b8e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1200.mf
@@ -0,0 +1,6 @@
+% This is ecdh1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1440.mf
new file mode 100644
index 00000000000..32b5211e793
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1440.mf
@@ -0,0 +1,6 @@
+% This is ecdh1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1728.mf
new file mode 100644
index 00000000000..699d022adc0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh1728.mf
@@ -0,0 +1,6 @@
+% This is ecdh1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh2074.mf
new file mode 100644
index 00000000000..f01f4aa8526
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh2074.mf
@@ -0,0 +1,6 @@
+% This is ecdh2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh2488.mf
new file mode 100644
index 00000000000..e63f6be2c3a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh2488.mf
@@ -0,0 +1,6 @@
+% This is ecdh2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh2986.mf
new file mode 100644
index 00000000000..38ece615021
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh2986.mf
@@ -0,0 +1,6 @@
+% This is ecdh2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecdh3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh3583.mf
new file mode 100644
index 00000000000..0395cb37777
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecdh3583.mf
@@ -0,0 +1,6 @@
+% This is ecdh3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecdh
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecfb.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecfb.mf
new file mode 100644
index 00000000000..6c3fb9767dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecfb.mf
@@ -0,0 +1,92 @@
+% ecfb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Fibonacci Font
+% (Experimental)
+%
+font_identifier:="ECFIB";
+font_size (gensize*pt#);
+basedef ( 5, 8, 13, 21, 34);
+gendef [1/36pt#]( u# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( width_adj# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( body_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( asc_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( cap_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( fig_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( x_height# )( 89, 144, 233, 377, 610);
+gendef [1/36pt#]( math_axis# )( 55, 89, 144, 233, 377);
+gendef [1/36pt#]( bar_height# )( 55, 89, 144, 233, 377);
+gendef [1/36pt#]( comma_depth# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( desc_depth# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( acc_height# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( dot_height# )( 21, 55, 89, 144, 233);
+gendef [1/36pt#]( udot_height# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( crisp# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( tiny# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( fine# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( thin_join# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( hair# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( stem# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( curve# )( 24, 39, 63, 102, 254);
+gendef [1/36pt#]( ess# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( flare# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( dot_size# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( cap_hair# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( cap_stem# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( cap_curve# )( 24, 39, 63, 102, 254);
+gendef [1/36pt#]( cap_ess# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( rule_thickness#)( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( dish# )( 1, 1, 1, 2, 5);
+gendef [1/36pt#]( bracket# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( jut# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( cap_jut# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( beak_jut# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( beak# )( 34, 55, 89, 144, 377);
+gendef [1/36pt#]( vair# )( 8, 13, 21, 34, 89);
+gendef [pt#]( notch_cut# )( 3, 8, 13, 21, 55);
+gendef [1/36pt#]( bar# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( slab# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( cap_bar# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( cap_band# )( 8, 13, 21, 34, 89);
+gendef [pt#]( cap_notch_cut# )( 3, 8, 13, 21, 55);
+gendef [1/36pt#]( serif_drop# )( 2, 3, 5, 8, 21);
+gendef [1/36pt#]( stem_corr# )( 0, 1, 1, 2, 5);
+gendef [1/36pt#]( vair_corr# )( 0, 1, 1, 2, 5);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( o# )( 5, 8, 13, 21, 55);
+gendef [1/36pt#]( apex_o# )( 5, 8, 13, 21, 55);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )(.375, .375, .375, .375, .375);
+superness:=1/sqrt 2;
+superpull:=1/13;
+beak_darkness:=5/13;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecff.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecff.mf
new file mode 100644
index 00000000000..09ed187cc81
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecff.mf
@@ -0,0 +1,92 @@
+% ecff.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Funny Roman
+% (Experimental)
+%
+font_identifier:="ECFF";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 12, 13.9, 16, 19.7);
+ gendef [1/36pt#]( width_adj# )( [-16], [-16], [-16], [-16]);
+ gendef [1/36pt#]( serif_fit# )( [-3], [-3], [-3], [-3]);
+ gendef [1/36pt#]( cap_serif_fit# )( [-4], [-4], [-4], [-4]);
+ gendef [1/36pt#]( letter_fit# )( 2, 2, 2, 2);
+gendef [1/36pt#]( body_height# )( 190, 215, 240, 290);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 181, 203, 225, 269);
+gendef [1/36pt#]( fig_height# )( 166, 188, 210, 254);
+gendef [1/36pt#]( x_height# )( 159, 174.5, 190, 221);
+gendef [1/36pt#]( math_axis# )( 33, 44, 55, 77);
+gendef [1/36pt#]( bar_height# )( 44, 52, 60, 76);
+gendef [1/36pt#]( comma_depth# )( 54, 62, 70, 86);
+gendef [1/36pt#]( desc_depth# )( 84, 92, 100, 116);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 8, 10, 11, 14);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 11, 13, 14, 15);
+gendef [1/36pt#]( hair# )( 8, 10, 11, 14);
+gendef [1/36pt#]( stem# )( 13, 15, 16, 19);
+gendef [1/36pt#]( curve# )( 17, 19, 20, 23);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 20, 22, 24, 27);
+gendef [1/36pt#]( dot_size# )( 21, 23, 26, 29);
+gendef [1/36pt#]( cap_hair# )( 13, 15, 16, 19);
+gendef [1/36pt#]( cap_stem# )( 21, 23, 24, 27);
+gendef [1/36pt#]( cap_curve# )( 23, 25, 26, 29);
+gendef [1/36pt#]( cap_ess# )( 25, 27, 28, 31);
+gendef [pt#]( rule_thickness#)( .46, .48, .5, .54);
+gendef [1/36pt#]( dish# )( 5, 5, 5, 5);
+gendef [1/36pt#]( bracket# )( 20, 20, 20, 20);
+gendef [1/36pt#]( jut# )( 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( cap_jut# )( 3.2, 3.6, 4, 4.8);
+gendef [1/36pt#]( beak_jut# )( [-8], [-8], [-8], [-8]);
+gendef [1/36pt#]( beak# )( 8, 9, 10, 12);
+gendef [1/36pt#]( vair# )( 11, 13, 14, 17);
+gendef [1/36pt#]( notch_cut# )( 2, 2, 2, 2);
+gendef [1/36pt#]( bar# )( 14, 16, 17, 20);
+gendef [1/36pt#]( slab# )( 17, 19, 20, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 14, 16, 17, 20);
+gendef [1/36pt#]( cap_notch_cut# )( 3, 3, 3, 3);
+gendef [1/36pt#]( serif_drop# )( [-10], [-10], [-10], [-10]);
+gendef [1/36pt#]( stem_corr# )( [-1], [-1], [-1], [-1]);
+gendef [1/36pt#]( vair_corr# )( [-1], [-1], [-1], [-1]);
+gendef [1/36pt#]( apex_corr# )( 4, 5, 6, 7);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 9, 9, 9, 10);
+gendef ( fudge )( 1, 1, 1, 1);
+gendef ( math_spread )( .5, .5, .5, .5);
+slant:=-.1;
+superness:=2/3;
+superpull:=-1/8;
+beak_darkness:=.5;
+square_dots:=true;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecfi.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecfi.mf
new file mode 100644
index 00000000000..48db03d4144
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecfi.mf
@@ -0,0 +1,92 @@
+% ecfi.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Funny Italic
+% (Experimental)
+%
+font_identifier:="ECFI";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( [-16], [-16], [-16], [-16]);
+ gendef [1/36pt#]( serif_fit# )( [-3], [-3], [-3], [-3]);
+ gendef [1/36pt#]( cap_serif_fit# )( [-4], [-4], [-4], [-4]);
+ gendef [1/36pt#]( letter_fit# )( 2, 2, 2, 2);
+gendef [1/36pt#]( body_height# )( 190, 215, 240, 290);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 181, 203, 225, 269);
+gendef [1/36pt#]( fig_height# )( 166, 188, 210, 254);
+gendef [1/36pt#]( x_height# )( 159, 174.5, 190, 221);
+gendef [1/36pt#]( math_axis# )( 33, 44, 55, 77);
+gendef [1/36pt#]( bar_height# )( 44, 52, 60, 76);
+gendef [1/36pt#]( comma_depth# )( 54, 62, 70, 86);
+gendef [1/36pt#]( desc_depth# )( 84, 92, 100, 116);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 8, 10, 11, 14);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 11, 13, 14, 15);
+gendef [1/36pt#]( hair# )( 8, 10, 11, 14);
+gendef [1/36pt#]( stem# )( 14, 16, 17, 20);
+gendef [1/36pt#]( curve# )( 18, 20, 21, 24);
+gendef [1/36pt#]( ess# )( 20, 22, 23, 26);
+gendef [1/36pt#]( flare# )( 21, 23, 25, 28);
+gendef [1/36pt#]( dot_size# )( 21, 23, 26, 29);
+gendef [1/36pt#]( cap_hair# )( 12, 14, 15, 18);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 24, 26, 27, 30);
+gendef [1/36pt#]( cap_ess# )( 26, 28, 29, 32);
+gendef [pt#]( rule_thickness#)( .46, .48, .5, .54);
+gendef [1/36pt#]( dish# )( 5, 5, 5, 5);
+gendef [1/36pt#]( bracket# )( 20, 20, 20, 20);
+gendef [1/36pt#]( jut# )( 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( cap_jut# )( 3.2, 3.6, 4, 4.8);
+gendef [1/36pt#]( beak_jut# )( [-8], [-8], [-8], [-8]);
+gendef [1/36pt#]( beak# )( 8, 9, 10, 12);
+gendef [1/36pt#]( vair# )( 12, 14, 15, 18);
+gendef [1/36pt#]( notch_cut# )( 2, 2, 2, 2);
+gendef [1/36pt#]( bar# )( 15, 17, 18, 21);
+gendef [1/36pt#]( slab# )( 18, 20, 21, 26);
+gendef [1/36pt#]( cap_bar# )( 20, 22, 23, 26);
+gendef [1/36pt#]( cap_band# )( 15, 17, 18, 21);
+gendef [1/36pt#]( cap_notch_cut# )( 3, 3, 3, 3);
+gendef [1/36pt#]( serif_drop# )( [-10], [-10], [-10], [-10]);
+gendef [1/36pt#]( stem_corr# )( [-1], [-1], [-1], [-1]);
+gendef [1/36pt#]( vair_corr# )( [-1], [-1], [-1], [-1]);
+gendef [1/36pt#]( apex_corr# )( 4, 5, 6, 7);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 9, 9, 9, 10);
+gendef ( fudge )( 1, 1, 1, 1);
+gendef ( math_spread )( .5, .5, .5, .5);
+slant:=.1;
+superness:=2/3;
+superpull:=-1/8;
+beak_darkness:=.5;
+square_dots:=true;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate extextit
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecfs.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecfs.mf
new file mode 100644
index 00000000000..51170ee62fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecfs.mf
@@ -0,0 +1,92 @@
+% ecfs.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Fibonacci Slanted Font
+% (Experimental)
+%
+font_identifier:="ECFIBS";
+font_size (gensize*pt#);
+basedef ( 5, 8, 13, 21, 34);
+gendef [1/36pt#]( u# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( width_adj# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( body_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( asc_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( cap_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( fig_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( x_height# )( 89, 144, 233, 377, 610);
+gendef [1/36pt#]( math_axis# )( 55, 89, 144, 233, 377);
+gendef [1/36pt#]( bar_height# )( 55, 89, 144, 233, 377);
+gendef [1/36pt#]( comma_depth# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( desc_depth# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( acc_height# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( dot_height# )( 21, 55, 89, 144, 233);
+gendef [1/36pt#]( udot_height# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( crisp# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( tiny# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( fine# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( thin_join# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( hair# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( stem# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( curve# )( 24, 39, 63, 102, 254);
+gendef [1/36pt#]( ess# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( flare# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( dot_size# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( cap_hair# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( cap_stem# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( cap_curve# )( 24, 39, 63, 102, 254);
+gendef [1/36pt#]( cap_ess# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( rule_thickness#)( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( dish# )( 1, 1, 1, 2, 5);
+gendef [1/36pt#]( bracket# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( jut# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( cap_jut# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( beak_jut# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( beak# )( 34, 55, 89, 144, 377);
+gendef [1/36pt#]( vair# )( 8, 13, 21, 34, 89);
+gendef [pt#]( notch_cut# )( 3, 8, 13, 21, 55);
+gendef [1/36pt#]( bar# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( slab# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( cap_bar# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( cap_band# )( 8, 13, 21, 34, 89);
+gendef [pt#]( cap_notch_cut# )( 3, 8, 13, 21, 55);
+gendef [1/36pt#]( serif_drop# )( 2, 3, 5, 8, 21);
+gendef [1/36pt#]( stem_corr# )( 0, 1, 1, 2, 5);
+gendef [1/36pt#]( vair_corr# )( 0, 1, 1, 2, 5);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( o# )( 5, 8, 13, 21, 55);
+gendef [1/36pt#]( apex_o# )( 5, 8, 13, 21, 55);
+slant:=sqrt5-2;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )(.375, .375, .375, .375, .375);
+superness:=1/sqrt 2;
+superpull:=1/13;
+beak_darkness:=5/13;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit.mf
new file mode 100644
index 00000000000..2677480a7ac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit.mf
@@ -0,0 +1,93 @@
+% ecit.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Italic Typewriter Text
+%
+%
+font_identifier:="ECITT";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 15, 15, 15, 15);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 34, 42, 50, 66);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 33, 37, 40, 45);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+slant:=1/4;
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+true_mono:=true;
+variant_g:=true;
+low_asterisk:=true;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate extextit
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit0800.mf
new file mode 100644
index 00000000000..da032a9fe4c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit0800.mf
@@ -0,0 +1,6 @@
+% This is ecit0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit0900.mf
new file mode 100644
index 00000000000..1337b9747a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit0900.mf
@@ -0,0 +1,6 @@
+% This is ecit0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1000.mf
new file mode 100644
index 00000000000..a3cea75f1a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1000.mf
@@ -0,0 +1,6 @@
+% This is ecit1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1095.mf
new file mode 100644
index 00000000000..cb6195914b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1095.mf
@@ -0,0 +1,6 @@
+% This is ecit1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1200.mf
new file mode 100644
index 00000000000..035a418d6ac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1200.mf
@@ -0,0 +1,6 @@
+% This is ecit1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1440.mf
new file mode 100644
index 00000000000..6d20c736b0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1440.mf
@@ -0,0 +1,6 @@
+% This is ecit1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1728.mf
new file mode 100644
index 00000000000..89fe7426876
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit1728.mf
@@ -0,0 +1,6 @@
+% This is ecit1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit2074.mf
new file mode 100644
index 00000000000..dc0d446b327
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit2074.mf
@@ -0,0 +1,6 @@
+% This is ecit2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit2488.mf
new file mode 100644
index 00000000000..11e167aa722
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit2488.mf
@@ -0,0 +1,6 @@
+% This is ecit2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit2986.mf
new file mode 100644
index 00000000000..b39f4a1cc00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit2986.mf
@@ -0,0 +1,6 @@
+% This is ecit2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecit3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecit3583.mf
new file mode 100644
index 00000000000..9bd3a6ba7fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecit3583.mf
@@ -0,0 +1,6 @@
+% This is ecit3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eclb8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eclb8.mf
new file mode 100644
index 00000000000..74f16ad8507
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eclb8.mf
@@ -0,0 +1,89 @@
+% eclb8.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% LaTeX European Computer Modern Sans Serif Quotation Bold
+% (SliTeX font with special capital I)
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="LECSSQB";
+font_size 8pt#;
+u#:=22/36pt#;
+width_adj#:=3/36pt#;
+serif_fit#:= -12/36pt#;
+cap_serif_fit#:= -15/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=200/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=42/36pt#;
+stem#:=42/36pt#;
+curve#:=42/36pt#;
+ess#:=40/36pt#;
+flare#:=36/36pt#;
+dot_size#:=41/36pt#;
+cap_hair#:=42/36pt#;
+cap_stem#:=46/36pt#;
+cap_curve#:=46/36pt#;
+cap_ess#:=46/36pt#;
+rule_thickness#:=26/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=22/36pt#;
+notch_cut#:=48/36pt#;
+bar#:=22/36pt#;
+slab#:=24/36pt#;
+cap_bar#:=23/36pt#;
+cap_band#:=30/36pt#;
+cap_notch_cut#:=42/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=15/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=0;
+fudge:=.85;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/9;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecli8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecli8.mf
new file mode 100644
index 00000000000..130beb2617a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecli8.mf
@@ -0,0 +1,90 @@
+% ecli8.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% LaTeX European Computer Modern Sans Serif Quotation Inclined
+% (SliTeX font with special capital I)
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="LECSSQI";
+font_size 8pt#;
+u#:=20/36pt#;
+width_adj#:=2/36pt#;
+serif_fit#:= -10/36pt#;
+cap_serif_fit#:= -14/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=190/36pt#;
+x_height#:=150/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=80/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=23/36pt#;
+stem#:=23/36pt#;
+curve#:=23/36pt#;
+ess#:=23/36pt#;
+flare#:=21/36pt#;
+dot_size#:=28/36pt#;
+cap_hair#:=23/36pt#;
+cap_stem#:=27/36pt#;
+cap_curve#:=27/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.55555pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=18/36pt#;
+notch_cut#:=23/36pt#;
+bar#:=18/36pt#;
+slab#:=19/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=23/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=.5/36pt#;
+apex_corr#:=4/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=sind 12/cosd 12;
+fudge:=.95;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eclo8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eclo8.mf
new file mode 100644
index 00000000000..3d6e231bdd9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eclo8.mf
@@ -0,0 +1,89 @@
+% eclo8.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% LaTeX European Computer Modern Sans Serif Quotation Bold Oblique
+% (SliTeX font with special capital I)
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="LECSSQBO";
+font_size 8pt#;
+u#:=22/36pt#;
+width_adj#:=3/36pt#;
+serif_fit#:= -12/36pt#;
+cap_serif_fit#:= -15/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=200/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=42/36pt#;
+stem#:=42/36pt#;
+curve#:=42/36pt#;
+ess#:=40/36pt#;
+flare#:=36/36pt#;
+dot_size#:=41/36pt#;
+cap_hair#:=42/36pt#;
+cap_stem#:=46/36pt#;
+cap_curve#:=46/36pt#;
+cap_ess#:=46/36pt#;
+rule_thickness#:=26/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=22/36pt#;
+notch_cut#:=48/36pt#;
+bar#:=22/36pt#;
+slab#:=24/36pt#;
+cap_bar#:=23/36pt#;
+cap_band#:=30/36pt#;
+cap_notch_cut#:=42/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=15/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=sind 12/cosd 12;
+fudge:=.85;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/9;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/eclq8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/eclq8.mf
new file mode 100644
index 00000000000..efdd60c8de4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/eclq8.mf
@@ -0,0 +1,90 @@
+% eclq8.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% LaTeX European Computer Modern Sans Serif Quotation
+% (SliTeX font with special capital I)
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="LECSSQ";
+font_size 8pt#;
+u#:=20/36pt#;
+width_adj#:=2/36pt#;
+serif_fit#:= -10/36pt#;
+cap_serif_fit#:= -14/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=190/36pt#;
+x_height#:=150/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=80/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=23/36pt#;
+stem#:=23/36pt#;
+curve#:=23/36pt#;
+ess#:=23/36pt#;
+flare#:=21/36pt#;
+dot_size#:=28/36pt#;
+cap_hair#:=23/36pt#;
+cap_stem#:=27/36pt#;
+cap_curve#:=27/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.55555pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=18/36pt#;
+notch_cut#:=23/36pt#;
+bar#:=18/36pt#;
+slab#:=19/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=23/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=.5/36pt#;
+apex_corr#:=4/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=0;
+fudge:=.95;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecltt8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecltt8.mf
new file mode 100644
index 00000000000..adb05aeaeb8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecltt8.mf
@@ -0,0 +1,94 @@
+% ecltt8.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% European Computer Modern LaTeX Typewriter
+% Special font for the slides documentclass
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="ECLTT";
+font_size 8pt#;
+
+u# :=17/36pt#;
+width_adj# :=0pt#;
+serif_fit# :=0pt#;
+cap_serif_fit# :=0pt#;
+letter_fit# :=0pt#;
+body_height# :=200/36pt#;
+asc_height# :=176/36pt#;
+cap_height# :=176/36pt#;
+fig_height# :=176/36pt#;
+x_height# :=124/36pt#;
+math_axis# :=88/36pt#;
+bar_height# :=63/36pt#;
+comma_depth# :=40/36pt#;
+desc_depth# :=64/36pt#;
+acc_height# :=60/36pt#;
+dot_height# :=60/36pt#;
+udot_height# :=47.2/36pt#;
+crisp# :=19/36pt#;
+tiny# :=19/36pt#;
+fine# :=18/36pt#;
+thin_join# :=18/36pt#;
+hair# :=22/36pt#;
+stem# :=22/36pt#;
+curve# :=22/36pt#;
+ess# :=19/36pt#;
+flare# :=28/36pt#;
+dot_size# :=31/36pt#;
+cap_hair# :=22/36pt#;
+cap_stem# :=22/36pt#;
+cap_curve# :=22/36pt#;
+cap_ess# :=22/36pt#;
+rule_thickness# :=22/36pt#;
+dish# :=0pt#;
+bracket# :=0pt#;
+jut# :=27/36pt#;
+cap_jut# :=27/36pt#;
+beak_jut# :=0pt#;
+beak# :=27/36pt#;
+vair# :=19/36pt#;
+notch_cut# :=22/36pt#;
+bar# :=19/36pt#;
+slab# :=19/36pt#;
+cap_bar# :=19/36pt#;
+cap_band# :=19/36pt#;
+cap_notch_cut# :=22/36pt#;
+serif_drop# :=0pt#;
+stem_corr# :=0pt#;
+vair_corr# :=0pt#;
+apex_corr# :=8/36pt#;
+o# :=3/36pt#;
+apex_o# :=3/36pt#;
+slant:=0;
+fudge :=0.81;
+math_spread :=-1;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+true_mono:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc.mf
new file mode 100644
index 00000000000..0dec4be712e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc.mf
@@ -0,0 +1,130 @@
+% ecoc.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+%
+% The parameters in this file were originally contributed by
+% Lars Engebretsen <enge@nada.kth.se> and Caj E. Svenson
+% <atocasv@ato.abb.se>.
+%
+% The two contributions were merged and retuned, if necessary.
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Bold Extended Slanted Caps and Small Caps
+%
+%
+font_identifier:="ECBXSLCSC";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 15, 16.5, 18.5, 20, 22, 24, 28);
+gendef [1/36pt#]( width_adj# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 13);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.6, 5.4, 6.2, 7, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 5, 5, 5, 5, 5, 5);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 123.5, 148.2, 172.9, 197.6, 222.3, 247, 296.4);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 80, 96, 112, 128, 144, 160, 192);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 40, 49, 58, 67, 76, 85, 102);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 11, 12, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 8, 9, 9, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 8, 9, 9, 10, 10, 10, 10.5);
+gendef [1/36pt#]( hair# )( 15, 15.4, 15.8, 16.2, 16.6, 17, 18.3);
+gendef [1/36pt#]( stem# )( 24, 28, 32, 35, 38, 41, 47);
+gendef [1/36pt#]( curve# )( 27, 31, 35, 39, 43, 46, 52);
+gendef [1/36pt#]( ess# )( 19, 25, 29, 32, 35, 38, 44);
+gendef [1/36pt#]( flare# )( 27, 31, 35, 39, 42, 45, 51);
+gendef [1/36pt#]( dot_size# )( 31, 36, 41, 46, 51, 56, 62);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 18, 19, 19, 19, 20);
+gendef [1/36pt#]( cap_stem# )( 28, 33, 38, 43, 47, 51, 57);
+gendef [1/36pt#]( cap_curve# )( 31, 36, 41, 46, 51, 55, 61);
+gendef [1/36pt#]( cap_ess# )( 24, 31, 37, 43, 48, 53, 59);
+gendef [pt#]( rule_thickness#)( .43, .47, .51, .54, .57, .60, .66);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( jut# )( 13, 15, 17, 19, 22, 25, 30);
+gendef [1/36pt#]( cap_jut# )( 19, 23, 27, 31, 35, 39, 46);
+gendef [1/36pt#]( beak_jut# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 12.4);
+gendef [1/36pt#]( beak# )( 25, 36, 46, 55, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 10, 11, 11.5, 12, 12.5, 13, 14.3);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( slab# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_band# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 1.5, 1.8, 2.1, 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( stem_corr# )( 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 5, 2, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3, 3, 4, 4, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 3, 3, 3, 4);
+slant:=1/6;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, 1.3, 1.1, .9, .7, .5, .5);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+gendef [1/36pt#]( lower.u# )( 11, 12, 14, 15.7, 17, 18.3, 21.3);
+gendef [1/36pt#]( lower.width_adj# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 13);
+gendef [1/36pt#]( lower.cap_serif_fit# )( 2, 2.8, 3.6, 4.4, 5.2, 6, 7);
+gendef [1/36pt#]( lower.letter_fit# )( 1.44, 1.44, 1.44, 1.44, 1.44, 1.44, 1.44);
+gendef [1/36pt#]( lower.body_height# )( 65, 92, 119, 146, 173, 200, 254);
+gendef [1/36pt#]( lower.cap_height# )( 96, 106, 122, 136, 161, 186, 226);
+gendef [1/36pt#]( lower.x_height# )( 39.7, 55.7, 71.7, 87.7, 103.7, 119.7, 151.7);
+gendef [1/36pt#]( lower.bar_height# )( 19.8, 28.4, 37, 45.8, 54.6, 63.5, 80.5);
+gendef [1/36pt#]( lower.comma_depth# )( 17, 24, 31, 38, 45, 52, 64);
+gendef [1/36pt#]( lower.flare# )( 17.7, 21.8, 25.8, 29.5, 31.8, 34.1, 38.6);
+gendef [1/36pt#]( lower.dot_size# )( 21, 26, 31, 36, 41, 46, 52);
+gendef [1/36pt#]( lower.cap_hair# )( 11, 12, 13, 14, 15, 15.7, 16.5);
+gendef [1/36pt#]( lower.stem# )( 20, 23, 26, 29.4, 31.9, 34.4, 39.5);
+gendef [1/36pt#]( lower.cap_stem# )( 21, 25, 29, 34, 38.2, 41.4, 46.3);
+gendef [1/36pt#]( lower.cap_curve# )( 24, 28, 33, 38, 42.7, 46.1, 51.1);
+gendef [1/36pt#]( lower.cap_ess# )( 15, 22, 29, 34, 38.4, 42.4, 47.2);
+gendef [1/36pt#]( lower.cap_jut# )( 9, 11, 14, 18, 24, 27.4, 32.3);
+gendef [1/36pt#]( lower.beak_jut# )( 4, 5, 6, 6.5, 7.1, 7.7, 8.68);
+gendef [1/36pt#]( lower.beak# )( 17, 24, 31, 39, 46, 52, 62.4);
+gendef [1/36pt#]( lower.slab# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [1/36pt#]( lower.cap_bar# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [1/36pt#]( lower.cap_band# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [pt#]( lower.cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( lower.o# )( 1.875, 1.875, 1.875, 2.5, 2.5, 2.5, 3.125);
+gendef [1/36pt#]( lower.cap_bar# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [1/36pt#]( lower.cap_band# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [pt#]( lower.cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( lower.o# )( 1.875, 1.875, 1.875, 2.5, 2.5, 2.5, 3.125);
+gendef [1/36pt#]( lower.apex_o# )( 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 2);
+gendef ( lower.fudge )( 1, 1, 1, 1, 1, 1, 1);
+
+clear_extra_memory;
+
+generate excsc;
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0500.mf
new file mode 100644
index 00000000000..e7623cbc437
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0500.mf
@@ -0,0 +1,6 @@
+% This is ecoc0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0600.mf
new file mode 100644
index 00000000000..8b7d8f5474a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0600.mf
@@ -0,0 +1,6 @@
+% This is ecoc0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0700.mf
new file mode 100644
index 00000000000..191b5c39fff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0700.mf
@@ -0,0 +1,6 @@
+% This is ecoc0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0800.mf
new file mode 100644
index 00000000000..8f6e55d3bcc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0800.mf
@@ -0,0 +1,6 @@
+% This is ecoc0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0900.mf
new file mode 100644
index 00000000000..27a4564dac8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc0900.mf
@@ -0,0 +1,6 @@
+% This is ecoc0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1000.mf
new file mode 100644
index 00000000000..ac7a5c849d0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1000.mf
@@ -0,0 +1,6 @@
+% This is ecoc1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1095.mf
new file mode 100644
index 00000000000..2904ab2c076
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1095.mf
@@ -0,0 +1,6 @@
+% This is ecoc1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1200.mf
new file mode 100644
index 00000000000..87c9312a91a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1200.mf
@@ -0,0 +1,6 @@
+% This is ecoc1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1440.mf
new file mode 100644
index 00000000000..58692572340
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1440.mf
@@ -0,0 +1,6 @@
+% This is ecoc1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1728.mf
new file mode 100644
index 00000000000..e441fabf390
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc1728.mf
@@ -0,0 +1,6 @@
+% This is ecoc1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc2074.mf
new file mode 100644
index 00000000000..f28534c6ed8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc2074.mf
@@ -0,0 +1,6 @@
+% This is ecoc2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc2488.mf
new file mode 100644
index 00000000000..64e9e66ed08
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc2488.mf
@@ -0,0 +1,6 @@
+% This is ecoc2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc2986.mf
new file mode 100644
index 00000000000..bb3ed232e23
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc2986.mf
@@ -0,0 +1,6 @@
+% This is ecoc2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecoc3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc3583.mf
new file mode 100644
index 00000000000..21cd7ccf834
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecoc3583.mf
@@ -0,0 +1,6 @@
+% This is ecoc3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecoc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecqi8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecqi8.mf
new file mode 100644
index 00000000000..9f80caa05a1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecqi8.mf
@@ -0,0 +1,89 @@
+% ecqi8.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% European Computer Modern Sans Serif Quotation Inclined
+%
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="ECSSQI";
+font_size 8pt#;
+u#:=20/36pt#;
+width_adj#:=2/36pt#;
+serif_fit#:= -10/36pt#;
+cap_serif_fit#:= -14/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=190/36pt#;
+x_height#:=150/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=80/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=23/36pt#;
+stem#:=23/36pt#;
+curve#:=23/36pt#;
+ess#:=23/36pt#;
+flare#:=21/36pt#;
+dot_size#:=28/36pt#;
+cap_hair#:=23/36pt#;
+cap_stem#:=27/36pt#;
+cap_curve#:=27/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.55555pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=18/36pt#;
+notch_cut#:=23/36pt#;
+bar#:=18/36pt#;
+slab#:=19/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=23/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=.5/36pt#;
+apex_corr#:=4/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=sind 12/cosd 12;
+fudge:=.95;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb.mf
new file mode 100644
index 00000000000..788431673d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb.mf
@@ -0,0 +1,98 @@
+% ecrb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% This file has been modified for local use by Tomas Vanhala
+% (vanhala@cc.helsinki.fi). (7-NOV-1994)
+%
+% [ heavily borrowed from the Computer Modern Roman family of
+% fonts by D. E. Knuth ]
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Roman Bold (Non-Extended)
+%
+%
+font_identifier:="ECRB";
+font_size (gensize*pt#);
+basedef ( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5);
+gendef [1/36pt#]( width_adj# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 12);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.5, 5.1, 5.6, 6, 6.8);
+gendef [1/36pt#]( letter_fit# )( 3, 2, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 123.5, 148.2, 172.9, 197.6, 222.3, 247, 296.4);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 80, 96, 112, 128, 144, 160, 192);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 40, 49, 58, 67, 76, 85, 102);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 11, 12, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 8, 9, 9, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 8, 9, 9, 10, 10, 10, 10.5);
+gendef [1/36pt#]( hair# )( 15, 15.4, 15.8, 16.2, 16.6, 17, 18.3);
+gendef [1/36pt#]( stem# )( 24, 28, 32, 35, 38, 41, 47);
+gendef [1/36pt#]( curve# )( 27, 31, 35, 39, 43, 46, 52);
+gendef [1/36pt#]( ess# )( 19, 25, 29, 32, 35, 38, 44);
+gendef [1/36pt#]( flare# )( 27, 31, 35, 39, 42, 45, 51);
+gendef [1/36pt#]( dot_size# )( 31, 36, 41, 46, 51, 56, 62);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 18, 19, 19, 19, 20);
+gendef [1/36pt#]( cap_stem# )( 28, 33, 38, 43, 47, 51, 57);
+gendef [1/36pt#]( cap_curve# )( 31, 36, 41, 46, 51, 55, 61);
+gendef [1/36pt#]( cap_ess# )( 24, 31, 37, 43, 48, 53, 59);
+gendef [pt#]( rule_thickness#)( .43, .47, .51, .54, .57, .60, .66);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( jut# )( 13, 15, 17, 19, 22, 25, 30);
+gendef [1/36pt#]( cap_jut# )( 14, 17, 22, 26, 30, 34, 41);
+gendef [1/36pt#]( beak_jut# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 12.4);
+gendef [1/36pt#]( beak# )( 25, 36, 46, 55, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 10, 11, 11.5, 12, 12.5, 13, 14.3);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( slab# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_band# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 1.5, 1.8, 2.1, 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( stem_corr# )( 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 5, 2, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3, 3, 4, 4, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 3, 3, 3, 4);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, 1.3, 1.1, .9, .7, .5, .4);
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0500.mf
new file mode 100644
index 00000000000..c38bbd84c97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0500.mf
@@ -0,0 +1,6 @@
+% This is ecrb0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0600.mf
new file mode 100644
index 00000000000..56c1ecb4b6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0600.mf
@@ -0,0 +1,6 @@
+% This is ecrb0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0700.mf
new file mode 100644
index 00000000000..82b9f3c9866
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0700.mf
@@ -0,0 +1,6 @@
+% This is ecrb0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0800.mf
new file mode 100644
index 00000000000..39f9791c7e8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0800.mf
@@ -0,0 +1,6 @@
+% This is ecrb0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0900.mf
new file mode 100644
index 00000000000..f0af824794d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb0900.mf
@@ -0,0 +1,6 @@
+% This is ecrb0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1000.mf
new file mode 100644
index 00000000000..98f263f95b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1000.mf
@@ -0,0 +1,6 @@
+% This is ecrb1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1095.mf
new file mode 100644
index 00000000000..66de216e194
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1095.mf
@@ -0,0 +1,6 @@
+% This is ecrb1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1200.mf
new file mode 100644
index 00000000000..d1cfd82af25
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1200.mf
@@ -0,0 +1,6 @@
+% This is ecrb1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1440.mf
new file mode 100644
index 00000000000..0e011d2d1f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1440.mf
@@ -0,0 +1,6 @@
+% This is ecrb1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1728.mf
new file mode 100644
index 00000000000..f3d30558fda
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb1728.mf
@@ -0,0 +1,6 @@
+% This is ecrb1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb2074.mf
new file mode 100644
index 00000000000..8b2b4a5baee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb2074.mf
@@ -0,0 +1,6 @@
+% This is ecrb2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb2488.mf
new file mode 100644
index 00000000000..970e9b55737
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb2488.mf
@@ -0,0 +1,6 @@
+% This is ecrb2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb2986.mf
new file mode 100644
index 00000000000..5d58019422f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb2986.mf
@@ -0,0 +1,6 @@
+% This is ecrb2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrb3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb3583.mf
new file mode 100644
index 00000000000..21e30ff7b6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrb3583.mf
@@ -0,0 +1,6 @@
+% This is ecrb3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm.mf
new file mode 100644
index 00000000000..385667806a1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm.mf
@@ -0,0 +1,93 @@
+% ecrm.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Roman Medium
+%
+%
+font_identifier:="ECRM";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 3, 2, 0, 0, 0, 0, [-.1]);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+%gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( dot_height# )( 42, 46.6, 51.2, 56, 60.4, 66, 77.2, 100);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 40);
+gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 41);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 47);
+gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0500.mf
new file mode 100644
index 00000000000..eadc048783a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0500.mf
@@ -0,0 +1,6 @@
+% This is ecrm0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0600.mf
new file mode 100644
index 00000000000..24c903cf971
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0600.mf
@@ -0,0 +1,6 @@
+% This is ecrm0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0700.mf
new file mode 100644
index 00000000000..6f8367c9c58
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0700.mf
@@ -0,0 +1,6 @@
+% This is ecrm0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0800.mf
new file mode 100644
index 00000000000..2194a1dc86d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0800.mf
@@ -0,0 +1,6 @@
+% This is ecrm0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0900.mf
new file mode 100644
index 00000000000..9e61fd67673
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm0900.mf
@@ -0,0 +1,6 @@
+% This is ecrm0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1000.mf
new file mode 100644
index 00000000000..49902180e56
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1000.mf
@@ -0,0 +1,6 @@
+% This is ecrm1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1095.mf
new file mode 100644
index 00000000000..1daf46bc377
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1095.mf
@@ -0,0 +1,6 @@
+% This is ecrm1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1200.mf
new file mode 100644
index 00000000000..81f8a3efc4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1200.mf
@@ -0,0 +1,6 @@
+% This is ecrm1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1440.mf
new file mode 100644
index 00000000000..9e94d58b715
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1440.mf
@@ -0,0 +1,6 @@
+% This is ecrm1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1728.mf
new file mode 100644
index 00000000000..00d09200310
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm1728.mf
@@ -0,0 +1,6 @@
+% This is ecrm1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm2074.mf
new file mode 100644
index 00000000000..7e79dce7fce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm2074.mf
@@ -0,0 +1,6 @@
+% This is ecrm2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm2488.mf
new file mode 100644
index 00000000000..e71e6e5ddcc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm2488.mf
@@ -0,0 +1,6 @@
+% This is ecrm2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm2986.mf
new file mode 100644
index 00000000000..e29110479f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm2986.mf
@@ -0,0 +1,6 @@
+% This is ecrm2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecrm3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm3583.mf
new file mode 100644
index 00000000000..4a0d8ab1e1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecrm3583.mf
@@ -0,0 +1,6 @@
+% This is ecrm3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc.mf
new file mode 100644
index 00000000000..de1fb6e14d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc.mf
@@ -0,0 +1,118 @@
+% ecsc.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Slanted Caps and Small Caps
+%
+%
+font_identifier:="ECSLCSC";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 13.5, 15, 16.5, 18, 19.5, 21, 24.5, 33.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 5, 5, 5, 5, 5, 5, 5);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 41);
+gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 40);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 48);
+gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=1/6;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.4]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+gendef [1/36pt#]( lower.u# )( 8.5, 10, 11.5, 13, 14.5, 16, 19.5, 28.5);
+gendef [1/36pt#]( lower.width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( lower.cap_serif_fit# )( 1, 1.8, 2.5, 3.1, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( lower.letter_fit# )( 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4, 2.4);
+gendef [1/36pt#]( lower.body_height# )( 65, 92, 119, 146, 173, 200, 254, 396);
+gendef [1/36pt#]( lower.cap_height# )( 94, 105, 121.2, 135.8, 160.4, 185, 226, 335);
+gendef [1/36pt#]( lower.x_height# )( 38.5, 54, 69.5, 85, 100.5, 116, 147, 228.8);
+gendef [1/36pt#]( lower.bar_height# )( 21.5, 30.2, 38.9, 47.6, 56.3, 65, 82.4, 128);
+gendef [1/36pt#]( lower.comma_depth# )( 17, 24, 31, 38, 45, 52, 64, 103);
+gendef [1/36pt#]( lower.flare# )( 11, 13, 16, 19, 22, 25, 28, 37);
+gendef [1/36pt#]( lower.dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( lower.cap_hair# )( 6.1, 6.6, 7.1, 7.6, 8.1, 9.1, 9.6, 11.1);
+gendef [1/36pt#]( lower.stem# )( 12, 14, 16, 18, 20, 21, 24, 29);
+gendef [1/36pt#]( lower.cap_stem# )( 13, 15.5, 18, 20.5, 23, 26, 29, 34);
+gendef [1/36pt#]( lower.cap_curve# )( 15, 18, 21, 24, 27, 31, 34, 42);
+gendef [1/36pt#]( lower.cap_ess# )( 7, 12, 16, 20, 24, 28, 31, 36);
+gendef [1/36pt#]( lower.cap_jut# )( 9, 12, 15, 18, 22, 26, 30, 39);
+gendef [1/36pt#]( lower.beak_jut# )( 3, 3.8, 4.6, 5.4, 6.2, 7, 8.4, 12);
+gendef [1/36pt#]( lower.beak# )( 17, 24, 31, 38, 45, 52, 66, 103);
+gendef [1/36pt#]( lower.slab# )( 6.1, 6.6, 7.1, 7.6, 8.1, 9.1, 10.6, 14.1);
+gendef [1/36pt#]( lower.cap_bar# )( 6.1, 6.6, 7.1, 7.6, 8.1, 9.1, 10.6, 14.1);
+gendef [1/36pt#]( lower.cap_band# )( 6.1, 6.6, 7.1, 7.6, 8.1, 9.1, 10.6, 14.1);
+gendef [pt#]( lower.cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( lower.o# )( 1, 1.5, 2, 3, 4, 5, 6, 7);
+gendef [1/36pt#]( lower.apex_o# )( 0, .5, 1, 2, 3, 4, 5, 6);
+gendef ( lower.fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+
+clear_extra_memory;
+
+generate excsc
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0500.mf
new file mode 100644
index 00000000000..b58396b04ba
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0500.mf
@@ -0,0 +1,6 @@
+% This is ecsc0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0600.mf
new file mode 100644
index 00000000000..ab3c52ebb0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0600.mf
@@ -0,0 +1,6 @@
+% This is ecsc0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0700.mf
new file mode 100644
index 00000000000..c8794e19559
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0700.mf
@@ -0,0 +1,6 @@
+% This is ecsc0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0800.mf
new file mode 100644
index 00000000000..0ec9d48166a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0800.mf
@@ -0,0 +1,6 @@
+% This is ecsc0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0900.mf
new file mode 100644
index 00000000000..5cf50ef580f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc0900.mf
@@ -0,0 +1,6 @@
+% This is ecsc0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1000.mf
new file mode 100644
index 00000000000..d29d59a0f10
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1000.mf
@@ -0,0 +1,6 @@
+% This is ecsc1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1095.mf
new file mode 100644
index 00000000000..8b60aa52d42
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1095.mf
@@ -0,0 +1,6 @@
+% This is ecsc1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1200.mf
new file mode 100644
index 00000000000..f80774b3a59
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1200.mf
@@ -0,0 +1,6 @@
+% This is ecsc1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1440.mf
new file mode 100644
index 00000000000..ce9a8848147
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1440.mf
@@ -0,0 +1,6 @@
+% This is ecsc1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1728.mf
new file mode 100644
index 00000000000..99675512c9a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc1728.mf
@@ -0,0 +1,6 @@
+% This is ecsc1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc2074.mf
new file mode 100644
index 00000000000..c7cf8806ad7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc2074.mf
@@ -0,0 +1,6 @@
+% This is ecsc2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc2488.mf
new file mode 100644
index 00000000000..ac9734c7d72
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc2488.mf
@@ -0,0 +1,6 @@
+% This is ecsc2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc2986.mf
new file mode 100644
index 00000000000..825619ece46
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc2986.mf
@@ -0,0 +1,6 @@
+% This is ecsc2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsc3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc3583.mf
new file mode 100644
index 00000000000..b7dadd5b9d7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsc3583.mf
@@ -0,0 +1,6 @@
+% This is ecsc3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecsc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi.mf
new file mode 100644
index 00000000000..c758e78ba58
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi.mf
@@ -0,0 +1,92 @@
+% ecsi.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Sans Serif Inclined
+%
+%
+font_identifier:="ECSSI";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 12, 13, 15, 17, 24);
+gendef [1/36pt#]( serif_fit# )( [-6], [-6.5], [-7], [-9], [-12]);
+gendef [1/36pt#]( cap_serif_fit# )( [-8.5], [-9], [-10], [-13], [-17]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 205, 235, 260, 315, 445);
+gendef [1/36pt#]( cap_height# )( 200, 225, 250, 300, 425);
+gendef [1/36pt#]( fig_height# )( 189, 212, 236, 283, 408);
+gendef [1/36pt#]( x_height# )( 128, 144, 160, 192, 267.8);
+gendef [1/36pt#]( math_axis# )( 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 97, 136);
+gendef [1/36pt#]( comma_depth# )( 37, 41, 45, 54, 78);
+gendef [1/36pt#]( desc_depth# )( 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 60, 65, 70, 82, 110);
+gendef [1/36pt#]( dot_height# )( 45.8, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 48.2, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 15, 16, 17, 20, 24);
+gendef [1/36pt#]( hair# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( stem# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( curve# )( 25, 27, 28, 30, 33);
+gendef [1/36pt#]( ess# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( flare# )( 22, 24, 25, 30, 33);
+gendef [1/36pt#]( dot_size# )( 26, 28, 30, 35, 40);
+gendef [1/36pt#]( cap_hair# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( cap_stem# )( 29, 31, 32, 33, 39);
+gendef [1/36pt#]( cap_curve# )( 29, 31, 32, 37, 42);
+gendef [1/36pt#]( cap_ess# )( 28, 31, 32, 37, 42);
+gendef [pt#]( rule_thickness#)( .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( .4, .5, .5, .6, .8);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 26, 31);
+gendef [1/36pt#]( notch_cut# )( 16, 17, 18, 22, 32);
+gendef [1/36pt#]( bar# )( 18, 20, 21, 25, 30);
+gendef [1/36pt#]( slab# )( 20, 22, 23, 27, 32);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 26, 31);
+gendef [1/36pt#]( cap_band# )( 17, 19, 20, 24, 30);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 31, 36);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 4, 4.5, 5, 6, 7);
+gendef [1/36pt#]( o# )( 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0);
+gendef ( fudge )( .93, .95, .96, .98, .98);
+gendef ( math_spread )( .4, .2, 0, [-.2], [-.2]);
+
+slant:=sind 12/cosd 12;
+superness:=1/sqrt 2;
+superpull:=1/20;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0500.mf
new file mode 100644
index 00000000000..6ca2395c2b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0500.mf
@@ -0,0 +1,6 @@
+% This is ecsi0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0600.mf
new file mode 100644
index 00000000000..d91146ddf86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0600.mf
@@ -0,0 +1,6 @@
+% This is ecsi0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0700.mf
new file mode 100644
index 00000000000..afa63f8e0fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0700.mf
@@ -0,0 +1,6 @@
+% This is ecsi0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0800.mf
new file mode 100644
index 00000000000..85b532ae495
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0800.mf
@@ -0,0 +1,6 @@
+% This is ecsi0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0900.mf
new file mode 100644
index 00000000000..64c099cd22a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi0900.mf
@@ -0,0 +1,6 @@
+% This is ecsi0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1000.mf
new file mode 100644
index 00000000000..a729823be5c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1000.mf
@@ -0,0 +1,6 @@
+% This is ecsi1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1095.mf
new file mode 100644
index 00000000000..98a9eedcbb0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1095.mf
@@ -0,0 +1,6 @@
+% This is ecsi1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1200.mf
new file mode 100644
index 00000000000..364c001e60b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1200.mf
@@ -0,0 +1,6 @@
+% This is ecsi1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1440.mf
new file mode 100644
index 00000000000..7ead0c5d873
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1440.mf
@@ -0,0 +1,6 @@
+% This is ecsi1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1728.mf
new file mode 100644
index 00000000000..34e146c181a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi1728.mf
@@ -0,0 +1,6 @@
+% This is ecsi1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi2074.mf
new file mode 100644
index 00000000000..923ee3ed7e1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi2074.mf
@@ -0,0 +1,6 @@
+% This is ecsi2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi2488.mf
new file mode 100644
index 00000000000..61e6570e898
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi2488.mf
@@ -0,0 +1,6 @@
+% This is ecsi2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi2986.mf
new file mode 100644
index 00000000000..dddb1d78262
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi2986.mf
@@ -0,0 +1,6 @@
+% This is ecsi2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsi3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi3583.mf
new file mode 100644
index 00000000000..80be7c64ae5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsi3583.mf
@@ -0,0 +1,6 @@
+% This is ecsi3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl.mf
new file mode 100644
index 00000000000..9190c562b49
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl.mf
@@ -0,0 +1,93 @@
+% ecsl.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Roman Slanted
+%
+%
+font_identifier:="ECSL";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 3, 2, 0, 0, 0, 0, [-.1]);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+%gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( dot_height# )( 42, 46.6, 51.2, 56, 60.4, 66, 77.2, 100);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 40);
+gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 41);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 47);
+gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=1/6;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0500.mf
new file mode 100644
index 00000000000..ac6680bf820
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0500.mf
@@ -0,0 +1,6 @@
+% This is ecsl0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0600.mf
new file mode 100644
index 00000000000..e493dc56767
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0600.mf
@@ -0,0 +1,6 @@
+% This is ecsl0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0700.mf
new file mode 100644
index 00000000000..cedc8d8ae9f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0700.mf
@@ -0,0 +1,6 @@
+% This is ecsl0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0800.mf
new file mode 100644
index 00000000000..66ae891d8f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0800.mf
@@ -0,0 +1,6 @@
+% This is ecsl0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0900.mf
new file mode 100644
index 00000000000..bedbf5f3004
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl0900.mf
@@ -0,0 +1,6 @@
+% This is ecsl0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1000.mf
new file mode 100644
index 00000000000..159f954a831
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1000.mf
@@ -0,0 +1,6 @@
+% This is ecsl1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1095.mf
new file mode 100644
index 00000000000..ef4fa3916e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1095.mf
@@ -0,0 +1,6 @@
+% This is ecsl1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1200.mf
new file mode 100644
index 00000000000..7963b450db1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1200.mf
@@ -0,0 +1,6 @@
+% This is ecsl1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1440.mf
new file mode 100644
index 00000000000..cc6a7f19a38
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1440.mf
@@ -0,0 +1,6 @@
+% This is ecsl1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1728.mf
new file mode 100644
index 00000000000..efbf6d15bde
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl1728.mf
@@ -0,0 +1,6 @@
+% This is ecsl1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl2074.mf
new file mode 100644
index 00000000000..0a5d1801bd5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl2074.mf
@@ -0,0 +1,6 @@
+% This is ecsl2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl2488.mf
new file mode 100644
index 00000000000..764b12cfd72
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl2488.mf
@@ -0,0 +1,6 @@
+% This is ecsl2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl2986.mf
new file mode 100644
index 00000000000..79fc39fa20c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl2986.mf
@@ -0,0 +1,6 @@
+% This is ecsl2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsl3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl3583.mf
new file mode 100644
index 00000000000..8a96f2fb95a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsl3583.mf
@@ -0,0 +1,6 @@
+% This is ecsl3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso.mf
new file mode 100644
index 00000000000..54b9ff7be25
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso.mf
@@ -0,0 +1,92 @@
+% ecso.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Sans Serif Bold Extended Oblique
+%
+%
+font_identifier:="ECSSBXO";
+font_size gensize*pt#;
+basedef ( 5, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12, 19, 22, 27, 40);
+gendef [1/36pt#]( width_adj# )( 12, 19, 22, 19, 27);
+gendef [1/36pt#]( serif_fit# )([-5], [-8], [-9], [-10], [-14]);
+gendef [1/36pt#]( cap_serif_fit# )([-6], [-9], [-11], [-15], [-20]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )(135, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )(130, 235, 260, 315, 445);
+gendef [1/36pt#]( cap_height# )(125, 225, 250, 300, 425);
+gendef [1/36pt#]( fig_height# )(125, 212, 250, 283, 408);
+gendef [1/36pt#]( x_height# )( 83, 149, 165, 198, 280);
+gendef [1/36pt#]( math_axis# )( 45, 80, 90, 108, 150);
+gendef [1/36pt#]( bar_height# )( 45, 80, 90, 95, 135);
+gendef [1/36pt#]( comma_depth# )( 19, 34, 38, 54, 75);
+gendef [1/36pt#]( desc_depth# )( 35, 62, 70, 84, 120);
+gendef [1/36pt#]( acc_height# )( 45, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 38, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( udot_height# )( 30, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 12, 25, 26, 26, 26);
+gendef [1/36pt#]( tiny# )( 12, 24, 26, 26, 26);
+gendef [1/36pt#]( fine# )( 5, 7, 9, 9, 9);
+gendef [1/36pt#]( thin_join# )( 11, 18, 19, 21, 25);
+gendef [1/36pt#]( hair# )( 25, 40, 49, 50, 67);
+gendef [1/36pt#]( stem# )( 25, 41, 49, 50, 67);
+gendef [1/36pt#]( curve# )( 25, 41, 49, 50, 67);
+gendef [1/36pt#]( ess# )( 22, 35, 43, 44, 60);
+gendef [1/36pt#]( flare# )( 20, 39, 40, 41, 58);
+gendef [1/36pt#]( dot_size# )( 24, 40, 47, 48, 65);
+gendef [1/36pt#]( cap_hair# )( 24, 41, 48, 50, 67);
+gendef [1/36pt#]( cap_stem# )( 26, 43, 51, 54, 70);
+gendef [1/36pt#]( cap_curve# )( 26, 43, 51, 54, 70);
+gendef [1/36pt#]( cap_ess# )( 26, 43, 51, 52, 68);
+gendef [1/36pt#]( rule_thickness#)( 16, 29, 30, 31, 36);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )(.75, 1.1, 1.5, 1.8, 3.5);
+gendef [1/36pt#]( vair# )( 15, 22, 26, 27, 35);
+gendef [1/36pt#]( notch_cut# )( 25, 42, 49, 50, 57);
+gendef [1/36pt#]( bar# )( 13, 26, 26, 27, 35);
+gendef [1/36pt#]( slab# )( 18, 35, 36, 37, 45);
+gendef [1/36pt#]( cap_bar# )( 17, 33, 34, 35, 42);
+gendef [1/36pt#]( cap_band# )( 16, 30, 31, 32, 40);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 44, 45, 46, 53);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( apex_corr# )( 15, 17, 18, 19, 20);
+gendef [1/36pt#]( o# )( 5, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0);
+gendef ( fudge )(.88, .88, .88, .88, .88);
+gendef ( math_spread )(.45, .45, .5, .5, .5);
+slant:=sind 12/cosd 12;
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0500.mf
new file mode 100644
index 00000000000..0a4d63237b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0500.mf
@@ -0,0 +1,6 @@
+% This is ecso0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0600.mf
new file mode 100644
index 00000000000..48ccf0ee940
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0600.mf
@@ -0,0 +1,6 @@
+% This is ecso0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0700.mf
new file mode 100644
index 00000000000..8d3d1093cee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0700.mf
@@ -0,0 +1,6 @@
+% This is ecso0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0800.mf
new file mode 100644
index 00000000000..15f58db63c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0800.mf
@@ -0,0 +1,6 @@
+% This is ecso0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0900.mf
new file mode 100644
index 00000000000..3f3e93b0df6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso0900.mf
@@ -0,0 +1,6 @@
+% This is ecso0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1000.mf
new file mode 100644
index 00000000000..8df5e364b95
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1000.mf
@@ -0,0 +1,6 @@
+% This is ecso1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1095.mf
new file mode 100644
index 00000000000..801dbecee84
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1095.mf
@@ -0,0 +1,6 @@
+% This is ecso1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1200.mf
new file mode 100644
index 00000000000..7ea4e3e7f79
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1200.mf
@@ -0,0 +1,6 @@
+% This is ecso1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1440.mf
new file mode 100644
index 00000000000..a502aaa0756
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1440.mf
@@ -0,0 +1,6 @@
+% This is ecso1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1728.mf
new file mode 100644
index 00000000000..ebc6349a059
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso1728.mf
@@ -0,0 +1,6 @@
+% This is ecso1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso2074.mf
new file mode 100644
index 00000000000..e39a699fe9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso2074.mf
@@ -0,0 +1,6 @@
+% This is ecso2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso2488.mf
new file mode 100644
index 00000000000..bc10050384d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso2488.mf
@@ -0,0 +1,6 @@
+% This is ecso2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso2986.mf
new file mode 100644
index 00000000000..a11d638ead6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso2986.mf
@@ -0,0 +1,6 @@
+% This is ecso2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecso3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecso3583.mf
new file mode 100644
index 00000000000..663d71c8c47
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecso3583.mf
@@ -0,0 +1,6 @@
+% This is ecso3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsq8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsq8.mf
new file mode 100644
index 00000000000..76fd577aed5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsq8.mf
@@ -0,0 +1,89 @@
+% ecsq8.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% European Computer Modern Sans Serif Quotation
+%
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="ECSSQ";
+font_size 8pt#;
+u#:=20/36pt#;
+width_adj#:=2/36pt#;
+serif_fit#:= -10/36pt#;
+cap_serif_fit#:= -14/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=190/36pt#;
+x_height#:=150/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=80/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=23/36pt#;
+stem#:=23/36pt#;
+curve#:=23/36pt#;
+ess#:=23/36pt#;
+flare#:=21/36pt#;
+dot_size#:=28/36pt#;
+cap_hair#:=23/36pt#;
+cap_stem#:=27/36pt#;
+cap_curve#:=27/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.55555pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=18/36pt#;
+notch_cut#:=23/36pt#;
+bar#:=18/36pt#;
+slab#:=19/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=23/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=.5/36pt#;
+apex_corr#:=4/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=0;
+fudge:=.95;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss.mf
new file mode 100644
index 00000000000..433224ede52
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss.mf
@@ -0,0 +1,91 @@
+% ecss.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Sans Serif
+%
+%
+font_identifier:="ECSS";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 12, 13, 15, 17, 24);
+gendef [1/36pt#]( serif_fit# )( [-6], [-6.5], [-7], [-9], [-12]);
+gendef [1/36pt#]( cap_serif_fit# )( [-8.5], [-9], [-10], [-13], [-17]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 205, 235, 260, 315, 445);
+gendef [1/36pt#]( cap_height# )( 200, 225, 250, 300, 425);
+gendef [1/36pt#]( fig_height# )( 189, 212, 236, 283, 408);
+gendef [1/36pt#]( x_height# )( 128, 144, 160, 192, 267.8);
+gendef [1/36pt#]( math_axis# )( 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 97, 136);
+gendef [1/36pt#]( comma_depth# )( 37, 41, 45, 54, 78);
+gendef [1/36pt#]( desc_depth# )( 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 60, 65, 70, 82, 110);
+gendef [1/36pt#]( dot_height# )( 45.8, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 48.2, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 15, 16, 17, 20, 24);
+gendef [1/36pt#]( hair# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( stem# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( curve# )( 25, 27, 28, 30, 33);
+gendef [1/36pt#]( ess# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( flare# )( 22, 24, 25, 30, 33);
+gendef [1/36pt#]( dot_size# )( 26, 28, 30, 35, 40);
+gendef [1/36pt#]( cap_hair# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( cap_stem# )( 29, 31, 32, 33, 39);
+gendef [1/36pt#]( cap_curve# )( 29, 31, 32, 37, 42);
+gendef [1/36pt#]( cap_ess# )( 28, 31, 32, 37, 42);
+gendef [pt#]( rule_thickness#)( .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( .4, .5, .5, .6, .8);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 26, 31);
+gendef [1/36pt#]( notch_cut# )( 16, 17, 18, 22, 32);
+gendef [1/36pt#]( bar# )( 18, 20, 21, 25, 30);
+gendef [1/36pt#]( slab# )( 20, 22, 23, 27, 32);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 26, 31);
+gendef [1/36pt#]( cap_band# )( 17, 19, 20, 24, 30);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 31, 36);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 4, 4.5, 5, 6, 7);
+gendef [1/36pt#]( o# )( 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0);
+slant:=0;
+gendef ( fudge )( .93, .95, .96, .98, .98);
+gendef ( math_spread )( .4, .2, 0, [-.2], [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/20;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0500.mf
new file mode 100644
index 00000000000..de0344ccd00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0500.mf
@@ -0,0 +1,6 @@
+% This is ecss0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0600.mf
new file mode 100644
index 00000000000..b030dc32148
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0600.mf
@@ -0,0 +1,6 @@
+% This is ecss0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0700.mf
new file mode 100644
index 00000000000..cfe6c7503a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0700.mf
@@ -0,0 +1,6 @@
+% This is ecss0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0800.mf
new file mode 100644
index 00000000000..858bf30938a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0800.mf
@@ -0,0 +1,6 @@
+% This is ecss0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0900.mf
new file mode 100644
index 00000000000..b9388328b1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss0900.mf
@@ -0,0 +1,6 @@
+% This is ecss0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1000.mf
new file mode 100644
index 00000000000..c7ef3cda7f5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1000.mf
@@ -0,0 +1,6 @@
+% This is ecss1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1095.mf
new file mode 100644
index 00000000000..30cc627e81a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1095.mf
@@ -0,0 +1,6 @@
+% This is ecss1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1200.mf
new file mode 100644
index 00000000000..2e0d8512b0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1200.mf
@@ -0,0 +1,6 @@
+% This is ecss1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1440.mf
new file mode 100644
index 00000000000..7c0568766bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1440.mf
@@ -0,0 +1,6 @@
+% This is ecss1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1728.mf
new file mode 100644
index 00000000000..51598ccfcd6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss1728.mf
@@ -0,0 +1,6 @@
+% This is ecss1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss2074.mf
new file mode 100644
index 00000000000..7006e098b51
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss2074.mf
@@ -0,0 +1,6 @@
+% This is ecss2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss2488.mf
new file mode 100644
index 00000000000..ad88a3a6102
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss2488.mf
@@ -0,0 +1,6 @@
+% This is ecss2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss2986.mf
new file mode 100644
index 00000000000..e9ba2a7cd1f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss2986.mf
@@ -0,0 +1,6 @@
+% This is ecss2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecss3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecss3583.mf
new file mode 100644
index 00000000000..2f2a46b8b4b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecss3583.mf
@@ -0,0 +1,6 @@
+% This is ecss3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecssdc10.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecssdc10.mf
new file mode 100644
index 00000000000..54b4632768d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecssdc10.mf
@@ -0,0 +1,90 @@
+% ecssdc10.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% European Computer Modern Sans Serif Demi Condensed
+%
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="ECSSEC";
+font_size 10pt#;
+
+u#:=19/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-8/36pt#;
+cap_serif_fit#:=-9/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=250/36pt#;
+fig_height#:=250/36pt#;
+x_height#:=170/36pt#;
+math_axis#:=95/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=60/36pt#;
+acc_height#:=75/36pt#;
+dot_height#:=60/36pt#;
+udot_height#:=60/36pt#;
+crisp#:=23/36pt#;
+tiny#:=23/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=40/36pt#;
+stem#:=40/36pt#;
+curve#:=40/36pt#;
+ess#:=37/36pt#;
+flare#:=31/36pt#;
+dot_size#:=38/36pt#;
+cap_hair#:=40/36pt#;
+cap_stem#:=44/36pt#;
+cap_curve#:=44/36pt#;
+cap_ess#:=42/36pt#;
+rule_thickness#:=.69444pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=1.5/36pt#;
+vair#:=23/36pt#;
+notch_cut#:=40/36pt#;
+bar#:=23/36pt#;
+slab#:=31/36pt#;
+cap_bar#:=29/36pt#;
+cap_band#:=27/36pt#;
+cap_notch_cut#:=37/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=2/36pt#;
+apex_corr#:=14/36pt#;
+o#:=7/36pt#;
+apex_o#:=0/36pt#;
+slant:=0;
+fudge:=.91;
+math_spread:=.3;
+superness:=0.74;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst.mf
new file mode 100644
index 00000000000..8a054a371f5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst.mf
@@ -0,0 +1,93 @@
+% ecst.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Slanted Typewriter Text
+%
+%
+font_identifier:="ECSLTT";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 40, 45, 50, 60);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+slant:=1/6;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+true_mono:=true;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst0800.mf
new file mode 100644
index 00000000000..d8c2f252997
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst0800.mf
@@ -0,0 +1,6 @@
+% This is ecst0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst0900.mf
new file mode 100644
index 00000000000..44cd5f13265
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst0900.mf
@@ -0,0 +1,6 @@
+% This is ecst0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1000.mf
new file mode 100644
index 00000000000..2bb37c8dc57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1000.mf
@@ -0,0 +1,6 @@
+% This is ecst1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1095.mf
new file mode 100644
index 00000000000..4618d4173b2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1095.mf
@@ -0,0 +1,6 @@
+% This is ecst1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1200.mf
new file mode 100644
index 00000000000..587112ebfec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1200.mf
@@ -0,0 +1,6 @@
+% This is ecst1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1440.mf
new file mode 100644
index 00000000000..db486d71170
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1440.mf
@@ -0,0 +1,6 @@
+% This is ecst1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1728.mf
new file mode 100644
index 00000000000..95cbba626da
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst1728.mf
@@ -0,0 +1,6 @@
+% This is ecst1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst2074.mf
new file mode 100644
index 00000000000..7264172ffa9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst2074.mf
@@ -0,0 +1,6 @@
+% This is ecst2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst2488.mf
new file mode 100644
index 00000000000..85517bd28b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst2488.mf
@@ -0,0 +1,6 @@
+% This is ecst2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst2986.mf
new file mode 100644
index 00000000000..af58fb882e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst2986.mf
@@ -0,0 +1,6 @@
+% This is ecst2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecst3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecst3583.mf
new file mode 100644
index 00000000000..ec6ccd9942c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecst3583.mf
@@ -0,0 +1,6 @@
+% This is ecst3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx.mf
new file mode 100644
index 00000000000..e99c741abcc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx.mf
@@ -0,0 +1,92 @@
+% ecsx.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Sans Serif Bold Extended
+%
+%
+font_identifier:="ECSSBX";
+font_size gensize*pt#;
+basedef ( 5, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12, 19, 22, 27, 40);
+gendef [1/36pt#]( width_adj# )( 12, 19, 22, 19, 27);
+gendef [1/36pt#]( serif_fit# )([-5], [-8], [-9], [-10], [-14]);
+gendef [1/36pt#]( cap_serif_fit# )([-6], [-9], [-11], [-15], [-20]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )(135, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )(130, 235, 260, 315, 445);
+gendef [1/36pt#]( cap_height# )(125, 225, 250, 300, 425);
+gendef [1/36pt#]( fig_height# )(125, 212, 250, 283, 408);
+gendef [1/36pt#]( x_height# )( 83, 149, 165, 198, 280);
+gendef [1/36pt#]( math_axis# )( 45, 80, 90, 108, 150);
+gendef [1/36pt#]( bar_height# )( 45, 80, 90, 95, 135);
+gendef [1/36pt#]( comma_depth# )( 19, 34, 38, 54, 75);
+gendef [1/36pt#]( desc_depth# )( 35, 62, 70, 84, 120);
+gendef [1/36pt#]( acc_height# )( 45, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 38, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( udot_height# )( 30, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 12, 25, 26, 26, 26);
+gendef [1/36pt#]( tiny# )( 12, 24, 26, 26, 26);
+gendef [1/36pt#]( fine# )( 5, 7, 9, 9, 9);
+gendef [1/36pt#]( thin_join# )( 11, 18, 19, 21, 25);
+gendef [1/36pt#]( hair# )( 25, 40, 49, 50, 67);
+gendef [1/36pt#]( stem# )( 25, 41, 49, 50, 67);
+gendef [1/36pt#]( curve# )( 25, 41, 49, 50, 67);
+gendef [1/36pt#]( ess# )( 22, 35, 43, 44, 60);
+gendef [1/36pt#]( flare# )( 20, 39, 40, 41, 58);
+gendef [1/36pt#]( dot_size# )( 24, 40, 47, 48, 65);
+gendef [1/36pt#]( cap_hair# )( 24, 41, 48, 50, 67);
+gendef [1/36pt#]( cap_stem# )( 26, 43, 51, 54, 70);
+gendef [1/36pt#]( cap_curve# )( 26, 43, 51, 54, 70);
+gendef [1/36pt#]( cap_ess# )( 26, 43, 51, 52, 68);
+gendef [1/36pt#]( rule_thickness#)( 16, 29, 30, 31, 36);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )(.75, 1.1, 1.5, 1.8, 3.5);
+gendef [1/36pt#]( vair# )( 15, 22, 26, 27, 35);
+gendef [1/36pt#]( notch_cut# )( 25, 42, 49, 50, 57);
+gendef [1/36pt#]( bar# )( 13, 26, 26, 27, 35);
+gendef [1/36pt#]( slab# )( 18, 35, 36, 37, 45);
+gendef [1/36pt#]( cap_bar# )( 17, 33, 34, 35, 42);
+gendef [1/36pt#]( cap_band# )( 16, 30, 31, 32, 40);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 44, 45, 46, 53);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( apex_corr# )( 15, 17, 18, 19, 20);
+gendef [1/36pt#]( o# )( 5, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0);
+slant:=0;
+gendef ( fudge )(.88, .88, .88, .88, .88);
+gendef ( math_spread )(.45, .45, .5, .5, .5);
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0500.mf
new file mode 100644
index 00000000000..af2baf8e47c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0500.mf
@@ -0,0 +1,6 @@
+% This is ecsx0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0600.mf
new file mode 100644
index 00000000000..8ec51b1c787
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0600.mf
@@ -0,0 +1,6 @@
+% This is ecsx0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0700.mf
new file mode 100644
index 00000000000..342622fde60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0700.mf
@@ -0,0 +1,6 @@
+% This is ecsx0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0800.mf
new file mode 100644
index 00000000000..00fcb5fa8f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0800.mf
@@ -0,0 +1,6 @@
+% This is ecsx0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0900.mf
new file mode 100644
index 00000000000..bda1f4ba116
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx0900.mf
@@ -0,0 +1,6 @@
+% This is ecsx0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1000.mf
new file mode 100644
index 00000000000..89590e8b671
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1000.mf
@@ -0,0 +1,6 @@
+% This is ecsx1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1095.mf
new file mode 100644
index 00000000000..c0ba1267111
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1095.mf
@@ -0,0 +1,6 @@
+% This is ecsx1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1200.mf
new file mode 100644
index 00000000000..48e00988232
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1200.mf
@@ -0,0 +1,6 @@
+% This is ecsx1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1440.mf
new file mode 100644
index 00000000000..e0fbc9be678
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1440.mf
@@ -0,0 +1,6 @@
+% This is ecsx1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1728.mf
new file mode 100644
index 00000000000..508c3a677dc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx1728.mf
@@ -0,0 +1,6 @@
+% This is ecsx1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx2074.mf
new file mode 100644
index 00000000000..bd17fb322c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx2074.mf
@@ -0,0 +1,6 @@
+% This is ecsx2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx2488.mf
new file mode 100644
index 00000000000..2c3b2c72672
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx2488.mf
@@ -0,0 +1,6 @@
+% This is ecsx2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx2986.mf
new file mode 100644
index 00000000000..aff9180c971
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx2986.mf
@@ -0,0 +1,6 @@
+% This is ecsx2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecsx3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx3583.mf
new file mode 100644
index 00000000000..98970a4ff39
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecsx3583.mf
@@ -0,0 +1,6 @@
+% This is ecsx3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc.mf
new file mode 100644
index 00000000000..fc2920b9a62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc.mf
@@ -0,0 +1,119 @@
+% ectc.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Typewritr Caps and Small Caps
+%
+%
+font_identifier:="ECTCSC";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 40, 45, 50, 60);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+slant:=0;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+true_mono:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+gendef [1/36pt#]( lower.u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( lower.width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( lower.cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( lower.letter_fit# )( 3, 3, 3, 3);
+gendef [1/36pt#]( lower.body_height# )( 140, 165, 190, 240);
+gendef [1/36pt#]( lower.cap_height# )( 126, 148, 170, 214);
+gendef [1/36pt#]( lower.x_height# )( 89, 104.5, 120, 151);
+gendef [1/36pt#]( lower.bar_height# )( 46, 54, 62, 78);
+gendef [1/36pt#]( lower.comma_depth# )( 22, 30, 38, 54);
+gendef [1/36pt#]( lower.flare# )( 26, 28, 30, 33);
+gendef [1/36pt#]( lower.dot_size# )( 28, 30, 33, 36);
+gendef [1/36pt#]( lower.cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( lower.stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( lower.cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( lower.cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( lower.cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( lower.cap_jut# )( 19, 23, 26, 31);
+gendef [1/36pt#]( lower.beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( lower.beak# )( 19, 23, 26, 31);
+gendef [1/36pt#]( lower.slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( lower.cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( lower.cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( lower.cap_notch_cut# )( 21, 23, 24, 27);
+gendef [1/36pt#]( lower.o# )( 2, 2.5, 3, 4);
+gendef [1/36pt#]( lower.apex_o# )( 2, 2, 2, 3);
+gendef ( lower.fudge )( .85, .85, .85, .85);
+
+clear_extra_memory;
+
+generate excsc
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc0800.mf
new file mode 100644
index 00000000000..ecc25220f9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc0800.mf
@@ -0,0 +1,6 @@
+% This is ectc0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc0900.mf
new file mode 100644
index 00000000000..b2eeb017027
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc0900.mf
@@ -0,0 +1,6 @@
+% This is ectc0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1000.mf
new file mode 100644
index 00000000000..3a61c533b69
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1000.mf
@@ -0,0 +1,6 @@
+% This is ectc1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1095.mf
new file mode 100644
index 00000000000..5a8c7981aad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1095.mf
@@ -0,0 +1,6 @@
+% This is ectc1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1200.mf
new file mode 100644
index 00000000000..cb2acf64c97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1200.mf
@@ -0,0 +1,6 @@
+% This is ectc1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1440.mf
new file mode 100644
index 00000000000..12862af87c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1440.mf
@@ -0,0 +1,6 @@
+% This is ectc1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1728.mf
new file mode 100644
index 00000000000..4f9d5fe5eec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc1728.mf
@@ -0,0 +1,6 @@
+% This is ectc1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc2074.mf
new file mode 100644
index 00000000000..372a24ae136
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc2074.mf
@@ -0,0 +1,6 @@
+% This is ectc2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc2488.mf
new file mode 100644
index 00000000000..8c4282550ec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc2488.mf
@@ -0,0 +1,6 @@
+% This is ectc2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc2986.mf
new file mode 100644
index 00000000000..799fd71401a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc2986.mf
@@ -0,0 +1,6 @@
+% This is ectc2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectc3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectc3583.mf
new file mode 100644
index 00000000000..033ddeecc9a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectc3583.mf
@@ -0,0 +1,6 @@
+% This is ectc3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ectc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti.mf
new file mode 100644
index 00000000000..5d0fe670c7e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti.mf
@@ -0,0 +1,93 @@
+% ecti.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Text Italic
+%
+%
+font_identifier:="ECTI";
+font_size (gensize*pt#);
+basedef ( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 14.8, 15.8, 17, 18.4, 21.6);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3.5, 4.1, 4.6, 5, 5.8);
+gendef [1/36pt#]( letter_fit# )( 9.4, 7.9, 8.5, 9.2, 10.8);
+gendef [1/36pt#]( body_height# )( 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 172.2, 196.8, 221.4, 246, 295.2);
+gendef [1/36pt#]( fig_height# )( 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 108.5, 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 60.9, 69.6, 78.3, 87, 104.4);
+gendef [1/36pt#]( comma_depth# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 7, 8, 8, 8, 8);
+gendef [1/36pt#]( tiny# )( 7, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 6, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 6, 7, 7, 7, 7.5);
+gendef [1/36pt#]( hair# )( 10.5, 11, 11, 11, 12);
+gendef [1/36pt#]( stem# )( 18.5, 20, 22, 23, 26);
+gendef [1/36pt#]( curve# )( 21.5, 23.5, 26, 28, 31);
+gendef [1/36pt#]( ess# )( 21, 23, 25, 27, 29);
+gendef [1/36pt#]( flare# )( 21, 24, 26, 29, 32);
+gendef [1/36pt#]( dot_size# )( 29, 32, 35, 38, 42);
+gendef [1/36pt#]( cap_hair# )( 9, 9.5, 10, 11, 11.5);
+gendef [1/36pt#]( cap_stem# )( 21.5, 23.5, 26, 29, 32);
+gendef [1/36pt#]( cap_curve# )( 24.5, 27, 30, 34, 37);
+gendef [1/36pt#]( cap_ess# )( 21, 24, 27, 31, 34);
+gendef [pt#]( rule_thickness#)( .34, .36, .38, .4, .44);
+gendef [1/36pt#]( dish# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 14, 16, 18, 20, 24);
+gendef [1/36pt#]( jut# )( 21, 24, 27, 30, 35);
+gendef [1/36pt#]( cap_jut# )( 24, 27, 30.5, 34, 38);
+gendef [1/36pt#]( beak_jut# )( 7.4, 7.9, 8.5, 9, 10.4);
+gendef [1/36pt#]( beak# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 7, 8, 8, 8, 8.5);
+gendef [pt#]( notch_cut# )( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( slab# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( cap_bar# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( cap_band# )( 9, 9.5, 10, 11, 12.5);
+gendef [pt#]( cap_notch_cut# )( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 2.8, 3.2, 3.6, 4, 4.8);
+gendef [1/36pt#]( stem_corr# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 5, 6, 7, 8, 9);
+gendef [1/36pt#]( apex_o# )( 5, 6, 7, 8, 9);
+slant:=1/4;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )( .6, .4, .2, 0, [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+classic_serif:=false;
+
+clear_extra_memory;
+
+generate extextit
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0500.mf
new file mode 100644
index 00000000000..342d0a91e09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0500.mf
@@ -0,0 +1,6 @@
+% This is ecti0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0600.mf
new file mode 100644
index 00000000000..f80ad98c9f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0600.mf
@@ -0,0 +1,6 @@
+% This is ecti0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0700.mf
new file mode 100644
index 00000000000..fef0369ffbc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0700.mf
@@ -0,0 +1,6 @@
+% This is ecti0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0800.mf
new file mode 100644
index 00000000000..436130a259f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0800.mf
@@ -0,0 +1,6 @@
+% This is ecti0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0900.mf
new file mode 100644
index 00000000000..bbce5c18107
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti0900.mf
@@ -0,0 +1,6 @@
+% This is ecti0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1000.mf
new file mode 100644
index 00000000000..d45566e30ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1000.mf
@@ -0,0 +1,6 @@
+% This is ecti1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1095.mf
new file mode 100644
index 00000000000..40fa418277c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1095.mf
@@ -0,0 +1,6 @@
+% This is ecti1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1200.mf
new file mode 100644
index 00000000000..b35a64083bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1200.mf
@@ -0,0 +1,6 @@
+% This is ecti1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1440.mf
new file mode 100644
index 00000000000..0da78f18cf1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1440.mf
@@ -0,0 +1,6 @@
+% This is ecti1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1728.mf
new file mode 100644
index 00000000000..a508f097bbb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti1728.mf
@@ -0,0 +1,6 @@
+% This is ecti1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti2074.mf
new file mode 100644
index 00000000000..d8ec64aad76
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti2074.mf
@@ -0,0 +1,6 @@
+% This is ecti2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti2488.mf
new file mode 100644
index 00000000000..9afe6a923c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti2488.mf
@@ -0,0 +1,6 @@
+% This is ecti2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti2986.mf
new file mode 100644
index 00000000000..b4ea82ca04b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti2986.mf
@@ -0,0 +1,6 @@
+% This is ecti2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecti3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecti3583.mf
new file mode 100644
index 00000000000..4432374a064
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecti3583.mf
@@ -0,0 +1,6 @@
+% This is ecti3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt.mf
new file mode 100644
index 00000000000..3287e624421
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt.mf
@@ -0,0 +1,93 @@
+% ectt.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Typewriter Text
+%
+%
+font_identifier:="ECTT";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 40, 45, 50, 60);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+slant:=0;
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+true_mono:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt0800.mf
new file mode 100644
index 00000000000..a36f3e6fa32
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt0800.mf
@@ -0,0 +1,6 @@
+% This is ectt0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt0900.mf
new file mode 100644
index 00000000000..1c272544b88
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt0900.mf
@@ -0,0 +1,6 @@
+% This is ectt0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1000.mf
new file mode 100644
index 00000000000..0ea21bcac83
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1000.mf
@@ -0,0 +1,6 @@
+% This is ectt1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1095.mf
new file mode 100644
index 00000000000..f90465c24c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1095.mf
@@ -0,0 +1,6 @@
+% This is ectt1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1200.mf
new file mode 100644
index 00000000000..cf9859e3e14
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1200.mf
@@ -0,0 +1,6 @@
+% This is ectt1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1440.mf
new file mode 100644
index 00000000000..37b1229d3c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1440.mf
@@ -0,0 +1,6 @@
+% This is ectt1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1728.mf
new file mode 100644
index 00000000000..77ccf1728f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt1728.mf
@@ -0,0 +1,6 @@
+% This is ectt1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt2074.mf
new file mode 100644
index 00000000000..ec4b788df60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt2074.mf
@@ -0,0 +1,6 @@
+% This is ectt2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt2488.mf
new file mode 100644
index 00000000000..10a5073d770
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt2488.mf
@@ -0,0 +1,6 @@
+% This is ectt2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt2986.mf
new file mode 100644
index 00000000000..ab9e78c95dc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt2986.mf
@@ -0,0 +1,6 @@
+% This is ectt2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ectt3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ectt3583.mf
new file mode 100644
index 00000000000..e63f370d90d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ectt3583.mf
@@ -0,0 +1,6 @@
+% This is ectt3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ectt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui.mf
new file mode 100644
index 00000000000..b5169799533
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui.mf
@@ -0,0 +1,90 @@
+% ecui.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Unslanted Italic
+%
+%
+font_identifier:="ECUI";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 10, 10, 10, 10, 10, 10, 10, 10);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 41);
+gendef [1/36pt#]( ess# )( 7, 12, 16, 18, 20, 22, 25, 30);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 40);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 48);
+gendef [1/36pt#]( cap_ess# )( 11, 16, 20, 24, 28, 32, 35, 40);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.4]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate extextit
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0500.mf
new file mode 100644
index 00000000000..71e62686bd2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0500.mf
@@ -0,0 +1,6 @@
+% This is ecui0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0600.mf
new file mode 100644
index 00000000000..a90b1287028
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0600.mf
@@ -0,0 +1,6 @@
+% This is ecui0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0700.mf
new file mode 100644
index 00000000000..6f362169be8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0700.mf
@@ -0,0 +1,6 @@
+% This is ecui0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0800.mf
new file mode 100644
index 00000000000..dfd58d63360
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0800.mf
@@ -0,0 +1,6 @@
+% This is ecui0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0900.mf
new file mode 100644
index 00000000000..2bcc0be326e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui0900.mf
@@ -0,0 +1,6 @@
+% This is ecui0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1000.mf
new file mode 100644
index 00000000000..b3619b90efe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1000.mf
@@ -0,0 +1,6 @@
+% This is ecui1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1095.mf
new file mode 100644
index 00000000000..965c804ed0b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1095.mf
@@ -0,0 +1,6 @@
+% This is ecui1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1200.mf
new file mode 100644
index 00000000000..41eafc43bc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1200.mf
@@ -0,0 +1,6 @@
+% This is ecui1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1440.mf
new file mode 100644
index 00000000000..9cf2b5b9a97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1440.mf
@@ -0,0 +1,6 @@
+% This is ecui1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1728.mf
new file mode 100644
index 00000000000..fc99e9b48f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui1728.mf
@@ -0,0 +1,6 @@
+% This is ecui1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui2074.mf
new file mode 100644
index 00000000000..40acb5a5e41
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui2074.mf
@@ -0,0 +1,6 @@
+% This is ecui2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui2488.mf
new file mode 100644
index 00000000000..a8f9474e5eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui2488.mf
@@ -0,0 +1,6 @@
+% This is ecui2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui2986.mf
new file mode 100644
index 00000000000..5e327de25fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui2986.mf
@@ -0,0 +1,6 @@
+% This is ecui2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecui3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecui3583.mf
new file mode 100644
index 00000000000..19c7031a6c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecui3583.mf
@@ -0,0 +1,6 @@
+% This is ecui3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi.mf
new file mode 100644
index 00000000000..7b78d254841
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi.mf
@@ -0,0 +1,89 @@
+% ecvi.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Variable Width Italic Typewriter Text
+%
+%
+font_identifier:="ECVTTI";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 15, 15, 15, 15);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 34, 42, 50, 66);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 33, 37, 40, 45);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+slant:=1/4;
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=true;
+math_fitting:=false;
+clear_extra_memory;
+generate extextit
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi0800.mf
new file mode 100644
index 00000000000..360da884a93
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi0800.mf
@@ -0,0 +1,6 @@
+% This is ecvi0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi0900.mf
new file mode 100644
index 00000000000..deb372e3e85
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi0900.mf
@@ -0,0 +1,6 @@
+% This is ecvi0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1000.mf
new file mode 100644
index 00000000000..f9bf6a90a1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1000.mf
@@ -0,0 +1,6 @@
+% This is ecvi1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1095.mf
new file mode 100644
index 00000000000..8f49f12db03
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1095.mf
@@ -0,0 +1,6 @@
+% This is ecvi1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1200.mf
new file mode 100644
index 00000000000..9a53abee7fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1200.mf
@@ -0,0 +1,6 @@
+% This is ecvi1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1440.mf
new file mode 100644
index 00000000000..2460e33bfca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1440.mf
@@ -0,0 +1,6 @@
+% This is ecvi1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1728.mf
new file mode 100644
index 00000000000..c4ab32b4584
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi1728.mf
@@ -0,0 +1,6 @@
+% This is ecvi1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi2074.mf
new file mode 100644
index 00000000000..8207a95413d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi2074.mf
@@ -0,0 +1,6 @@
+% This is ecvi2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi2488.mf
new file mode 100644
index 00000000000..d2141b9c28e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi2488.mf
@@ -0,0 +1,6 @@
+% This is ecvi2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi2986.mf
new file mode 100644
index 00000000000..13aaef1f714
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi2986.mf
@@ -0,0 +1,6 @@
+% This is ecvi2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvi3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi3583.mf
new file mode 100644
index 00000000000..cb768689fff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvi3583.mf
@@ -0,0 +1,6 @@
+% This is ecvi3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt.mf
new file mode 100644
index 00000000000..f51f5cc6e0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt.mf
@@ -0,0 +1,90 @@
+% ecvt.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Variable-Width Typewriter Text
+%
+%
+font_identifier:="ECVTT";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 40, 45, 50, 60);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+slant:=0;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+clear_extra_memory;
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt0800.mf
new file mode 100644
index 00000000000..1a8da77efc3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt0800.mf
@@ -0,0 +1,6 @@
+% This is ecvt0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt0900.mf
new file mode 100644
index 00000000000..22a02a32643
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt0900.mf
@@ -0,0 +1,6 @@
+% This is ecvt0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1000.mf
new file mode 100644
index 00000000000..b1182bd53e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1000.mf
@@ -0,0 +1,6 @@
+% This is ecvt1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1095.mf
new file mode 100644
index 00000000000..d9fe181e7ba
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1095.mf
@@ -0,0 +1,6 @@
+% This is ecvt1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1200.mf
new file mode 100644
index 00000000000..024575ba9e4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1200.mf
@@ -0,0 +1,6 @@
+% This is ecvt1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1440.mf
new file mode 100644
index 00000000000..f84eb171beb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1440.mf
@@ -0,0 +1,6 @@
+% This is ecvt1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1728.mf
new file mode 100644
index 00000000000..dda524fe723
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt1728.mf
@@ -0,0 +1,6 @@
+% This is ecvt1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt2074.mf
new file mode 100644
index 00000000000..59c6d4bcfd9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt2074.mf
@@ -0,0 +1,6 @@
+% This is ecvt2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt2488.mf
new file mode 100644
index 00000000000..c16ee07259a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt2488.mf
@@ -0,0 +1,6 @@
+% This is ecvt2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt2986.mf
new file mode 100644
index 00000000000..642dae14f26
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt2986.mf
@@ -0,0 +1,6 @@
+% This is ecvt2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecvt3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt3583.mf
new file mode 100644
index 00000000000..1969ce1be08
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecvt3583.mf
@@ -0,0 +1,6 @@
+% This is ecvt3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc.mf
new file mode 100644
index 00000000000..61fcee1198f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc.mf
@@ -0,0 +1,127 @@
+% ecxc.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% The parameters in this file were originally contributed by
+% Lars Engebretsen <enge@nada.kth.se> and Caj E. Svenson
+% <atocasv@ato.abb.se>.
+%
+% The two contributions were merged and retuned, if necessary.
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Bold Extended Caps and Small Caps
+%
+%
+font_identifier:="ECBXCSC";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 15, 16.5, 18.5, 20, 22, 24, 28);
+gendef [1/36pt#]( width_adj# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 13);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.6, 5.4, 6.2, 7, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 5, 5, 5, 5, 5, 5);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 123.5, 148.2, 172.9, 197.6, 222.3, 247, 296.4);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 80, 96, 112, 128, 144, 160, 192);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 40, 49, 58, 67, 76, 85, 102);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 11, 12, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 8, 9, 9, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 8, 9, 9, 10, 10, 10, 10.5);
+gendef [1/36pt#]( hair# )( 15, 15.4, 15.8, 16.2, 16.6, 17, 18.3);
+gendef [1/36pt#]( stem# )( 24, 28, 32, 35, 38, 41, 47);
+gendef [1/36pt#]( curve# )( 27, 31, 35, 39, 43, 46, 52);
+gendef [1/36pt#]( ess# )( 19, 25, 29, 32, 35, 38, 44);
+gendef [1/36pt#]( flare# )( 27, 31, 35, 39, 42, 45, 51);
+gendef [1/36pt#]( dot_size# )( 31, 36, 41, 46, 51, 56, 62);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 18, 19, 19, 19, 20);
+gendef [1/36pt#]( cap_stem# )( 28, 33, 38, 43, 47, 51, 57);
+gendef [1/36pt#]( cap_curve# )( 31, 36, 41, 46, 51, 55, 61);
+gendef [1/36pt#]( cap_ess# )( 24, 31, 37, 43, 48, 53, 59);
+gendef [pt#]( rule_thickness#)( .43, .47, .51, .54, .57, .60, .66);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( jut# )( 13, 15, 17, 19, 22, 25, 30);
+gendef [1/36pt#]( cap_jut# )( 19, 23, 27, 31, 35, 39, 46);
+gendef [1/36pt#]( beak_jut# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 12.4);
+gendef [1/36pt#]( beak# )( 25, 36, 46, 55, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 10, 11, 11.5, 12, 12.5, 13, 14.3);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( slab# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_band# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 1.5, 1.8, 2.1, 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( stem_corr# )( 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 5, 2, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3, 3, 4, 4, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 3, 3, 3, 4);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, 1.3, 1.1, .9, .7, .5, .5);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+gendef [1/36pt#]( lower.u# )( 11, 12, 14, 15.7, 17, 18.3, 21.3);
+gendef [1/36pt#]( lower.width_adj# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 13);
+gendef [1/36pt#]( lower.cap_serif_fit# )( 2, 2.8, 3.6, 4.4, 5.2, 6, 7);
+gendef [1/36pt#]( lower.letter_fit# )( 1.44, 1.44, 1.44, 1.44, 1.44, 1.44, 1.44);
+gendef [1/36pt#]( lower.body_height# )( 65, 92, 119, 146, 173, 200, 254);
+gendef [1/36pt#]( lower.cap_height# )( 96, 106, 122, 136, 161, 186, 226);
+gendef [1/36pt#]( lower.x_height# )( 39.7, 55.7, 71.7, 87.7, 103.7, 119.7, 151.7);
+gendef [1/36pt#]( lower.bar_height# )( 19.8, 28.4, 37, 45.8, 54.6, 63.5, 80.5);
+gendef [1/36pt#]( lower.comma_depth# )( 17, 24, 31, 38, 45, 52, 64);
+gendef [1/36pt#]( lower.flare# )( 17.7, 21.8, 25.8, 29.5, 31.8, 34.1, 38.6);
+gendef [1/36pt#]( lower.dot_size# )( 21, 26, 31, 36, 41, 46, 52);
+gendef [1/36pt#]( lower.cap_hair# )( 11, 12, 13, 14, 15, 15.7, 16.5);
+gendef [1/36pt#]( lower.stem# )( 20, 23, 26, 29.4, 31.9, 34.4, 39.5);
+gendef [1/36pt#]( lower.cap_stem# )( 21, 25, 29, 34, 38.2, 41.4, 46.3);
+gendef [1/36pt#]( lower.cap_curve# )( 24, 28, 33, 38, 42.7, 46.1, 51.1);
+gendef [1/36pt#]( lower.cap_ess# )( 15, 22, 29, 34, 38.4, 42.4, 47.2);
+gendef [1/36pt#]( lower.cap_jut# )( 9, 11, 14, 18, 24, 27.4, 32.3);
+gendef [1/36pt#]( lower.beak_jut# )( 4, 5, 6, 6.5, 7.1, 7.7, 8.68);
+gendef [1/36pt#]( lower.beak# )( 17, 24, 31, 39, 46, 52, 62.4);
+gendef [1/36pt#]( lower.slab# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [1/36pt#]( lower.cap_bar# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [1/36pt#]( lower.cap_band# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [pt#]( lower.cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( lower.o# )( 1.875, 1.875, 1.875, 2.5, 2.5, 2.5, 3.125);
+gendef [1/36pt#]( lower.cap_bar# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [1/36pt#]( lower.cap_band# )( 9.9, 10.8, 11.6, 12.4, 13.2, 14.1, 15.3);
+gendef [pt#]( lower.cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( lower.o# )( 1.875, 1.875, 1.875, 2.5, 2.5, 2.5, 3.125);
+gendef [1/36pt#]( lower.apex_o# )( 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 2);
+gendef ( lower.fudge )( 1, 1, 1, 1, 1, 1, 1);
+
+clear_extra_memory;
+
+generate excsc
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0500.mf
new file mode 100644
index 00000000000..6cf250f0554
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0500.mf
@@ -0,0 +1,6 @@
+% This is ecxc0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0600.mf
new file mode 100644
index 00000000000..8453262ca1c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0600.mf
@@ -0,0 +1,6 @@
+% This is ecxc0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0700.mf
new file mode 100644
index 00000000000..aca1179edd7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0700.mf
@@ -0,0 +1,6 @@
+% This is ecxc0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0800.mf
new file mode 100644
index 00000000000..3cb938341d7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0800.mf
@@ -0,0 +1,6 @@
+% This is ecxc0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0900.mf
new file mode 100644
index 00000000000..4bb87325d03
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc0900.mf
@@ -0,0 +1,6 @@
+% This is ecxc0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1000.mf
new file mode 100644
index 00000000000..8d687cac7ba
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1000.mf
@@ -0,0 +1,6 @@
+% This is ecxc1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1095.mf
new file mode 100644
index 00000000000..0b455ea15dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1095.mf
@@ -0,0 +1,6 @@
+% This is ecxc1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1200.mf
new file mode 100644
index 00000000000..f7cbf531445
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1200.mf
@@ -0,0 +1,6 @@
+% This is ecxc1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1440.mf
new file mode 100644
index 00000000000..0c12a31a073
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1440.mf
@@ -0,0 +1,6 @@
+% This is ecxc1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1728.mf
new file mode 100644
index 00000000000..3886fb09403
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc1728.mf
@@ -0,0 +1,6 @@
+% This is ecxc1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc2074.mf
new file mode 100644
index 00000000000..18a5518b7b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc2074.mf
@@ -0,0 +1,6 @@
+% This is ecxc2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc2488.mf
new file mode 100644
index 00000000000..125a39283c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc2488.mf
@@ -0,0 +1,6 @@
+% This is ecxc2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc2986.mf
new file mode 100644
index 00000000000..e563e1d0bd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc2986.mf
@@ -0,0 +1,6 @@
+% This is ecxc2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ecxc3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc3583.mf
new file mode 100644
index 00000000000..1484484be5b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ecxc3583.mf
@@ -0,0 +1,6 @@
+% This is ecxc3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate ecxc
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exaccent.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exaccent.mf
new file mode 100644
index 00000000000..cb4e819834b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exaccent.mf
@@ -0,0 +1,132 @@
+% exaccent.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Accents (for lowercase letters)
+%
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar"Grave accent";
+beginchar_twice(oct"0",9u#,x_height#,0); % |put_gravis| changes the height
+adjust_fit(0,0);
+put_gravis;
+repeat_once;
+endchar;
+
+ecchar"Acute accent"; % using acute from plfonts
+beginchar_twice(oct"1",9u#,x_height#,0); % |put_accent| changes the height
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+put_accent;
+repeat_once;
+endchar;
+
+ecchar"Circumflex (hat) accent";
+beginchar(oct"002",9u#,x_height#+acc_height#,0);
+lowercase_hat(.5w,oo,1,2,3,4,5);
+penlabels(0,1,2,3,4); endchar;
+
+ecchar"Tilde (squiggle) accent";
+beginchar(oct"003",9u#,x_height#+acc_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+lowercase_tilde(0,0 if variant_g: -1/6acc_height fi,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+ecchar"Umlaut (double dot) accent";
+beginchar(oct"004",9u#,lc_trema_height#,0);
+%udot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5udot_diam#-2.25u#;
+adjust_fit(0,0);
+lowercase_umlaut(0,0,1,2,3,4);penlabels(1,2,3,4); endchar;
+
+ecchar"Double acute accent (Long Hungarian umlaut accent)";
+beginchar_twice(oct"005",9u#,x_height#+acc_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+endchar;
+
+ecchar"Scandinavian circle accent";
+beginchar(oct"006",13u#+4/3acc_height#*slant,x_height#+acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+lowercase_circle(.5w,vround(1/3[x_height,h]+apex_o),1,2,3,4);
+penlabels(1,2,3,4); endchar;
+
+ecchar"Hachek (check) accent";
+beginchar(oct"007",9u#,x_height#+acc_height#,0);
+lc_hachek_accent(.5w);
+endchar;
+
+ecchar"Breve accent";
+beginchar(oct"10",9u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+lowercase_breve(.5w,0,1,2,3);
+penlabels(1,2,3); endchar;
+
+ecchar"Macron (bar) accent";
+beginchar(oct"011",9u#,lc_trema_height#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar"Dot accent";
+beginchar_twice(oct"012",5u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5idot_diam#-2u#;
+adjust_fit(0,0);
+put_dot(tiny,max(dot_size#,cap_curve#));
+repeat_once;
+penlabels(1,2); endchar;
+
+ecchar"Cedilla accent";
+beginchar(oct"013",8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+lowercase_cedilla(.5w,0,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+ecchar"Ogonek";
+beginchar(oct"014",5u#,0,desc_depth#);
+italcorr 0;
+adjust_fit(0,0);
+ogon_one := 1;
+ogon_two := 2;
+ogon_three := 3;
+if serifs:
+ x[ogon_one]r=0.7w;
+ %+outer_jut;
+else:
+ x[ogon_one]r=0.6w;
+fi
+ pickup crisp.nib;
+ pos[ogon_one](
+ if 0.9vair>currentbreadth: 0.9vair else: currentbreadth+eps fi,-60);
+ pos[ogon_two](stem,0);
+ pos[ogon_three](vair,145);
+ x[ogon_two]=x[ogon_one]-2.5u if monospace: /expansion_factor fi ;
+ x[ogon_three]=x[ogon_one]+0.5u if monospace: /expansion_factor fi;
+ bot y[ogon_one]r = 0;
+ bot y[ogon_three]=0.5(-d-o); %0.4
+ bot y[ogon_two]=0.5(-d-o);
+ filldraw stroke z[ogon_one]e{dir 225}...
+ z[ogon_two]e{dir -110}...{dir 60}z[ogon_three]e; % hook
+penlabels(1,2,3); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exaccess.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exaccess.mf
new file mode 100644
index 00000000000..9618ad0ae4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exaccess.mf
@@ -0,0 +1,891 @@
+% exaccess.mf
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Accessories and special definitions for polish letters
+% Adapted to the ec fonts by J\"org Knappen
+%
+% Copyright (c) 1992 Bogus\l{}aw Jackowski \& Marek Ry\'cko
+% Copyright (c) 1995, 1996, 1997 J\"org Knappen
+% ---------------------------------------------------------------------------
+% This was PL_DOD.MF ({\bif{}dodatkowy}, i.e., additional file for the Polish
+% extension of CM family) in text format.
+% ---------------------------------------------------------------------------
+%%{\let\:\sl
+%\: This file provides accessories for making Polish diacritical characters:
+%\: acute accent for |"C"|, |"N"|, |"L"|, |"S"|, |"Z"|, dot accent for |"Z"|,
+%\: cross for |"L"| and ogonek for |"A"| and |"E"|. In order to avoid extra
+%\: parameters (62 should be enough) the macros do a lot of ``clever'' stuff,
+%\: trying to figure out needed dimensions. This is not always a trivial
+%\: task and in some cases such extra parameters may prove to be unavoidable.
+%\: Several additional parameters may be assigned a value, prior to reading
+%\: the driver file, in order to override the default behaviour.
+
+%\: One of them is
+%\: --- the factor controlling the slope of accents over majuscules,
+%\: |cap_flat|; if the default slope is, say, $\beta$, the resulting
+%\: slope is equal to |(1-cap_flat)*|$\beta$; this parameter is used
+%\: in the sources of the following fonts:
+%\ PLCSC10, PLDUNH10, PLTCSC10
+
+%\: Unexpectedly difficult to program turned out to be ogoneks. We decided
+%\: that the best looking are ogoneks such that a single B\`ezier segment
+%\: describes each of ogonek's edges. This necessitated introducing many
+%\: parameters controlling the positions of control points (for more details
+%\: see comments in the section ``OGONEK ACCESSORIES''). All these
+%\: (optional) parameters may be splitted into three groups of importance:
+%\: primary, secondary and tertiary. The primary parameters are intended
+%\: to be ``normally'' accessible to users, the secondary ones---only in
+%\: case of emergency, the tertiary ones---rather not at all.
+
+%\: The primary parameters are:
+
+%\: --- the factor controlling the depth of ogoneks, |depth_corr|; the
+%\: resulting depth is equal to |depth_corr*desc_depth#| if the value
+%\: of |depth_corr| is known, |desc_depth#| otherwise
+%\: --- the factor controlling the leftmost and tip positions
+%\: of an ogonek, |left_corr|, |tip_xcorr| and |tip_ycorr|;
+%\: the default distances are scaled using the values of the
+%\: corresponding parameters
+%\: --- the scaling factor for the top and tip breadths of an ogonek,
+%\: |top_breadth_corr|, |tip_breadth_corr|
+
+%\: Some of the primary parameters are used in the sources of the following
+%\: fonts:
+% PLB10, PLBX5, PLBX6, PLBX7, PLBX8, PLFI10, PLITT10, PLR5, PLR6, PLR7,
+% PLR8, PLR9, PLR12, PLR17, PLSL8, PLSL9, PLSL12, PLSSQ8, PLSSQI8, PLTI7,
+% PLTI8, PLTI12, PLVTT10
+
+%\: The following four parameters we regard as of a secondary importance:
+
+%\: --- the pen ogoneks are to be filled with, |ogonek_pen#| (this is
+%\: the only sharp ogonek parameter and is used in the sources of
+%\: the {\commfont{}PLFF10} and {\commfont{}PLFI10} fonts)
+%\: --- the darkness of ogoneks may be controlled using two parameters,
+%\: |0<pre_lightness<1| and |0<post_lightness<1|, referring to the top
+%\: and tip of an ogonek, respectively; used in {\commfont{}PLB10.MF}
+%\: --- next two parameters, |pre_deflexion| and |post_deflexion|, control
+%\: a rather small deflexion angle (in degrees) of the inner ogonek
+%\: outline as compared to the outer one; they refere to the top and
+%\: tip of an ogonek, respectively
+
+%\: The complete list of `ogonek' parameters can be found in the section
+%\: ``OGONEK ACCESSORIES.''
+
+%\: There is one more (rather unimportant) parameter, |is_smoke|. If this
+%\: variable is assigned a known value, `smoked' proofs will not contain
+%\: a rule marking the height of accented letters.
+%%}
+% ---------------------------------------------------------------------------
+% HISTORY
+% 7 Feb 1992: version 1.00
+% 11 Feb 1992: version 1.01
+% (no changes; the new version number due to changes in \MeX{} format)
+% 25 May 1992: version 1.02
+% The following two erroneous assignments:
+%| z_a:=(x_down+the_left_pos,.5penkind); %| starting point
+%| z_d:=(xpart(z_a)-.5penkind,y_right+.5penkind)+the_tip_pos; %| ending point
+% changed to the following ones:
+%| z_a:=(x_down+the_left_pos,ypart(ogonek_pos)); %| starting point
+%| z_d:=(xpart(z_a)-.5penkind,y_right+ypart(ogonek_pos))+|
+%| the_tip_pos; %| ending point
+% Some comments changed.
+% 18 Dec 1992: version 1.03
+% (no changes; the new version number due to changes in FIK_MIK.MF
+% and some cosmetic changes in CMBX11.MF, CMR11.MF, CMTI11.MF, CMSL11.MF,
+% CMSSBI10.MF, and POLAN.MF)
+% 21 Apr 1995: Adaption for dxbase and dcfonts:
+% Deleted character code (those are fixed by the Cork standard)
+% Deleted |improve_kerns|
+% Avoid double rounding in the definition of |fisp| by defining |fisp#|
+% Made |the_ogonek_depth| explicitly sharp (|the_ogonek_depth#|)
+% Changed definition of |is_cap|
+% Replaced all occurences of |ogonked_a| and |ogonked_e| with the
+% Cork code values |oct"241"| and |oct"246"| respectively
+% Replaced |dotted_Z| and |dotted_z| with |oct"233"| and |oct"273"|
+% respectively
+% Renamed |expansion_factor| to |expansion_faktor| because of
+% conflicting definition
+% 7 May 1995 Appended material from czechoslovak fonts (csaccent.mf)
+% 18 May 1995 Changed |put_accent| because I want to use it twice in
+% one character. To achieve this, the variables |z.top| and |z.right|
+% were renamed |z[jj].top| and |z[jj].right| respectively
+% Changed |is_cap| again (included |168| for l with acute)
+% 29 May 1995 Added accessories for the grave accent
+% Changes one comment to point to dxcsc.mf instead of polkap.mf
+% 18 Jun 1995 Made provision in |put_cross| for the blank symbol
+% Made provision in |put_dot| for turkish dotted `I'
+% 10 Jul 1995 Changed condition in |put_dot| to refer to |is_cap|. Needed
+% with the tc fonts.
+% 11 Jul 1995 Added another proviso to |put_dot| to produce floating dot
+% 23 Jul 1995 Added proviso in |put_cross| for recipe sign
+% 17 Aug 1995 Tuned height of accent again, added |hi.x_height@#+acc_height@#|
+% to the minimum condition
+% 14 Apr 1996 Buildt in Bogus\l{}aw Jackowski's fixes to avoid resolution
+% dependent font metrics.
+% I did not apply the change to the |put_dot| macro, because there is
+% no chance to keep it consistent for the floating dot accent
+% Macros for processing characters twice put to |exbase.mf|
+% 26 Apr 1996 Put in version checking
+% Moved last minute font setup to |expseudo.mf|
+% 10-MAY-1996 Corrected |corrital| to make use of the canonical sharp mode
+% Added |version_check|
+% 22-DEC-1996 Moved definition of |is_small_cap| and |hi.| to |exbase.mf|
+% Changed the documentation to know about ec fonts instead of dc fonts.
+% ---------------------------------------------------------------------------
+% VERSION CHECKING
+% ---------------------------------------------------------------------------
+version_check(1,0); % |version_check| was introduced in dc1.3
+% ---------------------------------------------------------------------------
+% LAYOUT SETUP:
+% (A MIXTURE OF EXTENDED CM, EXTENDED ASCII, AND ``LOCAL'')
+% ---------------------------------------------------------------------------
+% [deleted]
+% ---------------------------------------------------------------------------
+% EXTRA PARAMETERS
+% ---------------------------------------------------------------------------
+% [deleted and/or moved]
+%
+% The variable |limit_dist| is set to |5/4u| in PL_DL.MF, PL_ML.MF and
+% PL_MLK.MF, and used in |put_accent| and |put_cross|. It was introduced
+% because of some funny (although troublesome) fonts. The value of |u| is
+% changed by |mono_adjust|, hence it is set outside |beginchar| ... |endchar|
+% rather than inside.
+numeric limit_dist;
+% ---------------------------------------------------------------------------
+% GENERAL PURPOSE ACCESSORIES
+% ---------------------------------------------------------------------------
+vardef is_egyptian =
+% |false| for most of the CM fonts, except funny fonts;
+% |true| for the CC fonts
+ serifs and (1.4max(fine#,crisp#, tiny#)<slab#) and (1.6slab#>stem#)
+enddef;
+
+vardef is_bold = if serifs: (hair#+.5stem#)>1.5u# else: stem#>2u# fi\\ enddef;
+
+vardef is_cap =
+ (((127 < charcode) and (charcode < 158)) or\\
+ ((191 < charcode) and (charcode < 224))) or\\
+ (charcode = 168) % true for l with acute
+enddef;
+
+%%% top is_known
+%%% top fix_virgin
+vardef is_known z suffix $ =
+% an auxiliary macro for |fix_virgin z|, used also while constructing ogoneks
+ (known x$) or (known x$l) or (known x$r)\\ or
+ (known y$) or (known y$l) or (known y$r)
+enddef;
+
+vardef fix_virgin z = % find a pair of virgin pairs
+ numeric ii,jj; jj:=1;
+ forever:
+ if is_known z[jj] or is_known z[jj+1]: % unknown gaps may occur
+ jj:=incr jj else: jj=ii fi; exitif known ii;
+ endfor;
+ jj:=ii+1;
+% now |ii| and |jj| are such that |z[ii]| and |z[jj]| are ``untouched''
+enddef;
+
+%%% italcorr corrital
+% correction of italic correction (cf. D. E. Knuth, The \MF{}book, p. 105):
+vardef corrital z suffix $ =
+% |z$| is the rightmost position of a pen (in accent path)
+ if known sharp_calc:
+ if not monospace:
+ save charic_; charic_=(rt(x$)-r)/hppp+slant*y$/vppp+.5u#;
+ if charic_>charic: charic:=charic_; fi
+ fi
+%| else: %| |charic=mono_charic#|, do nothing
+ fi
+enddef;
+
+%%% top prepare_pen
+def prepare_pen suffix $ =
+%%% fine $ %%%% temporary MFT convention
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor
+%%% qq $ %%%% ordinary MFT convention
+enddef;
+
+% The proportion of |vair/stem| depends drastically on resolution;
+% e.g., for 300 dpi cmbx10 |vair=1| and |stem=5|, for 746 dpi cmbx10
+% (300 dpi, magstep 5) |vair=4| and |stem=12|, while, sharply speaking,
+% |stem#/vair#=3.15381|; hence a new variable |xvair| has been introduced
+% to be used in some crucial places instead of |vair|.
+vardef xvair = stem*vair#/stem# enddef;
+% ---------------------------------------------------------------------------
+% ACCENT ACCESSORIES
+% ---------------------------------------------------------------------------
+% |the_cap_flat| is a factor controlling the flatness of accents over
+% majuscules; a default value may be overriden by assigning a value to the
+% variable |cap_flat| (cf. also |the_|... macros in ogonek accessories).
+vardef the_cap_flat =
+ if known cap_flat: cap_flat elseif serifs and hefty: 1/5 else: 1/3 fi
+enddef;
+% ---------------------------------------------------------------------------
+% The |hpos_corr| variable is an optional parameter to |put_ogonek|, meant
+% to be set locally inside |beginchar| ... |endchar|, if a horizontal
+% correction of the accent position is needed:
+numeric hpos_corr;
+% ---------------------------------------------------------------------------
+%%%% temporary MFT convention:
+%%% top x_height diam a_wd a_ht i_ht u asc_height cap_A_wd
+% width of the acute accent:
+vardef a_wd@# = 9hi.u@# enddef;
+% height of the acute accent:
+vardef a_ht@# =
+ min(asc_height@#,2hi.x_height@#,hi.x_height@#+acc_height@#) enddef;
+% height of the letter `i':
+vardef i_ht@#(suffix diam) =
+ if is_small_cap: a_ht@# % usually there is no dot over a small cap `i'
+ else: min(asc_height@#, 10/7hi.x_height@#+.5diam@#) fi
+enddef;
+% width of the letter `A' (used in |put_ogonek|):
+vardef cap_A_wd@# = 13u@# enddef;
+%%%% ordinary MFT convention:
+%%% qq x_height diam a_wd a_ht i_ht u asc_height cap_A_wd
+
+def mark_height(expr sharp_h)=
+% |sharp_h| is the height of an accented minuscule
+ if known sharp_calc:
+ charht:=if is_cap: h/vppp else: sharp_h fi;
+ if\\ (proofing>0) and is_cap:
+% BJ likes to have proofs vertically aligned (somehow):
+ proofoffset(0,h-charht*vppp-1mm);
+ fi
+ fi
+% say earlier, e.g., |is_smoke=1| if you're making `smoked' proofs
+% and you don't like to have a rule marking the height
+ if unknown is_smoke:
+ if proofing>0: proofrule((l+w/2,charht*hppp)t_,(r+u,charht*hppp)t_); fi
+ if displaying>0: screenrule((l+w/2,charht*hppp)t_,(r+u,charht*hppp)t_); fi
+ fi
+enddef;
+
+def fix_acc_pairs =
+ fix_virgin z;
+ begingroup
+% excerpt from |beginchar|:
+ save w,h; w=round(a_wd); h=round(a_ht);
+% excerpt from |mono_adjust|:
+ if monospace:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_faktor;
+ mono_charwd#=2 hi.letter_fit#+expansion_faktor*a_wd#;
+ hi.u:=u#*expansion_faktor*hppp;
+ w:=mono_charwd-shrink_fit-2 hi.letter_fit;
+ fi
+% end of the excerpts
+ numeric accent_gap,mid_stem; mid_stem=2/3[stem,hi.stem];
+ if serifs:
+ pickup crisp.nib;
+ x[jj]'=hround(w-2hi.u)-.5mid_stem; x[jj]':=x[jj]'-2/3[x[jj]',w-x[jj]'];
+ y[jj]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[jj]'+.5mid_stem)-hi.x_height;
+ bot z[ii]=round(accent_hpos,
+ accent_gap+if is_cap: cap_height else: hi.x_height fi);
+ z[jj]=z[ii]+(z[jj]'
+ if is_cap: rotated (-the_cap_flat*angle(z[jj]')) fi);
+ numeric theta; theta=angle(z[ii]-z[jj])+90;
+ pos[jj](mid_stem,theta); pos[ii](hair,theta);
+ else:
+ pickup fine.nib;
+ rt x[jj]'r=hround(.5w-1.25hi.u);
+ top y[jj]'=h-vround(2/3[h,hi.x_height]);
+ z[ii]'=origin; pos[jj]'(mid_stem,0); pos[ii]'(vair,0);
+ accent_gap=a_ht-y[jj]'-hi.x_height;
+ if is_cap:
+ numeric beta; beta=-the_cap_flat*angle(z[jj]'-z[ii]');
+ z[ii]=round(accent_hpos,accent_gap+cap_height);
+ z[jj]=z[ii]+(z[jj]' rotated beta);
+ y[jj]r=y[jj]l=y[jj]; y[ii]r=y[ii]l=y[ii];
+ for xx:=jj,ii: forsuffixes $:=l,r:
+ (z[xx]$-z[ii]) rotated -beta=whatever[z[jj]'$,z[ii]'$];
+ endfor\\ endfor
+ else:
+ for xx:=jj,ii: forsuffixes $:=r, ,l:
+ z[xx]$=z[xx]'$+round(accent_hpos,
+ accent_gap+if is_small_cap: cap_height else: x_height fi);
+ endfor\\ endfor
+ fi
+ fi
+ endgroup;
+enddef;
+
+def put_accent=
+ numeric accent_hpos;
+ accent_hpos=.5w - if is_cap: .75 else: .5 fi\\ u
+ if known hpos_corr: +hpos_corr fi;
+ fix_acc_pairs; % |fix_acc_pairs| uses private values of |w|, |h| \& |u|
+ numeric hpos_corr; % |hpos_corr| is local: forget its value
+% draw the diagonal:
+ if serifs:
+ pickup crisp.nib; filldraw circ_stroke (z[jj]e--z[ii]e);
+ z[jj].right=directionpoint up of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ z[jj].top=directionpoint left of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ else:
+ pickup fine.nib; filldraw stroke (z[jj]e--z[ii]e);
+ z[jj].right=z[jj].top=z[jj]r;
+ fi
+ corrital z[jj].right; % correct italic correction
+% adjust and save height (it is used in the program for the dotted `Z'):
+ h:=if is_cap: y[jj].top else: a_ht fi;
+ if known sharp_calc: saved_height:=h; fi
+ mark_height(a_ht#);
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% GRAVE ACCENT ACCESSORIES
+% ---------------------------------------------------------------------------
+% This section borrows heavily from the (acute) accent accessories
+def fix_grav_pairs =
+ fix_virgin z;
+ begingroup
+% excerpt from |beginchar|:
+ save w,h; w=round(a_wd); h=round(a_ht);
+% excerpt from |mono_adjust|:
+ if monospace:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_faktor;
+ mono_charwd#=2 hi.letter_fit#+expansion_faktor*a_wd#;
+ hi.u:=u#*expansion_faktor*hppp;
+ w:=mono_charwd-shrink_fit-2 hi.letter_fit;
+ fi
+% end of the excerpts
+ numeric accent_gap,mid_stem; mid_stem=2/3[stem,hi.stem];
+ if serifs:
+ pickup crisp.nib;
+ x[jj]'=hround(w-2hi.u)-.5mid_stem; x[jj]':= -x[jj]'+ 2/3[x[jj]',w-x[jj]'];
+ y[jj]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[jj]'+.5mid_stem)-hi.x_height;
+ bot z[ii]=round(accent_hpos,
+ accent_gap+if is_cap: cap_height else: hi.x_height fi);
+ z[jj]=z[ii]+(z[jj]'
+ if is_cap: rotated (-the_cap_flat*(angle(z[jj]')-180)) fi);
+ numeric theta; theta=angle(z[ii]-z[jj])+90;
+ pos[jj](mid_stem,theta); pos[ii](hair,theta);
+ else:
+ pickup fine.nib;
+ lft x[jj]'l=-hround(.5w-1.25hi.u);
+ top y[jj]'=h-vround(2/3[h,hi.x_height]);
+ z[ii]'=origin; pos[jj]'(mid_stem,0); pos[ii]'(vair,0);
+ accent_gap=a_ht-y[jj]'-hi.x_height;
+ if is_cap:
+ numeric beta; beta=-the_cap_flat*(angle(z[jj]'-z[ii]')-180);
+ z[ii]=round(accent_hpos,accent_gap+cap_height);
+ z[jj]=z[ii]+(z[jj]' rotated beta);
+ y[jj]r=y[jj]l=y[jj]; y[ii]r=y[ii]l=y[ii];
+ for xx:=jj,ii: forsuffixes $:=l,r:
+ (z[xx]$-z[ii]) rotated -beta=whatever[z[jj]'$,z[ii]'$];
+ endfor\\ endfor
+ else:
+ for xx:=jj,ii: forsuffixes $:=r, ,l:
+ z[xx]$=z[xx]'$+round(accent_hpos,
+ accent_gap+if is_small_cap: cap_height else: x_height fi);
+ endfor\\ endfor
+ fi
+ fi
+ endgroup;
+enddef;
+
+def put_gravis=
+ numeric accent_hpos;
+ accent_hpos=.5w + if is_cap: .75 else: .5 fi\\ u
+ if known hpos_corr: +hpos_corr fi;
+ fix_grav_pairs; % |fix_grav_pairs| uses private values of |w|, |h| \& |u|
+ numeric hpos_corr; % |hpos_corr| is local: forget its value
+% draw the diagonal:
+ if serifs:
+ pickup crisp.nib; filldraw circ_stroke (z[jj]e--z[ii]e);
+ z[jj].right=directionpoint down of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ z[jj].top=directionpoint left of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ else:
+ pickup fine.nib; filldraw stroke (z[jj]e--z[ii]e);
+ z[jj].right=z[jj].top=z[jj]r;
+ fi
+% adjust and save height (tho the height is never needed):
+ h:=if is_cap: y[jj].top else: a_ht fi;
+ if known sharp_calc: saved_height:=h; fi
+ mark_height(a_ht#);
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% DOT ACCENT ACCESSORIES
+% ---------------------------------------------------------------------------
+%%% good penkind
+def put_dot (suffix penkind) (expr dd_) = % dot of the lowercase letter `i'
+ fix_virgin z;
+ numeric dd#; % sharp dot diameter
+ dd#=dd_; define_whole_blacker_pixels(dd);
+% adjust height temporarily:
+ h:=vround(if is_cap: (cap_height#+1.5u#+dd#)
+ elseif (charcode=oct"273") or (charcode=oct"012"): i_ht#(dd)
+ fi\\ *hppp);
+ pickup penkind.nib; pos[jj](dd,90); pos[ii](dd,0);
+ x[jj]=x[ii]=good.x(.5w+if charcode=oct"233": .5 else: if charcode=oct"235": 0
+ else: .25 fi\\fi\\ u);
+ top y[jj]r=h+1; y[ii]=.5[y[jj]l,y[jj]r];
+% draw the dot:
+ dot([ii],[jj]);
+% dotted `Z' inherits the recently saved height (if known; usually the height
+% of the accented `Z') which allows to decrease by one the number of different
+% heights in a font; dotted `z' has the height of a lowercase `i' (exception:
+% caps and small caps)
+ if known saved_height: h:=saved_height; fi\\ mark_height(i_ht#(dd));
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% L's CROSS ACCESSORIES
+% ---------------------------------------------------------------------------
+def put_cross(expr l_jut,r_jut) =
+ fix_virgin z;
+ numeric dd; dd=if is_cap: cap_bar else: bar fi;
+ numeric theta; theta=angle(11u#,.3[x_height#,cap_height#]);
+ pickup crisp.nib; pos[ii](dd,theta+90); pos[jj](dd,theta+90);
+ lft x[ii]r = hround(x1-l_jut)-eps;
+ rt x[jj]l = hround(x1+r_jut)+eps;
+ z[ii]-z[jj]=whatever*dir theta;
+% |.52| is one of CM (Computer Magic) numbers appearing in many CM programs,
+% among others in the programs for B, F, and H:
+ whatever[z[ii],z[jj]]=if not is_cap and hefty: top fi\\
+ (x1,if charcode=32: .3[x_height,asc_height-serif_drop] % tc blank sign
+ elseif charcode=147: .3x_height % tc recipe sign
+ else: .52cap_height fi\\);
+% before drawing the stroke improve discretization:
+ save eps_;
+ eps_:=y[ii]l-good.y(y[ii]l);
+ forsuffixes $:=l, ,r: y[ii]$:=y[ii]$-eps_; endfor
+ eps_:=y[jj]r-good.y(y[jj]r);
+ forsuffixes $:=l, ,r: y[jj]$:=y[jj]$-eps_; endfor
+ filldraw stroke z[ii]e--z[jj]e; % now draw the stroke
+ corrital z[jj]l; % correct italic correction
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% OGONEK ACCESSORIES
+% ---------------------------------------------------------------------------
+% This part is admittedly sophisticated, however, a wide spectrum of
+% different ogonek shapes is in fact to be programmed: one shape is needed
+% for caps, another for `a' with ogonek, yet another for `e' with ogonek,
+% as they all have different joins. Moreover, a sansserif ogonek differs
+% significantly from a serif one, a bold ogonek from a non-bold, an ogonek
+% for hefty fonts should still be different. And if you take into account
+% that the basic font unit |u| may change during one session of font
+% generation (monospace and caps-small-caps) and that a few different
+% pens may be used to draw a single letter, you'll understand why so many
+% |if| ... |else:| ... |fi| commands are used in the following code.
+%
+% Outer and inner edges of an ogonek (suffixed with |l| and |r|, resp.)
+% are single B\`ezier segments; the outer one, a path
+% |p=z_a..controls z_b and z_c ..z_d|
+% is constructed as follows: given pairs |z_a|, |z_d|, angles |alpha_a|,
+% |alpha_d| and two numbers |x_down|, |y_right|, find pairs |z_b| and |z_c|
+% such that the path |p| has the following properties:
+% (a) |direction p(z_a)=alpha_a|
+% (b) |direction p(z_d)=alpha_d-180|
+% (c) |direction p(x_down,some_y)=down|
+% (d) |direction p(some_x,y_right)=right|
+% The problem is solved using a ``double'' bisection method, provided
+% that appropriate limits |z_b'|, |z_b''| and |z_c'|, |z_c''| for |z_b|
+% and |z_c|, respectively, are given; more precisely,
+% |z_b=|$\lambda_b$|[z_b',zb'']| and |z_c=|$\lambda_c$|[z_c',zc'']|
+% is supposed to hold for given |z_b'|, |z_b''|, |z_c'|, |z_c''| and
+% some $0<\lambda_b,\lambda_c<1$.
+%
+% The inner edge is constructed by a careful modification of the outer one.
+%
+% If a default behaviour of our program is not satisfying, the user may
+% assign a value to the following ``emergency'' parameters (provided E knows
+% what E is doing):
+% |depth_corr|, |left_corr|, |top_breadth_corr|, |tip_breadth_corr|,
+% |tip_xcorr|, |tip_ycorr|, |pre_angle|, |post_angle|,
+% |pre_limit|, |post_limit|, |pre_lightness|, |post_lightness|,
+% |pre_deflexion|, and |post_deflexion|.
+% Any of these parameters, if known while generating a font, is used instead
+% of a default setting. The parameters are accessed only via macros:
+% |the_ogonek_depth#|, |the_left_pos|, |the_top_breadth_corr|,
+% |the_tip_breadth_corr|, |the_tip_pos|,
+% |the_pre_angle|, |the_post_angle|, |the_pre_limit|, |the_post_limit|,
+% |the_pre_lightness|, |the_post_lightness|,
+% |the_pre_deflexion|, and |the_post_deflexion|.
+% There is one sharp ogonek parameter, |ogonek_pen#|; a respective pen is
+% defined at the end of this file (and once again in POLKAP.MF after
+% |font_setup|) and used in the files PL_DL.MF, PL_ML.MF, PL_MLK.MF.
+% Any parameter may have its |lower| variant (see the file POLKAP.MF).
+% ---------------------------------------------------------------------------
+% two handy macros:
+vardef cross_point(expr a,b) (expr c,d) =
+ save z_; pair z_; z_=whatever[a,b]; z_=whatever[c,d]; z_
+% the crossing point of lines (not segments) |a--b| and |c--d| is returned
+enddef;
+
+vardef touch_time(expr p,q) = % a variant of |intersectionpoint|
+ save x_,y_; (x_,y_)=p intersectiontimes q; if x_<0: 0 else: y_ fi
+enddef;
+% ---------------------------------------------------------------------------
+% the kernel routine for the ogonek:
+numeric x_down,x_down',y_right,y_right',alpha_a,alpha_d;
+pair z_a,z_b,z_b',z_b'',z_c,z_c',z_c'',z_d;
+
+pair nz_,pz_;
+% with plain's |solve| embeded calls are not allowed, hence a bit tricky
+% variation:
+%%% known zsolve
+vardef zsolve@#(suffix z_)=
+% |@#| is the name of a real monotonic function; it is assumed that
+% |@#(z_')<=0|, |@#(z_'')>0| holds for given |z_'| and |z_''|
+ save nz_,pz_; pair nz_,pz_; % recursive calls are possible
+ nz_:=z_'; pz_:=z_'';
+ forever:
+ z_:=.5[nz_,pz_]; exitif abs(nz_-pz_)<=tolerance; % by default |tolerance=.1|
+ if @#(z_)<=0: nz_ else: pz_ fi :=z_;
+ endfor
+% on exit |z_| is (hopefully) near the point where |@#| changes from
+% negative to positive
+enddef;
+
+vardef down_dir(expr z_b)=
+ zsolve right_dir(z_c); % here |z_c| is computed
+ lft(xpart(directionpoint down of (z_a..controls z_b and z_c..z_d)))-x_down
+enddef;
+
+vardef right_dir(expr z_c)=
+ bot(ypart(directionpoint right of (z_a..controls z_b and z_c..z_d)))-y_right
+enddef;
+% ---------------------------------------------------------------------------
+% ogonek defaults:
+vardef the_ogonek_depth# = % sharp value
+ if known depth_corr: depth_corr* fi\\ desc_depth#
+enddef;
+
+vardef the_left_pos =
+ if known left_corr: left_corr* fi
+ if monospace: 3.75 elseif serifs:
+ if hefty: 2.3 elseif is_bold: 1.7 else: 1.9 fi
+ else: % sansserif
+ if is_bold: 1.65 else: 1.55 fi\\ fi\\ hi.u
+enddef;
+
+vardef the_tip_pos =
+ (if monospace: 1.9 elseif serifs: if hefty: 1.85
+ elseif is_bold: 1.75 else: 2 fi\\ else: % sansserif
+ if is_bold: 2.1 else: 1.95 fi\\ fi\\ hi.u,
+ if serifs:
+ if monospace: 1.25 elseif hefty: 1 elseif is_bold: .75 else: 1.45 fi
+ else: % sansserif
+ .45 fi\\ hi.u)
+ if known tip_xcorr: xscaled\\ tip_xcorr fi
+ if known tip_ycorr: yscaled\\ tip_ycorr fi
+enddef;
+
+vardef the_top_breadth_corr =
+ if known top_breadth_corr: top_breadth_corr else:
+ if serifs: 1 elseif is_bold: 1.12 elseif is_cap: 1.06 else: .96 fi\\ fi
+enddef;
+
+vardef the_tip_breadth_corr =
+ if known tip_breadth_corr: tip_breadth_corr else: 1 fi
+enddef;
+
+vardef the_pre_angle = % refers to the outer edge
+ if known pre_angle: pre_angle else:
+ if serifs: if hefty: 208 elseif is_bold: 211 else: 214 fi\\ else: 211 fi
+ fi
+enddef;
+
+vardef the_post_angle = % refers to the outer edge
+ if known post_angle: post_angle else:
+ if serifs: if monospace: 60 elseif hefty: 66 elseif is_bold: 55 else: 74 fi
+ else: 25 fi\\ fi
+enddef;
+
+vardef the_pre_limit = % refers to the outer edge
+ if known pre_limit: pre_limit else: x_down-3.5hi.u fi
+enddef;
+
+vardef the_post_limit = % refers to the outer edge
+ if known post_limit: post_limit else: x_down-2hi.u fi
+enddef;
+
+vardef the_pre_lightness = % refers to the inner edge
+ if known pre_lightness: pre_lightness else:
+ if serifs and hefty: .97 elseif not serifs and is_bold: .6
+ elseif is_bold: .66 else: .78 fi\\ fi
+enddef;
+
+vardef the_post_lightness = % refers to the inner edge
+ if known post_lightness: post_lightness else:
+ if serifs:
+ if hefty: .95 elseif is_bold: .66 else: .82 fi
+ else: % sansserif
+ .75 fi\\ fi
+enddef;
+
+vardef the_post_deflexion = % refers to the inner edge
+ if known post_deflexion: post_deflexion elseif serifs and hefty: 0
+ else: -5 fi
+enddef;
+
+vardef the_pre_deflexion = % refers to the inner edge
+ if known pre_deflexion: pre_deflexion
+ elseif known join_angle and not serifs:
+ if is_bold: -4 else: -2 fi\\
+ elseif not serifs: if is_bold: -8 else: -4 fi\\ else: 0 fi
+enddef;
+% ---------------------------------------------------------------------------
+%%% fine lo
+vardef lo suffix z = % in a way |lo| is a counterpart to |hi|
+ if is_small_cap: z_a+((z-z_a) scaled sqrt(body_height#/higher.body_height#))
+ else: z fi
+enddef;
+% ---------------------------------------------------------------------------
+% parameters to |put_ogonek|:
+numeric join_angle; % starting (inner) ogonek direction, if known
+numeric ogonek_breadth; % ogonek breadth at the tip
+% starting (inner for `e' with ogonek, otherwise outer) ogonek position:
+pair ogonek_pos;
+% ---------------------------------------------------------------------------
+def put_ogonek(suffix penkind) =
+ begingroup
+ if monospace:
+% excerpt from |mono_adjust|:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_faktor;
+ mono_charwd#=2hi.letter_fit#+expansion_faktor*cap_A_wd#; % cap_A_wd=13u
+ hi.u:=u#*expansion_faktor*hppp;
+% now |u| is like in the letter `A'
+ fi
+
+ fix_virgin z; pickup penkind.nib;
+
+% `a' with ogonek attached to the hook deserves a special treatment:
+ if\\ (not is_small_cap) and (charcode=oct"241") and serifs and not is_bold:
+ if ypart(ogonek_pos)>.5penkind:
+ z[ii]~l=ogonek_pos;
+ pos[ii]~(max(the_top_breadth_corr*ogonek_breadth,penkind+epsilon),0);
+ ogonek_pos:=cross_point((0,.5penkind),(1,.5penkind))
+ (z[ii]~l,z[ii]~l+dir(the_pre_angle));
+ fi
+ fi
+
+% similarly, `e' with ogonek deserves a special treatment:
+ if\\ (not is_small_cap) and (charcode=oct"246"):
+ if ypart(ogonek_pos)>.5penkind:
+ z[ii]~r=ogonek_pos;
+ pos[ii]~(max(the_top_breadth_corr*ogonek_breadth,penkind+epsilon),0);
+ ogonek_pos:=cross_point((0,.5penkind),(1,.5penkind))
+ (z[ii]~l,z[ii]~l+dir(join_angle));
+ fi
+ fi
+
+% invariant: |ypart(ogonek_pos)|$\le$|.5penkind|;
+% moreover, for `A' and `E': |ypart(ogonek_pos)=.5penkind|
+
+% OUTER EDGE:
+ alpha_a:=the_pre_angle; % starting direction
+ alpha_d:=180+the_post_angle; % ending direction
+ x_down:=if serifs: hround else: ceiling fi
+ (xpart(ogonek_pos)-the_left_pos); % left bound
+ y_right:=-vround(d+hi.o); % bottom bound
+ z_a:=(x_down+the_left_pos,ypart(ogonek_pos)); % starting point
+ z_d:=(xpart(z_a)-.5penkind,y_right+ypart(ogonek_pos))+
+ the_tip_pos; % ending point
+% guess the boundaries for control points:
+ z_b':=cross_point (z_a,z_a+dir alpha_a)
+ ((the_pre_limit,0),(the_pre_limit,1));
+ z_b'':=cross_point (z_b',z_a)\\ ((x_down,0),(x_down,1));
+ z_c':=cross_point (z_d,z_d+dir alpha_d)
+ ((the_post_limit,0),(the_post_limit,1));
+ z_c'':=cross_point (z_c',z_d)\\ ((0,y_right),(1,y_right));
+% THE PIVOT STEP OF THE OGONEK PROCEDURE, i.e.,
+% determine the control points (|z_b| and |z_c|) of the outer path:
+ zsolve down_dir(z_b); % |down_dir| calls `|zsolve right_dir(z_c)|'
+ x_down':=xpart(lft(directionpoint down of
+ (z_a..controls z_b and z_c..z_d)));
+ y_right':=ypart(bot(directionpoint right of
+ (z_a..controls z_b and z_c..z_d)));
+ if abs(x_down'-x_down,y_right'-y_right)>sqrt2:
+ message "ERROR: `ogonek' iteration hasn't converged! Final values:";
+ message "x_down="&decimal x_down'&" (should be "&decimal x_down&")";
+ message "y_right="&decimal y_right'&" (should be "&decimal y_right&")";
+ errhelp "Maybe Jackowski knows how to change them...";
+ errmessage "Probably, you have to change somehow the boundary values";
+ fi
+
+% small caps have ogoneks a bit smaller:
+ z[ii]l=z_a; z[ii]'l=lo.z_b; z[jj]'l=lo.z_c; z[jj]l=lo.z_d;
+
+% INNER EDGE:
+ pos[ii](max(the_top_breadth_corr*ogonek_breadth,penkind+epsilon),0);
+ pos[jj](max(the_tip_breadth_corr*ogonek_breadth,penkind+epsilon),
+ angle(direction 1 of (z_a..controls z_b and z_c..z_d))+
+ if serifs: 90 else: 80 fi);
+
+ z[ii]'r=z[ii]r+((z[ii]'l-z[ii]l) scaled the_pre_lightness
+ rotated the_pre_deflexion);
+ z[jj]'r=z[jj]r+((z[jj]'l-z[jj]l) scaled the_post_lightness
+ rotated the_post_deflexion);
+
+% trim the top of the ogonek, if necessary:
+ path ogonek.l, ogonek.r; numeric tt.r, tt.l;
+
+ ogonek.l=if is_known z[ii]~: % minuscule with ogonek
+ z[ii]~l{dir if charcode=oct"241": the_pre_angle else: join_angle fi}..fi
+ z[ii]l..controls z[ii]'l and z[jj]'l..z[jj]l;
+ ogonek.r=if is_known z[ii]~: % ditto
+ z[ii]~r{dir if charcode=oct"241": the_pre_angle else: join_angle fi}..fi
+ z[ii]r..controls z[ii]'r and z[jj]'r..z[jj]r;
+
+ tt.r=if serifs and (not is_small_cap) and (charcode=oct"241"):
+ touch_time(p.l,ogonek.r) else: 0 fi;
+ tt.l=if\\ (not is_small_cap) and (charcode=oct"246"):
+ touch_time(p.r,ogonek.l) else: 0 fi;
+% at last, draw the ogonek:
+ if ogonek_breadth>.5:
+ interim turningcheck:=0; filldraw
+ if\\ (not is_small_cap) and (charcode=oct"246"):
+ (point tt.r of ogonek.r){direction tt.r of ogonek.r}..{curl 1} fi
+ subpath (tt.l,length ogonek.l) of ogonek.l--
+ reverse(subpath (tt.r,length ogonek.r) of ogonek.r)
+ if is_small_cap or (charcode<>oct"246"): -- else: & fi\\ cycle;
+% the |draw| command covers with ink unwanted breaks:
+ pickup pensquare scaled (.5*sqrt2) rotated 45;
+ draw .5[z[ii]l,z[ii]r]..controls .5[z[ii]'l,z[ii]'r] and
+ .5[z[jj]'l,z[jj]'r].. .5[z[jj]l,z[jj]r];
+ else: % poor resolution:
+ pickup pensquare scaled (.5*sqrt2) rotated 45;
+ draw z[ii]l..controls z[ii]'l and z[jj]'l..z[jj]l;
+ fi
+
+ numeric join_angle, ogonek_breadth; pair ogonek_pos; % all they are local
+
+ penlabels([ii],[jj]);
+
+ endgroup
+enddef;
+%*******************************************************************************
+%
+% This was csaccent.mf in text format, as of 89/05/08
+% written by P. Novak, Prague
+% Czech and Slovak letters with accents
+% Changed paths for acute and hachek accent added 26/04/92, 11/08/92
+% Accent definitions |lc_circle_accent| modified
+% |uc_Circle_accent| added for Duerer font
+%
+% 7 May 1995 did whole sale surgery to this part. Moved parameters to
+% dxpseudo.mf to be able to manipulate them from there. The Acute
+% accent is done the polish way, therefore removed all acute related
+% macros. Pseudoparametrised all kinds of |dot_diam|.
+% 17 Jun 1995 adjusted hachek height parameters to blend better with acute
+% parameters. Removed lots of stuff not used by the dc and tc fonts.
+% 17 Jul 1995 corrected uppercase hachek height for sans serif case
+% Removed many macros, which aren't used anymore
+% 23 Aug 1996 Adjusted |lc_hachek_accent| for dcsx font
+% 23 Dec 1996 Done provisions for small caps fonts, consequently
+% applied |hi.|, replaced |curve| by |cap_curve| for |uc_hachek_accent|,
+% adjusted numeric factors to the usually higher value of |cap_curve|.
+% 19 Jan 1997 The |uc_hacheck_accent| comes out too high, because of
+% unwanted white space above it. Changed appropriately.
+%===============================================================================
+
+def lc_hachek_accent(expr ref) =
+ if serifs:
+ pickup crisp.nib;
+ pos52'(0.75[vair,curve],90);
+ pos52(0.75[vair,curve],90);
+ x52=good.x ref;
+ x52-x51=x53-x52=good.x if hach_sharp:2.5 else:3 fi
+ accent_u-accent_thin;
+ top y52' = top y51 = top y53 = lc_hachek_height;
+ if hach_sharp:
+ y52=max(2/3[h,hi.x_height],hi.x_height+o+hair); % lower point
+ pos51(1.5stem,0); pos53(accent_thin,180);
+ else:
+ 0.5[y52,y52r] = 0.5[hi.x_height,y52'];
+ pos51(accent_thin,angle(z52-z51)+90);
+ pos53(accent_thin,angle(z53-z52)+90);
+ fi
+ filldraw stroke z51e -- z52e -- z53e;
+ else:
+ pickup fine.nib;
+ pos51(vair,0);
+ pos53(vair,0);
+ x52=good.x ref;
+ x52-lft x51=rt x53-x52= hround(1.25accent_u + vair);
+ pos52(stem,0);
+% bot y52=vround(0.3[x_height,lc_hachek_height]);
+ bot y52=vround(max(2/3[h,hi.x_height],hi.x_height+o+hair));
+ top y51 = top y53 = lc_hachek_height;
+ z50 = whatever[z51r,z52r] = whatever[z52l,z53l];
+ y54l=y54r=y52;
+ x54l=good.x .2[x52l,x52];
+ x54r-x52 = x52-x54l;
+ filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle;
+ fi
+ penlabels(50,51,52,52',53,54);
+enddef;
+
+def dtl_hachek(text x_ref,y_ref) =
+pickup fine.nib;
+ pickup fine.nib;
+ x51=hround(x_ref); y51=vround(y_ref);
+ comma(51,q,pdot_diam,.25accent_u,2/3comma_depth);
+ penlabels(51);
+enddef;
+
+def uc_hachek_accent(expr ref) =
+ if serifs:
+ pickup crisp.nib;
+ pos52'(0.5[vair,cap_curve],90);
+ pos52(0.5[vair,cap_curve],90);
+ x52=good.x ref;
+ x52-x51=x53-x52=good.x 3accent_u-accent_thin;
+ top y52' = top y51 = top y53 = % upper points
+ uc_acc_height-.5[vair,cap_curve]+eps
+ -max(2/3[uc_acc_height,hi.x_height],hi.x_height+o+hair)+cap_height;
+ if hach_sharp:
+ y52=max(2/3[uc_acc_height,hi.x_height],hi.x_height+o+hair)
+ -hi.x_height+cap_height; % lower point
+ pos51(cap_stem,0); pos53(2accent_thin,180);
+ else:
+ 0.5[y52,y52r] =
+ if not hefty:
+ max(2/3[uc_acc_height,hi.x_height],hi.x_height+o+hair)
+ -hi.x_height+cap_height;
+ else:
+ max(2/3[uc_acc_height,hi.x_height],hi.x_height+o)
+ -hi.x_height+cap_height-hair;
+ fi
+ pos51(accent_thin,angle(z52-z51)+90);
+ pos53(accent_thin,angle(z53-z52)+90);
+ fi
+ filldraw stroke z51e -- z52e -- z53e;
+ else:
+ pickup fine.nib;
+ pos51(vair,0);
+ pos53(vair,0);
+ x52=good.x ref;
+ x52-x51=x53-x52= 1.75accent_u + .5vair;
+ pos52(cap_stem,0);
+ bot y52= cap_height + .5 accent_gap;
+ top y51 = top y53 = cap_height + acc_height;
+ z50 = whatever[z51r,z52r] = whatever[z52l,z53l];
+ y54l=y54r=y52;
+ x54l=good.x .2[x52l,x52];
+ x54r-x52 = x52-x54l;
+ filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle;
+ fi
+penlabels(50,51,52,52',53,54);
+enddef;
+
+endinput;
+%%
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exbase.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exbase.mf
new file mode 100644
index 00000000000..f8d1a9af8b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exbase.mf
@@ -0,0 +1,1341 @@
+% exbase.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% The base file needed for generation of the EC fonts
+
+exbase:=1; % if |exbase| is known, this file has been input
+
+ec_maj_version:=1; ec_min_version:=0; % version identification
+
+def version_check(expr e,f)=
+ if e=ec_maj_version:
+ if f=ec_min_version:
+ message " Ok";
+ elseif: f>ec_min_version:
+ message "ec font warning: Obsolete base";
+ elseif: f<ec_min_version:
+ message "ec font warning: File from old release found";
+ fi
+ elseif: e>ec_maj_version:
+ message "ec font warning: Obsolete base";
+ elseif: e<ec_maj_version:
+ message "ec font warning: File from old release found";
+ fi
+enddef;
+
+let stop_eventually=relax;
+
+% The following checks require, that |bye| is an |inner| command.
+% This is usually set by |local.mf| or |modes.mf|, however we cannot
+% rely on this feature, therefore we do it here again.
+
+inner bye;
+
+% Check for existence of |boundarychar|
+if unknown boundarychar:
+ message "You are using out-of-date METAFONT 1.*,";
+ message "please update to METFONT 2.718 or newer.";
+ let stop_eventually=bye;
+fi
+
+% Check for old version of |plain.mf| (2.0 or older)
+if known begingroup killtext whatever endgroup:
+ relax;
+else:
+ message "You are using plain.mf 2.0 or older";
+ message "please update to plain.mf 2.71 or newer";
+ let stop_eventually=bye;
+fi
+
+% Check for |cmbase|
+if known cmbase:
+ message "You are using METAFONT with cmbase preloaded,";
+ message "please use only plain METAFONT to generate the ec fonts.";
+ let stop_eventually=bye;
+fi
+
+stop_eventually;
+
+boolean slitex; slitex := false; % |true| simulates behaviour of |sroman|
+boolean one_serif; one_serif:=true; % |false| suppresses base serif on `1'
+boolean classic_serif; classic_serif := false;
+boolean suppress_i_dot; suppress_i_dot :=false;
+boolean hach_sharp; hach_sharp:=false;
+boolean classic_sharp_s; classic_sharp_s:=false; % Chooses shape of sharp s
+boolean true_mono; true_mono:=false; % |true| forces ligatures to monowidth
+boolean knuthian_ae; knuthian_ae:=false; % |true| reproduces cm italic \ae
+boolean fancy_thorn; fancy_thorn:=false; % |true| produces \th with fancier bulb
+boolean is_small_cap; is_small_cap:=false;
+tracingstats:=1; % Print statistics at the end of run
+
+let ecchar=\; % `|ecchar|' should precede each character
+let generate=input; % `|generate|' should follow the parameters
+
+autorounding:=0; smoothing:=0; % we do our own rounding
+def autorounded = interim autorounding:=2 enddef;
+
+newinternal slant,fudge,math_spread,superness,superpull,beak_darkness;
+boolean square_dots,hefty,serifs,
+ monospace,variant_g,low_asterisk,math_fitting;
+
+boolean dark,dark.dark,skewed,skewed.skewed; % for fast option testing
+dark=skewed=false; dark.dark=skewed.skewed=true;
+
+vardef Vround primary y = y_:=vround y;
+ if y_<min_Vround: min_Vround else: y_ fi enddef;
+newinternal y_,min_Vround;
+
+vardef serif(suffix $,$$,@) % serif at |z$| for stroke from |z$$|
+ (expr darkness,jut) suffix modifier =
+ pickup crisp.nib; numeric bracket_height; pair downward;
+ bracket_height=if dark.modifier: 1.5 fi\\ bracket;
+ if y$<y$$: y@2=min(y$+bracket_height,y$$);
+ top y@1-slab=bot y@0+eps=tiny.bot y$; downward=z$-z$$;
+ if y@1>y@2: y@2:=y@1; fi
+ else: y@2=max(y$-bracket_height,y$$);
+ bot y@1+slab=top y@0-eps=tiny.top y$; downward=z$$-z$;
+ if y@1<y@2: y@2:=y@1; fi fi
+ y@3=y@2; z@3=whatever[z$,z$$];
+ if jut<0: z@2+penoffset downward of currentpen =
+ z$l+penoffset downward of pen_[tiny.nib]+whatever*downward;
+ lft x@0=lft x@1=tiny.lft x$l+jut;
+ if x@3<x@2+eps: x@3:=x@2+eps; fi
+ else: z@2-penoffset downward of currentpen =
+ z$r-penoffset downward of pen_[tiny.nib]+whatever*downward;
+ rt x@0=rt x@1=tiny.rt x$r+jut;
+ if x@3>x@2-eps: x@3:=x@2-eps; fi fi
+ pair corner; ypart corner=y@1; corner=z@2+whatever*downward;
+ filldraw z@2{z$-z$$}
+ ...darkness[corner,.5[z@1,z@2] ]{z@1-z@2}
+ ...{jut,0}z@1--z@0--(x$,y@0)--z@3--cycle; % the serif
+ labels (@1,@2); enddef;
+
+def dish_serif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ serif($,$$,@,left_darkness,-left_jut) modifier;
+ serif($,$$,@@,right_darkness,right_jut) modifier;
+ if dish>0: pickup tiny.nib; numeric dish_out,dish_in;
+ if y$<y$$: dish_out=bot y$; dish_in=dish_out+dish; let rev_=reverse;
+ else: dish_out=top y$; dish_in=dish_out-dish; let rev_=relax; fi
+ erase fill rev_
+ ((x@1,dish_out)..(x$,dish_in){right}..(x@@1,dish_out)--cycle);
+ fi enddef;
+
+def nodish_serif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ serif($,$$,@,left_darkness,-left_jut) modifier;
+ serif($,$$,@@,right_darkness,right_jut) modifier; enddef;
+
+vardef sloped_serif.l(suffix $,$$,@)(expr darkness,jut,drop) =
+ pickup crisp.nib; pos@2(slab,90);
+ lft x@0=tiny.lft x$l; rt x@1=tiny.rt x$r; top y@1=tiny.top y$r;
+ lft x@2=lft x@0-jut; y@2r=y@1-drop;
+ y@0=max(y@2l-bracket,y$$)-eps;
+ if drop>0: erase fill z@1--top z@1
+ --(x@2r,top y@1)--z@2r--cycle; fi % erase excess at top
+ filldraw z@1--z@2r--z@2l{right}
+ ...darkness[(x@0,y@2l),.5[z@2l,z@0] ]{z@0-z@2l}
+ ...{down}z@0--(x@1,y@0)--cycle; % sloped serif
+ labels(@0,@1,@2); enddef;
+
+vardef sloped_serif.r(suffix $,$$,@)(expr darkness,jut,drop) =
+ pickup crisp.nib; pos@2(slab,-90);
+ rt x@0=tiny.rt x$r; lft x@1=tiny.lft x$l; bot y@1=tiny.bot y$l;
+ rt x@2=rt x@0+jut; y@2r=y@1+drop;
+ y@0=min(y@2l+bracket,y$$)+eps;
+if drop>0: erase fill z@1--bot z@1
+ --(x@2r,bot y@1)--z@2r--cycle; fi % erase excess at bottom
+ filldraw z@1--z@2r--z@2l{left}
+ ...darkness[(x@0,y@2l),.5[z@2l,z@0] ]{z@0-z@2l}
+ ...{up}z@0--(x@1,y@0)--cycle; % sloped serif
+ labels(@0,@1,@2); enddef;
+
+vardef term.l(suffix $,$$)(expr d,t,s)= % ``robust'' sans-serif terminal
+ path p_; p_=z$l{d}..tension t..z$$l;
+ pair d_; d_=(x$$l-x$l,s*(y$$l-y$l));
+ if (abs angle direction 1 of p_ < abs angle d_)<>(x$l<x$$l):
+ p_:=z$l{d}..tension atleast t..{d_}z$$l; fi
+ p_ enddef;
+vardef term.r(suffix $,$$)(expr d,t,s)=
+ path p_; p_=z$r{d}..tension t..z$$r;
+ pair d_; d_=(x$$r-x$r,s*(y$$r-y$r));
+ if (abs angle direction 1 of p_ < abs angle d_)<>(x$r<x$$r):
+ p_:=z$r{d}..tension atleast t..{d_}z$$r; fi
+ p_ enddef;
+def rterm=reverse term enddef;
+
+vardef arm(suffix $,$$,@)(expr darkness,jut) = % arm from |z$| to |z$$|
+ x@0=good.x(x$$r-jut); y@0=y$r;
+ if serifs: y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0);
+ z@2=.5[z$l,z@1];
+ filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ]...z@2
+ ---z$l--z$r--z@0--z$$r--cycle; % arm and beak
+ else: filldraw z$l--z$r--z@0--z$$r--cycle; fi % sans-serif arm
+ penlabels(@0,@1,@2); enddef;
+
+def bulb(suffix $,$$,$$$) =
+ z$$$r=z$$r;
+ path_.l:=z$l{x$$r-x$r,0}...{0,y$$r-y$r}z$$l;
+ filldraw path_.l--z$$r{0,y$r-y$$r}...{x$r-x$$r,0}z$r--cycle; % link
+ path_.r:=z$$$l{0,y$r-y$$r}..z$$$r{0,y$$r-y$r}; % near-circle
+ filldraw subpath(0,xpart(path_.r intersectiontimes path_.l)) of path_.r
+ --z$$r{0,y$$r-y$r}..cycle; % bulb
+ enddef;
+
+def v_bulb(suffix $,$$)= % |pos$| is known
+ y$$+.5curve=x_height+oo; x$$+.5curve=w-u;
+ numeric theta; theta=angle(4(x$-x$$),y$-y$$); pos$$(curve,theta+90);
+ filldraw z$$l{dir theta}..tension atleast 1 and 1..{down}z$l
+ --z$r{up}...{-dir theta}z$$r..cycle; % bulb
+ enddef;
+
+def dot(suffix $,$$) =
+ filldraw if square_dots: (x$l,y$$l)--(x$r,y$$l)
+ --(x$r,y$$r)--(x$l,y$$r)--cycle % squarish dot
+ else: z$l...z$$l...z$r...z$$r...cycle fi % roundish dot
+ enddef;
+
+def comma(suffix $,@)(expr dot_size,jut,depth) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1-depth;
+ x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-45);
+ z@1r=z$r; rt x@2r=hround(x$+.5dot_size+jut)+2eps; x@3=x$-.5u;
+ y@2=1/3[y@1,y@3]; bot y@3r=vround(y$-.5dot_size-depth);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ filldraw stroke z@1e{right}...z@2e{down}...z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+def ammoc(suffix $,@)(expr dot_size,jut,depth) = % reversed comma
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_top_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_top_,0); y@0=y$; y@1=y$r; y@2=y@1+depth;
+ x@0l=x@1l=x$'l; lft x@2l=good.x(x$+eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-45);
+ z@1l=z$l; lft x@2l=hround(x$-.5dot_size-jut)-2eps; x@3=x$+.5u;
+ y@2=1/3[y@1,y@3]; top y@3l=vround(y$+.5dot_size+depth);
+ y_:=ypart((z@1{left}...z@2{up}...z@3)
+ intersectiontimes (z$r{left}..{right}z$l)); if y_<0: y_:=1; fi
+ filldraw z$l{right}..subpath (0,y_) of (z$r{left}..{right}z$l)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{up}...z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+%%% @ from to %%%% temporary formatting change
+vardef diag_in(suffix from,$)(expr sharpness)(suffix $$) =
+ pickup tiny.nib; save from_x,y_;
+ if y.from>y$: bot else: top fi\\ y_=y$;
+ (from_x,y_)=whatever[z.from,z$];
+ sharpness[z$,(from_x,y_)]{z$-z.from}
+ ...{z$$-z$}z$+sharpness*length(z$-(from_x,y_))*unitvector(z$$-z$) enddef;
+
+vardef diag_out(suffix $)(expr sharpness)(suffix $$,to) =
+ pickup tiny.nib; save to_x,y_;
+ if y.to>y$: bot else: top fi\\ y_=y$;
+ (to_x,y_)=whatever[z$$,z.to];
+ z$$-sharpness*length(z$$-(to_x,y_))*unitvector(z$$-z$){z$$-z$}
+ ...{z.to-z$$}sharpness[z$$,(to_x,y_)] enddef;
+
+vardef diag_end(suffix from,$)(expr sharpness_in,sharpness_out)(suffix $$,to)=
+ save from_x,to_x,y_,x_,xx_;
+ if y.from>y$: tiny.bot else: tiny.top fi\\ y_=y$; % we assume that |y$=y$$|
+ (from_x,y_)=whatever[z.from,z$]; (to_x,y_)=whatever[z$$,z.to];
+ if x$$>x$: x_=x$+sharpness_in*length(z$-(from_x,y_));
+ xx_=x$$-sharpness_out*length(z$$-(to_x,y_));
+ if xx_<x_: xx_:=x_:=.5[xx_,x_]; fi
+ else: x_=x$-sharpness_in*length(z$-(from_x,y_));
+ xx_=x$$+sharpness_out*length(z$$-(to_x,y_));
+ if xx_>x_: xx_:=x_:=.5[xx_,x_]; fi fi
+ sharpness_in[z$,(from_x,y_)]{z$-z.from}
+ ...{z$$-z$}(x_,y$)..(xx_,y$){z$$-z$}
+ ...{z.to-z$$}sharpness_out[z$$,(to_x,y_)] enddef;
+%%% at from to %%%% restore normal formatting
+
+vardef special_diag_end(suffix $$,$,@,@@) = % for top middle of w's
+ if x@r<=x$r: diag_end($$r,$r,1,1,@l,@@l)
+ else: z0=whatever[z$$l,z$l]=whatever[z@l,z@@l];
+ diag_end($$r,$r,1,1,$l,0)--z0 fi enddef;
+
+def prime_points_inside(suffix $,$$) =
+ theta_:=angle(z$r-z$l);
+ penpos$'(whatever,theta_);
+ if y$$>y$: z$'=(0,pen_top) rotated theta_ + whatever[z$l,z$r];
+ theta_:=angle(z$$-z$)-90;
+ else: z$'=(0,pen_bot) rotated theta_ + whatever[z$l,z$r];
+ theta_:=angle(z$$-z$)+90; fi
+ z$'l+(pen_lft,0) rotated theta_=z$l+whatever*(z$-z$$);
+ z$'r+(pen_rt,0) rotated theta_=z$r+whatever*(z$-z$$);
+ enddef;
+
+def ellipse_set(suffix $,@,@@,$$) = % given |z$,x@,z$$|, find |y@| and |z@@|
+% such that the path |z${x@-x$,0}..z@{0,y@-y$}..{z$$-z@@}z@@|
+% is consistent with an ellipse
+% and such that the line |z@@--z$$| has a given |slope|
+ alpha_:=slope*(x@-x$); beta_:=y$$-y$-slope*(x$$-x$);
+ gamma_:=alpha_/beta_;
+ y@-y$=.5(beta_-alpha_*gamma_);
+ x@@-x$=-2gamma_*(x@-x$)/(1+gamma_*gamma_);
+ y@@-y$$=slope*(x@@-x$$) enddef;
+
+vardef diag_ratio(expr a,b,y,c) = % assuming that $a>\vert b/y\vert$,
+% compute the value $\alpha=(x\6{++}y)/y$ such that $ax+b\alpha=c$
+ numeric a_,b_; b_=b/y; a_=a*a-b_*b_;
+ (a*(c++y*sqrt a_)-b_*c)/a_/y enddef;
+
+def f_stroke(suffix $,$$,@,left_serif,right_serif)(expr left_jut,right_jut)=
+ pickup tiny.nib; bot y$=0;
+ penpos@0(x$r-x$l,0); x@0l=x$l; top y@0=x_height;
+ filldraw stroke z$e--z@0e; % stem
+ pickup fine.nib; pos@0'(x$r-x$l-(hround stem_corr)+tiny,180);
+ y@0'=y@0; lft x@0'r=tiny.lft x$l;
+ penpos@1(x@0'l-x@0'r,180); x@1=x@0'; y@1+.5vair=.5[x_height,h];
+ pos@2(vair,90); top y@2r=h+oo;
+ if serifs: x@2=.6[x@1,x$$r]; (x@,y@2r)=whatever[z@2l,z@1l];
+ x@2r:=min(x@,.5[x@2,x$$r]); pos@3(hair,0); bulb(@2,@3,$$); % bulb
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2); % arc
+ dish_serif($,@0,left_serif,1/3,left_jut,right_serif,1/3,right_jut); % serif
+ else: x@2=.6[x@1,x$$]; y@1l:=1/3[y@1l,y@2l];
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2)
+ & term.e(@2,$$,right,.9,4); fi % arc and terminal
+ penlabels(@0,@1,@2); enddef;
+
+def h_stroke(suffix $,@,@@,$$) =
+ penpos$$(x@@r-x@@l,0); x$$=x@@; bot y$$=0;
+ y@@=1/3[bar_height,x_height];
+ penpos$''(x$r-x$l,0); x$''=x$; y$''=1/8[bar_height,x_height];
+ filldraw stroke z$''e--z$e; % thicken the lower left stem
+ penpos@0(min(rt x$r-lft x$l,thin_join)-fine,180); pickup fine.nib;
+ rt x@0l=tiny.rt x$r; y@0=y$'';
+ pos@1(vair,90); pos@@'(x@@r-x@@l+tiny,0); z@@'=z@@;
+ x@1=.5[rt x@0l,rt x@@'r]; top y@1r=x_height+oo;
+ (x@,y@1l)=whatever[z@1r,z@0l]; x@1l:=x@;
+ filldraw stroke z@0e{up}...{right}z@1e
+ &{{interim superness:=hein_super; super_arc.e(@1,@@')}}; % arch
+ pickup tiny.nib; filldraw stroke z@@e--z$$e; % right stem
+ labels(@0); penlabels(@1); enddef;
+
+def hook_out(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ pos$(stem,0); pos$$(vair,90);
+ x$$$:=hround(x$$$+.5hair-eps)-.5hair; pos$$$(hair,180);
+ y$=1/4x_height; bot y$$l=-oo; y$$$=1/3x_height;
+ if skewed.modifier: x$$=x$+1.25u;
+ filldraw stroke z$e{-u,-x_height}...z$$e{right}...{up}z$$$e; % hook
+ else: x$$=x$+1.5u;
+ filldraw stroke z$e{down}...z$$e{right}
+ ...{x$$$-(x$+2.5u),x_height}z$$$e; fi enddef; % hook
+
+def empty_hook_out(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ pos$(stem,0); pos$$(vair,90);
+ x$$$:=hround(x$$$+.5hair-eps)-.5hair; pos$$$(hair,180);
+ y$=1/4x_height; bot y$$l=-oo; y$$$=1/3x_height;
+ if skewed.modifier: x$$=x$+1.25u;
+% filldraw stroke z$e{-u,-x_height}...z$$e{right}...{up}z$$$e; % hook
+ else: x$$=x$+1.5u;
+% filldraw stroke z$e{down}...z$$e{right}
+% ...{x$$$-(x$+2.5u),x_height}z$$$e;
+fi enddef; % empty_hook_out
+
+def hook_in(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ x$:=hround(x$-.5hair)+.5hair; pos$(hair,180);
+ pos$$(vair,90); pos$$$(stem,0);
+ y$=2/3x_height; top y$$r=x_height+oo; y$$$=3/4x_height;
+ if skewed.modifier: x$$=x$$$-1.25u;
+ filldraw stroke z$e{up}...z$$e{right}...{-u,-x_height}z$$$e; % hook
+ else: x$$=x$$$-1.5u;
+ filldraw stroke z$e{x$$$-2.5u-x$,x_height}
+ ...z$$e{right}...{down}z$$$e; fi enddef; % hook
+
+def ital_arch(suffix $,$$,$$$) = % |z$| and |z$$$| (only) are known
+ pos$'(hair,180); z$'=z$;
+ pos$$(vair,90); pos$$$(stem,0);
+ {{interim superness := more_super; x$$=.6[x$,x$$$];
+ top y$$r=x_height+oo; y$$$=.65x_height;
+ filldraw stroke z$'e{up}...super_arc.e($$,$$$);}} enddef; % stroke
+
+def compute_spread(expr normal_spread,big_spread)=
+ spread#:=math_spread[normal_spread,big_spread];
+ spread:=ceiling(spread#*hppp)+eps; enddef;
+
+def v_center(expr h_sharp) =
+ .5h_sharp+math_axis#, .5h_sharp-math_axis# enddef;
+
+def circle_points =
+ x4=x8=.5[x2,x6]; x1=x3=superness[x4,x2]; x5=x7=superness[x4,x6];
+ y2=y6=.5[y4,y8]; y1=y7=superness[y2,y8]; y3=y5=superness[y2,y4];
+ enddef;
+def draw_circle =
+ draw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle enddef;
+
+def left_paren(expr min_breadth, max_breadth) =
+ pickup fine.nib; pos1(hround min_breadth,0);
+ pos2(hround max_breadth,0); pos3(hround min_breadth,0);
+ rt x1r=rt x3r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u;
+ top y1=h; y2=.5[y1,y3]; bot y3=1-d;
+ filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+ penlabels(1,2,3); enddef;
+
+def right_paren(expr min_breadth, max_breadth) =
+ pickup fine.nib; pos1(hround min_breadth,0);
+ pos2(hround max_breadth,0); pos3(hround min_breadth,0);
+ lft x1l=lft x3l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u);
+ top y1=h; y2=.5[y1,y3]; bot y3=1-d;
+ filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+ penlabels(1,2,3); enddef;
+
+def left_bracket(expr breadth,do_top,do_bot) =
+ pickup crisp.nib;
+ numeric thickness; thickness=hround breadth;
+ pos1(thickness,0); pos2(thickness,0);
+ top y1=h; bot y2=1-d; lft x1l=lft x2l=hround(2.5u-.5thickness);
+ filldraw stroke z1e--z2e; % stem
+ pos3(thickness,90); pos4(thickness,90);
+ pos5(thickness,90); pos6(thickness,90);
+ x3=x5=x1l; rt x4=rt x6=hround(w-.75u+.5thickness);
+ y3r=y4r=y1; y5l=y6l=y2;
+ if do_top: filldraw stroke z3e--z4e; fi % upper bar
+ if do_bot: filldraw stroke z5e--z6e; fi % lower bar
+ penlabels(1,2,3,4,5,6); enddef;
+
+def right_bracket(expr breadth,do_top,do_bot) =
+ pickup crisp.nib;
+ numeric thickness; thickness=hround breadth;
+ pos1(thickness,0); pos2(thickness,0);
+ top y1=h; bot y2=1-d; rt x1r=rt x2r=hround(w-2.5u+.5thickness);
+ filldraw stroke z1e--z2e; % stem
+ pos3(thickness,90); pos4(thickness,90);
+ pos5(thickness,90); pos6(thickness,90);
+ x3=x5=x1r; lft x4=lft x6=hround(.75u-.5thickness);
+ y3r=y4r=y1; y5l=y6l=y2;
+ if do_top: filldraw stroke z3e--z4e; fi % upper bar
+ if do_bot: filldraw stroke z5e--z6e; fi % lower bar
+ penlabels(1,2,3,4,5,6); enddef;
+
+def left_curly(expr min_breadth, max_breadth) =
+ pickup fine.nib;
+ forsuffixes $=1,1',4,4',7,7': pos$(hround min_breadth,0); endfor
+ forsuffixes $=2,3,5,6: pos$(hround max_breadth,0); endfor
+ x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+ lft x4l=hround(1.5u-.5min_breadth); lft x2l=hround(.5w-.5max_breadth);
+ top y1=h; bot y7=1-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+ y1-y2=y3-y4=(y1-y4)/4;
+ y1-y1'=y4-y4'=y7'-y7=vround(min_breadth-fine);
+ filldraw z1l{3(x2l-x1l),y2-y1}...z2l---z3l...{3(x4l-x3l),y4-y3}z4l
+ --z4'l{3(x5l-x4l),y5-y4'}...z5l---z6l...{3(x7l-x6l),y7-y6}z7l
+ --z7r--z7'r{3(x6r-x7r),y6-y7'}...z6r---z5r
+ ...{3(x4r-x5r),.5[y4,y4']-y5}.5[z4r,z4'r]{3(x3r-x4r),y3-.5[y4,y4']}
+ ...z3r---z2r...{3(x1r-x2r),y1'-y2}z1'r--z1r--cycle; % stroke
+ penlabels(1,2,3,4,5,6,7); enddef;
+
+def right_curly(expr min_breadth, max_breadth) =
+ pickup fine.nib;
+ forsuffixes $=1,1',4,4',7,7': pos$(hround min_breadth,0); endfor
+ forsuffixes $=2,3,5,6: pos$(hround max_breadth,0); endfor
+ x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+ lft x1l=hround(1.5u-.5min_breadth); lft x2l=hround(.5w-.5max_breadth);
+ top y1=h; bot y7=1-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+ y1-y2=y3-y4=(y1-y4)/4;
+ y1-y1'=y4-y4'=y7'-y7=vround(min_breadth-fine);
+ filldraw z1r{3(x2r-x1r),y2-y1}...z2r---z3r...{3(x4r-x3r),y4-y3}z4r
+ --z4'r{3(x5r-x4r),y5-y4'}...z5r---z6r...{3(x7r-x6r),y7-y6}z7r
+ --z7l--z7'l{3(x6l-x7l),y6-y7'}...z6l---z5l
+ ...{3(x4l-x5l),.5[y4,y4']-y5}.5[z4l,z4'l]{3(x3l-x4l),y3-.5[y4,y4']}
+ ...z3l---z2l...{3(x1l-x2l),y1'-y2}z1'l--z1l--cycle; % stroke
+ penlabels(1,2,3,4,5,6,7); enddef;
+
+def left_angle(expr breadth) =
+ pickup pencircle scaled breadth;
+ x1=x3=good.x(w-u)+eps; lft x2=hround u-eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+ labels(1,2,3); enddef;
+
+def right_angle(expr breadth) =
+ pickup pencircle scaled breadth;
+ x1=x3=good.x u-eps; rt x2=hround(w-u)+eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+ labels(1,2,3); enddef;
+
+def beginarithchar(expr c) = % ensure consistent dimensions for $+$, $-$, etc.
+ if monospace: beginchar(c,14u#,27/7u#+math_axis#,27/7u#-math_axis#);
+ else: beginchar(c,14u#,6u#+math_axis#,6u#-math_axis#); fi
+ italcorr math_axis#*slant-.5u#;
+ adjust_fit(0,0); enddef;
+
+def center_on(expr x) = if not monospace: % change width for symmetric fit
+ r:=r+2x-w; w:=2x; fi enddef;
+
+def super_crescent(suffix i,j,k) =
+ draw z.i{x.j-x.i,0}
+ ... (.8[x.i,x.j],.8[y.j,y.i]){z.j-z.i}
+ ... z.j{0,y.k-y.i}
+ ... (.8[x.k,x.j],.8[y.j,y.k]){z.k-z.j}
+ ... z.k{x.k-x.j,0} enddef;
+
+newinternal l,r,shrink_fit; % adjustments to spacing
+
+def do_expansion(expr expansion_factor) =
+ forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
+ $:=$.#*expansion_factor*hppp; endfor
+enddef;
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric charwd_in; charwd_in=charwd;
+ l:=-hround(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-letter_fit;
+ do_expansion(w/(charwd_in*hppp));
+ enddef;
+
+def mono_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric charwd_in; charwd_in=charwd;
+ numeric expansion_factor;
+ mono_charwd#=2letter_fit#
+ +expansion_factor*(charwd+left_adjustment+right_adjustment);
+ l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
+ interim xoffset:=-l;
+ r:=l+mono_charwd-shrink_fit;
+ w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
+ charwd:=mono_charwd#; charic:=mono_charic#;
+ do_expansion(w/(charwd_in*hppp));
+ enddef;
+
+extra_endchar:=extra_endchar&"r:=r+shrink_fit;w:=r-l;";
+
+def ignore_math_fit(expr left_adjustment,right_adjustment) = enddef;
+def do_math_fit(expr left_adjustment,right_adjustment) =
+ l:=l-hround(left_adjustment*hppp); interim xoffset:=-l;
+ charwd:=charwd+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ charic:=charic-right_adjustment;
+ if charic<0: charic:=0; fi enddef;
+def zero_width = charwd:=0; r:=l-shrink_fit enddef;
+def change_width = if not monospace: % change width by $\pm1$
+ if r+shrink_fit-l=floor(charwd*hppp): w:=w+1; r:=r+1;
+ else: w:=w-1; r:=r-1; fi fi enddef;
+def padded expr del_sharp =
+ charht:=charht+del_sharp; chardp:=chardp+del_sharp enddef;
+
+def font_setup =
+ if monospace: let adjust_fit=mono_adjust_fit;
+ if true_mono: let normal_adjust_fit=mono_adjust_fit; fi
+ def mfudged=fudged enddef;
+ mono_charic#:=body_height#*slant;
+ if mono_charic#<0: mono_charic#:=0; fi
+ mono_charwd#:=9u#; define_whole_pixels(mono_charwd);
+ else: let adjust_fit=normal_adjust_fit;
+ def mfudged= enddef; fi
+ if math_fitting: let math_fit=do_math_fit
+ else: let math_fit=ignore_math_fit fi;
+ define_pixels(u,width_adj,serif_fit,cap_serif_fit,jut,cap_jut,beak,
+ bar_height,dish,bracket,beak_jut,stem_corr,vair_corr,apex_corr);
+ define_blacker_pixels(notch_cut,cap_notch_cut);
+ forsuffixes $=notch_cut,cap_notch_cut: if $<3: $:=3; fi endfor
+ define_whole_pixels(letter_fit,fine,crisp,tiny);
+ define_whole_vertical_pixels(body_height,asc_height,
+ cap_height,acc_height,fig_height,x_height,comma_depth,desc_depth,serif_drop);
+ define_whole_blacker_pixels(thin_join,hair,stem,curve,flare,
+ dot_size,cap_hair,cap_stem,cap_curve);
+ define_whole_vertical_blacker_pixels(vair,bar,slab,cap_bar,cap_band);
+ define_corrected_pixels(o,apex_o);
+ forsuffixes $=hair,stem,cap_stem:
+ fudged$.#:=fudge*$.#; fudged$:=hround(fudged$.#*hppp+blacker);
+ forever: exitif fudged$>.9fudge*$; fudged$:=fudged$+1; endfor endfor
+ rule_thickness:=ceiling(rule_thickness#*hppp);
+ heavy_rule_thickness:=ceiling(3rule_thickness#*hppp);
+ oo:=vround(.5o#*hppp*o_correction)+eps;
+ apex_oo:=vround(.5apex_o#*hppp*o_correction)+eps;
+ lowres_fix(stem,curve,flare) 1.3;
+ lowres_fix(stem,curve) 1.2;
+ lowres_fix(cap_stem,cap_curve) 1.2;
+ lowres_fix(hair,cap_hair) 1.2;
+ lowres_fix(cap_band,cap_bar,bar,slab) 1.2;
+ stem':=hround(stem-stem_corr); cap_stem':=hround(cap_stem-stem_corr);
+ vair':=vround(vair+vair_corr);
+ vstem:=vround .8[vair,stem]; cap_vstem:=vround .8[vair,cap_stem];
+ ess:=(ess#/stem#)*stem; cap_ess:=(cap_ess#/cap_stem#)*cap_stem;
+ dw:=(curve#-stem#)*hppp; bold:=curve#*hppp+blacker;
+ dh#:=.6designsize;
+ stem_shift#:=if serifs: 2stem_corr# else: 0 fi;
+ more_super:=max(superness,sqrt .77superness);
+ hein_super:=max(superness,sqrt .81225258superness); % that's $2^{-.3}$
+ clear_pen_memory;
+ if fine=0: fine:=1; fi
+ forsuffixes $=fine,crisp,tiny:
+%%% fine $ %%%% temporary formatting convention for MFT
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor endfor
+%%% @ $ %%%% restore ordinary formatting for $
+ min_Vround:=max(fine.breadth,crisp.breadth,tiny.breadth);
+ if min_Vround<vround min_Vround: min_Vround:=vround min_Vround; fi
+ if flare<vround flare: flare:=vround flare; fi
+ forsuffixes $=vair,bar,slab,cap_bar,cap_band,vair',vstem,cap_vstem,bold:
+ if $<min_Vround: $:=min_Vround; fi endfor
+ pickup pencircle scaled min(hair,vair); extra_rule.nib :=savepen;
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ math_axis:=good.y(math_axis#*hppp);
+ pickup pencircle scaled if hefty:(.6[vair,fudged.hair]) else:fudged.hair fi;
+ light_rule.nib:=savepen;
+ currenttransform:=identity slanted slant
+ yscaled aspect_ratio scaled granularity;
+ if currenttransform=identity: let t_=relax
+ else: def t_ = transformed currenttransform enddef fi;
+ numeric paren_depth#; .5[body_height#,-paren_depth#]=math_axis#;
+ numeric asc_depth#; .5[asc_height#,-asc_depth#]=math_axis#;
+ body_depth:=desc_depth+body_height-asc_height;
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode: if mode<=smoke: shrink_fit:=0; fi fi
+ enddef;
+
+def shiftdef(suffix $)(expr delta) =
+ vardef $ primary x = x+delta enddef enddef;
+
+def makebox(text rule) =
+ for y=0,(cap_height+acc_height),
+ asc_height,body_height,x_height,bar_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+
+ for y=-3.5pt,8.5pt,(x_height+acc_height):
+ rule((l-4pt,y)t_,(l-2pt,y)t_); endfor
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(l/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+
+ for x=0.5w:
+ rule((x,-body_depth-1pt)t_,(x,-body_depth-1.5pt)t_);
+ rule((x,cap_height+acc_height+1pt)t_,(x,cap_height+acc_height+1.5pt)t_);
+ endfor
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+ enddef;
+def maketicks(text rule) =
+ for y=0,h.o_,-d.o_:
+ rule((l,y),(l+10,y)); rule((r-10,y),(r,y)); endfor % horizontals
+ for x=l,r:
+ rule((x,10-d.o_),(x,-d.o_)); rule((x,h.o_-10),(x,h.o_)); endfor % verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_-10),(r+charic*pt,h.o_)); fi % italic correction
+ enddef;
+rulepen:=pensquare;
+
+vardef stroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l:
+ errmessage "Beware: `stroke' isn't intended for cycles"; fi
+ path_.l -- reverse path_.r -- cycle enddef;
+
+vardef circ_stroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l:
+ errmessage "Beware: `stroke' isn't intended for cycles"; fi
+ path_.l -- reverse path_.r .. cycle enddef;
+
+vardef super_arc.r(suffix $,$$) = % outside of super-ellipse
+ pair center,corner;
+ if y$=y$r: center=(x$$r,y$r); corner=(x$r,y$$r);
+ else: center=(x$r,y$$r); corner=(x$$r,y$r); fi
+ z$.r{corner-z$.r}...superness[center,corner]{z$$.r-z$.r}
+ ...{z$$.r-corner}z$$.r enddef;
+
+vardef super_arc.l(suffix $,$$) = % inside of super-ellipse
+ pair center,corner;
+ if y$=y$r: center=(x$$l,y$l); corner=(x$l,y$$l);
+ else: center=(x$l,y$$l); corner=(x$$l,y$l); fi
+ z$l{corner-z$l}...superness[center,corner]{z$$l-z$l}
+ ...{z$$l-corner}z$$l enddef;
+
+vardef pulled_super_arc.r(suffix $,$$)(expr superpull) =
+ pair center,corner;
+ if y$=y$r: center=(x$$r,y$r); corner=(x$r,y$$r);
+ else: center=(x$r,y$$r); corner=(x$$r,y$r); fi
+ z$r{corner-z$r}...superness[center,corner]{z$$r-z$r}
+ ...{z$$r-corner}z$$r enddef;
+
+vardef pulled_super_arc.l(suffix $,$$)(expr superpull) =
+ pair center,corner,outer_point;
+ if y$=y$r: center=(x$$l,y$l); corner=(x$l,y$$l);
+ outer_point=superness[(x$$r,y$r),(x$r,y$$r)];
+ else: center=(x$l,y$$l); corner=(x$$l,y$l);
+ outer_point=superness[(x$r,y$$r),(x$$r,y$r)]; fi
+ z$l{corner-z$l}
+ ...superpull[superness[center,corner],outer_point]{z$$l-z$l}
+ ...{z$$l-corner}z$$l enddef;
+
+vardef pulled_arc@#(suffix $,$$) =
+ pulled_super_arc@#($,$$)(superpull) enddef;
+
+vardef serif_arc(suffix $,$$) =
+ z${x$$-x$,0}...(.75[x$,x$$],.25[y$,y$$]){z$$-z$}...{0,y$$-y$}z$$ enddef;
+
+vardef penpos@#(expr b,d) =
+ if known b: if b<=0:
+ errmessage "bad penpos (width is negative)"; fi fi
+ (x@#r-x@#l,y@#r-y@#l)=(b,0) rotated d;
+ x@#=.5(x@#l+x@#r); y@#=.5(y@#l+y@#r) enddef;
+
+newinternal currentbreadth;
+vardef pos@#(expr b,d) =
+ if known b: if b<=currentbreadth:
+ errmessage "bad pos (breadth of current pen wider than pos width)"; fi fi
+ (x@#r-x@#l,y@#r-y@#l)=(b-currentbreadth,0) rotated d;
+ x@#=.5(x@#l+x@#r); y@#=.5(y@#l+y@#r) enddef;
+def numeric_pickup_ primary q =
+ currentpen:=pen_[q];
+ pen_lft:=pen_lft_[q]; pen_rt:=pen_rt_[q];
+ pen_top:=pen_top_[q]; pen_bot:=pen_bot_[q];
+ currentpen_path:=pen_path_[q];
+ if known breadth_[q]: currentbreadth:=breadth_[q]; fi enddef;
+
+vardef ic# = charic enddef;
+vardef h# = charht enddef;
+vardef w# = charwd enddef;
+vardef d# = chardp enddef;
+
+let {{=begingroup; let }}=endgroup;
+def .... = .. tension atleast .9 .. enddef;
+def less_tense = save ...; let ...=.... enddef;
+def ?? = hide(showvariable x,y) enddef;
+
+let semi_ =;; let colon_ = :; let endchar_ = endchar;
+def iff expr b = if b:let next_=use_it else:let next_=lose_it fi; next_ enddef;
+def use_it = let : = restore_colon; enddef;
+def restore_colon = let : = colon_; enddef;
+def lose_it = let endchar=fi; inner ecchar; let ;=fix_ semi_ if false enddef;
+def fix_=let ;=semi_; let endchar=endchar_; outer ecchar; enddef;
+def always_iff = let : = endgroup; killboolean enddef;
+def killboolean text t = use_it enddef;
+outer ecchar;
+
+%%% fine hi higher
+% |higher| is a counterpart to |lower| (see the file excsc.mf),
+% |hi| facilitates using higher values (which are reference points in
+% the floating world of CM fonts)
+def hi = if is_small_cap: higher fi\\ enddef;
+
+%
+% special routines for accenting
+%
+vardef uppercase_hat
+ (expr x_center,y_move,hat_zero,hat_one,hat_two,hat_three,hat_four) =
+if serifs:
+ pickup crisp.nib;
+ pos[hat_two](.5[vair,curve],90);
+ top y[hat_two]r=cap_accent_height+oo;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+% |accent_gap| is defined by the acute accent, it is known when needed
+ y[hat_one]=y[hat_three] = accent_gap + cap_height;
+ pos[hat_one](hair,angle(z[hat_two]-z[hat_one])+90);
+ pos[hat_three](hair,angle(z[hat_three]-z[hat_two])+90);
+ filldraw stroke z[hat_one]e--z[hat_two]e--z[hat_three]e; % diagonals
+else:
+ pickup fine.nib;
+ pos[hat_one](vair,0);
+ pos[hat_three](vair,0);
+ pos[hat_two](stem,0);
+ top y[hat_two]=cap_accent_height+oo;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+% |accent_gap| is defined by the acute accent, it is known when needed
+ bot y[hat_one]=bot y[hat_three]=.5accent_gap + cap_height;
+ z[hat_zero]=whatever[z[hat_one]r,z[hat_two]r]=
+ whatever[z[hat_two]l,z[hat_three]l];
+ y[hat_four]l=y[hat_four]r=y[hat_two];
+ x[hat_four]l=good.x .2[x[hat_two]l,x[hat_two]];
+ x[hat_four]r=w-x[hat_four]l;
+ filldraw z[hat_four]l--z[hat_one]l--z[hat_one]r--
+ z[hat_zero]--z[hat_three]l--
+ z[hat_three]r--z[hat_four]r--cycle; fi % diagonals
+enddef;
+%
+vardef lowercase_hat
+ (expr x_center,y_move,hat_zero,hat_one,hat_two,hat_three,hat_four) =
+if serifs:
+ pickup crisp.nib;
+ pos[hat_two](.5[vair,curve],90);
+ top y[hat_two]r=h+y_move;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+ y[hat_one]=y[hat_three] =
+ max(y[hat_two]-0.5(min(asc_height,2x_height)-x_height),
+ 1/6[x_height,h]);
+ pos[hat_one](hair,angle(z[hat_two]-z[hat_one])+90);
+ pos[hat_three](hair,angle(z[hat_three]-z[hat_two])+90);
+ filldraw stroke z[hat_one]e--z[hat_two]e--z[hat_three]e; % diagonals
+else:
+ pickup fine.nib;
+ pos[hat_one](vair,0);
+ pos[hat_three](vair,0);
+ pos[hat_two](stem,0);
+ top y[hat_two]=h+y_move;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+ bot y[hat_one]=bot y[hat_three]=vround (2/3[h,x_height]-eps);
+ % same slope as in the acute accent
+ z[hat_zero]=whatever[z[hat_one]r,z[hat_two]r]=
+ whatever[z[hat_two]l,z[hat_three]l];
+ y[hat_four]l=y[hat_four]r=y[hat_two];
+ x[hat_four]l=good.x .2[x[hat_two]l,x[hat_two]];
+ x[hat_four]r=w-x[hat_four]l;
+ filldraw z[hat_four]l--z[hat_one]l--z[hat_one]r--
+ z[hat_zero]--z[hat_three]l--
+ z[hat_three]r--z[hat_four]r--cycle; fi % diagonals
+enddef;
+%
+%
+vardef lowercase_tilde(expr x_move,y_move,tilde_one,tilde_two,tilde_three,
+ tilde_four,tilde_five)=
+h':=min(asc_height,10/7x_height+.5dot_size);
+if serifs: numeric theta;
+ theta=angle(1/6(
+ 6u if monospace: /expansion_factor fi-vair),
+ 1/4(h'-x_height));
+ pickup crisp.nib;
+ numeric mid_width; mid_width=.4[vair,stem];
+ pos[tilde_one](vair,theta+90);
+ pos[tilde_two](vair,theta+90);
+ pos[tilde_three](vair,theta+90);
+ pos[tilde_four](vair,theta+90);
+ z[tilde_two]-z[tilde_one]=
+ z[tilde_four]-z[tilde_three]=(mid_width-crisp)*dir theta;
+ lft x[tilde_one]r=hround(x_move+0.5w-3u if monospace: /expansion_factor fi);
+ rt x[tilde_four]l=hround(x_move+0.5w+3u if monospace: /expansion_factor fi);
+ top y[tilde_four]r=h';
+ pair delta;
+ ypart delta=3(y[tilde_three]l-y[tilde_one]l);
+ delta=whatever*dir theta;
+ bot y[tilde_one]l=vround(bot y[tilde_one]l+
+ min(2/3[x_height,h'],y[tilde_three]l-.25vair)-top y[tilde_one]r);
+ filldraw z[tilde_one]l..
+ controls(z[tilde_one]l+
+ delta)and(z[tilde_three]l-delta)..z[tilde_three]l..z[tilde_four]l
+ --z[tilde_four]r..
+ controls(z[tilde_four]r-delta)and(z[tilde_two]r+delta)..
+ z[tilde_two]r..z[tilde_one]r--cycle; % stroke
+else:
+ pickup fine.nib;
+ pos[tilde_one](vair,180);
+ pos[tilde_two](vair,90);
+ pos[tilde_three](.5[vair,slab],90);
+ pos[tilde_four](vair,90);
+ pos[tilde_five](vair,180);
+ lft x[tilde_one]r=hround (x_move + 0.5w-3u);
+ rt x[tilde_five]l=hround (x_move + 0.5w+3u);
+ x[tilde_two]-x[tilde_one]=
+ x[tilde_three]-x[tilde_two]=
+ x[tilde_four]-x[tilde_three]=x[tilde_five]-x[tilde_four];
+ bot y[tilde_one]=bot y[tilde_four]l=y_move+vround(.75[x_height,h]-vair);
+ top y[tilde_two]r=top y[tilde_five]=h+y_move;
+ y[tilde_three]=.5[y[tilde_two],y[tilde_four]];
+ filldraw stroke
+ z[tilde_one]e{up}...
+ z[tilde_two]e{right}..
+ z[tilde_three]e..
+ {right}z[tilde_four]e...{up}z[tilde_five]e; fi % stroke
+enddef;
+
+%
+vardef uppercase_tilde(expr x_move,y_move,tilde_one,tilde_two,tilde_three,
+ tilde_four,tilde_five)=
+if serifs: numeric theta;
+ theta=angle(1/8(7u if monospace: /expansion_factor fi-vair),1/4acc_height);
+ pickup crisp.nib;
+ numeric mid_width; mid_width=.4[vair,stem];
+ pos[tilde_one](vair,theta+90);
+ pos[tilde_two](vair,theta+90);
+ pos[tilde_three](vair,theta+90);
+ pos[tilde_four](vair,theta+90);
+ z[tilde_two]-z[tilde_one]=
+ z[tilde_four]-z[tilde_three]=(mid_width-crisp)*dir theta;
+ lft x[tilde_one]r=hround(x_move+0.5w-3.5u if monospace: /expansion_factor fi);
+ rt x[tilde_four]l=hround(x_move+0.5w+3.5u if monospace: /expansion_factor fi);
+ top y[tilde_four]r=h;
+% |accent_gap| is defined by the acute accent, it is known when needed
+% bot y[tilde_one]l=accent_gap+cap_height;
+ bot y[tilde_one]l=vround(bot y[tilde_one]l
+ +min(2/3[cap_height,cap_accent_height],y[tilde_three]l-.25vair)
+ -top y[tilde_one]r);
+ pair delta;
+ ypart delta=3(y[tilde_three]l-y[tilde_one]l);
+ delta=whatever*dir theta;
+ filldraw z[tilde_one]l..
+ controls(z[tilde_one]l+
+ delta)and(z[tilde_three]l-delta)..z[tilde_three]l..z[tilde_four]l
+ --z[tilde_four]r..
+ controls(z[tilde_four]r-delta)and(z[tilde_two]r+delta)..
+ z[tilde_two]r..z[tilde_one]r--cycle; % stroke
+else:
+ pickup fine.nib;
+ pos[tilde_one](vair,180);
+ pos[tilde_two](vair,90);
+ pos[tilde_three](.5[vair,slab],90);
+ pos[tilde_four](vair,90);
+ pos[tilde_five](vair,180);
+ lft x[tilde_one]r=w-rt x[tilde_five]l=hround 1.5u+0.5(w-9u);
+ x[tilde_two]-x[tilde_one]=
+ x[tilde_three]-x[tilde_two]=
+ x[tilde_four]-x[tilde_three]=x[tilde_five]-x[tilde_four];
+% |accent_gap| is defined by the acute accent, it is known when needed
+ bot y[tilde_one]=bot y[tilde_four]l=cap_height+.5accent_gap;
+ top y[tilde_two]r=top y[tilde_five]=h;
+ y[tilde_three]=.5[y[tilde_two],y[tilde_four]];
+ filldraw stroke
+ z[tilde_one]e{up}...
+ z[tilde_two]e{right}..
+ z[tilde_three]e..
+ {right}z[tilde_four]e...{up}z[tilde_five]e; fi % stroke
+enddef;
+%
+%
+%
+vardef lowercase_umlaut(expr x_move,y_move,umlaut_one,umlaut_two,
+ umlaut_three,umlaut_four) =
+pickup tiny.nib;
+pos[umlaut_one](udot_diam,0);
+pos[umlaut_two](udot_diam,90);
+x[umlaut_one]=x[umlaut_two]=x_move+.5w-1.75u if monospace:/expansion_factor fi ;
+top y[umlaut_two]r=lc_trema_height;
+y[umlaut_one]=y_move+.5[y[umlaut_two]l,y[umlaut_two]r];
+dot([umlaut_one],[umlaut_two]); % left dot
+pos[umlaut_three](udot_diam,0);
+penpos[umlaut_four](y[umlaut_two]r-y[umlaut_two]l,90);
+y[umlaut_three]=y[umlaut_four]=y[umlaut_one];
+x[umlaut_three]=x[umlaut_four]=x[umlaut_one]
+ +3.5u if monospace: /expansion_factor fi ;
+dot([umlaut_three],[umlaut_four]); % right dot
+enddef;
+%
+vardef uppercase_umlaut(expr x_move,y_move,umlaut_one,umlaut_two,
+ umlaut_three,umlaut_four) =
+pickup tiny.nib;
+pos[umlaut_one](udot_diam,0);
+pos[umlaut_two](udot_diam,90);
+x[umlaut_one]=x[umlaut_two]=x_move+.5w-1.75u if monospace:/expansion_factor fi ;
+top y[umlaut_two]r=vround(cap_height+dot_height#*hppp);
+y[umlaut_one]=y_move+.5[y[umlaut_two]l,y[umlaut_two]r];
+dot([umlaut_one],[umlaut_two]); % left dot
+pos[umlaut_three](udot_diam,0);
+penpos[umlaut_four](y[umlaut_two]r-y[umlaut_two]l,90);
+y[umlaut_three]=y[umlaut_four]=y[umlaut_one];
+x[umlaut_three]=x[umlaut_four]=x[umlaut_one]
+ +3.5u if monospace: /expansion_factor fi ;
+dot([umlaut_three],[umlaut_four]); % right dot
+enddef;
+%
+%
+vardef lowercase_circle(expr
+ x_center,y_bottom,circ_one,circ_two,circ_three,circ_four)=
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u if monospace: /expansion_factor fi +.5);
+circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos[circ_one](circ_vair,90); penpos[circ_three](circ_vair,-90);
+penpos[circ_two](circ_hair,180); penpos[circ_four](circ_hair,0);
+x[circ_one]=x[circ_three]=x_center; %
+x[circ_two]r=hround(x[circ_one]-1.5u-.5circ_hair);
+x[circ_four]r=hround(x[circ_one]+1.5u+.5circ_hair);
+y[circ_one]r=h+apex_o;
+y[circ_two]=y[circ_four]=.5[y[circ_one],y[circ_three]];
+y[circ_three]l=vround y_bottom; % (1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e([circ_one],[circ_two])
+ & pulled_arc.e([circ_two],[circ_three])
+ & pulled_arc.e([circ_three],[circ_four])
+ & pulled_arc.e([circ_four],[circ_one]) & cycle; % bowl
+enddef;
+%
+vardef uppercase_circle(expr
+ x_center,y_bottom,circ_one,circ_two,circ_three,circ_four)=
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u if monospace: /expansion_factor fi +.5);
+circ_vair=vround vair; % min(vair,(h-x_height)/6+.5);
+penpos[circ_one](circ_vair,90); penpos[circ_three](circ_vair,-90);
+penpos[circ_two](circ_hair,180); penpos[circ_four](circ_hair,0);
+x[circ_one]=x[circ_three]=x_center; % .5w;
+x[circ_two]r
+ = hround(x[circ_one]-1.5u if monospace: /expansion_factor fi -.5circ_hair);
+x[circ_four]r
+ = hround(x[circ_one]+1.5u if monospace: /expansion_factor fi +.5circ_hair);
+y[circ_one]r=cap_height + acc_height+apex_o;
+y[circ_two]=y[circ_four]=.5[y[circ_one],y[circ_three]];
+y[circ_three]l=vround y_bottom; % (1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e([circ_one],[circ_two])
+ & pulled_arc.e([circ_two],[circ_three])
+ & pulled_arc.e([circ_three],[circ_four])
+ & pulled_arc.e([circ_four],[circ_one]) & cycle; % bowl
+enddef;
+%
+%
+vardef lowercase_cedilla (expr x_center,y_move,
+ cedi_one,cedi_two,cedi_three,cedi_four,cedi_five) =
+x[cedi_one]=x_center; % .5w+.5u;
+if serifs:
+ pickup crisp.nib;
+ pos[cedi_one](stem,0);
+ pos[cedi_two](stem,0);
+ pos[cedi_three](vair,90);
+ pos[cedi_four](stem,0);
+ pos[cedi_five](vair,-90);
+ x[cedi_one]=x[cedi_two];
+ z[cedi_three]l=z[cedi_two]l;
+ x[cedi_four]=x[cedi_two]+1.5u;
+ x[cedi_five]=x[cedi_three]-1.5u;
+ bot y[cedi_one]=0;
+ bot y[cedi_two]=-vround 2/7d-o;
+ y[cedi_four]=.5[y[cedi_three],y[cedi_five]];
+ bot y[cedi_five]=-d-o;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; % stem
+ filldraw stroke z[cedi_three]e{right}...
+ z[cedi_four]e{down}...{left}z[cedi_five]e; % hook
+else: pickup fine.nib; pos[cedi_one](vair,0); top y[cedi_one]=-o-2;
+ pos[cedi_two](.5[vair,stem],0);
+ bot y[cedi_two]=-d-o; x[cedi_two]=x[cedi_one]-1.25u;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; fi % diagonal
+enddef;
+%
+vardef uppercase_cedilla(expr x_center,y_move,
+ cedi_one,cedi_two,cedi_three,cedi_four,cedi_five) =
+x[cedi_one]=x_center;;
+if serifs:
+ pickup crisp.nib;
+ pos[cedi_one](stem,0);
+ pos[cedi_two](stem,0);
+ pos[cedi_three](vair,90);
+ pos[cedi_four](stem,0);
+ pos[cedi_five](vair,-90);
+ x[cedi_one]=x[cedi_two];
+ z[cedi_three]l=z[cedi_two]l;
+ x[cedi_four]=x[cedi_two]+1.5u if monospace: /expansion_factor fi;
+ x[cedi_five]=x[cedi_three]-1.5u if monospace: /expansion_factor fi;
+ top y[cedi_one]=y_move;
+ bot y[cedi_two]=-vround 2/7d-o;
+ y[cedi_four]=.5[y[cedi_three],y[cedi_five]];
+ bot y[cedi_five]=-d-o;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; % stem
+ filldraw stroke z[cedi_three]e{right}...
+ z[cedi_four]e{down}...{left}z[cedi_five]e; % hook
+else: pickup fine.nib; pos[cedi_one](vair,0);
+ top y[cedi_one]=-o-2;
+ pos[cedi_two](.5[vair,stem],0);
+ bot y[cedi_two]=-d-o; x[cedi_two] =
+ x[cedi_one]-1.25u if monospace: /expansion_factor fi;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; fi % diagonal
+enddef;
+%
+%
+vardef lowercase_breve(expr x_center,y_move,breve_one,breve_two,breve_three)=
+pickup crisp.nib; pos[breve_one](vair,-180);
+pos[breve_three](vair,0);
+top y[breve_one]=top y[breve_three]=h;
+x[breve_two]=x_center;
+lft x[breve_one]r=hround(x[breve_two]-2.5u
+ if monospace: /expansion_factor fi -0.5vair);
+rt x[breve_three]r=hround(x[breve_two]+2.5u
+ if monospace: /expansion_factor fi +0.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos[breve_two](mid_thickness,-90);
+bot y[breve_two]r=
+ vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z[breve_one]e{down}...
+ z[breve_two]e{right}...{up}z[breve_three]e; % stroke
+enddef;
+%
+vardef uppercase_breve (expr x_center,y_move,breve_one,
+ breve_two,breve_three)=
+pickup crisp.nib; pos[breve_one](vair,-180);
+pos[breve_three](vair,0);
+top y[breve_one]=top y[breve_three]=cap_height + acc_height;
+x[breve_two]=hround x_center;
+x[breve_two]-rt x[breve_one]l
+ =(lft x[breve_three]l)-x[breve_two]
+ =hround (2.5u if monospace: /expansion_factor fi -.5vair);
+numeric mid_thickness;
+mid_thickness=vround min(1/3[vair,stem],.5acc_height);
+pos[breve_two](mid_thickness,-90);
+% |accent_gap| is defined by the acute accent, it is known when needed
+bot y[breve_two]r=cap_height + if hefty: .5 fi accent_gap;
+filldraw stroke z[breve_one]e{down}...z[breve_two]e{right}...
+ {up}z[breve_three]e; % stroke
+enddef;
+
+%
+vardef lowercase_ogonek(expr x_move,y_move,ogon_one,ogon_two,ogon_three) =
+x[ogon_one]r=x_move;
+ pickup crisp.nib;
+ pos[ogon_one](
+ if currentbreadth<0.9vair: 0.9vair else: currentbreadth+eps fi,-60);
+ pos[ogon_two](stem,0);
+ pos[ogon_three](vair,145);
+ x[ogon_two]=x[ogon_one]-2.5u if monospace: / expansion_factor fi ;
+ x[ogon_three]=x[ogon_one]+0.5u if monospace: / expansion_factor fi ;
+ bot y[ogon_one]r = y_move;
+ bot y[ogon_three]=0.5(-d-o)+y_move; %0.4
+ bot y[ogon_two]=0.5(-d-o)+y_move;
+ filldraw stroke z[ogon_one]e{dir 225}...
+ z[ogon_two]e{dir -110}...{dir 60}z[ogon_three]e; % hook
+enddef;
+
+% ---------------------------------------------------------------------------
+% MACROS FOR PROCESSING CHARS TWICE:
+% PASS 1: COLLECTING TFM (SHARP) INFORMATION
+% PASS 2: CREATING THE GLYPH
+% ---------------------------------------------------------------------------
+%%% define_pixels prepare_pen
+%%% beginchar beginchar_twice
+%%% endfor repeat_once
+
+% A special provision is necessary if one uses |modes.mf|:
+% This file assumes, that one never wants to use more than one mode
+% in the same font, but we will do so.
+%
+% Make sure, that you never input |modes.mf| after this file, otherwise
+% unpleasant surprises wait for you.
+
+def clear_mode_guards =
+ forsuffixes $=proofing,fontmaking,tracingtitles,pixels_per_inch,
+ blacker,fillin,o_correction,blacker_min,aspect_ratio:
+ numeric mode_guard_$;
+ endfor
+enddef;
+
+let ori_draw:=draw;
+let ori_fill:=fill;
+let ori_filldraw:=filldraw;
+let ori_erase:=erase;
+let ori_penstroke:=penstroke;
+let ori_special:=special;
+let ori_numspecial:=numspecial;
+
+mode_def canonical_sharp_mode = % nearly |proof| mode
+ proofing:=0; % no, we aren't making full proofs
+ fontmaking:=0; % yes, we are making a font
+ tracingtitles:=0; % don't show titles online
+ pixels_per_inch:=2601.72; % that's 36 pixels per pt
+ blacker:=0; % no additional blackness
+ blacker_min:=0; % no write_white provision
+ fillin:=0; % no compensation for fillin
+ o_correction:=1; % no reduction in overshoot
+enddef;
+
+def beginchar_twice(expr c,w_sharp,h_sharp,d_sharp) =
+ begingroup
+ if string mode: string prev_mode; prev_mode:=mode;
+ else: numeric prev_mode; prev_mode:=mode;
+ fi
+ for sharp_calc_:=1,whatever:
+% |sharp_calc| is checked in |corrital|, |mark_height|, and |put_accent|
+ sharp_calc:=sharp_calc_;
+ if known sharp_calc: % carry out ``sharp'' calculations
+ begingroup save mode,mag; mode:=canonical_sharp_mode;
+ clear_mode_guards; mode_setup; font_setup; pseudo_setup;
+ if is_small_cap: % excerpt from |font_setup|
+ define_pixels(higher.u,higher.bar_height);
+ define_corrected_pixels(higher.o);
+ define_whole_pixels(higher.letter_fit);
+ define_whole_vertical_pixels(higher.x_height,higher.body_height);
+ define_whole_blacker_pixels(higher.stem);
+ fi
+ endgroup;
+ def draw expr e=enddef;
+ let fill:=draw;
+ let filldraw:=draw;
+ let erase:=killtext; % |killtext| was absent from earlier versions of plain
+ let penstroke:=killtext;
+ def special primary t = enddef;
+ def numspecial primary t = enddef;
+ charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp; charic:=0;
+ else: % carry out ``discrete'' calculations
+ mode:=prev_mode;
+ clear_mode_guards; mode_setup; font_setup; pseudo_setup;
+ if is_small_cap: % excerpt from |font_setup|
+ define_pixels(higher.u,higher.bar_height);
+ define_corrected_pixels(higher.o);
+ define_whole_pixels(higher.letter_fit);
+ define_whole_vertical_pixels(higher.x_height,higher.body_height);
+ define_whole_blacker_pixels(higher.stem);
+ fi
+ let draw:=ori_draw;
+ let fill:=ori_fill;
+ let filldraw:=ori_filldraw;
+ let erase:=ori_erase;
+ let penstroke:=ori_penstroke;
+ let special:=ori_special;
+ let numspecial:=ori_numspecial;
+ charwd:=w_sharp;
+ fi
+ charcode:=if known c: byte c else: 0 fi;
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+ clearxy; clearit; clearpen; scantokens extra_beginchar;
+enddef;
+
+let repeat_once = endfor;
+
+% ---------------------------------------------------------------------------
+%
+%
+%
+% some extra font parameters
+%
+def font_cap_height expr x = fontdimen 8: x enddef;
+def font_asc_height expr x = fontdimen 9: x enddef;
+def font_acc_cap_height expr x = fontdimen 10: x enddef;
+def font_desc_depth expr x = fontdimen 11: x enddef;
+def font_max_height expr x = fontdimen 12: x enddef;
+def font_max_depth expr x = fontdimen 13: x enddef;
+def font_digit_width expr x = fontdimen 14: x enddef;
+def font_cap_stem expr x = fontdimen 15: x enddef;
+def font_baselineskip expr x = fontdimen 16: x enddef;
+
+
+
+%
+% XXXXXXX The following routines generate the parameter
+% X X sets by extrapolation
+% X X
+% X X
+% X X
+% XXXX XXXX
+% X X
+% X X
+% X X
+% X X
+% X X
+% X
+%
+%
+% needed variables
+%
+
+vardef simple_gendef@#(text aa)(text t)=
+ string s[];
+ s1:="";
+ s2:=str @#;
+ index:=1;
+ forsuffixes $=t: ydata[index]:=$ if s1<>s2: *@# fi;
+ index:=index+1;
+ endfor;
+ if numpoints>(index-1): errmessage "Missing parameter"; message str aa; fi;
+ if numpoints<(index-1): errmessage "Too many parameters"; message str aa; fi;
+ aa:=ydata[merke];
+ if gencheck: message str aa fi;
+enddef;
+
+vardef extended_gendef@#(text aa)(text t)=
+ string s[];
+ s1:="";
+ s2:=str @#;
+ index:=1;
+ forsuffixes $=t: ydata[index]:=$ if s1<>s2: *@# fi;
+ index:=index+1;
+ endfor;
+ if numpoints>(index-1): errmessage "Missing parameter"; message str aa; fi;
+ if numpoints<(index-1): errmessage "Too many parameters"; message str aa; fi;
+ if gensize>basedata[numpoints]:
+ numeric hilf [];
+ hilf[1]:=(ydata[numpoints]-ydata[numpoints-1])/(basedata[numpoints]-basedata[numpoints-1]);
+ hilf[2]:=(ydata[numpoints]-ydata[numpoints-2])/(basedata[numpoints]-basedata[numpoints-2]);
+ hilf[3]:=ydata[numpoints]-hilf1*basedata[numpoints];
+ hilf[4]:=ydata[numpoints]-hilf2*basedata[numpoints];
+ spy:=(hilf[1]*gensize+hilf[3])/2+(hilf[2]*gensize+hilf[4])/2;
+ aa:=spy;
+ else:
+ for index = 1 upto numpoints-1:
+ interval[index]:=basedata[index+1]-basedata[index];
+ endfor;
+ for index=1 upto numpoints:
+ spline[1][index]:=ydata[index];
+ endfor;
+ for index=2 upto numpoints-1:
+ alpha[index]:=3*((spline[1][index+1]*interval[index-1])%
+ -(spline[1][index]*(basedata[index+1]-basedata[index-1]))%
+ +(spline[1][index-1]*interval[index]))%
+ /(interval[index-1]*interval[index]);
+ endfor;
+ spl[1]:=0;
+ spmu[1]:=0;
+ spz[1]:=0;
+ for index=2 upto numpoints-1:
+ spl[index]:=2*(basedata[index+1]-basedata[index-1])%
+ -interval[index-1]*spmu[index-1];
+ spmu[index]:=interval[index]/spl[index];
+ spz[index]:=(alpha[index]-interval[index-1]*spz[index-1])/spl[index];
+ endfor;
+ spline[3][numpoints]:=0;
+ for index=numpoints-1 downto 1:
+ spline[3][index]:=spz[index]-spmu[index]*spline[3][index+1];
+ endfor;
+ for index=numpoints -1 downto 1:
+ spline[2][index]:=(spline[1][index+1]-spline[1][index])/interval[index]%
+ -interval[index]*(spline[3][index+1]*spline[3][index])/3;
+ spline[4][index]:=(spline[3][index+1]-spline[3][index])/(3*interval[index]);
+ endfor;
+ location:=1;
+ for term=1 upto numpoints-1:
+ if gensize > basedata[term]: location:=term; fi
+ endfor;
+ spx:=gensize-basedata[location];
+ spy:=((spline[4][location]*spx+spline[3][location])*spx+spline[2][location])*spx+spline[1][location];
+ aa:=spy; fi;
+ if gencheck: message str aa fi;
+enddef;
+
+vardef basedef(text t)=
+ boolean basevalue; boolean gencheck;
+ numeric index; numeric ergbnis; numeric location; numeric term;
+ numeric numpoints; numeric spx; numeric spy;
+ numeric basedata[]; numeric interval[]; numeric alpha[];
+ numeric spl[]; numeric spmu[]; numeric spz[];
+ numeric ydata[]; numeric spline[][];
+ basevalue:=false; gencheck:=false;
+ index:=1;
+ forsuffixes $=t: basedata[index]:=$;
+ if $=gensize: basevalue:=true; merke:=index; fi;
+ index:=index+1;
+ endfor;
+ numpoints:=index-1;
+ if numpoints<3: errmessage "Not enough reference points"; fi
+ if basevalue: def gendef=simple_gendef enddef; else:
+ def gendef=extended_gendef enddef; fi
+enddef;
+
+def clear_extra_memory= % Release ressources hold by the extrapolation routine
+ numeric index; numeric ergbnis; numeric location; numeric term;
+ numeric numpoints; numeric spx; numeric spy;
+ numeric basedata[]; numeric interval[]; numeric alpha[];
+ numeric spl[]; numeric spmu[]; numeric spz[];
+ numeric ydata[]; numeric spline[][];
+ numeric hilf []; string s[];
+enddef;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exbraces.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exbraces.mf
new file mode 100644
index 00000000000..60c5fa0d652
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exbraces.mf
@@ -0,0 +1,268 @@
+% exbraces.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0 Patchlevel 3
+%
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% braces and some special characters
+%
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Circumflex (hat)";
+beginchar(oct"136",11u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=.75[x_height,h]; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.25[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=2/3[x_height,h]; x2=.5w; bot y1=bot y3=vround x_height-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+
+
+ecchar "Tilde (squiggle)";
+beginchar(oct"176",11u#,min(asc_height#,
+ 10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+ecchar "Compound word mark";
+beginchar(oct"027",0,x_height#,0);
+zero_width;
+endchar;
+
+ecchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+ecchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+ecchar "Less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar("<",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar "Vertical line";
+beginchar(oct"174",5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+
+ecchar "Greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(">",14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+% if hefty:
+ top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-stem_corr);
+% else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+%if hefty:
+ top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-stem_corr);
+% else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+ecchar "Reverse slash (backslash)";
+beginchar(oct"134",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup extra_rule.nib;
+lft x1=hround u-eps; top y1=h+eps;
+rt x2=hround(w-u)+eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+labels(1,2); endchar;
+
+ecchar "Left curly brace";
+beginchar(oct"173",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Right curly brace";
+beginchar(oct"175",9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+
+
+ecchar "Underbar";
+compute_spread((5/8+.45)*x_height#,(3/4+.55)*x_height#);
+beginchar(oct"137",14u#,0,spread#-math_axis#+.5rule_thickness#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; bot y1=bot y2=-d;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+iff not monospace:
+ecchar "Hyphenchar";
+beginchar(oct"177",3u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(2w-u)+eps;
+lft x1=hround .2u-eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff monospace:
+ecchar "Hyphenchar";
+beginchar(oct"177",3u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+x2=w-x1;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff hefty: % Sans or typewriter
+ecchar "Blank-space sign";
+beginchar(oct"040",9u#,x_height#,.5desc_depth#);
+italcorr bar_height#*slant-.25u#;
+adjust_fit(0,0);
+numeric thin_vair#; thin_vair#=.7vair#;
+define_whole_blacker_pixels(thin_vair);
+h:=bar_height;
+forsuffixes $=1,2,3,4: penpos$(thin_vair,0); endfor
+penpos0(thin_vair,90); x0=.5w; y0l=vround(-d-.5thin_vair);
+x1=x2; x3=x4=w-x1; lft x1l=hround .75u;
+y1=y4=h; y2=y3=y0;
+fill z1l---z2l...(x2,y0l)---(x3,y0l)...z3r---z4r
+ ..z4l---(x3l,y0r)--(x2r,y0r)---z1r..cycle; % the stroke
+penlabels(0,1,2,3,4); endchar;
+
+iff not hefty: % Other than the above mentioned
+ecchar "Blank-space sign"; % jk
+beginchar(oct"040",9u#,x_height#,.5desc_depth#);
+italcorr bar_height#*slant-.25u#;
+adjust_fit(0,0);
+numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem];
+if shaved_stem<crisp.breadth: shaved_stem:=crisp.breadth; fi
+pickup crisp.nib;
+pos1(shaved_stem,-90); pos2(hair,0);
+bot y1r=-d; x1=.5w; rt x2r=hround(w-.75u); y2=good.y(y1l+.5beak)+eps;
+arm(1,2,a,beak_darkness,2beak_jut); % lower right arm and beak
+pos3(hair,180); x3=w-x2; y3=y2;
+arm(1,3,b,beak_darkness,-2beak_jut); % lower left arm and beak
+math_fit(0,.5ic#);
+penlabels(1,2,3); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/excligtb.mf b/Master/texmf-dist/fonts/source/jknappen/ec/excligtb.mf
new file mode 100644
index 00000000000..60256a333c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/excligtb.mf
@@ -0,0 +1,263 @@
+% excligtb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% ligatures and kerning for "caps and small caps" fonts
+%
+% This file should not be called for monospaced fonts !
+%
+% The following ligatures are integrated:
+%
+% --
+% ---
+% -<hyphenchar>
+% >>
+% <<
+% ``
+% ''
+% ,,
+% !` and ?`
+%
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ligtable
+ "-": "-" =: oct"025",
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+ligtable
+ oct"025": "-"=:oct"026"; % "---" => emdash
+
+ligtable "<": "<" =: oct"023"; % "<<"
+ligtable ">": ">" =: oct"024"; % ">>"
+ligtable ",": "," =: oct"022"; % ",,"
+ligtable "!": "`" =: oct"275"; % spanish shriek
+ligtable "?": "`" =: oct"276"; % spanish query
+
+
+ligtable
+ "`": "`"=:oct"020",
+ oct"020" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "'": "'"=:oct"021",
+ oct"021" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+%
+%
+def lig_o_table (expr k) =
+ "o" kern k, oct"256" kern k, oct"362" kern k, oct"363" kern k,
+ oct"364" kern k, oct"365" kern k, oct"366" kern k,
+ oct"367" kern k
+enddef;
+def lig_co_table =
+ "o": oct"256": oct"362": oct"363":
+ oct"364": oct"365": oct"366":
+ oct"367"
+enddef;
+%
+%
+def lig_a_table (expr k) =
+ "a" kern k, oct"240" kern k, oct"241" kern k, oct"340" kern k,
+ oct"341" kern k, oct"342" kern k,
+ oct"343" kern k, oct"344" kern k, oct"345" kern k,
+ oct"346" kern k
+enddef;
+def lig_A_table (expr k) =
+ "A" kern k, oct"200" kern k, oct"201" kern k, oct"300" kern k,
+ oct"301" kern k, oct"302" kern k,
+ oct"303" kern k, oct"304" kern k, oct"305" kern k
+enddef;
+def lig_ca_table =
+ "a": oct"241": oct"242": oct"340":
+ oct"341": oct"342":
+ oct"343": oct"344": oct"345":
+ oct"346"
+enddef;
+def lig_c_table (expr k) =
+ "c" kern k, oct"242" kern k, oct"243" kern k, oct"347" kern k
+enddef;
+def lig_CGQ_table (expr k) =
+ "C" kern k, "G" kern k, oct"202" kern k, oct"203" kern k,
+ oct"207" kern k, oct"307" kern k, "Q" kern k
+enddef;
+
+def lig_e_table (expr k)=
+ "e" kern k, oct"245" kern k, oct"246" kern k, oct"350" kern k,
+ oct"351" kern k, oct"352" kern k, oct"353" kern k
+enddef;
+
+def lig_u_table (expr k)=
+ "u" kern k, oct"266" kern k, oct"267" kern k, oct"371" kern k,
+ oct"372" kern k, oct"373" kern k, oct"374" kern k
+enddef;
+
+def lig_cA_table =
+ "A": oct"200": oct"201": oct"300": oct"301": oct"302":
+ oct"303": oct"304": oct"305"
+enddef;
+
+def lig_cO_table =
+ "O": oct"216": oct"322": oct"323": oct"324": oct"325":
+ oct"326": oct"330"
+enddef;
+
+def lig_O_table (expr k) =
+ "O" kern k,
+ oct"216" kern k, oct"322" kern k, oct"323" kern k,
+ oct"324" kern k, oct"325" kern k,
+ oct"326" kern k, oct"330" kern k
+enddef;
+
+def lig_U_table (expr k) =
+ "U" kern k, oct"226" kern k, oct"227" kern k, oct"331" kern k,
+ oct"332" kern k, oct"333" kern k, oct"334" kern k
+enddef;
+
+%
+%
+%
+%
+ k#:=-.5u#; ku#:=-1.0u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning
+
+ligtable boundarychar:
+ oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#,
+ oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#;
+
+ligtable oct"022":
+ oct"015" kern 2u#, "," kern 2u#,
+ oct"015":
+ oct"022" kern 2u#,
+ "y" kern ku#, oct"270" kern ku#, oct"375" kern ku#,
+ "v" kern ku#, "w" kern k#, "V" kern kkk#, "W" kern kk#, "Y" kern kk#,
+ oct"230" kern kk#, oct"335" kern kk#,
+ lig_O_table(k#), lig_CGQ_table(k#),
+ boundarychar kern -kk#;
+
+ligtable oct"020":
+ oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"021":
+ oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"024": % ">>"
+ "." kern kk#, "," kern kk#;
+
+ ligtable
+ "P":
+ "T":
+ "Y": "a" kern kk#,
+ lig_A_table(kk#);
+ ligtable
+ "F":
+ "V":
+ "W":
+ if serifs:
+ lig_a_table(kkk#),
+ lig_A_table(kkk#),
+ else:
+ lig_a_table(kk#),
+ lig_A_table(kk#),
+ fi
+ "K":
+ "X": lig_o_table(k#),
+ lig_O_table(k#),
+ lig_c_table(k#),
+ lig_CGQ_table(k#),
+ "g" kern k#, oct"247" kern k#,
+ "q" kern k#;
+ ligtable
+ "O":
+ "D": "x" kern k#,
+ "X" kern k#,
+ "w" kern k#,
+ "W" kern k#,
+ lig_a_table(k#),
+ lig_A_table(k#),
+ "v" kern k#,
+ "V" kern k#,
+ "y" kern k#, oct"375" kern k#, oct"270" kern k#,
+ "Y" kern k#, oct"335" kern k#, oct"230" kern k#;
+ ligtable
+ lig_cA_table:
+ if serifs:
+ "R":
+ fi
+ lig_c_table(k#),
+ lig_CGQ_table(k#),
+ lig_o_table(k#),
+ lig_O_table(k#),
+ "g" kern k#, oct"247" kern k#,
+ lig_u_table(k#),
+ lig_U_table(k#),
+ "q" kern k#,
+ "L":
+ "T" kern kk#, oct"224" kern kk#, oct"225" kern kk#,
+ "t" kern kk#, oct"264" kern kk#, oct"265" kern kk#,
+ "Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
+ "y" kern kk#, oct"270" kern kk#, oct"375" kern kk#,
+ "V" kern kkk#,
+ "v" kern kkk#,
+ "W" kern kkk#,
+ "w" kern kkk#;
+ ligtable
+ "I":
+ "I" kern -k#; % Richard III
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+ ligtable
+ "p":
+ "t":
+ "y": lig_a_table(kk#);
+ ligtable
+ "f":
+ "v":
+ "w":
+ if serifs:
+ lig_a_table(kkk#)
+ else:
+ lig_a_table(kk#)
+ fi,
+ "k":
+ "x": lig_o_table(k#),
+ lig_c_table(k#),
+ "g" kern k#, oct"247" kern k#,
+ "q" kern k#;
+ ligtable
+ lig_co_table:
+ "d": "x" kern k#,
+ "w" kern k#,
+ lig_a_table(k#),
+ "v" kern k#,
+ "y" kern k#, oct"270" kern k#, oct"375" kern k#;
+ ligtable
+ lig_ca_table:
+ if serifs: "r": fi
+ lig_c_table(k#),
+ lig_o_table(k#),
+ "g" kern k#, oct"247" kern k#,
+ lig_u_table(k#),
+ "q" kern k#,
+ "l": "'" kern kk#,
+ "t" kern kk#, oct"264" kern kk#, oct"265" kern kk#,
+ "y" kern kk#, oct"270" kern k#, oct"375" kern k#,
+ "v" kern kkk#,
+ "w" kern kkk#;
+ ligtable
+ "i": "i" kern -k#; % skiing
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/excsc.mf b/Master/texmf-dist/fonts/source/jknappen/ec/excsc.mf
new file mode 100644
index 00000000000..83e2b70883e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/excsc.mf
@@ -0,0 +1,122 @@
+% eccsc.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% driver file, called by parameter files for "caps and small caps" fonts
+%
+
+%
+% dx r l west
+% i u east
+% : : :
+% : : west '3xx / east '2xx
+% : uppercase/lowercase
+% roman / italic
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input exaccess; % accessories for polish special letters
+input expseudo; % pseudoparameters
+mode_setup; font_setup; pseudo_setup;
+
+input exruwest;
+input exrueast;
+input exrulett; % upper case (majuscules)
+
+input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040)
+input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !)
+
+input exsign; % zero for mille, " # $ % @ pound sign
+%
+input exromp; % (roman punctuation) & ? (spanish ?)
+%
+input exrdigit; % roman digits
+%
+
+boolean is_small_cap; is_small_cap:=true;
+%%% fine higher
+% the `higher' values are used while putting accents and attaching ogoneks
+forsuffixes $=u,o,letter_fit,x_height,bar_height,body_height,stem:
+ higher.$.#:=$.#; higher.$:=$;
+endfor
+
+%%% fine lower
+begingroup
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, dot_size, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: save $; $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+
+% optional part:
+forsuffixes $ = depth_corr, left_corr, top_breadth_corr, tip_breadth_corr,
+ tip_xcorr, tip_ycorr, pre_angle, post_angle, pre_limit, post_limit,
+ pre_lightness, post_lightness, pre_deflexion, post_deflexion, cap_flat,
+ ogonek_pen#: if known lower.$: $:=lower.$; fi
+endfor
+
+input expseudo; % Recalculate pseudoparameters
+
+font_setup; pseudo_setup; % now try again with |lower| settings
+
+input excspl; % dotless i,j; letter ligatures FF FI FL FFI FFL D-
+
+
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+code_offset:=ASCII"a" - ASCII"A";
+
+input exrulett; % upper case (majuscules)
+
+suppress_i_dot := true;
+
+input exruwest;
+input exrueast;
+
+code_offset:=0;
+input txpseudo; % Recalculate pseudoparameters for capital accents
+font_setup; pseudo_setup;
+input txaccent; % Accents for capital letters with small cap parameters
+
+endgroup;
+
+
+% Fontparameter
+%
+font_coding_scheme:="Extended TeX Font Encoding - Latin";
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (cap_height#+acc_height#);
+font_desc_depth desc_depth#;
+font_max_height (max(asc_height#,body_height#,
+ cap_height#+acc_height#));
+font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+font_baselineskip max(1.2*designsize,body_height#+paren_depth#);
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ input exmligtb; % do the monospace ligature programs
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ input excligtb; % do the ligature programs, not for monospaced fonts
+fi
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/excspl.mf b/Master/texmf-dist/fonts/source/jknappen/ec/excspl.mf
new file mode 100644
index 00000000000..d38d55962e5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/excspl.mf
@@ -0,0 +1,247 @@
+% excspl.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Metafont program for the characters in positions of ligatures
+% for the "caps and small caps" fonts
+%
+% I,J,FI,FL,FFI,FFL and D with bar
+%
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter I";
+beginchar(oct"031",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or slitex or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+ecchar "The letter J";
+beginchar(oct"032",9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+ecchar "The letter FF";
+beginchar(oct"033",2(11.5u#-width_adj#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the second F
+currentpicture:=currentpicture + currentpicture shifted (w',0);
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+ecchar "The letter FI";
+beginchar(oct"034",11.5u#-width_adj#+max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the I
+xshift:=w';
+w':=w-xshift;
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+if serifs or slitex or monospace:
+ dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut); % upper serif
+ dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+ecchar "The letter FL";
+beginchar(oct"035",(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the L
+xshift:=w';
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
+bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
+arm(13,14,eee,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut); % upper serif
+ nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+
+
+ecchar "The letter FFI";
+beginchar(oct"036",2(11.5u#-width_adj#)+max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the second F
+currentpicture:=currentpicture + currentpicture shifted (w',0);
+% the I
+xshift:=2w';
+w':=w-xshift;
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+if serifs or slitex or monospace:
+ dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut); % upper serif
+ dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+ecchar "The letter FFL";
+beginchar(oct"037",2(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the I
+currentpicture:=currentpicture + currentpicture shifted (w',0);
+% the L
+xshift:=2w';
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
+bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
+arm(13,14,eee,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut); % upper serif
+ nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+
+ecchar "The small caps letter (Eth) bar D";
+beginchar(oct"236",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% the bar
+pickup tiny.nib;
+y8=y9=y5;
+pos8(bar,90); pos9(bar,90);
+x9=x4;
+if serifs: x8=x2l-cap_jut; else: x8=.5u; fi;
+filldraw stroke z8e--z9e;
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exidigit.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exidigit.mf
new file mode 100644
index 00000000000..08b135f9476
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exidigit.mf
@@ -0,0 +1,278 @@
+% exidigit.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% italic numerals
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+% All digits have the same width
+
+font_digit_width 9u#;
+
+ecchar "Italic numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround(1.5u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+ecchar "Italic numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if one_serif: dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); fi % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=.8h+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u); tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..{left}z4e; % point
+penlabels(1,2,3,4); endchar;
+
+ecchar "Italic numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(curve,-360); pos7(hair,-405); pos8(hair,-360);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair);
+x3=.6[x2,x4]; lft x4r=hround(u-.5hair);
+x5=x7=.5w-.5u; rt x6r=hround(w-u); lft x8l=hround(1.5u-.5hair);
+y1=.5[x_height,h]; y2=1/3[y1,y3]; y4=x_height; bot y3r=vround .78y4;
+top y5r=h+o; y6=.5[y5,y7]; y7=.52y4; bot y8=-o;
+filldraw stroke if not hefty:z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6)
+ ...z7e{2(x7-x6),y7-y6}...{down}z8e; % main stroke
+pos9(vair,-90); pos10(vstem+curve-stem,-90); pos11(hair,0);
+x9=w-x10=2.5u; rt x11r=hround(w-.5u+.5hair);
+y9=.25[y10,y7]; bot y10r=-o; y11=.38x_height;
+filldraw stroke z8e{up}...z9e{right}..{right}z10e...{up}z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Italic numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(stem,-360); pos7(bar,-450); pos8(bar,-450);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
+x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
+y1=.5[x_height,h]; y2=.5[y1,y3]; y7=y8=.52h; bot y3r=vround 1/4[y7,h];
+y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
+filldraw stroke if not hefty: z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
+pos7'(vair,90); z7'l=z7r;
+pos9(curve,0); pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
+y9=.25h; bot y10r=-o; y11=1/3x_height; bulb(10,11,12); % bulb
+filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar "Italic numeral 4";
+beginchar("4",9u#,fig_height#,desc_depth#);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos6(stem,0); pos7(stem,0);
+pos2(bar,-45); pos3(bar,-90); pos4(bar,-90); pos5(bar,-45);
+rt x1r=hround(.5w+.5u+.5stem); lft x2l=hround .25u;
+x3=2.75u; x4=w-2u; rt x5r=hround(w-.25u);
+rt x6r=rt x7r=hround(2/3w+.5stem);
+y1+.5stem=h+o; bot y2r=0; bot y3r=vround(.08h-.5bar);
+bot y4r=vround-.5bar; bot y5r=vround(.03h-.5bar);
+y6+.5stem=bar_height; y7-.5stem=-d;
+filldraw circ_stroke z1e{down}...{3(x2-x1),y2-y1}z2e; % diagonal
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{x5-x4,2(y5-y4)}z5e; % bar
+filldraw z6l---z7l..z7r---z6r..cycle; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Italic numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Italic numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "Italic numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric fat_curve; fat_curve=1.4[stem,curve];
+pos1(hair,0); pos2(hair,0); pos3(vstem+curve-stem,-90);
+pos4(vair,-90); pos5(hair,0); pos6(fat_curve,0);
+top y1=h+o; y2=x_height; y3l=y5=y1;
+bot y4r=vround(.5[y2,h]-.5vair); y6-.5fat_curve=-o;
+lft x2l=hround(.5u-.5hair); x3=.5w-.5u; x4=2/3w;
+rt x5r=hround(w-.75u+.5hair); rt x6r=hround(.5w+u+.5fat_curve);
+z1=z2+whatever*(z5-z6); filldraw stroke z1e--z2e; % serif
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{2(x5-x6),y5-y6}z5e; % bar
+filldraw circ_stroke z6e{up}...{2(x5-x6),y5-y6}z5e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Italic numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ if lower_side>1.2upper_side: upper_side:=lower_side; fi
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Italic numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exileast.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exileast.mf
new file mode 100644
index 00000000000..a5d5e23c88a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exileast.mf
@@ -0,0 +1,739 @@
+% exileast.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% accented lowercase italic letters ("eastern part")
+%
+% oct"236", oct"240" .. oct"274"
+%
+% oct"236" d with bar
+%
+% oct"240" a with breve
+% oct"241" a with ogonek
+% oct"242" c with acute
+% oct"243" c with hacek
+% oct"244" d with comma
+% oct"245" e with hacek
+% oct"246" e with ogonek
+% oct"247" g with breve
+%
+% oct"250" l with acute
+% oct"251" l with komma
+% oct"252" l with (polnisches L)
+% oct"253" n with acute
+% oct"254" n with hacek
+% oct"255" the letter eng
+% oct"256" o with ungarian umlauts
+% oct"257" r with acute
+%
+% oct"260" r with hacek
+% oct"261" s with acute
+% oct"262" s with hacek
+% oct"263" s with cedille
+% oct"264" t with comma
+% oct"265" t with cedille
+% oct"266" u with hungarian umlauts
+% oct"267" u with circ
+%
+% oct"270" y with umlauts
+% oct"271" z with acute
+% oct"272" z with hacek
+% oct"273" z with dot
+% oct"274" ij
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Italic letter bar d";
+beginchar(oct"236",9u#,asc_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the bar
+ pos8(bar,90); pos9(bar,90);
+ x8=x1; % .5[x1,x4];
+ x9=x6;
+ y8=y9=.5[y.a2-.5slab,y1+.5vair];
+ filldraw stroke z8e--z9e;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+
+ecchar "Italic letter breve a";
+beginchar(oct"240",9u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the accent
+lowercase_breve(.5w,0,8,9,10);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Italic letter a with ogonek"; % from pl_mlk (plfonts)
+beginchar(oct"241",9u#,x_height#,the_ogonek_depth#);
+ italcorr 1/3x_height#*slant+.5hair#+.5u#;
+ adjust_fit(0,0); pickup fine.nib;
+ pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+ pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+ x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+ rt x4r=hround(w-2.5u+.5stem);
+ top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+ filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+ x5=x4; x7=w; hook_out(5,6,7); % closing hook
+ filldraw circ_stroke z4e--z5e; % stem
+ penlabels(0,1,2,3,4,5,6,7);
+ path p.l;
+ p.l=if skewed: z5l{-u,-x_height}...z6l{right}...{up}z7l
+ else: z5l{down}...z6l{right}...{x7-(x5+2.5u),x_height}z7l fi;
+ ogonek_breadth=xvair; ogonek_pos=point .9 of p.l;
+ put_ogonek(if known ogonek_pen: ogonek_pen else: fine fi);
+endchar;
+
+ecchar "Italic letter c with acute"; % from pl_mlk (plfonts)
+beginchar_twice(oct"242",8u#,x_height#,0);
+ italcorr x_height#*slant-u#;
+ adjust_fit(0,0); pickup fine.nib;
+ pos0(flare,0); pos1(hair,0); pos2(vair,90);
+ pos3(curve,180); pos4(vair,270); pos5(hair,320);
+ x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+ lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+ y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+ bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+ path p; p=z4{right}..z5..z6;
+ filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+ penlabels(0,1,2,3,4,5,6);
+ hpos_corr=-.25u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "Italic letter c with hachek"; % from csihachl.mf (csfonts)
+beginchar(oct"243",8u#,lc_hachek_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,x_height]; top y2r=x_height+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6);
+lc_hachek_accent(.6[x3,x1]);
+endchar;
+
+
+ecchar "Italic letter d with hachek"; % from csiothr.mf (csfonts)
+beginchar(oct"244",9u#,lc_acute_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=asc_height; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7);
+dtl_hachek(x4r+u+.5dot_size)(y4);
+endchar;
+
+ecchar "Italic letter e with hachek"; % from csihachl.mf (csfonts)
+beginchar(oct"245",8u#,lc_hachek_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6);
+lc_hachek_accent(0.6[x3,x1r]);
+endchar;
+
+
+ecchar "Italic letter e with ogonek"; % from pl_mlk (plfonts)
+beginchar(oct"246",8u#,x_height#,the_ogonek_depth#);
+ italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+ adjust_fit(0,0); pickup fine.nib;
+ pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+ pos3(curve,180); pos4(vair,270); pos5(hair,320);
+ x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+ lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+ y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+ top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+ filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+ penlabels(0,1,2,3,4,5,6);
+ path p.r; p.r=pulled_arc.r(3,4)...{direction 1 of p}z5r;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if hefty: 2.8 else: 2.6 fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_breadth=xvair;
+ ogonek_pos=point tt of p.r+.5(the_pen-fine)*
+ unitvector((direction tt of p.r) rotated 90);
+ put_ogonek(the_pen);
+endchar;
+
+ecchar "Italic letter g with breve";
+beginchar(oct"247",8u#,x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem);
+top y1r=x_height+oo; bot y3r=0; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pos4(stem,0); y4+.5stem=vround .98x_height;
+pos5(stem,0); x5=x4; y5=-1/3d;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=vround -.9d;
+lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
+filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
+%the accent
+lowercase_breve(.5w,0,9,10,11);
+math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
+ ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+ecchar "Italic letter l with acute"; % jk
+beginchar_twice(oct"250",4u#,asc_height#,0);
+l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=asc_height; x1=x2; filldraw stroke z1e--z2'e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4);
+put_accent;
+repeat_once;
+endchar;
+
+ecchar "Italic letter l with hachek"; % from csiothrl.mf (csfonts)
+beginchar(oct"251",4u#,lc_acute_height#,0);
+l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=asc_height; x1=x2; filldraw stroke z1e--z2'e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4);
+dtl_hachek(x1r+u+.5dot_size)(y1);
+endchar;
+
+ecchar "Italic letter crossed l"; % from pl_mlk (plfonts)
+beginchar_twice(oct"252",4u#,asc_height#,0);
+ l_width#:=4u#;
+ italcorr max(1/3x_height#*slant+.5hair#+.5u#,asc_height#*slant+.5stem#-2u#);
+ charwd_:=charwd; adjust_fit(if monospace:u#,u# else: 0,0 fi);
+ pickup fine.nib;
+ x2-.5stem=hround(1.5u-.5stem);
+ x4=w; hook_out(2,3,4); % closing hook
+ pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+ top y1=h; x1=x2; filldraw stroke z1e--z2'e; % stem
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+ penlabels(1,2,3,4);
+ if not monospace:
+ charwd:=charwd_; adjust_fit(.25u#,if is_bold: .75 fi\\ u#);
+ fi
+% some funny fonts have an extremally small |jut|:
+ numeric l_jut; l_jut=.5stem+max(limit_dist,if hefty: .8 fi\\ jut);
+ put_cross(l_jut,1.15l_jut);
+repeat_once;
+endchar;
+
+ecchar "Italic letter n with acute"; % jk, merged from pl and dc \'n
+beginchar_twice(oct"253",10u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+if classic_serif:
+ top y1=x_height; pos1(stem,0);
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,a,1); % opening hook
+fi
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+penlabels(0,a,1,2,3,4,5,6,7);
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "Italic letter n with hachek"; % from csihachl.mf (csfonts)
+beginchar(oct"254",10u#,lc_hachek_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+if classic_serif:
+ top y1=x_height; pos1(stem,0);
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,a,1); % opening hook
+fi
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7);
+lc_hachek_accent(1/2[x1r,x3r]);
+endchar;
+
+
+ecchar "Italic letter eng";
+beginchar(oct"255",10u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+if classic_serif:
+ top y1=h; pos1(stem,0);
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,a,1); % opening hook
+fi
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; empty_hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+%
+% j stroke
+ pickup tiny.nib; pos8(vair,-90); pos9(hair,-180); pos10(flare,-180);
+ x8=.5[x5,x9r]; bot y8r=-d-oo; y9-.5flare=-.88d;
+ z9r=z10r; rt x10l=hround(x4r-3u+0.5stem); % floor .75u
+ (x,y8r)=whatever[z8l,z5l]; x8r:=max(x,.5[x9r,x8]);
+ filldraw stroke z5e{down}...z8e{left}; bulb(8,9,10); % arc and bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Italic letter o with double acute";
+beginchar(oct"256",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+penlabels(1,2,3,4,7,8); endchar;
+
+ecchar "Italic letter r with acute";
+beginchar_twice(oct"257",5.5u#+max(1.75u#,flare#),x_height#+acc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi);
+pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+if classic_serif:
+ pos2(stem,0);
+ y2=1/4x_height; % dito
+ x8=x2; pos8(stem,0); top y8=x_height;
+ sloped_serif.l(8,3,c,1/3,jut,serif_drop);
+ filldraw circ_stroke z8e--z3e; % left stem
+else:
+ hook_in(0,1,2); % opening hook
+ filldraw circ_stroke z3e--z2e; % left stem
+fi
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=x_height+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+hpos_corr=-.5u; put_accent;
+repeat_once;
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+ecchar "Italic letter r with hachek"; % from csihachl.mf (csfonts)
+beginchar(oct"260",5.5u#+max(1.75u#,flare#),lc_hachek_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+if classic_serif:
+ pos2(stem,0);
+ y2=1/4x_height; % dito
+ x2'=x2; pos2'(stem,0); top y2'=x_height;
+ sloped_serif.l(2',3,c,1/3,jut,serif_drop);
+ filldraw circ_stroke z2'e--z3e; % left stem
+else:
+ hook_in(0,1,2); % opening hook
+ filldraw circ_stroke z3e--z2e; % left stem
+fi
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=x_height+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+penlabels(0,1,2,3,4,5,6);
+if classic_serif: lc_hachek_accent(.5[x2,x4]);
+else: lc_hachek_accent(.5[x1,x4]); fi
+endchar;
+
+ecchar "Italic letter s with acute"; % from pl_mlk (plfonts)
+beginchar_twice(oct"261",5.25u#+max(1.75u#,flare#),x_height#,0);
+ italcorr x_height#*slant-.5u#;
+ adjust_fit(0,0); pickup fine.nib;
+ numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+ pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+ x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+ y0-.5ess=y7l+.55(y2r-y7l-ess);
+ lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+ x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+ interim superness:=more_super;
+ filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+ pos1(hair,0); pos10(hround .75[hair,flare],0);
+ pos2'(vair,90); z2'=z2;
+ pos8(hair,-180); pos9(flare,-180);
+ rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+ bulb(2',1,10); bulb(7,8,9); % bulbs
+ penlabels(0,1,2,3,4,5,6,7,8,9,10);
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "Italic letter s with hacek"; % from csihachl.mf (csfonts)
+beginchar(oct"262",5.25u#+max(1.75u#,flare#),lc_hachek_height#,0);
+italcorr (acc_height#+x_height#)*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,x_height); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=x_height+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps;
+y10=.78x_height; y9=.25x_height;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10);
+lc_hachek_accent(x0);
+endchar;
+
+ecchar "Italic letter cedilla s";
+beginchar(oct"263",5.25u#+max(1.75u#,flare#),x_height#,0.875desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,x_height); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=x_height+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25x_height;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+% the accent
+lowercase_cedilla(x7,0,11,12,13,14,15);
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+
+ecchar "Italic letter t with hachek"; % from csiothrl.mf (csfonts)
+%beginchar(oct"264",5.5u#,min(asc_height#,10/7x_height#),0);
+beginchar(oct"264",5.5u#,lc_acute_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem);
+y1+.5stem=min(asc_height,10/7x_height)+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+if classic_serif:
+ filldraw stroke z1e--z2e; % stem
+else:
+ filldraw circ_stroke z1e--z2e; % stem
+fi
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6);
+dtl_hachek(x6)(y1+.5dot_size);
+endchar;
+
+ecchar "Italic letter cedilla t";
+beginchar(oct"265",5.5u#,min(asc_height#,10/7x_height#),0.875desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+if classic_serif:
+ filldraw stroke z1e--z2e; % stem
+else:
+ filldraw circ_stroke z1e--z2e; % stem
+fi
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+%
+% the accent
+lowercase_cedilla(x3,0,7,8,9,10,11);
+math_fit(1.25u#-x_height#*slant,ic#);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Italic letter u with double acute";
+beginchar_twice(oct"266",9.5u#,x_height#+acc_height#,0);
+italcorr (acc_height#+x_height#)*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+if classic_serif:
+ x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ pos2(stem,0);
+ top y2=x_height;
+else:
+ x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=x_height;
+if classic_serif:
+ filldraw stroke z2
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+else:
+ filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+fi
+filldraw circ_stroke z6e--z7e; % right stem
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9);
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+endchar;
+
+
+ecchar "Italic u with ring";
+beginchar(oct"267",9.5u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+if classic_serif:
+ x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ pos2(stem,0);
+ top y2=x_height;
+else:
+ x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+if classic_serif:
+ filldraw stroke z2
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+else:
+ filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+fi
+filldraw circ_stroke z6e--z7e; % right stem
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+% the accent
+lowercase_circle(.5w,(1/3[x_height,h]+apex_o),10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "Italic letter umlaut y";
+beginchar(oct"270",8.5u#,x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if classic_serif:
+ pos2(stem,0);
+ top y2=x_height;
+else:
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+%the accent
+lowercase_umlaut(0,0,11,12,13,14);
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+ecchar "Italic letter z with acute"; % use accent from plfonts
+beginchar_twice(oct"271",5.5u#+max(1.5u#,stem#),x_height#+acc_height#,0);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78x_height; top y2l=top y4=x_height+oo; y3=.825x_height;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175x_height; bot y8=.31x_height;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+ penlabels(1,2,3,4,5,6,7,8);
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+endchar;
+
+ecchar "Italic letter z with hachek"; % from csihachl.mf (csfonts)
+beginchar(oct"272",5.5u#+max(1.5u#,stem#),lc_hachek_height#,0);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78x_height; top y2l=top y4=x_height+oo; y3=.825x_height;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175x_height; bot y8=.31x_height;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8);
+lc_hachek_accent(1/2[x2,x3]);
+endchar;
+
+ecchar "Italic letter dot z"; % use accent from plfonts
+beginchar_twice(oct"273",5.5u#+max(1.5u#,stem#),x_height#+acc_height#,0);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78x_height; top y2l=top y4=x_height+oo; y3=.825x_height;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175x_height; bot y8=.31x_height;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+penlabels(1,2,3,4,5,6,7,8);
+ put_dot(fine,flare#);
+repeat_once;
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+endchar;
+
+ecchar "Italic letter ij";
+beginchar(oct"274",10u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x5=5u; x2=2.5u+.25u; x3=2.5u-.25u;
+if classic_serif:
+ hook_out(3,4,5)(skewed); % hooks
+ top y2=x_height;
+ pos2(stem,0);
+ sloped_serif.l(2,3,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,1,2)(skewed);
+ hook_out(3,4,5)(skewed); % hooks
+fi
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=2.5u if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if classic_serif: else:
+ if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+pickup fine.nib;
+x10=5u; x12=x13; pos13(stem,0); lft x13l=hround(w-1.5u-.5stem);
+if classic_serif:
+ pos14(vair,-90); pos15(hair,-180); pos16(flare,-180);
+ bot y13=-1/3d; bot y14r=-d-oo; y16-.5flare=-vround.9d;
+ top y12=x_height;
+ pos12(stem,0);
+ sloped_serif.l(12,13,b,1/3,jut,serif_drop);
+else:
+ hook_in(10,11,12); % opening hook
+ pos14(vair,-90); pos15(hair,-180); pos16(flare,-180);
+ bot y13=-1/3d; bot y14r=-d-oo; y16-.5flare=-vround.9d;
+fi
+x14=5u+1/3(w-6u); lft x15r=min(hround 4.5u,lft x15r+x14-x15l-eps);
+filldraw stroke z12e---z13e...{left}z14e; % stem and arc
+bulb(14,15,16); % bulb
+pos18(flare,0); pos19(flare,90);
+rt x18r=rt x12r if not monospace:-.6(h-x_height)*slant fi; top y19r=h+1;
+if classic_serif: else:
+ if bot y19l-top y11<slab: y19l:=min(y19r-eps,y11+fine+slab); fi
+fi
+x18=x19; y18=.5[y19l,y19r]; dot(18,19); % dot
+math_fit(desc_depth#*slant,x_height#*slant+.5stem#-u#);
+penlabels(0,1,2,3,4,5,6,8,9,10,11,12,13,14,15,16,17,18,19); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exilig.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exilig.mf
new file mode 100644
index 00000000000..9000fddea80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exilig.mf
@@ -0,0 +1,275 @@
+% exilig.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% italic dotless i,j; ligatures ff, fi, fl, ffi, ffl
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+numeric itc#; % modified italic correction on `f' and `ff'
+itc#=(asc_height#-x_height#)*slant+.75u#;
+
+ecchar "Dotless italic letter i";
+beginchar(oct"031",5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+if classic_serif:
+ hook_out(3,4,5)(skewed); % hooks
+ top y2=x_height;
+ pos2(stem,0);
+ sloped_serif.l(2,3,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,1,2)(skewed);
+ hook_out(3,4,5)(skewed); % hooks
+fi
+filldraw stroke z2e--z3e; % stem
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "Dotless italic letter j";
+beginchar(oct"032",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-2u#;
+adjust_fit(if monospace:2u# else: 0 fi, 0); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-2u-.5stem);
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+if classic_serif:
+ top y2=x_height;
+ pos2(stem,0);
+ sloped_serif.l(2,3,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,1,2); % opening hook
+fi
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+penlabels(0,1,2,3,4,5,6); endchar;
+
+numeric itc; % modified italic correction on `f' and `ff'
+itc=(asc_height#-x_height#)*slant+.75u#;
+
+ecchar "Italic ligature ff";
+beginchar(oct"033",
+%if monospace: 12u# else:
+(5u#+max(1.5u#,stem#)+max(3.5u#,2flare#))+2letter_fit#, % fi,
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+normal_adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 4.3u else: 4.8u fi +2letter_fit,0);
+.5[x88,x99]=.5w-.1u; x89-x88=u; y98=h; y99=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+if monospace: rt x1r=hround(.5w+.75u);
+else:
+ rt x1r=hround(.5w+1.25u);
+fi
+%if monospace: lft x8r=hround-.35u;
+%else:
+lft x8r=hround-.35u;
+%fi
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % left bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower left arc
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90); pos16(.5[hair,stem],0);
+pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
+rt x11r=hround(w+.25u);
+if monospace: lft x18r=hround(.5w-.75u);
+else: lft x18r=hround(.5w-1.25u); fi
+x12=.6[x11,x14]; x17=.5[x18,x15];
+x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
+y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
+bulb(12,11,10); bulb(17,18,19); % right bulbs
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % right stem
+filldraw stroke z15e{z99-z98}...z16e...{left}z17e; % lower middle arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x14l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 20,21,88,89,98,99); endchar;
+
+
+ecchar "Italic ligature fi";
+beginchar(oct"034",if monospace: 4.5u# else: 6.5u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+normal_adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-if monospace: 2u else: 4u fi -2letter_fit); x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+pos11(stem,0); rt x11r=hround(w-2.5u+.5stem);
+x12=x11; x14=w; hook_out(12,13,14); % closing hook
+x1r=x11r; lft x8r=hround-.35u; x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround-.85d; bot y7r=-d-oo;
+y0+.5flare=vround(.85[x_height,h]); top y2r=h+oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+top y11=x_height; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x11;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;
+
+ecchar "Italic ligature fl";
+beginchar(oct"035",if monospace: 5u# else: 7u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+normal_adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-if monospace: 3.5u else: 4.5u fi -2letter_fit);
+x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+pos11(stem,0); rt x11r=hround(w-2.5u+.5stem); rt x1r=lft x11l;
+x12=x11; x14=w; hook_out(12,13,14); % closing hook
+if monospace: lft x8r=hround-.55u;
+else: lft x8r=hround-.35u; fi
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+top y11=h; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x11;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;
+
+
+ecchar "Italic ligature ffi";
+beginchar(oct"036",
+if monospace: 7.75u# else: 11.75u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +4letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+normal_adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 3u else: 5u fi +2letter_fit,0);
+numeric theta,mid_f;
+mid_f=.5[x88,x99]=.5(w-if monospace: 2.25u else: 4.25u fi -2letter_fit);
+x89-x88=u;
+y98=h; y99=-d; theta=angle(z88-z89);
+pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
+x22=x21; x24=w; hook_out(22,23,24); % closing hook
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+if monospace: rt x1r=hround(mid_f+u);
+else: rt x1r=hround(mid_f+1.75u); fi
+if monospace: lft x8r=hround -.65u;
+else: lft x8r=hround-.35u; fi
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % left bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower left arc
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90); pos16(.5[hair,stem],0);
+pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
+x11r=x21r; lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
+x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
+y10+.5flare=vround .85[x_height,h];
+y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
+bulb(12,11,10); bulb(17,18,19); % right bulbs
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % middle stem
+filldraw stroke z15e{z99-z98}...z16e...{left}z17e; % lower middle arc
+top y21=x_height; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; pos30(bar,90); pos31(bar,90);
+top y30r=top y31r=x_height;
+lft x30=lft x4r-.5stem-u; x31=x21;
+filldraw stroke z30e--z31e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,30,31,88,89,98,99); endchar;
+
+
+ecchar "Italic ligature ffl";
+beginchar(oct"037",
+ if monospace: 8u# else: 12u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +4letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+normal_adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 3u else: 5u fi+2letter_fit,0);
+numeric theta,mid_f;
+mid_f=.5[x88,x99]=.5(w-if monospace: 2u else: 4.5u fi-2letter_fit); x89-x88=u;
+y98=h; y99=-d; theta=angle(z88-z89);
+pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
+x22=x21; x24=w; hook_out(22,23,24); % closing hook
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+if monospace: rt x1r=hround(mid_f+u);
+else: rt x1r=hround(mid_f+1.25u); fi
+lft x8r=hround-.35u;
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % left bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower left arc
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90); pos16(.5[hair,stem],0);
+pos17(vair,-90); pos18(hair,-180); pos19(flare,-180); rt x11r=lft x21l;
+lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
+x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
+y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
+bulb(12,11,10); bulb(17,18,19); % right bulbs
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % middle stem
+filldraw stroke z15e{z99-z98}...z16e...{left}z17e; % lower middle arc
+top y21=h; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; pos30(bar,90); pos31(bar,90);
+top y30r=top y31r=x_height;
+lft x30=lft x4r-.5stem-u; x31=x21;
+filldraw stroke z30e--z31e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,30,31,88,89,98,99); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exiligtb.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exiligtb.mf
new file mode 100644
index 00000000000..dccb30bd572
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exiligtb.mf
@@ -0,0 +1,261 @@
+% exiligtb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% ligtable and kerning for italic fonts
+%
+% This file should not be called for monospaced fonts !
+%
+% The following ligatures are integrated:
+%
+% fi
+% fl
+% ff
+% ffi
+% ffl
+%
+% --
+% ---
+% -<hyphenchar>
+% >>
+% <<
+% ``
+% ''
+% ,,
+% !` and ?`
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ligtable
+ "f": "i"=:oct"034",
+ "f"=:oct"033",
+ "l"=:oct"035",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ oct"033": % ff
+ "i"=:oct"036",
+ "l"=:oct"037",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ "`": "`"=:oct"020",
+ oct"020" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "'": "'"=:oct"021",
+ oct"021" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "-": "-" =: oct"025",
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+
+ligtable
+ oct"025": "-"=:oct"026"; % "---" => emdash
+
+ligtable "<": "<" =: oct"023"; % "<<"
+ligtable ">": ">" =: oct"024"; % ">>"
+ligtable ",": "," =: oct"022"; % ",,"
+ligtable "!": "`" =: oct"275"; % spanish shriek
+ligtable "?": "`" =: oct"276"; % spanish query
+%
+%
+def lig_o_table (expr k) =
+ "o" kern k, oct"256" kern k, oct"362" kern k, oct"363" kern k,
+ oct"364" kern k, oct"365" kern k, oct"366" kern k,
+ oct"367" kern k, oct"370" kern k
+enddef;
+%
+%
+def lig_a_table (expr k) =
+ "a" kern k, oct"240" kern k, oct"241" kern k, oct"340" kern k,
+ oct"341" kern k, oct"342" kern k, oct"342" kern k,
+ oct"343" kern k, oct"344" kern k, oct"345" kern k,
+ oct"346" kern k
+enddef;
+%
+def lig_c_table (expr k) =
+ "c" kern k, oct"242" kern k, oct"243" kern k, oct"347" kern k
+enddef;
+%
+def lig_e_table (expr k)=
+ "e" kern k, oct"245" kern k, oct"246" kern k, oct"350" kern k,
+ oct"351" kern k, oct"352" kern k, oct"353" kern k
+enddef;
+%
+def lig_n_table (expr k)=
+ "n" kern k, oct"253" kern k, oct"254" kern k, oct"255" kern k,
+ oct"361" kern k
+enddef;
+%
+def lig_u_table (expr k)=
+ "u" kern k, oct"266" kern k, oct"267" kern k, oct"371" kern k,
+ oct"372" kern k, oct"373" kern k, oct"374" kern k
+enddef;
+%
+def lig_A_table (expr k) =
+ "A" kern k, oct"200" kern k, oct"201" kern k, oct"300" kern k,
+ oct"301" kern k, oct"302" kern k, oct"303" kern k,
+ oct"304" kern k, oct"305" kern k, oct"306" kern k
+enddef;
+%
+def lig_O_table (expr k) =
+ "O" kern k,
+ oct"216" kern k, oct"322" kern k, oct"323" kern k,
+ oct"324" kern k, oct"325" kern k,
+ oct"326" kern k, oct"327" kern k, oct"330" kern k
+enddef;
+%
+def lig_CGQ_table (expr k)=
+ "C" kern k, "G" kern k, oct"202" kern k, oct"203" kern k,
+ oct"207" kern k, oct"307" kern k, "Q" kern k
+enddef;
+%
+def lig_U_table (expr k) =
+ "U" kern k, oct"226" kern k, oct"227" kern k, oct"331" kern k,
+ oct"332" kern k, oct"333" kern k, oct"334" kern k
+enddef;
+%
+def lig_cA_table =
+ "A": oct"200": oct"300": oct"301": oct"302":
+ oct"303": oct"304": oct"305"
+enddef;
+%
+def lig_cO_table =
+ "O": oct"216": oct"322": oct"323": oct"324": oct"325":
+ oct"326": oct"330"
+enddef;
+
+k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning
+%
+ligtable boundarychar:
+ oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#,
+ oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#;
+
+ligtable oct"022":
+ oct"015" kern 2u#, "," kern 2u#,
+ oct"015":
+ oct"022" kern 2u#,
+ "v" kern kk#, "w" kern kk#,
+ "T" kern kk#, "V" kern kkk#, "W" kern kkk#,
+ "Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
+ lig_O_table(k#), lig_CGQ_table(k#),
+ boundarychar kern -kk#;
+
+ligtable oct"020":
+ oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"021":
+ oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"024": % ">>"
+ "." kern kk#, "," kern kk#;
+
+ligtable
+ "d": oct"244": "w": "l": oct"250": oct"251":
+ "l" kern +u#, oct"250" kern +u#, oct"251" kern +u#;
+ligtable
+ "F": "W": "V":
+ "o" kern kk#,
+ "e" kern kk#, oct"246" kern kk#,
+ "u" kern kk#,
+ "r" kern kk#, "n" kern kk#, "v" kern kk#,
+ "a" kern kk#, oct"241" kern kk#,
+ lig_A_table(kkk#),
+ "X": lig_O_table(k#),
+ lig_CGQ_table(k#);
+
+ligtable
+ "K": "v" kern k#,
+ "w" kern k#,
+ lig_O_table(k#),
+ lig_CGQ_table(k#);
+
+ligtable
+ "T": oct"224": oct"225":
+ "y" kern kk#,
+ "Y": oct"335": oct"230":
+ "e" kern kk#,
+ "o" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "u" kern kk#,
+ "P":
+ lig_A_table(kk#);
+ligtable
+ lig_cO_table:
+ "D": oct"204": oct"320":
+ "X" kern k#,
+ "W" kern k#,
+ lig_A_table(k#),
+ "V" kern k#,
+ "Y" kern k#, oct"230" kern k#, oct"335" kern k#;
+ligtable
+ lig_cA_table:
+ "y" kern k#, oct"270" kern k#, oct"375" kern k#,
+ oct"201": "R": oct"217":
+ lig_n_table(k#),
+ "l" kern k#, oct"250" kern k#, oct"251" kern k#,
+ "r" kern k#,
+ lig_u_table(k#),
+ "m" kern k#,
+ "t" kern k#, oct"264" kern k#, oct"265" kern k#,
+ "i" kern k#, oct"355" kern k#,
+ "h" kern k#,
+ "b" kern k#,
+ "k" kern k#,
+ "v" kern k#,
+ "w" kern k#,
+ lig_CGQ_table(k#),
+ lig_O_table(k#),
+ lig_U_table(k#),
+ "L": oct"210": oct"211":
+ "T" kern kk#, oct"224" kern kk#, oct"225" kern kk#,
+ "Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
+ "V" kern kkk#,
+ "W" kern kkk#,
+ "b":
+ "c": oct"242": oct"243":
+ "e": oct"245": oct"246": oct"350": oct"351": oct"352": oct"353":
+ "o": oct"362": oct"363": oct"364": oct"365": oct"366":
+ oct"376":
+ "p":
+ "r": lig_e_table(-u#),
+ lig_a_table(-u#),
+ lig_o_table(-u#),
+ "d" kern -u#, oct"236" kern -u#,
+ lig_c_table(-u#),
+ "g" kern -u#, oct"247" kern -u#,
+ "q" kern -u#;
+ligtable
+ "n": "'" kern kkk#;
+
+ligtable oct"252": "'" kern -k#;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exillett.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exillett.mf
new file mode 100644
index 00000000000..8e9ad7e23b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exillett.mf
@@ -0,0 +1,571 @@
+% exillett.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% lowercase italic letters a to z
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Italic letter a";
+beginchar("a",9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "Italic letter b";
+beginchar("b",8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "Italic letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar "Italic letter d";
+beginchar("d",9u#,asc_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "Italic letter e";
+beginchar("e",8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar "Italic letter f";
+beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+
+ecchar "Italic letter g";
+beginchar("g",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem);
+top y1r=h+oo; bot y3r=0; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pos4(stem,0); y4+.5stem=vround .98h;
+pos5(stem,0); x5=x4; y5=-1/3d;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=vround -.9d;
+lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
+filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
+math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
+ ic#-1/3x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Italic letter h";
+beginchar("h",9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Italic letter i";
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+if classic_serif:
+ hook_out(3,4,5)(skewed); % hooks
+ top y2=x_height;
+ pos2(stem,0);
+ sloped_serif.l(2,3,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,1,2)(skewed);
+ hook_out(3,4,5)(skewed); % hooks
+fi
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if classic_serif: else:
+ if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+ecchar "Italic letter j";
+beginchar("j",5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr h#*slant+.5stem#-u#;
+adjust_fit(if monospace:2u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-1.5u-.5stem);
+if classic_serif:
+ pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+ bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+ top y2=x_height;
+ pos2(stem,0);
+ sloped_serif.l(2,3,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,1,2); % opening hook
+ pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+ bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+fi
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+pos8(flare,0); pos9(flare,90);
+rt x8r=rt x2r if not monospace:-.6(h-x_height)*slant fi; top y9r=h+1;
+if classic_serif: else:
+ if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+math_fit(desc_depth#*slant,x_height#*slant+.5stem#-u#);
+penlabels(0,1,2,3,4,5,6,8,9); endchar;
+
+ecchar "Italic letter k";
+beginchar("k",8u#,asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Italic letter l";
+beginchar("l",4u#,asc_height#,0); l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=h; x1=x2; filldraw stroke z1e--z2'e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4); endchar;
+
+ecchar "Italic letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+y2-.5stem=-oo;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else:
+ x0=0; lft x2l=hround(2.5u-.5stem);
+ if classic_serif:
+ top y1=h; pos1(stem,0);
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop);
+ else:
+ hook_in(0,a,1);
+ fi
+fi % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Italic letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+if classic_serif:
+ top y1=h; pos1(stem,0);
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,a,1); % opening hook
+fi
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+ecchar "Italic letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+ecchar "Italic letter p";
+beginchar("p",9u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem);
+if classic_serif:
+ pos2(stem,0); % done previous by hook_in
+ y2=3/4x_height; % dito
+else:
+ hook_in(0,1,2); % opening hook
+fi
+
+pos4(hair,-180);
+pos5(vair,-90);
+pos6(curve,0);
+pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+
+if classic_serif:
+ x8=x2; pos8(stem,0); top y8=h;
+ sloped_serif.l(8,4,c,1/3,jut,serif_drop);
+fi
+
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d;
+if classic_serif:
+ filldraw stroke z8e--z3e; % stem
+else:
+ filldraw stroke z2'e--z3e; % stem
+fi
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7 if classic_serif: ,8 fi); endchar;
+
+ecchar "Italic letter q";
+beginchar("q",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem)+eps;
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pickup tiny.nib; pos4(stem,0); pos5(stem,0);
+x4=x5; x6=x5r; top y6=h+oo; bot y4=-d;
+y5=ypart(((x4l,0)--(x4l,y6))intersectionpoint super_arc.r(0,1));
+filldraw z6{2(x5l-x6),y5-y6}...z5l---z4l--z4r--cycle; % stem
+dish_serif(4,5,a,1/3,jut,b,1/3,jut); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Italic letter r";
+beginchar("r",5.5u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+if classic_serif:
+ pos2(stem,0);
+ y2=1/4x_height; % dito
+ x8=x2; pos8(stem,0); top y8=h;
+ sloped_serif.l(8,3,c,1/3,jut,serif_drop);
+ filldraw circ_stroke z8e--z3e; % left stem
+else:
+ hook_in(0,1,2); % opening hook
+ filldraw circ_stroke z3e--z2e; % left stem
+fi
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=h+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+ecchar "Italic letter s";
+beginchar("s",5.25u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Italic letter t";
+beginchar("t",5.5u#,min(asc_height#,10/7x_height#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+if classic_serif:
+ filldraw stroke z1e--z2e; % stem
+else:
+ filldraw circ_stroke z1e--z2e; % stem
+fi
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Italic letter u";
+beginchar("u",9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+if classic_serif:
+ x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ pos2(stem,0);
+ top y2=h;
+else:
+ x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+if classic_serif:
+ filldraw stroke z2
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+else:
+ filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+fi
+filldraw circ_stroke z6e--z7e; % right stem
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+ecchar "Italic letter v";
+beginchar("v",8u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if classic_serif:
+ pos2(stem,0);
+ top y2=h;
+else:
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar "Italic letter w";
+beginchar("w",12u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:-1.5u#,-u# else: 0,0 fi);
+pickup fine.nib; interim superness:=more_super; begingroup
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if monospace: pos1(vair,90); x1=good.x .5[x0,x2]; top y1r=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z1e{right}...{-u,-x_height}z2e;
+else:
+if classic_serif:
+ pos2(stem,0);
+ top y2=h;
+else:
+ hook_in(0,1,2)(skewed);
+fi
+fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0);
+x4=.6[x2,x5]; x5=x6=x7; pos6(stem,-180); pos7(stem,-180);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+rt x6l=hround(rt x6l+.5w+.75u-x6); y6+.5stem=h; y7=y3;
+pos8(vair,-90); pos9(hair,0);
+x8=w-2.75u; rt x9r=hround(w-.5u); bot y8r=-oo; y9=y5;
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e..super_arc.e(7,8)...{up}z9e; % middle stem and arc
+v_bulb(9,10); % closing bulb
+endgroup; math_fit(-2/3x_height#*slant+.5hair#+.5u#,3/4ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Italic letter x";
+beginchar("x",6.5u#+max(1.5u#,flare#),x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90);
+pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19); endchar;
+
+ecchar "Italic letter y";
+beginchar("y",8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if classic_serif:
+ pos2(stem,0);
+ top y2=h;
+else:
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Italic letter z";
+beginchar("z",5.5u#+max(1.5u#,stem#),x_height#,0);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exilwest.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exilwest.mf
new file mode 100644
index 00000000000..1aa3f556f6c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exilwest.mf
@@ -0,0 +1,761 @@
+% exilwest.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% italic lowercase accented letters ("western part")
+%
+% oct"340" .. oct"377"
+%
+% oct"340" .. oct"377"
+%
+% oct"340" a with gravis
+% oct"341" a with acute
+% oct"342" a with circumflex
+% oct"343" a with tilde
+% oct"344" a with umlaut
+% oct"345" a with ring
+% oct"346" ae
+% oct"347" c with cedilla
+%
+% oct"350" e with gravis
+% oct"351" e with acute
+% oct"352" e with circumflex
+% oct"353" e with umlaut
+% oct"354" i with gravis
+% oct"355" i with acute
+% oct"356" i with circumflex
+% oct"357" i with umlaut
+%
+% oct"360" edh (icelandic)
+% oct"361" n with tilde
+% oct"362" o with gravis
+% oct"363" o with acute
+% oct"364" o with circumflex
+% oct"365" o with tilde
+% oct"366" o with umlaut
+% oct"367" oe
+%
+% oct"370" o with /
+% oct"371" u with gravis
+% oct"372" u with acute
+% oct"373" u with circumflex
+% oct"374" u with umlaut
+% oct"375" y with acute
+% oct"376" thorn
+% oct"377" sharp s
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Italic letter a with gravis";
+beginchar_twice(oct"340",9u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+put_gravis;
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "Italic letter a with acute";
+beginchar_twice(oct"341",9u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+put_accent;
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+ecchar "Italic letter circumflex a";
+beginchar(oct"342",9u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the accent
+lowercase_hat(.5w,0,8,9,10,11,12);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar "Italic letter a with tilde";
+beginchar(oct"343",9u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the accent
+lowercase_tilde(-.5u,-1/6acc_height,8,9,10,11,12);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+ecchar "Italic letter a with umlaut";
+beginchar(oct"344",9u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the accent
+lowercase_umlaut(0,0,8,9,10,11);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Italic letter a with ring";
+beginchar(oct"345",9u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the accent
+lowercase_circle(x1,(1/3[x_height,h]+apex_o),8,9,10,11);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff knuthian_ae:
+ecchar "Italic ligature ae";
+beginchar(oct"346",13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos7(light_stem,0); pos8(light_stem,0);
+x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
+pos7'(vair,-225); pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x12=.5[x11,x3];
+y11=.3[y12,y7]; bot y12r=-oo;
+filldraw stroke z7'e{3(x11-x7),y11-y7}...pulled_arc.e(11,12)
+ & pulled_arc.e(12,3'); % bowl of a
+filldraw z7l---z8l..z8r---z7r..cycle; % stem
+penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
+
+iff not knuthian_ae:
+ecchar "Italic ligature ae";
+beginchar(oct"346",13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos7(light_stem,0);
+x7=x3; y7+.5light_stem=h+oo;
+pos7'(vair,-225); pos10(vair,-270);
+pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x10=x12=.5[x11,x3];
+top y10r=h+oo; y11=.52h; bot y12r=-oo;
+filldraw stroke pulled_arc.e(3',10) & pulled_arc.e(10,11)
+ & pulled_arc.e(11,12) & pulled_arc.e(12,3'); % bowl of a
+filldraw z7l---z3r..z3l---z7r..cycle; % stem
+penlabels(0,1,2,3,4,5,6,7,10,11,12); endchar;
+
+
+ecchar "Italic letter cedilla c";
+beginchar(oct"347",8u#,x_height#,0.875desc_depth#);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the accent
+lowercase_cedilla(x4,0,7,8,9,10,11);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Italic letter e with gravis";
+beginchar_twice(oct"350",8u#,x_height#+acc_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+put_gravis;
+repeat_once;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar "Italic letter e with acute";
+beginchar_twice(oct"351",8u#,x_height#+acc_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+put_accent;
+repeat_once;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar "Italic letter circumflex e";
+beginchar(oct"352",8u#,x_height#+acc_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+%the accent
+lowercase_hat(.5w,0,7,8,9,10,11);
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Italic letter umlaut e";
+beginchar(oct"353",8u#,x_height#+acc_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+%the accent
+lowercase_umlaut(0,0,7,8,9,10);
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Italic letter i with gravis";
+beginchar_twice(oct"354",5u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+if classic_serif:
+ hook_out(3,4,5)(skewed); % hooks
+ top y2=x_height;
+ pos2(stem,0);
+ sloped_serif.l(2,3,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,1,2)(skewed);
+ hook_out(3,4,5)(skewed); % hooks
+fi
+filldraw stroke z2e--z3e; % stem
+put_gravis;
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "Italic letter i with acute";
+beginchar_twice(oct"355",5u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+if classic_serif:
+ hook_out(3,4,5)(skewed); % hooks
+ top y2=x_height;
+ pos2(stem,0);
+ sloped_serif.l(2,3,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,1,2)(skewed);
+ hook_out(3,4,5)(skewed); % hooks
+fi
+filldraw stroke z2e--z3e; % stem
+put_accent;
+repeat_once;
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "Italic letter circumflex i";
+beginchar(oct"356",5u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+if classic_serif:
+ hook_out(3,4,5)(skewed); % hooks
+ top y2=x_height;
+ pos2(stem,0);
+ sloped_serif.l(2,3,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,1,2)(skewed);
+ hook_out(3,4,5)(skewed); % hooks
+fi
+filldraw stroke z2e--z3e; % stem
+% the accent
+if classic_serif: lowercase_hat(.5w,0,6,7,8,9,10);
+else: lowercase_hat(.5[.x1r,x2l],0,6,7,8,9,10); fi
+penlabels(0,1,2,3,4,5,6,7,8,9,19); endchar;
+
+
+
+
+ecchar "Italic letter umlaut i";
+beginchar(oct"357",5u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+if classic_serif:
+ hook_out(3,4,5)(skewed); % hooks
+ top y2=x_height;
+ pos2(stem,0);
+ sloped_serif.l(2,3,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,1,2)(skewed);
+ hook_out(3,4,5)(skewed); % hooks
+fi
+filldraw stroke z2e--z3e; % stem
+% the accent
+lowercase_umlaut(0,0,6,7,8,9);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Italic letter edh";
+beginchar(oct"360",9u#,asc_height#,0);
+italcorr .x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+oh := vround x_height ;
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0); penpos4'(hair,0) ;
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=oh + vround 1.5oo; y3r=-oo;
+y2=y4=.5oh-vair_corr; y2l:=y4l:=.52oh;
+x4'l = x4l; y4 = y4';
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) -- pulled_arc.e(4',1) & cycle; % bowl
+fill z4l .. {right}z4 -- z4r -- cycle ; % fill in a little gap!
+penpos5(.5[vair,hair],40) ;
+x5l = x2 ; top y5r = h ;
+x7r = x4r;
+y7 = .95[x4,x1];
+penpos7(curve,0);
+penstroke z5e .. tension 1.1 and 0.9 .. z7e{down} .. z4e ;
+path p ;
+p = z5 .. tension 1.1 and 0.9 .. z7{down} ;
+z6 = ((0,.7[x_height,asc_height]) -- (w,.6[x_height,asc_height]))
+ intersectionpoint p ;
+penpos6'(.5[vair,hair],-60) ; penpos 6''(.5[vair,hair],-60) ;
+top y6''l = h ; z6'' = z6 + whatever*dir30;
+z6 = .5[z6',z6''] ; filldraw stroke z6'e -- z6''e ;
+penlabels(1,2,3,4,5,6,6',6''); endchar;
+
+ecchar "Italic letter n with tilde";
+beginchar(oct"361",10u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+if classic_serif:
+ top y1=x_height; pos1(stem,0);
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop);
+else:
+ hook_in(0,a,1); % opening hook
+fi
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+lowercase_tilde(0,-1/6acc_height,8,9,10,11,12);
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar "Italic letter o with gravis";
+beginchar_twice(oct"362",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4);
+put_gravis;
+repeat_once;
+endchar;
+
+ecchar "Italic letter o with acute"; % use accent from plfonts
+beginchar_twice(oct"363",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+put_accent;
+repeat_once;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+ecchar "Italic letter o with circumflex";
+beginchar(oct"364",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+%the accent
+lowercase_hat(x1,0,5,6,7,8,9);
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(1,2,3,4,7,8,9); endchar;
+
+
+ecchar "Italic letter o with tilde";
+beginchar(oct"365",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+%the accent
+lowercase_tilde(0,-1/6acc_height,5,6,7,8,9);
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(1,2,3,4,7,8,9); endchar;
+
+ecchar "Italic letter o with umlaut";
+beginchar(oct"366",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+%the accent
+lowercase_umlaut(0,0,5,6,7,8);
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(1,2,3,4,7,8); endchar;
+
+ecchar "Italic ligature oe";
+beginchar(oct"367",13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos11(vair,90); pos12(curve,180); pos13(vair,270); pos14(stem,360);
+x11=x13=.5[x12,x14]; lft x12r=hround(1.5u-.5curve); x14=x3;
+top y11=h+oo; y12=y14=.5[y11,y13]; bot y13=-oo;
+filldraw stroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
+ & pulled_arc.e(13,14) & pulled_arc.e(14,11); % bowl
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar "Italic Scandinavian letter o/slash";
+beginchar(oct"370",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr h#*slant-u#+.5vair#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(fudged.stem,180);
+pos3(vair,270); pos4(fudged.stem,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5fudged.stem); x4=w-x2;
+top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+x5=x4; x6=x2; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Italic letter u with gravis";
+beginchar_twice(oct"371",9.5u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+if classic_serif:
+ x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ pos2(stem,0);
+ top y2=x_height;
+else:
+ x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+if classic_serif:
+ filldraw stroke z2
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+else:
+ filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+fi
+filldraw circ_stroke z6e--z7e; % right stem
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+put_gravis;
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Italic letter u with acute";
+beginchar_twice(oct"372",9.5u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+if classic_serif:
+ x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ pos2(stem,0);
+ top y2=x_height;
+else:
+ x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+if classic_serif:
+ filldraw stroke z2
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+else:
+ filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+fi
+filldraw circ_stroke z6e--z7e; % right stem
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+put_accent;
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Italic letter u with circumflex";
+beginchar(oct"373",9.5u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+if classic_serif:
+ x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ pos2(stem,0);
+ top y2=x_height;
+else:
+ x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+if classic_serif:
+ filldraw stroke z2
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+else:
+ filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+fi
+filldraw circ_stroke z6e--z7e; % right stem
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+% the accent
+lowercase_hat(.5w,0,10,11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+ecchar "Italic letter u with umlaut";
+beginchar(oct"374",9.5u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+if classic_serif:
+ x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ pos2(stem,0);
+ top y2=x_height;
+else:
+ x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+if classic_serif:
+ filldraw stroke z2
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+else:
+ filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+fi
+filldraw circ_stroke z6e--z7e; % right stem
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+% the accent
+lowercase_umlaut(0,0,10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "Italic letter y with acute";
+beginchar_twice(oct"375",8.5u#,x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if classic_serif:
+ pos2(stem,0);
+ top y2=x_height;
+else:
+ hook_in(0,1,2)(skewed); % opening hook
+fi
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+if classic_serif: sloped_serif.l(2,3,a,1/3,jut,serif_drop); fi
+put_accent;
+repeat_once;
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Italic letter thorn";
+beginchar(oct"376",9u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve# -u# if math_fitting: -.5u# fi;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(stem,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=-d;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(8,1,c,1/3,jut,d,1/3,jut); % lower serif
+ fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Italic German letter sharp s";
+beginchar(oct"377",4.5u#+max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
+italcorr .9asc_height#*slant-u#;
+adjust_fit(if monospace: u# else: 0 fi,0); pickup fine.nib;
+z88=(.5w-2.75u,h); z89=(.5w-1.75u,-d);
+numeric theta; theta=angle(z88-z89);
+pos1(stem,0); pos2(vair,90); pos3(.5[hair,stem],180);
+pos4(stem,theta+90); pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w-1.5u); lft x8r=hround-.25u; x2=.5[x1,x4]; x7=.5[x8,x5];
+y9-.5flare=vround -.85d; bot y7r=-d-oo; y1=.5[x_height,h]; top y2r=h+oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(7,8,9); % left bulb
+filldraw stroke z1e{up}...z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pos11(.1[hair,curve],-30); x11l=2/3[x12l,x1l]; y11=2/3[y1,y12];
+pos12(.3[hair,curve],0); rt x12r=hround(w-3u); y12=.5h;
+pos13(.8[hair,curve],30); x13=.5[x12,x14]; y13=.5[y12,y14];
+pos14(curve,0); rt x14r=hround(w-.5u); y14=.2h;
+pos15(vair,-90); x15=.5[x14,x16]; bot y15r=-oo;
+pos16(hair,-180); pos17(.6[hair,flare],-180);
+lft x16r=hround(rt x5r+.75u); y17-.5(.6[hair,flare])=.07h;
+filldraw stroke z1e{down}...z11e{1.5(x12e-x11e),y12e-y11e}
+ ...{down}z12e...{2(x13-x12),y13-y12}z13e
+ ...{down}z14e...{left}z15e; % stroke
+bulb(15,16,17); % inner bulb
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; z21=whatever[z4,z5];
+filldraw stroke z20e--z21e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,20,21,88,89);
+endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exisixts.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exisixts.mf
new file mode 100644
index 00000000000..557a7dbd9f5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exisixts.mf
@@ -0,0 +1,88 @@
+% This is EXISIXTS.MF in text format, as of March 24, 1992
+%
+% ecfonts version 1.0
+%
+% [ heavily borrowed from the Computer Modern Roman family of
+% fonts by D. E. Knuth ]
+%
+% Content:
+%
+% variant of 6test modified for testing of ecfonts
+% should be used with exbase only
+%
+%
+mode_def screenproof = % for onscreen viewing of CGA proofs (full screen)
+ proofing:=2; % yes, we're making full proofs
+ fontmaking:=0; % no, we're not making a font
+ tracingtitles:=1; % yes, show titles online
+ pixels_per_inch:=1001; % make it easy to view one char on screen
+ blacker:=0; % no additional blackness
+ fillin:=0; % no compensation for fillin
+ o_correction:=1; % no reduction in overshoot
+ aspect_ratio:=480/640; %265/640 % adjust for screen skewing also
+enddef;
+
+\mode:=screenproof;
+
+mode_setup;
+
+
+
+
+if unknown exbase: input exbase fi % omit if CMMF can be assumed
+boolean running;
+def abort = hide(scrollmode; running:=false) enddef;
+def pause=stop "done with char "&decimal charcode&". " enddef;
+let iff=always_iff;
+def ligtable text t=enddef;
+def charlist text t=enddef;
+def extensible text t=enddef;
+
+string currenttitle;
+let semi=;; let echar=endchar; let endchar=enddef;
+def ecchar expr s = currenttitle:=s;
+ let;=testchar semi quote def chartext=enddef;
+def testchar = semi let;=semi;
+ % now `chartext echar' will generate the character to be tested
+ running:=true; errorstopmode;
+ for k=1 upto 8:
+ if running: if known params[k]: scantokens params[k]; font_setup;
+ currentwindow:=k;
+ currenttitle & ", " & fontname[k];
+ chartext echar; fi fi endfor
+ pause; enddef;
+
+numeric fontsize[];
+numeric gensize;
+string params[],fontname[];
+params[1]="roman_params"; fontsize[1]:=10; fontname[2]="dcti";
+params[2]="sans_params"; fontsize[2]:=10; fontname[3]="dcbxti";
+params[3]="tt_params"; fontsize[3]:=10; fontname[1]="dcitt";
+params[4]="bold_params"; fontsize[4]:=10; fontname[4]="dcu";
+params[5]="quote_params"; fontsize[5]:=10; fontname[5]="dcfi";
+% params[6]="ital_params"; fontsize[6]:=10; fontname[6]="dci"; %vtt"; % cmti10";
+
+w_rows=floor (1/2 screen_rows); w_cols=floor (1/3 screen_cols);
+def open(expr k,i,j)=
+ openwindow k from ((i-1)*w_rows,(j-1)*w_cols) to (i*w_rows,j*w_cols)
+ at (-65,120) enddef;
+def openit =
+ open(1,1,1); open(2,1,2); open(3,1,3);
+ open(4,2,1); open(5,2,2); open(6,2,3); enddef;
+
+begingroup delimiters begintext generate;
+ def longerkludge expr s =
+ if length s > 8: substring (0,3) of s &
+ substring(length s-3,infinity) of fi s enddef;
+ def makedef(expr s)(text t) =
+ expandafter def scantokens s = t enddef; flushtext enddef;
+ def flushtext suffix t = enddef;
+ for k=1 upto 8: if known params[k]:
+ gensize := fontsize[k];
+ makedef(params[k])
+ expandafter expandafter expandafter begintext
+ scantokens ("input "&longerkludge fontname[k]); fi endfor
+endgroup;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exitalp.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exitalp.mf
new file mode 100644
index 00000000000..740cc3786d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exitalp.mf
@@ -0,0 +1,93 @@
+% exitalp.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% italic special characters &, ?, spanish ? which are
+% different from roman
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Italic ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr asc_height#*slant-1.5u#;
+adjust_fit(if monospace:-u#,-2u# else: 0,0 fi); pickup fine.nib;
+pos1(flare,0); pos2(hair,0); pos3(vair,90);
+rt x2r=hround.5w; x3=1/3(w-u);
+top y3r=h+o; y2=.5[x_height,h]; bulb(3,2,1); % left bulb
+pos4(stem,180); pos5(vair,270); pos6(hair,360); pos7(vair,450);
+pos8(curve,540); pos9(vair,630); pos10(hair,720);
+lft x4r=hround 1.25u; x5=x7=x3+1/6u; rt x6r=hround(x5+1.5u);
+lft x8r=hround u; x9=.5w; rt x10r=hround(w-1.5u);
+y4=.5[y3,y5]; top y5l=vround .77x_height; y6=.5[y5,y7];
+y7l=good.y 1/3[y5,y3]; y8=.5[y7,y9]; bot y9r=-o; y10=bar_height;
+pos12(hair,0); pos13(curve,0); pos14(hair,0); pos15(vair,90); pos16(curve,90);
+rt x12r=rt x13r=hround(w-2u); lft x14l=hround(.5w+.5u);
+x15=x16=rt x14r+u;
+y12=y13=h-.5curve; y14=.5[bar_height,x_height];
+bot y15l=bot y16l=vround y10;
+numeric theta; theta=angle((z12-z14)xscaled 2);
+pos11(hair,theta); x11=w-4u; y11=.5[y13,y16];
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & pulled_arc.e(7,8) & pulled_arc.e(8,9)
+ & {{interim superness:=more_super; pulled_arc.e(9,10)}}
+ ..tension .9 and 1..{dir(theta+100)}z11e; % bowls, loop, and stem
+pos11'(hair,theta-90); z11'=z11;
+forsuffixes $=l,r: path p$;
+ p$=z12${down}..z11'${-dir theta}..{down}z14$...{right}z15$; endfor
+filldraw p.l--reverse p.r--cycle; % arms
+path q[]; q1=z13r{up}..z13l{down}..cycle;
+q2=z16l{right}..z16r{left}..cycle;
+filldraw subpath(0,ypart(p.l intersectiontimes q1)) of q1--cycle; % upper bulb
+filldraw subpath(0,ypart(p.r intersectiontimes q2)) of q2--cycle; % lower bulb
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+ecchar "Italic question mark";
+beginchar("?",9u#,asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); bot y11l=0; z10=z11; dot(10,11); % dot
+pickup fine.nib; pos1(flare,180); pos2(hair,180); pos3(vair,90);
+lft x1r=hround u; x3=.5w;
+y1-.5flare=x_height; top y3r=h+o; bulb(3,2,1); % bulb
+pos8(vair,-90); x8=.5w; bot y8r=.25[top y11r,x_height]+1;
+numeric theta; theta=90+angle(10u,y3-y8); slope:=(y3-y8)/10u;
+pos3'(vair,-90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+rt x4l=hround(w-1.5u); lft x7r=hround 1/3w;
+x4l-x4r=x7l-x7r=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,0); rt x9r=hround(2/3w+.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{down}
+ ..z5e---z6e..z7e{down} & super_arc.e(7,8)...{up}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Spanish open italic question mark";
+beginchar(oct"276",9u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); top y11r=h; z10=z11; dot(10,11); % dot
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,-90);
+rt x1r=hround(w-u); x3=.5w; y1+.5flare=asc_height-x_height-d;
+bot y3r=-d-o; bulb(3,2,1); % bulb
+pos8(vair,90); x8=.5w; top y8r=.25[bot y11l,y1+.5flare]-1;
+numeric theta; theta=angle(10u,y8-y3)-90; slope:=(y8-y3)/10u;
+pos3'(vair,90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+lft x4l=hround 1.5u; rt x7r=hround 2/3w;
+x4r-x4l=x7r-x7l=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,180); lft x9r=hround(1/3w-.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{up}
+ ..z5e---z6e..z7e{up} & super_arc.e(7,8)...{down}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exmligtb.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exmligtb.mf
new file mode 100644
index 00000000000..c9016840862
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exmligtb.mf
@@ -0,0 +1,39 @@
+% exmligtb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% ligatures for monospaced Cork (T1) encoded fonts
+%
+% The following ligatures are included
+%
+% -- gives -
+% --- gives --
+% -<hyphenchar> gives <hyphenchar>
+% <<
+% >>
+% ,,
+% ''
+% ``
+% !`
+% ?`
+%
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ligtable "`": "`" =: oct"020";
+ligtable "'": "'" =: oct"021";
+ligtable "-": "-" =: oct"025", % number range dash equals "-"
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+ligtable "<": "<" =: oct"023"; % "<<"
+ligtable ">": ">" =: oct"024"; % ">>"
+ligtable ",": "," =: oct"022"; % ",,"
+ligtable "!": "`" =: oct"275"; % spanish shriek
+ligtable "?": "`" =: oct"276"; % spanish query
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/expseudo.mf b/Master/texmf-dist/fonts/source/jknappen/ec/expseudo.mf
new file mode 100644
index 00000000000..a5237224028
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/expseudo.mf
@@ -0,0 +1,94 @@
+% expseudo.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% This file contains pseudoparameters which are not entered in the
+% parameter files, but are computed from the initial parameter set.
+% There are also ad hoc parameters needed only once, and scratch
+% parameters with different values at each occuerence (like |theta|).
+%
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+% Diameters of dots
+
+numeric idot_diam#,udot_diam#,pdot_diam#;
+idot_diam#=max(dot_size#,cap_curve#); % dot of letters `i' and `j'
+udot_diam#=max(dot_size#,cap_curve#); % umlaut dots
+pdot_diam#=if monospace: 5/4 fi\\ dot_size#; % punctuation dots
+
+
+% The following umlaut dot diameter is used inside |exbase.mf|:
+% dot_diam:=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+% Several symbols just use |dot_size|.
+
+% |heavy_hair| occurs in italic lowercase `e'. Since there are many
+% accented versions of it, it is declared once here
+
+vardef heavy_hair=hround .2[hair,stem] enddef;
+
+% |qvair| (quotes vair) for the french quotes
+
+vardef qvair=max(round(xvair),fine+epsilon) enddef;
+
+% |limit_dist| is used in |put_accent| and |put_cross|
+% (the value of |u| is changed by |mono_adjust|, hence the global setting)
+
+vardef limit_dist=5/4u enddef;
+
+% Height of lowercase umlaut, taken from csfonts
+% Changed again, since the |lowercase_umlaut| macro works differently
+
+numeric lc_trema_height#;
+% lc_trema_height# = min(cap_height#,9/7x_height#+.5max(dot_size#,cap_curve#));
+lc_trema_height# = min(cap_height#,9/7hi.x_height#+max(dot_size#,cap_curve#));
+
+
+% More parametrisations for accents from csaccent.mf (csfonts):
+
+numeric uc_acc_height, uc_acc_height#,
+ lc_acute_height, lc_acute_height#,
+ lc_hachek_height, lc_hachek_height#,
+ accent_u, accent_u#,
+ accent_thin,
+ uc_acc_shift, asc_acc_shift;
+if unknown circ_weight: circ_weight:=1; fi
+
+%uc_acc_height# = cap_height#+asc_height#-x_height#;
+uc_acc_height# = cap_height#+acc_height#;
+lc_acute_height# = asc_height#;
+lc_hachek_height# = hi.x_height#+acc_height#;
+accent_u# = u#; % unexpanded dimension unit
+
+vardef accent_thin = if thin_join > crisp: thin_join else: crisp+eps fi enddef;
+
+vardef uc_acc_shift = cap_height - x_height enddef;
+vardef asc_acc_shift = asc_height - x_height enddef;
+
+numeric cap_accent_height, cap_accent_height#;
+%cap_accent_height# = uc_acc_height#;
+cap_accent_height# = cap_height# + acc_height#;
+
+def pseudo_setup =
+ define_whole_blacker_pixels(idot_diam,udot_diam,pdot_diam);
+ define_whole_vertical_pixels(lc_trema_height);
+ define_whole_vertical_pixels(uc_acc_height,lc_acute_height,
+ lc_hachek_height);
+ define_pixels(accent_u);
+ define_whole_vertical_pixels(cap_accent_height);
+% LAST MINUTE EXTRA FONT SETUP
+%%% define_pixels prepare_pen
+if not serifs: fisp#:=1/3[fine#,crisp#]; define_whole_pixels(fisp);
+ prepare_pen fisp; fi
+if known ogonek_pen#:
+ define_whole_pixels(ogonek_pen); prepare_pen ogonek_pen;
+fi
+enddef;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/expunct.mf b/Master/texmf-dist/fonts/source/jknappen/ec/expunct.mf
new file mode 100644
index 00000000000..1bb2bc81999
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/expunct.mf
@@ -0,0 +1,349 @@
+% expunct.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% punctuation
+
+%%% italcorr corrital
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Single left guillemet"; % jk
+beginchar(oct"016",8u#,2bar_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+ pickup fine.nib;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ rt x1r=rt x3r=w-2u-eps;
+ lft x2l=hround(if not monospace: 2 fi\\ u)-eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ fi
+ penlabels(1,2,3);
+endchar;
+
+ecchar "Single right guillemet"; % jk
+beginchar(oct"017",8u#,2bar_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+ pickup fine.nib;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ lft x1l=lft x3l=2u+eps;
+ rt x2r=w-hround(if not monospace: 2 fi\\ u)+eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ fi
+penlabels(1,2,3); endchar;
+
+ecchar "French opening quotes"; % from pl_cud (plfonts)
+beginchar_twice(
+ if not hefty: oct"023",10u#,2bar_height#,0
+ else: oct"023",12u#,2bar_height#,0
+ fi);
+adjust_fit(0,0);
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ rt x1r=rt x3r=hround(.6w-shift_corr)-eps;
+ lft x2l=hround(if not monospace: 2 fi\\ u-shift_corr)-eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*right; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z1'r;
+ penlabels(1,2,3,1',2',3');
+repeat_once;
+endchar;
+
+ecchar "French closing quotes"; % from pl_cud (plfonts)
+beginchar_twice(
+ if not hefty: oct"024",10u#,2bar_height#,0
+ else: oct"024",12u#,2bar_height#,0
+ fi);
+adjust_fit(0,0)
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ lft x1l=lft x3l=w-hround(.6w-shift_corr)+eps;
+ rt x2r=w-hround(if not monospace: 2 fi\\ u-shift_corr)+eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*left; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z2r;
+ penlabels(1,2,3,1',2',3');
+repeat_once;
+endchar;
+
+ecchar "German opening comma";
+beginchar(oct"015",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+ecchar "German Opening quotes";
+beginchar(oct"022",3u#+max(2u#,pdot_diam#),pdot_diam#,comma_depth#);
+italcorr asc_height#*slant+pdot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5pdot_diam=hround(w-.6u+.5pdot_diam); y2-.5pdot_diam=0;
+x1=w-x2; y2=y1;
+comma(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+ecchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5pdot_diam#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(pdot_diam,0); pos4(pdot_diam,90);
+lft x3l=hround(.5w-.5pdot_diam); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8pdot_diam,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(pdot_diam,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5pdot_diam=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+
+ecchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1+.5pdot_diam=h;
+if monospace: comma(1,a,pdot_diam,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,pdot_diam,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+
+ecchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+ecchar "Plus sign";
+beginarithchar("+"); pickup extra_rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+ecchar "Comma";
+beginchar(",",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+ecchar "Period";
+beginchar(".",5u#,pdot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+ecchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+ecchar "Colon";
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(pdot_diam,0); pos4(pdot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+ecchar "Semicolon";
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5pdot_diam=hround(.5w-.5pdot_diam); y3-.5pdot_diam=0;
+comma(3,a,pdot_diam,.2u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+ecchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+
+
+ecchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1+.5pdot_diam=h-comma_depth;
+if monospace: ammoc(1,a,pdot_diam,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,pdot_diam,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+
+ecchar "Spanish open exclamation point";
+beginchar(oct"275",5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5pdot_diam#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(pdot_diam,0); pos4(pdot_diam,90);
+lft x3l=hround(.5w-.5pdot_diam); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8pdot_diam,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(pdot_diam,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5pdot_diam=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+ecchar "Closing quotes";
+beginchar(oct"021",3u#+max(2u#,pdot_diam#),asc_height#,0);
+italcorr asc_height#*slant+pdot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x1+.5pdot_diam=hround(.6u+.5pdot_diam); y2+.5pdot_diam=h;
+x2=w-x1; y2=y1;
+comma(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+ecchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar "Opening quotes";
+beginchar(oct"20",3u#+max(2u#,pdot_diam#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5pdot_diam=hround(w-.6u+.5pdot_diam); y1+.5pdot_diam=h-comma_depth;
+x1=w-x2; y2=y1;
+ammoc(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+ammoc(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+iff not monospace:
+ecchar "En dash";
+beginchar(oct"025",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+
+iff monospace:
+ecchar "Hyphen";
+beginchar(oct"025",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff not monospace:
+ecchar "Em dash";
+beginchar(oct"026",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff monospace:
+ecchar "Hyphen";
+beginchar(oct"026",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exrdigit.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exrdigit.mf
new file mode 100644
index 00000000000..0dfe37bdaa1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exrdigit.mf
@@ -0,0 +1,337 @@
+% exrdigit.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% numerals 0 .. 9
+%
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+% All digits have the same height, width, depth, and italic correction.
+
+font_digit_width 9u#;
+
+ecchar "The numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+ecchar "The numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+if one_serif: dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); fi % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+ecchar "The numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75h+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "The numeral 4";
+beginchar("4",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab,h-light_stem]+1
+ else:.35(h-light_stem) fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=0;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "The numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "The numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "The numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(eps,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3h; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ if lower_side>1.2upper_side: upper_side:=lower_side; fi
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exrleast.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exrleast.mf
new file mode 100644
index 00000000000..077dffe06e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exrleast.mf
@@ -0,0 +1,1130 @@
+% exrleast.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% accented lowercase letters ("eastern part")
+%
+% oct"236", oct"240" .. oct"274"
+%
+% oct"236" d with bar
+%
+% oct"240" a with breve
+% oct"241" a with ogonek
+% oct"242" c with acute
+% oct"243" c with hacek
+% oct"244" d with comma
+% oct"245" e with hacek
+% oct"246" e with ogonek
+% oct"247" g with breve
+%
+% oct"250" l with acute
+% oct"251" l with komma
+% oct"252" l with (polnisches L)
+% oct"253" n with acute
+% oct"254" n with hacek
+% oct"255" the letter eng
+% oct"256" o with ungarian umlauts
+% oct"257" r with acute
+%
+% oct"260" r with hacek
+% oct"261" s with acute
+% oct"262" s with hacek
+% oct"263" s with cedille
+% oct"264" t with comma
+% oct"265" t with cedille
+% oct"266" u with hungarian umlauts
+% oct"267" u with circ
+%
+% oct"270" y with umlauts
+% oct"271" z with acute
+% oct"272" z with hacek
+% oct"273" z with dot
+% oct"274" ij
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter bar d";
+beginchar(oct"236",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo if monospace: -hair fi;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height if monospace: -.5hair fi ;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+%
+ pos8(bar,90); pos9(bar,90);
+ x8=.5[x4,x5];
+ if serifs: x9=x2r+jut; else: x9=w; fi
+ if serifs: y8=y9=.5[y.a2-.5slab,y4+.5vair];
+ else: y8=y9=.5[x_height,asc_height-serif_drop]; fi
+ filldraw stroke z8e--z9e;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+
+%%%%%%
+
+
+ecchar "The letter a with breve";
+beginchar(oct"240",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+lowercase_breve(.5w,0,14,15,16);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+ecchar "The letter a with ogonek"; % from pl_ml (plfonts)
+beginchar(oct"241",9u#,x_height#,the_ogonek_depth#);
+ bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+ italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+ adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+ pickup fine.nib; top y3r=h+vround 1.5oo;
+ if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+ else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+ pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+ pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+ filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+ pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+ pos7(hround(curve-2stem_corr),180);
+ lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+ pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+ pos9(thin_join,360); z9l=z5l;
+ (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+ {{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+ if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if is_bold: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+ else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; % base of stem
+ fi;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+ if serifs: path p.l; p.l=z5'l---z10l...z11l{right}; fi
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+ ogonek_pos=if serifs: (point if is_bold: 1.75 of p.l) else: 1.85 of p.l)+
+ .5the_pen*up fi\\ else: (x10l,.5the_pen) fi;
+ put_ogonek(the_pen);
+endchar;
+
+ecchar "The letter c with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"242",8u#,x_height#,0);
+ italcorr x_height#*slant-.2u#;
+ adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+ pickup fine.nib; pos2(vair',90); pos4(vair',270);
+ x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+ pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+ if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+ penlabels(0,1,2,3,4,5);
+ hpos_corr=-.25u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "The letter c with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"243",8u#,lc_hachek_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5);
+lc_hachek_accent(if serifs: 0.5[0.5[x3l,x3],x0r] else: x2 fi);
+endchar; %% changed from ..[x3r,x3]..
+
+
+ecchar "The letter d with hachek"; % from csotherl.mf (csfonts)
+beginchar(oct"244",10u#+serif_fit#,lc_acute_height#,0);
+italcorr lc_acute_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0, if monospace: 2u# else: dot_size#+0.25u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7);
+dtl_hachek(x0r+u+.5pdot_diam)(y1);
+endchar;
+
+ecchar "The letter e with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"245",7.25u#+max(.75u#,.5curve#),lc_hachek_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5);
+lc_hachek_accent(x2);
+endchar;
+
+
+ecchar "The letter e with ogonek"; % from pl_ml (plfonts)
+beginchar(oct"246",7.25u#+max(.75u#,.5curve#),x_height#,the_ogonek_depth#);
+ italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+ adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+ numeric left_curve,right_curve;
+ left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+ if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+ if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+ pickup tiny.nib; pos1(right_curve,0);
+ pos2(vair,90); pos3(left_curve,180);
+ y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+ rt x1r=hround min(w-.5u,w-u+.5right_curve);
+ lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+ {{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+ y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+ if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+ else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+ path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+ y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+ forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+ fill stroke z0e--z1'e; % crossbar
+ penlabels(0,1,2,3,4,5);
+ path p.r;
+ p.r=if serifs: pulled_arc.r(3,4)...{x5-x4,5(y5-y4)}z5r
+ else: term.r(4',5,right,1,4) fi;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if serifs: if hefty: 2.6 else: 2.5 fi else: % sansserif
+ if is_bold: .6 else: .8 fi\\ fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+ ogonek_pos=(point tt of p.r)+.5(the_pen-if serifs: tiny else: fine fi)*
+ unitvector((direction tt of p.r) rotated 90);
+ put_ogonek(the_pen);
+endchar;
+
+iff not variant_g: ecchar "The letter g with breve";
+beginchar(oct"247",9u#,x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=x_height+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=x_height+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,x_height]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=x_height+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+% the accent
+lowercase_breve(.5w,0,15,16,17);
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: ecchar "Variant letter g with breve";
+beginchar(oct"247",10u#+serif_fit#,
+ max(x_height#+acc_height#,min(asc_height#,2x_height#)),desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,x_height)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=x_height+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+% the accent
+lowercase_breve(.5w,0,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+ecchar "The letter l with acute"; % jk
+beginchar_twice(oct"250",5u#,asc_height#,0);
+l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=asc_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+put_accent;
+repeat_once;
+penlabels(1,2); endchar;
+
+ecchar "The letter l with hachek"; % from csotherl.mf (csfonts)
+beginchar(oct"251",5u#,lc_acute_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr lc_acute_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,
+ if monospace: 0 else: dot_size#+0.25u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=asc_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+fi
+if serifs:
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2);
+dtl_hachek(x1r+u+.5pdot_diam)(y1);
+endchar;
+
+ecchar "The letter crossed l"; % from pl_ml (plfonts)
+beginchar_twice(oct"252",5u#,asc_height#,0);
+ italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+ charwd_:=charwd;
+ adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+ pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+ if odd(w-stem'): change_width; fi
+ lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ fi
+ if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+ penlabels(1,2);
+ numeric unbalance;
+ unbalance=if monospace: 1 else: 1.1 fi;
+ if not monospace:
+ numeric cross_fit#;
+ cross_fit#=serif_fit#+if not serifs: if is_bold: 1 else: .75 fi\\ else:
+ .5 fi\\ u#;
+ charwd:=charwd_;
+ adjust_fit(cross_fit#+stem_shift#,unbalance*cross_fit#-stem_shift#);
+ fi
+ numeric l_jut;
+% some funny fonts have an extremally small |jut|:
+ l_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+ put_cross(l_jut,unbalance*l_jut);
+repeat_once;
+endchar;
+
+ecchar "The letter n with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"253",10u#,x_height#,0);
+ italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+ adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+ pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+ lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+ top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+ filldraw stroke z1'e--z2'e; % left stem
+ h_stroke(2,a,3,4); % arch and right stem
+ if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter n with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"254",10u#,lc_hachek_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=x_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4);
+lc_hachek_accent(1/2[x1r,x.a1]);
+endchar;
+
+
+ecchar "The letter eng";
+beginchar(oct"255",10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+% j stroke
+ pickup tiny.nib; pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+ x7=.5[x4,x8r]; bot y7r=-d-oo; y8-.5flare=-.88d;
+ if monospace:
+ lft x8r=hround(x3r-3u+0.5stem);
+ else:
+ z8r=z9r; rt x9l=hround(x3r-3u+0.5stem); % floor .75u
+ fi;
+ (x,y7r)=whatever[z7l,z4l]; x7r:=max(x,.5[x8r,x7]);
+ filldraw stroke z4e{down}...z7e{left}; bulb(7,8,9); % arc and bulb
+else: pickup fine.nib; pos4'(stem',0); z4'=z4;
+ pos8(.2[vair,stem'],-90); pos9(vair,-90);
+ lft x9r=hround -.75u+x3r-3u-0.5stem;
+ bot y9r=vround 5/6(-d-oo);
+ (x,y9l)=whatever[z9r,z3];
+ x9l:=x;
+ z7r=z4'r;
+ (x4'l,y7l)=whatever[z9l,z7r]; x7l=x4'l; y7=y7r;
+ x8r=.5[x9r,x7r]; x8l:=.5[x9l,x7l]; bot y8r=-d-oo;
+ filldraw stroke z4'e..{down}z7e
+ & super_arc.e(7,8)
+ & z8e{left}..z9e;
+fi % arc and terminal
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter o with double acute";
+beginchar_twice(oct"256",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+ecchar "The letter r with acute";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+beginchar_twice(oct"257",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,
+ x_height#+acc_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+define_whole_blacker_pixels(r_flare); % must come after |beginchar_twice|
+pickup fine.nib; top y4r=x_height+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,x_height]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=x_height+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+% the accent
+hpos_corr=-.25u; put_accent;
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+ecchar "The letter r with hachek"; % from cshachel.mf (csfonts)
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"260",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,
+ lc_hachek_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=x_height+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,x_height]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=x_height+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6);
+lc_hachek_accent(0.5[x1,x4]);
+endchar;
+
+ecchar "The letter s with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"261",7.1u#,x_height#,0);
+ italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+ adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+ numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+ numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+ numeric ess'; ess'=max(fine.breadth,ess);
+ pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+ pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+ top y2l=h+vround 1.5oo; bot y7r=-oo;
+ y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+ lft x3l=hround .6u; rt x6r=hround(w-.6u);
+ x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+ interim superness:=more_super;
+ filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+ if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+ else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+ penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "The letter s with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"262",7.1u#,lc_hachek_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-x_height/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=x_height+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,x_height]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93x_height+1.5oo); bot y8r=vround .1x_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+lc_hachek_accent(0.5[x3l,x1l]);
+endchar;
+
+ecchar "The letter cedilla s";
+beginchar(oct"263",7.1u#,x_height#,0.875desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-x_height/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=x_height+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,x_height]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93x_height+1.5oo); bot y8r=vround .1x_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+% the accent
+lowercase_cedilla(x7,0,11,12,13,14,15);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+ecchar "The letter t with hachek"; % from csotherl.mf (csfonts)
+%beginchar(oct"264",6u#+max(u#,.5stem#),
+% min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+beginchar(oct"264",6u#+max(u#,.5stem#),lc_acute_height#,0);
+numeric hh';
+hh' = min(asc_height,if hefty:9/7 else:10/7 fi\\ x_height);
+italcorr lc_acute_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=hh';
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=hh';
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8);
+dtl_hachek(x8)(y1+.5pdot_diam);
+endchar;
+
+ecchar "The letter cedilla t";
+beginchar(oct"265",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0.875desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+% the accent
+lowercase_cedilla(x4,0,9,10,11,12,13);
+penlabels(1,2,3,4,5,6,7,8,9,10,1,12,13); endchar;
+
+ecchar "The letter u with double acute";
+beginchar_twice(oct"266",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "The letter circle u";
+beginchar(oct"267",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% the accent
+lowercase_circle(.5w,(1/3[x_height,h]+apex_o),7,8,9,10);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "The letter y with umlaut";
+beginchar(oct"270",if serifs:9.5u# else:9u# fi,lc_trema_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=x_height; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+% the accent
+lowercase_umlaut(0,0,10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "The letter z with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"271",8u#,x_height#,0);
+ italcorr x_height#*slant-.5serif_fit#-.3u#;
+ adjust_fit(0,.5serif_fit#);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+ else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+ pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha;
+ alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+ arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+ arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "The z with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"272",8u#,lc_hachek_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=x_height; y2=min(y1,x_height-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=x_height; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8);
+lc_hachek_accent(1/2[x6r,x1r]);
+endchar;
+
+ecchar "The letter z with dot above"; % from pl_ml (plfonts)
+beginchar_twice(oct"273",8u#,x_height#,0);
+ italcorr x_height#*slant-.5serif_fit#-.3u#;
+ adjust_fit(0,.5serif_fit#);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+ else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+ pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha;
+ alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+ arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+ arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ put_dot(tiny,max(dot_size#,cap_curve#));
+repeat_once;
+endchar;
+
+ecchar "The letter ij";
+beginchar(oct"274",10.5u#,min(asc_height#,10/7x_height#+.5idot_diam#),desc_depth#);
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;
+% adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.25w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(idot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+%
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos11(stem',0); pos12(stem',0);
+rt x11r=hround(.75w+.25u+.5stem'); x11=x12;
+top y11=x_height if serifs: +min(oo,serif_drop) fi; bot y12=-1/3d;
+filldraw stroke z11e--z12e; % stem
+pos13(idot_diam,0); pos14(idot_diam,90);
+x13r=x11r; top y14r=h+1;
+if bot y14l-top y11<slab: y14l:=min(y14r-eps,y11+tiny+slab); fi
+x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+if serifs: sloped_serif.l(11,12,aa,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x12,x16r]; bot y15r=-d-oo; y16-.5flare=-.88d;
+ if monospace: lft x16r=.5w else: z16r=z17r; rt x17l=.5w+floor .75u fi;
+ (x,y15r)=whatever[z15l,z12l]; x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke z12e{down}...z15e{left}; bulb(15,16,17); % arc and bulb
+else: pickup fine.nib; pos12'(stem',0); z12'=z12;
+ pos16(.2[vair,stem'],-90); pos17(vair,-90);
+ lft x17r=hround .5w-.75u; bot y17r=vround 5/6(-d-oo);
+ (x,y17l)=whatever[z17r,z13]; x17l:=x;
+ z15r=z12'r; (x12'l,y15l)=whatever[z17l,z15r]; x15l=x12'l; y15=y15r;
+ x16r=.5[x17r,x15r]; x16l:=.5[x17l,x15l]; bot y16r=-d-oo;
+ filldraw stroke z12'e..{down}z15e & super_arc.e(15,16)
+ & z16e{left}..z17e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,11,12,13,14,15,16,17); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exrlig.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exrlig.mf
new file mode 100644
index 00000000000..81ebc5b100a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exrlig.mf
@@ -0,0 +1,221 @@
+% exrlig.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% roman style ligature characters
+% dotless i,j; ligatures fi, ff, fl, ffi, ffl
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Dotless letter i";
+beginchar(oct"031",5u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2); endchar;
+
+ecchar "Dotless letter j";
+beginchar(oct"032",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+penlabels(1,2,5,6,7); endchar;
+
+
+numeric itc#; % modified italic correction on `f' and `ff'
+itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi;
+
+
+ecchar "The ligature fi";
+beginchar(oct"034",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x12r;
+ y2+.5bulb_diam=.8[x_height,h+oo]; top y11=x_height+min(oo,serif_drop);
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(6/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u;
+ pickup tiny.nib; pos13(bulb_diam,0); pos14(bulb_diam,90);
+ x13=x11-.5; top y14r=min(2x_height,h+1); top y11=x_height;
+ if bot y14l-x_height<tiny: y14l:=min(y14r-eps,y11+2tiny); fi
+ x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+fi; % this is the ligature we're drawing
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup tiny.nib; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11; % bar will overlap upper right serif
+ sloped_serif.l(11,12,d,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+
+ecchar "The ligature ff";
+beginchar(oct"033",10.5u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+normal_adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-3u+.5stem');
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); pos12(bulb_diam,0);
+ rt x2r=hround(rt x11r-stem_corr); lft x12l=hround(w-.75u+.5);
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 6.25u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(w+.75u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,1.25jut); % right stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-1/3u);
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+
+ecchar "The ligature fl";
+beginchar(oct"035",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0; top y11=h;
+filldraw stroke z11e--z12e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ y2+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(11,12,d,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u; fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11;
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+ecchar "The ligature ffi";
+beginchar(oct"036",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r;
+ top y21=x_height+min(oo,serif_drop);
+ y2+.5bulb_diam=.8[x_height,h+oo]; y12=y2;
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(6/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u);
+ pickup tiny.nib; pos23(bulb_diam,0); pos24(bulb_diam,90);
+ x23=x21-.5; top y24r=min(2x_height,h+1); top y21=x_height;
+ if bot y24l-x_height<tiny: y24l:=min(y24r-eps,y21+2tiny); fi
+ x23=x24; y23=.5[y24l,y24r]; dot(23,24); fi % dot
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup tiny.nib; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x21; % bar will overlap upper right serif
+ sloped_serif.l(21,22,g,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+else: rt x4=hround(.5w+2.8u); fi
+pickup crisp.nib;
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22,23,24); endchar;
+
+ecchar "The ligature ffl";
+beginchar(oct"037",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0; top y21=h;
+filldraw stroke z21e--z22e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r-stem_corr;
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(21,22,g,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+ pickup crisp.nib; x4=x21;
+else: rt x4=hround(.5w+2.8u); fi
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exrligtb.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exrligtb.mf
new file mode 100644
index 00000000000..8ba304b8b52
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exrligtb.mf
@@ -0,0 +1,341 @@
+% exrligtb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% ligtable and kerning programs for roman style fonts
+%
+% This file should not be called for monospaced fonts !
+%
+% The following ligatures are integrated:
+%
+% fi
+% fl
+% ff
+% ffi
+% ffl
+%
+% --
+% ---
+% -<hyphenchar>
+% >>
+% <<
+% ``
+% ''
+% ,,
+% !` and ?`
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ligtable
+ "f": "i"=:oct"034",
+ "f"=:oct"033",
+ "l"=:oct"035",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ oct"033": % ff
+ "i"=:oct"036",
+ "l"=:oct"037",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ "`": "`"=:oct"020",
+ oct"020" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "'": "'"=:oct"021",
+ oct"021" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "-": "-" =: oct"025",
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+
+ligtable
+ oct"025": "-"=:oct"026"; % "---" => emdash
+
+ligtable "<": "<" =: oct"023"; % "<<"
+ligtable ">": ">" =: oct"024"; % ">>"
+ligtable ",": "," =: oct"022"; % ",,"
+ligtable "!": "`" =: oct"275"; % spanish shriek
+ligtable "?": "`" =: oct"276"; % spanish query
+
+
+def lig_o_table (expr k) =
+ "o" kern k, oct"256" kern k, oct"362" kern k, oct"363" kern k,
+ oct"364" kern k, oct"365" kern k, oct"366" kern k,
+ oct"367" kern k, oct"370" kern k
+enddef;
+
+def lig_a_table (expr k) =
+ "a" kern k, oct"240" kern k, oct"241" kern k, oct"340" kern k,
+ oct"341" kern k, oct"342" kern k, oct"342" kern k,
+ oct"343" kern k, oct"344" kern k, oct"345" kern k,
+ oct"346" kern k
+enddef;
+
+def lig_c_table (expr k) =
+ "c" kern k, oct"242" kern k, oct"243" kern k, oct"347" kern k
+enddef;
+
+def lig_e_table (expr k)=
+ "e" kern k, oct"245" kern k, oct"246" kern k, oct"350" kern k,
+ oct"351" kern k, oct"352" kern k, oct"353" kern k
+enddef;
+
+def lig_u_table (expr k)=
+ "u" kern k, oct"266" kern k, oct"267" kern k, oct"371" kern k,
+ oct"372" kern k, oct"373" kern k, oct"374" kern k
+enddef;
+
+def lig_A_table (expr k)=
+ "A" kern k, oct"200" kern k, oct"201" kern k, oct"300" kern k,
+ oct"301" kern k, oct"302" kern k, oct"303" kern k,
+ oct"304" kern k, oct"305" kern k, oct"306" kern k
+enddef;
+
+def lig_O_table (expr k)=
+ "O" kern k, oct"216" kern k, oct"322" kern k, oct"323" kern k,
+ oct"324" kern k, oct"325" kern k, oct"326" kern k,
+ oct"327" kern k, oct"330" kern k
+enddef;
+
+def lig_CGQ_table (expr k)=
+ "C" kern k, "G" kern k, oct"202" kern k, oct"203" kern k,
+ oct"207" kern k, oct"307" kern k, "Q" kern k
+enddef;
+
+def lig_U_table (expr k)=
+ "U" kern k, oct"226" kern k, oct"227" kern k, oct"331" kern k,
+ oct"332" kern k, oct"333" kern k, oct"334" kern k
+enddef;
+
+def lig_cA_table =
+ "A": oct"200": oct"300": oct"301": oct"302":
+ oct"303": oct"304": oct"305":
+enddef;
+
+k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning
+
+ligtable boundarychar:
+ oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#,
+ oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#;
+
+ligtable oct"022":
+ oct"015" kern 2u#, "," kern 2u#,
+ oct"015":
+ oct"022" kern 2u#,
+ "j" kern -kkk#, oct"032" kern -kkk#, "g" kern -ku#, oct"247" kern -ku#,
+ "y" kern -ku#, oct"270" kern -ku#, oct"375" kern -ku#,
+ "v" kern kk#, "w" kern ku#, "V" kern kkk#, "W" kern kk#,
+ "Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
+ lig_O_table(k#), lig_CGQ_table(k#),
+ boundarychar kern -kk#;
+
+ligtable oct"020":
+ oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"021":
+ oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"024": % ">>"
+ "." kern kk#, "," kern kk#;
+
+ligtable
+ "k": "W" kern kk#, "V" kern kk#,
+ if serifs: "v": lig_a_table(-u#), fi
+ "w": lig_e_table(k#),
+ lig_a_table(k#),
+ lig_o_table(k#),
+ lig_c_table(k#);
+
+ligtable
+ "P": lig_A_table(kk#),
+ "y": oct"270": oct"375": % \"y, \'y
+ lig_o_table(k#),
+ lig_e_table(k#),
+ lig_a_table(k#),
+ "." kern kk#,
+ "," kern kk#;
+ligtable
+ "F":"V": "W":
+ if serifs:
+ "o" kern kk#,
+ "a" kern kk#,
+ "e" kern kk#,
+ "y" kern kk#,
+ "u" kern kk#,
+ "r" kern kk#,
+ "v" kern kk#,
+ "s" kern kk#,
+ "c" kern kk#,
+ "d" kern kk#,
+ "g" kern kk#,
+ "m" kern kk#,
+ "n" kern kk#,
+ "p" kern kk#,
+ "w" kern kk#,
+ "z" kern kk#,
+ oct"346" kern kk#,
+ oct"370" kern kk#,
+ lig_A_table(kkk#),
+ else:
+ "o" kern k#,
+ "a" kern k#,
+ "e" kern k#,
+ "y" kern k#,
+ "u" kern k#,
+ "r" kern k#,
+ "v" kern k#,
+ "s" kern k#,
+ "c" kern k#,
+ "d" kern k#,
+ "g" kern k#,
+ "m" kern k#,
+ "n" kern k#,
+ "p" kern k#,
+ "w" kern k#,
+ "z" kern k#,
+ oct"346" kern k#,
+ oct"370" kern k#,
+ lig_A_table(kk#),
+ fi
+ "X": lig_O_table(k#),
+ lig_CGQ_table(k#);
+
+ligtable "K": if serifs:
+ "v" kern kk#,
+ "w" kern k#,
+ else:
+ "v" kern k#,
+ fi
+ lig_o_table(k#),
+ lig_CGQ_table(k#);
+
+ligtable
+ "T": oct"224": oct"225": % \v{T}, \c{T}
+ "y" kern if serifs: k# else: kk# fi,
+ "Y": oct"230": oct"335": % \"Y, \'Y
+ "e" kern kk#,
+ "o" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "u" kern kk#,
+ "n" kern kk#,
+ oct"031" kern kk#, % \i
+ "c" kern kk#,
+ "d" kern kk#,
+ "g" kern kk#,
+ "p" kern kk#,
+ "s" kern kk#,
+ "v" kern kk#,
+ "w" kern kk#,
+ "x" kern kk#,
+ "z" kern kk#,
+ lig_A_table(kk#);
+ligtable
+ "O": oct"216": oct"322": oct"323": oct"324": oct"325": oct"326": oct"330":
+ "D": oct"204": oct"320":
+ "X" kern k#,
+ "W" kern k#,
+ lig_A_table(k#),
+ "V" kern k#,
+ "Y" kern k#, oct"230" kern k#, oct"335" kern k#;
+if serifs:
+ligtable
+ "m": "n": "h":
+ "W" kern kk#, "V" kern kk#,
+ oct"253": oct"254": oct"255": oct"361": % \'n, \v{n}, \ng, \~n
+ "t" kern k#,
+ lig_u_table(k#),
+ "b" kern k#,
+ "y" kern k#,
+ "v" kern k#,
+ "w" kern k#;
+ligtable
+ "c": oct"242": oct"243": oct"347": % \'c, \v{c}, \c{c}
+ "h" kern k#,
+ "k" kern k#;
+fi
+ligtable
+ "o": oct"256": oct"362": oct"363": oct"364": oct"365": oct"366": oct"370":
+ "b": "p": lig_e_table(-k#),
+ lig_o_table(-k#),
+ "x" kern k#,
+ "d" kern -k#,
+ lig_c_table(-k#),
+ "q" kern -k#,
+ "a": oct"240": oct"340": oct"341": oct"342": oct"343": oct"344": oct"345":
+ if serifs:
+ "v" kern k#,
+ "j" kern u#,
+ else:
+ "r" kern k#,
+ fi
+ "t": oct"264": oct"265":
+ "y" kern k#, oct"270" kern k#, oct"375" kern k#,
+ "u": oct"266": oct"267": oct"371": oct"372": oct"373": oct"374":
+ "w" kern k#;
+ligtable
+ lig_cA_table
+ "y" kern if serifs: kk# else: k# fi,
+ oct"270" kern if serifs: kk# else: k# fi,
+ oct"375" kern if serifs: kk# else: k# fi,
+ oct"202": %\k{A}
+ "v" kern if serifs: kkk# else: k# fi,
+ "w" kern if serifs: kk# else: k# fi,
+ lig_c_table(k#),
+ "d" kern k#, oct"244" kern k#,
+ oct"236" kern k#, oct"360" kern k#,
+ lig_e_table(k#),
+ lig_o_table(k#),
+ "q" kern k#,
+ if serifs: "R": oct"217": fi
+ "t" kern k#, oct"264" kern k#, oct"265" kern k#,
+ lig_CGQ_table(k#),
+ lig_O_table(k#),
+ lig_U_table(k#),
+ "L": oct"210": oct"211": oct"212":
+ "T" kern kk#, oct"224" kern kk#, oct"225" kern kk#,
+ "Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
+ "V" kern kkk#,
+ "W" kern kkk#;
+ligtable "g": "j" kern -k#; % logjam
+ligtable "I": "I" kern -k#; % Richard III
+ligtable "e": "V" kern kk#; % eV
+ligtable oct"241": % \k{a}
+ if serifs: "g" kern -k# , "p" kern -k#, fi\\ "w" kern k#;
+ligtable oct"252": % \l
+ "'" kern -k#
+ if not serifs: ,
+ "a" kern k#, oct"241" kern k#, "c" kern k#, oct"242" kern k#,
+ "d" kern k#, "e" kern k#, oct"246" kern k#, "g" kern k#,
+ "o" kern k#, oct"363" kern k#, "s" kern k#, oct"261" kern k#
+ fi;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exrllett.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exrllett.mf
new file mode 100644
index 00000000000..b2f738a6677
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exrllett.mf
@@ -0,0 +1,833 @@
+% exrllett.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% roman lowercase letters a to z
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter a";
+beginchar("a",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "The letter b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "The letter d";
+beginchar("d",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "The letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "The letter f";
+beginchar("f",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+iff not variant_g: ecchar "The letter g";
+beginchar("g",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: ecchar "Variant letter g";
+beginchar("g",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "The letter h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter i";
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5idot_diam#),0);
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);
+if serifs: x3r=max(x1r,hround(x1+.5idot_diam-.2jut)-.5tiny)
+else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter j";
+beginchar("j",5.5u#,min(asc_height#,10/7x_height#+.5idot_diam#),desc_depth#);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "The letter k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+ecchar "The letter l";
+beginchar("l",5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2); endchar;
+
+ecchar "The letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; % stem, sic
+lft x3l=hround(.5w-.5mfudged.stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)+r-w; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter p";
+beginchar("p",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The letter q";
+beginchar("q",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The letter r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter s";
+beginchar("s",7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+ecchar "The letter t";
+beginchar("t",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The letter u";
+beginchar("u",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+ecchar "The letter v";
+beginchar("v",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4); endchar;
+
+ecchar "The letter w";
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+ecchar "The letter x";
+beginchar("x",if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+ecchar "The letter y";
+beginchar("y",if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter z";
+beginchar("z",8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exrlwest.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exrlwest.mf
new file mode 100644
index 00000000000..6265defeff7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exrlwest.mf
@@ -0,0 +1,1166 @@
+% exrlwest.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% lowercase accented letters ("western part")
+%
+% oct"340" .. oct"377"
+%
+% oct"340" a with gravis
+% oct"341" a with acute
+% oct"342" a with circumflex
+% oct"343" a with tilde
+% oct"344" a with umlaut
+% oct"345" a with ring
+% oct"346" ae
+% oct"347" c with cedilla
+%
+% oct"350" e with gravis
+% oct"351" e with acute
+% oct"352" e with circumflex
+% oct"353" e with umlaut
+% oct"354" i with gravis
+% oct"355" i with acute
+% oct"356" i with circumflex
+% oct"357" i with umlaut
+%
+% oct"360" edh (icelandic)
+% oct"361" n with tilde
+% oct"362" o with gravis
+% oct"363" o with acute
+% oct"364" o with circumflex
+% oct"365" o with tilde
+% oct"366" o with umlaut
+% oct"367" oe
+%
+% oct"370" o with /
+% oct"371" u with gravis
+% oct"372" u with acute
+% oct"373" u with circumflex
+% oct"374" u with umlaut
+% oct"375" y with acute
+% oct"376" thorn
+% oct"377" sharp s
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter a with gravis";
+beginchar_twice(oct"340",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+hpos_corr=u; put_gravis;
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "The letter a with acute";
+beginchar_twice(oct"341",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+hpos_corr=-u; put_accent;
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "The letter a with circumflex";
+beginchar(oct"342",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+lowercase_hat(x3,oo,14,15,16,17,18);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18); endchar;
+
+
+ecchar "The letter a with tilde";
+beginchar(oct"343",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+lowercase_tilde(0,0,14,15,16,17,18);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18); endchar;
+
+
+
+ecchar "The letter a with umlaut";
+beginchar(oct"344",9u#,lc_trema_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+lowercase_umlaut(0,0,14,15,16,17);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17); endchar;
+
+ecchar "The letter a with ring";
+beginchar(oct"345",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+lowercase_circle(x3,(1/3[x_height,h]+apex_o),14,15,16,17);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17); endchar;
+
+
+
+ecchar "The ligature ae";
+beginchar(oct"346",13u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
+right_curve=max(tiny.breadth,hround(curve-if serifs:6
+else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y
+ y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % right terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l;
+ x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(mfudged.hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=4u;
+ y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=4.3u; top y1r=vround .82[bar_height,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % left terminal
+pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
+pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
+filldraw stroke super_arc.e(3,4)&z4e--z5e; % arc and stem
+pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
+pos7(left_curve,180);
+lft x7r=hround max(.5u,1.5u-.5left_curve);
+y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=3.75u; bot y8r=-oo;
+pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
+(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if y9<y5:
+filldraw stroke z5e{down}..{down}z9e;
+fi % link (usually hidden)
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+
+ecchar "The letter cedilla c";
+beginchar(oct"347",8u#,x_height#,0.875desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+% the accent
+lowercase_cedilla(x4,0,6,7,8,9,10);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "The letter e with gravis";
+beginchar_twice(oct"350",7.25u#+max(.75u#,.5curve#),x_height#+acc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+hpos_corr=1.5u; put_gravis;
+repeat_once;
+penlabels(0,1,2,3,4,5,7,8); endchar;
+
+
+ecchar "The letter e with acute";
+beginchar_twice(oct"351",7.25u#+max(.75u#,.5curve#),x_height#+acc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+hpos_corr=-u; put_accent;
+repeat_once;
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "The letter circumflex e";
+beginchar(oct"352",7.25u#+max(.75u#,.5curve#),x_height#+acc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+% the accent
+lowercase_hat(.5w,oo,7,8,9,10,11);
+penlabels(0,1,2,3,4,5,7,8); endchar;
+
+
+ecchar "The letter e with umlaut";
+beginchar(oct"353",7.25u#+max(.75u#,.5curve#),lc_trema_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+% the accent
+lowercase_umlaut(0,0,7,8,9,10);
+penlabels(0,1,2,3,4,5,7,8,9,10); endchar;
+
+ecchar "The letter i with gravis";
+beginchar_twice(oct"354",5u#,x_height#+acc_height#,0);
+italcorr (x_height#+acc_height#)*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#
+ if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+put_gravis;
+repeat_once;
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "The letter i with acute";
+beginchar_twice(oct"355",5u#,x_height#+acc_height#,0);
+italcorr (x_height#+acc_height#)*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#
+ if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+% the accent
+if not monospace: hpos_corr = -.5u; fi
+put_accent;
+repeat_once;
+penlabels(1,2); endchar;
+
+
+ecchar "The letter circumflex i";
+beginchar(oct"356",5u#,x_height#+acc_height#,0);
+italcorr (x_height#+acc_height#)*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#
+ if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+% the accent
+lowercase_hat(x1,oo,3,4,5,6,7);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+ecchar "The letter i with umlaut";
+beginchar(oct"357",5u#,lc_trema_height#,0);
+italcorr (x_height#+acc_height#)*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0.5u#+serif_fit#+stem_shift#
+ if monospace:+.25u#fi,0.5u#+serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+% the accent
+lowercase_umlaut(0,0,3,4,5,6);
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar"The letter edh";
+% Corrected version by Yannis
+beginchar(oct"360",9u#,asc_height#,0);
+italcorr .x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+oh := x_height;
+pickup fine.nib;
+pos1(vair,90); pos3(vair',-90);
+pos2(curve,180); pos4(curve,0); pos4'(hair,0) ;
+lft x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; top y1r=oh + vround 1.5oo; bot y3r=-oo;
+y2=y4=.5oh-vair_corr; y2l:=y4l:=.52oh;
+x4'l = x4l ; y4 = y4' ;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) -- pulled_arc.e(4',1); % bowl
+pos5(.5[vair,hair],40) ;
+x5l = x2 ; top y5r = h ; x7r = x4r; y7 = .95[x4,x1];
+pos7(curve,0);
+filldraw stroke z5e .. tension 1.1 and 1 .. z7e{down} .. z4e ;
+path p ; p = z5 .. tension 1.1 and 1 .. z7{down} ;
+z6 = ((0,if monospace:.6 else: .7 fi[x_height,asc_height]) --
+ (w,.6[x_height,asc_height]))
+ intersectionpoint p ;
+pos6'(.5[vair,hair],-60) ; pos 6''(.5[vair,hair],-60) ;
+top y6''l = h ; z6'' = z6 + whatever*dir30;
+z6 = .5[z6',z6''] ; filldraw stroke z6'e -- z6''e ;
+penlabels(1,2,3,4,5,6,6',6''); endchar;
+
+ecchar "The letter n with tilde";
+beginchar(oct"361",10u#,x_height#+acc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=x_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+% the accent
+lowercase_tilde(0,0,5,6,7,8,9);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+ecchar "The letter o with gravis";
+beginchar_twice(oct"362",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+hpos_corr=u; put_gravis;
+repeat_once;
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "The letter o with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"363",9u#,x_height#,0);
+ italcorr .7x_height#*slant;
+ adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+ penpos1(vair,90); penpos3(vair',-90);
+ penpos2(curve,180); penpos4(curve,0);
+ x2r=hround max(.5u,1.25u-.5curve);
+ x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+ y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+ penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+ penlabels(1,2,3,4);
+if serifs: hpos_corr=-u; fi put_accent;
+repeat_once;
+endchar;
+
+
+ecchar "The letter o with circumflex";
+beginchar(oct"364",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% the accent
+lowercase_hat(x1,oo,5,6,7,8,9);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter o with tilde";
+beginchar(oct"365",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% the accent
+lowercase_tilde(0,0,5,6,7,8,9);
+penlabels(1,2,3,4,5,6,7,8,9);endchar;
+
+ecchar "The letter o with umlaut";
+beginchar(oct"366",9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% the accent
+lowercase_umlaut(0,0,5,6,7,8);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The ligature oe";
+beginchar(oct"367",14u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(fine.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5(w+u)-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; pos1(vair,90); pos3(vair,-90);
+pos2(left_curve,180); pos4(mfudged.stem,0);
+lft x2r=hround max(.5u,1.25u-.5curve);
+z4=z13; x1=x3=.5[x2,x4]; top y1r=h+vround 1.5oo; bot y3r=-oo;
+y2=y4; y2l:=y4l:=.52h;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of left bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of left bowl
+penlabels(1,2,3,4,10,11,12,13,14,15); endchar;
+
+ecchar "Scandinavian letter o/slash";
+beginchar(oct"370",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr h#*slant-u#-max(.5fudge*stem#,.75u#)+.5vair#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90);
+penpos2(fudged.stem,180); penpos4(fudged.stem,0);
+x2r=hround max(.5u,1.25u-.5fudged.stem);
+x4r=w-x2r; x1=x3=.5w;
+y1r=x_height+vround 1.5oo; y2=y4=.5x_height-vair_corr; y3r=-oo;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+x5=x4; x6=x2; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter u with gravis";
+beginchar_twice(oct"371",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+hpos_corr=0.75u; put_gravis;
+repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter u with acute";
+beginchar_twice(oct"372",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% the accent
+hpos_corr=-u; put_accent;
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "The letter u with circumflex";
+beginchar(oct"373",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% the accent
+lowercase_hat(.5[x1,x3],oo,7,8,9,10,11);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+ecchar "The letter u with umlaut";
+beginchar(oct"374",10u#,lc_trema_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% the accent
+lowercase_umlaut(0,0,7,8,9,10);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "The letter y with acute";
+beginchar_twice(oct"375",if serifs:9.5u# else:9u# fi,
+ x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=x_height; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+% the accent
+put_accent;
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff fancy_thorn:
+ecchar "The letter thorn"; % from cmman
+beginchar(oct"376",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6=x3; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+iff not fancy_thorn:
+ecchar "The letter thorn"; % jk: Bowl as in `p' or `b'
+beginchar(oct"376",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff classic_sharp_s:
+ecchar "German letter sharp s";
+beginchar(oct"377",4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
+penpos3(vair-fine,90); fine.top y3r=h+oo;
+filldraw stroke z1e--z2e; % stem
+numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
+pickup fine.nib; pos4(curve',0); pos5(vair,-90);
+pos2'(stem',180); z2'=z2; x3=.5[x2,x4]; rt x4r=hround(w-u);
+top y5l=x_height; lft x5=min(lft x4l,hround(stem_edge+u));
+filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull); % upper bowl
+pos5'(vair,90); z5'=z5; pos6(curve',0); pos7(vair,-90);
+rt x6r=hround(w-.5u)+3eps; y6=.4x_height; bot y7r=-oo;
+if serifs: pos8(hair,-180) else: pos8(vair,-110) fi;
+lft x8r=min(hround(stem_edge+.5u+1),lft x8r+x6r-2eps-x8l);
+x7=max(x8l+eps,.4[lft x8r,x6]);
+filldraw stroke pulled_super_arc.e(5',6)(.5superpull)
+ & pulled_super_arc.e(6,7)(.5superpull); % lower bowl
+if serifs: pos9(5/7[vair,flare],-180);
+ y9-(x9-lft x9r)=vround .07x_height; bulb(7,8,9); % bulb
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % bar
+ dish_serif(1,2,b,1/3,jut,c,0,epsilon); % serif
+else: bot y8r=vround .01h; x8l:=good.x x8l; y8l:=good.y(y8l+.5);
+ filldraw stroke term.e(7,8,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff not classic_sharp_s:
+ecchar "German letter scharfes s";
+% completely remade to exhibit the long s-short s ligature % jk
+beginchar(oct"377",4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
+penpos3(vair-fine,90); fine.top y3r=h+oo;
+filldraw stroke z1e--z2e; % stem
+numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos4(hair,0);
+pos2'(stem',180); z2'=z2; x3=.5[x2,x4];
+rt x4r=hround(w-if not hefty: 2 fi\\u);
+numeric xx; xx=min(x3, hround(stem_edge+u));
+numeric theta;
+theta=90-angle(40u,x_height); slope:=-x_height/40u; % angle at middle
+pos5(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos22(ess',theta); pos10(s_slab,-90);
+x5l=hround(.5[xx,w-u]);
+%if x5l+1<x4l: x5l:=x4l-1; fi
+x5l=x22=x10;
+top y5l=x_height+vround 1.5oo; bot y10r=-oo;
+y22-.5ess'=y10l+if serifs:.54 else: .52 fi\\(y5r-y10l-ess');
+lft x6l=xx; rt x9r=hround(w-.6u);
+x6r-x6l=x9r-x9l=hround .5[s_slab,ess']-fine;
+ellipse_set(5l,6l,7l,22l); ellipse_set(5r,6r,7r,22r); y6=y6r;
+ellipse_set(10l,9l,8l,22l); ellipse_set(10r,9r,8r,22r); y9=y9r;
+interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull) % upper bowl
+ ..super_arc.e(5,6) & z6e{down}
+ ..z7e---z8e..z9e{down} & super_arc.e(9,10); % main s stroke
+if serifs: pos21(hair,180); pos11(hair,180);
+ rt x21l=hround(w-1.05u); lft x11r=xx;
+ bot y21=min(bot y5r,vround 1/5[top y8r,x_height]);
+ top y11=max(top y10l,vround 5/6 bot y7l);
+ filldraw stroke z10e{left}....{x11-x10,5(y11-y10)}z11e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z21{up}....{left}z5; lower_arc=z10{left}....{x11-x10,5(y11-y10)}z11;
+ pos20(.3[fine.breadth,cap_hair],0); pos12(.3[fine.breadth,cap_hair],0);
+ x20r=x21l; top y20=top y5l; x12l=x11r; bot y12=bot y10r;
+ x21l-x21'=x11'-x11r=1.6cap_curve-fine; y21'=y21; y11'=y11;
+ t:=xpart(lower_arc intersectiontimes(z12r--z11'));
+ filldraw z11r--z12l--z12r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos21(4/7[s_slab,flare],-100); pos11(flare,-100);
+ x21l=good.x(x21l+w-u-rt x21); lft x11r=xx;
+ top y21l=vround(.93x_height+1.5oo); bot y11r=vround .1x_height-oo;
+ filldraw stroke term.e(10,11,left,1,4); fi % lower arc and terminal
+if serifs:
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % bar
+ dish_serif(1,2,b,1/3,jut,c,0,epsilon); % serif
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10.11.11',12,20,21,21',22); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exroman.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exroman.mf
new file mode 100644
index 00000000000..2a0ff8ed68d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exroman.mf
@@ -0,0 +1,78 @@
+% exroman.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% driver file, called by parameter files with roman style fonts
+
+%
+% dx r l west
+% i u east
+% : : :
+% : : west '3xx / east '2xx
+% : uppercase/lowercase
+% roman / italic
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input exaccess; % accessories for polish special letters
+input expseudo; % pseudoparameters
+
+mode_setup; font_setup; pseudo_setup;
+
+input exruwest;
+input exrlwest;
+input exrueast;
+input exrleast;
+%
+input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040)
+input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !)
+%
+input exaccent; %
+input exsign; % zero for mille, " # $ % @ pound sign
+%
+input exrlig; % dotless i,j; letter ligatures ff fi fl ffi ffl
+%
+input exromp; % (roman punctuation) & ? (spanish ?)
+%
+input exrulett; % upper case (majuscules)
+input exrllett; % lower case (minuscules)
+input exrdigit; % roman digits
+%
+% Fontparameter
+%
+font_coding_scheme:="Extended TeX Font Encoding - Latin";
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (cap_height#+acc_height#);
+font_desc_depth desc_depth#;
+font_max_height (max(asc_height#,body_height#,
+ cap_height#+acc_height#));
+font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+font_baselineskip max(1.2*designsize,body_height#+paren_depth#);
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ input exmligtb; % do the ligature programs for monospaced fonts
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ input exrligtb; % do the ligature programs, not for monospaced fonts
+fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exromp.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exromp.mf
new file mode 100644
index 00000000000..1ed80d5ec42
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exromp.mf
@@ -0,0 +1,107 @@
+% exromp.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% some special roman characters (different from italic variants)
+%
+% & ? spanish ?
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o;
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(fudged.hair,0);
+ rt x0r+jut=hround(w-.9u); top y0=x_height;
+ pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)];
+ y1=max(y0-1.5bracket-.2x_height,2/3x_height);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u);
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(vair,theta); y5=.5h;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=w-3.5u; bot y10l=-o;
+pos9(fudged.stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height;
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[slab,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .07bar_height-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Spanish open question mark";
+beginchar(oct"276",8.5u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); top y8r=h; z7=z8; dot(7,8); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(top_width,180); pos6(top_width,180);
+x2=x4=x5=x6=x7; lft x3r=hround u; top y6=.25[bot y8l,h-x_height]-1;
+bot y2r=-d-oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],-70);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,bot y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exrueast.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exrueast.mf
new file mode 100644
index 00000000000..fe1e34d22a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exrueast.mf
@@ -0,0 +1,991 @@
+% exrueast.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% uppercase accented letters (common to roman and italic fonts)
+% "eastern part"
+%
+% oct"200" .. oct"235"
+%
+% Roman uppercase accents
+%
+% oct"200" A with breve
+% oct"201" A with ogonek
+% oct"202" C with acute
+% oct"203" C with hachek
+% oct"204" D with hachek
+% oct"205" E with hachek
+% oct"206" E with ogonek
+% oct"207" G with breve
+%
+% oct"210" L with acute
+% oct"211" L with komma
+% oct"212" L with stroke (polish)
+% oct"213" N with acute
+% oct"214" N with hachek
+% oct"215" The letter Eng
+% oct"216" O with hungarian umlaut
+% oct"217" R with acute
+%
+% oct"220" R with hachek
+% oct"221" S with acute
+% oct"222" S with hachek
+% oct"223" S with cedilla
+% oct"224" T with hachek
+% oct"225" T with cedilla
+% oct"226" U with hungarian umlaut
+% oct"227" U with ring
+%
+% oct"230" Y with umlauts
+% oct"231" Z with acute
+% oct"232" Z with hachek
+% oct"233" Z with dot
+% oct"234" IJ
+% oct"235" I with dot
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter A with breve";
+beginchar(oct"200",13u#,cap_height#+acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+% the accent
+uppercase_breve(x2,0,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+
+%%% fine fisp
+ecchar "The letter A with ogonek"; % from pl_dl (plfonts)
+beginchar(oct"201",13u#,cap_height#,the_ogonek_depth#);
+ adjust_fit(cap_serif_fit#,cap_serif_fit#);
+ numeric left_stem,right_stem,outer_jut,alpha;
+ right_stem=cap_stem-stem_corr;
+ left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+ outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+ x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+ alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+ penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+ penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+ penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+ penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+ if hefty: y5r else: y5 fi =5/12y0;
+ y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+ if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+ penlabels(0,1,2,3,4,5,6);
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+% |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ put_ogonek(the_pen);
+endchar;
+
+ecchar "The letter C with acute"; % from pl_dl (plfonts)
+if serifs:
+ beginchar_twice(oct"202",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ penlabels(1,1',2,3,4,5,6);
+ put_accent;
+ repeat_once;
+else: beginchar_twice(oct"202",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+ penlabels(1,1',2,3,4,5,6);
+ put_accent;
+ repeat_once;
+fi
+endchar;
+
+ecchar "The letter C with hachek"; % from cshacheu.mf (csfonts)
+if serifs: beginchar(oct"203",13u#,cap_height#+acc_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=cap_height+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6cap_height,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(cap_height-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=cap_height+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(oct"203",11.5u#,cap_height#+acc_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95cap_height+o; top y2r=cap_height+o; y3=.5cap_height;
+ bot y4r=-o; bot y5r=vround .08cap_height-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6);
+uc_hachek_accent(x2l);
+%uc_hachek_accent(0.6[x3,x1]); %% changed from .5 to .65 % 25/12/91
+endchar; %% and to .6 % 3/1/92 %% changed via lc 11/3/92
+
+
+ecchar "The letter D with hachek"; % from cshacheu.mf (csfonts)
+beginchar(oct"204",13.5u#,cap_height#+acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem');
+top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7);
+uc_hachek_accent(1/3[x1l,x5r]);
+endchar;
+
+
+ecchar "The letter E with hachek"; % from cshacheu.mf (csfonts)
+beginchar(oct"205", 12u#-width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+hh:=vround(cap_height-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=hh; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,hh,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9);
+uc_hachek_accent(if serifs: 0.4[x1l,x.e1] else: .5 [x1l,x4] fi);
+endchar;
+
+
+ecchar "The letter E with ogonek"; % from pl_dl (plfonts)
+beginchar(oct"206",12u#-width_adj#,cap_height#,the_ogonek_depth#);
+ italcorr cap_height#*slant-beak_jut#-.5u#;
+ adjust_fit(cap_serif_fit#,0);
+ h:=vround(h-stem_corr);
+ pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+ top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+ arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+ pos5(cap_bar,-90); pos6(hair,0);
+ top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+ pos0(cap_bar,90); pos7(hair,0);
+ z0=z5; x6=x7; y6-y5l=y0l-y7;
+ if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+ else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+ arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+ pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+ bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+ arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+ if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+ penlabels(0,1,2,3,4,5,6,7,8,9);
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+ ogonek_pos=
+ (x.h0-if serifs: 2 else: if is_bold: 1.5 else: 1.75 fi\\ fi\\ u,.5the_pen)+
+ .5 ogonek_breadth*if is_egyptian: origin elseif serifs: right else: left fi;
+ put_ogonek(the_pen);
+endchar;
+
+ecchar "The letter G with breve";
+if serifs: beginchar(oct"207",14u#,cap_height#+acc_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=cap_height+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=cap_height+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar(oct"207",12u#,cap_height#+acc_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93cap_height+o; top y2r=cap_height+o; y3=.5cap_height;
+ bot y4r=-o; bot y5r=vround .07cap_height-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+% the accent
+uppercase_breve(x2,0,10,11,12);
+penlabels(0,1,1',2,3,4,5,6,7,8,9,10,11,12);endchar;
+
+
+ecchar "The letter L with acute";
+beginchar_twice(oct"210",11u#-width_adj#,cap_height#+acc_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% the accent
+hpos_corr=-.5w+hround max(2u,3u-.5cap_stem);
+put_accent;
+repeat_once;
+math_fit(0,u#); penlabels(1,2,3,4); endchar;
+
+
+ecchar "The letter L with hachek"; % from csotheru.mf (csfonts)
+beginchar(oct"211",11u#-width_adj#,cap_height#+acc_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,u#); penlabels(1,2,3,4);
+dtl_hachek(x4-pdot_diam)(y1+.5pdot_diam);
+endchar;
+
+ecchar "The letter crossed L"; % from pl_dl (plfonts)
+beginchar_twice(oct"212",11u#-width_adj#,cap_height#,0);
+ adjust_fit(cap_serif_fit# if not serifs: +1.5u# fi,0);
+ pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+ bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+ arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+ if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+ penlabels(1,2,3,4);
+% some funny fonts have an extremally small |cap_jut|:
+ put_cross(.5cap_stem+if serifs: .9max(limit_dist,cap_jut) else: 1.8u fi,
+ .5cap_stem+3u);
+repeat_once;
+endchar;
+
+ecchar "The letter N with acute"; % from pl_dl (plfonts)
+beginchar_twice(oct"213",13u#+width_adj#,cap_height#,0);
+ italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+ adjust_fit(cap_serif_fit#,cap_serif_fit#);
+ numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+ pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+ pos3(thin_stem,0); pos4(thin_stem,0);
+ pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+ x1=x2; x3=x4; x1l=w-x3r;
+ rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+ else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+ if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+ penlabels(1,1',2,3,4,4',5,6,7);
+ hpos_corr=-.75u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "The letter N with hachek"; % from cshacheu.mf (csfonts)
+beginchar(oct"214",13u#+width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=cap_height; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=cap_height; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=cap_height-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7);
+uc_hachek_accent(.5[x2,x3]);
+endchar;
+
+
+ecchar "The letter Eng"; % from uppern.mf (fc fonts)
+beginchar(oct"215",14u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+italcorr cap_height#*slant;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+y1=2/3h; rt x1r=hround(w-u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 8.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % right stem and arc
+ bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % right stem
+ pickup fine.nib; pos3(cap_stem,0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround 7.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+pickup tiny.nib; pos6(cap_stem,0);pos7(cap_stem,0);
+lft x6l=lft x7l=hround(max(2u,3u-.5cap_stem));top y6=h; bot y7=0;
+filldraw stroke z6e--z7e; %left stem
+pos8(min (cap_hair,cap_stem),0); pos9(cap_hair,-90); pos10(cap_stem,-180);
+y8=y10=2/3h; top y9=h+o; rt x8=rt x6; rt x10l=rt x1r; x9=.5[x8,x10];
+filldraw stroke z8e{up}...z9e...{down}z10e; % big arc
+if serifs:
+ numeric right_jut;
+ if rt x7r+cap_jut+u+1<lft x4r: right_jut=cap_jut;
+ else: x7r+right_jut+u+1=lft x4r; fi
+ dish_serif(6,7,a,1/3,cap_jut,b,1/3,0); % upper serif
+ dish_serif(7,6,c,1/3,cap_jut,d,1/3,right_jut); % lower serif
+fi
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+ecchar "The letter O with double acute";
+beginchar_twice(oct"216",14u#-width_adj#,cap_height#+acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+if monospace: hpos_corr=-2.5u; put_accent; hpos_corr=2.5u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "The letter R with acute";
+beginchar_twice(oct"217",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#+acc_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5cap_height+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+hpos_corr=-.75u;
+put_accent;
+repeat_once;
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "The letter R with hachek"; % from cshacheu.mf (csfonts)
+beginchar(oct"220",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#+acc_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5cap_height+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10);
+uc_hachek_accent(.9[x1,x6l]); %(1/3[x1l,x5r]); oprava 24.10.92
+endchar;
+
+
+ecchar "The letter S with acute"; % from pl_dl (plfonts)
+beginchar_twice(oct"221",10u#,cap_height#,0);
+ italcorr cap_height#*slant-u#;
+ adjust_fit(0,0);
+ numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+ numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+ numeric ess'; ess'=max(fine.breadth,cap_ess);
+ pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+ pos0(ess',theta); pos7(s_slab,-90);
+ x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+ y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+ x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+ filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+ if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+ else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+ penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+ hpos_corr=-u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "The letter S with hachek"; % from cshacheu.mf (csfonts)
+beginchar(oct"222",10u#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,cap_height);
+slope:=-cap_height/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi;
+top y2l=cap_height+o; bot y7r=-o;
+y0=.52cap_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3cap_height+1; top y8=vround 1/3cap_height-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93cap_height+o; bot y8r=vround .1cap_height-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+uc_hachek_accent(x0); %(0.5[x3l,x1l]); oprava 24.10.92
+endchar;
+
+ecchar "The letter cedilla S";
+beginchar(oct"223",10u#,cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,cap_height);
+slope:=-cap_height/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi;
+top y2l=cap_height+o; bot y7r=-o;
+y0=.52cap_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3cap_height+1; top y8=vround 1/3cap_height-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93cap_height+o; bot y8r=vround .1cap_height-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+% the accent
+uppercase_cedilla(x7,0,11,12,13,14,15);
+math_fit(0,.5ic#);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10,11,12,13,14,15); endchar;
+
+
+ecchar "The letter T with hachek"; % from cshacheu.mf (csfonts)
+beginchar(oct"224",13u#-width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h':=h;
+h:=vround(cap_height-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+h:=h';
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6);
+uc_hachek_accent(x1);
+endchar;
+
+ecchar "The letter cedilla T";
+beginchar(oct"225",13u#-width_adj#,cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(cap_height-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+% the accent
+uppercase_cedilla(x2,hair,7,8,9,10,11);
+math_fit(-.75cap_height#*slant,ic#-2.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+ecchar "The letter U with double acute";
+beginchar_twice(oct"226",13u#+.5width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0));
+if monospace: hpos_corr=-2.5u; put_accent; hpos_corr=2.5u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+penlabels(1,2,3,4,5); endchar;
+
+ecchar "The letter U with ring";
+beginchar(oct"227",13u#+.5width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0));
+% the accent
+uppercase_circle(
+if serifs: .5[x.b1,x.c1] else: x3 fi,
+ cap_height+if hefty: .5 fi accent_gap,8,9,10,11);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+ecchar "The letter umlaut Y";
+beginchar(oct"230",13u#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r;
+y1=y4=cap_height; y2=y3=y5=.4cap_height;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+% the accent
+uppercase_umlaut(0,0,7,8,9,10);
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "The letter Z with acute"; % from pl_dl (plfonts)
+beginchar_twice(oct"231",11u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+ else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+ pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+ arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+ arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "The letter Z with hachek"; % from cshacheu.mf (csfonts)
+beginchar(oct"232",11u#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=cap_height; y2=min(y1,cap_height-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=cap_height; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8);
+uc_hachek_accent(1/2[x6,x1]);
+endchar;
+
+
+ecchar "The letter Z with dot above"; % from pl_dl (plfonts)
+beginchar_twice(oct"233",11u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+ else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+ pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+ arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+ arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ put_dot(tiny,max(dot_size#,cap_curve#));
+repeat_once;
+endchar;
+
+ecchar "The letter IJ";
+beginchar(oct"234",
+ 9u#+max(6u#,4u#+cap_stem#)
+ if not serifs: -u# fi,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5(w-9u)-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+% J part
+pickup tiny.nib; pos11(cap_stem',0); pos12(cap_stem',0);
+top y11=h; rt x11r=hround(w-2u); x12=x11; y12=.21h;
+if serifs: pos13(vair,-90); pos14(cap_hair,-180);
+ pos15(flare+(cap_stem-stem),-180);
+ bot y13r=-o; x13=.5[x14,x12]; y15=1/6h; rt x15l=hround w-9u+2.75u;
+ z15r=z14r;
+ filldraw stroke z11e--z12e&super_arc.e(12,13); % stem and arc
+ dish_serif(11,12,aa,1/3,1.3cap_jut,bb,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(13,14,15); % bulb
+else: filldraw stroke z11e--z12e; % stem
+ pickup fine.nib; pos13(cap_stem',0); z13=z12;
+ pos14(flare,angle(6.5u,-h)); pos15(1.1flare,-100);
+ bot y14r=-o;
+ x14r=.5[x15r,x13r];
+ lft x15r=hround max(6u,4u+cap_stem)-0.25u;% +.75u;
+ bot y15r=vround.06h-o;
+ filldraw stroke z13e{down}....term.e(14,15,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#);
+penlabels(1,2,3,4,5,11,12,13,14,15); endchar;
+
+iff not suppress_i_dot:
+ecchar "The letter I with dot";
+beginchar_twice(oct"235",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+put_dot(tiny,max(dot_size#,cap_curve#));
+repeat_once;
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exrulett.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exrulett.mf
new file mode 100644
index 00000000000..22ac86b0b7e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exrulett.mf
@@ -0,0 +1,765 @@
+% exrulett.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% uppercase letters A to Z
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter A";
+beginchar("A",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar "The letter B";
+beginchar("B",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar "The letter C";
+if serifs: beginchar("C",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar("C",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+ecchar "The letter D";
+beginchar("D",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "The letter E";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter F";
+beginchar("F",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter G";
+if serifs: beginchar("G",14u#,cap_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar("G",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter H";
+beginchar("H",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter I";
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+math_fit(0,.5ic#); penlabels(1,2 if slitex:,3,4,5,6,7,8 fi); endchar;
+font_cap_stem cap_stem#;
+
+ecchar "The letter J";
+beginchar("J",9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+ecchar "The letter K";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter L";
+beginchar("L",11u#-width_adj#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,u#); penlabels(1,2,3,4); endchar;
+
+ecchar "The letter M";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+ecchar "The letter N";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+ecchar "The letter O";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+ecchar "The letter P";
+beginchar("P",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "The letter Q";
+beginchar("Q",14u#-width_adj#,cap_height#,comma_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=cap_curve-hround stem_corr;
+penpos1(vair',90); penpos3(vair',-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"Q"| like |"O"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup tiny.nib;
+if hefty: penpos5(1.2(.5[cap_bar,light_curve]),0); penpos6(1.2light_curve,0);
+ x5=.5w; x6r=hround(w-1.5u);
+ y5=vround .28h; y6=-d;
+ fill diag_end(6r,5r,.25,1,5l,6l)--diag_end(5l,6l,.5,1,6r,5r)--cycle; % tail
+else: pos3'(vair,270); pos5(vair,180); pos6(vair,90);
+ pos7(cap_curve,85); penpos8(eps,180);
+ z3'=z3; x6=x3; top y6r=vround(.2h+.5vair);
+ lft x5r=hround(.5w-1.25u-.5vair); y5=.5[y3,y6];
+ bot y7l=-d; x7l=2/3[x6,x8]; y8=0; rt x8=hround(x4r+.1u);
+ filldraw stroke z3'e{left}...z5e{up}...z6e{right}
+ ..z7e{right}...z8e{up}; fi % tail
+math_fit(-.3cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+ecchar "The letter R";
+beginchar("R",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "The letter S";
+beginchar("S",10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+ecchar "The letter T";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter U";
+beginchar("U",13u#+.5width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5); endchar;
+
+ecchar "The letter V";
+beginchar("V",13u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+math_fit(.75u#-cap_height#*slant,ic#-4u#); penlabels(0,1,2,3,4); endchar;
+
+ecchar "The letter W";
+beginchar("W",18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+ecchar "The letter X";
+beginchar("X",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+ecchar "The letter Y";
+beginchar("Y",13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar "The letter Z";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exruwest.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exruwest.mf
new file mode 100644
index 00000000000..7fbbd85710f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exruwest.mf
@@ -0,0 +1,992 @@
+% exruwest.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% uppercase accented letters ("western part")
+%
+% oct"300" .. oct"337"
+%
+%
+% oct"300" A with gravis
+% oct"301" A with acute
+% oct"302" A with circumflex
+% oct"303" A with tilde
+% oct"304" A with umlaut
+% oct"305" A with ring
+% oct"306" AE
+% oct"307" C with cedilla
+%
+% oct"310" E with gravis
+% oct"311" E with acute
+% oct"312" E with circumflex
+% oct"313" E with umlauts
+% oct"314" I with gravis
+% oct"315" I with acute
+% oct"316" I with circumflex
+% oct"317" I with umlaut
+%
+% oct"320" edh (icelandic) or D with stroke
+% oct"321" N with tilde
+% oct"322" O with gravis
+% oct"323" O with acute
+% oct"324" O with circumflex
+% oct"325" O with tilde
+% oct"326" O with umlaut
+% oct"327" OE
+%
+% oct"330" O with /
+% oct"331" U with gravis
+% oct"332" U with acute
+% oct"333" U with circumflex
+% oct"334" U with umlaut
+% oct"335" Y with acute
+% oct"336" Thorn
+% oct"337" Sharp S (SS)
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter A with gravis";
+beginchar_twice(oct"300",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+hpos_corr=if not serifs: .75u else: .25u fi; put_gravis;
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "The letter A with acute";
+beginchar_twice(oct"301",13u#,cap_height#+acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); % right serif
+fi
+% the accent
+if not monospace: hpos_corr=-.75u; fi
+put_accent;
+penlabels(0,1,2,3,4,5,6);
+repeat_once;
+endchar;
+
+ecchar "The letter A with circumflex";
+beginchar(oct"302",13u#,cap_height#+acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+% the accent
+uppercase_hat(x2,0,12,13,14,15,16);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+ecchar "The letter A with tilde";
+beginchar(oct"303",13u#,cap_height#+acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+% the accent
+uppercase_tilde(0,0,12,13,14,15,16);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+ecchar "The letter A with umlaut";
+beginchar(oct"304",13u#,cap_height#+acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+% the accent
+uppercase_umlaut(0,0,7,8,9,10);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "The letter A with ring";
+beginchar(oct"305",13u#,cap_height#+.8acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+% the accent
+uppercase_circle(x2,y2,12,13,14,15);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+ecchar "The ligature AE";
+beginchar(oct"306",16u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,mid_stem,outer_jut,alpha;
+mid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(mid_stem,0); pos2(mid_stem,0);
+lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0); x5=x1;
+top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.65u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,.5cap_jut); fi % lower middle serif
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+ecchar "The letter cedilla C";
+if serifs: beginchar(oct"307",13u#,cap_height#,0.875desc_depth#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(oct"307",11.5u#,cap_height#,0.875desc_depth#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+% the accent
+uppercase_cedilla(x4,0,7,8,9,10,11);
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "The letter E with gravis";
+beginchar_twice(oct"310", 12u#-width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+hh:=vround(cap_height-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=hh; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,hh,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#);
+%if not serifs: hpos_corr=.75u; fi put_gravis;
+hpos_corr= .75u; put_gravis;
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter E with acute";
+beginchar_twice(oct"311", 12u#-width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+hh:=vround(cap_height-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=hh; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,hh,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+put_accent;
+repeat_once;
+math_fit(0,.5ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9);
+endchar;
+
+ecchar "The letter E with circumflex";
+beginchar(oct"312", 12u#-width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+hh:=vround(cap_height-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=hh; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,hh,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#);
+% the accent
+uppercase_hat(.5w,0,10,11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+
+ecchar "The letter E with umlaut";
+beginchar(oct"313", 12u#-width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+hh:=vround(cap_height-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=hh; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,hh,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% the accent
+uppercase_umlaut(0,0,10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+
+ecchar "The letter I with gravis";
+beginchar_twice(oct"314",max(6u#,4u#+cap_stem#),cap_height#+acc_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=cap_height; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+math_fit(0,.5ic#);
+hpos_corr=.5u; put_gravis;
+repeat_once;
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter I with acute";
+beginchar_twice(oct"315",max(6u#,4u#+cap_stem#),cap_height#+acc_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=cap_height; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+% the accent
+if not monospace: hpos_corr=-.5cap_jut; fi
+put_accent;
+repeat_once;
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+ecchar "The letter I with circumflex";
+beginchar(oct"316",max(6u#,4u#+cap_stem#),cap_height#+acc_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=cap_height; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+math_fit(0,.5ic#);
+% the accent
+uppercase_hat(x1,0,15,16,17,18,19);
+penlabels(1,2,3,4,5,6,7,8,15,16,17,18,19); endchar;
+
+ecchar "The letter I with umlaut";
+beginchar(oct"317",max(6u#,4u#+cap_stem#),cap_height#+acc_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=cap_height; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+math_fit(0,.5ic#);
+% the accent
+uppercase_umlaut(0,0,15,16,17,18);
+penlabels(1,2,3,4,5,6,7,8,,15,16,17,18); endchar;
+
+ecchar "The letter (Eth) bar D";
+beginchar(oct"320",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% the bar
+pickup tiny.nib;
+y8=y9=y5;
+pos8(bar,90); pos9(bar,90);
+x9=x4;
+if serifs: x8=x2l-cap_jut; else: x8=.5u; fi;
+filldraw stroke z8e--z9e;
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter N with tilde";
+beginchar(oct"321",13u#+width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=cap_height; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=cap_height; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=cap_height-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+% the accent
+uppercase_tilde(0,0,8,9,10,11,12);
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7,8,9,10,11,12,13);
+endchar;
+
+ecchar "The letter O with gravis";
+beginchar_twice(oct"322",14u#-width_adj#,cap_height#+acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+% the accent
+hpos_corr= .75u; put_gravis;
+repeat_once;
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter O with acute"; % from pl_dl (plfonts)
+beginchar_twice(oct"323",14u#-width_adj#,cap_height#,0);
+ italcorr .7cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+ penpos2(cap_curve,180); penpos4(cap_curve,0);
+ if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+ else: x2r=hround u; fi
+ x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+ y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+ penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+ penlabels(1,2,3,4);
+ hpos_corr=-.75u; put_accent;
+repeat_once;
+endchar; % accented O
+
+ecchar "The letter O with circumflex";
+beginchar(oct"324",14u#-width_adj#,cap_height#+acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+% the accent
+uppercase_hat(x1,0,5,6,7,8,9);
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter O with tilde";
+beginchar(oct"325",14u#-width_adj#,cap_height#+acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+% the accent
+uppercase_tilde(0,0,7,8,9,10,11);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "The letter O with umlaut";
+beginchar(oct"326",14u#-width_adj#,cap_height#+acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+% the accent
+uppercase_umlaut(0,0,5,6,7,8);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+ecchar "The ligature OE";
+beginchar(oct"327",18u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric light_stem;
+light_stem=max(tiny.breadth,hround .8[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround .5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.4u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+penpos11(vair,90); penpos13(vair,-90);
+if monospace: penpos12(fudged.cap_stem,180);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: penpos12(hround(cap_curve-stem_corr),180); fi
+x11=x13=.5w-2u; y11r=h+o; y13r=-o; y12=.5h-vair_corr; x12r=hround u;
+x14=x15=.5w; y14=2/3h; y15=1/3h; y12l:=.52h;
+penstroke super_arc.e(11,12) & super_arc.e(12,13); % left half of bowl
+fill z13r{right}..{right}(x2,0)--(x1,h){left}..{left}z11r
+ --z11l{right}...{z14-z11l}(.82[x11l,x14],.82[y14,y11l])
+ ...z14---z15...{z13l-z15}(.82[x13l,x15],.82[y15,y13l])
+ ...{left}z13l--cycle; % right half of bowl
+if serifs: serif(1,2,a,1/3,.5cap_jut); % upper serif
+ serif(2,1,b,1/3,.5cap_jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15); endchar;
+
+
+ecchar "Scandinavian letter O/slash";
+beginchar(oct"330",14u#,cap_height#+.25desc_depth#,.25desc_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90);
+penpos2(fudged.cap_stem,180); penpos4(fudged.cap_stem,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"| not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w;
+y1r=cap_height+o; y2=y4=.5cap_height-vair_corr; y3r=-o;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+x5=x4-vair; x6=x2+vair; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair',theta); pos6(vair',theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+
+ecchar "The letter U with gravis";
+beginchar_twice(oct"331",13u#+.5width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0));
+hpos_corr= .75u; put_gravis;
+repeat_once;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "The letter U with acute";
+beginchar_twice(oct"332",13u#+.5width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+% the accent
+put_accent;
+repeat_once;
+penlabels(1,2,3,4,5); endchar;
+
+ecchar "The letter U with circumflex";
+beginchar(oct"333",13u#+.5width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0));
+% the accent
+uppercase_hat(x3,0,6,7,8,9,10);
+penlabels(1,2,3,4,5,6,7,6,7,8,9,10); endchar;
+
+
+ecchar "The letter U with umlaut";
+beginchar(oct"334",13u#+.5width_adj#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0));
+% the accent
+uppercase_umlaut(0,0,6,7,8,9);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+ecchar "The letter Y with acute";
+beginchar_twice(oct"335",13u#,cap_height#+acc_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r;
+y1=y4=cap_height; y2=y3=y5=.4cap_height;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+% the accent
+put_accent;
+repeat_once;
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+ecchar "The letter Thorn";
+beginchar(oct"336",11u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(cap_band,90); penpos9(cap_band,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+x12=x1;
+y12r=0.26h; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h+y12r;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-2.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+ecchar "The letter Sharp S (SS)";
+beginchar(oct"337",if monospace: 15u# else: 20u# fi ,cap_height#,0);
+italcorr cap_height#*slant-u#;
+normal_adjust_fit(0,0);
+w:=0.5w;
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#);
+w:=2w;
+currentpicture:=currentpicture+(currentpicture shifted (0.5w,0));
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exsign.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exsign.mf
new file mode 100644
index 00000000000..b8432d1d3fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exsign.mf
@@ -0,0 +1,233 @@
+% exsign.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% special characters common to roman and italic style fonts
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Zero for p mille sign";
+beginchar(oct"030",if serifs:
+ if monospace: 9u#+max(6u#,2fudge*(hair#+stem#)) else: 7u# fi else: 8u# fi,
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90);
+pos2(left_curve,180);
+pos3(vair,270);
+pos4(right_curve,360);
+bot y3r=-d;
+rt x4r=hround(.5w +2.5u );
+lft x2r=hround(.5w -2.5u ) ;
+top y1r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of lower bowl
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "Straight double quotes";
+beginchar(oct"042",9u#,asc_height#,0);
+numeric top_width#,spread#;
+top_width#=if serifs: flare# else: stem# fi;
+spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+italcorr asc_height#*slant+.5top_width#+.5spread#-4u#;
+adjust_fit(0,0);
+x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ pos3(flare,0); pos4(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % left stem and bulb
+ filldraw circ_stroke z3e--z4e; % right stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; fi % right stem
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "Hash mark (number sign)";
+if monospace: compute_spread(.6x_height#,.7x_height#);
+else: compute_spread(.45x_height#,.55x_height#); fi
+beginchar("#",15u#,asc_height#,asc_depth#);
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+adjust_fit(0,0);
+pickup extra_rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); endchar;
+
+ecchar "Dollar sign";
+beginchar("$",9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+
+ecchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar "At sign";
+beginchar("@",14u#,asc_height#,0);
+italcorr .7asc_height#*slant-.5u#;
+adjust_fit(0,if hefty or monospace:-2u# else: 0 fi);
+pickup fine.nib; pos0(fudged.hair,0); pos1(vair,90);
+pos2(fudged.stem,180); pos3(vair,270);
+pos4(fudged.stem,-180); pos5(fudged.stem,-180);
+pos6(vair,-90); pos7(fudged.hair,0);
+pos8(vair,90); pos9(fudged.hair,180);
+pos10(vair,270); pos11(.5[vair,flare],360);
+x1=x3=.5[x0,x2]; y0=y2=.5[y1,y3];
+x8=x10=.5w; y7=y9=.5[y8,y10];
+lft x9r=hround u; x7=w-x9; top y8r=h+oo; bot y10r=-oo;
+top y1r=vround(.8[y10,y8]+.5vair); bot y3r=vround(.2[y10,y8]-.5vair);
+x6l=1/3[x5l,x7l]; y6=y3; y11=good.y(.1[y10,y8]-.5);
+x0=x4=x5; y4=.8[y3,y1]; y5=2/3[y7,y6];
+if hefty or monospace: lft x2r=hround(5u-.5fudged.stem);
+ rt x0r=hround(w-3u); x11r=x0r;
+else: lft x2r=hround 3.4u; x0=w-x2; x11r=x7r; fi
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % left inner bowl
+filldraw stroke super_arc.e(3,0) & super_arc.e(0,1); % right inner bowl
+filldraw stroke super_arc.e(8,9) & super_arc.e(9,10)
+ & term.e(10,11,right,1,4); % left outer bowl and terminal
+if hefty or monospace: {{interim superness:=hein_super;
+ filldraw stroke super_arc.e(0,8)}}; % link
+else: (x,y6r)=whatever[z6l,z7l]; x6r:=x;
+ filldraw stroke z4e---z5e...z6e{right}...{up}z7e
+ & super_arc.e(7,8); fi % stem and link
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Sterling sign";
+beginchar(oct"277",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9l=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+ecchar "Section sign"; % renovated (jk)
+beginchar(oct"237",6.5u#+max(1.5u#,stem#),asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+numeric sstem; sstem=hround .5[s_slab,ess']-fine;
+if sstem < fine.breadth: sstem:=fine.breadth; fi
+pos2(vair,90); pos3(sstem,180);
+pos4(ess',270); pos4'(vair,270);
+pos5'(sstem,0); pos5(sstem,180);
+pos6(ess',90); pos6'(vair,90); pos7(sstem,0);
+pos8(vair,-90);
+top y2r=h+oo; bot y8r=-d-oo;
+y3=.52[y4,y2]; y5=.52[y4,y6]; y7=.52[y6,y8]; y5'=.52[y6,y4];
+y2-y4=y4-y6=y6-y8;
+bot z4'=bot z4; top z6'=top z6;
+lft x3r=hround 1.25u;
+x2=x4=x6=x8=.5w; x5=x7=w-x3; x5'=x3;
+if serifs:
+ pos0(stem,0); pos1(hair,0); pos9(hair,-180); pos10(stem,-180);
+ rt x1r=hround(w-1.5u); x9=w-x1; y2-y1=y9-y8=(y2-y8)/8;
+ bulb(2,1,0); bulb(8,9,10); % bulbs
+else:
+ pos1(.6[slab,flare],-100); pos9(flare,-100); pos2'(vair,-90);
+ rt x1l=hround(w-1.3u); lft x9r=hround .8u; z2'=z2;
+ top y1l=vround .92asc_height+oo; bot y9r=vround .1asc_height-d-oo;
+ filldraw stroke term.e(2',1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(8,9,left,.9,4); % lower arc and terminal
+fi
+filldraw stroke z2e{left}...z3e{down}...z4e{3(x5-x3),y5-y3}
+ ...z5e{down}...{left}z6'e; % upper stroke
+filldraw stroke z4'e{left}...z5'e{down}...z6e{3(x7-x5'),y7-y5'}
+ ...z7e{down}...{left}z8e; % upper stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/exsixtst.mf b/Master/texmf-dist/fonts/source/jknappen/ec/exsixtst.mf
new file mode 100644
index 00000000000..fe0cc703434
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/exsixtst.mf
@@ -0,0 +1,85 @@
+% This is EXSIXTST.MF in text format, as of March 24, 1992
+%
+% ecfonts version 1.0
+%
+% [ heavily borrowed from the Computer Modern Roman family of
+% fonts by D. E. Knuth ]
+%
+% Content:
+%
+% variant of 6test modified for testing of ecfonts
+% should be used with exbase only
+%
+mode_def screenproof = % for onscreen viewing of CGA proofs (full screen)
+ proofing:=2; % yes, we're making full proofs
+ fontmaking:=0; % no, we're not making a font
+ tracingtitles:=1; % yes, show titles online
+ pixels_per_inch:=1001; % make it easy to view one char on screen
+ blacker:=0; % no additional blackness
+ fillin:=0; % no compensation for fillin
+ o_correction:=1; % no reduction in overshoot
+ aspect_ratio:=480/640; %265/640 % adjust for screen skewing also
+enddef;
+
+\mode:=screenproof;
+
+mode_setup;
+
+
+if unknown dcbase: input exbase fi % omit if CMMF can be assumed
+boolean running;
+def abort = hide(scrollmode; running:=false) enddef;
+def pause=stop "done with char "&decimal charcode&". " enddef;
+let iff=always_iff;
+def ligtable text t=enddef;
+def charlist text t=enddef;
+def extensible text t=enddef;
+
+string currenttitle;
+let semi=;; let echar=endchar; let endchar=enddef;
+def ecchar expr s = currenttitle:=s;
+ let;=testchar semi quote def chartext=enddef;
+def testchar = semi let;=semi;
+ % now `chartext echar' will generate the character to be tested
+ running:=true; errorstopmode;
+ for k=1 upto 8:
+ if running: if known params[k]: scantokens params[k]; font_setup;
+ currentwindow:=k;
+ currenttitle & ", " & fontname[k];
+ chartext echar; fi fi endfor
+ pause; enddef;
+
+numeric fontsize[];
+numeric gensize;
+string params[],fontname[];
+params[1]="roman_params"; fontsize[1]:=10; fontname[1]="dcr";
+params[2]="sans_params"; fontsize[2]:=10; fontname[2]="dcss";
+params[3]="tt_params"; fontsize[3]:=10; fontname[3]="dctt";
+params[4]="bold_params"; fontsize[4]:=10; fontname[4]="dcb";
+params[5]="quote_params"; fontsize[5]:=10; fontname[5]="dcbx";
+params[6]="ital_params"; fontsize[6]:=10; fontname[6]="dcdunh"; %vtt"; % cmti10";
+
+w_rows=floor (1/2 screen_rows); w_cols=floor (1/3 screen_cols);
+def open(expr k,i,j)=
+ openwindow k from ((i-1)*w_rows,(j-1)*w_cols) to (i*w_rows,j*w_cols)
+ at (-65,120) enddef;
+def openit =
+ open(1,1,1); open(2,1,2); open(3,1,3);
+ open(4,2,1); open(5,2,2); open(6,2,3); enddef;
+
+begingroup delimiters begintext generate;
+ def longerkludge expr s =
+ if length s > 8: substring (0,3) of s &
+ substring(length s-3,infinity) of fi s enddef;
+ def makedef(expr s)(text t) =
+ expandafter def scantokens s = t enddef; flushtext enddef;
+ def flushtext suffix t = enddef;
+ for k=1 upto 8: if known params[k]:
+ gensize := fontsize[k];
+ makedef(params[k])
+ expandafter expandafter expandafter begintext
+ scantokens ("input "&longerkludge fontname[k]); fi endfor
+endgroup;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/extextit.mf b/Master/texmf-dist/fonts/source/jknappen/ec/extextit.mf
new file mode 100644
index 00000000000..a51ffd007a5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/extextit.mf
@@ -0,0 +1,76 @@
+% extextit.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% driver file, called by parameter files with italic style fonts
+%
+% dx r l west
+% i u east
+% : : :
+% : : west '3xx / east '2xx
+% : uppercase/lowercase
+% roman / italic
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input exaccess; % accessories for polish special letters
+input expseudo; % pseudoparameters
+
+mode_setup; font_setup; pseudo_setup;
+
+input exileast; %
+input exilwest; %
+input exruwest; % identical in ecroman
+input exrueast; % identical in ecroman
+%
+input exbraces;
+input expunct; %
+input exaccent; %
+input exsign; % zero for mille, " # $ % @ pound sign
+input exilig; % dotless i,j; letter ligatures ff fi fl ffi ffl
+%
+input exitalp; % $ ? # &
+%
+input exrulett; % upper case (majuscules)
+input exillett; % lower case (minuscules)
+input exidigit; % digits
+%
+% Fontparameter
+%
+font_coding_scheme:="Extended TeX Font Encoding - Latin";
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (cap_height#+acc_height#);
+font_desc_depth desc_depth#;
+font_max_height (max(asc_height#,body_height#,
+ cap_height#+acc_height#));
+font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+font_baselineskip max(1.2*designsize,body_height#+paren_depth#);
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+ input exmligtb; % do the ligature programmes for monospaced fonts
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ input exiligtb; % do the ligature programmes for proportionally spaced fonts
+fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ieclb8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ieclb8.mf
new file mode 100644
index 00000000000..d9c7aab2ce3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ieclb8.mf
@@ -0,0 +1,92 @@
+% ieclb8.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Invisible LaTeX European Computer Modern Sans Serif Quotation Bold
+% (SliTeX font with special capital I)
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="ILECSSQB";
+font_size 8pt#;
+u#:=22/36pt#;
+width_adj#:=3/36pt#;
+serif_fit#:= -12/36pt#;
+cap_serif_fit#:= -15/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=200/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=42/36pt#;
+stem#:=42/36pt#;
+curve#:=42/36pt#;
+ess#:=40/36pt#;
+flare#:=36/36pt#;
+dot_size#:=41/36pt#;
+cap_hair#:=42/36pt#;
+cap_stem#:=46/36pt#;
+cap_curve#:=46/36pt#;
+cap_ess#:=46/36pt#;
+rule_thickness#:=26/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=22/36pt#;
+notch_cut#:=48/36pt#;
+bar#:=22/36pt#;
+slab#:=24/36pt#;
+cap_bar#:=23/36pt#;
+cap_band#:=30/36pt#;
+cap_notch_cut#:=42/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=15/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=0;
+fudge:=.85;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/9;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+
+extra_endchar := extra_endchar & "clearit";
+
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/iecli8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/iecli8.mf
new file mode 100644
index 00000000000..7cb37d06008
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/iecli8.mf
@@ -0,0 +1,93 @@
+% iecli8.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Invisible LaTeX European Computer Modern Sans Serif Quotation Inclined
+% (SliTeX font with special capital I)
+
+if unknown exbase: input exbase fi
+
+font_identifier:="ILECSSQI";
+font_size 8pt#;
+u#:=20/36pt#;
+width_adj#:=2/36pt#;
+serif_fit#:= -10/36pt#;
+cap_serif_fit#:= -14/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=190/36pt#;
+x_height#:=150/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=80/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=23/36pt#;
+stem#:=23/36pt#;
+curve#:=23/36pt#;
+ess#:=23/36pt#;
+flare#:=21/36pt#;
+dot_size#:=28/36pt#;
+cap_hair#:=23/36pt#;
+cap_stem#:=27/36pt#;
+cap_curve#:=27/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.55555pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=18/36pt#;
+notch_cut#:=23/36pt#;
+bar#:=18/36pt#;
+slab#:=19/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=23/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=.5/36pt#;
+apex_corr#:=4/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=sind 12/cosd 12;
+fudge:=.95;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+
+extra_endchar := extra_endchar & "clearit";
+
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ieclo8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ieclo8.mf
new file mode 100644
index 00000000000..acb71ddf0c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ieclo8.mf
@@ -0,0 +1,92 @@
+% ieclo8.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Invisible LaTeX European Computer Modern Sans Serif Quotation Bold Oblique
+% (SliTeX font with special capital I)
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="ILECSSQBO";
+font_size 8pt#;
+u#:=22/36pt#;
+width_adj#:=3/36pt#;
+serif_fit#:= -12/36pt#;
+cap_serif_fit#:= -15/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=200/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=42/36pt#;
+stem#:=42/36pt#;
+curve#:=42/36pt#;
+ess#:=40/36pt#;
+flare#:=36/36pt#;
+dot_size#:=41/36pt#;
+cap_hair#:=42/36pt#;
+cap_stem#:=46/36pt#;
+cap_curve#:=46/36pt#;
+cap_ess#:=46/36pt#;
+rule_thickness#:=26/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=22/36pt#;
+notch_cut#:=48/36pt#;
+bar#:=22/36pt#;
+slab#:=24/36pt#;
+cap_bar#:=23/36pt#;
+cap_band#:=30/36pt#;
+cap_notch_cut#:=42/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=15/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=sind 12/cosd 12;
+fudge:=.85;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/9;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+
+extra_endchar := extra_endchar & "clearit";
+
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/ieclq8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/ieclq8.mf
new file mode 100644
index 00000000000..d6fcf1ac3f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/ieclq8.mf
@@ -0,0 +1,93 @@
+% ieclq8.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Invisible LaTeX European Computer Modern Sans Serif Quotation
+% (SliTeX font with special capital I)
+
+if unknown exbase: input exbase fi
+
+font_identifier:="ILECSSQ";
+font_size 8pt#;
+u#:=20/36pt#;
+width_adj#:=2/36pt#;
+serif_fit#:= -10/36pt#;
+cap_serif_fit#:= -14/36pt#;
+letter_fit#:=0pt#;
+body_height#:=220/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197/36pt#;
+fig_height#:=190/36pt#;
+x_height#:=150/36pt#;
+math_axis#:=80/36pt#;
+bar_height#:=80/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=40/36pt#;
+acc_height#:=60/36pt#;
+dot_height#:=45.8/36pt#;
+udot_height#:=48.2/36pt#;
+crisp#:=18/36pt#;
+tiny#:=18/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=23/36pt#;
+stem#:=23/36pt#;
+curve#:=23/36pt#;
+ess#:=23/36pt#;
+flare#:=21/36pt#;
+dot_size#:=28/36pt#;
+cap_hair#:=23/36pt#;
+cap_stem#:=27/36pt#;
+cap_curve#:=27/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.55555pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=0pt#;
+vair#:=18/36pt#;
+notch_cut#:=23/36pt#;
+bar#:=18/36pt#;
+slab#:=19/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=23/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=.5/36pt#;
+vair_corr#:=.5/36pt#;
+apex_corr#:=4/36pt#;
+o#:=6/36pt#;
+apex_o#:=2/36pt#;
+slant:=0;
+fudge:=.95;
+math_spread:=0;
+superness:=1/sqrt 2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+
+extra_endchar := extra_endchar & "clearit";
+
+generate exroman;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/iecltt8.mf b/Master/texmf-dist/fonts/source/jknappen/ec/iecltt8.mf
new file mode 100644
index 00000000000..6574fb6cde6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/iecltt8.mf
@@ -0,0 +1,95 @@
+% iecltt8.mf
+%
+% (c) Copyright 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Invisible LaTeX European Computer Modern Typewriter
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="IECLTT";
+font_size 8pt#;
+
+u# :=17/36pt#;
+width_adj# :=0pt#;
+serif_fit# :=0pt#;
+cap_serif_fit# :=0pt#;
+letter_fit# :=0pt#;
+body_height# :=200/36pt#;
+asc_height# :=176/36pt#;
+cap_height# :=176/36pt#;
+fig_height# :=176/36pt#;
+x_height# :=124/36pt#;
+math_axis# :=88/36pt#;
+bar_height# :=63/36pt#;
+comma_depth# :=40/36pt#;
+desc_depth# :=64/36pt#;
+acc_height# :=60/36pt#;
+dot_height# :=60/36pt#;
+udot_height# :=47.2/36pt#;
+crisp# :=19/36pt#;
+tiny# :=19/36pt#;
+fine# :=18/36pt#;
+thin_join# :=18/36pt#;
+hair# :=22/36pt#;
+stem# :=22/36pt#;
+curve# :=22/36pt#;
+ess# :=19/36pt#;
+flare# :=28/36pt#;
+dot_size# :=31/36pt#;
+cap_hair# :=22/36pt#;
+cap_stem# :=22/36pt#;
+cap_curve# :=22/36pt#;
+cap_ess# :=22/36pt#;
+rule_thickness# :=22/36pt#;
+dish# :=0pt#;
+bracket# :=0pt#;
+jut# :=27/36pt#;
+cap_jut# :=27/36pt#;
+beak_jut# :=0pt#;
+beak# :=27/36pt#;
+vair# :=19/36pt#;
+notch_cut# :=22/36pt#;
+bar# :=19/36pt#;
+slab# :=19/36pt#;
+cap_bar# :=19/36pt#;
+cap_band# :=19/36pt#;
+cap_notch_cut# :=22/36pt#;
+serif_drop# :=0pt#;
+stem_corr# :=0pt#;
+vair_corr# :=0pt#;
+apex_corr# :=8/36pt#;
+o# :=3/36pt#;
+apex_o# :=3/36pt#;
+slant:=0;
+fudge :=0.81;
+math_spread :=-1;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+true_mono:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+
+clear_extra_memory;
+
+extra_endchar := extra_endchar & "clearit";
+
+generate exroman;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi.mf
new file mode 100644
index 00000000000..29e13531fe2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi.mf
@@ -0,0 +1,92 @@
+% tcbi.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% Text Companion Bold Extended Text Italic
+%
+%
+font_identifier:="TCBXTI";
+font_size gensize*pt#;
+basedef ( 7, 8, 9, 10, 12, 14.40, 17.28, 24.88, 35.83);
+gendef [1/36pt#]( u# )( 16, 18, 19.56, 21.2, 24.8, 28.9, 37.2, 49.59, 67.6);
+gendef [1/36pt#]( width_adj# )( 8.6, 9.4, 10.2, 11, 13, 15, 19.5, 26, 35.45);
+serif_fit# :=0pt#;
+gendef [1/36pt#]( cap_serif_fit# )( 4.6, 5.4, 6.2, 7, 8, 9.3, 12, 16, 21.8);
+gendef [1/36pt#]( letter_fit# )( 8.8, 9.5, 10.22, 11, 13, 15.12, 19.48, 25.98, 35.42);
+gendef [1/36pt#]( body_height# )( 189, 216, 243, 270, 324, 378, 486, 648, 972);
+gendef [1/36pt#]( asc_height# )( 175, 200, 225, 250, 300, 350, 450, 600, 900);
+gendef [1/36pt#]( cap_height# )(172.2, 197.6, 222.3, 247, 296.4, 345.8, 444.6, 592.8, 889);
+gendef [1/36pt#]( fig_height# )(162.4, 185.6, 208.8, 232, 278.4, 324.8, 417.6, 556.8, 835);
+gendef [1/36pt#]( x_height# )( 112, 128, 144, 160, 192, 224, 288, 384, 576);
+gendef [1/36pt#]( math_axis# )( 63, 72, 81, 90, 108, 126, 162, 216, 324);
+gendef [1/36pt#]( bar_height# )( 60.9, 67, 76, 85, 102, 119, 153, 204, 306);
+gendef [1/36pt#]( comma_depth# )( 49, 56, 63, 70, 84, 98, 126, 168, 252);
+gendef [1/36pt#]( desc_depth# )( 49, 56, 63, 70, 84, 98, 126, 168, 252);
+gendef [1/36pt#]( acc_height# )( 52.5, 60, 67.5, 75, 90, 105, 120, 150, 210);
+gendef [1/36pt#]( dot_height# )( 52.5, 60, 67.5, 75, 90, 105, 120, 150, 210);
+gendef [1/36pt#]( udot_height# )( 28.5, 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 12, 12, 13, 13, 13, 11, 13, 13, 13);
+gendef [1/36pt#]( tiny# )( 12, 12, 13, 13, 13, 13, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 10, 10, 10, 10, 10, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 10, 10, 10, 10, 10.5, 12.25, 15.75, 21, 28);
+gendef [1/36pt#]( hair# )( 18.6, 19, 19.4, 20, 21.5, 25, 32.22, 42.26, 57.5);
+gendef [1/36pt#]( stem# )( 30, 32, 34.7, 38, 43, 50.08, 64.43, 85.9, 117);
+gendef [1/36pt#]( curve# )( 33, 36, 39.6, 43, 48, 55.98, 72, 95, 130);
+gendef [1/36pt#]( ess# )( 26, 29, 31.8, 35, 40, 46.6, 60, 80, 109);
+gendef [1/36pt#]( flare# )( 34, 36, 38.6, 42, 47, 54.97, 70.45, 94, 128);
+gendef [1/36pt#]( dot_size# )( 38, 43, 48, 53, 58, 67.6, 87, 116, 158);
+gendef [1/36pt#]( cap_hair# )( 19, 20, 21, 22, 23, 26.79, 34.5, 46, 62.6);
+gendef [1/36pt#]( cap_stem# )( 37, 41, 45, 49, 54.7, 63.77, 82, 109, 148.6);
+gendef [1/36pt#]( cap_curve# )( 38, 43, 47.6, 52, 57, 66.4, 85, 114, 155);
+gendef [1/36pt#]( cap_ess# )( 36, 40.4, 45.5, 50, 55.5, 64.67, 83, 111, 151);
+gendef [pt#]( rule_thickness#)( .51, .54, .57, .6, .66, .77, .99, 1.3, 1.8);
+gendef [1/36pt#]( dish# )( 1, 1, 1, 1, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 7, 8, 9, 10, 12, 14, 18, 24, 36);
+gendef [1/36pt#]( jut# )( 17, 20, 23.3, 27, 32, 37, 47.7, 63.6, 95.4);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 35, 39, 46, 53.6, 69, 92, 125);
+gendef [1/36pt#]( beak_jut# )( 7.3, 8.5, 9.29, 10, 11.3, 13.17, 17, 21.86, 30);
+gendef [1/36pt#]( beak# )( 47, 55, 62, 70, 84, 98, 126, 168, 252);
+gendef [1/36pt#]( vair# )( 11.5, 12, 12.5, 13, 14.3, 16.68, 21.45, 28, 39);
+gendef [pt#]( notch_cut# )( 7, 8, 9, 10, 12, 14, 18, 24, 36);
+gendef [1/36pt#]( bar# )( 14, 15, 16, 17, 18.5, 21.58, 27.75, 37, 50);
+gendef [1/36pt#]( slab# )( 14, 15, 16, 17, 18.5, 21.58, 27.75, 37, 50);
+gendef [1/36pt#]( cap_bar# )( 14, 15, 16, 17, 18.5, 21.58, 27.75, 37, 50);
+gendef [1/36pt#]( cap_band# )( 14, 15, 16, 17, 18.5, 21.58, 27.75, 37, 50);
+gendef [pt#]( cap_notch_cut# )( 7, 8, 9, 10, 12, 14, 18, 24, 36);
+gendef [1/36pt#]( serif_drop# )( 2.1, 2.4, 2.7, 3, 3.6, 4.2, 5.4, 7.2, 10.8);
+gendef [1/36pt#]( stem_corr# )( 1.7, 1.8, 1.9, 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1.2, 1.3, 1.4, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 5, 6, 7, 8, 9, 9.5, 10, 12, 16.3);
+gendef [1/36pt#]( apex_o# )( 3, 3.5, 4, 4.5, 5, 5.6, 6, 8, 10.9);
+slant:=1/4;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.1, .9, .7, .5, .4, .46, .41, .31, .23);
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate txsymb;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0500.mf
new file mode 100644
index 00000000000..ddec04b7aea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0500.mf
@@ -0,0 +1,6 @@
+% This is tcbi0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0600.mf
new file mode 100644
index 00000000000..42b9cac73a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0600.mf
@@ -0,0 +1,6 @@
+% This is tcbi0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0700.mf
new file mode 100644
index 00000000000..996a282ea51
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0700.mf
@@ -0,0 +1,6 @@
+% This is tcbi0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0800.mf
new file mode 100644
index 00000000000..e6c0a329f1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0800.mf
@@ -0,0 +1,6 @@
+% This is tcbi0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0900.mf
new file mode 100644
index 00000000000..28b9ce1c783
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi0900.mf
@@ -0,0 +1,6 @@
+% This is tcbi0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1000.mf
new file mode 100644
index 00000000000..345d0f394e8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1000.mf
@@ -0,0 +1,6 @@
+% This is tcbi1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1095.mf
new file mode 100644
index 00000000000..c3b8c9316c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1095.mf
@@ -0,0 +1,6 @@
+% This is tcbi1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1200.mf
new file mode 100644
index 00000000000..c2ae01f542b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1200.mf
@@ -0,0 +1,6 @@
+% This is tcbi1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1440.mf
new file mode 100644
index 00000000000..02e39ba06bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1440.mf
@@ -0,0 +1,6 @@
+% This is tcbi1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1728.mf
new file mode 100644
index 00000000000..5d313a182aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi1728.mf
@@ -0,0 +1,6 @@
+% This is tcbi1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi2074.mf
new file mode 100644
index 00000000000..fa61c78d81e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi2074.mf
@@ -0,0 +1,6 @@
+% This is tcbi2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi2488.mf
new file mode 100644
index 00000000000..aa0552b7b7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi2488.mf
@@ -0,0 +1,6 @@
+% This is tcbi2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi2986.mf
new file mode 100644
index 00000000000..a7351c2b846
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi2986.mf
@@ -0,0 +1,6 @@
+% This is tcbi2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbi3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi3583.mf
new file mode 100644
index 00000000000..b3b548f5cc0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbi3583.mf
@@ -0,0 +1,6 @@
+% This is tcbi3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcbi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl.mf
new file mode 100644
index 00000000000..5e8ecb94905
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl.mf
@@ -0,0 +1,88 @@
+% tcbl.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Bold Extended Slanted Roman
+
+font_identifier:="TCBXSL";
+font_size (gensize*pt#);
+basedef ( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 14.5, 16.2, 17.9, 19.6, 21.3, 23, 27);
+gendef [1/36pt#]( width_adj# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 13);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.6, 5.4, 6.2, 7, 8);
+gendef [1/36pt#]( letter_fit# )( 3, 2, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 123.5, 148.2, 172.9, 197.6, 222.3, 247, 296.4);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 80, 96, 112, 128, 144, 160, 192);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 40, 49, 58, 67, 76, 85, 102);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 11, 12, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 8, 9, 9, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 8, 9, 9, 10, 10, 10, 10.5);
+gendef [1/36pt#]( hair# )( 15, 15.4, 15.8, 16.2, 16.6, 17, 18.3);
+gendef [1/36pt#]( stem# )( 24, 28, 32, 35, 38, 41, 47);
+gendef [1/36pt#]( curve# )( 27, 31, 35, 39, 43, 46, 52);
+gendef [1/36pt#]( ess# )( 19, 25, 29, 32, 35, 38, 44);
+gendef [1/36pt#]( flare# )( 27, 31, 35, 39, 42, 45, 51);
+gendef [1/36pt#]( dot_size# )( 31, 36, 41, 46, 51, 56, 62);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 18, 19, 19, 19, 20);
+gendef [1/36pt#]( cap_stem# )( 28, 33, 38, 43, 47, 51, 57);
+gendef [1/36pt#]( cap_curve# )( 31, 36, 41, 46, 51, 55, 61);
+gendef [1/36pt#]( cap_ess# )( 24, 31, 37, 43, 48, 53, 59);
+gendef [pt#]( rule_thickness#)( .43, .47, .51, .54, .57, .60, .66);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( jut# )( 13, 15, 17, 19, 22, 25, 30);
+gendef [1/36pt#]( cap_jut# )( 19, 23, 27, 31, 35, 39, 46);
+gendef [1/36pt#]( beak_jut# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 12.4);
+gendef [1/36pt#]( beak# )( 25, 36, 46, 55, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 10, 11, 11.5, 12, 12.5, 13, 14.3);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( slab# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_band# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 1.5, 1.8, 2.1, 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( stem_corr# )( 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 5, 2, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3, 3, 4, 4, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 3, 3, 3, 4);
+slant:=1/6;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, 1.3, 1.1, .9, .7, .5, .5);
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0500.mf
new file mode 100644
index 00000000000..7b5e8930acf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0500.mf
@@ -0,0 +1,6 @@
+% This is tcbl0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0600.mf
new file mode 100644
index 00000000000..a85a4d24a2c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0600.mf
@@ -0,0 +1,6 @@
+% This is tcbl0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0700.mf
new file mode 100644
index 00000000000..38d51cf8bc9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0700.mf
@@ -0,0 +1,6 @@
+% This is tcbl0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0800.mf
new file mode 100644
index 00000000000..83f1b23a2a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0800.mf
@@ -0,0 +1,6 @@
+% This is tcbl0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0900.mf
new file mode 100644
index 00000000000..18e1b0c2bcd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl0900.mf
@@ -0,0 +1,6 @@
+% This is tcbl0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1000.mf
new file mode 100644
index 00000000000..476259d0e42
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1000.mf
@@ -0,0 +1,6 @@
+% This is tcbl1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1095.mf
new file mode 100644
index 00000000000..af77743967a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1095.mf
@@ -0,0 +1,6 @@
+% This is tcbl1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1200.mf
new file mode 100644
index 00000000000..45fb9e1caa1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1200.mf
@@ -0,0 +1,6 @@
+% This is tcbl1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1440.mf
new file mode 100644
index 00000000000..81e2081643d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1440.mf
@@ -0,0 +1,6 @@
+% This is tcbl1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1728.mf
new file mode 100644
index 00000000000..4892fd3fdec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl1728.mf
@@ -0,0 +1,6 @@
+% This is tcbl1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl2074.mf
new file mode 100644
index 00000000000..b4fb0971f2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl2074.mf
@@ -0,0 +1,6 @@
+% This is tcbl2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl2488.mf
new file mode 100644
index 00000000000..fa346b25835
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl2488.mf
@@ -0,0 +1,6 @@
+% This is tcbl2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl2986.mf
new file mode 100644
index 00000000000..51cdd2db2c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl2986.mf
@@ -0,0 +1,6 @@
+% This is tcbl2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbl3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl3583.mf
new file mode 100644
index 00000000000..36026dfe5e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbl3583.mf
@@ -0,0 +1,6 @@
+% This is tcbl3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcbl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbm.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbm.mf
new file mode 100644
index 00000000000..755cba5f665
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbm.mf
@@ -0,0 +1,87 @@
+% tcbm.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% This is an experimental file, just for fun,
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TCBOM";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 9.5, 11, 12.5, 14, 15.5, 17, 20.5, 29.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.5, 5.1, 5.6, 6, 6.8, 9);
+gendef [1/36pt#]( letter_fit# )( 5, 3, 2, .1, .1, .1, .1, 0);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 36.5, 45.2, 57.9, 62.6, 71.3, 80, 96.4, 143);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( .8, .9, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 29, 31, 33, 35, 37, 38, 41, 46);
+gendef [1/36pt#]( curve# )( 28, 30.5, 33, 35.5, 38, 40, 43, 51);
+gendef [1/36pt#]( ess# )( 22, 27, 31, 33, 35, 37, 34, 45);
+gendef [1/36pt#]( flare# )( 28, 30, 33, 36, 39, 42, 45, 54);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 5, 5.5, 6, 6.5, 7, 8, 8.5, 10);
+gendef [1/36pt#]( cap_stem# )( 21, 26, 30, 34, 38, 42, 45, 50);
+gendef [1/36pt#]( cap_curve# )( 32, 35, 38, 41, 44, 48, 51, 59);
+gendef [1/36pt#]( cap_ess# )( 21, 26, 30, 34, 38, 42, 45, 50);
+gendef [pt#]( rule_thickness#)( .48, .51, .54, .56, .58, .6, .64, .8);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( .6, .68, .76, .84, .92, 1, 1.14, 1.5);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 6, 6.5, 7, 7.5, 8, 9, 10.5, 14);
+gendef [1/36pt#]( slab# )( 6, 6.5, 7, 7.5, 8, 9, 10.5, 14);
+gendef [1/36pt#]( cap_bar# )( 6, 6.5, 7, 7.5, 8, 9, 10.5, 14);
+gendef [1/36pt#]( cap_band# )( 6, 6.5, 7, 7.5, 8, 9, 10.5, 14);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.4]);
+superness:=.76;
+superpull:=1/6;
+beak_darkness:=15/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx.mf
new file mode 100644
index 00000000000..e4e932a72eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx.mf
@@ -0,0 +1,90 @@
+% tcbx.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% Text Comapnion Bold Extend Roman
+
+font_identifier:="TCBX";
+font_size (gensize*pt#);
+basedef ( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 14.5, 16.2, 17.9, 19.6, 21.3, 23, 27);
+gendef [1/36pt#]( width_adj# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 13);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.6, 5.4, 6.2, 7, 8);
+gendef [1/36pt#]( letter_fit# )( 3, 2, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 123.5, 148.2, 172.9, 197.6, 222.3, 247, 296.4);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 80, 96, 112, 128, 144, 160, 192);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 40, 49, 58, 67, 76, 85, 102);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 11, 12, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 8, 9, 9, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 8, 9, 9, 10, 10, 10, 10.5);
+gendef [1/36pt#]( hair# )( 15, 15.4, 15.8, 16.2, 16.6, 17, 18.3);
+gendef [1/36pt#]( stem# )( 24, 28, 32, 35, 38, 41, 47);
+gendef [1/36pt#]( curve# )( 27, 31, 35, 39, 43, 46, 52);
+gendef [1/36pt#]( ess# )( 19, 25, 29, 32, 35, 38, 44);
+gendef [1/36pt#]( flare# )( 27, 31, 35, 39, 42, 45, 51);
+gendef [1/36pt#]( dot_size# )( 31, 36, 41, 46, 51, 56, 62);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 18, 19, 19, 19, 20);
+gendef [1/36pt#]( cap_stem# )( 28, 33, 38, 43, 47, 51, 57);
+gendef [1/36pt#]( cap_curve# )( 31, 36, 41, 46, 51, 55, 61);
+gendef [1/36pt#]( cap_ess# )( 24, 31, 37, 43, 48, 53, 59);
+gendef [pt#]( rule_thickness#)( .43, .47, .51, .54, .57, .60, .66);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( jut# )( 13, 15, 17, 19, 22, 25, 30);
+gendef [1/36pt#]( cap_jut# )( 19, 23, 27, 31, 35, 39, 46);
+gendef [1/36pt#]( beak_jut# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 12.4);
+gendef [1/36pt#]( beak# )( 25, 36, 46, 55, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 10, 11, 11.5, 12, 12.5, 13, 14.3);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( slab# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_band# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 1.5, 1.8, 2.1, 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( stem_corr# )( 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 5, 2, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3, 3, 4, 4, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 3, 3, 3, 4);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, 1.3, 1.1, .9, .7, .5, .5);
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0500.mf
new file mode 100644
index 00000000000..9ba888c02c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0500.mf
@@ -0,0 +1,6 @@
+% This is tcbx0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0600.mf
new file mode 100644
index 00000000000..f548cdafb9d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0600.mf
@@ -0,0 +1,6 @@
+% This is tcbx0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0700.mf
new file mode 100644
index 00000000000..e8bda4a9002
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0700.mf
@@ -0,0 +1,6 @@
+% This is tcbx0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0800.mf
new file mode 100644
index 00000000000..50816294c3e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0800.mf
@@ -0,0 +1,6 @@
+% This is tcbx0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0900.mf
new file mode 100644
index 00000000000..0b987e2740d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx0900.mf
@@ -0,0 +1,6 @@
+% This is tcbx0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1000.mf
new file mode 100644
index 00000000000..8beb8d27748
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1000.mf
@@ -0,0 +1,6 @@
+% This is tcbx1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1095.mf
new file mode 100644
index 00000000000..b690f157f5f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1095.mf
@@ -0,0 +1,6 @@
+% This is tcbx1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1200.mf
new file mode 100644
index 00000000000..935eb0be2c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1200.mf
@@ -0,0 +1,6 @@
+% This is tcbx1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1440.mf
new file mode 100644
index 00000000000..cf581bab1f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1440.mf
@@ -0,0 +1,6 @@
+% This is tcbx1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1728.mf
new file mode 100644
index 00000000000..43f451e80c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx1728.mf
@@ -0,0 +1,6 @@
+% This is tcbx1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx2074.mf
new file mode 100644
index 00000000000..df55c3156aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx2074.mf
@@ -0,0 +1,6 @@
+% This is tcbx2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx2488.mf
new file mode 100644
index 00000000000..a9d352c4c7a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx2488.mf
@@ -0,0 +1,6 @@
+% This is tcbx2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx2986.mf
new file mode 100644
index 00000000000..2a16f4c763b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx2986.mf
@@ -0,0 +1,6 @@
+% This is tcbx2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcbx3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx3583.mf
new file mode 100644
index 00000000000..2f024f7edf7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcbx3583.mf
@@ -0,0 +1,6 @@
+% This is tcbx3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcbx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci.mf
new file mode 100644
index 00000000000..54a3f146f7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci.mf
@@ -0,0 +1,90 @@
+% tcci.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Classical Serif Italic
+
+font_identifier:="TCCI";
+font_size (gensize*pt#);
+basedef ( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 14.8, 15.8, 17, 18.4, 21.6);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3.5, 4.1, 4.6, 5, 5.8);
+gendef [1/36pt#]( letter_fit# )( 9.4, 7.9, 8.5, 9.2, 10.8);
+gendef [1/36pt#]( body_height# )( 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 172.2, 196.8, 221.4, 246, 295.2);
+gendef [1/36pt#]( fig_height# )( 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 108.5, 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 60.9, 69.6, 78.3, 87, 104.4);
+gendef [1/36pt#]( comma_depth# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 7, 8, 8, 8, 8);
+gendef [1/36pt#]( tiny# )( 7, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 6, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 6, 7, 7, 7, 7.5);
+gendef [1/36pt#]( hair# )( 10.5, 11, 11, 11, 12);
+gendef [1/36pt#]( stem# )( 18.5, 20, 22, 23, 26);
+gendef [1/36pt#]( curve# )( 21.5, 23.5, 26, 28, 31);
+gendef [1/36pt#]( ess# )( 21, 23, 25, 27, 29);
+gendef [1/36pt#]( flare# )( 21, 24, 26, 29, 32);
+gendef [1/36pt#]( dot_size# )( 29, 32, 35, 38, 42);
+gendef [1/36pt#]( cap_hair# )( 9, 9.5, 10, 11, 11.5);
+gendef [1/36pt#]( cap_stem# )( 21.5, 23.5, 26, 29, 32);
+gendef [1/36pt#]( cap_curve# )( 24.5, 27, 30, 34, 37);
+gendef [1/36pt#]( cap_ess# )( 21, 24, 27, 31, 34);
+gendef [pt#]( rule_thickness#)( .34, .36, .38, .4, .44);
+gendef [1/36pt#]( dish# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 14, 16, 18, 20, 24);
+gendef [1/36pt#]( jut# )( 21, 24, 27, 30, 35);
+gendef [1/36pt#]( cap_jut# )( 24, 27, 30.5, 34, 38);
+gendef [1/36pt#]( beak_jut# )( 7.4, 7.9, 8.5, 9, 10.4);
+gendef [1/36pt#]( beak# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 7, 8, 8, 8, 8.5);
+gendef [pt#]( notch_cut# )( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( slab# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( cap_bar# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( cap_band# )( 9, 9.5, 10, 11, 12.5);
+gendef [pt#]( cap_notch_cut# )( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 2.8, 3.2, 3.6, 4, 4.8);
+gendef [1/36pt#]( stem_corr# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 5, 6, 7, 8, 9);
+gendef [1/36pt#]( apex_o# )( 5, 6, 7, 8, 9);
+slant:=1/4;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )( .6, .4, .2, 0, [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+classic_serif:=true;
+clear_extra_memory;
+generate txsymb;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0500.mf
new file mode 100644
index 00000000000..b0cacdfdaf2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0500.mf
@@ -0,0 +1,6 @@
+% This is tcci0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0600.mf
new file mode 100644
index 00000000000..bf387871396
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0600.mf
@@ -0,0 +1,6 @@
+% This is tcci0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0700.mf
new file mode 100644
index 00000000000..22460cc7be3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0700.mf
@@ -0,0 +1,6 @@
+% This is tcci0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0800.mf
new file mode 100644
index 00000000000..3b0c6e39514
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0800.mf
@@ -0,0 +1,6 @@
+% This is tcci0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0900.mf
new file mode 100644
index 00000000000..41df3519649
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci0900.mf
@@ -0,0 +1,6 @@
+% This is tcci0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1000.mf
new file mode 100644
index 00000000000..0edd140f731
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1000.mf
@@ -0,0 +1,6 @@
+% This is tcci1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1095.mf
new file mode 100644
index 00000000000..08d0392ec10
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1095.mf
@@ -0,0 +1,6 @@
+% This is tcci1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1200.mf
new file mode 100644
index 00000000000..9efa850293c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1200.mf
@@ -0,0 +1,6 @@
+% This is tcci1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1440.mf
new file mode 100644
index 00000000000..18b423130c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1440.mf
@@ -0,0 +1,6 @@
+% This is tcci1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1728.mf
new file mode 100644
index 00000000000..275c873650e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci1728.mf
@@ -0,0 +1,6 @@
+% This is tcci1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci2074.mf
new file mode 100644
index 00000000000..923e1401b10
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci2074.mf
@@ -0,0 +1,6 @@
+% This is tcci2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci2488.mf
new file mode 100644
index 00000000000..38db2d4caaa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci2488.mf
@@ -0,0 +1,6 @@
+% This is tcci2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci2986.mf
new file mode 100644
index 00000000000..49694d203ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci2986.mf
@@ -0,0 +1,6 @@
+% This is tcci2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcci3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcci3583.mf
new file mode 100644
index 00000000000..e969ddcc16b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcci3583.mf
@@ -0,0 +1,6 @@
+% This is tcci3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcci
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcdh.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcdh.mf
new file mode 100644
index 00000000000..0eef40149fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcdh.mf
@@ -0,0 +1,89 @@
+% tcdh.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Dunhill Roman
+% (Still somewhat experimental)
+
+font_identifier:="TCDUNH";
+font_size (gensize*pt#);
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 3, 2, 0, 0, 0, 0, [-.1]);
+gendef [1/36pt#]( body_height# )( 235, 262, 289, 316, 343, 370, 424, 566);
+gendef [1/36pt#]( asc_height# )( 225, 250, 275, 300, 325, 350, 400, 532);
+gendef [1/36pt#]( cap_height# )( 223, 247.6, 272.2, 296.8, 321.4, 346, 395.2, 525);
+gendef [1/36pt#]( fig_height# )( 216, 239.2, 262.4, 285.6, 308.8, 332, 378.4, 501);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 41);
+gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 40);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 48);
+gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.4]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcfb.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcfb.mf
new file mode 100644
index 00000000000..29afd0b4994
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcfb.mf
@@ -0,0 +1,92 @@
+% tcfb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parametesr for
+%
+% Text Companion Fibonacci Font
+% (Experimental)
+%
+font_identifier:="TCFIB";
+font_size (gensize*pt#);
+basedef ( 5, 8, 13, 21, 34);
+gendef [1/36pt#]( u# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( width_adj# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( body_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( asc_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( cap_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( fig_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( x_height# )( 89, 144, 233, 377, 610);
+gendef [1/36pt#]( math_axis# )( 55, 89, 144, 233, 377);
+gendef [1/36pt#]( bar_height# )( 55, 89, 144, 233, 377);
+gendef [1/36pt#]( comma_depth# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( desc_depth# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( acc_height# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( dot_height# )( 21, 55, 89, 144, 233);
+gendef [1/36pt#]( udot_height# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( crisp# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( tiny# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( fine# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( thin_join# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( hair# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( stem# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( curve# )( 24, 39, 63, 102, 254);
+gendef [1/36pt#]( ess# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( flare# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( dot_size# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( cap_hair# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( cap_stem# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( cap_curve# )( 24, 39, 63, 102, 254);
+gendef [1/36pt#]( cap_ess# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( rule_thickness#)( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( dish# )( 1, 1, 1, 2, 5);
+gendef [1/36pt#]( bracket# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( jut# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( cap_jut# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( beak_jut# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( beak# )( 34, 55, 89, 144, 377);
+gendef [1/36pt#]( vair# )( 8, 13, 21, 34, 89);
+gendef [pt#]( notch_cut# )( 3, 8, 13, 21, 55);
+gendef [1/36pt#]( bar# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( slab# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( cap_bar# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( cap_band# )( 8, 13, 21, 34, 89);
+gendef [pt#]( cap_notch_cut# )( 3, 8, 13, 21, 55);
+gendef [1/36pt#]( serif_drop# )( 2, 3, 5, 8, 21);
+gendef [1/36pt#]( stem_corr# )( 0, 1, 1, 2, 5);
+gendef [1/36pt#]( vair_corr# )( 0, 1, 1, 2, 5);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( o# )( 5, 8, 13, 21, 55);
+gendef [1/36pt#]( apex_o# )( 5, 8, 13, 21, 55);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )(.375, .375, .375, .375, .375);
+superness:=1/sqrt 2;
+superpull:=1/13;
+beak_darkness:=5/13;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcff.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcff.mf
new file mode 100644
index 00000000000..5f55382e151
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcff.mf
@@ -0,0 +1,89 @@
+% tcff.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Funny Roman
+% (Experimental)
+
+font_identifier:="TCFF";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 12, 13.9, 16, 19.7);
+gendef [1/36pt#]( width_adj# )( [-16], [-16], [-16], [-16]);
+gendef [1/36pt#]( serif_fit# )( [-3], [-3], [-3], [-3]);
+gendef [1/36pt#]( cap_serif_fit# )( [-4], [-4], [-4], [-4]);
+gendef [1/36pt#]( letter_fit# )( 2, 2, 2, 2);
+gendef [1/36pt#]( body_height# )( 190, 215, 240, 290);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 181, 203, 225, 269);
+gendef [1/36pt#]( fig_height# )( 166, 188, 210, 254);
+gendef [1/36pt#]( x_height# )( 159, 174.5, 190, 221);
+gendef [1/36pt#]( math_axis# )( 33, 44, 55, 77);
+gendef [1/36pt#]( bar_height# )( 44, 52, 60, 76);
+gendef [1/36pt#]( comma_depth# )( 54, 62, 70, 86);
+gendef [1/36pt#]( desc_depth# )( 84, 92, 100, 116);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 8, 10, 11, 14);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 11, 13, 14, 15);
+gendef [1/36pt#]( hair# )( 8, 10, 11, 14);
+gendef [1/36pt#]( stem# )( 13, 15, 16, 19);
+gendef [1/36pt#]( curve# )( 17, 19, 20, 23);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 20, 22, 24, 27);
+gendef [1/36pt#]( dot_size# )( 21, 23, 26, 29);
+gendef [1/36pt#]( cap_hair# )( 13, 15, 16, 19);
+gendef [1/36pt#]( cap_stem# )( 21, 23, 24, 27);
+gendef [1/36pt#]( cap_curve# )( 23, 25, 26, 29);
+gendef [1/36pt#]( cap_ess# )( 25, 27, 28, 31);
+gendef [pt#]( rule_thickness#)( .46, .48, .5, .54);
+gendef [1/36pt#]( dish# )( 5, 5, 5, 5);
+gendef [1/36pt#]( bracket# )( 20, 20, 20, 20);
+gendef [1/36pt#]( jut# )( 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( cap_jut# )( 3.2, 3.6, 4, 4.8);
+gendef [1/36pt#]( beak_jut# )( [-8], [-8], [-8], [-8]);
+gendef [1/36pt#]( beak# )( 8, 9, 10, 12);
+gendef [1/36pt#]( vair# )( 11, 13, 14, 17);
+gendef [1/36pt#]( notch_cut# )( 2, 2, 2, 2);
+gendef [1/36pt#]( bar# )( 14, 16, 17, 20);
+gendef [1/36pt#]( slab# )( 17, 19, 20, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 14, 16, 17, 20);
+gendef [1/36pt#]( cap_notch_cut# )( 3, 3, 3, 3);
+gendef [1/36pt#]( serif_drop# )( [-10], [-10], [-10], [-10]);
+gendef [1/36pt#]( stem_corr# )( [-1], [-1], [-1], [-1]);
+gendef [1/36pt#]( vair_corr# )( [-1], [-1], [-1], [-1]);
+gendef [1/36pt#]( apex_corr# )( 4, 5, 6, 7);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 9, 9, 9, 10);
+gendef ( fudge )( 1, 1, 1, 1);
+gendef ( math_spread )( .5, .5, .5, .5);
+slant:=-.1;
+superness:=2/3;
+superpull:=-1/8;
+beak_darkness:=.5;
+square_dots:=true;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcfi.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcfi.mf
new file mode 100644
index 00000000000..56b156f3269
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcfi.mf
@@ -0,0 +1,89 @@
+% tcfi.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Funny Italic
+% (Experimental)
+
+font_identifier:="TCFI";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( [-16], [-16], [-16], [-16]);
+gendef [1/36pt#]( serif_fit# )( [-3], [-3], [-3], [-3]);
+gendef [1/36pt#]( cap_serif_fit# )( [-4], [-4], [-4], [-4]);
+gendef [1/36pt#]( letter_fit# )( 2, 2, 2, 2);
+gendef [1/36pt#]( body_height# )( 190, 215, 240, 290);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 181, 203, 225, 269);
+gendef [1/36pt#]( fig_height# )( 166, 188, 210, 254);
+gendef [1/36pt#]( x_height# )( 159, 174.5, 190, 221);
+gendef [1/36pt#]( math_axis# )( 33, 44, 55, 77);
+gendef [1/36pt#]( bar_height# )( 44, 52, 60, 76);
+gendef [1/36pt#]( comma_depth# )( 54, 62, 70, 86);
+gendef [1/36pt#]( desc_depth# )( 84, 92, 100, 116);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 8, 10, 11, 14);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 11, 13, 14, 15);
+gendef [1/36pt#]( hair# )( 8, 10, 11, 14);
+gendef [1/36pt#]( stem# )( 14, 16, 17, 20);
+gendef [1/36pt#]( curve# )( 18, 20, 21, 24);
+gendef [1/36pt#]( ess# )( 20, 22, 23, 26);
+gendef [1/36pt#]( flare# )( 21, 23, 25, 28);
+gendef [1/36pt#]( dot_size# )( 21, 23, 26, 29);
+gendef [1/36pt#]( cap_hair# )( 12, 14, 15, 18);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 24, 26, 27, 30);
+gendef [1/36pt#]( cap_ess# )( 26, 28, 29, 32);
+gendef [pt#]( rule_thickness#)( .46, .48, .5, .54);
+gendef [1/36pt#]( dish# )( 5, 5, 5, 5);
+gendef [1/36pt#]( bracket# )( 20, 20, 20, 20);
+gendef [1/36pt#]( jut# )( 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( cap_jut# )( 3.2, 3.6, 4, 4.8);
+gendef [1/36pt#]( beak_jut# )( [-8], [-8], [-8], [-8]);
+gendef [1/36pt#]( beak# )( 8, 9, 10, 12);
+gendef [1/36pt#]( vair# )( 12, 14, 15, 18);
+gendef [1/36pt#]( notch_cut# )( 2, 2, 2, 2);
+gendef [1/36pt#]( bar# )( 15, 17, 18, 21);
+gendef [1/36pt#]( slab# )( 18, 20, 21, 26);
+gendef [1/36pt#]( cap_bar# )( 20, 22, 23, 26);
+gendef [1/36pt#]( cap_band# )( 15, 17, 18, 21);
+gendef [1/36pt#]( cap_notch_cut# )( 3, 3, 3, 3);
+gendef [1/36pt#]( serif_drop# )( [-10], [-10], [-10], [-10]);
+gendef [1/36pt#]( stem_corr# )( [-1], [-1], [-1], [-1]);
+gendef [1/36pt#]( vair_corr# )( [-1], [-1], [-1], [-1]);
+gendef [1/36pt#]( apex_corr# )( 4, 5, 6, 7);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 9, 9, 9, 10);
+gendef ( fudge )( 1, 1, 1, 1);
+gendef ( math_spread )( .5, .5, .5, .5);
+slant:=.1;
+superness:=2/3;
+superpull:=-1/8;
+beak_darkness:=.5;
+square_dots:=true;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcfs.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcfs.mf
new file mode 100644
index 00000000000..76973b40fca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcfs.mf
@@ -0,0 +1,92 @@
+% tcfs.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% Text Companion Fibonacci SLanted Font
+% (Experimental)
+%
+font_identifier:="TCFIBS";
+font_size (gensize*pt#);
+basedef ( 5, 8, 13, 21, 34);
+gendef [1/36pt#]( u# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( width_adj# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( body_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( asc_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( cap_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( fig_height# )(144, 233, 377, 610, 1597);
+gendef [1/36pt#]( x_height# )( 89, 144, 233, 377, 610);
+gendef [1/36pt#]( math_axis# )( 55, 89, 144, 233, 377);
+gendef [1/36pt#]( bar_height# )( 55, 89, 144, 233, 377);
+gendef [1/36pt#]( comma_depth# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( desc_depth# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( acc_height# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( dot_height# )( 21, 55, 89, 144, 233);
+gendef [1/36pt#]( udot_height# )( 34, 55, 89, 144, 233);
+gendef [1/36pt#]( crisp# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( tiny# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( fine# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( thin_join# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( hair# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( stem# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( curve# )( 24, 39, 63, 102, 254);
+gendef [1/36pt#]( ess# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( flare# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( dot_size# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( cap_hair# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( cap_stem# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( cap_curve# )( 24, 39, 63, 102, 254);
+gendef [1/36pt#]( cap_ess# )( 21, 34, 55, 89, 233);
+gendef [1/36pt#]( rule_thickness#)( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( dish# )( 1, 1, 1, 2, 5);
+gendef [1/36pt#]( bracket# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( jut# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( cap_jut# )( 13, 21, 34, 55, 144);
+gendef [1/36pt#]( beak_jut# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( beak# )( 34, 55, 89, 144, 377);
+gendef [1/36pt#]( vair# )( 8, 13, 21, 34, 89);
+gendef [pt#]( notch_cut# )( 3, 8, 13, 21, 55);
+gendef [1/36pt#]( bar# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( slab# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( cap_bar# )( 8, 13, 21, 34, 89);
+gendef [1/36pt#]( cap_band# )( 8, 13, 21, 34, 89);
+gendef [pt#]( cap_notch_cut# )( 3, 8, 13, 21, 55);
+gendef [1/36pt#]( serif_drop# )( 2, 3, 5, 8, 21);
+gendef [1/36pt#]( stem_corr# )( 0, 1, 1, 2, 5);
+gendef [1/36pt#]( vair_corr# )( 0, 1, 1, 2, 5);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 1, 1, 3);
+gendef [1/36pt#]( o# )( 5, 8, 13, 21, 55);
+gendef [1/36pt#]( apex_o# )( 5, 8, 13, 21, 55);
+slant:=sqrt5-2;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )(.375, .375, .375, .375, .375);
+superness:=1/sqrt 2;
+superpull:=1/13;
+beak_darkness:=5/13;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate exroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit.mf
new file mode 100644
index 00000000000..4f742380b57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit.mf
@@ -0,0 +1,89 @@
+% tcit.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Italic Typewriter Text
+
+font_identifier:="TCITT";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 15, 15, 15, 15);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 34, 42, 50, 66);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 33, 37, 40, 45);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+slant:=1/4;
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+true_mono:=true;
+variant_g:=true;
+low_asterisk:=true;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit0800.mf
new file mode 100644
index 00000000000..34db75d5db5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit0800.mf
@@ -0,0 +1,6 @@
+% This is tcit0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit0900.mf
new file mode 100644
index 00000000000..12a9a348bf6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit0900.mf
@@ -0,0 +1,6 @@
+% This is tcit0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1000.mf
new file mode 100644
index 00000000000..8b59921b0c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1000.mf
@@ -0,0 +1,6 @@
+% This is tcit1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1095.mf
new file mode 100644
index 00000000000..32ebb769f26
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1095.mf
@@ -0,0 +1,6 @@
+% This is tcit1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1200.mf
new file mode 100644
index 00000000000..28551f89bf3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1200.mf
@@ -0,0 +1,6 @@
+% This is tcit1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1440.mf
new file mode 100644
index 00000000000..e2a2cce2f77
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1440.mf
@@ -0,0 +1,6 @@
+% This is tcit1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1728.mf
new file mode 100644
index 00000000000..8a329116a15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit1728.mf
@@ -0,0 +1,6 @@
+% This is tcit1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit2074.mf
new file mode 100644
index 00000000000..e92b0dbd3fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit2074.mf
@@ -0,0 +1,6 @@
+% This is tcit2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit2488.mf
new file mode 100644
index 00000000000..aa3642b7d30
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit2488.mf
@@ -0,0 +1,6 @@
+% This is tcit2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit2986.mf
new file mode 100644
index 00000000000..07e37b43bb5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit2986.mf
@@ -0,0 +1,6 @@
+% This is tcit2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcit3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcit3583.mf
new file mode 100644
index 00000000000..d9ed54e83dc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcit3583.mf
@@ -0,0 +1,6 @@
+% This is tcit3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcit
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb.mf
new file mode 100644
index 00000000000..9914287050c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb.mf
@@ -0,0 +1,90 @@
+% tcrb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Parameters were contributed by Tomas Vanhala (vanhala@cc.helsinki.fi)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Roman Bold (Non-Extended)
+
+font_identifier:="TCRB";
+font_size (gensize*pt#);
+basedef ( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5);
+gendef [1/36pt#]( width_adj# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 12);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 3.8, 4.5, 5.1, 5.6, 6, 6.8);
+gendef [1/36pt#]( letter_fit# )( 3, 2, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 123.5, 148.2, 172.9, 197.6, 222.3, 247, 296.4);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 80, 96, 112, 128, 144, 160, 192);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 40, 49, 58, 67, 76, 85, 102);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 37.5, 45, 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 29.5, 35.5, 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 11, 12, 13, 13, 13);
+gendef [1/36pt#]( fine# )( 8, 9, 9, 10, 10, 10, 10);
+gendef [1/36pt#]( thin_join# )( 8, 9, 9, 10, 10, 10, 10.5);
+gendef [1/36pt#]( hair# )( 15, 15.4, 15.8, 16.2, 16.6, 17, 18.3);
+gendef [1/36pt#]( stem# )( 24, 28, 32, 35, 38, 41, 47);
+gendef [1/36pt#]( curve# )( 27, 31, 35, 39, 43, 46, 52);
+gendef [1/36pt#]( ess# )( 19, 25, 29, 32, 35, 38, 44);
+gendef [1/36pt#]( flare# )( 27, 31, 35, 39, 42, 45, 51);
+gendef [1/36pt#]( dot_size# )( 31, 36, 41, 46, 51, 56, 62);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 18, 19, 19, 19, 20);
+gendef [1/36pt#]( cap_stem# )( 28, 33, 38, 43, 47, 51, 57);
+gendef [1/36pt#]( cap_curve# )( 31, 36, 41, 46, 51, 55, 61);
+gendef [1/36pt#]( cap_ess# )( 24, 31, 37, 43, 48, 53, 59);
+gendef [pt#]( rule_thickness#)( .43, .47, .51, .54, .57, .60, .66);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( jut# )( 13, 15, 17, 19, 22, 25, 30);
+gendef [1/36pt#]( cap_jut# )( 14, 17, 22, 26, 30, 34, 41);
+gendef [1/36pt#]( beak_jut# )( 7, 7.8, 8.6, 9.4, 10.2, 11, 12.4);
+gendef [1/36pt#]( beak# )( 25, 36, 46, 55, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 10, 11, 11.5, 12, 12.5, 13, 14.3);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( slab# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_bar# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [1/36pt#]( cap_band# )( 12, 13, 14, 15, 16, 17, 18.5);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 1.5, 1.8, 2.1, 2.4, 2.7, 3, 3.6);
+gendef [1/36pt#]( stem_corr# )( 1.5, 1.6, 1.7, 1.8, 1.9, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 5, 2, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3, 3, 4, 4, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 3, 3, 3, 4);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, 1.3, 1.1, .9, .7, .5, .4);
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0500.mf
new file mode 100644
index 00000000000..61079af0873
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0500.mf
@@ -0,0 +1,6 @@
+% This is tcrb0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0600.mf
new file mode 100644
index 00000000000..2c8a423e7d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0600.mf
@@ -0,0 +1,6 @@
+% This is tcrb0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0700.mf
new file mode 100644
index 00000000000..fc7328a2764
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0700.mf
@@ -0,0 +1,6 @@
+% This is tcrb0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0800.mf
new file mode 100644
index 00000000000..57d35d339ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0800.mf
@@ -0,0 +1,6 @@
+% This is tcrb0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0900.mf
new file mode 100644
index 00000000000..2ce5632bf81
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb0900.mf
@@ -0,0 +1,6 @@
+% This is tcrb0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1000.mf
new file mode 100644
index 00000000000..d53af391f29
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1000.mf
@@ -0,0 +1,6 @@
+% This is tcrb1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1095.mf
new file mode 100644
index 00000000000..df74f5d11b2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1095.mf
@@ -0,0 +1,6 @@
+% This is tcrb1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1200.mf
new file mode 100644
index 00000000000..fc0cd242782
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1200.mf
@@ -0,0 +1,6 @@
+% This is tcrb1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1440.mf
new file mode 100644
index 00000000000..657f8cf01d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1440.mf
@@ -0,0 +1,6 @@
+% This is tcrb1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1728.mf
new file mode 100644
index 00000000000..9ea538850dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb1728.mf
@@ -0,0 +1,6 @@
+% This is tcrb1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb2074.mf
new file mode 100644
index 00000000000..0d39833807f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb2074.mf
@@ -0,0 +1,6 @@
+% This is tcrb2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb2488.mf
new file mode 100644
index 00000000000..77916b328aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb2488.mf
@@ -0,0 +1,6 @@
+% This is tcrb2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb2986.mf
new file mode 100644
index 00000000000..594b0159d96
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb2986.mf
@@ -0,0 +1,6 @@
+% This is tcrb2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrb3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb3583.mf
new file mode 100644
index 00000000000..984c7528145
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrb3583.mf
@@ -0,0 +1,6 @@
+% This is tcrb3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcrb
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm.mf
new file mode 100644
index 00000000000..a423c3dc981
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm.mf
@@ -0,0 +1,88 @@
+% tcrm.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Roman Medium
+
+font_identifier:="TCRM";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 3, 2, 0, 0, 0, 0, [-.1]);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 42, 46.6, 51.2, 56, 60.4, 66, 77.2, 100);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 40);
+gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 41);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 47);
+gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0500.mf
new file mode 100644
index 00000000000..c20144c38d5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0500.mf
@@ -0,0 +1,6 @@
+% This is tcrm0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0600.mf
new file mode 100644
index 00000000000..124a679e5e4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0600.mf
@@ -0,0 +1,6 @@
+% This is tcrm0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0700.mf
new file mode 100644
index 00000000000..792dce49f70
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0700.mf
@@ -0,0 +1,6 @@
+% This is tcrm0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0800.mf
new file mode 100644
index 00000000000..28008c3443e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0800.mf
@@ -0,0 +1,6 @@
+% This is tcrm0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0900.mf
new file mode 100644
index 00000000000..3a4f8727cbe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm0900.mf
@@ -0,0 +1,6 @@
+% This is tcrm0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1000.mf
new file mode 100644
index 00000000000..323cac4803a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1000.mf
@@ -0,0 +1,6 @@
+% This is tcrm1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1095.mf
new file mode 100644
index 00000000000..350ae44166e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1095.mf
@@ -0,0 +1,6 @@
+% This is tcrm1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1200.mf
new file mode 100644
index 00000000000..9c2f16200ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1200.mf
@@ -0,0 +1,6 @@
+% This is tcrm1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1440.mf
new file mode 100644
index 00000000000..086fde19ac0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1440.mf
@@ -0,0 +1,6 @@
+% This is tcrm1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1728.mf
new file mode 100644
index 00000000000..6e88b3eae58
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm1728.mf
@@ -0,0 +1,6 @@
+% This is tcrm1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm2074.mf
new file mode 100644
index 00000000000..60f187923ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm2074.mf
@@ -0,0 +1,6 @@
+% This is tcrm2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm2488.mf
new file mode 100644
index 00000000000..0a1b37d6b05
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm2488.mf
@@ -0,0 +1,6 @@
+% This is tcrm2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm2986.mf
new file mode 100644
index 00000000000..aa1213a51e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm2986.mf
@@ -0,0 +1,6 @@
+% This is tcrm2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcrm3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm3583.mf
new file mode 100644
index 00000000000..9062d2bdd1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcrm3583.mf
@@ -0,0 +1,6 @@
+% This is tcrm3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcrm
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi.mf
new file mode 100644
index 00000000000..ebd2acc9d3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi.mf
@@ -0,0 +1,88 @@
+% tcsi.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Sans Serif Inclined
+
+font_identifier:="TCSSI";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 12, 13, 15, 17, 24);
+gendef [1/36pt#]( serif_fit# )( [-6], [-6.5], [-7], [-9], [-12]);
+gendef [1/36pt#]( cap_serif_fit# )( [-8.5], [-9], [-10], [-13], [-17]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 205, 235, 260, 315, 445);
+gendef [1/36pt#]( cap_height# )( 200, 225, 250, 300, 425);
+gendef [1/36pt#]( fig_height# )( 189, 212, 236, 283, 408);
+gendef [1/36pt#]( x_height# )( 128, 144, 160, 192, 267.8);
+gendef [1/36pt#]( math_axis# )( 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 97, 136);
+gendef [1/36pt#]( comma_depth# )( 37, 41, 45, 54, 78);
+gendef [1/36pt#]( desc_depth# )( 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 60, 65, 70, 82, 110);
+gendef [1/36pt#]( dot_height# )( 45.8, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 48.2, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 15, 16, 17, 20, 24);
+gendef [1/36pt#]( hair# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( stem# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( curve# )( 25, 27, 28, 30, 33);
+gendef [1/36pt#]( ess# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( flare# )( 22, 24, 25, 30, 33);
+gendef [1/36pt#]( dot_size# )( 26, 28, 30, 35, 40);
+gendef [1/36pt#]( cap_hair# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( cap_stem# )( 29, 31, 32, 33, 39);
+gendef [1/36pt#]( cap_curve# )( 29, 31, 32, 37, 42);
+gendef [1/36pt#]( cap_ess# )( 28, 31, 32, 37, 42);
+gendef [pt#]( rule_thickness#)( .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( .4, .5, .5, .6, .8);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 26, 31);
+gendef [1/36pt#]( notch_cut# )( 16, 17, 18, 22, 32);
+gendef [1/36pt#]( bar# )( 18, 20, 21, 25, 30);
+gendef [1/36pt#]( slab# )( 20, 22, 23, 27, 32);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 26, 31);
+gendef [1/36pt#]( cap_band# )( 17, 19, 20, 24, 30);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 31, 36);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 4, 4.5, 5, 6, 7);
+gendef [1/36pt#]( o# )( 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0);
+gendef ( fudge )( .93, .95, .96, .98, .98);
+gendef ( math_spread )( .4, .2, 0, [-.2], [-.2]);
+slant:=sind 12/cosd 12;
+superness:=1/sqrt 2;
+superpull:=1/20;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0500.mf
new file mode 100644
index 00000000000..5843e3ec0bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0500.mf
@@ -0,0 +1,6 @@
+% This is tcsi0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0600.mf
new file mode 100644
index 00000000000..5defb4b623e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0600.mf
@@ -0,0 +1,6 @@
+% This is tcsi0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0700.mf
new file mode 100644
index 00000000000..e3cb13096fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0700.mf
@@ -0,0 +1,6 @@
+% This is tcsi0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0800.mf
new file mode 100644
index 00000000000..bc7073298fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0800.mf
@@ -0,0 +1,6 @@
+% This is tcsi0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0900.mf
new file mode 100644
index 00000000000..5ff6063d223
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi0900.mf
@@ -0,0 +1,6 @@
+% This is tcsi0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1000.mf
new file mode 100644
index 00000000000..7bd78adea9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1000.mf
@@ -0,0 +1,6 @@
+% This is tcsi1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1095.mf
new file mode 100644
index 00000000000..bf6007fd5e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1095.mf
@@ -0,0 +1,6 @@
+% This is tcsi1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1200.mf
new file mode 100644
index 00000000000..fd102f08d3d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1200.mf
@@ -0,0 +1,6 @@
+% This is tcsi1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1440.mf
new file mode 100644
index 00000000000..9724ef25b92
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1440.mf
@@ -0,0 +1,6 @@
+% This is tcsi1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1728.mf
new file mode 100644
index 00000000000..29e79afdb99
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi1728.mf
@@ -0,0 +1,6 @@
+% This is tcsi1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi2074.mf
new file mode 100644
index 00000000000..52f8da4d798
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi2074.mf
@@ -0,0 +1,6 @@
+% This is tcsi2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi2488.mf
new file mode 100644
index 00000000000..6c0c3417a9a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi2488.mf
@@ -0,0 +1,6 @@
+% This is tcsi2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi2986.mf
new file mode 100644
index 00000000000..abc82090da4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi2986.mf
@@ -0,0 +1,6 @@
+% This is tcsi2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsi3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi3583.mf
new file mode 100644
index 00000000000..51e38b23726
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsi3583.mf
@@ -0,0 +1,6 @@
+% This is tcsi3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcsi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl.mf
new file mode 100644
index 00000000000..8aee3646d4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl.mf
@@ -0,0 +1,88 @@
+% tcsl.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Roman Slanted
+
+font_identifier:="TCSL";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 3, 2, 0, 0, 0, 0, [-.1]);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 42, 46.6, 51.2, 56, 60.4, 66, 77.2, 100);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 40);
+gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 41);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 47);
+gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=1/6;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0500.mf
new file mode 100644
index 00000000000..ea2616748b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0500.mf
@@ -0,0 +1,6 @@
+% This is tcsl0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0600.mf
new file mode 100644
index 00000000000..e8fa7e2a1fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0600.mf
@@ -0,0 +1,6 @@
+% This is tcsl0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0700.mf
new file mode 100644
index 00000000000..3117b1f6109
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0700.mf
@@ -0,0 +1,6 @@
+% This is tcsl0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0800.mf
new file mode 100644
index 00000000000..29aeabf9096
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0800.mf
@@ -0,0 +1,6 @@
+% This is tcsl0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0900.mf
new file mode 100644
index 00000000000..5406844f91e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl0900.mf
@@ -0,0 +1,6 @@
+% This is tcsl0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1000.mf
new file mode 100644
index 00000000000..918ce3d14dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1000.mf
@@ -0,0 +1,6 @@
+% This is tcsl1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1095.mf
new file mode 100644
index 00000000000..321bd0fccb6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1095.mf
@@ -0,0 +1,6 @@
+% This is tcsl1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1200.mf
new file mode 100644
index 00000000000..954ea479d12
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1200.mf
@@ -0,0 +1,6 @@
+% This is tcsl1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1440.mf
new file mode 100644
index 00000000000..1e144870ecc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1440.mf
@@ -0,0 +1,6 @@
+% This is tcsl1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1728.mf
new file mode 100644
index 00000000000..7be78e5c157
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl1728.mf
@@ -0,0 +1,6 @@
+% This is tcsl1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl2074.mf
new file mode 100644
index 00000000000..b17e26ba61c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl2074.mf
@@ -0,0 +1,6 @@
+% This is tcsl2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl2488.mf
new file mode 100644
index 00000000000..363eaebb189
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl2488.mf
@@ -0,0 +1,6 @@
+% This is tcsl2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl2986.mf
new file mode 100644
index 00000000000..3ac385b7f49
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl2986.mf
@@ -0,0 +1,6 @@
+% This is tcsl2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsl3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl3583.mf
new file mode 100644
index 00000000000..3b2244812a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsl3583.mf
@@ -0,0 +1,6 @@
+% This is tcsl3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcsl
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso.mf
new file mode 100644
index 00000000000..2248bd26170
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso.mf
@@ -0,0 +1,88 @@
+% tcso.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% Text Companion Sans Serif Bold Extended Oblique
+
+font_identifier:="TCSSBXO";
+font_size gensize*pt#;
+basedef ( 5, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12, 19, 22, 27, 40);
+gendef [1/36pt#]( width_adj# )( 12, 19, 22, 19, 27);
+gendef [1/36pt#]( serif_fit# )([-5], [-8], [-9], [-10], [-14]);
+gendef [1/36pt#]( cap_serif_fit# )([-6], [-9], [-11], [-15], [-20]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )(135, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )(130, 235, 260, 315, 445);
+gendef [1/36pt#]( cap_height# )(125, 225, 250, 300, 425);
+gendef [1/36pt#]( fig_height# )(125, 212, 250, 283, 408);
+gendef [1/36pt#]( x_height# )( 83, 149, 165, 198, 280);
+gendef [1/36pt#]( math_axis# )( 45, 80, 90, 108, 150);
+gendef [1/36pt#]( bar_height# )( 45, 80, 90, 95, 135);
+gendef [1/36pt#]( comma_depth# )( 19, 34, 38, 54, 75);
+gendef [1/36pt#]( desc_depth# )( 35, 62, 70, 84, 120);
+gendef [1/36pt#]( acc_height# )( 45, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 38, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( udot_height# )( 30, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 12, 25, 26, 26, 26);
+gendef [1/36pt#]( tiny# )( 12, 24, 26, 26, 26);
+gendef [1/36pt#]( fine# )( 5, 7, 9, 9, 9);
+gendef [1/36pt#]( thin_join# )( 11, 18, 19, 21, 25);
+gendef [1/36pt#]( hair# )( 25, 40, 49, 50, 67);
+gendef [1/36pt#]( stem# )( 25, 41, 49, 50, 67);
+gendef [1/36pt#]( curve# )( 25, 41, 49, 50, 67);
+gendef [1/36pt#]( ess# )( 22, 35, 43, 44, 60);
+gendef [1/36pt#]( flare# )( 20, 39, 40, 41, 58);
+gendef [1/36pt#]( dot_size# )( 24, 40, 47, 48, 65);
+gendef [1/36pt#]( cap_hair# )( 24, 41, 48, 50, 67);
+gendef [1/36pt#]( cap_stem# )( 26, 43, 51, 54, 70);
+gendef [1/36pt#]( cap_curve# )( 26, 43, 51, 54, 70);
+gendef [1/36pt#]( cap_ess# )( 26, 43, 51, 52, 68);
+gendef [1/36pt#]( rule_thickness#)( 16, 29, 30, 31, 36);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )(.75, 1.1, 1.5, 1.8, 3.5);
+gendef [1/36pt#]( vair# )( 15, 22, 26, 27, 35);
+gendef [1/36pt#]( notch_cut# )( 25, 42, 49, 50, 57);
+gendef [1/36pt#]( bar# )( 13, 26, 26, 27, 35);
+gendef [1/36pt#]( slab# )( 18, 35, 36, 37, 45);
+gendef [1/36pt#]( cap_bar# )( 17, 33, 34, 35, 42);
+gendef [1/36pt#]( cap_band# )( 16, 30, 31, 32, 40);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 44, 45, 46, 53);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( apex_corr# )( 15, 17, 18, 19, 20);
+gendef [1/36pt#]( o# )( 5, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0);
+gendef ( fudge )(.88, .88, .88, .88, .88);
+gendef ( math_spread )(.45, .45, .5, .5, .5);
+slant:=sind 12/cosd 12;
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0500.mf
new file mode 100644
index 00000000000..6d5f115062a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0500.mf
@@ -0,0 +1,6 @@
+% This is tcso0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0600.mf
new file mode 100644
index 00000000000..41d8db522e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0600.mf
@@ -0,0 +1,6 @@
+% This is tcso0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0700.mf
new file mode 100644
index 00000000000..fa05ef8f625
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0700.mf
@@ -0,0 +1,6 @@
+% This is tcso0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0800.mf
new file mode 100644
index 00000000000..f01fbfd9e0e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0800.mf
@@ -0,0 +1,6 @@
+% This is tcso0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0900.mf
new file mode 100644
index 00000000000..b37aef8c066
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso0900.mf
@@ -0,0 +1,6 @@
+% This is tcso0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1000.mf
new file mode 100644
index 00000000000..d0bea3f9db0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1000.mf
@@ -0,0 +1,6 @@
+% This is tcso1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1095.mf
new file mode 100644
index 00000000000..7a88a05b75b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1095.mf
@@ -0,0 +1,6 @@
+% This is tcso1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1200.mf
new file mode 100644
index 00000000000..305f94c5f87
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1200.mf
@@ -0,0 +1,6 @@
+% This is tcso1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1440.mf
new file mode 100644
index 00000000000..2e998187813
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1440.mf
@@ -0,0 +1,6 @@
+% This is tcso1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1728.mf
new file mode 100644
index 00000000000..c140a36ab5e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso1728.mf
@@ -0,0 +1,6 @@
+% This is tcso1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso2074.mf
new file mode 100644
index 00000000000..c2e2d721389
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso2074.mf
@@ -0,0 +1,6 @@
+% This is tcso2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso2488.mf
new file mode 100644
index 00000000000..6ca0cde6c7c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso2488.mf
@@ -0,0 +1,6 @@
+% This is tcso2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso2986.mf
new file mode 100644
index 00000000000..08344aa1b00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso2986.mf
@@ -0,0 +1,6 @@
+% This is tcso2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcso3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcso3583.mf
new file mode 100644
index 00000000000..1cbe7b749e1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcso3583.mf
@@ -0,0 +1,6 @@
+% This is tcso3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcso
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss.mf
new file mode 100644
index 00000000000..d79782b87e2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss.mf
@@ -0,0 +1,88 @@
+% tcss.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Sans Serif
+
+font_identifier:="TCSS";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 12, 13, 15, 17, 24);
+gendef [1/36pt#]( serif_fit# )( [-6], [-6.5], [-7], [-9], [-12]);
+gendef [1/36pt#]( cap_serif_fit# )( [-8.5], [-9], [-10], [-13], [-17]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 205, 235, 260, 315, 445);
+gendef [1/36pt#]( cap_height# )( 200, 225, 250, 300, 425);
+gendef [1/36pt#]( fig_height# )( 189, 212, 236, 283, 408);
+gendef [1/36pt#]( x_height# )( 128, 144, 160, 192, 267.8);
+gendef [1/36pt#]( math_axis# )( 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 97, 136);
+gendef [1/36pt#]( comma_depth# )( 37, 41, 45, 54, 78);
+gendef [1/36pt#]( desc_depth# )( 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 60, 65, 70, 82, 110);
+gendef [1/36pt#]( dot_height# )( 45.8, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 48.2, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 15, 16, 17, 20, 24);
+gendef [1/36pt#]( hair# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( stem# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( curve# )( 25, 27, 28, 30, 33);
+gendef [1/36pt#]( ess# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( flare# )( 22, 24, 25, 30, 33);
+gendef [1/36pt#]( dot_size# )( 26, 28, 30, 35, 40);
+gendef [1/36pt#]( cap_hair# )( 25, 27, 28, 33, 37);
+gendef [1/36pt#]( cap_stem# )( 29, 31, 32, 33, 39);
+gendef [1/36pt#]( cap_curve# )( 29, 31, 32, 37, 42);
+gendef [1/36pt#]( cap_ess# )( 28, 31, 32, 37, 42);
+gendef [pt#]( rule_thickness#)( .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( .4, .5, .5, .6, .8);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 26, 31);
+gendef [1/36pt#]( notch_cut# )( 16, 17, 18, 22, 32);
+gendef [1/36pt#]( bar# )( 18, 20, 21, 25, 30);
+gendef [1/36pt#]( slab# )( 20, 22, 23, 27, 32);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 26, 31);
+gendef [1/36pt#]( cap_band# )( 17, 19, 20, 24, 30);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 31, 36);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 4, 4.5, 5, 6, 7);
+gendef [1/36pt#]( o# )( 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0);
+slant:=0;
+gendef ( fudge )( .93, .95, .96, .98, .98);
+gendef ( math_spread )( .4, .2, 0, [-.2], [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/20;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0500.mf
new file mode 100644
index 00000000000..4dbf64d6779
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0500.mf
@@ -0,0 +1,6 @@
+% This is tcss0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0600.mf
new file mode 100644
index 00000000000..a878b52d84a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0600.mf
@@ -0,0 +1,6 @@
+% This is tcss0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0700.mf
new file mode 100644
index 00000000000..a4b712bc40f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0700.mf
@@ -0,0 +1,6 @@
+% This is tcss0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0800.mf
new file mode 100644
index 00000000000..d153dfbe4f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0800.mf
@@ -0,0 +1,6 @@
+% This is tcss0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0900.mf
new file mode 100644
index 00000000000..34eb3f6b21d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss0900.mf
@@ -0,0 +1,6 @@
+% This is tcss0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1000.mf
new file mode 100644
index 00000000000..a98f4427a20
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1000.mf
@@ -0,0 +1,6 @@
+% This is tcss1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1095.mf
new file mode 100644
index 00000000000..a88dcee6b00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1095.mf
@@ -0,0 +1,6 @@
+% This is tcss1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1200.mf
new file mode 100644
index 00000000000..c4991661e01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1200.mf
@@ -0,0 +1,6 @@
+% This is tcss1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1440.mf
new file mode 100644
index 00000000000..9a2c2ff2b7c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1440.mf
@@ -0,0 +1,6 @@
+% This is tcss1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1728.mf
new file mode 100644
index 00000000000..54eed5fa9bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss1728.mf
@@ -0,0 +1,6 @@
+% This is tcss1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss2074.mf
new file mode 100644
index 00000000000..882e8f53b6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss2074.mf
@@ -0,0 +1,6 @@
+% This is tcss2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss2488.mf
new file mode 100644
index 00000000000..46acc2a9d6b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss2488.mf
@@ -0,0 +1,6 @@
+% This is tcss2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss2986.mf
new file mode 100644
index 00000000000..caea4901d36
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss2986.mf
@@ -0,0 +1,6 @@
+% This is tcss2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcss3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcss3583.mf
new file mode 100644
index 00000000000..c9268a97ff7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcss3583.mf
@@ -0,0 +1,6 @@
+% This is tcss3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcss
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst.mf
new file mode 100644
index 00000000000..4254d42376f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst.mf
@@ -0,0 +1,88 @@
+% tcst.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Slanted Typewriter Text
+
+font_identifier:="TCSLTT";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 40, 45, 50, 60);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+slant:=1/6;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst0800.mf
new file mode 100644
index 00000000000..63d090db538
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst0800.mf
@@ -0,0 +1,6 @@
+% This is tcst0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst0900.mf
new file mode 100644
index 00000000000..f0ce2597f63
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst0900.mf
@@ -0,0 +1,6 @@
+% This is tcst0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1000.mf
new file mode 100644
index 00000000000..6f6f991a27b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1000.mf
@@ -0,0 +1,6 @@
+% This is tcst1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1095.mf
new file mode 100644
index 00000000000..6286d30257e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1095.mf
@@ -0,0 +1,6 @@
+% This is tcst1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1200.mf
new file mode 100644
index 00000000000..1d1f3624d9b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1200.mf
@@ -0,0 +1,6 @@
+% This is tcst1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1440.mf
new file mode 100644
index 00000000000..f7c7e8dcdcf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1440.mf
@@ -0,0 +1,6 @@
+% This is tcst1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1728.mf
new file mode 100644
index 00000000000..6c568708eb6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst1728.mf
@@ -0,0 +1,6 @@
+% This is tcst1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst2074.mf
new file mode 100644
index 00000000000..1553d5521a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst2074.mf
@@ -0,0 +1,6 @@
+% This is tcst2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst2488.mf
new file mode 100644
index 00000000000..2fa104ee66e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst2488.mf
@@ -0,0 +1,6 @@
+% This is tcst2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst2986.mf
new file mode 100644
index 00000000000..d577a329894
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst2986.mf
@@ -0,0 +1,6 @@
+% This is tcst2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcst3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcst3583.mf
new file mode 100644
index 00000000000..f189a4dbc6a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcst3583.mf
@@ -0,0 +1,6 @@
+% This is tcst3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcst
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx.mf
new file mode 100644
index 00000000000..255b133abb9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx.mf
@@ -0,0 +1,88 @@
+% tcsx.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% Text Comapnion Sans Serif Bold Extended
+
+font_identifier:="TCSSBX";
+font_size gensize*pt#;
+basedef ( 5, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12, 19, 22, 27, 40);
+gendef [1/36pt#]( width_adj# )( 12, 19, 22, 19, 27);
+gendef [1/36pt#]( serif_fit# )([-5], [-8], [-9], [-10], [-14]);
+gendef [1/36pt#]( cap_serif_fit# )([-6], [-9], [-11], [-15], [-20]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )(135, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )(130, 235, 260, 315, 445);
+gendef [1/36pt#]( cap_height# )(125, 225, 250, 300, 425);
+gendef [1/36pt#]( fig_height# )(125, 212, 250, 283, 408);
+gendef [1/36pt#]( x_height# )( 83, 149, 165, 198, 280);
+gendef [1/36pt#]( math_axis# )( 45, 80, 90, 108, 150);
+gendef [1/36pt#]( bar_height# )( 45, 80, 90, 95, 135);
+gendef [1/36pt#]( comma_depth# )( 19, 34, 38, 54, 75);
+gendef [1/36pt#]( desc_depth# )( 35, 62, 70, 84, 120);
+gendef [1/36pt#]( acc_height# )( 45, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 38, 67.5, 75, 90, 127.5);
+gendef [1/36pt#]( udot_height# )( 30, 53.1, 59, 70.8, 100.3);
+gendef [1/36pt#]( crisp# )( 12, 25, 26, 26, 26);
+gendef [1/36pt#]( tiny# )( 12, 24, 26, 26, 26);
+gendef [1/36pt#]( fine# )( 5, 7, 9, 9, 9);
+gendef [1/36pt#]( thin_join# )( 11, 18, 19, 21, 25);
+gendef [1/36pt#]( hair# )( 25, 40, 49, 50, 67);
+gendef [1/36pt#]( stem# )( 25, 41, 49, 50, 67);
+gendef [1/36pt#]( curve# )( 25, 41, 49, 50, 67);
+gendef [1/36pt#]( ess# )( 22, 35, 43, 44, 60);
+gendef [1/36pt#]( flare# )( 20, 39, 40, 41, 58);
+gendef [1/36pt#]( dot_size# )( 24, 40, 47, 48, 65);
+gendef [1/36pt#]( cap_hair# )( 24, 41, 48, 50, 67);
+gendef [1/36pt#]( cap_stem# )( 26, 43, 51, 54, 70);
+gendef [1/36pt#]( cap_curve# )( 26, 43, 51, 54, 70);
+gendef [1/36pt#]( cap_ess# )( 26, 43, 51, 52, 68);
+gendef [1/36pt#]( rule_thickness#)( 16, 29, 30, 31, 36);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )(.75, 1.1, 1.5, 1.8, 3.5);
+gendef [1/36pt#]( vair# )( 15, 22, 26, 27, 35);
+gendef [1/36pt#]( notch_cut# )( 25, 42, 49, 50, 57);
+gendef [1/36pt#]( bar# )( 13, 26, 26, 27, 35);
+gendef [1/36pt#]( slab# )( 18, 35, 36, 37, 45);
+gendef [1/36pt#]( cap_bar# )( 17, 33, 34, 35, 42);
+gendef [1/36pt#]( cap_band# )( 16, 30, 31, 32, 40);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 44, 45, 46, 53);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 2, 2, 2, 2, 2);
+gendef [1/36pt#]( apex_corr# )( 15, 17, 18, 19, 20);
+gendef [1/36pt#]( o# )( 5, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0);
+slant:=0;
+gendef ( fudge )(.88, .88, .88, .88, .88);
+gendef ( math_spread )(.45, .45, .5, .5, .5);
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0500.mf
new file mode 100644
index 00000000000..ea64eebb475
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0500.mf
@@ -0,0 +1,6 @@
+% This is tcsx0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0600.mf
new file mode 100644
index 00000000000..99e4ecb2b78
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0600.mf
@@ -0,0 +1,6 @@
+% This is tcsx0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0700.mf
new file mode 100644
index 00000000000..e919cc0d311
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0700.mf
@@ -0,0 +1,6 @@
+% This is tcsx0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0800.mf
new file mode 100644
index 00000000000..c84bdd69a45
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0800.mf
@@ -0,0 +1,6 @@
+% This is tcsx0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0900.mf
new file mode 100644
index 00000000000..b4638e7770d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx0900.mf
@@ -0,0 +1,6 @@
+% This is tcsx0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1000.mf
new file mode 100644
index 00000000000..3d51a2af185
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1000.mf
@@ -0,0 +1,6 @@
+% This is tcsx1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1095.mf
new file mode 100644
index 00000000000..81bf2535057
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1095.mf
@@ -0,0 +1,6 @@
+% This is tcsx1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1200.mf
new file mode 100644
index 00000000000..ea553586a67
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1200.mf
@@ -0,0 +1,6 @@
+% This is tcsx1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1440.mf
new file mode 100644
index 00000000000..d377ec9d9dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1440.mf
@@ -0,0 +1,6 @@
+% This is tcsx1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1728.mf
new file mode 100644
index 00000000000..fca17f3477a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx1728.mf
@@ -0,0 +1,6 @@
+% This is tcsx1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx2074.mf
new file mode 100644
index 00000000000..9745c95e9ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx2074.mf
@@ -0,0 +1,6 @@
+% This is tcsx2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx2488.mf
new file mode 100644
index 00000000000..0e20356d316
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx2488.mf
@@ -0,0 +1,6 @@
+% This is tcsx2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx2986.mf
new file mode 100644
index 00000000000..170337fcf52
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx2986.mf
@@ -0,0 +1,6 @@
+% This is tcsx2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcsx3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx3583.mf
new file mode 100644
index 00000000000..671f7abc0c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcsx3583.mf
@@ -0,0 +1,6 @@
+% This is tcsx3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcsx
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti.mf
new file mode 100644
index 00000000000..b04bc0ff9c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti.mf
@@ -0,0 +1,90 @@
+% tcti.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Text Italic
+%
+%
+font_identifier:="TCTI";
+font_size (gensize*pt#);
+basedef ( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 14.8, 15.8, 17, 18.4, 21.6);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3.5, 4.1, 4.6, 5, 5.8);
+gendef [1/36pt#]( letter_fit# )( 9.4, 7.9, 8.5, 9.2, 10.8);
+gendef [1/36pt#]( body_height# )( 189, 216, 243, 270, 324);
+gendef [1/36pt#]( asc_height# )( 175, 200, 225, 250, 300);
+gendef [1/36pt#]( cap_height# )( 172.2, 196.8, 221.4, 246, 295.2);
+gendef [1/36pt#]( fig_height# )( 162.4, 185.6, 208.8, 232, 278.4);
+gendef [1/36pt#]( x_height# )( 108.5, 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 63, 72, 81, 90, 108);
+gendef [1/36pt#]( bar_height# )( 60.9, 69.6, 78.3, 87, 104.4);
+gendef [1/36pt#]( comma_depth# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( desc_depth# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( acc_height# )( 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 52.5, 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 41.3, 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 7, 8, 8, 8, 8);
+gendef [1/36pt#]( tiny# )( 7, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 6, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 6, 7, 7, 7, 7.5);
+gendef [1/36pt#]( hair# )( 10.5, 11, 11, 11, 12);
+gendef [1/36pt#]( stem# )( 18.5, 20, 22, 23, 26);
+gendef [1/36pt#]( curve# )( 21.5, 23.5, 26, 28, 31);
+gendef [1/36pt#]( ess# )( 21, 23, 25, 27, 29);
+gendef [1/36pt#]( flare# )( 21, 24, 26, 29, 32);
+gendef [1/36pt#]( dot_size# )( 29, 32, 35, 38, 42);
+gendef [1/36pt#]( cap_hair# )( 9, 9.5, 10, 11, 11.5);
+gendef [1/36pt#]( cap_stem# )( 21.5, 23.5, 26, 29, 32);
+gendef [1/36pt#]( cap_curve# )( 24.5, 27, 30, 34, 37);
+gendef [1/36pt#]( cap_ess# )( 21, 24, 27, 31, 34);
+gendef [pt#]( rule_thickness#)( .34, .36, .38, .4, .44);
+gendef [1/36pt#]( dish# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 14, 16, 18, 20, 24);
+gendef [1/36pt#]( jut# )( 21, 24, 27, 30, 35);
+gendef [1/36pt#]( cap_jut# )( 24, 27, 30.5, 34, 38);
+gendef [1/36pt#]( beak_jut# )( 7.4, 7.9, 8.5, 9, 10.4);
+gendef [1/36pt#]( beak# )( 49, 56, 63, 70, 84);
+gendef [1/36pt#]( vair# )( 7, 8, 8, 8, 8.5);
+gendef [pt#]( notch_cut# )( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( bar# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( slab# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( cap_bar# )( 9, 9.5, 10, 11, 12.5);
+gendef [1/36pt#]( cap_band# )( 9, 9.5, 10, 11, 12.5);
+gendef [pt#]( cap_notch_cut# )( 7, 8, 9, 10, 12);
+gendef [1/36pt#]( serif_drop# )( 2.8, 3.2, 3.6, 4, 4.8);
+gendef [1/36pt#]( stem_corr# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .9, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 5, 6, 7, 8, 9);
+gendef [1/36pt#]( apex_o# )( 5, 6, 7, 8, 9);
+slant:=1/4;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )( .6, .4, .2, 0, [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+classic_serif:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0500.mf
new file mode 100644
index 00000000000..0e741f057e2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0500.mf
@@ -0,0 +1,6 @@
+% This is tcti0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0600.mf
new file mode 100644
index 00000000000..82a48f1e0c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0600.mf
@@ -0,0 +1,6 @@
+% This is tcti0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0700.mf
new file mode 100644
index 00000000000..22e9fd80cf1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0700.mf
@@ -0,0 +1,6 @@
+% This is tcti0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0800.mf
new file mode 100644
index 00000000000..0300a044dbf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0800.mf
@@ -0,0 +1,6 @@
+% This is tcti0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0900.mf
new file mode 100644
index 00000000000..2e222d19616
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti0900.mf
@@ -0,0 +1,6 @@
+% This is tcti0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1000.mf
new file mode 100644
index 00000000000..d1e3a47cd83
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1000.mf
@@ -0,0 +1,6 @@
+% This is tcti1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1095.mf
new file mode 100644
index 00000000000..6a7f439200f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1095.mf
@@ -0,0 +1,6 @@
+% This is tcti1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1200.mf
new file mode 100644
index 00000000000..0e0db866e12
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1200.mf
@@ -0,0 +1,6 @@
+% This is tcti1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1440.mf
new file mode 100644
index 00000000000..91df55387d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1440.mf
@@ -0,0 +1,6 @@
+% This is tcti1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1728.mf
new file mode 100644
index 00000000000..1487d40995a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti1728.mf
@@ -0,0 +1,6 @@
+% This is tcti1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti2074.mf
new file mode 100644
index 00000000000..6d0b822c2fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti2074.mf
@@ -0,0 +1,6 @@
+% This is tcti2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti2488.mf
new file mode 100644
index 00000000000..8c56bed68c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti2488.mf
@@ -0,0 +1,6 @@
+% This is tcti2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti2986.mf
new file mode 100644
index 00000000000..39e30a826d0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti2986.mf
@@ -0,0 +1,6 @@
+% This is tcti2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcti3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcti3583.mf
new file mode 100644
index 00000000000..c3fc434a2f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcti3583.mf
@@ -0,0 +1,6 @@
+% This is tcti3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcti
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt.mf
new file mode 100644
index 00000000000..6d7c77a36cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt.mf
@@ -0,0 +1,89 @@
+% tctt.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Typewriter Text
+
+font_identifier:="TCTT";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 40, 45, 50, 60);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+slant:=0;
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+true_mono:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt0800.mf
new file mode 100644
index 00000000000..ae16a1d6136
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt0800.mf
@@ -0,0 +1,6 @@
+% This is tctt0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt0900.mf
new file mode 100644
index 00000000000..3a41bc9de02
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt0900.mf
@@ -0,0 +1,6 @@
+% This is tctt0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1000.mf
new file mode 100644
index 00000000000..ef939dc4cf6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1000.mf
@@ -0,0 +1,6 @@
+% This is tctt1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1095.mf
new file mode 100644
index 00000000000..7abb50c9439
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1095.mf
@@ -0,0 +1,6 @@
+% This is tctt1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1200.mf
new file mode 100644
index 00000000000..026803fee1f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1200.mf
@@ -0,0 +1,6 @@
+% This is tctt1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1440.mf
new file mode 100644
index 00000000000..4c89d246d17
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1440.mf
@@ -0,0 +1,6 @@
+% This is tctt1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1728.mf
new file mode 100644
index 00000000000..fa2bbdd141e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt1728.mf
@@ -0,0 +1,6 @@
+% This is tctt1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt2074.mf
new file mode 100644
index 00000000000..dc53585f1d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt2074.mf
@@ -0,0 +1,6 @@
+% This is tctt2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt2488.mf
new file mode 100644
index 00000000000..cd0fe4b3d5e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt2488.mf
@@ -0,0 +1,6 @@
+% This is tctt2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt2986.mf
new file mode 100644
index 00000000000..94e4acd4d93
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt2986.mf
@@ -0,0 +1,6 @@
+% This is tctt2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tctt3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tctt3583.mf
new file mode 100644
index 00000000000..7fbc9b07c82
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tctt3583.mf
@@ -0,0 +1,6 @@
+% This is tctt3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tctt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui.mf
new file mode 100644
index 00000000000..6b60c4811c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui.mf
@@ -0,0 +1,88 @@
+% tcui.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Unslanted Italic
+
+font_identifier:="TCUI";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 10, 10, 10, 10, 10, 10, 10, 10);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 41);
+gendef [1/36pt#]( ess# )( 7, 12, 16, 18, 20, 22, 25, 30);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 40);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 48);
+gendef [1/36pt#]( cap_ess# )( 11, 16, 20, 24, 28, 32, 35, 40);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.4]);
+slant:=0;
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui0500.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0500.mf
new file mode 100644
index 00000000000..84fde1dd3d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0500.mf
@@ -0,0 +1,6 @@
+% This is tcui0500.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=5;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui0600.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0600.mf
new file mode 100644
index 00000000000..ff487482f8c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0600.mf
@@ -0,0 +1,6 @@
+% This is tcui0600.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=6;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui0700.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0700.mf
new file mode 100644
index 00000000000..9fe12880c02
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0700.mf
@@ -0,0 +1,6 @@
+% This is tcui0700.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=7;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0800.mf
new file mode 100644
index 00000000000..afc34cc87ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0800.mf
@@ -0,0 +1,6 @@
+% This is tcui0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0900.mf
new file mode 100644
index 00000000000..928195b11b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui0900.mf
@@ -0,0 +1,6 @@
+% This is tcui0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1000.mf
new file mode 100644
index 00000000000..ea1239e61cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1000.mf
@@ -0,0 +1,6 @@
+% This is tcui1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1095.mf
new file mode 100644
index 00000000000..0e3b094ae56
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1095.mf
@@ -0,0 +1,6 @@
+% This is tcui1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1200.mf
new file mode 100644
index 00000000000..0fa6f142fdd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1200.mf
@@ -0,0 +1,6 @@
+% This is tcui1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1440.mf
new file mode 100644
index 00000000000..7665f9a7c5d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1440.mf
@@ -0,0 +1,6 @@
+% This is tcui1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1728.mf
new file mode 100644
index 00000000000..212345fec24
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui1728.mf
@@ -0,0 +1,6 @@
+% This is tcui1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui2074.mf
new file mode 100644
index 00000000000..710608849cc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui2074.mf
@@ -0,0 +1,6 @@
+% This is tcui2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui2488.mf
new file mode 100644
index 00000000000..1a29c6a3f8e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui2488.mf
@@ -0,0 +1,6 @@
+% This is tcui2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui2986.mf
new file mode 100644
index 00000000000..a5dfb286140
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui2986.mf
@@ -0,0 +1,6 @@
+% This is tcui2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcui3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcui3583.mf
new file mode 100644
index 00000000000..5066339d0b2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcui3583.mf
@@ -0,0 +1,6 @@
+% This is tcui3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcui
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi.mf
new file mode 100644
index 00000000000..035dc5ea834
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi.mf
@@ -0,0 +1,88 @@
+% tcvi.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Variable Width Italic Typewriter Text
+
+font_identifier:="TCVITT";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 15, 15, 15, 15);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 34, 42, 50, 66);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 33, 37, 40, 45);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+slant:=1/4;
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=true;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi0800.mf
new file mode 100644
index 00000000000..d0bc227083e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi0800.mf
@@ -0,0 +1,6 @@
+% This is tcvi0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi0900.mf
new file mode 100644
index 00000000000..be22b24c33a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi0900.mf
@@ -0,0 +1,6 @@
+% This is tcvi0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1000.mf
new file mode 100644
index 00000000000..bd51f1bcb9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1000.mf
@@ -0,0 +1,6 @@
+% This is tcvi1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1095.mf
new file mode 100644
index 00000000000..5c2e2b453b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1095.mf
@@ -0,0 +1,6 @@
+% This is tcvi1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1200.mf
new file mode 100644
index 00000000000..03ab646174c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1200.mf
@@ -0,0 +1,6 @@
+% This is tcvi1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1440.mf
new file mode 100644
index 00000000000..98ae50d4a70
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1440.mf
@@ -0,0 +1,6 @@
+% This is tcvi1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1728.mf
new file mode 100644
index 00000000000..ba637597892
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi1728.mf
@@ -0,0 +1,6 @@
+% This is tcvi1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi2074.mf
new file mode 100644
index 00000000000..3bfd3aafb2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi2074.mf
@@ -0,0 +1,6 @@
+% This is tcvi2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi2488.mf
new file mode 100644
index 00000000000..37f63e2f115
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi2488.mf
@@ -0,0 +1,6 @@
+% This is tcvi2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi2986.mf
new file mode 100644
index 00000000000..90e55fa9d75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi2986.mf
@@ -0,0 +1,6 @@
+% This is tcvi2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvi3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi3583.mf
new file mode 100644
index 00000000000..34150d49fd7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvi3583.mf
@@ -0,0 +1,6 @@
+% This is tcvi3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcvi
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt.mf
new file mode 100644
index 00000000000..dae6b278432
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt.mf
@@ -0,0 +1,88 @@
+% tcvt.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameters for
+%
+% Text Companion Variable-Width Typewriter Text
+
+font_identifier:="TCVTT";
+font_size (gensize*pt#);
+basedef ( 8, 9, 10, 12);
+gendef [1/36pt#]( u# )( 17, 18.9, 21, 24.7);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 225, 250, 300);
+gendef [1/36pt#]( asc_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( cap_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( fig_height# )( 176, 198, 220, 264);
+gendef [1/36pt#]( x_height# )( 124, 139.5, 155, 186);
+gendef [1/36pt#]( math_axis# )( 88, 99, 110, 132);
+gendef [1/36pt#]( bar_height# )( 63, 71, 79, 95);
+gendef [1/36pt#]( comma_depth# )( 40, 45, 50, 60);
+gendef [1/36pt#]( desc_depth# )( 64, 72, 80, 96);
+gendef [1/36pt#]( acc_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( dot_height# )( 60, 67.5, 75, 90);
+gendef [1/36pt#]( udot_height# )( 47.2, 53.1, 59, 70.8);
+gendef [1/36pt#]( crisp# )( 19, 21, 22, 25);
+gendef [1/36pt#]( tiny# )( 19, 21, 22, 25);
+gendef [1/36pt#]( fine# )( 18, 20, 21, 22);
+gendef [1/36pt#]( thin_join# )( 18, 20, 21, 22);
+gendef [1/36pt#]( hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( ess# )( 19, 21, 22, 25);
+gendef [1/36pt#]( flare# )( 28, 30, 32, 35);
+gendef [1/36pt#]( dot_size# )( 31, 33, 36, 39);
+gendef [1/36pt#]( cap_hair# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_stem# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_curve# )( 22, 24, 25, 28);
+gendef [1/36pt#]( cap_ess# )( 22, 24, 25, 28);
+gendef [1/36pt#]( rule_thickness#)( 22, 24, 25, 28);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( cap_jut# )( 27, 31, 34, 39);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 31, 34, 39);
+gendef [1/36pt#]( vair# )( 19, 21, 22, 25);
+gendef [1/36pt#]( notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( slab# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_bar# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_band# )( 19, 21, 22, 25);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 24, 25, 28);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 9, 10, 11);
+gendef [1/36pt#]( o# )( 3, 3.5, 4, 5);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4);
+gendef ( fudge )( .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1]);
+slant:=0;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+clear_extra_memory;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt0800.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt0800.mf
new file mode 100644
index 00000000000..cbd9caf54c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt0800.mf
@@ -0,0 +1,6 @@
+% This is tcvt0800.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=8;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt0900.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt0900.mf
new file mode 100644
index 00000000000..f26e041eabf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt0900.mf
@@ -0,0 +1,6 @@
+% This is tcvt0900.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=9;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1000.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1000.mf
new file mode 100644
index 00000000000..6b39c0d54fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1000.mf
@@ -0,0 +1,6 @@
+% This is tcvt1000.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1095.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1095.mf
new file mode 100644
index 00000000000..ba260f3631c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1095.mf
@@ -0,0 +1,6 @@
+% This is tcvt1095.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=10.95;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1200.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1200.mf
new file mode 100644
index 00000000000..f1d028c61e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1200.mf
@@ -0,0 +1,6 @@
+% This is tcvt1200.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=12;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1440.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1440.mf
new file mode 100644
index 00000000000..f1a6737bf0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1440.mf
@@ -0,0 +1,6 @@
+% This is tcvt1440.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=14.4;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1728.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1728.mf
new file mode 100644
index 00000000000..4316b28f8bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt1728.mf
@@ -0,0 +1,6 @@
+% This is tcvt1728.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=17.28;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt2074.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt2074.mf
new file mode 100644
index 00000000000..8e4646fb35a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt2074.mf
@@ -0,0 +1,6 @@
+% This is tcvt2074.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=20.74;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt2488.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt2488.mf
new file mode 100644
index 00000000000..2985e9995db
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt2488.mf
@@ -0,0 +1,6 @@
+% This is tcvt2488.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=24.88;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt2986.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt2986.mf
new file mode 100644
index 00000000000..362ebcd4a05
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt2986.mf
@@ -0,0 +1,6 @@
+% This is tcvt2986.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=29.86;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/tcvt3583.mf b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt3583.mf
new file mode 100644
index 00000000000..eb9b10ccc0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/tcvt3583.mf
@@ -0,0 +1,6 @@
+% This is tcvt3583.mf in text format as of January, 19, 1997
+if unknown exbase: input exbase fi;
+
+
+gensize:=35.83;
+generate tcvt
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txaccent.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txaccent.mf
new file mode 100644
index 00000000000..8c8615582c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txaccent.mf
@@ -0,0 +1,180 @@
+% txaccent.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% ec Version 1.0
+%
+% Content:
+%
+% Accents for capital letters
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+% A dirty trick, better left unseen. |cap_height| and |cap_height#|
+% are restored at the end of this file.
+
+numeric saved_cap_height; saved_cap_height=cap_height;
+cap_height:=hi.x_height;
+numeric saved_cap_height#; saved_cap_height#=cap_height#;
+cap_height#:=hi.x_height#;
+
+vardef is_cap = true enddef;
+
+ecchar"Grave accent";
+beginchar_twice(oct"0",9u#,x_height#,0); % |put_gravis| changes the height
+adjust_fit(0,0);
+put_gravis;
+repeat_once;
+endchar;
+
+
+ecchar"Acute accent"; % using acute from plfonts
+beginchar_twice(oct"1",9u#,x_height#,0); % |put_accent| changes the height
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+put_accent;
+repeat_once;
+endchar;
+
+ecchar"Circumflex (hat) accent";
+beginchar(oct"002",9u#,cap_accent_height#,0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+fi
+adjust_fit(0,0);
+uppercase_hat(.5w,0,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+ecchar"Tilde (squiggle) accent";
+beginchar(oct"003",9u#,cap_accent_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+uppercase_tilde(0,0,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+ecchar"Umlaut (double dot) accent";
+beginchar(oct"004",9u#,cap_accent_height#,0);
+adjust_fit(0,0);
+uppercase_umlaut(0,0,1,2,3,4);
+penlabels(1,2,3,4);
+endchar;
+
+ecchar"Double acute accent (Long Hungarian umlaut accent)";
+beginchar_twice(oct"005",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+endchar;
+
+ecchar"Scandinavian circle accent";
+beginchar(oct"006",13u#+.5width_adj#,cap_accent_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+y[-1]= cap_height+if hefty: .5 fi accent_gap;
+uppercase_circle(.5w,y[-1],1,2,3,4);
+penlabels(1,2,3,4); endchar;
+
+ecchar"Hachek (check) accent";
+beginchar(oct"007",9u#,cap_accent_height#,0);
+adjust_fit(0,0);
+uc_hachek_accent(.5w);
+endchar;
+
+ecchar"Breve accent";
+beginchar(oct"10",9u#,cap_accent_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+uppercase_breve(.5w,0,1,2,3);
+penlabels(1,2,3); endchar;
+
+ecchar"Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"011",9u#,cap_accent_height#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar"Dot accent";
+beginchar_twice(oct"012",5u#,x_height#,0);
+adjust_fit(0,0);
+put_dot(tiny,max(dot_size#,cap_curve#));
+repeat_once;
+endchar;
+
+ecchar"Cedilla accent";
+beginchar(oct"013",8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+uppercase_cedilla(.5w,0,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+ecchar"Ogonek";
+beginchar(oct"014",5u#,0,desc_depth#);
+italcorr 0;
+adjust_fit(0,0);
+ogon_one := 1;
+ogon_two := 2;
+ogon_three := 3;
+if serifs:
+ x[ogon_one]r=0.7w;
+ %+outer_jut;
+else:
+ x[ogon_one]r=0.6w;
+fi
+ pickup crisp.nib;
+ pos[ogon_one](
+ if 0.9vair>currentbreadth: 0.9vair else: currentbreadth+eps fi,-60);
+ pos[ogon_two](stem,0);
+ pos[ogon_three](vair,145);
+ x[ogon_two]=x[ogon_one]-2.5u if monospace: /expansion_factor fi ;
+ x[ogon_three]=x[ogon_one]+0.5u if monospace: /expansion_factor fi;
+ bot y[ogon_one]r = 0;
+ bot y[ogon_three]=0.5(-d-o); %0.4
+ bot y[ogon_two]=0.5(-d-o);
+ filldraw stroke z[ogon_one]e{dir 225}...
+ z[ogon_two]e{dir -110}...{dir 60}z[ogon_three]e; % hook
+penlabels(1,2,3); endchar;
+
+iff not is_small_cap:
+ecchar"Capital tie accent";
+beginchar(oct"033",max(6u#,4u#+cap_stem#),uc_acc_height#,0); % same width as `I'
+italcorr 4/9[x_height#,uc_acc_height#]*slant+5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=hround(.5w-.5hair); x2=.5[x1,x3];
+rt x3r=hround(w+4.5u+2letter_fit+.5hair);
+y1=y3=cap_height + if hefty: .5 fi accent_gap; top y2r=cap_height+acc_height;
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+iff not is_small_cap:
+ecchar"New capital tie accent"; % centered
+beginchar(oct"035",9u#,asc_height#,0);
+italcorr 4/9[x_height#,uc_acc_height#]*slant+5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=w-rt x3r=hround(u-.5vair); x2=.5w;
+y1=y3=cap_height + if hefty: .5 fi accent_gap; top y2r=cap_height+acc_height;
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+
+% Restore original values of |cap_height| and |cap_height#|
+cap_height:=saved_cap_height; numeric saved_cap_height;
+cap_height#:=saved_cap_height#; numeric saved_cap_height#;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txgen.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txgen.mf
new file mode 100644
index 00000000000..787b6f6dc40
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txgen.mf
@@ -0,0 +1,111 @@
+% txgen.mf
+%
+% (c) Copyright 1995, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% was originally |gen.mf| by DEK
+% changed |cmchar| to |ecchar|
+% moved divorced symbol to position "c" (was "1")
+%
+% characters for Jill's genealogy publications
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Cross (death symbol)";
+beginchar("d",9u#,.65[x_height#,asc_height#],.1(asc_height#-x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+pos1(stem,0); pos2(.4[hair,stem],0); pos3(stem,0);
+%pos4(stem,90); pos5(.5[vair,stem],90); pos6(stem,90);
+pos4(light_stem,90); pos5(.5[vair,light_stem],90); pos6(light_stem,90);
+x1=x2=x3=.5w; top y1=h; bot y3=-d; y2=y4r;
+y4=y5=y6; y4l=good.y .6[-d,h]; x4=good.x u; x6=r-x4; x5=x2;
+filldraw z1l...z2l{down}...z3l--z3r...z2r{up}...z1r--cycle; % vertical stroke
+filldraw z4l...z5l...z6l--z6r...z5r...z4r--cycle; % horizontal stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Rings (marriage symbol)";
+beginchar("m",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+pos1(light_stem,90); pos3(light_stem,-90);
+pos2(light_stem,180); pos4(.3[hair,light_stem],0);
+x1=x3=.5[x2,x4]; lft x2r=hround(-u-.5light_stem); rt x4r=hround(.6w+.5stem);
+%top y1r=vround(h+.5light_stem); y2=y4=.5[y1,y3];
+%bot y3r=vround(-d-.5light_stem);
+top y1r=h; y2=y4=.5[y1,y3];
+bot y3r=-d;
+pos5(light_stem,90); pos7(light_stem,-90);
+pos6(.3[hair,light_stem],180); pos8(light_stem,0);
+x5-x1=x6-x2=x7-x3=x8-x4; rt x8r=hround(w+u+.5light_stem);
+y5-y1=y6-y2=y7-y3=y8-y4=0;
+filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4)
+ &pulled_arc.e(4,1); % left ring
+filldraw stroke pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8)
+ &pulled_arc.e(8,5); % right ring
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Five-pointed star (birth symbol)";
+beginchar("b",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric theta; theta=360/5; % degrees between points
+pos0(curve,0); pos1(rule_thickness,90); x0=x1=good.x .5w;
+top y1r=vround(math_axis+.5x_height+.5rule_thickness);
+ypart(.5[z1,z0+(z1-z2) rotated 2theta])=math_axis;
+pos2(curve,theta); pos3(rule_thickness,90+theta);
+z2=z0; z3-z0=(z1-z0) rotated theta;
+z4=whatever[z0l,z1r]=whatever[z2r,z3r];
+filldraw for n=0 upto 4:
+ z0+(z1r-z0)rotated(n*theta)--z0+(z4-z0)rotated(n*theta)--endfor
+ cycle; % star
+penlabels(0,1,2,3,4); endchar;
+
+ecchar "Divided rings (divorce symbol)";
+beginchar("c",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+pos11(stem,0); pos12(.4[hair,stem],0); pos13(stem,0);
+x11=x12=x13=.5w; top y11=round 1.3h; bot y13=round(-d-.3h); y12=.6[y13,y11];
+filldraw z11l...z12l{down}...z13l
+ --z13r...z12r{up}...z11r--cycle; % vertical stroke
+pos1(light_stem,90); pos3(light_stem,-90);
+pos2(light_stem,180); pos4(.3[hair,light_stem],0);
+x1=x3=.5[x2,x4]; lft x2r=hround(-3u-.5light_stem); rt x4r=hround(.25w+.5stem);
+top y1r=h; y2=y4=.5[y1,y3];
+bot y3r=-d;
+pos5(light_stem,90); pos7(light_stem,-90);
+pos6(.3[hair,light_stem],180); pos8(light_stem,0);
+x5-x1=x6-x2=x7-x3=x8-x4; rt x8r=hround(w+3u+.5light_stem);
+y5-y1=y6-y2=y7-y3=y8-y4=0;
+filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4)
+ &pulled_arc.e(4,1); % left ring
+filldraw stroke pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8)
+ &pulled_arc.e(8,5); % right ring
+penlabels(1,2,3,4,5,6,7,8,11,12,13); endchar;
+
+ecchar "Leaf";
+beginchar("l",18u#,asc_height#,0);
+adjust_fit(0,0); pickup pencircle scaled .6rule_thickness;
+z1=(0,0); z2=(w,h);
+z3=.5[z1,z2]+.25((z2-z1)rotated 90);
+z4=.5[z1,z2]+.25((z2-z1)rotated-90);
+path p[]; p3=z1...z3{z2-z1}...z2; p4=z1...z4{z2-z1}...z2;
+draw p3; % upper edge
+draw p4; % lower edge
+draw z1 -- z2; % stem
+z5=1/4[z1,z2]; z6=.55[z1,z2];
+z35=p3 intersectionpoint (z5--(x5,2h));
+z36=p3 intersectionpoint (z6--(x6,2h));
+z45=p4 intersectionpoint (z5--(2w,y5));
+z46=p4 intersectionpoint (z6--(2w,y6));
+draw z35--z5--z45; % vein
+draw z36--z6--z46; % vein
+labels(1,2,3,4,5,6,35,36,45,46); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txifract.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txifract.mf
new file mode 100644
index 00000000000..b81aa02ea65
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txifract.mf
@@ -0,0 +1,141 @@
+% txifract.mf
+%
+% (c) Copyright 1995, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Ready made fractions 1/2, 1/4, 3/4 in italic style
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar"Italic fraction one quarter";
+beginchar(oct"274",8u#,body_height#,desc_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric c_height; c_height=good.y .5[h,-d]+.5rule_thickness;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem');
+top y1=h+apex_o; bot y2=c_height+rule_thickness;
+filldraw stroke z1e--z2e; % stem
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=.8[y2,h]+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u); tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..{left}z4e; % point
+penlabels(1,2,3,4);
+clearxy;
+numeric hh; hh=c_height-2rule_thickness;
+pos1(stem,0); pos6(stem,0); pos7(stem,0);
+pos2(bar,-45); pos3(bar,-90); pos4(bar,-90); pos5(bar,-45);
+rt x1r=hround(.5w+.5u+.5stem); lft x2l=hround .25u;
+x3=2.75u; x4=w-2u; rt x5r=hround(w-.25u);
+rt x6r=rt x7r=hround(2/3w+.5stem);
+y1+.5stem=hh+o; bot y2r=0; bot y3r=vround(.08hh-.5bar);
+bot y4r=vround-.5bar; bot y5r=vround(.03hh-.5bar);
+y6+.5stem=bar_height; y7-.5stem=-d;
+filldraw circ_stroke z1e{down}...{3(x2-x1),y2-y1}z2e; % diagonal
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{x5-x4,2(y5-y4)}z5e; % bar
+filldraw z6l---z7l..z7r---z6r..cycle; % stem
+penlabels(1,2,3,4,5,6,7);
+pickup rule.nib;
+top y98=top y99=c_height; x98=w-x99=hround .5u;
+draw z98--z99; % fraction bar
+labels(98,99); endchar;
+
+ecchar"Italic fraction one half";
+beginchar(oct"275",8u#,body_height#,desc_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric c_height; c_height=good.y .5[h,-d]+.5rule_thickness;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem');
+top y1=h+apex_o; bot y2=c_height+rule_thickness;
+filldraw stroke z1e--z2e; % stem
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=.8[y2,h]+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u); tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..{left}z4e; % point
+penlabels(1,2,3,4);
+clearxy;
+pickup fine.nib;
+numeric hh; hh=c_height-2rule_thickness;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(curve,-360); pos7(hair,-405); pos8(hair,-360);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair);
+x3=.6[x2,x4]; lft x4r=hround(u-.5hair);
+x5=x7=.5w-.5u; rt x6r=hround(w-u); lft x8l=hround(1.5u-.5hair);
+y1=.5[.5x_height-d,hh]; y2=1/3[y1,y3]; y4=.5x_height-d;
+bot y3r=vround .78[-d,y4];
+top y5r=hh+o; y6=.5[y5,y7]; y7=.52[-d,y4]; bot y8=-d-o;
+filldraw stroke
+ if not hefty: z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6)
+ ...z7e{2(x7-x6),y7-y6}...{down}z8e; % main stroke
+pos9(vair,-90); pos10(vstem+curve-stem,-90); pos11(hair,0);
+x9=w-x10=2.5u; rt x11r=hround(w-.5u+.5hair);
+y9=.25[y10,y7]; bot y10r=-d-o; y11=.38[-d,.5x_height];
+filldraw stroke z8e{up}...z9e{right}..{right}z10e...{up}z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+pickup rule.nib;
+top y98=top y99=c_height; x98=w-x99=hround .5u;
+draw z98--z99; % fraction bar
+labels(98,99); endchar;
+
+ecchar"Italic fraction three quarters";
+beginchar(oct"276",8u#,body_height#,desc_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric c_height; c_height=good.y .5[h,-d]+.5rule_thickness;
+numeric dd; dd=c_height+rule_thickness;
+pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(stem,-360); pos7(bar,-450); pos8(bar,-450);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
+x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
+y1=.5[x_height,h]; y2=.5[y1,y3]; y7=y8=.52[dd,h]; bot y3r=vround 1/4[y7,h];
+y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
+filldraw stroke if not hefty:
+z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
+pos7'(vair,90); z7'l=z7r;
+pos9(curve,0); pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
+y9=.25[dd,h]; bot y10r=dd-o; y11=dd+1/3x_height; bulb(10,11,12); % bulb
+filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+clearxy;
+numeric hh; hh=c_height-2rule_thickness;
+pos1(stem,0); pos6(stem,0); pos7(stem,0);
+pos2(bar,-45); pos3(bar,-90); pos4(bar,-90); pos5(bar,-45);
+rt x1r=hround(.5w+.5u+.5stem); lft x2l=hround .25u;
+x3=2.75u; x4=w-2u; rt x5r=hround(w-.25u);
+rt x6r=rt x7r=hround(2/3w+.5stem);
+y1+.5stem=hh+o; bot y2r=0; bot y3r=vround(.08hh-.5bar);
+bot y4r=vround-.5bar; bot y5r=vround(.03hh-.5bar);
+y6+.5stem=bar_height; y7-.5stem=-d;
+filldraw circ_stroke z1e{down}...{3(x2-x1),y2-y1}z2e; % diagonal
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{x5-x4,2(y5-y4)}z5e; % bar
+filldraw z6l---z7l..z7r---z6r..cycle; % stem
+penlabels(1,2,3,4,5,6,7);
+pickup rule.nib;
+top y98=top y99=c_height; x98=w-x99=hround .5u;
+draw z98--z99; % fraction bar
+labels(98,99); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txisuper.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txisuper.mf
new file mode 100644
index 00000000000..8e1b9ccb306
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txisuper.mf
@@ -0,0 +1,122 @@
+% txisuper.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Superscript digits 1,2,3 in italic style
+% Male and female ordinal indicators
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Italic superscipt numeral 1";
+beginchar(oct"271",8u#,body_height#,0);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o;
+bot y2=.5asc_height;
+filldraw stroke z1e--z2e; % stem
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=.8[bot y2,h]+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u); tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..{left}z4e; % point
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "Italic superscript numeral 2";
+beginchar(oct"262",8u#,body_height#,0);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(curve,-360); pos7(hair,-405); pos8(hair,-360);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair);
+x3=.6[x2,x4]; lft x4r=hround(u-.5hair);
+x5=x7=.5w-.5u; rt x6r=hround(w-u); lft x8l=hround(1.5u-.5hair);
+y1=.5[y4,h]; y2=1/3[y1,y3];
+bot y8=.5asc_height-oo;
+y4=.78[bot y8,h];
+bot y3r=vround .78[bot y8,y4];
+top y5r=h+o; y6=.5[y5,y7]; y7=.52[bot y8,y4];
+filldraw stroke if not hefty:z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6)...z7e{2(x7-x6),y7-y6}...{down}z8e; % main stroke
+pos9(vair,-90); pos10(vstem+curve-stem,-90); pos11(hair,0);
+x9=w-x10=2.5u; rt x11r=hround(w-.5u+.5hair);
+y9=.25[y10,y7]; bot y10r=bot y8; y11=.38[bot y8,y4];
+filldraw stroke z8e{up}...z9e{right}..{right}z10e...{up}z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Italic superscript numeral 3";
+beginchar(oct"263",8u#,body_height#,0);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(stem,-360); pos7(bar,-450); pos8(bar,-450);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
+x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
+y[-1]=.5asc_height; % dummy point
+y1=.5[y[-1]+x_height,h]; y2=.5[y1,y3]; y7=y8=.52[y[-1],h];
+bot y3r=vround 1/4[y7,h];
+y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
+filldraw stroke if not hefty:
+ z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
+pos7'(vair,90); z7'l=z7r;
+pos9(curve,0); pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
+y9=.25[y[-1],h]; bot y10r=y[-1]-o; y11=1/3x_height+y[-1];
+bulb(10,11,12); % bulb
+filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar"Italic female ordinal indicator";
+beginchar(oct"252",8u#,body_height#,0);
+italcorr .7body_height#*slant;
+adjust_fit(0,0);
+numeric hh; hh=vround .5body_height;
+pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98hh;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=hh+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+pickup extra_rule.nib;
+x14=hround u; x15=hround(w-.5u);
+top y14=-rule_thickness; y15=y14;
+draw z14--z15; % underline
+currentpicture:=currentpicture shifted (0,hh);
+penlabels(0,1,2,3,4,5,6,7,14,15); endchar;
+
+ecchar"Italic male ordinal indicator";
+beginchar(oct"272",8u#,body_height#,0);
+numeric hh; hh=vround .5body_height;
+italcorr .7body_height#*slant;
+adjust_fit(0,0);
+pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=hh+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pickup extra_rule.nib;
+x5=w-x6=hround u;
+top y5=-rule_thickness; y6=y5;
+draw z5--z6; % underline
+currentpicture:=currentpicture shifted (0,hh);
+penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txitlod.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txitlod.mf
new file mode 100644
index 00000000000..3726ac30778
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txitlod.mf
@@ -0,0 +1,292 @@
+% txitlod.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Included with permission of the original author
+%
+% This file contains the ten ITALIC digits in so-called old style.
+% Character codes \0060 through \0071 are generated.
+% GJC LOKHORST March 3, 1995
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+% All digits have the same width
+font_digit_width 9u#;
+
+%% FROM OLDDIG
+
+ecchar "Oldstyle numeral 0";
+beginchar("0",9u#,x_height#,0);
+italcorr .7x_height#*slant-max(.2u#,.95u#-.5curve#);
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+ecchar "Oldstyle numeral 1";
+beginchar("1",9u#,x_height#,0);
+italcorr x_height#*slant+.5cap_stem#-4.25u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=if monospace: .8 else: .9 fi\\ h+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+ecchar "Oldstyle numeral 5";
+beginchar("5",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant-u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53[-d,h]-vair);
+top y6r=max((vround .61803[-d,h])+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-d-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5[-d,y5]; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h-d));
+ lft x9r=hround .9u; bot y9r=(vround .15[-d,h])-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u);
+ y2=y1l-eps; arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=(vround .95[-d,h])+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Oldstyle numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "Oldstyle numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ if lower_side>1.2upper_side: upper_side:=lower_side; fi
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Oldstyle numeral 9";
+beginchar("9",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant-u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-d-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=(vround 3/8[-d,h])-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1[-d,h]+.5flare,.15[-d,h]-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=(vround .07[-d,h])-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+%% ADAPTED FROM ITALD
+
+ecchar "Oldstyle numeral 2";
+beginchar("2",9u#,x_height#,0);
+italcorr .8x_height#*slant-.4u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(curve,-360); pos7(hair,-405); pos8(hair,-360);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair);
+% GJC LOKHORST x3=.6[x2,x4]; lft x4r=hround(u-.5hair);
+x3=.5[x2,x4]; lft x4r=hround u;
+x5=x7=.5w-.5u; rt x6r=hround(w-u); lft x8l=hround(1.5u-.5hair);
+y1=.5[.67x_height,h]; y2=.5[y1,y3];
+y4=1/3[y3,y5];y3=bar_height;
+top y5r=h+o; y6=.5[y5,y7]; y7=.52y4; bot y8=-o;
+filldraw stroke if not hefty:z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6)
+ ...z7e{2(x7-x6),y7-y6}...{down}z8e; % main stroke
+pos9(vair,-90); pos10(vstem+curve-stem,-90); pos11(hair,0);
+x9=w-x10=2.5u; rt x11r=hround(w-.5u+.5hair);
+y9=.25[y10,y7]; bot y10r=-o; y11=.26x_height;
+filldraw stroke z8e{up}...z9e{right}..{right}z10e...{up}z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Oldstyle numeral 3";
+beginchar("3",9u#,x_height#,desc_depth#);
+italcorr .8x_height#*slant-.4u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(stem,-360); pos7(bar,-450); pos8(bar,-450);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
+x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
+y1=.5[.67x_height,h]; y2=.5[y1,y3]; y7=y8=.52[-d,h]; bot y3r=vround 1/4[y7,h];
+y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
+filldraw stroke if not hefty: z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
+pos7'(vair,90); z7'l=z7r;
+pos9(curve,0); pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
+y9=.25[-d,h];
+bot y10r=-d-o;
+y11=.22[-d,h];bulb(10,11,12); % bulb
+filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar "Oldstyle numeral 4";
+beginchar("4",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-2.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos6(stem,0); pos7(stem,0);
+pos2(bar,-45); pos3(bar,-90); pos4(bar,-90); pos5(bar,-45);
+rt x1r=hround(.5w+.5u+.5stem); lft x2l=hround .25u;
+x3=2.75u; x4=w-2u; rt x5r=hround(w-.25u);
+rt x6r=rt x7r=hround(2/3w+.5stem);
+y1+.5stem=h+o; bot y2r=0; bot y3r=vround(.08h-.5bar);
+bot y4r=vround-.5bar; bot y5r=vround(.03h-.5bar);
+y6+.5stem=bar_height; y7-.5stem=-d;
+filldraw circ_stroke z1e{down}...{3(x2-x1),y2-y1}z2e; % diagonal
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{x5-x4,2(y5-y4)}z5e; % bar
+filldraw z6l---z7l..z7r---z6r..cycle; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Oldstyle numeral 7";
+beginchar("7",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+numeric fat_curve; fat_curve=1.4[stem,curve];
+pos1(hair,0); pos2(hair,0); pos3(vstem+curve-stem,-90);
+pos4(vair,-90); pos5(hair,0); pos6(fat_curve,0);
+top y1=h+o; y2=bar_height; y3l=y5=y1;
+bot y4r=vround(.5[y2,h]-.5vair); y6-.5fat_curve=-d-o;
+lft x2l=hround(.5u-.5hair); x3=.5w-.5u; x4=2/3w;
+rt x5r=hround(w-.75u+.5hair); rt x6r=hround(.5w+u+.5fat_curve);
+z1=z2+whatever*(z5-z6); filldraw stroke z1e--z2e; % serif
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{2(x5-x6),y5-y6}z5e; % bar
+filldraw circ_stroke z6e{up}...{2(x5-x6),y5-y6}z5e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txpseudo.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txpseudo.mf
new file mode 100644
index 00000000000..40fdbe96836
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txpseudo.mf
@@ -0,0 +1,66 @@
+% txpseudo.mf
+%
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% This file contains pseudoparameters which are not entered in the
+% parameter files, but are computed from the initial parameter set.
+% There are also ad hoc parameters needed only once, and scratch
+% parameters with different values at each occuerence (like |theta|).
+%
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+% Diameters of dots
+
+numeric idot_diam#,udot_diam#,pdot_diam#;
+idot_diam#=max(dot_size#,cap_curve#); % dot of letters `i' and `j'
+udot_diam#=max(dot_size#,cap_curve#); % umlaut dots
+pdot_diam#=if monospace: 5/4 fi\\ dot_size#; % punctuation dots
+
+% |limit_dist| is used in |put_cross|
+% (the value of |u| is changed by |mono_adjust|, hence the global setting)
+
+vardef limit_dist=5/4u enddef;
+
+% More parametrisations for accents from csaccent.mf (csfonts):
+
+numeric uc_acc_height, uc_acc_height#,
+ lc_acute_height, lc_acute_height#,
+ lc_hachek_height, lc_hachek_height#,
+ accent_u, accent_u#,
+ accent_thin,
+ uc_acc_shift, asc_acc_shift;
+if unknown circ_weight: circ_weight:=1; fi
+
+uc_acc_height# = cap_height#+asc_height#-hi.x_height#;
+lc_acute_height# = asc_height#;
+lc_hachek_height# = hi.x_height#+acc_height#;
+accent_u# = u#; % unexpanded dimension unit
+
+vardef accent_thin = if thin_join > crisp: thin_join else: crisp+eps fi enddef;
+
+vardef uc_acc_shift = cap_height - hi.x_height enddef;
+vardef asc_acc_shift = asc_height - hi.x_height enddef;
+
+% Height of floating accents for capitals (note, that TeX raises them
+% by |uc_acc_shift|)
+
+numeric cap_accent_height, cap_accent_height#;
+cap_accent_height# = acc_height# + hi.x_height#;
+
+def pseudo_setup=
+ define_whole_blacker_pixels(idot_diam,udot_diam,pdot_diam);
+ define_whole_vertical_pixels(uc_acc_height,lc_acute_height,
+ lc_hachek_height);
+ define_pixels(accent_u);
+ define_whole_vertical_pixels(cap_accent_height);
+enddef;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txrfract.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txrfract.mf
new file mode 100644
index 00000000000..40fd56f781b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txrfract.mf
@@ -0,0 +1,200 @@
+% txrfract.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Ready made fractions 1/2, 1/4, 3/4 in roman style
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar"Fraction one quarter";
+beginchar(oct"274",8u#,body_height#,desc_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric c_height; c_height=good.y .5[h,-d]+.5rule_thickness;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem');
+top y1=h+o; bot y2=c_height+rule_thickness;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ [bot y2,h]+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4);
+clearxy;
+numeric hh; hh=c_height-2rule_thickness;
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab-d,hh-light_stem]+1
+ else:.35[-d,hh-light_stem] fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=hh+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<hh-cut:{z3r-z4r}...{up}(x1l-1,hh-cut)
+ --(x1l,hh-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=-d;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7);
+pickup rule.nib;
+top y98=top y99=c_height; x98=w-x99=hround .5u;
+draw z98--z99; % fraction bar
+labels(98,99); endchar;
+
+ecchar"Fraction one half";
+beginchar(oct"275",8u#,body_height#,desc_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric c_height; c_height=good.y .5[h,-d]+.5rule_thickness;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem');
+top y1=h+o; bot y2=c_height+rule_thickness;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ [bot y2,h]+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4);
+clearxy;
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=-d; lft x7=hround .9u; rt x8r=hround(w-.9u);
+y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=c_height-2rule_thickness+o;
+x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75[-d,top y2r];
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3[-d,top y2r];
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7[-d,top y2r];
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness-d; y4=.3[y5,y3]; top y6=min(y5,slab-d,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58[-d,top y2r])];
+z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8);
+pickup rule.nib;
+top y98=top y99=c_height; x98=w-x99=hround .5u;
+draw z98--z99; % fraction bar
+labels(98,99); endchar;
+
+ecchar"Fraction three quarters";
+beginchar(oct"276",8u#,body_height#,desc_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric c_height; c_height=good.y .5[h,-d]+.5rule_thickness;
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=c_height+rule_thickness-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54[bot y8r,h]+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u;
+ y0=min(.9[bot y8r,h]-.5bulb_diam1,.75[bot y8r,h]+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u;
+ y10=max(.1[bot y8r,h]+.5bulb_diam2,.3[bot y8r,h]-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75[bot y8r,h]+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25[bot y8r,h]-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10);
+clearxy;
+numeric hh; hh=c_height-2rule_thickness;
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab-d,hh-light_stem]+1
+ else:.35[-d,hh-light_stem] fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=hh+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<hh-cut:{z3r-z4r}...{up}(x1l-1,hh-cut)
+ --(x1l,hh-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=-d;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+pickup rule.nib;
+top y98=top y99=c_height; x98=w-x99=hround .5u;
+draw z98--z99; % fraction bar
+labels(98,99); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txromod.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txromod.mf
new file mode 100644
index 00000000000..8afa935d5c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txromod.mf
@@ -0,0 +1,334 @@
+% txromod.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% This was olddig.mf from The Computer Modern Fonts by D. E. Knuth
+% Changed |cmchar| to |ecchar|
+% This file contains the ten digits in so-called old style.
+% Character codes \0060 through \0071 are generated.
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+% All digits have the same width
+font_digit_width 9u#;
+
+ecchar "Oldstyle numeral 0";
+beginchar("0",9u#,x_height#,0);
+italcorr .7x_height#*slant-max(.2u#,.95u#-.5curve#);
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+ecchar "Oldstyle numeral 1";
+beginchar("1",9u#,x_height#,0);
+italcorr x_height#*slant+.5cap_stem#-4.25u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=if monospace: .8 else: .9 fi\\ h+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+ecchar "Oldstyle numeral 2";
+beginchar("2",9u#,x_height#,0);
+italcorr .8x_height#*slant-.4u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[vair,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .8u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/3)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround .8[hair,flare];
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Oldstyle numeral 3";
+beginchar("3",9u#,x_height#,desc_depth#);
+italcorr .8x_height#*slant-.4u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6);
+pos8(bot_thickness,-90); bot y8r=-d-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54[-d,h]+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h+d);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9[-d,h]-.5bulb_diam1,.75[-d,h]+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1[-d,h]+.5bulb_diam2,.3[-d,h]-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h+d)); lft x1r=hround u;
+ bot y1l=(vround .75[-d,h])+o; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h-d));
+ lft x9r=hround .75u; top y9l=(vround .25[-d,h])-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Oldstyle numeral 4";
+beginchar("4",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-2.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u); bot y5l=0;
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); pos2'(light_stem,0); x2'=x7;
+rt x7r=x1r; bot y7=-d if not serifs:-o fi;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "Oldstyle numeral 5";
+beginchar("5",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant-u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53[-d,h]-vair);
+top y6r=max((vround .61803[-d,h])+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-d-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5[-d,y5]; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h-d));
+ lft x9r=hround .9u; bot y9r=(vround .15[-d,h])-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u);
+ y2=y1l-eps; arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=(vround .95[-d,h])+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Oldstyle numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "Oldstyle numeral 7";
+beginchar("7",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(2epsilon,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-d-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-d-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3[-d,h]; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Oldstyle numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ if lower_side>1.2upper_side: upper_side:=lower_side; fi
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Oldstyle numeral 9";
+beginchar("9",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant-u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-d-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=(vround 3/8[-d,h])-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1[-d,h]+.5flare,.15[-d,h]-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=(vround .07[-d,h])-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txrsuper.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txrsuper.mf
new file mode 100644
index 00000000000..b9a3ca99ed2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txrsuper.mf
@@ -0,0 +1,186 @@
+% txrsuper.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Superscript digits 1,2,3 in roman style
+% Male and female ordinal indicator in roman style
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Superscript numeral 1";
+beginchar(oct"271",8u#,body_height#,0);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o;
+bot y2=.5asc_height;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .85 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+ecchar "Superscript numeral 2";
+beginchar(oct"262",8u#,body_height#,0);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=.5asc_height;
+lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u);
+y3+.5vair=.75[bot y7r,h];
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3[bot y7r,h];
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7[bot y7r,h];
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness+bot y7r;
+y4=.3[y5,y3]; top y6=min(y5,slab+bot y5r,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58[bot y7r,h])];
+z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Superscript numeral 3";
+beginchar(oct"263",8u#,body_height#,0);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90);
+bot y8r=.5asc_height-oo;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54[bot y8r,h]+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u;
+ y0=min(.9h-.5bulb_diam1,.75[bot y8r,h]+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u;
+ y10=max(.1[bot y8r,h]+.5bulb_diam2,.3[bot y8r,h]-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75[bot y8r,h]+oo;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25[bot y8r,h]-oo;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar"Female ordinal indicator";
+beginchar(oct"252",8u#,body_height#,0);
+numeric hh; hh=vround .5body_height;
+bh#:=min(.7bar_height#,.5body_height#-bar_height#); define_pixels(bh);
+italcorr .7body_height#*slant;
+adjust_fit(0,0);
+pickup fine.nib; top y3r=hh+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,hh]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,hh];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+pickup extra_rule.nib;
+x14=w-x15=hround u;
+top y14=-rule_thickness; y15=y14;
+draw z14--z15; % underline
+currentpicture:=currentpicture shifted (0,hh);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+ecchar"Male ordinal indicator";
+beginchar(oct"272",8u#,body_height#,0);
+numeric hh; hh=vround .5body_height;
+italcorr .7body_height#*slant;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=hh+vround 1.5oo; y3r=-oo;
+y2=y4=.5hh-vair_corr; y2l:=y4l:=.52hh;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+pickup extra_rule.nib;
+x5=w-x6=hround u;
+top y5=-rule_thickness; y6=y5;
+draw z5--z6; % underline
+currentpicture:=currentpicture shifted (0,hh);
+penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txsymb.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txsymb.mf
new file mode 100644
index 00000000000..6d4e2755fa9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txsymb.mf
@@ -0,0 +1,70 @@
+% txsymb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% EC Version 1.0
+% 19-JAN-1997
+%
+% Driver file for the tc fonts
+%
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input exaccess; % accent accessories
+input txpseudo; % pseudoparameters
+
+mode_setup; font_setup; pseudo_setup;
+
+input txaccent; % flat accents for capital letters
+input txgen; % genealogical symbols (by DEK)
+input txsymbol; % misc. symbols
+if variant_g: % italics?
+ input txitlod; % old style digits (by GJL)
+ input txisuper; % superscript 1,2,3
+ input txifract; % fractions 1/4, 1/2, 3/4
+else: % roman
+ input txromod; % old style digits (by DEK)
+ input txrsuper; % superscript 1,2,3
+ input txrfract; % fractions 1/4, 1/2, 3/4
+fi;
+
+% Ligtable
+
+if not monospace:
+ ligtable "-": oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+fi
+
+% Fontparameter
+%
+font_coding_scheme:="TeX text companion symbols 1---TS1";
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (cap_height#+acc_height#);
+font_desc_depth desc_depth#;
+font_max_height(max(asc_height#,body_height#,
+ cap_height#+acc_height#));
+font_max_depth(max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+font_cap_stem cap_stem#; % No letter capital I in the symbols
+font_baselineskip max(1.2*designsize,body_height#+paren_depth#);
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/jknappen/ec/txsymbol.mf b/Master/texmf-dist/fonts/source/jknappen/ec/txsymbol.mf
new file mode 100644
index 00000000000..ac286193249
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/ec/txsymbol.mf
@@ -0,0 +1,2183 @@
+% txsymbol.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% EC Version 1.0
+% 31-DEC-1996
+%
+% Miscellaneous symbols for the TS1 encoding
+%
+% Heavily borrowing from existent fonts, like Computer Modern, AMS symbols
+% and wasy symbols
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar"Single straight base quote"; % jk
+beginchar(oct"015",7u#,asc_height#,0);
+ numeric shifth_down;
+ adjust_fit(0,0);
+ x1=x2=.5w;
+ y2=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift;
+ if serifs:
+ y1=flare/2; the_shift=h-.5stem-y1;
+ pickup crisp.nib;
+ pos1(flare,0); pos2(vair,0);
+ filldraw circ_stroke (z1e--z2e); % stem and bulb
+ else:
+ top y1=stem; the_shift=h-y1;
+ pickup fine.nib;
+ pos1(stem,0); pos2(vair,0);
+ filldraw stroke z1e--z2e; % stem
+ fi
+ charht:=dot_size#; chardp:=desc_depth#;
+ penlabels(1,2,3,4);
+endchar;
+
+ecchar"Double straight base quotes"; % from pl_cud (plfonts)
+beginchar(oct"022",9u#,asc_height#,0);
+ numeric top_width#,spread#,shifth_down;
+ top_width#=if serifs: flare# else: stem# fi;
+ spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+ adjust_fit(0,0);
+ numeric the_shift;
+ x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+ y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift;
+ if serifs:
+ y1=flare/2; the_shift=h-.5stem-y1;
+ pickup crisp.nib;
+ pos1(flare,0); pos2(vair,0); pos3(flare,0); pos4(vair,0);
+ filldraw circ_stroke (z1e--z2e); % left stem and bulb
+ filldraw circ_stroke (z3e--z4e); % right stem and bulb
+ else:
+ top y1=stem; the_shift=h-y1;
+ pickup fine.nib;
+ pos1(stem,0); pos2(vair,0); pos3(stem,0); pos4(vair,0);
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ fi
+ charht:=dot_size#; chardp:=desc_depth#;
+ penlabels(1,2,3,4);
+endchar;
+
+ecchar "twelve u dash";
+beginchar(oct"025",12u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar "three quarters em dash";
+beginchar(oct"026",13.5u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar "Capital compound word mark";
+beginchar(oct"027",0,cap_height#,0);
+zero_width;
+endchar;
+
+ecchar "Leftward arrow"; % from sym.mf (cmfonts)
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"030",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;
+x3=x4=x0+if monospace:3u else:4u fi+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar "Rightward arrow"; % from sym.mf (cmfonts)
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"031",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;
+x3=x4=x0-if monospace:3u else:4u fi-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar"Tie accent"; % from italms (cmfonts)
+beginchar(oct"032",5u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=hround(.5w-.5hair); x2=.5[x1,x3];
+rt x3r=hround(w+4u+2letter_fit+.5hair);
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+ecchar"New tie accent"; % centered
+beginchar(oct"034",9u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=w-rt x3r=hround(2u-.5vair); x2=.5w;
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+ecchar "Ascender height compound word mark";
+beginchar(oct"037",0,asc_height#,0);
+zero_width;
+endchar;
+
+iff not variant_g: % not italic
+ecchar"Blank symbol"; % jk
+beginchar(oct"040",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+put_cross(.5stem+if serifs: .9max(limit_dist,jut) else: 1.8u fi,.5stem+3u);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff variant_g: % italic
+ecchar"Blank symbol"; % jk
+beginchar(oct"040",8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+put_cross(.5stem+if serifs: .9max(limit_dist,jut) else: 1.8u fi,.5stem+3u);
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar"Dollar sign"; % from romanp (cm)
+beginchar("$",9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+ecchar "Straight single quote"; % from romsub (cm)
+beginchar(oct"047",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+adjust_fit(0,0);
+x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; fi % stem
+penlabels(1,2); endchar;
+
+ecchar "Comma";
+beginchar(",",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+ecchar "Double hyphen or short equals sign"; % jk
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"055",6u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+pos3(thickness,90); pos4(thickness,90);
+y1=y2; y3=y4;
+top y1=vround .5h+.5thickness+.5spread;
+top y3=vround .5h+.5thickness-.5spread;
+rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+x3=x1; x4=x2;
+filldraw stroke z1e--z2e; % upper bar
+filldraw stroke z3e--z4e; % lower bar
+penlabels(1,2,3,4); endchar;
+
+ecchar "Period";
+beginchar(".",5u#,pdot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+ecchar "Asterisk at the axis"; % from mathsy
+beginchar(oct"052",9u#,v_center(x_height#));
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+ecchar "Fraction"; % from punct (cm)" Virgule (slash)"
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+ecchar "Left angle bracket";
+beginchar(oct"074",7u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; x1=x3; lft x2=hround 2u-1-eps;
+top y1=h+eps; .5[y1,y3]=y2=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar "Minus sign";
+beginarithchar("="); pickup extra_rule.nib;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+ecchar "Right angle bracket";
+beginchar(oct"076",7u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt(w-x1)=hround(w-u)+eps; x1=x3; lft(w-x2)=hround 2u-1-eps;
+top y1=h+eps; .5[y1,y3]=y2=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar"Mho sign (turned Omega)"; % from lasy
+beginchar(oct"115",13u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#; %italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,-90); pos2(cap_curve,0);
+pos3(vair,0); pos4(cap_curve,180); pos5(vair,180);
+x1=.5w; bot y1r=0-o; lft x4r=hround u; y2=y4=1/3h; x2=w-x4;
+rt x5l=hround(1/3(w+.5u)+.5hair); top y3=top y5=h; x3=w-x5;
+filldraw stroke z3e{down}...{down}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{up}...{up}z5e; % bowl
+numeric arm_thickness; path p; p=z3{down}...{down}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,90); pos7(fudged.hair,0);
+top y6r=h; x6=x3; rt x7r=hround (w-.8u); y7=good.y(y6l-.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w+h,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,1.2beak_jut); % right arm and beak
+pos8(arm_thickness,90); pos9(fudged.hair,180);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,-1.2beak_jut); % left arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar"Big circle for copyright, etc";
+beginchar("O",20u#,body_height#,max(paren_depth#,desc_depth#)); autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Ohm sign (ISO 6937)"; % from greeku (cmfonts)
+beginchar(oct"127",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar"Musical note (one eigth note)"; % jk
+beginchar("n",11u#,asc_height#,0);
+pickup rule.nib;
+x1=3/5w; x2=x1; top y1=h; bot y2=.5bar_height;
+lft x3=u; x5= x2; x4=x6=.5[x3,x5];
+y3=y5=vround(.5bar_height); y4=y6-bar_height=-oo;
+x7=x1; rt x9=w-u; x8=.5[x7,x9];
+y7=y1; bot y9=vround(.5bar_height); y8=.5[y7,y9];
+draw z1--z2; % stem
+filldraw z3{down}...z4{right}...z5{up}...z6{left}...cycle; % body
+draw z7{down}...z8...{down}z9; % flag
+endchar;
+
+ecchar "Left semantic bracket"; % [[ from stmaryrd
+beginchar(oct"133",7.25u#,body_height#,paren_depth#);
+adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5rule_thickness)-1-eps;
+filldraw stroke z1e--z2e; % left stem
+pos7(rule_thickness,0); pos8(rule_thickness,0);
+top y7=h; bot y8=-d; lft x7l=lft x8l=hround(4.75u-.5rule_thickness)-1-eps;
+filldraw stroke z7e--z8e; % right stem
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+pos5(rule_thickness,90); pos6(rule_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+ecchar "Right semantic bracket"; % ]] from stmaryrd
+beginchar(oct"135",7.25u#,body_height#,paren_depth#);
+adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5rule_thickness)+1+eps;
+filldraw stroke z1e--z2e; % left stem
+pos7(rule_thickness,0); pos8(rule_thickness,0);
+top y7=h; bot y8=-d; rt x7r=rt x8r=hround(w-4.75u+.5rule_thickness)+1+eps;
+filldraw stroke z7e--z8e; % right stem
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+pos5(rule_thickness,90); pos6(rule_thickness,90);
+x3=x5=x1l; lft x4=lft x6=ceiling(.4u)-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Upward arrow"; % from sym
+beginchar(oct"136",9u#,asc_height#,asc_depth#);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0-if monospace:.24 else:.36 fi asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+%numeric t; path p; p=z4l{z9-z4}..z6r;
+numeric t; path p; p=z4l{z9-z4}..z6l;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar "Downward arrow"; % from sym
+beginchar(oct"137",9u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0+if monospace:.24 else:.36 fi asc_height+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+%t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+t=xpart(p intersectiontimes((x2l,-d)--(x2l,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar"Backwards tick mark"; % from accent (cmfonts, grave accent)
+beginchar(oct"140",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+ecchar "Low lying tilde (squiggle)";
+beginchar(oct"176",11u#,min(bar_height#,2/7x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta;
+ theta=angle(1/8(7u if monospace: /expansion_factor fi-vair),1/4acc_height);
+% theta=angle(1/6(6u-vair),1/4h);
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=0;
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=0;
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff not monospace:
+ecchar "Double hyphen-hyphenchar"; % jk
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"177",3u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+pos3(thickness,90); pos4(thickness,90);
+y1=y2; y3=y4;
+top y1=vround .5h+.5thickness+.5spread;
+top y3=vround .5h+.5thickness-.5spread;
+rt x2=hround(2w-u)+eps;
+lft x1=hround .2u-eps;
+x3=x1; x4=x2;
+filldraw stroke z1e--z2e; % upper bar
+filldraw stroke z3e--z4e; % lower bar
+penlabels(1,2,3,4); endchar;
+
+iff monospace:
+ecchar "Double hyphen-hyphenchar"; % jk
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"177",6u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+pos3(thickness,90); pos4(thickness,90);
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+x3=x1; x4=x2;
+filldraw stroke z1e--z2e; % upper bar
+filldraw stroke z3e--z4e; % lower bar
+penlabels(1,2,3,4); endchar;
+
+ecchar"Breve";
+beginchar(oct"200",11u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+ecchar "Hachek (Caron)";
+beginchar(oct"201",11u#,min(asc_height#,2x_height#),0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+ecchar"Double tick mark (inch sign)"; % from accent (hungarian long umlaut)
+beginchar(oct"202",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+ecchar"Double backwards tick mark"; % jk
+beginchar(oct"203",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x1-.5stem=hround 1.5u; x2=3.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w-u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "Dagger mark"; % from mathsy
+beginchar(oct"204",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos2(thin_join,0); pos3(stem,0); pos4(hair,0);
+pos5(stem,90); pos2'(thin_join,90); pos6(stem,90); z2'=z2;
+x1=x2=x3=x4; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x5-.5stem=hround u; x6=w-x5;
+y1+.5stem=h+oo; y2=y5=y6; y3=.57y2; bot y4=-d-o;
+y5+.5stem=floor(x_height+.5stem);
+filldraw circ_stroke z1e{down}..z2e{down}..z3e{down}..z4e; % stem
+filldraw circ_stroke z5e{right}..{right}z2'e; % left bulb
+filldraw circ_stroke z6e{left}..{left}z2'e; % right bulb
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Double dagger mark"; % from mathsy
+beginchar(oct"205",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos2(thin_join,0); pos3(stem,0);
+pos4(stem,90); pos2'(thin_join,90); pos5(stem,90); z2'=z2;
+x1=x2=x3; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x4-.5stem=hround u; x5=w-x4;
+y1+.5stem=h+oo; y2=y4=y5=.5[y1,y3]; y3-.5stem=ceiling(.5[-d,h]);
+filldraw circ_stroke z1e{down}..{down}z2e; % top stem
+filldraw circ_stroke z3e{up}..{up}z2e; % upper middle stem
+filldraw circ_stroke z4e{right}..{right}z2'e; % top left bulb
+filldraw circ_stroke z5e{left}..{left}z2'e; % top right bulb
+pos6(stem,0); pos7(thin_join,0); pos8(stem,0);
+pos9(stem,90); pos7'(thin_join,90); pos0(stem,90); z7'=z7;
+x6=x7=x8=x1; x9=x4; x0=x5;
+y6=y3-stem-1; y7=y9=y0=.5[y6,y8]; y8-.5stem=-d-oo;
+filldraw circ_stroke z6e{down}..{down}z7e; % lower middle stem
+filldraw circ_stroke z8e{up}..{up}z7e; % bottom stem
+filldraw circ_stroke z9e{right}..{right}z7'e; % bottom left bulb
+filldraw circ_stroke z0e{left}..{left}z7'e; % bottom right bulb
+penlabels(1,2,3,4,5,6,7,8,9,0); endchar;
+
+ecchar "Double vertical line (norm or cardinality)"; % from mathsy
+% Change (jk): Made the two lines as close as in \P
+beginchar(oct"206",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2; top y1=h; .5[y1,y2]=math_axis;
+x3=x4=w-x1; y3=y1; y4=y2;
+x3-x1=ceiling(rule_thickness+1.25u);
+draw z1--z2; draw z3--z4; % stems
+labels(1,2,3,4); endchar;
+
+ecchar "Per mill sign"; % by Emma Pease
+beginchar(oct"207",15u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5(w-6u)-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+%
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-7u); lft x6r=hround(.5(w-6u)+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+%
+pos13(vair,90); pos14(left_curve,180); pos15(vair,270);
+pos16(right_curve,360);
+bot y15r=-d; rt x16r=hround(w-u); lft x14r=hround(.5(w-6u)+1.5u+6u);
+top y13r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x13=x15=.5[x14,x16]; y14=y16=.5[y13,y15];
+filldraw stroke pulled_super_arc.e(13,14)(superpull)
+ & pulled_super_arc.e(14,15)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(15,16) & super_arc.e(16,13); % right half of lower bowl
+%
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-6u-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+ecchar "Bullet"; % from mathsy
+beginchar(oct"210",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h; y2=math_axis; circle_points;
+filldraw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle; % circle and interior
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Centigrade sign";
+if serifs: beginchar(oct"211",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(4u#,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(oct"211",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(4u#,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+penlabels(1,1',2,3,4,5,6);
+clearxy;
+pickup rule.nib; autorounded;
+lft x6=-4u; rt x2=0; top y8=h; y8-y2=x2-x8;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+endchar;
+
+ecchar "Oldstyle dollar sign"; % based on romanp (cm)
+beginchar(oct"212",11u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0); pos13(bar,0); pos14(bar,0);
+x11=x12; x13=x14=w-x11; x13-x11=ceiling(rule_thickness+1.25u);
+top y12=top y14=h; bot y11=bot y13=-d;
+filldraw stroke z12e--z11e; % left vertical crossbar
+filldraw stroke z14e--z13e; %right vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+ecchar "Oldstyle cent sign"; % jk, based on cm `c'
+beginchar(oct"213",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(0,0);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+pickup crisp.nib;
+x7=x3; x6=w-x7; y6=h; y7=-d;
+numeric theta; theta=angle(z7-z6)-90;
+pos6(vair,theta); pos7(vair,theta);
+filldraw stroke z6e--z7e; % diagonal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff variant_g: % I use this as marker for italic fonts
+ecchar "Italic florin sign (italic letter f)"; % from itall (cm)
+beginchar(oct"214",max(1.5u#,stem#)+max(3.5u#,2flare#),
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+
+
+iff not variant_g:
+ecchar "Florin sign (The letter f)"; % from romanl (cm)
+beginchar(oct"214",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+ecchar"Colon sign or Cedi sign"; % Panamese or Ghanese currency
+if serifs: beginchar(oct"215",13u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ numeric hh; hh=cap_height;
+ top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(hh-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+else: beginchar(oct"215",11.5u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ numeric hh; hh=cap_height;
+ top y1r=vround .95hh+o; top y2r=hh+o; y3=.5hh;
+ bot y4r=-o; bot y5r=vround .08hh-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+fi
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6,11,12); endchar;
+
+ecchar"Won sign"; % Korean currency
+beginchar(oct"216",18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6);
+prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)
+ --.5[z5l,z6l]--.5[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+pickup extra_rule.nib;
+x9=x11=x1l; x10=x12=x8r; y9=y10;
+top y9=bar_height; y11=y12; draw z9--z10;
+y11-y9=spread; draw z11--z12; % crossing bars
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,23,45,67); endchar;
+
+ecchar"Naira sign"; % Nigerian currency
+beginchar(oct"217",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+
+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#+.25u#,cap_serif_fit#+.25u#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+pickup extra_rule.nib;
+x8=x10=0; x9=x11=w; y10=y11;
+top y8=bar_height; y8=y9; draw z8--z9;
+y10-y8=spread; draw z10--z11; % crossing bars
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,1',2,3,4,4',5,6,7,8,9,10,11); endchar;
+
+ecchar"Guarani sign"; % Currency of Paraguay
+if serifs: beginchar(oct"220",14u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ numeric hh; hh=cap_height;
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar(oct"220",14u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric hh; hh=cap_height;
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93hh+o; top y2r=hh+o; y3=.5hh;
+ bot y4r=-o; bot y5r=vround .07hh-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9,11,12); endchar;
+
+ecchar"Peso sign";
+beginchar(oct"221",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#+.25u#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+pickup extra_rule.nib;
+x8=0; x9=.5[x1r,x5r]; top y8=bar_height; y8=y9; draw z8--z9;
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); labels(8,9);
+endchar;
+
+ecchar "Lira sign"; %
+compute_spread(.35x_height#,.45x_height#);
+beginchar(oct"222",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9l=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pickup extra_rule.nib;
+x10=3u; x11=w-4.5u; x12=3u; x13=w-4.5u;
+top y12=bar_height;
+y11=y10; y13=y12; y10-y12=spread;
+draw z10--z11; % upper bar
+draw z12--z13; % lower bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar"Recipe sign";
+beginchar(oct"223",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+x1:=x8;
+put_cross(.5cap_stem+if serifs: .9max(limit_dist,cap_jut) else: .8u fi,
+ .5cap_stem+if serifs: 3u else: 4u fi);
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff not variant_g: % not italic
+ecchar"Interrobang";
+beginchar(oct"224",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; % dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=hround .9h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff not variant_g: % not italic
+ecchar"Gnaborretni";
+beginchar(oct"225",8.5u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); top y8r=h; z7=z8; % dot(7,8); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(top_width,180); pos6(top_width,180);
+x2=x4=x5=x6=x7; lft x3r=hround u; top y6=.25[bot y8l,h-x_height]-1;
+bot y2r=hround .1asc_height-d-oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],-70);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,bot y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff variant_g: % italic
+ecchar"Interrobang";
+beginchar(oct"224",9u#,asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(0,0);
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); bot y11l=0; z10=z11; % dot(10,11); % dot
+pickup fine.nib; pos1(flare,180); pos2(hair,180); pos3(vair,90);
+lft x1r=hround u; x3=.5w;
+y1-.5flare=x_height; top y3r=hround .9h+o; bulb(3,2,1); % bulb
+pos8(vair,-90); x8=.5w; bot y8r=.25[top y11r,x_height]+1;
+numeric theta; theta=90+angle(10u,y3-y8); slope:=(y3-y8)/10u;
+pos3'(vair,-90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+rt x4l=hround(w-1.5u); lft x7r=hround 1/3w;
+x4l-x4r=x7l-x7r=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,0); rt x9r=hround(2/3w+.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{down}
+ ..z5e---z6e..z7e{down} & super_arc.e(7,8)...{up}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff variant_g: % italic
+ecchar"Gnaborretni";
+beginchar(oct"225",9u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); top y11r=h; z10=z11; % dot(10,11); % dot
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,-90);
+rt x1r=hround(w-u); x3=.5w; y1+.5flare=asc_height-x_height-d;
+bot y3r=hround .1asc_height-d-o; bulb(3,2,1); % bulb
+pos8(vair,90); x8=.5w; top y8r=.25[bot y11l,y1+.5flare]-1;
+numeric theta; theta=angle(10u,y8-y3)-90; slope:=(y8-y3)/10u;
+pos3'(vair,90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+lft x4l=hround 1.5u; rt x7r=hround 2/3w;
+x4r-x4l=x7r-x7l=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,180); lft x9r=hround(1/3w-.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{up}
+ ..z5e---z6e..z7e{up} & super_arc.e(7,8)...{down}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff not variant_g: % not italic
+ecchar"Dong sign"; % Vietnamese currency
+beginchar(oct"226",10u#+serif_fit#,body_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+numeric hh; hh=asc_height;
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=hh;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo if monospace: -hair fi;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height if monospace: -.5hair fi;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+%
+ pos8(bar,90); pos9(bar,90);
+ x8=.5[x4,x5];
+ if serifs: x9=x2r+jut; else: x9=w; fi
+ if serifs: y8=y9=.5[y.a2-.5slab,y4+.5vair];
+ else: y8=y9=.5[x_height,asc_height-serif_drop]; fi
+ filldraw stroke z8e--z9e;
+currentpicture:=currentpicture shifted (0,body_height-asc_height);
+pickup rule.nib;
+x10=x5; x11=x9; top y10=0; y10=y11;
+draw z10--z11;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff variant_g: %italic
+ecchar"Italic Dong sign"; % Vietnamese currency
+beginchar(oct"226",9u#,body_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the bar
+ pos8(bar,90); pos9(bar,90);
+ x8=x1; % .5[x1,x4];
+ x9=x6;
+ y8=y9=.5[y.a2-.5slab,y1+.5vair];
+ filldraw stroke z8e--z9e;
+currentpicture:=currentpicture shifted (0,body_height-asc_height);
+pickup rule.nib;
+x10=x2; x11=x9; top y10=0; y10=y11;
+draw z10--z11;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar"Trademark"; % jk, design based on logo font
+beginchar(oct"227",12u#,body_height#,0);
+italcorr .7body_height#;
+adjust_fit(0,0);
+numeric ww, hh; ww=.5w; hh=vround .5body_height;
+pickup pencircle xscaled hair yscaled vair;
+lft x1=-eps; x2=ww-x1; x3=x4=.5ww;
+y1=y2=y3; top y1=hh; bot y4=-o;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4);
+clearxy;
+x1=x2=hround(ww+u); x4=x5=hround(w-u); x3=hround .5[x1,x4];
+y1=y5; y2=y4; bot y1=-o;
+top y2=hh+o; y3=vround (y1+.5bar_height);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+currentpicture:=currentpicture shifted (0,hh);
+endchar;
+
+ecchar"Per ten thousand sign"; % Yannis, Unicode Computer Modern
+beginchar(oct"230",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,
+ 2*(.5*(9u#+max(6u#,2fudge*(hair#+stem#)))
+ -2.5u#+5/6[fudged.hair#,fudged.stem#]));
+pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+hihi:=(.5*(9u#+max(6u#,2fudge*(hair#+stem#)))
+ -2.5u#+5/6[fudged.hair#,fudged.stem#])
+if monospace: *expansion_factor fi *hppp;
+picture petit_zero; petit_zero := currentpicture;
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+pickup fine.nib;
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+addto currentpicture also (petit_zero shifted (hihi,0));
+addto currentpicture also (petit_zero shifted (2hihi,0));
+picture petit_zero; % Release resources allocated to the picture variable
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar "Alternate pilcrow sign"; % one vertical bar only
+beginchar(oct"231",8.5u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+top y1=h; bot y6=-d-eps; y4=y9=y1;
+y3=y5=good.y .5[y1,y6];
+lft x2=hround u; y2=.5[y1,y3]; rt x9=hround(w-.5u); x4=x5=x6=good.x(x9-1.5u);
+x1=x3=min(.5w,x4);
+filldraw z4..z1{left}...z2{down}...{right}z5--cycle; % filled bowl
+draw z9--z4--z6; % left stem and upper serif
+if serifs:
+ x11=x9; x10-x6=x4-x9;
+ bot y10=-d-eps; y10=y11;
+ draw z10--z11; % lower serif
+fi
+labels(1,2,3,4,5,6,9,10,11); endchar;
+
+ecchar"Baht sign"; % currency of Thailand
+beginchar(oct"232",12.5u#,body_height#,body_height#-asc_height#);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric hh; hh=cap_height;
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52hh;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pickup crisp.nib; pos13(bar,0); pos14(bar,0);
+rt x13r=rt x14r=rt x4; top y13=h; bot y14=-d;
+filldraw stroke z13e--z14e; % vertical crossbar
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar"Numero sign"; % from wncyr
+beginchar(oct"233",15u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant
+ -cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#
+ if serifs: +.5(flare#+(cap_stem#-stem#)) fi ,cap_serif_fit#);
+w:=if serifs: 10u else: 11u fi;
+numeric thin_stem;
+thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib;
+pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+top y1=h;
+if serifs: top y3=.79h; bot y2=.21h;
+else: top y3=h; bot y2=0; fi
+bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+x91=x2-.75flare; bot y91r=-oo; x92=w-x91;
+top y92l=h+oo;
+pos91(thin_stem,-90); pos92(thin_stem,-90);
+if serifs:
+ filldraw stroke z1e--z2e & pulled_arc.e(2,91); % left stem
+ filldraw stroke z4e--z3e & pulled_arc.e(3,92); % right stem
+else:
+ filldraw stroke z1e--z2e; filldraw stroke z4e--z3e; % stems
+fi
+if hefty:
+ penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut;
+ lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l;
+ z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else:
+ penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e--z6e; % diagonal
+fi
+if serifs:
+ if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+fi
+pickup tiny.nib;
+if serifs:
+ x93=x2-1.5flare;
+ y93=.75flare;
+ pos95(flare+(cap_stem-stem),-180);
+ x94=x3+1.5flare;
+ y94=h-y93;
+ pos96(flare+(cap_stem-stem),0);
+ pos92'(thin_stem,90);
+ z92'=z92;
+ pos93(cap_hair,-180);
+ pos94(cap_hair,0);
+ bulb(91,93,95); bulb(92',94,96);
+fi
+w:=15u;
+penpos71(vair,90); penpos73(vair',-90); penpos72(.8curve,180);
+penpos74(.8curve,0); x72r=hround max(.5u,1.25u-.4curve)+9.5u;
+x74r=w-x72r+9u; x71=x73=12u; y71r=h-3u+vround 1.5oo; y73r=x_height-3u-oo;
+y72=y74=.5[h,x_height]-3u-vair_corr; y72l:=y74l:=.52[h,x_height]-3u;
+penstroke pulled_arc.e(71,72) & pulled_arc.e(72,73) & pulled_arc.e(73,74) &
+pulled_arc.e(74,71) & cycle;
+x81=max(lft x72r,x73-(lft w-x73));
+x82=min(rt x74r,lft w); y81=y82=.8x_height-3u;
+pos81(bar,90); pos82(bar,90);
+filldraw stroke z81e--z82e;
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+ecchar "Abzueglich sign"; % jk
+beginchar(oct"234",9u#,body_height#,0);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-eps;
+draw z1--z2; % diagonal
+x3=w-x5=good.x (lft x1 - .5dot_size);
+bot y4 = good.y .5dot_size;
+top y6 = good.y h-.5dot_size;
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar"Aestimated sign (large e)"; % jk
+beginchar(oct"235",(11.25u#+max(.75u#,.5cap_curve#)),cap_height#,0);
+italcorr .76cap_height#*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+3stem_corr=cap_curve if not serifs: -1.5stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib;
+pos1(right_curve,0); pos2(vair,90); pos3(left_curve,180);
+y1=good.y .52h; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "Open bullet"; % derived from Circle operator
+beginchar(oct"236",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h; y2=math_axis;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Servicemark"; % jk, design based on logo font
+beginchar(oct"237",12u#,body_height#,0);
+italcorr .7body_height#;
+adjust_fit(0,0);
+numeric ww, hh; ww=.5w; hh=vround .5body_height;
+pickup pencircle xscaled hair yscaled vair;
+x3=x8= u;
+x2=x4=.382[x3,ww-x3];
+x1=ww-x3;
+x5=x7=.618[x3,ww-x3];
+x6=.5[ww-x3,lft ww];
+top y1=hh; y4=good.y .55hh; bot y8=0;
+y1=y2; y3=.5[y2,y4]; y4=y5; y6=.5[y5,y7]; y7=y8;
+draw z1--z2; draw z4--z5; draw z7--z8;
+super_crescent(2,3,4);
+super_crescent(5,6,7);
+labels(1,2,3,4,5,6,7,8);
+clearxy;
+x1=x2=hround(ww+u); x4=x5=hround(w-u); x3=hround .5[x1,x4];
+y1=y5; y2=y4; bot y1=-o;
+top y2=hh+o; y3=vround (y1+.5bar_height);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+currentpicture:=currentpicture shifted (0,hh);
+endchar;
+
+ecchar "Left square bracket with quill"; % from Haralambous/Plaice
+beginchar(oct"240",9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(if monospace: -1.5u#,u# else: -2.5u#,0 fi);
+pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7',11,11',17,17':
+ pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4;
+y1-y1'=y4-y4'=y7'-y7=y11-y11'=y17-y17'=vair-fine;
+x11=x11'=x17=x17'; x11-x2=x2-x1; y11=y1; y17=y7;
+filldraw z11'l{left}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{right}z17l
+ --z17r--z17'r{left}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{right}z11r--z11'r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Right square bracket with quill"; % from Haralambous/Plaice
+beginchar(oct"241",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(if monospace: u#,-1.5u# else: 0,-2.5u# fi);
+pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7',11,11',17,17':
+ pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+x11=x11'; x17=x17';
+y11=y1; y17=y7;
+x1-x2=x2-x11; x17=x11; y11-y11'=y17'-y17=vair-fine;
+filldraw z11'r{right}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{left}z17'r
+--z17'l--z17l{right}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{left}z11l--z11'l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Cent sign"; % from wasychr (wasy)
+% Modified height and depth (jk)
+% Modified: Bar instead of broken bar
+beginchar(oct"242",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(0,0);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+pickup crisp.nib;
+x6=x7=x8=x9=x2; y7=y2; y8=y4; bot y9=-d; y6-y7 = y8-y9;
+pos6(bar,0); pos7(bar,0);
+pos8(bar,0); pos9(bar,0);
+filldraw stroke z6e--z9e; % bar
+%filldraw stroke z6e--z7e; % upper bar
+%filldraw stroke z8e--z9e; % lower bar
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Sterling sign"; % from italp (cm)
+% already contains bug fix found by Yannis Haralambous
+beginchar(oct"243",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9l=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Currency sign"; % from rsym (wasy)
+beginchar(oct"244",1.13 min(asc_height#,9/7x_height#)+2u#,
+ min(asc_height#,9/7x_height#),0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo;
+circle_points;
+z9 = 1.30[z5,z1];
+z10 = 1.30[z7,z3];
+z11 = 1.30[z1,z5];
+z12 = 1.30[z3,z7];
+draw_circle;
+draw z1--z9;
+draw z3--z10;
+draw z5--z11;
+draw z7--z12;
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+ecchar "Yen symbol"; % from asymbols (msam)
+% Change (jk): Use correct pen for horizontal bars
+compute_spread(.45x_height#, .55x_height#);
+beginchar(oct"245",13u#,cap_height#,0); %% adapted from "Y"
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric
+left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr; right_stem=min(cap_hair if
+hefty:-2stem_corr fi,left_stem); outer_jut=.75cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=.4h; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l]; if
+y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+--diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals & stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut:
+inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+pickup extra_rule.nib;
+x7=x9=x1l; x8=x10=x4r; y9=y10;
+top y7=bar_height; y7=y8; draw z7--z8;
+y9-y7=spread; draw z9--z10; % crossing bars
+penlabels(0,1,2,3,4,5,6,1',2',3',4',5',6',7,8,9,10); endchar;
+
+ecchar "Broken vertical bar"; % jk
+beginchar(oct"246",3u#,body_height#,paren_depth#);
+italcorr body_height#*slant - u#;
+adjust_fit(0,0); pickup rule.nib;
+top y1=h; .5[y1,y4]=math_axis;
+compute_spread(.45x_height#,.55x_height#); y2-y3=spread;
+.5[y2,y3]=math_axis;
+x1=x2=x3=x4=good.x .5w;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+ecchar "Section sign"; % from mathsy, renovated (jk)
+beginchar(oct"247",6.5u#+max(1.5u#,stem#),asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+numeric sstem; sstem=hround .5[s_slab,ess']-fine;
+if sstem < fine.breadth: sstem:=fine.breadth; fi
+pos2(vair,90); pos3(sstem,180);
+pos4(ess',270); pos4'(vair,270);
+pos5'(sstem,0); pos5(sstem,180);
+pos6(ess',90); pos6'(vair,90); pos7(sstem,0);
+pos8(vair,-90);
+top y2r=h+oo; bot y8r=-d-oo;
+y3=.52[y4,y2]; y5=.52[y4,y6]; y7=.52[y6,y8]; y5'=.52[y6,y4];
+y2-y4=y4-y6=y6-y8;
+bot z4'=bot z4; top z6'=top z6;
+lft x3r=hround 1.25u;
+x2=x4=x6=x8=.5w; x5=x7=w-x3; x5'=x3;
+if serifs:
+ pos0(stem,0); pos1(hair,0); pos9(hair,-180); pos10(stem,-180);
+ rt x1r=hround(w-1.5u); x9=w-x1; y2-y1=y9-y8=(y2-y8)/8;
+ bulb(2,1,0); bulb(8,9,10); % bulbs
+else:
+ pos1(.6[slab,flare],-100); pos9(flare,-100); pos2'(vair,-90);
+ rt x1l=hround(w-1.3u); lft x9r=hround .8u; z2'=z2;
+ top y1l=vround .92asc_height+oo; bot y9r=vround .1asc_height-d-oo;
+ filldraw stroke term.e(2',1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(8,9,left,.9,4); % lower arc and terminal
+fi
+filldraw stroke z2e{left}...z3e{down}...z4e{3(x5-x3),y5-y3}
+ ...z5e{down}...{left}z6'e; % upper stroke
+filldraw stroke z4'e{left}...z5'e{down}...z6e{3(x7-x5'),y7-y5'}
+ ...z7e{down}...{left}z8e; % upper stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Umlaut (double dot) accent"; % from accent (cm)
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"250",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+ecchar"Copyright";
+beginchar(oct"251",20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+5u);
+if serifs:
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(rr-u); lft x3r=hround(ll+u); x2=x4=.55[x3,x1];
+ top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,.7x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(hh-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(rr-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=ll+hround max(u,2u-.5cap_curve); rt x5r=hround(rr-.9u);
+ top y1r=vround .95hh+o; top y2r=hh+o; y3=.5hh;
+ bot y4r=-o; bot y5r=vround .08hh-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+penlabels(1,1',2,3,4,5,6); endchar;
+
+ecchar"Copyleft";
+beginchar(oct"253",20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-5u);
+rr=hround(.5w+6u);
+if serifs:
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,-90);
+ pos3(cap_curve,-180); pos4(cap_band,-270); pos5(hair,-360);
+ lft x1l=lft x5l=hround(ll+u); rt x3l=hround(rr-u); x2=x4=.55[x3,x1];
+ top y2l=hh+o; bot y4l=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,.7x_height-.5vair),bot y2r-eps);
+ y5=max(good.y .95(hh-y1),y4r+eps);
+ (x2r',y2r)=whatever[z2l,z1r]; x2r:=min(x2r',x2r+.5u);
+ (x4r',y4r)=whatever[z4l,z5r]; x4r:=min(x4r',x4r+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6l=x1l; top y6=hh+o;
+ x1l-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6r--z1'));
+ filldraw z1l--z6l--z6r--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pickup fine.nib; pos1(1.2flare,-80); pos2(slab,-90);
+ pos3(cap_curve,-180); pos4(slab,-270); pos5(flare,-275);
+ lft x1l=hround(ll+1.1u); x2=x4=.5w-1.25u;
+ rt x3l=rr-hround max(u,2u-.5cap_curve); lft x5l=hround(ll+.9u);
+ top y1l=vround .95hh+o; top y2l=hh+o; y3=.5hh;
+ bot y4l=-o; bot y5l=vround .08hh-o; y5r:=good.y y5r; x5r:=good.x x5r;
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4); fi % arc and terminals
+penlabels(1,1',2,3,4,5,6); endchar;
+
+ecchar "Logical not sign"; % from sym
+beginchar(oct"254",12u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x3=w-x1;
+y1=y2=good.y .5[bar_height,h]; y2-y3=1.2(h-bar_height);
+draw z1--z2--z3; % bar and stem
+labels(1,2,3); endchar;
+
+ecchar"Circled P"; % Sound recording copyright sign % jk
+beginchar(oct"255",20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+6u);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=ll+hround max(2u,3u-.5cap_stem'); top y1=hh; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5hh); x4=x6=.5w+.75u; x5r=hround(rr-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+fi
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar"Registered"; % jk
+beginchar(oct"256",20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+6u);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=ll+hround max(2u,3u-.5cap_stem'); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5hh+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(rr-2.25u);
+else: x4=.5w+.5u; x5r=hround(rr-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(rr-.25u); y10=1/3[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(rr-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar"High bar (Macron)"; % jk
+beginchar(oct"257",14u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; top y1=top y2=h;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+ecchar "Plus-or-minus sign"; % from sym
+beginarithchar(oct"261"); pickup rule.nib;
+numeric shiftup; shiftup=vround 1.5u;
+x1=x2=.5w; lft x3=lft x5=hround u-eps; x4=x6=w-x3;
+.5[y1,y2]=y3=y4=math_axis+shiftup; top y1=h+shiftup; y5=y6=y2;
+draw z1--z2; % stem
+draw z3--z4; % plus bar
+draw z5--z6; % minus bar
+labels(1,2,3,4,5,6); endchar;
+
+ecchar"Degree sign"; % Yannis, Unicode Computer Modern
+beginchar(oct"260",4u#,cap_height#,0);
+adjust_fit(if monospace: 1.5u#,1.5u# else: u#,u# fi);
+pickup rule.nib; autorounded;
+if .5w <> good.x .5w: change_width; fi
+lft x6=0; x2=w-x6; top y8=h; y8-y2=x2-x8;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Tick mark"; % from accent (cmfonts, acute accent)
+beginchar(oct"264",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff not variant_g:
+ecchar"Micro sign"; % jk, based on cm `u'
+beginchar(oct"265",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos7(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2=x7; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0);
+x0=x3; x0'=x4; y0=y0'; bot y7=-d;
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z7e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); % lower right serif
+ pickup crisp.nib;
+ dish_serif(7,1,d,1/3,jut,e,1/3,jut); fi % lower left serif
+penlabels(1,2,3,4,5,7); labels(6); endchar;
+
+iff variant_g: % This triggers italics
+ecchar "Micro sign"; % from greekl (cm)
+beginchar(oct"265",9u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem);
+y1+.5stem=h+oo; y2-.5stem=-d-o;
+filldraw z1r---z2r..z2l---z1l..cycle; % left stem
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Paragraph mark"; % from mathsy
+beginchar(oct"266",11u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+top y1=h; bot y6=-d-eps; y4=y7=y9=y1;
+y8=y6; y3=y5=good.y .5[y1,y6];
+x7-x4=ceiling(rule_thickness+1.25u);
+lft x2=hround u; y2=.5[y1,y3]; x4=x5=x6; rt x9=hround(w-.5u);
+x7=x8=good.x(x9-1.5u); x1=x3=min(.5w,x4);
+filldraw z4..z1{left}...z2{down}...{right}z5--cycle; % filled bowl
+draw z9--z4--z6; % left stem and upper serif
+draw z7--z8; % right stem
+if serifs:
+ x11=x9; x10-x8=x4-x9;
+ bot y10=-d-eps; y10=y11;
+ draw z10--z11; % lower serif
+fi
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Centered dot"; % reengineered for catalan l.l
+beginchar(oct"267",(11u#-width_adj#-2max(2u#+.5cap_stem#,3u#)),
+ x_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+pos1(udot_diam,0); pos2(udot_diam,90);
+lft x1l=hround(.5w-.5udot_diam); y1+.5udot_diam=vround(bar_height+.5udot_diam);
+z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+ecchar "Reference mark"; % From Haralambous/Plaice
+beginchar(oct"270",1/3[x_height#,asc_height#],
+ 1/3[x_height#,asc_height#],0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(if monospace:
+ -1/3[x_height#,asc_height#] + mono_charwd#,
+ -1/3[x_height#,asc_height#] + mono_charwd#
+ else: u#,u# fi);
+pickup rule.nib;
+Dot_size:=min(dot_size,max(1,.25h-rule_thickness));
+lft x1=0; top y1=h;
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=.5h; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+top z1'=.5[top z1,top z3]-(0,.5Dot_size);
+rt z3'=.5[rt z3,rt z2]-(.5Dot_size,0);
+bot z2'=.5[bot z2,bot z4]+(0,.5Dot_size);
+lft z4'=.5[lft z4,lft z1]+(.5Dot_size,0);
+z1'=z1''; z2'=z2''; z3'=z3''; z4'=z4'';
+penpos1'(Dot_size,0);
+penpos1''(Dot_size,90); dot(1',1'');
+penpos2'(Dot_size,0);
+penpos2''(Dot_size,90); dot(2',2'');
+penpos3'(Dot_size,0);
+penpos3''(Dot_size,90); dot(3',3'');
+penpos4'(Dot_size,0);
+penpos4''(Dot_size,90); dot(4',4'');
+labels(1,2,3,4,1',2',3',4',1'',2'',3'',4'',1'r,1'l,1''r,1''l);
+endchar;
+
+ecchar"Root sign"; % textsurd, from wnri
+beginchar(oct"273",8.5u#,body_height#,paren_depth#-rule_thickness#);
+italcorr body_height#*slant;
+adjust_fit(0,-letter_fit#);
+pickup rule.nib;
+ w':=7u;
+ x1=good.x (1/9w'+2.5u); x2=good.x (.65w'+2.5u);
+ bot y1=-.5d; bot y2=asc_height;
+ draw z1--z2; % diagonal
+ pickup crisp.nib;
+ pos3(if hefty: else: .7 fi max(curve,rule_thickness),0);
+ x3l=1.5[x2,x1]; y3=.5[y1,y2];
+ pos4(rule_thickness,0); x4=x1; bot y4=-.5d;
+ pos5(vair,-45); x5l=good.x(x3l-u); z5l=whatever[z3r,z2];
+ z6=z5r+whatever*(z2-z3r)=whatever[z3l,z4l];
+ z7=whatever[z1,z2]=z3r+whatever*(z4l-z3l);
+ filldraw z5r--z6--z4l--z4--z7--z3r--z5l--cycle; % left diagonal and serif
+x8=x2+2u; y8=y2;
+pickup rule.nib;
+draw z2--z8;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+ecchar "Euro currency sign"; % jk
+beginchar(oct"277",14u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(0,0);
+pickup fine.nib;
+pos2(slab,90); pos1(hair,0);
+top y2r=h; x2=hround 9u; rt x1r=hround(w-u); y1=good.y(y2l-beak)-eps;
+arm(2,1,a,beak_darkness,beak_jut); % upper arm and beak
+pos3(cap_curve,180); pos4(slab,270); pos5(hair,0);
+bot y4r=0; x4=x2; rt x5r=hround(w-u); y5=good.y(y4l+7/6beak)+eps;
+arm(4,5,b,beak_darkness,1.5beak_jut); % lower arm and beak
+lft x3r =hround 2.5u; y3=.52h;
+filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % arc
+pos6(slab,-90); pos7(hair,0); pos8(slab,90); pos9(hair,0);
+bot y6r=top y8r+if hefty: 1.333 else: 2 fi vair
+ =vround(y3+if hefty: .667 fi vair+eps);
+y7=good.y(y6l+beak)+eps; y9=good.y(y8l-beak)-eps;
+x6=x8=hround u; rt x7r=rt x9r=hround 10u;
+arm(6,7,c,beak_darkness,0); arm(8,9,d,beak_darkness,0); % middle arms
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Times operator"; % from mathsy
+beginarithchar(oct"326"); pickup rule.nib;
+x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+labels(1,2,3,4); endchar;
+
+ecchar "Elementary division operator"; % from mathsy
+beginarithchar(oct"366"); pickup rule.nib;
+numeric del; del=dot_size-currentbreadth;
+x3-.5del=good.x(.5w-.5del); center_on(x3);
+y3+.5del=good.y(math_axis+math_spread[.5x_height,.6x_height]+.5del);
+lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbx.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbx.mf
new file mode 100644
index 00000000000..db11aaba786
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbx.mf
@@ -0,0 +1,10 @@
+% African Computer Modern Bold Extended Roman
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCBX"; font_size design_size * pt#;
+
+univ_acc_breadth:=0.4; % zusatz parameter for the universal accent
+input c-cmbx; % compute cm bold extended parameters
+
+generate fcroman; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxi.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxi.mf
new file mode 100644
index 00000000000..b2884c7ac56
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxi.mf
@@ -0,0 +1,70 @@
+% African Computer Modern Bold Extended Text Italic
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCBXI"; font_size design_size * pt#;
+
+univ_acc_breadth:=.4; % zusatz parameter for the universal accent
+
+% This font is a modification of Computer Modern Bold Extended.
+
+input c-cmbx;
+
+u#:= % unit width
+ ((u#*360pt#) - (design_size * 1.8))/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 11))/360pt#;
+
+crisp#:= % diameter of serif corners
+ ((crisp#*360pt#) + (design_size * 13))/360pt#;
+
+hair#:= % lowercase hairline breadth
+ ((hair#*360pt#) + (design_size * 3))/360pt#;
+
+stem#:= % lowercase stem breadth
+ ((stem#*360pt#) - (design_size * 3))/360pt#;
+
+curve#:= % lowercase curve breadth
+ ((curve#*360pt#) - (design_size * 3))/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ ((ess#*360pt#) - (design_size * 3))/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ ((flare#*360pt#) - (design_size * 3))/360pt#;
+
+dot_size#:= % diameter of dots
+ ((dot_size#*360pt#) - (design_size * 3))/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ ((cap_hair#*360pt#) + (design_size * 3))/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ ((cap_stem#*360pt#) - (design_size * 2))/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ ((cap_curve#*360pt#) - (design_size * 3))/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ ((cap_ess#*360pt#) - (design_size * 3) - 0.001)/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ ((jut#*360pt#) + (design_size * 2))/360pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ ((beak_jut#*360pt#) - (design_size * 1) - 0.00032)/360pt#;
+
+o#:= % amount of overshoot for curves
+ ((o#*360pt#) + (design_size * 2))/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ ((apex_o#*360pt#) + (design_size * 3) + 0.00091)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+
+generate fcitalic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxsl.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxsl.mf
new file mode 100644
index 00000000000..a8e607114c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxsl.mf
@@ -0,0 +1,11 @@
+% African Computer Modern Bold Extended Roman Slanted
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCBXSL"; font_size design_size * pt#;
+
+univ_acc_breadth:=0.4; % zusatz parameter for the universal accent
+input c-cmbx; % compute cm bold extended parameters
+slant:=1/6; % change slant
+
+generate fcroman; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxu.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxu.mf
new file mode 100644
index 00000000000..037668da042
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcbxu.mf
@@ -0,0 +1,66 @@
+% African Computer Modern Bold Extended Unslanted Text Italic
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCBXU"; font_size design_size * pt#;
+
+univ_acc_breadth:=.4; % zusatz parameter for the universal accent
+
+% This font is a modification of Computer Modern Bold Extended.
+
+input c-cmbx;
+
+u#:= % unit width
+ ((u#*360pt#) - (design_size * 1.8))/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 11))/360pt#;
+
+crisp#:= % diameter of serif corners
+ ((crisp#*360pt#) + (design_size * 13))/360pt#;
+
+hair#:= % lowercase hairline breadth
+ ((hair#*360pt#) + (design_size * 3))/360pt#;
+
+stem#:= % lowercase stem breadth
+ ((stem#*360pt#) - (design_size * 3))/360pt#;
+
+curve#:= % lowercase curve breadth
+ ((curve#*360pt#) - (design_size * 3))/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ ((ess#*360pt#) - (design_size * 3))/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ ((flare#*360pt#) - (design_size * 3))/360pt#;
+
+dot_size#:= % diameter of dots
+ ((dot_size#*360pt#) - (design_size * 3))/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ ((cap_hair#*360pt#) + (design_size * 3))/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ ((cap_stem#*360pt#) - (design_size * 2))/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ ((cap_curve#*360pt#) - (design_size * 3))/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ ((cap_ess#*360pt#) - (design_size * 3) - 0.001)/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ ((jut#*360pt#) + (design_size * 2))/360pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ ((beak_jut#*360pt#) - (design_size * 1) - 0.00032)/360pt#;
+
+o#:= % amount of overshoot for curves
+ ((o#*360pt#) + (design_size * 2))/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ ((apex_o#*360pt#) + (design_size * 3) + 0.00091)/360pt#;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+generate fcitalic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fccsc.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fccsc.mf
new file mode 100644
index 00000000000..085608e01da
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fccsc.mf
@@ -0,0 +1,247 @@
+% This is B-FCCSC.MF
+% African Computer Modern Roman Caps and Small Caps
+%
+% This is a parameter and driver file in one
+% Version 1.3
+% Date 5-MAR-1998
+%
+% (c) Copyright 1991--1998 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Barbarossaring 43
+% D 55118 Mainz
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCCSC"; font_size design_size * pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+% These parameters are nearly the same as the Computer Modern Roman
+% parameters.
+
+input c-cmr;
+univ_acc_breadth:=0.5; % zusatz parameter for the universal accent
+u#:= % unit width
+ ((u#*360pt#) + (design_size * 1))/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 5))/360pt#;
+
+ligs:=1; % level of ligatures to be included
+
+mode_setup;
+font_setup;
+
+input fcmacros;
+input fccoding;
+input olddig; % oldstyle numbers from computer modern
+input fcpunct;
+input fcaccent;
+input fcrompct;
+input uppera;
+input upperbcd;
+input uppere;
+input upperfgh;
+input upperij;
+input upperklm;
+input uppern;
+input uppero;
+input upperpqr;
+input upperst;
+input upperuvw;
+input upperxyz;
+
+input fcscligt.mf;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+def lig_o_table (expr k) =
+ "o" kern k, open_o kern k, open_o_tilde kern k,
+ o_grave kern k, o_dot kern k, o_hat kern k,
+ o_tilde kern k, o_umlaut kern k, oe_lig kern k,
+ crossed_o kern k, o_dotu kern k, o_uline kern k,
+ o_bar kern k, o_hachek kern k
+enddef;
+%
+def lig_a_table (expr k) =
+ "a" kern k, a_tilde kern k, ae_lig kern k
+enddef;
+%
+def lig_u_table (expr k)=
+ "u" kern k, u_dotu kern k, u_tilde kern k, var_u kern k
+enddef;
+%
+def lig_A_table (expr k) =
+ "A" kern k, A_tilde kern k, AE_lig kern k
+enddef;
+%
+def lig_O_table (expr k) =
+ "O" kern k, open_o kern k, open_O_tilde kern k,
+ O_grave kern k, O_dot kern k, O_hat kern k,
+ O_tilde kern k, O_umlaut kern k, OE_lig kern k,
+ crossed_O kern k, O_dotu kern k, O_uline kern k,
+ O_bar kern k, O_hachek kern k
+enddef;
+%
+def lig_U_table (expr k)=
+ "U" kern k, U_dotu kern k, U_tilde kern k, var_U kern k
+enddef;
+%
+
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "P": "T": hooktop_P: hooktop_T: "Y": hooktop_Y:
+ lig_a_table(kk#), lig_A_table(kk#);
+ ligtable "F": long_F: "V": "W":
+ if serifs: lig_a_table(kkk#), lig_A_table(kkk#),
+ else: lig_a_table(kk#), lig_A_table(kk#), fi
+ "K": "X": lig_o_table(k#), lig_O_table(k#), "c" kern k#, "C" kern k#,
+ hooktop_c kern k#, hooktop_C kern k#, c_cedilla kern k#,
+ C_cedilla kern k#,
+ "g" kern k#, "G" kern k#, "q" kern k#, "Q" kern k#;
+ ligtable "O": "D": Edh: hooktop_D: open_O: open_O_tilde: O_grave: O_dot:
+ O_hat: O_tilde: O_umlaut: crossed_O: O_dotu: O_bar: O_hachek:
+ "x" kern k#, "X" kern k#, "w" kern k#, "W" kern k#,
+ lig_a_table(k#), lig_A_table(k#), "v" kern k#, "V" kern k#,
+ "y" kern k#, "Y" kern k#, hooktop_y kern k#, hooktop_Y kern k#;
+ ligtable "A": A_tilde: if serifs: "R": fi
+ "c" kern k#, "C" kern k#, hooktop_c kern k#, hooktop_C kern k#,
+ c_cedilla kern k#, C_cedilla kern k#,
+ lig_o_table(k#), lig_O_table(k#), "g" kern k#, "G" kern k#,
+ lig_u_table(k#), lig_U_table(k#), "q" kern k#, "Q" kern k#,
+ "L": latin_Iota:
+ "T" kern kk#, "t" kern kk#, long_T kern k#, long_t kern k#,
+ "Y" kern kk#, "y" kern kk#, hooktop_Y kern k#, hooktop_y kern k#,
+ "V" kern kkk#, "v" kern kkk#, "W" kern kkk#, "w" kern kkk#;
+ ligtable "I": "I" kern -k#; fi % Richard III
+
+
+% now come replacements used to set the lowercase caps
+% Since the number of strings is critical in the FC font, I decided to
+% overwrite the uppercase settings.
+
+u#:= % unit width
+ (u#*36pt#*16)/(21*36pt#);
+
+width_adj#:= % width adjustment for certain characters
+ width_adj#;
+
+cap_serif_fit#:= % extra sidebar near uppercase serifs
+ (cap_serif_fit#*36pt#*4)/(5*36pt#);
+
+letter_fit#:= % extra space added to all sidebars
+ (letter_fit#*36pt#*24)/(5*360pt#);
+
+body_height#:= % height of tallest characters
+ (body_height#*36pt#*20.0)/(27.0*36pt#);
+
+cap_height#:= % height of caps
+ (cap_height#*36pt#*18.5)/(24.6*36pt#);
+
+x_height#:= % height of lowercase without ascenders
+ (x_height#*3.6pt#*116)/(155*3.6pt#);
+
+bar_height#:= % height of crossbar in lowercase e
+ (bar_height#*36pt#*65)/(87*36pt#);
+
+comma_depth#:= % depth of comma below baseline
+ (comma_depth#*36pt#*52)/(70*36pt#);
+
+stem#:= % lowercase stem breadth
+ (stem#*36pt#*21)/(25*36pt#);
+
+flare#:= % diameter of bulbs or breadth of terminals
+ (flare#*36pt#*25)/(33*36pt#);
+
+cap_hair#:= % uppercase hairline breadth
+ (cap_hair#*3.6pt#*91)/(11*36pt#);
+
+cap_stem#:= % uppercase stem breadth
+ (cap_stem#*36pt#*26)/(32*36pt#);
+
+cap_curve#:= % uppercase curve breadth
+ (cap_curve#*36pt#*31)/(37*36pt#);
+
+cap_ess#:= % breadth in middle of uppercase s
+ (cap_ess#*36pt#*28)/(35*36pt#);
+
+cap_jut#:= % protrusion of uppercase serifs
+ (cap_jut#*36pt#*26)/(37*36pt#);
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ (beak_jut#*36pt#*7)/(10*36pt#);
+
+beak#:= % vertical protrusion of beak serifs
+ (beak#*36pt#*52)/(7*360pt#);
+
+slab#:= % serif and arm thickness
+ (slab#*36pt#*91)/(11*360pt#);
+
+cap_bar#:= % uppercase bar thickness
+ (cap_bar#*36pt#*91)/(11*360pt#);
+
+cap_band#:= % uppercase thickness above/below lobes
+ (cap_band#*36pt#*91)/(11*360pt#);
+
+cap_notch_cut#:= % max breadth above/below uppercase notches
+ cap_notch_cut#;
+
+o#:= % amount of overshoot for curves
+ (o#*36pt#*5)/(8*36pt#);
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ (apex_o#*36pt#*4)/(8*36pt#);
+
+fudge:= % factor applied to weights of heavy characters
+ fudge;
+
+font_setup; % now try again with |lower| settings
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+code_offset:=ASCII"a" - ASCII"A";
+input uppera;
+input upperbcd;
+input uppere;
+input upperfgh;
+input upperij;
+input upperklm;
+input uppern;
+input uppero;
+input upperpqr;
+input upperst;
+input upperuvw;
+input upperxyz;
+
+code_offset:=0;
+input fccscspu; % some specials
+if not monospace:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "p": "t": "y": hooktop_p: hooktop_t: hooktop_y:
+ lig_a_table(kk#);
+ ligtable "f": long_f: "v": "w":
+ lig_a_table(if serifs: kkk# else: kk#\\fi),
+ "k": "x":
+ lig_o_table(k#), "c" kern k#, hooktop_c kern k#,
+ c_cedilla kern k#,
+ "g" kern k#, "q" kern k#;
+ ligtable "o": "d": open_o: open_o_tilde: o_grave: o_dot:
+ o_hat: o_tilde: o_umlaut: crossed_o: o_dotu: o_uline:
+ o_bar: o_hachek: crossed_d: tailed_d: hooktop_d:
+ "x" kern k#, "w" kern k#, lig_a_table(k#),
+ "v" kern k#, "y" kern k#, hooktop_y kern k#;
+ ligtable "a": if serifs: "r": fi
+ "c" kern k#, c_cedilla kern k#, hooktop_c kern k#,
+ lig_o_table(k#),
+ "g" kern k#, "u" kern k#, "q" kern k#,
+ "l": latin_iota: oct"033": oct"037":
+ "'" kern kk#, "t" kern kk#, long_t kern kk#, "y" kern kk#,
+ hooktop_y kern kk#, "v" kern kkk#, "w" kern kkk#;
+ ligtable "i": "i" kern -k#; fi % skiing
+bye.
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fci.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fci.mf
new file mode 100644
index 00000000000..646b2b59eff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fci.mf
@@ -0,0 +1,9 @@
+% African Computer Modern Text Italic
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCI"; font_size design_size * pt#;
+
+univ_acc_breadth:=.5; % zusatz parameter for the universal accent
+input c-cmti;
+
+generate fcitalic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcitt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcitt.mf
new file mode 100644
index 00000000000..2fbad8f8445
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcitt.mf
@@ -0,0 +1,25 @@
+% African Computer Modern Italic Typewriter Text
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCITT"; font_size design_size * pt#;
+
+% This font is a modification of African Computer Modern Typewriter Text
+
+univ_acc_breadth:=0.5; % zusatz parameter for the universal accent
+input c-cmtt; % compute cm typewriter parameters
+ % ... but change the following ones:
+
+letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 15))/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ ((jut#*360pt#) + (design_size * 6))/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+generate fcitalic; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcr.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcr.mf
new file mode 100644
index 00000000000..640307e3f24
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcr.mf
@@ -0,0 +1,9 @@
+% African Computer Modern Roman
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCR"; font_size design_size*pt#;
+
+univ_acc_breadth:=.5; % zusatz parameter for the universal accent
+input c-cmr; % compute size parameters for CMR family
+
+generate fcroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsibx.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsibx.mf
new file mode 100644
index 00000000000..c2e34c77f06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsibx.mf
@@ -0,0 +1,11 @@
+% African Computer Modern Bold Extended Sans Serif
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCSSBX"; font_size design_size * pt#;
+
+univ_acc_breadth:=0.4; % zusatz parameter for the universal accent
+input c-cmssbx;
+slant:=sind 12/cosd 12; % change slant
+
+generate fcroman; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsitt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsitt.mf
new file mode 100644
index 00000000000..92e53890528
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsitt.mf
@@ -0,0 +1,13 @@
+% b-fcsitt.mf v1.0 of 28-APR-1993
+% This file is part of the fc-package. Read fc.rme for more information
+% African Computer Modern Sans Serif Inclined Typewriter Text
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCSITT"; font_size design_size * pt#;
+
+univ_acc_breadth:=.5; % zusatz parameter for the universal accent
+input c-fcsstt; % compute sans serif typewriter parameters
+slant:=sind 12/cosd 12; % change slant
+
+generate fcroman; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsl.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsl.mf
new file mode 100644
index 00000000000..32dc6289db2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsl.mf
@@ -0,0 +1,13 @@
+% African Computer Modern Slanted Roman
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCSL"; font_size design_size * pt#;
+
+% This font is a simple modification of African Computer Modern Roman.
+
+univ_acc_breadth:=0.5; % zusatz parameter for the universal accent
+input c-cmr; % compute the cm roman parameters
+slant:=1/6; % change slant
+
+generate fcroman; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcss.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcss.mf
new file mode 100644
index 00000000000..722af401615
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcss.mf
@@ -0,0 +1,10 @@
+% African Computer Modern Sans Serif
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCSS"; font_size design_size * pt#;
+
+univ_acc_breadth:=0.5; % zusatz parameter for the universal accent
+input c-cmss; % compute cm sans serif parameters
+
+generate fcroman; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcssbx.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcssbx.mf
new file mode 100644
index 00000000000..14a99c558e4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcssbx.mf
@@ -0,0 +1,10 @@
+% African Computer Modern Bold Extended Sans Serif
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCSSBX"; font_size design_size * pt#;
+
+univ_acc_breadth:=0.4; % zusatz parameter for the universal accent
+input c-cmssbx;
+
+generate fcroman; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcssi.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcssi.mf
new file mode 100644
index 00000000000..576890d574b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcssi.mf
@@ -0,0 +1,13 @@
+% African Computer Modern Slanted Sans Serif
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCSSI"; font_size design_size * pt#;
+
+% This font is a simple modification of FCSS.
+
+univ_acc_breadth:=0.5; % zusatz parameter for the universal accent
+input c-cmss; % compute cm sans serif parameters
+slant:=sind 12/cosd 12; % change slant
+
+generate fcroman; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsstt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsstt.mf
new file mode 100644
index 00000000000..93fd18a1b8e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcsstt.mf
@@ -0,0 +1,12 @@
+% b-fcsstt.mf
+% v 1.1 28-DEC-1992
+
+% African Computer Modern Sans Serif Typewriter Text
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCSSTT"; font_size design_size * pt#;
+
+univ_acc_breadth:=.5; % zusatz parameter for the universal accent
+input c-fcsstt; % compute cm typewriter parameters
+
+generate fcroman; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fctt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fctt.mf
new file mode 100644
index 00000000000..cb1d8a7fb1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fctt.mf
@@ -0,0 +1,9 @@
+% African Computer Modern Typewriter Text
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCTT"; font_size design_size * pt#;
+
+univ_acc_breadth:=.5; % zusatz parameter for the universal accent
+input c-cmtt; % compute cm typewriter parameters
+
+generate fcroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/b-fcu.mf b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcu.mf
new file mode 100644
index 00000000000..76badf82d9a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/b-fcu.mf
@@ -0,0 +1,10 @@
+% African Computer Modern Unslanted Text Italic
+if unknown cmbase: input cmbase fi
+
+font_identifier:="FCU"; font_size design_size * pt#;
+
+univ_acc_breadth:=.5; % zusatz parameter for the universal accent
+input c-cmti; % compute cm text italic parameters
+slant:=0;
+
+generate fcitalic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/c-fcsstt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/c-fcsstt.mf
new file mode 100644
index 00000000000..ec5bd502a29
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/c-fcsstt.mf
@@ -0,0 +1,246 @@
+% c-fcsstt.mf
+% Compute the font construction parameters for the Computer
+% Modern Sans Serif Typewriter Text family.
+% J"org Knappen 21-MAR-1992
+
+u#:= % unit width
+ (if design_size < 10: ((design_size*design_size*1) +
+ (design_size*2)+90)
+ else: ((design_size*18.5)+25)fi)/360pt#;
+
+width_adj#:= % width adjustment for certain characters
+ 0pt#;
+
+serif_fit#:= % extra sidebar near lowercase serifs
+ 0pt#;
+
+cap_serif_fit#:= % extra sidebar near uppercase serifs
+ 0/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ 0/360pt#;
+
+body_height#:= % height of tallest characters
+ (design_size*250)/360pt#;
+
+asc_height#:= % height of lowercase ascenders
+ (design_size*220)/360pt#;
+
+cap_height#:= % height of caps
+ (design_size*220)/360pt#;
+
+fig_height#:= % height of numerals
+ (design_size*220)/360pt#;
+
+x_height#:= % height of lowercase without ascenders
+ (design_size*155)/360pt#;
+
+math_axis#:= % axis of symmetry for math symbols
+ (design_size*110)/360pt#;
+
+bar_height#:= % height of crossbar in lowercase e
+ ((design_size*80)-10)/360pt#;
+
+comma_depth#:= % depth of comma below baseline
+ (design_size*50)/360pt#;
+
+desc_depth#:= % depth of lowercase descenders
+ (design_size*80)/360pt#;
+
+crisp#:= % diameter of serif corners
+ 0/360pt#;
+
+tiny#:= % diameter of rounded corners
+ (if design_size < 9: ((design_size*20)+30)
+ elseif design_size < 10: ((design_size*10)+120)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+fine#:= % diameter of sharply rounded corners
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 340)
+ else: ((design_size*5)+160)fi)/360pt#;
+
+thin_join#:= % width of extrafine details
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 340)
+ else: ((design_size*5)+160)fi)/360pt#;
+
+hair#:= % lowercase hairline breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+stem#:= % lowercase stem breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+curve#:= % lowercase curve breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ (if design_size < 10: ((design_size*20)+120)
+ else: ((design_size*15)+170)fi)/360pt#;
+
+dot_size#:= % diameter of dots
+ (if design_size < 9: ((design_size*20)+150)
+ elseif design_size < 10: ((design_size*30)+60)
+ else: ((design_size*15)+210)fi)/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+rule_thickness#:= % thickness of lines in math symbols
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+dish#:= % amount erased at top or bottom of serifs
+ 0/360pt#;
+
+bracket#:= % vertical distance from serif base to tangent
+ 0/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*125) - 410)
+ else: ((design_size*25)+90)fi)/360pt#;
+
+cap_jut#:= % protrusion of uppercase serifs
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*125) - 410)
+ else: ((design_size*25)+90)fi)/360pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ 0/360pt#;
+
+beak#:= % vertical protrusion of beak serifs
+ (if design_size < 9: ((design_size*1)-4)
+ elseif design_size < 10: (5)
+%elseif design_size < 12: (design_size*0.5)
+ else: ((-(0.01665001665*design_size*design_size) +
+ (0.8663003663*design_size) -
+ (1.998001998))-0.00048)fi)/360pt#;
+
+vair#:= % vertical diameter of hairlines
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+notch_cut#:= % maximum breadth above or below notches
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+bar#:= % lowercase bar thickness
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+slab#:= % serif and arm thickness
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+cap_bar#:= % uppercase bar thickness
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+cap_band#:= % uppercase thickness above/below lobes
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+cap_notch_cut#:= % max breadth above/below uppercase notches
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+serif_drop#:= % vertical drop of sloped serifs
+ 0/360pt#;
+
+stem_corr#:= % for small refinements of stem breadth
+ 0/360pt#;
+
+vair_corr#:= % for small refinements of hairline height
+ 0/360pt#;
+
+apex_corr#:= % extra width at diagonal junctions
+ (if design_size < 10: (design_size*10)
+ else: ((design_size*5)+50)fi)/360pt#;
+
+o#:= % amount of overshoot for curves
+ ((design_size*5)-10)/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ (if design_size < 10: (30)
+ else: ((design_size*5)-20)fi)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0;
+
+fudge:= % factor applied to weights of heavy characters
+ (if design_size < 10: (81)
+ elseif design_size < 17.6: ((design_size*2.5)+56)
+ else: (100)fi)/100;
+
+math_spread:= % extra openness of math symbols
+ -1;
+
+superness:= % parameter for superellipses
+ 1/sqrt2;
+
+superpull:= % extra openness inside bowls
+ 0;
+
+beak_darkness:= % fraction of triangle inside beak serifs
+ 0;
+
+ligs:= % level of ligatures to be included
+ 0;
+
+square_dots:= % should dots be square?
+ false;
+
+hefty:= % should we try hard not to be overweight?
+ true;
+
+serifs:= % should serifs and bulbs be attached?
+ false;
+
+monospace:= % should all characters have the same width?
+ true;
+
+variant_g:= % should an italic-style g be used?
+ false;
+
+low_asterisk:= % should the asterisk be centered at the axis?
+ true;
+
+math_fitting:= % should math-mode spacing be used?
+ false;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcaccent.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcaccent.mf
new file mode 100644
index 00000000000..cdbdc82ea07
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcaccent.mf
@@ -0,0 +1,319 @@
+% This is FCACCENT.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following accents are generated without condition:
+%
+% ring, grave, acute, hachek, breve, macron, cedilla, hat, dot above,
+% double acute (hungarian long umlaut), tilde, umlaut, ogonek
+%
+% And the following on demand, i. e. if their code is known:
+%
+% polish_cross (for \L and \l), double_grave, universal_acc, double_univ_acc
+% hoi (vietnamese ? accent)
+%
+% Higher versions of this file might include more accents.
+
+iff known polish_cross:
+cmchar "Cross for Polish l and L";
+if unknown l_width#:
+ l_width#:=5u#+2serif_fit#; fi % nominal width of `l'
+if unknown L_stem#:
+ L_stem#:=cap_serif_fit#+max(2u#+.5cap_stem#,3u#); fi % center of `L' stem
+ligtable polish_cross: "l" kern -l_width#-2letter_fit#,
+ "L" kern -.5l_width#-L_stem#-2letter_fit#;
+beginchar(polish_cross,l_width#,x_height#,0);
+adjust_fit(stem_shift#,-stem_shift#);
+pickup crisp.nib; x2-x1=max(4u,2.8u+stem); .5[x1,x2]=.5w;
+y1-.5bar=.2[bar_height,x_height]; y2+.5bar=.8[bar_height,x_height];
+numeric theta; theta=angle(z2-z1)+90;
+pos1(bar,theta); pos2(bar,theta);
+filldraw stroke z1e--z2e; % diagonal
+penlabels(1,2); endchar;
+
+
+cmchar "Scandinavian circle accent";
+beginchar(oct"006",13u#+4/3(asc_height#-x_height#)*slant,asc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+
+cmchar "Grave accent";
+beginchar(oct"0",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Acute accent";
+beginchar(oct"1",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Hachek (check) accent";
+beginchar(oct"007",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Breve accent";
+beginchar(oct"10",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"011",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);% changed jk
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+
+cmchar "Cedilla accent";
+beginchar(oct"013",8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+x1=.5w+.5u;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Circumflex (hat) accent";
+beginchar(oct"002",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"012",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=good.x(.5w); top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Long Hungarian umlaut accent";
+beginchar(oct"005",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+cmchar "Tilde (squiggle) accent";
+beginchar(oct"003",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Umlaut (double dot) accent";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"004",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=good.x(2.75u); top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(w-2.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+
+cmchar "Ogonek"; % from jb's cmoe
+beginchar(oct"014",8u#,0,.875desc_depth#);
+adjust_fit(0,0) ;
+x1 = .5w+ 1.5u ;
+pickup crisp.nib; pos1(hair,-25);
+pos2(.8[vair,stem],45) ; pos3(vair,140) ;
+x1 = x2+.5u ; y2 = .8[y1,y5] ;
+ rt x3l = w ; y3 = .4[y5,y1] ;
+ x5 = 2/5[x2,x3] ; bot y5 =-d ;
+pos5(.6[vair,stem],90) ;
+bot y1 = o ;
+lft x4l = hround(x1-u) ; y4 = .5[y1,y2] ;
+pos4(.4[hair,stem],0) ;
+filldraw stroke z1e ..tension 1.2 .. z4e ..z2e .. z5e ..tension 1.2 .. z3e ;
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known double_grave:
+cmchar "Double grave accent"; % from cm
+beginchar(double_grave,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+ italcorr h#*slant-u#;
+adjust_fit(0,0); slantswitch; % mirror will reswitch the slant
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+mirror(.5w);
+penlabels(1,2,3,4); endchar;
+
+iff known universal_acc:
+cmchar "Universal or Prime accent"; % from mgr
+beginchar(universal_acc,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+adjust_fit(0,0);
+x1=.5w;
+universal(a,x1);
+penlabels(a1,a2,a3,a4);endchar;
+
+iff known double_univ_acc:
+cmchar "Double Universal accent";
+beginchar(double_univ_acc,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+adjust_fit(0,0);
+x1:=good.x(1/3w-eps); x2:=good.x(2/3w+eps);
+universal(a,x1);
+universal(b,x2);
+penlabels(a1,a2,a3,a4,b1,b2,b3,b4);endchar;
+
+
+
+iff known hoi:
+cmchar "Hoi"; % jk, based on ?
+beginchar(hoi,9u#,body_height#,0); % vietnamese tone mark
+adjust_fit(0,0);
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=.5w; rt x3r=hround(w-1.5u);
+numeric hh; hh=min(asc_height,2x_height);
+bot y6=max(2/3[hh,x_height],x_height+o+hair);
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround 1.5u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround 1.5u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx10.mf
new file mode 100644
index 00000000000..e9b3a2ff239
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx11.mf
new file mode 100644
index 00000000000..12ce93a21c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx12.mf
new file mode 100644
index 00000000000..3a979153c23
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx14.mf
new file mode 100644
index 00000000000..cc483c617ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx17.mf
new file mode 100644
index 00000000000..52f6f508ac3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx20.mf
new file mode 100644
index 00000000000..5d2765b2d3e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx25.mf
new file mode 100644
index 00000000000..a622b26fc06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx5.mf
new file mode 100644
index 00000000000..8653444f6cc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx6.mf
new file mode 100644
index 00000000000..416cef98abb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx7.mf
new file mode 100644
index 00000000000..9c553ca25b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx8.mf
new file mode 100644
index 00000000000..7a3bd3aae28
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbx9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx9.mf
new file mode 100644
index 00000000000..34b6c0bb3e5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbx9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi10.mf
new file mode 100644
index 00000000000..0ced91c4a25
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi11.mf
new file mode 100644
index 00000000000..83bd66e7d58
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi12.mf
new file mode 100644
index 00000000000..51d2053ab98
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi14.mf
new file mode 100644
index 00000000000..501da2ea4fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi17.mf
new file mode 100644
index 00000000000..b401554c9c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi20.mf
new file mode 100644
index 00000000000..92851c8e1ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi25.mf
new file mode 100644
index 00000000000..7c79a5016ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi5.mf
new file mode 100644
index 00000000000..721f5b9cc34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi6.mf
new file mode 100644
index 00000000000..72d77aa777e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi7.mf
new file mode 100644
index 00000000000..209918d7e9b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi8.mf
new file mode 100644
index 00000000000..536760c9d86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi9.mf
new file mode 100644
index 00000000000..de56c1b41ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxi9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcbxi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl10.mf
new file mode 100644
index 00000000000..b61307a7e4d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl11.mf
new file mode 100644
index 00000000000..581f754f475
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl12.mf
new file mode 100644
index 00000000000..812c6410707
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl14.mf
new file mode 100644
index 00000000000..d812af85bc8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl17.mf
new file mode 100644
index 00000000000..f865ae9b149
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl20.mf
new file mode 100644
index 00000000000..acdcda3ab13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl25.mf
new file mode 100644
index 00000000000..f9adc77c460
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl5.mf
new file mode 100644
index 00000000000..c9d6658f0ec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl6.mf
new file mode 100644
index 00000000000..a7a226373be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl7.mf
new file mode 100644
index 00000000000..78538c3c5d7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl8.mf
new file mode 100644
index 00000000000..c5fc485ff3a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl9.mf
new file mode 100644
index 00000000000..92e71f25483
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxsl9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcbxsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu10.mf
new file mode 100644
index 00000000000..c897a392962
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu11.mf
new file mode 100644
index 00000000000..32a75eb96b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu12.mf
new file mode 100644
index 00000000000..b2a5cd8e75b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu14.mf
new file mode 100644
index 00000000000..3b1403d230e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu17.mf
new file mode 100644
index 00000000000..1153a940c89
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu20.mf
new file mode 100644
index 00000000000..9b09841c875
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu25.mf
new file mode 100644
index 00000000000..3a580bff2bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu5.mf
new file mode 100644
index 00000000000..8642abb3976
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu6.mf
new file mode 100644
index 00000000000..08d3efe51ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu7.mf
new file mode 100644
index 00000000000..7eb363c8f84
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu8.mf
new file mode 100644
index 00000000000..bf640fa7802
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu9.mf
new file mode 100644
index 00000000000..37a85f1bd32
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcbxu9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcbxu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccoding.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccoding.mf
new file mode 100644
index 00000000000..2f6df426a63
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccoding.mf
@@ -0,0 +1,167 @@
+% This is fccoding.mf
+% Version 1.2 which should not change anymore
+% Date 18-NOV-1994, renamed to fccoding.mf 5-MAR-1998
+%
+% (c) 1991,1992, 1994, 1998 by J"org Knappen
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Barbarossaring 43
+% D 55118 Mainz
+% Germany
+%
+% Includes hooktopped c, p, t for Serer.
+%
+% Sets code positions according to the fc font encoding scheme
+%
+% Change Version 1.2: Added font_coding_scheme:="African Latin (fc)"
+% to be recorded as a special in gf and pk files
+
+font_coding_scheme:="African Latin (fc)";
+
+hooktop_B:=128; % oct"200";
+hooktop_D:=129; % oct"201";
+open_E:=130; % oct"202";
+reversed_E:=131; % oct"203";
+long_F:=132; % oct"204";
+E_hachek:=133; % oct"205";
+ipa_Gamma:=134; % oct"206";
+crossed_H:=135; % oct"207";
+
+hooktop_K:=136; % oct"210";
+Enj:=137; % oct"211";
+open_O:=138; % oct"212";
+N_acute:=139; % oct"213";
+Esh:=140; % oct"214";
+Eng:=141; % oct"215";
+var_U:=142; % oct"216";
+hooktop_Y:=143; % oct"217";
+
+hooktop_C:=144; % oct"220";
+hooktop_P:=145; % oct"221";
+S_hachek:=146; % oct"222";
+N_dot:=147; % oct"223";
+N_uline:=148; % oct"224";
+S_dotu:=149; % oct"225";
+Zhe:=150; % oct"226";
+sami_T:=151; % oct"227";
+
+E_dot:=152; % oct"230";
+E_dotu:=153; % oct"231";
+hooktop_T:=154; % oct"232";
+long_T:=155; % oct"233";
+t_esh_lig:=156; % oct"234";
+fj_lig:=157; % oct"235";
+crossed_d:=158; % oct"236";
+double_grave:=159; % oct"237";
+
+hooktop_b:=160; % oct"240";
+hooktop_d:=161; % oct"241";
+open_e:=162; % oct"242";
+reversed_e:=163; % oct"243";
+long_f:=164; % oct"244";
+e_hachek:=165; % oct"245";
+ipa_gamma:=166; % oct"246";
+crossed_h:=167; % oct"247";
+
+hooktop_k:=168; % oct"250";
+enj:=169; % oct"251";
+open_o:=170; % oct"252";
+n_acute:=171; % oct"253";
+esh:=172; % oct"254";
+eng:=173; % oct"255";
+var_u:=174; % oct"256";
+hooktop_y:=175; % oct"257";
+
+hooktop_c:=176; % oct"260";
+hooktop_p:=177; % oct"261";
+s_hachek:=178; % oct"262";
+n_dot:=179; % oct"263";
+n_uline:=180; % oct"264";
+s_dotu:=181; % oct"265";
+zhe:=182; % oct"266";
+sami_t:=183; % oct"267";
+
+e_dot:=184; % oct"270";
+e_dotu:=185; % oct"271";
+hooktop_t:=186; % oct"272";
+long_t:=187; % oct"273";
+double_univ_acc:=188; % oct"274";
+spanish_shriek:=189; % oct"275";
+spanish_query:=190; % oct"276";
+universal_acc:=191; % oct"277";
+
+latin_Iota:=192; % oct"300";
+I_dotu:=193; % oct"301";
+open_E_tilde:=194; % oct"302";
+A_tilde:=195; % oct"303";
+M_acute:=196; % oct"304";
+open_O_tilde:=197; % oct"305";
+AE_lig:=198; % oct"306";
+C_cedilla:=199; % oct"307";
+
+E_grave:=200; % oct"310";
+E_acute:=201; % oct"311";
+E_hat:=202; % oct"312";
+E_umlaut:=203; % oct"313";
+E_uline:=204; % oct"314";
+E_bar:=205; % oct"315";
+E_tilde:=206; % oct"316";
+I_tilde:=207; % oct"317";
+
+Edh:=208; % oct"320";
+N_tilde:=209; % oct"321";
+O_grave:=210; % oct"322";
+O_dot:=211; % oct"323";
+O_hat:=212; % oct"324";
+O_tilde:=213; % oct"325";
+O_umlaut:=214; % oct"326";
+OE_lig:=215; % oct"327";
+
+crossed_O:=216; % oct"330";
+O_dotu:=217; % oct"331";
+O_uline:=218; % oct"332";
+O_bar:=219; % oct"333";
+O_hachek:=220; % oct"334";
+U_dotu:=221; % oct"335";
+U_tilde:=222; % oct"336";
+polish_cross:=223; % oct"337";
+
+latin_iota:=224; % oct"340";
+i_dotu:=225; % oct"341";
+open_e_tilde:=226; % oct"342";
+a_tilde:=227; % oct"343";
+m_acute:=228; % oct"344";
+open_o_tilde:=229; % oct"345";
+ae_lig:=230; % oct"346";
+c_cedilla:=231; % oct"347";
+
+e_grave:=232; % oct"350";
+e_acute:=233; % oct"351";
+e_hat:=234; % oct"352";
+e_umlaut:=235; % oct"353";
+e_uline:=236; % oct"354";
+e_bar:=237; % oct"355";
+e_tilde:=238; % oct"356";
+i_tilde:=239; % oct"357";
+
+tailed_d:=240; % oct"360";
+n_tilde:=241; % oct"361";
+o_grave:=242; % oct"362";
+o_dot:=243; % oct"363";
+o_hat:=244; % oct"364";
+o_tilde:=245; % oct"365";
+o_umlaut:=246; % oct"366";
+oe_lig:=247; % oct"367";
+
+crossed_o:=248; % oct"370";
+o_dotu:=249; % oct"371";
+o_uline:=250; % oct"372";
+o_bar:=251; % oct"373";
+o_hachek:=252; % oct"374";
+u_dotu:=253; % oct"375";
+u_tilde:=254; % oct"376";
+scharfes_s:=255; % oct"377";
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc10.mf
new file mode 100644
index 00000000000..2dfa97601e4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc11.mf
new file mode 100644
index 00000000000..a58161702eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc12.mf
new file mode 100644
index 00000000000..5cf623580f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc14.mf
new file mode 100644
index 00000000000..7e049d4c7be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc17.mf
new file mode 100644
index 00000000000..e91cbde83fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc20.mf
new file mode 100644
index 00000000000..32c92be4f0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc25.mf
new file mode 100644
index 00000000000..9aa3258d29c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc5.mf
new file mode 100644
index 00000000000..2e8825c7e88
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc6.mf
new file mode 100644
index 00000000000..46010c47e79
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc7.mf
new file mode 100644
index 00000000000..90cd98e0dc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc8.mf
new file mode 100644
index 00000000000..c8bc50deb69
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccsc9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc9.mf
new file mode 100644
index 00000000000..f83d1f60486
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccsc9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fccsc;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fccscspu.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fccscspu.mf
new file mode 100644
index 00000000000..ade0fe15279
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fccscspu.mf
@@ -0,0 +1,369 @@
+% This is FCCSCSPU.MF
+% Version 1.1a
+% Date 19-MAR-1992
+%
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+
+%
+% [ heavily borrowed from the Computer Modern Roman family
+% of fonts by D. E. Knuth and from DC fonts Version 1.0
+% (prerelease of EC fonts) ]
+%
+% Content:
+%
+% Metafont program for the characters in positions of ligatures
+% for the "caps and small caps" fonts
+%
+% I,J,FI,FL,FFI,FFL,SS, D with bar, long D, FJ, T-ESH
+%
+
+
+cmchar "The letter I";
+beginchar(oct"031",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "The letter J";
+beginchar(oct"032",9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter FF";
+beginchar(oct"033",2(11.5u#-width_adj#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the second F
+currentpicture:=currentpicture + currentpicture shifted (w',0);
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+cmchar "The letter FI";
+beginchar(oct"034",11.5u#-width_adj#+max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the I
+xshift:=w';
+w':=w-xshift;
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+if serifs: dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut); % upper serif
+ dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+cmchar "The letter FL";
+beginchar(oct"035",(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the L
+xshift:=w';
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
+bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
+arm(13,14,eee,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut); % upper serif
+ nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+
+
+cmchar "The letter FFI";
+beginchar(oct"036",2(11.5u#-width_adj#)+max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the second F
+currentpicture:=currentpicture + currentpicture shifted (w',0);
+% the I
+xshift:=2w';
+w':=w-xshift;
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+if serifs: dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut); % upper serif
+ dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+cmchar "The letter FFL";
+beginchar(oct"037",2(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the I
+currentpicture:=currentpicture + currentpicture shifted (w',0);
+% the L
+xshift:=2w';
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
+bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
+arm(13,14,eee,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut); % upper serif
+ nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+
+iff known scharfes_s:
+cmchar "Two letters S";
+beginchar(scharfes_s,10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+r:=r+w+shrink_fit; charwd:=2charwd;
+addto currentpicture also currentpicture shifted (w+shrink_fit,0);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+iff known crossed_d:
+cmchar"Capital letter crossed D"; % Capital of icelandic edh, kroatian dje and
+ % ewe d with tail
+% cmchar "Capital Eth"; % from im
+beginchar(crossed_d,13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pickup crisp.nib; y9-.5bar=.2[bar_height,x_height];
+y10+.5bar=.8[bar_height,x_height]; lft x9=0; x1-x9=x10-x1;
+numeric theta; theta=angle(z10-z9)+90; pos9(bar,theta); pos10(bar,theta);
+filldraw stroke z9e--z10e; % cross piece (from "Cross for polish l and L")
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7,9,10); endchar;
+
+iff known fj_lig:
+cmchar "The ligature FJ"; % jk from cm F and J
+beginchar(fj_lig,20.5u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% first the J
+numeric ww; ww=26/41w;
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround ww; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround(ww+.75u); bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+penlabels(1,2,3,4,5);
+clearxy;
+% Now the F
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(ww-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(ww-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(ww-.5u);
+else: rt x6r=hround(ww-1.5u); y6=y5l+eps; rt x9r=hround(ww-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff known t_esh_lig:
+cmchar "Capital ligature T-ESH"; % jk
+beginchar(t_esh_lig,21u#,cap_height#,0);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:0,u# else: 0,0 fi); pickup fine.nib;
+% first the Esh
+numeric ww; ww=13/21w;
+pos0(flare+(cap_stem-stem),0); pos1(cap_hair,0); pos2(cap_band,90);
+pos4(cap_stem,180);
+pos5(cap_stem,0);
+pos7(cap_band,-90); pos8(cap_hair,-180); pos9(flare+(cap_stem-stem),-180);
+rt x1r=hround(w+.25u); lft x8r=hround(ww-.35u); x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.75[-d,y4];
+x4=x5=hround(.5[ww,w]);
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...{down}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{down}...{left}z7e; % lower arc
+penlabels(0,1,2,4,5,7,8,9);
+% now the T
+clearxy;
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5ww-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(ww-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=ww-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci10.mf
new file mode 100644
index 00000000000..ff10c5f84f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci11.mf
new file mode 100644
index 00000000000..5f247283868
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci12.mf
new file mode 100644
index 00000000000..04c971b7c34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci14.mf
new file mode 100644
index 00000000000..c51549e0dd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci17.mf
new file mode 100644
index 00000000000..225d4f08afe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci20.mf
new file mode 100644
index 00000000000..cfa60ffe09d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci25.mf
new file mode 100644
index 00000000000..32695594205
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci5.mf
new file mode 100644
index 00000000000..861c52fdee1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci6.mf
new file mode 100644
index 00000000000..3197ba1f0fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci7.mf
new file mode 100644
index 00000000000..c824389a58c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci8.mf
new file mode 100644
index 00000000000..99b018364f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fci9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fci9.mf
new file mode 100644
index 00000000000..93aa380a56d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fci9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fci;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcilig.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcilig.mf
new file mode 100644
index 00000000000..54ac377cb3b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcilig.mf
@@ -0,0 +1,278 @@
+% This is FCILIG.MF
+% Version 1.1
+% Date 17-NOV-1994
+%
+% (c) Copyright 1991, 1994 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-55099 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following ligatures are generated without condition:
+%
+% ff, fi, fl, ffi, ffl (all using straight f)
+%
+% And the following on demand, i. e. if their code is known:
+%
+% fj_lig, t_esh_lig
+%
+% Higher versions of this file might include more ligatures.
+
+cmchar "Italic ligature ff"; % from cm (ff)
+beginchar(oct"033",5u#+max(1.5u#,stem#)+max(3.5u#,2flare#)+2letter_fit#,
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(4.8u+2letter_fit,0);
+.5[x88,x99]=.5w-.1u; x89-x88=u; y98=h; y99=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90);
+rt x1r=hround(.5w+1.25u); x2=.5[x1,x4];
+top y2r=h+oo; bot y5=-d-oo;
+y4=.25[x_height,h];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; y3=.8[y4,y2]; y0+.5vair=.5[x_height,h];
+bulb(2,1,0); % left bulb
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90);
+x12=.6[x11,x14];
+x13=.8[x12+x14-x98,x98];
+rt x11r=hround(w+.25u);
+y0=y10; y2=y12; y3=y13;
+bulb(12,11,10); % right bulb
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % right stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x14l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,10,11,12,13,14,15,20,21,88,89,98,99); endchar;
+
+cmchar "Italic ligature fi"; % from cm (fi)
+beginchar(oct"034",6.5u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-4u-2letter_fit); x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90);
+pos11(stem,0); rt x11r=hround(w-2.5u+.5stem);
+x12=x11; x14=w; hook_out(12,13,14); % closing hook
+x1r=x11r; x2=.5[x1,x4];
+bot y5=-d-oo;
+y0+.5flare=vround(.85[x_height,h]); top y2r=h+oo;
+y4=.25[x_height,h];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; y3=.8[y4,y2];
+bulb(2,1,0); % bulb
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+top y11=x_height; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x11;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,10,11,12,13,14,20,21,88,89); endchar;
+
+cmchar "Italic ligature fl"; % from cm (fi)
+beginchar(oct"035",7u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-4.5u-2letter_fit); x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90);
+pos11(stem,0); rt x11r=hround(w-2.5u+.5stem); rt x1r=lft x11l;
+x12=x11; x14=w; hook_out(12,13,14); % closing hook
+x2=.5[x1,x4];
+top y2r=h+oo; bot y5=-d-oo;
+y4=.25[x_height,h];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; y3=.8[y4,y2]; y6=.8[y5,y7]; y0+.5vair=.5[x_height,h];
+bulb(2,1,0); % bulb
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+top y11=h; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x11;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,10,11,12,13,14,20,21,88,89); endchar;
+
+cmchar "Italic ligature ffi"; % from cm (ffi)
+beginchar(oct"036",11.75u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +4letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(5u+2letter_fit,0);
+numeric theta,mid_f;
+mid_f=.5[x88,x99]=.5(w-4.25u-2letter_fit); x89-x88=u;
+y98=h; y99=-d; theta=angle(z88-z89);
+pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
+x22=x21; x24=w; hook_out(22,23,24); % closing hook
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90);
+rt x1r=hround(mid_f+1.75u);
+x2=.5[x1,x4];
+top y2r=h+oo; bot y5=-d-oo;
+y4=.25[x_height,h];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; y3=.8[y4,y2]; y0+.5vair=.5[x_height,h];
+bulb(2,1,0); % left bulb
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90);
+x11r=x21r; x12=.5[x11,x14];
+x13=.8[x12+x14-x98,x98];
+y10+.5flare=vround .85[x_height,h];
+y2=y12; y3=y13;
+bulb(12,11,10); % right bulb
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % middle stem
+top y21=x_height; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; pos30(bar,90); pos31(bar,90);
+top y30r=top y31r=x_height;
+lft x30=lft x4r-.5stem-u; x31=x21;
+filldraw stroke z30e--z31e; % crossbar
+penlabels(0,1,2,3,4,5,10,11,12,13,14,15,
+ 20,21,22,23,24,30,31,88,89,98,99); endchar;
+
+cmchar "Italic ligature ffl"; % from cm (ffl)
+beginchar(oct"037",12u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +4letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(5u+2letter_fit,0);
+numeric theta,mid_f;
+mid_f=.5[x88,x99]=.5(w-4.5u-2letter_fit); x89-x88=u;
+y98=h; y99=-d; theta=angle(z88-z89);
+pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
+x22=x21; x24=w; hook_out(22,23,24); % closing hook
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90);
+rt x1r=hround(mid_f+1.25u);
+x2=.5[x1,x4];
+top y2r=h+oo; bot y5=-d-oo; y0+.5vair=.5[x_height,h];
+y4=.25[x_height,h];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; y3=.8[y4,y2];
+bulb(2,1,0); % left bulb
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90);
+rt x11r=lft x21l;
+x12=.5[x11,x14];
+x13=.8[x12+x14-x98,x98];
+y0=y10; y2=y12; y3=y13;
+bulb(12,11,10); % right bulb
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % middle stem
+top y21=h; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; pos30(bar,90); pos31(bar,90);
+top y30r=top y31r=x_height;
+lft x30=lft x4r-.5stem-u; x31=x21;
+filldraw stroke z30e--z31e; % crossbar
+penlabels(0,1,2,3,4,5,10,11,12,13,14,15,
+ 20,21,22,23,24,30,31,88,89,98,99); endchar;
+
+cmchar "Italic ligature fj"; % jk
+beginchar(fj_lig,6.5u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-4u-2letter_fit); x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90);
+pos12(stem,0);
+pos13(stem,0); lft x13l=hround(w-2u-.5stem);
+pos14(vair,-90); pos15(hair,-180); pos16(flare,-180);
+x12=x13;
+x1r=x13r; x2=.5[x1,x4];
+bot y5=-d-oo;
+y0+.5flare=vround(.85[x_height,h]); top y2r=h+oo;
+y4=.25[x_height,h];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; y3=.8[y4,y2];
+bulb(2,1,0); % left bulb
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+top y12=x_height; bot y13=-1/3d; bot y14r=-d-oo; y16-.5flare=-vround.9d;
+x14=2/3[x13,x4]; lft x15r=lft x15r+x14-x15l-eps;
+filldraw stroke z12e--z13e...{left}z14e; % right stem and arc
+bulb(14,15,16); % right bulb
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x13;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,12,13,14,15,16,20,21,88,89); endchar;
+
+iff known t_esh_lig:
+cmchar "The ligature t-esh"; % from wsuipa
+beginchar(t_esh_lig,10u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(2/3w-.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+pos7(vair,90); pos1(hair,0);
+rt x1r=fine.rt x2l; top y1=h;
+filldraw z1l{down}...{left}z7r--z7l--z8l--z8r
+ --(x1r,y8r)--z1r--cycle; % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(2/3w-.5u);
+pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+(x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+x6l=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+filldraw stroke z5'e--z6e; % terminal
+pickup fine.nib; pos21(shaved_stem,0); pos22(shaved_stem,0);
+lft x21l=x5; x21=x22; top y21=.8h; bot y22=0;
+filldraw stroke z21e--z22e; % stem
+%top
+pos10(vair,-90); x10=.5[x21,x11l]; top y10l=h+o+1;
+pos11(hair,0); rt x11l=hround(w-.4u); y11=.84h;
+pos12(flare,0);
+pos10'(vair,90); z10'=z10;
+bulb(10',11,12); % bulb
+filldraw stroke pulled_super_arc.e(21,10)(.4superpull); % arc and stem
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x16r,x22]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; x17r=hround(x3+.1u);
+ x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke pulled_super_arc.e(22,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,5,6,7,8,10,11,12,15,16,17,21,22); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitalic.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitalic.mf
new file mode 100644
index 00000000000..afc5d20f425
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitalic.mf
@@ -0,0 +1,58 @@
+% This is FCITALIC.MF
+% Driver File for the FC-Fonts
+% Version 1.2
+% Date 5-MAR-1998
+%
+% (c) 1991--1998 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Barbarossaring 43
+% D-55118 Mainz
+
+mode_setup;
+font_setup;
+input fcmacros;
+input fccoding;
+input itald; % numbers from computer modern
+input fcpunct;
+input fcaccent;
+input fcilig;
+input fcitlpct;
+input uppera;
+input upperbcd;
+input uppere;
+input upperfgh;
+input upperij;
+input upperklm;
+input uppern;
+input uppero;
+input upperpqr;
+input upperst;
+input upperuvw;
+input upperxyz;
+input itala;
+input italbcd;
+input itale;
+input italfgh;
+input italij;
+input italklm;
+input italn;
+input italo;
+input italpqr;
+input italst;
+input italuvw;
+input italxyz;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+if monospace: input fcttligt; else: input fcitligt; fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitligt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitligt.mf
new file mode 100644
index 00000000000..22b09273663
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitligt.mf
@@ -0,0 +1,167 @@
+% This is FCITLIGT.MF
+% Version 1.3a
+% Date 25-NOV-1994
+%
+% (c) 1992, 1994 by J"org Knappen
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 55099 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+%
+% Ligature Table for fc italic fonts
+%
+
+ligtable ">":">" =: oct"023"; % Guillemets
+ligtable "<":"<" =: oct"024";
+ligtable "`":"`" =: oct"020"; % Quotation marks
+ligtable "'":"'" =: oct"021";
+ligtable ",":"," =: oct"022";
+ligtable "!":"`" =: spanish_shriek; % Spanish punctuation
+ligtable "?":"`" =: spanish_query;
+ligtable "-":"-" =: oct"025", % n-dash
+ 127 =: 127; % "-" "hyphenchar" -> "hyphenchar"
+ligtable oct"025":"-" =: oct"026"; % m-dash
+
+% Ligatures fl, fi, ff etc not yet implemented
+
+numeric itc#; itc#=(asc_height#-x_height#)*slant+1/4u#;
+
+ligtable "f": "i"=:oct"034",
+ "f"=:oct"033",
+ "l"=:oct"035",
+ "j"=:fj_lig,
+long_f: esh: t_esh_lig:
+ "'" kern itc#, "?" kern itc#, "!" kern itc#,
+ ")" kern itc#, "]" kern itc#;
+
+ligtable oct"033": % ff
+ "i"=:oct"036",
+ "l"=:oct"037",
+ "'" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+
+
+def lig_o_table (expr k) =
+ "o" kern k, open_o kern k, open_o_tilde kern k,
+ o_grave kern k, o_dot kern k, o_hat kern k,
+ o_tilde kern k, o_umlaut kern k, oe_lig kern k,
+ crossed_o kern k, o_dotu kern k, o_uline kern k,
+ o_bar kern k, o_hachek kern k
+enddef;
+%
+def lig_a_table (expr k) =
+ "a" kern k, a_tilde kern k, ae_lig kern k
+enddef;
+%
+def lig_i_table (expr k) =
+ "i" kern k, oct"031" kern k, i_tilde kern k, latin_iota kern k,
+ i_dotu kern k
+enddef;
+def lig_e_table (expr k)=
+ "e" kern k, e_hachek kern k, e_dot kern k, open_e kern k,
+ reversed_e kern k, e_dotu kern k, open_e_tilde kern k,
+ e_grave kern k, e_acute kern k, e_hat kern k,
+ e_umlaut kern k, e_uline kern k, e_bar kern k,
+ e_tilde kern k
+enddef;
+%
+def lig_u_table (expr k)=
+ "u" kern k, u_dotu kern k, u_tilde kern k, var_u kern k
+enddef;
+%
+def lig_O_table (expr k) =
+ "O" kern k, open_o kern k, open_O_tilde kern k,
+ O_grave kern k, O_dot kern k, O_hat kern k,
+ O_tilde kern k, O_umlaut kern k, OE_lig kern k,
+ crossed_O kern k, O_dotu kern k, O_uline kern k,
+ O_bar kern k, O_hachek kern k
+enddef;
+%
+%
+%
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+
+ligtable "F": long_F: "V": "W": "T": hooktop_T: "Y":
+ "a" kern kk#, "e" kern kk#, open_e kern kk#,
+ reversed_e kern kk#, oct"031" kern kk#, latin_iota kern kk#,
+ "o" kern kk#, open_o kern kk#, "u" kern kk#, var_u kern kk#,
+ ae_lig kern kk#, oe_lig kern kk#, "r" kern kk#,
+ "y" kern kk#,
+ "A" kern kk#, "." kern kk#,
+ "," kern kk#;
+
+ligtable "P": hooktop_P:
+ "A" kern kk#, "." kern kk#,
+ "," kern kk#;
+
+
+ligtable "K": "X": ipa_Gamma:
+ lig_O_table(k#), "C" kern k#, "G" kern k#, "Q" kern k#,
+ hooktop_C kern k#, C_cedilla kern k#;
+
+ligtable "O": "D": Edh: hooktop_D: open_O: open_O_tilde: O_grave: O_dot:
+ O_hat: O_tilde: O_umlaut: crossed_O: O_dotu: O_bar: O_hachek:
+ "X" kern k#, ipa_Gamma kern k#, "W" kern k#, "V" kern k#,
+ "Y" kern k#, hooktop_Y kern k#, "A" kern k#, A_tilde kern k#,
+ AE_lig kern k#;
+
+ligtable "A": A_tilde: "R": latin_Iota:
+ "t" kern k#, sami_t kern k#, hooktop_t kern k#,
+ "n" kern k#, "m" kern k#, enj kern k#, eng kern k#,
+ n_tilde kern k#, n_acute kern k#, n_dot kern k#,
+ n_uline kern k#, m_acute kern k#,
+ "l" kern k#, "r" kern k#, lig_u_table(k#), lig_i_table(k#),
+ "h" kern k#, crossed_h kern k#, "b" kern k#,
+ hooktop_b kern k#, "k" kern k#, hooktop_k kern k#,
+ "v" kern k#, "w" kern k#,
+ lig_e_table(-u#), lig_a_table(-u#), lig_o_table(-u#),
+ "d" kern -u#, hooktop_d kern -u#, crossed_d kern -u#,
+ tailed_d kern -u#, "c" kern -u#, hooktop_c kern -u#,
+ c_cedilla kern -u#, "g" kern -u#, "q" kern -u#,
+ "C" kern k#,
+ hooktop_C kern k#, C_cedilla kern k#, "G" kern k#,
+ lig_O_table(k#), "Q" kern k#, "U" kern k#, var_U kern k#,
+ "T" kern kk#, long_T kern kk#, "Y" kern kk#,
+ hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
+
+ligtable "L": lig_e_table(-u#), lig_a_table(-u#), lig_o_table(-u#),
+ "d" kern -u#, hooktop_d kern -u#, crossed_d kern -u#,
+ tailed_d kern -u#, "c" kern -u#, hooktop_c kern -u#,
+ c_cedilla kern -u#, "g" kern -u#, "q" kern -u#,
+ "T" kern kk#, long_T kern kk#, "Y" kern kk#,
+ hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
+
+ligtable "l": "l" kern u#;
+
+ligtable "b": hooktop_b: "c": hooktop_c: c_cedilla:
+ "e": e_hachek: e_dot: open_e: reversed_e: e_dotu: open_e_tilde:
+ e_grave: e_acute: e_hat: e_umlaut: e_uline: e_bar: e_tilde:
+ "o": open_o: open_o_tilde: o_grave: o_dot: o_hat:
+ o_tilde: o_umlaut: oe_lig: crossed_o: o_dotu: o_uline:
+ o_bar: o_hachek: "p": hooktop_p: "r":
+ lig_e_table(-u#), lig_a_table(-u#), lig_o_table(-u#),
+ "d" kern -u#, hooktop_d kern -u#, crossed_d kern -u#,
+ tailed_d kern -u#, "c" kern -u#, hooktop_c kern -u#,
+ c_cedilla kern -u#, "g" kern -u#, "q" kern -u#;
+ligtable "n": "'" kern kkk#;
+
+ligtable hooktop_d: % t_esh_lig:
+ "a" kern k#, "e" kern k#, latin_iota kern k#,
+ oct"031" kern k#, open_e kern k#, reversed_e kern k#,
+ "o" kern k#, open_o kern k#, "u" kern k#, var_u kern k#,
+ ae_lig kern k#, oe_lig kern k#,
+ "." kern kk#, "," kern kk#;
+
+ligtable tailed_d: lig_a_table(k#), lig_e_table(k#), lig_i_table(k#),
+ lig_o_table(k#), lig_u_table(k#), "." kern kk#;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitlpct.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitlpct.mf
new file mode 100644
index 00000000000..3434ec98e20
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitlpct.mf
@@ -0,0 +1,120 @@
+% This is FCITLPCT.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% Pounds, ?, &
+%
+% And the following on demand, i. e. if their code is known:
+%
+% spanish_query (?`)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Sterling sign";
+beginchar("$",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9r=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Italic ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr asc_height#*slant-1.5u#;
+adjust_fit(if monospace:-u#,-2u# else: 0,0 fi); pickup fine.nib;
+pos1(flare,0); pos2(hair,0); pos3(vair,90);
+rt x2r=hround.5w; x3=1/3(w-u);
+top y3r=h+o; y2=.5[x_height,h]; bulb(3,2,1); % left bulb
+pos4(stem,180); pos5(vair,270); pos6(hair,360); pos7(vair,450);
+pos8(curve,540); pos9(vair,630); pos10(hair,720);
+lft x4r=hround 1.25u; x5=x7=x3+1/6u; rt x6r=hround(x5+1.5u);
+lft x8r=hround u; x9=.5w; rt x10r=hround(w-1.5u);
+y4=.5[y3,y5]; top y5l=vround .77x_height; y6=.5[y5,y7];
+y7l=good.y 1/3[y5,y3]; y8=.5[y7,y9]; bot y9r=-o; y10=bar_height;
+pos12(hair,0); pos13(curve,0); pos14(hair,0); pos15(vair,90); pos16(curve,90);
+rt x12r=rt x13r=hround(w-2u); lft x14l=hround(.5w+.5u);
+x15=x16=rt x14r+u;
+y12=y13=h-.5curve; y14=.5[bar_height,x_height];
+bot y15l=bot y16l=vround y10;
+numeric theta; theta=angle((z12-z14)xscaled 2);
+pos11(hair,theta); x11=w-4u; y11=.5[y13,y16];
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & pulled_arc.e(7,8) & pulled_arc.e(8,9)
+ & {{interim superness:=more_super; pulled_arc.e(9,10)}}
+ ..tension .9 and 1..{dir(theta+100)}z11e; % bowls, loop, and stem
+pos11'(hair,theta-90); z11'=z11;
+forsuffixes $=l,r: path p$;
+ p$=z12${down}..z11'${-dir theta}..{down}z14$...{right}z15$; endfor
+filldraw p.l--reverse p.r--cycle; % arms
+path q[]; q1=z13r{up}..z13l{down}..cycle;
+q2=z16l{right}..z16r{left}..cycle;
+filldraw subpath(0,ypart(p.l intersectiontimes q1)) of q1--cycle; % upper bulb
+filldraw subpath(0,ypart(p.r intersectiontimes q2)) of q2--cycle; % lower bulb
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+cmchar "Italic question mark";
+beginchar("?",9u#,asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); bot y11l=0; z10=z11; dot(10,11); % dot
+pickup fine.nib; pos1(flare,180); pos2(hair,180); pos3(vair,90);
+lft x1r=hround u; x3=.5w;
+y1-.5flare=x_height; top y3r=h+o; bulb(3,2,1); % bulb
+pos8(vair,-90); x8=.5w; bot y8r=.25[top y11r,x_height]+1;
+numeric theta; theta=90+angle(10u,y3-y8); slope:=(y3-y8)/10u;
+pos3'(vair,-90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+rt x4l=hround(w-1.5u); lft x7r=hround 1/3w;
+x4l-x4r=x7l-x7r=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,0); rt x9r=hround(2/3w+.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{down}
+ ..z5e---z6e..z7e{down} & super_arc.e(7,8)...{up}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff known spanish_query: cmchar "Spanish open italic question mark";
+beginchar(spanish_query,9u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); top y11r=h; z10=z11; dot(10,11); % dot
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,-90);
+rt x1r=hround(w-u); x3=.5w; y1+.5flare=asc_height-x_height-d;
+bot y3r=-d-o; bulb(3,2,1); % bulb
+pos8(vair,90); x8=.5w; top y8r=.25[bot y11l,y1+.5flare]-1;
+numeric theta; theta=angle(10u,y8-y3)-90; slope:=(y8-y3)/10u;
+pos3'(vair,90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+lft x4l=hround 1.5u; rt x7r=hround 2/3w;
+x4r-x4l=x7r-x7l=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,180); lft x9r=hround(1/3w-.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{up}
+ ..z5e---z6e..z7e{up} & super_arc.e(7,8)...{down}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt10.mf
new file mode 100644
index 00000000000..b445c9cafba
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt11.mf
new file mode 100644
index 00000000000..8aa86dff186
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt12.mf
new file mode 100644
index 00000000000..8a1ac2c5063
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt14.mf
new file mode 100644
index 00000000000..bd77d53b655
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt17.mf
new file mode 100644
index 00000000000..8371023f871
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt20.mf
new file mode 100644
index 00000000000..a313e42b287
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt25.mf
new file mode 100644
index 00000000000..ea3709a56e8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt5.mf
new file mode 100644
index 00000000000..fd2a5e7fe94
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt6.mf
new file mode 100644
index 00000000000..d17f7eb7777
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt7.mf
new file mode 100644
index 00000000000..8933fe35dd9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt8.mf
new file mode 100644
index 00000000000..78016ed8f52
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcitt9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt9.mf
new file mode 100644
index 00000000000..f14831b0823
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcitt9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcmacros.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcmacros.mf
new file mode 100644
index 00000000000..be0ebb2bacf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcmacros.mf
@@ -0,0 +1,133 @@
+% This is FCMACROS.MF
+% Version 1.2
+% Date 6-OCT-1996
+%
+% (c) 1991--1996 J"org Knappen
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Unternehmensberatung
+% Barbarossaring 43
+% D-55118 Mainz
+% Allemagne
+
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% The following macros are defined:
+%
+% slantswitch, mirror, flip, V_bulb, d_hook_out, v_hook_in, top_hook,
+% left_hook, separator, universal.
+%
+% Higher version of this file might contain more macros.
+%
+
+
+def slantswitch = % macro from wncyr
+slant:=-slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio
+ scaled granularity;
+enddef; %reverse slant so that mirror() will work
+
+
+def mirror (expr axis) = % macro from wncyr
+%x._qa=x._qb=axis; y._qa=h; y._qb=0; picture V; transform MIRROR;
+x._qa=x._qb=axis; y._qa=h; y._qb=-d; picture V; transform MIRROR;
+MIRROR=identity reflectedabout(z._qa,z._qb);
+V=currentpicture transformed MIRROR; currentpicture:=V;
+slantswitch;
+enddef;
+
+% flip rotates 180 degrees about the centerpoint whose suffix is passed
+def flip (suffix $) = % macro from wncyr
+picture V; transform FLIP;
+y$:=y$*aspect_ratio;
+FLIP=identity rotatedaround(z$,180) shifted(2slant*y$,0);
+V=currentpicture transformed FLIP; currentpicture:=V;
+enddef;
+
+def V_bulb(suffix $,$$)= % |pos$| is known % macro adapted from cm
+ y$$+.5cap_curve=cap_height+o; x$$+.5cap_curve=w-u;
+ numeric theta; theta=angle(4(x$-x$$),y$-y$$); pos$$(cap_curve,theta+90);
+ filldraw z$$l{dir theta}..tension atleast 1 and 1..{down}z$l
+ --z$r{up}...{-dir theta}z$$r..cycle; % bulb
+ enddef;
+
+def d_hook_out(suffix $,$$,$$$)suffix modifier= % jk, modified from cmbase
+% |y$| |x$| and |x$$$| (only) are known
+ pos$(stem,0); pos$$(vair,90);
+ x$$$:=hround(x$$$+.5hair-eps)-.5hair; pos$$$(hair,180);
+ bot y$$l=-d-oo; y$$$=y$+1/12d;
+ if skewed.modifier: x$$=x$+1.25u;
+ filldraw stroke z$e{-u,-x_height}...z$$e{right}...{up}z$$$e; % hook
+ else: x$$=x$+1.5u;
+ filldraw stroke z$e{down}...z$$e{right}
+ ...{x$$$-(x$+2.5u),x_height}z$$$e; fi enddef; % hook
+
+def v_hook_in(suffix $,$$,$$$)=% jk, based on cmbase hook_in
+% z1 and z2 are used. |x$| and |x$$$| are known
+ x$:=hround(x$-.5hair)+.5hair; pos$(hair,180);
+ pos$$(vair,90); % pos$$$() should be done outside the macro
+ y$=2/3x_height; top y$$r=x_height+oo; y$$$=3/4x_height;
+ x$$=x$$$-1.5u;
+ filldraw stroke z$e{x$$$-2.5u-x$,x_height}
+ ...z$$e{right}...{z2-z1}z$$$e;
+enddef; % hook
+
+def top_hook(suffix @,$,$$,$$$,$$$$)=% jk
+% intended for use within italics
+% x@ and rt x$$$$ are known
+x@'=x@; pos@'(stem,180); y@'=1/4[x_height,h];
+pickup fine.nib;
+pos$(stem,180);
+pos$$(vair,90); pos$$$(hair,0); pos$$$$(flare,0);
+x$=x@; y$=.8[y@',y$$]; x$$=.6[x$$$$,x$]; top y$$r=h+oo;
+y$$$=.85h;
+bulb($$,$$$,$$$$); % bulb
+filldraw stroke z$$e{left}...z$e...{down}z@'e; % join
+enddef;
+
+def left_hook(suffix $,@$,$$,$$$,@,@@)= % only z$ is known %by jk
+pickup tiny.nib;
+if not monospace:
+ if serifs:
+ pos@$(cap_band,90); pos$$(cap_band,90); pos$$$(cap_hair,180);
+ pos@(cap_band,270); pos@@(flare+(cap_stem-stem),270);
+ x$$=x$-2.5u; lft x$$$r=lft x$-5u; y$$$=.5[y@$,y@@];
+ x@$=x$; top y$$r= top y@$r=top y$; %<-- ge"andert
+ z@r=z@@r; bot y@r=y$-.4h; x@=x$$-.5u;
+ filldraw stroke z@$e--z$$e&super_arc.e($$,$$$); % link part 1
+ path_.l:=z$$$l{down}...{right}z@l;
+ filldraw path_.l--z@r{left}...{up}z$$$r--cycle; % link part 2
+ path_.r:=z@@l{left}..z@@r{right}; % near-circle
+ filldraw subpath(0,ypart(path_.r intersectiontimes path_.l)) of path_.r
+ --z@r{right}..cycle; % bulb
+ else:
+ pos@$(cap_band,90);pos$$(cap_band,90); pos$$$(cap_hair,180);
+ pos@@(cap_band,260);
+ x@$=x$; top y$$r = top y@$r= top y$; lft x$$$=lft x$-5u; y$$$=y$-.2h;
+ x$$=x$-2.5u; rt x@@l=hround x$$; bot y@@r=vround y$-4u;
+ filldraw stroke z@$e--z$$e{left}...z$$$e...z@@e; % full hook
+ fi
+else:
+ pos@$(cap_band,90);pos$$(cap_band,90); pos$$$(cap_hair,180);
+ pos@@(cap_band,260);
+ x@$=lft x$; top y$$r= top y@$r= top y$; lft x$$$=lft x$-5u; y$$$=y$-.2h;
+ x$$=x@$-2.5u; rt x@@l=hround x$$; bot y@@r=vround y$-4u;
+ filldraw stroke z@$e--z$$e{left}..{down}z$$$e; % full hook
+fi
+enddef;
+
+% Macro for the universal accent, from Yannis Haralambous greek fonts
+% changed jk
+def separator=max(1,vround(1/12x_height)) enddef;
+vardef universal(suffix $)(expr center)=
+x$1=center+.15u; x$4=center-.15u;
+y$1=y$4=x_height+1.5separator;
+x$2=x$1+.3univ_acc_breadth*(body_height-x_height);
+x$3=x$1-.3univ_acc_breadth*(body_height-x_height);
+y$3=y$2=y$1+univ_acc_breadth*(body_height-x_height);
+fill z$1--z$2--z$3--z$4--cycle;
+enddef;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcpunct.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcpunct.mf
new file mode 100644
index 00000000000..7f18a859eaa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcpunct.mf
@@ -0,0 +1,795 @@
+% This is FCPUNCT.MF
+% Version 1.3a
+% Date 12-MAR-2004
+%
+% (c) 1991--2004 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J\"org Knappen
+% Dieselstra\ss{}e 13
+% 66123 Saarbr\"ucken
+% Allemagne
+
+% joerg.knappen@uni-mainz.de
+
+% Contents:
+% punctuation and symbols common for roman and italic
+%
+% The following characters are generated without condition:
+%
+% single and double guillemets, double high-6, high-9 and low-9
+% quotes, apostrophe, reversed apostrophe, single low-9 quote, space mark,
+% compund word mark, !, " (straight quotes), #, %, (, ), *, +, , (comma),
+% - (hyphen), ., /, :, ;, <, =, >, [, \, ], ^, _, {, |, }, ~, hyphen,
+% -- (en dash), --- (em dash).
+%
+% And the following on demand, i. e. if their code is known:
+%
+% spanish_shriek, pounds, broken_vert, currency_sign, section_sign,
+% dollar ($)
+%
+% Higher versions of this file might include more characters.
+%
+% Heavily borrowed from dxpunct.mf and dxbraces by Norbert Schwarz, Bochum.
+% Heavily borrowed (directly and indirectly) from the cm fonts by DEK.
+% Some characters borrowed from R. Waldi's wasy font.
+
+cmchar "Right pointing single Guillemet";
+beginchar(oct"017",8u#,asc_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric distance,thickness;
+thickness=hround(.5[cap_curve,hair]);
+distance=hround(max(4u,thickness+1.5u));
+pos1(hair,180);
+pos2(thickness,180);
+pos3(hair,180);
+lft x1r=lft x3r=hround(1.7u+eps);
+x2l=hround(w-1.7u-eps); %
+bot y1=vair;
+% y1-y2=y3-y1; % y1-y3=spread;
+y2=.5[y1,y3]=bar_height; % math_axis;
+filldraw stroke z1e--z2e--z3e;
+%filldraw stroke (z1e--z2e--z3e) shifted (-distance,0); % diagonals
+labels(1,2,3); endchar;
+
+
+cmchar "Left pointing single Guillemet";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"016",8u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric distance,thickness;
+thickness=hround(.5[cap_curve,hair]);
+distance=hround(max(4u,thickness+1.5u));
+pos1(hair,0);
+pos2(thickness,0);
+pos3(hair,0);
+lft x2l=hround 1.7u-eps; x1=x3=w-x2;
+bot y1=vair;
+% y1-y2=y3-y1; % y1-y3=spread;
+y2=.5[y1,y3]=bar_height; % math_axis;
+filldraw stroke z1e--z2e--z3e;
+labels(1,2,3); endchar;
+
+cmchar "Left pointing Guillemets";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"023",12u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric distance,thickness;
+thickness=hround(.5[cap_curve,hair]);
+distance=hround(max(4u,thickness+1.5u));
+pos1(hair,0);
+pos2(thickness,0);
+pos3(hair,0);
+lft x2l=hround 1.7u-eps; x1=x3=w-x2-distance;
+bot y1=vair;
+% y1-y2=y3-y1; % y1-y3=spread;
+y2=.5[y1,y3]=bar_height; % math_axis;
+filldraw stroke z1e--z2e--z3e;
+filldraw stroke (z1e--z2e--z3e) shifted (distance,0); % diagonals
+labels(1,2,3); endchar;
+
+
+cmchar "Right pointing Guillemets";
+beginchar(oct"024",12u#,asc_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric distance,thickness;
+thickness=hround(.5[cap_curve,hair]);
+distance=hround(max(4u,thickness+1.5u));
+pos1(hair,180);
+pos2(thickness,180);
+pos3(hair,180);
+lft x1r=lft x3r=hround(distance+1.7u+eps);
+x2l=hround(w-1.7u-eps); % x1=x3=x2-distance;
+bot y1=vair;
+% y1-y2=y3-y1; % y1-y3=spread;
+y2=.5[y1,y3]=bar_height; % math_axis;
+filldraw stroke z1e--z2e--z3e;
+filldraw stroke (z1e--z2e--z3e) shifted (-distance,0); % diagonals
+labels(1,2,3); endchar;
+
+
+
+cmchar "Low 9 Quote";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(oct"015",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1+.5dot_diam=hround(w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Low 99 Quotes";
+beginchar(oct"022",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x2-.5dot_size=w-hround 3u; y2-.5dot_size=0;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+
+cmchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Semicolon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+iff known spanish_shriek:
+cmchar "Spanish open exclamation point";
+beginchar(spanish_shriek,5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+cmchar "High 99 Quotes";
+beginchar(oct"021",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "High 66 Quotes";
+beginchar(oct"20",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+cmchar "En dash";
+if not monospace:
+ beginchar(oct"025",9u#,x_height#,0);
+ italcorr .61803x_height#*slant+.5u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+ top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+else:
+ beginchar(oct"025",6u#,x_height#,0);
+ italcorr .5x_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+ pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+ top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+ x2=w-x1;
+fi
+ filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Em dash";
+if not monospace:
+ beginchar(oct"026",18u#,x_height#,0);
+ italcorr .61803x_height#*slant+.5u#;
+ adjust_fit(letter_fit#,letter_fit#);
+ pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+ top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+else:
+ beginchar(oct"026",6u#,x_height#,0);
+ italcorr .5x_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+ pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+ top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+ x2=w-x1;
+fi
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Hash mark (number sign)";
+if monospace: compute_spread(.6x_height#,.7x_height#);
+else: compute_spread(.45x_height#,.55x_height#); fi
+beginchar("#",15u#,asc_height#,asc_depth#);
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+adjust_fit(0,0);
+pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); endchar;
+
+cmchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "At sign";
+beginchar("@",14u#,asc_height#,0);
+italcorr .7asc_height#*slant-.5u#;
+adjust_fit(0,if hefty or monospace:-2u# else: 0 fi);
+pickup fine.nib; pos0(fudged.hair,0); pos1(vair,90);
+pos2(fudged.stem,180); pos3(vair,270);
+pos4(fudged.stem,-180); pos5(fudged.stem,-180);
+pos6(vair,-90); pos7(fudged.hair,0);
+pos8(vair,90); pos9(fudged.hair,180);
+pos10(vair,270); pos11(.5[vair,flare],360);
+x1=x3=.5[x0,x2]; y0=y2=.5[y1,y3];
+x8=x10=.5w; y7=y9=.5[y8,y10];
+lft x9r=hround u; x7=w-x9; top y8r=h+oo; bot y10r=-oo;
+top y1r=vround(.8[y10,y8]+.5vair); bot y3r=vround(.2[y10,y8]-.5vair);
+x6l=1/3[x5l,x7l]; y6=y3; y11=good.y(.1[y10,y8]-.5);
+x0=x4=x5; y4=.8[y3,y1]; y5=2/3[y7,y6];
+if hefty or monospace: lft x2r=hround(5u-.5fudged.stem);
+ rt x0r=hround(w-3u); x11r=x0r;
+else: lft x2r=hround 3.4u; x0=w-x2; x11r=x7r; fi
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % left inner bowl
+filldraw stroke super_arc.e(3,0) & super_arc.e(0,1); % right inner bowl
+filldraw stroke super_arc.e(8,9) & super_arc.e(9,10)
+ & term.e(10,11,right,1,4); % left outer bowl and terminal
+if hefty or monospace: {{interim superness:=hein_super;
+ filldraw stroke super_arc.e(0,8)}}; % link
+else: (x,y6r)=whatever[z6l,z7l]; x6r:=x;
+ filldraw stroke z4e---z5e...z6e{right}...{up}z7e
+ & super_arc.e(7,8); fi % stem and link
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Circumflex (hat)";
+beginchar(oct"136",11u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=.75[x_height,h]; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.25[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=2/3[x_height,h]; x2=.5w; bot y1=bot y3=vround x_height-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+
+
+cmchar "Tilde (squiggle)";
+beginchar(oct"176",11u#,min(asc_height#,
+ 10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Compound word mark";
+beginchar(oct"027",x_height#,0,0);
+zero_width;
+endchar;
+
+cmchar "Less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar("<",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Vertical line";
+beginchar(oct"174",5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+
+cmchar "Greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(">",14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+
+
+cmchar "Reverse slash (backslash)";
+beginchar(oct"134",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; top y1=h+eps;
+rt x2=hround(w-u)+eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+labels(1,2); endchar;
+
+cmchar "Left curly brace";
+beginchar(oct"173",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Right curly brace";
+beginchar(oct"175",9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+
+
+cmchar "Underbar";
+compute_spread((5/8+.45)*x_height#,(3/4+.55)*x_height#);
+beginchar(oct"137",14u#,0,spread#-math_axis#+.5rule_thickness#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; bot y1=bot y2=-d;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+cmchar "Hyphen";
+beginchar(oct"177",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Blank-space sign";
+beginchar(oct"040",9u#,bar_height#,.5desc_depth#);
+italcorr bar_height#*slant-.25u#;
+adjust_fit(0,0);
+numeric thin_vair#; thin_vair#=.7vair#;
+define_whole_blacker_pixels(thin_vair);
+forsuffixes $=1,2,3,4: penpos$(thin_vair,0); endfor
+penpos0(thin_vair,90); x0=.5w; y0l=vround(-d-.5thin_vair);
+x1=x2; x3=x4=w-x1; lft x1l=hround .75u;
+y1=y4=h; y2=y3=y0;
+fill z1l---z2l...(x2,y0l)---(x3,y0l)...z3r---z4r
+ ..z4l---(x3l,y0r)--(x2r,y0r)---z1r..cycle; % the stroke
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Straight double quotes";
+beginchar(oct"042",9u#,asc_height#,0);
+numeric top_width#,spread#; top_width#=if serifs: flare# else: stem# fi;
+spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+italcorr asc_height#*slant+.5top_width#+.5spread#-4u#;
+adjust_fit(0,0);
+x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ pos3(flare,0); pos4(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % left stem and bulb
+ filldraw circ_stroke z3e--z4e; % right stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; fi % right stem
+penlabels(1,2,3,4); endchar;
+
+cmchar "Zero for p mille sign";
+beginchar(oct"030",if serifs:
+ if monospace: 9u#+max(6u#,2fudge*(hair#+stem#)) else: 7u# fi else: 8u# fi,
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90);
+pos2(left_curve,180);
+pos3(vair,270);
+pos4(right_curve,360);
+bot y3r=-d;
+rt x4r=hround(.5w +2.5u );
+lft x2r=hround(.5w -2.5u ) ;
+top y1r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of lower bowl
+penlabels(1,2,3,4); endchar;
+
+
+iff known pounds:
+cmchar "Sterling sign";
+beginchar(pounds,12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9r=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff known section_sign:
+cmchar "Section sign";
+beginchar(section_sign,6.5u#+max(1.5u#,stem#),asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+numeric sstem; sstem=hround .75[hair,stem];
+pos0(stem,0); pos1(hair,0); pos2(vair,90); pos3(sstem,180); pos4(vair,270);
+pos5'(sstem,0); pos5(sstem,180);
+pos6(vair,90); pos7(sstem,0); pos8(vair,-90); pos9(hair,-180); pos10(stem,-180);
+top y2r=h+oo; bot y8r=-d-oo; y2-y1=y9-y8=(y2-y8)/8;
+y3=.52[y4,y2]; y5=.52[y4,y6]; y7=.52[y6,y8]; y5'=.52[y6,y4];
+y2-y4=y4-y6=y6-y8;
+rt x1r=hround(w-1.5u); lft x3r=hround 1.25u;
+x2=x4=x6=x8=.5w; x5=x7=w-x3; x5'=x3; x9=w-x1;
+bulb(2,1,0); bulb(8,9,10); % bulbs
+filldraw stroke z2e{left}...z3e{down}...z4e{3(x5-x3),y5-y3}
+ ...z5e{down}...{left}z6e; % upper stroke
+filldraw stroke z4e{left}...z5'e{down}...z6e{3(x7-x5'),y7-y5'}
+ ...z7e{down}...{left}z8e; % upper stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff known currency_sign:
+cmchar "currency";
+beginchar(currency_sign,
+ 1.13 min(asc_height#,9/7x_height#)+2u#,
+ min(asc_height#,9/7x_height#),0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo;
+circle_points;
+z9 = 1.30[z5,z1];
+z10 = 1.30[z7,z3];
+z11 = 1.30[z1,z5];
+z12 = 1.30[z3,z7];
+draw_circle;
+draw z1--z9;
+draw z3--z10;
+draw z5--z11;
+draw z7--z12;
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+iff known broken_vert:
+cmchar "broken vertical bar";
+beginchar(broken_vert,2u#,asc_height#,0);
+italcorr asc_height#*slant - u#;
+adjust_fit(0,0); pickup rule.nib;
+bot y1 = good.y oo; top y2 = good.y (h-oo);
+top y1' + 1.5u = bot y2'; .5[y1',y2'] = .5h;
+x1=x1'=x2=x2'=good.x .5w;
+draw z1--z1'; draw z2--z2';
+labels(1,2,1',2'); endchar;
+
+iff known dollar:
+cmchar "Dollar sign";
+beginchar(dollar,9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr10.mf
new file mode 100644
index 00000000000..c7e1b79b4de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr11.mf
new file mode 100644
index 00000000000..ff2ae686172
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr12.mf
new file mode 100644
index 00000000000..e49eb122329
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr14.mf
new file mode 100644
index 00000000000..7773122e69e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr17.mf
new file mode 100644
index 00000000000..9f94a76f75e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr20.mf
new file mode 100644
index 00000000000..6ebc8f341a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr25.mf
new file mode 100644
index 00000000000..620331f69c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr5.mf
new file mode 100644
index 00000000000..738ecc5a9d0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr6.mf
new file mode 100644
index 00000000000..e679a968f9f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr7.mf
new file mode 100644
index 00000000000..e3a04bd9f75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr8.mf
new file mode 100644
index 00000000000..11d804496ac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcr9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcr9.mf
new file mode 100644
index 00000000000..212b45b42e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcr9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcr;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcrlig.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcrlig.mf
new file mode 100644
index 00000000000..6997f7fae1c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcrlig.mf
@@ -0,0 +1,288 @@
+% This is FCRLIG.MF
+% Version 1.1
+% Date 6-OCT-1996
+%
+% (c) 1991, 1996 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Unternehmensberatung
+% Barbarossaring 43
+% D-55118 Mainz
+
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following ligatures are generated without condition:
+%
+% fi, fl, ff, ffi, ffl
+%
+% And the following on demand, i. e. if their code is known:
+%
+% fj_lig, t_esh_lig
+%
+% Higher versions of this file might include more ligatures.
+
+iff known fj_lig:
+cmchar "The ligature fj";
+beginchar(fj_lig,10u#+2letter_fit#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=-1/3d;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x12r;
+ y2+.5bulb_diam=.8[x_height,h+oo]; top y11=x_height+min(oo,serif_drop);
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(6/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u;
+ pickup tiny.nib; pos13(bulb_diam,0); pos14(bulb_diam,90);
+ x13=x11-.5; top y14r=min(2x_height,h+1); top y11=x_height;
+ if bot y14l-x_height<tiny: y14l:=min(y14r-eps,y11+2tiny); fi
+ x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+fi; % this is the ligature we're drawing
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup tiny.nib; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11; % bar will overlap upper right serif
+ sloped_serif.l(11,12,d,1/3,jut,min(oo,serif_drop)); % upper right serif
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x12,x16r]; bot y15r=-d-oo; y16-.5flare=-.88d;
+ if monospace:lft x16r=lft x1l; else: z16r=z17r; rt x17l=rt x1r; fi
+ (x,y15r)=whatever[z15l,z12l]; x15r:=max(x,.5[x16r,x15r]);
+ filldraw stroke z12e{down}...z15e{left}; bulb(15,16,17); % arc & bulb
+else: rt x4= hround 5.3u;
+ pickup fine.nib; pos12'(stem',0); z12'=z12;
+ pos16(.2[vair,stem'],-90); pos17(vair,-90);
+ lft x17r=lft x1l; bot y17r=vround 5/6(-d-oo);
+ (x,y17l)=whatever[z17r,z13]; x7l:=x;
+ z15r=z12'r; (x12'l,y15l)=whatever[z17l,z15r]; x15l=x12'l; y15=y15r;
+ x16r=.5[x17r,x15r]; x6l:=.5[x17l,x15l]; bot y16r=-d-oo;
+ filldraw stroke z12'e..{down}z15e & super_arc.e(15,16)
+ & z16e{left}..z17e; % arc & terminal
+ fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+
+penlabels(1,2,3,4,11,12,13,14,15,16,17); endchar;
+
+iff known t_esh_lig:
+cmchar "The ligature t-esh"; % from wsuipa
+beginchar(t_esh_lig,10u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(2/3w-.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(2/3w-.5u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6l=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+%cmchar "The letter esh";
+pickup tiny.nib; pos21(shaved_stem,0); pos22(shaved_stem,0);
+lft x21l=x5; x21=x22; top y21=.8h; bot y22=0;
+filldraw stroke z21e--z22e; % stem
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.5[x21,x11l]; top y10l=h+o+1;
+ pos11(hair,0); rt x11l=hround(w-.4u); y11=.84h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke pulled_super_arc.e(21,10)(.4superpull); % arc and stem
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x16r,x22]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; x17r=hround(x3+.1u); if not serifs:(x,y15r)=whatever[z15l,z2l]; fi
+ x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke pulled_super_arc.e(22,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,5,6,7,8,10,11,12,15,16,17,21,22); endchar;
+
+cmchar "The ligature ff";
+beginchar(oct"033",10.5u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-3u+.5stem');
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); pos12(bulb_diam,0);
+ rt x2r=hround(rt x11r-stem_corr); lft x12l=hround(w-.75u+.5);
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 6.25u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(w+.75u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,1.25jut); % right stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-1/3u);
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+cmchar "The ligature fi";
+beginchar(oct"034",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x12r;
+ y2+.5bulb_diam=.8[x_height,h+oo]; top y11=x_height+min(oo,serif_drop);
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(6/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u;
+ pickup tiny.nib; pos13(bulb_diam,0); pos14(bulb_diam,90);
+ x13=x11-.5; top y14r=min(2x_height,h+1); top y11=x_height;
+ if bot y14l-x_height<tiny: y14l:=min(y14r-eps,y11+2tiny); fi
+ x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+fi; % this is the ligature we're drawing
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup tiny.nib; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11; % bar will overlap upper right serif
+ sloped_serif.l(11,12,d,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "The ligature fl";
+beginchar(oct"035",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0; top y11=h;
+filldraw stroke z11e--z12e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ y2+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(11,12,d,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u; fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11;
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+cmchar "The ligature ffi";
+beginchar(oct"036",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r;
+ top y21=x_height+min(oo,serif_drop);
+ y2+.5bulb_diam=.8[x_height,h+oo]; y12=y2;
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(6/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u);
+ pickup tiny.nib; pos23(bulb_diam,0); pos24(bulb_diam,90);
+ x23=x21-.5; top y24r=min(2x_height,h+1); top y21=x_height;
+ if bot y24l-x_height<tiny: y24l:=min(y24r-eps,y21+2tiny); fi
+ x23=x24; y23=.5[y24l,y24r]; dot(23,24); fi % dot
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup tiny.nib; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x21; % bar will overlap upper right serif
+ sloped_serif.l(21,22,g,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+else: rt x4=hround(.5w+2.8u); fi
+pickup crisp.nib;
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22,23,24); endchar;
+
+cmchar "The ligature ffl";
+beginchar(oct"037",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0; top y21=h;
+filldraw stroke z21e--z22e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r-stem_corr;
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(21,22,g,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+ pickup crisp.nib; x4=x21;
+else: rt x4=hround(.5w+2.8u); fi
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcroligt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcroligt.mf
new file mode 100644
index 00000000000..a155ed6c8ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcroligt.mf
@@ -0,0 +1,188 @@
+% This is FCROLIGT.MF
+% Version 1.3b
+% Date 6-OCT-1996
+%
+% (c) 1992--1996 by J"org Knappen
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Unternehmensberatung
+% Barbarossaring 43
+% D-55118 Mainz
+
+% knappen@vkpmzd.kph.uni-mainz.de
+
+%
+% Ligature Table for fc roman fonts
+%
+
+ligtable ">":">" =: oct"023"; % Guillemets
+ligtable "<":"<" =: oct"024";
+ligtable "`":"`" =: oct"020"; % Quotation marks
+ligtable "'":"'" =: oct"021";
+ligtable ",":"," =: oct"022";
+ligtable "!":"`" =: spanish_shriek; % Spanish punctuation
+ligtable "?":"`" =: spanish_query;
+ligtable "-":"-" =: oct"025", % n-dash
+ 127=: 127; % "-" "hyphenchar" -> "hyphenchar"
+ligtable oct"025":"-" =: oct"026"; % m-dash
+
+numeric itc#; itc#=max(0,flare#-1/4u#);
+ligtable
+ "f": "i"=:oct"034",
+ "f"=:oct"033",
+ "l"=:oct"035",
+ "j"=:fj_lig,
+ "'" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ oct"033": % ff
+ "i"=:oct"036",
+ "l"=:oct"037",
+ "'" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+
+ligtable long_f: esh: t_esh_lig:
+ "'" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+
+def lig_o_table (expr k) =
+ "o" kern k, open_o kern k, open_o_tilde kern k,
+ o_grave kern k, o_dot kern k, o_hat kern k,
+ o_tilde kern k, o_umlaut kern k, oe_lig kern k,
+ crossed_o kern k, o_dotu kern k, o_uline kern k,
+ o_bar kern k, o_hachek kern k
+enddef;
+%
+def lig_a_table (expr k) =
+ "a" kern k, a_tilde kern k, ae_lig kern k
+enddef;
+%
+def lig_i_table (expr k) =
+ "i" kern k, oct"031" kern k, i_tilde kern k, latin_iota kern k,
+ i_dotu kern k
+enddef;
+def lig_e_table (expr k)=
+ "e" kern k, e_hachek kern k, e_dot kern k, open_e kern k,
+ reversed_e kern k, e_dotu kern k, open_e_tilde kern k,
+ e_grave kern k, e_acute kern k, e_hat kern k,
+ e_umlaut kern k, e_uline kern k, e_bar kern k,
+ e_tilde kern k
+enddef;
+%
+def lig_u_table (expr k)=
+ "u" kern k, u_dotu kern k, u_tilde kern k, var_u kern k
+enddef;
+%
+def lig_O_table (expr k) =
+ "O" kern k, open_o kern k, open_O_tilde kern k,
+ O_grave kern k, O_dot kern k, O_hat kern k,
+ O_tilde kern k, O_umlaut kern k, OE_lig kern k,
+ crossed_O kern k, O_dotu kern k, O_uline kern k,
+ O_bar kern k, O_hachek kern k
+enddef;
+%
+%
+%
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+ligtable "k": "W" kern kk#, "V" kern kk#, % kW, kV
+ "v": "w": hooktop_k:
+ lig_a_table(-u#), lig_e_table(k#),
+ lig_o_table(k#), "c" kern k#, c_cedilla kern k#,
+ hooktop_c kern k#;
+
+ligtable "y": ipa_gamma:
+ lig_a_table(k#), lig_o_table(k#), lig_e_table(k#),
+ "c" kern k#, c_cedilla kern k#, hooktop_c kern k#,
+ hooktop_y: "." kern kk#, "," kern kk#;
+
+ligtable "m": "W" kern kk#, "V" kern kk#, % mW, mV
+ "n": enj: "h": crossed_h: n_acute: m_acute: n_dot: n_uline: n_tilde:
+ "y" kern k#, hooktop_y kern k#, ipa_gamma kern k#,
+ eng: lig_u_table(k#), "v" kern k#, "w" kern k#, "b" kern k#,
+ t kern k#;
+
+ligtable "c": "h" kern k#, "k" kern k#;
+
+ligtable "o": "p": "b": open_o: reversed_e: open_o_tilde: o_grave: o_dot:
+ o_hat: o_tilde: o_umlaut: crossed_o: o_dotu: o_uline:
+ o_bar: o_hachek: hooktop_p:
+ lig_e_table(-k#), lig_o_table(-k#), "q" kern -k#, "c" kern -k#,
+ c_cedilla kern -k#, hooktop_c kern -k#, "d" kern -k#,
+ crossed_d kern -k#, hooktop_d kern -k#, tailed_d kern -k#,
+ "x" kern k#, "y" kern k#, hooktop_y kern k#, "v" kern k#,
+ "w" kern k#, ipa_gamma kern k#, "j" kern u#;
+
+ligtable "a": a_tilde:
+ "j" kern u#, "v" kern k#, "w" kern k#, "y" kern k#,
+ hooktop_y kern k#, ipa_gamma kern k#;
+
+ligtable "t": esh=: t_esh_lig,
+ sami_t: hooktop_t: "y" kern k#;
+
+ligtable "u": u_dotu: u_tilde: "w" kern k#;
+
+ligtable "g": "j" kern -k#;
+
+ligtable "e": "V" kern kk#; % eV
+
+ligtable hooktop_d:
+ "a" kern kk#, "e" kern kk#, latin_iota kern kk#,
+ oct"031" kern kk#, open_e kern kk#, reversed_e kern kk#,
+ "o" kern kk#, open_o kern kk#, "u" kern kk#, var_u kern kk#,
+ ae_lig kern kk#, oe_lig kern kk#,
+ "." kern kk#, "," kern kk#;
+ligtable tailed_d: lig_a_table(kk#), lig_e_table(kk#), lig_i_table(kk#),
+ lig_o_table(kk#), lig_u_table(kk#), "." kern kk#;
+
+ligtable "F": long_F: "V": "W": "T": hooktop_T: "Y":
+ "a" kern kk#, "e" kern kk#, open_e kern kk#,
+ reversed_e kern kk#, oct"031" kern kk#, latin_iota kern kk#,
+ "o" kern kk#, open_o kern kk#, "u" kern kk#, var_u kern kk#,
+ ae_lig kern kk#, oe_lig kern kk#, "r" kern kk#,
+ "y" kern kk#,
+ "A" kern kkk#, "." kern kk#,
+ "," kern kk#;
+
+ligtable "P": hooktop_P:
+ "a" kern k#, "e" kern k#, open_e kern k#,
+ reversed_e kern k#,
+ "o" kern k#, open_o kern k#,
+ ae_lig kern k#, oe_lig kern k#,
+ "A" kern kk#, "." kern kk#,
+ "," kern kk#;
+
+
+ligtable "K": "X": ipa_Gamma:
+ lig_O_table(k#), "C" kern k#, "G" kern k#, "Q" kern k#,
+ hooktop_C kern k#, C_cedilla kern k#;
+
+ligtable "O": "D": Edh: hooktop_D: open_O: open_O_tilde: O_grave: O_dot:
+ O_hat: O_tilde: O_umlaut: crossed_O: O_dotu: O_bar: O_hachek:
+ "X" kern k#, ipa_Gamma kern k#, "W" kern k#, "V" kern k#,
+ "Y" kern k#, hooktop_Y kern k#, "A" kern k#, A_tilde kern k#,
+ AE_lig kern k#;
+
+ligtable "A": A_tilde: "R": latin_Iota:
+ "t" kern k#, sami_t kern k#, hooktop_t kern k#, "C" kern k#,
+ hooktop_C kern k#, C_cedilla kern k#, "G" kern k#,
+ lig_O_table(k#), "Q" kern k#, "U" kern k#, var_U kern k#,
+ "T" kern kk#, long_T kern kk#, "Y" kern kk#,
+ hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
+
+ligtable "L": "T" kern kk#, long_T kern kk#, "Y" kern kk#,
+ hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
+
+ligtable "I": "I" kern -k#;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcroman.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcroman.mf
new file mode 100644
index 00000000000..6a5cc0bc3a1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcroman.mf
@@ -0,0 +1,68 @@
+% This is FCROMAN.MF
+% Driver File for the FC-Fonts
+% Version 1.2
+% Date 5-MAR-1998
+%
+% (c) Copyright 1991--1998 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Barbarossaring 43
+% D-55118 Mainz
+
+mode_setup;
+
+font_setup;
+input fcmacros;
+input fccoding;
+input romand; % numbers from computer modern
+input fcpunct;
+input fcaccent;
+input fcrlig;
+input fcrompct;
+input uppera;
+input upperbcd;
+input uppere;
+input upperfgh;
+input upperij;
+input upperklm;
+input uppern;
+input uppero;
+input upperpqr;
+input upperst;
+input upperuvw;
+input upperxyz;
+input lowera;
+input lowerbcd;
+input lowere;
+input lowerfgh;
+input lowerij;
+input lowerklm;
+input lowern;
+input lowero;
+input lowerpqr;
+input lowerst;
+input loweruvw;
+tracingstats:=1;
+input lowerxyz;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+if monospace:
+ input fcttligt;
+else:
+ if serifs:
+ input fcroligt;
+ else:
+ input fcsfligt;
+ fi
+fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcrompct.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcrompct.mf
new file mode 100644
index 00000000000..c6b77fa8e85
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcrompct.mf
@@ -0,0 +1,137 @@
+% This is FCROMPCT.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+%
+% Content: some special roman characters (different from italic variants)
+%
+% $, &, ?, spanish ?. ?' is only generated if spanish_query is known.
+%
+
+cmchar "Dollar sign";
+beginchar("$",9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o;
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(fudged.hair,0);
+ rt x0r+jut=hround(w-.9u); top y0=x_height;
+ pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)];
+ y1=max(y0-1.5bracket-.2x_height,2/3x_height);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u);
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(vair,theta); y5=.5h;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=w-3.5u; bot y10l=-o;
+pos9(fudged.stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height;
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[slab,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .07bar_height-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff known spanish_query:
+cmchar "Spanish open question mark";
+beginchar(spanish_query,8.5u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); top y8r=h; z7=z8; dot(7,8); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(top_width,180); pos6(top_width,180);
+x2=x4=x5=x6=x7; lft x3r=hround u; top y6=.25[bot y8l,h-x_height]-1;
+bot y2r=-d-oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],-70);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,bot y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcscligt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcscligt.mf
new file mode 100644
index 00000000000..e5cc576128d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcscligt.mf
@@ -0,0 +1,30 @@
+% This is FCSCLIGT.MF
+% Version 1.2
+% Date 15-NOV-1994
+%
+% (c) 1992, 1994 by J"org Knappen
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D 55099 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+%
+% Ligature Table for fc caps and small caps fonts
+%
+
+ligtable ">":">" =: oct"023"; % Guillemets
+ligtable "<":"<" =: oct"024";
+ligtable "`":"`" =: oct"020"; % Quotation marks
+ligtable "'":"'" =: oct"021";
+ligtable ",":"," =: oct"022";
+ligtable "!":"`" =: spanish_shriek; % Spanish punctuation
+ligtable "?":"`" =: spanish_query;
+ligtable "-":"-" =: oct"025", % n-dash
+ 127 =: 127; % "-""hyphenchar" -> "hyphenchar"
+ligtable oct"025":"-" =: oct"026"; % m-dash
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsfligt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsfligt.mf
new file mode 100644
index 00000000000..2eb2dac99c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsfligt.mf
@@ -0,0 +1,184 @@
+% This is FCSFLIGT.MF
+% Version 1.3
+% Date 6-OCT-1996
+%
+% (c) 1992--1996 by J"org Knappen
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Unternehmensberatung
+% Barbarossaring 43
+% D-55118 Mainz
+% Allemagne
+
+% knappen@vkpmzd.kph.uni-mainz.de
+
+%
+% Ligature Table for fc sans serif fonts
+%
+
+ligtable ">":">" =: oct"023"; % Guillemets
+ligtable "<":"<" =: oct"024";
+ligtable "`":"`" =: oct"020"; % Quotation marks
+ligtable "'":"'" =: oct"021";
+ligtable ",":"," =: oct"022";
+ligtable "!":"`" =: spanish_shriek; % Spanish punctuation
+ligtable "?":"`" =: spanish_query;
+ligtable "-":"-" =: oct"025", % n-dash
+ 127 =: 127; % "-""hyphenchar" -> "hyphenchar"
+ligtable oct"025":"-" =: oct"026"; % m-dash
+
+numeric itc#; itc#=1.25u#;
+ligtable
+ "f": "i"=:oct"034",
+ "f"=:oct"033",
+ "l"=:oct"035",
+ "j"=:fj_lig,
+ "'" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ oct"033": % ff
+ "i"=:oct"036",
+ "l"=:oct"037",
+ "'" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+
+ligtable long_f: esh: t_esh_lig:
+ "'" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+
+
+def lig_o_table (expr k) =
+ "o" kern k, open_o kern k, open_o_tilde kern k,
+ o_grave kern k, o_dot kern k, o_hat kern k,
+ o_tilde kern k, o_umlaut kern k, oe_lig kern k,
+ crossed_o kern k, o_dotu kern k, o_uline kern k,
+ o_bar kern k, o_hachek kern k
+enddef;
+%
+def lig_a_table (expr k) =
+ "a" kern k, a_tilde kern k, ae_lig kern k
+enddef;
+%
+def lig_i_table (expr k) =
+ "i" kern k, oct"031" kern k, i_tilde kern k, latin_iota kern k,
+ i_dotu kern k
+enddef;
+def lig_e_table (expr k)=
+ "e" kern k, e_hachek kern k, e_dot kern k, open_e kern k,
+ reversed_e kern k, e_dotu kern k, open_e_tilde kern k,
+ e_grave kern k, e_acute kern k, e_hat kern k,
+ e_umlaut kern k, e_uline kern k, e_bar kern k,
+ e_tilde kern k
+enddef;
+%
+def lig_u_table (expr k)=
+ "u" kern k, u_dotu kern k, u_tilde kern k, var_u kern k
+enddef;
+%
+def lig_O_table (expr k) =
+ "O" kern k, open_o kern k, open_O_tilde kern k,
+ O_grave kern k, O_dot kern k, O_hat kern k,
+ O_tilde kern k, O_umlaut kern k, OE_lig kern k,
+ crossed_O kern k, O_dotu kern k, O_uline kern k,
+ O_bar kern k, O_hachek kern k
+enddef;
+%
+%
+%
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+ligtable "k": "W" kern kk#, "V" kern kk#, % kW, kV
+ "v": "w": hooktop_k:
+ lig_a_table(-u#), lig_e_table(k#),
+ lig_o_table(k#), "c" kern k#, c_cedilla kern k#,
+ hooktop_c kern k#;
+
+ligtable "y": ipa_gamma:
+ lig_a_table(k#), lig_o_table(k#), lig_e_table(k#),
+ "c" kern k#, c_cedilla kern k#, hooktop_c kern k#,
+ hooktop_y: "." kern kk#, "," kern kk#;
+
+ligtable "o": "p": "b": open_o: reversed_e: open_o_tilde: o_grave: o_dot:
+ o_hat: o_tilde: o_umlaut: crossed_o: o_dotu: o_uline:
+ o_bar: o_hachek: hooktop_p:
+ lig_e_table(-k#), lig_o_table(-k#), "q" kern -k#, "c" kern -k#,
+ c_cedilla kern -k#, hooktop_c kern -k#, "d" kern -k#,
+ crossed_d kern -k#, hooktop_d kern -k#, tailed_d kern -k#,
+ "x" kern k#, "y" kern k#, hooktop_y kern k#, "v" kern k#,
+ "w" kern k#, ipa_gamma kern k#, "r" kern k#;
+
+ligtable "a": a_tilde:
+ "v" kern k#, "w" kern k#, "y" kern k#, "r" kern k#,
+ hooktop_y kern k#, ipa_gamma kern k#;
+
+ligtable "t": esh=: t_esh_lig,
+ sami_t: hooktop_t: "y" kern k#;
+
+ligtable "u": u_dotu: u_tilde: "w" kern k#;
+
+ligtable "g": "j" kern -k#;
+
+ligtable "e": "V" kern kk#; % eV
+
+ligtable hooktop_d:
+ "a" kern k#, "e" kern k#, latin_iota kern k#,
+ oct"031" kern k#, open_e kern k#, reversed_e kern k#,
+ "o" kern k#, open_o kern k#, "u" kern k#, var_u kern k#,
+ ae_lig kern k#, oe_lig kern k#,
+ "." kern kk#, "," kern kk#;
+
+ligtable tailed_d: lig_a_table(k#), lig_e_table(k#), lig_i_table(k#),
+ lig_o_table(k#), lig_u_table(k#), "." kern kk#;
+
+ligtable "F": long_F: "V": "W": "T": hooktop_T: "Y":
+ "a" kern k#, "e" kern k#, open_e kern k#,
+ reversed_e kern k#, oct"031" kern k#, latin_iota kern k#,
+ "o" kern k#, open_o kern k#, "u" kern k#, var_u kern k#,
+ ae_lig kern k#, oe_lig kern k#, "r" kern k#,
+ "y" kern k#,
+ "A" kern kk#, "." kern k#,
+ "," kern k#;
+
+ligtable "P": hooktop_P:
+ "a" kern k#, "e" kern k#, open_e kern k#,
+ reversed_e kern k#,
+ "o" kern k#, open_o kern k#,
+ ae_lig kern k#, oe_lig kern k#,
+ "A" kern kk#, "." kern k#,
+ "," kern k#;
+
+
+ligtable "K": "X": ipa_Gamma:
+ lig_O_table(k#), "C" kern k#, "G" kern k#, "Q" kern k#,
+ hooktop_C kern k#, C_cedilla kern k#;
+
+ligtable "O": "D": Edh: hooktop_D: open_O: open_O_tilde: O_grave: O_dot:
+ O_hat: O_tilde: O_umlaut: crossed_O: O_dotu: O_bar: O_hachek:
+ "X" kern k#, ipa_Gamma kern k#, "W" kern k#, "V" kern k#,
+ "Y" kern k#, hooktop_Y kern k#, "A" kern k#, A_tilde kern k#,
+ AE_lig kern k#;
+
+ligtable "A": A_tilde: latin_Iota:
+ "t" kern k#, sami_t kern k#, hooktop_t kern k#, "C" kern k#,
+ hooktop_C kern k#, C_cedilla kern k#, "G" kern k#,
+ lig_O_table(k#), "Q" kern k#, "U" kern k#, var_U kern k#,
+ "T" kern kk#, long_T kern kk#, "Y" kern kk#,
+ hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
+
+ligtable "L": "T" kern kk#, long_T kern kk#, "Y" kern kk#,
+ hooktop_Y kern kk#, "V" kern kkk#, "W" kern kkk#;
+
+ligtable "I": "I" kern -k#;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx10.mf
new file mode 100644
index 00000000000..de87fe4739a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx11.mf
new file mode 100644
index 00000000000..56d6851c6d4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx12.mf
new file mode 100644
index 00000000000..4a3cc799e10
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx14.mf
new file mode 100644
index 00000000000..24f9396e3df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx17.mf
new file mode 100644
index 00000000000..f2be02d82e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx20.mf
new file mode 100644
index 00000000000..83849ab982e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx25.mf
new file mode 100644
index 00000000000..80da2c4bde6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx5.mf
new file mode 100644
index 00000000000..23d6fd8e823
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx6.mf
new file mode 100644
index 00000000000..8201b9775ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx7.mf
new file mode 100644
index 00000000000..3d30fe57f75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx8.mf
new file mode 100644
index 00000000000..a6548571304
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx9.mf
new file mode 100644
index 00000000000..dbf56c8d590
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsibx9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcsibx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt10.mf
new file mode 100644
index 00000000000..88815f26dea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt11.mf
new file mode 100644
index 00000000000..20f635775ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt12.mf
new file mode 100644
index 00000000000..6a2b79c7c58
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt14.mf
new file mode 100644
index 00000000000..19801a0163a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt17.mf
new file mode 100644
index 00000000000..7cc293711ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt20.mf
new file mode 100644
index 00000000000..0174c833aa6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt25.mf
new file mode 100644
index 00000000000..5fdb68214af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt5.mf
new file mode 100644
index 00000000000..25846e9fc33
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt6.mf
new file mode 100644
index 00000000000..b3bddf30340
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt7.mf
new file mode 100644
index 00000000000..4054948fdc5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt8.mf
new file mode 100644
index 00000000000..f3f266c2ef6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt9.mf
new file mode 100644
index 00000000000..6dd7653997b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsitt9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcsitt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl10.mf
new file mode 100644
index 00000000000..b91c91ca0d4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl11.mf
new file mode 100644
index 00000000000..5d4ec9ba5a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl12.mf
new file mode 100644
index 00000000000..eb62d9ba931
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl14.mf
new file mode 100644
index 00000000000..1009fd6cfd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl17.mf
new file mode 100644
index 00000000000..e2ac8b80145
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl20.mf
new file mode 100644
index 00000000000..da6fa6183e9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl25.mf
new file mode 100644
index 00000000000..515b54740ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl5.mf
new file mode 100644
index 00000000000..9c2cd27b779
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl6.mf
new file mode 100644
index 00000000000..09860d12233
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl7.mf
new file mode 100644
index 00000000000..63098beaafc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl8.mf
new file mode 100644
index 00000000000..7bd0935060e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsl9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl9.mf
new file mode 100644
index 00000000000..d51b3cc5398
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsl9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcsl;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss10.mf
new file mode 100644
index 00000000000..1cb69788c14
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss11.mf
new file mode 100644
index 00000000000..c72233bdce1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss12.mf
new file mode 100644
index 00000000000..b19b1eb65c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss14.mf
new file mode 100644
index 00000000000..b7a4d1888ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss17.mf
new file mode 100644
index 00000000000..d5cd565470b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss20.mf
new file mode 100644
index 00000000000..30b335e0368
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss25.mf
new file mode 100644
index 00000000000..5535118a48e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss5.mf
new file mode 100644
index 00000000000..6a5f6a5032c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss6.mf
new file mode 100644
index 00000000000..2e650d3ff54
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss7.mf
new file mode 100644
index 00000000000..a81d09d9c77
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss8.mf
new file mode 100644
index 00000000000..bc3fb3536ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcss9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcss9.mf
new file mode 100644
index 00000000000..b2277fb142c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcss9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcss;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx10.mf
new file mode 100644
index 00000000000..9e616f9f8ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx11.mf
new file mode 100644
index 00000000000..5452335cbf4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx12.mf
new file mode 100644
index 00000000000..52d1cc89e71
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx14.mf
new file mode 100644
index 00000000000..fcc1b6d8a1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx17.mf
new file mode 100644
index 00000000000..fb27cc134a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx20.mf
new file mode 100644
index 00000000000..c7141d9ede1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx25.mf
new file mode 100644
index 00000000000..1054da063be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx5.mf
new file mode 100644
index 00000000000..9d14311ddd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx6.mf
new file mode 100644
index 00000000000..260dae1f761
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx7.mf
new file mode 100644
index 00000000000..1b234fe35ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx8.mf
new file mode 100644
index 00000000000..626c0db3272
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx9.mf
new file mode 100644
index 00000000000..d6e9ea8ba3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssbx9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcssbx;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi10.mf
new file mode 100644
index 00000000000..810f0f09336
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi11.mf
new file mode 100644
index 00000000000..a768856b29c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi12.mf
new file mode 100644
index 00000000000..b17335fef36
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi14.mf
new file mode 100644
index 00000000000..aca5fa2ffbb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi17.mf
new file mode 100644
index 00000000000..2033330a585
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi20.mf
new file mode 100644
index 00000000000..acb9a42cdbe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi25.mf
new file mode 100644
index 00000000000..acbb5f49a84
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi5.mf
new file mode 100644
index 00000000000..662dbd06f6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi6.mf
new file mode 100644
index 00000000000..3909ce43ddd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi7.mf
new file mode 100644
index 00000000000..e054b77a15a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi8.mf
new file mode 100644
index 00000000000..b8f0e67444b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcssi9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi9.mf
new file mode 100644
index 00000000000..b4257abd969
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcssi9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcssi;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt10.mf
new file mode 100644
index 00000000000..4047e2473c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt11.mf
new file mode 100644
index 00000000000..ee3984a814f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt12.mf
new file mode 100644
index 00000000000..ae16ef1487f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt14.mf
new file mode 100644
index 00000000000..7369e09fa4e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt17.mf
new file mode 100644
index 00000000000..68540773a29
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt20.mf
new file mode 100644
index 00000000000..44d7714d035
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt25.mf
new file mode 100644
index 00000000000..45648f65745
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt5.mf
new file mode 100644
index 00000000000..7342dbadf36
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt6.mf
new file mode 100644
index 00000000000..fed8619d88c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt7.mf
new file mode 100644
index 00000000000..fed6e1659a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt8.mf
new file mode 100644
index 00000000000..45498cfb9b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt9.mf
new file mode 100644
index 00000000000..a6ca879074a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcsstt9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcsstt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt10.mf
new file mode 100644
index 00000000000..bb6ee4d91ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt11.mf
new file mode 100644
index 00000000000..360e490622c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt12.mf
new file mode 100644
index 00000000000..467f2d36351
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt14.mf
new file mode 100644
index 00000000000..3f79af317da
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt17.mf
new file mode 100644
index 00000000000..7ac151b0667
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt20.mf
new file mode 100644
index 00000000000..3c79682f65f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt25.mf
new file mode 100644
index 00000000000..15d7a2dc315
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt5.mf
new file mode 100644
index 00000000000..72b10dbc486
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt6.mf
new file mode 100644
index 00000000000..a6ebcccce6b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt7.mf
new file mode 100644
index 00000000000..1a38cc7497c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt8.mf
new file mode 100644
index 00000000000..3a589d49f1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fctt9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fctt9.mf
new file mode 100644
index 00000000000..a1e41767a4c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fctt9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fctt;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcttligt.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcttligt.mf
new file mode 100644
index 00000000000..dbdb5bf319a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcttligt.mf
@@ -0,0 +1,28 @@
+% This is FCTTLIGT.MF
+% Version 1.2
+% Date 15-NOV-1994
+%
+% (c) 1994 by J"org Knappen
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D 55099 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+%
+% Ligature Table for fc typewriter fonts
+%
+
+ligtable ">":">" =: oct"023"; % Guillemets
+ligtable "<":"<" =: oct"024";
+ligtable "`":"`" =: oct"020"; % Quotation marks
+ligtable "'":"'" =: oct"021";
+ligtable ",":"," =: oct"022";
+ligtable "!":"`" =: spanish_shriek; % Spanish punctuation
+ligtable "?":"`" =: spanish_query;
+ligtable "-":"-" =: oct"025",% "-""-" ligates to "-", but "-""-""-" gives "-""-"
+ 127 =: 127;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu10.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu10.mf
new file mode 100644
index 00000000000..af7f6e177cc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu10.mf
@@ -0,0 +1,2 @@
+design_size=10;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu11.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu11.mf
new file mode 100644
index 00000000000..f4d2033984d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu11.mf
@@ -0,0 +1,2 @@
+design_size=10.95;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu12.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu12.mf
new file mode 100644
index 00000000000..ff6155bb1cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu12.mf
@@ -0,0 +1,2 @@
+design_size=12;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu14.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu14.mf
new file mode 100644
index 00000000000..29bbec4bf98
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu14.mf
@@ -0,0 +1,2 @@
+design_size=14.4;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu17.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu17.mf
new file mode 100644
index 00000000000..7d06f221621
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu17.mf
@@ -0,0 +1,2 @@
+design_size=17.28;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu20.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu20.mf
new file mode 100644
index 00000000000..1895def3b3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu20.mf
@@ -0,0 +1,2 @@
+design_size=20.74;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu25.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu25.mf
new file mode 100644
index 00000000000..44b4e8ed8e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu25.mf
@@ -0,0 +1,2 @@
+design_size=24.88;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu5.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu5.mf
new file mode 100644
index 00000000000..ad438e93f0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu5.mf
@@ -0,0 +1,2 @@
+design_size=5;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu6.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu6.mf
new file mode 100644
index 00000000000..7b82a809c47
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu6.mf
@@ -0,0 +1,2 @@
+design_size=6;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu7.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu7.mf
new file mode 100644
index 00000000000..ae3894abc21
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu7.mf
@@ -0,0 +1,2 @@
+design_size=7;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu8.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu8.mf
new file mode 100644
index 00000000000..e64a5a080e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu8.mf
@@ -0,0 +1,2 @@
+design_size=8;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/fcu9.mf b/Master/texmf-dist/fonts/source/jknappen/fc/fcu9.mf
new file mode 100644
index 00000000000..cbdb46760bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/fcu9.mf
@@ -0,0 +1,2 @@
+design_size=9;
+input b-fcu;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/itala.mf b/Master/texmf-dist/fonts/source/jknappen/fc/itala.mf
new file mode 100644
index 00000000000..321db8a0b19
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/itala.mf
@@ -0,0 +1,164 @@
+% This is ITALA.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% a
+%
+% And the following on demand, i. e. if their code is known:
+%
+% a_grave, a_acute, a_hat, a_tilde, a_umlaut, ae_lig (\ae)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter a";
+beginchar("a",9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff known a_umlaut:
+cmchar "The letter a with trema";
+beginchar(a_umlaut,9u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(flare,0); pos2(flare,90);
+x1=x2=good.x(.5w-1.75u); top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(flare,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(.5w+1.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known a_tilde:
+cmchar "The letter a with tilde";
+beginchar(a_tilde,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/6w);rt x4l=hround(3/4w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/6w);rt x5l=hround(5/6w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known a_grave:
+cmchar "The letter a with gravis";
+beginchar(a_grave,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known a_acute:
+cmchar "The letter a with acute";
+beginchar(a_acute,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known a_hat:
+cmchar "The letter a with circumflex";
+beginchar(a_hat,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+savedpicture:=nullpicture;
+
+iff known ae_lig:
+cmchar "Italic ligature ae";
+beginchar(ae_lig,13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos7(light_stem,0); pos8(light_stem,0);
+x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
+pos7'(vair,-225); pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x12=.5[x11,x3];
+y11=.3[y12,y7]; bot y12r=-oo;
+filldraw stroke z7'e{3(x11-x7),y11-y7}...pulled_arc.e(11,12)
+ & pulled_arc.e(12,3'); % bowl of a
+filldraw z7l---z8l..z8r---z7r..cycle; % stem
+penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
+
+ endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italbcd.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italbcd.mf
new file mode 100644
index 00000000000..3d8efc0b698
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italbcd.mf
@@ -0,0 +1,226 @@
+% This is ITALBCD.MF
+% Version 1.1a
+% Date 13-MAR-1992
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% b, c, d
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_b, c_cedilla, hooktop_c, hooktop_d, tailed_d, crossed_d, edh
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter b";
+beginchar("b",8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+iff known hooktop_b:
+cmchar "Italic letter hooktop b"; % based on cm b
+beginchar(hooktop_b,8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); y2=.5x_height;
+rt x23=hround(w-2.5u);
+top_hook(1,20,21,22,23); % hooktop
+y1=y1';
+filldraw stroke z1e--z2e; % stem
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,20,21,22,23); endchar;
+
+cmchar "Italic letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+iff known c_cedilla:
+cmchar"The letter c with cedilla";
+beginchar(c_cedilla,8u#,x_height#,0.875desc_depth#);
+italcorr x_height#*slant-u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+x1=.5w+u;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); endchar;
+
+iff known hooktop_c:
+cmchar"The letter hooktop c";
+beginchar(hooktop_c,8u#,asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+%if serifs:
+pos0(stem,180); pos1(stem,180); pos2(vair,90);
+pos3(hair,0); pos4(flare,0);
+x0=x1=hround.5(w+u); y1=.8h; y0=x_height;
+x2=.4[x1,x3]; top y2r=h+oo;
+rt x3r=hround(w-.7u); y4=.85h;
+filldraw z2r{left}...{down}z1r--z0r--z0l--z1l{up}...{right}z2l--cycle;
+bulb(2,3,4);
+%else:
+%fi
+penlabels(0,1,2,3,4); endchar;
+
+savedpicture:=nullpicture;
+
+cmchar "Italic letter d";
+beginchar("d",9u#,asc_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff known crossed_d:
+cmchar "Italic letter crossed d";
+beginchar(crossed_d,9u#,asc_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+pickup crisp.nib; pos15(bar,90); pos16(bar,90);
+top y15r=.52[x_height,h]=top y16r;
+lft x15=hround(w-.25u); lft x16=.23[x2r,x1];
+filldraw stroke z15e--z16e; % crossbar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,15,16); endchar;
+
+iff known tailed_d:
+cmchar "Italic letter d with tail";
+beginchar(tailed_d,9u#,asc_height#,desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; y5=-1/3d; d_hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff known hooktop_d:
+cmchar "Italic letter hooktop d";
+beginchar(hooktop_d,9u#,asc_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+rt x23=hround(w+.25u);
+top_hook(4,20,21,22,23); % hooktop
+pickup tiny.nib; pos5'(stem,0); pos4''(stem,0);
+z4''=z4';
+z5'=z5; filldraw stroke z4''e--z5'e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,20,21,22,23); endchar;
+
+
+iff known edh:
+cmchar "Italic letter edh"; % from im
+beginchar(edh,9u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=vround(x_height)+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+y4' = y4 ; x4'l = x4l ; pos4'(hair,360) ;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) -- pulled_arc.e(4',1); % bowl
+pickup crisp.nib ;
+pos5(.5[hair,vair],40) ; z4'' = z4 ; pos4''(curve,360) ;
+x5 = 3u ; top y5r = h ;
+filldraw stroke z5e .. tension 1.1 and 0.9 .. z4''e{down} ;
+path p ;
+p = z5 .. tension 1.1 and 0.9 .. z4{down} ;
+z6 = ((0,.6[x_height,asc_height]) -- (w,.5[x_height,asc_height]))
+ intersectionpoint p ;
+pos6'(.5[vair,hair],-60) ; pos 6''(.5[vair,hair],-60) ;
+top y6''l = vround .95h ; z6'' = z6 + whatever*dir30;
+z6 = .5[z6',z6''] ; filldraw stroke z6'e -- z6''e ;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/itale.mf b/Master/texmf-dist/fonts/source/jknappen/fc/itale.mf
new file mode 100644
index 00000000000..5a222d66daa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/itale.mf
@@ -0,0 +1,310 @@
+% This is ITALE.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% e
+%
+% And the following on demand, i. e. if their code is known:
+%
+% e_grave, e_acute, e_hat, e_hachek, e_dot, e_umlaut, e_dotu, e_bar,
+% e_uline, e_tilde, open_e, open_e_tilde, reversed_e
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter e";
+beginchar("e",8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+picture savedpicture;
+savedpicture:=currentpicture;
+savedpoint:=x4;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+iff known e_dot:
+cmchar "The letter e with dot";
+beginchar(e_dot,7.25u#+max(.75u#,.5curve#),
+ min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(flare,0); pos99(flare,90);
+x88=x99=good.x(savedpoint); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab); fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+iff known e_umlaut:
+cmchar "The letter e with trema";
+beginchar(e_umlaut,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(flare,0); pos2(flare,90);
+x1=x2=good.x(.5w-1.75u); top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(flare,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(.5w+1.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known e_bar:
+cmchar "The letter e with macron";
+beginchar(e_bar,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+top y91r=top y92r=h+o; lft x91=w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+iff known e_tilde:
+cmchar "The letter e with tilde";
+beginchar(e_tilde,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known e_grave:
+cmchar "The letter e with gravis";
+beginchar(e_grave,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known e_acute:
+cmchar "The letter e with acute";
+beginchar(e_acute,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known e_hat:
+cmchar "The letter e with circumflex";
+beginchar(e_hat,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known e_hachek:
+cmchar "The letter e with hachek";
+beginchar(e_hachek,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known e_dotu:
+cmchar "The letter e with dot below";
+beginchar(e_dotu,7.25u#+max(.75u#,.5curve#),x_height#,0.875desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(flare,0); pos99(flare,90);
+x88=x99=good.x(savedpoint); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+numeric savedpoint;
+
+iff known e_uline:
+cmchar "The letter e with bar below";
+beginchar(e_uline,7.25u#+max(.75u#,.5curve#),x_height#,0.875desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+bot y91l=bot y92l=-d-o; lft x91=w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+savedpicture:=nullpicture;
+
+
+iff known open_e:
+cmchar "Italic letter open e"; % from cmcyr ze
+beginchar(open_e,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,140); pos2(cap_band,90); pos4(vair,-90);
+x1r=good.x(eps); x0=x1; top y2r=h+o;
+bot y1l=vround h-.5bar_height; y0=h-bar_height;
+pos3(max(fine.breadth,curve-stem_corr),0);
+pos7(vair,-90); pos8(vair,-90); pos9(vair,90);
+x2=.45[2u,x10]; rt x3r=hround(w-u); x4=.45[x1,x10];
+pos10(curve,0); rt x10r=hround(w-.5u); lft x8=.5w-u;
+y3=.35[top y7l,bot y2l]; top y8l=vround(.46h+.5vair); z8r=z9l;
+x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+pos5'(hair,-180); pos5(flare,-180);
+bot y4r=0; rt x5l=hround 2u; z5r=z5'r;
+y10=.45[bot y8r,top y4l]; y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+path p; p=z0..z1..{right}z2;
+filldraw stroke z1e{direction 1 of p}
+ ...pulled_arc.e(2,3)
+ & z3e{down}...z7e---z8e; % upper bowl
+filldraw stroke z9e---pulled_arc.e(9,10)
+ & pulled_super_arc.e(10,4)(.5superpull); % lower bowl
+bulb(4,5',5); % bulb
+(x20,y20)=(.5w,.5h); % center point
+flip(20);
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,7,8,9,10,11,12,13); endchar;
+
+ iff known open_e_tilde:
+cmchar "The letter open e with tilde";
+beginchar(open_e_tilde,7.5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+savedpicture:=nullpicture;
+
+
+iff known reversed_e:
+cmchar "Italic letter turned e"; % from jkbash, originally from cm
+beginchar(reversed_e,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x10=.5w; y10=.5h; % center point
+flip(10); % and flip
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italfgh.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italfgh.mf
new file mode 100644
index 00000000000..53713d9c973
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italfgh.mf
@@ -0,0 +1,231 @@
+% This is ITALFGH.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% f (straight f), g (you can choose between two glyphs by the means of
+% |variant_g:=true| or |false|. |true| is default.), h
+%
+% And the following on demand, i. e. if their code is known:
+%
+% long_f, g_dot, ipa_gamma, crossed_h
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter straight f"; % from cm (f)
+beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,0); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90);
+rt x1r=hround(w+.25u); x2=.6[x1,x4];
+top y2r=h+oo;
+y4=.25[x_height,h]; bot y5=-d-oo;
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; y3=.8[y4,y2]; y0+.5vair=.5[x_height,h];
+bulb(2,1,0); % bulb
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,20,21,88,89); endchar;
+
+
+iff known long_f:
+cmchar "Italic letter long f"; % from cm (f)
+beginchar(long_f,max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+
+iff variant_g:
+cmchar "Italic letter g";
+beginchar("g",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem);
+top y1r=h+oo; bot y3r=0; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pos4(stem,0); y4+.5stem=vround .98h;
+pos5(stem,0); x5=x4; y5=-1/3d;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=vround -.9d;
+lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
+filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
+ ic#-1/3x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff known g_dot and variant_g:
+cmchar "Variant letter g with dot";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(g_dot,10u#+serif_fit#,min(asc_height#,10/7x_height#+.5dot_diam#),
+ desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+savedpicture:=nullpicture;
+
+iff not variant_g:
+cmchar "The letter g"; % cmr g mit italic-Parametern -- nur zum Spass
+beginchar("g",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff known g_dot and not variant_g:
+cmchar "The letter g with dot";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(g_dot,9u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+savedpicture:=nullpicture;
+
+
+ iff known ipa_gamma:
+ cmchar"Italic letter ipa gamma"; % jk
+ beginchar(ipa_gamma,7u#,x_height#,desc_depth#);
+ italcorr x_height#*slant;
+ adjust_fit(0,0);
+ pickup fine.nib;
+ x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+ hook_in(0,1,2)(skewed); % opening hook
+ pos2'(stem,-180); pos5(hair,0); pos6(hair,0); pos4(vair,-270);
+ z2'=z2; bot y3=-2/5d; bot y4l=-d-o; bot y5=-1/4d;
+ lft x5l=0; x4=.45[x5r,x3r];
+ y6=.57h; rt x6r=hround(w-.5u);
+ filldraw stroke z2'e{-u,-x_height}...z3e...{left}z4e...{up}z5e...{up}z6e;
+ % stem, bowl and diagonal
+ v_bulb(6,7); %closing bulb
+ math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+ penlabels(0,1,2,3,4,5,6,7);
+ endchar;
+
+cmchar "Italic letter h";
+beginchar("h",9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known crossed_h:
+cmchar "Italic letter crossed h";
+beginchar(crossed_h,9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+pickup crisp.nib; pos15(bar,90); pos16(bar,90);
+top y15r=.52[x_height,h]=top y16r;
+lft x15=.75[x2,x4]; lft x16=hround(.10u);
+filldraw stroke z15e--z16e; % crossbar
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,15,16); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italij.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italij.mf
new file mode 100644
index 00000000000..f8640d84054
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italij.mf
@@ -0,0 +1,183 @@
+% This is ITALIJ.MF
+% Version 1.0b
+% Date 8-MAY-1993
+%
+% (c) 1991, 1993 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% \i, i, \j, j
+%
+% And the following on demand, i. e. if their code is known:
+%
+% i_umlaut, i_tilde, latin_iota, dotless_i_dotu
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Dotless italic letter i";
+beginchar(oct"031",5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi;
+savedpoint:=x8;
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5); endchar;
+
+iff known dotless_i_dotu:
+cmchar "The letter dotless i with dot below";
+beginchar(dotless_i_dotu,5u#,min(asc_height#,10/7x_height#+.5flare#),
+ 0.875desc_depth#);
+italcorr h#*slant-serif_fit# + .5flare# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+currentpicture:=savedpicture;
+pos88(flare,0); pos99(flare,90);
+x88=x99=savedpoint; bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+numeric savedpoint;
+
+iff known i_tilde:
+cmchar "The letter i with tilde";
+beginchar(i_tilde,5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pickup tiny.nib; pos11(stem',0); pos22(stem',0);
+if odd(w-stem'): change_width; fi
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround 0;rt x4l=hround w; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround 0;rt x5l=hround w; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known i_umlaut:
+cmchar "The letter i with trema";
+beginchar(i_umlaut,5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pickup tiny.nib; pos11(stem',0); pos22(stem',0);
+if odd(w-stem'): change_width; fi
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(flare,0); pos2(flare,90);
+pos3(flare,0); penpos4(y2r-y2l,90); y3=y4=y1;
+if not monospace: x1=x2=w-x3=w-x4=good.x(.5w-2u);
+else: x1=x2=w-x3=w-x4=good.x(.5w-u); fi
+top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+savedpicture:=nullpicture;
+
+cmchar "Italic letter i";
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+picture savedpicture;
+savedpicture:=currentpicture;
+savedpoint:=x8;
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+iff known i_dotu:
+cmchar "The letter i with dot below";
+beginchar(i_dotu,5u#,min(asc_height#,10/7x_height#+.5flare#),
+ 0.875desc_depth#);
+italcorr h#*slant-serif_fit# + .5flare# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+currentpicture:=savedpicture;
+pos88(flare,0); pos99(flare,90);
+x88=x99=savedpoint; bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+numeric savedpoint;
+savedpicture:=nullpicture;
+
+iff known latin_iota:
+cmchar "Italic letter latin iota"; % jk, free invention since I hadn't
+beginchar(latin_iota,5u#,x_height#,desc_depth#); % a sample available
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u; y3=-1/3d;
+hook_in(0,1,2)(skewed); d_hook_out(3,4,5); % hooks
+filldraw stroke z2e--z3e; % stem
+penlabels(0,1,2,3,4,5); endchar;
+
+
+cmchar "Dotless italic letter j";
+beginchar(oct"032",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-2u#;
+adjust_fit(if monospace:2u# else: 0 fi, 0); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-2u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter j";
+beginchar("j",5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr h#*slant+.5stem#-u#;
+adjust_fit(if monospace:2u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-1.5u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+pos8(flare,0); pos9(flare,90);
+rt x8r=rt x2r if not monospace:-.6(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+math_fit(desc_depth#*slant,x_height#*slant+.5stem#-u#);
+penlabels(0,1,2,3,4,5,6,8,9); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italklm.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italklm.mf
new file mode 100644
index 00000000000..144cfa39542
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italklm.mf
@@ -0,0 +1,154 @@
+% This is ITALKLM.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% k, l, m,
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_k, kra, m_acute
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter k";
+beginchar("k",8u#,asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+iff known kra:
+cmchar"Italic letter kra"; % Greenlandic. from cmcyr
+%cmchar "Cyrillic italic letter ka";
+beginchar(kra,9.5u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff known hooktop_k:
+cmchar "Italic letter hooktop k"; % jk, based on cm
+beginchar(hooktop_k,8u#,asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); y2-.5stem=-oo;
+rt x23=hround(w-2.5u);
+top_hook(1,20,21,22,23); % hooktop
+y1=y1';
+filldraw circ_stroke z2e--z1e; % left stem
+pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,20,21,22,23); endchar;
+
+cmchar "Italic letter l";
+beginchar("l",4u#,asc_height#,0); l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=h; x1=x2; filldraw stroke z1e--z2'e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Italic letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+iff known m_acute:
+cmchar "The letter m with acute";
+beginchar(m_acute,15u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+savedpicture:=nullpicture;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italn.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italn.mf
new file mode 100644
index 00000000000..0aa3697e2a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italn.mf
@@ -0,0 +1,187 @@
+% This is ITALN.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% n
+%
+% And the following on demand, i. e. if their code is known:
+%
+% n_acute, n_tilde, n_dot, n_uline, enj, eng, var_eng
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+ iff known n_dot:
+cmchar "The letter n with dot";
+beginchar(n_dot,10u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(flare,0); pos99(flare,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+iff known n_uline:
+cmchar "The letter n with bar below";
+beginchar(n_uline,10u#,x_height#,0.875desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+bot y91l=bot y92l=-d-o; lft x91=hround 2u; w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+iff known n_tilde:
+cmchar "The letter n with tilde";
+beginchar(n_tilde,10u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/6w);rt x4l=hround(5/6w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/6w);rt x5l=hround(5/6w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known n_acute:
+cmchar "The letter n with acute";
+beginchar(n_acute,10u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+savedpicture:=nullpicture;
+
+iff known enj:
+cmchar "Italic letter enj"; %jk, based on cm j and n
+beginchar(enj,11u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:2u#,0 else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(0.318w-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=.35x3l; lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+x2'=x2; y2'-.5stem=-oo; pos2'(stem,0);
+x8+.5stem=hround(w-2.5u+.5stem); x9=x8-.25u; ital_arch(2',7,8); % arch
+x11=w; hook_out(9,10,11)(skewed); % closing hook
+filldraw stroke z8e{down}..{-u,-x_height}z9e; % right stem
+math_fit(desc_depth#*slant,ic#);
+penlabels(0,1,2,2',3,4,5,6,8,9,10,11); endchar;
+
+iff known eng:
+cmchar "Italic letter eng"; % jk, based on cm n
+beginchar(eng,10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+y5=1/4x_height; pos5(stem,0);
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+y77=y5; y88=bar_height; x77=.5w; x88=w;
+ numeric theta; theta=angle(z88-z77); numeric eng_hair;
+ eng_hair*cosd(theta)=vair;
+pos6(vair,-90); pos7(eng_hair,-180); pos8(eng_hair,-180);
+bot y6r=-oo; y7=y5; top y8=bar_height;
+lft x7r=hround(.5w); rt x8l=w; x6=1/3[x7r,x5r];
+filldraw stroke z5e{down}...z6e...z7e...{z8-z7}z8e; % bowl
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8); endchar;
+
+iff known var_eng:
+cmchar "Italic letter eng"; % from wnipa
+beginchar(var_eng,10u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4; ital_arch(2,3,4); % arch
+y5=0; pos5(stem,0);
+filldraw stroke z4e--z5e; % right stem
+% macro from wnipa included here
+def l_tail(suffix $,@) =
+x@_22=x$; x@_22r=x$r; x@_22l=x$l; bot y@_22=-1/3d; y@_22r=y@_22l=y@_22;
+filldraw stroke z$e--z@_22e;
+if serifs: pickup tiny.nib; pos@_55(vair,-90); pos@_66(hair,-180); pos@_77(flare,-180);
+ x@_55=.5[x@_22,x@_66r]; bot y@_55r=-d-oo; y@_66-.5flare=-.88d;
+ if monospace: lft x@_66r=x$-3.5u else: z@_66r=z@_77r; rt x@_77l=floor x$-2.5u fi;
+ (x@_,y@_55r)=whatever[z@_55l,z@_22l]; x@_55r:=max(x@_,.5[x@_66r,x@_55]);
+ filldraw stroke z@_22e{down}...z@_55e{left}; bulb(@_55,@_66,@_77); % arc and bulb
+else: pickup fine.nib; pos@_22'(stem',0); z@_22'=z@_22;
+ pos@_66(.2[vair,stem'],-90); pos@_77(vair,-90);
+ lft x@_77r=hround x$-2.5u; bot y@_77r=vround 5/6(-d-oo);
+ (x@_,y@_77l)=whatever[z@_77r,(x$,h)]; x@_77l:=x@_;
+ z@_55r=z@_22'r; (x@_22'l,y@_55l)=whatever[z@_77l,z@_55r]; x@_55l=x@_22'l; y@_55=y@_55r;
+ x@_66r=.5[x@_77r,x@_55r]; x@_66l:=.5[x@_77l,x@_55l]; bot y@_66r=-d-oo;
+ filldraw stroke z@_22'e..{down}z@_55e & super_arc.e(@_55,@_66)
+ & z@_66e{left}..z@_77e; fi % arc and terminal
+enddef;
+%
+l_tail(5,q);
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italo.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italo.mf
new file mode 100644
index 00000000000..949bd2ead06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italo.mf
@@ -0,0 +1,300 @@
+% This is ITALO.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% o
+%
+% And the following on demand, i. e. if their code is known:
+%
+% o_grave, o_acute, o_hat, o_hachek, o_tilde, o_dot, o_dotu, o_umlaut,
+% o_bar, o_uline, oe-lig (\oe), crossed_o (\o), open_o, open_o_tilde
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+iff known o_umlaut:
+cmchar "The letter o with trema";
+beginchar(o_umlaut,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(flare,0); pos2(flare,90);
+x1=x2=good.x(.5w-1.75u); top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(flare,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(.5w+1.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known o_tilde:
+cmchar "The letter o with tilde";
+beginchar(o_tilde,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/5w);rt x4l=hround(4/5w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/5w);rt x5l=hround(4/5w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known o_grave:
+cmchar "The letter o with gravis";
+beginchar(o_grave,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known o_acute:
+cmchar "The letter o with acute";
+beginchar(o_acute,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known o_hat:
+cmchar "The letter o with circumflex";
+beginchar(o_hat,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known o_hachek:
+cmchar "The letter o with hachek";
+beginchar(o_hachek,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known o_dot:
+cmchar "The letter o with dot";
+beginchar(o_dot,9u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(flare,0); pos99(flare,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+iff known o_bar:
+cmchar "The letter o with macron";
+beginchar(o_bar,9u#, .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+top y91r=top y92r=h+o; lft x91=w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+iff known o_dotu:
+cmchar "The letter o with dot below";
+beginchar(o_dotu,9u#,x_height#,0.875desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(flare,0); pos99(flare,90);
+x88=x99=good.x(.5w); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+iff known o_uline:
+cmchar "The letter o with bar below";
+beginchar(o_uline,9u#,x_height#,0.875desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+bot y91l=bot y92l=-d-o; lft x91=w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+savedpicture:=nullpicture;
+
+iff known open_o:
+cmchar "Italic letter open o"; % from cm (c)
+beginchar(open_o,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x10=.5w; y10=.5h; % center point
+flip(10); % and flip
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+iff known open_o_tilde:
+cmchar "The letter open o with tilde";
+beginchar(open_o_tilde,8u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-x4l=hround 1.6u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+savedpicture:=nullpicture;
+
+iff known oe_lig:
+cmchar "Italic ligature oe";
+beginchar(oe_lig,13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos11(vair,90); pos12(curve,180); pos13(vair,270); pos14(stem,360);
+x11=x13=.5[x12,x14]; lft x12r=hround(1.5u-.5curve); x14=x3;
+top y11=h+oo; y12=y14=.5[y11,y13]; bot y13=-oo;
+filldraw stroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
+ & pulled_arc.e(13,14) & pulled_arc.e(14,11); % bowl
+penlabels(0,1,2,3,4,5,6); endchar;
+
+iff known crossed_o:
+cmchar "Italic Scandinavian letter o/slash";
+beginchar(crossed_o,9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr h#*slant-u#+.5vair#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(fudged.stem,180);
+pos3(vair,270); pos4(fudged.stem,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5fudged.stem); x4=w-x2;
+top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+x5=x4; x6=x2; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italpqr.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italpqr.mf
new file mode 100644
index 00000000000..a2dc92c2671
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italpqr.mf
@@ -0,0 +1,96 @@
+% This is ITALPQR.MF
+% Version 1.1a
+% Date 13-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% p, q, r
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_p
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter p";
+beginchar("p",9u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+numeric savedpoint; savedpoint=x7;
+picture savedpicture; savedpicture=currentpicture;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff known hooktop_p:
+cmchar"Italic letter hooktop p"; % jk
+beginchar(hooktop_p,9u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-.7u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+pos0(stem,180); pos1(stem,180); pos2(vair,90);
+pos3(hair,0); pos4(flare,0);
+x0=x1=savedpoint; y1=.8h; y0=x_height;
+x2=.4[x1,x3]; top y2r=h+oo;
+rt x3r=hround(w-.7u); y4=.85h;
+filldraw z2r{left}...{down}z1r--z0r--z0l--z1l{up}...{right}z2l--cycle;
+bulb(2,3,4);
+penlabels(0,1,2,3,4); endchar;
+
+numeric savedpoint;
+savedpicture:=nullpicture;
+
+cmchar "Italic letter q";
+beginchar("q",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem)+eps;
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pickup tiny.nib; pos4(stem,0); pos5(stem,0);
+x4=x5; x6=x5r; top y6=h+oo; bot y4=-d;
+y5=ypart(((x4l,0)--(x4l,y6))intersectionpoint super_arc.r(0,1));
+filldraw z6{2(x5l-x6),y5-y6}...z5l---z4l--z4r--cycle; % stem
+dish_serif(4,5,a,1/3,jut,b,1/3,jut); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Italic letter r";
+beginchar("r",5.5u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+hook_in(0,1,2); % opening hook
+filldraw circ_stroke z3e--z2e; % left stem
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=h+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italst.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italst.mf
new file mode 100644
index 00000000000..595e820f14f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italst.mf
@@ -0,0 +1,255 @@
+% This is ITALST.MF
+% Version 1.1a
+% Date 13-MAR-1992
+%
+% (c) 1991,1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% s, t
+%
+% And the following on demand, i. e. if their code is known:
+%
+% s_dotu, s_hachek, scharfes_s, esh, long_t, sami_t (crossed t), thorn,
+% hooktop_t
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter s";
+beginchar("s",5.25u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff known s_hachek:
+cmchar "The letter s with hachek";
+beginchar(s_hachek,5.25u#+max(1.75u#,flare#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+currentpicture:=savedpicture;
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known s_dotu:
+cmchar "The letter s with dot below";
+beginchar(s_dotu,5.25u#+max(1.75u#,flare#),x_height#,0.875desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+
+savedpicture:=nullpicture;
+
+iff known scharfes_s:
+cmchar "Italic German letter es-zet (sharp s)";
+beginchar(scharfes_s,4.5u#+max(1.5u#,stem#)+max(3.5u#,2flare#),
+ asc_height#,desc_depth#);
+italcorr .9asc_height#*slant-u#;
+adjust_fit(if monospace: u# else: 0 fi,0); pickup fine.nib;
+z88=(.5w-2.75u,h); z89=(.5w-1.75u,-d);
+numeric theta; theta=angle(z88-z89);
+pos1(stem,0); pos2(vair,90); pos3(.5[hair,stem],180);
+pos4(stem,theta+90); pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w-1.5u); lft x8r=hround-.25u; x2=.5[x1,x4]; x7=.5[x8,x5];
+y9-.5flare=vround -.85d; bot y7r=-d-oo; y1=.5[x_height,h]; top y2r=h+oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(7,8,9); % left bulb
+filldraw stroke z1e{up}...z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pos11(.1[hair,curve],-30); x11l=2/3[x12l,x1l]; y11=2/3[y1,y12];
+pos12(.3[hair,curve],0); rt x12r=hround(w-3u); y12=.5h;
+pos13(.8[hair,curve],30); x13=.5[x12,x14]; y13=.5[y12,y14];
+pos14(curve,0); rt x14r=hround(w-.5u); y14=.2h;
+pos15(vair,-90); x15=.5[x14,x16]; bot y15r=-oo;
+pos16(hair,-180); pos17(.6[hair,flare],-180);
+lft x16r=hround(rt x5r+.75u); y17-.5(.6[hair,flare])=.07h;
+filldraw stroke z1e{down}...z11e{1.5(x12e-x11e),y12e-y11e}
+ ...{down}z12e...{2(x13-x12),y13-y12}z13e
+ ...{down}z14e...{left}z15e; % stroke
+bulb(15,16,17); % inner bulb
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; z21=whatever[z4,z5];
+filldraw stroke z20e--z21e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,20,21,88,89); endchar;
+
+iff known long_s:
+cmchar "Italic letter long s"; % from eavi (f), which stems from cm (f)
+beginchar(long_s,max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,0);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,0); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90);
+rt x1r=hround(w+.25u); x2=.6[x1,x4];
+top y2r=h+oo;
+y4=.25[x_height,h]; y5-.5stem=-oo;
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; y3=.8[y4,y2]; y0+.5vair=.5[x_height,h];
+bulb(2,1,0); % bulb
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,88,89); endchar;
+
+
+
+iff known esh:
+cmchar "Italic letter esh"; % derived from cm (f)
+beginchar(esh,max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,88,89); endchar;
+
+cmchar "Italic letter t";
+beginchar("t",5.5u#,min(asc_height#,10/7x_height#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+filldraw circ_stroke z1e--z2e; % stem
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+iff known hooktop_t:
+cmchar "Italic letter hooktop t";
+beginchar(hooktop_t,5.5u#,asc_height#,0);
+italcorr asc_height#*slant+.5u#;
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1=1/4[x_height,h];
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+rt x[-3]=hround w+.05u;
+top_hook(1,0,[-1],[-2],[-3]); % hooktop
+penlabels([-3],[-2],[-1],0,1,2,3,4,5,6); endchar;
+
+iff known long_t:
+cmchar "Italic letter t with tail";
+beginchar(long_t,5.5u#,min(asc_height#,10/7x_height#),desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
+x2=x1; x4=w; y2=-1/3d;
+d_hook_out(2,3,4); % closing hook
+filldraw circ_stroke z1e--z2e; % stem
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+iff known thorn:
+cmchar "Italic letter thorn"; % from im
+beginchar(thorn,8u#,asc_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(1.5u-.5stem); y2 = 3/4x_height; pos2(stem,0) ;
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=vround(x_height)+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+x10 = x2 ; pos10(stem,0) ; top y10 =h ; % and top of stem
+filldraw stroke z10e -- z2e ; sloped_serif.l(10,2,c,1/3,jut,serif_drop) ;
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known sami_t:
+cmchar "Italic letter crossed t";
+beginchar(sami_t,5.5u#,min(asc_height#,10/7x_height#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+filldraw circ_stroke z1e--z2e; % stem
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.5u); % made the bar a bit longer JK
+top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+pickup crisp.nib;
+y9=y10=bar_height; pos9(bar,90); pos10(bar,90); x9=x2; rt x10=rt x6;
+filldraw stroke z9e--z10e; % zusatz crossbar
+math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6,9,10); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italuvw.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italuvw.mf
new file mode 100644
index 00000000000..dfcaf0c48cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italuvw.mf
@@ -0,0 +1,253 @@
+% This is ITALUVW.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% u, v, w (v and w have sharp shapes -- in contrast to the round ones of cmti)
+%
+% And the following on demand, i. e. if their code is known:
+%
+% u_grave, u_acute, u_hat, u_tilde, u_dotu, var_u (round v), w_breve
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter u";
+beginchar("u",9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+picture savedpicture;
+savedpicture:=currentpicture;
+savedpoint:=x4;
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff known u_tilde:
+cmchar "The letter u with tilde";
+beginchar(u_tilde,9.5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/6w);rt x4l=hround(5/6w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/6w);rt x5l=hround(5/6w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known u_acute:
+cmchar "The letter u with acute";
+beginchar(u_acute,9.5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known u_grave:
+cmchar "The letter u with gravis";
+beginchar(u_grave,9.5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known u_hat:
+cmchar "The letter u with circumflex";
+beginchar(u_hat,9.5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known u_dotu:
+cmchar "The letter u with dot below";
+beginchar(u_dotu,9.5u#,x_height#,0.875desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(flare,0); pos99(flare,90);
+x88=x99=good.x(savedpoint); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+savedpicture:=nullpicture;
+numeric savedpoint;
+
+
+iff known var_u:
+cmchar "Italic letter round v"; % from cm (v)
+beginchar(var_u,8u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter v";
+beginchar("v",8u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0);
+numeric left_stem,right_stem,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair,left_stem);
+pickup tiny.nib;
+x1l=.5w-u; x4r=w-.5u; y1=y4=.57h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+x[-2]=hround(.5hair)-.5hair; z0=whatever[z1,z2]; pos0(alpha*left_stem,0);
+v_hook_in([-2],[-1],0); % opening hook
+if y23>notch_cut: y23:=notch_cut;
+ fill z23+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z23+.5left--cycle; % left and right diagonal parts
+else: fill z23--diag_end(23,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,23)--cycle; fi % left and right diagonal parts
+pickup tiny.nib;
+z1'=z1; pos1'(alpha*left_stem,0);
+filldraw stroke z0e--z1'e;
+z4'=z4; pos4'(alpha*right_stem,0);
+v_bulb(4',5);
+penlabels([-2],[-1],0,1,2,3,4,5,23); endchar;
+
+cmchar "Italic letter w";
+beginchar("w",12u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0);
+numeric stem[],upper_notch,alpha,mid_corr;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair,stem1);
+stem2=stem4;
+stem3=max(stem2,stem1-3stem_corr);
+pickup tiny.nib;
+x1l=1/3w-u; x8r=w-.5u;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=.57h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+pickup tiny.nib;
+z8'=z8; pos8'(alpha*stem4,0);
+v_bulb(8',9); % closing bulb
+x[-2]=hround(.5hair)-.5hair;
+z99=whatever[z1,z2]; % z0 is hidden in special_diag_end
+pos99(alpha*stem1,0);
+v_hook_in ([-2],[-1],99); % opening hook
+z1'=z1; pos1'(alpha*stem1,0);
+filldraw stroke z99e--z1'e; % join
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels([-2],[-1],0,1,2,3,4,5,6,7,8,9,23,45,67,99); endchar;
+
+iff known w_breve:
+cmchar "The letter w with breve";
+beginchar(w_breve,13u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+currentpicture:=savedpicture;
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=hround(.5w-2.5u-.5vair);x3r=hround(.5w+2.5u+.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+savedpicture:=nullpicture;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/italxyz.mf b/Master/texmf-dist/fonts/source/jknappen/fc/italxyz.mf
new file mode 100644
index 00000000000..34bed9104a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/italxyz.mf
@@ -0,0 +1,178 @@
+% This is ITALXYZ.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% x, y, z (y has a sharp shape, not rounded as in cmti)
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_y, zhe (ezh)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "Italic letter x";
+beginchar("x",6.5u#+max(1.5u#,flare#),x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90);
+pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19); endchar;
+
+ cmchar "Italic letter y";
+beginchar("y",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,0);
+numeric left_stem,right_stem,bot_stem,bot_vair;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair;
+bot_stem=fudged.hair;
+bot_vair=Vround(vair);
+pickup tiny.nib;
+x1l=.5w-u; x4r=w-.5u; y1=y4r=.57h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z23=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y23>notch_cut: y23:=notch_cut;
+ fill z23+.5right{up}...{z4r-z3r}diag_end(23,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z23+.5left--cycle; % left and right diagonals
+else: fill z23--diag_end(23,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,23)--cycle; fi % left and right diagonals
+pickup tiny.nib;
+pos0(alpha*left_stem,0);
+x[-2]=hround(.5hair)-.5hair; z0=whatever[z1,z2];
+v_hook_in([-2],[-1],0); % opening hook
+z1'=z1; pos1'(alpha*left_stem,0);
+z4'=z4; pos4'(alpha*right_stem,0);
+filldraw stroke z0e--z1'e; % join
+v_bulb(4',10); % closing bulb
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+penlabels([-2],[-1],0,1,2,3,4,5,6,7,8,9,10,23); endchar;
+
+iff known hooktop_y:
+cmchar "Italic letter hooktop y";
+beginchar(hooktop_y,11u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric left_stem,right_stem,bot_stem,bot_vair;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair;
+bot_stem=fudged.hair;
+bot_vair=Vround(vair);
+pickup tiny.nib;
+x1l=3u; x4r=w-3u; y1=y4r=.7h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z23=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y23>notch_cut: y23:=notch_cut;
+ fill z23+.5right{up}...{z4r-z3r}diag_end(23,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z23+.5left--cycle; % left and right diagonals
+else: fill z23--diag_end(23,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,23)--cycle; fi % left and right diagonals
+pickup tiny.nib;
+pos0(alpha*left_stem,0);
+x[-2]=hround(.5hair)-.5hair; z0=whatever[z1,z2];
+v_hook_in([-2],[-1],0); % opening hook
+z1'=z1; pos1'(alpha*left_stem,0);
+filldraw stroke z0e--z1'e; % join
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % lower arc and bulb
+z4'=z4; penpos4'(alpha*right_stem,180);
+penpos10(vair,90); penpos11(hair,0); penpos12(light_bulb,0);
+x10=.5[x4,x12]; top y10r=h+oo; rt x12r=hround(w-.25u);
+y12+.5light_bulb=vround(.85h);
+fill z4'l{z4-z3}...{right}z10l--z10r{left}...{z3-z4}z4'r--cycle;
+bulb(10,11,12); % upper arc & bulb
+penlabels([-2],[-1],0,1,2,3,4,5,6,7,8,9,10,11,13,23); endchar;
+
+cmchar "Italic letter z";
+beginchar("z",5.5u#+max(1.5u#,stem#),x_height#,0);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known zhe:
+cmchar "Italic letter ezh"; % from wnipai
+beginchar(zhe,5.5u#+max(1.5u#,stem#),x_height#,desc_depth#);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+pair p; p=(z4-z5) yscaled 2;
+z21=.7[z4,z5]; pos21(hair,0);
+x22=x21+1.5u; y22=y21+.15h;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z21e{p}..{p}z4e; % diagonal
+x23=x4; y23=-.25d; x24=.5w; y24=-d; x25=x5; y25=-.3d;
+pos22(vair,-90); pos23(.8curve,-180); pos24(hair,-270); pos25(vair,-360);
+filldraw stroke z21e{p}...z22e{right}...{down}z23e...{left}z24e...{up}z25e;
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,21,22,23,24,25); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowera.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowera.mf
new file mode 100644
index 00000000000..4e722b72f5a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowera.mf
@@ -0,0 +1,222 @@
+% This is LOWERA.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% a
+%
+% And the following on demand, i. e. if their code is known:
+%
+% a_tilde, a_acute, a_grave, a_umlaut, a_hat, ae_lig
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter a";
+beginchar("a",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+iff known a_umlaut:
+cmchar "The letter a with trema";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(a_umlaut,9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=good.x(.5w-1.75u); top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(.5w+1.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known a_tilde:
+cmchar "The letter a with tilde";
+beginchar(a_tilde,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/6w);rt x4l=hround(5/6w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/6w);rt x5l=hround(5/6w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known a_grave:
+cmchar "The letter a with gravis";
+beginchar(a_grave,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known a_acute:
+cmchar "The letter a with acute";
+beginchar(a_acute,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known a_hat:
+cmchar "The letter a with circumflex";
+beginchar(a_hat,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+savedpicture:=nullpicture;
+
+iff known ae_lig:
+cmchar "The ligature ae";
+beginchar(ae_lig,13u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % right terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(mfudged.hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=4u;
+ y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=4.3u; top y1r=vround .82[bar_height,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % left terminal
+pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
+pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
+filldraw stroke super_arc.e(3,4)&z4e--z5e; % arc and stem
+pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
+pos7(left_curve,180);
+lft x7r=hround max(.5u,1.5u-.5left_curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=3.75u; bot y8r=-oo;
+pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
+(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if y9<y5: filldraw stroke z5e{down}..{down}z9e; fi % link (usually hidden)
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowerbcd.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowerbcd.mf
new file mode 100644
index 00000000000..2d205f6269a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowerbcd.mf
@@ -0,0 +1,336 @@
+% This is LOWERBCD.MF
+% Version 1.1c
+% Date 22-JUN-1993
+%
+% (c) 1991, 1992, 1993 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% b, c, d
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_b, c_cedilla, hooktop_d, tailed_d, edh, crossed_d, hooktop_c
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff known hooktop_b:
+cmchar "The letter hooktop b"; % from wsuipa
+beginchar(hooktop_b,10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=.7h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+%if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.35[x1,x5]; top y10l=h+o+1;
+ pos11(hair,0); rt x11r=hround(w-2.25u); y11=.85h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke z0e{up}...pulled_super_arc.e(1,10)(.4superpull);
+ % arc and stem
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12); endchar;
+
+
+cmchar "The letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5); endchar;
+
+iff known c_cedilla:
+cmchar"The letter c with cedilla";
+beginchar(c_cedilla,8u#,x_height#,0.875desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+x1=.5w+u;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); endchar;
+
+iff known hooktop_c:
+cmchar"The letter hooktop c"; % jk
+beginchar(hooktop_c,8u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+%if serifs:
+pickup tiny.nib;
+pos0(stem,180); pos1(stem,180); pos2(vair,90);
+pos3(hair,0); pos4(flare,0);
+x0=x1=hround.5(w+u); y1=.5[x_height,h]; y0=x_height;
+x2=.4[x1,x3]; top y2r=h+oo;
+rt x3r=hround(w-.7u); y4=.85h;
+filldraw z2r{left}...{down}z1r--z0r--z0l--z1l{up}...{right}z2l--cycle;
+bulb(2,3,4);
+%else:
+%fi
+penlabels(0,1,2,3,4); endchar;
+
+savedpicture:=nullpicture;
+
+cmchar "The letter d";
+beginchar("d",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff known crossed_d:
+cmchar "The letter crossed d"; % from wsuipa
+beginchar(crossed_d,10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+pickup crisp.nib; pos15(bar,90); pos16(bar,90);
+top y15r=.52[x_height,y1]=top y16r; % changed
+lft x15=hround(w-.25u); lft x16=.23[x5r,x1];
+filldraw stroke z15e--z16e; % bar
+penlabels(0,1,2,3,4,5,6,7,15,16); endchar;
+
+iff known hooktop_d:
+cmchar "The letter hooktop d"; % from wsuipa
+beginchar(hooktop_d,12u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(.76w-2.5u+.5stem'); top y1=.7h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(.76w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs:
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); % lower serif
+fi
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.5[x1,x11]; top y10l=h+o+1;
+ pos11(hair,0); rt x11r=hround(w-.5u); y11=.85h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke z0e{up}...pulled_super_arc.e(1,10)(.4superpull);
+ % arc and stem
+penlabels(0,1,2,3,4,5,6,7,10,11,12); endchar;
+
+iff known edh:
+cmchar "The letter edh (Old English rune, like thorn)"; % from bsymbols
+% adapted from cm partial differential sign, vol E, p 233.
+beginchar(edh,10u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-1.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,90);
+pos3(side_thickness,0); pos4(bot_thickness,-90);
+pos5(side_thickness,-180); pos6(vair,-270);
+lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6+.1u=x2+u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,0); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+x2:=x5; x2l:=x2r:=x2;
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+%pos1(hair,180); pos0(flare,180); % commenting out the arc and bulb
+%lft x0r=min(lft x2-eps,hround 1.2u);
+%y0=vround min(.85h-.5flare,.8h+.5flare)+o;
+%{{less_tense; bulb(2,1,0)}}; % arc and bulb
+%math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
+pickup pencircle xscaled 1.4rule_thickness yscaled .5rule_thickness;
+x10=x11=x5; x12=x13=w-x10; y10=y13;
+y10-y11=y12-y13=cap_stem; .5[y11,y10]=.5[y6,y2];
+if serifs:
+draw z10--z11--z12--z13; % cross piece
+else: draw z11--z12; fi % added simpler cross piece for sans serif design
+penlabels(2,3,4,5,6,7,10,11,12,,13); endchar;
+
+iff known tailed_d:
+cmchar "The letter right-tailed d"; % from wsuipa
+beginchar(tailed_d,12.5u#+serif_fit#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(.8w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(.8w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=-1/2d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop);fi % upper serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos20(stem,180); z2=z20;
+ pos15(vair,-90); pos16(hair,0); pos17(flare,0);
+ x15=.5[x16,x20]; bot y15l=-d-oo; y16=y20+.15dot_size;
+ rt x16r=hround(w-.1u);
+ bulb(15,16,17); % arc and bulb
+ filldraw stroke z20e{down}..{right}z15e{up};
+penlabels(0,1,2,3,4,5,6,7,15,16,17,20); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowere.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowere.mf
new file mode 100644
index 00000000000..6124230d4b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowere.mf
@@ -0,0 +1,372 @@
+% This is LOWERE.MF
+% Version 1.0c
+% Date 22-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% e
+%
+% And the following on demand, i. e. if their code is known:
+%
+% e_tilde, e_grave, e_acute, e_hat, e_umlaut, e_dot, e_dotu, e_bar,
+% e_uline, e_hachek, open_e, open_e_tilde, inversed_e
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); % terminal
+ pickup tiny.nib; fi % change JK
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+picture savedpicture;
+savedpicture:=currentpicture;
+savedpoint:=x4;
+penlabels(0,1,2,3,4,5); endchar;
+
+iff known e_dot:
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+cmchar "The letter e with dot";
+beginchar(e_dot,7.25u#+max(.75u#,.5curve#),
+ min(asc_height#,10/7x_height#+.5dot_diam#),0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(savedpoint); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab); fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+iff known e_umlaut:
+numeric dot_diam#,dot_diam; dot_diam#=max(dot_size#,cap_curve#);
+cmchar "The letter e with trema";
+beginchar(e_umlaut,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=good.x(.5w-1.75u); top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(.5w+1.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known e_bar:
+cmchar "The letter e with macron";
+beginchar(e_bar,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+top y91r=top y92r=h+o; lft x91=w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+iff known e_tilde:
+cmchar "The letter e with tilde";
+beginchar(e_tilde,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known e_grave:
+cmchar "The letter e with gravis";
+beginchar(e_grave,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known e_acute:
+cmchar "The letter e with acute";
+beginchar(e_acute,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known e_hat:
+cmchar "The letter e with circumflex";
+beginchar(e_hat,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known e_hachek:
+cmchar "The letter e with hachek";
+beginchar(e_hachek,7.25u#+max(.75u#,.5curve#),
+ .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known e_dotu:
+cmchar "The letter e with dot below";
+beginchar(e_dotu,7.25u#+max(.75u#,.5curve#),x_height#,0.875desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(savedpoint); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+numeric savedpoint;
+
+iff known e_uline:
+cmchar "The letter e with bar below";
+beginchar(e_uline,7.25u#+max(.75u#,.5curve#),x_height#,0.875desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+bot y91l=bot y92l=-d-o; lft x91=w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+savedpicture:=nullpicture;
+
+iff known open_e:
+cmchar "The letter open e"; % jk, based on the numeral 3 from cm
+beginchar(open_e,7.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+slantswitch; % mirror will reswitch slant
+numeric top_thickness,mid_thickness,bot_thickness;
+mid_thickness=max(fine.breadth,vround 2/3vair);
+pickup fine.nib; pos2(vair',90); top y2r=h+oo;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.25u,x7];
+pos7(curve,0); rt x7r=hround(w-.5u); lft x5=min(hround 2.5u,lft x6)-eps;
+pos8(vair',-90); bot y8r=-oo;
+if serifs:
+ pos9(hair,-180); lft x9l=hround(1.25u);
+ y9=max(good.y(.5bar_height-.9),y8l+vair');
+ (x,y8l)=whatever[z8r,z9r]; x8l:=max(x,x8l-.5u);
+% (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+fi
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(bar_height+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare; bulb_diam2=flare;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+% no lower bulb
+% pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+% lft x10r=hround .75u; y10=max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+% bulb(8,9,10); % lower bulb
+ filldraw stroke z8e{left}..tension .9 and 1..{x9-x8,5(y9-y8)}z9e;
+% % lower terminal
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75h+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(vair',angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+mirror(.5w);
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff known open_e_tilde:
+cmchar "The letter open e with tilde";
+beginchar(open_e_tilde,7.5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+savedpicture:=nullpicture;
+
+
+iff known reversed_e:
+cmchar "The letter inverted e"; % from cm
+beginchar(reversed_e,7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+x10=.5w; y10=.5h; flip(10); % rotation
+penlabels(0,1,2,3,4,5); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowerfgh.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowerfgh.mf
new file mode 100644
index 00000000000..8080163bf4e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowerfgh.mf
@@ -0,0 +1,325 @@
+% This is LOWERFGH.MF
+% Version 1.0b
+% Date 13-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% f, g (you can choose between two glyphs by the means of |variant_g:=true;|
+% or |false|), h
+%
+%
+% And the following on demand, i. e. if their code is known:
+%
+% long_f, g_dot, ipa_gamma, crossed_h
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter f";
+beginchar("f",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+
+iff known long_f:
+cmchar "The letter long f"; % jk, made from emma pease's esh
+ % jk added differnt sans serif version
+if serifs:
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(long_f,5.5u#,asc_height#,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pickup tiny.nib; pos0(stem',0); pos1(shaved_stem,0);
+x0=x1;
+x1=.5w;
+top y0=x_height if serifs: +min(oo,serif_drop) fi;
+bot y1=-1/3d;
+pickup fine.nib; numeric bulb_diam;
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x1,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z1l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z1e{down}...z5e{left}; bulb(5,6,7); % lower arc and bulb
+ bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+pickup tiny.nib;
+penpos3(x1r-x1l,0); x3l=x1l; top y3=x_height;
+filldraw stroke z1e--z3e; % stem
+pickup fine.nib; pos3'(x1r-x1l-(hround stem_corr)+tiny,180);
+y3'=y3; lft x3'r=tiny.lft x1l;
+penpos4(x3'l-x3'r,180); x4=x3'; y4+.5vair=.5[x_height,h];
+pos8(vair,90); top y8r=h+oo;
+ x8=.5[x4,x2r]; (xa,y8r)=whatever[z8l,z4l];
+ x8r:=min(xa,.5[x8,x2r]); pos9(hair,0); bulb(8,9,2); % bulb
+ filldraw stroke z3'e--z4e & super_arc.e(4,8); % arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+else:
+beginchar(long_f,3u#+max(1.5u#,stem#)+max(3.5u#,2flare#),
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos4(stem,180); % pos4(stem,theta+90);
+pos5(stem,0); %pos5(stem,theta-90);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.75[-d,y4];
+x4=x5=.5w;
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...{down}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{down}...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+fi;
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(1,2,3,4,5,6,7,8,20,21); endchar;
+
+
+iff not variant_g: cmchar "The letter g";
+beginchar("g",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff known g_dot and not variant_g:
+cmchar "The letter g with dot";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(g_dot,9u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+savedpicture:=nullpicture;
+
+iff variant_g: cmchar "Variant letter g";
+beginchar("g",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff known g_dot and variant_g:
+cmchar "Variant letter g with dot";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(g_dot,10u#+serif_fit#,min(asc_height#,10/7x_height#+.5dot_diam#),
+ desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+savedpicture:=nullpicture;
+
+iff known ipa_gamma:
+cmchar "The letter IPA gamma"; % remade by jk (wsuipa original didn't work
+% with sans serif parameters), based on cm X
+beginchar(ipa_gamma,if serifs: 9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=stem-2stem_corr; stem2=min(hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=-d;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+penpos5(alpha2*stem2,0); penpos6(alpha1*stem1,0);
+penpos5'(alpha2*stem2,-180); penpos10(vair,-90);
+z5=whatever[z3,z2]; z6=whatever[z1,z4]; x5=.25[x3,x4]; y6=y5; z5'=z5;
+x10=.5[x5,x6]; bot y10=-d-o;
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',5l,1,.5,5r,34')--z34'
+ --diag_end(34',6l,.5,1,6r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,6l,.5,1,6r,1r)--cycle; % left diagonal
+ fill diag_end(2l,5l,.5,1,5r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+filldraw stroke z6e{z4-z1}...z10e...{z2-z3}z5'e; % bowl
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+% prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+% if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+% else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+% dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+% dish_serif(3',2,g,1/2,outer_jut+xjut,
+% h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+fi
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,19,12,13,24,34); endchar;
+
+cmchar "The letter h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+
+iff known crossed_h:
+cmchar "The letter crossed h"; % from wsuipa
+beginchar(crossed_h,10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+top y5r=.52[x_height,y1]=top y6r; % changed
+lft x5=.25u; rt x6=.2[x3,x1];
+filldraw stroke z5e--z6e; % bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowerij.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowerij.mf
new file mode 100644
index 00000000000..93971a93bc4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowerij.mf
@@ -0,0 +1,260 @@
+% This is LOWERIJ.MF
+% Version 1.0e
+% Date 22-JUN-1993
+%
+% (c) 1991, 1992, 1993 by J"org Knappen. See fc.rme for copying conditions
+
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% \i, i, \j, j
+%
+% And the following on demand, i. e. if their code is known:
+%
+% i_umlaut, i_dotu, i_tilde, latin_iota, dotless_i_dotu
+%
+% Higher versions of this file might include more characters.
+
+
+cmchar "Dotless letter i"; % cm
+beginchar(oct"031",5u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs:
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+picture savedpicture; savedpicture:=currentpicture;
+pos3(dot_diam,0);
+if serifs: x3r=max(x1r,x1+.5(dot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+x3:=good.x(x3);
+picture savedpicture;
+savedpicture:=currentpicture;
+savedpoint:=x3;
+penlabels(1,2); endchar;
+
+iff known dotless_i_dotu:
+cmchar "The letter dotless i with dot below";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(dotless_i_dotu,5u#,min(asc_height#,10/7x_height#+.5dot_diam#),
+ 0.875desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+currentpicture:=savedpicture;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=savedpoint; bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+numeric savedpoint;
+
+iff known i_tilde:
+cmchar "The letter i with tilde";
+beginchar(i_tilde,5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos11(stem',0); pos22(stem',0);
+if odd(w-stem'): change_width; fi
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ if not monospace: lft x1r=hround 0;rt x4l=hround w;
+ else: lft x1r=hround u; rt x4l=hround(w-u); fi
+ top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ if not monospace: lft x1r=hround 0; rt x5l=hround w;
+ else: lft x1r=w-rt x5l=hround 5/6u; fi
+ x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known i_umlaut:
+cmchar "The letter i with trema";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(i_umlaut,5u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+pickup tiny.nib; pos11(stem',0); pos22(stem',0);
+if odd(w-stem'): change_width; fi
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1;
+if not monospace: x1=x2=w-x3=w-x4=good.x(.5w-2u);
+else: x1=x2=w-x3=w-x4=good.x(.5w-u); fi
+top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+savedpicture:=nullpicture;
+
+cmchar "The letter i"; % cm
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(dot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+x3:=good.x(x3);
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs:
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+picture savedpicture;
+savedpicture:=currentpicture;
+savedpoint:=x3;
+penlabels(1,2,3,4); endchar;
+
+iff known i_dotu:
+cmchar "The letter i with dot below";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(i_dotu,5u#,min(asc_height#,10/7x_height#+.5dot_diam#),
+ 0.875desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+currentpicture:=savedpicture;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=savedpoint; bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+numeric savedpoint;
+savedpicture:=nullpicture;
+
+iff known latin_iota:
+cmchar "The letter iota"; % jk
+beginchar(latin_iota,6u#+max(u#,.5stem#),x_height#,0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup tiny.nib; pos2'(shaved_stem,0);
+pos1(shaved_stem,0);pos2(shaved_stem,180); pos3(shaved_stem,180);
+x1l=x2'l; z2=z2'; y1=0;
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+top y2=h if serifs:+min(oo,serif_drop) fi; y3=max(.5bar_height,2vair);
+interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+ pickup tiny.nib;
+ sloped_serif.l(2',1,a,1/3,.95jut,serif_drop); % upper serif
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter j"; % cm
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("j",5.5u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r; x3:=good.x(x3); top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Dotless letter j"; % cm
+beginchar(oct"032",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+penlabels(1,2,5,6,7); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowerklm.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowerklm.mf
new file mode 100644
index 00000000000..8c8a1bf1e02
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowerklm.mf
@@ -0,0 +1,210 @@
+% This is LOWERKLM.MF
+% Version 1.0b
+% Date 8-APR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% k, l, m
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_k, kra, m_acute
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+iff known hooktop_k:
+cmchar "The letter hooktop k"; % jk
+beginchar(hooktop_k,9.5u#,asc_height#,0);
+italcorr max(asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi,
+ x_height#*slant-.2u#);
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(.5w)+1 else: lft x2l=hround(.6w+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-4.5u else:w-3.25u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup tiny.nib; top y3=x_height;
+rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(1,2,3,4,5,6,11); endchar;
+
+% kra.mf 12-mar-1991 by J"org Knappen
+
+iff known kra: % This is cm k, but without ascender
+cmchar "The letter kra"; % greenlandic
+beginchar(kra,9.5u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+cmchar "The letter l";
+beginchar("l",5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+fi
+if serifs:
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2); endchar;
+
+cmchar "The letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; % stem, sic
+lft x3l=hround(.5w-.5mfudged.stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)+r-w; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(1,2,3,4,5,6); endchar;
+
+iff known m_acute:
+cmchar "The letter m with acute";
+beginchar(m_acute,15u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+savedpicture:=nullpicture;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowern.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowern.mf
new file mode 100644
index 00000000000..50fe9b7f65b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowern.mf
@@ -0,0 +1,179 @@
+% This is LOWERN.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% n
+%
+% And the following on demand, i. e. if their code is known:
+%
+% n_tilde, n_acute, n_dot, n_uline, enj, eng
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(1,2,3,4); endchar;
+
+iff known n_dot:
+cmchar "The letter n with dot";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(n_dot,10u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+iff known n_uline:
+cmchar "The letter n with bar below";
+beginchar(n_uline,10u#,x_height#,0.875desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+bot y91l=bot y92l=-d-o; lft x91=w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+iff known n_tilde:
+cmchar "The letter n with tilde";
+beginchar(n_tilde,10u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/6w);rt x4l=hround(5/6w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/6w);rt x5l=hround(5/6w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known n_acute:
+cmchar "The letter n with acute";
+beginchar(n_acute,10u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+savedpicture:=nullpicture;
+
+iff known enj:
+cmchar "The letter enj"; % from wsuipa
+beginchar(enj,12.5u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(3.4u-.35stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=-.2d; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180);
+ pos17(flare,-180);
+ rt x17=u;
+ x15=.5[x2,x16r]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r;
+ (x,y15r)=whatever[z15l,z2l]; x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke z2e{down}...pulled_super_arc.e(2,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,15,16,17); endchar;
+
+iff known eng:
+cmchar "The letter eng"; % from wsuipa
+beginchar(eng,10.2u#,x_height#,1.1desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut);fi % lower left serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x4,x16r]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; rt x17r=x2r;
+ (x,y15r)=whatever[z15l,z4l]; x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke z4e{down}...pulled_super_arc.e(4,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,15,16,17); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowero.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowero.mf
new file mode 100644
index 00000000000..0e364c33982
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowero.mf
@@ -0,0 +1,342 @@
+% This is LOWERO.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% o
+%
+% And the following on demand, i. e. if their code is known:
+%
+% o_grave, o_acute, o_tilde, o_hat, o_hachek, o_dot, o_dotu, o_bar
+% o_uline, o_umlaut, open_o, open_o_tilde, oe_lig (\oe), crossed_o (\o)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+picture savedpicture; savedpicture=currentpicture;
+penlabels(1,2,3,4); endchar;
+
+
+iff known o_umlaut:
+cmchar "The letter o with trema";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(o_umlaut,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+numeric dot_diam;
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=good.x(.5w-1.75u); top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(.5w+1.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known o_tilde:
+cmchar "The letter o with tilde";
+beginchar(o_tilde,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/5w);rt x4l=hround(4/5w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/5w);rt x5l=hround(4/5w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known o_grave:
+cmchar "The letter o with gravis";
+beginchar(o_grave,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known o_acute:
+cmchar "The letter o with acute";
+beginchar(o_acute,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known o_hat:
+cmchar "The letter o with circumflex";
+beginchar(o_hat,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known o_hachek:
+cmchar "The letter o with hachek";
+beginchar(o_hachek,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known o_dot:
+cmchar "The letter o with dot";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(o_dot,9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-x_height+oo<slab: y99l:=min(y99r-eps,x_height+oo+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+iff known o_bar:
+cmchar "The letter o with macron";
+beginchar(o_bar,9u#, .75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+top y91r=top y92r=h+o; lft x91=w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+iff known o_dotu:
+cmchar "The letter o with dot below";
+beginchar(o_dotu,9u#,x_height#,0.875desc_depth#);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+iff known o_uline:
+cmchar "The letter o with bar below";
+beginchar(o_uline,9u#,x_height#,0.875desc_depth#);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+bot y91l=bot y92l=-d-o; lft x91=w-rt x92=hround 1.25u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+savedpicture:=nullpicture;
+
+iff known oe_lig:
+cmchar "The ligature oe";
+beginchar(oe_lig,14u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(fine.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5(w+u)-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; pos1(vair,90); pos3(vair,-90);
+pos2(left_curve,180); pos4(mfudged.stem,0);
+lft x2r=hround max(.5u,1.25u-.5curve);
+z4=z13; x1=x3=.5[x2,x4]; top y1r=h+vround 1.5oo; bot y3r=-oo;
+y2=y4; y2l:=y4l:=.52h;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of left bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of left bowl
+penlabels(1,2,3,4,10,11,12,13,14,15); endchar;
+
+iff known crossed_o:
+cmchar "Scandinavian letter o/slash";
+beginchar(crossed_o,9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr h#*slant-u#-max(.5fudge*stem#,.75u#)+.5vair#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90);
+penpos2(fudged.stem,180); penpos4(fudged.stem,0);
+x2r=hround max(.5u,1.25u-.5fudged.stem);
+x4r=w-x2r; x1=x3=.5w;
+y1r=x_height+vround 1.5oo; y2=y4=.5x_height-vair_corr; y3r=-oo;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+x5=x4; x6=x2; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+iff known open_o:
+cmchar "The letter open o (turned c)"; % from wsuipa
+beginchar(open_o,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=.45(w+u); x4=.5(w+u);
+top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.9u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+x10=.5w; y10=.5h; flip(10); % rotation
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5); endchar;
+
+iff known open_o_tilde:
+cmchar "The letter open o with tilde";
+beginchar(open_o_tilde,8u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-x4l=hround u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+
+savedpicture:=nullpicture;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowerpqr.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowerpqr.mf
new file mode 100644
index 00000000000..8c7958a9c24
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowerpqr.mf
@@ -0,0 +1,133 @@
+% This is LOWERPQR.MF
+% Version 1.1a
+% Date 13-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% p, q, r
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_p
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter p";
+beginchar("p",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+picture savedpicture; savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff known hooktop_p:
+cmchar "The letter hooktop p"; % jk
+beginchar(hooktop_p,10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr asc_height#*slant;
+adjust_fit(serif_fit#,0);
+currentpicture:=savedpicture;
+%if serifs:
+pickup tiny.nib;
+pos0(stem,180); pos1(stem,180); pos2(vair,90);
+pos3(hair,0); pos4(flare,0);
+x0=x1=hround w-.5(w-serif_fit)+.5u; y1=.8h; y0=x_height;
+x2=.4[x1,x3]; top y2r=h+oo;
+rt x3r=hround(w-.7u); y4=.85h;
+filldraw z2r{left}...{down}z1r--z0r--z0l--z1l{up}...{right}z2l--cycle;
+bulb(2,3,4);
+%else:
+%fi
+penlabels(0,1,2,3,4); endchar;
+
+savedpicture:=nullpicture;
+
+
+cmchar "The letter q";
+beginchar("q",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf
new file mode 100644
index 00000000000..2a1e1a5f57f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowerst.mf
@@ -0,0 +1,451 @@
+% This is LOWERST.MF
+% Version 1.0b
+% Date 13-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% s, t
+%
+% And the following on demand, i. e. if their code is known:
+%
+% s_hachek, s_dotu, long_s, esh, scharfes_s, long_t, sami_t (t with cross),
+% thorn, hooktop_t
+%
+% Higher versions of this file might include more characters.
+
+
+cmchar "The letter s";
+beginchar("s",7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+iff known s_hachek:
+cmchar "The letter s with hachek";
+beginchar(s_hachek,7.1u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+currentpicture:=savedpicture;
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known s_dotu:
+cmchar "The letter s with dot below";
+beginchar(s_dotu,7.1u#,x_height#,0.875desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+savedpicture:=nullpicture;
+
+iff known scharfes_s:
+cmchar "German letter scharfes s"; % completely remade to exhibit
+% the long s-short s ligature % jk
+beginchar(scharfes_s,4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
+penpos3(vair-fine,90); fine.top y3r=h+oo;
+filldraw stroke z1e--z2e; % stem
+numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
+pickup fine.nib; pos4(curve',0);
+pos2'(stem',180); z2'=z2; x3=.5[x2,x4]; rt x4r=hround(w-u);
+numeric xx; xx=min(lft x4l, hround(stem_edge+u));
+numeric theta;
+theta=90-angle(40u,x_height); slope:=-x_height/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pos5(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos22(ess',theta); pos10(s_slab,-90); x5l=x22=x10=.5[xx,w];
+top y5l=x_height+vround 1.5oo; bot y10r=-oo;
+y22-.5ess'=y10l+if serifs:.54 else: .52 fi\\(y5r-y10l-ess');
+lft x6l=xx; rt x9r=hround(w-.6u);
+x6r-x6l=x9r-x9l=hround .5[s_slab,ess']-fine;
+ellipse_set(5l,6l,7l,22l); ellipse_set(5r,6r,7r,22r); y6=y6r;
+ellipse_set(10l,9l,8l,22l); ellipse_set(10r,9r,8r,22r); y9=y9r;
+interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull) % upper bowl
+ ..super_arc.e(5,6) & z6e{down}
+ ..z7e---z8e..z9e{down} & super_arc.e(9,10); % main s stroke
+if serifs: pos21(hair,180); pos11(hair,180);
+ rt x21l=hround(w-1.05u); lft x11r=xx;
+ bot y21=min(bot y5r,vround 1/5[top y8r,x_height]);
+ top y11=max(top y10l,vround 5/6 bot y7l);
+% filldraw stroke z21e{up}....{left}z5e; % upper arc
+ filldraw stroke z10e{left}....{x11-x10,5(y11-y10)}z11e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z21{up}....{left}z5; lower_arc=z10{left}....{x11-x10,5(y11-y10)}z11;
+ pos20(.3[fine.breadth,cap_hair],0); pos12(.3[fine.breadth,cap_hair],0);
+ x20r=x21l; top y20=top y5l; x12l=x11r; bot y12=bot y10r;
+ x21l-x21'=x11'-x11r=1.6cap_curve-fine; y21'=y21; y11'=y11;
+% numeric t; t=xpart(upper_arc intersectiontimes(z20l--z21'));
+% filldraw z21l--z20r--z20l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z12r--z11'));
+ filldraw z11r--z12l--z12r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos21(4/7[s_slab,flare],-100); pos11(flare,-100);
+ x21l=good.x(x21l+w-u-rt x21); lft x11r=xx;
+ top y21l=vround(.93x_height+1.5oo); bot y11r=vround .1x_height-oo;
+% filldraw stroke term.e(5,21,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(10,11,left,1,4); fi % lower arc and terminal
+if serifs:
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % bar
+ dish_serif(1,2,b,1/3,jut,c,0,epsilon); % serif
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10.11.11',12,20,21,21',22); endchar;
+
+iff known long_s:
+cmchar "The letter long s"; % from cm (letter f without bar)
+beginchar(long_s,5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs:
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % middle stem serif
+ bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+%pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+%pos3(bar,90); pos4(bar,90);
+%rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+%filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+iff known esh:
+cmchar "The letter esh"; %by emma pease % jk used own sans serif design
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+if serifs:
+beginchar(esh,5.5u#,asc_height#,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pickup tiny.nib; pos0(stem',0); pos1(shaved_stem,0);
+x0=x1;
+x1=.5w;
+top y0=x_height if serifs: +min(oo,serif_drop) fi;
+bot y1=-1/3d;
+pickup fine.nib; numeric bulb_diam;
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x1,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z1l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z1e{down}...z5e{left}; bulb(5,6,7); % lower arc and bulb
+ bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+pickup tiny.nib;
+penpos3(x1r-x1l,0); x3l=x1l; top y3=x_height;
+filldraw stroke z1e--z3e; % stem
+pickup fine.nib; pos3'(x1r-x1l-(hround stem_corr)+tiny,180);
+y3'=y3; lft x3'r=tiny.lft x1l;
+penpos4(x3'l-x3'r,180); x4=x3'; y4+.5vair=.5[x_height,h];
+pos8(vair,90); top y8r=h+oo;
+ x8=.5[x4,x2r]; (xa,y8r)=whatever[z8l,z4l];
+ x8r:=min(xa,.5[x8,x2r]); pos9(hair,0); bulb(8,9,2); % bulb
+ filldraw stroke z3'e--z4e & super_arc.e(4,8); % arc
+else:
+beginchar(esh,3u#+max(1.5u#,stem#)+max(3.5u#,2flare#),
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos4(stem,180);
+pos5(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.75[-d,y4];
+x4=x5=.5w;
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...{down}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{down}...{left}z7e; % lower arc
+fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "The letter t";
+beginchar("t",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known long_t:
+cmchar "The letter long t";
+beginchar(long_t,6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair)-d;
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-d-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround(.75bar_height-d),top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,(bar_height-d)];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known thorn:
+%cmchar "Icelandic small thorn"; % from im -- original source: DEK cmman.mf
+cmchar"The letter thorn";
+beginchar(thorn,10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff known sami_t:
+cmchar "The letter crossed t"; % derived from cm t
+beginchar(sami_t,6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup crisp.nib;
+y9=y10=bar_height; pos9(bar,90); pos10(bar,90); x9=x2; rt x10=rt x8;
+filldraw stroke z9e--z10e; % zusatz crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+% if bot y10-top y6<.5u: top y6:=bot y10-.5u; fi % does the tail touch the zusatz
+% % bar?
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+% if bot y10-top y5<.5u: top y5:=bot y10-.5u; fi % does the tail touch the zusatz
+% % bar?
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff known hooktop_t:
+cmchar "The letter t";
+beginchar(hooktop_t,6u#+max(u#,.5stem#),asc_height#,0);
+italcorr asc_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric t_height; t_height=if hefty: 9/7 else: 10/7 fi x_height;
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=t_height;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=t_height;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+z1'=z1;
+if hefty: pos1'(hround(shaved_stem-stem_corr),180) else: pos1'(hair,180) fi;
+pos0(vair,90);
+pos[-1](hair,0); pos[-2](flare,0);
+x0=.4[x1,x[-1]]; top y0r=h+oo;
+rt x[-1]r=hround(w-.1u); y[-2]=y1;
+filldraw z0r{left}...{down}z1'r--z1'l{up}...{right}z0l--cycle;
+bulb(0,[-1],[-2]);
+penlabels([-2],[-1],0,1,2,3,4,5,6,7,8); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/loweruvw.mf b/Master/texmf-dist/fonts/source/jknappen/fc/loweruvw.mf
new file mode 100644
index 00000000000..8b7070f7197
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/loweruvw.mf
@@ -0,0 +1,278 @@
+% This is LOWERUVW.MF
+% Version 1.0b
+% Date 17-NOV-1994
+%
+% (c) 1991, 1994 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D 55099 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% u, v, w
+%
+% And the following on demand, i. e. if their code is known:
+%
+% u_hat, u_acute, u_grave, u_tilde, u_dotu, var_u (round v), w_breve
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter u";
+beginchar("u",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+picture savedpicture;
+savedpicture:=currentpicture;
+savedpoint:=x5;
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+iff known u_tilde:
+cmchar "The letter u with tilde";
+beginchar(u_tilde,10u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/6w);rt x4l=hround(5/6w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/6w);rt x5l=hround(5/6w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known u_acute:
+cmchar "The letter u with acute";
+beginchar(u_acute,10u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known u_grave:
+cmchar "The letter u with gravis";
+beginchar(u_grave,10u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known u_hat:
+cmchar "The letter u with circumflex";
+beginchar(u_hat,10u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known u_dotu:
+cmchar "The letter u with dot below";
+beginchar(u_dotu,10u#,x_height#,0.875desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(savedpoint); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+savedpicture:=nullpicture;
+numeric savedpoint;
+
+cmchar "The letter v";
+beginchar("v",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4); endchar;
+
+iff known var_u:
+cmchar "The letter round v"; % jk
+beginchar(var_u,9u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(serif_fit#+stem_shift#,0);
+interim superness:=more_super;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos2'(stem,180); z2'=z2;
+pos3(vair,-90);
+pos4(hair,0);
+x1=x2; x3=.5[x1,x4];
+top y1=h; y2=1/3h; bot y3r=-oo;
+lft x1l=hround max(2u,3u-.5stem);
+rt x4r=hround(w-.5u); y4=.57h;
+if not serifs:pos34(hair,0); x34=x4; y34=.8h; fi
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4); % arc
+if serifs:
+ v_bulb(4,5); % closing bulb
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+else:
+ pos5(vair,90); pos6(flare,100);
+ top y5r=h+oo; top y6r=vround .9h; lft x6r=hround(.5w+u);
+ x5=.2[x6l,x4l];
+ filldraw stroke z4e--z34e...term.e(5,6,left,1,4);
+fi
+penlabels(1,2,3,34,4,5); endchar;
+
+cmchar "The letter w";
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+iff known w_breve:
+cmchar "The letter w with breve";
+beginchar(w_breve,13u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+currentpicture:=savedpicture;
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=hround(.5w-2.5u-.5vair);x3r=hround(.5w+2.5u+.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+savedpicture:=nullpicture;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/lowerxyz.mf b/Master/texmf-dist/fonts/source/jknappen/fc/lowerxyz.mf
new file mode 100644
index 00000000000..815aee01de1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/lowerxyz.mf
@@ -0,0 +1,236 @@
+% This is LOWERXYZ.MF
+% Version 1.0b
+% Date 6-APR-2004
+%
+% (c) 1991--2004 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% x, y, z
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_y, zhe (ezh)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter x";
+beginchar("x",if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+
+cmchar "The letter y";
+beginchar("y",if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff known hooktop_y:
+cmchar "The letter hooktop y";
+beginchar(hooktop_y,11.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-3u-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+ z11=whatever[z3,z4]; y11=.8h; penpos11(alpha*right_stem,0);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,11l,1,1,11r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,11l,1,1,11r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ z11'=z11; penpos11'(alpha*right_stem,180);
+ penpos12(vair,90);penpos13(hair,0);penpos14(light_bulb,0);
+ x12=w-2u; top y12=h+oo; y14=.85h-.5light_bulb; rt x14=hround w-.35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % lower arc and bulb
+ fill stroke z11'e{z4-z3}...{right}z12e; bulb(12,13,14); % upper arc & bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(3,4);
+ inner_jut=jut;
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % lower arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); % arc and terminal
+ clearpen; penpos13(bot_vair,-90); x13=w-2.5u; y13l=h+oo;
+ fill stroke z11e{z4-z3}...{right}z13e; % upper arc
+ pickup fine.nib; pos 13'(bot_vair,-90); z13'=z13;
+ pos14(2/3[bot_vair,flare],-85);
+ rt x14l=hround w-u; top y14l=vround .96h+oo;
+ filldraw stroke term.e(13',14,right,1,4); % upper terminal
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+cmchar "The letter z";
+beginchar("z",8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known zhe:
+cmchar "The letter ezh"; % adapted from Julian Bradfield's cmoe yogh
+beginchar(zhe,8u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,0);
+numeric arm_thickness,arm_thickness#,z_stem ;
+arm_thickness# = .9[vair#,.85stem#]; % changed
+define_whole_vertical_blacker_pixels(arm_thickness);
+if arm_thickness<crisp.breadth: arm_thickness:=crisp.breadth; fi
+z_stem = .1[vair,stem] ;
+pickup tiny.nib; rt x1r=rt x2r=hround(w-1.2u);
+top y1=h; y2=min(y1,h-2/3arm_thickness);
+lft x3l = hround .33w ; y3 = .7bar_height ;
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z1 of currentpen;
+fill top lft z1l--z1l+delta---z3l+delta..lft z3l
+ ..bot z3r--z3r-delta---rt z1r..top z1r
+ ---cycle; % diagonal
+z99 = rt z1r ; z98 = z99 + (u,0) ; % for cutting away
+z97 = z99 + 10*(z3-z1) ; z96 = z97 + (u,0) ;
+pickup crisp.nib; pos5(arm_thickness,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.6)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+% now cut away the excess arm
+erase fill z99 --- z98 --- z96 --- z97 --- cycle ;
+pickup fine.nib ;
+pos10'(vair,90) ; pos11(curve,0) ;
+pos12(.1[vair,curve],-90) ;
+z10' - z3 = whatever*dir 30 ;
+x10' = x3 + u ; x10 = x10' ; y10r = good.y y10'r ; pos10(vair,90) ;
+bot y12r = -d-oo ; x12 = .5w ;
+y11 = .5[y10,y12] ; rt x11r = hround(w-.9u) ;
+z3' = z3 ; z3'l = z3r ; z3'r = z3l ;
+filldraw stroke z3'e .. z10e{right} ;
+filldraw stroke pulled_arc.e(10,11) & pulled_arc.e(11,12) ;
+if serifs: pos13(hair,-180) ; y13=-.1d ; lft x13r = hround .8u ;
+ pos14(flare,-180) ; bulb(12,13,14) ;
+else: pos13(5/7[vair,flare],angle(-3u,-h)) ;
+lft x13r = hround .9u ; y13 = -.1d ;
+x13l := good.x x13l ; y13l := good.y y13l ;
+filldraw stroke term.e(12,13,left,1,4) ; fi
+penlabels(1,2,3,4,5,6,7,8,10,11,12,13,14); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/uppera.mf b/Master/texmf-dist/fonts/source/jknappen/fc/uppera.mf
new file mode 100644
index 00000000000..a2d47e2078e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/uppera.mf
@@ -0,0 +1,200 @@
+% This is UPPERA.MF
+% Version 1.0b
+% Date 17-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% A
+%
+% And the following on demand, i. e. if their code is known:
+%
+% A_grave, A_acute, A_hat, A_umlaut, A_tilde, AE_lig (\AE)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter A";
+beginchar("A",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+iff known A_umlaut:
+cmchar "Capital letter A with trema";
+beginchar(A_umlaut,13u#,cap_height#+comma_depth#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=good.x(.5w-1.75u); top y2r=h+1;
+if bot y2l<cap_height+o+slab: y2l:=min(y2r-eps,cap_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(.5w+1.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known A_tilde:
+cmchar "Capital letter A with tilde";
+beginchar(A_tilde,13u#,cap_height#+comma_depth#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-cap_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/5w);rt x4l=hround(4/5w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[cap_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/4w);rt x5l=hround(3/4w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[cap_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known A_acute:
+cmchar "Capital letter A with acute";
+beginchar(A_acute,13u#,cap_height#+comma_depth#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known A_grave:
+cmchar "Capital letter A with gravis";
+beginchar(A_grave,13u#,cap_height#+comma_depth#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known A_hat:
+cmchar "Capital letter A with circumflex";
+beginchar(A_hat,13u#,cap_height#+comma_depth#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[cap_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,cap_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+savedpicture:=nullpicture;
+
+iff known AE_lig:
+cmchar "The ligature AE";
+beginchar(AE_lig,16u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,mid_stem,outer_jut,alpha;
+mid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(mid_stem,0); pos2(mid_stem,0);
+lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0); x5=x1;
+top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.65u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,.5cap_jut); fi % lower middle serif
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+ endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperbcd.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperbcd.mf
new file mode 100644
index 00000000000..6d2fdd24ad7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperbcd.mf
@@ -0,0 +1,284 @@
+% This is UPPERBCD.MF
+% Version 1.1a
+% Date 13-MAR-1992
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% B, C, D
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_B, cyr_B (variant of hooktop_B), C_cedilla, hooktop_C, hooktop_D,
+% Edh (crossed D, also uppercase of long_d), hooktop_Edh (proposed capital Edh
+% for african use)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter B";
+beginchar("B",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+iff known hooktop_B:
+cmchar "Capital letter lefthook B"; % jk, based on cm
+beginchar(hooktop_B,12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(4u#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs:
+% nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+left_hook(1,1',21,22,23,24); %left hook
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,21,22,23,24); endchar;
+
+iff known cyr_B:
+cmchar "Capital cyrillic letter BE"; % from cmcyr
+beginchar(cyr_B,12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=.5[x1,w-1.5]+.25u; x7r=hround(w-u); x8l:=x8l-.5u;
+if serifs: right_curve=cap_curve-stem_corr; x6=.5[x1,w-1.5u]+.5u;
+else: right_curve=cap_curve-3stem_corr; x6=.5[x1,w-2.5u]+.5u;
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-1.5u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter C";
+if serifs: beginchar("C",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar("C",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+picture savedpicture;
+savedpicture:=currentpicture;
+savedpoint:=x4;
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+iff known C_cedilla:
+cmchar"Capital letter C with cedilla";
+beginchar(C_cedilla,13u#,cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+x1=savedpoint;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); endchar;
+
+iff known hooktop_C:
+cmchar"Capital letter hooktop C";
+beginchar(hooktop_C,13u#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+currentpicture:=savedpicture;
+%if serifs:
+pickup tiny.nib;
+pos0(cap_stem,180); pos1(cap_stem,180); pos2(cap_band,90);
+pos3(cap_hair,0); pos4(flare,0);
+x0=x1=savedpoint; y1=.5[h,cap_height]; y0=cap_height;
+x2=.4[x1,x3]; top y2r=h+oo;
+rt x3r= if serifs: hround(w-.7u) else: hround(w-1.1u) fi;
+y4=.35[h,cap_height];
+filldraw z2r{left}...{down}z1r--z0r--z0l--z1l{up}...{right}z2l--cycle;
+bulb(2,3,4);
+%else:
+%fi
+penlabels(0,1,2,3,4); endchar;
+
+numeric savedpoint;
+savedpicture:=nullpicture;
+
+cmchar "The letter D";
+beginchar("D",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7); endchar;
+
+iff known hooktop_D:
+cmchar "Capital letter hooktop D"; % jk, based on cm
+beginchar(hooktop_D,13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(4u#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs:
+% nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+left_hook(1,1',21,22,23,24); % left hook
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,21,22,23,24); endchar;
+
+iff known Edh:
+cmchar"Capital letter crossed D"; % Capital of icelandic edh, kroatian dje and
+ % ewe d with tail
+% cmchar "Capital Eth"; % from im
+beginchar(Edh,13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+%pickup crisp.nib ; % now the edh bar % changed
+%pos8(cap_band,90) ; pos9(cap_band,90) ;
+%top y8r = vround(.52h + .5cap_band) ; y9 = y8 ;
+%lft x8 = 0 ; x1 - x8 = x9 - x1 ;
+%filldraw stroke z8e --- z9e ;
+pickup crisp.nib; y9-.5bar=.2[bar_height,x_height];
+y10+.5bar=.8[bar_height,x_height]; lft x9=0; x1-x9=x10-x1;
+numeric theta; theta=angle(z10-z9)+90; pos9(bar,theta); pos10(bar,theta);
+filldraw stroke z9e--z10e; % cross piece (from "Cross for polish l and L")
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7,9,10); endchar;
+
+iff known hooktop_Edh:
+cmchar"Capital letter hooktop_Edh"; % jk, based on im
+beginchar(hooktop_Edh,13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(4u#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs:
+% nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pickup crisp.nib; y9-.5bar=.2[bar_height,x_height];
+y10+.5bar=.8[bar_height,x_height]; lft x9=0; x1-x9=x10-x1;
+numeric theta; theta=angle(z10-z9)+90; pos9(bar,theta); pos10(bar,theta);
+filldraw stroke z9e--z10e; % cross piece (from "Cross for polish l and L")
+left_hook(1,1',21,22,23,24); % left hook
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7,9,10,21,22,23,24); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/uppere.mf b/Master/texmf-dist/fonts/source/jknappen/fc/uppere.mf
new file mode 100644
index 00000000000..4a2e8c2d3d4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/uppere.mf
@@ -0,0 +1,383 @@
+% This is UPPERE.MF
+% Version 1.0b
+% Date 17-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% E
+%
+% And the following on demand, i. e. if their code is known:
+%
+% E_grave, E_acute, E_hat, E_hachek, E_dot, E_dotu, E_bar, E_uline,
+% E_umlaut, E_tilde, open_E, open_E_tilde, inversed_E, var_inv_E (variant
+% inversed E, looking like the lowercase one)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter E";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff known E_dot:
+cmchar "Capital letter E with dot";
+beginchar(E_dot,12u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-cap_height-o<slab:
+ y99l:=min(y99r-eps,cap_height+o+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+iff known E_tilde:
+cmchar "Capital letter E with tilde";
+beginchar(E_tilde,12u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-cap_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/5w);rt x4l=hround(4/5w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[cap_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/5w);rt x5l=hround(4/5w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[cap_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known E_grave:
+cmchar "Capital letter E with gravis";
+beginchar(E_grave,12u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known E_acute:
+cmchar "Capital letter E with acute";
+beginchar(E_acute,12u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known E_hat:
+cmchar "Capital letter E with circumflex";
+beginchar(E_hat,12u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[cap_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,cap_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known E_hachek:
+cmchar "Capital letter E with hachek";
+beginchar(E_hachek,12u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+currentpicture:=savedpicture;
+h':=vround(cap_height+comma_depth); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-cap_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[cap_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known E_bar:
+cmchar "Capital letter E with macron";
+beginchar(E_bar,12u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+top y91r=top y92r=h+o;
+if serifs: lft x91=w-rt x92=hround 2u; else: rt x92=hround(w-2u);
+lft x91=hround 3u; fi
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+
+iff known E_umlaut:
+cmchar "Capital letter E with trema";
+beginchar(E_umlaut,12u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric dot_diam;
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=good.x(.5w-1.75u); top y2r=h+1;
+if bot y2l<cap_height+o+slab: y2l:=min(y2r-eps,cap_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(.5w+1.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known E_dotu:
+cmchar "Capital letter E with dot below";
+beginchar(E_dotu,12u#-width_adj#,cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+iff known E_uline:
+cmchar "Capital letter E with bar below";
+beginchar(E_uline,12u#-width_adj#,cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+bot y91l=bot y92l=-d-o;
+if serifs: lft x91=w-rt x92=hround 2u; else: rt x92=hround(w-2u);
+lft x91=hround 3u; fi
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+savedpicture:=nullpicture;
+
+
+iff known open_E:
+cmchar "Capital letter open E"; % from cmcyr
+if serifs: beginchar(open_E,11u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0); slantswitch; % mirror will reswitch the slant
+ pickup fine.nib; pos1(cap_hair,180); pos2(cap_band,90);
+ pos4(cap_band,-90); lft x1r=hround(u); top y2r=h+o;
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+ pos7(vair,-90); pos8(vair,-90);
+ pos9(max(fine.breadth,vround 2/3vair),90); pos10(cap_curve,0);
+ rt x3r=hround(w-1.25u); x2=x9=.45[2.5u,x10]; x4=.45[x1,x10];
+ rt x10r=hround(w-.75u); lft x8=hround 5u;
+ y3=.35[top y7l,bot y2l]; y10=.45[bot y9l,top y4l];
+ top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ pos5'(cap_hair,-180); pos5(flare+(cap_stem-stem),-180);
+ bot y4r=-o; rt x5l=hround 2.75u; z5r=z5'r;
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ... pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z7e---z8e; % upper bowl
+ filldraw z8r--z9l--z9r--z8l---cycle; % middle tip
+ filldraw stroke pulled_super_arc.e(9,10)(.5superpull)
+ & pulled_super_arc.e(10,4)(.5superpull)...{up}z5'e; % lower bowl
+%changed to have no bulb jk
+% bulb(4,5',5); % bulb
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x1-x2,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(open_E,9.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0); slantswitch; % mirror will reswitch the slant
+ pickup fine.nib; pos1(1.2flare,100); pos2(slab,90);
+ pos3(cap_curve,0); pos4(slab,-90); pos5(flare,-95);
+ rt x1r=hround(1.1u); x2=x9=.5w; x4=.45[x1,x10];
+ rt x3r=hround w-max(u,2u-.5cap_curve); rt x5r=hround(.9u);
+ top y1r=vround .9h+o; top y2r=h+o; y3=.35[top y7l,bot y2l];
+ bot y4r=-o; bot y5r=vround .15h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ pos7(vair,-90); pos8(vair,-90);
+ pos9(max(fine.breadth,vround 2/3vair),90); pos10(cap_curve,0);
+ rt x10r=hround(w-.75u); lft x8=min(hround 5u,lft x9)-eps;
+ y10=.45[bot y9l,top y4l]; top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & pulled_super_arc.e(3,8)(.5superpull); % upper bowl
+ filldraw stroke pulled_super_arc.e(9,10)(.5superpull)
+ & super_arc.e(10,4) & term.e(4,5,left,.8,4); fi % lower bowl
+mirror(.5w); % and reverse the cyrillic Z
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+iff known open_E_tilde:
+cmchar "Capital letter open E with tilde"; % from cmcyr
+if serifs: beginchar(open_E_tilde,11u#,cap_height#+comma_depth#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+else: beginchar(open_E_tilde,9.5u#,cap_height#+comma_depth#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+fi
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-cap_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/6w);rt x4l=hround(5/6w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[cap_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/6w);rt x5l=hround(5/6w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[cap_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+savedpicture:=nullpicture;
+
+iff known reversed_E:
+cmchar "Capital letter reversed E"; % from cm
+beginchar(reversed_E,12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0); slantswitch; % mirror will reswitch the slant
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+mirror(.5w); % reversion
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff known var_inv_E:
+cmchar "The Bashkirian letter flipped e"; % jk, first made for Bashkir
+beginchar(var_inv_E,14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl %now we have an O
+y9r-y9l=y10r-y10l=cap_band; x9r=x9l=x2; x10r=x10l=x4; y9r=y10r=top y2;
+penstroke z9e--z10e; % bar
+bot y6=bot y7=top y9r; top y5=top y8=min(.675h,bot y1l-eps);
+lft x6=lft x5=0; rt x7=rt x8=.5w;
+unfill z5--z6--z7--z8--cycle; cullit; % erase extra arc
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4);
+endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperfgh.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperfgh.mf
new file mode 100644
index 00000000000..4c30b7915ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperfgh.mf
@@ -0,0 +1,258 @@
+% This is UPPERFGH.MF
+% Version 1.0a
+% Date 8-SEP-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% F, G, H
+%
+% And the following on demand, i. e. if their code is known:
+%
+% long_F, G_dot, ipa_Gamma, crossed_H
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter F";
+beginchar("F",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+iff known long_F:
+cmchar "Capital letter long F"; % jk, based on cm F and J
+beginchar(long_F,14.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-stem_corr);
+jw:=9u; pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(jw-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+rt x11r=rt x12r=rt x1r; top y11=h; bot y12=0;
+pickup crisp.nib; pos13(slab,90); pos14(hair,0);
+top y13r=h; x13=x11; rt x14r=hround(w-.75u); y14=good.y(y13l-beak)-eps;
+arm(13,14,e,beak_darkness,beak_jut); % upper arm and beak
+pos15(cap_bar,-90); pos16(hair,0);
+top y15l=vround(.5[y12,y11]+.5cap_bar); x15=x11;
+pos10(cap_bar,90); pos17(hair,0);
+z10=z15; x16=x17; y16-y15l=y10l-y17;
+if serifs: rt x16r=hround(w-4u+.5hair); y16=good.y(y15l+.6beak)+eps;
+ rt x19r=hround(w-.5u);
+else: rt x16r=hround(w-1.5u); y16=y15l+eps; rt x19r=hround(w-.75u); fi
+arm(15,16,f,beak_darkness,0); arm(10,17,g,beak_darkness,0);%middle arm and serif
+if serifs: nodish_serif(11,12,a,1/3,cap_jut,b,1/3,.5cap_jut);fi% upper serif
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4,5,10,11,12,13,14,15,16,17,18,19);
+ endchar;
+
+cmchar "The letter G";
+if serifs: beginchar("G",14u#,cap_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ savedpoint:=.5w;
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar("G",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+ savedpoint:=x2; fi
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+iff known G_dot:
+cmchar "Capital letter G with dot";
+if serifs: beginchar(G_dot,14u#,asc_height#+comma_depth#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+else: beginchar(G_dot,12u#,asc_height#+comma_depth#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+fi
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(savedpoint); top y99r=h+1;
+if bot y99l-cap_height-o<slab:
+ y99l:=min(y99r-eps,cap_height+o+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+savedpicture:=nullpicture;
+numeric savedpoint;
+
+iff known ipa_Gamma:
+cmchar "Capital letter IPA Gamma"; % jk, based on cm X
+beginchar(ipa_Gamma,if serifs:13u# else: 11.5u# fi,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=-d;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+penpos5(alpha2*stem2,0); penpos6(alpha1*stem1,0);
+penpos5'(alpha2*stem2,-180); penpos10(cap_band,-90);
+z5=whatever[z3,z2]; z6=whatever[z1,z4]; x5=.25[x3,x4]; y6=y5; z5'=z5;
+x10=.5[x5,x6]; bot y10=-d-o;
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',5l,1,.5,5r,34')--z34'
+ --diag_end(34',6l,.5,1,6r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,6l,.5,1,6r,1r)--cycle; % left diagonal
+ fill diag_end(2l,5l,.5,1,5r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+filldraw stroke z6e{z4-z1}...z10e...{z2-z3}z5'e; % bowl
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+% prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+% if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+% else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+% dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+% dish_serif(3',2,g,1/2,outer_jut+xjut,
+% h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+fi
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,19,12,13,24,34); endchar;
+
+cmchar "The letter H";
+beginchar("H",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+iff known crossed_H:
+cmchar "Capital letter crossed H"; % jk, using cm H
+beginchar(crossed_H,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+ penpos5(cap_bar,90); penpos6(cap_bar,90); penpos7(cap_bar,90);
+ penpos8(cap_bar,90);
+compute_spread(.45x_height#,.55x_height#);
+x5=x1; x6=x3; y5=y6=.52h+.45spread;
+fill stroke z5e--z6e; % upper bar
+x7=x1; x8=x3; y7=y8=.52h-.45spread;
+fill stroke z7e--z8e; % lower bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperij.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperij.mf
new file mode 100644
index 00000000000..138270e6782
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperij.mf
@@ -0,0 +1,148 @@
+% This is UPPERIJ.MF
+% Version 1.0b
+% Date 8-APR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% I, J
+%
+% And the following on demand, i. e. if their code is known:
+%
+% I_dotu, I_tilde, I_umlaut, latin_Iota
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter I"; % cm
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace: % Condition changed to make sstt font
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+picture savedpicture;
+savedpicture:=currentpicture;
+savedpoint:=x1;
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+iff known I_umlaut:
+cmchar "Capital letter I with trema";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(I_umlaut,max(6u#,4u#+cap_stem#),cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+pos3(dot_diam,0); penpos4(y2r-y2l,90);
+if not monospace: x1=x2=w-x3=w-x4=good.x(.5w-1.75u);
+else: x1=x2=w-x3=w-x4=good.x(.5w-u); fi
+top y2r=h+1; y3=y4=y1;
+if bot y2l<cap_height+o+slab: y2l:=min(y2r-eps,cap_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known I_tilde:
+cmchar "Capital letter I with tilde";
+beginchar(I_tilde,max(6u#,4u#+cap_stem#),cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-cap_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ if not monospace: lft x1r=hround 0;rt x4l=hround w;
+ else: lft x1r=w-rt x4l=hround u; fi
+ top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[cap_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ if not monospace: lft x1r=0;rt x5l=w; else: lft x1r=w-rt x5l=u; fi
+ x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[cap_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known I_dotu:
+cmchar "Capital letter I with dot below";
+beginchar(I_dotu,max(6u#,4u#+cap_stem#),cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(savedpoint); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+numeric savedpoint;
+savedpicture:=nullpicture;
+
+iff known latin_Iota:
+cmchar "Capital letter latin Iota"; % from cm J
+beginchar(latin_Iota,9u#,cap_height#,0);
+adjust_fit(0,cap_serif_fit#);
+slantswitch; % mirror will reswitch the slant
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+mirror(.5w);
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter J"; % cm
+beginchar("J",9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+ endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperklm.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperklm.mf
new file mode 100644
index 00000000000..efd4a69260a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperklm.mf
@@ -0,0 +1,198 @@
+% This is UPPERKLM.MF
+% Version 1.0b
+% Date 8-APR-1991
+%
+% (c) 1991 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% K, L, M
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_K, M_acute
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter K";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+iff known hooktop_K:
+cmchar "Capital letter hooktop K";
+beginchar(hooktop_K,13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-4u);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r:% y3'$=h;
+y7''$=.79h; y6'$=0;
+z4$=z7''$+whatever*(z3-z4);
+z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r]; z7=whatever[z3,z4]; y7=h-.21h; penpos7(alpha1*(stem1-tiny),0);
+z7''r=z7r+penoffset z7-z4 of currentpen+whatever*(z7-z4);
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,7''r,1,.5,7''l,4l)--z4l--cycle; % part of upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs:
+ pickup tiny.nib;
+ z7'=z7; penpos7'(alpha*(stem1-tiny),180);
+ pickup fine.nib;
+ pos8(cap_band,90); pos9(cap_hair,0);
+ pos10(flare+(cap_stem-stem),0);
+ top y8=h+o; x8=.5[x3,x9]; y10=5/6h; rt x10r=hround(w-.5u);
+ z9r=z10r;
+ filldraw z7r{z3-z4}...z8l--z8r...{z4-z3}z7l--cycle; % link
+ bulb(8,9,10); % bulb
+ pickup tiny.nib;
+ numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); % lower diagonal serif
+else:
+% pickup fine.nib;
+ pos8(alpha1*(stem1-tiny),0); z8=z7;
+ pos9(flare,angle(6.5u,-h)); pos10(flare,-100);
+ top y9l=h+o; x9l=.5[x8l,x10l]; rt x10l=hround(w-.5u);
+ top y10l=vround.94h+o;
+ filldraw stroke z7e{z3-z4}....term.e(9,10,right,1,10);
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter L";
+beginchar("L",11u#-width_adj#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The letter M";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+iff known M_acute:
+cmchar "Capital letter M with acute";
+beginchar(M_acute,16u#+width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+savedpicture:=nullpicture;
+
+ endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/uppern.mf b/Master/texmf-dist/fonts/source/jknappen/fc/uppern.mf
new file mode 100644
index 00000000000..dd5f652ba3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/uppern.mf
@@ -0,0 +1,251 @@
+% This is UPPERN.MF
+% Version 1.0b
+% Date 17-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% N
+%
+% And the following on demand, i. e. if their code is known:
+%
+% N_acute, N_tilde, N_uline, N_dot, Enj, var_Enj, Eng, var_Eng
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter N";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+iff known N_dot:
+cmchar "Capital letter N with dot";
+beginchar(N_dot,13u#+width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-cap_height-o<slab:
+ y99l:=min(y99r-eps,cap_height+o+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+iff known N_acute:
+cmchar "Capital letter N with acute";
+beginchar(N_acute,13u#+width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known N_tilde:
+cmchar "Capital letter N with tilde";
+beginchar(N_tilde,13u#+width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-cap_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/5w);rt x4l=hround(4/5w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[cap_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/4w);rt x5l=hround(3/4w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[cap_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known N_uline:
+cmchar "Capital letter N with bar below";
+beginchar(N_uline,13u#+width_adj#,cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+bot y91l=bot y92l=-d-o; lft x91=w-rt x92=hround 2u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+savedpicture:=nullpicture;
+
+iff known var_Enj:
+cmchar "Capital letter variant ENJ"; % jk
+beginchar(var_Enj,14u#,cap_height#,0);
+italcorr cap_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit (0,serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(7u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ bulb(3,4,5); % bulb
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,0); % upper serif
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal % J
+pos7(cap_stem,-180);pos8(cap_stem,-180); pos9(cap_band,-90);
+pos10(min(cap_hair,cap_stem'),0);
+rt x10=rt x2; rt x7=rt x8=hround w-u; x9=.5[x2,x7];
+y10=y8=2/3h; bot y7=0; top y9=h+o;
+filldraw stroke z10e{up}...z9e...{down}z8e--z7e; % arc and second stem
+ if serifs: dish_serif(7,1,c,1/3,1.3cap_jut,d,1/3,1.3cap_jut);fi %lower serif
+penlabels(1,2,3,4,5,7,8,9,10); endchar;
+
+iff known Enj:
+cmchar "Capital letter ENJ"; % jk, based on cm N and J
+beginchar(Enj,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(3u#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y4=0;
+y2=.21h;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+if serifs:
+ pos13(vair,-90);pos14(cap_hair,-180);
+ pos15(flare+(cap_stem-stem),-180);
+ bot y13=-o; x13=.5[x14,x2]; y15=1/6h; rt x15l=hround -.25u; z15r=z14r;
+ filldraw stroke super_arc.e(2,13); bulb(13,14,15); % arc and bulb
+else:
+ pickup fine.nib; pos13(thin_stem,0); z13=z2;
+ pos14(flare,angle(6.5u,-h)); pos15(1.1flare,-100);
+ bot y14r=-o; x14r=.5[x15r,x13r]; lft x15r=hround-2.25u; bot y15r=vround.06h-o;
+ filldraw stroke z13e{down}....term.e(14,15,left,1,14); %arc and terminal
+fi
+math_fit(3u#,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+iff known Eng:
+cmchar"Capital letter ENG"; % jk
+beginchar(Eng,14u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+italcorr cap_height#*slant;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+y1=2/3h; rt x1r=hround(w-u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 8.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % right stem and arc
+ bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % right stem
+ pickup fine.nib; pos3(cap_stem,0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround 7.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+pickup tiny.nib; pos6(cap_stem,0);pos7(cap_stem,0);
+lft x6l=lft x7l=hround(max(2u,3u-.5cap_stem));top y6=h; bot y7=0;
+filldraw stroke z6e--z7e; %left stem
+pos8(min (cap_hair,cap_stem),0); pos9(cap_hair,-90); pos10(cap_stem,-180);
+y8=y10=2/3h; top y9=h+o; rt x8=rt x6; rt x10l=rt x1r; x9=.5[x8,x10];
+filldraw stroke z8e{up}...z9e...{down}z10e; % big arc
+if serifs:
+ numeric right_jut;
+ if rt x7r+cap_jut+u+1<lft x4r: right_jut=cap_jut;
+ else: x7r+right_jut+u+1=lft x4r; fi
+ dish_serif(6,7,a,1/3,cap_jut,b,1/3,0); % upper serif
+ dish_serif(7,6,c,1/3,cap_jut,d,1/3,right_jut); % lower serif
+fi
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+iff known var_Eng:
+cmchar"Capital letter variant ENG"; % jk
+beginchar(var_Eng,13u#,cap_height#,0); % should be approx square
+adjust_fit(0,0);
+lft x1=lft x2=w-rt x3=w-rt x4=.75u;
+top y1=top y4=h; bot y2=bot y3=0;
+penpos1(stem,0);
+fill z1--z2--z3--z4--cycle; % square
+lft x5=lft x6=lft x1+cap_stem; rt x7=rt x8=rt x4-cap_stem;
+bot y6=bot y7=bot y3+cap_band; top y5=top y8=top y1-cap_band;
+unfill z5--z6--z7--z8--cycle;% counter
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/uppero.mf b/Master/texmf-dist/fonts/source/jknappen/fc/uppero.mf
new file mode 100644
index 00000000000..e94e480f007
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/uppero.mf
@@ -0,0 +1,354 @@
+% This is UPPERO.MF
+% Version 1.0b
+% Date 17-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% O
+%
+% And the following on demand, i. e. if their code is known:
+%
+% O_grave, O_acute, O_hat, O_hachek, O_bar, O_uline, O_dot, O_dotu
+% O_umlaut, O_tilde, open_O, open_O_tilde, OE_lig (\OE), crossed_O (\O)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter O";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+iff known O_umlaut:
+cmchar "Capital letter O with trema";
+beginchar(O_umlaut,14u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric dot_diam;
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+currentpicture:=savedpicture;
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=good.x(.5w-1.75u); top y2r=h+1;
+if bot y2l<cap_height+o+slab: y2l:=min(y2r-eps,cap_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=good.x(.5w+1.75u);
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+iff known O_dot:
+cmchar "Capital letter O with dot";
+beginchar(O_dot,14u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); top y99r=h+1;
+if bot y99l-cap_height-o<slab:
+ y99l:=min(y99r-eps,cap_height+o+tiny+slab);fi
+y88=.5[y99l,y99r]; dot(88,99); % dot
+penlabels(88,99);endchar;
+
+iff known O_tilde:
+cmchar "Capital letter O with tilde";
+beginchar(O_tilde,14u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-cap_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/5w);rt x4l=hround(4/5w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[cap_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/5w);rt x5l=hround(4/5w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[cap_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known O_acute:
+cmchar "Capital letter O with acute";
+beginchar(O_acute,14u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known O_grave:
+cmchar "Capital letter O with gravis";
+beginchar(O_grave,14u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known O_bar:
+cmchar "Capital letter O with macron";
+beginchar(O_bar,14u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+top y91r=top y92r=h+o; lft x91=w-rt x92=hround 3u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+iff known O_hat:
+cmchar "Capital letter O with circumflex";
+beginchar(O_hat,14u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[cap_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,cap_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known O_hachek:
+cmchar "Capital letter O with hachek";
+beginchar(O_hachek,14u#-width_adj#,cap_height#+comma_depth#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+h':=vround(cap_height+comma_depth); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-cap_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[cap_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known O_dotu:
+cmchar "Capital letter O with dot below";
+beginchar(O_dotu,14u#-width_adj#,cap_height#,0.875desc_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+iff known O_uline:
+cmchar "Capital letter O with bar below";
+beginchar(O_uline,14u#-width_adj#,cap_height#,0.875desc_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos91(macron_breadth,90); pos92(macron_breadth,90);
+bot y91l=bot y92l=-d-o; lft x91=w-rt x92=hround 3u;
+filldraw stroke z91e--z92e; % bar
+penlabels(91,92); endchar;
+
+savedpicture:=nullpicture;
+
+iff known OE_lig:
+cmchar "The ligature OE";
+beginchar(OE_lig,18u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric light_stem;
+light_stem=max(tiny.breadth,hround .8[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround .5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.4u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+penpos11(vair,90); penpos13(vair,-90);
+if monospace: penpos12(fudged.cap_stem,180);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: penpos12(hround(cap_curve-stem_corr),180); fi
+x11=x13=.5w-2u; y11r=h+o; y13r=-o; y12=.5h-vair_corr; x12r=hround u;
+x14=x15=.5w; y14=2/3h; y15=1/3h; y12l:=.52h;
+penstroke super_arc.e(11,12) & super_arc.e(12,13); % left half of bowl
+fill z13r{right}..{right}(x2,0)--(x1,h){left}..{left}z11r
+ --z11l{right}...{z14-z11l}(.82[x11l,x14],.82[y14,y11l])
+ ...z14---z15...{z13l-z15}(.82[x13l,x15],.82[y15,y13l])
+ ...{left}z13l--cycle; % right half of bowl
+if serifs: serif(1,2,a,1/3,.5cap_jut); % upper serif
+ serif(2,1,b,1/3,.5cap_jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15); endchar;
+
+iff known crossed_O:
+cmchar "Scandinavian letter O/slash";
+beginchar(crossed_O,14u#,cap_height#+.25desc_depth#,.25desc_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90);
+penpos2(fudged.cap_stem,180); penpos4(fudged.cap_stem,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"| not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w;
+y1r=cap_height+o; y2=y4=.5cap_height-vair_corr; y3r=-o;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+x5=x4-vair; x6=x2+vair; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair',theta); pos6(vair',theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known open_O:
+cmchar "Capital letter OPEN O"; % from cm
+if serifs: beginchar(open_O,13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0); slantswitch; % mirror will reswitch the slant
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(open_O,11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0); slantswitch; % mirror will reswitch the slant
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+mirror(.5w); % reverse it
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+iff known open_O_tilde:
+cmchar "Capital letter OPEN O with tilde"; % from cm
+if serifs: beginchar(open_O_tilde,13u#,cap_height#+comma_depth#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+else: beginchar(open_O_tilde,11.5u#,cap_height#+comma_depth#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+fi
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-cap_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/6w);rt x4l=hround(5/6w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[cap_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/6w);rt x5l=hround(5/6w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[cap_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+savedpicture:=nullpicture;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperpqr.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperpqr.mf
new file mode 100644
index 00000000000..8bd2a303e66
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperpqr.mf
@@ -0,0 +1,130 @@
+% This is UPPERPQR.MF
+% Version 1.1a
+% Date 13-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% P, Q, R
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_P
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter P";
+beginchar("P",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff known hooktop_P:
+cmchar "Capital letter hooktop_P"; % jk, based on cm
+beginchar(hooktop_P,12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(4u#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs:
+% nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+pickup crisp.nib;
+left_hook(1,1',21,22,23,24); % left hook
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,21,22,23,24); endchar;
+
+cmchar "The letter Q";
+beginchar("Q",14u#-width_adj#,cap_height#,comma_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=cap_curve-hround stem_corr;
+penpos1(vair',90); penpos3(vair',-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"Q"| like |"O"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup tiny.nib;
+if hefty: penpos5(1.2(.5[cap_bar,light_curve]),0); penpos6(1.2light_curve,0);
+ x5=.5w; x6r=hround(w-1.5u);
+ y5=vround .28h; y6=-d;
+ fill diag_end(6r,5r,.25,1,5l,6l)--diag_end(5l,6l,.5,1,6r,5r)--cycle; % tail
+else: pos3'(vair,270); pos5(vair,180); pos6(vair,90);
+ pos7(cap_curve,85); penpos8(eps,180);
+ z3'=z3; x6=x3; top y6r=vround(.2h+.5vair);
+ lft x5r=hround(.5w-1.25u-.5vair); y5=.5[y3,y6];
+ bot y7l=-d; x7l=2/3[x6,x8]; y8=0; rt x8=hround(x4r+.1u);
+ filldraw stroke z3'e{left}...z5e{up}...z6e{right}
+ ..z7e{right}...z8e{up}; fi % tail
+math_fit(-.3cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter R";
+beginchar("R",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf
new file mode 100644
index 00000000000..ed616e663b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperst.mf
@@ -0,0 +1,271 @@
+% This is UPPERST.MF
+% Version 1.1a
+% Date 13-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% S, T
+%
+% And the following on demand, i. e. if their code is known:
+%
+% S_hachek, S_dotu, Esh, var_Esh, long_T, sami_T (crossed T), Thorn,
+% hooktop_T
+%
+% Higher versions of this file might include more characters.
+cmchar "The letter S";
+beginchar("S",10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+iff known S_dotu:
+cmchar "Capital letter S with dot below";
+beginchar(S_dotu,10u#,cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+iff known S_hachek:
+cmchar "Capital letter S with hachek";
+beginchar(S_hachek,10u#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+currentpicture:=savedpicture;
+h':=vround(cap_height+comma_depth); % height of circumflex being inverted
+if serifs: pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u);
+ top y1=top y3=h; y1-y2=.5(y2'-cap_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); bot y2=vround(1/12[cap_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x(.2[x2l,x2]); x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+savedpicture:=nullpicture;
+
+iff known Esh:
+cmchar "Capital letter ESH"; % jk
+beginchar(Esh,3u#+max(1.5u#,cap_stem#)+max(3.5u#,2flare#),
+ cap_height#,0);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pos0(flare+(cap_stem-stem),0); pos1(cap_hair,0); pos2(cap_band,90);
+pos4(cap_stem,180);
+pos5(cap_stem,0);
+pos7(cap_band,-90); pos8(cap_hair,-180); pos9(flare+(cap_stem-stem),-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.75[-d,y4];
+x4=x5=.5w;
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...{down}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{down}...{left}z7e; % lower arc
+penlabels(0,1,2,4,5,7,8,9); endchar;
+
+
+iff known var_Esh:
+cmchar "Capital letter variant ESH"; % jk
+beginchar(var_Esh,3u#+max(1.5u#,cap_stem#)+max(3.5u#,2flare#),
+ cap_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pos0(flare+(cap_stem-stem),0); pos1(cap_hair,0); pos2(cap_band,90);
+pos4(cap_stem,180);
+pos5(cap_stem,0);
+pos7(cap_band,-90); pos8(cap_hair,-180); pos9(flare+(cap_stem-stem),-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.75[-d,y4];
+x4=x5=.5w;
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...{down}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{down}...{left}z7e; % lower arc
+penlabels(0,1,2,4,5,7,8,9); endchar;
+
+cmchar "The letter T";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+iff known Thorn:
+%cmchar "Icelandic big thorn"; % from im
+cmchar"Capital letter THORN";
+beginchar(Thorn,12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+% z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+% x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+ x3=x1;
+ y3r=vround .8h;
+ y4=y3;
+ y5=.5[y4,y6];
+ y6=y7;
+ x7=x2;
+ y7l=vround .3h;
+ x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff known sami_T:
+cmchar "Capital letter crossed T"; % based on cm
+beginchar(sami_T,13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+pickup crisp.nib; y7-.5bar=.2[bar_height,x_height];
+y8+.5bar=.8[bar_height,x_height]; x7=.5w-2.5u; x8=.5w+2.5u;
+numeric theta; theta=angle(z8-z7)+90; pos7(bar,theta); pos8(bar,theta);
+filldraw stroke z7e--z8e; % cross piece (from "Cross for polish l and L")
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known long_T:
+cmchar "The letter long T"; % jk
+beginchar(long_T,13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+slantswitch; % mirror will reswitch slant
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; y2=.21h;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ pos13(vair,-90); pos14(cap_hair,-180); pos15(flare+(cap_stem-stem),-180);
+ bot y13r=-o; x13=.5[x14,x2];
+ y15=1/6h; rt x15l=2.75u; z15r=z14r;
+ filldraw stroke super_arc.e(2,13); % arc
+ bulb(13,14,15); % bulb
+else:
+ pickup fine.nib; pos13(cap_stem',0); z13=z2; pos14(flare, angle(6.5u,-h));
+ pos15(1.1flare,-100);
+ bot y14r=-o; x14r=.5[x13r,x15r]; lft x15r=hround .75u; bot y15r=vround .06h-o;
+ filldraw stroke z13e{down}...term.e(14,15,left,1,4); % arc & terminal
+fi
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs:
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+mirror(.5w);
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6,13,14,15);
+endchar;
+
+iff known hooktop_T:
+cmchar "Capital letter hooktop T"; % jk, based on cm Gamma
+beginchar(hooktop_T,9u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(4u#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % arm and beak
+if serifs:
+% nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+pickup crisp.nib;
+left_hook(1,1',21,22,23,24); % left hook
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4,21,22,23,24); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperuvw.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperuvw.mf
new file mode 100644
index 00000000000..8b4f5aae197
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperuvw.mf
@@ -0,0 +1,295 @@
+% This is UPPERUVW.MF
+% Version 1.1b
+% Date 21-MAR-1992
+%
+% (c) 1991, 1992 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% J"org Knappen
+% Institut f"ur Kernphysik
+% Postfach 39 80
+% D-W 6500 Mainz
+% knappen@vkpmzd.kph.uni-mainz.de
+
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% U, V, W
+%
+% And the following on demand, i. e. if their code is known:
+%
+% U_grave, U_acute, U_hat, U_tilde, U_dotu, var_U (round V), war_U (variant
+% round V), W_breve
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter U";
+beginchar("U",13u#+.5width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+picture savedpicture;
+savedpicture:=currentpicture;
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5); endchar;
+
+iff known U_tilde:
+cmchar "Capital letter U with tilde";
+beginchar(U_tilde,13u#+.5width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+currentpicture:=savedpicture;
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-cap_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=hround(1/5w);rt x4l=hround(4/5w); top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[cap_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=hround(1/4w);rt x5l=hround(3/4w); x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[cap_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff known U_grave:
+cmchar "Capital letter U with gravis";
+beginchar(U_grave,13u#+.5width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w-2.5u+.5stem);
+ x2=hround(.5w+5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround(.5w-3u); rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known U_acute:
+cmchar "Capital letter U with acute";
+beginchar(U_acute,13u#+.5width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+currentpicture:=savedpicture;
+if serifs: pickup crisp.nib; x1=hround(.5w+2.5u-.5stem);
+ x2=hround(.5w-5/6u);
+ y1+.5stem=h+eps; y2=max(2/3[h,cap_height],cap_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(.5w+3u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,cap_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff known U_hat:
+cmchar "Capital letter U with circumflex";
+beginchar(U_hat,13u#+.5width_adj#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+currentpicture:=savedpicture;
+if serifs:
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=good.x(.5w-2.25u); x3=good.x(.5w+2.25u); y1=y3=.5[cap_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else:
+ pickup fine.nib; pos1(vair,0); pos3(vair,0);
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,cap_height]-eps;
+ rt x3r=hround(lft x2l+3.25u+.5vair);
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=good.x(.2[x2r,x2]);
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff known U_dotu:
+cmchar "Capital letter U with dot below";
+beginchar(U_dotu,13u#+.5width_adj#,cap_height#,0.875desc_depth#);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+currentpicture:=savedpicture;
+pickup tiny.nib;
+pos88(dot_diam,0); pos99(dot_diam,90);
+x88=x99=good.x(.5w); bot y99l=-d-1;
+if top y99r+oo>-slab: y99r:=max(y99l+eps,-oo-tiny-slab); fi
+y88=.5[y99r,y99l];
+dot(88,99);
+penlabels(88,99); endchar;
+
+savedpicture:=nullpicture;
+
+cmchar "The letter V";
+beginchar("V",13u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+math_fit(.75u#-cap_height#*slant,ic#-4u#); penlabels(0,1,2,3,4); endchar;
+
+iff known var_U:
+cmchar "Capital letter round V";
+beginchar(var_U,11.5u#,cap_height#,0);
+italcorr cap_height#*slant;
+if monospace: adjust_fit(cap_serif_fit#-.5u#,0)
+else: adjust_fit(cap_serif_fit#,0) fi;
+interim superness:=more_super;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0);
+x1=x2; x3=.5[x1,x4];
+top y1=h; y2=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+rt x4r=hround(w-.5u); y4=.57h;
+if not serifs:pos34(hair,0); x34=x4; y34=.8h; fi
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4); % arc
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % serif
+ V_bulb(4,5); % closing bulb
+else:
+ pos5(cap_band,90); pos6(flare,100);
+ top y5r=h+oo; top y6r=vround .94h; lft x6r=hround(.5w+u);
+ x5=.2[x6l,x4l];
+ filldraw stroke z4e--z34e...term.e(5,6,left,1,4);
+fi
+penlabels(1,2,3,34,4,5); endchar;
+
+iff known war_U:
+cmchar "Capital letter upsilon-like U"; % jk
+beginchar(war_U,11.5u#,cap_height#,0);
+italcorr cap_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(cap_stem,-180); lft x3r=hround(2.5u-.5cap_stem);
+HOOK_IN(0,1,2)(skewed); % opening hook
+pos2'(cap_stem,-180); z2'=z2; pos4(cap_band,-90); pos5(cap_hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-o; y5=.57h;
+filldraw stroke z2'e{-u,-cap_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+V_bulb(5,6); % closing bulb
+math_fit(-2/3cap_height#*slant+.5cap_hair#+.5u#,2/3ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+cmchar "The letter W";
+beginchar("W",18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+picture savedpicture;
+savedpicture:=currentpicture;
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+
+
+iff known W_breve:
+cmchar "Capital letter W with breve";
+beginchar(W_breve,18u#,cap_height#+comma_depth#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+currentpicture:=savedpicture;
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=hround(.5w-4u+.5vair);x3r=hround(.5w+4u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(cap_height+o+tiny,1/3[cap_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+savedpicture:=nullpicture;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/jknappen/fc/upperxyz.mf b/Master/texmf-dist/fonts/source/jknappen/fc/upperxyz.mf
new file mode 100644
index 00000000000..bc48ef4ad13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/jknappen/fc/upperxyz.mf
@@ -0,0 +1,214 @@
+% This is UPPERXYZ.MF
+% Version 1.0d
+% Date 12-MAR-2004
+%
+% (c) 1991--2004 by J"org Knappen. See fc.rme for copying conditions
+% This file is part of the fc-package
+% See fc.rme for more information
+%
+% Contents:
+%
+% The following characters are generated without condition:
+%
+% X,Y,Z
+%
+% And the following on demand, i. e. if their code is known:
+%
+% hooktop_Y, Zhe (Ezh)
+%
+% Higher versions of this file might include more characters.
+
+cmchar "The letter X";
+beginchar("X",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The letter Y";
+beginchar("Y",13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+iff known hooktop_Y:
+cmchar "Capital letter hooktop Y";
+beginchar(hooktop_Y,15u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-3u-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-u-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos7(alpha*right_stem,0); z7=whatever[z3,z4]; y7=h-.21h;
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,7l,1,1,7r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,7l,1,1,7r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs:
+ z7'=z7; penpos7'(alpha*right_stem,180);
+ penpos8(cap_band,90); penpos9(cap_hair,0);
+ penpos10(flare+(cap_stem-stem),0);
+ top y8=h+o; x8=.5[x7,x9]; y10=5/6h; rt x10r=hround(w-.5u);
+ z9r=z10r;
+ filldraw stroke z7'e{z4-z3}...{right}z8e; % link
+ bulb(8,9,10); % bulb
+else:
+% pickup fine.nib;
+ pos8(cap_band,0); z8=z7;
+ pos9(flare,angle(6.5u,-h)); pos10(flare,-100);
+ top y9l=h+o; x9l=.5[x8l,x10l]; rt x10l=hround(w-.5u);
+ top y10l=vround.94h+o;
+ filldraw stroke z7e{z4-z3}....term.e(9,10,right,1,10);
+fi
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+% dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter Z";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known Zhe:
+cmchar "Capital letter EZH"; % jk, adapted from cmoe Yogh by J. Bradfield
+beginchar(Zhe,10u#,cap_height#,0);
+italcorr cap_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,0);
+numeric arm_thickness,z_stem;
+% The following two lines are from greeku.mf (Xi)
+arm_thickness=hround .9[vair,.85cap_stem];
+if arm_thickness<crisp.breadth: arm_thickness:=crisp.breadth; fi
+z_stem = .1[vair,cap_stem] ;
+pickup tiny.nib; rt x1r=rt x2r=hround(w-1.2u);
+top y1=h; y2=min(y1,h-2/3arm_thickness);
+lft x3l = hround .33w ; bot y3 = vround(.52h-.5arm_thickness);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z1 of currentpen;
+fill top lft z1l--z1l+delta---z3l+delta..lft z3l
+ ..bot z3r--z3r-delta---rt z1r..top z1r
+ ---cycle; % diagonal
+z99 = rt z1r ; z98 = z99 + (u,0) ; % for cutting away
+z97 = z99 + 10*(z3-z1) ; z96 = z97 + (u,0) ;
+pickup crisp.nib; pos5(arm_thickness,90); pos6(cap_hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.6)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+% now cut away the excess arm
+erase fill z99 --- z98 --- z96 --- z97 --- cycle ;
+pickup fine.nib ;
+pos10'(vair,90) ; pos11(cap_curve,0) ;
+pos12(.1[vair,cap_curve],-90) ;
+z10' - z3 = whatever*dir 30 ;
+x10' = x3 + u ; x10 = x10' ; y10r = good.y y10'r ; pos10(vair,90) ;
+bot y12r = -o ; x12 = .5w ;
+y11 = .5[y10,y12] ; rt x11r = hround(w-.9u) ;
+z3' = z3 ; z3'l = z3r ; z3'r = z3l ;
+filldraw stroke z3'e .. z10e{right} ;
+filldraw stroke pulled_arc.e(10,11) & pulled_arc.e(11,12) ;
+if serifs: pos13(hair,-180) ; y13=.8bar_height ; lft x13r = hround .8u ;
+ pos14(flare,-180) ; bulb(12,13,14) ;
+else: pos13(5/7[vair,flare],angle(-3u,-h)) ;
+lft x13r = hround .9u ; y13 = .8bar_height ;
+x13l := good.x x13l ; y13l := good.y y13l ;
+filldraw stroke term.e(12,13,left,1,4) ; fi
+penlabels(1,2,3,4,5,6,7,8,10,11,12,13,14); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/lh/base/fikparm.mf b/Master/texmf-dist/fonts/source/lh/base/fikparm.mf
new file mode 100644
index 00000000000..dcd04088cd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/fikparm.mf
@@ -0,0 +1,291 @@
+%
+% fikparm.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% File with modified macros for font startup from polish fik_mik.mf
+% (Bogus\l{}aw Jackowski and Marek Ry\'cko)
+% and
+% start of Lig & kerns block from lkligtbl.mf (Alexander Berdnikov)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Contents:
+%
+% |LHver_check| like exbase's |version_check|
+% If unknown fonteq: def fonteq
+% If unknown genmode: set genmode
+% Set param_base (it could be reset in fontbegin file)
+% Set flags for input glyph files (they could be reset in fontbegin file)
+% Set flags for letter shapes: not supported by current version (-"-)
+% Input fontbegin file (if necessary)
+% Defining boolean altcoding
+% Input cmbase and lcyrbeg (file with macros for ec param file)
+% input lkligtbl.mf (ligs & kerns block of A.Berdnikov)
+% Redefining `generate' macro
+% Use_driver macro:
+% input parameter file
+% set font_identifier (and gensize for ec)
+% input coding file
+% input Cyrillic definitions file
+% input driver file
+%
+% FINAL: START FONT -- use_driver(fonteq)
+%
+
+
+% defining LHver_check 3.4
+%
+lh_maj_ver:=3; lh_min_ver:=4; % version identification
+def LHver_check(expr e,f)=
+ if e>lh_maj_ver: message "LH font warning: Obsolete base";
+ elseif e<lh_maj_ver: message "LH font warning: File from old release found";
+ else: % e=lh_maj_ver: OK
+ if f>lh_min_ver: message "LH font warning: Obsolete base";
+ elseif f<lh_min_ver: message "LH font warning: File from old release found";
+ else: % f=lh_min_ver: LH version is OK
+ fi
+ fi
+enddef;
+
+% changed fonteq with genmode must precede fikparm:
+
+% -- set value of first letters to change
+if unknown fonteq:
+ def fonteq=2 enddef;
+fi
+
+if unknown cmbright:
+ if unknown ebbase: def cmbright=false enddef;
+ else: def cmbright=true enddef;
+ fi;
+fi
+
+% -- set genmode string: the name of first letters
+if unknown genmode:
+ string genmode; genmode:="cm";
+fi
+if genmode="dc": genmode:="ec";
+ message "We use ec fonts only"; message "";
+fi
+
+% -- |param_base| can be changed only in begin file
+string param_base; param_base:=jobname;
+
+% -- selfhelp
+% fonteq -- *number* of first (two, three or even four) letters from
+% current font which are changed to letters from a standard/popular font
+% header to input necessary parameters; it's entered *only* in font headers;
+% genmode -- *the name* of first two, three or even four letters from
+% a standard/popular font header to input necessary parameters;
+% it's entered both in font headers and in fontbegin file (if fonteq wasn't
+% changed); it must consist of *fonteq* letters,
+% param_base -- default: *jobname*;
+% one may use encoding and kern&ligs data from another font data in case of
+% changing param_base to necessary name (e.g. ll* virtual fonts use
+% lh* 8-bit font data with `vfcoding:=true;' command); param_base must
+% be changed *in fontbegin file only*.
+%
+
+% -- name of encoding for T2/X2
+string enc_name;
+
+% next booleans are used in ??begin files:
+
+% -- set booleans for font stuff
+boolean wncoding,vfcoding,roman_ec;
+wncoding:=false;
+vfcoding:=false;
+roman_ec:=false;
+
+% -- set flags for Cyrillic letter assortment
+boolean more_letters,old_cyr,other_cyr,unic;
+more_letters:=false;
+old_cyr:=false;
+other_cyr:=false;
+unic:=false;
+
+% -- set flags for letter shapes
+% - put ogoneks instead of descenders?
+boolean is_ogonek; is_ogonek=false;
+
+% -- `true' not supported in current version
+boolean specific,kapitel;
+specific=false;
+kapitel:=false;
+if unknown concrete:
+ boolean concrete; concrete=false;
+fi
+
+% -- set flags for ligature and kerning stuff
+boolean TITLEfont,SmallCapsfont,ROMANfont;
+
+% there must stay jobname because data is read from started font header
+% to check whether is the "standard LH" font;
+if substring(fonteq-2,fonteq) of jobname = "lh":
+ % lh* fonts have not any additional parameters
+ enc_name:="LCY";
+ elseif substring(fonteq-2,fonteq) of jobname = "ll":
+ param_base:="lh" & (substring(fonteq,length(jobname)) of jobname);
+ vfcoding:=true;
+ enc_name:="LCY";
+ elseif substring(fonteq-2,fonteq) of jobname = "wn":
+ more_letters:=true; wncoding:=true;
+ enc_name:="WNCYR";
+ elseif substring(fonteq-2,fonteq) of jobname = "la":
+ roman_ec:=true; more_letters:=true;
+ genmode:="ex"; enc_name:="T2A";
+ elseif substring(fonteq-2,fonteq) of jobname = "lb":
+ roman_ec:=true; more_letters:=true;
+ genmode:="ex"; enc_name:="T2B";
+ elseif substring(fonteq-2,fonteq) of jobname = "lc":
+ roman_ec:=true; more_letters:=true;
+ genmode:="ex"; enc_name:="T2C";
+ elseif substring(fonteq-2,fonteq) of jobname = "ld":
+ roman_ec:=true; more_letters:=true; old_cyr:=true;
+ genmode:="ex"; enc_name:="T2D";
+ elseif substring(fonteq-2,fonteq) of jobname = "rx":
+ more_letters:=true;
+ genmode:="ex"; enc_name:="X2";
+% elseif substring(fonteq-2,fonteq) of jobname = "rs":
+% more_letters:=true; old_cyr:=true;
+% genmode:="ex"; enc_name:="XS";
+ else: % for another non-standard fonts
+ enc_name:="Unknown"; % should be changed in fontbegin file
+ scantokens("input "
+ & substring(fonteq-2,fonteq) of jobname & "begin.mf");
+fi
+
+% -- must go after redefined booleans wncoding and vfcoding in ??begin.mf
+boolean altcoding;
+ altcoding:= if wncoding or vfcoding: false else: true fi;
+
+% -- start base file
+if not cmbright:
+if (genmode="ex") or (genmode="ec"):
+ if unknown exbase: input exbase; fi
+else:
+ if unknown cmbase: input cmbase; fi
+fi
+fi
+
+if unknown ligs: newinternal ligs; fi % exbase, ebbase
+
+% -- additional macros for ec compatible mode
+input lcyrbeg;
+
+% -- if TFMonly: "kill" cmbase's drawing macros
+if known TFMonly: input nodraw; fi % Only build TFM
+
+% -- start macros for ligatures and kerning
+input lkligtbl;
+
+string driver_name,ss; numeric ii;
+
+% -- set additional extra_endchar for SliTeX invisible fonts
+% !!! WARNING:
+% in icmcsc10.mf the line "extra_endchar:=..." must stay BEFORE "generate csc"
+ss:=substring(0,fonteq-2) of param_base;
+if (ss="i") or (ss="il"): extra_endchar := extra_endchar & "clearit;"; fi
+
+% -- reset slitex boolean for SliTeX fonts
+ss:=substring(0,fonteq-2) of param_base;
+if (ss="l") or (ss="il"): slitex := true; fi
+
+vardef generate @# = driver_name:=str @#; endgroup enddef;
+
+% -- input parameter file
+% set font_identfier
+% then driver file
+vardef use_driver @# (expr fonteq) =
+%
+% Start values
+ ii:=0;
+ forever: ii:=ii+1;
+ ss:=substring(length(param_base)-ii,length(param_base)-ii+1) of param_base;
+ exitif (ss<"0") or (ss>"9") or (ii>=length(param_base));
+ endfor;
+%
+% - input parameter file
+ ii:=ii-1;
+ ss:=substring(length(param_base)-ii,length(param_base)) of param_base;
+ if (genmode="ex") or (genmode="ec"):
+if concrete:
+ gensize:=scantokens(ss);
+ ss:="input eo"& (substring(fonteq+1,length(param_base)) of param_base);
+elseif cmbright:
+ %gensize:=scantokens(ss);
+ ss:="input eb"& (substring(fonteq+1,length(param_base)) of param_base);
+else:
+% - set gensize for ec parameter files
+ if (ss="8") or (ss="10"): % for EC slitex fonts
+ gensize:=scantokens(ss);
+ ss:="input "& (substring(0,fonteq-2) of param_base) & "ec"
+ & (substring(fonteq,length(param_base)) of param_base);
+ else:
+ gensize:=scantokens(ss)/100;
+ ss:="input ec" & (substring(fonteq,length(param_base)-ii) of param_base);
+ fi
+fi
+ else:
+% - set gensize for cm parameter files
+ gensize:=scantokens(ss);
+if concrete:
+ ss:="input "& "cc" & (substring(fonteq+1,length(param_base)) of param_base);
+else:
+% HERE could be cm or cc genmode: vvvvvvv
+ ss:="input "& (substring(0,fonteq-2) of param_base) & genmode
+ & (substring(fonteq,length(param_base)) of param_base);
+fi
+ fi
+%show gensize,ss;
+%
+% - set font_identifier
+ numeric true_pt#; true_pt#=pt#;
+ pt#:=true_pt#; scantokens(ss); pt#:=true_pt#;
+ font_identifier:=substring(0,length(param_base)-ii) of param_base;
+%
+% - input encoding file
+ scantokens ("input "& (substring(fonteq-2,fonteq) of param_base) & "codes");
+% - input Cyrillic definitions file
+ scantokens "input lcyrdefs";
+%
+% - input driver file
+ scantokens("input "&
+ if genmode="ex":
+ if driver_name= "exroman" : "leroman"
+ elseif driver_name= "extextit": "letextit"
+ elseif driver_name= "excsc" : "lecsc"
+ elseif driver_name= "ebroman" : "leroman"
+ else: driver_name fi
+ elseif genmode="ec":
+ if driver_name= "exroman" : "ldroman"
+ elseif driver_name= "extextit": "ldtextit"
+ elseif driver_name= "excsc" : "ldcsc"
+ else: driver_name fi
+ else:
+ if driver_name= "roman" : "ldroman"
+ elseif driver_name= "sroman" : "ldroman" % slitex must be true
+ elseif driver_name= "broman" : "ldroman"
+ elseif driver_name= "textit" : "ldtextit"
+ elseif driver_name= "title" : "ldtitle"
+ elseif driver_name= "csc" : "ldcsc"
+ else: driver_name fi fi);
+enddef;
+
+% START FONT
+use_driver(fonteq);
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lcyrbeg.mf b/Master/texmf-dist/fonts/source/lh/base/lcyrbeg.mf
new file mode 100644
index 00000000000..b959d126440
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lcyrbeg.mf
@@ -0,0 +1,188 @@
+%
+% lcyrbeg.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% File with macros which emulate exbase.mf from ec fonts (J"org Knappen)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Contents:
+%
+% *) font booleans (mostly for ec); slitex used in SliTeX cm fonts
+% *) macros for processing chars twice: for some accents
+% *) routines to generate the parameter sets by extrapolation
+% ** macros for accenting moved in file lcyrdefs.mf
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if unknown slitex:
+ boolean slitex; slitex := false; fi % |true| simulates behaviour of |sroman|
+if unknown one_serif:
+ boolean one_serif; one_serif:=true; fi % |false| suppresses base serif on `1'
+if unknown classic_serif:
+ boolean classic_serif; classic_serif := false; fi
+if unknown suppress_i_dot:
+ boolean suppress_i_dot; suppress_i_dot :=false; fi
+if unknown hach_sharp:
+ boolean hach_sharp; hach_sharp:=false; fi
+if unknown classic_sharp_s:
+ boolean classic_sharp_s; classic_sharp_s:=false; fi % Chooses shape of sharp s
+if unknown knuthian_ae:
+ boolean knuthian_ae; knuthian_ae:=false; fi % |true| reproduces cm italic \ae
+if unknown fancy_thorn:
+ boolean fancy_thorn; fancy_thorn:=false; fi % |true| produces \th with fancier bulb
+if unknown is_small_cap:
+ boolean is_small_cap; is_small_cap:=false; fi
+tracingstats:=1; % Print statistics at the end of run
+
+%
+%
+%
+% some extra font parameters
+%
+def font_cap_height expr x = fontdimen 8: x enddef;
+def font_asc_height expr x = fontdimen 9: x enddef;
+def font_acc_cap_height expr x = fontdimen 10: x enddef;
+def font_desc_depth expr x = fontdimen 11: x enddef;
+def font_max_height expr x = fontdimen 12: x enddef;
+def font_max_depth expr x = fontdimen 13: x enddef;
+def font_digit_width expr x = fontdimen 14: x enddef;
+def font_cap_stem expr x = fontdimen 15: x enddef;
+def font_baselineskip expr x = fontdimen 16: x enddef;
+
+
+
+%
+% XXXXXXX The following routines generate the parameter
+% X X sets by extrapolation
+% X X
+% X X
+% X X
+% XXXX XXXX
+% X X
+% X X
+% X X
+% X X
+% X X
+% X
+%
+%
+% needed variables
+%
+
+vardef simple_gendef@#(text aa)(text t)=
+ string s[];
+ s1:="";
+ s2:=str @#;
+ index:=1;
+ forsuffixes $=t: ydata[index]:=$ if s1<>s2: *@# fi;
+ index:=index+1;
+ endfor;
+ if numpoints>(index-1): errmessage "Missing parameter"; message str aa; fi;
+ if numpoints<(index-1): errmessage "Too many parameters"; message str aa; fi;
+ aa:=ydata[merke];
+ if gencheck: message str aa fi;
+enddef;
+
+vardef extended_gendef@#(text aa)(text t)=
+ string s[];
+ s1:="";
+ s2:=str @#;
+ index:=1;
+ forsuffixes $=t: ydata[index]:=$ if s1<>s2: *@# fi;
+ index:=index+1;
+ endfor;
+ if numpoints>(index-1): errmessage "Missing parameter"; message str aa; fi;
+ if numpoints<(index-1): errmessage "Too many parameters"; message str aa; fi;
+ if gensize>basedata[numpoints]:
+ numeric hilf [];
+ hilf[1]:=(ydata[numpoints]-ydata[numpoints-1])/(basedata[numpoints]-basedata[numpoints-1]);
+ hilf[2]:=(ydata[numpoints]-ydata[numpoints-2])/(basedata[numpoints]-basedata[numpoints-2]);
+ hilf[3]:=ydata[numpoints]-hilf1*basedata[numpoints];
+ hilf[4]:=ydata[numpoints]-hilf2*basedata[numpoints];
+ spy:=(hilf[1]*gensize+hilf[3])/2+(hilf[2]*gensize+hilf[4])/2;
+ aa:=spy;
+ else:
+ for index = 1 upto numpoints-1:
+ interval[index]:=basedata[index+1]-basedata[index];
+ endfor;
+ for index=1 upto numpoints:
+ spline[1][index]:=ydata[index];
+ endfor;
+ for index=2 upto numpoints-1:
+ alpha[index]:=3*((spline[1][index+1]*interval[index-1])%
+ -(spline[1][index]*(basedata[index+1]-basedata[index-1]))%
+ +(spline[1][index-1]*interval[index]))%
+ /(interval[index-1]*interval[index]);
+ endfor;
+ spl[1]:=0;
+ spmu[1]:=0;
+ spz[1]:=0;
+ for index=2 upto numpoints-1:
+ spl[index]:=2*(basedata[index+1]-basedata[index-1])%
+ -interval[index-1]*spmu[index-1];
+ spmu[index]:=interval[index]/spl[index];
+ spz[index]:=(alpha[index]-interval[index-1]*spz[index-1])/spl[index];
+ endfor;
+ spline[3][numpoints]:=0;
+ for index=numpoints-1 downto 1:
+ spline[3][index]:=spz[index]-spmu[index]*spline[3][index+1];
+ endfor;
+ for index=numpoints -1 downto 1:
+ spline[2][index]:=(spline[1][index+1]-spline[1][index])/interval[index]%
+ -interval[index]*(spline[3][index+1]*spline[3][index])/3;
+ spline[4][index]:=(spline[3][index+1]-spline[3][index])/(3*interval[index]);
+ endfor;
+ location:=1;
+ for term=1 upto numpoints-1:
+ if gensize > basedata[term]: location:=term; fi
+ endfor;
+ spx:=gensize-basedata[location];
+ spy:=((spline[4][location]*spx+spline[3][location])*spx+spline[2][location])*spx+spline[1][location];
+ aa:=spy; fi;
+ if gencheck: message str aa fi;
+enddef;
+
+vardef basedef(text t)=
+ boolean basevalue; boolean gencheck;
+ numeric index; numeric ergbnis; numeric location; numeric term;
+ numeric numpoints; numeric spx; numeric spy;
+ numeric basedata[]; numeric interval[]; numeric alpha[];
+ numeric spl[]; numeric spmu[]; numeric spz[];
+ numeric ydata[]; numeric spline[][];
+ basevalue:=false; gencheck:=false;
+ index:=1;
+ forsuffixes $=t: basedata[index]:=$;
+ if $=gensize: basevalue:=true; merke:=index; fi;
+ index:=index+1;
+ endfor;
+ numpoints:=index-1;
+ if numpoints<3: errmessage "Not enough reference points"; fi
+ if basevalue: def gendef=simple_gendef enddef; else:
+ def gendef=extended_gendef enddef; fi
+enddef;
+
+def clear_extra_memory= % Release ressources hold by the extrapolation routine
+ numeric index; numeric ergbnis; numeric location; numeric term;
+ numeric numpoints; numeric spx; numeric spy;
+ numeric basedata[]; numeric interval[]; numeric alpha[];
+ numeric spl[]; numeric spmu[]; numeric spz[];
+ numeric ydata[]; numeric spline[][];
+ numeric hilf []; string s[];
+enddef;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lcyrdefs.mf b/Master/texmf-dist/fonts/source/lh/base/lcyrdefs.mf
new file mode 100644
index 00000000000..8f7796d668f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lcyrdefs.mf
@@ -0,0 +1,1403 @@
+%
+% lcyrdefs.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Cyrillic definitions and
+% macros borrowed from ec fonts package (J"org Knappen)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Content:
+%
+% Cyrillic startup definitions:
+% cyrchar stuff
+% load components absent in Computer Modern parameters files
+% redefined font_setup
+% Advanced cmbase's definitions
+% macros for cyr letter's drawing
+% macro for accent cyrbreve - cyrillic breve
+% Exbase's special routines for accenting
+% (borrowed part from exbase)
+% Macros for processing chars twice
+% (borrowed part from exbase)
+% Accents which created with beginchar_twice routine
+% (borrowed from exaccess)
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+let lhchar=\; % `|lhchar|' should precede each character
+
+%if roman_ec: % for inputed exrullett.mf and exrllett.mf
+% def version_check(expr e,f) = enddef;
+% let ecchar=\;
+%fi;
+
+%
+% defining cyrchar stuff - chars with floating codes
+%
+if unknown autocount: % set auto code count for miscelaneous fonts
+ def cyrchar(suffix $)(expr w_sharp,h_sharp,d_sharp) =
+ iff known CYR_.$: beginchar(CYR_.$,w_sharp,h_sharp,d_sharp);
+ enddef;
+
+ def cyrarithchar(suffix $) =
+ iff known CYR_.$: beginarithchar(CYR_.$);
+ enddef;
+
+ def cyrchar_twice(suffix $)(expr w_sharp,h_sharp,d_sharp) =
+ iff known CYR_.$: beginchar_twice(CYR_.$,w_sharp,h_sharp,d_sharp);
+ enddef;
+
+ def getcharcode(suffix $) =
+ if known CYR_.$: charcode:=CYR_.$; fi
+ enddef;
+fi
+
+% next macro necessary for absent Old Slav letters in Italic fonts
+def cyrcharmoving (suffix $) = if known CYR_.$: CYR_.$ := -2; fi enddef;
+
+%
+% load components absent in parameter files
+%
+if unknown acc_height#: % emulation ecfonts parameter file
+
+ if monospace: % borrowed from ectt
+ basedef ( 8, 9, 10, 12);
+ gendef[1/36pt#](acc_height#)(60, 67.5, 75, 90);
+ gendef[1/36pt#](dot_height#)(60, 67.5, 75, 90);
+ else: % borrowed from ecrm
+ basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+ gendef[1/36pt#](acc_height#)(42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+ gendef[1/36pt#](dot_height#)( 42, 46.6, 51.2, 56, 60.4, 66, 77.2, 100);
+ fi
+
+fi
+
+sbeak# := (if serifs: max(beak#,3/4desc_depth#) else: desc_depth# fi) /1.2;
+cap_sbeak# := if serifs: max(beak#,3/4desc_depth#) else: desc_depth# fi;
+
+%
+% add absent exbase parameters in cmbase's font_setup
+% original font_setup macro redefined to ADD necessary settings in it's context
+%
+let font_setup_ = font_setup;
+
+if unknown true_mono:
+ boolean true_mono;
+ if monospace: true_mono:=true; % |true| forces ligatures to monowidth
+ else: true_mono:=false; %
+ fi
+fi
+
+def font_setup =
+ font_setup_;
+ define_whole_blacker_pixels(acc_height);
+ define_pixels(cap_sbeak,sbeak);
+ pickup pencircle scaled min(hair,vair);
+ extra_rule.nib:=savepen;
+ if true_mono: let normal_adjust_fit=mono_adjust_fit; fi
+enddef;
+
+%
+% booleans for lowercase/uppercase identifying
+%
+boolean cyrcaph, cyrcaph.cyrcaph;
+cyrcaph = false;
+cyrcaph.cyrcaph = true;
+
+%
+% advanced cmbase's definitions: macros for cyr letter's drawing
+% set_bar_axis, bar_stroke
+% cyr_serif, l_serif, r_serif
+% cyrbulb
+% cbreve
+
+% sets for bar axis in lowercase letters
+%
+vardef set_bar_axis =
+ pickup tiny.nib; y1.bh:=vround(.55x_height-.6[thin_join,vair]/2);
+ y2.bh:=y1.bh+.6[thin_join,vair]; y0.bh:=.5[y2.bh,y1.bh];
+enddef;
+
+vardef bar_stroke(expr left_jut,right_jut) = % |x$r| and |x$$r| (only) are known
+ if left_jut>right_jut: errmessage ("change `bar' points"); fi
+ fix_virgin z;
+ set_bar_axis;
+ if serifs: pickup crisp.nib; else: pickup fine.nib; fi
+ if (y2.bh-y1.bh)>(currentbreadth+eps):
+ pos[ii](.6[thin_join,vair],90); pos[jj](.6[thin_join,vair],90);
+ lft x[ii]r=left_jut; rt x[jj]r=right_jut;
+ top y[ii]r=top y[jj]r=y2.bh;
+ filldraw stroke z[ii]e--z[jj]e; % bar
+ else:
+ y[ii]l=y[jj]l=y1.bh; y[ii]r=y[jj]r=y2.bh;
+ x[ii]l=x[ii]r=left_jut; x[jj]l=x[jj]r=right_jut;
+ fill z[jj]l{right}...{left}z[jj]r--z[ii]r{left}...{right}z[ii]l--cycle; % bar
+ fi
+ penlabels([ii],[jj]);
+enddef;
+
+%
+% Cyrillic descender serif
+%
+vardef cyr_serif(suffix $,$$,@) % serif at |z$| for stroke from |z$$|
+ (expr darkness,beak_darkness,jut,beak_jut) =
+ if serifs:
+ pickup crisp.nib;
+ else:
+ pickup pencircle scaled (3/5[fine,crisp]+eps);
+ fi
+ numeric bracket_height,light_stem; pair downward;
+ bracket_height=bracket;
+ light_stem=hround (max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi));
+ % for cyr_serif always |y$|<|y$$|
+ if (y$>y$$): errmessage ("`cyr_serif' placed only on the bottom"); fi
+ downward=z$-z$$;
+ y@0=min(y$+bracket_height,y$$)+eps;
+ top y@1-slab-eps=bot y@4+eps=tiny.bot y$;
+ if y@1>y@0: y@0:=y@1+eps; fi
+ bot y@2=bot y@3=vround(-d);
+ y@5=y@1; y@6=y@0;
+ z@5=whatever[z$,z$$]; z@6=whatever[z$,z$$];
+ if jut<0:
+ z@0+penoffset downward of currentpen =
+ z$l+penoffset downward of pen_[tiny.nib]+whatever*downward;
+ lft x@1=hround (tiny.lft x$l+jut)-eps;
+ if x@6<x@0+eps: x@6:=x@0+eps; fi
+ lft x@2=rt x@3-light_stem-eps=hround (lft x@1+beak_jut)-eps;
+ x@4=x$+.5(fudged.stem-3stem_corr-tiny)+eps;
+ else:
+ z@0-penoffset downward of currentpen =
+ z$r-penoffset downward of pen_[tiny.nib]-whatever*downward;
+ rt x@1=hround (tiny.rt x$r+jut)+eps;
+ if x@6>x@0-eps: x@6:=x@0-eps; fi
+ rt x@2=lft x@3+light_stem+eps=hround (rt x@1+beak_jut)+eps;
+ x@4=x$-.5(fudged.stem-3stem_corr-tiny)-eps;
+ fi
+ pair corner,beak_corner;
+ ypart corner=y@1; corner=z@0+whatever*downward;
+ ypart beak_corner=y@4; beak_corner=z@3+whatever*(z@1-z@2);
+ if jut<0:
+ filldraw z@0{z$-z$$}
+ ...(darkness+eps)[corner,.5[z@1,z@0]]{z@1-z@0}
+ ...{jut,0}z@1--z@2--z@3{z@1-z@2}
+ ...(beak_darkness+eps)[beak_corner,.5[z@3,z@4]]
+ ...{-jut,0}z@4--(x@4,y@1)--z@5--z@6--cycle; % descender
+ else:
+ filldraw z@6--z@5--(x@4,y@1)--z@4{jut,0}
+ ...(beak_darkness+eps)[beak_corner,.5[z@3,z@4]]
+ ...{z@2-z@1}z@3--z@2--z@1{-jut,0}
+ ...(darkness+eps)[corner,.5[z@1,z@0]]{z@0-z@1}
+ ...{z$$-z$}z@0--cycle; % descender
+ fi
+ labels (@0,@1,@2,@3,@4,@5,@6);
+enddef;
+
+%
+% roman descenders
+%
+def l_serif(suffix $,$$,@) % descender at |z$| for stroke from |z$$|
+ (expr left_darkness,beak_darkness,left_jut,beak_jut)
+ (suffix @@)
+ (expr right_darkness,right_jut) =
+ cyr_serif($,$$,@,left_darkness,beak_darkness,-left_jut,-beak_jut);
+ serif($,$$,@@,right_darkness,right_jut);
+enddef;
+%
+def r_serif(suffix $,$$,@) % descender at |z$| for stroke from |z$$|
+ (expr left_darkness,left_jut)
+ (suffix @@)
+ (expr right_darkness,beak_darkness,right_jut,beak_jut) =
+ serif($,$$,@,left_darkness,-left_jut);
+ cyr_serif($,$$,@@,right_darkness,beak_darkness,right_jut,beak_jut);
+enddef;
+
+%
+% italic descender
+%
+def i_serif(suffix $,@) = % vawed italic descender
+ y@1=.5[y$,y@2r]; x@1r=x$r;
+ numeric theta,slope;
+ theta=angle(-max(3u,u+2curve),d);
+ slope=-angle(-max(2u,u+curve),d);
+ pos@1(.5[vair,hair],180);
+ pos@2(7/8[hair,curve],theta);
+ pos@3(vair,theta);
+ lft x@2r=lft x@1r+max(.5hair,1)+eps;
+ y@2r=-.35d;
+ bot y@3l=-d-oo;
+ z@3l=z@2l+hair*dir (if monospace: .5 fi theta)+whatever*dir slope;
+ filldraw stroke z$e{down}...z@1e...z@2e{down}....{dir (slope)}z@3e;
+ penlabels (@1,@2,@3);
+enddef;
+
+%
+% redefined bulb: ... with directions instead of --
+%
+def cyrbulb(suffix $,$$,$$$) =
+ z$$$r=z$$r;
+ path_.l:=z$l{x$$r-x$r,0}...{0,y$$r-y$r}z$$l;
+ path p_; p_:=z$r{x$$r-x$r,0}...{0,y$$r-y$r}z$$r;
+ filldraw path_.l--reverse p_--cycle; % link
+ path_.r:=z$$$l{0,y$r-y$$r}..z$$$r{0,y$$r-y$r}; % near-circle
+ y_:=xpart(path_.r intersectiontimes p_);
+ if y_<0: y_:=1; fi
+ filldraw subpath(0,y_) of path_.r
+ {dir (angle direction y_ of p_)}...%--
+ z$$r{0,y$$r-y$r}..cycle; % bulb
+enddef;
+
+%
+% cbreve accent for Cyrillic letters
+%
+boolean altaccent; altaccent=false;
+
+vardef cbreve(expr x_center,y_move,
+ _one,_two,_three,_four,_five,_six,_seven) suffix modifier =
+ numeric mid_thickness,bulb_diam;
+ mid_thickness=max(crisp.breadth,vround if serifs: 1/5 else: 1/3 fi[vair,stem]);
+ bulb_diam=max(crisp.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+ pickup crisp.nib;
+ pos[_one](bulb_diam,0); pos[_two](bulb_diam,90);
+ x[_one]=x[_two]=x_center-1.75u if monospace: /expansion_factor fi;
+ if cyrcaph.modifier:
+ bot y[_six]r=vround (y_move+max(
+ min(cap_height+o+max(tiny,0.5mid_thickness),
+ cap_height+0.3acc_height),
+ 1/3[cap_height,min(asc_height,2x_height)]+o-.5mid_thickness
+ ));
+ top y[_two]r=vround (y_move+max(
+ (cap_height+dot_height#*hppp),
+ bot y[_six]r+mid_thickness+bulb_diam+eps
+ ));
+ else:
+ bot y[_six]r=vround (y_move+max(
+ min(x_height+o+max(tiny,0.5mid_thickness),
+ x_height+0.3acc_height),
+ if serifs:
+ 1/3[x_height, min(asc_height,2x_height)
+ -cap_height+x_height]
+ else:
+ 1/3[x_height,h]
+ fi + o - 0.5mid_thickness
+ ));
+ top y[_two]r=vround (y_move+max(
+ (x_height+dot_height#*hppp),
+ bot y[_six]r+mid_thickness+bulb_diam+eps
+ ));
+ fi
+ y[_one]=y_move+.5[y[_two]l,y[_two]r];
+ pos[_three](bulb_diam,0);
+ penpos[_four](y[_two]r-y[_two]l,90);
+ y[_three]=y[_four]=y[_one];
+ x[_three]=x[_four]=x[_one]+3.5u if monospace: /expansion_factor fi;
+ if square_dots: % no dots in sans serif cyrbreve
+ x[_six]=hround x_center;
+ lft x[_five]r=hround(x[_six]-2.5u
+ if monospace: /expansion_factor fi-.5vair);
+ rt x[_seven]r=hround(x[_six]+2.5u
+ if monospace: /expansion_factor fi+.5vair);
+ top y[_five]=top y[_seven]=h+y_move; % common for both upper and lower
+ if y[_six]r>(bot y[_seven]-eps):
+ y[_six]r:=bot y[_seven]-eps;
+ fi
+ else:
+ dot([_one],[_two]); % left dot
+ if not altaccent:
+ dot([_three],[_four]); % right dot
+ fi
+ x[_six]=.5[x[_one]l,x[_three]r];
+ lft x[_five]r=lft x[_one]l;
+ rt x[_seven]r=rt x[_three]r;
+ top y[_five]=top y[_seven]=y[_two]; % common for both upper and lower
+ fi
+ pos[_five](vair,-180);
+ pos[_seven](vair,0);
+ pos[_six](mid_thickness,-90);
+ filldraw stroke z[_five]e{down}
+ ...z[_six]e{right}
+ ...{up}z[_seven]e; % stroke
+ penlabels ([_five],[_six],[_seven]);
+enddef;
+
+%%% fine hi higher
+% |higher| is a counterpart to |lower| (see the file excsc.mf),
+% |hi| facilitates using higher values (which are reference points in
+% the floating world of CM fonts)
+def hi = if is_small_cap: higher fi\\ enddef;
+
+%
+% special routines for accenting bowwowed from ecfonts but rearranged
+%
+%!!!lhfonts: first goes umlaut for yo
+vardef lowercase_umlaut(expr x_move,y_move,umlaut_one,umlaut_two,
+ umlaut_three,umlaut_four) =
+pickup tiny.nib;
+pos[umlaut_one](udot_diam,0);
+pos[umlaut_two](udot_diam,90);
+x[umlaut_one]=x[umlaut_two]=x_move+.5w-1.75u if monospace:/expansion_factor fi ;
+top y[umlaut_two]r=lc_trema_height;
+y[umlaut_one]=y_move+.5[y[umlaut_two]l,y[umlaut_two]r];
+dot([umlaut_one],[umlaut_two]); % left dot
+pos[umlaut_three](udot_diam,0);
+penpos[umlaut_four](y[umlaut_two]r-y[umlaut_two]l,90);
+y[umlaut_three]=y[umlaut_four]=y[umlaut_one];
+x[umlaut_three]=x[umlaut_four]=x[umlaut_one]
+ +3.5u if monospace: /expansion_factor fi ;
+dot([umlaut_three],[umlaut_four]); % right dot
+enddef;
+%
+vardef uppercase_umlaut(expr x_move,y_move,umlaut_one,umlaut_two,
+ umlaut_three,umlaut_four) =
+pickup tiny.nib;
+pos[umlaut_one](udot_diam,0);
+pos[umlaut_two](udot_diam,90);
+x[umlaut_one]=x[umlaut_two]=x_move+.5w-1.75u if monospace:/expansion_factor fi ;
+top y[umlaut_two]r=vround(cap_height+dot_height#*hppp);
+y[umlaut_one]=y_move+.5[y[umlaut_two]l,y[umlaut_two]r];
+dot([umlaut_one],[umlaut_two]); % left dot
+pos[umlaut_three](udot_diam,0);
+penpos[umlaut_four](y[umlaut_two]r-y[umlaut_two]l,90);
+y[umlaut_three]=y[umlaut_four]=y[umlaut_one];
+x[umlaut_three]=x[umlaut_four]=x[umlaut_one]
+ +3.5u if monospace: /expansion_factor fi ;
+dot([umlaut_three],[umlaut_four]); % right dot
+enddef;
+%
+%
+% breve accent used in wncyr font
+%
+%!!! lowercase_breve edited
+vardef lowercase_breve(expr x_center,y_move,breve_one,breve_two,breve_three)=
+pickup crisp.nib; pos[breve_one](vair,-180);
+pos[breve_three](vair,0);
+top y[breve_one]=top y[breve_three]=h;
+x[breve_two]=x_center;
+lft x[breve_one]r=hround(x[breve_two]-2.5u
+ if monospace: /expansion_factor fi -0.5vair);
+rt x[breve_three]r=hround(x[breve_two]+2.5u
+ if monospace: /expansion_factor fi +0.5vair);
+numeric mid_thickness; mid_thickness=max(crisp.breadth,vround 1/3[vair,stem]);%!!!
+bot y[breve_two]r=
+ vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+if y[breve_two]r>(y[breve_one]-.5crisp-eps): %!!!
+ y[breve_two]r:=y[breve_one]-.5crisp-eps; fi %!!!
+pos[breve_two](mid_thickness,-90); %!!! moved here after if
+filldraw stroke z[breve_one]e{down}...
+ z[breve_two]e{right}...{up}z[breve_three]e; % stroke
+enddef;
+%
+%!!! uppercase_breve edited
+vardef uppercase_breve (expr x_center,y_move,breve_one,
+ breve_two,breve_three)=
+pickup crisp.nib; pos[breve_one](vair,-180);
+pos[breve_three](vair,0);
+top y[breve_one]=top y[breve_three]=cap_height + acc_height;
+x[breve_two]=hround x_center;
+x[breve_two]-rt x[breve_one]l
+ =(lft x[breve_three]l)-x[breve_two]
+ =hround (2.5u if monospace: /expansion_factor fi -.5vair);
+numeric mid_thickness;
+mid_thickness=max(crisp.breadth,vround min(1/3[vair,stem],.5acc_height));%!!!
+pos[breve_two](mid_thickness,-90);
+% |accent_gap| SHOULD be defined by the acute accent, before this macro runs
+if unknown accent_gap: % accent_gap emulation
+ if serifs:
+ y[breve_two]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[breve_two]'+.5mid_stem)-hi.x_height;
+ else:
+ top y[breve_two]'=h-vround(2/3[h,hi.x_height]);
+ accent_gap=a_ht-y[breve_two]'-hi.x_height;
+ fi
+fi
+bot y[breve_two]r=cap_height + if hefty: .5 fi accent_gap;
+filldraw stroke z[breve_one]e{down}...z[breve_two]e{right}...
+ {up}z[breve_three]e; % stroke
+enddef;
+%
+%
+% the rest of accents
+%
+%!!! lowercase_cedilla edited
+vardef lowercase_cedilla (expr x_center,y_move,
+ cedi_one,cedi_two,cedi_three,cedi_four,cedi_five) =
+x[cedi_one]=x_center; % .5w+.5u;
+if serifs:
+ pickup crisp.nib;
+ pos[cedi_one](stem,0);
+ pos[cedi_two](stem,0);
+ pos[cedi_three](vair,90);
+ pos[cedi_four](stem,0);
+ pos[cedi_five](vair,-90);
+ x[cedi_one]=x[cedi_two];
+ z[cedi_three]l=z[cedi_two]l;
+ x[cedi_four]=x[cedi_two]+1.5u;
+ x[cedi_five]=x[cedi_three]-1.5u;
+ bot y[cedi_one]=y_move;%!!! was 0
+ bot y[cedi_two]=-vround 2/7d-o;
+ y[cedi_four]=.5[y[cedi_three],y[cedi_five]];
+ bot y[cedi_five]=-d-o;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; % stem
+ filldraw stroke z[cedi_three]e{right}...
+ z[cedi_four]e{down}...{left}z[cedi_five]e; % hook
+else: pickup fine.nib; pos[cedi_one](vair,0); top y[cedi_one]=-o-2;
+ pos[cedi_two](.5[vair,stem],0);
+ bot y[cedi_two]=-d-o; x[cedi_two]=x[cedi_one]-1.25u;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; fi % diagonal
+enddef;
+%
+vardef uppercase_cedilla(expr x_center,y_move,
+ cedi_one,cedi_two,cedi_three,cedi_four,cedi_five) =
+x[cedi_one]=x_center;
+if serifs:
+ pickup crisp.nib;
+ pos[cedi_one](stem,0);
+ pos[cedi_two](stem,0);
+ pos[cedi_three](vair,90);
+ pos[cedi_four](stem,0);
+ pos[cedi_five](vair,-90);
+ x[cedi_one]=x[cedi_two];
+ z[cedi_three]l=z[cedi_two]l;
+ x[cedi_four]=x[cedi_two]+1.5u if monospace: /expansion_factor fi;
+ x[cedi_five]=x[cedi_three]-1.5u if monospace: /expansion_factor fi;
+ top y[cedi_one]=y_move;
+ bot y[cedi_two]=-vround 2/7d-o;
+ y[cedi_four]=.5[y[cedi_three],y[cedi_five]];
+ bot y[cedi_five]=-d-o;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; % stem
+ filldraw stroke z[cedi_three]e{right}...
+ z[cedi_four]e{down}...{left}z[cedi_five]e; % hook
+else: pickup fine.nib; pos[cedi_one](vair,0);
+ top y[cedi_one]=-o-2;
+ pos[cedi_two](.5[vair,stem],0);
+ bot y[cedi_two]=-d-o; x[cedi_two] =
+ x[cedi_one]-1.25u if monospace: /expansion_factor fi;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; fi % diagonal
+enddef;
+%
+%
+%!!! uppercase_hat edited
+vardef uppercase_hat
+ (expr x_center,y_move,hat_zero,hat_one,hat_two,hat_three,hat_four) =
+if serifs:
+ pickup crisp.nib;
+ pos[hat_two](.5[vair,curve],90);
+ top y[hat_two]r=cap_accent_height+oo;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+ %!!! |accent_gap| SHOULD be defined by the acute accent, before this macro runs
+ if unknown accent_gap: % accent_gap emulation
+ y[hat_one]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[hat_one]'+.5mid_stem)-hi.x_height;
+ fi
+ y[hat_one]=y[hat_three] = accent_gap + cap_height;
+ pos[hat_one](hair,angle(z[hat_two]-z[hat_one])+90);
+ pos[hat_three](hair,angle(z[hat_three]-z[hat_two])+90);
+ filldraw stroke z[hat_one]e--z[hat_two]e--z[hat_three]e; % diagonals
+else:
+ pickup fine.nib;
+ pos[hat_one](vair,0);
+ pos[hat_three](vair,0);
+ pos[hat_two](stem,0);
+ top y[hat_two]=cap_accent_height+oo;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+ %!!! |accent_gap| SHOULD be defined by the acute accent, before this macro runs
+ if unknown accent_gap: % accent_gap emulation
+ top y[hat_one]'=h-vround(2/3[h,hi.x_height]);
+ accent_gap=a_ht-y[hat_one]'-hi.x_height;
+ fi
+ bot y[hat_one]=bot y[hat_three]=.5accent_gap + cap_height;
+ z[hat_zero]=whatever[z[hat_one]r,z[hat_two]r]=
+ whatever[z[hat_two]l,z[hat_three]l];
+ y[hat_four]l=y[hat_four]r=y[hat_two];
+ x[hat_four]l=hround (.2[x[hat_two]l,x[hat_two]]-eps); %!!!
+ x[hat_four]r=w-x[hat_four]l;
+ filldraw z[hat_four]l--z[hat_one]l--z[hat_one]r--
+ z[hat_zero]--z[hat_three]l--
+ z[hat_three]r--z[hat_four]r--cycle; fi % diagonals
+enddef;
+%
+%!!! lowercase_hat edited
+vardef lowercase_hat
+ (expr x_center,y_move,hat_zero,hat_one,hat_two,hat_three,hat_four) =
+if serifs:
+ pickup crisp.nib;
+ pos[hat_two](.5[vair,curve],90);
+ top y[hat_two]r=h+y_move;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+ y[hat_one]=y[hat_three] =
+ max(y[hat_two]-0.5(min(asc_height,2x_height)-x_height),
+ 1/6[x_height,h]);
+ pos[hat_one](hair,angle(z[hat_two]-z[hat_one])+90);
+ pos[hat_three](hair,angle(z[hat_three]-z[hat_two])+90);
+ filldraw stroke z[hat_one]e--z[hat_two]e--z[hat_three]e; % diagonals
+else:
+ pickup fine.nib;
+ pos[hat_one](vair,0);
+ pos[hat_three](vair,0);
+ pos[hat_two](stem,0);
+ top y[hat_two]=h+y_move;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+ bot y[hat_one]=bot y[hat_three]=vround (2/3[x_height+acc_height,x_height]-eps); %!!!
+ % same slope as in the acute accent
+ z[hat_zero]=whatever[z[hat_one]r,z[hat_two]r]=
+ whatever[z[hat_two]l,z[hat_three]l];
+ y[hat_four]l=y[hat_four]r=y[hat_two];
+ x[hat_four]l=hround (.2[x[hat_two]l,x[hat_two]]-eps); %!!!
+ x[hat_four]r=w-x[hat_four]l;
+ filldraw z[hat_four]l--z[hat_one]l--z[hat_one]r--
+ z[hat_zero]--z[hat_three]l--
+ z[hat_three]r--z[hat_four]r--cycle; fi % diagonals
+enddef;
+%
+%
+vardef lowercase_tilde(expr x_move,y_move,tilde_one,tilde_two,tilde_three,
+ tilde_four,tilde_five)=
+h':=min(asc_height,10/7x_height+.5dot_size);
+if serifs: numeric theta;
+ theta=angle(1/6(
+ 6u if monospace: /expansion_factor fi-vair),
+ 1/4(h'-x_height));
+ pickup crisp.nib;
+ numeric mid_width; mid_width=.4[vair,stem];
+ pos[tilde_one](vair,theta+90);
+ pos[tilde_two](vair,theta+90);
+ pos[tilde_three](vair,theta+90);
+ pos[tilde_four](vair,theta+90);
+ z[tilde_two]-z[tilde_one]=
+ z[tilde_four]-z[tilde_three]=(mid_width-crisp)*dir theta;
+ lft x[tilde_one]r=hround(x_move+0.5w-3u if monospace: /expansion_factor fi);
+ rt x[tilde_four]l=hround(x_move+0.5w+3u if monospace: /expansion_factor fi);
+ top y[tilde_four]r=h';
+ pair delta;
+ ypart delta=3(y[tilde_three]l-y[tilde_one]l);
+ delta=whatever*dir theta;
+ bot y[tilde_one]l=vround(bot y[tilde_one]l+
+ min(2/3[x_height,h'],y[tilde_three]l-.25vair)-top y[tilde_one]r);
+ filldraw z[tilde_one]l..
+ controls(z[tilde_one]l+
+ delta)and(z[tilde_three]l-delta)..z[tilde_three]l..z[tilde_four]l
+ --z[tilde_four]r..
+ controls(z[tilde_four]r-delta)and(z[tilde_two]r+delta)..
+ z[tilde_two]r..z[tilde_one]r--cycle; % stroke
+else:
+ pickup fine.nib;
+ pos[tilde_one](vair,180);
+ pos[tilde_two](vair,90);
+ pos[tilde_three](.5[vair,slab],90);
+ pos[tilde_four](vair,90);
+ pos[tilde_five](vair,180);
+ lft x[tilde_one]r=hround (x_move + 0.5w-3u);
+ rt x[tilde_five]l=hround (x_move + 0.5w+3u);
+ x[tilde_two]-x[tilde_one]=
+ x[tilde_three]-x[tilde_two]=
+ x[tilde_four]-x[tilde_three]=x[tilde_five]-x[tilde_four];
+ bot y[tilde_one]=bot y[tilde_four]l=y_move+vround(.75[x_height,h]-vair);
+ top y[tilde_two]r=top y[tilde_five]=h+y_move;
+ y[tilde_three]=.5[y[tilde_two],y[tilde_four]];
+ filldraw stroke
+ z[tilde_one]e{up}...
+ z[tilde_two]e{right}..
+ z[tilde_three]e..
+ {right}z[tilde_four]e...{up}z[tilde_five]e; fi % stroke
+enddef;
+
+%
+%!!! uppercase_tilde edited
+vardef uppercase_tilde(expr x_move,y_move,tilde_one,tilde_two,tilde_three,
+ tilde_four,tilde_five)=
+if serifs: numeric theta;
+ theta=angle(1/8(7u if monospace: /expansion_factor fi-vair),1/4acc_height);
+ pickup crisp.nib;
+ numeric mid_width; mid_width=.4[vair,stem];
+ pos[tilde_one](vair,theta+90);
+ pos[tilde_two](vair,theta+90);
+ pos[tilde_three](vair,theta+90);
+ pos[tilde_four](vair,theta+90);
+ z[tilde_two]-z[tilde_one]=
+ z[tilde_four]-z[tilde_three]=(mid_width-crisp)*dir theta;
+ lft x[tilde_one]r=hround(x_move+0.5w-3.5u if monospace: /expansion_factor fi);
+ rt x[tilde_four]l=hround(x_move+0.5w+3.5u if monospace: /expansion_factor fi);
+ top y[tilde_four]r=h;
+ % |accent_gap| SHOULD be defined by the acute accent, before this macro runs
+ %if unknown accent_gap: % accent_gap emulation
+ % y[tilde_one]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ % accent_gap=a_ht-(y[tilde_one]'+.5mid_stem)-hi.x_height;
+ %fi
+ %bot y[tilde_one]l=accent_gap+cap_height;
+ bot y[tilde_one]l=vround(bot y[tilde_one]l
+ +min(2/3[cap_height,cap_accent_height],y[tilde_three]l-.25vair)
+ -top y[tilde_one]r);
+ pair delta;
+ ypart delta=3(y[tilde_three]l-y[tilde_one]l);
+ delta=whatever*dir theta;
+ filldraw z[tilde_one]l..
+ controls(z[tilde_one]l+
+ delta)and(z[tilde_three]l-delta)..z[tilde_three]l..z[tilde_four]l
+ --z[tilde_four]r..
+ controls(z[tilde_four]r-delta)and(z[tilde_two]r+delta)..
+ z[tilde_two]r..z[tilde_one]r--cycle; % stroke
+else:
+ pickup fine.nib;
+ pos[tilde_one](vair,180);
+ pos[tilde_two](vair,90);
+ pos[tilde_three](.5[vair,slab],90);
+ pos[tilde_four](vair,90);
+ pos[tilde_five](vair,180);
+ lft x[tilde_one]r=w-rt x[tilde_five]l=hround 1.5u+0.5(w-9u);
+ x[tilde_two]-x[tilde_one]=
+ x[tilde_three]-x[tilde_two]=
+ x[tilde_four]-x[tilde_three]=x[tilde_five]-x[tilde_four];
+ % |accent_gap| SHOULD be defined by the acute accent, before this macro runs
+ if unknown accent_gap: % accent_gap emulation
+ top y[tilde_one]'=h-vround(2/3[h,hi.x_height]);
+ accent_gap=a_ht-y[tilde_one]'-hi.x_height;
+ fi
+ bot y[tilde_one]=bot y[tilde_four]l=cap_height+.5accent_gap;
+ top y[tilde_two]r=top y[tilde_five]=h;
+ y[tilde_three]=.5[y[tilde_two],y[tilde_four]];
+ filldraw stroke
+ z[tilde_one]e{up}...
+ z[tilde_two]e{right}..
+ z[tilde_three]e..
+ {right}z[tilde_four]e...{up}z[tilde_five]e; fi % stroke
+enddef;
+%
+% umlauts moved up
+%
+vardef lowercase_circle(expr
+ x_center,y_bottom,circ_one,circ_two,circ_three,circ_four)=
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u if monospace: /expansion_factor fi +.5);
+circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos[circ_one](circ_vair,90); penpos[circ_three](circ_vair,-90);
+penpos[circ_two](circ_hair,180); penpos[circ_four](circ_hair,0);
+x[circ_one]=x[circ_three]=x_center; %
+x[circ_two]r=hround(x[circ_one]-1.5u-.5circ_hair);
+x[circ_four]r=hround(x[circ_one]+1.5u+.5circ_hair);
+y[circ_one]r=h+apex_o;
+y[circ_two]=y[circ_four]=.5[y[circ_one],y[circ_three]];
+y[circ_three]l=vround y_bottom; % (1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e([circ_one],[circ_two])
+ & pulled_arc.e([circ_two],[circ_three])
+ & pulled_arc.e([circ_three],[circ_four])
+ & pulled_arc.e([circ_four],[circ_one]) & cycle; % bowl
+enddef;
+%
+vardef uppercase_circle(expr
+ x_center,y_bottom,circ_one,circ_two,circ_three,circ_four)=
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u if monospace: /expansion_factor fi +.5);
+circ_vair=vround vair; % min(vair,(h-x_height)/6+.5);
+penpos[circ_one](circ_vair,90); penpos[circ_three](circ_vair,-90);
+penpos[circ_two](circ_hair,180); penpos[circ_four](circ_hair,0);
+x[circ_one]=x[circ_three]=x_center; % .5w;
+x[circ_two]r
+ = hround(x[circ_one]-1.5u if monospace: /expansion_factor fi -.5circ_hair);
+x[circ_four]r
+ = hround(x[circ_one]+1.5u if monospace: /expansion_factor fi +.5circ_hair);
+y[circ_one]r=cap_height + acc_height+apex_o;
+y[circ_two]=y[circ_four]=.5[y[circ_one],y[circ_three]];
+y[circ_three]l=vround y_bottom; % (1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e([circ_one],[circ_two])
+ & pulled_arc.e([circ_two],[circ_three])
+ & pulled_arc.e([circ_three],[circ_four])
+ & pulled_arc.e([circ_four],[circ_one]) & cycle; % bowl
+enddef;
+%
+%
+% cedillas moved up
+%
+% breves moved up
+%
+% renamed lowercase ogonek
+vardef the_ogonek(expr x_move,y_move,ogon_one,ogon_two,ogon_three) =
+x[ogon_one]r=x_move;
+ pickup crisp.nib;
+ pos[ogon_one](
+ if currentbreadth<0.9vair: 0.9vair else: currentbreadth+eps fi,-60);
+ pos[ogon_two](stem,0);
+ pos[ogon_three](vair,145);
+ x[ogon_two]=x[ogon_one]-2.5u if monospace: / expansion_factor fi ;
+ x[ogon_three]=x[ogon_one]+0.5u if monospace: / expansion_factor fi ;
+ bot y[ogon_one]r = y_move;
+ bot y[ogon_three]=0.5(-d-o)+y_move; %0.4
+ bot y[ogon_two]=0.5(-d-o)+y_move;
+ filldraw stroke z[ogon_one]e{dir 225}...
+ z[ogon_two]e{dir -110}...{dir 60}z[ogon_three]e; % hook
+enddef;
+
+%
+% MACROS FOR PROCESSING CHARS TWICE:
+% PASS 1: COLLECTING TFM (SHARP) INFORMATION
+% PASS 2: CREATING THE GLYPH
+%
+%%% define_pixels prepare_pen
+%%% beginchar beginchar_twice
+%%% endfor repeat_once
+
+% A special provision is necessary if one uses |modes.mf|:
+% This file assumes, that one never wants to use more than one mode
+% in the same font, but we will do so.
+%
+% Make sure, that you never input |modes.mf| after this file, otherwise
+% unpleasant surprises wait for you.
+
+def clear_mode_guards =
+ forsuffixes $=proofing,fontmaking,tracingtitles,pixels_per_inch,
+ blacker,fillin,o_correction,blacker_min,aspect_ratio:
+ numeric mode_guard_$;
+ endfor
+enddef;
+
+let ori_draw:=draw;
+let ori_fill:=fill;
+let ori_filldraw:=filldraw;
+let ori_erase:=erase;
+let ori_penstroke:=penstroke;
+let ori_special:=special;
+let ori_numspecial:=numspecial;
+
+mode_def canonical_sharp_mode = % nearly |proof| mode
+ proofing:=0; % no, we aren't making full proofs
+ fontmaking:=0; % yes, we are making a font
+ tracingtitles:=0; % don't show titles online
+ pixels_per_inch:=2601.72; % that's 36 pixels per pt
+ blacker:=0; % no additional blackness
+ blacker_min:=0; % no write_white provision
+ fillin:=0; % no compensation for fillin
+ o_correction:=1; % no reduction in overshoot
+enddef;
+
+def beginchar_twice(expr c,w_sharp,h_sharp,d_sharp) =
+ begingroup
+ if string mode: string prev_mode; prev_mode:=mode;
+ else: numeric prev_mode; prev_mode:=mode;
+ fi
+ for sharp_calc_:=1,whatever:
+% |sharp_calc| is checked in |corrital|, |mark_height|, and |put_accent|
+ sharp_calc:=sharp_calc_;
+ if known sharp_calc: % carry out ``sharp'' calculations
+ begingroup save mode,mag; mode:=canonical_sharp_mode;
+ clear_mode_guards; mode_setup; font_setup; pseudo_setup;
+ if is_small_cap: % excerpt from |font_setup|
+ define_pixels(higher.u,higher.bar_height);
+ define_corrected_pixels(higher.o);
+ define_whole_pixels(higher.letter_fit);
+ define_whole_vertical_pixels(higher.x_height,higher.body_height);
+ define_whole_blacker_pixels(higher.stem);
+ fi
+ endgroup;
+ def draw expr e=enddef;
+ let fill:=draw;
+ let filldraw:=draw;
+ let erase:=killtext; % |killtext| was absent from earlier versions of plain
+ let penstroke:=killtext;
+ def special primary t = enddef;
+ def numspecial primary t = enddef;
+ charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp; charic:=0;
+ else: % carry out ``discrete'' calculations
+ mode:=prev_mode;
+ clear_mode_guards; mode_setup; font_setup; pseudo_setup;
+ if is_small_cap: % excerpt from |font_setup|
+ define_pixels(higher.u,higher.bar_height);
+ define_corrected_pixels(higher.o);
+ define_whole_pixels(higher.letter_fit);
+ define_whole_vertical_pixels(higher.x_height,higher.body_height);
+ define_whole_blacker_pixels(higher.stem);
+ fi
+ let draw:=ori_draw;
+ let fill:=ori_fill;
+ let filldraw:=ori_filldraw;
+ let erase:=ori_erase;
+ let penstroke:=ori_penstroke;
+ let special:=ori_special;
+ let numspecial:=ori_numspecial;
+ charwd:=w_sharp;
+ fi
+ charcode:=if known c: byte c else: 0 fi;
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+ clearxy; clearit; clearpen; scantokens extra_beginchar;
+enddef;
+
+let repeat_once = endfor;
+
+%
+%
+% accents which created with beginchar_twice routine
+% (borrowed from exaccess but with
+% redefining is_cap put_accent put_gravis and put_dot)
+
+%
+% GENERAL PURPOSE ACCESSORIES
+%
+vardef is_egyptian =
+% |false| for most of the CM fonts, except funny fonts;
+% |true| for the CC fonts
+ serifs and (1.4max(fine#,crisp#, tiny#)<slab#) and (1.6slab#>stem#)
+enddef;
+
+vardef is_bold = if serifs: (hair#+.5stem#)>1.5u# else: stem#>2u# fi\\ enddef;
+
+%!!! set is_cap as boolean
+boolean is_cap;
+
+%%% top is_known
+%%% top fix_virgin
+vardef is_known z suffix $ =
+% an auxiliary macro for |fix_virgin z|, used also while constructing ogoneks
+ (known x$) or (known x$l) or (known x$r)\\ or
+ (known y$) or (known y$l) or (known y$r)
+enddef;
+
+vardef fix_virgin z = % find a pair of virgin pairs
+ numeric ii,jj; jj:=1;
+ forever:
+ if is_known z[jj] or is_known z[jj+1]: % unknown gaps may occur
+ jj:=incr jj else: jj=ii fi; exitif known ii;
+ endfor;
+ jj:=ii+1;
+% now |ii| and |jj| are such that |z[ii]| and |z[jj]| are ``untouched''
+enddef;
+
+%%% italcorr corrital
+% correction of italic correction (cf. D. E. Knuth, The \MF{}book, p. 105):
+vardef corrital z suffix $ =
+% |z$| is the rightmost position of a pen (in accent path)
+ if known sharp_calc:
+ if not monospace:
+ save charic_; charic_=(rt(x$)-r)/hppp+slant*y$/vppp+.5u#;
+ if charic_>charic: charic:=charic_; fi
+ fi
+%| else: %| |charic=mono_charic#|, do nothing
+ fi
+enddef;
+
+%%% top prepare_pen
+def prepare_pen suffix $ =
+%%% fine $ %%%% temporary MFT convention
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor
+%%% qq $ %%%% ordinary MFT convention
+enddef;
+
+% The proportion of |vair/stem| depends drastically on resolution;
+% e.g., for 300 dpi cmbx10 |vair=1| and |stem=5|, for 746 dpi cmbx10
+% (300 dpi, magstep 5) |vair=4| and |stem=12|, while, sharply speaking,
+% |stem#/vair#=3.15381|; hence a new variable |xvair| has been introduced
+% to be used in some crucial places instead of |vair|.
+vardef xvair = stem*vair#/stem# enddef;
+
+%
+% ACCENT ACCESSORIES
+%
+% |the_cap_flat| is a factor controlling the flatness of accents over
+% majuscules; a default value may be overriden by assigning a value to the
+% variable |cap_flat| (cf. also |the_|... macros in ogonek accessories).
+vardef the_cap_flat =
+ if known cap_flat: cap_flat elseif serifs and hefty: 1/5 else: 1/3 fi
+enddef;
+%
+% The |hpos_corr| variable is an optional parameter to |put_ogonek|, meant
+% to be set locally inside |beginchar| ... |endchar|, if a horizontal
+% correction of the accent position is needed:
+numeric hpos_corr;
+%
+%%%% temporary MFT convention:
+%%% top x_height diam a_wd a_ht i_ht u asc_height cap_A_wd
+% width of the acute accent:
+vardef a_wd@# = 9hi.u@# enddef;
+% height of the acute accent:
+vardef a_ht@# = %!!!in plfonts: skipped ,hi.x_height@#+acc_h
+ min(asc_height@#,2hi.x_height@#,hi.x_height@#+acc_height@#) enddef;
+% height of the letter `i':
+vardef i_ht@#(suffix diam) =
+ if is_small_cap: a_ht@# % usually there is no dot over a small cap `i'
+ else: min(asc_height@#, 10/7hi.x_height@#+.5diam@#) fi
+enddef;
+% width of the letter `A' (used in |put_ogonek|):
+vardef cap_A_wd@# = 13u@# enddef;
+%%%% ordinary MFT convention:
+%%% qq x_height diam a_wd a_ht i_ht u asc_height cap_A_wd
+
+def mark_height(expr sharp_h)=
+% |sharp_h| is the height of an accented minuscule
+ if known sharp_calc:
+ charht:=if is_cap: h/vppp else: sharp_h fi;% in plfonts line placed after `if' in ec---before
+ if\\ (proofing>0) and is_cap:
+% BJ likes to have proofs vertically aligned (somehow):
+ proofoffset(0,h-charht*vppp-1mm);
+ fi
+ fi
+% say earlier, e.g., |is_smoke=1| if you're making `smoked' proofs
+% and you don't like to have a rule marking the height
+ if unknown is_smoke:
+ if proofing>0: proofrule((l+w/2,charht*hppp)t_,(r+u,charht*hppp)t_); fi
+ if displaying>0: screenrule((l+w/2,charht*hppp)t_,(r+u,charht*hppp)t_); fi
+ fi
+enddef;
+
+def fix_acc_pairs =
+ fix_virgin z;
+ begingroup
+% excerpt from |beginchar|:
+ save w,h; w=round(a_wd); h=round(a_ht);
+% excerpt from |mono_adjust|:
+ if monospace:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_faktor;
+ mono_charwd#=2 hi.letter_fit#+expansion_faktor*a_wd#;
+ hi.u:=u#*expansion_faktor*hppp;
+ w:=mono_charwd-shrink_fit-2 hi.letter_fit;
+ fi
+% end of the excerpts
+ numeric accent_gap,mid_stem; mid_stem=2/3[stem,hi.stem];
+ if serifs:
+ pickup crisp.nib;
+ x[jj]'=hround(w-2hi.u)-.5mid_stem; x[jj]':=x[jj]'-2/3[x[jj]',w-x[jj]'];
+ y[jj]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[jj]'+.5mid_stem)-hi.x_height;
+ bot z[ii]=round(accent_hpos,
+ accent_gap+if is_cap: cap_height else: hi.x_height fi);
+ z[jj]=z[ii]+(z[jj]'
+ if is_cap: rotated (-the_cap_flat*angle(z[jj]')) fi);
+ numeric theta; theta=angle(z[ii]-z[jj])+90;
+ pos[jj](mid_stem,theta); pos[ii](hair,theta);
+ else:
+ pickup fine.nib;
+ rt x[jj]'r=hround(.5w-1.25hi.u);
+ top y[jj]'=h-vround(2/3[h,hi.x_height]);
+ z[ii]'=origin; pos[jj]'(mid_stem,0); pos[ii]'(vair,0);
+ accent_gap=a_ht-y[jj]'-hi.x_height;
+ if is_cap:
+ numeric beta; beta=-the_cap_flat*angle(z[jj]'-z[ii]');
+ z[ii]=round(accent_hpos,accent_gap+cap_height);
+ z[jj]=z[ii]+(z[jj]' rotated beta);
+ y[jj]r=y[jj]l=y[jj]; y[ii]r=y[ii]l=y[ii];
+ for xx:=jj,ii: forsuffixes $:=l,r:
+ (z[xx]$-z[ii]) rotated -beta=whatever[z[jj]'$,z[ii]'$];
+ endfor\\ endfor
+ else:
+ for xx:=jj,ii: forsuffixes $:=r, ,l:
+ z[xx]$=z[xx]'$+round(accent_hpos,
+ accent_gap+if is_small_cap: cap_height else: x_height fi);
+ endfor\\ endfor
+ fi
+ fi
+ endgroup;
+enddef;
+
+% is_cap checked by modifier
+def put_accent suffix modifier = %!!!
+ if cyrcaph.modifier: is_cap:=true; else: is_cap:=false; fi %!!!
+ numeric accent_hpos;
+ accent_hpos=.5w - if is_cap: .75 else: .5 fi\\ u
+ if known hpos_corr: +hpos_corr fi;
+ fix_acc_pairs; % |fix_acc_pairs| uses private values of |w|, |h| \& |u|
+ numeric hpos_corr; % |hpos_corr| is local: forget its value
+% draw the diagonal:
+ if serifs:
+ pickup crisp.nib; filldraw circ_stroke (z[jj]e--z[ii]e);
+ z[jj].right=directionpoint up of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ z[jj].top=directionpoint left of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ else:
+ pickup fine.nib; filldraw stroke (z[jj]e--z[ii]e);
+ z[jj].right=z[jj].top=z[jj]r;
+ fi
+ corrital z[jj].right; % correct italic correction
+% adjust and save height (it is used in the program for the dotted `Z'):
+ h:=if is_cap: y[jj].top else: a_ht fi;
+ if known sharp_calc: saved_height:=h; fi
+ mark_height(a_ht#);
+ penlabels([ii],[jj]);
+enddef;
+
+%
+% GRAVE ACCENT ACCESSORIES
+%
+
+% This section borrows heavily from the (acute) accent accessories
+def fix_grav_pairs =
+ fix_virgin z;
+ begingroup
+% excerpt from |beginchar|:
+ save w,h; w=round(a_wd); h=round(a_ht);
+% excerpt from |mono_adjust|:
+ if monospace:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_faktor;
+ mono_charwd#=2 hi.letter_fit#+expansion_faktor*a_wd#;
+ hi.u:=u#*expansion_faktor*hppp;
+ w:=mono_charwd-shrink_fit-2 hi.letter_fit;
+ fi
+% end of the excerpts
+ numeric accent_gap,mid_stem; mid_stem=2/3[stem,hi.stem];
+ if serifs:
+ pickup crisp.nib;
+ x[jj]'=hround(w-2hi.u)-.5mid_stem; x[jj]':= -x[jj]'+ 2/3[x[jj]',w-x[jj]'];
+ y[jj]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[jj]'+.5mid_stem)-hi.x_height;
+ bot z[ii]=round(accent_hpos,
+ accent_gap+if is_cap: cap_height else: hi.x_height fi);
+ z[jj]=z[ii]+(z[jj]'
+ if is_cap: rotated (-the_cap_flat*(angle(z[jj]')-180)) fi);
+ numeric theta; theta=angle(z[ii]-z[jj])+90;
+ pos[jj](mid_stem,theta); pos[ii](hair,theta);
+ else:
+ pickup fine.nib;
+ lft x[jj]'l=-hround(.5w-1.25hi.u);
+ top y[jj]'=h-vround(2/3[h,hi.x_height]);
+ z[ii]'=origin; pos[jj]'(mid_stem,0); pos[ii]'(vair,0);
+ accent_gap=a_ht-y[jj]'-hi.x_height;
+ if is_cap:
+ numeric beta; beta=-the_cap_flat*(angle(z[jj]'-z[ii]')-180);
+ z[ii]=round(accent_hpos,accent_gap+cap_height);
+ z[jj]=z[ii]+(z[jj]' rotated beta);
+ y[jj]r=y[jj]l=y[jj]; y[ii]r=y[ii]l=y[ii];
+ for xx:=jj,ii: forsuffixes $:=l,r:
+ (z[xx]$-z[ii]) rotated -beta=whatever[z[jj]'$,z[ii]'$];
+ endfor\\ endfor
+ else:
+ for xx:=jj,ii: forsuffixes $:=r, ,l:
+ z[xx]$=z[xx]'$+round(accent_hpos,
+ accent_gap+if is_small_cap: cap_height else: x_height fi);
+ endfor\\ endfor
+ fi
+ fi
+ endgroup;
+enddef;
+
+% is_cap checked by modifier
+def put_gravis suffix modifier = %!!!
+ if cyrcaph.modifier: is_cap:=true; else: is_cap:=false; fi %!!!
+ numeric accent_hpos;
+ accent_hpos=.5w + if is_cap: .75 else: .5 fi\\ u
+ if known hpos_corr: +hpos_corr fi;
+ fix_grav_pairs; % |fix_grav_pairs| uses private values of |w|, |h| \& |u|
+ numeric hpos_corr; % |hpos_corr| is local: forget its value
+% draw the diagonal:
+ if serifs:
+ pickup crisp.nib; filldraw circ_stroke (z[jj]e--z[ii]e);
+ z[jj].right=directionpoint down of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ z[jj].top=directionpoint left of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ else:
+ pickup fine.nib; filldraw stroke (z[jj]e--z[ii]e);
+ z[jj].right=z[jj].top=z[jj]r;
+ fi
+% adjust and save height (tho the height is never needed):
+ h:=if is_cap: y[jj].top else: a_ht fi;
+ if known sharp_calc: saved_height:=h; fi
+ mark_height(a_ht#);
+ penlabels([ii],[jj]);
+enddef;
+
+%
+% DOT ACCENT ACCESSORIES
+%
+
+%%% good penkind
+% is_cap checked by modifier
+def put_dot (suffix penkind) (expr dd_) % dot of the lowercase letter `i'
+ suffix modifier = %!!!
+ if cyrcaph.modifier: is_cap:=true; else: is_cap:=false; fi %!!!
+ fix_virgin z;
+ numeric dd#; % sharp dot diameter
+ dd#=dd_; define_whole_blacker_pixels(dd);
+% adjust height temporarily:
+ h:=vround(if is_cap: (cap_height#+1.5u#+dd#)
+ else: i_ht#(dd)
+ fi\\ *hppp);
+ pickup penkind.nib; pos[jj](dd,90); pos[ii](dd,0);
+ x[jj]=x[ii]=good.x(.5w+.25u if known hpos_corr: +hpos_corr fi); %!!!
+ numeric hpos_corr; %!!! |hpos_corr| is local: forget its value !!!
+ top y[jj]r=h+1; y[ii]=.5[y[jj]l,y[jj]r];
+% draw the dot:
+ dot([ii],[jj]);
+% dotted `Z' inherits the recently saved height (if known; usually the height
+% of the accented `Z') which allows to decrease by one the number of different
+% heights in a font; dotted `z' has the height of a lowercase `i' (exception:
+% caps and small caps)
+ if known saved_height: h:=saved_height; fi\\ mark_height(i_ht#(dd));
+ penlabels([ii],[jj]);
+enddef;
+
+%
+% CYRCROSS ACCESSORIES
+% (redefined L's CROSS ACCESSORIES)
+%
+
+% is_cap checked by modifier
+def put_cyrcross(expr x_center,y_move,left_jut,right_jut) suffix modifier = %!!!
+ if cyrcaph.modifier: is_cap:=true; else: is_cap:=false; fi %!!!
+ fix_virgin z;
+ numeric dd; dd=if serifs:if is_cap: cap_bar
+ else: bar fi
+ else: if is_cap: .2[vair,cap_band]
+ else: vair fi
+ fi;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric theta;
+ if left_jut>0:
+ theta=angle(11u#,.3[x_height#,cap_height#]);
+ lft x[ii]r = hround(x_center-left_jut)-eps;
+ rt x[jj]l = hround(x_center+right_jut)+eps;
+ else:
+ theta=angle(11u#,-.3[x_height#,cap_height#]);
+ rt x[ii]r = hround(x_center-left_jut)-eps;
+ lft x[jj]l = hround(x_center+right_jut)+eps;
+ fi
+ pos[ii](dd,theta+90); pos[jj](dd,theta+90);
+ z[ii]-z[jj]=whatever*dir theta;
+ % |.52| is one of CM (Computer Magic) numbers appearing in many CM programs,
+ % among others in the programs for B, F, and H:
+ whatever[z[ii],z[jj]]=if not is_cap and hefty: top fi\\
+ (x_center,if is_cap:.52cap_height else: bar_height fi\\+y_move);
+ % before drawing the stroke improve discretization:
+ save eps_;
+ eps_:=y[ii]l-good.y(y[ii]l);
+ forsuffixes $:=l, ,r: y[ii]$:=y[ii]$-eps_; endfor
+ eps_:=y[jj]r-good.y(y[jj]r);
+ forsuffixes $:=l, ,r: y[jj]$:=y[jj]$-eps_; endfor
+ filldraw stroke z[ii]e--z[jj]e; % now draw the stroke
+ corrital z[jj]l; % correct italic correction
+ penlabels([ii],[jj]);
+enddef;
+
+%
+% EASY OGONEK ACCESSORIES
+% simplified ogonek
+% there are used some macros from put_ogonek stuff (ec fonts)
+%
+
+% ogonek defaults:
+vardef the_ogonek_depth# = % sharp value
+ if known depth_corr: depth_corr* fi\\ desc_depth#
+enddef;
+
+vardef the_tip_pos =
+ (if monospace: 1.9 elseif serifs: if hefty: 1.85
+ elseif is_bold: 1.75 else: 2 fi\\ else: % sansserif
+ if is_bold: 2.1 else: 1.95 fi\\ fi\\ hi.u,
+ if serifs:
+ if monospace: 1.25 elseif hefty: 1 elseif is_bold: .75 else: 1.45 fi
+ else: % sansserif
+ .45 fi\\ hi.u)
+ if known tip_xcorr: xscaled\\ tip_xcorr fi
+ if known tip_ycorr: yscaled\\ tip_ycorr fi
+enddef;
+
+vardef the_pre_angle = % refers to the outer edge
+ if known pre_angle: pre_angle else:
+ if serifs: if hefty: 208 elseif is_bold: 211 else: 214 fi\\ else: 211 fi
+ fi
+enddef;
+
+vardef the_post_angle = % refers to the outer edge
+ if known post_angle: post_angle else:
+ if serifs: if monospace: 60 elseif hefty: 66 elseif is_bold: 55 else: 74 fi
+ else: 25 fi\\ fi
+enddef;
+
+% parameters to |put_ogonek|:
+numeric join_angle; % starting (inner) ogonek direction, if known
+
+% common ogonek breath (because of slab changed in a few letters)
+numeric ogonek_breadth; % ogonek breadth at the tip
+ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+
+pair ogonek_pos; % starting (inner for `e' with ogonek, otherwise outer) ogonek position:
+
+vardef easy_ogonek (suffix penkind)(expr _one,_two,_three)=
+ pickup penkind.nib;
+ if monospace:
+ % excerpt from |mono_adjust|:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_faktor;
+ mono_charwd#=2hi.letter_fit#+expansion_faktor*cap_A_wd#; % cap_A_wd=13u
+ hi.u:=u#*expansion_faktor*hppp;
+ % now |u| is like in the letter `A'
+ fi
+ y_right:=-vround(d+hi.o); % bottom bound
+ if unknown ogonek_breadth:
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+ fi
+ if known ogonek_pos:
+ z[_one]'l=ogonek_pos+(0,eps);
+ pos[_one]'(max(ogonek_breadth,penkind+eps),0);
+ z[_one]l=whatever[ogonek_pos, ogonek_pos+dir the_pre_angle];
+ bot y[_one]l=0 if known ogonek_move:+ogonek_move fi+eps;
+ numeric ogonek_move; % it's local
+ else:
+ bot z[_one]l=(.5w,0+eps);
+ fi
+ pos[_one](max(ogonek_breadth,penkind+eps),0);
+ bot z[_three]'=(xpart z[_one]l-.5penkind,y_right-eps)+the_tip_pos;
+ z[_three]l=if is_small_cap:
+ z[_one]+((z[_three]'-z[_one])
+ scaled sqrt(body_height#/higher.body_height#))
+ else:
+ z[_three]'
+ fi;
+ pos[_three](max(ogonek_breadth,penkind+eps),
+ the_post_angle+if serifs: 90 else: 80 fi);
+ z[_two]l=if serifs:
+ if monospace: 2/3[z[_one],z[_three]]+
+ else: .52[z[_one],z[_three]]+
+ fi
+ else: 3/5[z[_one],z[_three]]+7/8
+ fi
+ (y[_three]-y[_one],x[_one]-x[_three]-eps)
+ -penoffset (z[_three]-z[_one]) of currentpen;
+ pos[_two](max(penkind+eps,
+ if serifs: 7/8 else: 2/3 fi [bar,fudged.stem-2stem_corr]), %from ukreve
+ angle(z[_one]-z[_three]) - if serifs: 90 else: 80 fi);
+ if known ogonek_pos:
+ if y[_one]'<y[_one]: path p; numeric t;
+ if known join_angle:
+ prim_angle:=join_angle;
+ else:
+ p=z[_one]{dir the_pre_angle}...{(z[_three]-z[_one])}z[_two]
+ ...{dir (the_post_angle)}z[_three];
+ t=ypart (((0,y[_one]')--(w,y[_one]')) intersectiontimes p);
+ prim_angle:=angle(direction t of p);
+ fi
+ filldraw stroke
+ z[_one]'e{dir prim_angle}...{(z[_three]-z[_one])}z[_two]e
+ ...{dir (the_post_angle)}z[_three]e; % ogonek stroke
+ else:
+ prim_angle:=if known join_angle: join_angle else: the_pre_angle fi;
+ filldraw stroke
+ z[_one]'e{dir prim_angle}...z[_one]e{dir the_pre_angle}
+ ...{(z[_three]-z[_one])}z[_two]e
+ ...{dir (the_post_angle)}z[_three]e; % ogonek stroke
+ fi
+ else:
+ filldraw stroke
+ z[_one]e{dir the_pre_angle}...
+ {(z[_three]-z[_one])}z[_two]e...{dir (the_post_angle)}z[_three]e; % ogonek stroke
+ fi
+ numeric join_angle,ogonek_breadth; pair ogonek_pos; % all they are local
+ penlabels([_one],[_one]',[_two],[_three],ogonek);.
+enddef;
+
+%
+% HACHEK ACCESSORIES
+%
+% This was csaccent.mf in text format, as of 89/05/08
+% written by P. Novak, Prague
+%
+%!!! edited
+def lc_hachek_accent(expr ref) =
+ if serifs:
+ pickup crisp.nib;
+ pos52'(0.75[vair,curve],90);
+ pos52(0.75[vair,curve],90);
+ x52=good.x ref;
+ x52-x51=x53-x52=good.x if hach_sharp:2.5 else:3 fi
+ accent_u-accent_thin;
+ top y52' = top y51 = top y53 = lc_hachek_height;
+ if hach_sharp:
+ y52=max(2/3[h,hi.x_height],hi.x_height+o+hair); % lower point
+ pos51(1.5stem,0); pos53(accent_thin,180);
+ else:
+ 0.5[y52,y52r] = 0.5[hi.x_height,y52'];
+ pos51(accent_thin,angle(z52-z51)+90);
+ pos53(accent_thin,angle(z53-z52)+90);
+ fi
+ filldraw stroke z51e -- z52e -- z53e;
+ else:
+ pickup fine.nib;
+ pos51(vair,0);
+ pos53(vair,0);
+ x52=good.x ref;
+ x52-lft x51=rt x53-x52= hround(1.25accent_u + vair);
+ pos52(stem,0);
+ bot y52=vround(max(2/3[h,hi.x_height],hi.x_height+o+hair));
+ top y51 = top y53 = max(lc_hachek_height,top y52+eps); %!!!
+ z50 = whatever[z51r,z52r] = whatever[z52l,z53l];
+ y54l=y54r=y52;
+ x54l=good.x .2[x52l,x52];
+ x54r-x52 = x52-x54l;
+ filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle;
+ fi
+ penlabels(50,51,52,52',53,54);
+enddef;
+
+def dtl_hachek(text x_ref,y_ref) =
+pickup fine.nib;
+ pickup fine.nib;
+ x51=hround(x_ref); y51=vround(y_ref);
+ comma(51,q,pdot_diam,.25accent_u,2/3comma_depth);
+ penlabels(51);
+enddef;
+
+def uc_hachek_accent(expr ref) =
+ if serifs:
+ pickup crisp.nib;
+ pos52'(0.5[vair,cap_curve],90);
+ pos52(0.5[vair,cap_curve],90);
+ x52=good.x ref;
+ x52-x51=x53-x52=good.x 3accent_u-accent_thin;
+ top y52' = top y51 = top y53 = % upper points
+ uc_acc_height-.5[vair,cap_curve]+eps
+ -max(2/3[uc_acc_height,hi.x_height],hi.x_height+o+hair)+cap_height;
+ if hach_sharp:
+ y52=max(2/3[uc_acc_height,hi.x_height],hi.x_height+o+hair)
+ -hi.x_height+cap_height; % lower point
+ pos51(cap_stem,0); pos53(2accent_thin,180);
+ else:
+ 0.5[y52,y52r] =
+ if not hefty:
+ max(2/3[uc_acc_height,hi.x_height],hi.x_height+o+hair)
+ -hi.x_height+cap_height;
+ else:
+ max(2/3[uc_acc_height,hi.x_height],hi.x_height+o)
+ -hi.x_height+cap_height-hair;
+ fi
+ pos51(accent_thin,angle(z52-z51)+90);
+ pos53(accent_thin,angle(z53-z52)+90);
+ fi
+ filldraw stroke z51e -- z52e -- z53e;
+ else:
+ pickup fine.nib;
+ pos51(vair,0);
+ pos53(vair,0);
+ x52=good.x ref;
+ x52-x51=x53-x52= 1.75accent_u + .5vair;
+ pos52(cap_stem,0);
+ bot y52= cap_height + .5 accent_gap;
+ top y51 = top y53 = cap_height + acc_height;
+ z50 = whatever[z51r,z52r] = whatever[z52l,z53l];
+ y54l=y54r=y52;
+ x54l=good.x .2[x52l,x52];
+ x54r-x52 = x52-x54l;
+ filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle;
+ fi
+penlabels(50,51,52,52',53,54);
+enddef;
+
+endinput;
+% end-of-file
diff --git a/Master/texmf-dist/fonts/source/lh/base/ldcsc.mf b/Master/texmf-dist/fonts/source/lh/base/ldcsc.mf
new file mode 100644
index 00000000000..b454ff0cfab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/ldcsc.mf
@@ -0,0 +1,215 @@
+%
+% ldcsc.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Driver file for Caps and Small Caps font
+% - modified CSC.MF in Computer Modern fonts
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+font_coding_scheme:=if ligs=0: "TeX typewriter text/Cyr - "&enc_name
+ else: "TeX text without f-ligs/Cyr - "&enc_name fi;
+if altcoding:
+ spanish_shriek=oct"016"; spanish_query=oct"017";
+fi
+
+input lxpseudo;
+
+mode_setup; font_setup;
+pseudo_setup; % |pseudo_setup| from ec
+
+if altcoding:
+ input romanu; % upper case (majuscules)
+ input greeku; % upper case greek letters
+ input romand; % numerals
+ input romanp; % ampersand, question marks, currency sign
+ input romspu; % uppercase specials (\AE, \OE, \O)
+ input punct; % punctuation symbols common to all roman and italic
+ input accent; % accents common to roman and italic text
+ input romsub; % substitutes for ligatures
+fi
+
+if not vfcoding: % ligs for both altcoding and wncoding (dashes & quotes)
+ if ligs>0: input comlig; fi % ligatures common with italic
+fi
+
+input lgcyru; % input uppercase shapes
+input lgcyrsym; % <<, >>, No
+input lgcyracc; % Cyrillic accents
+if old_cyr:
+ input lgocyrac; % Cyrillic Old Slav accents & signs
+fi
+
+if wncoding: %Part used in WNCYR
+ input romand; % numerals
+ input lgpunct; % excerpts from punct.mf
+ input lgromp; % roman question mark
+fi
+
+font_slant slant; font_x_height x_height#;
+
+upper.u#:=u#; %save for Cyrillic kerning table
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ if altcoding: input llmligtb; fi % input ligs for quotes
+ if wncoding: input lwnligs; fi % input ligs for Cyrillic in WNCYR
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ %
+ % Uppercase Latin ligs & kerns
+ % There are just the same ligs and kerns as in CM
+ % but they are built in more visible form
+ %
+ TITLEfont:=false; SmallCapsfont:=true; ROMANfont:=false;
+ if altcoding:
+ ligtable "P": "T": "Y":
+ "a" kern kk#,
+ "A" kern kk#;
+ ligtable "F": "V": "W":
+ if serifs: "a" kern kkk#,
+ "A" kern kkk#,
+ else: "a" kern kk#,
+ "A" kern kk#, fi
+ "K": "X":
+ "o" kern k#,
+ "O" kern k#,
+ "c" kern k#,
+ "C" kern k#,
+ "g" kern k#,
+ "G" kern k#,
+ "q" kern k#,
+ "Q" kern k#;
+ ligtable "O": "D":
+ "x" kern k#,
+ "X" kern k#,
+ "w" kern k#,
+ "W" kern k#,
+ "a" kern k#,
+ "A" kern k#,
+ "v" kern k#,
+ "V" kern k#,
+ "y" kern k#,
+ "Y" kern k#;
+ ligtable "A": if serifs: "R": fi
+ "c" kern k#,
+ "C" kern k#,
+ "o" kern k#,
+ "O" kern k#,
+ "g" kern k#,
+ "G" kern k#,
+ "u" kern k#,
+ "U" kern k#,
+ "q" kern k#,
+ "Q" kern k#,
+ "L": "T" kern kk#,
+ "t" kern kk#,
+ "Y" kern kk#,
+ "y" kern kk#,
+ "V" kern kkk#,
+ "v" kern kkk#,
+ "W" kern kkk#,
+ "w" kern kkk#;
+ ligtable "I": "I" kern -k#; %fi % Richard III
+ %
+ %% ligature programs for |"-"|, |"`"|, and |"'"| are in the {\tt comlig} file
+ input llvligtb; % input ligs for quotes
+ fi
+ % uppercase Cyrillic ligs & kerns moved down
+fi
+
+%%% fine lower
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+
+if is_small_cap:
+ cap_sbeak# := 7/8 if serifs: max(beak#,desc_depth#) else: desc_depth# fi;
+ define_pixels(cap_sbeak);
+fi
+
+% now try again with |lower| settings
+font_setup; pseudo_setup; % |pseudo_setup| from ec
+
+if altcoding:
+ extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+ code_offset:=ASCII"a" - ASCII"A";
+ input romanu; % majuscules (in lowercase positions)
+ code_offset:=-3;
+ input romspu; % \AE, \OE, \O\ (in positions of \ae, \oe, \o)
+ code_offset:=0;
+ input cscspu; % substitutes for the remaining characters of romspl
+fi
+
+is_small_cap:=true;
+input lgcyru; % Cyrillic majuscules (in lowercase positions)
+
+if wncoding: %Part used in WNCYR
+ input lgcspl; % numerals
+fi
+
+if not monospace:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ %
+ % Lowercase Latin ligs & kerns
+ % There are just the same ligs and kerns as in CM
+ % but they are built in more visible form
+ %
+ if altcoding:
+ ligtable "p": "t": "y":
+ "a" kern kk#;
+ ligtable "f": "v": "w":
+ "a" kern if serifs: kkk# else: kk#\\fi,
+ "k": "x":
+ "o" kern k#,
+ "c" kern k#,
+ "g" kern k#,
+ "q" kern k#;
+ ligtable "o": "d":
+ "x" kern k#,
+ "w" kern k#,
+ "a" kern k#,
+ "v" kern k#,
+ "y" kern k#;
+ ligtable "a": if serifs: "r": fi
+ "c" kern k#,
+ "o" kern k#,
+ "g" kern k#,
+ "u" kern k#,
+ "q" kern k#,
+ "l": "'" kern kk#,
+ "t" kern kk#,
+ "y" kern kk#,
+ "v" kern kkk#,
+ "w" kern kkk#;
+ ligtable "i": "i" kern -k#; % skiing
+ fi
+ %
+ u#:=upper.u#; % restored start u parameter
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % repeat three degrees of kerning
+ scantokens("input "&(substring(fonteq-2,fonteq) of param_base)&"liker"); % Cyrillic ligs & kerns
+fi
+
+bye.
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/ldroman.mf b/Master/texmf-dist/fonts/source/lh/base/ldroman.mf
new file mode 100644
index 00000000000..32fbe85173a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/ldroman.mf
@@ -0,0 +1,193 @@
+%
+% ldroman.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Driver file for Roman and Sans Serif fonts
+% - modified ROMAN.MF in Computer Modern fonts
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% There are also added SliTeX emulation:
+% It differs from ldroman.mf (roman.mf) only in that it has been
+% adjusted to call for sromanu.mf with a special uppercase I
+% for the SLITeX fonts: lcmss8, lcmssb8, and lcmssi8.
+% Written by Pierre A. MacKay, 16 Sept. 1986
+% &
+% There also used special letters UKR_I LAT_I etc in Cyrillic glyphs
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if ligs>1: font_coding_scheme:="TeX text/Cyr - "&enc_name;
+ if altcoding:
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+ fi
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text/Cyr - "&enc_name
+ else: "TeX text without f-ligs/Cyr - "&enc_name fi;
+ if altcoding:
+ spanish_shriek=oct"016"; spanish_query=oct"017";
+ fi
+fi
+
+input lxpseudo;
+
+mode_setup; font_setup;
+pseudo_setup; % |pseudo_setup| from ec
+
+if altcoding:
+ if slitex:
+ input sromanu; % upper case (majuscules) with SliTeX I
+ else:
+ input romanu; % upper case (majuscules)
+ fi
+ input romanl; % lower case (minuscules)
+ input greeku; % upper case Greek letters
+ input romand; % numerals
+ input romanp; % ampersand, question marks, currency sign
+ input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+ input romspu; % uppercase specials (\AE, \OE, \O)
+ input punct; % punctuation symbols common to roman and italic text
+ input accent; % accents common to roman and italic text
+ if ligs>1: input romlig; fi % letter ligatures
+ if ligs<=1: input romsub; fi % substitutes for ligatures
+fi
+
+if not vfcoding: % ligs for both altcoding and wncoding (dashes & quotes)
+ if ligs>0: input comlig; fi % ligatures common with italic text
+fi
+
+input lgcyru; % Cyrillic upper case (majuscules)
+input lgcyrl; % Cyrillic lower case (minuscules)
+input lgcyrsym; % << >> ,, No
+input lgcyracc; % Cyrillic accents
+if old_cyr:
+ input lgocyrac; % Cyrillic Old Slav accents & signs
+fi
+
+if wncoding: %Part used in WNCYR
+ input romand; % numerals
+ input lgpunct; % excerpts from punct.mf
+ input lgromp; % roman question mark
+ input lgrlig; % roman dotless i,j
+fi
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ if altcoding: input llmligtb; fi % input ligs for quotes
+ if wncoding : input lwnligs; fi % input ligs for Cyrillic letters in WNCYR
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ %
+ % Latin ligs & kerns:
+ % There are just the same ligs and kerns as in CM
+ % but they are built in more visible form
+ TITLEfont:=false; SmallCapsfont:=false; ROMANfont:=true;
+ if altcoding:
+ ligtable "k":
+ if serifs: "v":
+ "a" kern -u#, fi\\
+ "w": "e" kern k#,
+ "a" kern k#,
+ "o" kern k#,
+ "c" kern k#;
+ ligtable "P": "A" kern kk#,
+ "y": "o" kern k#,
+ "e" kern k#,
+ "a" kern k#,
+ "." kern kk#,
+ "," kern kk#;
+ ligtable "F": "V": "W":
+ if serifs: "o" kern kk#,
+ "e" kern kk#,
+ "u" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "A" kern kkk#,
+ else: "o" kern k#,
+ "e" kern k#,
+ "u" kern k#,
+ "r" kern k#,
+ "a" kern k#,
+ "A" kern kk#, fi
+ "K": "X": "O" kern k#,
+ "C" kern k#,
+ "G" kern k#,
+ "Q" kern k#;
+ ligtable "T": "y" kern if serifs: k# else: kk# fi,
+ "Y": "e" kern kk#,
+ "o" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "A" kern kk#,
+ "u" kern kk#;
+ ligtable "O": "D":
+ "X" kern k#,
+ "W" kern k#,
+ "A" kern k#,
+ "V" kern k#,
+ "Y" kern k#;
+ if serifs:
+ ligtable "h": "m": "n":
+ "t" kern k#,
+ "u" kern k#,
+ "b" kern k#,
+ "y" kern k#,
+ "v" kern k#,
+ "w" kern k#;
+ ligtable "c":
+ "h" kern k#,
+ "k" kern k#;
+ fi
+ ligtable "o": "b": "p":
+ "e" kern -k#,
+ "o" kern -k#,
+ "x" kern k#,
+ "d" kern -k#,
+ "c" kern -k#,
+ "q" kern -k#,
+ "a": if serifs:
+ "v" kern k#,
+ "j" kern u#,
+ else: "r" kern k#, fi
+ "t": "y" kern k#,
+ "u": "w" kern k#;
+ ligtable "A": if serifs: "R": fi\\
+ "t" kern k#,
+ "C" kern k#,
+ "O" kern k#,
+ "G" kern k#,
+ "U" kern k#,
+ "Q" kern k#,
+ "L": "T" kern kk#,
+ "Y" kern kk#,
+ "V" kern kkk#,
+ "W" kern kkk#;
+ ligtable "g": "j" kern -k#; % logjam
+ ligtable "I": "I" kern -k#; % Richard III
+ %
+ % there are ligature/kern programs for |"f"| in the {\tt romlig} file
+ % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+ input llvligtb; % input ligs & kerns for quotes
+ fi
+ scantokens("input "&(substring(fonteq-2,fonteq) of param_base)&"liker"); % Cyrillic ligs & kerns
+fi
+
+bye.
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/ldtextit.mf b/Master/texmf-dist/fonts/source/lh/base/ldtextit.mf
new file mode 100644
index 00000000000..3d6be4d1494
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/ldtextit.mf
@@ -0,0 +1,175 @@
+%
+% ldtextit.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Driver file for Text Italic fonts
+% - modified TEXTIT.MF in Computer Modern fonts
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+
+input lxpseudo;
+
+mode_setup; font_setup;
+pseudo_setup; % |pseudo_setup| from ec
+
+
+if ligs>1: font_coding_scheme:="TeX text/Cyr - "&enc_name;
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+ if altcoding:
+ input italig; % letter ligatures
+ fi
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text/Cyr - "&enc_name
+ else: "TeX text without f-ligs/Cyr - "&enc_name fi;
+ if altcoding:
+ spanish_shriek=oct"016"; spanish_query=oct"017";
+ fi
+fi
+
+if altcoding:
+ input itall; % lower case (minuscules)
+ input italsp; % lowercase specials (dotless \i, ligature \ae, etc.)
+fi
+
+input lgcyri; % Cyrillic lower case (minuscules)
+
+if wncoding: %Part used in WNCYR
+ input lgilig; % italic dotless i,j
+fi
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+
+if altcoding:
+ input romanu; % upper case (majuscules)
+ input greeku; % upper case Greek letters
+ input itald; % numerals
+ input italp; % ampersand, question marks, currency sign
+ input romspu; % uppercase specials (\AE, \OE, \O)
+ input punct; % punctuation symbols common to roman and italic text
+ input accent; % accents common to roman and italic text
+ if ligs<=1:
+ input romsub; % substitutes for ligatures
+ fi
+fi
+
+if not vfcoding: % ligs for both altcoding and wncoding (dashes & quotes)
+ if ligs>0: input comlig; fi % ligatures common with roman text
+fi
+
+input lgcyru; % input common shapes
+input lgcyrsym; % <<, >>, No
+input lgcyracc; % Cyrillic accents
+if old_cyr:
+ input lgocyrac; % Cyrillic Old Slav accents & signs
+fi
+
+if wncoding: %Part used in WNCYR
+ input itald; % numerals
+ input lgpunct; % excerpts from punct.mf
+ input lgitalp; % italic question mark
+fi
+
+
+if monospace:
+ if altcoding: input llmligtb; fi % input ligs for quotes
+ if wncoding : input lwnligs; fi % input ligs for Cyrillic in WNCYR
+else:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ %
+ % Latin ligs & kerns
+ % There are just the same ligs and kerns as in CM
+ % but they are built in more visible form
+ %
+ TITLEfont:=false; SmallCapsfont:=false; ROMANfont:=false;
+ if altcoding:
+ ligtable "d": "w": "l":
+ "l" kern +u#;
+ ligtable "F": "V":
+ "o" kern kk#,
+ "e" kern kk#,
+ "u" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "A" kern kkk#,
+ "K": "X": "O" kern k#,
+ "C" kern k#,
+ "G" kern k#,
+ "Q" kern k#;
+ ligtable "T": "y" kern kk#,
+ "Y": "e" kern kk#,
+ "o" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "u" kern kk#,
+ "P": "W": "A" kern kk#;
+ ligtable "O": "D":
+ "X" kern k#,
+ "W" kern k#,
+ "A" kern k#,
+ "V" kern k#,
+ "Y" kern k#;
+ ligtable "A": "R":
+ "n" kern k#,
+ "l" kern k#,
+ "r" kern k#,
+ "u" kern k#,
+ "m" kern k#,
+ "t" kern k#,
+ "i" kern k#,
+ "C" kern k#,
+ "O" kern k#,
+ "G" kern k#,
+ "h" kern k#,
+ "b" kern k#,
+ "U" kern k#,
+ "k" kern k#,
+ "v" kern k#,
+ "w" kern k#,
+ "Q" kern k#,
+ "L": "T" kern kk#,
+ "Y" kern kk#,
+ "V" kern kkk#,
+ "W" kern kkk#,
+ "b": "c": "e": "o": "p": "r":
+ "e" kern -u#,
+ "a" kern -u#,
+ "o" kern -u#,
+ "d" kern -u#,
+ "c" kern -u#,
+ "g" kern -u#,
+ "q" kern -u#;
+ ligtable "n": "'" kern kkk#;
+ %
+ % there are ligature/kern programs for |"f"| in the {\tt italig} file
+ % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+ input llvligtb; % input ligs for quotes
+ fi
+ scantokens("input "&(substring(fonteq-2,fonteq) of param_base)&"liker"); % Cyrillic ligs & kerns
+fi
+
+bye.
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/ldtitle.mf b/Master/texmf-dist/fonts/source/lh/base/ldtitle.mf
new file mode 100644
index 00000000000..9da66a33785
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/ldtitle.mf
@@ -0,0 +1,92 @@
+%
+% ldtitle.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Driver file for SLITeX Roman and Sans Serif fonts
+% - modified TITLE.MF in Computer Modern fonts
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% This makes a short font (caps and digits only)
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+font_coding_scheme:="Caps and digits/Cyr - "&enc_name;
+
+input lxpseudo;
+
+mode_setup; font_setup;
+pseudo_setup; % |pseudo_setup| from ec
+
+if altcoding:
+ input romanu; % upper case (majuscules)
+fi
+
+if altcoding or wncoding:
+ input romand; % numerals
+fi
+
+input lgcyru; % Cyrillic upper case (majuscules)
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ if wncoding: input lwnligs; fi % input ligs for Cyrillic in WNCYR
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ %
+ % Latin ligs & kerns
+ % There are just the same ligs and kerns as in CM
+ % but they are built in more visible form
+ %
+ TITLEfont:=true; SmallCapsfont:=false; ROMANfont:=false;
+ if altcoding:
+ ligtable "P": "T": "Y":
+ "A" kern kk#;
+ ligtable "F": "V": "W":
+ "A" kern if serifs: kkk# else: kk#\\fi,
+ "K": "X": "O" kern k#,
+ "C" kern k#,
+ "G" kern k#,
+ "Q" kern k#;
+ ligtable "O": "D":
+ "X" kern k#,
+ "W" kern k#,
+ "A" kern k#,
+ "V" kern k#,
+ "Y" kern k#;
+ ligtable "A": if serifs: "R": fi
+ "C" kern k#,
+ "O" kern k#,
+ "G" kern k#,
+ "U" kern k#,
+ "Q" kern k#,
+ "L": "T" kern kk#,
+ "Y" kern kkk#,
+ "V" kern kk#,
+ "W" kern kkk#;
+ ligtable "I": "I" kern -k#; % Richard III
+ fi
+ %
+ scantokens("input "&(substring(fonteq-2,fonteq) of param_base)&"liker"); % Cyrillic ligs & kerns
+fi
+
+bye.
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lecsc.mf b/Master/texmf-dist/fonts/source/lh/base/lecsc.mf
new file mode 100644
index 00000000000..12cb88e33d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lecsc.mf
@@ -0,0 +1,129 @@
+%
+% lecsc.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Driver file, called by parameter files for "caps and small caps" fonts
+% - modified EXCSC.MF in European Computer Modern fonts (ec fonts)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+
+input lxpseudo;
+
+mode_setup; font_setup;
+pseudo_setup; % |pseudo_setup| from ec
+
+% upper part exr(u/l)(lett/west/east) changed to cyrillic glyphs
+%vvv
+if roman_ec:
+ input exrulett;
+fi
+%<<<
+input lgcyru; % input Cyrillic uppercase shapes
+
+input lgcyrsym; % floating symbols in Cyrillic
+input lgengsym; % latin symbols
+input lgromp; % roman & ?
+input lgrdigit; % roman digits
+
+is_small_cap:=true;
+%%% fine higher
+% the `higher' values are used while putting accents and attaching ogoneks
+forsuffixes $=u,o,letter_fit,x_height,bar_height,body_height,stem:
+ higher.$.#:=$.#; higher.$:=$;
+endfor
+
+%%% fine lower
+begingroup
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, dot_size, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: save $; $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+
+% optional part:
+forsuffixes $ = depth_corr, left_corr, top_breadth_corr, tip_breadth_corr,
+ tip_xcorr, tip_ycorr, pre_angle, post_angle, pre_limit, post_limit,
+ pre_lightness, post_lightness, pre_deflexion, post_deflexion, cap_flat,
+ ogonek_pen#: if known lower.$: $:=lower.$; fi
+endfor
+
+input lxpseudo; % Recalculate pseudoparameters
+
+font_setup; pseudo_setup; % now try again with |lower| settings
+
+% upper part exr(u/l)(lett/west/east) changed to cyrillic glyphs
+%vvv
+if roman_ec:
+ extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+ code_offset:=ASCII"a" - ASCII"A";
+ input exrulett;
+ code_offset:=0;
+fi
+%<<<
+input lgcyru; % input Cyrillic uppercase shapes
+
+input lgcspl; % Small Caps dotless I, J and FF-ligatures for ec_roman
+
+input lypseudo; % Recalculate pseudoparameters for capital accents
+
+font_setup; pseudo_setup; % now try again with |lower| settings
+
+input lycyracc; % Accents for capital letters with small cap parameters
+if old_cyr:
+ input lgocyrac; % Cyrillic Old Slav accents & signs
+fi
+
+
+endgroup;
+
+
+% Fontparameter
+%
+font_coding_scheme:="TeX Cyrillic Font Encoding - "&enc_name;
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (max(cap_height#+acc_height#,uc_acc_height#));
+font_desc_depth desc_depth#;
+font_max_height (max(asc_height#,body_height#,
+ cap_height#+acc_height#,uc_acc_height#));
+font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+font_baselineskip (1.2*designsize);
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ input llmligtb; % do the ligature programs for monospaced fonts
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ TITLEfont:=false; SmallCapsfont:=true; ROMANfont:=false;
+ input llvligtb; % do the ligature programs, not for monospaced fonts
+ if roman_ec: input llcligtb; fi
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ scantokens("input "&(substring(fonteq-2,fonteq) of param_base)&"liker"); % Cyrillic ligs & kerns
+fi
+
+bye.
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/leroman.mf b/Master/texmf-dist/fonts/source/lh/base/leroman.mf
new file mode 100644
index 00000000000..03b582c717d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/leroman.mf
@@ -0,0 +1,85 @@
+%
+% lecsc.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Driver file, called by parameter files with roman style fonts
+% - modified EXROMAN.MF in European Computer Modern fonts (ec fonts)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+
+input lxpseudo;
+
+mode_setup; font_setup;
+pseudo_setup; % |pseudo_setup| from ec
+
+% upper part exr(u/l)(lett/west/east) changed to cyrillic glyphs
+%vvv
+if roman_ec:
+ input exrulett;
+ input exrllett;
+fi
+%<<<
+input lgcyru; % input Cyrillic Uppercase shapes
+input lgcyrl; % input Cyrillic Lowercase shapes
+
+input lgcyrsym; % floating symbols in Cyrillic
+input lgengsym; % latin symbols
+input lgromp; % roman & ?
+input lgrdigit; % roman digits
+input lgrlig; % roman dotless i j (and ff-ligatures)
+
+input lgcyracc; % accents
+if old_cyr:
+ input lgocyrac; % Cyrillic Old Slav accents & signs
+fi
+
+%
+% Fontparameter
+%
+font_coding_scheme:="TeX Cyrillic Font Encoding - "&enc_name;
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (max(cap_height#+acc_height#,uc_acc_height#));
+font_desc_depth desc_depth#;
+font_max_height (max(asc_height#,body_height#,
+ cap_height#+acc_height#,uc_acc_height#));
+font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+font_baselineskip (1.2*designsize);
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ input llmligtb; % do the ligature programs for monospaced fonts
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ TITLEfont:=false; SmallCapsfont:=false; ROMANfont:=true;
+ input llvligtb; % do the ligature programs, not for monospaced fonts
+ if roman_ec: input llrligtb; fi
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ scantokens("input "&(substring(fonteq-2,fonteq) of param_base)&"liker"); % Cyrillic ligs & kerns
+fi
+
+bye.
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/letextit.mf b/Master/texmf-dist/fonts/source/lh/base/letextit.mf
new file mode 100644
index 00000000000..19778443a90
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/letextit.mf
@@ -0,0 +1,94 @@
+%
+% letextit.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Driver file, called by parameter files with italic style fonts
+% - modified EXTEXTIT.MF in European Computer Modern fonts (ec fonts)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+
+input lxpseudo;
+
+mode_setup; font_setup;
+pseudo_setup; % |pseudo_setup| from ec
+
+% upper part exr(u/l)(lett/west/east) changed to cyrillic glyphs
+%vvv
+if roman_ec:
+ input exillett;
+fi
+%<<<
+input lgcyri; % input Cyrillic Italic shapes
+
+input lgilig; % italic dotless i j (and ff-ligatures)
+
+%!!! this command moved here accordingly to CM textit file
+if monospace: letter_fit#:=letter_fit:=0; fi
+%vvv
+if roman_ec:
+ input exrulett;
+fi
+%<<<
+input lgcyru; % input Cyrillic uppercase shapes
+
+input lgcyrsym; % floating symbols in Cyrillic
+input lgengsym; % latin symbols
+input lgitalp; % italic & ?
+input lgidigit; % italic digits
+
+input lgcyracc; % accents
+if old_cyr:
+ input lgocyrac; % Cyrillic Old Slav accents & signs
+fi
+
+%
+% Fontparameter
+%
+font_coding_scheme:="TeX Cyrillic Font Encoding - "&enc_name;
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (max(cap_height#+acc_height#,uc_acc_height#));
+font_desc_depth desc_depth#;
+font_max_height (max(asc_height#,body_height#,
+ cap_height#+acc_height#,uc_acc_height#));
+font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+font_baselineskip (1.2*designsize);
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+ input llmligtb; % do the ligature programmes for monospaced fonts
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ TITLEfont:=false; SmallCapsfont:=false; ROMANfont:=false;
+ input llvligtb; % do the ligature programmes for proportionally spaced fonts
+ if roman_ec: input lliligtb; fi
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ scantokens("input "&(substring(fonteq-2,fonteq) of param_base)&"liker"); % Cyrillic ligs & kerns
+fi
+
+bye.
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcspl.mf b/Master/texmf-dist/fonts/source/lh/base/lgcspl.mf
new file mode 100644
index 00000000000..10d16248635
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgcspl.mf
@@ -0,0 +1,67 @@
+%
+% lgcspl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Metafont program for the characters in positions of ligatures
+% for the "caps and small caps" fonts
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% I,J
+% if roman_ec: FI,FL,FFI,FFL fi -- for T2* stuff only (lgcsplff.mf)
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if roman_ec:
+
+input lgcsplff.mf
+
+fi % roman_ec
+
+lhchar "Small Caps letter I";
+cyrchar(i_dotl,max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or slitex or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+lhchar "Small Caps letter J";
+cyrchar(j_dotl,9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcsplff.mf b/Master/texmf-dist/fonts/source/lh/base/lgcsplff.mf
new file mode 100644
index 00000000000..53147ac77de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgcsplff.mf
@@ -0,0 +1,192 @@
+%
+% lgcsplff.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Metafont program for the characters in positions of ligatures
+% for the "caps and small caps" fonts
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% if roman_ec: FI,FL,FFI,FFL fi -- for T2* stuff only
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Small Caps letter FF";
+beginchar(oct"033",2(11.5u#-width_adj#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the second F
+currentpicture:=currentpicture + currentpicture shifted (w',0);
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+lhchar "Small Caps letter FI";
+beginchar(oct"034",11.5u#-width_adj#+max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the I
+xshift:=w';
+w':=w-xshift;
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+if serifs or slitex or monospace:
+ dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut); % upper serif
+ dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+lhchar "Small Caps letter FL";
+beginchar(oct"035",(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the L
+xshift:=w';
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
+bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
+arm(13,14,eee,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut); % upper serif
+ nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+lhchar "Small Caps letter FFI";
+beginchar(oct"036",2(11.5u#-width_adj#)+max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the second F
+currentpicture:=currentpicture + currentpicture shifted (w',0);
+% the I
+xshift:=2w';
+w':=w-xshift;
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround(xshift+.5w'-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+if serifs or slitex or monospace:
+ dish_serif(11,12,aa,1/3,1.05cap_jut,bb,1/3,1.05cap_jut); % upper serif
+ dish_serif(12,11,gg,1/3,1.05cap_jut,dd,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+lhchar "Small Caps letter FFL";
+beginchar(oct"037",2(11.5u#-width_adj#)+11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+normal_adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+w':=11.5u-width_adj;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w'-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w'-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w'-.5u);
+else: rt x6r=hround(w'-1.5u); y6=y5l+eps; rt x9r=hround(w'-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+% the I
+currentpicture:=currentpicture + currentpicture shifted (w',0);
+% the L
+xshift:=2w';
+pickup tiny.nib; pos11(cap_stem,0); pos12(cap_stem,0);
+lft x11l=lft x12l=hround xshift+max(2u,3u-.5cap_stem); top y11=h; bot y12=0;
+filldraw stroke z11e--z12e; % stem
+pickup crisp.nib; pos13(slab,-90); pos14(hair,0);
+bot y13r=0; x13=x12; y14=y13l+7/6beak+eps; rt x14r=hround(w-.75u);
+arm(13,14,eee,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(11,12,aaa,1/3,cap_jut,bbb,1/3,1.25cap_jut); % upper serif
+ nodish_serif(12,11,ccc,1/3,cap_jut,ddd,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9,11,12); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcyracc.mf b/Master/texmf-dist/fonts/source/lh/base/lgcyracc.mf
new file mode 100644
index 00000000000..637f7883d79
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgcyracc.mf
@@ -0,0 +1,480 @@
+%
+% lgcyracc.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Accents
+% - borrowed from ec fonts: "00--"0c
+% + additional Cyrilic accents
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of accents
+%
+% Agrave "00 ` accent grave
+% Aacute "01 ' accent acute
+% Ahat "02 ^ accent circumflex
+% Atilde "03 ~ accent tilde
+% Aumlaut "04 accent umlaut
+% Aacute_dbl "05 '' accent hungarian umlaut
+% Aring "06 Scandinavian circle
+% Ahachek "07 accent hacheck
+% Abreve "08 accent breve
+% Abar "09 accent macron (bar)
+% Adot "0a accent dot
+% Acedilla "0b cedilla
+% Aogonek "0c ogonek
+%
+% Afrown "12 accent reversed breve
+% Agrave_dbl "13 `` accent reversed hungaran umlaut
+% Acyrbreve "14 Cyrilllic breve
+% Ahcross "17 accent hor cross
+% Agrave_cross "19 accent grave_cross
+% Aacute_cross "1a accent acute_cross
+%
+% T2-outsiders
+%
+% Avcross - accent vert cross
+% Abar_long - accent macron (bar) long
+% Abreve_long - accent breve long
+% Atilde_long - accent tilde long
+% Adesc_lo - lowercase descender ? italic
+% Adesc_up - uppercase descender
+% Alcomma - comma below letter
+% Atie - tie accent (like Afrown)
+% Acomma - comma above letter
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+%accents
+%
+lhchar "Grave accent";
+cyrchar_twice(Agrave,9u#,x_height#,0); % |put_gravis| changes the height
+adjust_fit(0,0);
+put_gravis;
+repeat_once;
+endchar;
+
+lhchar "Acute accent"; % using acute from plfonts
+cyrchar_twice(Aacute,9u#,x_height#,0); % |put_accent| changes the height
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+put_accent;
+repeat_once;
+endchar;
+
+lhchar "Circumflex (hat) accent";
+cyrchar(Ahat,9u#,x_height#+acc_height#,0);
+lowercase_hat(.5w,oo,0,1,2,3,4);
+penlabels(0,1,2,3,4); endchar;
+
+lhchar "Tilde (squiggle) accent";
+cyrchar(Atilde,9u#,x_height#+acc_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+lowercase_tilde(0,0 if variant_g: -1/6acc_height fi,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+lhchar "Umlaut (double dot) accent";
+cyrchar(Aumlaut,9u#,lc_trema_height#,0);
+italcorr h#*slant+.5udot_diam#-2.25u#;
+adjust_fit(0,0);
+lowercase_umlaut(0,0,1,2,3,4); penlabels(1,2,3,4); endchar;
+
+lhchar "Double acute accent (Long Hungarian umlaut accent)";
+cyrchar_twice(Aacute_dbl,9u#,x_height#+acc_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+endchar;
+
+lhchar "Scandinavian circle accent";
+cyrchar(Aring,13u#+4/3acc_height#*slant,x_height#+acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+lowercase_circle(.5w,vround(1/3[x_height,h]+apex_o),1,2,3,4);
+penlabels(1,2,3,4); endchar;
+
+lhchar "Hachek (check) accent";
+cyrchar(Ahachek,9u#,x_height#+acc_height#,0);
+adjust_fit(0,0);
+lc_hachek_accent(.5w);
+endchar;
+
+lhchar "Breve accent";
+cyrchar(Abreve,9u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+lowercase_breve(.5w,0,1,2,3);
+penlabels(1,2,3); endchar;
+
+lhchar "Macron (bar) accent";
+cyrchar(Abar,9u#,lc_trema_height#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+lhchar "Dot accent";
+cyrchar_twice(Adot,5u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5idot_diam#-2u#;
+adjust_fit(0,0);
+put_dot(tiny,max(dot_size#,cap_curve#));
+repeat_once;
+penlabels(1,2); endchar;
+
+lhchar "Cedilla accent";
+cyrchar(Acedilla,8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+lowercase_cedilla(.5w,0,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+lhchar "Ogonek accent";
+cyrchar(Aogonek,5u#,0,desc_depth#);
+italcorr 0;
+adjust_fit(0,0);
+%the_ogonek(.5w,0, 1,2,3);
+% polish-like "easy_ogonek" instead of Computer Modern "the_ogonek"
+def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+enddef;
+% |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ogonek_pos=(.5w if not serifs: +.5stem if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+easy_ogonek(the_pen, 1,2,3); % ogonek
+penlabels(1,2,3); endchar;
+
+lhchar "Cyrillic accent hcross - horisontal cross";
+cyrchar(Ahcross,5u#,x_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+% hstroke
+numeric outer_jut;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+bar_stroke(.5w-outer_jut,.5w+outer_jut); % bar
+endchar;
+
+lhchar "Cyrillic accent vcross - vertical cross";
+cyrchar(Avcross,5u#,x_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+% vcross
+if serifs: pickup crisp.nib; else: pickup fine.nib; fi
+numeric middle_weight;
+middle_weight=max(currentbreadth+eps,.6[thin_join,vair]);
+pos1(middle_weight,0); pos2(middle_weight,0);
+lft x1l=lft x2l=hround(.5w-.5middle_weight);
+top y2-bot y1=.55x_height; .5[y1,y2]=bar_height;
+filldraw stroke z1e--z2e;
+endchar;
+
+lhchar "Cyrillic accent acute_cross - diagonal cross"; % cross from pl_ml (plfonts)
+cyrchar_twice(Aacute_cross,5u#,x_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric unbalance,outer_jut;
+unbalance=if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+put_cyrcross(.5w,0,outer_jut,unbalance*outer_jut);
+repeat_once;
+endchar;
+
+lhchar "Cyrillic accent grave_cross - diagonal cross"; % cross from pl_ml (plfonts)
+cyrchar_twice(Agrave_cross,5u#,x_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric unbalance,outer_jut;
+unbalance=if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+put_cyrcross(.5w,0,-outer_jut,-unbalance*outer_jut);
+repeat_once;
+endchar;
+
+lhchar "Cyrillic accent Agrave_dbl - double grave";
+cyrchar_twice(Agrave_dbl,9u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+if monospace: hpos_corr=-2u; put_gravis; hpos_corr=2u; put_gravis;
+else: hpos_corr=-1.5u; put_gravis; hpos_corr=1.5u; put_gravis; fi
+repeat_once;
+endchar;
+
+lhchar "Cyrillic accent cyrillic breve";
+cyrchar(Acyrbreve,9u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+cbreve(.5w,0, 1,2,3,4,5,6,7);
+endchar;
+
+lhchar "Cyrillic frown accent";
+cyrchar(Afrown,9u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+%!!! lowercase_breve flipped
+x_center:=.5w; y_move:=0; _one:=1; _two:=2; _three:=3;
+%
+pickup crisp.nib; pos[_one](vair,180);
+pos[_three](vair,0);
+top y[_two]r=h+oo+eps; %!!!v
+x[_two]=x_center;
+lft x[_one]r=hround(x[_two]-2.5u
+ if monospace: /expansion_factor fi -0.5vair);
+rt x[_three]r=hround(x[_two]+2.5u
+ if monospace: /expansion_factor fi +0.5vair);
+numeric mid_thickness; mid_thickness=max(crisp.breadth,vround 1/3[vair,stem]);%!!!
+bot y[_one]=bot y[_three]= %!!!
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5crisp
+ else: vround 2/3[x_height+acc_height,x_height] fi;
+if y[_two]r<(y[_one]+.5crisp+eps): %!!!
+ y[_two]r:=y[_one]+.5crisp+eps; fi %!!!
+pos[_two](mid_thickness,90); %!!! moved here after if
+filldraw stroke z[_one]e{up}...
+ z[_two]e{right}...{down}z[_three]e; % stroke
+%
+penlabels(1,2,3); endchar;
+
+%
+% T2-outsiders
+%
+lhchar"Cyrillic tie accent"; % centered
+cyrchar(Atie,9u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=w-rt x3r=hround(2u-.5vair); x2=.5w;
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+lhchar "Cyrillic accent Abreve_long - long breve"; %accent width enlarged by 3u
+cyrchar(Abreve_long,12u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+x_center:=.5w; y_move:=0;
+_one:=1; _two:=2; _three:=3;
+pickup crisp.nib; pos[_one](vair,-180);
+pos[_three](vair,0);
+top y[_one]=top y[_three]=h;
+x[_two]=x_center;
+lft x[_one]r=hround(x[_two]-4.75u%!2.5u
+ if monospace: /expansion_factor fi -0.5vair);
+rt x[_three]r=hround(x[_two]+4.75u%!2.5u
+ if monospace: /expansion_factor fi +0.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos[_two](mid_thickness,-90);
+bot y[_two]r=
+ vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z[_one]e{down}...
+ z[_two]e{right}...{up}z[_three]e; % stroke
+endchar;
+
+lhchar "Cyrillic accent Abar_long - long bar"; %accent width enlarged by 3u
+cyrchar(Abar_long,12u#,lc_trema_height#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround .5u;%!1.25u
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+lhchar "Cyrillic accent Adesc_up - uppercase descender";
+cyrchar(Adesc_up,5u#,pdot_diam#,cap_sbeak#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem);
+top y1=h; bot y2=0;
+inner_jut:=.5cap_stem+eps;
+numeric arm_thickness; arm_thickness=slab+vair_corr;
+save slab,bracket;
+bracket:=0; slab:=arm_thickness; % bottom.slab
+numeric left_jut;
+left_jut=
+ if serifs: max(limit_dist,if monospace: 1.414cap_jut else: 1.1cap_jut fi)
+ else: hround (r-rt x2r-.65u) fi;
+cyr_serif(2,1,a,1/3,beak_darkness,left_jut,beak_jut); % right descender
+endchar;
+
+lhchar "Cyrillic accent Adesc_lo - lowercase descender";
+cyrchar(Adesc_lo,5u#,pdot_diam#,sbeak#);
+adjust_fit(0,serif_fit#);
+pickup tiny.nib;
+pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps);
+top y1=h; bot y2=0;
+save slab,bracket;
+bracket:=0; slab:=vair; % lower.slab
+numeric left_jut;
+left_jut=if serifs:
+ max(limit_dist,if monospace: 1.414jut else: 1.1jut fi)
+ else: hround (r-rt x2r-.5u) fi;
+cyr_serif(2,1,a,1/3,beak_darkness,left_jut,.6beak_jut); % right descender
+endchar;
+
+lhchar "Cyrillic accent Adesc_it - italic descender";
+cyrchar(Adesc_it,5u#,pdot_diam#,desc_depth#);
+adjust_fit(0,.1u#);
+pickup fine.nib;
+pos1(vair,180); x1=.5w; y1=.4bar_height;
+i_serif(1,x);
+endchar;
+
+lhchar "Cyrillic accent Atilde_long - long tilde"; %accent width enlarged by 3u
+cyrchar(Atilde_long,12u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+x_move:=0; y_move:=0;
+_one:=1; _two:=2; _three:=3; _four:=4; _five:=5;
+h':=min(asc_height,10/7x_height+.5dot_size);
+if serifs: numeric theta;
+ theta=angle(1/6(
+ 8.5u if monospace: /expansion_factor fi-vair),%!6u
+ 1/4(h'-x_height));
+ pickup crisp.nib;
+ numeric mid_width; mid_width=.4[vair,stem];
+ pos[_one](vair,theta+90);
+ pos[_two](vair,theta+90);
+ pos[_three](vair,theta+90);
+ pos[_four](vair,theta+90);
+ z[_two]-z[_one]=
+ z[_four]-z[_three]=(mid_width-crisp)*dir theta;
+ lft x[_one]r=hround(x_move+0.5w-5.25u if monospace: /expansion_factor fi);%!3u
+ rt x[_four]l=hround(x_move+0.5w+5.25u if monospace: /expansion_factor fi);%!3u
+ top y[_four]r=h';
+ bot y[_one]l=vround(bot y[_one]l+
+ min(2/3[x_height,h'],y[_three]l-.25vair)-top y[_one]r);
+ pair delta;
+ ypart delta=3(y[_three]l-y[_one]l);
+ delta=whatever*dir theta;
+ filldraw z[_one]l..
+ controls(z[_one]l+
+ delta)and(z[_three]l-delta)..z[_three]l..z[_four]l
+ --z[_four]r..
+ controls(z[_four]r-delta)and(z[_two]r+delta)..
+ z[_two]r..z[_one]r--cycle; % stroke
+else:
+ pickup fine.nib;
+ pos[_one](vair,180);
+ pos[_two](vair,90);
+ pos[_three](.5[vair,slab],90);
+ pos[_four](vair,90);
+ pos[_five](vair,180);
+ lft x[_one]r=hround (x_move + 0.5w-5.25u);%!3u
+ rt x[_five]l=hround (x_move + 0.5w+5.25u);%!3u
+ x[_two]-x[_one]=
+ x[_three]-x[_two]=
+ x[_four]-x[_three]=x[_five]-x[_four];
+ bot y[_one]=bot y[_four]l=y_move+vround(.75[x_height,h]-vair);
+ top y[_two]r=top y[_five]=h+y_move;
+ y[_three]=.5[y[_two],y[_four]];
+ filldraw stroke
+ z[_one]e{up}...
+ z[_two]e{right}..
+ z[_three]e..
+ {right}z[_four]e...{up}z[_five]e; fi % stroke
+endchar;
+
+lhchar "Cyrillic accent Acomma - comma above letter";
+cyrchar(Acomma,5u#,x_height#+1.25acc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+%ac_comma(0,0,1.25acc_height, 1,2,3,4,5)(above);
+x_move:=0; y_move:=0;
+depth:=1.25acc_height;
+_zero:=1; _one:=2; _two:=3; _three:=4; _four:=5;
+numeric height,bulb_diam;
+height=if serifs: depth+.5fine-max(.27depth,o+hair)
+ else: vround(2/3depth)
+ fi;
+bulb_diam=hround max(fine.breadth,min(dot_size,.55height));
+if square_dots:
+ % vertical above letter
+ pickup fine.nib;
+ pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ top y[_two]=h+y_move;
+ bot y[_one]=vround(y[_two]-height);
+ x[_two]=x[_one]=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+else:
+ % comma above letter
+ pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=h+y_move;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; % tail
+fi
+penlabels([_zero],[_one],[_two],[_three],[_four]);
+endchar;
+
+lhchar "Cyrillic accent Alcomma - comma below letter";
+cyrchar(Alcomma,9u#,x_height#+1.25acc_height#,desc_depth#);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+%ac_comma(0,0,1.25desc_depth,1,2,3,4,5);
+ x_move:=0; y_move:=0; depth:=1.25desc_depth;
+ _zero:=1; _one:=2; _two:=3; _three:=4; _four:=5;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcyri.mf b/Master/texmf-dist/fonts/source/lh/base/lgcyri.mf
new file mode 100644
index 00000000000..a1cdaf67b19
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgcyri.mf
@@ -0,0 +1,50 @@
+%
+% lgcyri.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Glyph head file for italic letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+altaccent:=true; % for cyrillic breve
+
+input lgrusi; % Russian letters
+input lgt2comi; % Letters common for couple of encodings
+
+if not more_letters: endinput \\; fi
+
+if old_cyr:
+ input lgt2slvi; % Unicode Old Slav letters
+ if not roman_ec:
+ input lgt2slxi; % additional Old slav letters
+ fi
+fi
+
+if not old_cyr or unic:
+ input lgt2upi; % letters from Upper part (128-255) of X2 container
+ input lgt2loi; % letters from Lower part (0-127) of X2 container
+fi
+
+if other_cyr:
+ input lgunici; % Unicode letters not included in T2
+ input lgcmodi; % modified letters
+ input lgcacci; % accended letters
+ input lgcvaci; % acuted vowels
+fi
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcyrl.mf b/Master/texmf-dist/fonts/source/lh/base/lgcyrl.mf
new file mode 100644
index 00000000000..fd9e69538cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgcyrl.mf
@@ -0,0 +1,48 @@
+%
+% lgcyrl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Glyph head file for lowercase letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+input lgrusl; % Russian letters
+input lgt2coml; % Letters common for couple of encodings
+
+if not more_letters: endinput \\; fi
+
+if old_cyr:
+ input lgt2slvl; % Unicode Old Slav letters
+ if not roman_ec:
+ input lgt2slxl; % additional Old slav letters
+ fi
+fi
+
+if not old_cyr or unic:
+ input lgt2upl; % letters from Upper part (128-255) of X2 container
+ input lgt2lol; % letters from Lower part (0-127) of X2 container
+fi
+
+if other_cyr:
+ input lgunicl; % Unicode letters not included in T2
+ input lgcmodl; % modified letters
+ input lgcaccl; % accended letters
+ input lgcvacl; % acuted vowels
+fi
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcyrsp.mf b/Master/texmf-dist/fonts/source/lh/base/lgcyrsp.mf
new file mode 100644
index 00000000000..734cf04319a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgcyrsp.mf
@@ -0,0 +1,165 @@
+%
+% lgt2lou.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Cyrillic letters 0--127 for T2 encoding
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2
+%
+% SP_LJE - Special title Lje
+% SP_NJE - Specisl title Nje
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Title Cyrillic letter LJE (Soft L)";
+cyrchar(LJE_title,13.5u#,cap_height#,0); % DL_width:N_width
+if is_small_cap: getcharcode(lje); fi;
+italcorr .52*.7cap_height#*slant-.5u#; % D*.52h
+adjust_fit(cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi, %DL_adj
+ 4u# if serifs:-.5width_adj# fi);%lsftsn_adj;lsftsnwd-.5width_adj
+% upper_l;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+numeric light_hair,bot_vair,left_jut;
+light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi);
+left_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit-rt x2r-.65u) fi;
+bot_vair=Vround(.5[vair,light_hair]);
+x3=1/3[w-rt x1r-(1/6left_jut),rt x1r] if not serifs:-.5(cap_stem-u) fi+eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(cap_hair,-180);
+ top y3=h; y6=1/6h-max(0,flare-stem-2vair_corr-.5); z6r=z5r;
+ lft x6r=l+letter_fit+hround(.5u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]); bot y4r=-o;
+ filldraw stroke z4e{right}..
+ controls (min(15/16[x4,x3],max(x4,lft x6r+2flare-eps))+(x3e-x3),y4e)
+ and (x3e,min(y6-.5,1/3h-eps)+1/3(y4e-y4))..z3e; % left tail
+ {{less_tense; bulb(4,5,6)}};
+else:
+ pos3'(slab,90); pos1'(slab,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e;
+ pickup fine.nib; pos3(max(fine.breadth,light_hair),0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=2/3[x3l,x5r]; lft x5=l+letter_fit+hround(.35u-.5);
+ bot y4r=bot y5r; y3=y3'; x4l:=.25[x4,x5];
+ path p;
+ p=stroke z3{down}
+ ..controls (x3,y5+.35h-eps) and (min(7/8[x4,x3],x5+2.5light_hair+.5u),y4)
+ ..{left}z4--z5;
+ z6=point .35 of p;
+ pos6(max(fine.breadth,7/8[bot_vair,light_hair]),angle(direction .35 of p)+90);
+ filldraw stroke z3e{down}...z6e{direction .35 of p}...{left}z4e--z5e; fi % arc
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=.5(lft x1l-rt x3r)+.5crisp+eps;
+ nodish_serif(2,1,a,1/3,cap_jut,b,1/3,.5cap_jut); %!!! % lower right serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); %upper right serif
+ nodish_serif(3,0,e,1/3,cap_jut,f,1/3,inner_jut); fi %upper left serif
+%%%%%
+% now the b part
+w:=w+3.75u if serifs:-.5width_adj fi;%lsftsnwd-.25u-.5width_adj
+% lsftsn_bowl(2);special
+_zero:=2;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+numeric bar[],right_curve;
+if known lower.cap_height#: % for Small Caps fonts
+ bar1=cap_band; right_curve=cap_curve if hefty:-3stem_corr fi;
+ y2.bh-y1.bh=cap_bar; .5[y2.bh,y1.bh]=.52lower.cap_height#*hppp;
+else:
+ bar1=vair'; right_curve=curve if hefty:-3stem_corr fi;
+ set_bar_axis;
+fi
+penpos[_three](right_curve,0);%!!!
+penpos[_four](bar1,-90); penpos[_five](bar1,-90);%!!!
+z[_five]r=(x[_zero],tiny.bot y[_zero]); y[_four]=y[_five];%!!!
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Title Cyrillic letter NJE (Soft N - looks like Hb)";
+cyrchar(NJE_title,13.5u#,cap_height#,0);
+if is_small_cap: getcharcode(nje); fi;
+italcorr .52*.7cap_height#*slant-.5u#; % D*.52h
+adjust_fit(cap_serif_fit#,
+ 4u# if serifs:-.5width_adj# fi);%lsftsn_adj;lsftsnwd-.5width_adj
+% upper_n;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper rt serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,.5cap_jut); fi %!!!% lower rt serif
+%%%%%
+% now the b part
+w:=w+3.75u if serifs:-.5width_adj fi;%lsftsnwd-.25u-.5width_adj
+% lsftsn_bowl(4);special
+_zero:=4;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+numeric bar[],right_curve;
+if known lower.cap_height#: % for Small Caps fonts
+ bar1=cap_band; right_curve=cap_curve if hefty:-3stem_corr fi;
+ y2.bh-y1.bh=cap_bar; .5[y2.bh,y1.bh]=.52lower.cap_height#*hppp;
+else:
+ bar1=vair'; right_curve=curve if hefty:-3stem_corr fi;
+ set_bar_axis;
+fi
+penpos[_three](right_curve,0);%!!!
+penpos[_four](bar1,-90); penpos[_five](bar1,-90);%!!!
+z[_five]r=(x[_zero],tiny.bot y[_zero]); y[_four]=y[_five];%!!!
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf b/Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf
new file mode 100644
index 00000000000..c832b975264
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgcyrsym.mf
@@ -0,0 +1,459 @@
+%
+% lgcyrsym.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Glyphs for ec and Cyrillic symbols used with floating codes
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of signs X2 T2*
+%
+% palochka "0d "0d symbol Palochka
+% openq Single German opening quote (looks like ,)
+% angle_left "0e "0e Single left angle bracket
+% lguillemet Single left guillemet
+% angle_right "0f "0f Single right angle bracket
+% rguillemet Single right guillemet
+%
+% dash "16 "16 Em dash/if monospace Hyphen
+% wordmark "17 Compound word mark
+% pmzero "18 "18 Zero for p mille sign (ec: "17)
+%
+% dbl_quotes "22 "22 Straight double quotes
+%
+% No "9d "9d Cyrillic symbol `Number'
+% currency "9e "9e Cyrillic Currency sign
+% section "9f "9f Section sign
+%
+% baseqq "bd "bd German Opening quotes (looks like ,,) (ec: "12)
+% flqq "be "be Cyrillic Opening Quotes (looks like <<) (ec: "13)
+% frqq "bf "bf Cyrillic Closing Quotes (looks like >>) (ec: "14)
+%
+% T1/T2-outsiders:
+%
+% pound ("bf) Sterling sign
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Cyrillic sign palochka (as latin I)";
+cyrchar(palochka,max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+penlabels(1,2); endchar;
+
+lhchar "Cyrillic `German opening comma'";
+cyrchar(openq,5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+if unknown math_anglebrackets:
+ boolean math_anglebrackets; math_anglebrackets:=false;
+fi
+
+lhchar "Single left angle bracket";
+cyrchar(angle_left,7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+if math_anglebrackets:
+ left_angle(rule_thickness);
+else:
+ pickup fine.nib;
+ pos1(fudged.hair,0); pos2(fudged.stem,0); pos3(fudged.hair,0);
+ x1=x3=hround(w-u)+eps; lft x2=hround(u)-eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ filldraw stroke z1e--z2e--z3e;
+fi
+endchar;
+
+lhchar "Single right angle bracket";
+cyrchar(angle_right,7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+if math_anglebrackets:
+ right_angle(rule_thickness);
+else:
+ pickup fine.nib;
+ pos1(fudged.hair,0); pos2(fudged.stem,0); pos3(fudged.hair,0);
+ x1=x3=hround(u)-eps; x2=hround(w-u)+eps;
+ top y1=h+eps; 0.5[y1,y3]=y2=good.y 0.5[-d+eps,h];
+ filldraw stroke z1e--z2e--z3e; % right >
+fi
+labels(1,2,3); endchar;
+
+lhchar "Single left guillemet"; % jk
+cyrchar(lguillemet,8u#,2bar_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+ pickup fine.nib;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ rt x1r=rt x3r=w-2u-eps;
+ lft x2l=hround(if not monospace: 2 fi\\ u)-eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ fi
+ penlabels(1,2,3);
+endchar;
+
+lhchar "Single right guillemet"; % jk
+cyrchar(rguillemet,8u#,2bar_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+ pickup fine.nib;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ lft x1l=lft x3l=2u+eps;
+ rt x2r=w-hround(if not monospace: 2 fi\\ u)+eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ fi
+penlabels(1,2,3); endchar;
+
+
+if unknown cyrdash: boolean cyrdash; cyrdash:=true; fi
+
+iff not monospace:
+lhchar "Cyrillic Em dash";%oct"026"
+cyrchar(dash,if cyrdash: 14.5u#%.8*18u#
+ else: 18u# fi
+ ,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair);
+if cyrdash:
+ lft x1=.25u-eps; rt x2=w-.25u+eps;
+else:
+ lft x1=-eps; rt x2=w+eps;
+fi
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff monospace:
+lhchar "Hyphen (instead of Cyrillic Em dash)";%oct"026"
+cyrchar(dash,6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+lhchar "Zero for p mille sign";
+cyrchar(pmzero,if serifs:
+ if monospace: 9u#+max(6u#,2fudge*(hair#+stem#)) else: 7u# fi else: 8u# fi,
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90);
+pos2(left_curve,180);
+pos3(vair,270);
+pos4(right_curve,360);
+bot y3r=-d;
+rt x4r=hround(.5w +2.5u );
+lft x2r=hround(.5w -2.5u ) ;
+top y1r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of lower bowl
+penlabels(1,2,3,4); endchar;
+
+lhchar "Compound word mark";
+cyrchar(wordmark,0,x_height#,0);
+zero_width;
+endchar;
+
+%
+
+lhchar "Straight double quotes";
+cyrchar(dbl_quotes,9u#,asc_height#,0);
+numeric top_width#,spread#;
+top_width#=if serifs: flare# else: stem# fi;
+spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+italcorr asc_height#*slant+.5top_width#+.5spread#-4u#;
+adjust_fit(0,0);
+x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ pos3(flare,0); pos4(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % left stem and bulb
+ filldraw circ_stroke z3e--z4e; % right stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; fi % right stem
+penlabels(1,2,3,4); endchar;
+
+%
+
+lhchar "Cyrillic symbol No."; %common
+cyrchar(No,14.5u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if monospace: 0,0 else: cap_serif_fit#
+ if serifs: +.5(flare#+(cap_stem#-stem#))-.25u#,cap_serif_fit# else:,0 fi fi);
+full_w:=w; w:=if serifs: 10u else: 11.5u fi;
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=h;
+if serifs: top y3=.79h; bot y2=.21h; else: top y3=h; bot y2=0; fi
+bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+if serifs: numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos21(thin_stem,-90); pos22(cap_hair,-180); pos23(bulb_diam,-180);
+ pos31(thin_stem,-90); z31'=z31;
+ pos31'(thin_stem,90); pos32(cap_hair,0); pos33(bulb_diam,0);
+ y23=vround max(.05fig_height+.5bulb_diam,.1fig_height-.5flare)-o;%
+ lft x23r=l+letter_fit+.15u; x33=w-x23; y33=h-y22;
+ x21=max(lft x23r+.5bulb_diam,.45[lft x23r,rt x2r]);
+ x31=w-x21; bot y21r=-oo; top y31l=h+oo;
+ bulb(21,22,23); bulb(31',32,33);
+ filldraw stroke z1e--z2e & pulled_arc.e(2,21); % left stem
+ filldraw stroke z4e--z3e & pulled_arc.e(3,31); % right stem
+else: filldraw stroke z1e--z2e; filldraw stroke z4e--z3e; fi
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+fi
+w:=full_w;
+penpos71(vair,90); penpos73(vair',-90);
+if serifs: x72r=x33+hround max(.25u,u-.4curve); x74r=hround(w-.5u);
+else: x72r=x3+1.25u+hround max(0,.75u-.4curve); x74r=hround(w-u); fi
+penpos72(min(1/3(x74r-x72r),.8curve),180);
+penpos74(min(1/3(x74r-x72r),.8curve),0);
+x71=x73=.5[x72r,x74r]; y71r=h-3u+vround 1.5oo; y73r=x_height-3u-oo;
+y72=y74=.5[h,x_height]-3u-vair_corr; y72l:=y74l:=.52[h,x_height]-3u;
+penstroke pulled_arc.e(71,72) & pulled_arc.e(72,73)
+ & pulled_arc.e(73,74) & pulled_arc.e(74,71) & cycle; % bowl
+pickup fine.nib; pos81(bar,90); pos82(bar,90);
+lft x81=x72r-.25fine; rt x82=x74r+.25fine; y81=y82=.8x_height-3u;
+filldraw stroke z81e--z82e;
+penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+lhchar "Cyrillic Currency sign"; % from ec ... from rsym (wasy)
+cyrchar(currency,1.13 min(asc_height#,9/7x_height#)+2u#,
+ min(asc_height#,9/7x_height#),0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo;
+circle_points;
+z9 = 1.30[z5,z1];
+z10 = 1.30[z7,z3];
+z11 = 1.30[z1,z5];
+z12 = 1.30[z3,z7];
+draw_circle;
+draw z1--z9;
+draw z3--z10;
+draw z5--z11;
+draw z7--z12;
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Section sign"; % taken from DC/EC
+cyrchar(section,6.5u#+max(1.5u#,stem#),asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+numeric sstem; sstem=hround .5[s_slab,ess']-fine;
+if sstem < fine.breadth: sstem:=fine.breadth; fi
+pos2(vair,90); pos3(sstem,180);
+pos4(ess',270); pos4'(vair,270);
+pos5'(sstem,0); pos5(sstem,180);
+pos6(ess',90); pos6'(vair,90); pos7(sstem,0);
+pos8(vair,-90);
+top y2r=h+oo; bot y8r=-d-oo;
+y3=.52[y4,y2]; y5=.52[y4,y6]; y7=.52[y6,y8]; y5'=.52[y6,y4];
+y2-y4=y4-y6=y6-y8;
+bot z4'=bot z4; top z6'=top z6;
+lft x3r=hround 1.25u;
+x2=x4=x6=x8=.5w; x5=x7=w-x3; x5'=x3;
+if serifs:
+ pos0(stem,0); pos1(hair,0); pos9(hair,-180); pos10(stem,-180);
+ rt x1r=hround(w-1.5u); x9=w-x1; y2-y1=y9-y8=(y2-y8)/8;
+ bulb(2,1,0); bulb(8,9,10); % bulbs
+else:
+ pos1(.6[slab,flare],-100); pos9(flare,-100); pos2'(vair,-90);
+ rt x1l=hround(w-1.3u); lft x9r=hround .8u; z2'=z2;
+ top y1l=vround .92asc_height+oo; bot y9r=vround .1asc_height-d-oo;
+ filldraw stroke term.e(2',1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(8,9,left,.9,4); % lower arc and terminal
+fi
+filldraw stroke z2e{left}...z3e{down}...z4e{3(x5-x3),y5-y3}
+ ...z5e{down}...{left}z6'e; % upper stroke
+filldraw stroke z4'e{left}...z5'e{down}...z6e{3(x7-x5'),y7-y5'}
+ ...z7e{down}...{left}z8e; % upper stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+%
+
+lhchar "Cyrillic `German Opening quotes' (looks like ,,)";
+cyrchar(baseqq,3u#+max(2u#,pdot_diam#),pdot_diam#,comma_depth#);
+italcorr asc_height#*slant+pdot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5pdot_diam=hround(w-.6u+.5pdot_diam); y2-.5pdot_diam=0;
+x1=w-x2; y2=y1;
+comma(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+lhchar "Cyrillic `French Opening Quotes' (looks like <<)";
+cyrchar_twice( % compilation of A.Shen's and ec (polish: pl_cud) quotes
+ if not hefty: flqq,10u#,2bar_height#,0 % ec metrics
+ else: flqq,12u#,2bar_height#,0
+ fi);
+adjust_fit(0,0);
+pickup fine.nib;
+numeric the_shift,shift_corr;
+the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+pos1(max(fine.breadth,
+ if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
+pos2(max(fine.breadth,if serifs:
+ if monospace: qvair else: stem fi else:7/8[vair,fudged.hair] fi),0);
+pos3(max(fine.breadth,
+ if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
+rt x1r=rt x3r=
+ hround(if hefty: .6 else: 2/3 fi w-shift_corr)-eps;
+lft x2l=hround(if not monospace: 2 fi\\ u-shift_corr)-eps;
+y2=good.y min(bar_height,.5x_height); top y1=vround 2y2;
+y1-y2=y2-y3;
+if hefty:
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*right; endfor
+ endfor
+ filldraw stroke z1e--z2e--z3e; % outer <
+ filldraw stroke z1'e--z2'e--z3'e; % inner <
+else:
+ pos1'(qvair,0);
+ pos2'(7/8 [hair,stem],0);
+ pos3'(qvair,0);
+ z2'=z2+the_shift*right;
+ y1'-y2'=y2'-y3'=.8(y1-y2);
+ z1'=z2'+whatever*(z1r-z2r); z3'=z2'+whatever*(z2r-z3r);
+ filldraw stroke
+ z1e{(x2e-x1e),1.2(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.2(y3e-y2e)}z3e; % outer <
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.2(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.2(y3'e-y2'e)}z3'e; % inner <
+fi
+% italic correction is set to |0| in |beginchar|, so let's correct it
+corrital z1'r;
+repeat_once;
+penlabels(1,2,3,1',2',3'); endchar;
+
+lhchar "Cyrillic `French closing quotes'";
+cyrchar_twice( % compilation of A.Shen's and ec (polish: pl_cud) quotes
+ if not hefty: frqq,10u#,2bar_height#,0 % ec metrics
+ else: frqq,12u#,2bar_height#,0
+ fi);
+adjust_fit(0,0);
+pickup fine.nib;
+numeric the_shift,shift_corr;
+the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+pos1(max(fine.breadth,
+ if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
+pos2(max(fine.breadth,if serifs:
+ if monospace: qvair else: stem fi else:7/8[vair,fudged.hair] fi),0);
+pos3(max(fine.breadth,
+ if serifs: qvair else: 7/8[vair,fudged.hair]-3stem_corr fi),0);
+lft x1l=lft x3l=w-
+ hround(if hefty: .6 else: 2/3 fi w-shift_corr)+eps;
+rt x2r=w-hround(if not monospace: 2 fi\\ u-shift_corr)+eps;
+y2=good.y min(bar_height,.5x_height); top y1=vround 2y2;
+y1-y2=y2-y3;
+if hefty:
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*left; endfor
+ endfor
+ filldraw stroke z1e--z2e--z3e; % outer <
+ filldraw stroke z1'e--z2'e--z3'e; % inner <
+else:
+ pos1'(qvair,0);
+ pos2'(7/8 [hair,stem],0);
+ pos3'(qvair,0);
+ z2'=z2+the_shift*left;
+ y1'-y2'=y2'-y3'=.8(y1-y2);
+ z1'=z2'+whatever*(z1l-z2l); z3'=z2'+whatever*(z2l-z3l);
+ filldraw stroke
+ z1e{(x2e-x1e),1.2(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.2(y3e-y2e)}z3e; % outer <
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.2(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.2(y3'e-y2'e)}z3'e; % inner <
+fi
+% italic correction is set to |0| in |beginchar|, so let's correct it
+corrital z2r;
+repeat_once;
+penlabels(1,2,3,1',2',3'); endchar;
+
+lhchar "Sterling sign"; % from ec
+cyrchar(pound,12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9l=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgcyru.mf b/Master/texmf-dist/fonts/source/lh/base/lgcyru.mf
new file mode 100644
index 00000000000..0437b340dd0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgcyru.mf
@@ -0,0 +1,62 @@
+%
+% lgcyru.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Glyph head file for uppercase letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if is_small_cap: % for accents
+ %%% fine higher
+ % the `higher' values are used while putting accents
+ forsuffixes $=u,o,letter_fit,x_height,bar_height,body_height,stem:
+ higher.$.#:=$.#; higher.$:=$;
+ endfor
+fi
+
+input lgrusu; % Russian letters
+input lgt2comu; % Letters common for couple of encodings
+
+if not is_small_cap:
+ if (known CYR_.LJE_title) or (known CYR_.NJE_title):
+ input lgcyrsp; % special title LJE NJE
+ fi
+fi
+
+if not more_letters: endinput \\; fi
+
+if old_cyr:
+ input lgt2slvu; % Unicode Old Slav letters
+ if not roman_ec:
+ input lgt2slxu; % additional Old slav letters
+ fi
+fi
+
+if not old_cyr or unic:
+ input lgt2upu; % letters from Upper part (128-255) of X2 container
+ input lgt2lou; % letters from Lower part (0-127) of X2 container
+fi
+
+if other_cyr:
+ input lgunicu; % Unicode letters not included in T2
+ input lgcmodu; % modified letters
+ input lgcaccu; % accended letters
+ input lgcvacu; % acuted vowels
+fi
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgengsym.mf b/Master/texmf-dist/fonts/source/lh/base/lgengsym.mf
new file mode 100644
index 00000000000..01397b58735
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgengsym.mf
@@ -0,0 +1,586 @@
+%
+% lgengsym.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Glyphs for ec and Cyrillic symbols used with unchanged codes
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of signs
+%
+% "10 oct"020" `` Opening quotes
+% "11 oct"021" '' Closing quotes
+% "15 oct"025" -- En dash/if monospace Hyphen
+% ***Em dash ("16) in file lgcyrsym changed to Cyrillic length
+%
+% "20 oct"040" Blank-space sign
+% "21 "!" ! Exclamation point
+% ***Double quotes ("22) in file lgcyrsym for possible floating
+% "23 "#" # Hash mark (number sign)
+% "24 "$" $ Dollar sign
+% "25 "%" % Per cent sign
+% ***Ampresand ("26) in files lg(rom/ital)p
+% "27 "'" ' Apostrophe
+% "28 "(" ( Left parenthesis
+% "29 ")" ) Right parenthesis
+% "2a "*" * Asterisk
+% "2b "+" + Plus sign
+% "2c "," , Comma
+% "2d "-" - Hyphen
+% "2e "." . Period
+% "2f "/" / Virgule (slash)
+%
+% ***Digits in files lg(r/i)digit
+% "3a ":" : Colon
+% "3b ";" ; Semicolon
+% "3c "<" < Less than sign
+% "3d "=" = Equals sign
+% "3e ">" > Greater than sign
+% ***Question mark ("3f) in files lg(rom/ital)p
+%
+% "40 "@" @ At sign
+% ***Uppercase Latin/Cyrillic letters
+% "5b "[" [ Left bracket
+% "5c oct"134" \ Reverse slash (backslash)
+% "5d "]" ] Right bracket
+% "5e oct"136" ^ Circumflex (hat)
+% "5f oct"137" _ Underbar
+%
+% "60 "`" ` Reverse apostrophe
+% ***Lowercase Latin/Cyrillic letters
+% "7b oct"173" { Left curly brace
+% "7c oct"174" | Vertical line
+% "7d oct"175" } Right curly brace
+% "7e oct"176" ~ Tilde (squiggle)
+% "7f oct"177" - Hyphenchar
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Opening quotes";
+beginchar(oct"020",3u#+max(2u#,pdot_diam#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5pdot_diam=hround(w-.6u+.5pdot_diam); y1+.5pdot_diam=h-comma_depth;
+x1=w-x2; y2=y1;
+ammoc(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+ammoc(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+lhchar "Closing quotes";
+beginchar(oct"021",3u#+max(2u#,pdot_diam#),asc_height#,0);
+italcorr asc_height#*slant+pdot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x1+.5pdot_diam=hround(.6u+.5pdot_diam); y2+.5pdot_diam=h;
+x2=w-x1; y2=y1;
+comma(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+iff not monospace:
+lhchar "En dash";
+beginchar(oct"025",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff monospace:
+lhchar "Hyphen";
+beginchar(oct"025",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff hefty: % Sans or typewriter
+lhchar "Blank-space sign";
+beginchar(oct"040",9u#,x_height#,.5desc_depth#);
+italcorr bar_height#*slant-.25u#;
+adjust_fit(0,0);
+numeric thin_vair#; thin_vair#=.7vair#;
+define_whole_blacker_pixels(thin_vair);
+h:=bar_height;
+forsuffixes $=1,2,3,4: penpos$(thin_vair,0); endfor
+penpos0(thin_vair,90); x0=.5w; y0l=vround(-d-.5thin_vair);
+x1=x2; x3=x4=w-x1; lft x1l=hround .75u;
+y1=y4=h; y2=y3=y0;
+fill z1l---z2l...(x2,y0l)---(x3,y0l)...z3r---z4r
+ ..z4l---(x3l,y0r)--(x2r,y0r)---z1r..cycle; % the stroke
+penlabels(0,1,2,3,4); endchar;
+
+iff not hefty: % Other than the above mentioned
+lhchar "Blank-space sign"; % jk
+beginchar(oct"040",9u#,x_height#,.5desc_depth#);
+italcorr bar_height#*slant-.25u#;
+adjust_fit(0,0);
+numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem];
+if shaved_stem<crisp.breadth: shaved_stem:=crisp.breadth; fi
+pickup crisp.nib;
+pos1(shaved_stem,-90); pos2(hair,0);
+bot y1r=-d; x1=.5w; rt x2r=hround(w-.75u); y2=good.y(y1l+.5beak)+eps;
+arm(1,2,a,beak_darkness,2beak_jut); % lower right arm and beak
+pos3(hair,180); x3=w-x2; y3=y2;
+arm(1,3,b,beak_darkness,-2beak_jut); % lower left arm and beak
+math_fit(0,.5ic#);
+penlabels(1,2,3); endchar;
+
+lhchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5pdot_diam#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(pdot_diam,0); pos4(pdot_diam,90);
+lft x3l=hround(.5w-.5pdot_diam); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8pdot_diam,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(pdot_diam,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5pdot_diam=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+lhchar "Hash mark (number sign)";
+if monospace: compute_spread(.6x_height#,.7x_height#);
+else: compute_spread(.45x_height#,.55x_height#); fi
+beginchar("#",15u#,asc_height#,asc_depth#);
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+adjust_fit(0,0);
+pickup extra_rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); endchar;
+
+
+lhchar "Dollar sign";
+beginchar("$",9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+lhchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1+.5pdot_diam=h;
+if monospace: comma(1,a,pdot_diam,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,pdot_diam,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+lhchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+lhchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+lhchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+lhchar "Plus sign";
+beginarithchar("+"); pickup extra_rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+lhchar "Comma";
+beginchar(",",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+lhchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+lhchar "Period";
+beginchar(".",5u#,pdot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+lhchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+lhchar "Colon";
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(pdot_diam,0); pos4(pdot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+lhchar "Semicolon";
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5pdot_diam=hround(.5w-.5pdot_diam); y3-.5pdot_diam=0;
+comma(3,a,pdot_diam,.2u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+lhchar "Less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar("<",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+lhchar "Greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(">",14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+lhchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+lhchar "At sign";
+beginchar("@",14u#,asc_height#,0);
+italcorr .7asc_height#*slant-.5u#;
+adjust_fit(0,if hefty or monospace:-2u# else: 0 fi);
+pickup fine.nib; pos0(fudged.hair,0); pos1(vair,90);
+pos2(fudged.stem,180); pos3(vair,270);
+pos4(fudged.stem,-180); pos5(fudged.stem,-180);
+pos6(vair,-90); pos7(fudged.hair,0);
+pos8(vair,90); pos9(fudged.hair,180);
+pos10(vair,270); pos11(.5[vair,flare],360);
+x1=x3=.5[x0,x2]; y0=y2=.5[y1,y3];
+x8=x10=.5w; y7=y9=.5[y8,y10];
+lft x9r=hround u; x7=w-x9; top y8r=h+oo; bot y10r=-oo;
+top y1r=vround(.8[y10,y8]+.5vair); bot y3r=vround(.2[y10,y8]-.5vair);
+x6l=1/3[x5l,x7l]; y6=y3; y11=good.y(.1[y10,y8]-.5);
+x0=x4=x5; y4=.8[y3,y1]; y5=2/3[y7,y6];
+if hefty or monospace: lft x2r=hround(5u-.5fudged.stem);
+ rt x0r=hround(w-3u); x11r=x0r;
+else: lft x2r=hround 3.4u; x0=w-x2; x11r=x7r; fi
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % left inner bowl
+filldraw stroke super_arc.e(3,0) & super_arc.e(0,1); % right inner bowl
+filldraw stroke super_arc.e(8,9) & super_arc.e(9,10)
+ & term.e(10,11,right,1,4); % left outer bowl and terminal
+if hefty or monospace: {{interim superness:=hein_super;
+ filldraw stroke super_arc.e(0,8)}}; % link
+else: (x,y6r)=whatever[z6l,z7l]; x6r:=x;
+ filldraw stroke z4e---z5e...z6e{right}...{up}z7e
+ & super_arc.e(7,8); fi % stem and link
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#); %%%]
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+% if hefty:
+ top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-stem_corr);
+% else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Reverse slash (backslash)";
+beginchar(oct"134",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup extra_rule.nib;
+lft x1=hround u-eps; top y1=h+eps;
+rt x2=hround(w-u)+eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+labels(1,2); endchar;
+
+lhchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+%if hefty:
+ top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-stem_corr);
+% else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Circumflex (hat)";
+beginchar(oct"136",11u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=.75[x_height,h]; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.25[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=2/3[x_height,h]; x2=.5w; bot y1=bot y3=vround x_height-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+lhchar "Underbar";
+compute_spread((5/8+.45)*x_height#,(3/4+.55)*x_height#);
+beginchar(oct"137",14u#,0,spread#-math_axis#+.5rule_thickness#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; bot y1=bot y2=-d;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+lhchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1+.5pdot_diam=h-comma_depth;
+if monospace: ammoc(1,a,pdot_diam,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,pdot_diam,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+lhchar "Left curly brace";
+beginchar(oct"173",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Vertical line";
+beginchar(oct"174",5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+lhchar "Right curly brace";
+beginchar(oct"175",9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Tilde (squiggle)";
+beginchar(oct"176",11u#,min(asc_height#,
+ 10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff not monospace:
+lhchar "Hyphenchar";
+beginchar(oct"177",3u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(2w-u)+eps;
+lft x1=hround .2u-eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff monospace:
+lhchar "Hyphenchar";
+beginchar(oct"177",3u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+x2=w-x1;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgidigit.mf b/Master/texmf-dist/fonts/source/lh/base/lgidigit.mf
new file mode 100644
index 00000000000..deb2b5d3efa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgidigit.mf
@@ -0,0 +1,286 @@
+%
+% lgidigit.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% exidigit.mf (ec fonts) with another beginning :-)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% italic numerals
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+% All digits have the same width
+
+font_digit_width 9u#;
+
+lhchar "Italic numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround(1.5u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+lhchar "Italic numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if one_serif: dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); fi % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=.8h+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u); tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..{left}z4e; % point
+penlabels(1,2,3,4); endchar;
+
+lhchar "Italic numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(curve,-360); pos7(hair,-405); pos8(hair,-360);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair);
+x3=.6[x2,x4]; lft x4r=hround(u-.5hair);
+x5=x7=.5w-.5u; rt x6r=hround(w-u); lft x8l=hround(1.5u-.5hair);
+y1=.5[x_height,h]; y2=1/3[y1,y3]; y4=x_height; bot y3r=vround .78y4;
+top y5r=h+o; y6=.5[y5,y7]; y7=.52y4; bot y8=-o;
+filldraw stroke if not hefty:z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6)
+ ...z7e{2(x7-x6),y7-y6}...{down}z8e; % main stroke
+pos9(vair,-90); pos10(vstem+curve-stem,-90); pos11(hair,0);
+x9=w-x10=2.5u; rt x11r=hround(w-.5u+.5hair);
+y9=.25[y10,y7]; bot y10r=-o; y11=.38x_height;
+filldraw stroke z8e{up}...z9e{right}..{right}z10e...{up}z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Italic numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(stem,-360); pos7(bar,-450); pos8(bar,-450);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
+x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
+y1=.5[x_height,h]; y2=.5[y1,y3]; y7=y8=.52h; bot y3r=vround 1/4[y7,h];
+y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
+filldraw stroke if not hefty: z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
+pos7'(vair,90); z7'l=z7r;
+pos9(curve,0); pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
+y9=.25h; bot y10r=-o; y11=1/3x_height; bulb(10,11,12); % bulb
+filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Italic numeral 4";
+beginchar("4",9u#,fig_height#,desc_depth#);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos6(stem,0); pos7(stem,0);
+pos2(bar,-45); pos3(bar,-90); pos4(bar,-90); pos5(bar,-45);
+rt x1r=hround(.5w+.5u+.5stem); lft x2l=hround .25u;
+x3=2.75u; x4=w-2u; rt x5r=hround(w-.25u);
+rt x6r=rt x7r=hround(2/3w+.5stem);
+y1+.5stem=h+o; bot y2r=0; bot y3r=vround(.08h-.5bar);
+bot y4r=vround-.5bar; bot y5r=vround(.03h-.5bar);
+y6+.5stem=bar_height; y7-.5stem=-d;
+filldraw circ_stroke z1e{down}...{3(x2-x1),y2-y1}z2e; % diagonal
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{x5-x4,2(y5-y4)}z5e; % bar
+filldraw z6l---z7l..z7r---z6r..cycle; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric fat_curve; fat_curve=1.4[stem,curve];
+pos1(hair,0); pos2(hair,0); pos3(vstem+curve-stem,-90);
+pos4(vair,-90); pos5(hair,0); pos6(fat_curve,0);
+top y1=h+o; y2=x_height; y3l=y5=y1;
+bot y4r=vround(.5[y2,h]-.5vair); y6-.5fat_curve=-o;
+lft x2l=hround(.5u-.5hair); x3=.5w-.5u; x4=2/3w;
+rt x5r=hround(w-.75u+.5hair); rt x6r=hround(.5w+u+.5fat_curve);
+z1=z2+whatever*(z5-z6); filldraw stroke z1e--z2e; % serif
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{2(x5-x6),y5-y6}z5e; % bar
+filldraw circ_stroke z6e{up}...{2(x5-x6),y5-y6}z5e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Italic numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ if lower_side>1.2upper_side: upper_side:=lower_side; fi
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgilig.mf b/Master/texmf-dist/fonts/source/lh/base/lgilig.mf
new file mode 100644
index 00000000000..98bbe913b79
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgilig.mf
@@ -0,0 +1,59 @@
+%
+% lgilig.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% roman dotless i,j
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Special letters
+%
+% i_dotl "19 i dotless
+% j_dotl "1a j dotless
+% ff-ligs (lgiligff.mf)
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if (roman_ec=true) and (old_cyr=false):
+
+input lgiligff.mf
+
+fi %roman_ec
+
+lhchar "Italic Cyrillic letter dotless i";
+cyrchar(i_dotl,5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+penlabels(0,1,2,3,4,5); endchar;
+
+lhchar "Italic Cyrillic dotless j";
+cyrchar(j_dotl,5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-2u#;
+adjust_fit(if monospace:2u# else: 0 fi, 0); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-2u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+penlabels(0,1,2,3,4,5,6); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgiligff.mf b/Master/texmf-dist/fonts/source/lh/base/lgiligff.mf
new file mode 100644
index 00000000000..648b9fbb69f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgiligff.mf
@@ -0,0 +1,242 @@
+%
+% lgilig.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% roman dotless i,j
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Special letters
+%
+% ff-ligs
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+numeric itc; % modified italic correction on `f' and `ff'
+itc=(asc_height#-x_height#)*slant+.75u#;
+
+lhchar "Italic ligature ff";
+beginchar(oct"033",
+%if monospace: 12u# else:
+(5u#+max(1.5u#,stem#)+max(3.5u#,2flare#))+2letter_fit#, % fi,
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+normal_adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 4.3u else: 4.8u fi +2letter_fit,0);
+.5[x88,x99]=.5w-.1u; x89-x88=u; y98=h; y99=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+if monospace: rt x1r=hround(.5w+.75u);
+else:
+ rt x1r=hround(.5w+1.25u);
+fi
+%if monospace: lft x8r=hround-.35u;
+%else:
+lft x8r=hround-.35u;
+%fi
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % left bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower left arc
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90); pos16(.5[hair,stem],0);
+pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
+rt x11r=hround(w+.25u);
+if monospace: lft x18r=hround(.5w-.75u);
+else: lft x18r=hround(.5w-1.25u); fi
+x12=.6[x11,x14]; x17=.5[x18,x15];
+x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
+y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
+bulb(12,11,10); bulb(17,18,19); % right bulbs
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % right stem
+filldraw stroke z15e{z99-z98}...z16e...{left}z17e; % lower middle arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x14l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 20,21,88,89,98,99); endchar;
+
+lhchar "Italic ligature fi";
+beginchar(oct"034",if monospace: 4.5u# else: 6.5u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+normal_adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-if monospace: 2u else: 4u fi -2letter_fit); x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+pos11(stem,0); rt x11r=hround(w-2.5u+.5stem);
+x12=x11; x14=w; hook_out(12,13,14); % closing hook
+x1r=x11r; lft x8r=hround-.35u; x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround-.85d; bot y7r=-d-oo;
+y0+.5flare=vround(.85[x_height,h]); top y2r=h+oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+top y11=x_height; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x11;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;
+
+lhchar "Italic ligature fl";
+beginchar(oct"035",if monospace: 5u# else: 7u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+normal_adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-if monospace: 3.5u else: 4.5u fi -2letter_fit);
+x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+pos11(stem,0); rt x11r=hround(w-2.5u+.5stem); rt x1r=lft x11l;
+x12=x11; x14=w; hook_out(12,13,14); % closing hook
+if monospace: lft x8r=hround-.55u;
+else: lft x8r=hround-.35u; fi
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+top y11=h; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x11;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;
+
+lhchar "Italic ligature ffi";
+beginchar(oct"036",
+if monospace: 7.75u# else: 11.75u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +4letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+normal_adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 3u else: 5u fi +2letter_fit,0);
+numeric theta,mid_f;
+mid_f=.5[x88,x99]=.5(w-if monospace: 2.25u else: 4.25u fi -2letter_fit);
+x89-x88=u;
+y98=h; y99=-d; theta=angle(z88-z89);
+pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
+x22=x21; x24=w; hook_out(22,23,24); % closing hook
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+if monospace: rt x1r=hround(mid_f+u);
+else: rt x1r=hround(mid_f+1.75u); fi
+if monospace: lft x8r=hround -.65u;
+else: lft x8r=hround-.35u; fi
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % left bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower left arc
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90); pos16(.5[hair,stem],0);
+pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
+x11r=x21r; lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
+x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
+y10+.5flare=vround .85[x_height,h];
+y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
+bulb(12,11,10); bulb(17,18,19); % right bulbs
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % middle stem
+filldraw stroke z15e{z99-z98}...z16e...{left}z17e; % lower middle arc
+top y21=x_height; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; pos30(bar,90); pos31(bar,90);
+top y30r=top y31r=x_height;
+lft x30=lft x4r-.5stem-u; x31=x21;
+filldraw stroke z30e--z31e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,30,31,88,89,98,99); endchar;
+
+lhchar "Italic ligature ffl";
+beginchar(oct"037",
+ if monospace: 8u# else: 12u# fi +.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +4letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+normal_adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(if monospace: 3u else: 5u fi+2letter_fit,0);
+numeric theta,mid_f;
+mid_f=.5[x88,x99]=.5(w-if monospace: 2u else: 4.5u fi-2letter_fit); x89-x88=u;
+y98=h; y99=-d; theta=angle(z88-z89);
+pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
+x22=x21; x24=w; hook_out(22,23,24); % closing hook
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+if monospace: rt x1r=hround(mid_f+u);
+else: rt x1r=hround(mid_f+1.25u); fi
+lft x8r=hround-.35u;
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % left bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower left arc
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90); pos16(.5[hair,stem],0);
+pos17(vair,-90); pos18(hair,-180); pos19(flare,-180); rt x11r=lft x21l;
+lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
+x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
+y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
+bulb(12,11,10); bulb(17,18,19); % right bulbs
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % middle stem
+filldraw stroke z15e{z99-z98}...z16e...{left}z17e; % lower middle arc
+top y21=h; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; pos30(bar,90); pos31(bar,90);
+top y30r=top y31r=x_height;
+lft x30=lft x4r-.5stem-u; x31=x21;
+filldraw stroke z30e--z31e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,30,31,88,89,98,99); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgitalp.mf b/Master/texmf-dist/fonts/source/lh/base/lgitalp.mf
new file mode 100644
index 00000000000..4300d00c534
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgitalp.mf
@@ -0,0 +1,86 @@
+%
+% lgitalp.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% exitalp.mf (ec fonts) with another beginning :-)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of signs
+%
+% "26 & Ampersand
+% "3f & Question mark
+% * Spanish open question mark moved out
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+iff not wncoding:%
+lhchar "Italic ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr asc_height#*slant-1.5u#;
+adjust_fit(if monospace:-u#,-2u# else: 0,0 fi); pickup fine.nib;
+pos1(flare,0); pos2(hair,0); pos3(vair,90);
+rt x2r=hround.5w; x3=1/3(w-u);
+top y3r=h+o; y2=.5[x_height,h]; bulb(3,2,1); % left bulb
+pos4(stem,180); pos5(vair,270); pos6(hair,360); pos7(vair,450);
+pos8(curve,540); pos9(vair,630); pos10(hair,720);
+lft x4r=hround 1.25u; x5=x7=x3+1/6u; rt x6r=hround(x5+1.5u);
+lft x8r=hround u; x9=.5w; rt x10r=hround(w-1.5u);
+y4=.5[y3,y5]; top y5l=vround .77x_height; y6=.5[y5,y7];
+y7l=good.y 1/3[y5,y3]; y8=.5[y7,y9]; bot y9r=-o; y10=bar_height;
+pos12(hair,0); pos13(curve,0); pos14(hair,0); pos15(vair,90); pos16(curve,90);
+rt x12r=rt x13r=hround(w-2u); lft x14l=hround(.5w+.5u);
+x15=x16=rt x14r+u;
+y12=y13=h-.5curve; y14=.5[bar_height,x_height];
+bot y15l=bot y16l=vround y10;
+numeric theta; theta=angle((z12-z14)xscaled 2);
+pos11(hair,theta); x11=w-4u; y11=.5[y13,y16];
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & pulled_arc.e(7,8) & pulled_arc.e(8,9)
+ & {{interim superness:=more_super; pulled_arc.e(9,10)}}
+ ..tension .9 and 1..{dir(theta+100)}z11e; % bowls, loop, and stem
+pos11'(hair,theta-90); z11'=z11;
+forsuffixes $=l,r: path p$;
+ p$=z12${down}..z11'${-dir theta}..{down}z14$...{right}z15$; endfor
+filldraw p.l--reverse p.r--cycle; % arms
+path q[]; q1=z13r{up}..z13l{down}..cycle;
+q2=z16l{right}..z16r{left}..cycle;
+filldraw subpath(0,ypart(p.l intersectiontimes q1)) of q1--cycle; % upper bulb
+filldraw subpath(0,ypart(p.r intersectiontimes q2)) of q2--cycle; % lower bulb
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+lhchar "Italic question mark";
+beginchar("?",9u#,asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); bot y11l=0; z10=z11; dot(10,11); % dot
+pickup fine.nib; pos1(flare,180); pos2(hair,180); pos3(vair,90);
+lft x1r=hround u; x3=.5w;
+y1-.5flare=x_height; top y3r=h+o; bulb(3,2,1); % bulb
+pos8(vair,-90); x8=.5w; bot y8r=.25[top y11r,x_height]+1;
+numeric theta; theta=90+angle(10u,y3-y8); slope:=(y3-y8)/10u;
+pos3'(vair,-90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+rt x4l=hround(w-1.5u); lft x7r=hround 1/3w;
+x4l-x4r=x7l-x7r=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,0); rt x9r=hround(2/3w+.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{down}
+ ..z5e---z6e..z7e{down} & super_arc.e(7,8)...{up}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgocyrac.mf b/Master/texmf-dist/fonts/source/lh/base/lgocyrac.mf
new file mode 100644
index 00000000000..9965a9cf47c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgocyrac.mf
@@ -0,0 +1,779 @@
+%
+% lgocyrac.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Old Slav Accents and Signs
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of accents & signs
+%
+% thousands
+% titlo
+% paerok
+% kamora
+% dasia
+% psili
+% zvat
+% pneuac
+% pneugr
+% accte
+% palatal (round titlo)
+% tlo_c
+% tlo_d
+% tlo_o
+% tlo_g
+% tlo_r
+%
+% tma
+% legion
+% leodr
+% vran
+% koloda
+% tmatem
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Cyrillic sign thousands"; % ss uses SlavTeX form
+cyrchar(thousands,if serifs:8u# else:7u# fi,x_height#,desc_depth#);
+adjust_fit(0,0);
+if serifs: pickup tiny.nib; %pickup crisp.nib;
+ numeric bulb_diam,mid_thickness,stem[];
+ stem1=fudged.hair if hefty:-4stem_corr fi; bulb_diam=.7[vair,flare];
+ mid_thickness=vround if serifs:1/4 else: 1/3 fi[vair,stem];
+ x0=w-u; y0=vround .5bar_height; pos0(vair,90);
+ lft x2r=u; bot y2=-.5d if serifs:+.25bulb_diam fi; pos2(vair,180);
+ pos3(bulb_diam,180); cyrbulb(0,2,3);
+ numeric theta; theta=-135;
+ pos4(vair,theta); pos4'(vair,theta); pos5(vair,theta); pos5'(vair,theta);
+ path thous_p; thous_p=z0{left}...z2{down};
+ z1'=((.3[x2r,x0],-d)--(.3[x2r,x0],h)) intersectionpoint thous_p;
+ z2'=((.75[x2r,x0],-d)--(.75[x2r,x0],h)) intersectionpoint thous_p;
+ z4 =z1'+1.5u*dir(theta-90); z4'=z1'-1.5u*dir(theta-90);
+ z5 =z2'+1.5u*dir(theta-90); z5'=z2'-1.5u*dir(theta-90);
+ filldraw stroke z4e--z4'e; filldraw stroke z5e--z5'e;
+else: pickup fine.nib;
+ numeric middle_weight,theta,stem[];
+ middle_weight=max(fine.breadth,.6[thin_join,vair]);
+ stem1=1/3[max(fine.breadth,.6[thin_join,vair]),stem];
+ theta=angle(1/2(w-fine-max(u,.5u+.5stem1)-stem1),d); z0=(w/2,0);
+ z1=z0+5u*dir(theta); z2=z0-5u*dir(theta); if y2<-d: y2:=-d; y1:=2y0-y2; fi
+ pos1(stem1,theta-90); pos2(stem1,theta-90);
+ filldraw stroke z1e--z2e;
+ z3=z0+min(2u,.5(x0-x2))*dir(theta)+2u*dir(theta-90);
+ z4=z0+min(2u,.5(x0-x2))*dir(theta)-2u*dir(theta-90);
+ z5=z0-min(2u,.5(x0-x2))*dir(theta)+2u*dir(theta-90);
+ z6=z0-min(2u,.5(x0-x2))*dir(theta)-2u*dir(theta-90);
+ pos3(middle_weight,theta); pos4(middle_weight,theta);
+ pos5(middle_weight,theta); pos6(middle_weight,theta);
+ filldraw stroke z3e--z4e; filldraw stroke z5e--z6e; fi
+penlabels(0,1,1',2,2',3,4,4',5,5',6); endchar;
+
+lhchar "Cyrillic accent titlo";
+cyrchar(titlo,8u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0); x1=.5w;
+% low_titlo (1);
+_zero:=1;
+_one:=2; _two:=3; _three:=4; _four:=5; _five:=6; _six:=7;
+%
+pickup fine.nib; numeric stem[];
+stem0=if serifs: .8[hair,stem] else: fudged.hair-4stem_corr fi;
+pos[_one](stem0,0); pos[_two](stem0,0);
+pos[_three](stem0,0); pos[_four](stem0,0);
+numeric middle_weight;
+middle_weight=if serifs: vair else: max(fine.breadth,.6[thin_join,vair]) fi;
+pos[_five](middle_weight,90); pos[_six](middle_weight,90);
+lft x[_one]l=lft x[_two]l=x[_zero]-hround(2.75u+.5stem0);
+rt x[_four]r=rt x[_three]r=x[_zero]+hround(2.75u+.5stem0);
+x[_five]=x[_one]r; x[_six]=x[_three]l;
+top y[_five]r=top y[_one]; bot y[_six]l=bot y[_four];
+top y[_three]=h+o;
+bot y[_two]=if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5crisp
+ else: vround 2/3[x_height+acc_height,x_height] fi;
+y[_one]=5/6[y[_two],y[_three]]; y[_four]=1/6[y[_two],y[_three]];
+filldraw stroke z[_five]e--z[_six]e; % bar
+filldraw stroke z[_one]e--z[_two]e; filldraw stroke z[_three]e--z[_four]e; % stems
+%%%
+endchar;
+
+lhchar "Cyrillic accent paerok - vertical tilde";
+cyrchar(paerok,5u#,asc_height#,0);%Apostrophe height
+italcorr asc_height#*slant+.5pdot_diam#-2u#;%Apostrophe
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup if serifs: crisp.nib;
+ if not monospace: if vair#>.8curve#: pickup rule.nib; autorounded; fi fi
+else: fine.nib; fi
+numeric stem[];
+stem1=max(currentbreadth+eps,if serifs: .7 rule_thickness else:1/3[thin_join,vair] fi);
+stem2=max(currentbreadth+eps,if serifs:1.4 rule_thickness else:vair fi);
+theta:=30;
+x1=hround(.5w-1.25u if monospace: /expansion_factor fi)-eps;
+x3=hround(.5w+1.25u if monospace: /expansion_factor fi)+eps;
+bot y1r=good.y(asc_height-comma_depth-pdot_diam)-eps;
+top y3l=h+oo+eps; z2=1/2[z1,z3];
+pos1(stem1,theta-90); pos3(stem1,theta-90); pos2(stem2,theta);
+filldraw stroke z1e{dir theta}..{dir(theta+90)}z2e..{dir theta}z3e;
+penlabels(1,2,3); endchar;
+
+lhchar "Cyrillic accent kamora";
+cyrchar(kamora,9u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+%!!! lowercase_breve flipped
+x_center:=.5w; y_move:=0; _one:=1; _two:=2; _three:=3;
+%
+numeric stem[];
+stem1=if serifs:vround (1/3[vair,stem]) else: .6[thin_join,vair] fi;
+stem2=stem1;
+pickup if serifs: crisp else: fine fi nib;
+pos[_one](stem1,180); pos[_three](stem1,0);
+top y[_two]r=h+oo+eps; x[_two]=x_center; %!!!v
+lft x[_one]r=hround(x[_two]-if serifs: 2 else: 1.5 fi u%narrower frown
+ if monospace: /expansion_factor fi -0.5stem1);
+rt x[_three]r=hround(x[_two]+if serifs: 2 else: 1.5 fi u%narrower frown
+ if monospace: /expansion_factor fi +0.5stem1);
+bot y[_one]=bot y[_three]= %!!!
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5crisp
+ else: vround 2/3[x_height+acc_height,x_height] fi;
+if y[_two]r<(y[_one]+.5if serifs: crisp else: fine fi+eps): %!!!
+ y[_two]r:=y[_one]+.5if serifs: crisp else: fine fi+eps; fi %!!!
+pos[_two](stem2,90); %!!! moved here after if
+filldraw stroke z[_one]e{((x[_one]r-x[_three]r),3acc_height)}...
+ z[_two]e{right}...{((x[_one]r-x[_three]r),-3acc_height)}z[_three]e; % stroke
+%
+penlabels(1,2,3); endchar;
+
+lhchar "Cyrillic accent dasia pneumata";
+cyrchar(dasia,9u#,min(asc_height#,2x_height#),0); %
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup if serifs: crisp else: fine fi nib;
+numeric bulb_diam,stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs:vround (1/4[vair,stem]) else: vair fi;
+if serifs:
+ bulb_diam=max(currentbreadth+eps,min(flare,3u-vair-1-eps));
+ lft x0r=hround (.5w-1.25u if monospace: /expansion_factor fi -0.5stem1);
+ bot y0=if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5crisp
+ else: vround 2/3[x_height+acc_height,x_height] fi;
+ pos0(stem1,180); x1=.5w; top y1r=h+o; pos1(stem2,90);
+ y2=if hefty: y0 if monospace:+.5bulb_diam-.5currentbreadth fi
+ else: min(bot y0+7/8bulb_diam,top y1r-currentbreadth-eps) fi;
+ rt x2r=hround (.5w+2u if monospace: /expansion_factor fi);
+ pos2(stem1,0); pos3(bulb_diam,0); cyrbulb(1,2,3);
+ if y1r<(y2+.5currentbreadth+eps): y1r:=y2+.5currentbreadth+eps; fi
+ filldraw stroke z0e{(3(x0-x2),acc_height)}...{right}z1e;
+else:
+% zvat!!!;
+ x_center:=.5w-.5u; _one:=1; _two:=2; _three:=3;
+%
+theta:=45;
+z[_one]=(x_center-1.15u,.55[y[_three],h]); z[_two]=(x_center+1.15u,4/5[y[_three],h]);
+bot z[_three]r=(x_center+.65u,
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)
+ -.5 if serifs: crisp else: fine fi
+ else: vround 2/3[x_height+acc_height,x_height] fi);
+pos[_one](stem1,theta+90); pos[_two](stem2,theta);
+pos[_three](stem1,theta-90);
+filldraw stroke z[_one]e{dir(theta+45)}
+ ..{dir(theta-90)}z[_two]e..{dir(theta+180)}z[_three]e; % stroke
+fi
+endchar;
+
+lhchar "Cyrillic accent psili pneumata";
+cyrchar(psili,9u#,min(asc_height#,2x_height#),0); %
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup if serifs: crisp else: fine fi nib;
+numeric bulb_diam,stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=vround if serifs:(1/4[vair,stem]) else: vair fi;
+if serifs:
+ bulb_diam=max(currentbreadth+eps,min(flare,3u-vair-1-eps));
+ rt x0r=hround (.5w+1.25u if monospace: /expansion_factor fi +0.5stem1);
+ bot y0=if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5crisp
+ else: vround 2/3[x_height+acc_height,x_height] fi;
+ pos0(stem1,0); x1=.5w; top y1r=h+o; pos1(stem2,90);
+ y2=if hefty: y0 if monospace:+.5bulb_diam-.5currentbreadth fi
+ else: min(bot y0+7/8bulb_diam,top y1r-currentbreadth-eps) fi;
+ lft x2r=hround (.5w- 2u if monospace: /expansion_factor fi);
+ pos2(stem1,180); pos3(bulb_diam,180); cyrbulb(1,2,3);
+ if y1r<(y2+.5currentbreadth+eps): y1r:=y2+.5currentbreadth+eps; fi
+ filldraw stroke z0e{(3(x0-x2),acc_height)}...{left}z1e;
+else:
+% zvat!!!;
+ x_center:=.5w-.5u; _one:=1; _two:=2; _three:=3;
+%
+ theta:=135;
+ z[_one]=(x_center+1.15u,.55[y[_three],h]); z[_two]=(x_center-1.15u,4/5[y[_three],h]);
+ bot z[_three]r=(x_center-.65u,
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)
+ -.5 if serifs: crisp else: fine fi
+ else: vround 2/3[x_height+acc_height,x_height] fi);
+ pos[_one](stem1,theta-90); pos[_two](stem2,theta);
+ pos[_three](stem1,theta+90);
+ filldraw stroke z[_one]e{dir(theta-45)}
+ ..{dir(theta+90)}z[_two]e..{dir(theta-180)}z[_three]e; % stroke
+fi
+endchar;
+
+lhchar "Cyrillic zvatel'stvo accent";
+cyrchar(zvat,9u#,min(asc_height#,2x_height#),0);%height enlarged
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup if serifs: crisp else: fine fi nib;
+% zvat;
+x_center:=.5w-.5u; _one:=1; _two:=2; _three:=3;
+%
+numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs:vround (1/3[vair,stem]) else: vair fi;
+theta:=45;
+z[_one]=(x_center-u,.55[y[_three],h]); z[_two]=(x_center+u,4/5[y[_three],h]);
+bot z[_three]r=(x_center+.5u,
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)
+ -.5 if serifs: crisp else: fine fi
+ else: vround 2/3[x_height+acc_height,x_height] fi);
+pos[_one](stem1,theta+90); pos[_two](stem2,theta);
+pos[_three](stem1,theta-90);
+filldraw stroke z[_one]e{dir(theta+45)}
+ ..{dir(theta-90)}z[_two]e..{dir(theta+180)}z[_three]e; % stroke
+%
+penlabels(1,2,3); endchar;
+
+lhchar "Cyrillic accent pneuac - pneumata acute";
+cyrchar(pneuac,9u#,min(asc_height#,2x_height#),0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+old_u:=u; u:=.75u;
+% classic acute
+if serifs: pickup crisp.nib; x1+.5fudged.stem=hround(w-2u)+x_move;
+ x2=2/3[x1,w+x_move-x1+(w+x_move-9u)];
+ y1+.5fudged.stem=h+eps;
+ y2=max(2/3[x_height+acc_height,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(fudged.stem,theta); pos2(min(fudged.stem,hair),theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(fudged.stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u)+x_move;
+ lft x2l=hround(.5[w+x_move-9u,w+x_move]-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[x_height+acc_height,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+u:=old_u;
+% zvat;
+x_center:=.5w-1.5u; _one:=3; _two:=4; _three:=5;
+%
+numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs:vround (1/3[vair,stem]) else: vair fi;
+theta:=45;
+z[_one]=(x_center-u,.55[y[_three],h]); z[_two]=(x_center+u,4/5[y[_three],h]);
+bot z[_three]r=(x_center+.5u,
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)
+ -.5 if serifs: crisp else: fine fi
+ else: vround 2/3[x_height+acc_height,x_height] fi);
+pos[_one](stem1,theta+90); pos[_two](stem2,theta);
+pos[_three](stem1,theta-90);
+filldraw stroke z[_one]e{dir(theta+45)}
+ ..{dir(theta-90)}z[_two]e..{dir(theta+180)}z[_three]e; % stroke
+%
+penlabels(1,2,3,4,5); endchar;
+
+lhchar "Cyrillic accent pneugr - pneumata grave";
+cyrchar(pneugr,9u#,min(asc_height#,2x_height#),0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+old_u:=u; u:=.75u;
+x_move:=if monospace:2u else: 2.5u fi;
+% classic gravis
+if serifs: pickup crisp.nib;
+ x1-.5fudged.stem=hround 2u+(w-9u)+x_move;
+ x2=2/3[x1,w+x_move-x1+(w+x_move-9u)];
+ y1+.5fudged.stem=h+eps;
+ y2=max(2/3[x_height+acc_height,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(fudged.stem,theta); pos2(min(fudged.stem,hair),theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(fudged.stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u+(w-9u)+x_move;
+ rt x2r=hround(.5[w+x_move-9u,w+x_move]+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[x_height+acc_height,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+u:=old_u;
+% zvat;
+x_center:=.5w-1.5u; _one:=3; _two:=4; _three:=5;
+%
+numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs:vround (1/3[vair,stem]) else: vair fi;
+theta:=45;
+z[_one]=(x_center-u,.55[y[_three],h]); z[_two]=(x_center+u,4/5[y[_three],h]);
+bot z[_three]r=(x_center+.5u,
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)
+ -.5 if serifs: crisp else: fine fi
+ else: vround 2/3[x_height+acc_height,x_height] fi);
+pos[_one](stem1,theta+90); pos[_two](stem2,theta);
+pos[_three](stem1,theta-90);
+filldraw stroke z[_one]e{dir(theta+45)}
+ ..{dir(theta-90)}z[_two]e..{dir(theta+180)}z[_three]e; % stroke
+%
+penlabels(1,2,3,4,5); endchar;
+
+lhchar "Cyrillic accent accte - accent te";
+cyrchar(accte,8u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0); h:=x_height;
+% low_te(0);
+_zero:=0; x0=.5w;
+_one:=1; _two:=2; _three:=3; _four:=4; _five:=5;
+%
+if serifs: pickup crisp.nib;
+ else: pickup pencircle scaled min(.5fine,.15vair); fi
+numeric stem[]; stem1=if hefty: fudged.hair-2stem_corr else: .7[vair,stem] fi;
+stem2=if serifs: vair else: max(currentbreadth+eps,.6[thin_join,vair]) fi;
+stem3=min(stem1,if serifs: hair else: max(currentbreadth+eps,7/8[thin_join,vair]) fi);
+pos[_one](stem1,0); pos[_two](stem1,0);
+lft x[_one]l=lft x[_two]l=hround(x[_zero]-.5stem1);
+numeric mid_thickness;
+mid_thickness=vround if serifs:1/4 else: 1/3 fi[vair,stem];
+bot y[_two]=bot y[_four]=bot y[_five]=
+ vround max(h+o+max(tiny,.5mid_thickness),1/3[h,h+acc_height]+o-.5mid_thickness);
+top y[_one]=top y[_three]r=max(h+acc_height,bot y[_two]+1.5vair);
+filldraw stroke z[_one]e--z[_two]e; % stem
+pos[_three](stem2,90); pos[_four](stem3,0); pos[_five](stem3,180);
+x[_three]=x[_one];
+rt x[_four]r=hround(x[_zero]+2.5u if monospace:/expansion_factor fi+.5vair);
+x[_four]-x[_three]=x[_three]-x[_five];
+z[_four]'=beak_darkness[(x[_four]l,y[_three]l),
+ .5[(x[_one]r,y[_three]l),z[_four]l] ];
+z[_five]'=beak_darkness[(x[_five]l,y[_three]l),
+ .5[(x[_one]l,y[_three]l),z[_five]l] ];
+filldraw z[_four]r--z[_four]l{up}...z[_four]'
+ ...{left}(x[_one]r,y[_three]l)--(x[_one]r,y[_three]l){left}...z[_five]'
+ ...{down}z[_five]l--z[_five]r---
+ (x[_five]r,y[_three]r)---(x[_four]r,y[_three]r)---cycle;
+%%%
+endchar;
+
+lhchar "Cyrillic accent palatalization (round titlo)";
+cyrchar(palatal,10u#,x_height#+acc_height#,0); %
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+% low_palatal;
+x_center:=.5w-.25u; x_move:=0; y_move:=-o;
+_one:=1; _two:=2; _three:=3; _four:=4;
+%
+pickup fine.nib; numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs: .8[hair,stem] else: 1/3[vair,hair] fi;
+pos[_one](stem2,180); pos[_three](1/5[stem2,stem1],0);
+pos[_two](stem1,90); pos[_four](stem1,90);
+top y[_two]r=h+o; x[_two]=x_center;
+rt x[_one]l =hround(x[_two]-3.5u if monospace: /expansion_factor fi +.5stem2);
+lft x[_three]l=hround(x[_two]+3.5u if monospace: /expansion_factor fi -.5stem2);
+bot y[_one]=bot y[_three]=
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5fine
+ else: vround 2/3[x_height+acc_height,x_height] fi;
+bot y[_four]l=x_height+o; x[_four]=w+eps;
+forsuffixes e=l,r:
+ path p; p=z[_two]e{right}...{(x[_three]-x[_one]),-7acc_height}z[_three]e;
+ z[_three]'e=point .8 of p; endfor
+filldraw stroke z[_one]e{(x[_three]-x[_one]),7acc_height}...
+ z[_two]e{right}...
+ {direction .8 of p}z[_three]'e...{right}z[_four]e; % stroke
+%%%
+penlabels(1,2,3,4); endchar;
+
+lhchar "Cyrillic accent titlo with letter c";
+cyrchar(tlo_c,10u#,min(asc_height#,2x_height#),0); %
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+full_h:=h; h:=x_height+acc_height;
+% low_palatal;
+x_center:=.5w-.25u; x_move:=0; y_move:=full_h-h;
+_one:=1; _two:=2; _three:=3; _four:=4;
+%
+pickup fine.nib; numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs: .8[hair,stem] else: 1/3[vair,hair] fi;
+pos[_one](stem2,180); pos[_three](1/5[stem2,stem1],0);
+pos[_two](stem1,90); pos[_four](stem1,90);
+top y[_two]r=h+o+y_move; x[_two]=x_center;
+rt x[_one]l =hround(x[_two]-3.5u if monospace: /expansion_factor fi +.5stem2);
+lft x[_three]l=hround(x[_two]+3.5u if monospace: /expansion_factor fi -.5stem2);
+bot y[_one]=bot y[_three]=
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5fine
+ else: vround 2/3[x_height+acc_height,x_height] fi+y_move;
+bot y[_four]l=x_height+o+y_move; x[_four]=w+eps;
+forsuffixes e=l,r:
+ path p; p=z[_two]e{right}...{(x[_three]-x[_one]),-7acc_height}z[_three]e;
+ z[_three]'e=point .8 of p; endfor
+filldraw stroke z[_one]e{(x[_three]-x[_one]),7acc_height}...
+ z[_two]e{right}...
+ {direction .8 of p}z[_three]'e...{right}z[_four]e; % stroke
+%%%
+%tlo_c
+begingroup
+stem2:=1/3[hair,fudged.stem];
+if not serifs: stem2:=max(fine.breadth,1/2[thin_join,vair]);
+stem1:=max(fine.breadth,thin_join); fi
+save curve; curve:=stem2;
+if not serifs: save vair,flare; vair:=stem1; flare:=1/3[stem1,stem2]; fi
+numeric hh,ll,rr; hh=min(acc_height,bot y[_two]l-x_height)-o-oo-eps;
+y_move:=x_height+oo; old_u:=u; u:=u*(acc_height/x_height);
+ll=hround(.5w-5.25u); rr=hround(.5w+3.25u);
+clearxy;
+%
+if serifs:
+ pickup fine.nib; pos1(hair,0); pos2(vair,90);
+ pos3(curve,180); pos4(vair',270); pos5(hair,360);
+ rt x1r=rt x5r=hround(rr-u); lft x3r=hround(ll+u); x2=x4=.55[x3,x1];
+ top y2r=hh+oo+y_move; bot y4r=o+y_move; y3=.5[y2,y4];
+ bot y1=min(vround max(.65hh,.75hh-.5vair),bot y2l-eps)+y_move;
+ y5=max(good.y (.95(hh-y1)+y_move),y4l+eps-y_move)+y_move;
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+oo+y_move;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pickup fine.nib; pos1(flare,80); pos2(vair,90);
+ pos3(curve,180); pos4(vair,270); pos5(flare,275);
+ rt x1r=hround(rr-1.1u); x2=x4=.55[x3,x1];
+ lft x3r=ll+hround max(u,2u-.5cap_curve); rt x5r=hround(rr-.9u);
+ top y1r=vround .9hh+oo+y_move; top y2r=hh+oo+y_move; y3=.5hh+y_move;
+ bot y4r=o+y_move+eps; bot y5r=vround .15[oo,hh]+y_move; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+endgroup;
+penlabels(1,2,3,4); endchar;
+
+
+lhchar "Cyrillic accent titlo with letter d";
+cyrchar(tlo_d,10u#,min(asc_height#,2x_height#),0); %
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+full_h:=h; h:=x_height+acc_height;
+% low_palatal;
+x_center:=.5w-.25u; x_move:=0; y_move:=full_h-h;%!!!
+_one:=1; _two:=2; _three:=3; _four:=4;
+%
+pickup fine.nib; numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs: .8[hair,stem] else: 1/3[vair,hair] fi;
+pos[_one](stem2,180); pos[_three](1/5[stem2,stem1],0);
+pos[_two](stem1,90); pos[_four](stem1,90);
+top y[_two]r=h+o+y_move; x[_two]=x_center;
+rt x[_one]l =hround(x[_two]-3.5u if monospace: /expansion_factor fi +.5stem2);
+lft x[_three]l=hround(x[_two]+3.5u if monospace: /expansion_factor fi -.5stem2);
+bot y[_one]=bot y[_three]=
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5fine
+ else: vround 2/3[x_height+acc_height,x_height] fi+y_move;%!!!
+bot y[_four]l=min(bot y[_one]-.5y_move,x_height+o+.5y_move)-eps; x[_four]=w+eps;
+forsuffixes e=l,r:
+ path p; p=z[_two]e{right}...{(x[_three]-x[_one]),-7acc_height}z[_three]e;
+ z[_three]'e=point .8 of p; endfor
+filldraw stroke z[_one]e{(x[_three]-x[_one]),7acc_height}...
+ z[_two]e{right}...
+ {direction .8 of p}z[_three]'e...{right}z[_four]e; % stroke
+%%%
+%tlo_d
+stem2:=1/3[hair,fudged.stem];
+if not serifs: stem2:=max(fine.breadth,1/2[thin_join,vair]);
+stem1:=max(fine.breadth,thin_join); fi
+pos5(stem2,90); pos6(stem2,90); pos5'(stem1,90); pos7(stem1,-15); pos8(stem1,0);
+bot y5'l=bot y[_four]l; top y5r=top y6r=top y5'r;
+z8l=z[_three]'l; x8-x[_four]=x7-x8; bot y7=bot y[_four]l;
+rt x6=rt x[_four]+eps; lft x5=lft x7l-eps; x5'=.5[x5,x6];
+filldraw stroke z7e..{dir75}z8e;
+filldraw z6r--z5r--z5l{up}...z5'l...{down}z6l--cycle;
+penlabels(1,2,3,4); endchar;
+
+lhchar "Cyrillic accent titlo with letter o";
+cyrchar(tlo_o,10u#,min(asc_height#,2x_height#),0); %
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+full_h:=h; h:=x_height+acc_height;
+% low_palatal;
+x_center:=.5w-.25u; x_move:=0; y_move:=full_h-h;
+_one:=1; _two:=2; _three:=3; _four:=4;
+%
+pickup fine.nib; numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs: .8[hair,stem] else: 1/3[vair,hair] fi;
+pos[_one](stem2,180); pos[_three](1/5[stem2,stem1],0);
+pos[_two](stem1,90); pos[_four](stem1,90);
+top y[_two]r=h+o+y_move; x[_two]=x_center;
+rt x[_one]l =hround(x[_two]-3.5u if monospace: /expansion_factor fi +.5stem2);
+lft x[_three]l=hround(x[_two]+3.5u if monospace: /expansion_factor fi -.5stem2);
+bot y[_one]=bot y[_three]=
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5fine
+ else: vround 2/3[x_height+acc_height,x_height] fi+y_move;
+bot y[_four]l=x_height+o+y_move; x[_four]=w+eps;
+forsuffixes e=l,r:
+ path p; p=z[_two]e{right}...{(x[_three]-x[_one]),-7acc_height}z[_three]e;
+ z[_three]'e=point .8 of p; endfor
+filldraw stroke z[_one]e{(x[_three]-x[_one]),7acc_height}...
+ z[_two]e{right}...
+ {direction .8 of p}z[_three]'e...{right}z[_four]e; % stroke
+%%%
+%tlo_o
+begingroup
+stem2:=1/3[hair,fudged.stem];
+if not serifs: stem2:=max(fine.breadth,1/2[thin_join,vair]);
+stem1:=max(fine.breadth,thin_join); fi
+save curve; curve:=stem2;
+if not serifs: save vair; vair:=stem1; fi
+numeric hh,ll,rr; hh=min(acc_height,bot y[_two]l-x_height)-o-oo-eps;
+y_move:=x_height+oo; old_u:=u; u:=u*(acc_height/x_height);
+ll=hround(.5w-4.5u); rr=hround(.5w+3u);
+clearxy;
+%
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(ll+.5u,ll+1.25u-.5curve);
+x4r=rr-(ll-x2r); x1=x3=.5[x2r,x4r]; y1r=hh+oo+y_move; y3r=o+y_move+eps;
+y2=y4=.5[o,hh]-.5vair_corr+y_move; y2l:=y4l:=.52[o,hh]+y_move;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+endgroup;
+penlabels(1,2,3,4); endchar;
+
+lhchar "Cyrillic accent titlo with letter g";
+cyrchar(tlo_g,10u#,min(asc_height#,2x_height#),0); %
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+full_h:=h; h:=x_height+acc_height;
+% low_palatal;
+x_center:=.5w-.25u; x_move:=0; y_move:=full_h-h;
+_one:=1; _two:=2; _three:=3; _four:=4;
+%
+pickup fine.nib; numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs: .8[hair,stem] else: 1/3[vair,hair] fi;
+pos[_one](stem2,180); pos[_three](1/5[stem2,stem1],0);
+pos[_two](stem1,90); pos[_four](stem1,90);
+top y[_two]r=h+o+y_move; x[_two]=x_center;
+rt x[_one]l =hround(x[_two]-3.5u if monospace: /expansion_factor fi +.5stem2);
+lft x[_three]l=hround(x[_two]+3.5u if monospace: /expansion_factor fi -.5stem2);
+bot y[_one]=bot y[_three]=
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5fine
+ else: vround 2/3[x_height+acc_height,x_height] fi+y_move;
+bot y[_four]l=x_height+o+y_move; x[_four]=w+eps;
+forsuffixes e=l,r:
+ path p; p=z[_two]e{right}...{(x[_three]-x[_one]),-7acc_height}z[_three]e;
+ z[_three]'e=point .8 of p; endfor
+filldraw stroke z[_one]e{(x[_three]-x[_one]),7acc_height}...
+ z[_two]e{right}...
+ {direction .8 of p}z[_three]'e...{right}z[_four]e; % stroke
+%%%
+%tlo_g
+begingroup
+stem2:=1/3[hair,fudged.stem];
+if not serifs: stem2:=max(fine.breadth,1/2[thin_join,vair]);
+stem1:=max(fine.breadth,thin_join); fi
+if not serifs: save vair,hair; vair:=stem1; hair:=stem1; fi
+numeric hh,ll,rr; hh=min(acc_height,bot y[_two]l-x_height)-o-oo-eps;
+y_move:=x_height+oo; old_u:=u; u:=u*(acc_height/x_height);
+ll=hround(.5w-4u); rr=hround(.5w+3u);
+clearxy;
+%
+pickup if serifs: tiny else: fine fi nib;
+pos1(stem2,0); pos2(stem2,0);
+lft x1l=lft x2l=hround (ll+2.5u-.5stem2); top y1=hh+y_move; bot y2=o+y_move+eps;
+filldraw stroke z1e--z2e; % stem
+pickup if serifs: crisp else: fine fi nib;
+pos3(vair,90); pos4(vair,0);
+top y3r=hh+y_move; x3=x1; rt x4r=hround(rr-.45u);
+y4=good.y(y3l-if serifs: .15 fi beak)-eps;
+arm(3,4,e,beak_darkness,.2beak_jut); % upper arm and beak
+if serifs: save slab; slab:=max(crisp.breadth,Vround(vair-2vair_corr)); % lower.slab
+ nodish_serif(1,2,a,1/3,.2jut,b,1/3,.1jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,.2jut,d,1/3,.2jut); fi % lower serif
+endgroup;
+penlabels(1,2,3,4); endchar;
+
+lhchar "Cyrillic accent titlo with letter r";
+cyrchar(tlo_r,10u#,min(asc_height#,2x_height#),0); %
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+full_h:=h; h:=x_height+acc_height;
+% low_palatal;
+x_center:=.5w-.25u; x_move:=0; y_move:=full_h-h;
+_one:=1; _two:=2; _three:=3; _four:=4;
+%
+pickup fine.nib; numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs: .8[hair,stem] else: 1/3[vair,hair] fi;
+pos[_one](stem2,180); pos[_three](1/5[stem2,stem1],0);
+pos[_two](stem1,90); pos[_four](stem1,90);
+top y[_two]r=h+o+y_move; x[_two]=x_center;
+rt x[_one]l =hround(x[_two]-3.5u if monospace: /expansion_factor fi +.5stem2);
+lft x[_three]l=hround(x[_two]+3.5u if monospace: /expansion_factor fi -.5stem2);
+bot y[_one]=bot y[_three]=
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5fine
+ else: vround 2/3[x_height+acc_height,x_height] fi+y_move;
+bot y[_four]l=x_height+o+y_move; x[_four]=w+eps;
+forsuffixes e=l,r:
+ path p; p=z[_two]e{right}...{(x[_three]-x[_one]),-7acc_height}z[_three]e;
+ z[_three]'e=point .8 of p; endfor
+filldraw stroke z[_one]e{(x[_three]-x[_one]),7acc_height}...
+ z[_two]e{right}...
+ {direction .8 of p}z[_three]'e...{right}z[_four]e; % stroke
+%%%
+%tlo_r
+begingroup
+stem2:=1/3[hair,fudged.stem];
+if not serifs: stem2:=max(fine.breadth,1/2[thin_join,vair]);
+stem1:=max(fine.breadth,thin_join); fi
+save curve; curve:=stem2;
+if not serifs: save vair,hair; vair:=stem1; hair:=stem1; fi
+numeric hh,ll,rr,dd; hh=min(acc_height,bot y[_two]l-x_height)-o-oo-eps;
+dd:=d*(acc_height/x_height);
+y_move:=x_height+oo; old_u:=u; u:=u*(acc_height/x_height);
+ll=hround(.5w-4.75u); rr=hround(.5w+3.25u);
+clearxy;
+%
+pickup if serifs: tiny else: fine fi nib;
+pos2(stem2,0); pos3'(stem2,0);
+lft x2l=hround(ll+2.5u-.5stem2); bot y2=o+y_move+eps;
+y3'=min(hh+1.5oo+y_move-vair-eps,1/3[.55hh,hh]+y_move); rt x3'r=rt x2r; z3'=z3;
+filldraw stroke z2e--z3'e; %stem
+pickup fine.nib;
+pos3(stem2,180); pos4(vair,90);
+pos5(curve,0); pos6(vair,-90); pos7(if hefty: thin_join else: hair fi,-180);
+numeric edge; edge=rt x2r;
+x4l=rr-(.5(rr-ll)-.25serif_fit)+.5u; top y4r=hh+1.5oo+y_move;
+rt x5r=hround min(rr-1.35u+.5curve,rr-.6u); y5=.25[hh,oo]+y_move;
+x6l=x4l-.2u; bot y6r=max(.4[oo,hh],.45[oo,hh]-oo)+y_move;
+rt x7l=tiny.rt x2r; y7=min(y3,y6+y4-y3);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+if serifs: save slab; slab:=max(crisp.breadth,Vround(vair-2vair_corr)); % lower.slab
+ dish_serif(2,3',b,1/3,.2jut,c,1/3,.2jut); fi % lower serif
+endgroup;
+penlabels(1,2,3,4); endchar;
+%
+% Number symbols
+%
+lhchar"Cyrillic Tma number symbol";
+cyrchar(tma,20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar"Cyrillic Legion number symbol";
+cyrchar(legion,20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; %draw_circle; % circle
+pickup pencircle scaled .5rule_thickness;
+def temp (suffix $) = numeric t; t:=rule_thickness+eps;
+ filldraw (x$-t,y$)...(x$,y$-t)...(x$+t,y$)...(x$,y$+t)...cycle; % roundish dot
+enddef;
+temp(1); temp(2); temp(3); temp(4); temp(5); temp(6); temp(7); temp(8);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar"Cyrillic Leodr number symbol";
+cyrchar(leodr,20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; %draw_circle; % circle
+numeric theta; pickup pencircle scaled .5rule_thickness;
+def temp (suffix $,$$) = numeric t; t:=rule_thickness;
+ filldraw (x$-t,y$)...(x$,y$-t)...(x$+t,y$)...(x$,y$+t)...cycle; % roundish dot
+ z$'=z$+t*(unitvector((x$,y$)-(x$$,y$$))rotated 90);
+ z$''=z$+2.5t*unitvector((x$,y$)-(x$$,y$$));
+ theta:=angle((x$,y$)-(x$$,y$$))-60;
+ draw stroke z$'{(x$,y$)-(x$$,y$$)}...z$''; % comma tail
+enddef;
+temp(1,6); temp(2,7); temp(3,8); temp(4,1);
+temp(5,2); temp(6,3); temp(7,4); temp(8,5);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar"Cyrillic Vran number symbol";
+cyrchar(vran,20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; %draw_circle; % circle
+pickup pencircle scaled .5rule_thickness;
+def temp (suffix $) = numeric t; t:=rule_thickness+1+eps;
+ draw (x$,y$-t)...(x$,y$+t); draw (x$-t,y$)...(x$+t,y$); % plus sign
+enddef;
+temp(1); temp(2); temp(3); temp(4); temp(5); temp(6); temp(7); temp(8);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Cyrillic koloda number symbol";
+cyrchar(koloda,18u#,body_height#,max(paren_depth#,desc_depth#));%
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi);
+%!!! lowercase_breve flipped
+x_center:=.5w; y_move:=0; _one:=1; _two:=2; _three:=3;
+%
+pickup pencircle scaled .5rule_thickness;
+pos[_one](vair,180); pos[_three](vair,0);
+top y[_two]r=h+oo; %!!!
+x[_two]=x_center;
+lft x[_one]r=hround (1.5u); rt x[_three]r=hround(w-1.5u);
+numeric mid_thickness; mid_thickness=max(currentbreadth+eps,vround 1/3[vair,stem]);%!!!
+bot y[_one]=bot y[_three]= %!!!
+ vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness)-.5acc_height;
+if y[_two]r<(y[_one]+.5crisp+eps): %!!!
+ y[_two]r:=y[_one]+.5crisp+eps; fi %!!!
+pos[_two](mid_thickness,90); %!!! moved here after if
+filldraw stroke (z[_one]e+(u,0))--z[_one]e{up}...z[_two]e{right}
+ ...{down}z[_three]e--(z[_three]e+(-u,0)); % stroke
+%flip
+forsuffixes $ = [_one]l,[_one],[_one]r,[_two]l,[_two],[_two]r,
+ [_three]l,[_three],[_three]r :
+ y$:=h-d-y$; endfor;
+filldraw stroke (z[_three]e+(-u,0))--z[_three]e{down}...z[_two]e{left}
+ ...{up}z[_one]e--(z[_one]e+(u,0)); % stroke
+penlabels(1,2,3); endchar;
+
+lhchar"Cyrillic Tma Tem number symbol";
+cyrchar(tmatem,20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; %draw_circle; % circle
+pickup pencircle scaled .5rule_thickness;
+def temp (suffix $) = numeric t; t:=rule_thickness+1+eps;
+ draw (x$-t,y$)...(x$+t,y$); % minus sign
+enddef;
+temp(1); temp(2); temp(3); temp(4); temp(5); temp(6); temp(7); %temp(8);
+draw (x8-t,y8)...(x8+t,y8); draw (x8,y8-t)...(x8,y8+t);% plus sign
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgpunct.mf b/Master/texmf-dist/fonts/source/lh/base/lgpunct.mf
new file mode 100644
index 00000000000..c87fde4ebde
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgpunct.mf
@@ -0,0 +1,288 @@
+%
+% lgpunct.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% rearranged Computer Modern punct.mf for wncoding
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of signs
+%
+% "21 !
+% "25 %
+% "27 '
+% "28 (
+% "29 )
+% "2a *
+% "2c ,
+% "2e .
+% "2f /
+% "3a :
+% "3b ;
+% "5b [
+% "5d ]
+% "60 `
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+lhchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+lhchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+lhchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+lhchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+lhchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+lhchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+lhchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+lhchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+lhchar "Semicolon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+lhchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+%
+% excerpts from CM's files romsub.mf and sym.mf
+%
+if wncoding and monospace:
+minus=ASCII"-";
+backslash=ASCII"\";
+vertical=ASCII"|";
+straight_quotes=oct"042";
+fi
+
+iff known minus:
+lhchar "Minus sign";
+beginarithchar(minus); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+iff known backslash:
+lhchar "Reverse slash (backslash)";
+beginchar(backslash,9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; top y1=h+eps;
+rt x2=hround(w-u)+eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+labels(1,2); endchar;
+
+iff known vertical:
+lhchar "Vertical line";
+beginchar(vertical,5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+iff known straight_quotes:
+lhchar "Straight double quotes";
+beginchar(straight_quotes,9u#,asc_height#,0);
+numeric top_width#,spread#; top_width#=if serifs: flare# else: stem# fi;
+spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+italcorr asc_height#*slant+.5top_width#+.5spread#-4u#;
+adjust_fit(0,0);
+x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ pos3(flare,0); pos4(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % left stem and bulb
+ filldraw circ_stroke z3e--z4e; % right stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; fi % right stem
+penlabels(1,2,3,4); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgrdigit.mf b/Master/texmf-dist/fonts/source/lh/base/lgrdigit.mf
new file mode 100644
index 00000000000..23b5a724aa5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgrdigit.mf
@@ -0,0 +1,344 @@
+%
+% lgrdigit.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% exrdigit.mf (ec fonts) with another beginning :-)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% numerals 0 .. 9
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+% All digits have the same height, width, depth, and italic correction.
+
+font_digit_width 9u#;
+
+lhchar "The numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+lhchar "The numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+if one_serif: dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); fi % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+lhchar "The numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "The numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75h+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "The numeral 4";
+beginchar("4",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab,h-light_stem]+1
+ else:.35(h-light_stem) fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=0;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "The numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "The numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "The numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(eps,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3h; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "The numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ if lower_side>1.2upper_side: upper_side:=lower_side; fi
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "The numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgrlig.mf b/Master/texmf-dist/fonts/source/lh/base/lgrlig.mf
new file mode 100644
index 00000000000..b1b5b50f363
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgrlig.mf
@@ -0,0 +1,77 @@
+%
+% lgrlig.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% roman dotless i,j
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Special letters
+%
+% i_dotl "19 i dotless
+% j_dotl "1a j dotless
+% ff-ligs (lgrligff.mf)
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if (roman_ec=true) and (old_cyr=false):
+
+input lgrligff;
+
+fi % roman_ec
+
+lhchar "Lowercase Cyrillic letter dotless i";
+cyrchar(i_dotl,5u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ save slab; slab:=vair';%serif.lower.slab
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2); endchar;
+
+lhchar "Lowercase Cyrillic letter dotless j";
+cyrchar(j_dotl,5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+penlabels(1,2,5,6,7); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgrligff.mf b/Master/texmf-dist/fonts/source/lh/base/lgrligff.mf
new file mode 100644
index 00000000000..0b3256a4054
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgrligff.mf
@@ -0,0 +1,184 @@
+%
+% lgrlig.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% roman dotless i,j
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Special letters
+%
+% ff-ligs
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+numeric itc#; % modified italic correction on `f' and `ff'
+itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi;
+
+lhchar "The ligature fi";
+beginchar(oct"034",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x12r;
+ y2+.5bulb_diam=.8[x_height,h+oo]; top y11=x_height+min(oo,serif_drop);
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(6/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u;
+ pickup tiny.nib; pos13(bulb_diam,0); pos14(bulb_diam,90);
+ x13=x11-.5; top y14r=min(2x_height,h+1); top y11=x_height;
+ if bot y14l-x_height<tiny: y14l:=min(y14r-eps,y11+2tiny); fi
+ x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+fi; % this is the ligature we're drawing
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup tiny.nib; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11; % bar will overlap upper right serif
+ sloped_serif.l(11,12,d,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+lhchar "The ligature ff";
+beginchar(oct"033",10.5u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+normal_adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-3u+.5stem');
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); pos12(bulb_diam,0);
+ rt x2r=hround(rt x11r-stem_corr); lft x12l=hround(w-.75u+.5);
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 6.25u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(w+.75u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,1.25jut); % right stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-1/3u);
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+lhchar "The ligature fl";
+beginchar(oct"035",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0; top y11=h;
+filldraw stroke z11e--z12e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ y2+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(11,12,d,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u; fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11;
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+lhchar "The ligature ffi";
+beginchar(oct"036",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r;
+ top y21=x_height+min(oo,serif_drop);
+ y2+.5bulb_diam=.8[x_height,h+oo]; y12=y2;
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(6/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u);
+ pickup tiny.nib; pos23(bulb_diam,0); pos24(bulb_diam,90);
+ x23=x21-.5; top y24r=min(2x_height,h+1); top y21=x_height;
+ if bot y24l-x_height<tiny: y24l:=min(y24r-eps,y21+2tiny); fi
+ x23=x24; y23=.5[y24l,y24r]; dot(23,24); fi % dot
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup tiny.nib; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x21; % bar will overlap upper right serif
+ sloped_serif.l(21,22,g,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+else: rt x4=hround(.5w+2.8u); fi
+pickup crisp.nib;
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22,23,24); endchar;
+
+lhchar "The ligature ffl";
+beginchar(oct"037",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0; top y21=h;
+filldraw stroke z21e--z22e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r-stem_corr;
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(21,22,g,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+ pickup crisp.nib; x4=x21;
+else: rt x4=hround(.5w+2.8u); fi
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgromp.mf b/Master/texmf-dist/fonts/source/lh/base/lgromp.mf
new file mode 100644
index 00000000000..c1475195d1f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgromp.mf
@@ -0,0 +1,97 @@
+%
+% lgromp.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% exromp.mf (ec fonts) with another beginning :-)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of signs
+%
+% Ampersand "26
+% Question mark "3f
+% * Spanish open question mark moved out
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+iff not wncoding:%
+lhchar "Ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o;
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(fudged.hair,0);
+ rt x0r+jut=hround(w-.9u); top y0=x_height;
+ pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)];
+ y1=max(y0-1.5bracket-.2x_height,2/3x_height);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u);
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(vair,theta); y5=.5h;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=w-3.5u; bot y10l=-o;
+pos9(fudged.stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height;
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[slab,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .07bar_height-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgrusi.mf b/Master/texmf-dist/fonts/source/lh/base/lgrusi.mf
new file mode 100644
index 00000000000..f08f332bfae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgrusi.mf
@@ -0,0 +1,838 @@
+%
+% lgrusi.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic Russian letters from a to ya and yo
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% (there are some letters with common witdh
+% they have comments as: v_width (the witdh of russian letter v)
+% and n_width (russian letter n) at the end of `cyrchar...' line)
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Russian letter a";
+cyrchar(a,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:0 else:-.35u#fi,0); % !cadj
+% ital_a;
+pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Russian letter b";
+cyrchar(b,9u#,asc_height#,0);
+italcorr asc_height#*slant+.5stem#-u#; %y->asc_height
+adjust_fit(if monospace: 0,0 else: -.35u#,-.35u# fi);
+numeric stem[]; stem1=.5[vair,curve];
+stem2= max(fine.breadth,if serifs: hair else: vair fi);
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x1=x3=.5w; y1r=x_height+oo; y3r=-oo;
+x2r=hround(1.5u-.5curve); x4r=w-x2r;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % o bowl
+pickup fine.nib;
+pos7(stem2,180); rt x7l=min(w-u,rt 4r-.1u); top y7=h;
+pos2'(stem2,180); lft x2'r=x2r; y2'=y2;
+if hefty:
+ pos5(stem1,90); pos6(stem1,90);
+ x5=max(x1l,lft x1); x6=x4+if monospace:-.5 else:+.5 fi fine;
+ x6'=x6-.5stem1;
+ top y6r=h; y5=y6 if 1/18(h-x_height)>=2:-1/18(h-x_height) fi; y6'=y6l;
+ filldraw z6r---z6...z6'---z5l....{down}z2'l--z2'r{up}....z5r---cycle; % upper tail
+else:
+ pos5(max(stem2,.7[fudged.hair,fudged.stem]),135);
+ pos6(max(stem2,.9[fudged.hair,fudged.stem]),120);
+ x5=max(.55[x2r,x1],x2l+.1u);
+ forsuffixes $=l,r:
+ z5'$=((x5,0)..(x5,h)) intersectionpoint (z2${up}...{right}z1$); endfor
+ y5=max(y5'r+.7(y5'r-y5'l),h-.45(asc_height-x_height));
+ z6r=whatever[z5r,z7r]; x6=x7-1.2max(u,stem2);
+ filldraw stroke z7e..z6e{z5-z6}..z5e....{down}z2'e; fi
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Russian letter v (looks like B)";
+cyrchar(v,9u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); %e
+adjust_fit(if monospace:0 else:-.35u# fi,0); pickup fine.nib;
+%numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,-90); pos0'(vair,90); pos6(vair,90);
+pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(curve,0);
+x0=x6=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x0'=x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5l=x1l; y5=.5[y4,y0];
+y0=y0'=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,0')...z6{left}; % main bowl
+penlabels(0,0',1,2,3,4,5,6); endchar;
+
+lhchar "Italic Russian letter g";
+cyrchar(g,6.25u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); %e
+adjust_fit(if monospace:u#,u# else: 0.5u#,0.5u# fi);
+% ital_g;
+pickup fine.nib; x0l=hround eps; x0'=x0; x5r=good.x(w-eps); x6=x5;
+x2=.5w+2u; x3=.5w-2u; x1=x4=x7=.5[x3l,x2r]; y7=.5[y2,y3];
+h-y0=y5; top y5l=vround .5bar_height; y6=bar_height; y0'=h-bar_height;
+h-y2=y3=1/4x_height; h-y1=y4; bot y4r=-oo;
+pos0(hair,320); pos1(vair,270); pos2(stem,180);
+pos3(stem,180); pos4(vair,270); pos5(hair,320); pos7(stem,135);
+path p.l,p.r; p.l=z0'..z0..z1{right}; p.r=z4{right}..z5..z6;
+filldraw stroke z0e{direction 1 of p.l}
+ ...z1e{right}...{down}z2e...z7e...z3e{down}...z4e{right}
+ ...{direction 1 of p.r}z5e; % main stroke
+%%%
+penlabels(0,1,2,3,4,5); endchar;
+
+lhchar "Italic Russian letter d";
+cyrchar(d,9u#,asc_height#,0);
+italcorr .7asc_height#*slant-.15u#; % O+.35u
+adjust_fit(if monospace:0,0 else:-.35u#,-.35u#fi);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/4[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos1(hair,140); pos2(vair,90);
+pos3(side_thickness,0); pos4(bot_thickness,-90);
+pos5(side_thickness,-180); pos6(vair,-270);
+lft x5r=lft x1r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
+x4=x2+u=x6+.1u=.5w; y1=h-.35bar_height;
+top y2r=h+oo; y3=.5[y2,y4]; bot y4r=-oo;
+y5=.5[y4,y6]; top y6=x_height+oo;
+forsuffixes e=l,r: path p.e; p.e=z1e...{right}z2e; endfor
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,0); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke subpath (.5,1) of p.e
+ & pulled_super_arc.e(2,3)(superpull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull)
+ & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Russian letter e";
+cyrchar(e,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); %e
+adjust_fit(if monospace:0 else:-.35u#fi,0);
+% ital_e;
+pickup fine.nib;
+%numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Italic Russian letter zh";
+cyrchar(zh,20u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %c
+adjust_fit(-.5u#,0 if monospace:-.5u# fi); %zh_adj
+% ital_zh;
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal - AS
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,90);
+pos4(curve,180); pos5(vair,270); pos6(hair,320);
+if monospace: x3=x5=.5[lft x4r,rt x2r]-eps; rt x2r=good.x (w+eps);
+else: x3=x5=good.x(w-3.5u); rt x2r=hround max(rt x3,w-u)+eps; fi
+lft x4r=hround max(.5w+.5stem+.5,w-6.5u-.5curve+eps); x6r=good.x(w+eps); x0=x6;
+y2=.5[bar_height,h]; top y3r=h+oo; bulb(3,2,1); % bulb
+bot y5r=-oo; y4=.5[y3,y5]; top y6l=vround .5bar_height; y0=bar_height;
+path p; p=z5{right}..z6..z0;
+filldraw stroke pulled_arc.e(3,4)
+ & pulled_arc.e(4,5)...{direction 1 of p}z6e; % right arc
+pos12(flare,180); pos11(hair,180); pos10(vair,270);
+pos9(curve,360); pos8(vair,450); pos7(hair,500);
+if monospace: lft x11r=good.x (-eps); x10=x8=.5[lft x11r,rt x9r]+eps;
+else: x10=x8=3.5u; lft x11r=hround min(lft x10,u)-eps; fi
+rt x9r=hround min(.5w-.5stem-.5,6.5u+.5curve-eps);
+x7r=good.x (if not monospace:rt x11r-.67u fi-eps); x0'=x7;
+y11=h-.5[bar_height,h]; bot y10r=-oo; bulb(10,11,12); % bulb
+top y8r=h+oo; y9=.5[y10,y8]; bot y7l=vround (h-.65bar_height); y0'=bar_height;
+path p_; p_=z8{left}..z7..z0;
+filldraw stroke pulled_arc.e(10,9)
+ & pulled_arc.e(9,8)...{direction 1 of p_}z7e; % left arc
+y13=bar_height; x13=x4; y14=y13; x14=w-x4; x15=x16=.5w;
+y15+.5stem=h+oo; bot y16=0;
+pos13(vair,90); pos14(vair,90); pos15(fudged.stem,0); pos16(fudged.stem,0);
+filldraw stroke z13e--z14e; filldraw circ_stroke z15e--z16e; % stem & cross
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+lhchar "Italic Russian letter z";
+cyrchar(z,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %e
+adjust_fit(0,0);
+% ital_z;
+pickup fine.nib; pos0(flare,180); pos1(hair,180); pos2(vair,-90);
+pos7(curve,0); pos8(curve,0); pos4(vair,90); pos5(hair,160);
+pos3(vair,90); pos3'(vair,-90); pos9(vair,90); pos9'(vair,-90);
+x2=x4=.5(w-u); lft x1r=min(lft x2,hround(.25u))-eps;
+lft x5r=good.x x1r+.15u+eps; x6=x5;
+y1=.5bar_height; bot y2r=-oo; bulb(2,1,0); % bulb
+rt x7r=w-hround(1.5u-.5curve); rt x8r=w-hround(2u-.5curve);
+top y4r=h+oo; y7=.5[y2,y3]; y5r=y8=.5[y3,y4]; y6=bar_height;
+x3=x2; lft x9=hround min(lft x2-1-eps,rt x0l+1+eps);
+y3=y9=bar_height; z9'=z9; z3'=z3;
+path p; p=z4{left}..(x5,h-.52bar_height)..z6;
+filldraw stroke z9e{right}...pulled_arc.e(3,7) & pulled_arc.e(7,2); % lower arc
+filldraw stroke z9'e{right}...pulled_arc.e(3',8) & pulled_arc.e(8,4)
+ ...{direction 1 of p}z5e; % upper arc
+%%%
+penlabels(0,1,2,3,4,5,7,8,9); endchar;
+
+
+lhchar "Italic Russian letter i (looks like u)";
+cyrchar(i,10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(0,0);
+% ital_i;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Russian letter i_shrt - short i (looks like breve u)";
+cyrchar(i_shrt,10u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_i;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+% the accent
+h:=x_height+acc_height; cbreve(.5w,0, 10,11,12,13,14,15,16);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16); endchar;
+
+lhchar "Italic Russian letter k";
+cyrchar(k,9u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0);
+% ital_k;
+pickup fine.nib; x2-.5stem=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace: pos2(stem,0); top y2=h;
+else: x0=0; hook_in(0,1,2); fi % opening hook
+pos2'(stem,0); pos11(stem,0); z2'=z2; x11=x2'; y11-.5stem=-oo;
+filldraw circ_stroke z11e--z2'e; % left stem
+pos3(vair,90); x3=x11; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+%%%
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Russian letter l";
+cyrchar(l,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %n
+adjust_fit(.5u#,0);
+% ital_l;
+pickup fine.nib;
+pos1(vair,-90); pos2(stem,180); pos3(hair,0); pos10(stem,0);
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+top y1l=h+oo; x1=.5[x3,x2];
+x3=3u; y3=.35h;
+y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r;
+bot y4r=-oo; x4=max(.4[lft x6r,rt x3r],lft x6r+.5flare-eps);
+y10=.8h; lft x10l=lft x7l=hround(w-2.5u-.5stem); z10=z2;
+bulb(4,5,6); % bulb
+filldraw stroke pulled_arc.e(4,3)
+ & super_arc.e(3,1) & super_arc.e(1,2); % left stem
+x9=w; hook_out(7,8,9); % hook
+filldraw stroke z10e--z7e; % right stem
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Russian letter m";
+cyrchar(m,13u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(if monospace:-.5u#,-1.5u# else:.5u#,0 fi); %wbulb_adj&rstem_adj
+%ital_m;
+pickup fine.nib;
+pos1(hair,0); pos6(stem,0);
+pos2(hair,0); pos3(vair,-90); pos4(hair,-180); pos5(flare,-180);
+x1=x2=3u; y2=.35h; top y1=h; bot y3r=-oo; lft x5r=-.25u; z4r=z5r;
+x3=min(lft x5r+flare,lft x2l-eps); y5-.5flare=.1h;
+bulb(3,4,5); % bulb
+filldraw stroke pulled_arc.e(3,2) & z2e--z1e; % left stem
+rt x7r=hround(w-2.5u+.5stem); x6=x7; top y6=h;
+% right_stem;
+_one:=7; _two:=8; _three:=9;
+if monospace: pos[_three](vair,90); pos[_one](stem,0);
+ x[_three]=good.x .5[x[_one],w]; bot y[_three]l=0; y[_one]=1/3h;
+ filldraw stroke z[_one]e{down}...{right}z[_three]e; % terminal
+else: x[_three]=w; hook_out([_one],[_two],[_three]); fi % opening hook
+%
+filldraw stroke z6e--z7e; % right stem
+% diagonals;m
+numeric stem[]; % thicknesses of the strokes
+stem1=hround(fudged.stem-stem_corr);
+stem2=min(stem1,hround(fudged.hair-stem_corr));
+penpos10(stem1,0); penpos11(stem1,0); penpos12(stem2,0); penpos13(stem2,0);
+x10l=lft x1l; x11l=x12l; x13l=lft x7l; x11-x10=x13-x12;
+y10=y13=top y6; y11=y12;
+if hefty:
+ y11=if monospace: vround 1/3h-.5stem1 else: oo fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut; lower_notch=y11+notch_cut;
+ x1'=rt x1r; z1'=whatever[z10l,z11l];
+ x6'=lft x6l; z6'=whatever[z12r,z13r];
+ z0=whatever[z10r,z11r]=whatever[z12l,z13l];
+ fill z10l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z11-z10}diag_in(10l,11l,1,11r)..diag_out(12l,1,12r,13r){z13-z12}
+ if y6'<upper_notch: ...{up}(x6'-1,upper_notch){right} fi
+ ..z13r--diag_out(13r,1,13l,12l){z12-z13}
+ if y0<=lower_notch: ..{z12-z13}z0{z10-z11}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z10-z11}diag_in(11r,10r,1,10l)--cycle; % diagonals
+else:
+ y11=0; z0=whatever[z10r,z11r]=whatever[z12l,z13l];
+ fill z10l..{z11-z10}diag_in(10l,11l,1,11r)..diag_out(12l,1,12r,13r){z13-z12}
+ ..z13r--diag_out(13r,1,13l,12l){z12-z13}..{z12-z13}z0{z10-z11}
+ ..{z10-z11}diag_in(11r,10r,1,10l)--cycle; fi % diagonals
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+lhchar "Italic Russian letter n (looks like H)";
+cyrchar(n,10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(0,0);
+% ital_n;
+pickup fine.nib; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace:
+ pos2(stem,0); top y2=h;
+else:
+ x0=0; hook_in(0,1,2); fi % opening hook
+y3-.5stem=-oo;
+filldraw circ_stroke z3e--z2e; % left stem
+x10=x3l; y10=y11=bar_height; pos10(vair,90); pos11(vair,90);
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); y6+.5stem=h;
+x7=x6; x9=w; hook_out(7,8,9); % closing hook
+z7'=z7; pos7'(stem,0); x11=x6l;
+filldraw circ_stroke z6e--z7'e; % right stem
+filldraw stroke z10e--z11e; % bar
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Italic Russian letter o";
+cyrchar(o,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %o
+adjust_fit(if monospace:0,0 else:-.35u#,-.35u#fi); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+penlabels(1,2,3,4); endchar;
+
+lhchar "Italic Russian letter p (looks like n)";
+cyrchar(p,10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %n
+adjust_fit(0,0); pickup fine.nib;
+x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+%ihalfstem;
+if monospace:
+ pos1(stem,0); top y1=h;
+else:
+ x0=0; hook_in(0,a,1); fi % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Russian letter r (looks like p)";
+cyrchar(r,if monospace:9u# else:9.25u# fi,x_height#,desc_depth#); % !rusw
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %p
+adjust_fit(0,if monospace:0 else:-.35u#fi);
+% ital_r;
+pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d;
+filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+%%%
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Russian letter s (looks like c)";
+cyrchar(s,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %c
+adjust_fit(if monospace:0 else:-.35u#fi,0);
+% ital_s;
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Italic Russian letter t (looks like m)";
+cyrchar(t,15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %m
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi);
+% ital_t;
+pickup fine.nib; numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem; pos2(stem,0); x1=x2;
+if monospace:
+ pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else:
+ x0=0; lft x2l=hround(2.5u-.5stem); hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace:
+ pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h; pos8(stem,0);
+ filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else:
+ x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Russian letter u (looks like y)";
+cyrchar(u,if monospace:8.5u# else:9u# fi,x_height#,desc_depth#); % !rusw
+italcorr x_height#*slant+.5stem#-u#; %y
+adjust_fit(0,0);
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Russian letter f";
+cyrchar(f,max(2u#,stem#)+max(4u#,2flare#),asc_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %p
+adjust_fit(3.15u#,3.15u#); pickup fine.nib;
+pickup fine.nib;
+numeric theta; theta=angle(-u,d+h);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+crisp.top y15r=x_height+oo; crisp.bot y17r=-oo;
+x14=.5w; y14=y16=y19=.5[y15r,y17r];
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; z4=whatever[z14,z14+dir theta];
+y5=.5[-d,y4]; z5=whatever[z14,z14+dir theta];
+y12=h; z12=whatever[z14,z14+dir theta];
+y13=-d; z13=whatever[z14,z14+dir theta];
+x3=.8[x2+x4-x12,x12]; x6=.8[x7+x5-x13,x13]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z13-z12}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z13-z12}...z6e...{left}z7e; % lower arc
+pickup crisp.nib;
+pos14(hair,0); pos15(vair,90); pos16(curve,180); pos17(vair,270);
+pos14'(hair,180); z14'=z14;
+pos18(vair,90); pos19(curve,0); pos20(vair,-90);
+x15=x17=.5[x16,x14];
+lft x16r=l+letter_fit+hround(1.5u-.5curve) if monospace:-.75u else:-.35u fi;
+y18=y15; y20=y17; x18=w-x15; x19=w-x16; x20=w-x17;
+filldraw stroke super_arc.e(14,15) & pulled_arc.e(15,16)
+ & pulled_arc.e(16,17) & super_arc.e(17,14); % left bowl
+filldraw stroke super_arc.e(14',18) & pulled_arc.e(18,19)
+ & pulled_arc.e(19,20) & super_arc.e(20,14'); % right bowl
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
+endchar;
+
+lhchar "Italic Russian letter h - kha (looks like x)";
+cyrchar(h,if monospace:6.5u# else:7.5u# fi+max(1.5u#,flare#), % !rusw
+ x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#); %x
+adjust_fit(if monospace: 0,0 else: 0.25u#,0.25u# fi);
+% ital_h;
+pickup fine.nib; pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90); pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19); endchar;
+
+lhchar "Italic Russian letter c - tse";
+cyrchar(c,10u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %a
+adjust_fit(0,.1u#); %iserif_adj
+% ital_c;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+x9=w; y9=y7=.4bar_height; x8=.5[x7,x9]; bot y8l=-oo;
+pos8(vair,90); pos9(vair,180); pos7(stem,0);
+filldraw circ_stroke z6e--z7e; % right stem
+filldraw circ_stroke z7e{-.5u,-x_height}...z8e{right}...{up}z9e; % closing hook
+% italic descender
+i_serif(9,x);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Russian letter ch";
+cyrchar(ch,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(0,0);
+% ital_ch;
+pickup fine.nib; interim superness:=more_super;
+x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+bot y4r=.75bar_height; y5=.75h; y3=min(y2-eps,.7[y4,y5]); y6+.5stem=h;
+filldraw stroke z2'e...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Russian letter sh";
+cyrchar(sh,15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(if monospace:-2u#,-1.5u# else: 0,0 fi); %rshstem_adj&rstem_adj
+% ital_sh;
+pickup fine.nib; interim superness:=more_super;
+numeric shaved_stem; shaved_stem=mfudged.stem; save stem; stem=shaved_stem;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(min(stem,hair),0); x4=.5[x3,x5]; x5=x7';
+pos5'(min(stem,hair),0); pos6'(vair,-90); pos7'(stem,-180); x5'=x7; y5'=y5;
+pos8'(stem,-180); x8'=x7'; y8'+.5stem=h;
+pos6(stem,0); rt x7r=hround(w-2.5u+.5stem);
+x6=x7; y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+x7'+.5stem=hround(.5w+.5stem);
+% right_stem;
+_one:=7; _two:=8; _three:=9;
+if monospace:
+ pos[_three](vair,90); pos[_one](stem,0);
+ x[_three]=good.x .5[x[_one],w]; bot y[_three]l=0; y[_one]=1/3h;
+ filldraw stroke z[_one]e{down}...{right}z[_three]e; % terminal
+else:
+ x[_three]=w; hook_out([_one],[_two],[_three]); fi % opening hook
+x6'=.6[x5',x7']; bot y6'r=bot y4r; y7'=.35x_height;
+filldraw stroke super_arc.e(7',6')...{up}z5'e; % middle stroke
+filldraw circ_stroke z8'e--z7'e; % middle stem
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Italic Russian letter shch";
+cyrchar(shch,15u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(if monospace:-2u# else:0 fi,.1u#); %rshstem_adj&iserif_adj
+% ital_sh;
+pickup fine.nib; interim superness:=more_super;
+numeric shaved_stem; shaved_stem=mfudged.stem; save stem; stem=shaved_stem;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left skewstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(min(stem,hair),0); x4=.5[x3,x5];
+x7'+.5stem=hround(.5w+.5stem); x5=x7';
+pos5'(min(stem,hair),0); pos6'(vair,-90); pos7'(stem,-180); x5'=x7; y5'=y5;
+pos8'(stem,-180); x8'=x7'; y8'+.5stem=h;
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x6=x7; y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+x9=w; y9=y7=.4bar_height; x8=.5[x7,x9]; bot y8l=-oo;
+x6'=.6[x5',x7']; bot y6'r=-oo; y7'=.35x_height;
+filldraw stroke super_arc.e(7',6')...{up}z5'e; % middle stroke
+filldraw circ_stroke z8'e--z7'e; % middle stem
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+pos8(vair,90); pos9(vair,180); pos7(stem,0);
+filldraw circ_stroke z6e--z7e; % right stem
+filldraw circ_stroke z7e{-.5u,-x_height}...z8e{right}...{up}z9e; % closing hook
+% italic descender
+i_serif(9,x);
+penlabels(0,1,2,3,4,5,6,7,8,9,5',6',7',8'); endchar;
+
+lhchar "Italic Russian letter hrdsn - hard sign";
+cyrchar(hrdsn,if monospace: 6u# else:7.5u#fi,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %"Weierstrass p"
+adjust_fit(u#,0);
+% ital_hrdsn;
+pickup tiny.nib;
+pos1(hair,0); pos1'(hair,-45); pos2(hair,0);
+rt x1r=hround(w-2u-eps); top y1=h;
+lft x2l=hround(u-.5stem); y2=.6bar_height;
+z1'=(.35[x1,x2],.65[y1,1.2bar_height+oo]);
+filldraw stroke z2e{up}....{2(x1-x2),(y1-1.2bar_height)}z1'e..{up}z1e; % stem
+% hrdsn_beak;
+pos6(hair,180); pos7(.6[hair,curve],60); pos8(hair,90);
+z8r=z1r; x6=-u; y6=3/4x_height; x7=.5[x6,x8];
+top y7r=top y8r;
+filldraw stroke z6e{up}...{3,-1}z7e...{2,1}z8e; % fillip
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90);
+lft x2'r=tiny.lft x2l;
+y2'=y2; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & pulled_arc.e(5,2'); % bowl
+%%%
+penlabels(1,1',2,2',3,4,5,6,7,8); endchar;
+
+lhchar "Italic Russian letter ery";
+cyrchar(ery,8u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(if monospace:-2u#,2.5u# else:0,4u# fi);
+% ital_ery;
+pickup tiny.nib; pos2(stem,0); y2=.6bar_height;
+% left skewstem;
+if monospace:
+ x1=x2; pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else:
+ x1=x2+.25u; x0'=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0',a,1)(skewed); fi % opening hook
+pickup fine.nib; pos1'(stem,-180); pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z1'=z1; z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke z1'e{-u,-x_height}...pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+% I
+w:=w+4u;
+pos6(stem,0); y6+.5stem=h; rt x7r=hround(w-2.5u+.5stem); x7=x6;
+% right_stem;
+_one:=7; _two:=8; _three:=9;
+if monospace:
+ pos[_three](vair,90); pos[_one](stem,0);
+ x[_three]=good.x .5[x[_one],w]; bot y[_three]l=0; y[_one]=1/3h;
+ filldraw stroke z[_one]e{down}...{right}z[_three]e; % terminal
+else:
+ x[_three]=w; hook_out([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z6e--z7e; % stem
+penlabels(0,1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Russian letter sftsn - soft sign";
+cyrchar(sftsn,if monospace: 9u# else: 9u# fi,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %"Weierstrass p"
+adjust_fit(if monospace:.5u#,.5u# else:0,0 fi); pickup tiny.nib;
+pos2(stem,0); y2=.6bar_height;
+% left skewstem;
+if monospace:
+ x1=x2; pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else:
+ x1=x2+.25u; x0'=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0',a,1)(skewed); fi % opening hook
+pickup fine.nib; pos1'(stem,-180); pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z1'=z1; z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke z1'e{-u,-x_height}...pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+penlabels(0,1,a,1',2,3,4,5,6); endchar;
+
+lhchar "Italic Russian letter erev - reverse e";
+cyrchar(erev,8u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %o
+adjust_fit(0,if monospace:0 else:-.35u# fi); %o
+% ital_erev;
+pickup fine.nib;
+pos0(flare,180); pos1(hair,-180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x2+.5u=x4=.5(w-u); lft x1r=min(lft x2,hround(.25u))-eps;
+rt x3r=w-hround(1.5u-.5curve); lft x5r=good.x (lft x1r-eps); x6=x5;
+y1-.5flare=.1h; bot y2r=-oo; bulb(2,1,0); % bulb
+top y4r=h+oo; y3=.5[y2,y4]; top y5r=vround .5[bar_height,h];
+y6=bar_height; path p; p=z4{left}....z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x7=x3; y7=bar_height; y8=y7; lft x8=hround min(lft x2-1-eps,rt x0l+eps);
+pos7(vair,90); pos8(vair,90);
+filldraw stroke z7e--z8e;
+%%%
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+lhchar "Italic Russian letter yu (looks like io)";
+cyrchar(yu,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %o
+adjust_fit(if monospace:3u# else:4.5u# fi,
+ if monospace:-.75u# else:-.35u# fi);
+% ital_yu;
+pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+% i half
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9; _six:=10;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x2; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Russian letter ya (looks like backward R)";
+cyrchar(ya,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(.5u#,0);
+% ital_ya;
+pickup fine.nib;
+rt x1r=rt x2r=hround(w-2.5u+.5stem); top y1=h; x4=w;
+hook_out(2,3,4); % closing hook
+pos1(stem,0); filldraw stroke z1e--z2e; % stem
+pos5(vair,90); pos6(vair,90); pos7(curve,180); pos8(vair,270); pos9(vair,270);
+x5=x9=x1; top y5r=top y6r=h; x6=x8=.5[x5,x7];
+lft x7l=hround(1.5u if not monospace:+.5curve fi);
+y7=.5[y5,y9]; y8=y9=bar_height;
+filldraw stroke z5e...pulled_arc.e(6,7) & pulled_arc.e(7,8)...z9e; % bowl
+pos10(stem,0); pos11(vair,-90);
+x10=.3[x11,x9]; y10=1/2y9; x11-flare=-.25u; bot y11r=-oo;
+filldraw stroke z11e{right}...z10e{up}...{right}z9e; % lower diagonal
+pos12(hair,180); pos13(flare,180);
+lft x13r=-.25u; y13-.5flare=.1h; bulb(11,12,13); % bulb
+%%%
+penlabels(1,2,3,4,5,6,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Italic Russian letter yo (looks like e umlaut)";
+cyrchar(yo,8u#,lc_trema_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); %e
+adjust_fit(if monospace:0 else:-.35u# fi,0); full_h:=h; h:=x_height;
+% ital_e;
+pickup fine.nib; %numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.35curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+%the accent
+h:=x_height+acc_height; lowercase_umlaut(0,0,71,72,73,74); %2
+penlabels(0,1,2,3,4,5,6); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgrusl.mf b/Master/texmf-dist/fonts/source/lh/base/lgrusl.mf
new file mode 100644
index 00000000000..e03c302404f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgrusl.mf
@@ -0,0 +1,1414 @@
+%
+% lgrusl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Russian letters from a to ya and yo
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% (there are some letters with common witdh
+% they have comments as: v_width (the witdh of russian letter v)
+% and n_width (russian letter n) at the end of `cyrchar...' line)
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if kapitel: input lgcrusl; fi
+
+iff not kapitel:%
+lhchar "Lowercase Russian letter a";
+cyrchar(a,9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+% lower_a;
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs:
+ pos1(flare,180); pos2(hair,180); pos3(vair,90);
+ lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else:
+ pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90); x3=.5w-.2u;
+ top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l; (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs:
+ numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#:
+ pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else:
+ pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else:
+ numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+iff not kapitel:%
+lhchar "Lowercase Russian letter b";
+cyrchar(b,9u#,asc_height#,0); % v_witdh
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#; %d
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+numeric stem[]; stem1=.5[vair,curve];
+stem2= max(fine.breadth,if serifs: hair else: vair fi);
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+x2r=hround max(.5u,1.25u-.5curve); x4r=w-x2r;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+if serifs:
+ penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % o bowl
+else:
+ penpos2''(.7[fudged.hair,vair]-3stem_corr,180); z2''l=z2l;
+ penstroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,1) & pulled_arc.e(1,2'')..cycle; fi % o bowl
+pickup fine.nib;
+pos7(stem2,180); rt x7l=min(w-u,rt 4r-.1u); top y7=h;
+pos2'(stem2,180); lft x2'r=x2r; y2'=y2;
+if hefty:
+ pos5(stem1,90); pos6(stem1,90);
+ x5=max(x1l,lft x1); x6=x4+if monospace:-.5 else:+.5 fi fine;
+ x6'=x6-.5stem1;
+ top y6r=h; y5=y6-1/15(h-x_height-.5tiny); y6'=y6l;
+ filldraw z6r---z6...z6'---z5l....{down}z2'l--z2'r{up}....z5r---cycle; % upper tail
+else:
+ pos5(max(stem2,.7[fudged.hair,fudged.stem]),135);
+ pos6(max(stem2,.9[fudged.hair,fudged.stem]),120);
+ x5=max(.55[x2r,x1],x2l+.1u);
+ forsuffixes $=l,r:
+ z5'$=((x5,0)..(x5,h)) intersectionpoint (z2${up}...{right}z1$); endfor
+ y5=max(y5'r+.7(y5'r-y5'l),h-.45(asc_height-x_height));
+ z6r=whatever[z5r,z7r]; x6=x7-1.2max(u,stem2);
+ filldraw stroke z7e..z6e{z5-z6}..z5e....{down}z2'e; fi
+penlabels(1,2,2',3,4,5,6,7); endchar;
+
+lhchar "Lowercase Russian letter v (looks like B)";
+cyrchar(v,9u#,x_height#,0); % v_witdh
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#,if monospace:.5u# else:0 fi);
+numeric right_curve; pickup tiny.nib;
+pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(Vround(vair-vair_corr),90); penpos4(Vround(vair-vair_corr),90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(vair,-90); penpos12(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]+eps;
+set_bar_axis; y6l=y7l=y8r=y9r=y2.bh; y6r=y7r=y8l=y9l=y1.bh; y6=y7=y8=y9=y0.bh;
+z12r=bot z2; y11=y12; y10=.5[y11,y9];
+x6l=x6r=x4-if not serifs:2 fi u;
+x9l=x9r=x11-if serifs:.5 fi u=x4 if not serifs:-u fi;
+x7l=x7r=x8l=x8r=x1; x9l:=x4 if serifs:+.25u else:-.25u fi;
+x10r=hround(w-.6u); x5r=min(x10r-1-eps,hround(w-u));
+if serifs:
+ right_curve=curve-stem_corr; x4=.5[x1,w-1.5u];
+else:
+ right_curve=curve-3stem_corr; x4=.5[x1,w-1u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l+.5u; x11l:=x11l-.5u; x9r:=max(x6r,x9r-u);
+fill stroke
+ {{if not serifs:interim superness:=hein_super; fi z3e..super_arc.e(4,5)}}
+ & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) &
+ {{if not serifs:interim superness:=hein_super; fi super_arc.e(10,11)..z12e}}; % lower lobe
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Lowercase Russian letter g (looks like Gamma)";
+cyrchar(g,8u#-.5width_adj#,x_height#,0);
+italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u#
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ 0);
+% lower_g;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(Vround(vair-vair_corr),90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); fi % lower serif
+%%%%%
+penlabels(1,2,3,4); endchar;
+
+iff not concrete:%
+lhchar "Lowercase Russian letter d";
+cyrchar(d,10u# %if not serifs:+.5width_adj# fi % dl_width;n_width
+ ,x_height#,sbeak#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#
+ if not serifs:+\\.5(stem#-u#),.5(stem#-u#)+ else:,fi\\ serif_fit#); %dl_adj
+% lower_d;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,light_stem,outer_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+light_stem=max(tiny.breadth+eps,min(fudged.stem,fudged.hair if hefty:-4stem_corr fi));
+outer_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (r-rt x2r-.5u) fi;
+penpos3(light_hair,0); penpos0(light_hair,0); x0=x3-eps; y0=0; y3=h;
+x3=1/3[w-rt x1r-1/8(outer_jut if not serifs:-.5(stem-u) fi),rt x1r]
+ if not serifs: -.5(stem-u) fi +eps;
+x4l=w-rt x1r-1/3outer_jut-eps; y4l=vair;
+x2'=x2; y2'=if serifs: 1/2 else: 2/3 fi h;
+penpos4(light_hair,angle((y2',-x2')-(y4l,-x4l))); if y4r<0: y4r:=0; fi
+fill z4l{z2'-z4}...{up}diag_end(0l,3l,1,1,3r,0){down}
+ ...{z4-z2'}z4r--cycle; %left stem
+numeric inner_jut; inner_jut=min(.5(lft x1l-x3r)-eps,.5jut);
+save slab; % lower.slab
+if serifs:
+ prime_points_inside(3,0);
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(3',0,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,jut); % upper right serif
+ filldraw z.b0--z.b1--z.c1--z.c0--cycle; % upper inter_serif bar
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3l; top y3'r=top y1'r=h; rt x1'=x1;
+ filldraw stroke z3'e--z1'e; fi % upper bar
+% lower descenders
+slab:=vair; % lower.slab
+r_serif(2,1,e,1/3,inner_jut,f,1/3,beak_darkness,outer_jut,.6beak_jut); % lower right descender
+% lower de_serif
+y5=y.f1; y0'=y.f4; x5=good.x(w-x.f1); y6=y7=y.f3;
+x6=good.x(w-x.f2); x7=good.x(w-x.f3);
+pair beak_corner; ypart beak_corner=y0'; beak_corner=z7+whatever*(z5-z6);
+x8=good.x(w-x.f4); x0'=w-x.e1; y8=y0';
+filldraw z5--z6--z7{z5-z6}...beak_darkness[beak_corner,.5[z7,z8]]
+ ...{right}z8---z0'--(x0',y5)--cycle; % de_serif
+filldraw z.f1--z.f4--z0'--(x0',y5)--cycle; % lower inter_serif bar
+if serifs:
+ numeric bracket_height;
+ bracket_height=min(y2+bracket,y1);
+ if bracket_height>y4l:
+ path p.r,p.l; y5:=top y5;
+ p.r=(z4r{z2'-z4}...{up}z3r); p.l=(z4l{z2'-z4}...{up}z3l);
+ forsuffixes e=l,r:
+ z9e=((0,bracket_height)--(w,bracket_height)) intersectionpoint p.e;
+ endfor
+ vardef t (suffix @) =
+ angle direction directiontime z9@ of p.@ of p.@ enddef;
+ fill z9l{dir (t(l)+180)}...1/3[(x4l,y5),.5[z9l,z5]]{z5-z9l}
+ ...{left}z5--(x5,y0')--z0'--(x0',y5)
+ --(x8-1/6outer_jut-eps,y5){left}
+ ...{dir t(r)}z9r--cycle; % top part of de_serif
+ fi
+fi
+%%%%%
+penlabels(0',1',1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff not kapitel:%
+lhchar "Lowercase Russian letter e";
+cyrchar(e,7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+% lower_e;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs:
+ pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else:
+ pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+penlabels(0,1,2,3,4,5); endchar;
+
+iff not concrete:%
+iff not specific:%
+lhchar "Lowercase Russian letter zh (`roman')";
+cyrchar(zh,if serifs: 10u# else: 9.5u# fi % zhk_width: n_width;keng_width
+ ,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(w#-5u#+ %zhr_adj
+ if monospace: 0,0 else: serif_fit#,serif_fit# fi); %wlett_adj
+% lowerr_zh;
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+if odd((r-l)-stem0): change_width; fi % symmetric & all three equal
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi% lower stem serif
+% k_rbowl;zh%monospace:+.25u
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=hround(r-letter_fit-.7u-right_jut if monospace:+.25u fi)+eps; %!!!
+rt x6r=hround(r-letter_fit-.3u-right_jut if monospace:+.25u fi)+eps; %!!!
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+% mirror
+forsuffixes $ = 3'r,3,3'l,4r,4,4l,5l,5,5r,6'l,6,6'r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+fill z.m5l--diag_end(.m5l,.m6'l,.5,1,.m6'r,.m5r)--z.m5r--cycle; % lower diagonal
+%%
+if serifs:
+ penpos7(alpha1*(stem1-tiny),0); penpos8(whatever,-90);
+ penpos10(alpha2*(stem2-tiny),0);
+ z7=z.m3; z8=z.m4; z9l=z.m5r; z9=z.m5; z9r=z.m5l; z10=z.m6;
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(7,8,i,1/2,right_jut,j,2/3,up_inner_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(10,9,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Russian letter z";
+cyrchar(z,8u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.65u#,+.1u#); %p+.2u#
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi);
+% lower_z;
+set_bar_axis; y4l=y5r=y6r=y2.bh; y6l=y5l=y4r=y1.bh; y6=y0.bh;
+pickup fine.nib; numeric right_curve;
+if serifs: right_curve=curve-stem_corr; else: right_curve=curve-3stem_corr; fi
+penpos2(vair,90); penpos3(max(vair+stem_corr,right_curve-stem_corr),0);
+penpos7(max(vair'+stem_corr,right_curve),0); penpos8(vair',-90);
+y2r=vround(h+1.5oo); x2=x6l=x6r=x8=.5(w-u); x7r=hround(w-.6u);
+x3r=min(rt x7r-1,hround(w-.8u)); y3=.5[y4l,y2l]+eps; y8r=-oo;
+y7=.5[y6l,y8l]; x4l=x4r=1/3[x5l,x3l];
+if serifs:
+ pos1(hair,180); pos9(hair,-180);
+ lft x1r=lft x9r+.1u=hround.5u;
+ y1=min(y2.bh+flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ y9=max(good.y(.5bar_height-.9),y8l+vair');
+else:
+ pos1(4/7[vair,flare],115); pos9(.6[vair',flare],-115);
+ lft x1r=good.x .6u; lft x9r=good.x .5u;
+ top y1r=vround .82[bar_height,y2r];
+ y9r=good.y(y9r+1/3bar_height-y9); y9l:=good.y y9l; x9l:=good.x x9l;
+fi
+lft x5l=lft x5r=hround (2.5u-.5)-eps;
+x4r:=max(x5r,x4r-u); x6r:=max(x5r,x6r-u);
+fill stroke
+ {{interim superness:=if serifs: more_super else: hein_super fi;
+ super_arc.e(2,3)}} & super_arc.e(3,4)..(x5e,y4e); % upper bowl
+{{interim superness:=more_super;
+ fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)}}; % lower bowl
+fill
+ z5r{left}
+ if bot y5r>top y5l:..(lft x5r,bot y5r)---(lft x5l,top y5l)..
+ else: ... fi
+ {right}z5l--cycle; % bar point
+pos2'(vair,90); z2'=z2; pos8'(vair',-90); z8'=z8;
+if serifs:
+ filldraw stroke z1e{x2-x1,7(y2-y1)}....{right}z2'e; % upper arc
+ {{interim superness:=more_super;
+ filldraw stroke super_arc.e(8',9)}}; % lower arc
+else:
+ filldraw stroke term.e(2',1,left,.8,4); % upper terminal
+ forsuffixes e=l,r: path p.e; p.e=z8'e{left}..tension .9 and 1..z9e;
+ if angle direction 1 of p.e<105:
+ p.e:=z8'e{left}..tension atleast.9 and 1..{dir 105}z9e; fi endfor
+ filldraw stroke p.e; % lower arc
+fi
+if serifs:
+ path upper_arc; upper_arc=z1{x2-x1,7(y2-y1)}....{right}z2;
+ pos10(.3[fine.breadth,hair],0); x10l=x1r; top y10=vround(h+1.5oo);
+ x1'-x1l=1.5curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z10r--z1'));
+ filldraw z1r--z10l--z10r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Lowercase Russian letter i (looks like backwards N)";
+cyrchar(i,10u# if not serifs:+.5width_adj# fi,x_height#,0); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_i;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-2stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(vair'+eps); y6=vround(h-vair-eps);
+ alpha1=diag_ratio(1,stem1,y6-y5,x5r-x6l);
+ penpos5(min(2fudged.stem,alpha1*stem1),0);
+ penpos6(min(2fudged.stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else:
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ y5l=vround(y2+bracket+eps); y6r=vround(y3-bracket-eps);
+ stem1=max(tiny.breadth,fudged.hair-2stem_corr);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Russian letter i_shrt - short i";
+cyrchar(i_shrt,10u# if not serifs:+.5width_adj# fi, % n_width
+ x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#); full_h:=h; h:=x_height;
+% lower_i;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-2stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(vair'+eps); y6=vround(h-vair-eps);
+ alpha1=diag_ratio(1,stem1,y6-y5,x5r-x6l);
+ penpos5(min(2fudged.stem,alpha1*stem1),0);
+ penpos6(min(2fudged.stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else:
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ y5l=vround(y2+bracket+eps); y6r=vround(y3-bracket-eps);
+ stem1=max(tiny.breadth,fudged.hair-2stem_corr);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+% the accent
+h:=full_h; cbreve(.5w,0, 7,8,9,10,11,12,13);
+penlabels(1,2,3,4,5,6, 7,8,9,10,11,12,13); endchar;
+
+iff not concrete:%
+iff not specific:%
+lhchar "Lowercase Russian letter k (`roman')";
+cyrchar(k,if serifs: 10u# else: 9.5u# fi % zhk_width: n_width;keng_width
+ ,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#);
+% lowerr_k;
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr);%lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi% lower stem serif
+% k_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+iff not concrete:%
+lhchar "Lowercase Russian letter l";
+cyrchar(l,10u# % if not serifs:+.5width_adj# fi % dl_width;n_width
+ ,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit# if not serifs:+.5(stem#-u#) fi, %dl_adj
+ serif_fit#); %
+% lower_l;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,bot_vair,bulb_diam,left_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+bot_vair=Vround(.5[vair,light_hair]);
+bulb_diam=hround 7/8[hair,flare];
+left_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (w+serif_fit-rt x2r-.5u) fi;
+x3=1/3[w-rt x1r-(1/8left_jut),rt x1r] if not serifs: -.5(stem-u) fi +eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(hair,-180);
+ top y3=h; y6-.5bulb_diam=.12desc_depth-eps; z6r=z5r;
+ lft x6r=l+letter_fit+hround(.35u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]);
+ bot y4r=-1.5oo-eps; {{less_tense; bulb(4,5,6)}}; %bulb
+ filldraw stroke z4e{right}
+ ..controls (min(15/16[x4,x3],max(x4,lft x6r+1.75bulb_diam))+(x3e-x3),y4e)
+ and (x3e,max(y4l,min(y6-.5,1/3h+eps))+1/3(y4e-y4))..{up}z3e; % left tail
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e; % upper bar
+ pickup fine.nib; pos3(light_hair,0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=.67[x3l,x5];
+ lft x5=l+letter_fit+hround(.35u-.5); bot y4r=bot y5r; y3=y3';
+ filldraw stroke z3e{down}..controls (x3e,y5e+.35h)
+ and (min(7/8[x4e,x3e],x4e+2light_hair)+eps,y4e-eps)..{left}z4e--z5e; fi % left stem
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5jut);
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,a,1/3,jut,b,1/3,jut); % lower right serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,jut); % upper right serif
+ nodish_serif(3,0,e,1/3,1.05jut,f,1/3,inner_jut); % upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+penlabels(0,1,1',2,3,3',4,5,6);endchar;
+
+lhchar "Lowercase Russian letter m";
+cyrchar(m,12u# if not serifs:+width_adj# fi,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0,0 else: serif_fit#,serif_fit# fi); %wlett_adj
+% lower_m;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.stem-3stem_corr);
+stem3=min(stem2,hround (fudged.hair-2stem_corr));
+stem4=max(stem1,hround(fudged.stem-3stem_corr));
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround (w-2.5u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty:
+ y6=if monospace: vround 1/3h else: oo fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut+eps; lower_notch=y5+notch_cut-eps;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5+eps,lower_notch)--(x0-.5-eps,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else:
+ y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x2r+jut+.5u+1+eps+.5stem3<=lft x4l-.5stem3-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1+eps+.5stem3=lft x4l-.5stem3-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ serif(1,2,a,1/3,-jut); % upper left serif
+ serif(3,4,d,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); % lower left serif
+ dish_serif(4,3,e,1/3,jut,f,1/3,jut); fi % lower right serif
+%%%%%
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+lhchar "Lowercase Russian letter n (looks like H)";
+cyrchar(n,10u#, % if not serifs:+.5width_adj# fi, % n_width
+ x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_n;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+bar_stroke(x1,x3); % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Russian letter o";
+cyrchar(o,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); %o
+% lower_o;
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%%%%%
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Russian letter p (looks like PI)";
+cyrchar(p,10u#, % if not serifs:+.5width_adj# fi, % n_width
+ x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_p;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ filldraw z.b0--z.b1--z.e1--z.e0--cycle; % upper inter_serif bar
+else:
+ lft x1'= lft x1l; top y1'r=h; pos1'(vair,90);
+ rt x3'=rt x3r; y3'=y1'; pos3'(vair,90);
+ filldraw stroke z1'e--z3'e; fi % upper bar
+%%%%%
+penlabels(1,2,3,4); endchar;
+
+iff not kapitel:%
+lhchar "Lowercase Russian letter r (looks like p)";
+cyrchar(r,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#,0);
+% lower_r;
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty: thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs:
+ sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Russian letter s (looks like c)";
+cyrchar(s,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_s;
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs:
+ pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else:
+ pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%%%
+penlabels(0,1,2,3,4,5); endchar;
+
+lhchar "Lowercase Russian letter t";
+cyrchar(t,9u#-width_adj#,x_height#,0);
+italcorr x_height#*slant-beak_jut#+.35u#; %Gamma->x_height+.65u#
+adjust_fit(0,0); if odd(stem-w): change_width; fi % symmetric & all three equal
+% lower_t;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(vair,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.4beak_jut); % left arm and beak
+%%%
+if serifs:
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+%%%%%
+penlabels(1,2,3,4,5); endchar;
+
+iff not kapitel:%
+lhchar "Lowercase Russian letter u (looks like y)";
+cyrchar(u,if serifs: 9.5u# else: 9u# fi,x_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff not kapitel:%
+lhchar "Lowercase Russian letter f (looks like phi)";
+cyrchar(f,if serifs: 9.5u# else: 9.75u# fi+serif_fit#,
+ asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(w#-5u# if monospace:-\\.5u#,-.5u#+ else:,fi\\ 0);
+if odd((r-l)-stem'): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=lft x2l=hround(.5[l,r]-.5stem')-eps; top y1=h; bot y2=-d; % middle stem point
+numeric edge; edge=rt x2r;
+% f_bowl
+ pickup fine.nib;
+ pos3(if hefty: thin_join else:hair fi,180);
+ pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+ rt x3l=(max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]));
+ penpos7(x3l-x3r,-180);
+ y3=1/8[bar_height,x_height];
+ x4l=(w-.5(w-serif_fit)if not serifs:+.3u fi);
+ rt x5r=(hround min(w-1.35u+.5curve,w-.6u)+eps);
+ top y4r=x_height+oo; y5=.5x_height;
+ x6l=x4l; bot y6r=-oo; x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+ (x,y4r)=whatever[z3l,z4l];
+ x4r:=min(x,.5[x5r,x4]); (x',y6r)=whatever[z7l,z6l];
+ x6r:=min(x',.5[x5r,x6]);
+ filldraw stroke z3e{up}...{right}z4e & super_arc.e(4,5)
+ & super_arc.e(5,6) & z6e{left}...{up}z7e; % bowl
+% mirror
+forsuffixes $ = 3l,3r,4l,4,4r,5l,5,5r,6l,6,6r,7l,7r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+ filldraw stroke z.m3e{up}...{left}z.m4e & super_arc.e(.m4,.m5)
+ & super_arc.e(.m5,.m6) & z.m6e{right}...{up}z.m7e; % bowl
+% stem
+pickup tiny.nib; filldraw stroke z1e--z2e; % stem
+if serifs:
+ numeric outer_jut; outer_jut=if monospace: 1.414 fi jut;
+ sloped_serif.l(1,2,a,1/3,outer_jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,outer_jut,c,1/3,outer_jut); fi % lower serif
+penlabels(0,0',1,2,3,4,5,6,7,7',8); endchar;
+
+lhchar "Lowercase Russian letter h - kha (looks like X)";
+cyrchar(h,if serifs: 9.5u# else: 9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+% lower_h;
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut; y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l); alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty:
+ z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else:
+ fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+%%%
+if serifs:
+ numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+%%%%%
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+lhchar "Lowercase Russian letter c - tse";
+cyrchar(c,10u# if not serifs:+.5width_adj# fi, % n_width
+ x_height#,sbeak#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,
+ serif_fit# if not serifs:+.5(stem#-u#) fi); %dl_adj
+% lower_c;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric inner_jut,right_jut;
+save slab; % lower.slab
+if serifs:
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+else:
+ lft x2'= lft x2l; bot y2'l=0; pos2'(vair,90);
+ rt x4'= rt x4r; y4'=y2'; pos4'(vair,90);
+ filldraw stroke z2'e--z4'e; fi
+% lowercase descender
+inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+slab:=vair; % lower.slab
+right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi;
+r_serif(4,3,g,1/3,inner_jut,h,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+if serifs:
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; fi % lower inter_serif bar
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Russian letter ch";
+cyrchar(ch,10u# if not serifs:+.5width_adj# fi,x_height#,0); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_ch;
+pickup tiny.nib;
+numeric middle_weight; middle_weight=.6[thin_join,vair];
+pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+penpos2'(fudged.stem,0); z2'=z2;
+penpos5(middle_weight,90); penpos6(middle_weight,90);
+penpos6'(middle_weight,90);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0; x5l=1/3[x1,x3];
+y6l=vround(.48h-.5middle_weight if serifs:-.15(.5[hair,.7stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+y5l=y6l; x6=x6'=x3;
+if serifs: y6'l=min(3/5h,y6l-hair+1.05stem); fi
+if serifs:
+ if ((y6'l-y6l)>=middle_weight+1+eps):
+ fill stroke z2'e{down}..z5e{right}...{.75(z5-z6)+z6'}z6'e; % arc
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+else:
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{right}z6e; fi % arc
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Russian letter sh";
+cyrchar(sh,14.5u# if serifs:+.5width_adj# fi,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0,0 else: serif_fit#,serif_fit# fi); %wlett_adj
+% lower_sh;
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib;
+pos1(fudged.stem,0); pos2(fudged.stem,0); pos3(fudged.stem,0);
+pos4(fudged.stem,0); pos5(fudged.stem,0); pos6(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=top y5=h; bot y2=bot y4=bot y6=0;
+lft x5l=lft x6l=hround (.5[x1,x3]-.5fudged.stem); % middle stem point
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x5l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; % lower inter_serif bar
+else:
+ lft x2'= lft x2l; bot y2'l=0; pos2'(vair,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(vair,90);
+ filldraw stroke z2'e--z4'e; fi
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Russian letter shch";
+cyrchar(shch,14.5u# if serifs:+.5width_adj# fi,x_height#,sbeak#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0 else: serif_fit# fi, %wlett_adj
+ if monospace: 0 else: serif_fit# if not serifs:+.5(stem#-u#) fi fi) %dl_adj&wlett_adj
+% lower_sh;
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib;
+pos1(fudged.stem,0); pos2(fudged.stem,0); pos3(fudged.stem,0);
+pos4(fudged.stem,0); pos5(fudged.stem,0); pos6(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=top y5=h; bot y2=bot y4=bot y6=0;
+lft x5l=lft x6l=hround (.5[x1,x3]-.5fudged.stem); % middle stem point
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+save slab; % lower.slab
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x5l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+else:
+ lft x2'= lft x2l; bot y2'l=0; pos2'(vair,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(vair,90);
+ filldraw stroke z2'e--z4'e; fi
+% lowercase descender
+slab:=vair; % lower.slab
+numeric right_jut;
+inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+right_jut:=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi;
+r_serif(4,3,o,1/3,inner_jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+if serifs:
+ filldraw z.d0--z.d1--z.o1--z.o0--cycle; fi % lower inter_serif bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Russian letter hrdsn - hard sign";
+cyrchar(hrdsn,9u#,x_height#,0); % v_witdh
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(2u#-.5width_adj#,if monospace:.5u# else:0 fi);
+% lower_hrdsn;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% lower left beak
+pickup crisp.nib; top y3r=h; x3=x1; pos3(vair,90);
+pos4(hair,180); lft x4r=l+letter_fit+hround.45u; y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,q,beak_darkness,-.4beak_jut);
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Russian letter ery";
+cyrchar(ery,9u#,x_height#,0); % v_witdh
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0,0 else: serif_fit#,serif_fit# fi %wlett_adj
+ +4u#);
+% lower_ery;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% I
+w:=w+4u;
+rt x8r=rt x9r=w-lft x1l; top y8=h; bot y9=0;
+pos8(fudged.stem,0); pos9(fudged.stem,0);
+filldraw stroke z8e--z9e; % stem
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(8,9,e,1/3,jut,f,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(9,8,g,1/3,jut,h,1/3,jut); fi% lower serif
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Russian letter sftsn - soft sign";
+cyrchar(sftsn,9u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+else:,fi\\0);
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+%%%%%
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Russian letter erev - reverse e";
+cyrchar(erev,8u#,x_height#,0);
+italcorr .7x_height#*slant-.1u#; %o
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_erev;
+set_bar_axis;
+pickup fine.nib; pos2(vair',90); pos3(curve,0); pos4(vair',-90);
+x2=x4=w-.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+rt x3r=w-hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs:
+ pos1(hair,180); pos5(hair,-180);
+ y1=min(y2.bh+flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ lft x1r=lft x5r=hround.5u;
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+oo;
+ x1'-x1r=1.5curve; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,5(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos1(4/7[vair',flare],100); pos5(.6[vair',flare],-95);
+ lft x1r=good.x .6u; top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ lft x5r=good.x .5u;
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e<105:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 105}z5e; fi
+ endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%
+% lerev_bar;
+if (serifs=true) and (bar#<=.5curve#):
+ x7r=max(rt x1l+.5hair,0.85[x3l,x1l]); x8r=x3l;
+ y7l=y8l=y1.bh; y7r=y8r=y2.bh; x7l=x7r; x8l=x8r;
+ numeric bar[];
+ bar2=7/8[bar,fudged.stem-2stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ bar_stroke(max(rt x1l+.5hair,0.85[x3l,x1l]),x3l); % bar --
+fi
+%%%%%
+penlabels(1,1',2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Russian letter yu (looks like IO)";
+cyrchar(yu,9u#,x_height#,0);
+italcorr .7x_height#*slant; %o
+adjust_fit(if monospace: 4u# else: 4.5u# fi +serif_fit#, %li_part_adj
+ if monospace: -.45u# else: 0 fi);
+% lower_yu;
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+save slab; % lower.slab
+% barh_i_part(2);
+_zero:=2;
+_one:=5; _two:=6;
+%
+pickup tiny.nib;
+pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround (2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+bar_stroke(x[_one],x[_zero]); % bar
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); % lower serif
+fi
+%%%%%
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff not concrete:%
+iff not specific:%
+lhchar "Lowercase Russian letter ya (looks like backward R) (`roman')";
+cyrchar(ya,if serifs: 9.75u# else: 10u# fi-.5width_adj#,x_height#,0); %ya (~n_width:10u)
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if serifs:serif_fit# else:0 fi,serif_fit#);
+% lowerr_ya;
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=rt x2r=hround(w-2.5u+.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos4(vair,90); penpos5(curve if hefty:-3stem_corr fi,180);
+y6r=y7r=hround (if serifs:.52h else:.5h fi-.6[thin_join,vair]/2);
+y6l=y7l=y6r+.6[thin_join,vair]; y6=y7=.5[y6l,y6r];%
+z3r=top z1; y4=y3; y5=.52[y6r,y4r]+eps;
+x7l=x7r=x2; x4+.25u=x6l=x6r; x4=.5w if serifs:+.25u else:-.25u fi;
+x5r=hround min(1.25u,2u-.5curve)+eps;
+x4l:=x4+.125curve; x6l:=x6l+.125curve;
+fill stroke
+{{interim superness:=more_super; z7e..pulled_arc.e(6,5) &
+ pulled_arc.e(5,4)..z3e}}; % lobe
+numeric stem[],alpha,right_jut;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+lft x9l=hround(l+letter_fit+.3u+right_jut)-eps; bot y9=0;
+alpha=diag_ratio(1,.5(stem1-tiny),y1-y9,x9l-x1);
+penpos9(alpha*(stem1-tiny),0);
+x8=x6l-if serifs:.75u else:.25u fi; y8=y6;
+forsuffixes $=l,r: y9'$=0; endfor
+z9'r=z9r+penoffset z1-z9 of currentpen+whatever*(z1-z9);
+z9'l=z9l+penoffset z9-z1 of currentpen+whatever*(z1-z9);
+z8=z9'+whatever*(z1-z9);
+penpos8(if serifs: x9'r-x9'l else: stem fi-2stem_corr,0);
+fill z8l--diag_end(8l,9'l,1,.5,9'r,8r)--z8r--cycle; % diagonal
+if serifs:
+ numeric inner_jut;
+ if lft x2l-jut-.5u+1>=rt x9r+jut: inner_jut=jut;
+ else: lft x2l-jut-.5u+1=rt x9r+inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower serif
+ dish_serif(9,8,g,1/2,right_jut,h,1/3,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff not kapitel:%
+lhchar "Lowercase Russian letter yo (looks like e umlaut)";
+cyrchar(yo,7.25u#+max(.75u#,.5curve#),lc_trema_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace:.25u#,.5u# else:0,0 fi); full_h:=h; h:=x_height;
+% lower_e;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs:
+ pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else:
+ pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 6,7,8,9);
+penlabels(0,1,2,3,4,5, 6,7,8,9); endchar;
+
+if concrete: input lgrucl; fi % Russian concrete letters
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgrusu.mf b/Master/texmf-dist/fonts/source/lh/base/lgrusu.mf
new file mode 100644
index 00000000000..0ff385ef871
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgrusu.mf
@@ -0,0 +1,1374 @@
+%
+% lgrusu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Russian letters from a to ya and yo
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Uppercase Russian letter A";
+cyrchar(A,13u#,cap_height#,0);
+if is_small_cap: getcharcode(a); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_a;
+numeric left_stem,right_stem,outer_jut,alpha; outer_jut=.8cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.5u;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut:
+ y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs:
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+%%%%%
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter B";
+cyrchar(B,12.5u#,cap_height#,0);
+if is_small_cap: getcharcode(b); fi
+italcorr cap_height#*slant-beak_jut#-1.5u#; %Gamma
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% upper right beak
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-2u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut);
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Uppercase Russian letter V (looks like B)";
+cyrchar(V,12.5u#,cap_height#,0); %V_width#=12.5u#
+if is_small_cap: getcharcode(v); fi
+italcorr .75cap_height#*slant-u#; %P-.5u#
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair; .5[y7l,y8l]=.52h;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y9=y8;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x10r=hround(w-u); x5r=min(x10r-1,hround(w-1.5u));
+if serifs:
+ right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else:
+ right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Uppercase Russian letter G (looks like Gamma)";
+cyrchar(G,if monospace: 9u# else: 11u# fi-width_adj#, %G_width
+ cap_height#,0);
+if is_small_cap: getcharcode(g); fi
+italcorr cap_height#*slant-beak_jut#-.25u#; %Gamma
+adjust_fit(cap_serif_fit#,0);
+% upper_g;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u ,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+%%%%%
+penlabels(1,2,3,4); endchar;
+
+iff not concrete:%
+lhchar "Uppercase Russian letter D";
+cyrchar(D,13.5u#,cap_height#,cap_sbeak#); % DL_width:N_width
+if is_small_cap: getcharcode(d); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit# if not serifs:
+ +\\.5(cap_stem#-u#),.5(cap_stem#-u#)+ else:,fi\\ cap_serif_fit#); %D_adj
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %right stem
+numeric light_hair,light_stem,outer_jut;
+light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi);
+light_stem=max(tiny.breadth+eps,min(fudged.stem,fudged.hair if hefty:-4stem_corr fi));
+outer_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (r-rt x2r-.65u) fi;
+penpos3(light_hair,0); penpos0(light_hair,0); x0=x3-eps; y0=0; y3=h;
+x3=1/3[w-rt x1r-1/6(outer_jut if not serifs:-.5(cap_stem-u) fi),rt x1r]
+ if not serifs:-.5(cap_stem-u) fi +eps;
+x2'=x2; y2'=if serifs: 2/3 else: 3/4 fi h;
+x4l=w-rt x1r-1/3outer_jut-eps; y4l=slab;
+penpos4(light_hair,angle((y2',-x2')-(y4l,-x4l))); if y4r<0: y4r:=0; fi
+fill z4l{z2'-z4}...{up}diag_end(0l,3l,1,1,3r,0r){down}
+ ...{z4-z2'}z4r--cycle; %left stem
+numeric inner_jut; inner_jut=min(.5(lft x1l-x3r)-eps,.5cap_jut);
+if serifs:
+ prime_points_inside(3,0);
+ nodish_serif(3',0,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); % upper right serif
+ filldraw z.b0--z.b1--z.c1--z.c0--cycle; % upper inter_serif bar
+else:
+ pos3''(slab,90); pos1'(slab,90);
+ lft x3''=x3l; top y3''r=top y1'r=h; rt x1'=x1;
+ filldraw stroke z3''e--z1'e; fi % upper bar
+% upper descenders
+numeric arm_thickness; arm_thickness=vround(slab+vair_corr+eps);
+save slab; slab:=arm_thickness; % bottom.bar.slab
+r_serif(2,1,e,1/3,inner_jut,f,1/3,beak_darkness,outer_jut,beak_jut); % lower right serif
+% upper de_serif
+y5=y.f1; y0'=y.f4; x5=good.x(w-x.f1); y6=y7=y.f3;
+x6=good.x(w-x.f2); x7=good.x(w-x.f3);
+pair beak_corner; ypart beak_corner=y0'; beak_corner=z7+whatever*(z5-z6);
+x8=good.x(w-x.f4); x0'=w-x.e1; y8=y0';
+filldraw z5--z6--z7{z5-z6}
+ ...beak_darkness[beak_corner,.5[z7,z8]]
+ ...{right}z8---z0'--(x0',y5)--cycle; % de_serif
+filldraw z.f1--z.f4--z0'--(x0',y5)--cycle; % lower inter_serif bar
+if serifs:
+ numeric bracket_height;
+ bracket_height=min(y2+bracket,y1);
+ if bracket_height>y4l:
+ path p.r,p.l; y5:=top y5;
+ p.r=(z4r{z2'-z4}...{up}z3r); p.l=(z4l{z2'-z4}...{up}z3l);
+ forsuffixes e=l,r:
+ z9e=((0,bracket_height)--(w,bracket_height)) intersectionpoint p.e;
+ endfor
+ vardef t (suffix @) =
+ angle direction directiontime z9@ of p.@ of p.@ enddef;
+ fill z9l{dir (t(l)+180)}...1/3[(x4l,y5),.5[z9l,z5]]{z5-z9l}
+ ...{left}z5--(x5,y0')--z0'--(x0',y5)
+ --(x8-1/3outer_jut-eps,y5){left}
+ ...{dir t(r)}z9r--cycle; % top part of de_serif
+ fi
+fi
+penlabels(0',1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Uppercase Russian letter E";
+cyrchar(E,12u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(e); fi
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_e;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs:
+ rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else:
+ rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff not concrete:%
+iff not specific:%
+lhchar "Uppercase Russian letter ZH (`roman')";
+cyrchar(ZH,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(zh); fi
+italcorr cap_height#*slant-.5u#; %K
+adjust_fit(w#-2max(2u#+.5fudged.cap_stem#,3u#)+\\ %ZHr_adj
+ if monospace: 0,0 else: cap_serif_fit#,cap_serif_fit# fi); %uwlett_adj
+% upperr_zh;
+if odd((r-l)-fudged.cap_stem): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.cap_stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_rbowl;zh%monospace:+.75u
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut if monospace:+.75u fi); %!!!
+rt x6r=hround(r-letter_fit-.75u-right_jut if monospace:+.75u fi); %!!!
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+numeric inner_jut,up_inner_jut;
+%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+% mirror
+forsuffixes $ = 3r,3,3l,3'r,3'l,4r,4,4l,5l,5,5r,6l,6,6r,6'l,6'r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+fill z.m5l--diag_end(.m5l,.m6'l,.5,1,.m6'r,.m5r)--z.m5r--cycle; % lower diagonal
+%%
+if serifs:
+ penpos7(alpha1*(stem1-tiny),0); penpos8(whatever,-90);
+ penpos10(alpha2*(stem2-tiny),0);
+ z7=z.m3; z8=z.m4; z9l=z.m5r; z9=z.m5; z9r=z.m5l; z10=z.m6;
+ dish_serif(7,8,i,1/2,right_jut,j,2/3,up_inner_jut)(dark); % upper diagonal serif
+ dish_serif(10,9,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter Z (looks like numeral 3)";
+cyrchar(Z,11u#,cap_height#,0);
+if is_small_cap: getcharcode(z); fi
+italcorr .75cap_height#*slant-.5u#; %B
+adjust_fit(if monospace: .35u#,.25u# else: 0,0 fi);
+% upper_z;
+pickup fine.nib; numeric right_curve,middle_weight;
+middle_weight=max(fine.breadth,.6vair+.5);
+pos2(cap_band,90); pos8(cap_band,-90);
+if serifs:
+ right_curve=cap_curve-stem_corr;
+ pos1(cap_hair,180); pos9(cap_hair,-180); y1=.4[y5l,y2l];
+else:
+ right_curve=cap_curve-3stem_corr;
+ pos1(1.1flare,120); pos9(flare,-120);
+ top y1r=vround 7/8h+o; bot y9r=vround 1/7h-o; fi
+pos4(middle_weight,-90); pos5(middle_weight,-90);
+pos6(middle_weight,90); pos5'(middle_weight,90);
+pos3(max(fine.breadth,right_curve-stem_corr),0);
+pos7(max(fine.breadth,right_curve),0);
+top y2r=h+o; bot y8r=-o;
+x2=x6=x8=.5[1.5u,x7]; rt x7r=hround(w-.75u); rt x3r=hround(w-1.25u);
+lft x5=lft x5'=min(hround 3.5u,lft x6)+eps;
+y3=.5[y4l,y2l]; y7=.5[y6l,y8l]; x4=1/3[x5,x3l]; y4=y5; y5'=y6;
+lft x1r=hround 1.1u; lft x9r=hround.9u;
+top y5l-bot y5'l=vair; .5[y5l,y5'l]=.52h;
+if serifs: y9=max(.52[top y8l,bot y5'l],y7+1);
+ else: y9l:=good.y y9l; x9l:=good.x x9l; fi
+filldraw stroke {{if not serifs:interim superness:=hein_super; fi
+ super_arc.e(2,3)}} & super_arc.e(3,4)..z5e; % upper bowl
+filldraw stroke z5'e..super_arc.e(6,7) & super_arc.e(7,8); % lower bowl
+if serifs:
+ filldraw stroke z1e{x2-x1,15(y2-y1)}....{right}z2e; % upper arc
+ filldraw stroke
+ {{interim superness:=more_super; super_arc.e(8,9)}}; % lower arc
+else:
+ filldraw stroke rterm.e(2,1,left,.9,4); % upper arc
+ filldraw stroke term.e(8,9,left,.8,4); % lower arc
+fi
+if serifs:
+ path upper_arc; upper_arc=z1{x2-x1,15(y2-y1)}....{right}z2;
+ pos10(.3[fine.breadth,cap_hair],0); x10l=x1r; top y10=h+o;
+ x1'-x1l=2cap_curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z10r--z1'));
+ filldraw z1r--z10l--z10r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Uppercase Russian letter I (looks like backwards N)";
+cyrchar(I,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(i); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_i;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(slab+eps); y6=vround(h-slab-eps);
+ alpha1=diag_ratio(1,stem1,y6-y5,x5r-x6l);
+ penpos5(min(2fudged.cap_stem,alpha1*stem1),0);
+ penpos6(min(2fudged.cap_stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: y5l=y2+bracket+eps; y6r=y3-bracket-eps;
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ stem1=max(tiny.breadth,fudged.hair);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter I_shrt - SHORT I";
+cyrchar(I_shrt,13.5u#,cap_height#+acc_height#,0); % N_width
+if is_small_cap: getcharcode(i_shrt); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_i;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(slab+eps); y6=vround(h-slab-eps);
+ alpha1=diag_ratio(1,stem1,y6-y5,x5r-x6l);
+ penpos5(min(2fudged.cap_stem,alpha1*stem1),0);
+ penpos6(min(2fudged.cap_stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: y5l=y2+bracket+eps; y6r=y3-bracket-eps;
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ stem1=max(tiny.breadth,fudged.hair);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+% the accent
+h:=cap_height+acc_height;
+cbreve(.5w,0, 7,8,9,10,11,12,13)(cyrcaph);
+penlabels(1,2,3,4,5,6, 7,8,9,10,11,12,13); endchar;
+
+iff not concrete:%
+iff not specific:%
+lhchar "Uppercase Russian letter K (`roman')";
+cyrchar(K,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(k); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upperr_k;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut);
+rt x6r=hround(r-letter_fit-.75u-right_jut);
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+numeric inner_jut,up_inner_jut;
+%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+iff not concrete:%
+lhchar "Uppercase Russian letter L";
+cyrchar(L,13.5u#,cap_height#,0); % DL_width:N_width
+if is_small_cap: getcharcode(l); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi, %DL_adj
+ cap_serif_fit#); %
+% upper_l;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+numeric light_hair,bot_vair,left_jut;
+light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi);
+left_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit-rt x2r-.65u) fi;
+bot_vair=Vround(.5[vair,light_hair]);
+x3=1/3[w-rt x1r-(1/6left_jut),rt x1r] if not serifs:-.5(cap_stem-u) fi+eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(cap_hair,-180);
+ top y3=h; y6=1/6h-max(0,flare-stem-2vair_corr-.5); z6r=z5r;
+ lft x6r=l+letter_fit+hround(.5u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]); bot y4r=-o;
+ filldraw stroke z4e{right}..
+ controls (min(15/16[x4,x3],max(x4,lft x6r+2flare))+(x3e-x3)+eps,y4e)
+ and (x3e,good.y(min(y6-.5,1/3h)+1/3(y4e-y4))-eps)..z3e; % left tail
+ {{less_tense; bulb(4,5,6)}};
+else:
+ pos3'(slab,90); pos1'(slab,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e;
+ pickup fine.nib; pos3(max(fine.breadth,light_hair),0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=2/3[x3l,x5r]; lft x5=l+letter_fit+hround(.35u-.5);
+ bot y4r=bot y5r; y3=y3'; x4l:=.25[x4,x5];
+ path p;
+ p=stroke z3{down}
+ ..controls (x3,y5+.35h-eps) and (min(7/8[x4,x3],x5+2.5light_hair+.5u),y4)
+ ..{left}z4--z5;
+ z6=point .35 of p;
+ pos6(max(fine.breadth,7/8[bot_vair,light_hair]),angle(direction .35 of p)+90);
+ filldraw stroke z3e{down}...z6e{direction .35 of p}...{left}z4e--z5e; fi % arc
+%%%
+if serifs: x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5cap_jut);
+ dish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut); %lower right serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); %upper right serif
+ nodish_serif(3,0,e,1/3,1.05cap_jut,f,1/3,inner_jut); %upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+penlabels(0,1,2,3,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter M";
+cyrchar(M,16u#+width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(m); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_m;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty:
+ y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else:
+ y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+%%%
+if serifs:
+ serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+%%%%%
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+lhchar "Uppercase Russian letter N (looks like H)";
+cyrchar(N,13.5u#,cap_height#,0); %N_width#
+if is_small_cap: getcharcode(n); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_n;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter O";
+cyrchar(O,14u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(o); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0,0);
+% upper_o;
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%%%%%
+penlabels(1,2,3,4); endchar;
+
+lhchar "Uppercase Russian letter P (looks like PI)";
+cyrchar(P,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(p); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_p;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower left serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ filldraw z.b0--z.b1--z.e1--z.e0--cycle; % upper inter_serif bar
+else:
+ lft x1'= lft x1l; top y1'r=h; pos1'(slab,90);
+ rt x3'=rt x3r; y3'=y1'; pos3'(slab,90);
+ filldraw stroke z1'e--z3'e; fi % upper_bar
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter R (looks like P)";
+cyrchar(R,12u#,cap_height#,0);
+if is_small_cap: getcharcode(r); fi
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_r;
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+%%%
+if serifs:
+ nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff serifs:%
+lhchar "Uppercase Russian letter S (looks like C)";
+cyrchar(S,13u#,cap_height#,0);
+if is_small_cap: getcharcode(s); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% upper_s;
+pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+x1r-x1'=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+%%%%%
+penlabels(1,1',2,3,4,5,6); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Russian letter S (looks like C)";
+cyrchar(S,11.5u#,cap_height#,0);
+if is_small_cap: getcharcode(s); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% uppers_s;
+pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+%%%%%
+penlabels(1,2,3,4,5); endchar;
+
+lhchar "Uppercase Russian letter T";
+cyrchar(T,13u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(t); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+% upper_t;
+if odd(cap_stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+%%%
+if serifs:
+ dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+%%%%%
+penlabels(1,2,3,4,5); endchar;
+
+lhchar "Uppercase Russian letter U (looks like y)";
+cyrchar(U,13u#,cap_height#,0);
+if is_small_cap: getcharcode(u); fi
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+penlabels(0,0',1,2,3,4,5,6,6',7,8,9); endchar;
+
+lhchar "Uppercase Russian letter F (looks like PHI)";
+cyrchar(F,15u#,cap_height#,0);
+if is_small_cap: getcharcode(f); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(if monospace: -.5u#,-.5u# else: 0,0 fi);
+numeric shaved_stem,light_curve; shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+if odd(shaved_stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround (.5w-.5shaved_stem); % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(.89h if serifs:-.5slab fi); y4=y6=.5[y3,y5];
+y5r=vround(.15h if serifs:+.5slab fi);
+clearpen; interim superness:=hein_super; % make |"F"|, not |"fita"|
+penstroke pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull)
+ & pulled_super_arc.e(5,6)(.5superpull)
+ & pulled_super_arc.e(6,3)(.5superpull) & cycle; % bowl
+if serifs:
+ dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter H (looks like X)";
+cyrchar(H,13u#,cap_height#,0);
+if is_small_cap: getcharcode(h); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_h;
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty:
+ z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else:
+ fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+%%%
+if serifs:
+ numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+%%%%%
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+lhchar "Uppercase Russian letter C";
+cyrchar(C,13.5u#,cap_height#,cap_sbeak#); % N_width
+if is_small_cap: getcharcode(c); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,
+ cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi); %DL_adj
+% upper_c;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric inner_jut,arm_thickness;
+arm_thickness=vround(slab+vair_corr);
+if serifs:
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+else:
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90);
+ rt x4'= rt x4r; y4'=y2'; pos4'(slab,90);
+ filldraw stroke z2'e--z4'e; fi % lower bar
+% uppercase descender
+inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+numeric right_jut;
+right_jut=if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi;
+r_serif(4,3,g,1/3,inner_jut,h,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+if serifs:
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; fi % lower inter_serif bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter CH";
+cyrchar(CH,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(ch); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_ch;
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0;
+x5l=1/3[x1,x3]; y5=y6; if serifs: y6'=y6-cap_hair+1.05cap_stem; fi
+x6=x6'=x3; y6=good.y (h-.52h if serifs: -.35(.5[cap_hair,.7cap_stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+clearpen; penpos2'(cap_stem,0); z2'=z2;
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos5(middle_weight,90); penpos6(middle_weight,90); penpos6'(middle_weight,90);
+if serifs:
+ if((y6'-y6)>=middle_weight+1+eps):
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{.75(z5-z6)+z6'}z6'e;
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+else:
+ filldraw stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter SH";
+cyrchar(SH,19.75u#+width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(sh); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if monospace: 0,0 else:cap_serif_fit#,cap_serif_fit# fi); %uwlett_adj
+% upper_sh;
+if odd(fudged.cap_stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib;
+pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+pos5(fudged.cap_stem,0); pos6(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=top y5=h; bot y2=bot y4=bot y6=0;
+lft x5l=lft x6l=hround (.5[x1,x3]-.5cap_stem); % middle stem point
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+numeric inner_jut,arm_thickness;
+arm_thickness=vround(slab+vair_corr);
+if serifs:
+ if rt x1r+cap_jut+.5u+1<=lft x5l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; % lower inter_serif bar
+else:
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(slab,90);
+ filldraw stroke z2'e--z4'e; fi % lower bar
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter SHCH";
+cyrchar(SHCH,19.75u#+width_adj#,cap_height#,cap_sbeak#);
+if is_small_cap: getcharcode(shch); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if monospace: 0 else: cap_serif_fit# fi, %uwlett_adj
+ if monospace: 0 else: cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi fi); %DL_adj&uwlett_adj
+% upper_sh;
+if odd(fudged.cap_stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib;
+pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+pos5(fudged.cap_stem,0); pos6(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=top y5=h; bot y2=bot y4=bot y6=0;
+lft x5l=lft x6l=hround (.5[x1,x3]-.5cap_stem); % middle stem point
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+numeric inner_jut,arm_thickness;
+arm_thickness=vround(slab+vair_corr);
+if serifs:
+ if rt x1r+cap_jut+.5u+1<=lft x5l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+else:
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(slab,90);
+ filldraw stroke z2'e--z4'e; fi % lower bar
+%%%%%
+% uppercase descender
+inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+numeric right_jut;
+right_jut=if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi;
+r_serif(4,3,o,1/3,inner_jut,p,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+if serifs:
+ filldraw z.d0--z.d1--z.o1--z.o0--cycle; fi % lower inter_serif bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Russian letter HRDSN - HARD SIGN";
+cyrchar(HRDSN,12.5u#,cap_height#,0); %V_width#=12.5u#
+if is_small_cap: getcharcode(hrdsn); fi
+italcorr .52*.7cap_height#*slant-.5u#; % D*.52h
+adjust_fit(min(4.5u#-.5stem#,3.5u#)-.5width_adj#, % Beak_adj
+ 0);
+% upper_hrdsn;
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% upper left beak
+pickup crisp.nib; pos3(slab,90); pos4(hair,180);
+top y3r=h; x3=x1; lft x4r=l+letter_fit+hround.65u; y4=good.y(y3l-beak)-eps;
+arm(3,4,q,beak_darkness,-.7beak_jut);
+if serifs:
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Uppercase Russian letter ERY";
+cyrchar(ERY,12.5u#,cap_height#,0); %V_width#=12.5u#
+if is_small_cap: getcharcode(ery); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if monospace: 0,0 else:cap_serif_fit#,cap_serif_fit# fi %uwlett_adj
+ +4.5u#); %ERYadj
+% upper_ery;
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% I
+w:=w+4.5u; pickup tiny.nib; rt x8r=rt x9r=w-hround max(2u,3u-.5stem);
+top y8=h; bot y9=0; pos8(cap_stem,0); pos9(cap_stem,0);
+filldraw stroke z8e--z9e;
+if serifs:
+ dish_serif(8,9,e,1/3,cap_jut,f,1/3,cap_jut);
+ dish_serif(9,8,g,1/3,cap_jut,h,1/3,cap_jut); fi
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Uppercase Russian letter SFTSN - SOFT SIGN";
+cyrchar(SFTSN,if monospace: 9u# else: 12.5u# fi %V_width#=12.5u#
+ ,cap_height#,0);
+if is_small_cap: getcharcode(sftsn); fi
+italcorr .52*.7cap_height#*slant-.5u#; % D*.52h
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%%%
+penlabels(1,2,3,4,5,6,7); endchar;
+
+iff serifs:%
+lhchar "Uppercase Russian letter EREV - REVERSE E";
+cyrchar(EREV,13u#,cap_height#,0);
+if is_small_cap: getcharcode(erev); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0,0);
+% upper_erev;
+pickup fine.nib; pos1(cap_hair,180); pos2(cap_band,90);
+pos3(cap_curve,0); pos4(cap_band,-90); pos5(hair,-180);
+lft x1r=lft x5r=hround u; rt x3r=hround(w-u); x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+bot y1=min(vround.675h,bot y2l-eps); y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+x1'-x1r=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+%%%
+% uerev_bar;
+numeric bar[]; y8=y7=y3;
+x8=x3l; x7=max(rt x1l+.5hair,0.85[x3l,x1l]);
+if (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; % bar --
+fi
+%%%%%
+penlabels(1,1',2,3,4,5,6,7,8,9); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Russian letter EREV - REVERSE E";
+cyrchar(EREV,11.5u#,cap_height#,0);
+if is_small_cap: getcharcode(erev); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0,0);
+% uppers_erev;
+ pickup fine.nib; pos1(1.2flare,100); pos2(slab,90);
+ pos3(cap_curve,0); pos4(slab,-90); pos5(flare,-95);
+ lft x1r=hround1.1u; x2=x4=w-(.5w+1.25u);
+ rt x3r=w-hround max(u,2u-.5cap_curve);
+ lft x5r=hround.9u;
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4);
+%%%
+% urevs_bar;
+pickup fine.nib; numeric bar[];
+bar1=if is_small_cap: max(fine.breadth+eps,.6[thin_join,vair])
+ else: cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+y7=y6=y3; x7=x3l; x6=max(rt x1l+.5hair,0.85[x3l,x1l]);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Uppercase Russian letter YU (looks like IO)";
+cyrchar(YU,14u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(yu); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ if monospace:-1.25u# else: 0 fi);
+% upper_yu;
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%I_part(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7; _four:=8;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff not concrete:%
+iff not specific:%
+lhchar "Uppercase Russian letter YA (looks like backward R) (`roman')";
+cyrchar(YA,if serifs:13.5u# else:12.5u#-.5width_adj# fi %N_width; upss R
+ ,cap_height#,0);
+if is_small_cap: getcharcode(ya); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if serifs:cap_serif_fit# else:0 fi,cap_serif_fit#);
+% upperr_ya;
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+rt x1r=rt x2r=hround(w-max(2u,3u-.5cap_stem')); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,180);
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+z3r=top z1; y4=y3; y5=.52[y6l,y4l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround (2u);
+ else: x4=.5w-.5u; x5r=hround u; fi
+x4l:=x6l:=x4+.125cap_curve;
+fill stroke z7e..pulled_arc.e(6,5) & pulled_arc.e(5,4)..z3e; % lobe
+pickup tiny.nib; numeric stem[],alpha,right_jut;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+if serifs: bot y9=bot y2; else: y9=0; fi
+lft x9l=hround(if serifs:l+letter_fit+.75u+right_jut else:.5u fi); y8=y6;
+stem1=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+alpha=diag_ratio(1,.5(stem1-tiny),y1-y9,x9l-x1);
+penpos9(alpha*(stem1-tiny),0);
+forsuffixes $=l,r: y9'$=0; endfor
+z9'r=z9r+penoffset z1-z9 of currentpen+whatever*(z1-z9);
+z9'l=z9l+penoffset z9-z1 of currentpen+whatever*(z1-z9);
+if serifs: z8r=z9'r+whatever*(z1r-z9); else: x8=x6+.5u; fi
+penpos8(if serifs:x9'r-x9'l else: cap_stem fi-2stem_corr,0);
+fill z8l--diag_end(8l,9'l,1,.5,9'r,8r)--z8r--cycle; % diagonal
+numeric inner_jut;
+if lft x2l-cap_jut-.5u+1>=rt x9r+cap_jut: inner_jut=cap_jut;
+ else: lft x2r-cap_jut-.5u+1=rt x9r+inner_jut; fi
+if serifs:
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+ dish_serif(9,8,g,1/2,right_jut,h,1/3,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Uppercase Russian letter YO (looks like E umlaut)";
+cyrchar(YO,12u#-width_adj#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(yo); fi
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0); h:=cap_height;
+% upper_e;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs:
+ rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else:
+ rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+%%%%%
+% the accent
+h:=cap_height+acc_height;
+uppercase_umlaut(if serifs: 0 else: (.5[lft x1l,rt x4r]-.5w) fi,0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+if concrete: input lgrucu; fi % Russian concrete letters
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf
new file mode 100644
index 00000000000..a0320e98e13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2comi.mf
@@ -0,0 +1,529 @@
+%
+% lgt2comi.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic Cyrillic letters common for couple of encodings
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2 & Ko
+%
+% X2 T2A T2B T2C T2D X2S LH WNCYR
+%
+% tshe "62 b "a2 - - - - - "0e Tshe
+% dje "63 c "a3 - - - - - "0f Dje
+% lat_i "69 i - - - "a9 - "f7 "0c Latin letter I
+% lat_j "6a j - - - - - - "6a Je - Latin letter J
+% lje "6b k "a7 "a8 - - - - "09 Lje
+% nje "6d m "bb "b9 - - - - "08 Nje
+% lat_s "73 s "af - - "af - - "1e Latin letter S - Dze
+% dzhe "75 u "b6 - "b6 - - - "0a Dzhe
+% yat "78 x - - - "b3 - - "2b Yat
+% b_yus "79 y - - - "b8 - - - Big Yus
+% izh "7a z - - - "aa - - "1c Izhitsa
+% g_up "a0 "a0 - - - - "f3 - Ghe upturn
+% ukr_i "a8 "a8 - - "a8 - "f9 - Ukrainian i - latin i with umlaut (goes first for LH font)
+% ng "ae "ae "ae - - "xx - - Ligature en-ghe
+% otld "b0 "b0 "b0 "b0 - "xx - - O tilded & Variant Old Cyrillic Fita (goes first for wncoding)
+% u_shrt "b2 "b2 "b2 - - - "fb - Short U (goes first for LH font)
+% ukr_e "b9 "b9 - - "b9 - "f5 "0d Ukrainian e
+% eps "bb - - "bb - "bb - - - Epsilon; Narrow E
+% fita - - - - "b0 - - "1d Old Slav Fita
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Cyrillic letter tshe (soft t - looks like barred h)";
+cyrchar(tshe,9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %h
+%adjust_fit(1.5u#,0); pickup tiny.nib;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+top y8r=top y9r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+%lft x8=hround(l+letter_fit-.75u); x9=x4;
+lft x8=hround(l+letter_fit-2.25u); x9=x4;
+filldraw stroke z8e--z9e; % cross bar
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter dje (soft dj - barred h with tail)";
+cyrchar(dje,8u#,asc_height#,desc_depth#);
+italcorr (.5x_height#+.5asc_height#)*slant-2u#+.5
+ if hefty:stem# else:rule_thickness# fi; %] to cross height
+italcorr .7x_height#*slant; %o
+%adjust_fit(1.5u#,0); pickup tiny.nib;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-.75u+.5stem);
+x5=x4; ital_arch(2,3,4); % arch
+pos7(hair,-90); x7=.45[x2,x4]; bot y7r=-d;
+filldraw stroke pulled_arc.e(4,7); % tail
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+top y8r=top y9r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+%lft x8=hround(l+letter_fit-.75u); x9=x4;
+lft x8=hround(l+letter_fit-2.25u); x9=x4;
+filldraw stroke z8e--z9e; % cross bar
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter lat_i - Ukrainian letter i (as latin i)";
+cyrchar(lat_i,5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#); %i
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+lhchar "Italic Cyrillic letter lat_j (as latin j)";
+cyrchar(lat_j,5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr h#*slant+.5stem#-u#; %j
+adjust_fit(if monospace:2u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-1.5u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+pos8(flare,0); pos9(flare,90);
+rt x8r=rt x2r if not monospace:-.6(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+penlabels(0,1,2,3,4,5,6,8,9); endchar;
+
+lhchar "Italic Cyrillic letter lje (soft l)";
+cyrchar(lje,12u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %"Weierstrass p"
+adjust_fit(if monospace:-.5u#,-.35u# else:.5u#,0 fi); %wbulb_adj&bowl_adj
+full_w:=w; w:=9u;
+% ital_l;lje
+pickup fine.nib;
+pos1(vair,-90); pos2(stem,180); pos3(hair,0); %!!!
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+top y1l=h+oo; x1=.5[x3,x2];
+x3=3u; y3=.35h;
+y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r;
+bot y4r=-oo; x4=max(.4[lft x6r,rt x3r],lft x6r+.5flare-eps);
+y2=.8h; lft x2r=lft x7r=hround(w-2.5u-.5stem); %!!!
+bulb(4,5,6); % bulb
+filldraw stroke pulled_arc.e(4,3)
+ & super_arc.e(3,1) & super_arc.e(1,2); % left stem
+pos7(stem,180); y7=.6bar_height;
+filldraw stroke z2e--z7e; % right stem
+w:=full_w;
+pos15(hair,180); z15=z7;
+pos12(vair,-90); pos13(curve,0); pos14(vair,90);
+x12=x14=.5[x7,x13]; rt x13r=hround(w-u+.5curve);
+bot y12r=-oo; top y14r=1.2bar_height+oo; y13=y7;
+filldraw stroke pulled_arc.e(7,12) & pulled_arc.e(12,13)
+ & pulled_arc.e(13,14) & super_arc.e(14,15); % bowl
+penlabels(0,1,2,3,4,5,6,8,9,10,11,12,13,14,15); endchar;
+
+lhchar "Italic Cyrillic letter nje (soft n - looks like nb)";
+cyrchar(nje,6.5u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %"Weierstrass p"
+adjust_fit(if monospace:5u#,-.35u# else:6.5u#,0 fi); %ipart_adj&bowl_adj
+% soft sign part
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(u-.5stem); y1+.5stem=h+oo; y2=.6bar_height;
+filldraw circ_stroke z1e--z2e; % stem
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+% i half;
+_one:=6; _two:=7; _three:=8; _four:=9; _five:=10; _six:=11;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x2; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+penlabels(0,1,2,3,4,5,6,8,9,10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter lat_s -- dze";
+cyrchar(lat_s,5.25u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant-.5u#; %s
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter dzhe (hard dj)";
+cyrchar(dzhe,9.5u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(0,0);
+% ital_i;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+%%%
+% dzhe middle descender
+path p.r; numeric t; t=if hefty: 2.3 else: 2.2 fi;
+p.r=super_arc.r(3,4)...{up}z5r;
+_zero:=10; _one:=11; _two:=12; _three:=13;
+penpos[_zero](xvair,0); z[_zero]r=point t of p.r;
+penpos[_one](xvair,0); x[_one]=x[_zero]+2/3u; y[_one]=-1/3d;
+penpos[_two](2/3[bar,fudged.stem-2stem_corr],-90);
+x[_two]=.5[x[_one],x[_three]]; y[_two]=-.8d;
+penpos[_three](xvair,-180);
+x[_three]=x[_one]-5u; y[_three]=y[_two]+ypart the_tip_pos;
+pickup pencircle scaled 1;
+fill circ_stroke z[_three]e{down}
+ ...{right}z[_two]e...z[_one]e..{dir (360-the_pre_angle)}z[_zero]e; % middle descender
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter yat";
+cyrchar(yat,13u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %"Weierstrass p"
+adjust_fit(if monospace:-1.5u#,-.35u# else:0,0 fi); %lstem_adj&bowl_adj
+full_w:=w; w:=10u;
+% ital_yat;
+pickup fine.nib; x1=x2; pos2(stem,0);
+if monospace:
+ pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else:
+ x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4; ital_arch(2,3,4); % arch
+y5=.6bar_height; pos5(stem,0);
+filldraw stroke z4e--z5e; % right stem
+w:=full_w;
+pos6(stem,-180); pos10(hair,180); z6=z5; z10=z5;
+pos7(vair,-90); pos8(curve,0); pos9(vair,90);
+x7=x9=.5[x5,x8]; rt x8r=hround(w-u+.5curve);
+bot y7r=-oo; top y9r=1.2bar_height+oo; y8=y5;
+filldraw stroke pulled_arc.e(6,7) & pulled_arc.e(7,8)
+ & pulled_arc.e(8,9) & super_arc.e(9,10); % bowl
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter b_yus - big yus";
+cyrchar(b_yus,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %h
+adjust_fit(w#-5u#if monospace:-1.5u# fi,if monospace:-1.5u# else:0 fi);
+% ital_yus;
+% itop_yus;
+pickup fine.nib;
+penpos1(fudged.stem,0); penpos2(fudged.hair,0);
+penpos3(fudged.stem,0); penpos4(fudged.hair,0);
+w-x2r=.24w; x2-x3=x3-x1; y1=h; y2=y1; y3=y4=bar_height;
+x3l=hround(2.5u-.5stem); x3r=x4r;
+z0=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty:
+ y0:=bar_height+.5fine;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ ...{down}(x0-.5,y0)..(x0+.5,y0){up}...
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; % diagonals
+else:
+ fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi % diagonals
+penpos5(fudged.stem,0); x5=x3; y5-.5stem=-oo;
+fill circ_stroke z5e--z3e; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-vair)-eps;
+fill z1--z7--z6--z2--cycle; % upper bar
+% bowls
+pos8(vair,90); pos9(stem,0); pos10(vair,90); pos11(hair,180);
+pos12(stem,180); pos13(vair,90); pos14(hair,0); z8=z3;
+x11=hround(w+.5hair-eps)-.5hair; x11-x3=x3-x14; y11=y14=1/3x_height;
+lft x9l=hround(w-2.75u-.5stem); x9-x3=x3-x12; y9=y12=1/2y8;
+x10=hround(w-1.2u); x10-x3=x3-x13; bot y10l=bot y13l=-oo;
+filldraw stroke
+ if not monospace:z14e{down}... fi
+ z13e{right}...z12e{up}...z8e{right}...z9e{down}...z10e{right}
+ if not monospace:...{up}z11e fi; % left lower diagonal
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+lhchar "Italic Cyrillic letter izh - izhitsa (looks like v)";
+cyrchar(izh,9.5u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(.25u#,max(u#,.5u#+.5flare#)); %izhy_adj
+% ital_izh;
+numeric left_stem,right_stem,outer_jut,alpha,bulb_diam;
+left_stem=stem-stem_corr; bulb_diam=7/8[hair,flare];
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos4''(alpha*right_stem,0);
+penpos5(vair,90); penpos6(hair,0); penpos7(flare,0);
+x5=if serifs:.5[x4'',rt x6r] else: rt x6r fi; top y5r=h+oo;
+y4''=min(.9x_height,y5l-vair); z4''=whatever[z3,z4];
+rt x6r=hround(r-.5u-.5);
+y6=max(vround(top y5r-.5hair)-1-.5flare,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+cyrbulb(5,6,7); % bulb
+penpos1'(alpha*left_stem,0); y1'=3/4x_height; z1'=whatever[z1,z2];
+x10=l+letter_fit; x10:=hround(x10-.5hair)+.5hair; y10=2/3x_height;
+penpos9(vair,90); y9r=x_height+oo; x9=min(x1l-.5,x10+u);
+if y0>cap_notch_cut:
+ y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4''l...{right}z5r--z5l{left}
+ ...z4''r{z3-z4}--diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ pickup pencircle scaled1;
+ fill z0--z4''l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4''r
+ --diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ --cycle; fi % left and right diagonals
+pickup fine.nib;
+pos9'(vair,90); z9'=z9; pos10(hair,180);
+filldraw stroke z10e{up}...z9'e{right}; % hook
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter g_up - ghe upturn";
+cyrchar(g_up,9u#-.5width_adj#,asc_height#,0);
+italcorr x_height#*slant+.5stem#-u#; %tau
+adjust_fit(.5u#+serif_fit#,0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(3.5u-.5stem); top y1=x_height;
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y2=2/3desc_depth; bot y4r=-oo; y6-.5flare=vround.1desc_depth;
+x4=4/3u; lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z1e---z2e...{left}z4e; % stem
+bulb(4,5,6); % bulb
+% upper part
+pickup crisp.nib;
+pos7(vair,90); pos8(vair,90); pos9(flare,180); pos10(flare,180);
+x7=x1; top y7r=top y8r=x_height;
+rt x9l=rt x10l=w-.25u; x8+.25flare=lft x9r; y9=top y8r+.25flare;
+y10+.5flare=top y7r+beak; x8l:=rt x10l-(y9-top y8l);
+filldraw circ_stroke z10e{down}--z9e{down}...z8e{left}--z7e; % ital beak
+penlabels(0,1,2,3,4,5,6,7,8,9,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter ukr_i (i with umlaut)";
+cyrchar(ukr_i,5u#,lc_trema_height#,0);%
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#); %i
+adjust_fit(if monospace:u#,u# else: 0,0 fi); h:=x_height;
+pickup fine.nib; x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+% the accent
+lowercase_umlaut(0,0, 6,7,8,9);
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+if old_cyr:
+lhchar "Italic Cyrillic letter ng - ligature enghe";
+cyrcharmoving(ng);
+fi\\;
+
+iff not old_cyr:
+lhchar "Italic Cyrillic letter ng - ligature enghe";
+cyrchar(ng,10u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#; %tau
+adjust_fit(if monospace:-1.5u# else: 0 fi,max(2u#,u#+stem#));
+% ital_ng;
+pickup fine.nib; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace: pos2(stem,0); top y2=h;
+else: x0=0; hook_in(0,1,2); fi % opening hook
+y3-.5stem=-oo;
+filldraw circ_stroke z3e--z2e;
+x10=x3l; y10=y11=bar_height; pos10(vair,90); pos11(vair,90);
+pos6(stem,0); rt x7r=hround(w-2.5u+.5stem); top y6=h; x7=x6;
+% right_stem;
+_one:=7; _two:=8; _three:=9;
+if monospace:
+ pos[_three](vair,90); pos[_one](stem,0);
+ x[_three]=good.x .5[x[_one],w]; bot y[_three]l=0; y[_one]=1/3h;
+ filldraw stroke z[_one]e{down}...{right}z[_three]e; % terminal
+else:
+ x[_three]=w; hook_out([_one],[_two],[_three]); fi % opening hook
+z7'=z7; pos7'(stem,0);
+filldraw circ_stroke z7'e--z6e; x11=x6l;
+filldraw stroke z10e--z11e;
+% italic beak
+pickup fine.nib;
+pos12(stem,0); rt x12r=r-letter_fit if monospace:+.5stem else:-.25u fi;
+y12-.5stem=2/3x_height-.5fine;
+pos13(stem,0); pos14(vair,90); pos15(vair,90);
+x15=x6; top y15r=top y14r=x_height; x13=x12; y13=bot y14l-.25flare;
+x14+.25flare=lft x12l; x14r:=lft x12l-(top y14r-y13);
+filldraw circ_stroke z12e{up}--z13e{up}...z14e{left}--z15e; % ital_beak
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+lhchar "Italic Cyrillic letter otld - o tilded";
+cyrchar(otld,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+% ital_o;tld
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+%%%
+% oltilde;
+if (serifs=true) and (bar#<=.5curve#):
+ numeric bar[];
+ set_bar_axis;
+ x5r=x2l; x6r=x4l;
+ y5r=y6r=y2.bh; y5l=y6l=y1.bh; x5r=x5l; x6l=x6r;
+ bar2=2/3[bar,fudged.stem];
+ penpos7(bar2,45); z7=.5[z5l,z6l];
+ fill stroke z6e{-2,-1}..{-2,1}z7e..{-2,-1}z5e;
+else:
+ bar_stroke(x2l,x4l);
+fi
+%%%%%
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Cyrillic letter u_shrt - short u (as latin y)";
+cyrchar(u_shrt,if monospace:8.5u# else:9u#fi,
+ x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#; %y
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+h:=full_h; cbreve(.5w,0, 11,12,13,14,15,16,17);
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15,16,17); endchar;
+
+lhchar "Italic Cyrillic letter ukr_e - Ukrainian e (c with mid-line)";
+cyrchar(ukr_e,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-.5u# fi; %c+.5u
+adjust_fit(if monospace:0 else:-.35u#fi,0); %c
+% ital_ukre;
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-.5u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+pos7(vair,90); pos8(vair,90);
+y7=bar_height; rt x7=hround max(rt x2+1+eps,lft x0l-eps); x8=x3; y7=y8;
+filldraw stroke z7e--z8e;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+%WNCYR shape without serifs
+lhchar "Italic Cyrillic letter fita (looks like theta)";
+cyrchar(fita,8u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve);
+x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+bar_stroke(x2,x4); % bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Italic Cyrillic letter eps - epsilon";
+cyrchar(eps,if serifs:8u# else:7.5u# fi,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% ital_eps;
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90); pos7(curve,180);
+pos9(vair,270); pos3(vair,270); pos9'(vair,90); pos3'(vair,90);
+pos8(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-.25u))+eps;
+x5r=good.x w-eps; x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+lft x7r=hround(2u-.5curve); lft x8r=hround(1.5u-.5curve);
+bot y4r=-oo; y7=.5[y2,y3]; y5r=y8=.5[y3,y4]; y6=bar_height;
+x3=x2; rt x9=hround max(rt x2+1+eps,lft x0l-eps); y3=y9=bar_height;
+z9'=z9; z3'=z3;
+path p; p=z4{left}..(x5,15/16bar_height)..z6;
+filldraw stroke z9e{left}...super_arc.e(3,7) & super_arc.e(7,2); % lower arc
+filldraw stroke z9'e{left}...pulled_arc.e(3',8) & pulled_arc.e(8,4)
+ ...{direction 1 of p}z5e; % upper arc
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2coml.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2coml.mf
new file mode 100644
index 00000000000..fd047b31d23
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2coml.mf
@@ -0,0 +1,796 @@
+%
+% lgt2coml.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Cyrillic letters common for couple of encodings
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2 & Ko
+%
+% X2 T2A T2B T2C T2D X2S LH WNCYR
+%
+% tshe "62 b "a2 - - - - - "0e Tshe
+% dje "63 c "a3 - - - - - "0f Dje
+% lat_i "69 i - - - "a9 - "f7 "0c Latin letter I
+% lat_j "6a j - - - - - - "6a Je - Latin letter J
+% lje "6b k "a7 "a8 - - - - "09 Lje
+% nje "6d m "bb "b9 - - - - "08 Nje
+% lat_s "73 s "af - - "af - - "1e Latin letter S - Dze; zelo
+% dzhe "75 u "b6 - "b6 - - - "0a Dzhe
+% yat "78 x - - - "b3 - - "2b Yat
+% b_yus "79 y - - - "b8 - - - Big Yus
+% izh "7a z - - - "aa - - "1c Izhitsa
+% g_up "a0 "a0 - - - - "f3 - Ghe upturn
+% ukr_i "a8 "a8 - - "a8 - "f9 - Ukrainian i - latin i with umlaut (goes first for LH font)
+% ng "ae "ae "ae - - "xx - - Ligature en-ghe
+% otld "b0 "b0 "b0 "b0 - - "xx - O tilded & Variant Old Cyrillic Fita (goes first for wncoding)
+% u_shrt "b2 "b2 "b2 - - - "fb - Short U (goes first for LH font)
+% ukr_e "b9 "b9 - - "b9 - "f5 "0d Ukrainian e
+% eps "bb - - "bb - "bb - - - Epsilon; Narrow E
+% fita - - - - "b0 - - "1d Old Slav Fita
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Cyrillic letter tshe (soft t - looks like barred h)";
+cyrchar(tshe,10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+% latin h
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs:
+ sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+% hcross
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+top y5r=top y6r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+x5=hround 1/3u-serif_fit; x6=x4;
+filldraw stroke z5e--z6e; % cross bar
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter dje (soft dj - barred h with tail)";
+cyrchar(dje,9.5u#,asc_height#,desc_depth#);
+italcorr .7x_height#*slant; %o
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos3(stem,0);
+pos1'(stem',0); pos2'(stem',0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; rt x3r=hround(w-u);
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+% h_stroke_part
+y3=1/3[bar_height,x_height];
+penpos0(x2r-x2l,0); x0=x2; y0=1/8[bar_height,x_height];
+filldraw stroke z0e--z2e; % thicken the lower left stem
+penpos2''(min(rt x2r-lft x2l,thin_join)-fine,180);
+pickup fine.nib; rt x2''l=tiny.rt x2r; y2''=y0;
+pos4(vair,90); pos3'(x3r-x3l+tiny,0); z3'=z3;
+x4=.5[rt x2''l,rt x3'r]; top y4r=x_height+oo;
+(x,y4l)=whatever[z4r,z2''l]; x4l:=x;
+filldraw stroke z2''e{up}...{right}z4e
+ & {{interim superness:=hein_super; super_arc.e(4,3')}}; % arch
+% h_tail
+pos5(stem,0); pos6(max(fine.breadth,.6[thin_join,vair]),-90);
+x5=x3; y5=bar_height; lft x6r=rt x2r; %even with right edge of stem;
+bot y6r=-d;
+filldraw stroke z3'e--z5e & pulled_arc.e(5,6);
+if serifs:
+ sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+% hcross
+pickup crisp.nib; pos7(bar,90); pos8(bar,90);
+top y7r=top y8r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+x7=hround 1/3u-serif_fit; x8=hround(w-u);
+filldraw stroke z7e--z8e; % cross bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter lat_i - Ukrainian i (as latin i)";
+cyrchar(lat_i,5u#,min(asc_height#,10/7x_height#+.5idot_diam#),0);%!!!from ec
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;%!!!from ec
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);%!!!from ec
+if serifs:
+ x3r=max(x1r,x1+.5(idot_diam-tiny)-.2jut)
+else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter lat_j (as latin j)";
+cyrchar(lat_j,5.5u#,min(asc_height#,10/7x_height#+.5idot_diam#),desc_depth#);%!!!from ec
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs:+min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);%!!!from ec
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs:
+ sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else:
+ pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter lje (soft l)";
+cyrchar(lje,10u# % if not serifs:+.5width_adj# fi % dl_width;n_width
+ ,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit# if not serifs:+.5(stem#-u#) fi, %dl_adj
+ 3.75u# if serifs:-.5width_adj# fi);%lsftsn_adj;lsftsnwd-.25u-.5width_adj
+% lower_l;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,bot_vair,bulb_diam,left_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+bot_vair=Vround(.5[vair,light_hair]);
+bulb_diam=hround 7/8[hair,flare];
+left_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (w+serif_fit-rt x2r-.5u) fi;
+x3=1/3[w-rt x1r-(1/8left_jut),rt x1r] if not serifs: -.5(stem-u) fi +eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(hair,-180);
+ top y3=h; y6-.5bulb_diam=.12desc_depth-eps; z6r=z5r;
+ lft x6r=l+letter_fit+hround(.35u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]);
+ bot y4r=-1.5oo-eps; {{less_tense; bulb(4,5,6)}}; %bulb
+ filldraw stroke z4e{right}
+ ..controls (min(15/16[x4,x3],max(x4,lft x6r+1.75bulb_diam))+(x3e-x3),y4e)
+ and (x3e,max(y4l,min(y6-.5,1/3h+eps))+1/3(y4e-y4))..{up}z3e; % left tail
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e; % upper bar
+ pickup fine.nib; pos3(light_hair,0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=.67[x3l,x5];
+ lft x5=l+letter_fit+hround(.35u-.5); bot y4r=bot y5r; y3=y3';
+ filldraw stroke z3e{down}..controls (x3e,y5e+.35h)
+ and (min(7/8[x4e,x3e],x4e+2light_hair)+eps,y4e-eps)..{left}z4e--z5e; fi % left stem
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5jut);
+ save slab; slab:=vair; % lower.slab
+ nodish_serif(2,1,a,1/3,jut,b,1/3,.5jut); %!!! %lower right serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,jut); %upper right serif
+ nodish_serif(3,0,e,1/3,1.05jut,f,1/3,inner_jut); %upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% now the b part
+w:=w+3.75u if serifs:-.5width_adj fi;%lsftsnwd-.25u-.5width_adj
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter nje (soft n - looks like Hb)";
+cyrchar(nje,10u# if not serifs:+.5width_adj# fi,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#,3.75u# if serifs:-.5width_adj# fi);%lsftsn_adj;lsftsnwd-.25u-.5width_adj
+% lower_n;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+bar_stroke(x1,x3); % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,.5jut); fi %!!! % lower right serif
+%%%%%
+% now the b part
+w:=w+3.75u if serifs:-.5width_adj fi;%lsftsnwd-.25u-.5width_adj
+% lsftsn_bowl(4);
+_zero:=4;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter lat_s -- dze";
+cyrchar(lat_s,7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs: vair else: Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs:
+ pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else:
+ pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+lhchar "Lowercase Cyrillic letter dzhe (hard dj)";
+cyrchar(dzhe,10u# if not serifs:+.5width_adj# fi,x_height#,sbeak#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_c;tse_part
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,c,1/3,jut,d,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,g,1/3,inner_jut,h,1/3,jut); % upper right serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,a,1/3,jut,b,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+ filldraw z.b0--z.b1--z.e1--z.e0--cycle; % lower inter_serif bar
+else:
+ pos1'(vair,90); pos3'(vair,90);
+ lft x1'= lft x1l; bot y1'l=0; rt x3'=rt x3r; y3'=y1';
+ filldraw stroke z1'e--z3'e; fi % lower bar
+% lowercase middle descender
+x5=.5[x2,x4]; bot y5=0; x6=x5; bot y6=-d;
+if hefty:
+ pos5(max(tiny.breadth,fudged.stem if hefty:-4stem_corr fi),0);
+ pos6(max(tiny.breadth,fudged.stem if hefty:-4stem_corr fi),0);
+ filldraw stroke z5e--z6e;
+else: numeric light_hair;
+ light_hair=min(fudged.stem,fudged.hair if hefty:-4stem_corr fi);
+ pos5(light_hair+jut,0); pos6(light_hair,0);
+ filldraw z5l{right}... 1/3[.5[z5l,z6l],(x6l,y5l)]{z6l-z5l}...{down}z6l
+ --z6r{up}...1/3[.5[z6r,z5r],(x6r,y5r)]{z5r-z6r}...{right}z5r
+ --cycle; % miggle stem
+fi
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter yat";
+cyrchar(yat,9u#,x_height#+acc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(if serifs: serif_fit# else: 0 fi,if monospace:.5u# else:0 fi);
+full_h:=h; h:=x_height;
+% lower_yat;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem);
+top y1=x_height+ if serifs: 1.5u else: 2u fi; bot y2=0;
+filldraw stroke z1e--z2e; % body of stem
+if serifs: save slab; slab:=vair; % lower.slab
+ nodish_serif(2,1,a,1/3,jut,b,1/3,.5jut) ; fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+h:=full_h;
+y10=h;%y1+2jut;
+if hefty:
+ filldraw z1l--(x1l,y10)--(x1r,y10)--z1r--cycle; % stem
+else: x10=x1l-jut; x11=x1r+jut; y10=y11;
+ filldraw z1l--z10--z1r--cycle;
+ filldraw z1l--z11--z1r--cycle; fi % swallow
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+lft x8=hround1/3u if serifs:-serif_fit fi; x9=x1r+2.5u;
+top y8r=top y9r=vround x_height+eps;
+filldraw stroke z8e--z9e; % cross bar
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter b_yus - big yus (`roman')";
+cyrchar(b_yus,15u#,x_height#,0);
+adjust_fit(serif_fit#,serif_fit#);
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal
+% lowerr_yus;
+% ltop_yus;
+set_bar_axis; numeric stem[];
+stem1=fudged.stem-3stem_corr; stem2=min(stem1,fudged.hair);
+penpos1(stem1,0); penpos2(stem2,0); penpos3(stem1,0); penpos4(stem2,0);
+x1l=w-x2r=hround(.2w-.5tiny-.5)-eps; y1=y2=h; y3=y4=3/5[y1.bh,y2.bh];
+x3l=hround(.5w-.5stem1); x3r=x4r;
+z0=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty: y0:=y2.bh;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ ...{down}(x0-.5,y0)..(x0+.5,y0){up}...
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; % diagonals
+else: fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi % diagonals
+penpos5(stem1,0); x5=x3; y5=0;
+fill z3l--diag_end(3l,5l,1,1,5r,3r)--z3r--cycle; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-vair)-eps;
+fill z1--z7--z6--z2--cycle; % upper bar
+% lyus_rbowl;
+ numeric stem[],alpha[],right_jut;
+ right_jut=if serifs:.6jut else:.4tiny fi;
+ y10l=y1.bh; y10r=y2.bh; x10l=x10r=x3; y9=y12=min(bot y10l-.5,.85y10l);
+ rt x8r=w-lft x11l=hround(r-letter_fit-.3u-right_jut); bot y8=bot y11=y5;
+ stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+ alpha2=diag_ratio(1,.5(stem2-tiny),h-y8,x8r-x3);
+ penpos8(alpha2*(stem2-tiny),0); penpos11(alpha2*(stem2-tiny),0);
+ forsuffixes $=l,r: y8'$=0; y11'$=0; endfor
+ z8'r=z8r+penoffset (x3,h)-z8 of currentpen+whatever*((x3,h)-z8);
+ z8'l=z8l+penoffset z8-(x3,h) of currentpen+whatever*((x3,h)-z8);
+ z11'r=z11r+penoffset (x3,h)-z11 of currentpen+whatever*((x3,h)-z11);
+ z11'l=z11l+penoffset z11-(x3,h) of currentpen+whatever*((x3,h)-z11);
+ z8'=.5[z8'l,z8'r]; z11'=.5[z11'l,z11'r];
+ z9=z8'+whatever*((x3,h)-z8); z12=z11'+whatever*((x3,h)-z11);
+ penpos9(stem-2stem_corr,0); penpos12(stem-2stem_corr,0);
+ fill z10l{right}...{z8'l-z9l}z9l--diag_end(9l,8'l,.5,1,8'r,9r)
+ --z9r{z9r-z8'r}...{left}z10r--cycle; % right diagonal
+ fill z10r{left}...{z11'l-z12l}z12l--diag_end(12l,11'l,1,.5,11'r,12r)
+ --z12r{z12r-z11'r}...{right}z10l--cycle; % left diagonal
+%%
+if serifs:
+ numeric inner_jut; prime_points_inside(5,3);
+ if rt x5r+jut+.5u+1<=lft x8l-jut: inner_jut=jut;
+ else: rt x5r+jut+.5u+1=lft x8l-inner_jut; fi
+ slab:=vair; % lower.slab
+ dish_serif(11,12,a,1/3,right_jut,b,1/2,inner_jut)(dark); % lower diagonal serif
+ dish_serif(8,9,e,1/2,inner_jut,f,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(5',3,c,1/3,.75jut,d,1/3,.75jut); fi % lower middle serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Lowercase Cyrillic letter izh - izhitsa (looks like V)";
+cyrchar(izh,if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+.5u#fi,
+ if serifs: max(.75u#,.25u#+.5flare#) else:max(0,.5stem#-.5u#) fi); % lizh_adj
+% lower_izh;
+numeric left_stem,right_stem,outer_jut,alpha,bulb_diam;
+left_stem=stem-stem_corr; bulb_diam=7/8[hair,flare];
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos4'(alpha*right_stem,0); penpos5(vair,90);
+x5=if serifs: .5[x4',x6r] else:x6r fi; y5r=h+oo;
+x6r=hround(r-.35u);
+y6=max(vround(y5r-.25tiny-.5flare),
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare)); %zh bulb h
+z4'=whatever[z3,z4]; y4'=min(y6-.5hair,.9x_height)-eps;
+if serifs: penpos6(hair,0); penpos7(flare,0);
+ cyrbulb(5,6,7); fi % bulb
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4'l...{right}
+ if serifs: z5r--z5l
+ else:
+ (.5[x4,x4r],y5r)--(fine.lft x5r,y5r)..(x5r,fine.bot y5r)--
+ (x5l,fine.top y5l)..(fine.lft x5l,y5l) fi
+ {left}...z4'r{z3-z4}
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--z4'l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4'r
+ --diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2);
+ if rt x1'r+jut+.5u+1<=lft x4l-jut+.5tiny: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4l-inner_jut+.5tiny; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); fi % upper left serif
+%%%%%
+penlabels(0,1,2,3,4,4',5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter g_up - ghe upturn";
+cyrchar(g_up,8u#-.5width_adj#,x_height#+sbeak#,0);
+italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u#
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ 0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=x_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup if serifs: crisp.nib; else: tiny.nib; fi
+pos3(vair,90); pos4(hair,0);
+top y3r=x_height; x3=x1; rt x4r=hround(w-.45u);
+y4=vround(y3r+beak/1.4)+eps;
+if serifs:
+% armup(3,4,e,beak_darkness,2/3beak_jut);% upper arm and beak
+ _one:=7; _two:=8; _three:=9;
+ x[_one]=good.x(x4r-2/3beak_jut); y[_one]=y3l; y[_two]=y3r;
+ z[_two]=z4l-whatever*(z[_one]-z4r); z[_three]=.5[z3r,z[_two]];
+ filldraw z4l{z[_two]-z4l}...beak_darkness[z[_two],.5[z[_three],z4l] ]...z[_three]
+ ---z3r--z3l--z[_one]--z4r--cycle; % arm and beak
+%%
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); % lower serif
+else:
+ pickup tiny.nib; pos5(vair,90);
+ rt x5=crisp.rt x4r; y5=y3;
+ filldraw stroke z3e--z5e; % horisontal
+ pickup fine.nib; pos6(slab,0); pos6'(slab,0);
+ rt x6r=crisp.rt x4r; x6'=x6; y6'=y5l; y6=y5l+sbeak;
+ filldraw stroke z6e--z6'e; fi % vertical
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter ukr_i (latin i with umlaut)";
+cyrchar(ukr_i,5u#,lc_trema_height#,0);
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+h:=x_height; pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); %lower.slab
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+% the accent
+lowercase_umlaut(0,0, 3,4,5,6);
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter ng - ligature enghe";
+cyrchar(ng,10u# if not serifs:+.5width_adj# fi,x_height#,0);
+italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u#
+adjust_fit(serif_fit#,2u#-.5width_adj#); % beak_adj
+% lower_n;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+bar_stroke(x1,x3); % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,.5jut); %!!! % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+% (old) lower right beak(4);
+if (serifs=false) and (old_cyr=true):
+ pickup tiny.nib;
+ pos7(vair,90); top y7r=h; x7=x4;
+ pos8(vair,90); y8=y7; rt x8r=hround(r-.45u);
+ filldraw stroke z7e--z8e; % horisontal
+ pickup fine.nib; pos9(slab,0); pos10(slab,0);
+ rt x9r=rt x10r=tiny.rt x8r; y9=y8r; bot y10=y8l-.7sbeak;
+ filldraw stroke z9e--z10e; %vertical
+else:
+ pickup crisp.nib;
+ pos7(vair,90); top y7r=h; x7=x4; rt x8r=hround(r-.45u);
+ pos8(hair,0); y8=good.y(y7l-beak/1.4)-eps;
+ arm(7,8,i,beak_darkness,.4beak_jut); % upper arm and beak
+fi
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter otld - o tilded";
+cyrchar(otld,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_o;tld
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%%%
+% oltilde;
+if (serifs=true) and (bar#<=.5curve#):
+ numeric bar[];
+ set_bar_axis;
+ x5r=x2l; x6r=x4l;
+ y5r=y6r=y2.bh; y5l=y6l=y1.bh; x5r=x5l; x6l=x6r;
+ bar2=2/3[bar,fudged.stem];
+ penpos7(bar2,45); z7=.5[z5l,z6l];
+ fill stroke z6e{-2,-1}..{-2,1}z7e..{-2,-1}z5e;
+else:
+ bar_stroke(x2,x4);
+fi
+%%%%%
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter u_shrt - short u";
+cyrchar(u_shrt,if serifs:9.5u# else:9u# fi,
+ x_height#+acc_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+full_h:=h; h:=x_height;
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+% the accent
+h:=full_h; cbreve(.5[x1,x4],0, 10,11,12,13,14,15,16);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16); endchar;
+
+lhchar "Lowercase Cyrillic letter ukr_e - Ukrainian e (C with mid-line)";
+cyrchar(ukr_e,8u#,x_height#,0); % eng
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: -.1u#,0 fi);
+% lower_ukre;
+set_bar_axis;
+pickup fine.nib; pos2(vair',90); pos3(curve,180); pos4(vair',270);
+x2=x4=(.5(w+u)); top y2r=vround(h+1.5oo); bot y4r=-oo;
+lft x3r=(hround max(.6u,1.35u-.5curve)); y3=.5h;
+if serifs:
+ pos1(hair,0); pos5(hair,360);
+ y1=min(y2.bh+.75flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ rt x1r=rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],0); x6r=x1r; top y6=h+oo;
+ x1r-x1'=1.5curve; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,5(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos1(4/7[vair',flare],80); pos5(.6[vair',flare],275);
+ rt x1r=hround(w-.6u);
+ top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%
+% lukre_bar;
+if (serifs=true) and (bar#<=.5curve#):
+ x7r=x3l; x8r=min(lft x1l-.5hair,0.85[x3l,x1l]);
+ y7l=y8l=y1.bh; y7r=y8r=y2.bh; x7l=x7r; x8l=x8r;
+ numeric bar[];
+ bar2=7/8[bar,fudged.stem-2stem_corr];
+ penpos9(bar2,45); z9=.575[z7l,z8l];
+ fill circ_stroke z8e{-2,-1}..{-2,1}z9e..{-2,-1}z7e; % curve /\/
+else:
+ bar_stroke(x3l,min(lft x1l-.5hair,0.85[x3l,x1l])); % bar --
+fi
+%%%%%
+penlabels(1,1',2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter eps - epsilon";
+cyrchar(eps,if serifs:8u# else:7.5u# fi,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_eps;
+numeric right_curve; right_curve=curve-stem_corr; pickup fine.nib;
+penpos2(vair,90); penpos3(right_curve-stem_corr,180);
+penpos7(right_curve,180); penpos8(vair',-90);
+y2r=vround(h+1.5oo); x2=x6l=x6r=x8=.5[w-u,x7]; x7r=hround.6u;
+x3r=max(lft x7r+1,hround .8u); y3=.5[y4l,y2l]-eps; y8r=-oo;
+set_bar_axis; y4l=y5r=y6r=y2.bh; y6l=y5l=y4r=y1.bh; y5=y6=y0.bh;
+pickup fine.nib; z2'=z2; pos2'(vair,90); pos8'(vair',-90); z8'=z8;
+if serifs:
+ pos1(hair,0); pos9(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.6u); bulb(2',1,0); % bulb
+ rt x9r=hround(w-.5u); y9=max(good.y(.5bar_height-.9),y8l+vair');
+ filldraw stroke z8'e{right}..tension.9 and 1..{x9-x8,5(y9-y8)}z9e; % lower bowl
+else:
+ pos1(4/7[vair',flare],80); pos9(.6[vair',flare],275);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2',1,right,.8,4); % upper terminal
+ rt x9r=hround(w-.5u);
+ y9r=good.y(y9r+1/3bar_height-y9); y9l:=good.y y9l; x9l:=good.x x9l;
+ forsuffixes e=l,r: path p.e; p.e=z8'e{right}..tension .9 and 1..z9e;
+ if angle direction 1 of p.e>75:
+ p.e:=z8'e{right}..tension atleast.9 and 1..{dir 75}z9e; fi endfor
+ filldraw stroke p.e; fi % arc and lower terminal
+rt x5l=rt x5r=max(min(w-2.2u,
+ lft x1l- if serifs:flare else:.5vair fi)-eps,rt x6l+fine);
+y7=.5[y6l,y8l]; x4l=x4r=1/3[x5l,x3l];
+(x,y8l)=whatever[z8r,z9l]; x8l:=min(x,x8l+.5u);
+if not serifs:
+ x4r:=max(x5r,x4r-u); x6r:=max(x5r,x6r-.5u); fi
+fill stroke
+ {{interim superness:=hein_super; super_arc.e(2,3)}}
+ & pulled_super_arc.e(3,4)(.7superpull); % upper bowl
+{{interim superness:=more_super;
+ fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)}}; % lower bowl
+fill
+ z5l{right}
+ if bot y5r>top y5l:..(rt x5l,top y5l)---(rt x5r,bot y5r)..
+ else: ... fi
+ {left}z5r--cycle; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+% WNCYR shape without serifs
+lhchar "Lowercase Cyrillic letter fita (looks like Theta)";
+cyrchar(fita,if serifs: 8u# else: 9u# fi,x_height#,0);
+italcorr .7x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=hround(curve-2stem_corr);
+penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+% hstroke
+bar_stroke(x2,x4); % bar
+penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2comu.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2comu.mf
new file mode 100644
index 00000000000..5b03fcbce65
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2comu.mf
@@ -0,0 +1,875 @@
+%
+% lgt2comu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Cyrillic letters common for couple of encodings
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2 & Ko
+%
+% X2 T2A T2B T2C T2D X2S LH WNCYR
+%
+% TSHE "42 B "82 - - - - - "06 Tshe
+% DJE "43 C "83 - - - - - "07 Dje
+% LAT_I "49 I - - - "89 - "f6 "04 Latin letter I
+% LAT_J "4a J - - - - - - "4a Je - Latin letter J
+% LJE "4b K !"87 "88 - - - - "01 Lje
+% NJE "4d M !"9b "99 - - - - "00 Nje
+% LAT_S "53 S "8f - - "8f - - "16 Dze - Latin letter S; ZELO
+% DZHE "55 U "96 - "96 - - - "02 Dzhe
+% YAT "58 X - - - "93 - - "23 Yat
+% B_YUS "59 Y - - - "97 - - - Big Yus
+% IZH "5a Z - - - "8a - - "14 Izhitsa
+% G_up "80 "80 - - - - "f2 - Ghe upturn
+% UKR_I "88 "88 - - - - "f8 - Ukrainian i
+% NG "8e "8e "8e - - "xx - - Ligature en-ghe; OLD SOFT N
+% OTLD "90 "90 "90 "90 - "xx - - O tilded & Variant Old Cyrillic Fita
+% U_shrt "92 "92 "92 - - - "fa - Short U
+% UKR_E "99 "99 - - "99 "xx "f4 - Ukrainian e; EST
+% EPS "9b - - "9b - "9b - - - Epsilon; Narrow E
+% FITA - - - - - "90 - - "15 Old Slav Fita
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Uppercase Cyrillic letter TSHE (Soft T - like Th)";
+cyrchar(TSHE,13u#,cap_height#,0);
+if is_small_cap: getcharcode(tshe); fi
+italcorr cap_height#*slant-beak_jut#-u#; %Gamma-.75u#
+adjust_fit(0,.75u#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem-u)-eps; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-1.65u); y4=good.y(y3l-.7beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4-u; y5=good.y(y3l-beak)-eps;
+arm(3,5,f,beak_darkness,-beak_jut); % left arm and beak
+% h_part;
+pickup tiny.nib; pos6(stem,0); x6=hround(w-2.5u+.5stem);
+h_stroke(2,q,6,7);
+dish_serif(7,6,g,1/3,.75cap_jut,h,1/3,.75cap_jut);
+if serifs:
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.75cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Uppercase Cyrillic letter DJE (Soft DJ - Th with a tail)";
+cyrchar(DJE,13u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(dje); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,2.5u#);
+if odd(cap_stem-w): change_width; fi % symmetric
+% upper_dje;
+full_h:=h; h:=x_height;
+% h_stroke_part+bulb
+pickup tiny.nib; lft x1l=lft x2l=hround(.5w-.5cap_stem)-eps;
+bot y2=0; pos2(cap_stem,0);
+% upperh_stroke
+penpos2''(min(rt x2r-lft x2l,thin_join)-fine,180);
+pickup fine.nib; pos3(curve,0); pos4(vair,90);
+y3=1/3[bar_height,x_height];
+if serifs:
+ x3=r-letter_fit-hround max(1.5u,2.5u-.5curve)+eps; %.5u right
+ else: rt x3r=r-letter_fit-hround.65u+eps; fi
+rt x2''l=tiny.rt x2r; y2''=1/8[bar_height,x_height];
+x4=.5[rt x2''l,rt x3r]; top y4r=x_height+o;
+(x,y4l)=whatever[z4r,z2''l]; x4l:=x;
+filldraw stroke z2''e{up}...{right}z4e
+ & {{interim superness:=hein_super; super_arc.e(4,3)}}; % arch
+%%%%%
+% tail
+pos5(curve,0); pos6(vair,-90);
+x5=x3; y5=2/3[bot y6r,y3]; bot y6r=-o;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos7(hair,-180); pos7'(bulb_diam,-180);
+ lft x7r=min(rt x2r+1.5u,lft x3r-bulb_diam-eps);
+ x6=max(lft x7r+.5bulb_diam,.4[lft x7r,rt x5r]);
+ y7=1/6cap_height-max(0,flare-stem-2vair_corr-.5); z7r=z7'r;
+ cyrbulb(6,7,7'); % bulb
+else:
+ pos7(flare,-105);
+ x6=.4[lft x7r,rt x5r];
+ lft x7r=rt x2r+1.25u+eps; bot y7r=0;
+ filldraw stroke term.e(6,7,left,.8,4); fi
+filldraw stroke z3e--z5e{down}...pulled_arc.e(5,6);
+% T part
+h:=full_h; pickup tiny.nib; pos1(cap_stem,0); top y1=h;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos8(slab,90); pos9(hair,0);
+top y8r=h; x8=x1; rt x9r=hround(w-.65u); y9=good.y(y8l-.7beak)-eps;
+arm(8,9,e,beak_darkness,.7beak_jut); % right arm and beak
+pos10(hair,180); x10=w-x9; y10=good.y(y8l-beak)-eps;
+arm(8,10,f,beak_darkness,-beak_jut); % left arm and beak
+if serifs:
+ dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,.5cap_jut); % lower serif
+ nodish_serif(1,2,aa,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter LAT_I - Latin I (as latin I)";
+cyrchar(LAT_I,max(6u#,4u#+cap_stem#),cap_height#,0);
+if is_small_cap: getcharcode(lat_i); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_ukri; - borrowed from ec
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+%%%%%
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter LAT_J (as Latin J)";
+cyrchar(LAT_J,9u#,cap_height#,0);
+if is_small_cap: getcharcode(lat_j); fi
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e & super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+penlabels(1,2,3,4,5); endchar;
+
+lhchar "Uppercase Cyrillic letter UKR_I (latin I with umlaut)";
+cyrchar(UKR_I,max(6u#,4u#+cap_stem#),cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(ukr_i); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); h:=cap_height;
+% upper_ukri; - borrowed from ec
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+%%%%%
+% the accent
+uppercase_umlaut(0,0, 9,10,11,12);
+penlabels(1,2,3,4,5,6,7,8, 9,10,11,12); endchar;
+
+lhchar "Uppercase Cyrillic letter LJE (Soft L)";
+cyrchar(LJE,13.5u#,cap_height#,0); % DL_width:N_width
+if is_small_cap: getcharcode(lje); fi;
+italcorr .52*.7cap_height#*slant-.5u#; % D*.52h
+adjust_fit(cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi, %DL_adj
+ 5.75u#-.5width_adj#);% usftsn_adj;usftsnwd-.25u-.5width_adj
+% upper_l;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+numeric light_hair,bot_vair,left_jut;
+light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi);
+left_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit-rt x2r-.65u) fi;
+bot_vair=Vround(.5[vair,light_hair]);
+x3=1/3[w-rt x1r-(1/6left_jut),rt x1r] if not serifs:-.5(cap_stem-u) fi+eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(cap_hair,-180);
+ top y3=h; y6=1/6h-max(0,flare-stem-2vair_corr-.5); z6r=z5r;
+ lft x6r=l+letter_fit+hround(.5u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]); bot y4r=-o;
+ filldraw stroke z4e{right}..
+ controls (min(15/16[x4,x3],max(x4,lft x6r+2flare))+(x3e-x3)+eps,y4e)
+ and (x3e,good.y(min(y6-.5,1/3h)+1/3(y4e-y4))-eps)..z3e; % left tail
+ {{less_tense; bulb(4,5,6)}};
+else:
+ pos3'(slab,90); pos1'(slab,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e;
+ pickup fine.nib; pos3(max(fine.breadth,light_hair),0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=2/3[x3l,x5r]; lft x5=l+letter_fit+hround(.35u-.5);
+ bot y4r=bot y5r; y3=y3'; x4l:=.25[x4,x5];
+ path p;
+ p=stroke z3{down}
+ ..controls (x3,y5+.35h-eps) and (min(7/8[x4,x3],x5+2.5light_hair+.5u),y4)
+ ..{left}z4--z5;
+ z6=point .35 of p;
+ pos6(max(fine.breadth,7/8[bot_vair,light_hair]),angle(direction .35 of p)+90);
+ filldraw stroke z3e{down}...z6e{direction .35 of p}...{left}z4e--z5e; fi % arc
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5cap_jut);
+ nodish_serif(2,1,a,1/3,cap_jut,b,1/3,.5cap_jut); %!!! % lower right serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); %upper right serif
+ nodish_serif(3,0,e,1/3,1.05cap_jut,f,1/3,inner_jut); %upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% now the b part
+w:=w+5.75u-.5width_adj;%usftsnwd-.5u-.5width_adj
+% usftsn_bowl(2);
+_zero:=2;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Uppercase Cyrillic letter NJE (Soft N - looks like Hb)";
+cyrchar(NJE,13.5u#,cap_height#,0);
+if is_small_cap: getcharcode(nje); fi;
+italcorr .52*.7cap_height#*slant-.5u#; % D*.52h
+adjust_fit(cap_serif_fit#,5.75u#-.5width_adj#);% usftsn_adj;usftsnwd-.25u-.5width_adj
+% upper_n;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,.5cap_jut); fi %!!!% lower right serif
+%%%%%
+% now the b part
+w:=w+5.75u-.5width_adj;%usftsnwd-.25u-.5width_adj
+% usftsn_bowl(4);
+_zero:=4;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Uppercase Cyrillic letter LAT_S - DZE";
+cyrchar(LAT_S,10u#,cap_height#,0);
+if is_small_cap: getcharcode(lat_s); fi
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs:
+ pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ %bot y1=good.y(vround 2/3h+1-eps); top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else:
+ pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter DZHE (Hard DJ)";
+cyrchar(DZHE,13.5u#,cap_height#,cap_sbeak#); % N_width;TSE
+if is_small_cap: getcharcode(dzhe); fi;
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_c;Tse_part;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric inner_jut,arm_thickness;
+arm_thickness=vround(slab+vair_corr);
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,c,1/3,cap_jut,d,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,g,1/3,inner_jut,h,1/3,cap_jut); % upper right serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ nodish_serif(2,1,a,1/3,cap_jut,b,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,e,1/3,inner_jut,f,1/3,cap_jut); % lower right serif
+ filldraw z.b0--z.b1--z.e1--z.e0--cycle; % lower inter_serif bar
+else:
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ lft x1'= lft x1l; bot y1'l=0; pos1'(slab,90);
+ rt x3'=rt x3r; y3'=y1'; pos3'(slab,90);
+ filldraw stroke z1'e--z3'e; fi % lower bar
+% uppercase middle descender
+x5=.5[x2,x4]; bot y5=0; x6=x5; bot y6=-d;
+if hefty:
+ pos5(max(tiny.breadth,fudged.cap_stem if hefty:-4stem_corr fi),0);
+ pos6(max(tiny.breadth,fudged.cap_stem if hefty:-4stem_corr fi),0);
+ filldraw stroke z5e--z6e;
+else:
+ numeric light_hair;
+ light_hair=min(fudged.stem,fudged.hair if hefty:-4stem_corr fi);
+ pos5(light_hair+cap_jut,0); pos6(light_hair,0);
+ filldraw z5l{right}... 1/3[.5[z5l,z6l],(x6l,y5l)]{z6l-z5l}...{down}z6l
+ --z6r{up}...1/3[.5[z6r,z5r],(x6r,y5r)]{z5r-z6r}...{right}z5r
+ --cycle; % miggle stem
+fi
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter YAT";
+cyrchar(YAT,12.5u#,body_height#,0);
+if is_small_cap: getcharcode(yat); fi
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(2u#+cap_serif_fit#,0);
+% upper_yat;
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.5[vair,cap_band];
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+full_h:=h; h:=cap_height;
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+h:=full_h;
+% yat beaks
+pickup crisp.nib; pos8(slab,90); pos9(hair,0);
+top y8r=vround .85h; x8=x1; rt x9r=hround(w-2.65u); y9=good.y(y8l-2/3beak)-eps;
+arm(8,9,m,beak_darkness,2/3beak_jut); % right arm and beak
+pos10(hair,180); x10=w-x9-4u; y10=y9;
+arm(8,10,p,beak_darkness,-2/3beak_jut); % left arm and beak
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter B_YUS - BIG YUS (`roman')";
+cyrchar(B_YUS,18u#,cap_height#,0);
+if is_small_cap: getcharcode(b_yus); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+if odd(fudged.cap_stem-w): change_width; fi % symmetric & all three equal
+% upperr_yus;
+% top_Yus;
+numeric stem[];
+stem1=fudged.cap_stem if hefty:-3stem_corr fi;
+stem2=min(stem1,cap_hair if hefty:-2stem_corr fi);
+penpos1(stem1,0); penpos2(stem2,0); penpos3(stem1,0); penpos4(stem2,0);
+x1l=w-x2r=.2w; y1=h; y2=y1; y3=y4=.52h;
+x3l=hround(.5w-.5stem1); x3r=x4r;
+z0'=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty:
+ numeric lower_notch; lower_notch=y3+cap_notch_cut;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ if y0'<=lower_notch: ..{z3r-z1r}z0'{z2l-z4l}..
+ else: ...{down}(x0'+.5,lower_notch)--(x0'-.5,lower_notch){up}... fi
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; %v
+else:
+ fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0'--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi %v
+penpos5(stem1,0); x5=x3; y5=0;
+fill z3l--diag_end(3l,5l,1,1,5r,3r)--z3r--cycle; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-slab)-eps;
+fill z1--z7--z6--z2--cycle; % upper bar
+% Yus_rbowl;
+pickup tiny.nib; numeric stem[],alpha[],right_jut,middle_weight;
+right_jut=.6cap_jut; middle_weight=cap_bar;
+penpos10(middle_weight,90);
+y10r=y3+.5min(cap_bar,cap_notch_cut); x10=x3; y9=y12=.8y10;
+rt x8r=w-lft x11l=hround(r-letter_fit-.3u-right_jut); bot y8=bot y11=y5;
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+alpha2=diag_ratio(1,.5(stem2-tiny),h-y8,x8r-x3);
+penpos8(alpha2*(stem2-tiny),0); penpos11(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y8'$=0; y11'$=0; endfor
+z8'r=z8r+penoffset (x3,h)-z8 of currentpen+whatever*((x3,h)-z8);
+z8'l=z8l+penoffset z8-(x3,h) of currentpen+whatever*((x3,h)-z8);
+z11'r=z11r+penoffset (x3,h)-z11 of currentpen+whatever*((x3,h)-z11);
+z11'l=z11l+penoffset z11-(x3,h) of currentpen+whatever*((x3,h)-z11);
+z8'=.5[z8'l,z8'r]; z11'=.5[z11'l,z11'r];
+z9=z8'+whatever*((x3,h)-z8); z12=z11'+whatever*((x3,h)-z11);
+penpos9(cap_stem-2stem_corr,0); penpos12(cap_stem-2stem_corr,0);
+fill z10l{right}...{z8'l-z9l}z9l--diag_end(9l,8'l,.5,1,8'r,9r)
+ --z9r{z9r-z8'r}...{left}z10r--cycle; % right diagonal
+ fill z10r{left}...{z11'l-z12l}z12l--diag_end(12l,11'l,1,.5,11'r,12r)
+ --z12r{z12r-z11'r}...{right}z10l--cycle; % left diagonal
+if serifs:
+ numeric inner_jut; prime_points_inside(5,3);
+ if rt x5r+cap_jut+.5u+1<=lft x8l-cap_jut: inner_jut=cap_jut;
+ else: rt x5r+cap_jut+.5u+1=lft x8l-inner_jut; fi
+ dish_serif(11,12,a,1/3,right_jut,b,1/2,inner_jut)(dark); % lower diagonal serif
+ dish_serif(8,9,e,1/2,inner_jut,f,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(5',3,c,1/3,.75jut,d,1/3,.75jut); fi % middle serif
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+lhchar "Uppercase Cyrillic letter IZH - IZHITSA (looks like V)";
+cyrchar(IZH,13u#,cap_height#,0);
+if is_small_cap: getcharcode(izh); fi
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,
+ if serifs: min(1.5u#,.5u#+(flare#+(cap_stem#-stem#))) %ccL_adj
+ else:.5u#fi);
+% upper_izh;
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+x6=if serifs:.5[x5,x7r] else: x7r fi;
+penpos6(vair,90); y6r=h if serifs:+o fi;
+penpos5(alpha*right_stem,0);
+y5=min(.9cap_height,bot y6l-.5vair); z5=whatever[z3,z4];
+x7r=hround(r-.5u); penpos7(hair,0);
+y7=h-vround max(.05fig_height+.5flare,.1fig_height-.5flare)+o; z8r=z7r;
+penpos8(flare,0); if serifs: cyrbulb(6,7,8); fi
+if y0>cap_notch_cut:
+ y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z5l...{right}
+ if serifs: z6r--z6l
+ else:
+ (.5[x4,x4r],y6r)--(fine.lft x6r,y6r)..(x6r,fine.bot y6r)--
+ (x6l,fine.top y6l)..(fine.lft x6l,y6l) fi
+ {left}
+ ....z5r{z3-z4}--diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--z5l{z4-z3}...{right}z6r--z6l{left}...{z3-z4}z5r
+ --diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs:
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2);
+ if rt x1'r+cap_jut+.5u+1<=x4l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=x4l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); fi % left serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter G_up - GHE upturn";
+cyrchar(G_up,if monospace: 9 else: 11.25 fi u#-width_adj#,
+ cap_height#+cap_sbeak#,0);
+if is_small_cap: getcharcode(g_up); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup if serifs: crisp.nib; else: tiny.nib; fi
+pos3(slab,90); pos4(hair,0);
+top y3r=cap_height; x3=x1; rt x4r=hround(w-.75u);
+y4=good.y(y3r+cap_sbeak)+eps;
+if serifs:
+% armup(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+ _one:=7; _two:=8; _three:=9;
+ x[_one]=good.x(x4r-beak_jut); y[_one]=y3l; y[_two]=y3r;
+ z[_two]=z4l-whatever*(z[_one]-z4r); z[_three]=.5[z3r,z[_two]];
+ filldraw z4l{z[_two]-z4l}...beak_darkness[z[_two]
+ ,.5[z[_three],z4l] ]...z[_three]
+ ---z3r--z3l--z[_one]--z4r--cycle; % arm and beak
+%%
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper bracketing
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); % lower serif
+else:
+ rt x5=crisp.rt x4r; y5=y3; pos5(slab,90);
+ filldraw stroke z3e--z5e;
+ pickup fine.nib; rt x6r=crisp.rt x4r; x6'=x6;
+ y6'=y5l; y6=y5r+cap_sbeak;
+ numeric light_stem;
+ light_stem=max(fine.breadth,fudged.hair if hefty:-4stem_corr fi);
+ pos6(light_stem,0); pos6'(light_stem,0);
+ filldraw stroke z6e--z6'e; fi
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter NG - ligature ENGHE";
+cyrchar(NG,13.5u#,cap_height#,0);
+if is_small_cap: getcharcode(ng); fi;
+italcorr cap_height#*slant-beak_jut#; %Gamma+.25u
+adjust_fit(cap_serif_fit#,min(4.5u#-.5stem#,3.5u#)-.5width_adj#); % Beak_adj
+% upper_n;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+%%%
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,.5cap_jut); %!!!% upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+% (old) upper right beak(4)
+if (serifs=false) and (old_cyr=true):
+ pickup tiny.nib;
+ pos7(slab,90); top y7r=h; x7=x4;
+ pos8(slab,90); y8=y7; rt x8r=hround(r-.65u);
+ filldraw stroke z7e--z8e; % horisontal
+ pickup fine.nib; pos9(.3[slab,cap_stem],0); pos10(.3[slab,cap_stem],0);
+ rt x9r=rt x10r=tiny.rt x8r; y9=y8r; bot y10=y8l-sbeak;
+ filldraw stroke z9e--z10e; % vertical
+else:
+ pickup crisp.nib;
+ pos7(slab,90); top y7r=h; x7=x4; rt x8r=hround(r-.65u);
+ pos8(hair,0); y8=good.y(y7l-beak)-eps;
+ arm(7,8,i,beak_darkness,.7beak_jut); % upper arm and beak
+fi
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter OTLD - O tilded";
+cyrchar(OTLD,14u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(otld); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% upper_o;tld
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace:
+ x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else:
+ x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%%%%%
+% uotilde;
+z5=z2l; z6=z4l; penpos5(cap_bar,90); penpos6(cap_bar,90);
+if (serifs) and (bar#<=.5curve#):
+ numeric bar[];
+ bar2=2/3[cap_bar,fudged.cap_stem]; penpos7(bar2,45); z7=.5[z5,z6];
+ fill stroke z5e{2,1}..{2,-1}z7e..{2,1}z6e;
+else:
+ fill stroke z5e--z6e; fi
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter U_shrt - SHORT U";
+cyrchar(U_shrt,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(u_shrt); fi
+italcorr x_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+% the accent
+h:=full_h;
+cbreve(.5[rt x1r,lft x4l],0, 10,11,12,13,14,15,16)(cyrcaph); %0,0
+penlabels(0,0',1,2,3,4,5,6,6',7,8,9, 10,11,12,13,14,15,16); endchar;
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter UKR_E - Ukrainian E (C with mid-line)";
+cyrchar(UKR_E,13u#,cap_height#,0);
+if is_small_cap: getcharcode(ukr_e); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% upper_ukre;
+pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+bot y1=min(vround.675h,bot y2l-eps);
+y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+x1r-x1'=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+% upukre_bar;
+numeric bar[]; y7=y8=y3;
+x7=x3l; x8=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+if (serifs=true) and (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr];
+ penpos9(bar2,45); z9=.575[z7l,z8l];
+ fill circ_stroke z8e{-2,-1}..{-2,1}z9e..{-2,-1}z7e; % curve /\/
+else:
+ pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; fi % bar --
+%%%%%
+penlabels(1,1',2,3,4,5,6); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter UKR_E - Ukrainian E (C with mid-line)";
+cyrchar(UKR_E,11.5u#,cap_height#,0);
+if is_small_cap: getcharcode(ukr_e); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% uppers_ukre;
+pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+top y1r=vround.95h+o; top y2r=h+o; y3=.5h;
+bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4);
+% uukres_bar;
+numeric bar[]; y6=y7=y3; x6=x3l; x7=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+pickup fine.nib;
+bar1=if is_small_cap:max(fine.breadth+eps,.6[thin_join,vair]) else: cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+penlabels(1,1',2,3,4,5,6); endchar;
+
+%WNCYR shape
+lhchar "Uppercase Cyrillic letter FITA (looks like Theta)";
+cyrchar(FITA,14u#,cap_height#,0);
+if is_small_cap: getcharcode(fita); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=hround(cap_curve-2stem_corr);
+penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround min(3u,.5u+1.5hair+eps);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround 2.5u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+% fita_bar;
+pickup crisp.nib; pos5(cap_vstem,90); pos6(cap_vstem,90);
+lft x5=w-rt x6=hround.5u; y5=y6=.5[y1l,y3l];
+filldraw stroke z5e--z6e; % bar
+% bar serifs;
+if serifs: pos7(hair,0); pos8(hair,0); pos9(hair,0); pos10(hair,0);
+ x7l=x8l=x5; x9r=x10r=x6;
+ y7=y5r; y9=y6r; y5l-y8=y6l-y10=vround .075h;
+ filldraw stroke z7e--z8e; % left serif
+ filldraw stroke z9e--z10e; fi % right serif
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter EPS - EPSILON";
+cyrchar(EPS,if serifs: 11u# else: 10u# fi,cap_height#,0);
+if is_small_cap: getcharcode(eps); fi
+italcorr .75cap_height#*slant-.5u#; %B
+adjust_fit(if monospace:.35u#,.25u# else: 0,0 fi);
+% upper_eps;
+pickup fine.nib; pos2(slab,90); top y2r=h+o;
+numeric right_curve,middle_weight;
+right_curve=max(currentbreadth+eps,cap_curve-3stem_corr);
+middle_weight=max(fine.breadth+eps,.6vair+.5);
+pos4(middle_weight,-90); pos5(middle_weight,-90);
+pos6(middle_weight,90); pos5'(middle_weight,90);
+pos7(right_curve,180);
+x2-.5u=x6=x8=.5[w-1.5u,x7]; lft x7r=hround.75u;
+pos3(max(currentbreadth+eps,right_curve-stem_corr),180); lft x3r=hround 1.25u;
+pos8(slab,270); bot y8r=-o; y7=.5[y6l,y8l];
+y3=.5[y4l,y2l]; x4=1/3[x5,x3l]; y4=y5; y5'=y6;
+top y5l-bot y5'l=vair; .5[y5l,y5'l]=.52h;
+rt x5=rt x5'=max(hround (w-3.5u),rt x6)+eps;
+if serifs:
+ pos1(cap_hair,0); pos9(hair,360);
+ lft x1r=w-hround u; lft x9r=w-hround.9u;
+ y1=good.y(max(.52[y5l,y2l],top y5l+.5flare+.5)-eps);
+ y9=max(.52[top y8l,bot y5'l],y7+1);
+ pos0(flare,0); z0r=z1r; bulb(2,1,0); % bulb
+ filldraw stroke z8e{right}...{up}z9e; % arc
+else:
+ pickup fine.nib; pos1(1.2flare,80); pos9(flare,275);
+ rt x1r=hround(w-1.1u); rt x9r=hround(w-.9u);
+ top y1r=vround .95h+o; bot y9r=vround .08h-o; y9l:=good.y y9l; x9l:=good.x x9l;
+ filldraw stroke rterm.e(2,1,right,.9,4); % upper arc
+ filldraw stroke term.e(8,9,right,.8,4); fi % arc and terminals
+if not serifs: interim superness:=more_super; fi
+filldraw stroke
+ z5e..super_arc.e(4,3) &
+ {{if not serifs:interim superness:=hein_super; fi
+ super_arc.e(3,2)}}; % upper bowl
+filldraw stroke super_arc.e(8,7) & super_arc.e(7,6)..z5'e; % lower bowl
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2loi.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2loi.mf
new file mode 100644
index 00000000000..6a3c662c4ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2loi.mf
@@ -0,0 +1,932 @@
+%
+% lgt2loi.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic Cyrillic letters 0--127 for T2 encoding
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2
+%
+% X2 T2A T2B T2C
+%
+% ae "61 a "ac - - Ligature AE
+% tshe "62 b "a2 - - Tshe
+% dje "63 c "a3 - - Dje
+% abh_ch "64 d - - "b1 Abkhasian che (same as lower e with hook)
+% abh_ch_dsc "65 e - - "b2 Abkhasian che descender
+% k_vcrs "66 f "ab - - Ka vertically crossed
+% k_hcrs "67 g - - "ab Ka horisontally crossed
+% l_dsc "68 h - "aa "aa El with descender
+% lat_i "69 i - - - Latin letter I (goes first for LH font)
+% lat_j "6a j - - - Je - Latin letter J
+% lje "6b k "a7 "a8 - Lje
+% m_dsc "6c l - - "a8 Em with descender
+% nje "6d m "bb "b9 - Nje
+% abh_ha "6e n - - "b7 Abkhasian kha
+% p_tl "6f o - - "a0 Pe with tail
+%
+% r_dsc "70 p - - "a5 Er with descender
+% lat_q "71 q - - - Latin letter Q
+% t_dsc "72 r - - "a2 Te with descender
+% lat_s "73 s "af - - Dze - Latin letter S
+% tetse "74 t - - "a1 Ligature Te-Tse
+% dzhe "75 u "b6 - "b6 Dzhe
+% ch_vcrs "76 v "b7 - - Che vertically crossed
+% lat_w "77 w - - - Latin letter W
+% yat "78 x - - - Yat
+% b_yus "79 y - - - Big Yus
+% izh "7a z - - - Izhitsa
+%
+% n_ltl "1d - - "b9 En with left tail
+% delta "1f - "a6 - Delta
+% m_tl - - - "ae Em with tail
+% r_gcrs - - - "a6 Er grave crossed
+% s_acrs - - - "b1 Es acute crossed
+% g_crsdsc - - "a0 - Ghe crossed with descender
+% h_hcrs - - "b4 - Kha horisontally crossed
+%
+% semisn - - - "b3 Semi Soft Sign
+% i_shdsc - - - "b4 I Short with descender
+% r_tl - - - "bb Er with tail
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+iff knuthian_ae:%
+lhchar "Italic Cyrillic letter ae - ligature ae";
+cyrchar(ae,13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+%numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos7(light_stem,0); pos8(light_stem,0);
+x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
+pos7'(vair,-225); pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x12=.5[x11,x3];
+y11=.3[y12,y7]; bot y12r=-oo;
+filldraw stroke z7'e{3(x11-x7),y11-y7}...pulled_arc.e(11,12)
+ & pulled_arc.e(12,3'); % bowl of a
+filldraw z7l---z8l..z8r---z7r..cycle; % stem
+penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
+
+iff not knuthian_ae: % borrowed from ec
+lhchar "Italic Cyrillic letter ae - ligature ae";
+cyrchar(ae,13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos7(light_stem,0);
+x7=x3; y7+.5light_stem=h+oo;
+pos7'(vair,-225); pos10(vair,-270);
+pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x10=x12=.5[x11,x3];
+top y10r=h+oo; y11=.52h; bot y12r=-oo;
+filldraw stroke pulled_arc.e(3',10) & pulled_arc.e(10,11)
+ & pulled_arc.e(11,12) & pulled_arc.e(12,3'); % bowl of a
+filldraw z7l---z3r..z3l---z7r..cycle; % stem
+penlabels(0,1,2,3,4,5,6,7,10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter abh_ch - lower e hook";
+cyrchar(abh_ch,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(max(2u#,1.5u#+.5flare#),0);
+% ital_e;
+pickup fine.nib; %numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+% bulb
+y7=y3; x7=x3r; pos7(vair,-90); y9=.5[y3,y2];
+lft x9r=l+letter_fit+hround (.5u-.5); %l+.5u;
+pos9(flare,-180); z8r=z9r; pos8(hair,-180);
+cyrbulb(7,8,9);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter abh_ch_dsc - lower e hook ogonek";
+cyrchar(abh_ch_dsc,8u#,x_height#,desc_depth#);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(max(2u#,1.5u#+.5flare#),0);
+% ital_e;
+pickup fine.nib;
+%numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+% bulb
+y7=y3; x7=x3r; pos7(vair,-90); y9=.5[y3,y2];
+lft x9r=l+letter_fit+hround (.5u-.5); %l+.5u;
+pos9(flare,-180); z8r=z9r; pos8(hair,-180);
+cyrbulb(7,8,9);
+% descender-ogonek
+ path p.r; p.r=pulled_arc.r(3,4)...{direction 1 of p}z5r;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ ogonek_breadth:=xvair;
+ numeric tt; % the time...
+ tt=if hefty: 2.8 else: 2.6 fi+eps;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_pos=point tt of p.r+.5(the_pen-fine)*
+ unitvector((direction tt of p.r) rotated 90)-(ogonek_breadth-the_pen,0);
+easy_ogonek(the_pen,10,11,12); % ogonek
+penlabels(1,2,3,4,5,6,7,8,9, 10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter k_vcrs - ka vcrossed";
+cyrchar(k_vcrs,10u#,x_height#,0); %k+2u
+italcorr x_height#*slant;
+adjust_fit(if monospace:-1.5u# else: 0 fi,0);
+pickup fine.nib; x2-.5stem=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace:
+ pos2(stem,0); top y2=h;
+else:
+ x0=0; hook_in(0,1,2); fi % opening hook
+z2'=z2; pos2'(stem,0); x11=x2'; y11-.5stem=-oo; pos11(stem,0);
+filldraw circ_stroke z11e--z2'e; % left stem
+pos3(vair,90); pos3'(vair,90); x3=x11; y3=y3'=bar_height; x3'=.5[x11,x7];
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}--z3'e{right}..{right}z4e; % upper diagonal
+bulb(4,5,6); % bulb
+filldraw stroke z3e{right}--z3'e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+% vcross
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+pos10(middle_weight,0); pos12(middle_weight,0);
+lft x10l=lft x12l=hround(max(x3',.5[x3,x3'])-.5middle_weight+eps);
+top y12-bot y10=.5x_height; .52[y10,y12]=y3;
+filldraw stroke z10e--z12e;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter k_hcrs - ka hcrossed";
+cyrchar(k_hcrs,8u#,asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0);
+% ital_k;long stem
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+% hcross
+pickup crisp.nib; numeric outer_jut;
+outer_jut=max(limit_dist,1.1jut);
+pos10(bar,90); pos11(bar,90);
+top y11r=top y10r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+x11=x1r+1.15outer_jut; lft x10=hround-.75u;
+filldraw stroke z10e--z11e; % cross bar
+penlabels(1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+lhchar "Italic Cyrillic letter l_dsc - el descender";
+cyrchar(l_dsc,9u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(.5u#,.1u#); %iserif_adj
+% ital_l;dsc
+pickup fine.nib;
+pos1(vair,-90); pos2(stem,180); pos3(hair,0); pos10(stem,0);
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+top y1l=h+oo; x1=.5[x3,x2];
+x3=3u; y3=.35h;
+y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r;
+bot y4r=-oo; x4=max(.4[lft x6r,rt x3r],lft x6r+.5flare-eps);
+y10=.8h; lft x10l=lft x7l=hround(w-2.5u-.5stem); z10=z2;
+bulb(4,5,6); % bulb
+filldraw stroke pulled_arc.e(4,3)
+ & super_arc.e(3,1) & super_arc.e(1,2); % left stem
+pos8(vair,90); pos9(vair,180); pos7(stem,0);
+x9=w; y9=y7=.4bar_height; x8=.5[x7,x9]; bot y8l=-oo;
+filldraw circ_stroke z7e{-.5u,-x_height}...z8e{right}...{up}z9e; %closing hook
+filldraw stroke z10e--z7e; % stem tail
+%%%
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.l;
+ p.l=z7l{-.5u,-x_height}...z8l{right}...{up}z9l;
+ ogonek_breadth:=xvair;
+ ogonek_pos=point .9 of p.l;
+ easy_ogonek(the_pen,11,12,13); % ogonek
+else:
+ i_serif(9,x);
+fi
+penlabels(1,1',2,3,4,5,6,7,8,9,10, 11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter m_dsc - m descender";
+cyrchar(m_dsc,13u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(if monospace:-.5u# else:.5u# fi, %wbulb_adj
+ .1u#); %iserif_adj
+%ital_m;dsc
+pickup fine.nib;
+pos1(hair,0); pos6(stem,0);
+pos2(hair,0); pos3(vair,-90); pos4(hair,-180); pos5(flare,-180);
+x1=x2=3u; y2=.35h; top y1=h; bot y3r=-oo; lft x5r=-.25u; z4r=z5r;
+x3=min(lft x5r+flare,lft x2l-eps); y5-.5flare=.1h;
+bulb(3,4,5); % bulb
+filldraw stroke pulled_arc.e(3,2) & z2e--z1e; % left stem
+rt x7r=hround(w-2.5u+.5stem); %!!! x9=w; hook_out(7,8,9); % closing hook
+pos7(stem,0); pos8(vair,90); pos9(vair,180); %!!!
+x9=w; y9=y7=.4bar_height; x8=.5[x7,x9]; bot y8l=-oo;
+filldraw circ_stroke z7e{-.5u,-x_height}...z8e{right}...{up}z9e; % closing hook
+x6=x7; top y6=h;
+filldraw stroke z6e--z7e; % right stem
+% diagonals;m
+numeric stem[]; % thicknesses of the strokes
+stem1=hround(fudged.stem-stem_corr);
+stem2=min(stem1,hround(fudged.hair-stem_corr));
+penpos10(stem1,0); penpos11(stem1,0); penpos12(stem2,0); penpos13(stem2,0);
+x10l=lft x1l; x11l=x12l; x13l=lft x7l; x11-x10=x13-x12;
+y10=y13=top y6; y11=y12;
+if hefty:
+ y11=if monospace: vround 1/3h-.5stem1 else: oo fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut; lower_notch=y11+notch_cut;
+ x1'=rt x1r; z1'=whatever[z10l,z11l];
+ x6'=lft x6l; z6'=whatever[z12r,z13r];
+ z0=whatever[z10r,z11r]=whatever[z12l,z13l];
+ fill z10l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z11-z10}diag_in(10l,11l,1,11r)..diag_out(12l,1,12r,13r){z13-z12}
+ if y6'<upper_notch: ...{up}(x6'-1,upper_notch){right} fi
+ ..z13r--diag_out(13r,1,13l,12l){z12-z13}
+ if y0<=lower_notch: ..{z12-z13}z0{z10-z11}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z10-z11}diag_in(11r,10r,1,10l)--cycle; % diagonals
+else:
+ y11=0; z0=whatever[z10r,z11r]=whatever[z12l,z13l];
+ fill z10l..{z11-z10}diag_in(10l,11l,1,11r)..diag_out(12l,1,12r,13r){z13-z12}
+ ..z13r--diag_out(13r,1,13l,12l){z12-z13}..{z12-z13}z0{z10-z11}
+ ..{z10-z11}diag_in(11r,10r,1,10l)--cycle; fi % diagonals
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.l;
+ p.l=z7l{-.5u,-x_height}...z8l{right}...{up}z9l;
+ ogonek_breadth:=xvair;
+ ogonek_pos=point .9 of p.l;
+ easy_ogonek(the_pen,14,15,16); % ogonek
+else:
+ i_serif(9,x);
+fi
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13, 14,15,16);
+endchar;
+
+lhchar "Italic Cyrillic letter abh_ha - Abkhasian ha";
+cyrchar(abh_ha,9.25u#+width_adj#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace:0,0 else: -.35u#,-.35u# fi); %o
+pickup fine.nib;
+numeric right_curve,mid_curve;
+right_curve=.7[.7[thin_join,vair],curve] if hefty:-stem_corr fi;
+mid_curve=.5[.7[thin_join,vair],curve] if hefty:-2stem_corr fi;
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(right_curve,0);
+interim superness:=more_super; x2r=hround u;
+x4r=w-x2r; x1=x3=x6=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=.52h;
+y7=-1/3d; rt x7=hround(w-.5u); penpos7(.7[thin_join,vair],270);
+y6=.5y5r; penpos6(mid_curve,180);
+x5=if serifs:.5[x6,x4]else:.5[x6,x4]fi;
+y5r=.5[y4,y1]; penpos5(.7[thin_join,vair],90);
+fill stroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) % 3/4 bowl
+ & pulled_super_arc.e(4,5)(.25superpull)
+ & pulled_super_arc.e(5,6)(.75superpull)
+ & pulled_super_arc.e(6,7)(.5superpull); % 6/4 bowl
+fill z7l--z7r{right}..{up}
+ if fine.top y7r>fine.bot y7l:
+ (fine.rt x7,y7)
+ else:
+ (fine.rt x7,fine.top y7r)--(fine.rt x7,fine.bot y7l)
+ fi
+ {up}..{left} cycle;
+z1'=z1; z4'=z4; pos1'(vair,90); pos4'(.75[.7[thin_join,vair],curve],0);
+forsuffixes e=l,r: path quarta.e;
+quarta.e=pulled_super_arc.e(1',4')(.5superpull); endfor
+numeric quart;
+quart=min(
+ ypart(quarta.r intersectiontimes ((0,top y5r+vair)--(w,top y5r+vair))),
+ ypart(quarta.r intersectiontimes ((rt x5,0)--(rt x5,h))));
+filldraw stroke subpath (0,.67) of quarta.e; %quart
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Cyrillic letter p_tl - pe tail";
+cyrchar(p_tl,13u#,x_height#,desc_depth#); %13.5
+italcorr (-.3x_height#+bar_height#)*slant; %o:.7h-(h-bar_height)
+adjust_fit(if monospace:-1.5u#,-1.5u# else: 0,0 fi);
+pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem; save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace:
+ pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else:
+ x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(7u+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+% hook(4);
+pos3'(vair,90); x3'=x4; y3'=bar_height;
+lft x7l=hround(w-1.5u-.5stem); y7=.45y3'; pos7(stem,0);
+pos9(vair,-90); pos10(hair,-180); pos11(flare,-180); pos8(stem,0); x8=x7;
+bot y8=-1/3d; bot y9r=-d-oo; y11-.5flare=-vround.9d;
+x9=w-11/3u; lft x10r=min(x7-4u,lft x10r+x9-x10l+4u-eps);
+filldraw stroke z3'e{right}...z7e{down}---z8e...{left}z9e;
+bulb(9,10,11); % bulb
+penlabels(0,a,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Italic Cyrillic letter r_dsc (looks like p)";
+cyrchar(r_dsc,if monospace: 9u# else: 9.25u# fi,x_height#, % rusw
+ max(1.6desc_depth#,paren_depth#));%r_ddepth
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %p
+adjust_fit(0,if monospace:0 else:-.35u# fi);
+full_d:=d; d:=vround min(desc_depth,max(vair+slab+oo+1+eps,full_d-max(.4desc_depth,.55beak)-slab));%r_dscs
+% ital_r;
+pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+%%%
+if is_ogonek:
+ dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+fi
+%%%
+% r_descender/ogonek
+if is_ogonek:
+ d:=d+desc_depth;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ ogonek_breadth:=xvair;
+ ogonek_pos=(x3,y3+.5the_pen) if not is_egyptian: +(.5xvair,0) fi;
+ ogonek_move=bot y3;
+ easy_ogonek(the_pen,8,9,10); % ogonek
+ chardp:=d/hppp;
+else:
+ d:=full_d;
+ numeric right_jut; right_jut=1.414jut;
+ r_serif(3,2',o,1/3,.75jut,p,1/3,beak_darkness,right_jut,.35beak_jut); % lower left serif
+fi
+penlabels(0,1,2,3,4,5,6,7, 8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter lat_q";
+cyrchar(lat_q,8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem)+eps;
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pickup tiny.nib; pos4(stem,0); pos5(stem,0);
+x4=x5; x6=x5r; top y6=h+oo; bot y4=-d;
+y5=ypart(((x4l,0)--(x4l,y6))intersectionpoint super_arc.r(0,1));
+filldraw z6{2(x5l-x6),y5-y6}...z5l---z4l--z4r--cycle; % stem
+dish_serif(4,5,a,1/3,jut,b,1/3,jut); % serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Italic Cyrillic letter t_dsc - te descender";
+cyrchar(t_dsc,15u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u# else: 0 fi,.1u#); %lstem_adj&iserif_adj
+% ital_t;
+begingroup
+pickup fine.nib; numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem; pos2(stem,0); x1=x2;
+% left stem_hook;
+if monospace:
+ pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else:
+ x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem); ital_arch(5,6,7); % right arch
+x8=x7-.25u; x9=w; y8=1/4x_height; y9=.4bar_height;
+x8'=.5[x8,x9]-.25u; bot y8'l=-oo;
+pos8(stem,0); pos8'(vair,90); pos9(vair,180);
+filldraw stroke z7e{down}..{-u,-x_height}z8e...z8'e{right}...{up}z9e; % hook (7,8,9)(skewed)
+endgroup;
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.l;
+ p.l=z8l{-u,-x_height}...z8'l{right}...{up}z9l;
+ ogonek_breadth:=xvair;
+ ogonek_pos=point .9 of p.l;
+ easy_ogonek(the_pen,10,11,12); % ogonek
+else:
+ z10=z9; pos10(hair,180);
+ i_serif(10,x);
+fi
+penlabels(0,a,1,2,3,4,5,6,7,8,9, 10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter tetse - ligature tetse";
+cyrchar(tetse,10.75u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(max(2u#,u#+stem#),.1u#); %iserif_adj
+pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3; top y2=h; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke
+ z2'e--super_arc.e(3,4)...{up}z5e; % left stem and arc
+x9=w; y9=y7=.4bar_height; x8=.5[x7,x9]; bot y8l=-oo;
+pos8(vair,90); pos9(vair,180); pos7(stem,0);
+filldraw circ_stroke z6e--z7e; % right stem
+filldraw circ_stroke z7e{-.5u,-x_height}...z8e{right}...{up}z9e; % hook(7,8,9)
+% italic descender
+i_serif(9,x);
+% italic beak
+pickup fine.nib;
+pos10(stem,180); pos11(stem,180); pos12(vair,90); pos13(vair,90);
+lft x10r=l+letter_fit if monospace:-.5stem else:+.25u fi;
+y10-.5stem=2/3x_height-.5fine;
+x13=0.6[x3,x7]; top y13r=top y12r=x_height; x11=x10; y11=bot y12l-.25flare;
+x12-.25flare=rt x10l; x12r:=lft x10r+(top y12r-y11);
+filldraw circ_stroke z10e{up}--z11e{up}...z12e{right}--z13e; % ital_beak;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter ch_vcrs - che vcrossed";
+cyrchar(ch_vcrs,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0);
+% ital_ch;
+pickup fine.nib; interim superness:=more_super;
+x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+bot y4r=.75bar_height; y5=.75h; y3=min(y2-eps,.7[y4,y5]); y6+.5stem=h;
+filldraw stroke z2'e...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+%%%
+% vcross
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+pos10(middle_weight,0); pos11(middle_weight,0);
+lft x10l=lft x11l=hround (x4-.5middle_weight);
+top y11-bot y10=.5x_height; .5[y10,y11]=y4;
+filldraw stroke z10e--z11e;
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+lhchar "Italic Cyrillic letter lat_w";
+cyrchar(lat_w,12u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:-1.5u#,-u# else: 0,0 fi);
+pickup fine.nib; interim superness:=more_super; begingroup
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if monospace:
+ pos1(vair,90); x1=good.x .5[x0,x2]; top y1r=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z1e{right}...{-u,-x_height}z2e;
+else:
+ hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0);
+x4=.6[x2,x5]; x5=x6=x7; pos6(stem,-180); pos7(stem,-180);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+rt x6l=hround(rt x6l+.5w+.75u-x6); y6+.5stem=h; y7=y3;
+pos8(vair,-90); pos9(hair,0);
+x8=w-2.75u; rt x9r=hround(w-.5u); bot y8r=-oo; y9=y5;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e..super_arc.e(7,8)...{up}z9e; % middle stem and arc
+v_bulb(9,10); % closing bulb
+endgroup;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter n_ltl - en with left tail";
+cyrchar(n_ltl,10u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(0,0);
+pickup fine.nib; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem);
+%ihalfstemx;
+if monospace:
+ pos2(stem,0); top y2=h;
+else:
+ x0=0; hook_in(0,1,2); fi % opening hook
+y3-.5stem=-oo;
+filldraw stroke z3e--z2e; % left stem
+x10=x3l; y10=y11=bar_height; pos10(vair,90); pos11(vair,90);
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); y6+.5stem=h;
+x7=x6; x9=w; hook_out(7,8,9); % closing hook
+z7'=z7; pos7'(stem,0); x11=x6l;
+filldraw circ_stroke z6e--z7'e; % right stem
+filldraw stroke z10e--z11e; % bar
+%%%
+pos12(vair,-90); pos13(hair,-180); pos14(flare,-180); pos5(stem,0);
+x5=x3; bot y5=-1/3d; bot y12r=-d-oo; y14-.5flare=-vround.9d;
+%x6=w-11/3u; lft x7r=min(x4-4u,lft x7r+x6-x7l+5u-eps);
+%x12=(x3+2.5u-.5stem)-10/3u; lft x13r=min(x3-10/3u,lft x13r+x12-x13l+13/3u-eps);%!!!
+x12=(x3+2.5u-.5stem)-9/3u; lft x14r=min(x3-8/3u,lft x13r+x12-x13l+11/3u-eps);%!!!
+%filldraw circ_stroke z3e--z5e{down}...{left}z12e; % right stem and hook
+ forsuffixes e=l,r:
+ z12'e=((0,y14)--(w,y14)) intersectionpoint
+ (z5e{down}...{left}z12e); endfor
+ if lft x12'l>rt x14l+max(1,hround(1/3vair+.5)):
+ filldraw stroke z3e--z5e{down}...{left}z12e; % right stem and hook
+ else:
+ x12'l:=min(rt x14l+max(1,1/3vair+.5),rt x12'r-vair)+.5fine-eps;
+ filldraw z3r--z5r{down}...{left}z12r--z12l{right}
+ ..z12'l{up}..{up}z3l--cycle;
+ fi
+bulb(12,13,14); % bulb
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff serifs:
+lhchar "Lowercase Cyrillic letter delta - Lowercase Greek delta";
+cyrchar(delta,8u#,asc_height#,0);
+italcorr .9asc_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=-u; y0=1.1h;
+numeric light_flare; light_flare=2/3[vair,flare];
+x1=w-2u-.5light_flare; y1=h-.5light_flare;
+numeric theta; theta=angle (z1-z0);
+pos1(light_flare,theta-90); pos2(.2[vair,light_flare],-90); pos3(vair,theta);
+x2=x3+u; y2=h;
+x4=x6=.5w+.5u; top y8r=x_height+oo; z4=z8;
+pos6(vair,-90); pos7(stem,-180); pos8(vair,-270);
+pos4(stem,angle(z4-z0)+90); pos5(stem,30);
+z3=.5[.5[z1,z4],z0];
+y5+.1x_height=y7=.5[y6,y8]; bot y6=-oo;
+lft x7r=hround(1.4u-.5stem); rt x5r=hround(w-u);
+filldraw stroke z1e{z0-z1e}....z2e....z3e{(z0-z1)rotated 90}
+ ...z4e{z4e-.8[z4,z0]}
+ ....z5e{down}...pulled_arc.e(6,7) & pulled_arc.e(7,8); % hook and bowl
+filldraw z1r{z1r-z0}...z1l{z0-z1l}--cycle; % bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,.7x_height#*slant-.5u#);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Italic Cyrillic letter m_tl - m tail";
+cyrchar(m_tl,12u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(if monospace:-.5u#,-u# else:.5u#,0 fi); %wbulb_adj
+%ital_m;tl
+pickup fine.nib;
+pos1(hair,0); pos2(hair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(flare,-180); pos6(stem,0);
+x1=x2=3u; top y1=h; y2=.35h; bot y3r=-oo; lft x5r=-.25u; z4r=z5r;
+x3=min(lft x5r+flare,lft x2l-eps); y5-.5flare=.1h;
+bulb(3,4,5); % bulb
+filldraw stroke pulled_arc.e(3,2) & z2e--z1e; % left stem
+pos7(stem,0); lft x7l=hround(w-1.5u-.5stem); %!!! % x9=w; hook_out(7,8,9); %!!! % closing hook
+x6=x7; top y6=h;
+%filldraw stroke z6e--z7e; %!!! % right stem
+% diagonals;m
+numeric stem[]; % thicknesses of the strokes
+stem1=hround(fudged.stem-stem_corr);
+stem2=min(stem1,hround(fudged.hair-stem_corr));
+penpos10(stem1,0); penpos11(stem1,0); penpos12(stem2,0); penpos13(stem2,0);
+x10l=lft x1l; x11l=x12l; x13l=lft x7l; x11-x10=x13-x12;
+y10=y13=top y6; y11=y12;
+if hefty: y11=if monospace: vround 1/3h-.5stem1 else: oo fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut; lower_notch=y11+notch_cut;
+ x1'=rt x1r; z1'=whatever[z10l,z11l];
+ x6'=lft x6l; z6'=whatever[z12r,z13r];
+ z0=whatever[z10r,z11r]=whatever[z12l,z13l];
+ fill z10l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z11-z10}diag_in(10l,11l,1,11r)..diag_out(12l,1,12r,13r){z13-z12}
+ if y6'<upper_notch: ...{up}(x6'-1,upper_notch){right} fi
+ ..z13r--diag_out(13r,1,13l,12l){z12-z13}
+ if y0<=lower_notch: ..{z12-z13}z0{z10-z11}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z10-z11}diag_in(11r,10r,1,10l)--cycle; % diagonals
+else: y11=0; z0=whatever[z10r,z11r]=whatever[z12l,z13l];
+ fill z10l..{z11-z10}diag_in(10l,11l,1,11r)..diag_out(12l,1,12r,13r){z13-z12}
+ ..z13r--diag_out(13r,1,13l,12l){z12-z13}..{z12-z13}z0{z10-z11}
+ ..{z10-z11}diag_in(11r,10r,1,10l)--cycle; fi % diagonals
+% hook;
+pos8(vair,-90); pos9(hair,-180); pos9'(flare,-180);
+bot y7=-1/3d; bot y8r=-d-oo; y9'-.5flare=-vround.9d;
+x8=w-11/3u; lft x9r=min(x7-4u,lft x9r+x8-x9l+5u-eps);
+filldraw stroke z6e--z7e{down}...{left}z8e;
+bulb(8,9,9'); % bulb
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter r_gcrs - r grave crossed";
+cyrchar(r_gcrs,if monospace:9u#else:9.25u#fi,x_height#,desc_depth#); % the Russian width
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %p
+adjust_fit(0,if monospace:0 else:-.35u#fi);
+% ital_r;
+pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+%%%%%
+path p; numeric unbalance,outer_jut;
+p=z5{(x6,y5)-z5}...superness[(x5,y6),(x6,y5)]{z6-z5}...{z6-(x6,y5)}z6;
+z8=point1.25 of p;
+numeric unbalance,outer_jut;
+unbalance=if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+put_cyrcross(x8,(y8-bar_height),-outer_jut,-unbalance*outer_jut);
+%%%
+penlabels(0,1,2,3,4,5,6,7, 8); endchar;
+
+lhchar "Italic Cyrillic letter s_acrs - s acute crossed";
+cyrchar(s_acrs,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %c
+adjust_fit(if monospace:0 else:-.35u#fi,0);
+% ital_s;
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+%%%%%
+pair outer_point; path p; numeric unbalance,outer_jut;
+outer_point=superness[(x4r,y3r),(x3r,y4r)];
+p=z3{(x3,y4)-z3}
+ ...superpull[superness[(x4,y3),(x3,y4)],outer_point]{z4-z3}...{z4-(x3,y4)}z4;
+z7=point.75 of p;
+unbalance=.95; %if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+put_cyrcross(x7,(y7-bar_height),unbalance*outer_jut,outer_jut);
+%%%
+penlabels(0,1,2,3,4,5,6, 7); endchar;
+
+lhchar "Italic Cyrillic letter g_crsdsc - ghe hcrossed descender";
+cyrchar(g_crsdsc,6.25u#,x_height#,desc_depth#);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); %e
+adjust_fit(if monospace:u#,u# else: 0.5u#,0.5u# fi);
+% ital_g;
+pickup fine.nib; x0l=hround eps; x0'=x0; x5r=good.x(w-eps); x6=x5;
+x2=.5w+2u; x3=.5w-2u; x1=x4=x7=.5[x3l,x2r]; y7=.5[y2,y3];
+h-y0=y5; top y5l=vround .5bar_height; y6=bar_height; y0'=h-bar_height;
+h-y2=y3=1/4x_height; h-y1=y4; bot y4r=-oo;
+pos0(hair,320); pos1(vair,270); pos2(stem,180);
+pos3(stem,180); pos4(vair,270); pos5(hair,320); pos7(stem,135);
+path p,p_; p=z0'..z0..z1{right}; p_=z4{right}..z5..z6;
+filldraw stroke z0e{direction 1 of p}
+ ...z1e{right}...{down}z2e...z7e...z3e{down}...z4e{right}
+ ...{direction 1 of p_}z5e; % main stroke
+%%%
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ p_.r=z3r{down}...z4r{right}...{direction 1 of p_}z5e;
+ ogonek_breadth:=xvair;
+ numeric tt; % the time...
+ tt=if hefty: 2.8 else: 2.6 fi;
+ join_angle=angle((direction tt of p_.r) rotated 180);
+ ogonek_pos=point tt of p_.r+.5(the_pen-fine)*
+ unitvector((direction tt of p_.r) rotated 90);
+ easy_ogonek(the_pen,10,11,12); % ogonek
+else:
+ z10=z5; pos10(hair,180); i_serif(10,x);
+fi
+% hstroke
+bar_stroke(x0l+.05u,w-(x0l+.05u));
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter h_hcrs - kha (looks like x)";
+cyrchar(h_hcrs,if monospace:6.5u# else:7.5u# fi+max(1.5u#,flare#), % !rusw
+ x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#); %x
+adjust_fit(if monospace: 0,0 else:0.25u#,0.25u#fi);
+% ital_h;
+pickup fine.nib; pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90); pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+%%%
+% hstroke
+bar_stroke(u,w-u); % bar
+penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19, 10,11); endchar;
+
+lhchar "Italic Cyrillic letter semisn - semi soft sign";
+cyrchar(semisn,if monospace: 9u# else: 9u# fi,x_height#+acc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace:.5u#,.5u# else:0,0 fi); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(2.5u-.5stem); top y1=h; y2=.6bar_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+pos31(bar,90); pos32(bar,90);
+lft x31=hround 1/3u if serifs:-serif_fit fi; x32=w-2.5u;
+y31=y32=vround x_height+eps;
+filldraw stroke z31e--z32e;
+penlabels(0,1,2,3,4,5,31,32); endchar;
+
+lhchar "Italic Cyrillic letter i_shdsc - short i with descender";
+cyrchar(i_shdsc,10u#,x_height#+acc_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(0,.1u#); %iserif_adj
+full_h:=h; h:=x_height;
+% ital_c;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+x9=w; y9=y7=.4bar_height; x8=.5[x7,x9]; bot y8l=-oo;
+pos8(vair,90); pos9(vair,180); pos7(stem,0);
+filldraw circ_stroke z6e--z7e; % right stem
+filldraw circ_stroke z7e{-.5u,-x_height}...z8e{right}...{up}z9e; % closing hook
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.l;
+ p.l=z7l{-.5u,-x_height}...z8l{right}...{up}z9l;
+ ogonek_breadth:=xvair;
+ ogonek_pos=point .9 of p.l;
+ easy_ogonek(the_pen,17,18,19); % ogonek
+else:
+ i_serif(9,x);
+fi
+% the accent
+h:=full_h; cbreve(.5w,0, 10,11,12,13,14,15,16);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14,15,16); endchar;
+
+lhchar "Italic Cyrillic letter r_tl (looks like p)";
+cyrchar(r_tl,if monospace: 9u# else: 9.25u# fi,x_height#, % rusw
+ max(1.6desc_depth#,paren_depth#));%r_ddepth
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %p
+adjust_fit(0,if monospace:0 else:-.35u# fi);
+full_d:=d; d:=vround min(desc_depth,max(vair+slab+oo+1+eps,full_d-max(.4desc_depth,.55beak)-slab));%r_dscs
+% ital_r;
+pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+%%%
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+%%%
+% tail_part(2);%!!!
+_zero:=2;
+_one:=8; _two:=9; _three:=10; _four:=11; _five:=12;
+_six:=13; _seven:=14; _eight:=15; _nine:=16;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,
+ min(full_d-d-.18desc_depth-1-eps,hround 7/8[hair,flare]));%!!!
+y[_one]l=y[_two]l=vround min(if serifs:-.5d else: -d+vair fi,-oo-.6[thin_join,vair]-eps);%!!!
+y[_one]r-y[_one]l=y[_two]r-y[_two]l=.6[thin_join,vair];%!!!
+penpos[_three](max(currentbreadth+eps,curve if hefty:-3stem_corr fi),0);
+y[_three]=.5[y[_one]r,-full_d];%!!!
+x[_two]l=x[_two]r=w-4.75u; x[_one]l=x[_one]r=x[_zero];
+x[_three]r=hround(w-1.5u); x[_two]l:=x[_four]l:=x[_two]r-.25curve;%!!!
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_five]=z[_three]; pos[_five](curve if hefty:-3stem_corr fi,0);
+ pos[_six](vair,-90); bot y[_six]r=-full_d-oo; %!!!
+ y[_seven]-.5flare=-full_d+.15desc_depth;%!!!
+ pos[_seven](hair,-180); pos[_eight](bulb_diam,-180);
+ rt x[_eight]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-2.5u if monospace: / expansion_factor fi);%!!!
+ z[_seven]r=z[_eight]r;
+ x[_six]=max(rt x[_eight]l,.6[x[_five],x[_seven]r]);
+ (x,y[_six]r)=whatever[z[_six]l,z[_five]l];
+ x[_six]r:=max(x,.5[x[_seven]r,x[_six]]);
+ filldraw stroke super_arc.e([_five],[_six]);
+ bulb([_six],[_seven],[_eight]); % bulb
+else:
+ pickup fine.nib; z[_five]=z[_three];
+ pos[_five](max(fine.breadth,curve if hefty:-3stem_corr fi),0);
+ pos[_nine](vair',-90); pos[_six](.6[vair',flare],-105);
+ rt x[_six]r=x[_three]-3.5u; bot y[_six]r=-full_d;%!!!
+ bot y[_nine]r=-full_d-oo; x[_nine]=.35[x[_six]r,x[_three]r];%!!!
+ filldraw stroke super_arc.e([_five],[_nine])
+ & term.e([_nine],[_six],left,.75,4); fi
+%%%
+penlabels(0,1,2,3,4,5,6,7, 8,9,10,11,12,13,14,15,16); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf
new file mode 100644
index 00000000000..640e6f715f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2lol.mf
@@ -0,0 +1,1449 @@
+%
+% lgt2lol.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Cyrillic letters 0--127 for T2 encoding
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2
+%
+% X2 T2A T2B T2C
+%
+% ae "61 a "ac - - Ligature AE
+% abh_ch "64 d - - "b1 Abkhasian che (same as lower e with hook)
+% abh_ch_dsc "65 e - - "b2 Abkhasian che descender
+% k_vcrs "66 f "ab - - Ka vertically crossed
+% k_hcrs "67 g - - "ab Ka horisontally crossed
+% l_dsc "68 h - "aa "aa El with descender
+% m_dsc "6c l - - "a8 Em with descender
+% abh_ha "6e n - - "b7 Abkhasian kha
+% p_tl "6f o - - "a0 Pe with tail
+%
+% r_dsc "70 p - - "a5 Er with descender
+% lat_q "71 q - - - Latin letter Q
+% t_dsc "72 r - - "a2 Te with descender
+% tetse "74 t - - "a1 Ligature Te-Tse
+% ch_vcrs "76 v "b7 - - Che vertically crossed
+% lat_w "77 w - - - Latin letter W
+%
+% n_ltl "1d - - "b9 En with left tail
+% delta "1f - "a6 - Delta
+% m_tl - - - "ae Em with tail
+% r_gcrs - - - "a6 Er grave crossed
+% s_acrs - - - "b1 Es acute crossed
+% g_crsdsc - - "a0 - Ghe crossed with descender
+% h_hcrs - - "b4 - Kha horisontally crossed
+%
+% semisn - - - "b3 Semi Soft Sign
+% i_shdsc - - - "b4 I Short with descender
+% r_tl - - - "bb Er with tail
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Cyrillic letter ae - ligature ae";
+cyrchar(ae,13u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0); numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
+right_curve=
+ max(tiny.breadth,hround(curve-if serifs: 6 else: 8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs:
+ pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else:
+ pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y
+ y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % right terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l;
+x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs:
+ pos1(flare,180); pos2(mfudged.hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=4u;
+ y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
+ bulb(3,2,1); % bulb
+else:
+ pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=4.3u; top y1r=vround .82[bar_height,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % left terminal
+pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
+pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
+filldraw stroke super_arc.e(3,4)&z4e--z5e; % arc and stem
+pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
+pos7(left_curve,180); lft x7r=hround max(.5u,1.5u-.5left_curve);
+y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=3.75u; bot y8r=-oo;
+pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
+(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if y9<y5:
+ filldraw stroke z5e{down}..{down}z9e; fi % link (usually hidden)
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+lhchar "Lowercase Cyrillic letter abh_ch - lower e hook";
+cyrchar(abh_ch,7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(1.25dot_size# if monospace:+\\.25u#,.5u#+ else:,fi\\ 0);
+% lower_e;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs:
+ pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else:
+ pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+% bulb
+if serifs: pickup crisp.nib; fi
+pos6(max(currentbreadth+eps,.6[thin_join,vair]),-90);
+x6=x3; bot y6r=y0l;
+lft x7r=min(l+letter_fit+hround(.5u-.5),lft x0l-flare-1); y7=.5[y1,y2];
+if serifs:
+ pos7(hair,-180); pos8(hround 7/8[hair,flare],-180); z8r=z7r;
+ {{less_tense; cyrbulb(6,7,8)}};
+else:
+ pos7(vair,-150);
+ filldraw stroke z6e{left}...{dir60}z7e; fi
+%%%
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter abh_ch_dsc - lower e hook ogonek";
+cyrchar(abh_ch_dsc,7.25u#+max(.75u#,.5curve#),x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(1.25dot_size# if monospace:+\\.25u#,.5u#+ else:,fi\\ 0);
+% lower_e;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs:
+ pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else:
+ pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%
+% bulb
+if serifs: pickup crisp.nib; fi
+pos6(max(currentbreadth+eps,.6[thin_join,vair]),-90);
+x6=x3; bot y6r=y0l;
+lft x7r=min(l+letter_fit+hround(.5u-.5),lft x0l-flare-1); y7=.5[y1,y2];
+if serifs:
+ pos7(hair,-180); pos8(hround 7/8[hair,flare],-180); z8r=z7r;
+ {{less_tense; cyrbulb(6,7,8)}};
+else:
+ pos7(vair,-150);
+ filldraw stroke z6e{left}...{dir60}z7e; fi
+%%%%%
+% descender-ogonek
+ path p.r;
+ p.r=if serifs: pulled_arc.r(3,4)...{x5-x4,5(y5-y4)}z5r
+ else: term.r(4',5,right,1,4) fi;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if serifs: if hefty: 2.6 else: 2.5 fi else: % sansserif
+ if is_bold: .6 else: .8 fi\\ fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_pos=(point tt of p.r)+.5(the_pen-if serifs: tiny else: fine fi)*
+ unitvector((direction tt of p.r) rotated 90)-(ogonek_breadth-the_pen,0);
+easy_ogonek(the_pen,9,10,11); % ogonek
+%%%
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter k_vcrs - ka vcrossed (`roman')";
+cyrchar(k_vcrs,11.5u# if not serifs:+.5width_adj# fi,
+ % n_width+if serifs:1.5u else:+2u+.5tiny fi
+ x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#);
+ numeric stem[]; stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ pickup tiny.nib;
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower stem serif
+% kv_rbowl;
+ pos10(stem1,0); x10=hround(w-7u); y10=y1;
+ numeric right_jut,stem[],alpha[];
+ right_jut=if serifs:.6jut else:.4tiny fi; pickup tiny.nib;
+%
+ stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+ stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+ x3r=(hround(r-letter_fit-.7u-right_jut)-.5tiny+eps);
+ x6r=(hround(r-letter_fit-.3u-right_jut)-.5tiny+eps);
+ y4=.7bar_height; top y3=h; bot y6=0; x4=x10;
+ penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+ alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+ penpos6(alpha2*(stem2-tiny),0);
+ alpha2=diag_ratio(1,.5(stem2-tiny),y10-y6,x6r-x10);
+ forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z10-z6)=z3'$+whatever*(z4-z3); endfor
+ z5=.5[z5l,z5r];
+ z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+ % we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+ z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+ z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+ fill z5r--diag_end(5r,3'r,1,.5,3'l,5l)--z5l--cycle; % upper diagonal
+ fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+ if (2(y5l-y5r)>(.6[thin_join, vair]-eps)) or (y5l<y5r):
+ y7r=vround (y5l+.5(.6[thin_join, vair])-eps);
+ else:y7r=vround (y5r+.5(.6[thin_join, vair])-eps); fi
+ y7r=y8r; y7r-y7l=y8r-y8l=(.6[thin_join, vair]); x7l=x7r=x1; x8l=x8r=x5r;
+ fill stroke z7e--z8e; % middle cross
+%%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x2r+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+% vcross
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric middle_weight;
+middle_weight=max(currentbreadth+eps,.6[thin_join,vair]);
+pos9(middle_weight,0); pos11(middle_weight,0);
+lft x9l=lft x11l=
+ hround max(tiny.rt x1r+1,max(x5l-middle_weight,.5[tiny.rt x1r,x5l]));
+top y11-bot y9=.5x_height; .52[y9,y11]=.5[y7l,y7r];
+filldraw stroke z9e--z11e; % cross bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter k_hcrs - ka hcrossed (`roman')";
+cyrchar(k_hcrs,10u#,asc_height#,0); % n_width
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); full_h:=h; h:=x_height;
+% lower_hk;
+% long k_stem;
+numeric stem[]; stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+pickup tiny.nib; pos1(stem1,0); pos2(stem2,0);
+lft x1l=lft x2l=hround (2.5u-.5stem1); top y1=h; bot y2=0;
+x11'=x1; top y11'=asc_height; pos11'(stem1,0);
+filldraw stroke z11'e--z2e; % stem
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x11'; x0'=x2;
+rt z0r=whatever[((w-.7u-jut-hair),x_height),(x1,.7bar_height)];
+filldraw stroke z11'e..z0e--z0'e..z2e; % stem
+if serifs:
+ sloped_serif.l(11',0,a,1/3,jut,serif_drop); % upper stem serif
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower stem serif
+% k_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+%%%%%
+% hcross
+h:=full_h;
+pickup crisp.nib;
+pos7(bar,90); pos8(bar,90);
+top y7r=top y8r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+rt x8=x1r+if serifs: max(limit_dist,1.1jut) else: 1.7u fi;
+lft x7=hround 1/3u-serif_fit;
+filldraw stroke z7e--z8e; % cross bar
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter l_dsc - el descender";
+cyrchar(l_dsc,10u# % if not serifs:+.5width_adj# fi % dl_width;n_width
+ ,x_height#,if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#
+ if not serifs:+\\.5(stem#-u#),.5(stem#-u#)+ else:,fi\\ serif_fit#); %dl_adj
+begingroup
+% lower_l;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,bot_vair,bulb_diam,left_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+bot_vair=Vround(.5[vair,light_hair]);
+bulb_diam=hround 7/8[hair,flare];
+left_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (w+serif_fit-rt x2r-.5u) fi;
+x3=1/3[w-rt x1r-(1/8left_jut),rt x1r] if not serifs: -.5(stem-u) fi +eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(hair,-180);
+ top y3=h; y6-.5bulb_diam=.12desc_depth-eps; z6r=z5r;
+ lft x6r=l+letter_fit+hround(.35u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]);
+ bot y4r=-1.5oo-eps; {{less_tense; bulb(4,5,6)}}; %bulb
+ filldraw stroke z4e{right}
+ ..controls (min(15/16[x4,x3],max(x4,lft x6r+1.75bulb_diam))+(x3e-x3),y4e)
+ and (x3e,max(y4l,min(y6-.5,1/3h+eps))+1/3(y4e-y4))..{up}z3e; % left tail
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e; % upper bar
+ pickup fine.nib; pos3(light_hair,0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=.67[x3l,x5];
+ lft x5=l+letter_fit+hround(.35u-.5); bot y4r=bot y5r; y3=y3';
+ filldraw stroke z3e{down}..controls (x3e,y5e+.35h)
+ and (min(7/8[x4e,x3e],x4e+2light_hair)+eps,y4e-eps)..{left}z4e--z5e; fi % left stem
+%%%
+save slab; % lower.slab
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5jut);
+ if is_ogonek:
+ slab:=vair; % lower.slab
+ dish_serif(2,1,a,1/3,jut,b,1/3,jut); %!!! % lower right serif
+ fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,jut); % upper right serif
+ nodish_serif(3,0,e,1/3,1.05jut,f,1/3,inner_jut); % upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ slab:=vair; % lower.slab
+ numeric right_jut;
+ right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x2r-.5u) fi;
+ r_serif(2,1,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(1,2,3,4,5,6, 7,8,9);endchar;
+
+lhchar "Lowercase Cyrillic letter m_dsc - m descender";
+cyrchar(m_dsc,12u# if not serifs:+width_adj# fi,x_height#,
+ if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0 else:serif_fit# fi, %wlett_adj
+ if monospace: 0 else: serif_fit# if not serifs:+.5(stem#-u#) fi fi); %dl_adj&wlett_adj
+begingroup
+% lower_m;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.stem-3stem_corr);
+stem3=min(stem2,hround (fudged.hair-2stem_corr));
+stem4=max(stem1,hround(fudged.stem-3stem_corr));
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround (w-2.5u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty:
+ y6=if monospace: vround 1/3h else: oo fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut+eps; lower_notch=y5+notch_cut-eps;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5+eps,lower_notch)--(x0-.5-eps,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else:
+ y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+%%%
+save slab; % lower.slab
+if serifs:
+ numeric inner_jut;
+ if rt x2r+jut+.5u+1+eps+.5stem3<=lft x4l-.5stem3-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1+eps+.5stem3=lft x4l-.5stem3-inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ serif(1,2,a,1/3,-jut); % upper left serif
+ serif(3,4,d,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); % lower left serif
+ if is_ogonek:
+ dish_serif(4,3,e,1/3,jut,f,1/3,jut); %!!! % lower right serif
+ fi
+fi
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,9,10,11); % ogonek
+else:
+ slab:=vair; % lower.slab
+ numeric right_jut;
+ right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi;
+ r_serif(4,3,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(0,1,1',2,3,3',4,5,6,7,8, 9,10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter abh_ha - Abkhazian ha";
+cyrchar(abh_ha,9u#,x_height#,desc_depth#); %o
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); pickup fine.nib;
+numeric right_curve,mid_curve;
+right_curve=.7[.7[thin_join,vair],curve] if hefty:-stem_corr fi;
+mid_curve=.5[.7[thin_join,vair],curve] if hefty:-2stem_corr fi;
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(right_curve,0);
+interim superness:=hein_super;
+x2r=hround max(.5u,1.25u-.5curve); %o
+x4r=w-x2r; x1=x3=x6=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=.52h;
+y7=-1/3d; rt x7=hround(w-.5u); penpos7(.7[thin_join,vair],270);
+y6=.5y5r; penpos6(mid_curve,180);
+x5=if serifs:.5[x6,x4]else:.5[x6,x4]fi;
+y5r=.5[y4,y1]; penpos5(.7[thin_join,vair],90);
+fill stroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) % 3/4 bowl
+ & pulled_super_arc.e(4,5)(.25superpull)
+ & pulled_super_arc.e(5,6)(.75superpull)
+ & pulled_super_arc.e(6,7)(.5superpull); %6/4 bowl
+fill z7l--z7r{right}..{up}
+ if fine.top y7r>fine.bot y7l: (fine.rt x7,y7)
+ else: (fine.rt x7,fine.top y7r)--(fine.rt x7,fine.bot y7l) fi
+ {up}..{left} cycle;
+z1'=z1; z4'=z4; pos1'(vair,90); pos4'(.75[.7[thin_join,vair],curve],0);
+forsuffixes e=l,r: path p.e;
+p.e=pulled_super_arc.e(1',4')(.5superpull); endfor
+filldraw stroke subpath (0,.67) of p.e; %quart
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter p_tl - pe tail";
+cyrchar(p_tl,10u# if not serifs:+.5width_adj# fi, % n_width
+ x_height#,desc_depth#); % n_width
+italcorr (.7x_height#-bar_height#)*slant; %o.7h-bar_height
+adjust_fit(if monospace:-.15u# else:serif_fit# fi,
+ if serifs:if monospace: 2.6u# else: 4u# fi else: 3u#+.5curve# fi); %tail_adj
+% lower_p;
+pickup tiny.nib;
+pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+%%%
+if serifs:
+ numeric inner_jut[];
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut1=jut; % stay for tail serif
+ else: rt x1r+inner_jut1+.5u+1=lft x3l-inner_jut1; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut1); % lower left serif
+ %dish_serif(4,3,g,1/3,inner_jut1,h,1/3,jut); %!!! % lower right serif
+ inner_jut2=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,inner_jut2); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut2,f,1/3,jut); % upper right serif
+ filldraw z.b0--z.b1--z.e1--z.e0--cycle; % upper inter_serif bar
+else:
+ lft x1'= lft x1l; top y1'r=h; pos1'(vair,90);
+ rt x3'=rt x3r; y3'=y1'; pos3'(vair,90);
+ filldraw stroke z1'e--z3'e; fi % upper bar
+%%%%%
+w:=w+if (not serifs) or monospace: 3u+.5curve else: 4u fi;
+% tail_part(4);
+_zero:=4;
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9;
+_six:=10; _seven:=11; _eight:=12; _nine:=13;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+set_bar_axis; y[_one]r=y[_two]r=y2.bh; y[_one]l=y[_two]l=y1.bh;
+penpos[_three](max(currentbreadth+eps,curve if hefty:-3stem_corr fi),0);
+y[_three]=.5[y[_one]r,-d];
+x[_two]l=x[_two]r=w-4.75u; x[_one]l=x[_one]r=x[_zero];
+x[_three]r=hround(w-u); x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_five]=z[_three]; pos[_five](curve if hefty:-3stem_corr fi,0);
+ pos[_six](vair,-90); bot y[_six]r=-d-oo; y[_seven]-.5flare=-.85d;
+ pos[_seven](hair,-180); pos[_eight](bulb_diam,-180);
+ rt x[_eight]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);
+ z[_seven]r=z[_eight]r;
+ x[_six]=max(rt x[_eight]l,.6[x[_five],x[_seven]r]);
+ (x,y[_six]r)=whatever[z[_six]l,z[_five]l];
+ x[_six]r:=max(x,.5[x[_seven]r,x[_six]]);
+ filldraw stroke super_arc.e([_five],[_six]);
+ bulb([_six],[_seven],[_eight]); % bulb
+else:
+ pickup fine.nib; z[_five]=z[_three];
+ pos[_five](max(fine.breadth,curve if hefty:-3stem_corr fi),0);
+ pos[_nine](vair',-90); pos[_six](.6[vair',flare],-105);
+ rt x[_six]r=x[_three]-4.5u; bot y[_six]r=-d;
+ bot y[_nine]r=-d-oo; x[_nine]=.35[x[_six]r,x[_three]r];
+ filldraw stroke super_arc.e([_five],[_nine])
+ & term.e([_nine],[_six],left,.75,4); fi
+%%%
+if serifs:
+ if rt x2r+jut+.5u+1<=x[_three]r: inner_jut3=jut;
+ else: rt x2r+inner_jut3+.5u=x[_three]r; fi
+ slab:=vair; % lower.slab
+ dish_serif(4,3,g,1/3,inner_jut1,h,1/3,inner_jut3); fi % lower right serif
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter r_dsc (looks like p)";
+cyrchar(r_dsc,10u#+serif_fit#,x_height#,
+ max(1.6desc_depth#,paren_depth#));%r_ddepth
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#,0); full_d:=d;
+d:=vround min(desc_depth,max(vair+slab+oo+1+eps,full_d-max(.4desc_depth,.55beak)-slab));%r_dscs
+% lower_r;
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs:
+ sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ if is_ogonek:
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi %!!! % lower serif
+fi
+%%%%%
+% r_descender/ogonek
+if is_ogonek:
+ d:=d+desc_depth;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l fi,tiny.bot y2+.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ ogonek_move=bot y2;
+ easy_ogonek(the_pen,9,10,11); % ogonek
+ chardp:=d/hppp;
+else:
+ d:=full_d;
+ numeric right_jut;
+ right_jut=if serifs: 1.414jut else: .5stem+.5u fi;
+ r_serif(2,0,o,1/3,jut,p,1/3,beak_darkness,right_jut,.5beak_jut); % lower left serif
+fi
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter lat_q";
+cyrchar(lat_q,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs:
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter t_dsc - te descender";
+cyrchar(t_dsc,9u#-width_adj#,x_height#,
+ if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-beak_jut#+.35u#; %Gamma->x_height+.65u#
+adjust_fit(0,0);
+begingroup
+% lower_t;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(vair,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.4beak_jut); % left arm and beak
+%%%
+save slab; % lower.slab
+if serifs:
+ if is_ogonek: slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); %!!! % lower serif
+ fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,6,7,8); % ogonek
+else:
+ slab:=vair; % lower.slab
+ numeric right_jut;
+ right_jut=if serifs: 1.414jut else: .5stem+.5u fi;
+ r_serif(2,1,g,1/3,1.414jut,h,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(1,2,3,4,5, 6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter tetse - ligature tetse";
+cyrchar(tetse,10.5u# if not serifs:+.5width_adj# fi, % n_width+.5
+ x_height#,sbeak#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(1.8u#-.5width_adj#,
+ serif_fit# if not serifs:+.5(stem#-u#) fi) %dl_adj
+% lower_c;tetse
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround (2u-.5fudged.stem-eps) if monospace:-.35u fi;
+rt x3r=rt x4r=w-hround (2.5u-.5fudged.stem-eps); %x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric inner_jut,right_jut;
+save slab; % lower.slab
+if serifs:
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+else:
+ lft x2'= lft x2l; bot y2'l=0; pos2'(vair',90);
+ rt x4'= rt x4r; y4'=y2'; pos4'(vair',90);
+ filldraw stroke z2'e--z4'e; fi % lower_bar
+% lowercase descender
+slab:=vair; % lower.slab
+inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi;
+r_serif(4,3,g,1/3,inner_jut,h,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+if serifs:
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; fi % lower inter_serif bar
+% T part
+pickup crisp.nib; pos5(vair,90); pos6(hair,180); pos7(hair,0);
+x5=x1; x5-x6=x7-x5;
+lft x6r=l+letter_fit+hround if monospace:.1u else:.45u fi;
+top y5r=h; y6=good.y(y5l-beak/1.4)-eps; y7=y6;
+arm(5,6,q,beak_darkness,-.35beak_jut); arm(5,7,r,beak_darkness,.35beak_jut);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter ch_vcrs - che vcrossed";
+cyrchar(ch_vcrs,10u# if not serifs:+.5width_adj# fi,x_height#,0); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_ch;
+pickup tiny.nib;
+numeric middle_weight; middle_weight=.6[thin_join,vair];
+pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+penpos2'(fudged.stem,0); z2'=z2;
+penpos5(middle_weight,90); penpos6(middle_weight,90);
+penpos6'(middle_weight,90);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0; x5l=1/3[x1,x3];
+y6l=vround(.48h-.5middle_weight if serifs:-.15(.5[hair,.7stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+y5l=y6l; x6=x6'=x3;
+if serifs: y6'l=min(3/5h,y6l-hair+1.05stem); fi
+if serifs:
+ if ((y6'l-y6l)>=middle_weight+1+eps):
+ fill stroke z2'e{down}..z5e{right}...{.75(z5-z6)+z6'}z6'e; % arc
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+else:
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{right}z6e; fi % arc
+%%%%%
+% vcross
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric middle_weight;
+middle_weight=max(currentbreadth+eps,.6[thin_join,vair]);
+pos7(middle_weight,0); pos8(middle_weight,0);
+lft x7l=lft x8l=hround (.5[x1,x3]-.5middle_weight);
+top y8-bot y7=.5x_height; .5[y7,y8]=y6;
+filldraw stroke z7e--z8e; % cross bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter lat_w";
+cyrchar(lat_w,13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs:
+ numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+% cyrillic lowercase thickness
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % upper middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % upper left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % upper right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+lhchar "Lowercase Cyrillic letter n_ltl - en with left tail";
+cyrchar(n_ltl,10u# if not serifs:+.5width_adj# fi,x_height#,desc_depth#); % n_width
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#,serif_fit#);
+% lower_n;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+bar_stroke(x1,x3); % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ %dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+% l_tail(2)x;
+_zero:=2;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+vair'+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ %rt x[_four]l=floor x[_zero]-1.5u if monospace: / expansion_factor fi); %2.5u
+ lft x[_four]r=-1/6u if monospace: / expansion_factor fi; %2.5u
+ (x,y[_two]r)=whatever[z[_two]l,z[_one]l];
+ x[_two]r:=max(x,.5[x[_three]r,x[_two]]);
+ forsuffixes e=l,r:
+ z[_one]'e=((0,y[_four])--(w,y[_four])) intersectionpoint
+ (pulled_arc.e([_one],[_two])); endfor
+ if lft x[_one]'l>rt x[_four]l+max(1,1/3vair+.5):
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ else:
+ x[_one]'l:=min(rt x[_four]l+max(1,hround(1/3vair+.5)),rt x[_one]'r-vair)+.5fine-eps;
+ filldraw z[_five]r--pulled_arc.r([_one],[_two])--z[_two]l{right}
+ ..z[_one]'l{up}..{up}z[_five]l--cycle;
+ fi
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](vair',-90); pos[_three](.6[vair',flare],-105);
+ rt x[_three]r=x[_zero]-2u; bot y[_three]r=-d;%3u
+ bot y[_two]r=-d-oo; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(1,2,3,4,5,6, 7,8,9,10,11,[_one]'); endchar;
+
+iff serifs:
+lhchar "Lowercase Cyrillic letter delta - Lowercase Greek delta";
+cyrchar(delta,8u#,asc_height#,0);
+italcorr .9asc_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=-u; y0=1.1h;
+numeric light_flare; light_flare=2/3[vair,flare];
+x1=w-2u-.5light_flare; y1=h-.5light_flare;
+numeric theta; theta=angle (z1-z0);
+pos1(light_flare,theta-90); pos2(.2[vair,light_flare],-90); pos3(vair,theta);
+x2=x3+u; y2=h;
+x4=.5w+.5u; x6=.55[x7,x5]; top y8r=x_height+oo; z4=z8;
+pos6(vair,-90); pos7(stem,-180); pos8(vair,-270);
+pos4(stem,angle(z4-z0)+90); pos5(stem,30);
+z3=.5[.5[z1,z4],z0];
+y5+.1x_height=y7=.5[y6,y8]; bot y6=-oo;
+lft x7r=hround(1.4u-.5stem); rt x5r=hround(w-u);
+filldraw stroke z1e{z0-z1e}....z2e....z3e{(z0-z1)rotated 90}
+ ...z4e{z4e-.8[z4,z0]}
+ ....z5e{down}...pulled_arc.e(6,7) & pulled_arc.e(7,8); % hook and bowl
+filldraw z1r{z1r-z0}...z1l{z0-z1l}--cycle; % bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,.7x_height#*slant-.5u#);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff not serifs:
+lhchar "Lowercase Cyrillic letter delta - Lowercase Greek delta";
+cyrchar(delta,8u#,asc_height#,0);
+italcorr .9asc_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=-u; y0=1.1h;
+numeric light_flare; light_flare=2/3[vair,flare];
+x1=w-2u-.5light_flare; y1=h-.5light_flare;
+numeric theta; theta=angle (z1-z0);
+pos1(light_flare,theta-90); pos2(.2[vair,light_flare],-90);
+x2=x3+u; y2=h;
+x4=.5w+.5u; x6=.5[x7,x5]; top y8r=x_height+oo; z4=z8;
+pos6(vair,-90); pos7(stem,-180); pos8(vair,-270);
+pos4(.5[vair,stem],angle(z4-z0)+90); pos5(fudged.stem,0); pos3(vair,angle(z4-z0)+90);%theta
+z3=.4[z4,(x0,.5[y0,h])];
+y5=y7=.5[y6,y8]; bot y6=-oo;
+lft x7r=hround(1.4u-.5stem); rt x5r=hround(w-1.4u+.5stem);
+z35=point 1.5 of (z1{z0-z1}...z2....z3{z4-z0});
+pos35(vair,angle(.5[z4,z1]-z0));
+filldraw stroke z1e{z0-z1e}...z2e....z3e{z4e-z0}
+ ...z4e{z4-.8[z4,(x0,h)]}
+ ...%z5e{down}...
+{{interim superness:=more_super;
+pulled_arc.e(5,6) & pulled_arc.e(6,7) & pulled_arc.e(7,8)}}; % hook and bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,.7x_height#*slant-.5u#);
+penlabels(0,1,2,3,35,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter m_tl - m tail";
+cyrchar(m_tl,12u# if not serifs:+width_adj# fi,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0,0 else:serif_fit#,serif_fit# fi); %wlett_adj
+% lower_m;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.stem-3stem_corr);
+stem3=min(stem2,hround (fudged.hair-2stem_corr));
+stem4=max(stem1,hround(fudged.stem-3stem_corr));
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround (w-2.5u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: oo fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut+eps; lower_notch=y5+notch_cut-eps;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5+eps,lower_notch)--(x0-.5-eps,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+%%%
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1+eps+.5stem3<=lft x4l-.5stem3-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1+eps+.5stem3=lft x4l-.5stem3-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ serif(1,2,a,1/3,-jut); % upper left serif
+ serif(3,4,d,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); fi % lower left serif
+ %dish_serif(4,3,e,1/3,jut,f,1/3,jut); fi %!!! % lower right serif
+%%%%%
+% l_tail(4);
+_zero:=4;
+_one:=9; _two:=11; _three:=12; _four:=13; _five:=14;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+vair'+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=max(x[_zero]l-bulb_diam,
+ floor x[_zero]-2.5u if monospace: / expansion_factor fi);
+ (x,y[_two]r)=whatever[z[_two]l,z[_one]l];
+ x[_two]r:=max(x,.5[x[_three]r,x[_two]]);
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](vair',-90); pos[_three](.6[vair',flare],-105);
+ rt x[_three]r=x[_zero]-3u; bot y[_three]r=-d;
+ bot y[_two]r=-d-oo; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(0,1,1',2,3,3',4,5,6,7,8,10, 9,11,12,13,14); endchar;
+
+lhchar "Lowercase Cyrillic letter r_gcrs - r grave crossed";
+cyrchar(r_gcrs,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+% lower_r;
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e & super_arc.e(4,5)
+ & super_arc.e(5,6) & z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs:
+ sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+%%%%%
+path p; numeric unbalance,outer_jut;
+p=z5{(x5,y6)-z5}...superness[(x6,y5),(x5,y6)]{z6-z5}...{z6-(x5,y6)}z6;
+z9=point.75 of p;
+numeric unbalance,outer_jut;
+unbalance=if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+put_cyrcross(x9,(y9-bar_height),-outer_jut,-unbalance*outer_jut);
+%%%
+penlabels(0,1,2,3,4,5,6,7,8, 9); endchar;
+
+lhchar "Lowercase Cyrillic letter s_acrs - s acute crossed";
+cyrchar(s_acrs,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_s;
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs:
+ pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else:
+ pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; % arc and lower terminal
+fi
+%%%%%
+pair outer_point; path p; numeric unbalance,outer_jut;
+outer_point=superness[(x4r,y3r),(x3r,y4r)];
+p=z3{(x3,y4)-z3}
+ ... (.5superpull)[superness[(x4,y3),(x3,y4)],outer_point]{z4-z3}...{z4-(x3,y4)}z4;
+z6=point.75 of p;
+unbalance=.95; %if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+put_cyrcross(x6,(y6-bar_height),unbalance*outer_jut,outer_jut);
+%%%
+penlabels(0,1,2,3,4,5, 6); endchar;
+
+lhchar "Lowercase Cyrillic letter g_crsdsc - ghe hcrossed descender";
+cyrchar(g_crsdsc,8u#-.5width_adj#,x_height#,
+ if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u#
+adjust_fit(serif_fit#,-.25u#);
+begingroup
+% lower_g;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(Vround(vair-vair_corr),90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ if is_ogonek:
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); fi %!!! % lower serif
+fi
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ slab:=vair; % lower.slab
+ numeric right_jut;
+ right_jut=if serifs: 1.414jut else: 1.7u fi;
+ r_serif(2,1,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+% hstroke
+bar_stroke(hround 1/3u-serif_fit,x1r+1.7u); % bar
+penlabels(1,2,3,4, 5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter h_hcrs - kha (looks like X)";
+cyrchar(h_hcrs,if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+% lower_h;
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut; y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l); alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty:
+ z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else:
+ fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+%%%
+if serifs:
+ numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+%%%%%
+% hstroke
+bar_stroke(hround 1/3u-serif_fit,w-hround 1/3u+serif_fit);
+penlabels(0,1,2,3,4,12,13,24,34, 5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter semi soft sign";
+cyrchar(semisn,9u#,x_height#+acc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(if serifs: serif_fit# else: 0 fi,if monospace:.5u# else:0 fi);
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ sloped_serif.l(1,2,a,1/3,outer_jut,serif_drop); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+%%%
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+lft x8=hround 1/3u if serifs:-serif_fit fi; x9=w-2.5u;
+top y8r=top y9r=vround x_height+eps;
+filldraw stroke z8e--z9e; % cross bar
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Lowercase Russian letter i_shdsc - short i with descender";
+cyrchar(i_shdsc,10u# if not serifs:+.5width_adj# fi, % n_width
+ x_height#+acc_height#,if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#); full_h:=h; h:=x_height;
+begingroup
+% lower_i;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-2stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(vair'+eps); y6=vround(h-vair-eps);
+ alpha1=diag_ratio(1,stem1,y6-y5,x5r-x6l);
+ penpos5(min(2fudged.stem,alpha1*stem1),0);
+ penpos6(min(2fudged.stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else:
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ y5l=vround(y2+bracket+eps); y6r=vround(y3-bracket-eps);
+ stem1=max(tiny.breadth,fudged.hair-2stem_corr);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+numeric inner_jut;
+if serifs:
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ if is_ogonek:
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+fi
+% lowercase descender
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,14,15,16); % ogonek
+else:
+ if not serifs: inner_jut:=0; fi
+ slab:=vair; % lower.slab
+ right_jut:=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi;
+ r_serif(4,3,g,1/3,inner_jut,h,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+%%%%%
+% the accent
+h:=full_h; cbreve(.5w,0, 7,8,9,10,11,12,13);
+penlabels(1,2,3,4,5,6, 7,8,9,10,11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter r_tl (looks like p)";
+cyrchar(r_tl,10u#+serif_fit#,x_height#,
+ max(1.6desc_depth#,paren_depth#));%r_ddepth
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#,0); full_d:=d;
+d:=vround min(desc_depth,max(vair+slab+oo+1+eps,full_d-max(.4desc_depth,.55beak)-slab));%r_dscs
+% lower_r;
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs:
+ sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); %!!! % lower serif
+fi
+%%%%%
+% tail_part(2);%!!!
+_zero:=2;
+_one:=9; _two:=10; _three:=11; _four:=12; _five:=13;
+_six:=14; _seven:=15; _eight:=16; _nine:=17;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,
+ min(full_d-d-.18desc_depth-1-eps,hround 7/8[hair,flare]));%!!!
+y[_one]l=y[_two]l=vround min(if serifs:-.5d else: -d+vair fi,-oo-.6[thin_join,vair]-eps);%!!!
+y[_one]r-y[_one]l=y[_two]r-y[_two]l=.6[thin_join,vair];%!!!
+penpos[_three](max(currentbreadth+eps,curve if hefty:-3stem_corr fi),0);
+y[_three]=.5[y[_one]r,-full_d];%!!!
+x[_two]l=x[_two]r=w-4.75u; x[_one]l=x[_one]r=x[_zero];
+x[_three]r=hround(w-2u); x[_two]l:=x[_four]l:=x[_two]r-.25curve;%!!!
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_five]=z[_three]; pos[_five](curve if hefty:-3stem_corr fi,0);
+ pos[_six](vair,-90); bot y[_six]r=-full_d-oo; %!!!
+ y[_seven]-.5flare=-full_d+.15desc_depth;%!!!
+ pos[_seven](hair,-180); pos[_eight](bulb_diam,-180);
+ rt x[_eight]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-2.5u if monospace: / expansion_factor fi);%!!!
+ z[_seven]r=z[_eight]r;
+ x[_six]=max(rt x[_eight]l,.6[x[_five],x[_seven]r]);
+ (xx,y[_six]r)=whatever[z[_six]l,z[_five]l];%!!!
+ x[_six]r:=max(xx,.5[x[_seven]r,x[_six]]);%!!!
+ filldraw stroke super_arc.e([_five],[_six]);
+ bulb([_six],[_seven],[_eight]); % bulb
+else:
+ pickup fine.nib; z[_five]=z[_three];
+ pos[_five](max(fine.breadth,curve if hefty:-3stem_corr fi),0);
+ pos[_nine](vair',-90); pos[_six](.6[vair',flare],-105);
+ rt x[_six]r=x[_three]-3.5u; bot y[_six]r=-full_d;%!!!
+ bot y[_nine]r=-full_d-oo; x[_nine]=.35[x[_six]r,x[_three]r];%!!!
+ filldraw stroke super_arc.e([_five],[_nine])
+ & term.e([_nine],[_six],left,.75,4); fi
+%%%
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11,12,13,14,15,16,17); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf
new file mode 100644
index 00000000000..2b4dfdf2490
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2lou.mf
@@ -0,0 +1,1385 @@
+%
+% lgt2lou.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Cyrillic letters 0--127 for T2 encoding
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2
+%
+% X2 T2A T2B T2C
+%
+% AE "41 A "8c - - Ligature AE
+% ABH_CH "44 D - - "91 Abkhasian che (same as lower e with hook)
+% ABH_CH_dsc "45 E - - "92 Abkhasian che descender
+% K_vcrs "46 F "8b - - Ka vertically crossed
+% K_hcrs "47 G - - "8b Ka horisontally crossed
+% L_dsc "48 H - "8a "8a El with descender
+% M_dsc "4c L - - "88 Em with descender
+% ABH_HA "4e N - - "97 Abkhasian kha
+% P_tl "4f O - - "80 Pe with tail
+% R_dsc "50 P - - "85 Er with descender
+% LAT_Q "51 Q - - - Latin letter Q
+% T_dsc "52 R - - "82 Te with descender
+% TETSE "54 T - - "81 Ligature Te-Tse
+% CH_vcrs "56 V "97 - - Che vertically crossed
+% LAT_W "57 W - - - Latin letter W
+% N_ltl "1c - - "99 En with left tail
+% DELTA "1e - "86 - Delta
+% M_tl - - - "8e Em with tail
+% R_gcrs - - - "86 Er grave crossed
+% S_acrs - - - "91 Es acute crossed
+% G_crsdsc - - "80 - Ghe crossed with descender
+% H_hcrs - - "94 - Kha horisontally crossed
+% SEMISN - - - "93 Semi Soft Sign
+% I_shdsc - - - "94 I Short with descender
+% R_tl - - - "9b Er with tail
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Uppercase Cyrillic letter AE - ligature AE";
+cyrchar(AE,16u#,cap_height#,0);
+if is_small_cap: getcharcode(ae); fi
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,amid_stem,outer_jut,alpha;
+amid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(amid_stem,0); pos2(amid_stem,0);
+lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0); x5=x1;
+top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty):
+ rt x6r=hround(w-3.65u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else:
+ rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+if serifs:
+ numeric inner_jut;
+ pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,.5cap_jut); fi % lower middle serif
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter ABH_CH - lower e hook";
+cyrchar(ABH_CH,(11.25u#+max(.75u#,.5cap_curve#)),
+ cap_height#,0);
+if is_small_cap: getcharcode(abh_ch); fi
+italcorr .7cap_height#*slant-.4u#; %O+.1u
+adjust_fit(1.5dot_size#-tiny# %if serifs:max(1.5u,u#+.5flare#)
+ if monospace: +\\1.25u#,-.25u#+ else:,fi\\ 0);
+%large_e;`large e' shape (ecfonts)
+numeric left_curve,right_curve;
+left_curve=right_curve+3stem_corr=cap_curve if not serifs: -1.5stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib;
+pos1(right_curve,0); pos2(vair,90); pos3(left_curve,180);
+y1=good.y .52h; top y2r=h+o; y0l=bot y1; x2=.5w+.25u;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.75u,1.5u-.5left_curve); %lower_e+.25u
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-o; x4=x2+.25u;
+if serifs:
+ pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else:
+ pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+7/8[thin_join,vair']; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+% bulb
+if serifs: pickup crisp.nib; fi
+pos6(max(currentbreadth+eps,7/8[thin_join,vair']),-90);
+x6=x3; bot y6r=y0l;
+lft x7r=min(l+letter_fit+hround(.5u-.5),lft x0l-flare-1); y7=.5[y1,y2];
+if serifs:
+ pos7(hair,-180); pos8(flare+(cap_stem-stem),-180); z8r=z7r;
+ {{less_tense; cyrbulb(6,7,8)}};
+else:
+ pos7(hair,-150);
+ filldraw stroke z6e{left}...{dir60}z7e; fi
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11,12,13); endchar;
+
+lhchar "Uppercase Cyrillic letter ABH_CH_dsc - lower e hook ogonek";
+cyrchar(ABH_CH_dsc,(11.25u#+max(.75u#,.5cap_curve#)),
+ cap_height#,desc_depth#);
+if is_small_cap: getcharcode(abh_ch_dsc); fi
+italcorr .7cap_height#*slant-.4u#; %O+.1u
+adjust_fit(1.5dot_size#-tiny# %if serifs:max(1.5u,u#+.5flare#)
+ if monospace: +\\1.25u#,-.25u#+ else:,fi\\ 0);
+%large_e;`large e' shape (ecfonts)
+numeric left_curve,right_curve;
+left_curve=right_curve+3stem_corr=cap_curve if not serifs: -1.5stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib;
+pos1(right_curve,0); pos2(vair,90); pos3(left_curve,180);
+y1=good.y .52h; top y2r=h+o; y0l=bot y1; x2=.5w+.25u;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.75u,1.5u-.5left_curve); %lower_e+.25u
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-o; x4=x2+.25u;
+if serifs:
+ pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else:
+ pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+7/8[thin_join,vair']; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+% bulb
+if serifs:
+ pickup crisp.nib; fi
+pos6(max(currentbreadth+eps,7/8[thin_join,vair']),-90);
+x6=x3; bot y6r=y0l;
+lft x7r=min(l+letter_fit+hround(.5u-.5),lft x0l-flare-1); y7=.5[y1,y2];
+if serifs:
+ pos7(hair,-180); pos8(flare+(cap_stem-stem),-180); z8r=z7r;
+ {{less_tense; cyrbulb(6,7,8)}};
+else:
+ pos7(hair,-150);
+ filldraw stroke z6e{left}...{dir60}z7e; fi
+%%%%%
+% descender-ogonek
+ path p.r;
+ p.r=if serifs: pulled_arc.r(3,4)...{x5-x4,5(y5-y4)}z5r
+ else: term.r(4',5,right,1,4) fi;
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if serifs: if hefty: 2.3 else: 2.15 fi else: % sansserif
+ if is_bold: .3 else: .2 fi\\ fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_move=-o;
+ ogonek_pos=(point tt of p.r)+.5(the_pen-if serifs: tiny else: fine fi)*
+ unitvector((direction tt of p.r) rotated 90)-(ogonek_breadth-the_pen,0);
+easy_ogonek(the_pen,9,10,11); % ogonek
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter K_vcrs - KA vcrossed (`roman')";
+cyrchar(K_vcrs,15u# if not serifs:+.5width_adj# fi, % N_width+1.5u
+ cap_height#,0);
+if is_small_cap: getcharcode(k_vcrs); fi
+italcorr cap_height#*slant-.5u#; %K
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% Kv_rbowl;
+ pos10(fudged.cap_stem,0);
+ numeric right_jut,stem[],alpha[];
+ right_jut=if serifs:.6cap_jut else:.4tiny fi; pickup tiny.nib;
+%
+ stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+ stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+ top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+ bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+ x4=x10; y4=1/3h; y10=y1; x10=hround max(w-11.5u,w-10.5u-.5fudged.cap_stem);
+ penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+ alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+ penpos6(alpha2*(stem2-tiny),0);
+ alpha2=diag_ratio(1,.5(stem2-tiny),y10-y6,x6r-x10);
+ forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z10-z6)=z3'$+whatever*(z3-z4); endfor
+ z5=.5[z5l,z5r];
+ z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+ % we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+ z6'r=z6r+penoffset z10-z6 of currentpen+whatever*(z10-z6);
+ z6'l=z6l+penoffset z6-z10 of currentpen+whatever*(z10-z6);
+ fill z5r--diag_end(5r,3'r,1,.5,3'l,5l)--z5l--
+ diag_end(5l,6'l,.5,1,6'r,5r)--cycle; % diagonals
+ pickup fine.nib; pos7(vair,90); pos8(vair,90);
+ y7=y8=y5l; x7=x1; rt x8=x5r; filldraw stroke z7e--z8e; % middle cross
+%%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+% vcross
+pickup crisp.nib; pos9(bar,0); pos11(bar,0);
+lft x9l=lft x11l=hround max(rt x1r+1,max(x5l-bar+eps,.5[rt x1r,x5l]));
+top y11-bot y9=.5cap_height; .52[y9,y11]=y7;
+filldraw stroke z9e--z11e; % cross bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter K_hcrs - KA hcrossed (`roman')";
+cyrchar(K_hcrs,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(k_hcrs); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upperr_k;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut);
+rt x6r=hround(r-letter_fit-.75u-right_jut);
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+numeric inner_jut,up_inner_jut;
+%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+%%%%%
+% hcross
+pickup crisp.nib; numeric outer_jut;
+outer_jut=if serifs: max(limit_dist,1.1cap_jut) else: 1.8u fi;
+pos7(bar,90); pos8(bar,90);
+top y7r=top y8r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+x7=x1r+1.15outer_jut; x8=hround 1/3u-cap_serif_fit;
+filldraw stroke z7e--z8e; % cross bar
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter L_dsc - EL descender";
+cyrchar(L_dsc,13.5u#,cap_height#, % DL_width:N_width
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(l_dsc); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit# if not serifs:
+ +\\.5(cap_stem#-u#),.5(cap_stem#-u#)+ else:,fi\\ cap_serif_fit#); %D_adj
+% upper_l;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+numeric light_hair,bot_vair,left_jut;
+light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi);
+left_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit-rt x2r-.65u) fi;
+bot_vair=Vround(.5[vair,light_hair]);
+x3=1/3[w-rt x1r-(1/6left_jut),rt x1r] if not serifs:-.5(cap_stem-u) fi+eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(cap_hair,-180);
+ top y3=h; y6=1/6h-max(0,flare-stem-2vair_corr-.5); z6r=z5r;
+ lft x6r=l+letter_fit+hround(.5u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]); bot y4r=-o;
+ filldraw stroke z4e{right}..
+ controls (min(15/16[x4,x3],max(x4,lft x6r+2flare))+(x3e-x3)+eps,y4e)
+ and (x3e,good.y(min(y6-.5,1/3h)+1/3(y4e-y4))-eps)..z3e; % left tail
+ {{less_tense; bulb(4,5,6)}};
+else:
+ pos3'(slab,90); pos1'(slab,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e;
+ pickup fine.nib; pos3(max(fine.breadth,light_hair),0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=2/3[x3l,x5r]; lft x5=l+letter_fit+hround(.35u-.5);
+ bot y4r=bot y5r; y3=y3'; x4l:=.25[x4,x5];
+ path p;
+ p=stroke z3{down}
+ ..controls (x3,y5+.35h-eps) and (min(7/8[x4,x3],x5+2.5light_hair+.5u),y4)
+ ..{left}z4--z5;
+ z6=point .35 of p;
+ pos6(max(fine.breadth,7/8[bot_vair,light_hair]),angle(direction .35 of p)+90);
+ filldraw stroke z3e{down}...z6e{direction .35 of p}...{left}z4e--z5e; fi % arc
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5cap_jut);
+ if is_ogonek:
+ dish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut); %!!! % lower right serif
+ fi
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); % upper right serif
+ nodish_serif(3,0,e,1/3,1.05cap_jut,f,1/3,inner_jut); % upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ numeric right_jut;
+ right_jut=
+ if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x2r-.65u) fi;
+ r_serif(2,1,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(1,2,3,4,5,6, 7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter M_dsc - M descender";
+cyrchar(M_dsc,16u#+width_adj#,cap_height#,
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(m_dsc); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,
+ cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi); %DL_adj
+% upper_m;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty:
+ y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else:
+ y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+%%%
+if serifs:
+ serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ if is_ogonek:
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi %!!! % lower right serif
+fi
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l if is_bold: +.4tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,9,10,11); % ogonek
+else:
+ numeric right_jut;
+ right_jut=if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi;
+ r_serif(4,3,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(0,1,1',2,3,3',4,5,6,7,8, 9,10,11); endchar;
+
+lhchar "Uppercase Cyrillic letter ABH_HA - Abkhasian KHA";
+cyrchar(ABH_HA,14u#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(abh_ha); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup fine.nib; numeric right_curve,mid_curve;
+right_curve=max(fine.breadth,.8[vair,curve] if hefty:-stem_corr fi);
+mid_curve=max(fine.breadth,.65[vair,curve] if hefty:-2stem_corr fi);
+pos1(vair',90); pos3(vround(vair+1.5vair_corr),-90);
+pos2(cap_curve,180); pos4(right_curve,0);
+if monospace:
+ lft x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else:
+ interim superness:=hein_super; lft x2r=hround u; fi
+x4r=w-x2r; x1=x3=x6=.5w; top y1r=h+o; bot y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=.52h;
+y7=-1/3d; rt x7=hround(w-.5u);
+pos7(vair,270);
+y6=.5y5r; pos6(mid_curve,180);
+forsuffixes e=l,r: path p.e; p.e=pulled_super_arc.e(1,4)(.5superpull); endfor
+x5=if serifs:.5[x6,x4]else:.5[x6,x4]fi; top y5r=.5[y4,y1]; pos5(vair,90);
+filldraw stroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) % 3/4 bowl
+ & pulled_super_arc.e(4,5)(.25superpull)
+ & pulled_super_arc.e(5,6)(.75superpull)
+ & pulled_super_arc.e(6,7)(.5superpull); %6/4 bowl
+numeric t;
+t=min(ypart(p.l intersectiontimes ((0,top y5r+vair)--(w,top y5r+vair))),
+ ypart(p.r intersectiontimes ((lft x5,0)--(lft x5,h))));
+filldraw stroke subpath (0,.75) of p.e; %quart
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Uppercase Cyrillic letter P_tl - PE tail";
+cyrchar(P_tl,13.5u#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(p_tl); fi
+italcorr .45cap_height#*slant-.35u#; %O*.52
+adjust_fit(if monospace:-.5u# else:cap_serif_fit# fi,
+ if monospace: 5.35u# else:5.75u# fi);
+% upper_p;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+%%%
+if serifs:
+ numeric inner_jut[];
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut1=cap_jut;
+ else: rt x1r+inner_jut1+.5u+1=lft x3l-inner_jut1; fi
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut1); % lower left serif
+ %dish_serif(4,3,g,1/3,inner_jut1,h,1/3,cap_jut); % lower right serif
+ inner_jut2=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut2); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut2,f,1/3,cap_jut); % upper right serif
+ filldraw z.b0--z.b1--z.e1--z.e0--cycle; % upper inter_serif bar
+else:
+ lft x1'= lft x1l; top y1'r=h; pos1'(slab,90);
+ rt x3'=rt x3r; y3'=y1'; pos3'(slab,90);
+ filldraw stroke z1'e--z3'e; fi % upper_bar
+%%%%%
+w:=w+6.25u;
+% Tail_part(4);
+_zero:=4;
+_one:=5; _two:=6; _three:=7;
+_four:=8; _five:=9; _six:=10; _seven:=11; _eight:=12;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+penpos[_one](vair,90); penpos[_two](vair,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+y[_three]=.5[y[_one],-d]; x[_two]=max(.5w-.25u,w-7u);
+x[_one]=x[_zero]; x[_three]r=hround(w-u);
+x[_two]l:=x[_two]-.25cap_curve; y[_one]=y[_two]=.52h;
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_four]=z[_three];
+ pos[_four](cap_curve if hefty:-3stem_corr fi,0);
+ pos[_five](vair',-90); bot y[_five]r=-d-oo; y[_six]-.5flare=-.85d;
+ pos[_six](cap_hair,-180); pos[_seven](bulb_diam,-180);
+ rt x[_seven]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);
+ z[_six]r=z[_seven]r;
+ x[_five]=max(rt x[_seven]l,.6[x[_four],x[_seven]r]);
+ (x,y[_five]r)=whatever[z[_five]l,z[_four]l];
+ x[_five]r:=max(x,.5[x[_six]r,x[_five]]);
+ filldraw stroke super_arc.e([_four],[_five]);
+ bulb([_five],[_six],[_seven]); % bulb
+else:
+ pickup fine.nib; z[_four]=z[_three];
+ pos[_four](max(fine.breadth,cap_curve if hefty:-3stem_corr fi),0);
+ pos[_eight](vair,-90); pos[_five](flare,-105);
+ rt x[_five]r=x[_three]-6u; bot y[_five]r=-d;
+ y[_five]l:=good.y y[_five]l; x[_five]l:=good.y x[_five]l;
+ bot y[_eight]r=-d-o; x[_eight]=.35[lft x[_five]r,x[_three]r];
+ filldraw stroke super_arc.e([_four],[_eight])
+ & term.e([_eight],[_five],left,.75,4); fi
+%%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=x[_three]r: inner_jut3=cap_jut;
+ else: rt x2r+inner_jut3+.5u=x[_three]r; fi
+ dish_serif(4,3,g,1/3,inner_jut1,h,1/3,inner_jut3); fi % lower right serif
+penlabels(1,2,3,4, 5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Uppercase Cyrillic letter R_dsc (looks like P)";
+cyrchar(R_dsc,12u#,cap_height#,
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(r_dsc); fi
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_r;
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+%%%
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ if is_ogonek:
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi %!!! % lower serif
+fi
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,8,9,10); % ogonek
+else:
+ numeric right_jut;
+ right_jut=if serifs: 1.414cap_jut else: .5cap_stem+.5u fi;
+ r_serif(2,0',x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(0,1,2,3,4,5,6,7, 8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter LAT_Q";
+cyrchar(LAT_Q,14u#-width_adj#,cap_height#,comma_depth#);
+if is_small_cap: getcharcode(lat_q); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=cap_curve-hround stem_corr;
+penpos1(vair',90); penpos3(vair',-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"Q"| like |"O"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup tiny.nib;
+if hefty:
+ penpos5(1.2(.5[cap_bar,light_curve]),0); penpos6(1.2light_curve,0);
+ x5=.5w; x6r=hround(w-1.5u);
+ y5=vround .28h; y6=-d;
+ fill diag_end(6r,5r,.25,1,5l,6l)--diag_end(5l,6l,.5,1,6r,5r)--cycle; % tail
+else:
+ pos3'(vair,270); pos5(vair,180); pos6(vair,90);
+ pos7(cap_curve,85); penpos8(eps,180);
+ z3'=z3; x6=x3; top y6r=vround(.2h+.5vair);
+ lft x5r=hround(.5w-1.25u-.5vair); y5=.5[y3,y6];
+ bot y7l=-d; x7l=2/3[x6,x8]; y8=0; rt x8=hround(x4r+.1u);
+ filldraw stroke z3'e{left}...z5e{up}...z6e{right}
+ ..z7e{right}...z8e{up}; fi % tail
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter T_dsc - TE descender";
+cyrchar(T_dsc,13u#-width_adj#,cap_height#,
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(t_dsc); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+% upper_t;
+if odd(cap_stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+%%%
+if serifs:
+ if is_ogonek:
+ dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); %!!! % lower serif
+ fi
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,6,7,8); % ogonek
+else:
+ numeric right_jut;
+ right_jut=if serifs: 1.414cap_jut else: .5cap_stem+.5u fi;
+ r_serif(2,1,x,1/3,1.414cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(1,2,3,4,5, 6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter TETSE - ligature TETSE";
+cyrchar(TETSE,if serifs:14u#+width_adj#else:13.5u#fi,cap_height#,cap_sbeak#);
+if is_small_cap: getcharcode(tetse); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(min(4.5u#-.5stem#,3.5u#)-.5width_adj#, % Beak_adj
+ cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi); %DL_adj
+% upper_c;tetse
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(1u,2u-.5cap_stem) if monospace:-.5u fi;
+rt x3r=rt x4r=w-hround max(2u,3u-.5cap_stem);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+% T part
+pickup crisp.nib; pos5(slab,90); pos6(hair,180); pos7(hair,0);
+x5=x1; x5-x6=x7-x5;
+lft x6r=l+letter_fit+hround if monospace:.65u else: .1u fi;
+top y5r=h; y6=good.y(y5l-beak)-eps; y7=y6;
+arm(5,6,q,beak_darkness,-.5beak_jut); % arm and beak
+arm(5,7,r,beak_darkness,.5beak_jut); % arm and beak
+%%%
+numeric inner_jut,arm_thickness;
+arm_thickness=vround(slab+vair_corr);
+if serifs:
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+else:
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ pos2'(slab,90); lft x2'= lft x2l; bot y2'l=0;
+ rt x4'= rt x4r; y4'=y2'; pos4'(slab,90);
+ filldraw stroke z2'e--z4'e; fi % lower bar
+% uppercase descender
+inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+numeric right_jut;
+right_jut=
+ if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi;
+r_serif(4,3,g,1/3,inner_jut,h,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+if serifs:
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; fi % lower inter_serif bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Uppercase Cyrillic letter CH_vcrs - CHE vcrossed";
+cyrchar(CH_vcrs,13.5u#,cap_height#,0);
+if is_small_cap: getcharcode(ch_vcrs); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_ch;
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0;
+x5l=1/3[x1,x3]; y5=y6; if serifs: y6'=y6-cap_hair+1.05cap_stem; fi
+x6=x6'=x3; y6=good.y (h-.52h if serifs: -.35(.5[cap_hair,.7cap_stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+clearpen; penpos2'(cap_stem,0); z2'=z2;
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos5(middle_weight,90); penpos6(middle_weight,90); penpos6'(middle_weight,90);
+if serifs:
+ if((y6'-y6)>=middle_weight+1+eps):
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{.75(z5-z6)+z6'}z6'e;
+ else: fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+else: filldraw stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+%%%%%
+% vcross
+pickup crisp.nib; pos7(bar,0); pos8(bar,0);
+lft x7l=lft x8l=hround(.5[x1r,x3l]-.5bar);
+top y8-bot y7=.5cap_height; .5[y7,y8]=y6;
+filldraw stroke z7e--z8e;
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter W";
+cyrchar(LAT_W,18u#,cap_height#,0);
+if is_small_cap: getcharcode(lat_w); fi
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs:
+ numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace:
+ inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty:
+ inner_jut1=inner_jut4=cap_jut;
+ else:
+ fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+lhchar "Uppercase Cyrillic letter N_ltl - EN with left tail";
+cyrchar(N_ltl,13.5u#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(n_ltl); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_n;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+%dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+% L_tail(2)x;
+_zero:=2;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+if serifs: vair' else: slab fi+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ %rt x[_four]l=floor x[_zero]-2u if monospace: / expansion_factor fi;%2.5u
+ lft x[_four]r=-1/3u if monospace: / expansion_factor fi;%2.5u
+ %filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ forsuffixes e=l,r:
+ z[_one]'e=((0,y[_four])--(w,y[_four])) intersectionpoint
+ (pulled_arc.e([_one],[_two])); endfor
+ if lft x[_one]'l>rt x[_four]l+max(1,.5vair+.5):
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ else:
+ x[_one]'l:=min(rt x[_four]l+max(1,hround(.5vair+.5)),rt x[_one]'r-vair)+.5fine-eps;
+ filldraw z[_five]r--pulled_arc.r([_one],[_two])--z[_two]l{right}
+ ..z[_one]'l{up}..{up}z[_five]l--cycle;
+ fi
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](slab,-90); pos[_three](flare,-105);
+ rt x[_three]r=x[_zero]-2.5u; bot y[_three]r=-d;%4u
+ bot y[_two]r=-d-o; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(1,2,3,4,5,6, 7,8,9,10,11); endchar;
+
+iff serifs:
+lhchar "Uppercase Cyrillic letter DELTA - Lowercase Greek delta";
+cyrchar(DELTA,10u#-width_adj#,asc_height#,0);
+if is_small_cap: getcharcode(delta); fi
+italcorr .9asc_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=-u; y0=1.1h;
+numeric light_flare; light_flare=3/4[vair,flare];
+x1=w-2u-.5light_flare; y1=h-.5light_flare;
+numeric theta; theta=angle (z1-z0);
+pos1(light_flare,theta-90); pos2(.2[vair,light_flare],-90);
+x2=x3+2u; y2=h;
+x4=.5w+.5u; x6=.55[x7,x5]; top y8r=1/4[x_height,cap_height]+o; z4=z8;
+pos6(vround(vair+1.5vair_corr),-90); pos7(cap_stem,-180); pos8(vair',-270);
+pos3(1/3[hair,cap_stem],angle(z4-z0)+60); pos4(cap_stem,angle(z4-z0)+45);
+pos5(cap_stem,15);
+z3=1/3[z4,(x0,.5[y0,h])];
+y5+.05x_height=y7=.5[y6,y8]; bot y6=-o;
+lft x7r=hround(1.4u-.5cap_stem); rt x5r=hround(w-u);
+z35=point 1.5 of (z1{z0-z1}...z2....z3{z4-z0});%{(z0-z1)rotated 90});
+pos35(hair,angle(.5[z4,z1]-z0));
+filldraw stroke z1e{z0-z1e}....z2e...z35e..z3e{z4e-z0}%{(z0-z1)rotated 90}
+ ...z4e{z4e-.8[z4,z0]}
+ ....z5e{down}...pulled_arc.e(6,7) & pulled_arc.e(7,8); % hook and bowl
+filldraw z1r{z1r-z0}...z1l{z0-z1l}--cycle; % bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,.7x_height#*slant-.5u#);
+penlabels(0,1,2,3,35,4,5,6,7,8); endchar;
+
+iff not serifs:
+lhchar "Uppercase Cyrillic letter delta - Lowercase Greek delta";
+cyrchar(DELTA,11u#-2width_adj#,asc_height#,0);
+italcorr .9asc_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=-u; y0=1.1h;
+numeric light_flare; light_flare=3/4[vair,flare];
+x1=w-2u-.5light_flare; y1=h-.5light_flare;
+numeric theta; theta=angle (z1-z0);
+pos1(light_flare,theta-90); pos2(.2[vair,light_flare],-90);
+x2=x3+2u; y2=h;
+x4=.5w+.5u; x6=.5[x7,x5]; top y8r=1/4[x_height,cap_height]+o; z4=z8;
+pos6(vround(vair+1.5vair_corr),-90); pos7(cap_stem,-180); pos8(vair',-270);
+pos3(vair,angle(z4-z0)+90); pos4(.5[vair,cap_stem],angle(z4-z0)+90);
+pos5(fudged.stem,0);
+z3=1/3[z4,(x0,.5[y0,h])]; y5=y7=.5[y6,y8]; bot y6=-o;
+lft x7r=hround(1.4u-.5stem); rt x5r=hround(w-1.4u+.5stem);
+z35=point 1.5 of (z1{z0-z1}...z2....z3{z4-z0});
+pos35(vair,angle(.5[z4,z1]-z0));
+filldraw stroke z1e{z0-z1e}...z2e..z35e..z3e{z4e-z0}
+ ...z4e{z4-.8[z4,(x0,h)]}
+ ...
+{{interim superness:=more_super;
+pulled_arc.e(5,6) &
+pulled_arc.e(6,7) & pulled_arc.e(7,8)}}; % hook and bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,.7x_height#*slant-.5u#);
+penlabels(0,1,2,3,35,4,5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter M_tl - M tail";
+cyrchar(M_tl,16u#+width_adj#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(m_tl); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_m;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+%%%
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); fi % upper right serif
+ %dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+%%%%%
+% L_tail(4);
+_zero:=4;
+_one:=9; _two:=10; _three:=11; _four:=12; _five:=13;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+if serifs: vair' else: slab fi+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=floor x[_zero]-2.5u if monospace: / expansion_factor fi;
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](slab,-90); pos[_three](flare,-105);
+ rt x[_three]r=x[_zero]-4u; bot y[_three]r=-d;
+ bot y[_two]r=-d-o; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(0,1,1',2,3,3',4,5,6,7,8,9, 10,11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter R_gcrs - R grave crossed";
+cyrchar(R_gcrs,12u#,cap_height#,0);
+if is_small_cap: getcharcode(r_gcrs); fi
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0); full_h:=h; h:=cap_height;
+% upper_r;
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+%%%
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+%%%%%
+numeric unbalance,outer_jut;
+unbalance=if monospace: 1 else: 1.1 fi;
+z8=(.5[x5,x6],y6);
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5cap_stem+if serifs: max(limit_dist,cap_jut) else: 1.8u fi;
+put_cyrcross(x8,y8-.52cap_height,-outer_jut,-unbalance*outer_jut)(cyrcaph);
+%%%
+penlabels(0,1,2,3,4,5,6,7, 8); endchar;
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter S_acrs - S acute crossed";
+cyrchar(S_acrs,13u#,cap_height#,0);
+if is_small_cap: getcharcode(s_acrs); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% upper_s;
+pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+x1r-x1'=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+%%%%%
+pair outer_point; path p; numeric unbalance,outer_jut;
+outer_point=superness[(x4r,y3r),(x3r,y4r)];
+p=z3{(x3,y4)-z3}
+ ...superpull[superness[(x4,y3),(x3,y4)],outer_point]{z4-z3}...{z4-(x3,y4)}z4;
+z7=point.8 of p;
+unbalance=if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5cap_stem+if serifs: max(limit_dist,cap_jut) else: 1.8u fi;
+put_cyrcross(x7,y7-.52cap_height,unbalance*outer_jut,outer_jut)(cyrcaph);
+penlabels(1,1',2,3,4,5,6, 7); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter S_acrs - es acute crossed";
+cyrchar(S_acrs,11.5u#,cap_height#,0);
+if is_small_cap: getcharcode(s_acrs); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% uppers_s;
+pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+%%%%%
+path p; numeric unbalance,outer_jut;
+p=z3{(x3,y4)-z3}...superness[(x4,y3),(x3,y4)]{z4-z3}...{z4-(x3,y4)}z4;
+z6=point.8 of p;
+unbalance=if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5cap_stem+if serifs: max(limit_dist,cap_jut) else: 1.8u fi;
+put_cyrcross(x6,y6-.52cap_height,unbalance*outer_jut,outer_jut)(cyrcaph);
+penlabels(1,2,3,4,5, 6); endchar;
+
+lhchar "Uppercase Cyrillic letter G_crsdsc - GHE hcrossed descender";
+cyrchar(G_crsdsc,if monospace: 9u# else: 11u# fi-width_adj#, %G_width
+ cap_height#,cap_sbeak#);
+if is_small_cap: getcharcode(g_crsdsc); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_g;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u ,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+%%%
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ if is_ogonek:
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi %!!! % lower serif
+fi
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |stem| is drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,5,6,7); % ogonek
+else:
+ numeric right_jut;
+ right_jut=if serifs: 1.414cap_jut else: .5cap_stem+.5u fi;
+ if not serifs:
+ numeric arm_thickness; arm_thickness=vround(slab-vair_corr);
+ save slab; slab:=arm_thickness; fi %bottom.desc.slab
+ r_serif(2,1,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+% hcross
+pickup crisp.nib; numeric outer_jut;
+outer_jut=if serifs: max(limit_dist,1.1cap_jut) else: 1.8u fi;
+pos5(bar,90); pos6(bar,90);
+top y6r=top y5r=vround (.52h+.5bar)+eps;
+x6=x1r+1.15outer_jut; x5=hround 1/3u-cap_serif_fit;
+filldraw stroke z5e--z6e;
+penlabels(1,2,3,4 ,5,6,7); endchar;
+
+lhchar "Uppercase Cyrillic letter H_hcrs (looks like X)";
+cyrchar(H_hcrs,13u#,cap_height#,0);
+if is_small_cap: getcharcode(h_hcrs); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_h;
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+%%%
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+%%%%%
+% cross
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+if hefty: y6=y5=y0; else:
+ z0'=whatever[z1,z4]=whatever[z2,z3]; y6r=y5r=y0'; fi
+x6=w-u; x5=u; pos5(middle_weight,90); pos6(middle_weight,90);
+filldraw stroke z5e--z6e;
+penlabels(0,1,2,3,4,12,13,24,34, 5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter SEMISN - SEMI SOFT SIGN";
+cyrchar(SEMISN,12.5u#,cap_height#,0);
+if is_small_cap: getcharcode(semisn); fi
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(2u#+cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.5[vair,cap_band];
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+lft x8=w-x9-4u; %hround 1/3u if serifs:-serif_fit fi;
+x9=hround(w-2.65u); %x4; %1r+2.5u;
+top y8r=top y9r=vround .85h;%vround x_height+eps;
+filldraw stroke z8e--z9e; % cross bar
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter I_shdsc - SHORT I WITH DESCENDER";
+cyrchar(I_shdsc,13.5u#,cap_height#+acc_height#, % N_width
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(i_shdsc); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_i;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(slab+eps); y6=vround(h-slab-eps);
+ alpha1=diag_ratio(1,stem1,y6-y5,x5r-x6l);
+ penpos5(min(2fudged.cap_stem,alpha1*stem1),0);
+ penpos6(min(2fudged.cap_stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: y5l=y2+bracket+eps; y6r=y3-bracket-eps;
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ stem1=max(tiny.breadth,fudged.hair);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+numeric inner_jut;
+if serifs:
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ if is_ogonek:
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+fi
+%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,14,15,16); % ogonek
+else:
+ if not serifs: inner_jut:=0; fi
+ numeric right_jut;
+ right_jut=if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi;
+ r_serif(4,3,g,1/3,inner_jut,h,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+%%%%%
+% the accent
+h:=cap_height+acc_height;
+cbreve(.5w,0, 7,8,9,10,11,12,13)(cyrcaph);
+penlabels(1,2,3,4,5,6, 7,8,9,10,11,12,13); endchar;
+
+lhchar "Uppercase Cyrillic letter R_tl (looks like P)";
+cyrchar(R_tl,12u#,cap_height#,desc_depth#); %udesc/og_depth
+if is_small_cap: getcharcode(r_tl); fi
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_r;
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+%%%
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi %!!! % lower serif
+%%%%%
+% Tail_part(2);%!!!
+_zero:=2;
+_one:=8; _two:=9; _three:=10;
+_four:=11; _five:=12; _six:=13; _seven:=14; _eight:=15;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+penpos[_one](vair,90); penpos[_two](vair,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+y[_three]=.5[y[_one],-d]; x[_two]=max(.5w-.25u,w-7u);
+x[_one]=x[_zero]; x[_three]r=hround(w-2u);%!!!
+x[_two]l:=x[_two]-.25cap_curve; y[_one]=y[_two]=.5y7l;%!!!
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_four]=z[_three];
+ pos[_four](cap_curve if hefty:-3stem_corr fi,0);
+ pos[_five](vair',-90); bot y[_five]r=-d-oo; y[_six]-.5flare=-.85d;
+ pos[_six](cap_hair,-180); pos[_seven](bulb_diam,-180);
+ rt x[_seven]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);%!!!
+ z[_six]r=z[_seven]r;
+ x[_five]=max(rt x[_seven]l,.6[x[_four],x[_seven]r]);
+ (x,y[_five]r)=whatever[z[_five]l,z[_four]l];
+ x[_five]r:=max(x,.5[x[_six]r,x[_five]]);
+ filldraw stroke super_arc.e([_four],[_five]);
+ bulb([_five],[_six],[_seven]); % bulb
+else:
+ pickup fine.nib; z[_four]=z[_three];
+ pos[_four](max(fine.breadth,cap_curve if hefty:-3stem_corr fi),0);
+ pos[_eight](vair,-90); pos[_five](flare,-105);
+ rt x[_five]r=x[_three]-6u; bot y[_five]r=-d;
+ y[_five]l:=good.y y[_five]l; x[_five]l:=good.y x[_five]l;
+ bot y[_eight]r=-d-o; x[_eight]=.35[lft x[_five]r,x[_three]r];
+ filldraw stroke super_arc.e([_four],[_eight])
+ & term.e([_eight],[_five],left,.75,4); fi
+penlabels(0,1,2,3,4,5,6,7, 8,9,10); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf
new file mode 100644
index 00000000000..47078c5937d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2slvi.mf
@@ -0,0 +1,192 @@
+%
+% lgt2slvi.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic Old Slav letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% az
+% i_az
+% l_yus
+% il_yus
+% gerv
+% nash
+% zemla
+% ksi
+% vizhe used ukr_i
+% izhe used lat_i
+% izh in lgcomu
+% omga
+% omga_rnd
+% ot
+% omga_tlo
+% Vzelo used lat_s
+% fita in lgcomu
+% koppa
+% uk
+% yat in lgcomu
+% cherv
+% shta
+% psi
+% b_yus in lgcomu
+% ib_yus
+% est used ukr_e
+% i_est
+% narrow_e used eps
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Cyrillic letter ligature az - old a";
+cyrcharmoving(az);
+
+lhchar "Italic Cyrillic letter ligature i_az - iot az";
+cyrcharmoving(i_az);
+
+lhchar "Italic Cyrillic letter l_yus - little yus";
+cyrcharmoving(l_yus);
+
+lhchar "Italic Cyrillic letter il_yus - iotfied little yus";
+cyrcharmoving(il_yus);
+
+lhchar "Italic Cyrillic letter gerv - Glagolic letter";
+cyrcharmoving(gerv);
+
+lhchar "Italic Cyrillic letter nash - old en";
+cyrcharmoving(nash);
+
+lhchar "Italic Cyrillic letter zemla";
+cyrcharmoving(zemla);
+
+% like CYR_.z or numeral 3
+lhchar "Italic Cyrillic letter ksi";
+cyrchar(ksi,7.5u#,x_height#+1.75dot_size#,desc_depth#);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %e
+adjust_fit(0,.5serif_fit#); h:=x_height; pickup fine.nib;
+pos0(flare,180); pos2(vair,90); top y2r=h+oo;
+numeric right_curve; right_curve=max(fine.breadth,curve-stem_corr);
+pos4(vair,-90); pos5(vair,-90); pos6(vair,90); pos5'(vair,90);
+x2=x6=.5[u,x7']; pos7'(right_curve,0); rt x7'r=hround(w-.6u);
+pos3(.5[hair,curve],0); rt x3r=min(rt x7'r-1,hround(w-u));
+y3=.5[y4l,y2l]; x4=1/3[x5,x3l]; y4=y5; y5'=y13; y5=y5'=bar_height;
+lft x1r=hround .625u; y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+pos1(hair,180); bulb(2,1,0); % bulb
+lft x5=lft x5'=min(rt x0l+.5vair,lft x6)+eps;
+filldraw stroke super_arc.e(2,3) & super_arc.e(3,4)..z5e; % upper bowl
+pos13(vair,90); x13=hround.5[.5u,w-.8u];
+rt x7r=hround(w-.6u); x7r-x7l=hround .5[vair,stem]-fine; %
+x9=x10=2u; x11=.5w-.5u; y9=-.3d; pos11(vair,135); pos10(vair,90);
+numeric theta; theta=-90+angle(28u,x_height); slope:=x_height/28u;
+pos9(.5[stem,curve],theta); ellipse_set(13l,7l,8l,9l); ellipse_set(13r,7r,8r,9r);
+bot y10l=-d-oo; y11=min(-3/4d-oo,y7l);
+filldraw stroke z11e{x10-x11,2(y10-y11)}...z10e{left}...z9e
+ ---z8e...{up}z7e...{left}z13e...{left}z5'e; % main stroke
+%"hachek"
+pickup crisp.nib;
+pos15(vair',90); x15=x13; y15=h;
+x13-x14=x16-x13=good.x 2.25u; top y14=top y16=h+.75dot_size;
+pos16(.25[vair,curve],angle(z16-z15)+90); pos14(whatever,0);
+z14l=z15l+whatever*(z15-z14); (x14r,y)=z15r+whatever*(z15-z14); %y14l=y14r=y14;
+filldraw stroke z14e--z15e{z16r-z15}..{.5right}z16e; % diagonals
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+lhchar "Italic Cyrillic letter vizhe - variant izhe";
+cyrcharmoving(vizhe);
+
+lhchar "Italic Cyrillic letter izhe";
+cyrcharmoving(izhe);
+
+lhchar "Italic Cyrillic letter omga - omega";
+cyrcharmoving(omga);
+
+lhchar "Italic Cyrillic letter omga_rnd - omega round";
+cyrcharmoving(omga_rnd);
+
+lhchar "Italic Cyrillic letter ot - omega with te accent";
+cyrcharmoving(ot);
+
+lhchar "Italic Cyrillic letter omga_tlo";
+cyrcharmoving(omga_tlo);
+
+lhchar "Italic Cyrillic letter koppa (looks like c with tail)";
+cyrchar(koppa,8u#,x_height#,desc_depth#);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(if monospace:0 else:-.35u#fi,0); pickup fine.nib;
+pickup fine.nib; pos2(vair,90); pos1(hair,0); pos0(flare,0);
+x2=.5(w+u); top y2l=vround(h+1.5oo); y1=.5[bar_height,h];
+rt x1r=max(rt x2,hround(w-u))+eps; bulb(2,1,0); % bulb
+numeric theta; theta=-90-angle(27u,x_height); slope:=x_height/-27u;
+pos5(max(fine.breadth,fudged.stem-4stem_corr),theta); pos6(vair,135);
+lft x3r=hround max(.6u,1.35u-.5curve); x3l-x3r=hround.8[vair,fudged.stem]-fine;
+x5+u=x6=w-2u; y5=.1d; bot y6l=-d-oo;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+{{less_tense;
+ filldraw stroke z6e{right}...z5e---z4e...{up}z3e...{right}z2e}}; % main stroke
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Italic Cyrillic letter uk";
+cyrcharmoving(uk);
+
+lhchar "Italic Cyrillic letter cherv - old che";
+cyrcharmoving(cherv);
+
+lhchar "Italic Cyrillic letter psi";
+cyrchar(psi,11u#,asc_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+%%ef stem
+pickup tiny.nib; pos9(stem',0); pos10(stem,0);
+pos0'(stem',0); pos1'(stem,0); z1'l=z0'l; x0'=x9; x1'=x10;
+lft x9l=hround(.5[x3,x5]-.5stem'); top y9=h; % if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x10r;
+y1'=ypart(((edge,body_height+2dot_size)--(edge,-o))
+ intersectionpoint(z3r{down}...{right}z4r...{up}z5r));
+pickup tiny.nib; bot y10=-d;
+filldraw stroke z9e--z0'e--z1'e--z10e; % stem
+pickup crisp.nib; pos12(hair,0); pos11'(stem,0);
+z11'=z10; x12l=x11'l; bot y12=0;
+filldraw stroke z11'e--z12e; % point
+if serifs: numeric ef_jut; ef_jut=if monospace:1.4 fi jut;
+ sloped_serif.l(9,0',a,1/3,ef_jut,serif_drop); % upper serif
+ save slab; slab:=vair; % lower.slab
+ dish_serif(10,0',b,1/3,ef_jut,c,1/3,ef_jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Italic Cyrillic letter shta - old sh";
+cyrcharmoving(shta);
+
+lhchar "Italic Cyrillic letter ib_yus - iot big yus";
+cyrcharmoving(ib_yus);
+
+lhchar "Italic Cyrillic letter i_est - iot est (IC with mid-line)";
+cyrcharmoving(i_est);
+
+lhchar "Italic Cyrillic letter vnarrow_e";
+cyrcharmoving(vnarrow_e);
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2slvl.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2slvl.mf
new file mode 100644
index 00000000000..0db9b511d50
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2slvl.mf
@@ -0,0 +1,1053 @@
+%
+% lgt2slvl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Old Slav letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% az
+% i_az
+% l_yus
+% il_yus
+% gerv
+% nash
+% zemla
+% ksi
+% vizhe used ukr_i
+% izhe used lat_i
+% izh in lgcomu
+% omga
+% omga_rnd
+% ot
+% omga_tlo
+% Vzelo used lat_s
+% fita in lgcomu
+% koppa
+% uk
+% yat in lgcomu
+% b_yus in lgcomu
+% ib_yus
+% narrow_e
+% cherv
+% shta
+% psi
+% est used ukr_e
+% i_est
+% narrow_e used eps
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Cyrillic letter az - old a";
+cyrchar(az,9u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#; %d->x_height
+adjust_fit(0,serif_fit#);
+pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+% a_part of italic_ae;
+pickup tiny.nib;
+numeric light_stem; light_stem=fudged.stem;
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pos1(light_stem,0); pos2(light_stem,0);
+penpos6(max(eps,vair-fine),-225); penpos4(curve-fine,-180);
+rt x1r=rt x2r=hround(w-2.5u+.5light_stem);
+if serifs: top y1=h+min(oo,serif_drop); bot y2=-min(oo,serif_drop);
+ else: top y1=h; bot y2=0; fi
+y3=2/3bar_height; x6=x1;
+y6+vair=hround min(8x_height,h-max(bracket,.5slab))-eps;
+penpos5(max(eps,light_vair-fine),-90); penpos3(thin_join-fine,0);
+pickup fine.nib; lft x3l=tiny.lft x1l;
+lft x4r=hround(1.5u-.5curve); x5=.5[x4,x3];
+y4=.3[y5,y1]; bot y5r=-oo;
+filldraw stroke z6e{3(x4-x1),y4-y1}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,3); % bowl of a
+pickup tiny.nib;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,1,c,1/3,jut,min(oo,serif_drop)); fi % lower serif
+%%%%%
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter ligature i_az - iot az";
+cyrchar(i_az,9u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#; %d->x_height
+adjust_fit(if monospace: 4u# else: 4.75u# fi +serif_fit#,
+ serif_fit#);
+pickup fine.nib; begingroup
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+% a_part of italic_ae;
+pickup tiny.nib;
+numeric light_stem; light_stem=fudged.stem;
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pos1(light_stem,0); pos2(light_stem,0);
+penpos6(max(eps,vair-fine),-225); penpos4(curve-fine,-180);
+rt x1r=rt x2r=hround(w-2.5u+.5light_stem);
+if serifs: top y1=h+min(oo,serif_drop); bot y2=-min(oo,serif_drop);
+ else: top y1=h; bot y2=0; fi
+y3=2/3bar_height; x6=x1;
+y6+vair=hround min(8x_height,h-max(bracket,.5slab))-eps;
+penpos5(max(eps,light_vair-fine),-90); penpos3(thin_join-fine,0);
+pickup fine.nib; lft x3l=tiny.lft x1l;
+lft x4r=hround(1.5u-.5curve); x5=.5[x4,x3];
+y4=.3[y5,y1]; bot y5r=-oo;
+filldraw stroke z6e{3(x4-x1),y4-y1}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,3); % bowl of a
+pickup tiny.nib;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,1,c,1/3,jut,min(oo,serif_drop)); fi % lower serif
+% i_part(6);
+_zero:=6;
+_one:=7; _two:=8; _three:=9; _four:=10;
+%
+pickup tiny.nib; pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround(2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); fi % lower stem serif
+x[_three]=x[_zero]; x[_four]=x[_one];
+y[_three]=y[_four]=y[_zero]; pickup fine.nib;
+penpos[_three](.6[thin_join,vair],90);
+penpos[_four](.6[thin_join,vair],90); %fi
+fill stroke z[_three]e--z[_four]e; % bar
+endgroup;
+%%%
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter l_yus - little yus (A with midstem)";
+cyrchar(l_yus,10u#+2stem#,x_height#,0);
+adjust_fit(serif_fit#,serif_fit#);
+% lower_amod;
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=fudged.stem-stem_corr;
+left_stem=min(fudged.hair if hefty:-2stem_corr fi,right_stem);
+outer_jut=.8jut; pickup tiny.nib; y1=y4=0;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u+eps;
+%
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+.5[apex_oo,apex_o];%+apex_o+apex_oo
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=.6[thin_join,vair];
+penstroke z5e--z6e; % bar line
+pickup tiny.nib; x7=.5[x5,x6]; top y7=y5; bot y8=0;
+pos7(max(tiny.breadth+eps,.7[thin_join,stem]),0);
+pos8(max(tiny.breadth+eps,.7[thin_join,stem]),0);
+x7=x8; filldraw stroke z8e--z7e; % middle stem
+if serifs: prime_points_inside(8,7); numeric inner_jut;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,.6inner_jut)(dark); % lower left serif
+ dish_serif(4',3,c,1/2,.6inner_jut,d,1/3,outer_jut); % lower right serif
+ dish_serif(8,7,e,1/3,.6inner_jut,f,1/3,.6inner_jut); fi % lower middle serif
+%%%%%
+penlabels(1,1',2,3,4,4',5,6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter il_yus - iot little yus";
+cyrchar(il_yus,10u#+2stem#,x_height#,0);
+adjust_fit(if monospace:4u# else:4.75u# fi+serif_fit#,serif_fit#);
+% lower_amod;iot
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=fudged.stem-stem_corr;
+left_stem=min(fudged.hair if hefty:-2stem_corr fi,right_stem);
+outer_jut=.8jut; pickup tiny.nib; y1=y4=0; x1l=w-x4r=outer_jut+.25u+eps;
+%
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+.5[apex_oo,apex_o];%+apex_o+apex_oo
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=.6[thin_join,vair];
+penstroke z5e--z6e; % bar line
+pickup tiny.nib; x7=.5[x5,x6]; top y7=y5; bot y8=0;
+pos7(max(tiny.breadth+eps,.7[thin_join,stem]),0);
+pos8(max(tiny.breadth+eps,.7[thin_join,stem]),0);
+x7=x8; filldraw stroke z8e--z7e; % middle stem
+if serifs: prime_points_inside(8,7); numeric inner_jut;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,.6inner_jut)(dark); % lower left serif
+ dish_serif(4',3,c,1/2,.6inner_jut,d,1/3,outer_jut); % lower right serif
+ dish_serif(8,7,e,1/3,.6inner_jut,f,1/3,.6inner_jut); fi % lower middle serif
+%%%%%
+x9=x5; y9=.5[y5l,y5r]; save slab;
+% i_part(9);
+_zero:=9;
+_one:=10; _two:=11; _three:=12; _four:=13;
+%
+pickup tiny.nib; pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround(2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); fi % lower serif
+x[_three]=x[_zero]; x[_four]=x[_one];
+y[_three]=y[_four]=y[_zero]; pickup fine.nib;
+penpos[_three](.6[thin_join,vair],90);
+penpos[_four](.6[thin_join,vair],90); %fi
+fill stroke z[_three]e--z[_four]e; % bar
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter gerv - Glagolic letter";
+cyrchar(gerv,10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+penpos3(.6[thin_join,vair],90); penpos5'(stem,0);
+pos5(stem,0); pos6(stem,0);
+x5=x6=w-x1; y6=y2; x3=x1; y5=bar_height; z5'=z5;
+penpos4(.6[thin_join,vair],90);
+y3=y4=.52h; x4=.5[x1,w-rt x3r if not serifs:-u fi];
+fill stroke z3e..pulled_arc.e(4,5'); % arc
+filldraw stroke z5e--z6e; % stem
+if serifs:
+ sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x6l-.5jut: inner_jut=.5jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,.5jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(6,5,e,1/3,inner_jut,f,1/3,.5jut); fi % lower right serif
+% hcross
+pickup crisp.nib; pos7(bar,90); pos8(bar,90);
+top y7r=top y8r=vround (min(.5[x_height,h]+.5bar,h-max(bracket,1.2slab))-eps);
+x7=hround 1/3u-serif_fit; x8=x6;
+filldraw stroke z7e--z8e; % cross bar
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter nash - old en";
+cyrchar(nash,10u# if not serifs:+.5width_adj# fi,x_height#,0); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-2stem_corr;
+ upper_notch=y5-cap_notch_cut-eps; lower_notch=y6+cap_notch_cut+eps;
+ x5r =rt x1r; x6l =lft x3l; y6=vround(.7bar_height-eps);
+ if monospace: y5=vround(h-1.2vair'-eps); else: y5=h; fi
+ alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l);
+ penpos5(min(2fudged.stem,alpha1*stem1),0);
+ penpos6(min(2fudged.stem,alpha1*stem1),0);
+ x5'=x1l; z5'=whatever[z5l,z6l]; x6'=x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6'; x5:=max(x1l,x5);
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5--z5l..
+ if y2'<upper_notch: {right}(x2'+1,upper_notch){down}... fi
+ {z6-z5} diag_in(5l,6l,1,6)--z6--z6r ..
+ if y3'>lower_notch: {left}(x3'-1.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5) --cycle; % diagonal
+else:
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ y5r=vround(y3-1.2bracket-eps); y6l=vround(.7bar_height-eps);
+ stem1=max(tiny.breadth,fudged.hair-2stem_corr);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6l-bot y5r);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter zemla";
+cyrchar(zemla,8u#,x_height#,sbeak#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+% the beak is turning down
+pos7(arm_thickness2,90); pos8(hair,0); %!!!
+bot y7l=0; x7=x4; rt x8r=hround(w-.75u);
+y8=good.y(y7l-beak/1.2)-eps; %!!!
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+% like CYR_.z or numeral 3
+lhchar "Lowercase Cyrillic letter ksi";
+cyrchar(ksi,if serifs:7.5u#else:8u#fi,x_height#+.5acc_height#,desc_depth#);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(0 if monospace:+\\.5u#,.5u#+else:,fi\\.5serif_fit#); h:=x_height;
+set_bar_axis; y4l=y5l=y6r=y2.bh; y4r=y5r=y6l=y1.bh; y4=y5=y6=y0.bh;
+pickup fine.nib; numeric right_curve,low_curve;
+right_curve=if serifs: curve-stem_corr else: curve-3stem_corr fi;
+low_curve=max(fine.breadth,if serifs: stem-stem_corr else:.5[vair,stem]-3stem_corr fi);
+penpos2(vair,90); penpos3(.5[hair,curve],0);
+y2r=h+oo; x2=x8=.5[u,w-.6u-.5stem]; x1r=hround.625u;
+x7r=hround(w-.6u); x3r=min(x7r-1,hround(w-u));
+x5r=x5l=min(x1r+flare+if not serifs:.5 fi hair-fine,x2)+eps;
+y3=.5[y4l,y2l]; x4l=x4r=1/3[x5l,x3l]; x6l=x6r=hround.5[.5u,w-.8u];
+{{interim superness:=if serifs:more_super else:hein_super fi;
+ fill stroke super_arc.e(2,3)}};
+fill stroke super_arc.e(3,4)..z5e; % upper bowl
+numeric theta; theta=-90+angle(28u,x_height); slope:=x_height/28u;
+penpos9(low_curve,theta); pos9'(low_curve,theta); z9=z9';
+x7r-x7l=hround.5[vair,stem];
+x9=x10=2.2u; x11=.5w-.5u; bot y9=-.15d; z9'=z9; bot y10l=-d-oo;
+ellipse_set(6l,7l,8l,9l); ellipse_set(6r,7r,8r,9r);
+{{less_tense; fill stroke z9e---z8e...{up}z7e...{left}z6e}}; % main stroke
+if serifs: pos1(hair,180); pos0(flare,180); pos2'(vair,90); z2'=z2;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ cyrbulb(2',1,0); % bulb
+ pos10(vair,90); pos11(vair,135); y11=min(-3/4d-oo,y7l);
+ filldraw stroke z11e{x10-x11,2(y10-y11)}
+ ...z10e{left}...z9'e{z8e-z9e}; % tail
+ % "hachek"
+ penpos14(vair',90); penpos15(whatever,0);
+ x14=x6l; y14=h+oo-eps;
+ x6l-x15=x16-x6l=good.x 2.25u; y15=y16=h+.5acc_height+oo;
+ penpos16(.25[vair,curve],angle(z16-z14)+90);
+ z15l=z14l+whatever*(z14-z15); (x15r,y)=z14r+whatever*(z14-z15);
+ fill stroke z15e--z14e{z16r-z14}..{.5right}z16e; % diagonals
+else: pos1(min(right_curve,1.2flare)-.2tiny,175); pos2'(vair,90);
+ z2'=z2; y1l=max(.76h,top y5r+eps);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...{right}z2'e;
+ pos10(vair,45);
+ filldraw stroke z10e{left}...z9'e{z8e-z9e}; % tail
+ % "hachek"
+ pickup pencircle scaled min(.5fine,.15vair);
+ pos14(vair,0); pos16(vair,0); pos15(stem,0);
+ x8-x14=x16-x8+eps; bot y15=h+oo-eps; x15=x6l;
+ top y14=top y16=h+.5acc_height+oo; lft x14l=hround(rt x15r-3.25u-.5vair);
+ z0=whatever[z14r,z15r]=whatever[z15l,z16l];
+ filldraw z15l--z14l--z14r--z0--z16l--z16r--z15r--cycle; fi % diagonals
+pickup fine.nib;
+fill z5l{left}..if bot y5l>top y5r:(lft x5l,bot y5l)---(lft x5r,top y5r)
+ else: (lft x5l,y5){down} fi ..{right}z5r--cycle; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+lhchar "Lowercase Cyrillic vizhe - variant izhe - like latin i with umlaut";
+cyrchar(vizhe,5u#,lc_trema_height#,0);
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+h:=x_height; pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); %lower.slab
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+% the accent
+lowercase_umlaut(0,0, 3,4,5,6);
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter izhe - like small uppercase Latin I";
+cyrchar(izhe,5u#,min(asc_height#,10/7x_height#+.5idot_diam#),0);%!!!from ec
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;%!!!from ec
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);%!!!from ec
+if serifs:
+ x3r=max(x1r,x1+.5(idot_diam-tiny)-.2jut)
+else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,.9jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter omga - omega";
+cyrchar(omga,14u#+width_adj#,x_height#,0);%omga width
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: -.5u#,-.5u# else: 0,0 fi); %o
+% lower_omega;
+if odd((r-l)-stem'): change_width; fi % symmetric & all three equal
+if not serifs: interim superness:=more_super; fi
+set_bar_axis; if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+pos6(stem',0); top y6=y2.bh;
+lft x6l=hround (.5w-.5stem'); % middle stem point
+% Omega_bowl
+pos2(vair,90); pos3(curve,180); pos4(vair',270);
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare];
+ pos1(hair,0); pos0(light_bulb,0); pos5(fudged.hair,0);
+ top y2r=vround(h+1.5oo); bot y4r=-oo;
+ lft x3r=hround max(.6u,1.35u-.5curve)-eps; y3=.5h;
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ x5=(.5w+eps); y5=max(good.y(.5bar_height-.9),y4l+vair');
+ rt x1r=hround min(.5w-max(.67u,.55stem)+eps,lft x5l-1);
+ x2=x4+if monospace:-fi.25u=hround (.67[lft x3r,rt x1r]);
+ {{less_tense; bulb(2,1,0)}}; % bulb
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos5(flare,275);
+ x2=x4=(.25w+1.25u); lft x3r=hround max(u,2u-.5cap_curve);
+ x5r=(.5w+eps); top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4) &
+ term.e(4,5,right,.8,4); % arc and terminals
+fi
+%%%
+% mirror + middle stem
+forsuffixes $ = if serifs: 1l,1r,0l, fi 2l,2,2r,3l,3,3r,4l,4,4r,5l,5,5r:
+ x.m$-x6r=x6l-x$; y.m$=y$; endfor;
+if serifs:
+ {{less_tense; bulb(m2,m1,m0)}}; % bulb
+ filldraw stroke pulled_super_arc.e(.m2,.m3)(.7superpull)
+ & pulled_super_arc.e(.m3,.m4)(.5superpull)
+ ..tension .9 and 1..{x.m5-x.m4,5(y.m5-y4)}z.m5e; % arc and lower terminal
+else:
+ filldraw stroke super_arc.e(.m2,.m3) & super_arc.e(.m3,.m4) &
+ term.e(.m4,.m5,left,.8,4); % arc and terminals
+fi
+if serifs:
+ path p.l,p.r; numeric t;
+ p.l=z4r{right}..tension .9 and 1..{x5-x4,5(y5-y4)}z5r;
+ p.r=z.m4r{left}..tension .9 and 1..{x.m5-x.m4,5(y.m5-y.m4)}z.m5r;
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l); if t<0: t:=1; fi
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+ z5'l=(x6l,y5); z5'r=(x6r,y5); z5'=.5[z5'l,z5'r]; z6=.5[z6l,z6r];
+ dish_serif(6,5',a,1/3,.5cap_jut,b,1/3,.5cap_jut);
+else:
+ path p.l,p.r; numeric t; p.l=term.r(4,5,right,.8,4);
+ p.r=term.r(.m4,.m5,left,.8,4);
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l);
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+fi
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter omga_rnd - omega round";
+cyrchar(omga_rnd,11u#,x_height#,0); %f width - eps
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+if serifs: interim superness:=1.05 superness;
+ else: interim superness:=1.075 superness; fi
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% dots
+if serifs: pickup crisp.nib; else: pickup fine.nib; fi
+numeric bulb_diam; bulb_diam=hround 7/8[hair,flare];
+z5=z1r; z6=z3r; x5'=x6'=x1; pos5(bulb_diam,0); pos6(bulb_diam,0);
+bot y5'=max(.5h+1,bot y1l-.7bulb_diam);
+top y6'=min(.5h-1,top y3l+.7bulb_diam);
+pos6'(min(bulb_diam,vstem),0);
+pos5'(min(bulb_diam,vstem),0);
+filldraw circ_stroke z5e--z5'e; filldraw circ_stroke z6e--z6'e; %dots
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter ot - omega with te accent";
+cyrchar(ot,14u#+width_adj#,x_height#+acc_height#,0);%omga width
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: -.5u#,-.5u# else: 0,0 fi); %o
+full_h:=h; h:=x_height;
+% lower_omega;
+if odd((r-l)-stem'): change_width; fi % symmetric & all three equal
+if not serifs: interim superness:=more_super; fi
+set_bar_axis; if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+pos6(stem',0); top y6=y2.bh;
+lft x6l=hround (.5w-.5stem'); % middle stem point
+% Omega_bowl
+pos2(vair,90); pos3(curve,180); pos4(vair',270);
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare];
+ pos1(hair,0); pos0(light_bulb,0); pos5(fudged.hair,0);
+ top y2r=vround(h+1.5oo); bot y4r=-oo;
+ lft x3r=hround max(.6u,1.35u-.5curve)-eps; y3=.5h;
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ x5=(.5w+eps); y5=max(good.y(.5bar_height-.9),y4l+vair');
+ rt x1r=hround min(.5w-max(.67u,.55stem)+eps,lft x5l-1);
+ x2=x4+if monospace:-fi.25u=hround (.67[lft x3r,rt x1r]);
+ {{less_tense; bulb(2,1,0)}}; % bulb
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos5(flare,275);
+ x2=x4=(.25w+1.25u); lft x3r=hround max(u,2u-.5cap_curve);
+ x5r=(.5w+eps); top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4) &
+ term.e(4,5,right,.8,4); % arc and terminals
+fi
+%%%
+% mirror + middle stem
+forsuffixes $ = if serifs: 1l,1r,0l, fi 2l,2,2r,3l,3,3r,4l,4,4r,5l,5,5r:
+ x.m$-x6r=x6l-x$; y.m$=y$; endfor;
+if serifs:
+ {{less_tense; bulb(m2,m1,m0)}}; % bulb
+ filldraw stroke pulled_super_arc.e(.m2,.m3)(.7superpull)
+ & pulled_super_arc.e(.m3,.m4)(.5superpull)
+ ..tension .9 and 1..{x.m5-x.m4,5(y.m5-y4)}z.m5e; % arc and lower terminal
+else:
+ filldraw stroke super_arc.e(.m2,.m3) & super_arc.e(.m3,.m4) &
+ term.e(.m4,.m5,left,.8,4); % arc and terminals
+fi
+if serifs:
+ path p.l,p.r; numeric t;
+ p.l=z4r{right}..tension .9 and 1..{x5-x4,5(y5-y4)}z5r;
+ p.r=z.m4r{left}..tension .9 and 1..{x.m5-x.m4,5(y.m5-y.m4)}z.m5r;
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l); if t<0: t:=1; fi
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+ z5'l=(x6l,y5); z5'r=(x6r,y5); z5'=.5[z5'l,z5'r]; z6=.5[z6l,z6r];
+ dish_serif(6,5',a,1/3,.5cap_jut,b,1/3,.5cap_jut);
+else:
+ path p.l,p.r; numeric t; p.l=term.r(4,5,right,.8,4);
+ p.r=term.r(.m4,.m5,left,.8,4);
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l);
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+fi
+%%%%%
+% the accent
+% low_te(6);
+_zero:=7; x7=.5[x6l,x6r];
+_one:=8; _two:=9; _three:=10; _four:=11; _five:=12;
+%
+if serifs: pickup crisp.nib;
+ else: pickup pencircle scaled min(.5fine,.15vair); fi
+numeric stem[]; stem1=if hefty: fudged.hair-2stem_corr else: .7[vair,stem] fi;
+stem2=if serifs: vair else: max(currentbreadth+eps,.6[thin_join,vair]) fi;
+stem3=if serifs: hair else: max(currentbreadth+eps,.6[thin_join,vair]) fi;
+pos[_one](stem1,0); pos[_two](stem1,0);
+lft x[_one]l=lft x[_two]l=hround(x[_zero]-.5stem1);
+numeric mid_thickness;
+mid_thickness=vround if serifs:1/4 else: 1/3 fi[vair,stem];
+bot y[_two]=bot y[_four]=bot y[_five]=
+ vround max(h+o+max(tiny,.5mid_thickness),1/3[h,h+acc_height]+o-.5mid_thickness);
+top y[_one]=top y[_three]r=max(h+acc_height,bot y[_two]+1.5vair);
+filldraw stroke z[_one]e--z[_two]e; % stem
+pos[_three](stem2,90); pos[_four](stem3,0); pos[_five](stem3,180);
+x[_three]=x[_one];
+rt x[_four]r=hround(x[_zero]+2.5u if monospace:/expansion_factor fi+.5vair);
+x[_four]-x[_three]=x[_three]-x[_five];
+z[_four]'=beak_darkness[(x[_four]l,y[_three]l),
+ .5[(x[_one]r,y[_three]l),z[_four]l] ];
+z[_five]'=beak_darkness[(x[_five]l,y[_three]l),
+ .5[(x[_one]l,y[_three]l),z[_five]l] ];
+filldraw z[_four]r--z[_four]l{up}...z[_four]'
+ ...{left}(x[_one]r,y[_three]l)--(x[_one]r,y[_three]l){left}...z[_five]'
+ ...{down}z[_five]l--z[_five]r---
+ (x[_five]r,y[_three]r)---(x[_four]r,y[_three]r)---cycle;
+%%%
+penlabels(1,2,3,4,5,6, 8,9,10,11,12); endchar;
+
+lhchar "Lowercase Cyrillic letter omga_tlo - omega titlo";
+cyrchar(omga_tlo,14u#+width_adj#,x_height#+acc_height#,0); %omga width
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: -.5u#,-.5u# else: 0,0 fi); %o
+full_h:=h; h:=x_height;
+% lower_omega;
+if odd((r-l)-stem'): change_width; fi % symmetric & all three equal
+if not serifs: interim superness:=more_super; fi
+set_bar_axis; if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+pos6(stem',0); top y6=y2.bh;
+lft x6l=hround (.5w-.5stem'); % middle stem point
+% Omega_bowl
+pos2(vair,90); pos3(curve,180); pos4(vair',270);
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare];
+ pos1(hair,0); pos0(light_bulb,0); pos5(fudged.hair,0);
+ top y2r=vround(h+1.5oo); bot y4r=-oo;
+ lft x3r=hround max(.6u,1.35u-.5curve)-eps; y3=.5h;
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ x5=(.5w+eps); y5=max(good.y(.5bar_height-.9),y4l+vair');
+ rt x1r=hround min(.5w-max(.67u,.55stem)+eps,lft x5l-1);
+ x2=x4+if monospace:-fi.25u=hround (.67[lft x3r,rt x1r]);
+ {{less_tense; bulb(2,1,0)}}; % bulb
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos5(flare,275);
+ x2=x4=(.25w+1.25u); lft x3r=hround max(u,2u-.5cap_curve);
+ x5r=(.5w+eps); top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4) &
+ term.e(4,5,right,.8,4); % arc and terminals
+fi
+%%%
+% mirror + middle stem
+forsuffixes $ = if serifs: 1l,1r,0l, fi 2l,2,2r,3l,3,3r,4l,4,4r,5l,5,5r:
+ x.m$-x6r=x6l-x$; y.m$=y$; endfor;
+if serifs: {{less_tense; bulb(m2,m1,m0)}}; % bulb
+ filldraw stroke pulled_super_arc.e(.m2,.m3)(.7superpull)
+ & pulled_super_arc.e(.m3,.m4)(.5superpull)
+ ..tension .9 and 1..{x.m5-x.m4,5(y.m5-y4)}z.m5e; % arc and lower terminal
+else:
+ filldraw stroke super_arc.e(.m2,.m3) & super_arc.e(.m3,.m4) &
+ term.e(.m4,.m5,left,.8,4); % arc and terminals
+fi
+if serifs: path p.l,p.r; numeric t;
+ p.l=z4r{right}..tension .9 and 1..{x5-x4,5(y5-y4)}z5r;
+ p.r=z.m4r{left}..tension .9 and 1..{x.m5-x.m4,5(y.m5-y.m4)}z.m5r;
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l); if t<0: t:=1; fi
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+ z5'l=(x6l,y5); z5'r=(x6r,y5); z5'=.5[z5'l,z5'r]; z6=.5[z6l,z6r];
+ dish_serif(6,5',a,1/3,.5cap_jut,b,1/3,.5cap_jut);
+else: path p.l,p.r; numeric t; p.l=term.r(4,5,right,.8,4);
+ p.r=term.r(.m4,.m5,left,.8,4);
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l);
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+fi
+%%%%%
+% the accents
+h:=full_h;
+% palatal(expr .5w+u,0,-o);
+x_center:=.5w-.25u; x_move:=0; y_move:=-o;
+_one:=8; _two:=9; _three:=10; _four:=11;
+%
+pickup fine.nib; numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs: .8[hair,stem] else: 1/3[vair,hair] fi;
+pos[_one](stem2,180); pos[_three](1/5[stem2,stem1],0);
+pos[_two](stem1,90); pos[_four](stem1,90);
+top y[_two]r=h+o; x[_two]=x_center;
+rt x[_one]l =hround(x[_two]-3.5u if monospace: /expansion_factor fi +.5stem2);
+lft x[_three]l=hround(x[_two]+3.5u if monospace: /expansion_factor fi -.5stem2);
+bot y[_one]=bot y[_three]=
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)-.5crisp
+ else: vround 2/3[x_height+acc_height,x_height] fi;
+bot y[_four]l=max(x_height+o,.5[x_height,y[_one]]); x[_four]=x_center+5u+eps;
+forsuffixes e=l,r:
+ path p; p=z[_two]e{right}...{(x[_three]-x[_one]),-7acc_height}z[_three]e;
+ z[_three]'e=point .8 of p; endfor
+filldraw stroke z[_one]e{(x[_three]-x[_one]),7acc_height}...
+ z[_two]e{right}...
+ {direction .8 of p}z[_three]'e...{right}z[_four]e; % stroke
+%%%
+% zvat!!!moved down;
+x_center:=.5w-.25u; y_move:=-max(1/3acc_height,.5[vair,curve])-oo-eps;
+_one:=12; _two:=13; _three:=14;
+%
+numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs:vround (1/3[vair,stem]) else: vair fi;
+theta:=45; y:=min(asc_height,2x_height);
+z[_one]=(x_center-u,.55[y[_three],y]+y_move);%!!!
+z[_two]=(x_center+u,4/5[y[_three],y]+y_move);%!!!
+bot z[_three]r=(x_center+.5u,
+ if serifs: max(2/3[x_height+acc_height,x_height],x_height+o+hair)
+ -.5 if serifs: crisp else: fine fi
+ else: vround 2/3[x_height+acc_height,x_height] fi+y_move);%!!!
+pos[_one](stem1,theta+90); pos[_two](stem2,theta);
+pos[_three](stem1,theta-90);
+filldraw stroke z[_one]e{dir(theta+45)}
+ ..{dir(theta-90)}z[_two]e..{dir(theta+180)}z[_three]e; % stroke
+%
+penlabels(1,2,3,4,5,6, 8,9,10,11, 12,13,14); endchar;
+
+lhchar "Lowercase Cyrillic letter koppa (looks like c with tail)";
+cyrchar(koppa,8u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: -.1u#,0 fi);
+pickup fine.nib; pos2(vair,90);
+x2=.5(w+u); top y2l=vround(h+1.5oo);
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); fi % upper terminal
+numeric theta; theta=-90-angle(27u,x_height); slope:=x_height/-27u;
+pos5(max(fine.breadth,fudged.stem-4stem_corr),theta);
+pos6(max(fine.breadth,.6[thin_join,vair]),135);
+lft x3r=hround max(.6u,1.35u-.5curve); x3l-x3r=hround.8[vair,fudged.stem]-fine;
+x5+u=x6=w-2u; y5=.1d; bot y6l=-d-oo;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+{{less_tense;
+ filldraw stroke z6e{right}...z5e---z4e...{up}z3e...{right}z2e}}; % main stroke
+penlabels(0,1,2,3,4,5,6); endchar;
+
+% modified numeral 8
+lhchar "Lowercase Cyrillic letter uk";
+cyrchar(uk,if serifs: 9.75u# else:10.5u# fi,asc_height#,0);
+italcorr asc_height#*slant-.5u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+% lower_uk;
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+if serifs:
+ bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+else:
+ bot_thickness=vair';
+ upper_side=max(fine.breadth,hround(.3[vair',stem]-stem_corr));
+ lower_side=hround(.3[vair',stem]+stem_corr); fi
+ x0=.5w; y0=if serifs:.7x_height else:bar_height fi; %h;%%%%%%%%%%%%%%
+pickup fine.nib; theta=90-angle(20u,h); slope:=-h/20u;
+if lower_side>1.2upper_side: upper_side:=lower_side; fi
+pos1(top_thickness,-90); pos6(bot_thickness,-90);
+x1=x6=.5w; top y1l=h+o; bot y6r=-o;
+pos0(max(fine.breadth,fudged.stem-2stem_corr),theta);
+lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround 1.75u if not serifs:+.5u fi;
+x2r-x2l=if serifs:fudged.stem else:upper_side fi-fine;
+x5r-x5l=lower_side-fine;
+ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+numeric tau; tau=max(.8,.20710678/(superness-.5));
+y2r:=vround(y2l+serif_drop+eps);
+filldraw stroke z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+pos7(lower_side,180); pos8(upper_side,180);
+y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=(x0,min(y0,y8-eps));
+filldraw stroke z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e;% lower left stroke
+if serifs:
+% italic bulb
+ z8'=z8; pos8'(upper_side,0);
+ y1'+.5curve=h+oo; x1'=x8-max(u,.5u+.5curve);
+ numeric theta; theta=angle(4(x8'-x1'),y8'-y1'); pos1'(curve,theta+90);
+ filldraw z1'l{dir theta}..tension atleast 1 and 1..{down}z8'l
+ --z8'r{up}...{-dir theta}z1'r..cycle; % bulb
+% from sloped serif
+ pos12(slab,90); lft x12=hround(x2l-.5jut-.5-eps);
+ y12r=vround(y2r-serif_drop-eps); z14=(x2l,min(y2l-.5,y12)-eps);
+ filldraw z2r--z12r--z12l{right}
+ ...1/3[(x14,y12l),.5[z12l,z14] ]{z14-z12l}
+ ...{down}z14--(x2r,y14)--cycle; % sloped serif
+else: pos10(flare,225); x10r=x1; y10l=h+oo;
+ filldraw stroke z8e{up}...z10e; fi
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,9',10,11,12); endchar;
+
+lhchar "Lowercase Cyrillic letter cherv - old che";
+cyrchar(cherv,10u# if not serifs:+.5width_adj# fi,x_height#,0); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; penpos1(fudged.stem,0); penpos2(fudged.stem,0);
+penpos3(fudged.stem,0); penpos4(fudged.stem,0);
+penpos5(.6[thin_join,vair],90); penpos6(.6[thin_join,vair],-90);
+x1l=x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+y1=y3=h; y2=y4=.3[y6,h]; x5=x6=x7=.5[x1,x3]; z5=z6;
+y6=good.y (h-.52h if serifs: -.15(.5[hair,.7stem]) fi);
+fill z2l--diag_end(2l,1l,1,1,1r,2r)--z2r & pulled_arc.r(2,5) & z5r--z5l
+ & pulled_arc.l(5,2) & cycle;
+fill z4l--diag_end(4l,3l,1,1,3r,4r)--z4r & pulled_arc.r(4,6) & z6r--z6l
+ & pulled_arc.l(6,4) & cycle; %U
+pos6'(stem,0); pos7(stem,0); top z6'=z6; bot y7=0;
+filldraw stroke z6'e--z7e; % stem
+if serifs: pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(3,4);
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3r-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3r-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3',4,e,1/3,inner_jut,f,1/3,jut); % upper left serif
+ slab:=vair; % lower.slab
+ dish_serif(7,6,g,1/3,inner_jut,h,1/3,jut); fi % lower left serif
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter psi";
+cyrchar(psi,11.5u#,asc_height#,desc_depth#);
+italcorr x_height#*slant;
+if odd(stem'-w): change_width; fi % symmetric & all three equal
+% psi bowl;
+adjust_fit(0 if monospace:-\\.5u#,-.5u#+ else:,fi\\ 0);
+if odd(w-stem'): change_width; fi
+pickup fine.nib; interim superness:=more_super;
+lft x0=w-rt x8=hround .5u; x2=w-x6=x3+.25u;
+pos3(curve,-180); pos5(curve,0); lft x3r=hround(2u-.5curve); x5=w-x3;
+pos0(vair,90); pos1(vair,90); pos2(stem,0);
+pos8(vair,90); pos7(vair,90); pos6(stem,180);
+top y0r=top y1r=x_height+oo; y2=y6=3/4x_height; y7=y8=y0;
+x1=w-x7=x2-1.25u;
+filldraw stroke z0e{right}...z1e{right}...{-u,-x_height}z2e; % right hook
+filldraw stroke z8e{left}...z7e{left}...{u,-x_height}z6e; % left hook
+pos2'(stem,-180); z2'=z2; pos6'(stem,0); z6'=z6;
+pos4(vair,-90); x4=.5w; y3=y5=.7[y4,.57x_height]; bot y4r=-oo;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)&super_arc.e(4,5)
+...{-u,x_height}z6'e;
+%%%%%
+% f stem
+pickup tiny.nib; pos9(stem',0); pos10(stem,0);
+pos0'(stem',0); pos1'(stem,0); z1'l=z0'l; x0'=x9; x1'=x10;
+lft x9l=hround(.5w-.5stem'); top y9=h; % if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x10r;
+y1'=ypart(((edge,body_height+2dot_size)--(edge,-o))
+ intersectionpoint(z3r{down}...{right}z4r...{up}z5r));
+pickup tiny.nib; bot y10=-d;
+filldraw stroke z9e--z0'e--z1'e--z10e; % stem
+pickup crisp.nib; pos12(hair,0); pos11'(stem,0);
+z11'=z10; x12l=x11'l; bot y12=0;
+filldraw stroke z11'e--z12e; % point
+if serifs: numeric outer_jut; outer_jut=if monospace:1.414 fi jut;
+ sloped_serif.l(9,0',a,1/3,outer_jut,serif_drop); % upper serif
+ dish_serif(10,1',b,1/3,outer_jut,c,1/3,outer_jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Lowercase Cyrillic letter shta - old sh";
+cyrchar(shta,14u#+.5width_adj#,x_height#,sbeak#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_sh;old
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib;
+pos1(fudged.stem,0); pos2(fudged.stem,0); pos3(fudged.stem,0);
+pos4(fudged.stem,0); pos5(fudged.stem,0); pos6(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0; z5=.5[z1,z3]; z6=.5[z2,z4];
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x5l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; % lower inter_serif bar
+else: lft x2'= lft x2l; bot y2'l=0; pos2'(vair',90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(vair',90);
+ filldraw stroke z2'e--z4'e; fi
+pickup tiny.nib; x7=x6; bot y7=-d;
+% middle_serif;
+if serifs: numeric light_hair;
+ light_hair=min(fudged.stem,fudged.hair if hefty:-4stem_corr fi);
+ pos7(light_hair,0);
+ filldraw stroke z6e....{down}z7e;
+else: pos7(fudged.stem,0); filldraw stroke z6e--z7e; fi
+penlabels(1,2,3,4,5,6,7); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter ib_yus - iot big yus (`roman')";
+cyrchar(ib_yus,15u#,x_height#,0);
+adjust_fit(.75u#+
+ if monospace: 4u# else: 4.5u# fi +serif_fit#, %li_part_adj+.75u
+ serif_fit#);
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal
+% lowerr_yus;
+% ltop_yus;
+set_bar_axis; numeric stem[];
+stem1=fudged.stem-3stem_corr; stem2=min(stem1,fudged.hair);
+penpos1(stem1,0); penpos2(stem2,0); penpos3(stem1,0); penpos4(stem2,0);
+x1l=w-x2r=hround(.2w-.5tiny-.5)-eps; y1=y2=h; y3=y4=3/5[y1.bh,y2.bh];
+x3l=hround(.5w-.5stem1); x3r=x4r;
+z0=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty: y0:=y2.bh;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ ...{down}(x0-.5,y0)..(x0+.5,y0){up}...
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; % diagonals
+else: fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi % diagonals
+penpos5(stem1,0); x5=x3; y5=0;
+fill z3l--diag_end(3l,5l,1,1,5r,3r)--z3r--cycle; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-vair)-eps;
+fill z1--z7--z6--z2--cycle; % upper bar
+% lyus_rbowl;
+ numeric stem[],alpha[],right_jut;
+ right_jut=if serifs:.6jut else:.4tiny fi;
+ y10l=y1.bh; y10r=y2.bh; x10l=x10r=x3; y9=y12=min(bot y10l-.5,.85y10l);
+ rt x8r=w-lft x11l=hround(r-letter_fit-.3u-right_jut); bot y8=bot y11=y5;
+ stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+ alpha2=diag_ratio(1,.5(stem2-tiny),h-y8,x8r-x3);
+ penpos8(alpha2*(stem2-tiny),0); penpos11(alpha2*(stem2-tiny),0);
+ forsuffixes $=l,r: y8'$=0; y11'$=0; endfor
+ z8'r=z8r+penoffset (x3,h)-z8 of currentpen+whatever*((x3,h)-z8);
+ z8'l=z8l+penoffset z8-(x3,h) of currentpen+whatever*((x3,h)-z8);
+ z11'r=z11r+penoffset (x3,h)-z11 of currentpen+whatever*((x3,h)-z11);
+ z11'l=z11l+penoffset z11-(x3,h) of currentpen+whatever*((x3,h)-z11);
+ z8'=.5[z8'l,z8'r]; z11'=.5[z11'l,z11'r];
+ z9=z8'+whatever*((x3,h)-z8); z12=z11'+whatever*((x3,h)-z11);
+ penpos9(stem-2stem_corr,0); penpos12(stem-2stem_corr,0);
+ fill z10l{right}...{z8'l-z9l}z9l--diag_end(9l,8'l,.5,1,8'r,9r)
+ --z9r{z9r-z8'r}...{left}z10r--cycle; % right diagonal
+ fill z10r{left}...{z11'l-z12l}z12l--diag_end(12l,11'l,1,.5,11'r,12r)
+ --z12r{z12r-z11'r}...{right}z10l--cycle; % left diagonal
+%%
+save slab; % lower.slab
+if serifs: numeric inner_jut; prime_points_inside(5,3);
+ if rt x5r+jut+.5u+1<=lft x8l-jut: inner_jut=jut;
+ else: rt x5r+jut+.5u+1=lft x8l-inner_jut; fi
+ slab:=vair; % lower.slab
+ dish_serif(11,12,a,1/3,right_jut,b,1/2,inner_jut)(dark); % lower diagonal serif
+ dish_serif(8,9,e,1/2,inner_jut,f,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(5',3,c,1/3,.75jut,d,1/3,.75jut); fi % lower middle serif
+%%%%%
+% barh_i_part(3);
+_zero:=3;
+_one:=13; _two:=14;
+%
+pickup tiny.nib;
+pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround (2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+bar_stroke(x[_one],x[_zero]); % bar
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); % lower serif
+fi
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+lhchar "Lowercase Cyrillic letter i_est - iot est (IC with mid-line)";
+cyrchar(i_est,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: 4u# else: 4.5u# fi +serif_fit#, %li_part_adj
+ if monospace:.5u# else:.1u# fi);
+% lower_ukre;
+set_bar_axis;
+pickup fine.nib; pos2(vair',90); pos3(curve,180); pos4(vair',270);
+x2=x4=(.5(w+u)); top y2r=vround(h+1.5oo); bot y4r=-oo;
+lft x3r=(hround max(.6u,1.35u-.5curve)); y3=.5h;
+if serifs:
+ pos1(hair,0); pos5(hair,360);
+ y1=min(y2.bh+.75flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ rt x1r=rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],0); x6r=x1r; top y6=h+oo;
+ x1r-x1'=1.5curve; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,5(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos1(4/7[vair',flare],80); pos5(.6[vair',flare],275);
+ rt x1r=hround(w-.6u);
+ top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%
+% lukre_bar;
+if (serifs=true) and (bar#<=.5curve#):
+ x7r=x3l; x8r=min(lft x1l-.5hair,0.85[x3l,x1l]);
+ y7l=y8l=y1.bh; y7r=y8r=y2.bh; x7l=x7r; x8l=x8r;
+ numeric bar[];
+ bar2=7/8[bar,fudged.stem-2stem_corr];
+ penpos9(bar2,45); z9=.575[z7l,z8l];
+ fill circ_stroke z8e{-2,-1}..{-2,1}z9e..{-2,-1}z7e; % curve /\/
+else:
+ bar_stroke(x3l,min(lft x1l-.5hair,0.85[x3l,x1l])); % bar --
+fi
+%%%%%
+save slab; % lower.slab
+% barh_i_part(3);
+_zero:=3;
+_one:=10; _two:=11;
+%
+pickup tiny.nib;
+pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround (2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+bar_stroke(x[_one],x[_zero]); % bar
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); % lower serif
+fi
+%%%%%
+penlabels(1,1',2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2slvu.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2slvu.mf
new file mode 100644
index 00000000000..167cc669c6c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2slvu.mf
@@ -0,0 +1,1091 @@
+%
+% lgt2slvu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Old Slav letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% AZ
+% I_AZ i-alpha
+% L_YUS
+% IL_YUS
+% GERV
+% NASH
+% ZEMLA
+% VIZHE
+% IZHE used LAT_I
+% IZH in lgcomu
+% OMGA
+% OMGA_rnd
+% OT
+% OMGA_tlo
+% VZELO used LAT_S
+% FITA in lgcomu
+% KOPPA
+% UK
+% YAT in lgcomu
+% CHERV
+% PSI
+% SHTA
+% B_YUS in lgcomu
+% IB_YUS
+% KSI
+% EST used UKR_E (lgcomu)
+% I_EST
+% NARROW_E used EPS
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Uppercase Cyrillic letter ligature AZ - OLD A";
+cyrchar(AZ,12u#,cap_height#,0);
+if is_small_cap: getcharcode(az); fi
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,cap_serif_fit#);
+pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+pickup tiny.nib; numeric light_stem; light_stem=fudged.cap_stem;
+% a_part of lowercase ae
+pos1(light_stem,0); pos2(light_stem,0);
+penpos6(vair-fine,-225); penpos4(cap_curve-fine,-180);
+rt x1r=rt x2r=hround(w-max(2u,3u-.5light_stem));
+if serifs: top y1=h+min(o,serif_drop); else: top y1=h; fi
+bot y2=0; y3=.52h; x6=x1; y6+bar+eps=min(8h,h-max(bracket,.5slab));
+penpos5(vair'-fine,-90); penpos3(thin_join-fine,0);
+pickup fine.nib; lft x3l=tiny.lft x1l;
+lft x4r=hround(1.5u-.5cap_curve); x5=.5[x4,x3];
+y4=.3[y5,y1]; bot y5r=-o;
+filldraw stroke z6e{3(x4-x1),y4-y1}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,3); % bowl of a
+pickup tiny.nib;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,cap_jut,serif_drop); % upper serif
+ serif(2,1,d,1/3,cap_jut); fi % lower serif
+%%%%%
+penlabels(0,1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter ligature I_AZ - IOT AZ";
+cyrchar(I_AZ,12u#,cap_height#,0);
+if is_small_cap: getcharcode(i_az); fi
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ cap_serif_fit#); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+pickup tiny.nib; numeric light_stem; light_stem=fudged.cap_stem;
+% a_part of lowercase ae
+pos1(light_stem,0); pos2(light_stem,0);
+penpos6(vair-fine,-225); penpos4(cap_curve-fine,-180);
+rt x1r=rt x2r=hround(w-max(2u,3u-.5light_stem));
+if serifs: top y1=h+min(o,serif_drop); else: top y1=h; fi
+bot y2=0; y3=.52h; x6=x1; y6+bar+eps=min(8h,h-max(bracket,.5slab));
+penpos5(vair'-fine,-90); penpos3(thin_join-fine,0);
+pickup fine.nib; lft x3l=tiny.lft x1l;
+lft x4r=hround(1.5u-.5cap_curve); x5=.5[x4,x3];
+y4=.3[y5,y1]; bot y5r=-o;
+filldraw stroke z6e{3(x4-x1),y4-y1}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,3); % bowl of a
+pickup tiny.nib;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,cap_jut,serif_drop); % upper serif
+ serif(2,1,d,1/3,cap_jut); fi % lower serif
+%I_part(6);
+_zero:=6;
+_one:=7; _two:=8; _three:=9; _four:=10;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+penlabels(0,1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter L_YUS - LITTLE YUS";
+cyrchar(L_YUS,13u#+2cap_stem#,cap_height#,0);
+if is_small_cap: getcharcode(l_yus); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_amod;
+numeric left_stem,right_stem,outer_jut,alpha; outer_jut=.8cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.5u;
+%
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem); pickup tiny.nib;
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1r,z2r];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3l,z4l]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+pickup tiny.nib;
+x7=.5[x5,x6]; top y7=y5; x8=x7; bot y8=0;
+pos7(max(currentbreadth+eps,.5[cap_band,cap_stem]),0);
+pos8(max(currentbreadth+eps,.5[cap_band,cap_stem]),0);
+filldraw stroke z8e--z7e;
+if serifs: pickup tiny.nib; numeric inner_jut;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+.7cap_jut+.5u+1<=lft x8l-.7cap_jut: inner_jut=.7cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x8l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); % right serif
+ dish_serif(8,7,e,1/3,inner_jut,f,1/3,inner_jut); fi % middle serif
+%%%%%
+penlabels(1,1',2,3,4,4',5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter IL_YUS - IOT LITTLE YUS";
+cyrchar(IL_YUS,13u#+2cap_stem#,cap_height#,0);
+if is_small_cap: getcharcode(il_yus); fi
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ cap_serif_fit#);
+% upper_amod;iot
+numeric left_stem,right_stem,outer_jut,alpha; outer_jut=.8cap_jut;
+x1l=w-x4r=outer_jut+.5u; %!!!
+%
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem); pickup tiny.nib;
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1r,z2r];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3l,z4l]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+pickup tiny.nib;
+x7=.5[x5,x6]; top y7=y5; x8=x7; bot y8=0;
+pos7(max(currentbreadth+eps,.5[cap_band,cap_stem]),0);
+pos8(max(currentbreadth+eps,.5[cap_band,cap_stem]),0);
+filldraw stroke z8e--z7e;
+if serifs: pickup tiny.nib; numeric inner_jut;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+.7cap_jut+.5u+1<=lft x8l-.7cap_jut: inner_jut=.7cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x8l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); % right serif
+ dish_serif(8,7,e,1/3,inner_jut,f,1/3,inner_jut); fi % middle serif
+%%%%%
+%I_part(3);
+_zero:=6;
+_one:=9; _two:=10; _three:=11; _four:=12;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11,12); endchar;
+
+lhchar "Uppercase Cyrillic (Glagolic) letter GERV";
+cyrchar(GERV,12.5u#,cap_height#,0); %CH width
+if is_small_cap: getcharcode(gerv); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_bar,90); penpos5'(cap_stem,0);
+pos5(cap_stem,0); pos6(cap_stem,0);
+x5=x6=w-x1; y6=y2; x3=x1r; y5=1/8[bar_height,x_height]; z5'=z5;
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos4(cap_bar,90);
+ top y3r=top y4r=x_height+oo; x4=.5[x1,w-rt x3r if not serifs:-u fi];
+else:
+ penpos4(1/18[cap_bar,cap_curve],90);
+ y3r+.35cap_bar=y4r=x_height+oo;
+ x4=.5[x1,w-1.5u]-.5u;
+fi
+fill stroke z3e..pulled_arc.e(4,5'); % arc
+filldraw stroke z5e--z6e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper right serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+.5jut+.5u+1<=lft x6l-.5cap_jut: inner_jut=.5cap_jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(2,1,c,1/3,.5cap_jut,d,1/3,inner_jut); % lower right serif
+ dish_serif(6,5,e,1/3,inner_jut,f,1/3,.5cap_jut); fi % lower left serif
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+lft x8=w-x9-4u; %hround 1/3u if serifs:-serif_fit fi;
+x9=hround(w-2.65u); %x4; %1r+2.5u;
+top y8r=top y9r=vround .85h;%vround x_height+eps;
+filldraw stroke z8e--z9e; % cross bar
+%%%%%
+penlabels(1,2,3,4); endchar;
+
+lhchar "Uppercase Cyrillic letter NASH -- OLD N (like Latin N)";
+cyrchar(NASH,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(nash); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-stem_corr;
+ upper_notch=y5-cap_notch_cut-eps; lower_notch=y6+cap_notch_cut+eps;
+ x5r =rt x1r; x6l =lft x3l; y6=bar_height;
+ if monospace: y5=vround(h-1.2slab-eps); else: y5=h; fi
+ alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l);
+ penpos5(min(2fudged.cap_stem,alpha1*stem1),0);
+ penpos6(min(2fudged.cap_stem,alpha1*stem1),0);
+ x5'=x1l; z5'=whatever[z5l,z6l]; x6'=x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6'; x5:=max(x1l,x5);
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5--z5l..
+ if y2'<upper_notch: {right}(x2'+1,upper_notch){down}... fi
+ {z6-z5} diag_in(5l,6l,1,6)--z6--z6r ..
+ if y3'>lower_notch: {left}(x3'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5) --cycle; % diagonal
+else: y5r=vround(y3-1.2bracket-(slab-vair)-eps); y6l=bar_height;
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ stem1=max(tiny.breadth,fudged.hair);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6l-bot y5r);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter ZEMLA";
+cyrchar(ZEMLA,11u#,cap_height#,cap_sbeak#);
+if is_small_cap: getcharcode(zemla); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+% the beak is turning down
+pos7(arm_thickness2,90); pos8(hair,0);%!!!
+bot y7l=0; x7=x4; rt x8r=hround(w-.9u);%!!!
+y8=good.y(y7l-1.2beak)-eps;%!!!
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+% like CYR_.Z or numeral 3
+lhchar "Uppercase Cyrillic letter KSI";
+cyrchar(KSI,10u#,cap_height#+1.75dot_size#,desc_depth#);
+if is_small_cap: getcharcode(ksi); fi
+italcorr .75cap_height#*slant-.5u#; %B
+adjust_fit(0,.5serif_fit#); h:=cap_height;
+pickup fine.nib; numeric right_curve,middle_weight,low_curve;
+middle_weight=max(fine.breadth,.6vair+.5);
+if serifs: right_curve=cap_curve-stem_corr;
+ else: right_curve=cap_curve-3stem_corr; fi
+pos2(cap_band,90); pos3(.6[hair,cap_curve],0);
+pos4(middle_weight,-90); pos5(middle_weight,-90);
+pos5'(middle_weight,90); pos6(middle_weight,90);
+top y2r=h+o; x2=x6=x8=.5[1.5u,w-.75u-.5stem]; lft x1r=hround 1.1u;
+rt x3r=hround(w-1.25u); rt x7r=hround(w-.75u);
+lft x5=lft x5'=min(hround 3.5u,lft x2)+eps;
+y3=.5[y4l,y2l]; x4=1/3[x5,x3l]; y4=y5; y5'=y6;
+top y5l-bot y5'l=vair; .5[y5l,y5'l]=.52h;
+{{interim superness:=if serifs:more_super else:hein_super fi;
+ filldraw stroke super_arc.e(2,3)}};
+filldraw stroke super_arc.e(3,4)..z5e; % upper bowl
+numeric theta; theta=-90+angle(22u,x_height); slope:=x_height/22u;
+pos9(max(currentbreadth+eps,cap_curve-5stem_corr),theta);
+x7r-x7l=hround.5[vair,cap_stem]-fine;
+x9=x10=2u; x11=.5w-.5u; y9=-.3d; bot y10l=-d-oo;
+ellipse_set(6l,7l,8l,9l); ellipse_set(6r,7r,8r,9r);
+if serifs: pos0(flare+(cap_stem-stem),180); pos1(cap_hair,180);
+ y1=.4[y5l,y2l]+.5flare; bulb(2,1,0); % bulb
+ pos10(vair,90);
+%"hachek"
+ penpos14(vair',90); pos15(whatever,0); x14=x6; y14=h+o-eps;
+ x6-x15=x16-x6=good.x 2.25u; top y15=top y16=h+.65acc_height+o;
+ pos16(.25[vair,curve],angle(z16-z14)+90);
+ z15l=z14l+whatever*(z14-z15); z15r=z14r+whatever*(z14-z15);
+ filldraw stroke z15e--z14e{z16r-z14}..{.5right}z16e; % hachek
+else: y1=.8h; pos1(min(cap_hair,1.2flare)-.2tiny,170);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}...{right}z2e; % upper bowl
+ pos10(middle_weight,45);
+ filldraw stroke z10e{left}...z9e{z8e-z9e}; % tail
+%"hachek"
+ pickup pencircle scaled min(.5fine,.15vair);
+ pos14(vair,0); pos16(vair,0); pos15(stem,0);
+ x8-x14=x16-x8; bot y15=h; x15=x8;
+ top y14=top y16=h+.65acc_height+o; lft x14l=hround(rt x15r-3.25u-.5vair);
+ z0=whatever[z14r,z15r]=whatever[z15l,z16l];
+ filldraw z15l--z14l--z14r--z0--z16l--z16r--z15r--cycle; fi % hachek
+pickup fine.nib;
+{{less_tense;
+ filldraw stroke z10e{left}...z9e---z8e
+ ...{up}z7e...{left}z6e...{left}z5'e}}; % main stroke
+penlabels(1,2,3,4,5,6,7,8,9,9',10,11,12,13,14,15,16); endchar;
+
+lhchar "Uppercase Cyrillic letter VIZHE - Variant IZHE";
+cyrchar(VIZHE,max(6u#,4u#+cap_stem#),cap_height#,0);
+if is_small_cap: getcharcode(vizhe); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); h:=cap_height;
+% upper_ukri; - borrowed from ec
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+%%%%%
+% the dot
+numeric stem[]; stem1=if serifs: stem+2cap_jut else: w-2(u-oo) fi;
+pos9(stem1,0); pos10(stem1,90); x9=x1; y9=.5h; z10=z9;
+{{square_dots:=false; dot(9,10)}}; % dot
+penlabels(1,2,3,4,5,6,7,8, 9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter IZHE - like Latin I (as latin I)";
+cyrchar(IZHE,max(6u#,4u#+cap_stem#),cap_height#,0);
+if is_small_cap: getcharcode(izhe); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_ukri; - borrowed from ec
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+%%%%%
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter OMGA - OMEGA";
+cyrchar(OMGA,if serifs: 18u#+width_adj#
+ else: 16.5u# fi,cap_height#,0);%CYR_.SH width
+if is_small_cap: getcharcode(omga); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0,0);
+% upper_omega;
+numeric shaved_stem; shaved_stem=cap_stem-hround 2stem_corr;
+if odd(shaved_stem-w): change_width; fi % symmetric & all three equal
+if not serifs: interim superness:=more_super; fi
+if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+pos6(shaved_stem,0); top y6=.52h;
+lft x6l=hround (.5w-.5shaved_stem); % middle stem point
+% Omega_bowl
+pos2(vair',90); pos3(cap_curve,180); pos4(vround(vair+1.5vair_corr),270);
+if serifs:
+ pos1(cap_hair,0); pos0(flare,0); pos5(fudged.hair,0);
+ top y2r=h+o; bot y4r=-o; lft x3r=hround u; y3=.5[y2,y4];
+ y1=h-vround max(.1fig_height+.5flare,.15fig_height-.5flare)+o;
+ x5=(.5w+eps);
+ rt x1r=hround min(.5w-max(
+ if monospace:.67u,.55stem else:u,.7stem fi)+eps,lft x5l-1);
+ x2=x4+if monospace:-fi.25u=hround (.67[lft x3r,rt x1r]);
+ {{less_tense; bulb(2,1,0)}}; % bulb
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else:
+ pos5(flare,275);
+ x2=x4=(.25w+1.25u); lft x3r=hround max(u,2u-.5cap_curve);
+ x5r=(.5w+eps); top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4) &
+ term.e(4,5,right,.8,4); % arc and terminals
+fi
+%%%
+% mirror + middle stem
+forsuffixes $ = if serifs: 1l,1r,0l, fi 2l,2,2r,3l,3,3r,4l,4,4r,5l,5,5r:
+ x.m$-x6r=x6l-x$; y.m$=y$; endfor;
+if serifs:
+ {{less_tense; bulb(m2,m1,m0)}}; % bulb
+ filldraw stroke pulled_super_arc.e(.m2,.m3)(.7superpull)
+ & pulled_super_arc.e(.m3,.m4)(.5superpull)
+ ..tension .9 and 1..{x.m5-x.m4,5(y.m5-y4)}z.m5e; % arc and lower terminal
+else:
+ filldraw stroke super_arc.e(.m2,.m3) & super_arc.e(.m3,.m4) &
+ term.e(.m4,.m5,left,.8,4); % arc and terminals
+fi
+if serifs:
+ path p.l,p.r; numeric t;
+ p.l=z4r{right}..tension .9 and 1..{x5-x4,5(y5-y4)}z5r;
+ p.r=z.m4r{left}..tension .9 and 1..{x.m5-x.m4,5(y.m5-y.m4)}z.m5r;
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l); if t<0: t:=1; fi
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+ z5'l=(x6l,y5); z5'r=(x6r,y5); z5'=.5[z5'l,z5'r]; z6=.5[z6l,z6r];
+ dish_serif(6,5',a,1/3,.5cap_jut,b,1/3,.5cap_jut);
+else:
+ path p.l,p.r; numeric t; p.l=term.r(4,5,right,.8,4);
+ p.r=term.r(.m4,.m5,left,.8,4);
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l);
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+fi
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter OMGA_rnd - OMEGA round";
+cyrchar(OMGA_rnd,17u#,cap_height#,0); %F width+u
+if is_small_cap: getcharcode(omga_rnd); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: if serifs: interim superness:=1.05 superness;
+ else: interim superness:=1.075 superness; fi x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+% dots
+if serifs: pickup crisp.nib; else: pickup fine.nib; fi
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);%1.1flare;
+z5=z1r; z6=z3r; pos5(bulb_diam,0); pos6(bulb_diam,0);
+x5'=x6'=x1; y5'=max(.5h+1,bot y1l-.7bulb_diam);
+y6'=min(.5h-1,top y3l+.7bulb_diam);
+pos6'(min(bulb_diam,cap_vstem),0);
+pos5'(min(bulb_diam,cap_vstem),0);
+filldraw circ_stroke z5e--z5'e; filldraw circ_stroke z6e--z6'e; %dots
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter OT - OMEGA with te accent";
+cyrchar(OT,if serifs: 18u#+width_adj#
+ else: 16.5u# fi,cap_height#+acc_height#,0);%CYR_.SH width
+if is_small_cap: getcharcode(ot); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0,0);
+full_h:=h; h:=cap_height;
+% upper_omega;
+numeric shaved_stem; shaved_stem=cap_stem-hround 2stem_corr;
+if odd(shaved_stem-w): change_width; fi % symmetric & all three equal
+if not serifs: interim superness:=more_super; fi
+if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+pos6(shaved_stem,0); top y6=.52h;
+lft x6l=hround (.5w-.5shaved_stem); % middle stem point
+% Omega_bowl
+pos2(vair',90); pos3(cap_curve,180); pos4(vround(vair+1.5vair_corr),270);
+if serifs:
+ pos1(cap_hair,0); pos0(flare,0); pos5(fudged.hair,0);
+ top y2r=h+o; bot y4r=-o; lft x3r=hround u; y3=.5[y2,y4];
+ y1=h-vround max(.1fig_height+.5flare,.15fig_height-.5flare)+o;
+ x5=(.5w+eps);
+ rt x1r=hround min(.5w-max(
+ if monospace:.67u,.55stem else:u,.7stem fi)+eps,lft x5l-1);
+ x2=x4+if monospace:-fi.25u=hround (.67[lft x3r,rt x1r]);
+ {{less_tense; bulb(2,1,0)}}; % bulb
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else:
+ pos5(flare,275);
+ x2=x4=(.25w+1.25u); lft x3r=hround max(u,2u-.5cap_curve);
+ x5r=(.5w+eps); top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4) &
+ term.e(4,5,right,.8,4); % arc and terminals
+fi
+%%%
+% mirror + middle stem
+forsuffixes $ = if serifs: 1l,1r,0l, fi 2l,2,2r,3l,3,3r,4l,4,4r,5l,5,5r:
+ x.m$-x6r=x6l-x$; y.m$=y$; endfor;
+if serifs:
+ {{less_tense; bulb(m2,m1,m0)}}; % bulb
+ filldraw stroke pulled_super_arc.e(.m2,.m3)(.7superpull)
+ & pulled_super_arc.e(.m3,.m4)(.5superpull)
+ ..tension .9 and 1..{x.m5-x.m4,5(y.m5-y4)}z.m5e; % arc and lower terminal
+else:
+ filldraw stroke super_arc.e(.m2,.m3) & super_arc.e(.m3,.m4) &
+ term.e(.m4,.m5,left,.8,4); % arc and terminals
+fi
+if serifs:
+ path p.l,p.r; numeric t;
+ p.l=z4r{right}..tension .9 and 1..{x5-x4,5(y5-y4)}z5r;
+ p.r=z.m4r{left}..tension .9 and 1..{x.m5-x.m4,5(y.m5-y.m4)}z.m5r;
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l); if t<0: t:=1; fi
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+ z5'l=(x6l,y5); z5'r=(x6r,y5); z5'=.5[z5'l,z5'r]; z6=.5[z6l,z6r];
+ dish_serif(6,5',a,1/3,.5cap_jut,b,1/3,.5cap_jut);
+else:
+ path p.l,p.r; numeric t; p.l=term.r(4,5,right,.8,4);
+ p.r=term.r(.m4,.m5,left,.8,4);
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l);
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+fi
+%%%%%
+% the accent
+% up_te(7);
+_zero:=7; x7=.5[x6l,x6r];
+_one:=8; _two:=9; _three:=10; _four:=11; _five:=12;
+%
+if serifs: pickup crisp.nib;
+ else: pickup pencircle scaled min(.5fine,.15vair); fi
+numeric stem[]; stem1=if hefty: fudged.hair-2stem_corr else: .7[vair,stem] fi;
+stem2=if serifs: vair else: max(currentbreadth+eps,.6[thin_join,vair]) fi;
+stem3=if serifs: hair else: max(currentbreadth+eps,.6[thin_join,vair]) fi;
+pos[_one](stem1,0); pos[_two](stem1,0);
+lft x[_one]l=lft x[_two]l=hround(x[_zero]-.5stem1);
+numeric mid_thickness;
+mid_thickness=vround if serifs:1/4 else: 1/3 fi[vair,stem];
+bot y[_two]=bot y[_four]=bot y[_five]=
+ vround max(h+o+max(tiny,.5mid_thickness),1/3[h,h+acc_height]+o-.5mid_thickness);
+top y[_one]=top y[_three]r=max(h+acc_height,bot y[_two]+1.5vair);
+filldraw stroke z[_one]e--z[_two]e; % stem
+pos[_three](stem2,90); pos[_four](stem3,0); pos[_five](stem3,180);
+x[_three]=x[_one];
+rt x[_four]r=hround(x[_zero]+2.5u if monospace:/expansion_factor fi+.5vair);
+x[_four]-x[_three]=x[_three]-x[_five];
+z[_four]'=beak_darkness[(x[_four]l,y[_three]l),
+ .5[(x[_one]r,y[_three]l),z[_four]l] ];
+z[_five]'=beak_darkness[(x[_five]l,y[_three]l),
+ .5[(x[_one]l,y[_three]l),z[_five]l] ];
+filldraw z[_four]r--z[_four]l{up}...z[_four]'
+ ...{left}(x[_one]r,y[_three]l)--(x[_one]r,y[_three]l){left}...z[_five]'
+ ...{down}z[_five]l--z[_five]r---
+ (x[_five]r,y[_three]r)---(x[_four]r,y[_three]r)---cycle;
+%%%
+penlabels(1,2,3,4,5,6, 7,8,9,10,11,12); endchar;
+
+lhchar "Uppercase Cyrillic letter OMGA_tlo - OMEGA titlo";
+cyrchar(OMGA_tlo,if serifs: 18u#+width_adj#
+ else: 16.5u# fi,cap_height#+acc_height#,0);%CYR_.SH width
+if is_small_cap: getcharcode(omga_tlo); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0,0);
+full_h:=h; h:=cap_height;
+% upper_omega;
+numeric shaved_stem; shaved_stem=cap_stem-hround 2stem_corr;
+if odd(shaved_stem-w): change_width; fi % symmetric & all three equal
+if not serifs: interim superness:=more_super; fi
+if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+pos6(shaved_stem,0); top y6=.52h;
+lft x6l=hround (.5w-.5shaved_stem); % middle stem point
+% Omega_bowl
+pos2(vair',90); pos3(cap_curve,180); pos4(vround(vair+1.5vair_corr),270);
+if serifs:
+ pos1(cap_hair,0); pos0(flare,0); pos5(fudged.hair,0);
+ top y2r=h+o; bot y4r=-o; lft x3r=hround u; y3=.5[y2,y4];
+ y1=h-vround max(.1fig_height+.5flare,.15fig_height-.5flare)+o; x5=(.5w+eps);
+ rt x1r=hround min(.5w-max(
+ if monospace:.67u,.55stem else:u,.7stem fi)+eps,lft x5l-1);
+ x2=x4+if monospace:-fi.25u=hround (.67[lft x3r,rt x1r]);
+ {{less_tense; bulb(2,1,0)}}; % bulb
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos5(flare,275);
+ x2=x4=(.25w+1.25u); lft x3r=hround max(u,2u-.5cap_curve);
+ x5r=(.5w+eps); top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4) &
+ term.e(4,5,right,.8,4); % arc and terminals
+fi
+%%%
+% mirror + middle stem
+forsuffixes $ = if serifs: 1l,1r,0l, fi 2l,2,2r,3l,3,3r,4l,4,4r,5l,5,5r:
+ x.m$-x6r=x6l-x$; y.m$=y$; endfor;
+if serifs: {{less_tense; bulb(m2,m1,m0)}}; % bulb
+ filldraw stroke pulled_super_arc.e(.m2,.m3)(.7superpull)
+ & pulled_super_arc.e(.m3,.m4)(.5superpull)
+ ..tension .9 and 1..{x.m5-x.m4,5(y.m5-y4)}z.m5e; % arc and lower terminal
+else:
+ filldraw stroke super_arc.e(.m2,.m3) & super_arc.e(.m3,.m4) &
+ term.e(.m4,.m5,left,.8,4); % arc and terminals
+fi
+if serifs:
+ path p.l,p.r; numeric t;
+ p.l=z4r{right}..tension .9 and 1..{x5-x4,5(y5-y4)}z5r;
+ p.r=z.m4r{left}..tension .9 and 1..{x.m5-x.m4,5(y.m5-y.m4)}z.m5r;
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l); if t<0: t:=1; fi
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+ z5'l=(x6l,y5); z5'r=(x6r,y5); z5'=.5[z5'l,z5'r]; z6=.5[z6l,z6r];
+ dish_serif(6,5',a,1/3,.5cap_jut,b,1/3,.5cap_jut);
+else: path p.l,p.r; numeric t; p.l=term.r(4,5,right,.8,4);
+ p.r=term.r(.m4,.m5,left,.8,4);
+ t=ypart(((x6l,0)--(x6l,h)) intersectiontimes p.l);
+ filldraw reverse subpath(t,1) of p.r---z6r--z6l---subpath(t,1) of p.l..cycle; %middle stem
+fi
+%%%%%
+% the accents
+h:=full_h;
+% up_palatal(expr .5w+u,0,-o);
+x_center:=.5w-.25u; x_move:=0; y_move:=-o;
+_one:=8; _two:=9; _three:=10; _four:=11;
+%
+pickup fine.nib; numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs: .8[hair,stem] else: 1/3[vair,hair] fi;
+pos[_one](stem2,180); pos[_three](1/5[stem2,stem1],0);
+pos[_two](stem1,90); pos[_four](stem1,90);
+top y[_two]r=h+o; x[_two]=x_center;
+x:=if serifs: 4u else: 3.5u fi;
+rt x[_one]l =hround(x[_two]-x if monospace: /expansion_factor fi +.5stem2);
+lft x[_three]l=hround(x[_two]+x if monospace: /expansion_factor fi -.5stem2);
+bot y[_one]=bot y[_three]=
+ if serifs: max(2/3[cap_height+acc_height,cap_height],x_height+o+hair)-.5crisp
+ else: vround 2/3[cap_height+acc_height,cap_height] fi;
+bot y[_four]l=max(cap_height+o,.5[cap_height,y[_one]]);
+x[_four]=x_center+if serifs: 5.75u else: 5.25u fi+eps;
+forsuffixes e=l,r:
+ path p; p=z[_two]e{right}...{(x[_three]-x[_one]),-7acc_height}z[_three]e;
+ z[_three]'e=point .8 of p; endfor
+filldraw stroke z[_one]e{(x[_three]-x[_one]),7acc_height}...z[_two]e{right}...
+ {direction .8 of p}z[_three]'e...{right}z[_four]e; % stroke
+%%%
+% cap_zvat!!!moved down;
+x_center:=.5w-.25u; y_move:=-max(1/3acc_height,.5[vair,curve])-oo-eps;
+_one:=12; _two:=13; _three:=14;
+%
+numeric stem[];
+stem1=if serifs: vair else: max(currentbreadth+eps,1/3[thin_join,vair]) fi;
+stem2=if serifs:vround (1/3[vair,stem]) else: vair fi;
+theta:=45; y:=min(asc_height,2x_height)+cap_height-x_height;
+z[_one]=(x_center-u,.55[y[_three],y]+y_move);%!!!
+z[_two]=(x_center+u,4/5[y[_three],y]+y_move);%!!!
+bot z[_three]r=(x_center+.5u,
+ if serifs: max(2/3[cap_height+acc_height,cap_height],x_height+o+hair)%!!!
+ -.5 if serifs: crisp else: fine fi
+ else: vround 2/3[cap_height+acc_height,cap_height] fi+y_move);%!!!
+pos[_one](stem1,theta+90); pos[_two](stem2,theta);
+pos[_three](stem1,theta-90);
+filldraw stroke z[_one]e{dir(theta+45)}
+ ..{dir(theta-90)}z[_two]e..{dir(theta+180)}z[_three]e; % stroke
+%
+penlabels(1,2,3,4,5,6, 7,8,9,10,11, 12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter KOPPA (C with tail)";
+cyrchar(KOPPA,if serifs:13u# else:11.5u# fi,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(koppa); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup fine.nib;
+if serifs: pos1(cap_hair,0); pos2(cap_band,90);
+ x2=.55[u+.5curve,x1]; top y2r=h+o;
+ rt x1r=hround(w-u); bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}...{left}z2e;
+ pos6'(.3[fine.breadth,cap_hair],0); x6'r=x1r; top y6'=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1; lft x3r=hround u;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6'l--z1'));
+ filldraw z1r--z6'r--z6'l--subpath(t,0) of upper_arc--cycle; % barb
+else: pos1(1.2flare,80); pos2(slab,90);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ top y1r=vround.95h+o; top y2r=h+o; lft x3r=hround max(u,2u-.5cap_curve);
+ filldraw stroke rterm.e(2,1,right,.9,4); fi
+numeric theta; theta=-90-angle(40u,x_height); slope:=x_height/-40u;
+pos5(max(fine.breadth,fudged.cap_stem-3stem_corr),theta);
+pos6(max(fine.breadth,.6[thin_join,vair]),150);
+x3l-x3r=hround.8[vair,fudged.cap_stem]-fine;
+x5=w-4u; x6l=x1r; y5=-.1d; bot y6l=-d-o;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+{{less_tense;
+ filldraw stroke z6e {dir (theta+135)} ...
+ z5e---z4e...{up}z3e...{right}z2e}}; % main stroke
+penlabels(1,1',2,3,4,5,6); endchar;
+
+% Y-o combination
+lhchar "Uppercase Cyrillic letter UK";
+cyrchar(UK,13u#,cap_height#,0);
+if is_small_cap: getcharcode(uk); fi
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_uk;
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.5h; %.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=.45y5;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ serif(6',5,e,1/3,if serifs:-jut else:.5stem fi); fi % lower serif
+% o
+penpos7(vair,90); penpos9(vair',-90);
+penpos8(curve,180); penpos10(curve,0);
+x8r=hround(l+.5u);
+x10r=w-x8r; x7=x9=.5w; y7r=y5 if not hefty:-vair fi; y9r=-o;
+y8=y10=.5y7-vair_corr; y8l:=y10l:=.52y7;
+penstroke pulled_super_arc.e(7,8)(.5superpull)
+ & pulled_super_arc.e(8,9)(.5superpull)
+ & pulled_super_arc.e(9,10)(.5superpull)
+ & pulled_super_arc.e(10,7)(.5superpull) & cycle; % bowl
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter CHERV - Old CHE";
+cyrchar(CHERV,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(cherv); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+pos5(middle_weight,90); pos6(middle_weight,-90);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=.3[y6,h]; x5l=x6=x7=.5[x1,x3]; z5=z6;
+y6=good.y (h-.52h if serifs: -.35(.5[cap_hair,.7cap_stem]) fi);
+filldraw stroke z1e--z2e & pulled_arc.e(2,5);
+filldraw stroke pulled_arc.e(6,4) & z4e--z3e; % U
+pos6'(cap_stem,0); pos7(cap_stem,0); top z6'=z6; bot y7=0;
+filldraw stroke z6'e--z7e; % stem
+if serifs: pickup tiny.nib; numeric inner_jut,fit; fit=.5u+1;
+ if rt x1r+cap_jut+fit<=lft x3r-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+fit=lft x3r-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(7,6,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Uppercase Cyrillic letter PSI";
+cyrchar(PSI,14u#,cap_height#,0);
+if is_small_cap: getcharcode(psi); fi
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem; shaved_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(shaved_stem,-180); pos4(shaved_stem,-180);
+pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi);
+pos6(shaved_stem,0); pos7(shaved_stem,0);
+lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4;
+pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r;
+y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3');
+interim superness:=more_super;
+filldraw z3'l{right}...z4r{down} & super_arc.r(4,5)
+ & super_arc.r(5,6) & z6r{up}...z7'l{right}
+ --z7r---z7l...z6l{down} & super_arc.l(6,5)
+ & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Uppercase Cyrillic letter SHTA - Old SH";
+cyrchar(SHTA,19.7u#+width_adj#,cap_height#,cap_sbeak#);
+if is_small_cap: getcharcode(shta); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,if serifs: cap_serif_fit# else: -.3u#+.1tiny# fi);
+if odd(fudged.cap_stem-w): change_width; fi % symmetric & all three equal
+% upper_sh;
+pickup tiny.nib;
+pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+pos5(fudged.cap_stem,0); pos6(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0; z5=.5[z1,z3]; z6=.5[z2,z4];
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+numeric inner_jut,arm_thickness;
+arm_thickness=vround(slab+vair_corr);
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x5l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; % lower inter_serif bar
+else:
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(slab,90); filldraw stroke z2'e--z4'e; fi
+% middle serif
+pickup tiny.nib; x7=x6; bot y7=-d;
+if serifs: numeric light_hair;
+ light_hair=min(fudged.stem,fudged.hair if hefty:-4stem_corr fi);
+ pos7(light_hair,0);
+ filldraw stroke z6e....{down}z7e;
+else: pos7(fudged.cap_stem,0);
+ filldraw stroke z6e--z7e; fi % middle serif
+penlabels(1,2,3,4,5,6); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter IB_YUS - IOT BIG YUS (`roman')";
+cyrchar(IB_YUS,18u#,cap_height#,0);
+if is_small_cap: getcharcode(ib_yus); fi
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ cap_serif_fit#);
+if odd(fudged.cap_stem-w): change_width; fi % symmetric & all three equal
+% upperr_yus;
+% top_Yus;
+numeric stem[];
+stem1=fudged.cap_stem if hefty:-3stem_corr fi;
+stem2=min(stem1,cap_hair if hefty:-2stem_corr fi);
+penpos1(stem1,0); penpos2(stem2,0); penpos3(stem1,0); penpos4(stem2,0);
+x1l=w-x2r=.2w; y1=h; y2=y1; y3=y4=.52h;
+x3l=hround(.5w-.5stem1); x3r=x4r;
+z0'=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty:
+ numeric lower_notch; lower_notch=y3+cap_notch_cut;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ if y0'<=lower_notch: ..{z3r-z1r}z0'{z2l-z4l}..
+ else: ...{down}(x0'+.5,lower_notch)--(x0'-.5,lower_notch){up}... fi
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; %v
+else:
+ fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0'--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi %v
+penpos5(stem1,0); x5=x3; y5=0;
+fill z3l--diag_end(3l,5l,1,1,5r,3r)--z3r--cycle; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-slab)-eps;
+fill z1--z7--z6--z2--cycle; % upper bar
+% Yus_rbowl;
+pickup tiny.nib; numeric stem[],alpha[],right_jut,middle_weight;
+right_jut=.6cap_jut; middle_weight=cap_bar;
+penpos10(middle_weight,90);
+y10r=y3+.5min(cap_bar,cap_notch_cut); x10=x3; y9=y12=.8y10;
+rt x8r=w-lft x11l=hround(r-letter_fit-.3u-right_jut); bot y8=bot y11=y5;
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+alpha2=diag_ratio(1,.5(stem2-tiny),h-y8,x8r-x3);
+penpos8(alpha2*(stem2-tiny),0); penpos11(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y8'$=0; y11'$=0; endfor
+z8'r=z8r+penoffset (x3,h)-z8 of currentpen+whatever*((x3,h)-z8);
+z8'l=z8l+penoffset z8-(x3,h) of currentpen+whatever*((x3,h)-z8);
+z11'r=z11r+penoffset (x3,h)-z11 of currentpen+whatever*((x3,h)-z11);
+z11'l=z11l+penoffset z11-(x3,h) of currentpen+whatever*((x3,h)-z11);
+z8'=.5[z8'l,z8'r]; z11'=.5[z11'l,z11'r];
+z9=z8'+whatever*((x3,h)-z8); z12=z11'+whatever*((x3,h)-z11);
+penpos9(cap_stem-2stem_corr,0); penpos12(cap_stem-2stem_corr,0);
+fill z10l{right}...{z8'l-z9l}z9l--diag_end(9l,8'l,.5,1,8'r,9r)
+ --z9r{z9r-z8'r}...{left}z10r--cycle; % right diagonal
+ fill z10r{left}...{z11'l-z12l}z12l--diag_end(12l,11'l,1,.5,11'r,12r)
+ --z12r{z12r-z11'r}...{right}z10l--cycle; % left diagonal
+if serifs: numeric inner_jut; prime_points_inside(5,3);
+ if rt x5r+cap_jut+.5u+1<=lft x8l-cap_jut: inner_jut=cap_jut;
+ else: rt x5r+cap_jut+.5u+1=lft x8l-inner_jut; fi
+ dish_serif(11,12,a,1/3,right_jut,b,1/2,inner_jut)(dark); % lower diagonal serif
+ dish_serif(8,9,e,1/2,inner_jut,f,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(5',3,c,1/3,.75jut,d,1/3,.75jut); fi % middle serif
+%%%%%
+%I_part(13);
+_zero:=10;
+_one:=13; _two:=14; _three:=15; _four:=16;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18,19); endchar;
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter I_EST - IOT EST (IC with mid-line)";
+cyrchar(I_EST,13u#,cap_height#,0);
+if is_small_cap: getcharcode(i_est); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ 0);
+% upper_ukre;
+pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+rt x1r=rt x5r=hround(w-u); lft x3r=(hround u); x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+bot y1=min(vround .675h,bot y2l-eps); y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+x1r-x1'=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+% upukre_bar;
+numeric bar[]; y7=y8=y3;
+x7=x3l; x8=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+if (serifs=true) and (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr]; penpos9(bar2,45); z9=.575[z7l,z8l];
+ fill circ_stroke z8e{-2,-1}..{-2,1}z9e..{-2,-1}z7e; % curve /\/
+else: pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; fi % bar --
+%%%%%
+%I_part(3);
+_zero:=3;
+_one:=10; _two:=11; _three:=12; _four:=13;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+penlabels(1,1',2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter I_EST - IOT EST (HC with mid-line)";
+cyrchar(I_EST,11.5u#,cap_height#,0);
+if is_small_cap: getcharcode(i_est); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ 0);
+% uppers_ukre;
+pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+top y1r=vround.95h+o; top y2r=h+o; y3=.5h;
+bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4);
+% uukres_bar;
+numeric bar[]; y6=y7=y3; x6=x3l; x7=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+pickup fine.nib;
+bar1=if is_small_cap:max(fine.breadth+eps,.6[thin_join,vair]) else:cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+%I_part(3);
+_zero:=3;
+_one:=9; _two:=10; _three:=11; _four:=12;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+penlabels(1,1',2,3,4,5,6,7,8, 9,10,11,12); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2slxi.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2slxi.mf
new file mode 100644
index 00000000000..63940e75808
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2slxi.mf
@@ -0,0 +1,189 @@
+%
+% lgt2slxi.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic Old Slav letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% vnarrow_e
+% zelo
+% vuk
+% vi_a
+% izh_dgr
+% Vl_yus
+% izh_uml
+% olg
+% oery
+% ohrdsgn
+% oo_cdot
+% oo_cddot
+% Vizh
+% t_peter
+% zelo_m
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Cyrillic letter vnarrow_e";
+cyrcharmoving(vnarrow_e);
+
+lhchar "Italic Cyrillic letter zelo";
+cyrcharmoving(zelo);
+
+lhchar "Italic Cyrillic letter vuk - variant uk";
+cyrcharmoving(vuk);
+
+lhchar "Italic Cyrillic letter vi_a - variant iot a";
+cyrcharmoving(vi_a);
+
+lhchar "Italic Cyrillic letter izh_dgr - izhitsa double grave";
+cyrchar_twice(izh_dgr,9.5u#,x_height#+acc_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(.25u#,max(u#,.5u#+.5flare#)); %izhy_adj
+full_h:=h; h:=x_height;
+% ital_izh;
+numeric left_stem,right_stem,outer_jut,alpha,bulb_diam;
+left_stem=stem-stem_corr; bulb_diam=7/8[hair,flare];
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos4''(alpha*right_stem,0);
+penpos5(vair,90); penpos6(hair,0); penpos7(flare,0);
+x5=if serifs:.5[x4'',rt x6r] else: rt x6r fi; top y5r=h+oo;
+y4''=min(.9x_height,y5l-vair); z4''=whatever[z3,z4];
+rt x6r=hround(r-.5u-.5);
+y6=max(vround(top y5r-.5hair)-1-.5flare,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+cyrbulb(5,6,7); % bulb
+penpos1'(alpha*left_stem,0); y1'=3/4x_height; z1'=whatever[z1,z2];
+x10=l+letter_fit; x10:=hround(x10-.5hair)+.5hair; y10=2/3x_height;
+penpos9(vair,90); y9r=x_height+oo; x9=min(x1l-.5,x10+u);
+if y0>cap_notch_cut:
+ y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4''l...{right}z5r--z5l{left}
+ ...z4''r{z3-z4}--diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ pickup pencircle scaled1;
+ fill z0--z4''l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4''r
+ --diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ --cycle; fi % left and right diagonals
+pickup fine.nib;
+pos9'(vair,90); z9'=z9; pos10(hair,180);
+filldraw stroke z10e{up}...z9'e{right};
+%%%
+% the accent
+if monospace: hpos_corr=-2u; put_gravis; hpos_corr=2u; put_gravis;
+else: hpos_corr=-1.5u; put_gravis; hpos_corr=1.5u; put_gravis; fi
+repeat_once;
+penlabels(0,1,2,3,4); endchar;
+
+lhchar "Italic Cyrillic letter Vl_yus - like crossed Delta";
+cyrcharmoving(Vl_yus);
+
+lhchar "Italic Cyrillic letter izh_uml - izhitsa umlaut";
+cyrchar(izh_uml,9.5u#,lc_trema_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(.25u#,max(u#,.5u#+.5flare#)); %izhy_adj
+h:=x_height;
+% ital_izh;
+numeric left_stem,right_stem,outer_jut,alpha,bulb_diam;
+left_stem=stem-stem_corr; bulb_diam=7/8[hair,flare];
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos4''(alpha*right_stem,0);
+penpos5(vair,90); penpos6(hair,0); penpos7(flare,0);
+x5=if serifs:.5[x4'',rt x6r] else: rt x6r fi; top y5r=h+oo;
+y4''=min(.9x_height,y5l-vair); z4''=whatever[z3,z4];
+rt x6r=hround(r-.5u-.5);
+y6=max(vround(top y5r-.5hair)-1-.5flare,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+cyrbulb(5,6,7); % bulb
+penpos1'(alpha*left_stem,0); y1'=3/4x_height; z1'=whatever[z1,z2];
+x10=l+letter_fit; x10:=hround(x10-.5hair)+.5hair; y10=2/3x_height;
+penpos9(vair,90); y9r=x_height+oo; x9=min(x1l-.5,x10+u);
+if y0>cap_notch_cut:
+ y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4''l...{right}z5r--z5l{left}
+ ...z4''r{z3-z4}--diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ pickup pencircle scaled1;
+ fill z0--z4''l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4''r
+ --diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ --cycle; fi % left and right diagonals
+pickup fine.nib;
+pos9'(vair,90); z9'=z9; pos10(hair,180);
+filldraw stroke z10e{up}...z9'e{right};
+%%%
+% the accent
+lowercase_umlaut(.5[x1,x4]-.5w,0, 11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14); endchar;
+
+lhchar "Italic Cyrillic letter olg - old soft el (elghe)";
+cyrcharmoving(olg);
+
+lhchar "Italic Cyrillic letter oery - old ery";
+cyrcharmoving(oery);
+
+lhchar "Italic Cyrillic letter ohrdsn - old hard sign";
+cyrcharmoving(ohrdsn);
+
+lhchar "Italic Cyrillic letter oo_cdot - old o cdot";
+cyrcharmoving(oo_cdot);
+
+lhchar "Italic Cyrillic letter oo_cddot - old o double cdot";
+cyrcharmoving(oo_cddot);
+
+lhchar "Italic Cyrillic letter vizh - Variant izhitsa";
+cyrcharmoving(vizh);
+
+lhchar "Italic Cyrillic letter t_peter -- looks like m";
+cyrcharmoving(t_peter);
+
+lhchar "Italic Cyrillic letter zelo_m -- variant zelo mirror";
+cyrcharmoving(zelo_m);
+
+lhchar "Italic Cyrillic letter izhei";
+cyrcharmoving(izhei);
+
+lhchar "Italic Cyrillic letter lo";
+cyrcharmoving(lo);
+
+lhchar "Italic Cyrillic letter mo";
+cyrcharmoving(mo);
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2slxl.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2slxl.mf
new file mode 100644
index 00000000000..9960031cc3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2slxl.mf
@@ -0,0 +1,843 @@
+%
+% lgt2slxl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Old Slav letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% vnarrow_e
+% zelo
+% vuk
+% vi_a
+% izh_dgr
+% Vl_yus
+% izh_uml
+% olg
+% oery
+% ohrdsgn
+% oo_cdot
+% oo_cddot
+% vizh
+% t_peter
+% zelo_m
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Cyrillic letter variant narrow_e";
+cyrchar(vnarrow_e,7u#,x_height#,0); % eng
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,-1.5u# else: 0,-u# fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+2vair'+2,.9[bar_height,h]-flare);
+ pos5(hair,0); rt x1r=rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ x6r=x6l+(x1r-x1l)=.5[x2r,x1r]+eps; x7r=x7l+(x5r-x5l)=.5[x4r,x5r]+eps;
+ forsuffixes e=l,r: path pt.e,pb.e; numeric tt.e,tb.e;
+ pt.e=z1e{x2-x1,5(y2-y1)}...{left}z2e;
+ pb.e=z4e{right}..tension .9 and 1..{x5-x4,5(y5-y4)}z5e;
+ tt.e=ypart(((x6e,0)--(x6e,h)) intersectiontimes pt.e);
+ tb.e=ypart(((x7e,0)--(x7e,h)) intersectiontimes pb.e); endfor
+ filldraw stroke subpath(tt.e,1) of pt.e &
+ pulled_super_arc.e(2,3)(.7superpull) & pulled_super_arc.e(3,4)(.5superpull)
+ & subpath(0,tb.e) of pb.e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ x6r=x6l+.7(x1r-x1l)=.5[x2r,x1r]+eps; x7r=x7l+.7(x5r-x5l)=.5[x4r,x5r]+eps;
+ forsuffixes e=l,r: path p.e,pt.e; numeric tt.e,tb.e;
+ p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi
+ pt.e=term.e(2,1,right,.8,4); % upper terminal
+ tt.e=ypart(((x6e,0)--(x6e,h+o+eps)) intersectiontimes pt.e);
+ tb.e=ypart(((x7e,0)--(x7e,h+o+eps)) intersectiontimes p.e); endfor
+ filldraw stroke subpath(0,tt.e) of pt.e; % upper terminal
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & subpath(0,tb.e) of p.e; fi % arc and lower terminal
+% hstroke
+bar_stroke(x3l,0.85[x3l,x7l]-eps); %bar
+penlabels(1,1',2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter zelo";
+cyrchar(zelo,8u#,x_height#,sbeak#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround 1.25u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=1/6h; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+if not serifs: pickup fine.nib; fi
+pos7(arm_thickness2,-90); pos8(max(currentbreadth+eps,.6[thin_join,vair]),180);
+bot y7r=tiny.bot y4; x7=x4r; x0=w+.75u; y0=y7l;
+z8l=z0+whatever*(z2-z3); bot y8=-d-o;
+path p; p=(z7l{right}.. .45[z0,.5[z7,z8]] ..{z3-z2}z8l);
+z9=point 1 of p; pos9(curve,angle(direction 1 of p)-90);
+filldraw stroke z7e{right}...z9e{z8-z7}...{z3-z2}z8e; % tail
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter Vuk -- variant uk";
+cyrchar(vuk,9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); %o
+h:=.8x_height;
+% lower_o;
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%%%%%
+% "hachek"
+if serifs:
+ penpos14(1.2vair',90); penpos15(whatever,0);
+ x14=x1; y14=h+oo-eps;
+ x1-x15=x16-x1=good.x 3.25u; y15=y16=x_height+.5acc_height+oo;
+ penpos16(.25[vair,curve],angle(z16-z14)+90);
+ z15l=z14l+whatever*(z14-z15); (x15r,y)=z14r+whatever*(z14-z15);
+ fill stroke z15e--z14e{z16r-z14}..{.5right}z16e; % diagonals
+else:
+ pickup fine.nib;
+ pos14(3/4[vair,hair],0); pos16(3/4[vair,hair],0);
+ pos15(7/8[vair,fudged.stem],0);
+ x1-x14=x16-x1+eps; y15=h+oo-eps; x15=x1;
+ y14=y16=x_height+.35acc_height+oo; x14l=hround(rt x15r-3.5u-.5vair);
+ z0=whatever[z14r,z15r]=whatever[z15l,z16l]; y0'=max(y1r,y1l+notch_cut);
+ pair delta[];
+ delta1=penoffset z15-z14 of currentpen;
+ delta2=penoffset z16-z15 of currentpen;
+ fill z15l---z14l+delta1..top z14l---top z14r..z14r-delta1
+ if y0'<y0: {z0-z14r}...{down}(x0-1,y0')--(x0+1,y0'){up}...{z16l-z0}
+ else: ---z0--- fi
+ z16l-delta2..top z16l---top z16r..z16r+delta2---z15r--cycle; fi % diagonals
+%%%
+penlabels(1,2,3,4); endchar;
+
+% A from AE
+lhchar "Lowercase Cyrillic letter ligature vi_a - iot a";
+cyrchar(vi_a,8.5u#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.5u#;
+adjust_fit(if monospace: 4u# else: 4.75u# fi +serif_fit#,
+ serif_fit#);
+numeric left_stem,amid_stem,outer_jut,alpha;
+amid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.stem]);
+pickup tiny.nib; pos1(amid_stem,0); pos2(amid_stem,0);
+rt x1r=rt x2r=hround(w-max(2u,3u-.5amid_stem));
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos5(bar,-90); z0=z5;
+x5=x1; top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5bar);
+left_stem=if monospace:fudged.hair else: hair fi if hefty: -2stem_corr fi;
+outer_jut=.8jut; x11l=outer_jut+.35u-eps; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(.6[thin_join,vair],90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+numeric t; t=slab;
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut+x1l-x12,b,1/3,jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,jut); % lower middle serif
+fi
+%
+z15=whatever[z11,z12]; y15+.5bar+eps=min(8h,h-max(1.2slab,bracket))-eps;%t=slab
+% i_part(15);
+_zero:=15;
+_one:=16; _two:=17; _three:=18; _four:=19;
+%
+pickup tiny.nib; pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround(2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); fi % lower stem serif
+x[_three]=x[_zero]; x[_four]=x[_one];
+y[_three]=y[_four]=y[_zero]; pickup fine.nib;
+penpos[_three](.6[thin_join,vair],90);
+penpos[_four](.6[thin_join,vair],90); %fi
+penstroke z[_three]e--z[_four]e; % bar
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); endchar;
+
+% for shape, see Knizhnay Shrift p 58 Bodoni, Parma 1818
+lhchar "Lowercase Cyrillic letter izh_dgr - izhitsa double grave";
+cyrchar_twice(izh_dgr,if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+.5u#fi,
+ if serifs: max(.75u#,.25u#+.5flare#) else:max(0,.5stem#-.5u#) fi); % lizh_adj
+begingroup
+% lower_izh;
+numeric left_stem,right_stem,outer_jut,alpha,bulb_diam;
+left_stem=stem-stem_corr; bulb_diam=7/8[hair,flare];
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos4'(alpha*right_stem,0); penpos5(vair,90);
+x5=if serifs: .5[x4',x6r] else:x6r fi; y5r=h+oo;
+x6r=hround(r-.35u);
+y6=max(vround(y5r-.25tiny-.5flare),
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare)); %zh bulb h
+z4'=whatever[z3,z4]; y4'=min(y6-.5hair,8/5bar_height)-eps;
+if serifs: penpos6(hair,0); penpos7(flare,0);
+ cyrbulb(5,6,7); fi % bulb
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4'l...{right}
+ if serifs: z5r--z5l
+ else:
+ (.5[x4,x4r],y5r)--(fine.lft x5r,y5r)..(x5r,fine.bot y5r)--
+ (x5l,fine.top y5l)..(fine.lft x5l,y5l) fi
+ {left}...z4'r{z3-z4}
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--z4'l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4'r
+ --diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2);
+ if rt x1'r+jut+.5u+1<=lft x4l-jut+.5tiny: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4l-inner_jut+.5tiny; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); fi % upper left serif
+%%%%%
+endgroup;
+% the accent
+if monospace: hpos_corr=-2u; put_gravis; hpos_corr=2u; put_gravis;
+else: hpos_corr=-1.5u; put_gravis; hpos_corr=1.5u; put_gravis; fi
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter Vl_yus - like crossed Delta";
+cyrchar(Vl_yus,10u#+2stem#,x_height#,0);
+adjust_fit(serif_fit#,serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=fudged.stem-stem_corr;
+left_stem=min(fudged.hair if hefty:-2stem_corr fi,right_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+.25u; y1=y4=0; %+outer_jut
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=.6[thin_join,vair];
+penstroke z5e--z6e; % middle bar line
+penpos5'(whatever,angle(z2-z1)); z5'=whatever[z1,z2];
+penpos6'(whatever,angle(z3-z4)); z6'=whatever[z3,z4]; y6'=y5';
+bot y5'l=0; y5'r-y5'l=y6'r-y6'l=if hefty:max(.7slab,y5r-y5l) else: slab fi;
+penstroke z5'e--z6'e; % bar line
+penlabels(0,1,2,3,4,5,5',6,6'); endchar;
+
+% for shape, see Knizhnay Shrift p 58 Bodoni, Parma 1818
+lhchar "Lowercase Cyrillic letter izh_uml - izhitsa umlaut";
+cyrchar(izh_uml,if serifs: 9.5u# else:9u# fi,lc_trema_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+.5u# fi,
+ if serifs: max(.75u#,.25u#+.5flare#) else:max(0,.5stem#-.5u#) fi); % lizh_adj
+full_h:=h; h:=x_height;
+% lower_izh;
+numeric left_stem,right_stem,outer_jut,alpha,bulb_diam;
+left_stem=stem-stem_corr; bulb_diam=7/8[hair,flare];
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos4'(alpha*right_stem,0); penpos5(vair,90);
+x5=if serifs: .5[x4',x6r] else:x6r fi; y5r=h+oo;
+x6r=hround(r-.35u);
+y6=max(vround(y5r-.25tiny-.5flare),
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare)); %zh bulb h
+z4'=whatever[z3,z4]; y4'=min(y6-.5hair,8/5bar_height)-eps;
+if serifs: penpos6(hair,0); penpos7(flare,0);
+ cyrbulb(5,6,7); fi % bulb
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4'l...{right}
+ if serifs: z5r--z5l
+ else:
+ (.5[x4,x4r],y5r)--(fine.lft x5r,y5r)..(x5r,fine.bot y5r)--
+ (x5l,fine.top y5l)..(fine.lft x5l,y5l) fi
+ {left}...z4'r{z3-z4}
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--z4'l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4'r
+ --diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2);
+ if rt x1'r+jut+.5u+1<=lft x4l-jut+.5tiny: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4l-inner_jut+.5tiny; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); fi % upper left serif
+%%%%%
+% the accent
+lowercase_umlaut(.5[x1,x4]-.5w,0, 8,9,10,11);
+penlabels(0,1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter ligature olg - old soft el (elghe)";
+cyrchar(olg,10u# % if not serifs:+.5width_adj# fi % dl_width;n_width
+ ,x_height#,0);
+italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u#
+adjust_fit(serif_fit# if not serifs:+.5(stem#-u#) fi, %dl_adj
+ if serifs: 2u# else: 3u# fi-.5width_adj#); % old_beak_adj
+% lower_l;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,bot_vair,bulb_diam,left_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+bot_vair=Vround(.5[vair,light_hair]);
+bulb_diam=hround 7/8[hair,flare];
+left_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (w+serif_fit-rt x2r-.5u) fi;
+x3=1/3[w-rt x1r-(1/8left_jut),rt x1r] if not serifs: -.5(stem-u) fi +eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(hair,-180);
+ top y3=h; y6-.5bulb_diam=.12desc_depth-eps; z6r=z5r;
+ lft x6r=l+letter_fit+hround(.35u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]);
+ bot y4r=-1.5oo-eps; {{less_tense; bulb(4,5,6)}}; %bulb
+ filldraw stroke z4e{right}
+ ..controls (min(15/16[x4,x3],max(x4,lft x6r+1.75bulb_diam))+(x3e-x3),y4e)
+ and (x3e,max(y4l,min(y6-.5,1/3h+eps))+1/3(y4e-y4))..{up}z3e; % left tail
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e; % upper bar
+ pickup fine.nib; pos3(light_hair,0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=.67[x3l,x5];
+ lft x5=l+letter_fit+hround(.35u-.5); bot y4r=bot y5r; y3=y3';
+ filldraw stroke z3e{down}..controls (x3e,y5e+.35h)
+ and (min(7/8[x4e,x3e],x4e+2light_hair)+eps,y4e-eps)..{left}z4e--z5e; fi % left stem
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5jut);
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,a,1/3,jut,b,1/3,jut); %lower right serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,.5jut); %!!! %upper right serif
+ nodish_serif(3,0,e,1/3,1.05jut,f,1/3,inner_jut); % upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% (old) lower right beak(2);
+if (serifs=false) and (old_cyr=true):
+ pickup tiny.nib;
+ pos7(vair,90); top y7r=h; x7=x2;
+ pos8(vair,90); y8=y7; rt x8r=hround(r-.45u);
+ filldraw stroke z7e--z8e; % horisontal
+ pickup fine.nib; pos9(slab,0); pos10(slab,0);
+ rt x9r=rt x10r=tiny.rt x8r; y9=y8r; bot y10=y8l-.7sbeak;
+ filldraw stroke z9e--z10e; %vertical
+else:
+ pickup crisp.nib;
+ pos7(vair,90); top y7r=h; x7=x2; rt x8r=hround(r-.45u);
+ pos8(hair,0); y8=good.y(y7l-beak/1.4)-eps;
+ arm(7,8,i,beak_darkness,.4beak_jut); % upper arm and beak
+fi
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Lowercase Cyrillic letter oery - old ery";
+cyrchar(oery,9u#,x_height#,0); % v_witdh
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if serifs: 2u# else: 3u# fi-.5width_adj#, % old_beak_adj
+ serif_fit#+4u#);
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% (old) lower left beak(2);
+if (serifs=false) and (old_cyr=true):
+ pickup tiny.nib;
+ pos8(vair,90); top y8r=h; x8=x2;
+ pos9(vair,90); y9=y8; lft x9r=l+letter_fit+hround.45u;
+ filldraw stroke z8e--z9e; % horisontal
+ pickup fine.nib; pos10(slab,0); pos11(slab,0);
+ lft x10l=lft x11l=tiny.lft x9l; y10=y9r; bot y11=y8l-.7sbeak;
+ filldraw stroke z10e--z11e; % vertical
+else:
+ pickup crisp.nib;
+ pos8(vair,90); top y8r=h; x8=x2; lft x9r=l+letter_fit+hround.45u;
+ pos9(hair,180); y9=good.y(y8l-beak/1.4)-eps;
+ arm(8,9,i,beak_darkness,-.4beak_jut); % upper arm and beak
+fi
+% I
+w:=w+4u; pickup tiny.nib; rt x12r=rt x13r=w-lft x1l; top y12=h; bot y13=0;
+pos12(fudged.stem,0); pos13(fudged.stem,0);
+filldraw stroke z12e--z13e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(12,13,e,1/3,jut,f,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(13,12,g,1/3,jut,h,1/3,jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter ohrdsn - old hard sign";
+cyrchar(ohrdsn,9u#,x_height#,0); % v_witdh
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(if serifs: 2u# else: 3u# fi-.5width_adj#, % old_beak_adj
+ if monospace:.5u# else:0 fi);
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% old lower left beak(2);
+if (serifs=false) and (old_cyr=true):
+ pickup tiny.nib;
+ pos8(vair,90); top y8r=h; x8=x2;
+ pos9(vair,90); y9=y8; lft x9r=l+letter_fit+hround.45u;
+ filldraw stroke z8e--z9e; % horisontal
+ pickup fine.nib; pos10(slab,0); pos11(slab,0);
+ lft x10l=lft x11l=tiny.lft x9l; y10=y9r; bot y11=y8l-.7sbeak;
+ filldraw stroke z10e--z11e; % vertical
+else:
+ pickup crisp.nib;
+ pos8(vair,90); top y8r=h; x8=x2; lft x9r=l+letter_fit+hround.45u;
+ pos9(hair,180); y9=good.y(y8l-beak/1.4)-eps;
+ arm(8,9,i,beak_darkness,-.4beak_jut); % upper arm and beak
+fi
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter oo_cdot - old o cdot";
+cyrchar(oo_cdot,10u#,x_height#,0); %f width-u
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+if serifs: interim superness:=1.05 superness;
+ else: interim superness:=1.075 superness; fi
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% dot
+pickup tiny.nib;
+dot_diam:=min((lft x4l-rt x2l)-1,
+ max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr)));
+pos5(dot_diam,0); pos5'(dot_diam,90);
+z5=z5'; x5=x1; y5=.5[y1,y3]; dot(5,5'); % dot
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter oo_cddot - old o double cdot";
+cyrchar(oo_cddot,11u#,x_height#,0); %f width - eps
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+if serifs: interim superness:=1.05 superness;
+ else: interim superness:=1.075 superness; fi
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% dots
+_one:=5; _two:=6; _three:=7; _four:=8;
+dot_diam:=min(.5(lft x4l-rt x2l)-1,
+ max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr)));
+pickup tiny.nib;
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=x[_two]=.5w-1.375u; y[_one]=y[_two]=.5[y1,y3];
+dot([_one],[_two]); % left dot
+pos[_three](dot_diam,0);
+penpos[_four](y[_two]r-y[_two]l,90);
+y[_three]=y[_four]=y[_one]; x[_three]=x[_four]=x[_one]+2.75u;
+dot([_three],[_four]); % right dot
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter vizh - variant izhitsa";
+cyrchar(vizh,if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+%letter_old_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; bot y5=-d;
+if serifs: fill stroke z3e---z5e; % straight arc
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(5,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(5',3,e,1/2,jut/1.2,f,.6,jut)(dark); % lower serif
+else:
+ fill z3r---diag_end(3r,5r,.75,.75,5l,3l)---z3l--cycle; fi % straight arc
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter t_peter - like flipped sh";
+cyrchar(t_peter,14.5u# if serifs:+.5width_adj# fi,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0,0 else: serif_fit#,serif_fit# fi); %wlett_adj
+% lower_sh;flip
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib;
+pos1(fudged.stem,0); pos2(fudged.stem,0); pos3(fudged.stem,0);
+pos4(fudged.stem,0); pos5(fudged.stem,0); pos6(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=top y5=h; bot y2=bot y4=bot y6=0;
+lft x5l=lft x6l=hround (.5[x1,x3]-.5fudged.stem); % middle stem point
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x5l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ nodish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ fill z.b0--z.b1--z.e1--z.e0--cycle; % upper inter_serif bar
+else:
+ lft x2'= lft x2l; top y2'r=h; pos2'(vair,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(vair,90);
+ filldraw stroke z2'e--z4'e; fi
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter zelo_m - variant zelo mirror";
+cyrchar(zelo_m,7.1u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .4u#,.5u# else: if serifs:0 else:-.2u# fi,0 fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs: vair else: Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+%mirror
+forsuffixes $ = 2l,2,2r,3l,3,3r,4l,4,4r,5l,5,5r,6l,6,6r,7l,7,7r:
+ x$:=l+(r-x$); endfor;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs:
+ pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ forsuffixes $ = 1l,1,1r,8l,8,8r: x$:=l+(r-x$); endfor;
+ filldraw stroke z1e{up}....{right}z2e; % upper arc
+ filldraw stroke z7e{right}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{right}z2; lower_arc=z7{right}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,hair],180); pos9(.3[fine.breadth,hair],180);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1'-x1l=x8r-x8'=1.6curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else:
+ pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ forsuffixes $ = 1l,1,1r,8l,8,8r: x$:=l+(r-x$); endfor;
+ filldraw stroke term.e(2,1,left,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,right,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+lhchar "Lowercase Cyrillic letter izhei";
+cyrchar(izhei,10u# if not serifs:+.5width_adj# fi,x_height#,0); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+y5=vround(.45h-eps); y6=vround(.65h-eps);
+stem1=7/8[thin_join,vair];
+penpos5(stem1,90); penpos6(stem1,90);
+fill stroke z5e--z6e; % diagonal
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter lo";
+cyrchar(lo,10u# % if not serifs:+.5width_adj# fi % dl_width;n_width
+ ,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit# if not serifs:+.5(stem#-u#) fi, %dl_adj
+ if monospace: 9.5 else: 9 fi u#); %
+% lower_l;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,bot_vair,bulb_diam,left_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+bot_vair=Vround(.5[vair,light_hair]);
+bulb_diam=hround 7/8[hair,flare];
+left_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (w+serif_fit-rt x2r-.5u) fi;
+x3=1/3[w-rt x1r-(1/8left_jut),rt x1r] if not serifs: -.5(stem-u) fi +eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(hair,-180);
+ top y3=h; y6-.5bulb_diam=.12desc_depth-eps; z6r=z5r;
+ lft x6r=l+letter_fit+hround(.35u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]);
+ bot y4r=-1.5oo-eps; {{less_tense; bulb(4,5,6)}}; %bulb
+ filldraw stroke z4e{right}
+ ..controls (min(15/16[x4,x3],max(x4,lft x6r+1.75bulb_diam))+(x3e-x3),y4e)
+ and (x3e,max(y4l,min(y6-.5,1/3h+eps))+1/3(y4e-y4))..{up}z3e; % left tail
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e; % upper bar
+ pickup fine.nib; pos3(light_hair,0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=.67[x3l,x5];
+ lft x5=l+letter_fit+hround(.35u-.5); bot y4r=bot y5r; y3=y3';
+ filldraw stroke z3e{down}..controls (x3e,y5e+.35h)
+ and (min(7/8[x4e,x3e],x4e+2light_hair)+eps,y4e-eps)..{left}z4e--z5e; fi % left stem
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5jut);
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,a,1/3,jut,b,1/3,jut); % lower right serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,jut); % upper right serif
+ nodish_serif(3,0,e,1/3,1.05jut,f,1/3,inner_jut); % upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%
+%O_part
+full_w:=9u;
+_zero:=2;
+_one:=9; _two:=10; _three:=11; _four:=12; _five:=13; _six:=14;
+penpos[_one](vair,90); penpos[_three](vair',-90);
+penpos[_two](curve,180); penpos[_four](curve,0);
+x[_two]r=hround max(.5u,1.25u-.5curve);
+x[_four]r=full_w-x[_two]r; x[_one]=x[_three]=.5full_w;
+y[_one]r=h+vround 1.5oo; y[_three]r=-oo;
+y[_two]=y[_four]=.5h-vair_corr; y[_two]l:=y[_four]l:=.52h;
+%shift
+forsuffixes $ = [_one]l,[_one],[_one]r,[_two]l,[_two],[_two]r,
+ [_three]l,[_three],[_three]r,[_four]l,[_four],[_four]r: x$:=x$+w; endfor;
+penstroke pulled_arc.e([_one],[_two]) & pulled_arc.e([_two],[_three])
+ & pulled_arc.e([_three],[_four]) & pulled_arc.e([_four],[_one]) & cycle; % bowl
+%%%
+bar_stroke(x[_zero],x[_two]); % bar
+%%%%%
+penlabels(0,1,1',2,3,3',4,5,6);endchar;
+
+lhchar "Lowercase Cyrillic letter mo";
+cyrchar(mo,12u# if not serifs:+width_adj# fi,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0,.5u# else: serif_fit#,9u# fi); %wlett_adj
+% lower_m;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.stem-3stem_corr);
+stem3=min(stem2,hround (fudged.hair-2stem_corr));
+stem4=max(stem1,hround(fudged.stem-3stem_corr));
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround (w-2.5u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty:
+ y6=if monospace: vround 1/3h else: oo fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut+eps; lower_notch=y5+notch_cut-eps;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5+eps,lower_notch)--(x0-.5-eps,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else:
+ y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x2r+jut+.5u+1+eps+.5stem3<=lft x4l-.5stem3-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1+eps+.5stem3=lft x4l-.5stem3-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ serif(1,2,a,1/3,-jut); % upper left serif
+ serif(3,4,d,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); % lower left serif
+ dish_serif(4,3,e,1/3,jut,f,1/3,jut); fi % lower right serif
+%%%
+%O_part
+full_w:=9u;
+_zero:=4;
+_one:=9; _two:=10; _three:=11; _four:=12; _five:=13; _six:=14;
+penpos[_one](vair,90); penpos[_three](vair',-90);
+penpos[_two](curve,180); penpos[_four](curve,0);
+x[_two]r=hround max(.5u,1.25u-.5curve);
+x[_four]r=full_w-x[_two]r; x[_one]=x[_three]=.5full_w;
+y[_one]r=h+vround 1.5oo; y[_three]r=-oo;
+y[_two]=y[_four]=.5h-vair_corr; y[_two]l:=y[_four]l:=.52h;
+%shift
+forsuffixes $ = [_one]l,[_one],[_one]r,[_two]l,[_two],[_two]r,
+ [_three]l,[_three],[_three]r,[_four]l,[_four],[_four]r: x$:=x$+w; endfor;
+penstroke pulled_arc.e([_one],[_two]) & pulled_arc.e([_two],[_three])
+ & pulled_arc.e([_three],[_four]) & pulled_arc.e([_four],[_one]) & cycle; % bowl
+%%%
+bar_stroke(x[_zero],x[_two]); % bar
+%%%%%
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2slxu.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2slxu.mf
new file mode 100644
index 00000000000..bb3f5d3544f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2slxu.mf
@@ -0,0 +1,867 @@
+%
+% lgt2slxu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Old Slav letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% VNARROW_E
+% ZELO
+% VUK
+% VI_A upper
+% IZH_dgr
+% VL_YUS
+% IZH_uml
+% OLG
+% OERY
+% OHRDSN
+% OO_cdot
+% OO_cddot
+% VIZH
+% T_peter
+% ZELO_m
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter variant NARROW_E - like Ukrainian E";
+cyrchar(VNARROW_E,13u#,cap_height#,0);
+if is_small_cap: getcharcode(vnarrow_e); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% upper_ukre;
+pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+bot y1=min(vround.675h,bot y2l-eps);
+y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+x1r-x1'=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+% upukre_bar;
+numeric bar[]; y7=y8=y3;
+x7=x3l; x8=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+if (serifs=true) and (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr];
+ penpos9(bar2,45); z9=.575[z7l,z8l];
+ fill circ_stroke z8e{-2,-1}..{-2,1}z9e..{-2,-1}z7e; % curve /\/
+else:
+ pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; fi % bar --
+%%%%%
+penlabels(1,1',2,3,4,5,6); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter variant NARROW_E - like Ukrainian E";
+cyrchar(VNARROW_E,11.5u#,cap_height#,0);
+if is_small_cap: getcharcode(vnarrow_e); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% uppers_ukre;
+pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+top y1r=vround.95h+o; top y2r=h+o; y3=.5h;
+bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4);
+% uukres_bar;
+numeric bar[]; y6=y7=y3; x6=x3l; x7=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+pickup fine.nib;
+bar1=if is_small_cap:max(fine.breadth+eps,.6[thin_join,vair]) else: cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+penlabels(1,1',2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter ZELO";
+cyrchar(ZELO,11u#,cap_height#,cap_sbeak#);
+if is_small_cap: getcharcode(zelo); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=cap_band;%vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l-.75u=x4l-.75u=w-x1r=w-x2r; lft x3l=hround 1.75u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=1/6h; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+if not serifs: pickup fine.nib; fi
+pos7(arm_thickness2,-90); pos8(max(currentbreadth+eps,.7[thin_join,vair]),180);
+bot y7r=tiny.bot y4; x7=x4r; x0=w+1.5u; y0=y7l;
+z8l=z0+whatever*(z2-z3); bot y8=-d-o;
+path p; p=(z7l{right}.. .45[z0,.5[z7,z8]] ..{z3-z2}z8l);
+z9=point 1 of p; pos9(cap_curve,angle(direction 1 of p)-90);
+filldraw stroke z7e{right}...z9e{z8-z7}...{z3-z2}z8e; % tail
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter VUK -- Variant UK";
+cyrchar(VUK,14u#-width_adj#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(vuk); fi
+italcorr .7cap_height#*slant-.5u#; %O
+h:=.8cap_height;
+adjust_fit(0,0);
+% upper_o;
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%%%%%
+%"hachek"
+if serifs:
+ penpos14(1.414vair',90); pos15(whatever,0); x14=x1; y14=h+o-eps;
+ x1-x15=x16-x1=good.x 4.25u; top y15=top y16=cap_height+.35acc_height+o;
+ pos16(.25[vair,cap_curve],angle(z16-z14)+90);
+ z15l=z14l+whatever*(z14-z15); z15r=z14r+whatever*(z14-z15);
+ filldraw stroke z15e--z14e{z16r-z14}..{.5right}z16e; % hachek
+else:
+ pickup fine.nib;
+ pos14(hair,0); pos16(hair,0); penpos15(fudged.stem,0);
+ x1-x14=x16-x1; y15=h; x15=x1;
+ top y14=top y16=cap_height+.5acc_height+o;
+ lft x14l=hround(rt x15r-5u-.5vair);
+ z0=whatever[z14r,z15r]=whatever[z15l,z16l];
+ pair delta[];
+ delta1=penoffset z15-z14 of currentpen;
+ delta2=penoffset z16-z15 of currentpen;
+ fill z15l---z14l+delta1..top z14l---top z14r..z14r-delta1
+ ---z0---
+ z16l-delta2..top z16l---top z16r..z16r+delta2---z15r--cycle; fi % hachek
+%%%
+penlabels(1,2,3,4,14,15,16); endchar;
+
+lhchar "Uppercase Cyrillic letter OT";
+% A from AE
+lhchar "Uppercase Cyrillic letter ligature VI_A - IOT A";
+cyrchar(VI_A,11u#,cap_height#,0);
+if is_small_cap: getcharcode(vi_a); fi
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(.5u#+
+ if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj+.5u
+ cap_serif_fit#);
+numeric left_stem,amid_stem,outer_jut,alpha;
+amid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(amid_stem,0); pos2(amid_stem,0);
+rt x1r=rt x2r=hround(w-max(2u,3u-.5amid_stem));
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos5(cap_bar,-90); z0=z5;
+x5=x1; top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=outer_jut+.5u-eps; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,cap_jut); fi % lower middle serif
+%
+z15=whatever[z11,z12]; y15+.5cap_bar+eps=min(8h,h-max(1.2slab,bracket))-1-eps;
+%I_part(15);
+_zero:=15;
+_one:=16; _two:=17; _three:=18; _four:=19;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19); endchar;
+
+% for shape, see Knizhnay Shrift p 58 Bodoni, Parma 1818
+lhchar "Uppercase Cyrillic letter IZH_dgr - IZHITSA double grave";
+cyrchar_twice(IZH_dgr,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(izh_dgr); fi
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,
+ if serifs: min(1.5u#,.5u#+(flare#+(cap_stem#-stem#))) %ccL_adj
+ else:.5u#fi);
+full_h:=h; h:=cap_height;
+% upper_izh;
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+x6=if serifs:.5[x5,x7r] else:x7r fi;
+penpos6(vair,90); y6r=h if serifs:+o fi;
+penpos5(alpha*right_stem,0);
+y5=min(.9cap_height,bot y6l-.5vair); z5=whatever[z3,z4];
+x7r=hround(r-.5u); penpos7(hair,0);
+y7=h-vround max(.05fig_height+.5flare,.1fig_height-.5flare)+o; z8r=z7r;
+penpos8(flare,0); if serifs: cyrbulb(6,7,8); fi
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z5l...{right}
+ if serifs: z6r--z6l
+ else:
+ (.5[x4,x4r],y6r)--(fine.lft x6r,y6r)..(x6r,fine.bot y6r)--
+ (x6l,fine.top y6l)..(fine.lft x6l,y6l) fi
+ {left}
+ ....z5r{z3-z4}--diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--z5l{z4-z3}...{right}z6r--z6l{left}...{z3-z4}z5r
+ --diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2);
+ if rt x1'r+cap_jut+.5u+1<=x4l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=x4l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); fi % left serif
+%%%%%
+% the accent
+if monospace:
+ hpos_corr=-2u; put_gravis(cyrcaph);
+ hpos_corr=2u; put_gravis(cyrcaph);
+else: hpos_corr=-1.5u; put_gravis(cyrcaph);
+ hpos_corr=1.5u; put_gravis(cyrcaph); fi
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Uppercase Cyrillic letter VL_YUS - like crossed Delta";
+cyrchar(VL_YUS,13u#+2cap_stem#,cap_height#,0);
+if is_small_cap: getcharcode(Vl_yus); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+.5u; y1=y4=0; %+outer_jut
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % middle bar line
+penpos5'(whatever,angle(z2-z1)); z5'=whatever[z1,z2];
+penpos6'(whatever,angle(z3-z4)); z6'=whatever[z3,z4]; y6'=y5';
+bot y5'l=0; y5'r-y5'l=y6'r-y6'l=slab;
+penstroke z5'e--z6'e; % bar line
+penlabels(0,1,2,3,4,5,5',6,6'); endchar;
+%
+% for shape, see Knizhnay Shrift p 58 Bodoni, Parma 1818
+lhchar "Uppercase Cyrillic letter IZH_uml - IZHITSA umlaut";
+cyrchar(IZH_uml,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(izh_uml); fi
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,
+ if serifs: min(1.5u#,.5u#+(flare#+(cap_stem#-stem#))) %ccL_adj
+ else:.5u#fi);
+full_h:=h; h:=cap_height;
+% upper_izh;
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+x6=if serifs:.5[x5,x7r] else:x7r fi;
+penpos6(vair,90); y6r=h if serifs:+o fi;
+penpos5(alpha*right_stem,0);
+y5=min(.9cap_height,bot y6l-.5vair); z5=whatever[z3,z4];
+x7r=hround(r-.5u); penpos7(hair,0);
+y7=h-vround max(.05fig_height+.5flare,.1fig_height-.5flare)+o; z8r=z7r;
+penpos8(flare,0); if serifs: cyrbulb(6,7,8); fi
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z5l...{right}
+ if serifs: z6r--z6l
+ else:
+ (.5[x4,x4r],y6r)--(fine.lft x6r,y6r)..(x6r,fine.bot y6r)--
+ (x6l,fine.top y6l)..(fine.lft x6l,y6l) fi
+ {left}
+ ....z5r{z3-z4}--diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--z5l{z4-z3}...{right}z6r--z6l{left}...{z3-z4}z5r
+ --diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2);
+ if rt x1'r+cap_jut+.5u+1<=x4l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=x4l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); fi % left serif
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut(.5[x1,x4]-.5w,0, 9,10,11,12);
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11,12); endchar;
+
+lhchar "Uppercase Cyrillic letter ligature OLG - Old soft EL (ELGHE)";
+cyrchar(OLG,13.5u#,cap_height#,0); % DL_width:N_width
+if is_small_cap: getcharcode(olg); fi;
+italcorr cap_height#*slant-beak_jut#; %Gamma+.25u
+adjust_fit(cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi, %DL_adj
+ if not serifs:.5u#+ fi
+ min(4.5u#-.5stem#,3.5u#)-.5width_adj#); % Beak_adj+.5u
+% upper_l;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+numeric light_hair,bot_vair,left_jut;
+light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi);
+left_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit-rt x2r-.65u) fi;
+bot_vair=Vround(.5[vair,light_hair]);
+x3=1/3[w-rt x1r-(1/6left_jut),rt x1r] if not serifs:-.5(cap_stem-u) fi+eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(cap_hair,-180);
+ top y3=h; y6=1/6h-max(0,flare-stem-2vair_corr-.5); z6r=z5r;
+ lft x6r=l+letter_fit+hround(.5u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]); bot y4r=-o;
+ filldraw stroke z4e{right}..
+ controls (min(15/16[x4,x3],max(x4,lft x6r+2flare))+(x3e-x3)+eps,y4e)
+ and (x3e,good.y(min(y6-.5,1/3h)+1/3(y4e-y4))-eps)..z3e; % left tail
+ {{less_tense; bulb(4,5,6)}};
+else:
+ pos3'(slab,90); pos1'(slab,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e;
+ pickup fine.nib; pos3(max(fine.breadth,light_hair),0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=2/3[x3l,x5r]; lft x5=l+letter_fit+hround(.35u-.5);
+ bot y4r=bot y5r; y3=y3'; x4l:=.25[x4,x5];
+ path p;
+ p=stroke z3{down}
+ ..controls (x3,y5+.35h-eps) and (min(7/8[x4,x3],x5+2.5light_hair+.5u),y4)
+ ..{left}z4--z5;
+ z6=point .35 of p;
+ pos6(max(fine.breadth,7/8[bot_vair,light_hair]),angle(direction .35 of p)+90);
+ filldraw stroke z3e{down}...z6e{direction .35 of p}...{left}z4e--z5e; fi % arc
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5cap_jut);
+ dish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut); %lower right serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); %upper right serif
+ nodish_serif(3,0,e,1/3,1.05cap_jut,f,1/3,inner_jut); %upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% (old) upper right beak(2);
+if (serifs=false) and (old_cyr=true):
+ pickup tiny.nib;
+ pos7(slab,90); top y7r=h; x7=x2;
+ pos8(slab,90); y8=y7; rt x8r=hround(r-.65u);
+ filldraw stroke z7e--z8e; % horisontal
+ pickup fine.nib; pos9(.3[slab,cap_stem],0); pos10(.3[slab,cap_stem],0);
+ rt x9r=rt x10r=tiny.rt x8r; y9=y8r; bot y10=y8l-sbeak;
+ filldraw stroke z9e--z10e; % vertical
+else:
+ pickup crisp.nib;
+ pos7(slab,90); top y7r=h; x7=x2; rt x8r=hround(r-.65u);
+ pos8(hair,0); y8=good.y(y7l-beak)-eps;
+ arm(7,8,i,beak_darkness,.7beak_jut); % upper arm and beak
+fi
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter OERY - Old ERY";
+cyrchar(OERY,12.5u#,cap_height#,0); %V_width#=12.5u#
+if is_small_cap: getcharcode(oery); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if not serifs:.5u#+ fi
+ min(4.5u#-.5stem#,3.5u#)-.5width_adj#, % Beak_adj+.5u
+ cap_serif_fit#+4.5u#); %ERYadj
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% (old) upper left beak(2);
+if (serifs=false) and (old_cyr=true):
+ pickup tiny.nib;
+ pos8(slab,90); top y8r=h; x8=x2;
+ pos9(slab,90); y8=y9; lft x9r=l+letter_fit+hround.65u;
+ filldraw stroke z8e--z9e; % horisontal
+ pickup fine.nib; pos10(.3[slab,cap_stem],0); pos11(.3[slab,cap_stem],0);
+ lft x10l=lft x11l=tiny.lft x9; y10=y9r; bot y11=y9l-sbeak;
+ filldraw stroke z10e--z11e; % vertical
+else:
+ pickup crisp.nib;
+ pos8(slab,90); top y8r=h; x8=x2; lft x9r=l+letter_fit+hround.65u;
+ pos9(hair,180); y9=good.y(y8l-beak)-eps;
+ arm(8,9,i,beak_darkness,-.7beak_jut); % upper arm and beak
+fi
+% I
+w:=w+4.5u; pickup tiny.nib;
+rt x13r=rt x14r=w-hround max(2u,3u-.5stem);
+top y13=h; bot y14=0; pos13(cap_stem,0); pos14(cap_stem,0);
+filldraw stroke z13e--z14e;
+if serifs: dish_serif(13,14,e,1/3,cap_jut,f,1/3,cap_jut);
+ dish_serif(14,13,g,1/3,cap_jut,h,1/3,cap_jut); fi
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter OHRDSN - Old HARD SIGN";
+cyrchar(OHRDSN,12.5u#,cap_height#,0); %V_width#=12.5u#
+if is_small_cap: getcharcode(ohrdsn); fi
+italcorr .52*.7cap_height#*slant-.5u#; % D*.52h
+adjust_fit(if not serifs:.5u#+ fi
+ min(4.5u#-.5stem#,3.5u#)-.5width_adj#, % Beak_adj+.5u
+ 0);
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% (old) upper left beak(2);
+if (serifs=false) and (old_cyr=true):
+ pickup tiny.nib;
+ pos8(slab,90); top y8r=h; x8=x2;
+ pos9(slab,90); y8=y9; lft x9r=l+letter_fit+hround.65u;
+ filldraw stroke z8e--z9e; % horisontal
+ pickup fine.nib; pos10(.3[slab,cap_stem],0); pos11(.3[slab,cap_stem],0);
+ lft x10l=lft x11l=tiny.lft x9; y10=y9r; bot y11=y9l-sbeak;
+ filldraw stroke z10e--z11e; % vertical
+else:
+ pickup crisp.nib;
+ pos8(slab,90); top y8r=h; x8=x2; lft x9r=l+letter_fit+hround.65u;
+ pos9(hair,180); y9=good.y(y8l-beak)-eps;
+ arm(8,9,i,beak_darkness,-.7beak_jut); % upper arm and beak
+fi
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Uppercase Cyrillic letter OO_cdot - Old O cdot";
+cyrchar(OO_cdot,15u#,cap_height#,0); %F width-u
+if is_small_cap: getcharcode(oo_cdot); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: if serifs: interim superness:=1.05 superness;
+ else: interim superness:=1.075 superness; fi x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+% dot
+pickup tiny.nib;
+dot_diam:=min((lft x4l-rt x2l)-1,
+max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr)));
+pos5(dot_diam,0); pos5'(dot_diam,90);
+z5=z5'; x5=x1; y5=.5[y1,y3]; dot(5,5'); % dot
+penlabels(1,2,3,4, 5,5); endchar;
+
+lhchar "Uppercase Cyrillic letter OO_cddot - Old double cdot";
+cyrchar(OO_cddot,17u#,cap_height#,0); %F width+u
+if is_small_cap: getcharcode(oo_cddot); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: if serifs: interim superness:=1.05 superness;
+ else: interim superness:=1.075 superness; fi x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%
+_one:=5; _two:=6; _three:=7; _four:=8;
+dot_diam:=min(.5(lft x4l-rt x2l)-1,
+max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr)));
+pickup tiny.nib;
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=x[_two]=max(x2l+.5dot_diam+1+eps,.5w-2.25u); y[_one]=y[_two]=.5[y1,y3];
+dot([_one],[_two]); % left dot
+pos[_three](dot_diam,0); penpos[_four](y[_two]r-y[_two]l,90);
+y[_three]=y[_four]=y[_one];
+x[_three]=x[_four]=min(x4r-.5dot_diam-1-eps,x[_one]+4u);
+dot([_three],[_four]); % right dot
+penlabels(1,2,3,4, 5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter VIZH - variant IZHITSA";
+cyrcharmoving(VIZH); if is_small_cap: cyrcharmoving(vizh); fi
+
+lhchar "Uppercase Cyrillic letter T_peter -- like flipped SH";
+cyrchar(T_peter,19.75u#+width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(t_peter); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if monospace: 0,0 else:cap_serif_fit#,cap_serif_fit# fi); %uwlett_adj
+% upper_sh;flip
+if odd(fudged.cap_stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib;
+pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+pos5(fudged.cap_stem,0); pos6(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=top y5=h; bot y2=bot y4=bot y6=0;
+lft x5l=lft x6l=hround (.5[x1,x3]-.5cap_stem); % middle stem point
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+numeric inner_jut,arm_thickness;
+arm_thickness=vround(slab+vair_corr);
+if serifs:
+ begingroup
+ save slab; slab:=arm_thickness; % bottom.bar.slab
+ if rt x1r+cap_jut+.5u+1<=lft x5l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+ endgroup;
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5cap_jut);
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ nodish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ fill z.b0--z.b1--z.e1--z.e0--cycle; % upper inter_serif bar
+else:
+ save slab; slab:=arm_thickness; % upper.bar.slab
+ lft x2'= lft x2l; top y2'r=h; pos2'(slab,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(slab,90);
+ filldraw stroke z2'e--z4'e; fi % upper bar
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter ZELO_m - Variant ZELO mirror";
+cyrchar(ZELO_m,10u#,cap_height#,0);
+if is_small_cap: getcharcode(zelo_m); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+%mirror
+forsuffixes $ = 2l,2,2r,3l,3,3r,4l,4,4r,5l,5,5r,6l,6,6r,7l,7,7r:
+ x$:=l+(r-x$); endfor;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke mirror
+if serifs:
+ pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ %mirror
+ forsuffixes $ = 1l,1,1r,8l,8,8r: x$:=l+(r-x$); y$:=y$; endfor;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{right}z2e; % upper arc mirror
+ filldraw stroke z7e{right}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{right}z2;
+ lower_arc=z7{right}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],180); pos9(.3[fine.breadth,cap_hair],180);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1'-x1l=x8r-x8'=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else:
+ pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ forsuffixes $ = 1l,1,1r,8l,8,8r: x$:=l+(r-x$); endfor;
+ filldraw stroke term.e(2,1,left,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,right,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter IZHEI ";
+cyrchar(IZHEI,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(izhei); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+y5=vround(.4h-eps); y6=vround(.6h-eps);
+x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+stem1=max(tiny.breadth,fudged.hair);
+penpos5(stem1,90); penpos6(stem1,90);
+fill stroke z5e--z6e; % diagonal
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter LO";
+cyrchar(LO,13.5u#,cap_height#,0); % DL_width:N_width
+if is_small_cap: getcharcode(lo); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi, %DL_adj
+ 13.5u#); %
+% upper_l;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+numeric light_hair,bot_vair,left_jut;
+light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi);
+left_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit-rt x2r-.65u) fi;
+bot_vair=Vround(.5[vair,light_hair]);
+x3=1/3[w-rt x1r-(1/6left_jut),rt x1r] if not serifs:-.5(cap_stem-u) fi+eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(cap_hair,-180);
+ top y3=h; y6=1/6h-max(0,flare-stem-2vair_corr-.5); z6r=z5r;
+ lft x6r=l+letter_fit+hround(.5u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]); bot y4r=-o;
+ filldraw stroke z4e{right}..
+ controls (min(15/16[x4,x3],max(x4,lft x6r+2flare))+(x3e-x3)+eps,y4e)
+ and (x3e,good.y(min(y6-.5,1/3h)+1/3(y4e-y4))-eps)..z3e; % left tail
+ {{less_tense; bulb(4,5,6)}};
+else:
+ pos3'(slab,90); pos1'(slab,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e;
+ pickup fine.nib; pos3(max(fine.breadth,light_hair),0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=2/3[x3l,x5r]; lft x5=l+letter_fit+hround(.35u-.5);
+ bot y4r=bot y5r; y3=y3'; x4l:=.25[x4,x5];
+ path p;
+ p=stroke z3{down}
+ ..controls (x3,y5+.35h-eps) and (min(7/8[x4,x3],x5+2.5light_hair+.5u),y4)
+ ..{left}z4--z5;
+ z6=point .35 of p;
+ pos6(max(fine.breadth,7/8[bot_vair,light_hair]),angle(direction .35 of p)+90);
+ filldraw stroke z3e{down}...z6e{direction .35 of p}...{left}z4e--z5e; fi % arc
+%%%
+if serifs: x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5cap_jut);
+ dish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut); %lower right serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); %upper right serif
+ nodish_serif(3,0,e,1/3,1.05cap_jut,f,1/3,inner_jut); %upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%
+%O_part
+full_w:=13.5u;
+_zero:=2;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11; _six:=12;
+penpos[_one](vair',90); penpos[_three](vround(vair+1.5vair_corr),-90);
+penpos[_two](cap_curve,180); penpos[_four](cap_curve,0);
+x[_two]r=hround u;
+x[_four]r=full_w-x[_two]r; x[_one]=x[_three]=.5full_w; y[_one]r=h+o; y[_three]r=-o;
+y[_two]=y[_four]=.5h-vair_corr; y[_two]l:=y[_two]l:=.52h;
+%shift
+forsuffixes $ = [_one]l,[_one],[_one]r,[_two]l,[_two],[_two]r,
+ [_three]l,[_three],[_three]r,[_four]l,[_four],[_four]r: x$:=x$+w; endfor;
+penstroke pulled_super_arc.e([_one],[_two])(.5superpull)
+ & pulled_super_arc.e([_two],[_three])(.5superpull)
+ & pulled_super_arc.e([_three],[_four])(.5superpull)
+ & pulled_super_arc.e([_four],[_one])(.5superpull) & cycle; % bowl
+%%%
+x[_five]=x[_zero]; y[_five]=y[_two];
+x[_six]=x[_two]; y[_six]=y[_five];
+pos[_five](cap_bar,90); pos[_six](cap_bar,90);
+filldraw stroke z[_five]e--z[_six]e; % bar
+%%%%%
+penlabels(0,1,2,3,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter MO";
+cyrchar(MO,16u#+width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(mo); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,13.5u#);
+% upper_m;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty:
+ y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else:
+ y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+%%%
+if serifs:
+ serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+%%%
+%O_part
+full_w:=13.5u;
+_zero:=4;
+_one:=9; _two:=10; _three:=11; _four:=12; _five:=13; _six:=14;
+penpos[_one](vair',90); penpos[_three](vround(vair+1.5vair_corr),-90);
+penpos[_two](cap_curve,180); penpos[_four](cap_curve,0);
+x[_two]r=hround u;
+x[_four]r=full_w-x[_two]r; x[_one]=x[_three]=.5full_w; y[_one]r=h+o; y[_three]r=-o;
+y[_two]=y[_four]=.5h-vair_corr; y[_two]l:=y[_two]l:=.52h;
+%shift
+forsuffixes $ = [_one]l,[_one],[_one]r,[_two]l,[_two],[_two]r,
+ [_three]l,[_three],[_three]r,[_four]l,[_four],[_four]r: x$:=x$+w; endfor;
+penstroke pulled_super_arc.e([_one],[_two])(.5superpull)
+ & pulled_super_arc.e([_two],[_three])(.5superpull)
+ & pulled_super_arc.e([_three],[_four])(.5superpull)
+ & pulled_super_arc.e([_four],[_one])(.5superpull) & cycle; % bowl
+%%%
+x[_five]=x[_zero]; y[_five]=y[_two];
+x[_six]=x[_two]; y[_six]=y[_five];
+pos[_five](cap_bar,90); pos[_six](cap_bar,90);
+filldraw stroke z[_five]e--z[_six]e; % bar
+%%%%%
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2upi.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2upi.mf
new file mode 100644
index 00000000000..dd84a7f08c0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2upi.mf
@@ -0,0 +1,765 @@
+%
+% lgt2upi.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic Cyrillic letters 128--255 for T2 encoding
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2
+%
+% X2 T2A T2B T2C
+%
+% g_up "a0 "a0 - - Ghe upturn
+% g_hcrs "a1 "a1 - - Ghe horisontally crossed
+% g_dsc "a2 - "a2 - Ghe with descender
+% g_tl "a3 - "a3 - Ghe tail
+% shha "a4 "a4 "a4 "a4 Shha (same as lower h)
+% zh_dsc "a5 "a5 "a5 - Zhe with descender
+% z_dsc "a6 "a6 - - Ze with descender (cedilla)
+% abh_dze "a7 - "a7 "a7 Abkhasian dze
+% ukr_i "a8 "a8 - - Ukrainian i - latin i with umlaut (goes first for LH font)
+% k_dsc "a9 "a9 "a9 "a9 Ka with descender
+% k_beak "aa "aa - - Ka with reversed beak
+% k_tl "ab - "ab - Ka with tail
+% l_tl "ac - "ac - El with tail
+% n_dsc "ad "ad "ad "ad En with descender
+% ng "ae "ae "ae - Ligature en-ghe
+% n_tl "af - "af "af En with tail
+%
+% s_dsc "b1 "b1 - - Es with descender (cedilla)
+% u_shrt "b2 "b2 "b2 - Short U (goes first for LH fonts)
+% y "b3 "b3 "b3 - Straingt u (as upper Y)
+% y_hcrs "b4 "b4 - - Straingt u horisontally crossed
+% h_dsc "b5 "b5 "b5 "b5 Kha with descender
+% h_tl "b6 - "b6 - Kha with tail
+% ch_ldsc "b7 - "b7 - Che with left descender
+% ch_rdsc "b8 "b8 "b8 "b8 Che with right descender
+% ukr_e "b9 "b9 - - Ukrainian e (goes first for wncoding and LH font)
+% schwa "ba "ba "ba "ba Schwa
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Cyrillic letter g_hcrs - ghe hcrossed"; % italic shape
+cyrchar(g_hcrs,6.25u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); %e
+adjust_fit(if monospace:u#,u# else: 0.5u#,0.5u# fi);
+% ital_g;
+pickup fine.nib; x0l=hround eps; x0'=x0; x5r=good.x(w-eps); x6=x5;
+x2=.5w+2u; x3=.5w-2u; x1=x4=x7=.5[x3l,x2r]; y7=.5[y2,y3];
+h-y0=y5; top y5l=vround .5bar_height; y6=bar_height; y0'=h-bar_height;
+h-y2=y3=1/4x_height; h-y1=y4; bot y4r=-oo;
+pos0(hair,320); pos1(vair,270); pos2(stem,180);
+pos3(stem,180); pos4(vair,270); pos5(hair,320); pos7(stem,135);
+path p.l,p.r; p.l=z0'..z0..z1{right}; p.r=z4{right}..z5..z6;
+filldraw stroke z0e{direction 1 of p.l}
+ ...z1e{right}...{down}z2e...z7e...z3e{down}...z4e{right}
+ ...{direction 1 of p.r}z5e; % main stroke
+%%%
+% hstroke
+bar_stroke(x0l+.05u,w-(x0l+.05u));
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter g_dsc - ghe descender";
+cyrchar(g_dsc,6.25u#,x_height#,desc_depth#);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); %e
+adjust_fit(if monospace:u#,u# else: 0.5u#,0.5u# fi);
+% ital_g;
+pickup fine.nib; x0l=hround eps; x0'=x0; x5r=good.x(w-eps); x6=x5;
+x2=.5w+2u; x3=.5w-2u; x1=x4=x7=.5[x3l,x2r]; y7=.5[y2,y3];
+h-y0=y5; top y5l=vround .5bar_height; y6=bar_height; y0'=h-bar_height;
+h-y2=y3=1/4x_height; h-y1=y4; bot y4r=-oo;
+pos0(hair,320); pos1(vair,270); pos2(stem,180);
+pos3(stem,180); pos4(vair,270); pos5(hair,320); pos7(stem,135);
+path p,p_; p=z0'..z0..z1{right}; p_=z4{right}..z5..z6;
+filldraw stroke z0e{direction 1 of p}
+ ...z1e{right}...{down}z2e...z7e...z3e{down}...z4e{right}
+ ...{direction 1 of p_}z5e; % main stroke
+%%%
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.r;
+ p.r=z3r{down}...z4r{right}...{direction 1 of p_}z5r;
+ ogonek_breadth:=xvair;
+ numeric tt; % the time...
+ tt=if hefty: 1.8 else: 1.6 fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_pos=point tt of p.r+.5(the_pen-fine)*
+ unitvector((direction tt of p.r) rotated 90);
+ easy_ogonek(the_pen,10,11,12); % ogonek
+else:
+ z10=z5; pos10(hair,140); i_serif(10,x);
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter g_tl - ghe tail";
+cyrchar(g_tl,9u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %o
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(serif_fit#,-.25u#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; y2-.5stem=0;
+filldraw circ_stroke z2e--z1e; % stem
+pos3(vair,90); pos4(vair,90);
+top y3r=top y4r=h; x3=x1; rt x4r=hround(w-1.5u);
+filldraw stroke z3e--z4e;
+% hook(1);
+pos3'(vair,90); x3'=x1; y3'=bar_height;
+lft x5l=hround(w-1.5u-.5stem); y5=.45y3'; pos5(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180); pos6(stem,0); x6=x5;
+bot y6=-1/3d; bot y7r=-d-oo; y9-.5flare=-vround.9d;
+x7=w-11/3u; lft x8r=min(x5-4u,lft x8r+x7-x8l+5u-eps);
+filldraw stroke z3'e{right}...z5e{down}---z6e...{left}z7e; % tail
+bulb(7,8,9); % bulb
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter shha (as lower h)";
+cyrchar(shha,9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Cyrillic letter zh_dsc - zhe descender";
+cyrchar(zh_dsc,20u#,x_height#,desc_depth#);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %c
+adjust_fit(-.5u#,0 if monospace:-.4u# fi); %zh_adj&iserif_adj
+% ital_zh;
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal - AS
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,90);
+pos4(curve,180); pos5(vair,270); pos6(hair,320);
+if monospace: x3=x5=.5[lft x4r,rt x2r]-eps; rt x2r=good.x (w+eps);
+else: x3=x5=good.x(w-3.5u); rt x2r=hround max(rt x3,w-u)+eps; fi
+lft x4r=hround max(.5w+.5stem+.5,w-6.5u-.5curve+eps); x6r=good.x(w+eps); x0=x6;
+y2=.5[bar_height,h]; top y3r=h+oo; bulb(3,2,1); % bulb
+bot y5r=-oo; y4=.5[y3,y5]; top y6l=vround .5bar_height; y0=bar_height;
+path p; p=z5{right}..z6..z0;
+filldraw stroke pulled_arc.e(3,4)
+ & pulled_arc.e(4,5)...{direction 1 of p}z6e; % right arc
+pos12(flare,180); pos11(hair,180); pos10(vair,270);
+pos9(curve,360); pos8(vair,450); pos7(hair,500);
+if monospace: lft x11r=good.x (-eps); x10=x8=.5[lft x11r,rt x9r]+eps;
+else: x10=x8=3.5u; lft x11r=hround min(lft x10,u)-eps; fi
+rt x9r=hround min(.5w-.5stem-.5,6.5u+.5curve-eps);
+x7r=good.x (if not monospace:rt x11r-.67u fi-eps); x0'=x7;
+y11=h-.5[bar_height,h]; bot y10r=-oo; bulb(10,11,12); % bulb
+top y8r=h+oo; y9=.5[y10,y8]; bot y7l=vround (h-.65bar_height); y0'=bar_height;
+path p_; p_=z8{left}..z7..z0;
+filldraw stroke pulled_arc.e(10,9)
+ & pulled_arc.e(9,8)...{direction 1 of p_}z7e; % left arc
+y13=bar_height; x13=x4; y14=y13; x14=w-x4; x15=x16=.5w;
+y15+.5stem=h+oo; bot y16=0;
+pos13(vair,90); pos14(vair,90); pos15(fudged.stem,0); pos16(fudged.stem,0);
+filldraw stroke z13e--z14e; filldraw circ_stroke z15e--z16e; % stem & cross
+%%%
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.r;
+ p.r=pulled_arc.r(4,5)...{direction 1 of p}z6r;
+ ogonek_breadth:=xvair;
+ numeric tt; % the time...
+ tt=if hefty: 2.8 else: 2.6 fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_pos=point tt of p.r+.5(the_pen-fine)*
+ unitvector((direction tt of p.r) rotated 90);
+ easy_ogonek(the_pen,17,18,19); % ogonek
+else:
+ z17=z6; pos17(hair,140); i_serif(17,x);
+fi
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, 17,18,19); endchar;
+
+lhchar "Italic Cyrillic letter z_dsc - ze descender (cedilla)";
+cyrchar(z_dsc,8u#,x_height#,desc_depth#);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %e
+adjust_fit(0,0);
+% ital_z;
+pickup fine.nib; pos0(flare,180); pos1(hair,180); pos2(vair,-90);
+pos7(curve,0); pos8(curve,0); pos4(vair,90); pos5(hair,160);
+pos3(vair,90); pos3'(vair,-90); pos9(vair,90); pos9'(vair,-90);
+x2=x4=.5(w-u); lft x1r=min(lft x2,hround(.25u))-eps;
+lft x5r=good.x x1r+.15u+eps; x6=x5;
+y1=.5bar_height; bot y2r=-oo; bulb(2,1,0); % bulb
+rt x7r=w-hround(1.5u-.5curve); rt x8r=w-hround(2u-.5curve);
+top y4r=h+oo; y7=.5[y2,y3]; y5r=y8=.5[y3,y4]; y6=bar_height;
+x3=x2; lft x9=hround min(lft x2-1-eps,rt x0l+1+eps);
+y3=y9=bar_height; z9'=z9; z3'=z3;
+path p; p=z4{left}..(x5,h-.52bar_height)..z6;
+filldraw stroke z9e{right}...pulled_arc.e(3,7) & pulled_arc.e(7,2); % lower arc
+filldraw stroke z9'e{right}...pulled_arc.e(3',8) & pulled_arc.e(8,4)
+ ...{direction 1 of p}z5e; % upper arc
+%%%
+% italic cedilla/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.r;
+ p.r=z1r{down}...pulled_arc.r(2,7);
+ ogonek_breadth:=xvair;
+ numeric tt; % the time...
+ tt=if hefty: 1.2 else: 1.2 fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_move=-oo;
+ ogonek_pos=point tt of p.r+.5(the_pen-fine)*
+ unitvector((direction tt of p.r) rotated 90);
+ easy_ogonek(the_pen,10,11,12); % ogonek
+else:
+ lowercase_cedilla(x2,-oo, 10,11,12,13,14);
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14); endchar;
+
+lhchar "Italic Cyrillic letter abh_dze - Abkhasian dze";
+cyrchar(abh_dze,8u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem,stem[]; stem1=.75stem;
+if hefty:
+ arm_thickness1=stem1; arm_thickness2=stem1;
+ z_stem=fudged.hair-2stem_corr;
+else:
+ arm_thickness1=stem1; arm_thickness2=stem1; z_stem=fudged.hair; fi
+if arm_thickness1<tiny.breadth: arm_thickness1:=tiny.breadth; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u);
+lft x3l=lft x4l=hround .3[.5u, w-.8u];
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=.3[0,h]; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u;
+bot y6=2/3x_height-.5fine;%max(good.y(top y5r-vair-beak/1.4)-eps,y3+1)
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pickup fine.nib; pos11(vair,-90);
+pos12(vair,180); x12r=x3l;
+x8=x13=hround .5[.5u, w-.8u];
+pos7(curve,0); rt x7r=hround(w-.75u);
+lft x11=lft x4;
+pos8(vair,-90); bot y8r=-d-oo; pos13(vair, 90); y13=.1[y3,y5];
+y7=.5[bot y13l,top y8l]; top y11l=top y4l;
+y3=y12;
+filldraw stroke z12e{z2l-z3l}...{right}z13e; %link
+filldraw stroke pulled_arc.e(13,7) & pulled_arc.e(7,8); % bowl
+ numeric bulb_diam[]; bulb_diam2=flare;
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=-.3d;
+ bulb(8,9,10); % lower bulb
+penlabels(1,2,3,4,5,6,7,8,9,10,12,13); endchar;
+
+% Ukrainian i moved up for LH font
+
+lhchar "Italic Cyrillic letter k_dsc - ka descender";
+cyrchar(k_dsc,9u#,x_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,.1u#); %iserif_adj
+% ital_k;dsc
+pickup fine.nib; x2-.5stem=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace:
+ pos2(stem,0); top y2=h;
+else:
+ x0=0; hook_in(0,1,2); fi % opening hook
+pos2'(stem,0); pos1'(stem,0); z2'=z2; x1'=x2'; y1'-.5stem=-oo;
+filldraw circ_stroke z1'e--z2'e; % left stem
+pos3(vair,90); x3=x1'; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(vair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=.4bar_height; %!!!
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+%%%
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.l;
+ p.l=z7l{down}...z8l{right}...{up}z9l;
+ ogonek_breadth:=xvair;
+ ogonek_pos=point .9 of p.l;
+ easy_ogonek(the_pen,10,11,12); % ogonek
+else:
+ i_serif(9,q);
+fi
+penlabels(1,2,3,4,5,6,7,8,9, 10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter k_beak - ka beak";
+cyrchar(k_beak,9u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(max(2u#,u#+stem#) if monospace: -u# fi,0);
+% ital_k;beak
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(2.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}...z8e{right}...{up}z9e; % lower diagonal
+% italic beak
+pickup fine.nib;
+pos10(stem,180); pos11(stem,180); pos12(vair,90); pos13(vair,90);
+lft x10r=l+letter_fit if monospace:-.5stem else:+.25u fi;
+y10-.5stem=2/3x_height-.5fine;
+x13=x2; top y13r=top y12r=x_height; x11=x10; y11=bot y12l-.25flare;
+x12-.25flare=rt x10l; x12r:=lft x10r+(top y12r-y11);
+filldraw circ_stroke z10e{up}--z11e{up}...z12e{right}--z13e; % ital_beak;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter k_tl - ka tail";
+cyrchar(k_tl,9u#,x_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+x2-.5stem=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace: pos2(stem,0); top y2=h;
+else: x0=0; hook_in(0,1,2); fi % opening hook
+z2'=z2; pos2'(stem,0); x11=x2'; y11-.5stem=-oo; pos11(stem,0);
+filldraw circ_stroke z11e--z2'e; % left stem
+pos3(vair,90); x3=x11; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); lft x7l=hround(w-1.5u-.5stem); y7=1/2y3;
+% hook;k
+pos9(vair,-90); pos10(hair,-180); pos12(flare,-180); pos8(stem,0); x8=x7;
+bot y8=-1/3d; bot y9r=-d-oo; y12-.5flare=-vround.9d;
+x9=w-11/3u; lft x10r=min(x7-4u,lft x10r+x9-x10l+5u-eps);
+filldraw stroke z3e{right}...{down}z7e--z8e{down}...{left}z9e;
+bulb(9,10,12); % bulb
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter l_tl - el tail";
+cyrchar(l_tl,8u#,x_height#,desc_depth#); %-u
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(.5u#,0);
+% ital_l;tl
+pickup fine.nib;
+pos1(vair,-90); pos2(stem,180); pos3(hair,0); pos7(stem,0); %!!!
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+top y1l=h+oo; x1=.5[x3,x2];
+x3=3u; y3=.35h;
+y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r;
+bot y4r=-oo; x4=max(.4[lft x6r,rt x3r],lft x6r+.5flare-eps);
+y7=.8h; lft x7l=hround(w-1.5u-.5stem); z7=z2; %!!!
+bulb(4,5,6); % bulb
+filldraw stroke pulled_arc.e(4,3)
+ & super_arc.e(3,1) & super_arc.e(1,2); % left stem
+% hook;
+pos9(vair,-90); pos10(hair,-180); pos11(flare,-180); pos8(stem,0); x8=x7;
+bot y8=-1/3d; bot y9r=-d-oo; y11-.5flare=-vround.9d;
+x9=w-11/3u; lft x10r=min(x7-4u,lft x10r+x9-x10l+5u-eps);
+filldraw stroke z7e--z8e{down}...{left}z9e;
+bulb(9,10,11); % bulb
+penlabels(1,2,3,4,5,6,7,8,9,11); endchar;
+
+lhchar "Italic Cyrillic letter n_dsc - en descender";
+cyrchar(n_dsc,10u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,.1u#); %iserif_adj
+% ital_n;dsc
+pickup fine.nib; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace:
+ pos2(stem,0); top y2=h;
+else:
+ x0=0; hook_in(0,1,2); fi % opening hook
+y3-.5stem=-oo;
+filldraw circ_stroke z3e--z2e;
+x10=x3l; y10=y11=bar_height; pos10(vair,90); pos11(vair,90);
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); y6+.5stem=h;
+pos7(stem,0); pos8(vair,90); pos9(vair,180); x6=x7;
+x9=w; y9=y7=.4bar_height; x8=.5[x7,x9]; bot y8l=-oo;
+filldraw circ_stroke z7e{-.5u,-x_height}...z8e{right}...{up}z9e; % closing hook
+filldraw circ_stroke z6e--z7e;
+x11=x6l;
+filldraw stroke z10e--z11e;
+%%%
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.l;
+ p.l=z7l{-.5u,-x_height}...z8l{right}...{up}z9l;
+ ogonek_breadth:=xvair;
+ ogonek_pos=point .9 of p.l;
+ easy_ogonek(the_pen,12,13,14); % ogonek
+else:
+ i_serif(9,x);
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11, 12,13,14); endchar;
+
+lhchar "Italic Cyrillic letter n_tl - en tail";
+cyrchar(n_tl,9u#,x_height#,desc_depth#); %-u
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %o
+adjust_fit(0,0);
+pickup fine.nib; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace:
+ pos2(stem,0); top y2=h;
+else:
+ x0=0; hook_in(0,1,2); fi % opening hook
+y3-.5stem=-oo;
+filldraw circ_stroke z3e--z2e; % left stem
+%
+pos4(stem,0); rt x4r=hround(w-1.5u+.5stem); y4+.5stem=h; x5=x4;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180); pos5(stem,0);
+bot y5=-1/3d; bot y6r=-d-oo; y8-.5flare=-vround.9d;
+x6=w-11/3u; lft x7r=min(x4-4u,lft x7r+x6-x7l+5u-eps);
+filldraw circ_stroke z4e--z5e{down}...{left}z6e; % right stem and hook
+bulb(6,7,8); % bulb
+x9=x3r; y9=y10=bar_height; pos9(vair,90); pos10(vair,90);
+x10=x4l;
+filldraw stroke z9e--z10e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter s_dsc - es descender (cedilla)";
+cyrchar(s_dsc,8u#,x_height#,desc_depth#);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(if monospace:0 else:-.35u#fi,0);
+% ital_s;
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+% italic cedilla/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.r;
+ p.r=pulled_arc.r(3,4)...{direction 1 of p}z5r;
+ ogonek_breadth:=xvair;
+ numeric tt; % the time...
+ tt=if hefty: 2.8 else: 2.6 fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_pos=point tt of p.r+.5(the_pen-fine)*
+ unitvector((direction tt of p.r) rotated 90)-(ogonek_breadth-the_pen,0);
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ lowercase_cedilla(x4,-oo, 7,8,9,10,11);
+fi
+penlabels(0,1,2,3,4,5,6, 7,8,9,10,11); endchar;
+
+% Short U moved up for LH fonts
+
+lhchar "Italic Cyrillic letter y - straight u (as upper Y)";
+cyrchar(y,9.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(.25u#,max(u#,.5u#+.5flare#)); %izhy_adj
+% ital_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha; left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem); outer_jut=.75jut;
+x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=0; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0);
+penpos4(alpha*right_stem,0); penpos4'(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0);
+x5=x6; y6=-d; z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos7(vair,90); penpos8(hair,0); penpos9(flare,0);
+x7=.5[x4',rt x8r]; y7r=h+oo;
+y4'=min(.9x_height,y7l-vair); z4'=whatever[z3,z4];
+rt x8r=hround(r-.5u-.5);
+y8=max(vround(y7r-.5hair)-.5flare-1,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+cyrbulb(7,8,9); % bulb
+y1'=3/4x_height; z1'=whatever[z1,z2]; penpos1'(alpha*left_stem,0);
+x10=l+letter_fit; x10:=hround(x10-.5hair)+.5hair; y10=2/3x_height;
+penpos11(vair,90); top y11r=x_height+oo; x11=min(x1l-.5,x10+u);
+if y0>y2+notch_cut:
+ y0:=y2+notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4'l...{right}z7r--z7l{left}
+ ...{z5r-z4'r}z4'r--z5r--z6r--z6l--z5l--
+ z1'l{z1-z2}...{left}z11l--z11r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--z4'l...{right}z7r--z7l{left}
+ ...z4'r--z5r--z6r--z6l--z5l--
+ z1'l{z1-z2}...{left}z11l--z11r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ --cycle; fi % diagonals and stem
+pickup fine.nib;
+pos10(hair,180); pos11'(vair,90); z11'=z11;
+filldraw stroke z10e{up}...z11'e{right}; % hook
+pickup tiny.nib; prime_points_inside(6,5);
+dish_serif(6',5,e,1/3,jut,f,1/3,jut); % lower serif
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Italic Cyrillic letter y_hcrs - straight u hcrossed";
+cyrchar(y_hcrs,9.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(.25u#,max(u#,.5u#+.5flare#)); %izhy_adj
+% ital_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha; left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem); outer_jut=.75jut;
+x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=0; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0);
+penpos4(alpha*right_stem,0); penpos4'(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0);
+x5=x6; y6=-d; z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos7(vair,90); penpos8(hair,0); penpos9(flare,0);
+x7=.5[x4',rt x8r]; y7r=h+oo;
+y4'=min(.9x_height,y7l-vair); z4'=whatever[z3,z4];
+rt x8r=hround(r-.5u-.5);
+y8=max(vround(y7r-.5hair)-.5flare-1,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+cyrbulb(7,8,9); % bulb
+y1'=3/4x_height; z1'=whatever[z1,z2]; penpos1'(alpha*left_stem,0);
+x10=l+letter_fit; x10:=hround(x10-.5hair)+.5hair; y10=2/3x_height;
+penpos11(vair,90); top y11r=x_height+oo; x11=min(x1l-.5,x10+u);
+if y0>y2+notch_cut:
+ y0:=y2+notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4'l...{right}z7r--z7l{left}
+ ...{z5r-z4'r}z4'r--z5r--z6r--z6l--z5l--
+ z1'l{z1-z2}...{left}z11l--z11r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--z4'l...{right}z7r--z7l{left}
+ ...z4'r--z5r--z6r--z6l--z5l--
+ z1'l{z1-z2}...{left}z11l--z11r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ --cycle; fi % diagonals and stem
+pickup fine.nib;
+pos10(hair,180); pos11'(vair,90); z11'=z11;
+filldraw stroke z10e{up}...z11'e{right}; % hook
+pickup tiny.nib; prime_points_inside(6,5);
+dish_serif(6',5,e,1/3,jut,f,1/3,jut); % lower serif
+%%%
+% cross
+pickup fine.nib;
+numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+x13-x14=.5w; .5[x13,x14]=x5; y13=y14=y5-.5middle_weight; % =.375h;
+pos13(middle_weight,90); pos14(middle_weight,90);
+filldraw stroke z13e--z14e;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter h_dsc - kha descender";
+cyrchar(h_dsc,if monospace:6.5u# else:7.5u# fi+max(1.5u#,flare#), % !rusw
+ x_height#,desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#);
+adjust_fit(0,.1u#); %iserif_adj
+pickup fine.nib;
+% ital_h;
+pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90);
+pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.r;
+ p.r=pulled_arc.r(3,4)...{up}z5r;
+ ogonek_breadth:=xvair;
+ numeric tt; % the time...
+ tt=if hefty: 2.4 else: 2.3 fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_pos=point tt of p.r+.5(the_pen-fine)*
+ unitvector((direction tt of p.r) rotated 90);
+ easy_ogonek(the_pen,10,11,12); % ogonek
+else:
+ z20=z5; pos20(hair,180); i_serif(20,x);
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19, 10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter h_tl - kha tail";
+cyrchar(h_tl,if monospace:6.5u# else:7.5u# fi+max(1.5u#,flare#), % !rusw
+ x_height#,desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#); %x
+adjust_fit(if monospace: 0,.1u# else:0.25u#,0.15u#fi); %&iserif_adj
+% ital_h;
+pickup fine.nib; pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90); pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+% dzhe middle descender
+path p.r; numeric t; t=if hefty: 2.4 else: 2.3 fi;
+p.r=pulled_arc.r(3,4)...{up}z5r;
+_zero:=10; _one:=11; _two:=12; _three:=13;
+penpos[_zero](xvair,0); z[_zero]r=point t of p.r;
+penpos[_one](xvair,0); x[_one]=x[_zero]+2/3u; y[_one]=-1/3d;
+penpos[_two](2/3[bar,fudged.stem-2stem_corr],-90);
+x[_two]=.5[x[_one],x[_three]]; y[_two]=-.8d;
+penpos[_three](xvair,-180);
+x[_three]=x[_one]-5u; y[_three]=y[_two]+ypart the_tip_pos;
+pickup pencircle scaled 1;
+fill circ_stroke z[_three]e{down}
+ ...{right}z[_two]e...z[_one]e..{dir (360-the_pre_angle)}z[_zero]e; % middle descender
+penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19, 10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter ch_ldsc - che left descender";
+cyrchar(ch_ldsc,9.5u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0);
+% ital_ch;
+pickup fine.nib; interim superness:=more_super;
+x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+bot y4r=.75bar_height; y5=.75h; y3=min(y2-eps,.7[y4,y5]); y6+.5stem=h;
+filldraw stroke z2'e...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+%%%
+% dzhe middle descender
+path p.r; numeric t; t=if hefty: 1.3 else: 1.25 fi;
+p.r=z7l{-.5u,-x_height}...z8l{right}...{up}z9l;
+_zero:=10; _one:=11; _two:=12; _three:=13;
+penpos[_zero](xvair,0); z[_zero]r=point t of p.r;
+penpos[_one](xvair,0); x[_one]=x[_zero]+2/3u; y[_one]=-1/3d;
+penpos[_two](2/3[bar,fudged.stem-2stem_corr],-90);
+x[_two]=.5[x[_one],x[_three]]; y[_two]=-.8d;
+penpos[_three](xvair,-180);
+x[_three]=x[_one]-5u; y[_three]=y[_two]+ypart the_tip_pos;
+pickup pencircle scaled 1;
+fill circ_stroke z[_three]e{down}
+ ...{right}z[_two]e...z[_one]e..{dir (360-the_pre_angle)}z[_zero]e; % middle descender
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter ch_rdsc - che right descender";
+cyrchar(ch_rdsc,9.5u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,.1u#); %iserif_adj
+% ital_ch;dsc
+pickup fine.nib; interim superness:=more_super;
+x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); x5=x6=x7;
+pos7(stem,0); pos8(vair,90); pos9(vair,180);
+x9=w; y9=y7=.4bar_height; x8=.5[x7,x9]; bot y8l=-oo;
+filldraw circ_stroke z7e{-.5u,-x_height}...z8e{right}...{up}z9e; % closing hook
+bot y4r=.75bar_height; y5=.75h; y3=min(y2-eps,.7[y4,y5]); y6+.5stem=h;
+filldraw stroke z2'e...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+%%%
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ path p.l;
+ p.l=z7l{-.5u,-x_height}...z8l{right}...{up}z9l;
+ ogonek_breadth:=xvair;
+ ogonek_pos=point .9 of p.l;
+ easy_ogonek(the_pen,10,11,12); % ogonek
+else:
+ i_serif(9,x);
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter schwa";
+cyrchar(schwa,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,if monospace:0 else:-.35u#fi);
+% ital_schwa;
+pickup fine.nib; %numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,90); pos1(heavy_hair,180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x0=lft x3l; lft x1r=hround(1u-.5heavy_hair); x2+.5u=x4=.5(w-u);
+rt x3r=hround(w-1.5u+.5curve);
+lft x5r=good.x (lft x1r+eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; bot y2r=-oo; top y4r=h+oo;
+bot y5l=vround 1/3[bar_height,x_height]; path p; p=z4{left}..z5..z6;%%y5l=2/3x_height;
+filldraw stroke z0e{left}...z1e{down}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+penlabels(1,2,3,4,5); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2upl.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2upl.mf
new file mode 100644
index 00000000000..39e06c0fed2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2upl.mf
@@ -0,0 +1,1226 @@
+%
+% lgt2upl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Cyrillic letters 128--255 for T2 encoding
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2
+%
+% X2 T2A T2B T2C
+%
+% g_hcrs "a1 "a1 - - Ghe horisontally crossed
+% g_dsc "a2 - "a2 - Ghe with descender
+% g_tl "a3 - "a3 - Ghe tail
+% shha "a4 "a4 "a4 "a4 Shha (same as lower h)
+% zh_dsc "a5 "a5 "a5 - Zhe with descender
+% z_dsc "a6 "a6 - - Ze with descender (cedilla)
+% abh_dze "a7 - "a7 "a7 Abkhasian dze
+% k_dsc "a9 "a9 "a9 "a9 Ka with descender
+% k_beak "aa "aa - - Ka with reversed beak
+% k_tl "ab - "ab - Ka with tail
+% l_tl "ac - "ac - El with tail
+% n_dsc "ad "ad "ad "ad En with descender
+% n_tl "af - "af "af En with tail
+%
+% s_dsc "b1 "b1 - - Es with descender (cedilla)
+% y "b3 "b3 "b3 - Straingt u (as upper Y)
+% y_hcrs "b4 "b4 - - Straingt u horisontally crossed
+% h_dsc "b5 "b5 "b5 "b5 Kha with descender
+% h_tl "b6 - "b6 - Kha with tail
+% ch_ldsc "b7 - "b7 - Che with left descender
+% ch_rdsc "b8 "b8 "b8 "b8 Che with right descender
+% schwa "ba "ba "ba "ba Schwa
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Cyrillic letter g_hcrs - ghe hcrossed";
+cyrchar(g_hcrs,8u#-.5width_adj#,x_height#,0);
+italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u#
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ 0);
+% lower_g;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(Vround(vair-vair_corr),90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); fi % lower serif
+%%%%%
+% hstroke
+bar_stroke(hround 1/3u-serif_fit,tiny.rt x1r+1.8u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter g_dsc - ghe descender";
+cyrchar(g_dsc,8u#-.5width_adj#,x_height#,
+ if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u#
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ 0);
+begingroup
+% lower_g;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(Vround(vair-vair_corr),90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak
+%%%
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper bracketing
+ if is_ogonek:
+ slab:=vair; % lower.slab %!!!
+ dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); fi %!!! % lower serif
+fi
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,5,6,7); % ogonek
+else:
+ slab:=vair; % lower.slab
+ numeric right_jut;
+ right_jut=if serifs: 1.414jut else: .5stem+.5u fi;
+ r_serif(2,1,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(0,1,2,3,4, 5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter g_tl - ghe tail";
+cyrchar(g_tl,if monospace:8u#-.5width_adj# else:10u# fi,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ 0);
+full_w:=w; w:=8u-.5width_adj;
+% lower_g;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(Vround(vair-vair_corr),90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u);
+y4=good.y(y3l-if monospace: beak/1.4 else:.5beak fi)-eps; %!!!
+arm(3,4,e,beak_darkness,.35beak_jut); %!!! upper arm and beak
+%%%
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); fi % upper serif
+ %slab:=vair; % lower.slab
+ %dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); fi % lower serif
+%%%%%
+pickup tiny.nib;
+w:=full_w if monospace:+u fi;
+% tail_part(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9;
+_six:=10; _seven:=11; _eight:=12; _nine:=13;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+set_bar_axis; y[_one]r=y[_two]r=y2.bh; y[_one]l=y[_two]l=y1.bh;
+penpos[_three](max(currentbreadth+eps,curve if hefty:-3stem_corr fi),0);
+y[_three]=.5[y[_one]r,-d];
+x[_two]l=x[_two]r=w-4.75u; x[_one]l=x[_one]r=x[_zero];
+x[_three]r=hround(w-u); x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_five]=z[_three]; pos[_five](curve if hefty:-3stem_corr fi,0);
+ pos[_six](vair,-90); bot y[_six]r=-d-oo; y[_seven]-.5flare=-.85d;
+ pos[_seven](hair,-180); pos[_eight](bulb_diam,-180);
+ rt x[_eight]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);
+ z[_seven]r=z[_eight]r;
+ x[_six]=max(rt x[_eight]l,.6[x[_five],x[_seven]r]);
+ (x,y[_six]r)=whatever[z[_six]l,z[_five]l];
+ x[_six]r:=max(x,.5[x[_seven]r,x[_six]]);
+ filldraw stroke super_arc.e([_five],[_six]);
+ bulb([_six],[_seven],[_eight]); % bulb
+else:
+ pickup fine.nib; z[_five]=z[_three];
+ pos[_five](max(fine.breadth,curve if hefty:-3stem_corr fi),0);
+ pos[_nine](vair',-90); pos[_six](.6[vair',flare],-105);
+ rt x[_six]r=x[_three]-4.5u; bot y[_six]r=-d;
+ bot y[_nine]r=-d-oo; x[_nine]=.35[x[_six]r,x[_three]r];
+ filldraw stroke super_arc.e([_five],[_nine])
+ & term.e([_nine],[_six],left,.75,4); fi
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x2r+jut+.5u+1<=x[_three]r: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=x[_three]r; fi
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter shha (as lower h)";
+cyrchar(shha,10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs:
+ sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter zh_dsc - zhe descender (`roman')";
+cyrchar(zh_dsc,if serifs:10u# else:9.5u# fi % zhk_width: n_width;keng_width
+ ,x_height#,if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-.2u#;
+adjust_fit(w#-5u#+ %zhr_adj
+ if monospace: 0 else: serif_fit# fi, %wlett_adj
+ if monospace: 0 else: serif_fit# fi); %wlett_adj
+begingroup
+% lowerr_zh;
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+if odd((r-l)-stem0): change_width; fi % symmetric & all three equal
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr);% lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi% lower stem serif
+% k_rbowl;zh%monospace:+.25u
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=hround(r-letter_fit-.7u-right_jut if monospace:+.25u fi)+eps; %!!!
+rt x6r=hround(r-letter_fit-.3u-right_jut if monospace:+.25u fi)+eps; %!!!
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ if is_ogonek:
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+fi
+%%%
+% mirror
+forsuffixes $ = 3'r,3,3'l,4r,4,4l,5l,5,5r,6'l,6,6'r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+fill z.m5l--diag_end(.m5l,.m6'l,.5,1,.m6'r,.m5r)--z.m5r--cycle; % lower diagonal
+%%%
+if serifs:
+ penpos7(alpha1*(stem1-tiny),0); penpos8(whatever,-90);
+ penpos10(alpha2*(stem2-tiny),0);
+ z7=z.m3; z8=z.m4; z9l=z.m5r; z9=z.m5; z9r=z.m5l; z10=z.m6;
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(7,8,i,1/2,right_jut,j,2/3,up_inner_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(10,9,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x6 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,11,12,13); % ogonek
+else:
+ slab:=vair; % lower.slab
+ r_serif(6,1,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(1,2,3,4,5,6,7,8,9,10, 11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter z_dsc - ze descender (cedilla)";
+cyrchar(z_dsc,8u#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.65u#,+.1u#); %p+.2u#
+adjust_fit(if monospace: .5u#,.5u# else:0,0 fi);
+% lower_z;
+set_bar_axis; y4l=y5r=y6r=y2.bh; y6l=y5l=y4r=y1.bh; y6=y0.bh;
+pickup fine.nib; numeric right_curve;
+if serifs: right_curve=curve-stem_corr; else: right_curve=curve-3stem_corr; fi
+penpos2(vair,90); penpos3(max(vair+stem_corr,right_curve-stem_corr),0);
+penpos7(max(vair'+stem_corr,right_curve),0); penpos8(vair',-90);
+y2r=vround(h+1.5oo); x2=x6l=x6r=x8=.5(w-u); x7r=hround(w-.6u);
+x3r=min(rt x7r-1,hround(w-.8u)); y3=.5[y4l,y2l]+eps; y8r=-oo;
+y7=.5[y6l,y8l]; x4l=x4r=1/3[x5l,x3l];
+if serifs:
+ pos1(hair,180); pos9(hair,-180);
+ lft x1r=lft x9r+.1u=hround.5u;
+ y1=min(y2.bh+flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ y9=max(good.y(.5bar_height-.9),y8l+vair');
+else:
+ pos1(4/7[vair,flare],115); pos9(.6[vair',flare],-115);
+ lft x1r=good.x .6u; lft x9r=good.x .5u;
+ top y1r=vround .82[bar_height,y2r];
+ y9r=good.y(y9r+1/3bar_height-y9); y9l:=good.y y9l; x9l:=good.x x9l;
+fi
+lft x5l=lft x5r=hround (2.5u-.5)-eps;
+x4r:=max(x5r,x4r-u); x6r:=max(x5r,x6r-u);
+fill stroke
+ {{interim superness:=if serifs: more_super else: hein_super fi;
+ super_arc.e(2,3)}} & super_arc.e(3,4)..(x5e,y4e); % upper bowl
+{{interim superness:=more_super;
+ fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)}}; % lower bowl
+fill
+ z5r{left}
+ if bot y5r>top y5l:..(lft x5r,bot y5r)---(lft x5l,top y5l)..
+ else: ... fi
+ {right}z5l--cycle; % bar point
+pos2'(vair,90); z2'=z2; pos8'(vair',-90); z8'=z8;
+if serifs:
+ filldraw stroke z1e{x2-x1,7(y2-y1)}....{right}z2'e; % upper arc
+ {{interim superness:=more_super;
+ filldraw stroke super_arc.e(8',9)}}; % lower arc
+else:
+ filldraw stroke term.e(2',1,left,.8,4); % upper terminal
+ forsuffixes e=l,r: path p.e; p.e=z8'e{left}..tension .9 and 1..z9e;
+ if angle direction 1 of p.e<105:
+ p.e:=z8'e{left}..tension atleast.9 and 1..{dir 105}z9e; fi endfor
+ filldraw stroke p.e; % lower arc
+fi
+if serifs:
+ path upper_arc; upper_arc=z1{x2-x1,7(y2-y1)}....{right}z2;
+ pos10(.3[fine.breadth,hair],0); x10l=x1r; top y10=vround(h+1.5oo);
+ x1'-x1l=1.5curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z10r--z1'));
+ filldraw z1r--z10l--z10r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+%%%%%
+% lowercase cedilla/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ ogonek_pos=(x8r,0);
+ easy_ogonek(the_pen,11,12,13); % ogonek
+else:
+ lowercase_cedilla(x8,0, 11,12,13,14,15);
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15); endchar;
+
+lhchar "Lowercase Cyrillic letter abh_dze - Abkhazian dze";
+cyrchar(abh_dze,8u#,x_height#,desc_depth#); %+1.75dot_size#
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+pickup if serifs: tiny.nib else: fine.nib fi;
+numeric arm_thickness,z_stem[];
+z_stem1=max(currentbreadth,hround(if hefty: vair else:fudged.hair fi));
+arm_thickness=if hefty: .5 else:2/3 fi[vair,stem];
+if z_stem1<currentbreadth+eps: z_stem1:=currentbreadth+eps; fi
+rt x1r=rt x2r=hround(w-.8u)+eps;
+lft x3l=lft x4l=good.x(.28[.5u,w-.8u])-eps;
+top y1=h; bot y2=min(bot y1,good.y(h-arm_thickness));
+bot y4=good.y (.28h)-eps;
+y3=max(y4,good.y(.28h+.6[thin_join,vair]-.5currentbreadth)-eps);
+numeric alpha; alpha=diag_ratio(1,.5(z_stem1-currentbreadth),y2-y4,x2r-x3l);
+z_stem2=alpha*(z_stem1-currentbreadth);
+if z_stem2<eps: z_stem2:=eps; fi
+penpos1(z_stem2,0); penpos2(z_stem2,0);
+penpos3(z_stem2,0); penpos4(z_stem2,0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pos7(curve,0); pos8(vair',-90); pos12(rt x4r-lft x4l,180); pos13(vair,90);
+x12r=x4l; y12=y4; rt x7r=hround(w-.75u); y7=.5[bot y13l,top y8l];
+bot y8r=-d-oo; x8=hround.5[.5u,w-.8u]; x13=max(x8,rt x12l+eps);
+y13=.1[y4,h]; y13l:=min(y13l,.5[y4,y13l]);
+filldraw stroke z12e{z2l-z3l}...{right}z13e; %link
+filldraw stroke pulled_arc.e(13,7) & pulled_arc.e(7,8); % bowl
+if serifs:
+ numeric bulb_diam[]; bulb_diam2=hround 7/8[hair,flare];
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=-.3d;
+ {{less_tense; bulb(8,9,10)}}; % lower bulb
+else:
+ pos9(.6[vair',flare],angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround -.3d;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+pickup crisp.nib;
+pos5(max(h-bot y2l-.5crisp-vair_corr,crisp.breadth),90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u;
+y6=max(good.y(if serifs: h-Vround(vair-vair_corr)-beak/1.4 else: y5l-vair_corr fi)-eps,y3+1);
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+penlabels(1,2,3,4,5,6,7,8,9,10,12,13); endchar;
+
+% Ukrainian i moved up for LH font
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter k_dsc - ka descender (`roman')";
+cyrchar(k_dsc,if serifs:10u# else:9.5u# fi % zhk_width: n_width;keng_width
+ ,x_height#,if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#);
+begingroup
+% lowerr_k;
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi% lower stem serif
+% k_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+%%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ if is_ogonek:
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+fi
+%%%
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x6 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ slab:=vair; % lower.slab
+ r_serif(6,1,x,1/3,jut,y,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(1,2,3,4,5,6); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter k_beak - ka beak (`roman')";
+cyrchar(k_beak,if serifs:10u# else:9.5u# fi % zhk_width: n_width;keng_width
+ ,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(2u#-.5width_adj#, % beak_adj
+ serif_fit#);
+% lowerr_k;beak
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr);% lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); %!!! upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower stem serif
+% k_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+%%%%%
+% lower left beak
+pickup crisp.nib; pos7(vair,90); pos8(hair,180);
+top y7r=h; x7=x1; lft x8r=l+letter_fit+hround.45u; y8=good.y(y7l-beak/1.4)-eps;
+arm(7,8,q,beak_darkness,-.4beak_jut);
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter k_tl - ka tail (`roman')";
+cyrchar(k_tl,10u#,x_height#,desc_depth#); % n_width
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+numeric right_jut,stem[],alpha[],tailstem,bulb_diam;
+bulb_diam=hround 7/8[hair,flare];
+right_jut=if serifs:.6jut else:.4tiny fi;
+% tail_part(2);
+_zero:=2;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+_six:=12; _seven:=13; _eight:=14; _nine:=15;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+set_bar_axis; y[_one]r=y[_two]r=y2.bh; y[_one]l=y[_two]l=y1.bh;
+penpos[_three](max(currentbreadth+eps,curve if hefty:-3stem_corr fi),0);
+y[_three]=.5[y[_one]r,-d];
+x[_two]l=x[_two]r=w-4.75u; x[_one]l=x[_one]r=x[_zero];
+x[_three]r=hround(w-u); x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_five]=z[_three]; pos[_five](curve if hefty:-3stem_corr fi,0);
+ pos[_six](vair,-90); bot y[_six]r=-d-oo; y[_seven]-.5flare=-.85d;
+ pos[_seven](hair,-180); pos[_eight](bulb_diam,-180);
+ rt x[_eight]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);
+ z[_seven]r=z[_eight]r;
+ x[_six]=max(rt x[_eight]l,.6[x[_five],x[_seven]r]);
+ (x,y[_six]r)=whatever[z[_six]l,z[_five]l];
+ x[_six]r:=max(x,.5[x[_seven]r,x[_six]]);
+ filldraw stroke super_arc.e([_five],[_six]);
+ bulb([_six],[_seven],[_eight]); % bulb
+else:
+ pickup fine.nib; z[_five]=z[_three];
+ pos[_five](max(fine.breadth,curve if hefty:-3stem_corr fi),0);
+ pos[_nine](vair',-90); pos[_six](.6[vair',flare],-105);
+ rt x[_six]r=x[_three]-4.5u; bot y[_six]r=-d;
+ bot y[_nine]r=-d-oo; x[_nine]=.35[x[_six]r,x[_three]r];
+ filldraw stroke super_arc.e([_five],[_nine])
+ & term.e([_nine],[_six],left,.75,4); fi
+%%%
+% diagonal;
+pickup tiny.nib; numeric right_jut,stem[],alpha[];
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+top y3=h; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+x4=x1; y4=.7bar_height;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+forsuffixes $=l,r: y3'$=h; y4'$=y1.bh;
+ z4$=z3'$+whatever*(z3-z4); z4'$=z3'$+whatever*(z3-z4); endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+fill z4'r--diag_end(4r,3'r,1,.5,3'l,4l)--z4'l--cycle; % upper diagonal
+%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ if rt x2r+jut+.5u+1<=x[_three]r: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=x[_three]r; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); fi % lower stem serif
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+lhchar "Lowercase Cyrillic letter l_tl - el tail";
+cyrchar(l_tl,10u# % if not serifs:+.5width_adj# fi % dl_width;n_width
+ ,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit# if not serifs:+.5(stem#-u#) fi, %dl_adj
+ serif_fit#); %
+% lower_l;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,bot_vair,bulb_diam,left_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+bot_vair=Vround(.5[vair,light_hair]);
+bulb_diam=hround 7/8[hair,flare];
+left_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (w+serif_fit-rt x2r-.5u) fi;
+x3=1/3[w-rt x1r-(1/8left_jut),rt x1r] if not serifs: -.5(stem-u) fi +eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(hair,-180);
+ top y3=h; y6-.5bulb_diam=.12desc_depth-eps; z6r=z5r;
+ lft x6r=l+letter_fit+hround(.35u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]);
+ bot y4r=-1.5oo-eps; {{less_tense; bulb(4,5,6)}}; %bulb
+ filldraw stroke z4e{right}
+ ..controls (min(15/16[x4,x3],max(x4,lft x6r+1.75bulb_diam))+(x3e-x3),y4e)
+ and (x3e,max(y4l,min(y6-.5,1/3h+eps))+1/3(y4e-y4))..{up}z3e; % left tail
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e; % upper bar
+ pickup fine.nib; pos3(light_hair,0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=.67[x3l,x5];
+ lft x5=l+letter_fit+hround(.35u-.5); bot y4r=bot y5r; y3=y3';
+ filldraw stroke z3e{down}..controls (x3e,y5e+.35h)
+ and (min(7/8[x4e,x3e],x4e+2light_hair)+eps,y4e-eps)..{left}z4e--z5e; fi % left stem
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5jut);
+ %dish_serif(2,1,a,1/3,jut,b,1/3,jut); %!!! %lower right serif
+ save slab; slab:=Vround(vair-vair_corr); %lower.slab
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,jut); % upper right serif
+ nodish_serif(3,0,e,1/3,1.05jut,f,1/3,inner_jut); % upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% l_tail(2);
+_zero:=2;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+vair'+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=max(x[_zero]l-bulb_diam,
+ floor x[_zero]-2.5u if monospace: / expansion_factor fi);
+ (x,y[_two]r)=whatever[z[_two]l,z[_one]l];
+ x[_two]r:=max(x,.5[x[_three]r,x[_two]]);
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](vair',-90); pos[_three](.6[vair',flare],-105);
+ rt x[_three]r=x[_zero]-3u; bot y[_three]r=-d;
+ bot y[_two]r=-d-oo; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(1,2,3,4,5,6, 7,8,9,10,11);endchar;
+
+lhchar "Lowercase Cyrillic letter n_dsc - en descender";
+cyrchar(n_dsc,10u# if not serifs:+.5width_adj# fi,x_height#, % n_width
+ if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,
+ serif_fit# if not serifs:+.5(stem#-u#) fi) %dl_adj
+begingroup
+% lower_n;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+bar_stroke(x1,x3); % bar
+%%%
+numeric inner_jut,right_jut; % for cyr_serif
+if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ if is_ogonek:
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi %!!! % lower right serif
+fi
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ slab:=vair; % lower.slab
+ right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi;
+ r_serif(4,3,o,1/3,inner_jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(1,2,3,4,5,6, 7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter n_tl - en tail";
+cyrchar(n_tl,10u# if not serifs:+.5width_adj# fi,x_height#,desc_depth#); % n_width
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#,serif_fit#);
+% lower_n;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+bar_stroke(x1,x3); % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); fi % lower left serif
+ %dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi %!!! % lower right serif
+%%%%%
+% l_tail(4);
+_zero:=4;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+vair'+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=max(x[_zero]l-bulb_diam,
+ floor x[_zero]-2.5u if monospace: / expansion_factor fi);
+ (x,y[_two]r)=whatever[z[_two]l,z[_one]l];
+ x[_two]r:=max(x,.5[x[_three]r,x[_two]]);
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](vair',-90); pos[_three](.6[vair',flare],-105);
+ rt x[_three]r=x[_zero]-3u; bot y[_three]r=-d;
+ bot y[_two]r=-d-oo; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(1,2,3,4,5,6, 7,8,9,10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter s_dsc - es descender (cedilla)";
+cyrchar(s_dsc,8u#,x_height#,desc_depth#); % eng
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_s;
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs:
+ pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else:
+ pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%%%
+% lowercase cedilla/ogonek
+if is_ogonek:
+ path p_.r;
+ p_.r=if serifs: pulled_super_arc.r(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5r
+ else: p.r fi;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if serifs: if hefty: 2.6 else: 2.5 fi else: % sansserif
+ if is_bold: .6 else: .8 fi\\ fi;
+ join_angle=angle((direction tt of p_.r) rotated 180);
+ ogonek_pos=(point tt of p_.r)+.5(the_pen-if serifs: tiny else: fine fi)*
+ unitvector((direction tt of p_.r) rotated 90)-(ogonek_breadth-the_pen,0);
+ easy_ogonek(the_pen,6,7,8); % ogonek
+else:
+ lowercase_cedilla(x4,0, 6,7,8,9,10);
+fi
+penlabels(0,1,2,3,4,5, 6,7,8,9,10); endchar;
+
+% Short U moved up for LH fonts
+
+lhchar "Lowercase Cyrillic letter y - straight u (as upper Y)";
+cyrchar(y,if serifs: 9.5u# else: 9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+% lower_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha; left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=0; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=-d;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+notch_cut:
+ y0:=y2+notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs:
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(6',5,e,1/3,jut,f,1/3,jut); % lower serif
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % upper right serif
+%%%%%
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter y_hcrs - straight u hcrossed";
+cyrchar(y_hcrs,if serifs: 9.5u# else: 9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+% lower_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha; left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=0; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=-d;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+notch_cut:
+ y0:=y2+notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs:
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(6',5,e,1/3,jut,f,1/3,jut); % lower serif
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % upper right serif
+%%%%%
+% hcross
+pickup crisp.nib; pos7(bar,90); pos8(bar,90);
+x7=.25w; x8=.75w; top y7r=top y8r=vround -eps;
+filldraw stroke z7e--z8e;
+penlabels(0,1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter h_dsc - kha descender";
+cyrchar(h_dsc,if serifs:9.5u# else:9u# fi,x_height#,
+ if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+begingroup
+% lower_h;
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut; y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l); alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty:
+ z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else:
+ fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+%%%
+numeric inner_jut[]; pickup tiny.nib; %moved for cyr_serif
+prime_points_inside(3,2);prime_points_inside(4,1);
+if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+save slab; % lower.slab
+if serifs:
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ slab:=vair; % lower.slab
+ if is_ogonek:
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ fi
+ dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,5,6,7); % ogonek
+else:
+ slab:=vair; % lower.slab
+ numeric right_jut;
+ right_jut=if serifs: 1.1 outer_jut else: .4tiny fi;
+ r_serif(4',1,x,1/3,inner_jut2,y,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(0,1,2,3,4,12,13,24,34, 5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter h_tl - kha (looks like X)";
+cyrchar(h_tl,if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+% lower_h_tail;
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut; y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l); alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+numeric t; t=slab+bracket;
+forsuffixes e=l,r: z54e=(((0,t)--(w,t)) intersectionpoint (z4e--z1e)); endfor;
+if hefty:
+ z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--
+ z34'--z54l--z54r--z24' %!!!
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else:
+ fill diag_end(4r,1r,.5,1,1l,4l)--
+ z54l--z54r--cycle; %!!! left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+%%%
+if serifs:
+ numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ slab:=vair; % lower.slab
+ %dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+%%%%%
+%%%%%
+% l_tail(4);x_tail
+_zero:=4;
+_one:=7; _two:=8; _three:=9; _four:=10;
+%
+% x_
+pickup fine.nib;
+stem3=hround (max(fine.breadth,.5[stem1,x[_zero]r-x[_zero]l]));
+x[_one]'r=x4r;
+penpos[_one]'(stem3,0); pos[_one](stem3,0); z[_one]=z[_one]';
+bot y[_one]=max(-1/3d,-d+vair')-eps;
+(x[_one]'l,y54')=whatever[z4l,z4l+dir angle(z4l-if serifs:z1l else:z34'fi)];
+z54'=(x[_one]'l,y54');
+fill z54l{z4r-z1r}
+ ..controls (z54')..
+ {down}z[_one]'l--z[_one]'r{up}
+ ..controls (z4r)..
+ {z1r-z4r}z54r--cycle; %link
+% _x
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=max(x[_one]l-bulb_diam,%!!!
+ floor x[_one]-2.5u if monospace: / expansion_factor fi);%!!!
+ (x,y[_two]r)=whatever[z[_two]l,z[_one]l];
+ x[_two]r:=max(x,.5[x[_three]r,x[_two]]);
+ filldraw stroke pulled_arc.e([_one],[_two]);%!!!
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](vair',-90); pos[_three](.6[vair',flare],-105);
+ rt x[_three]r=x[_one]-3u; bot y[_three]r=-d;%!!!
+ bot y[_two]r=-d-oo; x[_two]=.4[x[_three]r,x[_one]r];%!!!
+ filldraw stroke super_arc.e([_one],[_two])%!!!
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(0,1,2,3,4,54,54',5,6,7',8); endchar;
+
+lhchar "Lowercase Cyrillic letter ch_ldsc - che left descender";
+cyrchar(ch_ldsc,10u# if not serifs:+.5width_adj# fi, % n_width
+ x_height#,sbeak#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_ch;
+pickup tiny.nib; save slab; %!!!lower.slab
+numeric middle_weight; middle_weight=.6[thin_join,vair];
+pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+penpos2'(fudged.stem,0); z2'=z2;
+penpos5(middle_weight,90); penpos6(middle_weight,90);
+penpos6'(middle_weight,90);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0; x5l=1/3[x1,x3];
+y6l=vround(.48h-.5middle_weight if serifs:-.15(.5[hair,.7stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+y5l=y6l; x6=x6'=x3;
+if serifs: y6'l=min(3/5h,y6l-hair+1.05stem); fi
+if serifs:
+ if ((y6'l-y6l)>=middle_weight+1+eps):
+ fill stroke z2'e{down}..z5e{right}...{.75(z5-z6)+z6'}z6'e; % arc
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+else:
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{right}z6e; fi % arc
+%%%%%
+% lower left descender
+slab:=vair; % lower.slab
+numeric right_jut;
+right_jut=
+ if serifs: max(limit_dist,1.1jut)
+ else: hround (w+serif_fit+.5(stem-u)-rt x4r-.5u) fi;
+l_serif(4,3,o,1/3,beak_darkness,right_jut,.6beak_jut,p,1/3,inner_jut); % lower left descender
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter ch_rdsc - che right descender";
+cyrchar(ch_rdsc,10u# if not serifs:+.5width_adj# fi,x_height#, % n_width
+ if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,
+ serif_fit# if not serifs:+.5(stem#-u#) fi) %dl_adj
+begingroup
+% lower_ch;
+pickup tiny.nib; save slab; %!!! lower.slab
+numeric middle_weight; middle_weight=.6[thin_join,vair];
+pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+penpos2'(fudged.stem,0); z2'=z2;
+penpos5(middle_weight,90); penpos6(middle_weight,90);
+penpos6'(middle_weight,90);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0; x5l=1/3[x1,x3];
+y6l=vround(.48h-.5middle_weight if serifs:-.15(.5[hair,.7stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+y5l=y6l; x6=x6'=x3;
+if serifs: y6'l=min(3/5h,y6l-hair+1.05stem); fi
+if serifs:
+ if ((y6'l-y6l)>=middle_weight+1+eps):
+ fill stroke z2'e{down}..z5e{right}...{.75(z5-z6)+z6'}z6'e; % arc
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ if is_ogonek:
+ slab:=vair; % lower.slab
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); %!!! % lower right serif
+ fi
+else:
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{right}z6e; fi % arc
+%%%%%
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ slab:=vair; % lower.slab
+ numeric right_jut;
+ right_jut=
+ if serifs: max(limit_dist,1.1jut)
+ else: hround (w+serif_fit+.5(stem-u)-rt x4r-.5u) fi;
+ r_serif(4,3,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(1,2,3,4,5,6, 7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter schwa";
+cyrchar(schwa,8.25u#,x_height#,0); %erev
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+% lower_schwa;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,-180); pos2(vair',-90); pos3(left_curve,0);
+set_bar_axis; bot y2r=-oo; y0l=top y1=h-y1.bh;
+lft x1r=hround max(.5u,u-.5right_curve);
+rt x3r=hround min(w-.5u,w-1.25u+.5left_curve); x2=.5w-.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; top y4r=h+oo; x4=x2;% if not serifs:-.25u fi;
+if serifs:
+ pos4(vair,90); pos5(hair,180);
+ y5=min(bar_height+.25flare+2vair'+2,.9[bar_height,h]-.75flare); %z
+ lft x5r=hround(lft x1r+1/3u)+eps;
+ (x,y4l)=whatever[z4r,z5]; x4l:=max(x,x4l-.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4); % left bowl, arc,
+ pickup fine.nib; pos4'(vair,90); z4'=z4; x4'r:=x4r;
+ filldraw stroke z4'e{left}...{x5-x4,5(y5-y4)}z5e; % and terminal
+ path upper_arc; upper_arc=z5{x4-x5,5(y4-y5)}..z4{right};
+ pos6(.3[fine.breadth,hair],180); x6r=x5r; top y6=h+oo;
+ x5'-x5r=2curve-fine; y5'=y5;
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z5'));
+ filldraw z5r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos4(vair,90);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,90); z4=z4'; pos5(4/7[vair',flare],100);
+ lft x5r=hround(tiny.lft x1r+2/3u)+eps;
+ top y5r=vround min(top y4r,max(.82[bar_height,top y4r],
+ y2.bh+.5(y2.bh-y1.bh)-4/7[vair',flare]*sind 280+eps));
+ filldraw stroke term.e(4',5,left,.8,4); fi % terminal
+pickup tiny.nib; path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'l=y0l; x1'l=x1'r=x1; y1'r=y0r=y0l-.6[thin_join,vair];%y1.bh;
+forsuffixes $=l,r:
+x0$=xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+penlabels(0,1,2,3,4,5,5',6); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf b/Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf
new file mode 100644
index 00000000000..bc7c6cefb98
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lgt2upu.mf
@@ -0,0 +1,1197 @@
+%
+% lgt2upu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Cyrillic letters 128--255 for T2 encoding
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in T2
+%
+% X2 T2A T2B T2C
+%
+% G_hcrs "81 "81 - - Ghe horisontally crossed
+% G_dsc "82 - "82 - Ghe with descender
+% G_tl "83 - "83 - Ghe tail
+% SHHA "84 "84 "84 "84 Shha (same as lower h)
+% ZH_dsc "85 "85 "85 - Zhe with descender
+% Z_dsc "86 "86 - - Ze with descender (cedilla)
+% ABH_DZE "87 - "87 "87 Abkhasian dze
+% K_dsc "89 "89 "89 "89 Ka with descender
+% K_beak "8a "8a - - Ka with reversed beak
+% K_tl "8b - "8b - Ka with tail
+% L_tl "8c - "8c - El with tail
+% N_dsc "8d "8d "8d "8d En with descender
+% N_tl "8f - "8f "8f En with tail
+% S_dsc "91 "91 - - Es with descender (cedilla)
+% Y "93 "93 "93 - Straingt u (as upper Y)
+% Y_hcrs "94 "94 - - Straingt u horisontally crossed
+% H_dsc "95 "95 "95 "95 Kha with descender
+% H_tl "96 - "96 - Kha with tail
+% CH_ldsc "97 - "97 - Che with left descender
+% CH_rdsc "98 "98 "98 "98 Che with right descender
+% SCHWA "9a "9a "9a "9a Schwa
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Uppercase Cyrillic letter G_hcrs - GHE hcrossed";
+cyrchar(G_hcrs,if monospace: 9u# else: 11u# fi-width_adj#, %G_width
+ cap_height#,0);
+if is_small_cap: getcharcode(g_hcrs); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_g
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u ,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+%%%%%
+% hcross
+pickup crisp.nib; numeric outer_jut;
+outer_jut=if serifs: max(limit_dist,1.1cap_jut) else: 1.8u fi;
+pos5(bar,90); pos6(bar,90);
+top y6r=top y5r=vround (.52h+.5bar)+eps;
+x6=tiny.rt x1r+1.15outer_jut; x5=hround1/3u-cap_serif_fit;
+filldraw stroke z5e--z6e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter G_dsc - GHE descender";
+cyrchar(G_dsc,if monospace: 9u# else: 11u# fi-width_adj#, %G_width
+ cap_height#,if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(g_dsc); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_g
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u ,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+%%%
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ if is_ogonek:
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi %!!! % lower serif
+fi
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,5,6,7); % ogonek
+else:
+ numeric right_jut;
+ right_jut=if serifs: 1.414cap_jut else: .5cap_stem+.5u fi;
+ if not serifs:
+ numeric arm_thickness; arm_thickness=vround(slab-vair_corr);
+ save slab; slab:=arm_thickness; fi % bottom.desc.slab
+ r_serif(2,1,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(0,1,2,3,4, 5,6,7); endchar;
+
+lhchar "Uppercase Cyrillic letter G_tl - GHE tail";
+cyrchar(G_tl,12.5u#+width_adj#, %V_width+width_adj
+ cap_height#,desc_depth#);
+if is_small_cap: getcharcode(g_tl); fi
+italcorr .75cap_height#*slant-.5u#; %B
+adjust_fit(cap_serif_fit#,0); full_w:=w; w:=11u;%G_width
+% upper_g
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u ,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+%%%%%
+pickup tiny.nib;
+w:=full_w;
+% Tail_part(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7;
+_four:=8; _five:=9; _six:=10; _seven:=11; _eight:=12;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+penpos[_one](vair,90); penpos[_two](vair,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+y[_three]=.5[y[_one],-d]; x[_two]=max(.5w-.25u,w-7u);
+x[_one]=x[_zero]; x[_three]r=hround(w-u);
+x[_two]l:=x[_two]-.25cap_curve; y[_one]=y[_two]=.52h;
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_four]=z[_three];
+ pos[_four](cap_curve if hefty:-3stem_corr fi,0);
+ pos[_five](vair',-90); bot y[_five]r=-d-oo; y[_six]-.5flare=-.85d;
+ pos[_six](cap_hair,-180); pos[_seven](bulb_diam,-180);
+ rt x[_seven]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);
+ z[_six]r=z[_seven]r;
+ x[_five]=max(rt x[_seven]l,.6[x[_four],x[_seven]r]);
+ (x,y[_five]r)=whatever[z[_five]l,z[_four]l];
+ x[_five]r:=max(x,.5[x[_six]r,x[_five]]);
+ filldraw stroke super_arc.e([_four],[_five]);
+ bulb([_five],[_six],[_seven]); % bulb
+else:
+ pickup fine.nib; z[_four]=z[_three];
+ pos[_four](max(fine.breadth,cap_curve if hefty:-3stem_corr fi),0);
+ pos[_eight](vair,-90); pos[_five](flare,-105);
+ rt x[_five]r=x[_three]-6u; bot y[_five]r=-d;
+ y[_five]l:=good.y y[_five]l; x[_five]l:=good.y x[_five]l;
+ bot y[_eight]r=-d-o; x[_eight]=.35[lft x[_five]r,x[_three]r];
+ filldraw stroke super_arc.e([_four],[_eight])
+ & term.e([_eight],[_five],left,.75,4); fi
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Uppercase Cyrillic letter SHHA (as lower h)";
+cyrchar(SHHA,13.5u#,cap_height#,0); %CH width
+if is_small_cap: getcharcode(shha); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(cap_stem,0); x3=w-x1;
+save thin_join; thin_join=cap_hair;
+full_x:=x_height; x_height:=1.15x_height;
+h_stroke(2,g,3,4); x_height:=full_x; % arch and right stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper right serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower right serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,cap_jut); fi % lower left serif
+penlabels(1,2,3,4); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter ZH_dsc - ZHE descender (`roman')";
+cyrchar(ZH_dsc,13.5u#,cap_height#, % N_width
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(zh_dsc); fi
+italcorr cap_height#*slant-.5u#; %K
+adjust_fit(w#-2max(2u#+.5fudged.cap_stem#,3u#)+cap_serif_fit#,cap_serif_fit#); %ZHr_adj
+% upperr_zh;
+if odd((r-l)-fudged.cap_stem): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.cap_stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_rbowl;zh%mono:+.75u
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut if monospace:+.75u fi); %!!!
+rt x6r=hround(r-letter_fit-.75u-right_jut if monospace:+.75u fi); %!!!
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+numeric inner_jut,up_inner_jut;
+%%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ if is_ogonek:
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi %!!! % lower diagonal serif
+fi
+%%%
+% mirror
+forsuffixes $ = 3r,3,3l,3'r,3'l,4r,4,4l,5l,5,5r,6l,6,6r,6'l,6'r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+fill z.m5l--diag_end(.m5l,.m6'l,.5,1,.m6'r,.m5r)--z.m5r--cycle; % lower diagonal
+%%
+if serifs:
+ penpos7(alpha1*(stem1-tiny),0); penpos8(whatever,-90);
+ penpos10(alpha2*(stem2-tiny),0);
+ z7=z.m3; z8=z.m4; z9l=z.m5r; z9=z.m5; z9r=z.m5l; z10=z.m6;
+ dish_serif(7,8,i,1/2,right_jut,j,2/3,up_inner_jut)(dark); % upper diagonal serif
+ dish_serif(10,9,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x6 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,11,12,13); % ogonek
+else:
+ if not serifs:
+ right_jut:=max(right_jut,hround (r-rt x6r-.65u)); fi
+ r_serif(6,1,x,1/3,jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(1,2,3,4,5,6,7,8,9,10, 11,12,13); endchar;
+
+lhchar "Uppercase Cyrillic letter Z_dsc - ZE descender (cedilla)";
+cyrchar(Z_dsc,11u#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(z_dsc); fi
+italcorr .75cap_height#*slant-.5u#; %B
+adjust_fit(if monospace: .35u#,.25u# else: 0,0 fi);
+% upper_z;
+pickup fine.nib; numeric right_curve,middle_weight;
+middle_weight=max(fine.breadth,.6vair+.5);
+pos2(cap_band,90); pos8(cap_band,-90);
+if serifs:
+ right_curve=cap_curve-stem_corr;
+ pos1(cap_hair,180); pos9(cap_hair,-180); y1=.4[y5l,y2l];
+else:
+ right_curve=cap_curve-3stem_corr;
+ pos1(1.1flare,120); pos9(flare,-120);
+ top y1r=vround 7/8h+o; bot y9r=vround 1/7h-o; fi
+pos4(middle_weight,-90); pos5(middle_weight,-90);
+pos6(middle_weight,90); pos5'(middle_weight,90);
+pos3(max(fine.breadth,right_curve-stem_corr),0);
+pos7(max(fine.breadth,right_curve),0);
+top y2r=h+o; bot y8r=-o;
+x2=x6=x8=.5[1.5u,x7]; rt x7r=hround(w-.75u); rt x3r=hround(w-1.25u);
+lft x5=lft x5'=min(hround 3.5u,lft x6)+eps;
+y3=.5[y4l,y2l]; y7=.5[y6l,y8l]; x4=1/3[x5,x3l]; y4=y5; y5'=y6;
+lft x1r=hround 1.1u; lft x9r=hround.9u;
+top y5l-bot y5'l=vair; .5[y5l,y5'l]=.52h;
+if serifs: y9=max(.52[top y8l,bot y5'l],y7+1);
+ else: y9l:=good.y y9l; x9l:=good.x x9l; fi
+filldraw stroke {{if not serifs:interim superness:=hein_super; fi
+ super_arc.e(2,3)}} & super_arc.e(3,4)..z5e; % upper bowl
+filldraw stroke z5'e..super_arc.e(6,7) & super_arc.e(7,8); % lower bowl
+if serifs:
+ filldraw stroke z1e{x2-x1,15(y2-y1)}....{right}z2e; % upper arc
+ filldraw stroke
+ {{interim superness:=more_super; super_arc.e(8,9)}}; % lower arc
+else:
+ filldraw stroke rterm.e(2,1,left,.9,4); % upper arc
+ filldraw stroke term.e(8,9,left,.8,4); % lower arc
+fi
+if serifs:
+ path upper_arc; upper_arc=z1{x2-x1,15(y2-y1)}....{right}z2;
+ pos10(.3[fine.breadth,cap_hair],0); x10l=x1r; top y10=h+o;
+ x1'-x1l=2cap_curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z10r--z1'));
+ filldraw z1r--z10l--z10r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+%%%%%
+% uppercase cedilla/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ ogonek_pos=(x8r,0);
+ easy_ogonek(the_pen,11,12,13); % ogonek
+else:
+ uppercase_cedilla(x8,0, 11,12,13,14,15);
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15); endchar;
+
+lhchar "Uppercase Cyrillic letter ABH_DZE - Abkhasian DZE";
+cyrchar(ABH_DZE,10u#,cap_height#,0);
+if is_small_cap: getcharcode(abh_dze); fi
+italcorr cap_height#*slant-.5u#; %K
+adjust_fit(0,.5serif_fit#);
+pickup if serifs: tiny.nib else: fine.nib fi;
+numeric arm_thickness,z_stem[];
+z_stem1=max(currentbreadth,hround(if hefty:1/3[vair,hair] else: fudged.hair fi));
+arm_thickness=if hefty: 2/3 else:.75 fi[slab,cap_stem];
+if z_stem1<currentbreadth+eps: z_stem1:=currentbreadth+eps; fi
+rt x1r=rt x2r=hround(w-.8u)+eps;
+lft x3l=lft x4l=good.x(hround.3[.5u,w-.8u])-eps;
+top y1=h; bot y2=min(bot y1,good.y(h-arm_thickness));
+bot y4=good.y.(.52h-.5vair)-eps;
+y3=max(y4,good.y(bot y4+vair-.5currentbreadth)-eps);
+numeric alpha; alpha=diag_ratio(1,.5(z_stem1-currentbreadth),y2-y4,x2r-x3l);
+z_stem2=alpha*(z_stem1-currentbreadth); %
+if z_stem2<eps: z_stem2:=eps; fi
+penpos1(z_stem2,0); penpos2(z_stem2,0);
+penpos3(z_stem2,0); penpos4(z_stem2,0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pos7(cap_curve,0); pos8(vair',-90); pos12(rt x4r-lft x4l,180); pos13(vair,90);
+x12r=x4l; y12=y4; rt x7r=hround(w-.75u); y7=.5[bot y13l,top y8l];
+bot y8r=-o; x8=hround.5[.5u,w-.8u]; x13=max(x8,rt x12l+eps);
+y13=1/15[y4,h]; y13l:=min(y13l,.5[y4,y13l]);
+filldraw stroke z12e{z2l-z3l}...{right}z13e; %link
+filldraw stroke pulled_arc.e(13,7) & pulled_arc.e(7,8); % bowl
+if serifs:
+ numeric bulb_diam[]; bulb_diam2=flare+(cap_stem-stem);
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u;
+ y10+.5bulb_diam2=max(.52[top y8l,bot y13l],y7+1);
+ {{less_tense; bulb(8,9,10)}}; % lower bulb
+else:
+ pos9(max(currentbreadth+eps,cap_hair-.2tiny),-175); lft x9r=hround .75u; y9=.23h;
+ filldraw stroke z8e{left}....{dir 95}z9e; fi % lower terminal
+pickup crisp.nib;
+pos5(max(h-bot y2l-.5crisp-vair_corr,crisp.breadth),90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u;
+y6=max(good.y(if serifs: h-slab-beak else: y5l-vair_corr fi)-eps,y3+1);
+arm(5,6,a,beak_darkness,-beak_jut); % upper arm and beak
+penlabels(1,2,3,4,5,6,7,8,9,10,12,13); endchar;
+
+% Ukrainian i moved up for LH font
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter K_dsc - KA descender (`roman')";
+cyrchar(K_dsc,13.5u#,cap_height#, % N_width
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(k_dsc); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); %ur_serif_adj
+% upperr_k;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut);
+rt x6r=hround(r-letter_fit-.75u-right_jut);
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+numeric inner_jut,up_inner_jut;
+%%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ if is_ogonek:
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+fi
+%%%
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x6 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ if not serifs:
+ right_jut:=max(right_jut,hround (r-rt x6r-.65u)); fi
+ r_serif(6,1,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower left serif
+fi
+penlabels(1,2,3,4,5,6, 7,8,9); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter K_beak - KA beak (`roman')";
+cyrchar(K_beak,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(k_beak); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(min(4.5u#-.5cap_stem#,3.5u#)-.5width_adj#, % Beak_adj
+ cap_serif_fit#);
+% upperr_k;beak
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); %!!! upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut);
+rt x6r=hround(r-letter_fit-.75u-right_jut);
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+numeric inner_jut,up_inner_jut;
+%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+%%%%%
+% upper left beak
+pickup crisp.nib;
+top y7r=h; x7=x1; pos7(slab,90); pos8(hair,180);
+lft x8r=l+letter_fit+hround.65u; y8=good.y(y7l-beak)-eps;
+arm(7,8,q,beak_darkness,-.7beak_jut);
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter K_tl - KA tail (`roman')";
+cyrchar(K_tl,13.5u#,cap_height#,desc_depth#); % N_width
+if is_small_cap: getcharcode(k_tl); fi
+italcorr cap_height#*slant-.5u#; %K
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% Tail_part(2);
+_zero:=2;
+_one:=7; _two:=8; _three:=9;
+_four:=10; _five:=11; _six:=12; _seven:=13; _eight:=14;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+penpos[_one](vair,90); penpos[_two](vair,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+y[_three]=.5[y[_one],-d]; x[_two]=max(.5w-.25u,w-7u);
+x[_one]=x[_zero]; x[_three]r=hround(w-u);
+x[_two]l:=x[_two]-.25cap_curve; y[_one]=y[_two]=.52h;
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_four]=z[_three];
+ pos[_four](cap_curve if hefty:-3stem_corr fi,0);
+ pos[_five](vair',-90); bot y[_five]r=-d-oo; y[_six]-.5flare=-.85d;
+ pos[_six](cap_hair,-180); pos[_seven](bulb_diam,-180);
+ rt x[_seven]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);
+ z[_six]r=z[_seven]r;
+ x[_five]=max(rt x[_seven]l,.6[x[_four],x[_seven]r]);
+ (x,y[_five]r)=whatever[z[_five]l,z[_four]l];
+ x[_five]r:=max(x,.5[x[_six]r,x[_five]]);
+ filldraw stroke super_arc.e([_four],[_five]);
+ bulb([_five],[_six],[_seven]); % bulb
+else:
+ pickup fine.nib; z[_four]=z[_three];
+ pos[_four](max(fine.breadth,cap_curve if hefty:-3stem_corr fi),0);
+ pos[_eight](vair,-90); pos[_five](flare,-105);
+ rt x[_five]r=x[_three]-6u; bot y[_five]r=-d;
+ y[_five]l:=good.y y[_five]l; x[_five]l:=good.y x[_five]l;
+ bot y[_eight]r=-d-o; x[_eight]=.35[lft x[_five]r,x[_three]r];
+ filldraw stroke super_arc.e([_four],[_eight])
+ & term.e([_eight],[_five],left,.75,4); fi
+%%%
+% udiagonal;
+pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut); x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+forsuffixes $=l,r: y3'$=h; y4'$=.52h;
+z4'$=z3'$+whatever*(z3-z4); z4$=z3'$+whatever*(z3-z4); endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+z4'=.5[z4'l,z4'r]; pickup fine.nib;
+fill z4'r--diag_end(4r,3'r,1,.5,3'l,4l)--z4'l--cycle; % upper diagonal
+%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ z1'=z1; pos1'(fudged.cap_stem,0); z2'=z2; pos2'(fudged.cap_stem,0);
+ if rt x1'r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1'r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ if rt x2r+cap_jut+.5u+1<=x[_three]r: inner_jut=cap_jut;
+ else: rt x2r+inner_jut+.5u+1=x[_three]r; fi
+ dish_serif(3,4',e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); fi % lower stem serif
+penlabels(1,2,3,4,5,6, 7,8,9,10,11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter L_tl - EL tail";
+cyrchar(L_tl,13.5u#,cap_height#,desc_depth#); % DL_width:N_width
+if is_small_cap: getcharcode(l_tl); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi, %DL_adj
+ cap_serif_fit#); %
+% upper_l;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+numeric light_hair,bot_vair,left_jut;
+light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi);
+left_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit-rt x2r-.65u) fi;
+bot_vair=Vround(.5[vair,light_hair]);
+x3=1/3[w-rt x1r-(1/6left_jut),rt x1r] if not serifs:-.5(cap_stem-u) fi+eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(cap_hair,-180);
+ top y3=h; y6=1/6h-max(0,flare-stem-2vair_corr-.5); z6r=z5r;
+ lft x6r=l+letter_fit+hround(.5u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]); bot y4r=-o;
+ filldraw stroke z4e{right}..
+ controls (min(15/16[x4,x3],max(x4,lft x6r+2flare))+(x3e-x3)+eps,y4e)
+ and (x3e,good.y(min(y6-.5,1/3h)+1/3(y4e-y4))-eps)..z3e; % left tail
+ {{less_tense; bulb(4,5,6)}};
+else:
+ pos3'(slab,90); pos1'(slab,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e;
+ pickup fine.nib; pos3(max(fine.breadth,light_hair),0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=2/3[x3l,x5r]; lft x5=l+letter_fit+hround(.35u-.5);
+ bot y4r=bot y5r; y3=y3'; x4l:=.25[x4,x5];
+ path p;
+ p=stroke z3{down}
+ ..controls (x3,y5+.35h-eps) and (min(7/8[x4,x3],x5+2.5light_hair+.5u),y4)
+ ..{left}z4--z5;
+ z6=point .35 of p;
+ pos6(max(fine.breadth,7/8[bot_vair,light_hair]),angle(direction .35 of p)+90);
+ filldraw stroke z3e{down}...z6e{direction .35 of p}...{left}z4e--z5e; fi % arc
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5cap_jut);
+ %dish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut); %lower right serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); %upper right serif
+ nodish_serif(3,0,e,1/3,1.05cap_jut,f,1/3,inner_jut); %upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% L_tail(2);
+_zero:=2;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+if serifs: vair' else: slab fi+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=floor x[_zero]-2.5u if monospace: / expansion_factor fi;
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](slab,-90); pos[_three](flare,-105);
+ rt x[_three]r=x[_zero]-4u; bot y[_three]r=-d;
+ bot y[_two]r=-d-o; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(0,1,2,3,4,5,6, 7,8,9,10,11); endchar;
+
+lhchar "Uppercase Cyrillic letter N_dsc - EN descender";
+cyrchar(N_dsc,13.5u#,cap_height#,
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(n_dsc); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,
+ cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi); %DL_adj
+% upper_n;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ if is_ogonek:
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+fi
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |stem| is drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ numeric right_jut;
+ right_jut=if serifs: max(limit_dist,1.1cap_jut) else: hround (r-rt x4r-.65u) fi;
+ if not serifs:
+ numeric arm_thickness; arm_thickness=vround(slab-vair_corr);
+ save slab; slab:=arm_thickness; fi %bottom.desc.slab
+ r_serif(4,3,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter N_tl - EN tail";
+cyrchar(N_tl,13.5u#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(n_tl); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_n;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); fi % upper right serif
+ %dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+% L_tail(4);
+_zero:=4;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+if serifs: vair' else: slab fi+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=floor x[_zero]-2.5u if monospace: / expansion_factor fi;
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](slab,-90); pos[_three](flare,-105);
+ rt x[_three]r=x[_zero]-4u; bot y[_three]r=-d;
+ bot y[_two]r=-d-o; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(1,2,3,4,5,6, 7,8,9,10,11); endchar;
+
+iff serifs:
+lhchar "Uppercase Cyrillic letter S_dsc - ES descender (cedilla)";
+cyrchar(S_dsc,13u#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(s_dsc); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% upper_s;
+pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+x1r-x1'=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+%%%%%
+% uppercase cedilla/ogonek
+if is_ogonek:
+ path p.r;
+ p.r=pulled_arc.r(3,4)...{up}z5r;
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if hefty: 2.6 else: 2.5 fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_pos=(point tt of p.r)+.5(the_pen-if serifs: tiny else: fine fi)*
+ unitvector((direction tt of p.r) rotated 90)-(ogonek_breadth-the_pen,0);
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ uppercase_cedilla(x4,0, 7,8,9,10,11);
+fi
+penlabels(1,1',2,3,4,5,6, 7,8,9,10,11); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter S_dsc - ES descender (cedilla)";
+cyrchar(S_dsc,11.5u#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(s_dsc); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% uppers_s;
+pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+%%%%%
+% uppercase cedilla/ogonek
+if is_ogonek:
+ path p.r;
+ p.r=term.r(4,5,right,.8,4);
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if is_bold: .3 else: .2 fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_move=-hi.o;
+ ogonek_pos=(point tt of p.r)+.5(the_pen-if serifs: tiny else: fine fi)*
+ unitvector((direction tt of p.r) rotated 90)-(ogonek_breadth-the_pen,0);
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ uppercase_cedilla(x4,0, 6,7,8,9,10);
+fi
+penlabels(1,1',2,3,4,5, 6,7,8,9,10); endchar;
+
+% Short U moved up for LH fonts
+
+lhchar "Uppercase Cyrillic letter Y - straight U (looks like Y)";
+cyrchar(Y,13u#,cap_height#,0);
+if is_small_cap: getcharcode(y); fi
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut:
+ y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs:
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter Y_hcrs - straight U hcrossed";
+cyrchar(Y_hcrs,13u#,cap_height#,0);
+if is_small_cap: getcharcode(y_hcrs); fi
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut:
+ y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs:
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+% hcross
+pickup crisp.nib; pos7(bar,90); pos8(bar,90);
+x7=.25w; x8=.75w; top y7r=top y8r=vround (y3-eps);
+filldraw stroke z7e--z8e;
+penlabels(0,1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter H_dsc - KHA descender";
+cyrchar(H_dsc,13u#,cap_height#,
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth
+if is_small_cap: getcharcode(h_dsc); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_h;
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty:
+ z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else:
+ fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+%%%
+numeric inner_jut[]; pickup tiny.nib; % moved for cyr_serif
+prime_points_inside(3,2); prime_points_inside(4,1);
+if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+if serifs:
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ if is_ogonek:
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ fi
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ numeric right_jut;
+ right_jut=if serifs: 1.1 outer_jut else: .4tiny fi;
+ if not serifs:
+ numeric arm_thickness; arm_thickness=vround(slab+vair_corr);
+ save slab; slab:=arm_thickness; fi %bottom.desc.slab
+ r_serif(4',1,x,1/3,inner_jut2,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+lhchar "Uppercase Cyrillic letter H_tl (looks like X)";
+cyrchar(H_tl,13u#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(h_tl); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_h_tail;
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+numeric t; t=slab+bracket;
+forsuffixes e=l,r: z54e=(((0,t)--(w,t)) intersectionpoint (z4e--z1e)); endfor;
+if hefty:
+ z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--
+ z34'--z54l--z54r--z24' %!!!
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else:
+ fill diag_end(4r,1r,.5,1,1l,4l)--
+ z54l--z54r--cycle; %!!! left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+%%%
+if serifs:
+ numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ %dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+%%%%%
+% L_tail(4);X_tail
+_zero:=4;
+_one:=7; _two:=8; _three:=9; _four:=10;
+%
+% X_
+pickup fine.nib;
+stem3=hround (max(fine.breadth,.5[stem1,x[_zero]r-x[_zero]l]));
+x[_one]'r=x[_zero]r;
+penpos[_one]'(stem3,0); pos[_one](stem3,0); z[_one]=z[_one]';
+bot y[_one]=max(-1/3d-eps,-d+if serifs: vair'else: slab fi);
+(x[_one]'l,y54')=whatever[z4l,z4l+dir angle(z4l-if serifs:z1l else:z34'fi)];
+z54'=(x[_one]'l,y54');
+fill z54l{z4r-z1r}
+ ..controls (z54')..
+ {down}z[_one]'l--z[_one]'r{up}
+ ..controls (z4r)..
+ {z1r-z4r}z54r--cycle; %link
+% _X
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=floor x[_one]-2.5u if monospace: / expansion_factor fi;%!!!
+ filldraw stroke pulled_arc.e([_one],[_two]);%!!!
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](slab,-90); pos[_three](flare,-105);
+ rt x[_three]r=x[_one]-4u; bot y[_three]r=-d;%!!!
+ bot y[_two]r=-d-o; x[_two]=.4[x[_three]r,x[_one]r];%!!!
+ filldraw stroke super_arc.e([_one],[_two])%!!!
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(0,1,2,3,4,12,13,24,34,54,54', 5,6,7',8); endchar;
+
+lhchar "Uppercase Cyrillic letter CH_ldsc - CHE left descender";
+cyrchar(CH_ldsc,13.5u#,cap_height#,cap_sbeak#);
+if is_small_cap: getcharcode(ch_ldsc); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_ch;
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0;
+x5l=1/3[x1,x3]; y5=y6; if serifs: y6'=y6-cap_hair+1.05cap_stem; fi
+x6=x6'=x3; y6=good.y (h-.52h if serifs: -.35(.5[cap_hair,.7cap_stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+clearpen; penpos2'(cap_stem,0); z2'=z2;
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos5(middle_weight,90); penpos6(middle_weight,90); penpos6'(middle_weight,90);
+if serifs:
+ if y6'-y6>=middle_weight+1+eps:
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{.75(z5-z6)+z6'}z6'e;
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ %dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+else:
+ filldraw stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+%%%%%
+% upper left descender
+numeric right_jut;
+right_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit+.5(stem-u)-rt x4r-.65u) fi;
+l_serif(4,3,x,1/3,beak_darkness,right_jut,beak_jut,y,1/3,cap_jut); % lower left descender
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter CH_rdsc - CHE right descender";
+cyrchar(CH_rdsc,13.5u#,cap_height#,
+ if is_ogonek: desc_depth# else: cap_sbeak# fi); %udesc/og_depth`
+if is_small_cap: getcharcode(ch_rdsc); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,
+ cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi); %DL_adj
+% upper_ch;
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0;
+x5l=1/3[x1,x3]; y5=y6; if serifs: y6'=y6-cap_hair+1.05cap_stem; fi
+x6=x6'=x3; y6=good.y (h-.52h if serifs: -.35(.5[cap_hair,.7cap_stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+clearpen; penpos2'(cap_stem,0); z2'=z2;
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos5(middle_weight,90); penpos6(middle_weight,90); penpos6'(middle_weight,90);
+if serifs:
+ if y6'-y6>=middle_weight+1+eps:
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{.75(z5-z6)+z6'}z6'e;
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ if is_ogonek:
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+ fi
+else:
+ filldraw stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |stem| is drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ numeric right_jut;
+ right_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit+.5(stem-u)-rt x4r-.65u) fi;
+ if not serifs:
+ numeric arm_thickness; arm_thickness=vround(slab-vair_corr);
+ save slab; slab:=arm_thickness; fi % bottom.desc.slab
+ r_serif(4,3,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(1,2,3,4,5,6, 7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter SCHWA";
+cyrchar(SCHWA,11.25u#+max(.75u#,.5cap_curve#),cap_height#,0);
+if is_small_cap: getcharcode(schwa); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0 if monospace: +\\-.25u#,-.25u#+ else:,fi\\ 0);
+% upper_schwa;`large e' shape (ecfonts)
+numeric left_curve,right_curve;
+left_curve=right_curve+3stem_corr=cap_curve if not serifs: -1.5stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib;
+pos1(right_curve,-180); pos2(vair',-90); pos3(left_curve,0);
+y1=.48h; bot y2r=-o; y0l=top y1;
+if serifs: x2-.25u=x4=.5w-.5u; else: x2=x4=.5w-.25u; fi
+lft x1r=hround max(.5u,u-.5right_curve);
+rt x3r=w-hround max(.75u,1.5u-.5left_curve); %lower_e+.25u
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; top y4r=h+o;
+if serifs:
+ pos4(cap_band,90);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4); % left bowl, arc,
+ pickup fine.nib; pos4'(cap_band,90); z4'=z4;
+ lft x5r=max(hround u,lft x1r+1/3u+eps);
+ pos5(cap_hair,180); bot y5=min(vround .675h,bot y4l-eps);
+ filldraw stroke z4'e{left}...{x5-x4,10(y5-y4)}z5e; % and terminal
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x5r; top y6=h+o;
+ x5'-x5r=2cap_curve-fine; y5'=y5;
+ path upper_arc; upper_arc=z5{x4-x5,10(y4-y5)}..{right}z4;
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z5'));
+ filldraw z5r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % upper serif
+else:
+ pos4(slab,90);
+ {{interim superness:=min(1.03superness,more_super);
+ filldraw stroke super_arc.e(2,3)}};
+ filldraw stroke super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(slab,90); z4=z4';
+ pos5(1.2flare,100); lft x5r=lft x1r+u; top y5r=vround .95h+o;
+ filldraw stroke rterm.e(4',5,left,.75,20); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l-7/8[thin_join,vair']; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r: x0$=xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+penlabels(0,1,2,3,4,5,6); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lkligtbl.mf b/Master/texmf-dist/fonts/source/lh/base/lkligtbl.mf
new file mode 100644
index 00000000000..0214dc8cc72
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lkligtbl.mf
@@ -0,0 +1,138 @@
+
+% lkligtbl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) A.Berdnikov
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Macro definitions for lig & kern data
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if known loaded_lgligtbl: endinput; fi
+loaded_lgligtbl:=1; % if known this file has been loaded
+
+%if unknown loaded_lgerrors:
+% index:=0; input lgerrors; % error messages;
+%fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% %%
+%% Procedures which may be used to make the ligtable data %%
+%% independent from the particular font coding scheme %%
+%% %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown dummy_kern_char:
+ numeric dummy_kern_char; dummy_kern_char:=0;
+fi
+
+boolean debug_ligdata; debug_ligdata:=false;
+
+def beginligtable =
+ boolean flag_gener, flag_sp, flag_fst;
+ flag_gener:=false; flag_sp:=false; flag_fst:=true;
+ def table_data = enddef;
+enddef;
+
+vardef labelchar (text chars) =
+ forsuffixes $=chars:
+ if (str $) <> "": if known $: if $ > -1:
+ if flag_sp:
+ flag_fst:=false;
+ expandafter def expandafter table_data expandafter =
+ table_data , $ :
+ enddef;
+ else:
+ expandafter def expandafter table_data expandafter =
+ table_data $ :
+ enddef;
+ fi
+ flag_gener:=true; flag_sp:=false;
+ fi fi fi
+ endfor;
+enddef;
+
+vardef setkern @# (text chars)=
+ if flag_gener:
+ forsuffixes $=chars:
+ if (str $) <> "": if known $: if $ > -1:
+ if flag_sp:
+ expandafter def expandafter table_data expandafter =
+ table_data , $ kern @#
+ enddef;
+ else:
+ expandafter def expandafter table_data expandafter =
+ table_data $ kern @#
+ enddef;
+ fi
+ flag_sp:=true;
+ fi fi fi
+ endfor;
+ fi;
+enddef;
+
+vardef setlig(suffix charA, charB) =
+ if flag_gener:
+ if (known charA) and (known charB):
+ if (charA > -1) and (charB > -1):
+ if flag_sp:
+ expandafter def expandafter table_data expandafter =
+ table_data , charA =: charB
+ enddef;
+ else:
+ expandafter def expandafter table_data expandafter =
+ table_data charA =: charB
+ enddef;
+ fi;
+ flag_sp:=true;
+ fi fi;
+ fi;
+enddef;
+
+vardef endligtable=
+ if debug_ligdata: showtoken table_data; fi
+ if flag_gener:
+ if not flag_sp:
+ if not flag_fst:
+ message ("Something is wrong in ligtable:");
+ showtoken table_data;
+ message ("Dummy kerning with char "
+ & (decimal dummy_kern_char) & " is inserted");
+ expandafter def expandafter table_data expandafter =
+ table_data dummy_kern_char kern 0
+ enddef;
+ ligtable table_data;
+ fi
+ else:
+ ligtable table_data;
+ fi;
+ fi;
+ def table_data = enddef;
+enddef;
+
+vardef liggroup @# (text chars)=
+ def @# = enddef;
+ forsuffixes $=chars:
+ if (str $) <> "": if known $: if $ > -1:
+ expandafter def expandafter @# expandafter =
+ @# , $
+ enddef;
+ fi fi fi
+ endfor;
+ if debug_ligdata: showtoken @#; fi
+enddef;
+
+endinput;
+% end-of-file
diff --git a/Master/texmf-dist/fonts/source/lh/base/llcligtb.mf b/Master/texmf-dist/fonts/source/lh/base/llcligtb.mf
new file mode 100644
index 00000000000..b787c738898
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/llcligtb.mf
@@ -0,0 +1,120 @@
+%
+% llcligtb.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lig & kern data for Caps and Small Caps font (T2)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+ligtable "P":
+ "T":
+ "Y": "a" kern kk#,
+ "A" kern kk#;
+
+ligtable "F":
+ "V":
+ "W": if serifs: "a" kern kkk#,
+ "A" kern kkk#,
+ else: "a" kern kk#,
+ "A" kern kk#, fi
+ "K":
+ "X": "o" kern k#,
+ "O" kern k#,
+ "c" kern k#,
+ "C" kern k#,
+ "g" kern k#,
+ "G" kern k#,
+ "q" kern k#,
+ "Q" kern k#;
+
+ligtable "O":
+ "D": "x" kern k#,
+ "X" kern k#,
+ "w" kern k#,
+ "W" kern k#,
+ "a" kern k#,
+ "A" kern k#,
+ "v" kern k#,
+ "V" kern k#,
+ "y" kern k#,
+ "Y" kern k#;
+
+ligtable "A":
+ if serifs: "R": fi
+ "c" kern k#,
+ "C" kern k#,
+ "o" kern k#,
+ "O" kern k#,
+ "g" kern k#,
+ "G" kern k#,
+ "u" kern k#,
+ "U" kern k#,
+ "q" kern k#,
+ "Q" kern k#,
+ "L": "T" kern kk#,
+ "t" kern kk#,
+ "Y" kern kk#,
+ "y" kern kk#,
+ "V" kern kkk#,
+ "v" kern kkk#,
+ "W" kern kkk#,
+ "w" kern kkk#;
+
+ligtable "I": "I" kern -k#; %fi % Richard III
+
+%$.#:=lower.$.#;
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+ligtable "p":
+ "t":
+ "y": "a" kern kk#;
+
+ligtable "f":
+ "v":
+ "w": "a" kern if serifs: kkk# else: kk#\\fi,
+ "k":
+ "x": "o" kern k#,
+ "c" kern k#,
+ "g" kern k#,
+ "q" kern k#;
+
+ligtable "o":
+ "d": "x" kern k#,
+ "w" kern k#,
+ "a" kern k#,
+ "v" kern k#,
+ "y" kern k#;
+
+ligtable "a":
+ if serifs: "r": fi
+ "c" kern k#,
+ "o" kern k#,
+ "g" kern k#,
+ "u" kern k#,
+ "q" kern k#,
+ "l": "'" kern kk#,
+ "t" kern kk#,
+ "y" kern kk#,
+ "v" kern kkk#,
+ "w" kern kkk#;
+
+ligtable "i": "i" kern -k#; % skiing
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lliligtb.mf b/Master/texmf-dist/fonts/source/lh/base/lliligtb.mf
new file mode 100644
index 00000000000..9b71320faca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lliligtb.mf
@@ -0,0 +1,142 @@
+%
+% lliligtb.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lig & kern data for Italic font (T2)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+%
+% addtitional kern value
+%
+numeric itc#; % modified italic correction on `f' and `ff' %exilig
+itc#=(asc_height#-x_height#)*slant+.75u#;
+
+%>>>!!!
+ligtable
+ "f": "i"=:oct"034",
+ "f"=:oct"033",
+ "l"=:oct"035",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ oct"033": % ff
+ "i"=:oct"036",
+ "l"=:oct"037",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+%<<<!!!
+
+ligtable "d":
+ "w":
+ "l": "l" kern +u#;
+
+ligtable "F":
+ "W": %!!!
+ "V": "o" kern kk#,
+ "e" kern kk#,
+ "u" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "A" kern kkk#,
+% "K":
+ "X":
+ "O" kern k#,
+ "C" kern k#,
+ "G" kern k#,
+ "Q" kern k#;
+
+%>>>!!!
+ligtable
+ "K": "v" kern k#,
+ "w" kern k#,
+ "O" kern k#,
+ "C" kern k#,
+ "G" kern k#,
+ "Q" kern k#;
+%<<<!!!
+
+
+ligtable "T": "y" kern kk#,
+ "Y": "e" kern kk#,
+ "o" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "u" kern kk#,
+ "P":
+% "W":
+ "A" kern kk#;
+
+ligtable "O":
+ "D": "X" kern k#,
+ "W" kern k#,
+ "A" kern k#,
+ "V" kern k#,
+ "Y" kern k#;
+
+ligtable "A":
+ "y" kern k#, %!!!
+ "R": "n" kern k#,
+ "l" kern k#,
+ "r" kern k#,
+ "u" kern k#,
+ "m" kern k#,
+ "t" kern k#,
+ "i" kern k#,
+ "C" kern k#,
+ "O" kern k#,
+ "G" kern k#,
+ "h" kern k#,
+ "b" kern k#,
+ "U" kern k#,
+ "k" kern k#,
+ "v" kern k#,
+ "w" kern k#,
+ "Q" kern k#,
+ "L": "T" kern kk#,
+ "Y" kern kk#,
+ "V" kern kkk#,
+ "W" kern kkk#,
+ "b":
+ "c":
+ "e":
+ "o":
+ "p":
+ "r": "e" kern -u#,
+ "a" kern -u#,
+ "o" kern -u#,
+ "d" kern -u#,
+ "c" kern -u#,
+ "g" kern -u#,
+ "q" kern -u#;
+
+ligtable "n": "'" kern kkk#;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/llmligtb.mf b/Master/texmf-dist/fonts/source/lh/base/llmligtb.mf
new file mode 100644
index 00000000000..d48f1497b4b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/llmligtb.mf
@@ -0,0 +1,85 @@
+%
+% llmligtb.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Ligatures
+% This file should be called for monospaced fonts !
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The following ligatures are integrated:
+%
+% for CM fonts
+% !`
+% ?`
+% for T2
+% -- gives -
+% --- gives --
+% -<hyphenchar> gives <hyphenchar>
+% common
+% <<
+% >>
+% ,,
+% ''
+% ``
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if known spanish_shriek: % for CM fonts only
+
+ ligtable "!": "`" =: spanish_shriek;
+ ligtable "?": "`" =: spanish_query;
+
+fi
+
+if genmode="ex": % for T2 only
+
+%english quotes
+ ligtable "`": "`" =: oct"020";
+ ligtable "'": "'" =: oct"021";
+
+%dashes
+ ligtable "-":
+ "-" =: oct"025", % number range dash equals "-"
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+%
+fi
+
+
+% ligatures for cyrillic quotes
+if (altcoding and (ligs <> 0)) % for CM
+ or (genmode="ex"): % if T2 started
+
+ beginligtable
+ labelchar ([ASCII"<"]);
+ setlig ([ASCII"<"],CYR_.flqq); % "<<"
+ endligtable;
+
+ beginligtable
+ labelchar ([ASCII">"]);
+ setlig ([ASCII">"],CYR_.frqq); % ">>"
+ endligtable;
+
+ beginligtable
+ labelchar ([ASCII","]);
+ setlig ([ASCII","],CYR_.baseqq); % ",,"
+ endligtable;
+
+fi % ligatures for cyrillic quotes
+
+%
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/llrligtb.mf b/Master/texmf-dist/fonts/source/lh/base/llrligtb.mf
new file mode 100644
index 00000000000..886553d2bb6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/llrligtb.mf
@@ -0,0 +1,228 @@
+%
+% llrligtb.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lig & kern data for Roman font (T2)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+%
+% addtitional kern value
+%
+numeric itc#; % modified italic correction on `f' and `ff'%exrlig
+itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi;
+
+%>>>!!!
+ligtable
+ "f": "i"=:oct"034",
+ "f"=:oct"033",
+ "l"=:oct"035",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ oct"033": % ff
+ "i"=:oct"036",
+ "l"=:oct"037",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+%<<<!!!
+
+ligtable "k":
+ "W" kern kk#, %!!!
+ "V" kern kk#, %!!!
+ if serifs:
+ "v": "a" kern -u#,
+ fi\\
+ "w": "e" kern k#,
+ "a" kern k#,
+ "o" kern k#,
+ "c" kern k#;
+
+ligtable "P": "A" kern kk#,
+ "y": "o" kern k#,
+ "e" kern k#,
+ "a" kern k#,
+ "." kern kk#,
+ "," kern kk#;
+
+ligtable "F":
+ "V":
+ "W": if serifs:
+ "o" kern kk#,
+ "e" kern kk#,
+ "u" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "A" kern kkk#,
+ %>>>!!!
+ "y" kern kk#,
+ "v" kern kk#,
+ "s" kern kk#,
+ "c" kern kk#,
+ "d" kern kk#,
+ "g" kern kk#,
+ "m" kern kk#,
+ "n" kern kk#,
+ "p" kern kk#,
+ "w" kern kk#,
+ "z" kern kk#,
+ %<<<!!!
+ else:
+ "o" kern k#,
+ "e" kern k#,
+ "u" kern k#,
+ "r" kern k#,
+ "a" kern k#,
+ "A" kern kk#,
+ %>>>!!!
+ "y" kern k#,
+ "v" kern k#,
+ "s" kern k#,
+ "c" kern k#,
+ "d" kern k#,
+ "g" kern k#,
+ "m" kern k#,
+ "n" kern k#,
+ "p" kern k#,
+ "w" kern k#,
+ "z" kern k#,
+ %<<<!!!
+ fi
+% "K":
+ "X":
+ "O" kern k#,
+ "C" kern k#,
+ "G" kern k#,
+ "Q" kern k#;
+
+%>>>!!!
+ ligtable "K": if serifs:
+ "v" kern kk#,
+ "w" kern k#,
+ else:
+ "v" kern k#,
+ fi
+ "o" kern k#,
+ "C" kern k#,
+ "G" kern k#,
+ "Q" kern k#;
+%<<<!!!
+
+ligtable "T": "y" kern if serifs: k# else: kk# fi,
+ "Y": "e" kern kk#,
+ "o" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "A" kern kk#,
+ %>>>!!!
+ "n" kern kk#,
+ oct"031" kern kk#, % \i
+ "c" kern kk#,
+ "d" kern kk#,
+ "g" kern kk#,
+ "p" kern kk#,
+ "s" kern kk#,
+ "v" kern kk#,
+ "w" kern kk#,
+ "x" kern kk#,
+ "z" kern kk#,
+ %<<<!!!
+ "u" kern kk#;
+
+ligtable "O":
+ "D": "X" kern k#,
+ "W" kern k#,
+ "A" kern k#,
+ "V" kern k#,
+ "Y" kern k#;
+
+if serifs:
+ ligtable "h":
+ "m":
+ "n":
+ %>>>!!!
+ "W" kern kk#, "V" kern kk#,
+ %<<<!!!
+ "t" kern k#,
+ "u" kern k#,
+ "b" kern k#,
+ "y" kern k#,
+ "v" kern k#,
+ "w" kern k#;
+
+ ligtable "c": "h" kern k#,
+ "k" kern k#;
+fi
+
+ligtable "o":
+ "b":
+ "p": "e" kern -k#,
+ "o" kern -k#,
+ "x" kern k#,
+ "d" kern -k#,
+ "c" kern -k#,
+ "q" kern -k#,
+ "a": if serifs: "v" kern k#,
+ "j" kern u#,
+ else: "r" kern k#, fi
+ "t": "y" kern k#,
+ "u": "w" kern k#;
+
+ligtable "A":
+ %>>>!!!
+ "y" kern if serifs: kk# else: k# fi,
+ "v" kern if serifs: kkk# else: k# fi,
+ "w" kern if serifs: kk# else: k# fi,
+ "c" kern k#,
+ "d" kern k#,
+ "e" kern k#,
+ "o" kern k#,
+ "q" kern k#,
+ %<<<!!!
+ if serifs: "R": fi\\ "t" kern k#,
+ "C" kern k#,
+ "O" kern k#,
+ "G" kern k#,
+ "U" kern k#,
+ "Q" kern k#,
+ "L": "T" kern kk#,
+ "Y" kern kk#,
+ "V" kern kkk#,
+ "W" kern kkk#;
+
+ligtable "g": "j" kern -k#; % logjam
+
+ligtable "I": "I" kern -k#; % Richard III
+
+%>>>!!!
+ligtable "e": "V" kern kk#; % eV
+%<<<!!!
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/llvligtb.mf b/Master/texmf-dist/fonts/source/lh/base/llvligtb.mf
new file mode 100644
index 00000000000..902ea7a956a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/llvligtb.mf
@@ -0,0 +1,244 @@
+%
+% llvligtb.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.1 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Ligatures
+% This file should be called for NOT monospaced fonts !
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+% The following ligatures are integrated:
+%
+% for CM fonts:
+% !`
+% ?`
+% for T2
+% -- gives -
+% --- gives --
+% -<hyphenchar> gives <hyphenchar>
+% common
+% <<
+% >>
+% ,,(LH:in new version only)
+% ''
+% ``
+%
+
+if known spanish_shriek: % for CM fonts only
+
+ ligtable "!": "`" =: spanish_shriek;
+ ligtable "?": "`" =: spanish_query;
+
+fi
+
+if genmode="ex": % for T2 only
+
+ %english quotes
+ ligtable
+ "`": "`"=:oct"020", %ec:``
+ oct"020" kern 2u#, %ec:``
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ ligtable
+ "'": "'"=:oct"021", %ec:''
+ oct"021" kern 2u#, %ec:''
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ %dashes
+ ligtable
+ "-": "-" =: oct"025", %endash
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+
+ ligtable
+ oct"025": "-"=: oct"026"; % "---" => cyremdash in t2 !!!
+
+fi
+
+
+% ligatures for cyrillic quotes
+if (altcoding and (ligs <> 0)) % for CM
+ or (genmode="ex"): % or if T2 started
+
+ beginligtable
+ labelchar ([ASCII"<"]);
+ setlig ([ASCII"<"],CYR_.flqq); % "<<"
+ endligtable;
+
+ beginligtable
+ labelchar ([ASCII">"]);
+ setlig ([ASCII">"],CYR_.frqq); % ">>"
+ endligtable;
+
+ beginligtable
+ labelchar ([ASCII","]);
+ setlig ([ASCII","],CYR_.baseqq); % ",,"
+ endligtable;
+
+fi % ligatures for cyrillic quotes
+
+k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning
+
+% kerning for T2 only
+if genmode="ex":
+
+ beginligtable
+ labelchar (boundarychar);
+ setkern [-kk#] ([oct"020"], %ec:``
+ [oct"021"], %ec:''
+ CYR_.baseqq,%t2:,,
+ [oct"055"], %-
+ [oct"140"], %`
+ [oct"047"]);%'
+ endligtable;
+
+ beginligtable
+ labelchar ([oct"020"]); %ec:``
+ setkern [2u#] ([oct"140"], %`
+ [oct"020"]);%ec:``
+ setkern [-kk#] (boundarychar);
+ endligtable;
+
+ beginligtable
+ labelchar ([oct"021"]); %ec:''
+ setkern [2u#] ([oct"047"], %'
+ [oct"021"]);%ec:''
+ setkern [-kk#] (boundarychar);
+ endligtable;
+
+fi % for T2 only
+
+
+% here is used full Cyrillic letter stuff for kerning
+ beginligtable
+ labelchar (CYR_.baseqq); %ec[oct"022"]:,,
+ if roman_ec:
+ setkern [2u#] ([oct"015"]); %ec:,
+ fi
+ if altcoding or roman_ec:
+ setkern [2u#] ([ASCII","]);
+ fi
+ if roman_ec:
+ labelchar ([oct"015"]);
+ fi
+ setkern [2u#] (CYR_.baseqq);%t2:,,
+ setkern [-kk#] (boundarychar);
+ if altcoding or roman_ec:
+ setkern [kkk#] ([ASCII"V"]);
+ setkern [kk#] ([ASCII"W"],
+ [ASCII"Y"]);
+ setkern [k#] ([ASCII"O"],
+ [ASCII"C"],
+ [ASCII"G"],
+ [ASCII"Q"]);
+ if not TITLEfont:
+ if ROMANfont:
+ setkern [-kkk#] ([ASCII"j"]);
+ setkern [u#] ([ASCII"g"]);
+ fi
+ if ROMANfont or SmallCapsfont:
+ setkern [u#] ([ASCII"y"]);
+ fi
+ setkern [kk#] ([ASCII"v"]);
+ setkern [-u#] ([ASCII"w"]);
+ fi
+ fi
+ setkern [-kk#] (CYR_.D);
+ setkern [kkk#] (CYR_.IZH,
+ CYR_.IZH_dgr,
+ CYR_.IZH_uml,
+ CYR_.IZH_ac);
+ setkern [kk#] (CYR_.Y,
+ CYR_.Y_hcrs,
+ CYR_.Y_bar,
+ CYR_.Y_ac,
+ CYR_.LAT_W);
+ setkern [kk#] (CYR_.U,
+ CYR_.U_shrt,
+ CYR_.U_bar,
+ CYR_.U_gr,
+ CYR_.U_ac,
+ CYR_.U_uml,
+ CYR_.U_dac,
+ CYR_.U_hat,
+ CYR_.U_tld,
+ CYR_.U_com);
+ setkern [k#] (CYR_.O,
+ CYR_.O_uml,
+ CYR_.O_lcom,
+ CYR_.O_bar,
+ CYR_.O_ac,
+ CYR_.F,
+ CYR_.OTLD,
+ CYR_.OTLD_uml,
+ CYR_.OTLD_bar,
+ CYR_.OTLD_ac,
+ CYR_.ABH_HA,
+ CYR_.LAT_Q,
+ CYR_.OMGA,
+ CYR_.OMGA_tlo,
+ CYR_.OT,
+ CYR_.PSI,
+ CYR_.FITA,
+ CYR_.OMGA_rnd,
+ CYR_.OO_cdot,
+ CYR_.OO_cddot,
+ CYR_.S,
+ CYR_.S_dsc,
+ CYR_.UKR_E,
+ CYR_.UKR_E_ac,
+ CYR_.KOPPA,
+ CYR_.VKOPPA);
+ if not TITLEfont:
+ if ROMANfont:
+ setkern [-kkk#] (CYR_.lat_j);
+ fi
+ if ROMANfont or SmallCapsfont:
+ setkern [-kk#] (CYR_.d);
+ setkern [u#] (CYR_.u,
+ CYR_.u_shrt,
+ CYR_.u_bar,
+ CYR_.u_gr,
+ CYR_.u_ac,
+ CYR_.u_uml,
+ CYR_.u_dac,
+ CYR_.u_hat,
+ CYR_.u_tld,
+ CYR_.u_com);
+ fi
+ setkern [-u#] (CYR_.lat_w);
+ setkern [kk#] (CYR_.izh,
+ CYR_.izh_dgr,
+ CYR_.izh_uml,
+ CYR_.izh_ac,
+ CYR_.lat_w,
+ CYR_.y,
+ CYR_.y_hcrs,
+ CYR_.y_bar,
+ CYR_.y_ac);
+ fi
+ endligtable;
+
+ beginligtable
+ labelchar (CYR_.frqq);%ec[oct"024"]:>>
+ setkern [kk#] ([ASCII"."],
+ [ASCII","]);
+ endligtable;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lwnligs.mf b/Master/texmf-dist/fonts/source/lh/base/lwnligs.mf
new file mode 100644
index 00000000000..ce7d9b745f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lwnligs.mf
@@ -0,0 +1,190 @@
+%
+% lwnligs.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% File with ligs for Washington encoding (for tt-fonts)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+% ligatures for cyrillic quotes
+beginligtable
+ labelchar ([ASCII"["]);
+ setlig ([ASCII"["],CYR_.flqq); % "<<"
+endligtable;
+
+beginligtable
+ labelchar ([ASCII"]"]);
+ setlig ([ASCII"]"],CYR_.frqq); % ">>"
+endligtable;
+% ligatures for cyrillic quotes
+
+beginligtable
+ labelchar (CYR_.D); setlig([ASCII "1"],CYR_.DJE);
+ setlig([ASCII "2"],CYR_.DZHE); setlig([ASCII "3"],CYR_.LAT_S);
+ setlig([ASCII "J"],CYR_.DJE); setlig([ASCII "j"],CYR_.DJE);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.L); setlig([ASCII "1"],CYR_.LJE);
+ setlig([ASCII "J"],CYR_.LJE); setlig([ASCII "j"],CYR_.LJE);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.Z); setlig([ASCII "1"],CYR_.ZH);
+ setlig([ASCII "H"],CYR_.ZH); setlig([ASCII "h"],CYR_.ZH);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.E); setlig([ASCII "0"],CYR_.YO);
+ setlig([ASCII "1"],CYR_.EREV); setlig([ASCII "2"],CYR_.UKR_E);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.S);
+ setlig([ASCII "H"],CYR_.SH); setlig([ASCII "h"],CYR_.SH);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.C); setlig([ASCII "1"],CYR_.TSHE);
+ setlig([ASCII "H"],CYR_.CH); setlig([ASCII "h"],CYR_.CH);
+endligtable;
+
+beginligtable
+ labelchar ( CYR_.K );
+ setlig([ASCII "H"],CYR_.H); setlig([ASCII "h"],CYR_.H);
+endligtable;
+
+beginligtable
+ labelchar ( CYR_.T );
+ setlig([ASCII "S"],CYR_.C); setlig([ASCII "s"],CYR_.C);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.d);
+ setlig([ASCII "1"],CYR_.dje); setlig([ASCII "2"],CYR_.dzhe);
+ setlig([ASCII "3"],CYR_.lat_s); setlig([ASCII "j"],CYR_.dje);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.l);
+ setlig([ASCII "1"],CYR_.lje); setlig([ASCII "j"],CYR_.lje);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.z); setlig([ASCII "1"],CYR_.zh);
+ setlig([ASCII "h"],CYR_.zh);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.e);
+ setlig([ASCII "0"],CYR_.yo); setlig([ASCII "1"],CYR_.erev);
+ setlig([ASCII "2"],CYR_.ukr_e);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.s);
+ setlig([ASCII "h"],CYR_.sh);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.c);
+ setlig([ASCII "1"],CYR_.tshe); setlig([ASCII "h"],CYR_.ch);
+endligtable;
+
+beginligtable
+ labelchar ( CYR_.k ); setlig([ASCII "h"],CYR_.h);
+endligtable;
+
+beginligtable
+ labelchar ( CYR_.t ); setlig([ASCII "s"],CYR_.c);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "6"]);
+ setlig([ASCII "h"],CYR_.SHCH); setlig([ASCII "H"],CYR_.SHCH);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "7"]);
+ setlig([ASCII "h"],CYR_.shch);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "I"]);
+ setlig([ASCII "0"],CYR_.I_shrt); setlig([ASCII "1"],CYR_.LAT_I);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "J"]);
+ setlig([ASCII "1"],CYR_.YA); setlig([ASCII "2"],CYR_.YU);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "N"]);
+ setlig([ASCII "0"],CYR_.No); setlig([ASCII "1"],CYR_.NJE);
+ setlig([ASCII "J"],CYR_.NJE); setlig([ASCII "j"],CYR_.NJE);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "P"]);
+ setlig([ASCII "1"],CYR_.SFTSN); setlig([ASCII "2"],CYR_.HRDSN);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "X"]);
+ setlig([ASCII "Q"],CYR_.SHCH); setlig([ASCII "q"],CYR_.SHCH);
+ setlig([ASCII "C"],[ASCII "6"]); setlig([ASCII "c"],[ASCII "6"]);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "Y"]);
+ setlig([ASCII "A"],CYR_.YA); setlig([ASCII "a"],CYR_.YA);
+ setlig([ASCII "U"],CYR_.YU); setlig([ASCII "u"],CYR_.YU);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "i"]);
+ setlig([ASCII "0"],CYR_.i_shrt); setlig([ASCII "1"],CYR_.lat_i);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "j"]);
+ setlig([ASCII "1"],CYR_.ya); setlig([ASCII "2"],CYR_.yu);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "n"]);
+ setlig([ASCII "1"],CYR_.nje); setlig([ASCII "j"],CYR_.nje);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "p"]);
+ setlig([ASCII "1"],CYR_.sftsn); setlig([ASCII "2"],CYR_.hrdsn);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "x"]);
+ setlig([ASCII "q"],CYR_.shch); setlig([ASCII "c"],[ASCII "7"]);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "y"]);
+ setlig([ASCII "a"],CYR_.ya); setlig([ASCII "u"],CYR_.yu);
+endligtable;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lxpseudo.mf b/Master/texmf-dist/fonts/source/lh/base/lxpseudo.mf
new file mode 100644
index 00000000000..aa7d9f921f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lxpseudo.mf
@@ -0,0 +1,105 @@
+%
+% lxpseudo.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% expseudo.mf (ec fonts) with another beginning :-)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% This file contains pseudoparameters which are not entered in the
+% parameter files, but are computed from the initial parameter set.
+% There are also ad hoc parameters needed only once, and scratch
+% parameters with different values at each occuerence (like |theta|).
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+% Diameters of dots
+%
+numeric idot_diam#,udot_diam#,pdot_diam#;
+idot_diam#=max(dot_size#,cap_curve#); % dot of letters `i' and `j'
+udot_diam#=max(dot_size#,cap_curve#); % umlaut dots
+pdot_diam#=if monospace: 5/4 fi\\ dot_size#; % punctuation dots
+
+
+% The following umlaut dot diameter is used inside |exbase.mf|:
+% dot_diam:=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+% Several symbols just use |dot_size|.
+
+% |heavy_hair| occurs in italic lowercase `e'. Since there are many
+% accented versions of it, it is declared once here
+
+vardef heavy_hair=hround .2[hair,stem] enddef;
+
+% |qvair| (quotes vair) for the french quotes
+
+vardef qvair=max(round(xvair),fine+epsilon) enddef;
+
+% |limit_dist| is used in |put_accent| and |put_cross|
+% (the value of |u| is changed by |mono_adjust|, hence the global setting)
+
+vardef limit_dist=5/4u enddef;
+
+% Height of lowercase umlaut, taken from csfonts
+% Changed again, since the |lowercase_umlaut| macro works differently
+
+numeric lc_trema_height#;
+% lc_trema_height# = min(cap_height#,9/7x_height#+.5max(dot_size#,cap_curve#));
+lc_trema_height# = min(cap_height#,9/7hi.x_height#+max(dot_size#,cap_curve#));
+
+
+% More parametrisations for accents from csaccent.mf (csfonts):
+
+numeric uc_acc_height, uc_acc_height#,
+ lc_acute_height, lc_acute_height#,
+ lc_hachek_height, lc_hachek_height#,
+ accent_u, accent_u#,
+ accent_thin,
+ uc_acc_shift, asc_acc_shift;
+if unknown circ_weight: circ_weight:=1; fi
+
+%uc_acc_height# = cap_height#+asc_height#-x_height#;
+uc_acc_height# = cap_height#+acc_height#;
+lc_acute_height# = asc_height#;
+lc_hachek_height# = hi.x_height#+acc_height#;
+accent_u# = u#; % unexpanded dimension unit
+
+vardef accent_thin = if thin_join > crisp: thin_join else: crisp+eps fi enddef;
+
+vardef uc_acc_shift = cap_height - x_height enddef;
+vardef asc_acc_shift = asc_height - x_height enddef;
+
+numeric cap_accent_height, cap_accent_height#;
+%cap_accent_height# = uc_acc_height#;
+cap_accent_height# = cap_height# + acc_height#;
+
+def pseudo_setup =
+ define_whole_blacker_pixels(idot_diam,udot_diam,pdot_diam);
+ define_whole_vertical_pixels(lc_trema_height);
+ define_whole_vertical_pixels(uc_acc_height,lc_acute_height,
+ lc_hachek_height);
+ define_pixels(accent_u);
+ define_whole_vertical_pixels(cap_accent_height);
+% LAST MINUTE EXTRA FONT SETUP
+%%% define_pixels prepare_pen
+if not serifs: fisp#:=1/3[fine#,crisp#]; define_whole_pixels(fisp);
+ prepare_pen fisp; fi
+if known ogonek_pen#:
+ define_whole_pixels(ogonek_pen); prepare_pen ogonek_pen;
+fi
+enddef;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lycyracc.mf b/Master/texmf-dist/fonts/source/lh/base/lycyracc.mf
new file mode 100644
index 00000000000..053856c787d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lycyracc.mf
@@ -0,0 +1,317 @@
+%
+% lycyracc.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% accents from txaccent.mf (tc fonts) + Cyrillic accents
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Accents for capital letters
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+% A dirty trick, better left unseen. |cap_height| and |cap_height#|
+% are restored at the end of this file.
+
+numeric saved_cap_height#; saved_cap_height#=cap_height#;
+cap_height#:=hi.x_height#;
+numeric saved_cap_height; saved_cap_height=cap_height;
+cap_height:=hi.x_height;
+
+%turn for this file: is_cap toggled by this value
+cyrcaph:=true;
+
+lhchar"Grave accent";
+cyrchar_twice(Agrave,9u#,x_height#,0); % |put_gravis| changes the height
+adjust_fit(0,0);
+put_gravis;
+repeat_once;
+endchar;
+
+lhchar"Acute accent"; % using acute from plfonts
+cyrchar_twice(Aacute,9u#,x_height#,0); % |put_accent| changes the height
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+put_accent;
+repeat_once;
+endchar;
+
+lhchar"Circumflex (hat) accent";
+cyrchar(Ahat,9u#,cap_accent_height#,0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+fi
+adjust_fit(0,0);
+uppercase_hat(.5w,0,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+lhchar"Tilde (squiggle) accent";
+cyrchar(Atilde,9u#,cap_accent_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+uppercase_tilde(0,0,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+lhchar"Umlaut (double dot) accent";
+cyrchar(Aumlaut,9u#,cap_accent_height#,0);
+adjust_fit(0,0);
+uppercase_umlaut(0,0,1,2,3,4);
+penlabels(1,2,3,4); endchar;
+
+lhchar"Double acute accent (Long Hungarian umlaut accent)";
+cyrchar_twice(Aacute_dbl,9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+endchar;
+
+lhchar"Scandinavian circle accent";
+cyrchar(Aring,13u#+.5width_adj#,cap_accent_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+y[-1]= cap_height+if hefty: .5 fi accent_gap;
+uppercase_circle(.5w,y[-1],1,2,3,4);
+penlabels(1,2,3,4); endchar;
+
+lhchar"Hachek (check) accent";
+cyrchar(Ahachek,9u#,cap_accent_height#,0);
+adjust_fit(0,0);
+uc_hachek_accent(.5w);
+endchar;
+
+lhchar"Breve accent";
+cyrchar(Abreve,9u#,cap_accent_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+uppercase_breve(.5w,0,1,2,3);
+penlabels(1,2,3); endchar;
+
+lhchar"Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+cyrchar(Abar,9u#,cap_accent_height#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+lhchar"Dot accent";
+cyrchar_twice(Adot,5u#,x_height#,0);
+adjust_fit(0,0);
+put_dot(tiny,max(dot_size#,cap_curve#));
+repeat_once;
+endchar;
+
+lhchar"Cedilla accent";
+cyrchar(Acedilla,8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+uppercase_cedilla(.5w,0,1,2,3,4,5);
+penlabels(1,2,3,4,5); endchar;
+
+lhchar"Ogonek";
+cyrchar(Aogonek,5u#,0,desc_depth#);
+italcorr 0;
+adjust_fit(0,0);
+%the_ogonek(.5w,0,1,2,3);
+% polish-like "easy_ogonek" instead of Computer Modern "the_ogonek"
+def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+enddef;
+% |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ogonek_pos=(.5w if not serifs: +.5stem if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+easy_ogonek(the_pen, 1,2,3); % ogonek
+penlabels(1,2,3); endchar;
+
+%
+% differs from lowercase form
+%
+lhchar "Cyrillic accent Ahcross - horisontal cross";
+cyrchar(Ahcross,7u#,cap_height#,desc_depth#);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+% hcross
+pickup crisp.nib; numeric outer_jut;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5cap_stem+if serifs: max(limit_dist,cap_jut) else: 1.8u fi;
+pos1(bar,90); pos2(bar,90);
+top y1r=top y2r=vround (.52h+.5bar)+eps;
+x1=.5w-outer_jut; x2=.5w+outer_jut;
+filldraw stroke z1e--z2e; % cross bar
+endchar;
+
+% differs from lowercase form
+lhchar "Cyrillic accent Avcross - vertical cross";
+cyrchar(Avcross,5u#,cap_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+% vcross
+if serifs: pickup crisp.nib; else: pickup fine.nib; fi
+pos1(bar,0); pos2(bar,0);
+lft x1l=lft x2l=hround(.5w-.5bar);
+top y2-bot y1=.5cap_height; .5[y1,y2]=.52h;
+filldraw stroke z1e--z2e;
+endchar;
+
+lhchar "Cyrillic accent Aacute_cross - diagonal cross"; % cross from pl_ml (plfonts)
+cyrchar_twice(Aacute_cross,7u#,cap_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric unbalance,outer_jut;
+unbalance=if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5cap_stem+if serifs: max(limit_dist,cap_jut) else: 1.8u fi;
+put_cyrcross(.5w,0,outer_jut,unbalance*outer_jut);
+repeat_once;
+endchar;
+
+lhchar "Cyrillic accent Agrave_cross - diagonal cross"; % cross from pl_ml (plfonts)
+cyrchar_twice(Agrave_cross,7u#,cap_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric unbalance,outer_jut;
+unbalance=if monospace: 1 else: 1.1 fi;
+% some funny fonts have an extremally small |jut|:
+outer_jut=.5cap_stem+if serifs: max(limit_dist,cap_jut) else: 1.8u fi;
+put_cyrcross(.5w,0,-unbalance*outer_jut,-outer_jut);
+repeat_once;
+endchar;
+
+lhchar"Cyrillic accent Agrave_dbl - double grave";
+cyrchar_twice(Agrave_dbl,9u#,x_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_gravis; hpos_corr=1.5u; put_gravis; fi
+repeat_once;
+endchar;
+
+lhchar "Cyrillic accent Acyrbreve - cyrillic breve";
+cyrchar(Acyrbreve,9u#,cap_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+cbreve(.5w,0, 1,2,3,4,5,6,7);
+endchar;
+
+lhchar"Cyrillic tie accent"; % centered
+cyrchar(Atie,9u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=w-rt x3r=hround(2u-.5vair); x2=.5w;
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+lhchar "Cyrillic frown accent";
+cyrchar(Afrown,9u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+%!!! uppercase_breve flipped
+x_center:=.5w; y_move:=0; _one:=1; _two:=2; _three:=3;
+%
+pickup crisp.nib; pos[_one](vair,-180);
+pos[_three](vair,0);
+top y[_two]r=cap_height + acc_height;
+x[_two]=hround x_center;
+x[_two]-rt x[_one]l
+ =(lft x[_three]l)-x[_two]
+ =hround (2.5u if monospace: /expansion_factor fi -.5vair);
+numeric mid_thickness;
+mid_thickness=max(crisp.breadth,vround min(1/3[vair,stem],.5acc_height));%!!!
+pos[_two](mid_thickness,90);
+% |accent_gap| SHOULD be defined by the acute accent, before this macro runs
+if unknown accent_gap: % accent_gap emulation
+ if serifs:
+ y[_two]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[_two]'+.5mid_stem)-hi.x_height;
+ else:
+ top y[_two]'=h-vround(2/3[h,hi.x_height]);
+ accent_gap=a_ht-y[_two]'-hi.x_height;
+ fi
+fi
+bot y[_one]=bot y[_three]=cap_height + if hefty: .5 fi accent_gap;
+filldraw stroke z[_one]e{up}...z[_two]e{right}...
+ {down}z[_three]e; % stroke
+%
+penlabels(1,2,3); endchar;
+
+lhchar "Cyrillic accent Abreve_long - long breve"; %accent width enlarged by 3u
+cyrchar(Abreve_long,12u#,x_height#+acc_height#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+x_center:=.5w; y_move:=0;
+_one:=1; _two:=2; _three:=3;
+pickup crisp.nib; pos[_one](vair,-180);
+pos[_three](vair,0);
+top y[_one]=top y[_three]=h;
+x[_two]=x_center;
+lft x[_one]r=hround(x[_two]-4.75u%!2.5u
+ if monospace: /expansion_factor fi -0.5vair);
+rt x[_three]r=hround(x[_two]+4.75u%!2.5u
+ if monospace: /expansion_factor fi +0.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos[_two](mid_thickness,-90);
+bot y[_two]r=
+ vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z[_one]e{down}...
+ z[_two]e{right}...{up}z[_three]e; % stroke
+endchar;
+
+lhchar "Cyrillic accent Abar_long - long bar"; %accent width enlarged by 3u
+cyrchar(Abar_long,12u#,lc_trema_height#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround .5u;%!1.25u
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+%
+% outsiders
+%
+
+lhchar "Cyrillic accent Adesc_up - uppercase descender";
+cyrchar(Adesc_up,5u#,pdot_diam#,cap_sbeak#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem);
+top y1=h; bot y2=0;
+inner_jut:=.5cap_stem+eps;
+save bracket; bracket:=0;
+numeric left_jut;
+left_jut=if serifs:
+ max(limit_dist,if monospace: 1.414cap_jut else: 1.1cap_jut fi)
+ else: hround (r-rt x2r-.65u) fi;
+cyr_serif(2,1,a,1/3,beak_darkness,left_jut,beak_jut); % right descender
+endchar;
+
+% Restore original values of |cap_height| and |cap_height#|
+cap_height:=saved_cap_height; numeric saved_cap_height;
+cap_height#:=saved_cap_height#; numeric saved_cap_height#;
+
+cyrcaph:=false; %turned back
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/lypseudo.mf b/Master/texmf-dist/fonts/source/lh/base/lypseudo.mf
new file mode 100644
index 00000000000..6deb4ac793d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/lypseudo.mf
@@ -0,0 +1,76 @@
+%
+% lypseudo.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% txpseudo.mf (ec fonts) with another beginning :-)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+% This file contains pseudoparameters which are not entered in the
+% parameter files, but are computed from the initial parameter set.
+% There are also ad hoc parameters needed only once, and scratch
+% parameters with different values at each occuerence (like |theta|).
+
+%
+% Diameters of dots
+%
+numeric idot_diam#,udot_diam#,pdot_diam#;
+idot_diam#=max(dot_size#,cap_curve#); % dot of letters `i' and `j'
+udot_diam#=max(dot_size#,cap_curve#); % umlaut dots
+pdot_diam#=if monospace: 5/4 fi\\ dot_size#; % punctuation dots
+
+% |limit_dist| is used in |put_cross|
+% (the value of |u| is changed by |mono_adjust|, hence the global setting)
+
+vardef limit_dist=5/4u enddef;
+
+% More parametrisations for accents from csaccent.mf (csfonts):
+
+numeric uc_acc_height, uc_acc_height#,
+ lc_acute_height, lc_acute_height#,
+ lc_hachek_height, lc_hachek_height#,
+ accent_u, accent_u#,
+ accent_thin,
+ uc_acc_shift, asc_acc_shift;
+if unknown circ_weight: circ_weight:=1; fi
+
+uc_acc_height# = cap_height#+asc_height#-hi.x_height#;
+lc_acute_height# = asc_height#;
+lc_hachek_height# = hi.x_height#+acc_height#;
+accent_u# = u#; % unexpanded dimension unit
+
+vardef accent_thin = if thin_join > crisp: thin_join else: crisp+eps fi enddef;
+
+vardef uc_acc_shift = cap_height - hi.x_height enddef;
+vardef asc_acc_shift = asc_height - hi.x_height enddef;
+
+% Height of floating accents for capitals (note, that TeX raises them
+% by |uc_acc_shift|)
+
+numeric cap_accent_height, cap_accent_height#;
+cap_accent_height# = acc_height# + hi.x_height#;
+
+def pseudo_setup=
+ define_whole_blacker_pixels(idot_diam,udot_diam,pdot_diam);
+ define_whole_vertical_pixels(uc_acc_height,lc_acute_height,
+ lc_hachek_height);
+ define_pixels(accent_u);
+ define_whole_vertical_pixels(cap_accent_height);
+enddef;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/base/nodraw.mf b/Master/texmf-dist/fonts/source/lh/base/nodraw.mf
new file mode 100644
index 00000000000..ee9ee949671
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/base/nodraw.mf
@@ -0,0 +1,77 @@
+%
+% nodraw.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=1
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Disable almost all of cmbase drawing commands
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+LHver_check(3,4); % like |version_check| in ec
+
+def addto text t = enddef; % Draw nothing
+def filldraw text t = enddef;
+%vardef serif(suffix $,$$,@) % serif at |z$| for stroke from |z$$|
+% (expr darkness,jut) suffix modifier = enddef;
+def dish_serif text t = enddef;
+%def nodish_serif text t = enddef;
+vardef sloped_serif.l(suffix $,$$,@)(expr darkness,jut,drop) = enddef;
+vardef sloped_serif.r(suffix $,$$,@)(expr darkness,jut,drop) = enddef;
+vardef arm(suffix $,$$,@)(expr darkness,jut) = % arm from |z$| to |z$$|
+ x@0=good.x(x$$r-jut); y@0=y$r;
+ if serifs: y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0); z@2=.5[z$l,z@1]; fi
+ penlabels(@0,@1,@2); enddef;
+def bulb(suffix $,$$,$$$) = z$$$r=z$$r; enddef;
+def v_bulb(suffix $,$$)= enddef;
+def dot(suffix $,$$) = enddef;
+def comma(suffix $,@)(expr dot_size,jut,depth) = enddef;
+def ammoc(suffix $,@)(expr dot_size,jut,depth) = enddef;
+def f_stroke(suffix $,$$,@,left_serif,right_serif)(expr left_jut,right_jut)=
+ enddef;
+def h_stroke(suffix $,@,@@,$$) =
+ penpos$$(x@@r-x@@l,0); x$$=x@@; bot y$$=0;
+ y@@=1/3[bar_height,x_height]; enddef;
+def hook_out(suffix $,$$,$$$) suffix modifier= % |x$| and |x$$$| (only) are known
+ pos$(stem,0); pos$$(vair,90); x$$$:=hround(x$$$+.5hair-eps)-.5hair; pos$$$(hair,180);
+ y$=1/4x_height; bot y$$l=-oo; y$$$=1/3x_height;
+ if skewed.modifier: x$$=x$+1.25u; else: x$$=x$+1.5u; fi enddef; % hook
+def hook_in(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ x$:=hround(x$-.5hair)+.5hair; pos$(hair,180); pos$$(vair,90); pos$$$(stem,0);
+ y$=2/3x_height; top y$$r=x_height+oo; y$$$=3/4x_height;
+ if skewed.modifier: x$$=x$$$-1.25u; else: x$$=x$$$-1.5u; fi enddef; % hook
+%def ital_arch(suffix $,$$,$$$) = enddef;
+def draw_circle = enddef;
+def left_paren(expr min_breadth, max_breadth) = enddef;
+def right_paren(expr min_breadth, max_breadth) = enddef;
+def left_bracket(expr breadth,do_top,do_bot) = enddef;
+def right_bracket(expr breadth,do_top,do_bot) = enddef;
+def left_curly(expr min_breadth, max_breadth) = enddef;
+def right_curly(expr min_breadth, max_breadth) = enddef;
+def left_angle(expr breadth) = enddef;
+def right_angle(expr breadth) = enddef;
+def big_slash(expr breadth) = enddef;
+def big_blash(expr breadth) = enddef;
+def big_sqrt = enddef;
+def big_hat = enddef;
+def big_tilde = enddef;
+def labels text t = enddef;
+def penlabels text t = enddef;
+
+vardef bar_stroke(expr left_jut,right_jut) = enddef;
+vardef cyr_serif(suffix $,$$,@) % serif at |z$| for stroke from |z$$|
+ (expr darkness,beak_darkness,jut,beak_jut) =
+enddef;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/ilhcsc10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/ilhcsc10.mf
new file mode 100644
index 00000000000..85786a4c0f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/ilhcsc10.mf
@@ -0,0 +1,7 @@
+% This is ilhcsc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/ilhtt8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/ilhtt8.mf
new file mode 100644
index 00000000000..1ffcaa04eac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/ilhtt8.mf
@@ -0,0 +1,7 @@
+% This is ilhtt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/illhss8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/illhss8.mf
new file mode 100644
index 00000000000..2400cc13d72
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/illhss8.mf
@@ -0,0 +1,7 @@
+% This is illhss8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=4 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/illhssb8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/illhssb8.mf
new file mode 100644
index 00000000000..3b3ba635583
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/illhssb8.mf
@@ -0,0 +1,7 @@
+% This is illhssb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=4 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/illhssi8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/illhssi8.mf
new file mode 100644
index 00000000000..54d652a7a1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/illhssi8.mf
@@ -0,0 +1,7 @@
+% This is illhssi8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=4 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr10.mf
new file mode 100644
index 00000000000..114d6ce21b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr10.mf
@@ -0,0 +1,6 @@
+% This is lhbr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr17.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr17.mf
new file mode 100644
index 00000000000..7aeaeccd844
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr17.mf
@@ -0,0 +1,6 @@
+% This is lhbr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr8.mf
new file mode 100644
index 00000000000..feec49dcfa1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr8.mf
@@ -0,0 +1,6 @@
+% This is lhbr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr9.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr9.mf
new file mode 100644
index 00000000000..3398af350ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbr9.mf
@@ -0,0 +1,6 @@
+% This is lhbr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrbx10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrbx10.mf
new file mode 100644
index 00000000000..decd3f0be1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrbx10.mf
@@ -0,0 +1,6 @@
+% This is lhbrbx10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl10.mf
new file mode 100644
index 00000000000..09e0d670452
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl10.mf
@@ -0,0 +1,6 @@
+% This is lhbrsl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl17.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl17.mf
new file mode 100644
index 00000000000..d748716fd1d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl17.mf
@@ -0,0 +1,6 @@
+% This is lhbrsl17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl8.mf
new file mode 100644
index 00000000000..c2c890098ec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl8.mf
@@ -0,0 +1,6 @@
+% This is lhbrsl8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl9.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl9.mf
new file mode 100644
index 00000000000..af79f872c2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhbrsl9.mf
@@ -0,0 +1,6 @@
+% This is lhbrsl9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhccsc10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhccsc10.mf
new file mode 100644
index 00000000000..2e7867dcd65
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhccsc10.mf
@@ -0,0 +1,7 @@
+% This is lhccsc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcodes.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcodes.mf
new file mode 100644
index 00000000000..85ffe5a1958
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcodes.mf
@@ -0,0 +1,87 @@
+% This is lhcodes.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+CYR_.A := hex"80";
+CYR_.a := hex"a0";
+CYR_.B := hex"81";
+CYR_.b := hex"a1";
+CYR_.V := hex"82";
+CYR_.v := hex"a2";
+CYR_.G := hex"83";
+CYR_.g := hex"a3";
+CYR_.D := hex"84";
+CYR_.d := hex"a4";
+CYR_.E := hex"85";
+CYR_.e := hex"a5";
+CYR_.ZH := hex"86";
+CYR_.zh := hex"a6";
+CYR_.Z := hex"87";
+CYR_.z := hex"a7";
+CYR_.I := hex"88";
+CYR_.i := hex"a8";
+CYR_.I_shrt := hex"89";
+CYR_.i_shrt := hex"a9";
+CYR_.K := hex"8a";
+CYR_.k := hex"aa";
+CYR_.L := hex"8b";
+CYR_.l := hex"ab";
+CYR_.M := hex"8c";
+CYR_.m := hex"ac";
+CYR_.N := hex"8d";
+CYR_.n := hex"ad";
+CYR_.O := hex"8e";
+CYR_.o := hex"ae";
+CYR_.P := hex"8f";
+CYR_.p := hex"af";
+CYR_.R := hex"90";
+CYR_.r := hex"e0";
+CYR_.S := hex"91";
+CYR_.s := hex"e1";
+CYR_.T := hex"92";
+CYR_.t := hex"e2";
+CYR_.U := hex"93";
+CYR_.u := hex"e3";
+CYR_.F := hex"94";
+CYR_.f := hex"e4";
+CYR_.H := hex"95";
+CYR_.h := hex"e5";
+CYR_.C := hex"96";
+CYR_.c := hex"e6";
+CYR_.CH := hex"97";
+CYR_.ch := hex"e7";
+CYR_.SH := hex"98";
+CYR_.sh := hex"e8";
+CYR_.SHCH := hex"99";
+CYR_.shch := hex"e9";
+CYR_.HRDSN := hex"9a";
+CYR_.hrdsn := hex"ea";
+CYR_.ERY := hex"9b";
+CYR_.ery := hex"eb";
+CYR_.SFTSN := hex"9c";
+CYR_.sftsn := hex"ec";
+CYR_.EREV := hex"9d";
+CYR_.erev := hex"ed";
+CYR_.YU := hex"9e";
+CYR_.yu := hex"ee";
+CYR_.YA := hex"9f";
+CYR_.ya := hex"ef";
+CYR_.YO := hex"f0";
+CYR_.yo := hex"f1";
+CYR_.LAT_I := hex"f6";
+CYR_.lat_i := hex"f7";
+CYR_.G_up := hex"f2";
+CYR_.g_up := hex"f3";
+CYR_.UKR_I := hex"f8";
+CYR_.ukr_i := hex"f9";
+CYR_.U_shrt := hex"fa";
+CYR_.u_shrt := hex"fb";
+CYR_.UKR_E := hex"f4";
+CYR_.ukr_e := hex"f5";
+CYR_.dash := hex"c4";
+CYR_.No := hex"fc";
+CYR_.currency := hex"c5";
+CYR_.baseqq := hex"ff";
+CYR_.flqq := hex"fd";
+CYR_.frqq := hex"fe";
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr10.mf
new file mode 100644
index 00000000000..40e7aa708bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr10.mf
@@ -0,0 +1,7 @@
+% This is lhcr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr5.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr5.mf
new file mode 100644
index 00000000000..262c0003bae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr5.mf
@@ -0,0 +1,7 @@
+% This is lhcr5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr6.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr6.mf
new file mode 100644
index 00000000000..3fb02019815
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr6.mf
@@ -0,0 +1,7 @@
+% This is lhcr6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr7.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr7.mf
new file mode 100644
index 00000000000..710eebf080c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr7.mf
@@ -0,0 +1,7 @@
+% This is lhcr7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr8.mf
new file mode 100644
index 00000000000..f5c8babc796
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr8.mf
@@ -0,0 +1,7 @@
+% This is lhcr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr9.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr9.mf
new file mode 100644
index 00000000000..70c37152c0d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcr9.mf
@@ -0,0 +1,7 @@
+% This is lhcr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcsl10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcsl10.mf
new file mode 100644
index 00000000000..a582491c286
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcsl10.mf
@@ -0,0 +1,7 @@
+% This is lhcsl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcsl9.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcsl9.mf
new file mode 100644
index 00000000000..13f51240b13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcsl9.mf
@@ -0,0 +1,7 @@
+% This is lhcsl9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcslc9.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcslc9.mf
new file mode 100644
index 00000000000..96e91dff167
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcslc9.mf
@@ -0,0 +1,7 @@
+% This is lhcslc9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcti10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcti10.mf
new file mode 100644
index 00000000000..4db2347c24a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhcti10.mf
@@ -0,0 +1,7 @@
+% This is lhcti10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhliker.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhliker.mf
new file mode 100644
index 00000000000..9ecb744dbf2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhliker.mf
@@ -0,0 +1,1197 @@
+% This is lhliker.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+
+beginligtable
+ labelchar (
+ CYR_.HRDSN
+ ,CYR_.SFTSN
+ );
+ setkern [k#] (
+ CYR_.ZH
+ ,CYR_.H
+ );
+ labelchar (
+ CYR_.A
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.CH
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ );
+ setkern [kk#] (
+ CYR_.ch
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.k
+ ,CYR_.n
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.ukr_i
+ ,CYR_.lat_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+if concrete:
+
+ beginligtable
+ labelchar ( CYR_.D );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.CH
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.t
+ ,CYR_.hrdsn
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.k
+ ,CYR_.n
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.ukr_i
+ ,CYR_.lat_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.L );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.CH
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.t
+ ,CYR_.hrdsn
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.k
+ ,CYR_.n
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.ukr_i
+ ,CYR_.lat_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+fi
+
+beginligtable
+ labelchar ( CYR_.K );
+ labelchar (
+ CYR_.ZH
+ ,CYR_.H
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ else:
+ setkern [k#] (
+ CYR_.ch
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ );
+ fi
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.YU
+ ,CYR_.EREV
+ );
+ setkern [k#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ ,CYR_.ZH
+ ,CYR_.H
+ ,CYR_.U
+ ,CYR_.U_shrt
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.u_shrt
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar ( CYR_.T );
+ labelchar (
+ CYR_.G
+ );
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.u_shrt
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.f
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.g_up
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.G_up
+ );
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.u_shrt
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.f
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.g_up
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.A
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ fi
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.g_up
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.R
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.D
+ ,CYR_.L
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.LAT_I
+ ,CYR_.UKR_I
+ );
+ setkern [-k#] (
+ CYR_.LAT_I
+ ,CYR_.UKR_I
+ );
+ endligtable;
+
+if TITLEfont: endinput \\ fi;
+
+if SmallCapsfont:
+
+ u#:=lower.u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+
+
+ beginligtable
+ labelchar (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ fi
+ if SmallCapsfont:
+ fi
+ if SmallCapsfont:
+ fi
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ );
+ endligtable;
+
+ if concrete:
+
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.zh
+ ,CYR_.h
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.erev
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.u_shrt
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.g
+ ,CYR_.g_up
+ ,CYR_.r
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.u_shrt
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.lat_i
+ ,CYR_.ukr_i
+ );
+ setkern [-k#] (
+ CYR_.lat_i
+ ,CYR_.ukr_i
+ );
+ endligtable;
+
+else:
+
+ if ROMANfont:
+
+
+ beginligtable
+ labelchar (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.u
+ ,CYR_.u_shrt
+ if serifs:
+ fi
+ );
+ endligtable;
+
+ if concrete:
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ );
+ endligtable;
+
+ fi
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.g
+ ,CYR_.g_up
+ if kapitel:
+ ,CYR_.r
+ fi
+ );
+ if serifs:
+ setkern [k#] (
+ CYR_.a
+ );
+ fi
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ya
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.zh
+ ,CYR_.h
+ );
+ setkern [k#] (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.lat_i
+ );
+ setkern [-k#] (
+ CYR_.ukr_i
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.ukr_i
+ );
+ setkern [-k#] (
+ CYR_.lat_i
+ );
+ setkern [-kk#] (
+ CYR_.ukr_i
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.u_shrt
+ );
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.ya
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ );
+ setkern [-u#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+ else:
+
+
+ beginligtable
+ labelchar ( CYR_.e );
+ labelchar (
+ CYR_.yo
+ );
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.g_up
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.g_up
+ );
+ setkern [kkk#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.g_up
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.ukr_i
+ );
+ labelchar (
+ CYR_.lat_i
+ );
+ setkern [-k#] (
+ CYR_.ukr_i
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.g_up
+ ,CYR_.hrdsn
+ );
+ setkern [kk#] (
+ CYR_.ch
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar (
+ CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ fi
+ if SmallCapsfont:
+ fi
+ if SmallCapsfont:
+ fi
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ if ROMANfont:
+ setkern [-u#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ );
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ );
+ if concrete:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.g_up
+ ,CYR_.hrdsn
+ );
+ fi
+ setkern [kk#] (
+ CYR_.ch
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.f
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.s );
+ labelchar (
+ CYR_.o
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.r
+ ,CYR_.f
+ ,CYR_.erev
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.g_up
+ );
+ fi
+ endligtable;
+
+fi
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhsltl10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhsltl10.mf
new file mode 100644
index 00000000000..6d7bd755f68
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhsltl10.mf
@@ -0,0 +1,6 @@
+% This is lhsltl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/lhtl10.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhtl10.mf
new file mode 100644
index 00000000000..4126b52b632
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/lhtl10.mf
@@ -0,0 +1,6 @@
+% This is lhtl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/llhss8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/llhss8.mf
new file mode 100644
index 00000000000..bbefe708596
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/llhss8.mf
@@ -0,0 +1,7 @@
+% This is llhss8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/llhssb8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/llhssb8.mf
new file mode 100644
index 00000000000..577a78a0e6e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/llhssb8.mf
@@ -0,0 +1,7 @@
+% This is llhssb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-lcy/llhssi8.mf b/Master/texmf-dist/fonts/source/lh/lh-lcy/llhssi8.mf
new file mode 100644
index 00000000000..663178c989e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-lcy/llhssi8.mf
@@ -0,0 +1,7 @@
+% This is llhssi8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnss8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnss8.mf
new file mode 100644
index 00000000000..23a9b1acd17
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnss8.mf
@@ -0,0 +1,7 @@
+% This is ilwnss8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=4 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnssb8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnssb8.mf
new file mode 100644
index 00000000000..bbd9e5dc022
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnssb8.mf
@@ -0,0 +1,7 @@
+% This is ilwnssb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=4 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnssi8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnssi8.mf
new file mode 100644
index 00000000000..3d06ed00815
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/ilwnssi8.mf
@@ -0,0 +1,7 @@
+% This is ilwnssi8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=4 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/iwncsc10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/iwncsc10.mf
new file mode 100644
index 00000000000..16c8d42fb00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/iwncsc10.mf
@@ -0,0 +1,7 @@
+% This is iwncsc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/iwntt8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/iwntt8.mf
new file mode 100644
index 00000000000..02dff70aa4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/iwntt8.mf
@@ -0,0 +1,7 @@
+% This is iwntt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/lwnss8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/lwnss8.mf
new file mode 100644
index 00000000000..5296b05404a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/lwnss8.mf
@@ -0,0 +1,7 @@
+% This is lwnss8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/lwnssb8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/lwnssb8.mf
new file mode 100644
index 00000000000..052f3f1bee0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/lwnssb8.mf
@@ -0,0 +1,7 @@
+% This is lwnssb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/lwnssi8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/lwnssi8.mf
new file mode 100644
index 00000000000..ddf6ca479d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/lwnssi8.mf
@@ -0,0 +1,7 @@
+% This is lwnssi8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr10.mf
new file mode 100644
index 00000000000..55c76b74f7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr10.mf
@@ -0,0 +1,6 @@
+% This is wnbr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr17.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr17.mf
new file mode 100644
index 00000000000..e921b2f71af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr17.mf
@@ -0,0 +1,6 @@
+% This is wnbr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr8.mf
new file mode 100644
index 00000000000..04e4397f5d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr8.mf
@@ -0,0 +1,6 @@
+% This is wnbr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr9.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr9.mf
new file mode 100644
index 00000000000..68df450071a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbr9.mf
@@ -0,0 +1,6 @@
+% This is wnbr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrbx10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrbx10.mf
new file mode 100644
index 00000000000..f115cb90d16
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrbx10.mf
@@ -0,0 +1,6 @@
+% This is wnbrbx10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl10.mf
new file mode 100644
index 00000000000..9758e80a9bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl10.mf
@@ -0,0 +1,6 @@
+% This is wnbrsl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl17.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl17.mf
new file mode 100644
index 00000000000..1e326bd1dde
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl17.mf
@@ -0,0 +1,6 @@
+% This is wnbrsl17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl8.mf
new file mode 100644
index 00000000000..86879e80567
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl8.mf
@@ -0,0 +1,6 @@
+% This is wnbrsl8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl9.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl9.mf
new file mode 100644
index 00000000000..9a3271e4ca5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnbrsl9.mf
@@ -0,0 +1,6 @@
+% This is wnbrsl9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnccsc10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnccsc10.mf
new file mode 100644
index 00000000000..4ca28ece2a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnccsc10.mf
@@ -0,0 +1,7 @@
+% This is wnccsc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncodes.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncodes.mf
new file mode 100644
index 00000000000..170d0cd5b6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncodes.mf
@@ -0,0 +1,103 @@
+% This is wncodes.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+CYR_.A := hex"41";
+CYR_.a := hex"61";
+CYR_.B := hex"42";
+CYR_.b := hex"62";
+CYR_.V := hex"56";
+CYR_.v := hex"76";
+CYR_.G := hex"47";
+CYR_.g := hex"67";
+CYR_.D := hex"44";
+CYR_.d := hex"64";
+CYR_.E := hex"45";
+CYR_.e := hex"65";
+CYR_.ZH := hex"11";
+CYR_.zh := hex"19";
+CYR_.Z := hex"5a";
+CYR_.z := hex"7a";
+CYR_.I := hex"49";
+CYR_.i := hex"69";
+CYR_.I_shrt := hex"12";
+CYR_.i_shrt := hex"1a";
+CYR_.K := hex"4b";
+CYR_.k := hex"6b";
+CYR_.L := hex"4c";
+CYR_.l := hex"6c";
+CYR_.M := hex"4d";
+CYR_.m := hex"6d";
+CYR_.N := hex"4e";
+CYR_.n := hex"6e";
+CYR_.O := hex"4f";
+CYR_.o := hex"6f";
+CYR_.P := hex"50";
+CYR_.p := hex"70";
+CYR_.R := hex"52";
+CYR_.r := hex"72";
+CYR_.S := hex"53";
+CYR_.s := hex"73";
+CYR_.T := hex"54";
+CYR_.t := hex"74";
+CYR_.U := hex"55";
+CYR_.u := hex"75";
+CYR_.F := hex"46";
+CYR_.f := hex"66";
+CYR_.H := hex"48";
+CYR_.h := hex"68";
+CYR_.C := hex"43";
+CYR_.c := hex"63";
+CYR_.CH := hex"51";
+CYR_.ch := hex"71";
+CYR_.SH := hex"58";
+CYR_.sh := hex"78";
+CYR_.SHCH := hex"57";
+CYR_.shch := hex"77";
+CYR_.HRDSN := hex"5f";
+CYR_.hrdsn := hex"7f";
+CYR_.ERY := hex"59";
+CYR_.ery := hex"79";
+CYR_.SFTSN := hex"5e";
+CYR_.sftsn := hex"7e";
+CYR_.EREV := hex"03";
+CYR_.erev := hex"0b";
+CYR_.YU := hex"10";
+CYR_.yu := hex"18";
+CYR_.YA := hex"17";
+CYR_.ya := hex"1f";
+CYR_.YO := hex"13";
+CYR_.yo := hex"1b";
+CYR_.DJE := hex"06";
+CYR_.dje := hex"0e";
+CYR_.TSHE := hex"07";
+CYR_.tshe := hex"0f";
+CYR_.LAT_I := hex"04";
+CYR_.lat_i := hex"0c";
+CYR_.LAT_J := hex"4a";
+CYR_.lat_j := hex"6a";
+CYR_.LJE := hex"01";
+CYR_.lje := hex"09";
+CYR_.NJE := hex"00";
+CYR_.nje := hex"08";
+CYR_.LAT_S := hex"16";
+CYR_.lat_s := hex"1e";
+CYR_.DZHE := hex"02";
+CYR_.dzhe := hex"0a";
+CYR_.YAT := hex"23";
+CYR_.yat := hex"2b";
+CYR_.IZH := hex"14";
+CYR_.izh := hex"1c";
+CYR_.UKR_E := hex"05";
+CYR_.ukr_e := hex"0d";
+CYR_.Aacute := hex"26";
+CYR_.Aumlaut := hex"20";
+CYR_.Abreve := hex"40";
+CYR_.Acyrbreve := hex"24";
+CYR_.i_dotl := hex"3d";
+CYR_.No := hex"7d";
+CYR_.flqq := hex"3c";
+CYR_.frqq := hex"3e";
+CYR_.FITA := hex"15";
+CYR_.fita := hex"1d";
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr10.mf
new file mode 100644
index 00000000000..e4d3f4c214a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr10.mf
@@ -0,0 +1,7 @@
+% This is wncr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr5.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr5.mf
new file mode 100644
index 00000000000..45ef606df38
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr5.mf
@@ -0,0 +1,7 @@
+% This is wncr5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr6.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr6.mf
new file mode 100644
index 00000000000..0d89a230c73
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr6.mf
@@ -0,0 +1,7 @@
+% This is wncr6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr7.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr7.mf
new file mode 100644
index 00000000000..2a8520f5357
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr7.mf
@@ -0,0 +1,7 @@
+% This is wncr7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr8.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr8.mf
new file mode 100644
index 00000000000..aa8b7bb32bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr8.mf
@@ -0,0 +1,7 @@
+% This is wncr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr9.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr9.mf
new file mode 100644
index 00000000000..88fd6cd5680
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncr9.mf
@@ -0,0 +1,7 @@
+% This is wncr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncsl10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncsl10.mf
new file mode 100644
index 00000000000..bcfac2c8dfe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncsl10.mf
@@ -0,0 +1,7 @@
+% This is wncsl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncsl9.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncsl9.mf
new file mode 100644
index 00000000000..cab9f41bc07
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncsl9.mf
@@ -0,0 +1,7 @@
+% This is wncsl9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncslc9.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncslc9.mf
new file mode 100644
index 00000000000..a327ad049b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncslc9.mf
@@ -0,0 +1,7 @@
+% This is wncslc9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wncti10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncti10.mf
new file mode 100644
index 00000000000..494535f2c69
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wncti10.mf
@@ -0,0 +1,7 @@
+% This is wncti10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnliker.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnliker.mf
new file mode 100644
index 00000000000..54be45ccd61
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnliker.mf
@@ -0,0 +1,1543 @@
+% This is wnliker.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+beginligtable
+ labelchar ([ASCII"["]);
+ setlig ([ASCII"["],CYR_.flqq); endligtable;
+
+beginligtable
+ labelchar ([ASCII"]"]);
+ setlig ([ASCII"]"],CYR_.frqq); endligtable;
+
+if not concrete:
+ beginligtable
+ labelchar (CYR_.D);
+ setlig([ASCII "1"],CYR_.DJE);
+ setlig([ASCII "2"],CYR_.DZHE); setlig([ASCII "3"],CYR_.LAT_S);
+ setlig([ASCII "J"],CYR_.DJE); setlig([ASCII "j"],CYR_.DJE);
+ endligtable;
+
+ beginligtable
+ labelchar (CYR_.L);
+ setlig([ASCII "1"],CYR_.LJE);
+ setlig([ASCII "J"],CYR_.LJE); setlig([ASCII "j"],CYR_.LJE);
+ endligtable;
+fi
+
+beginligtable
+ labelchar (CYR_.Z);
+ setlig([ASCII "1"],CYR_.ZH);
+ setlig([ASCII "H"],CYR_.ZH); setlig([ASCII "h"],CYR_.ZH);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.E);
+ setlig([ASCII "0"],CYR_.YO);
+ setlig([ASCII "1"],CYR_.EREV); setlig([ASCII "2"],CYR_.UKR_E);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.S);
+ setlig([ASCII "H"],CYR_.SH); setlig([ASCII "h"],CYR_.SH);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.C);
+ setlig([ASCII "1"],CYR_.TSHE);
+ setlig([ASCII "H"],CYR_.CH); setlig([ASCII "h"],CYR_.CH);
+endligtable;
+
+if not TITLEfont:
+
+ if SmallCapsfont:
+
+ beginligtable
+ labelchar (CYR_.z);
+ setlig([ASCII "1"],CYR_.zh); setlig([ASCII "h"],CYR_.zh);
+ endligtable;
+
+ beginligtable
+ labelchar (CYR_.e);
+ setlig([ASCII "0"],CYR_.yo); setlig([ASCII "1"],CYR_.erev);
+ setlig([ASCII "2"],CYR_.ukr_e);
+ endligtable;
+
+ beginligtable
+ labelchar (CYR_.s);
+ setlig([ASCII "h"],CYR_.sh);
+ endligtable;
+
+ beginligtable
+ labelchar (CYR_.c);
+ setlig([ASCII "1"],CYR_.tshe); setlig([ASCII "h"],CYR_.ch);
+ endligtable;
+
+ else:
+
+ beginligtable
+ labelchar (CYR_.z);
+ setlig([ASCII "1"],CYR_.zh); setlig([ASCII "h"],CYR_.zh);
+ endligtable;
+
+ beginligtable
+ labelchar (CYR_.c);
+ setlig([ASCII "1"],CYR_.tshe); setlig([ASCII "h"],CYR_.ch);
+ endligtable;
+
+ if ROMANfont:
+
+ beginligtable
+ labelchar (CYR_.e);
+ setlig([ASCII "0"],CYR_.yo); setlig([ASCII "1"],CYR_.erev);
+ setlig([ASCII "2"],CYR_.ukr_e);
+ endligtable;
+
+ else:
+
+ beginligtable
+ labelchar (CYR_.k); setlig([ASCII "h"],CYR_.h);
+ endligtable;
+
+ beginligtable
+ labelchar (CYR_.t); setlig([ASCII "s"],CYR_.c);
+ endligtable;
+
+ fi
+
+ fi
+
+ if not concrete:
+ beginligtable
+ labelchar (CYR_.d);
+ setlig([ASCII "1"],CYR_.dje); setlig([ASCII "2"],CYR_.dzhe);
+ setlig([ASCII "3"],CYR_.lat_s); setlig([ASCII "j"],CYR_.dje);
+ endligtable;
+
+ if ROMANfont:
+ beginligtable
+ labelchar (CYR_.l);
+ setlig([ASCII "1"],CYR_.lje); setlig([ASCII "j"],CYR_.lje);
+ endligtable;
+ fi
+
+ fi
+
+
+ beginligtable
+ labelchar (CYR_.i);
+ setlig([ASCII "0"],CYR_.i_shrt); setlig([ASCII "1"],CYR_.lat_i);
+ endligtable;
+
+ beginligtable
+ labelchar (CYR_.n);
+ setlig([ASCII "1"],CYR_.nje); setlig([ASCII "j"],CYR_.nje);
+ endligtable;
+
+ beginligtable
+ labelchar (CYR_.lat_j);
+ setlig([ASCII "1"],CYR_.ya); setlig([ASCII "2"],CYR_.yu);
+ endligtable;
+
+ beginligtable
+ labelchar ([ASCII "p"]);
+ setlig([ASCII "1"],CYR_.sftsn); setlig([ASCII "2"],CYR_.hrdsn);
+ endligtable;
+
+ beginligtable
+ labelchar ([ASCII "7"]);
+ setlig([ASCII "h"],CYR_.shch);
+ endligtable;
+
+ beginligtable
+ labelchar ([ASCII "x"]);
+ setlig([ASCII "q"],CYR_.shch); setlig([ASCII "c"],[ASCII "7"]);
+ endligtable;
+
+ beginligtable
+ labelchar ([ASCII "y"]);
+ setlig([ASCII "a"],CYR_.ya); setlig([ASCII "u"],CYR_.yu);
+ endligtable;
+
+fi
+
+beginligtable
+ labelchar (CYR_.I);
+ setlig([ASCII "0"],CYR_.I_shrt); setlig([ASCII "1"],CYR_.LAT_I);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.N);
+ setlig([ASCII "0"],CYR_.No); setlig([ASCII "1"],CYR_.NJE);
+ setlig([ASCII "J"],CYR_.NJE); setlig([ASCII "j"],CYR_.NJE);
+endligtable;
+
+beginligtable
+ labelchar (CYR_.LAT_J);
+ setlig([ASCII "1"],CYR_.YA); setlig([ASCII "2"],CYR_.YU);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "P"]);
+ setlig([ASCII "1"],CYR_.SFTSN); setlig([ASCII "2"],CYR_.HRDSN);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "6"]);
+ setlig([ASCII "h"],CYR_.SHCH); setlig([ASCII "H"],CYR_.SHCH);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "X"]);
+ setlig([ASCII "Q"],CYR_.SHCH); setlig([ASCII "q"],CYR_.SHCH);
+ setlig([ASCII "C"],[ASCII "6"]); setlig([ASCII "c"],[ASCII "6"]);
+endligtable;
+
+beginligtable
+ labelchar ([ASCII "Y"]);
+ setlig([ASCII "A"],CYR_.YA); setlig([ASCII "a"],CYR_.YA);
+ setlig([ASCII "U"],CYR_.YU); setlig([ASCII "u"],CYR_.YU);
+endligtable;
+
+
+
+beginligtable
+ labelchar (
+ CYR_.HRDSN
+ ,CYR_.SFTSN
+ ,CYR_.DJE
+ ,CYR_.LJE
+ ,CYR_.NJE
+ ,CYR_.YAT
+ );
+ setkern [k#] (
+ CYR_.ZH
+ ,CYR_.H
+ );
+ labelchar (
+ CYR_.A
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.FITA
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.DJE
+ ,CYR_.TSHE
+ ,CYR_.YAT
+ ,CYR_.CH
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ );
+ setkern [kkk#] (
+ CYR_.IZH
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ );
+ setkern [kk#] (
+ CYR_.IZH
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ setkern [kk#] (
+ CYR_.ch
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.izh
+ ,CYR_.k
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.yat
+ ,CYR_.lat_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ );
+ fi
+ fi
+ endligtable;
+
+if concrete:
+
+ beginligtable
+ labelchar ( CYR_.D );
+ setlig([ASCII "1"],CYR_.DJE);
+ setlig([ASCII "2"],CYR_.DZHE); setlig([ASCII "3"],CYR_.LAT_S);
+ setlig([ASCII "J"],CYR_.DJE); setlig([ASCII "j"],CYR_.DJE);
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.FITA
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.DJE
+ ,CYR_.TSHE
+ ,CYR_.YAT
+ ,CYR_.CH
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ );
+ setkern [kkk#] (
+ CYR_.IZH
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ );
+ setkern [kk#] (
+ CYR_.IZH
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.izh
+ ,CYR_.k
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.yat
+ ,CYR_.lat_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ );
+ fi
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.L );
+ setlig([ASCII "1"],CYR_.LJE); setlig([ASCII "J"],CYR_.LJE);
+ setlig([ASCII "j"],CYR_.LJE);
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.FITA
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.DJE
+ ,CYR_.TSHE
+ ,CYR_.YAT
+ ,CYR_.CH
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ );
+ setkern [kkk#] (
+ CYR_.IZH
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ );
+ setkern [kk#] (
+ CYR_.IZH
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.izh
+ ,CYR_.k
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.yat
+ ,CYR_.lat_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ );
+ fi
+ fi
+ endligtable;
+
+fi
+
+beginligtable
+ labelchar ( CYR_.K );
+ setlig([ASCII "H"],CYR_.H); setlig([ASCII "h"],CYR_.H);
+ labelchar (
+ CYR_.ZH
+ ,CYR_.H
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.FITA
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ else:
+ setkern [k#] (
+ CYR_.ch
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ fi
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.FITA
+ ,CYR_.YU
+ ,CYR_.EREV
+ );
+ setkern [k#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ ,CYR_.ZH
+ ,CYR_.H
+ ,CYR_.U
+ ,CYR_.IZH
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ fi
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.izh
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar ( CYR_.T );
+ setlig([ASCII "S"],CYR_.C); setlig([ASCII "s"],CYR_.C);
+ labelchar (
+ CYR_.G
+ );
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ ,CYR_.LJE
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.LJE
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ fi
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.izh
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.fita
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.f
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.IZH
+ );
+ if serifs:
+ setkern [kkk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ );
+ else:
+ setkern [kk#] (
+ CYR_.A
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.FITA
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.fita
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.fita
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ fi
+ if ROMANfont:
+ if serifs:
+ setkern [kkk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ fi
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.U
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.A
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.FITA
+ ,CYR_.S
+ ,CYR_.UKR_E
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.fita
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.fita
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ fi
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.R
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.fita
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ );
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.LAT_I
+ );
+ setkern [-k#] (
+ CYR_.LAT_I
+ );
+ endligtable;
+
+if TITLEfont: endinput \\ fi;
+
+if SmallCapsfont:
+
+ u#:=lower.u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+
+
+ beginligtable
+ labelchar (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ ,CYR_.dje
+ fi
+ ,CYR_.lje
+ ,CYR_.nje
+ ,CYR_.yat
+ if SmallCapsfont:
+ fi
+ if SmallCapsfont:
+ fi
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ endligtable;
+
+ if concrete:
+
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setlig([ASCII "1"],CYR_.dje); setlig([ASCII "2"],CYR_.dzhe);
+ setlig([ASCII "3"],CYR_.lat_s); setlig([ASCII "j"],CYR_.dje);
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setlig([ASCII "1"],CYR_.lje); setlig([ASCII "j"],CYR_.lje);
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.ch
+ );
+ setkern [kk#] (
+ CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ setlig([ASCII "h"],CYR_.h);
+ labelchar (
+ CYR_.zh
+ ,CYR_.h
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.erev
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.izh
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.t );
+ setlig([ASCII "s"],CYR_.C);
+ labelchar (
+ CYR_.g
+ ,CYR_.r
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.izh
+ );
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.lat_i
+ );
+ setkern [-k#] (
+ CYR_.lat_i
+ );
+ endligtable;
+
+else:
+
+ if ROMANfont:
+
+
+ beginligtable
+ labelchar (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.u
+ if serifs:
+ ,CYR_.izh
+ fi
+ );
+ endligtable;
+
+ if concrete:
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setlig([ASCII "1"],CYR_.dje); setlig([ASCII "2"],CYR_.dzhe);
+ setlig([ASCII "3"],CYR_.lat_s); setlig([ASCII "j"],CYR_.dje);
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.ch
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setlig([ASCII "1"],CYR_.lje); setlig([ASCII "j"],CYR_.lje);
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.ch
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ );
+ endligtable;
+
+ fi
+
+ beginligtable
+ labelchar ( CYR_.t );
+ setlig([ASCII "s"],CYR_.c);
+ labelchar (
+ CYR_.g
+ if kapitel:
+ ,CYR_.r
+ fi
+ );
+ if serifs:
+ setkern [k#] (
+ CYR_.a
+ );
+ fi
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ya
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ setlig([ASCII "h"],CYR_.h);
+ labelchar (
+ CYR_.zh
+ ,CYR_.h
+ );
+ setkern [k#] (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.izh
+ );
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.fita
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.ya
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ );
+ setkern [-u#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+ else:
+
+
+ beginligtable
+ labelchar ( CYR_.e );
+ setlig([ASCII "0"],CYR_.yo); setlig([ASCII "1"],CYR_.erev);
+setlig([ASCII "2"],CYR_.ukr_e);
+ labelchar (
+ CYR_.yo
+ );
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.izh
+ );
+ setkern [kk#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setlig([ASCII "1"],CYR_.lje); setlig([ASCII "j"],CYR_.lje);
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ );
+ setkern [kk#] (
+ CYR_.ch
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar (
+ CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ ,CYR_.dje
+ fi
+ ,CYR_.lje
+ ,CYR_.nje
+ ,CYR_.yat
+ if SmallCapsfont:
+ fi
+ if SmallCapsfont:
+ fi
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ if ROMANfont:
+ setkern [-u#] (
+ CYR_.u
+ ,CYR_.izh
+ );
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ if concrete:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ );
+ fi
+ setkern [kk#] (
+ CYR_.ch
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.f
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.s );
+ setlig([ASCII "h"],CYR_.sh);
+ labelchar (
+ CYR_.o
+ ,CYR_.fita
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.r
+ ,CYR_.f
+ ,CYR_.erev
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ );
+ fi
+ endligtable;
+
+fi
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wnsltl10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnsltl10.mf
new file mode 100644
index 00000000000..c768eec4a0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wnsltl10.mf
@@ -0,0 +1,6 @@
+% This is wnsltl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-ot2/wntl10.mf b/Master/texmf-dist/fonts/source/lh/lh-ot2/wntl10.mf
new file mode 100644
index 00000000000..37246ec44c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-ot2/wntl10.mf
@@ -0,0 +1,6 @@
+% This is wntl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/ilalb8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilalb8.mf
new file mode 100644
index 00000000000..676f5d84965
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilalb8.mf
@@ -0,0 +1,7 @@
+% This is ilalb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/ilali8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilali8.mf
new file mode 100644
index 00000000000..f74a709c37e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilali8.mf
@@ -0,0 +1,7 @@
+% This is ilali8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/ilalo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilalo8.mf
new file mode 100644
index 00000000000..f0a33eb5d14
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilalo8.mf
@@ -0,0 +1,7 @@
+% This is ilalo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/ilalq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilalq8.mf
new file mode 100644
index 00000000000..e77dbb14d31
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilalq8.mf
@@ -0,0 +1,7 @@
+% This is ilalq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/ilaltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilaltt8.mf
new file mode 100644
index 00000000000..65a7ed7fdcc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/ilaltt8.mf
@@ -0,0 +1,7 @@
+% This is ilaltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labbx10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labbx10.mf
new file mode 100644
index 00000000000..38ee6d17ab9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labbx10.mf
@@ -0,0 +1,7 @@
+% This is labbx10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo10.mf
new file mode 100644
index 00000000000..f518f6ccb19
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo10.mf
@@ -0,0 +1,7 @@
+% This is labmo10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo17.mf
new file mode 100644
index 00000000000..0250c415437
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo17.mf
@@ -0,0 +1,7 @@
+% This is labmo17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo8.mf
new file mode 100644
index 00000000000..523404f68d0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo8.mf
@@ -0,0 +1,7 @@
+% This is labmo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo9.mf
new file mode 100644
index 00000000000..e6ce8b20c85
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmo9.mf
@@ -0,0 +1,7 @@
+% This is labmo9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr10.mf
new file mode 100644
index 00000000000..08155f26ad9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr10.mf
@@ -0,0 +1,7 @@
+% This is labmr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr17.mf
new file mode 100644
index 00000000000..4202b450199
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr17.mf
@@ -0,0 +1,7 @@
+% This is labmr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr8.mf
new file mode 100644
index 00000000000..8cb0ac9da8f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr8.mf
@@ -0,0 +1,7 @@
+% This is labmr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr9.mf
new file mode 100644
index 00000000000..67de25168d5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labmr9.mf
@@ -0,0 +1,7 @@
+% This is labmr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labso10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labso10.mf
new file mode 100644
index 00000000000..f18f4d3abd8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labso10.mf
@@ -0,0 +1,7 @@
+% This is labso10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labso17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labso17.mf
new file mode 100644
index 00000000000..658a6d2a23f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labso17.mf
@@ -0,0 +1,7 @@
+% This is labso17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labso8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labso8.mf
new file mode 100644
index 00000000000..109b8584c0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labso8.mf
@@ -0,0 +1,7 @@
+% This is labso8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labso9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labso9.mf
new file mode 100644
index 00000000000..bce07add583
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labso9.mf
@@ -0,0 +1,7 @@
+% This is labso9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr10.mf
new file mode 100644
index 00000000000..8086929b025
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr10.mf
@@ -0,0 +1,7 @@
+% This is labsr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr17.mf
new file mode 100644
index 00000000000..7221224a068
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr17.mf
@@ -0,0 +1,7 @@
+% This is labsr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr8.mf
new file mode 100644
index 00000000000..bd1362e9b49
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr8.mf
@@ -0,0 +1,7 @@
+% This is labsr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr9.mf
new file mode 100644
index 00000000000..c460b1629bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labsr9.mf
@@ -0,0 +1,7 @@
+% This is labsr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labtl10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labtl10.mf
new file mode 100644
index 00000000000..1721459c433
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labtl10.mf
@@ -0,0 +1,7 @@
+% This is labtl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/labto10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/labto10.mf
new file mode 100644
index 00000000000..e297aa8ab2e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/labto10.mf
@@ -0,0 +1,7 @@
+% This is labto10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/lacodes.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/lacodes.mf
new file mode 100644
index 00000000000..1d1c51aa000
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/lacodes.mf
@@ -0,0 +1,158 @@
+% This is lacodes.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+CYR_.A := hex"c0";
+CYR_.a := hex"e0";
+CYR_.B := hex"c1";
+CYR_.b := hex"e1";
+CYR_.V := hex"c2";
+CYR_.v := hex"e2";
+CYR_.G := hex"c3";
+CYR_.g := hex"e3";
+CYR_.D := hex"c4";
+CYR_.d := hex"e4";
+CYR_.E := hex"c5";
+CYR_.e := hex"e5";
+CYR_.ZH := hex"c6";
+CYR_.zh := hex"e6";
+CYR_.Z := hex"c7";
+CYR_.z := hex"e7";
+CYR_.I := hex"c8";
+CYR_.i := hex"e8";
+CYR_.I_shrt := hex"c9";
+CYR_.i_shrt := hex"e9";
+CYR_.K := hex"ca";
+CYR_.k := hex"ea";
+CYR_.L := hex"cb";
+CYR_.l := hex"eb";
+CYR_.M := hex"cc";
+CYR_.m := hex"ec";
+CYR_.N := hex"cd";
+CYR_.n := hex"ed";
+CYR_.O := hex"ce";
+CYR_.o := hex"ee";
+CYR_.P := hex"cf";
+CYR_.p := hex"ef";
+CYR_.R := hex"d0";
+CYR_.r := hex"f0";
+CYR_.S := hex"d1";
+CYR_.s := hex"f1";
+CYR_.T := hex"d2";
+CYR_.t := hex"f2";
+CYR_.U := hex"d3";
+CYR_.u := hex"f3";
+CYR_.F := hex"d4";
+CYR_.f := hex"f4";
+CYR_.H := hex"d5";
+CYR_.h := hex"f5";
+CYR_.C := hex"d6";
+CYR_.c := hex"f6";
+CYR_.CH := hex"d7";
+CYR_.ch := hex"f7";
+CYR_.SH := hex"d8";
+CYR_.sh := hex"f8";
+CYR_.SHCH := hex"d9";
+CYR_.shch := hex"f9";
+CYR_.HRDSN := hex"da";
+CYR_.hrdsn := hex"fa";
+CYR_.ERY := hex"db";
+CYR_.ery := hex"fb";
+CYR_.SFTSN := hex"dc";
+CYR_.sftsn := hex"fc";
+CYR_.EREV := hex"dd";
+CYR_.erev := hex"fd";
+CYR_.YU := hex"de";
+CYR_.yu := hex"fe";
+CYR_.YA := hex"df";
+CYR_.ya := hex"ff";
+CYR_.YO := hex"9c";
+CYR_.yo := hex"bc";
+CYR_.AE := hex"8c";
+CYR_.ae := hex"ac";
+CYR_.DJE := hex"82";
+CYR_.dje := hex"a2";
+CYR_.TSHE := hex"83";
+CYR_.tshe := hex"a3";
+CYR_.K_vcrs := hex"8b";
+CYR_.k_vcrs := hex"ab";
+CYR_.LJE := hex"87";
+CYR_.lje := hex"a7";
+CYR_.NJE := hex"9b";
+CYR_.nje := hex"bb";
+CYR_.LAT_S := hex"8f";
+CYR_.lat_s := hex"af";
+CYR_.DZHE := hex"96";
+CYR_.dzhe := hex"b6";
+CYR_.CH_vcrs := hex"97";
+CYR_.ch_vcrs := hex"b7";
+CYR_.G_up := hex"80";
+CYR_.g_up := hex"a0";
+CYR_.G_hcrs := hex"81";
+CYR_.g_hcrs := hex"a1";
+CYR_.SHHA := hex"84";
+CYR_.shha := hex"a4";
+CYR_.ZH_dsc := hex"85";
+CYR_.zh_dsc := hex"a5";
+CYR_.Z_dsc := hex"86";
+CYR_.z_dsc := hex"a6";
+CYR_.UKR_I := hex"88";
+CYR_.ukr_i := hex"a8";
+CYR_.K_dsc := hex"89";
+CYR_.k_dsc := hex"a9";
+CYR_.K_beak := hex"8a";
+CYR_.k_beak := hex"aa";
+CYR_.N_dsc := hex"8d";
+CYR_.n_dsc := hex"ad";
+CYR_.NG := hex"8e";
+CYR_.ng := hex"ae";
+CYR_.OTLD := hex"90";
+CYR_.otld := hex"b0";
+CYR_.S_dsc := hex"91";
+CYR_.s_dsc := hex"b1";
+CYR_.U_shrt := hex"92";
+CYR_.u_shrt := hex"b2";
+CYR_.Y := hex"93";
+CYR_.y := hex"b3";
+CYR_.Y_hcrs := hex"94";
+CYR_.y_hcrs := hex"b4";
+CYR_.H_dsc := hex"95";
+CYR_.h_dsc := hex"b5";
+CYR_.CH_rdsc := hex"98";
+CYR_.ch_rdsc := hex"b8";
+CYR_.UKR_E := hex"99";
+CYR_.ukr_e := hex"b9";
+CYR_.SCHWA := hex"9a";
+CYR_.schwa := hex"ba";
+CYR_.Agrave := hex"00";
+CYR_.Aacute := hex"01";
+CYR_.Ahat := hex"02";
+CYR_.Atilde := hex"03";
+CYR_.Aumlaut := hex"04";
+CYR_.Aacute_dbl := hex"05";
+CYR_.Aring := hex"06";
+CYR_.Ahachek := hex"07";
+CYR_.Abreve := hex"08";
+CYR_.Abar := hex"09";
+CYR_.Adot := hex"0a";
+CYR_.Acedilla := hex"0b";
+CYR_.Aogonek := hex"0c";
+CYR_.palochka := hex"0d";
+CYR_.angle_left := hex"0e";
+CYR_.angle_right := hex"0f";
+CYR_.Afrown := hex"12";
+CYR_.Agrave_dbl := hex"13";
+CYR_.Acyrbreve := hex"14";
+CYR_.dash := hex"16";
+CYR_.wordmark := hex"17";
+CYR_.pmzero := hex"18";
+CYR_.i_dotl := hex"19";
+CYR_.j_dotl := hex"1a";
+CYR_.dbl_quotes := hex"22";
+CYR_.No := hex"9d";
+CYR_.currency := hex"9e";
+CYR_.section := hex"9f";
+CYR_.baseqq := hex"bd";
+CYR_.flqq := hex"be";
+CYR_.frqq := hex"bf";
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/lalb8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/lalb8.mf
new file mode 100644
index 00000000000..c156bf0cb00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/lalb8.mf
@@ -0,0 +1,6 @@
+% This is lalb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/lali8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/lali8.mf
new file mode 100644
index 00000000000..0b56c2dc294
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/lali8.mf
@@ -0,0 +1,6 @@
+% This is lali8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laliker.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laliker.mf
new file mode 100644
index 00000000000..5f25c8d1103
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laliker.mf
@@ -0,0 +1,1616 @@
+% This is laliker.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+
+beginligtable
+ labelchar (
+ CYR_.HRDSN
+ ,CYR_.SFTSN
+ ,CYR_.DJE
+ ,CYR_.LJE
+ ,CYR_.NJE
+ ,CYR_.SHHA
+ );
+ setkern [k#] (
+ CYR_.ZH
+ ,CYR_.ZH_dsc
+ ,CYR_.H
+ ,CYR_.H_dsc
+ );
+ labelchar (
+ CYR_.A
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.DJE
+ ,CYR_.TSHE
+ ,CYR_.K_beak
+ ,CYR_.CH
+ ,CYR_.CH_rdsc
+ ,CYR_.CH_vcrs
+ ,CYR_.Y
+ ,CYR_.Y_hcrs
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.n_dsc
+ ,CYR_.ng
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.ukr_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+if concrete:
+
+ beginligtable
+ labelchar ( CYR_.D );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.DJE
+ ,CYR_.TSHE
+ ,CYR_.K_beak
+ ,CYR_.CH
+ ,CYR_.CH_rdsc
+ ,CYR_.CH_vcrs
+ ,CYR_.Y
+ ,CYR_.Y_hcrs
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.n_dsc
+ ,CYR_.ng
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.ukr_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.L );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.DJE
+ ,CYR_.TSHE
+ ,CYR_.K_beak
+ ,CYR_.CH
+ ,CYR_.CH_rdsc
+ ,CYR_.CH_vcrs
+ ,CYR_.Y
+ ,CYR_.Y_hcrs
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.n_dsc
+ ,CYR_.ng
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.ukr_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+fi
+
+beginligtable
+ labelchar ( CYR_.K );
+ labelchar (
+ CYR_.K_dsc
+ ,CYR_.K_vcrs
+ ,CYR_.K_beak
+ ,CYR_.ZH
+ ,CYR_.ZH_dsc
+ ,CYR_.H
+ ,CYR_.H_dsc
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ );
+ else:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ );
+ fi
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.YU
+ ,CYR_.EREV
+ ,CYR_.SCHWA
+ );
+ setkern [k#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ ,CYR_.ZH
+ ,CYR_.ZH_dsc
+ ,CYR_.H
+ ,CYR_.H_dsc
+ ,CYR_.Y
+ ,CYR_.Y_hcrs
+ ,CYR_.U
+ ,CYR_.U_shrt
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar ( CYR_.T );
+ labelchar (
+ CYR_.G
+ ,CYR_.G_hcrs
+ ,CYR_.NG
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ ,CYR_.LJE
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.LJE
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.f
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [kk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.G_up
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ ,CYR_.LJE
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.LJE
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.f
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.Y
+ ,CYR_.Y_hcrs
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.LJE
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ if ROMANfont:
+ if serifs:
+ setkern [kkk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ fi
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.A
+ ,CYR_.AE
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ );
+ fi
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.R
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ ,CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ );
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.UKR_I
+ );
+ setkern [-k#] (
+ CYR_.UKR_I
+ );
+ endligtable;
+
+if TITLEfont: endinput \\ fi;
+
+if SmallCapsfont:
+
+ u#:=lower.u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+
+
+ beginligtable
+ labelchar (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ ,CYR_.dje
+ fi
+ ,CYR_.lje
+ ,CYR_.nje
+ if SmallCapsfont:
+ ,CYR_.shha
+ fi
+ if SmallCapsfont:
+ fi
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ endligtable;
+
+ if concrete:
+
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.k_beak
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.erev
+ ,CYR_.schwa
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.g
+ ,CYR_.g_up
+ ,CYR_.g_hcrs
+ ,CYR_.ng
+ ,CYR_.r
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.ukr_i
+ );
+ setkern [-k#] (
+ CYR_.ukr_i
+ );
+ endligtable;
+
+else:
+
+ if ROMANfont:
+
+
+ beginligtable
+ labelchar (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ if serifs:
+ fi
+ );
+ endligtable;
+
+ if concrete:
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ endligtable;
+
+ fi
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.g
+ ,CYR_.g_up
+ ,CYR_.g_hcrs
+ ,CYR_.ng
+ if kapitel:
+ ,CYR_.r
+ fi
+ );
+ if serifs:
+ setkern [k#] (
+ CYR_.a
+ );
+ fi
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.ya
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.k_beak
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ );
+ setkern [k#] (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.ukr_i
+ );
+ setkern [-kk#] (
+ CYR_.ukr_i
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.ya
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ setkern [-u#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+ else:
+
+
+ beginligtable
+ labelchar ( CYR_.e );
+ labelchar (
+ CYR_.yo
+ );
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.g_up
+ );
+ setkern [kkk#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.y
+ ,CYR_.y_hcrs
+ );
+ setkern [kk#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.ukr_i
+ );
+ setkern [-k#] (
+ CYR_.dje
+ ,CYR_.tshe
+ );
+ setkern [-k#] (
+ CYR_.ukr_i
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar (
+ CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ ,CYR_.dje
+ fi
+ ,CYR_.lje
+ ,CYR_.nje
+ if SmallCapsfont:
+ ,CYR_.shha
+ fi
+ if SmallCapsfont:
+ fi
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ if ROMANfont:
+ setkern [-u#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ );
+ if concrete:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ );
+ fi
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.s );
+ labelchar (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.r
+ ,CYR_.f
+ ,CYR_.erev
+ ,CYR_.schwa
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ );
+ fi
+ endligtable;
+
+fi
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/lalo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/lalo8.mf
new file mode 100644
index 00000000000..13707f618c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/lalo8.mf
@@ -0,0 +1,6 @@
+% This is lalo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/lalq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/lalq8.mf
new file mode 100644
index 00000000000..7bf55dbd983
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/lalq8.mf
@@ -0,0 +1,6 @@
+% This is lalq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laltt8.mf
new file mode 100644
index 00000000000..dae607c70ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laltt8.mf
@@ -0,0 +1,6 @@
+% This is laltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laocc10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laocc10.mf
new file mode 100644
index 00000000000..db3c8473622
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laocc10.mf
@@ -0,0 +1,7 @@
+% This is laocc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm10.mf
new file mode 100644
index 00000000000..bb385a8f86d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm10.mf
@@ -0,0 +1,7 @@
+% This is laorm10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm5.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm5.mf
new file mode 100644
index 00000000000..6286ab88cd5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm5.mf
@@ -0,0 +1,7 @@
+% This is laorm5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm6.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm6.mf
new file mode 100644
index 00000000000..fd46f35f176
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm6.mf
@@ -0,0 +1,7 @@
+% This is laorm6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm7.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm7.mf
new file mode 100644
index 00000000000..6d52cd3443f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm7.mf
@@ -0,0 +1,7 @@
+% This is laorm7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm8.mf
new file mode 100644
index 00000000000..e1e6c87bbdf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm8.mf
@@ -0,0 +1,7 @@
+% This is laorm8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm9.mf
new file mode 100644
index 00000000000..e5317c4a2b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laorm9.mf
@@ -0,0 +1,7 @@
+% This is laorm9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl10.mf
new file mode 100644
index 00000000000..a47e2b1e713
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl10.mf
@@ -0,0 +1,7 @@
+% This is laosl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl5.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl5.mf
new file mode 100644
index 00000000000..23f08722727
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl5.mf
@@ -0,0 +1,7 @@
+% This is laosl5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl6.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl6.mf
new file mode 100644
index 00000000000..20c358dfc34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl6.mf
@@ -0,0 +1,7 @@
+% This is laosl6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl7.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl7.mf
new file mode 100644
index 00000000000..c14dfe9d591
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl7.mf
@@ -0,0 +1,7 @@
+% This is laosl7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl8.mf
new file mode 100644
index 00000000000..519a569598e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl8.mf
@@ -0,0 +1,7 @@
+% This is laosl8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl9.mf
new file mode 100644
index 00000000000..535786bbf43
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laosl9.mf
@@ -0,0 +1,7 @@
+% This is laosl9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laoti10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laoti10.mf
new file mode 100644
index 00000000000..afb67644de2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laoti10.mf
@@ -0,0 +1,7 @@
+% This is laoti10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/laqi8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/laqi8.mf
new file mode 100644
index 00000000000..0af5309ff89
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/laqi8.mf
@@ -0,0 +1,6 @@
+% This is laqi8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/lasq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/lasq8.mf
new file mode 100644
index 00000000000..92addce05a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/lasq8.mf
@@ -0,0 +1,6 @@
+% This is lasq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2a/lassdc10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2a/lassdc10.mf
new file mode 100644
index 00000000000..119328dc6cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2a/lassdc10.mf
@@ -0,0 +1,6 @@
+% This is lassdc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/ilblb8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilblb8.mf
new file mode 100644
index 00000000000..da4b4fbcdca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilblb8.mf
@@ -0,0 +1,7 @@
+% This is ilblb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/ilbli8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilbli8.mf
new file mode 100644
index 00000000000..57f7648bfb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilbli8.mf
@@ -0,0 +1,7 @@
+% This is ilbli8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/ilblo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilblo8.mf
new file mode 100644
index 00000000000..0ed44ba97fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilblo8.mf
@@ -0,0 +1,7 @@
+% This is ilblo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/ilblq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilblq8.mf
new file mode 100644
index 00000000000..0951fe56119
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilblq8.mf
@@ -0,0 +1,7 @@
+% This is ilblq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/ilbltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilbltt8.mf
new file mode 100644
index 00000000000..559f31b8250
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/ilbltt8.mf
@@ -0,0 +1,7 @@
+% This is ilbltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbbx10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbbx10.mf
new file mode 100644
index 00000000000..e63fd32a245
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbbx10.mf
@@ -0,0 +1,7 @@
+% This is lbbbx10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo10.mf
new file mode 100644
index 00000000000..f60ad1e8678
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo10.mf
@@ -0,0 +1,7 @@
+% This is lbbmo10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo17.mf
new file mode 100644
index 00000000000..b9ce7efbc6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo17.mf
@@ -0,0 +1,7 @@
+% This is lbbmo17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo8.mf
new file mode 100644
index 00000000000..01979cb6454
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo8.mf
@@ -0,0 +1,7 @@
+% This is lbbmo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo9.mf
new file mode 100644
index 00000000000..8baed6acd8d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmo9.mf
@@ -0,0 +1,7 @@
+% This is lbbmo9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr10.mf
new file mode 100644
index 00000000000..7d6029cffc5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr10.mf
@@ -0,0 +1,7 @@
+% This is lbbmr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr17.mf
new file mode 100644
index 00000000000..aab3bc5437d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr17.mf
@@ -0,0 +1,7 @@
+% This is lbbmr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr8.mf
new file mode 100644
index 00000000000..6d7ddcccd06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr8.mf
@@ -0,0 +1,7 @@
+% This is lbbmr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr9.mf
new file mode 100644
index 00000000000..cb476351cf7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbmr9.mf
@@ -0,0 +1,7 @@
+% This is lbbmr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso10.mf
new file mode 100644
index 00000000000..b65b27bd7e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso10.mf
@@ -0,0 +1,7 @@
+% This is lbbso10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso17.mf
new file mode 100644
index 00000000000..7bfc0c7dba8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso17.mf
@@ -0,0 +1,7 @@
+% This is lbbso17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso8.mf
new file mode 100644
index 00000000000..7014fdc6639
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso8.mf
@@ -0,0 +1,7 @@
+% This is lbbso8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso9.mf
new file mode 100644
index 00000000000..5cc76798375
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbso9.mf
@@ -0,0 +1,7 @@
+% This is lbbso9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr10.mf
new file mode 100644
index 00000000000..eded8b2eb2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr10.mf
@@ -0,0 +1,7 @@
+% This is lbbsr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr17.mf
new file mode 100644
index 00000000000..5e17bd8098b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr17.mf
@@ -0,0 +1,7 @@
+% This is lbbsr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr8.mf
new file mode 100644
index 00000000000..3586001a309
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr8.mf
@@ -0,0 +1,7 @@
+% This is lbbsr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr9.mf
new file mode 100644
index 00000000000..455f3d2ee32
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbsr9.mf
@@ -0,0 +1,7 @@
+% This is lbbsr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbtl10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbtl10.mf
new file mode 100644
index 00000000000..281f455b9f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbtl10.mf
@@ -0,0 +1,7 @@
+% This is lbbtl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbto10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbto10.mf
new file mode 100644
index 00000000000..008c328d7c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbbto10.mf
@@ -0,0 +1,7 @@
+% This is lbbto10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbcodes.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbcodes.mf
new file mode 100644
index 00000000000..97a5025df75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbcodes.mf
@@ -0,0 +1,158 @@
+% This is lbcodes.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+CYR_.A := hex"c0";
+CYR_.a := hex"e0";
+CYR_.B := hex"c1";
+CYR_.b := hex"e1";
+CYR_.V := hex"c2";
+CYR_.v := hex"e2";
+CYR_.G := hex"c3";
+CYR_.g := hex"e3";
+CYR_.D := hex"c4";
+CYR_.d := hex"e4";
+CYR_.E := hex"c5";
+CYR_.e := hex"e5";
+CYR_.ZH := hex"c6";
+CYR_.zh := hex"e6";
+CYR_.Z := hex"c7";
+CYR_.z := hex"e7";
+CYR_.I := hex"c8";
+CYR_.i := hex"e8";
+CYR_.I_shrt := hex"c9";
+CYR_.i_shrt := hex"e9";
+CYR_.K := hex"ca";
+CYR_.k := hex"ea";
+CYR_.L := hex"cb";
+CYR_.l := hex"eb";
+CYR_.M := hex"cc";
+CYR_.m := hex"ec";
+CYR_.N := hex"cd";
+CYR_.n := hex"ed";
+CYR_.O := hex"ce";
+CYR_.o := hex"ee";
+CYR_.P := hex"cf";
+CYR_.p := hex"ef";
+CYR_.R := hex"d0";
+CYR_.r := hex"f0";
+CYR_.S := hex"d1";
+CYR_.s := hex"f1";
+CYR_.T := hex"d2";
+CYR_.t := hex"f2";
+CYR_.U := hex"d3";
+CYR_.u := hex"f3";
+CYR_.F := hex"d4";
+CYR_.f := hex"f4";
+CYR_.H := hex"d5";
+CYR_.h := hex"f5";
+CYR_.C := hex"d6";
+CYR_.c := hex"f6";
+CYR_.CH := hex"d7";
+CYR_.ch := hex"f7";
+CYR_.SH := hex"d8";
+CYR_.sh := hex"f8";
+CYR_.SHCH := hex"d9";
+CYR_.shch := hex"f9";
+CYR_.HRDSN := hex"da";
+CYR_.hrdsn := hex"fa";
+CYR_.ERY := hex"db";
+CYR_.ery := hex"fb";
+CYR_.SFTSN := hex"dc";
+CYR_.sftsn := hex"fc";
+CYR_.EREV := hex"dd";
+CYR_.erev := hex"fd";
+CYR_.YU := hex"de";
+CYR_.yu := hex"fe";
+CYR_.YA := hex"df";
+CYR_.ya := hex"ff";
+CYR_.YO := hex"9c";
+CYR_.yo := hex"bc";
+CYR_.L_dsc := hex"8a";
+CYR_.l_dsc := hex"aa";
+CYR_.LJE := hex"88";
+CYR_.lje := hex"a8";
+CYR_.NJE := hex"99";
+CYR_.nje := hex"b9";
+CYR_.DELTA := hex"86";
+CYR_.delta := hex"a6";
+CYR_.S_acrs := hex"91";
+CYR_.s_acrs := hex"b1";
+CYR_.G_crsdsc := hex"80";
+CYR_.g_crsdsc := hex"a0";
+CYR_.H_hcrs := hex"94";
+CYR_.h_hcrs := hex"b4";
+CYR_.G_hcrs := hex"81";
+CYR_.g_hcrs := hex"a1";
+CYR_.G_dsc := hex"82";
+CYR_.g_dsc := hex"a2";
+CYR_.G_tl := hex"83";
+CYR_.g_tl := hex"a3";
+CYR_.SHHA := hex"84";
+CYR_.shha := hex"a4";
+CYR_.ZH_dsc := hex"85";
+CYR_.zh_dsc := hex"a5";
+CYR_.ABH_DZE := hex"87";
+CYR_.abh_dze := hex"a7";
+CYR_.K_dsc := hex"89";
+CYR_.k_dsc := hex"a9";
+CYR_.K_tl := hex"8b";
+CYR_.k_tl := hex"ab";
+CYR_.L_tl := hex"8c";
+CYR_.l_tl := hex"ac";
+CYR_.N_dsc := hex"8d";
+CYR_.n_dsc := hex"ad";
+CYR_.NG := hex"8e";
+CYR_.ng := hex"ae";
+CYR_.N_tl := hex"8f";
+CYR_.n_tl := hex"af";
+CYR_.OTLD := hex"90";
+CYR_.otld := hex"b0";
+CYR_.U_shrt := hex"92";
+CYR_.u_shrt := hex"b2";
+CYR_.Y := hex"93";
+CYR_.y := hex"b3";
+CYR_.H_dsc := hex"95";
+CYR_.h_dsc := hex"b5";
+CYR_.H_tl := hex"96";
+CYR_.h_tl := hex"b6";
+CYR_.CH_ldsc := hex"97";
+CYR_.ch_ldsc := hex"b7";
+CYR_.CH_rdsc := hex"98";
+CYR_.ch_rdsc := hex"b8";
+CYR_.SCHWA := hex"9a";
+CYR_.schwa := hex"ba";
+CYR_.EPS := hex"9b";
+CYR_.eps := hex"bb";
+CYR_.Agrave := hex"00";
+CYR_.Aacute := hex"01";
+CYR_.Ahat := hex"02";
+CYR_.Atilde := hex"03";
+CYR_.Aumlaut := hex"04";
+CYR_.Aacute_dbl := hex"05";
+CYR_.Aring := hex"06";
+CYR_.Ahachek := hex"07";
+CYR_.Abreve := hex"08";
+CYR_.Abar := hex"09";
+CYR_.Adot := hex"0a";
+CYR_.Acedilla := hex"0b";
+CYR_.Aogonek := hex"0c";
+CYR_.palochka := hex"0d";
+CYR_.angle_left := hex"0e";
+CYR_.angle_right := hex"0f";
+CYR_.Afrown := hex"12";
+CYR_.Agrave_dbl := hex"13";
+CYR_.Acyrbreve := hex"14";
+CYR_.dash := hex"16";
+CYR_.wordmark := hex"17";
+CYR_.pmzero := hex"18";
+CYR_.i_dotl := hex"19";
+CYR_.j_dotl := hex"1a";
+CYR_.dbl_quotes := hex"22";
+CYR_.No := hex"9d";
+CYR_.currency := hex"9e";
+CYR_.section := hex"9f";
+CYR_.baseqq := hex"bd";
+CYR_.flqq := hex"be";
+CYR_.frqq := hex"bf";
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lblb8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lblb8.mf
new file mode 100644
index 00000000000..5cf4d34c44e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lblb8.mf
@@ -0,0 +1,6 @@
+% This is lblb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbli8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbli8.mf
new file mode 100644
index 00000000000..ff992e8b4ec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbli8.mf
@@ -0,0 +1,6 @@
+% This is lbli8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbliker.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbliker.mf
new file mode 100644
index 00000000000..47b1e9c82a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbliker.mf
@@ -0,0 +1,1359 @@
+% This is lbliker.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+
+beginligtable
+ labelchar (
+ CYR_.HRDSN
+ ,CYR_.SFTSN
+ ,CYR_.LJE
+ ,CYR_.NJE
+ ,CYR_.SHHA
+ );
+ setkern [k#] (
+ CYR_.ZH
+ ,CYR_.ZH_dsc
+ ,CYR_.H
+ ,CYR_.H_dsc
+ ,CYR_.H_hcrs
+ ,CYR_.H_tl
+ );
+ labelchar (
+ CYR_.A
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.CH
+ ,CYR_.CH_ldsc
+ ,CYR_.CH_rdsc
+ ,CYR_.Y
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.y
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.k_tl
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.n_dsc
+ ,CYR_.n_tl
+ ,CYR_.ng
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+if concrete:
+
+ beginligtable
+ labelchar ( CYR_.D );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.CH
+ ,CYR_.CH_ldsc
+ ,CYR_.CH_rdsc
+ ,CYR_.Y
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.t
+ ,CYR_.hrdsn
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.y
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.k_tl
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.n_dsc
+ ,CYR_.n_tl
+ ,CYR_.ng
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.L );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.CH
+ ,CYR_.CH_ldsc
+ ,CYR_.CH_rdsc
+ ,CYR_.Y
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.t
+ ,CYR_.hrdsn
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.y
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.k_tl
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.n_dsc
+ ,CYR_.n_tl
+ ,CYR_.ng
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+fi
+
+beginligtable
+ labelchar ( CYR_.K );
+ labelchar (
+ CYR_.K_dsc
+ ,CYR_.ZH
+ ,CYR_.ZH_dsc
+ ,CYR_.H
+ ,CYR_.H_dsc
+ ,CYR_.H_hcrs
+ ,CYR_.H_tl
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ );
+ else:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ );
+ fi
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.YU
+ ,CYR_.EREV
+ ,CYR_.SCHWA
+ );
+ setkern [k#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ ,CYR_.ZH
+ ,CYR_.ZH_dsc
+ ,CYR_.H
+ ,CYR_.H_dsc
+ ,CYR_.H_hcrs
+ ,CYR_.H_tl
+ ,CYR_.Y
+ ,CYR_.U
+ ,CYR_.U_shrt
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_hcrs
+ ,CYR_.h_tl
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar ( CYR_.T );
+ labelchar (
+ CYR_.G
+ ,CYR_.G_hcrs
+ ,CYR_.NG
+ ,CYR_.G_dsc
+ ,CYR_.G_crsdsc
+ );
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_hcrs
+ ,CYR_.h_tl
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.f
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.Y
+ );
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_hcrs
+ ,CYR_.h_tl
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ if ROMANfont:
+ if serifs:
+ setkern [kkk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ fi
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.A
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.S
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ );
+ fi
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.R
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ );
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+if TITLEfont: endinput \\ fi;
+
+if SmallCapsfont:
+
+ u#:=lower.u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+
+
+ beginligtable
+ labelchar (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ fi
+ ,CYR_.lje
+ ,CYR_.nje
+ if SmallCapsfont:
+ ,CYR_.shha
+ fi
+ if SmallCapsfont:
+ fi
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ );
+ endligtable;
+
+ if concrete:
+
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.k_dsc
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_hcrs
+ ,CYR_.h_tl
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.erev
+ ,CYR_.schwa
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_hcrs
+ ,CYR_.h_tl
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.g
+ ,CYR_.g_hcrs
+ ,CYR_.ng
+ ,CYR_.g_dsc
+ ,CYR_.g_crsdsc
+ ,CYR_.r
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ ,CYR_.s
+ );
+ endligtable;
+
+else:
+
+ if ROMANfont:
+
+
+ beginligtable
+ labelchar (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ if serifs:
+ fi
+ );
+ endligtable;
+
+ if concrete:
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ endligtable;
+
+ fi
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.g
+ ,CYR_.g_hcrs
+ ,CYR_.ng
+ ,CYR_.g_dsc
+ ,CYR_.g_crsdsc
+ if kapitel:
+ ,CYR_.r
+ fi
+ );
+ if serifs:
+ setkern [k#] (
+ CYR_.a
+ );
+ fi
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ya
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.k_dsc
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_hcrs
+ ,CYR_.h_tl
+ );
+ setkern [k#] (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.s
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ );
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.s
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.ya
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ );
+ setkern [-u#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+ else:
+
+
+ beginligtable
+ labelchar ( CYR_.e );
+ labelchar (
+ CYR_.yo
+ );
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.y
+ );
+ setkern [kk#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.y
+ ,CYR_.hrdsn
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar (
+ CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ fi
+ ,CYR_.lje
+ ,CYR_.nje
+ if SmallCapsfont:
+ ,CYR_.shha
+ fi
+ if SmallCapsfont:
+ fi
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ if ROMANfont:
+ setkern [-u#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ );
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ );
+ if concrete:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.y
+ ,CYR_.hrdsn
+ );
+ fi
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.f
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.s );
+ labelchar (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.r
+ ,CYR_.f
+ ,CYR_.erev
+ ,CYR_.schwa
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_hcrs
+ ,CYR_.h_tl
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ );
+ fi
+ endligtable;
+
+fi
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lblo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lblo8.mf
new file mode 100644
index 00000000000..707ccbf19e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lblo8.mf
@@ -0,0 +1,6 @@
+% This is lblo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lblq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lblq8.mf
new file mode 100644
index 00000000000..1ceacee8d89
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lblq8.mf
@@ -0,0 +1,6 @@
+% This is lblq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbltt8.mf
new file mode 100644
index 00000000000..ebf7ac9d957
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbltt8.mf
@@ -0,0 +1,6 @@
+% This is lbltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbocc10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbocc10.mf
new file mode 100644
index 00000000000..ded219a64e9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbocc10.mf
@@ -0,0 +1,7 @@
+% This is lbocc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm10.mf
new file mode 100644
index 00000000000..bd0a6ac8e7a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm10.mf
@@ -0,0 +1,7 @@
+% This is lborm10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm5.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm5.mf
new file mode 100644
index 00000000000..93b1a452531
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm5.mf
@@ -0,0 +1,7 @@
+% This is lborm5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm6.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm6.mf
new file mode 100644
index 00000000000..4ba1b86d6b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm6.mf
@@ -0,0 +1,7 @@
+% This is lborm6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm7.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm7.mf
new file mode 100644
index 00000000000..baf7901be18
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm7.mf
@@ -0,0 +1,7 @@
+% This is lborm7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm8.mf
new file mode 100644
index 00000000000..f31ce23c4b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm8.mf
@@ -0,0 +1,7 @@
+% This is lborm8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm9.mf
new file mode 100644
index 00000000000..25e724e4d36
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lborm9.mf
@@ -0,0 +1,7 @@
+% This is lborm9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl10.mf
new file mode 100644
index 00000000000..c1cb39c2187
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl10.mf
@@ -0,0 +1,7 @@
+% This is lbosl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl5.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl5.mf
new file mode 100644
index 00000000000..2edda93f141
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl5.mf
@@ -0,0 +1,7 @@
+% This is lbosl5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl6.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl6.mf
new file mode 100644
index 00000000000..4f56320a64a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl6.mf
@@ -0,0 +1,7 @@
+% This is lbosl6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl7.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl7.mf
new file mode 100644
index 00000000000..85e9f38edc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl7.mf
@@ -0,0 +1,7 @@
+% This is lbosl7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl8.mf
new file mode 100644
index 00000000000..4aac6bb6211
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl8.mf
@@ -0,0 +1,7 @@
+% This is lbosl8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl9.mf
new file mode 100644
index 00000000000..b52fd290c58
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbosl9.mf
@@ -0,0 +1,7 @@
+% This is lbosl9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lboti10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lboti10.mf
new file mode 100644
index 00000000000..1aaf47d2dc9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lboti10.mf
@@ -0,0 +1,7 @@
+% This is lboti10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbqi8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbqi8.mf
new file mode 100644
index 00000000000..9a6d85a3663
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbqi8.mf
@@ -0,0 +1,6 @@
+% This is lbqi8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbsq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbsq8.mf
new file mode 100644
index 00000000000..04b9d48a243
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbsq8.mf
@@ -0,0 +1,6 @@
+% This is lbsq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2b/lbssdc10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbssdc10.mf
new file mode 100644
index 00000000000..fe7a7c967a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2b/lbssdc10.mf
@@ -0,0 +1,6 @@
+% This is lbssdc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/ilclb8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilclb8.mf
new file mode 100644
index 00000000000..3b3b65bd6d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilclb8.mf
@@ -0,0 +1,7 @@
+% This is ilclb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/ilcli8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilcli8.mf
new file mode 100644
index 00000000000..43b99d090ec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilcli8.mf
@@ -0,0 +1,7 @@
+% This is ilcli8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/ilclo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilclo8.mf
new file mode 100644
index 00000000000..06971e8be0d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilclo8.mf
@@ -0,0 +1,7 @@
+% This is ilclo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/ilclq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilclq8.mf
new file mode 100644
index 00000000000..f98f2a15cab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilclq8.mf
@@ -0,0 +1,7 @@
+% This is ilclq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/ilcltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilcltt8.mf
new file mode 100644
index 00000000000..2059ade24ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/ilcltt8.mf
@@ -0,0 +1,7 @@
+% This is ilcltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbbx10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbbx10.mf
new file mode 100644
index 00000000000..c2686cc6252
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbbx10.mf
@@ -0,0 +1,7 @@
+% This is lcbbx10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo10.mf
new file mode 100644
index 00000000000..c20aa5af744
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo10.mf
@@ -0,0 +1,7 @@
+% This is lcbmo10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo17.mf
new file mode 100644
index 00000000000..b230059346f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo17.mf
@@ -0,0 +1,7 @@
+% This is lcbmo17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo8.mf
new file mode 100644
index 00000000000..d63735866f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo8.mf
@@ -0,0 +1,7 @@
+% This is lcbmo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo9.mf
new file mode 100644
index 00000000000..d238c9c04ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmo9.mf
@@ -0,0 +1,7 @@
+% This is lcbmo9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr10.mf
new file mode 100644
index 00000000000..318194ffeff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr10.mf
@@ -0,0 +1,7 @@
+% This is lcbmr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr17.mf
new file mode 100644
index 00000000000..6ccfec36bd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr17.mf
@@ -0,0 +1,7 @@
+% This is lcbmr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr8.mf
new file mode 100644
index 00000000000..5e0466c317f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr8.mf
@@ -0,0 +1,7 @@
+% This is lcbmr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr9.mf
new file mode 100644
index 00000000000..e2c95f357fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbmr9.mf
@@ -0,0 +1,7 @@
+% This is lcbmr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso10.mf
new file mode 100644
index 00000000000..71ee414b7f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso10.mf
@@ -0,0 +1,7 @@
+% This is lcbso10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso17.mf
new file mode 100644
index 00000000000..571097529b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso17.mf
@@ -0,0 +1,7 @@
+% This is lcbso17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso8.mf
new file mode 100644
index 00000000000..3f5e05e0240
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso8.mf
@@ -0,0 +1,7 @@
+% This is lcbso8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso9.mf
new file mode 100644
index 00000000000..ae8dc5502dc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbso9.mf
@@ -0,0 +1,7 @@
+% This is lcbso9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr10.mf
new file mode 100644
index 00000000000..1c57584d4ba
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr10.mf
@@ -0,0 +1,7 @@
+% This is lcbsr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr17.mf
new file mode 100644
index 00000000000..6b10983d85a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr17.mf
@@ -0,0 +1,7 @@
+% This is lcbsr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr8.mf
new file mode 100644
index 00000000000..3c05248549e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr8.mf
@@ -0,0 +1,7 @@
+% This is lcbsr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr9.mf
new file mode 100644
index 00000000000..994d2d08e3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbsr9.mf
@@ -0,0 +1,7 @@
+% This is lcbsr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbtl10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbtl10.mf
new file mode 100644
index 00000000000..2837342d7e5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbtl10.mf
@@ -0,0 +1,7 @@
+% This is lcbtl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbto10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbto10.mf
new file mode 100644
index 00000000000..5570d7ae44c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcbto10.mf
@@ -0,0 +1,7 @@
+% This is lcbto10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lccodes.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lccodes.mf
new file mode 100644
index 00000000000..9203717da9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lccodes.mf
@@ -0,0 +1,158 @@
+% This is lccodes.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+CYR_.A := hex"c0";
+CYR_.a := hex"e0";
+CYR_.B := hex"c1";
+CYR_.b := hex"e1";
+CYR_.V := hex"c2";
+CYR_.v := hex"e2";
+CYR_.G := hex"c3";
+CYR_.g := hex"e3";
+CYR_.D := hex"c4";
+CYR_.d := hex"e4";
+CYR_.E := hex"c5";
+CYR_.e := hex"e5";
+CYR_.ZH := hex"c6";
+CYR_.zh := hex"e6";
+CYR_.Z := hex"c7";
+CYR_.z := hex"e7";
+CYR_.I := hex"c8";
+CYR_.i := hex"e8";
+CYR_.I_shrt := hex"c9";
+CYR_.i_shrt := hex"e9";
+CYR_.K := hex"ca";
+CYR_.k := hex"ea";
+CYR_.L := hex"cb";
+CYR_.l := hex"eb";
+CYR_.M := hex"cc";
+CYR_.m := hex"ec";
+CYR_.N := hex"cd";
+CYR_.n := hex"ed";
+CYR_.O := hex"ce";
+CYR_.o := hex"ee";
+CYR_.P := hex"cf";
+CYR_.p := hex"ef";
+CYR_.R := hex"d0";
+CYR_.r := hex"f0";
+CYR_.S := hex"d1";
+CYR_.s := hex"f1";
+CYR_.T := hex"d2";
+CYR_.t := hex"f2";
+CYR_.U := hex"d3";
+CYR_.u := hex"f3";
+CYR_.F := hex"d4";
+CYR_.f := hex"f4";
+CYR_.H := hex"d5";
+CYR_.h := hex"f5";
+CYR_.C := hex"d6";
+CYR_.c := hex"f6";
+CYR_.CH := hex"d7";
+CYR_.ch := hex"f7";
+CYR_.SH := hex"d8";
+CYR_.sh := hex"f8";
+CYR_.SHCH := hex"d9";
+CYR_.shch := hex"f9";
+CYR_.HRDSN := hex"da";
+CYR_.hrdsn := hex"fa";
+CYR_.ERY := hex"db";
+CYR_.ery := hex"fb";
+CYR_.SFTSN := hex"dc";
+CYR_.sftsn := hex"fc";
+CYR_.EREV := hex"dd";
+CYR_.erev := hex"fd";
+CYR_.YU := hex"de";
+CYR_.yu := hex"fe";
+CYR_.YA := hex"df";
+CYR_.ya := hex"ff";
+CYR_.YO := hex"9c";
+CYR_.yo := hex"bc";
+CYR_.ABH_CH := hex"91";
+CYR_.abh_ch := hex"b1";
+CYR_.ABH_CH_dsc := hex"92";
+CYR_.abh_ch_dsc := hex"b2";
+CYR_.K_hcrs := hex"8b";
+CYR_.k_hcrs := hex"ab";
+CYR_.L_dsc := hex"8a";
+CYR_.l_dsc := hex"aa";
+CYR_.M_dsc := hex"88";
+CYR_.m_dsc := hex"a8";
+CYR_.ABH_HA := hex"97";
+CYR_.abh_ha := hex"b7";
+CYR_.P_tl := hex"80";
+CYR_.p_tl := hex"a0";
+CYR_.R_dsc := hex"85";
+CYR_.r_dsc := hex"a5";
+CYR_.T_dsc := hex"82";
+CYR_.t_dsc := hex"a2";
+CYR_.TETSE := hex"81";
+CYR_.tetse := hex"a1";
+CYR_.DZHE := hex"96";
+CYR_.dzhe := hex"b6";
+CYR_.SEMISN := hex"93";
+CYR_.semisn := hex"b3";
+CYR_.I_shdsc := hex"94";
+CYR_.i_shdsc := hex"b4";
+CYR_.R_tl := hex"9b";
+CYR_.r_tl := hex"bb";
+CYR_.N_ltl := hex"99";
+CYR_.n_ltl := hex"b9";
+CYR_.R_gcrs := hex"86";
+CYR_.r_gcrs := hex"a6";
+CYR_.M_tl := hex"8e";
+CYR_.m_tl := hex"ae";
+CYR_.G_tl := hex"83";
+CYR_.g_tl := hex"a3";
+CYR_.SHHA := hex"84";
+CYR_.shha := hex"a4";
+CYR_.ABH_DZE := hex"87";
+CYR_.abh_dze := hex"a7";
+CYR_.K_dsc := hex"89";
+CYR_.k_dsc := hex"a9";
+CYR_.L_tl := hex"8c";
+CYR_.l_tl := hex"ac";
+CYR_.N_dsc := hex"8d";
+CYR_.n_dsc := hex"ad";
+CYR_.N_tl := hex"8f";
+CYR_.n_tl := hex"af";
+CYR_.OTLD := hex"90";
+CYR_.otld := hex"b0";
+CYR_.H_dsc := hex"95";
+CYR_.h_dsc := hex"b5";
+CYR_.CH_rdsc := hex"98";
+CYR_.ch_rdsc := hex"b8";
+CYR_.SCHWA := hex"9a";
+CYR_.schwa := hex"ba";
+CYR_.Agrave := hex"00";
+CYR_.Aacute := hex"01";
+CYR_.Ahat := hex"02";
+CYR_.Atilde := hex"03";
+CYR_.Aumlaut := hex"04";
+CYR_.Aacute_dbl := hex"05";
+CYR_.Aring := hex"06";
+CYR_.Ahachek := hex"07";
+CYR_.Abreve := hex"08";
+CYR_.Abar := hex"09";
+CYR_.Adot := hex"0a";
+CYR_.Acedilla := hex"0b";
+CYR_.Aogonek := hex"0c";
+CYR_.palochka := hex"0d";
+CYR_.angle_left := hex"0e";
+CYR_.angle_right := hex"0f";
+CYR_.Afrown := hex"12";
+CYR_.Agrave_dbl := hex"13";
+CYR_.Acyrbreve := hex"14";
+CYR_.dash := hex"16";
+CYR_.wordmark := hex"17";
+CYR_.pmzero := hex"18";
+CYR_.i_dotl := hex"19";
+CYR_.j_dotl := hex"1a";
+CYR_.dbl_quotes := hex"22";
+CYR_.No := hex"9d";
+CYR_.currency := hex"9e";
+CYR_.section := hex"9f";
+CYR_.baseqq := hex"bd";
+CYR_.flqq := hex"be";
+CYR_.frqq := hex"bf";
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lclb8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lclb8.mf
new file mode 100644
index 00000000000..8d8e7c89568
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lclb8.mf
@@ -0,0 +1,6 @@
+% This is lclb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcli8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcli8.mf
new file mode 100644
index 00000000000..073c9d7e802
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcli8.mf
@@ -0,0 +1,6 @@
+% This is lcli8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcliker.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcliker.mf
new file mode 100644
index 00000000000..d4687ccfb3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcliker.mf
@@ -0,0 +1,1243 @@
+% This is lcliker.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+
+beginligtable
+ labelchar (
+ CYR_.HRDSN
+ ,CYR_.SFTSN
+ ,CYR_.SEMISN
+ ,CYR_.P_tl
+ ,CYR_.SHHA
+ );
+ setkern [k#] (
+ CYR_.ZH
+ ,CYR_.H
+ ,CYR_.H_dsc
+ );
+ labelchar (
+ CYR_.A
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.S
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.T_dsc
+ ,CYR_.HRDSN
+ ,CYR_.SEMISN
+ ,CYR_.TETSE
+ ,CYR_.CH
+ ,CYR_.CH_rdsc
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ ,CYR_.u
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.tetse
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.n
+ ,CYR_.n_dsc
+ ,CYR_.n_tl
+ ,CYR_.p
+ ,CYR_.p_tl
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.yu
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ );
+ fi
+ fi
+ endligtable;
+
+if concrete:
+
+ beginligtable
+ labelchar ( CYR_.D );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.S
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.T_dsc
+ ,CYR_.HRDSN
+ ,CYR_.SEMISN
+ ,CYR_.TETSE
+ ,CYR_.CH
+ ,CYR_.CH_rdsc
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ ,CYR_.u
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.tetse
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.n
+ ,CYR_.n_dsc
+ ,CYR_.n_tl
+ ,CYR_.p
+ ,CYR_.p_tl
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.yu
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ );
+ fi
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.L );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.S
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.T_dsc
+ ,CYR_.HRDSN
+ ,CYR_.SEMISN
+ ,CYR_.TETSE
+ ,CYR_.CH
+ ,CYR_.CH_rdsc
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ ,CYR_.u
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.tetse
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.n
+ ,CYR_.n_dsc
+ ,CYR_.n_tl
+ ,CYR_.p
+ ,CYR_.p_tl
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.yu
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ );
+ fi
+ fi
+ endligtable;
+
+fi
+
+beginligtable
+ labelchar ( CYR_.K );
+ labelchar (
+ CYR_.K_dsc
+ ,CYR_.K_hcrs
+ ,CYR_.ZH
+ ,CYR_.H
+ ,CYR_.H_dsc
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.S
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ );
+ fi
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.YU
+ ,CYR_.EREV
+ ,CYR_.SCHWA
+ );
+ setkern [k#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ ,CYR_.ZH
+ ,CYR_.H
+ ,CYR_.H_dsc
+ ,CYR_.U
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.u
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar ( CYR_.T );
+ labelchar (
+ CYR_.T_dsc
+ ,CYR_.G
+ );
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.u
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.f
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.hrdsn
+ ,CYR_.tetse
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ ,CYR_.m_tl
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.U
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.A
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.A
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.S
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ fi
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.hrdsn
+ ,CYR_.tetse
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ ,CYR_.m_tl
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.R
+ ,CYR_.R_dsc
+ ,CYR_.R_gcrs
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.D
+ ,CYR_.L
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ if serifs:
+ ,CYR_.YA
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ fi
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [k#] (
+ CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ );
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+if TITLEfont: endinput \\ fi;
+
+if SmallCapsfont:
+
+ u#:=lower.u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+
+
+ beginligtable
+ labelchar (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ fi
+ ,CYR_.semisn
+ ,CYR_.p_tl
+ if SmallCapsfont:
+ ,CYR_.shha
+ fi
+ if SmallCapsfont:
+ fi
+ if serifs:
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.u
+ );
+ endligtable;
+
+ if concrete:
+
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.u
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ );
+ setkern [kk#] (
+ CYR_.u
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.k_dsc
+ ,CYR_.k_hcrs
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.h_dsc
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.erev
+ ,CYR_.schwa
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.u
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.t_dsc
+ ,CYR_.g
+ ,CYR_.r
+ ,CYR_.r_dsc
+ ,CYR_.r_gcrs
+ ,CYR_.r_tl
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ if serifs:
+ ,CYR_.ya
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.s
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+else:
+
+ if ROMANfont:
+
+
+ beginligtable
+ labelchar (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.u
+ if serifs:
+ fi
+ );
+ endligtable;
+
+ if concrete:
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.u
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.s
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ ,CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.u
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+ fi
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.t_dsc
+ ,CYR_.g
+ if kapitel:
+ ,CYR_.r
+ fi
+ );
+ if serifs:
+ setkern [k#] (
+ CYR_.a
+ );
+ fi
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ya
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.k_dsc
+ ,CYR_.k_hcrs
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.h_dsc
+ );
+ setkern [k#] (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.s
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ );
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.s
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ ,CYR_.ya
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ );
+ setkern [-u#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+ else:
+
+
+ beginligtable
+ labelchar ( CYR_.e );
+ labelchar (
+ CYR_.yo
+ );
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ ,CYR_.m_tl
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ ,CYR_.m_tl
+ ,CYR_.hrdsn
+ ,CYR_.tetse
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar (
+ CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ fi
+ ,CYR_.semisn
+ ,CYR_.p_tl
+ if SmallCapsfont:
+ ,CYR_.shha
+ fi
+ if SmallCapsfont:
+ fi
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ if ROMANfont:
+ setkern [-u#] (
+ CYR_.u
+ );
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.semisn
+ ,CYR_.tetse
+ );
+ if concrete:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ ,CYR_.m_tl
+ ,CYR_.hrdsn
+ ,CYR_.tetse
+ );
+ fi
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_rdsc
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.s );
+ labelchar (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.r
+ ,CYR_.f
+ ,CYR_.erev
+ ,CYR_.schwa
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.ya
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ else:
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ ,CYR_.m_tl
+ );
+ fi
+ endligtable;
+
+fi
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lclo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lclo8.mf
new file mode 100644
index 00000000000..12f7d9ba899
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lclo8.mf
@@ -0,0 +1,6 @@
+% This is lclo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lclq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lclq8.mf
new file mode 100644
index 00000000000..71d19510129
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lclq8.mf
@@ -0,0 +1,6 @@
+% This is lclq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcltt8.mf
new file mode 100644
index 00000000000..74329c602d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcltt8.mf
@@ -0,0 +1,6 @@
+% This is lcltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcocc10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcocc10.mf
new file mode 100644
index 00000000000..b72c6d8b991
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcocc10.mf
@@ -0,0 +1,7 @@
+% This is lcocc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm10.mf
new file mode 100644
index 00000000000..9e2598b9fbf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm10.mf
@@ -0,0 +1,7 @@
+% This is lcorm10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm5.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm5.mf
new file mode 100644
index 00000000000..a61300a2885
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm5.mf
@@ -0,0 +1,7 @@
+% This is lcorm5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm6.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm6.mf
new file mode 100644
index 00000000000..baab2be1e75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm6.mf
@@ -0,0 +1,7 @@
+% This is lcorm6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm7.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm7.mf
new file mode 100644
index 00000000000..fe5f1e5f308
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm7.mf
@@ -0,0 +1,7 @@
+% This is lcorm7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm8.mf
new file mode 100644
index 00000000000..86af34226b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm8.mf
@@ -0,0 +1,7 @@
+% This is lcorm8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm9.mf
new file mode 100644
index 00000000000..f0a2ba0bf71
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcorm9.mf
@@ -0,0 +1,7 @@
+% This is lcorm9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl10.mf
new file mode 100644
index 00000000000..3bb86f957b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl10.mf
@@ -0,0 +1,7 @@
+% This is lcosl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl5.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl5.mf
new file mode 100644
index 00000000000..0b724740208
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl5.mf
@@ -0,0 +1,7 @@
+% This is lcosl5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl6.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl6.mf
new file mode 100644
index 00000000000..7c38e647447
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl6.mf
@@ -0,0 +1,7 @@
+% This is lcosl6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl7.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl7.mf
new file mode 100644
index 00000000000..e3b29e6fc5c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl7.mf
@@ -0,0 +1,7 @@
+% This is lcosl7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl8.mf
new file mode 100644
index 00000000000..a343fb0ef46
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl8.mf
@@ -0,0 +1,7 @@
+% This is lcosl8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl9.mf
new file mode 100644
index 00000000000..911d79b9e7a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcosl9.mf
@@ -0,0 +1,7 @@
+% This is lcosl9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcoti10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcoti10.mf
new file mode 100644
index 00000000000..0aca48eb5ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcoti10.mf
@@ -0,0 +1,7 @@
+% This is lcoti10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcqi8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcqi8.mf
new file mode 100644
index 00000000000..8cfebc2bd28
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcqi8.mf
@@ -0,0 +1,6 @@
+% This is lcqi8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcsq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcsq8.mf
new file mode 100644
index 00000000000..6981ef60dd3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcsq8.mf
@@ -0,0 +1,6 @@
+% This is lcsq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2c/lcssdc10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcssdc10.mf
new file mode 100644
index 00000000000..17925242895
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2c/lcssdc10.mf
@@ -0,0 +1,6 @@
+% This is lcssdc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ildlb8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildlb8.mf
new file mode 100644
index 00000000000..a3444753916
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildlb8.mf
@@ -0,0 +1,7 @@
+% This is ildlb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ildli8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildli8.mf
new file mode 100644
index 00000000000..c858cdbbd91
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildli8.mf
@@ -0,0 +1,7 @@
+% This is ildli8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ildlo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildlo8.mf
new file mode 100644
index 00000000000..df13f58439a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildlo8.mf
@@ -0,0 +1,7 @@
+% This is ildlo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ildlq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildlq8.mf
new file mode 100644
index 00000000000..220ffc265fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildlq8.mf
@@ -0,0 +1,7 @@
+% This is ildlq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ildltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildltt8.mf
new file mode 100644
index 00000000000..a64dc5d90e5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ildltt8.mf
@@ -0,0 +1,7 @@
+% This is ildltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbbx10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbbx10.mf
new file mode 100644
index 00000000000..9bd60bfc6fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbbx10.mf
@@ -0,0 +1,7 @@
+% This is ldbbx10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo10.mf
new file mode 100644
index 00000000000..3edadb2d648
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo10.mf
@@ -0,0 +1,7 @@
+% This is ldbmo10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo17.mf
new file mode 100644
index 00000000000..66ff6853ff8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo17.mf
@@ -0,0 +1,7 @@
+% This is ldbmo17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo8.mf
new file mode 100644
index 00000000000..19c496b060e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo8.mf
@@ -0,0 +1,7 @@
+% This is ldbmo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo9.mf
new file mode 100644
index 00000000000..45c2fad3f14
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmo9.mf
@@ -0,0 +1,7 @@
+% This is ldbmo9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr10.mf
new file mode 100644
index 00000000000..c41199764ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr10.mf
@@ -0,0 +1,7 @@
+% This is ldbmr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr17.mf
new file mode 100644
index 00000000000..0ddfc9095fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr17.mf
@@ -0,0 +1,7 @@
+% This is ldbmr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr8.mf
new file mode 100644
index 00000000000..a25097c38be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr8.mf
@@ -0,0 +1,7 @@
+% This is ldbmr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr9.mf
new file mode 100644
index 00000000000..273bbb6c56e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbmr9.mf
@@ -0,0 +1,7 @@
+% This is ldbmr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso10.mf
new file mode 100644
index 00000000000..c1101079457
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso10.mf
@@ -0,0 +1,7 @@
+% This is ldbso10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso17.mf
new file mode 100644
index 00000000000..aa903bc4884
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso17.mf
@@ -0,0 +1,7 @@
+% This is ldbso17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso8.mf
new file mode 100644
index 00000000000..f9e14f934ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso8.mf
@@ -0,0 +1,7 @@
+% This is ldbso8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso9.mf
new file mode 100644
index 00000000000..6dfae194d4c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbso9.mf
@@ -0,0 +1,7 @@
+% This is ldbso9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr10.mf
new file mode 100644
index 00000000000..3081c813ede
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr10.mf
@@ -0,0 +1,7 @@
+% This is ldbsr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr17.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr17.mf
new file mode 100644
index 00000000000..c9878bd9d7a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr17.mf
@@ -0,0 +1,7 @@
+% This is ldbsr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr8.mf
new file mode 100644
index 00000000000..5c860f386c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr8.mf
@@ -0,0 +1,7 @@
+% This is ldbsr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr9.mf
new file mode 100644
index 00000000000..37eed888243
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbsr9.mf
@@ -0,0 +1,7 @@
+% This is ldbsr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbtl10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbtl10.mf
new file mode 100644
index 00000000000..0d5677e0023
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbtl10.mf
@@ -0,0 +1,7 @@
+% This is ldbtl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbto10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbto10.mf
new file mode 100644
index 00000000000..c08b8d1899c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldbto10.mf
@@ -0,0 +1,7 @@
+% This is ldbto10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldcodes.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldcodes.mf
new file mode 100644
index 00000000000..73eb8410f0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldcodes.mf
@@ -0,0 +1,163 @@
+% This is ldcodes.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+CYR_.A := hex"c0";
+CYR_.a := hex"e0";
+CYR_.B := hex"c1";
+CYR_.b := hex"e1";
+CYR_.V := hex"c2";
+CYR_.v := hex"e2";
+CYR_.G := hex"c3";
+CYR_.g := hex"e3";
+CYR_.D := hex"c4";
+CYR_.d := hex"e4";
+CYR_.E := hex"c5";
+CYR_.e := hex"e5";
+CYR_.ZH := hex"c6";
+CYR_.zh := hex"e6";
+CYR_.Z := hex"c7";
+CYR_.z := hex"e7";
+CYR_.I := hex"c8";
+CYR_.i := hex"e8";
+CYR_.I_shrt := hex"c9";
+CYR_.i_shrt := hex"e9";
+CYR_.K := hex"ca";
+CYR_.k := hex"ea";
+CYR_.L := hex"cb";
+CYR_.l := hex"eb";
+CYR_.M := hex"cc";
+CYR_.m := hex"ec";
+CYR_.N := hex"cd";
+CYR_.n := hex"ed";
+CYR_.O := hex"ce";
+CYR_.o := hex"ee";
+CYR_.P := hex"cf";
+CYR_.p := hex"ef";
+CYR_.R := hex"d0";
+CYR_.r := hex"f0";
+CYR_.S := hex"d1";
+CYR_.s := hex"f1";
+CYR_.T := hex"d2";
+CYR_.t := hex"f2";
+CYR_.U := hex"d3";
+CYR_.u := hex"f3";
+CYR_.F := hex"d4";
+CYR_.f := hex"f4";
+CYR_.H := hex"d5";
+CYR_.h := hex"f5";
+CYR_.C := hex"d6";
+CYR_.c := hex"f6";
+CYR_.CH := hex"d7";
+CYR_.ch := hex"f7";
+CYR_.SH := hex"d8";
+CYR_.sh := hex"f8";
+CYR_.SHCH := hex"d9";
+CYR_.shch := hex"f9";
+CYR_.HRDSN := hex"da";
+CYR_.hrdsn := hex"fa";
+CYR_.ERY := hex"db";
+CYR_.ery := hex"fb";
+CYR_.SFTSN := hex"dc";
+CYR_.sftsn := hex"fc";
+CYR_.EREV := hex"dd";
+CYR_.erev := hex"fd";
+CYR_.YU := hex"de";
+CYR_.yu := hex"fe";
+CYR_.YA := hex"df";
+CYR_.ya := hex"ff";
+CYR_.YO := hex"9c";
+CYR_.yo := hex"bc";
+CYR_.LAT_S := hex"8f";
+CYR_.lat_s := hex"af";
+CYR_.YAT := hex"93";
+CYR_.yat := hex"b3";
+CYR_.B_YUS := hex"97";
+CYR_.b_yus := hex"b7";
+CYR_.IZH := hex"8a";
+CYR_.izh := hex"aa";
+CYR_.UKR_E := hex"99";
+CYR_.ukr_e := hex"b9";
+CYR_.EPS := hex"9b";
+CYR_.eps := hex"bb";
+CYR_.Agrave := hex"00";
+CYR_.Aacute := hex"01";
+CYR_.Ahat := hex"02";
+CYR_.Atilde := hex"03";
+CYR_.Aumlaut := hex"04";
+CYR_.Aacute_dbl := hex"05";
+CYR_.Aring := hex"06";
+CYR_.Ahachek := hex"07";
+CYR_.Abreve := hex"08";
+CYR_.Abar := hex"09";
+CYR_.Adot := hex"0a";
+CYR_.angle_left := hex"0e";
+CYR_.angle_right := hex"0f";
+CYR_.Afrown := hex"12";
+CYR_.Agrave_dbl := hex"13";
+CYR_.Acyrbreve := hex"14";
+CYR_.dash := hex"16";
+CYR_.pmzero := hex"18";
+CYR_.i_dotl := hex"19";
+CYR_.j_dotl := hex"1a";
+CYR_.dbl_quotes := hex"22";
+CYR_.No := hex"9d";
+CYR_.section := hex"9f";
+CYR_.baseqq := hex"bd";
+CYR_.flqq := hex"be";
+CYR_.frqq := hex"bf";
+CYR_.titlo := hex"0b";
+CYR_.palatal := hex"0c";
+CYR_.paerok := hex"0d";
+CYR_.kamora := hex"17";
+CYR_.psili := hex"1b";
+CYR_.dasia := hex"1c";
+CYR_.zvat := hex"1d";
+CYR_.pneuac := hex"1e";
+CYR_.pneugr := hex"1f";
+CYR_.thousands := hex"9e";
+CYR_.AZ := hex"80";
+CYR_.az := hex"a0";
+CYR_.I_AZ := hex"81";
+CYR_.i_az := hex"a1";
+CYR_.L_YUS := hex"82";
+CYR_.l_yus := hex"a2";
+CYR_.IL_YUS := hex"83";
+CYR_.il_yus := hex"a3";
+CYR_.GERV := hex"84";
+CYR_.gerv := hex"a4";
+CYR_.NASH := hex"85";
+CYR_.nash := hex"a5";
+CYR_.ZEMLA := hex"86";
+CYR_.zemla := hex"a6";
+CYR_.KSI := hex"87";
+CYR_.ksi := hex"a7";
+CYR_.VIZHE := hex"88";
+CYR_.vizhe := hex"a8";
+CYR_.IZHE := hex"89";
+CYR_.izhe := hex"a9";
+CYR_.OMGA := hex"8b";
+CYR_.omga := hex"ab";
+CYR_.OMGA_rnd := hex"8c";
+CYR_.omga_rnd := hex"ac";
+CYR_.OT := hex"8d";
+CYR_.ot := hex"ad";
+CYR_.OMGA_tlo := hex"8e";
+CYR_.omga_tlo := hex"ae";
+CYR_.FITA := hex"90";
+CYR_.fita := hex"b0";
+CYR_.KOPPA := hex"91";
+CYR_.koppa := hex"b1";
+CYR_.UK := hex"92";
+CYR_.uk := hex"b2";
+CYR_.CHERV := hex"94";
+CYR_.cherv := hex"b4";
+CYR_.PSI := hex"95";
+CYR_.psi := hex"b5";
+CYR_.SHTA := hex"96";
+CYR_.shta := hex"b6";
+CYR_.IB_YUS := hex"98";
+CYR_.ib_yus := hex"b8";
+CYR_.I_EST := hex"9a";
+CYR_.i_est := hex"ba";
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldlb8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldlb8.mf
new file mode 100644
index 00000000000..8142c5b560d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldlb8.mf
@@ -0,0 +1,6 @@
+% This is ldlb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldli8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldli8.mf
new file mode 100644
index 00000000000..78e34cbc215
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldli8.mf
@@ -0,0 +1,6 @@
+% This is ldli8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldliker.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldliker.mf
new file mode 100644
index 00000000000..cefe39cefa1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldliker.mf
@@ -0,0 +1,1572 @@
+% This is ldliker.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+
+beginligtable
+ labelchar (
+ CYR_.HRDSN
+ ,CYR_.SFTSN
+ ,CYR_.YAT
+ );
+ setkern [k#] (
+ CYR_.ZH
+ ,CYR_.H
+ );
+ labelchar (
+ CYR_.A
+ ,CYR_.L_YUS
+ ,CYR_.IL_YUS
+ if serifs:
+ ,CYR_.B_YUS
+ ,CYR_.IB_YUS
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OMGA
+ ,CYR_.OMGA_tlo
+ ,CYR_.OT
+ ,CYR_.PSI
+ ,CYR_.FITA
+ ,CYR_.OMGA_rnd
+ ,CYR_.S
+ ,CYR_.UKR_E
+ ,CYR_.KOPPA
+ ,CYR_.AZ
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.YAT
+ ,CYR_.CH
+ ,CYR_.CHERV
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ );
+ setkern [kkk#] (
+ CYR_.IZH
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ );
+ setkern [kk#] (
+ CYR_.IZH
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.ch
+ ,CYR_.cherv
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.cherv
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.izh
+ ,CYR_.k
+ ,CYR_.n
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.yat
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ );
+ fi
+ fi
+ endligtable;
+
+if concrete:
+
+ beginligtable
+ labelchar ( CYR_.D );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OMGA
+ ,CYR_.OMGA_tlo
+ ,CYR_.OT
+ ,CYR_.PSI
+ ,CYR_.FITA
+ ,CYR_.OMGA_rnd
+ ,CYR_.S
+ ,CYR_.UKR_E
+ ,CYR_.KOPPA
+ ,CYR_.AZ
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.YAT
+ ,CYR_.CH
+ ,CYR_.CHERV
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ );
+ setkern [kkk#] (
+ CYR_.IZH
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ );
+ setkern [kk#] (
+ CYR_.IZH
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.ch
+ ,CYR_.cherv
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.cherv
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.izh
+ ,CYR_.k
+ ,CYR_.n
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.yat
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ );
+ fi
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.L );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OMGA
+ ,CYR_.OMGA_tlo
+ ,CYR_.OT
+ ,CYR_.PSI
+ ,CYR_.FITA
+ ,CYR_.OMGA_rnd
+ ,CYR_.S
+ ,CYR_.UKR_E
+ ,CYR_.KOPPA
+ ,CYR_.AZ
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.HRDSN
+ ,CYR_.YAT
+ ,CYR_.CH
+ ,CYR_.CHERV
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ );
+ setkern [kkk#] (
+ CYR_.IZH
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ );
+ setkern [kk#] (
+ CYR_.IZH
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.ch
+ ,CYR_.cherv
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.cherv
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.izh
+ ,CYR_.k
+ ,CYR_.n
+ ,CYR_.p
+ ,CYR_.t
+ ,CYR_.yu
+ ,CYR_.yat
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ );
+ fi
+ fi
+ endligtable;
+
+fi
+
+beginligtable
+ labelchar ( CYR_.K );
+ labelchar (
+ CYR_.ZH
+ ,CYR_.H
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OMGA
+ ,CYR_.OMGA_tlo
+ ,CYR_.OT
+ ,CYR_.PSI
+ ,CYR_.FITA
+ ,CYR_.OMGA_rnd
+ ,CYR_.S
+ ,CYR_.UKR_E
+ ,CYR_.KOPPA
+ ,CYR_.AZ
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ );
+ else:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.cherv
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ fi
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OMGA
+ ,CYR_.OMGA_tlo
+ ,CYR_.OT
+ ,CYR_.PSI
+ ,CYR_.FITA
+ ,CYR_.OMGA_rnd
+ ,CYR_.YU
+ ,CYR_.EREV
+ );
+ setkern [k#] (
+ CYR_.A
+ ,CYR_.L_YUS
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ ,CYR_.ZH
+ ,CYR_.H
+ ,CYR_.U
+ ,CYR_.IZH
+ if serifs:
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.izh
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar ( CYR_.T );
+ labelchar (
+ CYR_.G
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.L_YUS
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ fi
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.izh
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.f
+ ,CYR_.psi
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.l_yus
+ );
+ else:
+ setkern [kk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.IZH
+ );
+ if serifs:
+ setkern [kkk#] (
+ CYR_.A
+ ,CYR_.L_YUS
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ );
+ else:
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.L_YUS
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OMGA
+ ,CYR_.OMGA_tlo
+ ,CYR_.OT
+ ,CYR_.PSI
+ ,CYR_.FITA
+ ,CYR_.OMGA_rnd
+ ,CYR_.S
+ ,CYR_.UKR_E
+ ,CYR_.KOPPA
+ ,CYR_.AZ
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ fi
+ if ROMANfont:
+ if serifs:
+ setkern [kkk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.l_yus
+ );
+ else:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.l_yus
+ );
+ fi
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.U
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.L_YUS
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.A
+ ,CYR_.L_YUS
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OMGA
+ ,CYR_.OMGA_tlo
+ ,CYR_.OT
+ ,CYR_.PSI
+ ,CYR_.FITA
+ ,CYR_.OMGA_rnd
+ ,CYR_.S
+ ,CYR_.UKR_E
+ ,CYR_.KOPPA
+ ,CYR_.AZ
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ );
+ fi
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.l_yus
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ ,CYR_.l
+ ,CYR_.m
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.R
+ ,CYR_.CHERV
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.L_YUS
+ ,CYR_.D
+ ,CYR_.L
+ if serifs:
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ fi
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.VIZHE
+ );
+ setkern [-k#] (
+ CYR_.VIZHE
+ );
+ endligtable;
+
+if TITLEfont: endinput \\ fi;
+
+if SmallCapsfont:
+
+ u#:=lower.u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+
+
+ beginligtable
+ labelchar (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.il_yus
+ ,CYR_.a
+ ,CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ fi
+ ,CYR_.yat
+ if SmallCapsfont:
+ fi
+ if SmallCapsfont:
+ fi
+ if serifs:
+ ,CYR_.b_yus
+ ,CYR_.ib_yus
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.ch
+ ,CYR_.cherv
+ );
+ setkern [kk#] (
+ CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ endligtable;
+
+ if concrete:
+
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.ch
+ ,CYR_.cherv
+ );
+ setkern [kk#] (
+ CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.ch
+ ,CYR_.cherv
+ );
+ setkern [kk#] (
+ CYR_.u
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.zh
+ ,CYR_.h
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.erev
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.u
+ ,CYR_.izh
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.g
+ ,CYR_.r
+ ,CYR_.cherv
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.izh
+ );
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.a
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.izhe
+ );
+ setkern [-k#] (
+ CYR_.izhe
+ );
+ endligtable;
+
+else:
+
+ if ROMANfont:
+
+
+ beginligtable
+ labelchar (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.cherv
+ ,CYR_.u
+ if serifs:
+ ,CYR_.izh
+ fi
+ );
+ endligtable;
+
+ if concrete:
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.ch
+ ,CYR_.cherv
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.cherv
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.ch
+ ,CYR_.cherv
+ ,CYR_.u
+ ,CYR_.izh
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.cherv
+ );
+ endligtable;
+
+ fi
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.g
+ if kapitel:
+ ,CYR_.r
+ fi
+ );
+ if serifs:
+ setkern [k#] (
+ CYR_.a
+ );
+ fi
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.ya
+ ,CYR_.b_yus
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.zh
+ ,CYR_.h
+ );
+ setkern [k#] (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.e
+ ,CYR_.yo
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.izh
+ );
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.ya
+ ,CYR_.b_yus
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.l_yus
+ );
+ setkern [-u#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+ else:
+
+
+ beginligtable
+ labelchar ( CYR_.e );
+ labelchar (
+ CYR_.yo
+ );
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.psi
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.izh
+ );
+ setkern [kk#] (
+ CYR_.l
+ ,CYR_.m
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.cherv
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar (
+ CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ fi
+ ,CYR_.yat
+ if SmallCapsfont:
+ fi
+ if SmallCapsfont:
+ fi
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.l_yus
+ ,CYR_.il_yus
+ );
+ if ROMANfont:
+ setkern [-u#] (
+ CYR_.u
+ ,CYR_.izh
+ );
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ );
+ if concrete:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.izh
+ ,CYR_.hrdsn
+ );
+ fi
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.cherv
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.s );
+ labelchar (
+ CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.r
+ ,CYR_.f
+ ,CYR_.psi
+ ,CYR_.erev
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.zh
+ ,CYR_.h
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.l_yus
+ );
+ else:
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.psi
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ );
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.b_yus
+ ,CYR_.ib_yus
+ );
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.omga
+ ,CYR_.omga_tlo
+ ,CYR_.ot
+ ,CYR_.fita
+ ,CYR_.omga_rnd
+ ,CYR_.s
+ ,CYR_.ukr_e
+ ,CYR_.koppa
+ ,CYR_.az
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.t
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.izh
+ ,CYR_.u
+ );
+ endligtable;
+
+fi
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldlo8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldlo8.mf
new file mode 100644
index 00000000000..db1e812e299
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldlo8.mf
@@ -0,0 +1,6 @@
+% This is ldlo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldlq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldlq8.mf
new file mode 100644
index 00000000000..9110a0d417a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldlq8.mf
@@ -0,0 +1,6 @@
+% This is ldlq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldltt8.mf
new file mode 100644
index 00000000000..587d48cd2c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldltt8.mf
@@ -0,0 +1,6 @@
+% This is ldltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldocc10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldocc10.mf
new file mode 100644
index 00000000000..c72fda9deb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldocc10.mf
@@ -0,0 +1,7 @@
+% This is ldocc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm10.mf
new file mode 100644
index 00000000000..9bc194e3409
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm10.mf
@@ -0,0 +1,7 @@
+% This is ldorm10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm5.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm5.mf
new file mode 100644
index 00000000000..d3ab721f8de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm5.mf
@@ -0,0 +1,7 @@
+% This is ldorm5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm6.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm6.mf
new file mode 100644
index 00000000000..0bc57eeb728
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm6.mf
@@ -0,0 +1,7 @@
+% This is ldorm6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm7.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm7.mf
new file mode 100644
index 00000000000..242eb841dcc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm7.mf
@@ -0,0 +1,7 @@
+% This is ldorm7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm8.mf
new file mode 100644
index 00000000000..e7241ff700e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm8.mf
@@ -0,0 +1,7 @@
+% This is ldorm8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm9.mf
new file mode 100644
index 00000000000..af978073dc9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldorm9.mf
@@ -0,0 +1,7 @@
+% This is ldorm9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl10.mf
new file mode 100644
index 00000000000..6dc90ca8efe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl10.mf
@@ -0,0 +1,7 @@
+% This is ldosl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl5.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl5.mf
new file mode 100644
index 00000000000..7125b6627c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl5.mf
@@ -0,0 +1,7 @@
+% This is ldosl5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl6.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl6.mf
new file mode 100644
index 00000000000..6621a5b6932
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl6.mf
@@ -0,0 +1,7 @@
+% This is ldosl6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl7.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl7.mf
new file mode 100644
index 00000000000..c546f051018
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl7.mf
@@ -0,0 +1,7 @@
+% This is ldosl7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl8.mf
new file mode 100644
index 00000000000..e974badac9f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl8.mf
@@ -0,0 +1,7 @@
+% This is ldosl8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl9.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl9.mf
new file mode 100644
index 00000000000..04a20ff266a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldosl9.mf
@@ -0,0 +1,7 @@
+% This is ldosl9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldoti10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldoti10.mf
new file mode 100644
index 00000000000..1a68d8aad15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldoti10.mf
@@ -0,0 +1,7 @@
+% This is ldoti10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldqi8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldqi8.mf
new file mode 100644
index 00000000000..1d9c535dbd7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldqi8.mf
@@ -0,0 +1,6 @@
+% This is ldqi8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldsq8.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldsq8.mf
new file mode 100644
index 00000000000..4f7538bdeb9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldsq8.mf
@@ -0,0 +1,6 @@
+% This is ldsq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-t2d/ldssdc10.mf b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldssdc10.mf
new file mode 100644
index 00000000000..a75cfa2e97f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-t2d/ldssdc10.mf
@@ -0,0 +1,6 @@
+% This is ldssdc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/irxlb8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/irxlb8.mf
new file mode 100644
index 00000000000..e69e562c057
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/irxlb8.mf
@@ -0,0 +1,7 @@
+% This is irxlb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/irxli8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/irxli8.mf
new file mode 100644
index 00000000000..70bcfd03956
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/irxli8.mf
@@ -0,0 +1,7 @@
+% This is irxli8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/irxlo8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/irxlo8.mf
new file mode 100644
index 00000000000..0a50610e1de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/irxlo8.mf
@@ -0,0 +1,7 @@
+% This is irxlo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/irxlq8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/irxlq8.mf
new file mode 100644
index 00000000000..4f1404d7fbb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/irxlq8.mf
@@ -0,0 +1,7 @@
+% This is irxlq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/irxltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/irxltt8.mf
new file mode 100644
index 00000000000..4251414333e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/irxltt8.mf
@@ -0,0 +1,7 @@
+% This is irxltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def fonteq=3 enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbbx10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbbx10.mf
new file mode 100644
index 00000000000..772e270055b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbbx10.mf
@@ -0,0 +1,7 @@
+% This is rxbbx10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo10.mf
new file mode 100644
index 00000000000..48f9ec97b0b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo10.mf
@@ -0,0 +1,7 @@
+% This is rxbmo10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo17.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo17.mf
new file mode 100644
index 00000000000..277a2881e6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo17.mf
@@ -0,0 +1,7 @@
+% This is rxbmo17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo8.mf
new file mode 100644
index 00000000000..25fcb2f7a95
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo8.mf
@@ -0,0 +1,7 @@
+% This is rxbmo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo9.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo9.mf
new file mode 100644
index 00000000000..8a8adf41898
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmo9.mf
@@ -0,0 +1,7 @@
+% This is rxbmo9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr10.mf
new file mode 100644
index 00000000000..a6eac164776
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr10.mf
@@ -0,0 +1,7 @@
+% This is rxbmr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr17.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr17.mf
new file mode 100644
index 00000000000..c60c3fd0359
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr17.mf
@@ -0,0 +1,7 @@
+% This is rxbmr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr8.mf
new file mode 100644
index 00000000000..c157e46e754
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr8.mf
@@ -0,0 +1,7 @@
+% This is rxbmr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr9.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr9.mf
new file mode 100644
index 00000000000..d935e0373bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbmr9.mf
@@ -0,0 +1,7 @@
+% This is rxbmr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso10.mf
new file mode 100644
index 00000000000..bf32a243bc4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso10.mf
@@ -0,0 +1,7 @@
+% This is rxbso10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso17.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso17.mf
new file mode 100644
index 00000000000..c71763746fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso17.mf
@@ -0,0 +1,7 @@
+% This is rxbso17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso8.mf
new file mode 100644
index 00000000000..d975a2995a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso8.mf
@@ -0,0 +1,7 @@
+% This is rxbso8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso9.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso9.mf
new file mode 100644
index 00000000000..10cbadfe7b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbso9.mf
@@ -0,0 +1,7 @@
+% This is rxbso9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr10.mf
new file mode 100644
index 00000000000..29ac9067b75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr10.mf
@@ -0,0 +1,7 @@
+% This is rxbsr10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr17.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr17.mf
new file mode 100644
index 00000000000..e6e019d58ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr17.mf
@@ -0,0 +1,7 @@
+% This is rxbsr17.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr8.mf
new file mode 100644
index 00000000000..c03a2dd2221
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr8.mf
@@ -0,0 +1,7 @@
+% This is rxbsr8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr9.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr9.mf
new file mode 100644
index 00000000000..f1d5e38100d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbsr9.mf
@@ -0,0 +1,7 @@
+% This is rxbsr9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input ebbase;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbtl10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbtl10.mf
new file mode 100644
index 00000000000..bfd9607559b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbtl10.mf
@@ -0,0 +1,7 @@
+% This is rxbtl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxbto10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbto10.mf
new file mode 100644
index 00000000000..c4d76d304bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxbto10.mf
@@ -0,0 +1,7 @@
+% This is rxbto10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input exbase; def cmbright=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxcodes.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxcodes.mf
new file mode 100644
index 00000000000..ae0f7648d8f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxcodes.mf
@@ -0,0 +1,215 @@
+% This is rxcodes.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+CYR_.A := hex"c0";
+CYR_.a := hex"e0";
+CYR_.B := hex"c1";
+CYR_.b := hex"e1";
+CYR_.V := hex"c2";
+CYR_.v := hex"e2";
+CYR_.G := hex"c3";
+CYR_.g := hex"e3";
+CYR_.D := hex"c4";
+CYR_.d := hex"e4";
+CYR_.E := hex"c5";
+CYR_.e := hex"e5";
+CYR_.ZH := hex"c6";
+CYR_.zh := hex"e6";
+CYR_.Z := hex"c7";
+CYR_.z := hex"e7";
+CYR_.I := hex"c8";
+CYR_.i := hex"e8";
+CYR_.I_shrt := hex"c9";
+CYR_.i_shrt := hex"e9";
+CYR_.K := hex"ca";
+CYR_.k := hex"ea";
+CYR_.L := hex"cb";
+CYR_.l := hex"eb";
+CYR_.M := hex"cc";
+CYR_.m := hex"ec";
+CYR_.N := hex"cd";
+CYR_.n := hex"ed";
+CYR_.O := hex"ce";
+CYR_.o := hex"ee";
+CYR_.P := hex"cf";
+CYR_.p := hex"ef";
+CYR_.R := hex"d0";
+CYR_.r := hex"f0";
+CYR_.S := hex"d1";
+CYR_.s := hex"f1";
+CYR_.T := hex"d2";
+CYR_.t := hex"f2";
+CYR_.U := hex"d3";
+CYR_.u := hex"f3";
+CYR_.F := hex"d4";
+CYR_.f := hex"f4";
+CYR_.H := hex"d5";
+CYR_.h := hex"f5";
+CYR_.C := hex"d6";
+CYR_.c := hex"f6";
+CYR_.CH := hex"d7";
+CYR_.ch := hex"f7";
+CYR_.SH := hex"d8";
+CYR_.sh := hex"f8";
+CYR_.SHCH := hex"d9";
+CYR_.shch := hex"f9";
+CYR_.HRDSN := hex"da";
+CYR_.hrdsn := hex"fa";
+CYR_.ERY := hex"db";
+CYR_.ery := hex"fb";
+CYR_.SFTSN := hex"dc";
+CYR_.sftsn := hex"fc";
+CYR_.EREV := hex"dd";
+CYR_.erev := hex"fd";
+CYR_.YU := hex"de";
+CYR_.yu := hex"fe";
+CYR_.YA := hex"df";
+CYR_.ya := hex"ff";
+CYR_.YO := hex"9c";
+CYR_.yo := hex"bc";
+CYR_.AE := hex"41";
+CYR_.ae := hex"61";
+CYR_.DJE := hex"42";
+CYR_.dje := hex"62";
+CYR_.TSHE := hex"43";
+CYR_.tshe := hex"63";
+CYR_.ABH_CH := hex"44";
+CYR_.abh_ch := hex"64";
+CYR_.ABH_CH_dsc := hex"45";
+CYR_.abh_ch_dsc := hex"65";
+CYR_.K_vcrs := hex"46";
+CYR_.k_vcrs := hex"66";
+CYR_.K_hcrs := hex"47";
+CYR_.k_hcrs := hex"67";
+CYR_.L_dsc := hex"48";
+CYR_.l_dsc := hex"68";
+CYR_.LAT_I := hex"49";
+CYR_.lat_i := hex"69";
+CYR_.LAT_J := hex"4a";
+CYR_.lat_j := hex"6a";
+CYR_.LJE := hex"4b";
+CYR_.lje := hex"6b";
+CYR_.M_dsc := hex"4c";
+CYR_.m_dsc := hex"6c";
+CYR_.NJE := hex"4d";
+CYR_.nje := hex"6d";
+CYR_.ABH_HA := hex"4e";
+CYR_.abh_ha := hex"6e";
+CYR_.P_tl := hex"4f";
+CYR_.p_tl := hex"6f";
+CYR_.R_dsc := hex"50";
+CYR_.r_dsc := hex"70";
+CYR_.LAT_Q := hex"51";
+CYR_.lat_q := hex"71";
+CYR_.T_dsc := hex"52";
+CYR_.t_dsc := hex"72";
+CYR_.LAT_S := hex"53";
+CYR_.lat_s := hex"73";
+CYR_.TETSE := hex"54";
+CYR_.tetse := hex"74";
+CYR_.DZHE := hex"55";
+CYR_.dzhe := hex"75";
+CYR_.CH_vcrs := hex"56";
+CYR_.ch_vcrs := hex"76";
+CYR_.LAT_W := hex"57";
+CYR_.lat_w := hex"77";
+CYR_.YAT := hex"58";
+CYR_.yat := hex"78";
+CYR_.B_YUS := hex"59";
+CYR_.b_yus := hex"79";
+CYR_.IZH := hex"5a";
+CYR_.izh := hex"7a";
+CYR_.N_ltl := hex"1c";
+CYR_.n_ltl := hex"1d";
+CYR_.DELTA := hex"1e";
+CYR_.delta := hex"1f";
+CYR_.G_up := hex"80";
+CYR_.g_up := hex"a0";
+CYR_.G_hcrs := hex"81";
+CYR_.g_hcrs := hex"a1";
+CYR_.G_dsc := hex"82";
+CYR_.g_dsc := hex"a2";
+CYR_.G_tl := hex"83";
+CYR_.g_tl := hex"a3";
+CYR_.SHHA := hex"84";
+CYR_.shha := hex"a4";
+CYR_.ZH_dsc := hex"85";
+CYR_.zh_dsc := hex"a5";
+CYR_.Z_dsc := hex"86";
+CYR_.z_dsc := hex"a6";
+CYR_.ABH_DZE := hex"87";
+CYR_.abh_dze := hex"a7";
+CYR_.UKR_I := hex"88";
+CYR_.ukr_i := hex"a8";
+CYR_.K_dsc := hex"89";
+CYR_.k_dsc := hex"a9";
+CYR_.K_beak := hex"8a";
+CYR_.k_beak := hex"aa";
+CYR_.K_tl := hex"8b";
+CYR_.k_tl := hex"ab";
+CYR_.L_tl := hex"8c";
+CYR_.l_tl := hex"ac";
+CYR_.N_dsc := hex"8d";
+CYR_.n_dsc := hex"ad";
+CYR_.NG := hex"8e";
+CYR_.ng := hex"ae";
+CYR_.N_tl := hex"8f";
+CYR_.n_tl := hex"af";
+CYR_.OTLD := hex"90";
+CYR_.otld := hex"b0";
+CYR_.S_dsc := hex"91";
+CYR_.s_dsc := hex"b1";
+CYR_.U_shrt := hex"92";
+CYR_.u_shrt := hex"b2";
+CYR_.Y := hex"93";
+CYR_.y := hex"b3";
+CYR_.Y_hcrs := hex"94";
+CYR_.y_hcrs := hex"b4";
+CYR_.H_dsc := hex"95";
+CYR_.h_dsc := hex"b5";
+CYR_.H_tl := hex"96";
+CYR_.h_tl := hex"b6";
+CYR_.CH_ldsc := hex"97";
+CYR_.ch_ldsc := hex"b7";
+CYR_.CH_rdsc := hex"98";
+CYR_.ch_rdsc := hex"b8";
+CYR_.UKR_E := hex"99";
+CYR_.ukr_e := hex"b9";
+CYR_.SCHWA := hex"9a";
+CYR_.schwa := hex"ba";
+CYR_.EPS := hex"9b";
+CYR_.eps := hex"bb";
+CYR_.Agrave := hex"00";
+CYR_.Aacute := hex"01";
+CYR_.Ahat := hex"02";
+CYR_.Atilde := hex"03";
+CYR_.Aumlaut := hex"04";
+CYR_.Aacute_dbl := hex"05";
+CYR_.Aring := hex"06";
+CYR_.Ahachek := hex"07";
+CYR_.Abreve := hex"08";
+CYR_.Abar := hex"09";
+CYR_.Adot := hex"0a";
+CYR_.Acedilla := hex"0b";
+CYR_.Aogonek := hex"0c";
+CYR_.palochka := hex"0d";
+CYR_.angle_left := hex"0e";
+CYR_.angle_right := hex"0f";
+CYR_.Afrown := hex"12";
+CYR_.Agrave_dbl := hex"13";
+CYR_.Acyrbreve := hex"14";
+CYR_.dash := hex"16";
+CYR_.wordmark := hex"17";
+CYR_.pmzero := hex"18";
+CYR_.Agrave_cross := hex"19";
+CYR_.Aacute_cross := hex"1a";
+CYR_.Ahcross := hex"1b";
+CYR_.dbl_quotes := hex"22";
+CYR_.No := hex"9d";
+CYR_.currency := hex"9e";
+CYR_.section := hex"9f";
+CYR_.baseqq := hex"bd";
+CYR_.flqq := hex"be";
+CYR_.frqq := hex"bf";
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxlb8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxlb8.mf
new file mode 100644
index 00000000000..19480bdd82e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxlb8.mf
@@ -0,0 +1,6 @@
+% This is rxlb8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxli8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxli8.mf
new file mode 100644
index 00000000000..95edddeeca4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxli8.mf
@@ -0,0 +1,6 @@
+% This is rxli8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxliker.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxliker.mf
new file mode 100644
index 00000000000..195d361ee03
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxliker.mf
@@ -0,0 +1,2304 @@
+% This is rxliker.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+
+beginligtable
+ labelchar (
+ CYR_.HRDSN
+ ,CYR_.SFTSN
+ ,CYR_.DJE
+ ,CYR_.LJE
+ ,CYR_.NJE
+ ,CYR_.YAT
+ ,CYR_.P_tl
+ ,CYR_.SHHA
+ );
+ setkern [k#] (
+ CYR_.ZH
+ ,CYR_.ZH_dsc
+ ,CYR_.H
+ ,CYR_.H_dsc
+ ,CYR_.H_tl
+ );
+ labelchar (
+ CYR_.A
+ if serifs:
+ ,CYR_.B_YUS
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.LAT_Q
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.T_dsc
+ ,CYR_.HRDSN
+ ,CYR_.DJE
+ ,CYR_.TSHE
+ ,CYR_.YAT
+ ,CYR_.K_beak
+ ,CYR_.TETSE
+ ,CYR_.CH
+ ,CYR_.CH_ldsc
+ ,CYR_.CH_rdsc
+ ,CYR_.CH_vcrs
+ ,CYR_.Y
+ ,CYR_.Y_hcrs
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ setkern [kkk#] (
+ CYR_.IZH
+ ,CYR_.LAT_W
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ setkern [kk#] (
+ CYR_.IZH
+ ,CYR_.LAT_W
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ ,CYR_.lat_w
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.k_tl
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.n_dsc
+ ,CYR_.n_tl
+ ,CYR_.ng
+ ,CYR_.p
+ ,CYR_.p_tl
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.yu
+ ,CYR_.yat
+ ,CYR_.ukr_i
+ ,CYR_.lat_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+if concrete:
+
+ beginligtable
+ labelchar ( CYR_.D );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.LAT_Q
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.T_dsc
+ ,CYR_.HRDSN
+ ,CYR_.DJE
+ ,CYR_.TSHE
+ ,CYR_.YAT
+ ,CYR_.K_beak
+ ,CYR_.TETSE
+ ,CYR_.CH
+ ,CYR_.CH_ldsc
+ ,CYR_.CH_rdsc
+ ,CYR_.CH_vcrs
+ ,CYR_.Y
+ ,CYR_.Y_hcrs
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ setkern [kkk#] (
+ CYR_.IZH
+ ,CYR_.LAT_W
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ setkern [kk#] (
+ CYR_.IZH
+ ,CYR_.LAT_W
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ ,CYR_.lat_w
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.k_tl
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.n_dsc
+ ,CYR_.n_tl
+ ,CYR_.ng
+ ,CYR_.p
+ ,CYR_.p_tl
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.yu
+ ,CYR_.yat
+ ,CYR_.ukr_i
+ ,CYR_.lat_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.L );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.LAT_Q
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ setkern [kk#] (
+ CYR_.T
+ ,CYR_.T_dsc
+ ,CYR_.HRDSN
+ ,CYR_.DJE
+ ,CYR_.TSHE
+ ,CYR_.YAT
+ ,CYR_.K_beak
+ ,CYR_.TETSE
+ ,CYR_.CH
+ ,CYR_.CH_ldsc
+ ,CYR_.CH_rdsc
+ ,CYR_.CH_vcrs
+ ,CYR_.Y
+ ,CYR_.Y_hcrs
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ setkern [kkk#] (
+ CYR_.IZH
+ ,CYR_.LAT_W
+ );
+ else:
+ setkern [k#] (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ setkern [kk#] (
+ CYR_.IZH
+ ,CYR_.LAT_W
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ ,CYR_.lat_w
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ );
+ else:
+ setkern [k#] (
+ CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.k
+ ,CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.k_tl
+ ,CYR_.n
+ ,CYR_.nje
+ ,CYR_.n_dsc
+ ,CYR_.n_tl
+ ,CYR_.ng
+ ,CYR_.p
+ ,CYR_.p_tl
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.yu
+ ,CYR_.yat
+ ,CYR_.ukr_i
+ ,CYR_.lat_i
+ ,CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ );
+ fi
+ fi
+ endligtable;
+
+fi
+
+beginligtable
+ labelchar ( CYR_.K );
+ labelchar (
+ CYR_.K_dsc
+ ,CYR_.K_vcrs
+ ,CYR_.K_hcrs
+ ,CYR_.K_beak
+ ,CYR_.ZH
+ ,CYR_.ZH_dsc
+ ,CYR_.H
+ ,CYR_.H_dsc
+ ,CYR_.H_tl
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.LAT_Q
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ );
+ fi
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.LAT_Q
+ ,CYR_.YU
+ ,CYR_.EREV
+ ,CYR_.SCHWA
+ );
+ setkern [k#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ ,CYR_.ZH
+ ,CYR_.ZH_dsc
+ ,CYR_.H
+ ,CYR_.H_dsc
+ ,CYR_.H_tl
+ ,CYR_.Y
+ ,CYR_.Y_hcrs
+ ,CYR_.U
+ ,CYR_.U_shrt
+ ,CYR_.IZH
+ ,CYR_.LAT_W
+ if serifs:
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_tl
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ elseif ROMANfont:
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar ( CYR_.T );
+ labelchar (
+ CYR_.T_dsc
+ ,CYR_.G
+ ,CYR_.G_hcrs
+ ,CYR_.NG
+ ,CYR_.G_dsc
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ fi
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_tl
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [kk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.G_up
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ fi
+ );
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.LAT_Q
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ );
+ if not concrete:
+ if serifs:
+ setkern [k#] (
+ CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ else:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_tl
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.Y
+ ,CYR_.Y_hcrs
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ else:
+ ,CYR_.D
+ fi
+ if serifs:
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ fi
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_tl
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ else:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ if ROMANfont:
+ if serifs:
+ setkern [kkk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ fi
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.IZH
+ ,CYR_.LAT_W
+ );
+ if serifs:
+ setkern [kkk#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ );
+ else:
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.LAT_Q
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ fi
+ if ROMANfont:
+ if serifs:
+ setkern [kkk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ fi
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.U
+ ,CYR_.U_shrt
+ );
+ if serifs:
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ if concrete:
+ ,CYR_.D
+ ,CYR_.L
+ fi
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ );
+ if not concrete:
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.A
+ ,CYR_.AE
+ );
+ setkern [-u#] (
+ CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ );
+ fi
+ setkern [k#] (
+ CYR_.O
+ ,CYR_.F
+ ,CYR_.OTLD
+ ,CYR_.ABH_HA
+ ,CYR_.LAT_Q
+ ,CYR_.S
+ ,CYR_.S_dsc
+ ,CYR_.UKR_E
+ ,CYR_.ABH_CH
+ ,CYR_.ABH_CH_dsc
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ fi
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [kk#] (
+ if concrete:
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ if serifs:
+ setkern [kk#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ fi
+ if ROMANfont:
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [kkk#] (
+ CYR_.i
+ ,CYR_.i_shrt
+ ,CYR_.c
+ ,CYR_.sh
+ ,CYR_.shch
+ ,CYR_.sftsn
+ ,CYR_.ery
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ );
+ fi
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.R
+ ,CYR_.R_dsc
+ );
+ setkern [kk#] (
+ CYR_.A
+ ,CYR_.AE
+ ,CYR_.D
+ ,CYR_.L
+ ,CYR_.LJE
+ ,CYR_.L_tl
+ ,CYR_.L_dsc
+ if serifs:
+ ,CYR_.YA
+ ,CYR_.B_YUS
+ fi
+ );
+ if not TITLEfont:
+ if SmallCapsfont:
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if concrete:
+ ,CYR_.d
+ ,CYR_.l
+ else:
+ ,CYR_.d
+ fi
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [k#] (
+ CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ else:
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ );
+ fi
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ ,[ASCII ";"]
+ ,[ASCII ":"]
+ );
+ fi
+ fi
+ endligtable;
+
+
+beginligtable
+ labelchar (
+ CYR_.LAT_I
+ ,CYR_.UKR_I
+ );
+ setkern [-k#] (
+ CYR_.LAT_I
+ ,CYR_.UKR_I
+ );
+ endligtable;
+
+if TITLEfont: endinput \\ fi;
+
+if SmallCapsfont:
+
+ u#:=lower.u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+
+
+ beginligtable
+ labelchar (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.a
+ ,CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ ,CYR_.dje
+ fi
+ ,CYR_.lje
+ ,CYR_.nje
+ ,CYR_.yat
+ ,CYR_.p_tl
+ if SmallCapsfont:
+ ,CYR_.shha
+ fi
+ if SmallCapsfont:
+ fi
+ if serifs:
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ ,CYR_.lat_w
+ );
+ endligtable;
+
+ if concrete:
+
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ ,CYR_.lat_w
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.dje
+ ,CYR_.tshe
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ );
+ setkern [kk#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ setkern [kkk#] (
+ CYR_.izh
+ ,CYR_.lat_w
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.k_hcrs
+ ,CYR_.k_beak
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_tl
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.erev
+ ,CYR_.schwa
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_tl
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.t_dsc
+ ,CYR_.g
+ ,CYR_.g_up
+ ,CYR_.g_hcrs
+ ,CYR_.ng
+ ,CYR_.g_dsc
+ ,CYR_.r
+ ,CYR_.r_dsc
+ );
+ setkern [k#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ ,CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.izh
+ ,CYR_.lat_w
+ );
+ setkern [kkk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.a
+ if serifs:
+ ,CYR_.ya
+ ,CYR_.b_yus
+ fi
+ );
+ setkern [kk#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.lat_i
+ ,CYR_.ukr_i
+ );
+ setkern [-k#] (
+ CYR_.lat_i
+ ,CYR_.ukr_i
+ );
+ endligtable;
+
+else:
+
+ if ROMANfont:
+
+
+ beginligtable
+ labelchar (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ if serifs:
+ ,CYR_.izh
+ ,CYR_.lat_w
+ fi
+ );
+ endligtable;
+
+ if concrete:
+
+ beginligtable
+ labelchar ( CYR_.d );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.l
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+ fi
+
+ beginligtable
+ labelchar ( CYR_.t );
+ labelchar (
+ CYR_.t_dsc
+ ,CYR_.g
+ ,CYR_.g_up
+ ,CYR_.g_hcrs
+ ,CYR_.ng
+ ,CYR_.g_dsc
+ if kapitel:
+ ,CYR_.r
+ fi
+ );
+ if serifs:
+ setkern [k#] (
+ CYR_.a
+ );
+ fi
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ ,CYR_.ya
+ ,CYR_.b_yus
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.k );
+ labelchar (
+ CYR_.k_dsc
+ ,CYR_.k_vcrs
+ ,CYR_.k_hcrs
+ ,CYR_.k_beak
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_tl
+ );
+ setkern [k#] (
+ CYR_.a
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.lat_i
+ );
+ setkern [-k#] (
+ CYR_.ukr_i
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.ukr_i
+ );
+ setkern [-k#] (
+ CYR_.lat_i
+ );
+ setkern [-kk#] (
+ CYR_.ukr_i
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ );
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ ,CYR_.ya
+ ,CYR_.b_yus
+ );
+ setkern [kk#] (
+ if kapitel:
+ CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ setkern [-u#] (
+ CYR_.d
+ ,CYR_.l
+ ,CYR_.lje
+ ,CYR_.l_tl
+ ,CYR_.l_dsc
+ );
+ if altcoding:
+ setkern [kk#] (
+ [ASCII "."]
+ ,[ASCII ","]
+ );
+ fi
+ endligtable;
+
+ else:
+
+
+ beginligtable
+ labelchar ( CYR_.e );
+ labelchar (
+ CYR_.yo
+ );
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.g_up
+ );
+ setkern [kkk#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ );
+ setkern [kk#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.ukr_i
+ );
+ setkern [-k#] (
+ CYR_.dje
+ ,CYR_.tshe
+ );
+ labelchar (
+ CYR_.lat_i
+ );
+ setkern [-k#] (
+ CYR_.ukr_i
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.l );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ );
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ endligtable;
+
+ fi
+
+
+ beginligtable
+ labelchar (
+ CYR_.hrdsn
+ ,CYR_.sftsn
+ if SmallCapsfont:
+ ,CYR_.dje
+ fi
+ ,CYR_.lje
+ ,CYR_.nje
+ ,CYR_.yat
+ ,CYR_.p_tl
+ if SmallCapsfont:
+ ,CYR_.shha
+ fi
+ if SmallCapsfont:
+ fi
+ if kapitel:
+ ,CYR_.a
+ fi
+ );
+ if ROMANfont:
+ setkern [-u#] (
+ CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ );
+ setkern [k#] (
+ CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ );
+ if concrete:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.l
+ );
+ fi
+ else:
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.hrdsn
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ );
+ fi
+ setkern [kk#] (
+ CYR_.ch
+ ,CYR_.ch_ldsc
+ ,CYR_.ch_rdsc
+ ,CYR_.ch_vcrs
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ );
+ setkern [k#] (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ );
+ endligtable;
+
+
+ beginligtable
+ labelchar ( CYR_.s );
+ labelchar (
+ CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.b
+ ,CYR_.yu
+ ,CYR_.r
+ ,CYR_.f
+ ,CYR_.erev
+ ,CYR_.schwa
+ );
+ if ROMANfont:
+ setkern [k#] (
+ CYR_.d
+ ,CYR_.zh
+ ,CYR_.zh_dsc
+ ,CYR_.h
+ ,CYR_.h_dsc
+ ,CYR_.h_tl
+ ,CYR_.ya
+ ,CYR_.b_yus
+ if kapitel:
+ ,CYR_.a
+ fi
+ ,CYR_.ae
+ );
+ else:
+ setkern [-u#] (
+ CYR_.f
+ ,CYR_.lat_q
+ ,CYR_.a
+ );
+ setkern [k#] (
+ CYR_.l
+ ,CYR_.m
+ ,CYR_.lje
+ ,CYR_.g_up
+ ,CYR_.l_dsc
+ ,CYR_.l_tl
+ ,CYR_.m_dsc
+ );
+ fi
+ endligtable;
+
+
+ beginligtable
+ labelchar (
+ CYR_.b_yus
+ );
+ setkern [k#] (
+ CYR_.a
+ ,CYR_.o
+ ,CYR_.otld
+ ,CYR_.abh_ha
+ ,CYR_.s
+ ,CYR_.s_dsc
+ ,CYR_.ukr_e
+ ,CYR_.e
+ ,CYR_.yo
+ ,CYR_.abh_ch
+ ,CYR_.abh_ch_dsc
+ ,CYR_.t
+ ,CYR_.t_dsc
+ ,CYR_.hrdsn
+ ,CYR_.yat
+ ,CYR_.k_beak
+ ,CYR_.tetse
+ ,CYR_.izh
+ ,CYR_.lat_w
+ ,CYR_.u
+ ,CYR_.u_shrt
+ ,CYR_.y
+ ,CYR_.y_hcrs
+ );
+ endligtable;
+
+fi
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxlo8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxlo8.mf
new file mode 100644
index 00000000000..aedee7e1a54
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxlo8.mf
@@ -0,0 +1,6 @@
+% This is rxlo8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxlq8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxlq8.mf
new file mode 100644
index 00000000000..151a6e12723
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxlq8.mf
@@ -0,0 +1,6 @@
+% This is rxlq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxltt8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxltt8.mf
new file mode 100644
index 00000000000..2631b925f4d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxltt8.mf
@@ -0,0 +1,6 @@
+% This is rxltt8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxocc10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxocc10.mf
new file mode 100644
index 00000000000..291d9c808be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxocc10.mf
@@ -0,0 +1,7 @@
+% This is rxocc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm10.mf
new file mode 100644
index 00000000000..a1ca76db1cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm10.mf
@@ -0,0 +1,7 @@
+% This is rxorm10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm5.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm5.mf
new file mode 100644
index 00000000000..be322a01eb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm5.mf
@@ -0,0 +1,7 @@
+% This is rxorm5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm6.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm6.mf
new file mode 100644
index 00000000000..cde680e3285
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm6.mf
@@ -0,0 +1,7 @@
+% This is rxorm6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm7.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm7.mf
new file mode 100644
index 00000000000..217aadeac53
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm7.mf
@@ -0,0 +1,7 @@
+% This is rxorm7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm8.mf
new file mode 100644
index 00000000000..75a03c24886
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm8.mf
@@ -0,0 +1,7 @@
+% This is rxorm8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm9.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm9.mf
new file mode 100644
index 00000000000..9590ed2b63e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxorm9.mf
@@ -0,0 +1,7 @@
+% This is rxorm9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl10.mf
new file mode 100644
index 00000000000..84212ea4dad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl10.mf
@@ -0,0 +1,7 @@
+% This is rxosl10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl5.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl5.mf
new file mode 100644
index 00000000000..ce33b699e2d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl5.mf
@@ -0,0 +1,7 @@
+% This is rxosl5.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl6.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl6.mf
new file mode 100644
index 00000000000..a210624af41
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl6.mf
@@ -0,0 +1,7 @@
+% This is rxosl6.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl7.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl7.mf
new file mode 100644
index 00000000000..8e3ecfe2ee9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl7.mf
@@ -0,0 +1,7 @@
+% This is rxosl7.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl8.mf
new file mode 100644
index 00000000000..fede2f6f0aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl8.mf
@@ -0,0 +1,7 @@
+% This is rxosl8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl9.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl9.mf
new file mode 100644
index 00000000000..e8de2186038
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxosl9.mf
@@ -0,0 +1,7 @@
+% This is rxosl9.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxoti10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxoti10.mf
new file mode 100644
index 00000000000..ff03e8ad7b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxoti10.mf
@@ -0,0 +1,7 @@
+% This is rxoti10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+def concrete=true enddef;
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxqi8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxqi8.mf
new file mode 100644
index 00000000000..a48eb1d19ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxqi8.mf
@@ -0,0 +1,6 @@
+% This is rxqi8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxsq8.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxsq8.mf
new file mode 100644
index 00000000000..0895f6fed0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxsq8.mf
@@ -0,0 +1,6 @@
+% This is rxsq8.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/lh-x2/rxssdc10.mf b/Master/texmf-dist/fonts/source/lh/lh-x2/rxssdc10.mf
new file mode 100644
index 00000000000..0ba39c9dd98
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/lh-x2/rxssdc10.mf
@@ -0,0 +1,6 @@
+% This is rxssdc10.mf in text format as of 2004/6/6
+% created by LHfonts (TeX4MF) version 3.4
+%
+%
+
+input fikparm;
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgbersta.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgbersta.mf
new file mode 100644
index 00000000000..e2f8174d73a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgbersta.mf
@@ -0,0 +1,869 @@
+%
+% lgbersta.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase letters used in files beresta(r/e): file #1
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% Lb_bar
+% Lc_lcom
+% Ld_moc
+% Ld_dsc
+% Ld_bar
+% Ld_mtl
+% Lf_rev
+% LVg_hcrs
+% LVg_beak
+% Lh_voic
+% Lh_moc
+% Lh_tl
+% Lh_lftl
+% Lh_dsc
+% Lhflip_hcrs
+% Li_dsc
+% Lj_bar
+% Lj_arm
+% Lj_dotbar
+% Lj_armhcrs
+% Lj_crs
+% Lk_lcom
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Special letter Lb_bar";
+cyrchar(Lb_bar,10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+%
+pos80(bar,90); pos90(bar,90); x80=.5[x4,x5];
+if serifs: x90=x2l-jut; else: x90=w; fi
+if serifs: y80=y90=.5[y.a2-.5slab,y4+.5vair];
+else: y80=y90=.5[x_height,asc_height-serif_drop]; fi
+filldraw stroke z80e--z90e;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lc_lcom";
+cyrchar(Lc_lcom,8u#,x_height#,1.25desc_depth#); % eng
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: -.1u#,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+% the accent
+%ac_comma(x4-.5w,0,1.25desc_depth, 6,7,8,9,10);
+ x_move:=x4-.5w; y_move:=0; depth:=1.25desc_depth;
+ _zero:=6; _one:=7; _two:=8; _three:=9; _four:=10;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(0,1,2,3,4,5); endchar;
+
+lhchar "Lowercase Special letter Ld_moc";
+cyrchar(Ld_moc,10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+% the accent
+% ac_ammoc(x2,0, 8,9,10,11,12);
+x_move:=x2; y_move:=0; _zero:=8; _one:=9; _two:=10; _three:=11; _four:=12;
+%
+numeric bulb_diam;
+bulb_diam=max(fine.breadth,min(dot_size,floor(.56d)));
+if square_dots:
+ % sans serif cedilla;edited
+ pickup fine.nib;
+ pos[_one](vair,0); pos[_two](.5[vair,stem],0);
+ top y[_one]=y_move-o-1-eps;
+ bot y[_two]=-d-o; x[_two]=x[_one]-1.25u=x_move-.5u; %%%!!!
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+else:
+ pickup crisp.nib;
+ pos[_one](vair,90); pos[_two](vair,0);
+ pos[_three](vair,-45); pos[_four](bulb_diam,90);
+ x[_four]-.5bulb_diam=hround(x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=vround(-d-o+bulb_diam);
+ z[_one]l=z[_four]l;
+ lft x[_two]l=
+ hround(x[_four]-.5bulb_diam-.28u
+ if monospace: /expansion_factor fi)-2eps;
+ x[_three]=x[_four]+.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=y_move;
+ y_:=ypart((z[_one]{left}...z[_two]{up}...z[_three])
+ intersectiontimes (z[_four]r{left}..{right}z[_four]l));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]l{right}..subpath (0,y_) of (z[_four]r{left}
+ ..{right}z[_four]l)--cycle; % dot
+ filldraw stroke z[_one]e{left}...z[_two]e{up}...z[_three]e; % tail
+fi
+%%%
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Ld_dsc";
+cyrchar(Ld_dsc,10u#+serif_fit#,asc_height#,sbeak#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,
+ if serifs: serif_fit# else: 0 fi); % lr_serif_adj
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+% sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+% lower lat descender
+numeric right_jut;
+right_jut=if serifs: 1.414jut else: hround (r-rt x2r-.5u) fi;
+r_serif(2,1,o,1/3,0,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower left serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Ld_bar";
+cyrchar(Ld_bar,10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo if monospace: -hair fi;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height if monospace: -.5hair fi ;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+%
+pos8(bar,90); pos9(bar,90); x8=.5[x4,x5];
+if serifs: x9=x2r+jut; else: x9=w; fi
+if serifs: y8=y9=.5[y.a2-.5slab,y4+.5vair];
+else: y8=y9=.5[x_height,asc_height-serif_drop]; fi
+filldraw stroke z8e--z9e;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Special letter Ld_mtl - miscelaneous tail";
+cyrchar(Ld_mtl,10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,max(u#,.5u#+.5stem#));
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+% sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+% misc_tail
+bar_stroke(x2r,hround (r-1/3u));
+penpos10(vair',90); penpos11(hair,180);
+x10=x2r; y10l=0; z11=.5[z10l,z9r];
+fill stroke z10e{right}...z11e{up}...{right}z9e;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Lf_rev";
+cyrchar(Lf_rev,8u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+rt x1r=rt x2r=w-hround(2.5u-.5stem); top y1=.25[x_height,h]; bot y2=0;
+if serifs: pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+ x1l=x1'l=x2'l; x3=w-x1; y1=y1'; y2=y2';
+ filldraw stroke z1'e--z2'e; % left stem
+ pos9(vair,-270); pos9'(vair,90); z9=z9'; x9=.5[x1,x10]; top y9r=h;
+ pos10(hair,180); rt x10r=hround u; y10=.75[x_height,h]-.5flare;
+ pos11(flare,180); bulb(9',10,11); % bulb
+ filldraw stroke super_arc.e(1,9'); % tail
+else: pickup fine.nib; pos1'(stem,0); z1'=z1;
+ z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0);
+ pos9(vair,-270); x9=4.5u; top y9r=h;
+ pos10(.5[vair,flare],90); rt x10=hround 1.25u;
+ y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l;
+ filldraw stroke z1'e..z1''e&super_arc.e(1'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+if serifs: dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+% bar
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+pos21(middle_weight,90); pos20(middle_weight,90);
+y20=y21=x_height; x21=lft x2l-jut; x20=rt x2r+jut;
+filldraw stroke z20e--z21e;
+penlabels(1,2,3,4,9,10,11); endchar;
+
+lhchar "Lowercase Special letter LVg_hcrs";
+cyrchar(LVg_hcrs,10u#+serif_fit#,x_height#,desc_depth#);
+h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); % vertical adj.
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180);
+pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=2/3[lft x2,edge]; y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+% bar
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+pos21(middle_weight,90); pos20(middle_weight,90);
+y20=y21=hround min(-oo-1,.25[-oo,-d+vair'])-.5middle_weight;
+x21=lft x2l-jut; x20=rt x2r+.75jut;
+filldraw stroke z20e--z21e;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Lowercase Special letter Vg_beak";
+cyrchar(LVg_beak,10u#+serif_fit#,asc_height#,desc_depth#);
+full_h:=h;
+h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); % vertical adj.
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180);
+pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=2/3[lft x2,edge]; y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+%y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y1=full_h;
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+%pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+pos8(vair,90); pos7'(vair,90);
+%z7'=z1; x8r=x7'r; top y8=h+oo;
+top y8r=top y7'r=tiny.top y1; x7'=x1; x8=hround u;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+lhchar "Lowercase Special letter Lh_voic";
+cyrchar(Lh_voic,10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos3(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); x3=w-x1;
+top y1=.25[x_height,h]; bot y2=0;
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: pickup tiny.nib; pos1'(stem',0); pos2'(stem',0);
+ x1l=x1'l=x2'l; y1=y1'; y2=y2';
+ filldraw stroke z1'e--z2'e; % left stem
+ pos9(vair,-270); pos9'(vair,-90);z9=z9';x9=.5[x1,x10]; top y9r=h;
+ pos10(hair,-360);
+ rt x10r=min(w- hround u,rt x3r);
+ y10=.75[x_height,h]-.5flare;
+ pos11(flare,-360);
+ bulb(9,10,11); filldraw stroke super_arc.e(1,9'); % tail
+else: pickup fine.nib; pos1'(stem,0); z1'=z1;
+ z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0);
+ pos9(vair,-270); x9=4.5u; top y9r=h;
+ pos10(.5[vair,flare],90); rt x10=hround 1.25u;
+ y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l;
+ filldraw stroke z1'e..z1''e&super_arc.e(1'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,9,10,11); endchar;
+
+lhchar "Lowercase Special letter Lh_moc";
+cyrchar(Lh_moc,10u#,asc_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+% the accent
+% ac_ammoc(x4,0, 5,6,7,8,9);
+x_move:=x4; y_move:=0; _zero:=5; _one:=6; _two:=7; _three:=8; _four:=9;
+%
+numeric bulb_diam;
+bulb_diam=max(fine.breadth,min(dot_size,floor(.56d)));
+if square_dots:
+ % sans serif cedilla;edited
+ pickup fine.nib;
+ pos[_one](vair,0); pos[_two](.5[vair,stem],0);
+ top y[_one]=y_move-o-1-eps;
+ bot y[_two]=-d-o; x[_two]=x[_one]-1.25u=x_move-.5u; %%%!!!
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+else:
+ pickup crisp.nib;
+ pos[_one](vair,90); pos[_two](vair,0);
+ pos[_three](vair,-45); pos[_four](bulb_diam,90);
+ x[_four]-.5bulb_diam=hround(x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=vround(-d-o+bulb_diam);
+ z[_one]l=z[_four]l;
+ lft x[_two]l=
+ hround(x[_four]-.5bulb_diam-.28u
+ if monospace: /expansion_factor fi)-2eps;
+ x[_three]=x[_four]+.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=y_move;
+ y_:=ypart((z[_one]{left}...z[_two]{up}...z[_three])
+ intersectiontimes (z[_four]r{left}..{right}z[_four]l));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]l{right}..subpath (0,y_) of (z[_four]r{left}
+ ..{right}z[_four]l)--cycle; % dot
+ filldraw stroke z[_one]e{left}...z[_two]e{up}...z[_three]e; % tail
+fi
+%%%
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Special letter Lh_tl";
+cyrchar(Lh_tl,10u#,asc_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#); h:=x_height;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=asc_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+% dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+x8=x4; bot y8=-1/3d; penpos8(x3r-x3l,0); % stuff added
+pickup tiny.nib; filldraw stroke z4e--z8e; % right stem continuation
+pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x8,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0; else: z6r=z7r; lft x7r= rt x2r; fi
+ (x,y5r)=whatever[z5l,z8l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z8e{down}...z5e{left}; bulb(5,6,7); fi % arc and bulb
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lh_lftl";
+cyrchar(Lh_lftl,10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos3(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); x3=w-x1;
+top y1=.25[x_height,h]; bot y2=0;
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: pickup tiny.nib; pos1'(stem',0); pos2'(stem',0);
+ x1l=x1'l=x2'l; y1=y1'; y2=y2';
+ filldraw stroke z1'e--z2'e; % left stem
+ pos9(vair,-270); pos9'(vair,90); pos10(hair,180);
+ z9=z9'; x9=.5[x1,x10]; top y9r=h;
+ lft x10r=2x1-min(w-hround u,rt x3r);
+ y10=.75[x_height,h]-.5flare;
+ pos11(flare,180); %z11l=z10l;
+ bulb(9',10,11); filldraw stroke super_arc.e(1,9'); % tail
+else: pickup fine.nib; pos1'(stem,0); z1'=z1;
+ z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0);
+ pos9(vair,-270); x9=4.5u; top y9r=h;
+ pos10(.5[vair,flare],90); rt x10=hround 1.25u;
+ y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l;
+ filldraw stroke z1'e..z1''e&super_arc.e(1'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,9,10,11); endchar;
+
+lhchar "Lowercase Special letter Lh_dsc";
+cyrchar(Lh_dsc,10u#,asc_height#,sbeak#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,
+ if serifs: serif_fit# else: 0 fi % lr_serif_adj
+ -stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+% lower lat descender
+numeric right_jut;
+right_jut=if serifs: 1.414jut else: hround (r-rt x4r-.5u) fi;
+r_serif(4,3,g,1/3,jut,h,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Special letter Lhflip_hcrs";
+cyrchar(Lhflip_hcrs,10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-d;
+else: top y1=h; bot y4=-d; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(light_vair-fine,-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ dish_serif(4,0',c,1/3,jut,d,1/3,jut); fi % lower right serif
+% bar
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+pos11(middle_weight,90); pos10(middle_weight,90);
+y10=y11=hround min(-oo-1,.25[-oo,-d+vair'])-.5middle_weight;
+x11=lft x4l-jut; x10=rt x4r+.75jut;
+filldraw stroke z10e--z11e;
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+lhchar "Lowercase Special letter Li_dsc";
+cyrchar(Li_dsc,5u#,x_height#,sbeak#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u# fi,
+ if serifs: serif_fit# else: 0 fi % lr_serif_adj
+ -stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); fi % upper serif
+% lower lat descender
+numeric right_jut;
+right_jut=if serifs: 1.414jut else: hround (r-rt x2r-.5u) fi;
+r_serif(2,1,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+penlabels(1,2); endchar;
+
+lhchar "Lowercase Special letter j_bar";
+cyrchar(Lj_bar,5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+% bar
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+pos8(middle_weight,90); pos9(middle_weight,90);
+bot y8r=bot y9r=0; lft x8=hround .5u-1;
+rt x9=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z8e--z9e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Lj_arm";
+cyrchar(Lj_arm,5.5u#,x_height#,desc_depth#);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(2u#+serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); %lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,d,1/3,jut); % upper serif
+ %sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else:
+ pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+% lower left beak
+pickup crisp.nib; pos8(slab,90); top y8r=tiny.top y1; x8=x1;
+pos9(hair,180); x9=hround(l+.65u); y9=good.y(y8l-beak/1.4)-eps;
+arm(8,9,f,beak_darkness,-.4beak_jut); % left arm and beak
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Lj_dotbar";
+cyrchar(Lj_dotbar,5.5u#,min(asc_height#,10/7x_height#+.5idot_diam#),desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+top y8r=top y9r=vround bar+eps;
+lft x8=tiny.lft x2l-1.414jut; rt x9=hround(w-1/3u)+serif_fit;
+filldraw stroke z8e--z9e; % bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Lj_armhcrs";
+cyrchar(Lj_armhcrs,5.5u#,x_height#,desc_depth#);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(2u#+serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,c,1/3,.5jut,d,1/3,jut); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else:
+ pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+% lower left beak
+pickup crisp.nib; pos8(Vround(vair-vair_corr),90); pos9(hair,180);
+top y8r=tiny.top y1; x8=x1; x9=hround(l+.65u); y9=good.y(y8l-beak/1.4)-eps;
+arm(8,9,f,beak_darkness,-.4beak_jut); % left arm and beak
+% hcross
+pos11(bar,90); pos10(bar,90); top y10r=top y11r=vround bar+eps;
+x11=tiny.lft x2l-1.414jut; x10=hround(w-1/3u)+serif_fit;
+filldraw stroke z10e--z11e; % cross bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Lj_crs";
+cyrchar(Lj_crs,9u#,x_height#,desc_depth#);
+italcorr x_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(u#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=-d;
+ filldraw stroke z1e--z2e; % stem and arc
+% lower left beak
+pickup crisp.nib; pos30(slab,90); top y30r=h; x30=x1;
+pos50(hair,180); x50=hround(l+.65u); y50=good.y(y30l-beak/1.4)-eps;
+arm(30,50,f,beak_darkness,-.4beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+% bar
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+pos21(middle_weight,90); pos20(middle_weight,90);
+y20=y21=0; x21=lft x2l-1.414cap_jut; x20=rt x2r+1.414cap_jut;
+filldraw stroke z20e--z21e;
+penlabels(1,2,3,4,5); endchar;
+
+lhchar "Lowercase Special letter Lk_lcom";
+cyrchar(Lk_lcom,9.5u#,asc_height#,1.25desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+% the accent
+%ac_comma(0,0,1.25desc_depth, 7,8,9,10,12);
+ x_move:=0; y_move:=0; depth:=1.25desc_depth;
+ _zero:=7; _one:=8; _two:=9; _three:=10; _four:=12;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgberstb.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgberstb.mf
new file mode 100644
index 00000000000..a111de37a5e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgberstb.mf
@@ -0,0 +1,1034 @@
+%
+% lgberstb.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase letters used in files beresta(r/e): file #2
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% Llpol
+% Llpol_lcom
+% Ll_dsc
+% LL_hook
+% Ln_lngst
+% Ln_lngsthcrs
+% Ln_dsc
+% Lo_open
+% Lp_moc
+% Lp_tl
+% Lq_hcrs
+% Lq_dcrs
+% Lq_pin
+% Lr_hcrs
+% Ls_lcom
+% Ls_dcrs
+% Lt_dsc
+% Lt_lcom
+% Lwj
+% Lx_blbs
+% Lz_dsc
+% Lz_hcrs
+% Lz_dschcrs
+% Lz_lcom
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Special letter Llpol";
+cyrchar(Lpoll,5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+_one :=3; _two :=4;
+if unknown l_width: l_width:=5u+2serif_fit; fi % nominal width of `l'
+if unknown L_stem: L_stem:=cap_serif_fit+max(2u+.5cap_stem,3u); fi % center of `L' stem
+%
+pickup crisp.nib;
+x[_two]-x[_one]=max(4u,2.8u+stem); .5[x[_one],x[_two]]=x1;
+y[_one]-.5bar=.2[bar_height,x_height];
+y[_two]+.5bar=.8[bar_height,x_height];
+numeric theta; theta=angle(z[_two]-z[_one])+90;
+pos[_one](bar,theta); pos[_two](bar,theta);
+filldraw stroke z[_one]e--z[_two]e; % diagonal
+penlabels(1,2); endchar;
+
+lhchar "Lowercase Special letter Llpol_lcom";
+cyrchar(Llpol_lcom,5u#,asc_height#,1.25desc_depth#); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+_one :=3; _two :=4;
+if unknown l_width: l_width:=5u+2serif_fit; fi % nominal width of `l'
+if unknown L_stem: L_stem:=cap_serif_fit+max(2u+.5cap_stem,3u); fi % center of `L' stem
+%
+pickup crisp.nib;
+x[_two]-x[_one]=max(4u,2.8u+stem); .5[x[_one],x[_two]]=x1;
+y[_one]-.5bar=.2[bar_height,x_height];
+y[_two]+.5bar=.8[bar_height,x_height];
+numeric theta; theta=angle(z[_two]-z[_one])+90;
+pos[_one](bar,theta); pos[_two](bar,theta);
+filldraw stroke z[_one]e--z[_two]e; % diagonal
+% the accent
+%ac_comma(0,0,1.25desc_depth, 5,6,7,8,9);
+ x_move:=0; y_move:=0; depth:=1.25desc_depth;
+ _zero:=5; _one:=6; _two:=7; _three:=8; _four:=9;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(1,2); endchar;
+
+lhchar "Lowercase Special letter Ll_dsc";
+cyrchar(Ll_dsc,5u#,asc_height#,sbeak#); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,
+ if serifs: serif_fit# else: 0 fi % lr_serif_adj
+ -stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+% lower lat descender
+numeric right_jut;
+right_jut=if serifs: 1.414jut else: hround (r-rt x2r-.5u) fi;
+r_serif(2,1,g,1/3,jut,h,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+penlabels(1,2); endchar;
+
+lhchar "Lowercase Special letter L_hook";
+cyrchar(LL_hook,11u#-width_adj#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem);
+top y1=.25[x_height,h]; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: % dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+if serifs: pickup tiny.nib;
+ pos9(vair,-270); pos9'(vair,-90); z9=z9';x9=.5[x1,x10]; top y9r=h;
+ pos10(hair,-360);
+ rt x10r=min(w- hround u,rt x4r);
+ y10=.75[x_height,h]-.5flare;
+ pos11(flare,-360); %z11l=z10l;
+ bulb(9,10,11); filldraw stroke super_arc.e(1,9'); % tail
+else: pickup fine.nib; pos1'(stem,0); z1'=z1;
+ z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0);
+ pos9(vair,-270); x9=4.5u; top y9r=h;
+ pos10(.5[vair,flare],90); rt x10=hround 1.25u;
+ y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l;
+ filldraw stroke z1'e..z1''e&super_arc.e(1'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Special letter Ln_lngst";
+cyrchar(Ln_lngst,10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=-d; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Special letter Ln_lngsthcrs";
+cyrchar(Ln_lngsthcrs,10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=-d; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-.3jut: inner_jut=.3jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2',1',c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+ fi
+% bar
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+pos21(middle_weight,90); pos20(middle_weight,90);
+bot y20l=bot y21l=0; x21=lft x2l-jut; x20=rt x2r+jut;
+filldraw stroke z20e--z21e;
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Special letter Ln_dsc";
+cyrchar(Ln_dsc,10u#,x_height#,sbeak#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,
+ if serifs: serif_fit# else: 0 fi % lr_serif_adj
+ -stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+% lower lat descender
+numeric right_jut;
+right_jut=if serifs: max(limit_dist,1.1jut) else: hround (r-rt x4r-.5u) fi;
+r_serif(4,3,g,1/3,jut,h,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Special letter Lo_open";
+cyrchar(Lo_open,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=x;
+filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..z5e; fi % arc and lower terminal
+ currentpicture:=currentpicture rotatedaround ((.5w,.5h),180);
+penlabels(0,1,2,3,4,5); endchar;
+
+lhchar "Lowercase Special letter Lp_moc";
+cyrchar(Lp_moc,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+% the accent
+% ac_ammoc(.5[x5,x6],0, 9,10,11,12,13);
+x_move:=.5[x5,x6]; y_move:=0;
+_zero:=9; _one:=10; _two:=11; _three:=12; _four:=13;
+%
+numeric bulb_diam;
+bulb_diam=max(fine.breadth,min(dot_size,floor(.56d)));
+if square_dots:
+ % sans serif cedilla;edited
+ pickup fine.nib;
+ pos[_one](vair,0); pos[_two](.5[vair,stem],0);
+ top y[_one]=y_move-o-1-eps;
+ bot y[_two]=-d-o; x[_two]=x[_one]-1.25u=x_move-.5u; %%%!!!
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+else:
+ pickup crisp.nib;
+ pos[_one](vair,90); pos[_two](vair,0);
+ pos[_three](vair,-45); pos[_four](bulb_diam,90);
+ x[_four]-.5bulb_diam=hround(x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=vround(-d-o+bulb_diam);
+ z[_one]l=z[_four]l;
+ lft x[_two]l=
+ hround(x[_four]-.5bulb_diam-.28u
+ if monospace: /expansion_factor fi)-2eps;
+ x[_three]=x[_four]+.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=y_move;
+ y_:=ypart((z[_one]{left}...z[_two]{up}...z[_three])
+ intersectiontimes (z[_four]r{left}..{right}z[_four]l));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]l{right}..subpath (0,y_) of (z[_four]r{left}
+ ..{right}z[_four]l)--cycle; % dot
+ filldraw stroke z[_one]e{left}...z[_two]e{up}...z[_three]e; % tail
+fi
+%%%
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lp_tl";
+cyrchar(Lp_tl,10.5u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(3u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+pos8(stem',0);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=0; bot y8=-1/3d; x2l=x8l; %bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e--z8e; % stem
+pickup crisp.nib; pos9(hair,0); pos7'(stem,0);
+z7'=z2; x9l=x7'l; bot y9=0;
+filldraw stroke z7'e--z9e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+% dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+if serifs:
+ pickup tiny.nib; pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+ x10=.5[x8,x11r]; bot y10r=-d-oo; y11-.5flare=-.88d;
+ if monospace: lft x11r=0 else: z11r=z12r; rt x12l=floor .75u fi;
+ (xx,y10r)=whatever[z10l,z8l]; x10r:=max(xx,.5[x11r,x10]);
+ filldraw stroke z8e{down}...z10e{left}; bulb(10,11,12); % arc and bulb
+else: pickup fine.nib; pos8'(stem',0); z8'=z8;
+ pos11(.2[vair,stem'],-90); pos12(vair,-90);
+ lft x12r=hround -.75u; bot y12r=vround 5/6(-d-oo);
+ (xx_,y12l)=whatever[z12r,z3]; x12l:=xx_;
+ z10r=z8'r; (x8'l,y10l)=whatever[z12l,z10r]; x10l=x8'l; y10=y10r;
+ x11r=.5[x12r,x10r]; x11l:=.5[x12l,x10l]; bot y11r=-d-oo;
+ filldraw stroke z8'e..{down}z10e & super_arc.e(10,11)
+ & z11e{left}..z12e; fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lq_hcrs";
+cyrchar(Lq_hcrs,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+% bar
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+pos11(middle_weight,90); pos10(middle_weight,90);
+y10=y11=hround min(-oo-1,.25[-oo,-d+vair'])-.5middle_weight;
+x11=lft x2l-jut; x10=rt x2r+.75jut;
+filldraw stroke z10e--z11e;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lq_dcrs";
+cyrchar(Lq_dcrs,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+%
+pickup crisp.nib; cross_two:=30; cross_one:=40;
+x[cross_two]-x[cross_one]=max(4.25u,3u+stem); %max(4u,2.8u+stem); %to account ess_width
+.5[x[cross_one],x[cross_two]]=.5[x5,x6];
+y[cross_one]-.5bar=0;%.2[bar_height,x_height];
+y[cross_two]+.5bar=y5;%.8[bar_height,x_height];
+numeric theta; theta=angle(z[cross_two]-z[cross_one])+90;
+pos[cross_one](bar,theta); pos[cross_two](bar,theta);
+filldraw stroke z[cross_one]e--z[cross_two]e; % diagonal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lq_pin";
+cyrchar(Lq_pin,12.25u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+ful_w:=w; w:=8.85u;
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%
+w:=ful_w; pickup tiny.nib; pos10(stem',0); pos20(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x10; x0=x20;
+rt x10r=hround(w-2.5u+.5stem'); numeric edge; edge=lft x20l;
+pos30(if hefty:thin_join else: hair fi,0); pos40(vair',90);
+lft x30l=min(lft x30l-(rt x30r-tiny.rt x20r),2/3[lft x20,edge]);
+y30=bar_height; x40l=6.2u; top y40r=x_height+oo;
+y10=ypart(((edge,h)--(edge,0))intersectionpoint(z30l{up}...{left}z40l));
+pickup tiny.nib; bot y20=-d; y0=0;
+filldraw stroke z10e--z0'e--z0e--z20e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos8'(vair',-90); pos7'(stem',0);
+z10'=z10; pos10'(stem',0); x7'=x10; x8r=x7'r; top y8=h+oo; z8'l=z8l;
+x9=x1; y9=y4; z7'l=whatever[z9,z8l]; pos9'(vair',-90);
+filldraw stroke z10'e--z7'e--z8e; % point
+z9'l=((pulled_arc.r(4,1)) intersectionpoint (z9--z8l));
+filldraw stroke z9'e--z8'e; % pin
+if serifs: dish_serif(20,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lr_hcrs";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+cyrchar(Lr_hcrs,if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+% hstroke
+bar_stroke(x3l,x4r);
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Special letter Ls_lcom";
+cyrchar(Ls_lcom,7.1u#,x_height#,1.25desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+% the accent
+%ac_comma(0,0,1.25desc_depth, 11,12,13,14,15);
+ x_move:=0; y_move:=0; depth:=1.25desc_depth;
+ _zero:=11; _one:=12; _two:=13; _three:=14; _four:=15;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+lhchar "Lowercase Special letter Ls_dcrs";
+cyrchar(Ls_dcrs,7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+%
+pickup crisp.nib; cross_two:=30; cross_one:=40;
+x[cross_two]-x[cross_one]=max(4.25u,3u+stem); %max(4u,2.8u+stem); %to account ess_width
+.5[x[cross_one],x[cross_two]]=.5w;
+y[cross_one]-.5bar=.3x_height;%.2[bar_height,x_height];
+y[cross_two]+.5bar=.7x_height;%.8[bar_height,x_height];
+numeric theta; theta=angle(z[cross_two]-z[cross_one])+90;
+pos[cross_one](bar,theta); pos[cross_two](bar,theta);
+filldraw stroke z[cross_one]e--z[cross_two]e; % diagonal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+lhchar "Lowercase Special letter Lt_dsc";
+cyrchar(Lt_dsc,6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),sbeak#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+penpos14'(slab,180); x14'l=fine.rt x5r; y14'=-d;
+ fill z4{right}...{up}z5--(fine.rt x5r,y5r)---z14'l...z14'r--cycle;
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi
+penpos14'(slab,180); x14'l=rt x5r; y14'=-d;
+ fill
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ z4{right}...{up}z5 else: z4{right}..tension .9 and atleast 1..z5 fi
+ --(rt x5r,y5r)---z14'l...z14'r--cycle;
+fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lt_lcom";
+cyrchar(Lt_lcom,6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),1.25desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+% the accent
+%ac_comma(0,0,1.25desc_depth, 9,10,11,12,13);
+ x_move:=0; y_move:=0; depth:=1.25desc_depth;
+ _zero:=9; _one:=10; _two:=11; _three:=12; _four:=13;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lwj";
+cyrchar(Lwj,13u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+%j
+pickup fine.nib; x9=x45; top y9=y45-stem; pos9(fudged.stem,0);
+filldraw z9l--z9r--z45--cycle;
+% l_tail(70');
+_zero:=9;
+_one:=10; _two:=11; _three:=12; _four:=13; _five:=14;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+vair'+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=max(x[_zero]l-bulb_diam,
+ floor x[_zero]-2.5u if monospace: / expansion_factor fi);
+ (x,y[_two]r)=whatever[z[_two]l,z[_one]l];
+ x[_two]r:=max(x,.5[x[_three]r,x[_two]]);
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](vair',-90); pos[_three](.6[vair',flare],-105);
+ rt x[_three]r=x[_zero]-3u; bot y[_three]r=-d;
+ bot y[_two]r=-d-oo; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67, 10,11,12,13,14); endchar;
+
+lhchar "Lowercase Special letter Lx_blbs";
+cyrchar(Lx_blbs,if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+%adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+adjust_fit(serif_fit# +max(u#,.5u#+.5stem#) if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#+max(u#,.5u#+.5stem#));
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut+max(u,.5u+.5stem);
+x2r=r-letter_fit-.3u-outer_jut-xjut-max(u,.5u+.5stem);
+x3l=l+letter_fit+outer_jut+xjut+max(u,.5u+.5stem);
+x4r=r-letter_fit-outer_jut-max(u,.5u+.5stem);
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+top y5r=top y8r=h+oo; penpos5(vair,90); penpos8(vair,90);
+penpos1''(alpha1*stem1,0); penpos2''(alpha2*stem2,0);
+z1''=whatever[z1,z4]; z2''=whatever[z2,z3];
+y1''=y2''=min(.9x_height,bot y5l-vair);
+x5=if serifs:.5[x2'',rt x6r] else: rt x6r fi;
+x8=if serifs:.5[x1'',lft x9r] else: lft x9r fi;
+rt x6r=hround(r-.5u-.5); penpos6(hair,0);
+lft x9r=hround(l+.5u+.5); penpos9(hair,180);
+y6=y9=max(vround(top y5r-.5hair)-1-.5flare,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+penpos7(flare,0); penpos10(flare,180);
+if serifs: cyrbulb(5,6,7); cyrbulb(8,9,10); fi
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill z1''r...{left}z8r--z8l{right}...z1''l--z13'
+ --diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --z2''r...{right}z5l--z5r{left}...z2''l--z12--cycle; % diagonals
+% fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+% --diag_end(34',4l,.5,1,4r,24')--z24'
+% --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill z1''r...{left}z8r--z8l{right}...z1''l
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --z2''r...{right}z5l--z5r{left}...z2''l--cycle; fi % right diagonal
+%else: fill diag_end(4r,1r,.5,1,1l,4l)
+% --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+% fill diag_end(2l,3l,.5,1,3r,2r)
+% --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+% dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+% dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,5,6,7,8,9,10,12,13,24,34); endchar;
+
+lhchar "Lowercase Special letter Lz_dsc";
+cyrchar(Lz_dsc,8u#,x_height#,sbeak#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+% the beak is turning down
+pos7(arm_thickness2,90); pos8(hair,0); %!!!
+bot y7l=0; x7=x4; rt x8r=hround(w-.75u);
+y8=good.y(y7l-beak/1.2)-eps; %!!!
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lz_hcrs";
+cyrchar(Lz_hcrs,8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+% hstroke
+bar_stroke(x6r,x8r);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lz_dschcrs";
+cyrchar(Lz_dschcrs,8u#,x_height#,sbeak#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+% the beak is turning down
+pos7(arm_thickness2,90); pos8(hair,0); %!!!
+bot y7l=0; x7=x4; rt x8r=hround(w-.75u);
+y8=good.y(y7l-beak/1.2)-eps; %!!!
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+% hstroke
+bar_stroke(x6r,x8r);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lz_lcom";
+cyrchar(Lz_lcom,8u#,x_height#,1.25desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+% the accent
+%ac_comma(0,0,1.25desc_depth, 9,10,11,12,13);
+ x_move:=0; y_move:=0; depth:=1.25desc_depth;
+ _zero:=9; _one:=10; _two:=11; _three:=12; _four:=13;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgberstc.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgberstc.mf
new file mode 100644
index 00000000000..3ab8f5338e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgberstc.mf
@@ -0,0 +1,1105 @@
+%
+% lgberstc.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase letters used in files beresta(r/e): file #3
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% Lflap
+% Lengma
+% Lesh
+% LVphi
+% Lchi
+% LVtheta
+% Ltau
+% Llig_ue
+% Llig_uo
+% Lnb
+% Leth
+% Lenya
+% Lketen
+%%%
+% Cdej
+% Cz_mtI
+% Cz_mtII
+% Cz_mtIII
+% Cz_dsc
+% Cl_mtl
+% Cn_mtl
+% Cn_bartl
+%
+% Cs_mtl
+% Ct_mtl
+% Ct_v
+% Ctch
+% Cchit
+% Cc_tl
+% Csh_lngst
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Special letter Lflap";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+cyrchar(Lflap,if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos0'(hround(stem-3stem_corr),180);
+rt x0'l=hround(2.5u-.5stem')+stem'; top y0'=bar_height;
+filldraw stroke z0'e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+%pos0'(hround(stem-3stem_corr),0);
+y0=y0'; x1l=x0l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z0e--z2e; % stem
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,0',4,5,6); endchar;
+
+lhchar "Lowercase Special letter Lengma";
+cyrchar(Lengma,10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+% dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+x8=x4; bot y8=-1/3d; penpos8(x3r-x3l,0); % stuff added
+pickup tiny.nib; filldraw stroke z4e--z8e; % right stem continuation
+pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x8,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0; else: z6r=z7r; lft x7r= rt x2r; fi
+ (x,y5r)=whatever[z5l,z8l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z8e{down}...z5e{left}; bulb(5,6,7); fi % arc and bulb
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Lesh";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+cyrchar(Lesh,5.5u#,asc_height#,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pickup tiny.nib; pos0(stem',0); pos1(shaved_stem,0);
+x0=x1;
+x1=.5w;
+top y0=x_height if serifs: +min(oo,serif_drop) fi;
+bot y1=-1/3d;
+pickup fine.nib; numeric bulb_diam;
+if serifs:
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x1,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z1l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z1e{down}...z5e{left}; bulb(5,6,7); % lower arc and bulb
+ bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pickup fine.nib; pos1'(stem',0); z1'=z1;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z1'r; (x1'l,y5l)=whatever[z7l,z5r]; x5l=x1'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z1'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; % arc and terminal
+ pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+pickup tiny.nib;
+penpos3(x1r-x1l,0); x3l=x1l; top y3=x_height;
+filldraw stroke z1e--z3e; % stem
+pickup fine.nib; pos3'(x1r-x1l-(hround stem_corr)+tiny,180);
+y3'=y3; lft x3'r=tiny.lft x1l;
+penpos4(x3'l-x3'r,180); x4=x3'; y4+.5vair=.5[x_height,h];
+pos8(vair,90); top y8r=h+oo;
+if serifs: x8=.5[x4,x2r]; (xa,y8r)=whatever[z8l,z4l];
+ x8r:=min(xa,.5[x8,x2r]); pos9(hair,0); bulb(8,9,2); % bulb
+ filldraw stroke z3'e--z4e & super_arc.e(4,8); % arc
+else: x8=.6[x4,x2]; y4l:=1/3[y4l,y8l];
+ filldraw stroke z3'e--z4e & super_arc.e(4,8)
+ & term.e(8,2,right,.9,4); fi % arc and terminal
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter LVphi";
+cyrchar(LVphi,11u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,-180); x1=x2+.75u; top y1=h;
+pos2(hair,-180); lft x2r=hround .5u; y2=bar_height;
+pos3(vstem,-90); x3=.5(w+u); bot y3r=-oo;
+pos4(hair,0); rt x4r=hround(w-.5u); y4=y2;
+pos5(vstem,90); x5=.52[x6,x4]; top y5r=h+oo;
+pos6(hair,180); x6=x7; y6=1/3h;
+pos7(stem,180); lft x7r=hround(.5w-.5u-.5stem); y7-.5stem=-d-o;
+filldraw circ_stroke z7e---z6e...{right}z5e...{down}z4e...{left}z3e
+ ...{up}z2e...{3(x1-x2),y1-y2}z1e; % bowl and stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Lchi";
+cyrchar(Lchi,11u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180);
+x1-.5hair=hround-.5hair; x6=w-x1; x2=w-x5=u;
+y1=y2l-h/8; top y2r=h+oo; bot y5l=-d-oo; y6=y5r+h/8;
+z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0);
+numeric theta; theta=angle(z5'-z2')+90;
+pos3(stem,theta); pos4(stem,theta);
+y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5'];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l}
+ ..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks
+x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d;
+numeric theta; theta=angle(z7-z8)-90;
+pos7(hair,theta); pos8(hair,theta);
+filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal
+penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter LVtheta";
+cyrchar(LVtheta,9u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5vair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric light_curve; light_curve=hround .5[stem,curve];
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos2'(stem,-180); z2'=z2; pos3(stem,-180); pos4(vair,-90);
+pos5(light_curve,0); pos6(vair,90); pos7(hair,180); pos8(vair,270);
+x3=x2; x4=x6=.5[x3,x5]; rt x5r=hround(w-1.5u+.5light_curve);
+lft x7r=hround(3.25u-.5hair); x8+.5vair=hround(w+.5vair-epsilon);
+y3=.4x_height; bot y4r=-oo; y5=.5[y4,y6]; top y6r=h+oo;
+y7=.5[x_height,h]; y8=.5[bar_height,x_height];
+filldraw stroke z2'e..{{interim superness:=hein_super; super_arc.e(3,4)}}
+ & pulled_arc.e(4,5) & pulled_arc.e(5,6)
+ ...{down}z7e...{4(x8-x7),y8-y7}z8e; % bowl and loop
+penlabels(0,a,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Special letter Ltau";
+cyrchar(Ltau,9u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pi_stroke; % hook and bar
+pos4(hair,0); pos5(stem,0);
+x4=x5; x5-.5stem=hround(.5w-.5u-.5stem); y4=y2; y5-.5stem=-oo;
+filldraw circ_stroke z5e--z4e; % stem
+penlabels(1,2,3,4,5); endchar;
+
+lhchar "Lowercase Special letter Llig_ue";
+cyrchar(Llig_ue,7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(5.5u#, if monospace:.5u# else: 0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%u
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos10(stem,0); pos20(stem,0);
+lft x10l=l+letter_fit+hround(2.5u-.5stem); x10=x20;
+if serifs: top y10=h+min(oo,serif_drop); else: top y10=h; fi
+penpos20'(stem-fine,-180); z20'=z20; y20=.5bar_height;
+penpos50(max(eps,light_vair-fine),-90); penpos60(thin_join-fine,0);
+y60=2/3bar_height; x.b0=x10+5u-.5stem; lft x60l=tiny.lft x.b0;
+filldraw stroke z10e--z20e; % left stem
+pickup fine.nib; bot y50r=-oo; x50l=x10+2.25u;
+(s,y50r)=whatever[z50l,z60l]; x50r:=max(s,.5[x50,x20'r]);
+path upath.r,upath.l; numeric upoint.r,upoint.l;
+forsuffixes e=l,r: upath.e=z50e{right}...{up}z60e;
+upoint.e=ypart((super_arc.r(3,4)) intersectiontimes upath.e); endfor;
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(20',50)}} & subpath(0,upoint.e) of upath.e; % arc
+if serifs: sloped_serif.l(10,20,a,1/3,jut,serif_drop); fi % upper left serif
+penlabels(0,1,2,3,4,510,20,20',50,60); endchar;
+
+lhchar "Lowercase Special letter Llig_uo";
+cyrchar(Llig_uo,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+%adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+adjust_fit(5.5u#,if monospace: .5u# else: 0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%u
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos10(stem,0); pos20(stem,0);
+lft x10l=l+letter_fit+hround(2.5u-.5stem); x10=x20;
+if serifs: top y10=h+min(oo,serif_drop); else: top y10=h; fi
+penpos20'(stem-fine,-180); z20'=z20; y20=.5bar_height;
+penpos50(max(eps,light_vair-fine),-90); penpos60(thin_join-fine,0);
+y60=2/3bar_height; x.b0=x10+5u-.5stem; lft x60l=tiny.lft x.b0;
+filldraw stroke z10e--z20e; % left stem
+pickup fine.nib; bot y50r=-oo; x50l=x10+2.25u;
+(q,y50r)=whatever[z50l,z60l]; x50r:=max(q,.5[x50,x20'r]);
+path upath.r,upath.l; numeric upoint.r,upoint.l;
+forsuffixes e=l,r: upath.e=z50e{right}...{up}z60e;
+upoint.e=ypart((pulled_arc.r(2,3)) intersectiontimes upath.e); endfor;
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(20',50)}} & subpath(0,upoint.e) of upath.e; % arc
+if serifs: sloped_serif.l(10,20,a,1/3,jut,serif_drop); fi % upper left serif
+penlabels(1,2,3,4,10,20,20',50,60); endchar;
+
+lhchar "Lowercase Special letter Lnb - like italic yat";
+cyrchar(Lnb,13u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); full_w:=w; w:=10u;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z2e--z1e; % left stem
+pickup fine.nib;
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4; ital_arch(2,3,4); % arch
+y5=.5bar_height; pos5(stem,0);
+filldraw stroke z4e{down}..z5e; % right stem
+w:=full_w;
+x23=x25=.5[x5,x24]; rt x24r=hround(w-u+.5curve);
+bot y23r=-oo; top y25r=1.2bar_height+oo; y24=.5[y23,y25]; %y24=y5;
+z7'=z5; pos7'(stem,-180);
+z20=z5; pos20(hair,180); pos23(vair,-90); pos24(curve,0); pos25(vair,90);
+filldraw stroke pulled_arc.e(7',23) & pulled_arc.e(23,24)
+ & pulled_arc.e(24,25) & super_arc.e(25,20); % bowl
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower left serif
+endchar;
+
+lhchar "Lowercase Special letter Leth";
+cyrchar(Leth,9u#,asc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height;
+y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos5(hair/(sind 45),45); penpos4'(stem,0);
+x4r=x4'r; y4=y4';
+top y5r=h+oo; x5=x2;
+penstroke pulled_arc.e(4',5);
+penpos6(bar+stem_corr,120); penpos7(bar+stem_corr,120);
+y6=.35[y1,y5]; y7r=h+oo;
+x7r=rt x4; x6l=rt x2l;
+filldraw stroke z6e--z7e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Lenya";
+cyrchar(Lenya,10.5u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos8(stem',0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(3u-.5stem); x1l=x1'l=x2l=x2'l=x8l; x3=w+.5u-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+bot y8=-1/3d;
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(8,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+if serifs:
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x8,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z8l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z8e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos8'(stem',0); z8'=z8;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z8'r; (x8'l,y5l)=whatever[z7l,z5r]; x5l=x8'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z8'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+if unknown italic: boolean italic; italic=false; fi
+iff not italic:%
+lhchar "Lowercase Special letter Lketen";
+cyrchar(Lketen,10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+% dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+% stuff added
+z4'=z4; x8=x4; bot y8=-1/3d;
+penpos8(rt x4r-lft x4l,0); penpos4'(rt x4r-lft x4l,0);
+pickup tiny.nib; fill stroke z4'e--z8e; % right stem continuation
+ penpos5(vair,-90); penpos6(.7[hair,stem],-180);
+ penpos7(.7[thin_join,vair],-270);
+ x5=.5[x8,x6r]; y5r=-d-oo; y6=-2/3d;
+ x6=hround (x8-min(2.65u,2u+.65stem)); z7=(x4'l,-.5vair);
+ fill stroke pulled_arc.e(8,5)
+ ...z6e{up}...{right}z7e; % arc and bulb
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff italic:%
+lhchar "Italic Special letter Lketen";
+cyrchar(Lketen,10u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); ital_arch(2,3,4); % arch
+% stuff added
+z4'=z4; x8=x4; bot y8=-1/3d;
+penpos8(rt x4r-lft x4l,0); penpos4'(rt x4r-lft x4l,0);
+pickup tiny.nib; fill stroke z4'e--z8e; % right stem continuation
+ penpos5(vair,-90); penpos6(.7[hair,stem],-180);
+ penpos7(.7[thin_join,vair],-270);
+ x5=.5[x8,x6r]; y5r=-d-oo; y6=-2/3d;
+ x6=hround (x8-min(2.65u,2u+.65stem)); z7=(x4'l,-.5vair);
+ fill stroke pulled_arc.e(8,5)
+ ...z6e{up}...{right}z7e; % arc and bulb
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Special letter Cdej";
+cyrchar(Cdej,10u# if not serifs:+.5width_adj# fi % d_width;n_width
+ ,x_height#,sbeak#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#
+ if not serifs:+\\.5(stem#-u#),.5(stem#-u#)+ else:,fi\\ serif_fit#); %dl_adj
+% lower_d;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,light_stem,outer_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+light_stem=max(tiny.breadth+eps,min(fudged.stem,fudged.hair if hefty:-4stem_corr fi));
+outer_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (r-rt x2r-.5u) fi;
+penpos3(light_hair,0); penpos0(light_hair,0); x0=x3-eps; y0=0; y3=h;
+x3=1/3[w-rt x1r-1/8(outer_jut if not serifs:-.5(stem-u) fi),rt x1r]
+ if not serifs: -.5(stem-u) fi +eps;
+x4l=w-rt x1r-1/3outer_jut-eps; y4l=vair;
+x2'=x2; y2'=if serifs: 1/2 else: 2/3 fi h;
+penpos4(light_hair,angle((y2',-x2')-(y4l,-x4l))); if y4r<0: y4r:=0; fi
+fill z4l{z2'-z4}...{up}diag_end(0l,3l,1,1,3r,0){down}
+ ...{z4-z2'}z4r--cycle; %left stem
+numeric inner_jut; inner_jut=min(.5(lft x1l-x3r)-eps,.5jut);
+save slab; % lower.slab
+if serifs:
+ prime_points_inside(3,0);
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(3',0,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,jut); % upper right serif
+ filldraw z.b0--z.b1--z.c1--z.c0--cycle; % upper inter_serif bar
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3l; top y3'r=top y1'r=h; rt x1'=x1;
+ filldraw stroke z3'e--z1'e; fi % upper bar
+% lower descenders
+slab:=vair; % lower.slab
+%r_serif(2,1,e,1/3,inner_jut,f,1/3,beak_darkness,outer_jut,.6beak_jut); % right descender
+%!!!
+numeric light_stem;
+light_stem=hround (max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi));
+top y.f1-slab-eps=bot y.f4+eps=tiny.bot y2;
+rt x.f1=hround (tiny.rt x2r+jut)+eps;
+rt x.f2=lft x.f3+light_stem+eps=hround (rt x.f1+.6beak_jut)+eps;
+x.f4=x2-.5(fudged.stem-3stem_corr-tiny)-eps;
+%!!!
+% lower de_serif
+y5=y.f1; y0'=y.f4; x5=good.x(w-x.f1); y6=y7=y.f3;
+x6=good.x(w-x.f2); x7=good.x(w-x.f3);
+pair beak_corner; ypart beak_corner=y0'; beak_corner=z7+whatever*(z5-z6);
+x8=good.x(w-x.f4); x0'=w-x.e1; y8=y0';
+filldraw z5--z6--z7{z5-z6}...beak_darkness[beak_corner,.5[z7,z8]]
+ ...{right}z8---z0'--(x0',y5)--cycle; % de_serif
+filldraw z.e1--z.e0--z0'--(x0',y5)--cycle; % lower inter_serif bar
+if serifs:
+ numeric bracket_height;
+ bracket_height=min(y2+bracket,y1);
+ if bracket_height>y4l:
+ path p.r,p.l; y5:=top y5;
+ p.r=(z4r{z2'-z4}...{up}z3r); p.l=(z4l{z2'-z4}...{up}z3l);
+ forsuffixes e=l,r:
+ z9e=((0,bracket_height)--(w,bracket_height)) intersectionpoint p.e;
+ endfor
+ vardef t (suffix @) =
+ angle direction directiontime z9@ of p.@ of p.@ enddef;
+ fill z9l{dir (t(l)+180)}...1/3[(x4l,y5),.5[z9l,z5]]{z5-z9l}
+ ...{left}z5--(x5,y0')--z0'--(x0',y5)
+ --(x8-1/6outer_jut-eps,y5){left}
+ ...{dir t(r)}z9r--cycle; % top part of de_serif
+ fi
+fi
+%%%%%
+slab:=vair; % lower.slab
+nodish_serif(2,1,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+d:=desc_depth;
+% l_tail(17);
+_zero:=17; rt x17r=rt x2r+jut; y17=y2; pos17(fudged.stem-2stem_corr,0);
+_one:=11; _two:=12; _three:=13; _four:=14; _five:=15;
+%
+pickup fine.nib;
+pos[_five](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+pos[_one](tiny.rt x[_zero]r-tiny.lft x[_zero]l,0);
+z[_five]=z[_zero]; x[_one]r=x[_five]r;
+bot y[_one]=max(-1/3d,-d+vair'+eps);
+if serifs:
+ numeric bulb_diam;
+ bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+ pos[_two](vair',-90); pos[_three](hair,-180);
+ pos[_four](bulb_diam,-180);
+ x[_two]=.5[x[_one],x[_three]r];
+ bot y[_two]r=-d-oo; y[_three]-.5bulb_diam=-.85d;
+ z[_three]r=z[_four]r;
+ rt x[_four]l=max(x[_zero]l-bulb_diam,
+ floor x[_zero]-2.5u if monospace: / expansion_factor fi);
+ (x,y[_two]r)=whatever[z[_two]l,z[_one]l];
+ x[_two]r:=max(x,.5[x[_three]r,x[_two]]);
+ filldraw stroke z[_five]e--pulled_arc.e([_one],[_two]);
+ bulb([_two],[_three],[_four]); % bulb
+else:
+ pos[_two](vair',-90); pos[_three](.6[vair',flare],-105);
+ rt x[_three]r=x[_zero]-3u; bot y[_three]r=-d;
+ bot y[_two]r=-d-oo; x[_two]=.4[x[_three]r,x[_zero]r];
+ filldraw stroke z[_five]e--super_arc.e([_one],[_two])
+ & term.e([_two],[_three],left,.8,4); fi
+%%%
+penlabels(0',1',1,2,3,4,5,6,9,10, 11,12,13,14,15,17); endchar;
+
+lhchar "Lowercase Special letter Cz_mtI";
+cyrchar(Cz_mtI,8u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(if monospace: .5u# else:.1u# fi,max(2u#,1.5u#+.5stem#));
+numeric right_curve; if serifs: right_curve=curve-stem_corr;
+ else: right_curve=curve-3stem_corr; fi
+penpos2(vair,90); penpos3(right_curve-stem_corr,0);
+penpos7(right_curve,0); penpos8(vair',-90);
+y2r=h+oo; x2=x6l=x6r=x8=.5[u,x7]; x7r=hround(w-.6u);
+x3r=min(rt x7r-1,hround(w-u)); y3=.5[y4l,y2l]+eps; y8r=-oo;
+set_bar_axis; y4l=y5r=y6r=y2.bh; y6l=y5l=y4r=y1.bh; y5=y6=y0.bh;
+if serifs: lft x1r=lft x9r=hround.5u;
+ y1=min(bar_height+2vair'+2,.9[bar_height,h]-flare);
+ y9=max(good.y(.5bar_height-.9),y8l+vair'); pos1(hair,180); pos9(hair,-180);
+else: lft x1r=hround.6u; lft x9r=hround.5u;
+ pos1(min(right_curve,1.2flare)-.2tiny,175); %hair
+ pos9(right_curve-stem_corr-.2tiny,-175); %hair
+ y1l=max(.76h,top y5r+eps); y9r=min(.25h,bot y5l-eps); fi
+lft x5l=lft x5r=min(max(hround 2.2u,rt x1l+.5vair)+eps,lft x6l-fine);
+y7=.5[y6l,y8l]; x4l=x4r=1/3[x5l,x3l];
+fill stroke super_arc.e(2,3) & super_arc.e(3,4); % upper bowl
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8); % lower bowl
+pickup fine.nib;
+fill z5r..
+ if bot y5r>top y5l:(lft x5r,bot y5r)--(lft x5l,top y5l) else: (lft x5r,y5) fi
+ ..z5l--cycle; % bar
+pos2'(vair,90); z2'=z2; pos8'(vair',-90); z8'=z8;
+filldraw stroke z1e{x2-x1,15(y2-y1)}....{right}z2'e; % tension atleast .95 upper bowl
+if serifs: path upper_arc;
+upper_arc=z1{x2-x1,15(y2-y1)}....{right}z2; % tension atleast .95
+ pos20(.3[fine.breadth,hair],0); x20l=x1r; top y20=h+oo;
+ x1'-x1l=2curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z20r--z1'));
+ filldraw z1r--z20l--z20r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+% misc tail
+bar_stroke(x6l,hround (r-1/3u));
+penpos13(vair,90); penpos14(hair,180); penpos15(vair,90);
+x15=x7r; y15=y13; z14=.5[z15,z11r]; z13l=z8r;
+fill stroke z13e{right}...z15e{right}...z14e{up}...{right}z11e;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,13,14,15,20); endchar;
+
+lhchar "Lowercase Special letter Cz_mtII";
+cyrchar(Cz_mtII,8u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(if monospace: .5u# else:.1u# fi,max(1.5u#,u#+.5stem#));
+numeric right_curve; if serifs: right_curve=curve-stem_corr;
+ else: right_curve=curve-3stem_corr; fi
+penpos2(vair,90); penpos3(right_curve-stem_corr,0);
+penpos7(right_curve,0); penpos8(vair',-90);
+y2r=h+oo; x2=x6l=x6r=x8=.5[u,x7]; x7r=hround(w-.6u);
+x3r=min(rt x7r-1,hround(w-u)); y3=.5[y4l,y2l]+eps; y8r=-oo;
+set_bar_axis; y4l=y5r=y6r=y2.bh; y6l=y5l=y4r=y1.bh; y5=y6=y0.bh;
+if serifs: lft x1r=lft x9r=hround.5u;
+ y1=min(bar_height+2vair'+2,.9[bar_height,h]-flare);
+ y9=max(good.y(.5bar_height-.9),y8l+vair'); pos1(hair,180); pos9(hair,-180);
+else: lft x1r=hround.6u; lft x9r=hround.5u;
+ pos1(min(right_curve,1.2flare)-.2tiny,175); %hair
+ pos9(right_curve-stem_corr-.2tiny,-175); %hair
+ y1l=max(.76h,top y5r+eps); y9r=min(.25h,bot y5l-eps); fi
+lft x5l=lft x5r=min(max(hround 2.2u,rt x1l+.5vair)+eps,lft x6l-fine);
+y7=.5[y6l,y8l]; x4l=x4r=1/3[x5l,x3l];
+fill stroke super_arc.e(2,3) & super_arc.e(3,4); % upper bowl
+fill stroke z5e..super_arc.e(6,7); % & super_arc.e(7,8); % lower bowl
+pickup fine.nib;
+z7'=z7; x8''=x7'; bot y8''=0; pos7'(right_curve,0); pos8''(right_curve,0);
+filldraw stroke z7'e--z8''e; % stem
+fill z5r..
+ if bot y5r>top y5l:(lft x5r,bot y5r)--(lft x5l,top y5l) else: (lft x5r,y5) fi
+ ..z5l--cycle; % bar
+pos2'(vair,90); z2'=z2; pos8'(vair',-90); z8'=z8;
+filldraw stroke z1e{x2-x1,15(y2-y1)}....{right}z2'e; % tension atleast .95 upper bowl
+if serifs: path upper_arc;
+upper_arc=z1{x2-x1,15(y2-y1)}....{right}z2; % tension atleast .95
+ pos20(.3[fine.breadth,hair],0); x20l=x1r; top y20=h+oo;
+ x1'-x1l=2curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z20r--z1'));
+ filldraw z1r--z20l--z20r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+% misc_tail
+bar_stroke(x6r,hround (r-1/3u));
+penpos13(vair,90); penpos14(hair,180);
+x13r=x8''r; y13l=0; z14=.5[z13,z11r];
+fill stroke z13e{right}...z14e{up}...{right}z11e;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,20); endchar;
+
+lhchar "Lowercase Special letter Cz_mtIII";
+cyrchar(Cz_mtIII,8u#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(if monospace: .5u#,.4u# else:.1u#,if serifs:0 else:-.2u# fi fi);
+numeric right_curve; if serifs: right_curve=curve-stem_corr;
+ else: right_curve=curve-3stem_corr; fi
+penpos2(vair,90); penpos3(right_curve-stem_corr,0);
+penpos7(right_curve,0); penpos8(vair',-90);
+y2r=h+oo; x2=x6l=x6r=x8=.5[u,x7]; x7r=hround(w-.6u);
+x3r=min(rt x7r-1,hround(w-u)); y3=.5[y4l,y2l]+eps; y8r=-oo;
+set_bar_axis; y4l=y5r=y6r=y2.bh; y6l=y5l=y4r=y1.bh; y5=y6=y0.bh;
+if serifs: lft x1r=lft x9r=hround.5u;
+ y1=min(bar_height+2vair'+2,.9[bar_height,h]-flare);
+ y9=max(good.y(.5bar_height-.9),y8l+vair'); pos1(hair,180); pos9(hair,-180);
+else: lft x1r=hround.6u; lft x9r=hround.5u;
+ pos1(min(right_curve,1.2flare)-.2tiny,175); %hair
+ pos9(right_curve-stem_corr-.2tiny,-175); %hair
+ y1l=max(.76h,top y5r+eps); y9r=min(.25h,bot y5l-eps); fi
+lft x5l=lft x5r=min(max(hround 2.2u,rt x1l+.5vair)+eps,lft x6l-fine);
+y7=.5[y6l,y8l]; x4l=x4r=1/3[x5l,x3l];
+fill stroke super_arc.e(2,3) & super_arc.e(3,4); % upper bowl
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8); % lower bowl
+pickup fine.nib;
+fill z5r..
+ if bot y5r>top y5l:(lft x5r,bot y5r)--(lft x5l,top y5l) else: (lft x5r,y5) fi
+ ..z5l--cycle; % bar
+pos2'(vair,90); z2'=z2; pos8'(vair',-90); z8'=z8;
+filldraw stroke z1e{x2-x1,15(y2-y1)}....{right}z2'e; % tension atleast .95 upper bowl
+if serifs: path upper_arc;
+upper_arc=z1{x2-x1,15(y2-y1)}....{right}z2; % tension atleast .95
+ pos20(.3[fine.breadth,hair],0); x20l=x1r; top y20=h+oo;
+ x1'-x1l=2curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z20r--z1'));
+ filldraw z1r--z20l--z20r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+%
+penpos18(hair,0); penpos28(hair,90); penpos38(hair,90);
+x28=x8; x38=fine.lft x7r; y28=y38=-1/3d; y18=.5[y8r,y28r]; x18r=x8-.5(y8r-y28r);
+fill stroke z8e{left}...z18e{down}...{right}z28e--z38e;
+filldraw (x38,y38)--(x38,-d)--(.67[x28,x38],y28)--cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,20); endchar;
+
+lhchar "Lowercase Special letter Cz_dsc";
+cyrchar(Cz_dsc,8u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(if monospace: .5u#,.4u# else:.1u#,if serifs:0 else:-.2u# fi fi);
+numeric right_curve;
+if serifs: right_curve=curve-stem_corr;
+ else: right_curve=curve-3stem_corr; fi
+penpos2(vair,90); penpos3(right_curve-stem_corr,0);
+penpos7(right_curve,0); penpos8(vair',-90);
+y2r=h+oo; x2=x6l=x6r=x8=.5[u,x7]; x7r=hround(w-.6u);
+x3r=min(rt x7r-1,hround(w-u)); y3=.5[y4l,y2l]+eps; y8r=-oo;
+set_bar_axis; y4l=y5r=y6r=y2.bh; y6l=y5l=y4r=y1.bh; y5=y6=y0.bh;
+if serifs: lft x1r=lft x9r=hround.5u;
+ y1=min(bar_height+2vair'+2,.9[bar_height,h]-flare);
+ y9=max(good.y(.5bar_height-.9),y8l+vair'); pos1(hair,180); pos9(hair,-180);
+else: lft x1r=hround.6u; lft x9r=hround.5u;
+ pos1(min(right_curve,1.2flare)-.2tiny,175); %hair
+ pos9(right_curve-stem_corr-.2tiny,-175); %hair
+ y1l=max(.76h,top y5r+eps); y9r=min(.25h,bot y5l-eps); fi
+lft x5l=lft x5r=min(max(hround 2.2u,rt x1l+.5vair)+eps,lft x6l-fine);
+y7=.5[y6l,y8l]; x4l=x4r=1/3[x5l,x3l];
+fill stroke super_arc.e(2,3) & super_arc.e(3,4); % upper bowl
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8); % lower bowl
+pickup fine.nib;
+fill z5r{left}
+ if bot y5r>top y5l:..(lft x5r,bot y5r)--(lft x5l,top y5l).. else: ... fi
+ {right}z5l--cycle; % bar
+pos2'(vair,90); z2'=z2; pos8'(vair',-90); z8'=z8;
+filldraw stroke z1e{x2-x1,15(y2-y1)}....{right}z2'e; % tension atleast .95 upper bowl
+{{interim superness:=1.05superness;
+filldraw stroke if serifs: super_arc.e(8',9) else:
+z8'e{left}.. tension atleast .95 ..{x9-x8,15(y9-y8)}z9e fi}}; % lower bowl
+if serifs: path upper_arc;
+upper_arc=z1{x2-x1,15(y2-y1)}....{right}z2; % tension atleast .95
+ pos20(.3[fine.breadth,hair],0); x20l=x1r; top y20=h+oo;
+ x1'-x1l=2curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z20r--z1'));
+ filldraw z1r--z20l--z20r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+%
+penpos14'(slab,0); x14'l=fine.lft x9r; y14'=-d;
+path lower_arc;
+lower_arc=if serifs: {{interim superness:=1.05superness;
+ super_arc.r(8',9)}} else:
+ z8'r{left}.. tension atleast .95 ..{x9-x8,15(y9-y8)}z9r fi;
+fill (fine.lft x9r,y9r)---z14'l...z14'r---subpath(.67,1) of lower_arc--cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,20); endchar;
+
+lhchar "Lowercase Special letter Cl_mtl";
+cyrchar(Cl_mtl,10u# % if not serifs:+.5width_adj# fi % dl_width;n_width
+ ,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit# if not serifs:+.5(stem#-u#) fi, %dl_adj
+ max(u#,.5u#+.5stem#)); %
+% lower_l;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,bot_vair,bulb_diam,left_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+bot_vair=Vround(.5[vair,light_hair]);
+bulb_diam=hround 7/8[hair,flare];
+left_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (w+serif_fit-rt x2r-.5u) fi;
+x3=1/3[w-rt x1r-(1/8left_jut),rt x1r] if not serifs: -.5(stem-u) fi +eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(hair,-180);
+ top y3=h; y6-.5bulb_diam=.12desc_depth-eps; z6r=z5r;
+ lft x6r=l+letter_fit+hround(.35u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]);
+ bot y4r=-1.5oo-eps; {{less_tense; bulb(4,5,6)}}; %bulb
+ filldraw stroke z4e{right}
+ ..controls (min(15/16[x4,x3],max(x4,lft x6r+1.75bulb_diam))+(x3e-x3),y4e)
+ and (x3e,max(y4l,min(y6-.5,1/3h+eps))+1/3(y4e-y4))..{up}z3e; % left tail
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e; % upper bar
+ pickup fine.nib; pos3(light_hair,0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=.67[x3l,x5];
+ lft x5=l+letter_fit+hround(.35u-.5); bot y4r=bot y5r; y3=y3';
+ filldraw stroke z3e{down}..controls (x3e,y5e+.35h)
+ and (min(7/8[x4e,x3e],x4e+2light_hair)+eps,y4e-eps)..{left}z4e--z5e; fi % left stem
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5jut);
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,a,1/3,jut,b,1/3,jut); %lower right serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,jut); %upper right serif
+ nodish_serif(3,0,e,1/3,1.05jut,f,1/3,inner_jut); % upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% misc_tail
+bar_stroke(x2r,hround (r-1/3u));
+penpos9(vair,90); penpos10(hair,180);
+x9-jut=x2r; y9l=0; z10=.5[z9,z8r];
+fill stroke z9e{right}...z10e{up}...{right}z8e;
+penlabels(1,2,3,4,5,6);endchar;
+
+lhchar "Lowercase Special letter Cn_mtl (looks like H)";
+cyrchar(Cn_mtl,10u# if serifs=false:+.5width_adj# fi,x_height#,0); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,max(u#,.5u#+.5stem#));
+% lower_n;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+bar_stroke(x1,x3); % bar
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+% misc tail
+bar_stroke(x4r,hround (r-1/3u));
+penpos9(vair',90); penpos10(hair,180);
+x9-jut=x4r; y9l=tiny.bot y4; z10=.5[z9,z8r];
+fill stroke z9e{right}...z10e{up}...{right}z8e;
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Special letter Cn_bartl";
+cyrchar(Cn_bartl,10u# if serifs=false:+.5width_adj# fi,x_height#,desc_depth#); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,
+ if monospace:3.9u#else:if serifs:3.5u#else:3.3u#fi fi); %tail_adj
+% lower_n;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+bar_stroke(x1,x3); % bar
+%%%
+if serifs:
+ numeric inner_jut[];
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut1=jut;
+ else: rt x1r+inner_jut1+.5u+1=lft x3l-inner_jut1; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut1); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut1,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut1); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut1,h,1/3,.5jut); fi%!!!% lower right serif
+%%%%%
+w:=w+3.5u;
+% tail_part(4);
+_zero:=4;
+_one:=7; _two:=8; _three:=9; _four:=10; _five:=11;
+_six:=12; _seven:=13; _eight:=14; _nine:=15;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+set_bar_axis; y[_one]r=y[_two]r=y2.bh; y[_one]l=y[_two]l=y1.bh;
+penpos[_three](max(currentbreadth+eps,curve if hefty:-3stem_corr fi),0);
+y[_three]=.5[y[_one]r,-d];
+x[_two]l=x[_two]r=w-4.75u; x[_one]l=x[_one]r=x[_zero];
+x[_three]r=hround(w-u); x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs:
+ z[_five]=z[_three]; pos[_five](curve if hefty:-3stem_corr fi,0);
+ pos[_six](vair,-90); bot y[_six]r=-d-oo; y[_seven]-.5flare=-.85d;
+ pos[_seven](hair,-180); pos[_eight](bulb_diam,-180);
+ rt x[_eight]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);
+ z[_seven]r=z[_eight]r;
+ x[_six]=max(rt x[_eight]l,.6[x[_five],x[_seven]r]);
+ (x,y[_six]r)=whatever[z[_six]l,z[_five]l];
+ x[_six]r:=max(x,.5[x[_seven]r,x[_six]]);
+ filldraw stroke super_arc.e([_five],[_six]);
+ bulb([_six],[_seven],[_eight]); % bulb
+else:
+ pickup fine.nib; z[_five]=z[_three];
+ pos[_five](max(fine.breadth,curve if hefty:-3stem_corr fi),0);
+ pos[_nine](vair',-90); pos[_six](.6[vair',flare],-105);
+ rt x[_six]r=x[_three]-4.5u; bot y[_six]r=-d;
+ bot y[_nine]r=-d-oo; x[_nine]=.35[x[_six]r,x[_three]r];
+ filldraw stroke super_arc.e([_five],[_nine])
+ & term.e([_nine],[_six],left,.75,4); fi
+%%%
+if serifs:
+ if rt x2r+jut+.5u+1<=x[_three]r: inner_jut2=jut;
+ else: rt x2r+inner_jut2+.5u+1=x[_three]r; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(4,3,i,1/3,inner_jut1,j,1/3,inner_jut2); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Special letter Cs_mtl (looks like c)";
+cyrchar(Cs_mtl,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u# else: -.1u# fi,max(u#,.5u#+.5stem#));
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%
+% misc tail
+bar_stroke(x3,hround (r-1/3u));
+z5'=z5; if serifs: penpos5'(hair,180); else: penpos5'(.6[vair',flare],95); fi
+fill stroke z5'e{if serifs: up else: dir 75 fi}...{right}z7e;
+penlabels(0,1,2,3,4,5); endchar;
+
+lhchar "Lowercase Special letter Ct_mtl";
+cyrchar(Ct_mtl,9u#-width_adj#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,max(u#,.5u#+.5stem#));
+if odd(stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(vair,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u);
+y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.4beak_jut); % left arm and beak
+if serifs:
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ slab:=Vround(vair-vair_corr); %lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+%
+% misc tail
+bar_stroke(x2r,hround (r-1/3u));
+penpos9(vair',90); penpos10(hair,180);
+x9-1.414jut=x2r; y9l=0; z10=.5[z9,z7r];
+fill stroke z9e{right}...z10e{up}...{right}z7e;
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Special letter Ct_v";
+cyrchar(Ct_v,9u#-width_adj#,x_height#+acc_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+if odd(stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(vair,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u);
+y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.4beak_jut); % left arm and beak
+if serifs:
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+% hacheck from dc
+h:=full_h;
+_zero:=11;
+_one:=7; _two:=8; _three:=9; _four:=10;
+y_move:=if serifs:0 else: x_height-1/12[x_height,min(asc_height,2x_height)]-o fi;
+x_center:=x5l+2/3beak_jut;
+%
+h':=vround x_height+acc_height; % height of circumflex being inverted
+hx:=vround acc_height+.75[x_height,min(asc_height,2x_height)];
+if serifs: pickup crisp.nib;
+ pos[_two]'(.5[vair,curve],90);
+ top y[_two]'r=.75[x_height,min(asc_height,2x_height)]-x_height;
+ pos[_two](.5[vair,curve],90);
+ x[_two]=x_center;
+ x[_one]=good.x x[_two]-2.25u if monospace: /expansion_factor fi;
+ x[_three]=2x[_two]-x[_one];
+ top y[_one]=top y[_three]
+ = x_height+.5y[_two]'r+.5(.5[vair,curve]);
+ y[_one]-y[_two]=.5y[_two]'r;
+ pos[_one](hair,angle(z[_two]-z[_one])+90);
+ pos[_three](hair,angle(z[_three]-z[_two])+90);
+ filldraw stroke z[_one]e--z[_two]e--z[_three]e; % diagonals
+else: pickup fine.nib; pos[_one](vair,0); pos[_three](vair,0);
+ x[_two]-x[_one]=x[_three]-x[_two]; pos[_two](stem,0);
+ bot y[_two]=vround(y_move+1/12[x_height,min(asc_height,2x_height)]+o);
+ x[_two]=x_center; top y[_one]=top y[_three]
+ = y_move+.75[x_height,min(asc_height,2x_height)]+o;
+ lft x[_one]l=hround(rt x[_two]r-0.5vair
+ -3.25u if monospace: /expansion_factor fi);
+ z[_zero]=whatever[z[_one]r,z[_two]r]=whatever[z[_two]l,z[_three]l];
+ y[_four]l=y[_four]r=y[_two];
+ x[_four]l=good.x .2[x[_two]l,x[_two]];
+ x[_four]r-x[_two]=x[_two]-x[_four]l;
+ filldraw z[_four]l--z[_one]l--z[_one]r--z[_zero]--
+ z[_three]l--z[_three]r--z[_four]r--cycle; fi % diagonals
+penlabels(1,2,3,4,5,6,[_one],[_two],[_three],[_four]);
+endchar;
+
+lhchar "Lowercase Special letter Ctch";
+cyrchar(Ctch,11u# if serifs=false:+.5width_adj# fi,x_height#,0); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(1.5u#-.5width_adj#,serif_fit#);
+% lower_ch;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0; x5l=1/3[x1,x3];
+y6=good.y (.48h if serifs:-.15(.5[hair,.7stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+y5=y6; x6=x6'=x3;
+if serifs: y6'=min(3/5h,y6-hair+1.05stem); fi
+numeric middle_weight; middle_weight=.6[thin_join,vair];
+penpos2'(fudged.stem,0); z2'=z2;
+penpos5(middle_weight,90); penpos6(middle_weight,90); penpos6'(middle_weight,90);
+if serifs:
+ if((y6'-y6)>=middle_weight+1+eps):
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{.75(z5-z6)+z6'}z6'e; % arc
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+else: fill stroke pulled_arc.e(2',5) & z5e{right}...{right}z6e; fi % arc
+%%%%%
+% T part
+pickup crisp.nib; top y15r=h; x15=x1; pos15(vair,90);
+pos16(hair,180); lft x16r=l+letter_fit+hround.45u;
+y16=good.y(y15l-1/2beak)-eps;
+pos17(hair,0); x15-x16=x17-x15; y17=y16;
+arm(15,16,q,2/3beak_darkness,-1/3beak_jut);
+arm(15,17,r,2/3beak_darkness,1/3beak_jut);
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Special letter Cchit";
+cyrchar(Cchit,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=.75bar_height; y5=.75h; y6+.5stem=h;
+filldraw stroke z2'e...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Special letter Cc_tl";
+cyrchar(Cc_tl,10u# if serifs=false:+.5width_adj# fi,x_height#, % n_width
+ sbeak#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_c;tl
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric inner_jut,right_jut;
+if serifs:
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower left serif
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; % lower inter_serif bar
+else:
+ pos2'(vair',90); pos4'(vair',90);
+ lft x2'=lft x2l; bot y2'l=0;
+ rt x4'=rt x4r+(2/3fudged.stem-2stem_corr); y4'=y2';
+ filldraw stroke z2'e--z4'e; fi
+right_jut=if serifs:jut else:2/3 fudged.stem-2stem_corr fi;
+pickup fine.nib; x4''r=x4r+right_jut; y4''=0; pos4''(fudged.stem,0);
+pos5'(hair,0); y5'=-d; x5'=x1;
+filldraw stroke z4''e{down}...z5'e{-1,-1};
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Special letter Csh_lngst";
+cyrchar(Csh_lngst,14u#+.5width_adj#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_sh;longstem
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib;
+pos1(fudged.stem,0); pos2(fudged.stem,0); pos3(fudged.stem,0);
+pos4(fudged.stem,0); pos4'(fudged.stem,0); pos5(fudged.stem,0);
+pos6(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=x4'=w-x1;
+top y1=top y3=h; bot y2=bot y4'=0; z5=.5[z1,z3]; z6=.5[z2,z4']; bot y4=-d;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+if serifs: numeric inner_jut,fit; fit=.5u+1;
+ if rt x1r+jut+fit<=lft x5l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+fit=lft x5l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ inner_jut:=min(.5(lft x3l-rt x1r)-eps,.5jut);
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(6,5,k,1/3,inner_jut,l,1/3,inner_jut); % lower center serif
+ serif(4',3,g,1/3,-inner_jut); % lower right serif
+ filldraw z.d0--z.d1--z.g1--z.g0--cycle; % lower inter_serif bar
+ dish_serif(4,3,m,1/3,inner_jut,n,1/3,jut); % lower right serif
+else: pos2'(vair',90); pos4''(vair',90);
+ lft x2'= lft x2l; rt x4''=rt x4r; y4''=y2'=0;
+ filldraw stroke z2'e--z4''e; fi
+penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgcacci.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgcacci.mf
new file mode 100644
index 00000000000..ac33585cf81
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgcacci.mf
@@ -0,0 +1,951 @@
+%
+% lgcacci.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic Cyrillic accented letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% a_bar
+% o_bar
+% o_lcom
+% u_tld
+% u_hat
+% u_gr
+% u_com
+% ery_bar
+% erev_uml
+% erev_dot
+% erev_bar
+% yu_bar
+% ya_bar
+% otld_bar
+% y_bar
+% Vy (italic variant)
+% Vy_bar (italic variant)
+% eps_uml
+%
+% l_ldot
+% n_ldot
+% r_brv
+% t_lcom
+% ch_ldot
+%
+% Vg - Serbian italic variant
+% Vp - Serbian italic variant
+% Vt - Serbian italic variant
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Cyrillic letter a_bar";
+cyrchar(a_bar,9u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:0 else:-.35u#fi,0); %Cyrillic adj
+full_h:=h; h:=x_height;
+% ital_a;
+pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 8,9);
+x_move:=.5w; y_move:=0; _one:=8; _two:=9;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7, 8,9); endchar;
+
+lhchar "Italic Cyrillic letter o_bar";
+cyrchar(o_bar,9u#,lc_trema_height#,0);
+italcorr .7asc_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); full_h:=h; h:=x_height; pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+% the accent
+h:=full_h;
+% low_bar(x1,0, 5,6);
+x_move:=x1; y_move:=0; _one:=5; _two:=6;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4, 5,6); endchar;
+
+lhchar "Italic Cyrillic letter o_lcom - o lower comma";
+cyrchar(o_lcom,9u#,x_height#,1.25desc_depth#);
+italcorr .7asc_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+% the accent
+%ac_comma(0,-oo,1.25desc_depth, 5,6,7,8,9);
+ x_move:=0; y_move:=-oo; depth:=1.25desc_depth;
+ _zero:=5; _one:=6; _two:=7; _three:=8; _four:=9;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(1,2,3,4, 5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter u_tld - u tilde";
+cyrchar(u_tld,if monospace:8.5u# else:9u#fi,x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+h:=full_h; lowercase_tilde(0,0, 11,12,13,14,15);
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15); endchar;
+
+lhchar "Italic Cyrillic letter u_hat - u hat";
+cyrchar(u_hat,if monospace:8.5u# else:9u#fi,x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+h:=full_h; lowercase_hat(.5[if monospace: x2 else: x1 fi,x6],0, 11,12,13,14,15);
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15); endchar;
+
+lhchar "Italic Cyrillic letter u_gr - u grave";
+cyrchar_twice(u_gr,if monospace:8.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0);
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+put_gravis; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter u_com";
+cyrchar(u_com,if monospace:8.5u# else:9u#fi,x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+h:=full_h;
+%ac_comma(0,0,1.25acc_height, 11,12,13,14,15)(above);
+ x_move:=0; y_move:=0; depth:=1.25acc_height;
+ _zero:=11; _one:=12; _two:=13; _three:=14; _four:=15;
+ numeric height,bulb_diam;
+ height=if serifs:
+ depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ %comma above letter: vertical
+ top y[_two]=h+y_move;
+ bot y[_one]=vround(y[_two]-height);
+ x[_two]=x[_one]=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=h+y_move;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14,15); endchar;
+
+lhchar "Italic Cyrillic letter ery_bar";
+cyrchar(ery_bar,8u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %u
+adjust_fit(if monospace:-2u#,2.5u# else:0,4u# fi); h:=x_height;
+% ital_ery;
+pickup tiny.nib; pos2(stem,0); y2=.6bar_height;
+if monospace: x1=x2; pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x1=x2+.25u; x0'=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0',a,1)(skewed); fi % opening hook
+pickup fine.nib; pos1'(stem,-180); pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z1'=z1; z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke z1'e{-u,-x_height}...pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+% I
+w:=w+4u;
+pos6(stem,0); y6+.5stem=h; rt x6r=hround(w-2.5u+.5stem); x7=x6;
+if monospace: pos9(vair,90); x9=good.x .5[x6,w]; bot y9l=0; y7=1/3h;
+ pos7(stem,0); filldraw stroke z7e{down}...{right}z9e; % terminal
+else: x9=w; hook_out(7,8,9); fi % opening hook
+filldraw circ_stroke z6e--z7e; % stem
+% the accent
+h:=full_h;
+if monospace:
+%low_bar(.5[l,r],oo, 11,12);
+ x_move:=.5[l,r]; y_move:=oo; _one:=11; _two:=12;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ filldraw stroke z[_one]e--z[_two]e; % bar
+else:
+% low_wbar(x1,w-x1,oo, 11,12);
+ x_left:=x1; x_right:=w-x1; y_move:=oo; _one:=11; _two:=12;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_left; x[_two]=x_right;
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ filldraw stroke z[_one]e--z[_two]e; fi % bar
+penlabels(0,1,1',2,3,4,5,6,7,8,9,10, 11,12); endchar;
+
+lhchar "Italic Cyrillic letter erev_uml - reverse e umlaut";
+cyrchar(erev_uml,8u#,lc_trema_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %o
+adjust_fit(0,if monospace:0 else:-.35u# fi); %o
+h:=x_height;
+% ital_erev;
+pickup fine.nib;
+pos0(flare,180); pos1(hair,-180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x2+.5u=x4=.5(w-u); lft x1r=min(lft x2,hround(.25u))-eps;
+rt x3r=w-hround(1.5u-.5curve); lft x5r=good.x (lft x1r-eps); x6=x5;
+y1-.5flare=.1h; bot y2r=-oo; bulb(2,1,0); % bulb
+top y4r=h+oo; y3=.5[y2,y4]; top y5r=vround .5[bar_height,h];
+y6=bar_height; path p; p=z4{left}....z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x7=x3; y7=bar_height; y8=y7; lft x8=hround min(lft x2-1-eps,rt x0l+eps);
+pos7(vair,90); pos8(vair,90);
+filldraw stroke z7e--z8e;
+%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 9,10,11,12);
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter erev_dot - reverse e dot";
+cyrchar_twice(erev_dot,8u#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#; %o
+adjust_fit(0,if monospace:0 else:-.35u# fi); %o
+begingroup
+% ital_erev;
+pickup fine.nib;
+pos0(flare,180); pos1(hair,-180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x2+.5u=x4=.5(w-u); lft x1r=min(lft x2,hround(.25u))-eps;
+rt x3r=w-hround(1.5u-.5curve); lft x5r=good.x (lft x1r-eps); x6=x5;
+y1-.5flare=.1h; bot y2r=-oo; bulb(2,1,0); % bulb
+top y4r=h+oo; y3=.5[y2,y4]; top y5r=vround .5[bar_height,h];
+y6=bar_height; path p; p=z4{left}....z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x7=x3; y7=bar_height; y8=y7; lft x8=hround min(lft x2-1-eps,rt x0l+eps);
+pos7(vair,90); pos8(vair,90);
+filldraw stroke z7e--z8e;
+%%%
+% the accent
+endgroup; put_dot(fine,flare#); repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Italic Cyrillic letter erev_bar - reverse e bar";
+cyrchar(erev_bar,8u#,lc_trema_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#; %o
+adjust_fit(0,if monospace:0 else:-.35u# fi); %o
+full_h:=h; h:=x_height;
+% ital_erev;
+pickup fine.nib;
+pos0(flare,180); pos1(hair,-180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x2+.5u=x4=.5(w-u); lft x1r=min(lft x2,hround(.25u))-eps;
+rt x3r=w-hround(1.5u-.5curve); lft x5r=good.x (lft x1r-eps); x6=x5;
+y1-.5flare=.1h; bot y2r=-oo; bulb(2,1,0); % bulb
+top y4r=h+oo; y3=.5[y2,y4]; top y5r=vround .5[bar_height,h];
+y6=bar_height; path p; p=z4{left}....z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x7=x3; y7=bar_height; y8=y7; lft x8=hround min(lft x2-1-eps,rt x0l+eps);
+pos7(vair,90); pos8(vair,90);
+filldraw stroke z7e--z8e;
+%%%
+% the accent
+h:=full_h;
+% low_bar(.5w,oo, 9,10);
+x_move:=.5w; y_move:=oo; _one:=9; _two:=10;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8, 9,10); endchar;
+
+lhchar "Italic Cyrillic letter yu_bar (looks like io)";
+cyrchar(yu_bar,9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace:3u# else:4.5u# fi,
+ if monospace:-.75u# else:-.35u# fi);
+full_h:=h; h:=x_height;
+% ital_yu;
+pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+% i half
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9; _six:=10;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x2; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+% the accent
+h:=full_h;
+if monospace:
+% low_bar(.5[l,r],oo, 11,12);
+ x_move:=.5[l,r]; y_move:=oo; _one:=11; _two:=12;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ filldraw stroke z[_one]e--z[_two]e; % bar
+else:
+% low_wbar(x9,w-(x9-l),oo, 11,12);
+ x_left:=x9; x_right:=w-(x9-l); y_move:=oo; _one:=11; _two:=12;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_left; x[_two]=x_right;
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ filldraw stroke z[_one]e--z[_two]e; fi % bar
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12); endchar;
+
+lhchar "Italic Cyrillic letter ya_bar (looks like small backward R)";
+cyrchar(ya_bar,9u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_ya;
+pickup fine.nib;
+rt x1r=rt x2r=hround(w-2.5u+.5stem); top y1=h; x4=w;
+hook_out(2,3,4); % closing hook
+pos1(stem,0); filldraw stroke z1e--z2e; % stem
+pos5(vair,90); pos6(vair,90); pos7(curve,180); pos8(vair,270); pos9(vair,270);
+x5=x9=x1; top y5r=top y6r=h; x6=x8=.5[x5,x7];
+lft x7l=hround(1.5u if not monospace:+.5curve fi);
+y7=.5[y5,y9]; y8=y9=bar_height;
+filldraw stroke z5e...pulled_arc.e(6,7) & pulled_arc.e(7,8)...z9e; % bowl
+pos10(stem,0); pos11(vair,-90);
+x10=.3[x11,x9]; y10=1/2y9; x11-flare=-.25u; bot y11r=-oo;
+filldraw stroke z11e{right}...z10e{up}...{right}z9e; % lower diagonal
+pos12(hair,180); pos13(flare,180);
+lft x13r=-.25u; y13-.5flare=.1h; bulb(11,12,13); % bulb
+%%%
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 14,15);
+x_move:=.5w; y_move:=0; _one:=14; _two:=15;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4,5,6,7,8,8',9,10,11,12,13, 14,15); endchar;
+
+lhchar "Italic Cyrillic letter otld_bar (otld bar)";
+cyrchar(otld_bar,9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); full_h:=h; h:=x_height; pickup fine.nib;
+% ital_o;tld
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+%%%
+% oltilde;
+if (serifs=true) and (bar#<=.5curve#):
+ numeric bar[];
+ set_bar_axis;
+ x5r=x2l; x6r=x4l;
+ y5r=y6r=y2.bh; y5l=y6l=y1.bh; x5r=x5l; x6l=x6r;
+ bar2=2/3[bar,fudged.stem];
+ penpos7(bar2,45); z7=.5[z5l,z6l];
+ fill stroke z6e{-2,-1}..{-2,1}z7e..{-2,-1}z5e;
+else:
+ bar_stroke(x2l,x4l);
+fi
+%%%%%
+% the accent
+h:=full_h;
+% low_bar(.5w,oo, 8,9);
+x_move:=.5w; y_move:=oo; _one:=8; _two:=9;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4,6,7, 8,9); endchar;
+
+lhchar "Italic Cyrillic letter y_bar - straight u bar";
+cyrchar(y_bar,9.5u#,lc_trema_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(.25u#,max(u#,.5u#+.5flare#)); %izhy_adj
+full_h:=h; h:=x_height;
+% ital_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha; left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem); outer_jut=.75jut;
+x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=0; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0);
+penpos4(alpha*right_stem,0); penpos4'(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0);
+x5=x6; y6=-d; z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos7(vair,90); penpos8(hair,0); penpos9(flare,0);
+x7=.5[x4',rt x8r]; y7r=h+oo;
+y4'=min(.9x_height,y7l-vair); z4'=whatever[z3,z4];
+rt x8r=hround(r-.5u-.5);
+y8=max(vround(y7r-.5hair)-.5flare-1,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+cyrbulb(7,8,9); % bulb
+y1'=3/4x_height; z1'=whatever[z1,z2]; penpos1'(alpha*left_stem,0);
+x10=l+letter_fit; x10:=hround(x10-.5hair)+.5hair; y10=2/3x_height;
+penpos11(vair,90); top y11r=x_height+oo; x11=min(x1l-.5,x10+u);
+if y0>y2+notch_cut:
+ y0:=y2+notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4'l...{right}z7r--z7l{left}
+ ...{z5r-z4'r}z4'r--z5r--z6r--z6l--z5l--
+ z1'l{z1-z2}...{left}z11l--z11r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--z4'l...{right}z7r--z7l{left}
+ ...z4'r--z5r--z6r--z6l--z5l--
+ z1'l{z1-z2}...{left}z11l--z11r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ --cycle; fi % diagonals and stem
+pickup fine.nib;
+pos10(hair,180); pos11'(vair,90); z11'=z11;
+filldraw stroke z10e{up}...z11'e{right}; % hook
+pickup tiny.nib; prime_points_inside(6,5);
+dish_serif(6',5,e,1/3,jut,f,1/3,jut); % lower serif
+%%%
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 13,14);
+x_move:=.5w; y_move:=0; _one:=13; _two:=14;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12, 13,14); endchar;
+
+% italic variants of straight u (like flipped h)
+lhchar "Italic Cyrillic letter Vy - variant straight u (flipped h)"; %
+cyrchar(Vy,if monospace:8.5u# else:9u#fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0);
+pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; x5=x6=x7;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+pickup tiny.nib; y6+.5stem=h; z6'=z6;
+pos6'(stem,0); pos7(stem,0);
+bot y7=-d; filldraw circ_stroke z6e--z7e; % stem
+dish_serif(7,6,a,1/3,jut,b,1/3,.75jut); % serif
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter Vy_bar - variant straight u macron"; %
+cyrchar(Vy_bar,if monospace:8.5u# else:9u#fi,lc_trema_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; x5=x6=x7;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+pickup tiny.nib; y6+.5stem=h; z6'=z6;
+pos6'(stem,0); pos7(stem,0);
+bot y7=-d; filldraw circ_stroke z6e--z7e; % stem
+dish_serif(7,6,a,1/3,jut,b,1/3,.75jut); % serif
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 11,12);
+x_move:=.5w; y_move:=0; _one:=11; _two:=12;
+%
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12); endchar;
+
+lhchar "Italic Cyrillic letter Vy_hcrs - variant cross straight u";
+cyrchar(Vy_hcrs,if monospace:8.5u# else:9u#fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; x5=x6=x7;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+pickup tiny.nib; y6+.5stem=h; z6'=z6;
+pos6'(stem,0); pos7(stem,0);
+bot y7=-d; filldraw circ_stroke z6e--z7e; % stem
+dish_serif(7,6,a,1/3,jut,b,1/3,.75jut); % serif
+% bar
+pickup fine.nib; numeric middle_weight;
+middle_weight=max(fine.breadth,.6[thin_join,vair]);
+y10=y11=hround min(bot y4-1,.5[bot y4,-d+vair'])-.5middle_weight;
+x11=lft x7l-jut; x10=rt x7r+.75jut; pos11(middle_weight,90); pos10(middle_weight,90);
+filldraw stroke z10e--z11e;
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+lhchar "Italic Cyrillic letter eps_uml - epsilon umlaut";
+cyrchar(eps_uml,if serifs:8u# else:7.5u# fi,lc_trema_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+h:=x_height;
+% ital_eps;
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90); pos7(curve,180);
+pos9(vair,270); pos3(vair,270); pos9'(vair,90); pos3'(vair,90);
+pos8(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-.25u))+eps;
+x5r=good.x w-eps; x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+lft x7r=hround(2u-.5curve); lft x8r=hround(1.5u-.5curve);
+bot y4r=-oo; y7=.5[y2,y3]; y5r=y8=.5[y3,y4]; y6=bar_height;
+x3=x2; rt x9=hround max(rt x2+1+eps,lft x0l-eps); y3=y9=bar_height;
+z9'=z9; z3'=z3;
+path p; p=z4{left}..(x5,15/16bar_height)..z6;
+filldraw stroke z9e{left}...super_arc.e(3,7) & super_arc.e(7,2); % lower arc
+filldraw stroke z9'e{left}...pulled_arc.e(3',8) & pulled_arc.e(8,4)
+ ...{direction 1 of p}z5e; % upper arc
+%%%
+% the accent
+lowercase_umlaut(0,0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter l_ldot - el lower dot";
+cyrchar(l_ldot,9u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(.5u#,0);
+% ital_l;
+pickup fine.nib;
+pos1(vair,-90); pos2(stem,180); pos3(hair,0); pos10(stem,0);
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+top y1l=h+oo; x1=.5[x3,x2];
+x3=3u; y3=.35h;
+y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r;
+bot y4r=-oo; x4=max(.4[lft x6r,rt x3r],lft x6r+.5flare-eps);
+y10=.8h; lft x10l=lft x7l=hround(w-2.5u-.5stem); z10=z2;
+bulb(4,5,6); % bulb
+filldraw stroke pulled_arc.e(4,3)
+ & super_arc.e(3,1) & super_arc.e(1,2); % left stem
+x9=w; hook_out(7,8,9); % hook
+filldraw stroke z10e--z7e; % right stem
+%%%
+% the accent
+% lower_dot;
+_one:=11; _two:=12; _center:=.5w;
+%
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=hround(_center); bot y[_two]l=vround(-d-1);
+if 0-oo-top y[_two]r<slab: y[_one]r:=vround(max(y[_two]l+eps,-fine-slab)); fi
+x[_one]=x[_two]; y[_one]=vround(.5[y[_two]l,y[_two]r]);
+dot([_one],[_two]); % dot
+penlabels(1,1',2,3,4,5,6,7,8,9,10, 11,12); endchar;
+
+lhchar "Italic Cyrillic letter n_ldot - en lower dot";
+cyrchar(n_ldot,10u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0);
+% ital_n;
+pickup fine.nib; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace: pos2(stem,0); top y2=h;
+else: x0=0; hook_in(0,1,2); fi % opening hook
+y3-.5stem=-oo;
+filldraw circ_stroke z3e--z2e;
+x10=x3l; y10=y11=bar_height; pos10(vair,90); pos11(vair,90);
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); y6+.5stem=h;
+x7=x6; x9=w; hook_out(7,8,9); z7'=z7; pos7'(stem,0);
+filldraw circ_stroke z6e--z7'e; x11=x6l; filldraw stroke z10e--z11e;
+%%%
+% the accent
+% lower_dot;
+_one:=12; _two:=13; _center:=.5w;
+%
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=hround(_center); bot y[_two]l=vround(-d-1);
+if 0-oo-top y[_two]r<slab: y[_one]r:=vround(max(y[_two]l+eps,-fine-slab)); fi
+x[_one]=x[_two]; y[_one]=vround(.5[y[_two]l,y[_two]r]);
+dot([_one],[_two]); % dot
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11, 12,13); endchar;
+
+lhchar "Italic Cyrillic letter r_brv - r breve";
+cyrchar(r_brv,if monospace:9u#else:9.25u#fi,x_height#+acc_height#,desc_depth#); % the Russian width
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %p
+adjust_fit(0,if monospace:0 else:-.35u#fi); full_h:=h; h:=x_height;
+% ital_r;
+pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+%%%
+% the accent
+h:=full_h; lowercase_breve(.5w,0, 8,9,10); %x3 y3r-h
+penlabels(0,1,2,3,4,5,6,7, 8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter t_lcom - te lower comma";
+cyrchar(t_lcom,15u#,x_height#,1.25desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi);
+% ital_t;
+pickup fine.nib; numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem; pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+% the accent
+%ac_comma(0,0,1.25desc_depth, 10,11,12,13,14);
+ x_move:=0; y_move:=0; depth:=1.25desc_depth;
+ _zero:=10; _one:=11; _two:=12; _three:=13; _four:=14;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter ch_ldot - che lower dot";
+cyrchar(ch_ldot,9.5u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0);
+% ital_ch;
+pickup fine.nib; interim superness:=more_super;
+x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+bot y4r=.75bar_height; y5=.75h; y3=min(y2-eps,.7[y4,y5]); y6+.5stem=h;
+filldraw stroke z2'e...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+%%%
+% the accent
+% lower_dot;
+_center:=x8;
+_one:=10; _two:=11;
+%
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=hround(_center); bot y[_two]l=vround(-d-1);
+if 0-oo-top y[_two]r<slab: y[_one]r:=vround(max(y[_two]l+eps,-fine-slab)); fi
+x[_one]=x[_two]; y[_one]=vround(.5[y[_two]l,y[_two]r]);
+dot([_one],[_two]); % dot
+penlabels(0,1,2,3,4,5,6,7, 8,9); endchar;
+%
+% variants of Serbian g p and t (not a serious experiment)
+%
+lhchar "Italic Cyrillic letter Vg - looks as dotless i bar";
+cyrchar(Vg,5u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+full_h:=h; h:=x_height;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 6,7);
+x_move:=.5w; y_move:=0; _one:=6; _two:=7;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5); endchar;
+
+lhchar "Italic Cyrillic letter Vp - looks as Latin u bar";
+cyrchar(Vp,10u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 10,11);
+x_move:=.5w; y_move:=0; _one:=10; _two:=11;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter Vt - looks as Russian sh bar";
+cyrchar(Vt,15u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-2u#,-1.5u# else: 0,0 fi); full_h:=h; h:=x_height;
+pickup fine.nib; interim superness:=more_super;
+numeric shaved_stem; shaved_stem=mfudged.stem; save stem; stem=shaved_stem;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(min(stem,hair),0); x4=.5[x3,x5]; x5=x7';
+pos5'(min(stem,hair),0); pos6'(vair,-90); pos7'(stem,-180); x5'=x7; y5'=y5;
+pos8'(stem,-180); x8'=x7'; y8'+.5stem=h;
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x6=x7; y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+x7'+.5stem=hround(.5w+.5stem);
+if monospace: bot y7=0; pos7(stem,0); else: x9=w; hook_out(7,8,9); fi
+x6'=.6[x5',x7']; bot y6'r=bot y4r; y7'=.35x_height;
+filldraw stroke super_arc.e(7',6')...{up}z5'e; %}}; middle stroke
+filldraw circ_stroke z8'e--z7'e; % middle stem
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+% the accent
+h:=full_h;
+if monospace:
+% low_bar(.5w,0, 10,11);
+ x_move:=.5w; y_move:=0; _one:=10; _two:=11;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ filldraw stroke z[_one]e--z[_two]e; % bar
+else:
+% low_wbar(x1,x7,0, 10,11);
+ x_left:=x1; x_right:=x7; y_move:=oo; _one:=10; _two:=11;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_left; x[_two]=x_right;
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ filldraw stroke z[_one]e--z[_two]e; fi % bar
+penlabels(1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgcaccl.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgcaccl.mf
new file mode 100644
index 00000000000..c565dd8f05b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgcaccl.mf
@@ -0,0 +1,1128 @@
+%
+% lgcaccl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Cyrillic accented letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% a_bar
+% o_bar
+% o_lcom
+% u_tld
+% u_hat
+% u_gr
+% u_com
+% ery_bar
+% erev_uml
+% erev_dot
+% erev_bar
+% yu_bar
+% ya_bar
+% otld_bar
+% y_bar
+% eps_uml
+%
+% l_ldot
+% n_ldot
+% r_brv
+% t_lcom
+% ch_ldot
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Cyrillic letter a_bar";
+cyrchar(a_bar,9u#,lc_trema_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+full_h:=h; h:=x_height;
+% lower_a;
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l; (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+%%%%%
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 14,15);
+x_move:=.5w; y_move:=0; _one:=14; _two:=15;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13, 14,15); endchar;
+
+lhchar "Lowercase Cyrillic letter o_bar";
+cyrchar(o_bar,9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+full_h:=h; h:=x_height;
+% lower_o;
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%%%%%
+% the accent
+h:=full_h;
+% low_bar(x1,0, 5,6);
+x_move:=x1; y_move:=0; _one:=5; _two:=6;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4, 5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter o_lcom - o lower comma";
+cyrchar(o_lcom,9u#,x_height#,1.25desc_depth#);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% the accent
+%ac_comma(0,-oo,1.25desc_depth, 5,6,7,8,9);
+ x_move:=0; y_move:=-oo; depth:=1.25desc_depth;
+ _zero:=5; _one:=6; _two:=7; _three:=8; _four:=9;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(1,2,3,4, 5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter u_tld - u tilded";
+cyrchar(u_tld,if serifs:9.5u# else:9u# fi,x_height#+acc_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+full_h:=h; h:=x_height;
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+% the accent
+h:=full_h; lowercase_tilde(0,0, 10,11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14); endchar;
+
+lhchar "Lowercase Cyrillic letter u_hat - u hat";
+cyrchar(u_hat,if serifs:9.5u# else:9u# fi,x_height#+acc_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+full_h:=h; h:=x_height;
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+% the accent
+h:=full_h; lowercase_hat(.5[x1,x4],0, 10,11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter u_gr - u grave";
+cyrchar_twice(u_gr,if serifs:9.5u# else:9u# fi,x_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+begingroup
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+endgroup;
+% the accent
+hpos_corr=0.75u; put_gravis; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter u_com";
+cyrchar(u_com,if serifs:9.5u# else:9u# fi,
+ x_height#+1.25acc_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+full_h:=h; h:=x_height;
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+% the accent
+h:=full_h;
+%ac_comma((.5[x1,x4]-.5w),0,1.25acc_height, 10,11,12,13,14)(above);
+ x_move:=(.5[x1,x4]-.5w); y_move:=0; depth:=1.25acc_height;
+ _zero:=10; _one:=11; _two:=12; _three:=13; _four:=14;
+ numeric height,bulb_diam;
+ height=if serifs:
+ depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ %comma above letter: vertical
+ top y[_two]=h+y_move;
+ bot y[_one]=vround(y[_two]-height);
+ x[_two]=x[_one]=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=h+y_move;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14); endchar;
+
+lhchar "Lowercase Cyrillic letter ery_bar";
+cyrchar(ery_bar,9u#,lc_trema_height#,0); % v_witdh
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0,0 else: serif_fit#,serif_fit# fi %wlett_adj
+ +4u#);
+full_h:=h; h:=x_height;
+% lower_ery;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% I
+w:=w+4u; rt x8r=rt x9r=w-lft x1l; top y8=h; bot y9=0;
+pos8(fudged.stem,0); pos9(fudged.stem,0);
+filldraw stroke z8e--z9e; % stem
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(8,9,e,1/3,jut,f,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(9,8,g,1/3,jut,h,1/3,jut); fi% lower serif
+%%%%%
+% the accent
+h:=full_h;
+if monospace:
+% low_bar(.5[l,r],oo, 10,11);
+ x_move:=.5[l,r]; y_move:=oo; _one:=10; _two:=11;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ filldraw stroke z[_one]e--z[_two]e; % bar
+else:
+% low_wbar(l+2.5u-.5stem,w-2.5u+.5stem,oo, 10,11);
+ x_left:=l+2.5u-.5stem; x_right:=w-2.5u+.5stem; y_move:=oo; _one:=10; _two:=11;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_left; x[_two]=x_right;
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ filldraw stroke z[_one]e--z[_two]e; fi % bar
+penlabels(1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter erev_uml - reverse e umlaut";
+cyrchar(erev_uml,8u#,lc_trema_height#,0); % eng
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+full_h:=h; h:=x_height;
+% lower_erev;
+set_bar_axis;
+pickup fine.nib; pos2(vair',90); pos3(curve,0); pos4(vair',-90);
+x2=x4=w-.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+rt x3r=w-hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs:
+ pos1(hair,180); pos5(hair,-180);
+ y1=min(y2.bh+.75flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ lft x1r=lft x5r=hround.5u;
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+oo;
+ x1'-x1r=1.5curve; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,5(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos1(4/7[vair',flare],100); pos5(.6[vair',flare],-95);
+ lft x1r=good.x .6u; top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ lft x5r=good.x .5u;
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e<105:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 105}z5e; fi
+ endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%
+% lerev_bar;
+if (serifs=true) and (bar#<=.5curve#):
+ x7r=max(rt x1l+.5hair,0.85[x3l,x1l]); x8r=x3l;
+ y7l=y8l=y1.bh; y7r=y8r=y2.bh; x7l=x7r; x8l=x8r;
+ numeric bar[];
+ bar2=7/8[bar,fudged.stem-2stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ bar_stroke(max(rt x1l+.5hair,0.85[x3l,x1l]),x3l); % bar --
+fi
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 10,11,12,13);
+penlabels(1,1',2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter erev_dot - reverse e dot";
+cyrchar_twice(erev_dot,8u#,x_height#,0); % eng
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_erev;
+set_bar_axis;
+pickup fine.nib; pos2(vair',90); pos3(curve,0); pos4(vair',-90);
+x2=x4=w-.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+rt x3r=w-hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs:
+ pos1(hair,180); pos5(hair,-180);
+ y1=min(y2.bh+.75flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ lft x1r=lft x5r=hround.5u;
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+oo;
+ x1'-x1r=1.5curve; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,5(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos1(4/7[vair',flare],100); pos5(.6[vair',flare],-95);
+ lft x1r=good.x .6u; top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ lft x5r=good.x .5u;
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e<105:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 105}z5e; fi
+ endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%
+% lerev_bar;
+if (serifs=true) and (bar#<=.5curve#):
+ x7r=max(rt x1l+.5hair,0.85[x3l,x1l]); x8r=x3l;
+ y7l=y8l=y1.bh; y7r=y8r=y2.bh; x7l=x7r; x8l=x8r;
+ numeric bar[];
+ bar2=7/8[bar,fudged.stem-2stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ bar_stroke(max(rt x1l+.5hair,0.85[x3l,x1l]),x3l); % bar --
+fi
+%%%%%
+% the accent
+put_dot(tiny,max(dot_size#,cap_curve#)); repeat_once;
+penlabels(1,1',2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter erev_bar - reverse e bar";
+cyrchar(erev_bar,8u#,lc_trema_height#,0); % eng
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+full_h:=h; h:=x_height;
+% lower_erev;
+set_bar_axis;
+pickup fine.nib; pos2(vair',90); pos3(curve,0); pos4(vair',-90);
+x2=x4=w-.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+rt x3r=w-hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs:
+ pos1(hair,180); pos5(hair,-180);
+ y1=min(y2.bh+.75flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ lft x1r=lft x5r=hround.5u;
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+oo;
+ x1'-x1r=1.5curve; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,5(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos1(4/7[vair',flare],100); pos5(.6[vair',flare],-95);
+ lft x1r=good.x .6u; top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ lft x5r=good.x .5u;
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e<105:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 105}z5e; fi
+ endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%
+% lerev_bar;
+if (serifs=true) and (bar#<=.5curve#):
+ x7r=max(rt x1l+.5hair,0.85[x3l,x1l]); x8r=x3l;
+ y7l=y8l=y1.bh; y7r=y8r=y2.bh; x7l=x7r; x8l=x8r;
+ numeric bar[];
+ bar2=7/8[bar,fudged.stem-2stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ bar_stroke(max(rt x1l+.5hair,0.85[x3l,x1l]),x3l); % bar --
+fi
+%%%%%
+% the accent
+h:=full_h;
+% low_bar(x2,oo, 10,11);
+x_move:=x2; y_move:=oo; _one:=10; _two:=11;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,1',2,3,4,5,6,7,8,9, 10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter yu_bar (looks like IO)";
+cyrchar(yu_bar,9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: 4u# else: 4.5u# fi +serif_fit#, %li_part_adj
+ if monospace: -.45u# else: 0 fi);
+full_h:=h; h:=x_height;
+% lower_yu;
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+save slab; % lower.slab
+% barh_i_part(2);
+_zero:=2;
+_one:=5; _two:=6;
+%
+pickup tiny.nib;
+pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround (2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+bar_stroke(x[_one],x[_zero]); % bar
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); % lower serif
+fi
+%%%%%
+% the accent
+h:=full_h;
+if monospace:
+% low_bar(.5[l,r],oo, 9,10);
+ x_move:=.5[l,r]; y_move:=oo; _one:=9; _two:=10;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+ filldraw stroke z[_one]e--z[_two]e; % bar
+ else:
+% low_wbar(l+2.5u-.5stem,w-2.5u+.5stem,oo, 9,10);
+ x_left:=l+2.5u-.5stem; x_right:=w-2.5u+.5stem; y_move:=oo; _one:=10; _two:=11;
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_left; x[_two]=x_right;
+ top y[_one]r=top y[_two]r=lc_trema_height+o;
+ filldraw stroke z[_one]e--z[_two]e; fi % bar
+penlabels(1,2,3,4,5,6,7,8, 9,10); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter ya_bar (`roman')";
+cyrchar(ya_bar,if serifs: 9.75u# else: 10u# fi-.5width_adj#,lc_trema_height#,0); %ya (~n_width:10u)
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if serifs:serif_fit# else:0 fi,serif_fit#);
+full_h:=h; h:=x_height;
+% lowerr_ya;
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=rt x2r=hround(w-2.5u+.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos4(vair,90); penpos5(curve if hefty:-3stem_corr fi,180);
+y6r=y7r=hround (if serifs:.52h else:.5h fi-.6[thin_join,vair]/2);
+y6l=y7l=y6r+.6[thin_join,vair]; y6=y7=.5[y6l,y6r];%
+z3r=top z1; y4=y3; y5=.52[y6r,y4r]+eps;
+x7l=x7r=x2; x4+.25u=x6l=x6r; x4=.5w if serifs:+.25u else:-.25u fi;
+x5r=hround min(1.25u,2u-.5curve)+eps;
+x4l:=x4+.125curve; x6l:=x6l+.125curve;
+fill stroke
+{{interim superness:=more_super; z7e..pulled_arc.e(6,5) &
+ pulled_arc.e(5,4)..z3e}}; % lobe
+numeric stem[],alpha,right_jut;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+lft x9l=hround(l+letter_fit+.3u+right_jut)-eps; bot y9=0;
+alpha=diag_ratio(1,.5(stem1-tiny),y1-y9,x9l-x1);
+penpos9(alpha*(stem1-tiny),0);
+x8=x6l-if serifs:.75u else:.25u fi; y8=y6;
+forsuffixes $=l,r: y9'$=0; endfor
+z9'r=z9r+penoffset z1-z9 of currentpen+whatever*(z1-z9);
+z9'l=z9l+penoffset z9-z1 of currentpen+whatever*(z1-z9);
+z8=z9'+whatever*(z1-z9);
+penpos8(if serifs: x9'r-x9'l else: stem fi-2stem_corr,0);
+fill z8l--diag_end(8l,9'l,1,.5,9'r,8r)--z8r--cycle; % diagonal
+if serifs:
+ numeric inner_jut;
+ if lft x2l-jut-.5u+1>=rt x9r+jut: inner_jut=jut;
+ else: lft x2l-jut-.5u+1=rt x9r+inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower serif
+ dish_serif(9,8,g,1/2,right_jut,h,1/3,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+the accent
+h:=full_h;
+% low_bar(.5[x1,x6r-.5curve],0, 10,11);
+x_move:=.5[x1,x6r-.5curve]; y_move:=0; _one:=10; _two:=11;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter otld_bar (otld bar)";
+cyrchar(otld_bar,9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi); full_h:=h; h:=x_height;
+% lower_o;tld
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%%%
+% oltilde;
+if (serifs=true) and (bar#<=.5curve#):
+ numeric bar[];
+ set_bar_axis;
+ x5r=x2l; x6r=x4l;
+ y5r=y6r=y2.bh; y5l=y6l=y1.bh; x5r=x5l; x6l=x6r;
+ bar2=2/3[bar,fudged.stem];
+ penpos7(bar2,45); z7=.5[z5l,z6l];
+ fill stroke z6e{-2,-1}..{-2,1}z7e..{-2,-1}z5e;
+else:
+ bar_stroke(x2,x4);
+fi
+%%%%%
+% the accent
+h:=full_h;
+% low_bar(.5w,oo, 8,9);
+x_move:=.5w; y_move:=oo; _one:=8; _two:=9;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4,5,6,7, 8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter y_bar - straight u bar";
+cyrchar(y_bar,if serifs: 9.5u# else: 9u# fi,lc_trema_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#); full_h:=h; h:=x_height;
+% lower_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha; left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=0; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=-d;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+notch_cut: y0:=y2+notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(6',5,e,1/3,jut,f,1/3,jut); % lower serif
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % upper right serif
+%%%%%
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 7,8);
+x_move:=.5w; y_move:=0; _one:=7; _two:=8;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter eps_uml - epsilon umlaut";
+cyrchar(eps_uml,if serifs:8u# else:7.5u# fi,lc_trema_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+full_h:=h; h:=x_height;
+% lower_eps;
+numeric right_curve; right_curve=curve-stem_corr; pickup fine.nib;
+penpos2(vair,90); penpos3(right_curve-stem_corr,180);
+penpos7(right_curve,180); penpos8(vair',-90);
+y2r=vround(h+1.5oo); x2=x6l=x6r=x8=.5[w-u,x7]; x7r=hround.6u;
+x3r=max(lft x7r+1,hround .8u); y3=.5[y4l,y2l]-eps; y8r=-oo;
+set_bar_axis; y4l=y5r=y6r=y2.bh; y6l=y5l=y4r=y1.bh; y5=y6=y0.bh;
+pickup fine.nib; z2'=z2; pos2'(vair,90); pos8'(vair',-90); z8'=z8;
+if serifs: pos1(hair,0); pos9(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.6u); bulb(2',1,0); % bulb
+ rt x9r=hround(w-.5u); y9=max(good.y(.5bar_height-.9),y8l+vair');
+ filldraw stroke z8'e{right}..tension.9 and 1..{x9-x8,5(y9-y8)}z9e; % lower bowl
+else: pos1(4/7[vair',flare],80); pos9(.6[vair',flare],275);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2',1,right,.8,4); % upper terminal
+ rt x9r=hround(w-.5u);
+ y9r=good.y(y9r+1/3bar_height-y9); y9l:=good.y y9l; x9l:=good.x x9l;
+ forsuffixes e=l,r: path p.e; p.e=z8'e{right}..tension .9 and 1..z9e;
+ if angle direction 1 of p.e>75:
+ p.e:=z8'e{right}..tension atleast.9 and 1..{dir 75}z9e; fi endfor
+ filldraw stroke p.e; fi % arc and lower terminal
+rt x5l=rt x5r=max(min(w-2.2u,
+ lft x1l- if serifs:flare else:.5vair fi)-eps,rt x6l+fine);
+y7=.5[y6l,y8l]; x4l=x4r=1/3[x5l,x3l];
+(x,y8l)=whatever[z8r,z9l]; x8l:=min(x,x8l+.5u);
+if not serifs:x4r:=max(x5r,x4r-u); x6r:=max(x5r,x6r-.5u); fi
+fill stroke {{interim superness:=hein_super; super_arc.e(2,3)}}
+ & pulled_super_arc.e(3,4)(.7superpull); % upper bowl
+{{interim superness:=more_super;
+ fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)}}; % lower bowl
+fill z5l{right} if bot y5r>top y5l:..(rt x5l,top y5l)---(rt x5r,bot y5r)..
+ else: ... fi {left}z5r--cycle; % bar
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter l_ldot - el lower dot";
+cyrchar(l_ldot,10u# % if not serifs:+.5width_adj# fi % dl_width;n_width
+ ,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit# if not serifs:+.5(stem#-u#) fi, %dl_adj
+ serif_fit#); %
+% lower_l;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+rt x1r=rt x2r=w-hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric light_hair,bot_vair,bulb_diam,left_jut;
+light_hair=if hefty:.5[vair,fudged.hair] else: fudged.hair fi;
+bot_vair=Vround(.5[vair,light_hair]);
+bulb_diam=hround 7/8[hair,flare];
+left_jut=
+ if serifs: max(limit_dist,1.1jut) else: hround (w+serif_fit-rt x2r-.5u) fi;
+x3=1/3[w-rt x1r-(1/8left_jut),rt x1r] if not serifs: -.5(stem-u) fi +eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(hair,-180);
+ top y3=h; y6-.5bulb_diam=.12desc_depth-eps; z6r=z5r;
+ lft x6r=l+letter_fit+hround(.35u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]);
+ bot y4r=-1.5oo-eps; {{less_tense; bulb(4,5,6)}}; %bulb
+ filldraw stroke z4e{right}
+ ..controls (min(15/16[x4,x3],max(x4,lft x6r+1.75bulb_diam))+(x3e-x3),y4e)
+ and (x3e,max(y4l,min(y6-.5,1/3h+eps))+1/3(y4e-y4))..{up}z3e; % left tail
+else:
+ pos3'(vair,90); pos1'(vair,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e; % upper bar
+ pickup fine.nib; pos3(light_hair,0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=.67[x3l,x5];
+ lft x5=l+letter_fit+hround(.35u-.5); bot y4r=bot y5r; y3=y3';
+ filldraw stroke z3e{down}..controls (x3e,y5e+.35h)
+ and (min(7/8[x4e,x3e],x4e+2light_hair)+eps,y4e-eps)..{left}z4e--z5e; fi % left stem
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5jut);
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,a,1/3,jut,b,1/3,jut); %lower right serif
+ slab:=Vround(vair-vair_corr); %lower.slab
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,jut); % upper right serif
+ nodish_serif(3,0,e,1/3,1.05jut,f,1/3,inner_jut); % upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% the accent
+% lower_dot;
+_one:=7; _two:=8; _center:=.5w;
+%
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=hround(_center); bot y[_two]l=vround(-d-1);
+if 0-oo-top y[_two]r<slab: y[_one]r:=vround(max(y[_two]l+eps,-fine-slab)); fi
+x[_one]=x[_two]; y[_one]=vround(.5[y[_two]l,y[_two]r]);
+dot([_one],[_two]); % dot
+penlabels(1,2,3,4,5,6,7,8);endchar;
+
+lhchar "Lowercase Cyrillic letter n_ldot - n lower dot";
+cyrchar(n_ldot,10u# if not serifs:+.5width_adj# fi,x_height#,desc_depth#); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_n;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+bar_stroke(x1,x3); % bar
+%%%
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+% the accent
+% lower_dot;
+_one:=7; _two:=8; _center:=.5w;
+%
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=hround(_center); bot y[_two]l=vround(-d-1);
+if 0-oo-top y[_two]r<slab: y[_one]r:=vround(max(y[_two]l+eps,-fine-slab)); fi
+x[_one]=x[_two]; y[_one]=vround(.5[y[_two]l,y[_two]r]);
+dot([_one],[_two]); % dot
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter r_brv (looks like p)";
+cyrchar(r_brv,10u#+serif_fit#,x_height#+acc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#,0); full_h:=h; h:=x_height;
+% lower_r;
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs:
+ sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+%%%%%
+% the accent
+h:=full_h; lowercase_breve(.5w,0, 9,10,11); %x3 y3r-h
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter t_lcom - te lower comma";
+cyrchar(t_lcom,9u#-width_adj#,x_height#,1.25desc_depth#);
+italcorr x_height#*slant-beak_jut#+.35u#; %Gamma->x_height+.65u#
+adjust_fit(0,0);
+% lower_t;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(vair,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.4beak_jut); % left arm and beak
+%%%
+if serifs:
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+%%%%%
+% the accent
+%ac_comma(0,0,1.25desc_depth, 6,7,8,9,10);
+ x_move:=0; y_move:=0; depth:=1.25desc_depth;
+ _zero:=6; _one:=7; _two:=8; _three:=9; _four:=10;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(1,2,3,4,5, 6,7,8,9,10); endchar;
+
+lhchar "Lowercase Cyrillic letter ch_ldot - che lower dot";
+cyrchar(ch_ldot,10u# if not serifs:+.5width_adj# fi,x_height#,desc_depth#); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+% lower_ch;
+pickup tiny.nib;
+numeric middle_weight; middle_weight=.6[thin_join,vair];
+pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+penpos2'(fudged.stem,0); z2'=z2;
+penpos5(middle_weight,90); penpos6(middle_weight,90);
+penpos6'(middle_weight,90);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0; x5l=1/3[x1,x3];
+y6l=vround(.48h-.5middle_weight if serifs:-.15(.5[hair,.7stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+y5l=y6l; x6=x6'=x3;
+if serifs: y6'l=min(3/5h,y6l-hair+1.05stem); fi
+if serifs:
+ if ((y6'l-y6l)>=middle_weight+1+eps):
+ fill stroke z2'e{down}..z5e{right}...{.75(z5-z6)+z6'}z6'e; % arc
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+else: fill stroke pulled_arc.e(2',5) & z5e{right}...{right}z6e; fi % arc
+%%%%%
+% the accent
+_one:=7; _two:=8; _center:=x4;
+%
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=hround(_center); bot y[_two]l=vround(-d-1);
+if 0-oo-top y[_two]r<slab: y[_one]r:=vround(max(y[_two]l+eps,-fine-slab)); fi
+x[_one]=x[_two]; y[_one]=vround(.5[y[_two]l,y[_two]r]);
+dot([_one],[_two]); % dot
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgcaccu.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgcaccu.mf
new file mode 100644
index 00000000000..73a226d11d5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgcaccu.mf
@@ -0,0 +1,1240 @@
+%
+% lgcaccu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Cyrillic accented letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% A_bar
+% LAT_I_dot
+% O_bar
+% O_lcom
+% U_hat
+% U_tld
+% U_gr
+% U_com
+% ERY_bar
+% EREV_uml
+% EREV_dot
+% EREV_bar
+% YU_bar
+% YA_bar
+% OTLD_bar
+% Y_bar
+% EPS_uml
+%
+% L_ldot
+% N_ldot
+% R_brv
+% T_lcom
+% CH_ldot
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Uppercase Cyrillic letter A_bar";
+cyrchar(A_bar,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(a_bar); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_a;
+numeric left_stem,right_stem,outer_jut,alpha; outer_jut=.8cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.5u;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+% the accent
+h:=full_h;
+% up_bar(x2,o, 7,8);
+x_move:=x2; y_move:=o; _one:=7; _two:=8;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6, 7,8); endchar;
+
+iff not is_small_cap:%
+lhchar "Uppercase Cyrillic letter LAT_I_dot - Ukrainian I dot";
+cyrchar_twice(LAT_I_dot,max(6u#,4u#+cap_stem#),cap_height#+acc_height#,0);
+%if is_small_cap: getcharcode(lat_i_dot); fi % that's `i'
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_ukri; - borrowed from ec
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+%%%%%
+% the accent
+put_dot(tiny,max(dot_size#,cap_curve#))(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter O_bar";
+cyrchar(O_bar,14u#-width_adj#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(o_bar); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+% the accent
+h:=full_h;
+% up_bar(x1,0, 5,6);
+x_move:=x1; y_move:=0; _one:=5; _two:=6;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4, 5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter O_lcom - O lower comma";
+cyrchar(O_lcom,14u#-width_adj#,cap_height#,1.25desc_depth#);
+if is_small_cap: getcharcode(o_lcom); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+% the accent
+%ac_comma(0,-o,1.25desc_depth, 5,6,7,8,9);
+ x_move:=0; y_move:=-o; depth:=1.25desc_depth;
+ _zero:=5; _one:=6; _two:=7; _three:=8; _four:=9;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(1,2,3,4, 5,6,7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter U_hat - U hat";
+cyrchar(U_hat,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(u_hat); fi
+italcorr x_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+% the accent
+if unknown accent_gap: jj:=10;
+if serifs: y[jj]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[jj]'+.5mid_stem)-hi.x_height;
+else: top y[jj]'=h-vround(2/3[h,hi.x_height]);
+ accent_gap=a_ht-y[jj]'-hi.x_height;
+fi fi
+h:=full_h; uppercase_hat(.5[x1,x4],0, 10,11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter U_tld - U tilded";
+cyrchar(U_tld,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(u_tld); fi
+italcorr x_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+% the accent
+h:=full_h; uppercase_tilde(.5w-.5[x1,x4],0, 10,11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter U_gr - U grave";
+cyrchar_twice(U_gr,13u#,cap_height#,0);
+if is_small_cap: getcharcode(u_gr); fi
+italcorr x_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+% the accent
+hpos_corr=.75u; put_gravis(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter U_com";
+cyrchar(U_com,13u#,cap_height#+1.25acc_height#,0);
+if is_small_cap: getcharcode(u_com); fi
+italcorr x_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+% the accent
+h:=full_h;
+%ac_comma((.5[x1,x4]-.5w),0,1.25acc_height, 10,11,12,13,14)(above);
+ x_move:=(.5[x1,x4]-.5w); y_move:=0; depth:=1.25acc_height;
+ _zero:=10; _one:=11; _two:=12; _three:=13; _four:=14;
+ numeric height,bulb_diam;
+ height=if serifs:
+ depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ %comma above letter: vertical
+ top y[_two]=h+y_move;
+ bot y[_one]=vround(y[_two]-height);
+ x[_two]=x[_one]=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=h+y_move;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter ERY_bar";
+cyrchar(ERY_bar,12.5u#,cap_height#+acc_height#,0); %V_width#=12.5u#
+if is_small_cap: getcharcode(ery_bar); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if monospace: 0,0 else: cap_serif_fit#,cap_serif_fit# fi %uwlett_adj
+ +4.5u#); %ERYadj
+full_h:=h; h:=cap_height;
+% upper_ery;
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% I
+w:=w+4.5u; pickup tiny.nib; rt x8r=rt x9r=w-hround max(2u,3u-.5stem);
+top y8=h; bot y9=0; pos8(cap_stem,0); pos9(cap_stem,0);
+filldraw stroke z8e--z9e;
+if serifs: dish_serif(8,9,e,1/3,cap_jut,f,1/3,cap_jut);
+ dish_serif(9,8,g,1/3,cap_jut,h,1/3,cap_jut); fi
+%%%%%
+% the accent
+h:=full_h;
+if monospace:
+% up_bar(.5[l,r],o, 10,11);
+x_move:=.5[l,r]; y_move:=o; _one:=10; _two:=11;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+else:
+% up_wbar(l+max(2u+.5cap_stem,3u),w-max(2u+.5cap_stem,3u),o, 10,11);
+ x_left:=l+max(2u+.5cap_stem,3u); x_right:=w-max(2u+.5cap_stem,3u);
+ y_move:=o; _one:=10; _two:=11;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_left; x[_two]=x_right;
+ top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+ filldraw stroke z[_one]e--z[_two]e; fi % bar
+penlabels(1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter EREV_uml - Reverse E umlaut";
+cyrchar(EREV_uml,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(erev_uml); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+% upper_erev;
+ pickup fine.nib; pos1(cap_hair,180); pos2(cap_band,90);
+ pos3(cap_curve,0); pos4(cap_band,-90); pos5(hair,-180);
+ lft x1r=lft x5r=hround u;
+ rt x3r=hround(w-u); x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+ bot y1=min(vround.675h,bot y2l-eps); y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+%%%
+%%% uerev_bar;
+numeric bar[]; y8=y7=y3;
+x8=x3l; x7=max(rt x1l+.5hair,0.85[x3l,x1l]);
+if (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; % bar --
+fi
+%%%
+% the accent
+h:=full_h; uppercase_umlaut(x2-.5w,0, 10,11,12,13);
+penlabels(1,1',2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter EREV_uml - Reverse E umlaut";
+cyrchar(EREV_uml,11.5u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(erev_uml); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+% uppers_erev;
+ pickup fine.nib; pos1(1.2flare,100); pos2(slab,90);
+ pos3(cap_curve,0); pos4(slab,-90); pos5(flare,-95);
+ lft x1r=hround1.1u; x2=x4=w-(.5w+1.25u);
+ rt x3r=w-hround max(u,2u-.5cap_curve);
+ lft x5r=hround.9u;
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4);
+%%%
+% urevs_bar;
+pickup fine.nib; numeric bar[];
+bar1=if is_small_cap: max(fine.breadth+eps,.6[thin_join,vair])
+ else: cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+y7=y6=y3; x7=x3l; x6=max(rt x1l+.5hair,0.85[x3l,x1l]);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut(x2-.5w,0, 8,9,10,11);
+penlabels(1,1',2,3,4,5,6,7, 8,9,10,11); endchar;
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter EREV_dot - Reverse E dot";
+cyrchar_twice(EREV_dot,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(erev_dot); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+% upper_erev;
+ pickup fine.nib; pos1(cap_hair,180); pos2(cap_band,90);
+ pos3(cap_curve,0); pos4(cap_band,-90); pos5(hair,-180);
+ lft x1r=lft x5r=hround u;
+ rt x3r=hround(w-u); x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+ bot y1=min(vround.675h,bot y2l-eps); y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+%%%
+%%% uerev_bar;
+numeric bar[]; y8=y7=y3;
+x8=x3l; x7=max(rt x1l+.5hair,0.85[x3l,x1l]);
+if (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; % bar --
+fi
+%%%
+% the accent
+put_dot(tiny,max(dot_size#,cap_curve#))(cyrcaph); repeat_once;
+penlabels(1,1',2,3,4,5,6,7,8,9); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter EREV_dot - Reverse E dot";
+cyrchar_twice(EREV_dot,11.5u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(erev_dot); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+% uppers_erev;
+ pickup fine.nib; pos1(1.2flare,100); pos2(slab,90);
+ pos3(cap_curve,0); pos4(slab,-90); pos5(flare,-95);
+ lft x1r=hround1.1u; x2=x4=w-(.5w+1.25u);
+ rt x3r=w-hround max(u,2u-.5cap_curve);
+ lft x5r=hround.9u;
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4);
+%%%
+% urevs_bar;
+pickup fine.nib; numeric bar[];
+bar1=if is_small_cap: max(fine.breadth+eps,.6[thin_join,vair])
+ else: cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+y7=y6=y3; x7=x3l; x6=max(rt x1l+.5hair,0.85[x3l,x1l]);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+% the accent
+put_dot(tiny,max(dot_size#,cap_curve#))(cyrcaph); repeat_once;
+penlabels(1,1',2,3,4,5,6,7); endchar;
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter EREV_bar - Reverse E bar";
+cyrchar(EREV_bar,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(erev_bar); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+% upper_erev;
+ pickup fine.nib; pos1(cap_hair,180); pos2(cap_band,90);
+ pos3(cap_curve,0); pos4(cap_band,-90); pos5(hair,-180);
+ lft x1r=lft x5r=hround u;
+ rt x3r=hround(w-u); x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+ bot y1=min(vround.675h,bot y2l-eps); y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+%%%
+%%% uerev_bar;
+numeric bar[]; y8=y7=y3;
+x8=x3l; x7=max(rt x1l+.5hair,0.85[x3l,x1l]);
+if (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; % bar --
+fi
+%%%
+% the accent
+h:=full_h;
+% up_bar(x2,o, 10,11);
+x_move:=x2; y_move:=o; _one:=10; _two:=11;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,1',2,3,4,5,6,7,8,9, ,10,11); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter EREV_bar - Reverse E bar";
+cyrchar(EREV_bar,11.5u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(erev_bar); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+% uppers_erev;
+ pickup fine.nib; pos1(1.2flare,100); pos2(slab,90);
+ pos3(cap_curve,0); pos4(slab,-90); pos5(flare,-95);
+ lft x1r=hround1.1u; x2=x4=w-(.5w+1.25u);
+ rt x3r=w-hround max(u,2u-.5cap_curve);
+ lft x5r=hround.9u;
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4);
+%%%
+% urevs_bar;
+pickup fine.nib; numeric bar[];
+bar1=if is_small_cap: max(fine.breadth+eps,.6[thin_join,vair])
+ else: cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+y7=y6=y3; x7=x3l; x6=max(rt x1l+.5hair,0.85[x3l,x1l]);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+% the accent
+h:=full_h;
+% up_bar(x2,o, 8,9);
+x_move:=x2; y_move:=o; _one:=8; _two:=9;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,1',2,3,4,5,6,7, 8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter YU_bar (looks like IO)";
+cyrchar(YU_bar,14u#-width_adj#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(yu_bar); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ if monospace:-1.25u# else: 0 fi);
+full_h:=h; h:=cap_height;
+% upper_yu;
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+ else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%I_part(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7; _four:=8;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+% the accent
+h:=full_h;
+if monospace:
+% up_bar(.5[l,r],o, 9,10);
+ x_move:=.5[l,r]; y_move:=o; _one:=9; _two:=10;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+ top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+ x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+ filldraw stroke z[_one]e--z[_two]e; % bar
+else:
+% up_wbar(l+max(2u+.5cap_stem,3u),w-max(2u+.5cap_stem,3u),o,9,10);
+ x_left:=l+max(2u+.5cap_stem,3u); x_right:=w-max(2u+.5cap_stem,3u);
+ y_move:=o; _one:=9; _two:=10;
+ numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+ pickup if serifs: crisp.nib else: fine.nib fi;
+ pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+ x[_one]=x_left; x[_two]=x_right;
+ top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+ filldraw stroke z[_one]e--z[_two]e; fi % bar
+penlabels(1,2,3,4,5,6,7,8, 9,10); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter YA_bar (`roman')";
+cyrchar(YA_bar,if serifs:13.5u# else:12.5u#-.5width_adj# fi %N_width; upss R
+ ,cap_height#+acc_height#,0); % N_width %
+if is_small_cap: getcharcode(ya_bar); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if serifs: cap_serif_fit# else: 0 fi,cap_serif_fit#);
+full_h:=h; h:=cap_height;
+% upperr_ya;
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+rt x1r=rt x2r=hround(w-max(2u,3u-.5cap_stem')); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,180);
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+z3r=top z1; y4=y3; y5=.52[y6l,y4l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround (2u);
+ else: x4=.5w-.5u; x5r=hround u; fi
+x4l:=x6l:=x4+.125cap_curve;
+fill stroke z7e..pulled_arc.e(6,5) & pulled_arc.e(5,4)..z3e; % lobe
+pickup tiny.nib; numeric stem[],alpha,right_jut;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+if serifs: bot y9=bot y2; else: y9=0; fi
+lft x9l=hround(if serifs:l+letter_fit+.75u+right_jut else:.5u fi); y8=y6;
+stem1=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+alpha=diag_ratio(1,.5(stem1-tiny),y1-y9,x9l-x1);
+penpos9(alpha*(stem1-tiny),0);
+forsuffixes $=l,r: y9'$=0; endfor
+z9'r=z9r+penoffset z1-z9 of currentpen+whatever*(z1-z9);
+z9'l=z9l+penoffset z9-z1 of currentpen+whatever*(z1-z9);
+if serifs: z8r=z9'r+whatever*(z1r-z9); else: x8=x6+.5u; fi
+penpos8(if serifs:x9'r-x9'l else: cap_stem-2stem_corr fi,0);
+fill z8l--diag_end(8l,9'l,1,.5,9'r,8r)--z8r--cycle; % diagonal
+numeric inner_jut;
+if lft x2l-cap_jut-.5u+1>=rt x9r+cap_jut: inner_jut=cap_jut;
+ else: lft x2r-cap_jut-.5u+1=rt x9r+inner_jut; fi
+if serifs:
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+ dish_serif(9,8,g,1/2,right_jut,h,1/3,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+% the accent
+h:=full_h;
+% up_bar(.5[x1,x6-.5cap_curve],0, 11,12);
+x_move:=.5[x1,x6-.5cap_curve]; y_move:=0; _one:=11; _two:=12;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12); endchar;
+
+lhchar "Uppercase Cyrillic letter OTLD_bar (OTLD bar)";
+cyrchar(OTLD_bar,14u#-width_adj#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(otld_bar); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+% upper_o;tld
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%%%%%
+% outilde;
+z5=z2l; z6=z4l; penpos5(cap_bar,90); penpos6(cap_bar,90);
+if (serifs) and (bar#<=.5curve#): numeric bar[];
+ bar2=2/3[cap_bar,fudged.cap_stem]; penpos7(bar2,45); z7=.5[z5,z6];
+ fill stroke z5e{2,1}..{2,-1}z7e..{2,1}z6e;
+else: fill stroke z5e--z6e; fi
+%%%%%
+% the accent
+h:=full_h;
+% up_bar(.5w,o, 8,9);
+x_move:=.5w; y_move:=o; _one:=8; _two:=9;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4,6,7, 8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter Y_bar - straight u bar";
+cyrchar(Y_bar,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(y_bar); fi
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+% the accent
+h:=full_h;
+% up_bar(.5w,0, 7,8);
+x_move:=.5w; y_move:=0; _one:=7; _two:=8;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter EPS_uml - EPSILON umlaut";
+cyrchar(EPS_uml,if serifs:11u#else:10u#fi,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(eps_uml); fi
+italcorr .75cap_height#*slant-.5u#; %B
+adjust_fit(if monospace:.35u#,.25u# else: 0,0 fi);
+full_h:=h; h:=cap_height;
+% upper_eps;
+pickup fine.nib; pos2(slab,90); top y2r=h+o;
+numeric right_curve,middle_weight;
+right_curve=max(currentbreadth+eps,cap_curve-3stem_corr);
+middle_weight=max(fine.breadth+eps,.6vair+.5);
+pos4(middle_weight,-90); pos5(middle_weight,-90);
+pos6(middle_weight,90); pos5'(middle_weight,90);
+pos7(right_curve,180);
+x2-.5u=x6=x8=.5[w-1.5u,x7]; lft x7r=hround.75u;
+pos3(max(currentbreadth+eps,right_curve-stem_corr),180); lft x3r=hround 1.25u;
+pos8(slab,270); bot y8r=-o; y7=.5[y6l,y8l];
+y3=.5[y4l,y2l]; x4=1/3[x5,x3l]; y4=y5; y5'=y6;
+top y5l-bot y5'l=vair; .5[y5l,y5'l]=.52h;
+rt x5=rt x5'=max(hround (w-3.5u),rt x6)+eps;
+if serifs:
+ pos1(cap_hair,0); pos9(hair,360);
+ lft x1r=w-hround u; lft x9r=w-hround.9u;
+ y1=good.y(max(.52[y5l,y2l],top y5l+.5flare+.5)-eps);
+ y9=max(.52[top y8l,bot y5'l],y7+1);
+ pos0(flare,0); z0r=z1r; bulb(2,1,0); % bulb
+ filldraw stroke z8e{right}...{up}z9e; % arc
+else:
+ pickup fine.nib; pos1(1.2flare,80); pos9(flare,275);
+ rt x1r=hround(w-1.1u); rt x9r=hround(w-.9u);
+ top y1r=vround .95h+o; bot y9r=vround .08h-o; y9l:=good.y y9l; x9l:=good.x x9l;
+ filldraw stroke rterm.e(2,1,right,.9,4); % upper arc
+ filldraw stroke term.e(8,9,right,.8,4); fi % arc and terminals
+if not serifs: interim superness:=more_super; fi
+filldraw stroke
+ z5e..super_arc.e(4,3) &
+ {{if not serifs:interim superness:=hein_super; fi
+ super_arc.e(3,2)}}; % upper bowl
+filldraw stroke super_arc.e(8,7) & super_arc.e(7,6)..z5'e; % lower bowl
+%%%%%
+h:=full_h; uppercase_umlaut(x2-.5w,0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter L_ldot - EL lower dot";
+cyrchar(L_ldot,13.5u#,cap_height#,desc_depth#); % DL_width:N_width
+if is_small_cap: getcharcode(l_ldot); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit# if not serifs:+.5(cap_stem#-u#) fi, %DL_adj
+ cap_serif_fit#); %
+% upper_l;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; %stem
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+numeric light_hair,bot_vair,left_jut;
+light_hair=max(tiny.breadth,fudged.hair if hefty:-4stem_corr fi);
+left_jut=
+ if serifs: max(limit_dist,1.1cap_jut)
+ else: hround (w+cap_serif_fit-rt x2r-.65u) fi;
+bot_vair=Vround(.5[vair,light_hair]);
+x3=1/3[w-rt x1r-(1/6left_jut),rt x1r] if not serifs:-.5(cap_stem-u) fi+eps;
+if serifs:
+ pos3(light_hair,0); pos4(light_hair,-90);
+ pos6(bulb_diam,-180); pos5(cap_hair,-180);
+ top y3=h; y6=1/6h-max(0,flare-stem-2vair_corr-.5); z6r=z5r;
+ lft x6r=l+letter_fit+hround(.5u-.5);
+ x4=max(lft x5r+.5bulb_diam,.4[lft x5r,rt x3r]); bot y4r=-o;
+ filldraw stroke z4e{right}..
+ controls (min(15/16[x4,x3],max(x4,lft x6r+2flare))+(x3e-x3)+eps,y4e)
+ and (x3e,good.y(min(y6-.5,1/3h)+1/3(y4e-y4))-eps)..z3e; % left tail
+ {{less_tense; bulb(4,5,6)}};
+else:
+ pos3'(slab,90); pos1'(slab,90);
+ lft x3'=x3-.5light_hair; rt x1'=x1r; top y3'r=top y1'r=h;
+ filldraw stroke z3'e--z1'e;
+ pickup fine.nib; pos3(max(fine.breadth,light_hair),0); pos4(bot_vair,-90); pos5(bot_vair,-90);
+ bot y5r=0; x4=2/3[x3l,x5r]; lft x5=l+letter_fit+hround(.35u-.5);
+ bot y4r=bot y5r; y3=y3'; x4l:=.25[x4,x5];
+ path p;
+ p=stroke z3{down}
+ ..controls (x3,y5+.35h-eps) and (min(7/8[x4,x3],x5+2.5light_hair+.5u),y4)
+ ..{left}z4--z5;
+ z6=point .35 of p;
+ pos6(max(fine.breadth,7/8[bot_vair,light_hair]),angle(direction .35 of p)+90);
+ filldraw stroke z3e{down}...z6e{direction .35 of p}...{left}z4e--z5e; fi % arc
+%%%
+if serifs:
+ x0=x3; y0=0;
+ numeric inner_jut; inner_jut=min(.5(lft x1l-rt x3r)-eps,.5cap_jut);
+ dish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut); %lower right serif
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut); %upper right serif
+ nodish_serif(3,0,e,1/3,1.05cap_jut,f,1/3,inner_jut); %upper left serif
+ filldraw z.c0--z.c1--z.f1--z.f0--cycle; fi % upper inter_serif bar
+%%%%%
+% upper_dot;
+_one:=7; _two:=8; _center:=.5w;
+%
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=hround(_center); bot y[_two]l=vround(-d-1);
+if 0-o-top y[_two]r<slab: y[_two]r:=vround(max(y[_two]l+eps,-fine-slab)); fi
+x[_one]=x[_two]; y[_one]=vround(.5[y[_two]l,y[_two]r]);
+dot([_one],[_two]); % dot
+penlabels(1,2,3,4,5,6, 7,8,); endchar;
+
+lhchar "Uppercase Cyrillic letter N_ldot - EN lower dot";
+cyrchar(N_ldot,13.5u#,cap_height#,cap_sbeak#);
+if is_small_cap: getcharcode(n_ldot); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_n;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+%%%
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+% dot
+% upper_dot;
+_one:=7; _two:=8; _center:=.5w;
+%
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=hround(_center); bot y[_two]l=vround(-d-1);
+if 0-o-top y[_two]r<slab: y[_two]r:=vround(max(y[_two]l+eps,-fine-slab)); fi
+x[_one]=x[_two]; y[_one]=vround(.5[y[_two]l,y[_two]r]);
+dot([_one],[_two]); % dot
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter R_brv (looks like P)";
+cyrchar(R_brv,12u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(r_brv); fi
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0); full_h:=h; h:=cap_height;
+% upper_r;
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+%%%
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+%%%%%
+% the accent
+h:=full_h; uppercase_breve(.5w,0, 8,9,10);
+penlabels(0,1,2,3,4,5,6,7, 8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter T_lcom - TE lower comma";
+cyrchar(T_lcom,13u#-width_adj#,cap_height#,1.25desc_depth#);
+if is_small_cap: getcharcode(t_lcom); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+% upper_t;
+if odd(cap_stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+%%%
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+%%%%%
+% the accent
+%ac_comma(0,0,1.25desc_depth, 7,8,9,10,11);
+ x_move:=0; y_move:=0; depth:=1.25desc_depth;
+ _zero:=7; _one:=8; _two:=9; _three:=10; _four:=11;
+ numeric height,bulb_diam;
+ height=if serifs: depth+.5fine-max(.27depth,o+hair) else:.68depth fi;
+ bulb_diam=max(fine.breadth,min(dot_size,floor(.56height)));
+ if square_dots: pickup fine.nib; pos[_one](vair,0);
+ pos[_two](.5[vair,stem],0);
+ % comma below letter as sans serif cedilla
+ top y[_one]=-o-2; bot y[_two]=-d-o;
+ x[_two]=x[_one]-1.25u=.5w+x_move;
+ filldraw stroke z[_one]e--z[_two]e; % diagonal
+ else: pickup fine.nib;
+ x[_four]-.5bulb_diam=hround(.5w+x_move-.5bulb_diam);
+ y[_four]+.5bulb_diam=-d+y_move+height;
+ pos[_four](bulb_diam,90);
+ pos[_one](vair,90); pos[_two](vair,0); pos[_three](vair,-45);
+ z[_one]r=z[_four]r; rt x[_two]r=hround(x[_four]+.5bulb_diam
+ +if monospace:.28u / expansion_factor else:.25u fi)+2eps;
+ x[_three]=x[_four]-.5u if monospace: /expansion_factor fi;
+ y[_two]=1/3[y[_one],y[_three]];
+ bot y[_three]r=vround(y[_four]-(height-.5bulb_diam));
+ y_:=ypart((z[_one]{right}...z[_two]{down}...z[_three])
+ intersectiontimes (z[_four]l{right}..{left}z[_four]r));
+ if y_<0: y_:=1; fi
+ filldraw z[_four]r{left}..subpath (0,y_)
+ of (z[_four]l{right}..{left}z[_four]r)--cycle; % dot
+ filldraw stroke z[_one]e{right}...z[_two]e{down}...z[_three]e; fi % tail
+ penlabels([_zero],[_one],[_two],[_three],[_four]);
+penlabels(1,2,3,4,5,6, 7,8,9,10,11); endchar;
+
+lhchar "Uppercase Cyrillic letter CH_ldot - CHE lower dot";
+cyrchar(CH_ldot,13.5u#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(ch_ldot); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_ch;
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0;
+x5l=1/3[x1,x3]; y5=y6; if serifs: y6'=y6-cap_hair+1.05cap_stem; fi
+x6=x6'=x3; y6=good.y (h-.52h if serifs: -.35(.5[cap_hair,.7cap_stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+clearpen; penpos2'(cap_stem,0); z2'=z2;
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos5(middle_weight,90); penpos6(middle_weight,90); penpos6'(middle_weight,90);
+if serifs: if((y6'-y6)>=middle_weight+1+eps):
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{.75(z5-z6)+z6'}z6'e;
+ else: fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+else: filldraw stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+%%%%%
+% dot
+% upper_dot;
+_one:=7; _two:=8; _center:=x4;
+%
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+pos[_one](dot_diam,0); pos[_two](dot_diam,90);
+x[_one]=hround(_center); bot y[_two]l=vround(-d-1);
+if 0-o-top y[_two]r<slab: y[_two]r:=vround(max(y[_two]l+eps,-fine-slab)); fi
+x[_one]=x[_two]; y[_one]=vround(.5[y[_two]l,y[_two]r]);
+dot([_one],[_two]); % dot
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgcmodi.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgcmodi.mf
new file mode 100644
index 00000000000..1161b6feab0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgcmodi.mf
@@ -0,0 +1,104 @@
+%
+% lgcmodi.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic Cyrillic modified letters and variants
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% Modified
+%
+% Vg_hcrs
+% lat_i_dsc
+% Vdzhe
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Cyrillic letter Vg_hcrs - Variant ghe hcrossed"; % not italic shape
+cyrchar(Vg_hcrs,8u#-.5width_adj#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(serif_fit#,-.25u#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; y2-.5stem=0;
+filldraw circ_stroke z2e--z1e; % stem
+pickup crisp.nib; pos3(vair,90); pos4(vair,90);
+top y3r=top y4r=h; x3=x1; rt x4r=hround(w-.5u);
+filldraw stroke z3e--z4e; % upper bar
+% hstroke
+bar_stroke(x1,x1r+1.7u);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter lat_i_dsc - Ukrainian i descender";
+cyrchar(lat_i_dsc,5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); % hook
+pos3(stem,0); pos4(vair,90); pos5(vair,180);
+x5=w; y5=.4bar_height; x4=.5[x3,x5]; bot y4l=-oo; y3=1/3x_height;
+filldraw stroke z3e{-u,-x_height}...z4e{right}...{up}z5e; % hook (3,4,5)
+%hook_out(3,4,5)(skewed); % hook
+filldraw stroke z2e--z3e; % stem
+pos6(flare,0); pos7(flare,90);
+x6=.5w if not monospace:-.4(h-x_height)*slant fi; top y7r=h+1;
+if bot y7l-top y1<slab: y7l:=min(y7r-eps,y1+fine+slab); fi
+x6=x7; y6=.5[y7l,y7r]; dot(6,7); % dot
+% italic descender/ogonek
+if is_ogonek:
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ p.l=z3l{-u,-x_height}...z4l{right}...{up}z5l;
+ ogonek_breadth:=xvair;
+ numeric tt; % the time...
+ tt=if hefty: 2.8 else: 2.6 fi;
+ ogonek_pos=point .9 of p.l;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ z8=z5; pos8(hair,180); i_serif(8,x);
+fi
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Cyrillic letter Vdzhe - te tail";
+cyrchar(Vdzhe,17u#,x_height#,desc_depth#); %15m+2u
+italcorr (-.3x_height#+bar_height#)*slant; %o:.7h-(h-bar_height)
+adjust_fit(if monospace:-1.5u#,-1.5u# else: 0,0 fi);
+pickup fine.nib; numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem; pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem); hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(7u+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(11.5u+.5stem); ital_arch(5,6,7); % right arch
+pos8(stem,0); y8=y2; x8=x7;
+filldraw circ_stroke z8e--z7e; % right stem
+% hook
+pos8'(vair,90); x8'=x7; y8'=bar_height;
+lft x9l=hround(w-1.5u-.5stem); y9=.45y8'; pos9(stem,0);
+pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+pos13(stem,0); x13=x9;
+bot y13=-1/3d; bot y10r=-d-oo; y12-.5flare=-vround.9d;
+x10=w-11/3u; lft x11r=min(x9-4u,lft x11r+x10-x11l+4u-eps);
+filldraw stroke z8'e{right}...z9e{down}---z13e...{left}z10e;
+bulb(10,11,12); % bulb
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgcmodl.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgcmodl.mf
new file mode 100644
index 00000000000..dc04fb84654
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgcmodl.mf
@@ -0,0 +1,160 @@
+%
+% lgcmodl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Cyrillic modified letters and variants
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% Modified
+%
+% Vg_hcrs
+% lat_i_dsc
+% Vdzhe
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Cyrillic letter Vg_hcrs - Variant ghe hcrossed";
+cyrchar(Vg_hcrs,8u#-.5width_adj#,x_height#,0);
+italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u#
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ -.25u#);
+% lower_g;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(Vround(vair-vair_corr),90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); fi % lower serif
+%%%%%
+bar_stroke(x1,x1r+1.7u);
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter lat_i_dsc - Ukrainian i descender";
+%numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+cyrchar(lat_i_dsc,5u#,min(asc_height#,10/7x_height#+.5idot_diam#), %!!!from ec
+ if is_ogonek: desc_depth# else: sbeak# fi); %ldesc/og_depth
+%define_whole_blacker_pixels(idot_diam);
+italcorr h#*slant-serif_fit#+.5idot_diam#-2u#;%!!!from ec
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,
+ if serifs: serif_fit# else: 0 fi % lr_serif_adj
+ -stem_shift#);
+begingroup
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90); %!!!from ec
+if serifs: x3r=max(x1r,x1+.5(idot_diam-tiny)-.2jut) else: x3=x1-.5 fi; %!!!from ec
+top y4r=h+1; if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ if is_ogonek:
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi %!!! % lower serif
+fi
+% lowercase descender/ogonek
+if is_ogonek:
+ endgroup;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ % |stem| was drawn by |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x2 if not serifs: l fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,5,6,7); % ogonek
+else:
+ save slab; slab:=vair; % lower.slab
+ numeric right_jut;
+ right_jut=if serifs: 1.414jut else: hround (r-rt x2r-.5u) fi;
+ r_serif(2,1,o,1/3,jut,p,1/3,beak_darkness,right_jut,.6beak_jut); % lower right descender
+ endgroup;
+fi
+penlabels(1,2,3,4, 5,6,7); endchar;
+
+lhchar "Lowercase Cyrillic letter Vdzhe";
+cyrchar(Vdzhe,9u#-width_adj#,x_height#,desc_depth#);
+italcorr x_height#*slant-beak_jut#+.35u#; %Gamma->x_height+.65u#
+adjust_fit(0,1.7u#); if odd(stem-w): change_width; fi % symmetric & all three equal
+% lower_t;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(vair,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.4beak_jut); % left arm and beak
+%%%
+if serifs:
+ save slab; slab:=vair; % lower.slab
+ %dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+%%%%%
+w:=w+1.7u;
+% tail_part(2);
+_zero:=2;
+_one:=6; _two:=7; _three:=8; _four:=9; _five:=10;
+_six:=11; _seven:=12; _eight:=13; _nine:=14;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,hround 7/8[hair,flare]));
+set_bar_axis; y[_one]r=y[_two]r=y2.bh; y[_one]l=y[_two]l=y1.bh;
+penpos[_three](max(currentbreadth+eps,curve if hefty:-3stem_corr fi),0);
+y[_three]=.5[y[_one]r,-d];
+x[_two]l=x[_two]r=w-4.75u; x[_one]l=x[_one]r=x[_zero];
+x[_three]r=hround(w-u); x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs: z[_five]=z[_three]; pos[_five](curve if hefty:-3stem_corr fi,0);
+ pos[_six](vair,-90); bot y[_six]r=-d-oo; y[_seven]-.5flare=-.85d;
+ pos[_seven](hair,-180); pos[_eight](bulb_diam,-180);
+ rt x[_eight]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);
+ z[_seven]r=z[_eight]r;
+ x[_six]=max(rt x[_eight]l,.6[x[_five],x[_seven]r]);
+ (x,y[_six]r)=whatever[z[_six]l,z[_five]l];
+ x[_six]r:=max(x,.5[x[_seven]r,x[_six]]);
+ filldraw stroke super_arc.e([_five],[_six]);
+ bulb([_six],[_seven],[_eight]); % bulb
+else:
+ pickup fine.nib; z[_five]=z[_three];
+ pos[_five](max(fine.breadth,curve if hefty:-3stem_corr fi),0);
+ pos[_nine](vair',-90); pos[_six](.6[vair',flare],-105);
+ rt x[_six]r=x[_three]-4.5u; bot y[_six]r=-d;
+ bot y[_nine]r=-d-oo; x[_nine]=.35[x[_six]r,x[_three]r];
+ filldraw stroke super_arc.e([_five],[_nine])
+ & term.e([_nine],[_six],left,.75,4); fi
+%%%
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=x[_three]r: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=x[_three]r; fi
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,1.414jut,d,1/3,inner_jut); fi % lower serif
+%%%%%
+penlabels(1,2,3,4,5, 6,7,8,9,10,11,12,13,14); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgcmodu.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgcmodu.mf
new file mode 100644
index 00000000000..05cdccb4399
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgcmodu.mf
@@ -0,0 +1,167 @@
+%
+% lgcmodu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Cyrillic modified letters and variants
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% Modified
+%
+% VG_hcrs
+% LAT_I_dsc
+% VDZHE
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Uppercase Cyrillic letter VG_hcrs - Variant GHE hcrossed";
+cyrchar(VG_hcrs,if monospace: 9u# else: 11u# fi-width_adj#, %G_width
+ cap_height#,0);
+if is_small_cap: getcharcode(Vg_hcrs); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_g;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u ,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+%%%%%
+% hcross
+pickup fine.nib; numeric outer_jut;
+outer_jut=if serifs: max(limit_dist,1.1cap_jut) else: 1.8u fi;
+pos5(bar,90); pos6(bar,90);
+top y5r=top y6r=vround (.52h+.5bar)+eps;
+x6=min(x1r+2outer_jut,lft x4l-1); x5=x1;
+filldraw stroke z5e--z6e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter LAT_I_dsc - Ukrainian I descender";
+cyrchar(LAT_I_dsc,max(6u#,4u#+cap_stem#),cap_height#,cap_sbeak#);
+if is_small_cap: getcharcode(lat_i_dsc); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,
+ if serifs: cap_serif_fit# else:0 fi); %ur_serif_adj
+% upper_ukri; - borrowed from ec
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); %arm(4,8,d,darkness,jut); %!!! % bottom left and right
+fi
+%%%%%
+% uppercase descender/ogonek
+if is_ogonek:
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ % |stem| is drawn |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(if slitex: x8 else: x2
+ if not serifs: l if is_bold: +.75tiny fi\\fi\\fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ easy_ogonek(the_pen,7,8,9); % ogonek
+else:
+ numeric right_jut;
+ right_jut=if serifs: 1.414cap_jut
+ else: hround if slitex: max(r-rt x2r-.65u,rt x6r-x1)
+ else: (r-rt x2r-.65u)
+ fi fi;
+ if not serifs:
+ numeric arm_thickness; arm_thickness=vround(slab-vair_corr);
+ save slab; slab:=arm_thickness; fi % bottom.desc.slab
+ r_serif(2,1,x,1/3,cap_jut,y,1/3,beak_darkness,right_jut,beak_jut); % lower right descender
+fi
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter VDZHE - T with tail";
+cyrchar(VDZHE,13u#-width_adj#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(Vdzhe); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,2.5u#); if odd(cap_stem-w): change_width; fi % symmetric
+% upper_t;
+if odd(cap_stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+%%%
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,cap_jut); %!!!% lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+%%%%%
+w:=w+2.5u;
+% Tail_part(2);
+_zero:=2;
+_one:=6; _two:=7; _three:=8;
+_four:=9; _five:=10; _six:=11; _seven:=12; _eight:=13;
+%
+pickup tiny.nib;
+numeric bulb_diam;
+bulb_diam=max(currentbreadth+eps,min(.82d-1-eps,flare+(cap_stem-stem)));
+penpos[_one](vair,90); penpos[_two](vair,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+y[_three]=.5[y[_one],-d]; x[_two]=max(.5w-.25u,w-7u);
+x[_one]=x[_zero]; x[_three]r=hround(w-u);
+x[_two]l:=x[_two]-.25cap_curve; y[_one]=y[_two]=.52h;
+{{interim superness:=more_super;
+ fill stroke super_arc.e([_three],[_two])..z[_one]e}}; % lobe
+if serifs: z[_four]=z[_three];
+ pos[_four](cap_curve if hefty:-3stem_corr fi,0);
+ pos[_five](vair',-90); bot y[_five]r=-d-oo; y[_six]-.5flare=-.85d;
+ pos[_six](cap_hair,-180); pos[_seven](bulb_diam,-180);
+ rt x[_seven]l=max(lft x[_zero]l-jut+bulb_diam,
+ floor x[_three]-3.5u if monospace: / expansion_factor fi);
+ z[_six]r=z[_seven]r;
+ x[_five]=max(rt x[_seven]l,.6[x[_four],x[_seven]r]);
+ (x,y[_five]r)=whatever[z[_five]l,z[_four]l];
+ x[_five]r:=max(x,.5[x[_six]r,x[_five]]);
+ filldraw stroke super_arc.e([_four],[_five]);
+ bulb([_five],[_six],[_seven]); % bulb
+else:
+ pickup fine.nib; z[_four]=z[_three];
+ pos[_four](max(fine.breadth,cap_curve if hefty:-3stem_corr fi),0);
+ pos[_eight](vair,-90); pos[_five](flare,-105);
+ rt x[_five]r=x[_three]-6u; bot y[_five]r=-d;
+ y[_five]l:=good.y y[_five]l; x[_five]l:=good.y x[_five]l;
+ bot y[_eight]r=-d-o; x[_eight]=.35[lft x[_five]r,x[_three]r];
+ filldraw stroke super_arc.e([_four],[_eight])
+ & term.e([_eight],[_five],left,.75,4); fi
+%%%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgcvaci.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgcvaci.mf
new file mode 100644
index 00000000000..7d24b549cae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgcvaci.mf
@@ -0,0 +1,861 @@
+%
+% lgcvaci.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic Cyrillic acuted vowels
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% a_ac
+% e_ac
+% yo_ac
+% ukr_e_ac
+% i_ac
+% lat_i_ac
+% ukr_i_ac
+% o_ac
+% ery_ac
+% hrdsn_ac
+% erev_ac
+% yu_ac
+% ya_ac
+% yat_ac
+% izh_ac
+% b_yus_ac
+% l_yus_ac
+% il_yus_ac
+% ib_yus_ac
+% i_e_ac
+% uk_ac
+% y_ac
+% ae_ac
+% schwa_ac
+% otld_ac
+% dje_ac
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Cyrillic letter a_ac - a acute";
+cyrchar_twice(a_ac,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:0 else:-.35u#fi,0); %cyradj
+% ital_a;
+pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Cyrillic letter e_ac - e acute";
+cyrchar_twice(e_ac,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); %e
+adjust_fit(if monospace:0 else:-.35u#fi,0);
+% ital_e;
+pickup fine.nib; %numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Italic Cyrillic letter yo_ac - yo acute";
+cyrchar_twice(yo_ac,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:0 else:-.35u# fi,0);
+% ital_e;
+pickup fine.nib; %numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+% the accents
+lowercase_umlaut(0,0, 7,8,9,10);
+hpos_corr=-u; put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Italic Cyrillic letter ukr_e_ac - Ukrainian e acute";
+cyrchar_twice(ukr_e_ac,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-.5u# fi; %c+.5u
+adjust_fit(if monospace:0 else:-.35u# fi,0); %c
+% ital_ukre;
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-.5u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+pos7(vair,90); pos8(vair,90);
+y7=bar_height; rt x7=hround max(rt x2+1+eps,lft x0l-eps); x8=x3; y7=y8;
+filldraw stroke z7e--z8e; % bar
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Italic Cyrillic letter i_ac - i acute";
+cyrchar_twice(i_ac,10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0);
+% ital_i;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left skewstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter lat_i_ac - Ukrainian i acute";
+cyrchar_twice(lat_i_ac,5u#,x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi);
+pickup fine.nib; x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); %hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90); x8=.5w if not
+monospace:-.4(h-x_height)*slant fi; top y9r=h+1; if
+bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab);
+fi x8=x9; y8=.5[y9l,y9r]; %dot(8,9); % dot
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter ukr_i_ac - yi acute";
+cyrchar_twice(ukr_i_ac,5u#,x_height#,0);%
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi);
+pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+% the accents
+lowercase_umlaut(0,0, 6,7,8,9); %old_u:=u; u:=0.5u;
+hpos_corr=-u; put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5, 6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter o_ac - o acute";
+cyrchar_twice(o_ac,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4); endchar;
+
+lhchar "Italic Cyrillic letter u_ac - u acute";
+cyrchar_twice(u_ac,if monospace:8.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0);
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter ery_ac - ery acute";
+cyrchar_twice(ery_ac,8u#,x_height#,0);
+adjust_fit(if monospace:-2u# else:0 fi,if monospace:2.5u# else:4u# fi);
+% ital_ery;
+pickup tiny.nib; pos2(stem,0); y2=.6bar_height;
+if monospace: x1=x2; pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x1=x2+.25u; x0'=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0',a,1)(skewed); fi % opening hook
+pickup fine.nib; pos1'(stem,-180); pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z1'=z1; z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke z1'e{-u,-x_height}...pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+% I
+w:=w+4u;
+pos6(stem,0); y6+.5stem=h; rt x6r=hround(w-2.5u+.5stem); x7=x6;
+if monospace: pos9(vair,90); x9=good.x .5[x6,w]; bot y9l=0; y7=1/3h;
+ pos7(stem,0); filldraw stroke z7e{down}...{right}z9e; % terminal
+else: x9=w; hook_out(7,8,9); fi % opening hook
+filldraw circ_stroke z6e--z7e; % stem
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter hrdsn_ac - hard sign acute";
+cyrchar_twice(hrdsn_ac,if monospace: 6u# else:7.5u#fi,
+ x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(u#,0);
+% ital_hrdsn;
+pickup tiny.nib;
+pos1(hair,0); pos1'(hair,-45); pos2(hair,0);
+rt x1r=hround(w-2u-eps); top y1=h;
+lft x2l=hround(u-.5stem); y2=.6bar_height;
+z1'=(.35[x1,x2],.65[y1,1.2bar_height+oo]);
+filldraw stroke z2e{up}....{2(x1-x2),(y1-1.2bar_height)}z1'e..{up}z1e; % stem
+% italic_beak(1,x);
+pos6(hair,180); pos7(.6[hair,curve],60); pos8(hair,90);
+z8r=z1r; x6=-u; y6=3/4x_height; x7=.5[x6,x8];
+top y7r=top y8r;
+filldraw stroke z6e{up}...{5,-1}z7e...{1,1}z8e; % fillip
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90);
+lft x2'r=tiny.lft x2l;
+y2'=y2; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & pulled_arc.e(5,2'); % bowl
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,2',3,4,5,6,7,8); endchar;
+
+lhchar "Italic Cyrillic letter erev_ac - reverse e acute";
+cyrchar_twice(erev_ac,8u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %o
+adjust_fit(0,if monospace:0 else:-.35u# fi); %o
+% ital_erev;
+pickup fine.nib;
+pos0(flare,180); pos1(hair,-180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x2+.5u=x4=.5(w-u); lft x1r=min(lft x2,hround(.25u))-eps;
+rt x3r=w-hround(1.5u-.5curve); lft x5r=good.x (lft x1r-eps); x6=x5;
+y1-.5flare=.1h; bot y2r=-oo; bulb(2,1,0); % bulb
+top y4r=h+oo; y3=.5[y2,y4]; top y5r=vround .5[bar_height,h];
+y6=bar_height; path p; p=z4{left}....z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x7=x3; y7=bar_height; y8=y7; lft x8=hround min(lft x2-1-eps,rt x0l+eps);
+pos7(vair,90); pos8(vair,90);
+filldraw stroke z7e--z8e;
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Italic Cyrillic letter yu_ac - yu acute";
+cyrchar_twice(yu_ac,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(if monospace:3u# else:4.5u# fi,
+ if monospace:-.75u# else:-.35u# fi);
+% ital_yu;
+pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+% i half
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9; _six:=10;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x2; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+% the accent
+hpos_corr=u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter ya_ac - ya acute";
+cyrchar_twice(ya_ac,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(.5u#,0);
+% ital_ya;
+pickup fine.nib;
+rt x1r=rt x2r=hround(w-2.5u+.5stem); top y1=h; x4=w;
+hook_out(2,3,4); % closing hook
+pos1(stem,0); filldraw stroke z1e--z2e; % stem
+pos5(vair,90); pos6(vair,90); pos7(curve,180); pos8(vair,270); pos9(vair,270);
+x5=x9=x1; top y5r=top y6r=h; x6=x8=.5[x5,x7];
+lft x7l=hround(1.5u if not monospace:+.5curve fi);
+y7=.5[y5,y9]; y8=y9=bar_height;
+filldraw stroke z5e...pulled_arc.e(6,7) & pulled_arc.e(7,8)...z9e; % bowl
+pos10(stem,0); pos11(vair,-90);
+x10=.3[x11,x9]; y10=1/2y9; x11-flare=-.25u; bot y11r=-oo;
+filldraw stroke z11e{right}...z10e{up}...{right}z9e; % lower diagonal
+pos12(hair,180); pos13(flare,180);
+lft x13r=-.25u; y13-.5flare=.1h; bulb(11,12,13); % bulb
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,8',9,10,11,12,13,14,15,16,17,18); endchar;
+
+lhchar "Italic Cyrillic letter yat_ac - yat acute";
+cyrchar_twice(yat_ac,13u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi; %"Weierstrass p"
+adjust_fit(if monospace:-1.5u#,-.35u# else:0,0 fi); full_w:=w; w:=10u;
+% ital_yat;
+pickup fine.nib; x1=x2; pos2(stem,0);
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4; ital_arch(2,3,4); % arch
+y5=.5bar_height; pos5(stem,0);
+filldraw stroke z4e{down}..z5e; % right stem
+w:=full_w;
+pos6(stem,-180); pos10(hair,180); z6=z5; z10=z5;
+pos7(vair,-90); pos8(curve,0); pos9(vair,90);
+x7=x9=.5[x5,x8]; rt x8r=hround(w-u+.5curve);
+bot y7r=-oo; top y9r=1.2bar_height+oo; y8=y5;
+filldraw stroke pulled_arc.e(6,7) & pulled_arc.e(7,8)
+ & pulled_arc.e(8,9) & super_arc.e(9,10); % bowl
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter izh_ac - izhitsa acute";
+cyrchar_twice(izh_ac,9.5u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(.25u#,max(u#,.5u#+.5flare#)); %izhy_adj
+% ital_izh;
+numeric left_stem,right_stem,outer_jut,alpha,bulb_diam;
+left_stem=stem-stem_corr; bulb_diam=7/8[hair,flare];
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos4''(alpha*right_stem,0);
+penpos5(vair,90); penpos6(hair,0); penpos7(flare,0);
+x5=if serifs:.5[x4'',rt x6r] else: rt x6r fi; top y5r=h+oo;
+y4''=min(.9x_height,y5l-vair); z4''=whatever[z3,z4];
+rt x6r=hround(r-.5u-.5);
+y6=max(vround(top y5r-.5hair)-1-.5flare,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+cyrbulb(5,6,7); % bulb
+penpos1'(alpha*left_stem,0); y1'=3/4x_height; z1'=whatever[z1,z2];
+x10=l+letter_fit; x10:=hround(x10-.5hair)+.5hair; y10=2/3x_height;
+penpos9(vair,90); y9r=x_height+oo; x9=min(x1l-.5,x10+u);
+if y0>cap_notch_cut:
+ y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4''l...{right}z5r--z5l{left}
+ ...z4''r{z3-z4}--diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ pickup pencircle scaled1;
+ fill z0--z4''l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4''r
+ --diag_end(4r,3r,1,1,2l,1l)--
+ z1'l{z1-z2}...{left}z9l--z9r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ --cycle; fi % left and right diagonals
+pickup fine.nib;
+pos9'(vair,90); z9'=z9; pos10(hair,180);
+filldraw stroke z10e{up}...z9'e{right};
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter b_yus_ac - big yus acute";
+cyrchar_twice(b_yus_ac,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %h
+adjust_fit(w# -5u# if monospace:-1.5u# fi,if monospace:-1.5u# else:0 fi);
+% ital_yus;
+% itop_yus;
+pickup fine.nib;
+penpos1(fudged.stem,0); penpos2(fudged.hair,0);
+penpos3(fudged.stem,0); penpos4(fudged.hair,0);
+w-x2r=.24w; x2-x3=x3-x1; y1=h; y2=y1; y3=y4=bar_height;
+x3l=hround(2.5u-.5stem); x3r=x4r;
+z0=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty:
+ y0:=bar_height+.5fine;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ ...{down}(x0-.5,y0)..(x0+.5,y0){up}...
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; % diagonals
+else:
+ fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi % diagonals
+penpos5(fudged.stem,0); x5=x3; y5-.5stem=-oo;
+fill circ_stroke z5e--z3e; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-vair);
+fill z1--z7--z6--z2--cycle; % upper bar
+% bowls
+pos8(vair,90); pos9(stem,0); pos10(vair,90); pos11(hair,180);
+pos12(stem,180); pos13(vair,90); pos14(hair,0); z8=z3;
+x11=hround(w+.5hair-eps)-.5hair; x11-x3=x3-x14; y11=y14=1/3x_height;
+lft x9l=hround(w-2.75u-.5stem); x9-x3=x3-x12; y9=y12=1/2y8;
+x10=hround(w-1.2u); x10-x3=x3-x13; bot y10l=bot y13l=-oo;
+filldraw stroke if not monospace:z14e{down}... fi
+ z13e{right}...z12e{up}...z8e{right}...z9e{down}...z10e{right}
+ if not monospace:...{up}z11e fi; % left lower diagonal
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+let k_bowl = undefined;
+
+lhchar "Italic Cyrillic letter l_yus_ac - little yus acute";
+cyrchar_twice(l_yus_ac,11u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-.5u# else:.5u# fi, %wbulb_adj
+ 0);
+% ital_amod;
+pickup fine.nib; pos1(vair,-90); pos2(hair,0); pos3(hair,0); pos4(vair,-90);
+pos5(hair,-180); pos6(flare,-180);
+pos1'(stem,180); pos10(stem,0);
+top y1l=h+oo; x1=.5[x3,x1']; x2=x3=3u; y3=.35h; y2=.75h;
+bot y4r=-oo; x4=lft x6r+flare; y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r;
+y1'=.8h; x1'=x7; z10=z1';
+rt x7r=hround(w-2.5u+.5stem);
+bulb(4,5,6); % bulb
+x9=w; hook_out(7,8,9); % closing hook
+filldraw stroke z10e--z7e; % tie
+filldraw stroke pulled_arc.e(4,3) & super_arc.e(3,1)
+ & super_arc.e(1,1'); % right stem
+% stem&bar
+y11=y12=bar_height; pos11(vair,90); pos12(vair,90);
+ z11=((l,y11)..(w,y11)) intersectionpoint
+ (pulled_arc.r(4,3) & super_arc.r(3,1));
+ z12=((0,y12)..(w-u,y12)) intersectionpoint (z10l..z7l);
+filldraw stroke z11e--z12e; % bar
+numeric stem[]; stem1=max(fine.breadth+eps,.7[thin_join,stem]);
+pos13(stem1,0); pos14(stem1,0);
+x13=x14=.5[x11,x12]; y13=y12; y14-.5stem1=0;
+filldraw circ_stroke z14e--z13e; % stem
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,1',2,3,4,5,6,7,8,9,11,12,13,14); endchar;
+
+lhchar "Italic Cyrillic letter il_yus_ac - iot little yus acute";
+cyrchar_twice(il_yus_ac,11u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace: 3.5u#+else: 4.5u#+fi.5u#,
+ if monospace:-1.5u# else:0 fi); %rstem_adj
+% ital_amod;iot
+pickup fine.nib; pos1(vair,-90); pos2(hair,0); pos3(hair,0); pos4(vair,-90);
+pos5(hair,-180); pos6(flare,-180);
+pos1'(stem,180); pos10(stem,0);
+top y1l=h+oo; x1=.5[x3,x1']; x2=x3=3u; y3=.35h; y2=.75h;
+bot y4r=-oo; x4=lft x6r+flare; y6-.5flare=.1h; lft x6r=-.25u; z5r=z6r;
+y1'=.8h; x1'=x7; z10=z1';
+rt x7r=hround(w-2.5u+.5stem);
+bulb(4,5,6); % bulb
+% right_stem;
+_one:=7; _two:=8; _three:=9;
+if monospace: pos[_three](vair,90); pos[_one](stem,0);
+ x[_three]=good.x .5[x[_one],w]; bot y[_three]l=0; y[_one]=1/3h;
+ filldraw stroke z[_one]e{down}...{right}z[_three]e; % terminal
+else: x[_three]=w; hook_out([_one],[_two],[_three]); fi % opening hook
+filldraw stroke z10e--z7e; % tie
+filldraw stroke pulled_arc.e(4,3) & super_arc.e(3,1)
+ & super_arc.e(1,1'); % right stem
+% stem&bar
+y11=y12=bar_height; pos11(vair,90); pos12(vair,90);
+ z11=((l,y11)..(w,y11)) intersectionpoint
+ (pulled_arc.r(4,3) & super_arc.r(3,1));
+ z12=((0,y12)..(w-u,y12)) intersectionpoint (z10l..z7l);
+filldraw stroke z11e--z12e; % bar
+numeric stem[]; stem1=max(fine.breadth+eps,.7[thin_join,stem]);
+pos13(stem1,0); pos14(stem1,0);
+x13=x14=.5[x11,x12]; y13=y12; y14-.5stem1=0;
+filldraw circ_stroke z14e--z13e; % stem
+%%%
+% i half
+_one:=15; _two:=16; _three:=17; _four:=18; _five:=19; _six:=20;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x11; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,1',2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20); endchar;
+
+lhchar "Italic Cyrillic letter ib_yus_ac - iot big yus acute";
+cyrchar_twice(ib_yus_ac,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#; %h
+adjust_fit(if monospace: 4u#+else: 5u#+fi w#-5u#,
+ if monospace:-1.5u# else:0 fi); %rstem_adj
+% ital_yus;iot
+% itop_yus;
+pickup fine.nib;
+penpos1(fudged.stem,0); penpos2(fudged.hair,0);
+penpos3(fudged.stem,0); penpos4(fudged.hair,0);
+w-x2r=.24w; x2-x3=x3-x1; y1=h; y2=y1; y3=y4=bar_height;
+x3l=hround(2.5u-.5stem); x3r=x4r;
+z0=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty:
+ y0:=bar_height+.5fine;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ ...{down}(x0-.5,y0)..(x0+.5,y0){up}...
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; % diagonals
+else:
+ fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi % diagonals
+penpos5(fudged.stem,0); x5=x3; y5-.5stem=-oo;
+fill circ_stroke z5e--z3e; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-vair);
+fill z1--z7--z6--z2--cycle; % upper bar
+% bowls
+pos8(vair,90); pos9(stem,0); pos10(vair,90); pos11(hair,180);
+pos12(stem,180); pos13(vair,90); pos14(hair,0); z8=z3;
+x11=hround(w+.5hair-eps)-.5hair; x11-x3=x3-x14; y11=y14=1/3x_height;
+lft x9l=hround(w-2.75u-.5stem); x9-x3=x3-x12; y9=y12=1/2y8;
+x10=hround(w-1.2u); x10-x3=x3-x13;
+bot y10l=bot y13l=if monospace: 0 else:-oo fi;
+filldraw stroke if not monospace:z14e{down}... fi
+ z13e{right}...z12e{up}...z8e{right}...z9e{down}...z10e{right}
+ if not monospace:...{up}z11e fi; % left lower diagonal
+%%%
+% i half
+_one:=15; _two:=16; _three:=17; _four:=18; _five:=19; _six:=20;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x8; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20); endchar;
+
+lhchar "Italic Cyrillic letter i_e_ac - iot e acute";
+cyrchar_twice(i_e_ac,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-.5u# fi; %c+.5u
+adjust_fit(if monospace: 3u# else: 4.5u# fi +0.2u#, %ipadj
+ 0); pickup fine.nib;
+% ital_ukre;iot
+pickup fine.nib; pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-.5u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+pos7(vair,90);
+y7=bar_height; rt x7=hround max(rt x2+1+eps,lft x0l-eps);
+% i half
+_one:=8; _two:=9; _three:=10; _four:=11; _five:=12; _six:=13;
+%
+pos[_four](stem,0);
+lft x[_four]l=l+letter_fit if not monospace: +hround(2.5u-.5stem) fi;
+y[_four]-.5stem=-oo; x[_three]=x[_four];
+if monospace:
+ pos[_three](stem,0); top y[_three]=h;
+else:
+ x[_one]=l+letter_fit; hook_in([_one],[_two],[_three]); fi % opening hook
+filldraw circ_stroke z[_four]e--z[_three]e; % stem
+pos[_five](vair,90); pos[_six](vair,90); %!!!
+x[_five]=x[_four]; x[_six]=x7; y[_five]=y[_six]=bar_height; %!!!
+filldraw stroke z[_five]e--z[_six]e; % bar %!!!
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,1',2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter uk_ac - uk acute";
+cyrchar_twice(uk_ac,9.75u#,asc_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(if hefty:0,0 else:-.6u#,-.6u#fi);
+% ital_uk;
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=if monospace:bar_height else:.7x_height fi; %h;%%%%%%%%%%%%%%
+pickup fine.nib; theta=90-angle(20u,h); slope:=-h/20u;
+upper_side=max(fine.breadth+eps,hround(.5[hair,stem]-stem_corr));
+lower_side=hround(.5[hair,stem]+stem_corr);
+if lower_side>1.2upper_side: upper_side:=lower_side; fi
+pos1(top_thickness,-90); pos6(bot_thickness,-90);
+x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround 1.75u;
+ x2r-x2l=fudged.stem-fine; x5r-x5l=lower_side-fine;%%%%%%%%%%%
+ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+numeric tau; tau=max(.8,.20710678/(superness-.5));
+y2r:=y2l+serif_drop;
+filldraw stroke z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+pos7(lower_side,180); pos8(upper_side,180);
+y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+filldraw stroke z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e;% lower left stroke
+% italic bulb
+z8'=z8; pos8'(upper_side,0);
+y1'+.5curve=h+oo; x1'=x8-max(u,.5u+.5curve); %+.5curve%y8+(x_height-bar_height); %%%%%%%%%%%
+numeric theta; theta=angle(4(x8'-x1'),y8'-y1'); pos1'(curve,theta+90);
+filldraw z1'l{dir theta}..tension atleast 1 and 1..{down}z8'l
+ --z8'r{up}...{-dir theta}z1'r..cycle; % bulb
+% from sloped serif
+pos12(slab,90); lft x12=x2l-.5jut; y12r=y2r-serif_drop; z14=z2l;
+filldraw z2r--z12r--z12l{right}
+ ...1/3[(x14,y12l),.5[z12l,z14] ]{z14-z12l}
+ ...{down}z14--(x2r,y14)--cycle; % sloped serif
+%%%%%
+% the accent
+hpos_corr=-u; put_accent(cyrcaph); repeat_once;
+penlabels(0,1,1',2,3,3',4,4',5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter y_ac - straight u acute";
+cyrchar_twice(y_ac,9.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(.25u#,max(u#,.5u#+.5flare#)); %izhy_adj
+% ital_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha; left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem); outer_jut=.75jut;
+x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=0; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0);
+penpos4(alpha*right_stem,0); penpos4'(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0);
+x5=x6; y6=-d; z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos7(vair,90); penpos8(hair,0); penpos9(flare,0);
+x7=.5[x4',rt x8r]; y7r=h+oo;
+y4'=min(.9x_height,y7l-vair); z4'=whatever[z3,z4];
+rt x8r=hround(r-.5u-.5);
+y8=max(vround(y7r-.5hair)-.5flare-1,
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare));
+cyrbulb(7,8,9); % bulb
+y1'=3/4x_height; z1'=whatever[z1,z2]; penpos1'(alpha*left_stem,0);
+x10=l+letter_fit; x10:=hround(x10-.5hair)+.5hair; y10=2/3x_height;
+penpos11(vair,90); top y11r=x_height+oo; x11=min(x1l-.5,x10+u);
+if y0>y2+notch_cut:
+ y0:=y2+notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4'l...{right}z7r--z7l{left}
+ ...{z5r-z4'r}z4'r--z5r--z6r--z6l--z5l--
+ z1'l{z1-z2}...{left}z11l--z11r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--z4'l...{right}z7r--z7l{left}
+ ...z4'r--z5r--z6r--z6l--z5l--
+ z1'l{z1-z2}...{left}z11l--z11r{right}
+ ..tension atleast .75 and 1..{z2-z1}z1'r
+ --cycle; fi % diagonals and stem
+pickup fine.nib;
+pos10(hair,180); pos11'(vair,90); z11'=z11;
+filldraw stroke z10e{up}...z11'e{right}; % hook
+pickup tiny.nib; prime_points_inside(6,5);
+dish_serif(6',5,e,1/3,jut,f,1/3,jut); % lower serif
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff knuthian_ae:%
+lhchar "Italic Cyrillic letter ae - ligature ae_ac";
+cyrchar_twice(ae_ac,13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+begingroup
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+%numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos7(light_stem,0); pos8(light_stem,0);
+x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
+pos7'(vair,-225); pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x12=.5[x11,x3];
+y11=.3[y12,y7]; bot y12r=-oo;
+filldraw stroke z7'e{3(x11-x7),y11-y7}...pulled_arc.e(11,12)
+ & pulled_arc.e(12,3'); % bowl of a
+filldraw z7l---z8l..z8r---z7r..cycle; % stem
+endgroup;
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
+
+iff not knuthian_ae: % borrowed from ec
+lhchar "Italic Cyrillic letter ae - ligature ae_ac";
+cyrchar_twice(ae_ac,13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+begingroup
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos7(light_stem,0);
+x7=x3; y7+.5light_stem=h+oo;
+pos7'(vair,-225); pos10(vair,-270);
+pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x10=x12=.5[x11,x3];
+top y10r=h+oo; y11=.52h; bot y12r=-oo;
+filldraw stroke pulled_arc.e(3',10) & pulled_arc.e(10,11)
+ & pulled_arc.e(11,12) & pulled_arc.e(12,3'); % bowl of a
+filldraw z7l---z3r..z3l---z7r..cycle; % stem
+endgroup;
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,10,11,12); endchar;
+
+lhchar "Italic Cyrillic letter schwa_ac - schwa acute";
+cyrchar_twice(schwa_ac,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,if monospace:0 else:-.35u#fi);
+% ital_schwa;
+pickup fine.nib; %numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,90); pos1(heavy_hair,180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x0=lft x3l; lft x1r=hround(1u-.5heavy_hair); x2+.5u=x4=.5(w-u);
+rt x3r=hround(w-1.5u+.5curve);
+lft x5r=good.x (lft x1r+eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; bot y2r=-oo; top y4r=h+oo;
+top y5r=vround .5[bar_height,x_height]; path p; p=z4{left}..z5..z6;
+filldraw stroke z0e{left}...z1e{down}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Italic Cyrillic letter otld_ac - o tilded acute";
+cyrchar_twice(otld_ac,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+% ital_o;tld
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+%%%
+% oltilde;
+if (serifs=true) and (bar#<=.5curve#):
+ numeric bar[];
+ set_bar_axis;
+ x5r=x2l; x6r=x4l;
+ y5r=y6r=y2.bh; y5l=y6l=y1.bh; x5r=x5l; x6l=x6r;
+ bar2=2/3[bar,fudged.stem];
+ penpos7(bar2,45); z7=.5[z5l,z6l];
+ fill stroke z6e{-2,-1}..{-2,1}z7e..{-2,-1}z5e;
+else:
+ bar_stroke(x2l,x4l);
+fi
+%%%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Italic Cyrillic letter dje_ac - soft dj acute";
+cyrchar_twice(dje_ac,8u#,asc_height#,desc_depth#);
+italcorr .7x_height#*slant; %o
+adjust_fit(1.5u#,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-.75u+.5stem);
+x5=x4; ital_arch(2,3,4); % arch
+x7=.45[x2,x4]; bot y7r=-d; pos7(hair,-90);
+filldraw stroke pulled_arc.e(4,7);
+x8=-u; x9=x4; y8=y9=.5x_height+.5h; pos8(bar,90); pos9(bar,90);
+filldraw stroke z8e--z9e;
+hpos_corr=-u; put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgcvacl.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgcvacl.mf
new file mode 100644
index 00000000000..6b769826afb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgcvacl.mf
@@ -0,0 +1,1318 @@
+%
+% lgcvacl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Cyrillic acuted vowels
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% a_ac
+% e_ac
+% yo_ac
+% ukr_e_ac
+% i_ac
+% lat_i_ac
+% ukr_i_ac
+% o_ac
+% ery_ac
+% hrdsn_ac
+% erev_ac
+% yu_ac
+% ya_ac
+% yat_ac
+% izh_ac
+% b_yus_ac
+% l_yus_ac
+% il_yus_ac
+% ib_yus_ac
+% i_e_ac
+% uk_ac
+% y_ac
+% ae_ac
+% schwa_ac
+% otld_ac
+% dje_ac
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Cyrillic letter a_ac - a acute";
+cyrchar_twice(a_ac,9u#,x_height#,0); % eng
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+% lower_a;
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l; (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+%%%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter e_ac - e acute";
+cyrchar_twice(e_ac,7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+% lower_e;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs:
+ pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else:
+ pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5); endchar;
+
+lhchar "Lowercase Cyrillic letter yo_ac - yo acute";
+cyrchar_twice(yo_ac,7.25u#+max(.75u#,.5curve#),
+ x_height#,0); % eng
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+% lower_e;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs:
+ pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else:
+ pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+% the accents
+lowercase_umlaut(0,0, 6,7,8,9);
+hpos_corr=-u; put_accent(cyrcaph); repeat_once; % cyrcaph for umlaut
+penlabels(0,1,2,3,4,5, 6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter ukr_e_ac - Ukrainian e acute";
+cyrchar_twice(ukr_e_ac,8u#,x_height#,0); % eng
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace:.5u#,.5u# else:-.1u#,0 fi); full_h:=h; h:=x_height;
+% lower_ukre;
+set_bar_axis;
+pickup fine.nib; pos2(vair',90); pos3(curve,180); pos4(vair',270);
+x2=x4=(.5(w+u)); top y2r=vround(h+1.5oo); bot y4r=-oo;
+lft x3r=(hround max(.6u,1.35u-.5curve)); y3=.5h;
+if serifs:
+ pos1(hair,0); pos5(hair,360);
+ y1=min(y2.bh+.75flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ rt x1r=rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],0); x6r=x1r; top y6=h+oo;
+ x1r-x1'=1.5curve; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,5(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos1(4/7[vair',flare],80); pos5(.6[vair',flare],275);
+ rt x1r=hround(w-.6u);
+ top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%
+% lukre_bar;
+if (serifs=true) and (bar#<=.5curve#):
+ x7r=x3l; x8r=min(lft x1l-.5hair,0.85[x3l,x1l]);
+ y7l=y8l=y1.bh; y7r=y8r=y2.bh; x7l=x7r; x8l=x8r;
+ numeric bar[];
+ bar2=7/8[bar,fudged.stem-2stem_corr];
+ penpos9(bar2,45); z9=.575[z7l,z8l];
+ fill circ_stroke z8e{-2,-1}..{-2,1}z9e..{-2,-1}z7e; % curve /\/
+else:
+ bar_stroke(x3l,min(lft x1l-.5hair,0.85[x3l,x1l])); % bar --
+fi
+%%%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,1',2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter i_ac - i acute";
+cyrchar_twice(i_ac,10u# if not serifs:+.5width_adj# fi, % n_width
+ x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#);
+begingroup
+% lower_i;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-2stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(vair'+eps); y6=vround(h-vair-eps);
+ alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l);
+ penpos5(min(2fudged.stem,alpha1*stem1),0);
+ penpos6(min(2fudged.stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else:
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ y5l=vround(y2+bracket+eps); y6r=vround(y3-bracket-eps);
+ stem1=max(tiny.breadth,fudged.hair-2stem_corr);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter lat_i_ac - Ukrainian i acute";
+%numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+cyrchar_twice(lat_i_ac,5u#,x_height#,0);
+%define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+begingroup
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(idot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; % dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter ukr_i_ac - yi acute";
+cyrchar_twice(ukr_i_ac,5u#,x_height#,0);
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;%!!!from ec
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+begingroup
+if odd(w-stem'): change_width; fi
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+endgroup;
+% the accents
+lowercase_umlaut(0,0, 3,4,5,6);
+hpos_corr=-u; put_accent(cyrcaph); repeat_once; % cyrcaph for umlaut
+penlabels(0,1,2, 3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter o_ac - o acute";
+cyrchar_twice(o_ac,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_o;
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%%%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter u_ac - u acute";
+cyrchar_twice(u_ac,if serifs:9.5u# else:9u# fi,x_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+begingroup
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+lhchar "Lowercase Cyrillic letter ery_ac - ery acute";
+cyrchar_twice(ery_ac,9u#,x_height#,0); % v_witdh
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(if monospace: 0,0 else: serif_fit#,serif_fit# fi %wlett_adj
+ +4u#);
+begingroup
+% lower_ery;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% I
+w:=w+4u; rt x8r=rt x9r=w-lft x1l; top y8=h; bot y9=0;
+pos8(fudged.stem,0); pos9(fudged.stem,0);
+filldraw stroke z8e--z9e; % stem
+if serifs: save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(8,9,e,1/3,jut,f,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(9,8,g,1/3,jut,h,1/3,jut); fi % lower serif
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter hrdsn_ac - hard sign acute";
+cyrchar_twice(hrdsn_ac,9u#,x_height#,0); % v_witdh
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(2u#-.5width_adj#,if monospace:.5u# else:0 fi);
+begingroup
+% lower_hrdsn;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% lower left beak
+pickup crisp.nib; top y3r=h; x3=x1; pos3(vair,90);
+pos4(hair,180); lft x4r=l+letter_fit+hround.45u; y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,q,beak_darkness,-.4beak_jut);
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter erev_ac - reverse e acute";
+cyrchar_twice(erev_ac,8u#,x_height#,0); % eng
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_erev;
+set_bar_axis;
+pickup fine.nib; pos2(vair',90); pos3(curve,0); pos4(vair',-90);
+x2=x4=w-.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+rt x3r=w-hround max(.6u,1.35u-.5curve); y3=.5h; % eng
+if serifs:
+ pos1(hair,180); pos5(hair,-180);
+ y1=min(y2.bh+.75flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ lft x1r=lft x5r=hround.5u;
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+oo;
+ x1'-x1r=1.5curve; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,5(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos1(4/7[vair',flare],100); pos5(.6[vair',flare],-95);
+ lft x1r=good.x .6u; top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ lft x5r=good.x .5u;
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e<105:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 105}z5e; fi
+ endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%
+% lerev_bar;
+if (serifs=true) and (bar#<=.5curve#):
+ x7r=max(rt x1l+.5hair,0.85[x3l,x1l]); x8r=x3l;
+ y7l=y8l=y1.bh; y7r=y8r=y2.bh; x7l=x7r; x8l=x8r;
+ numeric bar[];
+ bar2=7/8[bar,fudged.stem-2stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ bar_stroke(max(rt x1l+.5hair,0.85[x3l,x1l]),x3l); % bar --
+fi
+%%%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,1',2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter yu_ac - yu acute";
+cyrchar_twice(yu_ac,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: 4u# else: 4.5u# fi +serif_fit#, %li_part_adj
+ if monospace: -.45u# else: 0 fi);
+begingroup
+% lower_yu;
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+save slab; % lower.slab
+% barh_i_part(2);
+_zero:=2;
+_one:=5; _two:=6;
+%
+pickup tiny.nib;
+pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround (2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+bar_stroke(x[_one],x[_zero]); % bar
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); % lower serif
+fi
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter ya_ac - ya acute (`roman')";
+cyrchar_twice(ya_ac,if serifs: 9.75u# else: 10u# fi-.5width_adj#,x_height#,0); %ya (~n_width:10u)
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if serifs:serif_fit# else:0 fi,serif_fit#);
+begingroup
+% lowerr_ya;
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=rt x2r=hround(w-2.5u+.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos4(vair,90); penpos5(curve if hefty:-3stem_corr fi,180);
+y6r=y7r=hround (if serifs:.52h else:.5h fi-.6[thin_join,vair]/2);
+y6l=y7l=y6r+.6[thin_join,vair]; y6=y7=.5[y6l,y6r];%
+z3r=top z1; y4=y3; y5=.52[y6r,y4r]+eps;
+x7l=x7r=x2; x4+.25u=x6l=x6r; x4=.5w if serifs:+.25u else:-.25u fi;
+x5r=hround min(1.25u,2u-.5curve)+eps;
+x4l:=x4+.125curve; x6l:=x6l+.125curve;
+fill stroke
+{{interim superness:=more_super; z7e..pulled_arc.e(6,5) &
+ pulled_arc.e(5,4)..z3e}}; % lobe
+numeric stem[],alpha,right_jut;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+lft x9l=hround(l+letter_fit+.3u+right_jut)-eps; bot y9=0;
+alpha=diag_ratio(1,.5(stem1-tiny),y1-y9,x9l-x1);
+penpos9(alpha*(stem1-tiny),0);
+x8=x6l-if serifs:.75u else:.25u fi; y8=y6;
+forsuffixes $=l,r: y9'$=0; endfor
+z9'r=z9r+penoffset z1-z9 of currentpen+whatever*(z1-z9);
+z9'l=z9l+penoffset z9-z1 of currentpen+whatever*(z1-z9);
+z8=z9'+whatever*(z1-z9);
+penpos8(if serifs: x9'r-x9'l else: stem fi-2stem_corr,0);
+fill z8l--diag_end(8l,9'l,1,.5,9'r,8r)--z8r--cycle; % diagonal
+if serifs:
+ numeric inner_jut;
+ if lft x2l-jut-.5u+1>=rt x9r+jut: inner_jut=jut;
+ else: lft x2l-jut-.5u+1=rt x9r+inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower serif
+ dish_serif(9,8,g,1/2,right_jut,h,1/3,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter yat_ac - yat acute";
+cyrchar_twice(yat_ac,9u#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(if serifs: serif_fit# else: 0 fi,if monospace:.5u# else:0 fi);
+begingroup
+% lower_yat;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem);
+top y1=x_height+ if serifs: 1.5u else: 2u fi; bot y2=0;
+filldraw stroke z1e--z2e; % body of stem
+if serifs: save slab; slab:=vair; % lower.slab
+ nodish_serif(2,1,a,1/3,jut,b,1/3,.5jut) ; fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+y10=y1+2jut;
+if hefty: filldraw z1l--(x1l,y10)--(x1r,y10)--z1r--cycle; % stem
+else: x10=x1l-jut; x11=x1r+jut; y10=y11;
+ filldraw z1l--z10--z1r--cycle; filldraw z1l--z11--z1r--cycle; fi % swallow
+% hcross
+pickup crisp.nib; pos8(bar,90); pos9(bar,90);
+lft x8=hround1/3u if serifs:-serif_fit fi; x9=x1r+2.5u;
+top y8r=top y9r=vround x_height+eps;
+filldraw stroke z8e--z9e; % cross bar
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Lowercase Cyrillic letter izh_ac - izhitsa acute";
+cyrchar_twice(izh_ac,if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+.5u#fi,
+ if serifs: max(.75u#,.25u#+.5flare#) else:max(0,.5stem#-.5u#) fi); % lizh_adj
+begingroup
+full_h:=h; h:=x_height;
+% lower_izh;
+numeric left_stem,right_stem,outer_jut,alpha,bulb_diam;
+left_stem=stem-stem_corr; bulb_diam=7/8[hair,flare];
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=l+letter_fit+outer_jut+.25u; x4r=w-x1l; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+penpos4'(alpha*right_stem,0); penpos5(vair,90);
+x5=if serifs: .5[x4',x6r] else:x6r fi; y5r=h+oo;
+x6r=hround(r-.35u);
+y6=max(vround(y5r-.25tiny-.5flare),
+ min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare)); %zh bulb h
+z4'=whatever[z3,z4]; y4'=min(y6-.5hair,8/5bar_height)-eps;
+if serifs: penpos6(hair,0); penpos7(flare,0);
+ cyrbulb(5,6,7); fi % bulb
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4'l...{right}
+ if serifs: z5r--z5l
+ else:
+ (.5[x4,x4r],y5r)--(fine.lft x5r,y5r)..(x5r,fine.bot y5r)--
+ (x5l,fine.top y5l)..(fine.lft x5l,y5l) fi
+ {left}...z4'r{z3-z4}
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--z4'l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4'r
+ --diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2);
+ if rt x1'r+jut+.5u+1<=lft x4l-jut+.5tiny: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4l-inner_jut+.5tiny; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); fi % upper left serif
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter b_yus_ac - big yus acute (`roman')";
+cyrchar_twice(b_yus_ac,15u#,x_height#,0);
+adjust_fit(serif_fit#,serif_fit#);
+begingroup
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal
+% lowerr_yus;
+% ltop_yus;
+set_bar_axis; numeric stem[];
+stem1=fudged.stem-3stem_corr; stem2=min(stem1,fudged.hair);
+penpos1(stem1,0); penpos2(stem2,0); penpos3(stem1,0); penpos4(stem2,0);
+x1l=w-x2r=hround(.2w-.5tiny-.5)-eps; y1=y2=h; y3=y4=3/5[y1.bh,y2.bh];
+x3l=hround(.5w-.5stem1); x3r=x4r;
+z0=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty: y0:=y2.bh;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ ...{down}(x0-.5,y0)..(x0+.5,y0){up}...
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; % diagonals
+else: fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi % diagonals
+penpos5(stem1,0); x5=x3; y5=0;
+fill z3l--diag_end(3l,5l,1,1,5r,3r)--z3r--cycle; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-vair);
+fill z1--z7--z6--z2--cycle; % upper bar
+% lyus_rbowl;
+ numeric stem[],alpha[],right_jut;
+ right_jut=if serifs:.6jut else:.4tiny fi;
+ y10l=y1.bh; y10r=y2.bh; x10l=x10r=x3; y9=y12=min(bot y10l-.5,.85y10l);
+ rt x8r=w-lft x11l=hround(r-letter_fit-.3u-right_jut); bot y8=bot y11=y5;
+ stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+ alpha2=diag_ratio(1,.5(stem2-tiny),h-y8,x8r-x3);
+ penpos8(alpha2*(stem2-tiny),0); penpos11(alpha2*(stem2-tiny),0);
+ forsuffixes $=l,r: y8'$=0; y11'$=0; endfor
+ z8'r=z8r+penoffset (x3,h)-z8 of currentpen+whatever*((x3,h)-z8);
+ z8'l=z8l+penoffset z8-(x3,h) of currentpen+whatever*((x3,h)-z8);
+ z11'r=z11r+penoffset (x3,h)-z11 of currentpen+whatever*((x3,h)-z11);
+ z11'l=z11l+penoffset z11-(x3,h) of currentpen+whatever*((x3,h)-z11);
+ z8'=.5[z8'l,z8'r]; z11'=.5[z11'l,z11'r];
+ z9=z8'+whatever*((x3,h)-z8); z12=z11'+whatever*((x3,h)-z11);
+ penpos9(stem-2stem_corr,0); penpos12(stem-2stem_corr,0);
+ fill z10l{right}...{z8'l-z9l}z9l--diag_end(9l,8'l,.5,1,8'r,9r)
+ --z9r{z9r-z8'r}...{left}z10r--cycle; % right diagonal
+ fill z10r{left}...{z11'l-z12l}z12l--diag_end(12l,11'l,1,.5,11'r,12r)
+ --z12r{z12r-z11'r}...{right}z10l--cycle; % left diagonal
+%%
+if serifs: numeric inner_jut; prime_points_inside(5,3);
+ if rt x5r+jut+.5u+1<=lft x8l-jut: inner_jut=jut;
+ else: rt x5r+jut+.5u+1=lft x8l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(11,12,a,1/3,right_jut,b,1/2,inner_jut)(dark); % lower diagonal serif
+ dish_serif(8,9,e,1/2,inner_jut,f,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(5',3,c,1/3,.75jut,d,1/3,.75jut); fi % lower middle serif
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Lowercase Cyrillic letter l_yus_ac - little yus acute";
+cyrchar_twice(l_yus_ac,10u#+2stem#,x_height#,0);
+adjust_fit(serif_fit#,serif_fit#);
+begingroup
+% lower_amod;
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=fudged.stem-stem_corr;
+left_stem=min(fudged.hair if hefty:-2stem_corr fi,right_stem);
+outer_jut=.8jut; pickup tiny.nib; y1=y4=0;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u+eps;
+%
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+.5[apex_oo,apex_o];%+apex_o+apex_oo
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=.6[thin_join,vair];
+penstroke z5e--z6e; % bar line
+pickup tiny.nib; x7=.5[x5,x6]; top y7=y5; bot y8=0;
+pos7(max(tiny.breadth+eps,.7[thin_join,stem]),0);
+pos8(max(tiny.breadth+eps,.7[thin_join,stem]),0);
+x7=x8; filldraw stroke z8e--z7e; % middle stem
+if serifs: prime_points_inside(8,7); numeric inner_jut;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,.6inner_jut)(dark); % lower left diagonal serif
+ dish_serif(4',3,c,1/2,.6inner_jut,d,1/3,outer_jut); % lower right diagonal serif
+ dish_serif(8,7,e,1/3,.6inner_jut,f,1/3,.6inner_jut); fi % lower middle stem serif
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter il_yus_ac - iot little yus acute";
+cyrchar_twice(il_yus_ac,10u#+2stem#,x_height#,0);
+adjust_fit(if monospace:4u# else:4.75u# fi+serif_fit#,serif_fit#);
+begingroup
+% lower_amod;
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=fudged.stem-stem_corr;
+left_stem=min(fudged.hair if hefty:-2stem_corr fi,right_stem);
+outer_jut=.8jut; pickup tiny.nib; y1=y4=0; x1l=w-x4r=outer_jut+.25u+eps;
+%
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+.5[apex_oo,apex_o];%+apex_o+apex_oo
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=.6[thin_join,vair];
+penstroke z5e--z6e; % bar line
+pickup tiny.nib; x7=.5[x5,x6]; top y7=y5; bot y8=0;
+pos7(max(tiny.breadth+eps,.7[thin_join,stem]),0);
+pos8(max(tiny.breadth+eps,.7[thin_join,stem]),0);
+x7=x8; filldraw stroke z8e--z7e; % middle stem
+if serifs: prime_points_inside(8,7); numeric inner_jut;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,.6inner_jut)(dark); % lower left diagonal serif
+ dish_serif(4',3,c,1/2,.6inner_jut,d,1/3,outer_jut); % lower right diagonal serif
+ dish_serif(8,7,e,1/3,.6inner_jut,f,1/3,.6inner_jut); fi % lower middle stem serif
+%%%%%
+x9=x5; y9=.5[y5l,y5r];
+% i_part(9);
+_zero:=9;
+_one:=10; _two:=11; _three:=12; _four:=13;
+%
+pickup tiny.nib; pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround(2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+if serifs: slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); fi % lower stem serif
+x[_three]=x[_zero]; x[_four]=x[_one];
+y[_three]=y[_four]=y[_zero]; pickup fine.nib;
+penpos[_three](.6[thin_join,vair],90);
+penpos[_four](.6[thin_join,vair],90); %fi
+fill stroke z[_three]e--z[_four]e; % bar
+%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter ib_yus_ac - iot big yus acute (`roman')";
+cyrchar_twice(ib_yus_ac,15u#,x_height#,0);
+adjust_fit(.75u#+
+ if monospace: 4u# else: 4.5u# fi +serif_fit#, %li_part_adj+.75u#
+ serif_fit#);
+begingroup
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal
+% lowerr_yus;
+% ltop_yus;
+set_bar_axis; numeric stem[];
+stem1=fudged.stem-3stem_corr; stem2=min(stem1,fudged.hair);
+penpos1(stem1,0); penpos2(stem2,0); penpos3(stem1,0); penpos4(stem2,0);
+x1l=w-x2r=hround(.2w-.5tiny-.5)-eps; y1=y2=h; y3=y4=3/5[y1.bh,y2.bh];
+x3l=hround(.5w-.5stem1); x3r=x4r;
+z0=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty: y0:=y2.bh;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ ...{down}(x0-.5,y0)..(x0+.5,y0){up}...
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; % diagonals
+else: fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi % diagonals
+penpos5(stem1,0); x5=x3; y5=0;
+fill z3l--diag_end(3l,5l,1,1,5r,3r)--z3r--cycle; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-vair);
+fill z1--z7--z6--z2--cycle; % upper bar
+% lyus_rbowl;
+ numeric stem[],alpha[],right_jut;
+ right_jut=if serifs:.6jut else:.4tiny fi;
+ y10l=y1.bh; y10r=y2.bh; x10l=x10r=x3; y9=y12=min(bot y10l-.5,.85y10l);
+ rt x8r=w-lft x11l=hround(r-letter_fit-.3u-right_jut); bot y8=bot y11=y5;
+ stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+ alpha2=diag_ratio(1,.5(stem2-tiny),h-y8,x8r-x3);
+ penpos8(alpha2*(stem2-tiny),0); penpos11(alpha2*(stem2-tiny),0);
+ forsuffixes $=l,r: y8'$=0; y11'$=0; endfor
+ z8'r=z8r+penoffset (x3,h)-z8 of currentpen+whatever*((x3,h)-z8);
+ z8'l=z8l+penoffset z8-(x3,h) of currentpen+whatever*((x3,h)-z8);
+ z11'r=z11r+penoffset (x3,h)-z11 of currentpen+whatever*((x3,h)-z11);
+ z11'l=z11l+penoffset z11-(x3,h) of currentpen+whatever*((x3,h)-z11);
+ z8'=.5[z8'l,z8'r]; z11'=.5[z11'l,z11'r];
+ z9=z8'+whatever*((x3,h)-z8); z12=z11'+whatever*((x3,h)-z11);
+ penpos9(stem-2stem_corr,0); penpos12(stem-2stem_corr,0);
+ fill z10l{right}...{z8'l-z9l}z9l--diag_end(9l,8'l,.5,1,8'r,9r)
+ --z9r{z9r-z8'r}...{left}z10r--cycle; % right diagonal
+ fill z10r{left}...{z11'l-z12l}z12l--diag_end(12l,11'l,1,.5,11'r,12r)
+ --z12r{z12r-z11'r}...{right}z10l--cycle; % left diagonal
+%%
+save slab; % lower.slab
+if serifs: numeric inner_jut; prime_points_inside(5,3);
+ if rt x5r+jut+.5u+1<=lft x8l-jut: inner_jut=jut;
+ else: rt x5r+jut+.5u+1=lft x8l-inner_jut; fi
+ slab:=vair; % lower.slab
+ dish_serif(11,12,a,1/3,right_jut,b,1/2,inner_jut)(dark); % lower diagonal serif
+ dish_serif(8,9,e,1/2,inner_jut,f,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(5',3,c,1/3,.75jut,d,1/3,.75jut); fi % lower middle serif
+%%%%%
+% barh_i_part(8);
+_zero:=3;
+_one:=13; _two:=14;
+%
+pickup tiny.nib;
+pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround (2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+bar_stroke(x[_one],x[_zero]); % bar
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); % lower serif
+fi
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12, 13,14,15,16); endchar;
+
+lhchar "Lowercase Cyrillic letter i_e_ac - iot e acute";
+cyrchar_twice(i_e_ac,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: 4u# else: 4.5u# fi +serif_fit#, %li_part_adj
+ if monospace:.5u# else:.1u# fi);
+begingroup
+% lower_ukre;
+set_bar_axis;
+pickup fine.nib; pos2(vair',90); pos3(curve,180); pos4(vair',270);
+x2=x4=(.5(w+u)); top y2r=vround(h+1.5oo); bot y4r=-oo;
+lft x3r=(hround max(.6u,1.35u-.5curve)); y3=.5h;
+if serifs:
+ pos1(hair,0); pos5(hair,360);
+ y1=min(y2.bh+.75flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ rt x1r=rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke z1e{x2-x1,5(y2-y1)}...pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],0); x6r=x1r; top y6=h+oo;
+ x1r-x1'=1.5curve; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,5(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos1(4/7[vair',flare],80); pos5(.6[vair',flare],275);
+ rt x1r=hround(w-.6u);
+ top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+%%%
+% lukre_bar;
+if (serifs=true) and (bar#<=.5curve#):
+ x7r=x3l; x8r=min(lft x1l-.5hair,0.85[x3l,x1l]);
+ y7l=y8l=y1.bh; y7r=y8r=y2.bh; x7l=x7r; x8l=x8r;
+ numeric bar[];
+ bar2=7/8[bar,fudged.stem-2stem_corr];
+ penpos9(bar2,45); z9=.575[z7l,z8l];
+ fill circ_stroke z8e{-2,-1}..{-2,1}z9e..{-2,-1}z7e; % curve /\/
+else:
+ bar_stroke(x3l,min(lft x1l-.5hair,0.85[x3l,x1l])); % bar --
+fi
+%%%%%
+save slab; % lower.slab
+% barh_i_part(3);
+_zero:=3;
+_one:=10; _two:=11;
+%
+pickup tiny.nib;
+pos[_one](stem,0); pos[_two](stem,0);
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if not monospace: serif_fit+ fi hround (2.5u-.5stem-eps);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+bar_stroke(x[_one],x[_zero]); % bar
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif([_one],[_two],s,1/3,jut,t,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif([_two],[_one],u,1/3,jut,v,1/3,jut); % lower serif
+fi
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,1',2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+% modified numeral 8
+lhchar "Lowercase Cyrillic letter uk_ac - uk acute";
+cyrchar_twice(uk_ac,if serifs: 9.75u# else:10.5u# fi,
+ asc_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+% lower_uk;
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+if serifs:
+ bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+else:
+ bot_thickness=vair';
+ upper_side=max(fine.breadth,hround(.3[vair',stem]-stem_corr));
+ lower_side=hround(.3[vair',stem]+stem_corr); fi
+ x0=.5w; y0=if serifs:.7x_height else:bar_height fi; %h;%%%%%%%%%%%%%%
+pickup fine.nib; theta=90-angle(20u,h); slope:=-h/20u;
+if lower_side>1.2upper_side: upper_side:=lower_side; fi
+pos1(top_thickness,-90); pos6(bot_thickness,-90);
+x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(fudged.stem-2stem_corr,theta);
+lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround 1.75u if not serifs:+.5u fi;
+x2r-x2l=if serifs:fudged.stem else:upper_side fi-fine;
+x5r-x5l=lower_side-fine;
+ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+numeric tau; tau=max(.8,.20710678/(superness-.5));
+y2r:=y2l+serif_drop;
+filldraw stroke z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+pos7(lower_side,180); pos8(upper_side,180);
+y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+filldraw stroke z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e;% lower left stroke
+if serifs:
+% italic bulb
+ z8'=z8; pos8'(upper_side,0);
+ y1'+.5curve=h+oo; x1'=x8-max(u,.5u+.5curve);
+ numeric theta; theta=angle(4(x8'-x1'),y8'-y1'); pos1'(curve,theta+90);
+ filldraw z1'l{dir theta}..tension atleast 1 and 1..{down}z8'l
+ --z8'r{up}...{-dir theta}z1'r..cycle; % bulb
+% from sloped serif
+ pos12(slab,90); lft x12=x2l-.5jut; y12r=y2r-serif_drop; z14=z2l;
+ filldraw z2r--z12r--z12l{right}
+ ...1/3[(x14,y12l),.5[z12l,z14] ]{z14-z12l}
+ ...{down}z14--(x2r,y14)--cycle; % sloped serif
+else: pos10(flare,225); x10r=x1; y10l=h+oo;
+ filldraw stroke z8e{up}...z10e; fi
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once; % cyrcaph for acs_height
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+lhchar "Lowercase Cyrillic letter y_ac - straight u acute";
+cyrchar_twice(y_ac,if serifs: 9.5u# else: 9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+begingroup
+% lower_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha; left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=0; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=-d;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+notch_cut: y0:=y2+notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(6',5,e,1/3,jut,f,1/3,jut); % lower serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % upper right serif
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter ae_ac - ae acute";
+cyrchar_twice(ae_ac,13u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
+right_curve=max(tiny.breadth,hround(curve-if serifs:6
+else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y
+ y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % right terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l;
+x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(mfudged.hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=4u;
+ y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=4.3u; top y1r=vround .82[bar_height,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % left terminal
+pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
+pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
+filldraw stroke super_arc.e(3,4)&z4e--z5e; % arc and stem
+pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
+pos7(left_curve,180); lft x7r=hround max(.5u,1.5u-.5left_curve);
+y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=3.75u; bot y8r=-oo;
+pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
+(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if y9<y5: filldraw stroke z5e{down}..{down}z9e; fi % link (usually hidden)
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+lhchar "Lowercase Cyrillic letter schwa_ac - schwa acute";
+cyrchar_twice(schwa_ac,7.5u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+% lower_schwa;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,-180); pos2(vair',-90); pos3(left_curve,0);
+set_bar_axis; bot y2r=-oo; y0l=top y1=h-y1.bh;
+lft x1r=hround max(.5u,u-.5right_curve);
+rt x3r=hround min(w-.5u,w-1.25u+.5left_curve); x2=.5w-.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; top y4r=h+oo; x4=x2;% if not serifs:-.25u fi;
+if serifs:
+ pos4(vair,90); pos5(hair,180);
+ y5=min(bar_height+.25flare+2vair'+2,.9[bar_height,h]-.75flare); %z
+ lft x5r=hround(lft x1r+1/3u)+eps;
+ (x,y4l)=whatever[z4r,z5]; x4l:=max(x,x4l-.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4); % left bowl, arc,
+ pickup fine.nib; pos4'(vair,90); z4'=z4; x4'r:=x4r;
+ filldraw stroke z4'e{left}...{x5-x4,5(y5-y4)}z5e; % and terminal
+ path upper_arc; upper_arc=z5{x4-x5,5(y4-y5)}..z4{right};
+ pos6(.3[fine.breadth,hair],180); x6r=x5r; top y6=h+oo;
+ x5'-x5r=2curve-fine; y5'=y5;
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z5'));
+ filldraw z5r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos4(vair,90);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,90); z4=z4'; pos5(4/7[vair',flare],100);
+ lft x5r=hround(tiny.lft x1r+2/3u)+eps;
+ top y5r=vround min(top y4r,max(.82[bar_height,top y4r],
+ y2.bh+.5(y2.bh-y1.bh)-4/7[vair',flare]*sind 280+eps));
+ filldraw stroke term.e(4',5,left,.8,4); fi % terminal
+pickup tiny.nib; path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'l=y0l; x1'l=x1'r=x1; y1'r=y0r=y0l-.6[thin_join,vair];%y1.bh;
+forsuffixes $=l,r:
+x0$=xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,5',6); endchar;
+
+lhchar "Lowercase Cyrillic letter otld_ac - o tilded acute";
+cyrchar_twice(otld_ac,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+% lower_o;tld
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%%%
+% oltilde;
+if (serifs=true) and (bar#<=.5curve#):
+ numeric bar[];
+ set_bar_axis;
+ x5r=x2l; x6r=x4l;
+ y5r=y6r=y2.bh; y5l=y6l=y1.bh; x5r=x5l; x6l=x6r;
+ bar2=2/3[bar,fudged.stem];
+ penpos7(bar2,45); z7=.5[z5l,z6l];
+ fill stroke z6e{-2,-1}..{-2,1}z7e..{-2,-1}z5e;
+else:
+ bar_stroke(x2,x4);
+fi
+%%%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Cyrillic letter dje_ac - soft dj acute";
+cyrchar_twice(dje_ac,9.5u#,asc_height#,desc_depth#);
+italcorr .7x_height#*slant; %o
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+begingroup
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos3(stem,0);
+pos1'(stem',0); pos2'(stem',0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; rt x3r=hround(w-u);
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+% h_stroke_part;
+y3=1/3[bar_height,x_height];
+penpos0(x2r-x2l,0); x0=x2; y0=1/8[bar_height,x_height];
+filldraw stroke z0e--z2e; % thicken the lower left stem
+penpos2''(min(rt x2r-lft x2l,thin_join)-fine,180);
+pickup fine.nib; rt x2''l=tiny.rt x2r; y2''=y0;
+pos4(vair,90); pos3'(x3r-x3l+tiny,0); z3'=z3;
+x4=.5[rt x2''l,rt x3'r]; top y4r=x_height+oo;
+(x,y4l)=whatever[z4r,z2''l]; x4l:=x;
+filldraw stroke z2''e{up}...{right}z4e
+ & {{interim superness:=hein_super; super_arc.e(4,3')}}; % arch
+% h_tail;
+pos5(stem,0); pos6(max(fine.breadth,.6[thin_join,vair]),-90);
+x5=x3; y5=bar_height; lft x6r=rt x2r; %even with right edge of stem;
+bot y6r=-d;
+filldraw stroke z3'e--z5e & pulled_arc.e(5,6);
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ save slab; slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+% hcross;
+pickup fine.nib; pos7(bar,90); pos8(bar,90);
+x7=0; x8=hround(w-u); y7=y8=vround(.5x_height+.5h)+.5bar;
+filldraw stroke z7e--z8e; % bar
+endgroup;
+% the accent
+hpos_corr=-u; put_accent(cyrcaph); repeat_once; % cyrcaph for asc_height
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgcvacu.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgcvacu.mf
new file mode 100644
index 00000000000..e9c8a8ad99c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgcvacu.mf
@@ -0,0 +1,1395 @@
+%
+% lgcvacu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Cyrillic acuted vowels
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% A_ac
+% E_ac
+% YO_ac
+% UKRE_ac
+% I_ac
+% LAT_I_ac
+% UKR_I_ac
+% O_ac
+% ERY_ac
+% HRDSN_ac
+% EREV_ac
+% YU_ac
+% YA_ac
+% YAT_ac
+% IZH_ac
+% B_YUS_ac
+% L_YUS_ac
+% IL_YUS_ac
+% IB_YUS_ac
+% I_E_ac
+% UK_ac
+% Y_ac
+% AE_ac
+% SCHWA_ac
+% OTLD_ac
+% DJE_ac
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Uppercase Cyrillic letter A_ac - A acute";
+cyrchar_twice(A_ac,13u#,cap_height#,0);
+if is_small_cap: getcharcode(a_ac); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_a;
+numeric left_stem,right_stem,outer_jut,alpha; outer_jut=.8cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.5u;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+% the accent
+if not monospace: hpos_corr=-.75u; fi
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter E_ac - E acute";
+cyrchar_twice(E_ac,12u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(e_ac); fi
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_e;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter YO_ac - YO acute";
+cyrchar_twice(YO_ac,12u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(yo_ac); fi
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+% upper_e;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+%%%%%
+% the accents
+uppercase_umlaut(0,0, 10,11,12,13);
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter UKR_E_ac - Ukrainian E acute";
+cyrchar_twice(UKR_E_ac,13u#,cap_height#,0);
+if is_small_cap: getcharcode(ukr_e_ac); fi
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+% upper_ukre;
+pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+rt x1r=rt x5r=hround(w-u); lft x3r=(hround u); x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+bot y1=min(vround .675h,bot y2l-eps); y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+x1r-x1'=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+% upukre_bar;
+numeric bar[]; y7=y8=y3;
+x7=x3l; x8=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+if (serifs=true) and (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr]; penpos9(bar2,45); z9=.575[z7l,z8l];
+ fill circ_stroke z8e{-2,-1}..{-2,1}z9e..{-2,-1}z7e; % curve /\/
+else: pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; fi % bar --
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,1',2,3,4,5,6); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter UKR_E_ac - Ukrainian E acute";
+cyrchar_twice(UKR_E_ac,11.5u#,cap_height#,0);
+if is_small_cap: getcharcode(ukr_e_ac); fi
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+% uppers_ukre;
+pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+top y1r=vround.95h+o; top y2r=h+o; y3=.5h;
+bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4);
+% uukres_bar;
+numeric bar[]; y6=y7=y3; x6=x3l; x7=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+pickup fine.nib;
+bar1=if is_small_cap:max(fine.breadth+eps,.6[thin_join,vair]) else:cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,1',2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter I_ac - I acute";
+cyrchar_twice(I_ac,13.5u#,cap_height#,0); % N_width
+if is_small_cap: getcharcode(i_ac); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_i;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(slab+eps); y6=vround(h-slab-eps);
+ alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l);
+ penpos5(min(2fudged.cap_stem,alpha1*stem1),0);
+ penpos6(min(2fudged.cap_stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: y5l=y2+bracket+eps; y6r=y3-bracket-eps;
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ stem1=max(tiny.breadth,fudged.hair);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter LAT_I_ac - Ukrainian I acute";
+cyrchar_twice(LAT_I_ac,max(6u#,4u#+cap_stem#),cap_height#,0);
+if is_small_cap: getcharcode(lat_i_ac); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_ukri; - borrowed from ec
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2); endchar;
+
+lhchar "Uppercase Cyrillic letter UKR_I_ac - YI acute";
+cyrchar_twice(UKR_I_ac,max(6u#,4u#+cap_stem#),cap_height#,0);
+if is_small_cap: getcharcode(ukr_i_ac); fi
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_ukri; - borrowed from ec
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+if slitex:
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=h; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+fi
+%%%%%
+% the accents
+uppercase_umlaut(0,0, 9,10,11,12);
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6,7,8, 9,10,11,12); endchar;
+
+lhchar "Uppercase Cyrillic letter O_ac - O acute";
+cyrchar_twice(O_ac,14u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(o_ac); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% upper_o;
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4); endchar;
+
+lhchar "Uppercase Cyrillic letter U_ac - U acute";
+cyrchar_twice(U_ac,13u#,cap_height#,0);
+if is_small_cap: getcharcode(u_ac); fi
+italcorr x_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+lhchar "Uppercase Cyrillic letter ERY_ac - ERY acute";
+cyrchar_twice(ERY_ac,12.5u#,cap_height#,0); %V_width#=12.5u#
+if is_small_cap: getcharcode(ery_ac); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if monospace: 0,0 else: cap_serif_fit#,cap_serif_fit# fi %uwlett_adj
+ +4.5u#); %ERYadj
+% upper_ery;
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% I
+w:=w+4.5u; pickup tiny.nib; rt x8r=rt x9r=w-hround max(2u,3u-.5stem);
+top y8=h; bot y9=0; pos8(cap_stem,0); pos9(cap_stem,0);
+filldraw stroke z8e--z9e;
+if serifs: dish_serif(8,9,e,1/3,cap_jut,f,1/3,cap_jut);
+ dish_serif(9,8,g,1/3,cap_jut,h,1/3,cap_jut); fi
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,8,9,10,11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter HRDSN_ac - HARD SIGN acute";
+cyrchar_twice(HRDSN_ac,12.5u#,cap_height#,0); %V_width#=12.5u#
+if is_small_cap: getcharcode(hrdsn_ac); fi
+adjust_fit(min(4.5u#-.5stem#,3.5u#)-.5width_adj#, % Beak_adj
+ 0);
+% upper_hrdsn;
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% upper left beak
+pickup crisp.nib;
+top y3r=h; x3=x1; pos3(slab,90); pos4(hair,180);
+lft x4r=l+letter_fit+hround.65u; y4=good.y(y3l-beak)-eps;
+arm(3,4,q,beak_darkness,-.7beak_jut);
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7; _four:=8; _five:=9;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter EREV_ac - REVERSE E acute";
+cyrchar_twice(EREV_ac,13u#,cap_height#,0);
+if is_small_cap: getcharcode(erev_ac); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% upper_erev;
+pickup fine.nib; pos1(cap_hair,180); pos2(cap_band,90);
+pos3(cap_curve,0); pos4(cap_band,-90); pos5(hair,-180);
+lft x1r=lft x5r=hround u;
+rt x3r=hround(w-u); x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+bot y1=min(vround.675h,bot y2l-eps); y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+x1'-x1r=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+%%%
+%%% uerev_bar;
+numeric bar[]; y8=y7=y3;
+x8=x3l; x7=max(rt x1l+.5hair,0.85[x3l,x1l]);
+if (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr];
+ penpos9(bar2,45); z9=.475[z7l,z8l];
+ fill circ_stroke z7e{2,1}..{2,-1}z9e..{2,1}z8e; % curve /\/
+else:
+ pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; % bar --
+fi
+%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,1',2,3,4,5,6,10,11,12); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter EREV_ac - REVERSE E acute";
+cyrchar_twice(EREV_ac,11.5u#,cap_height#,0);
+if is_small_cap: getcharcode(erev_ac); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% uppers_erev;
+pickup fine.nib; pos1(1.2flare,100); pos2(slab,90);
+pos3(cap_curve,0); pos4(slab,-90); pos5(flare,-95);
+lft x1r=hround1.1u; x2=x4=w-(.5w+1.25u);
+rt x3r=w-hround max(u,2u-.5cap_curve);
+lft x5r=hround.9u;
+top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4);
+%%%
+% urevs_bar;
+pickup fine.nib; numeric bar[];
+bar1=if is_small_cap: max(fine.breadth+eps,.6[thin_join,vair])
+ else: cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+y7=y6=y3; x7=x3l; x6=max(rt x1l+.5hair,0.85[x3l,x1l]);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,1',2,3,4,5,6,10,11,12); endchar;
+
+lhchar "Uppercase Cyrillic letter YU_ac - YU acute";
+cyrchar_twice(YU_ac,14u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(yu_ac); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ if monospace:-1.25u# else: 0 fi);
+% upper_yu;
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+ else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%I_part(2);
+_zero:=2;
+_one:=5; _two:=6; _three:=7; _four:=8;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,10,11,12,13); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter YA_ac - YA acute (`roman')";
+cyrchar_twice(YA_ac,if serifs:13.5u# else:12.5u#-.5width_adj# fi %N_width; upss R
+ ,cap_height#,0); % N_width %
+if is_small_cap: getcharcode(ya_ac); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if serifs:cap_serif_fit# else:0 fi,cap_serif_fit#);
+% upperr_ya;
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+rt x1r=rt x2r=hround(w-max(2u,3u-.5cap_stem')); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,180);
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+z3r=top z1; y4=y3; y5=.52[y6l,y4l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround (2u);
+ else: x4=.5w-.5u; x5r=hround u; fi
+x4l:=x6l:=x4+.125cap_curve;
+fill stroke z7e..pulled_arc.e(6,5) & pulled_arc.e(5,4)..z3e; % lobe
+pickup tiny.nib; numeric stem[],alpha,right_jut;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+if serifs: bot y9=bot y2; else: y9=0; fi
+lft x9l=hround(if serifs:l+letter_fit+.75u+right_jut else:.5u fi); y8=y6;
+stem1=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+alpha=diag_ratio(1,.5(stem1-tiny),y1-y9,x9l-x1);
+penpos9(alpha*(stem1-tiny),0);
+forsuffixes $=l,r: y9'$=0; endfor
+z9'r=z9r+penoffset z1-z9 of currentpen+whatever*(z1-z9);
+z9'l=z9l+penoffset z9-z1 of currentpen+whatever*(z1-z9);
+if serifs: z8r=z9'r+whatever*(z1r-z9); else: x8=x6+.5u; fi
+penpos8(if serifs:x9'r-x9'l else: cap_stem-2stem_corr fi,0);
+fill z8l--diag_end(8l,9'l,1,.5,9'r,8r)--z8r--cycle; % diagonal
+numeric inner_jut;
+if lft x2l-cap_jut-.5u+1>=rt x9r+cap_jut: inner_jut=cap_jut;
+ else: lft x2r-cap_jut-.5u+1=rt x9r+inner_jut; fi
+if serifs:
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+ dish_serif(9,8,g,1/2,right_jut,h,1/3,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter YAT_ac - YAT acute";
+cyrchar_twice(YAT_ac,12.5u#,cap_height#,0);
+if is_small_cap: getcharcode(yat_ac); fi
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(2u#+cap_serif_fit#,0);
+% upper_yat;
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.5[vair,cap_band];
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% yat beaks
+pos8(slab,90); pos9(hair,0);
+top y8r=vround .85h; x8=x1; rt x9r=hround(w-2.65u); y9=good.y(y8l-2/3beak)-eps;
+arm(8,9,m,beak_darkness,2/3beak_jut); % right arm and beak
+pos10(hair,180); x10=w-x9-4u; y10=y9;
+arm(8,10,p,beak_darkness,-2/3beak_jut); % left arm and beak
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+% for shape, see Knizhnay Shrift p 58 Bodoni, Parma 1818
+lhchar "Uppercase Cyrillic letter IZH_ac - IZHITSA acute";
+cyrchar_twice(IZH_ac,13u#,cap_height#,0);
+if is_small_cap: getcharcode(izh_ac); fi
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,
+ if serifs: min(1.5u#,.5u#+(flare#+(cap_stem#-stem#))) %ccL_adj
+ else:.5u#fi);
+% upper_izh;
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+x6=if serifs:.5[x5,x7r] else:x7r fi;
+penpos6(vair,90); y6r=h if serifs:+o fi;
+penpos5(alpha*right_stem,0);
+y5=min(.9cap_height,bot y6l-.5vair); z5=whatever[z3,z4];
+x7r=hround(r-.5u); penpos7(hair,0);
+y7=h-vround max(.05fig_height+.5flare,.1fig_height-.5flare)+o; z8r=z7r;
+penpos8(flare,0); if serifs: cyrbulb(6,7,8); fi
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}z5l...{right}
+ if serifs: z6r--z6l
+ else:
+ (.5[x4,x4r],y6r)--(fine.lft x6r,y6r)..(x6r,fine.bot y6r)--
+ (x6l,fine.top y6l)..(fine.lft x6l,y6l) fi
+ {left}
+ ....z5r{z3-z4}--diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--z5l{z4-z3}...{right}z6r--z6l{left}...{z3-z4}z5r
+ --diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2);
+ if rt x1'r+cap_jut+.5u+1<=x4l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=x4l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); fi % left serif
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter B_YUS_ac - BIG YUS acute (`roman')";
+cyrchar_twice(B_YUS_ac,18u#,cap_height#,0);
+if is_small_cap: getcharcode(b_yus_ac); fi
+if odd(fudged.cap_stem-w): change_width; fi % symmetric & all three equal
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upperr_yus;
+% top_Yus;
+% top_Yus;
+numeric stem[];
+stem1=fudged.cap_stem if hefty:-3stem_corr fi;
+stem2=min(stem1,cap_hair if hefty:-2stem_corr fi);
+penpos1(stem1,0); penpos2(stem2,0); penpos3(stem1,0); penpos4(stem2,0);
+x1l=w-x2r=.2w; y1=h; y2=y1; y3=y4=.52h;
+x3l=hround(.5w-.5stem1); x3r=x4r;
+z0'=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty:
+ numeric lower_notch; lower_notch=y3+cap_notch_cut;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ if y0'<=lower_notch: ..{z3r-z1r}z0'{z2l-z4l}..
+ else: ...{down}(x0'+.5,lower_notch)--(x0'-.5,lower_notch){up}... fi
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; %v
+else:
+ fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0'--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi %v
+penpos5(stem1,0); x5=x3; y5=0;
+fill z3l--diag_end(3l,5l,1,1,5r,3r)--z3r--cycle; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-slab);
+fill z1--z7--z6--z2--cycle; % upper bar
+% Yus_rbowl;
+pickup tiny.nib; numeric stem[],alpha[],right_jut,middle_weight;
+right_jut=.6cap_jut; middle_weight=cap_bar;
+penpos10(middle_weight,90);
+y10r=y3+.5min(cap_bar,cap_notch_cut); x10=x3; y9=y12=.8y10;
+rt x8r=w-lft x11l=hround(r-letter_fit-.3u-right_jut); bot y8=bot y11=y5;
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+alpha2=diag_ratio(1,.5(stem2-tiny),h-y8,x8r-x3);
+penpos8(alpha2*(stem2-tiny),0); penpos11(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y8'$=0; y11'$=0; endfor
+z8'r=z8r+penoffset (x3,h)-z8 of currentpen+whatever*((x3,h)-z8);
+z8'l=z8l+penoffset z8-(x3,h) of currentpen+whatever*((x3,h)-z8);
+z11'r=z11r+penoffset (x3,h)-z11 of currentpen+whatever*((x3,h)-z11);
+z11'l=z11l+penoffset z11-(x3,h) of currentpen+whatever*((x3,h)-z11);
+z8'=.5[z8'l,z8'r]; z11'=.5[z11'l,z11'r];
+z9=z8'+whatever*((x3,h)-z8); z12=z11'+whatever*((x3,h)-z11);
+penpos9(cap_stem-2stem_corr,0); penpos12(cap_stem-2stem_corr,0);
+fill z10l{right}...{z8'l-z9l}z9l--diag_end(9l,8'l,.5,1,8'r,9r)
+ --z9r{z9r-z8'r}...{left}z10r--cycle; % right diagonal
+ fill z10r{left}...{z11'l-z12l}z12l--diag_end(12l,11'l,1,.5,11'r,12r)
+ --z12r{z12r-z11'r}...{right}z10l--cycle; % left diagonal
+if serifs: numeric inner_jut; prime_points_inside(5,3);
+ if rt x5r+cap_jut+.5u+1<=lft x8l-cap_jut: inner_jut=cap_jut;
+ else: rt x5r+cap_jut+.5u+1=lft x8l-inner_jut; fi
+ dish_serif(11,12,a,1/3,right_jut,b,1/2,inner_jut)(dark); % lower diagonal serif
+ dish_serif(8,9,e,1/2,inner_jut,f,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(5',3,c,1/3,.75jut,d,1/3,.75jut); fi % middle serif
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+lhchar "Uppercase Cyrillic letter L_YUS_ac - LITTLE YUS acute";
+cyrchar_twice(L_YUS_ac,13u#+2cap_stem#,cap_height#,0);
+if is_small_cap: getcharcode(l_yus_ac); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_amod;
+numeric left_stem,right_stem,outer_jut,alpha; outer_jut=.8cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.5u;
+%
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem); pickup tiny.nib;
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1r,z2r];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3l,z4l]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+pickup tiny.nib;
+x7=.5[x5,x6]; top y7=y5; x8=x7; bot y8=0;
+pos7(max(currentbreadth+eps,.5[cap_band,cap_stem]),0);
+pos8(max(currentbreadth+eps,.5[cap_band,cap_stem]),0);
+filldraw stroke z8e--z7e;
+if serifs: pickup tiny.nib; numeric inner_jut;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+.7cap_jut+.5u+1<=lft x8l-.7cap_jut: inner_jut=.7cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x8l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); % right serif
+ dish_serif(8,7,e,1/3,inner_jut,f,1/3,inner_jut); fi % middle serif
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter IL_YUS_ac - IOT LITTLE YUS acute";
+cyrchar_twice(IL_YUS_ac,13u#+2cap_stem#,cap_height#,0);
+if is_small_cap: getcharcode(il_yus_ac); fi
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ cap_serif_fit#);
+% upper_amod;iot
+numeric left_stem,right_stem,outer_jut,alpha; outer_jut=.8cap_jut;
+x1l=w-x4r=outer_jut+.5u; %!!!
+%
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem); pickup tiny.nib;
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1r,z2r];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3l,z4l]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+pickup tiny.nib;
+x7=.5[x5,x6]; top y7=y5; x8=x7; bot y8=0;
+pos7(max(currentbreadth+eps,.5[cap_band,cap_stem]),0);
+pos8(max(currentbreadth+eps,.5[cap_band,cap_stem]),0);
+filldraw stroke z8e--z7e;
+if serifs: pickup tiny.nib; numeric inner_jut;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+.7cap_jut+.5u+1<=lft x8l-.7cap_jut: inner_jut=.7cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x8l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); % right serif
+ dish_serif(8,7,e,1/3,inner_jut,f,1/3,inner_jut); fi % middle serif
+%%%%%
+%I_part(9);
+_zero:=6;
+_one:=9; _two:=10; _three:=11; _four:=12;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8, 9,10,11,12); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter IB_YUS_ac - IOT BIG YUS acute";
+cyrchar_twice(IB_YUS_ac,18u#,cap_height#,0);
+if is_small_cap: getcharcode(ib_yus_ac); fi
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ cap_serif_fit#);
+if odd(fudged.cap_stem-w): change_width; fi % symmetric & all three equal
+% upperr_yus;
+% top_Yus;
+numeric stem[];
+stem1=fudged.cap_stem if hefty:-3stem_corr fi;
+stem2=min(stem1,cap_hair if hefty:-2stem_corr fi);
+penpos1(stem1,0); penpos2(stem2,0); penpos3(stem1,0); penpos4(stem2,0);
+x1l=w-x2r=.2w; y1=h; y2=y1; y3=y4=.52h;
+x3l=hround(.5w-.5stem1); x3r=x4r;
+z0'=whatever[z4l,z2l]=whatever[z1r,z3r];
+if hefty:
+ numeric lower_notch; lower_notch=y3+cap_notch_cut;
+ fill z3l--diag_end(3l,1l,1,1,1r,3r){z3r-z1r}
+ if y0'<=lower_notch: ..{z3r-z1r}z0'{z2l-z4l}..
+ else: ...{down}(x0'+.5,lower_notch)--(x0'-.5,lower_notch){up}... fi
+ {z2l-z4l}diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; %v
+else:
+ fill z3l--diag_end(3l,1l,1,1,1r,3r)--z0'--
+ diag_end(4l,2l,1,1,2r,4r)--z4r--cycle; fi %v
+penpos5(stem1,0); x5=x3; y5=0;
+fill z3l--diag_end(3l,5l,1,1,5r,3r)--z3r--cycle; %middle stem
+z6=whatever[z4,z2]; z7=whatever[z1,z3]; y6=y7=good.y(y1-slab);
+fill z1--z7--z6--z2--cycle; % upper bar
+% Yus_rbowl;
+pickup tiny.nib; numeric stem[],alpha[],right_jut,middle_weight;
+right_jut=.6cap_jut; middle_weight=cap_bar;
+penpos10(middle_weight,90);
+y10r=y3+.5min(cap_bar,cap_notch_cut); x10=x3; y9=y12=.8y10;
+rt x8r=w-lft x11l=hround(r-letter_fit-.3u-right_jut); bot y8=bot y11=y5;
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+alpha2=diag_ratio(1,.5(stem2-tiny),h-y8,x8r-x3);
+penpos8(alpha2*(stem2-tiny),0); penpos11(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y8'$=0; y11'$=0; endfor
+z8'r=z8r+penoffset (x3,h)-z8 of currentpen+whatever*((x3,h)-z8);
+z8'l=z8l+penoffset z8-(x3,h) of currentpen+whatever*((x3,h)-z8);
+z11'r=z11r+penoffset (x3,h)-z11 of currentpen+whatever*((x3,h)-z11);
+z11'l=z11l+penoffset z11-(x3,h) of currentpen+whatever*((x3,h)-z11);
+z8'=.5[z8'l,z8'r]; z11'=.5[z11'l,z11'r];
+z9=z8'+whatever*((x3,h)-z8); z12=z11'+whatever*((x3,h)-z11);
+penpos9(cap_stem-2stem_corr,0); penpos12(cap_stem-2stem_corr,0);
+fill z10l{right}...{z8'l-z9l}z9l--diag_end(9l,8'l,.5,1,8'r,9r)
+ --z9r{z9r-z8'r}...{left}z10r--cycle; % right diagonal
+ fill z10r{left}...{z11'l-z12l}z12l--diag_end(12l,11'l,1,.5,11'r,12r)
+ --z12r{z12r-z11'r}...{right}z10l--cycle; % left diagonal
+if serifs: numeric inner_jut; prime_points_inside(5,3);
+ if rt x5r+cap_jut+.5u+1<=lft x8l-cap_jut: inner_jut=cap_jut;
+ else: rt x5r+cap_jut+.5u+1=lft x8l-inner_jut; fi
+ dish_serif(11,12,a,1/3,right_jut,b,1/2,inner_jut)(dark); % lower diagonal serif
+ dish_serif(8,9,e,1/2,inner_jut,f,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(5',3,c,1/3,.75jut,d,1/3,.75jut); fi % middle serif
+%%%%%
+%I_part(13);
+_zero:=10;
+_one:=13; _two:=14; _three:=15; _four:=16;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15, 16,17,18,19);endchar;
+
+iff serifs:%
+lhchar "Uppercase Cyrillic letter I_E_ac - IOT E acute";
+cyrchar_twice(I_E_ac,13u#,cap_height#,0);
+if is_small_cap: getcharcode(i_e_ac); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(if monospace: 6u# else:
+ max(4.5u#+.5cap_stem#,5.5u#)+cap_serif_fit# fi,0);
+% upper_ukre;
+pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+rt x1r=rt x5r=hround(w-u); lft x3r=(hround u); x2=x4=.55[x3,x1];
+top y2r=h+o; bot y4r=-o; y3=.5h-vair_corr; y3l:=.52h;
+bot y1=min(vround .675h,bot y2l-eps); y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+filldraw stroke z1e{x2-x1,10(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)...{up}z5e; % arc
+pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+x1r-x1'=2cap_curve-fine; y1'=y1;
+path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+% upukre_bar;
+numeric bar[]; y7=y8=y3;
+x7=x3l; x8=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+if (serifs=true) and (bar#<=.5curve#):
+ penpos7(cap_bar,90); penpos8(cap_bar,90);
+ bar2=7/8[cap_bar,fudged.cap_stem-3stem_corr]; penpos9(bar2,45); z9=.575[z7l,z8l];
+ fill circ_stroke z8e{-2,-1}..{-2,1}z9e..{-2,-1}z7e; % curve /\/
+else: pickup fine.nib; pos7(cap_bar,90); pos8(cap_bar,90);
+ filldraw stroke z7e--z8e; fi % bar --
+%%%%%
+%I_part(3);
+_zero:=3;
+_one:=10; _two:=11; _three:=12; _four:=13;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,1',2,3,4,5,6); endchar;
+
+iff not serifs:%
+lhchar "Uppercase Cyrillic letter I_E_ac - IOT E acute";
+cyrchar_twice(I_E_ac,11.5u#,cap_height#,0);
+if is_small_cap: getcharcode(i_e_ac); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(if monospace: 6.5u# else:
+ max(5u#+.5cap_stem#,6u#)+cap_serif_fit# fi, %Ipart_adj
+ 0);
+% uppers_ukre;
+pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+top y1r=vround.95h+o; top y2r=h+o; y3=.5h;
+bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4);
+% uukres_bar;
+numeric bar[]; y6=y7=y3; x6=x3l; x7=(min(lft x1l-.5hair,0.85[x3l,x1l]));
+pickup fine.nib;
+bar1=if is_small_cap:max(fine.breadth+eps,.6[thin_join,vair]) else:cap_bar fi;
+pos6(bar1,90); pos7(bar1,90);
+filldraw stroke z6e--z7e; % bar --
+%%%%%
+%I_part(3);
+_zero:=3;
+_one:=10; _two:=11; _three:=12; _four:=13;
+%
+pickup tiny.nib; pos[_one](cap_stem,0); pos[_two](cap_stem,0);%pos
+lft x[_one]l=lft x[_two]l=
+ l+letter_fit+if monospace:-.35u else: cap_serif_fit fi
+ +hround max(2u,3u-.5cap_stem);
+top y[_one]=h; bot y[_two]=0;
+filldraw stroke z[_one]e--z[_two]e; % stem
+x[_three]=x[_one]; y[_three]=y[_zero];
+x[_four]=x[_zero]; y[_four]=y[_three];
+pos[_three](cap_bar,90); pos[_four](cap_bar,90);
+filldraw stroke z[_three]e--z[_four]e; % bar
+if serifs: dish_serif([_one],[_two],s,1/3,cap_jut,t,1/3,cap_jut);
+ dish_serif([_two],[_one],u,1/3,cap_jut,v,1/3,cap_jut); fi
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,1',2,3,4,5,6); endchar;
+
+% Y-o combination
+lhchar "Uppercase Cyrillic letter UK_ac - UK acute";
+cyrchar_twice(UK_ac,13u#,cap_height#,0);%+if serifs:beak#-.5slab# else:slab# fi
+italcorr cap_height#*slant+.25u#; %V
+if is_small_cap: getcharcode(uk_ac); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_uk;
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.5h; %.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6;
+y6=.45y5; %0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ serif(6',5,e,1/3,if serifs:-jut else:.5stem fi); fi % lower serif
+% o
+penpos11(vair,90); penpos13(vair',-90);
+penpos12(curve,180); penpos14(curve,0);
+x12r=hround(l+.5u); %outer_jut+
+x14r=w-x12r; x11=x13=.5w; y11r=y5 if not hefty:-vair fi; y13r=-o;
+y12=y14=.5y11-vair_corr; y12l:=y14l:=.52y11;
+penstroke pulled_super_arc.e(11,12)(.5superpull)
+ & pulled_super_arc.e(12,13)(.5superpull)
+ & pulled_super_arc.e(13,14)(.5superpull)
+ & pulled_super_arc.e(14,11)(.5superpull) & cycle; % bowl
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,22,3,4,5,6,7,8,88,9); endchar;
+
+lhchar "Uppercase Cyrillic letter Y_ac - straight U acute";
+cyrchar_twice(Y_ac,13u#,cap_height#,0);
+if is_small_cap: getcharcode(y_ac); fi
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_y;
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Uppercase Cyrillic letter AE_ac - AE acute";
+cyrchar_twice(AE_ac,16u#,cap_height#,0);
+if is_small_cap: getcharcode(ae_ac); fi
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,amid_stem,outer_jut,alpha;
+amid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(amid_stem,0); pos2(amid_stem,0);
+lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0); x5=x1;
+top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.65u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,.5cap_jut); fi % lower middle serif
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter SCHWA_ac - SCHWA acute";
+cyrchar_twice(SCHWA_ac,if serifs:13u# else:12u# fi,cap_height#,0);
+if is_small_cap: getcharcode(schwa_ac); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0,0);
+% upper_schwa;`large e' shape (ecfonts)
+numeric left_curve,right_curve;
+left_curve=right_curve+3stem_corr=cap_curve if not serifs: -1.5stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib;
+pos1(right_curve,-180); pos2(vair',-90); pos3(left_curve,0);
+y1=.48h; bot y2r=-o; y0l=top y1;
+if serifs: x2-.25u=x4=.5w-.5u; else: x2=x4=.5w-.25u; fi
+lft x1r=hround max(.5u,u-.5right_curve);
+rt x3r=w-hround max(.75u,1.5u-.5left_curve); %lower_e+.25u
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; top y4r=h+o;
+if serifs:
+ pos4(cap_band,90);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4); % left bowl, arc,
+ pickup fine.nib; pos4'(cap_band,90); z4'=z4;
+ lft x5r=max(hround u,lft x1r+1/3u+eps);
+ pos5(cap_hair,180); bot y5=min(vround .675h,bot y4l-eps);
+ filldraw stroke z4'e{left}...{x5-x4,10(y5-y4)}z5e; % and terminal
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x5r; top y6=h+o;
+ x5'-x5r=2cap_curve-fine; y5'=y5;
+ path upper_arc; upper_arc=z5{x4-x5,10(y4-y5)}..{right}z4;
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z5'));
+ filldraw z5r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % upper serif
+else:
+ pos4(slab,90);
+ {{interim superness:=min(1.03superness,more_super);
+ filldraw stroke super_arc.e(2,3)}};
+ filldraw stroke super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(slab,90); z4=z4';
+ pos5(1.2flare,100); lft x5r=lft x1r+u; top y5r=vround .95h+o;
+ filldraw stroke rterm.e(4',5,left,.75,20); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l-7/8[thin_join,vair']; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r: x0$=xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+% the accent
+hpos_corr=-u; put_accent(cyrcaph); repeat_once;
+penlabels(0,1,2,3,4,4',5); endchar;
+
+lhchar "Uppercase Cyrillic letter OTLD_ac - O tilded acute";
+cyrchar_twice(OTLD_ac,14u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(otld_ac); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+% upper_o;tld
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%%%%%
+% outilde;
+z5=z2l; z6=z4l; penpos5(cap_bar,90); penpos6(cap_bar,90);
+if (serifs) and (bar#<=.5curve#): numeric bar[];
+ bar2=2/3[cap_bar,fudged.cap_stem]; penpos7(bar2,45); z7=.5[z5,z6];
+ fill stroke z5e{2,1}..{2,-1}z7e..{2,1}z6e;
+else: fill stroke z5e--z6e; fi
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4); endchar;
+
+lhchar "Uppercase Cyrillic letter DJE_ac - Soft DJ acute";
+cyrchar_twice(DJE_ac,13u#-width_adj#,cap_height#,0);
+if is_small_cap: getcharcode(dje_ac); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,2.5u#); if odd(cap_stem-w): change_width; fi % symmetric
+% upper_dje;
+% h_stroke_part+bulb
+pickup tiny.nib; lft x1l=lft x2l=hround(.5w-.5cap_stem);
+bot y2=0; pos2(cap_stem,0);
+% upperh_stroke
+penpos2''(min(rt x2r-lft x2l,thin_join)-fine,180);
+pickup fine.nib; pos3(curve,0); pos4(vair,90);
+y3=1/3[bar_height,x_height];
+if serifs: x3=r-letter_fit-hround max(1.5u,2.5u-.5curve); %.5u right
+ else: rt x3r=r-letter_fit-hround.65u; fi
+rt x2''l=tiny.rt x2r; y2''=1/8[bar_height,x_height];
+x4=.5[rt x2''l,rt x3r]; top y4r=x_height+o;
+(x,y4l)=whatever[z4r,z2''l]; x4l:=x;
+filldraw stroke z2''e{up}...{right}z4e
+ & {{interim superness:=hein_super; super_arc.e(4,3)}}; % arch
+%%%%%
+% tail
+pos5(curve,0); pos6(vair,-90);
+x5=x3; y5=2/3[bot y6r,y3]; bot y6r=-o;
+if serifs: numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos7(hair,-180); pos7'(bulb_diam,-180);
+ lft x7r=min(rt x2r+.5cap_jut+.5u,lft x3r-bulb_diam-eps);
+ x6=max(lft x7r+.5bulb_diam,.4[lft x7r,rt x5r]);
+ y7=1/6cap_height-max(0,flare-stem-2vair_corr); z7r=z7'r;
+ cyrbulb(6,7,7'); % bulb
+else: pos7(flare,-105);
+ x6=.4[lft x7r,rt x5r];
+ lft x7r=rt x2r+1.25u+eps; bot y7r=0;
+ filldraw stroke term.e(6,7,left,.8,4); fi
+filldraw stroke z3e--z5e{down}...pulled_arc.e(5,6);
+% T part
+pickup tiny.nib; pos1(cap_stem,0); top y1=h;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos8(slab,90); pos9(hair,0);
+top y8r=h; x8=x1; rt x9r=hround(w-.65u); y9=good.y(y8l-.7beak)-eps;
+arm(8,9,e,beak_darkness,.7beak_jut); % right arm and beak
+pos10(hair,180); x10=w-x9; y10=good.y(y8l-beak)-eps;
+arm(8,10,f,beak_darkness,-beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,.5cap_jut); % lower serif
+ nodish_serif(1,2,aa,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+% T width Tail part
+lhchar "Uppercase Cyrillic letter VDJE_ac - Variant Soft DJ acute";
+cyrchar_twice(VDJE_ac,13u#-width_adj#,cap_height#,desc_depth#);
+if is_small_cap: getcharcode(dje_ac); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,2.5u#); if odd(cap_stem-w): change_width; fi % symmetric
+% upper_dje;
+full_h:=h; h:=x_height;
+% h_stroke_part+bulb
+pickup tiny.nib; lft x1l=lft x2l=hround(.5w-.5cap_stem);
+bot y2=0; pos2(cap_stem,0);
+% upperh_stroke
+penpos2''(min(rt x2r-lft x2l,thin_join)-fine,180);
+pickup fine.nib; pos3(curve,0); pos4(vair,90);
+y3=1/3[bar_height,x_height];
+if serifs: x3=r-letter_fit-hround max(1.5u,2.5u-.5curve); %.5u right
+ else: rt x3r=r-letter_fit-hround.65u; fi
+rt x2''l=tiny.rt x2r; y2''=1/8[bar_height,x_height];
+x4=.5[rt x2''l,rt x3r]; top y4r=x_height+o;
+(x,y4l)=whatever[z4r,z2''l]; x4l:=x;
+filldraw stroke z2''e{up}...{right}z4e
+ & {{interim superness:=hein_super; super_arc.e(4,3)}}; % arch
+%%%%%
+% tail
+pos5(curve,0); pos6(vair,-90);
+x5=x3; y5=2/3[bot y6r,y3]; bot y6r=-o;
+if serifs: numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos7(hair,-180); pos7'(bulb_diam,-180);
+ lft x7r=min(rt x2r+.5cap_jut+.5u,lft x3r-bulb_diam-eps);
+ x6=max(lft x7r+.5bulb_diam,.4[lft x7r,rt x5r]);
+ y7=1/6cap_height-max(0,flare-stem-2vair_corr); z7r=z7'r;
+ cyrbulb(6,7,7'); % bulb
+else: pos7(flare,-105);
+ x6=.4[lft x7r,rt x5r];
+ lft x7r=rt x2r+1.25u+eps; bot y7r=0;
+ filldraw stroke term.e(6,7,left,.8,4); fi
+filldraw stroke z3e--z5e{down}...pulled_arc.e(5,6);
+% T part
+h:=full_h; pickup tiny.nib; pos1(cap_stem,0); top y1=h;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos8(slab,90); pos9(hair,0);
+top y8r=h; x8=x1; rt x9r=hround(w-.65u); y9=good.y(y8l-.7beak)-eps;
+arm(8,9,e,beak_darkness,.7beak_jut); % right arm and beak
+pos10(hair,180); x10=w-x9; y10=good.y(y8l-beak)-eps;
+arm(8,10,f,beak_darkness,-beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,.5cap_jut); % lower serif
+ nodish_serif(1,2,aa,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgunici.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgunici.mf
new file mode 100644
index 00000000000..21fc1ffe47d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgunici.mf
@@ -0,0 +1,506 @@
+%
+% lgunici.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Italic non-T2 Cyrillic letters included in Unicode
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in Unicode
+%
+% gje "53 Ghe with acute
+% kje "5c Ka with acute
+% zh_brv "c2 Zhe with breve
+% a_brv "d1 A with breve
+% a_uml "d3 A with umlaut
+% e_brv "d7 E with breve
+% schwa_uml "db Schwa with umlaut
+% zh_uml "dd Zhe with umlaut
+% z_uml "df Ze with umlaut
+% i_bar "e3 I with macrn (bar)
+% i_uml "e5 I with umlaut
+% o_uml "e7 O with umlaut
+% otld_uml "e9 O tilded with umlaut
+% u_bar "ef U with macron (bar)
+% u_uml "f1 U with umlaut
+% u_dac "f3 U with double acute
+% ch_uml "f5 Che with umlaut
+% ery_uml "f9 Ery with umlaut
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Italic Cyrillic letter kje (k acute)";
+cyrchar_twice(kje,9u#,x_height#,0); %+acc_height#
+italcorr x_height#*slant; %k
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_k;
+pickup fine.nib; x2-.5stem=hround(2.5u-.5stem);
+%ihalfstem;
+if monospace: pos2(stem,0); top y2=h;
+else: x0=0; hook_in(0,1,2); fi % opening hook
+pos2'(stem,0); pos11(stem,0); z2'=z2; x11=x2'; y11-.5stem=-oo;
+filldraw circ_stroke z11e--z2'e; % left stem
+pos3(vair,90); x3=x11; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter gje (g acute)";
+cyrchar_twice(gje,6.25u#,x_height#,0); %+acc_height#
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#); %e
+adjust_fit(if monospace:u#,u# else: 0.5u#,0.5u# fi);
+full_h:=h; h:=x_height;
+% ital_g;
+pickup fine.nib; x0l=hround eps; x0'=x0; x5r=good.x(w-eps); x6=x5;
+x2=.5w+2u; x3=.5w-2u; x1=x4=x7=.5[x3l,x2r]; y7=.5[y2,y3];
+h-y0=y5; top y5l=vround .5bar_height; y6=bar_height; y0'=h-bar_height;
+h-y2=y3=1/4x_height; h-y1=y4; bot y4r=-oo;
+pos0(hair,320); pos1(vair,270); pos2(stem,180);
+pos3(stem,180); pos4(vair,270); pos5(hair,320); pos7(stem,135);
+path p.l,p.r; p.l=z0'..z0..z1{right}; p.r=z4{right}..z5..z6;
+filldraw stroke z0e{direction 1 of p.l}
+ ...z1e{right}...{down}z2e...z7e...z3e{down}...z4e{right}
+ ...{direction 1 of p.r}z5e; % main stroke
+%%%
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter zh_brv - zhe breve";
+cyrchar(zh_brv,20u#,x_height#+acc_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %c
+adjust_fit(-.5u#,0 if monospace:-.5u# fi); %zh_adj
+full_h:=h; h:=x_height;
+% ital_zh;
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal - AS
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,90);
+pos4(curve,180); pos5(vair,270); pos6(hair,320);
+if monospace: x3=x5=.5[lft x4r,rt x2r]-eps; rt x2r=good.x (w+eps);
+else: x3=x5=good.x(w-3.5u); rt x2r=hround max(rt x3,w-u)+eps; fi
+lft x4r=hround max(.5w+.5stem+.5,w-6.5u-.5curve+eps); x6r=good.x(w+eps); x0=x6;
+y2=.5[bar_height,h]; top y3r=h+oo; bulb(3,2,1); % bulb
+bot y5r=-oo; y4=.5[y3,y5]; top y6l=vround .5bar_height; y0=bar_height;
+path p; p=z5{right}..z6..z0;
+filldraw stroke pulled_arc.e(3,4)
+ & pulled_arc.e(4,5)...{direction 1 of p}z6e; % right arc
+pos12(flare,180); pos11(hair,180); pos10(vair,270);
+pos9(curve,360); pos8(vair,450); pos7(hair,500);
+if monospace: lft x11r=good.x (-eps); x10=x8=.5[lft x11r,rt x9r]+eps;
+else: x10=x8=3.5u; lft x11r=hround min(lft x10,u)-eps; fi
+rt x9r=hround min(.5w-.5stem-.5,6.5u+.5curve-eps);
+x7r=good.x (if not monospace:rt x11r-.67u fi-eps); x0'=x7;
+y11=h-.5[bar_height,h]; bot y10r=-oo; bulb(10,11,12); % bulb
+top y8r=h+oo; y9=.5[y10,y8]; bot y7l=vround (h-.65bar_height); y0'=bar_height;
+path p_; p_=z8{left}..z7..z0;
+filldraw stroke pulled_arc.e(10,9)
+ & pulled_arc.e(9,8)...{direction 1 of p_}z7e; % left arc
+y13=bar_height; x13=x4; y14=y13; x14=w-x4; x15=x16=.5w;
+y15+.5stem=h+oo; bot y16=0;
+pos13(vair,90); pos14(vair,90); pos15(fudged.stem,0); pos16(fudged.stem,0);
+filldraw stroke z13e--z14e; filldraw circ_stroke z15e--z16e; % stem & cross
+%%%
+% the accent
+h:=full_h; lowercase_breve(.5w,0, 17,18,19);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, 17,18,19); endchar;
+
+lhchar "Italic Cyrillic letter a_brv - a breve";
+cyrchar(a_brv,9u#,x_height#+acc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:0 else:-.35u#fi,0); %Cyrillic adj
+full_h:=h; h:=x_height;
+% ital_a;
+pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+% the accent
+h:=full_h; lowercase_breve(.5w,0, 8,9,10); %x1r y1r-h
+penlabels(0,1,2,3,4,5,6,7, 8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter a_uml - a umlaut";
+cyrchar(a_uml,9u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:0 else:-.35u#fi,0); %Cyrillic adj
+full_h:=h; h:=x_height;
+% ital_a;
+pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 8,9,10,11);
+penlabels(0,1,2,3,4,5,6,7, 8,9,10,11); endchar;
+
+lhchar "Italic Cyrillic letter e_brv - e breve";
+cyrchar(e_brv,8u#,x_height#+acc_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#); %e
+adjust_fit(if monospace:0 else:-.35u#fi,0); full_h:=h; h:=x_height;
+% ital_e;
+pickup fine.nib; %numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+% the accent
+h:=full_h; lowercase_breve(.5w,0, 7,8,9);
+penlabels(1,2,3,4,5,6, 7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter schwa_uml - schwa umlaut";
+cyrchar(schwa_uml,8u#,lc_trema_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,if monospace:0 else:-.35u#fi); full_h:=h; h:=x_height;
+% ital_schwa;
+pickup fine.nib; %numeric heavy_hair; heavy_hair=hround .2[hair,stem];%defined in lxpseudo
+pos0(vair,90); pos1(heavy_hair,180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x0=lft x3l; lft x1r=hround(1u-.5heavy_hair); x2+.5u=x4=.5(w-u);
+rt x3r=hround(w-1.5u+.5curve);
+lft x5r=good.x (lft x1r+eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; bot y2r=-oo; top y4r=h+oo;
+top y5r=vround .5[bar_height,x_height]; path p; p=z4{left}..z5..z6;
+filldraw stroke z0e{left}...z1e{down}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 7,8,9,10);
+penlabels(1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter zh_uml - zhe umlaut";
+cyrchar(zh_uml,20u#,lc_trema_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %c
+adjust_fit(-.5u#,0 if monospace:-.5u# fi); %zh_adj
+h:=x_height;
+% ital_zh;
+if odd(fudged.stem-w): change_width; fi % symmetric & all three equal - AS
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,90);
+pos4(curve,180); pos5(vair,270); pos6(hair,320);
+if monospace: x3=x5=.5[lft x4r,rt x2r]-eps; rt x2r=good.x (w+eps);
+else: x3=x5=good.x(w-3.5u); rt x2r=hround max(rt x3,w-u)+eps; fi
+lft x4r=hround max(.5w+.5stem+.5,w-6.5u-.5curve+eps); x6r=good.x(w+eps); x0=x6;
+y2=.5[bar_height,h]; top y3r=h+oo; bulb(3,2,1); % bulb
+bot y5r=-oo; y4=.5[y3,y5]; top y6l=vround .5bar_height; y0=bar_height;
+path p; p=z5{right}..z6..z0;
+filldraw stroke pulled_arc.e(3,4)
+ & pulled_arc.e(4,5)...{direction 1 of p}z6e; % right arc
+pos12(flare,180); pos11(hair,180); pos10(vair,270);
+pos9(curve,360); pos8(vair,450); pos7(hair,500);
+if monospace: lft x11r=good.x (-eps); x10=x8=.5[lft x11r,rt x9r]+eps;
+else: x10=x8=3.5u; lft x11r=hround min(lft x10,u)-eps; fi
+rt x9r=hround min(.5w-.5stem-.5,6.5u+.5curve-eps);
+x7r=good.x (if not monospace:rt x11r-.67u fi-eps); x0'=x7;
+y11=h-.5[bar_height,h]; bot y10r=-oo; bulb(10,11,12); % bulb
+top y8r=h+oo; y9=.5[y10,y8]; bot y7l=vround (h-.65bar_height); y0'=bar_height;
+path p_; p_=z8{left}..z7..z0;
+filldraw stroke pulled_arc.e(10,9)
+ & pulled_arc.e(9,8)...{direction 1 of p_}z7e; % left arc
+y13=bar_height; x13=x4; y14=y13; x14=w-x4; x15=x16=.5w;
+y15+.5stem=h+oo; bot y16=0;
+pos13(vair,90); pos14(vair,90); pos15(fudged.stem,0); pos16(fudged.stem,0);
+filldraw stroke z13e--z14e; filldraw circ_stroke z15e--z16e; % stem & cross
+%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 17,18,19,20);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16, 17,18,19,20,21); endchar;
+
+lhchar "Italic Cyrillic letter z_uml - ze umlaut";
+cyrchar(z_uml,8u#,lc_trema_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi; %e
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_z;
+pickup fine.nib; pos0(flare,180); pos1(hair,180); pos2(vair,-90);
+pos7(curve,0); pos8(curve,0); pos4(vair,90); pos5(hair,160);
+pos3(vair,90); pos3'(vair,-90); pos9(vair,90); pos9'(vair,-90);
+x2=x4=.5(w-u); lft x1r=min(lft x2,hround(.25u))-eps;
+lft x5r=good.x x1r+.15u+eps; x6=x5;
+y1=.5bar_height; bot y2r=-oo; bulb(2,1,0); % bulb
+rt x7r=w-hround(1.5u-.5curve); rt x8r=w-hround(2u-.5curve);
+top y4r=h+oo; y7=.5[y2,y3]; y5r=y8=.5[y3,y4]; y6=bar_height;
+x3=x2; lft x9=hround min(lft x2-1-eps,rt x0l+1+eps);
+y3=y9=bar_height; z9'=z9; z3'=z3;
+path p; p=z4{left}..(x5,h-.52bar_height)..z6;
+filldraw stroke z9e{right}...pulled_arc.e(3,7) & pulled_arc.e(7,2); % lower arc
+filldraw stroke z9'e{right}...pulled_arc.e(3',8) & pulled_arc.e(8,4)
+ ...{direction 1 of p}z5e; % upper arc
+%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter i_bar - i bar (macron)";
+cyrchar(i_bar,10u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_i;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left skewstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 10,11);
+x_move:=.5w; y_move:=0; _one:=10; _two:=11;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+lhchar "Italic Cyrillic letter i_uml - i umlaut";
+cyrchar(i_uml,10u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); h:=x_height;
+% ital_i;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left skewstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+% the accent
+lowercase_umlaut(0,0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Italic Cyrillic letter o_uml - o umlaut";
+cyrchar(o_uml,9u#,lc_trema_height#,0);
+italcorr .7asc_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); h:=x_height; pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+% the accent
+lowercase_umlaut(0,0, 5,6,7,8);
+penlabels(1,2,3,4, 5,6,7,8); endchar;
+
+lhchar "Italic Cyrillic letter otld_uml - o tilded umlaut";
+cyrchar(otld_uml,9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); full_h:=h; h:=x_height; pickup fine.nib;
+% ital_o;tld
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+%%%
+% oltilde;
+if (serifs=true) and (bar#<=.5curve#):
+ numeric bar[];
+ set_bar_axis;
+ x5r=x2l; x6r=x4l;
+ y5r=y6r=y2.bh; y5l=y6l=y1.bh; x5r=x5l; x6l=x6r;
+ bar2=2/3[bar,fudged.stem];
+ penpos7(bar2,45); z7=.5[z5l,z6l];
+ fill stroke z6e{-2,-1}..{-2,1}z7e..{-2,-1}z5e;
+else:
+ bar_stroke(x2l,x4l);
+fi
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 8,9,10,11);
+penlabels(1,2,3,4,5,6,7, 8,9,10,11); endchar;
+
+lhchar "Italic Cyrillic letter u_bar - u bar (macron)";
+cyrchar(u_bar,if monospace:8.5u# else:9u#fi,lc_trema_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+h:=full_h;
+% low_bar(.5w,0, 11,12);
+x_move:=.5w; y_move:=0; _one:=11; _two:=12;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12); endchar;
+
+lhchar "Italic Cyrillic letter u_uml - u umlaut";
+cyrchar(u_uml,if monospace:8.5u# else:9u#fi,lc_trema_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14); endchar;
+
+lhchar "Italic Cyrillic letter u_dac - u double acute";
+cyrchar_twice(u_dac,if monospace:8.5u# else:9u#fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0);
+% ital_u;
+pickup fine.nib; interim superness:=more_super;
+x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace: pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else: x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+% the accent
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Italic Cyrillic letter ch_uml - che umlaut";
+cyrchar(ch_uml,9.5u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); full_h:=h; h:=x_height;
+% ital_ch;
+pickup fine.nib; interim superness:=more_super;
+x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% left shstem;
+if monospace:
+ pos0(vair,90); x0=good.x .5[0,x2]; top y0l=h; y2=2/3h; pos2(stem,0);
+ filldraw stroke z2e{u,x_height}...{left}z0e; % terminal
+else:
+ x0=0; hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+bot y4r=.75bar_height; y5=.75h; y3=min(y2-eps,.7[y4,y5]); y6+.5stem=h;
+filldraw stroke z2'e...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Italic Cyrillic letter ery_uml - ery umlaut";
+cyrchar(ery_uml,8u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-2u#,2.5u# else:0,4u# fi);
+h:=x_height;
+% ital_ery;
+pickup tiny.nib; pos2(stem,0); y2=.6bar_height;
+if monospace: x1=x2; pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x1=x2+.25u; x0'=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0',a,1)(skewed); fi % opening hook
+pickup fine.nib; pos1'(stem,-180); pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z1'=z1; z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke z1'e{-u,-x_height}...pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+% I
+w:=w+4u;
+pos6(stem,0); y6+.5stem=h; rt x6r=hround(w-2.5u+.5stem); x7=x6;
+if monospace: pos9(vair,90); x9=good.x .5[x6,w]; bot y9l=0; y7=1/3h;
+ pos7(stem,0); filldraw stroke z7e{down}...{right}z9e; % terminal
+else: x9=w; hook_out(7,8,9); fi % opening hook
+filldraw circ_stroke z6e--z7e; % stem
+% the accent
+lowercase_umlaut(0,0, 11,12,13,14);
+penlabels(0,1,1',2,3,4,5,6,7,8,9,10, 11,12,13,14); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgunicl.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgunicl.mf
new file mode 100644
index 00000000000..608af0c5109
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgunicl.mf
@@ -0,0 +1,949 @@
+%
+% lgunicl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase non-T2 Cyrillic letters included in Unicode
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in Unicode
+%
+% gje "53 Ghe with acute
+% kje "5c Ka with acute
+% zh_brv "c2 Zhe with breve
+% a_brv "d1 A with breve
+% a_uml "d3 A with umlaut
+% e_brv "d7 E with breve
+% schwa_uml "db Schwa with umlaut
+% zh_uml "dd Zhe with umlaut
+% z_uml "df Ze with umlaut
+% i_bar "e3 I with macrn (bar)
+% i_uml "e5 I with umlaut
+% o_uml "e7 O with umlaut
+% otld_uml "e8 O tilded with umlaut
+% u_bar "ef U with macron (bar)
+% u_uml "f1 U with umlaut
+% u_dac "f3 U with double acute
+% ch_uml "f5 Che with umlaut
+% ery_uml "f9 Ery with umlaut
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Cyrillic letter gje (g acute)";
+cyrchar_twice(gje,8u#-.5width_adj#,x_height#,0);
+italcorr x_height#*slant-beak_jut#+.25u#; %Gamma->x_height+.5u#
+adjust_fit(serif_fit#if monospace:+\\.5u#,.5u#+ else:,fi\\ -.25u#);
+begingroup
+% lower_g;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround (2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(Vround(vair-vair_corr),90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.45u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); fi % lower serif
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter kje (k acute) (`roman')";
+cyrchar_twice(kje,if serifs:10u# else:9.5u# fi % zhk_width: n_width;keng_width
+ ,x_height#,0); % +acc_height#
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); full_h:=h; h:=x_height;
+begingroup
+% lowerr_k;
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi% lower stem serif
+% k_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+%%
+if serifs: numeric inner_jut,up_inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+%%%%%
+endgroup;
+% the accent
+hpos_corr=-u; put_accent; repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter zh_brv - zhe breve (`roman')";
+cyrchar(zh_brv,if serifs:10u# else:9.5u# fi % zhk_width: n_width;keng_width
+ ,x_height#+acc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(w#-5u#+ %zhr_adj
+ if monospace: 0,0 else:serif_fit#,serif_fit# fi); %wlett_adj
+full_h:=h; h:=x_height;
+% lowerr_zh;
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+if odd((r-l)-stem0): change_width; fi % symmetric & all three equal
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi% lower stem serif
+% k_rbowl;zh%mono:+.25u
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=hround(r-letter_fit-.7u-right_jut if monospace:+.25u fi)+eps; %!!!
+rt x6r=hround(r-letter_fit-.3u-right_jut if monospace:+.25u fi)+eps; %!!!
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+%%
+if serifs:
+ numeric inner_jut,up_inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+% mirror
+forsuffixes $ = 3'r,3,3'l,4r,4,4l,5l,5,5r,6'l,6,6'r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+fill z.m5l--diag_end(.m5l,.m6'l,.5,1,.m6'r,.m5r)--z.m5r--cycle; % lower diagonal
+%%
+if serifs:
+ penpos7(alpha1*(stem1-tiny),0); penpos8(whatever,-90);
+ penpos10(alpha2*(stem2-tiny),0);
+ z7=z.m3; z8=z.m4; z9l=z.m5r; z9=z.m5; z9r=z.m5l; z10=z.m6;
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(7,8,i,1/2,right_jut,j,2/3,up_inner_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(10,9,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+% the accent
+h:=full_h; lowercase_breve(x1,0, 17,18,19);
+penlabels(1,2,3,4,5,6, 7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter a_brv - a breve";
+cyrchar(a_brv,9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+full_h:=h; h:=x_height;
+% lower_a;
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l; (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+%%%%%
+% the accent
+h:=full_h; lowercase_breve(.5w,0, 14,15,16);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13, 14,15,16); endchar;
+
+lhchar "Lowercase Cyrillic letter a_uml - a umlaut";
+cyrchar(a_uml,9u#,lc_trema_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+full_h:=h; h:=x_height;
+% lower_a;
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l; (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 14,15,16,17);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13, 14,15,16,17); endchar;
+
+lhchar "Lowercase Cyrillic letter e_brv - e breve";
+cyrchar(e_brv,7.25u#+max(.75u#,.5curve#),x_height#+acc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi); full_h:=h; h:=x_height;
+% lower_e;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs:
+ pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else:
+ pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+% the accent
+h:=full_h; lowercase_breve(.5w,0, 6,7,8);
+penlabels(0,1,2,3,4,5); endchar;
+
+lhchar "Lowercase Cyrillic letter schwa_uml - schwa umlaut";
+cyrchar(schwa_uml,8.25u#,lc_trema_height#,0); %erev
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi); full_h:=h; h:=x_height;
+% lower_schwa;
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,-180); pos2(vair',-90); pos3(left_curve,0);
+set_bar_axis; bot y2r=-oo; y0l=top y1=h-y1.bh;
+lft x1r=hround max(.5u,u-.5right_curve);
+rt x3r=hround min(w-.5u,w-1.25u+.5left_curve); x2=.5w-.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; top y4r=h+oo; x4=x2;% if not serifs:-.25u fi;
+if serifs:
+ pos4(vair,90); pos5(hair,180);
+ y5=min(bar_height+.25flare+2vair'+2,.9[bar_height,h]-.75flare); %z
+ lft x5r=hround(lft x1r+1/3u)+eps;
+ (x,y4l)=whatever[z4r,z5]; x4l:=max(x,x4l-.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4); % left bowl, arc,
+ pickup fine.nib; pos4'(vair,90); z4'=z4; x4'r:=x4r;
+ filldraw stroke z4'e{left}...{x5-x4,5(y5-y4)}z5e; % and terminal
+ path upper_arc; upper_arc=z5{x4-x5,5(y4-y5)}..z4{right};
+ pos6(.3[fine.breadth,hair],180); x6r=x5r; top y6=h+oo;
+ x5'-x5r=2curve-fine; y5'=y5;
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z5'));
+ filldraw z5r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pos4(vair,90);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,90); z4=z4'; pos5(4/7[vair',flare],100);
+ lft x5r=hround(tiny.lft x1r+2/3u)+eps;
+ top y5r=vround min(top y4r,max(.82[bar_height,top y4r],
+ y2.bh+.5(y2.bh-y1.bh)-4/7[vair',flare]*sind 280+eps));
+ filldraw stroke term.e(4',5,left,.8,4); fi % terminal
+pickup tiny.nib; path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'l=y0l; x1'l=x1'r=x1; y1'r=y0r=y0l-.6[thin_join,vair];%y1.bh;
+forsuffixes $=l,r:
+x0$=xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 7,8,9,10);
+penlabels(0,1,2,3,4,5,5'); endchar;
+
+iff not specific:%
+lhchar "Lowercase Cyrillic letter zh_uml - zhe umlaut (`roman')";
+cyrchar(zh_uml,if serifs:10u# else:9.5u# fi % zhk_width: n_width;keng_width
+ ,lc_trema_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(w#-5u#+ %zhr_adj
+ if monospace: 0,0 else:serif_fit#,serif_fit# fi); %wlett_adj
+full_h:=h; h:=x_height;
+% lowerr_zh;
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+if odd((r-l)-stem0): change_width; fi % symmetric & all three equal
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi% lower stem serif
+% k_rbowl;zh%monospace:+.25u
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=hround(r-letter_fit-.7u-right_jut if monospace:+.25u fi)+eps; %!!!
+rt x6r=hround(r-letter_fit-.3u-right_jut if monospace:+.25u fi)+eps; %!!!
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+%%
+if serifs: numeric inner_jut,up_inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+% mirror
+forsuffixes $ = 3'r,3,3'l,4r,4,4l,5l,5,5r,6'l,6,6'r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+fill z.m5l--diag_end(.m5l,.m6'l,.5,1,.m6'r,.m5r)--z.m5r--cycle; % lower diagonal
+%%
+if serifs: penpos7(alpha1*(stem1-tiny),0); penpos8(whatever,-90);
+ penpos10(alpha2*(stem2-tiny),0);
+ z7=z.m3; z8=z.m4; z9l=z.m5r; z9=z.m5; z9r=z.m5l; z10=z.m6;
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(7,8,i,1/2,right_jut,j,2/3,up_inner_jut)(dark); % upper diagonal serif
+ slab:=vair; % lower.slab
+ dish_serif(10,9,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut((x1-.5w),0, 17,18,19,20);
+penlabels(1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Lowercase Cyrillic letter z_uml - ze umlaut";
+cyrchar(z_uml,8u#,lc_trema_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.65u#,+.1u#); %p+.2u#
+adjust_fit(if monospace: .5u#,.5u# else:0,0 fi); full_h:=h; h:=x_height;
+% lower_z;
+set_bar_axis; y4l=y5r=y6r=y2.bh; y6l=y5l=y4r=y1.bh; y6=y0.bh;
+pickup fine.nib; numeric right_curve;
+if serifs: right_curve=curve-stem_corr; else: right_curve=curve-3stem_corr; fi
+penpos2(vair,90); penpos3(max(vair+stem_corr,right_curve-stem_corr),0);
+penpos7(max(vair'+stem_corr,right_curve),0); penpos8(vair',-90);
+y2r=vround(h+1.5oo); x2=x6l=x6r=x8=.5(w-u); x7r=hround(w-.6u);
+x3r=min(rt x7r-1,hround(w-.8u)); y3=.5[y4l,y2l]+eps; y8r=-oo;
+y7=.5[y6l,y8l]; x4l=x4r=1/3[x5l,x3l];
+if serifs:
+ pos1(hair,180); pos9(hair,-180);
+ lft x1r=lft x9r+.1u=hround.5u;
+ y1=min(y2.bh+flare-.25vair+eps,.9[bar_height,h]-.75flare);
+ y9=max(good.y(.5bar_height-.9),y8l+vair');
+else:
+ pos1(4/7[vair,flare],115); pos9(.6[vair',flare],-115);
+ lft x1r=good.x .6u; lft x9r=good.x .5u;
+ top y1r=vround .82[bar_height,y2r];
+ y9r=good.y(y9r+1/3bar_height-y9); y9l:=good.y y9l; x9l:=good.x x9l;
+fi
+lft x5l=lft x5r=hround (2.5u-.5)-eps;
+x4r:=max(x5r,x4r-u); x6r:=max(x5r,x6r-u);
+fill stroke
+ {{interim superness:=if serifs: more_super else: hein_super fi;
+ super_arc.e(2,3)}} & super_arc.e(3,4)..(x5e,y4e); % upper bowl
+{{interim superness:=more_super;
+ fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)}}; % lower bowl
+fill
+ z5r{left}
+ if bot y5r>top y5l:..(lft x5r,bot y5r)---(lft x5l,top y5l)..
+ else: ... fi
+ {right}z5l--cycle; % bar point
+pos2'(vair,90); z2'=z2; pos8'(vair',-90); z8'=z8;
+if serifs:
+ filldraw stroke z1e{x2-x1,7(y2-y1)}....{right}z2'e; % upper arc
+ {{interim superness:=more_super;
+ filldraw stroke super_arc.e(8',9)}}; % lower arc
+else:
+ filldraw stroke term.e(2',1,left,.8,4); % upper terminal
+ forsuffixes e=l,r: path p.e; p.e=z8'e{left}..tension .9 and 1..z9e;
+ if angle direction 1 of p.e<105:
+ p.e:=z8'e{left}..tension atleast.9 and 1..{dir 105}z9e; fi endfor
+ filldraw stroke p.e; % lower arc
+fi
+if serifs:
+ path upper_arc; upper_arc=z1{x2-x1,7(y2-y1)}....{right}z2;
+ pos10(.3[fine.breadth,hair],0); x10l=x1r; top y10=vround(h+1.5oo);
+ x1'-x1l=1.5curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z10r--z1'));
+ filldraw z1r--z10l--z10r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+lhchar "Lowercase Cyrillic letter i_bar - i bar (macron)";
+cyrchar(i_bar,10u# if not serifs:+.5width_adj# fi, % n_width
+ lc_trema_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#); full_h:=h; h:=x_height;
+% lower_i;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-2stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(vair'+eps); y6=vround(h-vair-eps);
+ alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l);
+ penpos5(min(2fudged.stem,alpha1*stem1),0);
+ penpos6(min(2fudged.stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else:
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ y5l=vround(y2+bracket+eps); y6r=vround(y3-bracket-eps);
+ stem1=max(tiny.breadth,fudged.hair-2stem_corr);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+h:=full_h;
+% low_bar(.5w,0, 7,8);
+x_move:=.5w; y_move:=0; _one:=7; _two:=8;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Lowercase Cyrillic letter i_uml - i umlaut";
+cyrchar(i_uml,10u# if not serifs:+.5width_adj# fi, % n_width
+ lc_trema_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#); full_h:=h; h:=x_height;
+% lower_i;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-2stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(vair'+eps); y6=vround(h-vair-eps);
+ alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l);
+ penpos5(min(2fudged.stem,alpha1*stem1),0);
+ penpos6(min(2fudged.stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else:
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ y5l=vround(y2+bracket+eps); y6r=vround(y3-bracket-eps);
+ stem1=max(tiny.breadth,fudged.hair-2stem_corr);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 7,8,9,10);
+penlabels(1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Lowercase Cyrillic letter o_uml - o umlaut";
+cyrchar(o_uml,9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+full_h:=h; h:=x_height;
+% lower_o;
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 5,6,7,8);
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter otld_uml - o tilded umlaut";
+cyrchar(otld_uml,9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+full_h:=h; h:=x_height;
+% lower_o;tld
+penpos1(vair,90); penpos3(vair',-90); penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+%%%
+% oltilde;
+if (serifs=true) and (bar#<=.5curve#):
+ numeric bar[];
+ set_bar_axis;
+ x5r=x2l; x6r=x4l;
+ y5r=y6r=y2.bh; y5l=y6l=y1.bh; x5r=x5l; x6l=x6r;
+ bar2=2/3[bar,fudged.stem];
+ penpos7(bar2,45); z7=.5[z5l,z6l];
+ fill stroke z6e{-2,-1}..{-2,1}z7e..{-2,-1}z5e;
+else:
+ bar_stroke(x2,x4);
+fi
+%%%%%
+h:=full_h; lowercase_umlaut(0,0, 8,9,10,11);
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Cyrillic letter u_bar - u bar (macron)";
+cyrchar(u_bar,if serifs:9.5u# else:9u# fi,
+ lc_trema_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+full_h:=h; h:=x_height;
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+% the accent
+h:=full_h;
+% low_bar(.5[x1,x4],0, 10,11);
+x_move:=.5[x1,x4]; y_move:=0; _one:=10; _two:=11;
+pickup if serifs: crisp.nib else: fine.nib fi;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.5u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=lc_trema_height+o;
+x[_two]=x_move-hround(2.5u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+lhchar "Lowercase Cyrillic letter u_uml - u umlaut";
+cyrchar(u_uml,if serifs:9.5u# else:9u# fi,
+ lc_trema_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+full_h:=h; h:=x_height;
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut((.5[x1,x4]-.5w),0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Lowercase Cyrillic letter u_dac - u double acute";
+cyrchar_twice(u_dac,if serifs:9.5u# else:9u# fi,
+ x_height#,desc_depth#); % eng
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+begingroup
+% lower_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr; right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi); outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2:
+ x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else:
+ alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut:
+ y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs:
+ numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else:
+ penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+%%%%%
+endgroup;
+% the accent
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Cyrillic letter ch_uml - che umlaut";
+cyrchar(ch_uml,10u# if not serifs:
+ +.5width_adj# fi,lc_trema_height#,0); % n_width
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(serif_fit#,serif_fit#); full_h:=h; h:=x_height;
+% lower_ch;
+pickup tiny.nib;
+numeric middle_weight; middle_weight=.6[thin_join,vair];
+pos1(fudged.stem,0); pos2(fudged.stem,0);
+pos3(fudged.stem,0); pos4(fudged.stem,0);
+penpos2'(fudged.stem,0); z2'=z2;
+penpos5(middle_weight,90); penpos6(middle_weight,90);
+penpos6'(middle_weight,90);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem-eps); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0; x5l=1/3[x1,x3];
+y6l=vround(.48h-.5middle_weight if serifs:-.15(.5[hair,.7stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+y5l=y6l; x6=x6'=x3;
+if serifs: y6'l=min(3/5h,y6l-hair+1.05stem); fi
+if serifs:
+ if ((y6'l-y6l)>=middle_weight+1+eps):
+ fill stroke z2'e{down}..z5e{right}...{.75(z5-z6)+z6'}z6'e; % arc
+ else:
+ fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ slab:=vair; % lower.slab
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+else: fill stroke pulled_arc.e(2',5) & z5e{right}...{right}z6e; fi % arc
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 7,8,9,10);
+penlabels(1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Lowercase Cyrillic letter ery_uml - ery umlaut";
+cyrchar(ery_uml,9u#,lc_trema_height#,0); % v_witdh
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if monospace: 0,0 else: serif_fit#,serif_fit# fi %wlett_adj
+ +4u#);
+full_h:=h; h:=x_height;
+% lower_ery;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem-eps); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+save slab; % lower.slab
+if serifs:
+ slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% I
+w:=w+4u; rt x8r=rt x9r=w-lft x1l; top y8=h; bot y9=0;
+pos8(fudged.stem,0); pos9(fudged.stem,0);
+filldraw stroke z8e--z9e; % stem
+if serifs: slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(8,9,e,1/3,jut,f,1/3,jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(9,8,g,1/3,jut,h,1/3,jut); fi % lower serif
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 10,11,12,13);
+penlabels(1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lgunicu.mf b/Master/texmf-dist/fonts/source/lh/nont2/lgunicu.mf
new file mode 100644
index 00000000000..b0348bb9d25
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lgunicu.mf
@@ -0,0 +1,881 @@
+%
+% lgunicu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase non-T2 Cyrillic letters included in Unicode
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames and their codes in Unicode
+%
+% GJE "03 Ghe with acute
+% KJE "0c Ka with acute
+% ZH_brv "c1 Zhe with breve
+% A_brv "d0 A with breve
+% A_uml "d2 A with umlaut
+% E_brv "d6 E with breve
+% SCHWA_uml "da Schwa with umlaut
+% ZH_uml "dc Zhe with umlaut
+% Z_uml "de Ze with umlaut
+% I_bar "e2 I with macrn (bar)
+% I_uml "e4 I with umlaut
+% O_uml "e6 O with umlaut
+% OTLD_uml "e8 O tilded with umlaut
+% U_bar "ee U with macron (bar)
+% U_uml "f0 U with umlaut
+% U_dac "f2 U with double acute
+% CH_uml "f4 Che with umlaut
+% ERY_uml "f8 Ery with umlaut
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Uppercase Cyrillic letter GJE (G acute)";
+cyrchar_twice(GJE,if monospace: 9u# else: 11u# fi-width_adj#, %G_width
+ cap_height#,0); %+acc_height#
+if is_small_cap: getcharcode(gje); fi
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0); full_h:=h; h:=cap_height;
+% upper_g;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u ,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter KJE (K acute) (`roman')";
+cyrchar_twice(KJE,13.5u#,cap_height#,0); % N_width %+acc_height#
+if is_small_cap: getcharcode(kje); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upperr_k;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_rbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut);
+rt x6r=hround(r-letter_fit-.75u-right_jut);
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+numeric inner_jut,up_inner_jut;
+%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+%%%%%
+% the accent
+put_accent(cyrcaph); repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+iff not concrete:%
+iff not specific:%
+lhchar "Uppercase Cyrillic letter ZH_brv - ZHE breve (`roman')";
+cyrchar(ZH_brv,13.5u#,cap_height#+acc_height#,0); % N_width
+if is_small_cap: getcharcode(zh_brv); fi
+italcorr cap_height#*slant-.5u#; %K
+adjust_fit(w#-2max(2u#+.5fudged.cap_stem#,3u#)+\\ %ZHr_adj
+ if monospace: 0,0 else: cap_serif_fit#,cap_serif_fit# fi); %uwlett_adj
+full_h:=h; h:=cap_height;
+% upperr_zh;
+if odd((r-l)-fudged.cap_stem): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.cap_stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_rbowl;zh%mono:+.75u
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut if monospace:+.75u fi); %!!!
+rt x6r=hround(r-letter_fit-.75u-right_jut if monospace:+.75u fi); %!!!
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+numeric inner_jut,up_inner_jut;
+%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+% mirror
+forsuffixes $ = 3r,3,3l,3'r,3'l,4r,4,4l,5l,5,5r,6l,6,6r,6'l,6'r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+fill z.m5l--diag_end(.m5l,.m6'l,.5,1,.m6'r,.m5r)--z.m5r--cycle; % lower diagonal
+%%
+if serifs: penpos7(alpha1*(stem1-tiny),0); penpos8(whatever,-90);
+ penpos10(alpha2*(stem2-tiny),0);
+ z7=z.m3; z8=z.m4; z9l=z.m5r; z9=z.m5; z9r=z.m5l; z10=z.m6;
+ dish_serif(7,8,i,1/2,right_jut,j,2/3,up_inner_jut)(dark); % upper diagonal serif
+ dish_serif(10,9,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+% the accent
+h:=full_h; uppercase_breve(x1,0, 17,18,19);
+penlabels(1,2,3,4,5,6, 7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter A_brv - A breve";
+cyrchar(A_brv,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(a_brv); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_a;
+numeric left_stem,right_stem,outer_jut,alpha; outer_jut=.8cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.5u;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+% the accent
+h:=full_h; uppercase_breve(x2,o, 7,8,9);
+penlabels(0,1,2,3,4,5,6, 7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter A_uml - A umlaut";
+cyrchar(A_uml,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(a_uml); fi
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_a;
+numeric left_stem,right_stem,outer_jut,alpha; outer_jut=.8cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.5u;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+% the accent
+h:=full_h; uppercase_umlaut(0,0, 7,8,9,10);
+penlabels(0,1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter E_brv - E breve";
+cyrchar(E_brv,12u#-width_adj#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(e_brv); fi
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0); full_h:=h; h:=cap_height;
+% upper_e;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+%%%%%
+% the accent
+h:=full_h; x10=.5[lft x1l-.5cap_jut,rt x4r-beak_jut];
+uppercase_breve(x10,0, 11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Uppercase Cyrillic letter SCHWA_uml - SCHWA umlaut";
+cyrchar(SCHWA_uml,if serifs:13u# else:12u# fi,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(schwa_uml); fi
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0 if monospace: +\\-.25u#,-.25u#+ else:,fi\\ 0);
+full_h:=h; h:=cap_height;
+% upper_schwa;`large e' shape (ecfonts)
+numeric left_curve,right_curve;
+left_curve=right_curve+3stem_corr=cap_curve if not serifs: -1.5stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib;
+pos1(right_curve,-180); pos2(vair',-90); pos3(left_curve,0);
+y1=.48h; bot y2r=-o; y0l=top y1;
+if serifs: x2-.25u=x4=.5w-.5u; else: x2=x4=.5w-.25u; fi
+lft x1r=hround max(.5u,u-.5right_curve);
+rt x3r=w-hround max(.75u,1.5u-.5left_curve); %lower_e+.25u
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; top y4r=h+o;
+if serifs:
+ pos4(cap_band,90);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4); % left bowl, arc,
+ pickup fine.nib; pos4'(cap_band,90); z4'=z4;
+ lft x5r=max(hround u,lft x1r+1/3u+eps);
+ pos5(cap_hair,180); bot y5=min(vround .675h,bot y4l-eps);
+ filldraw stroke z4'e{left}...{x5-x4,10(y5-y4)}z5e; % and terminal
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x5r; top y6=h+o;
+ x5'-x5r=2cap_curve-fine; y5'=y5;
+ path upper_arc; upper_arc=z5{x4-x5,10(y4-y5)}..{right}z4;
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z5'));
+ filldraw z5r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % upper serif
+else:
+ pos4(slab,90);
+ {{interim superness:=min(1.03superness,more_super);
+ filldraw stroke super_arc.e(2,3)}};
+ filldraw stroke super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(slab,90); z4=z4';
+ pos5(1.2flare,100); lft x5r=lft x1r+u; top y5r=vround .95h+o;
+ filldraw stroke rterm.e(4',5,left,.75,20); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l-7/8[thin_join,vair']; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r: x0$=xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut(0,0, 7,8,9,10);
+penlabels(0,1,2,3,4,5,6, 7,8,9,10); endchar;
+
+iff not specific:%
+lhchar "Uppercase Cyrillic letter ZH_uml - ZHE umlaut (`roman')";
+cyrchar(ZH_uml,13.5u#,cap_height#+acc_height#,0); % N_width
+if is_small_cap: getcharcode(zh_uml); fi
+italcorr cap_height#*slant-.5u#; %K
+adjust_fit(w#-2max(2u#+.5fudged.cap_stem#,3u#)+\\ %ZHr_adj
+ if monospace: 0,0 else: cap_serif_fit#,cap_serif_fit# fi); %uwlett_adj
+full_h:=h; h:=cap_height;
+% upperr_zh;
+if odd((r-l)-fudged.cap_stem): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.cap_stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_rbowl;zh%mono:+.75u
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut if monospace:+.75u fi); %!!!
+rt x6r=hround(r-letter_fit-.75u-right_jut if monospace:+.75u fi); %!!!
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+numeric inner_jut,up_inner_jut;
+%%
+if serifs:
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); fi % lower diagonal serif
+%%%
+% mirror
+forsuffixes $ = 3r,3,3l,3'r,3'l,4r,4,4l,5l,5,5r,6l,6,6r,6'l,6'r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+fill z.m5l--diag_end(.m5l,.m6'l,.5,1,.m6'r,.m5r)--z.m5r--cycle; % lower diagonal
+%%
+if serifs: penpos7(alpha1*(stem1-tiny),0); penpos8(whatever,-90);
+ penpos10(alpha2*(stem2-tiny),0);
+ z7=z.m3; z8=z.m4; z9l=z.m5r; z9=z.m5; z9r=z.m5l; z10=z.m6;
+ dish_serif(7,8,i,1/2,right_jut,j,2/3,up_inner_jut)(dark); % upper diagonal serif
+ dish_serif(10,9,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi % lower diagonal serif
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut((x1-.5w),0, 17,18,19,20);
+penlabels(1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter Z_uml - ZE umlaut";
+cyrchar(Z_uml,11u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(z_uml); fi
+italcorr .75cap_height#*slant-.5u#; %B
+adjust_fit(if monospace: .35u#,.25u# else: 0,0 fi); full_h:=h; h:=cap_height;
+% upper_z;
+pickup fine.nib; numeric right_curve,middle_weight;
+middle_weight=max(fine.breadth,.6vair+.5);
+pos2(cap_band,90); pos8(cap_band,-90);
+if serifs:
+ right_curve=cap_curve-stem_corr;
+ pos1(cap_hair,180); pos9(cap_hair,-180); y1=.4[y5l,y2l];
+else:
+ right_curve=cap_curve-3stem_corr;
+ pos1(1.1flare,120); pos9(flare,-120);
+ top y1r=vround 7/8h+o; bot y9r=vround 1/7h-o; fi
+pos4(middle_weight,-90); pos5(middle_weight,-90);
+pos6(middle_weight,90); pos5'(middle_weight,90);
+pos3(max(fine.breadth,right_curve-stem_corr),0);
+pos7(max(fine.breadth,right_curve),0);
+top y2r=h+o; bot y8r=-o;
+x2=x6=x8=.5[1.5u,x7]; rt x7r=hround(w-.75u); rt x3r=hround(w-1.25u);
+lft x5=lft x5'=min(hround 3.5u,lft x6)+eps;
+y3=.5[y4l,y2l]; y7=.5[y6l,y8l]; x4=1/3[x5,x3l]; y4=y5; y5'=y6;
+lft x1r=hround 1.1u; lft x9r=hround.9u;
+top y5l-bot y5'l=vair; .5[y5l,y5'l]=.52h;
+if serifs: y9=max(.52[top y8l,bot y5'l],y7+1);
+ else: y9l:=good.y y9l; x9l:=good.x x9l; fi
+filldraw stroke {{if not serifs:interim superness:=hein_super; fi
+ super_arc.e(2,3)}} & super_arc.e(3,4)..z5e; % upper bowl
+filldraw stroke z5'e..super_arc.e(6,7) & super_arc.e(7,8); % lower bowl
+if serifs:
+ filldraw stroke z1e{x2-x1,15(y2-y1)}....{right}z2e; % upper arc
+ filldraw stroke
+ {{interim superness:=more_super; super_arc.e(8,9)}}; % lower arc
+else:
+ filldraw stroke rterm.e(2,1,left,.9,4); % upper arc
+ filldraw stroke term.e(8,9,left,.8,4); % lower arc
+fi
+if serifs:
+ path upper_arc; upper_arc=z1{x2-x1,15(y2-y1)}....{right}z2;
+ pos10(.3[fine.breadth,cap_hair],0); x10l=x1r; top y10=h+o;
+ x1'-x1l=2cap_curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z10r--z1'));
+ filldraw z1r--z10l--z10r--subpath(t,0) of upper_arc--cycle; fi % upper serif
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut(0,0, 11,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9,10, 11,12,13,14); endchar;
+
+lhchar "Uppercase Cyrillic letter I_bar - I bar (macron)";
+cyrchar(I_bar,13.5u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(i_bar); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_i;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(slab+eps); y6=vround(h-slab-eps);
+ alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l);
+ penpos5(min(2fudged.cap_stem,alpha1*stem1),0);
+ penpos6(min(2fudged.cap_stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: y5l=y2+bracket+eps; y6r=y3-bracket-eps;
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ stem1=max(tiny.breadth,fudged.hair);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+% the accent
+h:=full_h;
+% up_bar(.5w,0, 7,8);
+x_move:=.5w; y_move:=0; _one:=7; _two:=8;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(1,2,3,4,5,6, 7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter I_uml - I umlaut";
+cyrchar(I_uml,13.5u#,cap_height#+acc_height#,0); % N_width
+if is_small_cap: getcharcode(i_uml); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_i;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+pos3(fudged.cap_stem,0); pos4(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+numeric stem[],alpha[];
+if hefty: numeric upper_notch,lower_notch;
+ stem1=fudged.hair-stem_corr;
+ upper_notch=y6-cap_notch_cut-eps; lower_notch=y5+cap_notch_cut+eps;
+ if monospace:
+ x5r =rt x1r; x6l =lft x3l; y5=vround(slab+eps); y6=vround(h-slab-eps);
+ alpha1=diag_ratio(1,stem1,y5-y6,x5r-x6l);
+ penpos5(min(2fudged.cap_stem,alpha1*stem1),0);
+ penpos6(min(2fudged.cap_stem,alpha1*stem1),0);
+ x5'=lft x1l; z5'=whatever[z5l,z6l]; x6'=rt x4r; z6'=whatever[z5r,z6r];
+ x5l:=x5'; x6r:=x6'; y5l:=y5'; y6r:=y6';
+ else:
+ y5l=0; y6r=h; x5=x1r; x6=x3l; penpos5(stem1,0); penpos6(stem1,0);
+ fi
+ x2'=rt x1r; z2'=whatever[z5l,z6l]; x3'=lft x4l; z3'=whatever[z5r,z6r];
+ fill z5l..
+ if y2'>lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'<upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: y5l=y2+bracket+eps; y6r=y3-bracket-eps;
+ x5=hround (rt x1r-.5)-eps; x6=hround (lft x3l+.5)+eps;
+ stem1=max(tiny.breadth,fudged.hair);
+ alpha1=diag_ratio(1,stem1,x6-x5,top y6r-bot y5l);
+ penpos5(alpha1*stem1,90); penpos6(alpha1*stem1,90);
+ fill stroke z5e--z6e; fi % diagonal
+%%%
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut(0,0, 7,8,9,10);
+penlabels(1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter O_uml - O umlaut";
+cyrchar(O_uml,14u#-width_adj#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(o_uml); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+% upper_o;
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut(0,0, 5,6,7,8);
+penlabels(1,2,3,4, 5,6,7,8); endchar;
+
+lhchar "Uppercase Cyrillic letter OTLD_uml - O tilded umlaut";
+cyrchar(OTLD_uml,14u#-width_adj#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(otld_uml); fi
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0); full_h:=h; h:=cap_height;
+% upper_o;tld
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+%%%%%
+% outilde;
+z5=z2l; z6=z4l; penpos5(cap_bar,90); penpos6(cap_bar,90);
+if (serifs) and (bar#<=.5curve#): numeric bar[];
+ bar2=2/3[cap_bar,fudged.cap_stem]; penpos7(bar2,45); z7=.5[z5,z6];
+ fill stroke z5e{2,1}..{2,-1}z7e..{2,1}z6e;
+else: fill stroke z5e--z6e; fi
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut(0,0, 8,9,10,11);
+penlabels(1,2,3,4,5,6,7, 8,9,10,11); endchar;
+
+lhchar "Uppercase Cyrillic letter U_bar - U bar (macron)";
+cyrchar(U_bar,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(u_bar); fi
+italcorr x_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+% the accent
+h:=full_h;
+% up_bar(.5[x1,x4],0, 10,11);
+x_move:=.5[x1,x4]; y_move:=0; _one:=10; _two:=11;
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos[_one](macron_breadth,90); pos[_two](macron_breadth,90);
+x[_one]=x_move+hround(2.75u if monospace:/expansion_factor fi+.5vair);
+top y[_one]r=top y[_two]r=vround(cap_height+dot_height#*hppp);
+x[_two]=x_move-hround(2.75u if monospace:/expansion_factor fi+.5vair);
+filldraw stroke z[_one]e--z[_two]e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11); endchar;
+
+lhchar "Uppercase Cyrillic letter U_uml - U umlaut";
+cyrchar(U_uml,13u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(u_uml); fi
+italcorr x_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut((.5[x1,x4]-.5w),0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+lhchar "Uppercase Cyrillic letter U_dac - U double acute";
+cyrchar_twice(U_dac,13u#,cap_height#,0);
+if is_small_cap: getcharcode(u_dac); fi
+italcorr x_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upper_u;
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+bot_vair=Vround(if serifs:.5[vair',bot_stem] else:slab fi);
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; % W jut
+y1=y4r=h; x2l=x3l;
+if monospace: y2=y3=.3h; else: y2=y3=max(if not serifs:1.095 fi stem,1/6h); fi
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=-o;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-2apex_corr);
+numeric u_ratio; u_ratio=(y3-y9)/(y1-y9);
+x2l-x1l=x4r-x3r+
+ if monospace: 2apex_corr else: if serifs: 2 fi (u_ratio*.5[x1l,x4r]) fi;
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z0'=whatever[rt z3r,rt z4r]; y0'=bot y6r=if serifs:-o else: 0 fi;
+penpos6(bot_vair,-90); x6r=if serifs:.6 else:.5 fi[x3r,x1];
+numeric t; t=if monospace: 1.25right_stem else: (x3r-x0')++(y3r-y0') fi;
+penpos5(bot_vair,.5[angle(z4r-z6r),angle(z4r-z3r)]-90);
+path p; numeric tau; p=z0r{z3r-z4r}....{left}z6r;
+z5r=p intersectionpoint ((0,y2l-.5bot_vair)--(w,y2l-.5bot_vair));
+tau=xpart(p intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2:
+ y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,tau) of p--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0l+.5left--cycle; % left and right diagonals
+else:
+ fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,tau) of p
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; % left and right diagonals
+fi
+fill p--z6l{right}...{-direction tau of p}
+ if x5l>x2l: z2l else: z5l fi..{z4r-z3r}z0l--cycle;
+pickup fine.nib;
+if serifs:
+ numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+ pos6'(bot_vair,-90); z6'=z6; pos7(hair,-180); pos8(bulb_diam,-180);
+ y8=1/6h; z7r=z8r; lft x8r=x1;
+ cyrbulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else:
+ top z6'l=z6l; bot z6'r=z6r;
+ pos7(bot_vair,-90); lft x7l=max(3.5u,rt x6r-t); bot y7r=bot y6'r;
+ filldraw stroke z6'e--z7e; fi % arc
+%%%%%
+% the accent
+if monospace: hpos_corr=-2.5u; put_accent(cyrcaph);
+ hpos_corr=2.5u; put_accent(cyrcaph);
+else: hpos_corr=-1.5u; put_accent(cyrcaph);
+ hpos_corr=1.5u; put_accent(cyrcaph); fi
+repeat_once;
+penlabels(0,0',1,2,3,4,5,6,6',7,8,9); endchar;
+
+lhchar "Uppercase Cyrillic letter CH_uml - CHE umlaut";
+cyrchar(CH_uml,13.5u#,cap_height#+acc_height#,0);
+if is_small_cap: getcharcode(ch_uml); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); full_h:=h; h:=cap_height;
+% upper_ch;
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=.3[y6,h]; bot y4=0;
+x5l=1/3[x1,x3]; y5=y6; if serifs: y6'=y6-cap_hair+1.05cap_stem; fi
+x6=x6'=x3; y6=good.y (h-.52h if serifs: -.35(.5[cap_hair,.7cap_stem]) fi);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+clearpen; penpos2'(cap_stem,0); z2'=z2;
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos5(middle_weight,90); penpos6(middle_weight,90); penpos6'(middle_weight,90);
+if serifs: if((y6'-y6)>=middle_weight+1+eps):
+ fill stroke pulled_arc.e(2',5) & z5e{right}...{.75(z5-z6)+z6'}z6'e;
+ else: fill stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+ numeric inner_jut; pickup tiny.nib;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+%%%
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+else: filldraw stroke pulled_arc.e(2',5) & z5e--z6e; fi % arc
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut(0,0, 7,8,9,10);
+penlabels(1,2,3,4,5,6, 7,8,9,10); endchar;
+
+lhchar "Uppercase Cyrillic letter ERY_uml - ERY umlaut";
+cyrchar(ERY_uml,12.5u#,cap_height#+acc_height#,0); %V_width;
+if is_small_cap: getcharcode(ery_uml); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if monospace: 0,0 else: cap_serif_fit#,cap_serif_fit# fi %uwlett_adj
+ +4.5u#); %ERYadj
+full_h:=h; h:=cap_height;
+% upper_ery;
+numeric left_stem; left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+% usftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+pickup tiny.nib;
+penpos[_one](cap_bar,90);
+penpos[_three](cap_curve if hefty:-3stem_corr fi,0);
+penpos[_four](cap_band,-90); penpos[_five](cap_band,-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_four],y[_two]];
+x[_one]=x[_zero]r; x[_three]r=hround(w-u);
+if (serifs=false) or (cap_bar#>.5cap_curve#) or (cap_bar<3):
+ penpos[_two](cap_bar,90);
+ x[_four]=.5[x[_zero],w-if serifs:1.5u else:2.5u fi]+.5u;
+ y[_one]=y[_two]=.52h; x[_two]=x[_four];
+else: penpos[_two](1/18[cap_bar,cap_curve],90);
+ x[_four]=.5[x[_zero],w-1.5u]+.5u;
+ y[_one]l=y[_two]l-.35cap_bar=.52h-.5cap_bar;
+ x[_two]=x[_four]-.35u; fi
+x[_two]l:=x[_two]l-.5u; x[_four]l:=x[_four]l-.5u;
+fill stroke z[_five]e..super_arc.e([_four],[_three])
+ & super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+% I
+w:=w+4.5u; pickup tiny.nib; rt x8r=rt x9r=w-hround max(2u,3u-.5stem);
+top y8=h; bot y9=0; pos8(cap_stem,0); pos9(cap_stem,0);
+filldraw stroke z8e--z9e;
+if serifs: dish_serif(8,9,e,1/3,cap_jut,f,1/3,cap_jut);
+ dish_serif(9,8,g,1/3,cap_jut,h,1/3,cap_jut); fi
+%%%%%
+% the accent
+h:=full_h; uppercase_umlaut(0,0, 10,11,12,13);
+penlabels(1,2,3,4,5,6,7,8,9, 10,11,12,13); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/nont2/lhberest.mf b/Master/texmf-dist/fonts/source/lh/nont2/lhberest.mf
new file mode 100644
index 00000000000..e45502bf539
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/nont2/lhberest.mf
@@ -0,0 +1,73 @@
+%
+% lgberest.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% font for BERESTa.tex
+% (plain TEST.MF changed to input some miscelaneous letters)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% additional macros for ec compatible mode
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+if unknown cmbase: input cmbase fi %
+
+input lcyrbeg;
+
+LHver_check(3,4); % like |version_check| in ec
+
+string genmode; genmode="cm";
+
+let lhchar=\;
+
+ boolean inc_russian, inc_wncyr, non_russian,
+ inc_cyrupper, inc_cyrlower, inc_unicode,
+ inc_cyrother, inc_cyrold, inc_accents;
+ inc_russian := true; % include russian characters
+ inc_wncyr := true; % include russian characters
+ non_russian := true; % include nonrussian characters
+ inc_cyrupper := true; % include upper part from T2
+ inc_cyrlower := true; % include lower part from T2
+ inc_unicode := true; % include unicode
+ inc_cyrother := true; % include cyrillic letters outside T2
+ inc_cyrold := true; % include old slavonic letters
+ inc_accents := true; % include accended letters
+
+def LHver_check(expr e,f)= enddef;
+
+autocount:=1;
+def cyrchar(suffix $)(expr w_sharp,h_sharp,d_sharp) =
+ charcode:=charcode+1;
+ string t; t=str $; message ""; message "|def|CYR_"&(t);
+ beginchar(charcode,w_sharp,h_sharp,d_sharp); enddef;
+
+input lcyrdefs;
+
+def generate suffix t= enddef;
+
+input cmr10;
+
+mode_setup; font_setup; pseudo_setup;
+
+input lgbersta;
+message "";
+input lgberstb;
+message "";
+input lgberstc;
+message "";
+bye.
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/specific/lgcrusl.mf b/Master/texmf-dist/fonts/source/lh/specific/lgcrusl.mf
new file mode 100644
index 00000000000..2bb2225069f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/specific/lgcrusl.mf
@@ -0,0 +1,262 @@
+%
+% lgcrusl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% 6 Small Cap Russian letters - rather miscelaneous font
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% a
+% b
+% e
+% r
+% u
+% f
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+lhchar "Lowercase Russian letter a - Small Caps A";
+cyrchar(a,if serifs: 9.5u# else:9u# fi,x_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u;
+right_stem=fudged.stem-stem_corr;
+left_stem=min(fudged.hair if hefty:-2stem_corr fi,right_stem);
+y1=y4=0; x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+.5[apex_oo,apex_o];
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=.6[thin_join,vair];
+penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut,fit; fit=.5u+1; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+fit<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+fit=lft x4'l-inner_jut; fi
+ save slab; slab:=vair; % lower.slab
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % lower left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % lower right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Russian letter b - Small Caps B";
+cyrchar(b,9u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#if monospace:+\\.5u#,.5u#+else:,fi\\0);
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% lsftsn_bowl(2);
+_zero:=2;
+_one:=3; _two:=4; _three:=5; _four:=6; _five:=7;
+%
+set_bar_axis;
+penpos[_three](curve if hefty:-3stem_corr fi,0);
+penpos[_four](vair',-90); penpos[_five](vair',-90);
+z[_five]r=bot z[_zero]; y[_four]=y[_five];
+y[_three]=.5[y[_two]l,y[_four]l];
+y[_one]l=y[_two]l=y1.bh; y[_one]r=y[_two]r=y2.bh;
+x[_two]l=x[_two]r=x[_four]=w-3.75u; %.5v_width+.75u;
+x[_one]l=x[_one]r=x[_zero]; x[_three]r=hround(w-.6u);
+x[_two]l:=x[_four]l:=x[_two]r-.25curve;
+fill stroke
+ {{if not serifs: interim superness:=more_super; fi
+ z[_five]e..super_arc.e([_four],[_three])}} &
+ super_arc.e([_three],[_two])..z[_one]e; % lobe
+%%%
+if serifs: save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+ slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+% lower right beak
+pickup crisp.nib; pos8(vair,90); pos9(hair,0);
+top y8r=h; x8=x1; rt x9r=hround(w-1.25u); y9=good.y(y8l-beak/1.4)-eps;
+arm(8,9,e,beak_darkness,.4beak_jut); % upper arm and beak
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Russian letter e - Small Caps E";
+cyrchar(e,9u#if serifs:+width_adj#fi,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(serif_fit#,0);
+set_bar_axis; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(Vround(vair-vair_corr),90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak
+if serifs: pos6(hair,0); pos7(hair,0);
+ x5=x0=x5r=x0r=x5l=x0l=x1; x6=x7; y6-y5l=y0l-y7; top y5l=top y0r=y2.bh;
+ bot y5r=bot y0l=
+ y2.bh-if monospace: bar else: max(crisp.breadth+eps,.6[thin_join,vair]) fi;
+ rt x6r=hround(min(w-3u+.5hair,lft x4l-.5vair)); y6=good.y(y5l+.3beak)+eps;
+ rt x9r=hround(w-.5u);
+ arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+else: rt x9r=hround(w-.75u);
+ bar_stroke(x1,hround(w-1.5u)); fi
+pickup crisp.nib; pos8(vair,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+beak/1.2)+eps;
+arm(8,9,h,beak_darkness,.6beak_jut); % lower arm and beak
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut);% upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Russian letter yo - Small Caps YO";
+cyrchar(yo,9u#if serifs:+width_adj#fi,lc_trema_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(serif_fit#,0);
+set_bar_axis; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(vair,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak/1.4)-eps;
+arm(3,4,e,beak_darkness,.4beak_jut); % upper arm and beak
+if serifs: pos6(hair,0); pos7(hair,0);
+ x5=x0=x5r=x0r=x5l=x0l=x1; x6=x7; y6-y5l=y0l-y7; top y5l=top y0r=y2.bh;
+ bot y5r=bot y0l=
+ y2.bh-if monospace: bar else: max(crisp.breadth+eps,.6[thin_join,vair]) fi;
+ rt x6r=hround(min(w-3u+.5hair,lft x4l-.5vair)); y6=good.y(y5l+.3beak)+eps;
+ rt x9r=hround(w-.5u);
+ arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+else: rt x9r=hround(w-.75u);
+ bar_stroke(x1,hround(w-1.5u)); fi
+pickup crisp.nib; pos8(vair,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+beak/1.2)+eps;
+arm(8,9,h,beak_darkness,.6beak_jut); % lower arm and beak
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+%%%%%
+% the accent
+h:=full_h; lowercase_umlaut(0,0, 10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+lhchar "Lowercase Russian letter r - Small Caps R";
+cyrchar(r,9u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#); %p
+adjust_fit(serif_fit#if monospace:+\\.5u#,.5u#+else:,fi\\if serifs:0else:-.2u#fi);
+% kapitel_r;
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(curve if hefty:-3stem_corr fi,0);
+penpos6(vair',90); penpos7(vair',90);
+z7r=top z1; y6=y7; y5=.5[y4l,y6l];
+y0'=good.y (h-bar_height-eps);
+y3r=y4r=tiny.bot y0'; y3l=y4l=y3r+.6[thin_join,vair];
+x4l=x4r=x6=w-3.75u;
+x3l=x3r=x1; x5r=hround(w-.6u); x4l:=x6l:=x4r-.25curve;
+{{interim superness:=more_super;
+ fill stroke z7e..super_arc.e(6,5) & super_arc.e(5,4)..z3e}}; % lobe
+if serifs: save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Lowercase Russian letter u - Small Caps U";
+cyrchar(u,if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut,bulb_diam;
+bulb_diam=7/8[hair,flare]; left_stem=fudged.stem-2stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+y2=y3=max(vair',1/6h); x2l=x3l;
+numeric alpha; x9=.5w-1/2(.5[bot_stem,right_stem]); y9=if serifs:-oo else:0 fi;
+numeric u_ratio,t,stem_frac; u_ratio=(y3-y9)/(y1-y9)*(right_stem/left_stem);
+stem_frac=right_stem/left_stem;
+alpha=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-(u_ratio*.5[x1l,x4r]));
+x2l-x1l=x4r-x3r+(u_ratio*1[x1l,x4r]);
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+numeric alpha[]; alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0l=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r); penpos0(alpha*bot_stem,0);
+z6'=whatever[rt z3r,rt z4r]; y6'=bot y6r=if serifs:-o else:0 fi;
+t=(x3r-x6')++(y3r-y6'); x6r=.7[x3r,x1];
+penpos6(if serifs:alpha*bot_stem else:vair fi,-90);
+path u_path; u_path=z0r{z3r-z4r}....{left}z6r;
+numeric u_point; u_point=xpart(u_path intersectiontimes (z2l--z2r));
+if y0>notch_cut+y2: y0l:=notch_cut+y2; % +y2 added for sanserif face
+ fill z0l+.5right{up}..tension3..{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --subpath(0,u_point) of u_path--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ..tension3..{down}z0l+.5left--cycle; % left and right diagonals
+else: fill z0l--diag_end(0,4l,1,1,4r,3r)--subpath(0,u_point) of u_path
+ --z2l--diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+fill z0r{z3r-z4r}....{left}z6r--z6l{right}....{z4r-z3r}z0l--cycle;
+if serifs:
+ penpos7(hair,-180); penpos8(bulb_diam,-180);
+ y8-.5bulb_diam=.15desc_depth-eps;
+ z7r=z8r; lft x8r=max(.5[x1l,x1],l+hround(.5u-.5)); lft z0'l=z0l; rt z0'r=z0r;
+ cyrbulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+else: pickup fine.nib;
+ pos7(vair,-90); lft x7l=max(2.25u,rt x6r-t); bot y7r=bot y6'r;
+ top z6'l=z6l; bot z6'r=z6r;
+ filldraw stroke z6'e--z7e; fi % arc
+penlabels(0,0',1,2,3,4,5,6,6',7,8,9); endchar;
+
+lhchar "Lowercase Russian letter f - Small Caps F";
+cyrchar(f,10u#,x_height#,0);
+italcorr .7cap_height#*slant-.5u#; %O
+adjust_fit(0,0)
+numeric shaved_stem,light_curve; shaved_stem=stem-hround 2stem_corr;
+light_curve=curve-hround stem_corr;
+if odd(shaved_stem-w): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+x1=x2=.5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround max(.5u,1.25u-.5curve); x6r=w-x4r; x3=x5=.5w;
+y3r=vround(.89h if serifs:-.5slab fi); y4=y6=.5[y3,y5];
+y5r=vround(.15h if serifs:+.5slab fi);
+clearpen; interim superness:=more_super; % make |"CYR_.F"|, not |"fita"|
+penstroke pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull)
+ & pulled_super_arc.e(5,6)(.5superpull)
+ & pulled_super_arc.e(6,3)(.5superpull) & cycle; % bowl
+if serifs:
+ save slab; slab:=Vround(vair-vair_corr); % lower.slab
+ dish_serif(1,2,a,1/3,1.2jut,b,1/3,1.2jut); % upper serif
+ slab:=vair; % lower.slab
+ dish_serif(2,1,c,1/3,1.2jut,d,1/3,1.2jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/specific/lgrucl.mf b/Master/texmf-dist/fonts/source/lh/specific/lgrucl.mf
new file mode 100644
index 00000000000..6c9599f3c37
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/specific/lgrucl.mf
@@ -0,0 +1,338 @@
+%
+% lgrucl.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Lowercase Russian letters with shape for Concrete Mathematic
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% d
+% zh
+% k
+% l
+% ya
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+begingroup
+
+def is_egyptian =
+% |false| for most of the CM fonts, except funny fonts;
+% |true| for the CC fonts
+ (serifs and (1.4max(fine#,crisp#, tiny#)<slab#) and (1.6slab#>stem#))
+%added
+ or (vair#>.52cap_stem#)
+enddef;
+
+lhchar "Lowercase Russian letter d (`concrete' form)";
+cyrchar(d,10u#-.5width_adj# %en_width#
+ ,x_height#,sbeak#);
+adjust_fit(serif_fit#
+ if not serifs:+\\.5(stem#-u#),.5(stem#-u#)+ else:,fi\\ serif_fit#); %dl_adj
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=stem-stem_corr;
+left_stem=min(hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.75jut; x4r=r-letter_fit-outer_jut- if serifs:.25 else:.5 fi u;
+x1l=w-x4r; y1=y4=0; x2-x1=x4-x3;
+if serifs: x3l=x2r+((x1r-x4l)*(vair/(h-vair)))
+ if not is_egyptian:-.25left_stem fi
+ else: x3r=x2r+apex_corr fi;
+y2=y3=h if not serifs:+apex_o+apex_oo fi;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+if serifs: numeric left_jut; left_jut=jut+left_stem;
+ pickup tiny.nib; x5r=x3r; top y5=h;
+ pos5(alpha*right_stem,0);
+ fill stroke if is_egyptian: z1e--z2e
+ else: z1e{(x2+2(stem-hair),y2)-z1}...{z2-(x1+.5(stem-hair),y1)}z2e fi;
+ fill stroke z3e--z4e; x4:=x4r;
+ if is_egyptian: else: x2:=x2+1.5(stem-hair); fi
+ save slab; slab:=Vround(vair-vair_corr);
+ serif(5,4,a,0,-left_jut); % upper serif
+else: z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi fi % left and right diagonals
+% lower descenders
+pickup tiny.nib;
+save slab; slab:=vair; % lower.slab
+prime_points_inside(1,2); prime_points_inside(4,3);
+numeric inner_jut;
+inner_jut:=min(.5(lft x4l-rt x1r)-eps,.5jut);
+if not serifs: outer_jut:=hround (r-rt x4'r-.5u) ; fi
+l_serif(1',2,c,1/3,beak_darkness,outer_jut,.6beak_jut,d,1/3,inner_jut); % lower left descender
+r_serif(4',3,e,1/3,inner_jut,f,1/3,beak_darkness,outer_jut,.6beak_jut); % lower right descender
+filldraw z.d0--z.d1--z.e1--z.e0--cycle; % lower inter_serif bar
+penlabels(1,2,3,4); endchar;
+
+lhchar "Lowercase Russian letter zh (`concrete' form)";
+cyrchar(zh,10u#,x_height#, 0); %en_width#
+italcorr x_height#*slant+.25u#;
+adjust_fit(w#-5u#+serif_fit#,serif_fit#);
+% lowerc_zh;
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+if odd((r-l)-stem0): change_width; fi % symmetric & all three equal
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% k_cbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+x3r=hround(r-letter_fit-.7u-right_jut)-.5tiny+eps;
+x6r=hround(r-letter_fit-.3u-right_jut)-.5tiny+eps;
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+if serifs: y6'l=max(cap_hair,.5stem);
+ z6'r=z6'l+whatever*dir(angle(y1-y6,x6r-x1));
+else: y6'l=y6'r=0; fi
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+if serifs: pickup if is_egyptian: crisp else: fine fi nib;
+ rt x7=rt x6r+right_jut;
+ if is_egyptian: y7l=0; penpos7(vair',90);
+ else: y7=-o; penpos7(max(fine.breadth+eps,cap_hair-fine),90); fi
+ fill z5l
+ if is_egyptian: ---z6'l...{z6r-z6l}(.35[x6l,x7l],y7l)--
+ else:{z6'l-.5[z5,z5l]}...{z6r-z6l} fi
+ z7l..(rt x7l,top y7l)--(rt x7r,bot y7r)..z7r
+ if is_egyptian: --(.5[x6r,x7r],y7r){z6l-z6r}...z6'r---
+ else: {z6l-z6r}...{.5[z5,z5l]-z6'l} fi
+ z5r--cycle; % lower diagonal
+%%%
+else: fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; fi % lower diagonal
+%%%
+% mirror
+ pickup tiny.nib;
+forsuffixes $ = 3l,3,3r,3'l,3'r,4l,4,4r,5l,5,5r,6l,6,6r,6'l,6'r,7l,7r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+if serifs: pickup if is_egyptian: crisp else: fine fi nib;
+ fill z.m5l
+ if is_egyptian: ---z.m6'l...{z.m6r-z.m6l}(.35[x.m6l,x.m7l],y.m7l)--
+ else:{z.m6'l-.5[z.m5,z.m5l]}...{z.m6r-z.m6l} fi
+ z.m7l..(lft x.m7l,top y.m7l)--(lft x.m7r,bot y.m7r)..z.m7r
+ if is_egyptian: --(.5[x.m6r,x.m7r],y.m7r){z.m6l-z.m6r}...z.m6'r---
+ else: {z.m6l-z.m6r}...{.5[z.m5,z.m5l]-z.m6'l} fi
+ z.m5r--cycle; % lower diagonal
+ z8l=z.m3r; z8r=z.m3l; z9l=z.m4r; z9r=z.m4l; z8=.5[z8l,z8r]; z9=.5[z9l,z9r];
+else: fill z.m5'l--diag_end(.m5'l,.m6'l,.5,1,.m6'r,.m5'r)--z.m5'r--cycle; % lower diagonal
+fi
+if serifs: save slab; slab:=Vround(vair-vair_corr);
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair;
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower stem serif
+ numeric up_inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr);
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(8,9,g,1/2,right_jut,h,2/3,up_inner_jut)(dark); % upper diagonal serif
+fi
+%%%%%
+endchar;
+
+lhchar "Lowercase Russian letter k (`concrete' form)";
+cyrchar(k,10u#,x_height#,0); %en_width#
+italcorr x_height#*slant-.5u#;
+adjust_fit(serif_fit#,serif_fit#);
+% lowerc_k;
+pickup tiny.nib; numeric stem[];
+stem0=max(tiny.breadth,hround(fudged.stem-stem_corr));
+pos1(stem0,0); pos2(stem0,0);
+lft x1l=lft x2l=hround (2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% k_cbowl;
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+x3r=hround(r-letter_fit-.7u-right_jut)-.5tiny+eps;
+x6r=hround(r-letter_fit-.3u-right_jut)-.5tiny+eps;
+y4=.7bar_height; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+if serifs: y6'l=max(cap_hair,.5stem);
+ z6'r=z6'l+whatever*dir(angle(y1-y6,x6r-x1));
+else: y6'l=y6'r=0; fi
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+if serifs: pickup if is_egyptian: crisp else: fine fi nib;
+ rt x7=rt x6r+right_jut;
+ if is_egyptian: y7l=0; penpos7(vair',90);
+ else: y7=-o; penpos7(max(fine.breadth+eps,cap_hair-fine),90); fi
+ fill z5l
+ if is_egyptian: ---z6'l...{z6r-z6l}(.35[x6l,x7l],y7l)--
+ else:{z6'l-.5[z5,z5l]}...{z6r-z6l} fi
+ z7l..(rt x7l,top y7l)--(rt x7r,bot y7r)..z7r
+ if is_egyptian: --(.5[x6r,x7r],y7r){z6l-z6r}...z6'r---
+ else: {z6l-z6r}...{.5[z5,z5l]-z6'l} fi
+ z5r--cycle; % lower diagonal
+%%%
+else: fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; fi % lower diagonal
+%%%
+if serifs: save slab; slab:=Vround(vair-vair_corr);
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ slab:=vair;
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower stem serif
+ numeric up_inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-1.2jut: up_inner_jut=1.2jut;
+ else: rt x1r+jut+.5u+1=lft x3l-up_inner_jut; fi
+ slab:=Vround(vair-vair_corr);
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+fi
+%%%%%
+penlabels(1,2,3,4,5,6); endchar;
+
+lhchar "Lowercase Russian letter l (`concrete' form)";
+cyrchar(l,10u#-.5width_adj#,x_height#,0); %en_width#
+adjust_fit(if serifs:
+% max(.25u#,.25(7/8[hair#,flare#])+.5hair#) %l
+% if not is_egyptian: -.5hair# fi
+ %if is_egyptian: max(.25u#,.25(7/8[hair#,flare#])+.5hair#) %l
+ %else:
+ .25(7/8[hair#,flare#])-.25u# if is_egyptian:+.5hair# fi
+%fi
+ else: serif_fit# fi,serif_fit#);
+numeric bulb_diam; bulb_diam=hround 7/8[hair,flare];
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=stem-stem_corr;
+left_stem=min(hair if hefty:-3stem_corr fi,right_stem);
+outer_jut=.75jut; x4r=r-letter_fit-outer_jut- if serifs:.25 else:.5 fi u;
+x1l-.5u-.065jut=w-x4r; y1=y4=0; x2-x1=x4-x3;
+if serifs: x3l=x2r+((x1r-x4l)*(vair/(h-vair)))if not is_egyptian:-.25left_stem fi;
+ else: x3r=x2r+apex_corr; fi
+y2=y3=h if not serifs:+apex_o+apex_oo fi;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+if serifs:
+ fill stroke z3e--z4e; % right stem
+ pickup tiny.nib;
+ penpos5(left_stem,-90); pos5'(left_stem,-90); z5'=z5;
+ pos8(hair,-180); pos9(bulb_diam,-180);
+ y9-.5bulb_diam=.12desc_depth-eps; lft x9r=l+letter_fit+hround(.35u-.5);
+ y5r=-oo-eps; x5=max(min(.45[x9r,x1r],rt x9l-eps),lft x9r+.5bulb_diam);
+ z7r=(max(.5[x1,x1r],x9+if is_egyptian:1.25bulb_diam +.5slant*hair
+ else: 1.5bulb_diam-hair fi),
+ y7l-7/8left_stem);
+ z7l=(x7r-2/3(x1r-x1l),if is_egyptian: .35[y5l,y5] else: y5 fi);
+ y6l=y9+.5bulb_diam; z6r=(x7r,y1)+whatever*(z1-z2);%
+ y6r-y6l=y5r-y5l; x6r-x6l=2/3(x1r-x1l);
+ fill stroke z2e.. controls z6e and z7e ..z5e; % left stem
+ {{less_tense; cyrbulb(5',8,9)}}; % arc and bulb
+ numeric inner_jut,left_jut,fit;
+ pickup tiny.nib; left_jut=jut+left_stem;
+ prime_points_inside(4,3);
+ x10r=x3r; top y10=h; pos10(alpha*right_stem,0); x4:=x4r;
+ if rt x1r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr);
+ serif(10,4,c,0,-left_jut); % upper serif
+ slab:=vair;
+ dish_serif(4',3,d,1/2,inner_jut,e,1/3,outer_jut); % right serif
+else: z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi fi % left and right diagonals
+penlabels(0,1,2,6,3,4,5,7,8,9,10); endchar;
+
+lhchar "Lowercase Russian letter ya (`concrete' form) (looks like backward R)";
+cyrchar(ya,if serifs: 9.75u# else: 10u# fi-.5width_adj#,x_height#,0); %ya (~n_width:10u)
+italcorr x_height#*slant-serif_fit#+jut#-2u#+.5stem#; %d->x_height+jut
+adjust_fit(if serifs:serif_fit# else:0 fi,serif_fit#);
+% lowerc_ya;
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=rt x2r=hround(w-2.5u+.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos4(vair,90); penpos5(curve if hefty:-3stem_corr fi,180);
+y6r=y7r=hround (if serifs:.52h else:.5h fi-.6[thin_join,vair]/2);
+y6l=y7l=y6r+.6[thin_join,vair]; y6=y7=.5[y6l,y6r];%
+z3r=top z1; y4=y3; y5=.52[y6r,y4r]+eps;
+x7l=x7r=x2; x4+.25u=x6l=x6r; x4=.5w if serifs:+.25u else:-.25u fi;
+x5r=hround min(1.25u,2u-.5curve)+eps;
+x4l:=x4+.125curve; x6l:=x6l+.125curve;
+fill stroke
+{{interim superness:=more_super; z7e..pulled_arc.e(6,5) &
+ pulled_arc.e(5,4)..z3e}}; % lobe
+numeric stem[],alpha,right_jut;
+right_jut=if serifs:.7jut else:.4tiny fi;
+stem1=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+lft x9l=hround(l+letter_fit+.3u+right_jut)-eps; bot y9=0;
+alpha=diag_ratio(1,.5(stem1-tiny),y1-y9,x9l-x1);
+penpos9(alpha*(stem1-tiny),0);
+x8=x6l-if serifs:.75u else:.25u fi; y8=y6;
+if serifs: numeric theta; theta=angle(y1-y9,x9l-x1);
+ y9'r=max(hair,.5stem); z9'l=z9'r+whatever*dir theta;
+else: y9'l=y9'r=0; fi
+z9'r=z9r+penoffset z1-z9 of currentpen+whatever*(z1-z9);
+z9'l=z9l+penoffset z9-z1 of currentpen+whatever*(z1-z9);
+z8=z9'+whatever*(z1-z9);
+penpos8(if serifs: alpha*stem1 else: stem fi-2stem_corr,0);
+if serifs: pickup if is_egyptian: crisp else: fine fi nib;
+ lft x10=tiny.lft x9l-right_jut;
+ if is_egyptian: y10r=0; penpos10(vair',-90); else: y10=-o;
+ penpos10(max(fine.breadth+eps,hair-fine),-90); fi
+ fill z8l
+ if is_egyptian: ---z9'l...{z9l-z9r}(.35[x9l,x10l],y10l)--
+ else: {.5[z9l,z9]-z8l}...{z8l-z8r} fi
+ z10l..(lft x10l,bot y10l)--(lft x10r,top y10r)..z10r
+ if is_egyptian: --(.35[x9r,x10r],y10r){z9r-z9l}...z9'r---
+ else: {z8r-z8l}...{z8l-.5[z9l,z9]} fi
+ z8r--cycle; % lower diagonal
+ numeric inner_jut;
+ if lft x2l-jut-.5u+1>=rt x9r+jut: inner_jut=jut;
+ else: lft x2l-jut-.5u+1=rt x9r+inner_jut; fi
+ save slab; slab:=Vround(vair-vair_corr);
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
+ slab:=vair;
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower serif
+else: fill z8l--diag_end(8l,9'l,1,.5,9'r,8r)--z8r--cycle; fi % diagonal
+penlabels(0,1,2,3,4,5,6,7,8,9,9',10); endchar;
+
+endgroup;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/lh/specific/lgrucu.mf b/Master/texmf-dist/fonts/source/lh/specific/lgrucu.mf
new file mode 100644
index 00000000000..f287285a838
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/lh/specific/lgrucu.mf
@@ -0,0 +1,328 @@
+%
+% lgrucu.mf
+%
+%% Cyrillic font container with T2 encoding beta-support
+%
+% This file is future part of lxfonts package
+% Version 3.4 // Patchlevel=0
+% (c) O.Lapko
+%
+% This package belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+% In particular, only the authors are entitled to modify this file
+% and to save it under the same name.
+%
+% Content:
+%
+% Uppercase Russian letters with shape for Concrete Mathematic
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% List of letternames
+%
+% D
+% ZH
+% K
+% L
+% YA
+%
+
+LHver_check(3,4); % like |version_check| in ec
+
+begingroup
+
+def is_egyptian =
+% |false| for most of the CM fonts, except funny fonts;
+% |true| for the CC fonts
+ (serifs and (1.4max(fine#,crisp#, tiny#)<slab#) and (1.6slab#>stem#))
+%added
+ or (vair#>.5stem#)
+enddef;
+
+lhchar "Uppercase Russian letter D (`concrete' form)";
+cyrchar(D,13.5u#,cap_height#, %N_width#
+ cap_sbeak#);
+if is_small_cap: getcharcode(d); fi
+adjust_fit(cap_serif_fit# if not serifs:
+ +\\.5(cap_stem#-u#),.5(cap_stem#-u#)+ else:,fi\\ cap_serif_fit#); %D_adj
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut;
+x1l=w-x4r=outer_jut+if serifs:.5 fi u; y1=y4=0; x2-x1=x4-x3;
+if serifs: x3l=x2r+((x1r-x4l)*(slab/(h-slab)))
+ if not is_egyptian:-.25left_stem fi;
+else:x3r=x2r+apex_corr; fi
+y2=y3=h if not serifs:+apex_o+apex_oo fi;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if serifs:
+ numeric left_jut; left_jut=cap_jut+left_stem;
+ pickup tiny.nib; x35r=x3r; top y35=h;
+ pos35(alpha*right_stem,0);
+ fill stroke if is_egyptian: z1e--z2e
+ else: z1e{(x2+2stem,y2)-z1}...{z2-(x1+.5stem,y1)}z2e fi;
+ fill stroke z3e--z4e; x4:=x4r;
+ serif(35,4,a,0,-left_jut); % upper serif
+ if is_egyptian: else: x2:=x2+1.5stem; fi
+else:
+ if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+fi
+% upper descenders
+pickup tiny.nib;
+prime_points_inside(1,2); prime_points_inside(4,3);
+numeric inner_jut;
+inner_jut:=min(.5(lft x4l-rt x1r)-eps,.5cap_jut);
+if not serifs: outer_jut:=hround (r-rt x4'r-.65u); fi
+numeric arm_thickness; arm_thickness=vround(slab+vair_corr);
+save slab; slab:=arm_thickness; %bottom.bar.slab
+l_serif(1',2,c,1/3,beak_darkness,outer_jut,beak_jut,d,1/3,inner_jut); % lower left descender
+r_serif(4',3,e,1/3,inner_jut,f,1/3,beak_darkness,outer_jut,beak_jut); % lower right descender
+filldraw z.d0--z.d1--z.e1--z.e0--cycle; % lower inter_serif bar
+penlabels(1,2,3,4); endchar;
+
+lhchar "Uppercase Russian letter ZH (`concrete' form)";
+cyrchar(ZH,13.5u#,cap_height#, 0); %N_width#
+if is_small_cap: getcharcode(zh); fi
+italcorr cap_height#*slant+.25u#;
+adjust_fit(w#-2max(2u#+.5cap_stem#,3u#)+cap_serif_fit#,cap_serif_fit#);
+% upperc_zh;
+if odd((r-l)-fudged.cap_stem): change_width; fi % symmetric & all three equal
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround (.5[l,r]-.5fudged.cap_stem)-eps; % middle stem point
+top y1=h; bot y2=0;
+pickup tiny.nib; filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_cbowl
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut);
+rt x6r=hround(r-letter_fit-.75u-right_jut);
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+if serifs: y6'l=max(cap_hair,.5stem);
+ z6'r=z6'l+whatever*dir(angle(y1-y6,x6r-x1));
+ else: y6'l=y6'r=0; fi
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+if serifs: pickup if is_egyptian: crisp else: fine fi nib;
+ rt x7=rt x6r+right_jut;
+ if is_egyptian: y7l=0; penpos7(slab,90);
+ else: y7=-o; penpos7(max(fine.breadth+eps,cap_hair-fine),90); fi
+ fill z5l
+ if is_egyptian: ---z6'l...{z6r-z6l}(.35[x6l,x7l],y7l)--
+ else:{z6'l-.5[z5,z5l]}...{z6r-z6l} fi
+ z7l..(rt x7l,top y7l)--(rt x7r,bot y7r)..z7r
+ if is_egyptian: --(.5[x6r,x7r],y7r){z6l-z6r}...z6'r---
+ else: {z6l-z6r}...{.5[z5,z5l]-z6'l} fi
+ z5r--cycle; % lower diagonal
+ numeric up_inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+else: fill z5'l--diag_end(5'l,6'l,.5,1,6'r,5'r)--z5'r--cycle; fi% lower diagonal
+%%%
+% mirror
+pickup tiny.nib;
+forsuffixes $ = 3l,3,3r,3'l,3'r,4l,4,4r,5l,5,5r,6l,6,6r,6'l,6'r,7l,7r:
+ x.m$=l+(r-x$); y.m$=y$; endfor;
+fill z.m4r--diag_end(.m4r,.m3'r,1,.5,.m3'l,.m4l)--z.m4l--cycle; % upper diagonal
+if serifs: pickup if is_egyptian: crisp else: fine fi nib;
+ fill z.m5l
+ if is_egyptian: ---z.m6'l...{z.m6r-z.m6l}(.35[x.m6l,x.m7l],y.m7l)--
+ else:{z.m6'l-.5[z.m5,z.m5l]}...{z.m6r-z.m6l} fi
+ z.m7l..(lft x.m7l,top y.m7l)--(lft x.m7r,bot y.m7r)..z.m7r
+ if is_egyptian: --(.5[x.m6r,x.m7r],y.m7r){z.m6l-z.m6r}...z.m6'r---
+ else: {z.m6l-z.m6r}...{.5[z.m5,z.m5l]-z.m6'l} fi
+ z.m5r--cycle; % lower diagonal
+ z8l=z.m3r; z8r=z.m3l; z9l=z.m4r; z9r=z.m4l; z8=.5[z8l,z8r]; z9=.5[z9l,z9r];
+ dish_serif(8,9,g,1/2,right_jut,h,2/3,up_inner_jut)(dark); % upper diagonal serif
+else: fill z.m5'l--diag_end(.m5'l,.m6'l,.5,1,.m6'r,.m5'r)--z.m5'r--cycle; % lower diagonal
+fi
+%%%%%
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Uppercase Russian letter K (`concrete' form)";
+cyrchar(K,13.5u#,cap_height#,0); %EN_width#
+if is_small_cap: getcharcode(k); fi
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+% upperc_k;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem);
+top y1=h; bot y2=0;
+pickup tiny.nib; filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower stem serif
+% K_cbowl
+numeric right_jut,stem[],alpha[]; pickup tiny.nib;
+right_jut=if serifs:.6cap_jut else:.4tiny fi;
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+rt x3r=hround(r-letter_fit-u-right_jut);
+rt x6r=hround(r-letter_fit-.75u-right_jut);
+y4=1/3h; top y3=h; bot y6=0; x4=x1;
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos6(alpha2*(stem2-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+forsuffixes $=l,r: y3'$=h; z4.$=z3'$+whatever*(z3-z4);
+ z5.$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+if serifs: y6'l=max(cap_hair,.5stem);
+ z6'r=z6'l+whatever*dir(angle(y1-y6,x6r-x1));
+ else: y6'l=y6'r=0; fi
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+if serifs: pickup if is_egyptian: crisp else: fine fi nib;
+ rt x7=rt x6r+right_jut;
+ if is_egyptian: y7l=0; penpos7(slab,90);
+ else: y7=-o; penpos7(max(fine.breadth+eps,cap_hair-fine),90); fi
+ fill z5l
+ if is_egyptian: ---z6'l...{z6r-z6l}(.35[x6l,x7l],y7l)--
+ else:{z6'l-.5[z5,z5l]}...{z6r-z6l} fi
+ z7l..(rt x7l,top y7l)--(rt x7r,bot y7r)..z7r
+ if is_egyptian: --(.5[x6r,x7r],y7r){z6l-z6r}...z6'r---
+ else: {z6l-z6r}...{.5[z5,z5l]-z6'l} fi
+ z5r--cycle; % lower diagonal
+ numeric up_inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-1.2cap_jut: up_inner_jut=1.2cap_jut;
+ else: rt x1r+cap_jut+.5u+1=lft x3l-up_inner_jut; fi
+ dish_serif(3,4,e,2/3,up_inner_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+else: fill z5'l--diag_end(5'l,6'l,.5,1,6'r,5'r)--z5'r--cycle; fi% lower diagonal
+%%%
+%%%%%
+penlabels(1,2,3,4,5,6,7); endchar;
+
+lhchar "Uppercase Russian letter L (`concrete' form)";
+cyrchar(L,13.5u#,cap_height#,0); %N_width#
+if is_small_cap: getcharcode(l); fi
+adjust_fit(if serifs: .8(flare#+(cap_stem#-stem#))-.5u#
+ else: cap_serif_fit# fi,
+ cap_serif_fit#); %
+numeric bulb_diam; bulb_diam=flare+(cap_stem-stem);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty:-3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=outer_jut+if serifs:.5 fi u; y1=y4=0; x2-x1=x4-x3;
+if serifs: x3l=x2r+((x1r-x4l)*(slab/(h-slab))) %+2apex_corr;
+ if not is_egyptian:-.25left_stem fi;
+else: x3r= x2r+apex_corr; fi
+y2=y3=h if not serifs:+apex_o+apex_oo fi;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+if serifs:
+ fill stroke z3e--z4e; % right stem
+ pickup tiny.nib;
+ penpos5(left_stem,-90); pos5'(left_stem,-90); z5'=z5;
+ pos8(cap_hair,-180); pos9(bulb_diam,-180);
+ y9=if is_egyptian: 0.12h else: 1/6h-max(0,flare-stem-2vair_corr-.5) fi;
+ lft x9r=l+letter_fit+hround(.5u-.5);
+ y5r=-o; x5=max(lft x9r+.5bulb_diam,.5[x9r,x1r]);
+ y6l=y9+bulb_diam-hair;
+ numeric t; t=1-slant;
+ z7r=(max(.75[x1,x1r],x9+if is_egyptian: (if is_small_cap: 2.25 else: 2.667 fi
+ +max(-2slant,.5slant))*hair
+ else: if is_bold:.75 fi bulb_diam+1.35hair fi),
+ y7l-t*7/8left_stem);
+ z7l=(x7r-2/3(x1r-x1l),if is_egyptian: .35[y5l,y5] else: y5 fi);%y5l);
+ z6r=(x7r,y1)+whatever*((x1r,y1)-z2r); y6r-y6l=t*(y5r-y5l);
+ x6r-x6l=1/2(x1r-x1l);
+ fill stroke z2e{z1e-z6e}.. controls z6e and z7e ..z5e;
+ {{less_tense; cyrbulb(5',8,9)}}; % arc and bulb
+ numeric inner_jut,left_jut,fit; pickup tiny.nib;
+ x10r=x3r; top y10=h; pos10(alpha*right_stem,0); x4:=x4r;
+ left_jut=cap_jut+left_stem;
+ serif(10,4,c,0,-left_jut); % upper serif
+ pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(4',3,d,1/2,inner_jut,e,1/3,outer_jut); % right serif
+else: z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi fi % left and right diagonals
+penlabels(0,2,6,3,4,5,7,8,9,10); endchar;
+
+lhchar "Uppercase Russian letter YA (`concrete' form)";
+cyrchar(YA,if serifs:13.5u# else:12.5u#-.5width_adj# fi %N_width; upss R
+ ,cap_height#,0);
+if is_small_cap: getcharcode(ya); fi
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(if serifs: cap_serif_fit# else:0 fi,cap_serif_fit#);
+% upperc_ya;
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+rt x1r=rt x2r=w-hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,180);
+numeric middle_weight; middle_weight=.5[vair,cap_band];
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+z3r=top z1; y4=y3; y5=.52[y6l,y4l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround (2u);
+ else: x4=.5w-.5u; x5r=hround u; fi
+x4l:=x6l:=x4+.125cap_curve;
+fill stroke z7e..pulled_arc.e(6,5) & pulled_arc.e(5,4)..z3e; % lobe
+pickup tiny.nib; numeric stem[],alpha,right_jut;
+right_jut=if serifs:.8cap_jut else:.4tiny fi;
+if serifs: bot y9=bot y2; else: y9=0; fi
+lft x9l=hround(if serifs:l+letter_fit+.75u+right_jut else:.5u fi); y8=y6;
+stem1=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+alpha=diag_ratio(1,.5(stem1-tiny),y1-y9,x9l-x1);
+penpos9(alpha*(stem1-tiny),0);
+if serifs: numeric theta; theta=angle(y1-y9,x9l-x1);
+ y9'r=max(hair,.5stem); z9'l=z9'r+whatever*dir theta;
+ else: y9'l=y9'r=0; fi
+z9'r=z9r+penoffset z1-z9 of currentpen+whatever*(z1-z9);
+z9'l=z9l+penoffset z9-z1 of currentpen+whatever*(z1-z9);
+if serifs: z8r=z9'r+whatever*(z1r-z9); else: x8=x6+.5u; fi
+penpos8(if serifs: alpha*stem1 else: cap_stem fi-2stem_corr,0);
+if serifs: pickup if is_egyptian: crisp else: fine fi nib;
+ lft x10=tiny.lft x9l-right_jut;
+ if is_egyptian: y10r=0; penpos10(slab,-90); else: y10=-o;
+ penpos10(max(fine.breadth+eps,hair-fine),-90); fi
+ fill z8l
+ if is_egyptian: ---z9'l...{z9l-z9r}(.35[x9l,x10l],y10l)--
+ else: {.5[z9l,z9]-z8l}...{z8l-z8r} fi
+ z10l..(lft x10l,bot y10l)--(lft x10r,top y10r)..z10r
+ if is_egyptian: --(.35[x9r,x10r],y10r){z9r-z9l}...z9'r---
+ else: {z8r-z8l}...{z8l-.5[z9l,z9]} fi
+ z8r--cycle; % lower diagonal
+else: fill z8l--diag_end(8l,9'l,1,.5,9'r,8r)--z8r--cycle; fi % diagonal
+if serifs:
+nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,cap_jut); % upper serif
+dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8,9,9',10); endchar;
+
+endgroup;
+
+endinput;
+%end of file
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frua.mf b/Master/texmf-dist/fonts/source/public/allrunes/frua.mf
new file mode 100644
index 00000000000..0fbfb864ada
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frua.mf
@@ -0,0 +1,514 @@
+%%
+%% This is file `frua.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `fontbase,frua')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+draw_primitive_f("f",1,1);
+
+draw_primitive_f(166,1,-1);
+
+draw_primitive_f(174,-1,1);
+
+draw_primitive_f(182,-1,-1);
+
+draw_normal_f("F",1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(134,1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(142,-1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(150,-1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_u("u",1,1,true,0); %tight = true, 0 = no dots
+
+draw_normal_u(229,-1,1,true,0); %tight = true, 0 = no dots
+
+draw_normal_u(221,1,-1,true,0); %tight = true, 0 = no dots
+
+draw_normal_u(237,-1,-1,true,0); %tight = true, 0 = no dots
+
+draw_primitive_U("U",1,1,true); %symmetric = true
+
+draw_primitive_U(205,-1,1,true); %symmetric = true
+
+draw_primitive_U(197,1,-1,true); %symmetric = true
+
+draw_primitive_U(213,-1,-1,true); %symmetric = true
+
+draw_normal_th(254,1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(238,-1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_anglo_o("o",1,1,true); %two = true
+
+draw_anglo_o(151,-1,1,true); %two = true
+
+draw_anglo_o(143,1,-1,true); %two = true
+
+draw_anglo_o(159,-1,-1,true); %two = true
+
+draw_normal_r("r",1,1,false,false); % closed = false, topdot=false
+
+draw_normal_r(242,-1,1,false,false); % closed = false, topdot=false
+
+draw_normal_r(234,1,-1,false,false); % closed = false, topdot=false
+
+draw_normal_r(250,-1,-1,false,false); % closed = false, topdot=false
+
+draw_normal_k("c",1,-1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k(155,-1,-1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k(163,1,1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k(171,-1,1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_primitive_kup(131,1,-1,true,true); %stem = true, big = true
+
+draw_primitive_kup(139,1,1,true,true); %stem = true, big = true
+
+draw_primitive_g("g",1,1,false,false,false); %v_stem = false, h_angles = false, eye = false
+
+draw_primitive_w("w",1,1);
+
+draw_primitive_w(175,-1,1);
+
+draw_primitive_w(191,1,-1);
+
+draw_primitive_w(183,-1,-1);
+
+draw_primitive_h("h",1,1,false,true); %top = false, twobars = true
+
+draw_primitive_h(168,-1,1,false,true); %top = false, twobars = true
+
+draw_primitive_h("H",1,1,false,false); %top = false, twobars = false
+
+draw_primitive_h(136,-1,1,false,false); %top = false, twobars = false
+
+draw_normal_double_A(216,1,1,false,false,false); %three = false, stlb = false, sblb = false
+
+draw_normal_double_A(224,1,-1,false,false,false); %three = false, stlb = false, sblb = false
+
+draw_normal_h("n",1,1,true,false,false); %NWSE = true, NESW = false, dot = false
+
+draw_normal_h(158,-1,1,true,false,false); %NWSE = true, NESW = false, dot = false
+
+draw_normal_i("i",1,1,false,false,false,false,false,false); % dot = false, twig = false, high = false, top = false, twodots = false, circle = false
+
+draw_normal_h("j",1,1,true,true,false); %NWSE = true, NESW = true, dot = false
+
+draw_primitive_ng(178,1,1,false,true,false,false); %top = false, line = true, empty = false, belgthor = false
+
+draw_anglo_j("J",1,1);
+
+draw_primitive_I("I",1,1);
+draw_primitive_I(239,1,1);
+
+draw_primitive_I(207,-1,1);
+
+draw_primitive_p("p",1,1);
+
+draw_primitive_p(176,-1,1);
+
+draw_frisian_p("P",1,1);
+
+draw_frisian_p(144,-1,1);
+
+draw_normal_m("x",1,1,false,false,false); %dots = false, double = false, tree = false
+
+draw_normal_s("s",1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s(179,-1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_k("S",1,1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+
+
+
+draw_primitive_s(211,1,1,3); %strokes = 3
+
+draw_primitive_s(219,-1,1,3); %strokes = 3
+
+draw_primitive_s(227,1,1,4); %strokes = 4
+
+draw_primitive_s(235,-1,1,4); %strokes = 4
+
+draw_primitive_s(243,1,1,5); %strokes = 5
+
+draw_primitive_s(251,-1,1,5); %strokes = 5
+
+draw_primitive_s(212,1,1,6); %strokes = 6
+
+draw_primitive_s(220,-1,1,6); %strokes = 6
+
+draw_primitive_s(228,1,1,7); %strokes = 7
+
+draw_primitive_s(236,-1,1,7); %strokes = 7
+
+draw_primitive_s(244,1,1,8); %strokes = 8
+
+draw_primitive_s(252,-1,1,8); %strokes = 8
+
+draw_normal_t("t",1,1,false,false,false,false,false); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t(180,1,-1,false,false,false,false,false); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_b("b",1,1,false,false,false); %topdot = false, bottomdot = false, separated = false
+
+draw_normal_b(226,-1,1,false,false,false); %topdot = false, bottomdot = false, separated = false
+
+draw_normal_b("B",1,1,false,false,true); %topdot = false, bottomdot = false, separated = true
+
+draw_normal_b(194,-1,1,false,false,true); %topdot = false, bottomdot = false, separated = true
+
+draw_primitive_e("e",1,1,false,false); %closed = false, midstem = false
+
+draw_primitive_e(165,1,-1,false,false); %closed = false, midstem = false
+
+draw_primitive_m("m",1,1,false,true,false); %big = false, top = true, double = false
+
+draw_primitive_m(149,1,-1,false,true,false); %big = false, top = true, double = false
+
+draw_normal_l("l",1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(148,-1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(140,1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(156,-1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_anglo_ng(173, 1, 1);
+
+draw_primitive_m("d",1,1,true,false,false); %big = true, top = false, double = false
+
+draw_primitive_m(164,1,1,false,false,false); %big = false, top = false, double = false
+
+draw_primitive_e("D",1,1,true,true); %closed = true, midstem = true
+
+draw_primitive_o(247,1,1);
+
+draw_primitive_o(255,1,-1);
+
+draw_primitive_ng(215,1,1,true,true,false,false); %top = true, line = true, empty = false, belgthor = false
+
+draw_primitive_ng(223,1,-1,true,true,false,false); %top = true, line = true, empty = false, belgthor = false
+
+draw_anglo_o("a",1,1,false); %two = false
+
+draw_anglo_o(177,-1,1,false); %two = false
+
+draw_anglo_o(169,1,-1,false); %two = false
+
+draw_anglo_o(185,-1,-1,false); %two = false
+
+draw_normal_single_A(230,1,1,true); %top = true
+
+draw_normal_single_A(198,-1,1,true); %top = true
+
+draw_normal_single_A(206,1,-1,true); %top = true
+
+draw_normal_single_A(214,-1,-1,true); %top = true
+
+draw_normal_u("y",1,1,true,3); %tight = true, 3 = bar
+
+draw_normal_u(232,-1,1,true,3); %tight = true, 3 = bar
+
+draw_normal_u(240,1,-1,true,3); %tight = true, 3 = bar
+
+draw_normal_u(248,-1,-1,true,3); %tight = true, 3 = bar
+
+draw_normal_u(193,1,1,true,4); %tight = true, 4 = x
+
+draw_normal_u(201,-1,1,true,4); %tight = true, 4 = x
+
+draw_normal_u(209,1,-1,true,4); %tight = true, 4 = x
+
+draw_normal_u(217,-1,-1,true,4); %tight = true, 4 = x
+
+draw_normal_u("Y",1,1,true,5); %tight = true, 5 = y
+
+draw_normal_u(233,-1,1,true,5); %tight = true, 5 = y
+
+draw_normal_u(241,1,-1,true,5); %tight = true, 5 = y
+
+draw_normal_u(249,-1,-1,true,5); %tight = true, 5 = y
+
+draw_anglo_ea(196,1,1,false); %q = false
+
+draw_anglo_ea(204,1,-1,false); %q = false
+
+draw_primitive_g(135,1,1,false,true,false); %v_stem = false, h_angles = true, eye = false
+
+draw_primitive_g(167,1,1,false,false,true); %v_stem = false, h_angles = false, eye = true
+
+draw_normal_m("k",1,-1,false,false,false); %dots = false, double = false, tree = false
+
+draw_primitive_g(195,1,1,true,true,false); %v_stem = true, h_angles = true, eye = false
+
+
+draw_anglo_ea("q",1,1,true); %q = true
+
+draw_anglo_ea(81,1,-1,true); %q = true
+
+draw_primitive_e(208,1,1,true,false); %closed = true, midstem = false
+
+draw_primitive_m(200,1,1,false,true,true); %big = true, top = false, double = true
+
+draw_anglo_rex(154,1,1);
+
+draw_anglo_rex(186,1,-1);
+
+ligtable ".":
+ ":":
+ 62: %62 \tripleeye
+ 63: %63 \quadeye
+ 64: %64 \penteye
+ "!":
+ "+":
+ 44: %44 \doubleplus
+ 36: %36 \star
+ 42: %42 \cross
+ 254: % \th
+ "j":
+ 178: % \j
+ "J":
+ "U" kern -0.1base_width#,
+ 131 kern -0.2base_width#, % \c
+ "g" kern -0.2base_width#,
+ "n" kern -0.1base_width#,
+ "I" kern -0.2base_width#,
+ "x" kern -0.2base_width#,
+ "t" kern -0.1base_width#,
+ 247 kern -0.2base_width#, % \oe
+ 215 kern -0.1base_width#, % \OE
+ 196 kern -0.25base_width#, % \ea
+ 135 kern -0.1base_width#, % \g
+ 167 kern -0.1base_width#, % \G
+ "k" kern -0.2base_width#,
+ 195 kern -0.1base_width#, % \k
+ 154 kern -0.2base_width#, % \rex
+ "q" kern -0.2base_width#;
+
+ligtable "f":
+ "o":
+ "w":
+ "I":
+ "x":
+ "t":
+ "l":
+ 215: % \OE
+ 230: % \ae
+ "a":
+ 154: % \rex
+ "." kern -0.2base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.2base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "!" kern -0.1base_width#,
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.2base_width#, %42, \cross
+ "U" kern -0.15base_width#,
+ 131 kern -0.25base_width#, % \c
+ "n" kern -0.1base_width#,
+ 178 kern -0.15base_width#, % \j
+ "J" kern -0.2base_width#,
+ "I" kern -0.3base_width#,
+ "k" kern -0.3base_width#,
+ "q" kern -0.3base_width#;
+
+ligtable "F":
+ "S":
+ 196: % \ea
+ "q":
+ "." kern -0.25base_width#,
+ ":" kern -0.15base_width#,
+ 62 kern -0.25base_width#, %62, \tripleeye
+ 63 kern -0.25base_width#, %63, \quadeye
+ 64 kern -0.25base_width#, %64, \penteye
+ "!" kern -0.15base_width#,
+ "+" kern -0.25base_width#,
+ 44 kern -0.15base_width#, %44, \doubleplus
+ 36 kern -0.25base_width#, %36, \star
+ 37 kern -0.15base_width#, %37, \doublecross
+ 42 kern -0.25base_width#, %42, \cross
+ "U" kern -0.2base_width#,
+ 131 kern -0.3base_width#, % \c
+ "n" kern -0.15base_width#,
+ 178 kern -0.15base_width#, % \j
+ "J" kern -0.3base_width#,
+ "I" kern -0.4base_width#,
+ "k" kern -0.4base_width#,
+ "q" kern -0.4base_width#;
+
+ligtable "u":
+ "U":
+ "H":
+ "n":
+ "s":
+ "y":
+ 193: % \y
+ "Y":
+ "." kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.1base_width#, %63, \quadeye
+ 64 kern -0.1base_width#, %64, \penteye
+ "+" kern -0.1base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ 42 kern -0.1base_width#, %42, \cross
+ 216 kern -0.1base_width#, % \h
+ "n" kern -0.1base_width#,
+ "J" kern -0.15base_width#,
+ "x" kern -0.25base_width#,
+ "t" kern -0.15base_width#,
+ 215 kern -0.2base_width#, % \OE
+ 196 kern -0.3base_width#, % \ea
+ 154 kern -0.25base_width#; % \rex
+
+ligtable "r":
+ 247: % \oe
+ "." kern -0.2base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.2base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "!" kern -0.1base_width#,
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.2base_width#, %42, \cross
+ 216 kern -0.1base_width#, % \h
+ "n" kern -0.1base_width#,
+ 178 kern -0.15base_width#, % \j
+ "J" kern -0.25base_width#,
+ "I" kern -0.15base_width#,
+ "x" kern -0.25base_width#,
+ "t" kern -0.15base_width#,
+ 173 kern -0.15base_width#,
+ 215 kern -0.15base_width#, % \OE
+ 196 kern -0.3base_width#, % \ea
+ 154 kern -0.25base_width#; % \rex
+
+ligtable "c":
+ 131: % \c
+ "k":
+ "." kern -0.25base_width#,
+ ":" kern -0.15base_width#,
+ 62 kern -0.25base_width#, %62, \tripleeye
+ 63 kern -0.25base_width#, %63, \quadeye
+ 64 kern -0.25base_width#, %64, \penteye
+ "!" kern -0.15base_width#,
+ "+" kern -0.25base_width#,
+ 44 kern -0.15base_width#, %44, \doubleplus
+ 36 kern -0.25base_width#, %36, \star
+ 37 kern -0.15base_width#, %37, \doublecross
+ 42 kern -0.25base_width#, %42, \cross
+ 216 kern -0.1base_width#, % \h
+ "n" kern -0.1base_width#,
+ 178 kern -0.15base_width#, % \j
+ "J" kern -0.3base_width#,
+ "x" kern -0.3base_width#,
+ "s" kern -0.2base_width#,
+ "t" kern -0.2base_width#,
+ 215 kern -0.2base_width#, % \OE
+ 196 kern -0.4base_width#, % \ea
+ 154 kern -0.3base_width#; % \rex
+
+ligtable "g":
+ "p":
+ "B":
+ 135: % \g
+ 167: % \G
+ 195: % \k
+ "." kern -0.25base_width#,
+ ":" kern -0.15base_width#,
+ 62 kern -0.25base_width#, %62, \tripleeye
+ 63 kern -0.25base_width#, %63, \quadeye
+ 64 kern -0.25base_width#, %64, \penteye
+ "!" kern -0.15base_width#,
+ "+" kern -0.25base_width#,
+ 44 kern -0.15base_width#, %44, \doubleplus
+ 36 kern -0.25base_width#, %36, \star
+ 37 kern -0.15base_width#, %37, \doublecross
+ 42 kern -0.25base_width#, %42, \cross
+ 216 kern -0.1base_width#, % \h
+ "n" kern -0.1base_width#,
+ "j" kern -0.15base_width#,
+ 178 kern -0.15base_width#, % \j
+ "J" kern -0.3base_width#,
+ "I" kern -0.1base_width#,
+ "t" kern -0.1base_width#,
+ 215 kern -0.2base_width#; % \OE
+
+ligtable "h":
+ 216: % \h
+ "m":
+ "e":
+ "d":
+ 164: %\d
+ "D":
+ 208: % \stan
+ 200: % \STAN
+ "i" kern +0.1base_width#;
+
+ligtable "i":
+ "h" kern +0.1base_width#,
+ 216 kern +0.1base_width#, % \h
+ "i" kern +0.1base_width#,
+ "m" kern +0.1base_width#,
+ "e" kern +0.1base_width#,
+ "d" kern +0.1base_width#,
+ 164 kern +0.1base_width#, % \d
+ "D" kern +0.1base_width#,
+ 208 kern +0.1base_width#, % \stan
+ 200 kern +0.1base_width#; % \STAN
+
+ligtable "P":
+ "b":
+ "." kern -0.2base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.2base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "!" kern -0.1base_width#,
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.2base_width#, %42, \cross
+ 131 kern -0.2base_width#,
+ 216 kern -0.1base_width#, % \h
+ "n" kern -0.1base_width#,
+ 178 kern -0.15base_width#, % \j
+ "J" kern -0.25base_width#,
+ "I" kern -0.15base_width#,
+ "x" kern -0.25base_width#,
+ "t" kern -0.15base_width#,
+ 173 kern -0.15base_width#,
+ 215 kern -0.15base_width#, % \OE
+ 196 kern -0.3base_width#, % \ea
+ "k" kern -0.25base_width#,
+ 154 kern -0.25base_width#, % \rex
+ "q" kern -0.2base_width#;
+
+ligtable 173: % \ng
+ "j" kern -0.15base_width#,
+ "I" kern -0.15base_width#,
+ "t" kern -0.15base_width#,
+ 247 kern -0.2base_width#, % \oe
+ 215 kern -0.2base_width#; % \OE
+
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruabm.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruabm.mf
new file mode 100644
index 00000000000..e86b241a437
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruabm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruabm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruabn.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruabn.mf
new file mode 100644
index 00000000000..74a3a0c56d5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruabn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruabn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruabq.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruabq.mf
new file mode 100644
index 00000000000..9748c79b1b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruabq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruabq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruabr.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruabr.mf
new file mode 100644
index 00000000000..bece8175435
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruabr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruabr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruabs.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruabs.mf
new file mode 100644
index 00000000000..8ffba762036
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruabs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruabs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruabt.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruabt.mf
new file mode 100644
index 00000000000..972096ca5e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruabt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruabt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruacm.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruacm.mf
new file mode 100644
index 00000000000..a309afda366
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruacm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruacm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruacn.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruacn.mf
new file mode 100644
index 00000000000..45818dd9f44
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruacn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruacn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruacq.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruacq.mf
new file mode 100644
index 00000000000..4839a39d11b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruacq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruacq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruacr.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruacr.mf
new file mode 100644
index 00000000000..f63b6ba010c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruacr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruacr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruacs.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruacs.mf
new file mode 100644
index 00000000000..75dc512271f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruacs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruacs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruact.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruact.mf
new file mode 100644
index 00000000000..c53cab759c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruact.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruact.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,bold,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruakm.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruakm.mf
new file mode 100644
index 00000000000..a899a54d742
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruakm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruakm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruakn.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruakn.mf
new file mode 100644
index 00000000000..0826b563037
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruakn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruakn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruakq.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruakq.mf
new file mode 100644
index 00000000000..ae3736cfc48
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruakq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruakq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruakr.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruakr.mf
new file mode 100644
index 00000000000..e4996f54bcd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruakr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruakr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruaks.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruaks.mf
new file mode 100644
index 00000000000..b476a9499d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruaks.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruaks.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruakt.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruakt.mf
new file mode 100644
index 00000000000..7c6bb405812
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruakt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruakt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frualm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frualm.mf
new file mode 100644
index 00000000000..3ed44d6decf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frualm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frualm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frualn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frualn.mf
new file mode 100644
index 00000000000..1be4ff64216
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frualn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frualn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frualq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frualq.mf
new file mode 100644
index 00000000000..af72da30010
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frualq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frualq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frualr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frualr.mf
new file mode 100644
index 00000000000..2ea9dedcd98
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frualr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frualr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruals.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruals.mf
new file mode 100644
index 00000000000..93732e63281
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruals.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruals.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frualt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frualt.mf
new file mode 100644
index 00000000000..7f5765980f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frualt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frualt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,light,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruamm.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruamm.mf
new file mode 100644
index 00000000000..581a2e36af6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruamm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruamm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruamn.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruamn.mf
new file mode 100644
index 00000000000..9e9050a31aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruamn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruamn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruamq.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruamq.mf
new file mode 100644
index 00000000000..362b7fd7922
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruamq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruamq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruamr.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruamr.mf
new file mode 100644
index 00000000000..f1f875168cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruamr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruamr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruams.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruams.mf
new file mode 100644
index 00000000000..52842421d66
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruams.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruams.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruamt.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruamt.mf
new file mode 100644
index 00000000000..7f30d5b8a0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruamt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruamt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruanm.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruanm.mf
new file mode 100644
index 00000000000..74bdbe91318
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruanm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruanm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruann.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruann.mf
new file mode 100644
index 00000000000..26034d30532
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruann.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruann.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruanq.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruanq.mf
new file mode 100644
index 00000000000..56c36f52e9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruanq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruanq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruanr.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruanr.mf
new file mode 100644
index 00000000000..49b4fb87795
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruanr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruanr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruans.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruans.mf
new file mode 100644
index 00000000000..493b389f9f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruans.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruans.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruant.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruant.mf
new file mode 100644
index 00000000000..e867159032c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruant.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruant.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,fruain,medium,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frua;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frubase.mf b/Master/texmf-dist/fonts/source/public/allrunes/frubase.mf
new file mode 100644
index 00000000000..eb839fff06d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frubase.mf
@@ -0,0 +1,1611 @@
+%%
+%% This is file `frubase.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `frubase')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string allrunes ;
+allrunes = "2.0" ;
+if proofing > 1 :
+ message "Base file for font `allrunes', version " & allrunes ;
+fi
+font_identifier:="allrunes";
+
+font_size 10pt#;
+
+mode_setup;
+
+if mag <= 1:
+ magadj = 1;
+ tightness_f=0.0;
+elseif mag <= 4:
+ magadj = 1-(mag-1)/10;
+ tightness_f=0.0;
+else:
+ magadj = 1-(4-1)/10;
+ tightness_f=0.01;
+fi;
+
+if loweredbars=true:
+ topjointrounding=0.3;
+ topbarred=0.85;
+else:
+ topjointrounding=1.0;
+ topbarred=1.0;
+fi;
+
+if barshape="straight":
+ curve_d=0;
+elseif barshape="curved":
+ curve_d=40;
+elseif barshape="rounded":
+ curve_d=90;
+fi;
+
+if withlines=true:
+ toprounding=1.0;
+else:
+ toprounding=0.3;
+fi;
+
+if boldness="light":
+ stem_w#=0.4pt#*magadj;
+ base_width#=3.8pt#;
+ margin_width#=1.1pt#;
+elseif boldness="medium":
+ stem_w#=0.57pt#*magadj;
+ base_width#=4pt#;
+ margin_width#=1.2pt#;
+elseif boldness="bold":
+ stem_w#=0.8pt#*magadj;
+ base_width#=4.2pt#;
+ margin_width#=1.2pt#;
+fi;
+
+endrounding=0.3;
+jointrounding=1.0;
+round_adj_f=0.2;
+
+circle_w#=0.9*stem_w#;
+stem_h#=7pt#;
+full_height_f=1;
+nib_w#=0.01pt#;
+
+freedot_f=1.3;
+sepdot_f=1.6;
+stemdot_f=2.2;
+endstemdot_f=1.7;
+stemcircle_f=3.2;
+endstemcircle_f=2.8;
+twig_length_f=3.1;
+
+define_pixels(nib_w);
+define_pixels(stem_h);
+define_whole_pixels(stem_w);
+define_whole_pixels(circle_w);
+define_pixels(margin_width);
+
+def beginrunechar(expr code, width) =
+ beginchar(code, width, stem_h#, 0.4*stem_h#);
+ pickup pencircle scaled nib_w;
+ if withlines=true:
+ filldraw barpath( -stem_w/2, 0-stem_w/2, jointrounding,
+ w+stem_w/2, 0-stem_w/2, jointrounding, 0, 0, 0);
+ filldraw barpath( -stem_w/2, h+stem_w/2, jointrounding,
+ w+stem_w/2, h+stem_w/2, jointrounding, 0, 0, 10);
+ fi
+enddef;
+
+def dotpath (expr x, y, width_f, i) =
+ fullcircle scaled (width_f*stem_w) shifted (x,y)
+enddef;
+
+def draw_circle (expr x, y, width_f, i) =
+ pickup pencircle scaled circle_w;
+ draw fullcircle scaled (width_f*stem_w) shifted (x,y)
+enddef;
+
+def barpath (expr x_start, y_start, start_rounding_f,
+ x_end, y_end, end_rounding_f,
+ curve_angle, tightness_f, i) =
+ begingroup
+ save dx, dy;
+ save l;
+ save xy_angle, a;
+ save midshift;
+ save bar_path;
+ path bar_path;
+
+ dx = x_end-x_start;
+ dy = y_end-y_start;
+ l = dx++dy;
+ xy_angle = angle(dx,dy)-90;
+ a = curve_angle/2;
+ if a = 0: midshift=0;
+ else: midshift = l*(1-cosd a)/(2*sind a);fi
+
+ z[i] = .5stem_w*start_rounding_f*down rotated -a;
+ z[i+1]l = .5stem_w*((1+round_adj_f*(1-start_rounding_f))*cosd -135, start_rounding_f*sind -135) rotated -a;
+ z[i+1]r = .5stem_w*((1+round_adj_f*(1-start_rounding_f))*cosd -45, start_rounding_f*sind -45) rotated -a;
+ .5[z[i+2]r, z[i+2]l] = origin;
+ z[i+2]r - z[i+2]l = stem_w * dir -a;
+ .5[z[i+3]r, z[i+3]l] = (midshift, l/2);
+ z[i+3]r - z[i+3]l = (stem_w*(1-tightness_f), 0);
+ .5[z[i+4]r, z[i+4]l] = (0, l);
+ z[i+4]r - z[i+4]l = stem_w * dir a;
+ z[i+5]l = (.5stem_w*((1+round_adj_f*(1-start_rounding_f))*cosd 135, end_rounding_f*sind 135) rotated a) + (0, l);
+ z[i+5]r = (.5stem_w*((1+round_adj_f*(1-start_rounding_f))*cosd 45, end_rounding_f*sind 45) rotated a) + (0, l);
+ z[i+6] = (.5stem_w*end_rounding_f*up rotated a) + (0, l);
+
+ bar_path = z[i]{dir(180-a)}..z[i+1]l..z[i+2]l{dir(90-a)}..
+ z[i+3]l{up}..z[i+4]l{dir(90+a)}..z[i+5]l..
+ z[i+6]{dir a}..z[i+5]r..z[i+4]r{dir(a-90)}..
+ z[i+3]r{down}..
+ z[i+2]r{dir(-90-a)}..z[i+1]r..
+ cycle;
+ bar_path rotated xy_angle shifted (x_start, y_start)
+ endgroup
+enddef;
+
+def draw_arrowhead (expr x_centre, y_centre, arrowhead_w_f, arrowhead_l_f, dir, i) =
+ save arrowhead_w_adj_f;
+ save arrowhead_path;
+ path arrowhead_path;
+
+ if barshape="straight":
+ arrowhead_w_adj_f=arrowhead_w_f+0.7;
+ filldraw barpath( 0, -arrowhead_l_f/2*stem_w+stem_w/2, endrounding,
+ 0, arrowhead_l_f/2*stem_w, endrounding, 0, tightness_f, i)
+ rotated dir shifted (x_centre, y_centre);
+ filldraw barpath(-arrowhead_w_adj_f/2*stem_w, -arrowhead_l_f/2*stem_w, endrounding,
+ arrowhead_w_adj_f/2*stem_w, -arrowhead_l_f/2*stem_w, endrounding,
+ 0, tightness_f, i+10)
+ rotated dir shifted (x_centre, y_centre);
+ elseif barshape="curved":
+ arrowhead_w_adj_f=arrowhead_w_f;
+ z[i] =(0,-arrowhead_l_f/2*stem_w*0.92);
+ z[i+1]l=(-arrowhead_w_adj_f/2*stem_w,-arrowhead_l_f/2*stem_w);
+ z[i+1]r=( arrowhead_w_adj_f/2*stem_w,-arrowhead_l_f/2*stem_w);
+ z[i+2]l=(-arrowhead_w_adj_f/4*stem_w*1.4,stem_w/6);
+ z[i+2]r=( arrowhead_w_adj_f/4*stem_w*1.4,stem_w/6);
+ z[i+3]l=(-0.4*stem_w,(arrowhead_l_f/2-0.5)*stem_w);
+ z[i+3]r=( 0.4*stem_w,(arrowhead_l_f/2-0.5)*stem_w);
+ z[i+4] =(0,arrowhead_l_f/2*stem_w);
+ arrowhead_path = z[i]{left}..z[i+1]l..z[i+2]l..z[i+3]l{up}..
+ z[i+4]{right}..z[i+3]r{down}..z[i+2]r..z[i+1]r..cycle;
+ filldraw arrowhead_path rotated dir shifted (x_centre, y_centre);
+ elseif barshape="rounded":
+ arrowhead_w_adj_f=arrowhead_w_f+0.6;
+ filldraw barpath( 0, -arrowhead_l_f/2*stem_w+stem_w/2, endrounding,
+ 0, arrowhead_l_f/2*stem_w, endrounding, 0, tightness_f, i)
+ rotated dir shifted (x_centre, y_centre);
+ filldraw dotpath( 0, -arrowhead_l_f/2*stem_w, arrowhead_w_adj_f, i+20)
+ rotated dir shifted (x_centre, y_centre);
+ fi;
+enddef;
+
+
+def xhalf=(w/2-stem_w/2-margin_width) enddef;
+
+def xmid=(w/2) enddef;
+
+def yhalf=(h/2) enddef;
+
+def ymid=(h/2) enddef;
+
+def yhalfred=((h*topbarred)/2) enddef;
+
+def ymidred(expr yd)=(h*((((topbarred/2)-0.5)*yd)+0.5)) enddef;
+
+
+def draw_normal_f(expr rune, xd, yd, highdot, stemdot, twigdot) =
+ beginrunechar(rune, 1.08*base_width#+2*margin_width#);
+ save f_ymid_f;
+ save f_yup_f;
+ save f_xhighdot_f;
+ save f_twigdot_f;
+ save f_twigdotangel_f;
+ f_ymid_f=0.0;
+ if highdot:
+ f_yup_f=0.4;
+ f_xhighdot_f=0.4;
+ else:
+ f_yup_f=0.5;
+ fi;
+ if twigdot:
+ f_twigdot_f=0.52;
+ f_twigdotangel_f=(if curve_d=0:0 else:(1-cosd(curve_d/2))/(2*sind(curve_d/2)) fi);
+ fi;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*f_ymid_f*yhalf, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, toprounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*f_yup_f*yhalf, jointrounding,
+ xmid-xd*xhalf+xd*(1-f_yup_f)*yhalf, ymid+yd*yhalf, toprounding, xd*yd*curve_d, tightness_f, 40);
+ if highdot:
+ filldraw dotpath(xmid-xd*xhalf+xd*(1-f_yup_f)*yhalf*f_xhighdot_f, ymid+yd*(yhalf-stem_w/2), freedot_f, 50);
+ fi;
+ if stemdot:
+ filldraw dotpath(xmid-xd*xhalf, ymid+yd*yhalf*f_ymid_f+yd*stem_w/3, stemdot_f, 60);
+ fi;
+ if twigdot:
+ filldraw dotpath(xmid+xd*(-1+(1-(-1))*f_twigdot_f+(1-f_ymid_f)*(yhalf/xhalf)*(f_twigdotangel_f))*xhalf,
+ ymid+yd*(f_ymid_f+(1-f_ymid_f)*f_twigdot_f-(1-(-1))*(xhalf/yhalf)*(f_twigdotangel_f))*yhalf,
+ stemdot_f, 70);
+ fi;
+ endchar;
+enddef;
+
+def draw_medieval_f(expr rune, xd, yd) =
+ beginrunechar(rune, 1.2*base_width#+2*margin_width#);
+ save f_ylow_f;
+ save f_ymid_f;
+ save f_yup_f;
+ f_ylow_f=-0.2;
+ f_ymid_f=0.2;
+ f_yup_f=0.6;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*f_ylow_f*yhalf, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, toprounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*f_ymid_f*yhalf, jointrounding,
+ xmid-xd*xhalf+xd*(1-f_ymid_f)*yhalf, ymid+yd*yhalf, toprounding, xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*f_yup_f*yhalf, jointrounding,
+ xmid-xd*xhalf+xd*(1-f_yup_f)*yhalf, ymid+yd*yhalf, toprounding, xd*yd*curve_d, tightness_f, 50);
+ endchar;
+enddef;
+
+def draw_primitive_f(expr rune, xd, yd) =
+ beginrunechar(rune, 0.65*base_width#+2*margin_width#);
+ save f_yraise_f;
+ save f_ysep_f;
+ f_yraise_f=0.4;
+ f_ysep_f=0.54;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(1-f_yraise_f), jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, toprounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(1-f_yraise_f-f_ysep_f), jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(1-f_ysep_f), toprounding, xd*yd*curve_d, tightness_f, 40);
+ endchar;
+enddef;
+
+def draw_staveless_f(expr rune, xd, yd, long) =
+ save end_marker_width_f;
+ save end_marker_length_f;
+ end_marker_width_f=1.6;
+ end_marker_length_f=3.2;
+ beginrunechar(rune, end_marker_width_f*stem_w#+2*margin_width#);
+ save f_y_f;
+ if long:
+ f_y_f=0.5;
+ else:
+ f_y_f=-0.3;
+ fi;
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf*f_y_f, toprounding, 0, tightness_f, 20);
+ draw_arrowhead(xmid, ymid+yd*yhalf*f_y_f, end_marker_width_f, end_marker_length_f, -180+if yd=-1:180 else:0 fi+if loweredbars:180 else:0 fi, 30);
+ endchar;
+enddef;
+
+def draw_normal_u(expr rune, xd, yd, tight, marks) =
+ beginrunechar(rune, topbarred*0.98*base_width#+2*margin_width#);
+ save u_x_f;
+ save u_y_f;
+ save u_curvehigh_f;
+ save u_curvelow_f;
+ save y_cross_x_f;
+ save y_cross_xadj_f;
+ save y_cross_y_f;
+ save y_y_bary_f;
+ save y_y_lbranchy_f;
+ save y_y_rbranchy_f;
+ if tight:
+ u_x_f=0.6;
+ else:
+ u_x_f=0.715;
+ fi;
+ u_y_f=0.2;
+ if curve_d > 45:
+ u_curvelow_f=(1-(curve_d-45)/45)/4;
+ u_curvehigh_f=1+(1-(curve_d-45)/45)/4;
+ else:
+ u_curvelow_f=0.25;
+ u_curvehigh_f=1.25;
+ fi;
+ y_cross_x_f=0.4;
+ y_cross_xadj_f=0.06;
+ y_cross_y_f=0.9;
+ y_y_bary_f=0.15;
+ y_y_lbranchy_f=0.16;
+ y_y_rbranchy_f=0.14;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf*u_x_f, ymidred(yd)+yd*yhalfred*u_y_f, jointrounding, 0-u_curvehigh_f*xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf*u_x_f, ymidred(yd)+yd*yhalfred*u_y_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf, toprounding, -u_curvelow_f*xd*yd*curve_d, tightness_f, 40);
+ if marks=0:
+ elseif marks=1: % one dot
+ filldraw dotpath(xmid-xd*xhalf*0.07, ymidred(yd)-yd*yhalf*0.07, freedot_f, 50);
+ elseif marks=2: % two dots
+ filldraw dotpath(xmid-xd*xhalf*0.08, ymidred(yd)+yd*yhalf*0.06, freedot_f, 50);
+ filldraw dotpath(xmid-xd*xhalf*0.04, ymidred(yd)-yd*yhalf*0.34, freedot_f, 60);
+ elseif marks=3: % one bar
+ filldraw barpath(xmid-xd*xhalf*0.08, ymidred(yd)-yd*yhalf*0.06, endrounding,
+ xmid-xd*xhalf*0.04, ymidred(yd)-yd*yhalf, endrounding, 0, tightness_f, 50);
+ elseif marks=4: % one x
+ filldraw barpath(xmid-xd*xhalf*(y_cross_x_f+y_cross_xadj_f), ymid-yd*yhalf*y_cross_y_f, endrounding,
+ xmid+xd*xhalf*(y_cross_x_f-y_cross_xadj_f), ymid-yd*yhalf*y_cross_y_f+2*yd*xhalf*y_cross_x_f, endrounding, 0, tightness_f, 50);
+ filldraw barpath(xmid+xd*xhalf*(y_cross_x_f-y_cross_xadj_f), ymid-yd*yhalf*y_cross_y_f, endrounding,
+ xmid-xd*xhalf*(y_cross_x_f+y_cross_xadj_f), ymid-yd*yhalf*y_cross_y_f+2*yd*xhalf*y_cross_x_f, endrounding, 0, tightness_f, 60);
+ elseif marks=5: % one y
+ filldraw barpath(xmid-xd*xhalf*0.08, ymidred(yd)-yd*yhalf*y_y_bary_f, endrounding,
+ xmid-xd*xhalf*0.04, ymidred(yd)-yd*yhalf, endrounding, 0, tightness_f, 50);
+ filldraw barpath(xmid-xd*xhalf*0.08, ymidred(yd)-yd*yhalf*y_y_bary_f, endrounding,
+ xmid-xd*xhalf, ymidred(yd)+yd*yhalf*y_y_lbranchy_f, endrounding, 0, tightness_f, 60);
+ filldraw barpath(xmid-xd*xhalf*0.08, ymidred(yd)-yd*yhalf*y_y_bary_f, endrounding,
+ xmid+xd*xhalf*u_x_f, ymidred(yd)+yd*yhalf*y_y_rbranchy_f, endrounding, 0, tightness_f, 70);
+
+ fi;
+ endchar;
+enddef;
+
+def draw_medieval_w(expr rune, xd, yd) =
+ beginrunechar(rune, topbarred*1.1*base_width#+2*margin_width#);
+ save u_x_f;
+ save u_y_f;
+ save u_yinner_f;
+ save u_curvehigh_f;
+ save u_curvelow_f;
+ u_x_f=0.715;
+ u_y_f=0.2;
+ u_yinner_f=0.5;
+ if curve_d > 45:
+ u_curvelow_f=(1-(curve_d-45)/45)/4;
+ u_curvehigh_f=1+(1-(curve_d-45)/45)/3;
+ else:
+ u_curvelow_f=0.25;
+ u_curvehigh_f=1.33;
+ fi;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf*u_x_f, ymidred(yd)+yd*yhalfred*u_y_f, jointrounding, 0-u_curvehigh_f*xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf*u_x_f, ymidred(yd)+yd*yhalfred*u_y_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf, toprounding, -u_curvelow_f*xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)+yd*yhalfred*u_yinner_f, jointrounding,
+ xmid-xd*xhalf*(1-(1+u_x_f)/2), ymidred(yd)+yd*yhalfred*u_y_f*(1-2*(1-u_yinner_f)), jointrounding, 0-u_curvehigh_f*xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid-xd*xhalf*(1-(1+u_x_f)/2), ymidred(yd)+yd*yhalfred*u_y_f*(1-2*(1-u_yinner_f)), jointrounding,
+ xmid, ymid-yd*yhalf, toprounding, -u_curvelow_f*xd*yd*curve_d, tightness_f, 60);
+
+ endchar;
+enddef;
+
+def draw_primitive_U(expr rune, xd, yd, symmetric) =
+ beginrunechar(rune, topbarred*1.02*base_width#+2*margin_width#);
+ save U_x_f;
+ if symmetric:
+ U_x_f=0;
+ else:
+ U_x_f=0.99;
+ fi;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf*U_x_f, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-((1-topbarred)*(1-U_x_f)+U_x_f)*xd*xhalf, ymidred(yd)+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf, toprounding, 0, tightness_f, 30);
+ endchar;
+enddef;
+
+def draw_staveless_u(expr rune, xd, yd) =
+ beginrunechar(rune, 0.6*base_width#+2*margin_width#);
+ save u_xmid_f;
+ save u_ytop_f;
+ save u_ymid_f;
+ save u_curvehigh_d;
+ save u_curvelow_d;
+ u_xmid_f=0.6;
+ u_ytop_f=0.6;
+ u_ymid_f=0.15;
+ u_curvelow_d=25;
+ u_curvehigh_d=65;
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*u_ytop_f, endrounding,
+ xmid+xd*xhalf*u_xmid_f, ymid+yd*yhalf*u_ymid_f, jointrounding, -u_curvehigh_d*xd*yd, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf*u_xmid_f, ymid+yd*yhalf*u_ymid_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf, toprounding, -u_curvelow_d*xd*yd, tightness_f, 30);
+ endchar;
+enddef;
+
+def draw_normal_th(expr rune, xd, yd, big, dot, doubble) =
+ save th_width_f;
+ if big:
+ th_width_f=0.7;
+ elseif doubble:
+ th_width_f=0.85;
+ else:
+ th_width_f=0.65;
+ fi;
+ beginrunechar(rune, th_width_f*base_width#+2*margin_width#);
+ save th_y_f;
+ save th_innery_f;
+ save dot_x;
+ if big:
+ th_y_f=1-(1-topbarred)*2;
+ elseif doubble:
+ th_y_f=0.7;
+ th_innery_f=0.3;
+ else:
+ th_y_f=0.44;
+ fi;
+ dot_x=1/6*(90-xd*yd*curve_d)/90;
+
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf*th_y_f, jointrounding,
+ xmid+xd*xhalf, ymid, jointrounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*th_y_f, jointrounding,
+ xmid+xd*xhalf, ymid, jointrounding, -xd*yd*curve_d, tightness_f, 40);
+ if doubble:
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf*th_innery_f, jointrounding,
+ xmid, ymid, jointrounding, xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*th_innery_f, jointrounding,
+ xmid, ymid, jointrounding, -xd*yd*curve_d, tightness_f, 60);
+ fi;
+ if dot:
+ filldraw dotpath(xmid-xd*xhalf*dot_x, ymid, freedot_f, 70);
+ fi;
+ endchar;
+enddef;
+
+def draw_staveless_th(expr rune, xd, yd) =
+ beginrunechar(rune, stem_w#+2*margin_width#);
+ save th_y_f;
+ m_y_f=0.44;
+ filldraw barpath(xmid, ymid-yd*yhalf*m_y_f, endrounding,
+ xmid, ymid+yd*yhalf*m_y_f, endrounding, 0, tightness_f, 20);
+ endchar;
+enddef;
+
+def draw_normal_single_A(expr rune, xd, yd, top) =
+ beginrunechar(rune, 0.6*base_width#+2*margin_width#);
+ save A_ysep_f;
+ save A_ydrop_f;
+ save A_ymid_f;
+ A_ysep_f=0.26;
+ A_ydrop_f=0.4;
+ if top:
+ A_ymid_f=1-A_ysep_f;
+ else:
+ A_ymid_f=0.14;
+ fi;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(A_ymid_f+A_ysep_f), jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(A_ymid_f+A_ysep_f-A_ydrop_f), endrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(A_ymid_f-A_ysep_f), jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(A_ymid_f-A_ysep_f-A_ydrop_f), endrounding, 0, tightness_f, 40);
+ endchar;
+enddef;
+
+def draw_staveless_A(expr rune, xd, yd, pos, down) =
+ save arrowhead_w_f;
+ save arrowhead_l_f;
+ save A_width_f;
+ save A_dir_d;
+ arrowhead_w_f=1.6;
+ arrowhead_l_f=3.2;
+ if down:
+ A_dir_d=180;
+ else:
+ A_dir_d=-125;
+ fi;
+ A_width_f=max(abs(sind(A_dir_d))*arrowhead_l_f,
+ abs(cosd(A_dir_d))*arrowhead_w_f)*stem_w#/base_width#;
+ beginrunechar(rune, A_width_f*base_width#+2*margin_width#);
+ save A_y_f;
+ A_y_f=0.6;
+ if pos=1: %high
+ draw_arrowhead(xmid, ymid+yd*yhalf*A_y_f, arrowhead_w_f, arrowhead_l_f, if yd=1: xd*A_dir_d else: xd*(180-A_dir_d) fi, 20);
+ elseif pos=2: %mid
+ draw_arrowhead(xmid, ymid , arrowhead_w_f, arrowhead_l_f, if yd=1: xd*A_dir_d else: xd*(180-A_dir_d) fi, 20);
+ elseif pos=3: %low
+ draw_arrowhead(xmid, ymid-yd*yhalf*A_y_f, arrowhead_w_f, arrowhead_l_f, if yd=1: xd*A_dir_d else: xd*(180-A_dir_d) fi, 20);
+ fi;
+ endchar;
+enddef;
+
+def draw_anglo_o(expr rune, xd, yd, two) =
+ beginrunechar(rune, 0.87*base_width#+2*margin_width#);
+ save A_ysep_f;
+ save A_ydrop_f;
+ save A_ymid_f;
+ save o_x_f;
+ A_ysep_f=0.26;
+ A_ydrop_f=0.4;
+ A_ymid_f=1-A_ysep_f;
+ o_x_f=0.23;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)+yd*yhalfred*(A_ymid_f+A_ysep_f), jointrounding,
+ xmid+xd*xhalf*o_x_f, ymidred(yd)+yd*yhalfred*(A_ymid_f+A_ysep_f-A_ydrop_f), jointrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)+yd*yhalfred*(A_ymid_f-A_ysep_f), jointrounding,
+ xmid+xd*xhalf*o_x_f, ymidred(yd)+yd*yhalfred*(A_ymid_f-A_ysep_f-A_ydrop_f), if two: jointrounding else: endrounding fi, 0, tightness_f, 40);
+ filldraw barpath(xmid+xd*xhalf*o_x_f, ymidred(yd)+yd*yhalfred*(A_ymid_f+A_ysep_f-A_ydrop_f), jointrounding,
+ xmid+xd*xhalf, ymidred(yd)+yd*yhalfred*(A_ymid_f+A_ysep_f), endrounding, 0, tightness_f, 50);
+ if two:
+ filldraw barpath(xmid+xd*xhalf*o_x_f, ymidred(yd)+yd*yhalfred*(A_ymid_f-A_ysep_f-A_ydrop_f), jointrounding,
+ xmid+xd*xhalf, ymidred(yd)+yd*yhalfred*(A_ymid_f-A_ysep_f), endrounding, 0, tightness_f, 60);
+ fi;
+ endchar;
+enddef;
+
+def draw_normal_double_A(expr rune, xd, yd, three, stlb, sblb) = % Skip Top Left Bar, Skip Bottom Left Bar
+ beginrunechar(rune, 1.05*base_width#+2*margin_width#);
+ save A_ysep_f;
+ save A_ydrop_f;
+ if three:
+ A_ysep_f=0.36;
+ else:
+ A_ysep_f=0.24;
+ fi;
+ A_ydrop_f=0.3;
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ if stlb:
+ filldraw barpath(xmid, ymid+yd*yhalf*(A_ysep_f), endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(A_ysep_f-A_ydrop_f), endrounding, 0, tightness_f, 30);
+ else:
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(A_ysep_f+A_ydrop_f), endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(A_ysep_f-A_ydrop_f), endrounding, 0, tightness_f, 30);
+ fi;
+ if three:
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(A_ydrop_f), endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(-A_ydrop_f), endrounding, 0, tightness_f, 40);
+ fi;
+ if sblb:
+ filldraw barpath(xmid, ymid+yd*yhalf*(-A_ysep_f), endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(-A_ysep_f-A_ydrop_f), endrounding, 0, tightness_f, 50);
+ else:
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(-A_ysep_f+A_ydrop_f), endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(-A_ysep_f-A_ydrop_f), endrounding, 0, tightness_f, 50);
+ fi;
+ endchar;
+enddef;
+
+def draw_normal_r(expr rune, xd, yd, closed, topdot) =
+ beginrunechar(rune, topbarred*0.92*base_width#+2*margin_width#);
+ save r_xup_f;
+ save r_yup_f;
+ save r_xmid_f;
+ save r_ymid_f;
+ save r_curve_f;
+ r_xup_f=0.78;
+ r_yup_f=0.36;
+ if closed:
+ r_ymid_f=0;
+ r_xmid_f=0.9;
+ else:
+ r_ymid_f=0.06;
+ r_xmid_f=0.3;
+ fi;
+ r_curve_f=0.63+0.37*abs(xd*yd*curve_d-45)/45;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf+xd*1, ymidred(yd)+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf*r_xup_f, ymidred(yd)+yd*yhalfred*r_yup_f, jointrounding, -r_curve_f*xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf*r_xup_f, ymidred(yd)+yd*yhalfred*r_yup_f, jointrounding,
+ xmid-xd*xhalf*r_xmid_f, ymidred(yd)-yd*yhalfred*r_ymid_f, jointrounding, -r_curve_f*xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf*r_xmid_f, ymidred(yd)-yd*yhalfred*r_ymid_f, jointrounding,
+ xmid+xd*xhalf, ymidred(yd)-yd*yhalfred, toprounding, -r_curve_f*xd*yd*curve_d, tightness_f, 50);
+ if topdot:
+ filldraw dotpath(xmid-xd*xhalf/3, ymid+yd*yhalfred*(1+r_yup_f+r_ymid_f)/3, freedot_f, 60);
+ fi;
+
+ endchar;
+enddef;
+
+def draw_greenland_r(expr rune, xd, yd) =
+ beginrunechar(rune, topbarred*0.92*base_width#+2*margin_width#);
+ save r_ytopend_f;
+ save r_ybottomstart_f;
+ r_ytopend_f=0.0;
+ r_ybottomstart_f=0.2;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf+xd*1, ymid+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalfred*r_ytopend_f, endrounding, -xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalfred*r_ybottomstart_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalfred, endrounding, -xd*yd*curve_d, tightness_f, 40);
+ endchar;
+enddef;
+
+def draw_normal_k(expr rune, xd, yd, topdot, middot, midtwig, two) =
+ beginrunechar(rune, 0.9*base_width#+2*margin_width#);
+ save k_ymid_f;
+ k_ymid_f=0.1;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*k_ymid_f, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, toprounding, xd*yd*curve_d, tightness_f, 30);
+ if two:
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf*k_ymid_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf, toprounding, -xd*yd*curve_d, tightness_f, 40);
+ fi;
+ if topdot:
+ filldraw dotpath(xmid-xd*xhalf/3+xd*stem_w/3, ymid+yd*yhalf*(2+k_ymid_f)/3+yd*stem_w/2, freedot_f, 50);
+ if two:
+ filldraw dotpath(xmid-xd*xhalf/3+xd*stem_w/3, ymid-yd*yhalf*(2+k_ymid_f)/3-yd*stem_w/2, freedot_f, 60);
+ fi;
+ fi;
+ if middot:
+ filldraw dotpath(xmid-xd*xhalf, ymid+yd*yhalf*k_ymid_f+yd*stem_w/3, stemdot_f, 70);
+ fi;
+ if midtwig:
+ filldraw barpath(xmid-xd*xhalf-xd*twig_length_f*stem_w/2, ymid+yd*yhalf*k_ymid_f-yd*3*stem_w/2, endrounding,
+ xmid-xd*xhalf+xd*twig_length_f*stem_w/2, ymid+yd*yhalf*k_ymid_f-yd*3*stem_w/2, endrounding, 0, tightness_f, 80);
+ fi;
+ endchar;
+enddef;
+
+def draw_primitive_k(expr rune, xd, yd) =
+ beginrunechar(rune, 0.72*base_width#+2*margin_width#);
+ save k_y_f;
+ k_y_f=0.54;
+ filldraw barpath(xmid-xd*xhalf, ymid, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf*k_y_f, endrounding, xd*yd*curve_d, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*k_y_f, endrounding, -xd*yd*curve_d, tightness_f, 30);
+ endchar;
+enddef;
+
+def draw_primitive_kup(expr rune, xd, yd, stem, big) =
+ beginrunechar(rune, 1.12*base_width#+2*margin_width#);
+ save k_yupsep_f;
+ save k_yupmid_f;
+ if big:
+ k_yupsep_f=0.4;
+ k_yupmid_f=0.6;
+ else:
+ k_yupsep_f=1/3;
+ k_yupmid_f=0.0;
+ fi;
+ if stem:
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf*(k_yupmid_f-k_yupsep_f), jointrounding, 0, tightness_f, 20);
+ fi;
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(k_yupmid_f+k_yupsep_f), endrounding,
+ xmid, ymid+yd*yhalf*(k_yupmid_f-k_yupsep_f), jointrounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf, ymid+yd*yhalf*(k_yupmid_f+k_yupsep_f), endrounding,
+ xmid, ymid+yd*yhalf*(k_yupmid_f-k_yupsep_f), jointrounding, -xd*yd*curve_d, tightness_f, 40);
+ endchar;
+enddef;
+
+def draw_primitive_g(expr rune, xd, yd, v_stem, h_angles, eye) =
+ save g_width_f;
+ if v_stem:
+ g_width_f=1.3;
+ else:
+ g_width_f=1.1;
+ fi;
+ beginrunechar(rune, g_width_f*base_width#+2*margin_width#);
+ save eye_x_f;
+ save eye_y_f;
+ save eye_curve_f;
+ save h_angle_f;
+ eye_x_f=0.8 - if mag <= 1: 0; elseif mag <= 2: (mag-1)/5; else: 0.2; fi;
+ eye_y_f=0.45 - if mag <= 1: 0; elseif mag <= 2: (mag-1)/5; else: 0.2; fi;
+ eye_curve_f=0.8;
+ h_angle_f=0.3;
+ if v_stem:
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ fi;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf, toprounding,
+ xmid+xd*xhalf, ymid-yd*yhalf, toprounding, 0, tightness_f, 40);
+ if eye:
+ filldraw barpath(xmid, ymid+yd*yhalf*eye_y_f, jointrounding,
+ xmid-xd*xhalf*eye_x_f, ymid, jointrounding, eye_curve_f*xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid-xd*xhalf*eye_x_f, ymid, jointrounding,
+ xmid, ymid-yd*yhalf*eye_y_f, jointrounding, eye_curve_f*xd*yd*curve_d, tightness_f, 60);
+ filldraw barpath(xmid, ymid-yd*yhalf*eye_y_f, jointrounding,
+ xmid+xd*xhalf*eye_x_f, ymid, jointrounding, eye_curve_f*xd*yd*curve_d, tightness_f, 70);
+ filldraw barpath(xmid+xd*xhalf*eye_x_f, ymid, jointrounding,
+ xmid, ymid+yd*yhalf*eye_y_f, jointrounding, eye_curve_f*xd*yd*curve_d, tightness_f, 80);
+ elseif h_angles:
+ filldraw barpath(xmid-xd*xhalf*h_angle_f, ymid+yd*yhalf*h_angle_f, jointrounding,
+ xmid-xd*xhalf*eye_x_f, ymid, jointrounding, eye_curve_f*xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid-xd*xhalf*eye_x_f, ymid, jointrounding,
+ xmid-xd*xhalf*h_angle_f, ymid-yd*yhalf*h_angle_f, jointrounding, eye_curve_f*xd*yd*curve_d, tightness_f, 60);
+ filldraw barpath(xmid+xd*xhalf*h_angle_f, ymid-yd*yhalf*h_angle_f, jointrounding,
+ xmid+xd*xhalf*eye_x_f, ymid, jointrounding, eye_curve_f*xd*yd*curve_d, tightness_f, 70);
+ filldraw barpath(xmid+xd*xhalf*eye_x_f, ymid, jointrounding,
+ xmid+xd*xhalf*h_angle_f, ymid+yd*yhalf*h_angle_f, jointrounding, eye_curve_f*xd*yd*curve_d, tightness_f, 80);
+ fi;
+ endchar;
+enddef;
+
+def draw_primitive_w(expr rune, xd, yd) =
+ beginrunechar(rune, topbarred*0.7*base_width#+2*margin_width#);
+ save w_y_f;
+ w_y_f=0.0;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymidred(yd)+yd*yhalfred*(1+w_y_f)/2, jointrounding, -xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf, ymidred(yd)+yd*yhalfred*(1+w_y_f)/2, jointrounding,
+ xmid-xd*xhalf, ymidred(yd)+yd*yhalfred*w_y_f, jointrounding, -xd*yd*curve_d, tightness_f, 40);
+ endchar;
+enddef;
+
+def draw_normal_h(expr rune, xd, yd, NWSE, NESW, dot) =
+ beginrunechar(rune, 0.95*base_width#+2*margin_width#);
+ save h_y_f;
+ h_y_f=0.36;
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ if NWSE:
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*h_y_f, endrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf*h_y_f, endrounding, 0, tightness_f, 30);
+ fi;
+ if NESW:
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf*h_y_f, endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*h_y_f, endrounding, 0, tightness_f, 40);
+ fi;
+ if dot:
+ filldraw dotpath(xmid, ymid, stemdot_f, 50);
+ fi;
+ endchar;
+enddef;
+
+def draw_medieval_h(expr rune, xd, yd, twigs, offset) =
+ beginrunechar(rune, 1.2*base_width#+2*margin_width#);
+ for i=0 step 1 until twigs-1:
+ filldraw barpath(xmid, ymid, jointrounding,
+ xmid+xd*xhalf*cosd(i/twigs*360+offset), ymid+yd*xhalf*sind(i/twigs*360+offset), endrounding, 0, tightness_f, 20+i*10);
+ endfor;
+ endchar;
+enddef;
+
+def draw_medieval_bigh(expr rune, xd, yd) =
+ save bigh_twigs_n;
+ save bigh_offset_d;
+ bigh_twigs_n=8;
+ bigh_offset_d=90;
+ beginrunechar(rune, 1.2*base_width#+2*margin_width#);
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ for i=1 step 1 until bigh_twigs_n/2-1:
+ filldraw barpath(xmid-xd*xhalf*cosd(i/bigh_twigs_n*360+bigh_offset_d), ymid-yd*xhalf*sind(i/bigh_twigs_n*360+bigh_offset_d), jointrounding,
+ xmid+xd*xhalf*cosd(i/bigh_twigs_n*360+bigh_offset_d), ymid+yd*xhalf*sind(i/bigh_twigs_n*360+bigh_offset_d), jointrounding, 0, tightness_f, 20+i*10);
+ endfor;
+ endchar;
+enddef;
+
+def draw_shorttwig_n(expr rune, xd, yd, middot, sidedot) =
+ save n_width_f;
+ if sidedot:
+ n_width_f=0.75;
+ else:
+ n_width_f=0.55;
+ fi;
+ beginrunechar(rune,n_width_f*base_width#+2*margin_width#);
+ save n_ymid_f;
+ save n_ydrop_f;
+ save n_xdot_f;
+ save n_ydot_f;
+ n_ymid_f=0.0;
+ n_ydrop_f=0.18;
+ n_xdot_f=0.17;
+ n_ydot_f=0.12;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(n_ymid_f+n_ydrop_f), endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(n_ymid_f-n_ydrop_f), endrounding, 0, tightness_f, 30);
+
+ if middot:
+ filldraw dotpath(xmid-xd*xhalf, ymid+yd*yhalf*(n_ymid_f+n_ydrop_f)-yd*stem_w/3, stemdot_f, 40);
+ fi;
+ if sidedot:
+ filldraw dotpath(xmid-xd*xhalf*n_xdot_f, ymid+yd*yhalf*(n_ymid_f-n_ydrop_f-n_ydot_f), freedot_f, 50);
+ fi;
+ endchar;
+enddef;
+
+def draw_primitive_h(expr rune, xd, yd, top, twobars) =
+ beginrunechar(rune, 1.1*base_width#+2*margin_width#);
+ save h_ymid_f;
+ save h_ytop_f;
+ save h_ysep_f;
+ h_ymid_f=0.16;
+ h_ytop_f=0.96;
+ h_ysep_f=0.16;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 30);
+ if top:
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalfred*h_ytop_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalfred*h_ytop_f, jointrounding, 0, tightness_f, 40);
+ else:
+ if twobars:
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(h_ymid_f-h_ysep_f), jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(-h_ymid_f-h_ysep_f), jointrounding, 0, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(h_ymid_f+h_ysep_f), jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(-h_ymid_f+h_ysep_f), jointrounding, 0, tightness_f, 40);
+ else:
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*h_ymid_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf*h_ymid_f, jointrounding, 0, tightness_f, 40);
+ fi;
+ fi;
+ endchar;
+enddef;
+
+def draw_normal_i(expr rune, xd, yd, dot, twig, high, top, twodots, circle) =
+ save i_width_f;
+ if twig:
+ i_width_f=twig_length_f+1;
+ elseif dot or twodots:
+ i_width_f=stemdot_f;
+ elseif circle:
+ i_width_f=stemcircle_f;
+ else:
+ i_width_f=1.0;
+ fi;
+ beginrunechar(rune, i_width_f*stem_w#+2*margin_width#);
+ save i_ystem_f;
+ save i_ydottwig_f;
+ if top:
+ i_ystem_f=0.7;
+ i_ydottwig_f=0.7;
+ else:
+ i_ystem_f=1.0;
+ if high:
+ i_ydottwig_f=0.6;
+ elseif twodots:
+ i_ydottwig_f=0.3;
+ else: %mid
+ i_ydottwig_f=0.0;
+ fi;
+ fi;
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf*i_ystem_f, toprounding, 0, tightness_f, 20);
+ if dot:
+ filldraw dotpath(xmid, ymid+yd*yhalf*i_ydottwig_f, stemdot_f, 30);
+ elseif twodots:
+ filldraw dotpath(xmid, ymid+yd*yhalf*i_ydottwig_f, stemdot_f, 30);
+ filldraw dotpath(xmid, ymid-yd*yhalf*i_ydottwig_f, stemdot_f, 40);
+ fi;
+ if twig:
+ filldraw barpath(xmid-twig_length_f*stem_w/2, ymid+yd*yhalf*i_ydottwig_f, endrounding,
+ xmid+twig_length_f*stem_w/2, ymid+yd*yhalf*i_ydottwig_f, endrounding, 0, tightness_f, 50);
+ fi;
+ if circle:
+ draw_circle(xmid, ymid+yd*yhalf*i_ydottwig_f, stemcircle_f, 60);
+ fi;
+ endchar;
+enddef;
+
+def draw_roek_i(expr rune, xd, yd) =
+ beginrunechar(rune, 1.3*base_width#+2*margin_width#);
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+1, ymidred(yd)-yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymidred(yd)-yd*yhalfred/2, jointrounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf, ymidred(yd)-yd*yhalfred/2, jointrounding,
+ xmid, ymid, jointrounding, xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid, ymidred(yd)+yd*yhalfred, jointrounding,
+ xmid-xd*xhalf, ymidred(yd)+yd*yhalfred/2, jointrounding, xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)+yd*yhalfred/2, jointrounding,
+ xmid-1, ymid, jointrounding, xd*yd*curve_d, tightness_f, 60);
+ endchar;
+enddef;
+
+def draw_primitive_j(expr rune, xd, yd) =
+ beginrunechar(rune, 1.0*base_width#+2*margin_width#);
+ save j_y_f;
+ j_y_f=2/9;
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*j_y_f, jointrounding,
+ xmid, ymid+yd*yhalf*3*j_y_f, endrounding, -xd*yd*curve_d, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*j_y_f, jointrounding,
+ xmid, ymid-yd*yhalf*j_y_f, endrounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf*j_y_f, jointrounding,
+ xmid, ymid-yd*yhalf*3*j_y_f, endrounding, -xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf*j_y_f, jointrounding,
+ xmid, ymid+yd*yhalf*j_y_f, endrounding, xd*yd*curve_d, tightness_f, 50);
+ endchar;
+enddef;
+
+def draw_primitive_jup(expr rune, xd, yd) =
+ beginrunechar(rune, 1.3*base_width#+2*margin_width#);
+ save j_yup_f;
+ j_yup_f=0.50;
+ filldraw barpath(xmid-xd*xhalf, ymid, endrounding,
+ xmid-xd*xhalf/3, ymid-yd*yhalf*j_yup_f, jointrounding, xd*yd*curve_d, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf/3, ymid-yd*yhalf*j_yup_f, jointrounding,
+ xmid+xd*xhalf/3, ymid, endrounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf/3, ymid, endrounding,
+ xmid+xd*xhalf/3, ymid+yd*yhalf*j_yup_f, jointrounding, -xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid+xd*xhalf/3, ymid+yd*yhalf*j_yup_f, jointrounding,
+ xmid+xd*xhalf, ymid, endrounding, -xd*yd*curve_d, tightness_f, 50);
+ endchar;
+enddef;
+
+def draw_anglo_j(expr rune, xd, yd) =
+ beginrunechar(rune, 1.6*base_width#+2*margin_width#);
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid, endrounding,
+ xmid+xd*xhalf, ymid, endrounding, 0, tightness_f, 30);
+ endchar;
+enddef;
+
+def draw_primitive_I(expr rune, xd, yd) =
+ beginrunechar(rune, topbarred*1.1*base_width#+2*margin_width#);
+ save I_y_f;
+ save I_curve_f;
+ I_y_f=0.48;
+ I_curve_f=0.25;
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*1, ymid+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalfred*I_y_f, endrounding, -I_curve_f*xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid-xd*1, ymid-yd*yhalfred, jointrounding,
+ xmid-xd*xhalf, ymid-yd*yhalfred*I_y_f, endrounding, -I_curve_f*xd*yd*curve_d, tightness_f, 40);
+ endchar;
+enddef;
+
+def draw_roek_a(expr rune, xd, yd) =
+ beginrunechar(rune, 0.65*base_width#+2*margin_width#);
+ save a_y_f;
+ save a_ycorner_f;
+ a_y_f=0.16;
+ a_ycorner_f=0.36;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf*a_y_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf*a_ycorner_f, jointrounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf*a_ycorner_f, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*a_ycorner_f, jointrounding, xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid+xd*xhalf, ymid+yd*yhalf*a_ycorner_f, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf*a_y_f, jointrounding, xd*yd*curve_d, tightness_f, 50);
+ endchar;
+enddef;
+
+def draw_primitive_p(expr rune, xd, yd) =
+ beginrunechar(rune, topbarred*1.0*base_width#+2*margin_width#);
+ save p_x_f;
+ save p_y_f;
+ save p_curve_f;
+ p_x_f=0.06;
+ p_y_f=0.6;
+ p_curve_f=0.25;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, topjointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalfred, jointrounding,
+ xmid+xd*xhalf*p_x_f, ymid-yd*yhalfred*p_y_f, jointrounding, -p_curve_f*xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalfred, jointrounding,
+ xmid+xd*xhalf*p_x_f, ymid-yd*yhalfred*p_y_f, jointrounding, p_curve_f*xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf*p_x_f, ymid+yd*yhalfred*p_y_f, jointrounding, p_curve_f*xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid+xd*xhalf, ymid+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf*p_x_f, ymid+yd*yhalfred*p_y_f, jointrounding, -p_curve_f*xd*yd*curve_d, tightness_f, 60);
+ endchar;
+enddef;
+
+def draw_frisian_p(expr rune, xd, yd) =
+ beginrunechar(rune, topbarred*0.63*base_width#+2*margin_width#);
+ save p_y_f;
+ save p_curve_f;
+ p_y_f=0.55;
+ p_curve_f=0.25;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, topjointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalfred*p_y_f, jointrounding, p_curve_f*xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalfred*p_y_f, jointrounding, -p_curve_f*xd*yd*curve_d, tightness_f, 40);
+ endchar;
+enddef;
+
+def draw_normal_s(expr rune, xd, yd, twobars, chair, high, twigs, flat) =
+ save s_width_f;
+ if twigs:
+ s_width_f=0.80;
+ else:
+ s_width_f=0.75;
+ fi;
+ beginrunechar(rune, s_width_f*base_width#+2*margin_width#);
+ save s_xtop_f;
+ save s_ymid_f;
+ save s_ymidmid_f;
+ save s_ysep_f;
+ save s_ytwig_f;
+ if chair or high or twigs:
+ s_xtop_f=1.0;
+ else:
+ s_xtop_f=0.8;
+ fi;
+ if twobars:
+ s_ysep_f=0.22;
+ else:
+ s_ysep_f=0.0;
+ fi;
+ if high:
+ s_ymidmid_f=0.68;
+ s_ymid_f=0.28;
+ else:
+ s_ymidmid_f=0.0;
+ if flat:
+ s_ymid_f=-0.08;
+ else:
+ s_ymid_f=0.08;
+ fi;
+ fi;
+ s_ytwig_f=0.6;
+ filldraw barpath(xmid-xd*xhalf*s_xtop_f, ymid+yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf*(s_ymidmid_f-s_ymid_f-s_ysep_f), jointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*(s_ymidmid_f-s_ymid_f-s_ysep_f), jointrounding,
+ xmid+xd*xhalf*(1+s_xtop_f)/2, ymid+yd*yhalf*(s_ymidmid_f+s_ymid_f-s_ysep_f), jointrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf*(1+s_xtop_f)/2, ymid+yd*yhalf*(s_ymidmid_f-s_ymid_f+s_ysep_f), jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*(s_ymidmid_f+s_ymid_f+s_ysep_f), jointrounding, 0, tightness_f, 40);
+ filldraw barpath(xmid+xd*xhalf, ymid+yd*yhalf*(s_ymidmid_f+s_ymid_f+s_ysep_f), jointrounding,
+ xmid+xd*xhalf*s_xtop_f, ymid-yd*yhalf, toprounding, 0, tightness_f, 50);
+ if chair:
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 60);
+ fi;
+ if twigs:
+ filldraw barpath(xmid-xd*xhalf*s_xtop_f-xd*twig_length_f*stem_w/2, ymid+yd*yhalf*s_ytwig_f, endrounding,
+ xmid-xd*xhalf*s_xtop_f+xd*twig_length_f*stem_w/2, ymid+yd*yhalf*s_ytwig_f, endrounding, 0, tightness_f, 70);
+ filldraw barpath(xmid+xd*xhalf*s_xtop_f-xd*twig_length_f*stem_w/2, ymid-yd*yhalf*s_ytwig_f, endrounding,
+ xmid+xd*xhalf*s_xtop_f+xd*twig_length_f*stem_w/2, ymid-yd*yhalf*s_ytwig_f, endrounding, 0, tightness_f, 80);
+ fi;
+ endchar;
+enddef;
+
+def draw_primitive_s(expr rune, xd, yd, strokes) =
+ save s_width_f;
+ s_width_f=(stem_h#/strokes+stem_w#)/base_width#;
+ beginrunechar(rune, s_width_f*base_width#+2*margin_width#);
+ xdir:=1;
+ for i=strokes step -2 until -strokes+2:
+ filldraw barpath(xmid+xdir*xd*xhalf, ymid+yd*yhalf*i/strokes, if i=strokes:toprounding else: jointrounding fi,
+ xmid-xdir*xd*xhalf, ymid+yd*yhalf*(i-2)/strokes, if i=-strokes+2:toprounding else: jointrounding fi, 0, tightness_f, (i+strokes)*10);
+ xdir:=-xdir;
+ endfor;
+ endchar;
+enddef;
+
+def draw_shorttwig_s(expr rune, xd, yd, dot, twig, hook, arrow, circle) =
+ save s_width_f;
+ if twig:
+ s_width_f=twig_length_f+1;
+ elseif hook:
+ s_width_f=0.7*twig_length_f+1;
+ elseif dot:
+ s_width_f=endstemdot_f;
+ elseif arrow:
+ s_width_f=1.4*twig_length_f+1;
+ elseif circle:
+ s_width_f=endstemcircle_f;
+ else:
+ s_width_f=1.0;
+ fi;
+ beginrunechar(rune, s_width_f*stem_w#+2*margin_width#);
+ save s_y_f;
+ save s_hooky_f;
+ s_y_f=0.1;
+ s_hooky_f=0.4;
+ filldraw barpath(xmid if hook: -xd*xhalf fi, ymid+yd*yhalf*s_y_f, toprounding,
+ xmid if hook: -xd*xhalf fi, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ if dot:
+ filldraw dotpath(xmid, ymid+yd*yhalf*s_y_f, endstemdot_f, 30);
+ fi;
+ if twig:
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*s_y_f, endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*s_y_f, endrounding, 0, tightness_f, 40);
+ fi;
+ if hook:
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*s_y_f, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*s_hooky_f, endrounding, 0, tightness_f, 50);
+ elseif arrow:
+ filldraw barpath(xmid, ymid+yd*yhalf*s_y_f, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf*s_hooky_f, endrounding, 0, tightness_f, 50);
+ filldraw barpath(xmid, ymid+yd*yhalf*s_y_f, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*s_hooky_f, endrounding, 0, tightness_f, 60);
+ elseif circle:
+ draw_circle(xmid, ymid+yd*(yhalf*s_y_f-endstemcircle_f*stem_w/2), endstemcircle_f, 50);
+ fi;
+ endchar;
+enddef;
+
+def draw_normal_t(expr rune, xd, yd, middot, topdots, doublearrow, arlaug, mid) =
+ save t_width_f;
+ if topdots:
+ t_width_f=1.28;
+ else:
+ t_width_f=1.1;
+ fi;
+ beginrunechar(rune, topbarred*t_width_f*base_width#+2*margin_width#);
+ save t_y_f;
+ save t_curve_f;
+ save t_topdotx_f;
+ t_curve_f=0.25;
+ t_y_f=0.42;
+ t_topdotx_f=0.43;
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ if mid:
+ filldraw barpath(xmid+xd*2, ymid+yd*yhalf*(1-t_y_f)/2, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf*(1-t_y_f)/2, endrounding, -t_curve_f*xd*yd*curve_d, tightness_f, 30);
+ else:
+ filldraw barpath(xmid+xd*2, ymidred(yd)+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymidred(yd)+yd*yhalfred*t_y_f, endrounding, -t_curve_f*xd*yd*curve_d, tightness_f, 30);
+ fi;
+ if mid or arlaug:
+ filldraw barpath(xmid-xd*2, ymid+yd*yhalf*(1-t_y_f)/2, jointrounding,
+ xmid-xd*xhalf, ymid-yd*yhalf*(1-t_y_f)/2, endrounding, t_curve_f*xd*yd*curve_d, tightness_f, 40);
+ else:
+ filldraw barpath(xmid-xd*2, ymidred(yd)+yd*yhalfred, jointrounding,
+ xmid-xd*xhalf, ymidred(yd)+yd*yhalfred*t_y_f, endrounding, t_curve_f*xd*yd*curve_d, tightness_f, 40);
+ fi;
+ if middot:
+ filldraw dotpath(xmid, ymidred(yd), stemdot_f, 50);
+ fi;
+ if topdots:
+ filldraw dotpath(xmid-xd*xhalf*t_topdotx_f, ymidred(yd)+yd*yhalfred*t_y_f, freedot_f, 60);
+ filldraw dotpath(xmid+xd*xhalf*t_topdotx_f, ymidred(yd)+yd*yhalfred*t_y_f, freedot_f, 70);
+ fi;
+ if doublearrow:
+ filldraw barpath(xmid+2, ymidred(yd)-yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymidred(yd)-yd*yhalfred*t_y_f, endrounding, xd*yd*-t_curve_f*xd*yd*curve_d, tightness_f, 80);
+ filldraw barpath(xmid-2, ymidred(yd)-yd*yhalfred, jointrounding,
+ xmid-xd*xhalf, ymidred(yd)-yd*yhalfred*t_y_f, endrounding, xd*yd*t_curve_f*xd*yd*curve_d, tightness_f, 90);
+ fi;
+ endchar;
+enddef;
+
+def draw_normal_b(expr rune, xd, yd, topdot, bottomdot, separated) =
+ save b_width_f;
+ if separated:
+ b_width_f=0.6;
+ else:
+ b_width_f=0.75;
+ fi;
+ beginrunechar(rune, topbarred*b_width_f*base_width#+2*margin_width#);
+ save b_yup_f;
+ save b_ymid_f;
+ save b_curve_f;
+ if separated:
+ b_yup_f=0.65;
+ b_ymid_f=0.3;
+ else:
+ b_yup_f=0.4;
+ b_ymid_f=0.0;
+ fi;
+ b_curve_f=0.63+0.37*abs(curve_d-45)/45;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, topjointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalfred*b_yup_f, jointrounding, -b_curve_f*xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf, ymid+yd*yhalfred*b_yup_f, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalfred*b_ymid_f, jointrounding, -b_curve_f*xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalfred*b_ymid_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalfred*b_yup_f, jointrounding, -b_curve_f*xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalfred*b_yup_f, jointrounding,
+ xmid-xd*xhalf, ymid-yd*yhalfred, jointrounding, -b_curve_f*xd*yd*curve_d, tightness_f, 60);
+ if topdot:
+ filldraw dotpath(xmid-xd*xhalf/4, ymid+yd*yhalfred*(1+b_yup_f+b_ymid_f)/3, freedot_f, 70);
+ fi;
+ if bottomdot:
+ filldraw dotpath(xmid-xd*xhalf/4, ymid-yd*yhalfred*(1+b_yup_f+b_ymid_f)/3, freedot_f, 80);
+ fi;
+ endchar;
+enddef;
+
+def draw_primitive_e(expr rune, xd, yd, closed, midstem) =
+ beginrunechar(rune, topbarred*1.25*base_width#+2*margin_width#);
+ save e_y_f;
+ save e_curve_f;
+ e_y_f=0.4;
+ e_curve_f=0.25;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf+1, ymid+yd*yhalfred, jointrounding,
+ xmid, ymid+yd*yhalfred*e_y_f, jointrounding, e_curve_f*xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid+xd*xhalf-1, ymid+yd*yhalfred, jointrounding,
+ xmid, ymid+yd*yhalfred*e_y_f, jointrounding, -e_curve_f*xd*yd*curve_d, tightness_f, 50);
+ if closed:
+ filldraw barpath(xmid-xd*xhalf+1, ymid-yd*yhalfred, jointrounding,
+ xmid, ymid-yd*yhalfred*e_y_f, jointrounding, -e_curve_f*xd*yd*curve_d, tightness_f, 60);
+ filldraw barpath(xmid+xd*xhalf-1, ymid-yd*yhalfred, jointrounding,
+ xmid, ymid-yd*yhalfred*e_y_f, jointrounding, e_curve_f*xd*yd*curve_d, tightness_f, 70);
+ fi;
+ if midstem:
+ filldraw barpath(xmid, ymid+yd*yhalfred*e_y_f, jointrounding,
+ xmid, ymid-yd*yhalfred*e_y_f, jointrounding, 0, tightness_f, 80);
+ fi;
+ endchar;
+enddef;
+
+def draw_primitive_E(expr rune, xd, yd, closed) =
+ beginrunechar(rune, topbarred*1.15*base_width#+2*margin_width#);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalfred, jointrounding, 0, tightness_f, 40);
+ if closed:
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalfred, jointrounding, 0, tightness_f, 40);
+ fi;
+ endchar;
+enddef;
+
+def draw_normal_m(expr rune, xd, yd, dots, double, tree) =
+ beginrunechar(rune, 1.3*base_width#+2*margin_width#);
+ save m_y_f;
+ save m_xdot_f;
+ save m_ydot_f;
+ m_xdot_f=0.4 + if mag <= 1: 0; elseif mag <= 2: (mag-1)/20; else: 0.05; fi;
+ m_ydot_f=0.85;
+ m_y_f=0.1;
+ filldraw barpath(xmid, ymid-yd*yhalf, if tree:jointrounding else:toprounding fi,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid, ymid+yd*yhalf*m_y_f, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, toprounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid, ymid+yd*yhalf*m_y_f, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, -xd*yd*curve_d, tightness_f, 40);
+ if double:
+ filldraw barpath(xmid, ymid-yd*yhalf*m_y_f, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf, toprounding, -xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid, ymid-yd*yhalf*m_y_f, jointrounding,
+ xmid-xd*xhalf, ymid-yd*yhalf, toprounding, xd*yd*curve_d, tightness_f, 60);
+ elseif tree:
+ filldraw barpath(xmid, ymid-yd*yhalf, jointrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf*m_y_f, toprounding, xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid, ymid-yd*yhalf, jointrounding,
+ xmid-xd*xhalf, ymid-yd*yhalf*m_y_f, toprounding, -xd*yd*curve_d, tightness_f, 60);
+ fi;
+ if dots:
+ filldraw dotpath(xmid+xd*xhalf*m_xdot_f, ymid+yd*yhalf*m_ydot_f, freedot_f, 70);
+ filldraw dotpath(xmid-xd*xhalf*m_xdot_f, ymid+yd*yhalf*m_ydot_f, freedot_f, 80);
+ if double:
+ filldraw dotpath(xmid+xd*xhalf*m_xdot_f, ymid-yd*yhalf*m_ydot_f, freedot_f, 90);
+ filldraw dotpath(xmid-xd*xhalf*m_xdot_f, ymid-yd*yhalf*m_ydot_f, freedot_f, 100);
+ fi;
+ fi;
+ endchar;
+enddef;
+
+def draw_normal_M(expr rune, xd, yd, dots) =
+ beginrunechar(rune, 1.0*topbarred*base_width#+2*margin_width#);
+ save M_ymid_f;
+ save M_xdot_f;
+ M_xdot_f=0.42;
+ M_ymid_f=0.04;
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-1, ymidred(yd)+yd*yhalfred, jointrounding,
+ xmid-xd*xhalf, ymidred(yd)+yd*yhalfred*(1+M_ymid_f)/2, jointrounding, xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)+yd*yhalfred*(1+M_ymid_f)/2, jointrounding,
+ xmid, ymidred(yd)+yd*yhalfred*M_ymid_f, jointrounding, xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid, ymidred(yd)+yd*yhalfred*M_ymid_f, jointrounding,
+ xmid+xd*xhalf, ymidred(yd)+yd*yhalfred*(1+M_ymid_f)/2, jointrounding, xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid+xd*xhalf, ymidred(yd)+yd*yhalfred*(1+M_ymid_f)/2, jointrounding,
+ xmid+1, ymidred(yd)+yd*yhalfred, jointrounding, xd*yd*curve_d, tightness_f, 60);
+ if dots:
+ filldraw dotpath(xmid+xd*xhalf*M_xdot_f, ymidred(yd)+yd*yhalfred*(1+M_ymid_f)/2, freedot_f, 50);
+ filldraw dotpath(xmid-xd*xhalf*M_xdot_f, ymidred(yd)+yd*yhalfred*(1+M_ymid_f)/2, freedot_f, 60);
+ fi;
+ endchar;
+enddef;
+
+def draw_primitive_m(expr rune, xd, yd, big, top, double) =
+ beginrunechar(rune, topbarred*1.3*base_width#+2*margin_width#);
+ save m_ymid_f;
+ save m_ysep_f;
+ if big:
+ m_ysep_f=1.0;
+ else:
+ m_ysep_f=0.5;
+ fi;
+ if top:
+ m_ymid_f=0.5;
+ else:
+ m_ymid_f=0.0;
+ fi;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, toprounding, 0, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)+yd*yhalfred*(m_ymid_f+m_ysep_f), jointrounding,
+ xmid+xd*xhalf, ymidred(yd)+yd*yhalfred*(m_ymid_f-m_ysep_f), jointrounding, 0, tightness_f, 40);
+ filldraw barpath(xmid+xd*xhalf, ymidred(yd)+yd*yhalfred*(m_ymid_f+m_ysep_f), jointrounding,
+ xmid-xd*xhalf, ymidred(yd)+yd*yhalfred*(m_ymid_f-m_ysep_f), jointrounding, 0, tightness_f, 50);
+ if double:
+ filldraw barpath(xmid-xd*xhalf, ymidred(yd)-yd*yhalfred*(m_ymid_f+m_ysep_f), jointrounding,
+ xmid+xd*xhalf, ymidred(yd)-yd*yhalfred*(m_ymid_f-m_ysep_f), jointrounding, 0, tightness_f, 60);
+ filldraw barpath(xmid+xd*xhalf, ymidred(yd)-yd*yhalfred*(m_ymid_f+m_ysep_f), jointrounding,
+ xmid-xd*xhalf, ymidred(yd)-yd*yhalfred*(m_ymid_f-m_ysep_f), jointrounding, 0, tightness_f, 70);
+ fi;
+ endchar;
+enddef;
+
+def draw_staveless_m(expr rune, xd, yd) =
+ beginrunechar(rune, freedot_f*stem_w#+2*margin_width#);
+ save m_ytop_f;
+ save m_ybottom_f;
+ m_ytop_f=0.75;
+ m_ybottom_f=0.25;
+ filldraw dotpath(xmid, ymid+yd*yhalf*m_ytop_f, freedot_f, 20);
+ filldraw dotpath(xmid, ymid+yd*yhalf*m_ybottom_f, freedot_f, 30);
+ endchar;
+enddef;
+
+def draw_normal_l(expr rune, xd, yd, middot, topdot, midtwig, toptwig, circle) =
+ beginrunechar(rune, topbarred*0.73*base_width#+2*margin_width#);
+ save l_y_f;
+ save l_curve_f;
+ save l_topdotx_f;
+ save l_twigcrossing_f;
+ save l_twigtwiglength_f;
+ l_curve_f=0.25;
+ l_y_f=0.4;
+ l_topdotx_f=0.15;
+ l_twigcrossing_f=0.65;
+ l_twigtwiglength_f=0.3;
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalfred*l_y_f, endrounding, -l_curve_f*xd*yd*curve_d, tightness_f, 30);
+ if middot:
+ filldraw dotpath(xmid-xd*xhalf, ymidred(yd), stemdot_f, 40);
+ fi;
+ if topdot:
+ filldraw dotpath(xmid-xd*xhalf*l_topdotx_f, ymid+yd*yhalfred*l_y_f, freedot_f, 50);
+ fi;
+ if midtwig:
+ filldraw barpath(xmid-xd*xhalf-xd*twig_length_f*stem_w/2, ymidred(yd), endrounding,
+ xmid-xd*xhalf+xd*twig_length_f*stem_w/2, ymidred(yd), endrounding, 0, tightness_f, 60);
+ fi;
+ if toptwig:
+ filldraw barpath(xmid+xd*xhalf*(((1-(-1))*l_twigcrossing_f-1)-(l_y_f-1)*yhalfred/xhalf*l_twigtwiglength_f), ymid+yd*yhalfred*(((l_y_f-1)*l_twigcrossing_f+1)+(1-(-1))*xhalf/yhalfred*l_twigtwiglength_f), endrounding,
+ xmid+xd*xhalf*(((1-(-1))*l_twigcrossing_f-1)+(l_y_f-1)*yhalfred/xhalf*l_twigtwiglength_f), ymid+yd*yhalfred*(((l_y_f-1)*l_twigcrossing_f+1)-(1-(-1))*xhalf/yhalfred*l_twigtwiglength_f), endrounding, -l_curve_f*xd*yd*curve_d, tightness_f, 70);
+ fi;
+ if circle:
+ draw_circle(xmid-xd*xhalf, ymidred(yd), stemcircle_f, 80);
+ fi;
+ endchar;
+enddef;
+
+def draw_shorttwig_l(expr rune, xd, yd) =
+ beginrunechar(rune, 0.7*base_width#+2*margin_width#);
+ save l_topy_f;
+ save l_twigy_f;
+ l_topy_f=0.76;
+ l_twigy_f=0.36;
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*l_topy_f, endrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid+yd*yhalf*l_twigy_f, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, endrounding, 0, tightness_f, 30);
+ endchar;
+enddef;
+
+def draw_shorttwig_L(expr rune, xd, yd) =
+ beginrunechar(rune, 0.9*base_width#+2*margin_width#);
+ save L_topy_f;
+ save L_x_f;
+ L_topy_f=0.3;
+ L_x_f=0.1;
+ filldraw barpath(xmid-xd*xhalf*L_x_f, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf*L_x_f, ymid+yd*yhalf*(1+L_topy_f)/2, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf, endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*L_topy_f, endrounding, 0, tightness_f, 30);
+ endchar;
+enddef;
+
+def draw_primitive_ng(expr rune, xd, yd, top, line, empty, belgthor) =
+ save ng_width_f;
+ if belgthor:
+ ng_width_f=1.25;
+ else:
+ ng_width_f=1.0;
+ fi;
+ beginrunechar(rune, ng_width_f*base_width#+2*margin_width#);
+ save ng_curve_f;
+ if belgthor:
+ ng_curve_f=1.0;
+ else:
+ ng_curve_f=0.25;
+ fi;
+ if line:
+ if empty:
+ if top:
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalfred-2*yd*xhalf, toprounding, 0, tightness_f, 20);
+ else:
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid-yd*xhalf, toprounding, 0, tightness_f, 20);
+ filldraw barpath(xmid, ymid+yd*yhalf, toprounding,
+ xmid, ymid+yd*xhalf, toprounding, 0, tightness_f, 30);
+ fi;
+ else:
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ fi;
+ fi;
+ if top:
+ filldraw barpath(xmid, ymid+yd*yhalfred, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalfred-yd*xhalf, jointrounding, ng_curve_f*xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalfred-yd*xhalf, jointrounding,
+ xmid, ymid+yd*yhalfred-yd*2*xhalf, jointrounding, ng_curve_f*xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid, ymid+yd*yhalfred-yd*2*xhalf, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalfred-yd*xhalf, jointrounding, ng_curve_f*xd*yd*curve_d, tightness_f, 60);
+ filldraw barpath(xmid+xd*xhalf, ymid+yd*yhalfred-yd*xhalf, jointrounding,
+ xmid, ymid+yd*yhalfred, jointrounding, ng_curve_f*xd*yd*curve_d, tightness_f, 70);
+ else:
+ filldraw barpath(xmid, ymid+yd*xhalf, jointrounding,
+ xmid-xd*xhalf, ymid, jointrounding, ng_curve_f*xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf, ymid, jointrounding,
+ xmid, ymid-yd*xhalf, jointrounding, ng_curve_f*xd*yd*curve_d, tightness_f, 50);
+ filldraw barpath(xmid, ymid-yd*xhalf, jointrounding,
+ xmid+xd*xhalf, ymid, jointrounding, ng_curve_f*xd*yd*curve_d, tightness_f, 60);
+ filldraw barpath(xmid+xd*xhalf, ymid, jointrounding,
+ xmid, ymid+yd*xhalf, jointrounding, ng_curve_f*xd*yd*curve_d, tightness_f, 70);
+ fi;
+ endchar;
+enddef;
+
+def draw_primitive_NG(expr rune, xd, yd) =
+ beginrunechar(rune, 0.8*base_width#+2*margin_width#);
+ save NG_curve_f;
+ NG_curve_f=0.25;
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*xhalf, jointrounding,
+ xmid+xd*xhalf, ymid+yd*xhalf, jointrounding, -NG_curve_f*xd*yd*curve_d, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid+yd*xhalf, jointrounding,
+ xmid+xd*xhalf, ymid-yd*xhalf, jointrounding, -NG_curve_f*xd*yd*curve_d, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*xhalf, jointrounding,
+ xmid-xd*xhalf, ymid-yd*xhalf, jointrounding, -NG_curve_f*xd*yd*curve_d, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*xhalf, jointrounding,
+ xmid-xd*xhalf, ymid+yd*xhalf, jointrounding, -NG_curve_f*xd*yd*curve_d, tightness_f, 50);
+ endchar;
+enddef;
+
+def draw_anglo_ng(expr rune, xd, yd) =
+ beginrunechar(rune, 0.98*base_width#+2*margin_width#);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, jointrounding,
+ xmid+xd*xhalf, ymid, jointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, jointrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf, jointrounding,
+ xmid-xd*xhalf, ymid, jointrounding, 0, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf, ymid, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, jointrounding, 0, tightness_f, 50);
+ endchar;
+enddef;
+
+def draw_primitive_o(expr rune, xd, yd) =
+ beginrunechar(rune, 1.4*base_width#+2*margin_width#);
+ save o_x_f;
+ save o_y_f;
+ save oround_x_f;
+ save oround_y_f;
+ save oround_curve_d;
+ save oroundsharp_curve_d;
+ o_x_f=0.72;
+ o_y_f=0.44;
+ oround_x_f=0.52;
+ oround_y_f=0.6;
+ oround_curve_d=70;
+ oroundsharp_curve_d=170;
+ if curve_d < 45:
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid+xd*xhalf*o_x_f, ymid+yd*yhalf*o_y_f, jointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid-xd*xhalf*o_x_f, ymid+yd*yhalf*o_y_f, jointrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf*o_x_f, ymid+yd*yhalf*o_y_f, jointrounding,
+ xmid, ymid+yd*yhalf, jointrounding, 0, tightness_f, 40);
+ filldraw barpath(xmid-xd*xhalf*o_x_f, ymid+yd*yhalf*o_y_f, jointrounding,
+ xmid, ymid+yd*yhalf, jointrounding, 0, tightness_f, 50);
+ else:
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf*(o_y_f-1)/2, jointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf*(o_y_f-1)/2, jointrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid, ymid+yd*yhalf*(o_y_f-1)/2, jointrounding,
+ xmid-xd*xhalf*oround_x_f, ymid+yd*yhalf*oround_y_f, jointrounding, -xd*yd*oround_curve_d, tightness_f, 40);
+ filldraw barpath(xmid, ymid+yd*yhalf*(o_y_f-1)/2, jointrounding,
+ xmid+xd*xhalf*oround_x_f, ymid+yd*yhalf*oround_y_f, jointrounding, xd*yd*oround_curve_d, tightness_f, 50);
+ filldraw barpath(xmid-xd*xhalf*oround_x_f, ymid+yd*yhalf*oround_y_f, jointrounding,
+ xmid+xd*xhalf*oround_x_f, ymid+yd*yhalf*oround_y_f, jointrounding, -xd*yd*oroundsharp_curve_d, tightness_f, 60);
+ fi;
+ endchar;
+enddef;
+
+def draw_anglo_ea(expr rune, xd, yd, q) =
+ beginrunechar(rune, topbarred*1.5*base_width#+2*margin_width#);
+ save ea_x_f;
+ save ea_y_f;
+ save ea_y_mirr;
+ ea_x_f=0.7;
+ ea_y_f=0.53;
+ ea_y_mirr=if q: -1 else: 1 fi;
+ filldraw barpath(xmid, ymid-yd*yhalf, endrounding,
+ xmid, ymid+yd*yhalf, topjointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid+xd*2, ymid+yd*yhalfred, jointrounding,
+ xmid+xd*xhalf*ea_x_f, ymid+yd*yhalfred*ea_y_f, jointrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid+xd*xhalf*ea_x_f, ymid+yd*yhalfred*ea_y_f, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalfred, endrounding, 0, tightness_f, 40);
+ filldraw barpath(xmid-xd*2, ymid+yd*yhalfred*ea_y_mirr, jointrounding,
+ xmid-xd*xhalf*ea_x_f, ymid+yd*yhalfred*ea_y_f*ea_y_mirr, jointrounding, 0, tightness_f, 50);
+ filldraw barpath(xmid-xd*xhalf*ea_x_f, ymid+yd*yhalfred*ea_y_f*ea_y_mirr, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalfred*ea_y_mirr, endrounding, 0, tightness_f, 60);
+ endchar;
+enddef;
+
+def draw_anglo_rex(expr rune, xd, yd) =
+ beginrunechar(rune, topbarred*1.15*base_width#+2*margin_width#);
+ save rex_y_f;
+ rex_y_f=0.4;
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf*rex_y_f, jointrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid, ymid+yd*yhalf*rex_y_f, jointrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf, endrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid, ymid+yd*yhalf*rex_y_f, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, endrounding, 0, tightness_f, 40);
+ filldraw barpath(xmid+xd*xhalf, ymid+yd*yhalf, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, jointrounding, 0, tightness_f, 50);
+ endchar;
+enddef;
+
+def draw_medieval_x(expr rune, xd, yd, stem) =
+ beginrunechar(rune, 1.25*base_width#+2*margin_width#);
+ save x_y_f;
+ save x_twigtwiglength_f;
+ x_y_f=0.65;
+ x_twigtwiglength_f=0.25;
+ if stem:
+ filldraw barpath(xmid, ymid-yd*yhalf, toprounding,
+ xmid, ymid+yd*yhalf, toprounding, 0, tightness_f, 20);
+ fi;
+ filldraw barpath(xmid-xd*xhalf, ymid+yd*yhalf*x_y_f, endrounding,
+ xmid+xd*xhalf, ymid-yd*yhalf*x_y_f, endrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid-xd*xhalf, ymid-yd*yhalf*x_y_f, endrounding,
+ xmid+xd*xhalf, ymid+yd*yhalf*x_y_f, endrounding, 0, tightness_f, 40);
+ filldraw barpath(xmid+xd*xhalf*(1-x_twigtwiglength_f), ymid+yd*yhalf*x_y_f*(1+((xhalf/(yhalf*x_y_f))**2)*x_twigtwiglength_f), endrounding,
+ xmid+xd*xhalf*(1+x_twigtwiglength_f), ymid+yd*yhalf*x_y_f*(1-((xhalf/(yhalf*x_y_f))**2)*x_twigtwiglength_f), endrounding, 0, tightness_f, 50);
+ filldraw barpath(xmid-xd*xhalf*(1-x_twigtwiglength_f), ymid-yd*yhalf*x_y_f*(1+((xhalf/(yhalf*x_y_f))**2)*x_twigtwiglength_f), endrounding,
+ xmid-xd*xhalf*(1+x_twigtwiglength_f), ymid-yd*yhalf*x_y_f*(1-((xhalf/(yhalf*x_y_f))**2)*x_twigtwiglength_f), endrounding, 0, tightness_f, 60);
+ filldraw barpath(xmid-xd*xhalf*(1-x_twigtwiglength_f), ymid+yd*yhalf*x_y_f*(1+((xhalf/(yhalf*x_y_f))**2)*x_twigtwiglength_f), endrounding,
+ xmid-xd*xhalf*(1+x_twigtwiglength_f), ymid+yd*yhalf*x_y_f*(1-((xhalf/(yhalf*x_y_f))**2)*x_twigtwiglength_f), endrounding, 0, tightness_f, 70);
+ filldraw barpath(xmid+xd*xhalf*(1-x_twigtwiglength_f), ymid-yd*yhalf*x_y_f*(1+((xhalf/(yhalf*x_y_f))**2)*x_twigtwiglength_f), endrounding,
+ xmid+xd*xhalf*(1+x_twigtwiglength_f), ymid-yd*yhalf*x_y_f*(1-((xhalf/(yhalf*x_y_f))**2)*x_twigtwiglength_f), endrounding, 0, tightness_f, 80);
+ endchar;
+enddef;
+
+def draw_modern_aa(expr rune, xd, yd) =
+ beginrunechar(rune, 0.8*base_width#+2*margin_width#);
+ save aa_curve_f;
+ aa_curve_f=0.5;
+ filldraw barpath(xmid+xd*xhalf, ymid, jointrounding,
+ xmid-xd*xhalf, ymid+yd*yhalf, endrounding, aa_curve_f*xd*yd*curve_d, tightness_f, 20);
+ filldraw barpath(xmid+xd*xhalf, ymid, jointrounding,
+ xmid-xd*xhalf, ymid-yd*yhalf, endrounding, -aa_curve_f*xd*yd*curve_d, tightness_f, 30);
+ endchar;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruc.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruc.mf
new file mode 100644
index 00000000000..dd6df1bf32d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruc.mf
@@ -0,0 +1,687 @@
+%%
+%% This is file `fruc.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `fontbase,fruc')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+draw_primitive_f("f",1,1);
+
+draw_primitive_f(166,1,-1);
+
+draw_primitive_f(174,-1,1);
+
+draw_primitive_f(182,-1,-1);
+
+draw_normal_f("F",1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(134,1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(142,-1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(150,-1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_u("u",1,1,true,0); %tight = true, 0 = no dots
+
+draw_normal_u(229,-1,1,true,0); %tight = true, 0 = no dots
+
+draw_normal_u(221,1,-1,true,0); %tight = true, 0 = no dots
+
+draw_normal_u(237,-1,-1,true,0); %tight = true, 0 = no dots
+
+draw_primitive_U("U",1,1,true); %symmetric = true
+
+draw_primitive_U(205,-1,1,true); %symmetric = true
+
+draw_primitive_U(197,1,-1,true); %symmetric = true
+
+draw_primitive_U(213,-1,-1,true); %symmetric = true
+
+draw_normal_th(254,1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(238,-1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_single_A("a",1,1,true); %top = true
+
+draw_normal_single_A(177,-1,1,true); %top = true
+
+draw_normal_single_A(169,1,-1,true); %top = true
+
+draw_normal_single_A(185,-1,-1,true); %top = true
+
+draw_roek_a(225,1,1);
+
+draw_roek_a(233,-1,1);
+
+draw_normal_r("r",1,1,false,false); % closed = false, topdot=false
+
+draw_normal_r(242,-1,1,false,false); % closed = false, topdot=false
+
+draw_normal_r(234,1,-1,false,false); % closed = false, topdot=false
+
+draw_normal_r(250,-1,-1,false,false); % closed = false, topdot=false
+
+draw_primitive_k("k",1,1);
+
+draw_primitive_k(163,-1,1);
+
+draw_primitive_kup(171,1,1,false,false); %stem = false, big = false
+
+draw_primitive_kup(187,1,-1,false,false); %stem = false, big = false
+
+draw_primitive_kup("K",1,1,true,true); %stem = true, big = true
+
+draw_primitive_kup(155,1,-1,true,true); %stem = true, big = true
+
+draw_primitive_kup(131,1,1,true,false); %stem = true, big = false
+
+draw_primitive_kup(139,1,-1,true,false); %stem = true, big = false
+
+draw_primitive_g("g",1,1,false,false,false); %v_stem = false, h_angles = false, eye = false
+
+draw_primitive_w("w",1,1);
+
+draw_primitive_w(175,-1,1);
+
+draw_primitive_w(191,1,-1);
+
+draw_primitive_w(183,-1,-1);
+
+draw_primitive_h("h",1,1,false,false); %top = false, twobars = false
+
+draw_primitive_h(168,-1,1,false,false); %top = false, twobars = false
+
+draw_primitive_h(232,1,1,false,true); %top = false, twobars = true
+
+draw_primitive_h(240,-1,1,false,true); %top = false, twobars = true
+
+draw_primitive_h("H",1,1,true,false); %top = true, twobars = false
+
+draw_primitive_h(136,-1,1,true,false); %top = true, twobars = false
+
+draw_normal_h("n",1,1,true,false,false); %NWSE = true, NESW = false, dot = false
+
+draw_normal_h(158,-1,1,true,false,false); %NWSE = true, NESW = false, dot = false
+
+draw_normal_i("i",1,1,false,false,false,false,false,false); % dot = false, twig = false, high = false, top = false, twodots = false, circle = false
+
+draw_roek_i(193,1,1);
+
+draw_roek_i(201,-1,1);
+
+draw_primitive_j("j",1,1);
+
+draw_primitive_j(162,-1,1);
+
+draw_primitive_jup(170,1,1);
+
+draw_primitive_jup(178,-1,1);
+
+draw_normal_s("J",1,1,true,false,false,false,false); %twobars = true, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s(130,-1,1,true,false,false,false,false); %twobars = true, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s("A",1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s(129,-1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_h(161,1,1,true,true,false); %NWSE = true, NESW = true, dot = false
+
+draw_primitive_I(239,1,1);
+draw_primitive_I("I",1,1);
+
+draw_primitive_I(207,-1,1);
+
+draw_primitive_p("p",1,1);
+
+draw_primitive_p(176,-1,1);
+
+draw_primitive_e(160,1,-1,false,false); %closed = false, midstem = false
+
+draw_primitive_e(192,1,1,false,false); %closed = false, midstem = false
+
+draw_primitive_e("P",1,1,true,false); %closed = true, midstem = false
+
+draw_normal_m("R",1,1,false,false,false); %dots = false, double = false, tree = false
+
+draw_normal_m(154,1,-1,false,false,false); %dots = false, double = false, tree = false
+
+draw_normal_m(122,1,1,false,true,false); %dots = false, double = true, tree = false
+
+draw_primitive_s("s",1,1,4); %strokes = 4
+
+draw_primitive_s(179,-1,1,4); %strokes = 4
+
+draw_primitive_s("S",1,1,6); %strokes = 6
+
+draw_primitive_s(147,-1,1,6); %strokes = 6
+
+draw_normal_s(195,1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s(203,-1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s(196,1,1,false,false,false,false,true); %twobars = false, chair = false, high = false, twigs = false, flat = true
+
+draw_normal_s(204,-1,1,false,false,false,false,true); %twobars = false, chair = false, high = false, twigs = false, flat = true
+
+draw_primitive_s(211,1,1,3); %strokes = 3
+
+draw_primitive_s(219,-1,1,3); %strokes = 3
+
+draw_primitive_s(227,1,1,4); %strokes = 4
+
+draw_primitive_s(235,-1,1,4); %strokes = 4
+
+draw_primitive_s(243,1,1,5); %strokes = 5
+
+draw_primitive_s(251,-1,1,5); %strokes = 5
+
+draw_primitive_s(212,1,1,6); %strokes = 6
+
+draw_primitive_s(220,-1,1,6); %strokes = 6
+
+draw_primitive_s(228,1,1,7); %strokes = 7
+
+draw_primitive_s(236,-1,1,7); %strokes = 7
+
+draw_primitive_s(244,1,1,8); %strokes = 8
+
+draw_primitive_s(252,-1,1,8); %strokes = 8
+
+draw_normal_t("t",1,1,false,false,false,false,false); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t(180,1,-1,false,false,false,false,false); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t("T",1,1,false,false,false,false,true); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = true
+
+draw_normal_t(188,1,-1,false,false,false,false,true); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = true
+
+draw_normal_b("b",1,1,false,false,false); %topdot = false, bottomdot = false, separated = false
+
+draw_normal_b(226,-1,1,false,false,false); %topdot = false, bottomdot = false, separated = false
+
+draw_normal_b("B",1,1,false,false,true); %topdot = false, bottomdot = false, separated = true
+
+draw_normal_b(194,-1,1,false,false,true); %topdot = false, bottomdot = false, separated = true
+
+draw_primitive_e("e",1,1,false,false); %closed = false, midstem = false
+
+draw_primitive_e(165,1,-1,false,false); %closed = false, midstem = false
+
+draw_primitive_E("E",1,1,false); %closed = false
+
+draw_primitive_E(133,1,-1,false); %closed = false
+
+draw_primitive_m("m",1,1,false,true,false); %big = false, top = true, double = false
+
+draw_primitive_m(149,1,-1,false,true,false); %big = false, top = true, double = false
+
+draw_normal_l("l",1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(148,-1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(140,1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(156,-1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_primitive_ng(173,1,1,false,false,false,false); %top = false, line = false, empty = false, belgthor = false
+
+draw_primitive_NG(141,1,1);
+
+draw_primitive_ng(181,1,1,true,true,true,false); %top = true, line = true, empty = true, belgthor = false
+
+draw_primitive_ng(245,1,-1,true,true,true,false); %top = true, line = true, empty = true, belgthor = false
+
+draw_primitive_ng(189,1,1,true,true,false,false); %top = true, line = true, empty = false, belgthor = false
+
+draw_primitive_ng(253,1,-1,true,true,false,false); %top = true, line = true, empty = false, belgthor = false
+
+draw_primitive_ng(157,1,1,false,true,false,false); %top = false, line = true, empty = false, belgthor = false
+
+draw_primitive_m("d",1,1,true,false,false); %big = true, top = false, double = false
+
+draw_primitive_m(164,1,1,false,false,false); %big = false, top = false, double = false
+
+draw_primitive_E("D",1,1,true); %closed = true
+
+draw_primitive_o("o",1,1);
+
+draw_primitive_o(255,1,-1);
+
+ligtable ".":
+ ":":
+ 62: %62 \tripleeye
+ 63: %63 \quadeye
+ 64: %64 \penteye
+ "!":
+ "+":
+ 44: %44 \doubleplus
+ 36: %36 \star
+ 42: %42 \cross
+ "K" kern -0.2base_width#,
+ "g" kern -0.2base_width#,
+ "I" kern -0.2base_width#,
+ "R" kern -0.3base_width#,
+ 154 kern -0.3base_width#, % \R
+ 122 kern -0.2base_width#; % \RR
+
+ligtable "f":
+ "K":
+ 181: % \ing
+ 189: % \Ing
+ "." kern -0.2base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.2base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "!" kern -0.1base_width#,
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.2base_width#, %42, \cross
+ "U" kern -0.15base_width#,
+ "k" kern -0.2base_width#,
+ 163 kern -0.1base_width#, % \hflip{k}
+ 171 kern -0.1base_width#, % \k
+ 187 kern -0.2base_width#, % \vflip{\k}
+ 155 kern -0.3base_width#, % \vflip{K}
+ 139 kern -0.3base_width#, % \vflip{\K}
+ "j" kern -0.1base_width#,
+ 162 kern -0.2base_width#, % \vflip{j}
+ 170 kern -0.2base_width#, % \j
+ 178 kern -0.1base_width#, % \vflip{\j}
+ "I" kern -0.15base_width#,
+ "T" kern -0.2base_width#,
+ 154 kern -0.3base_width#; % \R
+
+ligtable "F":
+ "R":
+ "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ "k" kern -0.3base_width#,
+ 163 kern -0.2base_width#, % \hflip{k}
+ 171 kern -0.2base_width#, % \k
+ 187 kern -0.3base_width#, % \vflip{\k}
+ 155 kern -0.4base_width#, % \vflip{K}
+ 139 kern -0.4base_width#, % \vflip{\K}
+ "n" kern -0.2base_width#,
+ "j" kern -0.1base_width#,
+ 162 kern -0.2base_width#, % \vflip{j}
+ 170 kern -0.2base_width#, % \j
+ 178 kern -0.1base_width#, % \vflip{\j}
+ 161 kern -0.2base_width#, % \A
+ "I" kern -0.2base_width#,
+ "T" kern -0.3base_width#,
+ 173 kern -0.3base_width#, % \ng
+ 141 kern -0.2base_width#, % \NG
+ 157 kern -0.3base_width#, % \ING
+ 154 kern -0.5base_width#; % \R
+
+ligtable "u":
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ 42 kern -0.1base_width#, %42, \cross
+ "K" kern -0.3base_width#,
+ "n" kern -0.2base_width#,
+ "t" kern -0.2base_width#,
+ 181 kern -0.2base_width#, % \ing
+ 189 kern -0.2base_width#, % \Ing
+ "R" kern -0.3base_width#,
+ 193 kern -0.2base_width#; % \i
+
+ligtable "U":
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ 42 kern -0.1base_width#, %42, \cross
+ "n" kern -0.2base_width#,
+ "t" kern -0.2base_width#,
+ 181 kern -0.2base_width#, % \ing
+ 189 kern -0.2base_width#, % \Ing
+ "R" kern -0.3base_width#,
+ 193 kern -0.2base_width#; % \i
+
+ligtable 254: % \th
+ 163: % \hflip{k}
+ "T":
+ 173: % \ng
+ 157: % \ING
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ "K" kern -0.2base_width#,
+ 155 kern -0.2base_width#, % \vflip{K}
+ "g" kern -0.2base_width#,
+ "I" kern -0.15base_width#,
+ "n" kern -0.15base_width#,
+ "t" kern -0.15base_width#,
+ "R" kern -0.3base_width#,
+ 154 kern -0.3base_width#, % \R
+ 122 kern -0.2base_width#, % \RR
+ 181 kern -0.2base_width#, % \ing
+ 189 kern -0.2base_width#, % \Ing
+ 193 kern -0.15base_width#; % \i
+
+ligtable "a":
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ 42 kern -0.1base_width#, %42, \cross
+ 155 kern -0.3base_width#, % \vflip{K}
+ "I" kern -0.15base_width#,
+ 154 kern -0.3base_width#; % \R
+
+ligtable "r":
+ "b":
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ "k" kern -0.15base_width#,
+ "K" kern -0.2base_width#,
+ "t" kern -0.2base_width#,
+ "T" kern -0.25base_width#,
+ 173 kern -0.15base_width#, % \ng
+ 157 kern -0.15base_width#, % \ING
+ "R" kern -0.25base_width#;
+
+ligtable "k":
+ 161: % \A
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "k" kern -0.15base_width#,
+ "K" kern -0.15base_width#,
+ 155 kern -0.15base_width#, % \vflip{K}
+ "g" kern -0.15base_width#,
+ 173 kern -0.15base_width#, % \ng
+ 157 kern -0.15base_width#, % \ING
+ 154 kern -0.2base_width#, % \R
+ "R" kern -0.2base_width#;
+
+ligtable 171: % \k
+ 187: % \vflip{\k}
+ "K" kern -0.2base_width#,
+ "g" kern -0.2base_width#,
+ "R" kern -0.2base_width#,
+ 154 kern -0.3base_width#, % \R
+ 122 kern -0.2base_width#; % \RR
+
+ligtable 131: % \K
+ "g" kern -0.2base_width#,
+ 122 kern -0.2base_width#; % \RR
+
+ligtable 139: % \vflip{\K}
+ "g" kern -0.2base_width#,
+ 122 kern -0.2base_width#; % \RR
+
+ligtable "g":
+ "p":
+ 122: % \RR
+ "B":
+ "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ "k" kern -0.2base_width#,
+ 163 kern -0.15base_width#, % \hflip{k}
+ 171 kern -0.1base_width#, % \k
+ 187 kern -0.1base_width#, % \vflip{\k}
+ 131 kern -0.2base_width#, % \K
+ 139 kern -0.2base_width#, % \vflip{\K}
+ "j" kern -0.2base_width#,
+ 162 kern -0.2base_width#, % \vflip{j}
+ 170 kern -0.2base_width#, % \j
+ 178 kern -0.2base_width#, % \vflip{\j}
+ 161 kern -0.2base_width#, % \A
+ "I" kern -0.15base_width#,
+ "t" kern -0.1base_width#,
+ "T" kern -0.3base_width#,
+ 173 kern -0.3base_width#, % \ng
+ 141 kern -0.2base_width#, % \NG
+ 157 kern -0.3base_width#; % \ING
+
+ligtable "h":
+ 168: % \hflip{h}
+ "H":
+ 136: % \hflip{H}
+ 232: % \h
+ 240: % \hflip{\h}
+ "i" kern +0.1base_width#;
+
+ligtable "n": 62 kern -0.2base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.2base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ 171 kern -0.2base_width#, % \k
+ "K" kern -0.3base_width#,
+ 131 kern -0.2base_width#, % \K
+ "g" kern -0.2base_width#,
+ "j" kern -0.2base_width#,
+ 178 kern -0.2base_width#, % \vflip{\j}
+ "I" kern -0.2base_width#,
+ "R" kern -0.3base_width#,
+ 154 kern -0.2base_width#, % \R
+ 122 kern -0.2base_width#, % \RR
+ 211 kern -0.2base_width#, % \sthree
+ "t" kern -0.2base_width#,
+ 181 kern -0.2base_width#, % \ing
+ 189 kern -0.2base_width#, % \Ing
+ 193 kern -0.3base_width#; % \i
+
+ligtable "i": "i" kern -0.2base_width#;
+
+ligtable "j": "K" kern -0.3base_width#,
+ "g" kern -0.2base_width#,
+ "n" kern -0.3base_width#,
+ "R" kern -0.3base_width#,
+ 154 kern -0.2base_width#, % \R
+ 122 kern -0.2base_width#, % \RR
+ 211 kern -0.2base_width#, % \sthree
+ "t" kern -0.2base_width#,
+ 181 kern -0.2base_width#, % \ing
+ 189 kern -0.2base_width#, % \Ing
+ 193 kern -0.3base_width#; % \i
+
+ligtable 162: % \vflip{j}
+ 155 kern -0.3base_width#, % \vflip{K}
+ "g" kern -0.2base_width#,
+ "I" kern -0.15base_width#,
+ "R" kern -0.2base_width#,
+ 154 kern -0.3base_width#, % \R
+ 122 kern -0.2base_width#, % \RR
+ "T" kern -0.15base_width#;
+
+ligtable 170: % \j
+ "K" kern -0.2base_width#,
+ 155 kern -0.3base_width#, % \vflip{K}
+ "g" kern -0.2base_width#,
+ "R" kern -0.2base_width#,
+ 154 kern -0.3base_width#, % \R
+ 122 kern -0.2base_width#, % \RR
+ "t" kern -0.2base_width#;
+
+ligtable 178: % \vflip{\j}
+ "K" kern -0.3base_width#,
+ 155 kern -0.2base_width#, % \vflip{K}
+ "g" kern -0.2base_width#,
+ "R" kern -0.3base_width#,
+ 154 kern -0.2base_width#, % \R
+ 122 kern -0.2base_width#, % \RR
+ "t" kern -0.2base_width#;
+
+ligtable "J":
+ "A":
+ 195: % \s
+ "K" kern -0.2base_width#,
+ "R" kern -0.2base_width#,
+ "t" kern -0.2base_width#,
+ 193 kern -0.2base_width#; % \i
+
+ligtable "I":
+ "l":
+ "t":
+ "." kern -0.2base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.2base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.2base_width#,
+ 36 kern -0.2base_width#, %36, \star
+ 42 kern -0.2base_width#, %42, \cross
+ "U" kern -0.15base_width#,
+ "k" kern -0.2base_width#,
+ 155 kern -0.3base_width#, % \vflip{K}
+ "g" kern -0.1base_width#,
+ "I" kern -0.3base_width#,
+ "j" kern -0.1base_width#,
+ 162 kern -0.15base_width#, % \vflip{j}
+ 170 kern -0.2base_width#, % \j
+ 178 kern -0.1base_width#, % \vflip{\j}
+ "R" kern -0.2base_width#,
+ 154 kern -0.3base_width#, % \R
+ 122 kern -0.2base_width#, % \RR
+ "T" kern -0.2base_width#,
+ 173 kern -0.15base_width#, % \ng
+ 141 kern -0.15base_width#, % \NG
+ 157 kern -0.15base_width#; % \ING
+
+ligtable 154: % \R
+ 155: % \vflip{K}
+ "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ "k" kern -0.2base_width#,
+ 163 kern -0.2base_width#, % \hflip{k}
+ 171 kern -0.3base_width#, % \k
+ 187 kern -0.2base_width#, % \vflip{\k}
+ "K" kern -0.4base_width#,
+ 131 kern -0.4base_width#, % \K
+ 162 kern -0.2base_width#, % \vflip{j}
+ 170 kern -0.2base_width#, % \j
+ 161 kern -0.2base_width#, % \A
+ "I" kern -0.2base_width#,
+ "T" kern -0.3base_width#,
+ 173 kern -0.3base_width#, % \ng
+ 141 kern -0.2base_width#, % \NG
+ 181 kern -0.3base_width#, % \ing
+ 187 kern -0.3base_width#, % \Ing
+ 157 kern -0.3base_width#, % \ING
+ "R" kern -0.5base_width#; %
+
+ligtable 196: % \S
+ "K" kern -0.2base_width#,
+ "R" kern -0.2base_width#,
+ "t" kern -0.2base_width#,
+ 181 kern -0.2base_width#, % \ing
+ 189 kern -0.2base_width#, % \Ing
+ 193 kern -0.2base_width#; % \i
+
+ligtable 211: % \sthree
+ "." kern -0.2base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.1base_width#,
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.2base_width#, %42, \cross
+ 171 kern -0.2base_width#, % \k
+ 131 kern -0.2base_width#, % \K
+ "j" kern -0.25base_width#,
+ "p" kern -0.2base_width#,
+ "R" kern -0.15base_width#,
+ 154 kern -0.15base_width#, % \R
+ 211 kern -0.2base_width#, % \sthree
+ "t" kern -0.2base_width#,
+ 181 kern -0.2base_width#, % \ing
+ 189 kern -0.2base_width#, % \Ing
+ 193 kern -0.2base_width#; % \i
+
+ligtable 193: % \i
+ "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ "K" kern -0.5base_width#,
+ "j" kern -0.3base_width#,
+ "R" kern -0.3base_width#,
+ "t" kern -0.3base_width#,
+ 181 kern -0.3base_width#, % \ing
+ 189 kern -0.3base_width#, % \Ing
+ 193 kern -0.4base_width#; % \i
+
+ligtable 225: % \a
+ "g" kern -0.2base_width#;
+
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucbm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucbm.mf
new file mode 100644
index 00000000000..28b000d9488
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucbm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucbm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucbn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucbn.mf
new file mode 100644
index 00000000000..578b6dbea36
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucbn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucbn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucbq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucbq.mf
new file mode 100644
index 00000000000..0d11bc8ca25
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucbq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucbq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucbr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucbr.mf
new file mode 100644
index 00000000000..669dc21c100
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucbr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucbr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucbs.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucbs.mf
new file mode 100644
index 00000000000..55de4c52bd3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucbs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucbs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucbt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucbt.mf
new file mode 100644
index 00000000000..fb48019c369
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucbt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucbt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruccm.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruccm.mf
new file mode 100644
index 00000000000..fd77f9ea420
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruccm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruccm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruccn.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruccn.mf
new file mode 100644
index 00000000000..eb10123115b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruccn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruccn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruccq.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruccq.mf
new file mode 100644
index 00000000000..246b422c875
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruccq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruccq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruccr.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruccr.mf
new file mode 100644
index 00000000000..fa66a020b76
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruccr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruccr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruccs.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruccs.mf
new file mode 100644
index 00000000000..f67fc59eeb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruccs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruccs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucct.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucct.mf
new file mode 100644
index 00000000000..653fbec35e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucct.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,bold,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruckm.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruckm.mf
new file mode 100644
index 00000000000..f199a520801
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruckm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruckm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruckn.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruckn.mf
new file mode 100644
index 00000000000..ee9a56bd609
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruckn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruckn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruckq.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruckq.mf
new file mode 100644
index 00000000000..948a9fc40dc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruckq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruckq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruckr.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruckr.mf
new file mode 100644
index 00000000000..883e499d511
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruckr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruckr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucks.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucks.mf
new file mode 100644
index 00000000000..0089cab8275
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucks.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucks.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruckt.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruckt.mf
new file mode 100644
index 00000000000..b9d69861fd0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruckt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruckt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruclm.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruclm.mf
new file mode 100644
index 00000000000..9eb1deda126
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruclm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruclm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucln.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucln.mf
new file mode 100644
index 00000000000..a82576aac4e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucln.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucln.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruclq.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruclq.mf
new file mode 100644
index 00000000000..0b5139abc15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruclq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruclq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruclr.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruclr.mf
new file mode 100644
index 00000000000..acac05c1e86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruclr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruclr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucls.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucls.mf
new file mode 100644
index 00000000000..3897e437aa0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucls.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucls.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruclt.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruclt.mf
new file mode 100644
index 00000000000..785cb66008e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruclt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruclt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,light,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucmm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucmm.mf
new file mode 100644
index 00000000000..da0242defed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucmm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucmm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucmn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucmn.mf
new file mode 100644
index 00000000000..35f7b29e3a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucmn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucmn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucmq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucmq.mf
new file mode 100644
index 00000000000..a5604b0aa03
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucmq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucmq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucmr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucmr.mf
new file mode 100644
index 00000000000..2a5c4249085
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucmr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucmr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucms.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucms.mf
new file mode 100644
index 00000000000..70038e1a523
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucms.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucms.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucmt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucmt.mf
new file mode 100644
index 00000000000..54d8448bc58
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucmt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucmt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucnm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucnm.mf
new file mode 100644
index 00000000000..ac2203e8963
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucnm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucnm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucnn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucnn.mf
new file mode 100644
index 00000000000..bc0d5ca0311
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucnn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucnn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucnq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucnq.mf
new file mode 100644
index 00000000000..01a0cbb19df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucnq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucnq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucnr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucnr.mf
new file mode 100644
index 00000000000..342a7661b1a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucnr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucnr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucns.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucns.mf
new file mode 100644
index 00000000000..adbfabee51a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucns.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucns.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frucnt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frucnt.mf
new file mode 100644
index 00000000000..57038631c0e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frucnt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frucnt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frucin,medium,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input fruc;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frul.mf b/Master/texmf-dist/fonts/source/public/allrunes/frul.mf
new file mode 100644
index 00000000000..4b85fe91626
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frul.mf
@@ -0,0 +1,183 @@
+%%
+%% This is file `frul.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `fontbase,frul')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+
+draw_staveless_f("f",1,1,true); % long=true
+
+draw_staveless_f(134,1,-1,true); % long=true
+
+draw_staveless_u("u",1,1);
+
+draw_staveless_u(221,1,-1);
+
+draw_staveless_th(254,1,1);
+
+draw_staveless_A("A",1,1,3,false); % 3=low, down=false
+
+draw_staveless_A(129,1,-1,3,false); % 3=low, down=false
+
+draw_staveless_A(193,1,1,2,true); % 2=mid, down=true
+
+draw_staveless_A(201,1,-1,2,true); % 2=mid, down=true
+
+draw_staveless_u("r",-1,1);
+
+draw_staveless_u(234,-1,-1);
+
+draw_staveless_f("k",1,-1,false); % long=false
+
+draw_staveless_f("h",1,1,false); % long=false
+
+draw_staveless_A("n",1,1,2,false); % 2=mid, down=false
+
+draw_staveless_A(158,1,-1,2,false); % 2=mid, down=false
+
+draw_normal_i("i",1,1,false,false,false,false,false,false); % dot = false, twig = false, high = false, top = false, twodots = false, circle = false
+
+draw_staveless_A("a",-1,1,2,false); % 2=mid, down=false
+
+draw_staveless_A(161,-1,-1,2,false); % 2=mid, down=false
+
+draw_shorttwig_s("s",1,1,false,false,false,false,false); %dot = false, twig = false, hook = false, arrow = false, circle = false
+
+draw_shorttwig_s(179,1,-1,false,false,false,false,false); %dot = false, twig = false, hook = false, arrow = false, circle = false
+
+draw_staveless_A("t",-1,1,1,false); % 1=high, down=false
+
+draw_staveless_A(156,-1,-1,1,false); % 1=high, down=false
+
+draw_staveless_A("b",-1,1,3,false); % 3=low, down=false
+
+draw_staveless_A(162,-1,-1,3,false); % 3=low, down=false
+
+draw_staveless_m("m",1,1);
+
+draw_staveless_A("l",1,1,1,false); % 1=high, down=false
+
+draw_staveless_A(140,1,-1,1,false); % 1=high, down=false
+
+draw_staveless_m("R",1,-1);
+
+ligtable ".":
+ ":":
+ 62: %62 \tripleeye
+ 63: %63 \quadeye
+ 64: %64 \penteye
+ "!":
+ "+":
+ 44: %44 \doubleplus
+ 36: %36 \star
+ 42: %42 \cross
+ "f" kern -0.1base_width#,
+ "u" kern -0.2base_width#,
+ "b" kern -0.1base_width#;
+
+ligtable "f":
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62 \tripleeye
+ 63 kern -0.1base_width#, %63 \quadeye
+ 64 kern -0.1base_width#, %64 \penteye
+ "!" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44 \doubleplus
+ 42 kern -0.2base_width#, %42 \cross
+ 36 kern -0.2base_width#; %36 \star
+
+ligtable "A":
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62 \tripleeye
+ 63 kern -0.1base_width#, %63 \quadeye
+ 64 kern -0.1base_width#, %64 \penteye
+ "!" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44 \doubleplus
+ 42 kern -0.2base_width#, %42 \cross
+ 36 kern -0.2base_width#, %36 \star
+ "u" kern -0.2base_width#,
+ "k" kern -0.2base_width#,
+ "s" kern -0.1base_width#,
+ "t" kern -0.2base_width#,
+ "m" kern -0.1base_width#,
+ "l" kern -0.2base_width#;
+
+ligtable
+ "r":
+ "." kern -0.2base_width#,
+ ":" kern -0.2base_width#,
+ 62 kern -0.2base_width#, %62 \tripleeye
+ 63 kern -0.2base_width#, %63 \quadeye
+ 64 kern -0.2base_width#, %64 \penteye
+ "!" kern -0.2base_width#,
+ "+" kern -0.2base_width#,
+ 44 kern -0.2base_width#, %44 \doubleplus
+ 42 kern -0.2base_width#, %42 \cross
+ 36 kern -0.2base_width#, %36 \star
+ "A" kern -0.2base_width#,
+ "k" kern -0.1base_width#,
+ "h" kern -0.1base_width#,
+ "a" kern -0.1base_width#,
+ "b" kern -0.3base_width#,
+ "R" kern -0.2base_width#;
+
+ligtable
+ "k":
+ "b" kern -0.1base_width#;
+
+ligtable
+ "h":
+ "u" kern -0.1base_width#;
+ligtable
+ "n":
+ "u" kern -0.1base_width#,
+ "b" kern -0.1base_width#;
+
+ligtable
+ "a":
+ "n" kern +0.1base_width#,
+ "b" kern -0.1base_width#;
+
+ligtable
+ "s":
+ "b" kern -0.1base_width#;
+
+ligtable
+ "t":
+ "h" kern -0.1base_width#,
+ "n" kern +0.1base_width#,
+ "b" kern -0.2base_width#,
+ "l" kern +0.1base_width#;
+
+ligtable
+ "b":
+ "u" kern -0.1base_width#,
+ "A" kern +0.1base_width#,
+ "n" kern +0.1base_width#;
+
+ligtable
+ "m":
+ "b" kern -0.1base_width#;
+
+ligtable
+ "l":
+ "b" kern -0.2base_width#;
+
+ligtable
+ "R":
+ "u" kern -0.2base_width#,
+ "t" kern -0.1base_width#,
+ "l" kern -0.1base_width#;
+
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulbm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulbm.mf
new file mode 100644
index 00000000000..0c9d05d6fc6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulbm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulbm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulbn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulbn.mf
new file mode 100644
index 00000000000..ff8f36e7c4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulbn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulbn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulbq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulbq.mf
new file mode 100644
index 00000000000..d7cb5f60e8e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulbq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulbq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulbr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulbr.mf
new file mode 100644
index 00000000000..e133bfd0040
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulbr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulbr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulbs.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulbs.mf
new file mode 100644
index 00000000000..45264195fb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulbs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulbs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulbt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulbt.mf
new file mode 100644
index 00000000000..9a05bb49cd9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulbt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulbt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulcm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulcm.mf
new file mode 100644
index 00000000000..f4052805a2e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulcm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulcm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulcn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulcn.mf
new file mode 100644
index 00000000000..7812831eacb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulcn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulcn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulcq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulcq.mf
new file mode 100644
index 00000000000..090cd093cd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulcq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulcq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulcr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulcr.mf
new file mode 100644
index 00000000000..256ece56896
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulcr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulcr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulcs.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulcs.mf
new file mode 100644
index 00000000000..9ba8cb325a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulcs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulcs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulct.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulct.mf
new file mode 100644
index 00000000000..51733f0b709
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulct.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,bold,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulkm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulkm.mf
new file mode 100644
index 00000000000..7255760e2f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulkm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulkm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulkn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulkn.mf
new file mode 100644
index 00000000000..1c61ae95590
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulkn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulkn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulkq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulkq.mf
new file mode 100644
index 00000000000..7414005b990
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulkq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulkq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulkr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulkr.mf
new file mode 100644
index 00000000000..aa8e1bcf788
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulkr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulkr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulks.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulks.mf
new file mode 100644
index 00000000000..aa6b7940103
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulks.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulks.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulkt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulkt.mf
new file mode 100644
index 00000000000..0b0944e4617
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulkt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulkt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frullm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frullm.mf
new file mode 100644
index 00000000000..6051c92a0a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frullm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frullm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulln.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulln.mf
new file mode 100644
index 00000000000..176a63d7cf2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulln.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulln.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frullq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frullq.mf
new file mode 100644
index 00000000000..07f5a6d4046
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frullq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frullq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frullr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frullr.mf
new file mode 100644
index 00000000000..5fc5c75f018
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frullr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frullr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulls.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulls.mf
new file mode 100644
index 00000000000..dcde3adfacd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulls.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulls.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frullt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frullt.mf
new file mode 100644
index 00000000000..8ab786cf70d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frullt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frullt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,light,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulmm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulmm.mf
new file mode 100644
index 00000000000..298c01db324
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulmm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulmm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulmn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulmn.mf
new file mode 100644
index 00000000000..d686a2a82c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulmn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulmn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulmq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulmq.mf
new file mode 100644
index 00000000000..957a9c89620
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulmq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulmq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulmr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulmr.mf
new file mode 100644
index 00000000000..2c3cf415df9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulmr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulmr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulms.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulms.mf
new file mode 100644
index 00000000000..6c5511f9f7d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulms.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulms.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulmt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulmt.mf
new file mode 100644
index 00000000000..4ea1bc6d4a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulmt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulmt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulnm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulnm.mf
new file mode 100644
index 00000000000..0999a9410ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulnm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulnm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulnn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulnn.mf
new file mode 100644
index 00000000000..392c88fb2f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulnn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulnn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulnq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulnq.mf
new file mode 100644
index 00000000000..65b9cee5186
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulnq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulnq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulnr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulnr.mf
new file mode 100644
index 00000000000..f9d1b61b95d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulnr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulnr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulns.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulns.mf
new file mode 100644
index 00000000000..33ab785192f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulns.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulns.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frulnt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frulnt.mf
new file mode 100644
index 00000000000..36cc69a0a86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frulnt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frulnt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frulin,medium,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frul;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frum.mf b/Master/texmf-dist/fonts/source/public/allrunes/frum.mf
new file mode 100644
index 00000000000..2a728877e02
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frum.mf
@@ -0,0 +1,1156 @@
+%%
+%% This is file `frum.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `fontbase,frum')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+draw_shorttwig_n("a",-1,1,false,false); %middot = false, sidedot = false
+
+draw_shorttwig_n(129,-1,-1,false,false); %middot = false, sidedot = false
+
+draw_shorttwig_n(209,-1,1,false,true); %middot = false, sidedot = true
+
+draw_shorttwig_n(201,-1,-1,false,true); %middot = false, sidedot = true
+
+draw_shorttwig_n(29,-1,1,true,false); %middot = true, sidedot = false
+
+draw_shorttwig_n(31,-1,-1,true,false); %middot = true, sidedot = false
+
+draw_normal_k("A",-1,-1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_b("b",1,1,false,false,false); %topdot = false, bottomdot = false, separated = false
+
+draw_normal_b(160,-1,1,false,false,false); %topdot = false, bottomdot = false, separated = false
+
+draw_primitive_w("B",1,-1);
+
+draw_shorttwig_s("c",1,1,false,false,false,false,false); %dot = false, twig = false, hook = false, arrow = false, circle = false
+
+draw_shorttwig_s(195,1,-1,false,false,false,false,false); %dot = false, twig = false, hook = false, arrow = false, circle = false
+
+draw_shorttwig_s(155,1,1,true,false,false,false,false); %dot = true, twig = false, hook = false, arrow = false, circle = false
+
+draw_shorttwig_s(147,1,-1,true,false,false,false,false); %dot = true, twig = false, hook = false, arrow = false, circle = false
+
+draw_shorttwig_s("C",1,1,false,false,false,false,true); %dot = false, twig = false, hook = false, arrow = false, circle = true
+
+draw_shorttwig_s(91,1,-1,false,false,false,false,true); %dot = false, twig = false, hook = false, arrow = false, circle = true
+
+draw_normal_l("d",-1,1,true,false,false,false,false); %middot = true, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(141,-1,-1,true,false,false,false,false); %middot = true, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(188,-1,1,false,true,false,false,false); %middot = false, topdot = true, midbar = false, topbar = false, circle = false
+
+draw_normal_l(189,-1,-1,false,true,false,false,false); %middot = false, topdot = true, midbar = false, topbar = false, circle = false
+
+draw_normal_l(164,-1,1,false,false,true,false,false); %middot = false, topdot = false, midbar = true, topbar = false, circle = false
+
+draw_normal_l(165,-1,-1,false,false,true,false,false); %middot = false, topdot = false, midbar = true, topbar = false, circle = false
+
+draw_normal_l(180,-1,1,false,false,false,true,false); %middot = false, topdot = false, midbar = false, topbar = true, circle = false
+
+draw_normal_l(196,1,1,false,false,false,true,false); %middot = false, topdot = false, midbar = false, topbar = true, circle = false
+
+draw_normal_l(181,-1,-1,false,false,false,true,false); %middot = false, topdot = false, midbar = false, topbar = true, circle = false
+
+draw_normal_l(197,1,-1,false,false,false,true,false); %middot = false, topdot = false, midbar = false, topbar = true, circle = false
+
+draw_normal_l(156,-1,1,false,false,false,false,true); %middot = false, topdot = false, midbar = false, topbar = false, circle = true
+
+draw_normal_l(124,1,1,false,false,false,false,true); %middot = false, topdot = false, midbar = false, topbar = false, circle = true
+
+draw_normal_l(157,-1,-1,false,false,false,false,true); %middot = false, topdot = false, midbar = false, topbar = false, circle = true
+
+draw_normal_l(125,1,-1,false,false,false,false,true); %middot = false, topdot = false, midbar = false, topbar = false, circle = true
+
+draw_normal_t("D",1,1,true,false,false,false,false); %middot = true, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t(92,1,-1,true,false,false,false,false); %middot = true, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t(132,1,1,false,true,false,false,false); %middot = false, topdots = true, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t(133,1,-1,false,true,false,false,false); %middot = false, topdots = true, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_i("e",1,1,true,false,false,false,false,false); % dot = true, twig = false, high = false, top = false, twodots = false, circle = false
+
+draw_normal_i("I",1,1,false,true,false,false,false,false); % dot = false, twig = true, high = false, top = false, twodots = false, circle = false
+
+draw_normal_i("E",1,1,false,false,false,false,false,true); % dot = false, twig = false, high = false, top = false, twodots = false, circle = true
+
+draw_normal_f("f",1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(6,-1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(14,1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(22,-1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_medieval_f("F",1,1);
+
+draw_medieval_f(154,-1,1);
+
+draw_medieval_f(162,1,-1);
+
+draw_medieval_f(170,-1,-1);
+
+draw_normal_k("g",1,1,true,false,false,false); % topdot = true, middot = false, midtwig = false, two = false
+
+draw_normal_k(159,-1,1,true,false,false,false); % topdot = true, middot = false, midtwig = false, two = false
+
+draw_normal_k(167,1,-1,true,false,false,false); % topdot = true, middot = false, midtwig = false, two = false
+
+draw_normal_k(175,-1,-1,true,false,false,false); % topdot = true, middot = false, midtwig = false, two = false
+
+draw_normal_k("G",1,1,false,true,false,false); % topdot = false, middot = true, midtwig = false, two = false
+
+draw_normal_k(7,-1,1,false,true,false,false); % topdot = false, middot = true, midtwig = false, two = false
+
+draw_normal_k(15,1,-1,false,true,false,false); % topdot = false, middot = true, midtwig = false, two = false
+
+draw_normal_k(23,-1,-1,false,true,false,false); % topdot = false, middot = true, midtwig = false, two = false
+
+draw_normal_k(95,1,1,false,false,true,false); % topdot = false, middot = false, midtwig = true, two = false
+
+draw_normal_k(2,-1,1,false,false,true,false); % topdot = false, middot = false, midtwig = true, two = false
+
+draw_normal_k(10,1,-1,false,false,true,false); % topdot = false, middot = false, midtwig = true, two = false
+
+draw_normal_k(18,-1,-1,false,false,true,false); % topdot = false, middot = false, midtwig = true, two = false
+
+draw_normal_h("h",1,1,true,true,false); %NWSE = true, NESW = true, dot = false
+
+draw_medieval_h(168,1,1,6,0); %twigs = 6, offset = 0
+
+draw_medieval_bigh("H",1,1);
+
+draw_normal_i("i",1,1,false,false,false,false,false,false); % dot = false, twig = false, high = false, top = false, twodots = false, circle = false
+
+draw_normal_i("j",1,1,false,false,false,false,true,false); % dot = false, twig = false, high = false, top = false, twodots = true, circle = false
+
+draw_normal_k("k",1,1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k("K",1,-1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_l("l",1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(148,1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l("L",1,1,true,false,false,false,false); %middot = true, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(140,1,-1,true,false,false,false,false); %middot = true, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(204,1,1,false,true,false,false,false); %middot = false, topdot = true, midbar = false, topbar = false, circle = false
+
+draw_normal_l(205,1,-1,false,true,false,false,false); %middot = false, topdot = true, midbar = false, topbar = false, circle = false
+
+draw_normal_l(172,1,1,false,false,true,false,false); %middot = false, topdot = false, midbar = true, topbar = false, circle = false
+
+draw_normal_l(173,1,-1,false,false,true,false,false); %middot = false, topdot = false, midbar = true, topbar = false, circle = false
+
+draw_normal_m("m",1,1,false,false,false); %dots = false, double = false, tree = false
+
+draw_shorttwig_n("n",1,1,false,false); %middot = false, sidedot = false
+
+draw_shorttwig_n(126,1,-1,false,false); %middot = false, sidedot = false
+
+draw_shorttwig_n(166,1,1,true,false); %middot = true, sidedot = false
+
+draw_shorttwig_n(30,1,-1,true,false); %middot = true, sidedot = false
+
+draw_shorttwig_n(190,1,1,false,true); %middot = false, sidedot = true
+
+draw_shorttwig_n(182,1,-1,false,true); %middot = false, sidedot = true
+
+draw_normal_h("N",1,1,true,false,false); %NWSE = true, NESW = false, dot = false
+
+draw_normal_h(198,1,1,true,false,true); %NWSE = true, NESW = false, dot = true
+
+draw_normal_h(206,-1,1,true,false,true); %NWSE = true, NESW = false, dot = true
+
+draw_normal_single_A("o",-1,1,false); %top = false
+
+draw_normal_single_A("O",1,1,false); %top = false
+
+draw_normal_single_A(151,1,-1,false); %top = false
+
+draw_normal_single_A(255,-1,-1,false); %top = false
+
+draw_normal_b("p",1,1,true,true,false); %topdot = true, bottomdot = true, separated = false
+
+draw_normal_b(152,-1,1,true,true,false); %topdot = true, bottomdot = true, separated = false
+
+draw_normal_b(224,1,1,true,false,false); %topdot = true, bottomdot = false, separated = false
+
+draw_normal_b(225,-1,1,true,false,false); %topdot = true, bottomdot = false, separated = false
+
+draw_normal_b(232,1,1,false,true,false); %topdot = false, bottomdot = true, separated = false
+
+draw_normal_b(233,-1,1,false,true,false); %topdot = false, bottomdot = true, separated = false
+
+draw_normal_k(176,1,1,false,false,false,true); % topdot = false, middot = false, midtwig = false, two = true
+
+draw_normal_k(184,1,1,true,false,false,true); % topdot = true, middot = false, midtwig = false, two = true
+
+draw_normal_k(192,-1,1,true,false,false,true); % topdot = true, middot = false, midtwig = false, two = true
+
+draw_primitive_w("P",1,1);
+
+draw_primitive_w("q",-1,1);
+
+draw_primitive_w(96,-1,-1);
+
+draw_normal_k(220,-1,1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k("Q",-1,1,false,false,false,true); % topdot = false, middot = false, midtwig = false, two = true
+
+draw_normal_r("r",1,1,true,false); % closed = true, topdot=false
+
+draw_normal_r(234,1,-1,true,false); % closed = true, topdot=false
+
+draw_normal_r(242,-1,1,true,false); % closed = true, topdot=false
+
+draw_normal_r(250,-1,-1,true,false); % closed = true, topdot=false
+
+draw_normal_r(1,1,1,true,true); % closed = true, topdot=true
+
+draw_normal_r(9,1,-1,true,true); % closed = true, topdot=true
+
+draw_normal_r(17,-1,1,true,true); % closed = true, topdot=true
+
+draw_normal_r(25,-1,-1,true,true); % closed = true, topdot=true
+
+draw_greenland_r("R",1,1);
+
+draw_greenland_r(210,1,-1);
+
+draw_greenland_r(218,-1,1);
+
+draw_greenland_r(226,-1,-1);
+
+draw_normal_s("s",1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s(179,-1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s("S",-1,1,false,false,true,false,false); %twobars = false, chair = false, high = true, twigs = false, flat = false
+
+draw_normal_s(227,1,1,false,false,true,false,false); %twobars = false, chair = false, high = true, twigs = false, flat = false
+
+draw_normal_s(235,-1,-1,false,false,true,false,false); %twobars = false, chair = false, high = true, twigs = false, flat = false
+
+draw_normal_s(243,1,-1,false,false,true,false,false); %twobars = false, chair = false, high = true, twigs = false, flat = false
+
+draw_normal_s(187,1,1,false,true,false,false,false); %twobars = false, chair = true, high = false, twigs = false, flat = false
+
+draw_normal_s(203,-1,1,false,true,false,false,false); %twobars = false, chair = true, high = false, twigs = false, flat = false
+
+draw_normal_s(211,1,-1,false,true,false,false,false); %twobars = false, chair = true, high = false, twigs = false, flat = false
+
+draw_normal_s(219,-1,-1,false,true,false,false,false); %twobars = false, chair = true, high = false, twigs = false, flat = false
+
+draw_normal_l("t",-1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(149,-1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_t("T",1,1,false,false,false,false,false); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t(212,1,1,false,false,true,false,false); %middot = false, topdots = false, doublearrow = true, arlaug = false, mid = false
+
+draw_normal_th(254,1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(238,-1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(222,1,1,true,false,false); %big = true, dot = false, doubble = false
+
+draw_normal_th(221,-1,1,true,false,false); %big = true, dot = false, doubble = false
+
+draw_normal_th(158,1,1,false,false,true); %big = false, dot = false, doubble = true
+
+draw_normal_th(174,-1,1,false,false,true); %big = false, dot = false, doubble = true
+
+draw_normal_th(240,1,1,false,true,false); %big = false, dot = true, doubble = false
+
+draw_normal_th(241,-1,1,false,true,false); %big = false, dot = true, doubble = false
+
+draw_normal_th(208,1,1,true,true,false); %big = true, dot = true, doubble = false
+
+draw_normal_th(200,-1,1,true,true,false); %big = true, dot = true, doubble = false
+
+draw_normal_u("u",1,1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u(237,1,-1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u(245,-1,1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u(253,-1,-1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u("v",1,1,false,1); %tight = false, 1 = one dot
+
+draw_normal_u(134,-1,1,false,1); %tight = false, 1 = one dot
+
+draw_normal_u(142,1,-1,false,1); %tight = false, 1 = one dot
+
+draw_normal_u(150,-1,-1,false,1); %tight = false, 1 = one dot
+
+draw_normal_f("V",1,1,true,false,false); %highdot = true, stemdot = false, twigdot = false
+
+draw_normal_f(5,-1,1,true,false,false); %highdot = true, stemdot = false, twigdot = false
+
+draw_normal_f(13,1,-1,true,false,false); %highdot = true, stemdot = false, twigdot = false
+
+draw_normal_f(21,-1,-1,true,false,false); %highdot = true, stemdot = false, twigdot = false
+
+draw_normal_f("W",1,1,false,true,false); %highdot = false, stemdot = true, twigdot = false
+
+draw_normal_f(4,-1,1,false,true,false); %highdot = false, stemdot = true, twigdot = false
+
+draw_normal_f(12,1,-1,false,true,false); %highdot = false, stemdot = true, twigdot = false
+
+draw_normal_f(20,-1,-1,false,true,false); %highdot = false, stemdot = true, twigdot = false
+
+draw_normal_f(94,1,1,false,false,true); %highdot = false, stemdot = false, twigdot = true
+
+draw_normal_f(3,-1,1,false,false,true); %highdot = false, stemdot = false, twigdot = true
+
+draw_normal_f(11,1,-1,false,false,true); %highdot = false, stemdot = false, twigdot = true
+
+draw_normal_f(19,-1,-1,false,false,true); %highdot = false, stemdot = false, twigdot = true
+
+draw_medieval_w("w",1,1);
+
+draw_medieval_w(127,1,-1);
+
+draw_medieval_w(135,-1,1);
+
+draw_medieval_w(143,-1,-1);
+
+draw_normal_s("x",1,1,false,false,false,true,false); %twobars = false, chair = false, high = false, twigs = true, flat = false
+
+draw_normal_s(144,1,-1,false,false,false,true,false); %twobars = false, chair = false, high = false, twigs = true, flat = false
+
+draw_normal_t(128,1,-1,false,false,false,false,false); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_medieval_x("X",1,1,false); %stem = false
+
+draw_medieval_x(136,1,1,true); %stem = true
+
+draw_normal_m("y",1,-1,false,false,false); %dots = false, double = false, tree = false
+
+draw_normal_m("Y",1,-1,false,false,true); %dots = false, double = false, tree = true
+
+draw_normal_m(249,1,1,false,false,true); %dots = false, double = false, tree = true
+
+draw_normal_u("U",1,1,false,2); %tight = false, 2 = two dots
+
+draw_normal_u(137,-1,1,false,2); %tight = false, 2 = two dots
+
+draw_normal_u(145,1,-1,false,2); %tight = false, 2 = two dots
+
+draw_normal_u(153,-1,-1,false,2); %tight = false, 2 = two dots
+
+draw_normal_u(93,1,1,false,3); %tight = false, 3 = bar
+
+draw_normal_u(130,-1,1,false,3); %tight = false, 3 = bar
+
+draw_normal_u(138,1,-1,false,3); %tight = false, 3 = bar
+
+draw_normal_u(146,-1,-1,false,3); %tight = false, 3 = bar
+
+draw_shorttwig_s("z",1,1,false,false,true,false,false); %dot = false, twig = false, hook = true, arrow = false, circle = false
+
+draw_shorttwig_s(186,1,-1,false,false,true,false,false); %dot = false, twig = false, hook = true, arrow = false, circle = false
+
+draw_shorttwig_s(194,-1,1,false,false,true,false,false); %dot = false, twig = false, hook = true, arrow = false, circle = false
+
+draw_shorttwig_s(202,-1,-1,false,false,true,false,false); %dot = false, twig = false, hook = true, arrow = false, circle = false
+
+draw_shorttwig_s(163,1,1,false,true,false,false,false); %dot = false, twig = true, hook = false, arrow = false, circle = false
+
+draw_shorttwig_s(171,1,-1,false,true,false,false,false); %dot = false, twig = true, hook = false, arrow = false, circle = false
+
+draw_shorttwig_s("Z",1,1,false,false,false,true,false); %dot = false, twig = false, hook = false, arrow = true, circle = false
+
+draw_shorttwig_s(251,1,-1,false,false,false,true,false); %dot = false, twig = false, hook = false, arrow = true, circle = false
+
+draw_modern_aa(229,1,1);
+
+draw_modern_aa(213,-1,1);
+
+draw_normal_h(228,1,1,false,true,false); %NWSE = false, NESW = true, dot = false
+
+draw_normal_h(230,1,1,false,true,false); %NWSE = false, NESW = true, dot = false
+
+draw_normal_double_A(246,-1,1,false,false,false); %three = false, stlb = false, sblb = false
+
+draw_normal_double_A(248,-1,1,false,false,false); %three = false, stlb = false, sblb = false
+
+draw_normal_double_A(247,1,1,false,false,false); %three = false, stlb = false, sblb = false
+
+draw_normal_double_A(215,-1,1,false,true,false); %false = true, stlb = true, sblb = false
+
+draw_normal_double_A(199,1,1,false,true,false); %false = true, stlb = true, sblb = false
+
+draw_normal_double_A(191,-1,-1,false,true,false); %false = true, stlb = true, sblb = false
+
+draw_normal_double_A(239,1,-1,false,true,false); %false = true, stlb = true, sblb = false
+
+draw_normal_double_A(223,-1,1,false,false,true); %false = true, stlb = false, sblb = true
+
+draw_normal_double_A(207,1,1,false,false,true); %false = true, stlb = false, sblb = true
+
+draw_normal_double_A(183,-1,-1,false,false,true); %false = true, stlb = false, sblb = true
+
+draw_normal_double_A(231,1,-1,false,false,true); %false = true, stlb = false, sblb = true
+
+draw_normal_double_A(214,-1,1,true,false,false); %three = true, stlb = false, sblb = false
+
+draw_normal_double_A(217,1,1,true,false,false); %three = true, stlb = false, sblb = false
+
+draw_normal_double_A(216,-1,1,true,false,false); %three = true, stlb = false, sblb = false
+
+draw_primitive_ng("J",1,1,false,true,false,false); %top = false, line = true, empty = false, belgthor = false
+
+draw_normal_t(177,1,1,false,false,false,true,false); %middot = false, topdots = false, doublearrow = false, arlaug = true, mid = false
+
+draw_normal_t(178,-1,1,false,false,false,true,false); %middot = false, topdots = false, doublearrow = false, arlaug = true, mid = false
+
+draw_normal_t(169,1,-1,false,false,false,true,false); %middot = false, topdots = false, doublearrow = false, arlaug = true, mid = false
+
+draw_normal_t(161,-1,-1,false,false,false,true,false); %middot = false, topdots = false, doublearrow = false, arlaug = true, mid = false
+
+draw_normal_m(185,1,1,false,true,false); %dots = false, double = true, tree = false
+
+draw_primitive_ng(193,1,1,false,true,false,true); %top = false, line = true, empty = false, belgthor = true
+
+ligtable ".":
+ ":":
+ 62: %62 \tripleeye
+ 63: %63 \quadeye
+ 64: %64 \penteye
+ "!":
+ "+":
+ 44: %44 \doubleplus
+ 36: %36 \star
+ 42: %42 \cross
+ "a" kern -0.1base_width#,
+ 29 kern -0.1base_width#, % 29 \a
+ 209 kern -0.1base_width#, % 209 \adot
+ "A" kern -0.3base_width#,
+ "d" kern -0.3base_width#,
+ 188 kern -0.3base_width#, % 188 \~t
+ 164 kern -0.3base_width#, % 164 \=t
+ 180 kern -0.3base_width#, % 180 \'t
+ 156 kern -0.3base_width#, % 156 \^t
+ "D" kern -0.3base_width#,
+ 132 kern -0.3base_width#, % 132 \D
+ 95 kern +0.15base_width#, % 95 \g, \=k
+ "h" kern -0.1base_width#,
+ 168 kern -0.1base_width#, %168 \h
+ "m" kern -0.3base_width#,
+ 172 kern +0.1base_width#, % 172\=l
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % 198 \.N
+ "o" kern -0.1base_width#,
+ "q" kern -0.3base_width#,
+ 220 kern -0.3base_width#, % 220 \q
+ "Q" kern -0.3base_width#,
+ "t" kern -0.3base_width#,
+ "T" kern -0.2base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.3base_width#,
+ 229 kern -0.4base_width#, % \aa
+ 228 kern -0.1base_width#, % \"a
+ 230 kern -0.1base_width#, % \ae
+ 246 kern -0.1base_width#, % \"o
+ 248 kern -0.1base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#; % \O
+
+ligtable 59: %59 \tripledot
+ 60: %60 \quaddot
+ 61: %61 \pentdot
+ 34: %34 \doublebar
+ 35: %35 \triplebar
+ 45: %45 \tripleplus
+ 37: %37 \doublecross
+ 38: %38 \triplecross
+ "a" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ 188 kern -0.1base_width#, % 188 \~t
+ 164 kern -0.1base_width#, % 164 \=t
+ 180 kern -0.1base_width#, % 180 \'t
+ 156 kern -0.1base_width#, % 156 \^t
+ "D" kern -0.1base_width#,
+ 132 kern -0.1base_width#, % 132 \D
+ "h" kern -0.1base_width#,
+ 95 kern +0.15base_width#, % 95 \g, \=k
+ 168 kern -0.1base_width#, %168 \h
+ 172 kern +0.1base_width#, % 172\=l
+ "m" kern -0.1base_width#,
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % 198 \.N
+ "o" kern -0.1base_width#,
+ 220 kern -0.1base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.1base_width#,
+ 229 kern -0.1base_width#, % \aa
+ 228 kern -0.1base_width#, % \"a
+ 230 kern -0.1base_width#, % \ae
+ 246 kern -0.1base_width#, % \"o
+ 248 kern -0.1base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#; % \O
+
+ligtable "a":
+ 180: % \'t
+ 188: % \~t
+ 220: % \q
+ "o":
+ "t":
+ "G" kern +0.1base_width#,
+ 95 kern +0.2base_width#, % 95 \g \=k
+ "i" kern +0.1base_width#,
+ "L" kern +0.1base_width#, % L \.l
+ 172 kern +0.15base_width#, % 172 \=L
+ 220 kern -0.1base_width#, % 220 \q
+ 166 kern +0.1base_width#, %166 \.n
+ "t" kern -0.1base_width#,
+ "x" kern +0.1base_width#;
+
+ligtable "b":
+ "p": % \"b
+ 224: % \'b
+ 232: % \.b
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ "a" kern -0.2base_width#,
+ "A" kern -0.15base_width#,
+ "d" kern -0.1base_width#,
+ 164 kern -0.1base_width#, %\=t
+ 180 kern -0.1base_width#, % \'t
+ 188 kern -0.1base_width#, % \~t
+ "D" kern -0.1base_width#,
+ 132 kern -0.1base_width#, % \D, \"T
+ 165 kern -0.1base_width#, % \=i
+ "h" kern -0.1base_width#,
+ 165 kern -0.3base_width#, % \h
+ "m" kern -0.2base_width#,
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % \.N
+ "o" kern -0.1base_width#,
+ 220 kern -0.2base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ "y" kern -0.2base_width#,
+ 229 kern -0.2base_width#, % \aa
+ 228 kern -0.1base_width#, % \"a
+ 230 kern -0.1base_width#, % \ae
+ 246 kern -0.1base_width#, % \"o
+ 248 kern -0.1base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#; % \O
+
+ligtable
+ "B":
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ "a" kern -0.1base_width#,
+ "c" kern -0.1base_width#,
+ 155 kern -0.1base_width#, % \c
+ "d" kern -0.2base_width#,
+ 164 kern -0.2base_width#, %\=t
+ 180 kern -0.2base_width#, % \'t
+ 188 kern -0.2base_width#, % \~t
+ "D" kern -0.2base_width#,
+ 132 kern -0.2base_width#, % \D, \"T
+ 165 kern -0.1base_width#, % \=i
+ "h" kern -0.1base_width#,
+ 165 kern -0.3base_width#, % \h
+ "m" kern -0.4base_width#,
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % \.N
+ "o" kern -0.1base_width#,
+ "q" kern -0.2base_width#,
+ 220 kern -0.3base_width#, % 220 \q
+ "t" kern -0.2base_width#,
+ "T" kern -0.2base_width#,
+ "y" kern -0.2base_width#,
+ 163 kern -0.15base_width#, % \z
+ "Z" kern -0.2base_width#,
+ 229 kern -0.2base_width#, % \aa
+ 228 kern -0.1base_width#, % \"a
+ 230 kern -0.1base_width#, % \ae
+ 246 kern -0.1base_width#, % \"o
+ 248 kern -0.1base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#; % \O
+
+ligtable
+ "c":
+ 155: % \.c
+ "A" kern -0.3base_width#,
+ "y" kern -0.3base_width#;
+
+ligtable
+ "C":
+ "A" kern -0.2base_width#,
+ "E" kern +0.1base_width#,
+ 95 kern +0.2base_width#, % \=k
+ 172 kern +0.15base_width#, % \=l
+ 124 kern +0.1base_width#, % \^l
+ 229 kern -0.2base_width#; % \aa
+ligtable
+ 165: % \=i, \e
+ "E":
+ "d" kern -0.1base_width#,
+ 164 kern -0.1base_width#, %\=t
+ 180 kern -0.1base_width#, % \'t
+ 188 kern -0.1base_width#, % \~t
+ "D" kern -0.1base_width#,
+ 132 kern -0.1base_width#, % \D, \"T
+ 95 kern +0.1base_width#, % 95 \g, \=k
+ 172 kern +0.1base_width#, % 172\=l
+ "m" kern -0.2base_width#,
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % \.N
+ 220 kern -0.2base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.3base_width#,
+ 229 kern -0.2base_width#, % \aa
+ 228 kern -0.1base_width#, % \"a
+ 230 kern -0.1base_width#, % \ae
+ 246 kern -0.1base_width#, % \"o
+ 248 kern -0.1base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#; % \O
+
+ligtable
+ "d":
+ 164: % \=t
+ "." kern +0.1base_width#,
+ "e" kern +0.1base_width#,
+ 165 kern +0.1base_width#, % 165 \=i
+ "j" kern +0.1base_width#,
+ 95 kern +0.2base_width#, % 95 \g, \=k
+ "L" kern +0.1base_width#,
+ 172 kern +0.2base_width#, % 172\=l
+ 166 kern +0.1base_width#, % 166 \.n
+ 142 kern +0.1base_width#, % 142 \~f
+ "x" kern +0.15base_width#,
+ "z" kern +0.1base_width#;
+
+ligtable
+ "D":
+ 132: % \D, \"T
+ "l":
+ "L": % \.l
+ 172: % \=l
+ 124: % \^l
+ "T":
+ 148: % \T
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ "a" kern -0.2base_width#,
+ "A" kern -0.4base_width#,
+ "h" kern -0.2base_width#,
+ 168 kern -0.2base_width#, % \h
+ "m" kern -0.2base_width#,
+ "N" kern -0.2base_width#,
+ 198 kern -0.2base_width#, % \.N
+ "o" kern -0.2base_width#,
+ 220 kern -0.2base_width#, % 220 \q
+ "y" kern -0.4base_width#,
+ 229 kern -0.2base_width#, % \aa
+ 228 kern -0.2base_width#, % \"a
+ 230 kern -0.2base_width#, % \ae
+ 246 kern -0.15base_width#, % \"o
+ 248 kern -0.15base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#, % \O
+ 221 kern -0.1base_width#; % \ey
+
+
+ligtable "f":
+ "F":
+ "g":
+ "G":
+ 95: %\g, \=k
+ "k":
+ "m":
+ "P":
+ "V":
+ 87: % \v
+ 94: % \V
+ "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ "a" kern -0.4base_width#,
+ 29 kern -0.4base_width#, %\a
+ 209 kern -0.4base_width#, %\adot
+ "A" kern -0.5base_width#,
+ 163 kern -0.2base_width#, % \=c
+ "d" kern -0.2base_width#,
+ 164 kern -0.2base_width#, % \=t
+ 180 kern -0.2base_width#, % \'t
+ 188 kern -0.2base_width#, % \~t
+ "D" kern -0.2base_width#,
+ 132 kern -0.2base_width#, % \D, \"T
+ "e" kern -0.1base_width#,
+ 220 kern -0.2base_width#, % \=i
+ "E" kern -0.3base_width#,
+ "j" kern -0.1base_width#,
+ "h" kern -0.3base_width#,
+ 168 kern -0.3base_width#, % \h
+ "H" kern -0.3base_width#,
+ "m" kern -0.1base_width#,
+ "N" kern -0.2base_width#,
+ 198 kern -0.2base_width#, % \.N
+ "o" kern -0.3base_width#,
+ 220 kern -0.1base_width#, % 220 \q
+ "t" kern -0.2base_width#,
+ "T" kern -0.2base_width#,
+ 148 kern -0.2base_width#, % 148 \T
+ 128 kern -0.4base_width#, % 128 \x
+ "y" kern -0.5base_width#,
+ 228 kern -0.3base_width#, % \"a
+ 230 kern -0.3base_width#, % \ae
+ 246 kern -0.3base_width#, % \"o
+ 248 kern -0.3base_width#, % \o
+ 215 kern -0.3base_width#, % \oo
+ 223 kern -0.3base_width#, % \oo
+ 231 kern -0.3base_width#, % \oo
+ 239 kern -0.3base_width#, % \oo
+ 214 kern -0.2base_width#, % \"O
+ 216 kern -0.2base_width#, % \O
+ 74 kern -0.2base_width#, % \ey
+ 177 kern -0.3base_width#, % \arlaug
+ 193 kern -0.2base_width#; % \belgthor
+
+ligtable "h":
+ 168: % \h
+ "H":
+ "a" kern -0.2base_width#,
+ "A" kern -0.3base_width#,
+ 163 kern -0.1base_width#, % \=c
+ "d" kern -0.1base_width#,
+ 164 kern -0.1base_width#, % \=t
+ 180 kern -0.1base_width#, % \'t
+ 188 kern -0.1base_width#, % \~t
+ "D" kern -0.1base_width#,
+ 132 kern -0.1base_width#, % \D, \"T
+ 165 kern -0.1base_width#, % \=i
+ "m" kern -0.2base_width#,
+ 220 kern -0.2base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.2base_width#,
+ 229 kern -0.2base_width#; % \aa
+
+ligtable "i":
+ "f" kern +0.1base_width#,
+ "g" kern +0.1base_width#,
+ "i" kern +0.1base_width#,
+ "k" kern +0.1base_width#,
+ "l" kern +0.1base_width#,
+ "n" kern +0.1base_width#,
+ "b" kern +0.1base_width#,
+ "p" kern +0.1base_width#,
+ 224 kern +0.1base_width#, % \'b
+ 232 kern +0.1base_width#, % \.b
+ 176 kern +0.1base_width#, % \p
+ 184 kern +0.1base_width#, % \"\p
+ "r" kern +0.1base_width#,
+ 1 kern +0.1base_width#,
+ 186 kern +0.1base_width#,
+ "S" kern +0.1base_width#,
+ 254 kern +0.1base_width#, % \th
+ 222 kern +0.1base_width#, % \TH
+ 240 kern +0.1base_width#, % \dh, \.th
+ 208 kern +0.1base_width#, % \DH, \.\TH
+ "u" kern +0.1base_width#,
+ "v" kern +0.1base_width#, % \.u
+ 134 kern +0.1base_width#, % \v, \.f
+ 142 kern +0.1base_width#, % \~f
+ "S" kern +0.1base_width#,
+ 150 kern +0.1base_width#, % \'f
+ 161 kern +0.1base_width#, % \"u, \y
+ 169 kern +0.1base_width#; % \=u, \Y
+
+ligtable
+ "n":
+ 166: % \.n
+ "N":
+ 198: % \.N
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.1base_width#, %42, \cross
+ "d" kern -0.2base_width#,
+ 164 kern -0.2base_width#, %\=t
+ 180 kern -0.2base_width#, % \'t
+ 188 kern -0.2base_width#, % \~t
+ "D" kern -0.2base_width#,
+ 132 kern -0.2base_width#, % \D, \"T
+ 165 kern -0.1base_width#, % \=i
+ 168 kern -0.2base_width#, % \h
+ "m" kern -0.4base_width#,
+ "N" kern -0.2base_width#,
+ 198 kern -0.2base_width#, % \.N
+ 220 kern -0.4base_width#, % 220 \q
+ "t" kern -0.2base_width#,
+ "T" kern -0.2base_width#,
+ 148 kern -0.2base_width#, % 148 \T
+ "y" kern -0.2base_width#,
+ 229 kern -0.2base_width#; % \aa
+
+ligtable 176: % \p
+ 184: % \"\p
+ "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ "a" kern -0.3base_width#,
+ 163 kern -0.2base_width#, % \=c
+ "d" kern -0.2base_width#,
+ 164 kern -0.2base_width#, % \=t
+ 180 kern -0.2base_width#, % \'t
+ 188 kern -0.2base_width#, % \~t
+ "D" kern -0.2base_width#,
+ 132 kern -0.2base_width#, % \D, \"T
+ 165 kern -0.3base_width#, % \=i
+ "h" kern -0.3base_width#,
+ 168 kern -0.3base_width#, % \h
+ "m" kern -0.1base_width#,
+ "N" kern -0.2base_width#,
+ 198 kern -0.2base_width#, % \.N
+ "o" kern -0.2base_width#,
+ 220 kern -0.1base_width#, % 220 \q
+ "t" kern -0.2base_width#,
+ "T" kern -0.2base_width#,
+ 148 kern -0.2base_width#, % 148 \T
+ "y" kern -0.1base_width#,
+ 229 kern -0.1base_width#, % \aa
+ 228 kern -0.2base_width#, % \"a
+ 230 kern -0.2base_width#, % \ae
+ 246 kern -0.2base_width#, % \"o
+ 248 kern -0.2base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#, % \O
+ 221 kern -0.2base_width#; % \ey
+
+ligtable "r":
+ 1: %\.r
+ "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ "a" kern -0.3base_width#,
+ 163 kern -0.2base_width#, % \=c
+ "d" kern -0.2base_width#,
+ 164 kern -0.2base_width#, % \=t
+ 180 kern -0.2base_width#, % \'t
+ 188 kern -0.2base_width#, % \~t
+ "D" kern -0.1base_width#,
+ 132 kern -0.1base_width#, % \D, \"T
+ 165 kern -0.2base_width#, % \=i
+ "h" kern -0.2base_width#,
+ 168 kern -0.2base_width#, % \h
+ "m" kern -0.25base_width#,
+ "N" kern -0.2base_width#,
+ 198 kern -0.2base_width#, % \.N
+ "o" kern -0.2base_width#,
+ 220 kern -0.3base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.1base_width#,
+ 229 kern -0.1base_width#, % \aa
+ 228 kern -0.2base_width#, % \"a
+ 230 kern -0.2base_width#, % \ae
+ 246 kern -0.1base_width#, % \"o
+ 248 kern -0.1base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#, % \O
+ 221 kern -0.2base_width#; % \ey
+
+ligtable 186: % \r
+ "u":
+ "v":
+ 161: % \"u
+ 169: % \=u
+ "a" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ 164 kern -0.1base_width#, % \=t
+ 180 kern -0.1base_width#, % \'t
+ 188 kern -0.1base_width#, % \~t
+ "D" kern -0.1base_width#,
+ 132 kern -0.1base_width#, % \D, \"T
+ 165 kern -0.1base_width#, % \=i
+ "h" kern -0.1base_width#,
+ 168 kern -0.1base_width#, % \h
+ "m" kern -0.25base_width#,
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % \.N
+ 220 kern -0.3base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.1base_width#,
+ 228 kern -0.1base_width#, % \"a
+ 230 kern -0.1base_width#; % \ae
+
+ligtable "s":
+ "x":
+ "d" kern -0.2base_width#,
+ 164 kern -0.2base_width#, % \=t
+ 180 kern -0.2base_width#, % \'t
+ 188 kern -0.2base_width#, % \~t
+ "D" kern -0.2base_width#,
+ 132 kern -0.2base_width#, % \D, \"T
+ 95 kern +0.15base_width#, % 95 \g, \=k
+ 172 kern +0.1base_width#, % 172\=l
+ "m" kern -0.25base_width#,
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % \.N
+ 220 kern -0.35base_width#, % 220 \q
+ "t" kern -0.2base_width#,
+ "T" kern -0.2base_width#;
+
+ligtable "S":
+ "a" kern -0.15base_width#,
+ "A" kern -0.3base_width#,
+ "o" kern -0.1base_width#,
+ "y" kern -0.3base_width#,
+ 228 kern -0.2base_width#, % \"a
+ 230 kern -0.2base_width#, % \ae
+ 246 kern -0.1base_width#, % \"o
+ 248 kern -0.1base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#, % \O
+ 221 kern -0.1base_width#; % \ey
+
+ligtable 254: % \th
+ 240: % \.\th, \dh
+ 221: % \ey
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ "d" kern -0.15base_width#,
+ 164 kern -0.15base_width#, % \=t
+ 180 kern -0.15base_width#, % \'t
+ 188 kern -0.15base_width#, % \~t
+ "D" kern -0.15base_width#,
+ 132 kern -0.15base_width#, % \D, \"T
+ "h" kern -0.1base_width#,
+ 168 kern -0.1base_width#, % \h
+ "m" kern -0.3base_width#,
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % \.N
+ 220 kern -0.3base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.3base_width#,
+ 229 kern -0.3base_width#, % \aa
+ 228 kern -0.1base_width#, % \"a
+ 230 kern -0.1base_width#; % \ae
+
+ligtable 222: % \TH
+ 208: % \.\TH, \DH
+ 158: % \thth
+ 229: % \aa
+ 164 kern -0.1base_width#, % \=t
+ 180 kern -0.1base_width#, % \'t
+ 188 kern -0.1base_width#, % \~t
+ "D" kern -0.1base_width#,
+ 132 kern -0.1base_width#, % \D, \"T
+ "m" kern -0.25base_width#,
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % \.N
+ 220 kern -0.25base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.25base_width#,
+ 229 kern -0.2base_width#; % \aa
+
+ligtable "y":
+ "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ "a" kern -0.3base_width#,
+ "c" kern -0.2base_width#,
+ 67 kern -0.2base_width#, % \.c
+ 163 kern -0.2base_width#, % \=c
+ "d" kern -0.3base_width#,
+ 164 kern -0.3base_width#, % \=t
+ 180 kern -0.3base_width#, % \'t
+ 188 kern -0.3base_width#, % \~t
+ "D" kern -0.3base_width#,
+ 132 kern -0.3base_width#, % \D, \"T
+ 165 kern -0.3base_width#, % \=i
+ "h" kern -0.3base_width#,
+ 168 kern -0.3base_width#, % \h
+ "m" kern -0.4base_width#,
+ "N" kern -0.2base_width#,
+ 198 kern -0.2base_width#, % \.N
+ "o" kern -0.1base_width#,
+ 220 kern -0.4base_width#, % 220 \q
+ "s" kern -0.1base_width#,
+ "t" kern -0.3base_width#,
+ "T" kern -0.3base_width#,
+ 148 kern -0.2base_width#, % 148 \T
+ "x" kern -0.1base_width#,
+ "y" kern -0.1base_width#,
+ "z" kern -0.2base_width#,
+ 228 kern -0.1base_width#, % \"a
+ 230 kern -0.1base_width#, % \ae
+ 246 kern -0.1base_width#, % \"o
+ 248 kern -0.1base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#, % \O
+ 221 kern -0.1base_width#; % \ey
+
+ligtable "z":
+ 163:
+ "Z":
+ "a" kern -0.2base_width#,
+ "A" kern -0.3base_width#,
+ "d" kern -0.1base_width#,
+ 164 kern -0.1base_width#, % \=t
+ 180 kern -0.1base_width#, % \'t
+ 188 kern -0.1base_width#, % \~t
+ "D" kern -0.1base_width#,
+ 132 kern -0.1base_width#, % \D, \"T
+ 165 kern -0.1base_width#, % \=i
+ "m" kern -0.25base_width#,
+ "N" kern -0.1base_width#,
+ 198 kern -0.1base_width#, % \.N
+ "o" kern -0.1base_width#,
+ 220 kern -0.35base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.3base_width#,
+ 228 kern -0.2base_width#, % \"a
+ 230 kern -0.2base_width#, % \ae
+ 246 kern -0.1base_width#, % \"o
+ 248 kern -0.1base_width#, % \o
+ 214 kern -0.1base_width#, % \"O
+ 216 kern -0.1base_width#, % \O
+ 221 kern -0.1base_width#; % \ey
+
+ligtable 228: % \"a
+ 230: % \ae
+ 246: % \"o
+ 248: % \o
+ 214: % \"O
+ 216: % \O
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.1base_width#, %42, \cross
+ "d" kern -0.1base_width#,
+ 164 kern -0.1base_width#, %\=t
+ 180 kern -0.1base_width#, % \'t
+ 188 kern -0.1base_width#, % \~t
+ "D" kern -0.1base_width#,
+ 132 kern -0.1base_width#, % \D, \"T
+ 165 kern -0.1base_width#, % \=i
+ 168 kern -0.2base_width#, % \h
+ "m" kern -0.2base_width#,
+ 220 kern -0.2base_width#, % 220 \q
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 148 kern -0.1base_width#, % 148 \T
+ "y" kern -0.4base_width#,
+ 229 kern -0.2base_width#, % \aa
+ 228 kern -0.2base_width#, % \"a
+ 230 kern -0.2base_width#; % \ae
+
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumbm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumbm.mf
new file mode 100644
index 00000000000..8f52b2f3125
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumbm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumbm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumbn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumbn.mf
new file mode 100644
index 00000000000..4b4a4fa4e6a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumbn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumbn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumbq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumbq.mf
new file mode 100644
index 00000000000..3a8e72e76f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumbq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumbq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumbr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumbr.mf
new file mode 100644
index 00000000000..e9754a5aec7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumbr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumbr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumbs.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumbs.mf
new file mode 100644
index 00000000000..d4c7fcdacfe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumbs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumbs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumbt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumbt.mf
new file mode 100644
index 00000000000..47469fc33d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumbt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumbt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumcm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumcm.mf
new file mode 100644
index 00000000000..0aaa7d0b168
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumcm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumcm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumcn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumcn.mf
new file mode 100644
index 00000000000..21d4e9f9e42
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumcn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumcn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumcq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumcq.mf
new file mode 100644
index 00000000000..909fdfd736a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumcq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumcq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumcr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumcr.mf
new file mode 100644
index 00000000000..9305590f588
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumcr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumcr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumcs.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumcs.mf
new file mode 100644
index 00000000000..69b19a8d406
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumcs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumcs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumct.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumct.mf
new file mode 100644
index 00000000000..e66f5bbe1ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumct.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,bold,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumkm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumkm.mf
new file mode 100644
index 00000000000..f56e6fefe3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumkm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumkm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumkn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumkn.mf
new file mode 100644
index 00000000000..8da547846c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumkn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumkn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumkq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumkq.mf
new file mode 100644
index 00000000000..3bca9352036
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumkq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumkq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumkr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumkr.mf
new file mode 100644
index 00000000000..9aaaea23848
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumkr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumkr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumks.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumks.mf
new file mode 100644
index 00000000000..2a2362f4c60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumks.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumks.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumkt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumkt.mf
new file mode 100644
index 00000000000..1bc632e95d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumkt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumkt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumlm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumlm.mf
new file mode 100644
index 00000000000..06bf811f672
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumlm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumlm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumln.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumln.mf
new file mode 100644
index 00000000000..7667827ecb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumln.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumln.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumlq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumlq.mf
new file mode 100644
index 00000000000..343fb580662
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumlq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumlq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumlr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumlr.mf
new file mode 100644
index 00000000000..8772d014b37
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumlr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumlr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumls.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumls.mf
new file mode 100644
index 00000000000..57055aa0974
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumls.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumls.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumlt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumlt.mf
new file mode 100644
index 00000000000..88c0f51eeee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumlt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumlt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,light,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frummm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frummm.mf
new file mode 100644
index 00000000000..cad56c9996c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frummm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frummm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frummn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frummn.mf
new file mode 100644
index 00000000000..80735c553cf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frummn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frummn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frummq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frummq.mf
new file mode 100644
index 00000000000..e75c1ca6dc6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frummq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frummq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frummr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frummr.mf
new file mode 100644
index 00000000000..5f3cf931333
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frummr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frummr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumms.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumms.mf
new file mode 100644
index 00000000000..21647ef9c2f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumms.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumms.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frummt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frummt.mf
new file mode 100644
index 00000000000..834d8c9c812
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frummt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frummt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumnm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumnm.mf
new file mode 100644
index 00000000000..efc765d36d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumnm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumnm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumnn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumnn.mf
new file mode 100644
index 00000000000..7fb42de9a2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumnn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumnn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumnq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumnq.mf
new file mode 100644
index 00000000000..654d5754b30
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumnq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumnq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumnr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumnr.mf
new file mode 100644
index 00000000000..c2b7200662a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumnr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumnr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumns.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumns.mf
new file mode 100644
index 00000000000..a9fa8e29070
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumns.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumns.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frumnt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frumnt.mf
new file mode 100644
index 00000000000..2e619cd695f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frumnt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frumnt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frumin,medium,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frum;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frun.mf b/Master/texmf-dist/fonts/source/public/allrunes/frun.mf
new file mode 100644
index 00000000000..89f93f10927
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frun.mf
@@ -0,0 +1,712 @@
+%%
+%% This is file `frun.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `fontbase,frun')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+draw_normal_f("f",1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(134,1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(142,-1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(150,-1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_primitive_f("F",1,1);
+
+draw_primitive_f(166,1,-1);
+
+draw_primitive_f(174,-1,1);
+
+draw_primitive_f(182,-1,-1);
+
+draw_normal_u("u",1,1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u(221,1,-1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u(229,-1,1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u(237,-1,-1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u("y",1,1,false,1); %tight = false, 1 = one dot
+
+draw_normal_u(233,1,-1,false,1); %tight = false, 1 = one dot
+
+draw_normal_u(241,-1,1,false,1); %tight = false, 1 = one dot
+
+draw_normal_u(249,-1,-1,false,1); %tight = false, 1 = one dot
+
+draw_normal_th(254,1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(246,-1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(222,1,1,true,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(214,-1,1,true,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(240,1,1,false,true,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(232,-1,1,false,true,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(208,1,1,true,true,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(200,-1,1,true,true,false); %big = false, dot = false, doubble = false
+
+draw_normal_single_A("A",1,1,false); %top = false
+
+draw_normal_single_A(169,1,-1,false); %top = false
+
+draw_normal_single_A(177,-1,1,false); %top = false
+
+draw_normal_single_A(185,-1,-1,false); %top = false
+
+draw_normal_double_A(193,1,1,false,false,false); %three = false, stlb = false, sblb = false
+
+draw_normal_double_A(201,-1,1,false,false,false); %three = false, stlb = false, sblb = false
+
+draw_normal_r("r",1,1,true,false); % closed = true, topdot=false
+
+draw_normal_r(234,1,-1,true,false); % closed = true, topdot=false
+
+draw_normal_r(242,-1,1,true,false); % closed = true, topdot=false
+
+draw_normal_r(250,-1,-1,true,false); % closed = true, topdot=false
+
+draw_normal_k("k",1,1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k(235,1,-1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k(243,-1,1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k(251,-1,-1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k("g",1,1,true,false,false,false); % topdot = true, middot = false, midtwig = false, two = false
+
+draw_normal_k(135,1,-1,true,false,false,false); % topdot = true, middot = false, midtwig = false, two = false
+
+draw_normal_k(143,-1,1,true,false,false,false); % topdot = true, middot = false, midtwig = false, two = false
+
+draw_normal_k(151,-1,-1,true,false,false,false); % topdot = true, middot = false, midtwig = false, two = false
+
+draw_normal_h("h",1,1,true,true,false); %NWSE = true, NESW = true, dot = false
+
+draw_normal_h("n",1,1,true,false,false); %NWSE = true, NESW = false, dot = false
+
+draw_normal_i("i",1,1,false,false,false,false,false,false); % dot = false, twig = false, high = false, top = false, twodots = false, circle = false
+
+draw_normal_i("e",1,1,true,false,false,false,false,false); % dot = true, twig = false, high = false, top = false, twodots = false, circle = false
+
+draw_normal_h("a",1,1,false,true,false); %NWSE = false, NESW = true, dot = false
+
+draw_normal_s("s",1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s(179,-1,1,false,false,false,false,false); %twobars = false, chair = false, high = false, twigs = false, flat = false
+
+draw_normal_s("S",1,1,false,true,false,false,false); %twobars = false, chair = true, high = false, twigs = false, flat = false
+
+draw_normal_s(139,1,-1,false,true,false,false,false); %twobars = false, chair = true, high = false, twigs = false, flat = false
+
+draw_normal_s(147,-1,1,false,true,false,false,false); %twobars = false, chair = true, high = false, twigs = false, flat = false
+
+draw_normal_s(155,-1,-1,false,true,false,false,false); %twobars = false, chair = true, high = false, twigs = false, flat = false
+
+draw_normal_t("t",1,1,false,false,false,false,false); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t(180,1,-1,false,false,false,false,false); %middot = false, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t("d",1,1,true,false,false,false,false); %middot = true, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_t(188,1,-1,true,false,false,false,false); %middot = true, topdots = false, doublearrow = false, arlaug = false, mid = false
+
+draw_normal_b("b",1,1,false,false,false); %topdot = false, bottomdot = false, separated = false
+
+draw_normal_b(226,-1,1,false,false,false); %topdot = false, bottomdot = false, separated = false
+
+draw_normal_b("B",1,1,false,false,true); %topdot = false, bottomdot = false, separated = true
+
+draw_normal_b(194,-1,1,false,false,true); %topdot = false, bottomdot = false, separated = true
+
+draw_normal_b("p",1,1,true,true,false); %topdot = true, bottomdot = true, separated = false
+
+draw_normal_b(176,-1,1,true,true,false); %topdot = true, bottomdot = true, separated = false
+
+draw_normal_m("m",1,1,false,false,false); %dots = false, double = false, tree = false
+
+draw_normal_m(165,1,1,true,false,false); %dots = true, double = false, tree = false
+
+draw_normal_m(157,1,-1,true,false,false); %dots = true, double = false, tree = false
+
+draw_normal_M("M",1,1,false); %dots = false
+
+draw_normal_M(149,1,-1,false); %dots = false
+
+draw_normal_M(133,1,1,true); %dots = true
+
+draw_normal_M(141,1,-1,true); %dots = true
+
+draw_normal_l("l",1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(140,1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(148,-1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(156,-1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_m("R",1,-1,false,false,false); %dots = false, double = false, tree = false
+
+ligtable ".":
+ "h" kern -0.1base_width#,
+ "n" kern -0.1base_width#,
+ "e" kern +0.1base_width#,
+ "a" kern -0.1base_width#,
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "b" kern -0.1base_width#,
+ "p" kern -0.1base_width#,
+ "B" kern -0.1base_width#,
+ "m" kern -0.3base_width#,
+ 165 kern -0.3base_width#, %165, \"m
+ "M" kern -0.3base_width#,
+ 133 kern -0.3base_width#, %133, \"M
+ "R" kern -0.3base_width#;
+
+ligtable ":":
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "m" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ "M" kern -0.1base_width#,
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.1base_width#;
+
+ligtable 59: %\tripledot
+ "m" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ "M" kern -0.1base_width#,
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.1base_width#;
+
+ligtable 62: %\tripleeye
+ 63: %\quadeye
+ 64: %\penteye
+ "n" kern -0.2base_width#,
+ "a" kern -0.2base_width#,
+ "m" kern -0.3base_width#,
+ 165 kern -0.3base_width#, %165, \"m
+ "M" kern -0.3base_width#,
+ 133 kern -0.3base_width#, %133, \"M
+ "R" kern -0.3base_width#;
+
+ligtable "!": %\bar
+ "m" kern -0.2base_width#,
+ 165 kern -0.2base_width#, %165, \"m
+ "M" kern -0.2base_width#,
+ 133 kern -0.2base_width#, %133, \"M
+ "R" kern -0.2base_width#;
+
+ligtable 34: %\doublebar
+ "m" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ "M" kern -0.1base_width#,
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.1base_width#;
+
+ligtable "+": %\plus
+ "h" kern -0.2base_width#,
+ "n" kern -0.2base_width#,
+ "a" kern -0.2base_width#,
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "b" kern -0.1base_width#,
+ "p" kern -0.1base_width#,
+ "B" kern -0.1base_width#,
+ "m" kern -0.3base_width#,
+ 165 kern -0.3base_width#, %165, \"m
+ "M" kern -0.3base_width#,
+ 133 kern -0.3base_width#, %133, \"M
+ "R" kern -0.3base_width#;
+
+ligtable 44: %\doubleplus
+ "m" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ "M" kern -0.1base_width#,
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.1base_width#;
+
+ligtable 45: %\tripleplus
+ "m" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ "M" kern -0.1base_width#,
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.1base_width#;
+
+ligtable 36: %\star
+ 42: %\cross
+ "h" kern -0.1base_width#,
+ "n" kern -0.1base_width#,
+ "a" kern -0.1base_width#,
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "b" kern -0.1base_width#,
+ "p" kern -0.1base_width#,
+ "B" kern -0.1base_width#,
+ "m" kern -0.2base_width#,
+ 165 kern -0.2base_width#, %165, \"m
+ "M" kern -0.2base_width#,
+ 133 kern -0.2base_width#, %133, \"M
+ "R" kern -0.2base_width#;
+
+ligtable 37: %\doublecross
+ "m" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ "M" kern -0.1base_width#,
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.1base_width#;
+
+ligtable 38: %\triplecross
+ "m" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ "M" kern -0.1base_width#,
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.1base_width#;
+
+ligtable "f": "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ 185 kern -0.2base_width#, % \turn{A}
+ 193 kern -0.2base_width#, % \A
+ "h" kern -0.3base_width#,
+ "n" kern -0.3base_width#,
+ "a" kern -0.5base_width#,
+ "s" kern -0.1base_width#,
+ 179 kern -0.2base_width#, %179, \s
+ "S" kern -0.1base_width#,
+ 147 kern -0.3base_width#, %147, \S
+ "t" kern -0.2base_width#,
+ "d" kern -0.2base_width#,
+ "m" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ "M" kern -0.1base_width#,
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.5base_width#;
+
+ligtable "F": "." kern -0.2base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "!" kern -0.1base_width#,
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.2base_width#, %42, \cross
+ 185 kern -0.1base_width#, % \turn{A}
+ 193 kern -0.1base_width#, % \A
+ "h" kern -0.1base_width#,
+ "n" kern -0.1base_width#,
+ "a" kern -0.3base_width#,
+ 179 kern -0.1base_width#, %179, \s
+ 147 kern -0.2base_width#, %147, \S
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "R" kern -0.3base_width#;
+
+ligtable "u":
+ "y": "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ 42 kern -0.1base_width#, %42, \cross
+ 185 kern -0.1base_width#, % \turn{A}
+ 193 kern -0.1base_width#, % \A
+ "n" kern -0.2base_width#,
+ "a" kern -0.1base_width#,
+ "t" kern -0.2base_width#,
+ "d" kern -0.2base_width#,
+ "m" kern -0.3base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.3base_width#, %165, \"m
+ 133 kern -0.1base_width#; %133, \"M
+
+ligtable 254: %254 \th
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ 185 kern -0.1base_width#, % \turn{A}
+ 193 kern -0.1base_width#, % \A
+ "h" kern -0.15base_width#,
+ "n" kern -0.15base_width#,
+ "a" kern -0.15base_width#,
+ "t" kern -0.15base_width#,
+ "d" kern -0.15base_width#,
+ "m" kern -0.3base_width#,
+ "M" kern -0.2base_width#,
+ 165 kern -0.3base_width#, %165, \"m
+ 133 kern -0.2base_width#, %133, \"M
+ "R" kern -0.3base_width#;
+
+ligtable 222: 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.1base_width#, %36, \star
+ "h" kern -0.15base_width#,
+ "n" kern -0.15base_width#,
+ "a" kern -0.15base_width#,
+ "t" kern -0.15base_width#,
+ "d" kern -0.15base_width#,
+ "m" kern -0.2base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.2base_width#, %165, \"m
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.2base_width#;
+
+ligtable "A":
+ 193: %\AA
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doublplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.1base_width#, %42, \cross
+ 185 kern -0.2base_width#, % \turn{A}
+ 193 kern -0.1base_width#, % \A
+ "h" kern -0.1base_width#,
+ "n" kern -0.2base_width#,
+ "a" kern -0.1base_width#,
+ "t" kern -0.2base_width#,
+ "d" kern -0.2base_width#,
+ "m" kern -0.3base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.3base_width#, %165, \"m
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.1base_width#;
+
+
+ligtable "r": "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ 185 kern -0.1base_width#, % \turn{A}
+ 193 kern -0.1base_width#, % \A
+ "h" kern -0.1base_width#,
+ "n" kern -0.2base_width#,
+ "a" kern -0.2base_width#,
+ "s" kern -0.05base_width#,
+ 179 kern -0.15base_width#, %179, \s
+ "t" kern -0.2base_width#,
+ "d" kern -0.2base_width#,
+ "m" kern -0.3base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.3base_width#, %165, \"m
+ 133 kern -0.1base_width#; %133, \"M
+
+ligtable "k":
+ "g": "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.3base_width#, %42, \cross
+ 185 kern -0.2base_width#, % \turn{A}
+ 193 kern -0.2base_width#, % \A
+ "h" kern -0.25base_width#,
+ "n" kern -0.25base_width#,
+ "a" kern -0.4base_width#,
+ "s" kern -0.1base_width#,
+ 179 kern -0.2base_width#, %179, \s
+ 147 kern -0.3base_width#, %147, \S
+ "t" kern -0.25base_width#,
+ "d" kern -0.25base_width#,
+ "m" kern -0.1base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.5base_width#;
+
+ligtable "h":
+ "+" kern -0.2base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "m" kern -0.2base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.2base_width#, %165, \"m
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.2base_width#;
+
+ligtable "n": 62 kern -0.2base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.2base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ "n" kern -0.3base_width#,
+ "a" kern -0.1base_width#,
+ "s" kern -0.1base_width#,
+ "t" kern -0.3base_width#,
+ "d" kern -0.3base_width#,
+ "m" kern -0.3base_width#,
+ "M" kern -0.2base_width#,
+ 165 kern -0.3base_width#, %165, \"m
+ 133 kern -0.2base_width#, %133, \"M
+ "R" kern -0.2base_width#;
+
+ligtable "i":
+ "f" kern +0.1base_width#,
+ "u" kern +0.1base_width#,
+ "y" kern +0.1base_width#,
+ 254 kern +0.1base_width#, %254, \th
+ 222 kern +0.1base_width#, %222, \TH
+ "A" kern +0.1base_width#,
+ "r" kern +0.1base_width#,
+ "k" kern +0.1base_width#,
+ "g" kern +0.1base_width#,
+ "i" kern +0.1base_width#,
+ "e" kern +0.1base_width#,
+ "S" kern +0.1base_width#,
+ "b" kern +0.1base_width#,
+ "p" kern +0.1base_width#,
+ "B" kern +0.1base_width#,
+ "l" kern +0.1base_width#;
+
+ligtable "e":
+ "." kern +0.1base_width#,
+ "f" kern +0.1base_width#,
+ "u" kern +0.1base_width#,
+ "y" kern +0.1base_width#,
+ 254 kern +0.1base_width#, %254, \th
+ 222 kern +0.1base_width#, %222, \TH
+ "A" kern +0.1base_width#,
+ "r" kern +0.1base_width#,
+ "k" kern +0.1base_width#,
+ "g" kern +0.1base_width#,
+ "i" kern +0.1base_width#,
+ "e" kern +0.1base_width#,
+ "S" kern +0.1base_width#,
+ "b" kern +0.1base_width#,
+ "p" kern +0.1base_width#,
+ "B" kern +0.1base_width#,
+ "l" kern +0.1base_width#;
+
+ligtable "a": 62 kern -0.2base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.2base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ "n" kern -0.1base_width#,
+ "a" kern -0.3base_width#,
+ "t" kern -0.15base_width#,
+ "d" kern -0.15base_width#,
+ "m" kern -0.2base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.2base_width#, %165, \m
+ 133 kern -0.1base_width#, %133, \M
+ "R" kern -0.3base_width#;
+
+ligtable "s": "n" kern -0.1base_width#,
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "m" kern -0.3base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.3base_width#, %165, \m
+ 133 kern -0.1base_width#; %133, \M
+
+ligtable 179: "a" kern -0.1base_width#,
+ "R" kern -0.2base_width#;
+
+ligtable "S": "n" kern -0.1base_width#,
+ "t" kern -0.2base_width#,
+ "d" kern -0.2base_width#,
+ "m" kern -0.3base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.3base_width#, %165, \"m
+ 133 kern -0.1base_width#; %133, \"M
+
+
+ligtable "t":
+ "d": "." kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ "n" kern -0.1base_width#,
+ "a" kern -0.3base_width#,
+ "m" kern -0.2base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.2base_width#, %165, \"m
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.4base_width#;
+
+ligtable "b":
+ "p": "." kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ "h" kern -0.1base_width#,
+ "n" kern -0.2base_width#,
+ "a" kern -0.2base_width#,
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "m" kern -0.2base_width#,
+ 165 kern -0.2base_width#, %165, \"m
+ "R" kern -0.2base_width#;
+
+ligtable "B": "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ "h" kern -0.1base_width#,
+ "n" kern -0.2base_width#,
+ "a" kern -0.2base_width#,
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "m" kern -0.2base_width#,
+ 165 kern -0.2base_width#, %165, \"m
+ "R" kern -0.2base_width#;
+
+ligtable "m":
+ 165: "." kern -0.3base_width#, %165 \"m
+ ":" kern -0.1base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.3base_width#, %42, \cross
+ 185 kern -0.2base_width#, % \turn{A}
+ 193 kern -0.2base_width#, % \A
+ "h" kern -0.2base_width#,
+ "n" kern -0.2base_width#,
+ "a" kern -0.4base_width#,
+ "s" kern -0.1base_width#,
+ 179 kern -0.1base_width#, %179, \s
+ 147 kern -0.2base_width#, %147, \S
+ "t" kern -0.2base_width#,
+ "d" kern -0.2base_width#,
+ "m" kern -0.1base_width#,
+ "M" kern -0.1base_width#,
+ 165 kern -0.1base_width#, %165, \"m
+ 133 kern -0.1base_width#, %133, \"M
+ "R" kern -0.4base_width#;
+
+ligtable "M":
+ 133: "." kern -0.3base_width#, %133 \"M
+ ":" kern -0.1base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.3base_width#, %42, \cross
+ 185 kern -0.2base_width#, % \turn{A}
+ 193 kern -0.2base_width#, % \A
+ "h" kern -0.1base_width#,
+ "n" kern -0.1base_width#,
+ "a" kern -0.3base_width#,
+ "t" kern -0.1base_width#,
+ "d" kern -0.1base_width#,
+ "m" kern -0.1base_width#,
+ "M" kern -0.1base_width#,
+ "R" kern -0.3base_width#;
+
+ligtable "l": 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ "h" kern -0.2base_width#,
+ "n" kern -0.1base_width#,
+ "a" kern -0.3base_width#,
+ 179 kern -0.1base_width#, %179, \s
+ 147 kern -0.2base_width#, %147, \S
+ "t" kern -0.2base_width#,
+ "d" kern -0.2base_width#,
+ "m" kern -0.2base_width#,
+ "M" kern -0.2base_width#,
+ 165 kern -0.1base_width#, %165, \m
+ 133 kern -0.1base_width#, %133, \M
+ "R" kern -0.4base_width#;
+
+ligtable "R": "." kern -0.3base_width#,
+ ":" kern -0.1base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.3base_width#, %42, \cross
+ 185 kern -0.1base_width#, % \turn{A}
+ 193 kern -0.1base_width#, % \A
+ "h" kern -0.2base_width#,
+ "n" kern -0.4base_width#,
+ "a" kern -0.2base_width#,
+ "s" kern -0.3base_width#,
+ "t" kern -0.4base_width#,
+ "d" kern -0.4base_width#,
+ "m" kern -0.4base_width#,
+ "M" kern -0.2base_width#,
+ 165 kern -0.4base_width#, %165, \m
+ 133 kern -0.2base_width#; %133, \M
+
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunbm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunbm.mf
new file mode 100644
index 00000000000..fd273d7598a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunbm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunbm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunbn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunbn.mf
new file mode 100644
index 00000000000..58157ccd525
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunbn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunbn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunbq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunbq.mf
new file mode 100644
index 00000000000..3b320649807
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunbq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunbq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunbr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunbr.mf
new file mode 100644
index 00000000000..3c87a9bc51b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunbr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunbr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunbs.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunbs.mf
new file mode 100644
index 00000000000..e1ac178ac8c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunbs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunbs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunbt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunbt.mf
new file mode 100644
index 00000000000..a99365fac9f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunbt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunbt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruncm.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruncm.mf
new file mode 100644
index 00000000000..6ff8d345c16
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruncm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruncm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruncn.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruncn.mf
new file mode 100644
index 00000000000..38a037adee5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruncn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruncn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruncq.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruncq.mf
new file mode 100644
index 00000000000..f6be84885aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruncq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruncq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruncr.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruncr.mf
new file mode 100644
index 00000000000..81adf07d644
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruncr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruncr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/fruncs.mf b/Master/texmf-dist/fonts/source/public/allrunes/fruncs.mf
new file mode 100644
index 00000000000..7b65169a044
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/fruncs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `fruncs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunct.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunct.mf
new file mode 100644
index 00000000000..742ed347063
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunct.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,bold,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunkm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunkm.mf
new file mode 100644
index 00000000000..e6fbbf17570
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunkm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunkm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunkn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunkn.mf
new file mode 100644
index 00000000000..2b2697186f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunkn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunkn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunkq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunkq.mf
new file mode 100644
index 00000000000..eae1b70aecc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunkq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunkq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunkr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunkr.mf
new file mode 100644
index 00000000000..366b4d8f7af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunkr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunkr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunks.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunks.mf
new file mode 100644
index 00000000000..de934b47c13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunks.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunks.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunkt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunkt.mf
new file mode 100644
index 00000000000..fb668620bea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunkt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunkt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunlm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunlm.mf
new file mode 100644
index 00000000000..4093f99c367
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunlm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunlm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunln.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunln.mf
new file mode 100644
index 00000000000..8642cceecf9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunln.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunln.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunlq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunlq.mf
new file mode 100644
index 00000000000..6573af9492a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunlq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunlq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunlr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunlr.mf
new file mode 100644
index 00000000000..7f67cabbc5f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunlr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunlr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunls.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunls.mf
new file mode 100644
index 00000000000..c266b429ed8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunls.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunls.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunlt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunlt.mf
new file mode 100644
index 00000000000..63dd7df09cf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunlt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunlt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,light,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunmm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunmm.mf
new file mode 100644
index 00000000000..3adcbd7640c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunmm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunmm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunmn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunmn.mf
new file mode 100644
index 00000000000..8d02cf3cdc0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunmn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunmn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunmq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunmq.mf
new file mode 100644
index 00000000000..24b7930bf7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunmq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunmq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunmr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunmr.mf
new file mode 100644
index 00000000000..2f32e480f4e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunmr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunmr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunms.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunms.mf
new file mode 100644
index 00000000000..28ebdc6fb2d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunms.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunms.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunmt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunmt.mf
new file mode 100644
index 00000000000..a293e26961f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunmt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunmt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunnm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunnm.mf
new file mode 100644
index 00000000000..37ed4c03e6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunnm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunnm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunnn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunnn.mf
new file mode 100644
index 00000000000..f971c25227d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunnn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunnn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunnq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunnq.mf
new file mode 100644
index 00000000000..ad396bf84c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunnq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunnq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunnr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunnr.mf
new file mode 100644
index 00000000000..e472f99a79a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunnr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunnr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunns.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunns.mf
new file mode 100644
index 00000000000..f8f97e22371
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunns.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunns.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frunnt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frunnt.mf
new file mode 100644
index 00000000000..211676586a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frunnt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frunnt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frunin,medium,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frun;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frusep.mf b/Master/texmf-dist/fonts/source/public/allrunes/frusep.mf
new file mode 100644
index 00000000000..5752e57a4df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frusep.mf
@@ -0,0 +1,176 @@
+%%
+%% This is file `frusep.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `frusep')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+def draw_cross(expr y_centre, i) =
+ filldraw barpath(xmid-xhalf, ymid-xhalf+y_centre*yhalf, endrounding,
+ xmid+xhalf, ymid+xhalf+y_centre*yhalf, endrounding, 0, tightness_f, i);
+ filldraw barpath(xmid-xhalf, ymid+xhalf+y_centre*yhalf, endrounding,
+ xmid+xhalf, ymid-xhalf+y_centre*yhalf, endrounding, 0, tightness_f, i+10)
+enddef;
+
+def draw_plus(expr y_centre, i) =
+ filldraw barpath(xmid-xhalf, ymid+y_centre*yhalf, endrounding,
+ xmid+xhalf, ymid+y_centre*yhalf, endrounding, 0, tightness_f, i);
+ filldraw barpath(xmid, ymid+xhalf+y_centre*yhalf, endrounding,
+ xmid, ymid-xhalf+y_centre*yhalf, endrounding, 0, tightness_f, i+10)
+enddef;
+
+beginrunechar(".", sepdot_f*stem_w#+2*margin_width#);
+ filldraw dotpath(xmid, ymid, sepdot_f, 20);
+endchar;
+
+beginrunechar(":", sepdot_f*stem_w#+2*margin_width#);
+ save ddot_y_f;
+ ddot_y_f=0.3;
+ filldraw dotpath(xmid, ymid+yhalf*ddot_y_f, sepdot_f, 20);
+ filldraw dotpath(xmid, ymid-yhalf*ddot_y_f, sepdot_f, 30);
+endchar;
+
+beginrunechar(59, sepdot_f*stem_w#+2*margin_width#);
+ save tdot_y_f;
+ tdot_y_f=0.6;
+ filldraw dotpath(xmid, ymid+yhalf*tdot_y_f, sepdot_f, 20);
+ filldraw dotpath(xmid, ymid, sepdot_f, 30);
+ filldraw dotpath(xmid, ymid-yhalf*tdot_y_f, sepdot_f, 40);
+endchar;
+
+beginrunechar(60, sepdot_f*stem_w#+2*margin_width#);
+ save qdot_ymid_f;
+ save qdot_ytop_f;
+ qdot_ymid_f=0.25;
+ qdot_ytop_f=0.75;
+ filldraw dotpath(xmid, ymid+yhalf*qdot_ymid_f, sepdot_f, 20);
+ filldraw dotpath(xmid, ymid+yhalf*qdot_ytop_f, sepdot_f, 30);
+ filldraw dotpath(xmid, ymid-yhalf*qdot_ymid_f, sepdot_f, 40);
+ filldraw dotpath(xmid, ymid-yhalf*qdot_ytop_f, sepdot_f, 50);
+endchar;
+
+beginrunechar(61, sepdot_f*stem_w#+2*margin_width#);
+ save pdot_ymid_f;
+ save pdot_ytop_f;
+ pdot_ymid_f=0.4;
+ pdot_ytop_f=0.8;
+ filldraw dotpath(xmid, ymid+yhalf*pdot_ymid_f, sepdot_f, 20);
+ filldraw dotpath(xmid, ymid+yhalf*pdot_ytop_f, sepdot_f, 30);
+ filldraw dotpath(xmid, ymid, sepdot_f, 40);
+ filldraw dotpath(xmid, ymid-yhalf*pdot_ymid_f, sepdot_f, 50);
+ filldraw dotpath(xmid, ymid-yhalf*pdot_ytop_f, sepdot_f, 60);
+endchar;
+
+beginrunechar(62, 0.55*base_width#+2*margin_width#);
+ filldraw dotpath(xmid-xhalf, ymid+xhalf/sqrt(3), sepdot_f, 20);
+ filldraw dotpath(xmid+xhalf, ymid+xhalf/sqrt(3), sepdot_f, 30);
+ filldraw dotpath(xmid, ymid-2*xhalf/sqrt(3), sepdot_f, 40);
+endchar;
+
+beginrunechar(63, 0.6*base_width#+2*margin_width#);
+ filldraw dotpath(xmid, ymid-xhalf, sepdot_f, 20);
+ filldraw dotpath(xmid, ymid+xhalf, sepdot_f, 30);
+ filldraw dotpath(xmid-xhalf, ymid, sepdot_f, 40);
+ filldraw dotpath(xmid+xhalf, ymid, sepdot_f, 50);
+endchar;
+
+beginrunechar(64, 0.75*base_width#+2*margin_width#);
+ filldraw dotpath(xmid, ymid-xhalf, sepdot_f, 20);
+ filldraw dotpath(xmid, ymid, sepdot_f, 30);
+ filldraw dotpath(xmid, ymid+xhalf, sepdot_f, 40);
+ filldraw dotpath(xmid+xhalf, ymid, sepdot_f, 50);
+ filldraw dotpath(xmid-xhalf, ymid, sepdot_f, 60);
+endchar;
+
+cross_width_f=0.55;
+beginrunechar("*", cross_width_f*base_width#+2*margin_width#);
+ draw_cross(0.0, 20);
+endchar;
+
+beginrunechar(37, cross_width_f*base_width#+2*margin_width#);
+ save dcross_y_f;
+ dcross_y_f=0.4;
+ draw_cross(-dcross_y_f, 20);
+ draw_cross( dcross_y_f, 40);
+endchar;
+
+beginrunechar(38, cross_width_f*base_width#+2*margin_width#);
+ save tcross_y_f;
+ tcross_y_f=0.7;
+ draw_cross(-tcross_y_f, 20);
+ draw_cross( 0.0, 40);
+ draw_cross( tcross_y_f, 60);
+endchar;
+
+plus_width_f=0.67;
+beginrunechar("+", plus_width_f*base_width#+2*margin_width#);
+ draw_plus(0.0, 20);
+endchar;
+
+beginrunechar(44, plus_width_f*base_width#+2*margin_width#);
+ save dplus_y_f;
+ dplus_y_f=0.4;
+ draw_plus(-dplus_y_f, 20);
+ draw_plus( dplus_y_f, 40);
+endchar;
+
+beginrunechar(45, plus_width_f*base_width#+2*margin_width#);
+ save tplus_y_f;
+ tplus_y_f=0.76;
+ draw_plus(-tplus_y_f, 20);
+ draw_plus( 0.0, 40);
+ draw_plus( tplus_y_f, 60);
+endchar;
+
+beginrunechar("!", stem_w#+2*margin_width#);
+ save barheight_y_f;
+ barheight_y_f=0.4;
+ filldraw barpath(xmid, ymid+barheight_y_f*yhalf, endrounding,
+ xmid, ymid-barheight_y_f*yhalf, endrounding, 0, tightness_f, 20);
+endchar;
+
+beginrunechar(34, stem_w#+2*margin_width#);
+ save dbarheight_y_f;
+ save dbarpos_y_f;
+ dbarheight_y_f=0.3;
+ dbarpos_y_f=0.4;
+ filldraw barpath(xmid, ymid+( dbarpos_y_f+dbarheight_y_f)*yhalf, endrounding,
+ xmid, ymid+( dbarpos_y_f-dbarheight_y_f)*yhalf, endrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid, ymid+(-dbarpos_y_f+dbarheight_y_f)*yhalf, endrounding,
+ xmid, ymid+(-dbarpos_y_f-dbarheight_y_f)*yhalf, endrounding, 0, tightness_f, 30);
+endchar;
+
+beginrunechar(35, stem_w#+2*margin_width#);
+ save tbarheight_y_f;
+ save tbarpos_y_f;
+ tbarheight_y_f=0.25;
+ tbarpos_y_f=0.7;
+ filldraw barpath(xmid, ymid+( tbarpos_y_f+tbarheight_y_f)*yhalf, endrounding,
+ xmid, ymid+( tbarpos_y_f-tbarheight_y_f)*yhalf, endrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid, ymid +tbarheight_y_f *yhalf, endrounding,
+ xmid, ymid -tbarheight_y_f *yhalf, endrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid, ymid+(-tbarpos_y_f+tbarheight_y_f)*yhalf, endrounding,
+ xmid, ymid+(-tbarpos_y_f-tbarheight_y_f)*yhalf, endrounding, 0, tightness_f, 30);
+endchar;
+
+beginrunechar(36, 0.7*base_width#+2*margin_width#);
+ filldraw barpath(xmid, ymid, jointrounding,
+ xmid+cosd(1/5*360+90)*xhalf, ymid+sind(1/5*360+90)*xhalf, endrounding, 0, tightness_f, 20);
+ filldraw barpath(xmid, ymid, jointrounding,
+ xmid+cosd(2/5*360+90)*xhalf, ymid+sind(2/5*360+90)*xhalf, endrounding, 0, tightness_f, 30);
+ filldraw barpath(xmid, ymid, jointrounding,
+ xmid+cosd(3/5*360+90)*xhalf, ymid+sind(3/5*360+90)*xhalf, endrounding, 0, tightness_f, 40);
+ filldraw barpath(xmid, ymid, jointrounding,
+ xmid+cosd(4/5*360+90)*xhalf, ymid+sind(4/5*360+90)*xhalf, endrounding, 0, tightness_f, 50);
+ filldraw barpath(xmid, ymid, jointrounding,
+ xmid+cosd(5/5*360+90)*xhalf, ymid+sind(5/5*360+90)*xhalf, endrounding, 0, tightness_f, 60);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frut.mf b/Master/texmf-dist/fonts/source/public/allrunes/frut.mf
new file mode 100644
index 00000000000..b2585c20f60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frut.mf
@@ -0,0 +1,470 @@
+%%
+%% This is file `frut.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `fontbase,frut')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+draw_normal_f("f",1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(134,1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(142,-1,1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_normal_f(150,-1,-1,false,false,false); %highdot = false, stemdot = false, twigdot = false
+
+draw_primitive_f("F",1,1);
+
+draw_primitive_f(166,1,-1);
+
+draw_primitive_f(174,-1,1);
+
+draw_primitive_f(182,-1,-1);
+
+draw_normal_u("u",1,1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u(221,1,-1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u(229,-1,1,false,0); %tight = false, 0 = no dots
+
+draw_normal_u(237,-1,-1,false,0); %tight = false, 0 = no dots
+
+draw_primitive_U("U",1,1,false); %symmetric = false
+
+draw_primitive_U(197,1,-1,false); %symmetric = false
+
+draw_primitive_U(205,-1,1,false); %symmetric = false
+
+draw_primitive_U(213,-1,-1,false); %symmetric = false
+
+draw_normal_th(254,1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(246,-1,1,false,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(222,1,1,true,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_th(214,-1,1,true,false,false); %big = false, dot = false, doubble = false
+
+draw_normal_single_A("A",1,1,false); %top = false
+
+draw_normal_single_A(129,-1,-1,false); %top = false
+
+draw_normal_double_A(193,1,1,false,false,false); %three = false, stlb = false, sblb = false
+
+draw_normal_r("r",1,1,true,false); % closed = true, topdot=false
+
+draw_normal_r(234,1,-1,true,false); % closed = true, topdot=false
+
+draw_normal_r(242,-1,1,true,false); % closed = true, topdot=false
+
+draw_normal_r(250,-1,-1,true,false); % closed = true, topdot=false
+
+draw_normal_k("k",1,1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k(235,1,-1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k(243,-1,1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_k(251,-1,-1,false,false,false,false); % topdot = false, middot = false, midtwig = false, two = false
+
+draw_normal_i("h",1,1,false,true,false,false,false,false); % dot = false, twig = true, high = false, top = false, twodots = false, circle = false
+
+draw_normal_i(160,1,1,true,false,false,false,false,false); % dot = true, twig = false, high = false, top = false, twodots = false, circle = false
+
+draw_shorttwig_n("n",1,1,false,false); %middot = false, sidedot = false
+
+draw_shorttwig_n(158,-1,-1,false,false); %middot = false, sidedot = false
+
+draw_normal_i("i",1,1,false,false,false,false,false,false); % dot = false, twig = false, high = false, top = false, twodots = false, circle = false
+
+draw_shorttwig_n("a",-1,1,false,false); %middot = false, sidedot = false
+
+draw_shorttwig_n(161,1,-1,false,false); %middot = false, sidedot = false
+
+draw_shorttwig_s("s",1,1,false,false,false,false,false); %dot = false, twig = false, hook = false, arrow = false, circle = false
+
+draw_shorttwig_s(179,1,1,true,false,false,false,false); %dot = true, twig = false, hook = false, arrow = false, circle = false
+
+draw_normal_l("t",-1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(140,1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_shorttwig_l(180,-1,1);
+
+draw_shorttwig_l(204,1,-1);
+
+draw_shorttwig_L("T",-1,1);
+
+draw_shorttwig_L(148,1,-1);
+
+draw_normal_single_A("b",1,-1,false); %top = false
+
+draw_normal_single_A(162,-1,1,false); %top = false
+
+draw_normal_double_A(194,-1,1,false,false,false); %three = false, stlb = false, sblb = false
+
+draw_normal_i("m",1,1,false,true,true,false,false,false); % dot = false, twig = true, high = true, top = false, twodots = false, circle = false
+
+draw_normal_i(141,1,-1,false,true,true,false,false,false); % dot = false, twig = true, high = true, top = false, twodots = false, circle = false
+
+draw_normal_i(165,1,1,true,false,false,true,false,false); % dot = true, twig = false, high = false, top = true, twodots = false, circle = false
+
+draw_normal_i(157,1,-1,true,false,false,true,false,false); % dot = true, twig = false, high = false, top = true, twodots = false, circle = false
+
+draw_normal_i("M",1,1,false,true,false,true,false,false); % dot = false, twig = true, high = false, top = true, twodots = false, circle = false
+
+draw_normal_i(149,1,-1,false,true,false,true,false,false); % dot = false, twig = true, high = false, top = true, twodots = false, circle = false
+
+draw_normal_l("l",1,1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_normal_l(156,-1,-1,false,false,false,false,false); %middot = false, topdot = false, midbar = false, topbar = false, circle = false
+
+draw_shorttwig_l(188,1,1);
+
+draw_shorttwig_l(196,-1,-1);
+
+draw_shorttwig_L("L",1,1);
+
+draw_shorttwig_L(164,-1,-1);
+
+draw_shorttwig_s("R",1,-1,false,false,false,false,false); %dot = false, twig = false, hook = false, arrow = false, circle = false
+
+draw_shorttwig_s(154,1,-1,true,false,false,false,false); %dot = true, twig = false, hook = false, arrow = false, circle = false
+
+ligtable ".":
+ ":":
+ 62: %62 \tripleeye
+ 63: %63 \quadeye
+ 64: %64 \penteye
+ "!":
+ "+":
+ 44: %44 \doubleplus
+ 36: %36 \star
+ 42: %42 \cross
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ 166 kern -0.2base_width#, % \n
+ "a" kern -0.2base_width#,
+ "t" kern -0.2base_width#,
+ "T" kern -0.1base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.2base_width#;
+
+ligtable 59: %59 \tripledot
+ 60: %60 \quaddot
+ 61: %61 \pentdot
+ 34: %34 \doublebar
+ 35: %35 \triplebar
+ 45: %45 \tripleplus
+ 37: %37 \doublecross
+ 38: %38 \triplecross
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ 166 kern -0.1base_width#, % \n
+ "a" kern -0.1base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.2base_width#, %188 \l
+ "L" kern -0.1base_width#;
+
+ligtable "f":
+ "k":
+ 180: % 180 \t
+ "T":
+ "." kern -0.3base_width#,
+ ":" kern -0.3base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ 129 kern -0.2base_width#, % \A
+ 193 kern -0.2base_width#, % \AA
+ "h" kern -0.1base_width#,
+ 166 kern -0.2base_width#, % \n
+ "a" kern -0.3base_width#,
+ "t" kern -0.3base_width#,
+ "T" kern -0.3base_width#,
+ 162 kern -0.3base_width#, % \b
+ 194 kern -0.3base_width#, % \bb
+ 188 kern -0.1base_width#, %188 \l
+ "L" kern -0.1base_width#,
+ "R" kern -0.2base_width#,
+ 154 kern -0.3base_width#; %154 \.R
+
+ligtable "F": "." kern -0.2base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "!" kern -0.1base_width#,
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.2base_width#, %42, \cross
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ 166 kern -0.1base_width#, % \n
+ "a" kern -0.2base_width#,
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 162 kern -0.2base_width#, % \b
+ 194 kern -0.2base_width#, % \bb
+ "M" kern +0.1base_width#,
+ 188 kern -0.1base_width#, %188 \l
+ "L" kern -0.1base_width#,
+ "R" kern -0.1base_width#,
+ 154 kern -0.1base_width#; %154 \.R
+
+ligtable "u": "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 36 kern -0.1base_width#, %36, \star
+ 42 kern -0.1base_width#, %42, \cross
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ 166 kern -0.2base_width#, % \n
+ "a" kern -0.1base_width#,
+ "t" kern -0.3base_width#,
+ "T" kern -0.3base_width#,
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.3base_width#;
+
+ligtable "U": "." kern -0.3base_width#,
+ ":" kern -0.2base_width#,
+ 59 kern -0.1base_width#, %59, \tripledot
+ 62 kern -0.3base_width#, %62, \tripleeye
+ 63 kern -0.3base_width#, %63, \quadeye
+ 64 kern -0.3base_width#, %64, \penteye
+ "!" kern -0.2base_width#,
+ 34 kern -0.1base_width#, %34, \doublebar
+ "+" kern -0.3base_width#,
+ 44 kern -0.2base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.3base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.3base_width#, %42, \cross
+ 129 kern -0.3base_width#, % \A
+ 193 kern -0.3base_width#, % \AA
+ "h" kern -0.1base_width#,
+ 166 kern -0.3base_width#, % \n
+ "a" kern -0.2base_width#,
+ "s" kern -0.2base_width#,
+ 179 kern -0.2base_width#, % \.s
+ "t" kern -0.5base_width#,
+ "T" kern -0.4base_width#,
+ 162 kern -0.2base_width#, % \b
+ 194 kern -0.2base_width#, % \bb
+ 188 kern -0.5base_width#, %188 \l
+ "L" kern -0.4base_width#;
+
+ligtable 254: %254 \th
+ "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ "t" kern -0.2base_width#,
+ "T" kern -0.2base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.2base_width#;
+
+ligtable 222: %222 \TH
+ "." kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 42 kern -0.1base_width#, %42, \cross
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ "t" kern -0.1base_width#,
+ "T" kern -0.1base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.2base_width#;
+
+ligtable "A":
+ 193: %\AA
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doublplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.1base_width#, %42, \cross
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ 166 kern -0.2base_width#, % \n
+ "a" kern -0.1base_width#,
+ "t" kern -0.2base_width#,
+ "T" kern -0.2base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.2base_width#;
+
+ligtable 129: % 129 \A
+ 166: % 166 \n
+ "a":
+ "i":
+ "s":
+ "t":
+ 162: % 162 \b
+ 188: % 188 \l
+ "i" kern +0.1base_width#,
+ "s" kern +0.1base_width#,
+ "R" kern +0.1base_width#;
+
+ligtable "r": "." kern -0.1base_width#,
+ ":" kern -0.1base_width#,
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ "h" kern -0.1base_width#,
+ 166 kern -0.2base_width#, % \n
+ "a" kern -0.1base_width#,
+ "t" kern -0.2base_width#,
+ "T" kern -0.2base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.2base_width#;
+
+ligtable "h":
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ 166 kern -0.1base_width#, % \n
+ "a" kern -0.1base_width#,
+ "t" kern -0.3base_width#,
+ "T" kern -0.2base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.2base_width#;
+
+
+ligtable "n":
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ 166 kern -0.2base_width#, % \n
+ "a" kern -0.1base_width#,
+ "s" kern -0.1base_width#,
+ 179 kern -0.1base_width#, % \.s
+ "t" kern -0.3base_width#,
+ "T" kern -0.2base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.3base_width#, % 188 \l
+ "L" kern -0.2base_width#;
+
+ligtable 161: %161 \a
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ 166 kern -0.1base_width#, % \n
+ "a" kern -0.2base_width#,
+ "t" kern -0.2base_width#,
+ "T" kern -0.1base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.2base_width#,
+ "R" kern -0.1base_width#,
+ 154 kern -0.1base_width#; % \.R
+
+ligtable "b":
+ 194: % \bb
+ ":" kern -0.1base_width#,
+ "+" kern -0.1base_width#,
+ 44 kern -0.1base_width#, %44, \doublplus
+ 36 kern -0.1base_width#, %36, \star
+ 37 kern -0.1base_width#, %37, \doublecross
+ 42 kern -0.1base_width#, %42, \cross
+ 129 kern -0.1base_width#, % \A
+ 193 kern -0.1base_width#, % \AA
+ 166 kern -0.1base_width#, % \n
+ "a" kern -0.2base_width#,
+ "t" kern -0.2base_width#,
+ "T" kern -0.2base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.2base_width#;
+
+ligtable "m":
+ "M":
+ 166 kern -0.2base_width#, % \n
+ "a" kern -0.2base_width#,
+ "t" kern -0.1base_width#,
+ "T" kern -0.2base_width#,
+ 162 kern -0.1base_width#, % \b
+ 194 kern -0.1base_width#, % \bb
+ 188 kern -0.2base_width#, % 188 \l
+ "L" kern -0.1base_width#;
+
+ligtable "l":
+ "L":
+ 62 kern -0.1base_width#, %62, \tripleeye
+ 63 kern -0.2base_width#, %63, \quadeye
+ 64 kern -0.2base_width#, %64, \penteye
+ "+" kern -0.2base_width#,
+ 44 kern -0.1base_width#, %44, \doubleplus
+ 45 kern -0.1base_width#, %45, \tripleplus
+ 36 kern -0.2base_width#, %36, \star
+ 37 kern -0.2base_width#, %37, \doublecross
+ 38 kern -0.1base_width#, %38, \triplecross
+ 42 kern -0.1base_width#, %42, \cross
+ 166 kern -0.2base_width#, % \n
+ "a" kern -0.2base_width#,
+ "t" kern -0.1base_width#,
+ "T" kern -0.2base_width#,
+ 162 kern -0.2base_width#, % \b
+ 194 kern -0.2base_width#, % \bb
+ 188 kern -0.2base_width#, % 188 \l
+ "L" kern -0.2base_width#,
+ "R" kern -0.2base_width#,
+ 154 kern -0.2base_width#; % \.R
+
+ligtable "R":
+ 154: % \R
+ "i" kern +0.1base_width#,
+ "s" kern +0.1base_width#,
+ "t" kern -0.3base_width#,
+ "T" kern -0.2base_width#,
+ 188 kern -0.3base_width#, %188 \l
+ "L" kern -0.2base_width#,
+ "R" kern +0.1base_width#;
+
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutbm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutbm.mf
new file mode 100644
index 00000000000..342e9cdd6d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutbm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutbm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutbn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutbn.mf
new file mode 100644
index 00000000000..6d0d3671eb8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutbn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutbn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutbq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutbq.mf
new file mode 100644
index 00000000000..bd5e88ed1fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutbq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutbq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutbr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutbr.mf
new file mode 100644
index 00000000000..8d1ea2a44ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutbr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutbr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutbs.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutbs.mf
new file mode 100644
index 00000000000..8d9f361c09b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutbs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutbs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutbt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutbt.mf
new file mode 100644
index 00000000000..4228ea39811
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutbt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutbt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutcm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutcm.mf
new file mode 100644
index 00000000000..b051cefcff3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutcm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutcm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutcn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutcn.mf
new file mode 100644
index 00000000000..9303fa3c9bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutcn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutcn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutcq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutcq.mf
new file mode 100644
index 00000000000..0f012bb4aa1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutcq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutcq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutcr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutcr.mf
new file mode 100644
index 00000000000..1749898ae88
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutcr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutcr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutcs.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutcs.mf
new file mode 100644
index 00000000000..865c636f83b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutcs.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutcs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutct.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutct.mf
new file mode 100644
index 00000000000..527a38886ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutct.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,bold,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="bold";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutkm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutkm.mf
new file mode 100644
index 00000000000..9474a4aee84
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutkm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutkm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutkn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutkn.mf
new file mode 100644
index 00000000000..9ded5c0f926
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutkn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutkn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutkq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutkq.mf
new file mode 100644
index 00000000000..72f6bddfbf3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutkq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutkq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutkr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutkr.mf
new file mode 100644
index 00000000000..7c835974a87
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutkr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutkr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutks.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutks.mf
new file mode 100644
index 00000000000..986c6885490
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutks.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutks.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutkt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutkt.mf
new file mode 100644
index 00000000000..6a8a9a2673f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutkt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutkt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutlm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutlm.mf
new file mode 100644
index 00000000000..605d2711f96
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutlm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutlm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutln.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutln.mf
new file mode 100644
index 00000000000..52f7ac098b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutln.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutln.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutlq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutlq.mf
new file mode 100644
index 00000000000..49886e1df44
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutlq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutlq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutlr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutlr.mf
new file mode 100644
index 00000000000..bad991ede01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutlr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutlr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutls.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutls.mf
new file mode 100644
index 00000000000..406421d1a23
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutls.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutls.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutlt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutlt.mf
new file mode 100644
index 00000000000..27e018c95f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutlt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutlt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,light,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="light";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutmm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutmm.mf
new file mode 100644
index 00000000000..b8342327267
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutmm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutmm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withoutlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutmn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutmn.mf
new file mode 100644
index 00000000000..6b402dbfe7e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutmn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutmn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withoutlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutmq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutmq.mf
new file mode 100644
index 00000000000..8ff6a03698a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutmq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutmq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withoutlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutmr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutmr.mf
new file mode 100644
index 00000000000..4de1af107da
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutmr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutmr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withoutlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutms.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutms.mf
new file mode 100644
index 00000000000..37ccf44ccae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutms.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutms.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withoutlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutmt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutmt.mf
new file mode 100644
index 00000000000..8ae9e8664eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutmt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutmt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withoutlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=false;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutnm.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutnm.mf
new file mode 100644
index 00000000000..e16b25000fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutnm.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutnm.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withlines,curved,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutnn.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutnn.mf
new file mode 100644
index 00000000000..b9c98134372
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutnn.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutnn.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withlines,curved,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="curved";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutnq.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutnq.mf
new file mode 100644
index 00000000000..04b2393f666
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutnq.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutnq.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withlines,rounded,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutnr.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutnr.mf
new file mode 100644
index 00000000000..02274a1dcf3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutnr.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutnr.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withlines,rounded,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="rounded";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutns.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutns.mf
new file mode 100644
index 00000000000..f6e514000c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutns.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutns.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withlines,straight,hightwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=false;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/allrunes/frutnt.mf b/Master/texmf-dist/fonts/source/public/allrunes/frutnt.mf
new file mode 100644
index 00000000000..f4d5b7f752e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/allrunes/frutnt.mf
@@ -0,0 +1,30 @@
+%%
+%% This is file `frutnt.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% allrunes.dtx (with options: `font,frutin,medium,withlines,straight,lowtwigs')
+%%
+%%
+%% Copyright 2001-2004 Carl-Gustav Werner
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+string boldness;
+boolean withlines;
+string barshape;
+boolean loweredbars;
+
+boldness="medium";
+withlines=true;
+barshape="straight";
+loweredbars=true;
+
+input frubase;
+input frusep;
+input frut;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ams/amsya.mf b/Master/texmf-dist/fonts/source/public/ams/amsya.mf
new file mode 100644
index 00000000000..5befd3df11b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/amsya.mf
@@ -0,0 +1,62 @@
+%% @metafontfile{
+%% filename="amsya.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "31197 62 322 2578"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the driver file for use with
+%% MSAM, the first extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_coding_scheme:="TeX math symbols";
+mode_setup; font_setup;
+
+% autorounding:=hair;
+% input calu; % upper case calligraphic alphabet
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input asymbols; % the symbols
+
+%if not monospace:
+% skewchar=oct"060"; skew#=.5u#;
+% ligtable "I": "T": "V": skewchar kern skew#;
+% ligtable "K": skewchar kern 2skew#;
+% ligtable "D": "N": "P": "R": "U": "W": "Y": skewchar kern 3skew#;
+% ligtable "E": "F": "G": "H": "O": "Q": skewchar kern 4skew#;
+% ligtable "B": "C": "L": "M": "S": "X": "Z": skewchar kern 5skew#;
+% ligtable "J": skewchar kern 6skew#;
+% ligtable "A": skewchar kern 7skew#;
+%fi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ams/amsyb.mf b/Master/texmf-dist/fonts/source/public/ams/amsyb.mf
new file mode 100644
index 00000000000..1bc17d61bbf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/amsyb.mf
@@ -0,0 +1,62 @@
+%% @metafontfile{
+%% filename="amsyb.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "54349 62 328 2621"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the driver file for use with
+%% MSBM, the second extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_coding_scheme:="TeX math symbols";
+mode_setup; font_setup;
+
+% autorounding:=hair;
+% input calu; % upper case calligraphic alphabet
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input bsymbols; % the symbols
+input xbbold; % Neenie's blackboard bold
+%if not monospace:
+% skewchar=oct"060"; skew#=.5u#;
+% ligtable "I": "T": "V": skewchar kern skew#;
+% ligtable "K": skewchar kern 2skew#;
+% ligtable "D": "N": "P": "R": "U": "W": "Y": skewchar kern 3skew#;
+% ligtable "E": "F": "G": "H": "O": "Q": skewchar kern 4skew#;
+% ligtable "B": "C": "L": "M": "S": "X": "Z": skewchar kern 5skew#;
+% ligtable "J": skewchar kern 6skew#;
+% ligtable "A": skewchar kern 7skew#;
+%fi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ams/asymbols.mf b/Master/texmf-dist/fonts/source/public/ams/asymbols.mf
new file mode 100644
index 00000000000..3bc853f8c27
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/asymbols.mf
@@ -0,0 +1,1959 @@
+%% @metafontfile{
+%% filename="asymbols.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "06841 1959 6115 75392"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the driver file for use with
+%% MSAM, the first extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Italic corrections have not been computed for most of these characters,
+% since they are generally not slanted.
+
+% Changed some assignments for
+%
+% cmchar "Circle-R brand"
+% cmchar "Circle-S brand"
+%
+% to avoid rounding problems and the differences in TFM files for
+% different magnifications
+%
+% Changed by Stefan Lindner 15.03.1991
+%
+% original: radius=.5(6u++cap_height)+3u; radius=radius#*hppp;
+% changed: radius#=.5(6u#++cap_height#)+3u#; radius:=radius#*hppp;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+def makesquare (suffix i,j,k,l) =
+%% z.j, z.k are the lower left and right corners
+%% assumed on baseline; ie, y.k=y.j=0
+%% z.i, z.l are upper left and right corners
+%% that is, start labeling with upper left corner, and
+%% proceed to the successive corners counter-clockwise.
+y.i-y.j=x.k-x.j; y.i:=good.y y.i+o; y.l=y.i
+%% user must draw the square him/herself.
+enddef;
+
+
+cmchar "Square with dot";
+beginchar(oct"000",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x4=x5=w-x1;
+bot y2=0; y4=y2;
+makesquare (1,2,4,5);
+y3=good.y .5[y1,y2]; x3=good.x .5[x1,x5];
+draw z1---z2---z4---z5---cycle; % square
+fill fullcircle scaled dot_size shifted z3; % dot
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Square plus";
+beginchar(oct"001",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x4=x5=w-x1;
+bot y2=0; y4=y2; makesquare(1,2,4,5);
+draw z1---z2---z4---z5---cycle; % square
+x6=x1; x7=x4; y6=.5[y1,y2]; y7=y6; % cross strut
+y8=y1; y9=y2; x8=.5[x1, x5]; x9=x8; % vertical strut
+draw z6---z7; draw z8---z9; % plus
+penlabels(1,2,4,5,6,7,8,9); endchar;
+
+cmchar "Square times";
+beginchar(oct"002",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x4=x5=w-x1;
+bot y2=0; y4=y2; makesquare(1,2,4,5);
+draw z1---z2---z4---z5---cycle; % square
+draw z1---z4; draw z2---z5; % diagonals
+penlabels(1,2,4,5); endchar;
+
+cmchar "Square";
+beginchar(oct"003",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1;
+x4=x5=w-x1;
+bot y2=0; y4=y2; makesquare(1,2,4,5);
+draw z1---z2---z4---z5---cycle; % square
+penlabels(1,2,4,5); endchar;
+
+cmchar "Filled square";
+beginchar(oct"004",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x4=x5=w-x1;
+bot y2=0; y4=y2; makesquare(1,2,4,5);
+filldraw z1---z2---z4---z5---cycle; % square
+penlabels(1,2,4,5); endchar;
+
+cmchar "Small filled square";
+beginchar(oct"005",5u#,.8asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x3=x4=w-x1;
+bot y2=0; y3=y2; makesquare(1,2,3,4);
+filldraw z1---z2---z3---z4---cycle; % draw and fill square
+penlabels(1,2,3,4); endchar;
+
+
+cmchar "Diamond";
+beginchar(oct"006",12u#,asc_height#,2u#);
+adjust_fit(0,0); pickup rule.nib;
+%% z1, z2 are left & right vertices
+%% z3, z4 are top and bottom points
+lft x1=hround u; x2=w-x1; y1=y2;
+x3=x4=.5[x1, x2]; bot y4=-d-o; top y3= good.y h+o;
+y1=.5[y4,y3];
+draw z1---z3---z2---z4---cycle; % draw diamond
+penlabels(1,2,3,4); endchar;
+
+cmchar "Filled Diamond";
+beginchar(oct"007",12u#,asc_height#,2u#);
+adjust_fit(0,0); pickup rule.nib;
+%% z1, z2 are left & right vertices
+%% z3, z4 are top and bottom points
+lft x1=hround u; x2=w-x1; y1=y2;
+x3=x4=.5[x1, x2]; bot y4=-d-o; top y3= good.y h+o;
+y1=.5[y4,y3];
+filldraw z1---z3---z2---z4---cycle; % draw diamond
+penlabels(1,2,3,4); endchar;
+
+% do char "011 before char "010.
+cmchar "Counter-clockwise-circle indicator";
+beginarithchar(oct"011"); pickup light_rule.nib;
+autorounded; lft x6=hround u; x2=w-x6;
+y2=math_axis; top y8=h;
+circle_points; % define points on circumference
+%% see page 487 of vol E
+path p; numeric t;
+p=z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle;
+t=xpart(p intersectiontimes ((4.5u,0)--(4.5u,y8)));
+draw subpath (0,t) of p; % circle with gap
+z0=.5[z5,z1]; % the origin of the circle
+%% Now prepare for left arrowhead--see pg E465
+pickup crisp.nib;
+pos12(rule_thickness,90); pos13(bar,0); pos14(bar,0);
+y10=y12=y8; lft x10=hround x8;
+y13-y10=y10-y14=.19asc_height+eps; x13=x14=x10+3u+eps;
+pos15(bar,angle(z14-z10)); z15l=z10;
+pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.38[.5[z13,z14],z10];
+numeric t; path p; % re-use t, p
+p=z14r{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y12l)--(w,y12l)));
+x12=xpart point t of p;
+path p;
+p=z10..{z14-z19}z14l--subpath(0,t) of
+(z14r{z19-z14}..z16r)--z12l--z12r
+--subpath(t,0) of (z13r{z19-z13}..z15r)
+--z13l{z19-z13}..z10&cycle; % arrowhead
+p:=p shifted -z8; % move back to origin
+p:=p rotated -16; % rotate down a bit
+p:=p shifted z8; % move back to tip of circle
+filldraw p;
+penlabels(0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,19);
+picture v; v:=currentpicture; endchar;
+
+cmchar "Clockwise-circle indicator";
+beginarithchar(oct"010");
+currentpicture:=v reflectedabout ((w/2,0),(w/2,h));
+penlabels(0,1,2,3,5,6,7,8,9,10); endchar;
+
+cmchar "Left-Right Harpoons";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"013",18u#,v_center(spread#+.48asc_height#));
+path topleft; % for top left half arrow (harpoon)
+adjust_fit(0,0);
+pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+x2=xpart point t of p;
+topleft=z0--(x0,y2l)---z1l..z1r---z2r
+ ..subpath (t,0) of\\(z3r..{2(x0-x3),y0-y3}z5r)
+ --z3l..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+topleft:=
+topleft shifted (0,.5spread); % shift above math_axis
+path botright; % for bottom right half arrow
+botright:=topleft reflectedabout ((w/2,0),(w/2,h));
+botright:=botright reflectedabout
+((0,math_axis+eps),(w,math_axis+eps));
+filldraw topleft; filldraw botright;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Right-Left Harpoons";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"012",18u#,v_center(spread#+.48asc_height#));
+path topright, botleft;
+adjust_fit(0,0);
+pickup crisp.nib;
+topright:=topleft reflectedabout((w/2,0),(w/2,h));
+botleft:=botright reflectedabout((w/2,0),(w/2,h));
+filldraw topright; filldraw botleft; endchar;
+
+cmchar "Square minus";
+beginchar(oct"014",14u#,12u#,0); adjust_fit(0,0);
+pickup rule.nib; lft x1=hround 1.0u; x2=x1; x4=x5=w-x1; bot
+y2=0; y4=y2; makesquare(1,2,4,5);
+draw z1---z2---z4---z5---cycle; % square
+x6=x1; x7=x4; y6=.5[y1,y2]; y7=y6; % cross strut
+draw z6---z7; % minus
+penlabels(1,2,4,5,6,7); endchar;
+
+cmchar "Forces";
+beginchar(oct"015",13u#,asc_height#,0);
+adjust_fit(0,0);; pickup rule.nib;
+top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2;
+lft x5=hround u; x4=w-x5;
+compute_spread(.45x_height#,.55x_height#);
+x1=x5+spread; x1=x2=x3; x6=x5;
+draw z6--z5; draw z2--z1; draw z3--z4;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Forces with extra bar";
+beginchar(oct"016",16u#, asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.42x_height#,.52x_height#);
+top y1=h; bot y2=0; y3=y4=good.y .5h;
+y5=y7=y1; y6=y8=y2; lft x7=hround u; x4=w-x7;
+x5=good.x x7+spread; x1=good.x x5+spread;
+x1=x2=x3; x6=x5; x7=x8;
+draw z7--z8; draw z5--z6; draw z1--z2; % verticals
+draw z3--z4; % horizontal piece
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Satisfies";
+beginchar(oct"017",11u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+top y1=h; bot y2=0; y0=good.y .5[y1,y2];
+y3=vround y0+.5spread;
+y5=vround y0- .5spread; y4=y3; y6=y5;
+lft x1=hround u; x4=w-x1;
+x1=x2=x3=x5; x4=x6; x0=x1;
+draw z1--z2; % vertical line
+draw z3--z4; % draw top horizontal piece
+draw z5--z6; % draw bottom horizontal piece
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward double arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"020",18u#,v_center(spread#+.48asc_height#)); adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis; x1-.5rule_thickness=hround u;
+rt x0=hround(w-u); y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0]; numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; path p;
+p=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l--z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p shifted (x3l-x0,0);
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward double arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"021",18u#,v_center(spread#+.48asc_height#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p;
+p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+x2=xpart point t of p;
+path p; p=z0..{z4-z9}z4l--subpath (0,t)
+of\\(z4r{z9-z4}..z6r)
+ --z2l--z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % second arrowhead
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p shifted (x3r-x0,0);
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward double arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"022",18u#,v_center(spread#+.96asc_height#));
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft
+x0=hround u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t; path p;
+p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p; % re-use p
+p=z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (0,y2-y4+eps); filldraw p; % top arrow
+p:= p shifted (0,y4-y3-eps); filldraw p; % bottom arrow
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Rightward double arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"023",18u#,v_center(spread#+.96asc_height#));
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt
+x0=hround(w-u); y3-y0=y0-y4=.24asc_height+eps;
+x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p; p=z0..{z4-z9}z4r--subpath (0,t)
+of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (0,y2-y4+eps); filldraw p; % top
+p:=p shifted (0,y4-y3-eps); filldraw p; %bottom
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Double upward arrow";
+beginchar(oct"024",15u#,asc_height#,asc_depth#); italcorr
+.76asc_height#*slant+.5crisp#-u#; adjust_fit(0,0); pickup
+crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90); lft
+x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=3u+eps;
+y3=y4=y0-.24asc_height-eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of
+p;
+path p; p=z0..{z4-z9}z4r--subpath (0,t)
+of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (x0-x4-eps,0); filldraw p; % left arrow
+p:=p shifted (x4-x3+eps,0); filldraw p;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Double downward arrow";
+beginchar(oct"025",15u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,0);
+pos2(rule_thickness,0); pos3(bar,90); pos4(bar,90); lft
+x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of
+p;
+path p; p=z0..{z4-z9}z4l--subpath (0,t)
+of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (x0-x4-eps,0); filldraw p; % left arrow
+p:=p shifted (x4-x3+eps,0); filldraw p;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+%%
+cmchar "Upward rightward harpoon";
+beginchar(oct"026",7.5u#,asc_height#, asc_depth#);
+%% see page E431
+adjust_fit(0,0); pickup crisp.nib;
+x0=x1=x2; lft x1l=hround(.5w-.5rule_thickness);
+y1-.5rule_thickness=-d; pos1(rule_thickness,0);
+pos2(rule_thickness,0); pos3(bar,-90); pos4(bar,-90);
+top y0=vround h;
+x3-x0=x0-x4=.24asc_height+eps; y3=y4=y0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p;
+p=z4r..{y0-y4,2(x0-x4)}z6r;
+t=xpart (p intersectiontimes ((x2l,0)--(x2l,h)));
+y2=ypart point t of p;
+filldraw z0--(x2l,y0)---z1l..z1r---z2r
+ ..subpath(t,0) of (z3r..{x0-x3,2(y0-y3)}z5r)
+ --z3l..{x0-x3,2(y0-y3)}cycle;
+picture v; v:=currentpicture;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Downward rightward harpoon";
+beginchar(oct"027",7.5u#,asc_height#,asc_depth#);
+adjust_fit(0,0);
+currentpicture:=v
+reflectedabout((0,.5(h-d)*aspect_ratio+eps),(w,.5(h-d)*aspect_ratio+eps));
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Upward leftward harpoon";
+beginchar(oct"030",7.5u#,asc_height#, asc_depth#);
+adjust_fit(0,0);
+currentpicture:=
+v reflectedabout((w/2+eps,-d),(w/2+eps,h));
+picture v; v:=currentpicture;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Downward leftward harpoon";
+beginchar(oct"031",7.5u#,asc_height#,asc_depth#);
+adjust_fit(0,0);
+currentpicture:=v
+reflectedabout((0,.5(h-d)*aspect_ratio+eps),(w,.5(h-d)*aspect_ratio+eps));
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward arrow with tail";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"032",20u#,v_center(spread#+.48asc_height#));
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround 1.5u; rt
+x0=hround(w-3u); y3-y0=y0-y4=.24asc_height+eps;
+x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p;
+p=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+path arrow;
+arrow=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle;
+p:=p shifted (2u,0); filldraw p;
+arrow:=arrow shifted (-13u+bar,0); filldraw arrow;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward arrow with tail";
+beginchar(oct"033",20u#,v_center(spread#+.48asc_height#));
+adjust_fit(0,0); pickup crisp.nib;
+p:= p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+arrow:= arrow reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+filldraw p; filldraw arrow;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward-rightward parallel arrows";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"034",18u#,v_center(spread#+.96asc_height#));
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft
+x0=hround u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t; path p;
+p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p, q; % re-use p
+p=z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (0,.5[y3,y4]+eps); filldraw p; % top arrow
+p:= p shifted (0,y4-y3);
+q:= p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+p:=p shifted (0,y3-y4+eps); % restore p's position
+filldraw q; % bottom arrow
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Rightward-leftward parallel arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"035",18u#,v_center(spread#+.96asc_height#));
+adjust_fit(0,0); pickup crisp.nib;
+p:=p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+q:=q reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+filldraw p; filldraw q;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward shift";
+beginchar(oct"036",9u#,asc_height#, 0);
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=.8h; x1+.5rule_thickness=hround(w-u); lft x0=hround
+u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0];
+z10=z1; x11=x10; y11-.5rule_thickness =vround -d;
+pos10(rule_thickness,0); pos11(rule_thickness,0);
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+x2=xpart point t of p;
+path p;
+p=z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+--z2l---(x10l,y1l)--z11l..z11r---{up}z10r..{left}z1r---z2r--subpath
+(t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and bent stem
+filldraw p;
+penlabels(0,1,2,3,4,5,6,9,10); endchar;
+
+cmchar "Rightward shift";
+beginchar(oct"037",9u#,asc_height#, 0);
+adjust_fit(0,0); pickup crisp.nib;
+p:=p reflectedabout((w/2+eps,-d),(w/2+eps,h));
+filldraw p;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+compute_spread(.45x_height#,.55x_height#);
+cmchar "Rightward squiggly arrow";
+beginchar(oct"040",18u#,v_center(spread# +
+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1-.5rule_thickness=hround 11u; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p;
+p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p;
+p=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p;
+%% now for squiggle
+x12-x11=x13-x12=x14-x13=x15-x14=x16-x15=x1-x16;
+x1-x11=hround (w-2u-x0+x1-.5rule_thickness);
+y11=y13=y15=y0; y12=y16=.5[y0,y3];
+y14=.5[y4,y0];
+pickup pencircle scaled rule_thickness;
+draw z11---z12---z14---z16---z1;
+penlabels(0,1,2,3,4,5,6,9,11,12,13,14,15,16); endchar;
+
+compute_spread(.45x_height#,.55x_height#);
+cmchar "Leftward rightward squiggly arrow";
+beginchar(oct"041",25u#,v_center(spread# +
+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+arrow_length=4.5u+eps;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1+.5rule_thickness=hround(u+arrow_length);
+lft x0=hround u; y3-y0=y0-y4=.24asc_height+eps;
+x3=x4=x0+3u+eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p; p=z0..{z4-z9}z4l--subpath (0,t)
+of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p; % left arrow
+p:=p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+filldraw p; % right arrow
+z10=z1 reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+y11=y15=y19=.5[y0,y3]; y13=y17=.5[y4,y0];
+y12=y14=y16=y18=y10;
+x11-x1=x12-x11=x13-x12=x14-x13=x15-x14=x16-x15=x17-x16=x18-x17=
+x19-x18=x10-x19;
+pickup pencircle scaled rule_thickness;
+draw z1---z11---z13---z15---z17---z19---z10;
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+cmchar "Leftward curly arrow";
+beginchar(oct"042",18u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric arrow_length; arrow_length=.66*(w-2u+eps);
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1+.5rule_thickness=hround(u+arrow_length);
+lft x0=hround u; y3-y0=y0-y4=.24asc_height+eps;
+x3=x4=x0+3u+eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p; p=z0..{z4-z9}z4l--subpath (0,t)
+of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p; % left arrow
+z10=z1; x13=x14=hround(u+arrow_length+eps); y13=y1; y14=-o;
+x12=.5[x11,x13]; y12=h; rt x11=hround(w-u); y11=.5[y10,y12];
+pickup pencircle scaled rule_thickness;
+path q;
+q=z10{right}..tension0.8..{up}z11..tension0.8..{left}z12
+..tension0.8..{down}z13--z14;
+draw q;
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14); endchar;
+
+cmchar "Rightward curly arrow";
+beginchar(oct"043",18u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+p:=p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+filldraw p;
+pickup pencircle scaled rule_thickness;
+q:=q reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+draw q; endchar;
+
+numeric circ_diam; % diameter of little circle
+circ_diam=2.5u;
+cmchar "Equals circle sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"044",14u#,v_center(4spread#+rule_thickness#+2.5u#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis; draw z1--z2; % upper bar
+draw z3--z4; % lower bar %
+penpos11(rule_thickness,90); penpos13(rule_thickness,-90);
+penpos12(rule_thickness,180); penpos14(rule_thickness,0);
+x12r=hround(.5w-.5circ_diam-rule_thickness); %
+x14r=w-x12r; x11=x13=.5w; y11l=y13l+circ_diam;
+y12=y14=.5[y11,y13]; y13r=vround(y1+.8spread); %
+penstroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
+ & pulled_arc.e(13,14) & pulled_arc.e(14,11) & cycle; %
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+
+
+cmchar "Follows or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % spread of similarity sign
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % spread between symbols
+compute_spread(5/4 x_height#,3/2 x_height#); % spread of follows sign
+beginchar(oct"045",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{u,-spread}...{right}z2; %upper `diagonal'
+draw z3{u,spread}...{right}z2; % lower diagonal
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+penlabels(1,2,3,11,12,13,14); endchar;
+
+cmchar "Greater than or similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"046",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Greater than or approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread; % spread between similarities
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"047",14u#,v_center(spread#+2spread#''+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread';
+bot y3- top y13 = spread'';
+path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
+draw p; draw p shifted (0,-spread'');
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Multimap symbol";
+beginchar(oct"050",20u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+numeric circ_diam; circ_diam=5u;
+y2=math_axis; y8=y2+.5circ_diam; rt x2=w-u;
+x6=x2-circ_diam;
+circle_points; draw_circle;
+x9=u+.5rule_thickness; y9=y10=y2; x10=x6-.5rule_thickness;
+draw z9---z10;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Therefore";
+beginchar(oct"051",12u#,asc_height#,0);
+adjust_fit(0,0);
+lft x1=hround 1.5u; x2=w-x1; bot y1=-o; y2=y1;
+z3-z1=(z2-z1)rotated60;
+fill fullcircle scaled dot_size shifted z1;
+% left bottom dot
+fill fullcircle scaled dot_size shifted z2;
+% rigth bottom
+fill fullcircle scaled dot_size shifted z3; % top dot
+penlabels(1,2,3); endchar;
+
+
+cmchar "Because";
+beginchar(oct"052",12u#,asc_height#,0);
+adjust_fit(0,0);
+lft x1=hround 1.5u; x2=w-x1; y2=y1;
+x3=w/2; y3=-o;
+z3-z1=(z2-z1)rotated-60;
+fill fullcircle scaled dot_size shifted z1; % top left dot
+fill fullcircle scaled dot_size shifted z2;
+% top right dot
+fill fullcircle scaled dot_size shifted z3; % bottom dot
+penlabels(1,2,3); endchar;
+
+cmchar "Equals-and-dots sign";
+beginarithchar(oct"053");
+compute_spread(.45x_height#,.55x_height#);
+pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; draw z3--z4; % draw bars
+pickup light_rule.nib;
+x5=x6=x7=x8=hround w/2+eps; z5=z6; z7=z8;
+penpos5(.8dot_size,0); penpos6(.8dot_size,90);
+penpos7(.8dot_size,0); penpos8(.8dot_size,90);
+y5-y1=y3-y7=spread;
+dot(5,6); dot(7,8); % draw dots
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Equals sign with triangle";
+beginchar(oct"054", 14u#,12u#+math_axis# ,6u#-math_axis#);
+compute_spread(.45x_height#,.55x_height#);
+pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; draw z3--z4; % draw bars
+numeric tri_side; % length of equilateral triangle
+tri_side=7u;
+x6-x5=tri_side; .5[x5,x6]=w/2; y5=y6; y5-y1=.8spread;
+%top y7=body_height;x7=w/2;
+z7-z5=(z6-z5) rotated 60;
+draw z5--z6--z7--cycle;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+cmchar "Precedes or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.55x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"055",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{-u,-spread}...{left}z2; %upper `diagonal'
+draw z3{-u,spread}...{left}z2; % lower diagonal
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+penlabels(1,2,3,11,12,13,14); endchar;
+
+cmchar "Less than or similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.55x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"056",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Less than or approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread; % spread between similarities
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"057",14u#,v_center(spread#+2spread#''+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread';
+bot y3- top y13 = spread'';
+path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
+draw p; draw p shifted (0,-spread'');
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Equal or less than sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"060",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; y8-y1=y9-y2=spread'; top y8=h;
+x2=x9; x1=x8;
+draw z1--z2--z3; % diagonals
+draw z8--z9; % equal sign
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Equal or greater than sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"061",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x9; x1=x8;
+y2=.5[y1,y3]; y8-y1=y9-y2=spread'; top y8=h;
+draw z1--z2--z3; % diagonals
+draw z8--z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Less than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"066",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h;
+x2=x9; x1=x8;
+draw z1--z2--z3; % diagonals
+draw z8--z9; % equal sign
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Greater than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"076",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x9; x1=x8;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h;
+draw z1--z2--z3; % diagonals
+draw z8--z9;
+penlabels(1,2,3,8,9); endchar;
+cmchar "Less than or greater than sign";
+compute_spread(.4x_height#,.5x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"067",14u#,v_center(2spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround w-1.5u+eps; x1=x3=x5; x2=x4=x6=w-x1;
+y1-y3=spread; top y1=h; y2-y4=spread'; y4-y6=spread;
+y2=.5[y1,y3]; y5=.5[y4,y6];
+draw z1--z2--z3; draw z4--z5--z6;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Greater than or less than sign";
+compute_spread(.4x_height#,.5x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(1.111 x_height#,1.333x_height#);
+beginchar(oct"077",14u#,v_center(2spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3=x5; x2=x4=x6=w-x1;
+y1-y3=spread; top y1=h; y2-y4=spread'; y4-y6=spread;
+y2=.5[y1,y3]; y5=.5[y4,y6];
+draw z1--z2--z3; draw z4--z5--z6;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Equals or precedes sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"062",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround(1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y8-bot y1=top y9-bot y2=spread'; bot y3=0;
+x2=x9;x8=x1-2u;
+draw z1{-u,-spread}...{left}z2;
+draw z3{-u, spread}...{left}z2;
+draw z8{-u,-spread}...{left}z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Equals or follows sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"063",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y8-bot y1=top y9-bot y2=spread'; bot y3=0;% top y8=h;
+x2=x9;x8=x1+2u;
+draw z1{u,-spread}...{right}z2;
+draw z3{u, spread}...{right}z2;
+draw z8{u,-spread}...{right}z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Precedes or curvy equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"064",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround(1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y3-bot y8=top y2-bot y9=spread'; bot y3=0;
+x2=x9;x8=x1-2u;
+%for i=1 upto 3: %lower entire character
+%y[i]:=y[i]-spread'; endfor
+%for i=8 upto 9:
+%y[i]:=y[i]-spread'; endfor
+draw z1{-u,-spread}...{left}z2;
+draw z3{-u, spread}...{left}z2;
+draw z8{-u, spread}...{left}z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Follows or curvy equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"074",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y3-bot y8=top y2-bot y9=spread'; bot y3=0;
+x2=x9;x8=x1+2u;
+%for i=1 upto 3: %lower entire character
+%y[i]:=y[i]-spread'; endfor
+%for i=8 upto 9:
+%y[i]:=y[i]-spread'; endfor
+draw z1{u,-spread}...{right}z2;
+draw z3{u, spread}...{right}z2;
+draw z8{u, spread}...{right}z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Less than or (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"065",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9; % equal sign
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Greater than or (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"075",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
+y7-y9=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9;
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Reverse prime symbol (superscript only)";
+beginchar(oct"070",3u#+max(1.75u#,curve#+2(curve#-stem#)),
+ .8asc_height#,0); adjust_fit(0,0); pickup fine.nib; numeric
+light_stem,heavy_stem; light_stem=hround .5[vair,stem];
+heavy_stem=hround(bold+2dw); x1-.5heavy_stem=hround(.25u);
+y1+.5heavy_stem=h; x2+.5light_stem=hround (w-.5u);
+y2=1/12asc_height;
+numeric theta; theta=angle(z1-z2)-90;
+pos1(heavy_stem,theta); pos2(light_stem,theta);
+filldraw circ_stroke z1e--z2e; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "short axis line";
+beginchar(oct"071",9u#,27/7u#+math_axis#,27/7u#-math_axis#); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2;
+labels(1,2); endchar;
+
+cmchar "Dotted (right-left) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"072",14u#,v_center(3spread#+2rule_thickness#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis; draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+pickup tiny.nib;
+x6=x5=x2; y6=y5=y1+spread;
+pos5(dot_size,0); pos6(dot_size,90);
+x7=x8=x3; y7=y8=y4-spread;
+pos7(dot_size,0); pos8(dot_size,90);
+dot(5,6); dot(7,8);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Dotted (left-right) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"073",14u#,v_center(3spread#+2rule_thickness#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+pickup tiny.nib;
+x6=x5=x1; y6=y5=y1+spread;
+pos5(dot_size,0); pos6(dot_size,90);
+x7=x8=x4; y7=y8=y4-spread;
+pos7(dot_size,0); pos8(dot_size,90);
+dot(5,6); dot(7,8);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Square subset sign"; % taken from vol E, p533
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"100",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x1=x4=hround(w-x2)+eps; x3=x2; y1-y4=spread; y2=y1; y3=y4;
+top y1=h; draw z1--z2--z3--z4; % bars and stem x8=x1;
+penlabels(1,2,3,4); endchar;
+
+cmchar "Square superset sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"101",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x2=hround(w-1.5u); x1=x4=hround w-x2-eps; x3=x2;
+y1-y4=spread; y2=y1; y3=y4; top y1=h; draw z1--z2--z3--z4;
+% bars and stem
+penlabels(1,2,3,4); endchar;
+
+cmchar "Rightward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"102",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+draw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Leftward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"103",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+draw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Rightward isosceles triangle with lower bar";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"104",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+x4=x2; x5=x1; y3-y4=spread'; y5=y4;
+draw z1--z2--z3--cycle; draw z4--z5;
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Leftward isosceles triangle with lower bar";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"105",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+x4=x2; x5=x1; y3-y4=spread'; y5=y4;
+draw z1--z2--z3--cycle; draw z4--z5;
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Large, filled, 5-pointed star";
+beginchar(oct"106",asc_height#+desc_depth#,asc_height#,desc_depth#);
+adjust_fit(.5u#, .5u#); pickup tiny.nib;
+numeric theta; theta=360/5;
+x0=good.x .5w; y0=good.y .5[h, -d]; x1=x0; top y1=h;
+for n=2 upto 5: z[n]=z0+(z1-z0) rotated((n-1)*theta); endfor
+% z0 is the `origin'
+% z1 thru z5 are the points; z1 at the top going
+% counterclockwise
+z6=(z1--z3)intersectionpoint(z2--z5);
+for n=7 upto10: z[n]=z0+(z6-z0)rotated((n-1)*theta); endfor
+filldraw z1--z6--z2--z7--z3--z8--z4--z9--z5--z10--cycle;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Vertical overlapping slurs";
+beginchar(oct"107",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup fine.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+y2=.5[h,-d]; x2r=hround w-1.5u; pos2(light_stem,0);
+x1-.5hair=hround w-x2; x3=x1; y1+.5hair=h; y3-.5hair=-d;
+numeric theta; theta= angle((z2-z1)xscaled3);
+numeric theta'; theta'=angle((z3-z2)xscaled3);
+pos1(hair, theta+90); pos3(hair, theta'+90);
+path p;
+p=z1l{dir theta}...z2l...{dir theta'}z3l
+ ..z3r{-dir theta'}...z2r...{-dir theta}z1r..cycle;
+filldraw p;
+p:=p reflectedabout((.5w,-d),(.5w,h)); filldraw p;
+penlabels(1,2,3); endchar;
+
+cmchar "Filled rightward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"111",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+filldraw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Filled leftward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"112",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+filldraw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+ cmchar "short axis right arrow";
+beginchar(oct"113",9u#,27/7u#+math_axis#,27/7u#-math_axis#);
+pickup rule.nib;
+penpos1(.25rule_thickness,90); penpos2(.25rule_thickness,90); penpos3(bar,0);
+penpos4(bar,0);
+y0=y1=y2=math_axis;
+x1=hround 1.5u-eps;
+rt x0=w-x1;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+penpos5(bar,angle(z4-z0)); z5l=z0; penpos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "short axis left arrow";
+beginchar(oct"114",9u#,27/7u#+math_axis#,27/7u#-math_axis#);
+pickup rule.nib;
+penpos1(.25rule_thickness,90); penpos2(.25rule_thickness,90); penpos3(bar,0);
+penpos4(bar,0);
+y0=y1=y2=math_axis; x0=hround 1.5u-eps;
+rt x1=w-x0;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+penpos5(bar,angle(z4-z0)); z5l=z0; penpos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+
+cmchar "Filled downward triangle";
+beginchar(oct"110",.8asc_height#+3u#,.8asc_height#,0pt#);
+adjust_fit(0,0); pickup rule.nib;
+y2=0; lft x1=1.5u;
+x3=hround w-x1;
+y1=y3=vround h-y2; x2=.5[x1,x3];
+filldraw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Downward triangle";
+beginchar(oct"117",.8asc_height#+3u#,.8asc_height#,0pt#);
+adjust_fit(0,0); pickup rule.nib;
+y2=0; lft x1=1.5u;
+x3=hround w-x1;
+y1=y3=vround h-y2; x2=.5[x1,x3];
+draw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Upward triangle";
+beginchar(oct"115",.8asc_height#+3u#,.8asc_height#,0pt#);
+adjust_fit(0,0); pickup rule.nib;
+y2=h; lft x1=1.5u;
+x3=hround w-x1;
+y1=y3=vround h-y2; x2=.5[x1,x3];
+draw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Filled upward triangle";
+beginchar(oct"116",.8asc_height#+3u#,.8asc_height#,0pt#);
+adjust_fit(0,0); pickup rule.nib;
+y2=h; lft x1=1.5u;
+x3=hround w-x1;
+y1=y3=vround h-y2; x2=.5[x1,x3];
+filldraw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Egg sandwich";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"120",14u#,asc_height#,0);
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4;
+y1-y3=spread;
+.5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+pickup tiny.nib;
+x5=x6=hround w/2; bot y5=bot y1; top y6=top y3;
+y7=y8=math_axis;x8-x7=y5-y6;
+x6=.5[x7,x8];
+draw z5{right}..z8..z6{left}..z7..cycle;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Stacked symbols: <, bar, >";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.98 x_height#,1.176 x_height#);
+beginchar(oct"121",14u#,v_center(2spread#'+2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+y1=y2; lft x1=hround 1.5u-eps; rt x2=w-x1;
+x4=x6=x8=x1; x3=x5=x7=x2;
+y5-y1=y1-y6=spread';top y3=h; y3-y5=spread;
+y6-y8=spread;
+y7=.5[y6,y8]; y4=.5[y3,y5];
+draw z3--z4--z5; draw z6--z7--z8; draw z1--z2;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Stacked symbls: greater than, bar, less than";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.98 x_height#,1.176 x_height#);
+beginchar(oct"122",14u#,v_center(2spread#'+2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+y1=y2; lft x2=hround 1.5u-eps; rt x1=w-x2;
+x4=x6=x8=x1; x3=x5=x7=x2;
+y5-y1=y1-y6=spread';top y3=h; y3-y5=spread;
+y6-y8=spread;
+y7=.5[y6,y8]; y4=.5[y3,y5];
+draw z3--z4--z5; draw z6--z7--z8; draw z1--z2;
+numeric bar_ht; bar_ht=y1; %save height of bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Stacked symbls: less than, =, greater than";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.98 x_height#,1.176 x_height#);
+beginchar(oct"123",14u#,v_center(3spread#'+2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1;
+x1'=x1; x2=x2'; x4=x6=x8=x1;
+x3=x5=x7=x2;
+y1=y2; y1'=y2'; y2-y2'=spread'; bot y2=math_axis+.5spread';
+draw z1--z2; draw z1'--z2';
+y3-y5=y6-y8=spread;
+y5-y2=y2'-y6=spread';
+y7=.5[y6,y8]; y4=.5[y3,y5];
+draw z3--z4--z5; draw z6--z7--z8;
+penlabels(1,1',2,2',3,4,5,6,7,8); endchar;
+
+cmchar "Stacked symbols: greater than, =, less than";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.98 x_height#,1.176 x_height#);
+beginchar(oct"124",14u#,v_center(3spread#'+2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=w-x2;
+x1'=x1; x2=x2'; x4=x6=x8=x1;
+x3=x5=x7=x2;
+y1=y2; y1'=y2'; y2-y2'=spread'; bot y2=math_axis+.5spread';
+draw z1--z2; draw z1'--z2';
+y3-y5=y6-y8=spread;
+y5-y2=y2'-y6=spread';
+y7=.5[y6,y8]; y4=.5[y3,y5];
+draw z3--z4--z5; draw z6--z7--z8;
+penlabels(1,1',2,2',3,4,5,6,7,8); endchar;
+
+cmchar "Yen symbol";
+compute_spread(.45x_height#, .55x_height#);
+beginchar(oct"125",13u#,cap_height#,0); %% adapted from "Y"
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric
+left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr; right_stem=min(cap_hair if
+hefty:-2stem_corr fi,left_stem); outer_jut=.75cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=.4h; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l]; if
+y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill
+z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+--diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals & stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut:
+inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut);
+%upper lft serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark);
+% upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi
+% lower serif
+pickup pencircle scaled .5[fine, rule_thickness];
+x7=x9=x1l; x8=x10=x4r;
+y9=y10;
+top y7=bar_height; y7=y8; draw z7--z8;
+y9-y7=spread;
+draw z9--z10;
+penlabels(0,1,2,3,4,5,6,1',2',3',4',5',6',7,8,9,10); endchar;
+
+cmchar "Triple rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"126",18u#,v_center(2spread#+.5asc_height#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; penpos1(rule_thickness,90);
+penpos2(rule_thickness,90); penpos3(1.5bar,0); penpos4(1.5bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=u;
+rt x0=hround (w-u); x0'=x0''=x0; x1'=x1''=x1;
+y1'=y1+spread;y1''=y1-spread; y0'=y1'; y0''=y1'';
+draw z0'--z1'; draw z0''--z1''; % draw bars
+pickup crisp.nib;
+y3-y0'=y0''-y4=.24asc_height+eps; x3=x4=x0-6u-eps;
+penpos5(bar,angle(z0-z4)); z5r=z0; penpos6(bar,angle(z0-z3));
+z6r=z0; z9=.381966[.5[z3,z4],z0]; erase filldraw
+z0..{z3-z9}z3--(w,y3)--(w,y4)--z4{z9-z4}..z0& cycle;
+numeric t; path p;
+p=z4l{z9-z4}..z6l; t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6l)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5l)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,0',0'',1',1''); endchar;
+
+
+cmchar "Triple leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"127",18u#,v_center(2spread#+.5asc_height#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; penpos1(rule_thickness,90);
+penpos2(rule_thickness,90); penpos3(1.5bar,0); penpos4(1.5bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft
+x0=hround u; x0'=x0''=x0; x1'=x1''=x1;
+y1'=y1+spread;y1''=y1-spread; y0'=y1'; y0''=y1''; draw
+z0'--z1'; draw z0''--z1''; % draw bars
+pickup crisp.nib;
+y3-y0'=y0''-y4=.24asc_height+eps; x3=x4=x0+6u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0]; erase filldraw
+z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0& cycle; numeric t; path p;
+p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,0',0'',1',1''); endchar;
+
+cmchar "Check mark"; beginchar(oct"130",15u#,asc_height#,
+0); adjust_fit(0,0); pickup cal.nib;
+lft x1=hround(1.5u);y1=math_axis; y2=0; x2=hround(w/3);
+x3=w-x1; y3=asc_height-o;
+x4=w-1.5x2; y4=asc_height;
+draw z1--z2{z4-z2}..z3;
+penlabels(1,2,3,4);
+endchar;
+
+cmchar "Vee on bar";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"131",11u#,asc_height#, desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=lft x4=hround u; x3=x5=w-x1; x2=hround(w/2);
+bot y4=bot y5=0; y2=y4+spread; top y1=top y3=h+o;
+draw z1--z2--z3; draw z4--z5;
+penlabels(1,2,3,4,5);
+endchar;
+
+cmchar "Bar on mountain";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"132",11u#,asc_height#, desc_depth#); adjust_fit(0,0);
+pickup rule.nib;
+lft x1=lft x4=hround u; x3=x5=w-x1; x2=hround(w/2);
+top y4=top y5=h+o; y2=y4-spread; bot y1=bot y3=0;
+draw z1--z2--z3; draw z4--z5;
+numeric t; % t is used in char"133, = on mountain
+t=y2-y3;
+penlabels(1,2,3,4,5);
+endchar;
+
+cmchar "Equal sign on mountain";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"133",11u#,body_height#, desc_depth#); adjust_fit(0,0);
+pickup rule.nib;
+lft x1=lft x4=lft x6=hround u; x3=x5=x7=w-x1; x2=hround(w/2);
+y4=y5; y6=y7; y6-y4=y4-y2=spread; top y4=asc_height+o-.5spread;
+y2-y1=t; % t is defined in char "132
+y1=y3;
+draw z1--z2--z3; draw z4--z5; draw z6--z7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+cmchar "Angle sign (simple)";
+beginchar(oct"134",13u#,asc_height#, 0);
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround u; x1=x3=w-x2;
+bot y2=bot y3=0; top y1=h;
+draw z1--z2--z3;
+penlabels(1,2,3);
+endchar;
+
+cmchar "Angle sign (with small arc)";
+beginchar(oct"135",13u#,asc_height#, 0);
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround u; x1=x3=w-x2;
+bot y2=bot y3=0; y1=h;
+draw z1--z2--z3;
+path p; p=quartercircle scaled 15u;
+numeric t; t= xpart(p intersectiontimes (z1--z2));
+draw subpath (0,t) of p;
+penlabels(1,2,3);
+endchar;
+
+cmchar "Eye-like angle sign (with small arc)";
+beginchar(oct"136",13u#,v_center(.75body_height#));
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround u; x1=x3=w-x2;
+y2=math_axis; y2=.5[y1,y3]; y1-y3=.75body_height;
+draw z1--z2--z3;
+path p; p=quartercircle scaled 17u;
+numeric t; t= xpart(p intersectiontimes ((z1--z2)shifted
+-z2));
+draw subpath (0,t) of p shifted z2;
+draw subpath (0,t) of p shifted z2
+reflectedabout(z2,(w,y2));
+penlabels(1,2,3);
+endchar;
+
+cmchar "Proportional sign made of circles";
+beginchar(oct"137",14u#,asc_height#,0);
+adjust_fit(0,0); pickup pencircle scaled rule_thickness;
+numeric radius; radius:=w-2u; radius:=radius/3;
+radius:=radius-.5rule_thickness;
+x2=hround w-u; x1=w-x2+radius;
+y1=y2=math_axis;
+pair m; m=(rule_thickness,0);
+draw fullcircle scaled 2radius shifted (z1+.5m);
+draw (halfcircle scaled 2radius rotated 90) shifted
+(z2-.5m);
+penlabels(1,2);
+endchar;
+
+cmchar "Simple slur below (smile)";
+beginchar(oct"140",14u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; y1=vround(math_axis+.25x_height);
+x3=w-x1; y3=y1; penpos2(rule_thickness,90); x2=.5w;
+y2l=good.y -(.25x_height-math_axis);
+numeric theta; theta=angle((z2-z1)yscaled 3);
+penpos1(rule_thickness,90+theta);
+penpos3(rule_thickness,90-theta);
+draw z1{dir theta}...z2...{dir-theta}z3;
+penlabels(1,2,3); endchar;
+
+cmchar "Simple slur above (frown)";
+beginchar(oct"141",14u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; y1=vround(math_axis-.25x_height);
+x3=w-x1; y3=y1;
+penpos2(rule_thickness,90); x2=.5w; y2=good.y(.25x_height+math_axis);
+numeric theta; theta=angle((z2-z1)yscaled 3);
+penpos1(rule_thickness,90+theta);
+penpos3(rule_thickness,90-theta);
+draw z1{dir theta}...z2...{dir-theta}z3; penlabels(1,2,3);
+endchar;
+
+cmchar "Very proper subset sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+spread':=spread'-rule_thickness;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"142",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+autorounded; lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis; x4=x5=.5w; y4=y1;
+y5=y3; draw z1---z4...z2{down}...z5---z3; % arc and bars
+x1'=x3'=x1; y1-y1'=y3'-y3=spread';
+x4'=x5'=x4; y4-y4'=y5'-y5=spread';
+y2'=y2; x2'-x2=spread';
+draw z1'--z4'..z2'{down}..z5'--z3';
+penlabels(1,2,3,4,5,1',2',3',4',5'); endchar;
+
+cmchar "Very proper superset sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+spread':=spread'-rule_thickness;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"143",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+autorounded; lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]=math_axis; x4=x5=.5w; y4=y1;
+y5=y3; draw z1---z4...z2{down}...z5---z3; % arc and bars
+x1'=x3'=x1; y1-y1'=y3'-y3=spread';
+x4'=x5'=x4; y4-y4'=y5'-y5=spread';
+y2'=y2; x2-x2'=spread';
+draw z1'--z4'..z2'..z5'--z3';
+penlabels(1,2,3,4,5,1',2',3',4',5'); endchar;
+
+cmchar "Parallel set union sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+spread':=spread'-rule_thickness;
+beginchar(oct"144",12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y1=good.y h+o; bot y3=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+y1'=y5'=y1; x1'-x1=x5-x5'=spread';
+y2'=y4'=y2+u; x2'-x2=x4-x4'=spread';
+x3'=x3; y3'-y3=spread';
+draw z1'..{down}z2'..z3'{right}..z4'{up}..z5';
+penlabels(1,2,3,4,5,1',2',3',4',5'); endchar;
+
+cmchar "Parallel set intersection sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+spread':=spread'-rule_thickness;
+beginchar(oct"145",12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#; adjust_fit(0,0);
+pickup rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y3=good.y h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+y1'=y5'=y1; x1'-x1=x5-x5'=spread';
+y2'=y4'=y2-u; x2'-x2=x4-x4'=spread';
+x3'=x3; y3-y3'=spread';
+draw z1'..{up}z2'..z3'{right}..z4'{down}..z5';
+penlabels(1,2,3,4,5,1',2',3',4',5'); endchar;
+
+cmchar "Subset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"152",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
+% arc and bars
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+penlabels(1,2,3,4,5,8,9,8',9'); endchar;
+
+cmchar "Superset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"153",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
+z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1;
+x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Christmas tree symbol";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"146",spread#+4u#,.8asc_height#,0);
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+autorounded;
+lft x1=1.5u; x3=w-x1; x2=.5[x1,x3];
+bot y1=-d-o; y3=y1; top y2=h+o;
+draw z1{spread,u}...{up}z2;
+draw z3{-spread,u}...{up}z2;
+penlabels(1,2,3); endchar;
+
+cmchar "Inverted Christmas tree symbol";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"147",spread#+4u#,.8asc_height#,0);
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+autorounded;
+lft x1=1.5u; x3=w-x1; x2=.5[x1,x3];
+top y1=h+o; y3=y1; bot y2=-d-o;
+draw z1{spread,-u}...{down}z2;
+draw z3{-spread,-u}...{down}z2;
+penlabels(1,2,3); endchar;
+
+cmchar "Stylized lambda symbol";
+beginchar(oct"150",14u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=u; top y1=h;
+rt x2=w-u; bot y2=-o;
+draw z1--z2;
+z3=.5[z1,z2];
+x4=x1; y4=y2; draw z3--z4;
+penlabels(1,2,3,4); endchar;
+
+cmchar "Reflected stylized lambda symbol";
+beginchar(oct"151",14u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=u; bot y1=-o;
+rt x2=w-u; top y2=h;
+draw z1--z2;
+z3=.5[z1,z2];
+x4=x2; y4=y1; draw z3--z4;
+penlabels(1,2,3,4); endchar;
+
+cmchar "Sunrise symbol";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct "154",14u#,v_center(3spread#+rule_thickness#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis;
+y5=y6=y1; x7=.5[x1,x2]; x5=.3[x1,x2];
+x2-x6=x5-x1;
+y7-y1=.5(x6-x5);
+draw z1--z5{up}...z7...{down}z6--z2; % upper bar
+draw z3--z4; % lower bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Sunrise-over-water symbol";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct "155",14u#,v_center(3spread#+rule_thickness#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis;
+y5=y6=y1; x7=.5[x1,x2]; x5=.3[x1,x2];
+x2-x6=x5-x1;
+y7-y1=.5(x6-x5);
+x5'=x5; x7'=x7; x6'=x6; y5'=y6'=y3; y3-y7'=y7-y1;
+draw z1--z5{up}...z7...{down}z6--z2; % upper bar
+draw z3--z5'{down}...z7'...{up}z6'--z4; % lower bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Much, much less sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"156",24u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup
+rule.nib; lft x2=hround u-epsilon; x1=x3=hround 12.5u-x2;
+y1-y3=ceiling 1.1spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % left diagonals
+z4-z1=z5-z2=z6-z3=z7-z4=z8-z5=z9-z6;
+x7=w-x2; y4=y1;
+draw z4--z5--z6; % middle diagonals
+draw z7--z8--z9; % right diagonals
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Much, much greater sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"157",24u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup
+rule.nib;
+lft x1=hround u-epsilon; x2=hround 12.5u-u; x1=x3;
+y1-y3=ceiling 1.1spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % left diagonals
+z4-z1=z5-z2=z6-z3=z7-z4=z8-z5=z9-z6;
+x8=w-x1; y4=y1;
+draw z4--z5--z6; % middle diagonals
+draw z7--z8--z9; % right diagonals
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Northwest right angle symbol";
+beginchar(oct"160",9u#, asc_height#, 0);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2; lft x1=u; x3=w-x1; y2=y3; top y2=h;
+y2-y1=x3-x2;
+draw z1--z2--z3;
+penlabels(1,2,3); endchar;
+
+cmchar "Northeast right angle symbol";
+beginchar(oct"161",9u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x3=u; x2=w-x3; top y3=h; y3=y2; x1=x2; x2-x3=y2-y1;
+draw z1--z2--z3;
+penlabels(1,2,3); endchar;
+
+cmchar "Southwest right angle symbol";
+beginchar(oct"170", 9u#, 7u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x2=u; x3=w-x2; x1=x2; bot y2=-o; y3=y2;
+y1-y2=x3-x2;
+draw z1--z2--z3;
+penlabels(1,2,3); endchar;
+
+cmchar "Southeast right angle symbol";
+beginchar(oct"171", 9u#, 7u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x3=u; x2=w-x3; x1=x2; bot y2=-o; y3=y2;
+y1-y2=x2-x3;
+draw z1--z2--z3;
+penlabels(1,2,3); endchar;
+
+%% include these parameters to `shrink R and S so they
+%% fit inside a circle
+%
+begingroup
+save u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o;
+numeric radius;
+old.u:=u; old.cap_curve:=cap_curve; old.cap_height:=cap_height;
+old.u#:=u#; old.cap_curve#:=cap_curve#; old.cap_height#:=cap_height#;
+forsuffixes $=u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height,
+comma_depth, flare, cap_hair,
+stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak,
+slab, cap_bar,
+cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+font_setup;
+% Changed by Stefan Lindner 15.03.1991 -sl
+% original: radius=.5(6u++cap_height)+3u; radius=radius#*hppp;
+radius#=.5(6u#++cap_height#)+3u#; radius:=radius#*hppp;
+% end of change
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+cmchar "Circle-R brand";
+beginchar(oct"162",13u#, .52cap_height#+radius#,radius#-.52cap_height#);
+adjust_fit(4u#,4u#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem');
+top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5cap_height+.5vair); x4=x6;
+x4=.5w-.5u; x5r=hround(w-2.25u);
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+ % tail
+math_fit(0,.75ic#);
+pickup rule.nib;
+z100=(hround w/2,.52cap_height); z101=z100+(0,radius); z103=z100-(0,radius);
+z102=z100+(radius,0); z104=z100-(radius,0);
+draw z101...z102...z103...z104...cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,100,101,102,103,104);
+endchar;
+
+cmchar "Circle-S brand";
+beginchar(oct"163",10u#,radius#+.52cap_height#,radius#-.52cap_height#);
+adjust_fit(5u#,5u#);
+numeric theta; theta=90-angle(50u,cap_height); slope:=-cap_height/50u; % angle at middle
+numeric s_slab; s_slab=slab;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=u; top y2l=cap_height+o; bot y7r=-o;
+y0=.52cap_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3cap_height+1; top y8=vround 1/3cap_height-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0);
+ pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+% lower arc and terminal
+math_fit(0,.5ic#);
+pickup rule.nib;
+z100=(hround w/2,.52cap_height); z101=z100+(0,radius); z103=z100-(0,radius);
+z102=z100+(radius,0); z104=z100-(radius,0);
+draw z101...z102...z103...z104...cycle;
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10,100,101,102,103,104);
+endchar;
+endgroup;
+
+
+cmchar "Pitchfork symbol";
+beginchar(oct"164",12u#,asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y3=good.y .7h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+x6=x7=good.x w/2; y6=y1; y7=h+o;
+draw z6--z7; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Dotted plus sign";
+beginchar(oct"165",14u#,8u#+math_axis#,6u#-math_axis#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h-2.5rule_thickness+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+x5=x1; y5=h+o;
+pickup pencircle scaled 2.5rule_thickness; drawdot z5;
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Inverted similarity sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"166",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround(u); x2=4u; x3=w-x2; x4=w-x1;
+bot y2=bot y4=-d; top y1=top y3=h;
+draw z1{down}...z2{right}..{right}z3...{down}z4; % stroke
+labels(1,2,3,4); endchar;
+
+cmchar "Inverted similar or equal sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"167",14u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround(u); x2=4u; x3=w-x2; x4=w-x1;
+bot y2=bot y4=floor math_axis; top y1=top y3=h;
+draw z1{down}...z2{right}..{right}z3...{down}z4; % stroke
+pickup rule.nib; lft x5=hround u-eps; x6=w-x5; y5=y6=math_axis-spread;
+draw z5--z6; % bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Iron cross";
+beginchar(oct"172",15u#,asc_height#,0); adjust_fit(0,0);
+pickup pencircle scaled .5rule_thickness;
+numeric cross_tension; cross_tension=.9;
+numeric cross_foot; cross_foot=4u;
+y0=.5[y1,y2]; x0=hround w/2;
+x1=x2=x0; bot y1=-o; lft x1l=3.5u; x1r=w-x1l; y1l=y1r=y1;
+top y2=h+o; x2r=x1l; x2l=x1r; y2l=y2r=y2;
+y3=y4=y0; x3=x0+eps; x4+x3=2x0;
+path p; p=z1l--z1r..tension cross_tension..z3..tension cross_tension
+ ..z2l--z2r..tension cross_tension..z4..tension cross_tension..
+ z1l..cycle;
+filldraw p;
+p:=p shifted -z0; p:=p rotated 90; p:=p shifted z0;
+filldraw p;
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Bourbaki C symbol";
+beginchar(oct"173",9u#, 1.1body_height#, 0);
+adjust_fit(0,0); pickup pencircle scaled 2rule_thickness;
+lft x4=lft x5=u; x1=x2=x8=x7=w-x4; x3=x6=hround
+w/2;
+bot y6=-o; top y3=h+o; y2=y4=y3-1.8u; y5=y7=y6+1.8u;
+y1=y2-2u; y8=y7+2u;
+draw z1--z2{up}..{left}z3..{down}z4--z5{down}..z6{right}..{up}z7--z8;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Bourbaki T symbol";
+beginchar(oct "174", 10u#, x_height#, desc_depth#);
+adjust_fit(0,0); pickup pencircle scaled 2rule_thickness;
+lft x1=u; x2=w-x1; top y1=top y2=h; x3=x4=hround w/2; y3=y1;
+bot y4=-1.1d;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+cmchar "Circle-in-a-circle operator";
+beginarithchar(oct"175"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+pickup rule.nib;
+numeric x[],y[];
+lft x6=hround 4.5u; x2=w-x6; y2=math_axis;
+top y8=y2+.5(rt x2-lft x6); circle_points; draw_circle;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Asterisk-in-a-circle";
+beginarithchar(oct"176");
+pickup light_rule.nib; autorounded;
+y2=math_axis; top y8=6u+math_axis;
+lft x6=hround w/2 - 6u; x2=w-x6;
+circle_points; draw_circle; % circle
+numeric x[], y[];
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=math_axis; for d=-150 step 60 until 150:
+z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Bar-in-a-circle operator";
+beginarithchar(oct"177"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+y9=y10=y2; x9=x6+3u; x10=w-x9;
+draw z9--z10;
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/ams/bsymbols.mf b/Master/texmf-dist/fonts/source/public/ams/bsymbols.mf
new file mode 100644
index 00000000000..e1ae4391b00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/bsymbols.mf
@@ -0,0 +1,1645 @@
+%% @metafontfile{
+%% filename="bsymbols.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "24957 1645 5619 66280"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the driver file for use with
+%% MSBM, the second extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This file defines the symbols of AMS special MSB font.
+
+def char_negate(suffix c,t,b) = %c is center point; t is top point; b is bottom
+pickup rule.nib;
+w-x.t=x.b; y.t-y.c=y.c-y.b; draw z.t--z.b;
+penlabels(t,c,b); enddef;
+def char_center(suffix c) = % find center of type character
+x.c=w/2; y.c=.5[-d,h]; enddef;
+
+cmchar "Less than or not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"000",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9; % equal sign
+z.c=.5[z7,z8]; x.t=x.c; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Greater than or not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"001",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
+y7-y9=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9;
+z.c=.5[z7,z8]; x.t=x.c; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Not less than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"002",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,8,9,99,100); endchar;
+
+cmchar "Not greater than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"003",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,8,9,99,100); endchar;
+
+cmchar "Not less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"004",14u#,v_center(spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3); endchar;
+
+cmchar "Not greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"005",14u#,v_center(spread#+rule_thickness#+6u#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,99,100); endchar;
+
+cmchar "Not precedes sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"006",14u#,v_center(spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-epsilon; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1{-u,-spread}...{left}z2; % upper diagonal
+draw z3{-u,spread}...{left}z2; % lower diagonal
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,99,100); endchar;
+
+cmchar "Not follows sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"007",14u#,v_center(spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-epsilon; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1{u,-spread}...{right}z2; % upper diagonal
+draw z3{u,spread}...{right}z2; % lower diagonal
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,99,100); endchar;
+
+cmchar "Less than or slanted not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"010",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9; % equal sign
+z.c=.5[z7,z8]; x.t=2/3[x.c, x3]; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Greater than or slanted not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"011",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
+y7-y9=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9;
+z.c=.5[z7,z8]; x.t=2/3[x.c, w-x3]; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Not less than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"012",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u;
+x2=x9; x1=x8;
+draw z1--z2--z3; % diagonals
+draw z8--z9; % equal sign
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Not greater than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"13",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x9; x1=x8;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u;
+draw z1--z2--z3; % diagonals
+draw z8--z9;
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Less than or not equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"014",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft
+x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3];
+top y1=h; draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9;
+y3-y9=spread'; draw z8--z9; % bar
+x100=w/2; y100=y8; % center point
+y101=.5[y8,y3]; x101-x100=y101-y100;
+char_negate(100,101,102);
+labels(1,2,3,8,9); endchar;
+
+cmchar "Greater than or not equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"015",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft
+x1=hround 1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h; draw z1--z2--z3; % diagonals
+x8=x1;
+x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+x100=w/2; y100=y8; % center point
+y101=.5[y8,y3]; x101-x100=y101-y100;
+char_negate(100,101,102);
+labels(1,2,3,8,9); endchar;
+
+cmchar "Not precedes or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"016",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1{-u,-spread}...{left}z2; % upper diagonal
+draw z3{-u,spread}...{left}z2; % lower diagonal
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,8,9,99,100); endchar;
+
+cmchar "Not follows or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"017",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h-3u; draw z1{u,-spread}...{right}z2; % upper diagonal
+draw z3{u,spread}...{right}z2; % lower diagonal
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,8,9,99,100); endchar;
+
+cmchar "Precedes or not approximately equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.55x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"020",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{-u,-spread}...{left}z2; %upper `diagonal'
+draw z3{-u,spread}...{left}z2; % lower diagonal
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,11,12,13,14); endchar;
+
+cmchar "Follows or not equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % spread of similarity sign
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % spread between symbols
+compute_spread(5/4 x_height#,3/2 x_height#); % spread of follows sign
+beginchar(oct"021",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{u,-spread}...{right}z2; %upper `diagonal'
+draw z3{u,spread}...{right}z2; % lower diagonal
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,11,12,13,14); endchar;
+
+
+
+cmchar "Less than or not similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.55x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"022",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+
+
+cmchar "Greater than or not similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"023",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+z.c=.5[z12,z13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+
+cmchar "Negated less than or (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"024",14u#,v_center(2spread#'+spread#+2rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h-3u;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9; % equal sign
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Negated greater than or (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"025",14u#,v_center(2spread#'+spread#+2rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h-3u;
+y7-y9=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9;
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Precedes or slanted not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"026",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1{-u,-spread}..{left}z2; % diagonals
+draw z3{-u, spread}..{left}z2;
+draw z6--z7; draw z8--z9; % equal sign
+z.c=.5[z7,z8]; x.t=2/3[x.c, x3]; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Follows or slanted not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"027",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
+y7-y9=spread';
+draw z1{u,-spread}..{right}z2; % diagonals
+draw z3{u,spread}..{right}z2;
+draw z6--z7; draw z8--z9;
+z.c=.5[z7,z8]; x.t=2/3[x.c, w-x3]; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Precedes with not approximate equality sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"030",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0);
+% now for precedes sign, using z9 (top), z10 (vertex), & z11 (bot)
+pickup rule.nib;
+lft x10= hround 1.5u-eps; x9=x11=w-x10;
+y9-y11=spread; y10=.5[y9,y11]; top y9=h;
+draw z9{-u,-spread}...{left}z10;
+draw z11{-u,spread}...{left}z10;
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread';
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+z.c=.5[z2,z7]; x.t=3/8[x.c,x4]; y.t=1/3[y2,y11];
+char_negate(c,t,b);
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+cmchar "Follows with not approximate equality sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"031",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0);
+% now for follow sign, using z9 (top), z10 (vertex), & z11 (bot)
+pickup rule.nib;
+lft x9 = hround 1.5u-eps; x10=w-x9; x11=x9;
+y9-y11=spread; y10=.5[y9,y11]; top y9=h;
+draw z9{u,-spread}...{right}z10;
+draw z11{u,spread}...{right}z10;
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread';
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+z.c=.5[z2,z7]; x.t=3/8[x.c,x4]; y.t=1/3[y2,y11];
+char_negate(c,t,b);
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+cmchar "Less than or not approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"032",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+top y13=top y11=bot y3-spread''; top y12=top y14=bot y11+spread';
+path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
+draw p; draw p shifted (0,-spread'');
+x.c=w/2; y.c=.5[y12, y13-spread'']; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Greater than or not approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"033",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread';
+bot y3- spread''=top y11;
+path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
+draw p; draw p shifted (0,-spread'');
+x.c=w/2; y.c=.5[y12,y13-spread'']; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Thick not similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"034",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup pencircle xscaled .8rule_thickness
+yscaled 1.87rule_thickness; if vair#>.8curve#: pickup
+rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+bot y1=bot y3=-d; top y2=top y4=h;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+char_center(100); x101=w-4u; y101=y1+5u;
+char_negate(100,101,102);
+labels(1,2,3,4,99,100); endchar;
+
+
+cmchar "Not approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"035",14u#,v_center(3spread#+2rule_thickness#+8u#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi %
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+y1=y3; top y2=top y4=h-4u; top y2-bot y1=spread;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+pickup rule.nib;
+lft x5=lft x7=hround u-eps; x6=x8=w-x5;
+y5=y6=y1-spread; y7=y8=y5-spread;
+draw z5--z6; draw z7--z8; % double equal sign
+char_center(100); x101=w-3u; y101=y1+4u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,6,7,8,99,100); endchar;
+
+cmchar "45 degree angle line";
+beginchar(oct"036",16u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+bot y1 =-d-eps; .5[y1,y2]=math_axis;
+lft x1 = 0+eps =x0; % rt x2=;
+z0-z1=(z2-z1) rotated 45;
+draw z1--z2;
+labels(0,1,2); endchar;
+
+cmchar "135 degree angle line";
+beginchar(oct"037",16u#,body_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+bot y1 =-d-eps; .5[y1,y2]=math_axis;
+lft x2 = 0+eps= x0; % rt x2=;
+z0-z2=(z1-z2) rotated -45;
+draw z1--z2;
+labels(0,1,2); endchar;
+
+cmchar "Negated subset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"040",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x100=w/2; y100=.5[y3,y8]; x101=x3-2u; y101=y3+2u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Negated superset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"041",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x100=x3+2.5u; y100=.5[y8,y3]; x101=x100+2.5u; y101=y3+2u;
+y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102;
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Negated subset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"042",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
+% arc and bars
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+char_center(c); x.t=w-2.5u; y.t=h+u; char_negate(c,t,b);
+penlabels(1,2,3,4,5,8,9,8',9'); endchar;
+
+cmchar "Negated superset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"043",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
+z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1;
+x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+char_center(c); x.t=w-2.5u; y.t=h+u; char_negate(c,t,b);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Subset or not (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"044",14u#,v_center(2.33spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
+% arc and bars
+x8=x1; x9=x2;
+y8=y9; y3-y9=1.33spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+x.c=w/2; y.c=.5[y9,y9']; x.t=1/2[x.c,w]; y.t=.5[y8,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,5,8,9,8',9'); endchar;
+
+cmchar "Superset or not (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"045",14u#,v_center(2.33spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
+z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1;
+x9=x2;
+y8=y9; y3-y9=1.33spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+x.c=w/2; y.c=.5[y9,y9']; x.t=1/2[x.c,w]; y.t=.5[y8,y3];
+char_negate(c,t,b);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Another not subset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"046",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
+% arc and bars
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+x.t=w-2.5u; y.t=y3+2u; x.b=.5[x2,x5]; y.b=y9'-2u; z.c=.5[z.b,z.t];
+draw z.b--z.t; labels(c,b,t);
+penlabels(1,2,3,4,5,8,9,8',9'); endchar;
+
+cmchar "Another superset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"047",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
+z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1;
+x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+x.t=x5; y.t=y3+2u; x.b=2.5u; y.b=y9'-2u; z.c=.5[z.b,z.t];
+draw z.b--z.t; labels(c,b,t);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Subset or not equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"050",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+z100=.5[z8,z9]; y101=.5[y8,y3];x101-x100=y101-y100;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Superset or not equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"051",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+z100=.5[z8,z9]; y101=.5[y8,y3];x101-x100=y101-y100;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Not subset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"052",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+char_center(100); y101=y1+3u; x101=w-3u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Not superset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"053",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+char_center(100); y101=y1+3u; x101=w-3u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Negated double vertical line (norm or cardinality)";
+beginchar(oct"054",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2; top y1=h; .5[y1,y2]=math_axis;
+x3=x4=w-x1; y3=y1; y4=y2;
+compute_spread(.45x_height#,.55x_height#); x3-x1=spread;
+draw z1--z2; draw z3--z4; % stems
+char_center(c); x.t=w; y.t=2/3h;
+char_negate(c,t,b);
+labels(1,2,3,4); endchar;
+
+cmchar "Negated vertical line";
+beginchar(oct"055",5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+x.t=w; x.b=w-x.t; y.t=2/3h; y.b=1/3h;
+draw z.b--z.t;
+labels(1,2,b,t); endchar;
+
+cmchar "Negated cute vertical bar";
+beginchar(oct"056",4u#,6u#+math_axis#,6u#-math_axis#);
+italcorr math_axis#*slant - .5u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=hround(w/2); top y1=x_height; bot y2=-o;
+draw z1--z2;
+char_center(c); x.t=w; y.t=5/8h;
+char_negate(c,t,b);
+labels(1,2); endchar;
+
+cmchar "Negated pair of cute vertical bars";
+beginchar(oct"057",7u#,6u#+math_axis#,6u#-math_axis#);
+italcorr math_axis#*slant - .5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=u; x2=x1; top y1=x_height; bot y2=-o;
+x3=w-x1; x4=x3; y3=y1; y4=y2;
+draw z1--z2; draw z3--z4;
+char_center(c); x.t=w; y.t=5/8h;
+char_negate(c,t,b);
+labels(1,2,3,4); endchar;
+
+cmchar "Negated left turnstile";
+beginchar(oct"060",11u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+.5[y1,y2]=y3=y4; x1=x2=x3;
+lft x3=hround u; x4=w-x3; top y1=h; bot y2=0;
+draw z1--z2; % stem
+draw z3--z4; % bar
+top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
+labels(1,2,3,4,b,t); endchar;
+
+cmchar "Negated forces symbol";
+beginchar(oct"061",13u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2;
+lft x5=hround u; x4=w-x5;
+compute_spread(.45x_height#,.55x_height#);
+x1=x5+spread; x1=x2=x3; x6=x5;
+draw z6--z5; draw z2--z1; draw z3--z4;
+top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
+penlabels(1,2,3,4,5,6,b,t); endchar;
+
+cmchar "Negated satisfies symbol";
+beginchar(oct"062",11u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+top y1=h; bot y2=0; y0=good.y .5[y1,y2];
+y3=vround y0+.5spread;
+y5=vround y0- .5spread; y4=y3; y6=y5;
+lft x1=hround u; x4=w-x1;
+x1=x2=x3=x5; x4=x6; x0=x1;
+draw z1--z2; % vertical line
+draw z3--z4; % draw top horizontal piece
+draw z5--z6; % draw bottom horizontal piece
+top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
+penlabels(0,1,2,3,4,5,6,b,t); endchar;
+
+cmchar "Negated forces symbol with extra bar";
+beginchar(oct"063",13u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2;
+lft x5=hround u; x4=w-x5;
+compute_spread(.45x_height#,.55x_height#);
+x1=x5+spread; x1=x2=x3; x6=x5;
+x3'=x3; x4'=x4; y3:=y3+.5spread; y4:=y3;
+y3'=y4'=y3-spread;
+draw z6--z5; draw z2--z1; draw z3--z4;
+draw z3'--z4'; % extra bar
+top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
+penlabels(1,2,3,4,5,6,b,t); endchar;
+
+
+cmchar "Negated rightward isosceles triangle with lower bar";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"064",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
+x4=x2; x5=x1; y3-y4=spread'; y5=y4;
+draw z1--z2--z3--cycle; draw z4--z5;
+char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Negated leftward isosceles triangle with lower bar";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"065",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
+x4=x2; x5=x1; y3-y4=spread'; y5=y4;
+draw z1--z2--z3--cycle; draw z4--z5;
+char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Negated leftward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"066",14u#,v_center(spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
+draw z1--z2--z3--cycle;
+char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
+char_negate(c,t,b);
+penlabels(1,2,3); endchar;
+
+cmchar "Negated rightward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"067",14u#,v_center(spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
+draw z1--z2--z3--cycle;
+char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
+char_negate(c,t,b);
+penlabels(1,2,3); endchar;
+
+cmchar "Negated leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"070",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+char_center(100); top y101=top y3; x101=x100+2u;
+char_negate(100,101,102);
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Negated rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"071",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+char_center(100); top y101=top y3; x101=x100+2u;
+char_negate(100,101,102);
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Negated left-and-right arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"075",18u#,
+ v_center(if monospace:.6asc_height#+fi spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis if monospace:+vround.3asc_height fi; lft x0=hround u;
+if monospace: x1+.5rule_thickness=hround(w-u) else: x1=.5w fi;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead and stem
+pos11(rule_thickness,90); pos12(rule_thickness,90); pos13(bar,0); pos14(bar,0);
+y10=y11=y12=math_axis if monospace:-vround.3asc_height fi;
+rt x10=hround(w-u);
+if monospace: x11-.5rule_thickness=hround u else: x11=.5w fi;
+y13-y10=y10-y14=.24asc_height+eps; x13=x14=x10-3u-eps;
+pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y12l)--(w,y12l))); x12=xpart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z12l---z11l..z11r---z12r--subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead and stem
+char_center(100); top y101=top y3; x101=x100+2u;
+char_negate(100,101,102);
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar;
+
+cmchar "Negated double leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"072",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; lft x0=hround u-eps; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+6u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead
+pickup rule.nib; x100=.5[x9,x1]; y100=y9; x101=x100+2u; top y101=top y3;
+y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Negated double rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"073",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x1; x7=x8=w-x1;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; rt x0=hround(w-u)+eps; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0-6u-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(w,y3)
+ --(w,y4)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead
+pickup rule.nib; x100=.5[x9,x1]; y100=y9; x101=x100+2u; top y101=top y3;
+y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Negated double left-and-right arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"074",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace: -u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; lft x0=hround u-o; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+5u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess at left
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead
+rt x10=hround(w-u)+o; y10=good.y math_axis;
+pos13(rule_thickness,0); pos14(rule_thickness,0);
+y13=y3; y14=y4; x13=x14=x10-5u-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+erase filldraw z10..{z13-z19}z13--(w,y13)
+ --(w,y14)--z14{z19-z14}..z10 & cycle; % erase excess at right
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y10)--(w,y10)));
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead
+char_center(100); top y101=top y13; x101=x100+1.5u; char_negate(100,101,102);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,19); endchar;
+
+cmchar "Times-division symbol";
+beginarithchar(oct"076");
+pickup rule.nib;
+x11=good.x(1/sqrt2)[.5w,rt u]; y11=good.y(1/sqrt2)[math_axis,bot h];
+x12=x13=w-x11; x14=x11; .5[y11,y12]=.5[y13,y14]=math_axis; y12=y14;
+draw z11--z12; draw z13--z14; % diagonals
+x3-.5dot_size=hround(.5w-.5dot_size); %center_on(x3);
+y3+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]+.5dot_size);
+lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6,11,12,13,14); endchar;
+
+cmchar "Null set symbol";
+beginarithchar(oct"077");
+pickup rule.nib;
+z0=(w/2,h/2); % center of circle
+rt x1-lft x0=hround(h/2 + o); y1=y0;
+numeric theta; theta=45;
+for i=2 upto 8: z[i]-z0=(z1-z0) rotated ((i-1)*theta); endfor
+draw z8...z1 for i=2 upto 8: ...z[i] endfor;
+lft x9=u; x10=w-x9; bot y9=bot y7; top y10=top y3; draw z9--z10;
+labels(range 0 thru 10); endchar;
+
+cmchar "Negated existential quantifier";
+beginchar(oct"100",10u#,asc_height#,0);
+italcorr asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x3=x5=w-x1; x4=x6-.25u=x1;
+top y1=h; bot y4=0; y2=y1; y5=y6=.5[y1,y3]; y3=y4;
+draw z1--z2--z3--z4; % upper bar, stem, lower bar
+draw z5--z6; % middle bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,6); endchar;
+
+charlist oct"133": oct"134";
+charlist oct"135": oct"136";
+
+cmchar"Wider than widest circumflex (hat) accent";
+beginchar(oct"133",34u#,1.1body_height#,0);
+adjust_fit(0,0);
+pickup crisp.nib;
+pos2(.7[vair,curve],90); top y2r=h+o; x2=.5w;
+x1=w-x3=good.x-eps; y1=y3=.45[x_height,y2];
+pos1(1.2hair,angle(z2-z1)+90); pos3(1.2hair,angle(z3-z2)+90);
+filldraw stroke z1e--z2e--z3e;
+penlabels(1,2,3);
+%big_hat;
+endchar;
+
+cmchar"Very Widest circumflex (hat) accent";
+beginchar(oct"134",42u#,1.1body_height#,0);
+adjust_fit(0,0);
+pickup crisp.nib;
+pos2(.7[vair,curve],90); top y2r=h+o; x2=.5w;
+x1=w-x3=good.x-eps; y1=y3=.45[x_height,y2];
+pos1(1.2hair,angle(z2-z1)+90); pos3(1.2hair,angle(z3-z2)+90);
+filldraw stroke z1e--z2e--z3e;
+penlabels(1,2,3);
+%big_hat;
+endchar;
+
+cmchar"Even wider tilde (squiggle) accent";
+beginchar(oct"135",34u#,1.1body_height#,0);
+%big_tilde;
+adjust_fit(0,0); pickup crisp.nib;
+numeric theta; theta=angle(1/6(w-vair),1/4(h-x_height));
+numeric mid_width; mid_width=.4[vair,stem];
+pos1(1.5vair,theta+80); pos2(2vair,theta+80);
+pos3(2vair,theta+80); pos4(1.5vair,theta+80);
+z2-z1=z4-z3 = (mid_width-crisp)*dir theta;
+lft x1r=w-rt x4l=0; top y4r=h;
+bot y1l=vround(bot y1l+min(.6[x_height,h],y3l-.25vair)-top y1r);
+pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+--z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+cmchar"Very widest tilde (squiggle) accent";
+beginchar(oct"136",42u#,1.2body_height#,0);
+%big_tilde;
+adjust_fit(0,0); pickup crisp.nib;
+numeric theta; theta=angle(1/6(w-vair),1/4(h-x_height));
+numeric mid_width; mid_width=.4[vair,stem];
+pos1(1.5vair,theta+80); pos2(2vair,theta+80);
+pos3(2vair,theta+80); pos4(1.5vair,theta+80);
+z2-z1=z4-z3 = (mid_width-crisp)*dir theta;
+lft x1r=w-rt x4l=0; top y4r=h;
+bot y1l=vround(bot y1l+min(.6[x_height,h],y3l-.25vair)-top y1r);
+pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+--z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+cmchar "Reversed turned F";
+beginchar(oct"140",10u#,asc_height#,0);
+italcorr asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+lft x4=hround u-eps; x2=x3=x5=w-x4; x6=x4+.27w;
+top y2=h; bot y4=0; y5=y6=.5[y2,y3]; y3=y4;
+draw z2--z3--z4; % upper bar, stem, lower bar
+draw z5--z6; % middle bar
+labels(2,3,4,5,6); endchar;
+
+cmchar "The Reversed inverted letter G";
+beginchar(oct"141",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#; adjust_fit(0,0);
+ pickup rule.nib;
+ rt x1=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3=hround max(u,2u-.5cap_curve); rt x5=hround(w-1.2u);
+ top y1=vround .93h+o; top y2=h+o; y3=.5h;
+ bot y4=-o; bot y5=vround .07h-o;
+ draw z1...{left}z2...{down}z3{down}...{right}z4...{up}z5;
+ z7=z5; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ draw z0--z7; % stem
+ z0=z9; y8=y9; lft x8=hround x4;
+ draw z8--z9; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+picture rvchar;
+ rvchar=currentpicture reflectedabout((.5w,0),(.5w,h));
+currentpicture:= rvchar;
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Upsidedown, uppercase Greek Omega";
+beginchar(oct"146",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+%math_fit(0,.5ic#);
+picture v; v:=currentpicture;
+numeric t; t=h-d;
+v:=v reflectedabout((0,0),(w,0));
+currentpicture:=v shifted(0,aspect_ratio*cap_height);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter Edh (Old English rune, like thorn)";
+% adapted from cm partial differential sign, vol E, p 233.
+beginchar(oct"147",10u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-1.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,90);
+pos3(side_thickness,0); pos4(bot_thickness,-90);
+pos5(side_thickness,-180); pos6(vair,-270);
+lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6+.1u=x2+u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,0); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+x2:=x5; x2l:=x2r:=x2;
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+%pos1(hair,180); pos0(flare,180); % commenting out the arc and bulb
+%lft x0r=min(lft x2-eps,hround 1.2u);
+%y0=vround min(.85h-.5flare,.8h+.5flare)+o;
+%{{less_tense; bulb(2,1,0)}}; % arc and bulb
+%math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
+pickup pencircle xscaled 1.4rule_thickness yscaled .5rule_thickness;
+x10=x11=x5; x12=x13=w-x10; y10=y13;
+y10-y11=y12-y13=cap_stem; .5[y11,y10]=.5[y6,y2];
+draw z10--z11--z12--z13; % cross piece
+penlabels(2,3,4,5,6,7,10,11,12,,13); endchar;
+
+cmchar "Equal or similar symbol";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"150",14u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+bot y1=bot y3=-d; top y2=top y4=y1+spread;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+pickup rule.nib;
+lft x5=hround u-eps; x6=w-x5; top y5=top y6=h;
+draw z5--z6;
+labels(1,2,3,4,5,6); endchar;
+
+
+%% parameters for Hebrew letters Beth, Gimel, Dalet
+numeric theta; theta=45;
+cmchar "Hebrew letter Beth";
+beginchar(oct"151", 12u#, asc_height#, 0);
+%currenttransform:=identity rotated -45 shifted (.75h, 0);
+adjust_fit(0,0);
+pickup rule.nib;
+top y0=1.1h; lft x0=u;
+pos1(cap_curve,90); x1=2.5u; y1r=h;
+pos2(cap_curve,90); x2=w-x1; y2r=y1r;
+rt x3=w-u; y2l-y3=y0-y1r;
+x4=x3;
+% now for the base.
+pos12(cap_curve/cosd theta, theta); pos11(cap_curve/cosd theta, theta);
+y11r=y12r=y4; y11l=0;
+x12=u; x11=w-x12;
+filldraw z0{down}..tension.8..z1l{right}..{right}z2l..{down}z3&
+z3{up}..tension.8..z2r{left}..{left}z1r..z0..cycle; % top
+pickup rule.nib; draw z3..z4; % down stroke at right of letter
+filldraw stroke z11e{left}..{left}z12e;
+penlabels(0,1,2,3,4,11,12);
+endchar;
+
+cmchar "Hebrew letter Gimel";
+beginchar(oct"152", 8u#, asc_height#, 0);
+%currenttransform:=identity rotated -45 shifted (.75h, 0);
+adjust_fit(0,0);
+pickup rule.nib;
+top y0=1.1h; lft x0=u;
+pos1(cap_curve,90); x1=2.5u; y1r=h;
+pos2(cap_curve,90); x2=w-x1+.5u; y2r=y1r;
+filldraw z0{down}..tension.8..z1l{right}..{right}z2l..tension.8..{left}z2r
+ ..{left}z1r..z0..cycle; % top slab
+z3=z2l;x4=x3+.2stem; y4=-o; x5=x4+.3stem; y5=y3c;
+x3a=x3b=x3c=x3; y3a=.8h; y3b=.5h; y3c=cap_curve;
+y5:=.5y5; % reset y5
+path p, q; p=(z3---z3c..z4); q=(z4{1,1}..z5..{-.005,1}z3); % vertical
+filldraw p&q&cycle;
+% now for the base.
+pos12(cap_curve/cosd theta, theta); pos11(cap_curve/cosd theta, theta);
+pos13(cap_curve/cosd theta, theta); y13=y12; x13=w;
+ % z13 is a dummy point for getting intersection
+y11r=y12r; y11l=0;
+x12=u;
+z10=p intersectionpoint (z12r--z13r); z11r=z10;
+filldraw stroke z11e{left}..{left}z12e;
+penlabels(0,1,2,3,3c,4,5,11,12);
+endchar;
+
+cmchar "Hebrew letter Daleth";
+beginchar(oct"153", 12u#, asc_height#, 0);
+%currenttransform:=identity rotated -45 shifted (.75h, 0);
+adjust_fit(0,0);
+pickup rule.nib;
+top y0=1.1h; lft x0=u;
+pos1(cap_curve,90); x1=2.5u; y1r=h;
+pos2(cap_curve,90); x2=w-x1+.5u; y2r=y1r;
+filldraw z0{down}..tension.8..z1l{right}..{right}z2l..tension.8..{left}z2r
+ ..{left}z1r..z0..cycle; % top slab
+z3=z2l;x4=x3+.2stem; y4=-o; x5=x4+.3stem; y5=y3c;
+x3a=x3b=x3c=x3; y3a=.8h; y3b=.5h; y3c=cap_curve;
+y5:=.5y5; % reset y5
+path p, q; p=(z3---z3c..z4); q=(z4{1,1}..z5..{-.005,1}z3); % vertical
+filldraw p&q&cycle;
+penlabels(0,1,2,3,3c,4,5);
+endchar;
+
+cmchar "Dotted less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"154",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+y4=y2; x4=.75[x2, x1]; z5=z4;
+pos4(dot_size,0); pos5(dot_size,90); dot(4,5);
+labels(1,2,3,4,5); endchar;
+
+cmchar "Dotted greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"155",14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+y4=y2; x4=.75[x2, x1]; z5=z4;
+pos4(dot_size,0); pos5(dot_size,90); dot(4,5);
+labels(1,2,3,4,5); endchar;
+
+cmchar "Times operator with left vertical";
+beginarithchar(oct"156"); pickup rule.nib;
+x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+draw z1--z4;
+labels(1,2,3,4); endchar;
+
+cmchar "Times operator with right vertical";
+beginarithchar(oct"157"); pickup rule.nib;
+x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+draw z2--z3;
+labels(1,2,3,4); endchar;
+
+cmchar "Cute vertical bar";
+beginchar(oct"160",4u#,6u#+math_axis#,6u#-math_axis#);
+italcorr math_axis#*slant - .5u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=hround(w/2); top y1=x_height; bot y2=-o;
+draw z1--z2;
+labels(1,2); endchar;
+
+cmchar "Two cute vertical bars";
+beginchar(oct"161",7u#,6u#+math_axis#,6u#-math_axis#);
+italcorr math_axis#*slant - .5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=u; x2=x1; top y1=x_height; bot y2=-o;
+x3=w-x1; x4=x3; y3=y1; y4=y2;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+cmchar "Integer division (reverse quotient) symbol";
+beginarithchar(oct"162"); pickup rule.nib;
+x1=2u; top y1=x_height;%
+x2=x3=w-x1; x4=x1; bot y2=-o;
+draw z1--z2; % diagonal
+labels(1,2,3,4); endchar;
+
+
+cmchar "Thick similarity sign";% taken from symbol.mf
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"163",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .8rule_thickness yscaled 1.87rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+bot y1=bot y3=-d; top y2=top y4=h;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+labels(1,2,3,4); endchar;
+
+
+cmchar "Approximate equality sign"; % taken fron symbol.mf
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54x_height#,.66x_height#);
+beginchar(oct"164",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .8rule_thickness yscaled 1.87rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+y1=y3; top y2=top y4=h; top y2-bot y1=spread';
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread);
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Approximate equality plus lower bar sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54x_height#,.66x_height#);
+beginchar(oct"165",14u#,v_center(2spread#'+spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+y1=y3; top y2=top y4=h; top y2-bot y1=spread';
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread);
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+y9=y10; x9=x1; x10=x8; y5-y9=spread';
+pickup rule.nib; draw z9--z10;
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+cmchar "Follows with approximate equality sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"166",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0);
+% now for follow sign, using z9 (top), z10 (vertex), & z11 (bot)
+pickup rule.nib;
+lft x9 = hround 1.5u-eps; x10=w-x9; x11=x9;
+y9-y11=spread; top y9=h; y10=.5[y11, y9];
+draw z9{u,-spread}...{right}z10;
+draw z11{u,spread}...{right}z10;
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+top y1=top y3=bot y11-spread''; top y2=top y4=bot y1+spread';
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Precedes with approximate equality sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"167",14u#,v_center(spread#+2spread#''+2rule_thickness#));
+adjust_fit(0,0);
+% now for precedes sign, using z9 (top), z10 (vertex), & z11 (bot)
+pickup rule.nib;
+x9=x11=w-x10; lft x10=hround 1.5u-eps;
+y9-y11=spread; top y9=h; y10=.5[y11, y9];
+draw z9{-u,-spread}...{left}z10;
+draw z11{-u,spread}...{left}z10;
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread';
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Arch with left downward arrowhead";
+beginchar(oct"170",18u#,x_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+for i=0 upto 6: x[i]:=x[i]-5.5u; x[i]l:=x[i]l-5.5u; x[i]r:=x[i]r-5.5u; endfor
+x9:=x9-5.5u;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead
+% arch represented by z2, z11 (top) z12
+rt x12=w-1u; bot y12=y0; top y11=h+o; x11=.5[x2, x12];
+pickup rule.nib; draw z2{up}...{right}z11...{down}z12;
+penlabels(0,1,2,3,4,5,6,9,11,12); endchar;
+
+cmchar "Arch with right downward arrowhead";
+beginchar(oct"171",18u#,x_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+for i=0 upto 6: x[i]:=x[i]+5.5u; x[i]l:=x[i]l+5.5u; x[i]r:=x[i]r+5.5u; endfor
+x9:=x9+5.5u;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead
+% arch represented by z2, z11 (top) z12 (right)
+lft x12=u; bot y12=y0; top y11=h+o; x11=.5[x2, x12];
+pickup rule.nib; draw z2{up}...{left}z11...{down}z12;
+penlabels(0,1,2,3,4,5,6,9,11,12); endchar;
+
+cmchar "Stylized F";
+beginarithchar(oct"172");
+pickup pencircle xscaled 2.5rule_thickness yscaled .5rule_thickness;
+bot y1=-d; top y2=top y3=h+o; y4=y5=.5[y1, y2]; lft x1=u; x3=w-x1;
+numeric t; t=4; % t=slope of thck stem
+y2-y1=t*(x2-x1);
+z4=whatever[z1, z2]; x5-x4=.6(x3-x2);
+draw z1--z2--z3; draw z4--z5;
+penlabels(1,2,3,4,5); endchar;
+
+transform tt; tt:=currenttransform;
+currenttransform:=tt slanted 1/4;
+cmchar "Lowercase variation of Greek kappa";
+% will use same dimensions as standard Greek lowercase kappa
+% see vol E, p 155.
+beginchar(oct"173", 12u#, x_height#, 0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup rule.nib;
+pos1(stem,0); pos2(stem,0);x1l=hround(2u-.5stem); x2r=w-x1l;
+top y2+.3stem=h+oo; bot y1-.3stem=-oo;
+filldraw z1l---z2l...z2r---z1r...cycle;
+pickup crisp.nib;
+pos3(hair,180); x3=lft x1l; y3=3/4h; pos4(stem,90);
+top y4r+.15stem=h+oo; x4-x3=.05[x1,x2];
+pos4'(hair,0); y4'=y3; x4'=1/4[x1,x2];
+pos5(hair,90); z5=z1;
+filldraw super_arc.r(3,4)&super_arc.r(4,4')...{z1-z2}z5&z5{z2-z1}
+...super_arc.l(4',4)&super_arc.l(4,3)---cycle; % left arm
+pos8(hair,-90); pos6(hair,0);
+z8=z2; pos7(stem, -90); bot y7r-.15stem=-oo; x6-x7=x4-x3;
+x6=w-x3;
+pos7'(hair,180); y7'=y6; x7'=w-x4';
+y6=h-y3;
+filldraw super_arc.r(6,7)&super_arc.r(7,7')...{z2-z1}z8&z8{z1-z2}
+...super_arc.l(7',7)&super_arc.l(7,6)---cycle; % right arm
+%filldraw z8{z1-z2}..z7l...{up}z6r---z6l{-u,-2u}...z7r..{z2-z1}z8---cycle; %right arm
+penlabels(range 1 thru 8,4'); endchar;
+
+cmchar "H-bar symbol, slanted bar";
+beginchar(oct"175",9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+pickup light_rule.nib;
+x8=x.a2; y8=.7h; x9=x4l; y9=7/8h;
+draw z8--z9;
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "H-bar symbol, vertical bar";
+beginchar(oct"176",9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+pickup light_rule.nib;
+x8=x.a2; y8=y9=.81h; rt x9=x4l; draw z8--z9;
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Reversed, reflected, lowercase Greek epsilon";
+beginchar(oct"177",8u#,x_height#,0);
+italcorr x_height#*slant+.5hair#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(bar,90); pos1(bar,90); pos2(curve,180);
+pos3(vair,270); pos4(hair,300); pos6(bar,90); pos7(bar,90);
+x1=.5w+.5u; x0=x1+u; lft x2r=hround(1.5u-.5curve); x3=.5[x0,x1];
+x4r=good.x(w-u); x5=w+.5u; x6=x0; z7=z2l;
+top y0r=top y1r=h; y2=y5=y6=bar_height; bot y3r=-oo;
+path p; p=z3r{right}...{up}z5;
+numeric t; t=ypart(((x4r,y3r)--(x4r,y5))intersectiontimes p);
+y4r=ypart point t of p;
+filldraw circ_stroke z0e..pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ ...z4e{direction t of p}; % arc
+filldraw circ_stroke z6e--z7e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+picture v;
+v:=currentpicture;
+v:=v reflectedabout((0,h*aspect_ratio/2),(w,h*aspect_ratio/2));
+v:=v reflectedabout((w/2,-d),(w/2,h));
+currentpicture:=v shifted (2u,0);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+currenttransform:=tt; %restore currenttrnasform
+
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmbsy5.mf b/Master/texmf-dist/fonts/source/public/ams/cmbsy5.mf
new file mode 100644
index 00000000000..7d9a4888b8b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmbsy5.mf
@@ -0,0 +1,129 @@
+%% @metafontfile{
+%% filename="cmbsy5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "34303 129 716 6838"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmbsy5 in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Symbols 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBSY V2.2"; font_size 5pt#;
+
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123.5/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=80/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=40/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=9pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=18/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=21/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3.5/36pt#; % amount of overshoot for curves
+apex_o#:=3.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/5; % subscripts to 5pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+3/36pt#, % num2
+ math_axis#+1.51rth#+24/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-63/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-3/36pt#), % denom2
+ 5.99pt#-subs*asc_height#, % sup1
+ 5.49pt#-subs*asc_height#, % sup2
+ 53/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 9.9pt#, % delim1
+ 7.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmbsy6.mf b/Master/texmf-dist/fonts/source/public/ams/cmbsy6.mf
new file mode 100644
index 00000000000..1c0272ab23c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmbsy6.mf
@@ -0,0 +1,129 @@
+%% @metafontfile{
+%% filename="cmbsy6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "51455 129 716 6840"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmbsy6, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Symbols 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBSY V2.2"; font_size 6pt#;
+
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=96/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=49/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=10pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/6; % subscripts to 6pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+9/36pt#, % num2
+ math_axis#+1.51rth#+29/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-74/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-9/36pt#), % denom2
+ 6.49pt#-subs*asc_height#, % sup1
+ 5.99pt#-subs*asc_height#, % sup2
+ 62/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmbsy7.mf b/Master/texmf-dist/fonts/source/public/ams/cmbsy7.mf
new file mode 100644
index 00000000000..09b97d99e67
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmbsy7.mf
@@ -0,0 +1,129 @@
+%% @metafontfile{
+%% filename="cmbsy7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "25335 129 716 6845"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmbsy7, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Symbols 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBSY V2.2"; font_size 7pt#;
+
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=11pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=31/36pt#; % lowercase stem breadth
+curve#:=34/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=36/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmbsy8.mf b/Master/texmf-dist/fonts/source/public/ams/cmbsy8.mf
new file mode 100644
index 00000000000..3317d44cb3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmbsy8.mf
@@ -0,0 +1,129 @@
+%% @metafontfile{
+%% filename="cmbsy8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "10526 129 716 6839"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmbsy8, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Symbols 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBSY V2.2"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=12pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=34/36pt#; % lowercase stem breadth
+curve#:=38/36pt#; % lowercase curve breadth
+ess#:=31/36pt#; % breadth in middle of lowercase s
+flare#:=37/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=42/36pt#; % uppercase stem breadth
+cap_curve#:=45/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=30/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmbsy9.mf b/Master/texmf-dist/fonts/source/public/ams/cmbsy9.mf
new file mode 100644
index 00000000000..483c0812961
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmbsy9.mf
@@ -0,0 +1,129 @@
+%% @metafontfile{
+%% filename="cmbsy9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "65271 129 716 6860"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmbsy9, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Symbols 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBSY V2.2"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=37/36pt#; % lowercase stem breadth
+curve#:=42/36pt#; % lowercase curve breadth
+ess#:=34/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=46/36pt#; % uppercase stem breadth
+cap_curve#:=50/36pt#; % uppercase curve breadth
+cap_ess#:=47/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmcsc8.mf b/Master/texmf-dist/fonts/source/public/ams/cmcsc8.mf
new file mode 100644
index 00000000000..63a1af471d7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmcsc8.mf
@@ -0,0 +1,142 @@
+%% @metafontfile{
+%% filename="cmcsc8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "24411 142 805 7399"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmcsc8, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Roman Cap and Small Cap 8 point; created at AMS
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC V2.2"; font_size 8pt#;
+
+u#:=18/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2.5/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=13/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.7/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=146/36pt#; % height of tallest characters
+lower.cap_height#:=145.8/36pt#; % height of caps
+lower.x_height#:=85/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=47.6/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=38/36pt#; % depth of comma below baseline
+
+lower.flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.1/36pt#; % uppercase hairline breadth
+lower.stem#:=17/36pt#; % lowercase stem breadth
+lower.cap_stem#:=21/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=20/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.4/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=38/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmcsc9.mf b/Master/texmf-dist/fonts/source/public/ams/cmcsc9.mf
new file mode 100644
index 00000000000..954c7043fc5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmcsc9.mf
@@ -0,0 +1,142 @@
+%% @metafontfile{
+%% filename="cmcsc9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "36892 142 805 7430"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmcsc9, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Roman Caps and Small Caps 9 point; created at AMS
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC V2.2"; font_size 9pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=14.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=173/36pt#; % height of tallest characters
+lower.cap_height#:=170.4/36pt#; % height of caps
+lower.x_height#:=100.5/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=56.3/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=45/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.6/36pt#; % uppercase hairline breadth
+lower.stem#:=19/36pt#; % lowercase stem breadth
+lower.cap_stem#:=23.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=28/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=6.2/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=45/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmex7.mf b/Master/texmf-dist/fonts/source/public/ams/cmex7.mf
new file mode 100644
index 00000000000..619f0bb62cc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmex7.mf
@@ -0,0 +1,118 @@
+%% @metafontfile{
+%% filename="cmex7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "44655 118 668 6140"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmex7, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Math Extension 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMEX V2.2"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+%the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+rule_thickness#, % default \_rule\_thickness
+28/36pt#, % big\_op\_spacing1
+42/36pt#, % big\_op\_spacing2
+50.4/36pt#, % big\_op\_spacing3
+154/36pt#, % big\_op\_spacing4
+36/36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmex8.mf b/Master/texmf-dist/fonts/source/public/ams/cmex8.mf
new file mode 100644
index 00000000000..9f0763b3fa7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmex8.mf
@@ -0,0 +1,118 @@
+%% @metafontfile{
+%% filename="cmex8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "18679 118 668 6144"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmex8, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Math Extension 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMEX V2.2"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=30.5/36pt#; % uppercase curve breadth
+cap_ess#:=27.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+%the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+rule_thickness#, % default \_rule\_thickness
+32/36pt#, % big\_op\_spacing1
+48/36pt#, % big\_op\_spacing2
+57.6/36pt#, % big\_op\_spacing3
+175/36pt#, % big\_op\_spacing4
+36/36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmex9.mf b/Master/texmf-dist/fonts/source/public/ams/cmex9.mf
new file mode 100644
index 00000000000..6d9f72b7419
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmex9.mf
@@ -0,0 +1,118 @@
+%% @metafontfile{
+%% filename="cmex9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "00299 118 668 6140"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmex9, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Math Extension 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMEX V2.2"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+%the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+rule_thickness#, % default \_rule\_thickness
+36/36pt#, % big\_op\_spacing1
+54/36pt#, % big\_op\_spacing2
+64.8/36pt#, % big\_op\_spacing3
+196/36pt#, % big\_op\_spacing4
+36/36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmmib5.mf b/Master/texmf-dist/fonts/source/public/ams/cmmib5.mf
new file mode 100644
index 00000000000..90fae0bfdf1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmmib5.mf
@@ -0,0 +1,109 @@
+%% @metafontfile{
+%% filename="cmmib5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support Department,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "35884 109 623 5643"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmmib5, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Italic 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMIB V2.2"; font_size 5pt#;
+
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123.5/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=80/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=40/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=9/36pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=18/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=21/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3.5/36pt#; % amount of overshoot for curves
+apex_o#:=3.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmmib6.mf b/Master/texmf-dist/fonts/source/public/ams/cmmib6.mf
new file mode 100644
index 00000000000..22d8bc1b252
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmmib6.mf
@@ -0,0 +1,109 @@
+%% @metafontfile{
+%% filename="cmmib6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support Department,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "35826 109 623 5643"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmmib6, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Italic 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMIB V2.2"; font_size 6pt#;
+
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=96/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=49/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=10/36pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmmib7.mf b/Master/texmf-dist/fonts/source/public/ams/cmmib7.mf
new file mode 100644
index 00000000000..129a2648720
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmmib7.mf
@@ -0,0 +1,109 @@
+%% @metafontfile{
+%% filename="cmmib7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support Department,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "13737 109 623 5646"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmmib7, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Italic 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMIB V2.2"; font_size 7pt#;
+
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=11/36pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=31/36pt#; % lowercase stem breadth
+curve#:=34/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=36/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmmib8.mf b/Master/texmf-dist/fonts/source/public/ams/cmmib8.mf
new file mode 100644
index 00000000000..16f7abb692c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmmib8.mf
@@ -0,0 +1,109 @@
+%% @metafontfile{
+%% filename="cmmib8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support Department,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "58138 109 623 5640"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmmib8, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Italic 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMIB V2.2"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=12/36pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=34/36pt#; % lowercase stem breadth
+curve#:=38/36pt#; % lowercase curve breadth
+ess#:=31/36pt#; % breadth in middle of lowercase s
+flare#:=37/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=42/36pt#; % uppercase stem breadth
+cap_curve#:=45/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=30/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cmmib9.mf b/Master/texmf-dist/fonts/source/public/ams/cmmib9.mf
new file mode 100644
index 00000000000..c3c4e8921fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cmmib9.mf
@@ -0,0 +1,109 @@
+%% @metafontfile{
+%% filename="cmmib9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support Department,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "49188 109 623 5644"
+%% keywords="amsfonts, tex, metafont ",
+%% abstract="This is the parameter file for use with
+%% cmmib9, in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Bold Math Italic 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMIB V2.2"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=37/36pt#; % lowercase stem breadth
+curve#:=42/36pt#; % lowercase curve breadth
+ess#:=34/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=46/36pt#; % uppercase stem breadth
+cap_curve#:=50/36pt#; % uppercase curve breadth
+cap_ess#:=47/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/cyrcsc.mf b/Master/texmf-dist/fonts/source/public/ams/cyrcsc.mf
new file mode 100644
index 00000000000..29d5abb6f9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cyrcsc.mf
@@ -0,0 +1,178 @@
+%% @mffile{
+%% filename="cyrcsc.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "13082 178 868 7566"
+%% keywords="amsfonts, tex, metafont, cyrillic",
+%% abstract="This is the driver file for use with
+%% the cyrillic cap-small-cap font."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Driver for WNCYR Washington Computer Modern Cyrillic
+
+font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+spanish_shriek=oct"016"; spanish_query=oct"017";
+
+mode_setup; font_setup;
+
+def cyrspread = 1.25dot_size enddef;
+numeric cyrflwd; cyrflwd=2hair;
+numeric cyrflht; cyrflht=4slab;
+
+input cyrmax.mf; %input macro file
+input cyrilu; % input common shapes
+input cyrspu; % and special uppercase forms
+input cyrpunc; % and puctuation etc.
+input serb; % serbian & other chars
+input serbspu;
+%input cyrspl; % and lowercase specials
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+%%% fine lower
+def lowerfit = -.15u enddef;
+def cyrspread = 1.125dot_size enddef;
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+font_setup; % now try again with |lower| settings
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+code_offset:=ASCII"a" - ASCII"A";
+
+% now input for lowercase of common shapes
+input cyrilu; % majuscules (in lowercase positions)
+input cyrspu; % 'special' uppers not special in small caps
+
+code_offset:=8;
+input serb; % serbs and other chars
+input serbspu;
+
+code_offset:=0;
+cmchar "The letter smallcap dotless I";
+beginchar(oct"75",14u#+width_adj#,cap_height#+3dot_size#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); h:=cap_height;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: penpos5(.85cap_stem,90); penpos6(.85cap_stem,90);
+else: penpos5(cap_stem,90); penpos6(cap_stem,90); fi
+x5=x1r; x6=x3l; if serifs: y5=.1h; y6=.9h; else: bot y5l=0; top y6r=h; fi
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+x51=.5w; y51=h; h:=body_height+2dot_size; nucyrbrev(51,q);
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2.5u#; % three degrees of kerning
+ligtable "K": "H"=:"H", "h"=:"H",
+ oct"021": "H": oct"005" kern k#, oct"025" kern k#,
+ "F" kern k#, "O" kern k#, "S" kern k#;
+ligtable "T": "S"=:"C", "s"=:"C",
+ oct"024": "G": "U": "A" kern kkk#,
+ "D" kern kkk#, "L" kern kk#, "C" kern kk#, "a" kern kk#,
+ "d" kern kk#, "f" kern kk#, "o" kern kk#,
+ oct"005" kern kk#, oct"015" kern kk#, oct"025" kern kk#,
+ oct"035" kern kk#, "." kern kk#, "," kern kkk#, ";" kern kk#;
+ligtable "'": "'"=:oct"042";
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+ligtable "6": "h"=:"W", "H"=:"W";
+ligtable "7": "h"=:"w";
+ligtable "A": oct"000": oct"001": oct"136": oct"137": oct"024" kern kk#,
+ oct"006" kern kk#, oct"007" kern kk#, "Q" kern kk#, oct"137" kern kk#;
+ligtable "C": "1"=:oct"007", "H"=:"Q", "h"=:"Q";
+ligtable "D": "1"=:oct"006", "2"=:oct"002", "3"=:oct"026",
+ "J"=:oct"006", "j"=:oct"006";
+ligtable "E": "0"=:oct"023", "1"=:oct"003", "2"=:oct"005";
+ligtable "I": "0"=:oct"022", "1"=:oct"004";
+ligtable "J": "1"=:oct"027", "2"=:oct"020";
+ligtable "L": "1"=:oct"001", "J"=:oct"001", "j"=:oct"001";
+ligtable "N": "0"=:oct"175", "1"=:oct"000", "J"=:oct"000", "j"=:oct"000";
+ligtable "O": oct"003": "F": "O" kern -k#, "F" kern -k#, oct"005" kern -k#,
+ oct"025": "H" kern k#, "A" kern k#, "U" kern k#, oct"024" kern k#,
+ "T" kern k#;
+ligtable "P": "1"=:oct"136", "2"=:oct"137";
+ligtable "t": "s"=:"c",
+ "R": oct"034": "g": "u": oct"035" kern k#,
+ "a" kern k#, "d" kern k#, "f" kern k#,
+ "l" kern k#, "o" kern k#, oct"035" kern k#,
+ "." kern kk#, "," kern kk#, ";" kern kk#;
+ligtable "S": "H"=:"X", "h"=:"X";
+ligtable "X": "Q"=:"W", "q"=:"W", "C"=:"6", "c"=:"6";
+ligtable "Y": "A"=:oct"027", "a"=:oct"027", "U"=:oct"020", "u"=:oct"020";
+ligtable "Z": "1"=:oct"021", "H"=:oct"021", "h"=:oct"021";
+ligtable "[": "["=:oct"074";
+ligtable "]": "]"=:oct"076";
+ligtable "`": "`"=:oct"134";
+ligtable "e": "0"=:oct"033", "1"=:oct"013", "2"=:oct"015";
+% following kerns seem not to actually work out
+% "b": "o": "r": "f": "o" kern -k#, "f" kern -k#, "e" kern -k#,
+% "c" kern -k#, "h" kern k#;
+ligtable "c": "1"=:oct"017", "h"=:"q";
+ligtable "d": "1"=:oct"016", "2"=:oct"012", "3"=:oct"036", "j"=:oct"016";
+ligtable "i": "0"=:oct"032", "1"=:oct"014";
+ligtable "j": "1"=:oct"037", "2"=:oct"030";
+ligtable "k": "h"=:"h";
+ligtable "l": "1"=:oct"011", "j"=:oct"011";
+ligtable "n": "1"=:oct"010", "j"=:oct"010";
+ligtable "p": "1"=:oct"176", "2"=:oct"177";
+ligtable "x": "q"=:"w", "c"=:"7";
+ligtable "y": "a"=:oct"037", "u"=:oct"030";
+ligtable "z": "1"=:oct"031", "h"=:oct"031";
+ligtable "s": "h"=:"x",
+ "m": "w": oct"012" kern -k#, oct"032" kern -k#, "c" kern -k#,
+ "g" kern -k#, "i" kern -k#, "k" kern -k#, "m" kern -k#,
+ "n" kern -k#, "p" kern -k#, "r" kern -k#, "v" kern -k#, "w" kern -k#,
+ "x" kern -k#, "y" kern -k#, oct"176" kern -k#, oct"177" kern -k#;
+
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ams/cyrfont.mf b/Master/texmf-dist/fonts/source/public/ams/cyrfont.mf
new file mode 100644
index 00000000000..2327bd1fab5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cyrfont.mf
@@ -0,0 +1,152 @@
+%% @metafontfile{
+%% filename="cyrfont.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "42137 152 775 6432"
+%% keywords="amsfonts, tex, metafont, cyrillic",
+%% abstract="This is the driver file for use with
+%% the cyrillic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Driver for WNCYR Washington Computer Modern Cyrillic
+
+font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+spanish_shriek=oct"016"; spanish_query=oct"017";
+
+mode_setup; font_setup;
+
+def cyrspread := 1.25dot_size enddef;
+
+numeric cyrflwd; cyrflwd=2hair;
+numeric cyrflht; if (designsize < 8pt): cyrflht=2slab; else: cyrflht=4slab; fi
+
+input cyrmax.mf; %input macro file
+input cyrilu; % input common shapes
+input cyrspu; % and special uppercase forms
+input cyrpunc; % and puctuation etc.
+input serb; % serbian & other chars
+input serbspu;
+input cyrspl; % and lowercase specials
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+%%% fine lower
+def lowerfit = -.15u enddef;
+def cyrspread = 1.125dot_size enddef;
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+font_setup; % now try again with |lower| settings
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+code_offset:=ASCII"a" - ASCII"A";
+numeric cyrflwd; cyrflwd=2hair;
+numeric cyrflht; cyrflht=4slab;
+
+% now input for lowercase of common shapes
+input cyrilu; % majuscules (in lowercase positions)
+
+code_offset:=8;
+input serb; % serbs and other chars
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2.5u#; % three degrees of kerning
+ligtable "K": "H"=:"H", "h"=:"H",
+ oct"021": "H": oct"005" kern k#, oct"025" kern k#,
+ "F" kern k#, "O" kern k#, "S" kern k#;
+ligtable "T": "S"=:"C", "s"=:"C",
+ oct"024": "G": "U": "A" kern kkk#,
+ "D" kern kkk#, "L" kern kk#, "C" kern kk#, "a" kern kk#,
+ "d" kern kk#, "e" kern kk#, "f" kern kk#, "o" kern kk#,
+ oct"005" kern kk#, oct"015" kern kk#, oct"025" kern kk#,
+ oct"035" kern kk#, "." kern kk#, "," kern kk#, ";" kern kk#;
+ligtable "'": "'"=:oct"042";
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+ligtable "6": "h"=:"W", "H"=:"W";
+ligtable "7": "h"=:"w";
+ligtable "A": oct"000": oct"001": oct"136": oct"137": oct"024" kern kk#,
+ oct"006" kern kk#, oct"007" kern kk#, "Q" kern kk#, oct"137" kern kk#;
+ligtable "C": "1"=:oct"007", "H"=:"Q", "h"=:"Q";
+ligtable "D": "1"=:oct"006", "2"=:oct"002", "3"=:oct"026",
+ "J"=:oct"006", "j"=:oct"006";
+ligtable "E": "0"=:oct"023", "1"=:oct"003", "2"=:oct"005";
+ligtable "I": "0"=:oct"022", "1"=:oct"004";
+ligtable "J": "1"=:oct"027", "2"=:oct"020";
+ligtable "L": "1"=:oct"001", "J"=:oct"001", "j"=:oct"001";
+ligtable "N": "0"=:oct"175", "1"=:oct"000", "J"=:oct"000", "j"=:oct"000";
+ligtable "O": oct"003": "F": "O" kern -k#, "F" kern -k#, oct"005" kern -k#,
+ oct"025": "H" kern k#, "A" kern k#, "U" kern k#, oct"024" kern k#,
+ "T" kern k#;
+ligtable "P": "1"=:oct"136", "2"=:oct"137";
+ligtable "t": "s"=:"c",
+ "R": oct"005" kern k#, oct"025" kern k#,
+ oct"034": "g": "u": oct"035" kern k#,
+ "a" kern k#, "d" kern k#, "e" kern k#, "f" kern k#,
+ "l" kern k#, "o" kern k#, "s" kern k#, oct"015" kern k#,
+ oct"035" kern k#, "." kern kk#, "," kern kk#, ";" kern kk#;
+
+ligtable "S": "H"=:"X", "h"=:"X";
+ligtable "X": "Q"=:"W", "q"=:"W", "C"=:"6", "c"=:"6";
+ligtable "Y": "A"=:oct"027", "a"=:oct"027", "U"=:oct"020", "u"=:oct"020";
+ligtable "Z": "1"=:oct"021", "H"=:oct"021", "h"=:oct"021";
+ligtable "[": "["=:oct"074";
+ligtable "]": "]"=:oct"076";
+ligtable "`": "`"=:oct"134";
+ligtable "e": "0"=:oct"033", "1"=:oct"013", "2"=:oct"015",
+ "b": "o": "r": "f": "h" kern k#;
+% "b": "o": "r": "f": "o" kern -k#, "f" kern -k#, "e" kern -k#, "c" kern -k#,
+ligtable "c": "1"=:oct"017", "h"=:"q";
+ligtable "d": "1"=:oct"016", "2"=:oct"012", "3"=:oct"036", "j"=:oct"016";
+ligtable "i": "0"=:oct"032", "1"=:oct"014";
+ligtable "j": "1"=:oct"037", "2"=:oct"030";
+ligtable "k": "h"=:"h";
+ligtable "l": "1"=:oct"011", "j"=:oct"011";
+ligtable "n": "1"=:oct"010", "j"=:oct"010";
+ligtable "p": "1"=:oct"176", "2"=:oct"177";
+ligtable "x": "q"=:"w", "c"=:"7";
+ligtable "y": "a"=:oct"037", "u"=:oct"030";
+ligtable "z": "1"=:oct"031", "h"=:oct"031";
+ligtable "s": "h"=:"x",
+ "m": "w": oct"012" kern -k#, oct"032" kern -k#, "c" kern -k#,
+ "g" kern -k#, "i" kern -k#, "k" kern -k#, "m" kern -k#,
+ "n" kern -k#, "p" kern -k#, "r" kern -k#, "v" kern -k#, "w" kern -k#,
+ "x" kern -k#, "y" kern -k#, oct"176" kern -k#, oct"177" kern -k#;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ams/cyrilu.mf b/Master/texmf-dist/fonts/source/public/ams/cyrilu.mf
new file mode 100644
index 00000000000..ab9cb1f3e60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cyrilu.mf
@@ -0,0 +1,632 @@
+%% @metafontfile{
+%% filename="cyrilu.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "30438 632 2427 29570"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the driver file for use with
+%% the cyrillic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This file contains definitions of letters that have the same shapes in
+% both upper and lower case.
+
+cmchar "The Russian letter TSE";
+beginchar("C",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ r_cyr_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower left serif
+else:
+ lcyrsanserif(4); lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(slab,90); filldraw stroke z2'e--z4'e;
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Russian letter DE";
+beginchar("D",13u#,cap_height#,0);
+adjust_fit(.25u#,.75u#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(w-3u); top y1=h; bot y2=0;
+x3=u+.75cap_jut; bot y3l=0; pos3(cap_hair,90); lft x3'l=x3l; bot y3'=0;
+if serifs: pos3'(1.5cap_hair,0); else: pos3'(cap_hair,0); fi
+x5=.42[x3,x1]; top y5=h;
+if serifs: pos5(1.5cap_hair,0); else: pos5(cap_hair,0); fi
+filldraw stroke z1e--z2e;
+filldraw stroke z3'e{z1-z3}...{up}z5e;
+bot y4l=0; x4=x2r; pos4(cap_hair,90);
+%filldraw stroke z3e--z4e;
+pickup crisp.nib;
+top y6=h; x6-.75cap_jut=rt x1r; pos6(slab,90);
+x9=x5; y9r=0; pos9(cap_hair,90);
+if serifs:
+ numeric inner_jut;
+ inner_jut=.5(x1-x5);
+ nodish_serif(5,9,aa,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(1,2,ae,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ inner_jut:=.5(x2-x3);
+ l_cyr_serif(3',1,ac,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ r_cyr_serif(2,1,ag,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+else:
+ cyrsanserif(3'); lcyrsanserif(2);
+ x5'=lft x5l; top y5'=h; pos5'(slab,90);
+ filldraw stroke z3e--z4e; filldraw stroke z5'e--z6e;
+fi
+endchar;
+
+cmchar "The Russian letter GHE (looks like Gamma)";
+beginchar("G",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u);
+fi
+%arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); % lower serif
+fi
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The Russian letter KHA (looks like X)";
+beginchar("H",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; % right diagonal
+fi
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); % lower left serif
+fi
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The Russian letter I (looks like backwards N)";
+beginchar("I",14u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: penpos5(.85cap_stem,90); penpos6(.85cap_stem,90);
+else: penpos5(cap_stem,90); penpos6(cap_stem,90);
+fi
+x5=x1r; x6=x3l; if serifs: y5=.1h; y6=.9h; else: bot y5l=0; top y6r=h; fi
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower left serif
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+% The letter "K" is the last character defined in this file.
+% See below for comments.
+
+cmchar "The Russian letter EL";
+beginchar("L",13u#,cap_height#,0);
+adjust_fit(0,1.5u#);
+numeric ldot_size; ldot_size=1.15flare;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(w-3u); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e;
+if serifs:
+ numeric inner_jut; inner_jut=.5(x1-x5);
+ x4=u+.5ldot_size; x3=x4+.5ldot_size; bot y3r=0; pos3(1.5cap_hair,-90);
+ x5=.42[x4,x1]; top y5=h; pos5(1.5cap_hair,0); pos4(ldot_size,-180);
+ pos10(hair,-180);
+ filldraw stroke z3e{right}...{up}z5e;
+ y4=ldot_size; bulb(3,10,4);
+ dish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut);
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut);
+ top y6=h; x6-.75cap_jut=rt x1r; pos6(slab,90);
+ x5'+.5cap_jut=lft x5l; top y5'=h; pos5'(slab,90);
+ x9=x5; y9=0; pos9(cap_hair,0);
+ nodish_serif(5,9,aa,1/3,cap_jut,ab,1/3,inner_jut); % upper left serif
+else:
+ x5r=hround u; bot y5r=vround(.06h-o); bot y4r=-o; x4r=.35[x5,x3r];
+ x3=x5+3flare; top y3=h; lft x3'=lft x3l; top y3'r=h; rt x1'r=rt x1r;
+ top y1'r=h; pos3'(slab,90); pos1'(slab,90); pos5(flare,-120); pos4(vair,-90);
+ pos3(hair,0);
+ filldraw stroke z5e...{right}z4e...{up}z3e;
+ filldraw stroke z3'e--z1'e;
+fi
+endchar;
+
+cmchar "The Russian letter EM";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "The Russian letter EN (looks like H)";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Russian letter PE (looks like PI)";
+beginchar("P",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower left serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+else:
+ lft x1'= lft x1l; top y1'r=h; pos1'(slab,90);
+ rt x3'=rt x3r; y3'=y1'; pos3'(slab,90); filldraw stroke z1'e--z3'e;
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Russian letter CHE";
+beginchar("Q",14u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; %bot y2=x_height;
+bot y4=0;
+x22=x3; y22=.65h; %x_height-.25bar_height;
+pos22(cap_bar,90); y2=y22;
+filldraw stroke z1e--z2e{down}...{1,2}z22e; % left stem and bowl
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+% dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Russian letter TE";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Russian letter VE (looks like B)";
+beginchar("V",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The Russian letter SHCHA";
+beginchar("W",19u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0); pos5(cap_stem,0); pos6(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+z5=.5[z1,z3]; z6=.5[z2,z4];
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x5l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ inner_jut:=.5(x3l-x5r);
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+ r_cyr_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+else:
+ lcyrsanserif(4); lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(slab,90); filldraw stroke z2'e--z4'e;
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Russian letter SHA";
+beginchar("X",19u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0); pos5(cap_stem,0); pos6(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+z5=.5[z1,z3]; z6=.5[z2,z4];
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z5e--z6e; % center stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x5l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x5l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(5,6,i,1/3,inner_jut,j,1/3,inner_jut); % upper center serif
+ inner_jut:=.5(x3l-x5r);
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(6,5,k,1/3,inner_jut,m,1/3,inner_jut); % lower center serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+else:
+ lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(slab,90); filldraw stroke z2'e--z4'e;
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Russian letter ERY";
+beginchar("Y",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,if serifs: 5u# else: 4.25u# fi);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pickup tiny.nib;
+x80=x81=w if serifs: +2u else: +1.25u fi; top y80=h; bot y81=0; pos80(cap_stem,0); pos81(cap_stem,0);
+filldraw stroke z80e--z81e;
+if serifs:
+ dish_serif(80,81,e,1/3,cap_jut,f,1/3,cap_jut);
+ dish_serif(81,80,g,1/3,cap_jut,h,1/3,cap_jut);
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The Russian letter ZE (looks like numeral 3)";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+lft x1r=hround 1.25u; y1=.8h;
+if serifs: pos1(cap_hair,180); pos9(cap_hair,-180); else: pos1(1.5cap_hair,135); pos9(1.5cap_hair,-135); fi
+ lft x9r=hround .75u; y9=.2h;
+filldraw stroke z1e{x2-x1,10(y2-y1)}...{right}z2e & pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull)
+ & z8e{left}....{up}z9e; % lower bowl %this line added for changing bulb to barb
+if serifs: numeric bulb_diam[];
+ %bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ %pos0(bulb_diam1,180); pos1(hair,180);
+ %lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ % bulb(2,1,0); % upper bulb
+ %pos10(bulb_diam2,-180);
+ % bulb(8,9,10); % lower bulb
+% barbs on end of strokes
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..{right}z2;
+ path lower_arc; lower_arc=z8{left}....{up}z9;
+ pos20(hair,0); x20r=x1l; top y20=top y2r; x1'-x1l=1.6cap_curve; y1'=y1;
+ numeric t; t=xpart(upper_arc intersectiontimes (z20r--z1'));
+ filldraw z1r--z20l--z20r--subpath(t,0) of upper_arc--cycle;
+ pos30(hair,0); x30r=x9l; bot y30=bot y8r; x9'-x9l=1.6cap_curve; y9'=y9;
+ t:=xpart(lower_arc intersectiontimes (z30r--z9'));
+ filldraw z9r--z30l--z30r--subpath(t,1) of lower_arc--cycle;
+%else: %pos1(.5[vair,flare],angle(-8u,h));
+ %lft x1r=hround u; bot y1l=vround .75h+o;
+ %y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ %pos9(bot_thickness,angle(-2u,-h));
+ %lft x9r=hround .75u; top y9l=vround .25h-o;
+ %y9r:=good.y y9r-eps; x9l:=good.x x9l;
+% filldraw stroke term.e(2,1,left,1,4); % upper terminal
+% filldraw stroke term.e(8,9,left,1,4);
+fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The Russian letter Soft Sign";
+beginchar(oct"136",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The Russian letter Hard Sign";
+beginchar(oct"137",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(if serifs: 4 else: 2 fi u#+cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+%fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pickup crisp.nib;
+top y55r=h; x55=x1; pos55(slab,90); pos56(hair,180); x56=x1-if serifs: 6 else: 3 fi u;
+y56=good.y(y55l-beak)-eps;
+arm(55,56,q,beak_darkness**.8,-.4beak_jut);
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+% The shape "K" is saved as a picture, to be used by the next file input.
+% It is defined here to minimize storage time.
+cmchar "The Russian letter KA";
+beginchar("K",12u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,.25u#);
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+% pickup fine.nib; pos3(vair,90); x3=x1; y3=.55h; x3'=x3; y3'=y3+1; pos3'(slab,90);
+ pickup fine.nib; pos3(vair,90); x3=x1; y3=.55h; z3'=z3; pos3'(varwid,90);
+% pos4(vair,90); x4=w-2u; top y4r=h+oo;
+ pos4(varwid,90); x4=w-.75flare-.125u; top y4r=h+oo; %original x4=w-2u
+% filldraw stroke z3'e{right}..{right}z4e; % upper diagonal
+ x41=x4; y41=y3'; x42=x4-2u; y42=y4;
+ filldraw stroke z3'e..controls z41 and z42..z4e; % upper diagonal
+ pos5(hair,0); pos6(flare,0);
+ rt x5r=hround(w-.125u); y5+.5flare=vround(top y4r-hair)+1; %original bot y4l-.03h
+ top y4'r=top y4r; x4'=x4; pos4'(hair,90);
+ bulb(4',5,6); % bulb
+% pos7(stem,0); pos8(vair,90); pos9(hair,180);
+ pos7(stem,0); pos8(varwid,90); pos9(hair,180);
+ x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+ lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+ filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+else:
+ numeric right_jut,stem[],alpha[];
+ right_jut=.4tiny;
+ pickup tiny.nib;
+ stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+ stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+ top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+ bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+ x4=x1; y4=1/3h;
+ alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+ penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+ alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+ penpos6(alpha2*(stem2-tiny),0);
+ forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+%forsuffixes $=l,r: x5$:=x5$+.5u; y5$:=y5$-.5u; endfor
+ z5=.5[z5l,z5r];
+ z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+ % we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+ z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+ z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+% fill z4r{right}..diag_end(4r,3'r,1,.5,3'l,4l)..{left}z4l--cycle; % upper diagonal
+ fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+ fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+fi
+picture K_pic; K_pic=currentpicture;
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ams/cyrital.mf b/Master/texmf-dist/fonts/source/public/ams/cyrital.mf
new file mode 100644
index 00000000000..9dc7f71ce3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cyrital.mf
@@ -0,0 +1,134 @@
+%% @metafontfile{
+%% filename="cyrital.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "12745 134 713 5820"
+%% keywords="amsfonts, tex, metafont, cyrillic",
+%% abstract="This is the driver file for use with
+%% the italic cyrillic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is CYRITAL.MF in text format, as of May 5, 1986.
+% The Cyrillic Modern Text Italic family
+% (by T.B. RIDGEWAY, borrowing heavily from D. E. Knuth, 1979--1985)
+% Intellectual Property Rights owned by Humanities and Arts Computing Center,
+% University of Washington
+
+mode_setup; font_setup;
+font_coding_scheme:="TeX text without f-ligatures";
+
+def cyrspread = 1.125dot_size enddef;
+numeric cyrflwd; cyrflwd=1.5hair;
+numeric cyrflht; cyrflht=3slab;
+
+input cyrmax;
+altaccent:=true;
+input cyrilu; % input common shapes
+input serb; % serbian & other chars
+input cyrspu; % and special uppercase forms
+input cyrpunc; % and puctuation etc.
+input serbspu;
+def cyrspread = 1.125dot_size enddef;
+input cyrti; % lower case (minuscules)
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2.5u#; % three degrees of kerning
+ligtable "K": "H"=:"H", "h"=:"H",
+ oct"021": "H": oct"005" kern k#, oct"025" kern k#,
+ "F" kern k#, "O" kern k#, "S" kern k#;
+ligtable "T": "S"=:"C", "s"=:"C",
+ oct"024": "G": "U": "A" kern kkk#,
+ "D" kern kkk#, "L" kern kk#, "C" kern kk#, "a" kern kk#,
+ "d" kern kk#, "e" kern kk#, "f" kern kk#, "o" kern kk#,
+ oct"005" kern kk#, oct"015" kern kk#, oct"025" kern kk#,
+ oct"035" kern kk#, "." kern kk#, "," kern kk#, ";" kern kk#;
+ligtable "'": "'"=:oct"042";
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+ligtable "6": "h"=:"W", "H"=:"W";
+ligtable "7": "h"=:"w";
+ligtable "A": oct"000": oct"001": oct"136": oct"137": oct"024" kern kk#,
+ oct"006" kern kk#, oct"007" kern kk#, "Q" kern kk#, oct"137" kern kk#;
+ligtable "C": "1"=:oct"007", "H"=:"Q", "h"=:"Q";
+ligtable "D": "1"=:oct"006", "2"=:oct"002", "3"=:oct"026",
+ "J"=:oct"006", "j"=:oct"006";
+ligtable "E": "0"=:oct"023", "1"=:oct"003", "2"=:oct"005";
+ligtable "I": "0"=:oct"022", "1"=:oct"004";
+ligtable "J": "1"=:oct"027", "2"=:oct"020";
+ligtable "L": "1"=:oct"001", "J"=:oct"001", "j"=:oct"001";
+ligtable "N": "0"=:oct"175", "1"=:oct"000", "J"=:oct"000", "j"=:oct"000";
+ligtable "O": oct"003": "F": "O" kern -k#, "F" kern -k#, oct"005" kern -k#,
+ oct"025": "H" kern k#, "A" kern k#, "U" kern k#, oct"024" kern k#,
+ "T" kern k#;
+ligtable "P": "1"=:oct"136", "2"=:oct"137";
+ligtable "t": "s"=:"c",
+ "R": oct"005" kern k#, oct"025" kern k#,
+ oct"034": "g": "u": oct"035" kern k#,
+ "a" kern k#, "d" kern k#, "e" kern k#, "f" kern k#,
+ "l" kern k#, "o" kern k#, "s" kern k#, oct"015" kern k#,
+ oct"035" kern k#, "." kern kk#, "," kern kk#, ";" kern kk#;
+
+ligtable "S": "H"=:"X", "h"=:"X";
+ligtable "X": "Q"=:"W", "q"=:"W", "C"=:"6", "c"=:"6";
+ligtable "Y": "A"=:oct"027", "a"=:oct"027", "U"=:oct"020", "u"=:oct"020";
+ligtable "Z": "1"=:oct"021", "H"=:oct"021", "h"=:oct"021";
+ligtable "[": "["=:oct"074";
+ligtable "]": "]"=:oct"076";
+ligtable "`": "`"=:oct"134";
+ligtable "e": "0"=:oct"033", "1"=:oct"013", "2"=:oct"015",
+ "b": "o": "r": "f": "o" kern -k#, "f" kern -k#, "e" kern -k#,
+ "c" kern -k#, "h" kern k#;
+ligtable "c": "1"=:oct"017", "h"=:"q";
+ligtable "d": "1"=:oct"016", "2"=:oct"012", "3"=:oct"036", "j"=:oct"016";
+ligtable "i": "0"=:oct"032", "1"=:oct"014";
+ligtable "j": "1"=:oct"037", "2"=:oct"030";
+ligtable "k": "h"=:"h";
+ligtable "l": "1"=:oct"011", "j"=:oct"011";
+ligtable "n": "1"=:oct"010", "j"=:oct"010";
+ligtable "p": "1"=:oct"176", "2"=:oct"177";
+ligtable "x": "q"=:"w", "c"=:"7";
+ligtable "y": "a"=:oct"037", "u"=:oct"030";
+ligtable "z": "1"=:oct"031", "h"=:oct"031";
+ligtable "s": "h"=:"x",
+ "m": "w": oct"012" kern -k#, oct"032" kern -k#, "c" kern -k#,
+ "g" kern -k#, "i" kern -k#, "k" kern -k#, "m" kern -k#,
+ "n" kern -k#, "p" kern -k#, "r" kern -k#, "v" kern -k#, "w" kern -k#,
+ "x" kern -k#, "y" kern -k#, oct"176" kern -k#, oct"177" kern -k#;
+
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ams/cyrmax.mf b/Master/texmf-dist/fonts/source/public/ams/cyrmax.mf
new file mode 100644
index 00000000000..b32f34f69d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cyrmax.mf
@@ -0,0 +1,213 @@
+%% @metafontfile{
+%% filename="cyrmax.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "29827 213 804 8379"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the driver file for use with
+%% the cyrillic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def slantswitch =
+slant:=-slant;
+currenttransform:= identity slanted slant yscaled aspect_ratio scaled granularity;
+enddef; %reverse slant so that mirror() will work
+
+def lowerfit = 0 enddef;
+
+transform MIRROR;
+MIRROR=identity reflectedabout(origin,up);
+
+% produce a mirror image of current picture reflected about a vertical axis
+def mirror (expr axis) =
+currentpicture:=currentpicture transformed MIRROR shifted (2axis,0);
+slantswitch; % restore normal slant
+enddef;
+
+vardef armup(suffix $,$$,@)(expr darkness,jut) = % arm from |z$| to |z$$|
+ x@0=good.x(x$$r-jut); y@0=y$l;
+ if serifs: y@1=y$r; z@1=z$$r-whatever*(z@0-z$$r);
+ z@2=.5[z$r,z@1];
+ filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ]...z@2
+ ---z$r--z$l--z@0--z$$r--cycle; % arm and beak
+ else: filldraw z$l--z$r--z@0--z$$r--cycle; fi % sans-serif arm
+ penlabels(@0,@1,@2); enddef;
+
+def varwid =
+ if serifs: if hefty: vair else: 1.5cap_hair fi else: vair fi
+ enddef;
+
+
+vardef cyrsanserif(suffix $) =
+ x$.css.r=x$r; x$.css.l=x$l; x$.css=x$;
+ y$.css.r=y$r-2slab; y$.css.l=y$l-2slab; y$.css=y$-2slab;
+ filldraw stroke z$e--z$.css.e;
+enddef;
+
+vardef lcyrsanserif(suffix $) =
+ numeric cssdif; cssdif=.5(x$r-x$l); if cssdif<0: cssdif:=-cssdif; fi
+ x$'.css.r=x$r+cssdif; x$'.css.l=x$l+cssdif; x$'.css=x$+cssdif;
+ y$'.css.r=y$'.css.l=y$'.css=bot y$ + slab;
+ x$.css.r=x$r+cssdif; x$.css.l=x$l+cssdif; x$.css=x$+cssdif;
+ y$.css.r=y$r-2slab; y$.css.l=y$l-2slab; y$.css=y$-2slab;
+ filldraw stroke z$'.css.e--z$.css.e;
+enddef;
+
+vardef rcyrsanserif(suffix $) =
+ numeric cssdif; cssdif=.5(x$r-x$l); if cssdif<0: cssdif:=-cssdif; fi
+ x$'.css.r=x$r-cssdif; x$'.css.l=x$l-cssdif; x$'.css=x$-cssdif;
+ y$'.css.r=y$'.css.l=y$'.css=bot y$ + slab;
+ x$.css.r=x$r-cssdif; x$.css.l=x$l-cssdif; x$.css=x$-cssdif;
+ y$.css.r=y$r-2slab; y$.css.l=y$l-2slab; y$.css=y$-2slab;
+ filldraw stroke z$'.css.e--z$.css.e;
+enddef;
+
+numeric flouradjust; flouradjust=.09designsize;
+vardef cyr_serif(suffix $,$$,@) % serif at |z$| for stroke from |z$$|
+ (expr darkness,jut) suffix modifier =
+ pickup crisp.nib; numeric bracket_height; pair downward;
+ bracket_height=if dark.modifier: 1.5 fi\\ bracket;
+ if y$<y$$: y@2=min(y$+bracket_height,y$$);
+ top y@1-slab=bot y@0+eps=tiny.bot y$; downward=z$-z$$;
+ if y@1>y@2: y@2:=y@1; fi
+ else: y@2=max(y$-bracket_height,y$$);
+ bot y@1+slab=top y@0-eps=tiny.top y$; downward=z$$-z$;
+ if y@1<y@2: y@2:=y@1; fi fi
+ y@3=y@2; z@3=whatever[z$,z$$];
+ if jut<0: z@2+penoffset downward of currentpen =
+ z$l+penoffset downward of pen_[tiny.nib]+whatever*downward;
+ lft x@0=lft x@1=tiny.lft x$l+jut;
+ if x@3<x@2+eps: x@3:=x@2+eps; fi
+ else: z@2-penoffset downward of currentpen =
+ z$r-penoffset downward of pen_[tiny.nib]+whatever*downward;
+ rt x@0=rt x@1=tiny.rt x$r+jut;
+ if x@3>x@2-eps: x@3:=x@2-eps; fi fi
+ pair corner; ypart corner=y@1; corner=z@2+whatever*downward;
+ pair flourish; xpart flourish= x@0 if jut > 0: + cyrflwd else: - cyrflwd fi;
+ ypart flourish= y@0 - cyrflht;
+if (designsize < 15pt):
+ pair flourishcorner; xpart flourishcorner=flouradjust[x@2,(xpart flourish)];
+ ypart flourishcorner=ypart flourish; %if jut > 0: -1.5 else: +1.5 fi;
+ filldraw z@2{z$-z$$}
+ ...darkness[corner,.5[z@1,z@2] ]{z@1-z@2}
+ ...{jut,0}z@1--z@0{down}...{jut,-1}flourish--flourishcorner{-jut,0}
+ ...{-jut,0}(x$,y@0)--z@3--cycle; % the serif
+else: filldraw z@2{z$-z$$}
+ ...darkness[corner,.5[z@1,z@2] ]{z@1-z@2}
+ ...{jut,0}z@1--z@0{down}...{jut,-1}flourish{-jut,0}
+ ...{-jut,0}(x$,y@0)--z@3--cycle; % the serif
+fi
+ labels (@0,@1,@2,@3); enddef;
+
+
+def dish_cyr_serif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ cyr_serif($,$$,@,left_darkness,-left_jut) modifier;
+ cyr_serif($,$$,@@,right_darkness,right_jut) modifier;
+enddef;
+
+def l_cyr_serif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ cyr_serif($,$$,@,left_darkness,-left_jut) modifier;
+ serif($,$$,@@,right_darkness,right_jut) modifier;
+enddef;
+
+def r_cyr_serif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ serif($,$$,@,left_darkness,-left_jut) modifier;
+ cyr_serif($,$$,@@,right_darkness,right_jut) modifier;
+enddef;
+
+% cyrbrev is called with suffix, dummy_suffix e.g.
+% cyrbrev(2,q) where the breve will be centered
+% above x2 using dummy suffixes q_1, q_2 etc.
+def cyrbrev (suffix $,@) =
+pickup crisp.nib; pos@_1(vair,-180); pos@_3(vair,0);
+top y@_1=top y@_3=h;
+lft x@_1r=hround(x$-4u-.5vair); rt x@_3r=hround(x$+4u+.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos@_2(mid_thickness,-90); x@_2=x$;
+bot y@_2r=y$+dot_size;
+filldraw stroke z@_1e{down}...z@_2e{right}...{up}z@_3e; % stroke
+pos@_11(dot_size,0); pos@_12(dot_size,90);
+pos@_13(dot_size,0); pos@_14(dot_size,90);
+lft x@_11l=lft x@_1r; rt x@_13r=rt x@_3r; y@_11=y@_12=y@_13=y@_14=h;
+x@_12=x@_11; x@_14=x@_13; dot(@_11,@_12); dot(@_13,@_14);
+penlabels(@_1,@_2,@_3,@_11,@_13); enddef;
+
+boolean altaccent; altaccent=false; % altaccent inhibits right side dot
+def nucyrbrev (suffix $,@) =
+pickup crisp.nib; pos@_1(vair,-180); pos@_3(vair,0);
+top y@_1=top y@_3=y@_2r+cyrspread;
+lft x@_1r=hround(x$-4u-.5vair); rt x@_3r=hround(x$+4u+.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos@_2(mid_thickness,-90); x@_2=x$;
+bot y@_2r=y$+.5dot_size;
+filldraw stroke z@_1e{down}...z@_2e{right}...{up}z@_3e; % stroke
+
+if square_dots: % relax
+else:
+ pos@_11(dot_size,0); pos@_12(dot_size,90);
+ pos@_13(dot_size,0); pos@_14(dot_size,90);
+ lft x@_11l=lft x@_1r; rt x@_13r=rt x@_3r;
+ y@_11=y@_12=y@_13=y@_14=y@_2r+cyrspread;
+ x@_12=x@_11; x@_14=x@_13; dot(@_11,@_12);
+ if altaccent: % relax
+ else: dot(@_13,@_14); fi
+fi
+penlabels(@_1,@_2,@_3,@_11,@_13); enddef;
+
+% flip rotates 180 degrees about the centerpoint whose suffix is passed
+def flip (suffix $) =
+picture V; transform FLIP;
+y$:=y$*aspect_ratio;
+FLIP=identity rotatedaround(z$,180) shifted(2slant*y$,0);
+V=currentpicture transformed FLIP; currentpicture:=V;
+enddef;
+
+def dot_sharp_values =
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+numeric dot_top#; dot_top#=min(asc_height#,10/7x_height#+.5dot_diam#);
+enddef;
+
+
+% umlaut
+% calling specification is (xx,q) where xx is a point over which to center
+% the umlaut, q is a dummy suffix which may be used
+def umlaut (suffix $,@) =
+dot_sharp_values;
+define_whole_blacker_pixels(dot_diam);
+pickup tiny.nib; pos@_1(dot_diam,0); pos@_2(dot_diam,90);
+x@_1=x@_2=x$-dot_diam; top y@_2r=2dot_diam+y$;
+y@_1=.5[y@_2l,y@_2r];
+dot(@_1,@_2); % dot
+pos@_3(dot_diam,0); pos@_4(dot_diam,90);
+x@_3=x@_4=x$+1.75u; top y@_4r=2dot_diam+y$;
+y@_3=.5[y@_4l,y@_4r];
+dot(@_3,@_4); % dot
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/ams/cyrpunc.mf b/Master/texmf-dist/fonts/source/public/ams/cyrpunc.mf
new file mode 100644
index 00000000000..2914b0a5adb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cyrpunc.mf
@@ -0,0 +1,786 @@
+%% @metafontfile{
+%% filename="cyrpunc.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "52922 786 2797 33831"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the driver file for use with
+%% the cyrillic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% cyrpunc punctuation and digits for cyrillic
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Semicolon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+cmchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+cmchar "The numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+cmchar "The numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75h+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 4";
+beginchar("4",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab,h-light_stem]+1
+ else:.35(h-light_stem) fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=0;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(eps,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3h; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Umlaut (double dot) accent";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"040",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Closing quotes";
+beginchar(oct"042",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+cmchar "Cyrillic breve";
+beginchar(oct"044",8u#,x_height#+1.75dot_size#,0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=hround(.5u-.5vair); rt x3r=hround(w-.5u+.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround(x_height+.5dot_size);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+pos11(dot_size,0); pos12(dot_size,90); pos13(dot_size,0); pos14(dot_size,90);
+lft x11l=lft x1r; rt x13r=rt x3r; y11=y12=y13=y14=h;
+x12=x11; x14=x13; dot(11,12);
+% ngb changes:
+if altaccent: % relax
+else: dot(13,14); fi
+penlabels(1,2,3,11,13); endchar;
+
+%cmchar "Cyrillic breve";
+%beginchar(oct"044",9u#,min(asc_height#,2x_height#),0);
+%italcorr h#*slant+.5vair#-1.5u#;
+%adjust_fit(0,0);
+%pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+%top y1=top y3=h; lft x1r=hround(.5w-4u-.5vair); rt x3r=hround(.5w+4u+.5vair);
+%numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+%pos2(mid_thickness,-90); x2=.5w;
+%bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+%filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+%pos11(dot_size,0); pos12(dot_size,90); pos13(dot_size,0); pos14(dot_size,90);
+%lft x11l=lft x1r; rt x13r=rt x3r; y11=y12=y13=y14=h;
+%x12=x11; x14=x13; dot(11,12); dot(13,14);
+%penlabels(1,2,3,11,13); endchar;
+
+cmchar "Acute accent";
+beginchar(oct"046",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "open cyrillic quote (looks like <<)";
+beginchar(oct"074",10u#,x_height#,0);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x2=hround u-epsilon; x1=x3=.55w;
+y1=h; y3=0; y2=.5[y1,y3];
+draw z1--z2--z3; % left diagonals
+x4=w-x2; y4=.9[y3,y1]; y6=.1[y3,y1];
+x5-x2=x6-x3=x4-x1; y5=y2;
+draw z4--z5--z6; % right diagonals
+z2'=z2; x2':=x2-.625rule_thickness;
+z5'=z5; x5':=x5+.625rule_thickness;
+draw z1--z2'--z3; % left diagonals
+draw z4--z5'--z6; % right diagonals
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "close cyrillic quote (looks like >>)";
+beginchar(oct"076",10u#,x_height#,0);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib;
+%lft x2=.55w; x1=x3=hround u-epsilon;
+%y1=.9h; y3=.1h; y2=.5[y1,y3];
+%y4=h; y6=0; y5=.5[y4,y6];
+%draw z1--z2--z3; % left diagonals
+%x4=w-x2;
+%x5-x2=x6-x3=x4-x1;
+%draw z4--z5--z6; % right diagonals
+%z2'=z2; x2':=x2-.625rule_thickness;
+%z5'=z5; x5':=x5+.625rule_thickness;
+%draw z1--z2'--z3; % left diagonals
+%draw z4--z5'--z6; % right diagonals
+%labels(1,2,3,4,5,6);
+slantswitch;
+pickup rule.nib;
+lft x2=hround u-epsilon; x1=x3=.55w;
+y1=h; y3=0; y2=.5[y1,y3];
+draw z1--z2--z3; % left diagonals
+x4=w-x2; y4=.9[y3,y1]; y6=.1[y3,y1];
+x5-x2=x6-x3=x4-x1; y5=y2;
+draw z4--z5--z6; % right diagonals
+z2'=z2; x2':=x2-.625rule_thickness;
+z5'=z5; x5':=x5+.625rule_thickness;
+draw z1--z2'--z3; % left diagonals
+draw z4--z5'--z6; % right diagonals
+mirror(.5w);
+endchar;
+
+cmchar "Breve accent";
+beginchar(oct"100",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Opening quotes";
+beginchar(oct"134",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+cmchar "En dash";
+beginchar(oct"173",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Em dash";
+beginchar(oct"174",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "The symbol No.";
+beginchar(oct"175",15u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); w:=if serifs: 10u else: 11u fi;
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=h;
+if serifs: top y3=.79h; bot y2=.21h; else: top y3=h; bot y2=0; fi
+bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+x91=x2-.75flare; bot y91r=-oo; x92=w-x91; top y92l=h+oo;
+pos91(thin_stem,-90); pos92(thin_stem,-90);
+if serifs: filldraw stroke z1e--z2e & pulled_arc.e(2,91); % left stem
+ filldraw stroke z4e--z3e & pulled_arc.e(3,92); % right stem
+ else: filldraw stroke z1e--z2e; filldraw stroke z4e--z3e;
+fi
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+fi
+pickup tiny.nib;
+if serifs:
+ x93=x2-1.5flare; y93=.75flare; pos95(flare+(cap_stem-stem),-180);
+ x94=x3+1.5flare; y94=h-y93; pos96(flare+(cap_stem-stem),0);
+ pos92'(thin_stem,90); z92'=z92;
+ pos93(cap_hair,-180); pos94(cap_hair,0); bulb(91,93,95); bulb(92',94,96);
+fi
+w:=15u;
+penpos71(vair,90); penpos73(vair',-90);
+penpos72(.8curve,180); penpos74(.8curve,0);
+x72r=hround max(.5u,1.25u-.4curve)+9.5u;
+x74r=w-x72r+9u; x71=x73=12u; y71r=h-3u+vround 1.5oo; y73r=x_height-3u-oo;
+y72=y74=.5[h,x_height]-3u-vair_corr; y72l:=y74l:=.52[h,x_height]-3u;
+penstroke pulled_arc.e(71,72) & pulled_arc.e(72,73)
+ & pulled_arc.e(73,74) & pulled_arc.e(74,71) & cycle; % bowl
+x81=lft x72r; x82=rt x74r; y81=y82=.8x_height-3u; pos81(bar,90); pos82(bar,90);
+filldraw stroke z81e--z82e;
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ams/cyrspl.mf b/Master/texmf-dist/fonts/source/public/ams/cyrspl.mf
new file mode 100644
index 00000000000..0035ccc6a26
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cyrspl.mf
@@ -0,0 +1,480 @@
+%% @metafontfile{
+%% filename="cyrspl.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "58605 480 1902 22521"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the driver file for use with
+%% the cyrillic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Cyrspl special lowercase cyrillic forms, incl. o
+
+cmchar "The Ukrainian letter i";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"014",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(dot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter dj (looks like barred h with tail)";
+beginchar(oct"016",9.5u#,asc_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(u#+serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+fi
+pickup crisp.nib;
+x98=0; x99=hround(w-u); y98=y99=.5x_height+.5h; pos98(bar,90); pos99(bar,90);
+filldraw stroke z98e--z99e;
+pickup tiny.nib;
+%w:=12u;
+x23=hround(w-u); y23=bar_height; %2/3[x_height,bar_height];
+if serifs: pos23(.9stem,0) else: pos23(stem,0) fi;
+rt x20l=rt x2r; y20=7/8[x_height,bar_height]; pos20(hair,180);
+x21=.45[x20,x23]; top y21r=x_height+oo; pos21(hair,90);
+pos24(cap_hair,-90);
+%if serifs: x24=.45[x20,x23] else: x24=.55[x20,x23] fi;
+lft x24r=rt x2r; %even with right edge of stem;
+bot y24r=-d;
+%filldraw stroke z20e...{right}z21e{right}...z23e{down}...{-6,-3}z24e;
+filldraw stroke z20e...{right}z21e & pulled_arc.e(21,23) & pulled_arc.e(23,24);
+penlabels(1,2,3,4,20,21,23,24); endchar;
+
+cmchar "The Serbian letter soft t (looks like barred h)";
+beginchar(oct"017",11u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#+serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+pickup crisp.nib;
+x98=0; x99=x4; y98=y99=.5x_height+.5h; pos98(bar,90); pos99(bar,90);
+filldraw stroke z98e--z99e;
+penlabels(1,2,3,4); endchar;
+
+cmchar "The Russian letter yo (looks like e umlaut)";
+beginchar(oct"033",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+umlaut(2,q);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The Old Russian letter yatz";
+beginchar(oct"053",11u#,body_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(u#+serif_fit#,0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(max(2u,3u-.5stem)); top y1=h-1.5jut; bot y2=0;
+filldraw stroke z1e--z2e; % body of stem
+penpos8(.5[vair,bar],90); penpos9(.5[vair,bar],90);
+penpos10(curve,0); penpos11(slab,-90); penpos12(slab,-90);
+y9=y8=.5[bar_height,x_height]; x9=x11=.5[x1,w-1.5u];
+y12r= y11r=0; y10=.5[y11,y9];
+x9l:=x9l-.5u; x11l:=x11l-.5u; x8=x12=x1; x10r=hround(w-u);
+fill stroke z8e..super_arc.e(9,10)& super_arc.e(10,11)..z12e; %bowl
+if serifs: nodish_serif(2,1,a,1/3,jut,b,1/3,.5jut) ; fi
+%
+pickup tiny.nib;
+x71=x1l-2.5u; x72=x1r+2.5u; y71r=y72r=y1- if serifs: 1.5u else: 2u fi;
+pos71(slab,90); pos72(slab,90); filldraw stroke z71e--z72e; % cross
+lft x991l=lft x1l;rt x991r=rt x1r; y991r=y991l=y1;
+x92=x1l-jut; x93=x1r+jut; y92=y93=y1+2jut;
+if hefty: filldraw z1l--z92--z1r--cycle; filldraw z1l--z93--z1r--cycle; else:
+filldraw z991l--z92--z991r--cycle; filldraw z991l--z93--z991r--cycle; fi
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter dotless i";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("=",5u#,x_height#,0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(dot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; %dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The Russian letter a";
+beginchar("a",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The Russian letter be";
+beginchar("b",9u#,asc_height#,0);
+italcorr .7asc_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: .5u#,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+x2'r=x2r; pos2'(vair,180); y2'=y2;
+x20r=x2r+1.525u; y20=.55[y1,y22]; pos20(stem,135);
+x21=x22-1.5u; y21=y20+.5u; pos21(stem,135); x22l=w-u; top y22r=h+1.5oo;
+pos22(hair,110);
+filldraw circ_stroke z2'e{up}...z20e...z21e...{up}z22e;
+penlabels(1,2,3,4); endchar;
+
+cmchar "The Russian letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The Russian letter ef (looks like phi)";
+beginchar("f",11u#,asc_height#,asc_height#-x_height#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric phistem; phistem= if serifs: .825 fi stem;
+pickup tiny.nib; pos1(phistem,0); pos2(phistem,0);
+x1=hround .5w; x1=x2; top y1=h-2jut; bot y2=-d+2jut;
+pos10(hair,0); pos11(hair,90); pos12(curve,180);
+ pos13(hair,270); pos14(hair,0);
+x10l=x14l=x1l; x12r=u; x11=x13=.5[x1,x12];
+ y10=.65x_height; top y11r=x_height+oo;
+bot y13r=-oo; y12=.5x_height; y14=.35x_height;
+filldraw stroke pulled_arc.e(10,11) & pulled_arc.e(11,12)
+ & pulled_arc.e(12,13) & pulled_arc.e(13,14);
+filldraw stroke z1e--z2e; % stem
+%if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+% dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+if serifs:
+ x1'r=rt x1r; x1'l=lft x1l; y1'r=y1'l=y1;
+ x2'r=rt x2r; x2'l=lft x2l; y2'r=y2'l=y2;
+ pickup crisp.nib;
+ x41=x42=x1-jut; y41=h; y42=-d;
+ if hefty: filldraw z1l--z41--z1r--cycle; filldraw z2l--z42--z2r--cycle; else:
+ filldraw z1'l--z41--z1'r--cycle; filldraw z2'l--z42--z2'r--cycle; fi
+fi
+picture phicirc; phicirc=currentpicture; currentpicture:=nullpicture;
+slantswitch; clearxy;
+numeric phistem; phistem= if serifs: .825 fi stem;
+pickup tiny.nib; pos1(phistem,0); pos2(phistem,0);
+x1=hround .5w; x1=x2; top y1=h-2jut; bot y2=-d+2jut;
+pos10(hair,0); pos11(hair,90); pos12(curve,180);
+ pos13(hair,270); pos14(hair,0);
+x10l=x14l=x1l; x12r=u; x11=x13=.5[x1,x12];
+ y10=.65x_height; top y11r=x_height+oo;
+bot y13r=-oo; y12=.5x_height; y14=.35x_height;
+filldraw stroke pulled_arc.e(10,11)&pulled_arc.e(11,12)&pulled_arc.e(12,13)&pulled_arc.e(13,14);
+filldraw stroke z1e--z2e; % stem
+%if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+% dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+if serifs:
+ x1'r=rt x1r; x1'l=lft x1l; y1'r=y1'l=y1;
+ x2'r=rt x2r; x2'l=lft x2l; y2'r=y2'l=y2;
+ pickup crisp.nib;
+ x41=x42=x1-jut; y41=h; y42=-d;
+ if hefty: filldraw z1l--z41--z1r--cycle; filldraw z2l--z42--z2r--cycle; else:
+ filldraw z1'l--z41--z1'r--cycle; filldraw z2'l--z42--z2'r--cycle; fi
+fi
+mirror(x1); addto currentpicture also phicirc;
+endchar;
+
+cmchar "The Serbian letter je";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("j",5.5u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The Russian letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The Russian letter er (looks like p)";
+beginchar("r",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The Russian letter es (looks like c)";
+beginchar("s",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The Russian letter u (looks like y)";
+beginchar("u",if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ams/cyrspu.mf b/Master/texmf-dist/fonts/source/public/ams/cyrspu.mf
new file mode 100644
index 00000000000..dfe9f25b944
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cyrspu.mf
@@ -0,0 +1,284 @@
+%% @metafontfile{
+%% filename="cyrspu.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "54447 284 1071 13384"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the driver file for use with
+%% the cyrillic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% cyrspu Uppercase forms having distinct lowercase forms
+% including O
+
+cmchar "The Russian letter A";
+beginchar("A",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The Russian letter B";
+beginchar("B",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib;
+top y3r=h; x3=x1; pos3(slab,90);
+rt x45r=hround(w-2u); y45=good.y(y3l-beak) - eps; pos45(hair,0);
+arm(3,45,e,beak_darkness,beak_jut);
+pickup tiny.nib;
+penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The Russian letter E";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The Russian letter EF (looks like Phi)";
+beginchar("F",13u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem,light_curve;
+shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+%lft x1l=lft x2l=hround(.5w-.5cap_stem);
+x1=x2=.5w;
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5];
+y5r=vround(.15h if serifs:+slab fi);
+penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Serbian letter JE";
+beginchar("J",9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The Russian letter O";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The Russian letter ER (looks like P)";
+beginchar("R",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The Russian letter ES (looks like C)";
+if serifs: beginchar("S",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar("S",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The Russian letter U (looks like Y)";
+beginchar("U",if serifs:13.5u# else:13u# fi,cap_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=cap_stem-stem_corr;
+right_stem=1.25cap_hair if hefty:-2stem_corr fi;
+bot_stem=1.25cap_hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=.3h; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>cap_notch_cut+y2: y0:=cap_notch_cut+y2; % +y2 added for sanserif face
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5+.5vair=.65y2;
+if serifs: numeric light_bulb; light_bulb=hround 1.1[hair,flare]; clearpen; %7/8[hair,flare]
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=.4[x8,x5]; y6r=-oo; y8-.5light_bulb=.5y2; x8r=hround 1.35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ams/cyrti.mf b/Master/texmf-dist/fonts/source/public/ams/cyrti.mf
new file mode 100644
index 00000000000..3c7c23d18e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/cyrti.mf
@@ -0,0 +1,1060 @@
+%% @metafontfile{
+%% filename="cyrti.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "09397 1060 4002 47751"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the driver file for use with
+%% the cyrillic italic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%cyrti.mf
+
+cmchar "Italic Serbian letter Soft n (looks like hb)";
+beginchar(oct"010",6u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(5u#,0); pickup tiny.nib; w:=6u;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(u-.5stem); top y1=h; y2=.6bar_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+x80=-5u; x82-.5stem=hround(-2u-.5stem); hook_in(80,81,82);
+z83=z82; x84=x83; y84-.5stem=-oo;
+pos83(stem,0); pos84(stem,0); filldraw circ_stroke z84e--z83e;
+x85=x83; y85=y86=bar_height; x86=x0; pos85(hair,90); pos86(hair,90);
+filldraw stroke z85e--z86e;
+%y11=y1; x11=x1-4.5u; x12=x11; pos11(stem,0); x14=-.5u;
+%hook_out(12,13,14);
+%sloped_serif.l(11,12,b,1/3,jut,serif_drop); % serif
+%filldraw stroke z11e--z12e;
+%x89=x11; y89=.75[y2,y3]; x90=x0; y90=y89; pos89(hair,90); pos90(hair,90);
+%filldraw stroke z89e--z90e;
+endchar;
+
+cmchar "Italic Serbian letter soft l";
+beginchar(oct"011",12u#,x_height#,0);
+adjust_fit(.5u#,.5u#); pickup fine.nib; w:=9u;
+y1+.375stem=h; x1=.5[x3,x1']; x2=x3=3u; y3=.35h; y2=.75h;
+bot y4r=-oo; y1'=.8h; x1'l=w-2u;
+x4=.5[x6,x3]; y6-.5flare=.1h; pos6(flare,-180);
+pos5(hair,-180); lft x6r=-.25u; z5r=z6r;
+pos4(vair,-90); pos2(hair,0); pos3(hair,0); pos1(.75stem,-90);
+x7=x1'; pos1'(stem,180); pos7(stem,0);
+z11=z1'; pos11(stem,0); y7=.6bar_height;
+bulb(4,5,6);
+filldraw stroke pulled_arc.e(4,3) & super_arc.e(3,1) & super_arc.e(1,1');
+filldraw stroke z11e..z7e; w:=12u;
+x23=x25=.5[x7,x24]; rt x24r=hround(w-u+.5curve);
+bot y23r=-oo; top y25r=1.2bar_height+oo; y24=y7; z7'=z7; pos7'(stem,-180);
+z20=z7; pos20(hair,180); pos23(vair,-90); pos24(curve,0); pos25(vair,90);
+filldraw stroke pulled_arc.e(7',23) & pulled_arc.e(23,24)
+ & pulled_arc.e(24,25) & super_arc.e(25,20); % bowl
+endchar;
+
+cmchar "Italic Serbian letter hard dj";
+beginchar(oct"012",9.5u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+%
+%x31=x7; y31=-.25d; x32=x3; y32=-.8d; x33=.25[x32,x31]; y33=-d;
+%pos31(vair,180); pos32(slab,270); pos33(hair,360);
+%filldraw stroke z4e{2,-1}...{down}z31e{down}...{down}z32e...{right}z33e;
+x31=x7; y31=-.25d; x32=x3; y32=-.8d; x33=x32-1.5u; y33=y32+u;
+pos31(vair,-180); pos32(.7stem,-270); pos33(hair,-360);
+filldraw stroke z4e{2,-1}...z31e...{left}z32e...z33e;
+%
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic Russian letter reverse e (looks like backwards c)";
+beginchar(oct"013",8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-.25u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x77=x4; y77=.5h; x78=2x77-x3; y78=2y77-y3;
+flip(77);
+y79=y78; x79=x78-(x1-x3);
+pos78(hair,90); pos79(hair,90);
+filldraw stroke z78e--z79e;
+endchar;
+
+cmchar "Italic Ukrainian letter i";
+beginchar(oct"014",5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+cmchar "Italic Ukrainian letter ye (looks like c with mid-line)";
+beginchar(oct"015",8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-.25u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x78=x3; y78=y3; y79=y78; x79=x1;
+pos78(hair,90); pos79(hair,90);
+filldraw stroke z78e--z79e;
+endchar;
+
+cmchar "Italic Serbian letter dj (looks like barred h with tail)";
+beginchar(oct"016",8u#,asc_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(1.5u#,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-.75u+.5stem);
+x5=x4; %x5=x4-.25u;
+ital_arch(2,3,4); % arch
+x7=.45[x2,x4]; bot y7r=-d; pos7(hair,-90);
+filldraw stroke pulled_arc.e(4,7);
+x98=-u; x99=x4; y98=y99=.5x_height+.5h; pos98(bar,90); pos99(bar,90);
+filldraw stroke z98e--z99e;
+%x7=w; hook_out(5,6,7)(skewed); % closing hook
+%filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic Serbian letter soft t (looks like barred h)";
+beginchar(oct"017",9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(1.5u#,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+x98=-u; x99=x4; y98=y99=.5x_height+.5h; pos98(bar,90); pos99(bar,90);
+filldraw stroke z98e--z99e;
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic Russian letter yu (looks like io)";
+beginchar(oct"030",12u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5[x2,x4]; lft x2r=hround(5.5u-.5curve); x4=w-hround(1.5u-.5curve);
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+x0=0; x22-.5stem=hround(3u-.5stem); hook_in(0,21,22);
+z23=z22; x24=x23; y24-.5stem=-oo;
+pos23(stem,0); pos24(stem,0); filldraw circ_stroke z24e--z23e;
+x25=x23; y25=y26=bar_height; x26=x2; pos25(hair,90); pos26(hair,90);
+filldraw stroke z25e--z26e;
+penlabels(0,1,2,3,4,21,23,24,25,26); endchar;
+
+cmchar "Italic Russian letter zhe";
+beginchar(oct"031",20u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+w:=8u;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+path mypath; mypath= pulled_arc.r(2,3) & pulled_arc.r(3,4);
+x200=0; y200=.75x_height; x201=18u; y201=y200;
+path newpath; newpath= z200--z201;
+z178r= newpath intersectionpoint mypath;
+x77=x4; y77=.5h; z78r=z178r rotatedaround(z77,180);
+x78r:=x78r-hair;
+flip(77); w:=20u;
+pos50(flare,0); pos51(hair,0); pos52(vair,90);
+pos53(curve,180); pos54(vair,270); pos55(hair,320);
+x52=x54=w-3.5u; rt x51r=max(rt x52,hround(w-u))+eps;
+lft x53r=hround(w-6.5u-.5curve); x55r=good.x(w-eps); x56=x55;
+y51=.5[bar_height,h]; top y52r=h+oo; bulb(52,51,50); % bulb
+bot y54r=-oo; y53=.5[y52,y54]; top y55l=vround .5bar_height; y56=bar_height;
+path p; p=z54{right}..z55..z56;
+filldraw stroke pulled_arc.e(52,53)
+ & pulled_arc.e(53,54)...{direction 1 of p}z55e; % arc
+path mynewpath; mynewpath= pulled_arc.r(52,53) & pulled_arc.r(53,54);
+x80=x81=.5[x78,x53]; y80=h-.5stem; y81=0;
+z79l=mynewpath intersectionpoint newpath;
+pos78(hair,0); pos79(hair,0); pos80(stem,0); pos81(stem,0);
+filldraw stroke z78e--z80e; filldraw circ_stroke z80e--z81e; filldraw stroke z79e--z81e;
+endchar;
+
+cmchar "Italic Russian letter short i (looks like breve u)";
+beginchar(oct"032",9.5u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super; h:=x_height;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+h:=asc_height;
+pickup crisp.nib; pos38_1(vair,-180); pos38_3(vair,0);
+top y38_1=top y38_3=y38_2r+cyrspread; lft x38_1r+.5u=lft x3r; rt x38_3r-.5u=rt x6r;
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos38_2(mid_thickness,-90); x38_2=x4;
+bot y38_2r=x_height+.5dot_size;
+filldraw stroke z38_1e{down}...z38_2e{right}...{up}z38_3e; % stroke
+%% ngb changes:
+if square_dots: % relax
+else:
+ pos38_11(dot_size,0); pos38_12(dot_size,90); pos38_13(dot_size,0); pos38_14(dot_size,90);
+ lft x38_11l=lft x38_1r; rt x38_13r=rt x38_3r; y38_11=y38_12=y38_13=y38_14=y38_2r+cyrspread;
+ x38_12=x38_11; x38_14=x38_13; dot(38_11,38_12);
+ if altaccent: % relax
+ else: dot(38_13,38_14); fi
+fi
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic Russian letter yo (looks like e umlaut)";
+beginchar(oct"033",8u#,asc_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib; h:=x_height;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+umlaut(2,q);
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+%cmchar "Italic letter v";
+%beginchar(oct"034",9.5u#,x_height#,0);
+%italcorr x_height#*slant;
+%adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+%x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+%hook_in(0,1,2)(skewed); % opening hook
+%pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+%x4=5u; rt x5r=hround(w-2u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+%filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+% ..tension atleast 1.05..{up}z5e; % left stem and arc
+%w:=10u; v_bulb(5,6); % closing bulb
+%math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+%penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic Old Russian letter izhitsa (looks like v)";
+beginchar(oct"034",9u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r-1.125u=l+letter_fit+outer_jut+.25u; y1=y4+.1h=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+x5=x4+1.125u; top y5r=h+oo; penpos5(hair,90);
+rt x6r=hround(w-.5u-.5); y6+.5flare=.95h; penpos6(hair,0);
+penpos7(flare,0); if serifs: bulb(5,6,7); fi
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}z4l...{right}z5r--z5l{left}
+ ...z4r{z3-z4}...z3r...z3l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--z4l{z4-z3}...{right}z5r--z5l{left}...{z3-z4}z4r--z3r{-10,-1}...{-10,1}z3l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,.3outer_jut,b,1/2,.3inner_jut); % left serif
+fi % dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+math_fit(.75u#-height#*slant,ic#-4u#); penlabels(0,1,2,3,4); endchar;
+
+cmchar "Italic Old Russian letter fita (looks like theta)";
+beginchar(oct"035",10u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(u#,0); pickup fine.nib; w:=9u;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(2.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+w:=10u; x31=0; x32=w-hround u; y31=y32=y2;
+pos31(bar,90); pos32(bar,90); filldraw circ_stroke z31e--z32e;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Italic Macedonian letter zelo (looks like s)";
+beginchar(oct"036",5.25u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic Russian letter ya (looks like small backward R)";
+beginchar(oct"037",9u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; slantswitch;
+x0=.25u; top y0r=h; x2-.5stem=hround(2.5u-.5stem); %hook_in(0,1,2);
+y2=y0; pos2(stem,0); x11=x2; pos0(vair,90);
+y11-.5stem=-oo; pos11(stem,0);
+filldraw circ_stroke z11e--z2e; % left stem
+pos3(vair,90); x3=x11; y3=bar_height;
+x4=x2; rt x16r=hround(w-1.5u+.4curve); x17=.5[x4,x16]; z15=z3;
+%x15=x17; bot y15r=bar_height;
+top y17r=h; y4=y16=.5[y15,y17];
+pos4(hair,-180); pos15(vair,-90); pos16(curve,0); pos17(vair,90);
+filldraw circ_stroke z0e--z17e;
+%filldraw stroke super_arc.e(4,15) & pulled_arc.e(15,16)
+filldraw stroke pulled_arc.e(15,16) & pulled_arc.e(16,17) & super_arc.e(17,4);
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+mirror(.5w);
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+% this one /w hook-in is pretty ugly
+%cmchar "Italic letter ya";
+%beginchar(oct"037",9u#,x_height#,0);
+%italcorr x_height#*slant;
+%adjust_fit(0,0); pickup fine.nib; slantswitch;
+%x0=.25u; top y0r=h; x2-.5stem=hround(2.5u-.5stem); %hook_in(0,1,2);
+%y2=y0; pos2(stem,0); x11=x2;
+%y11-.5stem=-oo; pos11(stem,0);
+%filldraw circ_stroke z11e--z2e; % left stem
+%filldraw circ_stroke z0e--z17e;
+%pos3(vair,90); x3=x11; y3=bar_height;
+%x4=x2; rt x16r=hround(w-1.5u+.4curve); x17=.5[x4,x16]; z15=z3;
+%%x15=x17; bot y15r=bar_height;
+%top y17r=h; y4=y16=.5[y15,y17];
+%pos4(hair,-180); pos15(vair,-90); pos16(curve,0); pos17(vair,90);
+%%filldraw stroke super_arc.e(4,15) & pulled_arc.e(15,16)
+%filldraw stroke pulled_arc.e(15,16) & pulled_arc.e(16,17) & super_arc.e(17,4);
+%pos7(stem,0); pos8(vair,90); pos9(hair,180);
+%x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+%lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+%filldraw stroke z3e{right}...z7e{down}
+% ...z8e{right}...{up}z9e; % lower diagonal
+%mirror(.5w);
+%math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+%penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+boolean modernyat; modernyat=false;
+% the modern yat is a modified slanted version of yat in upright font
+% the real italic yat is completely different
+% I wouldn't even know the real one existed were it not for Dimitri Vulis
+iff modernyat:
+ cmchar "Italic Old Russian letter yat";
+ beginchar(oct"053",8u#,asc_height#,0);
+ italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+ adjust_fit(1.75u#,0); pickup tiny.nib;
+ pos1(stem,0); pos2(stem,0); x1=x2;
+ lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
+ filldraw stroke z1e--z2e; % stem
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+ pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+ pos4(curve,0); pos5(vair,90); pos0(hair,180);
+ z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+ bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+ filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+ x31=-1.25u; x32=2x1-x31; y31=y32=.5[y5,y1];
+ pos31(bar,90); pos32(bar,90); filldraw stroke z31e--z32e;
+ penlabels(0,1,2,3,4,5,31,32); endchar;
+iff not modernyat:
+ cmchar "Italic Old Russian letter yat";
+ beginchar(oct"053",12u#,x_height#,0);
+ italcorr 1/3x_height#*slant+.5hair#+.5u#;
+ adjust_fit(0,0); pickup fine.nib; w:=10u;
+ x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+ hook_in(0,a,1); % opening hook
+ filldraw circ_stroke z2e--z1e; % left stem
+ x4+.5stem=hround(w-2.5u+.5stem); x5=x4; ital_arch(2,3,4); % arch
+ y5=.5bar_height; pos5(stem,0);
+ filldraw stroke z4e{down}..z5e; % right stem
+ w:=12u;
+ x23=x25=.5[x5,x24]; rt x24r=hround(w-u+.5curve);
+ bot y23r=-oo; top y25r=1.2bar_height+oo; y24=y5; z7'=z5; pos7'(stem,-180);
+ z20=z5; pos20(hair,180); pos23(vair,-90); pos24(curve,0); pos25(vair,90);
+ filldraw stroke pulled_arc.e(7',23) & pulled_arc.e(23,24)
+ & pulled_arc.e(24,25) & super_arc.e(25,20); % bowl
+ math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+ endchar;
+
+cmchar "Italic letter dotless i";
+beginchar("=",5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; % dot(8,9); % no dot
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+cmchar "Italic Russian letter a";
+beginchar("a",9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic Russian letter be";
+beginchar("b",8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos50(stem,-90); x50=.5w; y50=.95h; x100=w-u; y100=h; pos100(hair,0);
+pos1(hair,0); pos2(stem,0); x1=x2+.5u; pos52(hair,0);
+lft x1l=hround(1.5u-.5stem); top y1=1.2x_height; y2=.5x_height;
+x52l=x2l; y52=y2;
+filldraw stroke z100e...{left}z50e & pulled_arc.e(50,1) & z1e...{down}z52e; % stem
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+z72=z2; pos72(stem,180);
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,72); %(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Italic Russian letter tse";
+beginchar("c",9.5u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,.75u#); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; %x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+pos7(stem,0);
+x9=w; y9=y8=.4bar_height; x8=x6; pos8(hair,0); pos9(hair,180);
+y7=y8;
+filldraw circ_stroke z6e--z7e; % right stem
+filldraw circ_stroke z7e{down}...{up}z9e;
+pickup crisp.nib;
+y10=0; x10=x9-.1u; y12=-d; x12=x9-.75u; z11=.5[z10,z12];
+pos10(hair,90); pos11(1.25stem,135);
+filldraw stroke z9{down}...z10e...z11e--z12;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Italic Russian letter de";
+beginchar("d",9u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-1.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/4[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,90);
+pos3(side_thickness,0); pos4(bot_thickness,-90);
+pos5(side_thickness,-180); pos6(vair,-270);
+lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6+.1u=x2+3.5u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,0); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+%pos1(hair,180); pos0(flare,180);
+%lft x0r=min(lft x2-eps,hround 1.2u);
+%y0=vround min(.85h-.5flare,.8h+.5flare)+o;
+%{{less_tense; bulb(2,1,0)}}; % arc and bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic Russian letter e";
+beginchar("e",8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic Russian letter ef (looks like phi)";
+beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,asc_height#-x_height#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:3u#,3u# else: 2.5u#,2.5u# fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+%filldraw stroke z20e--z21e; % crossbar
+x100=x5; y100=y102=.5[y101,y103]; top y101r=x_height+oo; bot y103r=-oo;
+x101=x103=.5[x102,x100]; x102=x100-4u; pos100(hair,0); pos101(vair,90);
+pos102(curve,180); pos103(vair,270);
+filldraw stroke super_arc.e(100,101) & pulled_arc.e(101,102)
+ & pulled_arc.e(102,103) & super_arc.e(103,100);
+y201=y101; y202=y102; y203=y103; x201-x100=x100-x101; x202-x100=x100-x102;
+x203-x100=x100-x103; pos201(vair,-90); pos202(curve,-180); pos203(vair,-270);
+filldraw stroke super_arc.e(100,201) & pulled_arc.e(201,202)
+ & pulled_arc.e(202,203) & super_arc.e(203,100);
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+
+cmchar "Italic Russian letter ghe";
+beginchar("g",7u#,x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+1.5u; x3=.5w-1.5u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e{down}...{down}z3e; % stem
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+cmchar "Italic Russian letter kha (looks like x)";
+beginchar("h",6.5u#+max(1.5u#,flare#),x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90);
+pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19); endchar;
+
+cmchar "Italic Russian letter i (looks like u)";
+beginchar("i",9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic Serbian letter je";
+beginchar("j",5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr h#*slant+.5stem#-u#;
+adjust_fit(if monospace:2u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-1.5u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+pos8(flare,0); pos9(flare,90);
+rt x8r=rt x2r if not monospace:-.6(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+math_fit(desc_depth#*slant,x_height#*slant+.5stem#-u#);
+penlabels(0,1,2,3,4,5,6,8,9); endchar;
+
+cmchar "Italic Russian letter ka";
+beginchar("k",9u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2);
+z2'=z2;
+pos2'(stem,0); x11=x2';
+y11-.5stem=-oo; pos11(stem,0);
+filldraw circ_stroke z11e--z2'e; % left stem
+pos3(vair,90); x3=x11; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+cmchar "Italic Russian letter el";
+beginchar("l",9u#,x_height#,0);
+adjust_fit(.5u#,.5u#); pickup fine.nib;
+y1+.375stem=h; x1=.5[x3,x1']; x2=x3=3u; y3=.35h; y2=.75h; bot y4r=-oo; y1'=.8h; x1'l=w-2u;
+x4=.5[x6,x3]; y6-.5flare=.1h; pos6(flare,-180); pos5(hair,-180); lft x6r=-.25u; z5r=z6r;
+pos4(vair,-90); pos2(hair,0); pos3(hair,0); pos1(.75stem,-90);
+x7=x1'; pos1'(stem,180); %pos7(stem,0); %hook_out provides pos7 statement
+z11=z1'; pos11(stem,0);
+bulb(4,5,6);
+filldraw stroke pulled_arc.e(4,3) & super_arc.e(3,1) & super_arc.e(1,1');
+%filldraw stroke pulled_arc.e(4,3) & z3e..z2e{up}...{right}z1e;
+x9=w;
+hook_out(7,8,9);
+filldraw stroke z11e..z7e;
+endchar;
+
+cmchar "Italic Russian letter em";
+beginchar("m",13u#,x_height#,0);
+adjust_fit(.5u#,.5u#); pickup fine.nib;
+x3=3u; y3=.35h; bot y4r=-oo; x7r=w-2u;
+x4=.5[x6,x3]; y6-.5flare=.1h; pos6(flare,-180); pos5(hair,-180); lft x6r=-.25u; z5r=z6r;
+pos4(vair,-90); pos3(hair,0);
+bulb(4,5,6);
+x9=w;
+hook_out(7,8,9);
+pos1'(hair,0); x1'l=x1l; y1'=y1=h;
+x1l=x3; bot y10l=-oo; x10l=.48[x1,x7]; bot y11l=-oo; x11l=x10l; x13=x7; x12=x13l; y12r=y13=h;
+pos1(stem,0); pos11(hair,90); pos12(hair,90); pos13(stem,0); pos10(stem,angle(z12-z11));
+filldraw stroke pulled_arc.e(4,3) & z3e--z1'e;
+filldraw stroke z1e--z10e; filldraw stroke z11e--z12e;
+filldraw stroke z13e--z7e;
+endchar;
+
+cmchar "Italic Russian letter en (looks like h)";
+beginchar("n",10u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,.25u#); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2); % opening hook
+y3-.5stem=-oo; z2'=z2; pos2'(stem,-180); filldraw circ_stroke z3e--z2'e;
+x10=x3l; y10=y11=.55h; pos10(hair,90); pos11(hair,90);
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); y6+.5stem=h;
+x7=x6; x9=w; hook_out(7,8,9); z7'=z7; pos7'(stem,0);
+filldraw circ_stroke z6e--z7'e; x11=x6l; filldraw stroke z10e{1,1}...{1,1}z11e;
+endchar;
+
+cmchar "Italic Russian letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Italic Russian letter pe (looks like pi)";
+beginchar("p",10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic Russian letter che";
+beginchar("q",9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=.75bar_height; y5=.75h; y6+.5stem=h;
+filldraw stroke z2'e...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic Russian letter er (looks like p)";
+beginchar("r",9u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic Russian letter es (looks like c)";
+beginchar("s",8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic Russian letter te (looks like m)";
+beginchar("t",15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic Russian letter u (looks like y)";
+beginchar("u",8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic Russian letter ve (looks like B)";
+beginchar("v",9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,.5u#); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2; x5=x4+.5u;
+top y1r=h+oo; y2=.5[y1,y3]-u; bot y3r=-oo; y4=.65h; y5=.28h; y7=y6; y6=y2+u;
+x6=x4-2.5u; x7=x2l; pos5(curve,360); pos6(hair,90); z6'=z6; pos6'(hair,-90);
+pos7(hair,90);
+filldraw stroke pulled_arc.e(6',4) & pulled_arc.e(4,1) & pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,5) & pulled_arc.e(5,6); % bowl
+filldraw stroke z7e--z6e;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Italic Russian letter shcha";
+beginchar("w",12u#,x_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(if monospace:-1.5u#,-u# else: 0,2.5u# fi);
+pickup fine.nib; interim superness:=more_super; begingroup
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if monospace: pos1(vair,90); x1=good.x .5[x0,x2]; top y1r=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z1e{right}...{-u,-x_height}z2e;
+else: hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0);
+x4=.6[x2,x5]; x5=x6=x7; pos6(stem,-180); pos7(stem,-180);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+rt x6l=hround(rt x6l+.5w+.75u-x6); y6+.5stem=h; y7=y3;
+pos8(vair,-90); pos9(hair,0);
+x8=w-2.75u; rt x9r=hround(w-.5u); bot y8r=-oo; y9=y5;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e..super_arc.e(7,8)...{up}z9e; % middle stem and arc
+%v_bulb(9,10); % closing bulb
+pos26(stem,0); x26=x27=x9; y26+.5stem=h; y27=y28=y29=.4bar_height;
+pos27(stem,0); filldraw circ_stroke z26e--z27e;
+x29=r-.5u; x28=x26; pos28(hair,0); pos29(hair,180);
+filldraw circ_stroke z27e{down}...{up}z29e;
+pickup crisp.nib;
+%y30=0; x30=.5[x28,x29]; y32=-d; x32=x26-u; z31=.5[z30,z32];
+y30=0; x30=x29-.1u; y32=-d; x32=x29-.75u; z31=.5[z30,z32];
+pos30(hair,90); pos31(1.25stem,135);
+filldraw stroke z29{down}...z30e...z31e--z32;
+endgroup;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic Russian letter sha";
+beginchar("x",15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+x77=.5w; y77=.5h; flip(77);
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+endchar;
+
+cmchar "Italic Russian letter ery";
+beginchar("y",11u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(u#,0); pickup tiny.nib; w:=6u;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(u-.5stem); top y1=h; y2=.6bar_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+w:=11u;
+y11=y1; x11=x1+6.5u; x12=x11; pos11(stem,0); x14=w-.5u;
+hook_out(12,13,14);
+sloped_serif.l(11,12,b,1/3,jut,serif_drop); % serif
+filldraw stroke z11e--z12e;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Italic Russian letter ze (looks like reversed epsilon)";
+beginchar("z",7u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib; w:=8u;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos33(curve,180); pos34(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x33r=hround(1.5u-.5curve); x5r=good.x(w-u-eps); x6=x5; x34=x33;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y33=.25[y2,y4]; y34=.7[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+x3=x2; y3=.5[y2,y4]; pos3(hair,270); z3'=z3; pos3'(hair,90);
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,33) & pulled_arc.e(33,3);
+filldraw stroke pulled_arc.e(3',34) & pulled_arc.e(34,4)...{direction 1 of p}z5e; % arc
+x77=x4-.5u; y77=.5h; flip(77);
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+endchar;
+
+cmchar "Italic Russian letter soft sign";
+beginchar(oct"176",6u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(u#,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(u-.5stem); top y1=h; y2=.6bar_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+endchar;
+
+cmchar "Italic lowercase hard sign";
+beginchar(oct"177",6u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(u#,0); pickup tiny.nib;
+pos1(hair,0); pos1'(hair,-45); pos2(stem,0); rt x1r=hround(w-u);
+x1'=x1-.25u; y1'=y1-.75u;
+lft x2l=hround(u-.5stem); top y1=h; y2=.6bar_height;
+filldraw stroke z2e{up}...{3,1}z1'e..z1e; % stem
+pos100(hair,180); pos101(.6[hair,curve],60); pos102(hair,90);
+z102r=z1r; x100=lft x2l-.5u; y100=.675[y2,y1]; x101=.385[x100,x102];
+top y101r=top y102r;
+filldraw stroke z100e{up}...{5,-1}z101e...{1,1}z102e; % fillip
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-u+.5curve);
+bot y3r=-oo; top y5r=1.2bar_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+endchar;
+
+endinput; %%%%%%%%%%%%%%%%%%%%
+
+cmchar "Italic Russian letter zhe (alternate to oct"031");
+beginchar(oct"226",19u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+w:=8u;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+x77=x4; y77=.5h; x78=2x77-x3; %y78=2y77-y3;
+y78=bar_height;
+flip(77); w:=19u;
+pos50(flare,0); pos51(hair,0); pos52(vair,90);
+pos53(curve,180); pos54(vair,270); pos55(hair,320);
+x52=x54=w-3.5u; rt x51r=max(rt x52,hround(w-u))+eps;
+lft x53r=hround(w-6.5u-.5curve); x55r=good.x(w-eps); x56=x55;
+y51=.5[bar_height,h]; top y52r=h+oo; bulb(52,51,50); % bulb
+bot y54r=-oo; y53=.5[y52,y54]; top y55l=vround .5bar_height; y56=bar_height;
+path p; p=z54{right}..z55..z56;
+filldraw stroke pulled_arc.e(52,53)
+ & pulled_arc.e(53,54)...{direction 1 of p}z55e; % arc
+x80=x81=.5[x78,x53]; y80=h; y81=0; y79=y78; x79=x53;
+pos78(hair,90); pos79(hair,90); pos80(stem,0); pos81(stem,0);
+filldraw stroke z78e--z79e; filldraw stroke z80e--z81e;
+%addto currentpicture also V shifted(10u,0);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ams/ebigop.mf b/Master/texmf-dist/fonts/source/public/ams/ebigop.mf
new file mode 100644
index 00000000000..a16228396a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/ebigop.mf
@@ -0,0 +1,964 @@
+%% @metafontfile{
+%% filename="ebigop.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "18125 964 3335 44527"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the driver file for use with
+%% the euler extension font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The Computer Modern Math-Extension family (by D. E. Knuth, 1979--1985)
+% Special version for characters redesigned to blend with Euler
+
+% This is the driver file for EUEX fonts
+font_coding_scheme:="euler substitutions only";
+mode_setup; font_setup;
+
+def t_ = transformed currenttransform enddef;
+transform skewit; skewit=identity; % 5/24/91 NGB
+
+def bulb(suffix $,$$,$$$) =
+ z$$$r=z$$r;
+%pair trueup; (z5+trueup)t_=z5+(0,y$$r-y$r);
+pair trueup; (z5+trueup) transformed skewit=z5+(0,y$$r-y$r); %5/24/91 NGB
+ path_.l:=z$l{x$$r-x$r,0}...{trueup}z$$l;
+{{less_tense;
+ filldraw path_.l--z$$r{-trueup}...{x$r-x$$r,0}z$r--cycle}}; % link
+ path_.r:=z$$$l{-trueup}..z$$$r{trueup}; % near-circle
+ filldraw subpath(0,xpart(path_.r intersectiontimes path_.l)) of path_.r
+ --z$$r{trueup}..cycle; % bulb
+ enddef;
+
+% characters modified from BIGOP
+charlist oct"110": oct"111"; % contour integral signs
+charlist oct"122": oct"132"; % integral signs
+charlist oct"120": oct"130"; % summation signs
+charlist oct"121": oct"131"; % product signs
+charlist oct"140": oct"141"; % coproduct signs
+
+% characters modified from BIGDEL (braces in different positions)
+charlist oct"010": oct"012": oct"014": oct"016": oct"070"; % left braces
+charlist oct"011": oct"013": oct"015": oct"017": oct"071"; % right braces
+extensible oct"070": oct"070",oct"074",oct"072",oct"076"; % left brace
+extensible oct"071": oct"071",oct"075",oct"073",oct"076"; % right brace
+extensible oct"072": oct"070",0,oct"072",oct"076"; % sharp left parenthesis
+extensible oct"073": oct"071",0,oct"073",oct"076"; % sharp right parenthesis
+extensible oct"076": 0,0,0,oct"076"; % brace extension modules only
+extensible oct"100": oct"070",0,oct"073",oct"076"; % left moustache
+extensible oct"101": oct"071",0,oct"072",oct"076"; % right moustache
+% the horizontal braces are included too
+heavy_rule_thickness:=bold+dw; % this is the main change: big braces not so dark
+heavy_rule_thickness#:=curve#+(curve#-stem#);
+
+% arrows (taken from SYMBOL, SYM, and ROMSS, with longer and thicker arrowheads)
+bar:=rule_thickness; % this makes the arrowheads thicker
+% the half arrows from ROMSS are moved to different font positions
+% infinity (taken from SYMBOL, made heavier)
+
+cmchar "\textstyle integral sign";
+beginchar(oct"122",12u#,0,100/54dh#);
+italcorr 0.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(-1u#,-1u#-ic#); pickup fine.nib;
+pos1(dot_size,0); pos2(.75[hair,stem],0); pos3(vair,90); pos4(stem,180);
+pos5(.4[stem,curve],180); pos5'(.4[stem,curve],0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(.75[hair,stem],-180); pos9(dot_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5stem);
+top y3r=0; bot y7r=-d; y9-.5(.4[stem,curve])=vround(top y7l+.25(.4[stem,curve]));
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+transform skewit;
+ z5 transformed skewit=z5; (z5+right) transformed skewit = z5+right;
+ z3 transformed skewit=z3-u*right;
+%% code changed for Version 2.1 to allow for odd aspect ratio. 5/24/91 NGB
+%skewit:=skewit transformed currenttransform;
+%save currenttransform; transform currenttransform; currenttransform:=skewit;
+transform newskew; newskew:=skewit transformed currenttransform;
+save currenttransform; transform currenttransform; currenttransform:=newskew;
+%%%%%%%end of change
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle integral sign";
+beginchar(oct"132",18u#,0,200/54dh#);
+italcorr 2u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(-4u#,-4u#-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(.8[stem,curve]); max_size=hround(bold+.2dw);
+pos1(bulb_size,0); pos2(.75[hair,stem],0); pos3(vair,90); pos4(.4[stem,curve],180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(.4[stem,curve],0);
+pos7(vair,-90); pos8(.75[hair,stem],-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5stem);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+transform skewit;
+ z5 transformed skewit=z5; (z5+right) transformed skewit = z5+right;
+ z3 transformed skewit=z3-4u*right;
+%% code changed for Version 2.1 to allow for odd aspect ratio. 5/24/91 NGB
+%skewit:=skewit transformed currenttransform;
+%save currenttransform; transform currenttransform; currenttransform:=skewit;
+transform newskew; newskew:=skewit transformed currenttransform;
+save currenttransform; transform currenttransform; currenttransform:=newskew;
+%%%%%%%end of change
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle contour integral sign";
+beginchar(oct"110",12u#,0,100/54dh#);
+italcorr 0.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(-u#,-u#-ic#); pickup fine.nib;
+begingroup
+pos1(dot_size,0); pos2(.75[hair,stem],0); pos3(vair,90); pos4(stem,180);
+pos5(.4[stem,curve],180); pos5'(.4[stem,curve],0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(.75[hair,stem],-180); pos9(dot_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5stem);
+top y3r=0; bot y7r=-d; y9-.5(.4[stem,curve])=vround(top y7l+.25(.4[stem,curve]));
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+transform skewit;
+ z5 transformed skewit=z5; (z5+right) transformed skewit = z5+right;
+ z3 transformed skewit=z3-u*right;
+%% code changed for Version 2.1 to allow for odd aspect ratio. 5/24/91 NGB
+%skewit:=skewit transformed currenttransform;
+%save currenttransform; transform currenttransform; currenttransform:=skewit;
+transform newskew; newskew:=skewit transformed currenttransform;
+save currenttransform; transform currenttransform; currenttransform:=newskew;
+%%%%%%%end of change
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+endgroup;
+pickup rule.nib; autorounded;
+draw fullcircle scaled .5w shifted z5; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle contour integral sign";
+beginchar(oct"111",18u#,0,200/54dh#);
+italcorr 2u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(-4u#,-4u#-ic#); pickup fine.nib;
+begingroup
+numeric bulb_size, max_size;
+bulb_size=hround(.8[stem,curve]); max_size=hround(bold+.2dw);
+pos1(bulb_size,0); pos2(.75[hair,stem],0); pos3(vair,90); pos4(.4[stem,curve],180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(.4[stem,curve],0);
+pos7(vair,-90); pos8(.75[hair,stem],-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5stem);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+transform skewit;
+ z5 transformed skewit=z5; (z5+right) transformed skewit = z5+right;
+ z3 transformed skewit=z3-4u*right;
+%% code changed for Version 2.1 to allow for odd aspect ratio. 5/24/91 NGB
+%skewit:=skewit transformed currenttransform;
+%save currenttransform; transform currenttransform; currenttransform:=skewit;
+transform newskew; newskew:=skewit transformed currenttransform;
+save currenttransform; transform currenttransform; currenttransform:=newskew;
+%%%%%%%end of change
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+endgroup;
+pickup rule.nib; autorounded;
+draw fullcircle scaled .5w shifted z5; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+cmchar "\textstyle summation sign";
+beginchar(oct"120",19u#,0,10/6dh#);
+adjust_fit(0,0); pickup tiny.nib;
+numeric top_arm_thickness, bot_arm_thickness;
+top_arm_thickness=Vround(.7[rule_thickness,bold]);
+bot_arm_thickness=Vround(bold+dw);
+lft x1l=hround 2.2u; x1l=x2l; lft x4l=hround u; x3l-x1l=4/11(w-2u)-1.2u;
+top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.48d;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(curve-tiny),0); penpos2(alpha1*(curve-tiny),0);
+penpos3(alpha1*(curve-tiny),0);
+alpha2=diag_ratio(1,rule_thickness+dw-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(rule_thickness+dw-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
+top y5r=0; x5=x1; rt x6r=hround(w-3u); y6=good.y(y5l)-eps;
+{{save serifs; boolean serifs; serifs:=false;
+arm(5,6,a,.45,-.25u); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6+1.5u; y8=good.y(y7l)+eps;
+arm(7,8,b,.45,.25u);}}; % lower arm and beak
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\displaystyle summation sign";
+beginchar(oct"130",26u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem;
+thick_stem=bold+4dw; thin_stem=rule_thickness+2dw;
+top_arm_thickness=Vround(bold-.5dw);
+bot_arm_thickness=Vround(bold+2.5dw);
+lft x1l=hround 3u; x1l=x2l; lft x4l=hround u; x3l-x1l=4/11(w-2u)-2u;
+top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.48d;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(thick_stem-tiny),0); penpos2(alpha1*(thick_stem-tiny),0);
+penpos3(alpha1*(thick_stem-tiny),0);
+alpha2=diag_ratio(1,thin_stem-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(thin_stem-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
+top y5r=0; x5=x1; rt x6r=hround(w-4u); y6=good.y(y5l)-eps;
+{{save serifs; boolean serifs; serifs:=false;
+arm(5,6,a,.45,-.25u); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6+2.5u; y8=good.y(y7l)+eps;
+arm(7,8,b,.45,.25u);}}; % lower arm and beak
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\textstyle product sign";
+beginchar(oct"121",18.5u#,0,10/6dh#);
+adjust_fit(.25u#,.25u#); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+dw); light_stem=rule_thickness;
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
+lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut;
+x1=x1'=x2=x2';
+top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
+y11l-y1'=y2'-y12r=1.2bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
+x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\displaystyle product sign";
+beginchar(oct"131",25.4u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw);
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
+lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut;
+x1=x1'=x2=x2';
+top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
+y11l-y1'=y2'-y12r=1.8bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
+x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\textstyle coproduct sign";
+beginchar(oct"140",18.5u#,0,10/6dh#);
+adjust_fit(.25u#,.25u#); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+dw); light_stem=rule_thickness;
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
+lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut;
+x1=x1'=x2=x2';
+bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
+y1'-y11l=y12r-y2'=1.2bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
+x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\displaystyle coproduct sign";
+beginchar(oct"141",25.4u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw);
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
+lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut;
+x1=x1'=x2=x2';
+bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
+y1'-y11l=y12r-y2'=1.8bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
+x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\big left curly brace";
+beginchar(oct"010",9u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); left_curly(hair,stem); endchar;
+
+cmchar "\Big left curly brace";
+beginchar(oct"012",10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); left_curly(rule_thickness,.3[stem,bold]); endchar;
+
+cmchar "\bigg left curly brace";
+beginchar(oct"014",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); left_curly(rule_thickness+.2dw,.7[stem,bold]); endchar;
+
+cmchar "\Bigg left curly brace";
+beginchar(oct"016",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); left_curly(rule_thickness+.4dw,bold); endchar;
+
+cmchar "Extensible left curly brace---top";
+beginchar(oct"070",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos1(min_breadth,0); pos1'(min_breadth,0);
+pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0);
+rt x1r=rt x1'r=hround(w-1.5u+.5min_breadth);
+lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness);
+top y1=h-1; y3=-d-eps; y2=.5[y1,y3]; y1-y1'=min_breadth-fine;
+filldraw z1l{3(x2l-x1l),y2-y1}...z2l---z3l
+ --z3r---z2r...{3(x1r-x2r),y1'-y2}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Extensible left curly brace---bottom";
+beginchar(oct"072",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos7(min_breadth,0); pos7'(min_breadth,0);
+pos5(heavy_rule_thickness,0); pos6(heavy_rule_thickness,0);
+rt x7r=rt x7'r=hround(w-1.5u+.5min_breadth);
+lft x5l=lft x6l=hround(.5w-.5heavy_rule_thickness);
+y5=h+eps; bot y7=1-d; y6=.5[y5,y7]; y7'-y7=min_breadth-fine;
+filldraw z5l---z6l...{3(x7l-x6l),y7-y6}z7l
+ --z7r--z7'r{3(x6r-x7r),y6-y7'}...z6r---z5r--cycle; % stroke
+penlabels(5,6,7); endchar;
+
+cmchar "Extensible left curly brace---middle";
+beginchar(oct"074",12u#,0,3dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos4(min_breadth,0); pos4'(min_breadth,0);
+forsuffixes $=2,3,5,6: pos$(heavy_rule_thickness,0); endfor
+lft x4l=lft x4'l=hround(1.5u-.5min_breadth);
+x2=x3=x5=x6; lft x2l=hround(.5w-.5heavy_rule_thickness);
+y2=h+eps; y6=-d-eps; .5[y4,y4']=.5[y2,y6]=.5[y3,y5];
+y3-y4=(y2-y6)/4; y4-y4'=min_breadth-fine;
+filldraw z2l---z3l...{3(x4l-x3l),y4-y3}z4l
+ --z4'l{3(x5l-x4l),y5-y4'}...z5l---z6l--z6r---z5r
+ ...{3(x4r-x5r),.5[y4,y4']-y5}.5[z4r,z4'r]{3(x3r-x4r),y3-.5[y4,y4']}
+ ...z3r---z2r--cycle; % stroke
+penlabels(2,3,4,5,6); endchar;
+
+cmchar "Extensible curly brace---extension module";
+beginchar(oct"076",12u#,0,.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0);
+lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness); y2=h+eps; y3=-d-eps;
+filldraw stroke z2e--z3e; % stem
+penlabels(2,3); endchar;
+
+cmchar "\big right curly brace";
+beginchar(oct"011",9u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); right_curly(hair,stem); endchar;
+
+cmchar "\Big right curly brace";
+beginchar(oct"013",10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); right_curly(rule_thickness,.3[stem,bold]); endchar;
+
+cmchar "\bigg right curly brace";
+beginchar(oct"015",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); right_curly(rule_thickness+.2dw,.7[stem,bold]); endchar;
+
+cmchar "\Bigg right curly brace";
+beginchar(oct"017",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); right_curly(rule_thickness+.4dw,bold); endchar;
+
+cmchar "Extensible right curly brace---top";
+beginchar(oct"071",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos1(min_breadth,0); pos1'(min_breadth,0);
+pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0);
+lft x1l=lft x1'l=hround(1.5u-.5min_breadth);
+lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness);
+top y1=h-1; y3=-d-eps; y2=.5[y1,y3]; y1-y1'=min_breadth-fine;
+filldraw z1r{3(x2r-x1r),y2-y1}...z2r---z3r
+ --z3l---z2l...{3(x1l-x2l),y1'-y2}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Extensible right curly brace---bottom";
+beginchar(oct"073",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos7(min_breadth,0); pos7'(min_breadth,0);
+pos5(heavy_rule_thickness,0); pos6(heavy_rule_thickness,0);
+lft x7l=lft x7'l=hround(1.5u-.5min_breadth);
+lft x5l=lft x6l=hround(.5w-.5heavy_rule_thickness);
+y5=h+eps; bot y7=1-d; y6=.5[y5,y7]; y7'-y7=min_breadth-fine;
+filldraw z5r---z6r...{3(x7r-x6r),y7-y6}z7r
+ --z7l--z7'l{3(x6l-x7l),y6-y7'}...z6l---z5l--cycle; % stroke
+penlabels(5,6,7); endchar;
+
+cmchar "Extensible right curly brace---middle";
+beginchar(oct"075",12u#,0,3dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos4(min_breadth,0); pos4'(min_breadth,0);
+forsuffixes $=2,3,5,6: pos$(heavy_rule_thickness,0); endfor
+rt x4r=rt x4'r=hround(w-1.5u+.5min_breadth);
+x2=x3=x5=x6; lft x2l=hround(.5w-.5heavy_rule_thickness);
+y2=h+eps; y6=-d-eps; .5[y4,y4']=.5[y2,y6]=.5[y3,y5];
+y3-y4=(y2-y6)/4; y4-y4'=min_breadth-fine;
+filldraw z2r---z3r...{3(x4r-x3r),y4-y3}z4r
+ --z4'r{3(x5r-x4r),y5-y4'}...z5r---z6r--z6l---z5l
+ ...{3(x4l-x5l),.5[y4,y4']-y5}.5[z4l,z4'l]{3(x3l-x4l),y3-.5[y4,y4']}
+ ...z3l---z2l--cycle; % stroke
+penlabels(2,3,4,5,6); endchar;
+
+cmchar "Horizontal curly brace tip---down and left";
+beginchar(oct"172",.75dh#,heavy_rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth);
+.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine;
+filldraw z1r{x2-x1,3(y2r-y1r)}...{right}z2r
+ --z2l{left}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Horizontal curly brace tip---down and right";
+beginchar(oct"173",.75dh#,heavy_rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth);
+.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine;
+filldraw z1r{x2-x1,3(y2r-y1r)}...{left}z2r
+ --z2l{right}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Horizontal curly brace tip---up and left";
+beginchar(oct"174",.75dh#,heavy_rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth);
+.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine;
+filldraw z1l{x2-x1,3(y2l-y1l)}...{right}z2l
+ --z2r{left}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Horizontal curly brace tip---up and right";
+beginchar(oct"175",.75dh#,heavy_rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth);
+.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine;
+filldraw z1l{x2-x1,3(y2l-y1l)}...{left}z2l
+ --z2r{right}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"040",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"041",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Left-and-right arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"044",18u#,
+ v_center(if monospace:.6asc_height#+fi spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis if monospace:+vround.3asc_height fi; lft x0=hround u;
+if monospace: x1+.5rule_thickness=hround(w-u) else: x1=.5w fi;
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead and stem
+pos11(rule_thickness,90); pos12(rule_thickness,90); pos13(bar,0); pos14(bar,0);
+y10=y11=y12=math_axis if monospace:-vround.3asc_height fi;
+rt x10=hround(w-u);
+if monospace: x11-.5rule_thickness=hround u else: x11=.5w fi;
+y13-y10=y10-y14=.36asc_height+eps; x13=x14=x10-3u-eps;
+pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y12l)--(w,y12l))); x12=xpart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z12l---z11l..z11r---z12r--subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar;
+
+cmchar "Upward arrow";
+beginchar(oct"042",9u#,asc_height#,asc_depth#);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=4u+eps;
+y3=y4=y0-.24asc_height-eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Downward arrow";
+beginchar(oct"043",9u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=4u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Up-and-down arrow";
+beginchar(oct"154",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1=.5[-d,h];
+x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=4u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % lower arrowhead and stem
+pos11(rule_thickness,0); pos12(rule_thickness,0); z11=z1;
+pos13(bar,90); pos14(bar,90);
+x10=x11=x12; top y10=h+o; x10-x13=x14-x10=4u+eps;
+y13=y14=y10-.24asc_height-eps;
+pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((x12r,-d)--(x12r,h))); y12=ypart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z12r---z11r..z11l---z12l--subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % upper arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar;
+
+cmchar "Leftward top half arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"030",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0--(x0,y2l)---z1l..z1r---z2r
+ ..subpath (t,0) of\\(z3r..{2(x0-x3),y0-y3}z5r)
+ --z3l..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Leftward bottom half arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"031",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0{2(x4-x0),y4-y0}..z4l
+ --subpath (0,t) of\\(z4r..{2(x0-x4),y0-y4}z6r)
+ ..z2l---z1l..z1r---(x0,y2r)--cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward top half arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"032",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0--(x0,y2l)---z1l..z1r---z2r
+ ..subpath (t,0) of\\(z3l..{2(x0-x3),y0-y3}z5r)
+ --z3r..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward bottom half arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"033",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0{2(x4-x0),y4-y0}..z4r
+ --subpath (0,t) of\\(z4l..{2(x0-x4),y0-y4}z6r)
+ ..z2l---z1l..z1r---(x0,y2r)--cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Northeast arrow";
+beginchar(oct"045",18u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y1-.5rule_thickness=-d; top y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(rule_thickness,90+theta);
+pos3(bar,theta); pos4(bar,theta);
+z3-z0=(-3u,.36asc_height) rotated theta;
+z4-z0=(-3u,-.36asc_height) rotated theta;
+pos5(bar,-90); z5l=z0; pos6(bar,-180); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Southeast arrow";
+beginchar(oct"046",18u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y1+.5rule_thickness=h; bot y0=-d;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta+45)<2.5: theta:=-45; y1:=y0+x0-x1; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(rule_thickness,90+theta);
+pos3(bar,theta); pos4(bar,theta);
+z3-z0=(-3u,.36asc_height) rotated theta;
+z4-z0=(-3u,-.36asc_height) rotated theta;
+pos5(bar,180); z5l=z0; pos6(bar,90); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Northwest arrow";
+beginchar(oct"055",18u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y1-.5rule_thickness=-d; top y0=h;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta+45)<2.5: theta:=-45; y1:=y0+x0-x1; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta); pos2(rule_thickness,-90+theta);
+pos3(bar,-180+theta); pos4(bar,-180+theta);
+z4-z0=(3u,.36asc_height) rotated theta;
+z3-z0=(3u,-.36asc_height) rotated theta;
+pos5(bar,0); z5l=z0; pos6(bar,-90); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Southwest arrow";
+beginchar(oct"056",18u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y1+.5rule_thickness=h; bot y0=-d;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta); pos2(rule_thickness,-90+theta);
+pos3(bar,-180+theta); pos4(bar,-180+theta);
+z4-z0=(3u,.36asc_height) rotated theta;
+z3-z0=(3u,-.36asc_height) rotated theta;
+pos5(bar,90); z5l=z0; pos6(bar,0); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Double leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"050",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; lft x0=hround u-eps; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.36asc_height+eps; x3=x4=x0+6u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Double rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"051",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x1; x7=x8=w-x1;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; rt x0=hround(w-u)+eps; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.36asc_height+eps; x3=x4=x0-6u-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(w,y3)
+ --(w,y4)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Double upward arrow";
+beginchar(oct"052",12u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+bot y1=bot y2=-d-eps; top y7=h; y8=y7;
+x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; top y0=h+eps; x0=good.x .5w;
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+x2-x3=x4-x1=4u+eps; y3=y4=y0-.48asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,h)
+ --(x4,h)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Double downward arrow";
+beginchar(oct"053",12u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+top y1=top y2=h+eps; bot y7=-d; y8=y7;
+x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; bot y0=-d-eps; x0=good.x .5w;
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+x2-x3=x4-x1=4u+eps; y3=y4=y0+.48asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,-d)
+ --(x4,-d)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Double left-and-right arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"054",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace: -u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; lft x0=hround u-o; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.36asc_height+eps; x3=x4=x0+5u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess at left
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead
+rt x10=hround(w-u)+o; y10=good.y math_axis;
+pos13(rule_thickness,0); pos14(rule_thickness,0);
+y13=y3; y14=y4; x13=x14=x10-5u-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+erase filldraw z10..{z13-z19}z13--(w,y13)
+ --(w,y14)--z14{z19-z14}..z10 & cycle; % erase excess at right
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y10)--(w,y10)));
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,19); endchar;
+
+cmchar "Double up-and-down arrow";
+beginchar(oct"155",12u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+bot y1=bot y2=-d-eps; top y7=h; y8=y7;
+x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; top y0=h+o; x0=good.x .5w;
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+x2-x3=x4-x1=4u+eps; y3=y4=y0-.4asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,h)
+ --(x4,h)--z4{z9-z4}..z0 & cycle; % erase excess at top
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % top arrowhead
+bot y10=-d-o; x10=good.x .5w;
+pos13(rule_thickness,90); pos14(rule_thickness,90);
+x13=x3; x14=x4; y13=y14=y10+.4asc_height-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+erase filldraw z10..{z13-z19}z13--(x13,-d)
+ --(x14,-d)--z14{z19-z14}..z10 & cycle; % erase excess at bottom
+numeric t; path p; p=z14r{z19-z14}..z16r;
+t=xpart(p intersectiontimes((x10,-d)--(x10,h)));
+filldraw z10..{z14-z19}z14l--subpath (0,t) of\\(z14r{z19-z14}..z16r)
+ --subpath (t,0) of\\(z13r{z19-z13}..z15r)
+ --z13l{z19-z13}..z10 & cycle; % bottom arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9,13,14,15,16,19); endchar;
+
+cmchar "Infinity";
+beginchar(oct"061",18u#,x_height#,0);
+italcorr .7x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta,phi;
+if monospace: phi=-theta=90;
+else: phi=angle(4u,h); theta=angle(6u,-h); fi
+pos1(.2[vair,curve],180); pos2(.6[vair,curve],90+.5theta); pos3(curve,90+theta);
+pos4(curve,90+theta); pos5(.6[vair,curve],90+.5theta);
+pos6(.2[vair,curve],180); pos7(.3[vair,curve],270+.5phi);
+pos8(.35[vair,curve],270+phi); pos9(.3[vair,curve],270+.5phi);
+lft x1r=w-rt x6l=hround u; x2=x9=.4[x1,x8]; x5=x7=.6[x8,x6];
+if monospace: x2l:=x2r; x5r:=x5l; x7r:=x7l; x9l:=x9r; fi
+y1=y6=.5h; top y2r=top y7l=h+oo; bot y5l=bot y9r=-oo;
+x8=.5[x3,x4]=.5w; y8=.5[y3,y4]=.5h;
+y3-y4=h/3; z3-z4=whatever*dir theta;
+filldraw stroke z1e{up}...z2e{right}...z3e---z4e...z5e{right}
+ ...z6e{up}...z7e{left}...{-dir phi}z8e...{left}z9e...z1e{up}; % bowls
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+font_x_height x_height#;
+font_quad 18u#+4letter_fit#;
+% (The calling file should give the other math extension font parameters.)
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ams/eubase.mf b/Master/texmf-dist/fonts/source/public/ams/eubase.mf
new file mode 100644
index 00000000000..d4295c2e7db
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eubase.mf
@@ -0,0 +1,419 @@
+%% @metafontfile{
+%% filename="eubase.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: base",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "28056 419 2057 14865"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the base file for use with
+%% the euler fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% base file for Euler Fonts, by David Siegel and John Hobby
+
+ %def define_euler_pixels(text t) =
+ %forsuffixes $=t: $=$.#*hppp; endfor enddef;
+
+
+
+ pixperem = ptsize*pt;
+
+% Beginning of change for version 2.1
+% replaced the next four lines:
+%h#=ptsize/programem;
+%v#=h#*aspect_ratio;
+% define_euler_pixels(h,v);
+%v#:=h#; % DEK (I doubt if aspect_ratio<>1 will work, but this does help)
+
+% with the following five lines:
+if unknown xscale_factor: xscale_factor := 1; fi
+h# = ptsize * xscale_factor / programem;
+v# = ptsize / programem;
+h = h#*hppp;
+v = v#*vppp;
+
+% end of change for version 2.1 4/4/91 NGB
+
+ define_pixels(leftside, rightside);
+% h = pixperem/programem;
+% v = pixperem/programem*aspect_ratio;
+
+ dandch = 3.94h; % dandch = (pixperem/935);
+ dandcv = 3.94v; % dandcv = (pixperem/935);
+
+ nwdh# = h#*programem/925; % h*3.784
+ nwdv# = v#*programem/925; % v*3.784
+ nwdh = h*programem/925;
+ nwdv = v*programem/925;
+% dandc == dan mills and carol twombly; nwd == dave siegel -- DEK
+ adjustx:= 3.92;
+ adjusty:= 3.92;
+
+save_leftside#:=leftside#; save_rightside#:=rightside#; % DEK
+def more_side(expr s_sharp) =
+ leftside#:=save_leftside#+s_sharp; rightside#:=save_rightside#+s_sharp;
+ define_pixels(leftside,rightside);
+enddef;
+
+% ----- Fontbegin, Charbegin -----------------------------------
+% --------------------------------------------------------------
+
+transform rot;
+
+def charbegin(expr c,w_sharp,h_sharp,d_sharp) =
+ begingroup
+ charcode:=if known c: byte c else: 0 fi;
+ W := w_sharp*pt;
+ chardx:=round(W+leftside+rightside); % desired width of character in pixels
+ charwd:=w_sharp+leftside#+rightside#; charht:=h_sharp; chardp:=d_sharp;
+% charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
+% rot := identity;
+ charic:=0; clearxy; clearit; clearpen; % DEK
+ rot := identity; scantokens extra_beginchar;
+ pair tiept[];
+ enddef;
+
+def endchar(expr addwidth_sharp) =
+ scantokens extra_endchar;
+%if proofing>0: makebox(proofrule); fi
+ addwidth:=addwidth_sharp*pt;
+%currentpicture := currentpicture shifted (leftside+addwidth,0);
+xoffset:=leftside+addwidth;
+H:=charht*pt; D:=chardp*pt;
+if known nohashmarks:;
+else:
+ if proofing>0:
+ for y=0,H,-D*pt:
+ proofrule((-xoffset,y),(10-xoffset,y));
+ proofrule((chardx-10-xoffset,y),(chardx-xoffset,y)); endfor % horizontals
+ for x=-xoffset,chardx-xoffset:
+ proofrule((x,10-D),(x,-D)); proofrule((x,H-10),(x,H)); endfor % verticals fi
+ fi
+fi
+shipit;
+%if displaying>0: makebox(screenrule); showit; fi
+endgroup enddef;
+
+def mathcorr(expr subwidth_sharp) = % DEK
+ charic:=subwidth_sharp; charwd:=charwd-charic;
+enddef;
+
+% ----- TeX Information: ----------------------------------------
+
+ fontdimen 1:
+
+ 0, % italic correction degrees
+ ptsize/3, % default spacing (3em) points
+ 0, % stretch "
+ 0, % shrink "
+ (lcbody*v#), % xheight "
+ ptsize, % quad "
+ 0, % math space
+ (1400*v#), % num1 baseline raise, for numerators, display style
+ (1000*v#), % num2 baseline raise, for numerators, non-atop
+ (1100*v#), % num3 baseline raise, for numerators, atop styles
+ (1400*v#), % denom1 amount to lower baselines in display style
+ (600*v#), % denom1 amount to lower baselines in non-display
+ (1500*v#), % sup1
+ (1400*v#), % sup2 guess at superscript raising again
+ (1200*v#), % sup3
+ (depthy*v#), % sub1 subscripts with no super
+ (900*v#), % sub2 maybe this is off by a little.
+ (1500*v#), % supdrop how much to drop below a large box
+ (100*v#), % supdrop how much to raise above a large box
+ 2.2(programem*v#), % size of \comb delimiters for display
+ (programem*v#), % size of \comb delimiters for non-display
+ (950*v#); % axisheight center for fraction line
+
+font_size ptsize;
+
+
+% Adjusting stems
+% revised by DEK to allow highres adjustments, 11 Aug 87
+
+vardef set_stem_round(expr slo,s,shi,clo,c,chi) =
+ stem_lo:=slo*h; stem_hi:=shi*h; stem_norm:=s*h;
+ curve_lo:=clo*h; curve_hi:=chi*h; curve_norm:=c*h;
+ save a,b;
+ a-b = round (stem_norm - curve_norm);
+ a = round(.5(stem_norm + curve_norm + a - b));
+ stem_norm_corr := a-stem_norm; % a is normal stem width in pixels
+ curve_norm_corr := b-curve_norm; % b is normal curve width in pixels
+enddef;
+
+def no_stem_round = set_stem_round(-1,-1,-1,-1,-1,-1) enddef;
+no_stem_round; % default is to do ordinary rounding
+
+% The |stem_round| macro rounds its argument, forcing numbers that look like
+% stem widths to round near to |stem_norm|, and similarly forcing vertical curve
+% weights to round near to |curve_norm|.
+
+def stem_round primary w = if w<0: -stem_rnd(-w) else: stem_rnd(w) fi enddef;
+
+def stem_rnd(expr w) =
+ round(w
+ if (stem_lo<=w) and (w<=stem_hi): +stem_norm_corr
+ elseif (curve_lo<=w) and (w<=curve_hi): +curve_norm_corr
+ fi)
+enddef;
+
+% Filling cyclic paths with step width adjustment and rounding
+
+% Before calling the |adj_fill| macro, the user should set up an
+% array |t[]| and a nonnegative integer |n| so that |t[1]| through |t[n]|
+% are time values on some cyclic path |p|. It should be true that |t[i]<t[j]|
+% whenever |i<j|. Also |t[n]-t[1]| should be less than the length of |p|.
+% The |adj_fill| macro takes four lists of time values given as indices into
+% the |t| array. The avoids the necessity of writing \MF\ macros to sort
+% the time values.
+% Groups of paths are allowed to have points ``tied together.'' This is
+% implemented by saving coordinates in a special array of type |pair|
+% called |tiept|. If a path contains a point that is tied to a point in
+% an already computed path, then the adjusted coordinates of that point will
+% be saved in the |tiept| array. This array should be made unknown before
+% starting a new group of paths; e.g., in |beginchar|.
+
+
+% Make |y'a| and |y'b| rounded versions of |y.a| and |y.b|, so that
+% |y'a-y'b| is as close as possible to |y.a-y.b|.
+% If a time value is given as both fixed and vertical or horizontal then
+% |y'a| or |y'b| or both may already be known. Then we just round what
+% we can.
+
+vardef rnd_pr_y(suffix a, b) =
+ if known y'a: if unknown y'b: y'b-y'a=round(y.b-y.a); fi
+ elseif known y'b: y'b-y'a=round(y.b-y.a);
+ else:
+ y'a-y'b = round(y.a-y.b);
+ y'a = round(.5(y.a + y.b + y'a - y'b));
+ fi
+enddef;
+
+% Rounding |x| coordinates is similar except we use the special |stem_round|
+% routine.
+
+vardef rnd_pr_x(suffix a, b) =
+% use the next line if you want to see what channel settings are reasonable
+% (also set tracingtitles:=1 in such a case)
+% message decimal t.a&","&decimal t.b&":"&decimal((x.b-x.a)/h);
+ if known x'a: if unknown x'b: x'b-x'a=stem_round(x.b-x.a); fi
+ elseif known x'b: x'b-x'a=stem_round(x.b-x.a);
+ else:
+ x'a-x'b = stem_round(x.a-x.b);
+ x'a = round(.5(x.a + x.b + x'a - x'b));
+ fi
+enddef;
+
+
+
+% Set up a transform |curtx=tx.a| that takes |x.a| into |x'a| and |x.b|
+% into |x'b| without slanting or changing $y$-components.
+
+vardef set_tx(suffix a,b) =
+ save u,v;
+ xypart tx.a = yxpart tx.a = 0;
+ (x.a,0) transformed tx.a = (x'a,0);
+ (u,v) = (x.b,1) transformed tx.a - (x'b,1);
+ if known u: xxpart tx.a = yypart tx.a = 1;
+ else: (u,v)=origin;
+ fi
+ curtx := tx.a
+enddef;
+
+
+% Set up a transform |curty=ty.a| that takes |y.a| into |y'a| and |y.b|
+% into |y'b| without slanting or changing $x$-components.
+
+vardef set_ty(suffix a,b) =
+ save u,v;
+ xypart ty.a = yxpart ty.a = 0;
+ (0,y.a) transformed ty.a = (0,y'a);
+ (u,v) = (1,y.b) transformed ty.a - (1,y'b);
+ if known v: xxpart ty.a = yypart ty.a = 1;
+ else: (u,v)=origin;
+ fi
+ curty := ty.a
+enddef;
+
+
+% The following macros ensure that |x'i| or |y'i| agree with the current
+% transform. It is important that this be done for all relevant |i| each
+% time |set_tx| or |set_ty| is called. Since some points may be tied to
+% others, this can affect which |x'j| and |y'j| are known. Future calls to
+% |set_tx| and |set_ty| should be based on the most up to date possible
+% information.
+
+vardef yset@# = (0,y'@#) = (0,y@#) transformed curty; enddef;
+vardef xset@# = (x'@#,0) = (x@#,0) transformed curtx; enddef;
+
+
+% Apply |set_txy| to each pair indices |a,b| such that |xy'[a]| and |xy'[b]|
+% are known, but |xy'[c] is unknown for all |c| between |a| and |b|.
+% This leaves the appropriate initial transformation in |curtx| or |curty|.
+% The |xyset| parameter is either |xset| or |yset| as explained above.
+
+vardef set_trans(suffix xy, set_txy, xyset) =
+ save previ, firsti;
+ for i=1 upto n: if known xy'[i]:
+ if known firsti:
+ set_txy([previ], [i]);
+ for j=previ+1 upto i-1: xyset[j]; endfor
+ else: firsti = i;
+ fi
+ previ := i;
+ fi endfor
+ if known firsti:
+ for i=1 upto firsti: if known xy'[i]:
+ set_txy([previ], [i]);
+ if previ>=firsti:
+ for j=previ+1 upto n: xyset[j]; endfor
+ for j=1 upto i-1: xyset[j]; endfor
+ else:
+ for j=previ+1 upto i-1: xyset[j]; endfor
+ fi
+ previ:=i;
+ fi endfor
+ else:
+ for i=1 upto n: xyset[i]; endfor
+ fi
+enddef;
+
+
+
+% Return the transformed $i$th segement of |p_path| as defined by the time
+% values in |t[]|, updating |curtx| and |curty| if appropriate.
+
+vardef new_seg(expr i) =
+ save p; path p;
+ if known tx[i]: curtx:=tx[i]; fi
+ if known ty[i]: curty:=ty[i]; fi
+ p = subpath (t[i],t[i+1]) of p_path transformed (curtx transformed curty);
+ p
+enddef;
+
+
+
+% The following macros are used only when |t| entries are readjusted:
+
+
+% Find the first time on the path |p| where the direction is |dir| or |-dir|.
+
+def extremetime expr dir of p =
+ begingroup save a,b;
+ a = directiontime dir of p; if a<0: a:=infinity; fi
+ b = directiontime -dir of p; if b<0: b:=infinity; fi
+ if a<b: a else: b fi
+ endgroup
+enddef;
+
+
+% Adjust the time value |tt| to the nearest time when the direction of |p_path|
+% is |dir| or |-dir|.
+
+vardef adj_t(suffix tt)(expr dir) =
+ save p, a, b; path p;
+ p = subpath (tt,tt+nn) of p_path & cycle;
+ a = extremetime dir of p;
+ a := if a<1: a[tt,floor tt+1] else: a+floor tt fi;
+ b = extremetime dir of reverse p;
+ b := if b<1: b[tt,ceiling tt-1] else: ceiling tt - b fi;
+ tt := if b+a>2tt: b else: a fi;
+enddef;
+
+
+% Issue an error message when |t[i]>t[i+1]| after the above adjustment process.
+
+vardef bad_order(expr i) =
+ initerim showstopping:=0;
+ show t[i], t[i+1];
+ errmessage "Adjusted t entries "&decimal i&" and "&decimal(i+1)
+ &" are out of order. (See above)";
+enddef;
+
+
+% The |adj_fill| macro performs the entire adjustment and filling based on
+% the following parameters: a list |tfx| of |t| indices for points whose
+% $x$-coordinates should not be moved during the adjustment process, a similar
+% list |tfy| for $y$-coordinates, a list of pairs $(i,j)$ where $i$ is a |t|
+% index and |tiept[j]| is the corresponding tie point, lists |tv| and |th| of
+% pairs of |t| indices that correspond to opposite sides of vertical and
+% horizontal strokes, and finally a cyclic path |p|. (Note the scaling by |h|
+% and |v|.)
+
+vardef adj_fill@#(text tfx, tfy, tie, tv, th)(expr p) =
+% message str@#; % that's for use with the stem-round message above
+ save p_path, nn, x, y, tx, ty, curtx, curty;
+ path p_path, p_path';
+ transform tx[], ty[], curtx, curty;
+ p_path = p transformed (identity xscaled h yscaled v transformed rot);
+ nn = length p_path;
+ if proofing>1:
+ makelabel(str @#, point 0 of p_path);
+ for i=1 upto nn-1: makelabel(decimal i, point i of p_path); endfor
+ fi
+ forsuffixes i=tfx: x.fix.i=1; endfor % Prepare for |adj_t| calls.
+ forsuffixes i=tfy: y.fix.i=1; endfor
+ for w=1 tv: if pair w: (x.fix[xpart w],x.fix[ypart w]) = (1,1); fi endfor
+ for w=1 th: if pair w: (y.fix[xpart w],y.fix[ypart w]) = (1,1); fi endfor
+ for i=1 upto n:
+ if t[i]>floor t[i]:
+ if unknown x.fix[i]: adj_t(t[i],right); fi
+ if unknown y.fix[i]: adj_t(t[i],up); fi
+ fi
+ endfor
+ t[n+1] := t1+nn;
+ for i=1 upto n: if t[i]>t[i+1]: bad_order(i); fi endfor
+ for i=1 upto n: z[i] = point t[i] of p_path; endfor
+ forsuffixes i=tfx: x'i =x.i; endfor
+ forsuffixes i=tfy: y'i =y.i; endfor
+ for w=1 tie: if pair w: z'[xpart w] = tiept[ypart w]; fi endfor
+ for w=1 tv: if pair w: rnd_pr_x([xpart w], [ypart w]); fi endfor
+ for w=1 th: if pair w: rnd_pr_y([xpart w], [ypart w]); fi endfor
+ curtx=curty=identity;
+ set_trans(x, set_tx, xset);
+ set_trans(y, set_ty, yset);
+ p_path' = if n=0: p_path else:
+ for i=1 upto n: new_seg(i)-- endfor cycle
+ fi;
+ interim autorounding := 0;
+ interim smoothing := 0;
+ begingroup save currenttransform;
+ transform currenttransform; currenttransform:=identity;
+ if known fillwhite:
+ draw p_path' withpen pencircle scaled 4; % was scaled 2
+ else:
+ begingroup save pic; % Now fill
+ picture pic;
+ pic=currentpicture;
+ currentpicture:=nullpicture;
+ interim turningcheck := 0;
+ fill p_path';
+ cull currentpicture dropping origin;
+ addto currentpicture also pic;
+ endgroup;
+ fi
+ endgroup;
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/ams/euex10.mf b/Master/texmf-dist/fonts/source/public/ams/euex10.mf
new file mode 100644
index 00000000000..4878597d996
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/euex10.mf
@@ -0,0 +1,118 @@
+%% @metafontfile{
+%% filename="euex10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "65181 118 680 6136"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% euex10, the euler extension font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Extension 10 point (variant of cmex10 for use with AMS Euler)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EUEX V2.2"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 40/36pt#, % big\_op\_spacing1
+ 60/36pt#, % big\_op\_spacing2
+ 72/36pt#, % big\_op\_spacing3
+ 216/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate ebigop % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/euex7.mf b/Master/texmf-dist/fonts/source/public/ams/euex7.mf
new file mode 100644
index 00000000000..f927a2d834e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/euex7.mf
@@ -0,0 +1,118 @@
+%% @metafontfile{
+%% filename="euex7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "03756 118 680 6133"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% euex7, the euler extension font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Extension 7 point (variant of cmex10 for use with AMS Euler)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EUEX V2.2"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 28/36pt#, % big\_op\_spacing1
+ 42/36pt#, % big\_op\_spacing2
+ 50.4/36pt#, % big\_op\_spacing3
+ 154/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate ebigop % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/euex8.mf b/Master/texmf-dist/fonts/source/public/ams/euex8.mf
new file mode 100644
index 00000000000..b398702bd79
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/euex8.mf
@@ -0,0 +1,118 @@
+%% @metafontfile{
+%% filename="euex8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "37154 118 680 6154"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% euex8, the euler extension font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Extension 8 point (variant of cmex10 for use with AMS Euler)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EUEX V2.2"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 32/36pt#, % big\_op\_spacing1
+ 48/36pt#, % big\_op\_spacing2
+ 57.6/36pt#, % big\_op\_spacing3
+ 175/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate ebigop % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/euex9.mf b/Master/texmf-dist/fonts/source/public/ams/euex9.mf
new file mode 100644
index 00000000000..8f73f7c2f7e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/euex9.mf
@@ -0,0 +1,118 @@
+%% @metafontfile{
+%% filename="euex9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "10807 118 680 6124"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% euex9, the euler extension font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Extension 9 point (variant of cmex10 for use with AMS Euler)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EUEX V2.2"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=10/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 36/36pt#, % big\_op\_spacing1
+ 54/36pt#, % big\_op\_spacing2
+ 64.8/36pt#, % big\_op\_spacing3
+ 196/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate ebigop % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufb10.mf b/Master/texmf-dist/fonts/source/public/ams/eufb10.mf
new file mode 100644
index 00000000000..c8f941d0d66
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufb10.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufb10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "45060 47 207 1811"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufb10, the euler Fraktur bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Bold 10pt ---------------------------------
+
+ font_identifier := "EUFB V2.2";
+
+ ptsize = 10;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.18;
+
+ input eufbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufb5.mf b/Master/texmf-dist/fonts/source/public/ams/eufb5.mf
new file mode 100644
index 00000000000..adc27fdb9b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufb5.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufb5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "44573 47 207 1816"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufb5, the Euler Fraktur bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Bold 5pt ----------------------------------
+
+ font_identifier := "EUFB V2.2";
+
+ ptsize = 5;
+
+ leftside# = rightside# = 300h#;
+
+ xscale_factor := 1.3;
+
+ input eufbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufb6.mf b/Master/texmf-dist/fonts/source/public/ams/eufb6.mf
new file mode 100644
index 00000000000..077458de2b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufb6.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufb6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "44841 47 207 1816"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufb6, the Euler Fraktur bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Bold 6pt ---------------------------------
+
+ font_identifier := "EUFB V2.2";
+
+ ptsize = 6;
+
+ leftside# = rightside# = 150h#;
+
+ xscale_factor := 1.25;
+
+ input eufbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufb7.mf b/Master/texmf-dist/fonts/source/public/ams/eufb7.mf
new file mode 100644
index 00000000000..9b3c51a96c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufb7.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufb7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "50896 47 207 1816"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufb7, the Euler Fraktur bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Bold 7pt ----------------------------------
+
+ font_identifier := "EUFB V2.2";
+
+ ptsize = 7;
+
+ leftside# = rightside# = 100h#;
+
+ xscale_factor := 1.2;
+
+ input eufbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufb8.mf b/Master/texmf-dist/fonts/source/public/ams/eufb8.mf
new file mode 100644
index 00000000000..0c8859f85aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufb8.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufb8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "23921 47 207 1814"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufb8, the Euler Fraktur bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Bold 8pt ---------------------------------
+
+ font_identifier := "EUFB V2.2";
+
+ ptsize = 8;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.19;
+
+ input eufbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufb9.mf b/Master/texmf-dist/fonts/source/public/ams/eufb9.mf
new file mode 100644
index 00000000000..054dd8a44d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufb9.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufb9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "24433 47 207 1814"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufb9, the Euler Fraktur bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Bold 9pt ---------------------------------
+
+ font_identifier := "EUFB V2.2";
+
+ ptsize = 9;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.18;
+
+ input eufbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufbch.mf b/Master/texmf-dist/fonts/source/public/ams/eufbch.mf
new file mode 100644
index 00000000000..a43c7933b66
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufbch.mf
@@ -0,0 +1,6335 @@
+%% @metafontfile{
+%% filename="eufbch.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "51566 6335 18870 206658"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the driver file for use with
+%% the Euler Fraktur bold fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Fraktur Bold
+
+% ----- This font is set up as Text Font, \textfont0, page 427 of TeXbook
+% however, there are some alternate characters in nonstandard positions
+
+mode_setup;
+font_coding_scheme "TeX text subset";
+
+% EULER FRAKTUR BOLD PARAMETERS
+
+% These all in bitpad numbers (.001"):
+
+ programem = 3700;
+ baseline = 0;
+ ascender = capheight;
+ descender = 700;
+ capheight = 2560;
+ depthy = 700; % depthy = 500;
+ lcbody = 1760; % same for medium and bold.
+ dotheight = capheight; % dotheight = 2600;
+ theight = 2330;
+ lfigheight = capheight;
+ nfigbody = lcbody;
+ nfigascender = ascender;
+ nfigdescender = descender;
+
+% the next lines added since everything was digitized too high! --- DEK
+extra_beginchar:=extra_beginchar & "rot:=initrot;";
+transform initrot; initrot:=identity;
+
+input eubase;
+
+% set individual character widths for bold lower case
+
+% 20h# means 20 bitpad units.
+
+lefta# = 0h#; righta# = 0h#;
+leftb# = 0h#; rightb# = -50h#;
+leftc# = 0h#; rightc# = 0h#;
+leftd# = 0h#; rightd# = 0h#;
+lefte# = 0h#; righte# = 50h#;
+leftf# = 0h#; rightf# = 0h#;
+leftg# = 0h#; rightg# = 0h#;
+lefth# = 0h#; righth# = 0h#;
+lefti# = 0h#; righti# = 0h#;
+leftj# = 0h#; rightj# = 0h#;
+leftk# = 0h#; rightk# = 0h#;
+leftl# = 0h#; rightl# = 0h#;
+leftm# = 0h#; rightm# = 0h#;
+leftn# = 0h#; rightn# = 0h#;
+lefto# = 0h#; righto# = 0h#;
+leftp# = 40h#; rightp# = 0h#;
+leftq# = 0h#; rightq# = 0h#;
+leftr# = 0h#; rightr# = 0h#;
+lefts# = 0h#; rights# = 0h#;
+leftt# = 0h#; rightt# = 0h#;
+leftu# = 0h#; rightu# = 0h#;
+leftv# = 0h#; rightv# = 0h#;
+leftw# = 0h#; rightw# = 0h#;
+leftx# = 0h#; rightx# = 0h#;
+lefty# = 0h#; righty# = 0h#;
+leftz# = 0h#; rightz# = 0h#;
+
+% BOLD NONLINING FIGURES
+no_stem_round;
+
+"rbn0";
+
+%charbegin( "0", 1837h#, nfigbody*v#, baseline );
+charbegin( "0", 1858h#, nfigbody*v#, baseline ); % DEK
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 15;
+t9 := 17;
+t10 := 19;
+
+adj_fill.A(1, 6) % fixed x points
+ () % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((4,7), (2,9)) % verticals
+ ((5,6), (3,8), (1,10)) % horizontals
+ ((983,1856){-301,-129}... % 0
+ (473,1526){-1,-1}... % 1
+ (127,692){0,-1}... % 2
+ (345,131){1,-1}... % 3
+ (744,-42){1,0}... % 4
+ (1033,39){592,311}... % *5
+ (1336,269){1,1}... % 6
+ (1670,1015){0,1}... % 7
+ (1412,1622){-1,1}...{-450,131} % 8
+ (983,1856)-- % 9
+ (755,1554){279,-80}... % 10
+ (1086,1344){1,-1}... % 11
+ (1342,781){0,-1}... % 12
+ (1310,525){-122,-425}... % *13
+ (1220,356){-1,-1}... % 14
+ (965,271){-1,0}... % 15
+ (683,387){-1,1}... % 16
+ (444,962){0,1}... % 17
+ (551,1380){649,1140}...{283,81} % 18
+ (755,1554)--cycle); % 19
+
+endchar(0);
+
+"rbn1";
+
+%charbegin( "1", 1868h#, nfigbody*v#, baseline );
+charbegin( "1", 1858h#, nfigbody*v#, baseline ); % DEK
+n := 8;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((4,5), (2,6), (7,8)) % verticals
+ ((3,4), (1,8)) % horizontals
+ ((303,1667){381,-49}... % 0
+ (589,1619){286,-48}... % 1
+ (771,1481){117,-346}... % 2
+ (799,1245){0,-1}... % 3
+ (760,251){-23,-401}... % 4
+ (673,168){-212,3}...{-1,0} % 5
+ (171,176){0,-1}...{-2,-175} % 6
+ (169,1)-- % 7
+ (1719,1){-5,156}...{0,1} % 8
+ (1714,157){-1,0}... % 9
+ (1218,156){-305,12}... % 10
+ (1150,231){9,464}... % 11
+ (1150,896){0,1}...{31,281} % 12
+ (1202,1811){-643,-19}...{-905,-28} % 13
+ (297,1783)--cycle); % 14
+
+endchar(0);
+
+"rbn2";
+
+%charbegin( "2", 1859h#, nfigbody*v#, baseline );
+charbegin( "2", 1858h#, nfigbody*v#, baseline ); % DEK
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+t9 := 16.75;
+t10 := 17;
+t11 := 18;
+
+adj_fill.A(6, 9, 10) % fixed x points
+ (5) % fixed y points
+ () % tied points
+ ((3,8), (1,2)) % verticals
+ ((4,7), (2,11)) % horizontals
+ ((1685,4){-1547,9}...{-1547,9} % 0
+ (138,13){-1,79}...{-1,79} % 1
+ (137,92){404,408}... % 2
+ (541,500){404,408}... % 3
+ (853,895){422,734}... % *4
+ (963,1234){0,1}... % 5
+ (879,1481){-1,1}... % 6
+ (701,1558){-1,0}...{-383,-206} % 7
+ (299,1406)-- % 8
+ (242,1508){406,287}... % 9
+ (632,1738){690,309}... % *10
+ (932,1817){1,0}... % 11
+ (1240,1718){1,-1}... % 12
+ (1347,1431){0,-1}... % 13
+ (1267,1169){-310,-581}... % *14
+ (1037,850){-411,-462}... % 15
+ (626,388){-223,-238}... % 16
+ (622,375){.6415,-1.309}... % 17
+ (675,355){585,36}...{307,15} % 18
+ (1725,391){42,-14}...{42,-14} % 19
+ (1767,377)--cycle); % 20
+
+endchar(0);
+
+"rbn3";
+
+%charbegin( "3", 1849h#, nfigbody*v#, nfigdescender*v#);
+charbegin( "3", 1858h#, nfigbody*v#, nfigdescender*v#); % DEK
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 12;
+t9 := 13;
+t10 := 14;
+t11 := 16;
+t12 := 18;
+t13 := 21;
+t14 := 23;
+t15 := 24;
+
+adj_fill.A(9, 15) % fixed x points
+ (1, 8) % fixed y points
+ () % tied points
+ ((6,11), (5,12), (3,13)) % verticals
+ ((7,10), (4,5), (2,14)) % horizontals
+ ((162,-413){432,-256}... % 0
+ (620,-552){1,0}... % 1
+ (1029,-397){1,1}... % 2
+ (1196,62){0,1}... % 3
+ (1079,457){-1,1}... % 4
+ (835,574){-648,158}...{-1,0} % *5
+ (431,615){0,141}...{0,141} % 6
+ (431,756){1,0}... % 7
+ (977,933){1,1}... % 8
+ (1087,1235){0,1}... % 9
+ (968,1503){-1,1}... % 10
+ (757,1565){-1,0}...{-415,-279} % 11
+ (393,1418)-- % 12
+ (321,1486){364,382}... % 13
+ (964,1805){1,0}... % 14
+ (1333,1673){1,-1}... % 15
+ (1461,1376){0,-1}... % 16
+ (1306,998){-1,-1}...{-325,-123} % 17
+ (986,786){11,-43}...{11,-43} % 18
+ (997,743){495,-17}... % 19
+ (1483,553){1,-1}... % 20
+ (1640,152){0,-1}... % 21
+ (1405,-439){-1,-1}... % 22
+ (718,-714){-1,0}...{-447,341} % 23
+ (94,-492)--cycle); % 24
+
+endchar(0);
+
+"rbn4";
+
+%charbegin( "4", 1863h#, nfigbody*v#, nfigdescender*v#);
+charbegin( "4", 1858h#, nfigbody*v#, nfigdescender*v#); % DEK
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 8;
+t7 := 10;
+t8 := 11;
+t9 := 13;
+t10 := 14;
+t11 := 15;
+
+adj_fill.A(1, 4, 7) % fixed x points
+ (3, 8) % fixed y points
+ ((5,1), (6,2), (9,2), (10,1), (11,3)) % tied points
+ ((2,9)) % verticals
+ ((5,6)) % horizontals
+ ((1772,225){-325,0}...{-325,0} % 0
+ (1447,225){6,253}...{0,1} % 1
+ (1476,1782){-31,51}...{-31,51} % 2
+ (1445,1833){-306,-57}...{-306,-57} % 3
+ (1139,1776){-1097,-1671}...{-1097,-1671}% 4
+ (42,105){0,-107}...{0,-107} % 5
+ (42,-2){1016,0}...{1016,0} % 6
+ (1058,-2)-- % 7
+ (1058,225){-712,0}...{-712,0} % 8
+ (346,225){-2,27}...{-2,27} % 9
+ (344,252){354,581}...{160,205} % 10
+ (1051,1341){14,-14}...{14,-14} % 11
+ (1065,1327){0,-1}... % 12
+ (1058,225){-.006352,-2}...{0,-227} % 13
+ (1058,-2){389,-4}...{389,-4} % 14
+ (1447,-6){1,0}...{264,2} % 15
+ (1711,-4)--cycle); % 16
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((1087,-732){-35,36}...{-35,36} % 0
+ (1052,-696){11,370}...{0,1} % 1
+ (1058,-2)-- % 2
+ (1447,-6){0,-1}...{19,-373} % 3
+ (1459,-572)--cycle); % 4
+
+endchar(0);
+
+"rbn5";
+
+%charbegin( "5", 1857h#, nfigbody*v#, nfigdescender*v#);
+charbegin( "5", 1858h#, nfigbody*v#, nfigdescender*v#); % DEK
+
+n := 13;
+t1 := 1;
+t2 := 3;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 13;
+t10 := 15;
+t11 := 17;
+t12 := 18;
+t13 := 19;
+
+adj_fill.A(6, 13) % fixed x points
+ (7) % fixed y points
+ () % tied points
+ ((4,9), (2,11)) % verticals
+ ((5,8), (3,10), (1,12)) % horizontals
+ ((1524,1437){-1047,0}...{-1047,0} % 0
+ (477,1437){-20,-245}...{0,-1} % 1
+ (457,806){28,6}...{28,6} % 2
+ (485,812){269,122}... % 3
+ (885,895){1,0}... % 4
+ (1432,715){1,-1}... % 5
+ (1624,212){0,-1}... % 6
+ (1400,-422){-1,-1}... % 7
+ (705,-707){-1,0}...{-292,205} % 8
+ (57,-510)-- % 9
+ (110,-414){519,-352}... % 10
+ (536,-563){1,0}... % 11
+ (960,-398){1,1}... % 12
+ (1162,163){0,1}... % 13
+ (1012,611){-1,1}... % 14
+ (717,713){-1,0}...{-229,-214} % 15
+ (382,561){-85,38}...{-85,38} % 16
+ (297,599){0,1182}...{0,1182} % 17
+ (297,1781){1321,0}...{1321,0} % 18
+ (1618,1781)--cycle); % 19
+
+endchar(0);
+
+"rbn6";
+
+%charbegin( "6", 1857h#, lfigheight*v#, baseline );
+charbegin( "6", 1858h#, lfigheight*v#, baseline ); % DEK
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 12;
+t10 := 14;
+t11 := 16;
+t12 := 19;
+t13 := 20;
+t14 := 23;
+
+adj_fill.A(1, 7) % fixed x points
+ (8) % fixed y points
+ ((7,1), (8,2), (12,2), (13,1)) % tied points
+ ((5,10), (3,12)) % verticals
+ ((6,9), (4,11), (2,14)) % horizontals
+ ((1717,2578){-290,51}... % 0
+ (1545,2606){-1,0}... % 1
+ (656,2185){-1,-1}... % 2
+ (149,936){0,-1}... % 3
+ (421,134){1,-1}... % 4
+ (817,-43){1,0}... % 5
+ (1458,238){1,1}... % 6
+ (1713,800){0,1}... % 7
+ (1513,1284){-1,1}... % 8
+ (1124,1430){-1,0}...{-442,-313} % 9
+ (532,1203)-- % 10
+ (541,1059){476,269}... % 11
+ (904,1185){1,0}... % 12
+ (1231,1059){1,-1}... % 13
+ (1410,612){0,-1}... % 14
+ (1266,257){-1,-1}... % 15
+ (1021,146){-1,0}... % 16
+ (780,251){-1,1}... % 17
+ (613,565){-239,808}...{-16,456} % *18
+ (541,1059){-9,144}...{-9,144} % 19
+ (532,1203){18,492}... % 20
+ (628,1772){327,965}... % *21
+ (859,2168){1,1}... % 22
+ (1329,2390){1,0}...{255,-174} % 23
+ (1604,2305){79,6}...{79,6} % 24
+ (1683,2311)--cycle); % 25
+
+endchar(0);
+
+"rbn7";
+
+%charbegin( "7", 1851h#, nfigbody*v#, nfigdescender*v#);
+charbegin( "7", 1858h#, nfigbody*v#, nfigdescender*v#); % DEK
+n := 4;
+t1 := 2;
+t2 := 3;
+t3 := 5;
+t4 := 10;
+
+adj_fill.A() % fixed x points
+ (4) % fixed y points
+ () % tied points
+ ((1,2)) % verticals
+ ((2,3)) % horizontals
+ ((533,-727){145,337}...{392,569} % 0
+ (1852,1686){0,87}...{0,87} % 1
+ (1852,1773){-1581,0}...{-1581,0} % 2
+ (271,1773)-- % 3
+ (176,1392){43,-40}...{43,-40} % 4
+ (219,1352){1141,36}... % 5
+ (1360,1388){272,17}... % 6
+ (1390,1372){.7409,-1.461}... % 7
+ (1383,1323){-287,-484}...{-312,-493} % 8
+ (168,-646){13,-85}...{13,-85} % 9
+ (181,-731)--cycle); % 10
+
+endchar(0);
+
+"rbn8";
+
+%charbegin( "8", 1847h#, lfigheight*v#, baseline );
+charbegin( "8", 1858h#, lfigheight*v#, baseline ); % DEK
+n := 20;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 19;
+t12 := 21;
+t13 := 23;
+t14 := 25;
+t15 := 26;
+t16 := 27;
+t17 := 29;
+t18 := 31;
+t19 := 33;
+t20 := 35;
+
+adj_fill.A(1, 11) % fixed x points
+ (10, 20) % fixed y points
+ ((1,1), (5,1), (6,2), (10,3), (11,4), (15,4), (16,3), (20,2))% tied points
+ ((9,12), (7,14), (4,17), (2,19)) % verticals
+ ((8,13), (3,18)) % horizontals
+ ((825,1214){376,-228}... % 0
+ (1167,965){1,-1}... % 1
+ (1352,582){0,-1}... % 2
+ (1223,252){-1,-1}... % 3
+ (943,154){-1,0}... % 4
+ (691,258){-1,1}... % 5
+ (498,725){0,1}... % 6
+ (605,1062){1,1}...{327,163} % 7
+ (825,1214){339,261}...{339,261} % 8
+ (1164,1475){271,180}... % 9
+ (1502,1803){461,693}... % *10
+ (1625,2168){0,1}... % 11
+ (1493,2477){-1,1}... % 12
+ (1285,2588){-541,167}...{-382,25} % *13
+ (952,2644){-394,-152}... % 14
+ (468,2360){-1,-1}... % 15
+ (275,1972){0,-1}... % 16
+ (391,1655){442,-665}...{563,-464} % *17
+ (717,1307)-- % 18
+ (1049,1581){-521,433}... % 19
+ (733,1889){-427,529}... % *20
+ (622,2110){0,1}... % 21
+ (693,2333){500,697}...{264,100} % 22
+ (848,2459){425,-28}... % 23
+ (1164,2331){1,-1}... % 24
+ (1274,2040){0,-1}...{-296,-200} % 25
+ (1049,1581){-332,-274}...{-332,-274} % 26
+ (717,1307){-425,-215}... % 27
+ (327,1057){-1,-1}... % 28
+ (142,595){0,-1}... % 29
+ (320,153){1,-1}... % 30
+ (797,-20){1,0}... % 31
+ (1472,237){1,1}... % 32
+ (1699,763){0,1}... % 33
+ (1478,1240){-1,1}...{-336,229} % 34
+ (1164,1475)--cycle); % 35
+
+endchar(0);
+
+"rbn9";
+
+%charbegin( "9", 1846h#, nfigbody*v#, nfigdescender*v#);
+charbegin( "9", 1858h#, nfigbody*v#, nfigdescender*v#); % DEK
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+t9 := 14;
+t10 := 17;
+t11 := 20;
+t12 := 22;
+t13 := 23;
+t14 := 25;
+
+adj_fill.A(1, 6) % fixed x points
+ () % fixed y points
+ ((6,1), (7,2), (12,2), (13,1)) % tied points
+ ((4,9), (2,11)) % verticals
+ ((5,8), (3,10), (1,14)) % horizontals
+ ((262,-723){1,0}... % 0
+ (1322,-332){1,1}... % 1
+ (1722,818){0,1}... % 2
+ (1439,1599){-1,1}...{-1,0} % 3
+ (851,1804){-252,-137}... % 4
+ (298,1459){-1,-1}... % 5
+ (92,881){0,-1}... % 6
+ (302,351){1,-1}... % 7
+ (675,160){1,0}... % 8
+ (849,196){397,180}...{397,180} % 9
+ (1246,376)-- % 10
+ (1201,482){-1,-1}... % 11
+ (985,427){-1,0}... % 12
+ (714,522){-1,1}... % 13
+ (474,1052){0,1}... % 14
+ (506,1308){124,426}... % *15
+ (598,1478){1,1}... % 16
+ (811,1571){1,0}... % 17
+ (1084,1424){1,-1}... % 18
+ (1232,1163){200,-635}... % *19
+ (1284,789){0,-1}... % 20
+ (1262,602){-83,-307}... % *21
+ (1201,482){-1,-1}...{45,-106} % 22
+ (1246,376){-51,-683}... % 23
+ (918,-364){-1,-1}...{-538,-41} % 24
+ (267,-608)--cycle); % 25
+
+endchar(0);
+
+% LOWER CASE
+set_stem_round(300,320,340,340,360,390);
+initrot:=identity shifted(0,-60v);
+more_side(100h#); % DEK
+
+"fbla";
+
+charbegin( "a", 1690h#, lcbody*v#, baseline );
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 9;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ ((2,4), (3,1), (4,2), (5,3)) % tied points
+ ((3,6)) % verticals
+ () % horizontals
+ ((1742,364){-455,-410}...{-455,-410} % 0
+ (1287,-46){-223,383}...{-449,462} % 1
+ (1064,259){-4,98}...{-4,98} % 2
+ (1060,357){-3,109}...{-3,109} % 3
+ (1057,466){-8,949}...{-8,949} % 4
+ (1049,1415){177,274}...{177,274} % 5
+ (1226,1689)-- % 6
+ (1434,1791){23,-25}...{23,-25} % 7
+ (1457,1766){-145,-693}... % 8
+ (1405,1025){0,-1}...{16,-351} % 9
+ (1416,590){161,-233}...{161,-233} % 10
+ (1577,357){147,73}...{147,73} % 11
+ (1724,430)--cycle); % 12
+
+n := 6;
+t1 := 0;
+t2 := 2.202;
+t3 := 5;
+t4 := 6;
+t5 := 8.408;
+t6 := 11;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (3,3), (4,2), (6,1)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1060,357){-585,-414}...{-585,-414} % 0
+ (475,-57){-236,224}...{-329,470} % 1
+ (153,330){-17,383}...{94,685} % 2
+ (212,1418){255,132}...{329,232} % 3
+ (832,1807){202,-96}...{385,-74} % 4
+ (1226,1689)-- % 5
+ (1049,1415){-1,0}...{-487,145} % 6
+ (592,1498){-278,-506}... % 7
+ (516,1157){-72,-927}...{23,-358} % *8
+ (520,571){305,-356}...{216,-173} % 9
+ (776,306){281,160}...{281,160} % 10
+ (1057,466)--cycle); % 11
+
+endchar(0);
+
+"fblb";
+
+charbegin( "b", 1700h# + leftb# + rightb#, ascender*v#, baseline );
+
+n := 9;
+t1 := 5;
+t2 := 9;
+t3 := 11;
+t4 := 12;
+%t5 := 15;
+t5 := 14.6; % DEK
+t6 := 18;
+t7 := 19;
+t8 := 20;
+t9 := 24;
+
+adj_fill.A(3, 9) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (7,2), (8,1)) % tied points
+ ((2,5), (1,6)) % verticals
+ () % horizontals
+ ((835,2617){-316,-170}...{-445,-326} % 0
+ (311,2266){-79,288}... % 1
+ (232,2554){-1.147,.4945}... % 2
+ (220,2552){-62,-33}...{-62,-33} % *3
+ (170,2521){24,-240}... % 4
+ (210,1582){0,-1}...{-53,-550} % 5
+ (170,323){143,-170}...{322,-268} % 6
+ (570,-59){309,128}...{630,408} % 7
+ (1422,415){87,550}...{-43,839} % 8
+ (1471,1593){-391,187}...{-406,231} % 9
+ (1034,1812){-472,-353}...{-472,-353} % 10
+ (562,1459)-- % 11
+ (568,1349){217,124}...{217,124} % 12
+ (785,1473){307,-118}...{307,-118} % 13
+ (1092,1355){71,-780}... % 14
+ (1099,727){-98,-1094}...{-122,-287} % *15
+ (994,261){-305,96}... % 16
+ (802,360){-423,287}...{-238,221} % *17
+ (571,548){-24,692}...{0,1} % 18
+ (568,1349){-6,110}...{-6,110} % 19
+ (562,1459){0,1}... % 20
+ (560,1891){20,365}... % 21
+ (599,2180){115,464}... % *22
+ (675,2355){243,292}...{305,203} % 23
+ (898,2576)--cycle); % 24
+
+endchar(leftb#);
+
+"fblc";
+
+charbegin( "c",1254h#, lcbody*v#, baseline );
+
+n := 5;
+t1 := 0;
+t2 := 2.5;
+t3 := 5;
+t4 := 10.5;
+t5 := 13;
+
+adj_fill.A(1, 3, 5) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,4)) % verticals
+ () % horizontals
+ ((1211,404){-316,-230}...{-488,-311} % 0
+ (594,-37){-257,223}...{-415,496} % 1
+ (186,385){-16,426}...{131,722} % 2
+ (212,1413){613,397}...{613,397} % 3
+ (825,1810){415,-87}...{387,-257} % 4
+ (1231,1649)-- % 5
+ (986,1292){-32,-1}...{-32,-1} % 6
+ (954,1291){-366,383}... % 7
+ (630,1515){-301,105}...{-31,-1} % 8
+ (599,1514){-19,-34}... % 9
+ (580,1480){-99,-483}...{37,-574} % 10
+ (561,631){512,-554}...{240,-192} % 11
+ (878,326){333,154}...{333,154} % 12
+ (1211,480)--cycle); % 13
+
+endchar(0);
+
+"fbld";
+
+charbegin( "d",1646h#, theight*v#, baseline );
+
+n := 5;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 10.5;
+t5 := 14;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((3,4), (2,5)) % verticals
+ () % horizontals
+ ((-103,2120){189,121}...{569,249} % 0
+ (454,2400){334,-91}... % 1
+ (938,2191){1025,-583}...{528,-425} % *2
+ (1479,1817){34,-303}...{-171,-571} % 3
+ (1365,461){-222,-214}...{-426,-297} % 4
+ (697,-46){-244,159}...{-305,317} % 5
+ (180,376){-6,299}...{100,784} % 6
+ (220,1328){185,198}...{402,311} % 7
+ (707,1760)-- % 8
+ (776,1723){-174,-157}...{-171,-202} % 9
+ (588,1519){-90,-407}...{22,-342} % 10
+ (552,606){411,-411}...{218,-106} % 11
+ (974,303){257,496}... % 12
+ (1112,825){142,1276}...{-25,330} % *13
+ (1116,1579){-367,349}... % 14
+ (607,1984){-894,547}... % *15
+ (222,2126){-1,0}...{-258,-116} % 16
+ (-44,2067)--cycle); % 17
+
+endchar(0);
+
+"fble";
+
+charbegin( "e", 1230h# + lefte# + righte#, lcbody*v#, baseline );
+
+slidex:=-40;
+
+n := 8;
+t1 := 3;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+%t7 := 11;
+t7 := 11.6; % DEK
+t8 := 14;
+
+adj_fill.A(3, 6, 8) % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (4,1), (5,2)) % tied points
+ ((1,7)) % verticals
+ () % horizontals
+ ((1206,460){-303,-147}...{-303,-147} % 0
+ (903+slidex,313){-236,171}...{-407,383}% 1
+ (530+slidex,610){-2,119}... % 2
+ (528+slidex,729){-.03567,2}...{-3,159} % 3
+ (525+slidex,888){-6,310}...{123,660} % 4
+ (555,1507){185,-178}...{289,-216} % 5
+ (915,1208+20){-1,-1}...{-39,-32} % 6
+ (525+slidex,888)-- % 7
+ (528+slidex,729){546,464}...{185,186} % 8
+ (1244,1401){-521,384}...{-231,232} % 9
+ (797,1804){-460,-261}...{-334,-212} % 10
+ (195,1428){-104,-773}...{25,-356} % 11
+ (167,380){428,-473}...{241,-179} % 12
+ (618,-42){512,339}...{136,102} % 13
+ (1237,402)--cycle); % 14
+endchar(lefte#);
+
+"fblf";
+% I switched this with character 2, for better discrimination with RB --- DEK
+%charbegin( 2, 1018h#, ascender*v#, descender*v#);
+charbegin("f", 1018h#, ascender*v#, descender*v#); % DEK
+
+n := 11;
+t1 := 1;
+t2 := 5;
+t3 := 7;
+t4 := 8;
+t5 := 12;
+t6 := 14;
+t7 := 16;
+t8 := 17;
+t9 := 19;
+t10 := 20;
+t11 := 21;
+
+adj_fill.A(3, 7, 11) % fixed x points
+ (5) % fixed y points
+ () % tied points
+ ((2,8), (4,6)) % verticals
+ ((2,4), (8,9), (1,10)) % horizontals
+ ((1032,2527){-410,-344}... % 0
+ (888,2467){-1,0}... % 1
+ (778,2503){-253,140}...{-324,284} % *2
+ (635,2607){-231,-211}...{-275,-391} % 3
+ (207,2114){0,-1}...{148,-600} % 4
+ (299,1539){-136,0}...{-136,0} % 5
+ (163,1539){-154,-163}...{-154,-163} % 6
+ (9,1376){312,0}...{312,0} % 7
+ (321,1376){9,-279}... % 8
+ (340,395){0,-1}... % 9
+ (262,-539){-73,-221}...{-73,-221} % 10
+ (189,-760)-- % 11
+ (255,-761){317,519}...{113,258} % 12
+ (624,-39){80,744}...{0,1} % 13
+ (698,1376){243,0}...{243,0} % 14
+ (941,1376){112,163}...{112,163} % 15
+ (1053,1539){-361,0}...{-361,0} % 16
+ (692,1539){-127,430}... % 17
+ (562,1859){-170,357}...{-10,137} % 18
+ (439,2230){281,-95}...{1,0} % 19
+ (796,2167){272,316}...{272,316} % 20
+ (1068,2483)--cycle); % 21
+
+endchar(0);
+
+"fblg";
+
+charbegin( "g",1665h#, lcbody*v#, descender*v#);
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 6;
+t6 := 7;
+t7 := 8;
+t8 := 11;
+
+adj_fill.A(5, 8) % fixed x points
+ () % fixed y points
+ ((1,6), (2,1), (3,2), (5,3), (6,4), (8,5))% tied points
+ ((4,7)) % verticals
+ () % horizontals
+ ((1098,355){-608,-487}...{-608,-487} % 0
+ (490,-132){-38,108}...{-38,108} % 1
+ (452,-24){-264,342}...{-264,342} % 2
+ (188,318){-19,239}...{165,726} % 3
+ (239,1415){135,94}...{557,318} % 4
+ (855,1811){402,-217}...{265,-52} % 5
+ (1257,1635)-- % 6
+ (1117,1330){-331,56}...{-285,134} % 7
+ (605,1516){-135,-757}...{27,-261} % 8
+ (575,550){262,-313}...{178,-96} % 9
+ (846,303){294,177}...{132,119} % 10
+ (1104,476)--cycle); % 11
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 8;
+t8 := 10;
+t9 := 12;
+t10 := 14;
+t11 := 18;
+
+adj_fill.B(8, 11) % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (4,6), (5,5), (6,4), (7,3))% tied points
+ ((4,9)) % verticals
+ ((3,10)) % horizontals
+ ((452,-24){38,-108}...{38,-108} % 0
+ (490,-132){192,-123}... % 1
+ (1031,-401){1,0}... % 2
+ (1171,-363){1,1}... % 3
+ (1197,-214){0,1}...{-172,752} % 4
+ (1098,355){6,121}...{6,121} % 5
+ (1104,476){-14,376}...{29,669} % 6
+ (1117,1330){140,305}...{140,305} % 7
+ (1257,1635)-- % 8
+ (1528,1782){39,-17}...{39,-17} % 9
+ (1567,1765){-311,-749}... % 10
+ (1484,1419){-111,-848}... % *11
+ (1456,917){0,-1}...{20,-147} % 12
+ (1597,-21){-442,-559}...{-245,-220} % 13
+ (963,-702){-542,-79}... % 14
+ (571,-656){-835,277}...{-212,149} % *15
+ (128,-425){-108,-72}...{-108,-72} % 16
+ (20,-497){-71,48}...{-71,48} % 17
+ (-51,-449)--cycle); % 18
+
+endchar(0);
+
+"fblh";
+
+charbegin( "h",1730h#, ascender*v#, descender*v#);
+
+n := 7;
+t1 := 3.387;
+t2 := 5;
+t3 := 6;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 13;
+
+adj_fill.A(7) % fixed x points
+ () % fixed y points
+ ((2,1), (3,1), (5,2), (6,3)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((817,2603){-134,-83}...{-420,-302} % 0
+ (330,2268){-75,281}...{-75,281} % 1
+ (255,2549){-59,-34}...{-59,-34} % 2
+ (196,2515){33,-454}...{-38,-637} % 3
+ (177,290){219,-266}...{180,-332} % 4
+ (390,-30)-- % 5
+ (390,-30){341,345}...{209,141} % 6
+ (753,282){-227,298}...{-191,326} % 7
+ (582,534){-57,641}...{26,347} % 8
+ (584,1345){0,109}...{0,109} % 9
+ (584,1454){0,1}... % 10
+ (592,1936){0,1}... % 11
+ (765,2470){1,1}...{188,87} % 12
+ (883,2549)--cycle); % 13
+
+n := 5;
+t1 := 0;
+t2 := 2.902;
+t3 := 6;
+t4 := 9.461;
+t5 := 12;
+
+adj_fill.B(3) % fixed x points
+ () % fixed y points
+ ((1,2), (5,3)) % tied points
+ ((2,4)) % verticals
+ () % horizontals
+ ((584,1345){196,108}...{196,108} % 0
+ (780,1453){166,-41}...{356,-222} % 1
+ (1098,1306){24,-308}... % 2
+ (1134,420){-19,-1467}... % *3
+ (1079,-161){-341,-1451}... % 4
+ (976,-416){-1,-1}...{-437,-237} % 5
+ (721,-629)-- % 6
+ (837,-707){457,473}...{222,303} % 7
+ (1417,-56){103,560}... % 8
+ (1481,615){64,1633}...{-17,579} % *9
+ (1481,1577){-351,148}...{-310,187} % 10
+ (1034,1804){-449,-380}...{-263,-174} % 11
+ (584,1454)--cycle); % 12
+
+endchar(0);
+
+"fbli";
+
+charbegin( "i",839h#, dotheight*v#, baseline );
+
+n := 8;
+t1 := 2;
+%t2 := 5;
+t2 := 4.4; % DEK
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 13;
+
+adj_fill.A(4, 8) % fixed x points
+ (1, 7) % fixed y points
+ () % tied points
+ ((2,6)) % verticals
+ ((3,5)) % horizontals
+ ((910,447){-165,-73}... % 0
+ (745,374){-165,-73}... % 1
+ (717,363){-1,0}... % 2
+ (620,465){-299,474}... % 3
+ (582,571){-14,350}...{36,737} % 4
+ (590,1622){-130,102}...{-254,227} % 5
+ (333,1828){-179,-171}...{-423,-325} % 6
+ (-94,1474)-- % 7
+ (-36,1430){121,63}...{121,63} % 8
+ (85,1493){120,-79}...{120,-79} % 9
+ (205,1414){43,-763}...{-46,-448} % 10
+ (187,268){383,-472}...{99,-195} % 11
+ (417,-37){432,384}...{167,120} % 12
+ (926,383)--cycle); % 13
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (3,1), (4,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((408,2057){-240,193}...{-374,417} % 0
+ (128,2329){286,271}...{286,271} % 1
+ (414,2600)-- % 2
+ (414,2600){395,-516}...{210,-187} % 3
+ (660,2334){-252,-277}...{-252,-277} % 4
+ (408,2057)--cycle); % 5
+
+endchar(0);
+
+"fblj";
+
+charbegin( "j",840h#, dotheight*v#, baseline );
+
+n := 4;
+t1 := 2;
+t2 := 4;
+t3 := 9;
+t4 := 12;
+
+adj_fill.A(2, 4) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,3)) % verticals
+ () % horizontals
+ ((-38,-694){301,295}...{409,477} % 0
+ (567,-49){74,437}...{-30,668} % 1
+ (630,1634){-229,166}...{-432,371} % 2
+ (349,1831){-422,-376}...{-422,-376} % 3
+ (-73,1455)-- % 4
+ (5,1403){118,64}... % 5
+ (123,1467){1,0}... % 6
+ (220,1420){1,-1}... % 7
+ (271,1270){59,-558}... % *8
+ (279,862){0,-1}... % 9
+ (263,-6){-30,-481}... % 10
+ (137,-377){-441,-566}...{-409,-289} % 11
+ (-160,-639)--cycle); % 12
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (3,1), (4,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((384,2061){-296,268}...{-372,472} % 0
+ (132,2320){254,266}...{254,266} % 1
+ (386,2586)-- % 2
+ (386,2586){303,-357}...{186,-184} % 3
+ (637,2332){-253,-271}...{-253,-271} % 4
+ (384,2061)--cycle); % 5
+
+endchar(0);
+
+"fblk";
+
+charbegin( "k",1255h#, ascender*v#, baseline );
+
+n := 17;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 5;
+t7 := 6;
+t8 := 7;
+t9 := 8;
+t10 := 10;
+t11 := 12;
+t12 := 13;
+t13 := 16;
+t14 := 17;
+t15 := 18;
+t16 := 19;
+t17 := 21;
+
+adj_fill.A(7, 11, 14) % fixed x points
+ (2, 10, 12, 17) % fixed y points
+ ((1,6), (2,1), (3,2), (4,3), (5,4), (6,5), (17,6))% tied points
+ ((9,13), (3,16)) % verticals
+ ((14,15), (7,8)) % horizontals
+ ((293,2550){85,-281}... % 0
+ (378,2269){.8533,-1.783}...{243,-356} % 1
+ (621,1913){0,-571}...{0,-571} % 2
+ (621,1342){99,0}...{99,0} % 3
+ (720,1342){184,0}... % 4
+ (904,1342){2,0}...{279,0} % 5
+ (1183,1342){-120,-141}...{-120,-141} % 6
+ (1063,1201){-453,0}...{-453,0} % 7
+ (610,1201){0,-1}...{32,-661} % 8
+ (631,563){282,-252}...{282,-252} % 9
+ (913,311){313,152}...{313,152} % 10
+ (1226,463)-- % 11
+ (1254,394){-445,-372}...{-246,-164} % 12
+ (633,-33){-277,266}...{-342,241} % 13
+ (229,324){78,553}... % 14
+ (241,486){27,877}...{27,877} % *15
+ (256,1201){-252,0}...{-252,0} % 16
+ (4,1201){155,141}...{155,141} % 17
+ (159,1342){101,0}...{101,0} % 18
+ (260,1342){0,1}... % 19
+ (227,2521){-63,531}...{66,29} % 20
+ (293,2550)--cycle); % 21
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((847,2586){-279,-149}...{-412,-372} % 0
+ (378,2269)-- % 1
+ (621,1913){0,1}... % 2
+ (642,2177){84,440}... % *3
+ (705,2353){150,231}...{353,198} % 4
+ (906,2539)--cycle); % 5
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 12;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,4), (3,3), (4,2), (6,5)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((720,1342){1,0}... % 0
+ (870,1464){257,320}... % 1
+ (954,1671){-.008375,1.85}...{-323,416} % 2
+ (832,1964){-226,-158}... % 3
+ (696,1838){-279,-403}... % 4
+ (640,1658){-75,-496}...{0,-1} % *5
+ (621,1342)-- % 6
+ (621,1913){447,367}...{217,150} % 7
+ (1053,2223){354,-477}... % 8
+ (1193,2002){188,-382}... % *9
+ (1241,1841){0,-1}... % 10
+ (1144,1640){-240,-298}...{-240,-298} % 11
+ (904,1342)--cycle); % 12
+
+endchar(0);
+
+"fbll";
+
+charbegin( "l",856h#, ascender*v#, baseline );
+
+n := 4;
+t1 := 0;
+%t2 := 3;
+t2 := 3.3; % DEK
+t3 := 7;
+%t4 := 9;
+t4 := 9.5; % DEK
+
+adj_fill.A(1, 3) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,4)) % verticals
+ () % horizontals
+ ((861,2549){-282,-231}... % 0
+ (734,2435){-210,-249}... % 1
+ (638,2215){-133,-574}... % *2
+ (601,1861){-8,-514}...{63,-676} % 3
+ (625,474){82,-108}...{82,-108} % 4
+ (707,366){170,71}...{170,70} % 5
+ (877,437)-- % 6
+ (879,371){-466,-401}...{-466,-401} % 7
+ (413,-30){-199,293}...{-212,279} % 8
+ (214,263){62,661}...{-11,370} % 9
+ (222,2491){58,43}...{58,43} % 10
+ (280,2534){70,-274}...{70,-274} % 11
+ (350,2260){436,349}...{251,146} % 12
+ (824,2583)--cycle); % 13
+
+endchar(0);
+
+"fblm";
+
+charbegin( "m",2689h#, lcbody*v#, baseline );
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+
+adj_fill.A(1, 4, 5) % fixed x points
+ () % fixed y points
+ ((2,2), (3,1)) % tied points
+ ((2,6)) % verticals
+ () % horizontals
+ ((800,254){-172,271}...{-172,271} % 0
+ (628,525){-19,312}...{18,701} % 1
+ (614,1352){-8,74}... % 2
+ (606,1426){-.04907,1.992}...{11,188} % 3
+ (617,1614){-122,82}...{-293,327} % 4
+ (375,1822){-426,-363}...{-426,-363} % 5
+ (-51,1459)-- % 6
+ (-9,1410){145,71}...{145,71} % 7
+ (136,1481){112,-99}...{112,-99} % 8
+ (248,1382){28,-814}...{-42,-359} % 9
+ (235,277){362,-487}...{143,-247} % 10
+ (443,-54)--cycle); % 11
+
+n := 5;
+t1 := 2;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (2,3), (3,1), (4,2)) % tied points
+ ((1,5)) % verticals
+ () % horizontals
+ ((1667,275){-177,268}...{-177,268} % 0
+ (1490,543){-7,319}...{48,820} % 1
+ (1495,1359){7,92}... % 2
+ (1502,1451){.1428,1.995}...{10,149} % 3
+ (1512,1600){-259,81}...{-499,281} % 4
+ (1076,1806){-150,-149}...{-450,-299} % 5
+ (606,1426)-- % 6
+ (614,1352){235,91}...{235,91} % 7
+ (849,1443){436,-130}...{150,-77} % 8
+ (1131,1342){23,-795}...{-75,-443} % 9
+ (1106,256){378,-569}...{187,-299} % 10
+ (1293,-43)--cycle); % 11
+
+n := 5;
+%t1 := 5;
+t1 := 4.5; % DEK
+t2 := 7;
+t3 := 8;
+t4 := 10;
+t5 := 13;
+
+adj_fill.C(5) % fixed x points
+ () % fixed y points
+ ((2,3), (3,4)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((2709,436){-143,-73}... % 0
+ (2566,363){-143,-73}... % 1
+ (2529,346){-1,0}... % 2
+ (2481,379){-144,174}...{-235,354} % *3
+ (2385,520){-18,298}...{126,769} % 4
+ (2416,1608){-318,102}...{-413,211} % 5
+ (1964,1801){-462,-350}...{-462,-350} % 6
+ (1502,1451)-- % 7
+ (1495,1359){210,94}...{210,94} % 8
+ (1705,1453){383,-119}...{172,-89} % 9
+ (2005,1331){23,-808}...{-110,-408} % 10
+ (1971,279){339,-418}...{186,-306} % 11
+ (2205,-52){488,421}...{252,168} % 12
+ (2721,348)--cycle); % 13
+
+endchar(0);
+
+"fbln";
+
+charbegin( "n",1850h#, lcbody*v#, baseline );
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 6;
+%t5 := 9;
+t5 := 9.5; % DEK
+
+adj_fill.A(4) % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,5)) % verticals
+ () % horizontals
+ ((763,290){-193,248}...{-193,248} % 0
+ (570,538){-3,827}... % 1
+ (567,1365){.03083,1.999}... % 2
+ (570,1452){.05151,1.999}...{3,176} % 3
+ (573,1628){-179,93}...{-307,254} % 4
+ (318,1813){-409,-342}...{-409,-342} % 5
+ (-91,1471)-- % 6
+ (-34,1419){136,78}...{136,78} % 7
+ (102,1497){73,-81}...{73,-81} % 8
+ (175,1416){37,-736}...{-71,-272} % 9
+ (168,237){473,-448}...{148,-193} % 10
+ (410,-44)--cycle); % 11
+
+n := 5;
+t1 := 3;
+t2 := 5;
+t3 := 6;
+%t4 := 8;
+t4 := 8.5; % DEK
+t5 := 11;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((2,2), (3,1)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((1800,449){-178,-93}...{-178,-93} % 0
+ (1622,356){-148,191}...{-148,191} % 1
+ (1474,547){-11,364}...{72,817} % 2
+ (1504,1581){-348,158}...{-579,369} % 3
+ (1043,1814){-263,-236}...{-288,-181} % 4
+ (570,1452)-- % 5
+ (567,1365){226,98}...{226,98} % 6
+ (793,1463){376,-122}...{103,-59} % 7
+ (1102,1335){28,-783}...{-55,-343} % 8
+ (1076,311){266,-337}...{77,-128} % 9
+ (1327,-35){312,297}...{198,146} % 10
+ (1807,387)--cycle); % 11
+
+endchar(0);
+
+"fblo";
+
+charbegin( "o",1710h#, lcbody*v#, baseline );
+
+
+n := 8;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+%t6 := 9;
+t6 := 10; % DEK
+t7 := 12;
+t8 := 13;
+
+adj_fill.A(1, 5) % fixed x points
+ () % fixed y points
+ ((1,1), (4,1), (5,2), (8,2)) % tied points
+ ((3,6), (2,7)) % verticals
+ () % horizontals
+ ((695,-67){196,95}...{356,276} % 0
+ (1437,390){75,303}... % 1
+ (1503,878){75,1187}...{-18,736} % *2
+ (1512,1577){-184,56}...{-383,282} % 3
+ (955,1844){-154,-112}...{-450,-281} % 4
+ (303,1401){-34,-229}...{28,-609} % 5
+ (240,302){167,-164}...{520,-359} % 6
+ (695,-67)-- % 7
+ (1082,265){-427,123}...{-175,161} % 8
+ (628,546){-56,521}... % 9
+ (611,1125){72,962}...{122,236} % *10
+ (700,1508){476,-229}...{224,-35} % 11
+ (1157,1370){60,-746}...{-100,-448} % 12
+ (1082,265)--cycle); % 13
+
+endchar(0);
+
+"fblp";
+
+%charbegin( "p", 1653h# + leftp# + rightp#, theight*v#, descender*v#);
+charbegin( "p", 1653h# + leftp# + rightp#,
+ 1/3[lcbody,theight]*v#, descender*v#); % DEK
+
+n := 1;
+t1 := 6;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((-109,26){216,197}...{1,0} % 0
+ (229,178){-18,-866}...{-34,-535} % 1
+ (211,-688){54,-20}...{54,-20} % 2
+ (265,-708)-- % 3
+ (619,-536){-52,695}...{0,1} % 4
+ (590,143){-364,277}...{-364,277} % 5
+ (226,420){0,1}...{-246,-270} % 6
+ (-146,89)--cycle); % 7
+
+n := 9;
+t1 := 2;
+t2 := 3;
+t3 := 7;
+t4 := 10;
+t5 := 11;
+%t6 := 13;
+t6 := 13.5; % DEK
+t7 := 15;
+t8 := 16;
+t9 := 17;
+
+adj_fill.B(4, 5) % fixed x points
+ () % fixed y points
+ ((2,1), (4,2), (5,3), (8,3), (9,2)) % tied points
+ ((3,6), (1,7)) % verticals
+ () % horizontals
+ ((401,2124){-153,-172}...{-259,-444} % 0
+ (64,1676){86,-391}...{247,-332} % 1
+ (226,1389){0,-969}...{0,-969} % 2
+ (226,420){364,-280}...{364,-280} % 3
+ (590,140){233,-32}...{263,-224} % 4
+ (918,-10){166,159}...{528,325} % 5
+ (1393,370){72,305}... % 6
+ (1481,1605){-26,727}... % 7
+ (1487,1620){-156,61}...{-458,279} % 8
+ (1040,1844){-450,-354}...{-450,-354} % 9
+ (590,1490)-- % 10
+ (590,1394){189,86}...{189,86} % 11
+ (779,1480){411,-132}...{130,-63} % 12
+ (1095,1352){65,-553}...{-24,-182} % 13
+ (1069,362){-414,232}...{-191,34} % 14
+ (590,542){0,852}...{0,852} % 15
+ (590,1394){0,96}...{0,96} % 16
+ (590,1490){0,152}...{0,152} % 17
+ (590,1642){-343,343}... % 18
+ (453,1810){-185,304}... % *19
+ (405,1946){0,1}...{148,202} % 20
+ (466,2101)--cycle); % 21
+
+endchar(leftp#);
+
+"fblq";
+
+charbegin( "q",1668h#, lcbody*v#, descender*v#);
+
+n := 5;
+t1 := 2;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 8;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,4), (2,1), (3,2), (4,3)) % tied points
+ ((1,5)) % verticals
+ () % horizontals
+ ((1095,-723){-59,36}...{-59,36} % 0
+ (1036,-687){44,406}...{-3,746} % 1
+ (1078,350){-8,118}...{-8,118} % 2
+ (1070,468){0,1}...{40,696} % 3
+ (1086,1386){173,310}...{173,310} % 4
+ (1259,1696)-- % 5
+ (1478,1856){37,-22}...{37,-22} % 6
+ (1515,1834){-177,-723}... % 7
+ (1421,212){0,-1}...{23,-399} % 8
+ (1449,-572)--cycle); % 9
+
+n := 7;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 11;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (4,3), (5,2), (7,1)) % tied points
+ ((2,6)) % verticals
+ ((3,6)) % horizontals
+ ((1078,350){-588,-402}...{-588,-402} % 0
+ (490,-52){-307,383}...{-307,383} % 1
+ (183,331){-22,309}...{107,604} % 2
+ (256,1435){611,395}...{611,395} % 3
+ (867,1830){276,-134}...{334,-62} % 4
+ (1259,1696)-- % 5
+ (1086,1386){-312,35}...{-264,86} % 6
+ (627,1489){-243,-504}... % 7
+ (560,1171){-77,-882}...{8,-314} % *8
+ (550,607){309,-500}...{147,-141} % 9
+ (779,325){174,60}...{190,130} % 10
+ (1070,468)--cycle); % 11
+
+endchar(0);
+
+"fblr";
+
+charbegin( "r",1241h#, lcbody*v#, baseline );
+
+n := 6;
+t1 := 4;
+t2 := 5;
+t3 := 6;
+t4 := 9;
+%t5 := 12;
+t5 := 13; % DEK
+t6 := 16;
+
+adj_fill.A(4, 6) % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,5)) % verticals
+ () % horizontals
+ ((1161,435){-278,-117}...{-278,-117} % 0
+ (883,318){-195,177}... % 1
+ (688,495){-157,186}... % 2
+ (638,603){-14,297}... % 3
+ (643,1261){43,439}...{334,346} % 4
+ (700,1439){-56,31}... % 5
+ (644,1470){-.9199,1.483}...{-5,111} % 6
+ (639,1581){-266,228}...{-266,228} % 7
+ (373,1809){-435,-335}...{-435,-335} % 8
+ (-62,1474)-- % 9
+ (-27,1420){136,46}...{136,46} % 10
+ (109,1466){242,-176}...{97,-117} % 11
+ (256,1319){52,-653}... % 12
+ (275,752){-26,-978}...{-82,-353} % *13
+ (230,341){322,-281}...{133,-153} % 14
+ (620,-35){544,391}...{544,391} % 15
+ (1164,356)--cycle); % 16
+
+n := 2;
+t1 := 8;
+t2 := 9;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((977,1801){236,-422}... % 0
+ (1139,1560){1,-1}... % 1
+ (1209,1524){1,0}...{112,36} % 2
+ (1321,1560)-- % 3
+ (1321,1518){-287,-315}... % 4
+ (1000,1245){-189,-143}... % 5
+ (990,1231){-271,113}... % 6
+ (816,1328){-116,111}...{-116,111} % 7
+ (700,1439){-56,31}...{-56,31} % 8
+ (644,1470)--cycle); % 9
+
+endchar(0);
+
+"fbls";
+
+charbegin( "s",1439h#, lcbody*v#, baseline );
+
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 9;
+t7 := 13;
+t8 := 15;
+t9 := 16;
+%t10 := 18;
+t10 := 18.5; % DEK
+t11 := 19;
+t12 := 20;
+%t13 := 21;
+t13 := 21.5; % DEK
+t14 := 25;
+
+adj_fill.A(1, 8) % fixed x points
+ (3, 10, 11) % fixed y points
+ () % tied points
+ ((6,10), (4,13)) % verticals
+ ((7,9), (5,12), (2,14)) % horizontals
+ ((-175,155){394,369}...{394,369} % 0
+ (219,524){398,85}... % 1
+ (382,545){1,0}...{455,-390} % 2
+ (898,208){28,205}...{-43,522} % 3
+ (901,782){-131,157}... % 4
+ (721,894){-1,0}... % 5
+ (585,851){-435,-215}...{-358,-214} % *6
+ (286,679){-121,117}... % 7
+ (158,867){-128,226}... % 8
+ (143,941){-1,354}...{0,1} % 9
+ (143,1456){585,380}...{585,380} % 10
+ (728,1836){208,-142}... % 11
+ (936,1694){208,-142}... % 12
+ (1114,1643){1,0}...{334,254} % 13
+ (1389,1777)-- % 14
+ (1410,1694){-448,-367}...{-448,-367} % 15
+ (962,1327){-1,0}... % 16
+ (776,1390){-443,243}...{-311,257} % *17
+ (519,1570){-127,-624}...{110,-205} % 18
+ (570,959){499,154}...{336,178} % 19
+ (1063,1178){404,-213}...{143,-122} % 20
+ (1258,1046){72,-542}...{-87,-296} % 21
+ (1226,223){-639,-264}...{-211,-124} % 22
+ (611,-69){-1,1}... % 23
+ (352,137){-482,279}... % *24
+ (129,210){-1,0}...{-388,-292} % 25
+ (-142,96)--cycle); % 26
+
+endchar(0);
+
+"fblt";
+
+%charbegin( "t",1033h#, ascender*v#, baseline );
+charbegin( "t",1033h#, theight*v#, baseline ); % DEK
+
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 4.485;
+t6 := 6;
+t7 := 7;
+t8 := 9;
+t9 := 12;
+t10 := 13;
+t11 := 15;
+t12 := 16;
+t13 := 19;
+t14 := 21;
+
+adj_fill.A(1, 4, 5, 10, 14) % fixed x points
+ (2, 8, 13) % fixed y points
+ ((1,1), (14,1)) % tied points
+ ((3,12), (7,9)) % verticals
+ ((10,11), (4,6)) % horizontals
+ ((1177,372){-558,-413}...{-558,-413} % 0
+ (619,-41){-100,117}...{-348,273} % 1
+ (287,283){20,321}...{0,1} % 2
+ (304,1390){-269,0}...{-269,0} % 3
+ (35,1390){3,32}... % 4
+ (38,1422){.8178,1.685}...{144,137} % 5
+ (182,1559){122,0}...{122,0} % 6
+ (304,1559){0,547}...{0,547} % 7
+ (304,2106)-- % 8
+ (794,2459){70,-30}...{70,-30} % 9
+ (864,2429){-149,-157}...{-149,-157} % 10
+ (715,2272){-78,-653}...{-34,-713} % 11
+ (681,1559){326,0}...{326,0} % 12
+ (1007,1559){-1,-24}...{-1,-24} % 13
+ (1006,1535){-156,-143}...{-156,-143} % 14
+ (850,1392){-183,0}...{-183,0} % 15
+ (667,1392){0,-1}... % 16
+ (685,562){20,-315}... % 17
+ (708,492){232,-314}...{250,-158} % 18
+ (928,314){236,130}...{236,130} % 19
+ (1164,444){13,-72}...{13,-72} % 20
+ (1177,372)--cycle); % 21
+
+endchar(0);
+
+"fblu";
+
+charbegin( "u",1646h#, lcbody*v#, baseline );
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 7;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ ((2,2), (3,1)) % tied points
+ ((3,4)) % verticals
+ () % horizontals
+ ((1793,385){-498,-444}...{-498,-444} % 0
+ (1295,-59){-190,365}...{-190,365} % 1
+ (1105,306){-33,85}...{-33,85} % 2
+ (1072,391){10,334}...{-21,804} % 3
+ (1061,1628)-- % 4
+ (1440,1791){45,-32}...{45,-32} % 5
+ (1485,1759){-107,-809}...{0,-1} % 6
+ (1430,644){127,-283}... % 7
+ (1557,361){171,-281}...{30,-7} % 8
+ (1587,354){188,81}...{188,81} % 9
+ (1775,435)--cycle); % 10
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 15;
+
+adj_fill.B(5) % fixed x points
+ (4, 6) % fixed y points
+ ((1,2), (9,1)) % tied points
+ ((3,7)) % verticals
+ ((2,8)) % horizontals
+ ((1105,306){-214,-102}...{-446,-349} % 0
+ (563,-53){-221,191}...{-485,215} % 1
+ (110,214){250,314}... % 2
+ (231,487){163,676}... % *3
+ (273,890){0,1}...{-132,659} % 4
+ (212,1377){-169,157}...{-131,102} % 5
+ (81,1479){-109,-68}...{-109,-68} % 6
+ (-28,1411)-- % 7
+ (-72,1461){420,348}...{420,348} % 8
+ (348,1809){434,-454}...{125,-111} % 9
+ (592,1591){23,-738}... % 10
+ (604,1019){0,-1}... % 11
+ (576,676){-108,-575}...{-214,-346} % *12
+ (496,444){415,-101}...{239,-118} % 13
+ (864,288){208,103}...{208,103} % 14
+ (1072,391)--cycle); % 15
+
+endchar(0);
+
+"fblv";
+
+%charbegin( "v",1695h#, theight*v#, baseline );
+charbegin( "v",1695h#, 1/3[lcbody,theight]*v#, baseline ); % DEK
+
+n := 7;
+t1 := 3;
+t2 := 8;
+t3 := 10;
+t4 := 11;
+t5 := 13;
+t6 := 20;
+t7 := 21;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (6,2), (7,1)) % tied points
+ ((1,4), (2,5)) % verticals
+ () % horizontals
+ ((393,2081){-273,-287}... % 0
+ (75,1620){0,-1}...{474,-614} % 1
+ (207,1375){18,-341}... % 2
+ (226,845){0,-1}...{-93,-464} % 3
+ (198,303){140,-99}...{270,-323} % 4
+ (576,-42){795,398}...{795,398} % 5
+ (1371,356){190,405}... % 6
+ (1473,829){110,1240}...{-33,733} % *7
+ (1481,1596){-437,227}...{-437,227} % 8
+ (1044,1823){-457,-331}...{-457,-331} % 9
+ (587,1492)-- % 10
+ (587,1397){215,104}...{215,104} % 11
+ (802,1501){353,-139}...{84,-51} % 12
+ (1111,1352){39,-698}... % 13
+ (1029,307){-157,-524}... % 14
+ (986,269){-1.735,-.4939}... % 15
+ (945,276){-400,228}... % 16
+ (643,482){-173,184}... % 17
+ (593,553){-.6624,1.814}... % 18
+ (587,622){0,775}...{0,775} % 19
+ (587,1397){0,95}...{0,95} % 20
+ (587,1492){6,108}...{6,108} % 21
+ (593,1600){-660,777}... % 22
+ (397,1910){0,1}...{243,351} % 23
+ (454,2067)--cycle); % 24
+
+endchar(0);
+
+"fblw";
+
+%charbegin( "w",2677h#, theight*v#, baseline );
+charbegin( "w",2677h#, 1/3[lcbody,theight]*v#, baseline ); % DEK
+
+n := 3;
+t1 := 3;
+t2 := 11;
+t3 := 12;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,3)) % verticals
+ () % horizontals
+ ((438,-50){-173,261}...{-332,260} % 0
+ (181,277){106,311}... % 1
+ (238,691){41,1101}...{-50,783} % *2
+ (222,1378){-114,144}... % 3
+ (108,1522){-114,144}... % 4
+ (72,1645){0,1}...{84,446} % 5
+ (84,1684){142,204}...{387,401} % 6
+ (399,2093)-- % 7
+ (450,2083){-237,-388}... % 8
+ (403,1909){0,-1}...{219,-229} % 9
+ (615,1609){-1,-137}...{-1,-137} % 10
+ (614,1472){-5,-99}...{-5,-99} % 11
+ (609,1373){-38,-718}...{19,-306} % 12
+ (620,479){160,-234}...{160,-234} % 13
+ (780,245)--cycle); % 14
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 9;
+t4 := 10;
+t5 := 13;
+t6 := 14;
+t7 := 16;
+t8 := 22;
+t9 := 24;
+
+adj_fill.B(9) % fixed x points
+ () % fixed y points
+ ((1,3), (3,3), (4,4), (5,1), (6,2), (9,4))% tied points
+ ((3,7), (2,8)) % verticals
+ () % horizontals
+ ((1512,1335){241,117}...{241,117} % 0
+ (1753,1452){172,-62}...{358,-212} % 1
+ (2087,1303){0,-216}... % 2
+ (2061,732){-105,-953}... % *3
+ (1982,350){-163,-445}... % 4
+ (1951,296){-1.468,-.6247}... % 5
+ (1915,305){-207,99}... % 6
+ (1555,507){-331,251}... % 7
+ (1499,626){-20,344}...{63,814} % 8
+ (1512,1335){-10,94}...{-10,94} % 9
+ (1502,1429){0,126}...{0,126} % 10
+ (1502,1555){-205,91}...{-424,292} % 11
+ (1045,1804){-182,-146}...{-378,-260} % 12
+ (614,1472)-- % 13
+ (609,1373){212,81}...{212,81} % 14
+ (821,1454){419,-171}...{291,-239} % 15
+ (1123,1290){9,-782}...{-74,-323} % 16
+ (1089,248){366,-99}... % 17
+ (1335,141){557,-309}...{253,-185} % *18
+ (1646,-61){580,346}...{237,105} % 19
+ (2292,267){258,489}... % 20
+ (2410,742){163,1308}...{3,345} % *21
+ (2455,1575){-356,154}...{-265,164} % 22
+ (2028,1798){-526,-369}...{-526,-369} % 23
+ (1502,1429)--cycle); % 24
+
+endchar(0);
+
+"fblx";
+
+charbegin( "x",1239h#, lcbody*v#, descender*v#);
+
+n := 2;
+t1 := 0;
+t2 := 10;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((300,320){-136,-140}...{-245,-399} % 0
+ (-59,-166){-80,-320}... % 1
+ (-52,-374){139,-281}... % 2
+ (92,-520){407,-263}...{490,-152} % *3
+ (355,-637)-- % 4
+ (645,-432){-3,33}...{-3,33} % 5
+ (642,-399){-436,79}... % 6
+ (214,-213){-198,210}... % 7
+ (160,-81){0,1}... % 8
+ (235,123){209,220}...{219,43} % 9
+ (379,224)--cycle); % 10
+
+n := 8;
+t1 := 5;
+t2 := 6;
+t3 := 7;
+t4 := 10;
+t5 := 16;
+t6 := 17;
+t7 := 18;
+t8 := 20;
+
+adj_fill.B(4, 8) % fixed x points
+ () % fixed y points
+ ((2,3), (3,4), (6,2), (7,1)) % tied points
+ ((1,5)) % verticals
+ () % horizontals
+ ((1221,431){-275,-121}...{-275,-121} % 0
+ (946,310){-224,183}... % 1
+ (722,493){-257,231}...{-16,34} % 2
+ (706,527){-13,21}... % 3
+ (693,548){-31,371}... % 4
+ (683,1024){0,1}...{375,298} % 5
+ (756,1407){-64,49}...{-64,49} % 6
+ (692,1456){0,133}...{0,133} % 7
+ (692,1589){-287,215}...{-287,215} % 8
+ (405,1804){-120,-71}...{-408,-346} % 9
+ (-39,1456)-- % 10
+ (9,1412){124,59}...{124,59} % 11
+ (133,1471){143,-91}... % 12
+ (276,1380){211,-164}...{23,-40} % 13
+ (299,1340){7,-25}... % 14
+ (306,1315){33,-529}... % 15
+ (319,830){0,-1}...{-55,-458} % 16
+ (300,320){79,-96}...{79,-96} % 17
+ (379,224){286,-273}...{286,-273} % 18
+ (665,-49){561,412}...{561,412} % 19
+ (1226,363)--cycle); % 20
+
+n := 2;
+t1 := 0;
+t2 := 6;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (2,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((756,1407){192,6}... % 0
+ (788,1399){87,-90}... % 1
+ (974,1261){164,-117}...{118,-21} % 2
+ (1064,1224)-- % 3
+ (1283,1466){-336,377}...{-223,345} % 4
+ (1045,1790){-353,-334}...{-353,-334} % 5
+ (692,1456)--cycle); % 6
+
+endchar(0);
+
+"fbly";
+
+charbegin( "y",1647h#, lcbody*v#, descender*v#);
+
+n := 3;
+t1 := 4;
+t2 := 5;
+t3 := 11;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((466,2107){-292,-382}... % 0
+ (413,1936){.2672,-1.781}... % 1
+ (476,1800){212,-311}...{1,-1} % *2
+ (625,1625){0,-141}...{0,-141} % 3
+ (625,1484){-6,-106}...{-6,-106} % 4
+ (619,1378){0,-1}... % 5
+ (619,583){0,-1}... % 6
+ (643,459){10,-14}...{429,-525} % 7
+ (780,257)-- % 8
+ (452,-44){-341,476}...{-236,252} % 9
+ (184,283){154,549}... % 10
+ (243,1372){0,1}...{-67,270} % 11
+ (230,1418){-384,437}... % 12
+ (88,1660){0,1}... % 13
+ (149,1802){323,489}...{296,341} % 14
+ (410,2122)--cycle); % 15
+
+n := 5;
+%t1 := 4;
+t1 := 3; % DEK
+t2 := 6;
+t3 := 7;
+%t4 := 9;
+t4 := 9.5; % DEK
+t5 := 13;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((2,2), (3,1)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((680,-760){244,150}... % 0
+ (966,-535){619,577}... % *1
+ (1299,-183){408,476}... % 2
+ (1476,204){0,1}...{0,1} % 3
+ (1505,1584){-416,197}...{-400,264} % 4
+ (1063,1827){-438,-343}...{-438,-343} % 5
+ (625,1484)-- % 6
+ (619,1378){183,90}...{183,90} % 7
+ (802,1468){468,-141}...{266,-191} % 8
+ (1105,1312){53,-782}... % 9
+ (1073,-14){-77,-489}... % 10
+ (1024,-234){-128,-442}... % 11
+ (872,-492){-254,-245}...{-355,-200} % 12
+ (565,-676)--cycle); % 13
+
+endchar(0);
+
+"fblz";
+
+charbegin( "z",1246h#, lcbody*v#, descender*v#);
+
+n := 18;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 4.562;
+t6 := 6;
+t7 := 8;
+t8 := 10;
+t9 := 11;
+t10 := 14;
+t11 := 16;
+t12 := 18;
+t13 := 20;
+t14 := 21;
+t15 := 22;
+t16 := 24;
+t17 := 26;
+t18 := 27;
+
+adj_fill.A(2, 5, 6, 9, 12, 15, 17) % fixed x points
+ (3, 16) % fixed y points
+ ((1,1), (13,1), (14,2), (18,2)) % tied points
+ ((7,11), (4,16)) % verticals
+ ((8,10)) % horizontals
+ ((658,612){-238,-216}...{-271,-458} % 0
+ (-126,-365){164,-439}... % 1
+ (15,-587){1,-1}...{1,0} % 2
+ (497,-734){487,413}...{487,413} % 3
+ (984,-321){129,398}...{-104,523} % 4
+ (1031,853){-194,123}...{-518,186} % 5
+ (660,1037){201,219}... % 6
+ (861,1256){201,219}... % 7
+ (961,1411){0,1}... % 8
+ (832,1657){-1,1}...{-383,154} % 9
+ (597,1806){-202,-147}...{-399,-418} % 10
+ (55,1340)-- % 11
+ (104,1285){230,197}... % 12
+ (258,1396){269,149}... % *13
+ (373,1434){1,0}... % 14
+ (556,1351){1,-1}... % 15
+ (637,1191){0,-1}... % 16
+ (527,1018){-288,-241}...{-288,-241} % 17
+ (239,777){2,-31}...{2,-31} % 18
+ (241,746){403,-64}...{128,-105} % 19
+ (658,612){33,-109}...{33,-109} % 20
+ (691,503){44,-526}... % 21
+ (711,-30){-22,-881}... % *22
+ (669,-378){-155,-531}...{-20,-56} % 23
+ (649,-434){-625,-28}... % 24
+ (310,-291){-219,200}... % 25
+ (219,-112){0,1}...{173,167} % 26
+ (691,503)--cycle); % 27
+
+endchar(0);
+
+% UPPER CASE
+
+"FBUA";
+
+charbegin( "A", 2457h#, capheight*v#, baseline*v#);
+
+n := 5;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 8;
+
+adj_fill.A(1, 3) % fixed x points
+ () % fixed y points
+ ((2,2), (3,1)) % tied points
+ ((4,5)) % verticals
+ () % horizontals
+ ((2494,344){-192,-148}...{-457,-327} % 0
+ (1995,-48){-38,10}...{-38,10} % 1
+ (1957,-38){-229,558}...{-229,558} % 2
+ (1728,520){-14,105}...{-14,105} % 3
+ (1714,625){15,1587}...{0,1} % 4
+ (1729,2212){506,362}...{506,362} % 5
+ (2235,2574)-- % 6
+ (2306,2554){-160,-190}...{-160,-190} % 7
+ (2146,2364){0,-1}...{22,-343} % 8
+ (2131,724){181,-377}...{181,-377} % 9
+ (2312,347){165,78}...{165,78} % 10
+ (2477,425)--cycle); % 11
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 7;
+t7 := 8;
+
+adj_fill.B() % fixed x points
+ (2, 4, 6) % fixed y points
+ ((1,1), (3,3), (4,4), (7,2)) % tied points
+ () % verticals
+ ((3,5)) % horizontals
+ ((1714,625){-212,-158}...{-509,-261} % 0
+ (1270,351){-392,429}... % 1
+ (1013,572){-482,299}...{-574,-3} % *2
+ (788,650)-- % 3
+ (89,178){637,352}... % 4
+ (499,346){1,0}... % 5
+ (718,241){502,-400}...{435,-548} % *6
+ (1001,-54){727,574}...{727,574} % 7
+ (1728,520)--cycle); % 8
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 10;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 19;
+t11 := 21;
+t12 := 23;
+
+adj_fill.C(7) % fixed x points
+ (8) % fixed y points
+ ((1,4), (2,3)) % tied points
+ ((6,9), (5,10), (3,12)) % verticals
+ ((4,11)) % horizontals
+ ((89,178){699,472}...{699,472} % 0
+ (788,650){176,171}...{535,488} % 1
+ (1393,1234){184,383}... % 2
+ (1582,1964){0,1}... % 3
+ (1395,2421){-1,1}... % 4
+ (899,2604){-1,0}... % 5
+ (164,2281){-1,-1}... % 6
+ (-10,1921){0,-1}... % 7
+ (36,1773){177,-342}... % *8
+ (167,1579){421,-521}... % 9
+ (327,1320){0,-1}... % 10
+ (269,1185){-218,-284}...{-439,-316} % *11
+ (109,1036)-- % 12
+ (170,982){272,155}... % 13
+ (514,1237){261,262}... % 14
+ (660,1521){0,1}... % 15
+ (612,1641){-186,287}... % *16
+ (474,1808){-413,428}... % 17
+ (356,1958){-159,272}... % *18
+ (315,2080){0,1}... % 19
+ (382,2275){1,1}... % 20
+ (628,2370){1,0}... % 21
+ (980,2221){1,-1}... % 22
+ (1191,1745){0,-1}... % 23
+ (878,918){-1,-1}... % 24
+ (640,710){-626,-473}...{-626,-473} % 25
+ (14,237)--cycle); % 26
+
+endchar(0);
+
+"FBUB";
+
+charbegin( "B",3073h#, capheight*v#, baseline*v#);
+
+n := 16;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 6;
+t7 := 7;
+t8 := 9;
+t9 := 12;
+t10 := 14;
+t11 := 15;
+t12 := 18;
+t13 := 22;
+t14 := 24;
+t15 := 27;
+t16 := 31;
+
+adj_fill.A(10, 16) % fixed x points
+ (1, 11) % fixed y points
+ ((1,6), (2,1), (3,2), (4,3), (5,4), (6,5))% tied points
+ ((9,12), (8,13), (5,15)) % verticals
+ ((7,14)) % horizontals
+ ((209,10){805,557}...{805,557} % 0
+ (1014,567){453,386}...{453,386} % 1
+ (1467,953){113,312}...{75,604} % 2
+ (1542,1222){6,119}...{6,119} % 3
+ (1548,1341){16,366}...{-118,634} % 4
+ (1544,2017){-59,178}...{-59,178} % 5
+ (1485,2195){-200,433}... % 6
+ (942,2593){-1,0}... % 7
+ (257,2285){-1,-1}... % 8
+ (75,1944){0,-1}... % 9
+ (125,1764){194,-389}... % *10
+ (269,1555){459,-533}... % 11
+ (403,1339){0,-1}... % 12
+ (342,1196){-1,-1}...{-317,-238} % 13
+ (128,1019)-- % 14
+ (200,969){454,282}... % 15
+ (611,1287){1,1}... % 16
+ (716,1417){142,239}... % *17
+ (753,1526){0,1}... % 18
+ (710,1647){-167,282}... % *19
+ (586,1808){-536,586}... % 20
+ (443,1990){-193,309}... % *21
+ (393,2117){0,1}... % 22
+ (458,2289){1,1}... % 23
+ (650,2365){1,0}... % 24
+ (923,2212){1,-1}... % 25
+ (1123,1765){46,-269}...{0,-1} % 26
+ (1152,1363){-39,-433}... % 27
+ (1113,930){-136,-642}... % 28
+ (972,705){-374,-379}... % 29
+ (600,410){-437,-294}...{-437,-294} % 30
+ (163,116)--cycle); % 31
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 15;
+
+adj_fill.B() % fixed x points
+ (2, 7) % fixed y points
+ ((1,8), (4,5), (5,4), (7,7)) % tied points
+ () % verticals
+ ((3,6)) % horizontals
+ ((2921,1964){-352,-109}... % 0
+ (2729,1927){-1,0}... % 1
+ (2625,2000){-181,260}... % *2
+ (2548,2187){-168,725}... % 3
+ (2433,2529){-1,1}... % 4
+ (2242,2596){-1,0}... % 5
+ (1903,2492){-757,-401}...{-562,-489} % *6
+ (1485,2195)-- % 7
+ (1544,2017){255,378}... % 8
+ (1759,2256){421,325}... % *9
+ (1965,2342){1,0}... % 10
+ (2078,2298){1,-1}... % 11
+ (2169,2051){115,-679}... % 12
+ (2207,1829){56,-248}... % 13
+ (2255,1733){107,-143}...{296,-193} % 14
+ (2329,1670)--cycle); % 15
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (2,7), (3,8), (4,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((1548,1341){781,329}...{781,329} % 0
+ (2329,1670){592,294}...{592,294} % 1
+ (2921,1964)-- % 2
+ (2929,1883){-661,-393}...{-661,-393} % 3
+ (2268,1490){-720,-149}...{-720,-149} % 4
+ (1548,1341)--cycle); % 5
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+t9 := 14;
+t10 := 16;
+t11 := 18;
+
+adj_fill.D() % fixed x points
+ () % fixed y points
+ ((1,6), (6,3), (7,2), (11,1)) % tied points
+ ((4,9)) % verticals
+ ((5,8), (3,10), (2,11)) % horizontals
+ ((209,10){439,368}... % 0
+ (759,212){1,0}... % 1
+ (1327,73){928,-356}... % 2
+ (1896,-56){1,0}...{591,151} % 3
+ (2201,-16){540,408}...{540,408} % 4
+ (2741,392){345,515}... % 5
+ (2881,858){0,1}... % 6
+ (2718,1311){-1,1}... % 7
+ (2514,1426){-520,175}...{-505,41} % *8
+ (2198,1486){-650,-145}...{-650,-145} % 9
+ (1548,1341)-- % 10
+ (1542,1222){521,130}... % 11
+ (1843,1261){1,0}... % 12
+ (2326,1083){1,-1}... % 13
+ (2493,594){0,-1}... % 14
+ (2412,324){-1,-1}... % 15
+ (2252,261){-1,0}... % 16
+ (1768,384){-464,175}...{-286,8} % 17
+ (1014,567)--cycle); % 18
+
+endchar(0);
+
+"FBUC";
+
+charbegin( "C",2068h#, capheight*v#, baseline*v#);
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 10;
+t8 := 12;
+t9 := 15;
+
+adj_fill.A(1, 5) % fixed x points
+ (2, 6) % fixed y points
+ ((1,2), (9,1)) % tied points
+ ((3,8)) % verticals
+ ((4,7)) % horizontals
+ ((960,2162){-77,91}...{-77,91} % 0
+ (883,2253){-218,-138}...{-504,-379} % 1
+ (269,1856){-176,-412}... % 2
+ (124,1192){0,-1}... % 3
+ (484,246){1,-1}... % 4
+ (1357,-59){1,0}...{410,96} % 5
+ (1625,-22){521,382}...{521,382} % 6
+ (2146,360)-- % 7
+ (2134,461){-365,-200}... % 8
+ (1769,261){-365,-200}... % 9
+ (1575,232){-1,0}... % 10
+ (842,543){-1,1}... % 11
+ (523,1433){0,1}... % 12
+ (569,1782){177,586}... % *13
+ (700,2019){1,1}...{283,25} % 14
+ (901,2113)--cycle); % 15
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 9;
+t8 := 11;
+
+adj_fill.B(1, 5) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (5,3), (6,4)) % tied points
+ ((3,7), (2,8)) % verticals
+ () % horizontals
+ ((688,936){373,136}... % 0
+ (885,1074){1,1}... % 1
+ (1001,1322){0,1}... % 2
+ (951,1668){-165,707}...{218,549} % 3
+ (901,2113){59,49}...{59,49} % 4
+ (960,2162){269,202}...{497,91} % 5
+ (1819,2564)-- % 6
+ (1435,2314){-345,-111}... % 7
+ (1364,2275){-1,-1}... % 8
+ (1315,2114){0,-1}... % 9
+ (1369,1838){176,-692}... % 10
+ (1426,1520){0,-1}... % 11
+ (1322,1192){-1,-1}... % 12
+ (1109,1046){-571,-307}...{-404,-157} % *13
+ (751,885)--cycle); % 14
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (4,4)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1819,2564){71,-371}... % 0
+ (1976,2195){1,-1}... % 1
+ (2071,2164){1,0}...{244,64} % 2
+ (2178,2175)-- % 3
+ (2149,2092){-541,-226}...{-274,-77} % 4
+ (1748,1959){-623,29}... % 5
+ (1676,1977){-193,136}... % 6
+ (1586,2057){-143,205}...{-241,484} % 7
+ (1435,2314)--cycle); % 8
+
+endchar(0);
+
+"FBUD";
+
+charbegin( "D",2879h#, capheight*v#, baseline*v#);
+
+n := 7;
+t1 := 0;
+t2 := 3;
+t3 := 7;
+t4 := 11;
+t5 := 12;
+t6 := 15;
+t7 := 17;
+
+adj_fill.A(1, 4) % fixed x points
+ () % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((3,5), (2,6)) % verticals
+ () % horizontals
+ ((484,656){1,0}... % 0
+ (788,681){474,97}... % *1
+ (958,753){1,1}... % 2
+ (1019,917){0,1}... % 3
+ (974,1052){-176,313}... % *4
+ (843,1230){-398,455}... % 5
+ (715,1402){-173,295}... % *6
+ (670,1525){0,1}... % 7
+ (720,1673){191,313}... % *8
+ (861,1838){287,262}...{552,340} % 9
+ (1194,2091)-- % 10
+ (1273,2062){-1,-1}... % 11
+ (1070,1774){0,-1}... % 12
+ (1250,1459){480,-633}... % 13
+ (1365,1275){155,-329}... % *14
+ (1405,1130){0,-1}... % 15
+ (1299,885){-1,-1}...{-314,-181} % 16
+ (947,609)--cycle); % 17
+
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+t10 := 19;
+t11 := 21;
+t12 := 24;
+
+adj_fill.B() % fixed x points
+ (1, 7) % fixed y points
+ ((5,1), (6,2)) % tied points
+ ((3,10), (1,12)) % verticals
+ ((6,8), (4,9), (2,11)) % horizontals
+ ((73,1396){-3,462}... % 0
+ (305,2005){1,1}... % 1
+ (1077,2269){1,0}... % 2
+ (1640,2188){962,-310}... % *3
+ (2039,1959){1,-1}... % 4
+ (2345,1090){0,-1}... % 5
+ (2297,702){-183,-643}... % *6
+ (2162,447){-1,-1}... % 7
+ (1966,339){-1,0}... % 8
+ (1718,384){-440,141}...{-637,131} % 9
+ (947,609){-463,47}...{-463,47} % 10
+ (484,656){-242,-238}...{-345,-558} % 11
+ (-3,79)-- % 12
+ (52,8){215,275}... % 13
+ (216,189){1,1}... % 14
+ (467,294){1,0}... % 15
+ (1217,79){979,-384}...{1,0} % 16
+ (1684,-47){607,403}...{361,357} % 17
+ (2512,626){257,503}... % 18
+ (2708,1436){0,1}... % 19
+ (2425,2220){-1,1}... % 20
+ (1352,2594){-1,0}... % 21
+ (735,2514){-1033,-307}... % *22
+ (319,2287){-1,-1}...{0,-1} % 23
+ (-7,1437)--cycle); % 24
+
+endchar(0);
+
+"FBUE";
+
+charbegin( "E",2254h#, capheight*v#, baseline*v#);
+
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 10;
+t7 := 12;
+t8 := 13;
+
+adj_fill.A(4, 8) % fixed x points
+ (4, 7) % fixed y points
+ ((1,2), (8,1)) % tied points
+ ((2,6)) % verticals
+ ((3,5)) % horizontals
+ ((908,2158){-207,-45}... % 0
+ (745,2061){-1,-1}... % 1
+ (512,1433){0,-1}... % 2
+ (863,571){1,-1}... % 3
+ (1538,259){1,0}...{457,322} % 4
+ (2148,473)-- % 5
+ (2147,374){-484,-380}...{-484,-380} % 6
+ (1663,-6){-445,-95}... % 7
+ (1298,-48){-1,0}... % 8
+ (497,251){-1,1}... % 9
+ (128,1189){0,1}...{147,342} % 10
+ (257,1846){399,338}...{242,146} % 11
+ (864,2275){134,-67}...{134,-67} % 12
+ (998,2208)--cycle); % 13
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+t9 := 13;
+
+adj_fill.B(1, 5) % fixed x points
+ () % fixed y points
+ ((3,2), (4,1), (5,3), (6,4), (8,5), (9,6))% tied points
+ ((3,7), (2,9)) % verticals
+ () % horizontals
+ ((701,949){274,122}... % 0
+ (912,1096){1,1}... % 1
+ (1007,1291){0,1}... % 2
+ (968,1620){-172,806}... % 3
+ (898,1932){-81,398}... % *4
+ (887,2018){0,1}...{142,438} % 5
+ (908,2158){90,50}...{90,50} % 6
+ (998,2208){174,125}...{511,172} % 7
+ (1812,2603)-- % 8
+ (1435,2345){-391,-304}... % 9
+ (1324,2168){0,-1}... % 10
+ (1382,1812){189,-829}...{-20,-286} % 11
+ (1444,1470){-15,-105}...{-15,-105} % 12
+ (1429,1365){-169,-456}... % 13
+ (1336,1225){-1,-1}...{-465,-167} % 14
+ (770,897)--cycle); % 15
+
+n := 4;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 10;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (4,4)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1812,2603){95,-404}... % 0
+ (1889,2360){171,-394}... % *1
+ (1983,2209){1,-1}... % 2
+ (2059,2175){1,0}...{216,56} % 3
+ (2183,2194)-- % 4
+ (2166,2112){-388,-138}... % 5
+ (1778,1974){-334,-121}... % 6
+ (1744,1968){-1.953,.07459}... % 7
+ (1705,1978){-123,102}... % 8
+ (1625,2069){-270,367}...{-174,253} % *9
+ (1435,2345)--cycle); % 10
+
+n := 2;
+t1 := 0;
+t2 := 9;
+
+adj_fill.D() % fixed x points
+ () % fixed y points
+ ((1,5), (2,6)) % tied points
+ () % verticals
+ () % horizontals
+ ((1444,1470){13,9}...{13,9} % 0
+ (1457,1479){367,285}...{367,285} % 1
+ (1824,1764){98,-205}...{270,-188} % 2
+ (2112,1414)-- % 3
+ (1829,1216){-450,-32}... % 4
+ (1775,1215){-260,79}... % 5
+ (1662,1292){-268,195}... % 6
+ (1548,1379){-153,102}... % *7
+ (1509,1394){-1,0}...{-277,-252} % 8
+ (1429,1365)--cycle); % 9
+
+endchar(0);
+
+"FBUF";
+
+%charbegin( "F",2063h#, capheight*v#, depthy*v#);
+charbegin( "F",2063h#, capheight*v#, 2/3descender*v#); % DEK
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+
+adj_fill.A() % fixed x points
+ (1, 4) % fixed y points
+ ((6,1), (7,2)) % tied points
+ () % verticals
+ ((3,5), (2,8)) % horizontals
+ ((2164,2436){-239,-228}... % 0
+ (1848,2209){-1,0}... % 1
+ (1436,2376){-384,195}... % 2
+ (1068,2537){-629,215}... % *3
+ (807,2591){-1,0}... % 4
+ (364,2421){-1,-1}...{-89,-436} % 5
+ (86,1839)-- % 6
+ (169,1773){88,411}... % 7
+ (365,2200){1,1}... % 8
+ (559,2267){1,0}...{249,-133} % 9
+ (1233,1993){135,-51}...{135,-51} % 10
+ (1368,1942){406,-142}...{296,-13} % 11
+ (1727,1859){486,436}...{126,145} % 12
+ (2179,2352)--cycle); % 13
+
+n := 15;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 13;
+t7 := 16;
+t8 := 17;
+t9 := 19;
+t10 := 21;
+t11 := 22;
+t12 := 24;
+t13 := 26;
+t14 := 28;
+t15 := 32;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((7,1), (8,2), (10,3), (11,4)) % tied points
+ ((6,9), (5,12), (3,14)) % verticals
+ ((4,13), (2,15)) % horizontals
+ ((-47,687){228,149}... % 0
+ (266,855){566,225}... % *1
+ (519,912){1,0}... % 2
+ (672,850){1,-1}... % 3
+ (747,727){0,-1}... % 4
+ (706,456){-112,-516}... % 5
+ (636,0){0,-1}... % 6
+ (726,-264){1,-1}... % 7
+ (907,-335){1,0}... % 8
+ (1247,-184){1,1}... % 9
+ (1367,191){0,1}...{-591,794} % 10
+ (1071,733){-580,773}... % 11
+ (803,1135){-357,658}... % *12
+ (714,1391){0,1}... % 13
+ (767,1569){204,373}... % *14
+ (918,1764){1,1}...{505,287} % 15
+ (1233,1993)-- % 16
+ (1368,1942){-401,-142}... % 17
+ (1123,1799){-1,-1}... % 18
+ (1042,1625){0,-1}... % 19
+ (1102,1423){232,-459}...{356,-439} % *20
+ (1274,1166){68,-80}...{68,-80} % 21
+ (1342,1086){317,-393}... % 22
+ (1623,681){378,-689}... % *23
+ (1720,397){0,-1}... % 24
+ (1519,-112){-1,-1}... % 25
+ (745,-483){-1,0}... % 26
+ (409,-372){-1,1}... % 27
+ (286,7){0,1}... % 28
+ (315,304){63,759}... % 29
+ (317,480){0,1}... % 30
+ (272,638){-1,1}... % 31
+ (166,687){-1,0}...{-554,-270} % 32
+ (-38,618)--cycle); % 33
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 6;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (4,4)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1274,1166){469,442}...{469,442} % 0
+ (1743,1608){175,-166}...{211,-380} % 1
+ (1997,1292)-- % 2
+ (1747,1032){-144,266}... % 3
+ (1661,1165){-211,189}... % 4
+ (1546,1216){-1,0}...{-307,-286} % 5
+ (1342,1086)--cycle); % 6
+
+endchar(0);
+
+"FBUG";
+
+charbegin( "G",2708h#, capheight*v#, baseline*v#);
+
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 14;
+t10 := 16;
+t11 := 18;
+t12 := 20;
+t13 := 22;
+
+adj_fill.A(1, 7) % fixed x points
+ (2) % fixed y points
+ ((1,5), (6,1), (7,2), (8,3), (13,4)) % tied points
+ ((5,10), (3,12)) % verticals
+ ((6,9), (4,11)) % horizontals
+ ((974,2219){-108,45}...{-108,45} % 0
+ (866,2264){-585,-369}...{-585,-369} % 1
+ (281,1895){-300,-370}... % 2
+ (171,1637){-148,-660}... % *3
+ (133,1235){0,-1}... % 4
+ (510,258){1,-1}... % 5
+ (1276,-47){1,0}...{681,112} % 6
+ (1613,-6){408,378}... % 7
+ (2048,295){361,220}... % 8
+ (2546,1136){0,1}... % 9
+ (2371,1556){-1,1}...{-1,0} % 10
+ (1798,1753){-441,-197}...{-441,-197} % 11
+ (1357,1556)-- % 12
+ (1362,1451){491,101}... % 13
+ (1574,1475){1,0}... % 14
+ (1972,1340){1,-1}... % 15
+ (2151,858){0,-1}... % 16
+ (1977,393){-1,-1}... % 17
+ (1575,249){-1,0}... % 18
+ (871,551){-1,1}... % 19
+ (500,1506){0,1}... % 20
+ (660,2014){1,1}...{393,66} % 21
+ (897,2161)--cycle); % 22
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 12;
+
+adj_fill.B(1, 6) % fixed x points
+ () % fixed y points
+ ((4,4), (5,5), (8,2), (9,3)) % tied points
+ ((3,7), (2,9)) % verticals
+ () % horizontals
+ ((741,902){353,124}... % 0
+ (910,997){1,1}...{85,212} % 1
+ (995,1209){0,1}... % 2
+ (929,1582){-206,1006}... % 3
+ (863,1882){-75,376}... % *4
+ (854,1958){0,1}...{80,169} % 5
+ (897,2161){77,58}...{77,58} % 6
+ (974,2219){269,221}...{437,214} % 7
+ (1428,2508)-- % 8
+ (1496,2465){-404,-202}... % 9
+ (1284,2108){0,-1}...{84,-513} % 10
+ (1357,1556){5,-105}...{5,-105} % 11
+ (1362,1451){83,-587}... % 12
+ (1291,1097){-1,-1}... % 13
+ (1108,975){-488,-248}...{-394,-137} % *14
+ (803,849)--cycle); % 15
+
+n := 5;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 8;
+t5 := 9;
+
+adj_fill.C() % fixed x points
+ (3) % fixed y points
+ ((1,1), (5,2)) % tied points
+ () % verticals
+ ((2,4)) % horizontals
+ ((1798,1753){233,222}...{552,444} % 0
+ (2445,2323){0,76}...{0,76} % 1
+ (2445,2399){-1,-1}... % 2
+ (2223,2324){-1,0}... % 3
+ (1998,2406){-1,1}...{-219,548} % 4
+ (1878,2606)-- % 5
+ (1543,2324){126,-493}... % 6
+ (1623,2166){1,-1}...{518,-153} % 7
+ (1917,2008){-494,-440}...{-560,-452} % 8
+ (1357,1556)--cycle); % 9
+
+endchar(0);
+
+"FBUH";
+
+%charbegin( "H",2467h#, capheight*v#, descender*v#);
+charbegin( "H",2467h#, capheight*v#, 1/3descender*v#); % DEK
+
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 16;
+t10 := 18;
+t11 := 19;
+t12 := 20;
+t13 := 24;
+
+adj_fill.A(1, 7) % fixed x points
+ (6) % fixed y points
+ ((10,1), (11,2)) % tied points
+ ((4,9), (3,12)) % verticals
+ ((5,8), (2,13)) % horizontals
+ ((-82,92){250,297}... % 0
+ (421,525){1,0}...{340,-456} % 1
+ (723,329){273,396}... % 2
+ (803,578){0,1}... % 3
+ (576,1128){-535,960}... % 4
+ (387,1705){0,1}... % 5
+ (478,1962){353,589}... % *6
+ (740,2294){356,376}...{400,285} % 7
+ (1105,2590){1,-1}... % 8
+ (1321,2414){391,-238}... % *9
+ (1496,2352){1,0}...{453,352} % 10
+ (1879,2565)-- % 11
+ (1889,2474){-437,-414}...{-437,-414} % 12
+ (1452,2060){-503,-156}... % 13
+ (1305,2036){-1,0}...{-326,241} % 14
+ (811,2243){-485,-516}... % 15
+ (696,2004){0,-1}... % 16
+ (750,1757){215,-622}...{211,-433} % *17
+ (911,1382){44,-99}...{44,-99} % 18
+ (955,1283){294,-616}... % 19
+ (1120,819){0,-1}... % 20
+ (1028,543){-521,-571}...{-521,-571} % 21
+ (507,-28){-285,308}... % 22
+ (341,119){-299,199}... % *23
+ (208,171){-1,0}... % 24
+ (95,132){-263,-152}...{-250,-225} % *25
+ (-55,19)--cycle); % 26
+
+n := 7;
+t1 := 1;
+t2 := 8;
+t3 := 9;
+t4 := 10;
+t5 := 12;
+t6 := 17;
+t7 := 19;
+
+adj_fill.B() % fixed x points
+ (7) % fixed y points
+ ((3,1), (4,2)) % tied points
+ () % verticals
+ ((2,5), (1,6)) % horizontals
+ ((1147,-261){225,-235}... % 0
+ (1451,-411){1,0}... % 1
+ (1598,-354){502,369}...{545,415} % 2
+ (2100,15){131,341}... % 3
+ (2260,956){0,1}... % 4
+ (2157,1622){-226,653}... % 5
+ (2084,1707){-223.2,146.9}... % *6
+ (1934,1769){-682,181}...{-481,-29} % *7
+ (1475,1803){-287,-178}...{-1,-1} % 8
+ (911,1382)-- % 9
+ (955,1283){508,368}... % 10
+ (1211,1435){463,204}... % *11
+ (1418,1487){1,0}... % 12
+ (1726,1356){1,-1}... % 13
+ (1829,1124){139,-636}... % *14
+ (1865,720){0,-1}... % 15
+ (1749,-106){-1,-1}... % 16
+ (1587,-195){-1,0}... % 17
+ (1474,-141){-205,196}...{-177,440} % *18
+ (1382,1){-48,-3}...{-48,-3} % 19
+ (1334,-2)--cycle); % 20
+
+endchar(0);
+
+"FBUI";
+
+charbegin( "I",1853h#, capheight*v#, baseline*v#);
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 9;
+t6 := 11;
+t7 := 13;
+
+adj_fill.A() % fixed x points
+ (1, 4, 5) % fixed y points
+ () % tied points
+ () % verticals
+ ((3,6), (2,7)) % horizontals
+ ((1826,2540){-296,-285}... % 0
+ (1630,2390){-364,-203}... % *1
+ (1462,2337){-1,0}... % 2
+ (1113,2461){-502,216}... % 3
+ (701,2587){-1,0}... % 4
+ (356,2451){-281,-260}... % 5
+ (193,2225){-358,-626}...{-230,-535} % *6
+ (-2,1825)-- % 7
+ (56,1763){24,0}...{24,0} % 8
+ (80,1763){219,417}... % 9
+ (279,2065){1,1}... % 10
+ (550,2178){1,0}... % 11
+ (866,2118){719,-235}...{387,-59} % 12
+ (1240,2013){575,332}...{249,231} % 13
+ (1853,2483)--cycle); % 14
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 1.188;
+t4 := 4;
+t5 := 7;
+t6 := 10;
+t7 := 15;
+t8 := 17;
+
+adj_fill.B(1) % fixed x points
+ (2, 3, 6) % fixed y points
+ () % tied points
+ ((5,7)) % verticals
+ ((4,8)) % horizontals
+ ((19,66){242,291}... % 0
+ (503,563){550,505}...{30,-18} % 1
+ (533,545){204,-467}... % 2
+ (750,219){1,-1}... % 3
+ (904,169){1,0}... % 4
+ (1087,268){1,1}... % 5
+ (1179,449){124,466}... % *6
+ (1211,734){0,1}... % 7
+ (1173,1149){-91,903}...{79,633} % 8
+ (1169,1662){285,363}...{433,309} % 9
+ (1726,2199)-- % 10
+ (1802,2161){-453,-390}... % 11
+ (1606,1943){-265,-416}... % *12
+ (1537,1745){0,-1}... % 13
+ (1558,1478){146,-960}... % 14
+ (1612,939){0,-1}... % 15
+ (1399,330){-1,-1}... % 16
+ (638,-33){-1,0}...{-320,270} % 17
+ (235,142){-175,-129}...{-175,-129} % 18
+ (60,13)--cycle); % 19
+
+endchar(0);
+
+"FBUJ";
+
+%charbegin( "J",1845h#, capheight*v#, depthy*v#);
+charbegin( "J",1845h#, capheight*v#, 2/3descender*v#); % DEK
+
+n := 4;
+t1 := 5;
+t2 := 8;
+t3 := 10;
+t4 := 12;
+
+adj_fill.A() % fixed x points
+ (2, 4) % fixed y points
+ () % tied points
+ () % verticals
+ ((1,3)) % horizontals
+ ((1830,2308){-387,-169}... % 0
+ (1467,2194){-1,0}... % 1
+ (1328,2243){-348,192}... % *2
+ (1119,2386){-806,631}... % 3
+ (908,2529){-356,192}... % *4
+ (763,2578){-1,0}... % 5
+ (408,2418){-1,-1}...{-296,-619} % 6
+ (102,1946)-- % 7
+ (161,1894){237,400}... % 8
+ (332,2122){1,1}... % 9
+ (526,2204){1,0}... % 10
+ (894,2065){882,-545}...{401,-214} % 11
+ (1155,1924){562,192}...{291,165} % 12
+ (1829,2229)--cycle); % 13
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10.73;
+t7 := 12;
+t8 := 16;
+t9 := 18;
+t10 := 22;
+
+adj_fill.B(1, 3, 6) % fixed x points
+ (2, 7, 10) % fixed y points
+ () % tied points
+ ((5,8)) % verticals
+ ((4,9)) % horizontals
+ ((-126,344){423,342}... % 0
+ (179,542){564,267}... % *1
+ (438,611){1,0}... % 2
+ (615,546){1,-1}... % 3
+ (657,422){44,-495}... % *4
+ (659,51){0,-1}... % 5
+ (777,-273){1,-1}... % 6
+ (917,-331){1,0}... % 7
+ (1128,-233){1,1}... % 8
+ (1231,81){0,1}... % 9
+ (1119,694){-280,1096}...{102,626} % 10
+ (1056,1401){152,219}...{529,423} % 11
+ (1615,2006)-- % 12
+ (1693,1972){-514,-529}... % 13
+ (1419,1436){-7,-725}... % 14
+ (1495,958){183,-711}... % 15
+ (1591,371){0,-1}... % 16
+ (1377,-189){-1,-1}... % 17
+ (768,-465){-1,0}... % 18
+ (442,-370){-1,1}... % 19
+ (291,-21){-115,822}... % 20
+ (216,285){-1,1}... % 21
+ (86,340){-1,0}...{-363,-192} % 22
+ (-96,278)--cycle); % 23
+
+endchar(0);
+
+"FBUK";
+
+charbegin( "K",2275h#, capheight*v#, baseline*v#);
+
+n := 15;
+t1 := 1;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 12;
+t7 := 14;
+t8 := 16;
+t9 := 18;
+t10 := 19;
+t11 := 20;
+t12 := 21;
+t13 := 22;
+t14 := 25;
+t15 := 27;
+
+adj_fill.A(6, 15) % fixed x points
+ (1, 7) % fixed y points
+ ((10,1), (11,2), (12,3), (13,4)) % tied points
+ ((4,9), (3,13)) % verticals
+ ((5,8), (2,14)) % horizontals
+ ((233,494){43,4}...{43,4} % 0
+ (276,498){185,-553}... % 1
+ (391,294){1,-1}... % 2
+ (495,237){1,0}... % 3
+ (577,272){1,1}... % 4
+ (637,474){0,1}... % 5
+ (514,949){-358,1019}... % 6
+ (378,1573){0,1}... % 7
+ (472,1888){362,660}... % *8
+ (740,2233){1,1}... % 9
+ (1557,2585){1,0}... % 10
+ (2068,2422){1,-1}... % 11
+ (2148,2278){0,-1}...{-57,-404} % 12
+ (2091,1874)-- % 13
+ (2018,1865){-192,519}... % 14
+ (1853,2142){-1,1}... % 15
+ (1307,2355){-1,0}... % 16
+ (842,2194){-1,-1}... % 17
+ (720,1861){0,-1}...{140,-521} % 18
+ (793,1399){48,-177}...{48,-177} % 19
+ (841,1222){165,-650}...{80,-411} % 20
+ (906,927){30,-103}...{30,-103} % 21
+ (936,824){51,-508}...{-107,-509} % 22
+ (920,488){-353,-434}... % 23
+ (456,33){-352,-247}... % 24
+ (288,-20){-1,0}... % 25
+ (40,82){-1,1}...{-210,267} % 26
+ (-38,179)--cycle); % 27
+
+n := 6;
+t1 := 0;
+t2 := 7;
+t3 := 9;
+t4 := 10;
+t5 := 12;
+t6 := 16;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,5), (3,1), (4,2), (6,3)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((1595,1104){586,230}...{586,230} % 0
+ (2181,1334){15,91}...{15,91} % 1
+ (2196,1425){-348,-120}... % 2
+ (2050,1388){-1,0}... % 3
+ (1968,1419){-1,1}... % 4
+ (1893,1602){-148,509}... % 5
+ (1783,1853){-1,1}... % 6
+ (1597,1919){-1,0}... % 7
+ (1224,1783){-804,-520}...{-375,-421} % *8
+ (793,1399)-- % 9
+ (841,1222){232,413}... % 10
+ (1035,1508){1,1}... % 11
+ (1326,1658){1,0}... % 12
+ (1448,1593){1,-1}... % 13
+ (1535,1417){88,-369}...{127,-136} % 14
+ (1608,1219){-702,-292}...{-63,-22} % 15
+ (906,927)--cycle); % 16
+
+n := 6;
+t1 := 1;
+t2 := 5;
+t3 := 6;
+t4 := 7;
+t5 := 7.702;
+t6 := 13;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((2,5), (3,3), (4,4)) % tied points
+ () % verticals
+ ((2,5), (1,6)) % horizontals
+ ((2427,396){-333,-251}... % 0
+ (2217,307){-1,0}... % 1
+ (2075,347){-1,1}... % 2
+ (1982,488){-142,551}... % 3
+ (1840,1039){-430,120}...{-457,70} % 4
+ (1595,1104){-689,-177}...{-689,-177} % 5
+ (906,927)-- % 6
+ (936,824){605,203}...{251,-69} % 7
+ (1397,871){251,-68}... % 8
+ (1470,803){136,-216}... % *9
+ (1533,655){117,-399}... % 10
+ (1588,404){111,-795}... % 11
+ (1747,6){1,-1}... % 12
+ (1896,-38){1,0}... % 13
+ (2134,54){552,355}...{1,1} % *14
+ (2448,317)--cycle); % 15
+
+endchar(0);
+
+"FBUL";
+
+charbegin( "L",2266h#, capheight*v#, baseline*v#);
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+
+adj_fill.A() % fixed x points
+ (1, 5) % fixed y points
+ ((3,1), (4,2)) % tied points
+ () % verticals
+ ((4,6), (2,7)) % horizontals
+ ((2235,840){-77,-345}... % 0
+ (2075,499){-1,-1}... % 1
+ (1719,365){-1,0}... % 2
+ (1167,454){-441,157}... % 3
+ (726,611){-1.939,.409}...{-366,27} % 4
+ (360,638){-208,-220}...{-212,-523} % 5
+ (-6,43)-- % 6
+ (45,-5){254,402}... % 7
+ (214,240){1,1}... % 8
+ (378,304){1,0}... % 9
+ (850,152){1000,-407}... % 10
+ (1686,-44){1,0}... % 11
+ (2039,116){1,1}... % 12
+ (2172,358){258,685}...{83,377} % *13
+ (2297,801)--cycle); % 14
+
+n := 13;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 8;
+t5 := 12;
+t6 := 13;
+t7 := 14;
+t8 := 16;
+t9 := 19;
+t10 := 22;
+t11 := 24;
+t12 := 27;
+t13 := 28;
+
+adj_fill.B(7) % fixed x points
+ () % fixed y points
+ ((1,2), (13,1)) % tied points
+ ((5,9), (3,11), (2,12)) % verticals
+ ((6,8), (4,10)) % horizontals
+ ((360,638){501,52}... % 0
+ (574,679){341,108}... % *1
+ (701,746){1,1}... % 2
+ (767,914){0,1}... % 3
+ (577,1340){-403,733}... % 4
+ (457,1724){0,1}... % 5
+ (539,1992){315,567}... % *6
+ (772,2291){1,1}... % 7
+ (1575,2589){1,0}... % 8
+ (1922,2482){1,-1}... % 9
+ (1985,2325){62,-418}... % *10
+ (1984,2064){-83,-723}... % 11
+ (1975,1926){0,-1}... % 12
+ (2050,1753){1,-1}...{295,17} % 13
+ (2217,1733)-- % 14
+ (2190,1680){-481,-162}...{-481,-162} % 15
+ (1709,1518){-1,0}... % 16
+ (1619,1545){-1,1}... % 17
+ (1552,1704){0,1}... % 18
+ (1570,1849){47,498}... % 19
+ (1587,2043){0,1}... % 20
+ (1501,2274){-1,1}... % 21
+ (1204,2385){-1,0}... % 22
+ (929,2282){-1,-1}... % 23
+ (820,1996){0,-1}... % 24
+ (936,1569){274,-614}... % 25
+ (1042,1268){127,-532}...{-57,-482} % *26
+ (1063,1037){-337,-426}...{-337,-426} % 27
+ (726,611)--cycle); % 28
+
+endchar(0);
+
+"FBUM";
+
+charbegin( "M",3686h#, capheight*v#, baseline*v#);
+
+n := 15;
+t1 := 2;
+t2 := 6;
+t3 := 7;
+t4 := 8;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+t8 := 17;
+t9 := 18;
+t10 := 20;
+t11 := 23;
+t12 := 25;
+t13 := 28;
+t14 := 33;
+t15 := 35;
+
+adj_fill.A(8, 15) % fixed x points
+ (9) % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((7,10), (6,11), (2,13)) % verticals
+ ((5,12), (1,14)) % horizontals
+ ((36,5){256,284}... % 0
+ (130,101){1,1}... % 1
+ (299,165){1,0}... % 2
+ (438,113){280,-196}...{354,-486} % *3
+ (579,-31){688,573}...{688,573} % 4
+ (1267,542){230,495}... % 5
+ (1548,1683){.1556,1.967}...{-122,620} % 6
+ (1517,2053){-49,114}...{-49,114} % 7
+ (1468,2167){-186,492}... % 8
+ (1305,2432){-1,1}... % 9
+ (893,2592){-1,0}... % 10
+ (256,2351){-1,-1}... % 11
+ (54,2108){-273,-430}... % *12
+ (-17,1921){0,-1}... % 13
+ (162,1591){467,-614}... % 14
+ (319,1310){0,-1}... % 15
+ (259,1179){-228,-281}...{-434,-304} % *16
+ (91,1029)-- % 17
+ (148,968){393,225}... % 18
+ (511,1245){1,1}... % 19
+ (651,1527){0,1}... % 20
+ (605,1653){-179,309}... % *21
+ (472,1836){-584,698}... % 22
+ (288,2149){0,1}... % 23
+ (371,2296){1,1}... % 24
+ (563,2349){1,0}... % 25
+ (925,2169){1,-1}... % 26
+ (1094,1842){228,-836}... % *27
+ (1153,1333){0,-1}... % 28
+ (1091,752){-237,-939}... % *29
+ (916,394){-1,-1}...{-313,-196} % 30
+ (823,306){-337,447}... % 31
+ (675,460){-280,209}... % *32
+ (543,515){-1,0}... % 33
+ (273,402){-1,-1}...{-212,-269} % 34
+ (-12,61)--cycle); % 35
+
+n := 11;
+t1 := 2;
+t2 := 6;
+t3 := 7;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 15;
+t9 := 18;
+t10 := 21;
+t11 := 23;
+
+adj_fill.B(11) % fixed x points
+ () % fixed y points
+ ((3,3), (4,4), (6,2), (7,1)) % tied points
+ ((2,9)) % verticals
+ ((5,8), (1,10)) % horizontals
+ ((1268,-8){344,369}... % 0
+ (1334,65){1,1}... % 1
+ (1488,122){1,0}... % 2
+ (1604,78){257,-167}...{450,-483} % *3
+ (1745,-45){532,612}...{532,612} % 4
+ (2277,567){244,513}... % 5
+ (2486,1725){0,1}...{-67,545} % 6
+ (2470,2050){-37,144}...{-37,144} % 7
+ (2433,2194){-238,400}... % 8
+ (2330,2334){-1,1}... % 9
+ (2038,2453){-1,0}... % 10
+ (1771,2379){-570,-286}...{-406,-360} % *11
+ (1468,2167)-- % 12
+ (1517,2053){264,315}... % 13
+ (1654,2179){263,171}... % *14
+ (1780,2224){1,0}... % 15
+ (1943,2147){1,-1}... % 16
+ (2081,1872){187,-713}... % *17
+ (2130,1434){0,-1}... % 18
+ (2079,775){-199,-1080}...{-240,-357} % *19
+ (1931,354){-402,367}... % 20
+ (1703,492){-1,0}... % 21
+ (1473,369){-284,-311}...{-187,-238} % 22
+ (1230,66)--cycle); % 23
+
+n := 6;
+t1 := 2;
+t2 := 6;
+t3 := 8;
+t4 := 9;
+t5 := 11;
+t6 := 15;
+
+adj_fill.C() % fixed x points
+ (1, 6) % fixed y points
+ ((3,4), (4,3)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((3764,2086){-7,67}...{-7,67} % 0
+ (3757,2153){-325,-160}... % 1
+ (3620,2114){-1,0}... % 2
+ (3514,2175){-206,224}... % *3
+ (3414,2338){-329,762}... % 4
+ (3307,2543){-1,1}... % 5
+ (3173,2586){-1,0}... % 6
+ (2814,2484){-740,-392}...{-1,-1} % *7
+ (2433,2194)-- % 8
+ (2470,2050){706,986}... % 9
+ (2666,2245){402,265}... % *10
+ (2872,2315){1,0}... % 11
+ (2988,2268){1,-1}... % 12
+ (3078,2091){263,-741}... % 13
+ (3178,1853){250,-294}...{247,-87} % 14
+ (3268,1797)--cycle); % 15
+
+n := 5;
+t1 := 0;
+t2 := 3;
+t3 := 9;
+t4 := 10;
+t5 := 11;
+
+adj_fill.D(1, 3) % fixed x points
+ (1) % fixed y points
+ () % tied points
+ ((2,5)) % verticals
+ ((2,4)) % horizontals
+ ((3769,2090){-280,-146}... % 0
+ (3338,1773){-279,-235}... % 1
+ (3304,1716){-34,-236}... % 2
+ (3282,1318){0,-1}... % 3
+ (3328,711){178,-936}... % *4
+ (3384,507){131.7,-328.7}... % *5
+ (3460,382){1,-1}... % 6
+ (3536,343){1,0}...{222,93} % 7
+ (3724,409)-- % 8
+ (3735,342){-561,-404}...{-561,-404} % 9
+ (3174,-62){-251,358}...{-251,358} % 10
+ (2923,296){0,1}...{29,280} % 11
+ (2943,1459){317,408}...{184,132} % 12
+ (3318,1845)--cycle); % 13
+
+endchar(0);
+
+"FBUN";
+
+charbegin( "N",2881h#, capheight*v#, baseline*v#);
+
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 11;
+t7 := 14;
+t8 := 16;
+t9 := 17;
+t10 := 19;
+t11 := 23;
+t12 := 25;
+t13 := 28;
+t14 := 31;
+t15 := 34;
+
+adj_fill.A(1, 8) % fixed x points
+ (9, 15) % fixed y points
+ ((4,1)) % tied points
+ ((7,10), (6,11), (3,13)) % verticals
+ ((5,12), (2,14)) % horizontals
+ ((325,167){1,-1}... % 0
+ (728,-43){1,0}...{209,107} % 1
+ (820,-5){640,526}...{640,526} % 2
+ (1460,521){161,400}... % 3
+ (1601,1298){0,1}...{-98,434} % 4
+ (1534,1865){-56,174}...{-56,174} % 5
+ (1478,2039){-169,574}... % 6
+ (1258,2412){-1,1}... % 7
+ (840,2578){-1,0}... % 8
+ (229,2328){-1,-1}... % 9
+ (45,2092){-249,-449}... % *10
+ (-20,1879){0,-1}... % 11
+ (31,1708){198,-379}... % *12
+ (178,1500){304,-349}... % 13
+ (293,1294){0,-1}... % 14
+ (239,1158){-204,-279}...{-307,-221} % *15
+ (89,1015)-- % 16
+ (158,957){465,302}... % 17
+ (506,1243){474,533}... % *18
+ (632,1490){0,1}... % 19
+ (591,1608){-157,276}... % *20
+ (475,1766){-490,560}... % 21
+ (321,1973){-207,358}... % *22
+ (268,2124){0,1}... % 23
+ (328,2275){1,1}... % 24
+ (516,2337){1,0}... % 25
+ (874,2161){1,-1}... % 26
+ (1148,1650){370,-1281}... % *27
+ (1244,880){0,-1}... % 28
+ (1218,555){-100,-504}... % *29
+ (1144,376){-1,-1}... % 30
+ (943,272){-1,0}... % 31
+ (781,335){-1,1}...{-174,485} % 32
+ (654,534){-33,2}...{-33,2} % 33
+ (621,536)--cycle); % 34
+
+n := 9;
+t1 := 5;
+t2 := 9;
+t3 := 14;
+t4 := 16;
+t5 := 17;
+t6 := 19;
+t7 := 23;
+t8 := 24;
+t9 := 27;
+
+adj_fill.B(9) % fixed x points
+ (2, 5, 7) % fixed y points
+ ((4,1)) % tied points
+ ((1,8)) % verticals
+ ((3,6)) % horizontals
+ ((2945,404){-327,-164}... % 0
+ (2749,321){-1,0}... % 1
+ (2674,377){-307,491}... % 2
+ (2596,497){-353,624}... % 3
+ (2522,707){-135,885}... % 4
+ (2488,1288){0,1}...{146,789} % 5
+ (2528,1760){193,184}...{375,236} % 6
+ (2936,2066){-16,54}...{-16,54} % 7
+ (2920,2120){-256,-114}... % 8
+ (2758,2086){-1,0}... % 9
+ (2683,2134){-152,175}... % *10
+ (2606,2261){-246,546}... % 11
+ (2525,2450){-112,237}... % *12
+ (2494,2498){-1,1}... % 13
+ (2269,2570){-1,0}... % 14
+ (1689,2272){-1,-1}...{-902,-1073} % 15
+ (1478,2039)-- % 16
+ (1534,1881){728,1207}... % 17
+ (1811,2226){1,1}... % 18
+ (2006,2333){1,0}... % 19
+ (2125,2279){1,-1}... % 20
+ (2255,2018){298,-789}... % 21
+ (2346,1863){201,-213}...{1,0} % *22
+ (2456,1805){-407,-399}...{-273,-378} % 23
+ (2137,1435){0,-1083}...{0,-1} % 24
+ (2137,352){413,-603}...{162,-302} % 25
+ (2389,-50){475,287}...{141,107} % 26
+ (2952,332)--cycle); % 27
+
+endchar(0);
+
+"FBUO";
+
+%charbegin( "O",2862h#, programem*v#, baseline );
+charbegin( "O",2862h#, capheight*v#, baseline ); % DEK
+
+n := 7;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 12;
+t7 := 13;
+
+adj_fill.A(3, 7) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((2,5), (1,6)) % verticals
+ () % horizontals
+ ((695,2265){-234,-152}...{-249,-443} % 0
+ (174,1659){10,-423}... % 1
+ (365,1273){343,-497}... % 2
+ (526,998){216,-477}... % *3
+ (581,796){0,-1}... % 4
+ (511,622){-1,-1}...{-469,-121} % 5
+ (215,482)-- % 6
+ (589,552){311,328}... % 7
+ (840,861){339,529}... % *8
+ (928,1081){0,1}... % 9
+ (897,1186){-230,468}... % *10
+ (698,1549){-230,446}... % 11
+ (543,1909){0,1}...{346,250} % 12
+ (745,2212)--cycle); % 13
+
+n := 13;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 9;
+t5 := 12;
+t6 := 13;
+t7 := 15;
+t8 := 16;
+t9 := 18;
+t10 := 21;
+t11 := 25;
+t12 := 27;
+t13 := 28;
+
+adj_fill.B(1, 12) % fixed x points
+ (7, 13) % fixed y points
+ ((5,2), (6,1)) % tied points
+ ((3,10)) % verticals
+ ((6,8), (4,9), (2,11)) % horizontals
+ ((814,2307){52,-112}...{52,-112} % 0
+ (866,2195){417,31}... % 1
+ (1321,2191){1,0}... % 2
+ (1764,2144){716,-181}... % *3
+ (2037,2010){1,-1}... % 4
+ (2201,1711){222,-740}... % *5
+ (2259,1270){0,-1}... % 6
+ (2194,716){-251,-912}... % *7
+ (2008,358){-1,-1}... % 8
+ (1802,246){-1,0}... % 9
+ (1328,344){-793,254}... % 10
+ (784,519){-739,208}...{-371,-12} % *11
+ (589,552){-374,-70}...{-374,-70} % 12
+ (215,482){-279,-408}...{-279,-408} % 13
+ (-64,74)-- % 14
+ (0,-6){354,395}... % 15
+ (364,193){1,0}... % 16
+ (757,89){859,-314}... % 17
+ (1343,-49){1,0}... % 18
+ (1827,108){1066,605}...{261,249} % *19
+ (2409,556){320,537}... % 20
+ (2661,1458){0,1}... % 21
+ (2599,1938){-239,804}... % *22
+ (2422,2262){-1,1}... % 23
+ (2079,2456){-860,284}... % *24
+ (1562,2546){-669,37}... % 25
+ (1240,2571){-665,166}... % 26
+ (1177,2637){0,1}...{132,241} % 27
+ (1210,2748){-82,-9}...{-82,-9} % 28
+ (1128,2739)--cycle); % 29
+
+endchar(0);
+
+"FBUP";
+
+charbegin( "P",2864h#, capheight*v#, descender*v#);
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 6;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+
+adj_fill.A(1) % fixed x points
+ (5, 8) % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((4,6)) % verticals
+ ((2,7)) % horizontals
+ ((295,86){119,207}... % 0
+ (631,585){1,1}... % 1
+ (923,722){1,0}...{513,-72} % 2
+ (1059,708){406,-571}...{406,-571} % 3
+ (1465,137){0,-1}...{80,-525} % 4
+ (1510,-461)-- % 5
+ (1059,-766){-83,54}...{-83,54} % 6
+ (976,-712){174,616}... % 7
+ (1038,-324){83,964}...{0,1} % *8
+ (1059,252){-419,203}... % 9
+ (789,342){-1,0}... % 10
+ (502,195){-1,-1}...{-175,-245} % 11
+ (343,17)--cycle); % 12
+
+n := 22;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+t10 := 19;
+t11 := 27;
+t12 := 29;
+t13 := 30;
+t14 := 32;
+t15 := 42;
+t16 := 46;
+t17 := 47;
+t18 := 48;
+t19 := 52;
+t20 := 54;
+t21 := 57;
+t22 := 60;
+
+adj_fill.B(1, 9, 13) % fixed x points
+ (12, 22) % fixed y points
+ ((5,3), (6,4), (12,4), (13,3), (17,2), (18,1))% tied points
+ ((10,15), (7,18), (3,20), (2,21)) % verticals
+ ((11,14), (8,16), (4,19)) % horizontals
+ ((86,1028){205,153}... % 0
+ (241,1183){211,307}... % *1
+ (297,1335){0,1}... % 2
+ (153,1584){-312,410}... % 3
+ (21,1754){-306,505}... % 4
+ (0,1885){0,1}... % 5
+ (75,2121){287,505}... % *6
+ (287,2390){1,1}... % 7
+ (814,2611){1,0}... % 8
+ (1251,2416){1,-1}... % 9
+ (1412,2148){101,-322}...{53,-220} % 10
+ (1465,1928){0,-1350}...{0,-1350} % 11
+ (1465,578){227,-99}... % 12
+ (1998,354){774,-280}... % *13
+ (2239,298){1,0}... % 14
+ (2340,341){1,1}... % 15
+ (2386,482){0,1}... % 16
+ (2340,637){-179,375}... % *17
+ (2207,857){-518,738}... % 18
+ (2011,1224){0,1}... % 19
+ (2102,1419){354,476}...{355,327} % *20
+ (2365,1700){-471,86}... % 21
+ (2198,1753){-145,145}... % 22
+ (2146,1846){-37,214}... % 23
+ (2141,1993){0,1}... % 24
+ (2124,2156){-65,262}... % *25
+ (2076,2255){-1,1}... % 26
+ (1917,2323){-1,0}... % 27
+ (1619,2176){-1,-1}...{-293,-519} % 28
+ (1465,1928)-- % 29
+ (1412,2148){442,397}... % 30
+ (1861,2469){838,433}... % *31
+ (2250,2581){1,0}... % 32
+ (2431,2526){1,-1}... % 33
+ (2507,2284){141,-912}... % 34
+ (2584,2077){204,-289}... % *35
+ (2711,1995){1,0}...{327,96} % 36
+ (2826,2013){33,-61}...{33,-61} % 37
+ (2859,1952){-608,-323}... % 38
+ (2466,1694){-194,-177}... % 39
+ (2374,1529){0,-1}... % 40
+ (2492,1204){354,-575}... % 41
+ (2661,819){0,-1}... % 42
+ (2602,562){-304,-514}... % 43
+ (2343,203){-1,-1}... % 44
+ (2134,42){-403,-217}... % *45
+ (1940,-14){-1,0}...{-322,163} % 46
+ (1465,137){-406,571}...{-406,571} % 47
+ (1059,708){0,1}... % 48
+ (1054,1426){0,1}... % 49
+ (991,1900){-242,797}... % *50
+ (812,2223){-1,1}... % 51
+ (540,2358){-1,0}... % 52
+ (389,2301){-1,-1}... % 53
+ (297,2124){0,-1}... % 54
+ (344,2001){180,-296}... % *55
+ (477,1828){283,-313}... % 56
+ (673,1533){0,-1}... % 57
+ (638,1421){-136.7,-247.6}... % *58
+ (536,1285){-515,-559}...{-243,-164} % *59
+ (158,974)--cycle); % 60
+
+endchar(0);
+
+"FBUQ";
+
+%charbegin( "Q",2862h#, programem*v#, descender*v#);
+charbegin( "Q",2862h#, capheight*v#, 1/5descender*v#); % DEK
+
+n := 7;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 12;
+t7 := 13;
+
+adj_fill.A(3, 7) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((2,5), (1,6)) % verticals
+ () % horizontals
+ ((695,2265){-234,-152}...{-249,-443} % 0
+ (174,1659){10,-423}... % 1
+ (365,1273){343,-497}... % 2
+ (526,998){216,-477}... % *3
+ (581,796){0,-1}... % 4
+ (511,622){-1,-1}...{-469,-121} % 5
+ (215,482)-- % 6
+ (589,552){311,328}... % 7
+ (840,861){339,529}... % *8
+ (928,1081){0,1}... % 9
+ (897,1186){-230,468}... % *10
+ (698,1549){-230,446}... % 11
+ (543,1909){0,1}...{346,250} % 12
+ (745,2212)--cycle); % 13
+
+n := 15;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 9;
+t5 := 12;
+t6 := 13;
+t7 := 15;
+t8 := 16;
+t9 := 18;
+t10 := 19;
+t11 := 20;
+t12 := 22;
+t13 := 26;
+t14 := 28;
+t15 := 29;
+
+adj_fill.B(1, 14) % fixed x points
+ (7, 15) % fixed y points
+ ((5,2), (6,1), (10,3), (11,4)) % tied points
+ ((3,12)) % verticals
+ ((5,8), (4,9), (2,13)) % horizontals
+ ((814,2307){52,-112}...{52,-112} % 0
+ (866,2195){417,31}... % 1
+ (1321,2191){1,0}... % 2
+ (1764,2144){716,-181}... % *3
+ (2037,2010){1,-1}... % 4
+ (2201,1711){222,-740}... % *5
+ (2259,1270){0,-1}... % 6
+ (2194,716){-251,-912}... % *7
+ (2008,358){-1,-1}... % 8
+ (1802,246){-1,0}... % 9
+ (1328,344){-793,254}... % 10
+ (784,519){-739,208}...{-371,-12} % *11
+ (589,552){-374,-70}...{-374,-70} % 12
+ (215,482){-279,-408}...{-279,-408} % 13
+ (-64,74)-- % 14
+ (13,-6){354,395}... % 15
+ (364,193){1,0}... % 16
+ (757,89){859,-314}... % 17
+ (1343,-49){1,0}...{683,371} % 18
+ (1735,63){401,252}...{401,252} % 19
+ (2136,315){496,398}...{261,249} % 20
+ (2409,556){320,537}... % 21
+ (2661,1458){0,1}... % 22
+ (2599,1938){-239,804}... % *23
+ (2422,2262){-1,1}... % 24
+ (2079,2456){-860,284}... % *25
+ (1562,2546){-669,37}... % 26
+ (1240,2571){-665,166}... % 27
+ (1177,2637){0,1}...{132,241} % 28
+ (1210,2748){-82,-9}...{-82,-9} % 29
+ (1128,2739)--cycle); % 30
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (2,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((2776,49){-167,-103}...{-520,-261} % 0
+ (2265,-244){-413,177}...{-485,384} % 1
+ (1735,63)-- % 2
+ (2136,315){408,-436}... % 3
+ (2343,132){369,-248}... % *4
+ (2505,67){1,0}...{329,125} % 5
+ (2775,126)--cycle); % 6
+
+endchar(0);
+
+"FBUR";
+
+charbegin( "R",2866h#, capheight*v#, baseline*v#);
+
+n := 16;
+t1 := 2;
+t2 := 6;
+t3 := 7;
+t4 := 8;
+t5 := 9;
+t6 := 11;
+t7 := 13;
+t8 := 17;
+t9 := 19;
+t10 := 20;
+t11 := 22;
+t12 := 26;
+t13 := 28;
+t14 := 31;
+t15 := 36;
+t16 := 37;
+
+adj_fill.A(9, 16) % fixed x points
+ (10) % fixed y points
+ ((2,1), (3,2), (4,3), (5,4)) % tied points
+ ((8,11), (7,12), (4,14)) % verticals
+ ((6,13), (1,15)) % horizontals
+ ((74,-2){1,1}... % 0
+ (218,120){251,165}... % *1
+ (325,163){1,0}... % 2
+ (439,109){273,-206}...{415,-468} % *3
+ (598,-43){694,598}...{694,598} % 4
+ (1292,555){152,300}...{70,519} % 5
+ (1530,1277){8,106}...{8,106} % 6
+ (1538,1383){14,282}...{-35,697} % 7
+ (1543,1909){-40,215}...{-40,215} % 8
+ (1503,2124){-118,349}... % 9
+ (1321,2410){-1,1}... % 10
+ (832,2610){-1,0}... % 11
+ (233,2333){-1,-1}... % 12
+ (-4,1882){0,-1}... % 13
+ (43,1732){181,-332}... % *14
+ (177,1550){300,-331}... % 15
+ (274,1418){131,-241}... % *16
+ (308,1309){0,-1}... % 17
+ (229,1145){-1,-1}...{-399,-283} % 18
+ (92,1027)-- % 19
+ (150,970){402,238}... % 20
+ (529,1233){1,1}... % 21
+ (665,1506){0,1}... % 22
+ (622,1640){-168,306}... % *23
+ (497,1812){-470,538}... % 24
+ (344,2013){-206,335}... % *25
+ (291,2147){0,1}... % 26
+ (364,2275){1,1}... % 27
+ (547,2352){1,0}... % 28
+ (883,2190){1,-1}... % 29
+ (1078,1853){263,-810}... % *30
+ (1146,1380){0,-1}... % 31
+ (1096,758){-193,-965}... % *32
+ (953,415){-1,-1}...{-198,-169} % 33
+ (835,308){-233,261}... % 34
+ (672,466){-274,212}... % *35
+ (561,520){-1,0}...{-239,-279} % 36
+ (23,55)--cycle); % 37
+
+n := 6;
+t1 := 0;
+t2 := 7;
+t3 := 9;
+t4 := 10;
+t5 := 12;
+t6 := 17;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,5), (3,4), (4,3), (6,2)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((2200,1544){234,168}...{514,254} % 0
+ (2861,1916){-20,51}...{-20,51} % 1
+ (2841,1967){-412,-98}... % 2
+ (2725,1948){-1,0}... % 3
+ (2585,1992){-1,1}... % 4
+ (2518,2234){-65,637}... % 5
+ (2431,2511){-1,1}... % 6
+ (2218,2595){-1,0}... % 7
+ (1876,2471){-715,-471}...{-455,-550} % *8
+ (1503,2124)-- % 9
+ (1543,1909){156,386}... % 10
+ (1740,2227){428,438}... % *11
+ (1971,2347){1,0}... % 12
+ (2073,2292){1,-1}... % 13
+ (2140,2049){95,-648}... % 14
+ (2211,1813){208,-227}...{267,8} % 15
+ (2347,1756){-589,-321}...{-232,-77} % 16
+ (1538,1383)--cycle); % 17
+
+n := 9;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 13;
+t8 := 14;
+t9 := 15;
+
+adj_fill.C(9) % fixed x points
+ () % fixed y points
+ ((3,5), (4,2), (5,1)) % tied points
+ ((2,7)) % verticals
+ ((3,6), (1,8)) % horizontals
+ ((2960,410){-292,-162}... % 0
+ (2827,359){-1,0}... % 1
+ (2718,383){-285,288}... % 2
+ (2598,543){-215,346}... % 3
+ (2517,774){-56,414}...{21,797} % 4
+ (2499,1417){-174,100}...{-395,136} % 5
+ (2200,1544){-662,-161}...{-662,-161} % 6
+ (1538,1383)-- % 7
+ (1530,1277){496,116}... % 8
+ (1714,1294){1,0}... % 9
+ (1856,1281){316,-74}... % 10
+ (2079,1161){1,-1}... % 11
+ (2143,974){72,-703}...{0,-1} % *12
+ (2151,458){290,-469}...{96,-228} % 13
+ (2429,-46){536,373}...{536,373} % 14
+ (2965,327)--cycle); % 15
+
+endchar(0);
+
+"FBUS";
+
+charbegin( "S",2868h#, capheight*v#, baseline*v#);
+
+n := 19;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+t7 := 14;
+t8 := 16;
+t9 := 18;
+t10 := 19;
+t11 := 22;
+t12 := 25;
+t13 := 27;
+t14 := 29;
+t15 := 31;
+t16 := 33;
+t17 := 35;
+t18 := 37;
+t19 := 39;
+
+adj_fill.A(1, 10) % fixed x points
+ (9, 17, 19) % fixed y points
+ () % tied points
+ ((6,13), (4,15), (2,18)) % verticals
+ ((8,11), (7,12), (5,14), (3,16)) % horizontals
+ ((1280,1912){-320,-120}... % 0
+ (1187,1843){-1,-1}... % 1
+ (1092,1646){0,-1}... % 2
+ (1149,1492){1,-1}... % 3
+ (1369,1437){1,0}... % 4
+ (1808,1483){703,130}... % 5
+ (2224,1561){1,0}... % 6
+ (2592,1428){1,-1}... % 7
+ (2740,1024){0,-1}... % 8
+ (2425,371){-1,-1}... % 9
+ (1307,-55){-1,0}... % 10
+ (489,281){-1,1}... % 11
+ (156,1189){0,1}... % 12
+ (553,2150){1,1}...{663,135} % 13
+ (1453,2596){461,-201}... % 14
+ (1855,2390){535,-265}... % 15
+ (2343,2220){1,0}... % 16
+ (2550,2313){1,1}...{96,259} % 17
+ (2668,2502)-- % 18
+ (2726,2425){-186,-580}... % 19
+ (2533,2122){-1,-1}... % 20
+ (2159,1907){-638,-182}... % 21
+ (1985,1874){-1,0}... % 22
+ (1762,1958){-411,249}... % 23
+ (1351,2207){-411,249}... % 24
+ (1072,2316){-1,0}... % 25
+ (784,2190){-1,-1}... % 26
+ (531,1501){0,-1}... % 27
+ (881,538){1,-1}... % 28
+ (1676,211){1,0}... % 29
+ (2347,463){1,1}... % 30
+ (2478,794){0,1}... % 31
+ (2343,1108){-1,1}... % 32
+ (1906,1253){-1,0}... % 33
+ (1504,1190){-583,-138}... % 34
+ (1113,1108){-1,0}... % 35
+ (835,1207){-1,1}... % 36
+ (747,1444){0,1}... % 37
+ (916,1799){1,1}...{263,29} % 38
+ (1249,1949)--cycle); % 39
+
+endchar(0);
+
+"FBUT";
+
+charbegin( "T",2277h#, capheight*v#, baseline*v#);
+
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 7;
+t7 := 9;
+t8 := 10;
+t9 := 11;
+t10 := 13;
+t11 := 15;
+
+adj_fill.A(1, 7) % fixed x points
+ (8) % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((6,9)) % verticals
+ ((5,10), (2,11)) % horizontals
+ ((2415,2510){-391,-447}...{-391,-447} % 0
+ (2024,2063){-519,-205}... % 1
+ (1735,2013){-1,0}...{-683,138} % 2
+ (1344,2061){-128,31}...{-128,31} % 3
+ (1216,2092){-703,155}... % 4
+ (515,2224){-1,0}... % 5
+ (278,2146){-1,-1}... % 6
+ (210,2005){0,-1}...{482,-316} % 7
+ (430,1678){5,-38}...{5,-38} % 8
+ (435,1640)-- % 9
+ (176,1387){-310,290}... % 10
+ (-5,1742){0,1}... % 11
+ (224,2242){1,1}... % 12
+ (956,2575){1,0}...{716,-139} % 13
+ (1537,2485){723,-136}... % 14
+ (2006,2433){1,0}...{274,231} % 15
+ (2391,2600)--cycle); % 16
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 10;
+t8 := 11;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (4,2), (5,1), (8,3)) % tied points
+ ((3,6), (2,7)) % verticals
+ () % horizontals
+ ((1170,529){1,1}... % 0
+ (1266,741){0,1}... % 1
+ (1042,1080){-619,695}... % 2
+ (875,1291){-253,378}...{-148,477} % *3
+ (789,1458){137,313}...{1,1} % 4
+ (1216,2092)-- % 5
+ (1344,2061){-556,-318}... % 6
+ (1160,1737){0,-1}... % 7
+ (1213,1573){205,-370}... % *8
+ (1365,1367){539,-601}... % 9
+ (1621,975){0,-1}...{-1,-1} % 10
+ (1276,498)--cycle); % 11
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 7;
+t7 := 9;
+t8 := 11;
+
+adj_fill.C() % fixed x points
+ (1, 6) % fixed y points
+ ((3,3), (4,4)) % tied points
+ () % verticals
+ ((5,7), (2,8)) % horizontals
+ ((2156,544){-309,-233}... % 0
+ (1914,388){-413,-210}... % *1
+ (1743,334){-1,0}...{-478,224} % 2
+ (1276,498){-106,31}...{-106,31} % 3
+ (1170,529){-361,108}...{-1,0} % 4
+ (891,558){-321,-181}...{-384,-400} % 5
+ (292,72)-- % 6
+ (309,-9){523,460}... % 7
+ (604,197){303,128}... % 8
+ (765,216){1,0}... % 9
+ (1151,88){642,-309}...{1,0} % 10
+ (1621,-50){373,284}...{220,235} % 11
+ (2190,457)--cycle); % 12
+
+endchar(0);
+
+"FBUU";
+
+charbegin( "U",2467h#, capheight*v#, baseline*v#);
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 9;
+t5 := 11;
+t6 := 13.48;
+t7 := 15;
+
+adj_fill.A(1, 4) % fixed x points
+ () % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((3,5), (2,6)) % verticals
+ () % horizontals
+ ((283,490){308,76}... % 0
+ (638,661){1,1}... % 1
+ (760,961){0,1}... % 2
+ (713,1183){-185,513}... % *3
+ (575,1474){-262,464}... % 4
+ (388,1923){0,1}...{71,376} % 5
+ (394,2007){162,266}... % 6
+ (720,2427){1,1}...{298,198} % 7
+ (944,2608)-- % 8
+ (1016,2549){-379,-278}... % 9
+ (873,2425){-1,-1}... % 10
+ (778,2229){0,-1}... % 11
+ (887,1834){304,-637}... % 12
+ (1046,1361){150,-854}...{-99,-329} % *13
+ (1037,980){-365,-468}...{-365,-468} % 14
+ (672,512)--cycle); % 15
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 6;
+t6 := 8;
+t7 := 10;
+t8 := 12;
+
+adj_fill.B() % fixed x points
+ (5) % fixed y points
+ ((1,4), (3,1), (4,2), (8,3)) % tied points
+ () % verticals
+ ((4,6), (2,7)) % horizontals
+ ((1667,426){-1,-1}... % 0
+ (1426,292){-1,0}... % 1
+ (1072,382){-669,241}...{-420,77} % 2
+ (672,512){-389,-22}...{-389,-22} % 3
+ (283,490){-332,-401}...{-332,-401} % 4
+ (-49,89)-- % 5
+ (16,28){278,303}... % 6
+ (163,156){273,173}... % *7
+ (289,201){1,0}... % 8
+ (806,45){666,-287}... % 9
+ (1211,-66){1,0}...{224,84} % 10
+ (1384,-17){397,389}...{397,389} % 11
+ (1781,372)--cycle); % 12
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+t5 := 8;
+t6 := 11;
+
+adj_fill.C(1, 5) % fixed x points
+ () % fixed y points
+ ((2,3), (3,4)) % tied points
+ ((4,6)) % verticals
+ () % horizontals
+ ((2630,328){-626,-413}...{-626,-413} % 0
+ (2004,-85){-223,457}...{-223,457} % 1
+ (1781,372){-114,54}...{-114,54} % 2
+ (1667,426){1,1}... % 3
+ (1741,602){25,551}... % 4
+ (1763,1345){0,1}...{-58,706} % 5
+ (1722,2254){306,130}...{427,298} % 6
+ (2308,2594)-- % 7
+ (2363,2539){-361,-347}... % 8
+ (2283,2450){-484,-591}... % 9
+ (2165,2106){-89,-872}... % 10
+ (2140,1465){0,-1}...{25,-383} % 11
+ (2155,794){5,-52}... % 12
+ (2160,742){56,-767}... % 13
+ (2206,607){264,-633}... % 14
+ (2313,392){228,-390}... % 15
+ (2418,334){1,0}...{409,170} % 16
+ (2620,400)--cycle); % 17
+
+endchar(0);
+
+"FBUV";
+
+charbegin( "V",2878h#, capheight*v#, baseline*v#);
+
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 6;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+t10 := 16;
+t11 := 19;
+t12 := 21;
+t13 := 24;
+t14 := 27;
+
+adj_fill.A(8, 14) % fixed x points
+ (4, 9, 14) % fixed y points
+ ((1,4), (2,1), (3,2), (14,3)) % tied points
+ ((7,10), (6,11), (2,13)) % verticals
+ ((5,12)) % horizontals
+ ((982,703){366,326}...{366,326} % 0
+ (1348,1029){149,321}...{-41,644} % 1
+ (1482,1893){-37,190}... % 2
+ (1445,2083){-.1911,-.01844}... % 3
+ (1445,2068){-131,682}... % 4
+ (1244,2450){-1,1}... % 5
+ (850,2601){-1,0}... % 6
+ (252,2354){-1,-1}... % 7
+ (5,2008){-165,-316}... % 8
+ (-21,1884){0,-1}... % 9
+ (153,1597){388,-478}... % 10
+ (317,1338){0,-1}... % 11
+ (229,1182){-1,-1}...{-185,-148} % 12
+ (85,1056)-- % 13
+ (146,988){334,218}... % 14
+ (565,1310){1,1}... % 15
+ (674,1549){0,1}... % 16
+ (481,1834){-384,411}... % 17
+ (356,2003){-169,315}... % *18
+ (312,2149){0,1}... % 19
+ (398,2304){1,1}... % 20
+ (566,2369){1,0}... % 21
+ (856,2232){1,-1}... % 22
+ (1025,1922){228,-770}... % *23
+ (1084,1462){0,-1}... % 24
+ (1045,1051){-150,-652}... % *25
+ (934,810){-1,-1}...{-238,-66} % 26
+ (694,664)--cycle); % 27
+
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 11;
+t5 := 16;
+t6 := 19;
+t7 := 21;
+t8 := 22;
+t9 := 24;
+t10 := 26;
+t11 := 29;
+t12 := 33;
+t13 := 35;
+t14 := 36;
+
+adj_fill.B() % fixed x points
+ (1, 6, 9) % fixed y points
+ ((7,2), (8,1), (13,4), (14,3)) % tied points
+ ((4,11)) % verticals
+ ((5,10), (2,13), (3,12)) % horizontals
+ ((212,148){419,370}... % 0
+ (454,319){446,231}... % *1
+ (658,379){1,0}... % 2
+ (870,329){527,-196}... % *3
+ (1185,183){521,-277}... % 4
+ (1550,12){603,-229}... % *5
+ (1788,-46){1,0}... % 6
+ (2230,162){469,409}... % 7
+ (2462,373){387,377}... % 8
+ (2641,837){0,1}... % 9
+ (2618,1089){-54,352}... % 10
+ (2564,1441){-54,352}... % 11
+ (2551,1740){0,1}... % 12
+ (2775,2167){1,1}...{367,261} % 13
+ (2928,2296){-2,72}...{-2,72} % 14
+ (2926,2368){-287,-115}... % 15
+ (2732,2337){-1,0}... % 16
+ (2530,2444){-459,315}... % 17
+ (2333,2556){-353,150}... % *18
+ (2177,2594){-1,0}... % 19
+ (1883,2464){-732,-511}...{-1,-1} % *20
+ (1445,2083)-- % 21
+ (1482,1893){272,420}... % 22
+ (1702,2172){394,380}... % *23
+ (1876,2273){1,0}... % 24
+ (2168,2140){488,-334}...{1,0} % 25
+ (2510,2009){-389,-413}... % 26
+ (2211,1664){-197,-273}... % 27
+ (2172,1347){0,-1}... % 28
+ (2186,1119){72,-477}... % 29
+ (2258,642){72,-477}... % 30
+ (2268,432){-31,-331}... % *31
+ (2227,311){-1,-1}... % 32
+ (2113,267){-1,0}... % 33
+ (1649,431){-695,345}...{-398,14} % 34
+ (982,703){-288,-39}...{-288,-39} % 35
+ (694,664){-402,-324}...{-1,-1} % 36
+ (174,215)--cycle); % 37
+
+endchar(0);
+
+"FBUW";
+
+charbegin( "W",3673h#, capheight*v#, baseline*v#);
+
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+t5 := 8;
+t6 := 12;
+t7 := 14;
+t8 := 15;
+t9 := 17;
+t10 := 21;
+t11 := 23;
+t12 := 25;
+t13 := 27.88;
+t14 := 28;
+
+adj_fill.A(7, 14) % fixed x points
+ (1, 8, 13) % fixed y points
+ ((1,4), (2,1), (3,2), (14,3)) % tied points
+ ((6,9), (5,10), (2,12)) % verticals
+ ((4,11)) % horizontals
+ ((840,545){425,279}...{425,279} % 0
+ (1265,824){259,348}...{-37,683} % 1
+ (1538,1941){-38,177}...{-38,177} % 2
+ (1500,2118){-217,609}... % 3
+ (1336,2388){-1,1}... % 4
+ (864,2584){-1,0}... % 5
+ (264,2356){-1,-1}... % 6
+ (55,2100){-282,-463}... % *7
+ (-18,1893){0,-1}... % 8
+ (35,1745){205,-351}... % *9
+ (187,1542){419,-476}... % 10
+ (283,1411){129,-233}... % *11
+ (316,1309){0,-1}... % 12
+ (235,1138){-1,-1}...{-317,-224} % 13
+ (98,1025)-- % 14
+ (179,970){362,226}... % 15
+ (523,1238){1,1}... % 16
+ (640,1515){0,1}... % 17
+ (592,1649){-187,319}... % *18
+ (453,1834){-382,432}... % 19
+ (320,2008){-180,294}... % *20
+ (273,2128){0,1}... % 21
+ (347,2276){1,1}... % 22
+ (587,2342){1,0}... % 23
+ (910,2200){1,-1}... % 24
+ (1136,1518){0,-1}... % 25
+ (1078,1042){-223,-788}... % *26
+ (913,730){-1,-1}...{-568,79} % 27
+ (530,578)--cycle); % 28
+
+n := 13;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+t9 := 13;
+t10 := 17;
+t11 := 21;
+t12 := 23;
+t13 := 24;
+
+adj_fill.B() % fixed x points
+ (1) % fixed y points
+ ((4,5), (5,6), (6,7), (7,8), (8,2), (9,1), (12,4), (13,3))% tied points
+ ((6,10)) % verticals
+ ((3,11), (2,13)) % horizontals
+ ((48,8){1,1}... % 0
+ (251,169){381,217}... % *1
+ (429,225){1,0}... % 2
+ (739,107){530,-300}... % 3
+ (1195,-50){1,0}...{591,66} % 4
+ (1317,-36){278,207}...{572,315} % 5
+ (1699,205){401,359}...{401,359} % 6
+ (2100,564){211,273}...{211,273} % 7
+ (2311,837){98,248}...{-91,482} % 8
+ (2414,2003){-37,131}...{-37,131} % 9
+ (2377,2134){-259,453}...{-259,453} % 10
+ (2118,2587){-201,-143}...{-476,-395} % 11
+ (1500,2118)-- % 12
+ (1538,1941){310,710}...{251,219} % 13
+ (1760,2214){275,-169}... % 14
+ (1917,2097){1,-1}... % 15
+ (2047,1819){175,-747}... % *16
+ (2092,1350){0,-1}... % 17
+ (2032,783){-231,-916}...{-1,-1} % *18
+ (1861,434){-338,-164}... % 19
+ (1589,289){-338,-164}... % *20
+ (1523,270){-1,0}... % 21
+ (1151,391){-543,278}...{-507,206} % 22
+ (840,545){-310,33}...{-310,33} % 23
+ (530,578){-373,-314}...{-221,-246} % 24
+ (7,90)--cycle); % 25
+
+n := 13;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 11;
+t5 := 14;
+t6 := 16;
+t7 := 17;
+t8 := 19;
+t9 := 22;
+t10 := 23;
+t11 := 26;
+t12 := 29;
+t13 := 31;
+
+adj_fill.C(10) % fixed x points
+ () % fixed y points
+ ((1,5), (6,8), (7,7), (13,6)) % tied points
+ ((3,11)) % verticals
+ ((5,8), (4,9), (2,12)) % horizontals
+ ((1699,205){328,-45}... % 0
+ (2254,50){841,-326}... % 1
+ (2599,-42){1,0}...{568,219} % 2
+ (2828,5){567,438}...{567,438} % 3
+ (3395,443){284,366}... % 4
+ (3459,598){86,394}... % *5
+ (3481,837){0,1}... % 6
+ (3415,1310){-163,770}... % 7
+ (3360,1654){0,1}... % 8
+ (3471,1930){428,651}...{1,1} % *9
+ (3788,2305){-5,62}...{-5,62} % 10
+ (3783,2367){-427,-128}... % 11
+ (3663,2341){-1,0}... % 12
+ (3355,2461){-631,407}... % 13
+ (3038,2585){-1,0}... % 14
+ (2758,2468){-661,-451}...{-466,-483} % *15
+ (2377,2134)-- % 16
+ (2414,2003){284,389}... % 17
+ (2582,2171){338,228}... % *18
+ (2752,2231){1,0}... % 19
+ (3031,2128){583,-320}... % 20
+ (3215,2028){256,-122}... % *21
+ (3287,2006){1,0}...{277,144} % 22
+ (3378,2017){-487,-389}... % 23
+ (3147,1785){-178,-198}...{-195,-265} % 24
+ (2991,1580){-158,-608}... % 25
+ (3043,974){168,-918}... % 26
+ (3106,503){0,-1}... % 27
+ (3067,325){-1,-1}... % 28
+ (2959,273){-1,0}... % 29
+ (2683,340){-763,324}...{-305,75} % 30
+ (2100,564)--cycle); % 31
+
+endchar(0);
+
+"FBUX";
+
+charbegin( "X",2463h#, capheight*v#, baseline*v#);
+
+n := 14;
+t1 := 1;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 13;
+t9 := 16;
+t10 := 17;
+t11 := 18;
+t12 := 19;
+t13 := 20;
+t14 := 23;
+
+adj_fill.A(6, 11) % fixed x points
+ (7) % fixed y points
+ ((3,1), (4,2), (12,3), (13,4)) % tied points
+ ((3,9)) % verticals
+ ((5,8), (10,11), (1,14), (2,3)) % horizontals
+ ((2409,402){-379,-180}... % 0
+ (2054,281){-1,0}... % 1
+ (1689,423){-1,1}...{0,1} % 2
+ (1418,1224){1,0}...{422,-1} % 3
+ (1840,1223){203,205}...{203,205} % 4
+ (2043,1428){-174,-15}...{-1,0} % 5
+ (1432,1415){-39,589}...{-39,589} % 6
+ (1393,2004){-44,390}... % 7
+ (1188,2397){-1,1}...{-456,52} % 8
+ (754,2575){-225,-204}...{-384,-459} % 9
+ (209,2013)-- % 10
+ (267,1938){128,140}... % 11
+ (395,2078){1,1}... % 12
+ (695,2210){1,0}... % 13
+ (937,2087){1,-1}... % 14
+ (1047,1840){149,-674}...{0,-1} % *15
+ (1086,1413){-1,0}...{-210,13} % 16
+ (627,1421){-203,-207}...{-203,-207} % 17
+ (424,1214){542,37}...{1,0} % 18
+ (1079,1225){105,-650}...{105,-650} % 19
+ (1184,575){231,-680}... % 20
+ (1312,265){258,-503}... % *21
+ (1442,72){1,-1}... % 22
+ (1783,-70){1,0}...{279,57} % 23
+ (1985,-31){390,342}...{192,135} % 24
+ (2400,306)--cycle); % 25
+
+n := 5;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+
+adj_fill.B() % fixed x points
+ (1) % fixed y points
+ ((3,3), (4,4)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((254,437){273,-276}... % 0
+ (435,293){341,-194}... % *1
+ (595,243){1,0}... % 2
+ (722,286){279,166}... % *3
+ (874,409){1,1}... % 4
+ (1026,720){205,816}...{0,1} % *5
+ (1079,1225)-- % 6
+ (1184,575){-440,-476}... % 7
+ (577,35){-394,-250}... % 8
+ (378,-60){-1,0}...{-298,213} % 9
+ (1,138)--cycle); % 10
+
+n := 2;
+t1 := 5;
+t2 := 6;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((2513,2261){-241,-69}... % 0
+ (2391,2244){-1,0}... % 1
+ (2268,2279){-1,1}...{-198,495} % 2
+ (2091,2583){-353,-135}... % 3
+ (1657,2310){-1,-1}...{-313,-447} % 4
+ (1393,2004)-- % 5
+ (1432,1415){0,1}...{159,186} % 6
+ (1767,2284){305,-529}...{330,-143} % 7
+ (2106,1960){411,237}...{411,237} % 8
+ (2517,2197)--cycle); % 9
+
+endchar(0);
+
+"FBUY";
+
+charbegin( "Y",2884h#, capheight*v#, descender*v#);
+
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 12;
+t7 := 14;
+t8 := 15;
+t9 := 17;
+t10 := 20;
+t11 := 22;
+t12 := 24;
+t13 := 26.88;
+t14 := 27;
+
+adj_fill.A(7, 14) % fixed x points
+ (1, 8, 13) % fixed y points
+ ((1,3), (3,1), (14,2)) % tied points
+ ((6,9), (5,10), (2,12)) % verticals
+ ((4,11)) % horizontals
+ ((891,550){86,81}...{395,276} % 0
+ (1310,891){185,304}... % 1
+ (1499,1709){0,1}...{-117,630} % 2
+ (1487,1916){-39,149}...{-39,149} % 3
+ (1448,2065){-231,670}... % 4
+ (1271,2419){-1,1}... % 5
+ (878,2586){-1,0}... % 6
+ (253,2334){-1,-1}... % 7
+ (69,2100){-248,-442}... % *8
+ (5,1892){0,-1}... % 9
+ (52,1746){181,-328}... % *10
+ (186,1564){379,-423}... % 11
+ (330,1341){0,-1}... % 12
+ (252,1161){-1,-1}...{-382,-248} % 13
+ (100,1045)-- % 14
+ (178,974){424,291}... % 15
+ (570,1308){278,267}... % 16
+ (692,1537){0,1}... % 17
+ (515,1812){-393,437}... % 18
+ (376,1997){-187,327}... % *19
+ (328,2139){0,1}... % 20
+ (403,2304){1,1}... % 21
+ (580,2360){1,0}... % 22
+ (848,2225){1,-1}... % 23
+ (1100,1534){0,-1}... % 24
+ (1059,1018){-157,-799}... % *25
+ (943,735){-1,-1}...{-499,45} % 26
+ (504,591)--cycle); % 27
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+
+adj_fill.B() % fixed x points
+ (1, 5) % fixed y points
+ ((3,3), (4,2)) % tied points
+ () % verticals
+ ((4,6), (2,7)) % horizontals
+ ((1793,567){-251,-225}... % 0
+ (1587,408){-350,-215}... % *1
+ (1443,352){-1,0}... % 2
+ (1179,426){-709,326}...{-464,89} % 3
+ (891,550){-387,41}...{-387,41} % 4
+ (504,591){-275,-228}...{-404,-478} % 5
+ (5,68)-- % 6
+ (64,-3){414,442}... % 7
+ (289,181){433,249}... % *8
+ (497,246){1,0}... % 9
+ (776,151){801,-388}...{322,-56} % 10
+ (1299,-40){400,256}...{155,216} % 11
+ (1814,489)--cycle); % 12
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 17;
+t10 := 20;
+
+adj_fill.C(1) % fixed x points
+ (6, 10) % fixed y points
+ ((5,1)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((702,-534){1,-1}... % 0
+ (1216,-732){1,0}... % 1
+ (1826,-543){1182,716}...{335,435} % *2
+ (2398,-16){182,440}... % 3
+ (2655,1313){0,1}...{-81,707} % 4
+ (2582,2257){-271,151}...{-252,333} % 5
+ (2171,2608){-252,-130}... % 6
+ (1853,2401){-723,-543}...{-446,-399} % *7
+ (1448,2065)-- % 8
+ (1487,1913){420,644}... % 9
+ (1653,2093){342,245}... % *10
+ (1829,2158){1,0}... % 11
+ (2078,2045){1,-1}... % 12
+ (2205,1726){172,-910}... % *13
+ (2250,1135){0,-1}... % 14
+ (2152,209){-378,-1496}... % *15
+ (1872,-361){-1,-1}... % 16
+ (1365,-554){-1,0}... % 17
+ (1042,-441){-1,1}...{-130,394} % 18
+ (905,-183){-45,8}...{-45,8} % 19
+ (860,-175)--cycle); % 20
+
+endchar(0);
+
+"FBUZ";
+
+%charbegin( "Z",2029h#, capheight*v#, depthy*v#);
+charbegin( "Z",2029h#, capheight*v#, 2/3descender*v#); % DEK
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+t9 := 14;
+t10 := 17;
+
+adj_fill.A(1, 6) % fixed x points
+ (7) % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((4,9)) % verticals
+ ((5,8), (1,10)) % horizontals
+ ((654,1398){36,-6}...{36,-6} % 0
+ (690,1392){354,20}... % 1
+ (1044,1412){1.051,1.055}...{1,19} % 2
+ (1045,1431){204,30}... % 3
+ (1450,1668){1,1}... % 4
+ (1621,2121){0,1}... % 5
+ (1513,2411){-1,1}... % 6
+ (1006,2568){-1,0}...{-396,-85} % 7
+ (653,2528){-215,-174}...{-341,-362} % 8
+ (191,2096)-- % 9
+ (249,2003){229,264}... % 10
+ (379,2130){1,1}... % 11
+ (782,2289){1,0}... % 12
+ (1096,2172){1,-1}... % 13
+ (1199,1914){0,-1}... % 14
+ (1088,1570){-1,-1}... % 15
+ (940,1497){-385,-99}...{-1,0} % *16
+ (703,1471)--cycle); % 17
+
+n := 12;
+t1 := 1;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 16;
+t9 := 19;
+t10 := 22;
+t11 := 24;
+t12 := 26;
+
+adj_fill.B(12) % fixed x points
+ () % fixed y points
+ ((5,2), (6,1)) % tied points
+ ((4,8), (2,10)) % verticals
+ ((6,7), (3,9), (1,11)) % horizontals
+ ((-98,256){353,199}... % 0
+ (79,317){1,0}... % 1
+ (210,270){1,-1}... % 2
+ (268,18){93,-878}... % 3
+ (419,-366){1,-1}... % 4
+ (791,-486){1,0}... % 5
+ (1569,-137){1,1}... % 6
+ (1857,662){0,1}... % 7
+ (1654,1218){-1,1}...{-1,0} % 8
+ (1044,1412){-354,-20}...{-354,-20} % 9
+ (690,1392)-- % 10
+ (551,1138){32,-31}...{32,-31} % 11
+ (583,1107){941,143}... % 12
+ (1011,1121){690,-89}... % *13
+ (1273,1018){1,-1}... % 14
+ (1397,793){168,-555}... % *15
+ (1441,463){0,-1}... % 16
+ (1392,77){-188,-644}... % *17
+ (1253,-181){-1,-1}... % 18
+ (991,-317){-1,0}... % 19
+ (762,-233){-1,1}... % 20
+ (687,-87){-102,372}... % *21
+ (660,139){0,1}... % 22
+ (605,522){-1,1}... % 23
+ (407,594){-1,0}... % 24
+ (184,529){-522,-254}...{-246,-184} % *25
+ (-115,340)--cycle); % 26
+
+endchar(0);
+
+% PUNCTUATION, note: this is medium punctuation, duplicate of that in eufmch.
+set_stem_round(155,157,160,189,197,193);
+initrot:=identity;
+more_side(0); % DEK
+
+"fmexclamationpoint";
+
+%charbegin( 33, 795h#, ascender*v#, baseline );
+charbegin( 33,1095h#, ascender*v#, baseline ); % DEK
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (6,1)) % tied points
+ ((2,5), (3,4)) % verticals
+ () % horizontals
+ ((413,2553){-1,0}... % 0
+ (286,2518){-318,-227}... % 1
+ (243,2444){-59,-206}... % *2
+ (227,2312){0,-1}... % 3
+ (238,2097){101,-1416}...{101,-1416} % 4
+ (339,681)-- % 5
+ (398,690){133,1370}... % 6
+ (531,2060){133,1370}... % 7
+ (551,2384){0,1}... % 8
+ (503,2522){-234,213}...{-1,0} % 9
+ (413,2553)--cycle); % 10
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (5,2)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((398,177)-- % 0
+ (398,387){-1,0}... % 1
+ (185,177){0,-1}... % 2
+ (398,-44){1,0}... % 3
+ (604,177){0,1}...{-1,0} % 4
+ (398,387)--cycle); % 5
+
+%endchar(0);
+endchar(150h#); % DEK
+
+"fmdoublequote";
+
+%charbegin( 125, 795h#, ascender*v#, lcbody*v#);
+charbegin( 125, 795h#, ascender*v#, baseline*v#); % DEK
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 9;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (4,1)) % tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((159,2573){-1,0}... % 0
+ (65,2538){-208,-163}... % 1
+ (32,2431){0,-1}... % 2
+ (52,2162){72,-562}...{72,-562} % 3
+ (124,1600)-- % 4
+ (205,1600){77,705}... % 5
+ (282,2305){77,705}... % 6
+ (282,2497){0,1}... % 7
+ (240,2554){-219,158}...{-1,0} % 8
+ (159,2573)--cycle); % 9
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 9;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (4,2)) % tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((617,2561){-1,0}... % 0
+ (498,2528){-155,-140}... % 1
+ (474,2470){0,-1}... % 2
+ (491,2311){84,-711}...{84,-711} % 3
+ (575,1600)-- % 4
+ (651,1600){69,718}... % 5
+ (720,2318){69,718}... % 6
+ (725,2489){0,1}... % 7
+ (703,2532){-204,227}...{-1,0} % 8
+ (617,2561)--cycle); % 9
+
+endchar(0);
+
+"fmlefttquote";
+
+%charbegin( 18, 795h#, ascender*v#, lcbody*v#);
+charbegin( 18, 795h#, ascender*v#, baseline*v#); % DEK
+
+n := 2;
+t1 := 0;
+t2 := 12;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((529,1568){-275,-225}... % 0
+ (433,1518){-1,0}... % 1
+ (339,1576){-239,317}... % 2
+ (166,2001){0,1}... % 3
+ (258,2252){166,276}...{350,433} % 4
+ (519,2623)-- % 5
+ (568,2570){-215,-370}... % 6
+ (422,2281){-95,-210}... % 7
+ (388,2135){0,-1}... % 8
+ (439,1969){118,-183}... % 9
+ (557,1786){118,-183}... % 10
+ (590,1685){0,-1}...{-391,-302} % 11
+ (529,1568)--cycle); % 12
+
+endchar(0);
+
+"fmrightquote";
+
+%charbegin( 19, 795h#, ascender*v#, lcbody*v#);
+charbegin( 19, 795h#, ascender*v#, baseline*v#); % DEK
+
+n := 2;
+t1 := 6;
+t2 := 7;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((213,1502){198,333}... % 0
+ (356,1770){155,386}... % 1
+ (392,1942){0,1}... % 2
+ (345,2087){-132,210}... % 3
+ (213,2297){-132,210}... % 4
+ (182,2404){0,1}...{189,173} % 5
+ (208,2493)-- % 6
+ (208,2493){333,295}... % 7
+ (338,2562){1,0}... % 8
+ (448,2480){237,-343}... % 9
+ (579,2223){116,-321}... % 10
+ (604,2085){0,-1}... % 11
+ (505,1792){-275,-484}...{-253,-383} % 12
+ (274,1460)--cycle); % 13
+
+endchar(0);
+
+"fmlparenthesis";
+
+%charbegin( 40, 795h#, programem*v#, descender*v#);
+charbegin( 40,1439h#, .75programem*v#, .25programem*v#); % DEK
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 14;
+
+adj_fill.A(1, 3, 4, 6) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((731,-690){-218,40}... % 0
+ (320,-398){-256,346}... % 1
+ (128,140){-258,1434}... % *2
+ (62,1036){0,1}... % 3
+ (136,1888){289,1419}... % *4
+ (351,2455){239,346}...{360,106} % 5
+ (731,2729)-- % 6
+ (731,2661){-349,-175}... % 7
+ (458,2366){-219,-458}... % 8
+ (304,1811){-206,-1351}... % *9
+ (252,1015){0,-1}... % 10
+ (318,66){256,-1470}... % *11
+ (399,-253){189.9,-521.3}... % *12
+ (508,-455){221,-253}...{242,-74} % 13
+ (731,-636)--cycle); % 14
+
+%endchar(0);
+endchar(357h#); % DEK
+
+"fmrparenthesis";
+
+%charbegin( 41, 795h#, programem*v#, descender*v#);
+charbegin( 41,1439h#, .75programem*v#, .25programem*v#); % DEK
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 14;
+
+adj_fill.A(1, 3, 4, 6) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((29,-691){335,60}... % 0
+ (429,-482){224,270}... % 1
+ (647,74){294,1490}... % *2
+ (723,1008){0,1}... % 3
+ (627,1937){-372,1516}... % *4
+ (351,2524){-233,253}...{-573,119} % 5
+ (29,2721)-- % 6
+ (29,2644){386,-185}... % 7
+ (254,2449){217,-312}... % 8
+ (457,1892){273,-1429}... % *9
+ (527,1020){0,-1}... % 10
+ (477,45){-210,-1464}... % *11
+ (412,-254){-159.7,-489.3}... % *12
+ (317,-444){-248,-309}...{-314,-129} % 13
+ (29,-632)--cycle); % 14
+
+%endchar(0);
+endchar(300h#); % DEK
+
+"fmast";
+
+%charbegin( 42, 1028h#, programem*v#, descender*v#);
+charbegin( 42, 1028h#, theight*v#, baseline*v#); % DEK
+
+n := 3;
+t1 := .5179;
+t2 := 2;
+t3 := 2.575;
+
+adj_fill.A(2) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,3)) % verticals
+ () % horizontals
+ ((463,1663){16,302}...{-30,642} % 0
+ (465,2562)-- % 1
+ (561,2562){-47,-490}...{50,-366} % 2
+ (556,1663)--cycle); % 3
+
+n := 0;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((803,1831){-225,196}...{-570,325} % 0
+ (123,2328)-- % 1
+ (203,2415){385,-363}...{187,-114} % 2
+ (868,1909)--cycle); % 3
+
+n := 0;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((865,2345){-203,-125}...{-502,-449} % 0
+ (166,1830)-- % 1
+ (121,1909){411,261}...{291,254} % 2
+ (810,2416)--cycle); % 3
+
+endchar(0);
+
+"rmplus";
+
+%charbegin( 43, 1838h#, lcbody*v#, baseline*v#);
+charbegin( 43, 2800h#, (1233+925)*v#, (1233-925)*v#); % DEK
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+% ((1788,1044){-1655,0}...{-1655,0} % 0
+% (133,1044)-- % 1
+% (78,898){1660,0}...{1660,0} % 2
+% (1738,898)--cycle); % 3
+ ((2625,1044){-1655,0}...{-1655,0} % 0 % DEK
+ (230,1044)-- % 1
+ (175,898){1660,0}...{1660,0} % 2
+ (2575,898)--cycle); % 3
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,2)) % verticals
+ () % horizontals
+% ((853,2){0,1760}...{0,1760} % 0
+% (853,1762)-- % 1
+% (1010,1815){0,-1742}...{0,-1742} % 2
+% (1010,73)--cycle); % 3
+ ((1322,-306){0,1760}...{0,1760} % 0 % DEK
+ (1322,2161)-- % 1
+ (1479,2214){0,-1742}...{0,-1742} % 2
+ (1479,-235)--cycle); % 3
+
+endchar(0);
+
+"fmcomma";
+
+%charbegin( 44, 1840h#, lcbody*v#, baseline*v#);
+charbegin( 44,(1840-812)*h#, 400*v#, baseline*v#); % DEK
+n := 4;
+t1 := 5;
+t2 := 6;
+t3 := 7;
+t4 := 11;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((2,1), (3,1)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((813,-642){171,229}... % 0
+ (959,-368){161,387}... % 1
+ (986,-224){0,1}... % 2
+ (938,-69){-128,177}... % 3
+ (810,108){-128,177}... % 4
+ (773,228){0,1}...{271,188} % 5
+ (838,354)-- % 6
+ (838,354){373,276}... % 7
+ (945,396){1,0}... % 8
+ (1038,323){228,-317}... % 9
+ (1167,90){103,-266}... % 10
+ (1197,-100){0,-1}... % 11
+ (1115,-357){-254,-409}...{-156,-187} % 12
+ (855,-710)--cycle); % 13
+
+%endchar(0);
+endchar(-406h#); % DEK
+
+"fmminus";
+
+%charbegin( 45, 1824h#, lcbody*v#, baseline );
+charbegin( 45, 2800h#, (1233+925)*v#, (1233-925)*v#); % DEK
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1754,1018){-1650,0}...{-1650,0} % 0
+% (104,1018)-- % 1
+% (70,874){1651,0}...{1651,0} % 2
+% (1721,874)--cycle); % 3
+ ((2614,1018){-1650,0}...{-1650,0} % 0 % DEK
+ (230,1018)-- % 1
+ (170,874){1651,0}...{1651,0} % 2
+ (2564,874)--cycle); % 3
+
+endchar(0);
+
+"fbequalsign";
+
+charbegin( 61, 1824h#, lcbody*v#, baseline );
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((1754,1268){-1650,0}...{-1650,0} % 0
+ (104,1268)-- % 1
+ (70,1124){1651,0}...{1651,0} % 2
+ (1721,1124)--cycle); % 3
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((1754,768){-1650,0}...{-1650,0} % 0
+ (104,768)-- % 1
+ (70,624){1651,0}...{1651,0} % 2
+ (1721,624)--cycle); % 3
+
+endchar(0);
+
+"fmperiod";
+
+%charbegin( 46, 1840h#, lcbody*v#, baseline*v#);
+charbegin( 46, (1840-812)*h#, 400*v#, baseline*v#); % DEK
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((931,163)-- % 0
+ (931,378){-1,0}... % 1
+ (729,163){0,-1}... % 2
+ (931,-55){1,0}... % 3
+ (1148,163){0,1}...{-1,0} % 4
+ (931,378)--cycle); % 5
+
+%endchar(0);
+endchar(-406h#); % DEK
+
+"rmslash";
+
+%charbegin( 47, 1796h#, programem*v#, descender*v#);
+charbegin( 47, 1858h#, .75programem*v#, .25programem*v#); % DEK
+n := 0;
+
+numeric a[],b[],alpha,beta;
+pair vec;
+.5[b0,b3]=.75programem-120; b1=b2=-.25programem+250; b0-b3=33;
+.5[a0,a3]=1652; .5[a1,a2]=205;
+vec=(.5[a0-a1,a3-a2],.5[b0-b1,b3-b2]);
+(a3,b3)-(a2,b2)=alpha*vec;
+(a1,b1)=beta*vec+(a2,b2)+145*(unitvector vec rotated 90);
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1614,2740){-1519,-3012}...{-1519,-3012}% 0
+% (95,-272)-- % 1
+% (223,-284){1505,2991}...{1505,2991} % 2
+% (1728,2707)--cycle); % 3
+ ((a0,b0)-- % 0 % DEK
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)--cycle); % 3
+
+endchar(0);
+
+"fmcolon";
+
+charbegin( 58, 800h#, lcbody*v#, baseline*v#);
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((371,1477)-- % 0
+ (371,1693){-1,0}... % 1
+ (180,1477){0,-1}... % 2
+ (371,1269){1,0}... % 3
+ (610,1477){0,1}...{-1,0} % 4
+ (371,1693)--cycle); % 5
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (5,2)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((371,152)-- % 0
+ (371,389){-1,0}... % 1
+ (195,152){0,-1}... % 2
+ (371,-45){1,0}... % 3
+ (621,152){0,1}...{-1,0} % 4
+ (371,389)--cycle); % 5
+
+endchar(0);
+
+"fmsemicolon";
+
+%charbegin( 59, 800h#, lcbody*v#, baseline*v#);
+charbegin( 59, 800h#, lcbody*v#, 2/3descender*v#); % DEK
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((372,1480)-- % 0
+ (372,1697){-1,0}... % 1
+ (175,1480){0,-1}... % 2
+ (372,1270){1,0}... % 3
+ (602,1480){0,1}...{-1,0} % 4
+ (372,1697)--cycle); % 5
+
+n := 0;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((273,-656){159,216}... % 0
+ (423,-380){139,329}... % 1
+ (449,-236){0,1}... % 2
+ (400,-95){-126,188}... % 3
+ (274,93){-126,188}... % 4
+ (240,190){0,1}...{277,281} % 5
+ (283,308)-- % 6
+ (282,325){346,281}... % 7
+ (398,366){1,0}... % 8
+ (479,327){185,-206}... % 9
+ (624,103){117,-298}... % 10
+ (664,-83){7,-393}... % 11
+ (576,-360){-202,-358}...{-227,-281} % 12
+ (331,-702)--cycle); % 13
+
+endchar(0);
+
+"fmlbrk";
+
+%charbegin( 91, 805h#, programem*v#, descender*v#);
+charbegin( 91, 805h#, .75programem*v#, .25programem*v#); % DEK
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+
+adj_fill.A(2, 5) % fixed x points
+ (1, 2) % fixed y points
+ () % tied points
+ ((1,6)) % verticals
+ ((3,4)) % horizontals
+ ((708,-442){-1,0}...{-563,-62} % 0
+ (112,-482){0,3222}...{0,3222} % 1
+ (112,2740){221,-23}...{1,0} % 2
+ (708,2725)-- % 3
+ (708,2633){-439,-45}...{-439,-45} % 4
+ (269,2588){0,-2931}...{0,-2931} % 5
+ (269,-343){439,-26}...{439,-26} % 6
+ (708,-369)--cycle); % 7
+
+endchar(0);
+
+"fmrbrk";
+
+%charbegin( 93, 805h#, programem*v#, descender*v#);
+charbegin( 93, 805h#, .75programem*v#, .25programem*v#); % DEK
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+
+adj_fill.A(2, 5) % fixed x points
+ (1, 2) % fixed y points
+ () % tied points
+ ((1,6)) % verticals
+ ((3,4)) % horizontals
+ ((45,-458){1,0}...{614,-78} % 0
+ (651,-487){0,3220}...{0,3220} % 1
+ (651,2733){-397,-48}...{-1,0} % 2
+ (45,2712)-- % 3
+ (45,2622){449,-32}...{449,-32} % 4
+ (494,2590){0,-2931}...{0,-2931} % 5
+ (494,-341){-449,-40}...{-449,-40} % 6
+ (45,-381)--cycle); % 7
+
+endchar(0);
+
+"fmappostrophe";
+
+charbegin( 39, 785h#, capheight*v#, baseline );
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 9;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (4,1)) % tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((385,2573){-1,0}... % 0
+ (285,2537){-105,-94}... % 1
+ (251,2464){0,-1}... % 2
+ (258,2326){69,-712}...{69,-712} % 3
+ (327,1614)-- % 4
+ (386,1614){96,686}... % 5
+ (482,2300){96,686}... % 6
+ (497,2449){0,1}... % 7
+ (466,2544){-152,162}...{-1,0} % 8
+ (385,2573)--cycle); % 9
+
+endchar(0);
+
+"fbqmark"; %bold question mark
+
+charbegin( 63, 1342h#, capheight*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 12;
+t7 := 14;
+t8 := 17;
+t9 := 19;
+t10 := 21;
+
+adj_fill.A() % fixed x points
+ (1, 6) % fixed y points
+ () % tied points
+ ((5,7), (4,8), (2,10)) % verticals
+ ((3,9)) % horizontals
+ ((244,1817){-251,167}... % 0
+ (186,1849){-1,1}... % 1
+ (122,2043){0,1}... % 2
+ (234,2335){1,1}... % 3
+ (825,2585){1,0}... % 4
+ (1194,2452){1,-1}... % 5
+ (1325,2135){0,-1}... % 6
+ (1089,1610){-367,-330}... % 7
+ (680,1238){-729,-649}... % 8
+ (565,1019){0,-1}...{136,-128} % 9
+ (657,823){4,-20}...{4,-20} % 10
+ (661,803)-- % 11
+ (443,628){-301,124}... % 12
+ (337,691){-1,1}... % 13
+ (260,888){0,1}... % 14
+ (386,1149){549,466}... % 15
+ (736,1456){451,362}... % 16
+ (978,2030){0,1}... % 17
+ (856,2334){-1,1}... % 18
+ (655,2419){-1,0}... % 19
+ (439,2338){-1,-1}... % 20
+ (379,2188){0,-1}... % 21
+ (443,2019){212,-261}...{206,-154} % 22
+ (479,1974)--cycle); % 23
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (3,1), (4,1), (6,2)) % tied points
+ ((2,5)) % verticals
+ ((1,3), (4,6)) % horizontals
+ ((526,-54){1,0}... % 0
+ (759,202){0,1}...{-1,0} % 1
+ (540,421)-- % 2
+ (540,421){-1,0}... % 3
+ (298,178){0,-1}...{1,0} % 4
+ (526,-54)--cycle); % 5
+
+endchar(0);
+
+"fbamp"; %bold ampersand
+
+charbegin( 38, 2732h#, capheight*v#, baseline );
+
+n := 36;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 6;
+t7 := 8;
+t8 := 10;
+t9 := 11;
+t10 := 13;
+t11 := 15;
+t12 := 17;
+t13 := 18;
+t14 := 19;
+t15 := 21;
+t16 := 22;
+t17 := 23;
+t18 := 25;
+t19 := 26;
+t20 := 28;
+t21 := 29;
+t22 := 30;
+t23 := 32;
+t24 := 33;
+t25 := 34;
+t26 := 36;
+t27 := 38;
+t28 := 40;
+t29 := 41;
+t30 := 43;
+t31 := 45;
+t32 := 46;
+t33 := 47;
+t34 := 48;
+t35 := 50;
+t36 := 51;
+
+adj_fill.A(19, 36) % fixed x points
+ (18) % fixed y points
+ ((1,10), (2,1), (4,2), (5,3), (8,4), (9,5), (13,5), (14,6), (15,7),% tied points
+ (16,2), (21,3), (22,8), (23,9), (24,4), (28,6), (29,9), (32,8), (33,7))
+ ((12,25), (10,27), (7,30), (3,34)) % verticals
+ ((17,20), (11,26), (6,31), (1,35)) % horizontals
+ ((1356,1493){648,-35}...{1,0} % 0
+ (1713,1483){416,-174}...{416,-174} % 1
+ (2129,1309){51,-528}... % 2
+ (2147,1143){0,-1}... % 3
+ (1885,405){-239,-315}... % 4
+ (1556,137){-317,-170}... % 5
+ (901,-52){-1,0}... % 6
+ (335,179){-1,1}... % 7
+ (133,681){0,1}... % 8
+ (320,1169){1,1}... % 9
+ (677,1432){215,143}... % 10
+ (1000,1645){325,200}... % 11
+ (1163,1765){1,1}... % 12
+ (1315,2174){0,1}... % 13
+ (1234,2384){-1,1}... % 14
+ (1114,2449){-1,0}... % 15
+ (957,2388){-1,-1}... % 16
+ (873,2131){0,-1}... % 17
+ (1000,1645){83,-155}... % 18
+ (1048,1532){63,-108}... % 19
+ (1353,1027){317,-461}... % 20
+ (1764,507){203,-206}... % 21
+ (1885,405){246,-185}... % 22
+ (2219,261){1,0}... % 23
+ (2360,316){1,1}...{118,340} % 24
+ (2555,681)-- % 25
+ (2634,660){-133,-584}... % 26
+ (2354,75){-1,-1}... % 27
+ (2035,-60){-1,0}... % 28
+ (1556,137){-409,371}... % 29
+ (1470,235){-287,327}... % 30
+ (1036,795){-250,386}... % 31
+ (730,1310){-226,423}... % 32
+ (677,1432){-152,412}... % 33
+ (581,1881){0,1}... % 34
+ (743,2370){1,1}... % 35
+ (1287,2578){1,0}... % 36
+ (1580,2472){1,-1}... % 37
+ (1669,2232){0,-1}... % 38
+ (1508,1850){-1,-1}... % 39
+ (1048,1532){-352,-204}... % 40
+ (730,1310){-415,-259}... % 41
+ (622,1231){-1,-1}... % 42
+ (498,878){0,-1}... % 43
+ (739,313){1,-1}... % 44
+ (1151,140){1,0}... % 45
+ (1470,235){304,114}... % 46
+ (1764,507){328,369}... % 47
+ (1916,932){0,1}... % 48
+ (1793,1239){-1,1}... % 49
+ (1540,1322){-1,0}...{-514,-64} % 50
+ (1353,1312)--cycle); % 51
+
+n := 5;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3.418;
+t5 := 5;
+
+adj_fill.B() % fixed x points
+ (4) % fixed y points
+ ((2,10), (3,1)) % tied points
+ () % verticals
+ ((1,5)) % horizontals
+ ((2621,1510){-366,-19}...{-1,0} % 0
+ (1713,1483)-- % 1
+ (2129,1309){22,4}... % 2
+ (2151,1313){1.984,.1789}... % 3
+ (2198,1313){482,-18}...{413,-13} % 4
+ (2611,1300)--cycle); % 5
+
+endchar(0);
+
+"fmcaret";
+
+%charbegin( 94, 1850h#, programem*v#, lcbody*v#);
+charbegin( 94, 1850h#, capheight*v#, baseline*v#); % DEK
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((1832,1798){-905,921}...{-905,921} % 0
+ (927,2719){-927,-1001}...{-927,-1001} % 1
+ (0,1718)-- % 2
+ (85,1672){834,818}...{834,818} % 3
+ (919,2490){770,-790}...{770,-790} % 4
+ (1689,1700)--cycle); % 5
+
+endchar(0);
+
+% ALTERNATE CHARACTERS, LOWERCASE
+set_stem_round(300,320,340,340,360,390);
+initrot:=identity shifted(0,-60v);
+more_side(100h#); % DEK
+
+"fbldb"; % '001
+
+%charbegin( 0, 1642h#, theight*v#, baseline );
+charbegin( 1, 1642h#, theight*v#, baseline ); % DEK
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 12;
+t8 := 14;
+%t9 := 16;
+t9 := 15.6; % DEK
+t10 := 17;
+
+adj_fill.A(1, 6) % fixed x points
+ (5) % fixed y points
+ () % tied points
+ ((4,7), (3,9)) % verticals
+ ((4,8), (2,10)) % horizontals
+ ((100,2180){181,74}...{566,130} % 0
+ (564,2394){155,-20}... % 1
+ (996,2232){931,-534}...{501,-453} % *2
+ (1495,1860){22,-335}...{-157,-554} % 3
+ (1358,436){-233,-171}...{-579,-339} % 4
+ (673,-42){-212,170}...{-506,495} % 5
+ (200,375){-23,337}...{93,709} % 6
+ (215,1406){165,161}...{283,181} % 7
+ (720,1781)-- % 8
+ (770,1747){-135,-130}... % 9
+ (635,1617){-217,-203}... % 10
+ (581,1494){-120,-618}... % 11
+ (558,719){26,-324}... % 12
+ (636,545){263,-308}...{342,-223} % 13
+ (971,274){151,259}... % 14
+ (1103,787){143,1371}...{-16,325} % *15
+ (1114,1645){-436,416}... % 16
+ (389,2132){-205,73}... % 17
+ (190,2145){-300,-30}...{-48,-15} % 18
+ (142,2130)--cycle); % 19
+
+endchar(0);
+
+"fblfa"; %'002
+% was "fblf" --- DEK
+%charbegin("f",1034h#, ascender*v#, descender*v#);
+charbegin(2,1034h#, ascender*v#, descender*v#);
+
+n := 11;
+t1 := 4;
+t2 := 8;
+t3 := 10;
+t4 := 11;
+t5 := 13;
+t6 := 16;
+t7 := 20;
+t8 := 22;
+t9 := 24;
+t10 := 27;
+t11 := 31;
+
+adj_fill.A(1, 4, 8, 11) % fixed x points
+ (1, 6) % fixed y points
+ () % tied points
+ ((5,7), (2,10)) % verticals
+ ((3,4), (7,9)) % horizontals
+ ((1170,2560){-5,-2}... % 0
+ (1165,2558){-1.747,-.9454}...{-97,-68} % 1
+ (1068,2490){-211,124}... % 2
+ (694,2615){-1,0}... % 3
+ (710,2615){-260,-103}... % 4
+ (600,2569){-197,-139}... % 5
+ (404,2357){-230,-288}... % 6
+ (339,2202){-88,-394}... % *7
+ (316,1963){0,-1}...{0,-1} % 8
+ (316,1559){-160,0}...{-160,0} % 9
+ (156,1559){-141,-139}...{-141,-139} % 10
+ (15,1420){8,-20}...{8,-20} % 11
+ (23,1400){313,0}...{313,0} % 12
+ (336,1400){0,-1272}... % 13
+ (336,128){0,-1}... % 14
+ (307,-337){-86,-419}...{-132,-450} % 15
+ (201,-725)-- % 16
+ (279,-720){312,657}... % 17
+ (591,-63){113,256}... % 18
+ (643,97){68,428}...{0,1} % 19
+ (707,1388){257,0}...{257,0} % 20
+ (964,1388){151,146}...{151,146} % 21
+ (1115,1534){-1,25}...{-1,25} % 22
+ (1114,1559){-394,0}...{-394,0} % 23
+ (720,1559){-150,452}... % 24
+ (574,1756){-299,353}... % 25
+ (446,1943){-173,343}... % *26
+ (401,2099){0,1}... % 27
+ (466,2229){1,1}... % 28
+ (598,2271){1,0}...{396,-322} % 29
+ (842,2113){336,371}...{336,371} % 30
+ (1178,2484)--cycle); % 31
+
+endchar(0);
+
+"fblfb"; % '003
+% was "fblfa" --- DEK
+%charbegin( 1, 1015h#, theight*v#, baseline );
+charbegin( 3, 1015h#, theight*v#, baseline ); % DEK
+
+n := 19;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 8;
+t8 := 9;
+t9 := 10;
+t10 := 13;
+t11 := 16;
+t12 := 17;
+t13 := 18;
+t14 := 19;
+t15 := 20;
+t16 := 23;
+t17 := 25;
+t18 := 27;
+t19 := 28;
+
+adj_fill.A(2, 7, 13, 19) % fixed x points
+ (1, 10, 18) % fixed y points
+ ((1,1), (19,1)) % tied points
+ ((5,15), (4,16), (9,11)) % verticals
+ ((6,8), (3,17), (12,14)) % horizontals
+ ((840,2092){231,303}... % 0
+ (1071,2395){-226,205}... % 1
+ (894,2532){-303,185}... % *2
+ (768,2580){-1,0}... % 3
+ (449,2466){-1,-1}...{-86,-401} % 4
+ (215,1983){70,-383}...{172,-641} % 5
+ (310,1541){-147,0}...{-147,0} % 6
+ (163,1541){-150,-151}...{-150,-151} % 7
+ (13,1390){15,-28}...{15,-28} % 8
+ (28,1362){297,0}...{297,0} % 9
+ (325,1362){9,-255}... % 10
+ (330,-56){-11,-307}... % 11
+ (269,-504){-121,-396}...{-201,-571} % 12
+ (201,-752)-- % 13
+ (274,-742){337,665}...{337,665} % 14
+ (611,-77){12,200}...{0,1} % 15
+ (685,1362){306,0}...{306,0} % 16
+ (991,1362){113,158}...{113,158} % 17
+ (1104,1520){-10,21}...{-10,21} % 18
+ (1094,1541){-402,0}...{-402,0} % 19
+ (692,1541){0,1}... % 20
+ (652,1669){-156,280}... % *21
+ (536,1821){-531,560}... % 22
+ (371,2137){0,1}... % 23
+ (425,2273){1,1}... % 24
+ (549,2314){1,0}... % 25
+ (668,2251){249,-234}...{156,-267} % *26
+ (798,2080){42,12}...{42,12} % 27
+ (840,2092)--cycle); % 28
+
+endchar(0);
+
+"fblga"; % '004
+
+%charbegin( 3,1658h#, ascender*v#, descender*v#);
+charbegin( 4,1658h#, ascender*v#, descender*v#); % DEK
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+t6 := 12;
+
+adj_fill.A(1, 3) % fixed x points
+ () % fixed y points
+ ((1,4), (3,1), (4,2), (6,3)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1108,402){-607,-449}...{-607,-449} % 0
+ (501,-47){-109,133}...{-294,292} % 1
+ (199,295){-10,265}...{85,650} % 2
+ (234,1428){148,116}...{375,223} % 3
+ (820,1813){191,-108}...{385,-101} % 4
+ (1262,1648)-- % 5
+ (1106,1344){-308,45}...{-225,133} % 6
+ (596,1534){-192,-549}... % 7
+ (528,1153){-53,-884}... % *8
+ (543,650){29,-280}... % 9
+ (604,492){201,-269}...{185,-157} % 10
+ (787,321){315,181}...{315,181} % 11
+ (1102,502)--cycle); % 12
+
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 11;
+t8 := 15;
+t9 := 17;
+
+adj_fill.B(9) % fixed x points
+ (1) % fixed y points
+ ((3,4), (4,3), (5,2), (6,1)) % tied points
+ ((3,7)) % verticals
+ ((2,8)) % horizontals
+ ((316,-104){33,1}...{33,1} % 0
+ (349,-103){156,-372}... % 1
+ (899,-436){1,0}... % 2
+ (1130,-370){1,1}... % 3
+ (1185,-201){0,1}...{-135,789} % 4
+ (1108,402){-6,100}...{-6,100} % 5
+ (1102,502){4,842}...{4,842} % 6
+ (1106,1344){156,304}...{156,304} % 7
+ (1262,1648)-- % 8
+ (1543,1794){21,-25}...{21,-25} % 9
+ (1564,1769){-262,-683}... % 10
+ (1465,1052){0,-1}... % 11
+ (1507,238){56,-424}... % 12
+ (1529,41){0,-1}...{-199,-502} % 13
+ (1499,-120){-474,-544}...{-474,-544} % 14
+ (1025,-664){-597,-187}... % 15
+ (707,-725){-1,0}...{-261,262} % 16
+ (109,-468)--cycle); % 17
+
+endchar(0);
+
+"fblka"; % '005
+
+%charbegin( 4, 1033h#, lcbody*v#, descender*v#);
+charbegin( 5, 1033h#, ascender*v#, baseline*v#); % DEK
+
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 11;
+t6 := 14;
+t7 := 15;
+t8 := 16;
+t9 := 17;
+
+adj_fill.A(4, 7) % fixed x points
+ (5) % fixed y points
+ ((1,3), (2,1), (3,2)) % tied points
+ ((3,9)) % verticals
+ ((6,8)) % horizontals
+ ((245,2550){94,-280}...{94,-280} % 0
+ (339,2270){261,-314}...{261,-314} % 1
+ (600,1956){-26,-413}...{-26,-413} % 2
+ (574,1543){409,0}...{409,0} % 3
+ (983,1543){-116,-149}...{-116,-149} % 4
+ (867,1394){-283,0}...{-283,0} % 5
+ (584,1394){0,-1}...{31,-572} % 6
+ (593,540){188,-153}...{386,-250} % 7
+ (872,328){199,73}...{199,73} % 8
+ (1071,401)-- % 9
+ (1079,334){-548,-359}...{-216,-179} % 10
+ (551,-40){-297,318}...{-185,128} % 11
+ (176,289){105,434}...{0,1} % 12
+ (222,1394){-219,0}...{-219,0} % 13
+ (3,1394){-1,39}...{-1,39} % 14
+ (2,1433){164,126}...{164,126} % 15
+ (166,1559){56,-3}...{56,-3} % 16
+ (222,1556){0,1}...{-69,527} % 17
+ (197,2513)--cycle); % 18
+
+n := 2;
+t1 := 0;
+t2 := 4;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((600,1956){0,1}... % 0
+ (669,2314){186,321}...{278,163} % 1
+ (886,2561)-- % 2
+ (833,2591){-413,-224}...{-225,-175} % 3
+ (339,2270)--cycle); % 4
+
+n := 2;
+t1 := 0;
+t2 := 8;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((574,1543){0,1}... % 0
+ (635,1882){247,246}... % 1
+ (688,1899){1,0}... % 2
+ (781,1846){208,-200}...{208,-326} % *3
+ (896,1699){24,9}...{24,9} % 4
+ (920,1708)-- % 5
+ (1113,1944){-258,626}...{-213,348} % 6
+ (970,2220){-370,-264}...{-370,-264} % 7
+ (600,1956)--cycle); % 8
+
+endchar(0);
+
+"fblta"; % '006
+
+%charbegin( 5, 1047h#, ascender*v#, baseline );
+charbegin( 6, 1047h#, ascender*v#, baseline ); % DEK
+
+n := 8;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 13;
+
+adj_fill.A(3, 8) % fixed x points
+ (1, 6) % fixed y points
+ () % tied points
+ ((5,7)) % verticals
+ ((2,4)) % horizontals
+ ((1190,346){-536,-409}...{-394,-326} % 0
+ (654,-63){-251,260}...{-401,272} % 1
+ (272,250){39,500}... % 2
+ (297,895){0,1}...{0,493} % 3
+ (297,1388){-246,0}...{-246,0} % 4
+ (51,1388){-6,34}...{-6,34} % 5
+ (45,1422){135,150}...{135,150} % 6
+ (180,1572){117,0}...{117,0} % 7
+ (297,1572){0,455}...{0,455} % 8
+ (297,2027)-- % 9
+ (660,2229){35,-33}...{35,-33} % 10
+ (695,2196){-30,-624}...{0,-1} % 11
+ (665,1572){343,0}...{343,0} % 12
+ (1008,1572){0,-35}...{0,-35} % 13
+ (1008,1537){-137,-147}...{-137,-147} % 14
+ (871,1390){-206,0}...{-206,0} % 15
+ (665,1390){0,-1}...{30,-333} % 16
+ (673,547){244,-288}...{295,-125} % 17
+ (968,309){222,122}...{222,122} % 18
+ (1190,431)--cycle); % 19
+
+endchar(0);
+
+"fbuya"; % '010
+
+%charbegin( 6, 2875h#, ascender*v#, baseline );
+charbegin( 8, 2875h#, ascender*v#, baseline ); % DEK
+
+n := 13;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+t8 := 16;
+t9 := 18;
+t10 := 22;
+t11 := 24;
+t12 := 27;
+t13 := 30;
+
+adj_fill.A(7, 13) % fixed x points
+ (3, 8, 13) % fixed y points
+ ((1,4), (2,1), (3,2), (13,3)) % tied points
+ ((6,9), (5,10), (2,12)) % verticals
+ ((4,11)) % horizontals
+ ((888,567){134,108}...{325,221} % 0
+ (1302,894){170,271}... % 1
+ (1488,1634){0,1}...{-72,549} % 2
+ (1478,1880){-33,190}... % 3
+ (1445,2070){-.1711,-.01475}... % 4
+ (1445,2060){-99,323}... % 5
+ (1260,2399){-1,1}... % 6
+ (841,2579){-1,0}... % 7
+ (221,2305){-1,-1}... % 8
+ (54,2094){-225,-398}... % *9
+ (-4,1907){0,-1}... % 10
+ (44,1749){185,-368}... % *11
+ (181,1539){318,-408}... % 12
+ (318,1315){0,-1}... % 13
+ (225,1151){-1,-1}...{-377,-274} % 14
+ (94,1029)-- % 15
+ (167,985){427,302}... % 16
+ (542,1278){1,1}... % 17
+ (669,1526){0,1}... % 18
+ (627,1647){-163,286}... % *19
+ (506,1812){-432,498}... % 20
+ (367,2000){-187,326}... % *21
+ (319,2138){0,1}... % 22
+ (386,2279){1,1}... % 23
+ (568,2350){1,0}... % 24
+ (844,2222){1,-1}... % 25
+ (1024,1874){243,-889}... % *26
+ (1087,1333){0,-1}... % 27
+ (1050,977){-141,-572}... % *28
+ (946,761){-1,-1}...{-1,0} % 29
+ (490,595)--cycle); % 30
+
+n := 6;
+t1 := 2;
+t2 := 3;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+
+adj_fill.B() % fixed x points
+ (4) % fixed y points
+ ((2,4), (3,3)) % tied points
+ () % verticals
+ ((3,5), (1,6)) % horizontals
+ ((1767,564){-294,-303}... % 0
+ (1585,415){-339,-202}... % *1
+ (1428,362){-1,0}...{-477,230} % 2
+ (888,567){-398,28}...{-398,28} % 3
+ (490,595){-141,-140}...{-302,-420} % 4
+ (7,82)-- % 5
+ (70,1){261,349}... % 6
+ (206,164){1,1}... % 7
+ (433,249){1,0}... % 8
+ (882,85){337,-176}... % 9
+ (1245,-55){1,0}...{222,68} % 10
+ (1277,-47){393,337}...{137,177} % 11
+ (1786,483)--cycle); % 12
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+t9 := 15;
+t10 := 18;
+
+adj_fill.C(1) % fixed x points
+ (10) % fixed y points
+ ((5,2), (6,1)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((648,-512){195,-391}... % 0
+ (736,-611){1,-1}... % 1
+ (1148,-757){1,0}... % 2
+ (1758,-578){1240,686}...{444,475} % *3
+ (2388,-71){228,465}... % 4
+ (2643,1234){0,1}...{-68,797} % 5
+ (2580,2243){-226,144}...{-394,458} % 6
+ (2158,2575){-496,-320}...{-622,-562} % 7
+ (1445,2060)-- % 8
+ (1478,1880){237,349}...{194,158} % 9
+ (1784,2189){364,-156}...{243,-193} % 10
+ (2179,1944){135,-742}... % 11
+ (2239,1034){0,-1}... % 12
+ (2151,174){-337,-1380}... % *13
+ (1902,-346){-1,-1}... % 14
+ (1466,-554){-1,0}... % 15
+ (1161,-446){-1,1}...{-10,354} % 16
+ (1020,-114){-40,7}...{-40,7} % 17
+ (980,-107)--cycle); % 18
+
+endchar(0);
+
+"fbuza"; % '011
+
+%charbegin( 7, 2079h#, lcbody*v#, baseline );
+charbegin( 9, 2079h#, lcbody*v#, baseline ); % DEK
+
+n := 21;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 11;
+t6 := 14;
+t7 := 17;
+t8 := 19;
+t9 := 21;
+t10 := 23;
+t11 := 25;
+t12 := 27.4;
+t13 := 29;
+t14 := 30;
+t15 := 32;
+t16 := 35;
+t17 := 36;
+t18 := 39;
+t19 := 43;
+t20 := 45;
+t21 := 47;
+
+adj_fill.A(1, 11, 12) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((8,15), (7,16), (5,18), (3,20)) % verticals
+ ((10,13), (9,14), (6,17), (4,19), (2,21))% horizontals
+ ((-48,-48){406,338}... % 0
+ (267,159){594,279}... % *1
+ (546,231){1,0}... % 2
+ (684,184){1,-1}... % 3
+ (726,71){33,-299}... % *4
+ (717,-115){-111,-660}... % 5
+ (709,-267){0,-1}... % 6
+ (775,-332){393,-73}... % 7
+ (844,-348){1,0}... % 8
+ (1208,-167){1,1}... % 9
+ (1378,152){230,803}... % *10
+ (1438,636){0,1}... % 11
+ (1416,859){-86,357}... % *12
+ (1352,993){-1,1}... % 13
+ (936,1128){-1,0}...{-877,-262} % 14
+ (598,1068){-52,47}...{-52,47} % 15
+ (546,1115){176,301}...{176,301} % 16
+ (722,1416){364,71}... % 17
+ (1121,1641){1,1}... % 18
+ (1256,2015){0,1}... % 19
+ (1224,2105){-1,1}... % 20
+ (1021,2174){-1,0}... % 21
+ (744,2153){-709,-96}... % 22
+ (447,2114){-1,0}... % 23
+ (252,2190){-1,1}...{-116,439} % 24
+ (204,2314){208,306}...{387,438} % 25
+ (494,2714)-- % 26
+ (548,2716){-152,-452}... % 27
+ (571,2555){1,-1}... % 28
+ (693,2519){1,0}... % 29
+ (1249,2540){1,0}... % 30
+ (1561,2440){1,-1}... % 31
+ (1638,2270){0,-1}... % 32
+ (1343,1678){-1,-1}... % 33
+ (1067,1467){-249,-146}...{-3,-11} % 34
+ (1064,1456){28,-9}... % 35
+ (1092,1447){265,26}... % 36
+ (1276,1450){1,0}... % 37
+ (1827,1195){1,-1}... % 38
+ (1884,920){0,-1}... % 39
+ (1796,313){-339,-1040}... % *40
+ (1545,-120){-1,-1}... % 41
+ (759,-448){-1,0}... % 42
+ (418,-438){-585,66}... % 43
+ (312,-366){2,191}... % 44
+ (314,-175){2,191}... % 45
+ (274,-69){-1,1}... % 46
+ (186,-27){-1,0}...{-377,-251} % 47
+ (-16,-101)--cycle); % 48
+
+endchar(0);
+
+"rblnontab1"; %non-tabular 1, bold (fitted 1)
+initrot:=identity; % DEK
+more_side(0); % DEK
+charbegin( 127, 1700h#, lfigheight*v#, baseline );
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+
+adj_fill.A(3) % fixed x points
+ (1, 5) % fixed y points
+ () % tied points
+ ((2,6)) % verticals
+ ((3,4)) % horizontals
+ ((801,-35){-70,54}...{-70,54} % 0
+ (731,19){42,421}... % 1
+ (776,2076){-30,618}... % 2
+ (745,2154){-1,1}... % 3
+ (680,2201){-447,0}...{-447,0} % 4
+ (233,2201)-- % 5
+ (234,2317){895,319}... % 6
+ (1129,2636){895,319}... % 7
+ (1179,2628){1,-1}... % 8
+ (1202,2580){-70,-895}... % 9
+ (1142,1050){0,-1}...{26,-509} % 10
+ (1154,119)--cycle); % 11
+
+endchar(0);
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufm10.mf b/Master/texmf-dist/fonts/source/public/ams/eufm10.mf
new file mode 100644
index 00000000000..67bf31e379c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufm10.mf
@@ -0,0 +1,45 @@
+%% @metafontfile{
+%% filename="eufm10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "51934 45 204 1787"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufm10, the Euler Fraktur medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Medium 10pt ---------------------------------
+
+ font_identifier := "EUFM V2.2";
+
+ ptsize = 10;
+
+ leftside# = rightside# = 0h#;
+
+ input eufmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufm5.mf b/Master/texmf-dist/fonts/source/public/ams/eufm5.mf
new file mode 100644
index 00000000000..060d5dc148c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufm5.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufm5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "20008 47 207 1820"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufm5, the Euler Fraktur medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Medium 5pt ----------------------------------
+
+ font_identifier := "EUFM V2.2";
+
+ ptsize = 5;
+
+ leftside# = rightside# = 300h#;
+
+ xscale_factor := 1.2;
+
+ input eufmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufm6.mf b/Master/texmf-dist/fonts/source/public/ams/eufm6.mf
new file mode 100644
index 00000000000..005f933aa39
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufm6.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufm6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "33831 47 207 1821"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufm6, the Euler Fraktur medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Medium 6pt ---------------------------------
+
+ font_identifier := "EUFM V2.2";
+
+ ptsize = 6;
+
+ leftside# = rightside# = 150h#;
+
+ xscale_factor := 1.14;
+
+ input eufmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufm7.mf b/Master/texmf-dist/fonts/source/public/ams/eufm7.mf
new file mode 100644
index 00000000000..d423b4af8ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufm7.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufm7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "02494 47 207 1821"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufm7, the Euler Fraktur medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Medium 7pt ----------------------------------
+
+ font_identifier := "EUFM V2.2";
+
+ ptsize = 7;
+
+ leftside# = rightside# = 100h#;
+
+ xscale_factor := 1.08;
+
+ input eufmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufm8.mf b/Master/texmf-dist/fonts/source/public/ams/eufm8.mf
new file mode 100644
index 00000000000..0a9f97adff8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufm8.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufm8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "61561 47 207 1819"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufm8, the Euler Fraktur medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Medium 8pt ---------------------------------
+
+ font_identifier := "EUFM V2.2";
+
+ ptsize = 8;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.04;
+
+ input eufmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufm9.mf b/Master/texmf-dist/fonts/source/public/ams/eufm9.mf
new file mode 100644
index 00000000000..28dd432e39c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufm9.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eufm9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "57108 47 207 1819"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eufm9, the Euler Fraktur medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Fraktur Medium 9pt ---------------------------------
+
+ font_identifier := "EUFM V2.2";
+
+ ptsize = 9;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.02;
+
+ input eufmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eufmch.mf b/Master/texmf-dist/fonts/source/public/ams/eufmch.mf
new file mode 100644
index 00000000000..717d3f45c37
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eufmch.mf
@@ -0,0 +1,6397 @@
+%% @metafontfile{
+%% filename="eufmch.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "08883 6397 19076 208870"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the driver file for use with
+%% the Euler Fraktur medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Fraktur Medium
+
+% ----- This font is set up as Text Font, \textfont0, page 427 of TeXbook
+% however, there are some alternate characters in nonstandard positions
+
+mode_setup;
+font_coding_scheme "TeX text subset";
+
+% EULER FRAKTUR MEDIUM PARAMETERS
+
+% These all in bitpad numbers (.001"):
+
+ programem = 3700;
+ baseline = 0;
+ ascender = capheight;
+ descender = 700;
+ depthy = 700; % depthy = 500;
+ capheight = 2560;
+ lcbody = 1760; % same for medium and bold.
+ dotheight = capheight; % dotheight = 2600;
+ theight = 2300; % measured to lowest of the 3 top lines.
+ lfigheight = capheight;
+ nfigbody = lcbody;
+ nfigascender = ascender;
+ nfigdescender = descender;
+
+% the next lines added since everything was digitized too high! --- DEK
+extra_beginchar:=extra_beginchar & "rot:=initrot;";
+transform initrot; initrot:=identity;
+
+input eubase;
+
+% ses individual character widths for medium lower case
+
+% 20h# means 20 bitpad units.
+
+lefta# = 0h#; righta# = 0h#;
+leftb# = 0h#; rightb# = 0h#;
+leftc# = 0h#; rightc# = 0h#;
+leftd# = 0h#; rightd# = 0h#;
+lefte# = 0h#; righte# = 50h#;
+leftf# = 0h#; rightf# = 0h#;
+leftg# = 0h#; rightg# = 0h#;
+lefth# = 0h#; righth# = 0h#;
+lefti# = 0h#; righti# = 0h#;
+leftj# = 0h#; rightj# = 0h#;
+leftk# = 0h#; rightk# = 0h#;
+leftl# = 0h#; rightl# = 0h#;
+%leftm# = 0h#; rightm# = 0h#;
+leftm# = -50h#; rightm# = 0h#;
+%leftn# = 0h#; rightn# = -50h#;
+leftn# = -50h#; rightn# = -50h#;
+%lefto# = -50h#; righto# = 0h#;
+lefto# = -100h#; righto# = 0h#; % DEK
+leftp# = 0h#; rightp# = 0h#;
+%leftq# = 0h#; rightq# = 0h#;
+leftq# = -50h#; rightq# = 0h#; % DEK
+leftr# = 0h#; rightr# = 0h#;
+lefts# = 0h#; rights# = 0h#;
+leftt# = 0h#; rightt# = 0h#;
+leftu# = 0h#; rightu# = 0h#;
+leftv# = 0h#; rightv# = 0h#;
+leftw# = 0h#; rightw# = 0h#;
+leftx# = 0h#; rightx# = 0h#;
+lefty# = 0h#; righty# = 0h#;
+leftz# = 0h#; rightz# = 0h#;
+
+
+% MEDIUM NON-LINING FIGURES
+no_stem_round;
+
+"rmn0";
+
+charbegin( "0", 1858h#, nfigbody*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+
+adj_fill.A(1, 6) % fixed x points
+ () % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((4,7), (2,9)) % verticals
+ ((5,6), (3,8), (1,10)) % horizontals
+ ((965,1825){-404,-220}... % 0
+ (467,1446){-1,-1}... % 1
+ (153,731){0,-1}... % 2
+ (373,122){1,-1}... % 3
+ (787,-47){1,0}... % 4
+ (1360,240){1,1}... % 5
+ (1686,961){0,1}... % 6
+ (1411,1559){-1,1}...{-522,155} % 7
+ (965,1825)-- % 8
+ (816,1533){351,-77}... % 9
+ (1192,1333){1,-1}... % 10
+ (1410,785){0,-1}... % 11
+ (1265,337){-1,-1}... % 12
+ (972,220){-1,0}... % 13
+ (650,350){-1,1}... % 14
+ (440,922){0,1}... % 15
+ (576,1359){335,337}...{232,154} % 16
+ (816,1533)--cycle); % 17
+
+endchar(0);
+
+"rmn1";
+
+charbegin( "1", 1858h#, nfigbody*v#, baseline );
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+t6 := 11;
+
+adj_fill.A(3) % fixed x points
+ (6) % fixed y points
+ ((1,2), (6,1)) % tied points
+ ((2,5)) % verticals
+ ((3,4)) % horizontals
+ ((1128,188){-1,1}... % 0
+ (1111,249){-9,228}... % 1
+ (1099,849){0,1}...{100,774} % 2
+ (1142,1705){-36,29}...{-36,29} % 3
+ (1106,1734){-222,-23}...{-1,0} % 4
+ (382,1701)-- % 5
+ (383,1601){443,-52}... % 6
+ (640,1558){383,-127}... % 7
+ (758,1447){63,-262}... % 8
+ (784,961){0,-1}... % 9
+ (778,251){-30,-344}...{-1,-1} % 10
+ (763,180)--cycle); % 11
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 7;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((2,2), (3,1)) % tied points
+ ((1,5)) % verticals
+ ((4,6)) % horizontals
+ ((1702,171){-175,-9}... % 0
+ (1172,160){-423,12}...{-1,1} % 1
+ (1128,188){-365,-8}...{-365,-8} % 2
+ (763,180){-1,-1}... % 3
+ (702,160){-134,1}...{-465,9} % 4
+ (172,161)-- % 5
+ (172,-4){708,23}... % 6
+ (933,24){1,0}...{229,-13} % 7
+ (1698,-2)--cycle); % 8
+
+endchar(0);
+
+"rmn2";
+
+charbegin( "2", 1858h#, nfigbody*v#, baseline );
+n := 10;
+t1 := 2;
+t2 := 3.14;
+t3 := 7;
+t4 := 9;
+t5 := 11;
+t6 := 12;
+t7 := 13;
+t8 := 15;
+t9 := 18;
+t10 := 19;
+
+adj_fill.A(2, 5, 9) % fixed x points
+ (6) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((4,7), (1,10)) % horizontals
+ ((1794,248){-35,23}...{-35,23} % 0
+ (1759,271){-377,-13}... % 1
+ (712,241){-1047,-30}... % 2
+ (651,263){-.4666,1.22}... % 3
+ (665,289){276,278}... % 4
+ (1234,943){760,1089}... % *5
+ (1377,1189){191.1,434.6}... % *6
+ (1425,1378){0,1}... % 7
+ (1319,1635){-1,1}... % 8
+ (1045,1754){-1,0}... % 9
+ (738,1669){-661,-331}...{-307,-268} % *10
+ (384,1423)-- % 11
+ (422,1359){456,262}... % 12
+ (837,1536){1,0}... % 13
+ (1042,1453){1,-1}... % 14
+ (1144,1233){0,-1}... % 15
+ (999,875){-557,-824}... % *16
+ (587,409){-367,-346}...{-312,-286} % 17
+ (220,63){4,-59}...{4,-59} % 18
+ (224,4){1,0}...{1,0} % 19
+ (1702,4)--cycle); % 20
+
+endchar(0);
+
+"rmn3";
+
+charbegin( "3", 1858h#, nfigbody*v#, descender*v#);
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+t11 := 20;
+t12 := 21;
+t13 := 24;
+t14 := 26;
+t15 := 27;
+
+adj_fill.A(1, 7) % fixed x points
+ (8, 15) % fixed y points
+ () % tied points
+ ((5,10), (4,11), (3,13)) % verticals
+ ((6,9), (11,12), (2,14)) % horizontals
+ ((142,-522){361,-211}... % 0
+ (669,-675){1,0}... % 1
+ (1359,-397){1,1}... % 2
+ (1591,154){0,1}... % 3
+ (1416,586){-1,1}...{-265,3} % 4
+ (958,745){-10,33}...{-10,33} % 5
+ (948,778){215,86}... % 6
+ (1273,999){1,1}... % 7
+ (1424,1361){0,1}... % 8
+ (1307,1644){-1,1}... % 9
+ (979,1755){-1,0}... % 10
+ (697,1682){-582,-283}...{-348,-318} % *11
+ (397,1472)-- % 12
+ (473,1423){329,249}... % 13
+ (641,1527){302,140}... % *14
+ (775,1563){1,0}... % 15
+ (1030,1468){1,-1}... % 16
+ (1133,1205){0,-1}... % 17
+ (1007,941){-1,-1}... % 18
+ (790,814){-535,-186}...{-390,-24} % *19
+ (472,755){0,-125}...{0,-125} % 20
+ (472,630){316,13}... % 21
+ (872,606){638,-130}... % *22
+ (1110,500){1,-1}... % 23
+ (1249,107){0,-1}... % 24
+ (1045,-406){-1,-1}... % 25
+ (627,-553){-1,0}...{-436,217} % 26
+ (198,-423)--cycle); % 27
+
+endchar(0);
+
+"rmn4";
+
+%This 4 lightened up inside by Dave on Apr 30, 1985
+vshift := 10;
+hshift := 20;
+
+charbegin( "4", 1858h#, nfigbody*v#, descender*v#);
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 11;
+t9 := 12;
+t10 := 13;
+t11 := 14;
+t12 := 15;
+
+adj_fill.A(1, 5) % fixed x points
+ (2, 11) % fixed y points
+ ((5,1), (6,2), (10,2), (11,1), (12,3)) % tied points
+ ((4,7), (2,9)) % verticals
+ ((5,6), (3,8)) % horizontals
+ ((1783,168){-312,-31}...{-391,-10} % 0
+ (1421,148){-12,332}...{21,798} % 1
+ (1423,1751){-18,12}...{-18,12} % 2
+ (1405,1763){-300,-96}...{-300,-96} % 3
+ (1105,1667){-1067,-1584}...{-1067,-1584}% 4
+ (38,83){3,-86}...{3,-86} % 5
+ (41,-3){1073,0}...{1073,0} % 6
+ (1114+hshift,-3)-- % 7
+ (1114+hshift,152){-799,0}...{-799,0} % 8
+ (307,152){-16,0}...{-16,0} % 9
+ (291,152){340,653}...{209,261} % 10
+ (1041+hshift,1340+vshift){44,-7}...{44,-7} % 11
+ (1085+hshift,1340+vshift){82,-810}... % 12
+ (1114+hshift,152){0,-1}...{0,-1} % 13
+ (1114+hshift,0){1,0}... % 14
+ (1432,0){2,0}...{320,0} % 15
+ (1752,-3)--cycle); % 16
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,3)) % tied points
+ ((1,2)) % verticals
+ () % horizontals
+ (((1131+hshift),-710){-43,34}...{-43,34} % 0
+ ((1088+hshift),-676){49,516}...{0,1} % 1
+ ((1114+hshift),-3)-- % 2
+ (1432,-3){0,-1}...{29,-457} % 3
+ (1440,-598)--cycle); % 4
+
+endchar(0);
+
+"rmn5";
+
+charbegin( "5", 1858h#, nfigbody*v#, descender*v#);
+n := 13;
+t1 := 1;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+t9 := 14;
+t10 := 16;
+t11 := 18;
+t12 := 19;
+t13 := 20;
+
+adj_fill.A(6, 13) % fixed x points
+ (7) % fixed y points
+ () % tied points
+ ((4,9), (2,11)) % verticals
+ ((5,8), (3,10), (1,12)) % horizontals
+ ((1469,1399){-959,0}... % 0
+ (510,1399){-1,0}... % 1
+ (448,1355){0,-1}...{0,-652} % 2
+ (448,703){32,-17}...{32,-17} % 3
+ (480,686){176,81}... % 4
+ (957,795){1,0}... % 5
+ (1446,623){1,-1}... % 6
+ (1630,156){0,-1}... % 7
+ (1406,-404){-1,-1}... % 8
+ (579,-682){-1,0}...{-497,212} % 9
+ (175,-588)-- % 10
+ (217,-495){579,-227}... % 11
+ (579,-569){1,0}... % 12
+ (1032,-411){1,1}... % 13
+ (1239,84){0,1}... % 14
+ (1095,501){-1,1}... % 15
+ (764,626){-1,0}...{-294,-317} % 16
+ (365,423){-67,41}...{-67,41} % 17
+ (298,464){0,1}...{0,1} % 18
+ (298,1694){1,0}...{1258,0} % 19
+ (1556,1694)--cycle); % 20
+
+endchar(0);
+
+"rml6";
+
+charbegin( "6", 1858h#, lfigheight*v#, baseline );
+n := 14;
+t1 := 2;
+t2 := 4;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 20;
+t12 := 22;
+t13 := 25;
+t14 := 26;
+
+adj_fill.A(8, 14) % fixed x points
+ (7) % fixed y points
+ ((2,1), (3,2), (7,2), (8,1)) % tied points
+ ((5,10), (3,12)) % verticals
+ ((6,9), (4,11), (1,13)) % horizontals
+ ((1670,2346){-28,-19}...{-28,-19} % 0
+ (1642,2327){-249,110}... % 1
+ (1420,2372){-1,0}... % 2
+ (830,2101){-297,-275}...{-5,-523} % 3
+ (477,1134){15,-161}...{15,-161} % 4
+ (492,973){23,-345}... % 5
+ (571,513){237,-751}... % *6
+ (729,222){1,-1}... % 7
+ (972,118){1,0}... % 8
+ (1300,232){1,1}... % 9
+ (1451,635){0,1}... % 10
+ (1282,1033){-1,1}... % 11
+ (946,1161){-1,0}...{-381,-288} % 12
+ (492,973)-- % 13
+ (477,1134){27,-4}...{27,-4} % 14
+ (504,1130){379,308}... % 15
+ (1186,1394){1,0}... % 16
+ (1569,1234){1,-1}... % 17
+ (1744,781){0,-1}... % 18
+ (1478,207){-1,-1}... % 19
+ (875,-48){-1,0}... % 20
+ (425,126){-1,1}... % 21
+ (167,879){0,1}... % 22
+ (661,2133){376,379}... % 23
+ (1107,2472){877,458}... % *24
+ (1538,2591){1,0}...{216,-75} % 25
+ (1703,2555)--cycle); % 26
+
+endchar(0);
+
+"rmn7";
+
+charbegin( "7", 1858h#, nfigbody*v#, descender*v#);
+n := 4;
+t1 := 0;
+t2 := 4;
+t3 := 5;
+t4 := 10;
+
+adj_fill.A() % fixed x points
+ (1, 4) % fixed y points
+ () % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((149,-670){-11,49}...{-11,49} % 0
+ (138,-621){222,310}... % 1
+ (1465,1394){404,641}...{-21,18} % 2
+ (1444,1412){-1,0}...{-824,-23} % 3
+ (216,1412)-- % 4
+ (334,1732){503,-63}... % 5
+ (1099,1694){1,0}...{1,0} % 6
+ (1844,1694){0,-59}...{0,-59} % 7
+ (1844,1635){-426,-602}... % 8
+ (1003,374){-1427,-2305}...{-209,-427} % *9
+ (417,-670)--cycle); % 10
+
+endchar(0);
+
+"fml8";
+
+charbegin( "8", 1858h#, lfigheight*v#, baseline );
+n := 19;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 19;
+t12 := 21;
+t13 := 23;
+t14 := 25;
+t15 := 26;
+t16 := 29;
+t17 := 31;
+t18 := 33;
+t19 := 35;
+
+adj_fill.A(1, 11) % fixed x points
+ (10, 19) % fixed y points
+ ((1,1), (5,1), (6,2), (11,3), (15,3), (19,2))% tied points
+ ((9,12), (7,14), (4,16), (2,18)) % verticals
+ ((8,13), (3,17)) % horizontals
+ ((871,1229){385,-257}... % 0
+ (1200,1012){1,-1}... % 1
+ (1385,623){0,-1}... % 2
+ (1247,251){-1,-1}... % 3
+ (905,135){-1,0}... % 4
+ (615,241){-1,1}... % 5
+ (456,656){0,1}... % 6
+ (589,1032){1,1}...{361,189} % 7
+ (871,1229){255,219}...{255,219} % 8
+ (1126,1448){416,250}... % 9
+ (1479,1757){482,652}... % *10
+ (1608,2100){0,1}... % 11
+ (1475,2439){-1,1}... % 12
+ (1266,2555){-535,172}...{-579,37} % *13
+ (940,2611){-391,-151}... % 14
+ (495,2360){-349,-310}... % 15
+ (328,1960){0,-1}... % 16
+ (442,1633){429,-628}...{385,-257} % *17
+ (757,1332)-- % 18
+ (1012,1538){-384,275}... % 19
+ (716,1817){-402,542}... % *20
+ (610,2080){0,1}... % 21
+ (660,2291){208,285}...{261,200} % 22
+ (827,2423){444,-10}... % 23
+ (1195,2296){1,-1}... % 24
+ (1295,2010){0,-1}...{-276,-190} % 25
+ (1012,1538){-262,-221}...{-262,-221} % 26
+ (750,1317){-366,-211}... % 27
+ (306,1007){-1,-1}... % 28
+ (147,581){0,-1}... % 29
+ (323,132){1,-1}... % 30
+ (812,-37){1,0}... % 31
+ (1517,249){1,1}... % 32
+ (1707,730){0,1}... % 33
+ (1536,1135){-1,1}...{-384,275} % 34
+ (1126,1448)--cycle); % 35
+
+endchar(0);
+
+"rmn9";
+
+charbegin( "9", 1858h#, nfigbody*v#, descender*v#);
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+t11 := 19;
+t12 := 20;
+t13 := 21;
+t14 := 24;
+
+adj_fill.A(6, 14) % fixed x points
+ (7) % fixed y points
+ ((6,1), (7,2), (12,2), (13,1)) % tied points
+ ((4,9), (2,11)) % verticals
+ ((5,8), (3,10), (1,14)) % horizontals
+ ((267,-672){1,0}... % 0
+ (1307,-302){1,1}... % 1
+ (1730,740){0,1}... % 2
+ (1662,1206){-260,798}... % *3
+ (1470,1538){-1,1}... % 4
+ (1226,1678){-604,200}...{-531,22} % *5
+ (866,1738){-293,-138}... % 6
+ (288,1396){-1,-1}... % 7
+ (101,865){0,-1}... % 8
+ (324,287){1,-1}...{370,-28} % 9
+ (754,125){249,64}...{497,267} % 10
+ (1302,350)-- % 11
+ (1256,464){-1,-1}... % 12
+ (909,348){-1,0}... % 13
+ (628,464){-1,1}... % 14
+ (430,976){0,1}... % 15
+ (600,1459){1,1}... % 16
+ (790,1538){1,0}... % 17
+ (1143,1403){1,-1}... % 18
+ (1367,753){0,-1}...{-1,-1} % 19
+ (1256,464){46,-114}...{46,-114} % 20
+ (1302,350){19,-11}...{19,-11} % 21
+ (1321,339){-74,-379}... % 22
+ (1032,-299){-1,-1}...{-1,0} % 23
+ (265,-569)--cycle); % 24
+
+endchar(0);
+
+% LOWER CASE
+set_stem_round(240,250,267,267,290,315);
+initrot:=identity shifted(0,-60v);
+more_side(100h#); % DEK
+
+"fmla";
+
+charbegin( "a", 1653h#, lcbody*v#, baseline );
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 6;
+t7 := 9;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (5,3), (6,4)) % tied points
+ ((2,7)) % verticals
+ () % horizontals
+ ((1739,368){-454,-409}...{-454,-409} % 0
+ (1285,-41){-160,271}...{-160,271} % 1
+ (1125,230){-10,593}...{-29,609} % 2
+ (1116,396){0,117}...{0,117} % 3
+ (1116,513){-4,897}...{-4,897} % 4
+ (1112,1410){72,244}...{72,244} % 5
+ (1184,1654)-- % 6
+ (1432,1781){29,-22}...{29,-22} % 7
+ (1461,1759){-124,-809}... % 8
+ (1393,1007){0,-1}...{12,-411} % 9
+ (1410,502){132,-169}...{132,-169} % 10
+ (1542,333){180,89}...{180,89} % 11
+ (1722,422)--cycle); % 12
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+t6 := 13;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (3,4), (4,3), (6,2)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1116,396){-645,-468}...{-645,-468} % 0
+ (471,-72){-138,145}...{-346,438} % 1
+ (149,299){-15,275}...{158,688} % 2
+ (216,1411){625,393}...{625,393} % 3
+ (841,1804){198,-141}...{190,-38} % 4
+ (1184,1654)-- % 5
+ (1112,1410){-1,0}...{-353,103} % 6
+ (590,1512){-337,-354}... % 7
+ (460,1153){-142,-1003}...{26,-401} % *8
+ (448,509){316,-431}... % 9
+ (671,269){137,-137}... % 10
+ (694,267){1.948,.2212}... % 11
+ (728,278){384,234}...{390,249} % 12
+ (1116,513)--cycle); % 13
+
+endchar(0);
+
+"fmlb";
+
+charbegin( "b",1700h#, ascender*v#, baseline );
+
+%rot := identity shifted (60h,0v);
+rot := rot shifted (60h,0v); % DEK
+
+n := 9;
+t1 := 5;
+t2 := 9;
+t3 := 12;
+t4 := 13;
+t5 := 15;
+t6 := 20;
+t7 := 21;
+t8 := 22;
+t9 := 25;
+
+adj_fill.A(4, 9) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (7,2), (8,1)) % tied points
+ ((2,5), (1,6)) % verticals
+ () % horizontals
+ ((783,2597){-442,-321}...{-442,-321} % 0
+ (341,2276){-32,-14}...{-32,-14} % 1
+ (309,2262){-61,283}...{-61,283} % 2
+ (248,2545){-65,-14}...{-65,-14} % 3
+ (183,2531){22,-441}... % 4
+ (210,1197){0,-1}...{-115,-621} % 5
+ (160,324){268,-288}...{419,-375} % 6
+ (567,-56){329,151}...{552,358} % 7
+ (1408,420){60,295}...{-34,746} % 8
+ (1472,1574){-205,93}...{-457,267} % 9
+ (1038,1798){-153,-94}...{-421,-351} % 10
+ (519,1404){-21,8}...{-21,8} % 11
+ (498,1412)-- % 12
+ (497,1292){557,397}...{370,174} % 13
+ (853,1487){493,-199}...{180,-98} % 14
+ (1166,1350){62,-697}... % 15
+ (1184,901){0,-1}... % 16
+ (1147,523){-143,-603}... % *17
+ (1041,298){-1,-1}... % 18
+ (894,214){-1,0}...{-221,223} % 19
+ (499,514){0,1}...{-2,778} % 20
+ (497,1292){1,120}... % 21
+ (498,1412){-23,576}... % 22
+ (499,1887){19,381}... % 23
+ (736,2454){111,97}...{243,191} % 24
+ (847,2551)--cycle); % 25
+
+endchar(0);
+
+"fmlc";
+
+charbegin( "c",1242h#, lcbody*v#, baseline );
+n := 4;
+t1 := 0;
+%t2 := 4;
+t2 := 3; % DEK
+t3 := 6;
+%t4 := 9;
+t4 := 10; % DEK
+
+adj_fill.A(1, 3) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,4)) % verticals
+ () % horizontals
+ ((1228,401){-635,-449}...{-635,-449} % 0
+ (593,-48){-229,192}...{-477,556} % 1
+ (184,369){-24,346}... % 2
+ (167,970){28,1034}...{153,704} % *3
+ (212,1403){609,382}...{609,382} % 4
+ (821,1785){423,-35}...{481,-311} % 5
+ (1221,1622)-- % 6
+ (1030,1329){-36,-10}... % 7
+ (994,1319){-387,335}...{-1,0} % 8
+ (558,1503){-245,-438}... % 9
+ (480,1167){-76,-908}...{21,-334} % *10
+ (482,595){468,-529}...{239,-219} % 11
+ (809,275){238,69}...{481,275} % 12
+ (1197,463)--cycle); % 13
+
+endchar(0);
+
+"fmld";
+
+charbegin( "d",1646h#, theight*v#, baseline );
+n := 7;
+t1 := 0;
+t2 := 2.392;
+t3 := 4;
+t4 := 6;
+t5 := 10;
+t6 := 13;
+t7 := 18.32;
+
+adj_fill.A(1, 2, 5) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((4,6), (3,7)) % verticals
+ () % horizontals
+ ((-53,2068){285,160}...{632,293} % 0
+ (441,2318){557,-157}...{536,-424} % 1
+ (1480,1742){14,-387}... % 2
+ (1466,962){-121,-1299}...{-208,-521} % *3
+ (1359,443){-666,-507}...{-666,-507} % 4
+ (693,-64){-296,195}...{-467,541} % 5
+ (180,359){-24,437}... % 6
+ (194,1216){66,732}... % 7
+ (194,1300){253,240}...{384,254} % 8
+ (681,1715)-- % 9
+ (751,1700){-357,-351}... % 10
+ (595,1510){-10,-11}... % 11
+ (512,1342){-275,-649}...{39,-454} % 12
+ (489,558){381,-473}... % 13
+ (656,408){433,-311}... % *14
+ (922,247){237,-125}... % 15
+ (968,240){1.751,.4972}... % 16
+ (1008,274){189,301}... % 17
+ (1181,820){138,1263}...{-61,336} % *18
+ (1146,1537){-450,471}... % 19
+ (664,1940){-892,545}... % *20
+ (254,2082){-1,0}... % 21
+ (166,2077){-168,-66}...{-168,-66} % 22
+ (-2,2011)--cycle); % 23
+
+endchar(0);
+
+"fmle";
+
+charbegin( "e", 1233h# + lefte# + righte#, lcbody*v#, baseline );
+n := 8;
+t1 := 0;
+%t2 := 3;
+t2 := 2.4; % DEK
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 12;
+t8 := 13;
+
+adj_fill.A(1, 3, 6) % fixed x points
+ () % fixed y points
+ ((4,1), (5,2), (7,2), (8,1)) % tied points
+ ((2,7)) % verticals
+ () % horizontals
+ ((1225,383){-292,-231}...{-577,-352} % 0
+ (600,-54){-371,338}...{-505,634} % 1
+ (179,375){-64,601}...{110,684} % 2
+ (209,1415){600,373}...{600,373} % 3
+ (809,1788){296,-372}...{368,-257} % 4
+ (1248,1385){-203,-191}...{-544,-435} % 5
+ (459,673)-- % 6
+ (451,839){597,358}...{319,342} % 7
+ (945,1219){-402,253}... % 8
+ (552,1527){-399,397}... % 9
+ (522,1512){-1.277,-1.371}... % 10
+ (486,1425){-153,-567}...{0,-1} % 11
+ (451,839){8,-166}...{8,-166} % 12
+ (459,673){0,-1}...{26,-342} % 13
+ (464,572){528,-547}...{227,-108} % 14
+ (846,284){418,86}... % 15
+ (898,294){308,148}...{308,148} % 16
+ (1206,442)--cycle); % 17
+
+endchar(lefte#);
+
+"fmlf";
+% I switched this with character 2, for better discrimination with RM --- DEK
+charbegin( "f", 1008h#, ascender*v#, descender*v#);
+
+n := 10;
+t1 := 1;
+t2 := 6;
+t3 := 7;
+t4 := 9;
+t5 := 11;
+t6 := 12;
+t7 := 15;
+t8 := 17;
+t9 := 18;
+t10 := 22;
+
+adj_fill.A(3, 5, 9) % fixed x points
+ (6) % fixed y points
+ () % tied points
+ ((4,7)) % verticals
+ ((2,3), (1,10), (8,9)) % horizontals
+ ((1018,2508){-325,-210}... % 0
+ (874,2459){-1,0}...{-581,435} % 1
+ (615,2581){-386,-410}...{-399,-631} % 2
+ (241,2115){0,-1}... % 3
+ (263,1954){135,-626}... % *4
+ (376,1489){209,-871}...{-237,0} % 5
+ (139,1489){-128,-129}...{-128,-129} % 6
+ (11,1360){365,0}...{365,0} % 7
+ (376,1360){0,-1289}... % 8
+ (376,71){0,-1}... % 9
+ (359,-250){-104,-1067}...{-138,-499} % 10
+ (221,-749)-- % 11
+ (310,-760){0,6}... % 12
+ (310,-754){.4624,1.887}...{291,558} % 13
+ (601,-196){179,596}... % 14
+ (651,212){0,1}...{0,1} % 15
+ (651,1360){1,0}...{342,0} % 16
+ (993,1360){106,129}...{106,129} % 17
+ (1099,1489){-448,21}... % 18
+ (651,1510){0,1}... % 19
+ (539,1917){-249,592}...{0,1} % 20
+ (457,2269){579,-132}...{1,0} % 21
+ (819,2225){224,250}...{224,250} % 22
+ (1043,2475)--cycle); % 23
+
+endchar(0);
+
+"fmlg";
+
+charbegin( "g",1665h#, lcbody*v#, descender*v#);
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 10;
+t9 := 13;
+t10 := 15;
+t11 := 16;
+t12 := 21;
+
+adj_fill.A(10, 12) % fixed x points
+ (1, 8) % fixed y points
+ ((1,6), (2,1), (4,2), (5,3), (6,4), (7,5))% tied points
+ ((5,9)) % verticals
+ ((3,11)) % horizontals
+ ((442,-15){7,-136}...{7,-136} % 0
+ (449,-151){1,-1}... % 1
+ (729,-365){543,-289}... % *2
+ (992,-440){1,0}... % 3
+ (1192,-360){1,1}... % 4
+ (1250,-143){0,1}...{-161,835} % 5
+ (1160,405){-3,111}...{-3,111} % 6
+ (1157,516){1,302}...{62,702} % 7
+ (1192,1360){59,271}...{59,271} % 8
+ (1251,1631){267,150}...{267,150} % 9
+ (1518,1781)-- % 10
+ (1540,1758){-282,-600}... % 11
+ (1471,1410){-84,-1142}... % *12
+ (1456,616){0,-1}... % 13
+ (1476,462){129,-620}...{107,-468} % *14
+ (1585,-4){-492,-617}...{-240,-227} % 15
+ (980,-683){-375,-111}... % 16
+ (848,-714){-1,0}... % 17
+ (506,-634){-719,310}...{-321,252} % *18
+ (129,-404){-129,-69}...{-129,-69} % 19
+ (0,-473){-39,50}...{-39,50} % 20
+ (-39,-423)--cycle); % 21
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 6;
+t6 := 7;
+t7 := 9;
+t8 := 12;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (3,6), (5,5), (6,4), (8,3))% tied points
+ ((4,7)) % verticals
+ ((5,6)) % horizontals
+ ((1160,405){-123,-88}...{-491,-428} % 0
+ (449,-151){-7,136}...{-7,136} % 1
+ (442,-15){-254,315}...{-254,315} % 2
+ (188,300){-22,304}...{105,690} % 3
+ (231,1422){210,148}...{597,345} % 4
+ (829,1800){295,-197}...{354,-80} % 5
+ (1251,1631)-- % 6
+ (1192,1360){-395,49}...{-291,97} % 7
+ (559,1499){-284,-530}... % 8
+ (473,1022){0,-1}...{28,-315} % 9
+ (491,520){376,-454}...{330,-299} % 10
+ (750,253){407,263}...{407,263} % 11
+ (1157,516)--cycle); % 12
+
+endchar(0);
+
+"fmlh";
+
+charbegin( "h",1730h#, ascender*v#, descender*v#);
+n := 5;
+t1 := 3.406;
+t2 := 6;
+t3 := 8;
+t4 := 9;
+t5 := 11;
+
+adj_fill.A(2, 5) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((1,3)) % verticals
+ () % horizontals
+ ((780,2611){-347,-224}...{-446,-328} % 0
+ (334,2283){-89,282}... % 1
+ (245,2565){-1.282,.7616}...{-46,-9} % 2
+ (199,2556){24,-409}...{-34,-581} % 3
+ (182,302){261,-350}...{182,-317} % 4
+ (385,-35)-- % 5
+ (689,243){-248,338}...{-81,162} % 6
+ (508,509){0,1}...{0,811} % 7
+ (508,1320){0,114}...{0,114} % 8
+ (508,1434){0,1}... % 9
+ (508,1922){0,1}...{267,234} % 10
+ (843,2568)--cycle); % 11
+
+n := 8;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 10;
+t8 := 14;
+
+adj_fill.B(8) % fixed x points
+ (1) % fixed y points
+ ((4,2), (5,1)) % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((830,-701){218,220}...{320,430} % 0
+ (1411,-54){118,405}... % 1
+ (1484,369){97,1024}... % *2
+ (1508,970){0,1}...{-46,708} % 3
+ (1484,1604){-183,57}...{-314,292} % 4
+ (1055,1830){-160,-113}...{-475,-374} % 5
+ (508,1434)-- % 6
+ (508,1320){460,298}... % 7
+ (854,1504){1,0}...{207,-152} % 8
+ (1179,1368){63,-834}... % 9
+ (1216,773){0,-1}... % 10
+ (1180,102){-141,-1074}... % *11
+ (1075,-301){-373,-702}... % 12
+ (982,-419){-246,-201}...{-246,-201} % 13
+ (736,-620)--cycle); % 14
+
+endchar(0);
+
+"fmli";
+
+charbegin( "i",833h#, dotheight*v#, baseline );
+n := 4;
+t1 := 3.948;
+t2 := 7;
+t3 := 10.56;
+t4 := 13;
+
+adj_fill.A(2, 4) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,3)) % verticals
+ () % horizontals
+ ((867,436){-502,-256}... % 0
+ (703,358){-164,-78}...{-193,-8} % 1
+ (671,338){-1,1}... % 2
+ (560,510){-150,531}... % 3
+ (517,945){4,1105}...{91,772} % *4
+ (564,1615){-120,86}...{-259,276} % 5
+ (342,1816){-192,-174}...{-365,-295} % 6
+ (-48,1475)-- % 7
+ (1,1427){486,278}...{228,72} % 8
+ (155,1505){410,-322}...{113,-133} % 9
+ (232,1419){74,-746}...{-49,-397} % 10
+ (238,263){197,-282}...{197,-282} % 11
+ (435,-19){423,323}...{296,277} % 12
+ (891,367)--cycle); % 13
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (3,1), (4,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((380,2116){-295,270}...{-368,433} % 0
+ (165,2344){145,143}...{219,252} % 1
+ (390,2557)-- % 2
+ (390,2557){402,-472}...{229,-185} % 3
+ (592,2340){-212,-224}...{-212,-224} % 4
+ (380,2116)--cycle); % 5
+
+endchar(0);
+
+"fmlj";
+
+charbegin( "j",840h#, dotheight*v#, baseline );
+n := 4;
+t1 := 3;
+t2 := 5;
+t3 := 10;
+t4 := 13;
+
+adj_fill.A(2, 4) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,3)) % verticals
+ () % horizontals
+ ((-29,-711){551,607}... % 0
+ (522,-104){551,607}... % 1
+ (604,157){35,591}...{-10,831} % 2
+ (624,1623){-191,136}...{-417,431} % 3
+ (384,1817){-392,-352}...{-392,-352} % 4
+ (-8,1465)-- % 5
+ (44,1418){130,84}... % 6
+ (174,1502){130,84}... % 7
+ (192,1497){116,-81}... % 8
+ (299,1362){209,-621}... % 9
+ (336,812){0,-1}... % 10
+ (271,-185){-183,-568}... % 11
+ (175,-358){-281,-283}...{-313,-230} % 12
+ (-135,-620)--cycle); % 13
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (3,1), (4,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((364,2113){-253,215}...{-321,407} % 0
+ (163,2340){226,211}...{226,211} % 1
+ (389,2551)-- % 2
+ (389,2551){388,-525}...{242,-237} % 3
+ (576,2334){-212,-221}...{-212,-221} % 4
+ (364,2113)--cycle); % 5
+
+endchar(0);
+
+"fmlk";
+
+charbegin( "k",1242h#, ascender*v#, baseline );
+
+n := 16;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 5;
+t7 := 6;
+t8 := 7;
+t9 := 9;
+t10 := 11;
+t11 := 12;
+t12 := 15;
+t13 := 16;
+t14 := 17;
+t15 := 19;
+t16 := 20;
+
+adj_fill.A(6, 10, 13) % fixed x points
+ (1, 9, 11, 15) % fixed y points
+ ((1,5), (2,1), (3,2), (4,3), (5,4), (16,5))% tied points
+ ((8,12)) % verticals
+ ((6,7), (13,14)) % horizontals
+ ((270,2550){90,-269}... % 0
+ (360,2281){.7074,-1.869}...{161,-380} % 1
+ (521,1901){0,-572}...{0,-572} % 2
+ (521,1329){321,0}...{321,0} % 3
+ (842,1329){340,0}...{340,0} % 4
+ (1182,1329){-100,-124}...{-100,-124} % 5
+ (1082,1205){-525,0}...{-525,0} % 6
+ (557,1205){0,-670}...{0,-670} % 7
+ (557,535){208,-211}...{278,-201} % 8
+ (843,283){359,178}...{359,178} % 9
+ (1202,461)-- % 10
+ (1242,413){-645,-572}...{-232,-154} % 11
+ (620,-35){-394,351}...{-394,351} % 12
+ (226,316){151,551}... % 13
+ (250,530){20,889}...{0,1} % *14
+ (246,1205){-258,0}...{-258,0} % 15
+ (-12,1205){101,124}...{101,124} % 16
+ (89,1329){157,0}...{157,0} % 17
+ (246,1329){-29,1213}...{-52,496} % 18
+ (217,2542){53,8}...{53,8} % 19
+ (270,2550)--cycle); % 20
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((810,2610){-241,-137}...{-413,-347} % 0
+ (360,2281)-- % 1
+ (521,1901){56,694}... % 2
+ (620,2292){163,285}...{231,211} % 3
+ (892,2577)--cycle); % 4
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 8;
+t5 := 11;
+t6 := 13;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (3,3), (4,2), (6,4)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((521,1329){1,0}... % 0
+ (862,1477){282,335}... % 1
+ (965,1712){0,1}... % 2
+ (920,1838){-172,265}...{-447,380} % *3
+ (793,1977){-424,-212}... % 4
+ (603,1820){-159,-270}... % 5
+ (542,1627){-82,-491}...{0,-1} % *6
+ (521,1329)-- % 7
+ (521,1901){364,282}...{235,158} % 8
+ (1009,2224){352,-336}... % 9
+ (1173,2024){222,-378}... % *10
+ (1231,1846){0,-1}... % 11
+ (1162,1666){-320,-337}...{-320,-337} % 12
+ (842,1329)--cycle); % 13
+
+endchar(0);
+
+"fmll";
+
+charbegin( "l",835h#, ascender*v#, baseline );
+
+slidex := 20;
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 8.531;
+
+adj_fill.A(1, 3) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,4)) % verticals
+ () % horizontals
+ ((924,2554){-311,-265}... % 0
+ (700,2328){-441,-616}... % 1
+ (555-slidex,1764){-15,-1272}...{-12,-1279} % 2
+ (585-slidex,492){153,-242}...{174,-144} % 3
+ (720,339){170,90}...{170,90} % 4
+ (890,429)-- % 5
+ (909,370){-461,-384}...{-461,-384} % 6
+ (448,-14){-188,282}...{-188,282} % 7
+ (260,268){38,664}...{-17,309} % 8
+ (266,2521){50,27}...{50,27} % 9
+ (316,2548){91,-282}...{91,-282} % 10
+ (407,2266){496,375}...{198,126} % 11
+ (879,2598)--cycle); % 12
+
+endchar(0);
+
+"fmlm";
+
+charbegin( "m",2689h#+leftm#+rightm#, lcbody*v#, baseline );
+
+n := 5;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 7;
+%t5 := 10;
+t5 := 10.6; % DEK
+
+adj_fill.A(1, 4) % fixed x points
+ () % fixed y points
+ ((2,2), (3,1)) % tied points
+ ((3,5)) % verticals
+ () % horizontals
+ ((753,237){-163,215}... % 0
+ (590,452){-182,215}... % 1
+ (571,624){0,1}...{0,1} % 2
+ (571,1345){0,105}...{0,105} % 3
+ (571,1450){0,1}... % 4
+ (571,1615){-131,99}...{-185,191} % 5
+ (386,1806){-410,-343}...{-410,-343} % 6
+ (-24,1463)-- % 7
+ (20,1418){159,90}...{159,90} % 8
+ (179,1508){96,-98}...{96,-98} % 9
+ (275,1410){0,-1}...{-78,-563} % 10
+ (279,269){165,-291}...{165,-291} % 11
+ (444,-22)--cycle); % 12
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 7;
+t6 := 8;
+%t7 := 10;
+t7 := 11; % DEK
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((3,3), (4,4), (5,1), (6,2)) % tied points
+ ((2,7)) % verticals
+ () % horizontals
+ ((1670,233){-170,246}... % 0
+ (1500,479){-184,246}... % 1
+ (1486,558){0,1}...{0,1} % 2
+ (1486,1359){0,105}...{0,105} % 3
+ (1486,1464){0,1}...{0,1} % 4
+ (1486,1607){-236,76}...{-505,311} % 5
+ (1040,1819){-469,-369}...{-469,-369} % 6
+ (571,1450)-- % 7
+ (571,1345){264,150}...{264,150} % 8
+ (835,1495){503,-136}...{224,-191} % 9
+ (1187,1345){74,-693}... % 10
+ (1224,696){-11,-1114}...{-106,-435} % *11
+ (1176,231){325,-401}...{150,-297} % 12
+ (1352,-35)--cycle); % 13
+
+n := 4;
+t1 := 2;
+t2 := 5;
+t3 := 6;
+t4 := 9.5;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((2,4), (3,3)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((2718,444){-178,-111}...{-108,-48} % 0
+ (2531,352){-60,64}...{-76,114} % 1
+ (2397,527){-12,260}...{63,745} % 2
+ (2412,1605){-154,45}...{-462,248} % 3
+ (1962,1814){-165,-136}...{-545,-368} % 4
+ (1486,1464)-- % 5
+ (1486,1359){402,275}...{255,129} % 6
+ (1729,1502){574,-136}... % 7
+ (2068,1381){220,-130}... % 8
+ (2099,1326){73,-417}...{-62,-302} % 9
+ (2080,282){385,-511}...{160,-301} % 10
+ (2284,-9){458,390}...{458,390} % 11
+ (2742,381)--cycle); % 12
+
+endchar(leftm#);
+
+"fmln";
+
+charbegin( "n", 1850h# + leftn# + rightn#, lcbody*v#, baseline );
+
+n := 4;
+t1 := 3;
+t2 := 4;
+t3 := 7;
+%t4 := 10;
+t4 := 10.5; % DEK
+
+adj_fill.A(3) % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((2,4)) % verticals
+ () % horizontals
+ ((759,254){-147,198}... % 0
+ (612,452){-147,198}... % 1
+ (602,555){0,1}...{0,1} % 2
+ (602,1322){0,97}...{0,97} % 3
+ (602,1419){0,1}... % 4
+ (602,1632){-96,73}...{-136,147} % 5
+ (400,1800){-151,-118}...{-385,-333} % 6
+ (15,1467)-- % 7
+ (66,1420){128,76}...{128,76} % 8
+ (194,1496){88,-87}...{88,-87} % 9
+ (282,1409){30,-803}...{-107,-604} % 10
+ (258,229){494,-549}...{125,-219} % 11
+ (439,-24)--cycle); % 12
+
+n := 5;
+t1 := 4;
+t2 := 7;
+t3 := 8;
+t4 := 10.4;
+t5 := 13;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((1844,456){-125,-73}... % 0
+ (1719,383){-125,-73}... % 1
+ (1683,364){-1,0}... % 2
+ (1633,381){-108,149}...{-98,149} % 3
+ (1536,531){-4,325}...{74,743} % 4
+ (1553,1603){-255,94}...{-473,326} % 5
+ (1134,1818){-532,-399}...{-532,-399} % 6
+ (602,1419)-- % 7
+ (602,1322){263,158}...{263,158} % 8
+ (865,1480){456,-42}...{331,-171} % 9
+ (1217,1383){35,-805}...{-59,-331} % 10
+ (1203,302){206,-311}...{206,-311} % 11
+ (1409,-9){444,394}...{444,394} % 12
+ (1853,385)--cycle); % 13
+
+endchar(leftn#);
+
+"fmlo";
+
+charbegin( "o", 1710h# + lefto# + righto#, lcbody*v#, baseline );
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+%t6 := 9;
+t6 := 9.7; % DEK
+t7 := 12;
+t8 := 15;
+
+adj_fill.A(1, 5) % fixed x points
+ () % fixed y points
+ ((1,1), (4,1), (5,2), (8,2)) % tied points
+ ((3,6), (2,7)) % verticals
+ () % horizontals
+ ((611,-45){220,90}...{500,320} % 0
+ (1448,401){72,328}...{-57,658} % 1
+ (1508,1594){-291,65}...{-488,334} % 2
+ (961,1841){-345,-261}...{-643,-360} % 3
+ (310,1407){-42,-330}...{11,-655} % 4
+ (246,310){195,-242}...{537,-467} % 5
+ (611,-45)-- % 6
+ (992,221){-198,30}... % 7
+ (782,312){-426,294}...{-284,341} % *8
+ (566,515){-97,564}... % 9
+ (536,1122){112,1016}...{197,251} % *10
+ (678,1531){578,-210}...{245,-18} % 11
+ (1234,1377){33,-559}... % 12
+ (1217,685){-160,-1085}... % *13
+ (1074,292){-316,-348}...{-173,14} % 14
+ (992,221)--cycle); % 15
+
+endchar(lefto#);
+
+"fmlp";
+
+%charbegin( "p",1653h#, theight*v#, descender*v#);
+charbegin( "p",1653h#, 1/3[lcbody,theight]*v#, descender*v#); % DEK
+
+raisey := 50;
+
+n := 4;
+t1 := 1;
+t2 := 5;
+t3 := 6;
+t4 := 7;
+
+adj_fill.A(4) % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,2)) % verticals
+ () % horizontals
+ ((-15,100+raisey){221,191}...{1,0} % 0
+ (222,183+raisey){0,-1}...{-32,-696} % 1
+ (189,-689){54,-35}...{54,-35} % 2
+ (243,-724)-- % 3
+ (526,-570){-38,747}...{0,1} % 4
+ (510,147){-288,252}...{-288,252} % 5
+ (222,399+raisey){-381,-296}...{-203,-188} % 6
+ (-55,150+raisey)--cycle); % 7
+
+n := 10;
+t1 := 2;
+t2 := 5;
+t3 := 6;
+%t4 := 10;
+t4 := 9.5; % DEK
+t5 := 12;
+t6 := 13;
+%t7 := 15;
+t7 := 15.5; % DEK
+t8 := 18;
+t9 := 19;
+t10 := 20;
+
+adj_fill.B(1, 5) % fixed x points
+ (1) % fixed y points
+ ((2,2), (3,1), (5,3), (6,4), (9,4), (10,3))% tied points
+ ((4,7), (2,8)) % verticals
+ () % horizontals
+ ((363,2050){-252,-246}... % 0
+ (81,1702){-177,-287}... % 1
+ (54,1622){0,-1}... % 2
+ (74,1570){271,-416}...{148,-209} % 3
+ (222,1361){0,-1}...{0,-962} % 4
+ (222,399+raisey){288,-252}...{288,-252} % 5
+ (510,147+raisey){324,-60}...{537,-439} % 6
+ (911,-6){496,395}...{496,395} % 7
+ (1407,389){146,394}... % 8
+ (1485,858){66,1204}...{-48,728} % *9
+ (1473,1593){-252,91}...{-538,417} % 10
+ (1035,1827){-215,-169}...{-469,-314} % 11
+ (510,1438)-- % 12
+ (514,1314){401,306}...{276,87} % 13
+ (845,1496){554,-195}...{138,-72} % 14
+ (1168,1367){71,-756}... % 15
+ (1183,695){-86,-1107}...{-166,-322} % *16
+ (1082,260){-479,231}...{-130,-2} % 17
+ (513,399+raisey){1,919}...{1,919} % 18
+ (514,1314){-4,124}...{-4,124} % 19
+ (510,1438){8,124}...{0,1} % 20
+ (518,1562){-1,1}... % 21
+ (392,1722){-170,300}... % *22
+ (348,1862){0,1}...{269,318} % 23
+ (414,2017)--cycle); % 24
+
+endchar(0);
+
+"fmlq";
+
+charbegin( "q",1661h#+leftq#+rightq#, lcbody*v#, descender*v#);
+
+n := 5;
+t1 := 2;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 8;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,4), (2,1), (3,2), (4,3)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1175,-750){-71,62}...{-71,62} % 0
+ (1104,-688){26,352}...{7,833} % 1
+ (1143,412){-11,108}...{-11,108} % 2
+ (1132,520){-7,225}...{45,721} % 3
+ (1150,1418){59,241}...{59,241} % 4
+ (1209,1659)-- % 5
+ (1466,1835){32,-26}...{32,-26} % 6
+ (1498,1809){-133,-744}... % 7
+ (1428,580){-12,-776}...{30,-317} % 8
+ (1454,-604)--cycle); % 9
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 13;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,3), (3,4), (4,1), (6,2)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1209,1659){-118,23}...{-346,210} % 0
+ (864,1809){-267,-217}...{-365,-201} % 1
+ (254,1425){-96,-406}...{41,-721} % 2
+ (181,302){308,-349}...{308,-349} % 3
+ (489,-47){335,210}...{612,505} % 4
+ (1143,412)-- % 5
+ (1132,520){-405,-247}...{-405,-247} % 6
+ (727,273){-320,294}... % 7
+ (486,522){-1,1}... % 8
+ (463,591){-24,277}... % *9
+ (462,799){0,1}... % 10
+ (496,1229){133,734}...{162,291} % *11
+ (595,1533){480,-153}...{428,-22} % 12
+ (1150,1418)--cycle); % 13
+
+endchar(leftq#);
+
+"fmlr";
+
+charbegin( "r",1241h#, lcbody*v#, baseline );
+n := 6;
+t1 := 3;
+t2 := 4;
+t3 := 5;
+t4 := 8;
+t5 := 14;
+t6 := 17;
+
+adj_fill.A(4, 6) % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,5)) % verticals
+ () % horizontals
+ ((1171,437){-329,-156}...{-329,-156} % 0
+ (842,281){-235,187}... % 1
+ (645,471){-267,340}... % *2
+ (575,621){0,1}... % 3
+ (575,1317){0,2}...{0,157} % 4
+ (575,1474){0,116}... % 5
+ (575,1590){-341,283}...{-311,321} % 6
+ (329,1815){-265,-211}...{-346,-351} % 7
+ (-43,1468)-- % 8
+ (1,1434){140,58}...{140,58} % 9
+ (141,1492){258,-207}... % 10
+ (246,1410){190,-169}... % 11
+ (259,1377){1,-1}... % 12
+ (277,1253){19,-397}... % 13
+ (293,793){0,-1}...{-56,-427} % 14
+ (259,337){500,-515}...{219,-177} % 15
+ (639,-18){543,384}...{543,384} % 16
+ (1182,366)--cycle); % 17
+
+n := 2;
+t1 := 4;
+t2 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((1330,1571){-361,-129}... % 0
+ (1222,1531){-1,0}... % 1
+ (1110,1603){-245,266}...{-285,524} % *2
+ (977,1797){-402,-323}...{-402,-323} % 3
+ (575,1474)-- % 4
+ (575,1317){155,148}...{155,148} % 5
+ (730,1465){529,-470}... % 6
+ (894,1342){287,-166}... % *7
+ (1017,1299){1,0}... % 8
+ (1138,1337){1,1}...{318,305} % 9
+ (1335,1518)--cycle); % 10
+
+endchar(0);
+
+"fmls";
+
+charbegin( "s",1439h#, lcbody*v#, baseline );
+n := 18;
+t1 := 0;
+t2 := 2;
+t3 := 4.676;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 12;
+t8 := 16;
+t9 := 17;
+t10 := 18;
+t11 := 19;
+t12 := 20;
+t13 := 21;
+t14 := 23;
+t15 := 25;
+%t16 := 26;
+t16 := 26.5; % DEK
+t17 := 30;
+t18 := 31;
+
+adj_fill.A(1, 10) % fixed x points
+ (3, 4, 9, 12, 14, 18) % fixed y points
+ () % tied points
+ ((7,13), (5,16)) % verticals
+ ((8,11), (6,15), (2,17)) % horizontals
+ ((-167,144){162,183}... % 0
+ (71,386){234,230}... % 1
+ (318,471){1,0}... % 2
+ (584,388){301,-199}... % 3
+ (885,189){372,-261}... % 4
+ (921,183){1.489,.6999}... % 5
+ (953,238){99,311}... % 6
+ (996,578){0,1}... % 7
+ (950,844){-1,1}... % 8
+ (824,924){-1,0}... % 9
+ (675,888){-379,-207}...{-468,-260} % 10
+ (296,681){-198,248}...{-246,471} % 11
+ (153,911){5,481}...{34,758} % 12
+ (158,1455){565,376}...{565,376} % 13
+ (723,1831){311,-219}... % 14
+ (1010,1642){1,-1}... % 15
+ (1118,1609){1,0}...{317,260} % 16
+ (1392,1764)-- % 17
+ (1407,1691){-342,-289}...{-342,-289} % 18
+ (1065,1402){-485,30}...{-309,129} % 19
+ (476,1553){-213,-337}... % 20
+ (429,1304){0,-1}... % 21
+ (474,1034){156,-369}... % 22
+ (549,955){1,0}... % 23
+ (610,963){456,208}...{456,208} % 24
+ (1066,1171){372,-132}...{145,-130} % 25
+ (1273,1031){45,-631}...{-76,-275} % 26
+ (1226,245){-611,-263}...{-262,-161} % 27
+ (634,-51){-424,395}... % 28
+ (364,159){-476,284}... % *29
+ (158,233){-1,0}...{-400,-334} % 30
+ (-133,98)--cycle); % 31
+
+endchar(0);
+
+"fmlt";
+
+%charbegin( "t",1033h#, ascender*v#, baseline );
+charbegin( "t",1033h#, theight*v#, baseline ); % DEK
+n := 13;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 8.753;
+t7 := 11;
+t8 := 12;
+t9 := 14;
+t10 := 15;
+t11 := 16;
+t12 := 17;
+t13 := 19;
+
+adj_fill.A(1, 3, 7, 10) % fixed x points
+ (6, 8, 13) % fixed y points
+ () % tied points
+ ((5,9), (2,12)) % verticals
+ ((10,11), (3,4)) % horizontals
+ ((794,2381){-99,-97}... % 0
+ (695,2284){-99,-97}... % 1
+ (668,2212){-49,-282}...{0,-1} % 2
+ (627,1501){390,0}...{390,0} % 3
+ (1017,1501){-110,-134}...{-110,-134} % 4
+ (907,1367){-284,0}...{-284,0} % 5
+ (623,1367){0,-1}...{22,-635} % 6
+ (629,515){242,-222}... % 7
+ (859,329){254,-145}... % 8
+ (943,314){422,79}...{236,115} % 9
+ (1179,429)-- % 10
+ (1192,347){-507,-364}...{-507,-364} % 11
+ (685,-17){-372,308}...{-372,308} % 12
+ (313,291){50,516}...{10,1076} % 13
+ (323,1367){-325,0}...{-325,0} % 14
+ (-2,1367){133,134}...{133,134} % 15
+ (131,1501){197,0}...{197,0} % 16
+ (328,1501){0,1}...{-15,297} % 17
+ (331,2123){414,307}...{414,307} % 18
+ (745,2430)--cycle); % 19
+
+endchar(0);
+
+"fmlu";
+
+charbegin( "u",1715h#, lcbody*v#, baseline );
+
+n := 4;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 8;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ ((2,2), (3,1)) % tied points
+ ((3,4)) % verticals
+ () % horizontals
+ ((1800,386){-238,-193}...{-456,-432} % 0
+ (1351,-7){-30,6}...{-30,6} % 1
+ (1321,-1){-123,312}...{-312,431} % 2
+ (1135,347){6,111}...{6,111} % 3
+ (1141,458){17,273}...{-36,856} % 4
+ (1143,1629)-- % 5
+ (1459,1793){25,-25}...{25,-25} % 6
+ (1484,1768){-94,-768}... % 7
+ (1424,891){0,-1}... % 8
+ (1450,545){108,-446}... % 9
+ (1520,397){181,-254}... % 10
+ (1617,373){321,118}...{509,246} % 11
+ (1778,442)--cycle); % 12
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+t9 := 16;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((1,2), (9,1)) % tied points
+ ((3,7)) % verticals
+ ((4,6), (2,8)) % horizontals
+ ((1135,347){-311,-154}... % 0
+ (633,10){-310,-305}... % 1
+ (579,-24){-1.768,-.1456}... % 2
+ (529,-3){-238,188}...{-543,132} % 3
+ (103,238){272,290}... % 4
+ (226,531){166,800}... % *5
+ (269,1038){0,1}... % 6
+ (232,1339){-142,487}...{-262,227} % *7
+ (127,1525){-143,-75}...{-143,-75} % 8
+ (-16,1450)-- % 9
+ (-70,1487){411,328}...{411,328} % 10
+ (341,1815){407,-511}...{336,-243} % 11
+ (532,1619){13,-852}... % 12
+ (529,1037){-14,-398}...{-124,-420} % 13
+ (439,443){363,-170}...{363,-170} % 14
+ (802,273){339,185}...{339,185} % 15
+ (1141,458)--cycle); % 16
+
+endchar(0);
+
+"fmlv";
+
+%charbegin( "v",1695h#, theight*v#, baseline );
+charbegin( "v",1695h#, 1/3[lcbody,theight]*v#, baseline ); % DEK
+
+n := 8;
+t1 := 4;
+t2 := 8;
+t3 := 10;
+t4 := 11;
+t5 := 13;
+t6 := 20;
+t7 := 21;
+t8 := 22;
+
+adj_fill.A(3) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (7,2), (8,1)) % tied points
+ ((2,5), (1,6)) % verticals
+ () % horizontals
+ ((346,2022){-311,-419}... % 0
+ (203,1828){-531,-810}... % 1
+ (105,1600){0,-1}...{251,-346} % 2
+ (243,1374){14,-371}...{-50,-646} % 3
+ (242,295){203,-161}...{366,-390} % 4
+ (611,-44){795,423}...{795,423} % 5
+ (1406,379){189,448}... % 6
+ (1496,844){95,1220}...{-32,752} % *7
+ (1501,1599){-261,104}...{-568,375} % 8
+ (1075,1826){-543,-393}...{-543,-393} % 9
+ (532,1433)-- % 10
+ (549,1332){375,281}...{306,125} % 11
+ (883,1526){449,-96}...{239,-214} % 12
+ (1200,1384){61,-518}... % 13
+ (1215,699){-124,-1074}... % *14
+ (1164,461){-138.8,-388.8}... % *15
+ (1076,310){-1,-1}... % 16
+ (954,241){-1,0}... % 17
+ (807,298){-138,105}... % 18
+ (669,403){-499,368}... % 19
+ (538,635){-31,673}...{15,471} % 20
+ (549,1332){-17,101}...{-17,101} % 21
+ (532,1433){-5,129}...{-5,129} % 22
+ (527,1562){-418,406}... % 23
+ (400,1720){-172,300}... % *24
+ (355,1862){0,1}...{324,558} % 25
+ (409,2012)--cycle); % 26
+
+
+
+endchar(0);
+
+"fmlw";
+
+%charbegin( "w",2664h#, theight*v#, baseline );
+charbegin( "w",2664h#, 1/3[lcbody,theight]*v#, baseline ); % DEK
+n := 6;
+t1 := 2;
+t2 := 6;
+t3 := 13;
+t4 := 14;
+t5 := 15;
+t6 := 17;
+
+adj_fill.A(2, 6) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((1,5)) % verticals
+ () % horizontals
+ ((406,-39){-196,335}...{-405,385} % 0
+ (189,254){66,428}... % 1
+ (226,825){0,1}... % 2
+ (214,1338){-20,342}... % 3
+ (185,1418){-186,245}... % 4
+ (94,1550){-162,248}... % 5
+ (66,1639){0,1}... % 6
+ (93,1701){203,317}...{304,302} % 7
+ (360,2031)-- % 8
+ (410,2018){-193,-320}... % 9
+ (350,1846){0,-1}... % 10
+ (423,1680){350,-623}...{167,-165} % 11
+ (522,1570){4,-119}...{4,-119} % 12
+ (526,1451){-10,-103}...{-10,-103} % 13
+ (516,1348){-34,-712}... % 14
+ (510,646){0,-1}... % 15
+ (583,386){181,-287}...{228,-266} % 16
+ (685,239)--cycle); % 17
+
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 13;
+t9 := 14;
+%t10 := 18;
+t10 := 18.5; % DEK
+t11 := 20;
+t12 := 21;
+t13 := 21.76;
+t14 := 23;
+t15 := 24;
+
+adj_fill.B(1, 13) % fixed x points
+ () % fixed y points
+ ((1,3), (6,3), (7,4), (8,1), (9,2), (15,4))% tied points
+ ((5,10), (3,12)) % verticals
+ ((4,11), (2,14)) % horizontals
+ ((1447,1325){319,159}...{319,159} % 0
+ (1766,1484){421,-108}...{484,-312} % 1
+ (2112,1347){68,-481}... % 2
+ (2142,1036){0,-1}... % 3
+ (2111,531){-126,-755}... % *4
+ (2016,281){-1,-1}... % 5
+ (1929,223){-1,0}... % 6
+ (1558,388){-477,378}... % 7
+ (1449,608){-30,392}...{34,856} % 8
+ (1447,1325){0,98}...{0,98} % 9
+ (1447,1423){5,136}...{5,136} % 10
+ (1452,1559){-276,126}...{-455,301} % 11
+ (978,1811){-177,-169}...{-412,-295} % 12
+ (526,1451)-- % 13
+ (516,1348){423,276}... % 14
+ (742,1481){318,190}... % 15
+ (799,1499){1.937,.12}... % 16
+ (875,1485){386,-190}...{227,-150} % 17
+ (1134,1323){80,-803}...{-33,-375} % 18
+ (1123,231){521,-256}...{431,-267} % 19
+ (1619,-44){692,370}...{692,370} % 20
+ (2311,326){199,576}...{-23,478} % 21
+ (2438,1560){-376,168}...{-209,124} % 22
+ (1972,1804){-525,-381}...{-525,-381} % 23
+ (1447,1423)--cycle); % 24
+
+endchar(0);
+
+"fmlx";
+
+charbegin( "x",1239h#, lcbody*v#, descender*v#);
+n := 7;
+t1 := 3;
+t2 := 4;
+t3 := 5;
+t4 := 11;
+t5 := 13;
+t6 := 14;
+t7 := 15;
+
+adj_fill.A(2, 4) % fixed x points
+ () % fixed y points
+ ((1,4), (2,1), (5,2), (6,3)) % tied points
+ ((3,7)) % verticals
+ () % horizontals
+ ((-48,1455){236,244}...{465,395} % 0
+ (335,1809){178,-157}...{342,-257} % 1
+ (616,1567){-4,-117}...{-4,-117} % 2
+ (612,1450){10,-130}...{10,-130} % 3
+ (622,1320){-59,-276}... % 4
+ (599,1128){-16,-523}...{47,-719} % 5
+ (621,494){247,-266}... % 6
+ (854,293){269,-184}... % 7
+ (904,280){1.918,.05877}... % 8
+ (953,296){265,139}...{265,139} % 9
+ (1218,435)-- % 10
+ (1227,357){-550,-389}...{-550,-389} % 11
+ (677,-32){-384,432}...{-239,174} % 12
+ (365,241){-61,61}...{-61,61} % 13
+ (304,302){59,466}... % 14
+ (326,771){0,1}...{-29,374} % 15
+ (300,1367){-419,438}... % 16
+ (190,1469){-279,173}... % 17
+ (152,1489){-1.831,.1431}... % 18
+ (108,1474){-107,-53}...{-465,-324} % 19
+ (1,1421)--cycle); % 20
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((1243,1505){-268,192}...{-295,484} % 0
+ (1015,1780){-403,-330}...{-403,-330} % 1
+ (612,1450)-- % 2
+ (622,1320){216,255}... % 3
+ (772,1466){124,115}...{244,-79} % 4
+ (1020,1316)--cycle); % 5
+
+n := 2;
+t1 := 4;
+t2 := 5;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (2,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((356,-636){-326,78}... % 0
+ (14,-474){-1,1}... % 1
+ (-63,-301){0,1}... % 2
+ (32,-52){367,603}...{400,446} % *3
+ (304,302)-- % 4
+ (365,241){-358,-331}... % 5
+ (200,43){-223,-381}... % *6
+ (142,-140){0,-1}... % 7
+ (231,-336){1,-1}...{369,-76} % 8
+ (563,-468){2,-35}...{2,-35} % 9
+ (565,-503)--cycle); % 10
+
+endchar(0);
+
+"fmly";
+
+charbegin( "y",1647h#, lcbody*v#, descender*v#);
+n := 5;
+t1 := 2;
+t2 := 5;
+t3 := 10;
+t4 := 11;
+t5 := 13;
+
+adj_fill.A(2, 5) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((384,-38){-137,236}...{-329,408} % 0
+ (172,274){89,350}... % 1
+ (228,1002){0,1}... % 2
+ (219,1318){-27,435}...{-16,42} % 3
+ (203,1360){-145,205}...{-215,420} % 4
+ (68,1576){75,191}...{289,411} % 5
+ (318,2015)-- % 6
+ (379,2001){-125,-235}... % 7
+ (328,1840){0,-1}...{165,-194} % 8
+ (504,1552){0,-1}...{0,-1} % 9
+ (504,1409){0,-108}...{0,-108} % 10
+ (504,1301){0,-1}...{0,-1} % 11
+ (504,471){221,-331}...{141,-175} % 12
+ (700,226)--cycle); % 13
+
+n := 5;
+t1 := 3;
+t2 := 6;
+t3 := 7;
+t4 := 10;
+t5 := 14;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((720,-750){599,584}... % 0
+ (1319,-166){516,554}... % 1
+ (1405,-25){116,400}... % 2
+ (1495,854){0,1}...{-29,806} % 3
+ (1476,1591){-398,150}...{-659,394} % 4
+ (1050,1810){-546,-401}...{-546,-401} % 5
+ (504,1409)-- % 6
+ (504,1301){469,346}...{267,113} % 7
+ (869,1506){429,-117}...{209,-124} % 8
+ (1155,1379){76,-677}... % 9
+ (1194,760){0,-1}... % 10
+ (1170,206){-94,-922}... % *11
+ (1100,-162){-179,-522}... % 12
+ (927,-457){-1,-1}...{-208,-100} % 13
+ (580,-686)--cycle); % 14
+
+endchar(0);
+
+"fmlz";
+
+charbegin( "z",1246h#, lcbody*v#, descender*v#);
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 14;
+t7 := 19;
+t8 := 21;
+t9 := 23;
+t10 := 25;
+t11 := 30;
+t12 := 32;
+
+adj_fill.A(6, 12) % fixed x points
+ () % fixed y points
+ ((1,1), (9,1)) % tied points
+ ((3,10), (5,7), (2,11), (4,8)) % verticals
+ () % horizontals
+ ((666,605){-1,-1}... % 0
+ (185,78){-792,-976}...{-290,-527} % *1
+ (-126,-371){93,-483}... % 2
+ (9,-583){470,-344}...{1,0} % 3
+ (465,-734){509,426}...{509,426} % 4
+ (974,-308){102,386}... % 5
+ (1062,298){0,1}...{-175,649} % 6
+ (1009,793){-426,262}...{-580,201} % 7
+ (619,966){278,329}... % 8
+ (897,1295){278,329}... % 9
+ (951,1429){0,1}... % 10
+ (919,1525){-125,211}... % *11
+ (826,1640){-1,1}...{-491,244} % 12
+ (572,1803){-322,-225}...{-425,-430} % 13
+ (34,1343)-- % 14
+ (74,1299){256,206}... % 15
+ (320,1472){218,131}... % 16
+ (413,1496){1,0}... % 17
+ (548,1437){1,-1}... % 18
+ (656,1226){0,-1}... % 19
+ (528,1017){-269,-247}... % 20
+ (259,770){-.7128,-1.676}...{1,-42} % 21
+ (260,728){570,-49}...{252,-112} % 22
+ (666,605){68,-64}...{68,-64} % 23
+ (734,541){155,-534}... % 24
+ (787,135){0,-1}... % 25
+ (759,-253){-109,-594}... % *26
+ (678,-459){-1,-1}... % 27
+ (576,-509){-1,0}... % 28
+ (247,-367){-1,1}... % 29
+ (168,-211){0,1}... % 30
+ (314,118){557,752}...{422,360} % *31
+ (725,541)--cycle); % 32
+
+endchar(0);
+
+% UPPER CASE
+
+"FMUA";
+
+charbegin( "A", 2457h#, capheight*v#, baseline*v#);
+
+n := 5;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 6;
+t5 := 9;
+
+adj_fill.A(1, 4) % fixed x points
+ () % fixed y points
+ ((2,1)) % tied points
+ ((3,5)) % verticals
+ () % horizontals
+ ((2522,374){-135,-105}...{-135,-105} % 0
+ (1990,-39){-60,140}...{-60,140} % 1
+ (1753,512){0,1}... % 2
+ (1753,1812){0,1}...{-1,16} % 3
+ (1734,2285){120,90}...{120,90} % 4
+ (2206,2640)-- % 5
+ (2266,2600){-1,-1}... % 6
+ (2108,2443){-2,-3}... % 7
+ (2069,2325){-1,-10}... % 8
+ (2049,1458){0,-1}... % 9
+ (2069,788){1,-21}... % 10
+ (2088,670){2,-5}... % 11
+ (2246,355){3,-4}... % 12
+ (2325,355){2,1}...{2,1} % 13
+ (2502,433)--cycle); % 14
+
+n := 7;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+
+adj_fill.B() % fixed x points
+ (3, 5, 7) % fixed y points
+ ((1,3), (2,2), (4,1)) % tied points
+ () % verticals
+ ((2,6)) % horizontals
+ ((20,236){4,3}... % 0
+ (433,552){4,3}... % 1
+ (749,630){1,0}... % 2
+ (1044,473){1,-1}...{1,-1} % 3
+ (1221,296){135,85}...{135,85} % 4
+ (1753,630)-- % 5
+ (1753,512){-190,-140}...{-190,-140} % 6
+ (1005,-39){-3,5}... % 7
+ (827,197){-1,1}... % 8
+ (512,355){-1,0}...{-5,-3} % 9
+ (79,197)--cycle); % 10
+
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 11;
+t7 := 12;
+t8 := 14;
+t9 := 18;
+t10 := 20;
+t11 := 22;
+t12 := 24;
+
+adj_fill.C(6) % fixed x points
+ (7) % fixed y points
+ ((1,2), (12,3)) % tied points
+ ((5,8), (4,9), (2,11)) % verticals
+ ((3,10)) % horizontals
+ ((749,630){160,155}...{160,155} % 0
+ (1379,1241){2,4}... % 1
+ (1556,1970){0,1}... % 2
+ (1379,2443){-1,1}... % 3
+ (906,2600){-1,0}... % 4
+ (177,2305){-1,-1}... % 5
+ (-20,1931){0,-1}... % 6
+ (158,1576){1,-1}... % 7
+ (274,1439){40,-60}... % *8
+ (315,1340){0,-1}... % 9
+ (252,1189){-60,-75}...{-5,-3} % *10
+ (79,1044)-- % 11
+ (138,1005){2,1}... % 12
+ (454,1237){110,125}... % *13
+ (571,1497){0,1}... % 14
+ (520,1636){-50,80}... % *15
+ (374,1812){-1,1}... % 16
+ (258,1950){-40,60}... % *17
+ (217,2049){0,1}... % 18
+ (315,2266){1,1}... % 19
+ (630,2403){1,0}... % 20
+ (1084,2206){1,-1}... % 21
+ (1261,1734){0,-1}... % 22
+ (1103,1162){-4,-5}...{-4,-3} % 23
+ (433,552)--cycle); % 24
+
+endchar(0);
+
+"FMUB";
+
+charbegin( "B",3073h#, capheight*v#, baseline*v#);
+
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 6;
+t6 := 8;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+t10 := 16;
+t11 := 20;
+t12 := 22;
+t13 := 25;
+t14 := 28;
+
+adj_fill.A(8, 14) % fixed x points
+ (9, 14) % fixed y points
+ ((1,4), (3,1), (4,2), (14,3)) % tied points
+ ((7,10), (6,11), (2,13)) % verticals
+ ((5,12)) % horizontals
+ ((1024,493){110,85}...{110,85} % 0
+ (1458,827){2,4}... % 1
+ (1596,1537){0,1}... % 2
+ (1576,2009){-1,5}... % 3
+ (1497,2226){-3,5}... % 4
+ (1320,2443){-1,1}... % 5
+ (887,2620){-1,0}... % 6
+ (256,2305){-1,-1}... % 7
+ (79,1931){0,-1}... % 8
+ (217,1615){3,-4}... % 9
+ (362,1420){45,-70}... % *10
+ (394,1340){0,-1}... % 11
+ (331,1186){-60,-75}...{-7,-4} % *12
+ (158,1044)-- % 13
+ (217,1005){7,3}... % 14
+ (546,1227){115,125}... % *15
+ (670,1497){0,1}... % 16
+ (624,1631){-45,80}... % *17
+ (493,1812){-6,7}... % 18
+ (376,1973){-40,70}... % *19
+ (335,2088){0,1}... % 20
+ (433,2285){1,1}... % 21
+ (650,2364){1,0}... % 22
+ (1024,2206){1,-1}... % 23
+ (1221,1812){1,-5}... % 24
+ (1261,1379){0,-1}... % 25
+ (1241,1026){-20,-140}... % *26
+ (1182,827){-2,-3}...{-5,-3} % 27
+ (709,414)--cycle); % 28
+
+n := 9;
+t1 := 0;
+t2 := 1.282;
+t3 := 2;
+t4 := 5;
+t5 := 7;
+t6 := 8;
+t7 := 10;
+t8 := 14;
+t9 := 15;
+
+adj_fill.B() % fixed x points
+ (2) % fixed y points
+ ((1,7), (5,2), (6,1), (8,5), (9,6)) % tied points
+ () % verticals
+ ((4,7), (3,9)) % horizontals
+ ((2916,1970){-8,-3}... % 0
+ (2754,1930){-65,-5}... % *1
+ (2660,1950){-1,1}... % 2
+ (2561,2206){-1,5}... % 3
+ (2463,2522){-1,1}... % 4
+ (2226,2600){-1,0}... % 5
+ (1773,2443){-3,-2}...{-1,-1} % 6
+ (1497,2226)-- % 7
+ (1576,2009){1,3}... % 8
+ (1714,2266){1,1}... % 9
+ (2009,2403){1,0}... % 10
+ (2187,2325){1,-1}... % 11
+ (2266,2049){1,-6}... % 12
+ (2325,1830){35,-80}... % *13
+ (2403,1734){11,-3}...{35,-10} % 14
+ (2541,1694)--cycle); % 15
+
+n := 5;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+t5 := 6;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,9), (2,5), (3,7), (4,6), (5,8)) % tied points
+ () % verticals
+ () % horizontals
+ ((1576,1379){3,1}... % 0
+ (2009,1537){2,1}... % 1
+ (2403,1734){4,2}...{130,60} % 2
+ (2916,1970)-- % 3
+ (2935,1891){-5,-2}... % 4
+ (2541,1694){-4,-3}...{-3,-2} % 5
+ (2206,1478)--cycle); % 6
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 13;
+t10 := 15;
+t11 := 17;
+t12 := 18;
+
+adj_fill.D() % fixed x points
+ (1, 7) % fixed y points
+ ((5,8), (6,9), (11,4), (12,3)) % tied points
+ ((4,9)) % verticals
+ ((5,8), (3,10), (2,11)) % horizontals
+ ((315,39){3,2}... % 0
+ (827,236){1,0}... % 1
+ (1379,79){5,-2}... % 2
+ (1891,-39){1,0}... % 3
+ (2128,0){8,3}...{5,4} % 4
+ (2738,433){2,4}... % 5
+ (2857,887){0,1}... % 6
+ (2699,1300){-1,1}... % 7
+ (2206,1478){-1,0}...{-160,-25} % 8
+ (1576,1379)-- % 9
+ (1576,1261){4,2}... % 10
+ (1872,1320){1,0}... % 11
+ (2384,1123){1,-1}... % 12
+ (2541,709){0,-1}... % 13
+ (2384,296){-1,-1}... % 14
+ (2128,197){-1,0}... % 15
+ (1655,335){-5,2}... % 16
+ (1024,493){-1,0}... % 17
+ (709,414){-5,-3}...{-5,-3} % 18
+ (256,138)--cycle); % 19
+
+endchar(0);
+
+"FMUC";
+
+charbegin( "C",2068h#, capheight*v#, baseline*v#);
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 11;
+t9 := 13;
+
+adj_fill.A(1, 5, 6) % fixed x points
+ (6) % fixed y points
+ ((1,2), (9,1)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1005,2226){-30,15}...{-30,15} % 0
+ (887,2285){-200,-90}...{-200,-150} % 1
+ (276,1911){-100,-205}... % 2
+ (118,1241){0,-1}... % 3
+ (200,693){80,-240}... % *4
+ (433,296){1,-1}...{200,40} % 5
+ (1596,0){200,150}...{200,125} % 6
+ (2128,355)-- % 7
+ (2128,453){-110,-55}...{-110,-55} % 8
+ (1694,236){-100,-10}... % 9
+ (709,552){-1,1}... % 10
+ (414,1399){0,1}... % 11
+ (591,1990){8,10}...{200,5} % 12
+ (926,2147)--cycle); % 13
+
+n := 6;
+t1 := 4;
+t2 := 5;
+t3 := 7;
+t4 := 9;
+t5 := 12;
+t6 := 18;
+
+adj_fill.B(4, 6) % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((3,5)) % verticals
+ () % horizontals
+ ((2147,2226){-200,-65}... % 0
+ (1931,2206){-1,1}... % 1
+ (1877,2299){-40,100}...{-70,200} % *2
+ (1773,2600){-200,-75}...{-200,-140} % 3
+ (1005,2226){-20,-20}...{-20,-20} % 4
+ (926,2147){-50,-200}... % 5
+ (946,1812){55,-200}... % 6
+ (1024,1418){0,-1}... % 7
+ (965,1162){-1,-1}...{-200,-45} % 8
+ (690,1005)-- % 9
+ (737,946){200,30}... % 10
+ (1261,1182){1,1}... % 11
+ (1379,1537){0,1}... % 12
+ (1300,1931){-40,200}... % 13
+ (1279,2162){5,95}...{8,10} % *14
+ (1320,2305){1,1}...{200,65} % 15
+ (1438,2384){100,-160}...{200,-120} % 16
+ (1734,2009){200,25}...{200,95} % 17
+ (2147,2147)--cycle); % 18
+
+endchar(0);
+
+"FMUD";
+
+charbegin( "D",2879h#, capheight*v#, baseline*v#);
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 7;
+t5 := 13;
+t6 := 14;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ ((1,2), (6,1)) % tied points
+ ((3,4), (2,5)) % verticals
+ () % horizontals
+ ((2226,552){4,6}... % 0
+ (2343,848){40,180}... % *1
+ (2384,1261){0,1}... % 2
+ (2128,1990){-1,1}... % 3
+ (1182,2325){-1,0}... % 4
+ (335,2029){-1,-1}...{-1,-9} % 5
+ (79,1418)-- % 6
+ (0,1458){0,1}... % 7
+ (315,2285){1,1}... % 8
+ (717,2518){245,80}... % *9
+ (1281,2600){1,0}... % 10
+ (1941,2508){285,-90}... % *11
+ (2403,2246){1,-1}... % 12
+ (2660,1576){0,-1}...{-3,-7} % 13
+ (2443,552)--cycle); % 14
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 10;
+
+adj_fill.B() % fixed x points
+ (1) % fixed y points
+ ((1,5), (2,3), (4,2), (5,1), (7,4)) % tied points
+ () % verticals
+ ((3,6)) % horizontals
+ ((414,552){1,0}... % 0
+ (827,532){5,-1}... % 1
+ (1300,394){8,-3}... % 2
+ (1793,236){1,0}... % 3
+ (2012,320){110,80}...{4,6} % *4
+ (2226,552)-- % 5
+ (2443,552){-1,-1}... % 6
+ (1635,-39){-1,0}... % 7
+ (1261,79){-5,2}... % 8
+ (788,236){-7,2}...{-1,0} % 9
+ (473,296)--cycle); % 10
+
+n := 3;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+
+adj_fill.C() % fixed x points
+ (3) % fixed y points
+ ((1,5), (2,4)) % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((20,59){1,2}...{6,5} % 0
+ (414,552)-- % 1
+ (473,296){-1,0}... % 2
+ (267,216){-100,-75}...{-3,-5} % *3
+ (79,0)--cycle); % 4
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 9;
+t5 := 12;
+t6 := 14;
+t7 := 16;
+
+adj_fill.D(4) % fixed x points
+ () % fixed y points
+ ((1,5), (7,3)) % tied points
+ ((3,5), (2,6)) % verticals
+ () % horizontals
+ ((414,552){1,0}... % 0
+ (832,655){150,90}... % *1
+ (1005,906){0,1}... % 2
+ (887,1182){-5,6}... % 3
+ (712,1398){-55,80}... % *4
+ (670,1497){0,1}... % 5
+ (721,1665){50,90}... % *6
+ (867,1852){1,1}...{6,3} % 7
+ (1261,2128)-- % 8
+ (1320,2088){-3,-2}... % 9
+ (1182,1970){-1,-1}... % 10
+ (1051,1813){-45,-70}... % *11
+ (1005,1694){0,-1}... % 12
+ (1162,1418){7,-10}... % 13
+ (1340,1084){0,-1}... % 14
+ (1201,799){-130,-140}...{-2,-1} % *15
+ (827,532)--cycle); % 16
+
+endchar(0);
+
+"FMUE";
+
+charbegin( "E",2254h#, capheight*v#, baseline*v#);
+%.............................................................Points
+
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 11;
+t9 := 13;
+
+adj_fill.A(1, 5, 6) % fixed x points
+ (6) % fixed y points
+ ((1,2), (9,1)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1103,2226){-30,15}...{-30,15} % 0
+ (985,2285){-200,-90}...{-200,-150} % 1
+ (374,1911){-100,-205}... % 2
+ (217,1241){0,-1}... % 3
+ (299,693){80,-240}... % *4
+ (532,296){1,-1}...{200,40} % 5
+ (1694,0){200,150}...{200,125} % 6
+ (2226,355)-- % 7
+ (2226,453){-110,-55}...{-110,-55} % 8
+ (1793,236){-100,-10}... % 9
+ (808,552){-1,1}... % 10
+ (512,1399){0,1}... % 11
+ (690,1990){8,10}...{200,5} % 12
+ (1024,2147)--cycle); % 13
+
+n := 8;
+t1 := 4;
+t2 := 5;
+t3 := 5.352;
+t4 := 6;
+t5 := 10;
+t6 := 14;
+t7 := 15;
+t8 := 21;
+
+adj_fill.B(3, 5, 8) % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (6,3), (7,4)) % tied points
+ ((4,6)) % verticals
+ () % horizontals
+ ((2246,2226){-200,-65}... % 0
+ (2029,2206){-1,1}... % 1
+ (1976,2299){-40,100}...{-70,200} % *2
+ (1872,2600){-200,-75}...{-200,-140} % 3
+ (1103,2226){-20,-20}...{-20,-20} % 4
+ (1024,2147){-50,-200}... % 5
+ (1044,1812){55,-200}... % 6
+ (1126,1332){5,-190}... % *7
+ (1113,1165){-15.84,-68.14}...{-1,-1} % *8
+ (1064,1064){-10,-7}...{-200,-32} % 9
+ (768,926)-- % 10
+ (827,867){200,30}... % 11
+ (1123,943){125,50}... % *12
+ (1320,1064){1,1}... % 13
+ (1478,1320){100,395}... % 14
+ (1478,1418){0,1}... % 15
+ (1399,1931){-40,200}... % 16
+ (1377,2162){5,95}...{8,10} % *17
+ (1418,2305){1,1}...{200,65} % 18
+ (1537,2384){100,-160}...{200,-120} % 19
+ (1832,2009){200,25}...{200,95} % 20
+ (2246,2147)--cycle); % 21
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,4), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((2167,1359){-200,120}...{-190,260} % 0
+ (1852,1655){-95,-60}...{-95,-60} % 1
+ (1478,1418)-- % 2
+ (1478,1320){200,180}... % 3
+ (1615,1379){1,0}... % 4
+ (1673,1358){70,-45}...{200,-130} % *5
+ (1891,1202)--cycle); % 6
+
+endchar(0);
+
+"FMUF";
+
+%charbegin( "F",2063h#, capheight*v#, depthy*v#);
+charbegin( "F",2063h#, capheight*v#, 2/3descender*v#); % DEK
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+
+adj_fill.A() % fixed x points
+ (1, 4) % fixed y points
+ ((6,1), (7,2)) % tied points
+ () % verticals
+ ((3,5), (2,8)) % horizontals
+ ((2167,2443){-200,-210}... % 0
+ (1852,2206){-1,0}... % 1
+ (1615,2285){-200,120}... % 2
+ (1162,2520){-195,80}... % *3
+ (847,2600){-1,0}... % 4
+ (355,2403){-1,-1}...{-20,-200} % 5
+ (118,1812)-- % 6
+ (177,1773){40,200}... % 7
+ (374,2226){1,1}... % 8
+ (630,2344){1,0}... % 9
+ (919,2274){175,-70}...{200,-120} % *10
+ (1320,2069){35,-20}...{35,-20} % 11
+ (1458,1990){200,-125}... % 12
+ (1694,1911){1,0}... % 13
+ (1892,2021){120,110}...{200,275} % *14
+ (2167,2344)--cycle); % 15
+
+n := 15;
+t1 := 0;
+t2 := 1.492;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 13;
+t7 := 15;
+t8 := 16;
+t9 := 18;
+t10 := 20;
+t11 := 21;
+t12 := 23;
+t13 := 25;
+t14 := 28;
+t15 := 30;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((7,1), (8,2), (10,3), (11,4)) % tied points
+ ((3,14), (5,12), (6,9)) % verticals
+ ((2,15), (4,13)) % horizontals
+ ((-59,670){175,120}... % 0
+ (307,850){150,40}... % *1
+ (532,827){8,-10}... % 2
+ (612,612){15,-130}... % *3
+ (591,315){-45,-200}... % 4
+ (570,-25){20,-145}... % *5
+ (670,-256){1,-1}... % 6
+ (906,-374){1,0}... % 7
+ (1241,-217){1,1}... % 8
+ (1399,197){0,1}... % 9
+ (1314,451){-85,165}... % *10
+ (1064,847){-200,280}... % 11
+ (842,1197){-75,145}... % *12
+ (768,1418){0,1}... % 13
+ (915,1734){140,165}...{200,125} % *14
+ (1320,2069)-- % 15
+ (1458,1990){-200,-50}... % 16
+ (1160,1834){-105,-100}... % *17
+ (1044,1596){0,-1}... % 18
+ (1100,1407){55,-115}...{200,-280} % *19
+ (1261,1143){10,-20}...{10,-20} % 20
+ (1300,1064){200,-260}... % 21
+ (1593,627){100,-185}... % *22
+ (1694,335){0,-1}... % 23
+ (1478,-177){-1,-1}... % 24
+ (709,-512){-1,0}... % 25
+ (394,-374){-1,1}... % 26
+ (295,-140){-25,155}... % *27
+ (296,236){25,200}... % 28
+ (304,489){-10,100}... % *29
+ (256,630){-1,1}... % 30
+ (135,657){-75,-10}...{-200,-120} % *31
+ (-39,591)--cycle); % 32
+
+n := 4;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((2,3), (3,4)) % tied points
+ () % verticals
+ ((1,4)) % horizontals
+ ((1911,1281){-70,200}...{-200,210} % 0
+ (1714,1576){-115,-110}...{-115,-110} % 1
+ (1261,1143)-- % 2
+ (1300,1064){200,160}... % 3
+ (1556,1221){1,0}...{110,-200} % 4
+ (1753,1064)--cycle); % 5
+
+endchar(0);
+
+"FMUG";
+
+charbegin( "G",2708h#, capheight*v#, baseline*v#);
+
+n := 7;
+t1 := 1;
+t2 := 2;
+t3 := 2.378;
+t4 := 4;
+t5 := 6;
+t6 := 9;
+t7 := 10;
+
+adj_fill.A(3, 5) % fixed x points
+ () % fixed y points
+ ((1,4), (2,1), (6,2), (7,3)) % tied points
+ ((4,6)) % verticals
+ () % horizontals
+ ((1438,2502){-110,-70}...{-110,-70} % 0
+ (1005,2226){-10,-15}...{-10,-15} % 1
+ (965,2167){-6,-20}... % 2
+ (985,1675){5,-20}... % 3
+ (1035,1325){0,-145}... % *4
+ (985,1103){-100,-145}...{-20,-5} % 5
+ (709,906)-- % 6
+ (768,847){200,35}... % 7
+ (1261,1064){1,1}...{-15,200} % 8
+ (1379,1517){-5,25}...{-5,25} % 9
+ (1359,1615){-40,200}... % 10
+ (1281,2128){0,1}...{200,175} % 11
+ (1478,2463)--cycle); % 12
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 10;
+t6 := 12;
+t7 := 15;
+t8 := 16;
+
+adj_fill.B(1) % fixed x points
+ (5, 8) % fixed y points
+ ((1,6), (3,2), (4,3), (8,5)) % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((1970,414){1,1}... % 0
+ (2206,1005){0,1}... % 1
+ (2088,1340){-1,1}...{-20,-5} % 2
+ (1379,1517){-5,25}...{-5,25} % 3
+ (1359,1615){200,120}...{200,195} % 4
+ (1931,2049){-200,90}...{-45,100} % 5
+ (1576,2384)-- % 6
+ (1832,2620){1,-2}... % 7
+ (2006,2390){95,-80}... % *8
+ (2206,2305){1,0}...{100,110} % 9
+ (2344,2364){5,-20}...{5,-20} % 10
+ (2364,2285){-160,-140}...{-160,-140} % 11
+ (1734,1734){200,17}... % 12
+ (2092,1718){150,-32}... % *13
+ (2325,1608){1,-1}... % 14
+ (2529,1182){0,-1}...{-200,-195} % 15
+ (2187,414)--cycle); % 16
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 7;
+t7 := 9;
+t8 := 11;
+
+adj_fill.C(1) % fixed x points
+ (1) % fixed y points
+ ((1,8), (4,6), (5,5), (8,7)) % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((630,2009){-1,-1}... % 0
+ (433,1418){0,-1}... % 1
+ (749,532){1,-1}... % 2
+ (1458,217){1,0}...{1,1} % 3
+ (1970,414)-- % 4
+ (2187,414){-20,-13}...{-20,-16} % 5
+ (1615,20){-20,-7}... % 6
+ (1261,-39){-1,0}... % 7
+ (473,276){-1,1}... % 8
+ (138,1241){0,1}... % 9
+ (183,1642){45,175}...{155,200} % *10
+ (315,1931)--cycle); % 11
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+
+adj_fill.D() % fixed x points
+ () % fixed y points
+ ((1,1), (2,8), (3,7), (4,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((965,2167){-200,-45}...{-1,-1} % 0
+ (630,2009)-- % 1
+ (315,1931){150,90}...{150,90} % 2
+ (906,2285){25,-15}...{25,-15} % 3
+ (1005,2226)--cycle); % 4
+
+endchar(0);
+
+"FMUH";
+
+%charbegin( "H",2467h#, capheight*v#, descender*v#);
+charbegin( "H",2467h#, capheight*v#, 1/3descender*v#); % DEK
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 16;
+t10 := 18;
+t11 := 19;
+t12 := 20;
+t13 := 24;
+t14 := 25;
+
+adj_fill.A(1, 6, 14) % fixed x points
+ (1, 7) % fixed y points
+ ((10,1), (11,2)) % tied points
+ ((3,12), (4,9)) % verticals
+ ((2,13), (5,8)) % horizontals
+ ((1911,2522){-200,-145}... % 0
+ (1663,2345){-90,-55}... % *1
+ (1556,2305){-1,0}...{-1,1} % 2
+ (1084,2529){-200,-140}... % 3
+ (548,2058){-185,-222}... % *4
+ (355,1655){0,-1}... % 5
+ (435,1349){80,-200}... % *6
+ (670,867){110,-200}... % 7
+ (788,552){0,-1}...{-200,-180} % 8
+ (650,276){-200,205}... % 9
+ (355,433){-1,0}...{-200,-230} % 10
+ (-98,59)-- % 11
+ (-59,0){200,185}... % 12
+ (197,177){1,0}... % 13
+ (344,120){80,-55}...{200,-240} % *14
+ (512,-39){200,205}...{200,260} % 15
+ (985,532){90,200}... % 16
+ (1004,775){-20,150}...{-80,200} % *17
+ (906,1123){-15,40}...{-15,40} % 18
+ (847,1281){-95,200}... % 19
+ (662,1812){0,1}... % 20
+ (715,2002){52,105}...{195,230} % *21
+ (867,2226){2,-1}... % 22
+ (1176,2094){135,-45}... % *23
+ (1399,2049){1,0}...{1,1} % 24
+ (1911,2443)--cycle); % 25
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+t10 := 17;
+
+adj_fill.B(10) % fixed x points
+ (1) % fixed y points
+ ((5,1), (6,2)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1438,-98){1,-2}... % 0
+ (1655,-236){1,0}... % 1
+ (1770,-183){55,50}... % *2
+ (1872,-39){95,200}... % 3
+ (1945,267){25,205}... % *4
+ (1970,768){0,1}... % 5
+ (1924,1179){-45,170}... % *6
+ (1793,1438){-1,1}... % 7
+ (1458,1556){-1,0}... % 8
+ (1170,1440){-140,-110}...{-115,-200} % *9
+ (906,1123)-- % 10
+ (847,1281){200,210}...{200,115} % 11
+ (1517,1793){1,0}...{200,-150} % 12
+ (2187,1596){55,-200}... % 13
+ (2285,946){0,-1}...{-90,-200} % 14
+ (2128,0){-195,-180}... % 15
+ (1517,-433){-1,0}...{-200,205} % 16
+ (1261,-335)--cycle); % 17
+
+endchar(0);
+
+"FMUI";
+
+charbegin( "I",1853h#, capheight*v#, baseline*v#);
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+
+adj_fill.A() % fixed x points
+ (1, 4) % fixed y points
+ () % tied points
+ () % verticals
+ ((3,5), (2,6)) % horizontals
+ ((1832,2541){-200,-155}... % 0
+ (1612,2395){-95,-50}... % *1
+ (1458,2344){-1,0}... % 2
+ (1261,2403){-200,95}... % 3
+ (690,2600){-1,0}... % 4
+ (315,2443){-9,-10}... % 5
+ (167,2204){-77,-160}...{-100,-295} % *6
+ (12,1812)-- % 7
+ (79,1773){100,265}... % 8
+ (315,2167){1,1}... % 9
+ (611,2285){1,0}... % 10
+ (821,2242){175,-55}...{200,-75} % *11
+ (1300,2069){200,105}...{200,185} % 12
+ (1872,2482)--cycle); % 13
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 1.202;
+t4 := 3;
+t5 := 6;
+t6 := 9;
+t7 := 10;
+t8 := 14;
+t9 := 16;
+
+adj_fill.B(1, 7) % fixed x points
+ (2, 3, 6) % fixed y points
+ () % tied points
+ ((5,8)) % verticals
+ ((4,9)) % horizontals
+ ((39,59){100,140}...{200,180} % 0
+ (433,493){200,325}... % 1
+ (630,236){1,-1}... % 2
+ (867,138){1,0}... % 3
+ (1143,276){1,1}... % 4
+ (1259,495){40,140}... % *5
+ (1300,827){0,1}... % 6
+ (1261,1300){-25,200}...{25,200} % 7
+ (1241,1773){200,225}...{200,125} % 8
+ (1734,2206)-- % 9
+ (1793,2187){-200,-190}... % 10
+ (1603,1962){-65,-105}...{0,-1} % *11
+ (1537,1773){5,-60}... % 12
+ (1556,1537){30,-200}... % 13
+ (1615,965){0,-1}... % 14
+ (1399,335){-1,-1}... % 15
+ (611,-39){-1,0}...{-100,90} % 16
+ (256,138){-50,-35}...{-50,-35} % 17
+ (59,0)--cycle); % 18
+
+endchar(0);
+
+"FMUJ";
+
+%charbegin( "J",1845h#, capheight*v#, depthy*v#);
+charbegin( "J",1845h#, capheight*v#, 2/3descender*v#); % DEK
+
+n := 5;
+t1 := 1;
+t2 := 5;
+t3 := 8;
+t4 := 10;
+t5 := 12;
+
+adj_fill.A() % fixed x points
+ (3) % fixed y points
+ () % tied points
+ () % verticals
+ ((2,4), (1,5)) % horizontals
+ ((1832,2325){-2,-1}... % 0
+ (1458,2206){-1,0}... % 1
+ (1328,2247){-75,40}... % *2
+ (1162,2364){-20,17}... % 3
+ (916,2539){-110,60}... % *4
+ (729,2600){-1,0}... % 5
+ (392,2417){-160,-170}...{-8,-20} % *6
+ (99,1931)-- % 7
+ (158,1891){11,20}... % 8
+ (380,2179){115,100}... % *9
+ (611,2285){1,0}... % 10
+ (946,2128){10,-8}...{200,-35} % 11
+ (1241,1970){200,65}...{2,1} % 12
+ (1832,2246)--cycle); % 13
+
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 20;
+t12 := 22;
+t13 := 24;
+
+adj_fill.B(7, 13) % fixed x points
+ (1) % fixed y points
+ () % tied points
+ ((2,12), (3,11), (5,9)) % verticals
+ ((4,10), (6,8)) % horizontals
+ ((1635,2029){-200,-165}...{-145,-200} % 0
+ (1123,1497){-3,-20}... % 1
+ (1221,788){5,-20}... % 2
+ (1320,197){0,-1}... % 3
+ (1182,-197){-1,-1}... % 4
+ (926,-295){-1,0}... % 5
+ (670,-197){-1,1}... % 6
+ (597,-32){-25,115}... % *7
+ (571,256){0,1}... % 8
+ (512,532){-1,1}... % 9
+ (335,591){-1,0}... % 10
+ (123,530){-120,-60}...{-200,-165} % *11
+ (-138,355)-- % 12
+ (-114,296){200,105}... % 13
+ (99,355){1,0}... % 14
+ (236,276){110,-200}... % 15
+ (296,-20){25,-200}... % 16
+ (414,-335){1,-1}... % 17
+ (788,-453){1,0}... % 18
+ (1340,-197){1,1}... % 19
+ (1596,374){0,1}... % 20
+ (1478,1044){-4,20}... % 21
+ (1418,1478){0,1}... % 22
+ (1490,1707){70,130}...{200,225} % *23
+ (1694,1990)--cycle); % 24
+
+endchar(0);
+
+"FMUK";
+
+charbegin( "K",2275h#, capheight*v#, baseline*v#);
+
+n := 15;
+t1 := 0;
+t2 := 2;
+t3 := 4.188;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 8;
+t8 := 11;
+t9 := 12;
+t10 := 13;
+t11 := 15;
+t12 := 17;
+t13 := 19;
+t14 := 21;
+t15 := 24;
+
+adj_fill.A(9) % fixed x points
+ (1, 10) % fixed y points
+ ((4,1), (5,2), (6,3), (7,4)) % tied points
+ ((7,12), (3,13), (1,15)) % verticals
+ ((8,11), (2,14)) % horizontals
+ ((2069,1891){0,1}... % 0
+ (1931,2226){-1,1}... % 1
+ (1418,2384){-1,0}... % 2
+ (946,2206){-1,-1}... % 3
+ (804,1873){-20,-200}...{7,-20} % *4
+ (867,1418){5,-40}...{5,-40} % 5
+ (887,1261){8,-20}...{32,-200} % 6
+ (965,926){0,-25}...{0,-25} % 7
+ (965,827){0,-1}...{-35,-200} % 8
+ (946,532){-2,-3}... % 9
+ (620,155){-170,-145}...{-200,-55} % *10
+ (276,-39){-7,1}...{-20,29} % 11
+ (-39,177)-- % 12
+ (197,453){10,-27}... % 13
+ (310,267){65,-65}... % *14
+ (453,197){1,0}... % 15
+ (611,256){1,1}... % 16
+ (709,591){0,1}... % 17
+ (611,1143){-6,20}...{1,20} % 18
+ (493,1694){7,20}... % 19
+ (867,2266){1,1}... % 20
+ (1635,2581){1,0}... % 21
+ (1973,2517){140,-60}...{12,-20} % *22
+ (2187,2344){15,-200}...{-6,-20} % 23
+ (2128,1911)--cycle); % 24
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 9;
+t5 := 13;
+t6 := 14;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (5,5), (6,3)) % tied points
+ () % verticals
+ ((3,4), (2,5)) % horizontals
+ ((965,827){20,9}... % 0
+ (1300,906){1,0}... % 1
+ (1537,827){1,-1}... % 2
+ (1675,355){3,-20}... % 3
+ (1778,73){70,-100}... % *4
+ (1950,-39){1,0}... % 5
+ (2158,37){120,75}...{1,1} % *6
+ (2423,256)-- % 7
+ (2423,335){-200,-155}... % 8
+ (2167,256){-1,0}... % 9
+ (2036,328){-55,65}... % *10
+ (1950,512){-45,200}...{-12,20} % 11
+ (1793,1005){-20,11}...{-1,0} % 12
+ (1615,1064){-165,-35}...{-165,-35} % 13
+ (965,926)--cycle); % 14
+
+n := 6;
+t1 := 0;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 14;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (3,2), (4,1), (6,5)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((965,926){200,80}...{200,80} % 0
+ (1753,1241){-200,175}... % 1
+ (1635,1478){-65,200}... % 2
+ (1537,1627){-1,1}... % 3
+ (1399,1675){-1,0}... % 4
+ (1139,1564){-130,-105}...{-12,-20} % *5
+ (887,1261)-- % 6
+ (867,1418){200,215}... % 7
+ (1286,1782){195,125}... % *8
+ (1635,1911){1,0}... % 9
+ (1793,1852){1,-1}... % 10
+ (1931,1537){5,-20}...{200,85} % 11
+ (2206,1399){-5,-20}...{-5,-20} % 12
+ (2187,1320){-145,-65}...{-145,-65} % 13
+ (1615,1064)--cycle); % 14
+
+endchar(0);
+
+"FMUL";
+
+charbegin( "L",2266h#, capheight*v#, baseline*v#);
+
+n := 7;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 10;
+t6 := 13;
+t7 := 14;
+
+adj_fill.A() % fixed x points
+ (4, 7) % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ ((3,5), (1,6)) % horizontals
+ ((20,59){100,240}...{200,240} % 0
+ (296,552){105,-5}...{105,-5} % 1
+ (709,532){220,-90}... % 2
+ (1224,355){230,-60}... % *3
+ (1615,296){1,0}... % 4
+ (2049,433){1,1}...{80,285} % 5
+ (2226,788)-- % 6
+ (2285,749){-100,-550}... % 7
+ (2178,319){-60,-170}... % *8
+ (2049,79){-1,-1}... % 9
+ (1655,-39){-1,0}... % 10
+ (1218,35){-265,75}... % *11
+ (611,256){-200,85}... % 12
+ (374,315){-1,0}...{-200,-330} % 13
+ (79,-20)--cycle); % 14
+
+n := 12;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 9;
+t5 := 12;
+t6 := 15;
+t7 := 16;
+t8 := 19;
+t9 := 22;
+t10 := 24;
+t11 := 27;
+t12 := 28;
+
+adj_fill.B(6, 7) % fixed x points
+ () % fixed y points
+ ((1,2), (12,1)) % tied points
+ ((5,8), (3,10), (2,11)) % verticals
+ ((6,7), (4,9)) % horizontals
+ ((296,552){200,30}... % 0
+ (570,621){115,45}... % *1
+ (749,729){1,1}... % 2
+ (827,926){0,1}... % 3
+ (670,1300){-100,185}... % 4
+ (538,1587){-45,125}... % *5
+ (493,1793){0,1}... % 6
+ (564,2025){70,125}... % *7
+ (768,2285){1,1}... % 8
+ (1556,2600){1,0}... % 9
+ (1931,2482){1,-1}... % 10
+ (2005,2314){20,-110}... % *11
+ (2009,2049){-60,-540}... % 12
+ (1990,1846){0,-70}... % *13
+ (2009,1773){1,-1}...{1,0} % 14
+ (2206,1734)-- % 15
+ (2206,1655){-100,-25}...{-100,-25} % 16
+ (1812,1556){-260,115}... % 17
+ (1694,1635){-1,1}... % 18
+ (1675,1950){70,610}... % 19
+ (1674,2183){-15,95}... % *20
+ (1615,2325){-1,1}... % 21
+ (1300,2423){-1,0}... % 22
+ (906,2266){-1,-1}... % 23
+ (788,1990){0,-1}... % 24
+ (828,1781){40,-125}... % *25
+ (946,1497){100,-205}...{-30,-415} % 26
+ (1084,985){-95,-115}...{180,135} % 27
+ (709,532)--cycle); % 28
+
+endchar(0);
+
+"FMUM";
+
+charbegin( "M",3686h#, capheight*v#, baseline*v#);
+
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 12;
+t8 := 14;
+t9 := 15;
+t10 := 17;
+t11 := 21;
+t12 := 23;
+t13 := 26;
+t14 := 31;
+t15 := 33;
+
+adj_fill.A(8, 15) % fixed x points
+ (1, 9) % fixed y points
+ ((4,1)) % tied points
+ ((7,10), (6,11), (3,13)) % verticals
+ ((5,12), (2,14)) % horizontals
+ ((39,0){3,4}... % 0
+ (296,158){1,0}... % 1
+ (434,106){80,-50}...{1,-1} % *2
+ (611,-39){160,140}...{160,140} % 3
+ (1241,512){3,5}... % 4
+ (1517,1714){0,1}... % 5
+ (1458,2167){-1,3}... % 6
+ (847,2600){-1,0}... % 7
+ (217,2325){-1,-1}... % 8
+ (0,1911){0,-1}... % 9
+ (51,1767){50,-90}... % *10
+ (197,1556){4,-5}... % 11
+ (335,1320){0,-1}... % 12
+ (266,1163){-65,-75}...{-2,-1} % *13
+ (79,1024)-- % 14
+ (158,965){2,1}... % 15
+ (488,1202){115,125}... % *16
+ (611,1458){0,1}... % 17
+ (565,1606){-45,85}... % *18
+ (433,1793){-6,7}... % 19
+ (302,1974){-45,80}... % *20
+ (256,2108){0,1}... % 21
+ (355,2285){1,1}... % 22
+ (571,2364){1,0}... % 23
+ (946,2226){1,-1}... % 24
+ (1135,1893){65,-205}... % *25
+ (1202,1418){0,-1}... % 26
+ (1145,793){-55,-250}... % *27
+ (985,433){-1,-1}...{-9,-5} % 28
+ (768,256){-1,1}... % 29
+ (587,402){-85,50}... % *30
+ (433,453){-1,0}... % 31
+ (226,348){-110,-100}...{-3,-5} % *32
+ (0,59)--cycle); % 33
+
+n := 10;
+t1 := 2;
+t2 := 5;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 16;
+t9 := 19.57;
+t10 := 21;
+
+adj_fill.B(10) % fixed x points
+ (6) % fixed y points
+ ((3,2), (5,1)) % tied points
+ ((2,8)) % verticals
+ ((4,7), (1,9)) % horizontals
+ ((1359,0){1,1}... % 0
+ (1482,102){55,35}... % *1
+ (1576,138){1,0}...{7,-6} % 2
+ (1832,-20){115,140}...{115,140} % 3
+ (2285,532){3,7}... % 4
+ (2522,1675){0,1}... % 5
+ (2482,2029){-1,6}... % 6
+ (2305,2423){-1,1}... % 7
+ (2069,2502){-1,0}... % 8
+ (1635,2344){-3,-2}...{-4,-5} % 9
+ (1458,2167)-- % 10
+ (1497,2009){3,7}... % 11
+ (1615,2187){1,1}... % 12
+ (1812,2285){1,0}... % 13
+ (2069,2167){2,-3}... % 14
+ (2157,1889){30,-190}... % *15
+ (2187,1418){0,-1}... % 16
+ (2128,611){-1,-4}...{-5,-4} % 17
+ (1970,315){-3,2}... % 18
+ (1773,433){-4,1}... % 19
+ (1635,433){-4,-2}...{-3,-4} % 20
+ (1320,79)--cycle); % 21
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 14;
+
+adj_fill.C() % fixed x points
+ (2, 6) % fixed y points
+ ((1,4), (4,2), (6,3)) % tied points
+ () % verticals
+ ((3,5)) % horizontals
+ ((3782,2167){-8,-3}... % 0
+ (3616,2133){-70,0}... % *1
+ (3507,2167){-1,1}... % 2
+ (3428,2325){-1,3}... % 3
+ (3329,2541){-9,10}... % 4
+ (3152,2620){-1,0}... % 5
+ (2719,2443){-10,-7}...{-3,-4} % 6
+ (2443,2199)-- % 7
+ (2482,2029){2,4}... % 8
+ (2679,2285){9,8}... % 9
+ (2935,2384){1,0}... % 10
+ (3054,2344){5,-4}... % 11
+ (3152,2128){1,-3}... % 12
+ (3231,1931){1,-1}...{5,-1} % 13
+ (3310,1872)--cycle); % 14
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 10;
+t6 := 14;
+
+adj_fill.D(1, 6) % fixed x points
+ () % fixed y points
+ ((3,3), (4,4)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((3704,355){-135,-100}...{-135,-100} % 0
+ (3172,-39){-55,100}...{-55,100} % 1
+ (2955,355){0,180}...{0,180} % 2
+ (2955,1064){0,1}...{1,5} % 3
+ (3014,1537){2,3}... % 4
+ (3310,1872){7,6}...{120,75} % 5
+ (3782,2167)-- % 6
+ (3782,2108){-4,-2}...{-1,-1} % 7
+ (3369,1812){-1,-2}... % 8
+ (3280,1511){-30,-185}... % *9
+ (3251,1084){0,-1}... % 10
+ (3290,571){1,-3}... % 11
+ (3408,355){2,-3}... % 12
+ (3467,335){7,2}...{2,1} % 13
+ (3704,433)--cycle); % 14
+
+endchar(0);
+
+"FMUN";
+
+charbegin( "N",2881h#, capheight*v#, baseline*v#);
+
+n := 16;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 12;
+t8 := 15;
+t9 := 17;
+t10 := 18;
+t11 := 20;
+t12 := 23;
+t13 := 25;
+t14 := 28;
+t15 := 31;
+t16 := 33;
+
+adj_fill.A(1, 9) % fixed x points
+ (10, 16) % fixed y points
+ ((4,1), (5,2)) % tied points
+ ((8,11), (7,12), (3,14), (6,13)) % verticals
+ ((6,13), (2,15)) % horizontals
+ ((374,158){100,-135}... % 0
+ (690,-20){1,0}... % 1
+ (827,20){100,65}... % 2
+ (1340,414){100,85}... % 3
+ (1399,512){100,195}... % 4
+ (1556,1359){0,1}...{-50,320} % 5
+ (1517,1832){-10,55}...{-10,55} % 6
+ (1478,2049){-75,245}... % 7
+ (1261,2423){-1,1}... % 8
+ (808,2600){-1,0}... % 9
+ (256,2364){-1,-1}... % 10
+ (67,2118){-65,-120}... % *11
+ (0,1891){0,-1}... % 12
+ (41,1750){40,-80}... % *13
+ (158,1576){140,-170}... % 14
+ (315,1300){0,-1}... % 15
+ (256,1162){-1,-1}...{-125,-70} % 16
+ (99,1044)-- % 17
+ (158,985){140,85}... % 18
+ (493,1221){1,1}... % 19
+ (611,1478){0,1}... % 20
+ (414,1793){-200,235}... % 21
+ (297,1959){-40,75}... % *22
+ (256,2088){0,1}... % 23
+ (355,2285){1,1}... % 24
+ (611,2384){1,0}... % 25
+ (946,2226){1,-1}... % 26
+ (1193,1758){85,-300}... % *27
+ (1281,1044){0,-1}... % 28
+ (1240,609){-40,-175}... % *29
+ (1123,355){-1,-1}... % 30
+ (867,217){-1,0}... % 31
+ (709,276){-1,1}...{-50,225} % 32
+ (611,453)--cycle); % 33
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 16;
+
+adj_fill.B() % fixed x points
+ (2) % fixed y points
+ ((1,4), (5,2), (6,1), (8,3)) % tied points
+ () % verticals
+ ((4,7), (3,8)) % horizontals
+ ((2935,2088){0,15}...{0,15} % 0
+ (2935,2147){-100,-50}... % 1
+ (2778,2108){-1,0}... % 2
+ (2660,2167){-1,1}... % 3
+ (2600,2325){-70,210}... % 4
+ (2502,2522){-1,1}... % 5
+ (2387,2580){-75,20}... % *6
+ (2206,2600){-1,0}... % 7
+ (1682,2332){-8,-10}...{-90,-125} % 8
+ (1478,2049)-- % 9
+ (1517,1832){100,225}... % 10
+ (1773,2246){1,1}... % 11
+ (2069,2384){1,0}... % 12
+ (2206,2325){1,-1}... % 13
+ (2305,2147){50,-170}... % 14
+ (2403,1891){1,-1}...{1,0} % 15
+ (2522,1872)--cycle); % 16
+
+n := 6;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 8;
+t5 := 11;
+t6 := 15;
+
+adj_fill.C(1, 6) % fixed x points
+ () % fixed y points
+ ((3,4), (4,3)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((2955,414){-100,-80}... % 0
+ (2738,315){-1,0}... % 1
+ (2679,335){-1,1}... % 2
+ (2533,624){-50,190}... % *3
+ (2482,1084){0,1}... % 4
+ (2541,1734){50,240}... % 5
+ (2620,1852){100,85}...{80,60} % 6
+ (2935,2088)-- % 7
+ (2522,1872){-100,-105}... % 8
+ (2266,1576){-100,-140}... % 9
+ (2226,1497){-50,-200}... % 10
+ (2206,1064){0,-1}... % 11
+ (2226,473){10,-240}... % 12
+ (2226,374){100,-180}...{60,-100} % 13
+ (2463,-20){125,90}...{100,80} % 14
+ (2955,335)--cycle); % 15
+
+endchar(0);
+
+"FMUO";
+
+%charbegin( "O",2862h#, programem*v#, baseline );
+charbegin( "O",2862h#, capheight*v#, baseline ); % DEK
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+
+adj_fill.A(1, 4) % fixed x points
+ () % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((3,5), (2,6)) % verticals
+ () % horizontals
+ ((276,453){6,2}... % 0
+ (591,827){0,1}... % 1
+ (551,984){-40,90}... % *2
+ (433,1182){-5,7}... % 3
+ (242,1456){-60,100}... % *4
+ (197,1576){0,1}... % 5
+ (329,1929){125,170}...{5,3} % *6
+ (690,2246)-- % 7
+ (768,2206){-4,-3}... % 8
+ (580,2022){-65,-90}... % *9
+ (512,1852){0,-1}... % 10
+ (557,1668){45,-110}... % *11
+ (690,1418){5,-8}... % 12
+ (867,1024){0,-1}... % 13
+ (774,767){-90,-140}...{-9,-8} % *14
+ (512,473)--cycle); % 15
+
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 10;
+t6 := 13;
+t7 := 14;
+t8 := 15;
+t9 := 16;
+t10 := 18;
+t11 := 21;
+t12 := 25;
+t13 := 28;
+
+adj_fill.B() % fixed x points
+ (7, 8) % fixed y points
+ ((1,2), (2,1), (13,3)) % tied points
+ ((6,9), (4,11)) % verticals
+ ((5,10), (3,12), (1,13)) % horizontals
+ ((276,453){60,5}... % 0
+ (512,473){1,0}... % 1
+ (638,446){120,-40}... % *2
+ (985,315){8,-3}... % 3
+ (1576,197){1,0}... % 4
+ (2214,611){4,9}... % 5
+ (2325,1281){0,1}... % 6
+ (2263,1765){-60,205}... % *7
+ (2088,2088){-1,1}... % 8
+ (1849,2219){-150,45}... % *9
+ (1497,2266){-1,0}... % 10
+ (1182,2254){-1,0}... % 11
+ (973,2303){-75,43}... % *12
+ (887,2423){0,1}...{3,4} % 13
+ (1143,2758)-- % 14
+ (1202,2758){-2,-3}... % 15
+ (1182,2620){6,-7}... % 16
+ (1300,2561){8,-2}... % 17
+ (1773,2510){12,-1}... % 18
+ (2150,2434){160,-57}... % *19
+ (2403,2285){1,-1}... % 20
+ (2660,1537){0,-1}... % 21
+ (2572,893){-85,-270}... % *22
+ (2325,473){-9,-8}... % 23
+ (1792,93){-250,-130}... % *24
+ (1340,-39){-1,0}... % 25
+ (749,79){-5,2}... % 26
+ (552,158){-6,2}...{-1,0} % 27
+ (355,197)--cycle); % 28
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,2), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((-59,59){3,4}...{1,1} % 0
+ (276,453)-- % 1
+ (355,197){-1,0}...{-2,-3} % 2
+ (0,0)--cycle); % 3
+
+endchar(0);
+
+"FMUP";
+
+charbegin( "P",2864h#, capheight*v#, descender*v#);
+
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 5;
+t6 := 7;
+t7 := 10;
+t8 := 12;
+t9 := 13;
+t10 := 15;
+t11 := 17;
+t12 := 19;
+t13 := 22;
+t14 := 24;
+
+adj_fill.A(8) % fixed x points
+ (1, 9) % fixed y points
+ ((1,5), (2,1), (3,2), (4,3), (14,4)) % tied points
+ ((7,10), (6,11), (3,13)) % verticals
+ ((5,12)) % horizontals
+ ((1458,-492){-1,8}... % 0
+ (1418,197){0,1}... % 1
+ (1418,1852){0,1}... % 2
+ (1399,2088){-1,5}... % 3
+ (1202,2482){-1,1}... % 4
+ (788,2620){-1,0}... % 5
+ (236,2364){-1,-1}... % 6
+ (0,1891){0,-1}... % 7
+ (41,1753){40,-80}... % *8
+ (158,1576){4,-5}... % 9
+ (315,1320){0,-1}... % 10
+ (252,1177){-60,-75}...{-3,-2} % *11
+ (79,1024)-- % 12
+ (158,985){2,1}... % 13
+ (474,1223){110,130}... % *14
+ (591,1497){0,1}... % 15
+ (394,1812){-4,5}... % 16
+ (236,2088){0,1}... % 17
+ (335,2305){1,1}... % 18
+ (571,2403){1,0}... % 19
+ (926,2246){1,-1}... % 20
+ (1072,1977){50,-170}... % *21
+ (1123,1576){0,-1}... % 22
+ (1123,296){0,-1}...{-1,-7} % 23
+ (1084,-394)--cycle); % 24
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (2,5)) % tied points
+ () % verticals
+ () % horizontals
+ ((1024,-709){1,2}...{1,7} % 0
+ (1084,-394)-- % 1
+ (1458,-492){-4,-3}...{-90,-65} % 2
+ (1103,-749)--cycle); % 3
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+
+adj_fill.C(1) % fixed x points
+ () % fixed y points
+ ((1,7), (4,3), (5,2), (8,6)) % tied points
+ ((2,7)) % verticals
+ ((3,6), (1,8)) % horizontals
+ ((2857,2049){-3,-1}... % 0
+ (2600,2069){-1,1}... % 1
+ (2561,2206){-1,8}... % 2
+ (2463,2541){-1,1}... % 3
+ (2266,2620){-1,0}... % 4
+ (1615,2325){-7,-6}...{-3,-4} % 5
+ (1399,2088)-- % 6
+ (1418,1852){2,4}... % 7
+ (1773,2305){4,3}... % 8
+ (2009,2403){1,0}... % 9
+ (2187,2344){1,-1}... % 10
+ (2246,2108){1,-16}... % 11
+ (2305,1872){1,-1}...{5,-1} % 12
+ (2443,1773)--cycle); % 13
+
+n := 13;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 17;
+t9 := 19;
+t10 := 21;
+t11 := 23;
+t12 := 24;
+t13 := 26;
+
+adj_fill.D(1) % fixed x points
+ (13) % fixed y points
+ ((6,6), (7,7), (11,1)) % tied points
+ ((5,8), (4,9)) % verticals
+ ((3,10), (2,12)) % horizontals
+ ((335,79){1,2}... % 0
+ (591,473){1,1}... % 1
+ (946,630){1,0}... % 2
+ (1418,512){3,-1}... % 3
+ (1957,335){190,-55}... % *4
+ (2167,296){1,0}... % 5
+ (2403,394){1,1}... % 6
+ (2482,591){0,1}... % 7
+ (2437,763){-45,100}... % *8
+ (2305,985){-5,7}... % 9
+ (2128,1340){0,1}... % 10
+ (2210,1539){80,110}... % *11
+ (2443,1773){5,4}...{105,70} % 12
+ (2857,2049)-- % 13
+ (2876,1990){-4,-2}... % 14
+ (2561,1773){-1,-1}... % 15
+ (2444,1636){-40,-60}... % *16
+ (2403,1537){0,-1}... % 17
+ (2541,1221){2,-3}... % 18
+ (2679,847){0,-1}... % 19
+ (2364,197){-6,-5}... % 20
+ (1970,20){-1,0}... % 21
+ (1853,42){-140,45}... % *22
+ (1418,197){-6,2}... % 23
+ (827,355){-1,0}... % 24
+ (571,236){-1,-1}...{-3,-4} % 25
+ (374,0)--cycle); % 26
+
+endchar(0);
+
+"FMUQ";
+
+%charbegin( "Q",2862h#, programem*v#, descender*v#);
+charbegin( "Q",2862h#, capheight*v#, 1/5descender*v#); % DEK
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+
+adj_fill.A(1, 4) % fixed x points
+ () % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((3,5), (2,6)) % verticals
+ () % horizontals
+ ((276,453){6,2}... % 0
+ (591,827){0,1}... % 1
+ (551,984){-40,90}... % *2
+ (433,1182){-5,7}... % 3
+ (242,1456){-60,100}... % *4
+ (197,1576){0,1}... % 5
+ (329,1929){125,170}...{5,3} % *6
+ (690,2246)-- % 7
+ (768,2206){-4,-3}... % 8
+ (580,2022){-65,-90}... % *9
+ (512,1852){0,-1}... % 10
+ (557,1668){45,-110}... % *11
+ (690,1418){5,-8}... % 12
+ (867,1024){0,-1}... % 13
+ (774,767){-90,-140}...{-9,-8} % *14
+ (512,473)--cycle); % 15
+
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+t8 := 16;
+t9 := 17;
+t10 := 19;
+t11 := 22;
+t12 := 25;
+t13 := 28;
+
+adj_fill.B() % fixed x points
+ (7, 8) % fixed y points
+ ((1,2), (2,1), (13,3)) % tied points
+ ((6,9), (4,11)) % verticals
+ ((5,10), (3,12), (2,13)) % horizontals
+ ((276,453){60,5}... % 0
+ (512,473){1,0}... % 1
+ (638,446){120,-40}... % *2
+ (985,315){8,-3}... % 3
+ (1576,197){1,0}... % 4
+ (2214,611){4,9}... % 5
+ (2325,1281){0,1}... % 6
+ (2263,1765){-60,205}... % *7
+ (2088,2088){-1,1}... % 8
+ (1849,2219){-150,45}... % *9
+ (1497,2266){-1,0}... % 10
+ (1182,2254){-1,0}... % 11
+ (973,2303){-75,43}... % *12
+ (887,2423){0,1}... % 13
+ (924,2508){65,85}...{5,6} % *14
+ (1143,2758)-- % 15
+ (1202,2758){-2,-3}... % 16
+ (1182,2620){6,-7}... % 17
+ (1300,2561){8,-2}... % 18
+ (1773,2510){12,-1}... % 19
+ (2150,2434){160,-57}... % *20
+ (2403,2285){1,-1}... % 21
+ (2660,1537){0,-1}...{-2,-3} % 22
+ (2325,473){-9,-8}... % 23
+ (1792,93){-250,-130}... % *24
+ (1340,-39){-1,0}... % 25
+ (749,79){-5,2}... % 26
+ (552,158){-6,2}...{-1,0} % 27
+ (355,197)--cycle); % 28
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,2), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((-59,59){3,4}...{1,1} % 0
+ (276,453)-- % 1
+ (355,197){-1,0}...{-2,-3} % 2
+ (0,0)--cycle); % 3
+
+n := 0;
+
+adj_fill.D() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((2797,138){-3,-2}... % 0
+ (2522,39){-1,0}... % 1
+ (2343,112){-100,70}...{-6,7} % *2
+ (2128,315)-- % 3
+ (1773,118){8,-8}... % 4
+ (2010,-49){150,-80}...{9,-3} % *5
+ (2364,-197){7,4}...{6,4} % 6
+ (2797,39)--cycle); % 7
+
+endchar(0);
+
+"FMUR";
+
+charbegin( "R",2866h#, capheight*v#, baseline*v#);
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 19;
+t11 := 21;
+t12 := 24;
+t13 := 29;
+t14 := 31;
+
+adj_fill.A(7, 14) % fixed x points
+ (1, 8) % fixed y points
+ ((12,1)) % tied points
+ ((6,9), (5,10), (3,12)) % verticals
+ ((4,11), (2,13)) % horizontals
+ ((59,0){3,4}... % 0
+ (335,158){1,0}...{1,-1} % 1
+ (611,-39){155,130}...{5,4} % 2
+ (1221,473){2,3}... % 3
+ (1441,1012){75,320}... % *4
+ (1517,1734){0,1}... % 5
+ (1281,2403){-1,1}... % 6
+ (827,2600){-1,0}... % 7
+ (225,2332){-1,-1}... % 8
+ (0,1872){0,-1}... % 9
+ (158,1576){3,-4}... % 10
+ (315,1320){0,-1}...{-7,-4} % 11
+ (99,1024)-- % 12
+ (177,965){5,3}... % 13
+ (480,1212){105,125}... % *14
+ (591,1458){0,1}... % 15
+ (545,1595){-45,80}... % *16
+ (414,1773){-8,9}... % 17
+ (282,1951){-45,80}... % *18
+ (236,2088){0,1}... % 19
+ (339,2293){1,1}... % 20
+ (591,2384){1,0}... % 21
+ (965,2206){1,-1}... % 22
+ (1140,1888){60,-200}... % *23
+ (1202,1418){0,-1}... % 24
+ (1172,903){-30,-215}... % *25
+ (1084,571){-3,-6}...{-5,-3} % 26
+ (768,236){-7,8}... % 27
+ (605,398){-70,55}... % *28
+ (493,453){-1,0}... % 29
+ (270,349){-125,-100}...{-3,-4} % *30
+ (0,59)--cycle); % 31
+
+n := 6;
+t1 := 0;
+t2 := 6;
+t3 := 8;
+t4 := 9;
+t5 := 11;
+t6 := 15;
+
+adj_fill.B() % fixed x points
+ (4) % fixed y points
+ ((1,5), (3,2), (4,3), (6,4)) % tied points
+ () % verticals
+ ((2,5), (1,6)) % horizontals
+ ((2837,1970){-10,-2}... % 0
+ (2664,1961){-70,10}... % *1
+ (2561,2009){-3,4}... % 2
+ (2542,2063){-10,60}... % *3
+ (2522,2246){-1,8}... % 4
+ (2443,2502){-5,6}... % 5
+ (2226,2600){-1,0}... % 6
+ (1655,2325){-1,-1}...{-5,-6} % 7
+ (1478,2128)-- % 8
+ (1517,1891){2,4}... % 9
+ (1753,2266){1,1}... % 10
+ (1990,2384){1,0}... % 11
+ (2147,2285){1,-2}... % 12
+ (2206,2088){1,-7}... % 13
+ (2266,1832){1,-1}...{9,-1} % 14
+ (2403,1773)--cycle); % 15
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 5;
+t7 := 9;
+
+adj_fill.C(5, 6) % fixed x points
+ () % fixed y points
+ ((1,11), (3,6), (4,7), (5,8), (6,9), (7,10))% tied points
+ ((2,7)) % verticals
+ () % horizontals
+ ((2541,630){-2,6}...{-1,24} % 0
+ (2482,1359){-7,6}... % 1
+ (2147,1497){-1,0}... % 2
+ (1852,1497){-1.932,-.3624}...{-90,-35} % 3
+ (1497,1359)-- % 4
+ (1497,1261){4,1}... % 5
+ (1832,1320){1,0}... % 6
+ (2128,1221){1,-1}... % 7
+ (2206,1103){1,-5}...{-1,-21} % 8
+ (2226,394)--cycle); % 9
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+
+adj_fill.D() % fixed x points
+ () % fixed y points
+ ((1,7), (2,4), (3,5), (4,6)) % tied points
+ () % verticals
+ () % horizontals
+ ((1852,1497){2,1}... % 0
+ (2403,1773){5,3}...{110,50} % 1
+ (2837,1970)-- % 2
+ (2876,1911){-8,-3}... % 3
+ (2561,1773){-7,-4}...{-5,-4} % 4
+ (2147,1497)--cycle); % 5
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.E() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (3,1), (4,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((1478,2128){-70,-180}...{-70,-180} % 0
+ (1202,1418)-- % 1
+ (1202,1418){80,120}...{80,120} % 2
+ (1517,1891)--cycle); % 3
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.F() % fixed x points
+ () % fixed y points
+ ((1,8), (2,1), (3,1), (4,9)) % tied points
+ () % verticals
+ () % horizontals
+ ((1497,1359){-75,15}...{-75,15} % 0
+ (1202,1418)-- % 1
+ (1202,1418){75,-40}...{75,-40} % 2
+ (1497,1261)--cycle); % 3
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+
+adj_fill.G() % fixed x points
+ () % fixed y points
+ ((1,13), (2,10), (3,11), (4,12)) % tied points
+ () % verticals
+ () % horizontals
+ ((2463,-39){-60,110}...{-60,110} % 0
+ (2226,394)-- % 1
+ (2541,630){2,-6}... % 2
+ (2643,397){50,-80}...{1,0} % *3
+ (2738,315)--cycle); % 4
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.H() % fixed x points
+ () % fixed y points
+ ((1,13), (2,12)) % tied points
+ () % verticals
+ () % horizontals
+ ((2955,335){-125,-95}...{-125,-95} % 0
+ (2463,-39)-- % 1
+ (2738,315){1,0}...{5,2} % 2
+ (2955,394)--cycle); % 3
+
+endchar(0);
+
+"FMUS";
+
+charbegin( "S",2868h#, capheight*v#, baseline*v#);
+n := 16;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 14;
+t9 := 15;
+t10 := 17;
+t11 := 19;
+t12 := 21;
+t13 := 23;
+t14 := 25;
+t15 := 27;
+t16 := 29;
+
+adj_fill.A(1, 8) % fixed x points
+ (9) % fixed y points
+ ((1,2), (16,1)) % tied points
+ ((7,10), (4,13), (2,15)) % verticals
+ ((5,12), (6,11), (3,14), (1,16)) % horizontals
+ ((1458,2620){-200,-40}... % 0
+ (532,2167){-1,-1}... % 1
+ (142,1202){0,-1}... % 2
+ (504,236){1,-1}... % 3
+ (1281,-39){1,0}... % 4
+ (2384,355){1,1}... % 5
+ (2679,1084){0,1}... % 6
+ (2561,1418){-1,1}... % 7
+ (2167,1576){-1,0}... % 8
+ (1694,1497){-200,-45}... % 9
+ (1261,1418){-1,0}... % 10
+ (1084,1478){-1,1}... % 11
+ (1024,1635){0,1}... % 12
+ (1084,1812){1,1}...{200,55} % 13
+ (1202,1891)-- % 14
+ (1154,1938){-200,-55}... % 15
+ (867,1773){-1,-1}... % 16
+ (749,1497){0,-1}... % 17
+ (847,1281){1,-1}... % 18
+ (1103,1202){1,0}... % 19
+ (1537,1261){200,40}... % 20
+ (1950,1320){1,0}... % 21
+ (2266,1202){1,-1}... % 22
+ (2403,835){0,-1}... % 23
+ (2226,374){-1,-1}... % 24
+ (1576,158){-1,0}... % 25
+ (788,473){-1,1}... % 26
+ (414,1458){0,1}... % 27
+ (670,2147){1,1}...{1,0} % 28
+ (1143,2384)--cycle); % 29
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 6;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (2,2), (3,1), (4,3)) % tied points
+ () % verticals
+ ((1,4)) % horizontals
+ ((2325,2246){-1,0}... % 0
+ (2050,2322){-220,95}...{-200,105} % *1
+ (1458,2620)-- % 2
+ (1143,2384){1,0}... % 3
+ (1354,2329){135,-55}... % *4
+ (1675,2167){200,-115}...{200,-20} % 5
+ (2147,1950)--cycle); % 6
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,4), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((2648,2529){-120,-425}... % 0
+ (2541,2325){-1,-1}...{-1,0} % 1
+ (2325,2246)-- % 2
+ (2147,1950){220,85}... % 3
+ (2522,2167){1,1}...{100,375} % 4
+ (2699,2482)--cycle); % 5
+
+endchar(0);
+
+"FMUT";
+
+charbegin( "T",2277h#, capheight*v#, baseline*v#);
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 8;
+t8 := 10;
+t9 := 11;
+t10 := 12;
+t11 := 12.9;
+t12 := 15;
+
+adj_fill.A(1, 6, 12) % fixed x points
+ (1, 5) % fixed y points
+ ((9,1), (10,2)) % tied points
+ ((4,7)) % verticals
+ ((3,8), (2,11)) % horizontals
+ ((2403,2660){-200,-220}... % 0
+ (2009,2463){-1,0}... % 1
+ (1576,2522){-200,40}... % 2
+ (946,2600){-1,0}... % 3
+ (276,2344){-1,-1}... % 4
+ (20,1812){0,-1}...{200,-155} % 5
+ (177,1418)-- % 6
+ (414,1655){-200,80}... % 7
+ (177,1970){0,1}... % 8
+ (276,2206){1,1}... % 9
+ (729,2364){1,0}...{200,-70} % 10
+ (1320,2266){40,-10}...{40,-10} % 11
+ (1478,2226){200,-35}... % 12
+ (1889,2189){170,5}...{200,120} % *13
+ (2147,2246){65,85}...{65,85} % 14
+ (2403,2581)--cycle); % 15
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 14;
+t8 := 16;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((1,4), (4,1), (5,2), (8,3)) % tied points
+ ((3,6), (2,7)) % verticals
+ () % horizontals
+ ((1044,473){200,125}... % 0
+ (1246,648){70,90}... % *1
+ (1320,827){0,1}... % 2
+ (1274,963){-45,80}... % *3
+ (1143,1143){-200,230}...{-35,200} % 4
+ (867,1556){45,200}... % 5
+ (1019,1899){115,180}...{1,1} % *6
+ (1320,2266)-- % 7
+ (1478,2226){-200,-135}... % 8
+ (1232,2000){-85,-115}... % *9
+ (1143,1773){0,-1}... % 10
+ (1183,1641){40,-75}... % *11
+ (1300,1478){200,-230}... % 12
+ (1505,1202){70,-120}... % *13
+ (1576,1005){0,-1}... % 14
+ (1468,760){-105,-145}...{-200,-180} % *15
+ (1162,433)--cycle); % 16
+
+n := 8;
+t1 := 2;
+t2 := 4;
+t3 := 6;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 13;
+
+adj_fill.C() % fixed x points
+ (3, 8) % fixed y points
+ ((5,4), (6,3)) % tied points
+ () % verticals
+ ((2,4), (1,7)) % horizontals
+ ((2187,493){-200,-230}... % 0
+ (1857,162){-160,-135}...{-200,-95} % *1
+ (1556,-39){-200,25}... % 2
+ (1103,138){-200,110}... % 3
+ (768,236){-1,0}... % 4
+ (568,181){-115,-55}...{-200,-155} % *5
+ (315,20)-- % 6
+ (276,79){200,210}...{200,165} % 7
+ (729,493){200,15}...{200,-55} % 8
+ (1044,473){30,-10}...{30,-10} % 9
+ (1162,433){200,-90}... % 10
+ (1655,276){1,0}... % 11
+ (1883,347){125,70}...{200,195} % *12
+ (2147,552)--cycle); % 13
+
+endchar(0);
+
+"FMUU";
+
+charbegin( "U",2191h#, capheight*v#, baseline*v#);
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 9;
+t5 := 11;
+t6 := 14;
+t7 := 16;
+
+adj_fill.A(1, 4) % fixed x points
+ () % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((3,5), (2,6)) % verticals
+ () % horizontals
+ ((99,433){9,1}... % 0
+ (355,611){1,1}... % 1
+ (493,985){0,1}... % 2
+ (447,1185){-45,120}... % *3
+ (315,1458){-4,7}... % 4
+ (118,1931){0,1}... % 5
+ (195,2139){75,120}... % *6
+ (414,2403){1,1}...{5,3} % 7
+ (709,2640)-- % 8
+ (749,2581){-4,-3}... % 9
+ (591,2443){-1,-1}... % 10
+ (433,2108){0,-1}... % 11
+ (571,1714){1,-2}... % 12
+ (704,1394){45,-145}... % *13
+ (749,1143){0,-1}...{-1,-2} % 14
+ (690,867){-90,-105}...{-90,-105} % 15
+ (335,453)--cycle); % 16
+
+n := 6;
+t1 := 2;
+t2 := 3;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 14;
+
+adj_fill.B(2, 4, 6) % fixed x points
+ () % fixed y points
+ ((1,4), (2,3)) % tied points
+ ((3,5)) % verticals
+ () % horizontals
+ ((2364,355){-135,-100}...{-135,-100} % 0
+ (1832,-39){-60,130}...{-60,130} % 1
+ (1596,473){-5,50}...{-5,50} % 2
+ (1576,670){2,6}... % 3
+ (1596,985){0,1}...{-1,13} % 4
+ (1556,2266){120,85}...{120,85} % 5
+ (2029,2600)-- % 6
+ (2088,2561){-1,-1}... % 7
+ (1931,2325){-1,-3}... % 8
+ (1872,1773){0,-1}... % 9
+ (1872,1024){0,-1}... % 10
+ (1891,788){1,-5}... % 11
+ (2049,394){6,-7}... % 12
+ (2167,355){7,1}...{5,3} % 13
+ (2364,433)--cycle); % 14
+
+n := 8;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+
+adj_fill.C() % fixed x points
+ (8) % fixed y points
+ ((1,2), (2,1), (4,3), (5,4)) % tied points
+ () % verticals
+ ((3,6), (1,7)) % horizontals
+ ((-197,99){75,85}...{75,85} % 0
+ (99,433){9,1}... % 1
+ (335,453){1,0}... % 2
+ (690,355){5,-2}... % 3
+ (1064,236){1,0}... % 4
+ (1359,394){1,1}...{2,6} % 5
+ (1576,670)-- % 6
+ (1596,473){-110,-110}...{-110,-110} % 7
+ (1162,39){-5,-4}... % 8
+ (946,-39){-1,0}... % 9
+ (473,79){-5,2}... % 10
+ (39,197){-1,0}... % 11
+ (-46,156){-50,-40}...{-4,-5} % *12
+ (-158,39)--cycle); % 13
+
+endchar(0);
+
+"FMUV";
+
+charbegin( "V",2878h#, capheight*v#, baseline*v#);
+
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 15;
+t9 := 19;
+t10 := 21;
+t11 := 24;
+t12 := 27;
+
+adj_fill.A(6, 12) % fixed x points
+ (1, 7, 12) % fixed y points
+ ((1,3), (2,1), (12,2)) % tied points
+ ((5,8), (4,9), (2,11)) % verticals
+ ((3,10)) % horizontals
+ ((985,611){80,70}...{80,70} % 0
+ (1300,887){1,2}... % 1
+ (1517,1852){0,1}... % 2
+ (1300,2443){-1,1}... % 3
+ (847,2600){-1,0}... % 4
+ (256,2364){-1,-1}... % 5
+ (67,2118){-65,-120}... % *6
+ (0,1891){0,-1}... % 7
+ (51,1752){50,-85}... % *8
+ (197,1556){7,-8}... % 9
+ (335,1320){0,-1}... % 10
+ (271,1179){-60,-70}...{-9,-5} % *11
+ (99,1044)-- % 12
+ (158,985){9,5}... % 13
+ (489,1234){115,125}... % *14
+ (611,1478){0,1}... % 15
+ (570,1610){-40,75}... % *16
+ (453,1773){-7,8}... % 17
+ (307,1973){-50,90}... % *18
+ (256,2128){0,1}... % 19
+ (335,2285){1,1}... % 20
+ (591,2384){1,0}... % 21
+ (1005,2206){1,-1}... % 22
+ (1151,1948){50,-160}... % *23
+ (1202,1576){0,-1}... % 24
+ (1172,1135){-30,-180}... % *25
+ (1084,867){-2,-3}...{-1,0} % 26
+ (670,630)--cycle); % 27
+
+n := 5;
+t1 := 0;
+t2 := 3;
+t3 := 7;
+t4 := 10;
+t5 := 12;
+
+adj_fill.B() % fixed x points
+ (5) % fixed y points
+ ((1,5), (3,1), (5,4)) % tied points
+ () % verticals
+ ((2,4)) % horizontals
+ ((2955,2364){-2,-1}... % 0
+ (2776,2354){-100,25}... % *1
+ (2561,2463){-4,3}... % 2
+ (2206,2600){-1,0}... % 3
+ (1964,2518){-135,-80}... % *4
+ (1675,2285){-1,-1}...{-5,-6} % 5
+ (1478,2088)-- % 6
+ (1517,1852){4,9}... % 7
+ (1753,2206){1,1}... % 8
+ (1881,2308){60,35}... % *9
+ (1990,2344){1,0}... % 10
+ (2325,2206){3,-2}...{1,0} % 11
+ (2620,2088)--cycle); % 12
+
+n := 12;
+t1 := 1;
+t2 := 2;
+t3 := 6;
+t4 := 9;
+t5 := 11;
+t6 := 13;
+t7 := 14;
+t8 := 17;
+t9 := 19;
+t10 := 23;
+t11 := 27;
+t12 := 28;
+
+adj_fill.C() % fixed x points
+ (12) % fixed y points
+ ((1,2), (2,3), (6,4), (7,5)) % tied points
+ ((5,8), (4,9)) % verticals
+ ((3,10), (1,11)) % horizontals
+ ((197,217){7,8}...{8,5} % 0
+ (670,630){1,0}... % 1
+ (985,611){1,0}... % 2
+ (1123,569){115,-55}... % *3
+ (1438,394){7,-4}... % 4
+ (1760,232){135,-55}... % *5
+ (1970,177){1,0}... % 6
+ (2226,276){1,1}... % 7
+ (2314,476){30,140}... % *8
+ (2344,827){0,1}... % 9
+ (2325,1143){-1,12}... % 10
+ (2305,1517){0,1}...{3,10} % 11
+ (2344,1773){70,80}...{70,80} % 12
+ (2620,2088){85,70}...{85,70} % 13
+ (2955,2364)-- % 14
+ (2955,2305){-3,-2}... % 15
+ (2797,2167){-1,-1}... % 16
+ (2581,1675){0,-1}... % 17
+ (2620,1300){1,-6}... % 18
+ (2679,867){0,-1}... % 19
+ (2600,532){-1,-2}... % 20
+ (2443,315){-4,-3}... % 21
+ (2009,0){-4,-3}... % 22
+ (1812,-39){-1,0}... % 23
+ (1570,11){-140,50}... % *24
+ (1261,158){-7,4}... % 25
+ (912,334){-145,60}... % *26
+ (690,394){-1,0}...{-7,-8} % 27
+ (236,158)--cycle); % 28
+
+endchar(0);
+
+"FMUW";
+
+charbegin( "W",3673h#, capheight*v#, baseline*v#);
+
+n := 14;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 11;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 20;
+t11 := 22;
+t12 := 25;
+t13 := 27.97;
+t14 := 28;
+
+adj_fill.A(7, 14) % fixed x points
+ (1, 8, 13) % fixed y points
+ ((1,4), (2,1), (3,2), (14,3)) % tied points
+ ((6,9), (5,10), (2,12)) % verticals
+ ((4,11)) % horizontals
+ ((788,453){105,80}...{105,80} % 0
+ (1202,768){135,200}... % 1
+ (1407,1275){70,305}...{0,1} % *2
+ (1478,1970){-5,45}...{-5,45} % 3
+ (1458,2147){-70,200}... % 4
+ (1261,2463){-1,1}... % 5
+ (887,2600){-1,0}... % 6
+ (256,2344){-1,-1}... % 7
+ (20,1891){0,-1}... % 8
+ (71,1738){50,-90}... % *9
+ (217,1537){200,-230}... % 10
+ (335,1320){0,-1}... % 11
+ (276,1162){-1,-1}...{-200,-105} % 12
+ (99,1044)-- % 13
+ (177,985){200,80}... % 14
+ (473,1202){1,1}... % 15
+ (611,1478){0,1}... % 16
+ (565,1619){-45,80}... % *17
+ (433,1793){-200,215}... % 18
+ (317,1951){-40,75}... % *19
+ (276,2088){0,1}... % 20
+ (355,2285){1,1}... % 21
+ (630,2384){1,0}... % 22
+ (1005,2206){1,-1}... % 23
+ (1136,1957){45,-160}... % *24
+ (1182,1576){0,-1}... % 25
+ (1121,1048){-60,-220}... % *26
+ (946,709){-1,-1}...{-200,5} % 27
+ (473,512)--cycle); % 28
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,6), (2,2), (3,1), (4,5)) % tied points
+ () % verticals
+ () % horizontals
+ ((1970,2600){-200,-150}...{-200,-220} % 0
+ (1458,2147)-- % 1
+ (1478,1970){100,160}...{200,180} % 2
+ (1753,2285)--cycle); % 3
+
+n := 13;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 8;
+t7 := 9;
+t8 := 10;
+t9 := 11;
+t10 := 13;
+t11 := 16;
+t12 := 17;
+t13 := 18;
+
+adj_fill.C() % fixed x points
+ (1) % fixed y points
+ ((4,7), (5,8), (6,9), (7,10), (8,6), (9,5), (12,4), (13,3))% tied points
+ ((6,10)) % verticals
+ ((3,11), (2,13)) % horizontals
+ ((79,0){200,205}... % 0
+ (287,175){95,60}... % *1
+ (453,236){1,0}... % 2
+ (768,99){200,-120}...{200,15} % 3
+ (1300,-39){200,135}...{200,95} % 4
+ (1734,197){75,60}...{75,60} % 5
+ (2029,433){140,200}...{200,195} % 6
+ (2305,788){60,200}...{-20,300} % 7
+ (2403,1970){-10,40}...{-10,40} % 8
+ (2364,2128){-100,210}...{-200,210} % 9
+ (1970,2600)-- % 10
+ (1753,2285){200,-90}... % 11
+ (2040,1963){100,-225}... % *12
+ (2147,1399){0,-1}... % 13
+ (2091,817){-55,-235}... % *14
+ (1931,473){-1,-1}... % 15
+ (1359,217){-1,0}...{-200,155} % 16
+ (788,453){-80,15}...{-80,15} % 17
+ (473,512){-200,-155}...{-170,-200} % 18
+ (20,79)--cycle); % 19
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 11;
+t5 := 13;
+t6 := 14;
+t7 := 16;
+t8 := 23;
+t9 := 27.39;
+t10 := 29;
+
+adj_fill.D() % fixed x points
+ () % fixed y points
+ ((1,8), (5,9), (6,10), (10,7)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((2029,433){1,0}... % 0
+ (2640,217){200,-95}... % 1
+ (2837,177){1,0}... % 2
+ (3113,355){120,200}... % 3
+ (3175,649){10,210}... % *4
+ (3152,1182){-20,200}... % 5
+ (3135,1557){5,155}... % *6
+ (3172,1793){.6872,1.755}... % 7
+ (3211,1853){65,75}...{65,75} % *8
+ (3428,2088){-1,0}... % 9
+ (3152,2226){-200,130}... % 10
+ (2837,2344){-1,0}... % 11
+ (2630,2245){-110,-95}...{-200,-315} % *12
+ (2403,1970)-- % 13
+ (2364,2128){200,215}... % 14
+ (2749,2477){170,120}... % *15
+ (3034,2600){1,0}... % 16
+ (3213,2555){105,-45}... % *17
+ (3448,2423){200,-135}...{200,90} % 18
+ (3802,2384){-5,-20}...{-5,-20} % 19
+ (3782,2305){-225,-165}... % 20
+ (3487,1990){-2,-4}... % 21
+ (3433,1757){-10,-145}... % *22
+ (3448,1418){25,-200}... % 23
+ (3487,847){0,-1}... % 24
+ (3451,575){-35,-115}... % *25
+ (3349,394){-200,-190}...{-200,-125} % 26
+ (2837,0){-200,-60}... % 27
+ (2285,39){-200,85}...{-1,0} % 28
+ (1734,197)--cycle); % 29
+
+endchar(0);
+
+"FMUX";
+
+charbegin( "X",2463h#, capheight*v#, baseline*v#);
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 18;
+t11 := 21;
+t12 := 22;
+
+adj_fill.A(1, 7) % fixed x points
+ (8, 12) % fixed y points
+ ((3,1), (4,2), (5,3), (10,4)) % tied points
+ ((4,10)) % verticals
+ ((6,9), (2,11)) % horizontals
+ ((0,177){2,-3}... % 0
+ (315,-20){1,0}... % 1
+ (464,21){90,40}... % *2
+ (670,138){6,4}... % 3
+ (1064,473){1,1}... % 4
+ (1221,630){1,1}... % 5
+ (1353,920){45,200}... % *6
+ (1399,1418){0,1}... % 7
+ (1379,1970){-1,4}... % 8
+ (1287,2253){-50,115}... % *9
+ (1182,2423){-1,1}...{-15,1} % 10
+ (737,2600){-139,-150}...{-139,-150} % 11
+ (189,2009)-- % 12
+ (256,1950){2,3}... % 13
+ (433,2147){1,1}... % 14
+ (749,2285){1,0}... % 15
+ (985,2167){1,-1}... % 16
+ (1123,1812){1,-7}... % 17
+ (1143,1418){0,-1}... % 18
+ (1123,985){-1,-5}... % 19
+ (867,414){-1,-1}... % 20
+ (512,236){-1,0}...{-1,2} % 21
+ (217,433)--cycle); % 22
+
+n := 7;
+t1 := 2;
+t2 := 4;
+t3 := 5;
+t4 := 7;
+t5 := 20;
+t6 := 23;
+t7 := 24;
+
+adj_fill.B(7) % fixed x points
+ (7) % fixed y points
+ ((2,1), (3,4), (4,3), (5,2)) % tied points
+ ((3,5)) % verticals
+ ((1,6)) % horizontals
+ ((2403,335){-105,-85}...{-105,-85} % 0
+ (1990,0){-7,-2}... % 1
+ (1812,-39){-1,0}... % 2
+ (1478,99){-1,1}... % 3
+ (1221,630){-1,5}... % 4
+ (1143,1418){0,1}... % 5
+ (1186,1578){60,140}... % *6
+ (1379,1970){1,2}... % 7
+ (1596,2285){1,1}...{5,2} % 8
+ (2076,2608){1,-2}... % 9
+ (2200,2353){43,-82}... % *10
+ (2246,2285){1,-1}... % 11
+ (2364,2234){1,0}...{2,1} % 12
+ (2522,2293)-- % 13
+ (2522,2226){-95,-55}...{-95,-55} % 14
+ (2147,2009){-9,4}... % 15
+ (1950,2147){-1,1}...{-2,5} % 16
+ (1797,2332){-3,-2}... % 17
+ (1655,2195){-3,-4}... % 18
+ (1497,1911){-2,-5}... % 19
+ (1399,1418){0,-1}... % 20
+ (1438,867){2,-8}... % 21
+ (1675,394){1,-1}... % 22
+ (2009,256){1,0}...{3,2} % 23
+ (2403,414)--cycle); % 24
+
+n := 2;
+t1 := 1;
+t2 := 4;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,4)) % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((2049,1418){-230,0}... % 0
+ (1143,1418){-2,0}...{-130,0} % 1
+ (630,1418)-- % 2
+ (493,1261){7,1}... % 3
+ (1281,1300){1,0}...{8,-1} % 4
+ (1911,1261)--cycle); % 5
+
+endchar(0);
+
+"FMUY";
+
+charbegin( "Y",2884h#, capheight*v#, descender*v#);
+
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 15;
+t9 := 18;
+t10 := 20;
+t11 := 23;
+t12 := 26;
+
+adj_fill.A(6, 12) % fixed x points
+ (1, 7, 12) % fixed y points
+ ((1,3), (2,1), (12,2)) % tied points
+ ((5,8), (4,9), (2,11)) % verticals
+ ((3,10)) % horizontals
+ ((827,473){105,90}...{105,90} % 0
+ (1241,827){2,3}... % 1
+ (1497,1852){0,1}... % 2
+ (1261,2482){-1,1}... % 3
+ (867,2600){-1,0}... % 4
+ (276,2364){-1,-1}... % 5
+ (72,2109){-70,-120}... % *6
+ (0,1891){0,-1}... % 7
+ (46,1770){45,-75}... % *8
+ (177,1596){7,-8}... % 9
+ (355,1340){0,-1}... % 10
+ (292,1206){-60,-75}...{-4,-3} % *11
+ (118,1044)-- % 12
+ (177,985){5,3}... % 13
+ (495,1238){110,125}... % *14
+ (611,1478){0,1}... % 15
+ (560,1617){-50,85}... % *16
+ (414,1812){-7,8}... % 17
+ (276,2108){0,1}... % 18
+ (355,2285){1,1}... % 19
+ (630,2384){1,0}... % 20
+ (985,2226){1,-1}... % 21
+ (1145,1943){55,-175}... % *22
+ (1202,1537){0,-1}... % 23
+ (1135,1047){-65,-210}... % *24
+ (946,709){-1,-1}...{-1,0} % 25
+ (433,512)--cycle); % 26
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 11;
+t6 := 13;
+t7 := 15;
+t8 := 19;
+t9 := 20;
+
+adj_fill.B(1) % fixed x points
+ (9) % fixed y points
+ ((5,1)) % tied points
+ ((3,7)) % verticals
+ ((4,6), (2,8)) % horizontals
+ ((749,-492){2,-5}... % 0
+ (930,-679){125,-65}... % *1
+ (1241,-749){1,0}... % 2
+ (1753,-591){7,4}...{2,3} % 3
+ (2403,0){2,4}... % 4
+ (2580,568){60,335}... % *5
+ (2640,1320){0,1}...{-1,5} % 6
+ (2581,2266){-3,2}...{-4,5} % 7
+ (2187,2600){-2,-1}... % 8
+ (1793,2344){-5,-4}...{-1,-1} % 9
+ (1478,2069)-- % 10
+ (1497,1852){1,2}... % 11
+ (1694,2128){1,1}...{13,8} % 12
+ (1911,2285){7,-3}...{8,-9} % 13
+ (2246,2009){1,-3}... % 14
+ (2344,1221){0,-1}... % 15
+ (2299,484){-45,-310}... % *16
+ (2167,0){-1,-2}... % 17
+ (1950,-315){-1,-1}... % 18
+ (1418,-571){-1,0}...{-1,7} % 19
+ (1024,-197)--cycle); % 20
+
+n := 7;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 8;
+t6 := 10;
+t7 := 11;
+
+adj_fill.C() % fixed x points
+ (4, 7) % fixed y points
+ ((1,2), (2,3)) % tied points
+ () % verticals
+ ((1,6), (3,5)) % horizontals
+ ((39,79){4,6}...{8,7} % 0
+ (433,512){1,0}... % 1
+ (827,473){11,-2}... % 2
+ (1084,374){2,-1}... % 3
+ (1379,276){1,0}...{6,7} % 4
+ (1694,453)-- % 5
+ (1726,394){-3,-4}... % 6
+ (1458,80){-113,-105}... % *7
+ (1281,-20){-1,0}... % 8
+ (906,99){-11,5}... % 9
+ (473,256){-1,0}...{-3,-5} % 10
+ (79,0)--cycle); % 11
+
+endchar(0);
+
+"FMUZ";
+
+%charbegin( "Z",2029h#, capheight*v#, depthy*v#);
+charbegin( "Z",2029h#, capheight*v#, 2/3descender*v#); % DEK
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+t9 := 17;
+t10 := 19;
+
+adj_fill.A(1, 4, 7) % fixed x points
+ (1, 5, 6, 10) % fixed y points
+ ((1,2), (10,1)) % tied points
+ ((2,9)) % verticals
+ ((3,8)) % horizontals
+ ((729,1438){18,1}... % 0
+ (1143,1655){1,1}... % 1
+ (1320,2069){0,1}... % 2
+ (1261,2206){-1,1}... % 3
+ (1044,2285){-1,0}... % 4
+ (788,2266){-14,-1}... % 5
+ (493,2246){-1,0}... % 6
+ (276,2305){-1,1}...{0,1} % 7
+ (236,2403){65,90}...{65,90} % 8
+ (493,2758)-- % 9
+ (552,2758){-2,-3}... % 10
+ (552,2600){1,-1}... % 11
+ (827,2541){1,0}... % 12
+ (1044,2549){23,1}... % 13
+ (1221,2561){1,0}... % 14
+ (1417,2541){80,-20}... % *15
+ (1537,2482){1,-1}... % 16
+ (1635,2266){0,-1}... % 17
+ (1418,1773){-1,-1}...{-10,-6} % 18
+ (1005,1438)--cycle); % 19
+
+n := 11;
+t1 := 1;
+t2 := 4;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+t7 := 14;
+t8 := 17;
+t9 := 20;
+t10 := 22;
+t11 := 24;
+
+adj_fill.B(2, 10) % fixed x points
+ () % fixed y points
+ ((5,1), (6,2)) % tied points
+ ((4,8)) % verticals
+ ((5,7), (3,9), (1,11)) % horizontals
+ ((-20,-98){5,4}... % 0
+ (177,0){1,0}... % 1
+ (276,-39){1,-1}... % 2
+ (310,-140){10,-95}...{0,-1} % *3
+ (315,-414){4,-1}... % 4
+ (670,-453){1,0}...{6,5} % 5
+ (1576,-118){2,3}... % 6
+ (1872,788){0,1}...{-3,10} % 7
+ (1812,1202){-2,3}... % 8
+ (1221,1458){-1,0}...{-8,-1} % 9
+ (1005,1438){-70,0}...{-70,0} % 10
+ (729,1438)-- % 11
+ (571,1202){10,-10}...{10,-10} % 12
+ (611,1162){4,2}... % 13
+ (946,1241){1,0}... % 14
+ (1418,1064){1,-1}... % 15
+ (1506,900){30,-105}... % *16
+ (1537,650){0,-1}... % 17
+ (1470,190){-65,-200}... % *18
+ (1281,-138){-1,-1}... % 19
+ (827,-335){-1,0}... % 20
+ (670,-284){-1,1}... % 21
+ (630,-98){0,1}... % 22
+ (611,138){-1,2}... % 23
+ (453,197){-1,0}... % 24
+ (216,136){-130,-60}...{-5,-4} % *25
+ (-59,-39)--cycle); % 26
+
+endchar(0);
+
+% PUNCTUATION
+set_stem_round(155,157,160,189,197,193);
+initrot:=identity;
+more_side(0); % DEK
+
+"fmexclamationpoint";
+
+%charbegin( 33, 795h#, ascender*v#, baseline );
+charbegin( 33,1095h#, ascender*v#, baseline ); % DEK
+
+n := 4;
+t1 := 0;
+t2 := 3;
+t3 := 8;
+t4 := 10;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (4,1)) % tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((413,2553){-1,0}... % 0
+ (286,2518){-318,-227}... % 1
+ (243,2444){-59,-206}... % *2
+ (227,2312){0,-1}... % 3
+ (238,2097){101,-1416}...{101,-1416} % 4
+ (339,681)-- % 5
+ (398,690){133,1370}... % 6
+ (531,2060){133,1370}... % 7
+ (551,2384){0,1}... % 8
+ (503,2522){-234,213}...{-1,0} % 9
+ (413,2553)--cycle); % 10
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (5,2)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((398,177)-- % 0
+ (398,387){-1,0}... % 1
+ (185,177){0,-1}... % 2
+ (398,-44){1,0}... % 3
+ (604,177){0,1}...{-1,0} % 4
+ (398,387)--cycle); % 5
+
+%endchar(0);
+endchar(150h#); % DEK
+
+"fmdoublequote";
+
+%charbegin( 125, 795h#, ascender*v#, lcbody*v#);
+charbegin( 125, 795h#, ascender*v#, baseline*v#); % DEK
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 9;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (4,1)) % tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((159,2573){-1,0}... % 0
+ (65,2538){-208,-163}... % 1
+ (32,2431){0,-1}... % 2
+ (52,2162){72,-562}...{72,-562} % 3
+ (124,1600)-- % 4
+ (205,1600){77,705}... % 5
+ (282,2305){77,705}... % 6
+ (282,2497){0,1}... % 7
+ (240,2554){-219,158}...{-1,0} % 8
+ (159,2573)--cycle); % 9
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 9;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (4,2)) % tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((617,2561){-1,0}... % 0
+ (498,2528){-155,-140}... % 1
+ (474,2470){0,-1}... % 2
+ (491,2311){84,-711}...{84,-711} % 3
+ (575,1600)-- % 4
+ (651,1600){69,718}... % 5
+ (720,2318){69,718}... % 6
+ (725,2489){0,1}... % 7
+ (703,2532){-204,227}...{-1,0} % 8
+ (617,2561)--cycle); % 9
+
+endchar(0);
+
+"fmlefttquote";
+
+%charbegin( 18, 795h#, ascender*v#, lcbody*v#);
+charbegin( 18, 795h#, ascender*v#, baseline*v#); % DEK
+n := 2;
+t1 := 0;
+t2 := 12;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((529,1568){-275,-225}... % 0
+ (433,1518){-1,0}... % 1
+ (339,1576){-239,317}... % 2
+ (166,2001){0,1}... % 3
+ (258,2252){166,276}...{350,433} % 4
+ (519,2623)-- % 5
+ (568,2570){-215,-370}... % 6
+ (422,2281){-95,-210}... % 7
+ (388,2135){0,-1}... % 8
+ (439,1969){118,-183}... % 9
+ (557,1786){118,-183}... % 10
+ (590,1685){0,-1}...{-391,-302} % 11
+ (529,1568)--cycle); % 12
+
+endchar(0);
+
+"fmrightquote";
+
+%charbegin( 19, 795h#, ascender*v#, lcbody*v#);
+charbegin( 19, 795h#, ascender*v#, baseline*v#); % DEK
+n := 2;
+t1 := 6;
+t2 := 7;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((213,1502){198,333}... % 0
+ (356,1770){155,386}... % 1
+ (392,1942){0,1}... % 2
+ (345,2087){-132,210}... % 3
+ (213,2297){-132,210}... % 4
+ (182,2404){0,1}...{189,173} % 5
+ (208,2493)-- % 6
+ (208,2493){333,295}... % 7
+ (338,2562){1,0}... % 8
+ (448,2480){237,-343}... % 9
+ (579,2223){116,-321}... % 10
+ (604,2085){0,-1}... % 11
+ (505,1792){-275,-484}...{-253,-383} % 12
+ (274,1460)--cycle); % 13
+
+endchar(0);
+
+"fmlparenthesis";
+
+%charbegin( 40, 795h#, programem*v#, descender*v#);
+charbegin( 40,1439h#, .75programem*v#, .25programem*v#); % DEK
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 14;
+
+adj_fill.A(1, 3, 4, 6) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((731,-690){-218,40}... % 0
+ (320,-398){-256,346}... % 1
+ (128,140){-258,1434}... % *2
+ (62,1036){0,1}... % 3
+ (136,1888){289,1419}... % *4
+ (351,2455){239,346}...{360,106} % 5
+ (731,2729)-- % 6
+ (731,2661){-349,-175}... % 7
+ (458,2366){-219,-458}... % 8
+ (304,1811){-206,-1351}... % *9
+ (252,1015){0,-1}... % 10
+ (318,66){256,-1470}... % *11
+ (399,-253){189.9,-521.3}... % *12
+ (508,-455){221,-253}...{242,-74} % 13
+ (731,-636)--cycle); % 14
+
+%endchar(0);
+endchar(357h#); % DEK
+
+"fmrparenthesis";
+
+%charbegin( 41, 795h#, programem*v#, descender*v#);
+charbegin( 41,1439h#, .75programem*v#, .25programem*v#); % DEK
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 14;
+
+adj_fill.A(1, 3, 4, 6) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((29,-691){335,60}... % 0
+ (429,-482){224,270}... % 1
+ (647,74){294,1490}... % *2
+ (723,1008){0,1}... % 3
+ (627,1937){-372,1516}... % *4
+ (351,2524){-233,253}...{-573,119} % 5
+ (29,2721)-- % 6
+ (29,2644){386,-185}... % 7
+ (254,2449){217,-312}... % 8
+ (457,1892){273,-1429}... % *9
+ (527,1020){0,-1}... % 10
+ (477,45){-210,-1464}... % *11
+ (412,-254){-159.7,-489.3}... % *12
+ (317,-444){-248,-309}...{-314,-129} % 13
+ (29,-632)--cycle); % 14
+
+%endchar(0);
+endchar(300h#); % DEK
+
+"fmast";
+
+charbegin( 42, 1028h#, theight*v#, baseline*v#);
+n := 3;
+t1 := .5179;
+t2 := 2;
+t3 := 2.575;
+
+adj_fill.A(2) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,3)) % verticals
+ () % horizontals
+ ((463,1663){16,302}...{-30,642} % 0
+ (465,2562)-- % 1
+ (561,2562){-47,-490}...{50,-366} % 2
+ (556,1663)--cycle); % 3
+
+n := 0;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((803,1831){-225,196}...{-570,325} % 0
+ (123,2328)-- % 1
+ (203,2415){385,-363}...{187,-114} % 2
+ (868,1909)--cycle); % 3
+
+n := 0;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((865,2345){-203,-125}...{-502,-449} % 0
+ (166,1830)-- % 1
+ (121,1909){411,261}...{291,254} % 2
+ (810,2416)--cycle); % 3
+
+endchar(0);
+
+"rmplus";
+
+%charbegin( 43, 1838h#, lcbody*v#, baseline*v#);
+charbegin( 43, 2800h#, (1233+925)*v#, (1233-925)*v#); % DEK
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+% ((1788,1044){-1655,0}...{-1655,0} % 0
+% (133,1044)-- % 1
+% (78,898){1660,0}...{1660,0} % 2
+% (1738,898)--cycle); % 3
+ ((2625,1044){-1655,0}...{-1655,0} % 0 % DEK
+ (230,1044)-- % 1
+ (175,898){1660,0}...{1660,0} % 2
+ (2575,898)--cycle); % 3
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,2)) % verticals
+ () % horizontals
+% ((853,2){0,1760}...{0,1760} % 0
+% (853,1762)-- % 1
+% (1010,1815){0,-1742}...{0,-1742} % 2
+% (1010,73)--cycle); % 3
+ ((1322,-306){0,1760}...{0,1760} % 0 % DEK
+ (1322,2161)-- % 1
+ (1479,2214){0,-1742}...{0,-1742} % 2
+ (1479,-235)--cycle); % 3
+
+endchar(0);
+
+"rmcomma";
+
+%charbegin( 44, 1840h#, lcbody*v#, baseline*v#);
+charbegin( 44,(1840-812)*h#, 400*v#, baseline*v#); % DEK
+
+n := 4;
+t1 := 5;
+t2 := 6;
+t3 := 7;
+t4 := 11;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((2,1), (3,1)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((813,-642){171,229}... % 0
+ (959,-368){161,387}... % 1
+ (986,-224){0,1}... % 2
+ (938,-69){-128,177}... % 3
+ (810,108){-128,177}... % 4
+ (773,228){0,1}...{271,188} % 5
+ (838,354)-- % 6
+ (838,354){373,276}... % 7
+ (945,396){1,0}... % 8
+ (1038,323){228,-317}... % 9
+ (1167,90){103,-266}... % 10
+ (1197,-100){0,-1}... % 11
+ (1115,-357){-254,-409}...{-156,-187} % 12
+ (855,-710)--cycle); % 13
+
+%endchar(0);
+endchar(-406h#); % DEK
+
+"fmminus";
+
+%charbegin( 45, 1824h#, lcbody*v#, baseline );
+charbegin( 45, 2800h#, (1233+925)*v#, (1233-925)*v#); % DEK
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1754,1018){-1650,0}...{-1650,0} % 0
+% (104,1018)-- % 1
+% (70,874){1651,0}...{1651,0} % 2
+% (1721,874)--cycle); % 3
+ ((2614,1018){-1650,0}...{-1650,0} % 0 % DEK
+ (230,1018)-- % 1
+ (170,874){1651,0}...{1651,0} % 2
+ (2564,874)--cycle); % 3
+
+endchar(0);
+
+"rmequalsign";
+
+%charbegin( 61, 1824h#, lcbody*v#, baseline );
+charbegin( 61, 2800h#, (440+925)*v#, (440-925)*v#); % DEK
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+% ((1754,1268){-1650,0}...{-1650,0} % 0
+% (104,1268)-- % 1
+% (70,1124){1651,0}...{1651,0} % 2
+% (1721,1124)--cycle); % 3
+ ((2684,1362){-1650,0}...{-1650,0} % 0 % DEK
+ (234,1362)-- % 1
+ (200,1218){1651,0}...{1651,0} % 2
+ (2651,1218)--cycle); % 3
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+% ((1754,768){-1650,0}...{-1650,0} % 0
+% (104,768)-- % 1
+% (70,624){1651,0}...{1651,0} % 2
+% (1721,624)--cycle); % 3
+ ((2684,632){-1650,0}...{-1650,0} % 0 % DEK
+ (234,632)-- % 1
+ (200,488){1651,0}...{1651,0} % 2
+ (2651,488)--cycle); % 3
+
+endchar(0);
+
+"rmperiod";
+
+%charbegin( 46, 1840h#, lcbody*v#, baseline*v#);
+charbegin( 46, (1840-812)*h#, 400*v#, baseline*v#); % DEK
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((931,163)-- % 0
+ (931,378){-1,0}... % 1
+ (729,163){0,-1}... % 2
+ (931,-55){1,0}... % 3
+ (1148,163){0,1}...{-1,0} % 4
+ (931,378)--cycle); % 5
+
+%endchar(0);
+endchar(-406h#); % DEK
+
+"rmslash";
+
+%charbegin( 47, 1796h#, programem*v#, descender*v#);
+charbegin( 47, 1858h#, .75programem*v#, .25programem*v#); % DEK
+n := 0;
+
+numeric a[],b[],alpha,beta;
+pair vec;
+.5[b0,b3]=.75programem-120; b1=b2=-.25programem+250; b0-b3=33;
+.5[a0,a3]=1652; .5[a1,a2]=205;
+vec=(.5[a0-a1,a3-a2],.5[b0-b1,b3-b2]);
+(a3,b3)-(a2,b2)=alpha*vec;
+(a1,b1)=beta*vec+(a2,b2)+145*(unitvector vec rotated 90);
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1614,2740){-1519,-3012}...{-1519,-3012}% 0
+% (95,-272)-- % 1
+% (223,-284){1505,2991}...{1505,2991} % 2
+% (1728,2707)--cycle); % 3
+ ((a0,b0)-- % 0 % DEK
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)--cycle); % 3
+
+endchar(0);
+
+"rmcolon";
+
+charbegin( 58, 800h#, lcbody*v#, baseline*v#);
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((371,1477)-- % 0
+ (371,1693){-1,0}... % 1
+ (180,1477){0,-1}... % 2
+ (371,1269){1,0}... % 3
+ (610,1477){0,1}...{-1,0} % 4
+ (371,1693)--cycle); % 5
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (5,2)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((371,152)-- % 0
+ (371,389){-1,0}... % 1
+ (195,152){0,-1}... % 2
+ (371,-45){1,0}... % 3
+ (621,152){0,1}...{-1,0} % 4
+ (371,389)--cycle); % 5
+
+endchar(0);
+
+"rmsemicolon";
+
+%charbegin( 59, 800h#, lcbody*v#, baseline*v#);
+charbegin( 59, 800h#, lcbody*v#, 2/3descender*v#); % DEK
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((372,1480)-- % 0
+ (372,1697){-1,0}... % 1
+ (175,1480){0,-1}... % 2
+ (372,1270){1,0}... % 3
+ (602,1480){0,1}...{-1,0} % 4
+ (372,1697)--cycle); % 5
+
+n := 0;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((273,-656){159,216}... % 0
+ (423,-380){139,329}... % 1
+ (449,-236){0,1}... % 2
+ (400,-95){-126,188}... % 3
+ (274,93){-126,188}... % 4
+ (240,190){0,1}...{277,281} % 5
+ (283,308)-- % 6
+ (282,325){346,281}... % 7
+ (398,366){1,0}... % 8
+ (479,327){185,-206}... % 9
+ (624,103){117,-298}... % 10
+ (664,-83){7,-393}... % 11
+ (576,-360){-202,-358}...{-227,-281} % 12
+ (331,-702)--cycle); % 13
+
+endchar(0);
+
+"rmlbrk";
+
+%charbegin( 91, 805h#, programem*v#, descender*v#);
+charbegin( 91, 1028h#, .75programem*v#, .25programem*v#); % DEK
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 7;
+
+adj_fill.A(1, 3, 4, 6) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((708,-442){-1,0}...{-563,-62} % 0
+ (112,-482){0,3222}...{0,3222} % 1
+ (112,2740){221,-23}...{1,0} % 2
+ (708,2725)-- % 3
+ (708,2633){-439,-45}...{-439,-45} % 4
+ (269,2588){0,-2931}...{0,-2931} % 5
+ (269,-343){439,-26}...{439,-26} % 6
+ (708,-369)--cycle); % 7
+
+%endchar(0);
+endchar(323h#);
+
+"rmrbrk";
+
+%charbegin( 93, 805h#, programem*v#, descender*v#);
+charbegin( 93, 1028h#, .75programem*v#, .25programem*v#); % DEK
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 7;
+
+adj_fill.A(1, 3, 4, 6) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((45,-458){1,0}...{614,-78} % 0
+ (651,-487){0,3220}...{0,3220} % 1
+ (651,2733){-397,-48}...{-1,0} % 2
+ (45,2712)-- % 3
+ (45,2622){449,-32}...{449,-32} % 4
+ (494,2590){0,-2931}...{0,-2931} % 5
+ (494,-341){-449,-40}...{-449,-40} % 6
+ (45,-381)--cycle); % 7
+
+%endchar(0);
+endchar(-58h#); % DEK
+
+"fmappostrophe";
+
+charbegin( 39, 785h#, capheight*v#, baseline );
+n := 2;
+t1 := 0;
+t2 := 9;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((385,2573){-1,0}... % 0
+ (285,2537){-105,-94}... % 1
+ (251,2464){0,-1}... % 2
+ (258,2326){69,-712}...{69,-712} % 3
+ (327,1614)-- % 4
+ (386,1614){96,686}... % 5
+ (482,2300){96,686}... % 6
+ (497,2449){0,1}... % 7
+ (466,2544){-152,162}...{-1,0} % 8
+ (385,2573)--cycle); % 9
+
+endchar(0);
+
+"fmqmark"; %medium question mark
+
+charbegin( 63, 1342h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 14;
+t10 := 16;
+t11 := 18;
+t12 := 19;
+
+adj_fill.A(6, 12) % fixed x points
+ (1, 7) % fixed y points
+ () % tied points
+ ((4,9), (2,11), (5,8)) % verticals
+ ((3,10)) % horizontals
+ ((290,1815){-238,177}... % 0
+ (168,2061){0,1}... % 1
+ (293,2340){1,1}... % 2
+ (846,2565){1,0}... % 3
+ (1187,2446){1,-1}... % 4
+ (1326,2090){0,-1}... % 5
+ (1215,1746){-425,-703}... % *6
+ (901,1387){-569,-493}... % 7
+ (593,1010){0,-1}...{232,-128} % 8
+ (716,803)-- % 9
+ (543,681){-306,127}... % 10
+ (362,925){0,1}... % 11
+ (460,1127){376,484}... % *12
+ (738,1409){623,538}... % 13
+ (1062,2017){0,1}... % 14
+ (941,2311){-1,1}... % 15
+ (698,2416){-1,0}... % 16
+ (464,2331){-1,-1}... % 17
+ (399,2180){0,-1}...{280,-221} % 18
+ (519,1952)--cycle); % 19
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (3,1), (4,1), (6,2)) % tied points
+ ((2,5)) % verticals
+ ((1,3), (4,6)) % horizontals
+ ((608,-39){1,0}... % 0
+ (803,190){0,1}...{-1,0} % 1
+ (591,382)-- % 2
+ (591,382){-1,0}... % 3
+ (401,176){0,-1}...{1,0} % 4
+ (608,-39)--cycle); % 5
+
+endchar(0);
+
+"fmampersand";
+
+charbegin( 38, 2732h#, capheight*v#, baseline );
+n := 21;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 6;
+t6 := 8;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+t10 := 21;
+t11 := 23;
+t12 := 24;
+t13 := 26;
+t14 := 30;
+t15 := 32;
+t16 := 34;
+t17 := 38;
+t18 := 40;
+t19 := 42;
+t20 := 44;
+t21 := 45;
+
+adj_fill.A(12, 21) % fixed x points
+ (11) % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((9,14), (7,16), (6,17), (4,19)) % verticals
+ ((10,13), (8,15), (5,18), (1,20)) % horizontals
+ ((1287,1477){774,-41}...{1,0} % 0
+ (2027,1466){22,-143}...{22,-143} % 1
+ (2049,1323){110,-424}... % 2
+ (2083,1090){0,-1}... % 3
+ (1806,416){-264,-343}... % 4
+ (1613,185){-341,-236}... % 5
+ (1028,-31){-1,0}... % 6
+ (411,175){-1,1}... % 7
+ (182,722){0,1}... % 8
+ (371,1189){1,1}... % 9
+ (879,1538){571,342}... % 10
+ (1258,1794){1,1}... % 11
+ (1385,2154){0,1}... % 12
+ (1291,2358){-1,1}... % 13
+ (1155,2411){-1,0}... % 14
+ (970,2328){-1,-1}... % 15
+ (895,2068){0,-1}... % 16
+ (1016,1565){474,-1132}... % *17
+ (1369,936){454,-665}... % 18
+ (1819,414){1,-1}... % 19
+ (2024,253){389,-217}... % *20
+ (2208,197){1,0}... % 21
+ (2444,291){1,1}...{124,668} % 22
+ (2632,706)-- % 23
+ (2717,682){-92,-496}... % 24
+ (2453,95){-1,-1}... % 25
+ (2095,-42){-1,0}... % 26
+ (1612,179){-275,261}... % 27
+ (1149,763){-517,775}... % 28
+ (791,1412){-481,1162}... % *29
+ (668,1925){0,1}... % 30
+ (864,2422){1,1}... % 31
+ (1273,2584){1,0}... % 32
+ (1558,2466){1,-1}... % 33
+ (1651,2244){0,-1}... % 34
+ (1467,1810){-1,-1}... % 35
+ (1074,1521){-573,-348}... % 36
+ (627,1225){-1,-1}... % 37
+ (469,805){0,-1}... % 38
+ (688,278){1,-1}... % 39
+ (1085,119){1,0}... % 40
+ (1520,278){233,164}... % 41
+ (1889,986){0,1}... % 42
+ (1761,1276){-1,1}... % 43
+ (1536,1336){-1,0}...{-374,-43} % 44
+ (1282,1319)--cycle); % 45
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,4)) % verticals
+ ((1,4)) % horizontals
+ ((2603,1476){-410,-38}...{-1,0} % 0
+ (2027,1466)-- % 1
+ (2049,1323){1,0}...{325,-54} % 2
+ (2593,1298)--cycle); % 3
+
+endchar(0);
+
+"fmcaret";
+
+%charbegin( 94, 1850h#, programem*v#, lcbody*v#);
+charbegin( 94, 1850h#, capheight*v#, baseline*v#); % DEK
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((1832,1798){-905,921}...{-905,921} % 0
+ (927,2719){-927,-1001}...{-927,-1001} % 1
+ (0,1718)-- % 2
+ (85,1672){834,818}...{834,818} % 3
+ (919,2490){770,-790}...{770,-790} % 4
+ (1689,1700)--cycle); % 5
+
+endchar(0);
+
+% ALTERNATE CHARACTERS
+set_stem_round(240,250,267,267,290,315);
+initrot:=identity shifted(0,-60v);
+more_side(100h#); % DEK
+
+"fmlda"; % '000
+
+charbegin( 0, 1642h#, theight*v#, baseline );
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7.349;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 18;
+t9 := 20;
+t10 := 21;
+t11 := 23;
+
+adj_fill.A(1, 6) % fixed x points
+ () % fixed y points
+ ((5,1), (6,2), (9,2), (10,1)) % tied points
+ ((4,7), (3,8), (2,11)) % verticals
+ () % horizontals
+ ((516,2555){-269,-306}... % 0
+ (403,2267){0,-1}... % 1
+ (505,2035){1,-1}... % 2
+ (879,1821){977,-352}...{660,-90} % *3
+ (1482,1683){24,-370}...{-195,-652} % 4
+ (1355,426){-653,-487}...{-653,-487} % 5
+ (702,-61){-334,228}...{-508,533} % 6
+ (186,362){-18,364}...{102,653} % 7
+ (222,1342){365,293}...{365,293} % 8
+ (587,1635)-- % 9
+ (667,1606){-274,-316}... % 10
+ (526,1316){-190,-712}... % *11
+ (477,894){0,-1}... % 12
+ (468,604){16,-363}... % *13
+ (493,531){499,-439}... % 14
+ (813,292){491,-264}... % *15
+ (984,267){142,130}... % 16
+ (1133,601){202,941}... % *17
+ (1186,1208){0,1}...{-26,229} % 18
+ (1168,1433){-501,173}...{-501,173} % 19
+ (667,1606){-80,29}...{-80,29} % 20
+ (587,1635){-481,188}... % 21
+ (259,1808){-1,1}... % 22
+ (178,2014){0,1}...{221,206} % 23
+ (471,2590)--cycle); % 24
+
+endchar(0);
+
+"fmldb"; % '001
+
+charbegin( 1, 1645h#, theight*v#, baseline );
+
+n := 6;
+t1 := 4;
+t2 := 6.799;
+t3 := 9;
+t4 := 11.69;
+t5 := 14;
+t6 := 18;
+
+adj_fill.A(3, 6) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((2,4), (1,5)) % verticals
+ () % horizontals
+ ((45,2100){225,47}...{225,47} % 0
+ (270,2147){324,-102}...{388,-399} % 1
+ (1172,1563){22,-295}... % 2
+ (1146,738){-237,-1343}...{-244,-275} % *3
+ (935,220){-349,258}... % 4
+ (550,502){-367,360}... % 5
+ (506,579){-42,400}... % 6
+ (481,1141){38,920}...{43,100} % *7
+ (544,1499){221,228}...{221,228} % 8
+ (765,1727)-- % 9
+ (695,1762){-456,-318}...{-299,-283} % 10
+ (226,1393){-92,-689}...{31,-550} % 11
+ (189,364){490,-509}...{267,-199} % 12
+ (659,-52){656,415}...{265,216} % 13
+ (1356,436){225,617}... % 14
+ (1480,1016){135,1321}...{-24,421} % *15
+ (1491,1757){-356,383}...{-224,67} % 16
+ (485,2340){-301,-84}...{-185,-95} % 17
+ (31,2165)--cycle); % 18
+
+endchar(0);
+
+"fmlfa"; % '002
+% was "fmlf" --- DEK
+charbegin(2,1034h#, ascender*v#, descender*v#);
+
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+%t8 := 15;
+t8 := 14; % DEK
+t9 := 16;
+t10 := 17;
+t11 := 19;
+t12 := 21;
+
+adj_fill.A(1, 4, 9) % fixed x points
+ (7) % fixed y points
+ () % tied points
+ ((6,8), (3,11)) % verticals
+ ((2,12), (9,10), (4,5)) % horizontals
+ ((1156,2463){-265,-308}...{-265,-308} % 0
+ (891,2155){-347,418}... % 1
+ (664,2282){-1,0}... % 2
+ (509,2226){-1,-1}... % 3
+ (434,2070){0,-1}... % 4
+ (497,1827){248,-586}...{429,-685} % *5
+ (682,1484){420,0}...{420,0} % 6
+ (1102,1484){-97,-115}...{-97,-115} % 7
+ (1005,1369){-310,0}...{-310,0} % 8
+ (695,1369){0,-1}...{-74,-495} % 9
+ (612,-199){-149,-275}...{-287,-539} % 10
+ (325,-738)-- % 11
+ (237,-733){198,512}... % 12
+ (360,-321){82,377}... % 13
+ (396,191){0,1}...{0,1} % 14
+ (364,1369){-357,0}...{-357,0} % 15
+ (7,1369){112,115}...{112,115} % 16
+ (119,1484){239,0}...{239,0} % 17
+ (358,1484){-56,691}... % 18
+ (328,1986){0,1}... % 19
+ (537,2459){1,1}... % 20
+ (772,2580){1,0}... % 21
+ (1024,2471){218,-169}... % 22
+ (1054,2458){1.866,-.08138}... % 23
+ (1081,2467){66,55}...{66,55} % 24
+ (1147,2522)--cycle); % 25
+
+endchar(0);
+
+"fmlfb"; % '003
+
+charbegin( 3,1019h#, ascender*v#, descender*v#);
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 13;
+t8 := 16;
+t9 := 18;
+t10 := 19;
+t11 := 23;
+t12 := 25;
+t13 := 27;
+
+adj_fill.A(1, 5, 10) % fixed x points
+ (7, 13) % fixed y points
+ () % tied points
+ ((6,8), (3,11)) % verticals
+ ((4,5), (9,10), (2,12)) % horizontals
+ ((1070,2426){-1,1}...{-10,-1} % 0
+ (609,2572){-359,-248}... % 1
+ (439,2427){-1,-1}... % 2
+ (236,2014){0,-1}... % 3
+ (285,1736){52,-240}...{141,-651} % 4
+ (337,1496){-192,0}...{-192,0} % 5
+ (145,1496){-143,-118}...{-143,-118} % 6
+ (2,1378){334,0}...{334,0} % 7
+ (336,1378){6,-279}... % 8
+ (353,534){0,-1}... % 9
+ (343,-194){-36,-466}... % 10
+ (297,-462){-132,-445}...{-204,-532} % 11
+ (205,-742)-- % 12
+ (274,-768){166,273}... % 13
+ (440,-495){166,273}... % 14
+ (598,-136){91,310}... % 15
+ (649,596){0,1}...{0,1} % 16
+ (663,1378){332,0}...{332,0} % 17
+ (995,1378){82,118}...{82,118} % 18
+ (1077,1496){-399,0}...{-399,0} % 19
+ (678,1496){-95,463}... % 20
+ (645,1590){-185,355}... % 21
+ (460,1945){-185,355}... % 22
+ (387,2145){0,1}... % 23
+ (441,2280){1,1}... % 24
+ (572,2330){1,0}... % 25
+ (743,2250){1,-1}...{207,-440} % 26
+ (859,2081){36,4}...{36,4} % 27
+ (895,2085)--cycle); % 28
+
+endchar(0);
+
+"fmlga"; % '004
+
+charbegin( 4, 1664h#, lcbody*v#, descender*v#);
+n := 6;
+t1 := 0;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 12;
+
+adj_fill.A(3, 6) % fixed x points
+ () % fixed y points
+ ((1,4), (3,1), (4,2), (6,3)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1157,424){-669,-480}...{-669,-480} % 0
+ (488,-56){-305,355}...{-305,355} % 1
+ (183,299){-15,310}... % 2
+ (177,950){49,1114}...{174,753} % *3
+ (232,1413){143,100}...{503,264} % 4
+ (826,1803){347,-221}...{424,-116} % 5
+ (1256,1624)-- % 6
+ (1186,1373){-354,25}...{-287,98} % 7
+ (562,1510){-230,-493}... % 8
+ (489,1136){-67,-999}...{22,-356} % *9
+ (495,511){439,-525}...{322,-276} % 10
+ (724,278){437,253}...{437,253} % 11
+ (1161,531)--cycle); % 12
+
+n := 10;
+t1 := 1;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 18;
+t10 := 19;
+
+adj_fill.B(7, 10) % fixed x points
+ (1) % fixed y points
+ ((3,4), (4,3), (5,2), (6,1)) % tied points
+ ((3,8)) % verticals
+ ((2,9)) % horizontals
+ ((233,-116){39,3}...{39,3} % 0
+ (272,-113){65,-270}... % 1
+ (416,-343){1,-1}... % 2
+ (841,-495){1,0}... % 3
+ (1162,-362){1,1}... % 4
+ (1244,-147){0,1}...{-134,704} % 5
+ (1157,424){4,107}...{4,107} % 6
+ (1161,531){25,842}...{25,842} % 7
+ (1186,1373){70,251}...{70,251} % 8
+ (1256,1624)-- % 9
+ (1543,1782){20,-36}...{20,-36} % 10
+ (1563,1746){-314,-665}... % 11
+ (1484,1462){-109,-696}... % *12
+ (1454,1050){-6,-491}...{0,-509} % 13
+ (1448,559){107,-705}... % 14
+ (1525,-7){0,-1}...{-233,-524} % 15
+ (1496,-135){-465,-515}...{-465,-515} % 16
+ (1031,-650){-401,-279}... % 17
+ (735,-733){-1,0}...{-1,1} % 18
+ (90,-470)--cycle); % 19
+
+endchar(0);
+
+"fmlka"; % '005
+
+charbegin( 5, 1033h#, ascender*v#, baseline );
+n := 5;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+
+adj_fill.A() % fixed x points
+ (1, 3) % fixed y points
+ ((1,2), (5,1)) % tied points
+ () % verticals
+ ((2,4)) % horizontals
+ ((506,1504){0,1}... % 0
+ (624,1902){1,1}... % 1
+ (704,1935){1,0}... % 2
+ (812,1865){1,-1}...{266,-349} % 3
+ (932,1723)-- % 4
+ (1066,1925){-211,539}...{-201,309} % 5
+ (912,2216){-361,-215}...{-384,-301} % 6
+ (528,1915)--cycle); % 7
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,3), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((826,2603){-290,-173}...{-421,-315} % 0
+ (349,2271)-- % 1
+ (528,1915){0,1}... % 2
+ (637,2335){183,243}...{262,207} % 3
+ (888,2574)--cycle); % 4
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 5;
+t7 := 8;
+t8 := 11;
+t9 := 15;
+t10 := 16;
+t11 := 21;
+
+adj_fill.C(4, 8, 10) % fixed x points
+ (7) % fixed y points
+ ((1,3), (2,1), (3,2), (11,3)) % tied points
+ ((6,9)) % verticals
+ ((4,5)) % horizontals
+ ((349,2271){179,-356}...{179,-356} % 0
+ (528,1915){-22,-411}...{-22,-411} % 1
+ (506,1504){427,0}...{427,0} % 2
+ (933,1504){-92,-130}...{-92,-130} % 3
+ (841,1374){-320,0}...{-320,0} % 4
+ (521,1374){0,-1}...{0,-1} % 5
+ (533,492){212,-178}... % 6
+ (745,314){212,-178}... % 7
+ (786,296){1,0}... % 8
+ (834,315){183,88}...{216,111} % 9
+ (1050,426)-- % 10
+ (1054,340){-512,-355}...{-512,-355} % 11
+ (542,-15){-272,276}... % 12
+ (197,288){-265,198}... % 13
+ (205,284){42,725}...{0,1} % 14
+ (222,1374){-228,0}...{-228,0} % 15
+ (-6,1374){176,130}...{176,130} % 16
+ (170,1504){72,0}...{72,0} % 17
+ (242,1504){0,1}...{-47,379} % 18
+ (205,2520){46,23}...{46,23} % 19
+ (251,2543){98,-272}...{98,-272} % 20
+ (349,2271)--cycle); % 21
+
+endchar(0);
+
+"fmlta"; % '006
+
+%charbegin( 6, 1037h#, ascender*v#, baseline );
+charbegin( 6, 1037h#, theight*v#, baseline );
+n := 9;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 14;
+t9 := 15;
+
+adj_fill.A(2, 5, 8) % fixed x points
+ (1) % fixed y points
+ () % tied points
+ ((3,7)) % verticals
+ ((8,9), (4,6)) % horizontals
+ ((633,2199){39,-17}...{39,-17} % 0
+ (672,2182){-62,-369}...{0,-1} % 1
+ (631,1510){457,0}...{457,0} % 2
+ (1088,1510){-98,-142}...{-98,-142} % 3
+ (990,1368){-355,0}...{-355,0} % 4
+ (635,1368){0,-1}...{35,-658} % 5
+ (639,515){218,-181}... % 6
+ (892,316){323,-213}... % 7
+ (961,321){227,142}...{206,113} % 8
+ (1167,434)-- % 9
+ (1186,370){-506,-386}...{-506,-386} % 10
+ (680,-16){-351,301}...{-1,1} % 11
+ (329,285){65,672}...{0,1} % 12
+ (343,1368){-337,0}...{-337,0} % 13
+ (6,1368){134,142}...{134,142} % 14
+ (140,1510){197,0}...{197,0} % 15
+ (337,1510){0,1}...{-15,456} % 16
+ (331,2034)--cycle); % 17
+
+endchar(0);
+
+"fmlua"; % '007
+
+charbegin( 7, 1654h#, lcbody*v#, baseline );
+n := 6;
+t1 := 0;
+t2 := 5;
+t3 := 7;
+t4 := 11;
+t5 := 13;
+t6 := 17;
+
+adj_fill.A(1, 2, 4) % fixed x points
+ () % fixed y points
+ ((6,1)) % tied points
+ ((3,5)) % verticals
+ () % horizontals
+ ((1147,347){-201,-97}... % 0
+ (631,6){-417,-340}... % 1
+ (581,-21){-1.873,-.3569}... % 2
+ (539,-16){-189,148}... % 3
+ (287,160){-426,248}...{-325,45} % *4
+ (113,232){181,151}... % 5
+ (231,503){159,805}... % *6
+ (272,1037){0,1}... % 7
+ (238,1340){-131,481}...{-452,376} % *8
+ (141,1518){-151,-75}...{-151,-75} % 9
+ (-10,1443)-- % 10
+ (-63,1487){403,333}...{403,333} % 11
+ (340,1820){381,-494}...{187,-144} % 12
+ (533,1620){26,-796}... % 13
+ (540,1033){0,-1}...{-105,-294} % 14
+ (436,439){268,-91}...{191,-123} % 15
+ (796,275){350,168}...{350,168} % 16
+ (1146,443)--cycle); % 17
+
+n := 3;
+t1 := 0;
+t2 := 4;
+t3 := 8;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((2,1)) % tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((1805,385){-141,-113}...{-345,-342} % 0
+ (1364,-14){-35,18}...{-35,18} % 1
+ (1329,4){-118,292}...{-375,556} % 2
+ (1153,345){-7,98}...{-7,98} % 3
+ (1146,443){26,237}...{-24,687} % 4
+ (1146,1625)-- % 5
+ (1462,1796){26,-28}...{26,-28} % 6
+ (1488,1768){-105,-635}... % 7
+ (1427,892){0,-1}... % 8
+ (1455,541){51,-333}... % 9
+ (1540,380){222,-291}... % 10
+ (1619,375){165,66}...{165,66} % 11
+ (1784,441)--cycle); % 12
+
+endchar(0);
+
+"fmnontab1"; %non-tabular 1, medium (fitted 1)
+initrot:=identity; % DEK
+more_side(0); % DEK
+charbegin( 127, 1400h#, lfigheight*v#, baseline );
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((941,64){-28,408}... % 0
+ (911,1560){0,1}... % 1
+ (940,2579){36,811}...{-24,24} % 2
+ (916,2603){-716,-296}...{-716,-296} % 3
+ (200,2307)-- % 4
+ (200,2221){1,0}... % 5
+ (462,2221){1,0}... % 6
+ (586,2102){52,-490}... % 7
+ (605,1542){0,-1}...{-8,-451} % 8
+ (590,-7){35,-31}...{35,-31} % 9
+ (625,-38)--cycle); % 10
+
+endchar(0);
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurb10.mf b/Master/texmf-dist/fonts/source/public/ams/eurb10.mf
new file mode 100644
index 00000000000..4c45626b135
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurb10.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurb10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "13513 47 208 1809"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurb10, the Euler roman bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Bold 10pt (math italic)---------------------
+
+ font_identifier := "EURB V2.2";
+
+ ptsize = 10;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.1;
+
+ input eurbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurb5.mf b/Master/texmf-dist/fonts/source/public/ams/eurb5.mf
new file mode 100644
index 00000000000..bb096b3df1f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurb5.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurb5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "31934 47 206 1799"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurb5, the Euler roman bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Bold 5pt---------------------
+
+ font_identifier := "EURB V2.2";
+
+ ptsize = 5;
+
+ leftside# = rightside# = 300h#;
+
+ xscale_factor := 1.28;
+
+ input eurbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurb6.mf b/Master/texmf-dist/fonts/source/public/ams/eurb6.mf
new file mode 100644
index 00000000000..5bad94fcaab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurb6.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurb6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "19247 47 208 1809"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurb6, the Euler roman bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Bold 6pt (math italic)---------------------
+
+ font_identifier := "EURB V2.2";
+
+ ptsize = 6;
+
+ leftside# = rightside# = 150h#;
+
+ xscale_factor := 1.23;
+
+ input eurbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurb7.mf b/Master/texmf-dist/fonts/source/public/ams/eurb7.mf
new file mode 100644
index 00000000000..29546e9df25
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurb7.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurb7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "21933 47 207 1805"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurb7, the Euler roman bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Bold 7pt ---------------------
+
+ font_identifier := "EURB V2.2";
+
+ ptsize = 7;
+
+ leftside# = rightside# = 100h#;
+
+ xscale_factor := 1.2;
+
+ input eurbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurb8.mf b/Master/texmf-dist/fonts/source/public/ams/eurb8.mf
new file mode 100644
index 00000000000..8263daa55b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurb8.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurb8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "50677 47 208 1807"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurb8, the Euler roman bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Bold 8pt (math italic)---------------------
+
+ font_identifier := "EURB V2.2";
+
+ ptsize = 8;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.17;
+
+ input eurbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurb9.mf b/Master/texmf-dist/fonts/source/public/ams/eurb9.mf
new file mode 100644
index 00000000000..e4f85759970
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurb9.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurb9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "53022 47 208 1807"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurb9, the Euler roman bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Bold 9pt (math italic)---------------------
+
+ font_identifier := "EURB V2.2";
+
+ ptsize = 9;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.12;
+
+ input eurbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurbch.mf b/Master/texmf-dist/fonts/source/public/ams/eurbch.mf
new file mode 100644
index 00000000000..3d0e1af667d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurbch.mf
@@ -0,0 +1,6642 @@
+%% @metafontfile{
+%% filename="eurbch.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "50330 6642 19763 216732"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the driver file for use with
+%% the Euler roman bold fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Roman Bold
+
+% ----- This font is set up as Math Italic, \textfont1, page 430 of TeXbook
+
+mode_setup;
+font_coding_scheme "TeX math italic subset";
+
+% EULER ROMAN BOLD PARAMETERS
+
+% These all in bitpad numbers (.001"):
+
+ programem = 3700;
+ baseline = 0;
+ ascender = capheight;
+ descender = 700;
+ depthy = 700; % depthy = 500;
+ capheight = 2600;
+ lcbody = 1800; %1700 for medium, 1800 for bold.
+ dotheight = 2600;
+ theight = 2330;
+ lfigheight = capheight;
+ nfigbody = lcbody;
+ nfigascender = ascender;
+ nfigdescender = descender;
+
+
+input eubase;
+
+% individual character widths for bold lower case
+
+lefta# = -20h#; righta# = 0h#;
+leftb# = 0h#; rightb# = 0h#;
+leftc# = 0h#; rightc# = 0h#;
+leftd# = 0h#; rightd# = 0h#;
+lefte# = -20h#; righte# = 30h#;
+leftf# = 0h#; rightf# = 0h#;
+leftg# = 0h#; rightg# = -60h#;
+lefth# = 0h#; righth# = 0h#;
+lefti# = 0h#; righti# = 0h#;
+leftj# = 0h#; rightj# = 0h#;
+leftk# = 0h#; rightk# = 0h#;
+leftl# = 0h#; rightl# = 0h#;
+leftm# = 30h#; rightm# = 0h#;
+leftn# = 0h#; rightn# = 0h#;
+lefto# = 0h#; righto# = 0h#;
+%leftp# = 0h#; rightp# = 0h#;
+leftp# = 0h#; rightp# = -50h#; % DEK
+leftq# = 0h#; rightq# = 0h#;
+leftr# = 0h#; rightr# = 0h#;
+lefts# = 0h#; rights# = 0h#;
+leftt# = 0h#; rightt# = 0h#;
+leftu# = 0h#; rightu# = 0h#;
+leftv# = 0h#; rightv# = 0h#;
+leftw# = 0h#; rightw# = 0h#;
+leftx# = 0h#; rightx# = 0h#;
+lefty# = 0h#; righty# = 0h#;
+leftz# = 0h#; rightz# = 0h#;
+
+% information for positioning of math accents --- DEK (updated May 1988!)
+skewchar=oct"177"; skew#=1/36programem*h#;
+ligtable "G": "H": "O": "S": "a": "c": "e": "g": "o": "s": "z":
+ 1: 2: 3: 5: 7: 9: 26: % Delta Theta Lambda Pi Upsilon Psi rho
+ 18: 32: 33: 39: skewchar kern skew#; % theta psi omega varphi
+ligtable "C": "X": "Z": 16: 25: 28: 125: % zeta pi tau wp
+ skewchar kern 2skew#;
+ligtable "f": skewchar kern 4skew#;
+ligtable 21: skewchar kern-2skew#; % lambda
+charcode:=skewchar; shipout nullpicture;
+
+% spacing corrections before and after punctuation --- DEK
+slashchar=oct"75"; periodchar=oct"72"; commachar=oct"73";
+ligtable "V": "W": "Y": skewchar kern 2skew#, "T": 0: "F": % Gamma
+ slashchar kern-2skew#,"P": commachar kern-3skew#, periodchar kern-3skew#;
+ligtable slashchar: "A" kern-2skew#, "a" kern -2skew#, "g" kern-2skew#,
+ 1 kern-2skew#, 3 kern-2skew#, oct"13" kern-2skew#; % Delta, Lambda, alpha
+
+% LOWER CASE
+set_stem_round(350,367,390,390,405,420); % DEK
+more_side(100h#);
+
+"rbla";
+
+charbegin( "a", 2055h# + lefta# + righta#, lcbody*v#, baseline );
+
+n := 8;
+t1 := 0.6;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+
+adj_fill.A(3) % fixed x points
+ () % fixed y points
+ ((5,1), (6,2), (7,4), (8,3)) % tied points
+ ((1,7)) % verticals
+ ((2,4)) % horizontals
+ ((1819,1790){-42,-468}... % 0
+ (1775,493){21,-488}... % 1
+ (1809,307){135,-206}... % 2
+ (1877,269){257,-1}...{344,330} % 3
+ (2112,424)-- % 4
+ (2178,346){-216,-283}... % 5
+ (1773,-13){-363,-160}... % 6
+ (1608,-45){-430,10}... % 7
+ (1480,-2){-198,207}...{-53,425} % 8
+ (1390,243){-14,232}...{-14,232} % 9
+ (1376,475){196,1208}...{0,1} % 10
+ (1402,1223)-- % 11
+ (1572,1683){203,140}...{203,140} % 12
+ (1775,1823)--cycle); % 13
+
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 15;
+t9 := 18;
+t10 := 20;
+t11 := 21;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,3), (5,1), (6,2), (11,2), (10,4)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1572,1683){-325,192}... % 0
+ (1062,1844){-455,-5}... % 1
+ (574,1696){-10,-8}... % 2
+ (326,1305){-323,-988}... % *3
+ (251,708){18,-616}... % 4
+ (320,296){237,-682}... % *5
+ (488,26){211,-183}... % 6
+ (727,-55){1,0}... % 7
+ (1095,46){407,210}...{489,371} % 8
+ (1390,243)-- % 9
+ (1376,475){-134,-251}... % 10
+ (1218,303){-251,-167}... % 11
+ (983,232){-360,6}... % 12
+ (763,335){-163,202}... % 13
+ (667,544){-133,516}... % *14
+ (630,851){-8,421}... % 15
+ (687,1315){237,763}... % *16
+ (867,1614){248,208}... % 17
+ (1094,1702){315,2}... % 18
+ (1290,1629){198,-210}... % 19
+ (1402,1223){0,-1}... % 20
+ (1376,475)--cycle); % 21
+endchar(lefta#);
+
+"rblb";
+
+charbegin( "b", 2063h# + leftb# + rightb#, ascender*v#, baseline );
+
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 5.5;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+t7 := 14;
+t8 := 15;
+t9 := 17;
+t10 := 19;
+t11 := 21;
+t12 := 24;
+t13 := 25;
+
+adj_fill.A(2, 7) % fixed x points
+ (8) % fixed y points
+ ((7,1), (8,2), (12,2), (13,1)) % tied points
+ ((3,12), (5,10)) % verticals
+ ((1,2), (4,11), (6,9)) % horizontals
+ ((1,2503){-4,-111}...{-4,-111} % 0
+ (-3,2392){275,-8}... % 1
+ (201,2361){226,-76}... % 2
+ (322,2234){45,-293}... % 3
+ (342,1877){-5,-427}... % 4
+ (321,1074){-24,-429}... % 5
+ (337,458){139,-965}... % *6
+ (460,109){219,-247}... % 7
+ (841,-53){1,0}... % 8
+ (1557,266){425,402}... % 9
+ (1881,1097){0,1}... % 10
+ (1697,1673){-338,350}... % 11
+ (1351,1824){-1,0}...{-243,-217} % 12
+ (723,1537){-36,8}...{-36,8} % 13
+ (687,1545)-- % 14
+ (697,1360){312,271}... % 15
+ (902,1502){383,191}... % *16
+ (1080,1551){1,0}... % 17
+ (1363,1418){177,-271}... % 18
+ (1480,879){0,-1}... % 19
+ (1338,315){-204,-299}... % 20
+ (1005,141){-1,0}... % 21
+ (759,304){-7,10}... % 22
+ (673,660){-62,1056}...{34,392} % *23
+ (697,1360){-10,185}...{-10,185} % 24
+ (687,1545){22,1020}...{22,1020} % 25
+ (709,2565){0,50}...{0,50} % 26
+ (709,2615)--cycle); % 27
+
+endchar(leftb#);
+
+"rblc";
+
+charbegin( "c", 1646h# + leftc# + rightc#, lcbody*v#, baseline );
+
+
+
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 13;
+t10 := 15;
+t11 := 17;
+
+adj_fill.A(7) % fixed x points
+ (1, 6) % fixed y points
+ () % tied points
+ ((2,11), (4,9)) % verticals
+ ((3,10), (5,8)) % horizontals
+ ((1302,1183){-32,21}...{-32,21} % 0
+ (1270,1204){-4,346}... % 1
+ (1161,1594){-327,492}... % 2
+ (1028,1674){-1,0}... % 3
+ (835,1600){-402,-392}... % 4
+ (600,919){0,-1}... % 5
+ (788,338){409,-416}... % 6
+ (1057,217){1,0}... % 7
+ (1319,283){555,255}...{353,290} % *8
+ (1612,472)-- % 9
+ (1685,409){-399,-439}... % 10
+ (819,-36){-1,0}... % 11
+ (393,131){-391,425}... % 12
+ (203,713){0,1}... % 13
+ (522,1626){1,1}... % 14
+ (1111,1834){1,0}... % 15
+ (1520,1700){283,-301}...{25,-311} % 16
+ (1636,1404)--cycle); % 17
+
+endchar(leftc#);
+
+"rbld";
+
+charbegin( "d", 2063h# + leftd# + rightd#, ascender*v#, baseline );
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+t9 := 14;
+t10 := 16;
+t11 := 19;
+
+adj_fill.A(1, 9) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (6,3), (7,4)) % tied points
+ ((5,11)) % verticals
+ ((1,2), (8,10)) % horizontals
+ ((1053,2501){2,-116}...{2,-116} % 0
+ (1055,2385){384,-42}... % 1
+ (1276,2349){321,-126}... % 2
+ (1360,2265){108,-249}... % 3
+ (1380,2148){20,-459}...{0,-1} % *4
+ (1380,1806){-70,-171}...{-70,-171} % 5
+ (1310,1635){1,-1}... % 6
+ (1360,1526){68,-294}... % *7
+ (1378,1341){0,-892}...{0,-892} % 8
+ (1378,449){-4,-209}...{-4,-209} % 9
+ (1374,240){17,-233}... % 10
+ (1459,12){1,-1}... % 11
+ (1591,-39){1,0}... % 12
+ (1859,58){572,371}...{239,274} % *13
+ (2163,332)-- % 14
+ (2106,415){-235,-204}... % 15
+ (1867,279){-1,0}... % 16
+ (1802,319){-174,300}... % 17
+ (1756,529){-43,857}... % *18
+ (1759,1176){0,1}...{42,948} % 19
+ (1805,2589)--cycle); % 20
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 13;
+t9 := 16;
+t10 := 17;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (5,1), (6,2), (10,3)) % tied points
+ ((3,8)) % verticals
+ ((2,9), (4,7)) % horizontals
+ ((1374,240){-20,-15}... % 0
+ (1028,33){-646,-278}... % *1
+ (728,-38){-1,0}... % 2
+ (403,83){-1,1}... % 3
+ (183,715){0,1}... % 4
+ (256,1225){282,872}... % *5
+ (465,1587){1,1}... % 6
+ (1048,1831){1,0}...{635,-83} % 7
+ (1380,1806)-- % 8
+ (1310,1635){-1,1}... % 9
+ (1113,1688){-1,0}... % 10
+ (806,1547){-1,-1}... % 11
+ (654,1277){-198,-672}... % *12
+ (595,875){0,-1}... % 13
+ (642,536){150,-555}... % *14
+ (758,320){1,-1}... % 15
+ (975,234){1,0}...{153,194} % 16
+ (1378,449)--cycle); % 17
+
+endchar(leftd#);
+
+"rble";
+
+charbegin( "e", 1853h# + lefte# + righte#, lcbody*v#, baseline );
+
+
+
+
+n := 13;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+t11 := 19;
+t12 := 21;
+t13 := 24;
+
+adj_fill.A(8, 13) % fixed x points
+ (7, 13) % fixed y points
+ ((1,1), (4,1), (5,2), (13,2)) % tied points
+ ((2,12), (5,10)) % verticals
+ ((3,11), (6,9)) % horizontals
+ ((617,941){671,230}... % 0
+ (1288,1171){645,230}... % 1
+ (1365,1222){1,1}... % 2
+ (1384,1271){0,1}... % 3
+ (1274,1598){-1,1}... % 4
+ (1076,1684){-1,0}... % 5
+ (822,1584){-1,-1}...{0,-294} % 6
+ (617,941){-2,-154}...{-2,-154} % 7
+ (615,787){0,-1}... % 8
+ (786,327){1,-1}... % 9
+ (1115,194){1,0}... % 10
+ (1358,242){547,190}...{316,179} % *11
+ (1662,384)-- % 12
+ (1704,299){-313,-257}... % 13
+ (1297,34){-761,-357}... % *14
+ (943,-58){-1,0}... % 15
+ (419,131){-1,1}... % 16
+ (214,755){0,1}... % 17
+ (524,1599){1,1}... % 18
+ (1154,1830){1,0}... % 19
+ (1654,1673){1,-1}... % 20
+ (1796,1292){0,-1}... % 21
+ (1778,1206){-8,-10}... % 22
+ (1701,1155){-1060,-368}...{-1086,-368} % 23
+ (615,787)--cycle); % 24
+
+endchar(lefte#);
+
+"rblf";
+
+charbegin( "f", 1248h# + leftf# + rightf#, ascender*v#, baseline );
+
+n := 17;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 10;
+t9 := 11;
+t10 := 12;
+t11 := 13;
+t12 := 14;
+t13 := 15;
+t14 := 16;
+t15 := 19;
+t16 := 21;
+t17 := 23;
+
+adj_fill.A(2, 6, 14, 17) % fixed x points
+ (9, 10) % fixed y points
+ ((1,2), (9,1), (10,1), (17,2)) % tied points
+ ((4,15), (7,12), (8,11)) % verticals
+ ((3,16), (5,6), (13,14)) % horizontals
+ ((1123,2216){109,354}...{109,354} % 0
+ (1232,2570){-281,117}... % 1
+ (1047,2618){-1,0}... % 2
+ (858,2593){-516,-216}... % 3
+ (646,2425){-385,-464}... % *4
+ (473,2129){-231,-560}...{-24,-710} % 5
+ (405,1643){-385,0}...{-385,0} % 6
+ (20,1643){-52,-163}...{-52,-163} % 7
+ (-32,1480){429,0}...{429,0} % 8
+ (397,1480){-10,-1482}...{-10,-1482} % 9
+ (387,-2){43,-36}...{43,-36} % 10
+ (430,-38)-- % 11
+ (430,-38){380,106}...{380,106} % 12
+ (810,68){-44,1412}...{-44,1412} % 13
+ (766,1480){409,0}...{409,0} % 14
+ (1175,1480){56,163}...{56,163} % 15
+ (1231,1643){-1,0}... % 16
+ (888,1671){-536,107}... % *17
+ (695,1750){-100,95}... % 18
+ (600,2002){0,1}... % 19
+ (720,2242){274,192}... % 20
+ (890,2284){1,0}...{226,-212} % 21
+ (1073,2207){50,9}...{50,9} % 22
+ (1123,2216)--cycle); % 23
+
+endchar(leftf#);
+
+"rblg";
+
+charbegin( "g", 2072h# + leftg# + rightg#, lcbody*v#, descender*v#);
+
+%rotation of 3 degrees, watch out for lateral drift!
+rot := identity rotated 3 shifted (0,-60v);
+
+n := 8;
+t1 := 2.1;
+t2 := 5.1;
+t3 := 6;
+t4 := 7;
+t5 := 9.5;
+t6 := 13;
+t7 := 14;
+t8 := 15;
+
+adj_fill.A(3) % fixed x points
+ (4,8) % fixed y points
+ ((6,3), (7,1), (8,2)) % tied points
+ ((1,6)) % verticals
+ ((2,5)) % horizontals
+ ((1776,1793){42,-18}...{42,-18} % 0
+ (1818,1775){-122,-1286}... % 1
+ (1797,720){0,-1}... % 2
+ (1721,-11){-292,-1165}... % *3
+ (1505,-445){-486,-452}... % 4
+ (788,-736){-671,-14}...{-323,410} % 5
+ (218,-504){202,323}...{202,323} % 6
+ (420,-181)-- % 7
+ (504,-200){327,-658}... % 8
+ (651,-441){374,-378}... % 9
+ (911,-567){616,3}... % 10
+ (1225,-413){405,456}... % 11
+ (1343,-163){155,629}...{-3,245} % *12
+ (1380,216){8,219}...{8,219} % 13
+ (1388,435){215,1277}...{215,1277} % 14
+ (1603,1712)--cycle); % 15
+
+
+n := 11;
+t1 := 0;
+t2 := 1.1;
+t3 := 4.1;
+t4 := 6.1;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 10.5;
+t9 := 13.5;
+t10 := 15.5;
+t11 := 18;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((1,1), (6,1), (7,2), (11,3)) % tied points
+ ((3,9)) % verticals
+ ((4,8), (2,10)) % horizontals
+ ((1388,435){-271,-473}... % 0
+ (986,228){-681,53}... % 1
+ (763,340){-352,425}... % 2
+ (673,544){-126,523}... % *3
+ (637,863){-13,633}... % 4
+ (821,1571){391,484}... % 5
+ (1122,1693){490,9}... % 6
+ (1339,1593){403,-417}... % 7
+ (1394,1361){-6,-926}...{-6,-926} % 8
+ (1388,435)-- % 9
+ (1603,1712){-568,257}... % 10
+ (1053,1836){-666,20}... % 11
+ (495,1605){-1,-1}... % 12
+ (325,1264){-243,-903}... % *13
+ (252,702){-21,-714}... % 14
+ (449,60){1,-1}... % 15
+ (749,-57){665,16}... % 16
+ (1038,16){631,273}...{538,389} % *17
+ (1380,216)--cycle); % 18
+endchar(leftg#);
+
+"rblh";
+
+charbegin( "h", 2034h# + lefth# + righth#, ascender*v#, baseline );
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+
+adj_fill.A(1, 2) % fixed x points
+ (4, 7) % fixed y points
+ ((5,1), (6,2)) % tied points
+ ((3,6)) % verticals
+ ((1,2)) % horizontals
+ ((0,2496){0,-125}...{0,-125} % 0
+ (0,2371){158,-12}... % 1
+ (188,2355){280,-70}... % 2
+ (305,2235){1,-4}... % 3
+ (319,1201){0,-1}...{-35,-822} % 4
+ (302,13){45,-40}...{45,-40} % 5
+ (347,-27)-- % 6
+ (700,93){-13,1313}...{-13,1313} % 7
+ (687,1406){-12,153}...{-12,153} % 8
+ (675,1559){29,1019}...{29,1019} % 9
+ (704,2578)--cycle); % 10
+
+n := 9;
+t1 := 1;
+t2 := 4;
+t3 := 7;
+t4 := 9;
+t5 := 10;
+t6 := 12;
+t7 := 14;
+t8 := 16;
+t9 := 18;
+
+adj_fill.B(9) % fixed x points
+ () % fixed y points
+ ((4,2), (5,1)) % tied points
+ ((2,7)) % verticals
+ ((3,6), (1,8)) % horizontals
+ ((2077,456){-221,-213}... % 0
+ (1840,333){-409,1}... % 1
+ (1743,397){-147,231}... % 2
+ (1696,615){-29,733}... % *3
+ (1714,1130){6,100}... % 4
+ (1702,1508){-96,602}... % *5
+ (1618,1732){-270,308}... % 6
+ (1360,1840){-1,0}... % 7
+ (1069,1768){-685,-281}...{-632,-397} % *8
+ (675,1559)-- % 9
+ (687,1406){544,419}... % 10
+ (896,1537){381,176}... % *11
+ (1068,1582){1,0}... % 12
+ (1281,1502){342,-368}... % 13
+ (1346,938){-17,-424}... % 14
+ (1430,54){174,-193}... % 15
+ (1641,-31){1,0}... % 16
+ (1870,82){508,427}...{121,168} % *17
+ (2149,396)--cycle); % 18
+
+
+endchar(lefth#);
+
+"rbli";
+
+charbegin( "i", 1034h# + lefti# + righti#, ascender*v#, baseline );
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 16;
+t9 := 19;
+
+adj_fill.A(1, 6) % fixed x points
+ (5) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((2,9), (4,7)) % horizontals
+ ((-67,1517){274,239}... % 0
+ (246,1745){554,307}... % *1
+ (487,1824){1,0}... % 2
+ (658,1738){147,-268}... % 3
+ (695,1562){30,-757}... % *4
+ (688,981){0,-1}... % 5
+ (690,518){35,-635}... % *6
+ (723,346){114,-244}... % 7
+ (833,268){1,0}... % 8
+ (936,315){232,177}...{180,223} % *9
+ (1065,445)-- % 10
+ (1145,366){-192,-273}... % 11
+ (865,62){-543,-413}... % *12
+ (602,-47){-1,0}... % 13
+ (401,55){-291,433}... % 14
+ (341,289){-64,884}... % *15
+ (337,939){0,1}... % 16
+ (337,1374){-40,578}... % *17
+ (297,1517){-176,223}... % 18
+ (221,1555){-1,0}...{-321,-302} % 19
+ (2,1437)--cycle); % 20
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((1,3)) % verticals
+ ((2,4)) % horizontals
+ ((498,2306)-- % 0
+ (278,2305){0,1}... % 1
+ (511,2535){1,0}... % 2
+ (730,2309){0,-1}... % 3
+ (487,2079){-1,0}...{0,1} % 4
+ (278,2305)--cycle); % 5
+
+
+endchar(lefti#);
+
+"rblj";
+
+charbegin( "j", 1020h#+ leftj# + rightj#, ascender*v#, descender*v#);
+
+n := 7;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 13;
+t7 := 16;
+
+adj_fill.A(4, 7) % fixed x points
+ (1) % fixed y points
+ () % tied points
+ ((2,6)) % verticals
+ ((3,5)) % horizontals
+ ((-33,-717){206,137}... % 0
+ (588,-160){285,408}... % 1
+ (726,227){44,486}... % 2
+ (744,947){0,1}... % 3
+ (735,1556){-82,825}... % *4
+ (662,1772){-1,1}... % 5
+ (509,1819){-1,0}... % 6
+ (287,1738){-546,-314}...{-412,-342} % *7
+ (-37,1505)-- % 8
+ (37,1418){425,362}... % 9
+ (264,1548){1,0}... % 10
+ (327,1520){1,-1}... % 11
+ (386,1345){66,-666}... % *12
+ (393,854){0,-1}... % 13
+ (372,85){-112,-1099}... % *14
+ (281,-245){-7,-10}...{-234,-167} % 15
+ (-84,-625)--cycle); % 16
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((1,3)) % verticals
+ ((2,4)) % horizontals
+ ((538,2309)-- % 0
+ (319,2308){0,1}... % 1
+ (532,2551){1,0}... % 2
+ (760,2326){0,-1}... % 3
+ (523,2081){-1,0}...{0,1} % 4
+ (319,2308)--cycle); % 5
+
+endchar(leftj#);
+
+"rblk";
+
+charbegin( "k", 1854h#+ leftk# + rightk#, ascender*v#, baseline );
+
+crotchup := 10*5;
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+
+adj_fill.A(1, 2) % fixed x points
+ (4, 7) % fixed y points
+ ((5,1), (6,2)) % tied points
+ ((3,6)) % verticals
+ ((1,2)) % horizontals
+ ((0,2515){0,-127}...{0,-127} % 0
+ (0,2388){252,-27}... % 1
+ (219,2361){371,-131}... % 2
+ (308,2239){82,-430}... % 3
+ (327,1998){20,-896}... % *4
+ (325,1343){0,-1}...{-21,-702} % 5
+ (315,11){52,-32}...{52,-32} % 6
+ (367,-21)-- % 7
+ (716,94){-16,793}...{-16,793} % 8
+ (700,920+crotchup){0,202}...{0,202} % 9
+ (700,1089){36,1497}...{32,421} % 10
+ (736,2586)--cycle); % 11
+
+n := 2;
+t1 := 0;
+t2 := 1;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((700,1089){0,-202}...{0,-202} % 0
+ (700,(920+crotchup))-- % 1
+ (780,(920+crotchup)){40,202}...{40,202} % 2
+ (780,1089)--cycle); % 3
+
+n := 4;
+t1 := 1;
+t2 := 5;
+t3 := 11;
+t4 := 13;
+
+adj_fill.C() % fixed x points
+ (2, 3) % fixed y points
+ () % tied points
+ () % verticals
+ ((1,4)) % horizontals
+ ((1994,372){-273,-279}... % 0
+ ((1548+60),0){-528,-147}... % 1
+ ((1336+80),50){-323,259}...{-598,835} % 2
+ (780,(920+crotchup)){0,202}...{0,202} % 3
+ (780,1089){915,820}...{255,190} % 4
+ (1653,1907){198,-137}...{198,-137} % 5
+ (1851,1770)-- % 6
+ (1846,1726){-532,-316}...{-281,-234} % 7
+ (1021,1153){-1,-8}... % 8
+ (1020,1145){-.124,.007722}... % 9
+ (1020,1146){.5547,1.832}... % 10
+ (1022,1149){424,-650}... % 11
+ (1584,360){200,-208}... % 12
+ (1715,323){347,93}...{224,201} % 13
+ (1928,466)--cycle); % 14
+
+endchar(leftk#);
+
+"rbll";
+
+charbegin( "l", 1039h#+ leftl# + rightl#, ascender*v#, baseline );
+
+n := 8;
+t1 := 1;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 11;
+t7 := 15;
+t8 := 16;
+
+adj_fill.A(4, 7) % fixed x points
+ (3) % fixed y points
+ () % tied points
+ ((1,6)) % verticals
+ ((7,8), (2,5)) % horizontals
+ ((699,2582){-28,-1726}... % 0
+ (671,856){-28,-1726}... % 1
+ (700,359){102,-215}... % 2
+ (794,281){1,0}... % 3
+ (912,330){260,187}...{181,219} % *4
+ (1054,468)-- % 5
+ (1137,397){-186,-278}... % 6
+ (858,86){-548,-424}... % *7
+ (589,-27){-1,0}... % 8
+ (374,55){-253,346}... % 9
+ (308,307){-61,880}... % *10
+ (313,935){16,549}... % 11
+ (313,1951){-8,611}... % 12
+ (298,2270){-74,394}... % 13
+ (202,2380){-266,71}...{-340,15} % 14
+ (-5,2401){2,110}...{2,110} % 15
+ (-3,2511)--cycle); % 16
+
+
+endchar(leftl#);
+
+"rblm";
+
+charbegin( "m", 3094h#+ leftm# + rightm#, lcbody*v#, baseline );
+
+n := 7;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+
+adj_fill.A(4) % fixed x points
+ (7) % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((1,6)) % verticals
+ ((3,5)) % horizontals
+ ((693,97){0,1311}...{0,1311} % 0
+ (693,1408){-13,159}...{-13,159} % 1
+ (680,1567){-10,415}... % 2
+ (595,1776){-1,1}... % 3
+ (426,1822){-1,0}... % 4
+ (191,1746){-540,-295}...{-357,-307} % *5
+ (-114,1527)-- % 6
+ (-49,1440){347,260}... % 7
+ (192,1564){1,0}... % 8
+ (274,1506){1,-1}... % 9
+ (324,1074){0,-1}...{-10,-365} % 10
+ (299,0){59,-28}...{59,-28} % 11
+ (358,-28)--cycle); % 12
+
+n := 8;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 9;
+t5 := 10;
+t6 := 12;
+t7 := 15;
+t8 := 17;
+
+adj_fill.B() % fixed x points
+ (8) % fixed y points
+ ((1,4), (2,3), (4,1), (5,2)) % tied points
+ ((1,7)) % verticals
+ ((3,6)) % horizontals
+ ((1706,97){0,1269}...{0,1269} % 0
+ (1706,1366){7,190}... % 1
+ (1713,1556){.03682,-.000678}... % 2
+ (1716,1537){0,-30}... % *3
+ (1713,1526){-131,544}... % 4
+ (1594,1746){-1,1}... % 5
+ (1334,1832){-1,0}... % 6
+ (1044,1765){-633,-262}...{-321,-227} % *7
+ (701,1570){-21,-3}...{-21,-3} % 8
+ (680,1567)-- % 9
+ (693,1408){372,264}... % 10
+ (932,1552){412,194}... % *11
+ (1105,1602){1,0}... % 12
+ (1245,1545){1,-1}... % 13
+ (1316,1376){96,-474}... % *14
+ (1341,1071){0,-1}...{-8,-372} % 15
+ (1330,-5){48,-30}...{48,-30} % 16
+ (1378,-35)--cycle); % 17
+
+n := 9;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 8;
+t5 := 9;
+t6 := 11;
+t7 := 14;
+t8 := 18;
+t9 := 20;
+
+adj_fill.C(9) % fixed x points
+ () % fixed y points
+ ((4,3), (5,4)) % tied points
+ ((2,7)) % verticals
+ ((3,6), (1,8)) % horizontals
+ ((3133,439){-304,-241}... % 0
+ (2886,335){-1,0}... % 1
+ (2797,386){-1,1}... % 2
+ (2753,521){-35,618}... % *3
+ (2762,1004){0,1}... % 4
+ (2666,1728){-1,1}... % 5
+ (2386,1829){-1,0}... % 6
+ (2101,1752){-673,-303}...{-588,-403} % *7
+ (1713,1526)-- % 8
+ (1706,1366){416,313}... % 9
+ (1969,1535){452,228}... % *10
+ (2158,1594){1,0}... % 11
+ (2306,1535){1,-1}... % 12
+ (2374,1364){92,-487}... % *13
+ (2398,1048){0,-1}... % 14
+ (2392,480){.223,-763.4}... % *15
+ (2398,285){81,-1008}... % *16
+ (2479,40){1,-1}... % 17
+ (2634,-26){1,0}... % 18
+ (2867,76){542,389}...{180,200} % *19
+ (3176,363)--cycle); % 20
+
+endchar(leftm#);
+
+"rbln";
+
+charbegin( "n", 2055h#+ leftn# + rightn#, lcbody*v#, baseline );
+
+n := 7;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 11;
+t7 := 13;
+
+adj_fill.A(4) % fixed x points
+ (7) % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((1,6)) % verticals
+ ((3,5)) % horizontals
+ ((706,103){-16,1295}...{-16,1295} % 0
+ (690,1398){-7,164}...{-7,164} % 1
+ (683,1562){-13,415}... % 2
+ (595,1799){-1,1}... % 3
+ (445,1840){-1,0}... % 4
+ (207,1759){-560,-315}...{-302,-260} % *5
+ (-115,1525)-- % 6
+ (-39,1444){356,301}... % 7
+ (91,1535){234,122}... % *8
+ (195,1566){1,0}... % 9
+ (271,1537){1,-1}... % 10
+ (325,1097){0,-1}...{-24,-1086} % 11
+ (301,11){40,-26}...{40,-26} % 12
+ (341,-15)--cycle); % 13
+
+n := 9;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 9;
+t5 := 11;
+t6 := 13;
+t7 := 16;
+t8 := 18;
+t9 := 19;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((1,1), (9,2)) % tied points
+ ((3,7)) % verticals
+ ((2,8), (4,6)) % horizontals
+ ((683,1562){30,-1}... % 0
+ (713,1561){168,114}... % 1
+ (1075,1760){665,267}... % *2
+ (1378,1828){1,0}... % 3
+ (1638,1720){1,-1}... % 4
+ (1704,1527){77,-709}... % *5
+ (1715,1011){0,-1}... % 6
+ (1712,515){46,-647}... % *7
+ (1761,364){1,-1}... % 8
+ (1854,324){1,0}...{339,283} % 9
+ (2105,445)-- % 10
+ (2150,365){-324,-404}... % 11
+ (1859,69){-527,-401}... % *12
+ (1623,-36){-1,0}... % 13
+ (1441,38){-1,1}... % 14
+ (1369,253){-77,850}... % *15
+ (1364,888){0,1}... % 16
+ (1272,1511){-1,1}... % 17
+ (1084,1570){-1,0}...{-292,-172} % 18
+ (690,1398)--cycle); % 19
+
+endchar(leftn#);
+
+"rblo";
+
+charbegin( "o", 2062h#+ lefto# + righto#, lcbody*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 9;
+t5 := 12;
+t6 := 13;
+t7 := 15;
+t8 := 17;
+t9 := 20;
+t10 := 22;
+
+adj_fill.A() % fixed x points
+ (1, 6) % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((5,6), (3,8), (1,10)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((600,866){0,-1}... % 0
+ (649,480){188,-643}... % *1
+ (788,223){1,-1}... % 2
+ (1002,112){1,0}... % 3
+ (1270,200){1,1}... % 4
+ (1404,493){181,792}... % *5
+ (1451,992){0,1}... % 6
+ (1410,1329){-157,557}... % *7
+ (1294,1549){-1,1}... % 8
+ (1043,1650){-1,0}... % 9
+ (795,1539){-1,-1}... % 10
+ (651,1270){-195,-673}...{0,-1} % *11
+ (600,866)-- % 12
+ (166,863){0,1}... % 13
+ (416,1541){1,1}... % 14
+ (1064,1799){1,0}... % 15
+ (1660,1596){1,-1}... % 16
+ (1885,1014){0,-1}... % 17
+ (1817,536){-261,-815}... % *18
+ (1624,199){-1,-1}... % 19
+ (976,-41){-1,0}... % 20
+ (409,137){-1,1}...{0,1} % 21
+ (166,863)--cycle); % 22
+
+endchar(lefto#);
+
+"rblp";
+
+charbegin( "p", 2077h#+ leftp# + rightp#, lcbody*v#, descender*v#);
+
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+
+adj_fill.A(2, 6) % fixed x points
+ (9) % fixed y points
+ ((1,4), (2,1), (3,2), (4,3)) % tied points
+ ((3,8)) % verticals
+ ((5,7)) % horizontals
+ ((688,-630){0,726}...{0,726} % 0
+ (688,96){108,159}...{108,159} % 1
+ (796,255){-1,1}... % 2
+ (727,391){-90,348}... % *3
+ (706,603){15,752}...{0,752} % 4
+ (706,1355){9,185}...{9,185} % 5
+ (715,1540){0,1}... % 6
+ (643,1758){-1,1}... % 7
+ (494,1805){-1,0}... % 8
+ (260,1730){-533,-291}...{-415,-363} % *9
+ (-39,1514)-- % 10
+ (25,1436){446,310}... % 11
+ (221,1529){1,0}... % 12
+ (304,1492){1,-1}... % 13
+ (350,1100){0,-1}...{-64,-1806} % 14
+ (286,-706){34,-33}...{34,-33} % 15
+ (320,-739)--cycle); % 16
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 17;
+t10 := 18;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (5,3), (6,2), (10,1)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((688,96){342,-222}... % 0
+ (1022,0){1,0}... % 1
+ (1637,269){1,1}... % 2
+ (1896,1052){0,1}... % 3
+ (1846,1416){-192,616}... % *4
+ (1704,1668){-1,1}... % 5
+ (1327,1804){-1,0}... % 6
+ (1052,1736){-612,-264}...{-564,-404} % *7
+ (715,1540)-- % 8
+ (706,1355){590,446}... % 9
+ (921,1487){393,177}... % *10
+ (1099,1532){1,0}... % 11
+ (1344,1442){1,-1}... % 12
+ (1454,1217){148,-591}... % *13
+ (1492,851){0,-1}... % 14
+ (1443,498){-187,-598}... % *15
+ (1305,253){-1,-1}... % 16
+ (1036,154){-1,0}...{-1,1} % 17
+ (796,255)--cycle); % 18
+
+endchar(leftp#);
+
+"rblq";
+
+charbegin( "q", 2058h#+ leftq# + rightq#, lcbody*v#, descender*v#);
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 8.442;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,4), (2,1), (3,2), (4,3)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1356,-715){25,957}...{25,957} % 0
+ (1381,242){-1,214}...{-1,214} % 1
+ (1380,456){-1,836}... % 2
+ (1379,1292){-1,836}... % 3
+ (1359,1468){-76,287}...{-1,1} % *4
+ (1303,1579){199,139}...{199,139} % 5
+ (1502,1718){194,272}...{194,272} % 6
+ (1696,1990)-- % 7
+ (1778,1981){-40,-756}...{10,-408} % 8
+ (1774,-615){-367,-125}...{-367,-125} % 9
+ (1407,-740)--cycle); % 10
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 16;
+t10 := 17;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (5,1), (6,4), (10,3)) % tied points
+ ((3,8)) % verticals
+ ((2,9), (4,7)) % horizontals
+ ((1303,1579){-1,1}... % 0
+ (1069,1685){-1,0}... % 1
+ (839,1581){-1,-1}... % 2
+ (684,1296){-210,-710}... % *3
+ (629,871){0,-1}... % 4
+ (669,531){152,-558}... % *5
+ (781,313){1,-1}... % 6
+ (991,226){1,0}...{276,434} % 7
+ (1380,456)-- % 8
+ (1381,242){-289,-212}... % 9
+ (1014,26){-680,-290}... % *10
+ (701,-48){-1,0}... % 11
+ (387,87){-1,1}... % 12
+ (281,327){-143,659}... % *13
+ (244,746){0,1}... % 14
+ (540,1617){1,1}... % 15
+ (1102,1821){1,0}...{213,-130} % 16
+ (1502,1718)--cycle); % 17
+
+endchar(leftq#);
+
+"rblr";
+
+charbegin( "r", 1470h#+ leftr# + rightr#, lcbody*v#, baseline );
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 14;
+
+adj_fill.A(6) % fixed x points
+ (1) % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((2,8)) % verticals
+ ((5,7)) % horizontals
+ ((394,-22){358,145}...{358,145} % 0
+ (752,123){-48,702}... % 1
+ (704,825){-48,702}... % 2
+ (718,1164){105,545}...{1,1} % *3
+ (809,1370){-109,106}...{-109,106} % 4
+ (700,1476){0,1}... % 5
+ (684,1650){-61,275}... % *6
+ (639,1751){-1,1}... % 7
+ (480,1808){-1,0}... % 8
+ (246,1730){-532,-300}...{-494,-445} % *9
+ (-52,1508)-- % 10
+ (12,1421){309,286}... % 11
+ (212,1536){1,0}... % 12
+ (299,1514){1,-1}... % 13
+ (350,1089){0,-1}...{-12,-1091} % 14
+ (338,-2)--cycle); % 15
+
+n := 5;
+t1 := 2;
+t2 := 5;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+
+adj_fill.B() % fixed x points
+ (5) % fixed y points
+ ((2,2), (3,1)) % tied points
+ () % verticals
+ ((1,4)) % horizontals
+ ((1510,1466){0,1}... % 0
+ (1430,1724){-1,1}... % 1
+ (1245,1798){-1,0}... % 2
+ (1004,1712){-506,-329}...{-400,-472} % *3
+ (739,1469){-39,7}...{-39,7} % 4
+ (700,1476)-- % 5
+ (809,1370){1,1}... % 6
+ (1025,1484){1,0}... % 7
+ (1150,1425){1,-1}...{84,-451} % 8
+ (1215,1280){44,-28}...{44,-28} % 9
+ (1259,1252)--cycle); % 10
+
+endchar(leftr#);
+
+"rbls";
+
+charbegin( "s", 1476h#+ lefts# + rights#, lcbody*v#, baseline );
+
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 9;
+t6 := 11;
+t7 := 14;
+t8 := 15;
+t9 := 16;
+t10 := 18;
+t11 := 20;
+t12 := 24;
+t13 := 26;
+t14 := 29;
+
+adj_fill.A(2, 7, 9, 14) % fixed x points
+ (1, 7, 8, 14) % fixed y points
+ ((1,2), (7,1), (8,1), (14,2)) % tied points
+ ((4,12), (5,11)) % verticals
+ ((3,13), (6,10)) % horizontals
+ ((1065,1301){246,277}...{246,277} % 0
+ (1311,1578){-152,327}... % 1
+ (1156,1755){-10,7}... % 2
+ (807,1827){-1,0}... % 3
+ (283,1640){-1,-1}... % 4
+ (139,1223){0,-1}... % 5
+ (270,925){1,-1}... % 6
+ (575,703){322,-167}... % 7
+ (876,520){1,-1}... % 8
+ (953,352){0,-1}... % 9
+ (890,171){-1,-1}... % 10
+ (675,80){-1,0}... % 11
+ (435,184){-1,1}...{-85,380} % 12
+ (281,536){-52,3}...{-52,3} % 13
+ (229,539)-- % 14
+ (229,539){-212,-345}...{-212,-345} % 15
+ (17,194){201,-251}... % 16
+ (221,21){449,-215}... % 17
+ (599,-57){1,0}... % 18
+ (1186,158){1,1}... % 19
+ (1330,512){0,1}... % 20
+ (1213,810){-1,1}... % 21
+ (886,1000){-451,220}... % 22
+ (561,1206){-1,1}... % 23
+ (458,1426){0,1}... % 24
+ (517,1625){1,1}... % 25
+ (684,1692){1,0}... % 26
+ (865,1631){1,-1}...{60,-445} % 27
+ (1014,1318){51,-17}...{51,-17} % 28
+ (1065,1301)--cycle); % 29
+
+endchar(lefts#);
+
+"rblt";
+
+charbegin( "t", 1270h#+ leftt# + rightt#, theight*v#, baseline );
+
+n := 10;
+t1 := 2;
+t2 := 3;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+t10 := 18;
+t11 := 21;
+
+adj_fill.A(2, 5, 10) % fixed x points
+ (6, 11) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((1,2), (4,7), (9,10)) % horizontals
+ ((380,2176){47,-556}...{11,-572} % 0
+ (391,1604){-361,0}...{-361,0} % 1
+ (30,1604){-51,-153}...{-51,-153} % 2
+ (-21,1451){416,0}...{416,0} % 3
+ (395,1451){0,-848}... % 4
+ (395,603){0,-1}... % 5
+ (419,243){95,-544}... % *6
+ (490,59){1,-1}... % 7
+ (725,-39){1,0}... % 8
+ (1001,68){554,402}...{172,248} % *9
+ (1279,363)-- % 10
+ (1220,428){-201,-179}... % 11
+ (1060,310){-287,-159}... % *12
+ (933,269){-1,0}... % 13
+ (834,311){-1,1}... % 14
+ (761,862){0,1}...{0,589} % 15
+ (761,1451){455,0}...{455,0} % 16
+ (1216,1451){64,153}...{64,153} % 17
+ (1280,1604){-519,0}...{-519,0} % 18
+ (761,1604){44,679}...{42,372} % 19
+ (805,2283){-50,24}...{-50,24} % 20
+ (755,2307)--cycle); % 21
+
+endchar(leftt#);
+
+"rblu";
+
+charbegin( "u", 2053h#+ leftu# + rightu#, lcbody*v#, baseline );
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 12;
+
+adj_fill.A(4) % fixed x points
+ (1) % fixed y points
+ ((6,1), (7,2)) % tied points
+ ((2,7)) % verticals
+ ((3,5)) % horizontals
+ ((1713,1855){42,-37}...{42,-37} % 0
+ (1755,1818){-21,-485}... % 1
+ (1738,804){3,-650}... % 2
+ (1742,510){30,-402}... % *3
+ (1768,402){311,-504}... % 4
+ (1873,332){578,-1}...{650,437} % 5
+ (2120,448)-- % 6
+ (2146,368){-452,-512}... % 7
+ (1839,75){-537,-399}... % *8
+ (1609,-31){-742,-12}... % 9
+ (1424,36){-366,476}...{-97,606} % 10
+ (1344,264){17,208}...{17,208} % 11
+ (1361,472){6,584}...{-35,650} % 12
+ (1346,1726)--cycle); % 13
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 15;
+t9 := 17;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((1,2), (9,1)) % tied points
+ ((3,7)) % verticals
+ ((4,6), (2,8)) % horizontals
+ ((1361,472){-295,-400}... % 0
+ (980,245){-695,-6}... % 1
+ (757,319){-359,355}... % 2
+ (669,1022){17,506}... % 3
+ (688,1581){-36,738}... % *4
+ (633,1760){-1,1}... % 5
+ (424,1835){-1,0}... % 6
+ (209,1760){-516,-290}...{-550,-460} % *7
+ (-92,1545)-- % 8
+ (-41,1457){580,394}... % 9
+ (158,1554){648,13}... % 10
+ (255,1504){290,-614}... % 11
+ (289,997){-2,-515}... % 12
+ (300,338){94,-906}... % *13
+ (383,91){375,-385}... % 14
+ (710,-29){607,-3}... % 15
+ (963,45){634,293}...{557,366} % *16
+ (1344,264)--cycle); % 17
+
+endchar(leftu#);
+
+"rblv";
+
+charbegin( "v", 1636h#+ leftv# + rightv#, lcbody*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 10;
+t5 := 12;
+t6 := 14;
+t7 := 20;
+t8 := 23;
+t9 := 24;
+t10 := 25;
+
+adj_fill.A(5) % fixed x points
+ (1, 9) % fixed y points
+ ((1,1), (10,1)) % tied points
+ ((2,8)) % verticals
+ ((4,6), (3,7)) % horizontals
+ ((1182,1580){4,-72}... % 0
+ (1186,1508){153,-212}... % 1
+ (1321,1118){0,-1}... % 2
+ (1246,800){-201,-390}... % 3
+ (997,466){-291,-298}... % 4
+ (913,419){-1,0}... % 5
+ (870,456){-1,1}... % 6
+ (806,588){-163,590}... % *7
+ (707,1046){-141,620}... % 8
+ (473,1759){-1,1}... % 9
+ (341,1802){-1,0}... % 10
+ (128,1730){-529,-281}...{-291,-221} % *11
+ (-188,1521)-- % 12
+ (-125,1428){449,247}... % 13
+ (94,1523){1,0}... % 14
+ (187,1485){100,-120}... % 15
+ (247,1353){163,-580}... % *16
+ (350,905){99,-411}... % 17
+ (516,189){270,-926}... % *18
+ (620,-21){1,-1}... % 19
+ (675,-47){1,0}... % 20
+ (816,58){1,1}... % 21
+ (1387,754){278,421}... % 22
+ (1644,1439){0,1}...{-223,149} % 23
+ (1466,1814){-224,-114}...{-208,-276} % 24
+ (1182,1580)--cycle); % 25
+
+endchar(leftv#);
+
+"rblw";
+
+charbegin( "w", 2890h#+ leftw# + rightw#, lcbody*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 15;
+t5 := 17;
+t6 := 19;
+t7 := 29;
+t8 := 34;
+t9 := 35;
+t10 := 36;
+
+adj_fill.A(5) % fixed x points
+ (1, 9) % fixed y points
+ ((1,1), (10,1)) % tied points
+ ((2,8)) % verticals
+ ((4,6), (3,7)) % horizontals
+ ((2415,1605){-8,-74}...{-8,-74} % 0
+ (2407,1531){174,-290}... % 1
+ (2552,1117){0,-1}... % 2
+ (2419,736){-261,-396}... % 3
+ (2153,424){-388,-337}... % 4
+ (2101,403){-1,0}... % 5
+ (2069,448){-123,317}...{-134,747} % 6
+ (1702,1818){-43,6}...{-43,6} % 7
+ (1659,1824){-181,-112}...{-181,-112} % 8
+ (1478,1712){-141,-312}...{-433,-719} % 9
+ (829,514){-34,10}...{-34,10} % 10
+ (795,524){-119,888}... % 11
+ (676,1412){-119,888}... % 12
+ (643,1642){-68,310}... % *13
+ (608,1722){-1,1}... % 14
+ (421,1813){-1,0}... % 15
+ (185,1734){-549,-307}...{-499,-432} % *16
+ (-128,1506)-- % 17
+ (-60,1436){353,234}... % 18
+ (161,1510){1,0}... % 19
+ (250,1481){1,-1}... % 20
+ (406,789){41,-366}...{16,-347} % 21
+ (478,-25){38,-23}...{38,-23} % 22
+ (516,-48){228,63}...{228,63} % 23
+ (744,15){306,613}...{107,202} % 24
+ (1401,1254){32,-1}...{32,-1} % 25
+ (1433,1253){317,-1094}... % 26
+ (1750,159){317,-1094}... % 27
+ (1822,2){275,-328}... % 28
+ (1871,-26){1,0}... % 29
+ (1942,-10){434,313}... % 30
+ (2212,253){639,733}... % *31
+ (2581,723){286,392}... % 32
+ (2815,1114){314,708}... % *33
+ (2895,1431){0,1}...{-132,157} % 34
+ (2721,1826){-185,-43}...{-278,-322} % 35
+ (2415,1605)--cycle); % 36
+
+endchar(leftw#);
+
+"rblx";
+
+charbegin( "x", 1650h#+ leftx# + rightx#, lcbody*v#, baseline );
+
+n := 8;
+t1 := 1;
+t2 := 3;
+t3 := 4;
+t4 := 7;
+t5 := 11;
+t6 := 14;
+t7 := 15;
+t8 := 18;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((2,1), (3,2), (6,3), (7,4)) % tied points
+ () % verticals
+ ((4,5), (1,8)) % horizontals
+ ((1613,428){-316,-345}... % 0
+ (1372,285){-1,0}... % 1
+ (1260,346){-1,1}...{-285,607} % 2
+ (893,978){-70,149}...{-70,149} % 3
+ (823,1127){-59,150}... % 4
+ (642,1535){-331,635}... % *5
+ (492,1762){-1,1}... % 6
+ (313,1815){-1,0}... % 7
+ (93,1738){-489,-298}...{-411,-415} % *8
+ (-176,1517)-- % 9
+ (-104,1436){439,316}... % 10
+ (115,1548){1,0}... % 11
+ (208,1510){1,-1}... % 12
+ (331,1326){362,-689}...{163,-350} % *13
+ (570,821){73,-138}...{73,-138} % 14
+ (643,683){330,-679}... % 15
+ (876,215){355,-647}... % *16
+ (998,36){1,-1}... % 17
+ (1182,-45){1,0}... % 18
+ (1428,68){504,425}...{142,227} % *19
+ (1686,380)--cycle); % 20
+
+n := 2;
+t1 := 0;
+t2 := 4;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((823,1127){234,302}...{251,233} % 0
+ (1420,1808){42,0}...{42,0} % 1
+ (1462,1808)-- % 2
+ (1604,1655){-296,-220}...{-178,-200} % 3
+ (893,978)--cycle); % 4
+
+n := 2;
+t1 := 0;
+t2 := 4;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (2,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((570,821){-195,-207}...{-225,-398} % 0
+ (-3,71)-- % 1
+ (169,-28){55,15}...{55,15} % 2
+ (224,-13){156,404}...{236,298} % 3
+ (643,683)--cycle); % 4
+
+endchar(leftx#);
+
+"rbly";
+
+%charbegin( "y", 2052h#+ lefty# + righty#, lcbody*v#, descender*v#);
+charbegin( "y", 2052h#+ lefty# + righty#, lcbody*v#, depthy*v#); % DEK
+
+n := 10;
+t1 := 1;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+t9 := 14;
+t10 := 16;
+
+adj_fill.A(5, 7) % fixed x points
+ (4, 6, 10) % fixed y points
+ ((1,3), (2,1), (5,2), (6,2)) % tied points
+ ((2,9)) % verticals
+ ((3,8)) % horizontals
+ ((1371,1687){36,-302}...{-49,-641} % 0
+ (1381,445){-17,-209}...{-17,-209} % 1
+ (1364,236){11,-371}... % 2
+ (1331,-173){-154,-662}... % *3
+ (1210,-426){-1,-1}... % 4
+ (920,-562){-1,0}... % 5
+ (665,-469){-1,1}...{-169,480} % 6
+ (509,-194){-65,-5}...{-65,-5} % 7
+ (444,-199)-- % 8
+ (444,-199){-205,-313}...{392,-210} % 9
+ (239,-512){231,-283}... % 10
+ (415,-669){392,-175}... % 11
+ (787,-746){1,0}... % 12
+ (1440,-458){1,1}... % 13
+ (1761,475){0,1}...{0,1} % 14
+ (1778,1805){-62,16}...{-62,16} % 15
+ (1716,1821)--cycle); % 16
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 14;
+t8 := 17;
+t9 := 19;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((1,3), (9,1)) % tied points
+ ((3,7)) % verticals
+ ((4,6), (2,8)) % horizontals
+ ((1381,445){-248,-324}... % 0
+ (983,230){-1,0}... % 1
+ (766,312){-1,1}... % 2
+ (702,497){-76,669}... % *3
+ (690,981){0,1}... % 4
+ (696,1569){-51,763}... % *5
+ (639,1744){-1,1}... % 6
+ (487,1808){-1,0}... % 7
+ (228,1732){-560,-294}...{-372,-337} % *8
+ (-73,1514)-- % 9
+ (-4,1428){291,276}... % 10
+ (191,1544){1,0}... % 11
+ (280,1508){1,-1}... % 12
+ (338,1327){41,-858}... % *13
+ (321,650){0,-1}... % 14
+ (348,259){105,-593}... % *15
+ (426,57){1,-1}... % 16
+ (694,-40){1,0}... % 17
+ (1000,31){670,276}...{268,188} % *18
+ (1364,236)--cycle); % 19
+
+endchar(lefty#);
+
+"rblz";
+
+charbegin( "z", 1630h#+ leftz# + rightz#, lcbody*v#, baseline );
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+
+adj_fill.A() % fixed x points
+ (2, 5) % fixed y points
+ ((1,2), (7,1)) % tied points
+ () % verticals
+ ((4,6), (3,7)) % horizontals
+ ((1532,1719){-33,69}...{-33,69} % 0
+ (1499,1788){-435,-320}... % 1
+ (1168,1700){-1,0}... % 2
+ (765,1767){-356,93}... % 3
+ (467,1820){-1,0}... % 4
+ (298,1730){-232,-422}...{-232,-422} % 5
+ (66,1308)-- % 6
+ (152,1264){243,327}... % 7
+ (288,1412){248,201}... % *8
+ (400,1465){1,0}... % 9
+ (688,1425){470,-79}...{332,20} % 10
+ (1107,1395)--cycle); % 11
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,3), (3,4), (4,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((1107,1395){-284,-384}... % 0
+ (668,851){-323,-350}...{-367,-548} % 1
+ (-11,34)-- % 2
+ (448,394){315,390}... % 3
+ (863,887){279,316}...{220,297} % 4
+ (1532,1719)--cycle); % 5
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+
+adj_fill.C() % fixed x points
+ (2, 5) % fixed y points
+ ((1,3), (7,4)) % tied points
+ () % verticals
+ ((3,7), (4,6)) % horizontals
+ ((-11,34){71,-60}...{71,-60} % 0
+ (60,-26){179,226}... % 1
+ (231,63){1,0}... % 2
+ (658,15){328,-64}... % 3
+ (1142,-29){1,0}... % 4
+ (1370,37){1,1}... % 5
+ (1509,257){152,317}...{152,317} % 6
+ (1661,574)-- % 7
+ (1579,634){-271,-418}... % 8
+ (1434,451){-1,-1}... % 9
+ (1166,349){-1,0}... % 10
+ (850,364){-372,48}...{-234,-11} % 11
+ (448,394)--cycle); % 12
+
+endchar(leftz#);
+
+% UPPER CASE
+set_stem_round(400,415,450,450,480,520); % DEK
+
+"rbua";
+
+charbegin( "A", 2589h#, capheight*v#, baseline );
+
+n := 4;
+t1 := 0;
+t2 := 4;
+t3 := 5;
+t4 := 6;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,4), (2,1), (3,2), (4,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((1157,2327){-117,-248}...{-477,-781} % 0
+ (-89,33){7,-37}...{7,-37} % 1
+ (-82,-4)-- % 2
+ (339,38){243,680}...{171,344} % 3
+ (712,990){112,197}...{112,197} % 4
+ (824,1187){323,746}...{113,205} % 5
+ (1220,2045)--cycle); % 6
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+t5 := 6;
+t6 := 9;
+t7 := 13;
+t8 := 19;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((2,4), (3,3), (4,5), (5,6)) % tied points
+ () % verticals
+ ((1,8), (6,7)) % horizontals
+ ((829,2404){373,-51}...{313,-47} % 0
+ (1148,2357){9,-30}...{9,-30} % 1
+ (1157,2327){63,-282}...{63,-282} % 2
+ (1220,2045){26,1}...{26,1} % 3
+ (1246,2046){81,-225}...{148,-543} % 4
+ (1496,1180){59,-190}...{59,-190} % 5
+ (1555,990){128,-503}... % 6
+ (1727,318){170,-650}... % 7
+ (1859,29){326,-414}... % 8
+ (2052,-53){1,0}... % 9
+ (2298,-1){608,207}...{322,158} % *10
+ (2660,154)-- % 11
+ (2638,260){-442,-101}... % 12
+ (2397,234){-322,88}... % 13
+ (2298,305){-193,222}... % *14
+ (2204,456){-192,405}...{-254,894} % 15
+ (1959,1162){-234,858}... % 16
+ (1657,2257){-374,1380}...{-93,421} % *17
+ (1585,2542){-753,0}...{-753,0} % 18
+ (832,2542)--cycle); % 19
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,6), (2,1), (3,2), (4,5)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1555,990){-843,0}...{-843,0} % 0
+ (712,990)-- % 1
+ (824,1187){12,-7}...{12,-7} % 2
+ (836,1180){542,-1}...{245,-6} % 3
+ (1496,1180)--cycle); % 4
+
+endchar(0);
+
+"rbub";
+
+charbegin( "B", 2241h#, capheight*v#, baseline );
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 12;
+t5 := 13;
+t6 := 17;
+t7 := 20;
+t8 := 23;
+t9 := 24;
+t10 := 26;
+
+adj_fill.A(8, 9) % fixed x points
+ (4) % fixed y points
+ ((1,4), (4,1), (5,2), (10,3)) % tied points
+ ((4,5), (2,7)) % verticals
+ ((3,6), (8,9)) % horizontals
+ ((1316,1360){1,55}...{1,55} % 0
+ (1317,1415){385,56}... % 1
+ (1816,1651){1,1}... % 2
+ (1975,2036){0,1}... % 3
+ (1845,2400){-1,1}... % 4
+ (1552,2550){-756,202}... % *5
+ (1089,2602){-1,0}...{-1053,0} % 6
+ (36,2602){0,-118}...{0,-118} % 7
+ (36,2484){270,-12}... % 8
+ (181,2451){271,-95}... % 9
+ (296,2368){1,-1}... % 10
+ (345,2094){0,-1}...{0,-1785} % 11
+ (345,309)-- % 12
+ (793,432){0,1801}... % 13
+ (793,2233){0,1}... % 14
+ (800,2390){51,131}... % 15
+ (835,2428){345,120}... % 16
+ (963,2445){1,0}... % 17
+ (1228,2415){433,-115}... % *18
+ (1396,2330){1,-1}... % 19
+ (1518,2006){0,-1}... % 20
+ (1350,1584){-1,-1}... % 21
+ (1128,1465){-557,-161}...{-1,0} % *22
+ (793,1423){0,-140}...{0,-140} % 23
+ (793,1283){513,-5}... % 24
+ (1179,1239){622,-160}...{1,-1} % *25
+ (1415,1123)--cycle); % 26
+
+n := 8;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 10;
+t5 := 11;
+t6 := 12;
+t7 := 14;
+t8 := 16;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (4,4), (5,3), (8,2)) % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((345,309){0,-1}... % 0
+ (318,132){-144,-331}...{-434,-346} % 1
+ (241,50){4,-56}...{4,-56} % 2
+ (245,-6){817,0}... % 3
+ (1062,-6){1,0}... % 4
+ (1534,56){793,240}... % *5
+ (1855,234){1,1}... % 6
+ (2056,766){0,1}... % 7
+ (1905,1150){-1,1}... % 8
+ (1669,1288){-589,210}...{-623,55} % *9
+ (1316,1360)-- % 10
+ (1415,1123){1,-1}... % 11
+ (1568,773){0,-1}... % 12
+ (1386,307){-1,-1}... % 13
+ (919,149){-1,0}... % 14
+ (822,185){-1,1}...{0,1} % 15
+ (793,432)--cycle); % 16
+
+endchar(0);
+
+"rbuc";
+
+charbegin( "C", 2453h#, capheight*v#, baseline );
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 13;
+t9 := 15;
+t10 := 18;
+
+adj_fill.A(6, 10) % fixed x points
+ (1, 5) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((2,9), (4,7)) % horizontals
+ ((2111,1847){-56,9}...{-56,9} % 0
+ (2055,1856){-89,398}... % 1
+ (1827,2319){-1,1}... % 2
+ (1429,2463){-1,0}... % 3
+ (1011,2297){-1,-1}... % 4
+ (683,1331){0,-1}... % 5
+ (1026,371){1,-1}... % 6
+ (1563,159){1,0}...{353,191} % 7
+ (2330,394)-- % 8
+ (2398,298){-469,-363}... % 9
+ (1424,-65){-1,0}... % 10
+ (917,10){-873,289}... % *11
+ (551,224){-1,1}... % 12
+ (188,1224){0,1}... % 13
+ (541,2231){1,1}... % 14
+ (1520,2632){1,0}... % 15
+ (1956,2571){740,-233}... % *16
+ (2260,2399){1,-1}...{124,-219} % 17
+ (2427,2163)--cycle); % 18
+
+endchar(0);
+
+"rbud";
+
+%charbegin( "D", 2885h#, capheight*v#, baseline );
+charbegin( "D", (2885-60)*h#, capheight*v#, baseline ); % DEK
+n := 11;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 15;
+t7 := 16;
+t8 := 20;
+t9 := 24;
+t10 := 27;
+t11 := 30;
+
+adj_fill.A(2, 11) % fixed x points
+ (6, 11) % fixed y points
+ ((1,1), (6,1), (7,2), (11,2)) % tied points
+ ((6,7), (4,9)) % verticals
+ ((5,8), (3,10)) % horizontals
+ ((352,392){-13,-196}... % 0
+ (339,196){-170,-710}...{-296,-482} % 1
+ (267,47){0,-50}...{0,-50} % 2
+ (267,-3){948,0}... % 3
+ (1215,-3){1,0}... % 4
+ (2333,414){1,1}... % 5
+ (2684,1422){0,1}... % 6
+ (2393,2295){-1,1}... % 7
+ (2013,2508){-929,288}... % *8
+ (1464,2583){-1,0}...{-1415,0} % 9
+ (49,2583){0,-113}...{0,-113} % 10
+ (49,2470){366,-61}... % 11
+ (247,2419){281,-130}... % 12
+ (328,2312){105,-375}... % 13
+ (352,1978){0,-1}...{0,-1586} % 14
+ (352,392)-- % 15
+ (804,684){0,1443}... % 16
+ (804,2127){0,1}... % 17
+ (808,2335){102,429}... % 18
+ (856,2408){508,116}... % 19
+ (1106,2425){1,0}... % 20
+ (1605,2365){824,-230}... % *21
+ (1930,2195){1,-1}... % 22
+ (2106,1874){238,-796}... % *23
+ (2168,1399){0,-1}... % 24
+ (2090,829){-301,-965}... % *25
+ (1867,434){-1,-1}... % 26
+ (1100,155){-1,0}... % 27
+ (876,207){-1,1}... % 28
+ (828,292){-60,402}...{0,1} % 29
+ (804,684)--cycle); % 30
+
+endchar(0);
+
+"rbue";
+
+%charbegin( "E", 2053h#, capheight*v#, baseline );
+charbegin( "E", (2053-100)*h#, capheight*v#, baseline ); % DEK
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 6;
+t5 := 9;
+t6 := 11;
+t7 := 13;
+t8 := 16;
+t9 := 17;
+t10 := 21;
+
+adj_fill.A(1, 3, 6) % fixed x points
+ () % fixed y points
+ ((8,1), (9,2)) % tied points
+ ((4,8)) % verticals
+ ((5,7), (2,10)) % horizontals
+ ((1712,2375){0,256}... % 0
+ (1712,2631){-453,-65}...{-1,0} % 1
+ (37,2577){0,-111}...{0,-111} % 2
+ (37,2466){347,-54}... % 3
+ (272,2399){309,-154}... % 4
+ (352,2266){101,-493}... % 5
+ (366,1777){0,-1}...{0,-1590} % 6
+ (366,187){136,-357}...{412,-405} % 7
+ (476,15){317,-96}... % 8
+ (798,-1){1,0}...{668,-48} % 9
+ (1947,-31)-- % 10
+ (2036,252){-35,30}...{-35,30} % 11
+ (2001,282){-909,-54}... % 12
+ (1092,228){-909,-54}... % 13
+ (872,286){-1,1}... % 14
+ (809,454){-68,463}...{0,1} % 15
+ (781,1169){0,368}...{0,368} % 16
+ (781,1537){0,666}... % 17
+ (781,2203){0,1}... % 18
+ (801,2335){74,237}... % 19
+ (821,2370){438,133}... % 20
+ (899,2385){773,-72}...{773,-50} % 21
+ (1672,2335)--cycle); % 22
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 8;
+t6 := 10;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (3,3), (4,3), (6,2)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((781,1169){0,1}... % 0
+ (806,1251){1,1}... % 1
+ (876,1269){1,0}...{584,-30} % 2
+ (1639,1257){0,216}...{0,216} % 3
+ (1639,1473)-- % 4
+ (1639,1473){-43,30}... % 5
+ (1596,1503){-1.527,-.1349}... % 6
+ (1586,1493){-473,-38}... % 7
+ (847,1440){-1,0}... % 8
+ (810,1463){-1,1}...{0,1} % 9
+ (781,1537)--cycle); % 10
+
+%endchar(0);
+endchar(-100h#); % DEK
+
+"rbuf";
+
+%charbegin( "F", 1666h#, capheight*v#, baseline );
+charbegin( "F", 1566h#, capheight*v#, baseline ); % DEK
+
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 13;
+t8 := 15;
+
+adj_fill.A(2, 8) % fixed x points
+ (4) % fixed y points
+ ((5,1), (6,2)) % tied points
+ ((3,5)) % verticals
+ ((1,7)) % horizontals
+ ((1663,2611){-391,-41}...{-1,0} % 0
+ (40,2584){0,-104}...{0,-104} % 1
+ (40,2480){253,-26}... % 2
+ (230,2439){271,-109}... % 3
+ (337,2316){88,-439}... % 4
+ (364,1855){0,-1}...{-30,-818} % 5
+ (329,-14){42,-29}...{42,-29} % 6
+ (371,-43)-- % 7
+ (800,86){-10,1083}...{0,1} % 8
+ (790,1169){0,368}...{0,368} % 9
+ (790,1537){0,717}... % 10
+ (790,2254){46,445}... % 11
+ (797,2363){1,1}... % 12
+ (919,2382){695,-64}...{720,-52} % 13
+ (1639,2330){24,30}...{24,30} % 14
+ (1663,2360)--cycle); % 15
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 7;
+t7 := 9;
+
+adj_fill.B() % fixed x points
+ (2) % fixed y points
+ ((1,2), (4,3), (5,3), (7,1)) % tied points
+ () % verticals
+ ((3,6)) % horizontals
+ ((790,1537){0,-1}... % 0
+ (810,1463){1,-1}... % 1
+ (847,1440){1,0}...{473,38} % 2
+ (1596,1503){43,-46}...{43,-46} % 3
+ (1639,1457)-- % 4
+ (1639,1457){0,-200}...{0,-200} % 5
+ (1639,1257){-584,35}... % 6
+ (876,1269){-1,0}... % 7
+ (806,1251){-1,-1}...{0,-1} % 8
+ (790,1169)--cycle); % 9
+
+%endchar(0);
+endchar(-100h#); % DEK
+
+"rbug";
+
+charbegin( "G", 2643h#, capheight*v#, baseline );
+n := 13;
+t1 := 0;
+t2 := 1.414;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 14;
+t10 := 17;
+t11 := 20;
+t12 := 22;
+t13 := 25;
+
+adj_fill.A(1, 6, 8, 13) % fixed x points
+ (7, 8) % fixed y points
+ ((7,1), (8,1)) % tied points
+ ((2,12), (4,10)) % verticals
+ ((1,13), (3,11), (5,9)) % horizontals
+ ((1238,1122){1144,49}...{1144,49} % 0
+ (2382,1171){-20,-259}...{29,-472} % 1
+ (2388,132){-405,-114}... % 2
+ (1369,-50){-1,0}... % 3
+ (545,251){-1,1}... % 4
+ (202,1237){0,1}... % 5
+ (581,2265){1,1}... % 6
+ (1570,2624){1,0}... % 7
+ (2162,2495){452,-276}...{169,-347} % 8
+ (2453,2165){-325,-332}...{-325,-332} % 9
+ (2128,1833)-- % 10
+ (2128,1833){-61,29}...{-61,29} % 11
+ (2067,1862){-69,234}... % 12
+ (1822,2314){-1,1}... % 13
+ (1463,2445){-1,0}... % 14
+ (993,2255){-1,-1}... % 15
+ (772,1865){-298,-949}... % *16
+ (695,1306){0,-1}... % 17
+ (1010,374){1,-1}... % 18
+ (1624,143){1,0}... % 19
+ (1862,154){294,39}... % 20
+ (1937,217){36,406}... % 21
+ (1943,542){0,1}... % 22
+ (1941,818){-40,351}... % 23
+ (1843,945){-180,43}...{-605,38} % 24
+ (1238,983)--cycle); % 25
+
+endchar(0);
+
+"rbuh";
+
+charbegin( "H", 2680h#, capheight*v#, baseline );
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+
+adj_fill.A(3, 4) % fixed x points
+ (1) % fixed y points
+ ((5,1), (6,2)) % tied points
+ ((2,5)) % verticals
+ ((3,4)) % horizontals
+ ((359,-23){-25,34}... % 0
+ (334,11){10,282}... % 1
+ (352,1329){0,1}... % 2
+ (351,2265){0,1}... % 3
+ (251,2393){-226,81}...{-500,100} % 4
+ (36,2460){0,115}...{0,115} % 5
+ (36,2575)-- % 6
+ (821,2582){-35,-711}...{0,-1} % 7
+ (783,1496){6,-345}...{6,-345} % 8
+ (789,1151){0,-1}...{10,-240} % 9
+ (809,110)--cycle); % 10
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 11;
+
+adj_fill.B() % fixed x points
+ (6) % fixed y points
+ ((1,4), (3,1), (4,2), (6,3)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((1948,1527){0,-1}... % 0
+ (1922,1452){-1,-1}... % 1
+ (1790,1436){-1,0}... % 2
+ (939,1436){-1,0}... % 3
+ (813,1462){-1,1}...{-30,34} % 4
+ (783,1496)-- % 5
+ (789,1151){0,1}... % 6
+ (803,1219){1,1}... % 7
+ (885,1253){1,0}... % 8
+ (1823,1253){1,0}... % 9
+ (1930,1222){1,-1}...{0,-1} % 10
+ (1945,1155)--cycle); % 11
+
+n := 6;
+t1 := 2;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+
+adj_fill.C(5) % fixed x points
+ (3) % fixed y points
+ ((1,3), (2,4)) % tied points
+ ((1,4)) % verticals
+ ((5,6)) % horizontals
+ ((1976,-25){-79,75}...{-79,75} % 0
+ (1897,50){18,185}...{0,1} % 1
+ (1945,1155){3,372}...{3,372} % 2
+ (1948,1527){0,1}...{4,991} % 3
+ (1952,2518)-- % 4
+ (2413,2631){33,-38}...{33,-38} % 5
+ (2446,2593){-68,-718}... % 6
+ (2392,1319){0,-1}... % 7
+ (2395,345){26,-373}... % 8
+ (2486,172){470,-216}...{355,-34} % 9
+ (2670,117){0,-114}...{0,-114} % 10
+ (2670,3)--cycle); % 11
+
+endchar(0);
+
+"rbui";
+
+charbegin( "I", 1350h#, capheight*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 13;
+t9 := 16;
+t10 := 17;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((5,6), (3,8), (1,10)) % verticals
+ ((4,5), (1,2), (6,7), (9,10)) % horizontals
+ ((61,2){0,106}...{0,106} % 0
+ (61,108){311,66}... % 1
+ (301,168){240,60}... % 2
+ (396,301){17,542}... % 3
+ (401,1376){0,1}... % 4
+ (382,2301){-33,517}... % 5
+ (288,2407){-371,97}...{-223,56} % 6
+ (64,2463){-2,113}...{-2,113} % 7
+ (62,2576)-- % 8
+ (1179,2576){0,-115}...{0,-115} % 9
+ (1179,2461){-253,-58}... % 10
+ (927,2402){-380,-83}... % 11
+ (844,2287){0,-1}... % 12
+ (842,1359){0,-1}... % 13
+ (852,393){29,-556}... % 14
+ (996,164){207,-53}...{207,-53} % 15
+ (1203,111){0,-109}...{0,-109} % 16
+ (1203,2)--cycle); % 17
+
+endchar(0);
+
+"rbuj";
+
+%charbegin( "J", 1238h#, capheight*v#, descender*v#);
+charbegin( "J", (1238+100)*h#, capheight*v#, 2/3descender*v#); % DEK
+n := 7;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 8;
+t5 := 9;
+t6 := 13;
+t7 := 18;
+
+adj_fill.A(1) % fixed x points
+ (7) % fixed y points
+ () % tied points
+ ((4,5), (2,6)) % verticals
+ ((3,4)) % horizontals
+ ((-48,-546){387,199}... % 0
+ (174,-375){1,1}... % 1
+ (340,-90){141,462}... % 2
+ (401,608){0,1}... % 3
+ (401,2067){0,1}... % 4
+ (392,2333){-37,321}... % 5
+ (290,2445){-259,82}...{-1,0} % 6
+ (46,2480){0,130}...{0,130} % 7
+ (46,2610)-- % 8
+ (1187,2610){0,-1}...{0,-124} % 9
+ (1187,2486){-229,-51}... % 10
+ (958,2435){-279,-94}... % 11
+ (856,2328){-74,-274}... % 12
+ (832,1898){0,-1}... % 13
+ (832,976){0,-1}... % 14
+ (800,248){-112,-544}... % 15
+ (518,-272){-394,-380}... % 16
+ (246,-501){-499,-351}...{-224,-73} % *17
+ (19,-623)--cycle); % 18
+
+%endchar(0);
+endchar(100h#); % DEK
+
+"rbuk";
+
+charbegin( "K", 2314h#, capheight*v#, baseline );
+n := 5;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+
+adj_fill.A(3, 4) % fixed x points
+ (1) % fixed y points
+ () % tied points
+ ((2,5)) % verticals
+ ((3,4)) % horizontals
+ ((378,-46){-34,39}...{-34,39} % 0
+ (344,-7){13,388}... % 1
+ (360,1251){0,1}... % 2
+ (353,2272){-34,533}... % 3
+ (235,2411){-153,47}...{-173,48} % 4
+ (55,2462){0,110}...{0,110} % 5
+ (55,2572)-- % 6
+ (855,2594){-74,-774}...{0,-1} % 7
+ (803,1428){0,-228}... % 8
+ (803,1200){-2,-669}...{32,-364} % 9
+ (838,110)--cycle); % 10
+
+n := 3;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1)) % tied points
+ ((1,2)) % verticals
+ ((2,3)) % horizontals
+ ((843,1432){-41,0}...{-41,0} % 0
+ (802,1432)-- % 1
+ (802,1200){41,0}...{41,0} % 2
+ (843,1200)--cycle); % 3
+
+n := 1;
+t1 := 2;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((1885,-20){-231,291}...{-585,618} % 0
+ (836,1200){7,232}...{7,232} % 1
+ (843,1432){994,1147}...{994,1147} % 2
+ (1837,2579)-- % 3
+ (2193,2599){0,-58}...{0,-58} % 4
+ (2193,2541){-1023,-1043}... % 5
+ (1170,1498){-166,-157}... % 6
+ (1170,1471){.1075,-1.994}... % 7
+ (1174,1434){649,-662}...{161,-158} % 8
+ (2350,259){0,-59}...{0,-59} % 9
+ (2350,200)--cycle); % 10
+
+endchar(0);
+
+"rbuL";
+
+charbegin( "L", 1886h#, capheight*v#, baseline );
+n := 9;
+t1 := 1;
+t2 := 4;
+t3 := 8;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 15;
+t8 := 18;
+t9 := 20;
+
+adj_fill.A(9) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((4,5), (2,7)) % verticals
+ ((3,4), (5,6), (1,8)) % horizontals
+ ((1808,-20){-548,36}...{-1,0} % 0
+ (237,0){0,63}...{0,63} % 1
+ (237,63){178,225}... % 2
+ (313,184){113,436}... % 3
+ (325,440){0,1}... % 4
+ (325,2090){0,1}... % 5
+ (302,2344){-81,410}... % 6
+ (219,2449){-259,94}...{-461,32} % 7
+ (41,2484){0,112}...{0,112} % 8
+ (41,2596)-- % 9
+ (1086,2596){0,-127}...{0,-127} % 10
+ (1086,2469){-365,-55}... % 11
+ (871,2423){-198,-85}... % 12
+ (787,2336){-53,-321}... % 13
+ (767,2008){0,-1}... % 14
+ (767,937){0,-1}... % 15
+ (790,307){48,-311}... % 16
+ (884,205){390,-57}... % 17
+ (1064,199){771,79}...{771,79} % 18
+ (1835,278){42,-32}...{42,-32} % 19
+ (1877,246)--cycle); % 20
+
+endchar(0);
+
+"rbum";
+
+charbegin( "M", 3693h#, capheight*v#, baseline );
+n := 2;
+t1 := 0;
+t2 := 6;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((572,2242){0,-1}... % 0
+ (444,1333){-251,-1323}...{-251,-1323} % 1
+ (193,10)-- % 2
+ (241,-8){281,105}...{281,105} % 3
+ (522,97){203,1904}...{203,1904} % 4
+ (725,2001){39,2}...{39,2} % 5
+ (764,2003)--cycle); % 6
+
+n := 6;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 8;
+t6 := 9;
+
+adj_fill.B() % fixed x points
+ (2) % fixed y points
+ ((1,4), (2,3), (3,1), (4,2)) % tied points
+ () % verticals
+ ((5,6)) % horizontals
+ ((1020,2593){258,-787}...{348,-755} % 0
+ (1782,619)-- % 1
+ (1754,-5){-274,0}...{-274,0} % 2
+ (1480,-5){-656,2013}...{-461,1129} % 3
+ (764,2003){-192,239}...{-192,239} % 4
+ (572,2242){0,1}... % 5
+ (504,2398){-1,1}... % 6
+ (404,2449){-267,76}...{-434,24} % *7
+ (237,2474){0,119}...{0,119} % 8
+ (237,2593)--cycle); % 9
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,6), (2,4), (3,3), (4,5)) % tied points
+ () % verticals
+ () % horizontals
+ ((2740,2583){-250,-890}... % 0
+ (2360,1649){-.8662,-1.798}...{-578,-1030}% 1
+ (1782,619)-- % 2
+ (1754,-5){314,689}...{190,345} % 3
+ (2741,2011){32,-1}...{32,-1} % 4
+ (2773,2010)--cycle); % 5
+
+n := 7;
+%t1 := 5;
+t1 := 6; % DEK
+t2 := 8.291;
+t3 := 10;
+t4 := 11;
+t5 := 14;
+t6 := 15;
+t7 := 16;
+
+adj_fill.D(3) % fixed x points
+ () % fixed y points
+ ((6,5), (7,6)) % tied points
+ ((1,5)) % verticals
+ ((2,4)) % horizontals
+ ((3283,2589){21,-30}...{21,-30} % 0
+ (3304,2559){-227,-301}... % 1
+ (3222,2441){-1,-1}... % 2
+ (3205,2388){-14,-240}... % *3
+ (3208,2201){0,-1}... % 4
+ (3208,1661){0,-1}... % 5
+ (3251,679){120,-1581}... % 6
+ (3341,250){1,-1}... % 7
+ (3465,204){330,-35}...{304,51} % *8
+ (3671,215)-- % 9
+ (3683,116){-580,-100}... % 10
+ (3219,-25){-464,-141}... % 11
+ (3020,-58){-322,4}... % *12
+ (2897,-21){-1,1}... % 13
+ (2827,142){0,1}...{-30,439} % 14
+ (2773,2010){-33,573}...{-33,573} % 15
+ (2740,2583)--cycle); % 16
+
+endchar(0);
+
+"rbun";
+
+charbegin( "N", 2900h#, capheight*v#, baseline );
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 6;
+
+adj_fill.A(4) % fixed x points
+ () % fixed y points
+ ((1,3), (2,1), (3,1), (6,2)) % tied points
+ ((1,5)) % verticals
+ () % horizontals
+ ((420,2081){0,-1}...{-61,-1250} % 0
+ (359,20){41,-31}...{41,-31} % 1
+ (400,-11)-- % 2
+ (400,-11){277,135}...{277,135} % 3
+ (677,124){-93,1845}...{-93,1845} % 4
+ (584,1969){38,17}...{38,17} % 5
+ (622,1986)--cycle); % 6
+
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 10;
+t7 := 11;
+t8 := 14;
+t9 := 15;
+
+adj_fill.B() % fixed x points
+ (1) % fixed y points
+ ((3,4), (4,4), (6,2), (7,3)) % tied points
+ ((2,5)) % verticals
+ ((8,9)) % horizontals
+ ((770,2587){424,-578}...{1474,-1700} % 0
+ (2242,763){40,8}...{40,8} % 1
+ (2282,771){-57,1769}...{-57,1769} % 2
+ (2225,2540){272,97}...{272,97} % 3
+ (2497,2637)-- % 4
+ (2497,2637){66,-50}...{66,-50} % 5
+ (2563,2587){-60,-791}... % 6
+ (2478,1079){-78,-2569}...{21,-329} % *7
+ (2485,18){-251,0}...{-251,0} % 8
+ (2234,18){-1612,1968}...{-1612,1968} % 9
+ (622,1986){-202,95}...{-202,95} % 10
+ (420,2081){0,1}... % 11
+ (404,2335){-72,242}... % 12
+ (299,2429){-473,196}...{-352,44} % 13
+ (75,2477){0,110}...{0,110} % 14
+ (75,2587)--cycle); % 15
+
+endchar(0);
+
+"rbuo";
+
+%charbegin( "O", 2915h#, capheight*v#, baseline );
+charbegin( "O", (2915-150)*h#, capheight*v#, baseline ); % DEK
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 14;
+t8 := 17;
+t9 := 20;
+t10 := 22;
+
+adj_fill.A() % fixed x points
+ (5, 10) % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((5,6), (3,8), (1,10)) % verticals
+ ((2,9), (4,7)) % horizontals
+ ((192,1222){0,-1}... % 0
+ (280,642){337,-1002}... % *1
+ (529,220){1,-1}... % 2
+ (1260,-57){1,0}... % 3
+ (2357,360){1,1}... % 4
+ (2622,814){358,1086}... % *5
+ (2715,1446){0,1}... % 6
+ (2378,2381){-1,1}... % 7
+ (1594,2664){-1,0}... % 8
+ (598,2308){-1,-1}...{0,-1} % 9
+ (192,1222)-- % 10
+ (656,1353){0,1}... % 11
+ (739,1916){319,968}... % *12
+ (975,2321){1,1}... % 13
+ (1453,2515){1,0}... % 14
+ (1882,2344){1,-1}... % 15
+ (2143,1878){352,-1141}... % *16
+ (2234,1203){0,-1}... % 17
+ (2162,670){-276,-899}... % *18
+ (1958,304){-1,-1}... % 19
+ (1476,114){-1,0}... % 20
+ (1016,307){-1,1}...{0,1} % 21
+ (656,1353)--cycle); % 22
+
+%endchar(0);
+endchar(-50h#); % DEK
+
+"rbup";
+
+charbegin( "P", 2035h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 9;
+t5 := 14;
+t6 := 16;
+t7 := 18;
+t8 := 19;
+t9 := 22;
+t10 := 24;
+t11 := 26;
+t12 := 28;
+
+adj_fill.A(1, 12) % fixed x points
+ (1, 6, 12) % fixed y points
+ ((1,1), (7,1), (8,2), (12,2)) % tied points
+ ((5,8), (3,10)) % verticals
+ ((4,9), (2,11)) % horizontals
+ ((803,1042){0,1}... % 0
+ (828,1105){1,1}... % 1
+ (883,1126){248,34}... % *2
+ (1076,1139){629,52}... % 3
+ (1478,1222){679,249}... % *4
+ (1755,1388){1,1}... % 5
+ (1977,1999){0,1}... % 6
+ (1828,2418){-1,1}... % 7
+ (1597,2543){-576,169}... % *8
+ (1252,2587){-1,0}...{-1187,0} % 9
+ (65,2587){0,-113}...{0,-113} % 10
+ (65,2474){315,-30}... % 11
+ (301,2398){263,-226}... % 12
+ (343,2305){52,-398}... % 13
+ (358,1699){0,-1}...{-32,-834} % 14
+ (331,15){39,-39}...{39,-39} % 15
+ (370,-24)-- % 16
+ (825,111){-22,931}... % 17
+ (803,1042){-.01002,2}...{4,294} % 18
+ (807,1336){-7,1034}... % 19
+ (800,2370){27,441}... % 20
+ (839,2445){481,80}... % 21
+ (1026,2456){1,0}... % 22
+ (1361,2329){1,-1}... % 23
+ (1497,1932){0,-1}... % 24
+ (1308,1422){-1,-1}... % 25
+ (898,1263){-1,0}... % 26
+ (831,1285){-1,1}...{0,1} % 27
+ (807,1336)--cycle); % 28
+
+endchar(0);
+
+"rbuq";
+
+charbegin( "Q", 2889h#, capheight*v#, descender*v#);
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 11;
+t8 := 13;
+t9 := 16;
+t10 := 19;
+t11 := 22;
+
+adj_fill.A(3, 5, 8, 10) % fixed x points
+ (1, 4, 6, 7, 9, 11) % fixed y points
+ ((1,2), (2,1), (6,2), (7,3), (11,3)) % tied points
+% ((6,7), (4,9)) % verticals
+% ((3,10), (5,8)) % horizontals
+ ((3,10), (5,8)) % verticals (DEK)
+ ((6,7), (4,9)) % horizontals (DEK)
+ ((1176,-73){530,56}...{530,56} % 0
+ (1706,-17){239,41}... % 1
+ (2380,354){1,1}... % 2
+ (2622,780){327,1035}... % *3
+ (2707,1389){0,1}... % 4
+ (2372,2348){-1,1}... % 5
+ (1577,2640){-1,0}... % 6
+ (588,2272){-1,-1}... % 7
+ (189,1177){0,-1}... % 8
+ (536,186){1,-1}...{534,-26} % 9
+ (1176,-73)-- % 10
+ (1462,97){-1,0}... % 11
+ (1036,272){-1,1}... % 12
+ (666,1303){0,1}... % 13
+ (747,1884){312,988}... % *14
+ (978,2291){1,1}... % 15
+ (1453,2473){1,0}... % 16
+ (1928,2284){1,-1}... % 17
+ (2159,1875){312,-997}... % *18
+ (2240,1287){0,-1}... % 19
+ (2169,679){-273,-999}... % *20
+ (1967,288){-1,-1}...{-1,0} % 21
+ (1462,97)--cycle); % 22
+
+n := 4;
+t1 := 1;
+t2 := 3;
+t3 := 4;
+t4 := 6;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((2,2), (3,1)) % tied points
+ () % verticals
+ ((1,4)) % horizontals
+ ((2690,-629){-299,-100}... % 0
+ (2066,-722){-1,0}... % 1
+ (1566,-517){-1,1}...{-404,543} % 2
+ (1176,-73)-- % 3
+ (1706,-17){270,-484}... % 4
+ (1980,-402){1,-1}... % 5
+ (2303,-566){1,0}...{277,91} % 6
+ (2674,-510)--cycle); % 7
+
+endchar(0);
+
+"rbur";
+
+charbegin( "R", 2200h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 10;
+t5 := 12;
+t6 := 14;
+t7 := 15;
+t8 := 18;
+t9 := 20;
+t10 := 22;
+t11 := 23;
+t12 := 24;
+
+adj_fill.A(10) % fixed x points
+ (5, 12) % fixed y points
+ ((1,4), (6,1), (7,2), (10,2), (11,1), (12,3))% tied points
+ ((4,7), (2,9)) % verticals
+ ((3,8), (1,10)) % horizontals
+ ((1240,1312){290,18}... % 0
+ (1786,1555){1,1}... % 1
+ (1957,2043){0,1}... % 2
+ (1825,2414){-1,1}... % 3
+ (1564,2548){-668,181}... % *4
+ (1157,2595){-1,0}...{-1096,0} % 5
+ (61,2595){0,-115}...{0,-115} % 6
+ (61,2480){242,-20}... % 7
+ (333,2398){125,-107}... % 8
+ (371,2307){43,-304}... % 9
+ (382,1724){0,-1}...{-46,-849} % 10
+ (336,5){32,-35}...{32,-35} % 11
+ (368,-30)-- % 12
+ (825,150){-37,1051}...{-37,1051} % 13
+ (788,1201){-4,151}...{-4,151} % 14
+ (784,1352){25,1014}... % 15
+ (809,2366){45,598}... % 16
+ (846,2436){446,153}... % 17
+ (978,2451){1,0}... % 18
+ (1358,2329){1,-1}... % 19
+ (1480,1982){0,-1}... % 20
+ (1299,1531){-1,-1}...{-1,0} % 21
+ (784,1352){4,-151}...{4,-151} % 22
+ (788,1201){45,-7}...{45,-7} % 23
+ (833,1194)--cycle); % 24
+
+%n := 2;
+%t1 := 2;
+%t2 := 3;
+n := 3; % DEK
+t1 := 0;
+t2 := 2;
+t3 := 3;
+
+adj_fill.B() % fixed x points
+% () % fixed y points
+% ((1,3), (2,4)) % tied points
+ (1) % fixed y points % DEK
+ ((2,3), (3,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((1739,-37){-62,6}...{-62,6} % 0
+ (1677,-31){-844,1225}...{-844,1225} % 1
+ (833,1194)-- % 2
+ (1240,1312){496,-647}...{221,-225} % 3
+ (2125,210){10,-58}...{10,-58} % 4
+ (2135,152)--cycle); % 5
+
+endchar(0);
+
+"rbus";
+
+charbegin( "S", 2000h#, capheight*v#, baseline );
+
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 9;
+t6 := 11;
+t7 := 14;
+t8 := 15;
+t9 := 16;
+t10 := 19;
+t11 := 21;
+t12 := 25;
+t13 := 27;
+t14 := 30;
+
+adj_fill.A(2, 7, 9, 14) % fixed x points
+ (1, 7, 8, 14) % fixed y points
+ ((1,2), (7,1), (8,1), (14,2)) % tied points
+ ((5,11), (4,12)) % verticals
+ ((6,10), (3,13)) % horizontals
+ ((500,726){-329,-404}...{-329,-404} % 0
+ (171,322){286,-421}... % 1
+ (418,70){492,-293}... % 2
+ (852,-51){1,0}... % 3
+ (1676,296){1,1}... % 4
+ (1882,787){0,1}... % 5
+ (1674,1254){-1,1}... % 6
+ (1240,1540){-888,498}... % 7
+ (841,1821){-1,1}... % 8
+ (710,2159){0,1}... % 9
+ (810,2436){1,1}... % 10
+ (1060,2533){1,0}... % 11
+ (1340,2427){1,-1}...{50,-406} % 12
+ (1512,2047){58,-20}...{58,-20} % 13
+ (1570,2027)-- % 14
+ (1570,2027){318,274}...{318,274} % 15
+ (1888,2301){-182,475}... % 16
+ (1749,2525){-1,1}... % 17
+ (1537,2637){-537,151}... % *18
+ (1212,2676){-1,0}... % 19
+ (528,2441){-1,-1}... % 20
+ (336,1925){0,-1}... % 21
+ (557,1461){1,-1}... % 22
+ (925,1185){994,-582}... % 23
+ (1294,938){1,-1}... % 24
+ (1475,584){0,-1}... % 25
+ (1340,259){-1,-1}... % 26
+ (1045,130){-1,0}... % 27
+ (731,264){-1,1}...{-4,513} % 28
+ (562,700){-62,26}...{-62,26} % 29
+ (500,726)--cycle); % 30
+
+endchar(0);
+
+"rbut";
+
+charbegin( "T", 2037h#, capheight*v#, baseline );
+n := 9;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 18;
+t9 := 21;
+
+adj_fill.A(2, 8) % fixed x points
+ (5, 6) % fixed y points
+ ((1,2), (5,1), (6,1), (9,2)) % tied points
+ ((4,7)) % verticals
+ ((1,3)) % horizontals
+ ((970,2601){1,0}... % 0
+ (1980,2640){479,16}... % 1
+ (2012,2605){0,-1}... % 2
+ (2012,2420){0,-1}... % 3
+ (1980,2385){-291,16}... % 4
+ (1289,2403){-738,18}... % 5
+ (1196,2393){-1.121,-1.099}... % 6
+ (1191,2354){-20,-267}... % 7
+ (1183,1836){0,-1}...{39,-637} % 8
+ (1239,112){-471,-153}...{-471,-153} % 9
+ (768,-41)-- % 10
+ (768,-41){-31,45}...{-31,45} % 11
+ (737,4){20,642}... % 12
+ (765,1834){0,1}... % 13
+ (762,2334){0,1}...{-21,51} % 14
+ (741,2385){-60,8}... % 15
+ (681,2393){-600,-35}... % 16
+ (-15,2361){-376,-6}... % 17
+ (-25,2431){0,1}... % 18
+ (-25,2623){0,1}... % 19
+ (-15,2633){796,-15}...{1,0} % 20
+ (970,2601)--cycle); % 21
+
+mathcorr(4skew#); % DEK
+endchar(0);
+
+"rbuu";
+
+charbegin( "U", 2686h#, capheight*v#, baseline );
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 10;
+t8 := 14;
+t9 := 15;
+
+adj_fill.A(4, 8, 9) % fixed x points
+ () % fixed y points
+ ((4,1), (5,2)) % tied points
+ ((2,7)) % verticals
+ ((1,8), (3,6)) % horizontals
+ ((817,2605){-41,-380}... % 0
+ (746,1100){0,-1}... % 1
+ (803,657){218,-740}... % *2
+ (964,360){1,-1}... % 3
+ (1415,197){1,0}...{230,145} % 4
+ (1858,309)-- % 5
+ (1852,164){-439,-183}... % 6
+ (1086,-30){-1,0}... % 7
+ (549,140){-1,1}... % 8
+ (380,464){-229,822}... % *9
+ (320,962){0,1}... % 10
+ (343,1937){16,487}... % 11
+ (325,2301){-71,411}... % 12
+ (271,2402){-186,168}...{-297,21} % 13
+ (-7,2480){0,114}...{0,114} % 14
+ (-7,2594)--cycle); % 15
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5.142;
+t5 := 7;
+t6 := 8.475;
+t7 := 10;
+
+adj_fill.B(5) % fixed x points
+ (1) % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((3,7)) % verticals
+ ((4,6)) % horizontals
+ ((2313,2653){-478,-172}...{-478,-172} % 0
+ (1835,2481){27,-479}...{0,-1} % 1
+ (1858,309){-6,-145}...{-6,-145} % 2
+ (1852,164){8,-560}... % 3
+ (1922,-5){1,-1}... % 4
+ (2011,-38){224,-15}... % *5
+ (2146,-20){573,170}...{573,170} % 6
+ (2719,150)-- % 7
+ (2713,249){-403,-45}... % 8
+ (2344,276){-1,1}... % 9
+ (2288,665){0,1}...{53,508} % 10
+ (2363,2622)--cycle); % 11
+
+endchar(0);
+
+"rbuv";
+
+charbegin( "V", 2511h#, capheight*v#, baseline );
+n := 5;
+t1 := 3;
+t2 := 7;
+t3 := 8;
+t4 := 13;
+t5 := 16;
+
+adj_fill.A(2, 5) % fixed x points
+ (1, 4) % fixed y points
+ () % tied points
+ ((1,4)) % verticals
+ ((2,3)) % horizontals
+ ((2215,2580){-206,-432}... % 0
+ (1770,1617){-254,-591}... % 1
+ (1365,675){-194,-479}...{-38,-42} % 2
+ (1327,633){-24,26}... % 3
+ (1303,659){-233,567}... % 4
+ (975,1602){-532,1721}...{-1,4} % 5
+ (700,2628){-364,-29}...{-1,0} % 6
+ (-10,2601)-- % 7
+ (-8,2477){177,-37}... % 8
+ (169,2439){177,-38}... % 9
+ (263,2362){312,-496}... % 10
+ (423,1924){216,-711}...{110,-383} % 11
+ (997,3){35,-23}...{35,-23} % 12
+ (1032,-20){328,113}...{328,113} % 13
+ (1360,93){231,695}... % 14
+ (1878,1333){790,1566}...{290,420} % 15
+ (2613,2582){-8,51}...{-8,51} % 16
+ (2605,2633)--cycle); % 17
+
+mathcorr(2skew#); % DEK
+endchar(0);
+
+"rbuw";
+
+charbegin( "W", 3686h#, capheight*v#, baseline );
+n := 4;
+t1 := 9;
+t2 := 12;
+t3 := 13;
+t4 := 18;
+
+adj_fill.A() % fixed x points
+ (1, 4) % fixed y points
+ () % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((3861,2588){-403,-60}...{-403,-60} % 0
+ (3458,2528){-169,-504}... % 1
+ (2682,510){-282,-703}...{-21,-8} % 2
+ (2661,502){-22,23}... % 3
+ (2639,525){-64,289}...{-144,827} % 4
+ (2223,2569){-23,19}...{-23,19} % 5
+ (2200,2588){-345,-79}...{-345,-79} % 6
+ (1855,2509){-127,-397}... % 7
+ (1090,624){-237,-513}...{-8,-19} % 8
+ (1082,605){-28,39}... % 9
+ (1054,644){-98,399}...{-137,844} % 10
+ (640,2593){-1,0}...{-695,0} % 11
+ (-55,2593)-- % 12
+ (-52,2480){491,-125}... % 13
+ (123,2427){279,-85}... % 14
+ (199,2342){113,-277}... % 15
+ (286,2049){447,-2058}...{97,-399} % 16
+ (733,-9){48,-37}...{48,-37} % 17
+ (781,-46){337,120}...{337,120} % 18
+ (1118,74){255,744}... % 19
+ (1844,1969){134,327}...{29,20} % 20
+ (1873,1989){20,-22}... % 21
+ (1893,1967){159,-735}...{104,-526} % 22
+ (2296,-13){47,-46}...{47,-46} % 23
+ (2343,-59){352,131}...{352,131} % 24
+ (2695,72){300,717}...{257,451} % 25
+ (3862,2532)--cycle); % 26
+
+mathcorr(skew#); % DEK
+endchar(0);
+
+"rbux";
+
+charbegin( "X", 2278h#, capheight*v#, baseline );
+n := 7;
+t1 := 4;
+t2 := 5;
+t3 := 7;
+t4 := 8;
+t5 := 11;
+t6 := 12;
+t7 := 13;
+
+adj_fill.A() % fixed x points
+ (7) % fixed y points
+ ((1,4), (2,1), (5,2), (6,3)) % tied points
+ () % verticals
+ ((3,4)) % horizontals
+ ((2273,84){0,67}...{0,67} % 0
+ (2273,151){-529,290}... % 1
+ (2076,303){-1,1}... % 2
+ (1735,738){-754,1130}...{-371,681} % *3
+ (1322,1433){-103,186}...{-103,186} % 4
+ (1219,1619){-174,307}...{-330,708} % 5
+ (700,2607){-286,-17}...{-702,-22} % 6
+ (-2,2585)-- % 7
+ (-2,2466){538,-136}... % 8
+ (216,2394){338,-175}... % 9
+ (329,2305){318,-537}...{187,-334} % 10
+ (935,1252){115,-199}...{115,-199} % 11
+ (1050,1053){434,-761}...{238,-348} % 12
+ (1706,-49)--cycle); % 13
+
+n := 2;
+t1 := 0;
+t2 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((1219,1619){672,912}...{672,912} % 0
+ (1891,2531){382,60}...{382,60} % 1
+ (2273,2591)-- % 2
+ (2273,2490){-80,-80}... % 3
+ (1673,1863){-951,-1057}...{-17,-25} % *4
+ (1322,1433)--cycle); % 5
+
+n := 2;
+t1 := 0;
+t2 := 4;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,2), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((935,1252){-937,-1160}...{-937,-1160} % 0
+ (-2,92){0,-95}...{0,-95} % 1
+ (-2,-3)-- % 2
+ (350,70){50,75}...{100,105} % 3
+ (1050,1053)--cycle); % 4
+
+endchar(0);
+
+"rbuy";
+
+charbegin( "Y", 2071h#, capheight*v#, baseline );
+n := 6;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 9;
+t6 := 11;
+
+adj_fill.A(3, 4) % fixed x points
+ (6) % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((1,5)) % verticals
+ ((3,4)) % horizontals
+ ((1272,104){-18,420}...{8,797} % 0
+ (1254,1225){-112,264}...{-112,264} % 1
+ (1142,1489){-136,297}...{-302,770} % 2
+ (636,2603){-1,0}...{-643,0} % 3
+ (-7,2603)-- % 4
+ (-7,2475){355,-102}... % 5
+ (148,2432){331,-106}... % 6
+ (234,2362){261,-477}... % 7
+ (363,2132){461,-978}...{148,-291} % 8
+ (824,1154){0,-1}...{-20,-1136} % 9
+ (804,18){62,-33}...{62,-33} % 10
+ (866,-15)--cycle); % 11
+
+n := 2;
+t1 := 0;
+t2 := 6;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((1142,1489){41,-78}... % 0
+ (1182,1470){1.84,-.07793}... % 1
+ (1222,1485){169,279}...{627,1068} % 2
+ (1849,2553){340,64}...{340,64} % 3
+ (2189,2617)-- % 4
+ (2195,2573){-941,-1348}...{-941,-1348} % 5
+ (1254,1225)--cycle); % 6
+
+mathcorr(3skew#); % DEK
+endchar(0);
+
+"rbuz";
+
+charbegin( "Z", 2266h#, capheight*v#, baseline );
+n := 4;
+t1 := 2;
+t2 := 6;
+t3 := 10;
+t4 := 14;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((2,3), (1,4)) % horizontals
+ ((2263,248){-48,49}...{-48,49} % 0
+ (2215,297){-592,-38}... % 1
+ (761,236){-620,-4}... % 2
+ (705,266){-.9895,1.466}... % 3
+ (700,312){257,401}...{400,554} % 4
+ (2100,2529){0,51}...{0,51} % 5
+ (2100,2580){-379,-13}...{-715,45} % 6
+ (310,2623){-30,-26}...{-30,-26} % 7
+ (280,2597)-- % 8
+ (279,2361){29,-29}...{29,-29} % 9
+ (308,2332){659,53}...{237,7} % 10
+ (1557,2380){-12,-45}...{-12,-45} % 11
+ (1545,2335){-347,-525}... % 12
+ (-2,90){-277,-381}...{0,-89} % 13
+ (-2,1){1,0}...{438,-44} % 14
+ (2175,-42)--cycle); % 15
+
+endchar(0);
+
+% SCRIPT LOWER CASE
+no_stem_round;
+
+"sbll";
+
+charbegin( 96, 1180h#, ascender*v#, baseline );
+
+n := 16;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 9;
+t5 := 12;
+t6 := 15;
+t7 := 17;
+t8 := 18;
+t9 := 20;
+t10 := 22;
+t11 := 26;
+t12 := 27;
+t13 := 28;
+t14 := 29;
+t15 := 30;
+t16 := 34;
+
+adj_fill.A(1, 3, 8) % fixed x points
+ (7) % fixed y points
+ ((7,1), (8,2), (12,2), (13,1), (14,2), (15,1))% tied points
+ ((6,9), (4,11)) % verticals
+ ((5,10), (2,16)) % horizontals
+ ((1214,447){-221,-443}... % 0
+ (966,92){-1,-1}... % 1
+ (612,-73){-1,0}... % 2
+ (401,8){-1,1}... % 3
+ (273,253){-194,650}...{-39,566} % *4
+ (207,658){-172,-140}...{-172,-140} % 5
+ (35,518){-86,47}... % 6
+ (-51,565){-.1327,1.147}...{240,215} % 7
+ (189,780){-28,357}... % 8
+ (184,1044){0,1}... % 9
+ (272,1925){337,1409}... % *10
+ (521,2453){1,1}... % 11
+ (905,2624){1,0}... % 12
+ (1076,2526){1,-1}... % 13
+ (1140,2392){87,-355}... % *14
+ (1163,2171){0,-1}... % 15
+ (1022,1577){-180,-375}...{-1,-1} % 16
+ (540,906)-- % 17
+ (528,1068){1,1}... % 18
+ (863,1687){156,466}... % 19
+ (947,2186){0,1}... % 20
+ (901,2436){-1,1}... % 21
+ (816,2484){-1,0}... % 22
+ (715,2439){-1,-1}... % 23
+ (630,2297){-146.2,-375.8}... % *24
+ (569,2063){-196,-1101}... % *25
+ (519,1338){0,-1}...{29,-477} % 26
+ (528,1068){12,-162}...{12,-162} % 27
+ (540,906){-12,162}...{-12,162} % 28
+ (528,1068){12,-162}...{12,-162} % 29
+ (540,906){43,-679}... % 30
+ (603,536){193,-607}... % *31
+ (733,299){1,-1}... % 32
+ (855,247){1,0}... % 33
+ (1010,332){1,1}...{397,572} % 34
+ (1150,484)--cycle); % 35
+
+endchar(0);
+
+% BOLD LINING FIGURES
+no_stem_round;
+more_side(0);
+
+"fbl0";
+
+charbegin( "0", 1850h#, lfigheight*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+t7 := 14;
+t8 := 17;
+t9 := 20;
+t10 := 23;
+
+adj_fill.A(1, 6) % fixed x points
+ () % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((2,9), (4,7)) % verticals
+ ((5,6), (3,8), (1,10)) % horizontals
+ ((1077,2640){-10,-3}... % 0
+ (586,2315){-1,-1}... % 1
+ (135,1056){0,-1}... % 2
+ (211,505){292,-934}... % *3
+ (427,122){1,-1}... % 4
+ (844,-54){1,0}... % 5
+ (1310,134){1,1}... % 6
+ (1727,1273){0,1}... % 7
+ (1626,1972){-388,1196}... % *8
+ (1339,2469){-1,1}...{-369,206} % 9
+ (1077,2640)-- % 10
+ (858,2311){345,-44}... % 11
+ (1042,2220){367,-303}... % *12
+ (1225,2008){759,-1165}... % 13
+ (1466,1014){0,-1}... % 14
+ (1421,608){-172,-660}... % *15
+ (1294,354){-1,-1}... % 16
+ (1048,247){-1,0}... % 17
+ (784,373){-1,1}... % 18
+ (536,806){-335,1049}... % *19
+ (449,1422){0,1}... % 20
+ (518,1895){267,813}... % *21
+ (716,2235){1,1}...{119,30} % 22
+ (858,2311)--cycle); % 23
+
+endchar(0);
+
+"fbl1";
+
+charbegin( "1", 1850h#, lfigheight*v#, baseline );
+
+n := 3;
+t1 := 1.639;
+t2 := 5;
+t3 := 10;
+
+adj_fill.A(2) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,3)) % verticals
+ () % horizontals
+ ((801,-35){-70,54}...{-70,54} % 0
+ (731,19){42,421}... % 1
+ (776,2076){-30,618}... % 2
+ (745,2154){-1,1}... % 3
+ (680,2201){-447,0}...{-447,0} % 4
+ (233,2201)-- % 5
+ (234,2317){895,319}... % 6
+ (1129,2636){895,319}... % 7
+ (1179,2628){1,-1}... % 8
+ (1202,2580){-70,-895}... % 9
+ (1142,1050){0,-1}...{26,-509} % 10
+ (1154,119)--cycle); % 11
+
+endchar(0);
+
+"fbl2";
+
+charbegin( "2", 1850h#, lfigheight*v#, baseline );
+
+n := 10;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+
+adj_fill.A(2, 6, 9) % fixed x points
+ (5) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((4,7), (1,10)) % horizontals
+ ((1681,17){-1629,0}...{-1629,0} % 0
+ (52,17){0,76}...{0,76} % 1
+ (52,93){226,206}... % 2
+ (928,1086){681,1012}... % 3
+ (1208,1861){0,1}... % 4
+ (1067,2280){-1,1}... % 5
+ (814,2370){-1,0}... % 6
+ (589,2313){-497,-224}...{-422,-318} % *7
+ (317,2146)-- % 8
+ (242,2218){410,408}... % 9
+ (659,2533){812,426}... % *10
+ (1054,2644){1,0}... % 11
+ (1486,2494){1,-1}... % 12
+ (1650,2106){0,-1}... % 13
+ (1470,1526){-521,-879}... % 14
+ (626,438){-330,-427}... % 15
+ (626,421){.6877,-1.726}... % 16
+ (644,402){1,0}...{1135,0} % 17
+ (1779,402)--cycle); % 18
+
+endchar(0);
+
+"fbl3";
+
+charbegin( "3", 1850h#, lfigheight*v#, baseline );
+
+n := 15;
+t1 := 1;
+t2 := 3;
+t3 := 7;
+t4 := 9;
+t5 := 11;
+t6 := 13;
+t7 := 14;
+t8 := 16;
+t9 := 18;
+t10 := 20;
+t11 := 21;
+t12 := 24;
+t13 := 26;
+t14 := 28;
+t15 := 29;
+
+adj_fill.A(6) % fixed x points
+ (7, 15) % fixed y points
+ () % tied points
+ ((4,9), (3,10), (2,12), (14,15)) % verticals
+ ((5,8), (10,11), (1,13)) % horizontals
+ ((84,197){396,-359}... % 0
+ (706,-30){1,0}... % 1
+ (1447,259){1,1}... % 2
+ (1668,826){0,1}... % 3
+ (1509,1225){-1,1}... % 4
+ (1283,1355){-565,194}...{-563,41} % *5
+ (944,1419){-11,27}...{-11,27} % 6
+ (933,1446){466,172}... % 7
+ (1337,1693){1,1}... % 8
+ (1532,2153){0,1}... % 9
+ (1393,2479){-1,1}... % 10
+ (991,2621){-1,0}... % 11
+ (637,2527){-764,-364}...{-489,-404} % *12
+ (227,2257)-- % 13
+ (300,2176){495,354}... % 14
+ (560,2328){469,205}... % *15
+ (769,2381){1,0}... % 16
+ (1028,2292){1,-1}... % 17
+ (1136,2004){0,-1}... % 18
+ (1008,1660){-1,-1}...{-1,0} % 19
+ (448,1437){0,-110}...{0,-110} % 20
+ (448,1327){1,0}... % 21
+ (840,1283){641,-171}... % *22
+ (1089,1156){1,-1}... % 23
+ (1240,745){0,-1}... % 24
+ (1072,258){-1,-1}... % 25
+ (728,131){-1,0}... % 26
+ (508,236){-1,1}...{-141,540} % 27
+ (339,583){-64,8}...{-64,8} % 28
+ (275,591)--cycle); % 29
+
+endchar(0);
+
+"fbl4";
+
+charbegin( "4", 1850h#, lfigheight*v#, baseline );
+
+n := 13;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14.92;
+t9 := 15;
+t10 := 16;
+t11 := 17;
+t12 := 18;
+t13 := 19;
+
+adj_fill.A(1, 4, 7) % fixed x points
+ (3, 8, 9) % fixed y points
+ ((5,1), (6,2), (11,2), (12,1), (13,3)) % tied points
+ ((2,10)) % verticals
+ ((5,6), (2,13)) % horizontals
+ ((1749,904){-17,14}...{-17,14} % 0
+ (1732,918){-372,6}...{-372,6} % 1
+ (1360,924){34,1659}...{31,815} % 2
+ (1394,2583){-32,37}...{-32,37} % 3
+ (1362,2620){-350,-109}...{-350,-109} % 4
+ (1012,2511){-1006,-1637}...{-1006,-1637}% 5
+ (6,874){0,-195}...{0,-195} % 6
+ (6,679){1006,0}...{1006,0} % 7
+ (1012,679)-- % 8
+ (1012,931){-720,13}... % 9
+ (292,944){-1,0}...{-16,22} % 10
+ (276,966){14,55}... % 11
+ (290,1021){373,720}... % 12
+ (661,1685){681,1111}...{201,242} % *13
+ (971,2132){21,17}... % 14
+ (992,2149){1.178,-.287}...{14,-32} % 15
+ (1006,2117){6,-1186}...{6,-1186} % 16
+ (1012,931){0,-252}...{0,-252} % 17
+ (1012,679){351,0}...{351,0} % 18
+ (1363,679){284,0}...{284,0} % 19
+ (1647,679)--cycle); % 20
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((1025,-45){-47,42}...{-47,42} % 0
+ (978,-3){42,444}...{0,1} % 1
+ (1012,679)-- % 2
+ (1363,679){0,-1}...{36,-389} % 3
+ (1387,117)--cycle); % 4
+
+endchar(0);
+
+"fbl5";
+
+charbegin( "5", 1850h#, lfigheight*v#, baseline );
+
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 10;
+t7 := 12;
+t8 := 12.34;
+t9 := 13;
+t10 := 14;
+t11 := 17;
+t12 := 19;
+t13 := 21;
+t14 := 23;
+t15 := 25;
+
+adj_fill.A(1) % fixed x points
+ (8, 10) % fixed y points
+ ((9,1), (10,1)) % tied points
+ ((3,14), (5,12), (7,9)) % verticals
+ ((2,15), (4,13), (6,11)) % horizontals
+ ((1614,2554){-17,12}...{-17,12} % 0
+ (1597,2566){-1319,0}...{-1319,0} % 1
+ (278,2566){0,-1276}...{0,-1276} % 2
+ (278,1290){67,-30}...{67,-30} % 3
+ (345,1260){200,280}... % 4
+ (752,1463){1,0}... % 5
+ (1062,1364){1,-1}... % 6
+ (1231,851){0,-1}... % 7
+ (1183,493){-184,-603}... % *8
+ (1047,248){-1,-1}... % 9
+ (744,120){-1,0}... % 10
+ (451,241){-1,1}... % 11
+ (286,581){-173,580}...{-59,1} % 12
+ (227,582)-- % 13
+ (227,582){-182,-389}...{-182,-389} % 14
+ (45,193){434,-312}... % 15
+ (348,7){594,-194}... % 16
+ (704,-43){1,0}... % 17
+ (1407,252){1,1}... % 18
+ (1664,945){0,1}... % 19
+ (1474,1467){-1,1}... % 20
+ (960,1651){-1,0}...{-183,-102} % 21
+ (512,1533){-52,4}...{-52,4} % 22
+ (460,1537){0,1}...{0,649} % 23
+ (460,2186){1028,0}...{1028,0} % 24
+ (1488,2186)--cycle); % 25
+
+endchar(0);
+
+"fbn6";
+
+charbegin( "6", 1850h#, lfigheight*v#, baseline );
+
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 12;
+t10 := 14;
+t11 := 16;
+t12 := 19;
+t13 := 20;
+t14 := 23;
+
+adj_fill.A(1, 7) % fixed x points
+ (8) % fixed y points
+ ((7,1), (8,2), (12,2), (13,1)) % tied points
+ ((5,10), (3,12)) % verticals
+ ((6,9), (4,11), (2,14)) % horizontals
+ ((1717,2578){-290,51}... % 0
+ (1545,2606){-1,0}... % 1
+ (656,2185){-1,-1}... % 2
+ (149,936){0,-1}... % 3
+ (421,134){1,-1}... % 4
+ (817,-43){1,0}... % 5
+ (1458,238){1,1}... % 6
+ (1713,800){0,1}... % 7
+ (1513,1284){-1,1}... % 8
+ (1124,1430){-1,0}...{-442,-313} % 9
+ (532,1203)-- % 10
+ (541,1059){476,269}... % 11
+ (904,1185){1,0}... % 12
+ (1231,1059){1,-1}... % 13
+ (1410,612){0,-1}... % 14
+ (1266,257){-1,-1}... % 15
+ (1021,146){-1,0}... % 16
+ (780,251){-1,1}... % 17
+ (613,565){-239,808}...{-16,456} % *18
+ (541,1059){-9,144}...{-9,144} % 19
+ (532,1203){18,492}... % 20
+ (628,1772){327,965}... % *21
+ (859,2168){1,1}... % 22
+ (1329,2390){1,0}...{255,-174} % 23
+ (1604,2305){79,6}...{79,6} % 24
+ (1683,2311)--cycle); % 25
+
+endchar(0);
+
+"fbl7";
+
+charbegin( "7", 1850h#, lfigheight*v#, baseline );
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 6;
+t6 := 7;
+t7 := 9;
+t8 := 11;
+t9 := 11.22;
+t10 := 14;
+t11 := 15;
+
+adj_fill.A(3, 4, 8, 9) % fixed x points
+ (1, 6, 11) % fixed y points
+ () % tied points
+ ((5,6), (2,10)) % verticals
+ ((4,7)) % horizontals
+ ((718,-19){130,119}...{130,119} % 0
+ (848,100){17,289}... % 1
+ (1104,1175){296,649}...{433,683} % 2
+ (1839,2500){0,63}...{0,63} % 3
+ (1839,2563){-1,0}...{-783,19} % 4
+ (169,2575){0,-800}...{0,-800} % 5
+ (169,1775)-- % 6
+ (290,1769){122,639}... % 7
+ (358,2109){75,243}... % 8
+ (497,2200){961,9}... % 9
+ (1457,2206){423,4}... % 10
+ (1503,2189){.6382,-1.301}... % 11
+ (1492,2154){-381,-553}... % 12
+ (711,925){-435,-852}...{-79,-359} % 13
+ (410,99){45,-118}...{45,-118} % 14
+ (455,-19)--cycle); % 15
+
+endchar(0);
+
+"fbl8";
+
+charbegin( "8", 1850h#, lfigheight*v#, baseline );
+
+n := 20;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 19;
+t12 := 21;
+t13 := 23;
+t14 := 25;
+t15 := 26;
+t16 := 27;
+t17 := 29;
+t18 := 31;
+t19 := 33;
+t20 := 35;
+
+adj_fill.A(1, 11) % fixed x points
+ (10, 20) % fixed y points
+ ((1,1), (5,1), (6,2), (10,3), (11,4), (15,4), (16,3), (20,2))% tied points
+ ((9,12), (7,14), (4,17), (2,19)) % verticals
+ ((8,13), (3,18)) % horizontals
+ ((825,1214){376,-228}... % 0
+ (1167,965){1,-1}... % 1
+ (1352,582){0,-1}... % 2
+ (1223,252){-1,-1}... % 3
+ (943,154){-1,0}... % 4
+ (691,258){-1,1}... % 5
+ (498,725){0,1}... % 6
+ (605,1062){1,1}...{327,163} % 7
+ (825,1214){339,261}...{339,261} % 8
+ (1164,1475){271,180}... % 9
+ (1502,1803){461,693}... % *10
+ (1625,2168){0,1}... % 11
+ (1493,2477){-1,1}... % 12
+ (1285,2588){-541,167}...{-382,25} % *13
+ (952,2644){-394,-152}... % 14
+ (468,2360){-1,-1}... % 15
+ (275,1972){0,-1}... % 16
+ (391,1655){442,-665}...{563,-464} % *17
+ (717,1307)-- % 18
+ (1049,1581){-521,433}... % 19
+ (733,1889){-427,529}... % *20
+ (622,2110){0,1}... % 21
+ (693,2333){500,697}...{264,100} % 22
+ (848,2459){425,-28}... % 23
+ (1164,2331){1,-1}... % 24
+ (1274,2040){0,-1}...{-296,-200} % 25
+ (1049,1581){-332,-274}...{-332,-274} % 26
+ (717,1307){-425,-215}... % 27
+ (327,1057){-1,-1}... % 28
+ (142,595){0,-1}... % 29
+ (320,153){1,-1}... % 30
+ (797,-20){1,0}... % 31
+ (1472,237){1,1}... % 32
+ (1699,763){0,1}... % 33
+ (1478,1240){-1,1}...{-336,229} % 34
+ (1164,1475)--cycle); % 35
+
+endchar(0);
+
+"fbl9";
+
+charbegin( "9", 1850h#, lfigheight*v#, baseline );
+
+n := 13;
+t1 := 4;
+t2 := 7;
+t3 := 9;
+t4 := 11;
+t5 := 12;
+t6 := 13;
+t7 := 14;
+t8 := 16;
+t9 := 17;
+t10 := 20;
+t11 := 21;
+t12 := 22;
+t13 := 25;
+
+adj_fill.A(6, 13) % fixed x points
+ (2, 9) % fixed y points
+ ((5,1), (6,2), (11,2), (12,1)) % tied points
+ ((3,8), (1,10)) % verticals
+ ((4,7)) % horizontals
+ ((789,60){73,213}... % 0
+ (989,497){564,1059}...{641,1028} % *1
+ (1353,1119){636,1026}... % 2
+ (1633,1651){376,920}... % *3
+ (1729,2039){0,1}... % 4
+ (1539,2450){-100,105}... % 5
+ (1283,2572){-693,165}...{-1,0} % *6
+ (846,2615){-396,-224}... % 7
+ (345,2195){-685,-896}... % *8
+ (161,1719){0,-1}... % 9
+ (345,1289){1,-1}...{403,73} % 10
+ (800,1128){423,146}...{535,199} % 11
+ (1223,1274)-- % 12
+ (1292,1473){-551,-343}... % 13
+ (1015,1383){-1,0}... % 14
+ (693,1487){-1,1}... % 15
+ (520,1936){0,1}...{227,252} % 16
+ (705,2378){512,-9}... % 17
+ (966,2342){432,-127}... % *18
+ (1137,2251){1,-1}... % 19
+ (1346,1738){0,-1}...{-117,-356} % 20
+ (1292,1473){-69,-199}...{-69,-199} % 21
+ (1223,1274){30,-38}...{30,-38} % 22
+ (1253,1236){-426,-574}... % 23
+ (604,358){-872,-1228}...{-191,-374} % *24
+ (381,8){51,-45}...{51,-45} % 25
+ (432,-37)--cycle); % 26
+
+endchar(0);
+
+% GREEK CHARACTERS
+set_stem_round(400,415,450,450,480,520); % DEK
+more_side(100h#);
+
+"gb000"; %cap gamma
+
+charbegin( 0, 1808h#, capheight*v#, baseline );
+
+n := 7;
+t1 := 1;
+t2 := 6;
+t3 := 8;
+t4 := 10;
+t5 := 12.45;
+t6 := 15;
+t7 := 16;
+
+adj_fill.A(7) % fixed x points
+ (3, 6) % fixed y points
+ () % tied points
+ ((2,4)) % verticals
+ ((1,5)) % horizontals
+ ((1792,2561){-554,-44}... % 0
+ (1174,2559){-1,0}...{-1084,0} % 1
+ (90,2559){-8,-62}...{-8,-62} % 2
+ (82,2497){106,-110}... % 3
+ (188,2387){106,-110}... % 4
+ (255,2172){21,-389}... % 5
+ (253,1555){0,-1}...{-15,-798} % 6
+ (241,11){55,-43}...{55,-43} % 7
+ (296,-32)-- % 8
+ (683,113){-41,708}... % 9
+ (654,1538){0,1}... % 10
+ (662,2243){26,453}... % 11
+ (762,2331){484,26}... % 12
+ (1431,2315){287,-45}... % 13
+ (1616,2167){139,-288}...{139,-288} % 14
+ (1755,1879){91,10}...{91,10} % 15
+ (1846,1889)--cycle); % 16
+
+mathcorr(2skew#); % DEK
+endchar(0);
+
+"gb001"; %cap delta
+
+charbegin( 1, 2431h#, capheight*v#, baseline );
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 9;
+t5 := 10;
+t6 := 12;
+t7 := 15;
+t8 := 16;
+
+adj_fill.A() % fixed x points
+ (3, 6) % fixed y points
+ ((1,1), (4,1), (5,2), (8,2)) % tied points
+ () % verticals
+ ((2,7)) % horizontals
+ ((-22,125){8,-128}... % 0
+ (-14,-3){474,28}... % 1
+ (1271,3){1,0}...{761,-87} % 2
+ (2013,-27){414,188}...{414,188} % 3
+ (2427,161){-4,44}...{-4,44} % 4
+ (2423,205){-171,327}... % 5
+ (2005,1215){-807,2380}...{-204,847} % *6
+ (1616,2585){-420,-110}...{-420,-110} % 7
+ (1196,2475){-138,-314}...{-389,-706} % 8
+ (-22,125)-- % 9
+ (402,249){304,709}... % 10
+ (1210,2086){95,230}...{47,22} % 11
+ (1257,2108){275,-856}... % 12
+ (1839,273){175,-474}...{-4,-48} % 13
+ (1835,225){-29,-21}...{-29,-21} % 14
+ (1806,204){-1404,45}...{-1404,45} % 15
+ (402,249)--cycle); % 16
+
+endchar(0);
+
+"gb002"; %cap theta
+
+charbegin( 2, 3055h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 2.4;
+t4 := 3;
+t5 := 6;
+t6 := 8;
+t7 := 9;
+t8 := 12;
+t9 := 12.57;
+t10 := 13;
+t11 := 15;
+t12 := 17;
+
+adj_fill.A() % fixed x points
+ (1, 3, 5, 7, 9, 11) % fixed y points
+ () % tied points
+ ((6,12)) % verticals
+ ((4,8), (2,10)) % horizontals
+ ((1996,1751){-52,-163}... % 0
+ (1944,1588){-52,-163}... % 1
+ (1849,1518){-213,-10}... % 2
+ (1173,1519){-662,15}... % 3
+ (1099,1532){-109,44}... % *4
+ (1064,1563){-42,188}...{-42,188} % 5
+ (1022,1751){-85,0}...{-85,0} % 6
+ (937,1751){0,-1}... % 7
+ (937,1288){0,-1}...{0,-1} % 8
+ (937,846)-- % 9
+ (999,848){65,202}... % 10
+ (1064,1050){65,202}... % 11
+ (1173,1115){641,13}... % 12
+ (1846,1114){362,-29}... % 13
+ (1931,1056){49,-208}...{49,-208} % 14
+ (1980,848){86,0}...{86,0} % 15
+ (2066,848){-1,903}...{-1,903} % 16
+ (2065,1751)--cycle); % 17
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 14;
+t9 := 17;
+t10 := 20;
+
+adj_fill.B(1, 6) % fixed x points
+ (1, 10) % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((4,7), (2,9)) % verticals
+ ((5,6), (3,8)) % horizontals
+ ((1340,-53){1,0}... % 0
+ (2457,329){1,1}... % 1
+ (2833,1417){0,1}... % 2
+ (2523,2298){-1,1}... % 3
+ (1654,2587){-1,0}... % 4
+ (1012,2490){-1110,-373}... % *5
+ (544,2214){-1,-1}... % 6
+ (158,1189){0,-1}... % 7
+ (503,236){1,-1}...{1,0} % 8
+ (1340,-53)-- % 9
+ (1553,124){-1,0}... % 10
+ (964,349){-1,1}... % 11
+ (624,1288){0,1}... % 12
+ (960,2251){1,1}... % 13
+ (1475,2423){1,0}... % 14
+ (2096,2182){1,-1}... % 15
+ (2308,1796){286,-957}... % *16
+ (2382,1225){0,-1}... % 17
+ (2317,715){-251,-852}... % *18
+ (2131,373){-1,-1}...{-1,0} % 19
+ (1553,124)--cycle); % 20
+
+endchar(0);
+
+"gb003"; %upper case lambda
+
+charbegin( 3, 2649h#, capheight*v#, baseline );
+n := 2;
+t1 := 7;
+t2 := 8;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((2639,243){-357,-109}... % 0
+ (2368,297){-1,1}... % 1
+ (2145,696){-332,811}... % 2
+ (1879,1488){-536,1873}...{-140,633} % *3
+ (1609,2569){-352,-84}...{-352,-84} % 4
+ (1257,2485){-174,-370}...{-361,-599} % 5
+ (-40,59){41,-72}...{41,-72} % 6
+ (1,-13)-- % 7
+ (1,-13){375,87}...{375,87} % 8
+ (376,74){294,722}... % 9
+ (1255,2039){213,425}...{31,-44} % 10
+ (1286,1995){224,-775}... % 11
+ (1818,168){188,-582}...{355,-143} % 12
+ (2015,-47){630,192}...{630,192} % 13
+ (2645,145)--cycle); % 14
+
+endchar(0);
+
+"gb004"; %upper case Xi
+
+charbegin( 4, 1993h#, capheight*v#, baseline );
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 9;
+
+adj_fill.A() % fixed x points
+ (1, 3) % fixed y points
+ () % tied points
+ () % verticals
+ ((2,4)) % horizontals
+ ((1902,699){-71,-208}... % 0
+ (1831,491){-71,-208}... % 1
+ (1656,391){-1,0}... % 2
+ (329,391){-1,0}... % 3
+ (143,504){-58,191}...{-58,191} % 4
+ (85,695)-- % 5
+ (-2,687){31,-649}...{46,-376} % 6
+ (69,-21){529,33}... % 7
+ (550,-4){1,0}... % 8
+ (1411,-4){1,0}...{456,-45} % 9
+ (1925,-53){70,742}...{70,742} % 10
+ (1995,689)--cycle); % 11
+
+n := 4;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((2,3), (1,4)) % horizontals
+ ((1606,1503){-13,25}...{-13,25} % 0
+ (1593,1528){-1193,13}...{-1193,13} % 1
+ (400,1528)-- % 2
+ (295,1140){26,-23}...{26,-23} % 3
+ (321,1117){718,82}... % 4
+ (596,1132){1183,21}...{383,4} % *5
+ (1504,1138)--cycle); % 6
+
+n := 2;
+t1 := 2;
+t2 := 6;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((1984,1869){-73,701}...{-73,701} % 0
+ (1911,2570){-341,-45}... % 1
+ (1087,2549){-1,0}...{-718,47} % 2
+ (54,2591){-67,-722}...{-67,-722} % 3
+ (-13,1869)-- % 4
+ (87,1869){97,212}... % 5
+ (184,2081){97,212}... % 6
+ (374,2166){1,0}... % 7
+ (1511,2162){1,0}... % 8
+ (1718,2125){324,-137}... % *9
+ (1835,2025){73,-156}...{73,-156} % 10
+ (1908,1869)--cycle); % 11
+
+endchar(0);
+
+"gb005"; %upper case pi
+
+charbegin( 5, 2640h#, capheight*v#, baseline );
+n := 14;
+t1 := 2;
+t2 := 5;
+t3 := 6;
+t4 := 6.3;
+t5 := 7.5;
+t6 := 9;
+t7 := 10;
+t8 := 13;
+t9 := 15;
+t10 := 16;
+t11 := 18;
+t12 := 20;
+t13 := 23;
+t14 := 26;
+
+adj_fill.A() % fixed x points
+ (4, 9, 10, 14) % fixed y points
+ ((9,1), (10,1)) % tied points
+ ((8,11), (3,6), (1,13)) % verticals
+ ((6,7), (2,3), (5,12)) % horizontals
+ ((2337,72){-26,718}... % 0
+ (2311,790){-26,718}... % 1
+ (2301,1741){0,1}... % 2
+ (2309,2202){29,721}... % 3
+ (2431,2370){198,47}...{198,47} % 4
+ (2629,2417){4,121}...{4,121} % 5
+ (2633,2538){-376,-12}... % 6
+ (2074,2539){-1,0}... % 7
+ (713,2539){-1,0}...{-606,26} % 8
+ (-2,2552){0,-113}... % 9
+ (-2,2439){.9435,-1.331}... % 10
+ (223,2360){225,-79}... % 11
+ (291,2240){0,-210}... % 12
+ (299,1143){0,-1}...{-19,-704} % 13
+ (286,2){50,-36}...{50,-36} % 14
+ (336,-34)-- % 15
+ (336,-34){414,135}...{414,135} % 16
+ (750,101){-38,735}... % 17
+ (723,1171){0,1}... % 18
+ (740,2216){53,429}... % 19
+ (860,2306){1,0}... % 20
+ (1736,2306){1,0}... % 21
+ (1854,2306){1.121,-.9927}... % 22
+ (1882,2076){0,-1}... % 23
+ (1876,708){-18,-720}...{-18,-720} % 24
+ (1858,-12){52,-39}...{52,-39} % 25
+ (1910,-51)--cycle); % 26
+
+endchar(0);
+
+"gb006"; %upper case Sigma
+
+charbegin( 6, 2195h#, capheight*v#, baseline );
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 6;
+t5 := 8.694;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 17;
+t10 := 19;
+
+adj_fill.A(2, 5, 7, 10) % fixed x points
+ (1, 2) % fixed y points
+ () % tied points
+ ((4,9)) % verticals
+ ((3,10), (6,8)) % horizontals
+ ((2006,-2){-380,25}... % 0
+ (1596,9){-2011,4}...{-1,0} % *1
+ (-5,2){64,250}...{64,250} % 2
+ (59,252){520,611}... % 3
+ (579,863){520,611}... % 4
+ (782,1158){336,640}... % 5
+ (822,1266){0,1}... % 6
+ (781,1387){-587,943}...{-587,943} % 7
+ (194,2330){-1,35}... % 8
+ (193,2365){.7895,1.575}...{266,187} % 9
+ (459,2552){1,0}...{643,43} % 10
+ (2025,2587){36,-29}...{36,-29} % 11
+ (2061,2558)-- % 12
+ (1931,2305){-713,42}...{-1,0} % 13
+ (760,2318){-16,-27}...{-16,-27} % 14
+ (744,2291){417,-556}... % 15
+ (1176,1637){145,-318}... % 16
+ (1213,1496){-.1628,-1.876}... % 17
+ (1169,1400){-650,-938}...{-650,-938} % 18
+ (519,462){1612,32}...{1612,32} % 19
+ (2131,494)--cycle); % 20
+
+endchar(0);
+
+"gb007"; %upper case Upsilon
+
+charbegin( 7, 2470h#, capheight*v#, baseline );
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 13;
+t8 := 14;
+t9 := 15;
+
+adj_fill.A(5, 9) % fixed x points
+ (1, 4) % fixed y points
+ ((8,1), (9,2)) % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((1072,-24){-68,33}...{-68,33} % 0
+ (1004,9){29,404}... % 1
+ (1022,741){0,1}... % 2
+ (923,1576){-381,1376}... % *3
+ (641,2117){-1,1}... % 4
+ (361,2237){-1,0}... % 5
+ (166,2157){-1,-1}...{-91,-322} % 6
+ (66,1960)-- % 7
+ (-3,1979){44,504}... % 8
+ (176,2453){1,1}... % 9
+ (563,2595){1,0}... % 10
+ (950,2456){1,-1}... % 11
+ (1145,2053){282,-1085}...{10,-288} % *12
+ (1232,1371){28,-8}...{28,-8} % 13
+ (1260,1363){222,-1262}...{222,-1262} % 14
+ (1482,101)--cycle); % 15
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 11;
+t6 := 13;
+
+adj_fill.B() % fixed x points
+ (6) % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((1,6)) % verticals
+ ((2,5)) % horizontals
+ ((2467,1983){0,1}... % 0
+ (2432,2321){-133,543}... % *1
+ (2334,2526){-1,1}... % 2
+ (2047,2616){-1,0}... % 3
+ (1683,2451){-1,-1}... % 4
+ (1443,2041){-423,-1088}...{-153,-818} % *5
+ (1260,1363)-- % 6
+ (1482,101){-50,800}... % 7
+ (1454,778){0,1}... % 8
+ (1562,1570){417,1341}... % *9
+ (1871,2119){1,1}... % 10
+ (2132,2246){1,0}... % 11
+ (2298,2188){1,-1}...{145,-996} % 12
+ (2381,1974)--cycle); % 13
+
+endchar(0);
+
+"gb010"; %upper case Phi
+
+charbegin( 8, 3072h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 16;
+t9 := 17;
+t10 := 18;
+t11 := 19;
+t12 := 23;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (8,3), (9,4), (10,5), (11,6))% tied points
+ ((6,7), (3,10), (1,12)) % verticals
+ ((5,6), (1,2)) % horizontals
+ ((974,0){4,100}...{4,100} % 0
+ (978,100){272,57}... % 1
+ (1250,157){281,57}... % 2
+ (1288,217){49,705}...{0,1} % 3
+ (1288,334){-3,102}...{-3,102} % 4
+ (1285,436){0,1}... % 5
+ (1285,2067){0,2}... % 6
+ (1285,2174){0,2}... % 7
+ (1285,2283){0,1}... % 8
+ (1219,2381){-245,55}...{-245,55} % 9
+ (974,2436){-2,98}...{-2,98} % 10
+ (972,2534)-- % 11
+ (2061,2534){0,-90}...{0,-90} % 12
+ (2061,2444){-247,-52}... % 13
+ (1814,2392){-247,-52}... % 14
+ (1741,2313){0,-1}... % 15
+ (1741,2173){0,-2}... % 16
+ (1741,2056){0,-2}...{0,-1} % 17
+ (1741,424){0,-96}...{0,-96} % 18
+ (1741,328){0,-1}... % 19
+ (1741,201){84,-388}... % 20
+ (1835,159){254,-54}...{254,-54} % 21
+ (2089,105){5,-105}...{5,-105} % 22
+ (2094,0)--cycle); % 23
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((3,2), (6,1)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((1299,334){-1,0}... % 0
+ (768,408){-903,286}... % *1
+ (396,620){-1,1}... % 2
+ (161,1267){0,1}... % 3
+ (406,1886){1,1}... % 4
+ (773,2099){879,288}...{1,0} % *5
+ (1285,2174)-- % 6
+ (1284,2065){-1,0}... % 7
+ (869,1906){-1,-1}... % 8
+ (643,1274){0,-1}... % 9
+ (860,641){1,-1}...{1,0} % 10
+ (1285,436)--cycle); % 11
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+t6 := 12;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,6), (3,3), (4,4), (6,5)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((1741,328){1,0}... % 0
+ (2623,636){1,1}... % 1
+ (2873,1358){0,1}... % 2
+ (2668,1936){-1,1}... % 3
+ (2313,2111){-927,237}...{-1,0} % *4
+ (1741,2173)-- % 5
+ (1741,2056){1,0}... % 6
+ (2223,1902){1,-1}... % 7
+ (2355,1666){178,-578}... % *8
+ (2401,1324){0,-1}... % 9
+ (2341,896){-230,-728}... % *10
+ (2171,596){-1,-1}...{-1,0} % 11
+ (1741,424)--cycle); % 12
+
+endchar(0);
+
+"gb011"; %upper case Psi
+
+charbegin( 9, 2427h#, capheight*v#, baseline );
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+t8 := 13;
+t9 := 14;
+
+adj_fill.A() % fixed x points
+ (5) % fixed y points
+ ((3,1), (4,2), (6,3), (7,4)) % tied points
+ ((4,6), (1,9)) % verticals
+ ((1,2), (8,9)) % horizontals
+ ((680,-5){5,109}...{5,109} % 0
+ (685,104){239,58}... % 1
+ (924,162){239,58}... % 2
+ (1005,274){0,1}...{0,1} % 3
+ (1005,915){16,119}...{16,119} % 4
+ (1021,1034){0,1}...{-46,646} % 5
+ (1005,2465)-- % 6
+ (1404,2583){49,-46}...{49,-46} % 7
+ (1453,2537){-24,-822}...{0,-1} % 8
+ (1439,1030){-5,-100}...{-5,-100} % 9
+ (1434,930){4,-683}... % 10
+ (1470,275){42,-373}... % 11
+ (1542,172){255,-74}...{255,-74} % 12
+ (1797,98){0,-103}...{0,-103} % 13
+ (1797,-5)--cycle); % 14
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 11;
+t7 := 12.54;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((4,2), (5,1)) % tied points
+ ((3,6)) % verticals
+ ((2,7), (4,5)) % horizontals
+ ((-207,2456){607,146}... % 0
+ (400,2602){1,0}... % 1
+ (544,2557){1,-1}... % 2
+ (595,2408){58,-668}... % *3
+ (602,1889){14,-521}... % 4
+ (878,1132){1,-1}...{512,-360} % 5
+ (1021,1034)-- % 6
+ (1005,915){-612,89}... % 7
+ (619,999){-602,195}... % *8
+ (403,1110){-1,1}... % 9
+ (242,1399){-219,709}... % *10
+ (184,1819){-1,351}... % 11
+ (114,2341){-1,1}...{-10,-5} % 12
+ (-177,2364)--cycle); % 13
+
+n := 3;
+t1 := 0;
+t2 := 6;
+t3 := 7;
+
+adj_fill.C() % fixed x points
+ (1) % fixed y points
+ ((2,3), (3,4)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((2490,2546){-264,-35}...{-537,-174} % 0
+ (1967,2424){-272,-386}... % 1
+ (1875,2148){-94,-692}... % 2
+ (1781,1456){-94,-692}... % 3
+ (1605,1107){-1,-1}... % 4
+ (1576,1088){-166,-77}...{-481,-222} % *5
+ (1439,1030)-- % 6
+ (1434,930){486,68}... % 7
+ (1802,1016){597,217}... % *8
+ (2031,1147){1,1}... % 9
+ (2128,1303){166,399}... % *10
+ (2197,1546){123,644}... % 11
+ (2320,2190){123,644}...{440,187} % 12
+ (2477,2447)--cycle); % 13
+
+endchar(0);
+
+"gb012"; %upper case Omega
+
+charbegin( 10, 3026h#, capheight*v#, baseline );
+n := 12;
+t1 := 1;
+t2 := 4;
+t3 := 7;
+t4 := 10;
+t5 := 12;
+t6 := 16;
+t7 := 18;
+t8 := 20;
+t9 := 22;
+t10 := 24;
+t11 := 28;
+t12 := 29;
+
+adj_fill.A(1, 5, 7, 11) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((4,8), (2,10)) % verticals
+ ((5,6), (3,9), (1,12)) % horizontals
+ ((3022,390){-1,0}...{-748,-44} % 0
+ (1980,344){5,35}...{5,35} % 1
+ (1985,379){398,51}... % 2
+ (2497,669){1,1}... % 3
+ (2781,1461){0,1}... % 4
+ (2503,2284){-1,1}... % 5
+ (2111,2510){-944,305}... % *6
+ (1559,2589){-1,0}... % 7
+ (972,2506){-1000,-319}... % *8
+ (559,2270){-1,-1}... % 9
+ (227,1425){0,-1}...{609,-202} % 10
+ (971,375){5,-21}...{5,-21} % 11
+ (976,354){-1,0}...{-605,55} % 12
+ (82,405)-- % 13
+ (-12,53){21,-42}...{21,-42} % 14
+ (9,11){680,37}... % 15
+ (604,30){1,0}...{315,-24} % 16
+ (1213,11){109,342}...{109,342} % 17
+ (1322,353){-12,4}... % 18
+ (880,728){-611,1027}... % *19
+ (711,1380){0,1}... % 20
+ (1007,2264){1,1}... % 21
+ (1525,2439){1,0}... % 22
+ (2007,2269){1,-1}... % 23
+ (2309,1401){0,-1}... % 24
+ (2247,906){-240,-825}... % *25
+ (2069,576){-1,-1}...{-501,-131} % 26
+ (1682,349){-88,-352}...{-88,-352} % 27
+ (1594,-3){648,52}... % 28
+ (2286,20){1,0}...{274,-19} % 29
+ (2900,-17)--cycle); % 30
+
+endchar(0);
+
+% GREEK LOWERCASE
+set_stem_round(350,367,390,390,405,420); % DEK
+
+"gb013"; %lower case alpha
+
+charbegin( 11, 2202h#, lcbody*v#, baseline );
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 7;
+t4 := 10;
+t5 := 18;
+t6 := 26;
+t7 := 28;
+t8 := 33;
+
+adj_fill.A(1, 5) % fixed x points
+ (3, 7) % fixed y points
+ () % tied points
+ ((4,6)) % verticals
+ ((2,8)) % horizontals
+ ((2327,291){-46,-52}... % 0
+ (2048,26){-129,-95}... % *1
+ (1839,-68){-1,0}... % 2
+ (1695,-15){-1,1}... % 3
+ (1491,575){-28,113}... % 4
+ (1322,1140){-87,226}... % *5
+ (1162,1430){-1,1}... % 6
+ (946,1532){-1,0}... % 7
+ (723,1430){-1,-1}... % 8
+ (605,1191){-42,-166}... % *9
+ (564,802){0,-1}... % 10
+ (599,520){36,-124}... % *11
+ (700,333){1,-1}... % 12
+ (851,265){1,0}... % 13
+ (1105,401){1,1}...{47,75} % 14
+ (1415,825){65,95}... % 15
+ (1661,1184){1.055,1.697}...{86,153} % 16
+ (1986,1763)-- % 17
+ (2210,1627){-125,-185}... % 18
+ (1737,927){-1.192,-1.603}...{-80,-98} % 19
+ (1434,556){-106,-121}... % 20
+ (1173,257){-1,-1}... % 21
+ (874,28){-153,-82}... % *22
+ (594,-53){-1,0}... % 23
+ (378,30){-1,1}... % 24
+ (250,267){-46,156}... % *25
+ (204,621){0,1}... % 26
+ (552,1506){1,1}... % 27
+ (1131,1752){1,0}... % 28
+ (1495,1601){1,-1}... % 29
+ (1763,954){47,-153}... % 30
+ (1920,413){62,-181}... % *31
+ (1998,269){1,-1}... % 32
+ (2077,235){1,0}...{71,54} % 33
+ (2285,363)--cycle); % 34
+
+endchar(0);
+
+"gb014"; %lower case beta
+
+%charbegin( 12, 2153h#, capheight*v#, descender*v#);
+charbegin( 12, 2153h#, ascender*v#, descender*v#); % DEK
+n := 9;
+t1 := 1;
+t2 := 3;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+t7 := 15;
+t8 := 17;
+t9 := 19;
+
+adj_fill.A(1, 9) % fixed x points
+ (5, 9) % fixed y points
+ () % tied points
+ ((4,6), (2,8)) % verticals
+ ((3,7)) % horizontals
+ ((1230,1381){0,5}...{0,5} % 0
+ (1230,1400){71,21}... % 1
+ (1559,1589){1,1}... % 2
+ (1748,2043){0,1}... % 3
+ (1608,2365){-1,1}... % 4
+ (1173,2501){-1,0}... % 5
+ (602,2266){-1,-1}... % 6
+ (361,1835){-86,-280}... % *7
+ (276,1207){0,-1}...{-6,-180} % 8
+ (261,-681){12,-10}...{12,-10} % 9
+ (306,-719)-- % 10
+ (662,-564){-9,564}... % 11
+ (628,1570){0,1}... % 12
+ (661,1978){33,167}... % *13
+ (753,2202){1,1}... % 14
+ (1029,2331){1,0}... % 15
+ (1309,2210){1,-1}... % 16
+ (1408,1964){0,-1}... % 17
+ (1256,1548){-1,-1}...{-1,0} % 18
+ (832,1377)--cycle); % 19
+
+n := 8;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 13;
+t7 := 16;
+t8 := 19;
+
+adj_fill.B(1, 5) % fixed x points
+ (4, 5, 8) % fixed y points
+ () % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((704,125){68,-145}... % 0
+ (757,49){1,-1}... % 1
+ (885,-18){86,-24}... % *2
+ (1082,-42){1,0}... % 3
+ (1763,197){1,1}... % 4
+ (1968,764){0,1}... % 5
+ (1801,1173){-1,1}... % 6
+ (1565,1313){-153,55}... % *7
+ (1222,1381){-67,5}...{-1,0} % 8
+ (836,1381)-- % 9
+ (829,1252){1,0}... % 10
+ (1188,1224){147,-29}... % *11
+ (1385,1143){1,-1}... % 12
+ (1551,719){0,-1}... % 13
+ (1512,402){-40,-139}... % *14
+ (1400,193){-1,-1}... % 15
+ (1192,98){-1,0}... % 16
+ (1038,182){-64,78}...{-11,74} % *17
+ (950,394){-11,3}...{-11,3} % 18
+ (908,405)--cycle); % 19
+
+endchar(0);
+
+"gb015"; %lower case gamma
+
+charbegin( 13, 1971h#, lcbody*v#, descender*v#);
+n := 4;
+t1 := 1;
+t2 := 7;
+t3 := 11;
+t4 := 12;
+
+adj_fill.A() % fixed x points
+ (2, 4) % fixed y points
+ () % tied points
+ () % verticals
+ ((1,3)) % horizontals
+ ((-110,1445){1,1}... % 0
+ (499,1741){1,0}... % 1
+ (844,1612){1,-1}... % 2
+ (1060,1180){75,-294}...{-2,-121} % *3
+ (1128,499){3,-57}...{3,-57} % 4
+ (1139,284){-2,-234}...{-2,-234} % 5
+ (1131,-602)-- % 6
+ (927,-742){-14,209}...{-14,209} % 7
+ (874,49){-9,145}... % 8
+ (743,910){-102,362}... % *9
+ (488,1419){-1,1}... % 10
+ (276,1510){-1,0}...{-98,-83} % 11
+ (-34,1374)--cycle); % 12
+
+n := 0;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((904,170){-33,-85}...{-9,-54} % 0
+ (685,-564)-- % 1
+ (935,-745){16,232}...{16,232} % 2
+ (995,132)--cycle); % 3
+
+n := 0;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((2002,1642){-4,-13}...{-4,-13} % 0
+ (1986,1593){-60,-98}... % 1
+ (1276,437){-244,-404}...{-55,-107} % *2
+ (1063,64)-- % 3
+ (1101,378){52,94}...{19,67} % 4
+ (1672,1714){17,11}...{17,11} % 5
+ (1737,1756)--cycle); % 6
+
+endchar(0);
+
+"gb016"; %lower case delta
+
+%charbegin( 14, 1763h#, capheight*v#, baseline );
+charbegin( 14, 1763h#, ascender*v#, baseline ); % DEK
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 9;
+t6 := 12;
+t7 := 13;
+t8 := 15;
+t9 := 18;
+t10 := 22;
+t11 := 24;
+t12 := 26;
+t13 := 27;
+
+adj_fill.A(1, 7) % fixed x points
+ (13) % fixed y points
+ () % tied points
+ ((5,9), (4,10), (2,12)) % verticals
+ ((6,8), (3,11)) % horizontals
+ ((764,1426){-26,-19}... % 0
+ (518,874){0,-1}... % 1
+ (723,314){1,-1}... % 2
+ (938,216){1,0}... % 3
+ (1234,348){1,1}... % 4
+ (1332,624){0,1}... % 5
+ (1209,951){-124,189}... % *6
+ (863,1339){-10,9}... % 7
+ (533,1683){-117,153}... % *8
+ (420,1918){0,1}... % 9
+ (613,2327){1,1}... % 10
+ (843,2447){154,43}... % *11
+ (1196,2490){1,0}...{155,-12} % 12
+ (1419,2475)-- % 13
+ (1355,2304){-75,4}... % 14
+ (988,2308){-1,0}... % 15
+ (803,2291){-77,-17}... % *16
+ (696,2244){-1,-1}... % 17
+ (655,2134){0,-1}... % 18
+ (753,1955){119,-131}... % *19
+ (1105,1638){12,-10}... % 20
+ (1468,1251){130,-194}... % *21
+ (1597,904){0,-1}... % 22
+ (1332,235){-1,-1}... % 23
+ (711,-42){-1,0}... % 24
+ (337,95){-1,1}... % 25
+ (174,602){0,1}...{9,7} % 26
+ (677,1521)--cycle); % 27
+
+endchar(0);
+
+"gb017"; %lower case epsilon
+
+charbegin( 15, 1775h#, lcbody*v#, baseline );
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+t9 := 14;
+t10 := 15;
+
+adj_fill.A(6, 10) % fixed x points
+ (1, 5) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1661,386){-95,-79}... % 0
+ (1173,204){-1,0}... % 1
+ (787,329){-1,1}... % 2
+ (564,991){0,1}... % 3
+ (734,1468){1,1}... % 4
+ (1025,1589){1,0}... % 5
+ (1275,1491){1,-1}...{77,-160} % 6
+ (1423,1264){13,-2}...{13,-2} % 7
+ (1472,1256)-- % 8
+ (1654,1491){-133,142}... % 9
+ (1078,1741){-1,0}... % 10
+ (454,1487){-1,-1}... % 11
+ (182,764){0,-1}... % 12
+ (394,132){1,-1}... % 13
+ (882,-26){1,0}...{75,68} % 14
+ (1714,295)--cycle); % 15
+
+n := 2;
+t1 := 1;
+t2 := 4;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((1389,972){-82,-1}... % 0
+ (954,969){-1,0}...{-86,9} % 1
+ (443,988)-- % 2
+ (443,791){106,5}... % 3
+ (772,806){1,0}...{84,-1} % 4
+ (1336,810)--cycle); % 5
+
+endchar(0);
+
+"gb020"; %lower case zeta
+
+%charbegin( 16, 1560h#, capheight*v#, depthy*v#);
+charbegin( 16, 1560h#, ascender*v#, 2/3descender*v#); % DEK
+
+n := 3;
+t1 := .6782;
+t2 := 3;
+t3 := 6.102;
+
+adj_fill.A() % fixed x points
+ (2) % fixed y points
+ () % tied points
+ () % verticals
+ ((1,3)) % horizontals
+ ((1546,2306){-81,-15}... % 0
+ (1238,2291){-1.943,.281}... % 1
+ (878,2374){-157.3,55}...{-90,78} % *2
+ (643,2499)-- % 3
+ (483,2310){94,-72}... % 4
+ (710,2220){161.3,-37}... % *5
+ (1094,2170){1.97,-.1229}...{52,5} % 6
+ (1542,2215)--cycle); % 7
+
+n := 9;
+t1 := 1;
+t2 := 3;
+t3 := 8;
+t4 := 11;
+t5 := 12;
+t6 := 15;
+t7 := 19;
+t8 := 21;
+t9 := 23;
+
+adj_fill.B(5) % fixed x points
+ (4, 9) % fixed y points
+ () % tied points
+ ((3,6), (1,8)) % verticals
+ ((2,7)) % horizontals
+ ((1259,-427){67,115}... % 0
+ (1353,-157){-.06033,1.866}... % 1
+ (1312,-61){-1.284,1.366}... % 2
+ (1203,-7){-115,9}... % 3
+ (976,-15){-121,-13}... % 4
+ (716,-32){-1.947,.2502}... % 5
+ (490,16){-95.5,31.75}... % *6
+ (355,88){-1.293,1.254}... % 7
+ (167,599){-.03261,1.889}... % 8
+ (438,1424){96,152}... % 9
+ (919,1997){1.405,1.413}...{82,64} % 10
+ (1186,2224)-- % 11
+ (1544,2217){-61,-16}... % 12
+ (1110,1982){-1.485,-1.272}... % 13
+ (723,1474){-94,-182}... % 14
+ (552,791){.05159,-1.926}... % 15
+ (685,359){1.232,-1.301}... % 16
+ (937,267){1.938,-.2998}... % 17
+ (1148,276){148,11}... % 18
+ (1375,286){1.939,-.2998}... % 19
+ (1576,213){1.286,-1.28}... % 20
+ (1619,97){-.09997,-1.833}... % 21
+ (1541,-136){-75.5,-151.5}...{-49,-70} % *22
+ (1333,-476)--cycle); % 23
+
+endchar(0);
+
+"gb021"; %lower case eta
+
+charbegin( 17, 1990h#, lcbody*v#, descender*v#);
+
+n := 6;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+
+adj_fill.A(3) % fixed x points
+ (6) % fixed y points
+ () % tied points
+ ((1,5)) % verticals
+ ((2,4)) % horizontals
+ ((686,114){-10,135}... % 0
+ (674,1312){-1,182}... % 1
+ (653,1553){-20.41,98.98}... % *2
+ (597,1686){-1,1}... % 3
+ (455,1740){-1,0}... % 4
+ (207,1663){-138.8,-78.57}...{-100,-101}% *5
+ (-70,1443)-- % 6
+ (-10,1366){115,78}... % 7
+ (201,1467){1,0}... % 8
+ (271,1442){1,-1}... % 9
+ (330,1137){0,-1}...{-1,-375} % 10
+ (303,11){9.439,-9.949}...{9.439,-9.949}% 11
+ (339,-27)--cycle); % 12
+
+n := 6;
+t1 := 1;
+t2 := 4;
+t3 := 7;
+t4 := 8;
+t5 := 11;
+t6 := 13;
+
+adj_fill.B(3) % fixed x points
+ (3, 6) % fixed y points
+ () % tied points
+ ((1,5)) % verticals
+ ((2,4)) % horizontals
+ ((1719,-578){-9,126}... % 0
+ (1688,720){0,1}... % 1
+ (1676,1370){-24.74,234.7}... % *2
+ (1595,1608){-1,1}... % 3
+ (1334,1737){-1,0}... % 4
+ (997,1654){-199,-86.48}...{-105,-75} % *5
+ (581,1410)-- % 6
+ (540,1246){100,86}... % 7
+ (1053,1486){1,0}... % 8
+ (1239,1411){1,-1}... % 9
+ (1311,1205){22.96,-192.6}... % *10
+ (1326,682){0,-1}...{-8,-150} % 11
+ (1305,-685){12.76,-11.48}...{12.76,-11.48}% 12
+ (1353,-729)--cycle); % 13
+
+endchar(0);
+
+"gb022"; %lower case theta
+
+charbegin( 18, 1981h#, ascender*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 9;
+t5 := 12;
+t6 := 13;
+t7 := 16;
+t8 := 19;
+t9 := 22;
+t10 := 25;
+
+adj_fill.A(5, 10) % fixed x points
+ (1, 10) % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((4,7), (2,9)) % verticals
+ ((5,6), (3,8)) % horizontals
+ ((1148,2505){1,0}... % 0
+ (1524,2369){1,-1}... % 1
+ (1725,2006){71.68,-236.7}... % *2
+ (1795,1473){0,-1}... % 3
+ (1699,727){-98.47,-330.1}... % *4
+ (1423,224){-1,-1}... % 5
+ (823,-52){-1,0}... % 6
+ (463,91){-1,1}... % 7
+ (256,500){-73.98,279.1}... % *8
+ (183,1147){0,1}... % 9
+ (273,1787){91.58,288}... % *10
+ (530,2236){1,1}...{1,0} % 11
+ (1148,2505)-- % 12
+ (927,2303){-1,0}... % 13
+ (667,2192){-1,-1}... % 14
+ (541,1918){-44.9,-195.9}... % *15
+ (497,1451){0,-1}... % 16
+ (577,753){80.87,-301.8}... % *17
+ (803,309){1,-1}... % 18
+ (1027,195){1,0}... % 19
+ (1308,311){1,1}... % 20
+ (1417,562){39.03,183.4}... % *21
+ (1456,1005){0,1}... % 22
+ (1382,1745){-74.74,312.8}... % *23
+ (1173,2188){-1,1}...{-1,0} % 24
+ (923,2304)--cycle); % 25
+
+n := 2;
+t1 := 1;
+t2 := 4;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((1460,1354){-92,-5}... % 0
+ (955,1334){-1,0}...{-167,2} % 1
+ (369,1344)-- % 2
+ (477,1164){166,6}... % 3
+ (959,1174){1,0}...{88,-6} % 4
+ (1460,1151)--cycle); % 5
+
+endchar(0);
+
+"gb023"; %lower case iota
+
+charbegin( 19, 990h#, lcbody*v#, baseline );
+
+n := 5;
+t1 := 3;
+t2 := 5;
+t3 := 7;
+t4 := 9;
+t5 := 12;
+
+adj_fill.A(5) % fixed x points
+ (2) % fixed y points
+ () % tied points
+ ((1,3)) % verticals
+ ((1,4)) % horizontals
+ ((1016,398){-46,-56}... % 0
+ (785,251){-1,0}... % 1
+ (706,285){-1,1}... % 2
+ (650,612){0,1}...{9,211} % 3
+ (672,1705){-11.25,8.44}...{-11.25,8.44}% 4
+ (629,1737)-- % 5
+ (285,1619){9,-216}... % 6
+ (309,515){0,-1}... % 7
+ (332,200){23.79,-127.6}... % *8
+ (399,32){1,-1}... % 9
+ (554,-41){1,0}... % 10
+ (924,145){1,1}...{65,98} % 11
+ (1071,339)--cycle); % 12
+
+endchar(0);
+
+"gb024"; %lower case kappa
+
+charbegin( 20, 1760h#, lcbody*v#, baseline );
+
+n := 2;
+t1 := 2;
+t2 := 6;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,2)) % verticals
+ () % horizontals
+ ((322,-26){-10.18,5.598}...{-10.18,5.598}% 0
+ (283,-5){1,542}... % 1
+ (289,837){0,1}...{-4,189} % 2
+ (273,1617)-- % 3
+ (628,1742){9.415,-10.94}...{9.415,-10.94}% 4
+ (663,1700){-8,-204}... % 5
+ (637,907){0,-1}...{3,-130} % 6
+ (647,91)--cycle); % 7
+
+n := 1;
+t1 := 0;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((585,867){76,79}... % 0
+ (1106,1390){101,91}...{65,45} % 1
+ (1538,1728)-- % 2
+ (1789,1617){0,-9.924}...{0,-9.924} % 3
+ (1789,1579){-120,-67}... % 4
+ (1339,1312){-122,-74}...{-67,-51} % 5
+ (924,1030)--cycle); % 6
+
+n := 1;
+t1 := 4;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((1766,149){-1.018,8.142}...{-1.018,8.142}% 0
+ (1762,180){-59,55}... % 1
+ (1323,586){-127,127}...{-134,158} % 2
+ (901,1059)-- % 3
+ (585,867){140,-168}... % 4
+ (988,391){104,-118}...{102,-99} % 5
+ (1406,-44)--cycle); % 6
+
+endchar(0);
+
+"gb025"; %lower case lambda
+
+charbegin( 21, 1804h#, ascender*v#, baseline );
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((26,-22){-7.888,12.47}...{-7.888,12.47}% 0
+ (-4,25){39,86}... % 1
+ (390,815){65,120}... % 2
+ (770,1508){122.6,226.7}...{43,94} % *3
+ (854,1673)-- % 4
+ (958,1562){-82,-176}... % 5
+ (613,797){-73,-183}...{-32,-115} % 6
+ (348,73)--cycle); % 7
+
+n := 3;
+t1 := 0;
+t2 := 5;
+t3 := 8;
+
+adj_fill.B() % fixed x points
+ (1) % fixed y points
+ () % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1432,-42){-10.94,2.036}...{-10.94,2.036}% 0
+ (1390,-35){-30,93}... % 1
+ (891,1407){-58,158}... % 2
+ (664,2012){-93.13,216}... % *3
+ (538,2224){-1,1}... % 4
+ (349,2315){-1,0}...{-114,-31} % 5
+ (127,2280)-- % 6
+ (81,2361){79,37}... % 7
+ (607,2512){1,0}... % 8
+ (893,2394){1,-1}... % 9
+ (1024,2169){100.3,-243.3}... % *10
+ (1272,1473){61,-171}...{64,-143} % 11
+ (1818,113)--cycle); % 12
+
+endchar(0);
+
+"gb026"; %lower case mu
+
+charbegin( 22, 1972h#, lcbody*v#, descender*v#);
+
+n := 6;
+t1 := 2;
+%t2 := 6;
+t2 := 5; % DEK
+t3 := 7;
+t4 := 9;
+t5 := 12;
+t6 := 13;
+
+adj_fill.A(6) % fixed x points
+ (3, 6) % fixed y points
+ () % tied points
+ ((2,4)) % verticals
+ ((1,5)) % horizontals
+ ((1332,292){-54,-43}... % 0
+ (972,55){-169.5,-84.22}... % *1
+ (690,-27){-1,0}... % 2
+ (412,111){-70,106}... % 3
+ (312,371){-35.62,166.2}... % *4
+ (277,739){0,1}...{-8,164} % 5
+ (249,1618)-- % 6
+ (608,1751){11.96,-7.634}...{11.96,-7.634}% 7
+ (654,1722){-9,-195}... % 8
+ (634,938){0,-1}... % 9
+ (664,520){30.79,-168.7}... % *10
+ (751,299){1,-1}... % 11
+ (941,257){1,0}...{24,24} % 12
+ (1333,463)--cycle); % 13
+
+n := 2;
+t1 := 1;
+t2 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,2)) % verticals
+ () % horizontals
+ ((274,-724){-15.01,13.74}...{-15.01,13.74}% 0
+ (218,-672){10,132}... % 1
+ (253,-38){0,1}...{4,285} % 2
+ (277,1079)-- % 3
+ (430,197){-3,-125}... % 4
+ (426,-100){0,-1}...{32,-84} % 5
+ (513,-605)--cycle); % 6
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+
+adj_fill.C(1) % fixed x points
+ (4) % fixed y points
+ () % tied points
+ ((3,5)) % verticals
+ ((2,6)) % horizontals
+ ((2057,356){-84,-102}... % 0
+ (1771,65){-133.3,-104.3}... % *1
+ (1553,-39){-1,0}... % 2
+ (1404,-4){-1,1}... % 3
+ (1302,331){0,1}... % 4
+ (1314,945){0,1}...{-5,191} % 5
+ (1301,1633)-- % 6
+ (1633,1755){10.94,-6.616}...{10.94,-6.616}% 7
+ (1674,1730){-2,-136}... % 8
+ (1662,738){0,-1}... % 9
+ (1721,344){1,-1}... % 10
+ (1791,311){1,0}...{82,64} % 11
+ (2011,422)--cycle); % 12
+
+endchar(0);
+
+"gb027"; %lower case nu
+
+charbegin( 23, 1946h#, lcbody*v#, baseline);
+
+n := 5;
+t1 := 4;
+t2 := 9;
+t3 := 10;
+t4 := 13;
+t5 := 16;
+
+adj_fill.A() % fixed x points
+ (1, 3, 5) % fixed y points
+ () % tied points
+ () % verticals
+ ((2,4)) % horizontals
+ ((1930,1639){-15,-62}... % 0
+ (1835,1379){-137.4,-306.9}... % *1
+ (1410,478){-51,-111}...{-61,-162} % 2
+ (1230,73){-65.14,-25.19}...{-65.14,-25.19}% 3
+ (984,-22){-9.415,4.58}...{-9.415,4.58} % 4
+ (948,-5){-16,84}... % 5
+ (721,930){-123.9,371.8}... % *6
+ (603,1221){-63.84,124.8}... % *7
+ (479,1402){-1,1}... % 8
+ (262,1498){-1,0}...{-67,-53} % 9
+ (-43,1363)-- % 10
+ (-107,1426){85,90}... % 11
+ (-5,1542){1,1}... % 12
+ (505,1740){1,0}... % 13
+ (827,1632){1,-1}... % 14
+ (1031,1233){104.8,-316.3}...{16,-84} % *15
+ (1224,435){63,159}... % 16
+ (1420,948){40,119}...{3,89} % 17
+ (1577,1688){22.14,14.5}...{22.14,14.5} % 18
+ (1661,1743)--cycle); % 19
+
+endchar(0);
+
+"gb030"; %lower case xi
+
+%charbegin( 24, 1776h#, ascender*v#, depthy*v#);
+charbegin( 24, 1776h#, ascender*v#, 2/3descender*v#); % DEK
+
+n := 3;
+t1 := 1;
+t2 := 4;
+t3 := 7;
+
+adj_fill.A() % fixed x points
+ (2) % fixed y points
+ () % tied points
+ () % verticals
+ ((1,3)) % horizontals
+ ((1420,2371){-117,-10}... % 0
+ (1025,2349){-1,0}... % 1
+ (709,2401){-131.6,50.64}...{-32,59} % *2
+ (528,2541){-6.87,1.781}...{-6.87,1.781}% 3
+ (502,2548)-- % 4
+ (360,2358){42,-39}... % 5
+ (581,2273){164.6,-30.28}... % *6
+ (983,2243){1,0}...{1,0} % 7
+ (1432,2266)--cycle); % 8
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 8;
+t5 := 11;
+t6 := 14;
+
+adj_fill.B(1, 4) % fixed x points
+ (4) % fixed y points
+ () % tied points
+ ((3,5)) % verticals
+ ((2,6)) % horizontals
+ ((1337,1263){-1,0}... % 0
+ (862,1241){-76,13}... % 1
+ (612,1306){-106.6,40.97}... % *2
+ (458,1396){-1,1}... % 3
+ (357,1662){0,1}... % 4
+ (514,1990){1,1}... % 5
+ (714,2130){135.6,72.26}...{116,41} % *6
+ (1027,2264)-- % 7
+ (1423,2266){-100,-15}... % 8
+ (1104,2189){-136.9,-51.15}... % *9
+ (905,2073){-1,-1}... % 10
+ (743,1769){0,-1}... % 11
+ (832,1488){1,-1}... % 12
+ (1021,1395){132.3,-34.35}...{117,-2} % *13
+ (1333,1359)--cycle); % 14
+
+n := 9;
+t1 := 1;
+t2 := 4;
+t3 := 8;
+t4 := 10;
+t5 := 11;
+t6 := 13;
+t7 := 16;
+t8 := 20;
+t9 := 22;
+
+adj_fill.C(5) % fixed x points
+ (4, 9) % fixed y points
+ () % tied points
+ ((3,6), (1,8)) % verticals
+ ((2,7)) % horizontals
+ ((1474,-408){37,60}... % 0
+ (1588,-172){0,1}... % 1
+ (1524,-40){-1,1}... % 2
+ (1344,4){-1,0}... % 3
+ (1044,-5){-79,-6}... % 4
+ (770,-27){-1,0}... % 5
+ (493,9){-122.9,36.9}... % *6
+ (305,113){-1,1}... % 7
+ (145,537){0,1}... % 8
+ (386,995){1,1}...{92,31} % 9
+ (979,1316)-- % 10
+ (1334,1260){-101,-8}... % 11
+ (732,1037){-1,-1}... % 12
+ (548,677){0,-1}... % 13
+ (634,381){1,-1}... % 14
+ (968,285){1,0}... % 15
+ (1231,304){105,11}... % 16
+ (1498,325){1,0}... % 17
+ (1677,308){75.32,-17.56}... % *18
+ (1783,259){1,-1}... % 19
+ (1837,107){0,-1}... % 20
+ (1762,-156){-76.84,-151.7}...{-58,-67} % *21
+ (1546,-467)--cycle); % 22
+
+endchar(0);
+
+"gb031"; %lower case pi
+
+charbegin( 25, 2033h#, lcbody*v#, baseline);
+
+n := 6;
+t1 := 2;
+t2 := 6;
+t3 := 9;
+t4 := 10;
+t5 := 11;
+t6 := 12;
+
+adj_fill.A() % fixed x points
+ (2) % fixed y points
+ ((3,1), (4,2), (5,3), (6,4)) % tied points
+ () % verticals
+ ((1,3)) % horizontals
+ ((2150,1936){-157,-163}... % 0
+ (1728,1796){-1,0}... % 1
+ (475,1796){-1,0}... % 2
+ (279,1779){-308,-66}... % *3
+ (167,1730){-1,-1}...{-114,-634} % 4
+ (-40,1076)-- % 5
+ (56,1033){163,530}... % 6
+ (234,1384){1,1}... % 7
+ (355,1426){437,50}... % *8
+ (671,1434){1,0}... % 9
+ (852,1434){1,0}... % 10
+ (1311,1434){1,0}... % 11
+ (1643,1434){1,0}... % 12
+ (1905,1434){1,0}... % 13
+ (1961,1452){133,115}... % 14
+ (2018,1516){133,225}...{77,175} % 15
+ (2194,1879)--cycle); % 16
+
+n := 3;
+t1 := 1;
+t2 := 4;
+t3 := 5;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((170,29){-230,135}... % 0
+ (148,53){-105,308}... % 1
+ (179,112){194,299}... % 2
+ (521,814){299,691}...{132,746} % 3
+ (671,1434)-- % 4
+ (852,1434){-121,-684}... % 5
+ (676,627){-105,-383}... % 6
+ (461,13){-137,-349}...{-286,-326} % 7
+ (441,-18)--cycle); % 8
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 10;
+
+adj_fill.C(1) % fixed x points
+ () % fixed y points
+ ((4,3), (5,4)) % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((2096,318){-180,-219}... % 0
+ (1845,86){-490,-314}... % *1
+ (1606,4){-1,0}... % 2
+ (1363,86){-1,1}... % 3
+ (1285,288){-105,591}... % *4
+ (1258,677){0,1}...{108,826} % 5
+ (1311,1434)-- % 6
+ (1643,1434){-54,-582}... % 7
+ (1611,954){0,-1}... % 8
+ (1708,369){1,-1}... % 9
+ (1857,301){1,0}...{177,190} % 10
+ (2055,419)--cycle); % 11
+
+endchar(0);
+
+"gb032"; %lower case rho
+
+%charbegin( 26, 1953h#, lcbody*v#, descender*v#);
+charbegin( 26, 1853h#, lcbody*v#, descender*v#); % DEK
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 12;
+t7 := 16;
+t8 := 19;
+t9 := 22;
+t10 := 25;
+t11 := 28;
+
+adj_fill.A(1, 11) % fixed x points
+ (6, 11) % fixed y points
+ () % tied points
+ ((5,7), (3,9)) % verticals
+ ((4,8), (2,10)) % horizontals
+ ((462,757){0,-27}... % 0
+ (609,219){64,-95}... % 1
+ (1071,8){1,0}... % 2
+ (1574,204){1,1}... % 3
+ (1745,522){61,210}... % *4
+ (1805,999){0,1}... % 5
+ (1627,1559){-1,1}... % 6
+ (1090,1752){-1,0}... % 7
+ (477,1514){-1,-1}... % 8
+ (309,1167){-60,-242}... % *9
+ (250,598){0,-1}... % 10
+ (272,-670){3,-119}...{22,-15} % 11
+ (356,-726)-- % 12
+ (700,-602){-34,163}... % 13
+ (617,231){3,56}... % 14
+ (632,443){-5,63}... % 15
+ (617,821){0,1}... % 16
+ (665,1247){49,184}... % *17
+ (802,1517){1,1}... % 18
+ (1063,1623){1,0}... % 19
+ (1241,1548){1,-1}... % 20
+ (1342,1339){36,-146}... % *21
+ (1377,995){0,-1}... % 22
+ (1341,569){-37,-176}... % *23
+ (1237,329){-1,-1}... % 24
+ (984,197){-1,0}... % 25
+ (757,284){-1,1}... % 26
+ (650,492){-38,142}...{0,1} % *27
+ (613,821)--cycle); % 28
+
+endchar(0);
+
+"gb033"; %lower case sigma
+
+charbegin( 27, 2153h#, lcbody*v#, baseline*v#);
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 7;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+t8 := 17;
+t9 := 19;
+t10 := 21;
+t11 := 22;
+
+adj_fill.A(11) % fixed x points
+ (1, 6) % fixed y points
+ ((10,1)) % tied points
+ ((3,9), (5,7)) % verticals
+ ((4,8), (2,10)) % horizontals
+ ((1241,1464){-1,1}... % 0
+ (1025,1559){-1,0}... % 1
+ (787,1479){-1,-1}... % 2
+ (658,1231){-46,-168}... % *3
+ (613,844){0,-1}... % 4
+ (653,451){41,-167}... % *5
+ (768,212){1,-1}... % 6
+ (980,117){1,0}... % 7
+ (1218,238){1,1}... % 8
+ (1339,479){43,165}... % *9
+ (1381,863){0,1}... % 10
+ (1344,1239){-38,159}...{-1,1} % *11
+ (1237,1464)-- % 12
+ (1370,1510){36,-15}... % 13
+ (1578,1370){1,-1}... % 14
+ (1741,855){0,-1}... % 15
+ (1517,197){-1,-1}... % 16
+ (972,-42){-1,0}... % 17
+ (412,140){-1,1}... % 18
+ (189,829){0,1}... % 19
+ (405,1498){1,1}... % 20
+ (1022,1718){1,0}...{11,-7} % 21
+ (1506,1597)--cycle); % 22
+
+n := 1;
+t1 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1)) % tied points
+ () % verticals
+ () % horizontals
+% ((2191,1741){-7,4}... % 0
+ ((2191,1741)-- % 0
+ (2164,1756){-3,-100}...{-1,0} % 1
+ (1022,1718)-- % 2
+ (1339,1487){37,51}... % 3
+ (1389,1544){145,-30}...{110,-18} % 4
+ (2111,1426)--cycle); % 5
+
+endchar(0);
+
+"gb034"; %lower case tau
+
+charbegin( 28, 1752h#, lcbody*v#, baseline);
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 12;
+
+adj_fill.A(1) % fixed x points
+ (4) % fixed y points
+ () % tied points
+ ((3,5)) % verticals
+ ((2,6)) % horizontals
+ ((1563,261){-94,-103}... % 0
+ (1311,49){-128,-76}... % *1
+ (1078,-26){-1,0}... % 2
+ (848,30){-1,1}... % 3
+ (752,206){-34,116}... % *4
+ (719,469){0,1}... % 5
+ (729,688){21,271}...{15,185} % *6
+ (798,1495)-- % 7
+ (1135,1468){-16,-126}... % 8
+ (1090,912){0,-1}... % 9
+ (1123,523){34,-161}... % *10
+ (1218,303){1,-1}... % 11
+ (1343,261){1,0}...{79,89} % 12
+ (1540,359)--cycle); % 13
+
+n := 3;
+t1 := 3;
+t2 := 6;
+t3 := 10;
+
+adj_fill.B() % fixed x points
+ (2) % fixed y points
+ () % tied points
+ () % verticals
+ ((1,3)) % horizontals
+ ((1854,1812){-6,-53}... % 0
+ (1642,1408){-10,-12}... % 1
+ (1578,1377){-1,0}... % 2
+ (507,1374){-1,0}... % 3
+ (344,1356){-70,-18}... % *4
+ (242,1305){-1,-1}...{-50,-160} % 5
+ (91,991)-- % 6
+ (4,1022){31,171}... % 7
+ (88,1446){42,154}... % *8
+ (163,1604){1,1}... % 9
+ (443,1703){1,0}... % 10
+ (1434,1703){1,0}...{91,80} % 11
+ (1824,1839)--cycle); % 12
+
+endchar(0);
+
+"gb035"; %lower case upsilon
+
+%charbegin( 29, 1990h#, lcbody*v#, baseline);
+charbegin( 29, 1890h#, lcbody*v#, baseline); % DEK
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 11;
+t6 := 12;
+t7 := 14;
+t8 := 17;
+t9 := 20;
+t10 := 22;
+t11 := 24;
+
+adj_fill.A(1, 6) % fixed x points
+ (11) % fixed y points
+ () % tied points
+ ((4,8), (2,10)) % verticals
+ ((5,7), (3,9)) % horizontals
+ ((1264,1521){3,-12}...{3,-12} % 0
+ (1275,1476){94,-106}... % 1
+ (1532,851){0,-1}... % 2
+ (1377,363){-1,-1}... % 3
+ (1097,242){-1,0}... % 4
+ (821,348){-1,1}... % 5
+ (703,565){-42,143}... % *6
+ (662,889){0,1}... % 7
+ (662,1374){-1,140}... % 8
+ (643,1567){-19,81}... % *9
+ (590,1680){-1,1}... % 10
+ (435,1741){-1,0}...{-152,-114} % 11
+ (-91,1442)-- % 12
+ (-38,1374){101,54}... % 13
+ (170,1449){1,0}... % 14
+ (246,1411){1,-1}... % 15
+ (295,1306){18,-75}... % *16
+ (314,1128){2,-159}... % 17
+ (322,537){8,-143}... % 18
+ (499,114){1,-1}... % 19
+ (870,-8){1,0}... % 20
+ (1453,242){1,1}... % 21
+ (1816,1090){0,1}... % 22
+ (1597,1725){-81,76}...{-77,26} % 23
+ (1544,1748)--cycle); % 24
+
+endchar(0);
+
+"gb036"; %lower case phi
+
+charbegin( 30, 2736h#, ascender*v#, descender*v#);
+n := 10;
+t1 := 0;
+t2 := 3.5;
+t3 := 6;
+t4 := 9.5;
+t5 := 12;
+t6 := 13;
+t7 := 16.5;
+t8 := 20;
+t9 := 23.5;
+t10 := 27;
+
+adj_fill.A() % fixed x points
+ (5, 10) % fixed y points
+ () % tied points
+ ((5,6), (3,8), (1,10)) % verticals
+ ((2,9), (4,7)) % horizontals
+ ((189,840){0,-1}... % 0
+ (424,174){1,-1}... % 1
+ (698,26){181,-53}... % *2
+ (1109,-26){1,0}... % 3
+ (1574,-26){1,0}... % 4
+ (2289,231){1,1}... % 5
+ (2558,957){0,1}... % 6
+ (2365,1514){-1,1}... % 7
+ (2062,1679){-199,59}... % *8
+ (1612,1737){-1,0}... % 9
+ (1063,1737){-1,0}... % 10
+ (416,1495){-1,-1}...{0,-1} % 11
+ (185,836)-- % 12
+ (613,874){0,1}... % 13
+ (653,1220){41,150}... % *14
+ (768,1442){1,1}... % 15
+ (1112,1616){1,0}... % 16
+ (1608,1616){1,0}... % 17
+ (1983,1472){1,-1}... % 18
+ (2092,1257){39,-146}... % *19
+ (2130,919){0,-1}... % 20
+ (2078,528){-53,-174}... % *21
+ (1930,261){-1,-1}... % 22
+ (1578,102){-1,0}... % 23
+ (1105,102){-1,0}... % 24
+ (806,242){-1,1}... % 25
+ (666,497){-50,167}...{0,1} % *26
+ (617,874)--cycle); % 27
+
+n := 2;
+t1 := 2;
+t2 := 6;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,2)) % verticals
+ () % horizontals
+ ((1184,-726){-12,11}...{-12,11} % 0
+ (1139,-685){4,63}... % 1
+ (1173,984){0,1}...{-4,202} % 2
+ (1143,2357)-- % 3
+ (1495,2486){7,-9}...{7,-9} % 4
+ (1521,2452){-12,-193}... % 5
+ (1510,1033){0,-1}...{1,-82} % 6
+ (1517,-590)--cycle); % 7
+
+endchar(0);
+
+"gb037"; %lower case chi
+
+charbegin( 31, 1775h#, lcbody*v#, descender*v#);
+n := 4;
+t1 := 2;
+t2 := 8;
+t3 := 13;
+t4 := 18;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((2,3), (1,4)) % horizontals
+ ((1911,-511){-68,-40}... % 0
+ (1614,-663){-131,-54}... % *1
+ (1415,-715){-1,0}... % 2
+ (1211,-632){-1,1}... % 3
+ (1028,-347){-133,268}... % *4
+ (708,382){-96,226}... % 5
+ (392,1108){-128,262}... % *6
+ (223,1374){-1,1}... % 7
+ (117,1430){-1,0}... % 8
+ (75,1419){-47,-20}...{-24,-11} % *9
+ (-61,1355)-- % 10
+ (-114,1423){113,112}... % 11
+ (151,1636){127,76}... % *12
+ (367,1710){1,0}... % 13
+ (492,1669){1,-1}... % 14
+ (647,1424){123,-257}... % *15
+ (957,696){104,-245}... % 16
+ (1502,-359){1,-1}... % 17
+ (1718,-450){1,0}...{97,18} % 18
+ (1896,-428)--cycle); % 19
+
+n := 0;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((-68,-598){44,82}... % 0
+ (666,454){80,104}... % 1
+ (919,791){46,76}...{108,132} % 2
+ (1589,1752)-- % 3
+ (1805,1604){-5,-8}... % 4
+ (1786,1574){-1.168,-1.618}... % 5
+ (984,605){-48,-62}... % 6
+ (738,272){-89,-118}...{-12,-37} % 7
+ (257,-708){-12,-6}...{-12,-6} % 8
+ (212,-730)--cycle); % 9
+
+endchar(0);
+
+"gb040"; %lower case psi
+
+charbegin( 32, 2562h#, ascender*v#, descender*v#);
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+t5 := 8;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+t9 := 18;
+t10 := 22;
+t11 := 25;
+t12 := 26;
+
+adj_fill.A(1, 2, 7) % fixed x points
+ (12) % fixed y points
+ () % tied points
+ ((5,9), (3,11)) % verticals
+ ((6,8), (4,10)) % horizontals
+ ((1839,1495){0,-14}...{0,-14} % 0
+ (1839,1442){110,-102}... % 1
+ (2077,919){0,-1}... % 2
+ (1873,325){-1,-1}... % 3
+ (1566,160){-203,-59}... % *4
+ (1105,102){-1,0}... % 5
+ (802,231){-1,1}... % 6
+ (673,477){-46,165}... % *7
+ (628,855){0,1}... % 8
+ (630,1491){-17,221}... % *9
+ (564,1691){-1,1}... % 10
+ (420,1744){-1,0}... % 11
+ (199,1666){-140,-80}...{-100,-85} % *12
+ (-110,1442)-- % 13
+ (-68,1374){32,18}... % 14
+ (117,1445){1,0}... % 15
+ (219,1408){1,-1}... % 16
+ (273,1244){13,-187}... % *17
+ (269,700){0,-1}... % 18
+ (313,373){45,-146}... % *19
+ (439,148){1,-1}... % 20
+ (689,24){173,-44}... % *21
+ (1094,-19){1,0}... % 22
+ (1670,68){263,88}... % *23
+ (2089,314){1,1}... % 24
+ (2395,1090){0,1}...{-99,90} % 25
+ (2089,1748)--cycle); % 26
+
+n := 2;
+t1 := 2;
+t2 := 6;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,2)) % verticals
+ () % horizontals
+ ((1146,-726){-12,11}...{-12,11} % 0
+ (1101,-685){4,63}... % 1
+ (1135,984){0,1}...{-4,202} % 2
+ (1105,2357)-- % 3
+ (1457,2486){7,-9}...{7,-9} % 4
+ (1483,2452){-12,-193}... % 5
+ (1472,1033){0,-1}...{1,-82} % 6
+ (1479,-590)--cycle); % 7
+
+endchar(0);
+
+"gb041"; %lower case omega
+
+charbegin( 33, 3071h#, lcbody*v#, baseline*v#);
+n := 16;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 21.5;
+t12 := 24;
+t13 := 26;
+t14 := 29;
+t15 := 31;
+t16 := 33;
+
+adj_fill.A(8, 16) % fixed x points
+ (1, 4, 7, 12) % fixed y points
+ () % tied points
+ ((6,9), (11,13), (2,15)) % verticals
+ ((5,10), (3,14)) % horizontals
+ ((2548,1844){73,-10}...{73,-10} % 0
+ (2621,1834){498,-331}... % 1
+ (2813,1575){261,-670}... % *2
+ (2882,1164){0,-1}... % 3
+ (2513,225){-1,-1}... % 4
+ (1935,-27){-1,0}... % 5
+ (1532,96){-1,1}...{-157,359} % 6
+ (1406,307){-1,-1}... % 7
+ (1073,56){-656,-339}... % *8
+ (750,-32){-1,0}... % 9
+ (383,112){-1,1}... % 10
+ (163,732){0,1}... % 11
+ (482,1638){1,1}...{537,160} % 12
+ (820,1837)-- % 13
+ (879,1763){-591,-368}... % 14
+ (716,1633){-1,-1}... % 15
+ (497,1016){0,-1}... % 16
+ (733,379){1,-1}... % 17
+ (1020,269){1,0}... % 18
+ (1261,381){1,1}... % 19
+ (1329,525){92,386}... % *20
+ (1353,767){0,1}... % 21
+ (1353,1365){0,1}...{-27,506} % 22
+ (1335,1716){362,120}...{362,120} % 23
+ (1697,1836){34,-38}...{34,-38} % 24
+ (1731,1798){-58,-726}... % 25
+ (1696,1021){0,-1}... % 26
+ (1739,608){166,-666}... % *27
+ (1862,355){1,-1}... % 28
+ (2137,259){1,0}... % 29
+ (2433,378){1,1}... % 30
+ (2595,857){0,1}...{-233,214} % 31
+ (2319,1527){-12,71}...{-12,71} % 32
+ (2307,1598)--cycle); % 33
+
+endchar(0);
+
+"gb042"; %lower case varepsilon
+
+charbegin( 34, 1588h#, lcbody*v#, baseline);
+
+n := 8;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 10;
+t7 := 12;
+t8 := 15;
+
+adj_fill.A(4, 8) % fixed x points
+ (1, 5) % fixed y points
+ () % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((1002,820){-71,14}... % 0
+ (675,877){-53,8}... % 1
+ (445,977){-1,1}... % 2
+ (332,1252){0,1}... % 3
+ (508,1580){1,1}... % 4
+ (930,1745){1,0}...{141,-144} % 5
+ (1371,1581)-- % 6
+ (1226,1303){-9.974,.5115}...{-9.974,.5115}% 7
+ (1188,1304){-75,171}... % 8
+ (1078,1497){-64,66}... % 9
+ (827,1612){-1,0}... % 10
+ (658,1547){-1,-1}... % 11
+ (586,1399){0,-1}... % 12
+ (686,1188){1,-1}... % 13
+ (857,1095){112.5,-34.02}...{97,-1} % *14
+ (1112,1060)--cycle); % 15
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 8;
+t6 := 11;
+t7 := 13;
+t8 := 14;
+
+adj_fill.B(1, 5) % fixed x points
+ (4, 5, 8) % fixed y points
+ () % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((1574,356){-116,-114}... % 0
+ (1157,49){-218.7,-109.5}... % *1
+ (747,-58){-1,0}... % 2
+ (382,87){-1,1}... % 3
+ (261,436){0,1}... % 4
+ (403,769){10,9}... % 5
+ (504,861){96,21}...{1,0} % 6
+ (757,890)-- % 7
+ (878,894){-39,-8}... % 8
+ (703,854){-52,-13}... % 9
+ (649,819){-1,-1}... % 10
+ (578,620){0,-1}... % 11
+ (705,342){1,-1}... % 12
+ (1034,232){1,0}...{99,77} % 13
+ (1521,429)--cycle); % 14
+
+endchar(0);
+
+"gb043"; %lower case var theta
+
+charbegin( 35, 1949h#, ascender*v#, baseline*v#);
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+t8 := 18;
+t9 := 19;
+t10 := 23;
+t11 := 25;
+t12 := 27;
+t13 := 29;
+t14 := 32;
+t15 := 34;
+
+adj_fill.A(1, 8, 9) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((7,10), (5,12), (3,14)) % verticals
+ ((8,9), (6,11), (4,13), (2,15)) % horizontals
+ ((-121,1071){56,42}... % 0
+ (416,1370){1,0}... % 1
+ (552,1321){1,-1}... % 2
+ (617,878){0,-1}... % 3
+ (652,551){36,-140}... % *4
+ (753,348){1,-1}... % 5
+ (999,246){1,0}... % 6
+ (1260,371){1,1}... % 7
+ (1340,504){36.46,93.2}... % *8
+ (1398,723){49,271}... % *9
+ (1445,1396){0,1}... % 10
+ (1381,1892){-66,220}... % *11
+ (1196,2229){-1,1}... % 12
+ (954,2342){-1,0}... % 13
+ (787,2274){-1,-1}... % 14
+ (730,2130){0,-1}... % 15
+ (1033,1510){1,-1}... % 16
+ (1752,1260){65,1}...{54,-2} % 17
+ (1960,1252)-- % 18
+ (1960,1162){-84,-4}... % 19
+ (1642,1139){-104,8}... % 20
+ (1068,1239){-245,76}... % *21
+ (715,1426){-1,1}... % 22
+ (488,1926){0,1}... % 23
+ (643,2346){1,1}... % 24
+ (1041,2501){1,0}... % 25
+ (1438,2342){1,-1}... % 26
+ (1744,1434){0,-1}... % 27
+ (1328,242){-1,-1}... % 28
+ (772,-30){-1,0}... % 29
+ (431,91){-1,1}... % 30
+ (305,345){-45,175}... % *31
+ (261,753){0,1}... % 32
+ (223,1014){-1,1}... % 33
+ (106,1075){-1,0}...{-56,-42} % 34
+ (-64,1003)--cycle); % 35
+
+endchar(0);
+
+"gb044"; %varpi
+
+charbegin( 36, 2936h#, theight*v#, baseline*v#);
+n := 9;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 7.799;
+t6 := 8;
+t7 := 9;
+t8 := 11;
+t9 := 13;
+
+adj_fill.A(1, 5, 7) % fixed x points
+ (3, 6, 8) % fixed y points
+ () % tied points
+ ((2,9)) % verticals
+ ((4,7)) % horizontals
+ ((844,1358){-1,-3}...{-1,-3} % 0
+ (840,1347){-65,-33}... % 1
+ (666,1218){-1,-1}... % 2
+ (507,810){0,-1}... % 3
+ (670,359){1,-1}... % 4
+ (950,242){1,0}... % 5
+ (1211,337){1,1}... % 6
+ (1285,528){25,144}...{-4,189} % *7
+ (1305,882)-- % 8
+ (1449,378){-107,-135}... % 9
+ (1109,69){-183,-111}... % *10
+ (757,-42){-1,0}... % 11
+ (356,117){-1,1}... % 12
+ (182,598){0,1}... % 13
+ (431,1188){1,1}...{55,17} % 14
+ (810,1408)--cycle); % 15
+
+n := 11;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 8;
+t5 := 11;
+t6 := 13;
+t7 := 14;
+t8 := 18;
+t9 := 20;
+t10 := 23;
+t11 := 25;
+
+adj_fill.B(1) % fixed x points
+ (6, 11) % fixed y points
+ () % tied points
+ ((5,7), (3,9)) % verticals
+ ((4,8), (2,10)) % horizontals
+ ((219,1430){37,45}... % 0
+ (378,1631){1,1}... % 1
+ (859,1911){304,100}... % *2
+ (1529,2009){1,0}... % 3
+ (2162,1931){278,-80}... % *4
+ (2581,1706){1,-1}... % 5
+ (2808,1078){0,-1}... % 6
+ (2444,201){-1,-1}... % 7
+ (1835,-42){-1,0}... % 8
+ (1476,95){-1,1}... % 9
+ (1389,216){-75,158}... % 10
+ (1317,791){-5,112}...{-10,211} % 11
+ (1302,1162)-- % 12
+ (1619,1279){13,-15}...{13,-15} % 13
+ (1669,1222){-5,-113}... % 14
+ (1654,866){3,-147}... % 15
+ (1696,541){39,-140}... % *16
+ (1801,337){1,-1}... % 17
+ (2013,223){1,0}... % 18
+ (2331,348){1,1}... % 19
+ (2520,840){0,1}... % 20
+ (2285,1472){-1,1}... % 21
+ (1897,1679){-258,74}... % *22
+ (1309,1752){-1,0}... % 23
+ (692,1657){-272,-96}...{-37,-45} % *24
+ (280,1389)--cycle); % 25
+
+endchar(0);
+
+"gb047"; %var phi
+
+charbegin( 39, 2546h#, lcbody*v#, baseline*v#);
+n := 13;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 14;
+t8 := 16;
+t9 := 19;
+t10 := 21;
+t11 := 24;
+t12 := 27;
+t13 := 29;
+
+adj_fill.A(13) % fixed x points
+ (1, 7) % fixed y points
+ () % tied points
+ ((6,8), (4,10), (2,12)) % verticals
+ ((5,9), (3,11)) % horizontals
+ ((969,1744){-86,-19}... % 0
+ (409,1442){-1,-1}... % 1
+ (185,840){0,-1}... % 2
+ (412,219){1,-1}... % 3
+ (769,37){243,-65}... % *4
+ (1332,-26){1,0}... % 5
+ (2096,280){1,1}... % 6
+ (2380,1010){0,1}... % 7
+ (2172,1593){-1,1}... % 8
+ (1782,1733){-1,0}... % 9
+ (1241,1506){-1,-1}... % 10
+ (1003,999){0,-1}... % 11
+ (1010,129){-.01832,-2}...{-6,-222} % 12
+ (988,-711){12,-4}...{12,-4} % 13
+ (1033,-726)-- % 14
+ (1347,-613){-8,195}...{-7,412} % 15
+ (1321,946){0,1}... % 16
+ (1355,1297){35,148}... % *17
+ (1453,1506){1,1}... % 18
+ (1608,1559){1,0}... % 19
+ (1794,1487){1,-1}... % 20
+ (1971,942){0,-1}... % 21
+ (1767,314){-1,-1}... % 22
+ (1561,154){-104,-57}... % *23
+ (1374,98){-1,0}... % 24
+ (1032,132){-144,34}... % *25
+ (829,227){-1,1}... % 26
+ (575,984){0,1}... % 27
+ (745,1491){1,1}...{58,18} % 28
+ (1018,1657)--cycle); % 29
+
+endchar(0);
+
+"gb100"; %medium partial sign
+
+charbegin( 64, 1962h#, capheight*v#, baseline*v#);
+n := 16;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 15;
+t10 := 18;
+t11 := 21;
+t12 := 24;
+t13 := 25;
+t14 := 26;
+t15 := 28;
+t16 := 30;
+
+adj_fill.A(1, 8) % fixed x points
+ (16) % fixed y points
+ ((7,1), (8,2), (13,2), (14,1)) % tied points
+ ((3,12), (5,10)) % verticals
+ ((2,15), (4,11), (6,9)) % horizontals
+ ((198,2000){218,607}... % 0
+ (406,2396){1,1}... % 1
+ (869,2576){1,0}... % 2
+ (1339,2339){1,-1}... % 3
+ (1664,1788){439,-1308}... % *4
+ (1778,1031){0,-1}... % 5
+ (1479,145){-1,-1}... % 6
+ (948,-66){-1,0}... % 7
+ (399,180){-1,1}... % 8
+ (247,448){-206,651}... % *9
+ (193,831){0,1}... % 10
+ (427,1509){1,1}... % 11
+ (1085,1762){1,0}...{626,-63} % 12
+ (1243,1749)-- % 13
+ (1282,1596){-575,163}... % 14
+ (1119,1625){-1,0}... % 15
+ (771,1503){-1,-1}... % 16
+ (637,1256){-181,-615}... % *17
+ (590,888){0,-1}... % 18
+ (643,460){205,-711}... % *19
+ (795,177){1,-1}... % 20
+ (1006,86){1,0}... % 21
+ (1207,166){1,1}... % 22
+ (1345,463){186,801}... % *23
+ (1393,967){0,1}...{-145,410} % 24
+ (1282,1596){-39,153}...{-39,153} % 25
+ (1243,1749){-212,581}... % 26
+ (987,2165){-1,1}... % 27
+ (668,2313){-1,0}... % 28
+ (409,2203){-1,-1}...{-260,-709} % 29
+ (282,1977)--cycle); % 30
+
+endchar(0);
+
+"gb175"; %wp
+
+charbegin( 125, 2067h#, lcbody*v#, baseline*v#);
+n := 18;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 11;
+t6 := 13;
+t7 := 15;
+t8 := 19;
+t9 := 21;
+t10 := 22;
+t11 := 24;
+t12 := 28;
+t13 := 30;
+t14 := 32;
+t15 := 37;
+t16 := 39;
+t17 := 42;
+t18 := 43;
+
+adj_fill.A(10, 18) % fixed x points
+ (1, 9) % fixed y points
+ () % tied points
+ ((8,11), (7,12), (5,14), (3,16)) % verticals
+ ((6,13), (4,15), (2,17)) % horizontals
+ ((1171,421){54,-264}... % 0
+ (1375,206){1,0}... % 1
+ (1545,276){1,1}... % 2
+ (1679,538){181,674}... % *3
+ (1726,950){0,1}... % 4
+ (1575,1420){-1,1}... % 5
+ (1350,1524){-1,0}... % 6
+ (1141,1462){-438,-239}... % *7
+ (912,1285){-1,-1}... % 8
+ (581,819){-563,-965}... % 9
+ (342,327){-320,-873}... % *10
+ (261,-54){0,-1}... % 11
+ (394,-467){1,-1}... % 12
+ (583,-561){1,0}... % 13
+ (729,-501){1,1}... % 14
+ (845,-145){0,1}... % 15
+ (763,110){-320,642}... % *16
+ (525,497){-206,294}... % 17
+ (311,854){-287,615}... % *18
+ (238,1112){0,1}... % 19
+ (345,1448){409,690}...{319,283} % *20
+ (647,1802)-- % 21
+ (711,1763){-267,-313}... % 22
+ (560,1541){-203,-415}... % *23
+ (508,1348){0,-1}... % 24
+ (566,1142){227,-526}... % *25
+ (735,822){296,-495}... % 26
+ (952,389){291,-763}... % *27
+ (1026,59){0,-1}... % 28
+ (779,-624){-1,-1}... % 29
+ (473,-748){-1,0}... % 30
+ (225,-657){-1,1}... % 31
+ (64,-283){0,1}... % 32
+ (174,260){432,1198}... % *33
+ (496,915){533,879}... % 34
+ (904,1453){1,1}... % 35
+ (1241,1709){658,346}... % *36
+ (1562,1799){1,0}... % 37
+ (1869,1681){1,-1}... % 38
+ (2028,1176){0,-1}... % 39
+ (1610,182){-1,-1}... % 40
+ (1402,22){-403,-216}... % *41
+ (1207,-34){-1,0}...{-166,198} % 42
+ (911,102)--cycle); % 43
+
+endchar(0);
+
+% PUNCTUATION
+no_stem_round;
+more_side(0);
+
+"rbperiod";
+
+%charbegin( 58, 1840h#, lcbody*v#, baseline*v#);
+charbegin( 58, (1840-812)*h#, 400*v#, baseline*v#); % DEK
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((931,163)-- % 0
+ (931,378){-1,0}... % 1
+ (729,163){0,-1}... % 2
+ (931,-55){1,0}... % 3
+ (1165,163){0,1}...{-1,0} % 4
+ (931,378)--cycle); % 5
+
+%endchar(0);
+endchar(-406h#); % DEK
+
+"rbcomma";
+
+%charbegin( 59, 1840h#, lcbody*v#, baseline*v#);
+charbegin( 59,(1840-812)*h#, 400*v#, baseline*v#); % DEK
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 11;
+
+adj_fill.A(1, 3, 5) % fixed x points
+ () % fixed y points
+ ((4,1), (5,1)) % tied points
+ ((2,6)) % verticals
+ () % horizontals
+ ((813,-642){171,229}... % 0
+ (959,-368){161,387}... % 1
+ (986,-224){0,1}... % 2
+ (938,-69){-128,177}... % 3
+ (810,108){-128,177}... % 4
+ (773,228){0,1}...{271,188} % 5
+ (838,354)-- % 6
+ (838,354){373,276}... % 7
+ (945,396){1,0}... % 8
+ (1038,323){228,-317}... % 9
+ (1167,90){103,-266}... % 10
+ (1197,-100){0,-1}... % 11
+ (1115,-357){-254,-409}...{-156,-187} % 12
+ (855,-710)--cycle); % 13
+
+%endchar(0);
+endchar(-406h#); % DEK
+
+"rblessthan";
+
+charbegin( 60, 1220h#, lcbody*v#, baseline*v#);
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((997,-38){-934,946}...{-934,946} % 0
+ (63,908){958,848}...{958,848} % 1
+ (1021,1756)-- % 2
+ (1100,1677){-786,-745}...{-786,-745} % 3
+ (314,932){825,-824}...{825,-824} % 4
+ (1139,108)--cycle); % 5
+
+endchar(0);
+
+"rbslash";
+
+%charbegin( 61, 1796h#, programem*v#, descender*v#);
+charbegin( 61, 1858h#, .75programem*v#, .25programem*v#); % DEK
+n := 0;
+
+numeric a[],b[],alpha,beta;
+pair vec;
+.5[b0,b3]=.75programem-120; b1=b2=-.25programem+250; b0-b3=33;
+.5[a0,a3]=1652; .5[a1,a2]=205;
+vec=(.5[a0-a1,a3-a2],.5[b0-b1,b3-b2]);
+(a3,b3)-(a2,b2)=alpha*vec;
+(a1,b1)=beta*vec+(a2,b2)+145*(unitvector vec rotated 90);
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1614,2740){-1519,-3012}...{-1519,-3012}% 0
+% (95,-272)-- % 1
+% (223,-284){1505,2991}...{1505,2991} % 2
+% (1728,2707)--cycle); % 3
+ ((a0,b0)-- % 0 % DEK
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)--cycle); % 3
+
+endchar(0);
+
+"rbgreaterthan";
+
+charbegin( 62, 1214h#, lcbody*v#, baseline*v#);
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((161,41){739,815}...{739,815} % 0
+ (900,856){-786,762}...{-786,762} % 1
+ (114,1618)-- % 2
+ (248,1745){858,-852}...{858,-852} % 3
+ (1106,893){-857,-920}...{-857,-920} % 4
+ (249,-27)--cycle); % 5
+
+endchar(0);
+
+%DOTLESS CHARACTERS
+set_stem_round(350,367,390,390,405,420); % DEK
+more_side(100h#);
+
+"rbmathi"; %dotless i
+
+charbegin( 123, 1034h#, lcbody*v#, baseline );
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 16;
+t9 := 19;
+
+adj_fill.A(1, 6) % fixed x points
+ (5) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((2,9), (4,7)) % horizontals
+ ((-67,1517){274,239}... % 0
+ (246,1745){554,307}... % *1
+ (487,1824){1,0}... % 2
+ (658,1738){147,-268}... % 3
+ (695,1562){30,-757}... % *4
+ (688,981){0,-1}... % 5
+ (690,518){35,-635}... % *6
+ (723,346){114,-244}... % 7
+ (833,268){1,0}... % 8
+ (936,315){232,177}...{180,223} % *9
+ (1065,445)-- % 10
+ (1145,366){-192,-273}... % 11
+ (865,62){-543,-413}... % *12
+ (602,-47){-1,0}... % 13
+ (401,55){-291,433}... % 14
+ (341,289){-64,884}... % *15
+ (337,939){0,1}... % 16
+ (337,1374){-40,578}... % *17
+ (297,1517){-176,223}... % 18
+ (221,1555){-1,0}...{-321,-302} % 19
+ (2,1437)--cycle); % 20
+
+endchar(0);
+
+"rbmathj"; %dotless j
+
+charbegin( 124, 1034h#, lcbody*v#, baseline );
+
+n := 7;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 13;
+t7 := 16;
+
+adj_fill.A(4, 7) % fixed x points
+ (1) % fixed y points
+ () % tied points
+ ((2,6)) % verticals
+ ((3,5)) % horizontals
+ ((-33,-717){206,137}... % 0
+ (588,-160){285,408}... % 1
+ (726,227){44,486}... % 2
+ (744,947){0,1}... % 3
+ (735,1556){-82,825}... % *4
+ (662,1772){-1,1}... % 5
+ (509,1819){-1,0}... % 6
+ (287,1738){-546,-314}...{-412,-342} % *7
+ (-37,1505)-- % 8
+ (37,1418){425,362}... % 9
+ (264,1548){1,0}... % 10
+ (327,1520){1,-1}... % 11
+ (386,1345){66,-666}... % *12
+ (393,854){0,-1}... % 13
+ (372,85){-112,-1099}... % *14
+ (281,-245){-7,-10}...{-234,-167} % 15
+ (-84,-625)--cycle); % 16
+
+endchar(0);
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurm10.mf b/Master/texmf-dist/fonts/source/public/ams/eurm10.mf
new file mode 100644
index 00000000000..026de420046
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurm10.mf
@@ -0,0 +1,45 @@
+%% @metafontfile{
+%% filename="eurm10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "22640 45 205 1790"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurm10, the Euler roman medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Medium 10pt (math italic)---------------------
+
+ font_identifier := "EURM V2.2";
+
+ ptsize = 10;
+
+ leftside# = rightside# = 0h#;
+
+ input eurmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurm5.mf b/Master/texmf-dist/fonts/source/public/ams/eurm5.mf
new file mode 100644
index 00000000000..f3386cba236
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurm5.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurm5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "26623 47 208 1816"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurm5, the Euler roman medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Medium 5pt (math italic)---------------------
+
+ font_identifier := "EURM V2.2";
+
+ ptsize = 5;
+
+ leftside# = rightside# = 300h#;
+
+ xscale_factor := 1.2;
+
+ input eurmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurm6.mf b/Master/texmf-dist/fonts/source/public/ams/eurm6.mf
new file mode 100644
index 00000000000..2ece0c155b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurm6.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurm6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "41838 47 208 1817"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurm6, the Euler roman medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Medium 6pt (math italic)---------------------
+
+ font_identifier := "EURM V2.2";
+
+ ptsize = 6;
+
+ leftside# = rightside# = 150h#;
+
+ xscale_factor := 1.16;
+
+ input eurmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurm7.mf b/Master/texmf-dist/fonts/source/public/ams/eurm7.mf
new file mode 100644
index 00000000000..38aa576915b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurm7.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurm7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "48195 47 208 1823"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurm7, the Euler roman medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Medium 7pt (math italic)---------------------
+
+ font_identifier := "EURM V2.2";
+
+ ptsize = 7;
+
+ leftside# = rightside# = 100h#;
+
+ xscale_factor := 1.13;
+
+ input eurmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurm8.mf b/Master/texmf-dist/fonts/source/public/ams/eurm8.mf
new file mode 100644
index 00000000000..87b2afef24f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurm8.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurm8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "12527 47 208 1815"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurm8, the Euler roman medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Medium 8pt (math italic)---------------------
+
+ font_identifier := "EURM V2.2";
+
+ ptsize = 8;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.08;
+
+ input eurmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurm9.mf b/Master/texmf-dist/fonts/source/public/ams/eurm9.mf
new file mode 100644
index 00000000000..67098273184
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurm9.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eurm9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "05714 47 208 1815"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eurm9, the Euler roman medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Roman Medium 9pt (math italic)---------------------
+
+ font_identifier := "EURM V2.2";
+
+ ptsize = 9;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.03;
+
+ input eurmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eurmch.mf b/Master/texmf-dist/fonts/source/public/ams/eurmch.mf
new file mode 100644
index 00000000000..35283145094
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eurmch.mf
@@ -0,0 +1,6739 @@
+%% @metafontfile{
+%% filename="eurmch.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "51293 6739 20439 219457"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the driver file for use with
+%% the Euler roman medium fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Roman Medium
+
+% ----- This font is set up as Math Italic, \textfont1, page 430 of TeXbook
+
+mode_setup;
+font_coding_scheme "TeX math italic subset";
+
+% EULER ROMAN MEDIUM PARAMETERS
+
+% These all in bitpad numbers (.001"):
+
+ programem = 3700;
+ baseline = 0;
+ ascender = capheight;
+ descender = 700;
+ depthy = 700; % depthy = 500;
+ capheight = 2560;
+ lcbody = 1700; %1700 for medium, 1800 for bold.
+ dotheight = 2600;
+ theight = 2330;
+ lfigheight = capheight;
+ nfigbody = lcbody;
+ nfigascender = ascender;
+ nfigdescender = descender;
+
+
+input eubase;
+
+% individual character widths for medium lower case
+
+% 20h# means 20 bitpad units.
+% original values were for text spacing; I've made changes for math -- DEK
+
+lefta# = 0h#; righta# = 0h#;
+leftb# = 0h#; rightb# = -50h#;
+leftc# = -50h#; rightc# = 0h#;
+leftd# = 0h#; rightd# = 0h#;
+lefte# = -50h#; righte# = 0h#;
+%leftf# = 0h#; rightf# = 0h#;
+leftf# = 50h#; rightf# = 100h#; % DEK
+leftg# = 0h#; rightg# = -50h#;
+lefth# = 0h#; righth# = 0h#;
+%lefti# = 0h#; righti# = 0h#;
+lefti# = 50h#; righti# = 50h#; % DEK
+leftj# = 0h#; rightj# = 0h#;
+leftk# = 0h#; rightk# = 0h#;
+%leftl# = 0h#; rightl# = 0h#;
+leftl# = 50h#; rightl# = 50h#; % DEK
+leftm# = 0h#; rightm# = 0h#;
+leftn# = -50h#; rightn# = 0h#;
+%lefto# = 0h#; righto# = -40h#;
+lefto# = -50h#; righto# = -120h#; % DEK
+leftp# = 0h#; rightp# = 0h#;
+leftq# = 0h#; rightq# = 0h#;
+%leftr# = 0h#; rightr# = 0h#;
+leftr# = 0h#; rightr# = 100h#; % DEK
+lefts# = 40h#; rights# = 0h#;
+%leftt# = 0h#; rightt# = 0h#;
+leftt# = 0h#; rightt# = 100h#; % DEK
+%leftu# = 0h#; rightu# = 0h#;
+leftu# = 50h#; rightu# = 50h#; % DEK
+leftv# = 0h#; rightv# = 0h#;
+leftw# = 0h#; rightw# = 0h#;
+%leftx# = 0h#; rightx# = 0h#;
+leftx# = 50h#; rightx# = 50h#; % DEK
+lefty# = 0h#; righty# = -50h#;
+%leftz# = 0h#; rightz# = 0h#;
+leftz# = 50h#; rightz# = 50h#; % DEK
+
+% information for positioning of math accents --- DEK (updated May 1988!)
+skewchar=oct"177"; skew#=1/36programem*h#;
+ligtable "G": "O": "S": "a": "c": "e": "g": "o": "s": "z":
+ 1: 2: 3: 5: 7: 9: 26: % Delta Theta Lambda Pi Upsilon Psi rho
+ 18: 32: 33: 39: skewchar kern skew#; % theta psi omega varphi
+ligtable "C": "X": "Z": 16: 25: 28: 125: % zeta pi tau wp
+ skewchar kern 2skew#;
+ligtable "f": skewchar kern 4skew#;
+ligtable 21: skewchar kern-2skew#; % lambda
+charcode:=skewchar; shipout nullpicture;
+
+% spacing corrections before and after punctuation --- DEK
+slashchar=oct"75"; periodchar=oct"72"; commachar=oct"73";
+ligtable "V": "W": "Y": skewchar kern 2skew#, "T": 0: "F": % Gamma
+ slashchar kern-2skew#,"P": commachar kern-3skew#, periodchar kern-3skew#;
+ligtable slashchar: "A" kern-2skew#, "a" kern -2skew#, "g" kern-2skew#,
+ 1 kern-2skew#, 3 kern-2skew#, oct"13" kern-2skew#; % Delta, Lambda, alpha
+
+% LOWER CASE
+set_stem_round(250,268,290,303,325,341); % DEK
+more_side(100h#);
+
+"rmla";
+
+charbegin( "a", 2055h# + lefta# + righta#, lcbody*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 6;
+t7 := 7;
+t8 := 9;
+t9 := 11;
+t10 := 13;
+
+adj_fill.A(7) % fixed x points
+ (1, 10) % fixed y points
+ ((1,5), (2,1), (3,2), (4,3), (5,4), (10,5))% tied points
+ ((4,9)) % verticals
+ ((6,8)) % horizontals
+ ((1700,1708){-189,-110}...{-189,-110} % 0
+ (1511,1598){-90,-382}...{-90,-382} % 1
+ (1421,1216){0,-830}...{0,-830} % 2
+ (1421,386){4,-165}...{4,-165} % 3
+ (1425,221){42,-396}... % 4
+ (1492,10){135,-154}... % 5
+ (1640,-45){1,0}...{513,317} % 6
+ (2107,172)-- % 7
+ (2081,258){-311,-107}... % 8
+ (1839,193){-1,0}... % 9
+ (1742,242){-97,156}... % 10
+ (1701,433){-19,738}...{24,409} % 11
+ (1718,1692){-18,16}...{-18,16} % 12
+ (1700,1708)--cycle); % 13
+
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 11;
+t9 := 14;
+t10 := 16;
+t11 := 18;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (5,1), (6,3), (7,2), (11,3)) % tied points
+ ((3,9)) % verticals
+ ((4,8), (2,10)) % horizontals
+ ((1425,221){-313,-207}... % 0
+ (1061,23){-654,-266}... % *1
+ (771,-45){-1,0}... % 2
+ (399,111){-200,239}... % 3
+ (224,713){1,294}... % 4
+ (515,1508){280,273}... % 5
+ (1106,1725){1,0}...{344,-245} % 6
+ (1511,1598)-- % 7
+ (1421,386){0,830}... % 8
+ (1421,1216){10,830}... % 9
+ (1365,1496){-127,135}... % 10
+ (1109,1596){-1,0}... % 11
+ (758,1440){-159,-149}... % 12
+ (614,1185){-198,-646}... % *13
+ (560,794){-2,-207}... % 14
+ (663,351){98,-152}... % 15
+ (1024,199){1,0}... % 16
+ (1201,247){397,187}...{306,235} % *17
+ (1421,386)--cycle); % 18
+endchar(lefta#);
+
+"rmlb";
+
+charbegin( "b", 2029h# + leftb# + rightb#, ascender*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 4;
+t3 := 8;
+t4 := 11;
+t5 := 13;
+t6 := 15;
+t7 := 16;
+t8 := 19;
+t9 := 22;
+t10 := 27;
+
+adj_fill.A() % fixed x points
+ (6) % fixed y points
+ () % tied points
+ ((4,8), (2,6)) % verticals
+ ((5,7), (3,9), (1,10)) % horizontals
+ ((0,2367){223,-29}... % 0
+ (223,2338){246,-31}... % 1
+ (336,2211){68,-346}... % 2
+ (353,1948){11,-511}... % 3
+ (359,1152){-3,-585}... % 4
+ (351,561){-1.529,-808.3}... % *5
+ (357,344){89,-1069}... % *6
+ (448,83){11,-10}... % 7
+ (782,-38){1,0}... % 8
+ (1592,344){339,353}... % 9
+ (1765,654){244,755}... % *10
+ (1836,1099){14,464}... % 11
+ (1675,1591){-274,261}... % 12
+ (1314,1730){-1,0}...{-476,-371} % 13
+% (632,1446)-- % 14
+ (632-47.6/3,1446-37.1/3)-- % 14 % DEK
+ (632,1264){317,279}... % 15
+ (1138,1504){333,4}... % 16
+ (1434,1354){177,-205}... % 17
+ (1508,1162){93,-515}... % *18
+ (1527,839){-13,-454}... % 19
+ (1468,488){-205,-576}... % *20
+ (1322,263){-279,-226}... % 21
+ (984,140){-1,0}... % 22
+ (703,324){-7,10}...{24,447} % 23
+ (638,1274){-14,179}...{-14,179} % 24
+ (624,1453){-22,731}...{54,533} % 25
+ (675,2533){-675,-72}...{-675,-72} % 26
+ (0,2461)--cycle); % 27
+
+
+endchar(leftb#);
+
+"rmlc";
+
+charbegin( "c", 1653h# + leftc# + rightc#, lcbody*v#, baseline );
+
+%rotation of 6 degrees, watch out for lateral drift!
+rot := identity rotated 6 shifted (0,-100v);
+
+
+
+
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+
+adj_fill.A(6, 10) % fixed x points
+ (1, 5) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1424,1155){-59,29}...{-59,29} % 0
+ (1365,1184){-67,464}... % 1
+ (1274,1501){-210,282}... % 2
+ (1077,1599){-424,2}... % 3
+ (765,1484){-185,-179}... % 4
+ (535,791){0,-1}... % 5
+ (685,310){214,-235}... % 6
+ (1045,171){267,0}...{531,382} % 7
+ (1592,380)-- % 8
+ (1638,285){-453,-364}... % 9
+ (848,-54){-556,0}... % 10
+ (409,113){-361,390}... % 11
+ (265,379){-180,640}... % *12
+ (220,753){0,1}... % 13
+ (535,1531){317,284}... % 14
+ (1172,1741){555,2}... % 15
+ (1528,1620){351,-345}...{0,-334} % 16
+ (1645,1329)--cycle); % 17
+
+endchar(leftc#);
+
+"rmld";
+
+charbegin( "d", 2036h# + leftd# + rightd#, ascender*v#, baseline );
+n := 10;
+t1 := 2;
+t2 := 5;
+t3 := 7;
+t4 := 9;
+t5 := 11;
+t6 := 12;
+t7 := 14;
+t8 := 15;
+t9 := 18;
+t10 := 19;
+
+adj_fill.A(3, 10) % fixed x points
+ () % fixed y points
+ ((5,1), (6,2), (7,3), (8,4)) % tied points
+% ((1,5)) % verticals
+ ((1,6)) % verticals % DEK
+ ((9,10), (2,4)) % horizontals
+ ((1721,2535){-9,-393}...{0,-1} % 0
+ (1710,1200){-9,-393}...{-9,-393} % 1
+ (1710,890){0,-1}... % 2
+ (1713,407){43,-662}... % *3
+ (1753,228){152,-271}... % 4
+ (1853,167){323,-4}...{339,135} % 5
+ (2080,249)-- % 6
+ (2110,163){-402,-273}... % 7
+ (1820,-11){-477,-233}... % *8
+ (1633,-70){-359,-1}... % 9
+ (1485,-5){-202,299}...{-17,213} % 10
+ (1413,198){-6,158}...{-6,158} % 11
+ (1427,375){0,1}... % 12
+ (1427,1146){0,1}...{-1,1} % 13
+ (1318,1512){109,130}...{109,130} % 14
+ (1427,1642){0,1}... % 15
+ (1402,2226){-77,307}... % 16
+ (1300,2334){-419,110}...{-535,8} % 17
+ (1065,2361){-2,91}...{-2,91} % 18
+ (1063,2452)--cycle); % 19
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 11;
+t9 := 13;
+t10 := 14;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (5,4), (6,3), (10,2)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1413,198){-343,-225}... % 0
+ (1051,1){-643,-264}... % *1
+ (770,-66){-534,2}... % 2
+ (416,70){-290,303}... % 3
+ (219,667){-1,391}... % 4
+ (499,1474){269,282}... % 5
+ (1095,1709){1,0}...{412,-157} % 6
+ (1427,1642)-- % 7
+ (1318,1512){-1,1}... % 8
+ (1081,1582){-1,0}... % 9
+ (762,1432){-276,-284}... % 10
+ (540,752){-3,-382}... % 11
+ (695,285){237,-242}... % 12
+ (978,178){393,20}...{17,20} % 13
+ (1427,375)--cycle); % 14
+endchar(leftd#);
+
+"rmle";
+
+charbegin( "e", 1700h# + lefte# + righte#, lcbody*v#, baseline );
+
+%rotation of 6 degrees, watch out for lateral drift!
+rot := identity rotated 6 shifted (30h,-70v);
+
+n := 13;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 18;
+t11 := 20;
+t12 := 22;
+t13 := 25;
+
+adj_fill.A(2, 8, 12) % fixed x points
+ (7, 13) % fixed y points
+ ((1,1), (4,1), (5,2), (13,2)) % tied points
+ ((5,10)) % verticals
+ ((6,9), (3,11)) % horizontals
+ ((560,880){817,230}... % 0
+ (1377,1110){788,229}... % 1
+ (1421,1150){.8797,1.663}... % 2
+ (1433,1235){-24,334}... % 3
+ (1316,1492){-259,267}... % 4
+ (1110,1583){-300,-2}... % 5
+ (810,1460){-205,-185}...{-30,-424} % 6
+ (560,880){0,-142}...{0,-142} % 7
+ (560,738){0,-301}... % 8
+ (708,313){230,-260}... % 9
+ (1070,171){329,2}... % 10
+ (1307,224){546,205}...{456,268} % *11
+ (1616,376)-- % 12
+ (1672,282){-420,-317}... % 13
+ (1240,24){-804,-345}... % *14
+ (868,-63){-394,5}... % 15
+ (439,92){-357,343}... % 16
+ (307,336){-179,621}... % *17
+ (260,713){0,1}... % 18
+ (520,1461){313,296}... % 19
+ (1160,1719){423,5}... % 20
+ (1606,1576){223,-225}... % 21
+ (1750,1204){0,-425}... % 22
+ (1741,1121){-.9976,-1.45}... % 23
+ (1663,1081){-1083,-338}...{-10,-4} % 24
+ (560,738)--cycle); % 25
+endchar(lefte#);
+
+"rmlf";
+
+charbegin( "f", 1205h# + leftf# + rightf#, ascender*v#, baseline );
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+%t9 := 14;
+t9 := 15; % DEK
+t10 := 16;
+t11 := 18;
+
+adj_fill.A(3, 6, 10) % fixed x points
+ (1, 7) % fixed y points
+ () % tied points
+ ((2,11), (4,9)) % verticals
+% ((5,8), (2,4)) % horizontals
+ ((5,8), (2,4), (9,11)) % horizontals % DEK
+ ((476,-38){-54,37}...{-54,37} % 0
+ (422,-1){11,405}...{0,1} % 1
+ (438,1500){-464,0}...{-464,0} % 2
+ (-26,1500){31,138}...{31,138} % 3
+ (5,1638){426,0}...{426,0} % 4
+ (431,1638){68,920}... % 5
+ (525,2096){291,781}... % *6
+ (722,2419){1,1}... % 7
+ (1126,2609){1,0}...{414,-423} % 8
+ (1347,2518)-- % 9
+ (1219,2244){-48,-4}...{-48,-4} % 10
+ (1171,2240){-179,433}... % 11
+ (1110,2338){-1,1}... % 12
+ (950,2404){-1,0}... % 13
+ (821,2345){-1,-1}...{0,-1} % 14
+ (711,1638){508,0}...{508,0} % 15
+ (1219,1638){-46,-138}...{-46,-138} % 16
+ (1173,1500){-474,0}...{-474,0} % 17
+ (699,1500){0,-1}...{27,-330} % 18
+ (734,46)--cycle); % 19
+
+endchar(leftf#);
+
+"rmlg";
+
+charbegin( "g", 1956h# + leftg# + rightg#, lcbody*v#, descender*v#);
+
+%rotation of 3 degrees, watch out for lateral drift!
+rot := identity rotated 3 shifted (0,-60v);
+
+
+
+n := 5;
+t1 := 2;
+t2 := 6;
+t3 := 12;
+t4 := 13;
+t5 := 14;
+
+adj_fill.A(2) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (5,3)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((1704,1712){45,-19}...{45,-19} % 0
+ (1749,1693){-64,-512}... % 1
+ (1712,390){0,-1}... % 2
+ (1652,-92){-232,-803}... % *3
+ (1480,-413){-366,-370}... % 4
+ (776,-732){-1,0}...{-259,392} % 5
+ (259,-512)-- % 6
+ (451,-277){45,-21}...{45,-21} % 7
+ (496,-298){155,-352}... % 8
+ (851,-575){1,0}... % 9
+ (1230,-421){330,360}... % 10
+ (1380,-167){182,643}...{0,1} % *11
+ (1440,222)-- % 12
+ (1440,376){0,1}...{117,1230} % 13
+ (1515,1606)--cycle); % 14
+
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 14;
+t9 := 17;
+t10 := 18;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (5,2), (6,1), (10,3)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1440,376){0,1}-- % 0
+ (1440,1348){-35,440}... % 1
+ (1368,1480){-215,239}... % 2
+ (1116,1599){-1,0}... % 3
+ (781,1458){-281,-267}... % 4
+ (620,1168){-226,-717}... % *5
+ (565,741){0,-1}... % 6
+ (697,314){235,-216}... % 7
+ (962,203){1,0}...{206,189} % 8
+ (1440,376)-- % 9
+ (1440,222){-226,-138}... % 10
+ (1026,23){-634,-267}... % *11
+ (768,-45){-1,0}... % 12
+ (455,84){-332,372}... % 13
+ (250,661){0,1}... % 14
+ (330,1168){260,827}... % *15
+ (520,1498){422,417}... % 16
+ (1093,1728){1,0}...{212,-136} % 17
+ (1515,1606)--cycle); % 18
+
+endchar(leftg#);
+
+"rmlh";
+
+charbegin( "h", 2102h# + lefth# + righth#, ascender*v#, baseline );
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 10;
+
+adj_fill.A(1, 2) % fixed x points
+ (4, 7) % fixed y points
+ ((4,1), (5,1), (6,2)) % tied points
+ ((3,6)) % verticals
+ ((1,2)) % horizontals
+ ((0,2458){0,-83}...{0,-83} % 0
+ (0,2375){305,-62}... % 1
+ (285,2282){282,-378}... % 2
+ (348,2058){72,-800}... % *3
+ (357,1482){-1,-431}...{-40,-684} % 4
+ (306,15){23,-34}...{23,-34} % 5
+ (329,-19)-- % 6
+ (329,-19){268,79}...{268,79} % 7
+ (597,60){-2,644}... % 8
+ (609,1472){2,565}...{19,398} % 9
+ (627,2524)--cycle); % 10
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 11;
+t6 := 12;
+t7 := 14;
+t8 := 17;
+t9 := 20;
+t10 := 23;
+
+adj_fill.B(10) % fixed x points
+ (1, 6) % fixed y points
+ ((5,2)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((2220,418){-189,-183}... % 0
+ (2038,280){-344,-188}... % *1
+ (1876,230){-79,-1}... % 2
+ (1764,292){-67,97}... % 3
+ (1716,478){-51,670}... % *4
+ (1713,962){6,704}... % 5
+ (1705,1443){-73,662}... % *6
+ (1640,1624){-65,59}... % 7
+ (1384,1730){-244,2}... % 8
+ (1058,1659){-745,-282}...{-373,-227} % *9
+ (639,1448)-- % 10
+ (609,1472)-- % 11
+ (603,1265){180,130}... % 12
+ (896,1439){526,234}... % *13
+ (1129,1499){214,0}... % 14
+ (1355,1423){144,-116}... % 15
+ (1429,1249){92,-506}... % *16
+ (1447,917){-20,-606}... % 17
+ (1441,315){53,-859}... % *18
+ (1500,58){100,-163}... % 19
+ (1668,-35){183,-7}... % 20
+ (1947,50){614,344}... % *21
+ (2282,309){189,183}...{189,183} % 22
+ (2292,329)--cycle); % 23
+
+
+endchar(lefth#);
+
+"rmli";
+
+charbegin( "i", 1033h# + lefti# + righti#, ascender*v#, baseline );
+
+%rotation of 3 degrees, watch out for lateral drift!
+rot := identity rotated -1 shifted (0,20v);
+
+%delta is the amount by which I want to make the radius of the dot larger.
+%the radius is 365
+delta := 30; %an 8 percent increase
+
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 15;
+t9 := 17;
+t10 := 18;
+
+adj_fill.A(1, 6) % fixed x points
+ (5, 10) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((-142,1457){309,254}... % 0
+ (152,1660){513,274}... % *1
+ (371,1731){1,0}... % 2
+ (562,1662){146,-170}... % 3
+ (617,1476){52,-662}... % *4
+ (614,1000){-15,-516}... % 5
+ (657,306){155,-300}... % 6
+ (787,223){1,0}... % 7
+ (929,270){325,182}...{310,275} % *8
+ (1112,405)-- % 9
+ (1180,356){-373,-545}... % 10
+ (910,66){-540,-395}... % *11
+ (640,-39){-391,0}... % 12
+ (410,70){-162,254}... % 13
+ (348,330){-62,927}... % *14
+ (348,997){8,540}... % 15
+ (310,1454){-118,212}... % 16
+ (216,1513){-1,0}...{-322,-199} % 17
+ (-83,1385)--cycle); % 18
+
+n := 5;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((3,5)) % horizontals
+ ((440,2092){-1,0}... % 0
+ (255-delta,2274+delta){0,1}... % 1
+ (465,2457+2*delta){1,0}... % 2
+ (627 + delta,2273+delta){0,-1}...{-1,0} % 3
+ (440,2092)-- % 4
+ (434,2268+delta)--cycle); % 5
+endchar(lefti#);
+
+"rmlj";
+
+charbegin( "j", 1029h# + leftj# + rightj#, ascender*v#, descender*v#);
+n := 8;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+
+adj_fill.A(4, 8) % fixed x points
+ (1, 5) % fixed y points
+ () % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((26,-706){321,177}... % 0
+ (447,-389){655,689}... % *1
+ (681,-17){146,439}... % 2
+ (722,283){40,999}... % *3
+ (721,982){-7,543}... % 4
+ (700,1485){-94,700}... % *5
+ (627,1682){-257,245}... % 6
+ (475,1732){-1,0}... % 7
+ (262,1661){-524,-277}...{-418,-319} % *8
+ (-49,1455)-- % 9
+ (1,1386){386,214}... % 10
+ (282,1509){1,0}... % 11
+ (388,1468){213,-249}... % 12
+ (458,817){-8,-467}... % 13
+ (393,-127){-148,-472}...{-501,-321} % 14
+ (-22,-634)--cycle); % 15
+
+n := 5;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((3,5)) % horizontals
+ ((521,2467+2*delta){-1,0}... % 0
+ (332-delta,2282+delta){0,-1}... % 1
+ (511,2090){1,0}... % 2
+ (707+delta,2297+delta){0,1}...{-1,0} % 3
+ (521,2467+2*delta)-- % 4
+ (530,2282+delta)--cycle); % 5
+
+endchar(leftj#);
+
+"rmlk";
+
+charbegin( "k", 1858h# + leftk# + rightk#, ascender*v#, baseline );
+
+crotchup := 10*7; %amount to raise the crotch.
+slide := 10*6;
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 10;
+
+adj_fill.A(1, 2) % fixed x points
+ (4, 6) % fixed y points
+ () % tied points
+ ((3,5)) % verticals
+ ((1,2)) % horizontals
+ ((0,2451){0,-89}...{0,-89} % 0
+ (0,2362){364,-55}... % 1
+ (207,2323){379,-137}... % 2
+ (319,2197){49,-195}... % 3
+ (345,1330){-16,-686}...{-17,-606} % 4
+ (307,1){24,-26}...{24,-26} % 5
+ (331,-25)-- % 6
+ (591,48){4,783}...{4,783} % 7
+ (600,820+crotchup){10,152}...{10,152} % 8
+ (600,820+crotchup){-1,763}...{14,387} % 9
+ (634,2543)--cycle); % 10
+
+n := 2;
+t1 := 0;
+t2 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((636,974){-36,9}...{-36,9} % 0
+ (600,983)-- % 1
+ (600,820+crotchup){36,12}...{36,12} % 2
+ (636,820+crotchup)--cycle); % 3
+
+n := 6;
+t1 := 3;
+t2 := 6;
+t3 := 7;
+t4 := 10;
+t5 := 17;
+t6 := 18;
+
+adj_fill.C() % fixed x points
+ (4, 6) % fixed y points
+ ((2,1), (3,2)) % tied points
+ () % verticals
+ ((1,5)) % horizontals
+ ((1992,341){-191,-211}... % 0
+ ((1762+(slide/2)),118){-420,-341}... % *1
+ ((1572+slide),0){-265,-101}... % 2
+ ((1460+slide),-25){-1,0}... % 3
+ ((1367+slide),3){-261,147}... % 4
+ ((1168+slide),209){-549,634}...{-532,634} % 5
+ (636,820+crotchup){0,131}...{0,131} % 6
+ (636,974){508,465}... % 7
+ (1144,1439){508,465}... % 8
+ (1441,1710){419,354}...{464,200} % *9
+ (1563,1793)-- % 10
+ (1731,1686){1,-41}...{1,-41} % 11
+ (1732,1645){-485,-283}... % 12
+ (944,1087){-207,-173}... % 13
+ (877,1014){0,-1}... % 14
+ (908,953){331,-428}... % 15
+ (1432,353){302,-312}... % 16
+ (1617,250){1,0}...{191,211} % 17
+ (1920,416)--cycle); % 18
+endchar(leftk#);
+
+"rmll";
+
+charbegin( "l", 1053h# + leftl# + rightl#, ascender*v#, baseline );
+n := 8;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 15;
+t8 := 16;
+
+adj_fill.A(4, 7, 8) % fixed x points
+ (3) % fixed y points
+ () % tied points
+ ((1,6)) % verticals
+ ((7,8), (2,5)) % horizontals
+ ((655,2542){-12,-466}... % 0
+ (604,958){4,-689}... % 1
+ (614,490){57,-651}... % *2
+ (661,307){136,-208}... % 3
+ (793,234){154,-7}... % 4
+ (932,284){328,203}...{330,318} % *5
+ (1121,437)-- % 6
+ (1181,370){-300,-505}... % 7
+ (918,72){-562,-409}... % *8
+ (619,-39){-363,-3}... % 9
+ (436,34){-234,246}... % 10
+ (342,802){8,427}... % 11
+ (341,1880){1,354}... % 12
+ (323,2248){-48,220}... % 13
+ (223,2340){-207,42}...{-445,17} % 14
+ (0,2360){0,100}...{0,100} % 15
+ (0,2460)--cycle); % 16
+
+endchar(leftl#);
+
+"rmlm";
+
+charbegin( "m", 3191h# + leftm# + rightm#, lcbody*v#, baseline );
+
+n := 8;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 10;
+t8 := 12;
+
+adj_fill.A(4) % fixed x points
+ (5, 8) % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((751,51){-21,527}...{29,693} % 0
+ (761,1303){-18,166}...{-18,166} % 1
+ (743,1469){10,444}... % 2
+ (685,1678){-181,162}... % 3
+ (516,1741){-236,-2}... % 4
+ (288,1675){-507,-253}...{-396,-326} % *5
+ (9,1488)-- % 6
+ (52,1416){356,205}... % 7
+ (320,1536){347,-3}... % 8
+ (434,1488){233,-298}... % 9
+ (477,1011){-7,-419}...{-5,-431} % 10
+ (452,-7){50,-29}...{50,-29} % 11
+ (502,-36)--cycle); % 12
+
+n := 8;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 12;
+t8 := 14;
+
+adj_fill.B() % fixed x points
+ (8) % fixed y points
+ ((1,4), (2,3), (4,1), (5,2)) % tied points
+ ((1,7)) % verticals
+ ((3,6)) % horizontals
+ ((1774,67){-25,407}...{17,695} % 0
+ (1758,1348){-1,128}...{-1,128} % 1
+ (1757,1476){-98,212}... % 2
+ (1410,1698){-357,-2}... % 3
+ (1155,1632){-649,-258}...{-467,-258} % *4
+ (761,1440){-18,29}...{-18,29} % 5
+ (743,1469)-- % 6
+ (761,1303){425,258}... % 7
+ (1010,1432){434,177}... % *8
+ (1195,1480){162,6}... % 9
+ (1395,1413){193,-194}... % 10
+ (1480,1256){103,-418}... % *11
+ (1498,995){0,-1}...{0,-1} % 12
+ (1490,-16){8,-21}...{8,-21} % 13
+ (1498,-37)--cycle); % 14
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 14;
+t9 := 17;
+t10 := 19;
+
+adj_fill.C(10) % fixed x points
+ (1) % fixed y points
+ ((5,3), (6,4)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((3274,369){-346,-257}... % 0
+ (2950,194){-253,-8}... % 1
+ (2811,243){-200,207}... % 2
+ (2761,434){0,1}... % *3
+ (2761,919){0,1}... % 4
+ (2753,1406){-74,684}... % *5
+ (2687,1603){-215,222}... % 6
+ (2393,1701){-346,-1}... % 7
+ (2117,1644){-636,-225}...{-513,-285} % *8
+ (1757,1476)-- % 9
+ (1758,1348){315,164}... % 10
+ (2170,1480){162,6}... % 11
+ (2375,1413){193,-194}... % 12
+ (2465,1256){103,-418}... % *13
+ (2486,995){0,-1}...{0,-1} % 14
+ (2486,213){76,-844}... % *15
+ (2555,-7){285,-317}... % 16
+ (2721,-65){401,5}... % 17
+ (2999,21){590,326}...{292,285} % *18
+ (3311,261)--cycle); % 19
+
+endchar(leftm#);
+
+"rmln";
+
+charbegin( "n", 2310h# + leftn# + rightn#, lcbody*v#, baseline );
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 6;
+t7 := 8;
+
+adj_fill.A(5) % fixed x points
+ (1, 4) % fixed y points
+ ((7,1)) % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((427,-4){18,407}... % 0
+ (447,950){10,616}... % 1
+ (409,1457){-162,324}... % 2
+ (308,1535){-298,-2}...{-327,-213} % 3
+ (33,1398)-- % 4
+ (-30,1479){480,352}... % 5
+ (470,1744){394,-5}... % 6
+ (658,1679){213,-209}...{22,-466} % 7
+ (734,1463){1,-183}... % 8
+ (735,1280){-25,-661}...{2,-407} % 9
+ (728,68)--cycle); % 10
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+t10 := 19;
+
+adj_fill.B(5) % fixed x points
+ (1, 6) % fixed y points
+ ((10,1)) % tied points
+ ((3,8)) % verticals
+ ((2,9), (4,7)) % horizontals
+ ((738,1292){249,199}... % 0
+ (999,1460){479,225}... % *1
+ (1217,1517){488,-5}... % 2
+ (1458,1422){283,-307}... % 3
+ (1524,1245){86,-501}... % *4
+ (1544,921){0,-1}... % 5
+ (1544,287){0,-1}... % *6
+ (1591,66){230,-361}... % 7
+ (1802,-42){357,-4}... % 8
+ (2040,45){584,341}...{485,413} % *9
+ (2386,299)-- % 10
+ (2341,397){-357,-269}... % 11
+ (2010,221){-1,0}... % 12
+ (1835,340){-1,8}...{0,1} % 13
+ (1823,949){0,1}... % 14
+ (1750,1628){-325,386}... % 15
+ (1465,1735){-376,1}... % 16
+ (1152,1666){-708,-273}...{-371,-232} % *17
+ (757,1462){-23,1}...{-23,1} % 18
+ (734,1463)--cycle); % 19
+endchar(leftn#);
+
+"rmlo";
+
+charbegin( "o", 2056h# + lefto# + righto#, lcbody*v#, baseline );
+
+%rotation of 3 degrees, watch out for lateral drift!
+rot := identity rotated 3 shifted (0,-60v);
+
+
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+t10 := 19;
+
+adj_fill.A() % fixed x points
+ (1, 6) % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((5,6), (3,8), (1,10)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((524,829){0,-1}... % 0
+ (727,225){1,-1}... % 1
+ (1007,110){1,0}... % 2
+ (1315,230){1,1}... % 3
+ (1457,499){192,682}... % *4
+ (1507,912){0,1}... % 5
+ (1325,1473){-1,1}... % 6
+ (1032,1580){-1,0}... % 7
+ (707,1450){-1,-1}... % 8
+ (572,1201){-183,-621}...{0,-1} % *9
+ (524,829)-- % 10
+ (199,777){0,1}... % 11
+ (445,1483){1,1}... % 12
+ (1057,1723){1,0}... % 13
+ (1621,1546){1,-1}... % 14
+ (1838,924){0,-1}... % 15
+ (1587,194){-1,-1}... % 16
+ (946,-39){-1,0}... % 17
+ (430,135){-1,1}...{0,1} % 18
+ (199,777)--cycle); % 19
+
+endchar(lefto#);
+
+"rmlp";
+
+charbegin( "p", 1983h# + leftp# + rightp#, lcbody*v#, descender*v#);
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 12;
+t9 := 13;
+t10 := 14;
+t11 := 15;
+
+adj_fill.A(5) % fixed x points
+ (1, 4) % fixed y points
+ ((7,1), (8,2), (10,3), (11,4)) % tied points
+ ((2,9)) % verticals
+ ((3,6)) % horizontals
+ ((335,-737){-34,41}...{-34,41} % 0
+ (301,-696){1,20}... % 1
+ (323,611){-6,554}... % 2
+ (322,1267){-42,859}... % *3
+ (281,1470){-152,303}... % 4
+ (182,1531){-1,0}...{-329,-194} % 5
+ (-92,1416)-- % 6
+ (-145,1487){341,265}... % 7
+ (141,1674){503,251}... % *8
+ (358,1738){1,0}... % 9
+ (521,1685){236,-229}...{29,-386} % 10
+ (595,1394){39,-119}...{39,-119} % 11
+ (634,1275){-1,-1}... % 12
+ (595,1158){13,-915}...{0,-404} % 13
+ (608,243){-11,-244}...{-11,-244} % 14
+ (597,-1){67,-809}...{39,-622} % 15
+ (636,-623)--cycle); % 16
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 11;
+t6 := 12;
+t7 := 13;
+t8 := 16;
+t9 := 19;
+t10 := 20;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (5,1), (6,2), (10,3)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((597,-1){469,-137}... % 0
+ (854,-41){1,0}... % 1
+ (1169,40){661,314}... % *2
+ (1515,273){411,355}... % 3
+ (1714,588){270,777}... % *4
+ (1785,1050){0,1}... % 5
+ (1615,1595){-320,329}... % 6
+ (1310,1721){-1,0}... % 7
+ (971,1635){-693,-333}... % *8
+ (617,1388){-361,-332}... % 9
+ (625,1388){.01942,.1961}...{-30,6} % 10
+ (595,1394)-- % 11
+ (634,1275){1,1}... % 12
+ (1123,1500){1,0}... % 13
+ (1396,1390){237,-266}... % 14
+ (1488,1202){124,-467}... % *15
+ (1520,923){0,-1}... % 16
+ (1463,519){-219,-680}... % *17
+ (1301,243){-327,-309}... % 18
+ (931,108){-1,0}...{-199,182} % 19
+ (608,243)--cycle); % 20
+
+endchar(leftp#);
+
+"rmlq";
+
+charbegin( "q", 2042h# + leftq# + rightq#, lcbody*v#, descender*v#);
+n := 4;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 8.487;
+
+adj_fill.A(2) % fixed x points
+ () % fixed y points
+% ((1,2), (3,1)) % tied points
+ ((1,2), (3,1), (2,3)) % tied points % DEK
+ ((3,4)) % verticals
+ () % horizontals
+ ((1681,1863){-181,-244}... % 0
+ (1500,1619){-1.324,-1.489}...{-137,-129}% 1
+ (1363,1490){1,-1}... % 2
+ (1420,1226){0,-802}...{0,-802} % 3
+ (1420,424){0,-188}...{0,-188} % 4
+ (1420,236){-2,-469}...{-21,-544} % 5
+ (1410,-680){41,-36}...{41,-36} % 6
+ (1451,-716)-- % 7
+ (1751,-636){-51,700}...{40,504} % 8
+ (1757,1851)--cycle); % 9
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 8;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+
+adj_fill.B() % fixed x points
+% (9) % fixed y points
+% ((1,2), (5,1)) % tied points
+ () % fixed y points % DEK
+ ((1,2), (5,1), (9,3)) % tied points % DEK
+ ((3,7)) % verticals
+ ((4,6), (2,8)) % horizontals
+ ((1500,1619){-339,173}... % 0
+ (1149,1732){-428,-2}... % 1
+ (580,1570){-336,-294}... % 2
+ (230,710){-7,-433}... % 3
+ (442,98){337,-321}... % 4
+ (757,-25){1,0}...{604,463} % 5
+ (1420,250)-- % 6
+ (1420,424){-300,-350}... % 7
+ (990,205){-1,0}... % 8
+ (695,325){-286,308}... % 9
+ (609,502){-125,464}... % *10
+ (570,789){-16,369}... % 11
+ (794,1470){195,173}... % 12
+ (1112,1609){1,0}...{1,-1} % 13
+ (1359,1493)--cycle); % 14
+
+endchar(leftq#);
+
+"rmlr";
+
+charbegin( "r", 1300h# + leftr# + rightr#, lcbody*v#, baseline );
+
+n := 8;
+t1 := 1;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 12;
+
+adj_fill.A(5) % fixed x points
+ (1, 4) % fixed y points
+ ((7,1), (8,2)) % tied points
+ ((2,8)) % verticals
+ ((3,6)) % horizontals
+ ((448,-9){-7,-8}... % 0
+ (441,-17){-1.464,-.1594}...{-38,28} % 1
+ (403,11){21,339}... % 2
+ (425,899){5,550}... % 3
+ (367,1478){-200,297}... % 4
+ (266,1539){-1,0}...{-335,-195} % 5
+ (-21,1408)-- % 6
+ (-68,1472){410,325}... % 7
+ (231,1678){502,277}... % *8
+ (434,1749){1,0}... % 9
+ (614,1688){164,-164}...{28,-404} % 10
+ (702,1440){-9,-217}...{-9,-217} % 11
+ (693,1223){-16,-720}...{22,-438} % 12
+ (696,65)--cycle); % 13
+
+n := 5;
+t1 := 2;
+t2 := 4;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+
+adj_fill.B() % fixed x points
+ (5) % fixed y points
+ ((2,1), (3,2)) % tied points
+ () % verticals
+ ((1,4)) % horizontals
+ ((1435,1437){-86,387}... % 0
+ (1343,1663){-272,267}... % 1
+ (1143,1728){-1,0}... % 2
+ (968,1656){-441,-288}...{-350,-323} % *3
+ (702,1440)-- % 4
+ (693,1223){126,328}... % 5
+ (997,1487){1,0}... % 6
+ (1123,1439){247,-248}...{91,-460} % 7
+ (1192,1273){44,-19}...{44,-19} % 8
+ (1236,1254)--cycle); % 9
+
+endchar(leftr#);
+
+"rmls";
+
+charbegin( "s", 1448h# + lefts# + rights#, lcbody*v#, baseline );
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 9;
+t6 := 11;
+t7 := 14;
+t8 := 15;
+t9 := 16;
+t10 := 18;
+t11 := 20;
+t12 := 24;
+t13 := 26;
+t14 := 29;
+
+adj_fill.A(2, 7, 9, 14) % fixed x points
+ (1, 7, 8, 14) % fixed y points
+ ((1,2), (7,1), (8,1), (14,2)) % tied points
+ ((5,11), (4,12)) % verticals
+ ((6,10), (3,13)) % horizontals
+ ((1046,1279){206,137}...{206,137} % 0
+ (1252,1416){-7,205}... % 1
+ (1147,1631){-241,220}... % 2
+ (833,1725){-1,0}... % 3
+ (344,1543){-272,-245}... % 4
+ (194,1194){0,-1}... % 5
+ (329,891){262,-243}... % 6
+ (656,718){389,-158}... % 7
+ (926,566){383,-384}... % 8
+ (1020,359){0,-1}... % 9
+ (939,182){-173,-176}... % 10
+ (713,92){-1,0}... % 11
+ (414,202){-174,163}...{-25,520} % 12
+ (286,503){-54,4}...{-54,4} % 13
+ (232,507)-- % 14
+ (232,507){-178,-263}...{-178,-263} % 15
+ (54,244){213,-403}... % 16
+ (199,60){273,-240}... % 17
+ (598,-64){1,0}... % 18
+ (1159,161){307,326}... % 19
+ (1292,509){0,1}... % 20
+ (1175,756){-232,219}... % 21
+ (866,919){-434,198}... % 22
+ (556,1085){-220,225}... % 23
+ (460,1296){0,1}... % 24
+ (543,1508){256,251}... % 25
+ (763,1593){1,0}... % 26
+ (956,1501){164,-272}...{24,-452} % 27
+ (1002,1305){44,-26}...{44,-26} % 28
+ (1046,1279)--cycle); % 29
+
+endchar(lefts#);
+
+"rmlt";
+
+charbegin( "t", 1243h# + leftt# + rightt#,theight*v#, baseline );
+n := 11;
+t1 := 2;
+t2 := 3;
+t3 := 5;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 16;
+t9 := 17;
+t10 := 18;
+t11 := 19;
+
+adj_fill.A(2, 6, 9) % fixed x points
+ (5) % fixed y points
+ () % tied points
+ ((3,8), (1,11)) % verticals
+ ((4,7), (1,3), (9,10)) % horizontals
+ ((721,2262){26,-20}...{26,-20} % 0
+ (747,2242){-42,-483}...{-10,-605} % 1
+ (708,1587){517,0}...{517,0} % 2
+ (1225,1587){-42,-130}...{-42,-130} % 3
+ (1183,1457){-475,0}...{-475,0} % 4
+ (708,1457){-3,-542}... % 5
+ (708,823){8,-546}... % 6
+ (736,469){97,-546}... % *7
+ (805,277){244,-289}... % 8
+ (971,203){1,0}...{487,314} % 9
+ (1334,373)-- % 10
+ (1375,293){-476,-448}... % 11
+ (1050,50){-605,-328}... % *12
+ (770,-35){-1,0}... % 13
+ (544,54){-365,351}... % 14
+ (426,737){-6,643}...{4,241} % 15
+ (419,1457){-461,0}...{-461,0} % 16
+ (-42,1457){40,130}...{40,130} % 17
+ (-2,1587){421,0}...{421,0} % 18
+ (419,1587){0,480}...{-6,60} % 19
+ (409,2153)--cycle); % 20
+
+endchar(leftt#);
+
+"rmlu";
+
+charbegin( "u", 2079h# + leftu# + rightu#, lcbody*v#, baseline );
+n := 8;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+
+adj_fill.A(4) % fixed x points
+ (5, 8) % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((1412,1609){21,-354}...{-9,-645} % 0
+ (1410,411){11,-174}...{11,-174} % 1
+ (1421,237){60,-591}... % 2
+ (1493,37){1,-1}... % 3
+ (1677,-29){1,0}... % 4
+ (1924,61){596,347}...{391,336} % *5
+ (2273,318)-- % 6
+ (2220,410){-314,-228}... % 7
+ (2020,285){-339,-168}... % *8
+ (1881,242){-1,0}... % 9
+ (1760,292){-1,1}... % 10
+ (1699,668){0,1}...{37,472} % 11
+ (1743,1698){-46,41}...{-46,41} % 12
+ (1697,1739)--cycle); % 13
+
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+
+adj_fill.B(6) % fixed x points
+ (5) % fixed y points
+ ((1,1), (10,2)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1421,237){-27,3}...{-27,3} % 0
+ (1394,240){-309,-177}... % 1
+ (968,22){-690,-290}... % *2
+ (704,-50){-1,0}... % 3
+ (424,53){-1,1}... % 4
+ (326,912){20,589}... % 5
+ (258,1478){-1,1}... % 6
+ (169,1513){-1,0}...{-385,-209} % 7
+ (-95,1392)-- % 8
+ (-154,1463){467,350}... % 9
+ (151,1665){503,270}... % *10
+ (349,1733){1,0}... % 11
+ (519,1677){1,-1}... % 12
+ (586,1477){74,-773}... % *13
+ (593,904){0,-500}... % 14
+ (693,275){1,-1}... % 15
+ (927,187){1,0}... % 16
+ (1146,245){483,224}...{229,178} % *17
+ (1410,411)--cycle); % 18
+
+endchar(leftu#);
+
+"rmlv";
+
+charbegin( "v", 1635h# + leftv# + rightv#, lcbody*v#, baseline );
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+t5 := 9;
+t6 := 11;
+t7 := 13;
+t8 := 17;
+t9 := 20;
+t10 := 22;
+
+adj_fill.A(1, 2, 6) % fixed x points
+ (10) % fixed y points
+ () % tied points
+ ((3,9)) % verticals
+ ((5,7), (4,8)) % horizontals
+ ((1228,1565){0,-41}...{0,-41} % 0
+ (1228,1524){208,-381}... % 1
+ (1366,1156){0,-1}... % 2
+ (1263,808){-398,-771}... % *3
+ (968,385){-204,-237}... % 4
+ (880,303){-1.448,.01602}... % 5
+ (803,378){-51,200}... % 6
+ (634,1018){-108,446}... % 7
+ (423,1664){-310,367}... % 8
+ (284,1736){-1,0}... % 9
+ (93,1681){-461,-215}...{-363,-251} % *10
+ (-177,1521)-- % 11
+ (-133,1444){315,183}... % 12
+ (88,1525){1,0}... % 13
+ (191,1460){318,-422}... % 14
+ (376,914){167,-646}... % 15
+ (633,13){100,-324}... % 16
+ (706,-40){1,0}... % 17
+ (832,62){385,393}... % 18
+ (1420,783){794,1276}... % *19
+ (1626,1338){0,1}...{-271,363} % 20
+ (1487,1691){-65,12}...{-65,12} % 21
+ (1422,1703)--cycle); % 22
+
+endchar(leftv#);
+
+"rmlw";
+
+charbegin( "w", 2807h# + leftw# + rightw#, lcbody*v#, baseline );
+n := 11;
+t1 := 1;
+t2 := 3;
+t3 := 6;
+t4 := 11;
+t5 := 15;
+t6 := 17;
+t7 := 18;
+t8 := 19;
+t9 := 30;
+t10 := 33;
+t11 := 34;
+
+adj_fill.A(1, 4, 6) % fixed x points
+ (7, 11) % fixed y points
+ () % tied points
+ ((2,10)) % verticals
+ ((5,8), (3,9)) % horizontals
+ ((2402,1586){-3,-48}...{-3,-48} % 0
+ (2399,1538){219,-391}... % 1
+ (2502,1319){138,-384}... % *2
+ (2537,1154){0,-1}... % 3
+ (2426,809){-432,-818}... % *4
+ (2105,336){-100,-125}... % 5
+ (2060,300){-1,0}... % 6
+ (1996,341){-155,414}...{-168,797} % 7
+ (1635,1715){-44,13}...{-44,13} % 8
+ (1591,1728){-194,-95}...{-194,-95} % 9
+ (1397,1633){-245,-497}...{-387,-702} % 10
+ (745,429){5,-14}... % 11
+ (750,415){-47,382}... % 12
+ (636,1368){-232,1250}... % *13
+ (518,1665){-286,309}... % 14
+ (349,1737){-1,0}... % 15
+ (150,1672){-497,-253}...{-477,-345} % *16
+ (-148,1484)-- % 17
+ (-113,1409){418,221}... % 18
+ (193,1525){1,0}... % 19
+ (269,1488){294,-365}... % 20
+ (403,1114){252,-1495}... % *21
+ (441,822){118.3,-1121}...{47,-451} % *22
+ (521,-7){25,-24}...{25,-24} % 23
+ (546,-31){156,51}...{156,51} % 24
+ (702,20){300,644}... % 25
+ (1365,1313){229,365}...{42,18} % 26
+ (1407,1331){33,-37}... % 27
+ (1440,1294){206,-788}... % 28
+ (1795,40){168,-404}... % 29
+ (1873,-29){1,0}... % 30
+ (2000,47){570,612}... % 31
+ (2587,799){792,1320}... % *32
+ (2792,1367){0,1}...{-407,496} % 33
+ (2643,1737)--cycle); % 34
+
+endchar(leftw#);
+
+"rmlx";
+
+charbegin( "x", 1648h# + leftx# + rightx#, lcbody*v#, baseline );
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 11;
+t7 := 13;
+t8 := 14;
+t9 := 17;
+
+adj_fill.A() % fixed x points
+ (1) % fixed y points
+ ((3,1), (4,2), (7,3), (8,4)) % tied points
+ () % verticals
+ ((5,6), (2,9)) % horizontals
+ ((1708,392){-375,-321}... % 0
+ (1545,275){-287,-158}... % *1
+ (1421,234){-1,0}... % 2
+ (1285,301){-327,286}...{-329,619} % 3
+ (889,932){-61,127}...{-61,127} % 4
+ (828,1059){-141,269}... % 5
+ (470,1661){-245,237}... % 6
+ (294,1716){-1,0}... % 7
+ (124,1657){-435,-235}...{-423,-318} % *8
+ (-141,1481)-- % 9
+ (-74,1424){334,213}... % 10
+ (146,1514){1,0}... % 11
+ (271,1456){405,-414}...{221,-444} % 12
+ (647,824){63,-114}...{63,-114} % 13
+ (710,710){326,-623}... % 14
+ (971,224){401,-678}... % *15
+ (1111,32){320,-302}... % 16
+ (1272,-46){1,0}... % 17
+ (1466,44){474,350}...{323,347} % *18
+ (1746,304)--cycle); % 19
+
+n := 2;
+t1 := 0;
+t2 := 4;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,3), (2,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((647,824){-225,-292}...{-306,-510} % 0
+ (110,60)-- % 1
+ (240,-14){56,15}...{56,15} % 2
+ (296,1){294,589}...{187,277} % 3
+ (710,710)--cycle); % 4
+
+n := 2;
+t1 := 0;
+t2 := 4;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((828,1059){163,266}...{340,360} % 0
+ (1357,1700){54,8}...{54,8} % 1
+ (1411,1708)-- % 2
+ (1546,1582){-522,-440}...{-214,-250} % 3
+ (889,932)--cycle); % 4
+
+endchar(leftx#);
+
+"rmly";
+
+charbegin( "y", 2049h# + lefty# + righty#, lcbody*v#, depthy*v#);
+n := 6;
+t1 := 1;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 12;
+t6 := 13;
+
+adj_fill.A(4) % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((2,5)) % verticals
+ ((3,6)) % horizontals
+ ((1380,1585){38,-494}...{-23,-529} % 0
+ (1401,422){-2,-152}...{-2,-152} % 1
+ (1399,270){-8,-374}... % 2
+ (1343,-126){-196,-659}... % *3
+ (1203,-389){-302,-310}... % 4
+ (845,-544){-1,0}...{-312,541} % 5
+ (472,-275){-46,1}...{-46,1} % 6
+ (426,-274)-- % 7
+ (247,-509){557,-505}... % 8
+ (741,-712){1,0}... % 9
+ (1433,-403){383,412}... % 10
+ (1629,31){262,1145}... % *11
+ (1695,742){-2,528}...{35,519} % 12
+ (1716,1709){-44,17}...{-44,17} % 13
+ (1672,1726)--cycle); % 14
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+t7 := 14;
+t8 := 17;
+t9 := 19;
+
+adj_fill.B(5) % fixed x points
+ () % fixed y points
+ ((1,2), (9,1)) % tied points
+ ((3,7)) % verticals
+ ((4,6), (2,8)) % horizontals
+ ((1401,422){-301,-231}... % 0
+ (1135,259){-496,-219}... % *1
+ (905,203){-1,0}... % 2
+ (669,297){-275,303}... % 3
+ (598,485){-98,534}... % *4
+ (571,831){-5,562}... % 5
+ (568,1474){-70,844}... % *6
+ (501,1675){-316,320}... % 7
+ (352,1733){-1,0}... % 8
+ (152,1670){-515,-249}...{-500,-333} % *9
+ (-163,1484)-- % 10
+ (-123,1412){381,198}... % 11
+ (142,1516){1,0}... % 12
+ (256,1462){226,-324}... % 13
+ (303,807){-24,-643}... % 14
+ (326,317){128,-752}... % *15
+ (431,55){334,-302}... % 16
+ (681,-33){1,0}... % 17
+ (985,44){718,303}...{531,341} % *18
+ (1399,270)--cycle); % 19
+
+endchar(lefty#);
+
+"rmlz";
+
+charbegin( "z", 1443h# + leftz# + rightz#, lcbody*v#, baseline );
+n := 2;
+t1 := 0;
+t2 := 13;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((1435,1662){-57,46}...{-57,46} % 0
+ (1378,1708){-468,-324}... % 1
+ (1090,1594){-1,0}... % 2
+ (763,1651){-541,137}... % 3
+ (443,1710){-1,0}... % 4
+ (300,1673){-180,-124}... % 5
+ (214,1557){-187,-329}...{-187,-329} % 6
+ (27,1228)-- % 7
+ (101,1179){315,430}... % 8
+ (267,1380){264,209}... % 9
+ (430,1443){1,0}... % 10
+ (632,1412){358,-78}... % 11
+ (876,1372){1,0}...{335,54} % 12
+ (1016,1383)--cycle); % 13
+
+n := 2;
+t1 := 0;
+t2 := 11;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,4), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((342,321){795,-64}... % 0
+ (1137,257){1,0}... % 1
+ (1373,355){413,399}...{279,426} % 2
+ (1540,560)-- % 3
+ (1623,514){-152,-297}... % 4
+ (1471,217){-152,-297}... % 5
+ (1317,22){-251,-154}... % 6
+ (1112,-31){-1,0}... % 7
+ (636,17){-551,61}... % 8
+ (203,61){-386,5}...{-322,-289} % 9
+ (15,-39){-76,68}...{-76,68} % 10
+ (-61,29)--cycle); % 11
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,1), (2,3), (3,4), (4,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((1016,1383){-202,-224}...{-545,-670} % 0
+ (-61,29)-- % 1
+ (342,321){549,720}...{272,341} % 2
+ (1435,1662)--cycle); % 3
+
+endchar(leftz#);
+
+% UPPER CASE
+set_stem_round(270,290,320,321,335,367); % DEK
+
+"rmua";
+
+%charbegin( "A", 2573h#, capheight*v#, baseline );
+charbegin( "A", (2573+80)*h#, capheight*v#, baseline ); % DEK
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 7;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,4), (2,1), (3,2), (4,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((1258,2169){-481,-1016}...{-481,-1016} % 0
+ (777,1153){-76,-159}...{-76,-159} % 1
+ (701,994){-442,-931}...{-442,-931} % 2
+ (259,63)-- % 3
+ (-78,-6){-10,34}...{-10,34} % 4
+ (-88,28){512,862}... % 5
+ (1166,2295){152,302}...{0,1} % 6
+% (1166,2284){152,302}...{5,54} % 6
+ (1171,2338)--cycle); % 7
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 9;
+t7 := 12;
+t8 := 16;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((2,3), (3,4), (4,5), (5,6)) % tied points
+ () % verticals
+ ((1,8), (6,7)) % horizontals
+ ((794,2415){333,-54}... % 0
+ (1127,2361){256,-73}... % 1
+% (1127,2361){256,-73}...{44,-23} % 1
+ (1171,2338){87,-169}...{87,-169} % 2
+ (1258,2169){305,-1016}...{305,-1016} % 3
+ (1563,1153){32,-159}...{32,-159} % 4
+ (1595,994){208,-713}... % 5
+ (1803,281){208,-713}... % 6
+ (1917,10){1,-1}... % 7
+ (2017,-38){1,0}... % 8
+ (2183,-13){385,110}...{385,110} % 9
+ (2568,97)-- % 10
+ (2567,193){-388,-43}... % 11
+ (2320,190){-411,85}... % 12
+ (2168,293){-296,504}... % 13
+ (1854,1173){-179,649}...{-78,412} % 14
+ (1510,2516){-716,0}...{-716,0} % 15
+ (794,2516)--cycle); % 16
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,6), (2,2), (3,1), (4,5)) % tied points
+ () % verticals
+ () % horizontals
+ ((1595,994){-894,0}...{-894,0} % 0
+ (701,994)-- % 1
+ (777,1153){786,0}...{786,0} % 2
+ (1563,1153)--cycle); % 3
+
+%endchar(0);
+endchar(80h#); % DEK
+
+"rmub";
+
+charbegin( "B", 2227h#, capheight*v#, baseline );
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,6), (2,1), (3,2), (4,3), (5,4), (6,5))% tied points
+ ((2,3)) % verticals
+ () % horizontals
+ ((393,2260){0,-1960}...{0,-1960} % 0
+ (393,300)-- % 1
+ (695,300){0,900}...{0,900} % 2
+ (695,1200){0,320}... % 3
+ (695,1520){0,2}...{0,740} % 4
+ (695,2260)--cycle); % 5
+
+n := 11;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 8;
+t5 := 11;
+t6 := 12;
+t7 := 15;
+t8 := 16;
+t9 := 19;
+t10 := 22;
+t11 := 26;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,5), (5,4), (6,3), (7,7), (8,8), (11,6))% tied points
+ ((3,9)) % verticals
+ ((2,10), (4,7)) % horizontals
+ ((695,2260){-4,69}... % 0
+ (691,2329){.6691,1.685}... % 1
+ (745,2380){676,109}... % 2
+ (966,2399){1,0}... % 3
+ (1263,2371){470,-106}... % *4
+ (1436,2293){1,-1}... % 5
+ (1560,2017){0,-1}... % 6
+ (1401,1596){-1,-1}... % 7
+ (897,1409){-1,0}... % 8
+ (723,1420){-119,47}... % 9
+ (691,1450){-.6725,1.682}...{4,70} % 10
+ (695,1520)-- % 11
+ (695,1200){0,1}... % 12
+ (697,1252){.8491,1.585}... % 13
+ (733,1278){158,32}...{1,0} % 14
+ (924,1282){383,87}...{383,87} % 15
+ (1307,1369){3,29}...{3,29} % 16
+ (1310,1398){366,158}... % 17
+ (1717,1639){1,1}... % 18
+ (1877,2046){0,1}... % 19
+ (1750,2360){-1,1}... % 20
+ (1476,2493){-722,180}... % *21
+ (1028,2540){-940,0}...{-1,0} % 22
+ (88,2540){-2,-91}...{-2,-91} % 23
+ (86,2449){284,-134}... % 24
+ (370,2315){1.29,-1.349}...{23,-55} % 25
+ (393,2260)--cycle); % 26
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 8;
+t6 := 11;
+t7 := 13;
+t8 := 18;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,2), (4,7), (5,8), (8,1)) % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((695,300){0,-1}... % 0
+ (740,170){70,-80}... % 1
+ (972,146){1,0}... % 2
+ (1524,331){1,1}... % 3
+ (1687,768){0,1}... % 4
+ (1566,1112){-1,1}... % 5
+ (1318,1238){-642,170}...{-1,0} % *6
+ (924,1282)-- % 7
+ (1307,1369){471,-57}... % 8
+ (1641,1296){544,-193}... % *9
+ (1851,1176){1,-1}... % 10
+ (2025,743){0,-1}... % 11
+ (1828,251){-1,-1}... % 12
+ (1042,-2){-733,7}...{-1,0} % 13
+ (309,5){-1,36}...{-1,36} % 14
+ (308,41){67,96}... % 15
+ (375,137){166,225}... % 16
+ (388,173){.379,1.94}...{5,127} % 17
+ (393,300)--cycle); % 18
+
+endchar(0);
+
+"rmuc";
+
+charbegin( "C", 2446h#, capheight*v#, baseline );
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+t11 := 18;
+
+adj_fill.A(5, 7, 11) % fixed x points
+ (1, 5, 6) % fixed y points
+ ((5,1), (6,1)) % tied points
+ ((3,9)) % verticals
+ ((4,8), (2,10)) % horizontals
+ ((2204,390){-362,-252}... % 0
+ (1512,139){-1,0}... % 1
+ (897,369){-1,1}... % 2
+ (552,1271){0,1}... % 3
+ (628,1813){293,922}... % *4
+ (845,2193){1,1}... % 5
+ (1462,2425){1,0}... % 6
+ (1930,2268){1,-1}...{243,-663} % 7
+ (2122,1959){54,-7}...{54,-7} % 8
+ (2176,1952)-- % 9
+ (2176,1952){212,217}...{212,217} % 10
+ (2388,2169){-364,583}... % 11
+ (2243,2355){-1,1}... % 12
+ (1586,2587){-1,0}... % 13
+ (557,2183){-1,-1}... % 14
+ (222,1205){0,-1}... % 15
+ (578,218){1,-1}... % 16
+ (1382,-54){1,0}...{393,275} % 17
+ (2267,283)--cycle); % 18
+
+endchar(0);
+
+"rmud";
+
+charbegin( "D", 2867h#, capheight*v#, baseline );
+n := 18;
+t1 := 0;
+t2 := .7706;
+t3 := 4;
+t4 := 5;
+t5 := 5.667;
+t6 := 6;
+t7 := 9;
+t8 := 13;
+t9 := 14;
+t10 := 15;
+t11 := 18;
+t12 := 19;
+t13 := 20;
+t14 := 23;
+t15 := 26;
+t16 := 29;
+t17 := 31;
+t18 := 32;
+
+adj_fill.A() % fixed x points
+ (5, 11, 13, 18) % fixed y points
+ ((1,1), (11,1), (12,2), (18,2)) % tied points
+ ((11,12), (7,15), (2,17)) % verticals
+ ((9,10), (8,14), (6,16), (3,4)) % horizontals
+ ((375,2121){9,-1855}... % 0
+ (384,266){-12,-782}... % 1
+ (378,158){-.3186,-1.963}... % 2
+ (369,125){-1,-264}...{-10,-8} % 3
+ (296,45){3,-39}...{3,-39} % 4
+ (299,6){1,0}... % 5
+ (1148,6){856,-1}... % 6
+ (1801,90){1094,325}... % *7
+ (2242,331){1,1}... % 8
+ (2632,1425){0,1}... % 9
+ (2567,1914){-250,823}... % *10
+ (2382,2248){-1,1}... % 11
+ (1954,2463){-1108,291}... % *12
+ (1274,2539){-1,0}...{-1186,-5} % 13
+ (88,2534){-1,-96}...{-1,-96} % 14
+ (87,2438){573,-183}... % 15
+ (305,2370){508,-187}... % 16
+ (366,2295){48,-498}...{9,-394} % 17
+ (375,2121)-- % 18
+ (683,2127){18,182}... % 19
+ (701,2309){.819,1.689}... % 20
+ (754,2360){200,101}... % 21
+ (860,2381){426,20}... % *22
+ (1180,2380){1,0}... % 23
+ (1703,2330){832,-193}... % *24
+ (2012,2187){1,-1}... % 25
+ (2284,1396){0,-1}... % 26
+ (1952,432){-1,-1}... % 27
+ (1579,222){-909,-284}... % *28
+ (1043,148){-1,0}... % 29
+ (752,196){-200,200}... % 30
+ (685,630){-21,779}...{0,1} % 31
+ (683,2127)--cycle); % 32
+
+endchar(0);
+
+"rmue";
+
+charbegin( "E", 2040h#, capheight*v#, baseline );
+n := 12;
+t1 := 3;
+t2 := 4;
+t3 := 7.399;
+t4 := 9;
+t5 := 11;
+t6 := 14;
+t7 := 15;
+t8 := 16;
+t9 := 20;
+t10 := 23;
+t11 := 24;
+t12 := 25;
+
+adj_fill.A(4, 7, 10, 12) % fixed x points
+ () % fixed y points
+ ((7,1)) % tied points
+ ((2,6), (1,8)) % verticals
+ ((3,5), (9,11)) % horizontals
+ ((75,2424){443,-119}... % 0
+ (294,2366){1.674,-.9631}... % 1
+ (356,2304){145,-400}... % 2
+ (389,2068){18,-614}... % 3
+ (397,247){-5,-823}... % 4
+ (416,96){.7642,-1.761}... % 5
+ (490,7){372,-190}... % 6
+ (604,4){548,12}...{783,-2} % 7
+ (1919,4)-- % 8
+ (1970,200){-21,19}...{-21,19} % 9
+ (1949,219){-388,-34}... % 10
+ (1287,171){-650,-20}... % 11
+ (840,190){-301,128}... % 12
+ (727,285){-.8921,1.635}... % 13
+ (674,700){-2,375}...{0,1} % 14
+ (672,1075){4,526}...{4,526} % 15
+ (676,1601){0,1}... % 16
+ (676,2091){8,361}... % 17
+ (709,2339){118,191}... % 18
+ (759,2371){1.842,.5455}... % 19
+ (914,2372){1,0}...{324,-16} % 20
+ (1688,2335){14,25}...{14,25} % 21
+ (1702,2360){6,187}...{6,187} % 22
+ (1708,2547){-100,7}... % 23
+ (644,2528){-1,0}...{-501,13} % 24
+ (66,2524)--cycle); % 25
+
+n := 3;
+t1 := 2;
+t2 := 4;
+t3 := 7;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((2,1)) % tied points
+ () % verticals
+ ((1,3)) % horizontals
+ ((1588,1246){-267,25}... % 0
+ (1150,1270){-1,0}... % 1
+ (732,1259){-468,-80}... % 2
+ (688,1215){-.8207,-1.701}...{0,-1} % 3
+ (672,1075)-- % 4
+ (676,1611){0,-1}... % 5
+ (697,1466){.9297,-1.607}... % 6
+ (739,1433){257,-50}...{231,16} % 7
+ (1586,1449){24,-26}...{24,-26} % 8
+ (1610,1423)--cycle); % 9
+
+endchar(0);
+
+"rmuf";
+
+charbegin( "F", 1649h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 6;
+t6 := 8;
+t7 := 9;
+t8 := 12;
+t9 := 13;
+t10 := 15;
+t11 := 16;
+t12 := 17;
+
+adj_fill.A(1, 3, 7) % fixed x points
+ (10) % fixed y points
+ () % tied points
+ ((9,11), (5,12)) % verticals
+ ((6,8), (2,4)) % horizontals
+ ((43,2547){1,0}...{622,16} % 0
+ (1628,2554){0,-198}...{0,-198} % 1
+ (1628,2356){-30,-28}...{-30,-28} % 2
+ (1598,2328){-398,28}... % 3
+ (800,2400){-471,10}... % 4
+ (670,2315){-39,-311}... % 5
+ (651,2149){-3,-337}... % 6
+ (655,1538){10,-578}... % 7
+ (771,1400){1,0}...{586,27} % 8
+ (1572,1443){-2,-183}...{-2,-183} % 9
+ (1570,1260){-18,-15}...{-18,-15} % 10
+ (1552,1245){-460,20}... % 11
+ (771,1262){-1,0}... % 12
+ (650,1171){2,-433}...{27,-768} % 13
+ (676,47)-- % 14
+ (338,-6){26,805}... % 15
+ (364,1331){0,1}... % 16
+ (372,1926){0,1}... % 17
+ (356,2260){-32,392}... % 18
+ (249,2393){-204,49}...{-204,49} % 19
+ (45,2442)--cycle); % 20
+
+endchar(0);
+
+"rmug";
+
+charbegin( "G", 2634h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 14;
+t9 := 17;
+t10 := 19;
+t11 := 22;
+t12 := 25;
+
+adj_fill.A(1, 7) % fixed x points
+ (12) % fixed y points
+ () % tied points
+ ((5,8), (3,10)) % verticals
+ ((6,7), (4,9), (2,11)) % horizontals
+ ((2401,2169){-232,341}... % 0
+ (2268,2346){-1,1}... % 1
+ (1629,2586){-1,0}... % 2
+ (573,2195){-1,-1}... % 3
+ (232,1200){0,-1}... % 4
+ (578,233){1,-1}... % 5
+ (1336,-63){1,0}...{576,146} % 6
+ (2332,121){-20,572}...{-19,1016} % 7
+ (2313,1137){-1020,-41}...{-1020,-41} % 8
+ (1293,1096)-- % 9
+ (1290,999){22,-18}...{22,-18} % 10
+ (1312,981){712,-26}... % 11
+ (1912,948){256,-27}... % 12
+ (2006,845){20,-199}... % 13
+ (2017,588){5,-334}... % 14
+ (2008,245){-28,-341}... % 15
+ (1943,166){-335,-72}... % 16
+ (1594,129){-1,0}... % 17
+ (886,370){-1,1}... % 18
+ (566,1259){0,1}... % 19
+ (644,1809){301,938}... % *20
+ (867,2197){1,1}... % 21
+ (1463,2420){1,0}... % 22
+ (1963,2225){1,-1}...{1,-2} % 23
+ (2142,1961){46,-5}...{46,-5} % 24
+ (2188,1956)--cycle); % 25
+
+endchar(0);
+
+"rmuh";
+
+charbegin( "H", 2700h#, capheight*v#, baseline );
+n := 6;
+t1 := 2;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 12;
+
+adj_fill.A(3) % fixed x points
+ (6) % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((2,5)) % verticals
+ ((3,4)) % horizontals
+ ((713,95){-44,405}... % 0
+ (695,386){-7,669}... % 1
+ (695,1131){4,759}... % 2
+ (688,1535){-7,404}... % 3
+ (710,2261){24,893}...{156,709} % 4
+ (743,2535)-- % 5
+ (89,2535){7,-98}...{7,-98} % 6
+ (96,2437){220,-68}... % 7
+ (317,2368){135,-49}... % 8
+ (366,2278){23,-365}... % 9
+ (387,1357){0,-1}...{-35,-406} % 10
+ (351,11){21,-20}...{21,-20} % 11
+ (372,-9)--cycle); % 12
+
+n := 4;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 7;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,3), (2,2), (3,1), (4,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((2056,1154){5,409}... % 0
+ (1944,1255){-390,6}... % 1
+ (787,1250){-393,-22}...{7,-398} % 2
+ (695,1131)-- % 3
+ (688,1535){2,-380}... % 4
+ (767,1433){435,-25}... % 5
+ (1983,1426){345,3}...{3,395} % 6
+ (2056,1535)--cycle); % 7
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 6.493;
+t5 := 8;
+t6 := 10;
+
+adj_fill.B(6) % fixed x points
+ () % fixed y points
+ ((2,3), (3,4)) % tied points
+ ((2,4)) % verticals
+ ((1,5)) % horizontals
+ ((2079,0)-- % 0
+ (2038,78){6,340}...{37,1077} % 1
+ (2056,1154)-- % 2
+ (2056,1535){3,365}...{-4,817} % 3
+ (2046,2490)-- % 4
+ (2393,2555){-61,-636}... % 5
+ (2359,2091){-11,-416}... % 6
+ (2363,292){17,-446}... % 7
+ (2470,165){180,-45}... % 8
+ (2650,120){1,-90}...{1,-90} % 9
+ (2651,30)--cycle); % 10
+
+endchar(0);
+
+"rmui";
+
+charbegin( "I", 1260h#, capheight*v#, baseline );
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 14;
+t8 := 18;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((5,6), (3,7), (2,8)) % verticals
+ ((4,5), (1,2)) % horizontals
+ ((200,-2){0,95}...{0,95} % 0
+ (200,93){447,91}... % 1
+ (424,146){513,163}... % 2
+ (520,260){39,349}... % 3
+ (528,496){.03537,1.999}... % 4
+ (530,1840){0,1}... % 5
+ (518,2265){-31,404}... % 6
+ (437,2370){-251,54}...{-250,54} % 7
+ (187,2424){0,102}...{0,102} % 8
+ (187,2526)-- % 9
+ (1162,2526){-2,-99}...{-2,-99} % 10
+ (1160,2427){-259,-58}... % 11
+ (901,2369){-425,-84}... % 12
+ (821,2276){-52,-652}... % 13
+ (820,2002){-3,-1300}... % 14
+ (827,626){16,-647}... % 15
+ (842,259){27,-416}... % 16
+ (947,149){240,-63}...{393,-103} % 17
+ (1187,86){-5,-88}...{-5,-88} % 18
+ (1182,-2)--cycle); % 19
+
+endchar(0);
+
+"rmuj";
+
+%charbegin( "J", 1039h#, capheight*v#, descender*v#);
+charbegin( "J", (1039+250)*h#, capheight*v#, 2/3descender*v#); % DEK
+n := 7;
+t1 := 0;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 11;
+t7 := 15;
+
+adj_fill.A(1) % fixed x points
+ (7) % fixed y points
+ () % tied points
+ ((4,5), (2,6)) % verticals
+ ((3,4)) % horizontals
+ ((-34,-550){163,143}... % 0
+ (122,-406){191,198}... % 1
+ (300,-109){158,345}... % 2
+ (349,548){0,1}... % 3
+ (349,2294){0,1}... % 4
+ (290,2387){-230,63}...{-267,68} % 5
+ (22,2453){0,99}...{0,99} % 6
+ (22,2552)-- % 7
+ (999,2552){-6,-110}...{-6,-110} % 8
+ (993,2442){-251,-52}... % 9
+ (740,2389){-315,-69}... % 10
+ (662,2294){0,-1}... % 11
+ (662,528){0,-1}... % 12
+ (614,78){-120,-403}... % 13
+ (350,-369){-197,-188}...{-174,-119} % 14
+ (32,-619)--cycle); % 15
+
+%endchar(0);
+endchar(200h#); % DEK
+
+"rmuk";
+
+charbegin( "K", 2276h#, capheight*v#, baseline );
+n := 5;
+t1 := 2;
+t2 := 6;
+t3 := 7;
+t4 := 10;
+t5 := 13;
+
+adj_fill.A(3) % fixed x points
+ (5) % fixed y points
+ ((1,1)) % tied points
+ ((1,4)) % verticals
+ ((2,3)) % horizontals
+ ((705,91){-23,432}...{0,1} % 0
+ (685,1176){-12,149}...{-12,149} % 1
+ (673,1325){0,1}... % 2
+ (678,2087){41,1076}... % *3
+ (714,2401){81,306}...{32,127} % 4
+ (746,2528)-- % 5
+ (92,2528){-12,-89}...{-12,-89} % 6
+ (80,2439){228,-62}... % 7
+ (308,2371){228,-68}... % 8
+ (358,2315){70,-170}... % *9
+ (378,2201){2,-822}... % 10
+ (385,549){-13,-2196}...{-49,-547} % *11
+ (365,5){41,-21}...{41,-21} % 12
+ (406,-16)--cycle); % 13
+
+n := 1;
+t1 := 1;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((716,1325){-43,0}...{-43,0} % 0
+ (673,1325)-- % 1
+ (673,1176){43,0}...{43,0} % 2
+ (716,1176)--cycle); % 3
+
+n := 4;
+t1 := 2;
+t2 := 4;
+t3 := 7;
+t4 := 9;
+
+adj_fill.C(2, 4) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,3)) % verticals
+ () % horizontals
+ ((1921,-25){-271,289}...{-1202,1206} % 0
+ (716,1180){-14,142}...{-14,142} % 1
+ (702,1322){1064,1206}...{10,14} % 2
+ (1766,2528)-- % 3
+ (2097,2528){-4,-34}...{-4,-34} % 4
+ (2093,2494){-1083,-1077}... % 5
+ (1010,1417){-263,-255}... % 6
+ (981,1378){-.1261,-1.685}... % 7
+ (1005,1333){566,-563}...{188,-164} % 8
+ (2267,101)--cycle); % 9
+
+endchar(0);
+
+"rmul";
+
+charbegin( "L", 1870h#, capheight*v#, baseline );
+n := 8;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 8;
+t5 := 9;
+t6 := 12.41;
+t7 := 14;
+t8 := 16;
+
+adj_fill.A(8) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((4,5), (2,6)) % verticals
+ ((3,4), (1,7)) % horizontals
+ ((1825,-18){-295,28}... % 0
+ (296,8){-1,0}...{-7,45} % 1
+ (289,53){254,367}... % 2
+ (363,163){127,294}... % 3
+ (379,319){4,558}... % 4
+ (376,2297){-3,1977}... % 5
+ (298,2420){-213,44}...{-522,106} % 6
+ (85,2464){2,90}...{2,90} % 7
+ (87,2554)-- % 8
+ (1014,2554){-1,-101}...{-1,-101} % 9
+ (1013,2453){-242,-50}... % 10
+ (772,2403){-241,-50}... % 11
+ (705,2307){-48,-748}... % 12
+ (708,273){18,-499}... % 13
+ (874,160){1,0}...{365,25} % 14
+ (1841,209){33,-30}...{33,-30} % 15
+ (1874,179)--cycle); % 16
+
+endchar(0);
+
+"rmum";
+
+charbegin( "M", 3666h#, capheight*v#, baseline );
+n := 2;
+t1 := 0;
+t2 := 8;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((540,2320){248,-342}... % 0
+ (562,2185){-300,-2184}...{-152,-780} % 1
+ (192,1){27,-13}...{27,-13} % 2
+ (219,-12)-- % 3
+ (495,86){69,864}... % 4
+ (697,1984){49,355}... % 5
+ (700,2050){.7859,.3269}... % 6
+ (729,2038){65,-59}...{100,-175} % *7
+ (765,1991)--cycle); % 8
+
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+t10 := 15;
+t11 := 17;
+t12 := 19;
+%t13 := 22;
+t13 := 23; % DEK
+t14 := 25;
+t15 := 26;
+
+adj_fill.B(1, 15) % fixed x points
+ () % fixed y points
+ ((6,1), (7,2)) % tied points
+ ((9,10), (3,13)) % verticals
+ ((8,9), (5,11), (4,12), (2,14)) % horizontals
+ ((3638,104){-310,-111}... % 0
+ (3132,-23){-1,0}...{-234,64} % 1
+ (2983,0){-62,82}...{-62,82} % 2
+ (2921,82){-17,593}... % 3
+ (2863,1975){-17,452}... % 4
+ (2845,2052){-53,105}... % *5
+ (2810,2080){-.5378,-.1035}... % 6
+ (2803,2000){-215,-381}...{-335,-699} % 7
+ (1757,3){-133,1}...{-133,1} % 8
+ (1624,4){-196,474}...{-355,721} % 9
+ (765,1991){-225,329}...{-225,329} % 10
+ (540,2320){-228,341}... % 11
+ (464,2374){-252,70}...{-252,70} % 12
+ (212,2444){5,110}...{5,110} % 13
+ (217,2554)-- % 14
+ (894,2554){271,-785}... % 15
+ (1755,562){176,-375}... % 16
+ (1786,530){1.413,-.02145}... % 17
+ (1821,564){306,546}...{236,461} % 18
+ (2859,2554){381,0}...{381,0} % 19
+ (3240,2554){-166,-242}... % 20
+ (3172,2480){-158,-354}... % 21
+ (3148,2196){2,-707}... % 22
+ (3216,379){59,-611}... % 23
+ (3304,212){432,-337}... % 24
+ (3430,171){1,0}...{327,47} % 25
+ (3638,194)--cycle); % 26
+
+endchar(0);
+
+"rmun";
+
+charbegin( "N", 2872h#, capheight*v#, baseline );
+n := 5;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+
+adj_fill.A(3) % fixed x points
+ () % fixed y points
+ ((1,2), (5,1)) % tied points
+ ((2,4)) % verticals
+ () % horizontals
+ ((390,2330){199,-222}... % 0
+ (410,2250){44,-2234}...{-28,-579} % 1
+ (366,16){33,-35}...{33,-35} % 2
+ (399,-19)-- % 3
+ (657,91){-45,762}... % 4
+ (571,2024){0,344}... % 5
+ (593,2085){1.171,.386}...{298,-341} % 6
+ (638,2055)--cycle); % 7
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 10;
+t8 := 11;
+t9 := 12;
+t10 := 13;
+t11 := 15;
+
+adj_fill.B(5) % fixed x points
+ (6) % fixed y points
+ ((9,1), (10,2)) % tied points
+ ((4,7), (1,2)) % verticals
+ ((1,11), (3,8)) % horizontals
+ ((78,2554){632,0}...{632,0} % 0
+ (710,2554){200,-265}... % 1
+ (2235,640){218,-235}... % 2
+ (2285,614){.993,.533}... % 3
+ (2293,630){10,94}... % *4
+ (2295,708){.1555,1.993}... % 5
+ (2305,909){-18,567}...{-52,700} % 6
+ (2208,2510)-- % 7
+ (2503,2566){25,-27}...{25,-27} % 8
+ (2528,2539){-47,-788}...{0,-1} % 9
+ (2471,13){-140,0}...{-140,0} % 10
+ (2331,13){-493,605}...{-223,249} % 11
+ (638,2055){-248,275}...{-248,275} % 12
+ (390,2330){-190,212}... % 13
+ (333,2373){-243,54}...{-238,54} % 14
+ (95,2427)--cycle); % 15
+
+endchar(0);
+
+"rmuo";
+
+%charbegin( "O", 2874h#, capheight*v#, baseline );
+charbegin( "O", (2874-100)*h#, capheight*v#, baseline ); % DEK
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 13;
+t8 := 15;
+t9 := 18;
+t10 := 20;
+
+adj_fill.A(1, 10) % fixed x points
+ (5, 10) % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((5,6), (3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((215,1176){0,-1}... % 0
+ (582,175){1,-1}... % 1
+ (1249,-67){1,0}... % 2
+ (2259,298){1,1}... % 3
+ (2631,1351){0,1}... % 4
+ (2551,1913){-306,958}... % *5
+ (2325,2309){-1,1}... % 6
+ (1554,2591){-1,0}... % 7
+ (618,2251){-1,-1}...{0,-1} % 8
+ (215,1176)-- % 9
+ (540,1289){0,1}... % 10
+ (615,1831){289,920}... % *11
+ (829,2209){1,1}... % 12
+ (1406,2417){1,0}... % 13
+ (1953,2224){1,-1}... % 14
+ (2290,1246){0,-1}... % 15
+ (2209,704){-310,-934}... % *16
+ (1980,312){-1,-1}... % 17
+ (1351,110){-1,0}... % 18
+ (866,331){-1,1}...{0,1} % 19
+ (540,1289)--cycle); % 20
+
+%endchar(0);
+endchar(-50h#); % DEK
+
+"rmup";
+
+charbegin( "P", 2033h#, capheight*v#, baseline );
+
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+t10 := 18;
+t11 := 20;
+t12 := 24;
+t13 := 27;
+t14 := 28;
+
+adj_fill.A(1, 14) % fixed x points
+ (1, 8, 14) % fixed y points
+ ((1,1), (9,1), (10,2), (14,2)) % tied points
+ ((7,10), (3,12)) % verticals
+ ((5,6), (2,13), (4,11)) % horizontals
+ ((678,961){0,1}... % 0
+ (742,1062){279,18}... % 1
+ (1025,1084){282,20}... % 2
+ (1425,1162){675,241}... % *3
+ (1700,1325){1,1}... % 4
+ (1936,1902){0,1}... % 5
+ (1731,2371){-245,200}... % 6
+ (1480,2475){-650,140}... % *7
+ (1081,2511){-976,0}...{-978,0} % 8
+ (103,2511){0,-90}...{0,-90} % 9
+ (103,2421){435,-66}... % 10
+ (279,2379){333,-122}... % 11
+ (379,2221){20,-362}... % 12
+ (397,1564){0,-1}...{-10,-750} % 13
+ (370,2){27,-23}...{27,-23} % 14
+ (397,-21)-- % 15
+ (703,82){-12,825}...{-11,285} % 16
+ (678,961){0,337}...{0,337} % 17
+ (678,1298){0,1}... % 18
+ (695,2271){28,973}... % 19
+ (800,2369){1,0}... % 20
+ (940,2369){1,0}... % 21
+ (1245,2334){500,-135}... % *22
+ (1440,2234){1,-1}... % 23
+ (1578,1872){0,-1}... % 24
+ (1385,1418){-1,-1}... % 25
+ (1122,1271){-645,-199}... % *26
+ (740,1219){-1,0}...{0,1} % 27
+ (678,1298)--cycle); % 28
+mathcorr(100h#); % DEK
+endchar(0);
+
+"rmuq";
+
+charbegin( "Q", 2869h#, capheight*v#, descender*v#);
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 11;
+t8 := 13;
+t9 := 16;
+t10 := 19;
+t11 := 21;
+
+adj_fill.A(1, 7) % fixed x points
+ (1, 11) % fixed y points
+ ((1,2), (2,1), (6,2), (7,3), (11,3)) % tied points
+ ((5,8), (3,10)) % verticals
+ ((6,7), (4,9)) % horizontals
+ ((1260,-59){364,52}...{364,52} % 0
+ (1624,-7){523,110}... % 1
+ (2282,312){1,1}... % 2
+ (2543,762){353,1078}... % *3
+ (2635,1390){0,1}... % 4
+ (2322,2300){-1,1}... % 5
+ (1545,2583){-1,0}... % 6
+ (595,2222){-1,-1}... % 7
+ (213,1130){0,-1}... % 8
+ (552,196){1,-1}...{525,43} % 9
+ (1260,-59)-- % 10
+ (1385,103){-1,0}... % 11
+ (871,344){-1,1}... % 12
+ (541,1236){0,1}... % 13
+ (619,1808){302,969}... % *14
+ (843,2205){1,1}... % 15
+ (1421,2415){1,0}... % 16
+ (1966,2208){1,-1}... % 17
+ (2211,1793){331,-985}... % *18
+ (2297,1223){0,-1}... % 19
+ (1984,317){-1,-1}...{-1,0} % 20
+ (1385,103)--cycle); % 21
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 7;
+t6 := 8;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((3,2), (4,1)) % tied points
+ () % verticals
+ ((2,5), (1,6)) % horizontals
+ ((2623,-613){-358,-117}... % 0
+ (2093,-731){-1,0}... % 1
+ (1633,-506){-1,1}...{-373,497} % 2
+ (1260,-59)-- % 3
+ (1624,-7){347,-472}... % 4
+ (1856,-329){298,-401}... % *5
+ (1922,-408){1,-1}... % 6
+ (2320,-574){1,0}...{326,65} % 7
+ (2618,-520)--cycle); % 8
+
+endchar(0);
+
+"rmur";
+
+charbegin( "R", 2055h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 7;
+t5 := 12;
+t6 := 14;
+t7 := 16;
+t8 := 17;
+t9 := 21;
+t10 := 24;
+t11 := 27;
+t12 := 28;
+
+adj_fill.A(12) % fixed x points
+ (6) % fixed y points
+ ((1,2), (2,1), (7,2), (8,3), (12,3)) % tied points
+ ((5,8), (3,10)) % verticals
+ ((4,9), (1,11)) % horizontals
+ ((692,1154){388,41}...{388,41} % 0
+ (1080,1195){7,29}...{7,29} % 1
+ (1087,1224){280,30}... % 2
+ (1652,1449){1,1}... % 3
+ (1885,1994){0,1}... % 4
+ (1740,2343){-1,1}... % 5
+ (1502,2467){-607,168}... % *6
+ (1133,2511){-1028,0}...{-1,0} % 7
+ (105,2511){-5,-85}...{-5,-85} % 8
+ (100,2426){490,-117}... % 9
+ (298,2372){198,-54}... % 10
+ (384,2261){7,-370}... % 11
+ (395,1626){0,-1}...{-39,-692} % 12
+ (361,11){42,-33}...{42,-33} % 13
+ (403,-22)-- % 14
+ (711,85){-31,626}...{0,1} % 15
+ (692,1154){-3,214}...{-3,214} % 16
+ (689,1368){0,1}... % 17
+ (697,2150){8,782}... % 18
+ (717,2309){81,453}... % 19
+ (795,2371){297,12}... % 20
+ (902,2367){1,0}... % 21
+ (1205,2333){495,-131}... % *22
+ (1397,2236){1,-1}... % 23
+ (1519,1934){0,-1}... % 24
+ (1332,1497){-1,-1}... % 25
+ (863,1319){-759,-65}... % 26
+ (722,1317){-401,-18}...{0,1} % 27
+ (689,1368)--cycle); % 28
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((1725,-24){-411,502}... % 0
+ (748,1131){-607,661}...{-426,44} % 1
+ (692,1154)-- % 2
+ (1080,1195){552,-619}...{247,-269} % 3
+ (2052,99){0,-31}...{0,-31} % 4
+ (2052,68)--cycle); % 5
+
+endchar(0);
+
+"rmus";
+
+charbegin( "S", 1863h#, capheight*v#, baseline );
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 9;
+t6 := 11;
+t7 := 14;
+t8 := 15;
+t9 := 16;
+t10 := 18;
+t11 := 20;
+t12 := 24;
+t13 := 26;
+t14 := 29;
+
+adj_fill.A(2, 7, 9, 14) % fixed x points
+ (1, 7, 8, 14) % fixed y points
+ ((1,2), (7,1), (8,1), (14,2)) % tied points
+ ((4,12), (5,11)) % verticals
+ ((3,13), (6,10)) % horizontals
+ ((1442,2035){233,208}...{233,208} % 0
+ (1675,2243){-164,333}... % 1
+ (1542,2435){-1,1}... % 2
+ (1022,2596){-1,0}... % 3
+ (411,2367){-1,-1}... % 4
+ (237,1894){0,-1}... % 5
+ (426,1437){1,-1}... % 6
+ (912,1162){465,-213}... % 7
+ (1231,967){1,-1}... % 8
+ (1363,657){0,-1}... % 9
+ (1212,293){-1,-1}... % 10
+ (833,138){-1,0}... % 11
+ (497,255){-1,1}...{-158,566} % 12
+ (342,562){-65,5}...{-65,5} % 13
+ (277,567)-- % 14
+ (277,567){-209,-245}...{-209,-245} % 15
+ (68,322){161,-435}... % 16
+ (202,113){1,-1}... % 17
+ (676,-56){1,0}... % 18
+ (1462,268){1,1}... % 19
+ (1687,773){0,1}... % 20
+ (1514,1181){-1,1}... % 21
+ (1099,1425){-399,202}... % 22
+ (695,1679){-1,1}... % 23
+ (534,2025){0,1}... % 24
+ (644,2325){1,1}... % 25
+ (942,2448){1,0}... % 26
+ (1257,2338){1,-1}...{111,-441} % 27
+ (1395,2045){47,-10}...{47,-10} % 28
+ (1442,2035)--cycle); % 29
+
+endchar(0);
+
+"rmut";
+
+charbegin( "T", 2036h#, capheight*v#, baseline );
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,3), (3,1), (4,1), (6,2)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((819,2356){1,-1}... % 0
+ (850,2317){59,-600}... % 1
+ (860,1406){0,-1}...{-52,-828} % 2
+ (812,-5){33,-32}...{33,-32} % 3
+ (845,-37)-- % 4
+ (845,-37){370,99}...{370,99} % 5
+ (1215,62){-48,781}... % 6
+ (1177,1410){0,1}... % 7
+ (1180,2293){24,411}...{1,1} % 8
+ (1198,2362)--cycle); % 9
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 5;
+t7 := 7;
+
+%adj_fill.B() % fixed x points
+adj_fill.B(0,6) % fixed x points % DEK
+ (2) % fixed y points
+ ((3,3), (4,2)) % tied points
+ () % verticals
+ ((2,7), (5,7)) % horizontals
+ ((-5,2350){774,26}... % 0
+ (769,2376){1,0}...{1,-1} % 1
+ (819,2356){379,6}...{379,6} % 2
+ (1198,2362){1,1}... % 3
+ (1239,2383){1,0}...{781,-37} % 4
+ (2020,2346)-- % 5
+ (2027,2576){-808,-42}... % 6
+ (1027,2539){-1,0}...{-295,12} % 7
+ (-5,2580)--cycle); % 8
+
+mathcorr(4skew#); % DEK
+endchar(0);
+
+"rmuu";
+
+charbegin( "U", 2667h#, capheight*v#, baseline );
+n := 7;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 9;
+t7 := 11;
+
+adj_fill.A(4) % fixed x points
+ (3, 7) % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((2,6)) % verticals
+ ((4,5)) % horizontals
+ ((1969,2440){-18,-1064}...{0,-1} % 0
+ (1952,412){-5,-142}...{-5,-142} % 1
+ (1947,270){39,-284}... % 2
+ (1962,61){23,-202}... % 3
+ (2081,-17){1,0}...{564,170} % 4
+ (2669,125)-- % 5
+ (2648,208){-412,-54}... % 6
+ (2435,179){-1,0}... % 7
+ (2317,219){-1,1}... % 8
+ (2251,746){0,1}...{52,474} % 9
+ (2317,2541){-26,25}...{-26,25} % 10
+ (2291,2566)--cycle); % 11
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 15;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((5,1), (6,2)) % tied points
+ ((3,8)) % verticals
+ ((5,6), (4,7), (1,2)) % horizontals
+ ((26,2517){10,-100}...{10,-100} % 0
+ (36,2417){206,-54}... % 1
+ (242,2365){206,-52}... % 2
+ (364,2223){5,-361}... % 3
+ (355,1138){0,-1}... % 4
+ (402,471){185,-1018}... % *5
+ (461,253){137.6,-351}... % *6
+ (540,120){1,-1}... % 7
+ (750,6){522,-154}... % *8
+ (1062,-34){1,0}...{636,398} % 9
+ (1947,270)-- % 10
+ (1952,412){-436,-258}... % 11
+ (1298,191){-1,0}... % 12
+ (842,348){-1,1}... % 13
+ (700,609){-192,649}... % *14
+ (650,997){0,1}... % 15
+ (687,2314){0,1}...{124,352} % 16
+ (715,2517)--cycle); % 17
+
+endchar(0);
+
+"rmuv";
+
+charbegin( "V", 2501h#, capheight*v#, baseline );
+n := 8;
+t1 := 0;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 14;
+t7 := 18;
+t8 := 19;
+
+adj_fill.A(1, 7) % fixed x points
+ (1, 8) % fixed y points
+ ((1,1), (8,1)) % tied points
+ ((3,4)) % verticals
+ ((4,5), (2,6)) % horizontals
+ ((2575,2578){-317,-61}...{-317,-61} % 0
+ (2258,2517){-211,-357}... % 1
+ (1861,1738){-939,-2017}... % *2
+ (1319,500){-319,-762}...{-31,-7} % 3
+ (1288,493){-19,18}... % 4
+ (1269,511){-266,658}...{-158,766} % 5
+ (657,2583){-671,-37}...{-671,-37} % 6
+ (-14,2546)-- % 7
+ (-12,2425){558,-88}... % 8
+ (223,2377){149,-59}... % 9
+ (288,2335){1,-1}... % 10
+ (339,2254){248,-570}... % 11
+ (518,1750){709,-2289}...{130,-430} % *12
+ (1048,-35){36,-23}...{36,-23} % 13
+ (1084,-58){252,95}...{252,95} % 14
+ (1336,37){426,1228}... % 15
+ (1907,1372){321,596}... % 16
+ (2291,2049){691,1137}...{325,426} % *17
+ (2598,2509){-23,69}...{-23,69} % 18
+ (2575,2578)--cycle); % 19
+
+mathcorr(3skew#); % DEK
+endchar(0);
+
+"rmuw";
+
+charbegin( "W", 3658h#, capheight*v#, baseline );
+
+n := 13;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 18;
+t10 := 21;
+t11 := 24;
+t12 := 26;
+t13 := 27;
+
+adj_fill.A(3, 12) % fixed x points
+ (1, 13) % fixed y points
+ ((1,1), (13,1)) % tied points
+ ((6,7)) % verticals
+ ((7,8), (5,9), (4,10), (2,11)) % horizontals
+ ((3822,2548){-298,-50}...{-298,-50} % 0
+ (3524,2498){-247,-428}... % 1
+ (2574,539){-269,-585}...{-30,-28} % 2
+ (2544,511){-41,49}... % 3
+ (2503,560){-110,499}...{-117,780} % 4
+ (2144,2529){-26,24}...{-26,24} % 5
+ (2118,2553){-283,-108}...{-283,-108} % 6
+ (1835,2445){-185,-535}... % 7
+ (1025,597){-144,-306}...{-30,-15} % 8
+ (995,582){-23,22}... % 9
+ (972,604){-52,237}...{-146,781} % 10
+ (555,2549){-606,-11}...{-606,-11} % 11
+ (-51,2538)-- % 12
+ (-44,2423){414,-111}... % 13
+ (122,2375){264,-74}... % 14
+ (222,2273){125,-318}... % 15
+ (480,1389){548,-2296}...{76,-418} % *16
+ (770,-23){39,-17}...{39,-17} % 17
+ (809,-40){237,106}...{237,106} % 18
+ (1046,66){247,751}... % 19
+ (1825,1985){159,324}... % 20
+ (1859,2029)... % 21
+ (1884,1984){121,-550}...{79,-458} % 22
+ (2285,-12){46,-27}...{46,-27} % 23
+ (2331,-39){223,98}...{223,98} % 24
+ (2554,59){277,679}...{322,523} % 25
+ (3822,2471){0,77}...{0,77} % 26
+ (3822,2548)--cycle); % 27
+mathcorr(2skew#); % DEK
+endchar(0);
+
+"rmux";
+
+charbegin( "X", 2266h#, capheight*v#, baseline );
+
+n := 9;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 10;
+t7 := 11;
+t8 := 14;
+t9 := 15;
+
+adj_fill.A(1, 9) % fixed x points
+ (8) % fixed y points
+ ((2,4), (3,1), (6,2), (7,3)) % tied points
+% ((4,5)) % verticals
+ () % verticals % DEK
+ ((4,5)) % horizontals
+ ((2253,120){-189,150}... % 0
+ (1876,483){-322,389}...{-211,366} % 1
+ (1361,1277){-64,131}... % 2
+ (1297,1408){-228,386}...{-110,153} % 3
+ (1187,1561){-542,985}...{-542,985} % 4
+ (645,2546){-197,-11}...{-1,0} % 5
+ (77,2517)-- % 6
+ (77,2401){607,-175}... % 7
+ (298,2338){232,-85}... % 8
+ (461,2182){538,-908}...{140,-220} % 9
+ (999,1274){114,-173}...{114,-173} % 10
+ (1113,1101){326,-551}... % 11
+ (1626,210){683,-1121}...{300,-300} % *12
+ (1796,-20){50,-19}...{50,-19} % 13
+ (1846,-39){407,100}...{407,100} % 14
+ (2253,61)--cycle); % 15
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,3), (4,2)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1113,1101){-42,0}...{-42,0} % 0
+ (1071,1101){-722,-1061}...{-722,-1061} % 1
+ (349,40){-349,-40}...{-349,-40} % 2
+ (0,0)-- % 3
+ (0,59){999,1215}...{999,1215} % 4
+ (999,1274)--cycle); % 5
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,1), (4,4)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1187,1561){33,0}...{33,0} % 0
+ (1220,1561){668,931}...{668,931} % 1
+ (1888,2492){352,51}...{352,51} % 2
+ (2240,2543)-- % 3
+ (2240,2485){-943,-1077}...{-943,-1077} % 4
+ (1297,1408)--cycle); % 5
+
+endchar(0);
+
+"rmuy";
+
+charbegin( "Y", 2061h#, capheight*v#, baseline );
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 11;
+t8 := 13;
+
+adj_fill.A() % fixed x points
+ (1, 8) % fixed y points
+ ((1,3), (2,1), (3,2), (8,3)) % tied points
+ ((4,5), (2,7)) % verticals
+ ((5,6)) % horizontals
+ ((884,-41){334,108}...{334,108} % 0
+ (1218,67){-19,478}...{8,465} % 1
+ (1205,1135){-93,165}...{-93,165} % 2
+ (1112,1300){-42,35}... % 3
+ (1070,1335){-161,373}...{-526,1210} % 4
+ (544,2545){-299,-6}...{-1,0} % 5
+ (-14,2533)-- % 6
+ (-14,2409){399,-67}... % 7
+ (133,2380){318,-70}... % 8
+ (220,2323){171,-183}... % *9
+ (304,2197){550,-1090}...{550,-1090} % 10
+ (854,1107){0,-1}...{-14,-520} % 11
+ (843,-7){41,-34}...{41,-34} % 12
+ (884,-41)--cycle); % 13
+
+n := 4;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 5;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,4), (3,4), (4,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((1112,1300){734,1200}...{30,55} % 0
+ (1846,2500){313,64}...{313,64} % 1
+ (2159,2564)-- % 2
+ (2159,2564){18,-66}...{18,-66} % 3
+ (2177,2498){-455,-581}...{-151,-246} % 4
+ (1205,1135)--cycle); % 5
+
+mathcorr(2skew#); % DEK
+endchar(0);
+
+"rmuz";
+
+charbegin( "Z", 2268h#, capheight*v#, baseline );
+
+n := 8;
+t1 := 2;
+t2 := 5;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 14;
+
+adj_fill.A() % fixed x points
+ (3, 6) % fixed y points
+ () % tied points
+ () % verticals
+ ((4,5), (2,7), (1,8)) % horizontals
+ ((2269,219){-33,32}...{-33,32} % 0
+ (2236,251){-1651,-54}...{-1651,-54} % 1
+ (585,197){-25,47}...{-25,47} % 2
+ (560,244){1540,2213}...{1540,2213} % 3
+ (2100,2457){0,69}...{0,69} % 4
+ (2100,2526){-1,0}...{-531,32} % 5
+ (454,2571){-31,-30}...{-31,-30} % 6
+ (423,2541)-- % 7
+ (423,2341){29,-21}...{29,-21} % 8
+ (452,2320){533,45}...{1,0} % 9
+ (1671,2361){10,-60}...{10,-60} % 10
+ (1681,2301){-1611,-2223}...{-1611,-2223}% 11
+ (70,78){3,-77}...{3,-77} % 12
+ (73,1){1,0}...{310,-30} % 13
+ (2201,-45)--cycle); % 14
+
+endchar(0);
+
+% SCRIPT LOWER CASE
+no_stem_round;
+
+"smll";
+
+charbegin( 96, 1238h#, ascender*v#, baseline );
+
+n := 18;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+t10 := 15;
+t11 := 17;
+t12 := 19;
+t13 := 22;
+t14 := 23;
+t15 := 24;
+t16 := 25;
+t17 := 28;
+t18 := 30;
+
+adj_fill.A(9, 14, 18) % fixed x points
+ (1, 15) % fixed y points
+ ((3,1), (4,2), (5,1), (6,2), (9,2), (10,1))% tied points
+ ((8,11), (5,13)) % verticals
+ ((9,10), (7,12), (13,16), (2,17)) % horizontals
+ ((1143,443){-112,-135}... % 0
+ (1031,308){-1,-1}... % 1
+ (918,214){-201,-127}... % *2
+ (830,181){-1,0}... % 3
+ (650,257){-1,1}...{-46,488} % 4
+ (491,903){-6,160}... % 5
+ (485,1063){-1,0}...{6,-160} % 6
+ (491,903){-6,160}... % 7
+ (485,1063){.1352,1.984}... % 8
+ (575,2052){240,1369}... % *9
+ (725,2432){1,1}... % 10
+ (828,2486){1,0}... % 11
+ (916,2447){1,-1}... % 12
+ (971,2241){0,-1}...{-687,-820} % 13
+ (485,1063)-- % 14
+ (491,903){698,885}... % 15
+ (980,1651){658,1332}... % *16
+ (1149,2235){0,1}... % 17
+ (1046,2551){-1,1}... % 18
+ (888,2603){-1,0}... % 19
+ (612,2497){-1,-1}... % 20
+ (330,1873){-342,-1652}...{21,-429} % *21
+ (270,845){-258,-277}...{-258,-277} % 22
+ (12,568){53,-66}...{53,-66} % 23
+ (65,502){216,189}...{216,189} % 24
+ (281,691){64,-802}... % 25
+ (342,279){159,-632}... % *26
+ (440,59){1,-1}... % 27
+ (692,-35){1,0}... % 28
+ (1024,131){1,1}...{191,273} % 29
+ (1215,404)--cycle); % 30
+
+endchar(0);
+
+% LINING FIGURES
+more_side(0);
+
+"fml0";
+
+charbegin( "0", 1850h#, lfigheight*v#, baseline );
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 14;
+t8 := 17;
+t9 := 20;
+
+adj_fill.A(1, 6) % fixed x points
+ (1) % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((4,7), (2,9)) % verticals
+ ((5,6), (3,8)) % horizontals
+ ((1045,2590){-375,-151}... % 0
+ (606,2327){-1,-1}... % 1
+ (135,1141){0,-1}... % 2
+ (213,503){301,-1058}... % *3
+ (436,83){1,-1}... % 4
+ (767,-52){1,0}... % 5
+ (1309,172){1,1}... % 6
+ (1595,655){387,1144}... % *7
+ (1696,1316){0,1}... % 8
+ (1498,2152){-440,755}...{-392,186} % 9
+ (1045,2590)-- % 10
+ (885,2365){384,-207}... % 11
+ (1042,2230){315,-366}... % *12
+ (1200,1999){369,-656}... % 13
+ (1471,1056){0,-1}... % 14
+ (1410,617){-234,-745}... % *15
+ (1237,311){-1,-1}... % 16
+ (934,185){-1,0}... % 17
+ (681,311){-1,1}... % 18
+ (453,735){-308,1061}... % *19
+ (373,1372){0,1}... % 20
+ (670,2200){100,120}...{372,190} % 21
+ (896,2365)--cycle); % 22
+
+endchar(0);
+
+"fml1";
+
+charbegin( "1", 1850h#, lfigheight*v#, baseline );
+n := 6;
+t1 := 2;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 8;
+t6 := 9;
+
+adj_fill.A(3, 4) % fixed x points
+ (2, 6) % fixed y points
+ () % tied points
+ ((1,5)) % verticals
+ ((3,4)) % horizontals
+ ((1148,83){-20,428}... % 0
+ (1135,1599){0,1}...{40,850} % 1
+ (1160,2590){-22,44}...{-22,44} % 2
+ (1138,2634){-799,-270}...{-799,-270} % 3
+ (339,2364)-- % 4
+ (339,2265){1,0}... % 5
+ (646,2265){1,0}... % 6
+ (817,2094){12,-371}... % 7
+ (820,1549){0,-1}...{-19,-494} % 8
+ (790,0){46,-17}...{46,-17} % 9
+ (836,-17)--cycle); % 10
+
+endchar(0);
+
+"fml2";
+
+charbegin( "2", 1850h#, lfigheight*v#, baseline );
+n := 10;
+t1 := .5;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 14;
+t9 := 17.73;
+t10 := 19;
+
+adj_fill.A(2, 6, 9) % fixed x points
+ (5) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((4,7), (1,10)) % horizontals
+ ((1660,8){-1614,0}...{-1614,0} % 0
+ (46,8){-2,57}...{-2,57} % 1
+ (44,65){325,332}... % 2
+ (658,728){979,1143}... % *3
+ (1023,1208){410,663}... % 4
+ (1237,1881){0,1}... % 5
+ (1106,2276){-1,1}... % 6
+ (816,2396){-1,0}... % 7
+ (589,2326){-517,-271}...{-424,-356} % *8
+ (299,2125)-- % 9
+ (236,2202){427,471}... % 10
+ (621,2512){781,419}... % *11
+ (1017,2621){1,0}... % 12
+ (1422,2457){1,-1}... % 13
+ (1577,2045){0,-1}... % 14
+ (1399,1498){-518,-928}... % 15
+ (1074,1017){-854,-1130}... % *16
+ (545,368){-302,-350}... % 17
+ (539,345){.6718,-1.349}... % 18
+ (585,326){1,0}...{1168,0} % 19
+ (1753,326)--cycle); % 20
+
+endchar(0);
+
+"fml3";
+
+charbegin( "3", 1850h#, lfigheight*v#, baseline );
+n := 15;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+t7 := 14;
+t8 := 15;
+t9 := 17;
+t10 := 19;
+t11 := 22;
+t12 := 23;
+t13 := 26;
+t14 := 28;
+t15 := 30;
+
+adj_fill.A(1, 4, 7, 12) % fixed x points
+ (8, 15) % fixed y points
+ () % tied points
+ ((5,10), (3,13)) % verticals
+ ((6,9), (11,12), (2,14)) % horizontals
+ ((66,183){25,-43}...{25,-43} % 0
+ (91,140){285,-220}... % 1
+ (671,-62){1,0}... % 2
+ (1395,219){1,1}... % 3
+ (1652,796){0,1}... % 4
+ (1501,1178){-1,1}... % 5
+ (1260,1315){-609,206}...{-512,39} % *6
+ (892,1384){-2,31}...{-2,31} % 7
+ (890,1415){244,69}... % 8
+ (1301,1652){1,1}... % 9
+ (1476,2100){0,1}... % 10
+ (1336,2462){-1,1}... % 11
+ (937,2597){-1,0}... % 12
+ (641,2507){-671,-349}...{-461,-386} % *13
+ (266,2248)-- % 14
+ (320,2169){559,364}... % 15
+ (582,2315){451,196}... % *16
+ (771,2365){1,0}... % 17
+ (1067,2261){1,-1}... % 18
+ (1172,1999){0,-1}... % 19
+ (1015,1618){-1,-1}... % 20
+ (796,1477){-550,-245}...{-420,-91} % *21
+ (465,1373){-2,-97}...{-2,-97} % 22
+ (463,1276){609,6}... % 23
+ (870,1235){657,-166}... % *24
+ (1120,1110){297,-309}... % 25
+ (1304,689){0,-1}... % 26
+ (1131,239){-1,-1}... % 27
+ (763,96){-1,0}... % 28
+ (410,250){-1,1}...{-251,429} % 29
+ (240,480)--cycle); % 30
+
+endchar(0);
+
+"fml4";
+
+charbegin( "4", 1850h#, lfigheight*v#, baseline );
+
+hshift := 20;
+vshift := 10;
+
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+t9 := 15;
+t10 := 16;
+t11 := 17;
+t12 := 18;
+
+adj_fill.A(1, 4, 7) % fixed x points
+ (3, 8) % fixed y points
+ ((5,1), (6,2), (10,2), (11,1), (12,3)) % tied points
+ ((2,9)) % verticals
+ ((5,6)) % horizontals
+ ((1760,871){-14,0}...{-14,0} % 0
+ (1746,871){-1,0}...{-388,0} % 1
+ (1358,871){0,1}...{17,851} % 2
+ (1360,2581){-24,23}...{-24,23} % 3
+ (1336,2604){-283,-129}...{-283,-129} % 4
+ (1053,2475){-1056,-1605}...{-1056,-1605}% 5
+ (-3,870){0,-163}...{0,-163} % 6
+ (-3,707){1056,0}...{1056,0} % 7
+% (1053,707)-- % 8
+ (1053+hshift,707)-- % 8 % DEK
+ (1053+hshift,871){-807,0}...{-1,0} % 9
+ (246,871){-22,0}... % 10
+ (224,871){401,769}... % 11
+ (692,1707){812,1315}... % *12
+ (1036,2186){17,18}... % 13
+ (1048+hshift,2176+vshift){1.011,-1.61}...{5,-20} % 14
+ (1053+hshift,2156+vshift){-4,-787}... % 15
+ (1053+hshift,871){0,-1}...{0,-1} % 16
+ (1053+hshift,707){1,0}... % 17
+ (1358,707){2,0}...{1,0} % 18
+ (1690,707)--cycle); % 19
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((1053+hshift,-20){-20,22}...{-20,22} % 0
+ (1033+hshift,2){42,280}...{0,1} % 1
+ (1053+hshift,707)-- % 2
+ (1358,707){0,-1}...{59,-427} % 3
+ (1370,103)--cycle); % 4
+
+endchar(0);
+
+"fml5";
+
+charbegin( "5", 1850h#, lfigheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 13;
+t9 := 16;
+t10 := 18;
+t11 := 20;
+t12 := 22;
+
+adj_fill.A(1, 7) % fixed x points
+ (12) % fixed y points
+ () % tied points
+ ((5,8), (3,10)) % verticals
+ ((6,8), (4,9), (2,11)) % horizontals
+ ((45,283){4,-45}...{4,-45} % 0
+ (49,238){375,-458}... % 1
+ (659,-39){1,0}... % 2
+ (1397,262){1,1}... % 3
+ (1658,927){0,1}... % 4
+ (1463,1455){-1,1}... % 5
+ (952,1638){-1,0}...{-449,-215} % 6
+ (461,1503){0,24}...{0,24} % 7
+ (461,1527){0,1}... % 8
+ (461,2196){0,1}... % 9
+ (507,2235){326,3}...{965,20} % 10
+ (1474,2253)-- % 11
+ (1573,2542){-1266,0}...{-1266,0} % 12
+ (307,2542){0,-1235}...{0,-1235} % 13
+ (307,1307){48,-41}...{48,-41} % 14
+ (355,1266){465,447}... % 15
+ (789,1461){1,0}... % 16
+ (1129,1335){1,-1}... % 17
+ (1304,825){0,-1}... % 18
+ (1101,265){-1,-1}... % 19
+ (687,106){-1,0}... % 20
+ (417,220){-1,1}...{-177,401} % 21
+ (233,523)--cycle); % 22
+
+endchar(0);
+
+"fml6";
+
+charbegin( "6", 1850h#, lfigheight*v#, baseline );
+n := 14;
+t1 := 2;
+t2 := 4;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 20;
+t12 := 22;
+t13 := 25;
+t14 := 26;
+
+adj_fill.A(8, 14) % fixed x points
+ (7) % fixed y points
+ ((2,1), (3,2), (7,2), (8,1)) % tied points
+ ((5,10), (3,12)) % verticals
+ ((6,9), (4,11), (1,13)) % horizontals
+ ((1670,2346){-28,-19}...{-28,-19} % 0
+ (1642,2327){-249,110}... % 1
+ (1420,2372){-1,0}... % 2
+ (830,2101){-297,-275}...{-5,-523} % 3
+ (477,1134){15,-161}...{15,-161} % 4
+ (492,973){23,-345}... % 5
+ (571,513){237,-751}... % *6
+ (729,222){1,-1}... % 7
+ (972,118){1,0}... % 8
+ (1300,232){1,1}... % 9
+ (1451,635){0,1}... % 10
+ (1282,1033){-1,1}... % 11
+ (946,1161){-1,0}...{-381,-288} % 12
+ (492,973)-- % 13
+ (477,1134){27,-4}...{27,-4} % 14
+ (504,1130){379,308}... % 15
+ (1186,1394){1,0}... % 16
+ (1569,1234){1,-1}... % 17
+ (1744,781){0,-1}... % 18
+ (1478,207){-1,-1}... % 19
+ (875,-48){-1,0}... % 20
+ (425,126){-1,1}... % 21
+ (167,879){0,1}... % 22
+ (661,2133){376,379}... % 23
+ (1107,2472){877,458}... % *24
+ (1538,2591){1,0}...{216,-75} % 25
+ (1703,2555)--cycle); % 26
+
+endchar(0);
+
+"fml7";
+
+charbegin( "7", 1850h#, lfigheight*v#, baseline );
+n := 3;
+t1 := 4;
+t2 := 6;
+t3 := 11;
+
+adj_fill.A() % fixed x points
+ (3) % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((611,43){108,502}... % 0
+ (1257,1560){572,932}...{572,932} % 1
+ (1829,2492){0,47}...{0,47} % 2
+ (1829,2539){-1,0}...{-1579,0} % 3
+ (250,2539)-- % 4
+ (181,2277){28,-36}...{28,-36} % 5
+ (209,2241){1216,0}...{1216,0} % 6
+ (1425,2241){22,-45}...{22,-45} % 7
+ (1447,2196){-643,-1135}... % 8
+ (804,1061){-653,-1135}...{-130,-444} % 9
+ (279,-1){21,-29}...{21,-29} % 10
+ (300,-30)--cycle); % 11
+
+endchar(0);
+
+"fml8";
+
+charbegin( "8", 1850h#, lfigheight*v#, baseline );
+n := 19;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 19;
+t12 := 21;
+t13 := 23;
+t14 := 25;
+t15 := 26;
+t16 := 29;
+t17 := 31;
+t18 := 33;
+t19 := 35;
+
+adj_fill.A(1, 11) % fixed x points
+ (10, 19) % fixed y points
+ ((1,1), (5,1), (6,2), (11,3), (15,3), (19,2))% tied points
+ ((9,12), (7,14), (4,16), (2,18)) % verticals
+ ((8,13), (3,17)) % horizontals
+ ((871,1229){385,-257}... % 0
+ (1200,1012){1,-1}... % 1
+ (1385,623){0,-1}... % 2
+ (1247,251){-1,-1}... % 3
+ (905,135){-1,0}... % 4
+ (615,241){-1,1}... % 5
+ (456,656){0,1}... % 6
+ (589,1032){1,1}...{361,189} % 7
+ (871,1229){255,219}...{255,219} % 8
+ (1126,1448){416,250}... % 9
+ (1479,1757){482,652}... % *10
+ (1608,2100){0,1}... % 11
+ (1475,2439){-1,1}... % 12
+ (1266,2555){-535,172}...{-579,37} % *13
+ (940,2611){-391,-151}... % 14
+ (495,2360){-349,-310}... % 15
+ (328,1960){0,-1}... % 16
+ (442,1633){429,-628}...{385,-257} % *17
+% (757,1332)-- % 18
+ (757+38.5/2,1332-25.7/2)-- % 18 % DEK
+ (1012,1538){-384,275}... % 19
+ (716,1817){-402,542}... % *20
+ (610,2080){0,1}... % 21
+ (660,2291){208,285}...{261,200} % 22
+ (827,2423){444,-10}... % 23
+ (1195,2296){1,-1}... % 24
+ (1295,2010){0,-1}...{-276,-190} % 25
+ (1012,1538){-262,-221}...{-262,-221} % 26
+ (750,1317){-366,-211}... % 27
+ (306,1007){-1,-1}... % 28
+ (147,581){0,-1}... % 29
+ (323,132){1,-1}... % 30
+ (812,-37){1,0}... % 31
+ (1517,249){1,1}... % 32
+ (1707,730){0,1}... % 33
+ (1536,1135){-1,1}...{-384,275} % 34
+ (1126,1448)--cycle); % 35
+
+endchar(0);
+
+"fml9";
+
+charbegin( "9", 1850h#, lfigheight*v#, baseline );
+n := 12;
+t1 := 4;
+t2 := 7;
+t3 := 9;
+t4 := 13;
+t5 := 14;
+t6 := 17;
+t7 := 18;
+t8 := 20;
+t9 := 21;
+t10 := 22;
+t11 := 24;
+t12 := 25;
+
+adj_fill.A(5, 11) % fixed x points
+ (12) % fixed y points
+ ((4,1), (5,2), (9,2), (10,1)) % tied points
+ ((3,6), (1,8)) % verticals
+ ((4,5), (2,7)) % horizontals
+ ((791,41){62,366}... % 0
+ (942,426){503,958}... % *1
+ (1294,999){277,408}... % 2
+ (1604,1544){417,956}... % *3
+ (1711,1955){0,1}... % 4
+ (1528,2409){-1,1}... % 5
+ (1277,2547){-619,187}...{-1,0} % *6
+ (909,2596){-338,-161}... % 7
+ (384,2279){-1,-1}... % 8
+ (155,1705){0,-1}... % 9
+ (344,1260){1,-1}... % 10
+ (719,1104){1,0}... % 11
+ (925,1143){420,130}...{519,232} % 12
+ (1291,1278)-- % 13
+ (1297,1420){-1,-1}... % 14
+ (959,1312){-1,0}... % 15
+ (667,1412){-1,1}... % 16
+ (479,1886){0,1}...{224,199} % 17
+ (734,2379){10,1}... % 18
+ (1220,2247){1,-1}... % 19
+ (1414,1784){0,-1}...{-1,-1} % 20
+ (1297,1420){-6,-142}...{-6,-142} % 21
+ (1291,1278){-399,-699}... % 22
+ (879,643){-316,-424}...{-123,-305} % 23
+ (456,-11){23,-22}...{23,-22} % 24
+ (479,-33)--cycle); % 25
+
+endchar(0);
+
+% UPPERCASE GREEK CHARACTERS
+set_stem_round(270,290,320,321,335,367); % DEK
+more_side(100h#);
+
+"gm000"; %cap gamma
+
+charbegin( 0, 1798h#, capheight*v#, baseline );
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 15;
+
+adj_fill.A() % fixed x points
+ (1, 5) % fixed y points
+ () % tied points
+ ((4,6), (1,2)) % verticals
+ ((3,7)) % horizontals
+ ((1785,1928){-94,2}...{-94,2} % 0
+ (1691,1930){-91,303}... % 1
+ (1600,2233){-91,303}... % 2
+ (1386,2380){-461,76}... % 3
+ (749,2405){-797,-40}... % 4
+ (624,2277){-90,-598}... % 5
+ (601,2033){0,-1}...{14,-672} % 6
+ (627,60)-- % 7
+ (340,-26){-38,42}...{-38,42} % 8
+ (302,16){11,688}... % 9
+ (329,2045){0,1}... % 10
+ (321,2275){-58,622}... % 11
+ (269,2408){-94,81}...{-94,81} % 12
+ (175,2489){10,75}...{10,75} % 13
+ (185,2564){875,0}... % 14
+ (1060,2564){1,0}...{496,22} % 15
+ (1737,2578)--cycle); % 16
+
+mathcorr(4skew#); % DEK
+endchar(0);
+
+"gm001"; %cap delta
+
+charbegin( 1, 2441h#, capheight*v#, baseline );
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 9;
+t6 := 11;
+t7 := 14.74;
+t8 := 16;
+
+adj_fill.A() % fixed x points
+ (3, 6) % fixed y points
+ ((1,1), (4,1), (5,2), (8,2)) % tied points
+ () % verticals
+ ((2,7)) % horizontals
+ ((12,165){6,-153}...{6,-153} % 0
+ (18,12){404,29}...{723,-46} % 1
+ (2221,-14){223,118}...{223,118} % 2
+ (2444,104){5,60}...{5,60} % 3
+ (2449,164){-132,219}... % 4
+ (1984,1127){-990,2410}...{-225,684} % *5
+ (1459,2574){-217,-92}...{-217,-92} % 6
+ (1242,2482){-126,-236}...{-351,-641} % 7
+ (12,165)-- % 8
+ (263,217){328,694}... % 9
+ (1240,2083){110,187}...{0,7} % 10
+ (1240,2090){30,-70}... % 11
+ (1270,2020){317,-757}...{82,-191} % 12
+ (2000,217){-20,-32}...{-20,-32} % 13
+ (1980,185){-748,2}...{-253,-6} % 14
+ (295,192){-32,25}...{-32,25} % 15
+ (263,217)--cycle); % 16
+
+endchar(0);
+
+"gm002"; %cap theta
+
+%charbegin( 2, 3055h#, capheight*v#, baseline );
+charbegin( 2, (3055-450)*h#, capheight*v#, baseline ); % DEK
+n := 8;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 13;
+t7 := 16;
+t8 := 17;
+
+adj_fill.A() % fixed x points
+ (1, 8) % fixed y points
+ () % tied points
+ ((3,4), (7,8)) % verticals
+ ((4,5), (2,6)) % horizontals
+ ((2027,1691){0,-1}... % 0
+ (2034,1503){0,-1}... % 1
+ (1974,1428){-303,-23}... % 2
+ (1583,1419){-1,0}... % 3
+ (1049,1432){-564,46}... % 4
+ (966,1481){0,1}...{0,1} % 5
+ (952,1691){-95,0}...{-95,0} % 6
+ (857,1691){0,-1}... % 7
+ (869,1292){0,-1}...{0,-1} % 8
+ (863,891)-- % 9
+ (968,889){0,244}... % 10
+ (968,1133){0,1}... % 11
+ (1063,1192){502,21}... % 12
+ (1570,1207){1,0}... % 13
+ (1952,1193){279,-4}... % 14
+ (2017,1114){0,-1}...{-23,-326} % 15
+ (2022,902){110,-2}...{110,-2} % 16
+ (2132,900){0,1}... % 17
+ (2130,1300){0,1}...{0,1} % 18
+ (2139,1691)--cycle); % 19
+
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 15;
+t9 := 17;
+t10 := 20;
+
+adj_fill.B(1, 6) % fixed x points
+ (1, 10) % fixed y points
+ ((1,1), (5,1), (6,2), (10,2)) % tied points
+ ((4,7), (2,9)) % verticals
+ ((5,6), (3,8)) % horizontals
+ ((1342,-45){1,0}... % 0
+ (2429,327){1,1}... % 1
+ (2692,779){356,1083}... % *2
+ (2785,1410){0,1}... % 3
+ (2478,2307){-1,1}... % 4
+ (1664,2593){-1,0}... % 5
+ (569,2199){-1,-1}... % 6
+ (209,1226){0,-1}... % 7
+ (568,219){1,-1}...{1,0} % 8
+ (1342,-45)-- % 9
+ (1502,114){-1,0}... % 10
+ (899,332){-1,1}... % 11
+ (551,1277){0,1}... % 12
+ (616,1833){250,914}... % *13
+ (801,2191){1,1}... % 14
+ (1465,2452){1,0}... % 15
+ (2152,2207){1,-1}... % 16
+ (2439,1394){0,-1}... % 17
+ (2377,774){-240,-993}... % *18
+ (2199,401){-1,-1}...{-1,0} % 19
+ (1502,114)--cycle); % 20
+
+%endchar(0);
+endchar(-200h#); % DEK
+
+"gm003"; %upper case lambda
+
+charbegin( 3, 2654h#, capheight*v#, baseline );
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 9;
+t8 := 11;
+t9 := 12;
+
+adj_fill.A(4, 6) % fixed x points
+ (3, 7) % fixed y points
+ ((5,1), (6,1)) % tied points
+ ((1,9)) % verticals
+ ((2,8)) % horizontals
+ ((2753,204){-248,-10}... % 0
+ (2505,194){-248,-10}... % 1
+ (2387,263){-118,247}...{-209,829} % 2
+ (1599,2581){-245,-91}...{-245,-91} % 3
+ (1354,2490){-151,-298}...{-371,-643} % 4
+ (2,16){48,-40}...{48,-40} % 5
+ (50,-24)-- % 6
+ (50,-24){411,61}...{119,51} % 7
+ (339,64){289,668}...{151,303} % 8
+ (1360,2146){247,-733}...{112,-307} % 9
+ (2082,2){86,-27}...{86,-27} % 10
+ (2168,-25){566,101}...{108,33} % 11
+ (2749,121)--cycle); % 12
+
+endchar(0);
+
+"gm004"; %upper case Xi
+
+charbegin( 4, 2007h#, capheight*v#, baseline );
+n := 6;
+t1 := 0;
+t2 := 3.5;
+t3 := 7;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+
+adj_fill.A() % fixed x points
+ (1, 4) % fixed y points
+ () % tied points
+ ((3,4), (1,6)) % verticals
+ ((2,5)) % horizontals
+ ((1879,1937){-57,227}... % 0
+ (1822,2164){-57,227}... % 1
+ (1789,2228){-1,1}... % 2
+ (1652,2285){-1,0}... % 3
+ (373,2285){-1,0}... % 4
+ (263,2261){-1.662,-.9419}... % 5
+ (185,2178){-84,-237}...{-84,-237} % 6
+ (101,1941)-- % 7
+ (0,1934){72,584}...{22,277} % 8
+ (47,2573){527,-32}... % 9
+ (1025,2540){1,0}...{238,10} % 10
+ (1928,2540){79,-599}...{79,-599} % 11
+ (2007,1941)--cycle); % 12
+
+n := 3;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ ((1,2)) % verticals
+ ((2,3)) % horizontals
+ ((1530,1488){-330,-16}...{-514,21} % 0
+ (416,1475)-- % 1
+ (350,1219){579,28}...{297,-8} % 2
+ (1476,1220)--cycle); % 3
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 7;
+t4 := 8;
+t5 := 9;
+t6 := 11;
+
+adj_fill.C() % fixed x points
+ (1, 3) % fixed y points
+ () % tied points
+ ((3,4), (1,6)) % verticals
+ ((2,5)) % horizontals
+ ((1912,545){-57,-205}... % 0
+ (1855,340){-66,-226}... % 1
+ (1768,267){-1,0}... % 2
+ (1398,265){-1,0}... % 3
+ (286,265){-1,0}... % 4
+ (204,294){-1,1}... % 5
+ (155,354){-60,211}...{-60,211} % 6
+ (95,565)-- % 7
+ (0,561){40,-561}...{696,21} % 8
+ (40,0){1908,-21}...{277,-15} % 9
+ (1948,-21){59,564}...{59,564} % 10
+ (2007,543)--cycle); % 11
+
+endchar(0);
+
+"gm005"; %upper case pi
+
+charbegin( 5, 2476h#, capheight*v#, baseline );
+n := 10;
+t1 := 1;
+t2 := 8;
+t3 := 9;
+t4 := 10;
+t5 := 15;
+t6 := 17;
+t7 := 19;
+t8 := 22;
+t9 := 26;
+t10 := 28;
+
+adj_fill.A() % fixed x points
+ (6, 10) % fixed y points
+ () % tied points
+ ((5,7), (1,9)) % verticals
+ ((3,4), (2,8)) % horizontals
+ ((2154,30){-27,359}... % 0
+ (2110,1525){0,1}... % 1
+ (2119,2273){60,754}... % 2
+ (2136,2348){1,1}... % 3
+ (2183,2371){281,65}...{281,65} % 4
+ (2464,2436){0,103}...{0,103} % 5
+ (2464,2539){-616,-15}... % 6
+ (1560,2521){-1,0}... % 7
+ (828,2521){-1,0}...{-584,42} % 8
+ (-3,2553){0,-111}...{0,-111} % 9
+ (-3,2442){279,-87}... % 10
+ (212,2374){258,-115}... % 11
+ (273,2340){1,-1}... % 12
+ (301,2259){45,-256}... % 13
+ (322,1976){20,-1098}... % *14
+ (321,1161){0,-1}...{-29,-613} % 15
+ (293,6){25,-19}...{25,-19} % 16
+ (318,-13)-- % 17
+ (634,57){-18,713}... % 18
+ (613,1193){0,1}... % 19
+ (640,2315){16,234}...{15,48} % 20
+ (655,2363){36,4}... % 21
+ (691,2367){1,0}... % 22
+ (1743,2367){1,0}...{43,-31} % 23
+ (1786,2336){23,-67}... % 24
+ (1809,2269){8,-845}... % 25
+ (1816,1072){0,-1}...{-9,-404} % 26
+ (1807,-10){51,-41}...{51,-41} % 27
+ (1858,-51)--cycle); % 28
+
+endchar(0);
+
+"gm006"; %upper case Sigma
+
+charbegin( 6, 2194h#, capheight*v#, baseline );
+n := 10;
+t1 := 1;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+t10 := 18;
+
+adj_fill.A(2, 4, 7, 9) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((5,6), (1,10)) % horizontals
+ ((2063,19){-414,14}... % 0
+ (1082,34){-1,0}... % 1
+ (82,7){-710,-4}...{31,176} % 2
+ (113,183){611,797}... % 3
+ (724,980){611,797}... % 4
+ (889,1291){0,1}... % 5
+ (783,1540){-560,830}...{-560,830} % 6
+ (223,2370){250,174}...{250,174} % 7
+ (473,2544){311,-6}...{680,35} % 8
+ (2007,2572){13,-40}...{13,-40} % 9
+ (2020,2532)-- % 10
+ (1937,2335){-1248,13}...{-1248,13} % 11
+ (689,2348){-3,-62}...{-3,-62} % 12
+ (686,2286){493,-805}... % 13
+ (1179,1481){493,-805}... % 14
+ (1197,1420){0,-1}... % 15
+ (1157,1339){-673,-985}...{-673,-985} % 16
+ (484,354){805,-11}... % 17
+ (1514,349){1,0}...{267,39} % 18
+ (2110,383){11,-36}...{11,-36} % 19
+ (2121,347)--cycle); % 20
+
+endchar(0);
+
+"gm007"; %upper case Upsilon
+
+charbegin( 7, 2452h#, capheight*v#, baseline );
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 13;
+t8 := 15;
+
+adj_fill.A() % fixed x points
+ (5, 8) % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((4,5), (1,7)) % verticals
+ ((3,6)) % horizontals
+ ((1326,92){-112,1287}...{-112,1287} % 0
+ (1214,1379){-32,9}...{-32,9} % 1
+ (1182,1388){-39,366}... % 2
+ (1052,2056){-342,1066}... % *3
+ (840,2454){-1,1}... % 4
+ (475,2608){-1,0}... % 5
+ (164,2502){-1,-1}...{-88,-483} % 6
+ (-26,2054)-- % 7
+ (45,2027){91,320}... % 8
+ (177,2258){1,1}... % 9
+ (364,2325){1,0}... % 10
+ (647,2188){1,-1}... % 11
+ (928,1650){380,-1369}... % *12
+ (1027,819){0,-1}...{-22,-408} % 13
+ (1012,-13){64,-28}...{64,-28} % 14
+ (1076,-41)--cycle); % 15
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+t6 := 12;
+
+adj_fill.B() % fixed x points
+ (1) % fixed y points
+ ((3,2), (4,1)) % tied points
+ ((1,6)) % verticals
+ ((2,5)) % horizontals
+ ((2352,2010){-56,350}... % 0
+ (2238,2267){-1,1}... % 1
+ (2072,2318){-1,0}... % 2
+ (1807,2180){-1,-1}... % 3
+ (1363,1299){-101,-527}...{0,-1} % 4
+ (1326,92)-- % 5
+ (1214,1379){166,989}... % 6
+ (1383,2008){424,1042}... % *7
+ (1638,2421){1,1}... % 8
+ (2041,2580){1,0}... % 9
+ (2308,2477){1,-1}... % 10
+ (2402,2298){127,-455}...{0,-1} % *11
+ (2435,2022)--cycle); % 12
+
+endchar(0);
+
+"gm010"; %upper case Phi
+
+charbegin( 8, 2885h#, capheight*v#, baseline );
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 11;
+t8 := 12;
+t9 := 13;
+t10 := 17;
+t11 := 18;
+t12 := 19;
+t13 := 20;
+t14 := 23;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((3,1), (4,2), (5,3), (6,4), (10,5), (11,6), (12,7), (13,8))% tied points
+ ((8,9), (4,12), (1,14)) % verticals
+ ((7,8), (1,2)) % horizontals
+ ((932,7){0,77}... % 0
+ (932,84){.9691,1.247}... % 1
+ (986,112){228,58}... % *2
+ (1160,142){258,45}... % 3
+ (1224,199){89,176}... % *4
+ (1249,318){0,1}... % 5
+ (1249,420){0,2}... % 6
+ (1249,2120){0,2}... % 7
+ (1249,2224){0,1}... % 8
+ (1249,2295){0,1}... % 9
+ (1165,2397){-231,34}...{-231,34} % 10
+ (934,2431){0,101}...{0,101} % 11
+ (934,2532)-- % 12
+ (1891,2537){0,-92}...{0,-92} % 13
+ (1891,2445){-233,-36}... % 14
+ (1658,2409){-233,-36}... % 15
+ (1567,2296){0,-1}... % 16
+ (1567,2224){0,-2}... % 17
+ (1567,2120){0,-2}... % 18
+ (1567,420){0,-2}...{0,-99} % 19
+ (1567,318){0,-1}... % 20
+ (1704,142){221,-44}...{221,-44} % 21
+ (1925,98){0,-91}...{0,-91} % 22
+ (1925,7)--cycle); % 23
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (3,4), (4,3), (6,2)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((1249,318){-1,0}... % 0
+ (395,613){-1,1}... % 1
+ (171,1227){0,1}... % 2
+ (406,1893){1,1}...{1,0} % 3
+ (1249,2224)-- % 4
+ (1249,2120){-1,0}... % 5
+ (722,1889){-1,-1}... % 6
+ (510,1285){0,-1}... % 7
+ (797,584){1,-1}...{1,0} % 8
+ (1249,420)--cycle); % 9
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 12;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,8), (3,5), (4,6), (6,7)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((1567,318){1,0}... % 0
+ (2049,418){829,273}... % *1
+ (2396,620){1,1}... % 2
+ (2666,1380){0,1}... % 3
+ (2475,1951){-1,1}... % 4
+ (2108,2153){-908,273}...{-1,0} % *5
+ (1567,2224)-- % 6
+ (1567,2120){1,0}... % 7
+ (2168,1902){1,-1}... % 8
+ (2287,1669){161,-600}... % *9
+ (2329,1302){0,-1}... % 10
+ (2103,629){-1,-1}...{-1,0} % 11
+ (1567,420)--cycle); % 12
+
+endchar(0);
+
+"gm011"; %upper case Psi
+
+charbegin( 9, 2404h#, capheight*v#, baseline );
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 12;
+t9 := 13;
+t10 := 16;
+
+adj_fill.A() % fixed x points
+ (6) % fixed y points
+ ((3,1), (4,2), (8,3), (9,4)) % tied points
+ ((5,7), (2,10)) % verticals
+ ((1,2)) % horizontals
+ ((770,-5){-1,101}...{-1,101} % 0
+ (769,96){253,46}... % 1
+ (1022,142){253,46}... % 2
+ (1095,226){108,645}... % 3
+ (1127,385){0,1}... % 4
+ (1127,919){0,2}... % 5
+ (1127,1019){0,2}... % 6
+ (1127,1349){0,1}...{-55,792} % 7
+ (1106,2468)-- % 8
+ (1424,2552){17,-29}...{17,-29} % 9
+ (1441,2523){-83,-774}... % 10
+ (1390,1694){0,-1}...{12,-304} % 11
+ (1403,1020){10,-92}...{10,-92} % 12
+ (1413,928){9,-609}... % 13
+ (1422,319){9,-609}... % 14
+ (1543,139){214,-42}...{214,-42} % 15
+ (1757,97){-3,-102}...{-3,-102} % 16
+ (1754,-5)--cycle); % 17
+
+n := 7;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 12;
+t7 := 16;
+
+adj_fill.B(4) % fixed x points
+ () % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((2,6)) % verticals
+ ((3,5), (1,7)) % horizontals
+ ((1127,1019){-1,0}... % 0
+ (735,1176){-1,1}... % 1
+ (549,1563){-251,1026}... % *2
+ (484,2202){0,1}... % 3
+ (441,2501){-1,1}... % 4
+ (324,2566){-1,0}... % 5
+ (195,2562){-397,-134}...{-397,-134} % 6
+ (-202,2428)-- % 7
+ (-176,2347){232,35}... % 8
+ (56,2382){232,35}... % 9
+ (155,2341){1,-1}... % 10
+ (205,2214){84,-496}... % *11
+ (239,1845){109,-1327}... % 12
+ (317,1376){212,-740}... % *13
+ (451,1105){1,-1}... % 14
+ (716,967){676,-186}...{1,0} % *15
+ (1127,919)--cycle); % 16
+
+n := 5;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 8;
+t5 := 11;
+
+adj_fill.C() % fixed x points
+ (3) % fixed y points
+ ((1,3), (5,4)) % tied points
+% () % verticals
+ ((2,4)) % verticals % DEK
+% ((2,4), (1,5)) % horizontals
+ ((1,5)) % horizontals % DEK
+ ((1403,1020){1,0}... % 0
+ (1787,1201){1,1}... % 1
+ (1914,1457){231,733}... % *2
+ (2018,1934){124,806}...{151,545} % 3
+ (2088,2422){355,138}...{328,39} % 4
+ (2471,2512)-- % 5
+ (2483,2446){-620,-393}... % 6
+ (2327,2182){-176,-655}... % 7
+ (2258,1807){-114,-687}... % 8
+ (2155,1369){-233,-683}... % *9
+ (2025,1124){-1,-1}...{-1,0} % 10
+ (1413,928)--cycle); % 11
+
+endchar(0);
+
+"gm012"; %upper case Omega
+
+charbegin( 10, 3042h#, capheight*v#, baseline );
+n := 13;
+t1 := 2;
+t2 := 5;
+t3 := 8;
+t4 := 10;
+t5 := 13;
+t6 := 14;
+t7 := 16.36;
+t8 := 18;
+t9 := 20;
+t10 := 23;
+t11 := 25;
+t12 := 29;
+t13 := 29.48;
+
+adj_fill.A(1, 5, 8, 12) % fixed x points
+ () % fixed y points
+ () % tied points
+ ((4,9), (2,11)) % verticals
+ ((6,7), (3,10), (1,13)) % horizontals
+ ((3021,188){-30,35}...{-30,35} % 0
+ (2991,223){-1,0}...{-738,-41} % 1
+ (2018,184){1,33}...{1,33} % 2
+ (2019,217){564,169}... % 3
+ (2412,479){1,1}... % 4
+ (2746,1425){0,1}... % 5
+ (2446,2275){-1,1}... % 6
+ (2098,2478){-833,274}... % *7
+ (1613,2549){-1,0}... % 8
+ (617,2203){-1,-1}... % 9
+ (263,1251){0,-1}... % 10
+ (330,776){256,-808}... % *11
+ (519,443){1,-1}...{627,-285} % 12
+ (861,216){-12,-23}...{-12,-23} % 13
+ (849,193){-248,29}...{-555,24} % 14
+ (54,242)-- % 15
+ (-6,14){701,52}...{356,-33} % 16
+ (1208,-9){80,205}...{80,205} % 17
+ (1288,196){-787,148}... % 18
+ (880,393){-1,1}... % 19
+ (590,1217){0,1}... % 20
+ (674,1784){322,975}... % *21
+ (912,2192){1,1}... % 22
+ (1543,2420){1,0}... % 23
+ (2110,2208){1,-1}... % 24
+ (2411,1362){0,-1}... % 25
+ (2341,830){-268,-893}... % *26
+ (2143,469){-1,-1}...{-469,-109} % 27
+ (1685,211){-34,-216}...{-34,-216} % 28
+ (1651,-5){676,50}...{317,-26} % 29
+ (2929,-9)--cycle); % 30
+
+endchar(0);
+
+% LOWERCASE GREEK CHARACTERS
+set_stem_round(250,268,290,303,325,341); % DEK
+
+"gm013"; %lower case alpha
+
+charbegin( 11, 2238h#, lcbody*v#, baseline );
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 14;
+t10 := 15;
+t11 := 19;
+t12 := 21;
+t13 := 23;
+t14 := 26;
+
+adj_fill.A(8, 14) % fixed x points
+ (1, 7) % fixed y points
+ ((1,1), (5,1), (6,2), (9,3), (10,4), (14,2))% tied points
+ ((3,12)) % verticals
+ ((4,11), (2,13)) % horizontals
+ ((1384,806){-101,329}... % 0
+ (1136,1404){-1,1}... % 1
+ (885,1522){-1,0}... % 2
+ (647,1417){-1,-1}... % 3
+ (504,1164){-193,-618}... % *4
+ (454,799){0,-1}... % 5
+ (612,300){1,-1}... % 6
+ (774,230){1,0}... % 7
+ (909,274){293,171}... % *8
+ (1067,401){1,1}...{311,433} % 9
+ (1384,806){210,291}... % 10
+ (1594,1097){1.09,1.674}...{371,635} % 11
+ (1965,1732)-- % 12
+ (2152,1647){-511,-771}... % 13
+ (1641,876){-1.165,-1.624}...{-193,-249}% 14
+ (1448,627){-405,-485}... % 15
+ (1181,303){-333,-398}... % *16
+ (1115,229){-1,-1}... % 17
+ (850,26){-512,-274}... % *18
+ (603,-45){-1,0}... % 19
+ (402,43){-1,1}... % 20
+ (212,627){0,1}... % 21
+ (521,1483){1,1}... % 22
+ (1071,1732){1,0}... % 23
+ (1340,1624){1,-1}... % 24
+ (1478,1416){254,-527}...{112,-407} % *25
+ (1594,1097)--cycle); % 26
+
+n := 5;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 5;
+t5 := 8;
+
+adj_fill.B() % fixed x points
+ (1) % fixed y points
+ ((3,3), (4,4)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((2354,378){-284,-222}... % 0
+ (2007,186){-1,0}... % 1
+ (1914,238){-1,1}... % 2
+ (1781,464){-273,638}...{-218,772} % *3
+ (1641,876)-- % 4
+ (1448,627){182,-540}... % 5
+ (1630,87){182,-540}... % 6
+ (1700,-20){1,-1}... % 7
+ (1831,-74){1,0}... % 8
+ (2009,-4){560,354}...{283,218} % *9
+ (2391,280)--cycle); % 10
+
+endchar(0);
+
+"gm014"; %lower case beta
+
+%charbegin( 12, 2253h#, capheight*v#, descender*v#);
+charbegin( 12, 2253h#, ascender*v#, descender*v#); % DEK
+n := 17;
+t1 := 0;
+t2 := 1.134;
+t3 := 3;
+t4 := 5;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 12;
+t9 := 15;
+t10 := 18;
+t11 := 20;
+t12 := 23;
+t13 := 24;
+t14 := 27;
+t15 := 29;
+t16 := 31;
+t17 := 33;
+
+adj_fill.A(2, 5, 14, 17) % fixed x points
+ (1, 10) % fixed y points
+ () % tied points
+ ((9,11), (7,13), (4,15)) % verticals
+ ((8,12), (5,6), (3,16)) % horizontals
+ ((931,380){51,-22}...{51,-22} % 0
+ (982,358){-66,-502}... % 1
+ (1051,162){1,-1}... % 2
+ (1248,79){1,0}... % 3
+ (1518,208){1,1}... % 4
+ (1690,718){0,1}... % 5
+ (1530,1154){-1,1}... % 6
+ (1080,1302){-1,0}...{-778,-66} % 7
+ (846,1294){9,135}...{9,135} % 8
+ (855,1429){1,0}... % 9
+ (1352,1614){1,1}... % 10
+ (1480,1998){0,1}... % 11
+ (1108,2402){-1,0}... % 12
+ (805,2296){-1,-1}... % 13
+ (671,2016){-190,-756}... % *14
+ (615,1540){-14,-542}... % 15
+ (612,771){0,-1}...{35,-609} % 16
+ (643,-627)-- % 17
+ (363,-747){-46,56}...{-46,56} % 18
+ (317,-691){17,586}...{26,475} % 19
+ (357,1419){25,474}... % 20
+ (461,1982){337,956}... % *21
+ (694,2375){1,1}... % 22
+ (1265,2581){1,0}... % 23
+ (1769,2082){0,-1}... % 24
+ (1570,1627){-1,-1}...{-383,-99} % 25
+ (1249,1430){-5,-23}...{-5,-23} % 26
+ (1244,1407){1,0}... % 27
+ (1806,1223){1,-1}... % 28
+ (2005,747){0,-1}... % 29
+ (1781,189){-1,-1}... % 30
+ (1099,-57){-1,0}... % 31
+ (802,56){-1,1}...{-159,283} % 32
+ (751,124)--cycle); % 33
+
+endchar(0);
+
+"gm015"; %lower case gamma
+
+charbegin( 13, 2053h#, lcbody*v#, descender*v#);
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 9;
+t6 := 11;
+t7 := 14;
+t8 := 16;
+t9 := 17;
+
+adj_fill.A(4, 8) % fixed x points
+ (5, 9) % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((1,7)) % verticals
+ ((3,6)) % horizontals
+ ((1055,-635){37,394}...{-4,764} % 0
+ (1085,88){17,293}...{17,293} % 1
+ (1102,381){-29,4}...{-29,4} % 2
+ (1073,385){-2,481}... % 3
+ (987,1134){-326,1221}... % *4
+ (747,1606){-1,1}... % 5
+ (431,1734){-1,0}... % 6
+ (-15,1566){-1,-1}...{-227,-358} % 7
+ (-192,1325)-- % 8
+ (-132,1280){254,292}... % 9
+ (6,1415){1,1}... % 10
+ (284,1520){1,0}... % 11
+ (542,1412){1,-1}... % 12
+ (922,139){75,-439}... % 13
+ (921,108){-.251,-1.975}... % 14
+ (908,50){-265,-679}...{-119,-435} % 15
+ (723,-611){238,-203}...{258,-91} % 16
+ (927,-733)--cycle); % 17
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((1831,1740){-49,-19}...{-49,-19} % 0
+ (1782,1721){-152,-395}...{-361,-655} % 1
+ (1102,381)-- % 2
+ (1085,88){354,660}...{173,282} % 3
+ (2055,1639)--cycle); % 4
+
+endchar(0);
+
+"gm016"; %lower case delta
+
+%charbegin( 14, 1855h#, capheight*v#, baseline );
+charbegin( 14, (1855-200)*h#, ascender*v#, baseline ); % DEK
+n := 15;
+t1 := .5;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 20;
+t12 := 21;
+t13 := 23;
+t14 := 27;
+t15 := 28;
+
+adj_fill.A(7, 15) % fixed x points
+ (6) % fixed y points
+ ((6,1), (7,2), (11,2), (12,1)) % tied points
+ ((5,8), (3,10), (2,13)) % verticals
+ ((4,9), (1,14)) % horizontals
+ ((1377,2392){-527,0}... % 0
+ (850,2392){-1,0}... % 1
+ (628,2240){0,-1}... % 2
+ (699,2104){388,-440}... % *3
+ (1016,1800){658,-625}... % 4
+ (1368,1460){1,-1}... % 5
+ (1620,928){0,-1}... % 6
+ (1337,232){-1,-1}... % 7
+ (755,-35){-1,0}... % 8
+ (409,79){-1,1}... % 9
+ (206,592){0,1}... % 10
+ (358,1084){585,1045}...{1,1} % *11
+ (791,1637)-- % 12
+ (899,1545){-411,-353}... % 13
+ (491,783){0,-1}... % 14
+ (693,255){1,-1}... % 15
+ (938,163){1,0}... % 16
+ (1216,314){1,1}... % 17
+ (1382,774){0,1}... % 18
+ (1256,1113){-483,771}...{-1,1} % *19
+ (899,1545){-108,92}...{-108,92} % 20
+ (791,1637){-571,519}... % 21
+ (540,1903){-339,455}... % *22
+ (452,2092){0,1}... % 23
+ (492,2226){155,300}... % *24
+ (607,2392){238,281}... % 25
+ (813,2521){517,175}... % *26
+ (1124,2567){1,0}...{603,-15} % 27
+ (1436,2547)--cycle); % 28
+
+%endchar(0);
+endchar(-100h#); % DEK
+
+"gm017"; %lower case epsilon
+
+charbegin( 15, 1837h#, lcbody*v#, baseline );
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+t10 := 17;
+t11 := 18;
+
+adj_fill.A(1, 5) % fixed x points
+ (6, 11) % fixed y points
+ ((8,1), (9,2)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,10)) % horizontals
+ ((1714,276){-193,-149}... % 0
+ (1326,42){-738,-315}... % *1
+ (976,-39){-1,0}... % 2
+ (445,142){-1,1}... % 3
+ (224,752){0,1}... % 4
+ (526,1489){1,1}... % 5
+ (1147,1743){1,0}...{1,-1} % 6
+ (1658,1526)-- % 7
+ (1520,1328){-47,-7}...{-47,-7} % 8
+ (1473,1321){-513,705}... % 9
+ (1355,1473){-1,1}... % 10
+ (1024,1585){-1,0}... % 11
+ (691,1448){-1,-1}...{0,-1} % 12
+ (533,951){-7,-159}...{-7,-159} % 13
+ (526,792){0,-1}... % 14
+ (730,281){1,-1}... % 15
+ (881,203){387,-106}... % *16
+ (1117,175){1,0}...{260,234} % 17
+ (1656,371)--cycle); % 18
+
+n := 4;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ () % verticals
+ ((1,4)) % horizontals
+ ((1371,956){-1,0}... % 0
+ (932,947){-1,0}...{-399,4} % 1
+ (533,951)-- % 2
+ (526,792){274,10}... % 3
+ (800,802){1,0}...{340,-6} % 4
+ (1322,800)--cycle); % 5
+
+endchar(0);
+
+"gm020"; %lower case zeta
+
+%charbegin( 16, 1646h#, capheight*v#, depthy*v#);
+charbegin( 16, (1646+50)*h#, ascender*v#, 2/3descender*v#); % DEK
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 9;
+t5 := 11;
+t6 := 13;
+t7 := 14;
+t8 := 17;
+t9 := 20;
+t10 := 23;
+t11 := 26;
+t12 := 27;
+
+adj_fill.A(5, 8, 12) % fixed x points
+ (1, 7) % fixed y points
+ () % tied points
+ ((4,9), (2,11)) % verticals
+ ((6,8), (3,10)) % horizontals
+ ((1450,-502){183,226}... % 0
+ (1647,-209){265,523}... % *1
+ (1715,21){0,1}... % 2
+ (1668,133){-1,1}... % 3
+ (1574,180){-247,63}... % *4
+ (1421,196){-1,0}... % 5
+ (1242,180){-663,-73}... % 6
+ (1047,174){-1,0}... % 7
+ (681,293){-1,1}... % 8
+ (497,777){0,1}... % 9
+ (1087,2021){1,1}...{395,126} % 10
+ (1618,2354){0,71}...{0,71} % 11
+ (1618,2425){-347,-53}... % 12
+ (1249,2393){-1,0}...{-476,326} % 13
+ (729,2570)-- % 14
+ (598,2407){232,-146}... % 15
+ (847,2322){627,-114}...{1,0} % *16
+ (1225,2293){-468,-360}... % 17
+ (997,2093){-1,-1}... % 18
+ (415,1338){-787,-1451}... % *19
+ (210,642){0,-1}... % 20
+ (400,94){1,-1}... % 21
+ (811,-37){1,0}... % 22
+ (1111,-5){530,64}... % 23
+ (1309,5){1,0}... % 24
+ (1443,-39){1,-1}... % 25
+ (1498,-145){0,-1}...{-235,-401} % 26
+ (1371,-457)--cycle); % 27
+
+endchar(0);
+
+"gm021"; %lower case eta
+
+%charbegin( 17, 2074h#, lcbody*v#, descender*v#);
+charbegin( 17, (2074-200)*h#, lcbody*v#, descender*v#); % DEK
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+t9 := 14;
+
+adj_fill.A(5) % fixed x points
+ (6, 9) % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,8)) % verticals
+ ((4,7)) % horizontals
+ ((640,52){-17,325}... % 0
+ (616,679){0,1}...{62,769} % 1
+ (623,1272){35,174}...{35,174} % 2
+ (658,1446){-39,9}...{-39,9} % 3
+ (619,1455){-27,326}... % 4
+ (557,1644){-1,1}... % 5
+ (361,1712){-1,0}... % 6
+ (155,1645){-479,-259}...{-441,-369} % *7
+ (-118,1453)-- % 8
+ (-59,1389){281,183}... % 9
+ (195,1509){1,0}... % 10
+ (289,1472){1,-1}... % 11
+ (342,1235){0,-1}...{-12,-409} % 12
+ (340,-5){32,-34}...{32,-34} % 13
+ (372,-39)--cycle); % 14
+
+n := 7;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 12;
+t7 := 14;
+
+adj_fill.B() % fixed x points
+ (7) % fixed y points
+ ((3,2), (4,1)) % tied points
+ ((1,6)) % verticals
+ ((2,5)) % horizontals
+ ((1771,-605){-41,350}... % 0
+ (1710,755){0,1}... % 1
+ (1697,1397){-96,882}... % *2
+ (1614,1637){-1,1}... % 3
+ (1367,1724){-1,0}... % 4
+ (1047,1653){-709,-278}...{-715,-467} % *5
+ (658,1446)-- % 6
+ (623,1272){801,584}... % 7
+ (896,1433){500,217}... % *8
+ (1123,1489){1,0}... % 9
+ (1342,1420){1,-1}... % 10
+ (1429,1165){99,-959}... % *11
+ (1441,461){0,-1}...{-6,-149} % 12
+ (1437,-695){32,-42}...{32,-42} % 13
+ (1469,-737)--cycle); % 14
+
+%endchar(0);
+endchar(-100h#); % DEK
+
+"gm022"; %lower case theta
+
+%charbegin( 18, 2052h#, ascender*v#, baseline );
+charbegin( 18, (2052-200)*h#, ascender*v#, baseline ); % DEK
+n := 12;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 9;
+t5 := 12;
+t6 := 13;
+t7 := 16;
+t8 := 17;
+t9 := 20;
+t10 := 23;
+t11 := 24;
+t12 := 27;
+
+adj_fill.A(1, 6) % fixed x points
+ (1, 12) % fixed y points
+ ((1,1), (5,1), (6,2), (7,3), (8,4), (10,5), (11,6), (12,2))% tied points
+ ((4,7), (2,10)) % verticals
+ ((5,6), (3,9)) % horizontals
+ ((854,-41){1,0}... % 0
+ (1464,262){1,1}... % 1
+ (1712,708){335,1099}... % *2
+ (1799,1361){0,1}... % 3
+ (1732,2023){-259,1063}... % *4
+ (1540,2424){-1,1}... % 5
+ (1172,2573){-1,0}... % 6
+ (577,2324){-1,-1}... % 7
+ (311,1860){-359,-1121}... % *8
+ (218,1203){0,-1}... % 9
+ (291,522){282,-1103}... % *10
+ (500,100){1,-1}...{1,0} % 11
+ (854,-41)-- % 12
+ (1067,173){-1,0}... % 13
+ (751,309){-1,1}... % 14
+ (568,662){-247,903}...{0,1} % *15
+ (504,1212){-8,158}...{-8,158} % 16
+ (496,1370){-33,516}... % 17
+ (537,1908){232,905}... % *18
+ (728,2275){1,1}... % 19
+ (1014,2398){1,0}... % 20
+ (1280,2300){1,-1}... % 21
+ (1411,1990){206,-930}...{13,-213} % *22
+ (1486,1370){18,-158}...{18,-158} % 23
+ (1504,1212){0,-1}... % 24
+ (1454,633){-191,-906}... % *25
+ (1313,306){-1,-1}...{-1,0} % 26
+ (1067,173)--cycle); % 27
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,5), (2,4), (3,3), (4,6)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1486,1370){-990,0}...{-990,0} % 0
+ (496,1370)-- % 1
+ (504,1212){1000,0}...{1000,0} % 2
+ (1504,1212)--cycle); % 3
+
+%endchar(0);
+endchar(-100h#); % DEK
+
+"gm023"; %lower case iota
+
+charbegin( 19, 1040h#, lcbody*v#, baseline );
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 11;
+t7 := 13;
+
+adj_fill.A(1) % fixed x points
+ (2, 4, 7) % fixed y points
+ () % tied points
+ ((3,5)) % verticals
+ ((1,6)) % horizontals
+ ((1177,351){-210,-264}... % 0
+ (887,68){-554,-384}... % *1
+ (623,-33){-1,0}... % 2
+ (412,87){-299,409}... % *3
+ (324,376){0,1}...{0,1284} % 4
+ (324,1660)-- % 5
+ (625,1753){40,-36}...{40,-36} % 6
+ (665,1717){-127,-756}... % 7
+ (602,721){0,-1}... % 8
+ (628,434){100,-452}... % *9
+ (702,269){1,-1}... % 10
+ (819,236){1,0}... % 11
+ (959,284){296,183}...{283,313} % *12
+ (1115,419)--cycle); % 13
+
+%endchar(0);
+endchar(-50h#); % DEK
+
+"gm024"; %lower case kappa
+
+charbegin( 20, 1856h#, lcbody*v#, baseline );
+n := 3;
+t1 := 2;
+t2 := 5;
+t3 := 6;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((2,1), (3,2)) % tied points
+ ((1,2)) % verticals
+ () % horizontals
+ ((383,-16){-59,21}...{-59,21} % 0
+ (324,5){4,252}...{-31,768} % 1
+ (315,1624)-- % 2
+ (607,1721){17,-23}...{17,-23} % 3
+ (624,1698){-23,-755}...{0,-1} % 4
+ (601,943){27,-144}...{27,-144} % 5
+ (628,799){-32,-16}...{-32,-16} % 6
+ (596,783){0,-1}...{10,-208} % 7
+ (619,80)--cycle); % 8
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+
+adj_fill.B(3, 5) % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ ((2,4)) % verticals
+ () % horizontals
+ ((1556,-7){-180,152}...{-499,461} % 0
+ (628,799){-27,144}...{-27,144} % 1
+ (601,943){286,320}...{435,277} % 2
+ (1575,1745)-- % 3
+ (1764,1633){-3,-57}...{-3,-57} % 4
+ (1761,1576){-610,-257}...{-258,-197} % 5
+ (853,1008){-4,-23}... % 6
+ (849,985){.2306,-1.901}...{18,-41} % 7
+ (867,944){454,-428}...{148,-106} % 8
+ (1811,179){-6,-53}...{-6,-53} % 9
+ (1805,126)--cycle); % 10
+
+endchar(0);
+
+"gm025"; %lower case lambda
+
+charbegin( 21, 1806h#, ascender*v#, baseline );
+n := 5;
+t1 := 4;
+t2 := 7;
+t3 := 10;
+t4 := 11;
+t5 := 13;
+
+adj_fill.A() % fixed x points
+ (5) % fixed y points
+ ((3,1), (4,2)) % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((1782,56){5,41}...{5,41} % 0
+ (1787,97){-219,441}... % 1
+ (1241,1319){-501,1275}... % 2
+ (786,2482){-1,1}... % 3
+ (571,2550){-1,0}...{-502,-173} % 4
+ (61,2439)-- % 5
+ (92,2347){434,94}... % 6
+ (351,2391){1,0}... % 7
+ (518,2306){1,-1}... % 8
+ (660,2085){274,-586}...{145,-500} % *9
+ (792,1720){130,-314}...{130,-314} % 10
+ (922,1406){539,-1420}...{539,-1420} % 11
+ (1461,-14){51,-26}...{51,-26} % 12
+ (1512,-40)--cycle); % 13
+
+n := 2;
+t1 := 3;
+t2 := 4;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((43,-21){-64,46}...{-64,46} % 0
+ (-21,25){807,1514}... % 1
+ (786,1539){807,1514}...{-179,714} % 2
+ (792,1720)-- % 3
+ (922,1406){-116,276}... % 4
+ (891,1427){-1.577,-.1017}... % 5
+ (865,1404){-466,-996}... % 6
+ (399,408){-185,-385}...{-100,-296} % 7
+ (261,39)--cycle); % 8
+
+endchar(0);
+
+"gm026"; %lower case mu
+
+charbegin( 22, 2087h#, lcbody*v#, descender*v#);
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 8;
+t7 := 10;
+t8 := 14;
+t9 := 15;
+
+adj_fill.A(1) % fixed x points
+ (6, 9) % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((5,7)) % verticals
+ ((2,8)) % horizontals
+ ((2250,308){-386,-360}... % 0
+ (1943,76){-562,-313}... % *1
+ (1688,-5){-1,0}... % 2
+ (1508,45){-1,1}...{-99,533} % 3
+ (1434,235){-22,210}...{-22,210} % 4
+ (1412,445){13,530}... % 5
+ (1423,971){0,1}...{-33,683} % 6
+ (1408,1606)-- % 7
+ (1696,1724){28,-41}...{28,-41} % 8
+ (1724,1683){-49,-791}... % 9
+ (1703,1227){0,-617}... % 10
+ (1703,610){0,-1}... % 11
+ (1725,412){86,-324}... % *12
+ (1789,286){1,-1}... % 13
+ (1895,245){1,0}...{376,238} % 14
+ (2198,379)--cycle); % 15
+
+n := 9;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 8;
+t7 := 10;
+t8 := 12;
+t9 := 14;
+
+adj_fill.B() % fixed x points
+ (6) % fixed y points
+ ((1,1), (3,3), (4,4), (9,2)) % tied points
+ ((5,7)) % verticals
+ ((2,8)) % horizontals
+ ((1434,235){-200,332}... % 0
+ (1414,257){-1.657,.9188}... % 1
+ (1392,261){-295,-166}... % 2
+ (716,-24){-1,0}...{-10,13} % 3
+ (492,105){-162,203}...{-162,203} % 4
+ (330,308){0,1}...{0,699} % 5
+ (330,1007){-74,605}...{-109,410} % 6
+ (256,1612)-- % 7
+ (562,1709){35,-24}...{35,-24} % 8
+ (597,1685){0,-996}... % 9
+ (597,689){0,-1}... % 10
+ (725,268){1,-1}... % 11
+ (941,212){1,0}... % 12
+ (1163,272){471,233}...{277,245} % *13
+ (1412,445)--cycle); % 14
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,4), (2,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((360,-736){-47,23}...{-47,23} % 0
+ (313,-713){11,370}...{0,1} % 1
+ (330,308)-- % 2
+ (492,105){0,-1}...{95,-463} % 3
+ (542,-662)--cycle); % 4
+
+endchar(0);
+
+"gm027"; %lower case nu
+
+charbegin( 23, 2019h#, lcbody*v#, baseline);
+n := 5;
+t1 := 4;
+t2 := 8;
+t3 := 10;
+t4 := 13;
+t5 := 15;
+
+adj_fill.A() % fixed x points
+ (1, 3, 5) % fixed y points
+ () % tied points
+ () % verticals
+ ((2,4)) % horizontals
+ ((1966,1674){11,-30}...{11,-30} % 0
+ (1977,1644){-504,-1016}... % 1
+ (1473,628){-504,-1016}...{-229,-571} % 2
+ (1229,89){-209,-119}...{-209,-119} % 3
+ (1020,-30){-26,26}...{-26,26} % 4
+ (994,-4){-68,469}... % 5
+ (792,882){-492,1412}... % *6
+ (502,1408){-1,1}... % 7
+ (287,1516){-1,0}... % 8
+ (-17,1378){-1,-1}...{-355,-454} % 9
+ (-124,1255)-- % 10
+ (-213,1322){268,391}... % 11
+ (-62,1527){1,1}... % 12
+ (455,1737){1,0}... % 13
+ (751,1625){1,-1}...{100,-450} % 14
+ (1187,375){287,576}... % 15
+ (1454,962){359,922}...{76,300} % 16
+ (1670,1694){84,37}...{84,37} % 17
+ (1754,1731)--cycle); % 18
+
+endchar(0);
+
+"gm030"; %lower case xi
+
+%charbegin( 24, 1848h#, ascender*v#, depthy*v#);
+charbegin( 24, 1848h#, ascender*v#, 2/3descender*v#); % DEK
+n := 18;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+t10 := 19;
+t11 := 21;
+t12 := 23;
+t13 := 25;
+t14 := 27;
+t15 := 29;
+t16 := 30;
+t17 := 33;
+t18 := 34;
+
+adj_fill.A(5, 6, 8, 11, 13, 18) % fixed x points
+ (1, 10) % fixed y points
+ () % tied points
+ ((7,12), (4,14), (2,17)) % verticals
+ ((9,11), (3,15), (6,16)) % horizontals
+ ((1643,-506){387,508}... % 0
+ (1847,-195){274,531}... % *1
+ (1917,25){0,1}... % 2
+ (1877,127){-1,1}... % 3
+ (1594,213){-1,0}... % 4
+ (993,179){-1019,-74}... % 5
+ (606,281){-1,1}... % 6
+ (489,573){0,1}... % 7
+ (655,1005){1,1}...{1,0} % 8
+ (1339,1241){0,85}...{0,85} % 9
+ (1339,1326){-518,46}... % 10
+ (1039,1387){-500,178}... % *11
+ (839,1504){-1,1}... % 12
+ (748,1769){0,1}... % 13
+ (868,2093){1,1}...{364,44} % 14
+ (1485,2340){0,101}...{0,101} % 15
+ (1485,2441){-402,-66}... % 16
+ (1122,2400){-1,0}...{-422,342} % 17
+ (603,2566){-29,3}...{-29,3} % 18
+ (574,2569)-- % 19
+ (470,2398){524,-280}...{1,0} % 20
+ (1043,2295){-642,-197}... % 21
+ (598,2024){-1,-1}... % 22
+ (460,1668){0,-1}... % 23
+ (537,1436){1,-1}...{258,-50} % 24
+ (908,1272){-627,-167}... % 25
+ (401,989){-1,-1}... % 26
+ (175,467){0,-1}... % 27
+ (328,98){1,-1}... % 28
+ (711,-29){1,0}... % 29
+ (1095,7){806,80}... % 30
+ (1397,29){1,0}... % 31
+ (1633,-34){1,-1}... % 32
+ (1690,-159){0,-1}...{-263,-431} % 33
+ (1564,-453)--cycle); % 34
+
+endchar(0);
+
+"gm031"; %lower case pi
+
+charbegin( 25, 2055h#, lcbody*v#, baseline);
+n := 7;
+t1 := 2;
+t2 := 7;
+t3 := 10;
+t4 := 11;
+t5 := 12;
+t6 := 13;
+t7 := 14;
+
+adj_fill.A() % fixed x points
+ (2) % fixed y points
+ ((4,1), (5,2), (6,3), (7,4)) % tied points
+ () % verticals
+ ((1,3)) % horizontals
+ ((2194,1804){-338,-176}... % 0
+ (1785,1703){-1,0}... % 1
+ (589,1703){-1,0}... % 2
+ (312,1680){-431,-88}... % *3
+ (158,1615){-1,-1}... % 4
+ (82,1482){-106,-415}...{-106,-415} % 5
+ (-24,1067)-- % 6
+ (54,1033){68,170}... % 7
+ (122,1203){68,170}... % 8
+ (231,1391){1,1}... % 9
+ (483,1457){1,0}... % 10
+ (762,1457){2,0}... % 11
+ (896,1457){2,0}... % 12
+ (1454,1457){2,0}... % 13
+ (1667,1457){1,0}...{227,102} % 14
+ (2095,1561){129,217}...{129,217} % 15
+ (2224,1778)--cycle); % 16
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,1), (2,2)) % tied points
+ () % verticals
+ () % horizontals
+ ((221,38){-4,48}...{-4,48} % 0
+ (217,86){174,297}...{192,744} % 1
+ (762,1457)-- % 2
+ (896,1457){-173,-818}...{-97,-283} % 3
+ (466,19){-41,-39}...{-41,-39} % 4
+ (425,-20)--cycle); % 5
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 10;
+
+adj_fill.C(1) % fixed x points
+ () % fixed y points
+ ((4,3), (5,4)) % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((2118,221){-285,-249}... % 0
+ (1887,57){-419,-221}... % *1
+ (1699,0){-1,0}... % 2
+ (1501,44){-1,1}... % 3
+ (1416,229){-115,501}... % *4
+ (1386,545){0,1}...{98,728} % 5
+ (1454,1457)-- % 6
+ (1667,1457){-53,-650}... % 7
+ (1644,1042){0,-1}... % 8
+ (1768,270){1,-1}... % 9
+ (1877,243){1,0}...{379,273} % 10
+ (2066,314)--cycle); % 11
+
+endchar(0);
+
+"gm032"; %lower case rho
+
+%charbegin( 26, 2029h#, lcbody*v#, descender*v#);
+charbegin( 26, (2029-200)*h#, lcbody*v#, descender*v#); % DEK
+n := 12;
+t1 := 3;
+t2 := 4;
+t3 := 7;
+t4 := 10;
+t5 := 12;
+t6 := 15;
+t7 := 16;
+t8 := 18;
+t9 := 20;
+t10 := 23;
+t11 := 26;
+t12 := 28;
+
+adj_fill.A(6) % fixed x points
+ (6, 12) % fixed y points
+ ((1,2), (2,1), (6,1), (7,2)) % tied points
+ ((4,9), (2,11)) % verticals
+ ((5,8), (3,10)) % horizontals
+ ((667,-627){22,51}... % 0
+ (689,-576){-71,273}...{-21,545} % 1
+ (575,304){26,4}...{26,4} % 2
+ (601,308){-6,545}...{-6,545} % 3
+ (595,853){0,1}... % 4
+ (647,1232){200,642}... % *5
+ (795,1495){1,1}... % 6
+ (1122,1616){1,0}... % 7
+ (1363,1507){1,-1}... % 8
+ (1478,1265){156,-641}... % *9
+ (1519,866){0,-1}... % 10
+ (1329,310){-1,-1}... % 11
+ (985,163){-1,0}... % 12
+ (749,281){-1,1}... % 13
+ (635,504){-154,572}...{0,1} % *14
+ (595,853)-- % 15
+ (601,308){241,-437}... % 16
+ (690,187){1,-1}... % 17
+ (1110,0){1,0}... % 18
+ (1569,222){1,1}... % 19
+ (1846,930){0,1}... % 20
+ (1799,1314){-180,635}... % *21
+ (1666,1565){-1,1}... % 22
+ (1165,1764){-1,0}... % 23
+ (619,1571){-1,-1}... % 24
+ (419,1161){-270,-1079}... % *25
+ (349,492){0,-1}...{26,-468} % 26
+ (392,-671){62,-30}...{62,-30} % 27
+ (454,-701)--cycle); % 28
+
+%endchar(0);
+endchar(-100h#); % DEK
+
+"gm033"; %lower case sigma
+
+charbegin( 27, 2041h#, lcbody*v#, baseline*v#);
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 7;
+t6 := 10;
+t7 := 13;
+t8 := 14;
+t9 := 17;
+t10 := 19;
+t11 := 22;
+t12 := 24;
+t13 := 26;
+
+adj_fill.A(7, 13) % fixed x points
+ (1, 7, 8) % fixed y points
+ ((2,2), (3,1), (7,1), (8,2)) % tied points
+ ((6,9), (4,11)) % verticals
+ ((5,10), (3,12)) % horizontals
+ ((2092,1487){-155,33}...{-591,68} % 0
+ (1334,1598){-388,-28}...{-388,-28} % 1
+ (946,1570){-1,0}... % 2
+ (678,1457){-1,-1}... % 3
+ (510,937){0,-1}... % 4
+ (561,556){197,-642}... % *5
+ (707,295){1,-1}... % 6
+ (989,152){1,0}... % 7
+ (1278,290){1,1}... % 8
+ (1380,489){138,510}... % *9
+ (1416,800){0,1}... % 10
+ (1368,1197){-184,656}... % *11
+ (1232,1456){-1,1}...{-1,0} % 12
+ (946,1570)-- % 13
+ (1334,1598){-7,-52}...{-7,-52} % 14
+ (1327,1546){437,-208}... % 15
+ (1502,1435){1,-1}... % 16
+ (1710,845){0,-1}... % 17
+ (1499,241){-1,-1}... % 18
+ (837,-36){-1,0}... % 19
+ (404,174){-1,1}... % 20
+ (256,437){-200,644}... % *21
+ (204,818){0,1}... % 22
+ (412,1454){1,1}... % 23
+ (912,1713){1226,48}...{1226,48} % 24
+ (2138,1761){10,-36}...{10,-36} % 25
+ (2148,1725)--cycle); % 26
+
+endchar(0);
+
+"gm034"; %lower case tau
+
+charbegin( 28, 1703h#, lcbody*v#, baseline);
+
+n := 6;
+t1 := 2;
+t2 := 4;
+t3 := 5;
+t4 := 8;
+t5 := 9;
+t6 := 12;
+
+adj_fill.A(6) % fixed x points
+ (3) % fixed y points
+ ((4,1), (5,2)) % tied points
+ ((2,3)) % verticals
+ ((1,4)) % horizontals
+ ((1774,1792){-297,-145}... % 0
+ (1364,1707){-1,0}... % 1
+ (424,1707){-1,0}... % 2
+ (134,1612){-1,-1}...{-89,-512} % 3
+ (-44,1040)-- % 4
+ (60,1024){194,544}... % 5
+ (223,1390){1,1}... % 6
+ (511,1472){1,0}... % 7
+ (827,1472){2,0}... % 8
+ (1041,1472){2,0}... % 9
+ (1354,1472){1,0}...{372,77} % 10
+ (1663,1509){156,250}...{156,250} % 11
+ (1819,1759)--cycle); % 12
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 11;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((4,1), (5,2)) % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((1493,199){-255,-238}... % 0
+ (1258,28){-446,-231}... % *1
+ (1047,-32){-1,0}... % 2
+ (874,48){-1,1}... % 3
+ (798,221){-103,477}... % *4
+ (771,525){0,1}...{73,817} % 5
+ (827,1472)-- % 6
+ (1041,1472){-85,-745}... % 7
+ (1029,832){0,-1}... % 8
+ (1057,466){108,-564}... % *9
+ (1137,268){1,-1}... % 10
+ (1256,212){1,0}...{262,160} % 11
+ (1466,294)--cycle); % 12
+
+endchar(0);
+
+"gm035"; %lower case upsilon
+
+%charbegin( 29, 2044h#, lcbody*v#, baseline);
+charbegin( 29, 1974h#, lcbody*v#, baseline); % DEK
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 12;
+t6 := 14;
+t7 := 15;
+t8 := 16;
+t9 := 18;
+t10 := 21;
+t11 := 23;
+t12 := 24;
+
+adj_fill.A(1, 6) % fixed x points
+ (7, 12) % fixed y points
+ () % tied points
+ ((4,9), (2,11)) % verticals
+ ((5,8), (3,10)) % horizontals
+ ((1317,1541){15,-67}...{15,-67} % 0
+ (1332,1474){332,-326}... % 1
+ (1542,937){0,-1}... % 2
+ (1351,383){-1,-1}... % 3
+ (935,190){-1,0}... % 4
+ (691,293){-1,1}... % 5
+ (615,440){-103,375}... % *6
+ (588,668){0,1}... % 7
+ (591,983){27,868}... % 8
+ (608,1390){0,1}... % 9
+ (589,1568){-75,289}... % *10
+ (533,1679){-1,1}... % 11
+ (361,1747){-1,0}... % 12
+ (128,1679){-504,-262}...{-420,-378} % *13
+ (-143,1485)-- % 14
+ (-86,1404){341,258}... % 15
+ (176,1530){1,0}... % 16
+ (273,1473){1,-1}... % 17
+ (317,1220){0,-1}... % 18
+ (317,440){0,-1}... % 19
+ (444,55){1,-1}... % 20
+ (717,-46){1,0}... % 21
+ (1477,305){1,1}... % 22
+ (1821,1097){0,1}...{-215,225} % 23
+ (1546,1741){-75,-13}...{-75,-13} % 24
+ (1471,1728)--cycle); % 25
+
+endchar(0);
+
+"gm036"; %lower case phi
+
+%charbegin( 30, 2644h#, ascender*v#, descender*v#);
+charbegin( 30, (2644-150)*h#, ascender*v#, descender*v#); % DEK
+n := 8;
+t1 := 2;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,8), (2,1), (3,2), (4,3), (5,4), (6,5), (7,6), (8,7))% tied points
+ ((4,5)) % verticals
+ () % horizontals
+ ((1216,-710){-64,37}...{-64,37} % 0
+ (1152,-673){3,318}...{0,1} % 1
+ (1171,-15){0,110}...{0,110} % 2
+ (1171,95){0,1545}... % 3
+ (1171,1640){0,2}... % 4
+ (1171,1750){0,1}...{-57,813} % 5
+ (1147,2414)-- % 6
+ (1437,2569){25,-29}...{25,-29} % 7
+ (1462,2540){-52,-705}...{0,-1} % 8
+ (1432,1751){-6,-111}...{-6,-111} % 9
+ (1426,1640){0,-1518}... % 10
+ (1426,122){0,-2}...{0,-116} % 11
+ (1426,6){0,-1}...{47,-360} % 12
+ (1465,-579)--cycle); % 13
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,8), (3,3), (4,2), (6,1)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((1171,-15){-1,0}... % 0
+ (716,47){-769,238}... % *1
+ (402,223){-1,1}... % 2
+ (221,786){0,1}... % 3
+ (494,1499){1,1}... % 4
+ (768,1663){677,251}...{626,61} % *5
+ (1171,1750)-- % 6
+ (1171,1640){-1,0}... % 7
+ (723,1472){-1,-1}... % 8
+ (525,894){0,-1}... % 9
+ (749,276){1,-1}...{1,0} % 10
+ (1171,95)--cycle); % 11
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,7), (3,4), (4,5), (6,6)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((1426,6){1,0}... % 0
+ (2157,279){1,1}... % 1
+ (2415,960){0,1}... % 2
+ (2191,1547){-1,1}... % 3
+ (1919,1676){-759,204}...{-701,54} % *4
+ (1432,1751)-- % 5
+ (1426,1640){1,0}... % 6
+ (1935,1483){1,-1}... % 7
+ (2110,967){0,-1}... % 8
+ (1900,352){-1,-1}...{-1,0} % 9
+ (1426,122)--cycle); % 10
+
+%endchar(0);
+endchar(-75h#); % DEK
+
+"gm037"; %lower case chi
+
+%charbegin( 31, 1835h#, lcbody*v#, descender*v#);
+charbegin( 31, (1835+100)*h#, lcbody*v#, descender*v#);
+n := 9;
+t1 := 1;
+t2 := 3;
+t3 := 4;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+t7 := 14;
+t8 := 15;
+t9 := 18;
+
+adj_fill.A() % fixed x points
+ (5) % fixed y points
+ ((2,1), (3,2), (7,3), (8,4)) % tied points
+ () % verticals
+ ((4,6), (1,9)) % horizontals
+ ((1857,-434){-343,-172}... % 0
+ (1603,-489){-1,0}... % 1
+ (1467,-438){-1,1}...{-316,715} % 2
+ (919,579){-77,153}... % 3
+ (842,732){-.8726,1.799}... % 4
+ (496,1473){-346,741}... % 5
+ (371,1661){-1,1}... % 6
+ (221,1724){-1,0}... % 7
+ (-35,1640){-203,-155}...{-203,-155} % 8
+ (-238,1485)-- % 9
+ (-180,1407){301,244}... % 10
+ (54,1520){1,0}... % 11
+ (163,1467){1,-1}... % 12
+ (274,1293){398,-799}... % 13
+ (672,494){.8173,-1.824}...{62,-155} % 14
+ (734,339){297,-721}... % 15
+ (1034,-360){477,-978}... % *16
+ (1211,-639){1,-1}... % 17
+ (1378,-728){1,0}... % 18
+ (1579,-675){509,209}...{318,183} % *19
+ (1887,-519)--cycle); % 20
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,3), (2,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((-106,-595){182,270}...{488,629} % 0
+ (672,494)-- % 1
+ (734,339){-448,-668}... % 2
+ (358,-257){-593,-1024}...{-147,-369} % *3
+ (141,-685){-63,-23}...{-63,-23} % 4
+ (78,-708)--cycle); % 5
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1)) % tied points
+ () % verticals
+ () % horizontals
+ ((1633,1701){-76,-13}...{-76,-13} % 0
+ (1557,1688){-715,-956}...{-715,-956} % 1
+ (842,732)-- % 2
+ (919,579){449,604}... % 3
+ (1095,796){837,977}...{170,197} % *4
+ (1756,1556){-1,29}...{-1,29} % 5
+ (1755,1585)--cycle); % 6
+
+%endchar(0);
+endchar(100h#); % DEK
+
+"gm040"; %lower case psi
+
+%charbegin( 32, 2643h#, ascender*v#, descender*v#);
+charbegin( 32, 2593h#, ascender*v#, descender*v#); % DEK
+n := 4;
+t1 := 2;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,4), (2,1), (3,2), (4,3)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((1183,2451){20,-353}... % 0
+ (1227,1322){0,-1}... % 1
+ (1227,128){0,-2}...{0,-121} % 2
+ (1227,7)-- % 3
+ (1484,7){0,121}... % 4
+ (1484,128){0,2}... % 5
+ (1484,1467){0,1}...{22,308} % 6
+ (1492,2545){-28,25}...{-28,25} % 7
+ (1464,2570)--cycle); % 8
+
+n := 8;
+t1 := 0;
+t2 := 4;
+t3 := 6;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 14;
+t8 := 17;
+
+adj_fill.B(4) % fixed x points
+ (5) % fixed y points
+ ((1,4), (8,1)) % tied points
+ ((2,7)) % verticals
+ ((3,6), (1,8)) % horizontals
+ ((1227,128){-370,47}... % 0
+ (950,191){-453,164}... % *1
+ (774,292){-1,1}... % 2
+ (637,576){-168,733}... % *3
+ (606,1025){23,476}... % 4
+ (541,1686){-1,1}... % 5
+ (372,1745){-1,0}... % 6
+ (146,1681){-510,-250}...{-376,-299} % *7
+ (-138,1495)-- % 8
+ (-64,1424){393,268}... % 9
+ (173,1537){1,0}... % 10
+ (258,1498){1,-1}... % 11
+ (315,1384){77,-296}... % *12
+ (335,1202){0,-1}... % 13
+ (335,636){0,-1}... % 14
+ (500,160){1,-1}... % 15
+ (762,47){727,-153}...{1,0} % *16
+ (1227,7)--cycle); % 17
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,1), (2,2)) % tied points
+ ((1,2)) % verticals
+ () % horizontals
+ ((1252,-698){-39,25}...{-39,25} % 0
+ (1213,-673){14,680}...{14,680} % 1
+ (1227,7)-- % 2
+ (1484,7){0,-1}...{47,-362} % 3
+ (1517,-569)--cycle); % 4
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+
+adj_fill.D(1) % fixed x points
+ () % fixed y points
+ ((3,3), (4,2)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1945,1563){-9,-48}...{-9,-48} % 0
+ (1936,1515){162,-176}... % 1
+ (2169,989){0,-1}... % 2
+ (1982,410){-1,-1}... % 3
+ (1717,201){-498,-282}...{-1,0} % *4
+ (1484,128)-- % 5
+ (1484,7){688,180}... % 6
+ (2131,351){1,1}... % 7
+ (2429,1058){0,1}...{-198,246} % 8
+ (2185,1729){-75,11}...{-75,11} % 9
+ (2110,1740)--cycle); % 10
+
+endchar(0);
+
+"gm041"; %lower case omega
+
+%charbegin( 33, 3051h#, lcbody*v#, baseline*v#);
+charbegin( 33, (3051-100)*h#, lcbody*v#, baseline*v#); % DEK
+n := 16;
+t1 := 1;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 18;
+t11 := 21;
+t12 := 23;
+t13 := 25;
+t14 := 28;
+t15 := 30;
+t16 := 31;
+
+adj_fill.A(8, 16) % fixed x points
+ (1, 4, 7, 12) % fixed y points
+ () % tied points
+ ((6,9), (11,13), (2,15)) % verticals
+ ((5,10), (3,14)) % horizontals
+ ((2508,1737){50,8}...{50,8} % 0
+ (2558,1745){168,-129}... % 1
+ (2838,1133){0,-1}... % 2
+ (2469,242){-1,-1}... % 3
+ (1910,-13){-1,0}... % 4
+ (1599,90){-1,1}...{-309,687} % 5
+ (1450,354){-1,-1}... % 6
+ (1084,57){-668,-401}... % *7
+ (782,-47){-1,0}... % 8
+ (416,91){-1,1}... % 9
+ (199,651){0,1}... % 10
+ (518,1545){1,1}...{361,125} % 11
+ (841,1724)-- % 12
+ (902,1672){-383,-280}... % 13
+ (756,1554){-1,-1}... % 14
+ (500,859){0,-1}... % 15
+ (542,535){163,-544}... % *16
+ (663,315){1,-1}... % 17
+ (945,184){1,0}... % 18
+ (1275,341){1,1}... % 19
+ (1376,557){136,579}... % *20
+ (1411,920){0,1}...{0,701} % 21
+ (1411,1621){279,104}...{279,104} % 22
+ (1690,1725){21,-26}...{21,-26} % 23
+ (1711,1699){-105,-716}... % 24
+ (1679,976){0,-1}... % 25
+ (1725,568){178,-667}... % *26
+ (1857,309){1,-1}... % 27
+ (2077,234){1,0}... % 28
+ (2418,399){1,1}... % 29
+ (2591,901){0,1}...{-289,246} % 30
+ (2342,1512){11,45}...{11,45} % 31
+ (2353,1557)--cycle); % 32
+
+%endchar(0);
+endchar(-50h#); % DEK
+
+"gm042"; %lower case varepsilon
+
+charbegin( 34, 1601h#, lcbody*v#, baseline);
+n := 18;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+t10 := 17;
+t11 := 18;
+t12 := 20;
+t13 := 22;
+t14 := 23;
+t15 := 24;
+t16 := 25;
+t17 := 27;
+t18 := 28;
+
+adj_fill.A(5, 10, 14, 18) % fixed x points
+ (1, 9) % fixed y points
+ ((13,1), (15,1)) % tied points
+ ((7,12), (3,16)) % verticals
+ ((8,11), (4,6), (2,17)) % horizontals
+ ((1241,1350){-43,6}...{-43,6} % 0
+ (1198,1356){-125,367}... % 1
+ (1112,1488){-1,1}... % 2
+ (843,1592){-1,0}... % 3
+ (586,1481){-1,-1}... % 4
+ (512,1307){0,-1}... % 5
+ (586,1093){1,-1}... % 6
+ (852,1022){1,0}...{189,-7} % 7
+ (1041,1015){-78,-174}...{-78,-174} % 8
+ (963,841){-249,61}... % 9
+ (793,860){-1,0}... % 10
+ (514,749){-1,-1}... % 11
+ (447,557){0,-1}... % 12
+ (590,246){1,-1}... % 13
+ (935,141){1,0}... % 14
+ (1171,201){507,233}...{274,220} % *15
+ (1442,374)-- % 16
+ (1491,304){-342,-374}... % 17
+ (738,-54){-1,0}... % 18
+ (328,94){-1,1}... % 19
+ (202,405){0,1}... % 20
+ (315,736){1,1}...{377,156} % 21
+ (526,882){262,58}...{262,58} % 22
+ (788,940){-262,-58}...{-262,-58} % 23
+ (526,882){-329,271}... % 24
+ (368,1191){0,1}... % 25
+ (511,1571){1,1}... % 26
+ (963,1743){1,0}...{290,-204} % 27
+ (1352,1590)--cycle); % 28
+
+endchar(0);
+
+"gm043"; %lower case var theta
+
+charbegin( 35, 1844h#, ascender*v#, baseline*v#);
+n := 17;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 8;
+t6 := 11;
+t7 := 14;
+t8 := 17;
+t9 := 19;
+t10 := 21;
+t11 := 24;
+t12 := 27;
+t13 := 30;
+t14 := 31;
+t15 := 34;
+t16 := 36;
+t17 := 39;
+
+adj_fill.A(9, 17) % fixed x points
+ () % fixed y points
+ ((1,1), (4,1), (5,2), (13,3), (14,4), (17,2))% tied points
+ ((7,11), (5,13), (2,16)) % verticals
+ ((8,10), (6,12), (3,15), (1,17)) % horizontals
+ ((1360,1349){-292,24}... % 0
+ (775,1599){-1,1}... % 1
+ (531,2135){0,1}... % 2
+ (630,2375){1,1}... % 3
+ (818,2438){1,0}... % 4
+ (1048,2335){1,-1}... % 5
+ (1279,1929){312,-986}...{0,-1} % *6
+ (1360,1349){16,-124}...{16,-124} % 7
+ (1376,1225){0,-1}... % 8
+ (1306,622){-271,-991}... % *9
+ (1105,234){-1,-1}... % 10
+ (818,124){-1,0}... % 11
+ (641,197){-1,1}... % 12
+ (577,329){-86,348}... % *13
+ (555,545){0,1}... % 14
+ (555,1132){0,1}... % 15
+ (510,1311){-1,1}... % 16
+ (367,1375){-1,0}... % 17
+ (123,1311){-519,-249}...{-311,-266} % *18
+ (-152,1126)-- % 19
+ (-110,1051){350,214}... % 20
+ (146,1156){1,0}... % 21
+ (248,1106){1,-1}... % 22
+ (306,845){0,-1}... % 23
+ (306,421){0,-1}... % 24
+ (332,197){99,-367}... % *25
+ (405,54){1,-1}... % 26
+ (684,-51){1,0}... % 27
+ (1264,224){1,1}... % 28
+ (1516,650){340,1011}...{0,1} % *29
+ (1604,1235){-2,105}...{-2,105} % 30
+ (1602,1340){0,1}... % 31
+ (1515,1989){-336,1095}... % *32
+ (1266,2435){-1,1}... % 33
+ (932,2582){-1,0}... % 34
+ (533,2427){-1,-1}... % 35
+ (381,2040){0,-1}... % 36
+ (619,1509){1,-1}... % 37
+ (931,1319){757,-284}...{256,-21} % *38
+ (1376,1225)--cycle); % 39
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,3), (2,4)) % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((1832,1236){-228,-1}...{-228,-1} % 0
+ (1604,1235)-- % 1
+ (1602,1340){230,-7}...{230,-7} % 2
+ (1832,1333)--cycle); % 3
+
+endchar(0);
+
+"gm044"; %varpi
+
+charbegin( 36, 3043h#, theight*v#, baseline*v#);
+n := 18;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+t9 := 16;
+t10 := 17;
+t11 := 19;
+t12 := 22;
+t13 := 24;
+t14 := 25;
+t15 := 28;
+t16 := 31;
+t17 := 34;
+t18 := 37;
+
+adj_fill.A(1, 9) % fixed x points
+ (5, 8, 13, 18) % fixed y points
+ () % tied points
+ ((7,10), (12,14), (3,16)) % verticals
+ ((6,11), (4,15), (2,17)) % horizontals
+ ((174,1423){189,221}... % 0
+ (578,1818){252,151}... % 1
+ (955,1939){959,162}... % *2
+ (1537,1980){1,0}... % 3
+ (2198,1903){1086,-297}... % *4
+ (2623,1683){1,-1}... % 5
+ (2822,1132){0,-1}... % 6
+ (2439,221){-1,-1}... % 7
+ (1912,-45){-1,0}... % 8
+ (1584,84){-1,1}...{-132,480} % 9
+ (1434,336){-260,-299}... % 10
+ (730,-30){-1,0}... % 11
+ (399,113){-1,1}... % 12
+ (200,717){0,1}... % 13
+ (455,1280){1,1}...{394,259} % 14
+ (660,1432)-- % 15
+ (696,1355){-425,-418}... % 16
+ (491,830){0,-1}... % 17
+ (667,285){1,-1}... % 18
+ (890,174){1,0}... % 19
+ (1208,288){1,1}... % 20
+ (1340,527){179,587}... % *21
+ (1387,875){0,1}...{-26,441} % 22
+ (1370,1118){297,102}...{297,102} % 23
+ (1667,1220){33,-43}...{33,-43} % 24
+ (1700,1177){0,-1}... % 25
+ (1720,560){109,-868}... % *26
+ (1809,309){1,-1}... % 27
+ (2076,208){1,0}... % 28
+ (2389,345){1,1}... % 29
+ (2519,579){175,576}... % *30
+ (2564,921){0,1}... % 31
+ (2361,1515){-1,1}... % 32
+ (1989,1700){-970,250}... % *33
+ (1391,1765){-1,0}... % 34
+ (943,1744){-728,-82}... % *35
+ (663,1683){-319,-135}...{-1,-1} % 36
+ (230,1367)--cycle); % 37
+
+endchar(0);
+
+"gm047"; %var phi
+
+charbegin( 39, 2626h#, lcbody*v#, baseline*v#);
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 10;
+
+adj_fill.A(1, 4, 6) % fixed x points
+ (3) % fixed y points
+ ((1,2), (6,1)) % tied points
+ ((2,5)) % verticals
+ ((1,6)) % horizontals
+ ((1099,-31){-565,53}... % 0
+ (490,232){-1,1}... % 1
+ (235,920){0,1}... % 2
+ (478,1476){1,1}...{351,106} % 3
+ (915,1729)-- % 4
+ (957,1645){-432,-191}... % 5
+ (702,1467){-1,-1}... % 6
+ (532,989){0,-1}... % 7
+ (763,305){1,-1}... % 8
+ (945,155){336,-209}...{486,-40} % *9
+ (1099,96)--cycle); % 10
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 7;
+t6 := 10;
+t7 := 11;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+t11 := 18;
+t12 := 19;
+
+adj_fill.B(6, 7) % fixed x points
+ () % fixed y points
+ ((1,4), (2,3), (6,3), (7,4), (11,1), (12,2))% tied points
+ ((5,8), (3,10)) % verticals
+ ((6,7), (4,9)) % horizontals
+ ((1347,-31){0,127}... % 0
+ (1347,96){0,2}... % 1
+ (1347,979){0,1}... % 2
+ (1502,1483){1,1}... % 3
+ (1769,1574){1,0}... % 4
+ (1997,1481){1,-1}... % 5
+ (2093,1300){130,-455}... % *6
+ (2127,1026){0,-1}... % 7
+ (2070,621){-221,-691}... % *8
+ (1906,335){-1,-1}...{-1,0} % 9
+ (1347,96)-- % 10
+ (1347,-31){642,76}... % 11
+ (2184,332){1,1}... % 12
+ (2433,1025){0,1}... % 13
+ (2248,1561){-1,1}... % 14
+ (1840,1717){-1,0}... % 15
+ (1335,1524){-1,-1}... % 16
+ (1099,889){0,-1}... % 17
+ (1099,96){0,-2}...{0,-127} % 18
+ (1099,-31)--cycle); % 19
+
+n := 2;
+t1 := 2;
+t2 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,2), (2,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((1140,-729){-49,51}...{-49,51} % 0
+ (1091,-678){8,647}...{8,647} % 1
+ (1099,-31)-- % 2
+ (1347,-31){0,-1}...{39,-440} % 3
+ (1377,-650)--cycle); % 4
+
+endchar(0);
+
+"gm100"; %medium partial sign
+
+%rotation of 3 degrees, watch out for lateral drift!
+%rot := identity rotated 3 shifted (0,-60v);
+
+charbegin( 64, 1875h#, capheight*v#, baseline*v#);
+rot := identity rotatedaround((923h,774v),-5); % DEK
+n := 16;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 14;
+t10 := 16;
+t11 := 19;
+t12 := 22;
+t13 := 23;
+t14 := 24;
+t15 := 26;
+t16 := 28;
+
+adj_fill.A(8) % fixed x points
+ (16) % fixed y points
+ ((7,1), (8,2), (13,2), (14,1)) % tied points
+ ((5,10), (3,12), (1,16)) % verticals
+ ((6,9), (4,11), (2,15)) % horizontals
+ ((100,1985){181,803}... % 0
+ (289,2382){1,1}... % 1
+ (748,2575){1,0}... % 2
+ (1216,2356){1,-1}... % 3
+ (1549,1786){450,-1360}... % *4
+ (1666,996){0,-1}... % 5
+ (1390,175){-1,-1}... % 6
+ (923,-38){-1,0}... % 7
+ (430,160){-1,1}... % 8
+ (195,774){0,1}... % 9
+ (437,1473){1,1}... % 10
+ (1043,1702){1,0}...{659,-112} % 11
+ (1274,1671)-- % 12
+ (1300,1532){-600,184}... % 13
+ (1049,1570){-1,0}... % 14
+ (689,1425){-1,-1}... % 15
+ (503,850){0,-1}... % 16
+ (549,495){178,-595}... % *17
+ (681,255){1,-1}... % 18
+ (957,134){1,0}... % 19
+ (1214,235){1,1}... % 20
+ (1344,499){175,693}... % *21
+ (1389,928){0,1}...{-134,448} % 22
+ (1300,1532){-26,139}...{-26,139} % 23
+ (1274,1671){-117,617}... % 24
+ (1025,2168){-1,1}... % 25
+ (615,2350){-1,0}... % 26
+ (297,2221){-1,-1}...{-212,-927} % 27
+ (165,1967)--cycle); % 28
+
+endchar(0);
+
+"gm175"; %wp
+
+charbegin( 125, 2038h#, lcbody*v#, baseline*v#);
+n := 18;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 11;
+t6 := 13;
+t7 := 15;
+t8 := 19;
+t9 := 20;
+t10 := 21;
+t11 := 22;
+t12 := 26;
+t13 := 28;
+t14 := 30;
+t15 := 36;
+t16 := 38;
+t17 := 41;
+t18 := 42;
+
+adj_fill.A(10, 18) % fixed x points
+ (1, 9) % fixed y points
+ () % tied points
+ ((8,11), (7,12), (5,14), (3,16)) % verticals
+ ((6,13), (4,15), (2,17)) % horizontals
+ ((1139,389){111,-402}... % 0
+ (1227,232){1,-1}... % 1
+ (1362,180){1,0}... % 2
+ (1580,280){1,1}... % 3
+ (1722,541){192,650}... % *4
+ (1772,930){0,1}... % 5
+ (1612,1426){-1,1}... % 6
+ (1395,1508){-1,0}... % 7
+ (1195,1450){-415,-223}... % *8
+ (980,1285){-1,-1}... % 9
+ (485,526){-248,-426}... % 10
+ (303,-111){0,-1}... % 11
+ (432,-489){1,-1}... % 12
+ (577,-561){1,0}... % 13
+ (757,-481){1,1}... % 14
+ (859,-187){0,1}... % 15
+ (776,96){-324,709}... % *16
+ (535,522){-217,335}... % 17
+ (353,863){-245,610}... % *18
+ (290,1132){0,1}...{307,224} % 19
+ (634,1718)-- % 20
+ (685,1679){-353,-437}... % 21
+ (495,1266){0,-1}... % 22
+ (537,1073){166,-444}... % *23
+ (661,822){309,-523}... % 24
+ (920,310){348,-874}... % *25
+ (1009,-52){0,-1}... % 26
+ (832,-576){-1,-1}... % 27
+ (513,-727){-1,0}... % 28
+ (267,-631){-1,1}... % 29
+ (123,-239){0,1}... % 30
+ (200,134){305,878}... % *31
+ (428,639){258,485}... % 32
+ (708,1126){491,768}... % *33
+ (919,1407){1,1}... % 34
+ (1244,1655){632,335}... % *35
+ (1551,1742){1,0}... % 36
+ (1832,1635){1,-1}... % 37
+ (1993,1132){0,-1}... % 38
+ (1656,189){-1,-1}... % 39
+ (1454,32){-385,-212}... % *40
+ (1271,-23){-1,0}...{-289,399} % 41
+ (920,188)--cycle); % 42
+
+endchar(0);
+
+% PUNCTUATION
+no_stem_round;
+more_side(0);
+
+"rmperiod";
+
+%charbegin( 58, 1840h#, lcbody*v#, baseline*v#);
+charbegin( 58, (1840-812)*h#, 400*v#, baseline*v#); % DEK
+
+n := 5;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((1,1), (5,1)) % tied points
+ ((2,4)) % verticals
+ ((1,3)) % horizontals
+ ((931,163)-- % 0
+ (931,378){-1,0}... % 1
+ (729,163){0,-1}... % 2
+ (931,-55){1,0}... % 3
+ (1148,163){0,1}...{-1,0} % 4
+ (931,378)--cycle); % 5
+
+%endchar(0);
+endchar(-406h#); % DEK
+
+"rmcomma";
+
+%charbegin( 59, 1840h#, lcbody*v#, baseline*v#);
+charbegin( 59,(1840-812)*h#, 400*v#, baseline*v#); % DEK
+n := 4;
+t1 := 5;
+t2 := 6;
+t3 := 7;
+t4 := 11;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((2,1), (3,1)) % tied points
+ ((1,4)) % verticals
+ () % horizontals
+ ((813,-642){171,229}... % 0
+ (959,-368){161,387}... % 1
+ (986,-224){0,1}... % 2
+ (938,-69){-128,177}... % 3
+ (810,108){-128,177}... % 4
+ (773,228){0,1}...{271,188} % 5
+ (838,354)-- % 6
+ (838,354){373,276}... % 7
+ (945,396){1,0}... % 8
+ (1038,323){228,-317}... % 9
+ (1167,90){103,-266}... % 10
+ (1197,-100){0,-1}... % 11
+ (1115,-357){-254,-409}...{-156,-187} % 12
+ (855,-710)--cycle); % 13
+
+%endchar(0);
+endchar(-406h#); % DEK
+
+"rmlessthan";
+
+%charbegin( 60, 1220h#, lcbody*v#, baseline*v#);
+charbegin( 60, 2800h#, (1000+925)*v#, (1000-925)*v#); % DEK
+n := 0;
+
+numeric a[],b[],alpha[],beta[];
+pair vec[];
+a6=a8=2493; a7=347; .5[b6,b8]=b7=925; b6-b8=2000;
+vec1=(a6,b6)-(a7,b7); vec2=(a8,b8)-(a7,b7);
+vec3=unitvector vec1 rotated 90; vec4=unitvector vec2 rotated 90;
+(a2,b2)=(a6,b6)+55vec3; (a3,b3)=(a6,b6)-75vec3;
+(a0,b0)=(a8,b8)-75vec4; (a5,b5)=(a8,b8)+75vec4;
+(a1,b1)=(a6,b6)+75vec3+alpha1*vec1=(a0,b0)+beta1*vec2;
+(a4,b4)=(a3,b3)+alpha2*vec1=(a5,b5)+beta2*vec2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((997,-38){-934,946}...{-934,946} % 0
+% (63,908){958,848}...{958,848} % 1
+% (1021,1756)-- % 2
+% (1100,1677){-786,-745}...{-786,-745} % 3
+% (314,932){825,-824}...{825,-824} % 4
+% (1139,108)--cycle); % 5
+ ((a0,b0)-- % 0 % DEK
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)-- % 3
+ (a4,b4)-- % 4
+ (a5,b5)--cycle); % 5
+
+endchar(0);
+
+"rmslash";
+
+%charbegin( 61, 1796h#, programem*v#, descender*v#);
+charbegin( 61, 1858h#, .75programem*v#, .25programem*v#); % DEK
+n := 0;
+
+numeric a[],b[],alpha,beta;
+pair vec;
+.5[b0,b3]=.75programem-120; b1=b2=-.25programem+250; b0-b3=33;
+.5[a0,a3]=1652; .5[a1,a2]=205;
+vec=(.5[a0-a1,a3-a2],.5[b0-b1,b3-b2]);
+(a3,b3)-(a2,b2)=alpha*vec;
+(a1,b1)=beta*vec+(a2,b2)+145*(unitvector vec rotated 90);
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1614,2740){-1519,-3012}...{-1519,-3012}% 0
+% (95,-272)-- % 1
+% (223,-284){1505,2991}...{1505,2991} % 2
+% (1728,2707)--cycle); % 3
+ ((a0,b0)-- % 0 % DEK
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)--cycle); % 3
+
+endchar(0);
+
+"rmgreaterthan";
+
+%charbegin( 62, 1214h#, lcbody*v#, baseline*v#);
+charbegin( 62, 2800h#, (1000+925)*v#, (1000-925)*v#); % DEK
+
+n := 0;
+
+numeric a[],b[],alpha[],beta[];
+pair vec[];
+a6=a8=307; a7=2453; .5[b6,b8]=b7=925; b6-b8=2000;
+vec1=(a6,b6)-(a7,b7); vec2=(a8,b8)-(a7,b7);
+vec3=unitvector vec1 rotated 90; vec4=unitvector vec2 rotated 90;
+(a2,b2)=(a6,b6)-55vec3; (a3,b3)=(a6,b6)+75vec3;
+(a0,b0)=(a8,b8)+75vec4; (a5,b5)=(a8,b8)-75vec4;
+(a1,b1)=(a6,b6)-75vec3+alpha1*vec1=(a0,b0)+beta1*vec2;
+(a4,b4)=(a3,b3)+alpha2*vec1=(a5,b5)+beta2*vec2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((161,41){739,815}...{739,815} % 0
+% (900,856){-786,762}...{-786,762} % 1
+% (114,1618)-- % 2
+% (248,1745){858,-852}...{858,-852} % 3
+% (1106,893){-857,-920}...{-857,-920} % 4
+% (249,-27)--cycle); % 5
+ ((a0,b0)-- % 0 % DEK
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)-- % 3
+ (a4,b4)-- % 4
+ (a5,b5)--cycle); % 5
+
+endchar(0);
+
+%DOTLESS CHARACTERS
+set_stem_round(250,268,290,303,325,341); % DEK
+more_side(100h#);
+
+"rmathi"; %dotless i
+
+charbegin( 123, 1033h#, lcbody*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 15;
+t9 := 17;
+t10 := 18;
+
+adj_fill.A(1, 6) % fixed x points
+ (5, 10) % fixed y points
+ () % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((-142,1457){309,254}... % 0
+ (152,1660){513,274}... % *1
+ (371,1731){1,0}... % 2
+ (562,1662){146,-170}... % 3
+ (617,1476){52,-662}... % *4
+ (614,1000){-15,-516}... % 5
+ (657,306){155,-300}... % 6
+ (787,223){1,0}... % 7
+ (929,270){325,182}...{310,275} % *8
+ (1112,405)-- % 9
+ (1180,356){-373,-545}... % 10
+ (910,66){-540,-395}... % *11
+ (640,-39){-391,0}... % 12
+ (410,70){-162,254}... % 13
+ (348,330){-62,927}... % *14
+ (348,997){8,540}... % 15
+ (310,1454){-118,212}... % 16
+ (216,1513){-1,0}...{-322,-199} % 17
+ (-83,1385)--cycle); % 18
+
+endchar(0);
+
+"rmathj"; %dotless j
+
+charbegin( 124, 1029h#, lcbody*v#, descender*v#);
+
+n := 8;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+
+adj_fill.A(4, 8) % fixed x points
+ (1, 5) % fixed y points
+ () % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((26,-706){321,177}... % 0
+ (447,-389){655,689}... % *1
+ (681,-17){146,439}... % 2
+ (722,283){40,999}... % *3
+ (721,982){-7,543}... % 4
+ (700,1485){-94,700}... % *5
+ (627,1682){-257,245}... % 6
+ (475,1732){-1,0}... % 7
+ (262,1661){-524,-277}...{-418,-319} % *8
+ (-49,1455)-- % 9
+ (1,1386){386,214}... % 10
+ (282,1509){1,0}... % 11
+ (388,1468){213,-249}... % 12
+ (458,817){-8,-467}... % 13
+ (393,-127){-148,-472}...{-501,-321} % 14
+ (-22,-634)--cycle); % 15
+
+endchar(0);
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusb10.mf b/Master/texmf-dist/fonts/source/public/ams/eusb10.mf
new file mode 100644
index 00000000000..c7e0042a47c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusb10.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusb10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "12908 47 207 1816"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusb10, the Euler script bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Bold 10pt ---------------------------------
+
+ font_identifier := "EUSB V2.2";
+
+ ptsize = 10;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.13;
+
+ input eusbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusb5.mf b/Master/texmf-dist/fonts/source/public/ams/eusb5.mf
new file mode 100644
index 00000000000..679987bceef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusb5.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusb5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "06976 47 207 1814"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusb5, the Euler script bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Bold 5pt ---------------------------------
+
+ font_identifier := "EUSB V2.2";
+
+ ptsize = 5;
+
+ leftside# = rightside# = 300h#;
+
+ xscale_factor := 1.28;
+
+ input eusbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusb6.mf b/Master/texmf-dist/fonts/source/public/ams/eusb6.mf
new file mode 100644
index 00000000000..a3896024c4b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusb6.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusb6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "54714 47 207 1815"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusb6, the Euler script bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Bold 6pt ---------------------------------
+
+ font_identifier := "EUSB V2.2";
+
+ ptsize = 6;
+
+ leftside# = rightside# = 150h#;
+
+ xscale_factor := 1.24;
+
+ input eusbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusb7.mf b/Master/texmf-dist/fonts/source/public/ams/eusb7.mf
new file mode 100644
index 00000000000..8cdc062e43f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusb7.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusb7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "17708 47 207 1814"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusb7, the Euler script bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Bold 7pt ---------------------------------
+
+ font_identifier := "EUSB V2.2";
+
+ ptsize = 7;
+
+ leftside# = rightside# = 100h#;
+
+ xscale_factor := 1.21;
+
+ input eusbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusb8.mf b/Master/texmf-dist/fonts/source/public/ams/eusb8.mf
new file mode 100644
index 00000000000..cd9d87ed3b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusb8.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusb8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "34751 47 207 1813"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusb8, the Euler script bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Bold 8pt ---------------------------------
+
+ font_identifier := "EUSB V2.2";
+
+ ptsize = 8;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.18;
+
+ input eusbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusb9.mf b/Master/texmf-dist/fonts/source/public/ams/eusb9.mf
new file mode 100644
index 00000000000..e6e5ed84bea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusb9.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusb9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "49467 47 207 1813"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusb9, the Euler script bold font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Bold 9pt ---------------------------------
+
+ font_identifier := "EUSB V2.2";
+
+ ptsize = 9;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.15;
+
+ input eusbch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusbch.mf b/Master/texmf-dist/fonts/source/public/ams/eusbch.mf
new file mode 100644
index 00000000000..99e7075da87
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusbch.mf
@@ -0,0 +1,3499 @@
+%% @metafontfile{
+%% filename="eusbch.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "17832 3499 10533 114147"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the driver file for use with
+%% the Euler script bold fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Symbol Bold
+
+% ----- This font is set up as Math Symbol Font, \textfont2, page 427 of TeXbook
+% however, there are some alternate characters in nonstandard positions
+
+mode_setup;
+font_coding_scheme "TeX math symbols subset";
+
+% EULER MATH SYMBOLS BOLD PARAMETERS
+
+% These all in bitpad numbers (.001"):
+
+ programem = 3700;
+ baseline = 0;
+ ascender = capheight;
+ descender = 700;
+ depthy = 700; % depthy = 500;
+ capheight = 2600;
+ lcbody = 1800; %1700 for medium, 1800 for bold.
+ dotheight = 2600;
+ theight = 2330;
+ lfigheight = capheight;
+ nfigbody = lcbody;
+ nfigascender = ascender;
+ nfigdescender = descender;
+
+input eubase;
+
+more_side(100h#); % DEK
+
+% information for positioning of math accents --- DEK
+skewchar=oct"060"; skew#=1/36programem*h#;
+ligtable "A": skewchar kern 5skew#;
+ligtable "I": "J": skewchar kern 2skew#;
+charcode:=skewchar; shipout nullpicture;
+
+
+"aleph";
+
+charbegin( 64, 2668h#, capheight*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 5;
+t6 := 6;
+t7 := 7;
+t8 := 8;
+t9 := 10;
+t10 := 11;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((2,1), (3,2), (7,3), (8,4)) % tied points
+ ((4,5), (9,10)) % verticals
+ ((5,6), (1,10)) % horizontals
+ ((2449,529){-321,229}...{-1,1} % 0
+ (1915,952){-314,259}... % 1
+ (1601,1211){-1.551,1.262}... % 2
+ (669,1959){-932,748}...{-63,638} % 3
+ (302,2549){-112,0}...{-112,0} % 4
+ (190,2549)-- % 5
+ (190,1820){1,-1}...{257,-205} % 6
+ (699,1347){105,-87}...{105,-87} % 7
+ (804,1260){555,-387}... % 8
+ (1525,704){998,-815}...{1,-1} % 9
+ (2294,2){79,0}...{79,0} % 10
+ (2373,2)--cycle); % 11
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 7;
+t6 := 10;
+t7 := 11;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((3,3), (4,4)) % tied points
+ ((2,5), (1,7)) % verticals
+ ((6,7)) % horizontals
+ ((250,5){111,384}...{111,384} % 0
+ (361,389){0,1}... % 1
+ (426,986){337,550}...{1,1} % 2
+ (699,1347)-- % 3
+ (804,1260){-31,-7}... % 4
+ (773,1253){-580,-590}... % 5
+ (614,1051){-215,-375}... % *6
+ (558,878){0,-1}... % 7
+ (668,550){1,-1}... % 8
+ (842,462){448,-119}...{1,0} % *9
+ (1116,431){-65,-426}...{-65,-426} % 10
+ (1051,5)--cycle); % 11
+
+n := 7;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+
+adj_fill.C(1, 7) % fixed x points
+ () % fixed y points
+ ((2,6), (3,5)) % tied points
+ ((4,5)) % verticals
+ ((2,6)) % horizontals
+ ((2450,1894){-58,-19}...{-58,-19} % 0
+ (2392,1875){-10,14}... % 1
+ (2230,1977){-1,0}...{-1,0} % 2
+ (2003,1977){-156,-16}...{-156,-16} % 3
+ (1847,1961){-1,0}... % 4
+ (1593,2001){-1,1}... % 5
+ (1536,2157){0,1}...{0,392} % 6
+ (1536,2549)-- % 7
+ (1625,2549){126,-501}... % 8
+ (1684,2439){1,-1}... % 9
+ (1843,2406){1,0}... % 10
+ (2288,2406){1,0}...{0,-1} % 11
+ (2450,2259)--cycle); % 12
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 7;
+
+adj_fill.D() % fixed x points
+ () % fixed y points
+ ((1,5), (3,2), (4,1), (6,6)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1847,1961){-1,-1}... % 0
+ (1601,1300){0,-1}...{0,-1} % 1
+ (1601,1211)-- % 2
+ (1915,952){-1,1}... % 3
+ (1800,1228){0,1}... % 4
+ (1855,1732){203,749}... % *5
+ (1920,1894){147.8,245.5}...{413,187} % *6
+ (2003,1977)--cycle); % 7
+
+endchar(0);
+
+% UPPER CASE
+set_stem_round(375,380,395,395,400,420);
+
+"sbua";
+
+%charbegin( "A", 2653h#, capheight*v#, baseline );
+charbegin( "A", (2653+50)*h#, capheight*v#, baseline ); % DEK
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 8;
+t4 := 10;
+t5 := 11;
+t6 := 13;
+t7 := 15;
+t8 := 18;
+t9 := 19;
+t10 := 22;
+t11 := 23;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ ((4,1), (5,1), (8,2), (9,3), (10,4), (11,5))% tied points
+ ((3,6)) % verticals
+ ((4,7), (2,11)) % horizontals
+ ((2281,2552){-445,111}... % 0
+ (2047,2594){-1,0}... % 1
+ (1333,2313){-1,-1}... % 2
+ (1049,1852){-535,-1227}... % *3
+ (798,1086){-498,-1977}... % 4
+ (486,215){-1,-1}... % 5
+ (384,165){-1,0}... % 6
+ (306,193){-1,1}... % 7
+ (262,311){-111,503}... % 8
+ (213,437){-1,1}...{-1,0} % 9
+ (97,488)-- % 10
+ (97,488){-1,0}... % 11
+ (-49,437){-1,-1}... % 12
+ (-116,276){0,-1}... % 13
+ (-42,59){1,-1}... % 14
+ (231,-39){1,0}... % 15
+ (604,143){1,1}... % 16
+ (812,418){424,689}...{184,406} % *17
+ (1028,832){58,188}... % 18
+ (1086,1020){140,590}... % 19
+ (1322,1920){425,1266}... % *20
+ (1511,2286){1,1}...{801,184} % 21
+ (1738,2391){413,24}...{413,24} % 22
+ (2151,2415)--cycle); % 23
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 11;
+t9 := 13;
+
+adj_fill.B(1) % fixed x points
+ (9) % fixed y points
+ ((3,6), (4,7), (5,4), (6,5)) % tied points
+ ((4,7)) % verticals
+ ((2,8)) % horizontals
+ ((2666,323){-240,-505}... % 0
+ (2500,105){-1,-1}... % 1
+ (2143,-63){-1,0}... % 2
+ (1902,36){-1,1}... % 3
+ (1781,322){-164,796}...{0,1} % *4
+ (1738,832){0,188}...{0,188} % 5
+ (1738,1020){0,1371}...{0,1371} % 6
+ (1738,2391)-- % 7
+ (2151,2415){0,-1649}... % 8
+ (2151,766){0,-1}... % 9
+ (2225,212){1,-1}... % 10
+ (2345,168){1,0}... % 11
+ (2502,245){1,1}...{190,359} % 12
+ (2615,391)--cycle); % 13
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,7), (2,3), (3,2), (4,6)) % tied points
+ ((1,2)) % verticals
+ ((2,3)) % horizontals
+ ((1738,1020){-652,0}...{-652,0} % 0
+ (1086,1020)-- % 1
+ (1028,832){710,0}...{710,0} % 2
+ (1738,832)--cycle); % 3
+
+%endchar(0);
+endchar(50h#); % DEK
+
+"sbub";
+
+charbegin( "B", 2632h#, capheight*v#, baseline );
+
+n := 7;
+t1 := 0;
+t2 := 4;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 11;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ ((1,6), (3,1), (4,2), (5,3), (6,4), (7,5))% tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((286,322){1,0}... % 0
+ (584,370){483,182}... % *1
+ (769,504){235,352}... % 2
+ (878,844){147,908}...{0,1} % *3
+ (916,1412){0,998}...{0,998} % 4
+ (916,2410)-- % 5
+ (1297,2445){0,-985}...{0,-985} % 6
+ (1297,1460){-18,-210}...{-18,-210} % 7
+ (1279,1250){-118,-696}... % 8
+ (1163,817){-218,-400}... % 9
+ (1059,659){-301,-337}...{-301,-337} % 10
+ (758,322)--cycle); % 11
+
+n := 22;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 10;
+t9 := 13;
+t10 := 16;
+t11 := 17;
+t12 := 21;
+t13 := 23;
+t14 := 24;
+t15 := 26;
+t16 := 28;
+t17 := 33;
+t18 := 36;
+t19 := 37;
+t20 := 38;
+t21 := 41;
+t22 := 45;
+
+adj_fill.B(19) % fixed x points
+ (13, 14) % fixed y points
+ ((1,6), (2,5), (6,4), (7,3), (10,2), (11,1), (13,7), (14,7), (18,8),% tied points
+ (20,8))
+ ((12,15), (9,17), (4,21)) % verticals
+ ((11,16), (5,8), (3,22)) % horizontals
+ ((286,322){472,0}...{472,0} % 0
+ (758,322){947,-3}... % 1
+ (1705,319){947,-3}... % 2
+ (2033,425){1,1}... % 3
+ (2131,744){0,1}... % 4
+ (2007,1095){-1,1}... % 5
+ (1632,1272){-460,40}... % 6
+ (1350,1275){-675,-25}...{0,-1} % 7
+ (1279,1250){18,210}... % 8
+ (1297,1460){0,-1}... % 9
+ (1338,1430){1,0}... % 10
+ (1615,1444){386,69}... % 11
+ (1930,1604){1,1}... % 12
+ (2021,1890){0,1}... % 13
+ (1907,2254){-1,1}... % 14
+ (1657,2395){-610,191}...{-1,0} % *15
+ (1297,2445){-381,-35}...{-381,-35} % 16
+ (916,2410){-406,-65}... % 17
+ (534,2251){-534,-430}... % *18
+ (382,1980){0,-1}... % 19
+ (388,1899){174,-985}... % 20
+ (404,1752){0,-1}... % 21
+ (356,1631){-1,-1}...{-1,0} % 22
+ (202,1578)-- % 23
+ (202,1578){-1,0}... % 24
+ (86,1618){-1,1}... % 25
+ (24,1806){0,1}... % 26
+ (225,2209){1,1}...{381,68} % 27
+ (954,2554){349,106}...{349,106} % 28
+ (1303,2660){3,-93}...{3,-93} % 29
+ (1306,2567){1,0}... % 30
+ (1921,2509){977,-225}... % *31
+ (2283,2342){1,-1}... % 32
+ (2383,2043){0,-1}... % 33
+ (2229,1638){-1,-1}...{-335,-133} % 34
+ (1941,1432){-3,-12}... % 35
+ (1938,1420){-1.243,-.9701}...{-600,0} % 36
+ (1338,1420){600,0}... % 37
+ (1938,1420){1.6,-.8}...{9,-12} % 38
+ (1947,1408){1,0}... % 39
+ (2351,1249){1,-1}... % 40
+ (2499,892){0,-1}... % 41
+ (2319,456){-1,-1}... % 42
+ (1959,173){-638,-507}... % 43
+ (1755,43){-378,-175}... % *44
+ (1581,-2){-1471,0}...{-1471,0} % 45
+ (110,-2)--cycle); % 46
+
+endchar(0);
+
+"sbuc";
+
+charbegin( "C", 2031h#, capheight*v#, baseline );
+
+n := 17;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 8;
+t5 := 10;
+t6 := 13;
+t7 := 16;
+t8 := 18;
+t9 := 19;
+t10 := 20;
+t11 := 22;
+t12 := 25;
+t13 := 27;
+t14 := 29;
+t15 := 31;
+t16 := 33;
+t17 := 35;
+
+adj_fill.A(8, 10) % fixed x points
+ (1, 9, 17) % fixed y points
+ ((1,1), (17,1)) % tied points
+ ((2,16), (4,14), (6,12)) % verticals
+ ((3,15), (5,13), (7,11)) % horizontals
+ ((1004,1980){1,0}... % 0
+ (1125,1941){1,-1}... % 1
+ (1177,1834){0,-1}... % 2
+ (1177,1759){-102,-650}... % 3
+ (1159,1644){.1841,-1.929}... % 4
+ (1177,1594){1,-1}... % 5
+ (1337,1535){1,0}... % 6
+ (1547,1647){1,1}... % 7
+ (1681,2037){0,1}... % 8
+ (1571,2368){-1,1}... % 9
+ (1227,2489){-1,0}... % 10
+ (810,2330){-1,-1}... % 11
+ (575,1899){-318,-1070}... % *12
+ (492,1260){0,-1}... % 13
+ (575,686){318,-982}... % *14
+ (810,278){1,-1}... % 15
+ (1258,94){1,0}... % 16
+ (1563,214){1,1}...{0,1} % 17
+ (1702,581){48,28}...{48,28} % 18
+ (1750,609)-- % 19
+ (1969,382){-335,-594}... % 20
+ (1862,229){-1,-1}... % 21
+ (1095,-55){-1,0}... % 22
+ (441,173){-1,1}... % 23
+ (184,608){-347,1032}... % *24
+ (94,1205){0,1}... % 25
+ (469,2299){1,1}... % 26
+ (1339,2624){1,0}... % 27
+ (1879,2454){1,-1}... % 28
+ (2010,2073){0,-1}... % 29
+ (1830,1602){-1,-1}... % 30
+ (1334,1416){-1,0}... % 31
+ (894,1549){-1,1}... % 32
+ (800,1748){0,1}... % 33
+ (872,1933){1,1}...{1,0} % 34
+ (1004,1980)--cycle); % 35
+
+endchar(0);
+
+"sbud";
+
+charbegin( "D", 2875h#, capheight*v#, baseline );
+%call charbegin( `D, 2582h, capheight*v, baseline );
+
+n := 6;
+t1 := 0;
+t2 := 4;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 10;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ ((1,4), (3,1), (4,2), (6,3)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((261,328){1,0}... % 0
+ (569,359){494,119}... % *1
+ (755,447){1,1}... % 2
+ (857,685){138,661}... % *3
+ (893,1108){0,1}...{0,1302} % 4
+ (893,2410)-- % 5
+ (1270,2423){0,-936}... % 6
+ (1270,1487){0,-1}... % 7
+ (1221,955){-191,-855}... % *8
+ (1079,632){-276,-304}...{-276,-304} % 9
+ (803,328)--cycle); % 10
+
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+t5 := 9;
+t6 := 10;
+t7 := 14;
+t8 := 16;
+t9 := 17;
+t10 := 19;
+t11 := 21;
+t12 := 26;
+t13 := 29;
+
+adj_fill.B() % fixed x points
+ (8, 9) % fixed y points
+ ((1,4), (2,3), (5,2), (6,1), (8,5), (9,5))% tied points
+ ((7,10), (4,12)) % verticals
+ ((6,11), (3,13)) % horizontals
+ ((261,328){542,0}...{542,0} % 0
+ (803,328){931,0}... % 1
+ (1734,328){1,0}... % 2
+ (2218,516){1,1}... % 3
+ (2341,781){166,714}... % *4
+ (2384,1230){0,1}... % 5
+ (2302,1784){-314,952}... % *6
+ (2070,2182){-1,1}... % 7
+ (1746,2360){-800,241}...{-1,0} % *8
+ (1270,2423){-377,-13}...{-377,-13} % 9
+ (893,2410){-1,0}... % 10
+ (497,2272){-1,-1}... % 11
+ (383,2015){0,-1}... % 12
+ (386,1907){79,-584}... % 13
+ (404,1775){0,-1}... % 14
+ (365,1638){-1,-1}...{-1,0} % 15
+ (205,1572)-- % 16
+ (205,1572){-1,0}... % 17
+ (61,1624){-1,1}... % 18
+ (18,1795){0,1}... % 19
+ (215,2243){1,1}...{1,0} % 20
+ (893,2523){377,140}...{377,140} % 21
+ (1270,2663){0,-99}...{0,-99} % 22
+ (1270,2564){1,0}... % 23
+ (2035,2486){1227,-299}... % *24
+ (2497,2265){1,-1}... % 25
+ (2784,1437){0,-1}... % 26
+ (2444,532){-1,-1}... % 27
+ (1938,134){-779,-493}... % 28
+ (1479,0){-1,0}...{-1381,0} % 29
+ (98,0)--cycle); % 30
+
+endchar(0);
+
+"sbue";
+
+charbegin( "E", 2052h#, capheight*v#, baseline );
+
+n := 17;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 8;
+t5 := 11;
+t6 := 12;
+t7 := 15;
+t8 := 17;
+t9 := 19;
+t10 := 20;
+t11 := 23;
+t12 := 26;
+t13 := 28;
+t14 := 30;
+t15 := 32;
+t16 := 35;
+t17 := 37;
+
+adj_fill.A() % fixed x points
+ (1, 10, 17) % fixed y points
+ ((1,1), (17,1)) % tied points
+ ((9,10), (7,12), (5,13), (4,14), (2,16))% verticals
+ ((8,11), (5,6), (3,15)) % horizontals
+ ((1564,1955){-1,0}... % 0
+ (1422,2012){-1,1}... % 1
+ (1382,2108){0,1}... % 2
+ (1408,2212){232,508}... % 3
+ (1435,2325){0,1}... % 4
+ (1386,2446){-1,1}... % 5
+ (1187,2506){-1,0}... % 6
+ (891,2379){-1,-1}... % 7
+ (735,1968){0,-1}... % 8
+ (875,1611){1,-1}... % 9
+ (1107,1504){624,-145}...{1,0} % *10
+ (1499,1466){0,-107}...{0,-107} % 11
+ (1499,1359){-1,0}... % 12
+ (985,1307){-825,-201}... % *13
+ (674,1158){-1,-1}... % 14
+ (514,705){0,-1}... % 15
+ (707,248){1,-1}... % 16
+ (1109,95){1,0}... % 17
+ (1494,261){1,1}... % 18
+ (1620,611){86,768}...{73,33} % 19
+ (1693,644)-- % 20
+ (1956,391){-275,-640}... % 21
+ (1849,234){-1,-1}... % 22
+ (1084,-43){-1,0}... % 23
+ (606,7){-771,192}... % *24
+ (313,149){-1,1}... % 25
+ (100,606){0,1}... % 26
+ (307,1165){1,1}...{545,86} % 27
+ (811,1405){-520,156}... % 28
+ (497,1572){-1,1}... % 29
+ (342,1960){0,1}... % 30
+ (504,2395){1,1}... % 31
+ (1186,2620){1,0}... % 32
+ (1483,2583){493,-142}... % *33
+ (1679,2478){1,-1}... % 34
+ (1784,2241){0,-1}... % 35
+ (1709,2027){-1,-1}...{-1,0} % 36
+ (1564,1955)--cycle); % 37
+
+endchar(0);
+
+"sbuf";
+
+%charbegin( "F", 2225h#, capheight*v#, baseline );
+charbegin( "F", (2225+50)*h#, capheight*v#, baseline ); % DEK
+
+n := 14;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 14;
+t10 := 16;
+t11 := 18;
+t12 := 20;
+t13 := 23;
+t14 := 25;
+
+adj_fill.A(1, 12) % fixed x points
+ (7, 9, 12, 14) % fixed y points
+ ((3,1), (4,2), (7,3), (8,3)) % tied points
+ ((6,10)) % verticals
+ ((5,11), (2,13)) % horizontals
+ ((2533,2553){-141,-335}... % 0
+ (2369,2274){-482,-687}... % 1
+ (2251,2138){-216,-185}... % *2
+ (2153,2089){-1,0}... % 3
+ (1983,2128){-436,149}... % 4
+ (1547,2277){-1.915,.5712}...{-391,100} % 5
+ (1156,2377){-533,154}... % 6
+ (928,2424){-1,0}... % 7
+ (569,2295){-1,-1}... % 8
+ (418,2006){0,-1}... % 9
+ (436,1880){122,-737}... % 10
+ (461,1771){0,-1}...{-1,-1} % 11
+ (388,1615)-- % 12
+ (388,1615){-1,-1}... % 13
+ (247,1574){-1,0}... % 14
+ (128,1612){-1,1}... % 15
+ (64,1805){0,1}... % 16
+ (332,2332){1,1}... % 17
+ (1042,2576){1,0}...{643,-80} % 18
+ (1251,2562){295,120}...{295,120} % 19
+ (1546,2682){0,-145}...{0,-145} % 20
+ (1546,2537){586,-138}... % 21
+ (2132,2399){586,-138}... % 22
+ (2233,2383){1.895,.2631}... % 23
+ (2339,2432){123,165}...{123,165} % 24
+ (2462,2597)--cycle); % 25
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 10;
+t5 := 11;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 15;
+t10 := 16;
+t11 := 22;
+t12 := 25;
+
+adj_fill.B(4, 10) % fixed x points
+ (3) % fixed y points
+ ((1,4), (7,2), (8,1), (12,4)) % tied points
+ ((6,9)) % verticals
+ ((4,5), (2,11)) % horizontals
+ ((73,453){1,1}... % 0
+ (221,507){1,0}... % 1
+ (355,450){1,-1}... % 2
+ (436,291){216,-578}... % 3
+ (496,160){1,-1}... % 4
+ (634,110){1,0}... % 5
+ (977,284){1,1}... % 6
+ (1109,540){179,655}... % *7
+ (1156,939){0,1}...{0,1} % 8
+ (1156,1262){-579,-17}...{-579,-17} % 9
+ (577,1245){109,197}...{109,197} % 10
+ (686,1442){470,0}...{470,0} % 11
+ (1156,1442){0,935}...{0,935} % 12
+ (1156,2377)-- % 13
+ (1547,2277){-1,-835}...{-1,-835} % 14
+ (1546,1442){554,0}...{554,0} % 15
+ (2100,1442){-125,-180}...{-125,-180} % 16
+ (1975,1262){-429,0}...{-429,0} % 17
+ (1546,1262){0,-1}... % 18
+ (1474,695){-277,-946}... % *19
+ (1269,316){-1,-1}... % 20
+ (904,56){-447,-230}... % 21
+ (496,-50){-1,0}... % 22
+ (86,84){-1,1}... % 23
+ (0,289){0,1}...{1,1} % 24
+ (73,453)--cycle); % 25
+
+endchar(0);
+
+"sbug";
+
+%charbegin( "G", 2038h#, capheight*v#, depthy*v#);
+charbegin( "G", 2038h#, capheight*v#, 2/3descender*v#); % DEK
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 8;
+t6 := 11;
+t7 := 12;
+t8 := 15;
+t9 := 17;
+t10 := 19;
+t11 := 21;
+t12 := 23;
+
+adj_fill.A(1, 6, 12) % fixed x points
+ (12) % fixed y points
+ ((1,2), (12,1)) % tied points
+ ((5,8), (3,10)) % verticals
+ ((6,7), (4,9), (2,11)) % horizontals
+ ((1484,999){-244,-154}... % 0
+ (937,844){-1,0}... % 1
+ (346,1053){-1,1}... % 2
+ (104,1690){0,1}... % 3
+ (352,2325){1,1}... % 4
+ (1203,2615){1,0}... % 5
+ (1543,2575){559,-154}... % *6
+ (1762,2461){1,-1}... % 7
+ (1881,2184){0,-1}... % 8
+ (1787,1918){-1,-1}... % 9
+ (1483,1759){-1,0}...{-278,53} % 10
+ (1232,1795)-- % 11
+ (1251,1873){1,0}... % 12
+ (1395,1888){233,59}... % *13
+ (1484,1932){1,1}... % 14
+ (1539,2143){0,1}... % 15
+ (1484,2359){-1,1}... % 16
+ (1132,2474){-1,0}... % 17
+ (719,2316){-1,-1}... % 18
+ (520,1714){0,-1}... % 19
+ (749,1100){1,-1}... % 20
+ (1065,976){1,0}... % 21
+ (1401,1104){1,1}...{0,1} % 22
+ (1484,1394)--cycle); % 23
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 15;
+t9 := 18;
+t10 := 19;
+
+adj_fill.B() % fixed x points
+ (2, 10) % fixed y points
+ ((1,3), (5,2), (6,1), (10,3)) % tied points
+ ((6,7), (3,9)) % verticals
+ ((4,8)) % horizontals
+ ((130,59){1,1}... % 0
+ (280,112){1,0}... % 1
+ (432,63){1,-1}... % 2
+ (485,-86){61,-531}... % 3
+ (579,-306){1,-1}... % 4
+ (828,-365){1,0}... % 5
+ (1287,-157){1,1}... % 6
+ (1433,108){197,654}... % *7
+ (1484,497){0,1}... % 8
+ (1484,999){0,2}...{0,395} % 9
+ (1484,1394)-- % 10
+ (1859,1499){0,-760}... % 11
+ (1859,739){0,-1}... % 12
+ (1784,183){-289,-939}... % *13
+ (1570,-200){-1,-1}... % 14
+ (794,-511){-1,0}... % 15
+ (399,-469){-639,162}... % *16
+ (155,-349){-1,1}... % 17
+ (71,-113){0,1}...{1,1} % 18
+ (130,59)--cycle); % 19
+
+endchar(0);
+
+"sbuh";
+
+charbegin( "H", 3075h#, capheight*v#, baseline );
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 15;
+
+adj_fill.A(9) % fixed x points
+ (4, 6) % fixed y points
+ ((1,3), (2,1), (4,2), (5,2)) % tied points
+ ((3,7)) % verticals
+ ((2,8)) % horizontals
+ ((1322,2441){-400,0}... % 0
+ (922,2441){-1,0}... % 1
+ (627,2405){-488,-138}... % *2
+ (434,2303){-1,-1}... % 3
+ (333,2103){0,-1}... % 4
+ (372,1947){360,-826}... % 5
+ (418,1784){0,-1}...{-1,-1} % 6
+ (356,1624)-- % 7
+ (356,1624){-1,-1}... % 8
+ (211,1563){-1,0}... % 9
+ (100,1610){-1,1}... % 10
+ (16,1861){0,1}... % 11
+ (213,2302){1,1}... % 12
+ (581,2508){900,279}... % *13
+ (1113,2581){1,0}...{459,-43} % 14
+ (1422,2558)--cycle); % 15
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+t9 := 13;
+t10 := 15;
+t11 := 17;
+t12 := 18;
+
+adj_fill.B() % fixed x points
+ (2, 12) % fixed y points
+ ((1,6), (6,1), (7,3), (8,4), (9,5), (12,6))% tied points
+ ((5,8), (3,11)) % verticals
+ ((4,10)) % horizontals
+ ((42,364){1,1}... % 0
+ (183,424){1,0}... % 1
+ (280,393){1,-1}... % 2
+ (350,238){219,-688}... % 3
+ (406,164){1,-1}... % 4
+ (516,123){1,0}... % 5
+ (715,222){1,1}... % 6
+ (803,370){153.5,389.3}... % *7
+ (869,611){207,1120}... % *8
+ (922,1342){0,1}...{0,1099} % 9
+ (922,2441)-- % 10
+ (1322,2441){0,-1005}...{0,-1005} % 11
+ (1322,1436){0,-183}...{0,-183} % 12
+ (1322,1253){0,-1}... % 13
+ (971,250){-1,-1}... % 14
+ (352,-42){-1,0}... % 15
+ (70,65){-1,1}... % 16
+ (-4,225){0,1}...{1,1} % 17
+ (42,364)--cycle); % 18
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,8), (2,4), (3,5), (4,7)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((2040,1436){-718,0}...{-718,0} % 0
+ (1322,1436)-- % 1
+ (1322,1253){701,0}...{701,0} % 2
+ (2023,1253)--cycle); % 3
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 9;
+t5 := 12;
+t6 := 14;
+t7 := 15;
+t8 := 17;
+t9 := 21;
+t10 := 22;
+t11 := 24;
+t12 := 27;
+
+adj_fill.D(1, 7) % fixed x points
+ (2, 6) % fixed y points
+ ((1,9), (9,7), (10,8), (12,9)) % tied points
+ ((4,9)) % verticals
+ ((5,8), (3,11)) % horizontals
+ ((3100,2281){-1,-1}... % 0
+ (2970,2206){-1,0}... % 1
+ (2871,2240){-1,1}... % 2
+ (2826,2306){-178,585}... % 3
+ (2796,2372){-1,1}... % 4
+ (2722,2384){-1,0}... % 5
+ (2618,2337){-1,-1}... % 6
+ (2511,2145){-169,-502}... % *7
+ (2449,1835){-122,-1166}... % 8
+ (2410,1091){0,-1}... % 9
+ (2452,524){163,-872}... % *10
+ (2573,219){1,-1}... % 11
+ (2709,167){1,0}... % 12
+ (2887,270){1,1}...{270,454} % 13
+ (2994,406)-- % 14
+ (3059,340){-338,-529}... % 15
+ (2959,176){-1,-1}... % 16
+ (2465,-46){-1,0}... % 17
+ (2215,76){-1,1}... % 18
+ (2129,221){-145.6,385.1}... % *19
+ (2069,461){-192,1177}...{0,1} % *20
+ (2023,1253){17,183}...{17,183} % 21
+ (2040,1436){161,1254}... % 22
+ (2453,2380){1,1}... % 23
+ (2916,2598){1,0}... % 24
+ (3084,2542){1,-1}... % 25
+ (3150,2416){0,-1}...{-1,-1} % 26
+ (3100,2281)--cycle); % 27
+
+endchar(0);
+
+"sbui";
+
+charbegin( "I", 1646h#, capheight*v#, baseline );
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 13;
+t8 := 14;
+
+adj_fill.A(8) % fixed x points
+ (4, 5) % fixed y points
+ ((1,3), (2,1), (4,2), (5,2)) % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((1434,2435){-414,17}...{-414,17} % 0
+ (1020,2452){-1,0}... % 1
+ (553,2302){-1,-1}... % 2
+ (490,2077){0,-1}... % 3
+ (521,1977){271,-696}... % 4
+ (561,1805){0,-1}... % 5
+ (502,1646){-1,-1}...{-1,0} % 6
+ (329,1573)-- % 7
+ (329,1573){-1,0}... % 8
+ (205,1628){-1,1}... % 9
+ (130,1864){0,1}... % 10
+ (341,2324){1,1}... % 11
+ (711,2527){917,274}... % *12
+ (1258,2598){1,0}...{552,-71} % 13
+ (1543,2569)--cycle); % 14
+
+n := 9;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 14;
+t8 := 16;
+t9 := 18;
+
+adj_fill.B(1, 8) % fixed x points
+ (1, 9) % fixed y points
+ ((1,4), (4,1), (5,3), (9,4)) % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((210,489){1,0}... % 0
+ (361,413){1,-1}... % 1
+ (426,258){233,-681}... % 2
+ (466,163){1,-1}... % 3
+ (622,102){1,0}... % 4
+ (826,199){1,1}... % 5
+ (970,514){194,853}... % *6
+ (1020,1052){0,1}...{0,1400} % 7
+ (1020,2452)-- % 8
+ (1434,2435){-1,-726}... % 9
+ (1433,1709){0,-1}... % 10
+ (1402,1078){-122,-1070}... % *11
+ (1311,639){-145,-405}... % 12
+ (1071,223){-1,-1}... % 13
+ (453,-65){-1,0}... % 14
+ (100,71){-1,1}... % 15
+ (-9,284){0,1}... % 16
+ (58,447){1,1}...{1,0} % 17
+ (210,489)--cycle); % 18
+
+endchar(0);
+
+"sbuj";
+
+%charbegin( "J", 1674h#, capheight*v#, depthy*v#);
+charbegin( "J", 1674h#, capheight*v#, 2/3descender*v#); % DEK
+
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+
+adj_fill.A(9) % fixed x points
+ (4, 6) % fixed y points
+ ((1,3), (2,1), (4,2), (5,2)) % tied points
+ ((3,7)) % verticals
+ ((1,8)) % horizontals
+ ((1658,2523){-201,-120}...{-201,-120} % 0
+ (1457,2403){-414,0}...{-414,0} % 1
+ (1043,2403){-324,-59}... % 2
+ (640,2210){-1,-1}... % 3
+ (509,1954){0,-1}... % 4
+ (514,1864){80,-769}... % 5
+ (530,1761){0,-1}...{-1,-1} % 6
+ (479,1627)-- % 7
+ (479,1627){-1,-1}... % 8
+ (313,1549){-1,0}... % 9
+ (198,1576){-1,1}... % 10
+ (128,1754){0,1}... % 11
+ (353,2186){1,1}... % 12
+ (1467,2592){1,0}...{310,-35} % 13
+ (1667,2581)--cycle); % 14
+
+n := 11;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 10;
+t5 := 11;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 17;
+t10 := 19;
+t11 := 23;
+
+adj_fill.B(1, 11) % fixed x points
+ (1, 11) % fixed y points
+ ((1,4), (4,4), (5,5), (6,1), (7,3), (11,5))% tied points
+ ((5,8), (2,10)) % verticals
+ ((3,9)) % horizontals
+ ((1043,1123){-1,0}... % 0
+ (987,1111){-629,-376}... % 1
+ (626,841){-1,-1}... % 2
+ (279,0){0,-1}... % 3
+ (393,-295){1,-1}... % 4
+ (582,-361){1,0}... % 5
+ (701,-323){257,148}... % *6
+ (839,-213){1,1}... % 7
+ (990,124){204,920}... % *8
+ (1043,707){0,1}...{0,416} % 9
+ (1043,1123){0,136}...{0,136} % 10
+ (1043,1259){0,1144}...{0,1144} % 11
+ (1043,2403)-- % 12
+ (1457,2403){-5,-1369}... % 13
+ (1452,1034){0,-1}... % 14
+ (1371,265){-313,-1242}... % *15
+ (1139,-208){-1,-1}... % 16
+ (467,-508){-1,0}... % 17
+ (131,-397){-1,1}... % 18
+ (0,-41){0,1}... % 19
+ (127,413){488,930}... % *20
+ (488,889){1,1}... % 21
+ (956,1218){599,296}...{749,285} % 22
+ (1043,1259)--cycle); % 23
+
+endchar(0);
+
+"sbuk";
+
+charbegin( "K", 2847h#, capheight*v#, baseline );
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 15;
+
+adj_fill.A(9) % fixed x points
+ (4, 6) % fixed y points
+ ((1,3), (2,1), (4,2), (5,2)) % tied points
+ ((3,7)) % verticals
+ ((2,8)) % horizontals
+ ((1324,2429){-381,0}... % 0
+ (943,2429){-1,0}... % 1
+ (654,2395){-474,-129}... % *2
+ (469,2300){-1,-1}... % 3
+ (347,2078){0,-1}... % 4
+ (385,1956){264,-501}... % 5
+ (430,1807){0,-1}...{-1,-1} % 6
+ (377,1647)-- % 7
+ (377,1647){-1,-1}... % 8
+ (207,1567){-1,0}... % 9
+ (81,1637){-1,1}... % 10
+ (-3,1876){0,1}... % 11
+ (236,2334){1,1}... % 12
+ (589,2523){885,256}... % *13
+ (1121,2590){1,0}...{198,-12} % 14
+ (1409,2558)--cycle); % 15
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+t11 := 18;
+
+adj_fill.B(1, 10) % fixed x points
+ (2, 11) % fixed y points
+ ((1,6), (5,1), (6,3), (7,4), (8,5), (11,6))% tied points
+ ((4,7)) % verticals
+ ((3,9)) % horizontals
+ ((32,374){1,1}... % 0
+ (199,433){1,0}... % 1
+ (290,403){1,-1}... % 2
+ (365,263){265,-649}... % 3
+ (410,171){1,-1}... % 4
+ (539,132){1,0}... % 5
+ (624,163){192,118}... % *6
+ (731,250){1,1}... % 7
+ (888,586){212,901}...{0,1} % *8
+ (943,1151){0,1278}...{0,1278} % 9
+ (943,2429)-- % 10
+ (1324,2429){0,-1043}...{0,-1043} % 11
+ (1324,1386){0,-156}...{0,-156} % 12
+ (1324,1230){0,-1}... % 13
+ (943,252){-1,-1}... % 14
+ (355,-31){-1,0}... % 15
+ (65,71){-1,1}... % 16
+ (-12,238){0,1}...{1,1} % 17
+ (32,374)--cycle); % 18
+
+n := 3;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,4), (2,5), (3,7)) % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((1378,1386){-54,0}...{-54,0} % 0
+ (1324,1386)-- % 1
+ (1324,1230){48,0}...{48,0} % 2
+ (1372,1230)--cycle); % 3
+
+n := 9;
+t1 := 2;
+t2 := 5;
+t3 := 9;
+t4 := 12;
+t5 := 13;
+t6 := 14;
+t7 := 17;
+t8 := 23;
+t9 := 25;
+
+adj_fill.D() % fixed x points
+ (6, 9) % fixed y points
+ ((2,7), (4,8), (5,8)) % tied points
+ () % verticals
+ ((3,7), (1,8)) % horizontals
+ ((2857,482){-138,-276}... % 0
+ (2605,82){-1,-1}... % 1
+ (2342,-34){-1,0}... % 2
+ (2016,100){-1,1}... % 3
+ (1809,396){-220,413}...{-437,834} % 4
+ (1372,1230){0,156}...{0,156} % 5
+ (1372,1386){818,1005}... % 6
+ (2190,2391){1,1}... % 7
+ (2404,2563){391,233}... % *8
+ (2581,2624){1,0}... % 9
+ (2781,2539){1,-1}... % 10
+ (2847,2381){0,-1}...{-1,-1} % 11
+ (2773,2190)-- % 12
+ (2773,2190){-1,-1}... % 13
+ (2631,2117){-1,0}... % 14
+ (2503,2147){-1,1}... % 15
+ (2468,2212){-121,575}... % 16
+ (2385,2303){-1,0}... % 17
+ (2211,2197){-1,-1}... % 18
+ (2055,2032){-384,-506}...{-384,-506} % 19
+ (1671,1526){285,-564}... % 20
+ (1956,962){285,-564}... % 21
+ (2358,369){1,-1}... % 22
+ (2533,302){1,0}... % 23
+ (2655,364){1,1}...{163,277} % 24
+ (2793,540)--cycle); % 25
+
+endchar(0);
+
+"sbul";
+
+charbegin( "L", 2449h#, capheight*v#, baseline );
+rot := identity slanted -1/6; % DEK
+
+n := 9;
+t1 := 0;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 17;
+t9 := 20;
+
+adj_fill.A(5) % fixed x points
+ (6, 9) % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((1,9)) % verticals
+ ((3,7), (2,8)) % horizontals
+% ((2231,1026){0,-1}... % 0
+% (2205,845){-26,-181}... % 1
+% (2147,599){-146,-399}... % *2
+% (2059,446){-1,-1}... % 3
+% (1762,330){-1,0}... % 4
+ (((2231,1026){0,-1}... % 0 % DEK
+ (2205,845){-26,-181}... % 1
+ (2147,599){-146,-399}... % *2
+ (2059,446){-1,-1}... % 3
+ (1762,330){-1,0})slanted1/6{-1,0}... % 4
+ (1171,501){-752,300}...{-1,0} % 5
+ (559,677){-64,94}...{-64,94} % 6
+ (495,771){-1,-1}... % 7
+ (376,665){-348,-280}... % 8
+ (220,530){-1,-1}...{-105,-473} % 9
+ (-8,49)-- % 10
+ (73,4){172,441}... % 11
+ (232,297){1,1}... % 12
+ (452,377){1,0}... % 13
+ (649,334){478,-168}... % *14
+ (930,209){1115,-578}... % 15
+ (1350,19){701,-255}... % *16
+% (1631,-46){1,0}... % 17
+% (2090,168){1,1}... % 18
+% (2326,775){1,252}...{0,1} % 19
+% (2327,1027)--cycle); % 20
+ {1,0}((1631,-46){1,0}... % 17 % DEK
+ (2090,168){1,1}... % 18
+ (2326,775){1,252}...{0,1} % 19
+ (2327,1027))slanted1/6--cycle); % 20
+
+n := 8;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 9;
+t5 := 10;
+t6 := 16;
+t7 := 18;
+t8 := 20;
+
+adj_fill.B() % fixed x points
+ (1, 8) % fixed y points
+ ((1,3), (4,2), (5,1), (8,3)) % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((1968,2050){1,0}... % 0
+ (2108,2106){1,1}... % 1
+ (2189,2315){0,1}... % 2
+ (2110,2518){-1,1}... % 3
+ (1744,2628){-1,0}... % 4
+ (1077,2388){-1,-1}... % 5
+ (830,1978){-377,-1010}... % *6
+ (700,1378){-100,-1036}... % 7
+ (626,1006){-205,-607}...{-1,-1} % *8
+ (495,771)-- % 9
+ (559,677){445,342}... % 10
+ (912,969){1,1}... % 11
+ (1066,1258){275,802}... % *12
+ (1187,1771){172,1050}... % 13
+ (1284,2201){211,658}... % *14
+ (1398,2429){1,1}... % 15
+ (1577,2478){1,0}... % 16
+ (1712,2429){1,-1}... % 17
+ (1763,2267){93,-883}... % 18
+ (1820,2089){1,-1}...{1,0} % 19
+ (1968,2050)--cycle); % 20
+
+endchar(0);
+
+"sbum";
+
+charbegin( "M", 3437h#, capheight*v#, baseline );
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 8;
+t5 := 9;
+t6 := 13;
+t7 := 15;
+t8 := 16;
+
+adj_fill.A() % fixed x points
+ (4) % fixed y points
+ ((1,3), (4,1), (5,2), (8,3)) % tied points
+ ((4,5), (3,7)) % verticals
+ ((2,6)) % horizontals
+ ((40,332){1,1}... % 0
+ (184,397){1.846,.05676}... % 1
+ (300,353){1,-1}... % 2
+ (342,255){127,-397}... % 3
+ (429,166){1,0}... % 4
+ (567,220){1,1}... % 5
+ (708,505){190,746}... % *6
+ (757,966){0,1}...{0,1134} % 7
+ (757,2100)-- % 8
+ (917,1912){0,-825}... % 9
+ (917,1087){0,-1}... % 10
+ (843,508){-285,-967}... % *11
+ (632,120){-1,-1}... % 12
+ (270,-47){-1,0}... % 13
+ (63,31){-1,1}... % 14
+ (-9,205){0,1}...{1,1} % 15
+ (40,332)--cycle); % 16
+
+n := 15;
+t1 := 0;
+t2 := 4;
+t3 := 5;
+t4 := 8;
+t5 := 9;
+t6 := 12;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+t10 := 18;
+t11 := 20;
+t12 := 24;
+t13 := 27;
+t14 := 29;
+t15 := 31;
+
+adj_fill.B(1, 14) % fixed x points
+ (1, 5, 9, 12, 15) % fixed y points
+ ((1,6), (2,4), (3,5), (6,2), (7,1), (15,6))% tied points
+ ((9,10), (4,5)) % verticals
+ ((8,11), (2,13)) % horizontals
+ ((3275,2242){-1,0}... % 0
+ (3191,2281){-1,1}... % 1
+ (3143,2359){-87,437}... % 2
+ (3056,2457){-1,0}...{-1,-1} % 3
+ (2983,2421){-466,-299}...{-466,-299} % 4
+ (2517,2122){-152,-190}... % 5
+ (2057,1265){-712,-1994}...{-107,-958} % *6
+ (1805,128){-16,-44}...{-16,-44} % 7
+ (1789,84){-302,-130}...{-302,-130} % 8
+ (1487,-46){-41,561}... % 9
+ (1216,1256){-110,370}... % 10
+ (1074,1647){-299,656}...{-378,465} % *11
+ (917,1912){-160,188}...{-160,188} % 12
+ (757,2100){-329,438}... % 13
+ (655,2216){-1,1}... % 14
+ (357,2365){-1,0}... % 15
+ (209,2304){-1,-1}...{-35,-284} % 16
+ (68,1990)-- % 17
+ (-12,2005){0,1}... % 18
+ (168,2494){1,1}... % 19
+ (587,2627){1,0}... % 20
+ (1017,2434){1,-1}... % 21
+ (1307,2022){540,-1022}... % *22
+ (1557,1412){358,-1107}...{122,-476} % 23
+ (1746,778){433,1546}... % 24
+ (2087,1670){788,1526}... % *25
+ (2534,2304){1,1}... % 26
+ (3189,2599){1,0}... % 27
+ (3408,2527){1,-1}... % 28
+ (3451,2429){0,-1}... % 29
+ (3408,2313){-1,-1}...{-1,0} % 30
+ (3275,2242)--cycle); % 31
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 5.587;
+t5 := 6;
+t6 := 7;
+t7 := 8;
+t8 := 12;
+t9 := 14;
+
+adj_fill.C(1, 4) % fixed x points
+ (9) % fixed y points
+ ((5,5), (6,4)) % tied points
+ ((3,7)) % verticals
+ ((2,8)) % horizontals
+ ((3434,312){-207,-382}... % 0
+ (3271,90){-1,-1}... % 1
+ (2932,-64){-1,0}... % 2
+ (2673,29){-1,1}... % 3
+ (2566,283){-155,722}... % *4
+ (2518,751){-14,519}...{47,836} % 5
+ (2517,2122)-- % 6
+ (2983,2421){-1,-1}... % 7
+ (2891,1722){0,-1}... % 8
+ (2921,595){34,-462}... % 9
+ (2960,319){105,-424}... % *10
+ (3026,171){1,-1}... % 11
+ (3117,140){1,0}... % 12
+ (3243,221){1,1}...{288,408} % 13
+ (3375,369)--cycle); % 14
+
+endchar(0);
+
+"sbun";
+
+charbegin( "N", 2666h#, capheight*v#, baseline );
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 8;
+t5 := 9;
+t6 := 14;
+t7 := 16;
+t8 := 17;
+
+adj_fill.A(1, 7) % fixed x points
+ (2, 4) % fixed y points
+ ((1,3), (4,1), (5,2), (8,3)) % tied points
+ ((4,5)) % verticals
+ ((3,6)) % horizontals
+ ((47,336){1,1}... % 0
+ (183,393){1,0}... % 1
+ (302,355){1,-1}... % 2
+ (352,274){156,-292}... % 3
+ (444,192){1,0}... % 4
+ (546,242){1,1}... % 5
+ (671,598){153,1240}... % *6
+ (699,1482){0,1}...{0,630} % 7
+ (699,2112)-- % 8
+ (853,1912){0,-402}... % 9
+ (853,1510){0,-1}... % 10
+ (778,598){-287,-1419}... % *11
+ (688,287){-212.4,-506.6}... % *12
+ (566,91){-1,-1}... % 13
+ (271,-40){-1,0}... % 14
+ (45,50){-1,1}... % 15
+ (2,172){0,1}...{1,1} % 16
+ (47,336)--cycle); % 17
+
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6.49;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 14;
+t9 := 15;
+t10 := 18;
+t11 := 22;
+t12 := 23;
+t13 := 26;
+t14 := 28;
+t15 := 30;
+
+adj_fill.B() % fixed x points
+ (3, 9, 11) % fixed y points
+ ((1,4), (5,2), (6,1), (15,4)) % tied points
+ ((8,9), (4,12), (2,14)) % verticals
+ ((7,10), (1,13)) % horizontals
+ ((2626,2265){-1,0}... % 0
+ (2515,2346){-60,317}... % 1
+ (2501,2414){-1,1}... % 2
+ (2448,2446){-1,0}... % 3
+ (2404,2429){-1,-1}... % 4
+ (2338,2250){-92,-652}... % *5
+ (2312,1777){-13,-392}...{42,-767} % 6
+ (2319,100){-265,-147}...{-265,-147} % 7
+ (2054,-47){-183,340}... % 8
+ (1420,1069){-351,559}...{-411,584} % 9
+ (853,1912){-154,200}...{-154,200} % 10
+ (699,2112){-282,314}... % 11
+ (342,2314){-1,0}... % 12
+ (181,2258){-1,-1}...{-96,-539} % 13
+ (70,1979)-- % 14
+ (-18,1978){0,1}... % 15
+ (18,2261){137,471}... % *16
+ (119,2449){1,1}... % 17
+ (549,2599){1,0}... % 18
+ (968,2408){1,-1}... % 19
+ (1294,2014){700,-972}... % *20
+ (1668,1436){501,-843}...{501,-843} % 21
+ (2169,593){0,1293}... % 22
+ (2169,1886){0,1293}... % 23
+ (2208,2266){151,612}... % *24
+ (2320,2498){1,1}... % 25
+ (2614,2634){1,0}... % 26
+ (2770,2568){1,-1}... % 27
+ (2826,2457){0,-1}... % 28
+ (2783,2331){-1,-1}...{-1,0} % 29
+ (2626,2265)--cycle); % 30
+
+endchar(0);
+
+"sbuo";
+
+charbegin( "O", 2420h#, capheight*v#, baseline );
+
+n := 15;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 10;
+t6 := 13;
+t7 := 16;
+t8 := 18;
+t9 := 19;
+t10 := 21;
+t11 := 24;
+t12 := 27;
+t13 := 30;
+t14 := 32;
+t15 := 34;
+
+adj_fill.A(8) % fixed x points
+ (9, 11) % fixed y points
+ ((1,1), (15,1)) % tied points
+ ((2,14), (5,12), (7,10)) % verticals
+ ((1,3), (4,13), (6,10)) % horizontals
+ ((1031,1539){1,0}... % 0
+ (1176,1606){1,1}... % 1
+ (1236,1776){0,1}... % 2
+ (1200,1866){-136,191}... % *3
+ (1100,1967){-605,479}... % 4
+ (996,2144){0,1}... % 5
+ (1076,2326){1,1}... % 6
+ (1365,2447){1,0}... % 7
+ (1641,2319){1,-1}... % 8
+ (1836,1920){263,-1049}... % *9
+ (1904,1270){0,-1}... % 10
+ (1835,657){-267,-1002}... % *11
+ (1637,268){-1,-1}... % 12
+ (1162,84){-1,0}... % 13
+ (762,255){-1,1}... % 14
+ (522,692){-324,1081}... % *15
+ (438,1336){0,1}... % 16
+ (507,2025){266,1104}...{1,1} % *17
+ (704,2440)-- % 18
+ (654,2480){-294,-143}... % 19
+ (419,2316){-1,-1}... % 20
+ (47,1274){0,-1}... % 21
+ (132,647){327,-1060}... % *22
+ (374,214){1,-1}... % 23
+ (1105,-73){1,0}... % 24
+ (1962,262){1,1}... % 25
+ (2225,723){356,1117}... % *26
+ (2318,1379){0,1}... % 27
+ (2239,2009){-305,1049}... % *28
+ (2013,2428){-1,1}... % 29
+ (1551,2617){-1,0}... % 30
+ (965,2393){-1,-1}... % 31
+ (780,1908){0,-1}... % 32
+ (882,1605){1,-1}...{1,0} % 33
+ (1031,1539)--cycle); % 34
+
+endchar(0);
+
+"sbup";
+
+charbegin( "P", 2246h#, capheight*v#, baseline );
+
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+t11 := 22;
+t12 := 24;
+
+adj_fill.A(1, 12) % fixed x points
+ (6, 8) % fixed y points
+ ((1,5), (3,1), (4,2), (6,3), (7,3), (12,4))% tied points
+ ((5,9), (2,11)) % verticals
+ ((4,10), (1,12)) % horizontals
+ ((1277,1171){287,36}... % 0
+ (1677,1344){1,1}... % 1
+ (1830,1816){0,1}... % 2
+ (1675,2256){-1,1}...{-1,0} % 3
+ (1277,2406){-380,0}...{-380,0} % 4
+ (897,2406){-1,0}... % 5
+ (610,2373){-469,-126}... % *6
+ (428,2280){-1,-1}... % 7
+ (326,2091){0,-1}... % 8
+ (382,1913){265,-570}... % 9
+ (424,1806){0,-1}...{-1,-1} % 10
+ (367,1622)-- % 11
+ (367,1622){-1,-1}... % 12
+ (209,1560){-1,0}... % 13
+ (76,1601){-1,1}... % 14
+ (4,1861){0,1}... % 15
+ (203,2298){1,1}...{1,0} % 16
+ (978,2558){299,78}...{299,78} % 17
+ (1277,2636){0,-84}...{0,-84} % 18
+ (1277,2552){1,0}... % 19
+ (1773,2489){827,-241}... % *20
+ (2104,2311){1,-1}... % 21
+ (2230,1889){0,-1}... % 22
+ (2009,1332){-1,-1}...{-354,-14} % 23
+ (1277,1050)--cycle); % 24
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 13;
+t10 := 15;
+t11 := 16;
+
+adj_fill.B() % fixed x points
+ (2, 11) % fixed y points
+ ((1,6), (5,2), (6,1), (7,5), (8,4), (11,6))% tied points
+ ((5,6), (3,10)) % verticals
+ ((4,9)) % horizontals
+ ((58,351){1,1}... % 0
+ (236,437){1,0}... % 1
+ (399,268){119,-395}... % 2
+ (462,152){150,-160}... % *3
+ (549,108){1,0}... % 4
+ (714,195){1,1}... % 5
+ (849,510){183,875}... % *6
+ (897,1070){0,1}...{0,1336} % 7
+ (897,2406)-- % 8
+ (1277,2406){0,-1235}...{0,-1235} % 9
+ (1277,1171){0,-121}...{0,-121} % 10
+ (1277,1050){-75,-770}... % 11
+ (930,183){-1,-1}... % 12
+ (382,-47){-1,0}... % 13
+ (80,62){-1,1}... % 14
+ (8,235){0,1}...{1,1} % 15
+ (58,351)--cycle); % 16
+
+endchar(0);
+
+"sbuq";
+
+addleft:=55h#;
+
+charbegin( "Q", 2253h#+addleft, capheight*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 9;
+t5 := 13;
+t6 := 14;
+t7 := 17;
+t8 := 19;
+t9 := 22;
+t10 := 24;
+
+adj_fill.A(1, 5, 6) % fixed x points
+ (10) % fixed y points
+ ((1,2), (10,1)) % tied points
+ ((4,7), (2,9)) % verticals
+ ((5,6), (3,8)) % horizontals
+ ((1105,435){175,31}... % 0
+ (1464,632){1,1}... % 1
+ (1655,1000){258,939}... % *2
+ (1722,1571){0,1}... % 3
+ (1662,2036){-231,778}... % *4
+ (1491,2349){-1,1}... % 5
+ (1118,2493){-1,0}... % 6
+ (636,2316){-1,-1}... % 7
+ (455,2000){-245,-763}... % *8
+ (391,1553){0,-1}... % 9
+ (433,1147){163,-654}... % *10
+ (554,899){1,-1}... % 11
+ (689,818){351,-138}...{347,-60} % *12
+ (905,761)-- % 13
+ (905,676){-419,18}... % 14
+ (516,743){-656,222}... % *15
+ (249,898){-1,1}... % 16
+ (-16,1570){0,1}... % 17
+ (253,2303){1,1}... % 18
+ (1166,2609){1,0}... % 19
+ (1574,2553){692,-217}... % *20
+ (1858,2392){1,-1}... % 21
+ (2143,1587){0,-1}... % 22
+ (1846,699){-1,-1}...{-327,-94} % 23
+ (1281,388)--cycle); % 24
+
+n := 8;
+t1 := 2;
+t2 := 4;
+t3 := 6;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 14;
+
+adj_fill.B() % fixed x points
+ (3, 8) % fixed y points
+ ((5,2), (6,1)) % tied points
+ () % verticals
+ ((2,4), (1,7)) % horizontals
+ ((2220,656){-116,-337}... % 0
+ (1925,109){-1,-1}... % 1
+ (1601,-47){-1,0}... % 2
+ (1052,41){-959,204}... % 3
+ (499,118){-1,0}... % 4
+ (276,38){-1,-1}...{-172,-337} % 5
+ (148,-156)-- % 6
+ (71,-110){151,468}... % 7
+ (349,376){1,1}... % 8
+ (654,472){1,0}...{264,-34} % 9
+ (1105,435){176,-47}...{176,-47} % 10
+ (1281,388){469,-103}... % 11
+ (1704,334){1,0}... % 12
+ (2030,468){1,1}...{163,473} % 13
+ (2153,679)--cycle); % 14
+
+endchar(addleft);
+
+"sbur";
+
+charbegin( "R", 2476h#, capheight*v#, baseline );
+
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 11;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 23;
+t12 := 25;
+t13 := 26;
+t14 := 27;
+
+adj_fill.A(1, 14) % fixed x points
+ (6, 8) % fixed y points
+ ((1,6), (3,1), (6,2), (7,2), (12,3), (13,4), (14,5))% tied points
+ ((5,9), (2,11)) % verticals
+ ((4,10), (1,13)) % horizontals
+ ((1346,1233){1,0}... % 0
+ (1757,1422){1,1}... % 1
+ (1910,1921){0,1}... % 2
+ (1780,2306){-1,1}... % 3
+ (1609,2396){-434,121}...{-1,0} % *4
+ (1346,2427){-409,0}...{-409,0} % 5
+ (937,2427){-1,0}... % 6
+ (642,2388){-496,-151}... % *7
+ (441,2276){-1,-1}... % 8
+ (356,2075){0,-1}... % 9
+ (388,1965){247,-407}... % 10
+ (446,1814){0,-1}...{-1,-1} % 11
+ (407,1650)-- % 12
+ (407,1650){-1,-1}... % 13
+ (249,1573){-1,0}... % 14
+ (123,1617){-1,1}... % 15
+ (17,1884){0,1}... % 16
+ (216,2299){1,1}...{1,0} % 17
+ (1019,2565){327,83}...{327,83} % 18
+ (1346,2648){0,-82}...{0,-82} % 19
+ (1346,2566){1,0}... % 20
+ (1891,2509){878,-219}... % *21
+ (2224,2347){1,-1}... % 22
+ (2345,1992){0,-1}... % 23
+ (2176,1510){-1,-1}... % 24
+ (1827,1265){-341,-153}...{-341,-153} % 25
+ (1486,1112){-140,28}...{-140,28} % 26
+ (1346,1140)--cycle); % 27
+
+n := 8;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 17;
+
+adj_fill.B(1) % fixed x points
+ (1, 8) % fixed y points
+ ((1,7), (4,1), (5,6), (6,5), (8,7)) % tied points
+ ((3,5)) % verticals
+ ((2,7)) % horizontals
+ ((166,445){1,0}... % 0
+ (310,399){1,-1}... % 1
+ (370,293){102,-469}... % 2
+ (427,171){1,-1}... % 3
+ (534,136){1,0}... % 4
+ (697,209){1,1}... % 5
+ (899,586){273,946}... % *6
+ (970,1155){0,1}...{0,1272} % 7
+ (970,2427)-- % 8
+ (1346,2427){0,-1194}...{0,-1194} % 9
+ (1346,1233){0,-93}...{0,-93} % 10
+ (1346,1140){-66,-608}... % 11
+ (967,255){-1,-1}... % 12
+ (369,-38){-1,0}... % 13
+ (75,73){-1,1}... % 14
+ (-6,249){0,1}... % 15
+ (47,392){1,1}...{1,0} % 16
+ (166,445)--cycle); % 17
+
+n := 5;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+
+adj_fill.C() % fixed x points
+ (1) % fixed y points
+ ((3,3), (4,4)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((2596,490){-198,-305}... % 0
+ (2485,370){-1,-1}... % 1
+ (2369,312){-1,0}... % 2
+ (2282,354){-254,222}... % 3
+ (2074,664){-455,911}...{-276,773} % *4
+ (1827,1265)-- % 5
+ (1486,1112){338,-822}... % 6
+ (1824,290){338,-822}... % 7
+ (1984,19){1,-1}... % 8
+ (2164,-43){1,0}... % 9
+ (2433,106){1,1}...{160,296} % 10
+ (2658,434)--cycle); % 11
+
+endchar(0);
+
+"sbus";
+
+%charbegin( "S", 1812h#, capheight*v#, baseline );
+charbegin( "S", (1812-50)*h#, capheight*v#, baseline ); % DEK
+
+n := 20;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 11;
+t7 := 16;
+t8 := 18;
+t9 := 20;
+t10 := 22;
+t11 := 23;
+t12 := 26;
+t13 := 28;
+t14 := 31;
+t15 := 35;
+t16 := 37;
+t17 := 39;
+t18 := 41;
+t19 := 43;
+t20 := 45;
+
+adj_fill.A(10) % fixed x points
+ (1, 20) % fixed y points
+ ((1,1), (20,1)) % tied points
+ ((9,12), (7,14), (6,15), (4,17), (2,19))% verticals
+ ((10,11), (8,13), (5,16), (3,18)) % horizontals
+ ((648,653){1,0}... % 0
+ (798,727){1,1}... % 1
+ (837,823){0,1}... % 2
+ (764,1000){-1,1}... % 3
+ (526,1084){-1,0}... % 4
+ (80,946){-1,-1}... % 5
+ (-78,520){0,-1}... % 6
+ (41,166){1,-1}... % 7
+ (653,-66){1,0}... % 8
+ (1124,3){808,264}... % *9
+ (1461,198){1,1}... % 10
+ (1714,756){0,1}... % 11
+ (1529,1260){-1,1}... % 12
+ (1382,1367){-545,329}... % *13
+ (984,1589){-946,522}... % 14
+ (676,1813){-1,1}... % 15
+ (520,2142){0,1}... % 16
+ (644,2405){1,1}... % 17
+ (946,2501){1,0}... % 18
+ (1229,2389){1,-1}... % 19
+ (1288,2217){0,-1}... % 20
+ (1224,2046){-1,-1}...{-269,-55} % 21
+ (1061,1973)-- % 22
+ (1070,1902){426,-73}... % 23
+ (1208,1891){1,0}... % 24
+ (1531,2036){1,1}... % 25
+ (1617,2239){0,1}... % 26
+ (1537,2463){-1,1}... % 27
+ (1024,2644){-1,0}... % 28
+ (611,2594){-683,-193}... % *29
+ (341,2451){-1,-1}... % 30
+ (191,2036){0,-1}... % 31
+ (341,1568){1,-1}... % 32
+ (783,1252){973,-509}... % 33
+ (1175,990){1,-1}... % 34
+ (1334,599){0,-1}... % 35
+ (1199,263){-1,-1}... % 36
+ (754,86){-1,0}... % 37
+ (347,241){-1,1}... % 38
+ (202,641){0,1}... % 39
+ (290,893){1,1}... % 40
+ (390,943){1,0}... % 41
+ (477,902){1,-1}... % 42
+ (516,788){69,-357}... % 43
+ (538,708){1,-1}...{1,0} % 44
+ (648,653)--cycle); % 45
+
+endchar(0);
+
+"sbut";
+
+%charbegin( "T", 2043h#, capheight*v#, baseline );
+charbegin( "T", (2043+100)*h#, capheight*v#, baseline ); % DEK
+
+n := 12;
+t1 := 0;
+t2 := 4;
+t3 := 5;
+t4 := 7;
+t5 := 11;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 20;
+t12 := 22;
+
+adj_fill.A(1) % fixed x points
+ (6, 8, 12) % fixed y points
+ ((3,1), (6,2), (7,2)) % tied points
+ ((5,9)) % verticals
+ ((4,10), (2,11)) % horizontals
+ ((2332,2550){-74,-134}... % 0
+ (2258,2416){-74,-134}... % 1
+ (2023,2138){-962,-926}... % 2
+ (1892,2037){-240,-137}... % *3
+ (1783,2001){-1,0}...{-505,136} % 4
+ (1432,2084){-402,107}...{-402,107} % 5
+ (1030,2191){-330,152}... % 6
+ (489,2341){-1,0}... % 7
+ (302,2274){-1,-1}... % 8
+ (233,2117){0,-1}... % 9
+ (299,1982){414,-476}... % 10
+ (404,1787){0,-1}...{-1,-1} % 11
+ (342,1635)-- % 12
+ (342,1635){-1,-1}... % 13
+ (201,1573){-1,0}... % 14
+ (67,1626){-1,1}... % 15
+ (-16,1881){0,1}... % 16
+ (168,2318){1,1}... % 17
+ (813,2588){1,0}... % 18
+ (1432,2447){983,-316}... % 19
+ (1912,2349){1,0}... % 20
+ (2172,2487){87,100}...{87,100} % 21
+ (2259,2587)--cycle); % 22
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 9;
+t5 := 10;
+t6 := 13;
+t7 := 14;
+t8 := 16;
+t9 := 17;
+
+adj_fill.B(1, 8) % fixed x points
+ (2, 7) % fixed y points
+ ((1,3), (5,1), (9,3)) % tied points
+ ((4,5)) % verticals
+ ((3,6)) % horizontals
+ ((153,408){1,1}... % 0
+ (310,467){1,0}... % 1
+ (443,415){1,-1}... % 2
+ (497,280){182,-650}... % 3
+ (540,174){1,-1}... % 4
+ (655,136){1,0}... % 5
+ (852,224){1,1}... % 6
+ (931,351){116,317}... % 7
+ (1073,993){0,1}...{0,1198} % 8
+ (1073,2191)-- % 9
+ (1432,2084){0,-945}... % 10
+ (1432,1139){0,-1}... % 11
+ (1065,205){-1,-1}... % 12
+ (1050,210){-1,-1}... % 13
+ (454,-42){-1,0}... % 14
+ (159,66){-1,1}... % 15
+ (95,278){0,1}...{1,1} % 16
+ (153,408)--cycle); % 17
+
+mathcorr(200h#); % DEK
+endchar(0);
+
+"sbuu";
+
+%charbegin( 126, 2419h#, capheight*v#, baseline );
+%charbegin( 125, 2419h#, capheight*v#, baseline ); % DEK
+charbegin( "U", 2419h#, capheight*v#, baseline ); % NGB
+
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 9;
+t5 := 11;
+t6 := 13;
+t7 := 14;
+t8 := 16;
+t9 := 21;
+t10 := 24;
+t11 := 27;
+
+adj_fill.A(1, 5, 7) % fixed x points
+ (6, 11) % fixed y points
+ ((1,2), (11,1)) % tied points
+ ((3,9)) % verticals
+ ((4,8), (2,10)) % horizontals
+ ((1575,367){-1,-1}... % 0
+ (1172,61){-784,-414}... % *1
+ (791,-47){-1,0}... % 2
+ (415,91){-1,1}... % 3
+ (265,576){0,1}... % 4
+ (370,1444){232,1297}... % 5
+ (423,1955){0,1}... % 6
+ (405,2124){-71,274}... % *7
+ (352,2229){-1,1}... % 8
+ (235,2286){-1,0}... % 9
+ (105,2226){-1,-1}... % 10
+ (39,1984){0,-1}...{60,-297} % 11
+ (59,1837)-- % 12
+ (-24,1803){-158,548}... % 13
+ (-69,2060){0,1}... % 14
+ (86,2503){1,1}... % 15
+ (391,2607){1,0}... % 16
+ (686,2493){1,-1}... % 17
+ (779,2323){125,-423}... % *18
+ (811,2070){0,-1}... % 19
+ (720,1320){-260,-1489}... % 20
+ (649,751){0,-1}... % 21
+ (685,464){139,-478}... % *22
+ (788,273){1,-1}... % 23
+ (1007,183){1,0}... % 24
+ (1209,243){424,232}... % *25
+ (1431,415){1,1}...{354,488} % 26
+ (1543,560)--cycle); % 27
+
+n := 9;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 13;
+t8 := 16;
+t9 := 18;
+
+adj_fill.B(1, 6) % fixed x points
+ (5, 9) % fixed y points
+ ((3,2), (4,1)) % tied points
+ ((4,7)) % verticals
+ ((2,8)) % horizontals
+ ((2509,385){-167,-255}... % 0
+ (2370,169){-184,-274}... % *1
+ (2325,111){-1,-1}... % 2
+ (2002,-33){-1,0}... % 3
+ (1753,39){-1,1}...{-124,695} % 4
+ (1575,367){-32,193}...{-32,193} % 5
+ (1543,560){0,1}...{80,721} % 6
+ (1639,2283){321,201}...{475,251} % 7
+ (2233,2623)-- % 8
+ (2322,2570){-371,-234}... % 9
+ (2173,2437){-1,-1}... % 10
+ (2083,2279){-156,-423}... % *11
+ (2017,2014){-123,-735}... % 12
+ (1940,1048){0,-1}... % 13
+ (1983,524){164,-814}... % *14
+ (2104,234){1,-1}... % 15
+ (2191,199){1,0}... % 16
+ (2331,288){1,1}...{231,357} % 17
+ (2450,455)--cycle); % 18
+
+endchar(0);
+
+"sbuv";
+
+charbegin( "V", 2261h#, capheight*v#, baseline );
+
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 13;
+t6 := 15;
+t7 := 16;
+t8 := 18;
+t9 := 22;
+t10 := 25;
+t11 := 27;
+t12 := 29;
+
+adj_fill.A(1) % fixed x points
+ (4, 6, 9, 12) % fixed y points
+ () % tied points
+ ((6,7), (3,10)) % verticals
+ ((5,8), (2,11)) % horizontals
+ ((1279,2110){56,259}... % 0
+ (1453,2438){1,1}... % 1
+ (1818,2589){1,0}... % 2
+ (2137,2472){1,-1}... % 3
+ (2249,2199){0,-1}... % 4
+ (2114,1733){-529,-1191}... % *5
+ (1720,1008){-835,-1356}...{-192,-633} % 6
+ (1205,62){-280,-123}...{-280,-123} % 7
+ (925,-61){-43,3}...{-43,3} % 8
+ (882,-58){-74,520}... % 9
+ (677,1236){-296,1492}... % 10
+ (522,1935){-292,978}... % *11
+ (385,2214){-1,1}... % 12
+ (275,2267){-1,0}... % 13
+ (173,2224){-1,-1}...{-70,-287} % 14
+ (65,1976)-- % 15
+ (-11,1984){0,1}... % 16
+ (196,2515){1,1}... % 17
+ (442,2596){1,0}... % 18
+ (661,2509){1,-1}... % 19
+ (838,2187){320,-886}... % *20
+ (981,1623){215,-1187}...{215,-1187} % 21
+ (1196,436){374,586}... % 22
+ (1570,1022){374,586}... % 23
+ (1812,1502){325,902}... % *24
+ (1895,1924){0,1}... % 25
+ (1789,2218){-1,1}... % 26
+ (1592,2293){-1,0}... % 27
+ (1467,2240){-242,-199}...{-151,-266} % *28
+ (1350,2094)--cycle); % 29
+
+endchar(0);
+
+"sbuw";
+
+charbegin( "W", 3463h#, capheight*v#, baseline );
+
+n := 15;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 11;
+t6 := 12;
+t7 := 19;
+t8 := 22;
+t9 := 24;
+t10 := 28;
+t11 := 31;
+t12 := 32;
+t13 := 34;
+t14 := 36;
+t15 := 38;
+
+adj_fill.A(1, 8, 12) % fixed x points
+ (8) % fixed y points
+ () % tied points
+ ((3,14)) % verticals
+ ((7,9), (6,10), (5,11), (4,13), (2,15)) % horizontals
+ ((2541,2309){213,279}... % 0
+ (2636,2437){1,1}... % 1
+ (3060,2627){1,0}... % 2
+ (3306,2533){1,-1}... % 3
+ (3438,2102){0,-1}... % 4
+ (3335,1694){-404,-1048}... % *5
+ (3034,1054){-469,-882}...{-219,-620} % 6
+ (2617,104){-242,-116}...{-242,-116} % 7
+ (2375,-12){-30,11}...{-30,11} % 8
+ (2345,-1){-23,280}... % 9
+ (2042,1123){-323,723}...{-179,574} % 10
+ (1808,1692){-115,-250}...{-276,-723} % 11
+ (1120,58){-293,-89}...{-293,-89} % 12
+ (827,-31){-38,42}...{-38,42} % 13
+ (789,11){-6,419}... % 14
+ (783,430){-6,419}... % 15
+ (688,1614){-336,1791}... % *16
+ (585,1991){-240.9,607.1}... % *17
+ (447,2221){-1,1}... % 18
+ (317,2278){-1,0}... % 19
+ (179,2218){-1,-1}...{-64,-320} % 20
+ (68,1988)-- % 21
+ (-13,1981){0,1}... % 22
+ (174,2473){1,1}... % 23
+ (487,2604){1,0}... % 24
+ (786,2483){1,-1}... % 25
+ (1024,1983){338,-1346}... % *26
+ (1124,1137){15,-616}...{15,-616} % 27
+ (1139,521){348,738}... % 28
+ (1487,1259){348,738}...{45,370} % 29
+ (1784,2458){262,144}...{262,144} % 30
+ (2046,2602){39,-21}...{39,-21} % 31
+ (2085,2581){0,-1}... % 32
+ (2394,1245){197,-391}...{127,-439} % 33
+ (2669,605){326,640}... % 34
+ (3000,1344){443,1223}... % *35
+ (3112,1828){0,1}... % 36
+ (2959,2287){-1,1}... % 37
+ (2805,2349){-1,0}...{-263,-223} % 38
+ (2597,2261)--cycle); % 39
+
+endchar(0);
+
+"sbux";
+
+charbegin( "X", 2454h#, capheight*v#, baseline );
+
+n := 15;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+t8 := 16;
+t9 := 17;
+t10 := 19;
+t11 := 21;
+t12 := 24;
+t13 := 25;
+t14 := 28;
+t15 := 30;
+
+adj_fill.A(1) % fixed x points
+ (7, 9, 15) % fixed y points
+ ((3,1), (4,2), (7,3), (8,3), (12,4), (13,5))% tied points
+ ((6,10)) % verticals
+ ((5,11), (2,14)) % horizontals
+ ((2387,609){-59,-287}... % 0
+ (2162,110){-1,-1}... % 1
+ (1805,-35){-1,0}... % 2
+ (1515,62){-1,1}... % 3
+ (1317,383){-323,804}...{-132,857} % *4
+ (1192,866){-65,288}...{-65,288} % 5
+ (1127,1154){-88,777}... % 6
+ (979,1953){-364,1241}... % *7
+ (878,2223){-216,441.6}... % *8
+ (763,2395){-1,1}... % 9
+ (553,2479){-1,0}... % 10
+ (438,2428){-1,-1}... % 11
+ (382,2288){0,-1}... % 12
+ (386,2186){46,-434}... % 13
+ (404,2069){0,-1}...{-1,-1} % 14
+ (349,1947)-- % 15
+ (349,1947){-1,-1}... % 16
+ (190,1866){-1,0}... % 17
+ (44,1940){-1,1}... % 18
+ (-12,2100){0,1}... % 19
+ (145,2415){1,1}... % 20
+ (712,2635){1,0}... % 21
+ (1169,2475){1,-1}... % 22
+ (1298,2257){253,-599}...{133,-515} % *23
+ (1422,1876){49,-374}...{49,-374} % 24
+ (1471,1502){92,-775}... % 25
+ (1620,740){371,-1196}... % *26
+ (1842,306){1,-1}... % 27
+ (1997,256){1,0}... % 28
+ (2146,314){1,1}...{88,341} % 29
+ (2301,626)--cycle); % 30
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 7;
+t6 := 8;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+
+adj_fill.B() % fixed x points
+ (2, 9) % fixed y points
+ ((1,6), (5,2), (6,1), (9,6)) % tied points
+ ((3,8)) % verticals
+ ((4,7)) % horizontals
+ ((77,419){1,1}... % 0
+ (192,469){1,0}... % 1
+ (322,427){1,-1}... % 2
+ (385,252){65,-419}... % 3
+ (477,131){1,0}... % 4
+ (668,223){1,1}... % 5
+ (921,596){459,931}...{160,575} % *6
+ (1127,1154)-- % 7
+ (1192,866){-316,-688}... % 8
+ (960,412){-427,-723}... % *9
+ (765,143){-1,-1}... % 10
+ (341,-42){-1,0}... % 11
+ (79,60){-1,1}... % 12
+ (-3,258){0,1}...{1,1} % 13
+ (77,419)--cycle); % 14
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 7;
+t6 := 10;
+t7 := 12;
+t8 := 13.9;
+t9 := 14;
+
+adj_fill.C() % fixed x points
+ (1, 8) % fixed y points
+ ((1,7), (4,4), (5,5), (9,7)) % tied points
+ ((2,7)) % verticals
+ ((3,6)) % horizontals
+ ((2254,2151){1,0}... % 0
+ (2368,2205){1,1}... % 1
+ (2434,2382){0,1}... % 2
+ (2365,2568){-1,1}... % 3
+ (2137,2636){-1,0}... % 4
+ (1798,2470){-1,-1}...{-253,-496} % 5
+ (1422,1876)-- % 6
+ (1471,1502){227,711}... % 7
+ (1680,2053){408,866}... % *8
+ (1879,2368){1,1}... % 9
+ (1980,2412){1,0}... % 10
+ (2053,2384){1,-1}... % 11
+ (2088,2293){58,-418}... % 12
+ (2133,2189){1,-1}...{-1,0} % 13
+ (2254,2151)--cycle); % 14
+
+endchar(0);
+
+"sbuy";
+
+%charbegin( "Y", 2081h#, capheight*v#, baseline );
+charbegin( "Y", (2081-50)*h#, capheight*v#, baseline ); % DEK
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 14;
+t9 := 17;
+t10 := 19;
+
+adj_fill.A(1, 5, 10) % fixed x points
+ (1, 6) % fixed y points
+ ((1,1)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1449,1665){-360,-347}... % 0
+ (1105,1369){-268,-191}... % 1
+ (859,1267){-1.858,-.02669}... % 2
+ (741,1312){-1,1}... % 3
+ (649,1922){0,1}... % 4
+ (637,2373){-73,626}... % *5
+ (576,2548){-1,1}... % 6
+ (387,2622){-1,0}... % 7
+ (105,2478){-1,-1}...{-279,-505} % 8
+ (-112,2147)-- % 9
+ (-58,2081){299,357}... % 10
+ (168,2280){1,0}... % 11
+ (234,2238){1,-1}... % 12
+ (275,2115){41,-503}... % *13
+ (275,1735){0,-1}... % 14
+ (287,1318){70,-582}... % *15
+ (345,1153){1,-1}... % 16
+ (645,1024){1,0}... % 17
+ (1059,1183){344,238}...{291,244} % 18
+ (1449,1479)--cycle); % 19
+
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 9;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 15;
+t9 := 19;
+t10 := 21;
+t11 := 24;
+
+adj_fill.B(1, 11) % fixed x points
+ () % fixed y points
+ ((1,2), (4,2), (5,3), (6,1), (11,3)) % tied points
+ ((7,8), (2,10)) % verticals
+ ((3,9), (1,11)) % horizontals
+ ((1449,964){-451,-222}... % 0
+ (944,601){-1,-1}... % 1
+ (644,-2){0,-1}... % 2
+ (660,-162){61,-256}... % *3
+ (705,-258){1,-1}... % 4
+ (880,-333){1,0}... % 5
+ (1198,-184){1,1}... % 6
+ (1384,140){251,784}... % *7
+ (1449,600){0,1}... % 8
+ (1449,964){0,2}...{0,139} % 9
+ (1449,1103){0,363}... % 10
+ (1449,1466){0,2}... % 11
+ (1449,1665){0,2}...{0,759} % 12
+ (1449,2424)-- % 13
+ (1816,2597){33,-8}...{33,-8} % 14
+ (1849,2589){0,-1451}... % 15
+ (1849,1138){0,-1}... % 16
+ (1745,347){-400,-1328}... % *17
+ (1449,-190){-1,-1}... % 18
+ (722,-499){-1,0}... % 19
+ (401,-401){-1,1}... % 20
+ (318,-148){0,1}... % 21
+ (420,221){394,754}... % *22
+ (712,606){1,1}...{404,199} % 23
+ (1449,1103)--cycle); % 24
+
+endchar(0);
+
+"sbuz";
+
+charbegin( "Z", 2232h#, capheight*v#, baseline );
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 17;
+t11 := 20;
+t12 := 21;
+
+adj_fill.A(5, 7, 12) % fixed x points
+ (6, 8) % fixed y points
+ ((1,2), (6,1), (7,1)) % tied points
+ ((4,9)) % verticals
+ ((3,10), (2,11)) % horizontals
+ ((1397,1986){-263,-175}... % 0
+ (1255,1960){-1,0}... % 1
+ (1084,2004){-383,172}... % *2
+ (872,2132){-424,311}... % 3
+ (645,2278){-378,196}... % *4
+ (494,2328){-1,0}... % 5
+ (368,2284){-1,-1}... % 6
+ (319,2156){0,-1}... % 7
+ (391,2005){314,-254}... % 8
+ (474,1941){1,-1}... % 9
+ (514,1829){0,-1}...{-1,-1} % 10
+ (466,1701)-- % 11
+ (466,1701){-1,-1}... % 12
+ (317,1622){-1,0}... % 13
+ (172,1684){-1,1}... % 14
+ (88,1921){0,1}... % 15
+ (311,2411){1,1}... % 16
+ (786,2609){1,0}... % 17
+ (974,2547){453,-242}... % *18
+ (1239,2367){404,-319}... % 19
+ (1498,2232){1,0}...{1,1} % 20
+ (1643,2296)--cycle); % 21
+
+n := 3;
+t1 := 1;
+t2 := 8;
+t3 := 9;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,2), (2,3), (3,4)) % tied points
+ () % verticals
+ () % horizontals
+ ((89,85){1308,1901}...{1308,1901} % 0
+ (1397,1986){243,308}...{243,308} % 1
+ (1640,2294){1,1}...{191,673} % 2
+ (1771,2547){47,10}...{47,10} % 3
+ (1818,2557)-- % 4
+ (1920,2467){5,-31}...{5,-31} % 5
+ (1925,2436){-445,-511}... % 6
+ (1540,1950){-924,-1334}...{-924,-1334} % 7
+ (616,616){-245,-393}...{-245,-393} % 8
+ (371,223){-1,-1}...{-146,-341} % 9
+ (233,2)--cycle); % 10
+
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+t9 := 13;
+t10 := 14;
+t11 := 18;
+t12 := 20;
+t13 := 22;
+t14 := 23;
+
+adj_fill.C(2, 14) % fixed x points
+ (7) % fixed y points
+ ((1,5), (8,3), (9,4), (14,5)) % tied points
+ ((4,12)) % verticals
+ ((6,10), (5,11), (3,13)) % horizontals
+ ((1758,984){-1,-1}... % 0
+ (1680,819){0,-1}... % 1
+ (1739,690){1,-1}... % 2
+ (1904,626){495,-86}... % 3
+ (2029,582){1,-1}... % 4
+ (2068,472){0,-1}... % 5
+ (2006,329){-1,-1}... % 6
+ (1859,269){-1,0}... % 7
+ (1431,448){-736,434}... % 8
+ (1132,599){-515,202}... % *9
+ (916,650){-1,0}... % 10
+ (641,590){-361,-129}...{-25,26} % 11
+ (616,616)-- % 12
+ (371,223){1,1}... % 13
+ (617,322){1,0}... % 14
+ (829,278){495,-172}... % *15
+ (1112,150){821,-443}... % 16
+ (1431,-1){529,-203}... % *17
+ (1641,-53){1,0}... % 18
+ (2048,114){1,1}... % 19
+ (2239,656){0,1}... % 20
+ (2146,965){-1,1}... % 21
+ (1945,1049){-1,0}...{-1,-1} % 22
+ (1758,984)--cycle); % 23
+
+endchar(0);
+
+% PUNCTUATION (copied from EUSMCH)
+set_stem_round(155,157,160,180,188,201);
+more_side(0);
+
+"smminus";
+
+%charbegin( 0, 1824h#, lcbody*v#, baseline );
+charbegin( 0, 2800h#, (1233+925)*v#, (1233-925)*v#); % DEK
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1754,1018){-1650,0}...{-1650,0} % 0
+% (104,1018)-- % 1
+% (70,874){1651,0}...{1651,0} % 2
+% (1721,874)--cycle); % 3
+ ((2614,1018){-1650,0}...{-1650,0} % 0 % DEK
+ (230,1018)-- % 1
+ (170,874){1651,0}...{1651,0} % 2
+ (2564,874)--cycle); % 3
+
+endchar(0);
+
+"sbapproximation";
+
+charbegin( 24, 2042h#, lcbody*v#, baseline );
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 10;
+t5 := 12;
+t6 := 15;
+
+adj_fill.A() % fixed x points
+ (1, 4) % fixed y points
+ () % tied points
+ () % verticals
+ ((3,5), (2,6)) % horizontals
+ ((1894,1066){-76,-330}... % 0
+ (1779,886){-209,-184}... % 1
+ (1586,809){-1,0}... % 2
+ (1312,907){-271,170}... % 3
+ (1041,1077){-271,170}... % 4
+ (749,1233){-502,207}... % *5
+ (539,1284){-342,-6}... % 6
+ (409,1258){-390,-140}... % 7
+ (241,1133){-328,-369}...{-217,-426} % *8
+ (81,889)-- % 9
+ (153,860){140,262}... % 10
+ (293,1068){186,142}... % 11
+ (496,1127){1,0}... % 12
+ (791,1024){366,-233}... % 13
+ (1157,791){366,-233}... % 14
+ (1546,657){1,0}... % 15
+ (1781,757){243,204}...{117,271} % 16
+ (1962,1019)--cycle); % 17
+
+endchar(0);
+
+"sband";
+
+charbegin( 94, 2870h#, capheight*v#, baseline*v#);
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((2843,6){-1347,2632}...{-1347,2632} % 0
+ (1496,2638){-34,5}...{-34,5} % 1
+ (1462,2643){-1421,-2605}...{-1421,-2605}% 2
+ (41,38){42,-40}...{42,-40} % 3
+ (83,-2)-- % 4
+ (315,6){1137,2275}...{1137,2275} % 5
+ (1452,2281){1126,-2313}...{1126,-2313} % 6
+ (2578,-32)--cycle); % 7
+
+endchar(0);
+
+"sbor";
+
+charbegin( 95, 2870h#, capheight*v#, baseline*v#);
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((2783,2545){14,-16}...{14,-16} % 0
+ (2797,2529){-1385,-2573}...{-1385,-2573}% 1
+ (1412,-44){-55,-2}...{-55,-2} % 2
+ (1357,-46){-1334,2551}...{-1334,2551} % 3
+ (23,2505)-- % 4
+ (279,2545){1129,-2265}...{1129,-2265} % 5
+ (1408,280){1141,2265}...{1141,2265} % 6
+ (2549,2545)--cycle); % 7
+
+endchar(0);
+
+"sbleftbrace";
+
+%charbegin( 102, 1185h#, programem*v#, descender*v#);
+charbegin( 102, 1185h#, .75programem*v#, .25programem*v#); % DEK
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 8;
+t5 := 9;
+t6 := 13;
+t7 := 16;
+
+adj_fill.A(1, 4, 5) % fixed x points
+ (1) % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((3,6)) % verticals
+ ((4,5), (2,7)) % horizontals
+ ((-12,959){39,97}...{39,97} % 0
+ (27,1056){1,0}... % 1
+ (305,1127){264,243}... % 2
+ (384,1343){95,773}... % *3
+ (400,1900){0,1}... % 4
+ (404,2295){49,477}... % 5
+ (495,2582){213,279}... % 6
+ (624,2675){245,80}...{1,0} % 7
+ (1081,2701)-- % 8
+ (1081,2635){-1,0}... % 9
+ (763,2598){-200,-64}... % 10
+ (665,2510){-116,-192}... % 11
+ (612,2354){-53,-336}... % 12
+ (588,1918){0,-1}... % 13
+ (564,1463){-95,-702}... % *14
+ (493,1216){-145,-219}...{-283,-54} % 15
+ (190,1011)--cycle); % 16
+
+n := 6;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 8;
+t5 := 11;
+t6 := 15;
+
+adj_fill.B(1, 6) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((1081,-594){-1,0}... % 0
+ (786,-562){-238,72}... % 1
+ (673,-474){-142,210}... % 2
+ (619,-329){-50,298}... % 3
+ (587,110){0,1}... % 4
+ (549,587){-146,759}... % *5
+ (441,869){-200,243}...{-449,99} % 6
+ (190,1011)-- % 7
+ (-12,959){1,0}... % 8
+ (190,937){324,-86}... % *9
+ (312,873){184,-204}... % 10
+ (404,124){0,-1}... % 11
+ (414,-266){41,-369}... % 12
+ (509,-551){170,-186}... % 13
+ (652,-635){351,-88}...{1,0} % 14
+ (1081,-657)--cycle); % 15
+
+endchar(0);
+
+"sbrightbrace";
+
+%charbegin( 103, 1185h#, programem*v#, descender*v#);
+charbegin( 103, 1185h#, .75programem*v#, .25programem*v#); % DEK
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 9;
+t6 := 13;
+t7 := 16;
+
+adj_fill.A(2, 4, 5) % fixed x points
+ (1) % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((3,6)) % verticals
+ ((4,5), (2,7)) % horizontals
+ ((1138,972){51,89}...{51,89} % 0
+ (1189,1061){-1,0}... % 1
+ (960,1094){-363,123}... % *2
+ (826,1184){-194,295}... % 3
+ (771,1398){-65,744}... % *4
+ (761,1928){0,1}... % 5
+ (661,2599){-331,393}... % 6
+ (462,2686){-583,118}...{-1,0} % *7
+ (78,2717)-- % 8
+ (78,2653){1,0}... % 9
+ (325,2631){385,-83}... % *10
+ (463,2570){229,-240}... % 11
+ (545,2351){109,-647}... % *12
+ (572,1923){0,-1}... % 13
+ (610,1448){149,-750}... % *14
+ (721,1173){230,-260}...{225,-57} % 15
+ (996,1012)--cycle); % 16
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 13;
+
+adj_fill.B(1, 6) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((78,-589){1,0}... % 0
+ (334,-570){400,75}... % *1
+ (478,-514){247,220}... % 2
+ (584,113){0,1}... % 3
+ (621,600){142,757}... % *4
+ (726,870){347,374}...{384,85} % 5
+ (996,1012)-- % 6
+ (1138,972){-1,0}... % 7
+ (875,905){-234,-204}... % 8
+ (797,695){-91,-784}... % *9
+ (784,121){0,-1}... % 10
+ (756,-330){-114,-680}... % *11
+ (670,-559){-267,-277}...{-1,0} % 12
+ (78,-656)--cycle); % 13
+
+endchar(0);
+
+"sbverticalbar";
+
+%charbegin( 106, 790h#, programem*v#, baseline*v#);
+%charbegin( 106, 790h#, .75programem*v#, .75programem*v#); % DEK
+charbegin( 106, 790h#, .75programem*v#, .25programem*v#); % NGB
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((320,2604){0,-2736}...{0,-2736} % 0
+% (320,-132)-- % 1
+% (447,-90){0,2753}...{0,2753} % 2
+% (447,2663)--cycle); % 3
+ ((320,2660){0,-2736}...{0,-2736} % 0 % DEK
+ (320,-635)-- % 1
+ (447,-590){0,2753}...{0,2753} % 2
+ (447,2730)--cycle); % 3
+
+endchar(0);
+
+"sbbackslash";
+
+%charbegin( 110, 1843h#, programem*v#, descender*v#);
+charbegin( 110, 1858h#, .75programem*v#, .25programem*v#); % DEK
+
+numeric a[],b[],alpha,beta;
+pair vec;
+.5[b0,b3]=.75programem-120; .5[b1,b2]=-.25programem+250;
+b0-b3=-63; b1-b2=-85;
+.5[a0,a3]=206; .5[a1,a2]=1650;
+vec=(.5[a0-a1,a3-a2],.5[b0-b1,b3-b2]);
+(a3,b3)-(a2,b2)=alpha*vec;
+(a1,b1)=beta*vec+(a2,b2)+145*(unitvector vec rotated 90);
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1740,-277){-1745,2961}...{-1745,2961} % 0
+% (-5,2684)-- % 1
+% (95,2731){1753,-2989}...{1753,-2989} % 2
+% (1848,-258)--cycle); % 3
+ ((a0,b0)-- % 0 % DEK
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)--cycle); % 3
+
+endchar(0);
+
+"sbss"; %bold section sign, \s
+
+charbegin( 120, 1907h#, depthy*v#, baseline*v#);
+
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 8;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+t10 := 17;
+t11 := 19;
+t12 := 24;
+t13 := 25;
+
+adj_fill.A() % fixed x points
+ (8, 13) % fixed y points
+ ((1,3), (3,1), (4,2)) % tied points
+ ((7,9), (5,11), (2,12)) % verticals
+ ((6,10)) % horizontals
+ ((1426,616){198,265}... % 0
+ (1504,859){0,1}... % 1
+ (1370,1129){-1,1}... % 2
+ (1013,1336){-579,265}... % 3
+ (519,1615){-249,293}... % 4
+ (442,1716){-66,219}... % 5
+ (404,1941){0,1}... % 6
+ (585,2418){1,1}... % 7
+ (1031,2594){1,0}... % 8
+ (1237,2570){338,-91}... % *9
+ (1369,2503){1,-1}... % 10
+ (1469,2302){0,-1}...{-57,-276} % 11
+ (1446,2164)-- % 12
+ (1228,2088){-54,38}...{-54,38} % 13
+ (1174,2126){0,1}... % 14
+ (1155,2297){-73,279}... % *15
+ (1101,2405){-1,1}... % 16
+ (922,2474){-1,0}... % 17
+ (708,2364){-1,-1}... % 18
+ (614,2077){0,-1}... % 19
+ (709,1828){1,-1}... % 20
+ (780,1776){404,-234}... % *21
+ (1113,1594){1.733,-.9989}... % 22
+ (1533,1353){1,-1}... % 23
+ (1668,1053){0,-1}...{-330,-344} % 24
+ (1478,555)--cycle); % 25
+
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 14;
+t9 := 15;
+t10 := 17;
+t11 := 19;
+
+adj_fill.B() % fixed x points
+ (1) % fixed y points
+ ((5,2), (6,1), (8,3)) % tied points
+ ((4,7), (3,9), (1,11)) % verticals
+ ((2,10)) % horizontals
+ ((496,195){1,-482}... % 0
+ (618,-166){1,-1}... % 1
+ (911,-270){1,0}... % 2
+ (1225,-126){1,1}... % 3
+ (1321,178){0,1}... % 4
+ (1211,417){-1,1}... % 5
+ (797,650){-1113,520}... % 6
+ (399,886){-1,1}... % 7
+ (264,1250){0,1}...{301,424} % 8
+ (442,1716)-- % 9
+ (519,1615){-364,-450}... % 10
+ (406,1379){0,-1}... % 11
+ (504,1154){1,-1}... % 12
+ (904,912){843,-393}... % 13
+ (1426,616){235,-235}... % 14
+ (1544,277){0,-1}... % 15
+ (1351,-195){-1,-1}... % 16
+ (876,-395){-1,0}... % 17
+ (349,-223){-1,1}...{-60,553} % 18
+ (207,86)--cycle); % 19
+
+endchar(0);
+
+"rbnot"; %logical not sign
+
+charbegin( 58, 2534h#, lcbody*v#, baseline*v#);
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.A() % fixed x points
+ (1) % fixed y points
+ () % tied points
+ ((2,3)) % verticals
+ ((3,4)) % horizontals
+ ((2321,760){0,757}...{0,757} % 0
+ (2321,1517){-2224,0}...{-2224,0} % 1
+ (97,1517)-- % 2
+ (97,1297){1861,0}... % 3
+ (1958,1297){1,0}... % 4
+ (2086,1285){1.395,-1.01}... % 5
+ (2113,1223){56,-456}...{53,-456} % 6
+ (2166,767)--cycle); % 7
+
+endchar(0);
+
+% FRAKTUR copied from EUFBCH
+set_stem_round(300,320,340,340,360,390);
+more_side(100h#);
+
+"FBUR";
+
+charbegin( 60, 2866h#, capheight*v#, baseline*v#);
+
+n := 16;
+t1 := 2;
+t2 := 6;
+t3 := 7;
+t4 := 8;
+t5 := 9;
+t6 := 11;
+t7 := 13;
+t8 := 17;
+t9 := 19;
+t10 := 20;
+t11 := 22;
+t12 := 26;
+t13 := 28;
+t14 := 31;
+t15 := 36;
+t16 := 37;
+
+adj_fill.A(9, 16) % fixed x points
+ (10) % fixed y points
+ ((2,1), (3,2), (4,3), (5,4)) % tied points
+ ((8,11), (7,12), (4,14)) % verticals
+ ((6,13), (1,15)) % horizontals
+ ((74,-2){1,1}... % 0
+ (218,120){251,165}... % *1
+ (325,163){1,0}... % 2
+ (439,109){273,-206}...{415,-468} % *3
+ (598,-43){694,598}...{694,598} % 4
+ (1292,555){152,300}...{70,519} % 5
+ (1530,1277){8,106}...{8,106} % 6
+ (1538,1383){14,282}...{-35,697} % 7
+ (1543,1909){-40,215}...{-40,215} % 8
+ (1503,2124){-118,349}... % 9
+ (1321,2410){-1,1}... % 10
+ (832,2610){-1,0}... % 11
+ (233,2333){-1,-1}... % 12
+ (-4,1882){0,-1}... % 13
+ (43,1732){181,-332}... % *14
+ (177,1550){300,-331}... % 15
+ (274,1418){131,-241}... % *16
+ (308,1309){0,-1}... % 17
+ (229,1145){-1,-1}...{-399,-283} % 18
+ (92,1027)-- % 19
+ (150,970){402,238}... % 20
+ (529,1233){1,1}... % 21
+ (665,1506){0,1}... % 22
+ (622,1640){-168,306}... % *23
+ (497,1812){-470,538}... % 24
+ (344,2013){-206,335}... % *25
+ (291,2147){0,1}... % 26
+ (364,2275){1,1}... % 27
+ (547,2352){1,0}... % 28
+ (883,2190){1,-1}... % 29
+ (1078,1853){263,-810}... % *30
+ (1146,1380){0,-1}... % 31
+ (1096,758){-193,-965}... % *32
+ (953,415){-1,-1}...{-198,-169} % 33
+ (835,308){-233,261}... % 34
+ (672,466){-274,212}... % *35
+ (561,520){-1,0}...{-239,-279} % 36
+ (23,55)--cycle); % 37
+
+n := 6;
+t1 := 0;
+t2 := 7;
+t3 := 9;
+t4 := 10;
+t5 := 12;
+t6 := 17;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,5), (3,4), (4,3), (6,2)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((2200,1544){234,168}...{514,254} % 0
+ (2861,1916){-20,51}...{-20,51} % 1
+ (2841,1967){-412,-98}... % 2
+ (2725,1948){-1,0}... % 3
+ (2585,1992){-1,1}... % 4
+ (2518,2234){-65,637}... % 5
+ (2431,2511){-1,1}... % 6
+ (2218,2595){-1,0}... % 7
+ (1876,2471){-715,-471}...{-455,-550} % *8
+ (1503,2124)-- % 9
+ (1543,1909){156,386}... % 10
+ (1740,2227){428,438}... % *11
+ (1971,2347){1,0}... % 12
+ (2073,2292){1,-1}... % 13
+ (2140,2049){95,-648}... % 14
+ (2211,1813){208,-227}...{267,8} % 15
+ (2347,1756){-589,-321}...{-232,-77} % 16
+ (1538,1383)--cycle); % 17
+
+n := 9;
+t1 := 1;
+t2 := 4;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 13;
+t8 := 14;
+t9 := 15;
+
+adj_fill.C(9) % fixed x points
+ () % fixed y points
+ ((3,5), (4,2), (5,1)) % tied points
+ ((2,7)) % verticals
+ ((3,6), (1,8)) % horizontals
+ ((2960,410){-292,-162}... % 0
+ (2827,359){-1,0}... % 1
+ (2718,383){-285,288}... % 2
+ (2598,543){-215,346}... % 3
+ (2517,774){-56,414}...{21,797} % 4
+ (2499,1417){-174,100}...{-395,136} % 5
+ (2200,1544){-662,-161}...{-662,-161} % 6
+ (1538,1383)-- % 7
+ (1530,1277){496,116}... % 8
+ (1714,1294){1,0}... % 9
+ (1856,1281){316,-74}... % 10
+ (2079,1161){1,-1}... % 11
+ (2143,974){72,-703}...{0,-1} % *12
+ (2151,458){290,-469}...{96,-228} % 13
+ (2429,-46){536,373}...{536,373} % 14
+ (2965,327)--cycle); % 15
+
+endchar(0);
+
+"FBUI";
+
+charbegin( 61,1853h#, capheight*v#, baseline*v#);
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 9;
+t6 := 11;
+t7 := 13;
+
+adj_fill.A() % fixed x points
+ (1, 4, 5) % fixed y points
+ () % tied points
+ () % verticals
+ ((3,6), (2,7)) % horizontals
+ ((1826,2540){-296,-285}... % 0
+ (1630,2390){-364,-203}... % *1
+ (1462,2337){-1,0}... % 2
+ (1113,2461){-502,216}... % 3
+ (701,2587){-1,0}... % 4
+ (356,2451){-281,-260}... % 5
+ (193,2225){-358,-626}...{-230,-535} % *6
+ (-2,1825)-- % 7
+ (56,1763){24,0}...{24,0} % 8
+ (80,1763){219,417}... % 9
+ (279,2065){1,1}... % 10
+ (550,2178){1,0}... % 11
+ (866,2118){719,-235}...{387,-59} % 12
+ (1240,2013){575,332}...{249,231} % 13
+ (1853,2483)--cycle); % 14
+
+n := 8;
+t1 := 0;
+t2 := 1;
+t3 := 1.188;
+t4 := 4;
+t5 := 7;
+t6 := 10;
+t7 := 15;
+t8 := 17;
+
+adj_fill.B(1) % fixed x points
+ (2, 3, 6) % fixed y points
+ () % tied points
+ ((5,7)) % verticals
+ ((4,8)) % horizontals
+ ((19,66){242,291}... % 0
+ (503,563){550,505}...{30,-18} % 1
+ (533,545){204,-467}... % 2
+ (750,219){1,-1}... % 3
+ (904,169){1,0}... % 4
+ (1087,268){1,1}... % 5
+ (1179,449){124,466}... % *6
+ (1211,734){0,1}... % 7
+ (1173,1149){-91,903}...{79,633} % 8
+ (1169,1662){285,363}...{433,309} % 9
+ (1726,2199)-- % 10
+ (1802,2161){-453,-390}... % 11
+ (1606,1943){-265,-416}... % *12
+ (1537,1745){0,-1}... % 13
+ (1558,1478){146,-960}... % 14
+ (1612,939){0,-1}... % 15
+ (1399,330){-1,-1}... % 16
+ (638,-33){-1,0}...{-320,270} % 17
+ (235,142){-175,-129}...{-175,-129} % 18
+ (60,13)--cycle); % 19
+
+endchar(0);
+
+
+endinput;
+
+% ALTERNATE CHARACTERS
+set_stem_round(375,380,395,395,400,420);
+
+"smuia";
+
+%charbegin( 125, 1633h#, capheight*v#, baseline );
+charbegin( 123, 1633h#, capheight*v#, baseline ); % DEK
+
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 14;
+t9 := 15;
+
+adj_fill.A(9) % fixed x points
+ (4, 6) % fixed y points
+ ((1,3), (2,1), (4,2), (5,2)) % tied points
+ ((3,7)) % verticals
+ ((1,8)) % horizontals
+ ((1270,2485){-242,-57}...{-242,-57} % 0
+ (1028,2428){-393,-27}...{-393,-27} % 1
+ (635,2401){-577,-107}... % 2
+ (308,2261){-1,-1}... % 3
+ (255,2168){0,-1}... % 4
+ (278,2034){215,-598}... % 5
+ (326,1897){0,-1}...{-1,-1} % 6
+ (274,1752)-- % 7
+ (274,1752){-1,-1}... % 8
+ (138,1699){-1,0}... % 9
+ (-3,1755){-1,1}... % 10
+ (-62,1961){0,1}... % 11
+ (115,2311){1,1}... % 12
+ (480,2508){913,266}... % *13
+ (1028,2577){1,0}...{355,-37} % 14
+ (1328,2558)--cycle); % 15
+
+n := 5;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((1,5), (3,1), (4,3), (5,4)) % tied points
+ ((3,4), (2,5)) % verticals
+ () % horizontals
+ ((275,306){186,0}... % 0
+ (461,306){1,0}... % 1
+ (615,360){1,1}... % 2
+ (636,425){20,280}... % *3
+ (635,640){0,1}...{0,1761} % 4
+ (635,2401)-- % 5
+ (1028,2428){0,-1301}... % 6
+ (1028,1127){0,-1}... % 7
+ (933,606){-130,-238}...{-1,-1} % 8
+ (703,306)--cycle); % 9
+
+n := 3;
+t1 := 0;
+t2 := 1;
+t3 := 7;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,5), (2,4)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((275,306){428,0}...{428,0} % 0
+ (703,306){311,0}... % 1
+ (1014,306){1,0}...{345,222} % 2
+ (1399,426)-- % 3
+ (1430,371){-1,-1}... % 4
+ (1237,189){-193,-182}... % 5
+ (822,0){-1,0}...{-768,0} % 6
+ (54,0)--cycle); % 7
+
+endchar(0);
+
+"sbuua"; % '175
+
+%charbegin( "U", 2444h#, capheight*v#, baseline );
+charbegin( 125, 2444h#, capheight*v#, baseline ); %NGB
+
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 10;
+t6 := 11;
+t7 := 13;
+t8 := 15;
+t9 := 18;
+t10 := 20;
+t11 := 22;
+
+adj_fill.A(6, 8, 11) % fixed x points
+ (5, 11) % fixed y points
+ ((1,2), (11,1)) % tied points
+ ((3,9)) % verticals
+ ((4,7), (2,10)) % horizontals
+ ((1544,394){-220,-263}... % 0
+ (1153,55){-795,-459}... % *1
+ (749,-65){-1,0}... % 2
+ (320,81){-1,1}... % 3
+ (189,437){0,1}... % 4
+ (344,1455){227,1145}... % 5
+ (424,2106){0,1}... % 6
+ (370,2290){-1,1}... % 7
+ (243,2362){-1,0}... % 8
+ (124,2313){-1,-1}...{-150,-241} % 9
+ (-13,2131)-- % 10
+ (-75,2176){165,445}... % 11
+ (93,2494){1,1}... % 12
+ (426,2618){1,0}... % 13
+ (717,2506){1,-1}... % 14
+ (830,2188){0,-1}... % 15
+ (803,1987){-150,-730}... % *16
+ (680,1458){-310,-1319}... % 17
+ (573,665){0,-1}... % 18
+ (729,204){1,-1}... % 19
+ (943,136){1,0}... % 20
+ (1329,342){1,1}...{162,295} % 21
+ (1549,661)--cycle); % 22
+
+n := 9;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 9;
+t5 := 10;
+t6 := 12;
+t7 := 15;
+t8 := 16;
+t9 := 19;
+
+adj_fill.B(1, 5) % fixed x points
+ (4, 9) % fixed y points
+ ((7,2), (8,1)) % tied points
+ ((2,8)) % verticals
+ ((3,6)) % horizontals
+ ((2182,2544){-100,-83}... % 0
+ (2082,2461){-100,-83}... % 1
+ (1974,2229){-146,-665}... % *2
+ (1936,1796){0,-1}... % 3
+ (1934,847){0,-1}... % 4
+ (1946,395){73,-628}... % *5
+ (2007,219){1,-1}... % 6
+ (2073,183){1,0}... % 7
+ (2213,250){1,1}...{229,345} % 8
+ (2318,385)-- % 9
+ (2375,322){-255,-442}... % 10
+ (2233,110){-1,-1}... % 11
+ (1847,-66){-1,0}... % 12
+ (1671,12){-1,1}... % 13
+ (1587,162){-127,382}...{-28,376} % *14
+ (1544,394){5,267}...{5,267} % 15
+ (1549,661){0,1}... % 16
+ (1550,2054){1,1393}...{-193,415} % 17
+ (1508,2223){479,342}...{107,64} % 18
+ (2110,2598)--cycle); % 19
+
+endchar(0);
+
+"sbuub"; % '176
+
+%charbegin( 127, 2419h#, capheight*v#, baseline );
+charbegin( 126, 2419h#, capheight*v#, baseline ); % DEK
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 11;
+t7 := 12;
+t8 := 15;
+t9 := 18;
+t10 := 20;
+t11 := 23;
+t12 := 26;
+
+adj_fill.A(1) % fixed x points
+ (6, 12) % fixed y points
+ ((1,2), (12,1)) % tied points
+ ((6,7), (4,9), (3,10)) % verticals
+ ((5,8), (2,11)) % horizontals
+ ((1575,367){-1,-1}... % 0
+ (1172,61){-784,-414}... % *1
+ (791,-47){-1,0}... % 2
+ (415,91){-1,1}... % 3
+ (265,576){0,1}... % 4
+ (370,1444){232,1297}... % 5
+ (423,1955){0,1}... % 6
+ (405,2124){-71,274}... % *7
+ (352,2229){-1,1}... % 8
+ (235,2286){-1,0}... % 9
+ (105,2226){-1,-1}...{0,-1} % 10
+ (34,1984)-- % 11
+ (-45,1990){-158,548}... % 12
+ (-69,2060){0,1}... % 13
+ (95,2494){1,1}... % 14
+ (410,2607){1,0}... % 15
+ (686,2493){1,-1}... % 16
+ (779,2323){125,-423}... % *17
+ (811,2070){0,-1}... % 18
+ (720,1320){-260,-1489}... % 19
+ (649,751){0,-1}... % 20
+ (685,464){139,-478}... % *21
+ (788,273){1,-1}... % 22
+ (1007,183){1,0}... % 23
+ (1209,243){424,232}... % *24
+ (1431,415){1,1}...{354,488} % 25
+ (1543,560)--cycle); % 26
+
+n := 9;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 13;
+t8 := 16;
+t9 := 18;
+
+adj_fill.B(1, 6) % fixed x points
+ (5, 9) % fixed y points
+ ((3,2), (4,1)) % tied points
+ ((4,7)) % verticals
+ ((2,8)) % horizontals
+ ((2509,385){-167,-255}... % 0
+ (2370,169){-184,-274}... % *1
+ (2325,111){-1,-1}... % 2
+ (2002,-33){-1,0}... % 3
+ (1753,39){-1,1}...{-124,695} % 4
+ (1575,367){-32,193}...{-32,193} % 5
+ (1543,560){0,1}...{80,721} % 6
+ (1639,2283){321,201}...{475,251} % 7
+ (2233,2623)-- % 8
+ (2322,2570){-371,-234}... % 9
+ (2173,2437){-1,-1}... % 10
+ (2083,2279){-156,-423}... % *11
+ (2017,2014){-123,-735}... % 12
+ (1940,1048){0,-1}... % 13
+ (1983,524){164,-814}... % *14
+ (2104,234){1,-1}... % 15
+ (2191,199){1,0}... % 16
+ (2331,288){1,1}...{231,357} % 17
+ (2450,455)--cycle); % 18
+
+endchar(0);
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusm10.mf b/Master/texmf-dist/fonts/source/public/ams/eusm10.mf
new file mode 100644
index 00000000000..e908a975bb7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusm10.mf
@@ -0,0 +1,45 @@
+%% @metafontfile{
+%% filename="eusm10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "33388 45 204 1785"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusm10, the Euler script medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Medium 10pt ---------------------------------
+
+ font_identifier := "EUSM V2.2";
+
+ ptsize = 10;
+
+ leftside# = rightside# = 0h#;
+
+ input eusmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusm5.mf b/Master/texmf-dist/fonts/source/public/ams/eusm5.mf
new file mode 100644
index 00000000000..900dab655ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusm5.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusm5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "59575 47 207 1817"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusm5, the Euler script medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Medium 5pt ---------------------------------
+
+ font_identifier := "EUSM V2.2";
+
+ ptsize = 5;
+
+ leftside# = rightside# = 300h#;
+
+ xscale_factor := 1.2;
+
+ input eusmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusm6.mf b/Master/texmf-dist/fonts/source/public/ams/eusm6.mf
new file mode 100644
index 00000000000..36b9f295cb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusm6.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusm6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "46787 47 207 1819"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusm6, the Euler script medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Medium 6pt ---------------------------------
+
+ font_identifier := "EUSM V2.2";
+
+ ptsize = 6;
+
+ leftside# = rightside# = 150h#;
+
+ xscale_factor := 1.16;
+
+ input eusmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusm7.mf b/Master/texmf-dist/fonts/source/public/ams/eusm7.mf
new file mode 100644
index 00000000000..60712e6c884
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusm7.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusm7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "63955 47 207 1812"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusm7, the Euler script medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Medium 7pt ---------------------------------
+
+ font_identifier := "EUSM V2.2";
+
+ ptsize = 7;
+
+ leftside# = rightside# = 100h#;
+
+ xscale_factor := 1.13;
+
+ input eusmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusm8.mf b/Master/texmf-dist/fonts/source/public/ams/eusm8.mf
new file mode 100644
index 00000000000..b7c05e6cc93
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusm8.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusm8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "12849 47 207 1817"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusm8, the Euler script medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Medium 8pt ---------------------------------
+
+ font_identifier := "EUSM V2.2";
+
+ ptsize = 8;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.09;
+
+ input eusmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusm9.mf b/Master/texmf-dist/fonts/source/public/ams/eusm9.mf
new file mode 100644
index 00000000000..689d9b2db78
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusm9.mf
@@ -0,0 +1,47 @@
+%% @metafontfile{
+%% filename="eusm9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "20153 47 207 1817"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the parameter file for use with
+%% eusm9, the Euler script medium font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Medium 9pt ---------------------------------
+
+ font_identifier := "EUSM V2.2";
+
+ ptsize = 9;
+
+ leftside# = rightside# = 0h#;
+
+ xscale_factor := 1.04;
+
+ input eusmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/ams/eusmch.mf b/Master/texmf-dist/fonts/source/public/ams/eusmch.mf
new file mode 100644
index 00000000000..5f32b4b4b67
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/eusmch.mf
@@ -0,0 +1,3551 @@
+%% @metafontfile{
+%% filename="eusmch.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "16161 3551 10775 116461"
+%% keywords="amsfonts, tex, metafont , euler ",
+%% abstract="This is the driver file for use with
+%% the Euler script medium fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Euler Symbol Medium
+
+% ----- This font is set up as Math Symbol Font, \textfont2, page 427 of TeXbook
+% however, there are some alternate characters in nonstandard positions
+
+mode_setup;
+font_coding_scheme "TeX math symbols subset";
+
+% EULER SCRIPT MEDIUM PARAMETERS
+
+% These all in bitpad numbers (.001"):
+
+ programem = 3700;
+ baseline = 0;
+ ascender = capheight;
+ descender = 700;
+ depthy = 700; % depthy = 500;
+ capheight = 2600;
+ lcbody = 1700; %1700 for medium, 1800 for bold.
+ dotheight = 2600;
+ theight = 2330;
+ lfigheight = capheight;
+ nfigbody = lcbody;
+ nfigascender = ascender;
+ nfigdescender = descender;
+
+
+input eubase;
+more_side(100h#); % DEK
+
+% information for positioning of math accents --- DEK
+skewchar=oct"060"; skew#=1/36programem*h#;
+ligtable "A": skewchar kern 5skew#;
+ligtable "I": "J": skewchar kern 2skew#;
+charcode:=skewchar; shipout nullpicture;
+
+
+"aleph";
+
+charbegin( 64, 2668h#, capheight*v#, baseline );
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+t5 := 5;
+t6 := 6;
+t7 := 7;
+t8 := 8;
+t9 := 10;
+t10 := 11;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ ((2,1), (3,2), (7,3), (8,4)) % tied points
+ ((4,5), (9,10)) % verticals
+ ((5,6), (1,10)) % horizontals
+ ((2449,529){-321,229}...{-1,1} % 0
+ (1915,952){-314,259}... % 1
+ (1601,1211){-1.551,1.262}... % 2
+ (669,1959){-932,748}...{-63,638} % 3
+ (302,2549){-112,0}...{-112,0} % 4
+ (190,2549)-- % 5
+ (190,1820){1,-1}...{257,-205} % 6
+ (699,1347){105,-87}...{105,-87} % 7
+ (804,1260){555,-387}... % 8
+ (1525,704){998,-815}...{1,-1} % 9
+ (2294,2){79,0}...{79,0} % 10
+ (2373,2)--cycle); % 11
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 4;
+t5 := 7;
+t6 := 10;
+t7 := 11;
+
+adj_fill.B(1, 6) % fixed x points
+ () % fixed y points
+ ((3,3), (4,4)) % tied points
+ ((2,5)) % verticals
+ ((6,7)) % horizontals
+ ((250,5){111,384}...{111,384} % 0
+ (361,389){0,1}... % 1
+ (426,986){337,550}...{1,1} % 2
+ (699,1347)-- % 3
+ (804,1260){-31,-7}... % 4
+ (773,1253){-580,-590}... % 5
+ (614,1051){-215,-375}... % *6
+ (558,878){0,-1}... % 7
+ (668,550){1,-1}... % 8
+ (842,462){448,-119}...{1,0} % *9
+ (1116,431){-65,-426}...{-65,-426} % 10
+ (1051,5)--cycle); % 11
+
+n := 7;
+t1 := 1;
+t2 := 3;
+t3 := 4;
+t4 := 7;
+t5 := 8;
+t6 := 10;
+t7 := 12;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((2,5), (3,6)) % tied points
+ ((4,5), (1,7)) % verticals
+ ((2,6)) % horizontals
+ ((2450,1894){-58,-19}...{-58,-19} % 0
+ (2392,1875){-10,14}... % 1
+ (2230,1977){-1,0}...{-1,0} % 2
+ (2003,1977){-156,-16}...{-156,-16} % 3
+ (1847,1961){-1,0}... % 4
+ (1593,2001){-1,1}... % 5
+ (1536,2157){0,1}...{0,392} % 6
+ (1536,2549)-- % 7
+ (1625,2549){126,-501}... % 8
+ (1684,2439){1,-1}... % 9
+ (1843,2406){1,0}... % 10
+ (2288,2406){1,0}...{0,-1} % 11
+ (2450,2259)--cycle); % 12
+
+n := 6;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 7;
+
+adj_fill.D() % fixed x points
+ () % fixed y points
+ ((1,6), (3,2), (4,1), (6,5)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((1847,1961){-1,-1}... % 0
+ (1601,1300){0,-1}...{0,-1} % 1
+ (1601,1211)-- % 2
+ (1915,952){-1,1}... % 3
+ (1800,1228){0,1}... % 4
+ (1855,1732){203,749}... % *5
+ (1920,1894){147.8,245.5}...{413,187} % *6
+ (2003,1977)--cycle); % 7
+
+endchar(0);
+
+% UPPER CASE
+set_stem_round(230,350,270,270,290,310);
+
+"smua";
+
+charbegin( "A", 2653h#, capheight*v#, baseline );
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 12;
+t9 := 14;
+t10 := 18;
+t11 := 25;
+
+adj_fill.A(1) % fixed x points
+ (7, 8) % fixed y points
+ ((1,5), (2,1), (3,2), (4,3), (7,4), (8,4))% tied points
+ ((6,9)) % verticals
+ ((5,10), (1,11)) % horizontals
+ ((2199,2519){-377,-119}...{-377,-119} % 0
+ (1822,2400){-207,-62}... % 1
+ (1626,2292){-1,-1}... % 2
+ (1382,1870){-527,-1261}...{-126,-432} % *3
+ (1099,1031){-78,-158}...{-78,-158} % 4
+ (1021,873){-174,-335}... % 5
+ (579,139){-1,-1}... % 6
+ (200,-36){-1,0}... % 7
+ (-32,57){-1,1}... % 8
+ (-131,313){0,1}... % 9
+ (-74,450){1,1}...{1,0} % 10
+ (38,485)-- % 11
+ (38,485){1,0}... % 12
+ (152,434){1,-1}... % 13
+ (177,367){0,-1}... % 14
+ (169,307){-100,-540}... % 15
+ (158,217){0,-1}... % 16
+ (196,151){1,-1}... % 17
+ (290,116){1,0}... % 18
+ (447,198){1,1}... % 19
+ (617,473){478,1040}...{413,1047} % *20
+ (925,1238){422,1046}... % 21
+ (1243,1937){583,1093}... % *22
+ (1508,2331){1,1}... % 23
+ (1787,2488){683,212}...{1,0} % *24
+ (2191,2543)--cycle); % 25
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 13;
+t8 := 16;
+t9 := 18;
+
+adj_fill.B(1) % fixed x points
+ (9) % fixed y points
+ ((3,6), (4,7), (5,1), (6,5)) % tied points
+ ((4,7)) % verticals
+ ((2,8)) % horizontals
+ ((2631,306){-1,-1}... % 0
+ (2310,40){-569,-360}... % *1
+ (2062,-54){-1,0}... % 2
+ (1927,-4){-1,1}... % 3
+ (1873,107){-73,291}... % *4
+ (1854,287){0,1}...{0,1} % 5
+ (1852,873){-3,158}...{-3,158} % 6
+ (1849,1031){-10,1338}...{-10,1338} % 7
+ (1839,2369){-17,31}...{-17,31} % 8
+ (1822,2400)-- % 9
+ (2199,2519){-40,-38}... % 10
+ (2159,2481){-40,-38}... % 11
+ (2106,2371){-54,-763}... % 12
+ (2093,1259){0,-1}... % 13
+ (2119,476){74,-840}... % 14
+ (2205,229){1,-1}... % 15
+ (2289,206){1,0}... % 16
+ (2425,251){296,172}...{1,1} % *17
+ (2585,378)--cycle); % 18
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,7), (2,2), (3,3), (4,6)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1849,1031){-750,0}...{-750,0} % 0
+ (1099,1031)-- % 1
+ (1021,873){831,0}...{831,0} % 2
+ (1852,873)--cycle); % 3
+
+endchar(0);
+
+"smub";
+
+charbegin( "B", 2618h#, capheight*v#, baseline );
+n := 7;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 9;
+
+adj_fill.A(1) % fixed x points
+ () % fixed y points
+ ((1,6), (3,1), (4,2), (5,3), (6,4), (7,5))% tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((296,180){1,0}... % 0
+ (772,407){1,1}... % 1
+ (919,739){199,909}...{0,1} % *2
+ (971,1316){0,1082}...{0,1082} % 3
+ (971,2398)-- % 4
+ (1229,2419){0,-964}...{0,-1} % 5
+ (1229,1455){-13,-164}...{-13,-164} % 6
+ (1216,1291){-99,-787}... % 7
+ (1087,712){-213,-507}...{-1,-1} % 8
+ (759,180)--cycle); % 9
+
+n := 13;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+t6 := 12;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+t10 := 18;
+t11 := 22;
+t12 := 24;
+t13 := 25;
+
+adj_fill.B(1, 12) % fixed x points
+ (6, 7, 10) % fixed y points
+ ((1,9), (3,2), (4,1), (6,7), (7,7), (13,8))% tied points
+ ((5,8), (2,11)) % verticals
+ ((4,9)) % horizontals
+ ((1321,1407){1,0}... % 0
+ (1854,1593){1,1}... % 1
+ (1995,1950){0,1}... % 2
+ (1875,2266){-1,1}... % 3
+ (1634,2379){-646,153}...{-1,0} % *4
+ (1229,2419){-258,-21}...{-258,-21} % 5
+ (971,2398){-1,0}... % 6
+ (440,2181){-1,-1}... % 7
+ (312,1929){0,-1}... % 8
+ (329,1804){88,-417}... % 9
+ (353,1702){0,-1}... % 10
+ (317,1583){-1,-1}...{-1,0} % 11
+ (190,1528)-- % 12
+ (190,1528){-1,0}... % 13
+ (117,1564){-1,1}... % 14
+ (54,1768){0,1}... % 15
+ (244,2189){1,1}...{447,68} % 16
+ (958,2523){255,121}...{255,121} % 17
+ (1213,2644){16,-107}...{16,-107} % 18
+ (1229,2537){1,0}... % 19
+ (1807,2489){900,-183}... % *20
+ (2129,2354){1,-1}... % 21
+ (2251,2048){0,-1}... % 22
+ (2075,1617){-1,-1}...{-601,-307} % 23
+ (1812,1417){11,-26}...{11,-26} % 24
+ (1823,1391)--cycle); % 25
+
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 12;
+t9 := 16;
+t10 := 17;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((3,8), (4,9), (5,3), (6,4), (9,5), (10,6))% tied points
+ ((2,8)) % verticals
+ ((4,7), (1,9)) % horizontals
+ ((196,-14){1098,0}... % 0
+ (1294,-14){1,0}... % 1
+ (2222,352){1,1}... % 2
+ (2427,853){0,1}... % 3
+ (2269,1230){-1,1}...{-1,0} % 4
+ (1823,1391){-502,16}...{-502,16} % 5
+ (1321,1407){-1,0}...{0,1} % 6
+ (1229,1455)-- % 7
+ (1216,1291){660,75}... % 8
+ (1466,1303){1,0}... % 9
+ (1796,1263){546,-155}... % *10
+ (2012,1148){1,-1}... % 11
+ (2156,810){0,-1}... % 12
+ (2009,351){-1,-1}... % 13
+ (1752,222){-667,-174}... % *14
+ (1342,177){-1,0}...{-1,0} % 15
+ (759,180){-463,0}...{-463,0} % 16
+ (296,180)--cycle); % 17
+
+endchar(0);
+
+"smuc";
+
+charbegin( "C", 2031h#, capheight*v#, baseline );
+n := 17;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 12;
+t8 := 15;
+t9 := 18;
+t10 := 19;
+t11 := 21;
+t12 := 24;
+t13 := 27;
+t14 := 29;
+t15 := 31;
+t16 := 33;
+t17 := 34;
+
+adj_fill.A(10) % fixed x points
+ (2, 9, 17) % fixed y points
+ ((1,1), (17,1)) % tied points
+ ((7,12), (5,14), (3,16)) % verticals
+ ((8,11), (6,13), (4,15)) % horizontals
+ ((914,1881){1,1}... % 0
+ (1031,1922){1,0}... % 1
+ (1146,1879){1,-1}... % 2
+ (1161,1729){-56,-261}... % 3
+ (1192,1557){1,-1}... % 4
+ (1332,1520){1,0}... % 5
+ (1600,1640){1,1}... % 6
+ (1719,2007){0,1}... % 7
+ (1607,2349){-1,1}... % 8
+ (1254,2477){-1,0}... % 9
+ (724,2282){-1,-1}... % 10
+ (509,1875){-291,-1028}... % *11
+ (433,1254){0,-1}... % 12
+ (517,677){324,-990}... % *13
+ (757,264){1,-1}... % 14
+ (1189,71){1,0}... % 15
+ (1569,229){1,1}...{166,754} % 16
+ (1710,537){39,25}...{39,25} % 17
+ (1749,562)-- % 18
+ (1919,389){-219,-467}... % 19
+ (1791,190){-1,-1}... % 20
+ (1099,-56){-1,0}... % 21
+ (474,200){-1,1}... % 22
+ (240,602){-316,961}... % *23
+ (158,1161){0,1}... % 24
+ (254,1833){370,1148}... % *25
+ (528,2309){1,1}... % 26
+ (1320,2592){1,0}... % 27
+ (1851,2424){1,-1}... % 28
+ (1974,2050){0,-1}... % 29
+ (1795,1582){-1,-1}... % 30
+ (1344,1409){-1,0}... % 31
+ (955,1533){-1,1}... % 32
+ (873,1745){0,1}...{1,1} % 33
+ (914,1881)--cycle); % 34
+
+endchar(0);
+
+"smud";
+
+charbegin( "D", 2875h#, capheight*v#, baseline );
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 9;
+t5 := 11;
+t6 := 13;
+t7 := 14;
+t8 := 16;
+t9 := 19;
+t10 := 20;
+t11 := 23;
+t12 := 27;
+t13 := 28;
+t14 := 29;
+
+adj_fill.A(1) % fixed x points
+ (6, 7) % fixed y points
+ ((6,1), (7,1), (9,2), (10,3), (13,4), (14,5))% tied points
+ ((5,8), (3,11)) % verticals
+ ((4,9), (2,12)) % horizontals
+ ((211,16){1078,0}... % 0
+ (1289,16){1,0}... % 1
+ (2311,434){1,1}... % 2
+ (2728,1451){0,1}... % 3
+ (2477,2214){-1,1}... % 4
+ (2002,2471){-1188,347}...{-1,0} % *5
+ (1289,2561){0,75}...{0,75} % 6
+ (1289,2636){-15,23}...{-15,23} % 7
+ (1274,2659){-211,-114}...{-211,-114} % 8
+ (1063,2545){-1,0}... % 9
+ (253,2224){-1,-1}... % 10
+ (78,1814){0,-1}... % 11
+ (132,1607){1,-1}...{1,0} % 12
+ (224,1566)-- % 13
+ (224,1566){1,0}... % 14
+ (331,1624){1,1}... % 15
+ (368,1749){0,1}... % 16
+ (341,1994){0,1}... % 17
+ (425,2202){1,1}...{1,0} % 18
+ (1039,2431){250,-2}...{250,-2} % 19
+ (1289,2429){1,0}... % 20
+ (1829,2362){896,-257}... % *21
+ (2185,2172){1,-1}... % 22
+ (2458,1431){0,-1}... % 23
+ (2379,865){-304,-962}... % *24
+ (2154,469){-1,-1}... % 25
+ (1800,269){-865,-270}... % *26
+ (1289,199){-1,0}... % 27
+ (789,199){-2,0}...{-475,0} % 28
+ (314,199)--cycle); % 29
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 9;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,5), (3,2), (4,3), (6,4)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((314,199){1,0}... % 0
+ (879,444){1,1}... % 1
+ (997,739){160,841}... % *2
+ (1039,1285){0,1}...{0,1146} % 3
+ (1039,2431)-- % 4
+ (1289,2429){0,-867}... % 5
+ (1289,1562){0,-1}... % 6
+ (1202,855){-336,-1188}... % *7
+ (953,374){-164,-175}...{-164,-175} % 8
+ (789,199)--cycle); % 9
+
+endchar(0);
+
+"smue";
+
+charbegin( "E", 2052h#, capheight*v#, baseline );
+n := 18;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+%t7 := 14;
+t7 := 14.5; % DEK
+t8 := 16;
+t9 := 17;
+t10 := 18;
+t11 := 21;
+t12 := 23;
+t13 := 25;
+t14 := 28;
+t15 := 29;
+t16 := 32;
+t17 := 34;
+t18 := 37;
+
+adj_fill.A(1, 4, 14, 15) % fixed x points
+ (8, 10, 18) % fixed y points
+ ((9,1), (10,1)) % tied points
+ ((7,11), (5,13), (3,16)) % verticals
+ ((6,12), (14,15), (2,17)) % horizontals
+ ((1865,392){-187,-376}... % 0
+ (1783,252){-1,-1}... % 1
+ (1048,-45){-1,0}... % 2
+ (621,16){-730,235}... % *3
+ (318,190){-1,1}... % 4
+ (157,639){0,1}... % 5
+ (386,1175){1,1}...{524,76} % 6
+ (876,1402){3,38}...{3,38} % 7
+ (879,1440){-273,91}... % 8
+ (592,1607){-1,1}... % 9
+ (455,1997){0,1}... % 10
+ (627,2406){1,1}... % 11
+ (1249,2616){1,0}... % 12
+ (1628,2473){1,-1}... % 13
+ (1718,2239){0,-1}... % 14
+ (1640,2026){-1,-1}... % 15
+ (1495,1942){-1,0}...{-1,1} % 16
+ (1384,1981)-- % 17
+ (1384,1981){-1,1}... % 18
+ (1360,2060){0,1}... % 19
+ (1408,2171){486,715}... % 20
+ (1453,2296){0,1}... % 21
+ (1391,2423){-1,1}... % 22
+ (1145,2499){-1,0}... % 23
+ (867,2387){-1,-1}... % 24
+ (700,1954){0,-1}... % 25
+ (837,1604){1,-1}... % 26
+ (1074,1483){609,-164}...{1,0} % *27
+ (1446,1440){0,-93}...{0,-93} % 28
+ (1446,1347){-1,0}... % 29
+ (945,1295){-806,-199}... % *30
+ (640,1148){-1,-1}... % 31
+ (453,695){0,-1}... % 32
+ (618,244){1,-1}... % 33
+ (1107,90){1,0}... % 34
+ (1527,288){1,1}...{106,609} % 35
+ (1659,557){43,13}...{43,13} % 36
+ (1702,570)--cycle); % 37
+
+endchar(0);
+
+"smuf";
+
+%charbegin( "F", 2204h#, capheight*v#, baseline );
+charbegin( "F", (2204+100)*h#, capheight*v#, baseline ); % DEK
+n := 14;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 9;
+t7 := 11;
+t8 := 12;
+t9 := 13;
+t10 := 15;
+t11 := 17;
+t12 := 19;
+t13 := 22;
+t14 := 23;
+
+adj_fill.A(1, 12) % fixed x points
+ (7, 9, 12, 13) % fixed y points
+ ((3,1), (4,2), (7,3), (8,3)) % tied points
+ ((6,10)) % verticals
+ ((5,11), (2,14)) % horizontals
+ ((2514,2528){-148,-275}... % 0
+ (2366,2253){-148,-275}... % 1
+ (2203,2127){-1,0}... % 2
+ (2043,2159){-528,155}...{-720,241} % 3
+ (1556,2304){-258,64}...{-258,64} % 4
+ (1298,2368){-584,140}... % 5
+ (1033,2409){-1,0}... % 6
+ (523,2225){-1,-1}... % 7
+ (403,1963){0,-1}... % 8
+ (416,1811){181,-733}... % 9
+ (447,1686){0,-1}...{-1,-1} % 10
+ (407,1570)-- % 11
+ (407,1570){-1,-1}... % 12
+ (303,1516){-1,0}... % 13
+ (181,1570){-1,1}... % 14
+ (128,1738){0,1}... % 15
+ (330,2242){1,1}... % 16
+ (1130,2525){1,0}...{599,-114} % 17
+ (1298,2507){258,93}...{258,93} % 18
+ (1556,2600){0,-126}...{0,-126} % 19
+ (1556,2474){559,-128}... % 20
+ (2112,2361){303,-48}... % 21
+ (2231,2346){1,0}... % 22
+ (2369,2429){84,130}...{84,130} % 23
+ (2453,2559)--cycle); % 24
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 10;
+t5 := 11;
+t6 := 13;
+t7 := 14;
+t8 := 16;
+t9 := 22;
+t10 := 25;
+
+adj_fill.B(8) % fixed x points
+ (2, 10) % fixed y points
+ ((1,4), (6,2), (7,1), (10,4)) % tied points
+ ((6,7)) % verticals
+ ((4,5), (3,9)) % horizontals
+ ((91,421){1,1}... % 0
+ (213,468){1,0}... % 1
+ (287,447){1,-1}... % 2
+ (355,332){170,-416}... % 3
+ (434,202){1,-1}... % 4
+ (704,92){1,0}... % 5
+ (1091,300){1,1}... % 6
+ (1244,571){207,660}... % *7
+ (1298,960){0,1}...{0,309} % 8
+ (1298,1269){-608,0}...{-608,0} % 9
+ (690,1269){69,113}...{69,113} % 10
+ (759,1382){539,0}...{539,0} % 11
+ (1298,1382){0,986}...{0,986} % 12
+ (1298,2368)-- % 13
+ (1556,2304){0,-922}...{0,-922} % 14
+ (1556,1382){535,0}...{535,0} % 15
+ (2091,1382){-103,-113}...{-103,-113} % 16
+ (1988,1269){-432,0}...{-432,0} % 17
+ (1556,1269){0,-168}... % 18
+ (1556,1101){0,-1}... % 19
+ (1487,625){-267,-817}... % *20
+ (1289,284){-1,-1}... % 21
+ (504,-56){-1,0}... % 22
+ (129,104){-1,1}... % 23
+ (39,305){0,1}...{1,1} % 24
+ (91,421)--cycle); % 25
+mathcorr(100h#); % DEK
+endchar(0);
+
+"smug";
+
+%charbegin( "G", 2038h#, capheight*v#, depthy*v#);
+charbegin( "G", 2038h#, capheight*v#, 2/3descender*v#); % DEK
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 11;
+t8 := 12;
+t9 := 15;
+t10 := 17;
+t11 := 19;
+t12 := 21;
+t13 := 22;
+
+adj_fill.A(8) % fixed x points
+ (1) % fixed y points
+ ((1,2), (13,1)) % tied points
+ ((6,9), (4,11), (1,2)) % verticals
+ ((7,8), (5,10), (3,12)) % horizontals
+ ((1839,1445){-186,-46}...{-186,-46} % 0
+ (1653,1399){-80,-402}... % 1
+ (1526,1106){-1,-1}... % 2
+ (1072,937){-1,0}... % 3
+ (675,1113){-1,1}... % 4
+ (485,1688){0,1}... % 5
+ (722,2290){1,1}... % 6
+ (1160,2462){1,0}... % 7
+ (1492,2339){1,-1}... % 8
+ (1587,2119){0,-1}... % 9
+ (1532,1919){-1,-1}...{-1,0} % 10
+ (1282,1841)-- % 11
+ (1276,1779){596,-122}... % 12
+ (1446,1748){1,0}... % 13
+ (1739,1885){1,1}... % 14
+ (1839,2154){0,1}... % 15
+ (1728,2442){-1,1}... % 16
+ (1255,2585){-1,0}... % 17
+ (486,2329){-1,-1}... % 18
+ (214,1684){0,-1}... % 19
+ (417,1071){1,-1}... % 20
+ (1046,825){1,0}...{307,223} % 21
+ (1572,976)--cycle); % 22
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+t10 := 17;
+
+adj_fill.B() % fixed x points
+ (1, 9) % fixed y points
+ ((1,3), (4,2), (5,1), (10,3)) % tied points
+ ((4,6), (2,8)) % verticals
+ ((3,7)) % horizontals
+ ((221,73){-1,-1}... % 0
+ (168,-53){0,-1}... % 1
+ (287,-331){1,-1}... % 2
+ (746,-489){1,0}... % 3
+ (1565,-148){1,1}... % 4
+ (1766,272){272,1115}... % *5
+ (1837,967){0,1}...{0,1} % 6
+ (1839,1445)-- % 7
+ (1572,976){0,-1}... % 8
+ (1582,635){10,-341}... % 9
+ (1528,172){-235,-789}... % *10
+ (1347,-154){-1,-1}... % 11
+ (896,-343){-1,0}... % 12
+ (586,-241){-1,1}... % 13
+ (504,-61){-122,625}... % 14
+ (452,77){-1,1}... % 15
+ (355,115){-1,0}...{-1,-1} % 16
+ (221,73)--cycle); % 17
+
+endchar(0);
+
+"smuh";
+
+%charbegin( "H", 3075h#, capheight*v#, baseline );
+charbegin( "H", (3075+50)*h#, capheight*v#, baseline ); % DEK
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 7;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 13;
+t8 := 16;
+t9 := 17;
+
+adj_fill.A(9) % fixed x points
+ (4, 6) % fixed y points
+ ((1,3), (2,1), (4,2), (5,2)) % tied points
+ ((3,7)) % verticals
+ ((2,8)) % horizontals
+ ((1508,2493){-180,-80}...{-180,-80} % 0
+ (1328,2413){-244,0}...{-244,0} % 1
+ (1084,2413){-1,0}... % 2
+ (699,2374){-617,-149}... % *3
+ (467,2264){-1,-1}... % 4
+ (349,2022){0,-1}... % 5
+ (364,1878){185,-848}... % 6
+ (396,1731){0,-1}...{-1,-1} % 7
+ (368,1630)-- % 8
+ (368,1630){-1,-1}... % 9
+ (247,1562){-1,0}... % 10
+ (158,1610){-1,1}... % 11
+ (111,1711){-63,272}... % *12
+ (95,1882){0,1}... % 13
+ (306,2309){1,1}... % 14
+ (627,2493){778,248}... % *15
+ (1084,2557){1,0}...{605,-13} % 16
+ (1512,2544)--cycle); % 17
+
+n := 12;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 8.667;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 12;
+t10 := 15;
+t11 := 17;
+t12 := 18;
+
+adj_fill.B(1, 5, 11) % fixed x points
+ (2, 12) % fixed y points
+ ((1,6), (6,1), (7,3), (8,4), (9,5), (12,6))% tied points
+ ((4,8)) % verticals
+ ((3,10)) % horizontals
+ ((59,354){1,1}... % 0
+ (163,394){1,0}... % 1
+ (277,367){1,-1}... % 2
+ (327,283){157,-378}... % 3
+ (378,189){1,-1}... % 4
+ (556,123){1,0}... % 5
+ (844,258){1,1}... % 6
+ (1022,663){240,1114}... % *7
+ (1084,1372){0,1}...{-14,861} % 8
+ (1084,2413)-- % 9
+ (1328,2413){0,-979}... % 10
+ (1328,1434){0,-2}...{0,-140} % 11
+ (1328,1294){0,-1}... % 12
+ (1243,680){-328,-1042}... % *13
+ (1000,252){-1,-1}... % 14
+ (396,-41){-1,0}... % 15
+ (112,68){-1,1}... % 16
+ (21,259){0,1}...{1,1} % 17
+ (59,354)--cycle); % 18
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,8), (2,4), (3,5), (4,7)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((2175,1434){-847,0}...{-847,0} % 0
+ (1328,1434)-- % 1
+ (1328,1294){828,0}...{828,0} % 2
+ (2156,1294)--cycle); % 3
+
+n := 13;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 10;
+t7 := 13;
+t8 := 14;
+t9 := 15;
+t10 := 17;
+t11 := 21;
+t12 := 24;
+t13 := 26;
+
+adj_fill.D(1, 8) % fixed x points
+ (9, 13) % fixed y points
+ ((4,7), (5,8), (7,9), (8,9)) % tied points
+ ((3,11)) % verticals
+ ((6,10), (2,12)) % horizontals
+ ((3028,332){-179,-290}... % 0
+ (2886,109){-1,-1}... % 1
+ (2542,-47){-1,0}... % 2
+ (2324,46){-1,1}... % 3
+ (2183,343){-190,793}... % *4
+ (2134,839){0,1}...{43,671} % 5
+ (2156,1294){19,140}...{19,140} % 6
+ (2175,1434){100,545}... % 7
+ (2340,2023){399,969}... % *8
+ (2574,2403){1,1}... % 9
+ (2949,2574){1,0}... % 10
+ (3084,2541){1,-1}... % 11
+ (3148,2423){0,-1}...{-1,-1} % 12
+ (3103,2310)-- % 13
+ (3103,2310){-1,-1}... % 14
+ (3007,2255){-1,0}... % 15
+ (2922,2301){-1,1}... % 16
+ (2780,2364){-1,0}... % 17
+ (2638,2309){-1,-1}... % 18
+ (2528,2126){-191.1,-483.1}... % *19
+ (2447,1826){-258,-1384}... % *20
+ (2380,925){0,-1}... % 21
+ (2425,431){172,-779}... % *22
+ (2552,146){1,-1}... % 23
+ (2684,109){1,0}... % 24
+ (2816,199){1,1}...{301,542} % 25
+ (2964,389)--cycle); % 26
+
+mathcorr(50h#); % DEK
+endchar(0);
+
+"smui";
+
+%charbegin( 125, 1395h#, capheight*v#, baseline );
+%charbegin( 123, 1395h#, capheight*v#, baseline ); % DEK
+charbegin( "I", 1395h#, capheight*v#, baseline ); % NGB
+
+n := 8;
+t1 := 1;
+t2 := 2;
+t3 := 7;
+t4 := 9;
+t5 := 10;
+t6 := 12;
+t7 := 15;
+t8 := 16;
+
+adj_fill.A(8) % fixed x points
+ (4, 5) % fixed y points
+ ((1,3), (2,1), (4,2), (5,2)) % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((1336,2461){-175,-39}...{-175,-39} % 0
+ (1161,2422){-231,0}...{-231,0} % 1
+ (930,2422){-1,0}... % 2
+ (568,2379){-598,-167}... % *3
+ (332,2255){-1,-1}... % 4
+ (245,2065){0,-1}... % 5
+ (255,1983){154,-518}... % 6
+ (287,1855){0,-1}... % 7
+ (237,1737){-1,-1}...{-1,0} % 8
+ (158,1704)-- % 9
+ (158,1704){-1,0}... % 10
+ (78,1741){-1,1}... % 11
+ (10,1940){0,1}... % 12
+ (160,2300){1,1}... % 13
+ (521,2489){916,255}... % *14
+ (1076,2555){1,0}...{354,-16} % 15
+ (1386,2534)--cycle); % 16
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 13;
+t9 := 15;
+t10 := 16;
+
+adj_fill.B(1, 9) % fixed x points
+ (2, 10) % fixed y points
+ ((1,4), (5,1), (6,3), (10,4)) % tied points
+ ((4,7)) % verticals
+ ((3,8)) % horizontals
+ ((25,377){1,1}... % 0
+ (130,420){1,0}... % 1
+ (227,364){1,-1}... % 2
+ (259,259){176,-742}... % 3
+ (321,138){1,-1}... % 4
+ (454,102){1,0}... % 5
+ (717,234){1,1}... % 6
+ (875,562){213,867}... % *7
+ (930,1101){0,1}...{0,1321} % 8
+ (930,2422)-- % 9
+ (1161,2422){0,-1295}... % 10
+ (1161,1127){0,-1}... % 11
+ (836,168){-1,-1}... % 12
+ (379,-52){-1,0}... % 13
+ (92,49){-1,1}... % 14
+ (0,254){0,1}...{1,1} % 15
+ (25,377)--cycle); % 16
+
+endchar(0);
+
+"smuj";
+
+%charbegin( "J", 1674h#, capheight*v#, depthy*v#);
+charbegin( "J", 1674h#, capheight*v#, 2/3descender*v#); % DEK
+n := 16;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 7;
+t7 := 10;
+t8 := 12;
+t9 := 14;
+t10 := 15;
+t11 := 18;
+t12 := 20;
+t13 := 24;
+t14 := 29;
+t15 := 31;
+t16 := 33;
+
+adj_fill.A(10) % fixed x points
+ (1, 16) % fixed y points
+ ((1,3), (4,1), (5,2), (9,2), (10,1), (16,3))% tied points
+ ((8,11), (6,13), (2,15)) % verticals
+ ((9,10), (7,12), (3,14)) % horizontals
+ ((358,1566){1,0}... % 0
+ (459,1629){1,1}... % 1
+ (503,1850){0,1}... % 2
+ (629,2201){1,1}...{347,45} % 3
+ (1160,2428){0,-1133}...{0,-1133} % 4
+ (1160,1295){-12,-126}...{-12,-126} % 5
+ (1148,1169){0,-295}... % 6
+ (1160,652){0,-1}... % 7
+ (1102,167){-225,-801}... % *8
+ (935,-149){-1,-1}... % 9
+ (582,-315){-1,0}... % 10
+ (337,-229){-1,1}... % 11
+ (250,72){0,1}... % 12
+ (596,820){1,1}...{752,294} % 13
+ (1148,1169)-- % 14
+ (1160,1295){-648,-249}... % 15
+ (477,873){-1,-1}... % 16
+ (126,403){-474,-934}... % *17
+ (3,-61){0,-1}... % 18
+ (128,-369){1,-1}... % 19
+ (469,-478){1,0}... % 20
+ (783,-392){639,330}... % *21
+ (1108,-148){1,1}... % 22
+ (1323,242){290,966}... % *23
+ (1398,818){0,1}... % 24
+ (1398,2376){0,1}... % 25
+ (1398,2460){232,78}...{232,78} % 26
+ (1630,2538){-11,44}...{-11,44} % 27
+ (1619,2582){-474,8}... % 28
+ (1398,2581){-1,0}... % 29
+ (414,2193){-1,-1}... % 30
+ (207,1765){0,-1}... % 31
+ (254,1613){1,-1}...{1,0} % 32
+ (358,1566)--cycle); % 33
+
+endchar(0);
+
+"smuk";
+
+charbegin( "K", 2847h#, capheight*v#, baseline );
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+
+adj_fill.A(9) % fixed x points
+ (4, 6) % fixed y points
+ ((1,3), (2,1), (4,2), (5,2)) % tied points
+ ((3,7)) % verticals
+ ((2,8)) % horizontals
+ ((1476,2490){-164,-77}...{-164,-77} % 0
+ (1312,2413){-254,0}...{-254,0} % 1
+ (1058,2413){-1,0}... % 2
+ (446,2204){-1,-1}... % 3
+ (349,2007){0,-1}... % 4
+ (359,1875){85,-587}... % 5
+ (382,1750){0,-1}...{-1,-1} % 6
+ (349,1616)-- % 7
+ (349,1616){-1,-1}... % 8
+ (234,1566){-1,0}... % 9
+ (131,1608){-1,1}... % 10
+ (74,1832){0,1}... % 11
+ (238,2223){1,1}... % 12
+ (1202,2558){1,0}...{416,-26} % 13
+ (1498,2540)--cycle); % 14
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+t10 := 17;
+
+adj_fill.B(9) % fixed x points
+ (2, 10) % fixed y points
+ ((1,6), (4,1), (5,3), (6,4), (7,5), (10,6))% tied points
+ ((4,5)) % verticals
+ ((3,8)) % horizontals
+ ((45,358){1,1}... % 0
+ (146,401){1,0}... % 1
+ (237,384){1,-1}... % 2
+ (302,299){234,-393}... % 3
+ (379,194){1,-1}... % 4
+ (533,128){1,0}... % 5
+ (836,273){1,1}... % 6
+ (1000,576){222,757}...{0,1} % *7
+ (1058,1030){0,1383}...{0,1383} % 8
+ (1058,2413)-- % 9
+ (1312,2413){0,-1109}...{0,-1109} % 10
+ (1312,1304){-12,-108}...{-12,-108} % 11
+ (1300,1196){0,-1}... % 12
+ (947,218){-1,-1}... % 13
+ (401,-30){-1,0}... % 14
+ (80,82){-1,1}... % 15
+ (6,255){0,1}...{1,1} % 16
+ (45,358)--cycle); % 17
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,8), (2,4), (3,5), (4,7)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((1375,1304){-63,0}...{-63,0} % 0
+ (1312,1304)-- % 1
+ (1300,1196){100,0}...{100,0} % 2
+ (1400,1196)--cycle); % 3
+
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 21;
+t11 := 25;
+t12 := 27;
+
+adj_fill.D(1, 6, 8) % fixed x points
+ (12) % fixed y points
+ ((3,7), (4,8), (7,9), (8,9)) % tied points
+ ((4,10)) % verticals
+ ((5,9), (2,11)) % horizontals
+ ((2752,329){-199,-580}... % 0
+ (2615,94){-1,-1}... % 1
+ (2311,-46){-1,0}... % 2
+ (2011,69){-1,1}... % 3
+ (1861,292){-471,904}...{-461,904} % 4
+ (1400,1196){-25,108}...{-25,108} % 5
+ (1375,1304){559,763}... % 6
+ (1934,2067){569,763}... % 7
+ (2205,2377){1,1}... % 8
+ (2405,2532){383,209}... % *9
+ (2588,2586){1,0}... % 10
+ (2778,2503){1,-1}... % 11
+ (2849,2351){0,-1}...{-1,-1} % 12
+ (2786,2218)-- % 13
+ (2786,2218){-1,-1}... % 14
+ (2660,2166){-1,0}... % 15
+ (2562,2249){-181,383}... % 16
+ (2444,2336){-1,0}... % 17
+ (2255,2250){-410,-326}... % *18
+ (2034,2010){-435,-596}... % 19
+ (1599,1414){-1.144,-1.64}...{-18,-27} % 20
+ (1581,1387){7,-66}... % 21
+ (1588,1321){.5728,-1.879}... % 22
+ (1930,674){342,-647}... % 23
+ (2255,232){1,-1}... % 24
+ (2413,154){1,0}... % 25
+ (2579,217){1,1}...{174,392} % 26
+ (2685,388)--cycle); % 27
+
+endchar(0);
+
+"smul";
+
+charbegin( "L", 2449h#, capheight*v#, baseline );
+rot := identity slanted -1/6; % DEK
+
+n := 7;
+t1 := 0;
+t2 := 8;
+t3 := 10;
+t4 := 11;
+t5 := 13;
+t6 := 15;
+t7 := 19;
+
+adj_fill.A(7) % fixed x points
+ (1) % fixed y points
+ ((1,3), (3,1), (4,1), (7,2)) % tied points
+ ((2,5)) % verticals
+ ((3,6)) % horizontals
+ ((545,651){457,312}... % 0
+ (791,854){1,1}... % 1
+ (936,1132){272,792}... % *2
+ (1063,1646){171,930}... % 3
+ (1176,2104){241,705}... % *4
+ (1304,2351){1,1}... % 5
+ (1527,2449){1,0}... % 6
+ (1695,2375){1,-1}... % 7
+ (1751,2221){0,-1}... % 8
+ (1770,2100){1,-1}...{1,0} % 9
+ (1887,2056)-- % 10
+ (1887,2056){1,0}... % 11
+ (2019,2134){1,1}... % 12
+ (2059,2288){0,1}... % 13
+ (1991,2479){-1,1}... % 14
+ (1696,2581){-1,0}... % 15
+ (1146,2383){-1,-1}... % 16
+ (925,2040){-372,-850}... % *17
+ (774,1533){-221,-1144}...{-1,-1} % 18
+ (535,777)--cycle); % 19
+
+n := 8;
+t1 := 0;
+t2 := 3;
+t3 := 8;
+t4 := 9;
+t5 := 13;
+t6 := 15;
+t7 := 19;
+t8 := 22;
+
+adj_fill.B() % fixed x points
+ (5, 8) % fixed y points
+ ((3,3), (4,2)) % tied points
+ ((1,8)) % verticals
+ ((3,6), (2,7)) % horizontals
+% ((2125,971){115,-476}... % 0
+% (2138,781){0,-1}... % 1
+% (2027,410){-1,-1}... % 2
+% (1755,265){-1,0}... % 3
+ (((2125,971){115,-476}... % 0 % DEK
+ (2138,781){0,-1}... % 1
+ (2027,410){-1,-1}... % 2
+ (1755,265){-1,0})slanted1/6{-1,0}... % 3
+ (1519,306){-553,163}... % *4
+ (1202,428){-1145,522}... % 5
+ (800,613){-547,222}... % *6
+ (655,650){-1,0}...{-504,-93} % 7
+ (545,651){-10,126}...{-10,126} % 8
+ (535,777){-1,-1}... % 9
+ (370,641){-784,-493}... % 10
+ (225,526){-1,-1}...{-59,-444} % 11
+ (25,53)-- % 12
+ (105,11){93,346}... % 13
+ (270,341){1,1}... % 14
+ (496,450){1,0}...{0,-12} % 15
+ (496,438){1,0}... % 16
+ (1035,208){723,-410}... % 17
+ (1393,34){613,-233}... % *18
+% (1648,-25){1,0}... % 19
+% (2054,178){1,1}... % 20
+% (2237,746){0,1}...{-86,450} % 21
+% (2198,992)--cycle); % 22
+ {1,0}((1648,-25){1,0}... % 19 % DEK
+ (2054,178){1,1}... % 20
+ (2237,746){0,1}...{-86,450} % 21
+ (2198,992))slanted1/6--cycle); % 22
+
+endchar(0);
+
+"smum";
+
+charbegin( "M", 3437h#, capheight*v#, baseline );
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 8;
+t7 := 9;
+t8 := 12;
+t9 := 14;
+t10 := 15;
+
+adj_fill.A(1, 9) % fixed x points
+ (2, 5, 10) % fixed y points
+ ((1,3), (5,1), (6,2), (10,3)) % tied points
+ ((4,7)) % verticals
+ ((3,8)) % horizontals
+ ((46,333){1,1}... % 0
+ (143,375){1,0}... % 1
+ (286,272){193,-425}... % 2
+ (439,172){1,0}... % 3
+ (602,260){1,1}... % 4
+ (746,550){195,755}... % *5
+ (797,1015){0,1}...{0,1221} % 6
+ (797,2236)-- % 7
+ (935,2097){0,-837}... % 8
+ (935,1260){0,-1}... % 9
+ (852,547){-320,-1171}... % *10
+ (615,89){-1,-1}... % 11
+ (310,-45){-1,0}... % 12
+ (68,64){-1,1}... % 13
+ (-2,213){0,1}...{1,1} % 14
+ (46,333)--cycle); % 15
+
+n := 16;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 14;
+t7 := 15;
+t8 := 16;
+t9 := 18;
+t10 := 19;
+t11 := 22;
+t12 := 23;
+t13 := 27;
+t14 := 30;
+t15 := 32;
+t16 := 33;
+
+adj_fill.B(15) % fixed x points
+ (3, 10, 12, 13) % fixed y points
+ ((1,6), (4,4), (5,5), (6,2), (7,1), (16,6))% tied points
+ ((9,10)) % verticals
+ ((8,11), (2,14)) % horizontals
+ ((3367,2300){-1,-1}... % 0
+ (3241,2242){-1,0}... % 1
+ (3167,2257){-1,1}... % 2
+ (3119,2316){-185,394}... % 3
+ (3094,2372){-1,1}... % 4
+ (3008,2411){-1,0}...{-1,-1} % 5
+ (2916,2374){-304,-236}...{-304,-236} % 6
+ (2612,2138){-214,-219}... % 7
+ (2115,1307){-795,-2071}...{-68,-511} % *8
+ (1817,67){-165,-129}...{-165,-129} % 9
+ (1652,-62){-32,26}...{-32,26} % 10
+ (1620,-36){-32,274}... % 11
+ (1351,1309){-685,2133}... % *12
+ (1159,1780){-415.9,788.2}...{-1,1} % *13
+ (935,2097){-138,139}...{-138,139} % 14
+ (797,2236){-209,237}... % 15
+ (498,2383){-1,0}... % 16
+ (277,2284){-1,-1}...{-80,-418} % 17
+ (139,1971)-- % 18
+ (64,1968){70,514}... % 19
+ (130,2247){173,459}... % *20
+ (237,2427){1,1}... % 21
+ (600,2588){1,0}... % 22
+ (1018,2403){1,-1}...{10,0} % 23
+ (1028,2403){1,-1}... % 24
+ (1494,1683){742,-1735}...{54,-357} % *25
+ (1770,668){18,-15}...{18,-15} % 26
+ (1788,653){141,552}... % 27
+ (2137,1615){826,1649}... % *28
+ (2614,2302){1,1}... % 29
+ (3169,2558){1,0}... % 30
+ (3349,2491){1,-1}... % 31
+ (3396,2395){0,-1}...{-1,-1} % 32
+ (3367,2300)--cycle); % 33
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 5.703;
+t5 := 6;
+t6 := 7;
+t7 := 9;
+t8 := 12;
+t9 := 14;
+
+adj_fill.C(1, 4) % fixed x points
+ (9) % fixed y points
+ ((5,5), (6,4)) % tied points
+ ((3,7)) % verticals
+ ((2,8)) % horizontals
+ ((3455,282){-285,-419}... % 0
+ (3274,67){-1,-1}... % 1
+ (2977,-98){-1,0}... % 2
+ (2749,1){-1,1}... % 3
+ (2628,358){-135,1361}... % *4
+ (2614,1362){0,1}...{32,767} % 5
+ (2612,2138)-- % 6
+ (2916,2374){-1,-1}... % 7
+ (2844,2200){0,-1}... % 8
+ (2844,1000){0,-1}... % 9
+ (2881,414){150,-880}... % *10
+ (2994,120){1,-1}... % 11
+ (3085,80){1,0}... % 12
+ (3242,154){1,1}...{257,420} % 13
+ (3385,337)--cycle); % 14
+
+endchar(0);
+
+"smun";
+
+%charbegin( "N", 2666h#, capheight*v#, baseline );
+charbegin( "N", (2666+50)*h#, capheight*v#, baseline ); % DEK
+n := 9;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 12;
+t8 := 14;
+t9 := 16;
+
+adj_fill.A(1, 8) % fixed x points
+ (1, 4, 9) % fixed y points
+ ((1,3), (4,1), (5,2), (9,3)) % tied points
+ ((3,6)) % verticals
+ ((2,7)) % horizontals
+ ((147,359){1,0}... % 0
+ (249,324){1,-1}... % 1
+ (298,250){205,-325}... % 2
+ (404,198){1,0}... % 3
+ (621,319){1,1}... % 4
+ (753,632){178,877}... % *5
+ (799,1196){0,1}...{0,957} % 6
+ (799,2153)-- % 7
+ (949,1973){0,-573}... % 8
+ (949,1400){0,-1}... % 9
+ (869,627){-307,-1244}... % *10
+ (642,156){-1,-1}... % 11
+ (278,-33){-1,0}... % 12
+ (73,43){-1,1}... % 13
+ (5,186){0,1}... % 14
+ (65,322){1,1}...{1,0} % 15
+ (147,359)--cycle); % 16
+
+n := 16;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 7;
+t5 := 8;
+t6 := 11;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 19;
+t12 := 20;
+t13 := 22;
+t14 := 25;
+t15 := 28;
+t16 := 29;
+
+adj_fill.B(2, 16) % fixed x points
+ (1, 7, 15) % fixed y points
+ ((1,4), (10,1), (11,2), (16,4)) % tied points
+ ((7,8), (4,13)) % verticals
+ ((6,9), (5,12), (3,14)) % horizontals
+ ((2838,2337){1,1}... % 0
+ (2866,2429){0,1}... % 1
+ (2811,2556){-1,1}... % 2
+ (2664,2614){-1,0}... % 3
+ (2367,2492){-1,-1}... % 4
+ (2252,2231){-157,-717}... % *5
+ (2210,1775){-2,-522}...{0,-1} % 6
+ (2220,504){-9,-45}...{-9,-45} % 7
+ (2211,459){-128,213}... % 8
+ (1380,1817){-1245,1903}... % *9
+ (966,2362){-1,1}... % 10
+ (526,2592){-1,0}... % 11
+ (159,2469){-1,-1}...{0,-1} % 12
+ (3,1970)-- % 13
+ (84,1987){72,365}... % 14
+ (209,2301){1,1}... % 15
+ (417,2378){1,0}... % 16
+ (592,2320){382,-225}...{1,-1} % *17
+ (799,2153){150,-180}...{150,-180} % 18
+ (949,1973){389,-526}...{162,-317} % 19
+ (2177,-52){165,107}...{165,107} % 20
+ (2342,55){-11,749}... % 21
+ (2344,1628){7,512}... % 22
+ (2361,2204){90,784}... % *23
+ (2434,2412){1,1}... % 24
+ (2511,2438){1,0}... % 25
+ (2588,2373){110,-315}... % 26
+ (2640,2295){1,-1}... % 27
+ (2718,2281){1,0}...{120,56} % 28
+ (2838,2337)--cycle); % 29
+mathcorr(50h#); % DEK
+endchar(0);
+
+"smuo";
+
+charbegin( "O", 2420h#, capheight*v#, baseline );
+n := 14;
+t1 := 0;
+%t2 := 2;
+t2 := 1; % DEK
+t3 := 4;
+t4 := 7;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+t8 := 16;
+t9 := 17;
+t10 := 20;
+t11 := 23;
+t12 := 26;
+t13 := 30;
+t14 := 31;
+
+adj_fill.A(8) % fixed x points
+ (1, 7, 14) % fixed y points
+ ((1,1), (14,1)) % tied points
+ ((2,13), (4,11), (6,9)) % verticals
+ ((5,10), (3,12)) % horizontals
+ ((1089,1536){-1,0}... % 0
+ (958,1593){-1,1}... % 1
+ (871,1866){0,1}... % 2
+ (1075,2369){1,1}... % 3
+ (1515,2537){1,0}... % 4
+ (1970,2345){1,-1}... % 5
+ (2166,1968){265,-962}... % *6
+ (2235,1383){0,-1}... % 7
+ (2139,702){-369,-1160}... % *8
+ (1866,223){-1,-1}... % 9
+ (1072,-79){-1,0}... % 10
+ (477,202){-1,1}... % 11
+ (243,600){-316,949}... % *12
+ (161,1151){0,1}... % 13
+ (572,2310){1,1}...{282,184} % 14
+ (752,2447)-- % 15
+ (803,2400){-1,-1}... % 16
+ (416,1295){0,-1}... % 17
+ (487,683){272,-1004}... % *18
+ (688,291){1,-1}... % 19
+ (1173,68){1,0}... % 20
+ (1656,262){1,1}... % 21
+ (1894,706){321,1115}... % *22
+ (1977,1377){0,1}... % 23
+ (1914,1951){-243,933}... % *24
+ (1734,2310){-1,1}... % 25
+ (1483,2417){-1,0}... % 26
+ (1170,2300){-1,-1}... % 27
+ (1065,2065){0,-1}... % 28
+ (1198,1790){1,-1}... % 29
+ (1237,1662){0,-1}...{-1,0} % 30
+ (1089,1536)--cycle); % 31
+
+endchar(0);
+
+"smup";
+
+charbegin( "P", 2246h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 11;
+t6 := 12;
+t7 := 13;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+t11 := 23;
+t12 := 25;
+
+adj_fill.A(1, 12) % fixed x points
+ (6, 8) % fixed y points
+ ((1,5), (3,1), (4,2), (6,3), (7,3), (12,4))% tied points
+ ((5,9), (2,11)) % verticals
+ ((4,10), (1,12)) % horizontals
+ ((1270,1183){1,0}... % 0
+ (1824,1365){1,1}... % 1
+ (2010,1878){0,1}... % 2
+ (1845,2274){-1,1}... % 3
+ (1616,2397){-575,166}... % *4
+ (1270,2440){-1,0}...{-235,0} % 5
+ (1035,2440){-1,0}... % 6
+ (673,2397){-597,-167}... % *7
+ (438,2273){-1,-1}... % 8
+ (301,1987){0,-1}... % 9
+ (327,1837){147,-622}... % 10
+ (356,1734){0,-1}...{-1,-1} % 11
+ (317,1615)-- % 12
+ (317,1615){-1,-1}... % 13
+ (210,1566){-1,0}... % 14
+ (119,1604){-1,1}... % 15
+ (58,1824){0,1}... % 16
+ (259,2295){1,1}...{1,0} % 17
+ (1035,2561){235,96}...{235,96} % 18
+ (1270,2657){0,-101}...{0,-101} % 19
+ (1270,2556){1,0}... % 20
+ (1791,2493){860,-241}... % *21
+ (2130,2315){1,-1}... % 22
+ (2259,1904){0,-1}... % 23
+ (2042,1356){-1,-1}...{-1,0} % 24
+ (1270,1072)--cycle); % 25
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 14;
+t9 := 16;
+t10 := 18;
+
+adj_fill.B() % fixed x points
+ (1, 10) % fixed y points
+ ((1,6), (4,2), (5,1), (6,5), (7,4), (10,6))% tied points
+ ((4,5), (2,9)) % verticals
+ ((3,8)) % horizontals
+ ((332,480){1,0}... % 0
+ (427,458){1,-1}... % 1
+ (473,275){0,-1}... % 2
+ (528,115){1,-1}... % 3
+ (650,78){1,0}... % 4
+ (878,204){1,1}... % 5
+ (994,462){157,701}... % *6
+ (1035,905){0,1}...{0,1535} % 7
+ (1035,2440)-- % 8
+ (1270,2440){0,-1257}... % 9
+ (1270,1183){0,-2}... % 10
+ (1270,1072){0,-2}... % 11
+ (1270,852){0,-1}... % 12
+ (1035,136){-1,-1}... % 13
+ (562,-41){-1,0}... % 14
+ (252,80){-1,1}... % 15
+ (169,311){0,1}... % 16
+ (225,450){1,1}...{1,0} % 17
+ (332,480)--cycle); % 18
+
+endchar(0);
+
+"smuq";
+
+charbegin( "Q", 2253h#, capheight*v#, baseline );
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 15;
+t9 := 18;
+t10 := 21;
+t11 := 23;
+
+adj_fill.A(6, 11) % fixed x points
+ (1, 5, 10) % fixed y points
+ ((1,2), (11,1)) % tied points
+ ((4,7), (2,9)) % verticals
+ ((3,8)) % horizontals
+ ((1322,291){370,118}... % 0
+ (1739,548){1,1}... % 1
+ (2104,1533){0,1}... % 2
+ (2040,2032){-245,833}... % *3
+ (1859,2366){-1,1}... % 4
+ (1225,2601){-1,0}... % 5
+ (474,2347){-1,-1}... % 6
+ (168,1514){0,-1}... % 7
+ (458,792){1,-1}...{1,0} % 8
+ (930,611)-- % 9
+ (962,690){-756,178}... % 10
+ (639,841){-1,1}... % 11
+ (415,1485){0,1}... % 12
+ (485,1972){270,833}... % *13
+ (685,2318){1,1}... % 14
+ (1191,2482){1,0}... % 15
+ (1622,2333){1,-1}... % 16
+ (1785,2019){220,-803}... % *17
+ (1842,1530){0,-1}... % 18
+ (1774,940){-262,-967}... % *19
+ (1580,563){-1,-1}... % 20
+ (1124,358){-1,0}... % 21
+ (891,381){-744,103}...{-1,0} % 22
+ (717,388)--cycle); % 23
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 9;
+t6 := 11;
+t7 := 14;
+
+adj_fill.B() % fixed x points
+ (1, 5) % fixed y points
+ ((3,2), (4,1)) % tied points
+ () % verticals
+ ((4,6), (2,7)) % horizontals
+ ((2115,483){-152,-425}... % 0
+ (1969,236){-1,-1}... % 1
+ (1824,156){-1,0}... % 2
+ (1683,180){-361,111}...{-361,111} % 3
+ (1322,291){-434,90}... % 4
+ (888,381){-341,48}... % 5
+ (717,388){-1,0}... % 6
+ (384,276){-1,-1}...{-128,-368} % 7
+ (217,-59)-- % 8
+ (295,-97){78,278}... % 9
+ (404,95){1,1}... % 10
+ (624,159){1,0}... % 11
+ (860,132){707,-155}... % 12
+ (1567,-23){707,-155}... % 13
+ (1789,-40){1,0}... % 14
+ (2000,77){1,1}...{115,533} % 15
+ (2180,448)--cycle); % 16
+
+endchar(0);
+
+"smur";
+
+charbegin( "R", 2476h#, capheight*v#, baseline );
+n := 15;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 6;
+t5 := 7;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 14;
+t10 := 16;
+t11 := 18;
+t12 := 23;
+t13 := 25;
+t14 := 26;
+t15 := 27;
+
+adj_fill.A(1, 15) % fixed x points
+ (7, 9) % fixed y points
+ ((1,7), (4,1), (5,2), (7,3), (8,3), (13,4), (14,5), (15,6))% tied points
+ ((6,10), (3,12)) % verticals
+ ((5,11), (2,14)) % horizontals
+ ((1303,1254){291,-64}... % 0
+ (1456,1243){1,0}... % 1
+ (1855,1406){1,1}... % 2
+ (2030,1905){0,1}... % 3
+ (1889,2319){-1,1}... % 4
+ (1689,2397){-586,104}...{-1,0} % *5
+ (1303,2423){-249,0}...{-249,0} % 6
+ (1054,2423){-1,0}... % 7
+ (448,2207){-1,-1}... % 8
+ (347,1989){0,-1}... % 9
+ (363,1867){89,-485}... % 10
+ (391,1740){0,-1}...{-1,-1} % 11
+ (344,1626)-- % 12
+ (344,1626){-1,-1}... % 13
+ (239,1571){-1,0}... % 14
+ (149,1614){-1,1}... % 15
+ (75,1809){0,1}... % 16
+ (248,2233){1,1}...{1,0} % 17
+ (1054,2549){249,117}... % 18
+ (1303,2666){.9051,-.5747}...{0,-106} % 19
+ (1303,2560){1,0}... % 20
+ (1837,2512){842,-185}... % *21
+ (2145,2375){1,-1}... % 22
+ (2294,1947){0,-1}... % 23
+ (2108,1439){-1,-1}...{-279,-90} % 24
+ (1676,1183){-230,-57}...{-230,-57} % 25
+ (1446,1126){-143,14}...{-143,14} % 26
+ (1303,1140)--cycle); % 27
+
+n := 10;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 12;
+t9 := 15;
+t10 := 18;
+
+adj_fill.B(1) % fixed x points
+ (2, 10) % fixed y points
+ ((1,8), (5,2), (6,1), (7,7), (8,6), (10,8))% tied points
+ ((4,7)) % verticals
+ ((3,9)) % horizontals
+ ((54,372){1,1}... % 0
+ (157,414){1,0}... % 1
+ (237,379){1,-1}... % 2
+ (312,280){157,-276}... % 3
+ (373,190){1,-1}... % 4
+ (537,146){1,0}... % 5
+ (846,284){1,1}... % 6
+ (1000,586){208,777}... % *7
+ (1054,1061){0,1}...{0,1362} % 8
+ (1054,2423)-- % 9
+ (1303,2423){0,-1169}...{0,-1169} % 10
+ (1303,1254){0,-114}...{0,-114} % 11
+ (1303,1140){-140,-910}... % 12
+ (1167,587){-336,-897}... % *13
+ (967,243){-1,-1}... % 14
+ (387,-30){-1,0}... % 15
+ (112,60){-1,1}... % 16
+ (12,259){0,1}...{1,1} % 17
+ (54,372)--cycle); % 18
+
+n := 5;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 9;
+
+adj_fill.C() % fixed x points
+ (1) % fixed y points
+ ((3,4), (4,5)) % tied points
+ () % verticals
+ ((2,5)) % horizontals
+ ((2479,412){-160,-535}... % 0
+ (2390,260){-1,-1}... % 1
+ (2290,209){-1,0}... % 2
+ (2170,259){-1,1}... % 3
+ (1827,809){-151,374}...{-151,374} % 4
+ (1676,1183)-- % 5
+ (1446,1126){349,-819}... % 6
+ (1795,307){349,-819}... % 7
+ (1990,31){1,-1}... % 8
+ (2171,-24){1,0}... % 9
+ (2375,81){1,1}...{190,618} % 10
+ (2529,370)--cycle); % 11
+
+endchar(0);
+
+"smus";
+
+charbegin( "S", 1807h#, capheight*v#, baseline );
+
+n := 22;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 7;
+t6 := 9;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+t10 := 19;
+t11 := 20;
+t12 := 23;
+t13 := 25;
+t14 := 27;
+t15 := 32;
+t16 := 34;
+t17 := 35;
+t18 := 36;
+t19 := 38;
+t20 := 40;
+t21 := 42;
+t22 := 43;
+
+adj_fill.A(11, 18) % fixed x points
+ (1, 21) % fixed y points
+ ((1,1), (22,1)) % tied points
+% ((9,12), (7,14), (6,15), (4,17), (2,20))% verticals
+ ((9,12), (7,14), (6,15), (4,18), (2,20))% verticals % DEK
+ ((10,11), (8,13), (5,16), (3,19)) % horizontals
+ ((887,761){1,1}... % 0
+ (911,847){0,1}... % 1
+ (849,976){-1,1}... % 2
+ (593,1052){-1,0}... % 3
+ (216,934){-1,-1}... % 4
+ (72,519){0,-1}... % 5
+ (222,136){1,-1}... % 6
+ (724,-63){1,0}... % 7
+ (1491,254){1,1}... % 8
+ (1679,774){0,1}... % 9
+ (1516,1199){-1,1}... % 10
+ (1054,1490){-882,400}... % 11
+ (649,1746){-1,1}... % 12
+ (486,2104){0,1}... % 13
+ (602,2369){1,1}... % 14
+ (950,2488){1,0}... % 15
+ (1241,2384){1,-1}... % 16
+ (1319,2200){0,-1}... % 17
+ (1247,2032){-1,-1}...{-1,0} % 18
+ (1076,1961)-- % 19
+ (1069,1908){337,-84}... % 20
+ (1205,1885){1,0}... % 21
+ (1494,2018){1,1}... % 22
+ (1563,2207){0,1}... % 23
+ (1471,2475){-1,1}... % 24
+ (998,2618){-1,0}... % 25
+ (388,2413){-1,-1}... % 26
+ (243,2029){0,-1}... % 27
+ (438,1570){1,-1}... % 28
+ (624,1435){481,-280}... % *29
+ (919,1290){818,-350}... % 30
+ (1294,1031){1,-1}... % 31
+ (1411,643){0,-1}... % 32
+ (1241,249){-1,-1}... % 33
+ (791,70){-1,0}... % 34
+ (434,240){-1,1}... % 35
+ (279,648){0,1}... % 36
+ (352,879){1,1}... % 37
+ (510,939){1,0}... % 38
+ (604,916){1,-1}... % 39
+ (654,821){67,-285}... % 40
+ (690,742){1,-1}... % 41
+ (781,706){1,0}...{1,1} % 42
+ (887,761)--cycle); % 43
+
+endchar(0);
+
+"smut";
+
+%charbegin( "T", 2043h#, capheight*v#, baseline );
+charbegin( "T", (2043+80)*h#, capheight*v#, baseline ); % DEK
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 9;
+t7 := 11;
+t8 := 16;
+t9 := 17;
+t10 := 18;
+t11 := 19;
+t12 := 21;
+
+adj_fill.A(12) % fixed x points
+ (1, 5, 6) % fixed y points
+ ((5,1), (6,1), (9,2), (10,3)) % tied points
+ ((4,7)) % verticals
+ ((3,8), (2,11)) % horizontals
+ ((2286,2576){-178,-297}... % 0
+ (2162,2425){-1,-1}... % 1
+ (1969,2333){-1,0}... % 2
+ (1352,2440){-1262,310}... % 3
+ (793,2547){-1,0}... % 4
+ (215,2324){-1,-1}... % 5
+ (-3,1864){0,-1}... % 6
+ (82,1636){1,-1}...{1,0} % 7
+ (203,1570)-- % 8
+ (203,1570){1,0}... % 9
+ (311,1629){1,1}... % 10
+ (368,1734){0,1}... % 11
+ (336,1819){-1,1}... % 12
+ (249,1926){-118,193}... % *13
+ (218,2012){0,1}... % 14
+ (321,2274){1,1}... % 15
+ (592,2352){1,0}...{287,-80} % 16
+ (1180,2228){261,-61}...{261,-61} % 17
+ (1441,2167){542,-111}... % 18
+ (1871,2096){1,0}... % 19
+ (2140,2208){1,1}...{227,462} % 20
+ (2361,2535)--cycle); % 21
+
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 5;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 11;
+t9 := 14;
+t10 := 16;
+t11 := 17;
+
+adj_fill.B() % fixed x points
+ (2, 11) % fixed y points
+ ((1,4), (6,2), (7,3), (11,4)) % tied points
+ ((5,8), (3,10)) % verticals
+ ((4,9)) % horizontals
+ ((380,432){1,1}... % 0
+ (490,484){1,0}... % 1
+ (603,429){1,-1}... % 2
+ (624,302){-53,-458}... % 3
+ (663,129){1,-1}... % 4
+ (791,83){1,0}... % 5
+ (1016,181){1,1}... % 6
+ (1137,459){164,765}... % *7
+ (1180,946){0,1}...{0,1282} % 8
+ (1180,2228)-- % 9
+ (1441,2167){0,-995}... % 10
+ (1441,1172){0,-1}... % 11
+ (1368,558){-282,-1013}... % *12
+ (1159,159){-1,-1}... % 13
+ (701,-42){-1,0}... % 14
+ (405,61){-1,1}... % 15
+ (324,310){0,1}...{1,1} % 16
+ (380,432)--cycle); % 17
+mathcorr(150h#); % DEK
+endchar(0);
+
+"smuu";
+
+charbegin( "U", 2444h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 7;
+t5 := 10;
+t6 := 13;
+t7 := 14;
+t8 := 17;
+t9 := 19;
+t10 := 21;
+t11 := 24;
+t12 := 26;
+
+adj_fill.A(12) % fixed x points
+ (1, 6) % fixed y points
+ ((1,2), (12,1)) % tied points
+ ((6,7), (4,9), (3,10)) % verticals
+ ((5,8), (2,11)) % horizontals
+ ((1631,541){-188,-239}... % 0
+ (1438,326){-1,-1}... % 1
+ (1008,99){-1,0}... % 2
+ (775,192){-1,1}... % 3
+ (668,394){-145,510}... % *4
+ (630,702){0,1}... % 5
+ (703,1238){94,470}... % 6
+ (801,2006){0,1}... % 7
+ (769,2307){-123,486}... % *8
+ (678,2492){-1,1}... % 9
+ (422,2583){-1,0}... % 10
+ (138,2482){-1,-1}... % 11
+ (-6,2071){0,-1}...{62,-437} % 12
+ (16,1802)-- % 13
+ (118,1836){-20,322}... % 14
+ (100,2050){0,1}... % 15
+ (201,2330){1,1}... % 16
+ (319,2374){1,0}... % 17
+ (434,2321){1,-1}... % 18
+ (549,1952){0,-1}... % 19
+ (458,1231){-92,-435}... % 20
+ (375,536){0,-1}... % 21
+ (405,269){116,-436}... % *22
+ (491,100){1,-1}... % 23
+ (850,-58){1,0}... % 24
+ (1503,246){1,1}...{163,190} % 25
+ (1643,390)--cycle); % 26
+
+n := 9;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 9;
+t5 := 10;
+t6 := 12;
+t7 := 13;
+t8 := 15;
+t9 := 17;
+
+adj_fill.B(4, 9) % fixed x points
+ (1, 5) % fixed y points
+ ((6,2), (7,1)) % tied points
+ ((3,6)) % verticals
+ ((2,8)) % horizontals
+ ((2396,404){-209,-413}... % 0
+ (2268,216){-1,-1}... % 1
+ (2126,153){-1,0}... % 2
+ (2026,213){-1,1}... % 3
+ (1913,464){-153,682}... % *4
+ (1873,895){0,1}... % 5
+ (1966,2026){69,343}... % 6
+ (2047,2292){194,438}... % *7
+ (2160,2464){338,317}...{461,259} % 8
+ (2279,2546)-- % 9
+ (2216,2585){-360,-148}...{-211,-137} % 10
+ (1752,2334){-83,-828}...{0,-1} % 11
+ (1631,541){12,-151}...{12,-151} % 12
+ (1643,390){92,-413}... % 13
+ (1816,16){1,-1}... % 14
+ (1997,-57){1,0}... % 15
+ (2283,71){1,1}...{149,331} % 16
+ (2452,358)--cycle); % 17
+
+endchar(0);
+
+"smuv";
+
+charbegin( "V", 2261h#, capheight*v#, baseline );
+n := 12;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 7;
+t5 := 12;
+t6 := 15;
+t7 := 16;
+t8 := 18;
+t9 := 24;
+t10 := 27;
+t11 := 29;
+t12 := 31;
+
+adj_fill.A(12) % fixed x points
+ (1, 7) % fixed y points
+ () % tied points
+ ((6,7), (3,10)) % verticals
+ ((5,8), (4,9), (2,11)) % horizontals
+ ((1382,2046){81,405}... % 0
+ (1531,2364){1,1}... % 1
+ (1713,2417){1,0}... % 2
+ (1916,2330){1,-1}... % 3
+ (2000,2054){-.05228,-1.896}... % 4
+ (1912,1642){-324,-886}... % *5
+ (1676,1168){-464,-750}...{-464,-750} % 6
+ (1212,418){-42,-11}...{-42,-11} % 7
+ (1170,407){-255,1414}... % 8
+ (915,1821){-255,1414}... % 9
+ (804,2267){-247,696}... % *10
+ (668,2517){-1,1}... % 11
+ (453,2615){-1,0}... % 12
+ (181,2501){-1,-1}... % 13
+ (67,2300){-182,-518}...{-66,-581} % *14
+ (-1,1983)-- % 15
+ (87,1972){79,420}... % 16
+ (196,2302){1,1}... % 17
+ (333,2357){1,0}... % 18
+ (444,2304){1,-1}... % 19
+ (634,1926){363,-1134}... % *20
+ (807,1170){253,-1428}...{21,-344} % 21
+ (973,-19){25,-33}...{25,-33} % 22
+ (998,-52){190,104}...{190,104} % 23
+ (1188,52){275,635}... % 24
+ (1731,1034){661,1089}... % 25
+ (2134,1766){530,1162}... % *26
+ (2261,2196){0,1}... % 27
+ (2140,2510){-1,1}... % 28
+ (1831,2624){-1,0}... % 29
+ (1487,2482){-1,-1}...{-65,-404} % 30
+ (1300,2059)--cycle); % 31
+
+endchar(0);
+
+"smuw";
+
+charbegin( "W", 3463h#, capheight*v#, baseline );
+n := 16;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 6;
+t5 := 8;
+t6 := 11;
+t7 := 15;
+t8 := 19;
+t9 := 21;
+t10 := 22;
+t11 := 25;
+t12 := 30;
+t13 := 37;
+t14 := 41;
+t15 := 43;
+t16 := 45;
+
+adj_fill.A(16) % fixed x points
+ (1, 4, 7, 10, 12, 13) % fixed y points
+ () % tied points
+ ((9,10), (5,6), (3,14)) % verticals
+ ((8,11), (2,15)) % horizontals
+ ((2657,2285){232,288}... % 0
+ (2909,2427){1,0}... % 1
+ (3108,2318){1,-1}... % 2
+ (3177,2179){93,-363}... % *3
+ (3201,1955){0,-1}... % 4
+ (3050,1348){-593,-1506}...{-553,-980} % *5
+ (2608,449){-212,809}... % 6
+ (2311,1256){-544,1163}... % 7
+ (2050,2260){0,1}...{172,813} % 8
+ (2083,2585){-45,30}...{-45,30} % 9
+ (2038,2615){-205,-124}...{-205,-124} % 10
+ (1833,2491){0,-1}... % 11
+ (1719,1877){-448,-1417}... % *12
+ (1385,1074){-301,-605}...{-301,-605} % 13
+ (1084,469){-33,0}...{-33,0} % 14
+ (1051,469){-4,314}... % 15
+ (948,1799){-369,2005}... % *16
+ (835,2218){-266.1,675.4}... % *17
+ (682,2474){-1,1}... % 18
+ (430,2602){-1,0}... % 19
+ (174,2511){-1,-1}...{0,-1} % 20
+ (-7,1986)-- % 21
+ (80,1980){65,420}... % 22
+ (129,2179){121,323}... % *23
+ (201,2303){1,1}... % 24
+ (311,2349){1,0}... % 25
+ (454,2270){1,-1}... % 26
+ (621,1987){284.4,-749.1}... % *27
+ (738,1521){376,-2275}...{0,-1} % *28
+ (830,-5){43,-28}...{43,-28} % 29
+ (873,-33){189,95}... % 30
+ (1033,37){189,95}... % *31
+ (1062,62){200,400}... % 32
+ (1470,991){230,591}...{161,325} % 33
+ (1836,1795){213,-625}... % 34
+ (2125,1051){358,-797}...{36,-559} % 35
+ (2408,-3){34,-19}...{34,-19} % 36
+ (2442,-22){171,84}...{171,84} % 37
+ (2613,62){235,665}... % 38
+ (3048,1023){528,1005}... % 39
+ (3358,1691){415,1098}... % *40
+ (3463,2121){0,1}... % 41
+ (3327,2503){-1,1}... % 42
+ (3080,2625){-1,0}... % 43
+ (2680,2439){-1,-1}...{-240,-333} % 44
+ (2592,2315)--cycle); % 45
+
+endchar(0);
+
+"smux";
+
+charbegin( "X", 2454h#, capheight*v#, baseline );
+n := 15;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 10;
+t6 := 14;
+t7 := 15;
+t8 := 16;
+t9 := 17;
+t10 := 19;
+t11 := 21;
+t12 := 24;
+t13 := 25;
+t14 := 28;
+t15 := 30;
+
+adj_fill.A(1) % fixed x points
+ (7, 9, 15) % fixed y points
+ ((3,1), (4,2), (7,3), (8,3), (12,4), (13,5))% tied points
+ ((6,10)) % verticals
+ ((5,11), (2,14)) % horizontals
+ ((2354,596){0,-1}... % 0
+ (2143,111){-1,-1}... % 1
+ (1819,-32){-1,0}... % 2
+ (1546,61){-1,1}... % 3
+ (1393,336){-307,783}...{-181,741} % *4
+ (1239,844){-25,281}...{-25,281} % 5
+ (1214,1125){-59,457}... % 6
+ (1052,1997){-368,1311}... % *7
+ (956,2269){-206.5,439.1}... % *8
+ (846,2436){-1,1}... % 9
+ (646,2507){-1,0}... % 10
+ (415,2433){-1,-1}... % 11
+ (351,2294){0,-1}... % 12
+ (360,2189){131,-551}... % 13
+ (399,2047){0,-1}...{-1,-1} % 14
+ (360,1954)-- % 15
+ (360,1954){-1,-1}... % 16
+ (256,1906){-1,0}... % 17
+ (160,1948){-1,1}... % 18
+ (112,2138){0,1}... % 19
+ (247,2455){1,1}... % 20
+ (743,2632){1,0}... % 21
+ (1105,2513){1,-1}... % 22
+ (1266,2203){276,-856}...{51,-375} % *23
+ (1381,1657){40,-346}...{40,-346} % 24
+ (1421,1311){88,-588}... % 25
+ (1578,607){366,-1102}... % *26
+ (1787,209){1,-1}... % 27
+ (1951,156){1,0}... % 28
+ (2116,244){1,1}...{46,523} % 29
+ (2270,612)--cycle); % 30
+
+n := 7;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 8;
+t6 := 12;
+t7 := 15;
+
+adj_fill.B() % fixed x points
+ (3, 5) % fixed y points
+ ((1,4), (3,6), (4,6), (7,5)) % tied points
+ () % verticals
+ ((2,6)) % horizontals
+ ((1381,1657){188,517}... % 0
+ (1599,2146){456,819}... % *1
+ (1837,2476){1,1}... % 2
+ (2178,2630){1,0}... % 3
+ (2406,2548){1,-1}... % 4
+ (2465,2412){0,-1}...{-1,-1} % 5
+ (2427,2302)-- % 6
+ (2427,2302){-1,-1}... % 7
+ (2320,2234){-1,0}... % 8
+ (2250,2257){-1,1}... % 9
+ (2214,2321){-144,356}... % 10
+ (2169,2379){-1,1}... % 11
+ (2049,2426){-1,0}... % 12
+ (1874,2353){-1,-1}... % 13
+ (1613,1941){-453,-1042}...{-104,-498} % *14
+ (1421,1311)--cycle); % 15
+
+n := 7;
+t1 := 0;
+t2 := 2;
+t3 := 5;
+t4 := 6;
+t5 := 7;
+t6 := 11;
+t7 := 14;
+
+adj_fill.C() % fixed x points
+ (3, 5) % fixed y points
+ ((1,1), (3,7), (4,7), (7,2)) % tied points
+ () % verticals
+ ((2,6)) % horizontals
+ ((1239,844){-155,-440}... % 0
+ (859,159){-1,-1}... % 1
+ (407,-45){-1,0}... % 2
+ (166,46){-1,1}... % 3
+ (79,236){0,1}...{1,1} % 4
+ (112,349)-- % 5
+ (112,349){1,1}... % 6
+ (220,408){1,0}... % 7
+ (315,371){1,-1}... % 8
+ (375,252){147,-627}... % 9
+ (425,167){1,-1}... % 10
+ (537,125){1,0}... % 11
+ (771,241){1,1}... % 12
+ (1003,584){443,884}...{135,431} % *13
+ (1214,1125)--cycle); % 14
+
+endchar(0);
+
+"smuy";
+
+charbegin( "Y", 2006h#, capheight*v#, baseline );
+n := 10;
+t1 := 0;
+t2 := 3;
+t3 := 7;
+t4 := 9;
+t5 := 11;
+t6 := 12;
+t7 := 13;
+t8 := 16;
+t9 := 19;
+t10 := 20;
+
+adj_fill.A(1, 5, 10) % fixed x points
+ (1, 6) % fixed y points
+ ((1,2), (10,1)) % tied points
+ ((3,8)) % verticals
+ ((4,7), (2,9)) % horizontals
+ ((1488,1693){-46,-368}... % 0
+ (1331,1444){-1,-1}... % 1
+ (1089,1255){-459,-256}... % *2
+ (872,1188){-1,0}... % 3
+ (670,1277){-1,1}... % 4
+ (606,1415){-86,374}... % *5
+ (584,1651){0,1}... % 6
+ (605,2311){0,1}... % 7
+ (552,2552){-1,1}... % 8
+ (440,2602){-1,0}... % 9
+ (168,2450){-1,-1}...{-284,-432} % 10
+ (-9,2214)-- % 11
+ (64,2179){353,348}... % 12
+ (289,2339){1,0}... % 13
+ (344,2318){1,-1}... % 14
+ (360,2267){11,-245}... % *15
+ (355,2073){0,-1}... % 16
+ (345,1518){0,-1}... % 17
+ (455,1140){1,-1}... % 18
+ (729,1009){1,0}...{256,332} % 19
+ (1488,1444)--cycle); % 20
+
+n := 11;
+t1 := 2;
+t2 := 4;
+t3 := 6;
+t4 := 9;
+t5 := 10;
+t6 := 13;
+t7 := 15;
+t8 := 18;
+t9 := 19;
+t10 := 20;
+t11 := 21;
+
+adj_fill.B(4) % fixed x points
+ () % fixed y points
+ ((4,3), (5,4), (8,4), (9,3), (10,1), (11,2))% tied points
+ ((3,6), (1,9)) % verticals
+ ((4,5), (2,7)) % horizontals
+ ((1697,2589){50,-39}...{50,-39} % 0
+ (1747,2550){-9,-343}... % 1
+ (1717,921){0,-1}... % 2
+ (1310,-259){-1,-1}... % 3
+ (767,-511){-1,0}... % 4
+ (492,-412){-1,1}... % 5
+ (384,-163){0,1}... % 6
+ (491,170){413,718}... % *7
+ (797,555){1,1}...{405,244} % 8
+ (1488,1024)-- % 9
+ (1476,872){-491,-196}... % 10
+ (930,526){-1,-1}... % 11
+ (704,224){-306,-595}... % *12
+ (624,-69){0,-1}... % 13
+ (681,-301){1,-1}... % 14
+ (894,-386){1,0}... % 15
+ (1166,-247){1,1}... % 16
+ (1395,193){310,1119}...{0,1} % *17
+ (1476,872){12,152}...{12,152} % 18
+ (1488,1024){0,420}...{0,420} % 19
+ (1488,1444){0,249}...{0,249} % 20
+ (1488,1693){0,1}...{0,1} % 21
+ (1493,2472)--cycle); % 22
+
+endchar(0);
+
+"smuz";
+
+charbegin( "Z", 2232h#, capheight*v#, baseline );
+n := 11;
+t1 := 0;
+t2 := 1;
+t3 := 3;
+t4 := 7;
+t5 := 8;
+t6 := 9;
+t7 := 10;
+t8 := 12;
+t9 := 14;
+t10 := 18;
+t11 := 19;
+
+adj_fill.A(11) % fixed x points
+ (5, 7) % fixed y points
+ ((1,3), (5,1), (6,1), (11,2)) % tied points
+ ((4,8)) % verticals
+ ((3,9), (2,10)) % horizontals
+ ((1521,2054){-329,-103}... % 0
+ (1420,2047){-1,0}... % 1
+ (1017,2265){-654,457}... % 2
+ (713,2393){-1,0}... % 3
+ (503,2313){-1,-1}... % 4
+ (404,2114){0,-1}... % 5
+ (445,1980){219,-514}... % 6
+ (499,1843){0,-1}...{-1,-1} % 7
+ (468,1748)-- % 8
+ (468,1748){-1,-1}... % 9
+ (354,1691){-1,0}... % 10
+ (236,1742){-1,1}... % 11
+ (192,1927){0,1}... % 12
+ (426,2396){1,1}... % 13
+ (830,2593){1,0}... % 14
+ (999,2548){397,-176}... % *15
+ (1227,2417){715,-486}... % 16
+ (1495,2239){385,-220}... % *17
+ (1612,2197){1,0}...{1,1} % 18
+ (1697,2254)--cycle); % 19
+
+n := 4;
+t1 := 3;
+t2 := 4;
+t3 := 14;
+t4 := 15;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ ((1,3), (2,2), (3,4), (4,5)) % tied points
+ () % verticals
+ () % horizontals
+ ((133,43){-19,53}...{-19,53} % 0
+ (114,96){1283,1773}... % 1
+ (1397,1869){1283,1773}... % 2
+ (1521,2054){284,519}...{176,200} % 3
+ (1697,2254){1,1}... % 4
+ (1762,2341){103,222}... % 5
+ (1816,2465){105,65}...{32,5} % 6
+ (1848,2470){30,-7}...{30,-7} % 7
+ (1878,2463)-- % 8
+ (1935,2412){17,-23}...{17,-23} % 9
+ (1952,2389){1,-30}... % 10
+ (1953,2359){-27,-112}... % 11
+ (1909,2310){-162,-174}...{-126,-136} % 12
+ (1783,2174){-1269,-1743}...{-247,-387} % 13
+ (514,431){-129,-193}...{-129,-193} % 14
+ (385,238){-1,-1}... % 15
+ (350,189){-163,-257}...{-108,-182} % 16
+ (242,7){-46,-9}...{-46,-9} % 17
+ (196,-2)--cycle); % 18
+
+n := 10;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 9;
+t5 := 10;
+t6 := 11;
+t7 := 12;
+t8 := 16;
+t9 := 18;
+t10 := 20;
+
+adj_fill.C() % fixed x points
+ (1, 10) % fixed y points
+ ((1,6), (5,4), (6,5), (10,6)) % tied points
+ ((2,9)) % verticals
+ ((4,7), (3,8)) % horizontals
+ ((2050,707){-1,0}... % 0
+ (1956,675){-1,-1}... % 1
+ (1906,577){0,-1}... % 2
+ (1964,442){127,-196}... % 3
+ (2019,304){0,-1}... % 4
+ (1992,188){-1,-1}... % 5
+ (1806,99){-1.848,-.1074}... % 6
+ (1628,160){-411,220}... % 7
+ (1217,380){-411,220}... % 8
+ (827,511){-1,0}...{-502,-206} % 9
+ (514,431)-- % 10
+ (385,238){1,1}... % 11
+ (617,328){1,0}... % 12
+ (831,280){521,-190}... % *13
+ (1138,138){267,-143}... % 14
+ (1405,-5){267,-143}... % 15
+ (1623,-61){1.898,.1195}... % 16
+ (2085,122){1,1}... % 17
+ (2238,477){0,1}... % 18
+ (2161,657){-1,1}...{-1,0} % 19
+ (2050,707)--cycle); % 20
+
+endchar(0);
+
+% PUNCTUATION
+set_stem_round(155,157,160,180,188,201);
+more_side(0); % DEK
+
+"smminus";
+
+%charbegin( 0, 1824h#, lcbody*v#, baseline );
+charbegin( 0, 2800h#, (1233+925)*v#, (1233-925)*v#); % DEK
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1754,1018){-1650,0}...{-1650,0} % 0
+% (104,1018)-- % 1
+% (70,874){1651,0}...{1651,0} % 2
+% (1721,874)--cycle); % 3
+ ((2614,1018){-1650,0}...{-1650,0} % 0 % DEK
+ (230,1018)-- % 1
+ (170,874){1651,0}...{1651,0} % 2
+ (2564,874)--cycle); % 3
+
+endchar(0);
+
+"smapproximation";
+
+charbegin( 24, 2042h#, lcbody*v#, baseline );
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 6;
+t4 := 10;
+t5 := 12;
+t6 := 15;
+
+adj_fill.A() % fixed x points
+ (1, 4) % fixed y points
+ () % tied points
+ () % verticals
+ ((3,5), (2,6)) % horizontals
+ ((1894,1066){-76,-330}... % 0
+ (1779,886){-209,-184}... % 1
+ (1586,809){-1,0}... % 2
+ (1312,907){-271,170}... % 3
+ (1041,1077){-271,170}... % 4
+ (749,1233){-502,207}... % *5
+ (539,1284){-342,-6}... % 6
+ (409,1258){-390,-140}... % 7
+ (241,1133){-328,-369}...{-217,-426} % *8
+ (81,889)-- % 9
+ (153,860){140,262}... % 10
+ (293,1068){186,142}... % 11
+ (496,1127){1,0}... % 12
+ (791,1024){366,-233}... % 13
+ (1157,791){366,-233}... % 14
+ (1546,657){1,0}... % 15
+ (1781,757){243,204}...{117,271} % 16
+ (1962,1019)--cycle); % 17
+
+endchar(0);
+
+"smand";
+
+charbegin( 94, 2870h#, capheight*v#, baseline*v#);
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((2843,6){-1347,2632}...{-1347,2632} % 0
+ (1496,2638){-34,5}...{-34,5} % 1
+ (1462,2643){-1421,-2605}...{-1421,-2605}% 2
+ (41,38){42,-40}...{42,-40} % 3
+ (83,-2)-- % 4
+ (315,6){1137,2275}...{1137,2275} % 5
+ (1452,2281){1126,-2313}...{1126,-2313} % 6
+ (2578,-32)--cycle); % 7
+
+endchar(0);
+
+"smor";
+
+charbegin( 95, 2870h#, capheight*v#, baseline*v#);
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((2783,2545){14,-16}...{14,-16} % 0
+ (2797,2529){-1385,-2573}...{-1385,-2573}% 1
+ (1412,-44){-55,-2}...{-55,-2} % 2
+ (1357,-46){-1334,2551}...{-1334,2551} % 3
+ (23,2505)-- % 4
+ (279,2545){1129,-2265}...{1129,-2265} % 5
+ (1408,280){1141,2265}...{1141,2265} % 6
+ (2549,2545)--cycle); % 7
+
+endchar(0);
+
+"smleftbrace";
+
+%charbegin( 102, 1185h#, programem*v#, descender*v#);
+charbegin( 102, 1185h#, .75programem*v#, .25programem*v#); % DEK
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 8;
+t5 := 9;
+t6 := 13;
+t7 := 16;
+
+adj_fill.A(1, 4, 5) % fixed x points
+ (1) % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((3,6)) % verticals
+ ((4,5), (2,7)) % horizontals
+ ((-12,959){39,97}...{39,97} % 0
+ (27,1056){1,0}... % 1
+ (305,1127){264,243}... % 2
+ (384,1343){95,773}... % *3
+ (400,1900){0,1}... % 4
+ (404,2295){49,477}... % 5
+ (495,2582){213,279}... % 6
+ (624,2675){245,80}...{1,0} % 7
+ (1081,2701)-- % 8
+ (1081,2635){-1,0}... % 9
+ (763,2598){-200,-64}... % 10
+ (665,2510){-116,-192}... % 11
+ (612,2354){-53,-336}... % 12
+ (588,1918){0,-1}... % 13
+ (564,1463){-95,-702}... % *14
+ (493,1216){-145,-219}...{-283,-54} % 15
+ (190,1011)--cycle); % 16
+
+n := 6;
+t1 := 0;
+t2 := 4;
+t3 := 7;
+t4 := 8;
+t5 := 11;
+t6 := 15;
+
+adj_fill.B(1, 6) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((1081,-594){-1,0}... % 0
+ (786,-562){-238,72}... % 1
+ (673,-474){-142,210}... % 2
+ (619,-329){-50,298}... % 3
+ (587,110){0,1}... % 4
+ (549,587){-146,759}... % *5
+ (441,869){-200,243}...{-449,99} % 6
+ (190,1011)-- % 7
+ (-12,959){1,0}... % 8
+ (190,937){324,-86}... % *9
+ (312,873){184,-204}... % 10
+ (404,124){0,-1}... % 11
+ (414,-266){41,-369}... % 12
+ (509,-551){170,-186}... % 13
+ (652,-635){351,-88}...{1,0} % 14
+ (1081,-657)--cycle); % 15
+
+endchar(0);
+
+"smrightbrace";
+
+%charbegin( 103, 1185h#, programem*v#, descender*v#);
+charbegin( 103, 1185h#, .75programem*v#, .25programem*v#); % DEK
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 8;
+t5 := 9;
+t6 := 13;
+t7 := 16;
+
+adj_fill.A(2, 4, 5) % fixed x points
+ (1) % fixed y points
+ ((1,2), (7,1)) % tied points
+ ((3,6)) % verticals
+ ((4,5), (2,7)) % horizontals
+ ((1138,972){51,89}...{51,89} % 0
+ (1189,1061){-1,0}... % 1
+ (960,1094){-363,123}... % *2
+ (826,1184){-194,295}... % 3
+ (771,1398){-65,744}... % *4
+ (761,1928){0,1}... % 5
+ (661,2599){-331,393}... % 6
+ (462,2686){-583,118}...{-1,0} % *7
+ (78,2717)-- % 8
+ (78,2653){1,0}... % 9
+ (325,2631){385,-83}... % *10
+ (463,2570){229,-240}... % 11
+ (545,2351){109,-647}... % *12
+ (572,1923){0,-1}... % 13
+ (610,1448){149,-750}... % *14
+ (721,1173){230,-260}...{225,-57} % 15
+ (996,1012)--cycle); % 16
+
+n := 6;
+t1 := 0;
+t2 := 3;
+t3 := 6;
+t4 := 7;
+t5 := 10;
+t6 := 13;
+
+adj_fill.B(1, 6) % fixed x points
+ () % fixed y points
+ ((3,1), (4,2)) % tied points
+ ((2,5)) % verticals
+ ((3,4), (1,6)) % horizontals
+ ((78,-589){1,0}... % 0
+ (334,-570){400,75}... % *1
+ (478,-514){247,220}... % 2
+ (584,113){0,1}... % 3
+ (621,600){142,757}... % *4
+ (726,870){347,374}...{384,85} % 5
+ (996,1012)-- % 6
+ (1138,972){-1,0}... % 7
+ (875,905){-234,-204}... % 8
+ (797,695){-91,-784}... % *9
+ (784,121){0,-1}... % 10
+ (756,-330){-114,-680}... % *11
+ (670,-559){-267,-277}...{-1,0} % 12
+ (78,-656)--cycle); % 13
+
+endchar(0);
+
+"smverticalbar";
+
+%charbegin( 106, 790h#, programem*v#, baseline*v#);
+charbegin( 106, 790h#, .75programem*v#, .25programem*v#); % DEK
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((320,2604){0,-2736}...{0,-2736} % 0
+% (320,-132)-- % 1
+% (447,-90){0,2753}...{0,2753} % 2
+% (447,2663)--cycle); % 3
+ ((320,2660){0,-2736}...{0,-2736} % 0 % DEK
+ (320,-635)-- % 1
+ (447,-590){0,2753}...{0,2753} % 2
+ (447,2730)--cycle); % 3
+
+endchar(0);
+
+"smbackslash";
+
+%charbegin( 110, 1843h#, programem*v#, descender*v#);
+charbegin( 110, 1858h#, .75programem*v#, .25programem*v#); % DEK
+
+numeric a[],b[],alpha,beta;
+pair vec;
+.5[b0,b3]=.75programem-120; .5[b1,b2]=-.25programem+250;
+b0-b3=-63; b1-b2=-85;
+.5[a0,a3]=206; .5[a1,a2]=1650;
+vec=(.5[a0-a1,a3-a2],.5[b0-b1,b3-b2]);
+(a3,b3)-(a2,b2)=alpha*vec;
+(a1,b1)=beta*vec+(a2,b2)+145*(unitvector vec rotated 90);
+
+n := 0;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+% ((1740,-277){-1745,2961}...{-1745,2961} % 0
+% (-5,2684)-- % 1
+% (95,2731){1753,-2989}...{1753,-2989} % 2
+% (1848,-258)--cycle); % 3
+ ((a0,b0)-- % 0 % DEK
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)--cycle); % 3
+
+endchar(0);
+
+"smss"; %medium section sign, \s
+
+charbegin( 120, 1907h#, depthy*v#, baseline*v#);
+
+n := 13;
+t1 := 0;
+t2 := 1;
+t3 := 4;
+t4 := 5;
+t5 := 6;
+t6 := 8;
+t7 := 11;
+t8 := 13;
+t9 := 14;
+t10 := 17;
+t11 := 19;
+t12 := 24;
+t13 := 25;
+
+adj_fill.A() % fixed x points
+ (8, 13) % fixed y points
+ ((1,3), (3,1), (4,2)) % tied points
+ ((7,9), (5,11), (2,12)) % verticals
+ ((6,10)) % horizontals
+ ((1426,616){198,265}... % 0
+ (1504,859){0,1}... % 1
+ (1370,1129){-1,1}... % 2
+ (1013,1336){-579,265}... % 3
+ (519,1615){-249,293}... % 4
+ (442,1716){-66,219}... % 5
+ (404,1941){0,1}... % 6
+ (585,2418){1,1}... % 7
+ (1031,2594){1,0}... % 8
+ (1237,2570){338,-91}... % *9
+ (1369,2503){1,-1}... % 10
+ (1469,2302){0,-1}...{-57,-276} % 11
+ (1446,2164)-- % 12
+ (1228,2088){-54,38}...{-54,38} % 13
+ (1174,2126){0,1}... % 14
+ (1155,2297){-73,279}... % *15
+ (1101,2405){-1,1}... % 16
+ (922,2474){-1,0}... % 17
+ (708,2364){-1,-1}... % 18
+ (614,2077){0,-1}... % 19
+ (709,1828){1,-1}... % 20
+ (780,1776){404,-234}... % *21
+ (1113,1594){1.733,-.9989}... % 22
+ (1533,1353){1,-1}... % 23
+ (1668,1053){0,-1}...{-330,-344} % 24
+ (1478,555)--cycle); % 25
+
+n := 11;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 11;
+t8 := 14;
+t9 := 15;
+t10 := 17;
+t11 := 19;
+
+adj_fill.B() % fixed x points
+ (1) % fixed y points
+ ((5,2), (6,1), (8,3)) % tied points
+ ((4,7), (3,9), (1,11)) % verticals
+ ((2,10)) % horizontals
+ ((496,195){1,-482}... % 0
+ (618,-166){1,-1}... % 1
+ (911,-270){1,0}... % 2
+ (1225,-126){1,1}... % 3
+ (1321,178){0,1}... % 4
+ (1211,417){-1,1}... % 5
+ (797,650){-1113,520}... % 6
+ (399,886){-1,1}... % 7
+ (264,1250){0,1}...{301,424} % 8
+ (442,1716)-- % 9
+ (519,1615){-364,-450}... % 10
+ (406,1379){0,-1}... % 11
+ (504,1154){1,-1}... % 12
+ (904,912){843,-393}... % 13
+ (1426,616){235,-235}... % 14
+ (1544,277){0,-1}... % 15
+ (1351,-195){-1,-1}... % 16
+ (876,-395){-1,0}... % 17
+ (349,-223){-1,1}...{-60,553} % 18
+ (207,86)--cycle); % 19
+
+endchar(0);
+
+"rmnot"; %logical not sign
+
+charbegin( 58, 2534h#, lcbody*v#, baseline*v#);
+n := 4;
+t1 := 1;
+t2 := 2;
+t3 := 3;
+t4 := 7;
+
+adj_fill.A() % fixed x points
+ (4) % fixed y points
+ () % tied points
+ ((1,2)) % verticals
+ ((2,3)) % horizontals
+ ((2325,764){0,749}...{0,749} % 0
+ (2325,1513){-2231,0}...{-2231,0} % 1
+ (94,1513)-- % 2
+ (94,1361){1941,0}... % 3
+ (2035,1361){1,0}... % 4
+ (2122,1355){1.473,-.9487}... % 5
+ (2149,1305){76,-698}...{55,-543} % 6
+ (2204,762)--cycle); % 7
+
+endchar(0);
+
+% Fraktur copied from EUFMCH
+set_stem_round(240,250,267,267,290,315);
+more_side(100h#); % DEK
+
+"FMUR";
+
+charbegin( 60,2866h#, capheight*v#, baseline*v#);
+n := 14;
+t1 := 0;
+t2 := 1;
+t3 := 5;
+t4 := 7;
+t5 := 9;
+t6 := 11;
+t7 := 12;
+t8 := 13;
+t9 := 15;
+t10 := 19;
+t11 := 21;
+t12 := 24;
+t13 := 29;
+t14 := 31;
+
+adj_fill.A(7, 14) % fixed x points
+ (1, 8) % fixed y points
+ ((12,1)) % tied points
+ ((6,9), (5,10), (3,12)) % verticals
+ ((4,11), (2,13)) % horizontals
+ ((59,0){3,4}... % 0
+ (335,158){1,0}...{1,-1} % 1
+ (611,-39){155,130}...{5,4} % 2
+ (1221,473){2,3}... % 3
+ (1441,1012){75,320}... % *4
+ (1517,1734){0,1}... % 5
+ (1281,2403){-1,1}... % 6
+ (827,2600){-1,0}... % 7
+ (225,2332){-1,-1}... % 8
+ (0,1872){0,-1}... % 9
+ (158,1576){3,-4}... % 10
+ (315,1320){0,-1}...{-7,-4} % 11
+ (99,1024)-- % 12
+ (177,965){5,3}... % 13
+ (480,1212){105,125}... % *14
+ (591,1458){0,1}... % 15
+ (545,1595){-45,80}... % *16
+ (414,1773){-8,9}... % 17
+ (282,1951){-45,80}... % *18
+ (236,2088){0,1}... % 19
+ (339,2293){1,1}... % 20
+ (591,2384){1,0}... % 21
+ (965,2206){1,-1}... % 22
+ (1140,1888){60,-200}... % *23
+ (1202,1418){0,-1}... % 24
+ (1172,903){-30,-215}... % *25
+ (1084,571){-3,-6}...{-5,-3} % 26
+ (768,236){-7,8}... % 27
+ (605,398){-70,55}... % *28
+ (493,453){-1,0}... % 29
+ (270,349){-125,-100}...{-3,-4} % *30
+ (0,59)--cycle); % 31
+
+n := 6;
+t1 := 0;
+t2 := 6;
+t3 := 8;
+t4 := 9;
+t5 := 11;
+t6 := 15;
+
+adj_fill.B() % fixed x points
+ (4) % fixed y points
+ ((1,5), (3,2), (4,3), (6,4)) % tied points
+ () % verticals
+ ((2,5), (1,6)) % horizontals
+ ((2837,1970){-10,-2}... % 0
+ (2664,1961){-70,10}... % *1
+ (2561,2009){-3,4}... % 2
+ (2542,2063){-10,60}... % *3
+ (2522,2246){-1,8}... % 4
+ (2443,2502){-5,6}... % 5
+ (2226,2600){-1,0}... % 6
+ (1655,2325){-1,-1}...{-5,-6} % 7
+ (1478,2128)-- % 8
+ (1517,1891){2,4}... % 9
+ (1753,2266){1,1}... % 10
+ (1990,2384){1,0}... % 11
+ (2147,2285){1,-2}... % 12
+ (2206,2088){1,-7}... % 13
+ (2266,1832){1,-1}...{9,-1} % 14
+ (2403,1773)--cycle); % 15
+
+n := 7;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+t5 := 4;
+t6 := 5;
+t7 := 9;
+
+adj_fill.C(5, 6) % fixed x points
+ () % fixed y points
+ ((1,11), (3,6), (4,7), (5,8), (6,9), (7,10))% tied points
+ ((2,7)) % verticals
+ () % horizontals
+ ((2541,630){-2,6}...{-1,24} % 0
+ (2482,1359){-7,6}... % 1
+ (2147,1497){-1,0}... % 2
+ (1852,1497){-1.932,-.3624}...{-90,-35} % 3
+ (1497,1359)-- % 4
+ (1497,1261){4,1}... % 5
+ (1832,1320){1,0}... % 6
+ (2128,1221){1,-1}... % 7
+ (2206,1103){1,-5}...{-1,-21} % 8
+ (2226,394)--cycle); % 9
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 5;
+
+adj_fill.D() % fixed x points
+ () % fixed y points
+ ((1,7), (2,4), (3,5), (4,6)) % tied points
+ () % verticals
+ () % horizontals
+ ((1852,1497){2,1}... % 0
+ (2403,1773){5,3}...{110,50} % 1
+ (2837,1970)-- % 2
+ (2876,1911){-8,-3}... % 3
+ (2561,1773){-7,-4}...{-5,-4} % 4
+ (2147,1497)--cycle); % 5
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.E() % fixed x points
+ () % fixed y points
+ ((1,2), (2,1), (3,1), (4,3)) % tied points
+ () % verticals
+ () % horizontals
+ ((1478,2128){-70,-180}...{-70,-180} % 0
+ (1202,1418)-- % 1
+ (1202,1418){80,120}...{80,120} % 2
+ (1517,1891)--cycle); % 3
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 3;
+
+adj_fill.F() % fixed x points
+ () % fixed y points
+ ((1,8), (2,1), (3,1), (4,9)) % tied points
+ () % verticals
+ () % horizontals
+ ((1497,1359){-75,15}...{-75,15} % 0
+ (1202,1418)-- % 1
+ (1202,1418){75,-40}...{75,-40} % 2
+ (1497,1261)--cycle); % 3
+
+n := 4;
+t1 := 0;
+t2 := 1;
+t3 := 2;
+t4 := 4;
+
+adj_fill.G() % fixed x points
+ () % fixed y points
+ ((1,13), (2,10), (3,11), (4,12)) % tied points
+ () % verticals
+ () % horizontals
+ ((2463,-39){-60,110}...{-60,110} % 0
+ (2226,394)-- % 1
+ (2541,630){2,-6}... % 2
+ (2643,397){50,-80}...{1,0} % *3
+ (2738,315)--cycle); % 4
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.H() % fixed x points
+ () % fixed y points
+ ((1,13), (2,12)) % tied points
+ () % verticals
+ () % horizontals
+ ((2955,335){-125,-95}...{-125,-95} % 0
+ (2463,-39)-- % 1
+ (2738,315){1,0}...{5,2} % 2
+ (2955,394)--cycle); % 3
+
+endchar(0);
+
+"FMUI";
+
+charbegin( 61,1853h#, capheight*v#, baseline*v#);
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 4;
+t4 := 8;
+t5 := 10;
+t6 := 12;
+
+adj_fill.A() % fixed x points
+ (1, 4) % fixed y points
+ () % tied points
+ () % verticals
+ ((3,5), (2,6)) % horizontals
+ ((1832,2541){-200,-155}... % 0
+ (1612,2395){-95,-50}... % *1
+ (1458,2344){-1,0}... % 2
+ (1261,2403){-200,95}... % 3
+ (690,2600){-1,0}... % 4
+ (315,2443){-9,-10}... % 5
+ (167,2204){-77,-160}...{-100,-295} % *6
+ (12,1812)-- % 7
+ (79,1773){100,265}... % 8
+ (315,2167){1,1}... % 9
+ (611,2285){1,0}... % 10
+ (821,2242){175,-55}...{200,-75} % *11
+ (1300,2069){200,105}...{200,185} % 12
+ (1872,2482)--cycle); % 13
+
+n := 9;
+t1 := 0;
+t2 := 1;
+t3 := 1.202;
+t4 := 3;
+t5 := 6;
+t6 := 9;
+t7 := 10;
+t8 := 14;
+t9 := 16;
+
+adj_fill.B(1, 7) % fixed x points
+ (2, 3, 6) % fixed y points
+ () % tied points
+ ((5,8)) % verticals
+ ((4,9)) % horizontals
+ ((39,59){100,140}...{200,180} % 0
+ (433,493){200,325}... % 1
+ (630,236){1,-1}... % 2
+ (867,138){1,0}... % 3
+ (1143,276){1,1}... % 4
+ (1259,495){40,140}... % *5
+ (1300,827){0,1}... % 6
+ (1261,1300){-25,200}...{25,200} % 7
+ (1241,1773){200,225}...{200,125} % 8
+ (1734,2206)-- % 9
+ (1793,2187){-200,-190}... % 10
+ (1603,1962){-65,-105}...{0,-1} % *11
+ (1537,1773){5,-60}... % 12
+ (1556,1537){30,-200}... % 13
+ (1615,965){0,-1}... % 14
+ (1399,335){-1,-1}... % 15
+ (611,-39){-1,0}...{-100,90} % 16
+ (256,138){-50,-35}...{-50,-35} % 17
+ (59,0)--cycle); % 18
+
+endchar(0);
+
+endinput;
+%%% characters which have been eliminated:
+
+"smcong";
+% by DEK, not HZ!
+% actually there's a bug: distance between bars won't be equal after rounding
+% so I'm not using this character
+charbegin( oct"021", 2800h#, (810+925)*v#, (810-925)*v#);
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((2684,1727){-1650,0}...{-1650,0} % 0
+ (234,1727)-- % 1
+ (200,1583){1651,0}...{1651,0} % 2
+ (2651,1583)--cycle); % 3
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((2684,997){-1650,0}...{-1650,0} % 0
+ (234,997)-- % 1
+ (200,853){1651,0}...{1651,0} % 2
+ (2651,853)--cycle); % 3
+
+n := 2;
+t1 := 1;
+t2 := 2;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ ((1,2)) % horizontals
+ ((2684,267){-1650,0}...{-1650,0} % 0
+ (234,267)-- % 1
+ (200,123){1651,0}...{1651,0} % 2
+ (2651,123)--cycle); % 3
+
+endchar(0);
+
+
+"smlessthanorequal";
+% by DEK, not HZ!
+charbegin( oct"024", 2800h#, (1430+925)*v#, (1430-925)*v#);
+
+n := 0;
+
+numeric a[],b[],alpha[],beta[];
+pair vec[];
+a6=a8=a10=2493; a7=a9=347; .5[b6,b8]=b7; .5[b6,b10]=925; b6-b8=2000;
+b8-b10=b7-b9=860;
+vec1=(a6,b6)-(a7,b7); vec2=(a8,b8)-(a7,b7);
+vec3=unitvector vec1 rotated 90; vec4=unitvector vec2 rotated 90;
+(a2,b2)=(a6,b6)+55vec3; (a3,b3)=(a6,b6)-75vec3;
+(a0,b0)=(a8,b8)-75vec4; (a5,b5)=(a8,b8)+75vec4;
+(a1,b1)=(a6,b6)+75vec3+alpha1*vec1=(a0,b0)+beta1*vec2;
+(a4,b4)=(a3,b3)+alpha2*vec1=(a5,b5)+beta2*vec2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((a0,b0)-- % 0
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)-- % 3
+ (a4,b4)-- % 4
+ (a5,b5)--cycle); % 5
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ (((a10,b10)-75vec4)-- % 0
+ ((a9-60,b9)-75vec4)-- % 1
+ ((a9,b9)+75vec4)-- % 2
+ ((a10,b10)+75vec4)--cycle); % 3
+
+endchar(0);
+
+"smgreaterthanorequal";
+% by DEK, not HZ!
+charbegin( oct"025", 2800h#, (1430+925)*v#, (1430-925)*v#);
+
+n := 0;
+
+numeric a[],b[],alpha[],beta[];
+pair vec[];
+a6=a8=a10=307; a7=a9=2453; .5[b6,b8]=b7; .5[b6,b10]=925; b6-b8=2000;
+b8-b10=b7-b9=860;
+vec1=(a6,b6)-(a7,b7); vec2=(a8,b8)-(a7,b7);
+vec3=unitvector vec1 rotated 90; vec4=unitvector vec2 rotated 90;
+(a2,b2)=(a6,b6)-55vec3; (a3,b3)=(a6,b6)+75vec3;
+(a0,b0)=(a8,b8)+75vec4; (a5,b5)=(a8,b8)-75vec4;
+(a1,b1)=(a6,b6)-75vec3+alpha1*vec1=(a0,b0)+beta1*vec2;
+(a4,b4)=(a3,b3)+alpha2*vec1=(a5,b5)+beta2*vec2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((a0,b0)-- % 0
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)-- % 3
+ (a4,b4)-- % 4
+ (a5,b5)--cycle); % 5
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ (((a10,b10)+75vec4)-- % 0
+ ((a9+60,b9)+75vec4)-- % 1
+ ((a9,b9)-75vec4)-- % 2
+ ((a10,b10)-75vec4)--cycle); % 3
+
+endchar(0);
+
+% ALTERNATE CHARACTERS
+set_stem_round(230,350,270,270,290,310);
+
+"smuio";
+
+%charbegin( "I", 1615h#, capheight*v#, baseline );
+charbegin( 123, 1615h#, capheight*v#, baseline ); %NGB
+n := 15;
+t1 := 0;
+t2 := 4;
+t3 := 6;
+t4 := 9;
+t5 := 12;
+t6 := 14;
+t7 := 16;
+t8 := 17;
+t9 := 19;
+t10 := 21;
+t11 := 24;
+t12 := 26;
+t13 := 28;
+t14 := 30;
+t15 := 31;
+
+adj_fill.A(13) % fixed x points
+ (3, 7, 8, 12) % fixed y points
+ ((1,2), (7,1), (8,1), (15,2)) % tied points
+ ((6,9), (4,11), (2,14)) % verticals
+ ((5,10)) % horizontals
+ ((839,1440){-1,-1}... % 0
+ (819,1450){-1,-1}... % 1
+ (718,1400){-1,0}... % 2
+ (623,1430){-1,1}... % 3
+ (531,1683){0,1}... % 4
+ (779,2243){1,1}...{417,49} % 5
+ (1391,2555){12,-30}... % 6
+ (1403,2525){-.2671,-1.698}...{-73,-88} % 7
+ (1330,2437){0,-1141}... % 8
+ (1330,1296){0,-1}... % 9
+ (1250,623){-306,-1108}... % *10
+ (1024,188){-1,-1}... % 11
+ (551,-49){-1,0}... % 12
+ (147,96){-1,1}... % 13
+ (47,319){0,1}... % 14
+ (96,450){1,1}...{1,0} % 15
+ (242,511)-- % 16
+ (242,511){1,0}... % 17
+ (345,461){1,-1}... % 18
+ (365,333){0,-1}... % 19
+ (433,177){1,-1}... % 20
+ (624,98){1,0}... % 21
+ (888,231){1,1}... % 22
+ (1043,582){210,963}... % *23
+ (1098,1194){0,1}...{0,1131} % 24
+ (1098,2325){-42,13}...{-42,13} % 25
+ (1056,2338){-441,-195}... % 26
+ (886,2210){-1,-1}... % 27
+ (732,1861){0,-1}... % 28
+ (846,1643){1,-1}... % 29
+ (868,1536){0,-1}...{-1,-1} % 30
+ (839,1440)--cycle); % 31
+
+endchar(0);
+
+
+"smuib"; % '174
+
+%charbegin( 126, 1431h#, capheight*v#, baseline );
+charbegin( 124, 1431h#, capheight*v#, baseline ); % DEK
+n := 9;
+t1 := 1;
+t2 := 2;
+t3 := 7;
+t4 := 8;
+t5 := 9;
+t6 := 10;
+t7 := 12;
+t8 := 15;
+t9 := 16;
+
+adj_fill.A(9) % fixed x points
+ (4, 6) % fixed y points
+ ((1,3), (2,1), (4,2), (5,2)) % tied points
+ ((3,7)) % verticals
+ ((2,8)) % horizontals
+ ((1273,2465){-262,-67}...{-262,-67} % 0
+ (1011,2398){-241,0}...{-241,0} % 1
+ (770,2398){-658,-114}... % 2
+ (494,2330){-433,-153}... % *3
+ (337,2245){-1,-1}... % 4
+ (245,2062){0,-1}... % 5
+ (259,1946){155,-849}... % 6
+ (286,1840){0,-1}...{-1,-1} % 7
+ (253,1767)-- % 8
+ (253,1767){-1,-1}... % 9
+ (154,1711){-1,0}... % 10
+ (62,1742){-1,1}... % 11
+ (-1,1878){0,1}... % 12
+ (166,2278){1,1}... % 13
+ (513,2474){845,265}... % *14
+ (1011,2543){1,0}...{577,-34} % 15
+ (1313,2532)--cycle); % 16
+
+n := 6;
+t1 := 0;
+t2 := 2;
+t3 := 3;
+t4 := 4;
+t5 := 5;
+t6 := 7;
+
+adj_fill.B(1) % fixed x points
+ () % fixed y points
+ ((1,5), (3,1), (4,3), (6,4)) % tied points
+ ((2,5)) % verticals
+ () % horizontals
+ ((425,177){1,0}... % 0
+ (683,251){1,1}... % 1
+ (770,941){0,1}...{0,1457} % 2
+ (770,2398)-- % 3
+ (1011,2398){0,-1483}... % 4
+ (1011,915){0,-1}... % 5
+ (950,466){-323,-557}...{-1,-1} % 6
+ (750,177)--cycle); % 7
+
+n := 3;
+t1 := 0;
+t2 := 1;
+t3 := 6;
+
+adj_fill.C() % fixed x points
+ () % fixed y points
+ ((1,5), (2,4)) % tied points
+ () % verticals
+ ((2,3)) % horizontals
+ ((425,177){325,0}...{325,0} % 0
+ (750,177){261,0}... % 1
+ (1011,177){1,0}...{626,169} % 2
+ (1397,226)-- % 3
+ (1428,186){-362,-291}... % 4
+ (770,2){-1,0}...{-449,0} % 5
+ (321,2)--cycle); % 6
+
+endchar(0);
+
diff --git a/Master/texmf-dist/fonts/source/public/ams/msam10.mf b/Master/texmf-dist/fonts/source/public/ams/msam10.mf
new file mode 100644
index 00000000000..5ee754b115f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msam10.mf
@@ -0,0 +1,163 @@
+%% @metafontfile{
+%% filename="msam10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "55224 163 896 7864"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msam10, the first extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSAM V2.2"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+%% include these parameters to shrink R and S so they
+%% fit inside a circle
+%
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msam5.mf b/Master/texmf-dist/fonts/source/public/ams/msam5.mf
new file mode 100644
index 00000000000..4de64fb65ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msam5.mf
@@ -0,0 +1,164 @@
+%% @metafontfile{
+%% filename="msam5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "40067 164 920 8732"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msam5, the first extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSAM V2.2"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=6/36pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=15.5/36pt#; % lowercase stem breadth
+curve#:=17.5/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=18.5/36pt#; % uppercase stem breadth
+cap_curve#:=20.5/36pt#; % uppercase curve breadth
+cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/5; % subscripts to 5pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+3/36pt#, % num2
+ math_axis#+1.51rth#+24/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-63/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-3/36pt#), % denom2
+ 5.99pt#-subs*asc_height#, % sup1
+ 5.49pt#-subs*asc_height#, % sup2
+ 53/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 9.9pt#, % delim1
+ 7.1pt#, % delim2
+ math_axis#; % axis\_height
+
+%% include these parameters to shrink R and S so they
+%% fit inside a circle
+% NOTE: these values are not thoroughly tested for application to an
+% entire cap-small-cap font. Such a font might require adjustments. ngb 10/89
+%
+lower.u#:=8.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=1.5/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=98/36pt#; % height of tallest characters
+lower.cap_height#:=98/36pt#; % height of caps
+lower.x_height#:=45/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=23/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=17/36pt#; % depth of comma below baseline
+
+lower.flare#:=17/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=6.6/36pt#; % uppercase hairline breadth
+lower.stem#:=11/36pt#; % lowercase stem breadth
+lower.cap_stem#:=13.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=16/36pt#; % uppercase curve breadth
+lower.cap_ess#:=12/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=14/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=3/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=17/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=6.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=6.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=6.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+
+lower.o#:=2.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msam6.mf b/Master/texmf-dist/fonts/source/public/ams/msam6.mf
new file mode 100644
index 00000000000..a521016e3a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msam6.mf
@@ -0,0 +1,164 @@
+%% @metafontfile{
+%% filename="msam6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "33101 164 920 8727"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msam6, the first extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSAM V2.2"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=6.5/36pt#; % diameter of serif corners
+tiny#:=6.5/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=17.5/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21/36pt#; % uppercase stem breadth
+cap_curve#:=23.5/36pt#; % uppercase curve breadth
+cap_ess#:=18.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/6; % subscripts to 6pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+9/36pt#, % num2
+ math_axis#+1.51rth#+29/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-74/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-9/36pt#), % denom2
+ 6.49pt#-subs*asc_height#, % sup1
+ 5.99pt#-subs*asc_height#, % sup2
+ 62/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+%% include these parameters to shrink R and S so they
+%% fit inside a circle
+% NOTE: these values are not thoroughly tested for application to an
+% entire cap-small-cap font. Such a font might require adjustments. ngb 10/89
+%
+lower.u#:=10/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=1.5/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=105/36pt#; % height of tallest characters
+lower.cap_height#:=105/36pt#; % height of caps
+lower.x_height#:=58/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=31/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=24/36pt#; % depth of comma below baseline
+
+lower.flare#:=18/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7.1/36pt#; % uppercase hairline breadth
+lower.stem#:=13/36pt#; % lowercase stem breadth
+lower.cap_stem#:=16/36pt#; % uppercase stem breadth
+lower.cap_curve#:=19/36pt#; % uppercase curve breadth
+lower.cap_ess#:=12/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=14/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=3.8/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=24/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=7.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=7.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=7.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3.0/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msam7.mf b/Master/texmf-dist/fonts/source/public/ams/msam7.mf
new file mode 100644
index 00000000000..f8073fde7bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msam7.mf
@@ -0,0 +1,162 @@
+%% @metafontfile{
+%% filename="msam7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "41560 162 896 8590"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msam7, the first extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSAM V2.2"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=19.5/36pt#; % lowercase stem breadth
+curve#:=22.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=26.5/36pt#; % uppercase curve breadth
+cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+%% include these parameters to shrink R and S so they
+%% fit inside a circle
+%
+lower.u#:=11.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.0/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=120/36pt#; % height of tallest characters
+lower.cap_height#:=119/36pt#; % height of caps
+lower.x_height#:=71/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=39/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=31/36pt#; % depth of comma below baseline
+
+lower.flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7.6/36pt#; % uppercase hairline breadth
+lower.stem#:=15/36pt#; % lowercase stem breadth
+lower.cap_stem#:=18.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=22/36pt#; % uppercase curve breadth
+lower.cap_ess#:=16/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=17/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=4.6/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=31/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=7.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=7.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=7.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msam8.mf b/Master/texmf-dist/fonts/source/public/ams/msam8.mf
new file mode 100644
index 00000000000..a6e25535bef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msam8.mf
@@ -0,0 +1,162 @@
+%% @metafontfile{
+%% filename="msam8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "61655 162 896 8580"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msam8, the first extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSAM V2.2"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+%% include these parameters to shrink R and S so they
+%% fit inside a circle
+%
+lower.u#:=13/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.7/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=146/36pt#; % height of tallest characters
+lower.cap_height#:=145.8/36pt#; % height of caps
+lower.x_height#:=85/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=47.6/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=38/36pt#; % depth of comma below baseline
+
+lower.flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.1/36pt#; % uppercase hairline breadth
+lower.stem#:=17/36pt#; % lowercase stem breadth
+lower.cap_stem#:=21/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=20/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.4/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=38/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msam9.mf b/Master/texmf-dist/fonts/source/public/ams/msam9.mf
new file mode 100644
index 00000000000..d27ceab4ea2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msam9.mf
@@ -0,0 +1,163 @@
+%% @metafontfile{
+%% filename="msam9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "04752 163 896 8624"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msam9, the first extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSAM V2.2"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+%% include these parameters to shrink R and S so they
+%% fit inside a circle
+%
+lower.u#:=14.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=173/36pt#; % height of tallest characters
+lower.cap_height#:=170.4/36pt#; % height of caps
+lower.x_height#:=100.5/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=56.3/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=45/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.6/36pt#; % uppercase hairline breadth
+lower.stem#:=19/36pt#; % lowercase stem breadth
+lower.cap_stem#:=23.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=28/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=6.2/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=45/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msbm10.mf b/Master/texmf-dist/fonts/source/public/ams/msbm10.mf
new file mode 100644
index 00000000000..128bef448c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msbm10.mf
@@ -0,0 +1,130 @@
+%% @metafontfile{
+%% filename="msbm10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "35873 130 723 6254"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msbm10, the second extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSBM V2.2"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+def diagonal (suffix ne, sw)= draw z.ne--z.sw enddef;
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msbm5.mf b/Master/texmf-dist/fonts/source/public/ams/msbm5.mf
new file mode 100644
index 00000000000..4d34d8a8ba7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msbm5.mf
@@ -0,0 +1,128 @@
+%% @metafontfile{
+%% filename="msbm5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "42619 128 715 6848"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msbm5, the second extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSBM V2.2"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=6/36pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=15.5/36pt#; % lowercase stem breadth
+curve#:=17.5/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=18.5/36pt#; % uppercase stem breadth
+cap_curve#:=20.5/36pt#; % uppercase curve breadth
+cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/5; % subscripts to 5pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+3/36pt#, % num2
+ math_axis#+1.51rth#+24/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-63/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-3/36pt#), % denom2
+ 5.99pt#-subs*asc_height#, % sup1
+ 5.49pt#-subs*asc_height#, % sup2
+ 53/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 9.9pt#, % delim1
+ 7.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msbm6.mf b/Master/texmf-dist/fonts/source/public/ams/msbm6.mf
new file mode 100644
index 00000000000..60ea5c7a7b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msbm6.mf
@@ -0,0 +1,128 @@
+%% @metafontfile{
+%% filename="msbm6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "56469 128 715 6842"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msbm6, the second extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSBM V2.2"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=6.5/36pt#; % diameter of serif corners
+tiny#:=6.5/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=17.5/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21/36pt#; % uppercase stem breadth
+cap_curve#:=23.5/36pt#; % uppercase curve breadth
+cap_ess#:=18.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/6; % subscripts to 6pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+9/36pt#, % num2
+ math_axis#+1.51rth#+29/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-74/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-9/36pt#), % denom2
+ 6.49pt#-subs*asc_height#, % sup1
+ 5.99pt#-subs*asc_height#, % sup2
+ 62/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msbm7.mf b/Master/texmf-dist/fonts/source/public/ams/msbm7.mf
new file mode 100644
index 00000000000..48c019e7350
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msbm7.mf
@@ -0,0 +1,128 @@
+%% @metafontfile{
+%% filename="msbm7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "29527 128 715 6847"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msbm7, the second extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSBM V2.2"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=19.5/36pt#; % lowercase stem breadth
+curve#:=22.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=26.5/36pt#; % uppercase curve breadth
+cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msbm8.mf b/Master/texmf-dist/fonts/source/public/ams/msbm8.mf
new file mode 100644
index 00000000000..0e8e7b42185
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msbm8.mf
@@ -0,0 +1,128 @@
+%% @metafontfile{
+%% filename="msbm8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "40185 128 715 6839"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msbm8, the second extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSBM V2.2"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/msbm9.mf b/Master/texmf-dist/fonts/source/public/ams/msbm9.mf
new file mode 100644
index 00000000000..ddf9ca523af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/msbm9.mf
@@ -0,0 +1,128 @@
+%% @metafontfile{
+%% filename="msbm9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "44671 128 715 6851"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the parameter file for use with
+%% msbm9, the second extra symbol font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="MSBM V2.2"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/serb.mf b/Master/texmf-dist/fonts/source/public/ams/serb.mf
new file mode 100644
index 00000000000..906997452cf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/serb.mf
@@ -0,0 +1,550 @@
+%% @metafontfile{
+%% filename="serb.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "47996 550 2173 26152"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the driver file for use with
+%% the cyrillic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%This is serb.mf containing serbian and other letters with offsets
+%of 8 between upper and lower case
+
+% The letter "ZHE" is first in this file because it uses the picture "K"
+% saved from the end of the previous file.
+cmchar "The Russian letter ZHE";
+beginchar(oct"021",12u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(6u#+cap_serif_fit#,cap_serif_fit#); slantswitch;
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+% pickup fine.nib; pos3(vair,90); x3=x1; y3=.55h; z3'=z3; pos3'(slab,90);
+ pickup fine.nib; pos3(vair,90); x3=x1; y3=.55h; z3'=z3; pos3'(varwid,90);
+% pos4(vair,90); x4=w-2u; top y4r=h+oo;
+ pos4(varwid,90); x4=w-.75flare-.125u; top y4r=h+oo;
+% filldraw stroke z3'e{right}..{right}z4e; % upper diagonal
+ x41=x4; y41=y3'; x42=x4-2u; y42=y4;
+ filldraw stroke z3'e..controls z41 and z42..z4e; % upper diagonal
+ pos5(hair,0); pos6(flare,0);
+ rt x5r=hround(w-.125u); y5+.5flare=vround(top y4r-hair)+1;
+ top y4'r=top y4r; x4'=x4; pos4'(hair,90);
+ bulb(4',5,6); % bulb
+% pos7(stem,0); pos8(vair,90); pos9(hair,180);
+ pos7(stem,0); pos8(varwid,90); pos9(hair,180);
+ x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+ lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+ filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+else:
+ numeric right_jut,stem[],alpha[];
+ right_jut=.4tiny;
+ pickup tiny.nib;
+ stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+ stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+ top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+ bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+ x4=x1; y4=1/3h;
+ alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+ penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+ alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+ penpos6(alpha2*(stem2-tiny),0);
+ forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+ z5=.5[z5l,z5r];
+ z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+ % we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+ z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+ z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+ fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+ fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+fi
+picture V; %transform t;
+%t=identity reflectedabout(z1,z2);
+%V=currentpicture transformed t;
+%addto currentpicture also V;
+mirror(x1);
+addto currentpicture also K_pic;
+% !!!!! note that this requires K_pic be set as current by previous K definition
+%
+picture K_pic; %release resources held by K_pic
+endchar;
+
+cmchar "The Serbian letter Soft N (looks like Hb)";
+beginchar(oct"000",19u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,0);
+w:=13u;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper rt serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower rt serif
+% now the b part
+w:=19u; numeric middle_weight;
+ middle_weight=if serifs: .6vair+.5 else: cap_bar fi;
+z88=z6; penpos88(middle_weight,90); penpos89(middle_weight,90);
+y89=y88; x89=x91= if serifs: .5[x3,w-1.5u]+.5u else: .5[x3,w-2.5u] +.5u fi;
+numeric right_curve;
+if serifs: right_curve=cap_curve-stem_corr;
+else: right_curve=cap_curve-3stem_corr; fi
+x89l:=x89-.25u; penpos90(right_curve,0); y90=.5[y89,y91]; x90r=hround(w-u);
+bot y92r=0; x92=x4; penpos92(cap_band,-90); y91=y92; penpos91(cap_band,-90);
+filldraw stroke z88e..super_arc.e(89,90)&super_arc.e(90,91)..z92e;
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Serbian letter Soft L";
+beginchar(oct"001",19u#,cap_height#,0);
+adjust_fit(0,0); w:=13u;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(w-3u); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e;
+if serifs:
+ numeric inner_jut; inner_jut=.5(x1-x5);
+ x4=u+.5dot_size; x3=x4+.5dot_size; bot y3r=0; pos3(1.5cap_hair,-90);
+ x5=.42[x4,x1]; top y5=h; pos5(1.5cap_hair,0); pos4(dot_size,-180);
+ pos10(hair,-180);
+ filldraw stroke z3e{right}...{up}z5e;
+ y4=dot_size; bulb(3,10,4);
+ nodish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut);
+ nodish_serif(1,2,c,1/3,inner_jut,d,1/3,cap_jut);
+% pickup crisp.nib;
+ top y6=h; x6-.75cap_jut=rt x1r; pos6(slab,90);
+ x5'+.5cap_jut=lft x5l; top y5'=h; pos5'(slab,90);
+% filldraw stroke z5'e--z6e;
+ x9=x5; bot y9=0; pos9(cap_hair,0);
+ nodish_serif(5,9,aa,1/3,cap_jut,ab,1/3,inner_jut); % upper left serif
+else:
+ x5r=hround u; bot y5r=vround(.06h-o); bot y4r=-o; x4r=.35[x5,x3r];
+ x3=x5+3flare; top y3=h; lft x3'=lft x3l; top y3'r=h; rt x1'r=rt x1r;
+ top y1'r=h; pos3'(slab,90); pos1'(slab,90); pos5(flare,-120); pos4(vair,-90);
+ pos3(hair,0);
+ filldraw stroke z5e...{right}z4e...{up}z3e;
+ filldraw stroke z3'e--z1'e;
+fi
+% now the b part
+w:=19u; numeric middle_weight; middle_weight=.6vair+.5;
+x88=x1; y88=.52h; penpos88(middle_weight,90); penpos89(middle_weight,90);
+y89=y88; x89=x91= if serifs: .5[x1,w-1.5u]+.5u else: .5[x1,w-2.5u] +.5u fi;
+numeric right_curve;
+if serifs: right_curve=cap_curve-stem_corr; else: right_curve=cap_curve-3stem_corr; fi
+x89l:=x89-.25u; penpos90(right_curve,0); y90=.5[y89,y91]; x90r=hround(w-u);
+x92=x2; bot y92r=0; penpos92(cap_band,-90); y91=y92; penpos91(cap_band,-90);
+filldraw stroke z88e..super_arc.e(89,90)&super_arc.e(90,91)..z92e;
+endchar;
+
+cmchar "The Serbian letter Hard DJ";
+beginchar(oct"002",13u#+width_adj#,cap_height#,if serifs: 1.75cap_stem#
+ else: .5desc_depth# fi);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,c,1/3,cap_jut,d,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,g,1/3,inner_jut,h,1/3,cap_jut); % upper left serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,a,1/3,cap_jut,b,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,e,1/3,inner_jut,f,1/3,cap_jut); % lower left serif
+else:
+ lft x1'= lft x1l; bot y1'l=0; pos1'(slab,90);
+ rt x3'=rt x3r; y3'=y1'; pos3'(slab,90); filldraw stroke z1'e--z3'e;
+fi
+x90=.5[x2,x4]; y90=0; x91=x90; y91=-d; pos90(cap_stem,0); pos91(cap_stem,0);
+filldraw stroke z90e--z91e;
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Russian letter Reverse E (looks like backwards C)";
+if serifs: beginchar(oct"003",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0); slantswitch;
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround .675h,bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(oct"003",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0); slantswitch;
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ x1'=.65w;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+z90=z3l; x91=x1; y91=y90; pos90(bar,90); pos91(bar,90);
+if serifs: z92=.625[z90,z91]; pos92(if serifs: 2.5 fi bar,90);
+ filldraw stroke z90e{1,1}..{1,-1}z92e..{1,1}z91e;
+else: filldraw stroke z90e--z91e; fi
+mirror(.5w);
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The Ukrainian letter YE (looks like C with mid-line)";
+if serifs: beginchar(oct"005",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround .675h,bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(oct"005",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ x1'=.65w;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+z90=z3l; x91=x1; y91=y90; pos90(bar,90); pos91(bar,90);
+if serifs: z92=.625[z90,z91]; pos92(if serifs: 2.5 fi bar,90);
+ filldraw stroke z90e{1,1}..{1,-1}z92e..{1,1}z91e;
+else: filldraw stroke z90e--z91e; fi
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The Russian letter YU (looks like IO)";
+beginchar(oct"020",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(6.5u#,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup tiny.nib;
+x80=x81=-3u; top y80=h; bot y81=0; pos80(cap_stem,0); pos81(cap_stem,0);
+filldraw stroke z80e--z81e;
+if serifs:
+ dish_serif(80,81,e,1/3,cap_jut,f,1/3,cap_jut);
+ dish_serif(81,80,g,1/3,cap_jut,h,1/3,cap_jut);
+fi
+x82=x80; y82=y2; x83=x2; y83=y82; pos82(cap_bar,90); pos83(cap_bar,90);
+filldraw stroke z82e--z83e;
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The Russian letter Short I";
+beginchar(oct"022",14u#+width_adj#,cap_height#+3dot_size#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); h:=cap_height;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: penpos5(.85cap_stem,90); penpos6(.85cap_stem,90); else: penpos5(cap_stem,90); penpos6(cap_stem,90); fi
+x5=x1r; x6=x3l; if serifs: y5=.1h; y6=.9h; else: bot y5l=0; top y6r=h; fi
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+x51=.5w; y51=h; h:=body_height+2dot_size; nucyrbrev(51,q);
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+% for shape, see Knizhnay Shrift p 58 Bodoni, Parma 1818
+cmchar "The Old Russian letter IZHITSA (looks like V)";
+beginchar(oct"024",13u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut;
+x1l=w-x4r-1.5u=l+letter_fit+outer_jut+.25u; y1=y4+.1h+cap_hair=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+x5=x4+ if serifs:1.5 else: 2.25 fi u; top y5r=h+oo; penpos5(cap_hair,90);
+rt x6r-.25flare=hround(w-.5u-.5); y6+.55flare=bot y5l; penpos6(hair,0);
+penpos7(flare,0); if serifs: bulb(5,6,7); fi
+if y0>cap_notch_cut: y0:=cap_notch_cut; message "y0>cap_notch_cut";
+ fill z0+.5right{up}...{z4-z3}z4l...{right}z5r--z5l{left}
+ ...z4r{z3-z4}--z3r...z3l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--z4l{z4-z3}...{right}z5r--z5l{left}
+ ...{z3-z4}z4r--z3r{-10,-1}...{-10,1}z3l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+fi
+math_fit(.75u#-cap_height#*slant,ic#-4u#); penlabels(0,1,2,3,4); endchar;
+
+cmchar "The Old Russian letter FITA (looks like Theta)";
+beginchar(oct"025",14u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=hround(cap_curve-2stem_corr);
+penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 4.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround 2.5u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup crisp.nib; pos5(cap_vstem,90); pos6(cap_vstem,90);
+lft x5=w-rt x6=hround .5u; y5=y6=.5[y1l,y3l];
+filldraw stroke z5e--z6e; % bar
+if serifs: pos7(hair,0); pos8(hair,0); pos9(hair,0); pos10(hair,0);
+ x7l=x8l=x5; x9r=x10r=x6;
+ y7=y5r; y9=y6r; y5l-y8=y6l-y10=vround .075h;
+ filldraw stroke z7e--z8e; % left serif
+ filldraw stroke z9e--z10e; fi % right serif
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The Macedonian letter ZELO (looks like S)";
+beginchar(oct"026",10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The Russian letter YA (looks like backward R)";
+beginchar(oct"027",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(0,cap_serif_fit#); slantswitch;
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+mirror(.5w);
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+endinput; %%%%%%%%%%%%%%%%%%%%
+
+cmchar "The Ukrainian letter Hard G (looks like Gamma)";
+beginchar(oct"225",11.5u#-width_adj#,body_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=cap_height; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l+beak)+eps;
+if serifs: armup(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+else: x21=x4; y21=y3; rt x22r=rt x21; x22'=x22; y22'=top y21r; y22=top y21r+slab; pos21(slab,90); pos22(slab,0); pos22'(slab,0);
+ filldraw stroke z3e--z21e; filldraw stroke z22e--z22'e;
+fi
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+%arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter A modified";
+beginchar(oct"255",13u#+2cap_stem#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =.5y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,.6inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,.6inner_jut,d,1/3,outer_jut); fi % right serif
+x99=.5[x5,x6]; y99=y5; pos99(.5cap_stem,0); pos98(.5cap_stem,0);
+x98=x99; bot y98=0; filldraw stroke z98e--z99e;
+if serifs: dish_serif(98,99,e,1/3,.6inner_jut,f,1/3,.6inner_jut); fi
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The Old Bulgarian letter YUS";
+beginchar(oct"322",18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib;
+x1l=w-x2r=.2w;
+pos1(cap_stem,0); pos2(cap_hair,0); top y1=h; y2=y1;
+x3=.5[x1,x2]; x4=x3; bot y4=0; pos3(cap_stem,0); pos4(cap_stem,0);
+pos5(cap_stem,0); x5=x3;
+bot y5=.52h; %top y5=x_height;
+z3l=whatever[z1l,z5l]; z3r=whatever[z5r,z2r];
+x5'r=x5r; y5'=y5; pos5'(cap_hair,0);
+filldraw stroke z1e--z5e;
+filldraw stroke z5'e--z2e; filldraw stroke z3e--z4e;
+if serifs: pos0(cap_stem,180); pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ x7=x3; y7r=bot y5; x6=1/3[x4,x8]; y6=y7; pos6(vair,-90); pos7(vair,-90);
+ x11=w-x6; pos11(vair,-90); y11=y6;
+ pos12(cap_stem,0); pos13(cap_curve,0); pos14(vair,-90); pos15(hair,180);
+ lft x0r=lft x8r=hround(w-3.5u-.5cap_curve); x12r=x13r=w-x8r;
+ y8=y13=1/3[y4,y7]; y0=y12=3/6[y4,y7]; x9=.5[x8l,x10r]; x14=w-x9;
+ bot y9r=-o; y14=y9; rt x10r=hround(w-.05u); x15=w-x10; y10=y15=1/4[y4,y7];
+ filldraw stroke
+ z15e{down}..{right}z14e....z13e---z12e..{right}z11e--z6e{right}..z0e---z8e
+ ....z9e{right}..{up}z10e;
+ dish_serif(4,3,c,1/3,.75cap_jut,d,1/3,.75cap_jut);
+else:
+ penpos9(cap_stem,0); penpos14(cap_stem,180); x9r=hround(w-.5u); x14=w-x9;
+ y9=y14=0; penpos10(cap_stem,0); penpos15(cap_stem,180); penpos13(cap_stem,90);
+ top y13r=.52h; x13=x4; x10=x13+.2w; y10=y15=.8y13; x15=w-x10;
+ fill z13l{right}...{z9l-z10l}z10l--diag_end(10l,9l,.5,1,9r,10r)--z10r{z10r-z9r}...{left}z13r--cycle;
+ fill z13l{left}...{z14l-z15l}z15l--diag_end(15l,14l,.5,1,14r,15r)--z15r{z15r-z14r}...{right}z13r--cycle;
+fi
+x20=x1r; x21=x2l; top y20r=top y21r=h; pos20(slab,90); pos21(slab,90);
+filldraw stroke z20e--z21e;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ams/serbspu.mf b/Master/texmf-dist/fonts/source/public/ams/serbspu.mf
new file mode 100644
index 00000000000..3b6e432ffcb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/serbspu.mf
@@ -0,0 +1,183 @@
+%% @metafontfile{
+%% filename="serbspu.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "29666 183 765 8548"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the driver file for use with
+%% the cyrillic fonts in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%This is serbspu.mf containing serbian and other letters with offsets
+%of 8 between upper and lower case.
+%spu = separate upper and lower case.
+
+cmchar "The Ukrainian letter I";
+beginchar(oct"004",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "The Serbian letter Soft DJ (looks like Th with a tail)";
+beginchar(oct"006",15.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+% c part
+h:=x_height; w:=6.5u;
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround h; bot y4r=0;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); lft x5l=w+1.5u; %rt x5r=hround(w+1.5u);
+% y5=max(good.y(.5bar_height-.9),y4l+vair');
+y5=.875y3;
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull);
+% ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ %pos5(.6[vair',flare],275);
+ pos5(.6[vair',flare],360);
+ lft x5l=w+1.5u; %rt x5r=hround(w-.5u);
+% y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ y5=.625y3;
+% forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+% if angle direction 1 of p.e>75:
+% p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull); fi
+ %& p.e; fi % arc and lower terminal
+x99=.5w; y99=.5h; flip(99);
+currentpicture:=nullpicture; clearxy;
+% T part
+h:=vround(cap_height-2stem_corr); w:=13u;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-.5beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.325cap_jut); fi % upper bracketing
+addto currentpicture also V shifted(x2r+1.5u,0);
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Serbian letter Soft T";
+beginchar(oct"007",13u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,.75u#);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem-u); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-1.65u); y4=good.y(y3l-.5beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4-u; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,cap_jut,d,1/3,.75cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+pickup tiny.nib;
+pos33(stem,0); x33=hround(w-2.5u+.5stem);
+h_stroke(2,q,33,34);
+dish_serif(34,33,g,1/3,.75cap_jut,h,1/3,.75cap_jut);
+math_fit(-.75cap_height#*slant,ic#-2.5u#);
+penlabels(1,2,3,4,5,6,33,34); endchar;
+
+cmchar "The Russian letter YO (looks like E umlaut)";
+beginchar(oct"023",12u#-width_adj#,cap_height#,0);
+% note height not adjusted for umlaut
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+x51=.5w; y51=h; umlaut(51,q);
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The Old Russian letter YATZ";
+beginchar(oct"043",12.5u#,body_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(2u#+cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pos53(slab,90); pos54(hair,0);
+top y53r=.85h; x53=x1; rt x54r=hround(w-2.65u); y54=good.y(y53l-.5beak)-eps;
+arm(53,54,m,beak_darkness,.7beak_jut); % right arm and beak
+pos55(hair,180); x55=w-x54-4u; y55=y54;
+arm(53,55,p,beak_darkness,-.7beak_jut); % left arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyb10.mf b/Master/texmf-dist/fonts/source/public/ams/wncyb10.mf
new file mode 100644
index 00000000000..90fc7f5536a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyb10.mf
@@ -0,0 +1,147 @@
+%% @metafontfile{
+%% filename="wncyb10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "41246 147 848 7146"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyb10, the bold cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYB10, Washington Computer Modern Cyrillic Bold 10 point,
+% which is based on CMBX10.MF (Computer Modern Bold Extended Roman 10 point)
+% and on CMCSC10.MF (Computer Modern Roman Caps and Small Caps 10 point)
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYB V2.2"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=7/36pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=0/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=175/36pt#; % height of tallest characters
+lower.cap_height#:=160/36pt#; % height of caps
+lower.x_height#:=100/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=55/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=44/36pt#; % depth of comma below baseline
+
+lower.flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=17/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=41/36pt#; % lowercase stem breadth
+lower.cap_stem#:=41/36pt#; % uppercase stem breadth
+lower.cap_curve#:=46/36pt#; % uppercase curve breadth
+lower.cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=28/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=44/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=17/36pt#; % serif and arm thickness
+lower.cap_bar#:=17/36pt#; % uppercase bar thickness
+lower.cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyb5.mf b/Master/texmf-dist/fonts/source/public/ams/wncyb5.mf
new file mode 100644
index 00000000000..601ea8f5542
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyb5.mf
@@ -0,0 +1,151 @@
+%% @metafontfile{
+%% filename="wncyb5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "42986 151 885 7383"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyb5, the bold cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYB5.MF, Washington Computer Modern Cyrillic Bold 5 point,
+% which is based on CMBX5.MF (Computer Modern Bold Extended Roman 5 point)
+% and on CMCSC10.MF (Computer Modern Roman Caps and Small Caps 10 point)
+% and other relevant Computer Modern parameter values.
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYB V2.2"; font_size 5pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=13/36pt#; % protrusion of lowercase serifs
+cap_jut#:=19/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=0.4; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=13/36pt#; % unit width
+lower.width_adj#:=5/36pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=80/36pt#; % height of tallest characters
+lower.cap_height#:=77.55/36pt#; % height of caps
+lower.x_height#:=62/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=38/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=30/36pt#; % depth of comma below baseline
+
+lower.flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=12/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=18/36pt#; % lowercase stem breadth
+lower.cap_stem#:=21/36pt#; % uppercase stem breadth
+lower.cap_curve#:=23/36pt#; % uppercase curve breadth
+lower.cap_ess#:=17/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=13/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=4/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=15/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9/36pt#; % serif and arm thickness
+lower.cap_bar#:=9/36pt#; % uppercase bar thickness
+lower.cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=3pt#; % max breadth above/below uppercase notches
+
+lower.o#:=2/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyb6.mf b/Master/texmf-dist/fonts/source/public/ams/wncyb6.mf
new file mode 100644
index 00000000000..0b251d3c2c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyb6.mf
@@ -0,0 +1,146 @@
+%% @metafontfile{
+%% filename="wncyb6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "44186 146 856 7638"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyb6, the bold cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYB6.MF, Washington Computer Modern Cyrillic Bold 6 point;
+% which is based on WNCYR7.MF developed at the University of Washington
+% (based on CMCSC10.MF (Computer Modern Roman Caps and Small Caps 10 point))
+% and on CMBX6 (Computer Modern Bold Extended Roman 6 point).
+% This file was created at the American Mathematical Society.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYB V2.2"; font_size 6pt#;
+
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=36/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+lower.u#:=13.1/36pt#; % unit width
+lower.width_adj#:=5.1/36pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.5/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=1.5/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=99.5/36pt#; % height of tallest characters
+lower.cap_height#:=93.4/36pt#; % height of caps
+lower.x_height#:=66.8/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=38.9/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=31.7/36pt#; % depth of comma below baseline
+
+lower.flare#:=23/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=12.9/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=19.7/36pt#; % lowercase stem breadth
+lower.cap_stem#:=23.23/36pt#; % uppercase stem breadth
+lower.cap_curve#:=24.8/36pt#; % uppercase curve breadth
+lower.cap_ess#:=20.6/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=16.4/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=4.7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=21.6/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.5/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.5/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=4.5pt#; % max breadth above/below uppercase notches
+
+lower.o#:=2.25/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyb7.mf b/Master/texmf-dist/fonts/source/public/ams/wncyb7.mf
new file mode 100644
index 00000000000..b80a69da3d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyb7.mf
@@ -0,0 +1,151 @@
+%% @metafontfile{
+%% filename="wncyb7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "43782 151 885 7420"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyb7, the bold cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYB7.MF, Washington Computer Modern Cyrillic Bold 7 point,
+% which is based on CMBX7.MF (Computer Modern Bold Extended Roman 7 point)
+% and on CMCSC10.MF (Computer Modern Roman Caps and Small Caps 10 point)
+% and other relevant Computer Modern parameter values
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYB V2.2"; font_size 7pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=1/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.26/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=32/36pt#; % lowercase stem breadth
+curve#:=35/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=38/36pt#; % uppercase stem breadth
+cap_curve#:=41/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7/36pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=0.4; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=13/36pt#; % unit width
+lower.width_adj#:=5/36pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=1/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=120/36pt#; % height of tallest characters
+lower.cap_height#:=108.5/36pt#; % height of caps
+lower.x_height#:=69/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=38/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=32/36pt#; % depth of comma below baseline
+
+lower.flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=13/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=25/36pt#; % uppercase stem breadth
+lower.cap_curve#:=26/36pt#; % uppercase curve breadth
+lower.cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.4/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=28/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=10/36pt#; % serif and arm thickness
+lower.cap_bar#:=10/36pt#; % uppercase bar thickness
+lower.cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=6.5/36pt#; % max breadth above/below uppercase notches
+
+lower.o#:=2.4/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyb8.mf b/Master/texmf-dist/fonts/source/public/ams/wncyb8.mf
new file mode 100644
index 00000000000..e9e11d40011
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyb8.mf
@@ -0,0 +1,146 @@
+%% @metafontfile{
+%% filename="wncyb8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "37894 146 856 7621"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyb8, the bold cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYB8.MF, Washington Computer Modern Cyrillic Bold 8 point;,
+% which is based on WNCYR10.MF developed at the University of Washington
+% (based on CMCSC10.MF (Computer Modern Roman Caps and Small Caps 10 point))
+% and on CMBX8 (Computer Modern Bold Extended Roman 8 point).
+% This file was created at the American Mathematical Society.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYB V2.2"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=70/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+lower.u#:=14.2/36pt#; % unit width
+lower.width_adj#:=5.5/36pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=0/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=137/36pt#; % height of tallest characters
+lower.cap_height#:=124/36pt#; % height of caps
+lower.x_height#:=79/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=36.6/36pt#; % depth of comma below baseline
+
+lower.flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=13.7/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=23/36pt#; % lowercase stem breadth
+lower.cap_stem#:=28.3/36pt#; % uppercase stem breadth
+lower.cap_curve#:=29.2/36pt#; % uppercase curve breadth
+lower.cap_ess#:=26.7/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.9/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=33.5/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=11/36pt#; % serif and arm thickness
+lower.cap_bar#:=11/36pt#; % uppercase bar thickness
+lower.cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=7.5pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2.5/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyb9.mf b/Master/texmf-dist/fonts/source/public/ams/wncyb9.mf
new file mode 100644
index 00000000000..5d198a3c9a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyb9.mf
@@ -0,0 +1,147 @@
+%% @metafontfile{
+%% filename="wncyb9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "00235 147 856 7617"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyb9, the bold cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYB9.MF, Washington Computer Modern Cyrillic Bold 9 point,
+% which is based on WNCYR10.MF developed at the University of Washington
+% (based on CMCSC10.MF (Computer Modern Roman Caps and Small Caps 10 point))
+% and on CMBX9 (Computer Modern Bold Extended Roman 9 point).
+% This file was created at the American Mathematical Society.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYB V2.2"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=140/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+lower.u#:=14.9/36pt#; % unit width
+lower.width_adj#:=6.5/36pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=0/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=157/36pt#; % height of tallest characters
+lower.cap_height#:=144/36pt#; % height of caps
+lower.x_height#:=88/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=50/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=39.6/36pt#; % depth of comma below baseline
+
+lower.flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=17/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=38/36pt#; % lowercase stem breadth
+lower.cap_stem#:=37.8/36pt#; % uppercase stem breadth
+lower.cap_curve#:=42.5/36pt#; % uppercase curve breadth
+lower.cap_ess#:=34.4/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=25/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=39.5/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=16/36pt#; % serif and arm thickness
+lower.cap_bar#:=16/36pt#; % uppercase bar thickness
+lower.cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyi10.mf b/Master/texmf-dist/fonts/source/public/ams/wncyi10.mf
new file mode 100644
index 00000000000..2b07322eaaf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyi10.mf
@@ -0,0 +1,116 @@
+%% @metafontfile{
+%% filename="wncyi10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "26737 116 671 5541"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyi10, the italic cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYI10.MF, Washington Computer Modern Cyrillic Italic 10 point,
+% which is based on CMTI10.MF (Computer Modern Text Italic 10 point)
+% as of May 5, 1986.
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYI V2.2"; font_size 10pt#;
+
+u#:=18.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+generate cyrital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyi5.mf b/Master/texmf-dist/fonts/source/public/ams/wncyi5.mf
new file mode 100644
index 00000000000..da5fa793a47
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyi5.mf
@@ -0,0 +1,115 @@
+%% @metafontfile{
+%% filename="wncyi5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "59114 115 664 5519"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyi5, the italic cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYI5.MF, Washington Computer Modern Cyrillic Italic 5 point,
+% which is based on WNCYI7.MF and relevant Computer Modern parameters.
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYI V2.2"; font_size 5pt#;
+
+u#:=10.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=6/36pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=17/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=13/36pt#; % breadth in middle of lowercase s
+flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+generate cyrital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyi6.mf b/Master/texmf-dist/fonts/source/public/ams/wncyi6.mf
new file mode 100644
index 00000000000..ce558f0090a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyi6.mf
@@ -0,0 +1,113 @@
+%% @metafontfile{
+%% filename="wncyi6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "42791 113 660 5501"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyi6, the italic cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYI6.MF, Washington Computer Modern Italic Cyrillic 6 point,
+% which is based on CMTI6.MF, created at the American Mathematical Society.
+% This file was created at AMS.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYI V2.2"; font_size 6pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=21/36pt#; % lowercase curve breadth
+ess#:=18/36pt#; % breadth in middle of lowercase s
+flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21/36pt#; % uppercase stem breadth
+cap_curve#:=22.5/36pt#; % uppercase curve breadth
+cap_ess#:=18/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=18/36pt#; % protrusion of lowercase serifs
+cap_jut#:=22/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.7/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyi7.mf b/Master/texmf-dist/fonts/source/public/ams/wncyi7.mf
new file mode 100644
index 00000000000..d9214f563b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyi7.mf
@@ -0,0 +1,116 @@
+%% @metafontfile{
+%% filename="wncyi7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "36989 116 671 5566"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyi7, the italic cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYI7.MF, Washington Computer Modern Cyrillic Italic 7 point,
+% which is based on CMTI7.MF (Computer Modern Text Italic 7 point)
+% as of May 5, 1986.
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYI V2.2"; font_size 7pt#;
+
+u#:=14.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.26/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=10.5/36pt#; % lowercase hairline breadth
+stem#:=18.5/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=10.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24.5/36pt#; % uppercase curve breadth
+cap_ess#:=21/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23.5/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+generate cyrital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyi8.mf b/Master/texmf-dist/fonts/source/public/ams/wncyi8.mf
new file mode 100644
index 00000000000..90692a1f1ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyi8.mf
@@ -0,0 +1,113 @@
+%% @metafontfile{
+%% filename="wncyi8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "16483 113 663 5907"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyi8, the italic cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYI8.MF, Washington Computer Modern Italic Cyrillic 8 point,
+% which is based on CMTI8.MF (Computer Modern Text Italic 8 point).
+% This file was created at the American Mathematical Society.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYI V2.2"; font_size 8pt#;
+
+u#:=15.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=7.9/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyi9.mf b/Master/texmf-dist/fonts/source/public/ams/wncyi9.mf
new file mode 100644
index 00000000000..a2f32d74de5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyi9.mf
@@ -0,0 +1,113 @@
+%% @metafontfile{
+%% filename="wncyi9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "43322 113 663 5911"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyi9, the italic cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYI9.MF, Washington Computer Modern Italic Cyrillic 9 point,
+% which is based on CMTI9.MF (Computer Modern Text Italic 9 point).
+% This file was created at the American Mathematical Society.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYI V2.2"; font_size 9pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=8.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=30.5/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.5/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyr10.mf b/Master/texmf-dist/fonts/source/public/ams/wncyr10.mf
new file mode 100644
index 00000000000..ef1f7256327
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyr10.mf
@@ -0,0 +1,150 @@
+%% @metafontfile{
+%% filename="wncyr10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "14770 150 865 7254"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyr10, the cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYR10.MF, Washington Computer Modern Cyrillic 10 point,
+% which is based on CMCSC10.MF
+% (Computer Modern Roman Caps and Small Caps 10 point).
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYR V2.2"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=14/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=170/36pt#; % height of tallest characters
+lower.cap_height#:=155/36pt#; % height of caps
+lower.x_height#:=98/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=55/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=44/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=25/36pt#; % uppercase stem breadth
+lower.cap_curve#:=30/36pt#; % uppercase curve breadth
+lower.cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=28/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=6.3/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=44/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=11/36pt#; % serif and arm thickness
+lower.cap_bar#:=11/36pt#; % uppercase bar thickness
+lower.cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyr5.mf b/Master/texmf-dist/fonts/source/public/ams/wncyr5.mf
new file mode 100644
index 00000000000..5c61a2b0634
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyr5.mf
@@ -0,0 +1,151 @@
+%% @metafontfile{
+%% filename="wncyr5.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "15819 151 876 7315"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyr5, the cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYR5.MF, Washington Computer Modern Cyrillic 5 point,
+% which is based on CMCSC10.MF
+% (Computer Modern Roman Caps and Small Caps 10 point)
+% and Computer Modern parameter values relevant to 5 point size
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYR V2.2"; font_size 5pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=18/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=11/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=1.5/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=80/36pt#; % height of tallest characters
+lower.cap_height#:=77.55/36pt#; % height of caps
+lower.x_height#:=62/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=38/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=30/36pt#; % depth of comma below baseline
+
+lower.flare#:=16/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7.5/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=14/36pt#; % lowercase stem breadth
+lower.cap_stem#:=18/36pt#; % uppercase stem breadth
+lower.cap_curve#:=18/36pt#; % uppercase curve breadth
+lower.cap_ess#:=12/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=15/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=22/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=7/36pt#; % serif and arm thickness
+lower.cap_bar#:=7/36pt#; % uppercase bar thickness
+lower.cap_band#:=7/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=4pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2.4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyr6.mf b/Master/texmf-dist/fonts/source/public/ams/wncyr6.mf
new file mode 100644
index 00000000000..898dc30d035
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyr6.mf
@@ -0,0 +1,150 @@
+%% @metafontfile{
+%% filename="wncyr6.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "64483 150 877 7742"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyr6, the cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYR6.MF, Washington Computer Modern Cyrillic 6 point,
+% which is based on WNCYR10.MF developed at the University of Washington
+% (based on CMCSC10.MF (Computer Modern Roman Caps and Small Caps 10 point))
+% and other relevant Computer Modern parameter values.
+% This font was created at AMS.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYR V2.2"; font_size 6pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=10/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=1.5/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.7/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=103/36pt#; % height of tallest characters
+lower.cap_height#:=93/36pt#; % height of caps
+lower.x_height#:=59/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=33/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=27.5/36pt#; % depth of comma below baseline
+
+lower.flare#:=17/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=15/36pt#; % lowercase stem breadth
+lower.cap_stem#:=18/36pt#; % uppercase stem breadth
+lower.cap_curve#:=20/36pt#; % uppercase curve breadth
+lower.cap_ess#:=16.5/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=16/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=4.3/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=24/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=7.5/36pt#; % serif and arm thickness
+lower.cap_bar#:=7.5/36pt#; % uppercase bar thickness
+lower.cap_band#:=7.5/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2.4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyr7.mf b/Master/texmf-dist/fonts/source/public/ams/wncyr7.mf
new file mode 100644
index 00000000000..d9012d47511
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyr7.mf
@@ -0,0 +1,151 @@
+%% @metafontfile{
+%% filename="wncyr7.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "29808 151 876 7332"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyr7, the cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYR7.MF, Washington Computer Modern Cyrillic 7 point,
+% which is based on CMCSC10.MF
+% (Computer Modern Roman Caps and Small Caps 10 point)
+% and Computer Modern parameter values relevant to 7 point size
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYR V2.2"; font_size 7pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.26/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=11/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=1.8/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=1.8/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=120/36pt#; % height of tallest characters
+lower.cap_height#:=108.5/36pt#; % height of caps
+lower.x_height#:=69/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=38/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=32/36pt#; % depth of comma below baseline
+
+lower.flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7.5/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=17/36pt#; % lowercase stem breadth
+lower.cap_stem#:=20/36pt#; % uppercase stem breadth
+lower.cap_curve#:=23/36pt#; % uppercase curve breadth
+lower.cap_ess#:=20/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=18/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=4.8/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=28/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8/36pt#; % serif and arm thickness
+lower.cap_bar#:=8/36pt#; % uppercase bar thickness
+lower.cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=6.5pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2.4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyr8.mf b/Master/texmf-dist/fonts/source/public/ams/wncyr8.mf
new file mode 100644
index 00000000000..e080d62f39b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyr8.mf
@@ -0,0 +1,146 @@
+%% @metafontfile{
+%% filename="wncyr8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "28257 146 835 7630"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyr8, the cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYR8.MF, Washington Computer Modern Cyrillic 8 point;
+% which is based on WNCYR10.MF developed at the University of Washington
+% and on CMCSC8.MF created at the American Mathematical Society.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYR V2.2"; font_size 8pt#;
+
+u#:=18/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2.5/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=12.8/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.1/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.25/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=136/36pt#; % height of tallest characters
+lower.cap_height#:=124/36pt#; % height of caps
+lower.x_height#:=78/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=43.4/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=37/36pt#; % depth of comma below baseline
+
+lower.flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7.9/36pt#; % uppercase hairline breadth
+lower.stem#:=18.7/36pt#; % lowercase stem breadth
+lower.cap_stem#:=22/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=23.5/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.3/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=32/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.5/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.5/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=7.5pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyr9.mf b/Master/texmf-dist/fonts/source/public/ams/wncyr9.mf
new file mode 100644
index 00000000000..44b9c6cdbf6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyr9.mf
@@ -0,0 +1,147 @@
+%% @metafontfile{
+%% filename="wncyr9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "11617 147 842 7678"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyr9, the cyrillic font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYR9.MF, Washington Computer Modern Cyrillic 9 point,
+% which is based on WNCYR10.MF developed at the University of Washington
+% and on CMCSC9.MF created at the American Mathematical Society.
+% This font was created at AMS.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYR V2.2"; font_size 9pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=12.7/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.75/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=153/36pt#; % height of tallest characters
+lower.cap_height#:=139.5/36pt#; % height of caps
+lower.x_height#:=87.8/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=49.3/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=39.7/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.6/36pt#; % uppercase hairline breadth
+lower.stem#:=19/36pt#; % lowercase stem breadth
+lower.cap_stem#:=22.6/36pt#; % uppercase stem breadth
+lower.cap_curve#:=26.7/36pt#; % uppercase curve breadth
+lower.cap_ess#:=23.9/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=25/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.8/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=39.7/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=10/36pt#; % serif and arm thickness
+lower.cap_bar#:=10/36pt#; % uppercase bar thickness
+lower.cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncysc10.mf b/Master/texmf-dist/fonts/source/public/ams/wncysc10.mf
new file mode 100644
index 00000000000..7aa7ddfaeb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncysc10.mf
@@ -0,0 +1,151 @@
+%% @metafontfile{
+%% filename="wncysc10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "02752 151 870 7291"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncysc10, the cyrillic cap-small-cap font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYSC10, Washington Computer Modern Cyrillic
+% Caps and Small Caps 10 point, which is based on CMCSC10.MF
+% (Computer Modern Roman Caps and Small Caps 10 point)
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYSC V2.2"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+
+generate cyrcsc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyss10.mf b/Master/texmf-dist/fonts/source/public/ams/wncyss10.mf
new file mode 100644
index 00000000000..247c555d789
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyss10.mf
@@ -0,0 +1,149 @@
+%% @metafontfile{
+%% filename="wncyss10.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "25861 149 859 7196"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyss10, the cyrillic sans-serif font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYSS10.MF, Washington Computer Modern Cyrillic Sans Serif 10 point,
+% which is based on CMSS10.MF (Computer Modern Sans Serif 10 point)
+% and on CMCSC10.MF (Computer Modern Roman Caps and Small Caps 10 point)
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYSS V2.2"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=14/36pt#; % unit width
+lower.width_adj#:=10/36pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=-3/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=0pt#; % extra space added to all sidebars
+
+lower.body_height#:=170/36pt#; % height of tallest characters
+lower.cap_height#:=160/36pt#; % height of caps
+lower.x_height#:=98/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=52/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=40/36pt#; % depth of comma below baseline
+
+lower.flare#:=18/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=28/36pt#; % uppercase hairline breadth %might be reduced to 7
+lower.stem#:=28/36pt#; % lowercase stem breadth
+lower.cap_stem#:=28/36pt#; % uppercase stem breadth
+lower.cap_curve#:=28/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=0pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+lower.beak#:=.5/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=23/36pt#; % serif and arm thickness
+lower.cap_bar#:=21/36pt#; % uppercase bar thickness
+lower.cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+
+lower.o#:=6/36pt#; % amount of overshoot for curves
+lower.apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=.94; % factor applied to weights of heavy characters
+
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyss8.mf b/Master/texmf-dist/fonts/source/public/ams/wncyss8.mf
new file mode 100644
index 00000000000..a4f7167ea8c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyss8.mf
@@ -0,0 +1,148 @@
+%% @metafontfile{
+%% filename="wncyss8.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "32037 148 854 7703"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyss8, the cyrillic sans-serif font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYSS8.MF, Washington Computer Modern Cyrillic Sans Serif 8 point,
+% which is based on CMSS8.MF (Computer Modern Sans Serif 8 point)
+% and on CMCSC8.MF (Computer Modern Roman Caps and Small Caps 8 point)
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYSS V2.2"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=12.8/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=-2.1/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=0/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=136/36pt#; % height of tallest characters
+lower.cap_height#:=128/36pt#; % height of caps
+lower.x_height#:=78/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=41/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=35/36pt#; % depth of comma below baseline
+
+lower.flare#:=13/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=24/36pt#; % uppercase hairline breadth
+lower.stem#:=24/36pt#; % lowercase stem breadth
+lower.cap_stem#:=24/36pt#; % uppercase stem breadth
+lower.cap_curve#:=24/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=0/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=0/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=.5/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=17.5/36pt#; % serif and arm thickness
+lower.cap_bar#:=16.5/36pt#; % uppercase bar thickness
+lower.cap_band#:=16.5/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=0/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=.94; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/wncyss9.mf b/Master/texmf-dist/fonts/source/public/ams/wncyss9.mf
new file mode 100644
index 00000000000..09bb4ee4d3d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/wncyss9.mf
@@ -0,0 +1,148 @@
+%% @metafontfile{
+%% filename="wncyss9.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: parameter",
+%% copyright="Copyright (C) Humanities and Arts Computing Center,
+%% University of Washington;
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "60124 148 854 7306"
+%% keywords="amsfonts, tex, metafont , cyrillic ",
+%% abstract="This is the parameter file for use with
+%% wncyss9, the cyrillic sans-serif font in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This is WNCYSS9.MF, Washington Computer Modern Cyrillic Sans Serif 9 point,
+% which is based on CMSS9.MF (Computer Modern Sans Serif 9 point)
+% and on CMCSC9.MF (Computer Modern Roman Caps and Small Caps 9 point)
+%
+% (C) 1989 Humanities and Arts Computing Center, University of Washington
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNCYSS V2.2"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=212/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=16/36pt#; % width of extrafine details
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=12.7/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=-2.75/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=0/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=153/36pt#; % height of tallest characters
+lower.cap_height#:=144/36pt#; % height of caps
+lower.x_height#:=87.8/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=47/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=35/36pt#; % depth of comma below baseline
+
+lower.flare#:=14/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=24/36pt#; % uppercase hairline breadth
+lower.stem#:=24/36pt#; % lowercase stem breadth
+lower.cap_stem#:=24/36pt#; % uppercase stem breadth
+lower.cap_curve#:=24/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=0/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=0/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=.5/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=21/36pt#; % serif and arm thickness
+lower.cap_bar#:=19/36pt#; % uppercase bar thickness
+lower.cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=16pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=0/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=.94; % factor applied to weights of heavy characters
+
+generate cyrfont % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ams/xbbase.mf b/Master/texmf-dist/fonts/source/public/ams/xbbase.mf
new file mode 100644
index 00000000000..c7f40c0b173
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/xbbase.mf
@@ -0,0 +1,232 @@
+%% @metafontfile{
+%% filename="xbbase.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: base",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "63222 232 806 8822"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the base file for use with
+%% the Blackboard Bold characters in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Changes made for version 2.1:
+% Fixed Problems with smode in draw_outlines and showpoints
+% Stefan Lindner, 21-March-1991
+% Fixed Problems with serifs at small point sizes
+% Stefan Lindner and Lutz Birkhahn, 14-April-91
+
+vardef curve@#(expr a,one,b,two)=
+ save x,y;
+ z0=if(str@#="br")or(str@#="tl"):(xpart b,ypart a)
+ else:(xpart a,ypart b) fi;
+ z1=one[a,z0]; z2=two[b,z0];
+ a ..controls z1 and z2.. b
+ enddef;
+
+vardef reversecurve@#(expr a,one,b,two)=reverse curve@#(a,one,b,two) enddef;
+
+
+vardef beak(expr injoin,intip,outtip,indent,outjoin,tense)=
+ save x,y,t,toward,onright,ref; pair toward; boolean onright; path ref;
+ onright=(xpart intip>xpart injoin);
+ toward=if onright: right else: left fi;
+ z1=intip if onright:-else:+ fi (inbeak,0);
+ z2=outtip if onright:-else:+ fi (outbeak,0);
+ ref=outjoin{toward}...(z1 if onright:+else:- fi (2*abs(outjoin-injoin),0));
+ y4=.5[ypart outjoin,ypart indent];
+ z3=ref intersectionpoint ((0,y4)--(w,y4));
+ (t3,t4)=ref intersectiontimes ((0,y4)--(w,y4));
+
+ injoin{toward}..tension tense..z1--intip--outtip--z2...indent{-toward}...
+ {-(direction t3 of ref)}z3--subpath(t3,0) of ref
+ enddef;
+
+
+
+
+boolean its_a_leftserif;
+
+vardef full_serif_points@#
+(expr A,B,Bl,Br,leftlength,rightlength,midbracket_pull)=
+%%%% min_limit(join_radius)(.5serif_thickness); % -sl 14.04.91
+ (z1-B)=whatever*(A@#-B@#);
+ (z1l-Bl)=whatever*(A@#-B@#);
+ (z1r-Br)=whatever*(A@#-B@#);
+
+ y2=y2l=y2r=ypart A;
+ y1=y1l=y1r=y3=y4=ypart A if ypart A>ypart B:-else:+fi serif_thickness;
+
+ x5=x2=.5[x1l,x1r];
+ y5=entasis[y2l,y1l];
+
+ if its_a_leftserif:x3=x2l=x1l-round(leftlength+serif_constant_amt);
+ else:x4=x2r=x1r+round(rightlength+serif_constant_amt); fi
+enddef;
+
+vardef leftserif@#(expr A,B,Bl,Br,alength,midbracket_pull)=
+ its_a_leftserif:=true;
+ save x,y,p; path p[];
+ min_limit(join_radius)(.5serif_thickness); % -sl 14.04.91
+ full_serif_points@#(A,B,Bl,Br,alength,0,midbracket_pull);
+ p0:=Bl{z1l-Bl}...{z3-z1l}z3;
+ if midbracket_pull<>0:
+ z3'l=z1l; pos3'(alength+5pt,.5[angle(B-A),if ypart A>ypart B:-fi 180]);
+ z8'=p0 intersectionpoint (z3'l--z3'r);
+ z8=(midbracket_pull-eps)[z8',z1l];fi
+ if ypart A>ypart B:reverse fi
+ ((if midbracket_pull=0:p0 else:Bl{z1l-Bl}...z8...{z3-z1l}z3 fi
+ if softpath:)softjoin(z3--z2l)softjoin(else:--fi z2l..z5{right}))
+enddef;
+
+vardef rightserif@#(expr A,B,Bl,Br,alength,midbracket_pull)=
+ its_a_leftserif:=false;
+ save x,y,p; path p[];
+ min_limit(join_radius)(.5serif_thickness); % -sl 14.04.91
+ full_serif_points@#(A,B,Bl,Br,0,alength,midbracket_pull);
+ p4:=z4{z1r-z4}...{Br-z1r}Br;
+ if midbracket_pull<>0:
+ z4'l=z1r; pos4'(alength+5pt,.5[angle(B-A),0]);
+ z9'=p4 intersectionpoint (z4'l--z4'r);
+ z9=(midbracket_pull-eps)[z9',z1r];fi
+ if ypart A>ypart B:reverse fi
+ ((z5{right}..z2r if softpath:)softjoin(z2r--z4)softjoin(else:--fi
+ if midbracket_pull=0:p4 else:z4{z1r-z4}...z9...{Br-z1r}Br fi))
+enddef;
+
+vardef fullserif@#(expr A,B,Bl,Br,leftlength,rightlength,midbracket_pull)=
+ save x,y,p; path p[];
+ p1=rightserif(A,B,Bl,Br,rightlength,midbracket_pull);
+ p2=leftserif(A,B,Bl,Br,leftlength,midbracket_pull);
+ if ypart A>ypart B:(p1--p2)else:(p2--p1)fi
+enddef;
+
+
+vardef straightarm@#(expr join,tip,heel,thickness,pull)=
+ save x,y,toward,p; pair toward; path p;
+ toward=if (str@#="br")or(str@#="tr"):right else:left fi;
+ z1=tip if (str@#="br")or(str@#="tr"):- else:+ fi (thickness,0);
+ z2=point .5 of (join{toward}...{tip-heel}z1);
+ z1-z3=whatever*(tip-heel); y3=ypart join;
+ p=z1{z3-z1}...{join-z3}join;
+ z4=pull[z3,point .5 of p];
+ if (str@#="br")or(str@#="tl"):reverse fi
+ (join{toward}...z4...{tip-heel}z1--tip--heel)
+ enddef;
+
+
+vardef constant_angle(expr top_pt,bot_pt,stem)suffix $=
+ save theta;
+ theta=if str$="lr":-else:+fi (angle(length(top_pt-bot_pt) +-+ stem,stem));
+ angle(top_pt-bot_pt)+theta-90
+enddef;
+
+
+vardef pos@#(expr b,d) =
+ (x@#r-x@#l,y@#r-y@#l)=(b,0)rotated d;x@#=.5(x@#l+x@#r);y@#=.5(y@#l+y@#r)enddef;
+
+vardef mpos(text t)(expr b,d)=forsuffixes $=t:pos$(b,d); endfor enddef;
+
+
+def draw_outlines= pickup pencircle scaled linethickness;
+ for n=1 upto 3:if known p[n]:draw p[n];fi
+ if known p[n]':draw p[n]';fi
+ if known p[n]'':draw p[n]'';fi endfor
+ if numeric mode: % -sl 21.03.1991
+ if mode=proof: drawgrid; fi
+ fi % -sl 21.03.1991
+ enddef;
+
+def drawgrid=
+ pickup pencircle scaled 1;
+ for y:=h,xheight,0,-descender: draw (0,y)--(w,y); endfor
+ for y:=unit step unit until (cap+.5unit): draw (0,y)--(w,y); endfor
+ for y:=unit step -unit until (-d-.5unit): draw (0,y)--(w,y); endfor
+ for x:=0 step unit until (w+.5unit): draw (x,-d)--(x,h); endfor
+enddef;
+
+
+vardef onaline(suffix a,b)(text t)=forsuffixes $=t:z$=whatever[z.a,z.b]; endfor
+ enddef;
+
+
+def showpoints(text t)=
+ if numeric mode: % -sl 21.03.1991
+ if mode=proof:pickup pencircle scaled 3;
+ forsuffixes $:=t:forsuffixes s:=l,,r:if known z$.s:draw z$s;fi endfor endfor
+ pickup pencircle scaled 1; penlabels(t); fi
+ fi % -sl 21.03.1991
+enddef;
+
+
+vardef inlimit(text amt)(expr lowerlimit,upperlimit)=save this;
+ this:=max(amt,lowerlimit); this:=min(this,upperlimit);this
+enddef;
+
+
+let semi_ = ;; let colon_ = :; let endchar_ = endchar;
+def iff expr b = if b:let next_=use_it else:let next_=lose_it fi; next_ enddef;
+def use_it = let : = restore_colon; enddef;
+def restore_colon = let : = colon_; enddef;
+def lose_it = let endchar=fi; let ;=restore_endchar semi_ if false enddef;
+def restore_endchar=let ;=semi_; let endchar=endchar_; enddef;
+def always_iff expr b = use_it enddef;
+boolean wanted[];
+
+ % for x:="I":
+ % wanted[byte x]:=true; endfor
+ % this allows specifying only those characters which are to be shown
+ % the chars can be specified inside of quotes("c") or as a number(23)
+def OK expr x=known wanted[byte x] enddef;
+ % let iff=always_iff; % allows testing of all chars in the file
+
+
+def min_limit(text this)(expr limit)=if this>limit:save this;this=limit;fi
+enddef;
+
+
+% def define_adj_whole_pixels(text t)=
+% forsuffixes $:=t: $:=hround(max(eps,$.#-linethickness#)*hppp); endfor enddef;
+
+def define_min_adj_whole_pixels(text t)=
+ forsuffixes $:=t: $:=max(lowres_min,hround(max(eps,$.#-linethickness#)*hppp));
+ endfor enddef;
+
+def bool(text t)=boolean t; t enddef;
+
+def vpix(text t)(text tt)= t:=tt; t:=vround(tt.#*hppp); enddef; % whole v pix
+def wpix(text tt)(text t)=
+ forsuffixes $:=t: $:=hround(tt.#*hppp); endfor enddef; % whole pixels
+def adjpix(text tt)(text t)= % adjusted pixels
+ forsuffixes $:=t: $:=hround(max(eps,tt.#*hppp-linethickness)); endfor enddef;
+
+def minadjpix(text ttt)(text tt)(text t)= % adjusted pixels with a minimum
+ forsuffixes $:=t: $:=max(ttt,hround(tt.#*hppp-linethickness));
+ endfor enddef;
+
+
+def highres_lowres(text t)(expr a,b)=t:=if lowres:b else:a fi enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/ams/xbbold.mf b/Master/texmf-dist/fonts/source/public/ams/xbbold.mf
new file mode 100644
index 00000000000..c399b9d53d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/xbbold.mf
@@ -0,0 +1,191 @@
+%% @metafontfile{
+%% filename="xbbold.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support, Electronic Products and Services,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "65084 191 579 7949"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the driver file for use with
+%% the Blackboard Bold characters in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Changes of minimal parameters in outlined characters for version 2.1
+% done by Stefan Lindner, 18-April-1991
+
+input xbbase;
+%%mode_setup; %called by amsyb.mf; two calls confuse Metafont. NGB 15-OCT-1991
+
+%%%%designsize:= font_size; % was 10pt#;
+width#:= designsize; % was 10pt#;
+unit#:= width#/18;
+u#:= width#/54;
+smallu#:= width#/162;
+ascender#:= 37/3*unit#;
+cap#:= 37/3*unit#;
+number#:= 36/3*unit#;
+xheight#:= 25/3*unit#;
+descender#:= 12/4*unit#;
+define_whole_vertical_pixels
+ (width,unit,u,smallu,ascender,cap,number,xheight,descender);
+wpix(1.90u) (linethickness);
+wpix(0.65u) (Sover_bot);
+wpix(1.00u) (Aapex,Napex,Vapex,Wapex,Cover,Gover,Oover,Sover_top,Uover);
+wpix(9.00u) (Uthin_bracket);
+wpix(8.00u) (Kthin_diag_bracket,Xthin_diag_bracket,Ythin_diag_bracket);
+wpix(7.00u) (k_thin_diag);
+wpix(6.00u) (c_thin_stem_bracket);
+wpix(5.00u) (c_thick_stem_bracket,c_inner_bracket,lc_thick_stem_bracket);
+wpix(4.00u) (c_round_bracket);
+adjpix(1.35u) (serif_thickness);
+adjpix(1.30u) (Emid_tip,inbeak);
+adjpix(1.50u) (Atip,Btopthin,Bmidthin,Ebot_tip,Ltip,Mapex,
+ Ntip,Ttip,Vtip,Wtip,Ztip,outbeak);
+adjpix(1.65u) (Bbotthin,Gbotthin,Stopthin);
+adjpix(1.75u) (Dtopthin,Ebotarm,Lthin,Tthin);
+adjpix(1.80u) (Abar,Ctopthin,Dbotthin,Gtopthin,Jbotthin,Pmidarm,Sbotthin);
+adjpix(1.90u) (Emidarm,Etoparm,Othin,Pthin,Rthin,Ydiag,Zthin);
+adjpix(2.00u) (kthin,Mthin_diag,Wleftthin);
+adjpix(2.10u) (Ctip);
+adjpix(2.25u) (Athin,Kthin,Mthin_vert,Nthin,Uthin,Vthin,Wrightthin,Xthin);
+adjpix(2.50u) (Hbar);
+adjpix(2.60u) (Cbotthin);
+
+
+%%%% Begin of changes for version 2.1
+if pixels_per_inch*designsize < 1500:
+ if pixels_per_inch*designsize < 1000:
+ if pixels_per_inch*designsize < 800:
+ if pixels_per_inch*designsize < 700:
+ minadjpix(0)(8.80u) (stem);
+ minadjpix(0)(6.80u) (kdiag);
+ minadjpix(0)(7.40u) (kstem);
+ minadjpix(0)(7.80u) (Jbulb,Mdiag);
+ minadjpix(0)(8.20u) (Kdiag);
+ minadjpix(0)(8.30u) (Gstem,Mstem);
+ minadjpix(0)(8.60u) (Lstem,Ustem,Ythick_diag);
+ minadjpix(0)(8.50u) (Bstem,Estem,Fstem,Ndiag,Rdiag,Xdiag,Zdiag);
+ minadjpix(0)(8.90u) (Btopcurve);
+ minadjpix(1)(9.30u) (Bbotcurve,Pcurve,Rcurve);
+ minadjpix(1)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve);
+ else:
+ minadjpix(1)(8.80u) (stem);
+ minadjpix(1)(6.80u) (kdiag);
+ minadjpix(1)(7.40u) (kstem);
+ minadjpix(1)(7.80u) (Jbulb,Mdiag);
+ minadjpix(1)(8.20u) (Kdiag);
+ minadjpix(1)(8.30u) (Gstem,Mstem);
+ minadjpix(1)(8.60u) (Lstem,Ustem,Ythick_diag);
+ minadjpix(1)(8.50u) (Bstem,Estem,Fstem,Ndiag,Rdiag,Xdiag,Zdiag);
+ minadjpix(1)(8.90u) (Btopcurve);
+ minadjpix(2)(9.30u) (Bbotcurve,Pcurve,Rcurve);
+ minadjpix(2)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve);
+ fi
+ else:
+ adjpix(3.0u) (Mapex);
+ minadjpix(1)(8.80u) (stem);
+ minadjpix(2)(6.80u) (kdiag);
+ minadjpix(2)(7.40u) (kstem);
+ minadjpix(2)(7.80u) (Jbulb);
+ minadjpix(1)(6.00u) (Mdiag);
+ minadjpix(2)(8.20u) (Kdiag);
+ minadjpix(2)(8.30u) (Gstem)
+ minadjpix(2)(8.30u) (Mstem);
+ minadjpix(2)(8.60u) (Lstem,Ustem,Ythick_diag);
+ minadjpix(2)(8.50u) (Bstem,Ndiag,Rdiag,Xdiag,Zdiag);
+ minadjpix(1)(8.50u) (Estem, Fstem);
+ minadjpix(2)(8.90u) (Btopcurve);
+ minadjpix(3)(9.30u) (Bbotcurve,Pcurve,Rcurve);
+ minadjpix(3)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve);
+ fi
+ else:
+ adjpix(3.0u) (Mapex);
+ minadjpix(2)(8.80u) (stem);
+ minadjpix(3)(6.80u) (kdiag);
+ minadjpix(3)(7.40u) (kstem);
+ minadjpix(3)(7.80u) (Jbulb);
+ minadjpix(1)(5.00u) (Mdiag);
+ minadjpix(3)(8.20u) (Kdiag);
+ minadjpix(3)(8.30u) (Gstem);
+ minadjpix(2)(8.30u) (Mstem);
+ minadjpix(3)(8.60u) (Lstem,Ustem,Ythick_diag);
+ minadjpix(3)(8.50u) (Estem,Fstem,Ndiag,Rdiag,Xdiag,Zdiag);
+ minadjpix(2)(8.50u) (Bstem);
+ minadjpix(3)(8.90u) (Btopcurve);
+ minadjpix(3)(9.30u) (Bbotcurve,Pcurve,Rcurve);
+ minadjpix(3)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve)
+ fi
+else:
+ minadjpix(4)(8.80u) (stem);
+ minadjpix(4)(6.80u) (kdiag);
+ minadjpix(4)(7.40u) (kstem);
+ minadjpix(4)(7.80u) (Jbulb,Mdiag);
+ minadjpix(4)(8.20u) (Kdiag);
+ minadjpix(4)(8.30u) (Gstem,Mstem);
+ minadjpix(4)(8.60u) (Lstem,Ustem,Ythick_diag);
+ minadjpix(4)(8.50u) (Bstem,Estem,Fstem,Ndiag,Rdiag,Xdiag,Zdiag);
+ minadjpix(4)(8.90u) (Btopcurve);
+ minadjpix(5)(9.30u) (Bbotcurve,Pcurve,Rcurve);
+ minadjpix(5)(9.50u) (Ccurve,Dcurve,Gcurve,Ocurve)
+fi;
+%%%% end of changes for version 2.1
+
+boolean lowres; lowres:=width<50;
+highres_lowres(pullin) (.85)(1); % Emidarm
+highres_lowres(pulleven) (1)(1.3); % Etoparm,Tarms,Zarms
+highres_lowres(pullout) (1.1)(1); % Ebotarm,Lbotarm
+highres_lowres(bracket0) (.0)(0); % Ntopleft
+highres_lowres(bracket3) (.3)(0); % Nthinstems
+highres_lowres(bracket01) (.0)(.1); % Uthin
+highres_lowres(bracket32) (.3)(.2); % Vstems
+highres_lowres(bracket4) (.4)(0); % P-all,R-all,I-all,F-all
+highres_lowres(bracket42) (.4)(.2); % Xdiag
+
+bool(ctrls):=false;
+entasis:=inlimit(0)(0,1);
+serif_constant_amt:=0pt;
+join_radius:=1;
+bool(softpath):=true;
+
+c_thick_stem_bracket:=min(.5cap-eps,c_thick_stem_bracket);
+rulepen:=pensquare scaled 1;
+extra_beginchar:=extra_beginchar&"save t,p,ref; path p[],p[]',p[]'',ref[];";
+extra_beginchar:=extra_beginchar&"pickup pencircle scaled linethickness;";
+
+for x:="R":
+ wanted[byte x]:=true; endfor % test these characters
+ let iff=always_iff; % tests all chars in the file
+
+font_normal_space .3width#; % TeX fontdimen 2 normal word space
+font_normal_stretch .15width#; % TeX fontdimen 3 interword stretch
+font_normal_shrink .1width#; % TeX fontdimen 4 interword shrink
+font_x_height xheight#; % Tex fontdinem 5 for accents
+font_quad width#; % TeX fontdimen 6 quad width
+font_extra_space .1width#; % TeX fontdimen 7 extra space(period)
+
+
+input xbcaps
+bye % changed from "end" 26 Aug 93; bnb
diff --git a/Master/texmf-dist/fonts/source/public/ams/xbcaps.mf b/Master/texmf-dist/fonts/source/public/ams/xbcaps.mf
new file mode 100644
index 00000000000..5fa05ca5220
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ams/xbcaps.mf
@@ -0,0 +1,833 @@
+%% @metafontfile{
+%% filename="xbcaps.mf",
+%% version="2.2",
+%% date="04-JAN-1995",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) American Mathematical Society,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="American Mathematical Society",
+%% address="American Mathematical Society,
+%% Technical Support Department,
+%% P. O. Box 6248,
+%% Providence, RI 02940,
+%% USA",
+%% telephone="401-455-4080 or (in the USA) 800-321-4AMS",
+%% email="Internet: Tech-Support@Math.AMS.org",
+%% codetable="ISO/ASCII",
+%% checksum = "54815 833 1446 27412"
+%% keywords="amsfonts, tex, metafont , AMSSymbols ",
+%% abstract="This is the driver file for use with
+%% the Blackboard Bold characters in AMSFonts 2.2."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% Changes made by Stefan Lindner for version 2.1 to fix some
+% rounding problems at low resolutions 03-Mar-1991
+% ru defined and substituted for u in drawings of characters.
+
+def ru(expr A)=
+ begingroup
+ save rounded_u; rounded_u#:=A*u#;
+ define_whole_vertical_pixels(rounded_u);
+ rounded_u
+ endgroup
+enddef;
+
+iff OK "A": "The letter A"; beginchar("A",13unit#,cap#,0);
+
+ top z20=(.48w,h+Aapex); pos20(Atip,0);
+ bot y3=0; z3l=whatever[z20l,(1.5unit,0)];
+ bot y6=0; z6r=whatever[z20r,(w-round(unit+u),0)];
+ z20l=z1l; z20r=z4r;
+ mpos(1,3)(Athin,constant_angle(z20l,(1.5unit,0),0));
+ mpos(4,6)(stem,constant_angle(z20r,(w-round(unit+u),0),0));
+ onaline(1l,3l)(2l); y2l=c_round_bracket;
+ onaline(1r,3r)(2r); y2r=c_inner_bracket;
+ onaline(4l,6l)(5l); y5l=c_inner_bracket;
+ onaline(4r,6r)(5r); y5r=c_thick_stem_bracket;
+ z40=whatever[.8[z1l,z1r],z2r]; z40=whatever[.8[z4r,z4l],z5l];
+ y41=round(.4[serif_thickness,y40]-Abar); % bar bottom
+ y42=y41+Abar;
+ ref1=rightserif(z3,z1,z2l,z40,ru(7),bracket0)--z40;
+ ref2=z40--leftserif(z6,z4,z40,z5r,ru(7),bracket32);
+ ref3=(0,y41)--(w,y41);
+ ref4=(0,y42)--(w,y42);
+ x11=xpart (ref1 intersectionpoint ref3);
+ x12=xpart (ref2 intersectionpoint ref3);
+ x13=xpart (ref2 intersectionpoint ref4);
+ x14=xpart (ref1 intersectionpoint ref4);
+ y11=y12=y41; y13=y14=y42;
+
+ p1=z20l--leftserif(z3,z1,z2l,z1r,ru(3),bracket0)--ref1--ref2--
+ rightserif(z6,z4,z5l,z5r,ru(2.5),bracket0)--z20r--cycle;
+ p2=z11--z12--z13--z14--cycle;
+
+ showpoints(1,2,3,4,5,6,11,12,13,14,20,40,41,42);
+ draw_outlines;
+ endchar;
+
+
+iff OK "B": "The letter B"; beginchar("B",12unit#,cap#,0);
+
+ top lft z1l=(round(ru(5)+2smallu),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z2r=(x1r,h-c_round_bracket);
+ z3l=(x1l,c_thick_stem_bracket);
+ z3r=(x1r,c_round_bracket);
+ bot z4l=(x1l,0);
+ mpos(1,4)(Bstem,0);
+ z5l=(rt x1r+ru(4),y1);
+ z5r=(rt x1r+ru(3),y1-Btopthin);
+ onaline(1r,4r)(8l);
+ bot y8l=.5h-smallu; pos8(Bmidthin,90);
+ rt z6l=(w-round(1.5unit),.5[y5l,y8l]); pos6(Btopcurve,180);
+ rt z9l=(w-round(ru(2.5)),.5[y10l,y8r]); pos9(Bbotcurve,180);
+ z10l=(rt x1r+ru(4),y4);
+ z10r=(rt x1r+ru(3),y4+Bbotthin);
+ z7l=(rt x1r+ru(3),y8l);
+ rt z7=(lft x9r-ru(3),.5[top y8l,y8r]);
+
+ p1=leftserif(z1,z4,z2l,z2r,ru(5.2),bracket4)--
+ leftserif(z4,z1,z3l,z3r,ru(5.2),bracket4)--
+ curve.br(z10l,.5,z9l,.7)--curve.tr(z9l,.7,z7,.5)--
+ curve.br(z7,.5,z6l,.5)--curve.tr(z6l,.8,z5l,.6)--cycle;
+ p1'=z8l--z8r;
+ p1''=curve.br(z8r,.6,z6r,.85)--curve.tr(z6r,.7,z5r,.5)...
+ {left}z5r...{down}z2r--cycle;
+ p2''=z8l--z3r{down}...{right}z10r--
+ curve.br(z10r,.6,z9r,.7)--curve.tr(z9r,.8,z7l,.6)--cycle;
+
+ showpoints(1,2,3,4,5,6,7,8,9,10);
+ draw_outlines;
+ endchar;
+
+
+iff OK "C": "The letter C"; beginchar("C",(1+12)*unit#,cap#,0);
+
+ bot z2l=(max(7unit,.5w),-Cover);
+ y2r=y2l+Cbotthin;
+ x2r=x2l+(min(Cbotthin,abs(y2r-y2l)));
+ bot rt z1l=(w-ru(2),2unit);
+ ref1=z2l{right}...z1l;
+ pos1(Ctip,angle(z1l-precontrol 1 of ref1)+ 90);
+ lft z3l=(round ru(2),.5h); pos3(Ccurve,0);
+ top z4l=(x2l,h+Cover);
+ y4r=y4l-Ctopthin;
+ x4r=x4l+(min(ru(.5),abs(y4r-y4l)));
+ bot rt z5=(w-round(unit+ru(.5)),h-3unit-ru(2.5));
+ z6=(x5,y4l);
+ z7=z6-(ru(2.5),ru(2.5));
+ p1=curve.tl(z4l,.5,z3l,.7)--curve.bl(z3l,.7,z2l,.5)...z1l--
+ z1r...reversecurve.bl(z3r,.7,z2r,.6)--reversecurve.tl(z4r,.6,z3r,.6)--
+ beak(z4r,z5,z6,z7,z4l,1.2)--cycle;
+
+ showpoints(1,2,3,4,5,6,7);
+ draw_outlines;
+ endchar;
+
+
+iff OK "D": "The letter D"; beginchar("D",13unit#,cap#,0);
+
+ top lft z1l=(round(ru(5)+smallu),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z2r=(x1r,h-c_round_bracket);
+ z3l=(x1l,c_thick_stem_bracket);
+ z3r=(x1r,c_round_bracket);
+ bot z4l=(x1l,0);
+ mpos(1,4)(stem,0);
+ z5l=(rt x1r+ru(4),y4);
+ z5r=(rt x1r+ru(3),y5l+Dbotthin);
+ rt z6l=(w-u-2smallu,.52h); pos6(Dcurve,180);
+ z7l=(rt x1r+ru(4),y1);
+ z7r=(rt x1r+ru(3.5),y7l-Dtopthin);
+
+ p1=leftserif(z1,z4,z2l,z2r,ru(4.5),bracket4)--
+ leftserif(z4,z1,z3l,z3r,ru(4.5),bracket4)--
+ curve.br(z5l,.5,z6l,.7)--curve.tr(z6l,.7,z7l,.5)--cycle;
+ p1''=curve.br(z5r,.5,z6r,.8)--curve.tr(z6r,.7,z7r,.5)...
+ {down}z2r...z3r{down}...{right}z5r--cycle;
+
+ showpoints(1,2,3,4,5,6,7);
+ draw_outlines;
+ endchar;
+
+
+iff OK "E": "The letter E"; beginchar("E",(1+11)*unit#,cap#,0);
+
+ top lft z1l=(round(ru(5.5)),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z2r=(x1r,h-c_inner_bracket);
+ z3l=(x1l,c_thick_stem_bracket);
+ z3r=(x1r,c_inner_bracket);
+ bot z4l=(x1l,0);
+ mpos(1,4)(Estem,0);
+ bot rt z11=(w-unit,0);
+ top rt z12=(w-.5unit,3unit+ru(2));
+ z13=(.5w+.5unit,y4+Ebotarm);
+ z14=(min(x13,rt x4r+.5unit),y13);
+ rt z21=(w-ru(4),y1);
+ bot z22=(x21,top y1-3.5unit);
+ z23=(ru(19),y1-Etoparm);
+ z24=(rt x1r+.5unit,y23);
+ onaline(1r,4r)(31,35);
+ bot y31=.5h-smallu;
+ y35=y31+Emidarm;
+ rt z33=(w-(3.8unit),.5[y31,y35]);
+ x32=x34=x33;
+ bot y32=bot y31-2.5unit;
+ top y34=bot y32+6unit;
+
+ p1=leftserif(z4,z1,z3l,z3r,ru(4.75),.4)--
+ straightarm.br(z13,z12,z11,Ebot_tip,pullout)--z14{left}...{up}z3r--
+ z2r{up}...{right}z24--straightarm.tr(z23,z22,z21,Emid_tip,pulleven)--
+ leftserif(z1,z4,z2l,z2r,ru(4.75),.4)--cycle;
+ p1'=straightarm.br(z31,z32,z33,Emid_tip,pullin)--
+ straightarm.tr(z35,z34,z33,Emid_tip,pullin);
+
+ showpoints(1,2,3,4,11,12,13,14,21,22,23,24,31,32,33,34,35);
+ draw_outlines;
+ endchar;
+
+
+iff OK "F": "The letter F"; beginchar("F",(1+10)*unit#,cap#,0);
+
+ top lft z1l=(round(ru(5.5)),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z2r=(x1r,h-c_inner_bracket);
+ z3l=(x1l,c_thick_stem_bracket);
+ z3r=(x1r,c_inner_bracket);
+ bot z4l=(x1l,0);
+ mpos(1,4)(Fstem,0);
+ rt z21=(w-.5unit,y1);
+ bot z22=(x21,top y1-3.5unit);
+ z23=(ru(19),y1-Etoparm);
+ z24=(rt x1r+.5unit,y23);
+ onaline(1r,4r)(31,35);
+ bot y31=.5h-smallu;
+ y35=y31+Emidarm;
+ rt z33=(w-3unit,.5[y31,y35]);
+ x32=x34=x33;
+ bot y32=bot y31-2.5unit;
+ top y34=bot y32+6unit;
+
+ p1=fullserif(z4,z1,z3l,z3r,ru(4.75),ru(6),bracket4)--z2r{up}...{right}z24--
+ straightarm.tr(z23,z22,z21,Emid_tip,pulleven)--
+ leftserif(z1,z4,z2l,z2r,ru(4.75),bracket4)--cycle;
+ p1'=straightarm.br(z31,z32,z33,Emid_tip,pullin)--
+ straightarm.tr(z35,z34,z33,Emid_tip,pullin);
+
+ showpoints(1,2,3,4,21,22,23,24,31,32,33,34,35);
+ draw_outlines;
+ endchar;
+
+
+iff OK "G": "The letter G"; beginchar("G",(1+13)*unit#,cap#,0);
+
+ bot z2l=(max(7unit,.5w),-Gover);
+ y2r=y2l+Gbotthin;
+ x2r=x2l+(min(Gbotthin,abs(y2r-y2l)));
+ lft z3l=(round ru(2),.5h); pos3(Gcurve,0);
+ top z4l=(x2l,h+Gover);
+ y4r=y4l-Gtopthin;
+ x4r=x4l+(min(.5u,abs(y4r-y4l)));
+ bot rt z5=(w-round(2unit+.5u),h-3unit-ru(2.5));
+ z6=(x5,y4l);
+ z7=z6-(ru(2.5),ru(2.5));
+ top rt z11r=(rt x5+.5u,5unit+.5u);
+ bot z13r=(x11r,unit-2smallu);
+ mpos(11,13)(Gstem,0);
+ onaline(11r,13r)(12r); y12r=max(y11r-c_thick_stem_bracket,y13r);
+ onaline(11l,13l)(12l); y12l=max(y11l-c_thick_stem_bracket,y13r+unit);
+
+ p1=curve.tl(z4l,.5,z3l,.7)--curve.bl(z3l,.7,z2l,.5)--z2l{right}...z13r--
+ fullserif(z11,z13,z12l,z12r,ru(5.5),ru(4.5),bracket0)...{down}z13l...{left}z2r--
+ reversecurve.bl(z3r,.7,z2r,.6)--reversecurve.tl(z4r,.6,z3r,.6)--
+ beak(z4r,z5,z6,z7,z4l,1.2)--cycle;
+
+ showpoints(2,3,4,5,6,7,11,12,13);
+ draw_outlines;
+ endchar;
+
+
+iff OK "H": "The letter H"; beginchar("H",(1+13)*unit#,cap#,0);
+
+ numeric H_inner_serif_amt;
+ top lft z1l=(round(3.75unit/2),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z3l=(x1l,c_thick_stem_bracket);
+ bot z4l=(x1l,0);
+ top rt z11r=(w-round(3.75unit/2),h);
+ z12r=(x11r,h-c_thick_stem_bracket);
+ z13r=(x11r,c_thick_stem_bracket);
+ bot z14r=(x11r,0);
+ mpos(1,2,3,4,11,12,13,14)(stem,0);
+ onaline(1r,4r)(5l,5r); bot y5l=bot y15l=.5cap-u;
+ onaline(11l,14l)(15l,15r); y5r=y15r=y5l+Hbar;
+ H_inner_serif_amt=ru(4.75);
+ if (x1r+H_inner_serif_amt+.5linethickness)>.5w: % keeps inner serifs
+ H_inner_serif_amt:=.5w-x1r-.5linethickness-1; % from merging
+ fi
+
+ p1=fullserif(z1,z4,z2l,z2r,ru(4.75),H_inner_serif_amt,bracket4)--
+ fullserif(z4,z1,z3l,z3r,ru(4.75),H_inner_serif_amt,bracket4)--cycle;
+ p2=fullserif(z11,z14,z12l,z12r,H_inner_serif_amt,ru(4.75),bracket4)--
+ fullserif(z14,z11,z13l,z13r,H_inner_serif_amt,ru(4.75),bracket4)--cycle;
+ p1'=z5r--z15r--z15l--z5l;
+
+ showpoints(1,2,3,4,5,11,12,13,14,15);
+ draw_outlines;
+ endchar;
+
+
+iff OK "I": "The letter I"; beginchar("I",(1+6)*unit#,cap#,0);
+
+ top lft z1l=(round((w-stem-linethickness)/2),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z3l=(x1l,c_thick_stem_bracket);
+ bot z4l=(x1l,0);
+ mpos(1,2,3,4)(stem,0);
+
+ p1=fullserif(z1,z4,z2l,z2r,ru(5),ru(5),bracket4)--
+ fullserif(z4,z1,z3l,z3r,ru(5),ru(5),bracket4)--cycle;
+
+ showpoints(1,2,3,4);
+ draw_outlines;
+ endchar;
+
+
+iff OK "J": "The letter J"; beginchar("J",(2+7)*unit#,cap#,descender#);
+
+ top rt z1r=(round(w-2unit),h);
+ z2r=(x1r,h-c_thick_stem_bracket);
+ z3r=(x1r,2unit);
+ z3l=(x1l,u);
+ mpos(1,2)(stem,0);
+ bot z10r=(w/3,-.45d);
+ z10l=z10r+(-smallu,Jbotthin);
+ lft z12l=(smallu,ru(2)); pos12(Jbulb,0);
+ top z13=(x12,2unit-smallu);
+ ref1=z12r...z12l...cycle;
+ z14= point 1.75 of ref1; z15=direction 1.75 of ref1;
+ z11=(x12r-.5unit,.5[y10l,y14]);
+
+ p1=fullserif(z1,z2,z2l,z2r,ru(5.5),ru(4.75),bracket4)--z3l{down}...z10l{left}...
+ z11{up}...z14{z15}...z12r{up}...z13{left}...z12l{down}... % bulb
+ curve.br(z10r,.65,z3r,.65)--cycle;
+
+ showpoints(1,2,3,10,11,12,13,14,15);
+ draw_outlines;
+ endchar;
+
+
+iff OK "K": "The letter K"; beginchar("K",(1+13)*unit#,cap#,0);
+
+ numeric K_inner_serif_amt;
+ top lft z11l=(2unit,h);
+ z12l=(x11l,h-c_thick_stem_bracket);
+ z13l=(x11l,c_thick_stem_bracket);
+ bot z14l=(x11l,0);
+ mpos(11,12,13,14)(stem,0);
+ onaline(11r,14r)(3r,4);
+ bot y3r=.4cap;
+ top rt z1r=(w-2unit,cap);
+ mpos(1,3)(Kthin,angle(z1r-z3r)-90);
+ y2l=y2r=cap-Kthin_diag_bracket;
+ onaline(1l,3l)(2l,4);
+ onaline(1r,3r)(2r,21l);
+ onaline(1,3)(0); top y0=cap;
+ bot y21l=y3r+.5unit;
+ bot rt z23r=(w-ru(2),0);
+ mpos(21,23)(Kdiag,angle(z1r-z3r));
+ y22l=y22r=c_thick_stem_bracket;
+ onaline(21l,23l)(22l);
+ onaline(21r,23r)(22r);
+ onaline(21,23)(20); bot y20=0;
+
+ K_inner_serif_amt=ru(4.75);
+ if (x11r+K_inner_serif_amt+.5linethickness)>.5w:
+ K_inner_serif_amt:=.5w-x11r-.5linethickness-1;
+ fi
+
+ p1=fullserif(z11,z14,z12l,z12r,ru(4.75),K_inner_serif_amt,bracket4)--
+ fullserif(z14,z11,z13l,z13r,ru(4.75),K_inner_serif_amt,bracket4)--cycle;
+ p2=z3r--fullserif(z0,z3,z2l,z2r,ru(9),ru(3.5),bracket01)--z4--cycle;
+ p3=z21l--fullserif(z20,z21,z22l,z22r,ru(4),.5unit,bracket32)--z21r--cycle;
+
+ showpoints(0,1,2,3,4,11,12,13,14,20,21,22,23);
+ draw_outlines;
+ endchar;
+
+
+iff OK "L": "The letter L"; beginchar("L",(1+11)*unit#,cap#,0);
+
+ top lft z1l=(round(ru(5.5)),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z3l=(x1l,c_thick_stem_bracket);
+ z3r=(x1r,c_inner_bracket);
+ bot z4l=(x1l,0);
+ mpos(1,2,4)(Lstem,0);
+ bot rt z11=(w-unit,0);
+ top rt z12=(w-.5unit,4unit);
+ z13=(.5w+.5unit,y4+Lthin);
+ z14=(min(x13,rt x4r+.5unit),y13);
+
+ p1=fullserif(z1,z4,z2l,z2r,ru(4.75),ru(4.5),bracket4)--
+ leftserif(z4,z1,z3l,z3r,ru(4.75),bracket4)--
+ straightarm.br(z13,z12,z11,Ltip,pullout)--z14{left}...{up}z3r--cycle;
+
+ showpoints(1,2,3,4,11,12,13,14);
+ draw_outlines;
+ endchar;
+
+
+iff OK "M": "The letter M"; beginchar("M",(1+16)*unit#,cap#,0);
+
+ lft x4l=ru(5.6); bot y4=0;
+ rt x14r=w-2unit; bot y14=0;
+ top z1l=(x4l,h);
+ top z11r=(x14r,h);
+ mpos(1,3,4)(Mthin_vert,0);
+ mpos(11,12,13,14)(Mstem,0);
+ onaline(1,4)(3); y12l=h-c_thick_stem_bracket;
+ onaline(11,14)(12,13); y3l=y13l=c_thick_stem_bracket;
+ bot z22=(x1r+.5(x11l-x1r-Mapex),0); pos22(Mapex,0);
+ top z24=(x11l-u,h);
+ top z26=(rt x1r+Mdiag,h);
+ top z25=(.5[x24,x26],3unit+ru(2)); pos25(u,0);
+ bot y23=h-ru(4);
+ (z23-z22r)=whatever*(z24-z25r);
+ bot y21=h-ru(5);
+ (z21-z22l)=whatever*(z26-z25l);
+ onaline(26,25l)(30r,31r); onaline(21,22l)(30l,31l);
+ y30=y30l=y30r=h-.5linethickness; x30=.5[x30l,x30r];
+ y31=y31l=y31r=0; x31=.5[x31l,x31r];
+ ref1=leftserif(z30,z31,z21,z25r,ru(5.5),bracket0)--z22l;
+ z2l=ref1 intersectionpoint ((x3l,0)--(x3l,h));
+ z2r=ref1 intersectionpoint ((x3r,0)--(x3r,h));
+
+ p1=fullserif(z4,z3,z3l,z3r,ru(4.7),ru(5),bracket0)--z2r--z2l--cycle;
+ p2=z22r--z23--(x11l,y24)--z24--z25r--z25l--z26--ref1--cycle;
+ p3=fullserif(z14,z13,z13l,z13r,ru(4.7),ru(5),bracket0)--
+ rightserif(z11,z12,z12l,z12r,ru(4.7),bracket0)--(x11l,y24)--cycle;
+
+ showpoints(1,2,3,4,11,12,13,14,21,22,23,24,25,26,30,31);
+ draw_outlines;
+ endchar;
+
+
+iff OK "N": "The letter N"; beginchar("N",13unit#,cap#,0);
+
+ bot lft z1l=(round 2unit,0); mpos(1,2,11,12)(Nthin,0);
+ z2=(x1,c_thin_stem_bracket);
+ z3=(x1l,h-ru(4));
+ top rt z11r=(round (w-ru(5.3)),h);
+ z12=(x11,h-c_thin_stem_bracket);
+ bot z22=(x11r,-Napex);
+ z23l=z22-(Ntip,0); mpos(4,23)(Ndiag,angle(z3-z23l)-90);
+% onaline(1r,2r)(4l); bot z4l=whatever[z3,z23l];
+ onaline(1r,2r)(4l); z4l=whatever[z3,z23l];
+ onaline(11l,12l)(14); onaline(4r,23r)(13,14);
+ top y21=h; z21=whatever[z14,1.05[z4l,z4r]];
+ onaline(4,23)(20); y20=y21;
+ onaline(11r,12r)(13);
+
+ p1=leftserif(z20,z4,z4l,z4r,ru(2.5),bracket0)--z23l--z22--z13--z21--cycle;
+ p1'=z3--fullserif(z1,z2,z2l,z2r,ru(4.7),ru(5),bracket3)--z4l;
+ p2'=z13--fullserif(z11,z12,z12l,z12r,ru(5),ru(4.2),bracket3)--z14;
+
+ showpoints(1,2,3,4,11,12,13,14,20,21,22,23);
+ draw_outlines;
+ endchar;
+
+
+iff OK "O": "The letter O"; beginchar("O",(1+13)*unit#,cap#,descender#);
+
+ top z1l=(.5w,h+Oover); pos1(Othin,-90);
+ lft z2l=(round(ru(1.8)),.5h); pos2(Ocurve,0);
+ bot z3l=(.5w,-Oover); pos3(Othin,90);
+ rt z4l=(round(w-ru(1.8)),.5h); pos4(Ocurve,180);
+
+ p1=curve.tl(z1l,.5,z2l,.7)--curve.bl(z2l,.7,z3l,.5)--
+ curve.br(z3l,.5,z4l,.7)--curve.tr(z4l,.7,z1l,.5)--cycle;
+ p1''=curve.tl(z1r,.6,z2r,.7)--curve.bl(z2r,.7,z3r,.6)--
+ curve.br(z3r,.6,z4r,.7)--curve.tr(z4r,.7,z1r,.6)--cycle;
+
+ showpoints(1,2,3,4);
+ draw_outlines;
+ endchar;
+
+
+iff OK "P": "The letter P"; beginchar("P",(1+10)*unit#,cap#,0);
+
+ top lft z1l=(round(ru(5)+smallu),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z2r=(x1r,h-c_round_bracket);
+ z3l=(x1l,c_thick_stem_bracket);
+ z3r=(x1r,c_inner_bracket);
+ bot z4l=(x1l,0);
+ mpos(1,4)(stem,0);
+ z5l=(rt x1r+ru(4),y1);
+ z5r=(rt x1r+ru(3),y1-Pthin);
+ rt z6l=(w-2smallu,.5[y5l,y7l]); pos6(Pcurve,180);
+ onaline(1r,4r)(8l,8r); bot y8l=5.5unit; y8r=y8l+Pmidarm;
+ z7l=(rt x1r+ru(4),y8l-round(.2smallu));
+ z7r=(rt x1r+ru(3),y8l+Pthin);
+
+ p1=leftserif(z1,z4,z2l,z2r,ru(4.5),bracket4)--
+ fullserif(z4,z1,z3l,z3r,ru(4.5),ru(4.8),bracket4)--z8l{right}...
+ curve.br(z7l,.5,z6l,.7)--curve.tr(z6l,.7,z5l,.6)--cycle;
+ p1'=z8l--z8r;
+ p1''=z8r--curve.br(z7r,.6,z6r,.8)--curve.tr(z6r,.8,z5r,.7)...
+ {down}z2r--cycle;
+
+ showpoints(1,2,3,4,5,6,7,8);
+ draw_outlines;
+ endchar;
+
+
+iff OK "Q": "The letter Q"; beginchar("Q",(1+13)*unit#,cap#,descender#);
+
+ top z1l=(.5w,h+Oover); pos1(Othin,-90);
+ lft z2l=(round(ru(1.8)),.5h); pos2(Ocurve,0);
+ bot z3l=(.5w,-Oover); pos3(Othin,90);
+ rt z4l=(round(w-ru(1.8)),.5h); pos4(Ocurve,180);
+ ref1=curve.bl(z2l,.7,z3l,.5)--curve.br(z3l,.5,z4l,.7);
+ ref2=(.35w,-d)--(.35w,h);
+ ref3=(.35w+stem+2linethickness,-d)--(.35w+stem+2linethickness,h);
+ lft z11=ref1 intersectionpoint ref2;
+ bot rt z13r=(round(w-ru(2.5)),-d+4smallu);
+ bot z12=(.6[x11,x13r],-d-round(2smallu));
+ ref4=z12{right}...z13r;
+ pos13(serif_thickness,angle(z13r-precontrol 1 of ref4)-90);
+ z14=z13l-(ru(3.5),.5u);
+ rt z15=ref1 intersectionpoint ref3;
+
+ p1=curve.tl(z1l,.5,z2l,.7)--ref1--curve.tr(z4l,.7,z1l,.5)--cycle;
+ p1'=z11...z12{right}...z13r--z13l...z14{left}...z15;
+ p1''=curve.tl(z1r,.6,z2r,.7)--curve.bl(z2r,.7,z3r,.6)--
+ curve.br(z3r,.6,z4r,.7)--curve.tr(z4r,.7,z1r,.6)--cycle;
+
+ showpoints(1,2,3,4,11,12,13,14,15);
+ draw_outlines;
+ endchar;
+
+
+iff OK "R": "The letter R"; beginchar("R",(1+12)*unit#,cap#,0);
+
+ top lft z1l=(round(ru(5)+2smallu),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z2r=(x1r,h-c_round_bracket);
+ z3l=(x1l,c_thick_stem_bracket);
+ z3r=(x1r,c_inner_bracket);
+ bot z4l=(x1l,0);
+ mpos(1,4)(stem,0);
+ z5l=(rt x1r+ru(5),y1);
+ z5r=(rt x1r+ru(3),y1-Rthin);
+ rt z6r=(w-(ru(5.0)),.5[y5l,y8l]); pos6(Rcurve,0);
+ onaline(1r,4r)(8l,8r); bot y8l=5.6unit; y8r=y8l+Rthin;
+ ref1=curve.br(z8l,.5,z6r,.9);
+ ref2=(rt x4r+.5unit,0)--(rt x4r+.5unit,h);
+ ref3=(x4r+stem+2linethickness,0)--(x4r+stem+2linethickness,h);
+ lft z11l=ref1 intersectionpoint ref2;
+ rt z13l=(w-u,y4); pos13(serif_thickness,90);
+ lft z12l=(w-4unit,y13l);
+ z14=z13r-(ru(3),0);
+ top rt z15=ref1 intersectionpoint ref3;
+
+ p1=leftserif(z1,z4,z2l,z2r,ru(4.8),bracket4)--
+ fullserif(z4,z1,z3l,z3r,ru(4.8),ru(4.8),bracket4)--
+ curve.br(z8l,.6,z6r,.9)--curve.tr(z6r,.7,z5l,.5)--cycle;
+ p1'=z8l--z8r;
+ p2'=z11l--z12l--z13l--z13r{left}
+ if lowres:..tension 10.. else:... fi{z15-z14}z15;
+ p1''=z8r--curve.br(z8r,.8,z6l,.9)--curve.tr(z6l,.9,z5r,.5)...
+ {down}z2r--cycle;
+
+ showpoints(1,2,3,4,5,6,8,11,12,13,14,15);
+ draw_outlines;
+ endchar;
+
+
+iff OK "S": "The letter S"; beginchar("S",10unit#,cap#,0);
+
+ top z1r=(.5w-u,h+Sover_top); pos1(Stopthin,90);
+ rt z3=(w-ru(4),y1r);
+ x4=.3[x3,x1r]; y4=y3-ru(1.5);
+ bot z2=top z3-(0,4unit-smallu);
+ bot z11l=(.5w-u,-Sover_bot); pos11(Sbotthin,90);
+ lft z13=(ru(2),y11l);
+ x14=.3[x13,x11l]; y14=y13+ru(1.5);
+ top z12=bot z13+(0,4.5unit);
+ z21l=(ru(2.5),.73h);
+ y21r=.35[y21l,y1r]; rt x21r=.48[x21l,x1r];
+ z22=(.5w,.52h); pos22(stem,37);
+ z23r=(w-ru(2)-smallu,.28h);
+ y23l=.7[y11l,y23r]; lft x23l=.53[x11l,x23r];
+
+ p1=beak(z1l,z2,z3,z4,z1r,1.2)--curve.tl(z1r,.65,z21l,.65)...
+ z22l...
+ reversecurve.br(z11r,.7,z23l,.7)--
+ beak(z11r,z12,z13,z14,z11l,1.2)--
+ curve.br(z11l,.6,z23r,.6)...1.1[z22l,z22r]...
+ reversecurve.tl(z1l,.6,z21r,.6)--cycle;
+
+ showpoints(1,2,3,4,11,12,13,14,21,22,23);
+ draw_outlines;
+ endchar;
+
+
+iff OK "T": "The letter T"; beginchar("T",(1+11)*unit#,cap#,0);
+
+ mpos(1,2,3)(stem,0);
+ bot lft z1l=(round((w-stem-linethickness)/2),0);
+ z2l=(x1l,c_thick_stem_bracket);
+ top z4=(x1,h);
+ bot y5l=top y4-(3unit+ru(2)); onaline(1,4)(5);
+ mpos(4,5)(round(w-ru(3.5)-linethickness),0);
+ z3l=(x1l,y4-Tthin);
+
+ p1=straightarm.br(z3r,z5r,z4r,Ttip,pulleven)--
+ straightarm.bl(z3l,z5l,z4l,Ttip,pulleven)--cycle;
+ p1'=z3l--fullserif(z1,z4,z2l,z2r,ru(5.25),ru(5.25),bracket4)--z3r;
+
+ showpoints(1,2,3,4,5);
+ draw_outlines;
+ endchar;
+
+
+iff OK "U": "The letter U"; beginchar("U",13unit#,cap#,0);
+
+ top lft z1l=(round(ru(5)+smallu),h);
+ z2l=(x1l,h-c_thick_stem_bracket);
+ z3l=(x1l,4unit);
+ top rt z11r=(w-round(ru(5.5)),h);
+ z12r=(x11r,h-Uthin_bracket);
+ z13r=(x11r,4.5unit);
+ mpos(1,2,3)(Ustem,0);
+ mpos(11,12,13)(Uthin,0);
+ bot z10r=(.5w,-Uover);
+ z10l=z10r+(.5unit,Uthin);
+
+ p1=fullserif(z1,z2,z2l,z2r,ru(4.5),ru(5),bracket4)--
+ curve.bl(z3l,.65,z10r,.65)--curve.br(z10r,.65,z13r,.65)--
+ fullserif(z11,z12,z12l,z12r,ru(4.75),ru(4.75),bracket01)--z13l{down}--
+ reversecurve.br(z10l,.65,z13l,.65)--
+ reversecurve.bl(z3r,.7,z10l,.7)--cycle;
+
+ showpoints(1,2,3,10,11,12,13);
+ draw_outlines;
+ endchar;
+
+
+iff OK "V": "The letter V"; beginchar("V",13unit#,cap#,0);
+
+ bot z20=(.51w,-Vapex); pos20(Vtip,0);
+ top y3=h; z3r=whatever[z20r,(w-round(unit+2smallu),h)];
+ top y6=h; z6l=whatever[z20l,(unit,h)];
+ z20r=z1r; z20l=z4l;
+ mpos(1,3)(Vthin,constant_angle((w-round(unit+2smallu),h),z20r,0));
+ mpos(4,6)(stem,constant_angle((unit,h),z20l,0));
+ onaline(1r,3r)(2r); y2r=h-c_round_bracket;
+ onaline(1l,3l)(2l); y2l=h-c_inner_bracket;
+ onaline(4r,6r)(5r); y5r=h-c_inner_bracket;
+ onaline(4l,6l)(5l); y5l=h-c_thick_stem_bracket;
+ z40=whatever[.8[z1r,z1l],z2l]; z40=whatever[.8[z4l,z4r],z5r];
+
+ p1=z20l--z20r--rightserif(z3,z1,z2l,z2r,ru(3),bracket0)--
+ leftserif(z3,z1,z40,z2r,ru(7),bracket0)--z40--
+ rightserif(z6,z4,z5l,z40,ru(7),bracket32)--
+ leftserif(z6,z4,z5l,z5r,ru(2.5),bracket0)--z20l--cycle;
+
+ showpoints(1,2,3,4,5,6,20,40);
+ draw_outlines;
+ endchar;
+
+
+iff OK "W": "The letter W"; beginchar("W",(1+17)*unit#,cap#,0);
+
+ bot z20=(.3w,-Wapex); pos20(Wtip,0);
+ top y3=h; z3r=whatever[z20r,(.6w,h)];
+ top y6=h; z6l=whatever[z20l,(unit,h)];
+ z20r=z1r; z20l=z4l;
+ mpos(1,3)(Wleftthin,constant_angle((.6w,h),z20r,0));
+ mpos(4,6)(stem,constant_angle((unit,h),z20l,0));
+ onaline(1r,3r)(2r); y2r=h-c_round_bracket;
+ onaline(1l,3l)(2l); y2l=h-c_inner_bracket;
+ onaline(4r,6r)(5r); y5r=h-c_inner_bracket;
+ onaline(4l,6l)(5l); y5l=h-c_thick_stem_bracket;
+ z40=whatever[.8[z1r,z1l],z2l]; z40=whatever[.8[z4l,z4r],z5r];
+
+ bot z21=(.7w,-Wapex); pos21(Wtip,0);
+ top y13=h; z13r=whatever[z21r,(w-unit,h)];
+ top y16=h; z16l=whatever[z21l,(.44w,h)];
+ z21r=z11r; z21l=z14l;
+ mpos(11,13)(Wrightthin,constant_angle((w-unit,h),z21r,0));
+ mpos(14,16)(stem,constant_angle((.44w,h),z21l,0));
+ onaline(11r,13r)(12r); y12r=h-c_round_bracket;
+ onaline(11l,13l)(12l); y12l=h-c_inner_bracket;
+ onaline(14r,16r)(15r); y15r=h-c_inner_bracket;
+ onaline(14l,16l)(15l); y15l=h-c_thick_stem_bracket;
+ z41=whatever[.8[z11r,z11l],z12l]; z41=whatever[.8[z14l,z14r],z15r];
+
+ ref1=leftserif(z16,z14,z15l,z15r,ru(2.5),bracket0)--z21l;
+ z30=ref1 intersectionpoint (z20r--z3r);
+ z31=ref1 intersectionpoint (z40--z3l);
+
+ p1=z21l--z21r--rightserif(z13,z11,z12l,z12r,ru(2),bracket0)--
+ leftserif(z13,z11,z41,z12r,ru(7),bracket0)--z41--
+ rightserif(z16,z14,z15l,z41,ru(6),bracket32)--
+ ref1--cycle;
+ p2=z20l--z20r--z30--z31--z40--
+ rightserif(z6,z4,z5l,z40,ru(5),bracket32)--
+ leftserif(z6,z4,z5l,z5r,ru(2),bracket0)--z20l--cycle;
+
+ showpoints(1,2,3,4,5,6,11,12,13,14,15,16,20,21,30,31,40,41);
+ draw_outlines;
+ endchar;
+
+
+iff OK "X": "The letter X"; beginchar("X",13unit#,cap#,0);
+
+ numeric botjoin,topjoin,joinwidths;
+ botjoin=.42h; topjoin=.62h;
+
+ top z1=(.2w,h);
+ bot z3=(.8w,0);
+ z2r=.5[z1r,z3r];
+ mpos(1,3)(Xdiag,constant_angle(z1,z3,0));
+ pos2(.9Xdiag,constant_angle(z1,z3,0));
+ ref1=leftserif(z1,z3,z2l,z2r,ru(2.5),bracket4)...
+ leftserif(z3,z1,z2l,z2r,ru(7),bracket42);
+ ref2=rightserif(z3,z1,z2l,z2r,ru(2),bracket42)--
+ rightserif(z1,z3,z2l,z2r,ru(6),bracket4);
+ bot z4=ref1 intersectionpoint ((0,botjoin)--(w,botjoin));
+ top z9=ref2 intersectionpoint ((0,topjoin)--(w,topjoin));
+ bot z6=(.12w,0); top z7=(.8w,h);
+ mpos(4,6)(Xthin,constant_angle(z4,z6,0));
+ mpos(7,9)(Xthin,constant_angle(z7,z9,0));
+ onaline(4l,6l)(5l); y5l=y5r=Xthin_diag_bracket;
+ onaline(4r,6r)(5r);
+ onaline(7r,9r)(8r); y8r=y8l=h-Xthin_diag_bracket;
+ onaline(7l,9l)(8l);
+ ref3=fullserif(z6,z4,z5l,z5r,ru(2.5),ru(8),bracket01);
+ ref4=z5l--2[z5l,z4l];
+ ref5=fullserif(z7,z9,z8l,z8r,ru(7),ru(5),bracket01);
+ ref6=z8r--2[z8r,z9r];
+ z21=ref1 intersectionpoint (ref3--z4r);
+ z22=ref1 intersectionpoint ref4;
+ z23=ref2 intersectionpoint (ref5--z9l);
+ z24=ref2 intersectionpoint ref6;
+
+ p1=ref1--ref2--cycle;
+ p2=z22--ref3--z21--cycle;
+ p3=z24--ref5--z23--cycle;
+
+ showpoints(1,2,3,4,5,6,7,8,9,21,22,23,24);
+ draw_outlines;
+ endchar;
+
+
+iff OK "Y": "The letter Y"; beginchar("Y",13unit#,cap#,0);
+
+ bot lft z3l=(5unit,0);
+ z2l=z3l+(0,c_thick_stem_bracket);
+ mpos(2,3)(stem,0);
+ onaline(2l,3l)(1l); y1l=.39h;
+ onaline(2r,3r)(1r); y1r=.45h;
+ top lft z4l=(unit,h);
+ z6l=z1l;
+ mpos(4,6)(Ythick_diag, constant_angle(z4l,z6l,0));
+ onaline(4l,6l)(5l); y5l=y5r=h-c_thick_stem_bracket;
+ onaline(4r,6r)(5r);
+ onaline(4,6)(20); top y20=h;
+ top rt z7r=(w-unit,h);
+ z9r=z1r;
+
+ mpos(7,9)(Ydiag, constant_angle(z7r,z9r,0));
+ onaline(7l,9l)(8l); y8l=y8r=h-Ythin_diag_bracket;
+ onaline(7r,9r)(8r);
+ onaline(7,9)(21); top y21=h;
+
+ ref1=z5r--1.5[z5r,z6r];
+ ref2=z8l--1.5[z8l,z9l];
+ z22=ref1 intersectionpoint ref2;
+
+ p1=fullserif(z20,z6,z5l,z5r,ru(2),ru(4),bracket4)--z1l--
+ fullserif(z3,z2,z2l,z2r,ru(5),ru(5),bracket4)--z1r--
+ fullserif(z21,z9,z8l,z8r,ru(8),ru(2),bracket01)--z22--cycle;
+
+ showpoints(1,2,3,4,5,6,7,8,9,20,21,22);
+ draw_outlines;
+ endchar;
+
+
+iff OK "Z": "The letter Z"; beginchar("Z",(1+11)*unit#,cap#,0);
+
+ top lft z1=(ru(4)+smallu,h);
+ bot lft z2=(ru(3)+smallu,top y1-3.5unit);
+ z3=(.5w,y1-Zthin);
+ bot lft z5l=(.5unit,0);
+ rt z15r=(w-ru(3)-smallu,y1);
+ mpos(5,15)(Zdiag,constant_angle(z15r,z5l,Zdiag));
+ rt z11=(w-ru(3.2),y5l);
+ top rt z12=(w-ru(1.7),4unit+u);
+ z13=(.55w,y11+Zthin);
+ onaline(5l,15l)(4); y4=y3;
+ onaline(5r,15r)(14); y14=y13;
+
+ p1=straightarm.tl(z3,z2,z1,Ztip,pulleven)--z4--z5l--
+ straightarm.br(z13,z12,z11,Ztip,pulleven)--z14--z15r--cycle;
+
+ showpoints(1,2,3,4,5,11,12,13,14,15);
+ draw_outlines;
+ endchar;
+
+
+
+% ----- Phase 3 -----
+
+
+iff OK "k": "The letter k"; beginchar(oct"174",(1+9)*unit#,ascender#,0);
+
+ top lft z11l=(unit+.5u,h);
+ bot z14l=(x11l,0);
+ mpos(11,14)(kstem,0);
+ onaline(11r,14r)(3r,4,12r,13r);
+ bot y3r=.4xheight; y12l=h-lc_thick_stem_bracket; top y12r=h;
+ onaline(11l,14l)(12l,13l);
+ y13l=y13r=lc_thick_stem_bracket;
+ top rt z1r=(w-1.5unit,xheight);
+ mpos(1,3)(kthin,angle(z1r-z3r)-90);
+ y2l=y2r=xheight-k_thin_diag;
+ onaline(1l,3l)(2l,4);
+ onaline(1r,3r)(2r,21l);
+ onaline(1,3)(0); top y0=xheight;
+ y21l=y3r+.5unit;
+ bot rt z23r=(w-ru(2),0);
+ mpos(21,23)(kdiag,angle(z1r-z3r));
+ y22l=y22r=lc_thick_stem_bracket;
+ onaline(21l,23l)(22l);
+ onaline(21r,23r)(22r);
+ onaline(21,23)(20); bot y20=0;
+
+ p1=fullserif(z14,z11,z13l,z13r,ru(2.5),ru(2.5),bracket0)--z12r--
+ leftserif(z11,z14,z12l,z12r,ru(2.5),bracket0)--cycle;
+ p2=z3r--fullserif(z0,z3,z2l,z2r,ru(7),ru(2.5),bracket01)--z4--cycle;
+ p3=z21l--fullserif(z20,z21,z22l,z22r,ru(4),u,bracket32)--z21r--cycle;
+
+ showpoints(0,1,2,3,4,11,12,13,14,20,21,22,23);
+ draw_outlines;
+ endchar;
diff --git a/Master/texmf-dist/fonts/source/public/apl/cmapl10.mf b/Master/texmf-dist/fonts/source/public/apl/cmapl10.mf
new file mode 100644
index 00000000000..64b68cd3416
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/apl/cmapl10.mf
@@ -0,0 +1,3174 @@
+
+%====================================================================
+% This material is from C M T E X 1 0 . M F
+%====================================================================
+
+% Computer Modern TeX extended ASCII characters for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMAPL"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+%-------------------------------------------
+% (AH) the tilt ratio has been changed to 0.
+%-------------------------------------------
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+
+
+%===============================================================
+% This material is from T E X S E T . M F
+%===============================================================
+
+
+
+% Special version of Computer Modern for \TeX's extended ASCII character set
+
+font_coding_scheme:="TeX extended ASCII";
+
+mode_setup; font_setup; mono_charic#:=0;
+
+
+ cmchar "An empty space"; % This character
+ beginchar(" ",8u#,0,0); % was entirely
+ adjust_fit(0,0); % defined by
+ endchar; % O J K .
+
+
+
+% These characters were copied from greekl.mf and
+% with character positions changed and italic corrections added to the width.
+
+
+cmchar "Lowercase Greek alpha for extended ASCII";
+beginchar(oct"004",11u#,x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.5u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,-90); pos2(curve,-180); pos3(vair,-270);
+z4=(w-3.25u,9/16h); z5=(w-2.75u,.5[vair,y4]);
+numeric theta; theta=angle(z4-z5)-90;
+pos4(stem,theta); pos5(stem,theta);
+pos6(vair,90); pos7(hair,180);
+rt x0r=hround(w-u); x1=x3=.5w-u; lft x2r=hround(1.5u-.5curve);
+x6=w-u; x7+.5hair=hround(w+.5hair-eps);
+top y0=vround .8[bar_height,h]; bot y1r=bot y6l=-oo;
+y2=.5[y1,y3]; top y3r=h+oo; y7=1/4bar_height;
+filldraw stroke z0e{down}...pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ ...z4e---z5e...z6e{right}...{up}z7e; % diagonal, bowl, and hook
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+
+
+ % Rejected(OJK) at this stage %
+% cmchar "Lowercase Greek epsilon"; %=============================%
+% beginchar(oct"002",8u#,x_height#,0);
+% italcorr x_height#*slant+.5hair#-2u#;
+% adjust_fit(0,0); pickup fine.nib;
+% pos0(bar,90); pos1(bar,90); pos2(curve,180);
+% pos3(vair,270); pos4(hair,300); pos6(bar,90); pos7(bar,90);
+% x1=.5w+.5u; x0=x1+u; lft x2r=hround(1.5u-.5curve); x3=.5[x0,x1];
+% x4r=good.x(w-u); x5=w+.5u; x6=x0; z7=z2l;
+% top y0r=top y1r=h; y2=y5=y6=bar_height; bot y3r=-oo;
+% path p; p=z3r{right}...{up}z5;
+% numeric t; t=ypart(((x4r,y3r)--(x4r,y5))intersectiontimes p);
+% y4r=ypart point t of p;
+% filldraw circ_stroke z0e..pulled_arc.e(1,2) & pulled_arc.e(2,3)
+% ..z4e{direction t of p}; % arc
+% filldraw circ_stroke z6e--z7e; % bar
+% penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% This letter has been copied from ITALMS.MF as the
+% original iota from GREEKL.MF had only one hook (the
+% iota symbol in APL needs two)
+cmchar "iota";
+beginchar(oct"015",5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Lowercase Greek rho";
+beginchar(oct"014",8.25u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,180); pos2(stem,180); pos3(vair,90);
+pos4(curve,0); pos5(vair,-90); pos6(hair,-180);
+lft x2r=hround(1.5u-.5stem); x1=x2=x6; x3=x5=.5[x2,x4];
+rt x4r=hround(w-1.5u+.5curve);
+y1-.5stem=-d-o; y2=y4=y6=.5[y3,y5]; top y3r=h+oo; bot y5r=-oo;
+filldraw circ_stroke z1e..pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & pulled_arc.e(5,6); % stem and bowl
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase Greek omega";
+beginchar(oct"005",11u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height;
+y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90);
+pos3(vstem+dw,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vstem+dw,270); pos8(hair,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair);
+x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5w+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw circ_stroke z1e{2(x2-x1),y2-y1}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}...{up}z8e; % right arc
+v_bulb(8,9); % closing bulb
+penlabels(0,1,2,3,4,5,6,7,8,9);
+endchar;
+
+%=================================================================
+% (the end of Greek characters for APL)
+%=================================================================
+
+
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+
+
+%==================================================================
+% from R O M A N D . M F
+%==================================================================
+
+% Computer Modern Roman digits:
+% Character codes \0060 through \0071 are generated.
+
+% All digits have the same height, width, depth, and italic correction.
+
+cmchar "The numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+cmchar "The numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75h+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 4";
+beginchar("4",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab,h-light_stem]+1
+ else:.35(h-light_stem) fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=0;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(eps,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3h; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ % R O M A N D ends %
+
+%=======================================================================
+% from P U N C T . M F
+%=======================================================================
+
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Five-pointed star";
+beginchar("*",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup crisp.nib;
+numeric theta; theta=360/5; % degrees between points
+pos0(curve,0); pos1(rule_thickness,90); x0=x1=good.x .5w;
+top y1r=vround(math_axis+.4x_height+.5rule_thickness); %@ .5 by .4
+ypart(.5[z1,z0+(z1-z2) rotated 2theta])=math_axis;
+pos2(curve,theta); pos3(rule_thickness,90+theta);
+z2=z0; z3-z0=(z1-z0) rotated theta;
+z4=whatever[z0l,z1r]=whatever[z2r,z3r];
+filldraw for n=0 upto 4:
+ z0+(z1r-z0)rotated(n*theta)--z0+(z4-z0)rotated(n*theta)--endfor
+ cycle; % star
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Plus sign";
+beginarithchar("+"); pickup light_rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup light_rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Semicolon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup light_rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+ % P U N C T ends %
+
+
+%=======================================================================
+% from R O M A N P . M F
+%=======================================================================
+
+cmchar "Dollar sign";
+beginchar("$",9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ % R O M A N P ends %
+
+%=======================================================================
+% from T S E T
+%=======================================================================
+
+
+% Special characters for ``extended ASCII character set'' fonts
+
+
+dieresis=oct"007"; % (AH) this is the high double dot in APL
+high_minus=oct"025"; % (AH) this is the high minus symbol in APL
+elt=oct"006";
+down_arrow=oct"037";
+meet=oct"046";
+comment=oct"042"; % (OJK) This is the comment symbol in APL.
+up_arrow=oct"136";
+subset=oct"022";
+superset=oct"023";
+cap=oct"021";
+cup=oct"020";
+left_arrow=oct"137";
+right_arrow=oct"036";
+neq=oct"027";
+negation=oct"026";
+diamond=oct"011";
+leq=oct"012";
+geq=oct"013";
+join=oct"010";
+minus=oct"055";
+less=oct"074";
+greater=oct"076";
+backslash=oct"134";
+underbar=oct"024";
+left_brace=oct"173";
+vertical=oct"174";
+right_brace=oct"175";
+
+
+%=====================================================================
+% from S Y M
+%=====================================================================
+
+
+iff known minus: cmchar "Minus sign";
+beginarithchar(minus); pickup light_rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+% iff known high_minus: cmchar "High minus sign";
+% beginchar(high_minus,12u#,asc_height#,0);
+% pickup light_rule.nib; % light rule, since high_minus is like a superscript
+% lft x1=.5*w; x2=w; y1=y2=h+o;
+% draw z1--z2; % bar
+% labels(1,2); endchar;
+
+
+ %==============================================%
+ % Inserted(OJK), with changes, from ACCENT.MF %
+ %==============================================%
+
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(high_minus,9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+
+
+cmchar "Umlaut (double dot) accent";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(dieresis,9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+
+ %==================%
+ % S Y M continues %
+ %==================%
+
+
+iff known cup: cmchar "Set union sign";
+beginchar(cup,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y1=good.y h+o; bot y3=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+labels(1,2,3,4,5); endchar;
+
+iff known cap: cmchar "Set intersection sign";
+beginchar(cap,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y3=good.y h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+labels(1,2,3,4,5); endchar;
+
+
+ %========================
+ % Symbol designed by OJK:
+ %========================
+ % (using "cap")
+% cmchar "Comment sign";
+% beginchar(comment,12u#,.8asc_height#,0);
+% italcorr .8asc_height#*slant-.5u#;
+% adjust_fit(0,0); pickup light_rule.nib; autorounded;
+% lft x1=hround u; x2=x0; x4=w-x4; x6=x9=w-x1;
+% y4=good.y h+o; bot y0=-o; y2=y6=2/3[y1,y4]; y9=y0;
+% circle_points; draw_circle; % circle
+% draw z0---z2...z4...z6---z9; % stems and cap
+% labels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Comment sign";
+beginchar(comment,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y3=good.y h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+x0=.5w; y3-y0=x4-x0;
+z6-z0 =(z3-z0) rotated 60;
+z7-z0 =(z6-z0) rotated 60;
+z8-z0 =(z7-z0) rotated 60;
+z9-z0 =(z8-z0) rotated 60;
+z10-z0=(z9-z0) rotated 60;
+draw z3...z6...z7...z8...z9...z10...cycle; % circle
+labels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known meet: cmchar "Lattice infimum (logical and) sign";
+beginchar(meet,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup light_rule.nib;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+y3=good.y h+o; bot y1=-o; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+
+iff known join: cmchar "Lattice supremum (logical or) sign";
+beginchar(join,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup light_rule.nib;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+y1=good.y h+o; bot y3=-o; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+
+iff known down_arrow: cmchar "Downward arrow";
+beginchar(down_arrow,9u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup light_rule.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known up_arrow: cmchar "Upward arrow";
+beginchar(up_arrow,9u#,asc_height#,asc_depth#);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup light_rule.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=3u+eps;
+y3=y4=y0-.24asc_height-eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known left_arrow: cmchar "Leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(left_arrow,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup light_rule.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known right_arrow: cmchar "Rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(right_arrow,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup light_rule.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+
+iff known subset: cmchar "Proper subset sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(subset,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+labels(1,2,3,4,5); endchar;
+
+iff known superset: cmchar "Proper superset sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(superset,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+labels(1,2,3,4,5); endchar;
+
+
+iff known less: cmchar "Less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(less,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup light_rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+iff known greater: cmchar "Greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(greater,14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup light_rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+iff known underbar: cmchar "Underbar suitable for < and >";
+compute_spread((5/8+.45)*x_height#,(3/4+.55)*x_height#);
+beginchar(underbar,14u#,0,spread#-math_axis#+.5rule_thickness#);
+adjust_fit(0,0); pickup light_rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; bot y1=bot y2=-d;
+draw z1--z2; % bar
+labels(1,2); endchar;
+ %=======================%
+ % Rejected (?): %
+ %=======================%
+% cmchar "Overbar";
+% compute_spread((5/8+.45)*x_height#,(3/4+.55)*x_height#);
+% beginchar(oct"142",14u#,body_height#,0);
+% adjust_fit(0,0); pickup rule.nib;
+% lft x1=hround 1.5u-eps; x2=w-x1; top y1=top y2=h+o;
+% draw z1--z2; % bar
+% labels(1,2); endchar;
+
+iff known neq: cmchar "Unequals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(neq,14u#,v_center(4spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup light_rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; draw z3--z4; % bars
+lft x6=hround 3.5u-eps; x5=w-x6; top y5=h+o; bot y6=-d-o;
+draw z5--z6; % diagonal
+labels(1,2,3,4,5,6); endchar;
+
+iff known leq: cmchar "Less than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(leq,14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup light_rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+iff known geq: cmchar "Greater than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(geq,14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup light_rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+iff known backslash: cmchar "Reverse slash (backslash)";
+beginchar(backslash,9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup light_rule.nib;
+lft x1=hround u-eps; top y1=h+eps;
+rt x2=hround(w-u)+eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+labels(1,2); endchar;
+
+iff known vertical: cmchar "Vertical line";
+beginchar(vertical,5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup light_rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+% % modified from cdot (AH)
+% iff known dieresis: cmchar "High double dot in APL";
+% beginchar(dieresis,7u#,asc_height#);
+% adjust_fit(0,0); pickup fine.nib;
+% numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+% define_whole_blacker_pixels(dot_diam);
+% pos1(dot_diam,0); pos2(dot_diam,90);
+% pos3(dot_diam,0); pos4(dot_diam,90);
+% lft x1l=hround(.25w-.5dot_diam);y1=h;
+% lft x3l=hround(.75w-.5dot_diam);y3=h;
+% z1=z2; dot(1,2); % first dot
+% z3=z4; dot(3,4); % second dot
+% penlabels(1,2,3,4); endchar;
+
+
+% changed (AH) from the original diamond since the diamond
+% operator in APL is taller than a square rotated by 45 degrees
+iff known diamond: cmchar "Diamond operator";
+beginchar(diamond,9u#,v_center(7u#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup light_rule.nib;
+numeric a; a=(lft 3.5u)*sqrt(3.14159/2); % an attempt to match circle area
+x4=x8=good.x .5w; w:=r:=2x4; x2=w-x6=good.x(x4+a);
+y2=y6=.5[y4,y8]=math_axis; y8=good.y(y2+1.5a);
+draw z2--z4--z6--z8--cycle; % bowl
+labels(2,4,6,8); endchar;
+
+iff known left_brace: cmchar "Left curly brace";
+beginchar(left_brace,9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+iff known right_brace: cmchar "Right curly brace";
+beginchar(right_brace,9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+% cmchar "APL quote";
+% beginchar("'",9u#,asc_height#,0);
+% numeric top_width#,spread#; top_width#=if serifs: flare# else: stem# fi;
+% spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+% italcorr asc_height#*slant+.5top_width#+.5spread#-4u#;
+% adjust_fit(0,0);
+% x1=x2; x3=x4=w-x1; x3-x1=0; y1=y3;
+% y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height);
+% if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+% pos3(flare,0); pos4(vair,0);
+% y1+.5stem=h; filldraw circ_stroke z1e--z2e; % left stem and bulb
+% filldraw circ_stroke z3e--z4e; % right stem and bulb
+% else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+% top y1=h; filldraw stroke z1e--z2e; % left stem
+% pos3(stem,0); pos4(vair,0);
+% filldraw stroke z3e--z4e; fi % right stem
+% penlabels(1,2,3,4); endchar;
+
+
+ %================================================================%
+ % The next definition inserted(OJK), with changes, from PUNCT.MF %
+ %================================================================%
+
+
+% cmchar "Apostrophe";
+% beginchar("'",5u#,asc_height#,0);
+% italcorr asc_height#*slant+.5dot_size#-2u#;
+% adjust_fit(0,0);
+% x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+% if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+% else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+% penlabels(1); endchar;
+
+
+ %=================================%
+ % This trial is from QUOTE.MF(?): %
+ %=================================%
+
+
+%cmchar "Straight single quote";
+%beginchar("'",5u#,asc_height#,0);
+%italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+%adjust_fit(0,0);
+%x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+%if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+% y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+%else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+% top y1=h; filldraw stroke z1e--z2e; fi % stem
+%penlabels(1,2,3,4); endchar;
+
+
+
+%cmchar "Straight single quote";
+%beginchar("'",5u#,asc_height#,0);
+%adjust_fit(0,0); pickup light_rule.nib;
+%bot y1=vround(5/7*h); y2=y1; top y3=h+2o; y4=y3;
+%.5[x1,x2]=x5=good.x .5w; w:=r:=2x5;
+%lft x1=hround(.5w-1/28*h);
+%.5[x3,x4]=x6=good.x .5w; w:=r:=2x6;
+%lft x3=hround(.5w-1/7*h);
+%filldraw z1--z2--z4--z3--cycle;
+%penlabels(1,2,3,4); endchar;
+
+
+cmchar "Straight single quote";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+adjust_fit(0,0);
+x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup rule.nib; pos1(flare,0); pos2(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+else: pickup crisp.nib; pos1(stem,0); pos2(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; fi % stem
+penlabels(1,2,3,4); endchar;
+
+
+
+
+ % S Y M ends %
+
+
+% The following definitions are copied from S Y M B O L . M F
+
+cmchar "Times operator";
+beginarithchar("#"); pickup light_rule.nib;
+x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+labels(1,2,3,4); endchar;
+
+%cmchar "Division operator";
+%beginarithchar("%"); pickup light_rule.nib;
+%x3-.5dot_size=hround(.5w-.5dot_size); w:=r:=2x3;
+%y3+.5dot_size=vround(math_axis+math_spread[.3x_height,.4x_height]+.5dot_size);
+%lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
+%draw z1--z2; % bar
+%pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+%pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis;
+%dot(3,4); dot(5,6); % dots
+%penlabels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Division operator";
+beginarithchar("%"); pickup light_rule.nib;
+x3-.5dot_size=hround(.5w-.5dot_size); w:=r:=2x3;
+y3=vround(math_axis+1.5dot_size);
+lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6;
+x5=x3; .5[y3,y5]=math_axis+.1rule_thickness;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6); endchar;
+
+ %=========================================
+ % To be replaced by the next definition...
+
+% cmchar "Circle operator";
+% beginchar(oct"017",9u#,v_center(9u#));
+% adjust_fit(0,0); pickup light_rule.nib; autorounded;
+% lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+% circle_points; draw_circle; % circle
+% labels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "Circle operator";
+beginchar(oct"017",16u#,v_center(16u#)); %@ For test purposes!
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x1=hround u; x0=.5w; y1=y0=math_axis;
+z2-z0=(z1-z0) rotated 45;
+z3-z0=(z2-z0) rotated 45;
+z4-z0=(z3-z0) rotated 45;
+z5-z0=(z4-z0) rotated 45;
+z6-z0=(z5-z0) rotated 45;
+z7-z0=(z6-z0) rotated 45;
+z8-z0=(z7-z0) rotated 45;
+draw z1...z2...z3...z4...z5...z6...z7...z8...cycle; % Circle(OJK) which is
+labels(0,1,2,3,4,5,6,7,8); endchar; % round as it should.
+
+
+
+cmchar "Small circle";
+beginchar(oct"016",5u#,v_center(5u#));
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; top y8=h-.3x_height; y2=math_axis-.3x_height; %@ Addition here!
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+% cmchar "Circle stile operator";
+% beginchar(oct"175",8u#,v_center(8u#));
+% pickup light_rule.nib; autorounded;
+% lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+% circle_points; draw_circle; % circle
+% top y10=body_height#;
+% bot y9=-paren_depth#;
+% x9=x10=x4;
+% draw z9--z10; % stile
+% labels(1,2,3,4,5,6,7,8); endchar;
+
+% cmchar "Circle slope operator";
+% beginchar(oct"176",8u#,v_center(8u#));
+% pickup light_rule.nib; autorounded;
+% lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+% circle_points; draw_circle; % circle
+% top y10=body_height#;
+% bot y9=-paren_depth#;
+% x9=x10=x4;
+% draw z9--z10; % slope
+% labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known elt: cmchar "Element sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(elt,12u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=x6=w-x2;
+y1-y3=spread; y2=y6=.5[y1,y3]=math_axis;
+x4=x5=.5w+u; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+draw z2--z6; % middle bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Negation";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(negation,14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup light_rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+bot y1=bot y3=-d; top y2=top y4=h;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+labels(1,2,3,4); endchar;
+
+% sqrt48 was changed (AH) to 6.5 since the Delta symbol in APL has
+% a narrower base than the original triangle symbol
+cmchar "Delta";
+beginchar(oct"003",16u#,asc_height#,0);
+adjust_fit(0,0); pickup light_rule.nib;
+bot y1=0; y2=y1; top y3=h+2o;
+.5[x1,x2]=x3=good.x .5w; w:=r:=2x3; lft x1=hround(.5w-u*6.25);
+draw z1--z2--z3--cycle; % stroke
+labels(1,2,3); endchar;
+
+% sqrt48 was changed to 6.25 since the Del symbol in APL has
+% a narrower top than the original reversed triangle symbol
+% Moreover, Del must be lifted up to the same line as Delta,
+cmchar "Del";
+beginchar(oct"002",16u#,asc_height#,0);
+adjust_fit(0,0); pickup light_rule.nib;
+top y1=h+2o; y2=y1; bot y3=0;
+.5[x1,x2]=x3=good.x .5w; w:=r:=2x3; lft x1=hround(.5w-u*6.25);
+draw z1--z2--z3--cycle; % stroke
+labels(1,2,3); endchar;
+
+cmchar "Lattice top";
+beginchar(oct"030",14u#,asc_height#,0);
+adjust_fit(0,0); pickup light_rule.nib;
+x1=x2=good.x .5w; w:=r:=2x1; lft x3=hround u; x4=r-x3;
+bot y1=0; y2-y1=x4-x3;
+if top y2>h: y2:=bot h; fi
+y3=y4=y2;
+draw z1--z2; % stem
+draw z3--z4; % bar
+labels(1,2,3,4); endchar;
+
+cmchar "Perpendicular sign or lattice bottom";
+beginchar(oct"031",14u#,asc_height#,0);
+adjust_fit(0,0); pickup light_rule.nib;
+x1=x2=good.x .5w; w:=r:=2x1; lft x3=hround u; x4=r-x3;
+bot y1=0; y2-y1=x4-x3;
+if top y2>h: y2:=bot h; fi
+y3=y4=y1;
+draw z1--z2; % stem
+draw z3--z4; % bar
+labels(1,2,3,4); endchar;
+
+cmchar "Left turnstile";
+beginchar(oct"033",11u#,asc_height#,0);
+adjust_fit(0,0); pickup light_rule.nib;
+.5[y1,y2]=y3=y4; x1=x2=x3;
+lft x3=hround u; x4=w-x3; top y1=h; bot y2=0;
+draw z1--z2; % stem
+draw z3--z4; % bar
+labels(1,2,3,4); endchar;
+
+cmchar "Right turnstile";
+beginchar(oct"032",11u#,asc_height#,0);
+adjust_fit(0,0); pickup light_rule.nib;
+.5[y1,y2]=y3=y4; x1=x2=x4;
+lft x3=hround u; x4=w-x3; top y1=h; bot y2=0;
+draw z1--z2; % stem
+draw z3--z4; % bar
+labels(1,2,3,4); endchar;
+
+cmchar "Left floor bracket";
+beginchar(oct"034",8u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup light_rule.nib;
+x1=x2=good.x 3.5u; x3=x1+3.75u+eps;
+top y1=h; .5[y1,y2]=math_axis; y3=y2;
+draw z1--z2--z3; % stem and bar
+labels(1,2,3); endchar;
+
+cmchar "Left ceiling bracket";
+beginchar(oct"035",8u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup light_rule.nib;
+x1=x2=good.x 3.5u; x3=x1+3.75u+eps;
+top y1=h; .5[y1,y2]=math_axis; y3=y1;
+draw z3--z1--z2; % stem and bar
+labels(1,2,3); endchar;
+
+%================================================================
+
+% The quad symbol is created by using the definition of Del
+
+cmchar "Quad";
+beginchar(oct"001",16u#,body_height#,0); %@ body or asc
+adjust_fit(0,0); pickup light_rule.nib;
+bot y1=0; y2=y1; top y3=h+2o; y4=y3;
+.5[x1,x2]=x5=good.x .5w; w:=r:=2x5;
+% The quad box is slightly wider than Del
+lft x1=hround(.5w-u*7); %@ -u*7 or -5/14*h
+x3=x1; x4=x2;
+draw z1--z2--z4--z3--cycle; % box
+labels(1,2,3,4); endchar;
+
+%% The divide quad is built as a primary character
+% NOT AFTER ALL
+
+%cmchar "Divide quad";
+%beginchar(oct"001",16u#,body_height#,paren_depth#);
+%adjust_fit(0,0); pickup light_rule.nib;
+%bot y1=0; y2=y1; top y3=h+2o;top y4=h+2o;
+%.5[x1,x2]=x5=good.x .5w; w:=r:=2x5;
+% the quad box is slightly wider than Del
+%lft x1=hround(.5w-u*7);
+%x3=x1;x4=x2;
+%draw z1--z2--z4--z3--cycle; % box
+%pickup rule.nib;
+%x8-.5dot_size=hround(.5w-.5dot_size); w:=r:=2x8;
+%
+%y8=vround(.5y3+1.75dot_size); %@ 1 by 1.75
+%lft x6=x1; x7=x2; y6=y7=.5y3;
+%draw z6--z7; % bar
+%pos8(dot_size,0); pos9(dot_size,90); z8=z9;
+%pos10(dot_size,0); pos11(dot_size,90);z10=z11;
+%x10=x8; .5[y8,y10]=.5y3; %@ +rule_thickness#;
+%dot(8,9); dot(10,11); % dots
+%penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+
+% (AH)
+% Before loading in the definitions of the upper case Roman letters,
+% we have to load in the preamble for the slanted typewriter font
+% since that is the style of letters in APL.
+%
+
+
+%=====================================================================
+% This material comes from C M S L T T 1 0
+%=====================================================================
+
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/5; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+ %========================
+ mode_setup;font_setup;
+ %========================
+
+%====================================================================
+% input romanu; % upper case (majuscules)
+%====================================================================
+
+% Computer Modern Roman upper case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Character codes \0101 through \0132 are generated.
+
+cmchar "The letter A";
+beginchar("A",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter B";
+beginchar("B",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The letter C";
+if serifs: beginchar("C",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar("C",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The letter D";
+beginchar("D",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter E";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter F";
+beginchar("F",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter G";
+if serifs: beginchar("G",14u#,cap_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar("G",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter H";
+beginchar("H",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter I";
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "The letter J";
+beginchar("J",9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter K";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter L";
+beginchar("L",11u#-width_adj#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The letter M";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "The letter N";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+cmchar "The letter O";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The letter P";
+beginchar("P",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter Q";
+beginchar("Q",14u#-width_adj#,cap_height#,comma_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=cap_curve-hround stem_corr;
+penpos1(vair',90); penpos3(vair',-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"Q"| like |"O"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup tiny.nib;
+if hefty: penpos5(1.2(.5[cap_bar,light_curve]),0); penpos6(1.2light_curve,0);
+ x5=.5w; x6r=hround(w-1.5u);
+ y5=vround .28h; y6=-d;
+ fill diag_end(6r,5r,.25,1,5l,6l)--diag_end(5l,6l,.5,1,6r,5r)--cycle; % tail
+else: pos3'(vair,270); pos5(vair,180); pos6(vair,90);
+ pos7(cap_curve,85); penpos8(eps,180);
+ z3'=z3; x6=x3; top y6r=vround(.2h+.5vair);
+ lft x5r=hround(.5w-1.25u-.5vair); y5=.5[y3,y6];
+ bot y7l=-d; x7l=2/3[x6,x8]; y8=0; rt x8=hround(x4r+.1u);
+ filldraw stroke z3'e{left}...z5e{up}...z6e{right}
+ ..z7e{right}...z8e{up}; fi % tail
+math_fit(-.3cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter R";
+beginchar("R",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter S";
+beginchar("S",10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter T";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter U";
+beginchar("U",13u#+.5width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter V";
+beginchar("V",13u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+math_fit(.75u#-cap_height#*slant,ic#-4u#); penlabels(0,1,2,3,4); endchar;
+
+cmchar "The letter W";
+beginchar("W",18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)
+ --.5[z5l,z6l]--.5[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter X";
+beginchar("X",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lowers right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The letter Y";
+beginchar("Y",13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter Z";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ % R O M A N U ends %
+
+
+
+ %=============================================%
+ % The last characters are from R O M A N L %
+ %=============================================%
+
+
+
+% Computer Modern Roman lower case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Character codes \0141 through \0172 are generated.
+
+cmchar "The letter a";
+beginchar("a",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The letter b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter d";
+beginchar("d",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter f";
+beginchar("f",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+iff not variant_g: cmchar "The letter g";
+beginchar("g",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: cmchar "Variant letter g";
+beginchar("g",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The letter h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter i";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(dot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter j";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("j",5.5u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+cmchar "The letter l";
+beginchar("l",5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2); endchar;
+
+cmchar "The letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter p";
+beginchar("p",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter q";
+beginchar("q",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter s";
+beginchar("s",7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter t";
+beginchar("t",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter u";
+beginchar("u",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+cmchar "The letter v";
+beginchar("v",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "The letter w";
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.5[z5l,z6l]
+ --.5[z5r,z6r]--cycle;% middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter x";
+beginchar("x",if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The letter y";
+beginchar("y",if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter z";
+beginchar("z",8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ % R O M A N L ends %
+
+
+font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "k": if serifs: "v": "a" kern -u#, fi\\"w": "e" kern k#,
+ "a" kern k#, "o" kern k#, "c" kern k#;
+ ligtable "P": "A" kern kk#,
+ "y": "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, "," kern kk#;
+ ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#, "u" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ else: "o" kern k#, "e" kern k#, "u" kern k#,
+ "r" kern k#, "a" kern k#, "A" kern kk#, fi
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": "y" kern if serifs: k# else: kk# fi,
+ "Y": "e" kern kk#, "o" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ if serifs: ligtable "h": "m": "n":
+ "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#;
+ ligtable "c": "h" kern k#, "k" kern k#; fi
+ ligtable "o": "b": "p": "e" kern -k#, "o" kern -k#, "x" kern k#,
+ "d" kern -k#, "c" kern -k#, "q" kern -k#,
+ "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "t": "y" kern k#,
+ "u": "w" kern k#;
+ ligtable "A": if serifs: "R": fi\\ "t" kern k#,
+ "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#;
+ ligtable "g": "j" kern -k#; % logjam
+ ligtable "I": "I" kern -k#; % Richard III
+fi;
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/ar/ar10.mf b/Master/texmf-dist/fonts/source/public/ar/ar10.mf
new file mode 100644
index 00000000000..201a8fadd5e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ar/ar10.mf
@@ -0,0 +1,142 @@
+% Computer Modern Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AR"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+
+
+cmchar "The ligature AR";
+beginchar("A",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(6u#+cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y15=h-slab; z15=whatever[z11,z12];
+fill z15--(x1,y15)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x7; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y7; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut:
+ inner_jut=cap_jut;
+ else:
+ rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut;
+ fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+fi
+math_fit(0,.75ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/ar/ar12.mf b/Master/texmf-dist/fonts/source/public/ar/ar12.mf
new file mode 100644
index 00000000000..1a3e7e82fa3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ar/ar12.mf
@@ -0,0 +1,143 @@
+% Computer Modern Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AR"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=32/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=38/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+
+
+cmchar "The ligature AR";
+beginchar("A",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(6u#+cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y15=h-slab; z15=whatever[z11,z12];
+fill z15--(x1,y15)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x7; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y7; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut:
+ inner_jut=cap_jut;
+ else:
+ rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut;
+ fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+fi
+math_fit(0,.75ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ar/ar5.mf b/Master/texmf-dist/fonts/source/public/ar/ar5.mf
new file mode 100644
index 00000000000..6701004183c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ar/ar5.mf
@@ -0,0 +1,145 @@
+% Computer Modern Roman 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AR"; font_size 5pt#;
+
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=6/36pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=15.5/36pt#; % lowercase stem breadth
+curve#:=17.5/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=18.5/36pt#; % uppercase stem breadth
+cap_curve#:=20.5/36pt#; % uppercase curve breadth
+cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+
+mode_setup; font_setup;
+
+
+cmchar "The ligature AR";
+beginchar("A",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(6u#+cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y15=h-slab; z15=whatever[z11,z12];
+fill z15--(x1,y15)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x7; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y7; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut:
+ inner_jut=cap_jut;
+ else:
+ rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut;
+ fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+fi
+math_fit(0,.75ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ar/ar6.mf b/Master/texmf-dist/fonts/source/public/ar/ar6.mf
new file mode 100644
index 00000000000..d79cfe3de13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ar/ar6.mf
@@ -0,0 +1,144 @@
+% Computer Modern Roman 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AR"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=6.5/36pt#; % diameter of serif corners
+tiny#:=6.5/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=17.5/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21/36pt#; % uppercase stem breadth
+cap_curve#:=23.5/36pt#; % uppercase curve breadth
+cap_ess#:=18.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+
+
+cmchar "The ligature AR";
+beginchar("A",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(6u#+cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y15=h-slab; z15=whatever[z11,z12];
+fill z15--(x1,y15)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x7; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y7; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut:
+ inner_jut=cap_jut;
+ else:
+ rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut;
+ fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+fi
+math_fit(0,.75ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ar/ar7.mf b/Master/texmf-dist/fonts/source/public/ar/ar7.mf
new file mode 100644
index 00000000000..64f449adbbd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ar/ar7.mf
@@ -0,0 +1,145 @@
+% Computer Modern Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AR"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=19.5/36pt#; % lowercase stem breadth
+curve#:=22.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=26.5/36pt#; % uppercase curve breadth
+cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+
+
+cmchar "The ligature AR";
+beginchar("A",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(6u#+cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y15=h-slab; z15=whatever[z11,z12];
+fill z15--(x1,y15)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x7; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y7; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut:
+ inner_jut=cap_jut;
+ else:
+ rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut;
+ fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+fi
+math_fit(0,.75ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ar/ar8.mf b/Master/texmf-dist/fonts/source/public/ar/ar8.mf
new file mode 100644
index 00000000000..36a2fc8e3fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ar/ar8.mf
@@ -0,0 +1,143 @@
+% Computer Modern Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AR"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+
+
+cmchar "The ligature AR";
+beginchar("A",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(6u#+cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y15=h-slab; z15=whatever[z11,z12];
+fill z15--(x1,y15)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x7; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y7; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut:
+ inner_jut=cap_jut;
+ else:
+ rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut;
+ fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+fi
+math_fit(0,.75ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ar/ar9.mf b/Master/texmf-dist/fonts/source/public/ar/ar9.mf
new file mode 100644
index 00000000000..f060f004671
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ar/ar9.mf
@@ -0,0 +1,144 @@
+% Computer Modern Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AR"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+
+
+cmchar "The ligature AR";
+beginchar("A",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(6u#+cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y15=h-slab; z15=whatever[z11,z12];
+fill z15--(x1,y15)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x7; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y7; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut:
+ inner_jut=cap_jut;
+ else:
+ rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut;
+ fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+fi
+math_fit(0,.75ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/hcaption.mf b/Master/texmf-dist/fonts/source/public/arabtex/hcaption.mf
new file mode 100644
index 00000000000..4ddaccfd0bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/hcaption.mf
@@ -0,0 +1,199 @@
+%(c) 1990,91 by Joel M. Hoffman
+
+%hcaption. Modernized Fancy Classical Hebrew font. Version 0.9.
+%calls the file base.
+%last update: 5/15/91 by JMH
+% modified for use with ArabTeX: 5/25/96 Klaus Lagally
+% renamed "hcbase_pc" to "hcbase": 1999/04/10 KL
+
+%This calls the file ``hcbase_pc'' to create a slanted, elongated Hebrew font
+%for use in captions. See that file for more information.
+
+%Use of this material in a commercial venture of any sort requires
+%permission from me. Otherwise, you are free to use this for any
+%legal, non-destructive purpose. If you find this font useful, a
+%contribution to charity will be most appreciated.
+%
+%Send comments or complaints to:
+%
+%BITNET: hoffman@nyuacf.BITNET <-- this will change soon
+%CompuServe: 72700,402 -or- 72700.402@compuserve.com
+%SNAIL: Joel M. Hoffman
+% 19 Hillcrest Lane
+% Rye, NY 10580
+% U.S.A.
+
+if unknown mode:
+mode:=localfont; fi
+mode_setup;
+currenttransform:= currenttransform slanted 1/5;
+
+
+
+%I used large units, and then later scaled the font down to size. -JMH
+%u#:=1/100in#; %ten units to a square.
+u#:=1/384.16in#; %but account for magnification.(1/384.16)
+%u#:=1/295.16in#; %but account for magnification and hp vs. epson
+
+let_height#:=42u#; %height of a standard letter.
+asc_height#:=40u#; %ascender height (for lamed).
+desc_height#:=30u#; %descender height(depth?).
+
+let_width#:=31u#; %width of a standard letter. (31u#)
+
+serif_height#:=5u#; %height of a standard serif.(2.5u#)
+serif_width#:=2.5u#; %width of a standard serif. (2.5u#)
+chupchiklength#:=6u#;
+
+vowel_width#:=14u#; %width of vowels under the letters.
+vowel_height#:=12u#; %How tall the vowels are.
+vowel_depth#:=8u#; %the space between the baseline and the vowels.
+
+let_fit#:=3u#; %space to left and right of letter (.5u#)
+vowel_fit#:=1.4u#; %space to the left and right of vowel(1.4u#);
+
+thick#:=10u#; %thickness of thick lines. (7.5u#)
+thin#:=3u#; %thickness of thin lines. (2u#)
+hairline#:=.5u#; %VERY thin lines (.3u#)
+vowel_stroke#:=4u#; %pen to use
+dot#:=4u#; %diameter of dots (dagesh, vowels, etc)
+squaredot#:=10u#;
+
+overshoot#:=4u#; %overshoot for bet, taf.
+
+tightness:=.68; %tightness for right_curve; (.78)
+
+baseline_tilt:=45; %degrees for the tilt in baseline lines.
+
+head_tilt#:=.7u#; %tilt for the head on the zion, etc.
+
+sss:=.7; %Shrink the serif's width by this amount on a shin.
+ %(s)hrink (s)hin's (s)erif
+
+define_pixels(let_height,asc_height,desc_height,let_width,head_tilt);
+define_pixels(vowel_height,vowel_width,vowel_depth,vowel_height);
+define_pixels(squaredot);
+define_whole_pixels(let_fit,vowel_fit);
+define_pixels(serif_height,serif_width,chupchiklength);
+define_pixels(overshoot);
+define_whole_blacker_pixels(thick,thin,dot,hairline,vowel_stroke);
+
+def serifpen = pickup pencircle xscaled thin yscaled thick; enddef;
+%def serifpen = pickup pencircle xscaled hairline yscaled thick; enddef;
+def vowelpen = pickup pensquare scaled vowel_stroke; enddef;
+
+
+%this is from the METAFONT book:
+shrink_fit:=1+hround(2let_fit#*hppp)-2let_fit;
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l:=-hround(left_adjustment*hppp)-let_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2let_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-let_fit;
+ enddef;
+let af=normal_adjust_fit;
+def negate_af = af(-let_fit#,-let_fit#); enddef;
+def vowel_af = af(-let_fit#+vowel_fit#,-let_fit#+vowel_fit#); enddef;
+extra_endchar := extra_endchar&"r:=r+shrink_fit;w:=r-l;";
+
+
+
+
+def top_serif (suffix i,j) = %draw a serif at point z.i, using z.j
+ serifpen;
+ x.j = x.i-serif_width; y.j = y.i + serif_height;
+ draw (x.i+serif_width,y.i) ... z.i .. z.j;
+enddef;
+
+def bottom_serif (suffix i,j) = %draw an inverse serif at point z.i, with z.j
+ serifpen;
+ x.j = x.i+serif_width;y.j=y.i-serif_height;
+ draw (x.i-serif_width,y.i) ... z.i .. z.j;
+enddef;
+
+def roundoff_bottom (suffix i) = %round off point z.i, assuming thin lines.
+ fill fullcircle scaled thin shifted z.i;
+enddef;
+
+def right_curve(suffix i,j,k,l) = %call general_right_curve
+general_right_curve(tightness,tightness,thick,thick,thin,thin,i,j,k,l);
+enddef;
+
+def left_curve(suffix i,j,k,l) = %call general_left_curve
+general_left_curve(tightness,tightness,thick,thick,thin,thin,i,j,k,l);
+enddef;
+
+
+def general_right_curve (expr ta,tb,sa,sb,sc,sd) (suffix i,j,k,l) =
+ y.j=y.i;x.j=ta*(x.l-x.i)+x.i;
+ x.k=x.l;y.k=tb*(y.i-y.l)+y.l;
+ penpos i (sa,90);
+ penpos j (sb,90);
+ penpos k (sc,0);
+ penpos l (sd,0);
+ penstroke z.l.e{up} ... {up}z.k.e ... z.j.e{left} ...{left} z.i.e;
+enddef;
+
+def general_left_curve (expr ta,tb,sa,sb,sc,sd) (suffix i,j,k,l) =
+ y.j=y.i;x.j=ta*(x.l-x.i)+x.i;
+ x.k=x.l;y.k=tb*(y.i-y.l)+y.l;
+ penpos i (sa,-90);
+ penpos j (sb,-90);
+ penpos k (sc,0);
+ penpos l (sd,0);
+ penstroke z.i.e{right}...{right}z.j.e...z.k.e{up}...{up}z.l.e;
+enddef;
+
+
+
+def any_curve (expr adjust,thick,thin) (suffix i,j,k,l,m) =
+ %draw from i to m via k, using j and l, using specified values for
+ % withds.
+ z.j=(tightness/adjust)[z.i,z.k];
+ z.l=(tightness/adjust)[z.m,z.k];
+ penpos i (thick,angle(z.k-z.i)+90);
+ penpos j (thick,angle(z.k-z.i)+90);
+ penpos l (thin,angle(z.m-z.k)+90);
+ penpos m (thin,angle(z.m-z.k)+90);
+ penstroke z.i.e{z.k-z.i}
+ ... {z.k-z.i}z.j.e
+ ... z.l.e{z.m-z.k}
+ ... {z.m-z.k}z.m.e;
+enddef;
+
+def baseline (expr a,b) = %draw a baseline
+ pickup penrazor scaled thick rotated baseline_tilt;
+ draw a --- b;
+enddef;
+baselinewidth:= thick*sind(baseline_tilt);%but should be thick/sind....
+
+def thickpen = pickup pencircle scaled thick; enddef;
+def thinpen = pickup pencircle scaled thin; enddef;
+def hairlinepen = pickup pencircle scaled hairline; enddef;
+def baselinepen = pickup penrazor scaled thick rotated baseline_tilt; enddef;
+def dotpen = pickup pencircle scaled dot; enddef;
+def squarepen = pickup penrazor scaled squaredot rotated 45; enddef;
+
+def dotat (expr z) = %put at dot at z
+fill fullcircle scaled dot shifted z;
+enddef;
+
+def chupchik(suffix i,j)(expr ang) = %draw a chupchik from z at angle ang
+thinpen;
+z.i=z.j+dir(ang)*chupchiklength;
+draw z.i--z.j;
+enddef;
+
+def mycutoff(expr a,b) = %cutoff with culling
+cullit;
+cutoff(a,b);
+cullit;
+enddef;
+
+%input hcbase_pc; % KL 25.05.96
+input hcbase; % 1999/04/10 KL
+
+end; % KL 03.11.96
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/hcbase.mf b/Master/texmf-dist/fonts/source/public/arabtex/hcbase.mf
new file mode 100644
index 00000000000..1ff4cae6710
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/hcbase.mf
@@ -0,0 +1,1020 @@
+%(c) 1990,91 by Joel M. Hoffman
+
+%base for hclassic and hcaption. Version 0.9.
+%The files hclassic.mf and hcaption.mf call this file.
+%updated 5/15/91 by JMH
+
+%This is my first MF attempt, so a lot of this may seem silly. If so,
+%please let me know. Some letters still contain bugs: _ayin_, _shin_,
+%and perhaps a few others. Also, the _mem_ looks terrible. As of yet,
+%there are no numbers, and very litle punctuation --- only a period, comma,
+%exclamation mark and a hyphen.
+%
+%In addition to the 26 normal and final letters, I have included a
+%aleph-lamed ligature (seldom used), and a non-descending _ayin_ for use
+%with vowels. There is also a full-complement of vowels, and a general
+%purpose dot (for use in _shin_ vs. _sin_, among others). The files
+%dots.tex and vowels.tex contain macros for using the vowels.
+%
+%Use of this material in a commercial venture of any sort requires
+%permission from me. Otherwise, you are free to use this for any
+%legal, non-destructive purpose. If you find this font useful, a
+%contribution to charity will be most appreciated.
+%
+%Because of the bugs and the lack of punctuation, I have numbered this
+%version 0.9. If you fix the bugs or have time to add the necessary
+%punctuation, please let me know!
+%
+%Send comments or complaints to:
+%
+%BITNET: hoffman@nyuacf.BITNET <-- this will change soon
+%CompuServe: 72700,402 -or- 72700.402@compuserve.com
+% new : joel@wam.umd.edu (Joel M. Hoffman)
+
+%SNAIL: Joel M. Hoffman
+% 19 Hillcrest Lane
+% Rye, NY 10580
+% U.S.A.
+
+
+beginchar("-",.7let_width#,let_height#,0); "hyphen";
+
+af(0,0);
+baselinepen;
+top lft z1=(0,h);
+top rt z2 =(w,h);
+draw z1---z2;
+labels(1,2);
+showit;
+endchar;
+
+
+beginchar(",",2dot#,2dot#,dot#); "Comma";
+
+af(0,0)
+dotpen;
+top rt z1 = (w,h);
+bot lft z2 = (0,-d);
+draw z1 --- z2;
+labels(1,2);
+showit;
+endchar;
+
+
+beginchar(":",1.4squaredot#,let_height#,0); "Colon";
+
+af(0,0);
+squarepen;
+top rt z1 = (w/2,1.4squaredot);
+bot lft z2 = (w/2,0);
+draw z1---z2;
+top rt z3 = (w/2,h);
+bot lft z4 = (w/2,h-1.4squaredot);
+draw z3---z4;
+labels(1,2,3,4);
+showit;
+endchar;
+
+
+beginchar("!",1.4squaredot#,let_height#,0); "Exclamation mark";
+
+af(0,0);
+squarepen;
+top rt z1 = (w/2,1.4squaredot);
+bot lft z2 = (w/2,0);
+draw z1---z2;
+z3=(w/2,3/5h);
+z4=(w/2,h+1.4squaredot);
+draw z3---z4;
+labels(1,2,3,4);
+showit;
+endchar;
+
+
+beginchar(".",1.4squaredot#,1.4squaredot#,0); "Period";
+
+af(0,0);
+squarepen;
+top rt z1 = (w/2,h);
+bot lft z2 = (w/2,0);
+draw z1---z2;
+labels (1,2);
+showit;
+endchar;
+
+
+beginchar(142,let_width#,let_height#,0); "The letter Mem";
+
+af(0,0);
+x1=.7w;y1r=h;
+penpos1(thick,90);
+x2r=w;y2=h/2;
+penpos2(thin,0);
+z3=(.8w,baselinewidth/2);
+penpos3(baselinewidth,-90); %up to here is the right part
+x4=.7w;y4l=y1l;
+penpos4(thin,90);
+%penstroke z3e...{up}z2e{up}...z1e...z4e;
+thinpen;
+%z5=(.3w,.8(y1-thin));
+z5=(2serif_width,.9(y1-thin));
+lft z6=(0,0);
+penpos5(thin,135);penpos6(thin,180);
+penstroke z3e...{up}z2e{up}...z1e...z5;%...{down}z6;
+draw z4r{left}... z5 ... {down}z6;
+z7=(.25w,baselinewidth/2);
+fudge:=.05w;
+baseline(z7,z3+(fudge,0));
+%and now for the upper-left bit
+pickup pencircle xscaled thin yscaled thick;
+z8=(serif_width,h-thick/2);
+bot rt z9=(x5+thin,y5-thin);
+%draw z8--z9;
+top_serif(8,10);
+bottom_serif(8,11);
+labels(1,2,3,4,5,6,7,8,9,10,11);
+showit;
+endchar;
+
+
+
+beginchar(124,.85let_width#,let_height#+asc_height#,0);
+"The ligature aleph-lamed";
+
+af(0,0);
+%adopted from the aleph:
+pickup pencircle xscaled thin yscaled thick;
+lft z1=(0,let_height-thick/2);
+z0=(thin/2,h-3serif_height);%this has to match a thin line later
+z2=(0,y1-serif_height/3);
+bot z3 = (w,serif_height/3);
+bot z4 = (w,0);
+pickup pencircle xscaled thin yscaled (thick/cosd(angle(z3-z2)));
+%draw z0{down}... z2{z3-z2}...{z3-z2}z3...z4;
+draw z1 ... z2{z3-z2}...{z3-z2}z3...z4;
+z7=(4/5w,y1);
+z8=(4/5w,y7-serif_height/3);
+z8-z9=whatever*(z2-z3);
+x9=w;
+z10=(x9,y9-serif_height);
+hairlinepen;
+z6-z5=whatever*(z3-z2) rotated 90;
+z6= 3/4[z8,z9];
+z5=whatever[z3,z2];
+draw z5---z6;
+pickup pencircle xscaled thin yscaled (thick/cosd(angle(z3-z2)));
+draw z7...z8{z9-z8}...{z9-z8}z9...z10;
+%and now the lamed-like serif, from the letter lamed
+thinpen;
+z11=(thin/2,h);
+z12=(1.5serif_width,h-serif_height);
+draw z11...z12...z0{down}...z2;
+labels(1,2,3,4,5,6,7,8,9,10,11,12);
+showit;
+endchar;
+
+
+
+beginchar(123,let_width#,let_height#,0);
+"The letter Ayin (for use with vowels)";
+%n.b.: use this ayin when a vowel appears under it.
+
+af(0,0);
+z1=(0,-d+thick/2);
+z3=(.66w,thick/2);
+z5=(x3+((w-thin/2)-x3)/1.8,h/1.8);
+any_curve(1.3,thick,thin,1,2,3,4,5);
+fill fullcircle scaled thick shifted z1;
+pickup pencircle scaled (thick*2); %cheat in the next step.
+mycutoff((0,y1r-sind(angle(z3-z1))*thick/2),90+baseline_tilt);
+z6=(w-w/3.5,h-thick/2);
+alittle:=.05h;
+z8=(w,y6-alittle);
+z10=z5;
+any_curve(2,thin,thick,10,9,8,7,6);
+top_serif(6,11);
+thinpen;
+z12=whatever[z1,z3];
+(y14-y12)=(x12-x14)*(y5-y3)/(x5-x3); %i.e.,(y14-y12)/(x14-x12)=-(y5-y3)/(x5-x3)
+y14=2/3h;x14=.14w;
+z16=(2serif_width,h-thick/2-head_tilt);
+any_curve(1,thin,thin,16,15,14,13,12);
+pickup pencircle xscaled thin yscaled thick;
+z17=(serif_width,y16+head_tilt);
+z18=(x16+serif_width,y16-head_tilt);
+draw z17--z18;
+top_serif(17,19);
+bottom_serif(18,20);
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);% Wow! 20.
+showit;
+endchar;
+
+
+
+beginchar(136,let_width#,let_height#,0); "The letter Tet";
+
+af(0,0);
+%first, make somthing like a zion
+nw:=w/3.5;
+thinpen;
+z1=(nw/2,0);
+z2=(nw/2,h-thick/2-head_tilt);
+%draw z1---z2; that would be a zion
+pickup pencircle xscaled thin yscaled thick;
+lft z3 = (0,y2+head_tilt);
+rt z4 = (nw,y2-head_tilt);
+draw z3 -- z4;
+top_serif(3,5);
+bottom_serif(4,6);
+%now we've got a zion
+thinpen;
+z7=(thin/2,.66h);
+z8=(thin/2,thick/2);
+draw z8---z7---z2;
+z9=(0,y8);
+z12=(w-thin/2,h/2);
+general_left_curve(.9tightness,tightness/2,thick,thick,thin,thin,9,10,11,12);
+z13=z12;
+z14=(.78w,h-thick/2);
+z15=(.38w,.45h); %z15=(.35w,.5h); <--- old values
+penpos13(thin,0);
+penpos14(thick,90);%thick
+penpos15(thin,angle(z15-z14)-90);
+z16r=.2[z15r,z14r];
+z16l=.2[z15l,z14l];
+z16=.5[z16l,z16r];
+%z16=.5[z15,z14];
+%penpos16(thin/2,angle(z15-z14)-90);
+penstroke z13e{up}...{left}z14e...{z15-z16}z16e{z15-z15}---z15e;
+%penstroke z13e{up}...{left}z14e{z15-z15}---z15e;
+fill fullcircle scaled thin shifted z15;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+showit;
+endchar;
+
+
+
+
+
+beginchar(8,vowel_stroke#,0,vowel_depth#+vowel_height#); "The mark Meteg";
+
+vowel_af;
+vowelpen;
+top z1 = (w/2,-vowel_depth);
+bot z2 = (w/2,-vowel_depth-vowel_height);
+draw z1--z2;
+labels(1,2);
+showit;
+endchar;
+
+beginchar(9,vowel_width#,0,vowel_depth#+vowel_height#); "The vowel tzere";
+
+vowel_af;
+dotpen;
+top lft z1 = (0,-vowel_depth);
+top rt z2 = (w,-vowel_depth);
+dotat(z1);
+dotat(z2);
+labels(1,2);
+showit;
+endchar;
+
+beginchar(0,0,0,0); "General purpose dot";
+
+negate_af;
+dotpen;
+z1=(0,0);
+dotat(z1);
+labels(1);
+showit;
+endchar;
+
+
+
+beginchar(7,dot#,0,vowel_depth#+vowel_height#); "The vowel Shva";
+
+vowel_af;
+dotpen;
+top z1 = (w/2,-vowel_depth);
+bot z2 = (w/2,-d);
+dotat(z1);
+dotat(z2);
+labels(1,2);
+showit;
+endchar;
+
+
+
+beginchar(6,vowel_width#,0,vowel_depth#+(1.5*vowel_height#));
+"The vowel Kamatz Katan";
+
+vowel_af;
+vowelpen;
+top lft z1 = (0,-vowel_depth);
+top rt z2 = (w,-vowel_depth);
+draw z1---z2;
+z3=(w/2,-vowel_depth-(1.5*vowel_height)+dot/2);
+fill fullcircle scaled dot shifted z3;
+hairlinepen;
+draw z3---.5[z1,z2];
+labels(1,2,3);
+showit;
+endchar;
+
+beginchar(5,vowel_width#,0,vowel_depth#+dot#); "The vowel chiriq";
+
+vowel_af;
+dotpen;
+bot z1 = (w/2,-d);
+dotat(z1);
+labels(1);
+showit;
+endchar;
+
+
+beginchar(4,vowel_width#,0,vowel_depth#+1.5vowel_height#); "The vowel Qibutz";
+
+vowel_af;
+dotpen;
+top lft z1 = (0,-vowel_depth);
+bot rt z2 = (w,-d);
+z3=.5[z1,z2];
+dotat(z1);
+dotat(z2);
+dotat(z3);
+labels(1,2,3);
+showit;
+endchar;
+
+
+beginchar(3,vowel_width#,0,vowel_depth#+vowel_height#); "The vowel Segol";
+
+vowel_af;
+dotpen;
+top lft z1 = (0,-vowel_depth);
+top rt z2 = (w,-vowel_depth);
+bot z3 = (w/2,-vowel_depth-vowel_height);
+dotat(z1);
+dotat(z2);
+dotat(z3);
+labels(1,2,3);
+showit;
+endchar;
+
+
+beginchar(2,vowel_width#,0,vowel_depth#+vowel_height#); "The vowel Kamatz";
+
+vowel_af;
+vowelpen;
+top lft z1 = (0,-vowel_depth);
+top rt z2 = (w,-vowel_depth);
+draw z1---z2;
+z3=(w/2,-vowel_depth-vowel_height+dot/2);
+fill fullcircle scaled dot shifted z3;
+hairlinepen;
+draw z3---.5[z1,z2];
+labels(1,2,3);
+showit;
+endchar;
+
+beginchar(1,vowel_width#,0,vowel_depth#+vowel_stroke#); "The vowel Patach";
+
+vowel_af;
+vowelpen;
+bot lft z1 = (0,-d);
+bot rt z2 = (w,-d);
+draw z1---z2;
+labels(1,2);
+showit;
+endchar;
+
+
+
+
+beginchar(149,let_width#,let_height#,desc_height#); "The final letter Tzadi";
+
+af(0,0);
+%first, make a final nun:
+nw:=w/3.5;
+z1=(serif_width,h-thick/2);
+z3=(nw,h-thick/2);
+z5=(nw/1.5,.8h);
+any_curve(2,thin,thick,5,4,3,2,1);
+fudge:=.05nw;
+z6=(nw-fudge,y3);
+z8=z5;
+z10=(nw/2,.6h);
+any_curve(1.2,thin,thin,10,9,8,7,6);
+thinpen;
+z11=(nw/2,-desc_height);
+draw z10---z11;
+top_serif(1,0);
+z12=whatever[z10,z11];
+y12=.3h;
+z14=(x13-serif_width,y13+head_tilt);
+z15=(x13+serif_width,y13-head_tilt);
+x15=w-serif_width;
+y14=h-thick/2;
+thinpen;
+draw z12---z13;
+pickup pencircle xscaled thin yscaled thick;
+draw z14---z15;
+bottom_serif(15,16);
+top_serif(14,17);
+labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
+showit;
+endchar;
+
+
+beginchar(147,let_width#,let_height#,desc_height#); "The final letter Feh";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+z4=(w-thin/2,-d);
+top_serif(1,0);
+%this is from the letter pe
+right_curve(1,2,3,4);
+z6=z1;
+z8=(0,h/2);
+z10=(w/2-thick/2,h/2);
+any_curve(1.5,thin,thick,6,7,8,9,10);
+fill fullcircle scaled thick shifted z10;
+x12=0;
+y11=h/2;
+chupchik(11,12,70);
+labels(0,1,2,3,4,6,7,8,9,10,11,12);
+showit;
+endchar;
+
+
+
+
+
+beginchar(146,let_width#,let_height#,.3let_height#); "The letter Ayin";
+%n.b.: This is a descending ayin, for use when there's no vowel
+%under it!
+
+af(0,0);
+z1=(0,-d);
+z3=(.66w,thick/2);
+z5=(x3+((w-thin/2)-x3)/1.8,h/1.8);
+any_curve(1.3,thick,thin,1,2,3,4,5);
+fill fullcircle scaled thick shifted z1;
+pickup pencircle scaled (thick*1.5); %cheat in the next step.
+mycutoff((0,y1r-sind(angle(z3-z1))*thick/2),180);
+z6=(w-w/3.5,h-thick/2);
+alittle:=.05h;
+z8=(w,y6-alittle);
+z10=z5;
+any_curve(2,thin,thick,10,9,8,7,6);
+top_serif(6,11);
+thinpen;
+z12=whatever[z1,z3];
+(y14-y12)=(x12-x14)*(y5-y3)/(x5-x3); %i.e.,(y14-y12)/(x14-x12)=-(y5-y3)/(x5-x3)
+y14=2/3h;x14=.14w;
+z16=(2serif_width,h-thick/2-head_tilt);
+any_curve(1,thin,thin,16,15,14,13,12);
+pickup pencircle xscaled thin yscaled thick;
+z17=(serif_width,y16+head_tilt);
+z18=(x16+serif_width,y16-head_tilt);
+draw z17--z18;
+top_serif(17,19);
+bottom_serif(18,20);
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);% Wow! 20.
+showit;
+endchar;
+
+
+
+
+beginchar(153,1.1let_width#,let_height#,0); "The letter Shin";
+
+af(0,0);
+z1=(.1w,baselinewidth/2);
+z3=(.7w,baselinewidth/2);
+z5=(x3+((w-thin/2)-x3)/1.8,h/1.8);
+any_curve(1,thick,thin,1,2,3,4,5);
+z6=(w-2*sss*serif_width,h-thick/2);
+alittle:=.05h;
+z8=(w,y6-alittle);
+z10=z5;
+any_curve(2,thin,thick,10,9,8,7,6);
+top_serif(6,11);
+thinpen;
+z12=(x1,0);
+z14=(thin/2,2/3h);
+z16=(2*sss*serif_width,h-thick/2-head_tilt);
+any_curve(1,thin,thin,16,15,14,13,12);
+pickup pencircle xscaled thin yscaled thick;
+z17=(sss*serif_width,y16+head_tilt);
+z18=(x16+sss*serif_width,y16-head_tilt);
+draw z17--z18;
+top_serif(17,19);
+bottom_serif(18,20);
+z21=((x16+x6)/2,y16);
+(y21-y22)=(y5-y3)/(x5-x3)*(x21-x22);
+z22=whatever[z1,z3];
+hairlinepen;
+draw z21---z22;
+z23=(x21-sss*serif_width,y21+head_tilt);
+z24=(x21+sss*serif_width,y21-head_tilt);
+pickup pencircle xscaled thin yscaled thick;
+draw z23--z24;
+top_serif(23,25);
+bottom_serif(24,26);
+labels(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);
+showit;
+endchar;
+
+
+beginchar(151,let_width#,let_height#,desc_height#); "The letter Koof";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+z2=(tightness*w,h-thick/2);
+z3=(w-thin/2,tightness*y2);
+z4=(w-thin/2,h/3);
+z6=(.33w,0);
+penpos1(thick,90);
+penpos2(thick,90);
+penpos3(thin,0);
+penpos6(thin,angle(z4-z6)-90);
+z5=tightness[z6,z4];
+penpos5(thin,angle(z4-z6)-90);
+penstroke z6e{z4-z6}...{z4-z6}z5e...z3e{up}...z2e{left}...{left}z1e;
+top_serif(1,0);
+thinpen;
+z7=(serif_width,(3/5)*h);
+z8=(serif_width,-d);
+draw z7---z8;
+fill fullcircle scaled thin shifted z6;
+labels(0,1,2,3,4,5,6,7,8);
+showit;
+endchar;
+
+
+
+
+beginchar(145,let_width#,let_height#,0); "The letter Samech";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+penpos1(thick,90);
+z2=(tightness*w,y1);
+penpos2(thick,90);
+z3=(w-thin/2,h/2);
+penpos3(thin,0);
+z4=(.55w,thick/2);
+penpos4(thick,-90);
+penstroke z4e{right}...{up}z3e{up}...z2e{left}...{left}z1e;
+top_serif(1,0);
+z5=(x4,thick/2);
+z7=(thin/2,thick/2);
+z9=(thin/2,.8y1);
+any_curve(1,thin,thick,9,8,7,6,5);
+thinpen;
+draw z9---z1;
+labels(0,1,2,3,4,5,6,7,8,9);
+showit;
+endchar;
+
+
+
+beginchar(141,let_width#,let_height#,0); "The final letter Mem";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+z4=(w-thin/2,0);
+right_curve(1,2,3,4);
+top_serif(1,0);
+z5=(w-thin/2,thick/2);
+z7=(thin/2,thick/2); % This is for a rounded lower-left
+z9=(thin/2,.8y1); % corner. A right angle is better (?)
+%any_curve(1,thin,thick,9,8,7,6,5); % <--
+pickup penrazor scaled thick rotated 90;
+draw z5---(0,thick/2);
+pickup penrazor scaled thin rotated 0;
+draw z7---z9;
+thinpen;
+draw z9---z1;
+labels(0,1,2,3,4,5,6,7,8,9,10);
+showit;
+endchar;
+
+
+
+
+beginchar(143,let_width#/3.5,let_height#,desc_height#); "The final letter Nun";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+z3=(w,h-thick/2);
+z5=(w/1.5,.8h); % this isn't quite a yud.
+any_curve(2,thin,thick,5,4,3,2,1); %now we've got a yud. (almost)
+fudge:=.05w;
+z6=(w-fudge,y3);
+z8=z5;
+z10=(w/2,.6h);
+any_curve(1.2,thin,thin,10,9,8,7,6);
+thinpen;
+z11=(w/2,-desc_height);
+draw z10---z11;
+top_serif(1,0);
+labels(0,1,2,3,4,5,6,7,8,9,10);
+showit;
+endchar;
+
+
+
+beginchar(144,let_width#/2.2,let_height#,0); "The letter Nun";
+
+af(0,0);
+z1=(.2w+serif_width,h-thick/2);
+z4=(w-thin/2,h/2);
+general_right_curve(tightness/2.2,tightness,thick,thick,thin,thin,1,2,3,4);
+top_serif(1,0);
+z5=(w/2,baselinewidth/2);
+z8=z4;
+general_left_curve(tightness/2.2,tightness,
+ baselinewidth,baselinewidth,thin,thin,5,6,7,8);
+baseline((0,baselinewidth/2),(.75w,baselinewidth/2));
+labels(0,1,2,3,4,5,6,7,8);
+showit;
+endchar;
+
+
+
+
+beginchar(154,.9let_width#+overshoot#,let_height#,0); "The letter Taf";
+
+af(0,0);
+z1=(overshoot,h-thick/2);
+z4=(w-thin/2,0);
+right_curve(1,2,3,4);
+roundoff_bottom(4);
+top_serif(1,0);
+%thinpen;
+%z5=(2.5*overshoot,h-baselinewidth/2);
+%z6=(2*overshoot,baselinewidth/2);
+%draw z5{dir -110}...{dir -80}z6;
+%baseline((x6-1.5overshoot,y6),(x6+overshoot,y6));
+z11=(2.5*overshoot,h-thick/2); %this is taken from the Aleph, q.v.
+z15=(x11,thick/2);
+x13l=0;
+x13r=thin;
+y13l=y13r=.6h;
+z13=.5[z13l,z13r];
+penpos11(thin,angle(z13-z11)+90);
+penpos15(thick,angle(z15-z13)+90);
+z14=.3[z13,z15];
+penstroke z11e{z13-z11}...z13e...{z15-z13}z15e;
+fill fullcircle scaled thick shifted z15;
+z16=(0,baselinewidth/2);
+baseline(z16,(x15,baselinewidth/2));
+labels(0,1,2,3,4,5,6,11,12,13,14,15,16);
+showit;
+endchar;
+
+beginchar(140,.9let_width#,let_height#+asc_height#,0); "The letter Lamed";
+
+af(0,0);
+z1=(w/2,let_height-thick/2);
+z4=(w-thin/2,0); %we'll erase some of this later
+right_curve(1,2,3,4);
+z5=(x4,let_height/2);
+thinpen;
+erase draw z4--z5;
+showit;
+z6=(w/3,0);
+z8=z5;
+z10=(x4,.75let_height);
+any_curve(1,thin,thin,6,7,8,9,10);
+%and now for the ascender.
+z11=(thin/2,h);
+z12=(2serif_width,h-serif_height); %the lamed has it's own serif, though.
+z13=(thin/2,h-3serif_height);
+z14=(thin/2,y1+asc_height/2);
+draw z11...z12...z13{down}...{down}z14;
+showit;
+z15=(x14,y1+.75asc_height);
+z17=(thin/2,y1);
+z19=(4/5w,y1);
+any_curve(1,thick,thin,19,18,17,16,15);
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17,18,19);
+fill fullcircle scaled ((thick+thin)/2) shifted z6;
+showit;
+endchar;
+
+
+
+beginchar(138,let_width#,let_height#,desc_height#); "The final letter Chaf";
+
+af(0,0);
+thickpen;
+top z1 = (serif_width,let_height);
+top rt z2 = (let_width,let_height);
+draw z1---z2;
+mycutoff(z1,180);
+top_serif(1,0);
+thinpen;
+rt z3=(w-overshoot,h-thick/2);
+rt z4=(w-overshoot,-d);
+draw z3--z4;
+labels(0,1,2,3,4);
+showit;
+endchar;
+
+
+beginchar(135,let_width#,let_height#,0); "The letter Chet";
+
+af(0,0);
+thickpen;
+top z1 = (serif_width,let_height);
+top rt z2 = (w,h);
+draw z1 --- z2;
+mycutoff(z1,180);
+top_serif(1,0);
+thinpen;
+rt z3 = (w-overshoot,h-thick/2);
+rt z4 = (w-overshoot,0);
+draw z3--z4;
+z5=(serif_width,h-thick/2);
+z6=(serif_width,0);
+draw z5--z6;
+labels(1,2,3,4,5,6);
+showit;
+endchar;
+
+beginchar (137,let_width#/3.5,let_height#,0); "The letter Yud";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+z3=(w,h-thick/2);
+z5=(w/2,h/2);
+any_curve(2.2,thin,thick,5,4,3,2,1);
+top_serif(1,0);
+labels(0,1,2,3,4,5);
+showit;
+endchar;
+
+
+beginchar (134,let_width#/3.5,let_height#,0); "The letter Zion";
+
+af(0,0);
+thinpen;
+z1=(w/2,0);
+z2=(w/2,h-thick/2-head_tilt);
+draw z1--z2;
+pickup pencircle xscaled thin yscaled thick;
+lft z3 = (0,y2+head_tilt);
+rt z4 = (w,y2-head_tilt);
+draw z3 -- z4;
+top_serif(3,5);
+bottom_serif(4,6);
+labels(1,2,3,4,5,6);
+showit;
+endchar;
+
+
+beginchar(130,let_width#/2.2,let_height#,0); "The letter Gimel";
+
+af(serif_width#,0);
+z1=(serif_width,h-thick/2);
+z4=((.85w)-thin/2,baselinewidth);
+top_serif(1,0);
+right_curve(1,2,3,4);
+thinpen;
+bot rt z5 = (w,0);
+draw z5--z4;
+baselinepen;
+z6=(-serif_width/2,baselinewidth/2);
+top rt z7 = z4;
+baseline(z6,z7);
+labels(0,1,2,3,4,5,6,7);
+showit;
+endchar;
+
+
+beginchar(148,let_width#,let_height#,0); "The letter Pe";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+penpos1(thick,90);
+z2=(tightness*w,y1);
+penpos2(thick,90);
+z3=(w-thin/2,h/2);
+penpos3(thin,0);
+z4=(tightness*w,baselinewidth/2);
+penpos4(baselinewidth,-90);
+z5=(serif_width,baselinewidth/2);
+penpos5(baselinewidth,-90);
+penstroke z5e{right}...{right}z4e...{up}z3e{up}...z2e{left}...{left}z1e;
+top_serif(1,0);
+baseline((0,baselinewidth/2),(w/2,baselinewidth/2));
+showit;
+%so far, we've got a kaf.
+z6=z1;
+z8=(0,h/2);
+z10=(w/2-thick/2,h/2);
+any_curve(1.5,thin,thick,6,7,8,9,10);
+fill fullcircle scaled thick shifted z10;
+%and now for the chupchik:
+x12=0;
+y11=h/2;
+chupchik(11,12,70);
+labels(0,1,2,3,4,5,6,7,8,9,10,11);
+showit;
+endchar;
+
+
+
+beginchar(139,let_width#,let_height#,0); "The letter Kaf";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+penpos1(thick,90);
+z2=(tightness*w,y1);
+penpos2(thick,90);
+z3=(w-thin/2,h/2);
+penpos3(thin,0);
+z4=(tightness*w,baselinewidth/2);
+penpos4(baselinewidth,-90);
+z5=(serif_width,baselinewidth/2);
+penpos5(baselinewidth,-90);
+penstroke z5e{right}...{right}z4e...{up}z3e{up}...z2e{left}...{left}z1e;
+top_serif(1,0);
+baseline((0,baselinewidth/2),(w/2,baselinewidth/2));
+labels(0,1,2,3,4,5);
+showit;
+endchar;
+
+
+
+
+
+
+
+
+beginchar(128,let_width#,let_height#,0); "The letter Aleph";
+
+af(0,0);
+pickup pencircle xscaled thin yscaled thick; % this pen is only approx. right
+lft z1 = (0,h-thick/2);
+z2 = (0,y1-serif_height/3);
+bot z3 = (w,serif_height/3);
+bot z4 = (w,0);
+pickup pencircle xscaled thin yscaled (thick/cosd(angle(z3-z2)));
+draw z1 ... z2{z3-z2}...{z3-z2}z3...z4;%corrected z3-z3
+z7 = (4/5w,y1); %now we make the upper right squiggle.
+z8 = (4/5w,y7-serif_height/3);
+z8-z9 = whatever*(z2-z3); % || to the big fat line
+x9 = w;
+%z9 = (w,4/5h+serif_height);
+z10 = (x9,y9-serif_height/3);
+hairlinepen; %and z6 the upper right part.
+z6-z5=whatever*(z3-z2) rotated 90;%the line is perp. to the fat line.
+z6 = 3/4[z8,z9]; %And put z6 somewhere on that squiggle.
+z5 = whatever[z3,z2]; %z5 is somewhere on the big fat line.
+draw z5---z6;
+pickup pencircle xscaled thin yscaled (thick/cosd(angle(z3-z2)));
+draw z7 ... z8{z9-z8}...{z9-z8}z9...z10;
+pickup pencircle xscaled thin yscaled thick rotated angle(z3-z2);
+z11 = .2[z2,z3]; %we're in the home stretch.
+z15 = (x11,thick/2);
+x13l = 0; %Try to figure out a third point for the curve
+x13r = thin; %A thin line.
+y13l=y13r=.55h; %touching the left edge
+z13=.5[z13l,z13r]; %Just like the macro for penpos.
+penpos11 (thin,angle(z13-z11)+90);
+penpos15 (thick,angle(z15-z13)+90);
+z14=.3[z13,z15];
+penstroke z11e{z13-z11}...z13e...{z15-z13}z15e;
+fill fullcircle scaled thick shifted z15;
+showit;
+z16=(0,baselinewidth/2);
+baseline(z16,(x15,baselinewidth/2));
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+showit;
+endchar;
+
+beginchar(150,let_width#,let_height#,0); "The letter Tzadi";
+
+af(0,thick#/2);
+z1=(0,baselinewidth/2);
+z2=(w/2,baselinewidth/2);
+z4=(w,baselinewidth/2);
+z6=(w/3,h/1.8);
+any_curve(1,baselinewidth,thin,2,3,4,5,6);
+baseline(z1,(w/(1.5),baselinewidth/2));
+hairlinepen;
+z7=whatever[z6,z4];
+x7=w/2;
+z8=(w-overshoot*2,h-thick/2);
+draw z7--z8;
+thickpen;
+%it looks better sticking out a bit, but we have to set adjust_fit (af) above
+z9=(w,h-thick/2); %z9=(w-thick/2,h-thick/2); <--- old version
+draw z8--z9;
+mycutoff((x8-cosd(angle(z8-z7))*hairline,y8),angle(z8-z7)+90);
+z10=(serif_width,let_height-thick/2);
+showit;
+x13=x6+thin/2; %can't reuse z6 becuase z6l and z6r are already (mis)set.
+y13=y6-thin/2;
+right_curve(10,11,12,13);
+showit;
+top_serif(10,14);
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+showit;
+endchar;
+
+
+
+
+beginchar(133,let_width#/3,let_height#,0); "The letter Vav";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+z4=(w-thin/2,0);
+general_right_curve(tightness/2,tightness,thick,thick,thin,thin,1,2,3,4);
+roundoff_bottom(4);
+top_serif(1,0);
+labels(0,1,2,3,4);
+showit;
+endchar;
+
+
+
+beginchar(131,let_width#,let_height#,0); "The letter Daled";
+
+af(0,0);
+thickpen;
+top z1 = (serif_width,h);
+top rt z2 = (w,h);
+draw z1 --- z2; %Draw the top line
+mycutoff(z1,180); %mycutoff left part so we can make serif.
+top_serif(1,0);
+thinpen;
+rt z3 = (w-overshoot,h-thick/2);
+rt z4 = (w-overshoot,0);
+draw z3--z4;
+labels(0,1,2,3,4);
+showit;
+endchar;
+
+
+beginchar(132,let_width#,let_height#,0); "The letter Heh";
+
+af(0,0);
+thickpen;
+top z1 = (serif_width,h);
+top rt z2 = (w,h);
+draw z1 --- z2; %Draw the top line
+mycutoff(z1,180); %cutoff left part so we can make serif.
+top_serif(1,0);
+thinpen;
+rt z3 = (w-overshoot,h-thick/2);
+rt z4 = (w-overshoot,0);
+draw z3--z4; %Up to here we have a daled
+z5=(serif_width,.55h);
+z6=(serif_width,0);
+draw z5--z6; %Now we've drawn the stem.
+labels(1,2,3,4,5,6);
+showit;
+endchar;
+
+
+beginchar(129,let_width#,let_height#,0); "The letter Bet";
+
+af(0,0);
+z1=(serif_width,let_height-thick/2);
+z4=(let_width-thin/2-overshoot,baselinewidth/2);
+right_curve(1,2,3,4);
+roundoff_bottom(4);
+top_serif(1,0);
+baseline((0,baselinewidth/2),(let_width,baselinewidth/2));
+labels(1,2,3,4);
+showit;
+endchar;
+
+
+
+
+beginchar(152,let_width#,let_height#,0); "The letter Resh";
+
+af(0,0);
+z1=(serif_width,h-thick/2);
+z4=(w-thin/2,0);
+right_curve(1,2,3,4);
+roundoff_bottom(4);
+top_serif(1,0);
+labels(0,1,2,3,4);
+showit;
+endchar;
+
+
+
+font_normal_space 30u#;
+font_normal_stretch 10u#;
+font_normal_shrink 20u#;
+
+end; % KL 25.05.9
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/hclassic.mf b/Master/texmf-dist/fonts/source/public/arabtex/hclassic.mf
new file mode 100644
index 00000000000..4d54e8dd0ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/hclassic.mf
@@ -0,0 +1,208 @@
+%(c) 1990,91 by Joel M. Hoffman
+
+%hclassic. Modernized Classical Hebrew font. Version 0.9.
+%calls the file base.
+%last update: 5/15/91 by JMH
+% modified for use with ArabTeX: 5/25/96 Klaus Lagally
+% renamed "hcbase_pc" to "hcbase": 1999/04/10 KL
+
+%This calls the file ``hcbase_pc'' to create a general purpose classical
+%Hebrew font. See that file for more information.
+
+%Use of this material in a commercial venture of any sort requires
+%permission from me. Otherwise, you are free to use this for any
+%legal, non-destructive purpose. If you find this font useful, a
+%contribution to charity will be most appreciated.
+%
+%Send comments or complaints to:
+%
+%BITNET: hoffman@nyuacf.BITNET <-- this will change soon
+%CompuServe: 72700,402 -or- 72700.402@compuserve.com
+%SNAIL: Joel M. Hoffman
+% 19 Hillcrest Lane
+% Rye, NY 10580
+% U.S.A.
+
+
+mode_def testing=
+ pixels_per_inch:=300*4;
+ blacker:=.1;
+ o_correction:=1;
+ fillin:=.01;
+ proofing:=2;
+ fontmaking:=0;
+ tracingtitles:=1;
+ enddef;
+if unknown mode:
+mode:=localfont; fi
+mode_setup;
+
+if mode=testing: screenstrokes; fi
+
+
+%I used large units, and then later scaled the font down to size. -JMH
+%u#:=1/100in#; %ten units to a square.
+u#:=1/384.16in#; %but account for magnification.(1/384.16)
+%u#:=1/295.16in#;%but account for magnification and hp vs. epson
+
+let_height#:=35u#; %height of a standard letter.
+asc_height#:=25u#; %ascender height (for lamed).
+desc_height#:=16u#; %descender height(depth?).
+
+let_width#:=31u#; %width of a standard letter. (31u#)
+
+serif_height#:=3u#; %height of a standard serif.(2.5u#)
+serif_width#:=2.5u#; %width of a standard serif. (2.5u#)
+chupchiklength#:=6u#;
+
+vowel_width#:=14u#; %width of vowels under the letters.
+vowel_height#:=12u#; %How tall the vowels are.
+vowel_depth#:=8u#; %the space between the baseline and the vowels.
+
+let_fit#:=3u#; %space to left and right of letter (.5u#)
+vowel_fit#:=1.4u#; %space to the left and right of vowel(1.4u#);
+
+thick#:=8.5u#; %thickness of thick lines. (7.5u#)
+thin#:=3u#; %thickness of thin lines. (2u#)
+hairline#:=1u#; %VERY thin lines (.3u#)
+vowel_stroke#:=4u#; %pen to use
+dot#:=4u#; %diameter of dots (dagesh, vowels, etc)
+squaredot#:=10u#;
+
+overshoot#:=3u#; %overshoot for bet, taf.
+
+tightness:=.74; %tightness for right_curve; (.78)
+
+baseline_tilt:=60; %degrees for the tilt in baseline lines.
+
+head_tilt#:=.7u#; %tilt for the head on the zion, etc.
+
+sss:=.7; %Shrink the serif's width by this amount on a shin.
+ %(s)hrink (s)hin's (s)erif
+
+define_pixels(let_height,asc_height,desc_height,let_width,head_tilt);
+define_pixels(vowel_height,vowel_width,vowel_depth,vowel_height);
+define_pixels(squaredot);
+define_whole_pixels(let_fit,vowel_fit);
+define_pixels(serif_height,serif_width,chupchiklength);
+define_pixels(overshoot);
+define_whole_blacker_pixels(thick,thin,dot,hairline,vowel_stroke);
+
+def serifpen = pickup pencircle xscaled thin yscaled thick; enddef;
+%def serifpen = pickup pencircle xscaled hairline yscaled thick; enddef;
+def vowelpen = pickup pensquare scaled vowel_stroke; enddef;
+
+
+%this is from the METAFONT book:
+shrink_fit:=1+hround(2let_fit#*hppp)-2let_fit;
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l:=-hround(left_adjustment*hppp)-let_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2let_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-let_fit;
+ enddef;
+let af=normal_adjust_fit;
+def negate_af = af(-let_fit#,-let_fit#); enddef;
+def vowel_af = af(-let_fit#+vowel_fit#,-let_fit#+vowel_fit#); enddef;
+extra_endchar := extra_endchar&"r:=r+shrink_fit;w:=r-l;";
+
+
+
+
+def top_serif (suffix i,j) = %draw a serif at point z.i, using z.j
+ serifpen;
+ x.j = x.i-serif_width; y.j = y.i + serif_height;
+ draw (x.i+serif_width,y.i) ... z.i .. z.j;
+enddef;
+
+def bottom_serif (suffix i,j) = %draw an inverse serif at point z.i, with z.j
+ serifpen;
+ x.j = x.i+serif_width;y.j=y.i-serif_height;
+ draw (x.i-serif_width,y.i) ... z.i .. z.j;
+enddef;
+
+def roundoff_bottom (suffix i) = %round off point z.i, assuming thin lines.
+ fill fullcircle scaled thin shifted z.i;
+enddef;
+
+def right_curve(suffix i,j,k,l) = %call general_right_curve
+general_right_curve(tightness,tightness,thick,thick,thin,thin,i,j,k,l);
+enddef;
+
+def left_curve(suffix i,j,k,l) = %call general_left_curve
+general_left_curve(tightness,tightness,thick,thick,thin,thin,i,j,k,l);
+enddef;
+
+
+def general_right_curve (expr ta,tb,sa,sb,sc,sd) (suffix i,j,k,l) =
+ y.j=y.i;x.j=ta*(x.l-x.i)+x.i;
+ x.k=x.l;y.k=tb*(y.i-y.l)+y.l;
+ penpos i (sa,90);
+ penpos j (sb,90);
+ penpos k (sc,0);
+ penpos l (sd,0);
+ penstroke z.l.e{up} ... {up}z.k.e ... z.j.e{left} ...{left} z.i.e;
+enddef;
+
+def general_left_curve (expr ta,tb,sa,sb,sc,sd) (suffix i,j,k,l) =
+ y.j=y.i;x.j=ta*(x.l-x.i)+x.i;
+ x.k=x.l;y.k=tb*(y.i-y.l)+y.l;
+ penpos i (sa,-90);
+ penpos j (sb,-90);
+ penpos k (sc,0);
+ penpos l (sd,0);
+ penstroke z.i.e{right}...{right}z.j.e...z.k.e{up}...{up}z.l.e;
+enddef;
+
+
+
+def any_curve (expr adjust,thick,thin) (suffix i,j,k,l,m) =
+ %draw from i to m via k, using j and l, using specified values for
+ % withds.
+ z.j=(tightness/adjust)[z.i,z.k];
+ z.l=(tightness/adjust)[z.m,z.k];
+ penpos i (thick,angle(z.k-z.i)+90);
+ penpos j (thick,angle(z.k-z.i)+90);
+ penpos l (thin,angle(z.m-z.k)+90);
+ penpos m (thin,angle(z.m-z.k)+90);
+ penstroke z.i.e{z.k-z.i}
+ ... {z.k-z.i}z.j.e
+ ... z.l.e{z.m-z.k}
+ ... {z.m-z.k}z.m.e;
+enddef;
+
+def baseline (expr a,b) = %draw a baseline
+ pickup penrazor scaled thick rotated baseline_tilt;
+ draw a --- b;
+enddef;
+baselinewidth:= sind(baseline_tilt)*thick;
+
+def thickpen = pickup pencircle scaled thick; enddef;
+def thinpen = pickup pencircle scaled thin; enddef;
+def hairlinepen = pickup pencircle scaled hairline; enddef;
+def baselinepen = pickup penrazor scaled thick rotated baseline_tilt; enddef;
+def dotpen = pickup pencircle scaled dot; enddef;
+def squarepen = pickup penrazor scaled squaredot rotated 45; enddef;
+
+def dotat (expr z) = %put at dot at z
+fill fullcircle scaled dot shifted z;
+enddef;
+
+def chupchik(suffix i,j)(expr ang) = %draw a chupchik from z at angle ang
+thinpen;
+z.i=z.j+dir(ang)*chupchiklength;
+draw z.i--z.j;
+enddef;
+
+def mycutoff(expr a,b) = %cutoff with culling
+cullit;
+cutoff(a,b);
+cullit;
+enddef;
+
+%input hcbase_pc; % KL 25.05.96
+input hcbase; % 1999/04/10 KL
+
+end; % KL 03.11.96
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat b/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat
new file mode 100644
index 00000000000..8b46df79e2d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.dat
@@ -0,0 +1,209 @@
+% code assignments for arabic font in ArabTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+% 15.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {15.07.97}
+
+nashcode 1 file has been read
+
+%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%%
+
+f_iso 0 isolated
+f_end 1 final
+f_mid 2 medial
+f_beg 3 initial
+
+%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%%
+
+ttah_dia 010 for urdu
+one_dot_up 011
+two_dots_down 012
+fatha 013
+kasra 013
+damma 014
+hamza 015
+madda 016
+shadda 017
+two_dots_up 020
+three_dots_up 021
+three_dots_down 022
+fathatan 023
+kasratan 023
+dammatan 024
+sukun 025
+wasla 026
+quran_alif 027
+bow_dia 030 for kurdish
+e_dia 040 for pashto
+zwarakay 040 for pashto
+one_dot_down 056 period
+hamz_s 143 for kashmiri 0674
+bars 144 for 06fd, 06fe
+roof 145 for 06c9
+h_dia 146 for urdu
+ammad 146 for pashto
+
+f_iv 122 farsi 4
+f_v 123 farsi 5
+f_vi 124 farsi 6
+
+%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+alif 100 100,101
+alif_iso alif 100
+alif_end 101 101
+
+lam_alif 102 102,103
+lam_alif_iso lam_alif 102
+lam_alif_end 103 103
+
+bah_s 110 110-113 bah without dots
+bah bah_s 110
+bah_p 114 114-117 bah with loop
+
+rah 120 120,121
+%% zay 122 122,123
+%% zhah 124 124,125
+rah_p 126 126,127 rah with loop
+
+hamza_iso 132 132
+hamzc hamza_iso 132
+
+dal 130 130,131
+dal_p 136 136,137 dal with loop
+
+gim_close 144 147 closed gim
+%% gim 140 140-143
+hhah 150 150-153
+rah_s 156 156,157 rah with two dots
+khah 160 160-163
+%% tsah 170 170-173
+rah_k 166 166,167 kurdish rah
+
+sin 200 200-203
+sin_spec 202 204,205 short form
+%% shin_spec 204 206,207 short form
+qaf_s 206 206,207 qaf without dots
+%% shin 210 210-213
+%% sin_p 214 214,215 sin with two dots
+
+sad 220 220-223
+sad_spec 222 224,225 short form
+%% dad_spec 224 226,227 short form
+%% dad 230 230-233
+
+gaf_p_spec 224 226,227 short form of gaf with loop
+gaf_p_s 230 230-233 gaf with loop
+kaf_w 234 234-237 wide kaf
+
+ttah 240 240-243
+
+%% zzah 244 244-247
+waw_r 244 244,245 waw with ring
+waw_b 246 246,247 waw with bar
+
+ain 250 250-253
+fah_s 254 254-257 fah family
+
+kaf_p_s 260 260-263 kaf with loop
+gaf_p kaf_p_s 260
+kaf_p 264 264,265 kaf with loop and mark
+kaf_p_spec 264 266,267 short form of kaf with loop
+kaf_s 270 270-273 kaf family
+kaf 274 274,275
+kaf_spec 274 276,277 short form
+gaf_s 300 300-303 gaf family
+gaf 304 304,305
+gaf_spec 304 306,307 short form
+
+lam 310 310-313
+mim 320 320-323
+mim_sind 335 335 Sindhi final mim 06fe
+
+nun 340 340,341
+nun_p 342 342,343 nun with loop
+
+hah 350 350-354
+hah_urd 353 353,354 two-eyed hah,
+ % see hah and hah_spec_lam
+hah_spec_lam 352 354 medial hah after initial lam
+hah_spec 354 355-357 final short hah;
+h_s hah_spec 354
+ % also medial hah after sin
+
+waw 360 360,361
+%% fah 362 362,363
+qaf 364 364,365
+%% vah 366 366,367
+
+yah 370 370,371
+yah_spec 371 372 ligature for final yah
+yah_h 373 373,374 yah with hook
+yah_h_spec 374 375 ligature for yah with hook
+yah_p 376 376,377 long yah
+yah_p_s 366 366,367 long yah with loop
+
+%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%
+
+block 000 000-003
+tatwil 004 004-007
+
+rquotes 042 042
+period 056 056
+lquotes 134 134
+
+space_spec 044 046,047 carrier for dots
+smspc space_spec 044
+skip 045 047 small space, initial (!)
+no_break 046 046 no space, breaks ligatures
+break 047 047 small space, medial
+
+%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+bah_spec_gim 027 031 medial bah before gim
+bah_beg_gim 030 032 initial (!) bah before gim
+g_to_mb 031 033 medial bah to gim
+bah_high 032 034,035 before sin, sad
+bah_spec 034 036,037 bah before final rah, nun
+lam_spec_low 072 074 medial lam for 'allah'
+lam_l lam_spec_low 072
+alif_spec_mim 075 076 final alif after mim
+bah_end_hah 102 104,105 bah before final hah
+bah_spec_yah 104 106,107 bah before gim, with tie;
+ % also bah before yah
+%% gim_spec 143 144,145 from above
+hhah_spec 153 154,155 from above
+khah_spec 163 164,165 from above
+%% tsah_spec 173 174,175 from above
+lam_gim 311 314 lam on gim
+lam_on_gim 312 314 initial (!) lam before gim
+lam_long 312 315 initial lam before yah
+lam_spec_yah 314 316 before final yah ?
+lam_spec_mim 314 317 initial lam before medial mim
+mim_spec_high 322 324 from above
+mim_spec 324 325-327 final; medial after lam;
+ % also before gim
+mim_spec_mim 325 330 initial mim before mim
+mim_lam_gim 327 331 medial mim between lam and gim
+lam_spec_hah 330 333 initial lam before medial hah
+mim_spec_long 332 334 medial mim after lam, vocalized
+mm_to_b 333 335 bah to medial mim
+bah_mid_mim 334 336,337 bah before medial mim
+mim_spec_alif 342 344 medial mim before alif
+er_to_s 343 345 sin to final rah
+bah_end_mim 344 346 medial bah before final mim
+bah_beg_mim 345 347 initial (!) bah before final mim
+
+%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+g_to_s bah_spec_gim sin to gim
+em_to_s bah_end_mim sin to final mim
+mh_to_s bah_end_hah sin to medial hah or final mim
+g_to_bb bah_beg_gim initial bah to gim
+em_to_bb bah_beg_mim initial bah to final mim
+
+%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.mf b/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.mf
new file mode 100644
index 00000000000..031b7097ce5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xarbsymb.mf
@@ -0,0 +1,213 @@
+%%%%%%%%%%%%%%%%%%%% xarbsymb.mf %%%%%%%%%%%%%%%%%%%%
+% 15.7.1998 16:19:14
+% code assignments for arabic font in ArabTeX
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+% 15.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%\a@ident {xarbsymb.sty} {3.07 symbolic output encoding } {15.07.97}
+
+nashcode := oct "1"; % file has been read
+
+%%%%%%%%%%%%%%%%%% connection forms %%%%%%%%%%%%%%%%%%
+
+f_iso := oct "0"; % isolated
+f_end := oct "1"; % final
+f_mid := oct "2"; % medial
+f_beg := oct "3"; % initial
+
+%%%%%%%%%%%%%%%%%% diacritical marks %%%%%%%%%%%%%%%%%
+
+ttah_dia := oct "010"; % for urdu
+one_dot_up := oct "011"; %
+two_dots_down := oct "012"; %
+fatha := oct "013"; %
+kasra := oct "013"; %
+damma := oct "014"; %
+hamza := oct "015"; %
+madda := oct "016"; %
+shadda := oct "017"; %
+two_dots_up := oct "020"; %
+three_dots_up := oct "021"; %
+three_dots_down := oct "022"; %
+fathatan := oct "023"; %
+kasratan := oct "023"; %
+dammatan := oct "024"; %
+sukun := oct "025"; %
+wasla := oct "026"; %
+quran_alif := oct "027"; %
+bow_dia := oct "030"; % for kurdish
+e_dia := oct "040"; % for pashto
+zwarakay := oct "040"; % for pashto
+one_dot_down := oct "056"; % period
+hamz_s := oct "143"; % for kashmiri 0674
+bars := oct "144"; % for 06fd, 06fe
+roof := oct "145"; % for 06c9
+h_dia := oct "146"; % for urdu
+ammad := oct "146"; % for pashto
+
+f_iv := oct "122"; % farsi 4
+f_v := oct "123"; % farsi 5
+f_vi := oct "124"; % farsi 6
+
+%%%%%%%%%%%%%%%%%% letters %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+alif := oct "100"; % 100,101
+alif_iso := alif; % 100
+alif_end := oct "101"; % 101
+
+lam_alif := oct "102"; % 102,103
+lam_alif_iso := lam_alif; % 102
+lam_alif_end := oct "103"; % 103
+
+bah_s := oct "110"; % 110-113 bah without dots
+bah := bah_s; % 110
+bah_p := oct "114"; % 114-117 bah with loop
+
+rah := oct "120"; % 120,121
+%% zay 122 122,123
+%% zhah 124 124,125
+rah_p := oct "126"; % 126,127 rah with loop
+
+hamza_iso := oct "132"; % 132
+hamzc := hamza_iso; % 132
+
+dal := oct "130"; % 130,131
+dal_p := oct "136"; % 136,137 dal with loop
+
+gim_close := oct "144"; % 147 closed gim
+%% gim 140 140-143
+hhah := oct "150"; % 150-153
+rah_s := oct "156"; % 156,157 rah with two dots
+khah := oct "160"; % 160-163
+%% tsah 170 170-173
+rah_k := oct "166"; % 166,167 kurdish rah
+
+sin := oct "200"; % 200-203
+sin_spec := oct "202"; % 204,205 short form
+%% shin_spec 204 206,207 short form
+qaf_s := oct "206"; % 206,207 qaf without dots
+%% shin 210 210-213
+%% sin_p 214 214,215 sin with two dots
+
+sad := oct "220"; % 220-223
+sad_spec := oct "222"; % 224,225 short form
+%% dad_spec 224 226,227 short form
+%% dad 230 230-233
+
+gaf_p_spec := oct "224"; % 226,227 short form of gaf with loop
+gaf_p_s := oct "230"; % 230-233 gaf with loop
+kaf_w := oct "234"; % 234-237 wide kaf
+
+ttah := oct "240"; % 240-243
+
+%% zzah 244 244-247
+waw_r := oct "244"; % 244,245 waw with ring
+waw_b := oct "246"; % 246,247 waw with bar
+
+ain := oct "250"; % 250-253
+fah_s := oct "254"; % 254-257 fah family
+
+kaf_p_s := oct "260"; % 260-263 kaf with loop
+gaf_p := kaf_p_s; % 260
+kaf_p := oct "264"; % 264,265 kaf with loop and mark
+kaf_p_spec := oct "264"; % 266,267 short form of kaf with loop
+kaf_s := oct "270"; % 270-273 kaf family
+kaf := oct "274"; % 274,275
+kaf_spec := oct "274"; % 276,277 short form
+gaf_s := oct "300"; % 300-303 gaf family
+gaf := oct "304"; % 304,305
+gaf_spec := oct "304"; % 306,307 short form
+
+lam := oct "310"; % 310-313
+mim := oct "320"; % 320-323
+mim_sind := oct "335"; % 335 Sindhi final mim 06fe
+
+nun := oct "340"; % 340,341
+nun_p := oct "342"; % 342,343 nun with loop
+
+hah := oct "350"; % 350-354
+hah_urd := oct "353"; % 353,354 two-eyed hah,
+ % see hah and hah_spec_lam
+hah_spec_lam := oct "352"; % 354 medial hah after initial lam
+hah_spec := oct "354"; % 355-357 final short hah;
+h_s := hah_spec; % 354
+ % also medial hah after sin
+
+waw := oct "360"; % 360,361
+%% fah 362 362,363
+qaf := oct "364"; % 364,365
+%% vah 366 366,367
+
+yah := oct "370"; % 370,371
+yah_spec := oct "371"; % 372 ligature for final yah
+yah_h := oct "373"; % 373,374 yah with hook
+yah_h_spec := oct "374"; % 375 ligature for yah with hook
+yah_p := oct "376"; % 376,377 long yah
+yah_p_s := oct "366"; % 366,367 long yah with loop
+
+%%%%%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%%%
+
+block := oct "000"; % 000-003
+tatwil := oct "004"; % 004-007
+
+rquotes := oct "042"; % 042
+period := oct "056"; % 056
+lquotes := oct "134"; % 134
+
+space_spec := oct "044"; % 046,047 carrier for dots
+smspc := space_spec; % 044
+skip := oct "045"; % 047 small space, initial (!)
+no_break := oct "046"; % 046 no space, breaks ligatures
+break := oct "047"; % 047 small space, medial
+
+%%%%%%%%%%%%%%%%%% ligatures %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+bah_spec_gim := oct "027"; % 031 medial bah before gim
+bah_beg_gim := oct "030"; % 032 initial (!) bah before gim
+g_to_mb := oct "031"; % 033 medial bah to gim
+bah_high := oct "032"; % 034,035 before sin, sad
+bah_spec := oct "034"; % 036,037 bah before final rah, nun
+lam_spec_low := oct "072"; % 074 medial lam for 'allah'
+lam_l := lam_spec_low; % 072
+alif_spec_mim := oct "075"; % 076 final alif after mim
+bah_end_hah := oct "102"; % 104,105 bah before final hah
+bah_spec_yah := oct "104"; % 106,107 bah before gim, with tie;
+ % also bah before yah
+%% gim_spec 143 144,145 from above
+hhah_spec := oct "153"; % 154,155 from above
+khah_spec := oct "163"; % 164,165 from above
+%% tsah_spec 173 174,175 from above
+lam_gim := oct "311"; % 314 lam on gim
+lam_on_gim := oct "312"; % 314 initial (!) lam before gim
+lam_long := oct "312"; % 315 initial lam before yah
+lam_spec_yah := oct "314"; % 316 before final yah ?
+lam_spec_mim := oct "314"; % 317 initial lam before medial mim
+mim_spec_high := oct "322"; % 324 from above
+mim_spec := oct "324"; % 325-327 final; medial after lam;
+ % also before gim
+mim_spec_mim := oct "325"; % 330 initial mim before mim
+mim_lam_gim := oct "327"; % 331 medial mim between lam and gim
+lam_spec_hah := oct "330"; % 333 initial lam before medial hah
+mim_spec_long := oct "332"; % 334 medial mim after lam, vocalized
+mm_to_b := oct "333"; % 335 bah to medial mim
+bah_mid_mim := oct "334"; % 336,337 bah before medial mim
+mim_spec_alif := oct "342"; % 344 medial mim before alif
+er_to_s := oct "343"; % 345 sin to final rah
+bah_end_mim := oct "344"; % 346 medial bah before final mim
+bah_beg_mim := oct "345"; % 347 initial (!) bah before final mim
+
+%%%%%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+g_to_s := bah_spec_gim; % sin to gim
+em_to_s := bah_end_mim; % sin to final mim
+mh_to_s := bah_end_hah; % sin to medial hah or final mim
+g_to_bb := bah_beg_gim; % initial bah to gim
+em_to_bb := bah_beg_mim; % initial bah to final mim
+
+%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnsh.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnsh.mf
new file mode 100644
index 00000000000..825b931cadf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xnsh.mf
@@ -0,0 +1,43 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% xnsh.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Extended ArabTeX NASKH Font
+% collect all characters
+% 31.03.98
+% 16.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+% 16.07.1998
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% abort if cm base is loaded
+if unknown xnshbase: endinput fi;
+
+mode_setup;
+
+% font parameters
+em# := fs#;
+ex# := 8dy#;
+font_slant 0;
+font_normal_space .3em#;
+font_normal_stretch .5em#;
+font_normal_shrink 0;
+font_x_height ex#;
+font_quad em#;
+font_extra_space 0;
+font_coding_scheme "ArabTeX Naskh extended";
+
+font_setup;
+
+input xnshchar;
+
+input xnshlig;
+
+input xnshdia;
+
+input xnshdig;
+
+input xnshspec;
+
+endinput;
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnsh14.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnsh14.mf
new file mode 100644
index 00000000000..90cf63a6ed6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xnsh14.mf
@@ -0,0 +1,52 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% xnsh14.mf %%%%%%%%%%%%%%%%%%%%%%%%%
+% Extended Naskh font at 14.4 pt
+% 31.03.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown xnshbase: input xnshbase fi
+
+font_identifier "XNASKH";
+
+font_size 14.4pt#;
+
+fs# := 14.4pt#;
+
+% grid units
+fs# = 25.4dx#;
+fs# = 25.4dy#;
+
+% diacritics distance
+dia_d := 2;
+
+% normal pen
+px# := 1.8dy#; py# := 0.3dx#;
+
+pen_angle := 70;
+
+diag_angle = pen_angle - angle(px#,py#);
+
+% dot pen
+dp# := 2dy#; ap := 50;
+
+% dot distances
+dpx := 1.5; dpy := 3;
+dpx := 1.2; dpy := 2.5;
+
+% small pen for diacritics
+spx# = dx#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input xnsh
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+end.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnsh14bf.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnsh14bf.mf
new file mode 100644
index 00000000000..315620e3ca1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xnsh14bf.mf
@@ -0,0 +1,51 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% xnsh14bf.mf %%%%%%%%%%%%%%%%%%%%%%%
+% Extended Nash font at 14 pt, bold
+% 31.03.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown xnshbase: input xnshbase fi
+
+font_identifier "XNASKHBF";
+
+font_size 14.4pt#;
+
+fs# := 14.4pt#;
+
+% grid units
+fs# = 25.4dx#;
+fs# = 25.4dy#;
+
+% diacritics distance
+dia_d := 2;
+
+% normal pen
+px# := 2.4dy#; py# := 0.6dx#;
+
+pen_angle := 50;
+
+diag_angle = pen_angle - angle(px#,py#);
+
+% dot pen
+dp# := 2.2dy#; ap := 50;
+
+% dot distances
+dpx := 1.5; dpy := 3;
+
+% small pen for diacritics
+spx# := 1.5dx#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input xnsh
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+end.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshbase.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshbase.mf
new file mode 100644
index 00000000000..7e966b92f46
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshbase.mf
@@ -0,0 +1,578 @@
+%%%%%%%%%%%%%%%%%%%%%% xnshbase.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% base file for extended NASH
+% 13.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown cmbase: else:
+errhelp "you are using 'cmbase'; rerun with base=&plain";
+errmessage "this font needs the 'plain' METAFONT base; run aborted";
+endinput
+fi;
+
+if unknown nashcode: input xarbsymb fi;
+
+xnshbase := 1;
+
+def font_setup =
+ define_pixels(dx, dy, dp, em, ex);
+ define_blacker_pixels(px, py, spx);
+ pa := pen_angle; pl := px++py; da := pa - angle(px,py);
+ pickup pensquare xscaled px yscaled py rotated pa;
+% pickup pencircle xscaled px yscaled py rotated pa;
+ nash_pen := savepen;
+ pickup pencircle scaled spx;
+ dia_pen := savepen;
+enddef;
+
+def makegrid(text r) =
+ for x=0 step dx until w+.5dx:
+ for y=0 step dy until h+.5dy:
+ fill unitsquare shifted (x,y);
+ endfor;
+ for y=dy step dy until d+.5dy:
+ fill unitsquare shifted (x,-y);
+ endfor;
+ endfor
+% for y=0,h,-d: r((0,y), (w,y)); endfor
+% for x=0,w: r((x,-d), (x,h)); endfor
+ maketicks(r);
+enddef;
+
+%%%%%%%%%%%%%% char-macros %%%%%%%%%%%%%%%%%
+
+def arabchar(expr code, form, uw, uh, ud) =
+ beginchar(if string code: code else: (code + form) fi,
+ uw*dx#, uh*dy#, (ud + dia_d)*dy#);
+ pickup nash_pen;
+ if .5w <> good.x .5w: change_width; fi
+ x.l = x.ll = 0; x.r = x.rr = w; x.m = 0.5w;
+ bot y.l = bot y.r = y.m = bot y.ll - .5ex = 0; y.rr = y.ll;
+enddef;
+
+def diachar(expr code, uw, uh) =
+ beginchar(code, uw*dx#, (uh+0.5)*dy#, 0.5*dy#);
+% beginchar(code, uw*dx#, uh*dy#, 0);
+ pickup dia_pen;
+ if .5w <> good.x .5w: change_width; fi
+ lft x.l = 0; rt x.r = w;
+ y.l = 0.5dy; y.r = h - dy;
+% bot y.l = 0; top y.r = h;
+enddef;
+
+def numchar(expr code) =
+ beginchar(code, 10*dx#, 10*dy#, 5*dy#);
+ pickup nash_pen;
+ if .5w <> good.x .5w: change_width; fi
+ lft x.l = 0; rt x.r = w;
+ bot y.l = -d; top y.r = h;
+% bot y.l = 0; top y.r = h;
+enddef;
+
+extra_endchar :=
+extra_endchar & "penlabels(l,m,r,ll,rr,range 1 thru 20);";
+
+%%%%%%%%%%%%%% dot-macros %%%%%%%%%%%%%%%%%
+
+def put_dot (suffix $) =
+ z.$1 - z.$2 = (0, px - py) rotated pa;
+ z.$ = .5[z.$1, z.$2];
+ draw z.$1--z.$2;
+ labels($1,$2);
+enddef;
+
+def one_dot (expr n) =
+ x.dd := x.m; y.dd := y.m + round(n*dy);
+ put_dot(dd);
+enddef;
+
+def two_dots (expr n) =
+ x.dr - x.m = x.m - x.dl = round(dpx*dx);
+ y.dl = y.dr = y.m + round(n*dy);
+ put_dot(dl); put_dot(dr);
+enddef;
+
+def three_dots (expr n) =
+ two_dots(n); one_dot(n+dpy);
+enddef;
+
+def three_dots_low (expr n) =
+ two_dots(n); one_dot(n-dpy);
+enddef;
+
+%%%%%%%%%%%%%% stroke-macros %%%%%%%%%%%%%%%%%
+
+def bow (expr u, v, w) =
+ draw u..controls v and v..w;
+enddef;
+
+def l_att (suffix $) =
+ x.$l = x.$ - dx; y.$l = y.l;
+ bow(z.$, z.$l, z.l);
+enddef;
+
+def r_att (suffix $) =
+ x.$r = x.$ + dx; y.$r = y.r;
+ bow(z.$, z.$r, z.r);
+enddef;
+
+def r_att (suffix $) =
+ x.$r = x.$ + dx; y.$r = y.r;
+% bow(z.$, z.$r, z.r);
+draw z.${z.$r-z.$}..z.r{right};
+enddef;
+
+def serif (suffix $) =
+ z.$ = 0.2[z.$2,z.$1];
+% z.$2 - z.$1 = 3dy * (-4dx,11dy); % 110
+ y.$2 - y.$1 = 3dy;
+ z.$2 - z.$1 = whatever * (-4dx,11dy);
+ draw z.$1--z.$2;
+enddef;
+
+def s_bow (suffix $) =
+ x.$1 - .5dx = x.$;
+ x.$2 - 4dx = lft x.$3 = lft x.$4 + 1.5dx - pl = x.l;
+ y.$1 - dy = y.$3 = y.$4 - 2dy = y.$2 + 2dy = - 2dy;
+ draw z.$..z.$1{down}..z.$3{up}..z.$4;
+enddef;
+
+def p_loop (suffix $) =
+pickup dia_pen;
+x.$1 = x.$2 = x.$; y.$1 + spx + dy = y.$2; top y.$2 = y.$;
+draw z.$1..z.$2..cycle;
+pickup nash_pen;
+enddef;
+
+def r_con (suffix $) =
+ charic := (y.$-y.r)/vppp;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%% bah-macros %%%%%%%%%%%%%%%%%
+
+def bah_bow =
+x1 = x4 + dx = x2 + 13.8dx; x2 = x3 = x.l + 0.6dx;
+%x1 = x4 = x2 + 13.8dx; x2 = x3 = x.l + 0.6dx;
+y4 - 5dy = y1 - 3dy = y2 - 2dy = y.m = y3 - 4dy;
+x5 = x.m; y5 = y.m - 0.5dy;
+enddef;
+
+def bah_end =
+bah_bow; draw z1..z5{left}..z2..z3; r_att(1);
+enddef;
+
+def bah_iso =
+bah_bow; draw z4..z1..z5{left}..z2..z3;
+enddef;
+
+def bah_mid =
+x6 = x.m; y6 = good.y (y.r + 2dy);
+l_att(6); r_att(6);
+enddef;
+
+def bah_beg =
+x.m := x.m + 0.5dx;
+x1 - dx = x2 = x.m; y1 = y.l; y2 = y.m + 4dy;
+bow(z2, z1, z.l);
+enddef;
+
+%%%%%%%%%%%%%% hhah-macros %%%%%%%%%%%%%%%%%
+
+def hhah_iso_bar =
+x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 4dy = y.r;
+x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right};
+enddef;
+
+def hhah_mid_bar =
+x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 3dy = y.r;
+x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right};
+enddef;
+
+def hhah_beg_bar =
+x1 - 2dx = x2 - 11dx = x.l; y1 - 4dy = y2 - 2dy = y.r;
+x3 = x2 - 2dx; y3 = y2; draw z1{(8dx,3dy)}..z2{right};
+enddef;
+
+def hhah_bow =
+lft x4 = x1 - 2dx = x5 - 8dx; rt x6 - 6dx = x5;
+y5 = y6 - dy = -10dy; y4 = 0.6[y2,y5];
+penpos4(pl,da); penpos5(pl,90); penpos6(0.3dy,90);
+draw z2{left}..z4{down};
+fill z4r{down}..z5r{right}..z6r--z6l--z5l{left}..z4l{up}--cycle;
+enddef;
+
+def hhah_iso =
+hhah_iso_bar; hhah_bow;
+enddef;
+
+def hhah_end =
+hhah_mid_bar; hhah_bow;
+draw z3{down}..z.r{right};
+enddef;
+
+def hhah_mid =
+hhah_mid_bar; draw z2{left}..z.l{left};
+draw z3{down}..z.r{right};
+enddef;
+
+def hhah_beg =
+hhah_beg_bar; draw z2{left}..z.l{left};
+enddef;
+
+%%%%%%%%%%%%%% dal-macros %%%%%%%%%%%%%%%%%
+
+def dal_iso =
+x1 = x2 + 2dx = x3 - 3dx = x.r - 4dx; x.m := x1;
+y1 - 6dy = y2 = y3 - dy = y.r;
+draw z1{(7dx,-4dy)}..z3..z2{left};
+enddef;
+
+def dal_end =
+x1 + dx = x3 - dx = x4 + 4dx = x.r - 3dx; lft x2 = x.r - 9dx;
+y1 = 8dy; y2 - dy = y3 = y4 = y.l; z5 = .3[z1,z3];
+draw z1--z5{z3-z1}..z.r{right};
+draw z5{z3 - z1}..z4{left}..z2;
+enddef;
+
+%%%%%%%%%%%%%% rah-macros %%%%%%%%%%%%%%%%%
+
+def rah_bow =
+x5 + dx = x2 + dx = x4 + 9dx = x3 - px + 6dx = x.r;
+y5 + 3dy = y2 - 0.5dy = y4 + 6dy = y3 + 6dy = y.r;
+penpos2(pl,da); penpos3(pl,90);
+penpos4(0.3dy,90); penpos5(0.4[py,px],0);
+enddef;
+
+def rah_iso =
+rah_bow;
+y1 - 2dy = y.r; x1 + 0.5dx = x2;
+penpos1(pl,da);
+fill z1l..z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r..z1r--cycle;
+enddef;
+
+def rah_end =
+rah_bow;
+y1 - .5dy = y.r; x1 = x2; % = x.r - dx;
+fill z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r--cycle;
+draw z1..z.r{right};
+enddef;
+
+%%%%%%%%%%%%%% sin-macros %%%%%%%%%%%%%%%%%
+
+def s_wave =
+z2 - z1 = z5 - z4 = 2(z3 - z2);
+x3 - x1 = 6(x3 - x5) = 6dx; x.m := x2;
+y4 = y5 - 0.5dy = y2 - 2.5dy = y.r;
+draw z3..z5..z2; draw z2..z4{left};
+enddef;
+
+def mid_wave =
+x3 = x.r - 3dx; s_wave;
+draw z4{left}..z1;
+enddef;
+
+def beg_wave =
+rt x3 = x.r; s_wave;
+draw z4{left}..z1;
+enddef;
+
+def sin_iso =
+beg_wave; s_bow(1);
+enddef;
+
+def sin_end =
+mid_wave;
+draw z3{down}..z.r{right}; s_bow(1); enddef;
+
+def sin_mid =
+mid_wave; draw z3{down}..z.r{right}; l_att(1);
+enddef;
+
+def sin_beg =
+beg_wave; l_att(1);
+enddef;
+
+%%%%%%%%%%%%%% sad-macros %%%%%%%%%%%%%%%%%
+
+def sad_bow =
+x2 - dx = x3 - 9dx; x2 + 3dx = x.m; x4 = x2 - 2dx;
+y2 = y3 - 3dy = y4 - 2dy = y.r;
+x8 = x2 + 3.5dx; y8 = y2 + 0.5dy;
+draw z2{(5dx,6dy)}..z3{(4dx,-7dy)}..tension 2..z2{left};
+enddef;
+
+def sad_iso =
+x.m := x.m + 4dx;
+sad_bow; draw z2{left}..z4; s_bow(4);
+enddef;
+
+def sad_beg =
+x.m := x.m + dx;
+sad_bow; draw z2{left}..z4; l_att(4);
+enddef;
+
+%%%%%%%%%%%%%% ttah-macros %%%%%%%%%%%%%%%%%
+
+def ttah_stroke =
+x5 = x7 - dx = x2; y5 = 12dy; y7 = y2 + dy;
+draw z5{down}..z7{down};
+serif(5);
+enddef;
+
+def ttah_tail =
+x2 - x6 = 5dx; y6 = top y2;
+penpos2(pl,da);
+fill z6--z2r--z2l{left}..z6..cycle;
+enddef;
+
+def ttah_iso =
+x.m := x.m + dx;
+sad_bow; ttah_stroke; ttah_tail;
+x.m := x.m + dx;
+enddef;
+
+def ttah_beg =
+sad_bow; ttah_stroke;
+x.m := x.m + dx;
+enddef;
+
+%%%%%%%%%%%%%% ain-macros %%%%%%%%%%%%%%%%%
+
+def ain_head =
+x.m := x.m - 2dx;
+lda := 0.5pa + angle(dx,dy);
+penpos7(pl,pa); penpos3(0.3dy,90);
+penpos2(px,lda); penpos8(px,lda);
+x7 + 2dx = x3 + dx = x2 + 6dx; x8 = x2 + 0.3dx;
+y7 = y2 - 3dy = y3 - 4dy; y8 = y2; z7 = 0.25[z1, z.l];
+fill z7l{z.l-z1}..z2l{up}--z2r--z8r{down}..z7r{z1-z.l}--cycle;
+fill z2r{(7dx,10dy)}..z3r--z3l..z8l{(-7dx,-10dy)}--z2l--cycle;
+enddef;
+
+def ain_bow =
+lft x4 = x.l = x5 - 8dx; rt x6 = x5 + 6dx;
+y5 = y6 - dy = -10dy; y4 = 0.6[y1,y5];
+penpos4(pl,da); penpos5(pl,90); penpos6(0.3dy,90);
+draw z1{z.l - z1}..z4{down};
+fill z4r{down}..z5r{right}..z6r--z6l--z5l{left}..z4l{up}--cycle;
+enddef;
+
+def ain_top =
+x2 = x1 = x.r - 3.5dx; y2 - 2dy = y1 = 2dy;
+%x2 = x1 = x.m + 0.5dx; y2 - 2dy = y1 = 2dy;
+x7 - x2 = x2 - x3 = 2dx; y7 = y3 = y2 - 0.5dy;
+x8 = x3 - dx; y8 = y3;
+draw z.r{left}..z1..z3; draw z8..z2..z7;
+enddef;
+
+def ain_iso =
+x1 = x.r - 3dx; y1 = 5dy;
+ain_head; ain_bow;
+enddef;
+
+def ain_end =
+ain_top; draw z7..z1{z.l - z1}; ain_bow;
+enddef;
+
+def ain_mid =
+ain_top; draw z7..z1..z.l{left};
+enddef;
+
+def ain_beg =
+rt x1 = x.r; y1 = 3dy;
+ain_head; draw z1..z7..z.l{left};
+enddef;
+
+%%%%%%%%%%%%%% fah-macros %%%%%%%%%%%%%%%%%
+
+def fah_iso =
+x.m := x.m + 4dx;
+x1 = x2 - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r;
+y1 = y4 = 6dy; y2 = y3 = 8dy;
+lft x5 = x.l; lft x6 = lft x5 - 1.5dx + pl; x7 = 6dx;
+y5 = 3dy; y6 = y5 + 3dy; bot y7 = -0.5dy;
+draw z2..z1..z3..z4{down}..z7..z5{up}..z6;
+enddef;
+
+def fah_end =
+x.m := x.m + 4dx;
+x1 = x2 + dx = x.r - 2dx; lft x3 = lft x4 + 1.5dx - pl = x5 - 5dx = x.l;
+y5 = dy; y1 = 6.5dy; y2 = 2dy; y3 = 4dy; y4 = 6dy;
+x2a + 3dx = x2b = x1; y2a = y2b = y.r + 2dy;
+draw z.r{left}..z2a..z1;
+draw z1..z2b..tension 1.5..z5..z3{up}..z4;
+enddef;
+
+def fah_mid =
+x1 = x2 + dx = x.r - 2dx; y1 - 5dy = y2 - 0.5dy = y.r;
+x2a + 3dx = x2b = x1; y2a = y2b = y.r + 2dy;
+draw z.r{left}..z2a..z1; draw z1..z2b..z.l{left};
+enddef;
+
+def fah_beg =
+x1 = x2 - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r;
+y1 = y4 = 4dy; y2 = y3 = 6dy;
+draw z2..z1..z3..z4{down}..z.l{left};
+enddef;
+
+%%%%%%%%%%%%%% qaf-macros %%%%%%%%%%%%%%%%%
+
+def qaf_iso =
+x.m := x.m + 2dx;
+x1 = x2 - 2dx = x3 + dx = x4 - 2.5dx; rt x4 = x.r;
+y1 = y4 = 4dy; y2 = y3 = 6dy;
+lft x5 = x.l; lft x6 = lft x5 - 1.5dx + pl; x7 = 5dx;
+y5 = dy; y6 = y5 + 3dy; y7 = -2dy;
+draw z2..z1..z3..z4{down}..z7..z5{up}..z6;
+enddef;
+
+def qaf_end =
+x.m := x.m + 2dx;
+x1 + 3dx = x2 + dx = x.r;
+lft x3 = lft x4 + 1.5dx - pl = x5 - 5dx = x.l;
+y1 - 4dy = y2 = y.r = y3 + 2dy = y4 = y5 + 5dy;
+draw z.r{left}..z2..z1{right}..z2..z5..z3{up}..z4;
+enddef;
+
+%%%%%%%%%%%%%% kaf-macros %%%%%%%%%%%%%%%%%
+
+def kaf_mark (suffix $) =
+x.$6 + dx = x.$7 + 2dx = x.$8 = x.$9 + 3dx = x.$;
+y.$6 - 3dy = y.$7 - dy = y.$8 = y.$9 + dy = y.$;
+pickup dia_pen;
+draw z.$6{(-6dx,-5dy)}..z.$7..z.$8..z.$9{left};
+pickup nash_pen;
+labels($6,$7,$9);
+enddef;
+
+def kaf_beg =
+x1 - 11dx = x2 = x4 - 10dx = x.l;
+%x1 = x.r - dx; x2 = x.l; x4 = x.r - 2dx;
+%y4 = y.r; y1 = 14dy; y2 = 9dy; z3 = .4[z2, z4];
+y4 = y.l = y1 - 13dy = y2 - 8dy; z3 = .4[z2, z4];
+bow (z1, z2, z3);
+draw z3{z3 - z2}..z.l{left};
+enddef;
+
+%%%%%%%%%%%%%% gaf-macros %%%%%%%%%%%%%%%%%
+
+def gaf_iso =
+x1 - 15dx = x2 - 6dx = x4 - 8dx = x6 - dx = x.l;
+y1 - 13dy = y2 - 9dy = y4 = y6 - dy = y.l;
+z3 = .7[z2, z4]; z5 = .5[z4, z.l];
+bow(z1, z2, z3); bow(z3, z4, z5); bow(z5, z.l, z6);
+enddef;
+
+def gaf_iso =
+x1 - 2dx = x2 + 7dx = x4 +5dx = x.r;
+y1 - 13dy = y2 - 9dy = y4 = y.r;
+z3 = .7[z2, z4]; bow(z1, z2, z3);
+x6 = x7 = x.l + 0.6dx; y6 = y7 - 2dy = y.l + dx;
+x5 = .5[x6, x4]; y5 = y.m; z13 = .5[z4, z3];
+draw z7 .. z6 .. z5{right} .. z13{z3-z13}--z3;
+enddef;
+
+def gaf_serif =
+x10 = x1; y10 = y1 + 2.5dy; x11 = x2 + 2dx; y11 = y2 + 3dy;
+pickup dia_pen;
+z12 = 0.1[z10,z11]; draw z12--z11;
+pickup nash_pen;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def serpent =
+x1 = x3 = x.r - 3dx;
+x2 = x4 = x5 - dx = x.l + 4dx;
+y1 = y2 = y4 - 4dy = y5 - 8dy = y.l; y3 = y4;
+draw z5 .. z4{right} .. z3{right} .. z1{left} .. z2;
+enddef;
+
+%%%%%%%%%%%%%% nun-macros %%%%%%%%%%%%%%%%%
+
+def nun_iso =
+x1 + 2dx = rt x2 = x.r; x3 = x.m; lft x4 = lft x5 + 1.5dx - pl = x.l;
+y1 - 8dy = y2 - 3dy = y4 - 3dy = y5 - 5dy = y3 + dy = y.r - 3dy;
+draw z1..z2{down}..z3..z4{up}..z5;
+enddef;
+
+def nun_end =
+x1 = x.r - 2dx; y1 = y.r + dy;
+x2 - .5dx = x1; lft x3 = lft x4 + 1.5dx - pl = x.l;
+y2 - dy = y3 = y4 - 2dy = y.r - 3dy;
+x5 = x.m; y5 = y3 - 4dy;
+draw z1..z2{down}..z5..z3{up}..z4; r_att(1);
+enddef;
+
+%%%%%%%%%%%%%% waw-macros %%%%%%%%%%%%%%%%%
+
+def waw_bow =
+rah_bow;
+x1 + 2.5dx = x2; y1 - 3dy = y2;
+x6 = x1; y6 = y2;
+fill z2l..z5l..z3r..z4r{left}--z4l--z3l..z5r..z2r--cycle;
+enddef;
+
+def waw_bar =
+pickup dia_pen;
+x7 = .3[x4,x5]; y7 = y5; draw z7--z5;
+pickup nash_pen;
+enddef;
+
+%%%%%%%%%%%%%% hah-macros %%%%%%%%%%%%%%%%%
+
+def hah_iso =
+x1 = x.m - .5dx; rt x2 = x.r; lft x3 = x.l;
+y1 = 7dy; y2 = y3 = 3dy;
+%y1 = 6dy; y2 = y3 = 3dy;
+%y1 = 6dy; y2 = y3 = 2dy;
+draw z1..z2{down}..z3{up}..z1;
+enddef;
+
+def hah_end =
+x1 = x2 - dx = x4 + 2.5dx = x.m;
+y1 = 7dy; y2 = y.r; y4 = 4dy;
+z3 = .15[z1, z2]; z5 = .6[z1, z2];
+draw z1--z5{z5-z1}..z.r{right};
+draw z3{(-7dx,-4dy)}..z4{down}..z5{(7dx,4dy)};
+enddef;
+
+%%%%%%%%%%%%%% yah-macros %%%%%%%%%%%%%%%%%
+
+def yah_iso =
+x6 = x1 + 5dx = x2 + dx = x.r = x3 + 6dx;
+lft x4 = lft x5 + 1.5dx - pl = x.r - 13dx;
+%x6 = x1 + 5dx = x2 + dx = x.r = x3 + 6dx; lft x4 = x5 - dx = x.r - 13dx;
+y6 - 7dy = y1 - 3dy = y5 - 3dy = y2 - dy = y4 = y3 + 3dy = y.r - 2dy;
+draw z6{up}..tension 1.5..z1{down}..tension 1.5
+..z2{down}..tension 1.5..z3..z4{up}..z5;
+enddef;
+
+def yah_end =
+x1 + 4dx = rt x2 = x.r = x3 + 5dx;
+lft x4 = lft x5 + 1.5dx - pl = x.r - 11dx;
+y1 + 2dy = y2 + 4dy = y4 + 4dy = y3 + 7dy = y5 + dy = y.r;
+draw z.r{left}..z1{down}..tension 1.5
+..z2{down}..tension 1.5..z3..z4{up}..z5;
+enddef;
+
+def yah_p_iso =
+x10 = x4 - dx = x5; x3 = x6 = x7 + 2dx = x4 - 8dx; x8 = x4 + 4dx = x.r;
+y10 = y6 = y4 - 3dy = y5 - 5dy = y.r; y3 = y.rr; y7 = y8 = y.r - 3dy;
+z9 = 0.2[z10,z5]; z1 = 0.9[z6,z9]; z2 = 0.8[z3,z5];
+draw z8--z7{left}..z6..controls z1 and z2..z5..z4{(dx,-6dy)};
+enddef;
+
+def yah_p_end =
+x8 - 7dx = x7 + 3dx = x.r; y7 = y8 = y.r - 3dy;
+draw z8--z7{left}..z.r{(4dx,dy)};
+enddef;
+
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshchar.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshchar.mf
new file mode 100644
index 00000000000..b5df351e5c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshchar.mf
@@ -0,0 +1,646 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% xnshchar.mf %%%%%%%%%%%%%%%%%%%%%%%
+% Extended NASH Font
+% normal characters
+% 15.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown xnshbase: input xnshbase fi;
+
+%%%%%%%%%%%%%% alif %%%%%%%%%%%%%%%%%
+
+arabchar(alif, f_iso, 3, 15, -1);
+rt x6 = x.r; bot y6=0;
+x7 = x6 - dx; y7 = 13dy;
+draw z6{up}..z7{up};
+serif(7);
+endchar;
+
+arabchar(alif, f_end, 4, 15, 0);
+x6 + 2dx = x7 + 3dx = x.r;
+y6 = y.r; y7 = 13dy;
+z8 = 0.7[z7,z6]; draw z7---z8..z.r{right};
+endchar;
+
+%%%%%%%%%%%%%% bah family %%%%%%%%%%%%%%%%%
+
+arabchar(bah_s, f_iso, 16, 6, 1);
+bah_iso;
+endchar;
+
+arabchar(bah_s, f_end, 17, 6, 1);
+bah_end;
+endchar;
+
+arabchar(bah_s, f_mid, 5, 8, 0);
+x1 = x.m; y1 = y.l + 2dy;
+draw z.l{right}..z1; draw z1..z.r{right};
+endchar;
+
+arabchar(bah_s, f_beg, 5, 8, 0);
+x2 = x1 = x.l + 3dx; y1 - 4dy = y2 - dy = y.l;
+draw z1{(4dx,-11dy)}..z2..z.l{left};
+endchar;
+
+%%%%%%%%%%%%%% bah family with loop %%%%%%%%%%%%%%%%%
+
+arabchar(bah_p, f_iso, 16, 6, 3);
+bah_iso;
+x6 = x5; top y6 = y5; p_loop(6);
+endchar;
+
+arabchar(bah_p, f_end, 17, 6, 3);
+bah_end;
+x6 = x5; top y6 = y5; p_loop(6);
+endchar;
+
+arabchar(bah_p, f_mid, 6, 8, 2);
+x1 = x2 + dx = x.r - 2dx; y1 - 2dy = y2 = y.l;
+draw z.l{right}..z1{up}; draw z1..z.r{right};
+p_loop(2);
+endchar;
+
+arabchar(bah_p, f_beg, 5, 8, 2);
+x2 = x1 = x.l + 3dx; y1 - 4dy = y2 - dy = y.l;
+draw z1{(4dx,-11dy)}..z2..z.l{left};
+p_loop(2);
+endchar;
+
+%%%%%%%%%%%%%% hhah %%%%%%%%%%%%%%%%%
+
+arabchar(hhah, f_iso, 12, 10, 10);
+hhah_iso;
+endchar;
+
+arabchar(hhah, f_end, 13, 10, 10);
+hhah_end;
+endchar;
+
+arabchar(hhah, f_mid, 13, 10, 0);
+hhah_mid;
+endchar;
+
+arabchar(hhah, f_beg, 12, 8, 0);
+hhah_beg;
+endchar;
+
+%%%%%%%%%%%%%% khah %%%%%%%%%%%%%%%%%
+
+arabchar(khah, f_iso, 12, 15, 10);
+hhah_iso; x.m := x.m - 2dx; one_dot(10);
+endchar;
+
+arabchar(khah, f_end, 13, 15, 10);
+hhah_end; one_dot(10);
+endchar;
+
+arabchar(khah, f_mid, 13, 15, 0);
+hhah_mid; one_dot(10);
+endchar;
+
+arabchar(khah, f_beg, 12, 15, 0);
+hhah_beg; one_dot(10);
+endchar;
+
+%%%%%%%%%%%%%% dal, dhal %%%%%%%%%%%%%%%%%
+
+arabchar(dal, f_iso, 7, 10, 0);
+dal_iso;
+endchar;
+
+arabchar(dal, f_end, 10, 11, 0);
+dal_end;
+endchar;
+
+%%%%%%%%%%%%%% dal with loop %%%%%%%%%%%%%%%%%
+
+arabchar(dal_p, f_iso, 7, 10, 0);
+dal_iso; p_loop(3);
+endchar;
+
+arabchar(dal_p, f_end, 10, 11, 1);
+dal_end;
+x6 = x4 + 2dx; y6 = y4; p_loop(6);
+endchar;
+
+%%%%%%%%%%%%%% rah %%%%%%%%%%%%%%%%%
+
+arabchar(rah, f_iso, 8, 5, 5);
+rah_iso;
+endchar;
+
+arabchar(rah, f_end, 8, 5, 5);
+rah_end;
+endchar;
+
+%%%%%%%%%%%%%% rah with loop %%%%%%%%%%%%%%%%%
+
+arabchar(rah_p, f_iso, 8, 5, 8);
+rah_iso; p_loop(3l);
+endchar;
+
+arabchar(rah_p, f_end, 8, 5, 8);
+rah_end; p_loop(3l);
+endchar;
+
+%%%%%%%%%%%%%% rah with two dots %%%%%%%%%%%%%%%%%
+
+arabchar(rah_s, f_end, 8, 5, 6);
+rah_end;
+x6 = x.r; y6 = y3l; x7 = x3l; y7 = y5 + dy;
+put_dot(6); put_dot(7);
+endchar;
+
+arabchar(rah_s, f_iso, 8, 5, 6);
+rah_iso;
+x6 = x.r; y6 = y3l; x7 = x3l; y7 = y5 + dy;
+put_dot(6); put_dot(7);
+endchar;
+
+%%%%%%%%%%%%%% kurdish rah %%%%%%%%%%%%%%%%%
+
+arabchar(rah_k, f_iso, 8, 5, 10);
+rah_iso;
+x6 + dx = x7 + 3dx = x.r;
+y6 + 3dy = y7 + 8dy = y.r;
+draw z6{(dx,-2dy)}..z7;
+endchar;
+
+arabchar(rah_k, f_end, 8, 5, 10);
+rah_end;
+x6 + dx = x7 + 3dx = x.r;
+y6 + 3dy = y7 + 8dy = y.r;
+draw z6{(dx,-2dy)}..z7;
+endchar;
+
+%%%%%%%%%%%%%% sin %%%%%%%%%%%%%%%%%
+
+arabchar(sin, f_iso, 16, 6, 0);
+sin_iso;
+endchar;
+
+arabchar(sin, f_end, 18, 6, 0);
+sin_end;
+endchar;
+
+arabchar(sin, f_mid, 13, 6, 0);
+sin_mid;
+endchar;
+
+arabchar(sin, f_beg, 11, 6, 0);
+sin_beg;
+endchar;
+
+%%%%%%%%%%%%%% sad %%%%%%%%%%%%%%%%%
+
+arabchar(sad, f_iso, 19, 8, 0);
+sad_iso;
+endchar;
+
+arabchar(sad, f_end, 19, 8, 0);
+sad_iso; draw z.r{left}..z8;
+endchar;
+
+arabchar(sad, f_mid, 14, 8, 0);
+sad_beg; draw z.r{left}..z8;
+endchar;
+
+arabchar(sad, f_beg, 14, 8, 0);
+sad_beg;
+endchar;
+
+%%%%%%%%%%%%%% ttah %%%%%%%%%%%%%%%%%
+
+arabchar(ttah, f_iso, 13, 8, 0);
+ttah_iso;
+endchar;
+
+arabchar(ttah, f_end, 13, 8, 0);
+ttah_iso; draw z.r{left}..z8;
+endchar;
+
+arabchar(ttah, f_mid, 12, 8, 0);
+ttah_beg; draw z.r{left}..z8; draw z2--z.l;
+endchar;
+
+arabchar(ttah, f_beg, 11, 8, 0);
+ttah_beg; draw z2--z.l;
+endchar;
+
+%%%%%%%%%%%%%% ain, ghain %%%%%%%%%%%%%%%%%
+
+arabchar(ain, f_iso, 11, 11, 10);
+ain_iso;
+endchar;
+
+arabchar(ain, f_end, 10, 7, 10);
+ain_end;
+endchar;
+
+arabchar(ain, f_mid, 9, 7, 0);
+ain_mid;
+endchar;
+
+arabchar(ain, f_beg, 9, 10, 0);
+ain_beg;
+endchar;
+
+%%%%%%%%%%%%%% fah family %%%%%%%%%%%%%%%%%
+
+arabchar(fah_s, f_iso, 17, 11, 0);
+fah_iso;
+endchar;
+
+arabchar(fah_s, f_end, 18, 10, 0);
+fah_end;
+endchar;
+
+arabchar(fah_s, f_mid, 8, 10, 0);
+fah_mid;
+endchar;
+
+arabchar(fah_s, f_beg, 6, 10, 0);
+fah_beg;
+endchar;
+
+%%%%%%%%%%%%%% qaf %%%%%%%%%%%%%%%%%
+
+arabchar(qaf_s, f_iso, 12, 10, 2);
+qaf_iso;
+endchar;
+
+arabchar(qaf_s, f_end, 12, 10, 2);
+qaf_end;
+endchar;
+
+arabchar(qaf, f_iso, 12, 15, 2);
+qaf_iso; two_dots(11);
+endchar;
+
+arabchar(qaf, f_end, 12, 15, 4);
+qaf_end; two_dots(10);
+endchar;
+
+%%%%%%%%%%%%%% kaf family %%%%%%%%%%%%%%%%%
+
+arabchar(kaf_s, f_iso, 16, 15, 0);
+gaf_iso;
+endchar;
+
+arabchar(kaf_s, f_end, 16, 15, 0);
+gaf_iso; bow(z3, z4, z.r);
+endchar;
+
+arabchar(kaf_s, f_mid, 12, 15, 0);
+kaf_beg; draw z3{z.r-z3}..z.r{right};
+endchar;
+
+arabchar(kaf_s, f_beg, 9, 15, 0);
+kaf_beg;
+endchar;
+
+%%%%%%%%%%%%%% kaf %%%%%%%%%%%%%%%%%
+
+arabchar(kaf, f_iso, 10, 15, 0);
+x1 = x.r - 2dx; x2 = x.m; x3 = x.l + dx;
+y1 = 12dy; y2 = y.r; y3 = y.l + dy;
+x4 = x.l + 6dx; y4 = y.l + 4dy;
+bow(z1, z.r, z2); bow(z2, z.l, z3);
+serif(1); kaf_mark(4);
+endchar;
+
+arabchar(kaf, f_end, 12, 15, 0);
+x1 + dx = x2 = x.r - 2dx;
+x4 = x.m; lft x5 = x6 - dx = x.l;
+z3 = .7[z1, z2];
+y1 = 12dy; y2 = y.r; y4 = y.r; y5 = y6 - 2dy = y.l + 2dy;
+x7 = x.l + 7dx; y7 = y.l + 4dy;
+draw z1--z3{z2 - z1}..z4..z5..z6;
+draw z3{z2 - z3}..z.r{right};
+kaf_mark(7);
+endchar;
+
+%%%%%%%%%%%%%% kaf family with loop %%%%%%%%%%%%%%%%%
+
+arabchar(kaf_p_s, f_iso, 16, 15, 0);
+gaf_iso;
+z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+endchar;
+
+arabchar(kaf_p_s, f_end, 16, 15, 0);
+gaf_iso; bow(z3, z4, z.r);
+z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+endchar;
+
+arabchar(kaf_p_s, f_mid, 12, 15, 0);
+kaf_beg; draw z3{z.r-z3}..z.r{right};
+z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+endchar;
+
+arabchar(kaf_p_s, f_beg, 9, 15, 0);
+kaf_beg;
+z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+endchar;
+
+%%%%%%%%%%%%%% kaf with loop %%%%%%%%%%%%%%%%%
+
+arabchar(kaf_p, f_iso, 16, 15, 0);
+gaf_iso;
+x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8);
+z18 = .4[z1,z2]; x9 = x18; y9 = bot y18; p_loop(9);
+endchar;
+
+arabchar(kaf_p, f_end, 16, 15, 0);
+gaf_iso; bow(z3, z4, z.r);
+x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8);
+z18 = .4[z1,z2]; x9 = x18; y9 = bot y18; p_loop(9);
+endchar;
+
+%%%%%%%%%%%%%% wide kaf %%%%%%%%%%%%%%%%%
+
+arabchar(kaf_w, f_iso, 16, 10, 0);
+serpent; ttah_tail;
+endchar;
+
+arabchar(kaf_w, f_end, 16, 10, 0);
+serpent; draw z.r{left}..z1; ttah_tail;
+endchar;
+
+arabchar(kaf_w, f_mid, 16, 10, 0);
+serpent; draw z.r{left}..z1; draw z2{left}..z.l;
+endchar;
+
+arabchar(kaf_w, f_beg, 16, 10, 0);
+serpent; draw z2{left}..z.l;
+endchar;
+
+%%%%%%%%%%%%%% gaf family %%%%%%%%%%%%%%%%%
+
+arabchar(gaf_s, f_iso, 16, 16, 0);
+gaf_iso; gaf_serif;
+endchar;
+
+arabchar(gaf_s, f_end, 16, 16, 0);
+gaf_iso; bow(z3, z4, z.r);
+gaf_serif;
+endchar;
+
+arabchar(gaf_s, f_mid, 12, 16, 0);
+kaf_beg; draw z3{z.r-z3}..z.r{right};
+gaf_serif;
+endchar;
+
+arabchar(gaf_s, f_beg, 9, 16, 0);
+kaf_beg; gaf_serif;
+endchar;
+
+%%%%%%%%%%%%%% gaf %%%%%%%%%%%%%%%%%
+
+arabchar(gaf, f_iso, 16, 16, 0);
+gaf_iso; gaf_serif;
+x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8);
+endchar;
+
+arabchar(gaf, f_end, 16, 16, 0);
+gaf_iso; bow(z3, z4, z.r); gaf_serif;
+x8 = .6[x.l, x4]; y8 = y.l + 4dy; kaf_mark(8);
+endchar;
+
+%%%%%%%%%%%%%% gaf family with loop %%%%%%%%%%%%%%%%%
+
+arabchar(gaf_p_s, f_iso, 16, 18, 0);
+gaf_iso;
+z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+gaf_serif;
+endchar;
+
+arabchar(gaf_p_s, f_end, 16, 16, 0);
+gaf_iso; bow(z3, z4, z.r);
+z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+gaf_serif;
+endchar;
+
+arabchar(gaf_p_s, f_mid, 12, 16, 0);
+kaf_beg; draw z3{z.r-z3}..z.r{right};
+z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+gaf_serif;
+endchar;
+
+arabchar(gaf_p_s, f_beg, 9, 16, 0);
+kaf_beg;
+z8 = .4[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+gaf_serif;
+endchar;
+
+%%%%%%%%%%%%%% lam %%%%%%%%%%%%%%%%%
+
+arabchar(lam, f_iso, 9, 15, 4);
+rt x4 = w; lft x5 = 0; x1 = x4 - dx; x3 = x5 + dx;
+y1 = 12dy; y3 = 3dy; y4 = y5 = 0;
+draw z1{down}..z4{down}..z5{up}..z3; serif(1);
+endchar;
+
+arabchar(lam, f_end, 12, 15, 5);
+x1 + 3dx = x2 + 2dx = x.r; y1 - 11dy = y2 = y.r;
+z8 = 0.7[z1,z2]; draw z1---z8..z.r{right};
+s_bow(1);
+endchar;
+
+arabchar(lam, f_mid, 5, 15, 0);
+x1 + 3dx = x2 + 2dx = x.r; y1 - 11dy = y2 = y.r;
+z8 = 0.7[z1,z2]; draw z1---z8..z.r{right};
+bow (z1, z2, z.l);
+endchar;
+
+arabchar(lam, f_beg, 4, 15, 0);
+x1 = x2 - dx = x.l + 2dx;
+y1 = 12dy; y2 = y.l; z3 = 0.8[z1, z2];
+draw z1..z3{z2 - z3}..z.l{left}; serif(1);
+endchar;
+
+%%%%%%%%%%%%%% mim %%%%%%%%%%%%%%%%%
+
+arabchar(mim, f_iso, 7, 10, 5);
+x2 + 6dx = x4 + 4dx = x5 + 3.5dx = x6 + 4.5dx = x1;
+y2 + dy = y4 + 11dy = y5 - 2.5dy = y6 - 1.5dy = y1;
+z2 = z.l; bow(z4,z2,z1); bow(z6,z5,z1);
+endchar;
+
+arabchar(mim, f_end, 10, 10, 1);
+x1 + 0.5dx = x2 - 2.5dx = x3 + 2dx = x5 - 2dx = x.m;
+y1 - 3dy = y2 - 0.5dy = y3 - 1.5dy = y5 - dy = y.l;
+x4 = x.l + 2dx; y4 = -8dy;
+draw z.r{left}..z5..z1..tension 1.5..z3;
+draw z3{down}..tension 1.2..z2;
+bow(z3, z.l, z4);
+endchar;
+
+arabchar(mim, f_mid, 8, 10, 1);
+x1 + 0.5dx = x2 - 2.5dx = x3 + 2dx = x5 - 2dx = x.m;
+y1 - 3dy = y2 - 0.5dy = y3 - 1.5dy = y5 - dy = y.l;
+draw z.r{left}..z5..z1..tension 1.5..z3
+& z3{down}..tension 1.2..z2; l_att(3);
+endchar;
+
+arabchar(mim, f_beg, 7, 10, 0);
+x1 = x2 - dx = x3 + 2dx = x.l + 5dx;
+y1 - 4dy = y2 = y3 - 2dy = y.l;
+draw z3..tension 2..z2..tension 1.5..z1..z3..z.l{left};
+endchar;
+
+arabchar(mim_sind, f_iso, 7, 10, 0);
+x1 = x2 - dx = x3 + 2dx = x.l + 5dx;
+y1 - 4dy = y2 = y3 - 2dy = y.l;
+x4 = x.l; y4 = y.l - 2dy;
+draw z3..tension 2..z2..tension 1.5..z1..z3..z4{left};
+endchar;
+
+%%%%%%%%%%%%%% nun %%%%%%%%%%%%%%%%%
+
+arabchar(nun, f_iso, 10, 8, 4);
+nun_iso;
+endchar;
+
+arabchar(nun, f_end, 11, 4, 7);
+nun_end;
+endchar;
+
+%%%%%%%%%%%%%% nun with loop %%%%%%%%%%%%%%%%%
+
+arabchar(nun_p, f_iso, 10, 8, 6);
+nun_iso;
+x6 = x3; top y6 = y3; p_loop(6);
+endchar;
+
+arabchar(nun_p, f_end, 11, 4, 9);
+nun_end;
+x6 = x5; top y6 = y5; p_loop(6);
+endchar;
+
+%%%%%%%%%%%%%% hah, tah marbuta %%%%%%%%%%%%%%%%%
+
+arabchar(hah, f_iso, 5, 10, 0);
+hah_iso;
+endchar;
+
+arabchar(hah, f_end, 6, 10, 0);
+hah_end;
+endchar;
+
+arabchar(hah, f_mid, 6, 10, 4);
+x1 + dx = x2 = x3 = x4 + 2dx = x.m + dx;
+y1 = y2 - 4dy = y3 + 4dy = y4 = y.r;
+draw z1{(7dx,-4dy)}..z3..z4{up}..z2;
+draw z2{(5dx,-6dy)}..z.l{left}; draw z.r--z1;
+endchar;
+
+arabchar(hah, f_beg, 9, 10, 0);
+x1 + 0.5dx = x2 = x3 + 1.5dx = x4 - 1.5dx = x.r - 5dx;
+x6 + dx = x5 - 3dx = x.r;
+y1 = 7dy; y2 = 2dy; y3 = y4 = 4dy; y6 = dy;
+draw z1{curl 0}..tension 1.5..z6..tension 2..z2..z3..z4..z2..z.l{left};
+endchar;
+
+%%%%%%%%%%%%%% waw %%%%%%%%%%%%%%%%%
+
+arabchar(waw, f_iso, 9, 7, 6);
+waw_bow;
+draw z2{(-7dx,-4dy)}..z6..z1{right}..z2{(4dx,-11dy)};
+endchar;
+
+arabchar(waw, f_end, 10, 7, 6);
+x.r := x.r - dx; waw_bow; x.r := x.r + dx;
+draw z.r{left}..z6..z1{right}..z2{(4dx,-11dy)};
+endchar;
+
+%%%%%%%%%%%%%% waw with ring %%%%%%%%%%%%%%%%%
+
+arabchar(waw_r, f_iso, 9, 7, 6);
+waw_bow;
+draw z2{(-7dx,-4dy)}..z6..z1{right}..z2{(4dx,-11dy)};
+%x8 = x3; y8 = y5; p_loop(8);
+x8 = x3; y8 = y5 + dy; p_loop(8);
+endchar;
+
+arabchar(waw_r, f_end, 10, 7, 6);
+x.r := x.r - dx; waw_bow; x.r := x.r + dx;
+draw z.r{left}..z6..z1{right}..z2{(4dx,-11dy)};
+x8 = x3; y8 = y5 + .5dy; p_loop(8);
+endchar;
+
+%%%%%%%%%%%%%% waw with bar %%%%%%%%%%%%%%%%%
+
+arabchar(waw_b, f_iso, 9, 7, 6);
+waw_bow;
+draw z2{(-7dx,-4dy)}..z6..z1{right}..z2{(4dx,-11dy)};
+waw_bar;
+endchar;
+
+arabchar(waw_b, f_end, 10, 7, 6);
+x.r := x.r - dx; waw_bow; x.r := x.r + dx;
+draw z.r{left}..z6..z1{right}..z2{(4dx,-11dy)};
+waw_bar;
+endchar;
+
+%%%%%%%%%%%%%% yah, alif_maqsura %%%%%%%%%%%%%%%%%
+
+arabchar(yah, f_iso, 13, 5, 5);
+yah_iso;
+endchar;
+
+arabchar(yah, f_end, 11, 5, 7);
+yah_end;
+endchar;
+
+%%%%%%%%%%%%%% long yah %%%%%%%%%%%%%%%%%
+
+arabchar(yah_p, f_iso, 15, 8, 3);
+yah_p_iso;
+endchar;
+
+arabchar(yah_p, f_end, 5, 8, 3);
+yah_p_end;
+endchar;
+
+arabchar(yah_p_s, f_iso, 15, 8, 5);
+yah_p_iso;
+x11 = x.r - 7dx; top y11 = y8; p_loop(11);
+endchar;
+
+arabchar(yah_p_s, f_end, 5, 8, 5);
+yah_p_end;
+x11 = x.r - 2dx; top y11 = y8; p_loop(11);
+endchar;
+
+%%%%%%%%%%%%%% yah with hook %%%%%%%%%%%%%%%%%
+
+arabchar(yah_h, f_iso, 15, 5, 5);
+yah_iso;
+x7 = x5 - 3dx; y7 = y5 - 5dy; draw z5--z7;
+endchar;
+
+arabchar(yah_h, f_end, 13, 5, 7);
+yah_end;
+x7 = x5 - 3dx; y7 = y5 - 5dy; draw z5--z7;
+endchar;
+
+%%%%%%%%%%%%%% hamza %%%%%%%%%%%%%%%%%
+
+arabchar(hamza_iso, f_iso, 5, 8, 0);
+x3 = x1 + 3.5dx = x2 + 3.5dx = x7; x8 = x2 + 0.2dx +0.3py;
+y3 - 3dy = y1 + dy = y2 - 2dy = y7 = y.r + dy; y8 = y2;
+lda := 0.5[pa,90]; x.m = 0.5[x1,x7];
+penpos7(px,pa); penpos3(0.3dy,90);
+penpos2(px,lda); penpos8(px,lda);
+fill z7l{z1-z7}..z2l{up}--z2r--z8r{down}..z7r{z7-z1}--cycle;
+fill z2r{(7dx,10dy)}..z3r--z3l..z8l{(-7dx,-10dy)}--z2l--cycle;
+draw z1..z7;
+endchar;
+
+endinput;
+
+%%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshdia.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshdia.mf
new file mode 100644
index 00000000000..7aa0af856f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshdia.mf
@@ -0,0 +1,145 @@
+%%%%%%%%%%%%%%%%%%%%%%% xnshdia.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Extended NASKH Font
+% 15.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown xnshbase: input xnshbase fi;
+
+%%%%%%%%%%%%%% diacritics %%%%%%%%%%%%%%%%%
+
+diachar(damma, 4, 5);
+z1 = z.l; x2 = 3dx; y2 = y.r; x3 = x.r; y3 = 2dy;
+draw z1{dir 30}..z2{left}..z3{dir -45};
+endchar;
+
+diachar(fatha, 4, 2.5);
+draw z.l--z.r;
+endchar;
+
+diachar(sukun, 4, 4);
+draw (.5w, y.r){dir -45}..(.5w, y.l){left}..{dir 30}(.5w, y.r);
+endchar;
+
+diachar(dammatan, 5, 5);
+x4 = x.l; x5 = x1 = dx; y4 = y5 = 3dy; y1 = y.l;
+x2 - x.l = 3dx; y2 = y.r; x3 = x.r; y3 = 2dy;
+draw z1{dir 30}..z2{left}..z3{dir -45};
+draw z4..z5..z1{down};
+endchar;
+
+diachar(fathatan, 4, 4.5);
+x1 = x.r; x2 = x.l; y1 = y.r - 2dy; y2 = y.l + 2dy;
+draw z.l--z1; draw z2--z.r;
+endchar;
+
+diachar(hamza, 4, 5);
+x1 = x.r; x2 = x.l; x3 = x.r - dx;
+y1 = 2dy; y2 = 2.5dy; y3 = y.r - .5dy;
+draw z.l--z1;
+draw z3{left}..z2..z1{z1-z.l};
+endchar;
+
+diachar(shadda, 5, 3);
+z5 - z3 = z3 - z1 = z4 - z2 = whatever * (4dx, dy);
+z5 = z.r; x1 = x.l; y2 = y.l; x2 = .5[x1, x3];
+draw z1{down}..z2..z3{up}; draw z3{down}..z4..z5{up};
+endchar;
+
+diachar(quran_alif, 2, 5);
+x1 = x.l; x2 = .5[x.l, x.r];
+y1 = y.r; y2 = y.l;
+draw z1--z2;
+endchar;
+
+diachar(wasla, 6, 2);
+x1 - .4w = x2 - .7w = x4 - .7w = x5 = dx; x3 = x.r + dx;
+%x1 = .4w; x2 = x4 = .7w; x3 = x.r;
+y1 = y3 = h/2; y2 = y.l; y4 = y5 = y.r;
+draw z5..z1..z2..z3..z4..z1;
+endchar;
+
+diachar(madda, 6, 1.5);
+x.r - x2 = x1 - x.l = .1(x.r - x.l);
+y1 = y.r + dy; y3 = y2 = y.l; x3 = x.r;
+draw z.l--z1..z2..z3;
+endchar;
+
+diachar(ttah_dia, 4, 6);
+z1 = z.l; x2 = x4 = dx; y2 = dy; y4 = y.l + 4dy; x3 = x.r; y3 = 2dy;
+draw z1{dir 45}..z2..z3..z1{left}; draw z2..z4;
+endchar;
+
+arabchar(one_dot_up, 0, 2, 4, -2);
+one_dot(1);
+endchar;
+
+arabchar(two_dots_up, 0, 5, 4, -2);
+two_dots(1);
+endchar;
+
+arabchar(three_dots_up, 0, 5, 7, -2);
+three_dots(1);
+endchar;
+
+arabchar(two_dots_down, 0, 5, 2, 0);
+two_dots(1);
+endchar;
+
+arabchar(three_dots_down, 0, 5, 2, 3);
+three_dots_low(1);
+endchar;
+
+diachar(bow_dia, 4, 2);
+draw (x.l,y.r)..(.5w, y.l)..z.r;
+endchar;
+
+diachar(e_dia, 4, 2.5);
+draw z.l--(x.r,y.l);
+endchar;
+
+diachar(h_dia, 4, 5);
+x1 = x2 = x3 = .5w;
+y1 = y.r; y2 = y.l; y3 = .2[y2,y1];
+draw z1{z.l-z1}..z2{right}..z3{left};
+endchar;
+
+if false:
+diachar(hamz_s, 6, 4);
+%x1 = x.r; y1 = dy;
+%x2 = x.r - 3dx; y2 = 1.5dy;
+%x3 = x.r - dx; y3 = y.r - .5dy;
+x1 = x2 + 3dx = x3 + dx = x.r;
+y1 + 2.5dy = y2 + 2dy = y3 + .5dy = y.r;
+draw z.l{dir 60}..z1{dir 60};
+draw z3{left}..z2..z1{dir 30};
+endchar;
+fi
+
+diachar(hamz_s, 4, 5);
+x1 = x2 + 3dx = x3 + dx = x.r;
+y1 + 2.5dy = y2 + 2dy = y3 + .5dy = y.r;
+x4 + dx = x.l; y4 + 2dy = y.l;
+draw z4{dir 60}..z1{dir 30};
+draw z3{left}..z2..z1{dir 30};
+endchar;
+
+diachar(bars, 3, 5);
+x1 = x.l; x2 = x.r;
+y1 = y.r; y2 = y.l;
+draw z1--z.l; draw z2--z.r;
+endchar;
+
+diachar(roof, 5, 3);
+x1 = .5[x.l,x.r]; x2 = x.r;
+y1 = y.r; y2 = y.l;
+draw z.l--z1--z2;
+endchar;
+
+endinput;
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshdig.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshdig.mf
new file mode 100644
index 00000000000..53cad312373
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshdig.mf
@@ -0,0 +1,100 @@
+%%%%%%%%%%%%%%%%%%%%% xnshdig.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Extended NASKH Font
+% 22.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown xnshbase: input xnshbase fi;
+
+%%%%%%%%%%%%%% digits %%%%%%%%%%%%%%%%%
+
+numchar("0");
+x1 + .6pl = x4 - .6pl = 5dx;
+y1 - .6pl = y4 + .6pl = bot y.l + 6dy;
+penpos1(2px,pa); penpos4(2px,pa);
+fill z1l--z1r--z4r--z4l--cycle;
+endchar;
+
+numchar("1");
+x1 = 4dx; x2 = 7dx; y1 - 11dy = bot y2 = bot y.l;
+draw z1..z2{down};
+endchar;
+
+numchar("2");
+x1 = 3dx; x2 = 6dx; x3 = 8dx;
+y3 - 11dy = y1 - 11dy = bot y2 = bot y.l;
+%draw z3..z1{(-4dx,7dy)};
+draw z3{down}..z1; draw z1..z2{down};
+endchar;
+
+numchar("3");
+x1 = 2dx; x2 = 4dx; x3 = 9dx; x4 = 6dx;
+y4 = y3 = y1; y1 - 11dy = bot y2 = bot y.l;
+draw z3{down}..z4; draw z4{down}..z1; draw z1..z2{down};
+endchar;
+
+numchar("4");
+x1 = x2 - .5dx = x3 - dx = 6dx; x4 = x5 = 2dx;
+y1 - 11dy = y2 - 6dy = bot y3 = y4 - 8dy = y5 - 2dy = bot y.l;
+bow(z1, z4, z2); bow(z2, z5, z3);
+endchar;
+
+numchar("5");
+x1 = x2 - 3dx = x3 + 2dx = 5dx;
+y1 - 6dy = y2 = y3; y3 - 4dy = bot y.l - dy;
+draw z1{(dx,-dy)}..z2..z3..z1{(dx,dy)};
+endchar;
+
+numchar("6");
+x1 + 4dx = x2 = x3 - 2dx = 6dx;
+y1 -10dy = y2 - 10dy = bot y3 = bot y.l;
+draw z1{(7dx,-4dy)}..z2; draw z2{down}..z3;
+endchar;
+
+numchar("7");
+x1 + 4dx = x2 = x3 - 4dx = 5dx;
+y1 - 10dy = y3 - 10dy = bot y2 = bot y.l;
+draw z1..z2{down}; draw z3..z2{down};
+endchar;
+
+numchar("8");
+x1 + 4dx = x2 = x3 - 4dx = 5dx;
+y2 - 10dy = bot y1 = bot y3 = bot y.l;
+draw z1..z2{up}; draw z3..z2{up};
+endchar;
+
+numchar("9");
+x1 = x2 + 4dx = x3 + 2dx = x4 - 2dx = 6dx;
+y1 - 7dy = y2 - 7dy = y3 - 11dy = bot y4 = bot y.l;
+draw z1..z2..z3..z1{down}..z4;
+endchar;
+
+%numchar(oct "122");
+numchar(f_iv);
+x2 - 2dx = x3 - 6dx = x4 - 7dx = x5 - 2dx = x1 = 2dx;
+%y4 +2dy = y3 - dy = y5 = y1; y1 - 11dy = bot y2 = bot y.l;
+y4 +2dy = y3 - dy = y5 = y1; y1 - 9dy = bot y2 = bot y.l;
+draw z3..z5..z4; draw z4{(-dx,-dy)}..z1; draw z1..z2{down};
+endchar;
+
+numchar(f_v);
+x1 = x2 - 2dx = x3 + 3dx = 5dx;
+y1 - 6dy = y2 = y3; y3 - 4dy = bot y.l - dy;
+x4 = x1; y4 = y3;
+draw z1{(dx,-dy)}..z2..z4;
+draw z4..z3..z1{(dx,dy)};
+endchar;
+
+numchar(f_vi);
+x2 - 2dx = x3 - 6dx = x4 - 7dx = x5 - 2dx = x6 = x1 = 2dx;
+%y4 +2dy = y3 - dy = y5 = y6 + 8dy = y1; y1 - 11dy = bot y2 = bot y.l;
+y4 +2dy = y3 - dy = y5 = y6 + 8dy = y1; y1 - 9dy = bot y2 = bot y.l;
+draw z3..z5..z4; draw z4{(-dx,-dy)}..z6;
+endchar;
+
+endinput;
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshlig.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshlig.mf
new file mode 100644
index 00000000000..229073966f1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshlig.mf
@@ -0,0 +1,547 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%% xnshlig.mf %%%%%%%%%%%%%%%%%%%%%%%%
+% Extended NASH Font
+% ligatures
+% 14.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown xnshbase: input xnshbase fi;
+
+%%%%%%%%%%%%%% alif after mim %%%%%%%%%%%%%%%%%
+
+arabchar(alif_spec_mim, f_end, 3, 15, 0); % mim-alif
+x1 + dx = x2 + .5dx = x.r; y1 = 13dy; y2 = y.r + .5dy;
+bow(z1, z2, z.r); serif(1);
+endchar;
+
+%%%%%%%%%%%%%% bah_high %%%%%%%%%%%%%%%%%
+
+arabchar(bah_high, f_beg, 5, 10, 0);
+x.m := x.m + 0.5dx;
+x1 - dx = x2 = x.m; y1 = y.l; y2 = y.l + 6dy;
+bow(z2, z1, z.l);
+endchar;
+
+arabchar(bah_high, f_mid, 6, 10, 0);
+x5 - dx = x6 = x.m;
+y6 = good.y (y.l + 6dy); y5 = y.l;
+z4 = .5[z6, z5];
+l_att(4); bow(z6, z5, z.r);
+endchar;
+
+%%%%%%%%%%%%%% bah before nun %%%%%%%%%%%%%%%%%
+
+arabchar(bah_spec, f_beg, 5, 10, 0);
+x4 - 2dx = x.ll; y4 - 2dy = y.ll;
+draw z4{(dx,-2dy)}..z.ll{left};
+r_con(ll); % measure for raising final nun, rah
+endchar;
+
+arabchar(bah_spec, f_mid, 5, 10, 0);
+x6 = x.l + 2dx; y6 = good.y (y.ll + 2dy);
+draw z6..z.ll{left}; draw z6{down}..z.r{right};
+%r_con(ll);
+endchar;
+
+%%%%%%%%%%%%%% bah over yah maqsoura %%%%%%%%%%%%%%%%%
+
+%arabchar(bah_spec_yah, f_beg, 5, 10, 7);
+arabchar(bah_spec_yah, f_beg, 5, 10, 2);
+x1 - 2dx = x2 - 3dx = x.l; y1 - 6dy = y2 - dy = y.l;
+draw z1{(4dx,-7dy)}..z2..z.l{(-6dx,-dy)};
+endchar;
+
+arabchar(bah_spec_yah, f_mid, 4, 8, 2);
+z1 = 0.5[z.ll, z.rr]; x2 = x.l; x4 = x.r;
+y2 = y4 = y.r + dy;
+draw z.ll..controls z1 and z2..z4;
+r_con(4);
+endchar;
+
+%%%%%%%%%%%%%% bah over middle mim %%%%%%%%%%%%%%%%%
+
+arabchar(bah_mid_mim, f_beg, 6, 10, 0);
+x1 = x.rr - dx; y1 = y.rr + dy;
+draw z.l{(-dx,dy)}..z1{(dx,-dy)};
+endchar;
+
+arabchar(bah_mid_mim, f_mid, 6, 10, 0);
+x1 = x.rr - 3dx; y1 = y.rr + 2dy;
+draw z.l{(-dx,dy)}..z1..z.rr{right};
+r_con(rr);
+endchar;
+
+%%%%%%%%%%%%%% bah over end mim %%%%%%%%%%%%%%%%%
+
+arabchar(bah_beg_mim, f_mid, 5, 8, 0);
+x1 = x.l + 7dx; y1 = y.r + dy;
+draw z.l{(dx,dy)}..z1{(dx,-6dy)};
+endchar;
+
+arabchar(bah_end_mim, f_mid, 8, 8, 4);
+x1 = x.r - 2dx; y1 = y.r + 2dy;
+draw z.l{(dx,dy)}..z1{(dx,-6dy)}..z.r{right};
+endchar;
+
+%%%%%%%%%%%%%% bah over gim %%%%%%%%%%%%%%%%%
+
+%arabchar(bah_spec_gim, f_mid, 12, 8, 7);
+arabchar(bah_spec_gim, f_mid, 12, 8, 0);
+x5 = x4 = x.r - 4dx; y4 - 4dy = y5 = y.r;
+z3 = 0.2[z5,z4]; z1 = 0.9[z1,z3]; z2 = 0.8[z.ll,z4];
+z6 = 0.5[z4, z.rr]; x7 = x5; x8 = x.r; y7 = y8 = y.r + dy;
+draw z.l..controls z1 and z2..z4..controls z6 and z7..z8;
+r_con(8);
+endchar;
+
+arabchar(bah_beg_gim, f_mid, 8, 8, 6);
+x4 - dx = x5 = x.r; y4 - 3dy = y5 - 5dy = y.r;
+z3 = 0.2[z.r,z5]; z1 = 0.9[z.l,z3]; z2 = 0.8[z.ll,z5];
+draw z.l..controls z1 and z2..z5..z4{(dx,-6dy)};
+endchar;
+
+%%%%%%%%%%%%%% bah over hah %%%%%%%%%%%%%%%%%
+
+arabchar(bah_end_hah, f_mid, 6, 8, 5);
+x1 = x.r - 2dx; y1 = y.r + 2dy;
+draw z.l{(dx,dy)}..z1..z.r{right};
+endchar;
+
+arabchar(bah_end_hah, f_beg, 6, 8, 0);
+x1 + 2dx = x.r; y1 = y.r;
+draw z.l{(4dx,7dy)}..z1;
+endchar;
+
+%%%%%%%%%%%%%% hhah-spec-macros %%%%%%%%%%%%%%%%%
+
+def hhah_spec_bar =
+x1 = x2 - 9dx = x.rr;
+y1 = y.rr; y2 = 0.5[y.r, y.rr];
+draw z1{right}..z2{right};
+r_con(rr);
+enddef;
+
+def hhah_spec_beg =
+hhah_spec_bar; draw z2{left}..z.l{left};
+enddef;
+
+def hhah_spec_iso =
+hhah_spec_bar; hhah_bow;
+enddef;
+
+if false:
+%%%%%%%%%%%%%% gim ligature %%%%%%%%%%%%%%%%%
+
+arabchar(gim_spec, f_end, 4, 10, 10);
+hhah_spec_iso;
+x.m := x.r + 2dx;
+one_dot(-3);
+endchar;
+
+arabchar(gim_spec, f_mid, 2, 10, 5);
+hhah_spec_beg;
+x.m := x.r + 4dx;
+one_dot(-4);
+endchar;
+fi
+
+%%%%%%%%%%%%%% hhah ligature %%%%%%%%%%%%%%%%%
+
+arabchar(hhah_spec, f_end, 4, 10, 10);
+hhah_spec_iso;
+endchar;
+
+%arabchar(hhah_spec, f_mid, 2, 10, 5);
+arabchar(hhah_spec, f_mid, 2, 10, 0);
+hhah_spec_beg;
+endchar;
+
+%%%%%%%%%%%%%% khah ligature %%%%%%%%%%%%%%%%%
+
+arabchar(khah_spec, f_end, 4, 15, 10);
+hhah_spec_iso;
+x.m := x.r;
+one_dot(10);
+endchar;
+
+%arabchar(khah_spec, f_mid, 2, 15, 5);
+arabchar(khah_spec, f_mid, 2, 15, 0);
+hhah_spec_beg;
+x.m := x.r;
+one_dot(10);
+endchar;
+
+if false:
+%%%%%%%%%%%%%% tsah ligature %%%%%%%%%%%%%%%%%
+
+arabchar(tsah_spec, f_end, 4, 10, 10);
+hhah_spec_iso;
+x.m := x.r + 3dx;
+three_dots_low(-3);
+endchar;
+
+arabchar(tsah_spec, f_mid, 2, 10, 8);
+hhah_spec_beg;
+x.m := x.r + 4dx;
+three_dots_low(-4);
+endchar;
+fi
+
+%%%%%%%%%%%%%% closed hhah %%%%%%%%%%%%%%%%%
+
+arabchar(gim_close, f_beg, 12, 9, 0); % closed hhah
+%arabchar(gim_close, f_beg, 12, 8, 0); % closed hhah
+x1 = x2 - 9dx = x.l + 2dx; y1 - 4dy = y2 - 2dy = y.r;
+x3 = x7 = x1 + 7dx; y3 - 2dy = y7 = y.r;
+x4 = x1 - 2dx; y4 = y.l + 2dy;
+draw z4..z1{(8dx,3dy)}..z2{right}; draw z2{left}..z.l{left};
+endchar;
+
+%arabchar(gim_close, f_mid, 13, 8, 1); % closed hhah
+%hhah_mid; draw z3{down}..z.r{right};
+%endchar;
+
+%%%%%%%%%%%%%% sin_spec-macros %%%%%%%%%%%%%%%%%
+
+def sin_spec_wave =
+z5 - z.l = z3 - z2;
+x3 - x2 = 2(x3 - x5) = 2dx; x.m := x2;
+y5 = y2 - 2dy = y.l;
+draw z3..z5..z2; draw z2{down}..z.l{left};
+enddef;
+
+def sin_spec_beg =
+sin_spec_wave;
+enddef;
+
+def sin_spec_mid =
+sin_spec_wave; r_att(3);
+enddef;
+
+def sin_spec_mid =
+sin_spec_wave; draw z3{down}..z.r{right};
+enddef;
+
+%%%%%%%%%%%%%% short sin %%%%%%%%%%%%%%%%%
+
+arabchar(sin_spec, f_mid, 6, 6, 0);
+sin_spec_mid;
+endchar;
+
+arabchar(sin_spec, f_beg, 4, 6, 0);
+sin_spec_beg;
+endchar;
+
+if false:
+%%%%%%%%%%%%%% short shin %%%%%%%%%%%%%%%%%
+
+arabchar(shin_spec, f_mid, 6, 15, 0);
+sin_spec_mid; three_dots(8);
+endchar;
+
+arabchar(shin_spec, f_beg, 4, 15, 0);
+sin_spec_beg; three_dots(8);
+endchar;
+fi
+
+%%%%%%%%%%%%%% sad_spec-macros %%%%%%%%%%%%%%%%%
+
+def sad_spec_beg =
+x.m := x.m - dx;
+x1 = x2 - dx = x3 - 9dx = x.l;
+y1 + dy = y2 = y3 - 3dy = y.l;
+x8 = x2 + 3.5dx; y8 = y2 + 0.5dy;
+draw z1{(5dx,6dy)}..z3{(4dx,-7dy)}..tension 2..z.l{left};
+enddef;
+
+%%%%%%%%%%%%%% short sad %%%%%%%%%%%%%%%%%
+
+%arabchar(sad_spec, f_mid, 10, 10, 0);
+arabchar(sad_spec, f_mid, 10, 8, 0);
+sad_spec_beg; draw z.r{left}..z8;
+endchar;
+
+%arabchar(sad_spec, f_beg, 10, 10, 0);
+arabchar(sad_spec, f_beg, 10, 8, 0);
+sad_spec_beg;
+endchar;
+
+if false:
+%%%%%%%%%%%%%% short dad %%%%%%%%%%%%%%%%%
+
+arabchar(dad_spec, f_mid, 10, 10, 0);
+sad_spec_beg; draw z.r{left}..z8;
+one_dot(8);
+endchar;
+
+arabchar(dad_spec, f_beg, 10, 10, 0);
+sad_spec_beg; one_dot(8);
+endchar;
+fi
+
+%%%%%%%%%%%%%% kaf_spec-macros %%%%%%%%%%%%%%%%%
+
+def kaf_spec_beg =
+x1 = x.l + 9dx; x2 = x.l - 3.5dx; x4 = x.l + 8dx;
+%x1 = x.r - dx; x2 = x.l - 3.5dx; x4 = x.r - 2dx;
+%y4 = y.r; y1 = 14dy; y2 = 9dy; z3 = .4[z2, z4];
+y4 = y.l = y1 - 13dy = y2 - 8dy; z3 = .4[z2, z4];
+bow (z1, z2, z3);
+draw z3{z3 - z2}..z.l{left};
+enddef;
+
+%%%%%%%%%%%%%% short kaf %%%%%%%%%%%%%%%%%
+
+arabchar(kaf_spec, f_mid, 10, 15, 0);
+kaf_spec_beg; draw z3{z.r-z3}..z.r{right};
+endchar;
+
+arabchar(kaf_spec, f_beg, 7, 15, 0);
+%arabchar(kaf_spec, f_beg, 10, 15, 0);
+kaf_spec_beg;
+endchar;
+
+%%%%%%%%%%%%%% short gaf %%%%%%%%%%%%%%%%%
+
+%arabchar(gaf_spec, f_mid, 10, 16, 0);
+arabchar(gaf_spec, f_mid, 10, 17, 0);
+kaf_spec_beg; draw z3{z.r-z3}..z.r{right};
+gaf_serif;
+endchar;
+
+%arabchar(gaf_spec, f_beg, 7, 16, 0);
+arabchar(gaf_spec, f_beg, 7, 17, 0);
+kaf_spec_beg;
+gaf_serif;
+endchar;
+
+%%%%%%%%%%%%%% short kaf with loop %%%%%%%%%%%%%%%%%
+
+arabchar(kaf_p_spec, f_mid, 10, 15, 0);
+kaf_spec_beg; draw z3{z.r-z3}..z.r{right};
+z8 = .3[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+endchar;
+
+arabchar(kaf_p_spec, f_beg, 7, 15, 0);
+kaf_spec_beg;
+z8 = .3[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+endchar;
+
+%%%%%%%%%%%%%% short gaf with loop %%%%%%%%%%%%%%%%%
+
+%arabchar(gaf_p_spec, f_mid, 10, 15, 0);
+arabchar(gaf_p_spec, f_mid, 10, 16, 0);
+kaf_spec_beg; draw z3{z.r-z3}..z.r{right};
+z8 = .3[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+gaf_serif;
+endchar;
+
+%arabchar(gaf_p_spec, f_beg, 7, 15, 0);
+arabchar(gaf_p_spec, f_beg, 7, 16, 0);
+kaf_spec_beg;
+z8 = .3[z1,z2]; x9 = x8; y9 = bot y8; p_loop(9);
+gaf_serif;
+endchar;
+
+%%%%%%%%%%%%%% lam_alif %%%%%%%%%%%%%%%%%
+
+def lam_alif_serif(suffix $) =
+x.$sa = x.$sb - 2dx = x.$;
+y.$sa + dy = y.$sb + 3dy = y.$;
+draw z.$--z.$sa--z.$sb;
+enddef;
+
+arabchar(lam_alif_end, 0, 12, 15, 0);
+x1 + 3dx = x2 + 2dx = x.r;
+x3 + 8dx = x4 = x5 + 8dx = x6 + 2dx = x1;
+y1 = 12dy; y2 = y3 + 2dy = y.r; y4 = y6 + dy = 4dy; y5 = 11dy;
+z7 = 0.7[z1,z2]; draw z1---z7..z.r{right};
+bow(z1, z4, z3);
+draw z5{z4 - z5}..z6; lam_alif_serif(5);
+endchar;
+
+arabchar(lam_alif_iso, 0, 11, 15, 0);
+x1 + 2dx = x4 + 2dx = x3 + 6dx = x2 = x5 + 10dx = x.r;
+y1 = 13dy; y4 = 3dy; y3 = y2 = y.r; y5 = 12dy;
+bow(z1, z4, z3);
+bow(z5, z2, z3);
+serif(1); lam_alif_serif(5);
+endchar;
+
+%%%%%%%%%%%%%% lam in 'allah' %%%%%%%%%%%%%%%%%
+
+arabchar(lam_spec_low, f_mid, 5, 11, 0);
+x1 + .5dx = x2 - .5dx = x.m; y1 = 9dy; y2 = y.r;
+bow (z1, z2, z.r); bow (z1, z2, z.l);
+endchar;
+
+%%%%%%%%%%%%%% lam over yah %%%%%%%%%%%%%%%%%
+
+%arabchar(lam_spec_yah, f_mid, 7, 15, 7);
+arabchar(lam_spec_yah, f_mid, 7, 15, 0);
+x4 = x.r; x1 = x2 - dx = x.r - 3dx;
+y1 - 11dy = y2 = y4 = y.r + 2dy;
+z3 = .2[z2, z1];
+bow (z1, z3, z.l); draw z1---z3..z4{right};
+r_con (4);
+endchar;
+
+%arabchar(lam_on_gim, f_mid, 6, 10, 5);
+arabchar(lam_on_gim, f_mid, 6, 12, 0);
+x1 = x2 - dx = x.l + 4dx;
+y1 = 9dy; y2 = y.l; z3 = 0.7[z1, z2];
+draw z1..z3{z2 - z3}..z.l{left}; serif(1);
+endchar;
+
+%arabchar(lam_long, f_beg, 6, 15, 3);
+arabchar(lam_long, f_beg, 6, 15, 0);
+x1 = x2 - dx = x.l + 4dx;
+y1 = 12dy; y2 = y.l; z3 = 0.8[z1, z2];
+draw z1..z3{z2 - z3}..z.l{left}; serif(1);
+endchar;
+
+%%%%%%%%%%%%%% lam over mim and hah %%%%%%%%%%%%%%%%%
+
+arabchar(lam_spec_mim, f_beg, 3, 15, 0);
+x1 + dx = x2 + .5dx = x.l; y1 = 13dy; y2 = y.l + .5dy;
+bow(z1, z2, z.l); serif(1);
+endchar;
+
+arabchar(lam_spec_hah, f_beg, 3, 10, 0);
+x1 + dx = x2 + .5dx = x.l; y1 - 8dy = y2 - .5dy = y.l;
+bow(z1, z2, z.l); serif(1);
+endchar;
+
+%%%%%%%%%%%%%% mim ligatures %%%%%%%%%%%%%%%%%
+
+%arabchar(mim_spec, f_end, 5, 5, 13); % final mim connected from above
+arabchar(mim_spec, f_end, 5, 5, 8); % final mim connected from above
+x2 + 6dx = x4 + 4dx = x5 + 3.5dx = x6 + 4.5dx = x1;
+y2 + dy = y4 + 11dy = y5 - 2.5dy = y6 - 1.5dy = y1;
+z5 = z.r; bow(z4,z2,z1); draw z5--z1;
+endchar;
+
+arabchar(mim_spec, f_mid, 4, 10, 0); % medial mim after lam
+%x2 = x.r = x1 - 2dx; y1 = y.r = y2 - dy;
+x2 = x.r - dx = x1 - 2dx; y1 = y.r = y2 - dy;
+draw z.l{right}..z2..z1;
+r_con(2);
+endchar;
+
+arabchar(mim_spec, f_beg, 8, 10, 5); % mim over gim
+x2 = x1 = x3 + 2dx = x.l + 7dx;
+y2 = y1 - 2dy = y3 - dy = y.l + 2dy;
+draw z3..z1..z2{left}..z.l;
+endchar;
+
+arabchar(mim_spec_mim, f_beg, 6, 10, 0); % mim over mim
+x2 = x1 = x3 + 2dx = x.l + 3dx;
+y2 = y1 - 2dy = y3 - dy = y.l + 5dy;
+draw z3..z1..z2{left}..z.l{(dx,-dy)};
+endchar;
+
+arabchar(mim_spec_high, f_mid, 5, 10, 0); % mim after gim etc
+x1 = x2 - dx = x3 + dx = x.rr;
+y1 = y.rr; y2 = y3 - 3dy = y.l;
+%x1 = x2 - dx = x3 + 2dx = x.rr;
+%y1 = y.rr; y2 = y3 - 2dy = y.l;
+draw z3..tension 2..z2..tension 2..z1..z3..z.l{left};
+%draw z3..tension 2..z2..tension 1.5..z1..z3..z.l{left};
+r_con(1);
+endchar;
+
+%arabchar(mim_spec_long, f_mid, 9, 10, 0); % long mim after lam
+arabchar(mim_spec_long, f_mid, 9, 5, 0); % long mim after lam
+%x2 = x.r = x1 - 2dx; y1 = y.r = y2 - dy;
+x2 = x.r - dx = x1 - 2dx; y1 = y.r = y2 - dy;
+draw z.l{right}..z2..z1;
+r_con(2);
+endchar;
+
+arabchar(mim_spec_alif, f_mid, 8, 8, 3); % mim before alif
+x1 = x2 = x.l + 5dx; y1 + 3dy = y2 - 3dy = y.r;
+z3 = .5[z2, z.r];
+draw z.l{(4dx,-7dy)}..z1{(7dx,-4dy)};
+draw z1{(-7dx,4dy)}..z2{right}..z3{(dx,-6dy)}..z.r{right};
+endchar;
+
+arabchar(mim_lam_gim, f_mid, 6, 10, 2); % lam_mim over gim
+x1 - 2dx = x2 = x.r; y1 + dy = y2 = y.r + 2dy;
+draw z.l{(dx,dy)}..z2..z1;
+r_con(2);
+endchar;
+
+%%%%%%%%%%%%%% hah ligature %%%%%%%%%%%%%%%%%
+
+arabchar(hah_spec, f_end, 5, 8, 0);
+x1 + 2dx = x.r; y1 - 2dy = y.r;
+draw z.r{left}..z1..z.l{(-dx,-dy)};
+endchar;
+
+%arabchar(hah_spec, f_mid, 6, 5, 6); % sharp medial hah
+arabchar(hah_spec, f_mid, 6, 8, 6); % sharp medial hah
+x1 = x2 = x3 + 1.5dx = x.r - 2dx;
+y1 + 6dy = y2 - 2dy = y.r; y3 = y1 + 2dy;
+draw z1{up}..z.r{(dx,dy)};
+bow (z1, z3, z2); l_att(2);
+endchar;
+
+arabchar(hah_spec, f_beg, 5, 8, 2);
+x1 = x.r; x2 - 2dx = x.l;
+y1 = y2 = y.r + 2dy;
+draw z1..z2{up}; draw z2{down}..z.l{left};
+endchar;
+
+arabchar(hah_spec_lam, f_mid, 5, 15, 0); % hah after lam
+x2 = x3 + 1.5dx = x4 - 1.5dx = x.l + 3dx;
+x6 + dx = x5 - 3dx = x.l + 8dx;
+y2 = 2dy; y3 = y4 = 4dy; y6 = dy;
+draw z.rr{curl 0}..tension 1.5..z6..tension 2..z2..z3..z4..z2..z.l{left};
+r_con(rr);
+endchar;
+
+%%%%%%%%%%%%%% yah after sin %%%%%%%%%%%%%%%%%
+
+arabchar(yah_spec, f_end, 9, 5, 7); % final yah connected from above
+x.m := x.m + dx; x2 = x.r + 4dx;
+x3 = x.m; lft x4 = lft x5 + 1.5dx - pl = x.l;
+y2 - dy = y4 = y5 - 3dy = y3 + 3dy = -3dy;
+draw z.r{(8dx,-3dy)}..tension 1.5
+..z2{down}..tension 1.5..z3{left}..z4{up}..z5;
+endchar;
+
+arabchar(yah_h_spec, f_end, 11, 5, 7); % final yah with hook
+x.m := x.m + 2dx; x2 = x.r + 4dx;
+x3 = x.m; lft x4 = x5 - dx = x.r - 9dx;
+y2 - dy = y4 = y5 - 3dy = y3 + 3dy = -3dy;
+draw z.r{(8dx,-3dy)}..tension 1.5
+..z2{down}..tension 1.5..z3{left}..z4{up}..z5;
+x7 = x5 - 3dx; y7 = y5 - 5dy; draw z5--z7;
+endchar;
+
+%%%%%%%%%%%%%% ties %%%%%%%%%%%%%%%%%
+
+%arabchar(mm_to_b, f_mid, 6, 5, 6);
+%x1 = x.rr - 3dx; y1 = y.r + 2dy;
+%x2 = x.l; y.l - y2 = y.rr - y.r;
+%draw z2{(-dx,dy)}..z1..z.r{right};
+%r_con(rr);
+%endchar;
+
+arabchar(er_to_s, f_mid, 5, 5, 0);
+x1 + dx = x.l; x5 = x.r - 2dx;
+y1 - .5dy = y5 - 2dy = y.r;
+draw z1--z5; draw z5..z.r{right};
+endchar;
+
+arabchar(g_to_mb, f_mid, 8, 8, 6);
+z3 = 0.2[z.r,z.rr]; z1 = 0.9[z1,z3]; z2 = 0.8[z.ll,z.rr];
+draw z.l..controls z1 and z2..z.rr;
+endchar;
+
+endinput;
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Master/texmf-dist/fonts/source/public/arabtex/xnshspec.mf b/Master/texmf-dist/fonts/source/public/arabtex/xnshspec.mf
new file mode 100644
index 00000000000..97095b08d36
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/arabtex/xnshspec.mf
@@ -0,0 +1,202 @@
+%%%%%%%%%%%%%%%%%%%%%%% xnshspec.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Extended NASH Font
+% special characters
+% 15.07.98
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% (c) Klaus Lagally
+% Institut fuer Informatik
+% Universitaet Stuttgart
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown xnshbase: input xnshbase fi;
+
+%%%%%%%%%%%%%% very special characters %%%%%%%%%%%%%%%%%
+
+arabchar(space_spec, f_beg, 5, 8, 6);
+endchar;
+
+arabchar(space_spec, f_mid, 0, 8, 6);
+endchar;
+
+arabchar(tatwil, f_iso, 5, 5, 0);
+draw z.r--z.l;
+endchar;
+
+arabchar(tatwil, f_beg, 5, 5, 0);
+draw z.r--z.l;
+endchar;
+
+arabchar(tatwil, f_mid, 5, 5, 0);
+draw z.r--z.l;
+endchar;
+
+arabchar(tatwil, f_end, 5, 5, 0);
+draw z.r--z.l;
+endchar;
+
+arabchar(block, f_iso, 10, 12, 0); % block isoliert
+x1 = x2 = x.l + dx; x3 = x4 = x.r - dx;
+y1 = y4 = 10dy; y2 = y3 = 0;
+fill z1--z2--z3--z4--cycle;
+endchar;
+
+arabchar(block, f_beg, 10, 12, 0); % block initial
+x1 = x2 = x.l + dx; x3 = x4 = x.m;
+y1 = y4 = 10dy; y2 = y3 = 0;
+fill z1--z2--z3--z4--cycle;
+endchar;
+
+arabchar(block, f_mid, 10, 12, 0); % block medial
+x1 = x2 = x.l + dx; x3 = x4 = x.r - dx;
+y1 = y4 = 5dy; y2 = y3 = 0;
+fill z1--z2--z3--z4--cycle;
+endchar;
+
+arabchar(block, f_end, 10, 12, 0); % block final
+x1 = x2 = x.m; x3 = x4 = x.r - dx;
+%x1 = x2 = x.l + dx; x3 = x4 = x.r - dx;
+y1 = y4 = 10dy; y2 = y3 = 0;
+fill z1--z2--z3--z4--cycle;
+endchar;
+
+%%%%%%%%%%%%%% special characters %%%%%%%%%%%%%%%%%
+
+arabchar(".", 0, 2, 2, -1.5);
+x1 = x.m; y1 = dy;
+put_dot(1);
+endchar;
+
+arabchar(",", 0, 4, 10, 0);
+x1 = x2 = x.m; y1 = 6dy; y2 = dy;
+%x1 = x2 = x.m; y1 = 10dy; y2 = 5dy;
+draw z1{(-dx,-dy)}..z2{right};
+endchar;
+
+arabchar(";", 0, 4, 10, 0);
+x1 = x2 = x.m; y1 = 10dy; y2 = 5dy;
+draw z1{(-dx,-dy)}..z2{right};
+one_dot(1);
+endchar;
+
+arabchar(":", 0, 4, 10, 0);
+x1 = x2 = x.m; y1 = dy; y2 = 6dy;
+put_dot(1); put_dot(2);
+endchar;
+
+arabchar("!", 0, 4, 15, 0);
+x1 = x2 = x3 = x.m; y1 = dy; y2 = 4dy; y3 = 13dy;
+%x2a - x2 = x2 - x2b = .5dx; x3a - x3 = x3 - x3b = dx;
+x2a - x2 = x2 - x2b = .3px; x3a - x3 = x3 - x3b = .6px;
+y2a = y2b = y2; y3a = y3b = y3;
+put_dot(1);
+fill z2a--z3a--z3b--z2b--cycle;
+endchar;
+
+arabchar("?", 0, 7, 15, 0);
+x1 - 2dx = x3 + 2dx = x2 = x4 = x.m;
+y1 = y3 = 10dy; y2 = 13dy; y4 = 4dy;
+draw z1..z2{left}..z3..z4{(-4dx,-11dy)};
+one_dot(1);
+endchar;
+
+arabchar("$", 0, 6, 10, 5);
+%x1 = x2 = x.m; x3 = x5 = x.m + 2dx; x4 = x6 = x.m - 2dx;
+x1 = x2 = x.m; x3 = x5 = x.m + 3dx; x4 = x6 = x.m - 3dx;
+y1 = 8dy; y2 = -6dy; y3 = y4 = 3dy; y5 = y6 = -dy;
+draw z1--z2; draw z3..z4..z5..z6;
+endchar;
+
+arabchar("*", 0, 8, 10, 0);
+x1 = x2 = x.m; x3 = x5 = x.m + 3dx; x4 = x6 = x.m - 3dx;
+y1 = 7dy; y3 = y6 = 5dy; y4 = y5 = dy; y2 = -dy;
+draw z1--z2; draw z3--z4; draw z5--z6;
+endchar;
+
+arabchar("%", 0, 14, 10, 5);
+x1 = x5 = x6 = x.m + 4dx;
+x2 = x3 = x4 = x.m - 4dx;
+y1 = y3 = 8dy; y4 = 3dy; y5 = dy; y2 = y6 = -4dy;
+draw z3..z4..cycle; draw z5..z6..cycle;
+pickup dia_pen; draw z1--z2;
+endchar;
+
+arabchar("/", 0, 10, 10, 5);
+pickup dia_pen;
+x1 + 4dx = x2 - 4dx = x.m;
+y2 = 9dy; y1 = -6dy;
+draw z1--z2;
+endchar;
+
+arabchar(rquotes, 0, 8, 10, 5); % ``
+x1 = x3 = x2 + 2dx = x.m - dx;
+x4 = x6 = x5 + 2dx = x.m + 3dx;
+y1 = y4 = 5dy; y2 = y5 = dy; y3 = y6 = -3dy;
+draw z1..z2..z3; draw z4..z5..z6;
+endchar;
+
+arabchar(lquotes, 0, 8, 10, 5); % ''
+x1 = x3 = x2 - 2dx = x.m + dx;
+x4 = x6 = x5 - 2dx = x.m - 3dx;
+y1 = y4 = 5dy; y2 = y5 = dy; y3 = y6 = -3dy;
+draw z1..z2..z3; draw z4..z5..z6;
+endchar;
+
+arabchar("=", 0, 16, 10, 0);
+x5 = x7 = x.m - 7dx; x6 = x8 = x.m + 7dx;
+y5 = y6 = 3dy; y7 = y8 = -dy;
+draw z5--z6; draw z7--z8;
+endchar;
+
+arabchar("+", 0, 10, 10, 0);
+x1 = x2 = x3 + 4dx = x4 - 4dx = x.m;
+y1 = 5dy; y2 = -3dy; y3 = y4 = dy;
+draw z1--z2; draw z3--z4;
+endchar;
+
+arabchar("-", 0, 8, 10, 0);
+x1 + 3dx = x2 - 3dx = x.m;
+y1 = y2 = dy;
+%y1 = y2 = 4dy;
+draw z1--z2;
+endchar;
+
+arabchar("#", 0, 16, 10, 5);
+x1 = x4 = x3 - 4dx = x2 + 4dx = x.m;
+x5 = x7 = x.m - 7dx; x6 = x8 = x.m + 7dx;
+y1 = y3 = 7dy; y2 = y4 = -7dy;
+y5 = y6 = 2dy; y7 = y8 = -2dy;
+draw z5--z6; draw z7--z8;
+pickup dia_pen;
+draw z1--z2; draw z3--z4;
+endchar;
+
+arabchar("(", 0, 8, 10, 5);
+x1 = x2 = x.m + 3dx; x3 = x.m - 3dx;
+top y1 = 10dy; bot y2 = -7dy; y3 = .5[y1,y2];
+%top y1 = 15dy; bot y2 = -7dy; y3 = 4dy;
+draw z1..z3..z2;
+endchar;
+
+arabchar(")", 0, 8, 10, 5);
+x1 = x2 = x.m - 3dx; x3 = x.m + 3dx;
+top y1 = 10dy; bot y2 = -7dy; y3 = .5[y1,y2];
+draw z1..z3..z2;
+endchar;
+
+arabchar("[", 0, 6, 10, 5);
+x1 = x2 = x.m + 2dx; x3 = x4 = x.m - 2dx;
+y1 = y3 = 9dy; y2 = y4 = -6dy;
+%y1 = y3 = 14dy; y2 = y4 = -6dy;
+draw z1--z3--z4--z2;
+endchar;
+
+arabchar("]", 0, 6, 10, 5);
+x1 = x2 = x.m + 2dx; x3 = x4 = x.m - 2dx;
+y1 = y3 = 9dy; y2 = y4 = -6dy;
+draw z3--z1--z2--z4;
+endchar;
+
+endinput;
+%%%%%%%%%%%%%% EOF %%%%%%%%%%%%%%%%%
+
+
diff --git a/Master/texmf-dist/fonts/source/public/armenian/arssb10.mf b/Master/texmf-dist/fonts/source/public/armenian/arssb10.mf
new file mode 100644
index 00000000000..f9892f8ad0b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/arssb10.mf
@@ -0,0 +1,5376 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 arssb10.mf (Armenian SansSerif Bold 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,134FX#,747FY#,0FY#);
+"bacakanchakan";
+z1=(142FX,706FY);
+z2=(146FX,721FY);
+z3=(117FX,747FY);
+z4=(36FX,695FY);
+z5=(-41FX,695FY);
+z6=(-67FX,686FY);
+z7=(-120FX,628FY);
+z8=(-133FX,603FY);
+z9=(-106FX,578FY);
+z10=(-27FX,629FY);
+z11=(49FX,629FY);
+z12=(131FX,695FY);
+z13=(142FX,706FY);
+FuF (z1
+{2,4} .. {0,6}z2
+{0,15} .. {-17,0}z3
+{-26,0} .. {-5,-4}z4
+-- z5
+{-8,0} .. {-6,-6}z6
+-- z7
+{-7,-7} .. {0,-10}z8
+{0,-16} .. {15,0}z9
+{24,0} .. {3,2}z10
+-- z11
+{34,0} .. {9,11}z12
+{4,3} .. {3,5}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(34,473FX#,657FY#,0FY#);
+"quotedblright";
+z1=(254FX,461FY);
+z2=(294FX,575FY);
+z3=(294FX,658FY);
+z4=(195FX,658FY);
+z5=(195FX,562FY);
+z6=(213FX,562FY);
+z7=(192FX,461FY);
+z8=(91FX,461FY);
+z9=(130FX,575FY);
+z10=(130FX,658FY);
+z11=(31FX,658FY);
+z12=(31FX,562FY);
+z13=(49FX,562FY);
+z14=(28FX,461FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(35,502FX#,658FY#,10FY#);
+"numbersign";
+z1=(361FX,169FY);
+z2=(491FX,169FY);
+z3=(491FX,262FY);
+z4=(380FX,262FY);
+z5=(404FX,384FY);
+z6=(491FX,384FY);
+z7=(491FX,478FY);
+z8=(423FX,478FY);
+z9=(459FX,659FY);
+z10=(366FX,659FY);
+z11=(330FX,478FY);
+z12=(230FX,478FY);
+z13=(266FX,659FY);
+z14=(174FX,659FY);
+z15=(137FX,478FY);
+z16=(9FX,478FY);
+z17=(9FX,384FY);
+z18=(119FX,384FY);
+z19=(94FX,262FY);
+z20=(9FX,262FY);
+z21=(9FX,169FY);
+z22=(76FX,169FY);
+z23=(40FX,-11FY);
+z24=(133FX,-11FY);
+z25=(169FX,169FY);
+z26=(268FX,169FY);
+z27=(232FX,-11FY);
+z28=(326FX,-11FY);
+z29=(212FX,384FY);
+z30=(312FX,384FY);
+z31=(287FX,262FY);
+z32=(188FX,262FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+-- z26
+-- z27
+-- z28
+);
+FuF (z29
+-- z30
+-- z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(36,502FX#,707FY#,93FY#);
+"dollar";
+z1=(407FX,46FY);
+z2=(460FX,189FY);
+z3=(448FX,262FY);
+z4=(285FX,382FY);
+z5=(285FX,570FY);
+z6=(342FX,473FY);
+z7=(448FX,488FY);
+z8=(285FX,669FY);
+z9=(285FX,707FY);
+z10=(212FX,707FY);
+z11=(212FX,669FY);
+z12=(106FX,625FY);
+z13=(45FX,481FY);
+z14=(212FX,294FY);
+z15=(212FX,82FY);
+z16=(134FX,217FY);
+z17=(31FX,198FY);
+z18=(212FX,-15FY);
+z19=(212FX,-93FY);
+z20=(285FX,-93FY);
+z21=(285FX,-15FY);
+z22=(407FX,46FY);
+z23=(212FX,573FY);
+z24=(212FX,402FY);
+z25=(149FX,488FY);
+z26=(212FX,573FY);
+z27=(338FX,240FY);
+z28=(355FX,184FY);
+z29=(285FX,82FY);
+z30=(285FX,274FY);
+z31=(338FX,240FY);
+FuF (z1
+{36,38} .. {0,56}z2
+{0,27} .. {-8,23}z3
+{-29,78} .. {-72,19}z4
+-- z5
+{42,-17} .. {6,-42}z6
+-- z7
+{-15,103} .. {-101,15}z8
+-- z9
+-- z10
+-- z11
+{-45,-7} .. {-25,-24}z12
+{-41,-37} .. {0,-59}z13
+{0,-109} .. {96,-24}z14
+-- z15
+{-59,18} .. {-8,54}z16
+-- z17
+{11,-125} .. {122,-19}z18
+-- z19
+-- z20
+-- z21
+{50,6} .. {31,35}z22
+);
+FuF (z23
+-- z24
+{-39,16} .. {0,47}z25
+{0,41} .. {38,12}z26
+);
+FuF (z27
+{11,-13} .. {0,-24}z28
+{0,-46} .. {-44,-14}z29
+-- z30
+{27,-11} .. {9,-11}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(37,804FX#,658FY#,23FY#);
+"percent";
+z1=(706FX,23FY);
+z2=(706FX,287FY);
+z3=(599FX,334FY);
+z4=(453FX,159FY);
+z5=(494FX,23FY);
+z6=(599FX,-24FY);
+z7=(706FX,23FY);
+z8=(273FX,-24FY);
+z9=(626FX,659FY);
+z10=(530FX,659FY);
+z11=(175FX,-24FY);
+z12=(305FX,348FY);
+z13=(348FX,480FY);
+z14=(198FX,659FY);
+z15=(52FX,484FY);
+z16=(94FX,348FY);
+z17=(198FX,301FY);
+z18=(305FX,348FY);
+z19=(636FX,232FY);
+z20=(652FX,158FY);
+z21=(601FX,59FY);
+z22=(550FX,152FY);
+z23=(565FX,232FY);
+z24=(636FX,232FY);
+z25=(235FX,557FY);
+z26=(251FX,482FY);
+z27=(200FX,384FY);
+z28=(150FX,476FY);
+z29=(200FX,575FY);
+z30=(235FX,557FY);
+FuF (z1
+{58,63} .. {-58,63}z2
+{-28,31} .. {-43,0}z3
+{-100,0} .. {0,-89}z4
+{0,-58} .. {28,-31}z5
+{28,-31} .. {42,0}z6
+{43,0} .. {29,31}z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+{30,33} .. {0,55}z13
+{0,94} .. {-104,0}z14
+{-99,0} .. {0,-88}z15
+{1,-58} .. {28,-31}z16
+{27,-31} .. {40,0}z17
+{43,0} .. {28,31}z18
+);
+FuF (z19
+{9,-12} .. {0,-39}z20
+{0,-31} .. {-48,1}z21
+{-46,1} .. {0,33}z22
+{0,44} .. {9,11}z23
+{20,26} .. {20,-26}z24
+);
+FuF (z25
+{10,-12} .. {0,-39}z26
+{0,-33} .. {-49,0}z27
+{-46,0} .. {0,32}z28
+{0,34} .. {50,0}z29
+{14,0} .. {9,-13}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(38,697FX#,658FY#,20FY#);
+"ampersand";
+z1=(464FX,87FY);
+z2=(616FX,367FY);
+z3=(570FX,379FY);
+z4=(530FX,388FY);
+z5=(411FX,160FY);
+z6=(397FX,145FY);
+z7=(372FX,174FY);
+z8=(285FX,302FY);
+z9=(279FX,310FY);
+z10=(410FX,498FY);
+z11=(391FX,585FY);
+z12=(284FX,659FY);
+z13=(143FX,466FY);
+z14=(162FX,340FY);
+z15=(166FX,327FY);
+z16=(161FX,322FY);
+z17=(94FX,265FY);
+z18=(38FX,149FY);
+z19=(66FX,52FY);
+z20=(206FX,-20FY);
+z21=(386FX,27FY);
+z22=(532FX,-20FY);
+z23=(638FX,-4FY);
+z24=(645FX,14FY);
+z25=(645FX,88FY);
+z26=(594FX,76FY);
+z27=(464FX,87FY);
+z28=(246FX,396FY);
+z29=(232FX,481FY);
+z30=(233FX,522FY);
+z31=(277FX,572FY);
+z32=(316FX,507FY);
+z33=(246FX,396FY);
+z34=(188FX,232FY);
+z35=(197FX,239FY);
+z36=(203FX,245FY);
+z37=(207FX,238FY);
+z38=(310FX,98FY);
+z39=(327FX,79FY);
+z40=(334FX,100FY);
+z41=(207FX,68FY);
+z42=(138FX,150FY);
+z43=(171FX,216FY);
+z44=(189FX,232FY);
+FuF (z1
+{71,66} .. {17,97}z2
+-- z3
+-- z4
+{-28,-88} .. {-68,-68}z5
+{-6,-7} .. {-3,-3}z6
+-- z7
+{-33,40} .. {-23,46}z8
+{-2,3} .. {-2,2}z9
+{51,46} .. {0,76}z10
+{0,32} .. {-13,26}z11
+{-19,41} .. {-46,0}z12
+{-103,0} .. {0,-87}z13
+{0,-43} .. {11,-42}z14
+{2,-4} .. {1,-4}z15
+-- z16
+{-23,-19} .. {-22,-19}z17
+{-32,-28} .. {0,-44}z18
+{0,-36} .. {19,-28}z19
+{30,-43} .. {52,0}z20
+{74,0} .. {64,34}z21
+{43,-31} .. {54,0}z22
+{23,0} .. {19,11}z23
+{4,3} .. {0,10}z24
+-- z25
+-- z26
+{-46,-11} .. {-43,24}z27
+);
+FuF (z28
+{-8,29} .. {-2,30}z29
+{0,20} .. {1,8}z30
+{4,21} .. {24,0}z31
+{33,0} .. {0,-25}z32
+{0,-46} .. {-31,-30}z33
+);
+FuF (z34
+{2,1} .. {4,3}z35
+-- z36
+-- z37
+{29,-50} .. {38,-44}z38
+{3,-5} .. {2,-3}z39
+-- z40
+{-49,-22} .. {-56,0}z41
+{-41,0} .. {0,39}z42
+{0,30} .. {21,19}z43
+-- z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(39,263FX#,657FY#,0FY#);
+"apatharc";
+z1=(139FX,461FY);
+z2=(171FX,575FY);
+z3=(171FX,658FY);
+z4=(92FX,658FY);
+z5=(92FX,562FY);
+z6=(106FX,562FY);
+z7=(89FX,461FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+lbl (range 1 thru 7);
+endchar;
+
+beginchar(40,389FX#,749FY#,249FY#);
+"parenleft";
+z1=(266FX,-249FY);
+z2=(349FX,-249FY);
+z3=(237FX,-78FY);
+z4=(180FX,215FY);
+z5=(179FX,228FY);
+z6=(179FX,272FY);
+z7=(180FX,293FY);
+z8=(248FX,604FY);
+z9=(313FX,704FY);
+z10=(345FX,749FY);
+z11=(266FX,749FY);
+z12=(257FX,749FY);
+z13=(230FX,724FY);
+z14=(77FX,250FY);
+z15=(230FX,-225FY);
+z16=(257FX,-249FY);
+FuF (z1
+-- z2
+{-48,64} .. {-35,83}z3
+{-45,104} .. {-8,111}z4
+-- z5
+-- z6
+-- z7
+{4,114} .. {50,102}z8
+{19,37} .. {25,31}z9
+{7,7} .. {18,31}z10
+-- z11
+-- z12
+{-5,-3} .. {-14,-15}z13
+{-113,-123} .. {0,-170}z14
+{0,-172} .. {113,-127}z15
+{13,-14} .. {6,-3}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(41,389FX#,749FY#,249FY#);
+"parenright";
+z1=(291FX,55FY);
+z2=(310FX,251FY);
+z3=(157FX,725FY);
+z4=(130FX,749FY);
+z5=(121FX,749FY);
+z6=(40FX,749FY);
+z7=(64FX,715FY);
+z8=(73FX,704FY);
+z9=(94FX,678FY);
+z10=(151FX,577FY);
+z11=(207FX,284FY);
+z12=(208FX,272FY);
+z13=(208FX,228FY);
+z14=(207FX,206FY);
+z15=(204FX,147FY);
+z16=(64FX,-215FY);
+z17=(61FX,-218FY);
+z18=(38FX,-249FY);
+z19=(121FX,-249FY);
+z20=(130FX,-249FY);
+z21=(158FX,-224FY);
+z22=(291FX,55FY);
+FuF (z1
+{13,60} .. {0,71}z2
+{0,172} .. {-114,126}z3
+{-13,14} .. {-6,3}z4
+-- z5
+-- z6
+{19,-29} .. {3,-3}z7
+{3,-4} .. {2,-4}z8
+-- z9
+{24,-28} .. {15,-38}z10
+{44,-103} .. {7,-111}z11
+-- z12
+-- z13
+-- z14
+-- z15
+{-8,-129} .. {-85,-92}z16
+-- z17
+{-1,-1} .. {-21,-28}z18
+-- z19
+-- z20
+{6,3} .. {13,14}z21
+{68,76} .. {21,104}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(42,459FX#,689FY#,0FY#);
+"asterisk";
+z1=(304FX,485FY);
+z2=(379FX,525FY);
+z3=(400FX,563FY);
+z4=(354FX,610FY);
+z5=(335FX,605FY);
+z6=(293FX,576FY);
+z7=(269FX,558FY);
+z8=(272FX,596FY);
+z9=(273FX,619FY);
+z10=(274FX,641FY);
+z11=(230FX,689FY);
+z12=(197FX,676FY);
+z13=(185FX,632FY);
+z14=(186FX,619FY);
+z15=(189FX,558FY);
+z16=(165FX,576FY);
+z17=(127FX,602FY);
+z18=(122FX,605FY);
+z19=(104FX,610FY);
+z20=(58FX,563FY);
+z21=(79FX,525FY);
+z22=(154FX,485FY);
+z23=(79FX,445FY);
+z24=(70FX,438FY);
+z25=(58FX,408FY);
+z26=(123FX,365FY);
+z27=(141FX,378FY);
+z28=(189FX,412FY);
+z29=(186FX,374FY);
+z30=(186FX,352FY);
+z31=(184FX,329FY);
+z32=(228FX,281FY);
+z33=(261FX,294FY);
+z34=(273FX,339FY);
+z35=(273FX,351FY);
+z36=(269FX,412FY);
+z37=(293FX,395FY);
+z38=(317FX,377FY);
+z39=(336FX,364FY);
+z40=(354FX,361FY);
+z41=(400FX,409FY);
+z42=(388FX,438FY);
+z43=(304FX,485FY);
+FuF (z1
+-- z2
+{13,9} .. {0,18}z3
+{0,25} .. {-26,0}z4
+{-5,0} .. {-7,-2}z5
+{-14,-8} .. {-13,-9}z6
+-- z7
+-- z8
+-- z9
+-- z10
+{2,27} .. {-26,0}z11
+{-12,0} .. {-9,-9}z12
+{-13,-13} .. {1,-17}z13
+-- z14
+-- z15
+-- z16
+{-12,9} .. {-12,9}z17
+{-2,2} .. {-2,1}z18
+{-6,2} .. {-5,0}z19
+{-26,0} .. {0,-25}z20
+{0,-19} .. {13,-9}z21
+-- z22
+-- z23
+{-2,-2} .. {-4,-3}z24
+{-9,-10} .. {0,-11}z25
+{0,-34} .. {31,12}z26
+{6,3} .. {6,4}z27
+{44,31} .. {43,31}z28
+-- z29
+-- z30
+-- z31
+{-2,-26} .. {25,0}z32
+{13,0} .. {8,9}z33
+{14,13} .. {-2,18}z34
+-- z35
+-- z36
+-- z37
+-- z38
+{7,-3} .. {7,-4}z39
+{7,-2} .. {6,0}z40
+{26,0} .. {0,26}z41
+{0,11} .. {-9,9}z42
+{-22,17} .. {-3,2}z43
+);
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(43,537FX#,488FY#,31FY#);
+"plus";
+z1=(309FX,188FY);
+z2=(531FX,188FY);
+z3=(531FX,266FY);
+z4=(309FX,266FY);
+z5=(309FX,488FY);
+z6=(231FX,488FY);
+z7=(231FX,266FY);
+z8=(10FX,266FY);
+z9=(10FX,188FY);
+z10=(231FX,188FY);
+z11=(231FX,-32FY);
+z12=(309FX,-32FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,263FX#,78FY#,118FY#);
+"comma";
+z1=(165FX,-24FY);
+z2=(171FX,13FY);
+z3=(171FX,79FY);
+z4=(92FX,79FY);
+z5=(92FX,-17FY);
+z6=(106FX,-17FY);
+z7=(89FX,-118FY);
+z8=(140FX,-118FY);
+z9=(165FX,-24FY);
+FuF (z1
+{5,17} .. {0,17}z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{10,39} .. {7,27}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(45,422FX#,266FY#,0FY#);
+"miuthyun";
+z1=(45FX,188FY);
+z2=(378FX,188FY);
+z3=(378FX,266FY);
+z4=(45FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,263FX#,78FY#,0FY#);
+"period";
+z1=(92FX,0FY);
+z2=(171FX,0FY);
+z3=(171FX,79FY);
+z4=(92FX,79FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(47,251FX#,658FY#,11FY#);
+"slash";
+z1=(82FX,-11FY);
+z2=(256FX,658FY);
+z3=(170FX,658FY);
+z4=(-5FX,-11FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,503FX#,650FY#,11FY#);
+"zero";
+z1=(437FX,139FY);
+z2=(460FX,319FY);
+z3=(446FX,469FY);
+z4=(249FX,650FY);
+z5=(130FX,610FY);
+z6=(38FX,319FY);
+z7=(249FX,-11FY);
+z8=(437FX,139FY);
+z9=(322FX,513FY);
+z10=(354FX,319FY);
+z11=(322FX,126FY);
+z12=(249FX,82FY);
+z13=(143FX,319FY);
+z14=(248FX,557FY);
+z15=(322FX,513FY);
+FuF (z1
+{16,46} .. {0,74}z2
+{0,62} .. {-9,38}z3
+{-27,105} .. {-113,0}z4
+{-47,0} .. {-32,-27}z5
+{-81,-68} .. {0,-101}z6
+{0,-146} .. {179,0}z7
+{96,0} .. {29,91}z8
+);
+FuF (z9
+{20,-29} .. {0,-102}z10
+{0,-101} .. {-20,-30}z11
+{-22,-30} .. {-27,0}z12
+{-107,0} .. {0,67}z13
+{0,68} .. {106,0}z14
+{29,0} .. {21,-30}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(49,503FX#,650FY#,0FY#);
+"one";
+z1=(239FX,0FY);
+z2=(337FX,0FY);
+z3=(337FX,650FY);
+z4=(269FX,650FY);
+z5=(98FX,490FY);
+z6=(98FX,384FY);
+z7=(239FX,465FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-35,-75} .. {-69,-35}z5
+-- z6
+{50,21} .. {43,35}z7
+);
+lbl (range 1 thru 7);
+endchar;
+
+beginchar(50,503FX#,650FY#,0FY#);
+"two";
+z1=(27FX,0FY);
+z2=(455FX,0FY);
+z3=(455FX,103FY);
+z4=(174FX,103FY);
+z5=(271FX,195FY);
+z6=(387FX,306FY);
+z7=(455FX,463FY);
+z8=(399FX,597FY);
+z9=(252FX,650FY);
+z10=(105FX,601FY);
+z11=(40FX,443FY);
+z12=(147FX,431FY);
+z13=(175FX,528FY);
+z14=(250FX,557FY);
+z15=(349FX,465FY);
+z16=(317FX,383FY);
+z17=(37FX,73FY);
+z18=(27FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{27,35} .. {32,28}z5
+{54,46} .. {24,28}z6
+{39,45} .. {0,62}z7
+{0,53} .. {-37,36}z8
+{-37,36} .. {-60,0}z9
+{-60,0} .. {-38,-33}z10
+{-38,-34} .. {-7,-76}z11
+-- z12
+{0,53} .. {18,18}z13
+{19,19} .. {32,0}z14
+{53,0} .. {0,-58}z15
+{0,-24} .. {-22,-30}z16
+{-81,-112} .. {-48,-135}z17
+{-10,-28} .. {0,-30}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(51,503FX#,650FY#,11FY#);
+"three";
+z1=(400FX,49FY);
+z2=(462FX,197FY);
+z3=(371FX,353FY);
+z4=(432FX,474FY);
+z5=(241FX,650FY);
+z6=(112FX,604FY);
+z7=(43FX,462FY);
+z8=(147FX,443FY);
+z9=(243FX,557FY);
+z10=(327FX,476FY);
+z11=(295FX,411FY);
+z12=(194FX,390FY);
+z13=(181FX,286FY);
+z14=(251FX,300FY);
+z15=(354FX,195FY);
+z16=(245FX,82FY);
+z17=(139FX,205FY);
+z18=(37FX,191FY);
+z19=(103FX,41FY);
+z20=(244FX,-11FY);
+z21=(400FX,49FY);
+FuF (z1
+{41,40} .. {0,58}z2
+{0,69} .. {-62,28}z3
+{38,28} .. {0,49}z4
+{0,108} .. {-99,0}z5
+{-50,0} .. {-36,-31}z6
+{-35,-31} .. {-12,-69}z7
+-- z8
+{9,60} .. {68,0}z9
+{47,0} .. {0,-50}z10
+{0,-31} .. {-21,-14}z11
+{-37,-25} .. {-41,3}z12
+-- z13
+{41,12} .. {13,0}z14
+{60,0} .. {0,-62}z15
+{0,-63} .. {-62,0}z16
+{-73,0} .. {-12,63}z17
+-- z18
+{7,-70} .. {38,-35}z19
+{38,-35} .. {56,0}z20
+{62,0} .. {42,41}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(52,503FX#,647FY#,0FY#);
+"four";
+z1=(378FX,148FY);
+z2=(459FX,148FY);
+z3=(459FX,248FY);
+z4=(378FX,248FY);
+z5=(378FX,647FY);
+z6=(294FX,647FY);
+z7=(11FX,237FY);
+z8=(11FX,148FY);
+z9=(274FX,148FY);
+z10=(274FX,0FY);
+z11=(378FX,0FY);
+z12=(274FX,462FY);
+z13=(274FX,248FY);
+z14=(128FX,248FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,503FX#,638FY#,11FY#);
+"five";
+z1=(416FX,70FY);
+z2=(467FX,224FY);
+z3=(265FX,439FY);
+z4=(172FX,416FY);
+z5=(195FX,536FY);
+z6=(438FX,536FY);
+z7=(438FX,639FY);
+z8=(112FX,639FY);
+z9=(48FX,293FY);
+z10=(142FX,281FY);
+z11=(245FX,342FY);
+z12=(358FX,217FY);
+z13=(246FX,82FY);
+z14=(143FX,200FY);
+z15=(36FX,190FY);
+z16=(102FX,40FY);
+z17=(246FX,-11FY);
+z18=(416FX,70FY);
+FuF (z1
+{34,43} .. {0,59}z2
+{0,120} .. {-120,0}z3
+{-32,0} .. {-30,-15}z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{26,38} .. {47,0}z11
+{73,0} .. {0,-73}z12
+{0,-69} .. {-74,0}z13
+{-70,0} .. {-9,63}z14
+-- z15
+{7,-71} .. {38,-34}z16
+{38,-34} .. {58,0}z17
+{71,0} .. {42,54}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(54,503FX#,650FY#,11FY#);
+"six";
+z1=(436FX,101FY);
+z2=(462FX,215FY);
+z3=(405FX,370FY);
+z4=(269FX,431FY);
+z5=(139FX,378FY);
+z6=(143FX,412FY);
+z7=(260FX,557FY);
+z8=(351FX,459FY);
+z9=(453FX,467FY);
+z10=(391FX,606FY);
+z11=(265FX,650FY);
+z12=(34FX,304FY);
+z13=(96FX,64FY);
+z14=(258FX,-11FY);
+z15=(436FX,101FY);
+z16=(326FX,301FY);
+z17=(356FX,211FY);
+z18=(326FX,116FY);
+z19=(257FX,82FY);
+z20=(149FX,215FY);
+z21=(254FX,333FY);
+z22=(326FX,301FY);
+FuF (z1
+{17,35} .. {0,40}z2
+{0,62} .. {-38,41}z3
+{-37,40} .. {-53,0}z4
+{-48,0} .. {-35,-34}z5
+{1,12} .. {2,11}z6
+{9,64} .. {73,0}z7
+{63,0} .. {12,-53}z8
+-- z9
+{-9,67} .. {-34,30}z10
+{-33,30} .. {-50,0}z11
+{-190,0} .. {0,-158}z12
+{0,-108} .. {42,-51}z13
+{42,-50} .. {66,0}z14
+{78,0} .. {35,72}z15
+);
+FuF (z16
+{20,-22} .. {0,-39}z17
+{0,-42} .. {-20,-22}z18
+{-20,-23} .. {-26,0}z19
+{-69,0} .. {0,64}z20
+{0,63} .. {65,0}z21
+{29,0} .. {19,-21}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(55,503FX#,639FY#,0FY#);
+"seven";
+z1=(346FX,391FY);
+z2=(462FX,559FY);
+z3=(462FX,639FY);
+z4=(43FX,639FY);
+z5=(43FX,536FY);
+z6=(320FX,536FY);
+z7=(127FX,0FY);
+z8=(233FX,0FY);
+z9=(346FX,391FY);
+FuF (z1
+{38,69} .. {40,44}z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-109,-140} .. {0,-180}z7
+-- z8
+{0,133} .. {62,113}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(56,503FX#,650FY#,11FY#);
+"eight";
+z1=(404FX,47FY);
+z2=(463FX,191FY);
+z3=(372FX,351FY);
+z4=(439FX,473FY);
+z5=(386FX,599FY);
+z6=(249FX,650FY);
+z7=(113FX,600FY);
+z8=(61FX,476FY);
+z9=(127FX,351FY);
+z10=(37FX,193FY);
+z11=(250FX,-11FY);
+z12=(404FX,47FY);
+z13=(309FX,533FY);
+z14=(333FX,474FY);
+z15=(250FX,394FY);
+z16=(166FX,478FY);
+z17=(250FX,557FY);
+z18=(309FX,533FY);
+z19=(327FX,270FY);
+z20=(358FX,190FY);
+z21=(251FX,82FY);
+z22=(143FX,193FY);
+z23=(248FX,301FY);
+z24=(327FX,270FY);
+FuF (z1
+{39,39} .. {0,56}z2
+{0,70} .. {-60,32}z3
+{43,27} .. {0,52}z4
+{0,50} .. {-35,34}z5
+{-35,34} .. {-56,0}z6
+{-56,0} .. {-35,-34}z7
+{-35,-34} .. {0,-48}z8
+{0,-54} .. {44,-28}z9
+{-61,-30} .. {0,-69}z10
+{0,-125} .. {117,0}z11
+{63,0} .. {40,39}z12
+);
+FuF (z13
+{16,-16} .. {0,-23}z14
+{0,-48} .. {-46,0}z15
+{-49,0} .. {0,51}z16
+{0,47} .. {44,0}z17
+{24,0} .. {16,-16}z18
+);
+FuF (z19
+{20,-21} .. {0,-32}z20
+{0,-64} .. {-62,0}z21
+{-63,0} .. {0,65}z22
+{0,62} .. {60,0}z23
+{32,0} .. {21,-21}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(57,503FX#,650FY#,11FY#);
+"nine";
+z1=(359FX,262FY);
+z2=(349FX,201FY);
+z3=(234FX,82FY);
+z4=(147FX,181FY);
+z5=(47FX,171FY);
+z6=(108FX,33FY);
+z7=(233FX,-11FY);
+z8=(358FX,29FY);
+z9=(463FX,336FY);
+z10=(437FX,516FY);
+z11=(242FX,650FY);
+z12=(38FX,426FY);
+z13=(94FX,269FY);
+z14=(231FX,209FY);
+z15=(359FX,262FY);
+z16=(321FX,524FY);
+z17=(351FX,430FY);
+z18=(249FX,306FY);
+z19=(143FX,424FY);
+z20=(176FX,520FY);
+z21=(251FX,557FY);
+z22=(321FX,524FY);
+FuF (z1
+{-1,-20} .. {-5,-21}z2
+{-16,-62} .. {-71,0}z3
+{-61,0} .. {-9,55}z4
+-- z5
+{9,-67} .. {33,-29}z6
+{33,-30} .. {50,0}z7
+{47,0} .. {36,27}z8
+{92,69} .. {0,107}z9
+{0,77} .. {-18,43}z10
+{-35,83} .. {-87,0}z11
+{-126,0} .. {0,-124}z12
+{0,-64} .. {38,-41}z13
+{37,-40} .. {54,0}z14
+{48,0} .. {34,33}z15
+);
+FuF (z16
+{20,-22} .. {0,-41}z17
+{0,-66} .. {-70,0}z18
+{-66,0} .. {0,64}z19
+{0,40} .. {21,24}z20
+{22,25} .. {28,0}z21
+{27,0} .. {20,-22}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(58,263FX#,420FY#,0FY#);
+"colon";
+z1=(92FX,318FY);
+z2=(171FX,318FY);
+z3=(171FX,421FY);
+z4=(92FX,421FY);
+z5=(92FX,0FY);
+z6=(171FX,0FY);
+z7=(171FX,103FY);
+z8=(92FX,103FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(59,263FX#,420FY#,118FY#);
+"semicolon";
+z1=(92FX,316FY);
+z2=(171FX,316FY);
+z3=(171FX,421FY);
+z4=(92FX,421FY);
+z5=(165FX,-14FY);
+z6=(171FX,26FY);
+z7=(171FX,98FY);
+z8=(92FX,98FY);
+z9=(92FX,-7FY);
+z10=(106FX,-7FY);
+z11=(89FX,-118FY);
+z12=(140FX,-118FY);
+z13=(165FX,-14FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+{5,18} .. {0,19}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{10,42} .. {7,30}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(60,483FX#,417FY#,0FY#);
+"guillemotleft";
+z1=(340FX,31FY);
+z2=(432FX,31FY);
+z3=(320FX,224FY);
+z4=(432FX,418FY);
+z5=(340FX,418FY);
+z6=(206FX,224FY);
+z7=(169FX,224FY);
+z8=(279FX,418FY);
+z9=(188FX,418FY);
+z10=(53FX,224FY);
+z11=(188FX,31FY);
+z12=(278FX,31FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(61,537FX#,421FY#,0FY#);
+"equal";
+z1=(14FX,352FY);
+z2=(527FX,352FY);
+z3=(527FX,421FY);
+z4=(14FX,421FY);
+z5=(14FX,201FY);
+z6=(527FX,201FY);
+z7=(527FX,270FY);
+z8=(14FX,270FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,483FX#,417FY#,0FY#);
+"guillemotright";
+z1=(291FX,31FY);
+z2=(427FX,224FY);
+z3=(291FX,418FY);
+z4=(201FX,418FY);
+z5=(311FX,224FY);
+z6=(201FX,31FY);
+z7=(141FX,31FY);
+z8=(274FX,224FY);
+z9=(141FX,418FY);
+z10=(49FX,418FY);
+z11=(159FX,224FY);
+z12=(49FX,31FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(63,120FX#,731FY#,0FY#);
+"paruyg";
+z1=(54FX,580FY);
+z2=(69FX,638FY);
+z3=(-38FX,731FY);
+z4=(-144FX,619FY);
+z5=(-144FX,534FY);
+z6=(-94FX,534FY);
+z7=(-95FX,599FY);
+z8=(-33FX,682FY);
+z9=(15FX,631FY);
+z10=(1FX,597FY);
+z11=(-38FX,659FY);
+z12=(-61FX,633FY);
+z13=(-59FX,616FY);
+z14=(1FX,547FY);
+z15=(54FX,580FY);
+FuF (z1
+{10,17} .. {0,22}z2
+{0,59} .. {-55,0}z3
+{-68,0} .. {0,-65}z4
+-- z5
+-- z6
+{0,22} .. {0,22}z7
+{0,48} .. {58,0}z8
+{36,0} .. {0,-34}z9
+{0,-7} .. {-13,0}z10
+{-10,0} .. {-33,0}z11
+{-18,0} .. {0,-11}z12
+{0,-5} .. {1,-6}z13
+{7,-29} .. {37,0}z14
+{24,0} .. {12,21}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(64,900FX#,646FY#,186FY#);
+"at";
+z1=(790FX,-84FY);
+z2=(877FX,32FY);
+z3=(769FX,32FY);
+z4=(484FX,-94FY);
+z5=(141FX,211FY);
+z6=(473FX,555FY);
+z7=(755FX,307FY);
+z8=(659FX,115FY);
+z9=(610FX,92FY);
+z10=(596FX,104FY);
+z11=(608FX,165FY);
+z12=(672FX,464FY);
+z13=(566FX,464FY);
+z14=(556FX,420FY);
+z15=(439FX,476FY);
+z16=(207FX,194FY);
+z17=(373FX,-8FY);
+z18=(491FX,44FY);
+z19=(581FX,-9FY);
+z20=(759FX,81FY);
+z21=(848FX,306FY);
+z22=(805FX,470FY);
+z23=(476FX,646FY);
+z24=(241FX,584FY);
+z25=(48FX,204FY);
+z26=(485FX,-187FY);
+z27=(790FX,-84FY);
+z28=(519FX,325FY);
+z29=(525FX,279FY);
+z30=(511FX,200FY);
+z31=(389FX,85FY);
+z32=(338FX,111FY);
+z33=(315FX,189FY);
+z34=(444FX,383FY);
+z35=(519FX,325FY);
+FuF (z1
+{36,31} .. {26,54}z2
+-- z3
+{-65,-95} .. {-110,0}z4
+{-197,0} .. {0,212}z5
+{0,195} .. {199,0}z6
+{145,0} .. {0,-157}z7
+{0,-73} .. {-60,-42}z8
+{-24,-17} .. {-9,0}z9
+{-8,0} .. {0,8}z10
+{0,2} .. {8,40}z11
+-- z12
+-- z13
+-- z14
+{-30,35} .. {-46,0}z15
+{-137,0} .. {0,-123}z16
+{0,-96} .. {107,0}z17
+{45,0} .. {32,29}z18
+{12,-40} .. {37,0}z19
+{66,0} .. {53,59}z20
+{59,65} .. {0,84}z21
+{0,59} .. {-29,51}z22
+{-68,122} .. {-136,0}z23
+{-91,0} .. {-65,-42}z24
+{-125,-81} .. {0,-146}z25
+{0,-263} .. {246,0}z26
+{113,0} .. {87,77}z27
+);
+FuF (z28
+{4,-12} .. {0,-18}z29
+{0,-26} .. {-10,-26}z30
+{-17,-49} .. {-58,0}z31
+{-18,0} .. {-16,19}z32
+{-15,17} .. {0,36}z33
+{0,71} .. {83,0}z34
+{36,0} .. {10,-33}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(65,697FX#,651FY#,0FY#);
+"A";
+z1=(521FX,0FY);
+z2=(624FX,0FY);
+z3=(589FX,153FY);
+z4=(511FX,209FY);
+z5=(511FX,651FY);
+z6=(399FX,651FY);
+z7=(399FX,252FY);
+z8=(258FX,107FY);
+z9=(122FX,264FY);
+z10=(122FX,651FY);
+z11=(10FX,651FY);
+z12=(10FX,264FY);
+z13=(57FX,96FY);
+z14=(252FX,0FY);
+z15=(353FX,25FY);
+z16=(468FX,121FY);
+z17=(521FX,0FY);
+FuF (z1
+-- z2
+{0,70} .. {-24,37}z3
+{-20,31} .. {-32,5}z4
+-- z5
+-- z6
+-- z7
+{0,-58} .. {-58,0}z8
+{-97,0} .. {0,92}z9
+-- z10
+-- z11
+-- z12
+{0,-67} .. {31,-44}z13
+{44,-62} .. {75,0}z14
+{33,0} .. {34,17}z15
+{39,18} .. {21,40}z16
+{32,-5} .. {0,-86}z17
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(66,557FX#,634FY#,0FY#);
+"B";
+z1=(398FX,177FY);
+z2=(494FX,177FY);
+z3=(453FX,285FY);
+z4=(340FX,314FY);
+z5=(121FX,314FY);
+z6=(121FX,373FY);
+z7=(269FX,538FY);
+z8=(381FX,414FY);
+z9=(381FX,376FY);
+z10=(478FX,376FY);
+z11=(478FX,447FY);
+z12=(265FX,634FY);
+z13=(10FX,329FY);
+z14=(10FX,0FY);
+z15=(121FX,0FY);
+z16=(121FX,215FY);
+z17=(341FX,215FY);
+z18=(384FX,209FY);
+z19=(398FX,177FY);
+FuF (z1
+-- z2
+{0,55} .. {-28,21}z3
+{-27,20} .. {-48,0}z4
+-- z5
+-- z6
+{0,99} .. {100,0}z7
+{74,0} .. {0,-74}z8
+-- z9
+-- z10
+-- z11
+{0,125} .. {-112,0}z12
+{-196,0} .. {0,-183}z13
+-- z14
+-- z15
+-- z16
+-- z17
+{20,0} .. {9,-4}z18
+{11,-5} .. {0,-22}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(67,570FX#,651FY#,0FY#);
+"C";
+z1=(477FX,110FY);
+z2=(519FX,238FY);
+z3=(395FX,435FY);
+z4=(415FX,452FY);
+z5=(441FX,529FY);
+z6=(394FX,616FY);
+z7=(274FX,651FY);
+z8=(98FX,529FY);
+z9=(148FX,435FY);
+z10=(129FX,421FY);
+z11=(17FX,295FY);
+z12=(144FX,296FY);
+z13=(256FX,362FY);
+z14=(340FX,338FY);
+z15=(398FX,237FY);
+z16=(268FX,108FY);
+z17=(145FX,196FY);
+z18=(21FX,196FY);
+z19=(119FX,47FY);
+z20=(271FX,0FY);
+z21=(477FX,110FY);
+z22=(316FX,550FY);
+z23=(331FX,520FY);
+z24=(263FX,480FY);
+z25=(202FX,525FY);
+z26=(270FX,564FY);
+z27=(316FX,550FY);
+FuF (z1
+{28,38} .. {0,47}z2
+{0,79} .. {-71,32}z3
+{12,10} .. {1,1}z4
+{18,20} .. {0,30}z5
+{0,35} .. {-30,23}z6
+{-33,24} .. {-47,0}z7
+{-70,0} .. {0,-88}z8
+{0,-51} .. {33,-29}z9
+{-5,-4} .. {-8,-5}z10
+{-61,-37} .. {-35,-67}z11
+-- z12
+{35,48} .. {64,0}z13
+{33,0} .. {23,-16}z14
+{32,-21} .. {0,-40}z15
+{0,-77} .. {-74,0}z16
+{-81,0} .. {-34,65}z17
+-- z18
+{23,-74} .. {45,-32}z19
+{44,-31} .. {57,0}z20
+{77,0} .. {45,62}z21
+);
+FuF (z22
+{12,-10} .. {0,-11}z23
+{-1,-30} .. {-22,0}z24
+{-25,0} .. {-1,30}z25
+{3,30} .. {23,0}z26
+{19,0} .. {12,-9}z27
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(68,721FX#,651FY#,0FY#);
+"D";
+z1=(569FX,191FY);
+z2=(670FX,191FY);
+z3=(522FX,326FY);
+z4=(483FX,326FY);
+z5=(483FX,427FY);
+z6=(246FX,651FY);
+z7=(86FX,599FY);
+z8=(10FX,409FY);
+z9=(119FX,409FY);
+z10=(255FX,557FY);
+z11=(372FX,378FY);
+z12=(372FX,0FY);
+z13=(483FX,0FY);
+z14=(483FX,229FY);
+z15=(514FX,229FY);
+z16=(560FX,221FY);
+z17=(569FX,191FY);
+FuF (z1
+-- z2
+{0,101} .. {-93,0}z3
+-- z4
+-- z5
+{0,140} .. {-136,0}z6
+{-63,0} .. {-43,-35}z7
+{-51,-42} .. {0,-89}z8
+-- z9
+{0,108} .. {107,0}z10
+{98,0} .. {0,-78}z11
+-- z12
+-- z13
+-- z14
+-- z15
+{23,0} .. {8,-5}z16
+{7,-3} .. {0,-22}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(69,573FX#,643FY#,0FY#);
+"E";
+z1=(430FX,348FY);
+z2=(523FX,348FY);
+z3=(486FX,446FY);
+z4=(349FX,469FY);
+z5=(120FX,469FY);
+z6=(120FX,644FY);
+z7=(10FX,644FY);
+z8=(10FX,278FY);
+z9=(53FX,88FY);
+z10=(239FX,0FY);
+z11=(461FX,208FY);
+z12=(461FX,269FY);
+z13=(365FX,269FY);
+z14=(365FX,226FY);
+z15=(340FX,129FY);
+z16=(238FX,96FY);
+z17=(189FX,102FY);
+z18=(120FX,258FY);
+z19=(120FX,380FY);
+z20=(342FX,380FY);
+z21=(416FX,375FY);
+z22=(430FX,348FY);
+FuF (z1
+-- z2
+{0,52} .. {-26,17}z3
+{-26,16} .. {-64,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+{0,-79} .. {29,-48}z9
+{43,-69} .. {76,0}z10
+{129,0} .. {0,140}z11
+-- z12
+-- z13
+-- z14
+{0,-45} .. {-16,-21}z15
+{-26,-33} .. {-37,0}z16
+{-21,0} .. {-12,3}z17
+{-61,21} .. {0,54}z18
+-- z19
+-- z20
+{41,0} .. {10,-3}z21
+{7,-3} .. {3,-20}z22
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(70,694FX#,660FY#,0FY#);
+"F";
+z1=(535FX,55FY);
+z2=(611FX,223FY);
+z3=(380FX,472FY);
+z4=(380FX,660FY);
+z5=(214FX,660FY);
+z6=(88FX,555FY);
+z7=(158FX,444FY);
+z8=(270FX,402FY);
+z9=(270FX,88FY);
+z10=(263FX,88FY);
+z11=(97FX,183FY);
+z12=(10FX,183FY);
+z13=(43FX,98FY);
+z14=(268FX,0FY);
+z15=(317FX,0FY);
+z16=(369FX,0FY);
+z17=(535FX,55FY);
+z18=(270FX,582FY);
+z19=(270FX,492FY);
+z20=(187FX,547FY);
+z21=(193FX,569FY);
+z22=(270FX,582FY);
+z23=(479FX,326FY);
+z24=(517FX,214FY);
+z25=(382FX,88FY);
+z26=(380FX,88FY);
+z27=(380FX,382FY);
+z28=(479FX,326FY);
+FuF (z1
+{51,41} .. {0,70}z2
+{0,134} .. {-126,18}z3
+-- z4
+-- z5
+{-61,0} .. {0,-68}z6
+{0,-49} .. {46,-25}z7
+-- z8
+-- z9
+-- z10
+{-68,0} .. {-40,52}z11
+-- z12
+{0,-38} .. {20,-24}z13
+{55,-66} .. {85,0}z14
+-- z15
+-- z16
+{65,0} .. {45,37}z17
+);
+FuF (z18
+-- z19
+{-25,8} .. {0,33}z20
+{0,15} .. {2,2}z21
+{9,7} .. {44,0}z22
+);
+FuF (z23
+{25,-28} .. {0,-47}z24
+{0,-88} .. {-83,0}z25
+-- z26
+-- z27
+{43,-11} .. {23,-27}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(71,723FX#,651FY#,0FY#);
+"G";
+z1=(485FX,249FY);
+z2=(672FX,251FY);
+z3=(672FX,333FY);
+z4=(485FX,334FY);
+z5=(485FX,467FY);
+z6=(247FX,651FY);
+z7=(10FX,436FY);
+z8=(228FX,242FY);
+z9=(374FX,254FY);
+z10=(372FX,0FY);
+z11=(485FX,0FY);
+z12=(340FX,536FY);
+z13=(375FX,428FY);
+z14=(263FX,329FY);
+z15=(119FX,437FY);
+z16=(247FX,557FY);
+z17=(340FX,536FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,143} .. {-124,0}z6
+{-127,0} .. {0,-136}z7
+{0,-137} .. {131,0}z8
+{51,0} .. {49,12}z9
+-- z10
+-- z11
+);
+FuF (z12
+{21,-16} .. {0,-58}z13
+{0,-82} .. {-78,0}z14
+{-83,0} .. {0,101}z15
+{0,88} .. {83,0}z16
+{47,0} .. {16,-13}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(72,672FX#,682FY#,17FY#);
+"H";
+z1=(-8FX,482FY);
+z2=(621FX,-17FY);
+z3=(621FX,136FY);
+z4=(221FX,438FY);
+z5=(541FX,519FY);
+z6=(541FX,594FY);
+z7=(506FX,630FY);
+z8=(328FX,682FY);
+z9=(420FX,596FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(73,473FX#,651FY#,0FY#);
+"I";
+z1=(336FX,183FY);
+z2=(443FX,183FY);
+z3=(443FX,312FY);
+z4=(255FX,477FY);
+z5=(118FX,427FY);
+z6=(118FX,651FY);
+z7=(10FX,651FY);
+z8=(10FX,0FY);
+z9=(118FX,0FY);
+z10=(118FX,253FY);
+z11=(251FX,369FY);
+z12=(336FX,296FY);
+FuF (z1
+
+-- z2
+-- z3
+{0,106} .. {-92,0}z4
+{-48,0} .. {-37,-31}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,66} .. {59,0}z11
+{44,0} .. {0,-50}z12
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(74,637FX#,646FY#,15FY#);
+"J";
+z1=(480FX,-16FY);
+z2=(592FX,-16FY);
+z3=(545FX,95FY);
+z4=(371FX,129FY);
+z5=(345FX,129FY);
+z6=(562FX,423FY);
+z7=(309FX,647FY);
+z8=(49FX,397FY);
+z9=(200FX,236FY);
+z10=(243FX,171FY);
+z11=(197FX,129FY);
+z12=(102FX,129FY);
+z13=(102FX,162FY);
+z14=(10FX,162FY);
+z15=(10FX,-1FY);
+z16=(101FX,-1FY);
+z17=(101FX,33FY);
+z18=(353FX,33FY);
+z19=(463FX,22FY);
+z20=(480FX,-16FY);
+z21=(433FX,455FY);
+z22=(444FX,408FY);
+z23=(328FX,244FY);
+z24=(198FX,352FY);
+z25=(169FX,397FY);
+z26=(213FX,487FY);
+z27=(320FX,539FY);
+z28=(433FX,455FY);
+FuF (z1
+-- z2
+{0,57} .. {-32,21}z3
+{-36,23} .. {-79,0}z4
+-- z5
+{99,78} .. {0,145}z6
+{0,133} .. {-123,0}z7
+{-113,0} .. {0,-115}z8
+{0,-82} .. {58,-40}z9
+{31,-22} .. {0,-20}z10
+{0,-29} .. {-21,-8}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+{56,0} .. {18,-7}z19
+{13,-5} .. {0,-26}z20
+);
+FuF (z21
+{7,-18} .. {0,-13}z22
+{0,-57} .. {-45,-29}z23
+{-25,57} .. {-49,31}z24
+{-22,14} .. {0,16}z25
+{0,27} .. {31,33}z26
+{34,35} .. {38,0}z27
+{56,0} .. {19,-51}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(75,536FX#,648FY#,0FY#);
+"K";
+z1=(362FX,0FY);
+z2=(484FX,0FY);
+z3=(484FX,482FY);
+z4=(363FX,482FY);
+z5=(363FX,335FY);
+z6=(246FX,253FY);
+z7=(120FX,359FY);
+z8=(120FX,648FY);
+z9=(10FX,648FY);
+z10=(10FX,392FY);
+z11=(249FX,145FY);
+z12=(362FX,172FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-75} .. {-62,0}z6
+{-69,0} .. {0,80}z7
+-- z8
+-- z9
+-- z10
+{0,-164} .. {163,0}z11
+{41,0} .. {34,24}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(76,449FX#,646FY#,66FY#);
+"L";
+z1=(296FX,-67FY);
+z2=(397FX,-67FY);
+z3=(341FX,67FY);
+z4=(224FX,96FY);
+z5=(118FX,96FY);
+z6=(118FX,647FY);
+z7=(10FX,647FY);
+z8=(10FX,-3FY);
+z9=(193FX,-3FY);
+z10=(266FX,-9FY);
+z11=(296FX,-67FY);
+FuF (z1
+-- z2
+{0,68} .. {-38,26}z3
+{-30,20} .. {-47,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{37,0} .. {12,-4}z10
+{21,-7} .. {0,-38}z11
+);
+lbl (range 1 thru 11);
+endchar;
+
+beginchar(77,733FX#,646FY#,0FY#);
+"M";
+z1=(584FX,502FY);
+z2=(681FX,502FY);
+z3=(538FX,647FY);
+z4=(390FX,647FY);
+z5=(390FX,288FY);
+z6=(352FX,132FY);
+z7=(248FX,103FY);
+z8=(120FX,276FY);
+z9=(120FX,647FY);
+z10=(10FX,647FY);
+z11=(10FX,279FY);
+z12=(253FX,0FY);
+z13=(500FX,283FY);
+z14=(500FX,549FY);
+z15=(533FX,549FY);
+z16=(584FX,502FY);
+FuF (z1
+-- z2
+{0,103} .. {-99,0}z3
+-- z4
+-- z5
+{0,-81} .. {-24,-25}z6
+{-17,-18} .. {-54,0}z7
+{-102,0} .. {0,88}z8
+-- z9
+-- z10
+-- z11
+{0,-163} .. {178,0}z12
+{187,0} .. {0,177}z13
+-- z14
+-- z15
+{39,0} .. {0,-43}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(78,753FX#,652FY#,0FY#);
+"N";
+z1=(628FX,53FY);
+z2=(701FX,231FY);
+z3=(701FX,346FY);
+z4=(591FX,346FY);
+z5=(591FX,227FY);
+z6=(464FX,97FY);
+z7=(335FX,271FY);
+z8=(335FX,572FY);
+z9=(246FX,572FY);
+z10=(150FX,591FY);
+z11=(135FX,652FY);
+z12=(29FX,652FY);
+z13=(204FX,478FY);
+z14=(224FX,478FY);
+z15=(224FX,281FY);
+z16=(460FX,0FY);
+z17=(628FX,53FY);
+FuF (z1
+{49,40} .. {0,77}z2
+-- z3
+-- z4
+-- z5
+{0,-90} .. {-91,0}z6
+{-97,0} .. {0,82}z7
+-- z8
+-- z9
+{-52,0} .. {-14,12}z10
+{-9,7} .. {0,40}z11
+-- z12
+{0,-118} .. {121,0}z13
+-- z14
+-- z15
+{0,-150} .. {168,0}z16
+{69,0} .. {43,36}z17
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(79,544FX#,646FY#,0FY#);
+"O";
+z1=(383FX,0FY);
+z2=(491FX,0FY);
+z3=(491FX,411FY);
+z4=(445FX,550FY);
+z5=(243FX,646FY);
+z6=(82FX,583FY);
+z7=(9FX,377FY);
+z8=(9FX,0FY);
+z9=(118FX,0FY);
+z10=(118FX,407FY);
+z11=(251FX,542FY);
+z12=(335FX,511FY);
+z13=(383FX,421FY);
+FuF (z1
+-- z2
+-- z3
+{0,53} .. {-31,40}z4
+{-46,58} .. {-73,0}z5
+{-64,0} .. {-43,-42}z6
+{-49,-49} .. {0,-88}z7
+-- z8
+-- z9
+-- z10
+{0,77} .. {75,0}z11
+{28,0} .. {28,-21}z12
+{33,-25} .. {0,-36}z13
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(80,671FX#,645FY#,0FY#);
+"P";
+z1=(512FX,0FY);
+z2=(618FX,0FY);
+z3=(618FX,372FY);
+z4=(565FX,556FY);
+z5=(324FX,645FY);
+z6=(10FX,358FY);
+z7=(10FX,337FY);
+z8=(114FX,337FY);
+z9=(274FX,555FY);
+z10=(274FX,180FY);
+z11=(384FX,180FY);
+z12=(384FX,555FY);
+z13=(512FX,375FY);
+FuF (z1
+-- z2
+-- z3
+{0,76} .. {-36,46}z4
+{-59,75} .. {-88,0}z5
+{-193,0} .. {0,-203}z6
+-- z7
+-- z8
+{0,119} .. {131,6}z9
+-- z10
+-- z11
+-- z12
+{103,-6} .. {0,-94}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(81,646FX#,642FY#,0FY#);
+"Q";
+z1=(501FX,73FY);
+z2=(608FX,73FY);
+z3=(584FX,169FY);
+z4=(424FX,209FY);
+z5=(240FX,209FY);
+z6=(240FX,269FY);
+z7=(263FX,251FY);
+z8=(334FX,231FY);
+z9=(580FX,443FY);
+z10=(364FX,643FY);
+z11=(130FX,420FY);
+z12=(130FX,209FY);
+z13=(14FX,209FY);
+z14=(14FX,121FY);
+z15=(130FX,121FY);
+z16=(130FX,5FY);
+z17=(240FX,5FY);
+z18=(240FX,121FY);
+z19=(420FX,121FY);
+z20=(488FX,116FY);
+z21=(501FX,73FY);
+z22=(436FX,511FY);
+z23=(468FX,436FY);
+z24=(363FX,327FY);
+z25=(239FX,427FY);
+z26=(359FX,542FY);
+z27=(436FX,511FY);
+FuF (z1
+-- z2
+{0,49} .. {-17,19}z3
+{-35,42} .. {-49,0}z4
+-- z5
+-- z6
+-- z7
+{23,-13} .. {24,0}z8
+{126,0} .. {0,138}z9
+{0,121} .. {-116,0}z10
+{-138,0} .. {0,-142}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{40,0} .. {7,-3}z20
+{7,-2} .. {0,-35}z21
+);
+FuF (z22
+{22,-20} .. {0,-30}z23
+{0,-58} .. {-59,0}z24
+{-58,0} .. {0,66}z25
+{0,66} .. {65,0}z26
+{30,0} .. {22,-21}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(82,508FX#,651FY#,0FY#);
+"R";
+z1=(349FX,357FY);
+z2=(457FX,357FY);
+z3=(457FX,468FY);
+z4=(245FX,651FY);
+z5=(10FX,385FY);
+z6=(10FX,0FY);
+z7=(118FX,0FY);
+z8=(118FX,352FY);
+z9=(250FX,547FY);
+z10=(349FX,442FY);
+FuF (z1
+-- z2
+-- z3
+{0,130} .. {-115,0}z4
+{-151,0} .. {0,-146}z5
+-- z6
+-- z7
+-- z8
+{0,97} .. {113,0}z9
+{72,0} .. {0,-77}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(83,545FX#,649FY#,0FY#);
+"S";
+z1=(449FX,102FY);
+z2=(493FX,290FY);
+z3=(493FX,650FY);
+z4=(384FX,650FY);
+z5=(384FX,270FY);
+z6=(242FX,113FY);
+z7=(119FX,286FY);
+z8=(119FX,650FY);
+z9=(10FX,650FY);
+z10=(10FX,286FY);
+z11=(245FX,0FY);
+z12=(449FX,102FY);
+FuF (z1
+{30,48} .. {0,77}z2
+-- z3
+-- z4
+-- z5
+{0,-103} .. {-100,0}z6
+{-99,0} .. {0,88}z7
+-- z8
+-- z9
+-- z10
+{0,-165} .. {173,0}z11
+{82,0} .. {45,75}z12
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(84,591FX#,646FY#,10FY#);
+"T";
+z1=(517FX,87FY);
+z2=(546FX,186FY);
+z3=(435FX,347FY);
+z4=(187FX,427FY);
+z5=(169FX,468FY);
+z6=(291FX,544FY);
+z7=(422FX,427FY);
+z8=(527FX,435FY);
+z9=(519FX,505FY);
+z10=(287FX,646FY);
+z11=(172FX,624FY);
+z12=(62FX,464FY);
+z13=(68FX,420FY);
+z14=(378FX,251FY);
+z15=(439FX,179FY);
+z16=(306FX,92FY);
+z17=(220FX,108FY);
+z18=(142FX,232FY);
+z19=(40FX,224FY);
+z20=(75FX,92FY);
+z21=(310FX,-10FY);
+z22=(517FX,87FY);
+FuF (z1
+{19,31} .. {0,35}z2
+{0,75} .. {-67,31}z3
+{-60,28} .. {-31,30}z4
+{-12,11} .. {0,17}z5
+{0,64} .. {46,0}z6
+{85,0} .. {8,-87}z7
+-- z8
+{0,34} .. {-5,18}z9
+{-34,104} .. {-101,0}z10
+{-41,0} .. {-36,-15}z11
+{-64,-28} .. {0,-71}z12
+{0,-15} .. {4,-14}z13
+{38,-133} .. {104,-40}z14
+{33,-13} .. {0,-40}z15
+{0,-67} .. {-53,0}z16
+{-33,0} .. {-25,11}z17
+{-59,26} .. {-7,59}z18
+-- z19
+{0,-51} .. {28,-43}z20
+{54,-82} .. {92,0}z21
+{77,0} .. {44,69}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(85,1092FX#,652FY#,0FY#);
+"U";
+z1=(878FX,186FY);
+z2=(1040FX,186FY);
+z3=(1040FX,281FY);
+z4=(990FX,281FY);
+z5=(990FX,285FY);
+z6=(770FX,481FY);
+z7=(653FX,456FY);
+z8=(653FX,652FY);
+z9=(539FX,652FY);
+z10=(539FX,0FY);
+z11=(653FX,0FY);
+z12=(653FX,286FY);
+z13=(768FX,378FY);
+z14=(878FX,263FY);
+z15=(396FX,0FY);
+z16=(508FX,0FY);
+z17=(508FX,411FY);
+z18=(460FX,550FY);
+z19=(251FX,646FY);
+z20=(85FX,583FY);
+z21=(9FX,377FY);
+z22=(9FX,0FY);
+z23=(121FX,0FY);
+z24=(121FX,407FY);
+z25=(260FX,542FY);
+z26=(346FX,511FY);
+z27=(396FX,421FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,143} .. {-135,0}z6
+{-41,0} .. {-35,-23}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,73} .. {65,0}z13
+{86,0} .. {0,-84}z14
+);
+FuF (z15
+-- z16
+-- z17
+{0,53} .. {-32,39}z18
+{-48,58} .. {-76,0}z19
+{-66,0} .. {-44,-43}z20
+{-51,-49} .. {0,-88}z21
+-- z22
+-- z23
+-- z24
+{0,77} .. {79,0}z25
+{28,0} .. {29,-21}z26
+{34,-24} .. {0,-36}z27
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(86,736FX#,646FY#,67FY#);
+"V";
+z1=(591FX,-68FY);
+z2=(696FX,-68FY);
+z3=(631FX,66FY);
+z4=(501FX,95FY);
+z5=(488FX,95FY);
+z6=(488FX,647FY);
+z7=(364FX,647FY);
+z8=(364FX,312FY);
+z9=(246FX,216FY);
+z10=(147FX,249FY);
+z11=(121FX,390FY);
+z12=(121FX,488FY);
+z13=(10FX,488FY);
+z14=(10FX,358FY);
+z15=(231FX,114FY);
+z16=(364FX,143FY);
+z17=(364FX,-3FY);
+z18=(503FX,-3FY);
+z19=(573FX,-16FY);
+z20=(591FX,-68FY);
+FuF (z1
+-- z2
+{0,68} .. {-43,25}z3
+{-34,20} .. {-53,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+{0,-74} .. {-64,0}z9
+{-53,0} .. {-15,20}z10
+{-16,22} .. {0,73}z11
+-- z12
+-- z13
+-- z14
+{0,-148} .. {161,0}z15
+{49,0} .. {44,20}z16
+-- z17
+-- z18
+{37,0} .. {11,-8}z19
+{8,-6} .. {4,-35}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(87,547FX#,652FY#,0FY#);
+"W";
+z1=(338FX,186FY);
+z2=(496FX,186FY);
+z3=(496FX,281FY);
+z4=(447FX,281FY);
+z5=(447FX,285FY);
+z6=(234FX,481FY);
+z7=(121FX,456FY);
+z8=(121FX,652FY);
+z9=(10FX,652FY);
+z10=(10FX,0FY);
+z11=(121FX,0FY);
+z12=(121FX,286FY);
+z13=(232FX,378FY);
+z14=(338FX,263FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,143} .. {-131,0}z6
+{-40,0} .. {-34,-23}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,73} .. {62,0}z13
+{84,0} .. {0,-84}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(88,654FX#,648FY#,0FY#);
+"X";
+z1=(541FX,156FY);
+z2=(602FX,318FY);
+z3=(602FX,477FY);
+z4=(492FX,477FY);
+z5=(492FX,333FY);
+z6=(476FX,239FY);
+z7=(415FX,212FY);
+z8=(345FX,242FY);
+z9=(329FX,339FY);
+z10=(329FX,477FY);
+z11=(120FX,477FY);
+z12=(120FX,648FY);
+z13=(10FX,648FY);
+z14=(10FX,0FY);
+z15=(120FX,0FY);
+z16=(120FX,379FY);
+z17=(219FX,379FY);
+z18=(219FX,334FY);
+z19=(410FX,105FY);
+z20=(541FX,156FY);
+FuF (z1
+{42,39} .. {0,68}z2
+-- z3
+-- z4
+-- z5
+{0,-47} .. {-10,-17}z6
+{-10,-17} .. {-32,0}z7
+{-38,0} .. {-11,19}z8
+{-10,16} .. {0,49}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+{0,-121} .. {135,0}z19
+{52,0} .. {35,34}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(89,600FX#,663FY#,0FY#);
+"Y";
+z1=(456FX,41FY);
+z2=(534FX,202FY);
+z3=(439FX,362FY);
+z4=(499FX,495FY);
+z5=(255FX,664FY);
+z6=(133FX,635FY);
+z7=(36FX,485FY);
+z8=(75FX,468FY);
+z9=(103FX,468FY);
+z10=(119FX,468FY);
+z11=(142FX,468FY);
+z12=(165FX,532FY);
+z13=(266FX,565FY);
+z14=(387FX,507FY);
+z15=(361FX,422FY);
+z16=(136FX,396FY);
+z17=(136FX,430FY);
+z18=(88FX,430FY);
+z19=(49FX,427FY);
+z20=(49FX,278FY);
+z21=(135FX,278FY);
+z22=(135FX,309FY);
+z23=(248FX,309FY);
+z24=(424FX,195FY);
+z25=(291FX,105FY);
+z26=(184FX,131FY);
+z27=(152FX,220FY);
+z28=(38FX,218FY);
+z29=(299FX,0FY);
+z30=(456FX,41FY);
+FuF (z1
+{53,35} .. {0,71}z2
+{0,73} .. {-57,38}z3
+{40,35} .. {0,55}z4
+{0,137} .. {-107,0}z5
+{-46,0} .. {-35,-19}z6
+{-53,-29} .. {0,-63}z7
+{0,-1} .. {29,-1}z8
+{16,0} .. {3,0}z9
+-- z10
+-- z11
+{0,32} .. {16,16}z12
+{22,21} .. {46,0}z13
+{33,0} .. {0,-50}z14
+{0,-34} .. {-25,-25}z15
+{-36,-37} .. {-35,0}z16
+-- z17
+-- z18
+{-12,0} .. {-18,-2}z19
+-- z20
+-- z21
+-- z22
+-- z23
+{79,1} .. {0,-101}z24
+{0,-80} .. {-63,0}z25
+{-50,0} .. {-22,17}z26
+{-21,17} .. {0,48}z27
+-- z28
+{0,-171} .. {147,0}z29
+{63,0} .. {41,28}z30
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(90,637FX#,648FY#,37FY#);
+"Z";
+z1=(336FX,236FY);
+z2=(199FX,125FY);
+z3=(102FX,125FY);
+z4=(102FX,169FY);
+z5=(10FX,169FY);
+z6=(10FX,-2FY);
+z7=(102FX,-2FY);
+z8=(102FX,31FY);
+z9=(319FX,31FY);
+z10=(457FX,20FY);
+z11=(487FX,-38FY);
+z12=(599FX,-38FY);
+z13=(531FX,98FY);
+z14=(356FX,125FY);
+z15=(564FX,441FY);
+z16=(323FX,648FY);
+z17=(71FX,428FY);
+z18=(150FX,289FY);
+z19=(308FX,234FY);
+z20=(336FX,236FY);
+z21=(410FX,517FY);
+z22=(447FX,438FY);
+z23=(312FX,334FY);
+z24=(267FX,342FY);
+z25=(185FX,443FY);
+z26=(314FX,555FY);
+z27=(410FX,517FY);
+FuF (z1
+{-41,-42} .. {-48,-33}z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{73,0} .. {20,-7}z10
+{20,-6} .. {0,-39}z11
+-- z12
+{0,73} .. {-46,21}z13
+{-35,16} .. {-81,2}z14
+{80,65} .. {0,107}z15
+{0,125} .. {-113,0}z16
+{-135,0} .. {0,-150}z17
+{0,-54} .. {51,-39}z18
+{48,-36} .. {57,0}z19
+{9,0} .. {9,1}z20
+);
+FuF (z21
+{25,-23} .. {0,-29}z22
+{0,-78} .. {-66,0}z23
+{-14,0} .. {-16,5}z24
+{-49,14} .. {0,55}z25
+{0,77} .. {71,0}z26
+{38,0} .. {27,-25}z27
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(91,289FX#,749FY#,249FY#);
+"bracketleft";
+z1=(100FX,-249FY);
+z2=(266FX,-249FY);
+z3=(266FX,-153FY);
+z4=(192FX,-153FY);
+z5=(192FX,653FY);
+z6=(266FX,653FY);
+z7=(266FX,749FY);
+z8=(100FX,749FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(92,473FX#,657FY#,0FY#);
+"quotedblleft";
+z1=(343FX,461FY);
+z2=(442FX,461FY);
+z3=(442FX,556FY);
+z4=(424FX,556FY);
+z5=(445FX,658FY);
+z6=(382FX,658FY);
+z7=(343FX,543FY);
+z8=(179FX,461FY);
+z9=(278FX,461FY);
+z10=(278FX,556FY);
+z11=(260FX,556FY);
+z12=(281FX,658FY);
+z13=(219FX,658FY);
+z14=(179FX,543FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(93,289FX#,749FY#,249FY#);
+"bracketright";
+z1=(21FX,-249FY);
+z2=(187FX,-249FY);
+z3=(187FX,749FY);
+z4=(21FX,749FY);
+z5=(21FX,653FY);
+z6=(96FX,653FY);
+z7=(96FX,-153FY);
+z8=(21FX,-153FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(94,500FX#,749FY#,250FY#);
+"braceleft";
+z1=(401FX,-250FY);
+z2=(426FX,-224FY);
+z3=(426FX,-220FY);
+z4=(401FX,-195FY);
+z5=(295FX,-106FY);
+z6=(295FX,130FY);
+z7=(217FX,250FY);
+z8=(295FX,370FY);
+z9=(295FX,606FY);
+z10=(401FX,695FY);
+z11=(426FX,720FY);
+z12=(426FX,724FY);
+z13=(401FX,750FY);
+z14=(203FX,606FY);
+z15=(203FX,370FY);
+z16=(97FX,278FY);
+z17=(72FX,251FY);
+z18=(72FX,249FY);
+z19=(97FX,222FY);
+z20=(203FX,130FY);
+z21=(203FX,-106FY);
+z22=(401FX,-250FY);
+FuF (z1
+{15,0} .. {0,15}z2
+-- z3
+{0,14} .. {-13,0}z4
+{-48,0} .. {0,58}z5
+-- z6
+{0,57} .. {-46,24}z7
+{46,24} .. {0,58}z8
+-- z9
+{0,59} .. {49,0}z10
+{13,0} .. {0,16}z11
+-- z12
+{0,15} .. {-15,0}z13
+{-83,0} .. {0,-108}z14
+-- z15
+{0,-59} .. {-49,0}z16
+{-13,0} .. {0,-14}z17
+-- z18
+{0,-14} .. {13,0}z19
+{50,0} .. {0,-59}z20
+-- z21
+{0,-108} .. {83,0}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(95,500FX#,749FY#,250FY#);
+"braceright";
+z1=(418FX,230FY);
+z2=(426FX,249FY);
+z3=(426FX,251FY);
+z4=(401FX,278FY);
+z5=(295FX,370FY);
+z6=(295FX,606FY);
+z7=(97FX,750FY);
+z8=(72FX,724FY);
+z9=(72FX,720FY);
+z10=(97FX,695FY);
+z11=(203FX,606FY);
+z12=(203FX,370FY);
+z13=(281FX,250FY);
+z14=(203FX,130FY);
+z15=(203FX,-106FY);
+z16=(97FX,-195FY);
+z17=(72FX,-220FY);
+z18=(72FX,-224FY);
+z19=(97FX,-250FY);
+z20=(295FX,-106FY);
+z21=(295FX,130FY);
+z22=(401FX,222FY);
+z23=(418FX,230FY);
+FuF (z1
+{5,5} .. {0,7}z2
+-- z3
+{0,14} .. {-14,0}z4
+{-49,0} .. {0,59}z5
+-- z6
+{0,108} .. {-83,0}z7
+{-13,0} .. {0,-14}z8
+-- z9
+{0,-17} .. {13,0}z10
+{49,0} .. {0,-59}z11
+-- z12
+{0,-58} .. {46,-24}z13
+{-46,-24} .. {0,-57}z14
+-- z15
+{0,-58} .. {-48,0}z16
+{-13,0} .. {0,-14}z17
+-- z18
+{0,-14} .. {14,0}z19
+{83,0} .. {0,109}z20
+-- z21
+{0,59} .. {49,0}z22
+{7,0} .. {4,5}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(96,182FX#,710FY#,0FY#);
+"buth";
+z1=(118FX,508FY);
+z2=(129FX,534FY);
+z3=(125FX,550FY);
+z4=(65FX,690FY);
+z5=(37FX,710FY);
+z6=(3FX,674FY);
+z7=(6FX,659FY);
+z8=(67FX,519FY);
+z9=(95FX,498FY);
+z10=(118FX,508FY);
+FuF (z1
+{7,7} .. {0,10}z2
+{0,5} .. {-3,6}z3
+-- z4
+{-5,13} .. {-14,0}z5
+{-18,0} .. {0,-20}z6
+{0,-4} .. {2,-5}z7
+-- z8
+{5,-13} .. {13,0}z9
+{9,0} .. {7,6}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(97,680FX#,428FY#,0FY#);
+"a";
+z1=(540FX,0FY);
+z2=(625FX,0FY);
+z3=(625FX,428FY);
+z4=(524FX,428FY);
+z5=(524FX,156FY);
+z6=(444FX,94FY);
+z7=(375FX,149FY);
+z8=(376FX,156FY);
+z9=(376FX,428FY);
+z10=(275FX,428FY);
+z11=(275FX,154FY);
+z12=(276FX,146FY);
+z13=(276FX,142FY);
+z14=(186FX,92FY);
+z15=(110FX,184FY);
+z16=(110FX,428FY);
+z17=(11FX,428FY);
+z18=(11FX,158FY);
+z19=(188FX,0FY);
+z20=(274FX,17FY);
+z21=(307FX,40FY);
+z22=(443FX,0FY);
+z23=(540FX,28FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-41} .. {-36,0}z6
+{-33,0} .. {0,35}z7
+{0,3} .. {1,2}z8
+-- z9
+-- z10
+-- z11
+{0,-3} .. {1,-3}z12
+-- z13
+{0,-42} .. {-31,0}z14
+{-54,0} .. {0,47}z15
+-- z16
+-- z17
+-- z18
+{0,-113} .. {106,0}z19
+{35,0} .. {22,12}z20
+{1,1} .. {21,15}z21
+{39,-29} .. {48,0}z22
+{32,0} .. {28,17}z23
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(98,415FX#,432FY#,159FY#);
+"b";
+z1=(263FX,171FY);
+z2=(360FX,171FY);
+z3=(360FX,271FY);
+z4=(329FX,374FY);
+z5=(213FX,433FY);
+z6=(108FX,407FY);
+z7=(108FX,428FY);
+z8=(11FX,428FY);
+z9=(11FX,-160FY);
+z10=(108FX,-160FY);
+z11=(108FX,6FY);
+z12=(359FX,6FY);
+z13=(359FX,93FY);
+z14=(108FX,93FY);
+z15=(108FX,236FY);
+z16=(134FX,326FY);
+z17=(192FX,335FY);
+z18=(243FX,313FY);
+z19=(263FX,171FY);
+FuF (z1
+-- z2
+-- z3
+{0,40} .. {-21,28}z4
+{-26,34} .. {-42,0}z5
+{-38,0} .. {-32,-22}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+{0,53} .. {15,10}z16
+{6,4} .. {34,0}z17
+{27,0} .. {9,-13}z18
+{12,-20} .. {0,-82}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(99,479FX#,439FY#,163FY#);
+"c";
+z1=(326FX,414FY);
+z2=(227FX,440FY);
+z3=(64FX,360FY);
+z4=(11FX,208FY);
+z5=(202FX,-8FY);
+z6=(319FX,12FY);
+z7=(213FX,-70FY);
+z8=(146FX,-31FY);
+z9=(52FX,-29FY);
+z10=(205FX,-164FY);
+z11=(423FX,62FY);
+z12=(423FX,427FY);
+z13=(326FX,427FY);
+z14=(326FX,283FY);
+z15=(326FX,122FY);
+z16=(210FX,88FY);
+z17=(116FX,212FY);
+z18=(148FX,306FY);
+z19=(216FX,343FY);
+z20=(326FX,283FY);
+FuF (z1
+{-29,21} .. {-35,0}z2
+{-67,0} .. {-42,-53}z3
+{-35,-45} .. {0,-56}z4
+{0,-132} .. {134,0}z5
+{40,0} .. {37,14}z6
+{-9,-60} .. {-56,0}z7
+{-38,0} .. {-21,31}z8
+-- z9
+{0,-92} .. {81,0}z10
+{148,0} .. {0,144}z11
+-- z12
+-- z13
+);
+FuF (z14
+-- z15
+{-16,-28} .. {-26,0}z16
+{-78,0} .. {0,71}z17
+{0,37} .. {22,26}z18
+{21,26} .. {24,0}z19
+{46,0} .. {23,-42}z20
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(100,527FX#,428FY#,160FY#);
+"d";
+z1=(387FX,-8FY);
+z2=(471FX,-8FY);
+z3=(471FX,81FY);
+z4=(387FX,81FY);
+z5=(387FX,255FY);
+z6=(357FX,373FY);
+z7=(220FX,428FY);
+z8=(111FX,410FY);
+z9=(111FX,428FY);
+z10=(11FX,428FY);
+z11=(11FX,-8FY);
+z12=(111FX,-8FY);
+z13=(111FX,261FY);
+z14=(128FX,319FY);
+z15=(208FX,336FY);
+z16=(289FX,271FY);
+z17=(289FX,-161FY);
+z18=(387FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,49} .. {-21,29}z6
+{-34,47} .. {-53,0}z7
+{-37,0} .. {-32,-23}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{0,32} .. {10,8}z14
+{12,10} .. {44,0}z15
+{49,0} .. {0,-57}z16
+-- z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(101,420FX#,671FY#,0FY#);
+"e";
+z1=(109FX,359FY);
+z2=(369FX,359FY);
+z3=(369FX,439FY);
+z4=(109FX,439FY);
+z5=(109FX,671FY);
+z6=(11FX,671FY);
+z7=(11FX,193FY);
+z8=(182FX,0FY);
+z9=(365FX,150FY);
+z10=(365FX,311FY);
+z11=(268FX,311FY);
+z12=(268FX,162FY);
+z13=(183FX,89FY);
+z14=(109FX,183FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-118} .. {116,0}z8
+{92,0} .. {0,110}z9
+-- z10
+-- z11
+-- z12
+{0,-58} .. {-51,0}z13
+{-50,0} .. {0,48}z14
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(102,617FX#,672FY#,160FY#);
+"f";
+z1=(249FX,87FY);
+z2=(117FX,220FY);
+z3=(25FX,220FY);
+z4=(25FX,198FY);
+z5=(249FX,-4FY);
+z6=(249FX,-161FY);
+z7=(346FX,-161FY);
+z8=(346FX,-1FY);
+z9=(565FX,187FY);
+z10=(346FX,417FY);
+z11=(346FX,518FY);
+z12=(211FX,672FY);
+z13=(80FX,553FY);
+z14=(249FX,356FY);
+z15=(249FX,541FY);
+z16=(249FX,452FY);
+z17=(168FX,544FY);
+z18=(210FX,589FY);
+z19=(249FX,541FY);
+z20=(450FX,253FY);
+z21=(473FX,185FY);
+z22=(356FX,87FY);
+z23=(346FX,87FY);
+z24=(346FX,325FY);
+z25=(450FX,253FY);
+FuF (z1
+{-93,2} .. {-11,95}z2
+-- z3
+-- z4
+{0,-146} .. {126,-4}z5
+-- z6
+-- z7
+-- z8
+{118,12} .. {0,143}z9
+{0,134} .. {-106,41}z10
+-- z11
+{0,92} .. {-99,0}z12
+{-69,0} .. {0,-77}z13
+{0,-108} .. {89,-34}z14
+);
+FuF (z15
+-- z16
+{-39,20} .. {0,51}z17
+{0,24} .. {25,0}z18
+{31,0} .. {0,-30}z19
+);
+FuF (z20
+{15,-20} .. {0,-25}z21
+{0,-72} .. {-64,0}z22
+{-3,0} .. {-4,0}z23
+-- z24
+{37,-17} .. {25,-33}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(103,582FX#,425FY#,160FY#);
+"g";
+z1=(432FX,-8FY);
+z2=(527FX,-8FY);
+z3=(527FX,81FY);
+z4=(432FX,81FY);
+z5=(432FX,396FY);
+z6=(350FX,396FY);
+z7=(241FX,426FY);
+z8=(11FX,208FY);
+z9=(230FX,-23FY);
+z10=(330FX,-4FY);
+z11=(330FX,-161FY);
+z12=(432FX,-161FY);
+z13=(330FX,225FY);
+z14=(330FX,178FY);
+z15=(316FX,88FY);
+z16=(230FX,64FY);
+z17=(123FX,213FY);
+z18=(242FX,334FY);
+z19=(317FX,314FY);
+z20=(330FX,225FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-40,24} .. {-48,0}z7
+{-122,0} .. {0,-128}z8
+{0,-129} .. {132,0}z9
+{33,0} .. {31,12}z10
+-- z11
+-- z12
+);
+FuF (z13
+-- z14
+{0,-51} .. {-8,-11}z15
+{-9,-13} .. {-51,0}z16
+{-80,0} .. {0,68}z17
+{0,79} .. {79,0}z18
+{45,0} .. {9,-11}z19
+{7,-11} .. {0,-51}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(104,434FX#,675FY#,0FY#);
+"h";
+z1=(281FX,0FY);
+z2=(379FX,0FY);
+z3=(379FX,301FY);
+z4=(217FX,439FY);
+z5=(110FX,420FY);
+z6=(110FX,676FY);
+z7=(11FX,676FY);
+z8=(11FX,0FY);
+z9=(110FX,0FY);
+z10=(110FX,280FY);
+z11=(198FX,339FY);
+z12=(281FX,266FY);
+FuF (z1
+-- z2
+-- z3
+{0,99} .. {-83,0}z4
+{-40,0} .. {-36,-16}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,48} .. {35,0}z11
+{51,0} .. {0,-56}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(105,434FX#,671FY#,160FY#);
+"i";
+z1=(270FX,-6FY);
+z2=(368FX,-6FY);
+z3=(368FX,288FY);
+z4=(209FX,436FY);
+z5=(112FX,413FY);
+z6=(112FX,671FY);
+z7=(11FX,671FY);
+z8=(11FX,-161FY);
+z9=(112FX,-161FY);
+z10=(112FX,238FY);
+z11=(204FX,335FY);
+z12=(257FX,311FY);
+z13=(270FX,214FY);
+FuF (z1
+-- z2
+-- z3
+{0,97} .. {-86,0}z4
+{-33,0} .. {-28,-19}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,68} .. {67,0}z11
+{30,0} .. {7,-15}z12
+{8,-15} .. {0,-51}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(106,474FX#,431FY#,169FY#);
+"j";
+z1=(300FX,-153FY);
+z2=(422FX,-134FY);
+z3=(398FX,-46FY);
+z4=(275FX,-67FY);
+z5=(164FX,-80FY);
+z6=(127FX,-74FY);
+z7=(323FX,133FY);
+z8=(381FX,273FY);
+z9=(221FX,432FY);
+z10=(80FX,383FY);
+z11=(24FX,271FY);
+z12=(58FX,184FY);
+z13=(114FX,138FY);
+z14=(138FX,95FY);
+z15=(18FX,-78FY);
+z16=(80FX,-163FY);
+z17=(155FX,-170FY);
+z18=(300FX,-153FY);
+z19=(256FX,329FY);
+z20=(278FX,261FY);
+z21=(214FX,165FY);
+z22=(126FX,278FY);
+z23=(212FX,343FY);
+z24=(256FX,329FY);
+FuF (z1
+{43,7} .. {44,7}z2
+-- z3
+{-50,-8} .. {-37,-6}z4
+{-49,-8} .. {-25,0}z5
+{-7,0} .. {-7,5}z6
+{36,72} .. {53,64}z7
+{38,45} .. {0,48}z8
+{0,95} .. {-90,0}z9
+{-55,0} .. {-39,-33}z10
+{-36,-31} .. {0,-44}z11
+{0,-33} .. {22,-24}z12
+{19,-15} .. {18,-16}z13
+{17,-15} .. {0,-14}z14
+{0,-41} .. {0,-66}z15
+{0,-35} .. {37,-6}z16
+{28,-5} .. {22,0}z17
+{48,0} .. {48,8}z18
+);
+FuF (z19
+{13,-12} .. {0,-35}z20
+{0,-36} .. {-23,-24}z21
+{-32,36} .. {0,52}z22
+{0,36} .. {30,0}z23
+{20,0} .. {10,-9}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(107,434FX#,672FY#,160FY#);
+"k";
+z1=(281FX,-161FY);
+z2=(379FX,-161FY);
+z3=(379FX,437FY);
+z4=(281FX,437FY);
+z5=(281FX,197FY);
+z6=(188FX,97FY);
+z7=(135FX,118FY);
+z8=(110FX,240FY);
+z9=(110FX,672FY);
+z10=(11FX,672FY);
+z11=(11FX,231FY);
+z12=(185FX,-6FY);
+z13=(281FX,28FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-61} .. {-58,0}z6
+{-26,0} .. {-10,13}z7
+{-16,20} .. {0,63}z8
+-- z9
+-- z10
+-- z11
+{0,-128} .. {140,0}z12
+{40,0} .. {31,24}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(108,301FX#,426FY#,160FY#);
+"l";
+z1=(11FX,-161FY);
+z2=(246FX,-161FY);
+z3=(246FX,-59FY);
+z4=(107FX,-59FY);
+z5=(107FX,427FY);
+z6=(11FX,427FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+lbl (range 1 thru 6);
+endchar;
+
+beginchar(109,549FX#,673FY#,0FY#);
+"m";
+z1=(443FX,571FY);
+z2=(481FX,571FY);
+z3=(481FX,672FY);
+z4=(440FX,673FY);
+z5=(412FX,674FY);
+z6=(286FX,542FY);
+z7=(286FX,218FY);
+z8=(194FX,104FY);
+z9=(129FX,128FY);
+z10=(111FX,238FY);
+z11=(111FX,445FY);
+z12=(11FX,445FY);
+z13=(11FX,213FY);
+z14=(195FX,0FY);
+z15=(385FX,228FY);
+z16=(385FX,498FY);
+z17=(396FX,563FY);
+z18=(443FX,571FY);
+FuF (z1
+{7,0} .. {23,0}z2
+-- z3
+-- z4
+{-9,1} .. {-10,0}z5
+{-86,0} .. {0,-92}z6
+-- z7
+{0,-56} .. {-61,0}z8
+{-36,0} .. {-9,14}z9
+{-11,15} .. {0,59}z10
+-- z11
+-- z12
+-- z13
+{0,-129} .. {140,0}z14
+{128,0} .. {0,119}z15
+-- z16
+{0,37} .. {6,8}z17
+{9,12} .. {13,-1}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(110,532FX#,674FY#,15FY#);
+"n";
+z1=(390FX,-1FY);
+z2=(476FX,-1FY);
+z3=(476FX,439FY);
+z4=(376FX,439FY);
+z5=(376FX,150FY);
+z6=(287FX,85FY);
+z7=(215FX,207FY);
+z8=(215FX,550FY);
+z9=(194FX,550FY);
+z10=(176FX,549FY);
+z11=(158FX,549FY);
+z12=(154FX,549FY);
+z13=(148FX,549FY);
+z14=(143FX,549FY);
+z15=(111FX,552FY);
+z16=(111FX,562FY);
+z17=(111FX,616FY);
+z18=(111FX,675FY);
+z19=(18FX,675FY);
+z20=(18FX,615FY);
+z21=(18FX,575FY);
+z22=(24FX,498FY);
+z23=(66FX,468FY);
+z24=(116FX,467FY);
+z25=(116FX,200FY);
+z26=(167FX,38FY);
+z27=(269FX,-16FY);
+z28=(390FX,19FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-44} .. {-35,0}z6
+{-66,0} .. {0,52}z7
+-- z8
+-- z9
+{-6,0} .. {-5,0}z10
+-- z11
+-- z12
+-- z13
+-- z14
+{-17,0} .. {-4,3}z15
+{-2,1} .. {0,5}z16
+-- z17
+-- z18
+-- z19
+{0,-31} .. {0,-14}z20
+-- z21
+{0,-36} .. {5,-14}z22
+{7,-16} .. {19,-5}z23
+-- z24
+-- z25
+{0,-66} .. {35,-41}z26
+{29,-35} .. {39,0}z27
+{45,0} .. {37,27}z28
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(111,421FX#,435FY#,0FY#);
+"o";
+z1=(264FX,0FY);
+z2=(364FX,0FY);
+z3=(364FX,290FY);
+z4=(188FX,436FY);
+z5=(108FX,417FY);
+z6=(108FX,427FY);
+z7=(10FX,427FY);
+z8=(10FX,0FY);
+z9=(108FX,0FY);
+z10=(108FX,283FY);
+z11=(185FX,338FY);
+z12=(264FX,253FY);
+FuF (z1
+-- z2
+-- z3
+{0,89} .. {-77,0}z4
+{-27,0} .. {-24,-16}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,27} .. {23,0}z11
+{43,0} .. {0,-42}z12
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(112,695FX#,428FY#,159FY#);
+"p";
+z1=(540FX,-160FY);
+z2=(640FX,-160FY);
+z3=(640FX,428FY);
+z4=(539FX,428FY);
+z5=(539FX,185FY);
+z6=(448FX,97FY);
+z7=(400FX,107FY);
+z8=(376FX,186FY);
+z9=(376FX,428FY);
+z10=(275FX,428FY);
+z11=(275FX,182FY);
+z12=(180FX,99FY);
+z13=(110FX,213FY);
+z14=(110FX,428FY);
+z15=(11FX,428FY);
+z16=(11FX,176FY);
+z17=(166FX,-7FY);
+z18=(318FX,54FY);
+z19=(449FX,-8FY);
+z20=(540FX,25FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-55} .. {-52,0}z6
+{-27,0} .. {-7,6}z7
+{-14,9} .. {0,46}z8
+-- z9
+-- z10
+-- z11
+{0,-53} .. {-49,0}z12
+{-58,0} .. {0,44}z13
+-- z14
+-- z15
+-- z16
+{0,-97} .. {106,0}z17
+{52,0} .. {36,39}z18
+{29,-45} .. {53,0}z19
+{31,0} .. {25,18}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(113,548FX#,421FY#,180FY#);
+"q";
+z1=(469FX,98FY);
+z2=(504FX,231FY);
+z3=(489FX,308FY);
+z4=(311FX,422FY);
+z5=(200FX,393FY);
+z6=(200FX,407FY);
+z7=(101FX,407FY);
+z8=(101FX,21FY);
+z9=(18FX,21FY);
+z10=(18FX,-67FY);
+z11=(101FX,-67FY);
+z12=(101FX,-181FY);
+z13=(200FX,-181FY);
+z14=(200FX,-67FY);
+z15=(474FX,-67FY);
+z16=(474FX,21FY);
+z17=(357FX,21FY);
+z18=(236FX,21FY);
+z19=(200FX,21FY);
+z20=(200FX,41FY);
+z21=(300FX,14FY);
+z22=(469FX,98FY);
+z23=(386FX,302FY);
+z24=(411FX,216FY);
+z25=(307FX,104FY);
+z26=(212FX,222FY);
+z27=(311FX,328FY);
+z28=(386FX,302FY);
+FuF (z1
+{24,36} .. {0,53}z2
+{0,26} .. {-10,25}z3
+{-30,77} .. {-81,0}z4
+{-40,0} .. {-33,-24}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+{28,-24} .. {36,0}z21
+{65,0} .. {38,56}z22
+);
+FuF (z23
+{16,-17} .. {0,-42}z24
+{0,-64} .. {-66,0}z25
+{-76,0} .. {0,64}z26
+{0,71} .. {72,0}z27
+{36,0} .. {15,-17}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(114,420FX#,430FY#,161FY#);
+"r";
+z1=(266FX,-8FY);
+z2=(365FX,-8FY);
+z3=(365FX,288FY);
+z4=(207FX,431FY);
+z5=(109FX,418FY);
+z6=(109FX,428FY);
+z7=(11FX,428FY);
+z8=(11FX,-161FY);
+z9=(109FX,-161FY);
+z10=(109FX,268FY);
+z11=(184FX,342FY);
+z12=(266FX,293FY);
+FuF (z1
+-- z2
+-- z3
+{0,103} .. {-89,0}z4
+{-32,0} .. {-31,-14}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,51} .. {47,0}z11
+{29,0} .. {0,-39}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(115,435FX#,428FY#,0FY#);
+"s";
+z1=(282FX,0FY);
+z2=(380FX,0FY);
+z3=(380FX,428FY);
+z4=(282FX,428FY);
+z5=(282FX,191FY);
+z6=(189FX,96FY);
+z7=(110FX,191FY);
+z8=(110FX,428FY);
+z9=(11FX,428FY);
+z10=(11FX,184FY);
+z11=(191FX,0FY);
+z12=(282FX,21FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-65} .. {-65,0}z6
+{-51,0} .. {0,46}z7
+-- z8
+-- z9
+-- z10
+{0,-117} .. {114,0}z11
+{32,0} .. {27,18}z12
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(116,684FX#,442FY#,160FY#);
+"t";
+z1=(528FX,-8FY);
+z2=(629FX,-8FY);
+z3=(629FX,282FY);
+z4=(543FX,423FY);
+z5=(438FX,443FY);
+z6=(343FX,427FY);
+z7=(277FX,427FY);
+z8=(277FX,172FY);
+z9=(181FX,75FY);
+z10=(113FX,149FY);
+z11=(113FX,427FY);
+z12=(11FX,427FY);
+z13=(11FX,160FY);
+z14=(183FX,-24FY);
+z15=(277FX,2FY);
+z16=(277FX,-161FY);
+z17=(378FX,-161FY);
+z18=(378FX,289FY);
+z19=(446FX,341FY);
+z20=(528FX,275FY);
+FuF (z1
+-- z2
+-- z3
+{0,67} .. {-57,32}z4
+{-38,20} .. {-41,0}z5
+{-27,0} .. {-24,-15}z6
+-- z7
+-- z8
+{0,-69} .. {-68,0}z9
+{-55,0} .. {0,54}z10
+-- z11
+-- z12
+-- z13
+{0,-122} .. {120,0}z14
+{36,0} .. {30,16}z15
+-- z16
+-- z17
+-- z18
+{0,47} .. {44,0}z19
+{46,0} .. {0,-50}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(117,752FX#,435FY#,0FY#);
+"u";
+z1=(414FX,0FY);
+z2=(697FX,0FY);
+z3=(697FX,79FY);
+z4=(515FX,79FY);
+z5=(515FX,426FY);
+z6=(414FX,426FY);
+z7=(275FX,0FY);
+z8=(379FX,0FY);
+z9=(379FX,290FY);
+z10=(196FX,436FY);
+z11=(113FX,417FY);
+z12=(113FX,427FY);
+z13=(10FX,427FY);
+z14=(10FX,0FY);
+z15=(113FX,0FY);
+z16=(113FX,283FY);
+z17=(193FX,338FY);
+z18=(275FX,253FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+{0,89} .. {-80,0}z10
+{-29,0} .. {-24,-16}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{0,27} .. {25,0}z17
+{44,0} .. {0,-42}z18
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(118,536FX#,674FY#,160FY#);
+"v";
+z1=(273FX,-161FY);
+z2=(482FX,-161FY);
+z3=(482FX,-64FY);
+z4=(372FX,-65FY);
+z5=(372FX,675FY);
+z6=(273FX,675FY);
+z7=(273FX,166FY);
+z8=(194FX,91FY);
+z9=(111FX,176FY);
+z10=(111FX,436FY);
+z11=(11FX,436FY);
+z12=(11FX,131FY);
+z13=(176FX,-11FY);
+z14=(273FX,7FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-55} .. {-53,0}z8
+{-54,0} .. {0,56}z9
+-- z10
+-- z11
+-- z12
+{0,-95} .. {83,0}z13
+{37,0} .. {33,12}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(119,330FX#,425FY#,0FY#);
+"w";
+z1=(11FX,0FY);
+z2=(275FX,0FY);
+z3=(275FX,79FY);
+z4=(106FX,79FY);
+z5=(106FX,426FY);
+z6=(11FX,426FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+lbl (range 1 thru 6);
+endchar;
+
+beginchar(120,654FX#,674FY#,160FY#);
+"x";
+z1=(561FX,43FY);
+z2=(599FX,190FY);
+z3=(599FX,437FY);
+z4=(498FX,437FY);
+z5=(498FX,229FY);
+z6=(487FX,110FY);
+z7=(425FX,83FY);
+z8=(348FX,191FY);
+z9=(348FX,235FY);
+z10=(222FX,438FY);
+z11=(112FX,408FY);
+z12=(112FX,675FY);
+z13=(11FX,675FY);
+z14=(11FX,-161FY);
+z15=(112FX,-161FY);
+z16=(112FX,272FY);
+z17=(186FX,336FY);
+z18=(248FX,234FY);
+z19=(248FX,194FY);
+z20=(419FX,-6FY);
+z21=(561FX,43FY);
+FuF (z1
+{27,30} .. {0,66}z2
+-- z3
+-- z4
+-- z5
+{0,-66} .. {-6,-15}z6
+{-7,-15} .. {-38,0}z7
+{-66,0} .. {0,56}z8
+-- z9
+{0,85} .. {-108,0}z10
+{-38,0} .. {-33,-20}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{0,36} .. {33,0}z17
+{55,0} .. {0,-43}z18
+-- z19
+{0,-128} .. {136,0}z20
+{64,0} .. {29,34}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(121,262FX#,428FY#,159FY#);
+"y";
+z1=(146FX,-125FY);
+z2=(206FX,13FY);
+z3=(206FX,428FY);
+z4=(106FX,428FY);
+z5=(106FX,69FY);
+z6=(84FX,-26FY);
+z7=(13FX,-43FY);
+z8=(13FX,-160FY);
+z9=(146FX,-125FY);
+FuF (z1
+{40,31} .. {0,60}z2
+-- z3
+-- z4
+-- z5
+{0,-50} .. {-13,-15}z6
+{-9,-10} .. {-44,0}z7
+-- z8
+{61,0} .. {32,23}z9
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(122,537FX#,441FY#,160FY#);
+"z";
+z1=(329FX,-161FY);
+z2=(482FX,-161FY);
+z3=(482FX,-72FY);
+z4=(429FX,-72FY);
+z5=(429FX,412FY);
+z6=(348FX,412FY);
+z7=(240FX,441FY);
+z8=(11FX,223FY);
+z9=(229FX,-8FY);
+z10=(329FX,20FY);
+z11=(302FX,323FY);
+z12=(319FX,235FY);
+z13=(302FX,128FY);
+z14=(224FX,87FY);
+z15=(187FX,97FY);
+z16=(118FX,211FY);
+z17=(230FX,346FY);
+z18=(302FX,323FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-41,24} .. {-47,0}z7
+{-122,0} .. {0,-129}z8
+{0,-129} .. {131,0}z9
+{42,0} .. {35,20}z10
+);
+FuF (z11
+{10,-13} .. {0,-47}z12
+{0,-50} .. {-11,-22}z13
+{-10,-20} .. {-44,-5}z14
+{-10,0} .. {-15,7}z15
+{-47,21} .. {0,51}z16
+{0,67} .. {73,0}z17
+{39,0} .. {11,-14}z18
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(123,449FX#,266FY#,0FY#);
+"hyphen";
+z1=(-9FX,188FY);
+z2=(459FX,188FY);
+z3=(459FX,266FY);
+z4=(-9FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,43FX#,730FY#,0FY#);
+"shesht";
+z1=(-10FX,678FY);
+z2=(-4FX,697FY);
+z3=(-38FX,731FY);
+z4=(-64FX,715FY);
+z5=(-131FX,603FY);
+z6=(-137FX,582FY);
+z7=(-110FX,551FY);
+z8=(-85FX,566FY);
+FuF (z1
+{4,6} .. {0,6}z2
+{0,19} .. {-18,0}z3
+{-11,0} .. {-6,-10}z4
+-- z5
+{-4,-6} .. {0,-8}z6
+{0,-16} .. {16,0}z7
+{11,0} .. {6,8}z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(125,999FX#,266FY#,0FY#);
+"emdash";
+z1=(0FX,188FY);
+z2=(1000FX,188FY);
+z3=(1000FX,266FY);
+z4=(0FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,319FX#,695FY#,0FY#);
+"exclam";
+z1=(201FX,576FY);
+z2=(203FX,696FY);
+z3=(115FX,696FY);
+z4=(117FX,610FY);
+z5=(119FX,406FY);
+z6=(120FX,393FY);
+z7=(120FX,352FY);
+z8=(121FX,233FY);
+z9=(122FX,222FY);
+z10=(122FX,191FY);
+z11=(138FX,168FY);
+z12=(180FX,168FY);
+z13=(197FX,191FY);
+z14=(197FX,264FY);
+z15=(198FX,320FY);
+z16=(201FX,522FY);
+z17=(201FX,534FY);
+z18=(116FX,0FY);
+z19=(203FX,0FY);
+z20=(203FX,113FY);
+z21=(116FX,113FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,-14} .. {11,0}z11
+-- z12
+{10,0} .. {0,12}z13
+-- z14
+-- z15
+-- z16
+-- z17
+);
+FuF (z18
+-- z19
+-- z20
+-- z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(3,623FX#,652FY#,0FY#);
+"Dz";
+z1=(385FX,4FY);
+z2=(543FX,4FY);
+z3=(427FX,108FY);
+z4=(375FX,134FY);
+z5=(520FX,427FY);
+z6=(269FX,653FY);
+z7=(19FX,444FY);
+z8=(19FX,380FY);
+z9=(127FX,380FY);
+z10=(127FX,440FY);
+z11=(277FX,557FY);
+z12=(406FX,437FY);
+z13=(374FX,296FY);
+z14=(270FX,171FY);
+z15=(143FX,177FY);
+z16=(10FX,82FY);
+z17=(124FX,0FY);
+z18=(248FX,35FY);
+z19=(282FX,59FY);
+z20=(385FX,4FY);
+z21=(106FX,86FY);
+z22=(140FX,89FY);
+z23=(204FX,82FY);
+z24=(198FX,110FY);
+z25=(161FX,88FY);
+z26=(140FX,85FY);
+z27=(126FX,85FY);
+z28=(106FX,86FY);
+FuF (z1
+-- z2
+{-60,62} .. {-26,16}z3
+{-11,7} .. {-23,10}z4
+{90,69} .. {0,115}z5
+{0,152} .. {-140,0}z6
+{-119,0} .. {0,-135}z7
+-- z8
+-- z9
+-- z10
+{0,89} .. {75,0}z11
+{81,0} .. {0,-85}z12
+{0,-50} .. {-21,-44}z13
+{-20,-44} .. {-41,-26}z14
+{-43,4} .. {-43,0}z15
+{-62,0} .. {0,-78}z16
+{0,-66} .. {53,0}z17
+{47,0} .. {35,24}z18
+-- z19
+{39,-10} .. {30,-28}z20
+);
+FuF (z21
+{18,1} .. {22,0}z22
+{21,0} .. {22,-3}z23
+-- z24
+{-20,-13} .. {-5,-2}z25
+{-3,-2} .. {-11,0}z26
+-- z27
+{-8,0} .. {-5,1}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(4,749FX#,655FY#,84FY#);
+"Gh";
+z1=(533FX,-84FY);
+z2=(645FX,-84FY);
+z3=(600FX,42FY);
+z4=(500FX,86FY);
+z5=(500FX,435FY);
+z6=(241FX,656FY);
+z7=(10FX,451FY);
+z8=(10FX,379FY);
+z9=(120FX,379FY);
+z10=(120FX,434FY);
+z11=(254FX,557FY);
+z12=(390FX,432FY);
+z13=(390FX,-4FY);
+z14=(487FX,-11FY);
+z15=(533FX,-84FY);
+FuF (z1
+-- z2
+{0,59} .. {-30,29}z3
+{-27,27} .. {-40,3}z4
+-- z5
+{0,143} .. {-129,0}z6
+{-124,0} .. {0,-137}z7
+-- z8
+-- z9
+-- z10
+{0,97} .. {90,0}z11
+{71,0} .. {0,-75}z12
+-- z13
+{58,0} .. {12,-5}z14
+{24,-8} .. {7,-46}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(5,652FX#,667FY#,0FY#);
+"Chmute";
+z1=(476FX,20FY);
+z2=(585FX,20FY);
+z3=(303FX,444FY);
+z4=(436FX,593FY);
+z5=(361FX,668FY);
+z6=(248FX,533FY);
+z7=(207FX,599FY);
+z8=(141FX,520FY);
+z9=(179FX,458FY);
+z10=(10FX,142FY);
+z11=(10FX,132FY);
+z12=(161FX,0FY);
+z13=(392FX,39FY);
+z14=(451FX,51FY);
+z15=(239FX,355FY);
+z16=(380FX,138FY);
+z17=(214FX,99FY);
+z18=(133FX,105FY);
+z19=(113FX,143FY);
+z20=(114FX,159FY);
+z21=(239FX,355FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{-50,-66} .. {0,-78}z10
+{0,-5} .. {0,-2}z11
+{13,-99} .. {102,0}z12
+{79,0} .. {76,20}z13
+{28,7} .. {12,1}z14
+);
+FuF (z15
+-- z16
+{-43,-18} .. {-46,0}z17
+{-46,0} .. {-9,3}z18
+{-12,4} .. {0,24}z19
+{0,5} .. {1,5}z20
+{1,17} .. {18,24}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(6,467FX#,649FY#,54FY#);
+"Esimple";
+z1=(271FX,-54FY);
+z2=(375FX,-54FY);
+z3=(220FX,94FY);
+z4=(115FX,94FY);
+z5=(115FX,390FY);
+z6=(309FX,390FY);
+z7=(309FX,478FY);
+z8=(115FX,478FY);
+z9=(115FX,650FY);
+z10=(10FX,650FY);
+z11=(10FX,-2FY);
+z12=(183FX,-2FY);
+z13=(260FX,-15FY);
+z14=(271FX,-54FY);
+FuF (z1
+-- z2
+{0,99} .. {-92,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{40,0} .. {12,-7}z13
+{7,-5} .. {0,-27}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(7,556FX#,646FY#,67FY#);
+"Article";
+z1=(384FX,375FY);
+z2=(493FX,375FY);
+z3=(493FX,451FY);
+z4=(280FX,647FY);
+z5=(10FX,404FY);
+z6=(10FX,-3FY);
+z7=(262FX,-3FY);
+z8=(361FX,-15FY);
+z9=(380FX,-68FY);
+z10=(483FX,-68FY);
+z11=(441FX,58FY);
+z12=(282FX,96FY);
+z13=(119FX,96FY);
+z14=(119FX,398FY);
+z15=(280FX,543FY);
+z16=(384FX,424FY);
+FuF (z1
+-- z2
+-- z3
+{0,133} .. {-123,0}z4
+{-152,0} .. {0,-169}z5
+-- z6
+-- z7
+{53,0} .. {15,-7}z8
+{12,-6} .. {0,-36}z9
+-- z10
+{0,64} .. {-29,24}z11
+{-32,26} .. {-72,0}z12
+-- z13
+-- z14
+{0,108} .. {96,0}z15
+{86,0} .. {0,-84}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(8,774FX#,652FY#,0FY#);
+"Th";
+z1=(562FX,326FY);
+z2=(656FX,326FY);
+z3=(656FX,412FY);
+z4=(562FX,412FY);
+z5=(562FX,417FY);
+z6=(517FX,567FY);
+z7=(324FX,652FY);
+z8=(197FX,620FY);
+z9=(10FX,286FY);
+z10=(10FX,0FY);
+z11=(121FX,0FY);
+z12=(121FX,258FY);
+z13=(339FX,555FY);
+z14=(460FX,416FY);
+z15=(460FX,411FY);
+z16=(408FX,411FY);
+z17=(217FX,255FY);
+z18=(392FX,80FY);
+z19=(562FX,280FY);
+z20=(460FX,326FY);
+z21=(460FX,279FY);
+z22=(445FX,190FY);
+z23=(390FX,171FY);
+z24=(312FX,253FY);
+z25=(409FX,326FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,60} .. {-30,40}z6
+{-45,58} .. {-71,0}z7
+{-42,0} .. {-43,-21}z8
+{-131,-65} .. {0,-142}z9
+-- z10
+-- z11
+-- z12
+{0,137} .. {165,0}z13
+{86,0} .. {0,-81}z14
+-- z15
+-- z16
+{-107,0} .. {0,-117}z17
+{0,-92} .. {91,0}z18
+{124,0} .. {0,113}z19
+);
+FuF (z20
+-- z21
+{0,-48} .. {-9,-13}z22
+{-7,-11} .. {-32,0}z23
+{-50,0} .. {0,50}z24
+{0,66} .. {55,0}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(9,716FX#,646FY#,0FY#);
+"Zh";
+z1=(449FX,315FY);
+z2=(568FX,315FY);
+z3=(568FX,413FY);
+z4=(545FX,411FY);
+z5=(535FX,411FY);
+z6=(530FX,411FY);
+z7=(524FX,411FY);
+z8=(517FX,411FY);
+z9=(508FX,411FY);
+z10=(498FX,411FY);
+z11=(486FX,411FY);
+z12=(473FX,411FY);
+z13=(449FX,411FY);
+z14=(449FX,646FY);
+z15=(339FX,646FY);
+z16=(339FX,412FY);
+z17=(234FX,412FY);
+z18=(10FX,215FY);
+z19=(23FX,109FY);
+z20=(231FX,0FY);
+z21=(449FX,212FY);
+z22=(339FX,315FY);
+z23=(339FX,186FY);
+z24=(259FX,107FY);
+z25=(247FX,108FY);
+z26=(231FX,108FY);
+z27=(139FX,125FY);
+z28=(119FX,214FY);
+z29=(149FX,291FY);
+z30=(261FX,315FY);
+FuF (z1
+-- z2
+-- z3
+{-19,-2} .. {-2,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{-123,0} .. {0,-137}z18
+{0,-44} .. {9,-26}z19
+{29,-93} .. {85,0}z20
+{146,0} .. {0,151}z21
+);
+FuF (z22
+-- z23
+{0,-60} .. {-55,2}z24
+-- z25
+{-8,0} .. {-3,0}z26
+{-53,0} .. {-11,10}z27
+{-11,10} .. {0,52}z28
+{0,39} .. {19,13}z29
+{20,15} .. {56,0}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(10,615FX#,657FY#,0FY#);
+"Sh";
+z1=(484FX,48FY);
+z2=(562FX,253FY);
+z3=(438FX,253FY);
+z4=(294FX,105FY);
+z5=(116FX,268FY);
+z6=(359FX,506FY);
+z7=(431FX,500FY);
+z8=(511FX,531FY);
+z9=(544FX,658FY);
+z10=(419FX,600FY);
+z11=(175FX,655FY);
+z12=(53FX,619FY);
+z13=(28FX,515FY);
+z14=(161FX,551FY);
+z15=(231FX,542FY);
+z16=(10FX,293FY);
+z17=(284FX,0FY);
+z18=(484FX,48FY);
+FuF (z1
+{53,39} .. {0,101}z2
+-- z3
+{0,-112} .. {-105,0}z4
+{-93,0} .. {0,100}z5
+{0,145} .. {104,55}z6
+{24,-3} .. {24,0}z7
+{30,0} .. {19,27}z8
+-- z9
+{-45,-36} .. {-57,0}z10
+{-80,0} .. {-75,0}z11
+{-43,0} .. {-30,-36}z12
+-- z13
+{52,28} .. {58,0}z14
+{24,0} .. {22,-6}z15
+{-103,-58} .. {0,-140}z16
+{0,-170} .. {177,0}z17
+{87,0} .. {45,33}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(11,586FX#,646FY#,0FY#);
+"Ch";
+z1=(467FX,206FY);
+z2=(534FX,397FY);
+z3=(277FX,646FY);
+z4=(10FX,384FY);
+z5=(10FX,353FY);
+z6=(120FX,353FY);
+z7=(174FX,508FY);
+z8=(293FX,546FY);
+z9=(416FX,396FY);
+z10=(372FX,267FY);
+z11=(163FX,122FY);
+z12=(96FX,159FY);
+z13=(4FX,97FY);
+z14=(189FX,0FY);
+z15=(407FX,0FY);
+z16=(278FX,59FY);
+z17=(467FX,206FY);
+FuF (z1
+{45,59} .. {0,68}z2
+{0,167} .. {-165,0}z3
+{-139,0} .. {0,-144}z4
+-- z5
+-- z6
+{0,79} .. {35,30}z7
+{30,25} .. {50,0}z8
+{94,0} .. {0,-84}z9
+{0,-41} .. {-30,-45}z10
+{-42,-62} .. {-79,-2}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{71,30} .. {46,61}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(12,723FX#,652FY#,0FY#);
+"Rhard";
+z1=(590FX,180FY);
+z2=(681FX,181FY);
+z3=(544FX,313FY);
+z4=(500FX,313FY);
+z5=(500FX,398FY);
+z6=(267FX,653FY);
+z7=(10FX,398FY);
+z8=(10FX,0FY);
+z9=(120FX,0FY);
+z10=(120FX,395FY);
+z11=(257FX,557FY);
+z12=(390FX,391FY);
+z13=(390FX,0FY);
+z14=(500FX,0FY);
+z15=(500FX,226FY);
+z16=(506FX,226FY);
+z17=(576FX,222FY);
+z18=(590FX,180FY);
+FuF (z1
+-- z2
+{0,95} .. {-95,0}z3
+-- z4
+-- z5
+{0,151} .. {-155,0}z6
+{-165,0} .. {0,-169}z7
+-- z8
+-- z9
+-- z10
+{0,86} .. {95,0}z11
+{96,0} .. {0,-85}z12
+-- z13
+-- z14
+-- z15
+-- z16
+{40,0} .. {6,-3}z17
+{5,-3} .. {7,-29}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(13,779FX#,713FY#,0FY#);
+"Ts";
+z1=(523FX,560FY);
+z2=(606FX,554FY);
+z3=(622FX,510FY);
+z4=(722FX,510FY);
+z5=(696FX,608FY);
+z6=(552FX,654FY);
+z7=(193FX,654FY);
+z8=(114FX,666FY);
+z9=(103FX,714FY);
+z10=(0FX,714FY);
+z11=(154FX,557FY);
+z12=(89FX,331FY);
+z13=(339FX,0FY);
+z14=(593FX,327FY);
+z15=(523FX,560FY);
+z16=(474FX,431FY);
+z17=(484FX,317FY);
+z18=(343FX,89FY);
+z19=(278FX,110FY);
+z20=(200FX,331FY);
+z21=(338FX,570FY);
+z22=(474FX,431FY);
+FuF (z1
+{46,0} .. {10,-3}z2
+{10,-3} .. {0,-34}z3
+-- z4
+{0,49} .. {-18,21}z5
+{-35,41} .. {-49,0}z6
+-- z7
+{-44,0} .. {-10,7}z8
+{-6,3} .. {0,36}z9
+-- z10
+{0,-114} .. {105,-5}z11
+{-46,-68} .. {0,-82}z12
+{0,-156} .. {184,0}z13
+{200,0} .. {0,174}z14
+{0,78} .. {-57,60}z15
+);
+FuF (z16
+{7,-32} .. {0,-43}z17
+{0,-85} .. {-111,0}z18
+{-23,0} .. {-21,14}z19
+{-65,47} .. {0,74}z20
+{0,86} .. {114,0}z21
+{84,0} .. {16,-73}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(14,728FX#,654FY#,0FY#);
+"Ph";
+z1=(572FX,159FY);
+z2=(661FX,318FY);
+z3=(392FX,551FY);
+z4=(392FX,654FY);
+z5=(282FX,654FY);
+z6=(282FX,551FY);
+z7=(84FX,480FY);
+z8=(21FX,329FY);
+z9=(47FX,232FY);
+z10=(282FX,113FY);
+z11=(282FX,0FY);
+z12=(392FX,0FY);
+z13=(392FX,113FY);
+z14=(572FX,159FY);
+z15=(392FX,461FY);
+z16=(553FX,318FY);
+z17=(520FX,249FY);
+z18=(428FX,214FY);
+z19=(392FX,214FY);
+z20=(282FX,461FY);
+z21=(282FX,214FY);
+z22=(260FX,214FY);
+z23=(135FX,326FY);
+z24=(282FX,461FY);
+FuF (z1
+{59,37} .. {0,69}z2
+{0,159} .. {-141,5}z3
+-- z4
+-- z5
+-- z6
+{-83,-2} .. {-48,-46}z7
+{-42,-40} .. {0,-60}z8
+{0,-34} .. {17,-31}z9
+{48,-84} .. {92,-3}z10
+-- z11
+-- z12
+-- z13
+{72,2} .. {47,29}z14
+);
+FuF (z15
+{92,0} .. {0,-99}z16
+{0,-25} .. {-23,-22}z17
+{-24,-23} .. {-37,0}z18
+-- z19
+);
+FuF (z20
+-- z21
+-- z22
+{-65,0} .. {0,69}z23
+{0,89} .. {85,1}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(15,652FX#,634FY#,19FY#);
+"Osimple";
+z1=(325FX,-20FY);
+z2=(602FX,306FY);
+z3=(326FX,635FY);
+z4=(50FX,306FY);
+z5=(325FX,-20FY);
+z6=(325FX,550FY);
+z7=(497FX,319FY);
+z8=(326FX,66FY);
+z9=(155FX,319FY);
+z10=(325FX,550FY);
+FuF (z1
+{151,0} .. {0,184}z2
+{0,184} .. {-150,0}z3
+{-153,0} .. {0,-182}z4
+{0,-186} .. {146,0}z5
+);
+FuF (z6
+{86,0} .. {0,-146}z7
+{0,-161} .. {-84,0}z8
+{-86,0} .. {0,159}z9
+{0,149} .. {82,0}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(19,600FX#,646FY#,0FY#);
+"dz";
+z1=(393FX,4FY);
+z2=(494FX,4FY);
+z3=(285FX,393FY);
+z4=(364FX,534FY);
+z5=(249FX,600FY);
+z6=(294FX,647FY);
+z7=(183FX,647FY);
+z8=(119FX,579FY);
+z9=(243FX,510FY);
+z10=(175FX,419FY);
+z11=(13FX,114FY);
+z12=(13FX,96FY);
+z13=(175FX,0FY);
+z14=(375FX,35FY);
+z15=(215FX,315FY);
+z16=(329FX,125FY);
+z17=(165FX,88FY);
+z18=(115FX,135FY);
+z19=(115FX,140FY);
+z20=(215FX,315FY);
+FuF (z1
+-- z2
+{-34,92} .. {-71,63}z3
+{32,49} .. {25,54}z4
+{-39,21} .. {-38,23}z5
+-- z6
+-- z7
+-- z8
+{48,-20} .. {43,-28}z9
+{-10,-21} .. {-36,-39}z10
+{-78,-87} .. {0,-127}z11
+-- z12
+{1,-87} .. {67,0}z13
+{72,0} .. {69,17}z14
+);
+FuF (z15
+{34,-1} .. {8,-18}z16
+{-40,-11} .. {-38,0}z17
+{-40,0} .. {-6,40}z18
+{0,1} .. {0,2}z19
+{1,42} .. {30,29}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(20,552FX#,428FY#,160FY#);
+"gh";
+z1=(286FX,-161FY);
+z2=(496FX,-161FY);
+z3=(496FX,-66FY);
+z4=(386FX,-66FY);
+z5=(386FX,232FY);
+z6=(210FX,428FY);
+z7=(111FX,401FY);
+z8=(111FX,428FY);
+z9=(11FX,428FY);
+z10=(11FX,-8FY);
+z11=(112FX,-8FY);
+z12=(112FX,239FY);
+z13=(198FX,327FY);
+z14=(286FX,235FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,108} .. {-112,0}z6
+{-34,0} .. {-28,-22}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,50} .. {51,0}z13
+{52,0} .. {0,-51}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(21,542FX#,646FY#,0FY#);
+"chmute";
+z1=(387FX,14FY);
+z2=(501FX,14FY);
+z3=(243FX,390FY);
+z4=(312FX,511FY);
+z5=(403FX,557FY);
+z6=(403FX,647FY);
+z7=(242FX,579FY);
+z8=(167FX,454FY);
+z9=(76FX,464FY);
+z10=(129FX,392FY);
+z11=(86FX,284FY);
+z12=(11FX,78FY);
+z13=(25FX,21FY);
+z14=(106FX,4FY);
+z15=(354FX,55FY);
+z16=(188FX,294FY);
+z17=(294FX,134FY);
+z18=(122FX,94FY);
+z19=(114FX,100FY);
+z20=(130FX,156FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{22,39} .. {41,7}z5
+-- z6
+{-76,0} .. {-37,-46}z7
+{-25,-42} .. {-24,-42}z8
+-- z9
+-- z10
+{-9,-30} .. {-19,-42}z11
+{-24,-52} .. {0,-60}z12
+{0,-23} .. {12,-21}z13
+{20,-16} .. {23,0}z14
+{82,0} .. {76,28}z15
+);
+FuF (z16
+-- z17
+{-26,-10} .. {-32,0}z18
+{-5,0} .. {0,4}z19
+{0,10} .. {12,28}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(22,405FX#,672FY#,71FY#);
+"esimple";
+z1=(109FX,347FY);
+z2=(350FX,347FY);
+z3=(350FX,437FY);
+z4=(109FX,437FY);
+z5=(109FX,672FY);
+z6=(11FX,672FY);
+z7=(11FX,-3FY);
+z8=(153FX,-3FY);
+z9=(224FX,-18FY);
+z10=(241FX,-71FY);
+z11=(334FX,-71FY);
+z12=(272FX,57FY);
+z13=(159FX,89FY);
+z14=(109FX,89FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{38,0} .. {11,-9}z9
+{7,-6} .. {4,-35}z10
+-- z11
+{0,63} .. {-41,27}z12
+{-32,22} .. {-43,0}z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(23,477FX#,428FY#,159FY#);
+"article";
+z1=(11FX,-160FY);
+z2=(422FX,-160FY);
+z3=(422FX,-69FY);
+z4=(110FX,-69FY);
+z5=(110FX,264FY);
+z6=(202FX,328FY);
+z7=(283FX,248FY);
+z8=(283FX,-8FY);
+z9=(382FX,-8FY);
+z10=(382FX,281FY);
+z11=(227FX,429FY);
+z12=(110FX,397FY);
+z13=(110FX,428FY);
+z14=(11FX,428FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,49} .. {39,0}z6
+{58,0} .. {0,-62}z7
+-- z8
+-- z9
+-- z10
+{0,84} .. {-79,0}z11
+{-47,0} .. {-39,-28}z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(24,583FX#,428FY#,160FY#);
+"th";
+z1=(470FX,210FY);
+z2=(539FX,210FY);
+z3=(539FX,288FY);
+z4=(469FX,288FY);
+z5=(263FX,428FY);
+z6=(110FX,371FY);
+z7=(110FX,427FY);
+z8=(11FX,427FY);
+z9=(11FX,-161FY);
+z10=(110FX,-161FY);
+z11=(110FX,225FY);
+z12=(126FX,267FY);
+z13=(264FX,343FY);
+z14=(360FX,326FY);
+z15=(383FX,288FY);
+z16=(335FX,288FY);
+z17=(160FX,141FY);
+z18=(303FX,-8FY);
+z19=(470FX,155FY);
+z20=(384FX,210FY);
+z21=(384FX,164FY);
+z22=(306FX,73FY);
+z23=(244FX,125FY);
+z24=(352FX,210FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-9,106} .. {-91,0}z5
+{-59,0} .. {-44,-40}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,10} .. {12,19}z12
+{29,49} .. {58,0}z13
+{47,0} .. {18,-10}z14
+{12,-8} .. {2,-18}z15
+-- z16
+{-91,0} .. {0,-101}z17
+{0,-89} .. {93,0}z18
+{94,0} .. {0,96}z19
+);
+FuF (z20
+-- z21
+{0,-55} .. {-56,0}z22
+{-28,0} .. {0,31}z23
+{0,68} .. {60,0}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(25,582FX#,672FY#,0FY#);
+"zh";
+z1=(429FX,347FY);
+z2=(527FX,347FY);
+z3=(527FX,439FY);
+z4=(429FX,439FY);
+z5=(429FX,672FY);
+z6=(329FX,672FY);
+z7=(329FX,439FY);
+z8=(299FX,439FY);
+z9=(96FX,384FY);
+z10=(11FX,222FY);
+z11=(235FX,0FY);
+z12=(429FX,208FY);
+z13=(329FX,347FY);
+z14=(329FX,178FY);
+z15=(237FX,92FY);
+z16=(221FX,92FY);
+z17=(114FX,222FY);
+z18=(303FX,347FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{-82,0} .. {-52,-37}z9
+{-56,-40} .. {0,-68}z10
+{0,-147} .. {138,0}z11
+{138,0} .. {0,140}z12
+);
+FuF (z13
+-- z14
+{0,-68} .. {-60,0}z15
+-- z16
+{-73,0} .. {0,69}z17
+{0,108} .. {84,0}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(26,407FX#,428FY#,164FY#);
+"sh";
+z1=(292FX,-162FY);
+z2=(349FX,-152FY);
+z3=(348FX,-45FY);
+z4=(210FX,-69FY);
+z5=(153FX,-63FY);
+z6=(140FX,-63FY);
+z7=(186FX,-3FY);
+z8=(340FX,244FY);
+z9=(185FX,428FY);
+z10=(25FX,239FY);
+z11=(28FX,200FY);
+z12=(121FX,200FY);
+z13=(129FX,296FY);
+z14=(178FX,329FY);
+z15=(241FX,235FY);
+z16=(185FX,132FY);
+z17=(75FX,22FY);
+z18=(11FX,-84FY);
+z19=(199FX,-163FY);
+z20=(204FX,-163FY);
+z21=(207FX,-163FY);
+z22=(227FX,-164FY);
+z23=(253FX,-165FY);
+z24=(292FX,-162FY);
+FuF (z1
+{14,1} .. {28,6}z2
+-- z3
+{-46,-14} .. {-48,0}z4
+{-23,0} .. {-15,4}z5
+{-7,2} .. {0,3}z6
+{0,13} .. {34,27}z7
+{87,68} .. {0,127}z8
+{0,91} .. {-96,0}z9
+{-114,0} .. {0,-106}z10
+{0,-13} .. {2,-13}z11
+-- z12
+{0,55} .. {5,14}z13
+{8,22} .. {26,0}z14
+{53,0} .. {0,-45}z15
+{0,-26} .. {-40,-42}z16
+{-36,-38} .. {-37,-37}z17
+{-39,-40} .. {0,-30}z18
+{0,-76} .. {44,0}z19
+-- z20
+{1,0} .. {1,0}z21
+-- z22
+{9,-1} .. {8,0}z23
+{12,0} .. {15,2}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(27,333FX#,428FY#,166FY#);
+"ch";
+z1=(278FX,-150FY);
+z2=(279FX,-61FY);
+z3=(181FX,-79FY);
+z4=(149FX,-65FY);
+z5=(269FX,167FY);
+z6=(235FX,240FY);
+z7=(157FX,299FY);
+z8=(264FX,428FY);
+z9=(152FX,428FY);
+z10=(82FX,344FY);
+z11=(56FX,288FY);
+z12=(94FX,231FY);
+z13=(150FX,201FY);
+z14=(174FX,153FY);
+z15=(43FX,-67FY);
+z16=(61FX,-121FY);
+z17=(167FX,-166FY);
+z18=(278FX,-150FY);
+FuF (z1
+-- z2
+{-32,-8} .. {-32,0}z3
+{-8,0} .. {0,14}z4
+{0,54} .. {0,132}z5
+{0,29} .. {-22,20}z6
+{-12,11} .. {0,11}z7
+{0,9} .. {2,2}z8
+-- z9
+{-28,-25} .. {-20,-32}z10
+{-18,-29} .. {0,-8}z11
+{0,-26} .. {23,-12}z12
+{19,-10} .. {19,-10}z13
+{16,-12} .. {0,-21}z14
+{0,-90} .. {0,-113}z15
+{0,-20} .. {12,-16}z16
+{27,-37} .. {41,0}z17
+{38,0} .. {37,8}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(28,523FX#,428FY#,0FY#);
+"rhard";
+z1=(216FX,0FY);
+z2=(466FX,0FY);
+z3=(466FX,89FY);
+z4=(344FX,89FY);
+z5=(413FX,256FY);
+z6=(217FX,428FY);
+z7=(97FX,402FY);
+z8=(97FX,428FY);
+z9=(11FX,428FY);
+z10=(11FX,0FY);
+z11=(111FX,0FY);
+z12=(111FX,269FY);
+z13=(215FX,334FY);
+z14=(314FX,256FY);
+z15=(216FX,59FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{38,48} .. {0,63}z5
+{0,110} .. {-102,0}z6
+{-38,0} .. {-35,-17}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,50} .. {37,0}z13
+{55,0} .. {0,-62}z14
+{0,-60} .. {-33,-50}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(29,492FX#,632FY#,0FY#);
+"ts";
+z1=(377FX,66FY);
+z2=(437FX,238FY);
+z3=(248FX,529FY);
+z4=(133FX,632FY);
+z5=(1FX,632FY);
+z6=(112FX,528FY);
+z7=(202FX,444FY);
+z8=(11FX,244FY);
+z9=(236FX,0FY);
+z10=(377FX,66FY);
+z11=(302FX,332FY);
+z12=(337FX,231FY);
+z13=(219FX,93FY);
+z14=(110FX,209FY);
+z15=(231FX,352FY);
+z16=(302FX,332FY);
+FuF (z1
+{40,46} .. {0,69}z2
+{0,123} .. {-84,72}z3
+{-63,53} .. {-16,17}z4
+-- z5
+{49,-49} .. {34,-29}z6
+{29,-26} .. {25,-31}z7
+{-105,-9} .. {0,-112}z8
+{0,-151} .. {155,0}z9
+{55,0} .. {39,44}z10
+);
+FuF (z11
+{22,-17} .. {0,-52}z12
+{0,-83} .. {-86,0}z13
+{-64,0} .. {0,65}z14
+{0,79} .. {85,0}z15
+{33,0} .. {15,-13}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(30,684FX#,662FY#,160FY#);
+"ph";
+z1=(528FX,-6FY);
+z2=(629FX,-6FY);
+z3=(629FX,314FY);
+z4=(565FX,416FY);
+z5=(474FX,450FY);
+z6=(378FX,427FY);
+z7=(378FX,663FY);
+z8=(276FX,663FY);
+z9=(276FX,154FY);
+z10=(190FX,84FY);
+z11=(113FX,188FY);
+z12=(113FX,435FY);
+z13=(11FX,435FY);
+z14=(11FX,188FY);
+z15=(168FX,-15FY);
+z16=(276FX,1FY);
+z17=(276FX,-161FY);
+z18=(378FX,-161FY);
+z19=(378FX,285FY);
+z20=(449FX,347FY);
+z21=(528FX,268FY);
+FuF (z1
+-- z2
+-- z3
+{0,41} .. {-40,28}z4
+{-33,21} .. {-28,0}z5
+{-33,0} .. {-29,-14}z6
+-- z7
+-- z8
+-- z9
+{0,-54} .. {-46,0}z10
+{-69,0} .. {0,58}z11
+-- z12
+-- z13
+-- z14
+{0,-105} .. {118,0}z15
+{36,0} .. {34,15}z16
+-- z17
+-- z18
+-- z19
+{0,47} .. {43,0}z20
+{48,0} .. {0,-49}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(31,473FX#,436FY#,10FY#);
+"osimple";
+z1=(236FX,-10FY);
+z2=(444FX,209FY);
+z3=(237FX,437FY);
+z4=(28FX,209FY);
+z5=(236FX,-10FY);
+z6=(236FX,353FY);
+z7=(346FX,218FY);
+z8=(236FX,76FY);
+z9=(127FX,218FY);
+z10=(236FX,353FY);
+FuF (z1
+{114,0} .. {0,123}z2
+{0,125} .. {-114,0}z3
+{-118,0} .. {0,-122}z4
+{0,-125} .. {112,0}z5
+);
+FuF (z6
+{53,0} .. {0,-96}z7
+{0,-98} .. {-55,0}z8
+{-51,0} .. {0,100}z9
+{0,98} .. {49,0}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(32,620FX#,635FY#,16FY#);
+"ev";
+z1=(275FX,-1FY);
+z2=(481FX,-1FY);
+z3=(481FX,91FY);
+z4=(372FX,91FY);
+z5=(372FX,438FY);
+z6=(272FX,438FY);
+z7=(272FX,168FY);
+z8=(189FX,84FY);
+z9=(111FX,178FY);
+z10=(111FX,635FY);
+z11=(11FX,635FY);
+z12=(11FX,202FY);
+z13=(189FX,-17FY);
+z14=(262FX,-1FY);
+z15=(275FX,10FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-57} .. {-55,0}z8
+{-54,0} .. {0,50}z9
+-- z10
+-- z11
+-- z12
+{0,-118} .. {130,0}z13
+{29,0} .. {20,11}z14
+-- z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(127,473FX#,707FY#,0FY#);
+"question";
+z1=(402FX,471FY);
+z2=(416FX,535FY);
+z3=(235FX,707FY);
+z4=(52FX,646FY);
+z5=(62FX,620FY);
+z6=(84FX,556FY);
+z7=(112FX,575FY);
+z8=(130FX,588FY);
+z9=(218FX,615FY);
+z10=(312FX,547FY);
+z11=(287FX,486FY);
+z12=(218FX,400FY);
+z13=(176FX,191FY);
+z14=(194FX,169FY);
+z15=(249FX,169FY);
+z16=(270FX,190FY);
+z17=(270FX,222FY);
+z18=(270FX,243FY);
+z19=(343FX,401FY);
+z20=(402FX,471FY);
+z21=(169FX,0FY);
+z22=(277FX,0FY);
+z23=(277FX,113FY);
+z24=(169FX,113FY);
+FuF (z1
+{9,19} .. {0,23}z2
+{0,114} .. {-103,0}z3
+{-74,0} .. {-61,-44}z4
+-- z5
+-- z6
+{17,10} .. {6,6}z7
+{4,3} .. {8,5}z8
+{24,17} .. {28,0}z9
+{50,0} .. {0,-62}z10
+{0,-27} .. {-19,-17}z11
+{-26,-23} .. {-18,-31}z12
+{-41,-76} .. {-1,-84}z13
+{0,-12} .. {12,-2}z14
+-- z15
+{11,0} .. {0,14}z16
+-- z17
+-- z18
+{0,55} .. {38,36}z19
+{27,27} .. {18,37}z20
+);
+FuF (z21
+-- z22
+-- z23
+-- z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+% ligatures e' ev
+ligtable 101:
+39=:22,
+118=:32;
+
+% ligatures E'
+ligtable 69:
+39=:6;
+
+
+% ligature u'
+ligtable 117:
+39=:23;
+
+% ligature U'
+ligtable 85:
+39=:7;
+
+
+% ligatures t' th
+ligtable 116:
+39=:24,
+104=:24;
+
+% ligatures T' Th TH
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+
+% ligature dz
+ligtable 100:
+122=:19;
+
+% ligatures Dz DZ
+ligtable 68:
+122=:3,
+90=:3;
+
+
+% ligatures g' gh
+ligtable 103:
+39=:25,
+104=:20;
+
+% ligatures G' Gh GH
+ligtable 71:
+39=:9,
+104=:4,
+72=:4;
+
+
+% ligature j'
+ligtable 106:
+39=:21;
+
+% ligature J'
+ligtable 74:
+39=:5;
+
+
+% ligature sh
+ligtable 115:
+104=:26;
+
+% ligatures Sh SH
+ligtable 83:
+104=:10,
+72=:10;
+
+
+% ligatures c' ch
+ligtable 99:
+39=:29,
+104=:27;
+
+% ligatures C' Ch CH
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+
+% ligature r'
+ligtable 114:
+39=:28;
+
+% ligature R'
+ligtable 82:
+39=:12;
+
+
+% ligatures p' ph
+ligtable 112:
+39=:30,
+104=:30;
+
+% ligatures P' Ph PH
+ligtable 80:
+39=:14,
+104=:14,
+72=:14;
+
+
+% ligature o'
+ligtable 111:
+39=:31;
+
+% ligature O'
+ligtable 79:
+39=:15,
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+% ligature ''
+ligtable 39:
+39=:34;
+
+% ligature ``
+ligtable 96:
+96=:92;
+
+% ligature <<
+ligtable 60:
+60=:60;
+
+% ligature >>
+ligtable 62:
+62=:62;
+
+% ligature --
+ligtable 45:
+45=:123;
+
+
+% ligature ---
+ligtable 123:
+45=:125;
+
+
+% spacing for U'
+ligtable 7:
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+
+% spacing for O'
+ligtable 15:
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+
+% spacing for ev
+ligtable 32:
+63 kern -110FX#,
+33 kern -110FX#,
+124 kern -110FX#;
+
+
+% spacing for harcakan nshan
+ligtable 63:
+"a" kern -78FX#,
+"b" kern -78FX#,
+"g" kern -78FX#,
+"d" kern -78FX#,
+"z" kern -78FX#,
+23 kern -78FX#,
+25 kern -78FX#,
+"l" kern -78FX#,
+19 kern -78FX#,
+20 kern -78FX#,
+21 kern -78FX#,
+"m" kern -78FX#,
+"y" kern -138FX#,
+26 kern -78FX#,
+"o" kern -78FX#,
+27 kern -78FX#,
+"p" kern -78FX#,
+"j" kern -78FX#,
+28 kern -78FX#,
+"s" kern -78FX#,
+"v" kern -78FX#,
+"r" kern -78FX#,
+"c" kern -78FX#,
+"u" kern -78FX#,
+30 kern -78FX#,
+"q" kern -138FX#,
+31 kern -78FX#,
+"f" kern -78FX#,
+"w" kern -78FX#,
+"B" kern -78FX#,
+"Z" kern -78FX#,
+ 7 kern -78FX#,
+ 9 kern -78FX#,
+ 5 kern -78FX#,
+"O" kern -78FX#,
+11 kern -78FX#,
+"P" kern -78FX#,
+"J" kern -78FX#,
+"V" kern -78FX#,
+12 kern -78FX#,
+"R" kern -78FX#,
+"C" kern -78FX#,
+"U" kern -78FX#,
+14 kern -78FX#,
+"Q" kern -78FX#,
+15 kern -78FX#,
+"F" kern -78FX#,
+"H" kern -42FX#,
+"Y" kern -42FX#;
+
+
+% spacing for bacakanchakan nshan
+ligtable 33:
+"a" kern -78FX#,
+"b" kern -78FX#,
+"g" kern -78FX#,
+"d" kern -78FX#,
+"z" kern -78FX#,
+23 kern -78FX#,
+25 kern -78FX#,
+"l" kern -78FX#,
+19 kern -78FX#,
+20 kern -78FX#,
+21 kern -78FX#,
+"m" kern -78FX#,
+"y" kern -138FX#,
+26 kern -78FX#,
+"o" kern -78FX#,
+27 kern -78FX#,
+"p" kern -78FX#,
+"j" kern -78FX#,
+28 kern -78FX#,
+"s" kern -78FX#,
+"v" kern -78FX#,
+"r" kern -78FX#,
+"c" kern -78FX#,
+"u" kern -78FX#,
+30 kern -78FX#,
+"q" kern -138FX#,
+31 kern -78FX#,
+"f" kern -78FX#,
+"w" kern -78FX#,
+"B" kern -78FX#,
+"Z" kern -78FX#,
+ 7 kern -78FX#,
+ 9 kern -78FX#,
+ 5 kern -78FX#,
+"O" kern -78FX#,
+11 kern -78FX#,
+"P" kern -78FX#,
+"J" kern -78FX#,
+"V" kern -78FX#,
+12 kern -78FX#,
+"R" kern -78FX#,
+"C" kern -78FX#,
+"U" kern -78FX#,
+14 kern -78FX#,
+"Q" kern -78FX#,
+15 kern -78FX#,
+"F" kern -78FX#,
+"H" kern -42FX#,
+"Y" kern -42FX#;
+
+font_slant := 0.0000;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "arssb10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/arssbs10.mf b/Master/texmf-dist/fonts/source/public/armenian/arssbs10.mf
new file mode 100644
index 00000000000..5338b067e3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/arssbs10.mf
@@ -0,0 +1,5377 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 arssbs10.mf (Armenian SansSerif Bold Slanted 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+currenttransform:=identity slanted 0.1700 yscaled aspect_ratio;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,134FX#,747FY#,0FY#);
+"bacakanchakan";
+z1=(142FX,706FY);
+z2=(146FX,721FY);
+z3=(117FX,747FY);
+z4=(36FX,695FY);
+z5=(-41FX,695FY);
+z6=(-67FX,686FY);
+z7=(-120FX,628FY);
+z8=(-133FX,603FY);
+z9=(-106FX,578FY);
+z10=(-27FX,629FY);
+z11=(49FX,629FY);
+z12=(131FX,695FY);
+z13=(142FX,706FY);
+FuF (z1
+{2,4} .. {0,6}z2
+{0,15} .. {-17,0}z3
+{-26,0} .. {-5,-4}z4
+-- z5
+{-8,0} .. {-6,-6}z6
+-- z7
+{-7,-7} .. {0,-10}z8
+{0,-16} .. {15,0}z9
+{24,0} .. {3,2}z10
+-- z11
+{34,0} .. {9,11}z12
+{4,3} .. {3,5}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(34,473FX#,657FY#,0FY#);
+"quotedblright";
+z1=(254FX,461FY);
+z2=(294FX,575FY);
+z3=(294FX,658FY);
+z4=(195FX,658FY);
+z5=(195FX,562FY);
+z6=(213FX,562FY);
+z7=(192FX,461FY);
+z8=(91FX,461FY);
+z9=(130FX,575FY);
+z10=(130FX,658FY);
+z11=(31FX,658FY);
+z12=(31FX,562FY);
+z13=(49FX,562FY);
+z14=(28FX,461FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(35,502FX#,658FY#,10FY#);
+"numbersign";
+z1=(361FX,169FY);
+z2=(491FX,169FY);
+z3=(491FX,262FY);
+z4=(380FX,262FY);
+z5=(404FX,384FY);
+z6=(491FX,384FY);
+z7=(491FX,478FY);
+z8=(423FX,478FY);
+z9=(459FX,659FY);
+z10=(366FX,659FY);
+z11=(330FX,478FY);
+z12=(230FX,478FY);
+z13=(266FX,659FY);
+z14=(174FX,659FY);
+z15=(137FX,478FY);
+z16=(9FX,478FY);
+z17=(9FX,384FY);
+z18=(119FX,384FY);
+z19=(94FX,262FY);
+z20=(9FX,262FY);
+z21=(9FX,169FY);
+z22=(76FX,169FY);
+z23=(40FX,-11FY);
+z24=(133FX,-11FY);
+z25=(169FX,169FY);
+z26=(268FX,169FY);
+z27=(232FX,-11FY);
+z28=(326FX,-11FY);
+z29=(212FX,384FY);
+z30=(312FX,384FY);
+z31=(287FX,262FY);
+z32=(188FX,262FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+-- z26
+-- z27
+-- z28
+);
+FuF (z29
+-- z30
+-- z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(36,502FX#,707FY#,93FY#);
+"dollar";
+z1=(407FX,46FY);
+z2=(460FX,189FY);
+z3=(448FX,262FY);
+z4=(285FX,382FY);
+z5=(285FX,570FY);
+z6=(342FX,473FY);
+z7=(448FX,488FY);
+z8=(285FX,669FY);
+z9=(285FX,707FY);
+z10=(212FX,707FY);
+z11=(212FX,669FY);
+z12=(106FX,625FY);
+z13=(45FX,481FY);
+z14=(212FX,294FY);
+z15=(212FX,82FY);
+z16=(134FX,217FY);
+z17=(31FX,198FY);
+z18=(212FX,-15FY);
+z19=(212FX,-93FY);
+z20=(285FX,-93FY);
+z21=(285FX,-15FY);
+z22=(407FX,46FY);
+z23=(212FX,573FY);
+z24=(212FX,402FY);
+z25=(149FX,488FY);
+z26=(212FX,573FY);
+z27=(338FX,240FY);
+z28=(355FX,184FY);
+z29=(285FX,82FY);
+z30=(285FX,274FY);
+z31=(338FX,240FY);
+FuF (z1
+{36,38} .. {0,56}z2
+{0,27} .. {-8,23}z3
+{-29,78} .. {-72,19}z4
+-- z5
+{42,-17} .. {6,-42}z6
+-- z7
+{-15,103} .. {-101,15}z8
+-- z9
+-- z10
+-- z11
+{-45,-7} .. {-25,-24}z12
+{-41,-37} .. {0,-59}z13
+{0,-109} .. {96,-24}z14
+-- z15
+{-59,18} .. {-8,54}z16
+-- z17
+{11,-125} .. {122,-19}z18
+-- z19
+-- z20
+-- z21
+{50,6} .. {31,35}z22
+);
+FuF (z23
+-- z24
+{-39,16} .. {0,47}z25
+{0,41} .. {38,12}z26
+);
+FuF (z27
+{11,-13} .. {0,-24}z28
+{0,-46} .. {-44,-14}z29
+-- z30
+{27,-11} .. {9,-11}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(37,804FX#,658FY#,23FY#);
+"percent";
+z1=(706FX,23FY);
+z2=(706FX,287FY);
+z3=(599FX,334FY);
+z4=(453FX,159FY);
+z5=(494FX,23FY);
+z6=(599FX,-24FY);
+z7=(706FX,23FY);
+z8=(273FX,-24FY);
+z9=(626FX,659FY);
+z10=(530FX,659FY);
+z11=(175FX,-24FY);
+z12=(305FX,348FY);
+z13=(348FX,480FY);
+z14=(198FX,659FY);
+z15=(52FX,484FY);
+z16=(94FX,348FY);
+z17=(198FX,301FY);
+z18=(305FX,348FY);
+z19=(636FX,232FY);
+z20=(652FX,158FY);
+z21=(601FX,59FY);
+z22=(550FX,152FY);
+z23=(565FX,232FY);
+z24=(636FX,232FY);
+z25=(235FX,557FY);
+z26=(251FX,482FY);
+z27=(200FX,384FY);
+z28=(150FX,476FY);
+z29=(200FX,575FY);
+z30=(235FX,557FY);
+FuF (z1
+{58,63} .. {-58,63}z2
+{-28,31} .. {-43,0}z3
+{-100,0} .. {0,-89}z4
+{0,-58} .. {28,-31}z5
+{28,-31} .. {42,0}z6
+{43,0} .. {29,31}z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+{30,33} .. {0,55}z13
+{0,94} .. {-104,0}z14
+{-99,0} .. {0,-88}z15
+{1,-58} .. {28,-31}z16
+{27,-31} .. {40,0}z17
+{43,0} .. {28,31}z18
+);
+FuF (z19
+{9,-12} .. {0,-39}z20
+{0,-31} .. {-48,1}z21
+{-46,1} .. {0,33}z22
+{0,44} .. {9,11}z23
+{20,26} .. {20,-26}z24
+);
+FuF (z25
+{10,-12} .. {0,-39}z26
+{0,-33} .. {-49,0}z27
+{-46,0} .. {0,32}z28
+{0,34} .. {50,0}z29
+{14,0} .. {9,-13}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(38,697FX#,658FY#,20FY#);
+"ampersand";
+z1=(464FX,87FY);
+z2=(616FX,367FY);
+z3=(570FX,379FY);
+z4=(530FX,388FY);
+z5=(411FX,160FY);
+z6=(397FX,145FY);
+z7=(372FX,174FY);
+z8=(285FX,302FY);
+z9=(279FX,310FY);
+z10=(410FX,498FY);
+z11=(391FX,585FY);
+z12=(284FX,659FY);
+z13=(143FX,466FY);
+z14=(162FX,340FY);
+z15=(166FX,327FY);
+z16=(161FX,322FY);
+z17=(94FX,265FY);
+z18=(38FX,149FY);
+z19=(66FX,52FY);
+z20=(206FX,-20FY);
+z21=(386FX,27FY);
+z22=(532FX,-20FY);
+z23=(638FX,-4FY);
+z24=(645FX,14FY);
+z25=(645FX,88FY);
+z26=(594FX,76FY);
+z27=(464FX,87FY);
+z28=(246FX,396FY);
+z29=(232FX,481FY);
+z30=(233FX,522FY);
+z31=(277FX,572FY);
+z32=(316FX,507FY);
+z33=(246FX,396FY);
+z34=(188FX,232FY);
+z35=(197FX,239FY);
+z36=(203FX,245FY);
+z37=(207FX,238FY);
+z38=(310FX,98FY);
+z39=(327FX,79FY);
+z40=(334FX,100FY);
+z41=(207FX,68FY);
+z42=(138FX,150FY);
+z43=(171FX,216FY);
+z44=(189FX,232FY);
+FuF (z1
+{71,66} .. {17,97}z2
+-- z3
+-- z4
+{-28,-88} .. {-68,-68}z5
+{-6,-7} .. {-3,-3}z6
+-- z7
+{-33,40} .. {-23,46}z8
+{-2,3} .. {-2,2}z9
+{51,46} .. {0,76}z10
+{0,32} .. {-13,26}z11
+{-19,41} .. {-46,0}z12
+{-103,0} .. {0,-87}z13
+{0,-43} .. {11,-42}z14
+{2,-4} .. {1,-4}z15
+-- z16
+{-23,-19} .. {-22,-19}z17
+{-32,-28} .. {0,-44}z18
+{0,-36} .. {19,-28}z19
+{30,-43} .. {52,0}z20
+{74,0} .. {64,34}z21
+{43,-31} .. {54,0}z22
+{23,0} .. {19,11}z23
+{4,3} .. {0,10}z24
+-- z25
+-- z26
+{-46,-11} .. {-43,24}z27
+);
+FuF (z28
+{-8,29} .. {-2,30}z29
+{0,20} .. {1,8}z30
+{4,21} .. {24,0}z31
+{33,0} .. {0,-25}z32
+{0,-46} .. {-31,-30}z33
+);
+FuF (z34
+{2,1} .. {4,3}z35
+-- z36
+-- z37
+{29,-50} .. {38,-44}z38
+{3,-5} .. {2,-3}z39
+-- z40
+{-49,-22} .. {-56,0}z41
+{-41,0} .. {0,39}z42
+{0,30} .. {21,19}z43
+-- z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(39,263FX#,657FY#,0FY#);
+"apatharc";
+z1=(139FX,461FY);
+z2=(171FX,575FY);
+z3=(171FX,658FY);
+z4=(92FX,658FY);
+z5=(92FX,562FY);
+z6=(106FX,562FY);
+z7=(89FX,461FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+lbl (range 1 thru 7);
+endchar;
+
+beginchar(40,389FX#,749FY#,249FY#);
+"parenleft";
+z1=(266FX,-249FY);
+z2=(349FX,-249FY);
+z3=(237FX,-78FY);
+z4=(180FX,215FY);
+z5=(179FX,228FY);
+z6=(179FX,272FY);
+z7=(180FX,293FY);
+z8=(248FX,604FY);
+z9=(313FX,704FY);
+z10=(345FX,749FY);
+z11=(266FX,749FY);
+z12=(257FX,749FY);
+z13=(230FX,724FY);
+z14=(77FX,250FY);
+z15=(230FX,-225FY);
+z16=(257FX,-249FY);
+FuF (z1
+-- z2
+{-48,64} .. {-35,83}z3
+{-45,104} .. {-8,111}z4
+-- z5
+-- z6
+-- z7
+{4,114} .. {50,102}z8
+{19,37} .. {25,31}z9
+{7,7} .. {18,31}z10
+-- z11
+-- z12
+{-5,-3} .. {-14,-15}z13
+{-113,-123} .. {0,-170}z14
+{0,-172} .. {113,-127}z15
+{13,-14} .. {6,-3}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(41,389FX#,749FY#,249FY#);
+"parenright";
+z1=(291FX,55FY);
+z2=(310FX,251FY);
+z3=(157FX,725FY);
+z4=(130FX,749FY);
+z5=(121FX,749FY);
+z6=(40FX,749FY);
+z7=(64FX,715FY);
+z8=(73FX,704FY);
+z9=(94FX,678FY);
+z10=(151FX,577FY);
+z11=(207FX,284FY);
+z12=(208FX,272FY);
+z13=(208FX,228FY);
+z14=(207FX,206FY);
+z15=(204FX,147FY);
+z16=(64FX,-215FY);
+z17=(61FX,-218FY);
+z18=(38FX,-249FY);
+z19=(121FX,-249FY);
+z20=(130FX,-249FY);
+z21=(158FX,-224FY);
+z22=(291FX,55FY);
+FuF (z1
+{13,60} .. {0,71}z2
+{0,172} .. {-114,126}z3
+{-13,14} .. {-6,3}z4
+-- z5
+-- z6
+{19,-29} .. {3,-3}z7
+{3,-4} .. {2,-4}z8
+-- z9
+{24,-28} .. {15,-38}z10
+{44,-103} .. {7,-111}z11
+-- z12
+-- z13
+-- z14
+-- z15
+{-8,-129} .. {-85,-92}z16
+-- z17
+{-1,-1} .. {-21,-28}z18
+-- z19
+-- z20
+{6,3} .. {13,14}z21
+{68,76} .. {21,104}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(42,459FX#,689FY#,0FY#);
+"asterisk";
+z1=(304FX,485FY);
+z2=(379FX,525FY);
+z3=(400FX,563FY);
+z4=(354FX,610FY);
+z5=(335FX,605FY);
+z6=(293FX,576FY);
+z7=(269FX,558FY);
+z8=(272FX,596FY);
+z9=(273FX,619FY);
+z10=(274FX,641FY);
+z11=(230FX,689FY);
+z12=(197FX,676FY);
+z13=(185FX,632FY);
+z14=(186FX,619FY);
+z15=(189FX,558FY);
+z16=(165FX,576FY);
+z17=(127FX,602FY);
+z18=(122FX,605FY);
+z19=(104FX,610FY);
+z20=(58FX,563FY);
+z21=(79FX,525FY);
+z22=(154FX,485FY);
+z23=(79FX,445FY);
+z24=(70FX,438FY);
+z25=(58FX,408FY);
+z26=(123FX,365FY);
+z27=(141FX,378FY);
+z28=(189FX,412FY);
+z29=(186FX,374FY);
+z30=(186FX,352FY);
+z31=(184FX,329FY);
+z32=(228FX,281FY);
+z33=(261FX,294FY);
+z34=(273FX,339FY);
+z35=(273FX,351FY);
+z36=(269FX,412FY);
+z37=(293FX,395FY);
+z38=(317FX,377FY);
+z39=(336FX,364FY);
+z40=(354FX,361FY);
+z41=(400FX,409FY);
+z42=(388FX,438FY);
+z43=(304FX,485FY);
+FuF (z1
+-- z2
+{13,9} .. {0,18}z3
+{0,25} .. {-26,0}z4
+{-5,0} .. {-7,-2}z5
+{-14,-8} .. {-13,-9}z6
+-- z7
+-- z8
+-- z9
+-- z10
+{2,27} .. {-26,0}z11
+{-12,0} .. {-9,-9}z12
+{-13,-13} .. {1,-17}z13
+-- z14
+-- z15
+-- z16
+{-12,9} .. {-12,9}z17
+{-2,2} .. {-2,1}z18
+{-6,2} .. {-5,0}z19
+{-26,0} .. {0,-25}z20
+{0,-19} .. {13,-9}z21
+-- z22
+-- z23
+{-2,-2} .. {-4,-3}z24
+{-9,-10} .. {0,-11}z25
+{0,-34} .. {31,12}z26
+{6,3} .. {6,4}z27
+{44,31} .. {43,31}z28
+-- z29
+-- z30
+-- z31
+{-2,-26} .. {25,0}z32
+{13,0} .. {8,9}z33
+{14,13} .. {-2,18}z34
+-- z35
+-- z36
+-- z37
+-- z38
+{7,-3} .. {7,-4}z39
+{7,-2} .. {6,0}z40
+{26,0} .. {0,26}z41
+{0,11} .. {-9,9}z42
+{-22,17} .. {-3,2}z43
+);
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(43,537FX#,488FY#,31FY#);
+"plus";
+z1=(309FX,188FY);
+z2=(531FX,188FY);
+z3=(531FX,266FY);
+z4=(309FX,266FY);
+z5=(309FX,488FY);
+z6=(231FX,488FY);
+z7=(231FX,266FY);
+z8=(10FX,266FY);
+z9=(10FX,188FY);
+z10=(231FX,188FY);
+z11=(231FX,-32FY);
+z12=(309FX,-32FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,263FX#,78FY#,118FY#);
+"comma";
+z1=(165FX,-24FY);
+z2=(171FX,13FY);
+z3=(171FX,79FY);
+z4=(92FX,79FY);
+z5=(92FX,-17FY);
+z6=(106FX,-17FY);
+z7=(89FX,-118FY);
+z8=(140FX,-118FY);
+z9=(165FX,-24FY);
+FuF (z1
+{5,17} .. {0,17}z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{10,39} .. {7,27}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(45,422FX#,266FY#,0FY#);
+"miuthyun";
+z1=(45FX,188FY);
+z2=(378FX,188FY);
+z3=(378FX,266FY);
+z4=(45FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,263FX#,78FY#,0FY#);
+"period";
+z1=(92FX,0FY);
+z2=(171FX,0FY);
+z3=(171FX,79FY);
+z4=(92FX,79FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(47,251FX#,658FY#,11FY#);
+"slash";
+z1=(82FX,-11FY);
+z2=(256FX,658FY);
+z3=(170FX,658FY);
+z4=(-5FX,-11FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,503FX#,650FY#,11FY#);
+"zero";
+z1=(437FX,139FY);
+z2=(460FX,319FY);
+z3=(446FX,469FY);
+z4=(249FX,650FY);
+z5=(130FX,610FY);
+z6=(38FX,319FY);
+z7=(249FX,-11FY);
+z8=(437FX,139FY);
+z9=(322FX,513FY);
+z10=(354FX,319FY);
+z11=(322FX,126FY);
+z12=(249FX,82FY);
+z13=(143FX,319FY);
+z14=(248FX,557FY);
+z15=(322FX,513FY);
+FuF (z1
+{16,46} .. {0,74}z2
+{0,62} .. {-9,38}z3
+{-27,105} .. {-113,0}z4
+{-47,0} .. {-32,-27}z5
+{-81,-68} .. {0,-101}z6
+{0,-146} .. {179,0}z7
+{96,0} .. {29,91}z8
+);
+FuF (z9
+{20,-29} .. {0,-102}z10
+{0,-101} .. {-20,-30}z11
+{-22,-30} .. {-27,0}z12
+{-107,0} .. {0,67}z13
+{0,68} .. {106,0}z14
+{29,0} .. {21,-30}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(49,503FX#,650FY#,0FY#);
+"one";
+z1=(239FX,0FY);
+z2=(337FX,0FY);
+z3=(337FX,650FY);
+z4=(269FX,650FY);
+z5=(98FX,490FY);
+z6=(98FX,384FY);
+z7=(239FX,465FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-35,-75} .. {-69,-35}z5
+-- z6
+{50,21} .. {43,35}z7
+);
+lbl (range 1 thru 7);
+endchar;
+
+beginchar(50,503FX#,650FY#,0FY#);
+"two";
+z1=(27FX,0FY);
+z2=(455FX,0FY);
+z3=(455FX,103FY);
+z4=(174FX,103FY);
+z5=(271FX,195FY);
+z6=(387FX,306FY);
+z7=(455FX,463FY);
+z8=(399FX,597FY);
+z9=(252FX,650FY);
+z10=(105FX,601FY);
+z11=(40FX,443FY);
+z12=(147FX,431FY);
+z13=(175FX,528FY);
+z14=(250FX,557FY);
+z15=(349FX,465FY);
+z16=(317FX,383FY);
+z17=(37FX,73FY);
+z18=(27FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{27,35} .. {32,28}z5
+{54,46} .. {24,28}z6
+{39,45} .. {0,62}z7
+{0,53} .. {-37,36}z8
+{-37,36} .. {-60,0}z9
+{-60,0} .. {-38,-33}z10
+{-38,-34} .. {-7,-76}z11
+-- z12
+{0,53} .. {18,18}z13
+{19,19} .. {32,0}z14
+{53,0} .. {0,-58}z15
+{0,-24} .. {-22,-30}z16
+{-81,-112} .. {-48,-135}z17
+{-10,-28} .. {0,-30}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(51,503FX#,650FY#,11FY#);
+"three";
+z1=(400FX,49FY);
+z2=(462FX,197FY);
+z3=(371FX,353FY);
+z4=(432FX,474FY);
+z5=(241FX,650FY);
+z6=(112FX,604FY);
+z7=(43FX,462FY);
+z8=(147FX,443FY);
+z9=(243FX,557FY);
+z10=(327FX,476FY);
+z11=(295FX,411FY);
+z12=(194FX,390FY);
+z13=(181FX,286FY);
+z14=(251FX,300FY);
+z15=(354FX,195FY);
+z16=(245FX,82FY);
+z17=(139FX,205FY);
+z18=(37FX,191FY);
+z19=(103FX,41FY);
+z20=(244FX,-11FY);
+z21=(400FX,49FY);
+FuF (z1
+{41,40} .. {0,58}z2
+{0,69} .. {-62,28}z3
+{38,28} .. {0,49}z4
+{0,108} .. {-99,0}z5
+{-50,0} .. {-36,-31}z6
+{-35,-31} .. {-12,-69}z7
+-- z8
+{9,60} .. {68,0}z9
+{47,0} .. {0,-50}z10
+{0,-31} .. {-21,-14}z11
+{-37,-25} .. {-41,3}z12
+-- z13
+{41,12} .. {13,0}z14
+{60,0} .. {0,-62}z15
+{0,-63} .. {-62,0}z16
+{-73,0} .. {-12,63}z17
+-- z18
+{7,-70} .. {38,-35}z19
+{38,-35} .. {56,0}z20
+{62,0} .. {42,41}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(52,503FX#,647FY#,0FY#);
+"four";
+z1=(378FX,148FY);
+z2=(459FX,148FY);
+z3=(459FX,248FY);
+z4=(378FX,248FY);
+z5=(378FX,647FY);
+z6=(294FX,647FY);
+z7=(11FX,237FY);
+z8=(11FX,148FY);
+z9=(274FX,148FY);
+z10=(274FX,0FY);
+z11=(378FX,0FY);
+z12=(274FX,462FY);
+z13=(274FX,248FY);
+z14=(128FX,248FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,503FX#,638FY#,11FY#);
+"five";
+z1=(416FX,70FY);
+z2=(467FX,224FY);
+z3=(265FX,439FY);
+z4=(172FX,416FY);
+z5=(195FX,536FY);
+z6=(438FX,536FY);
+z7=(438FX,639FY);
+z8=(112FX,639FY);
+z9=(48FX,293FY);
+z10=(142FX,281FY);
+z11=(245FX,342FY);
+z12=(358FX,217FY);
+z13=(246FX,82FY);
+z14=(143FX,200FY);
+z15=(36FX,190FY);
+z16=(102FX,40FY);
+z17=(246FX,-11FY);
+z18=(416FX,70FY);
+FuF (z1
+{34,43} .. {0,59}z2
+{0,120} .. {-120,0}z3
+{-32,0} .. {-30,-15}z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{26,38} .. {47,0}z11
+{73,0} .. {0,-73}z12
+{0,-69} .. {-74,0}z13
+{-70,0} .. {-9,63}z14
+-- z15
+{7,-71} .. {38,-34}z16
+{38,-34} .. {58,0}z17
+{71,0} .. {42,54}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(54,503FX#,650FY#,11FY#);
+"six";
+z1=(436FX,101FY);
+z2=(462FX,215FY);
+z3=(405FX,370FY);
+z4=(269FX,431FY);
+z5=(139FX,378FY);
+z6=(143FX,412FY);
+z7=(260FX,557FY);
+z8=(351FX,459FY);
+z9=(453FX,467FY);
+z10=(391FX,606FY);
+z11=(265FX,650FY);
+z12=(34FX,304FY);
+z13=(96FX,64FY);
+z14=(258FX,-11FY);
+z15=(436FX,101FY);
+z16=(326FX,301FY);
+z17=(356FX,211FY);
+z18=(326FX,116FY);
+z19=(257FX,82FY);
+z20=(149FX,215FY);
+z21=(254FX,333FY);
+z22=(326FX,301FY);
+FuF (z1
+{17,35} .. {0,40}z2
+{0,62} .. {-38,41}z3
+{-37,40} .. {-53,0}z4
+{-48,0} .. {-35,-34}z5
+{1,12} .. {2,11}z6
+{9,64} .. {73,0}z7
+{63,0} .. {12,-53}z8
+-- z9
+{-9,67} .. {-34,30}z10
+{-33,30} .. {-50,0}z11
+{-190,0} .. {0,-158}z12
+{0,-108} .. {42,-51}z13
+{42,-50} .. {66,0}z14
+{78,0} .. {35,72}z15
+);
+FuF (z16
+{20,-22} .. {0,-39}z17
+{0,-42} .. {-20,-22}z18
+{-20,-23} .. {-26,0}z19
+{-69,0} .. {0,64}z20
+{0,63} .. {65,0}z21
+{29,0} .. {19,-21}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(55,503FX#,639FY#,0FY#);
+"seven";
+z1=(346FX,391FY);
+z2=(462FX,559FY);
+z3=(462FX,639FY);
+z4=(43FX,639FY);
+z5=(43FX,536FY);
+z6=(320FX,536FY);
+z7=(127FX,0FY);
+z8=(233FX,0FY);
+z9=(346FX,391FY);
+FuF (z1
+{38,69} .. {40,44}z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-109,-140} .. {0,-180}z7
+-- z8
+{0,133} .. {62,113}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(56,503FX#,650FY#,11FY#);
+"eight";
+z1=(404FX,47FY);
+z2=(463FX,191FY);
+z3=(372FX,351FY);
+z4=(439FX,473FY);
+z5=(386FX,599FY);
+z6=(249FX,650FY);
+z7=(113FX,600FY);
+z8=(61FX,476FY);
+z9=(127FX,351FY);
+z10=(37FX,193FY);
+z11=(250FX,-11FY);
+z12=(404FX,47FY);
+z13=(309FX,533FY);
+z14=(333FX,474FY);
+z15=(250FX,394FY);
+z16=(166FX,478FY);
+z17=(250FX,557FY);
+z18=(309FX,533FY);
+z19=(327FX,270FY);
+z20=(358FX,190FY);
+z21=(251FX,82FY);
+z22=(143FX,193FY);
+z23=(248FX,301FY);
+z24=(327FX,270FY);
+FuF (z1
+{39,39} .. {0,56}z2
+{0,70} .. {-60,32}z3
+{43,27} .. {0,52}z4
+{0,50} .. {-35,34}z5
+{-35,34} .. {-56,0}z6
+{-56,0} .. {-35,-34}z7
+{-35,-34} .. {0,-48}z8
+{0,-54} .. {44,-28}z9
+{-61,-30} .. {0,-69}z10
+{0,-125} .. {117,0}z11
+{63,0} .. {40,39}z12
+);
+FuF (z13
+{16,-16} .. {0,-23}z14
+{0,-48} .. {-46,0}z15
+{-49,0} .. {0,51}z16
+{0,47} .. {44,0}z17
+{24,0} .. {16,-16}z18
+);
+FuF (z19
+{20,-21} .. {0,-32}z20
+{0,-64} .. {-62,0}z21
+{-63,0} .. {0,65}z22
+{0,62} .. {60,0}z23
+{32,0} .. {21,-21}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(57,503FX#,650FY#,11FY#);
+"nine";
+z1=(359FX,262FY);
+z2=(349FX,201FY);
+z3=(234FX,82FY);
+z4=(147FX,181FY);
+z5=(47FX,171FY);
+z6=(108FX,33FY);
+z7=(233FX,-11FY);
+z8=(358FX,29FY);
+z9=(463FX,336FY);
+z10=(437FX,516FY);
+z11=(242FX,650FY);
+z12=(38FX,426FY);
+z13=(94FX,269FY);
+z14=(231FX,209FY);
+z15=(359FX,262FY);
+z16=(321FX,524FY);
+z17=(351FX,430FY);
+z18=(249FX,306FY);
+z19=(143FX,424FY);
+z20=(176FX,520FY);
+z21=(251FX,557FY);
+z22=(321FX,524FY);
+FuF (z1
+{-1,-20} .. {-5,-21}z2
+{-16,-62} .. {-71,0}z3
+{-61,0} .. {-9,55}z4
+-- z5
+{9,-67} .. {33,-29}z6
+{33,-30} .. {50,0}z7
+{47,0} .. {36,27}z8
+{92,69} .. {0,107}z9
+{0,77} .. {-18,43}z10
+{-35,83} .. {-87,0}z11
+{-126,0} .. {0,-124}z12
+{0,-64} .. {38,-41}z13
+{37,-40} .. {54,0}z14
+{48,0} .. {34,33}z15
+);
+FuF (z16
+{20,-22} .. {0,-41}z17
+{0,-66} .. {-70,0}z18
+{-66,0} .. {0,64}z19
+{0,40} .. {21,24}z20
+{22,25} .. {28,0}z21
+{27,0} .. {20,-22}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(58,263FX#,420FY#,0FY#);
+"colon";
+z1=(92FX,318FY);
+z2=(171FX,318FY);
+z3=(171FX,421FY);
+z4=(92FX,421FY);
+z5=(92FX,0FY);
+z6=(171FX,0FY);
+z7=(171FX,103FY);
+z8=(92FX,103FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(59,263FX#,420FY#,118FY#);
+"semicolon";
+z1=(92FX,316FY);
+z2=(171FX,316FY);
+z3=(171FX,421FY);
+z4=(92FX,421FY);
+z5=(165FX,-14FY);
+z6=(171FX,26FY);
+z7=(171FX,98FY);
+z8=(92FX,98FY);
+z9=(92FX,-7FY);
+z10=(106FX,-7FY);
+z11=(89FX,-118FY);
+z12=(140FX,-118FY);
+z13=(165FX,-14FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+{5,18} .. {0,19}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{10,42} .. {7,30}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(60,483FX#,417FY#,0FY#);
+"guillemotleft";
+z1=(340FX,31FY);
+z2=(432FX,31FY);
+z3=(320FX,224FY);
+z4=(432FX,418FY);
+z5=(340FX,418FY);
+z6=(206FX,224FY);
+z7=(169FX,224FY);
+z8=(279FX,418FY);
+z9=(188FX,418FY);
+z10=(53FX,224FY);
+z11=(188FX,31FY);
+z12=(278FX,31FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(61,537FX#,421FY#,0FY#);
+"equal";
+z1=(14FX,352FY);
+z2=(527FX,352FY);
+z3=(527FX,421FY);
+z4=(14FX,421FY);
+z5=(14FX,201FY);
+z6=(527FX,201FY);
+z7=(527FX,270FY);
+z8=(14FX,270FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,483FX#,417FY#,0FY#);
+"guillemotright";
+z1=(291FX,31FY);
+z2=(427FX,224FY);
+z3=(291FX,418FY);
+z4=(201FX,418FY);
+z5=(311FX,224FY);
+z6=(201FX,31FY);
+z7=(141FX,31FY);
+z8=(274FX,224FY);
+z9=(141FX,418FY);
+z10=(49FX,418FY);
+z11=(159FX,224FY);
+z12=(49FX,31FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(63,120FX#,731FY#,0FY#);
+"paruyg";
+z1=(54FX,580FY);
+z2=(69FX,638FY);
+z3=(-38FX,731FY);
+z4=(-144FX,619FY);
+z5=(-144FX,534FY);
+z6=(-94FX,534FY);
+z7=(-95FX,599FY);
+z8=(-33FX,682FY);
+z9=(15FX,631FY);
+z10=(1FX,597FY);
+z11=(-38FX,659FY);
+z12=(-61FX,633FY);
+z13=(-59FX,616FY);
+z14=(1FX,547FY);
+z15=(54FX,580FY);
+FuF (z1
+{10,17} .. {0,22}z2
+{0,59} .. {-55,0}z3
+{-68,0} .. {0,-65}z4
+-- z5
+-- z6
+{0,22} .. {0,22}z7
+{0,48} .. {58,0}z8
+{36,0} .. {0,-34}z9
+{0,-7} .. {-13,0}z10
+{-10,0} .. {-33,0}z11
+{-18,0} .. {0,-11}z12
+{0,-5} .. {1,-6}z13
+{7,-29} .. {37,0}z14
+{24,0} .. {12,21}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(64,900FX#,646FY#,186FY#);
+"at";
+z1=(790FX,-84FY);
+z2=(877FX,32FY);
+z3=(769FX,32FY);
+z4=(484FX,-94FY);
+z5=(141FX,211FY);
+z6=(473FX,555FY);
+z7=(755FX,307FY);
+z8=(659FX,115FY);
+z9=(610FX,92FY);
+z10=(596FX,104FY);
+z11=(608FX,165FY);
+z12=(672FX,464FY);
+z13=(566FX,464FY);
+z14=(556FX,420FY);
+z15=(439FX,476FY);
+z16=(207FX,194FY);
+z17=(373FX,-8FY);
+z18=(491FX,44FY);
+z19=(581FX,-9FY);
+z20=(759FX,81FY);
+z21=(848FX,306FY);
+z22=(805FX,470FY);
+z23=(476FX,646FY);
+z24=(241FX,584FY);
+z25=(48FX,204FY);
+z26=(485FX,-187FY);
+z27=(790FX,-84FY);
+z28=(519FX,325FY);
+z29=(525FX,279FY);
+z30=(511FX,200FY);
+z31=(389FX,85FY);
+z32=(338FX,111FY);
+z33=(315FX,189FY);
+z34=(444FX,383FY);
+z35=(519FX,325FY);
+FuF (z1
+{36,31} .. {26,54}z2
+-- z3
+{-65,-95} .. {-110,0}z4
+{-197,0} .. {0,212}z5
+{0,195} .. {199,0}z6
+{145,0} .. {0,-157}z7
+{0,-73} .. {-60,-42}z8
+{-24,-17} .. {-9,0}z9
+{-8,0} .. {0,8}z10
+{0,2} .. {8,40}z11
+-- z12
+-- z13
+-- z14
+{-30,35} .. {-46,0}z15
+{-137,0} .. {0,-123}z16
+{0,-96} .. {107,0}z17
+{45,0} .. {32,29}z18
+{12,-40} .. {37,0}z19
+{66,0} .. {53,59}z20
+{59,65} .. {0,84}z21
+{0,59} .. {-29,51}z22
+{-68,122} .. {-136,0}z23
+{-91,0} .. {-65,-42}z24
+{-125,-81} .. {0,-146}z25
+{0,-263} .. {246,0}z26
+{113,0} .. {87,77}z27
+);
+FuF (z28
+{4,-12} .. {0,-18}z29
+{0,-26} .. {-10,-26}z30
+{-17,-49} .. {-58,0}z31
+{-18,0} .. {-16,19}z32
+{-15,17} .. {0,36}z33
+{0,71} .. {83,0}z34
+{36,0} .. {10,-33}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(65,697FX#,651FY#,0FY#);
+"A";
+z1=(521FX,0FY);
+z2=(624FX,0FY);
+z3=(589FX,153FY);
+z4=(511FX,209FY);
+z5=(511FX,651FY);
+z6=(399FX,651FY);
+z7=(399FX,252FY);
+z8=(258FX,107FY);
+z9=(122FX,264FY);
+z10=(122FX,651FY);
+z11=(10FX,651FY);
+z12=(10FX,264FY);
+z13=(57FX,96FY);
+z14=(252FX,0FY);
+z15=(353FX,25FY);
+z16=(468FX,121FY);
+z17=(521FX,0FY);
+FuF (z1
+-- z2
+{0,70} .. {-24,37}z3
+{-20,31} .. {-32,5}z4
+-- z5
+-- z6
+-- z7
+{0,-58} .. {-58,0}z8
+{-97,0} .. {0,92}z9
+-- z10
+-- z11
+-- z12
+{0,-67} .. {31,-44}z13
+{44,-62} .. {75,0}z14
+{33,0} .. {34,17}z15
+{39,18} .. {21,40}z16
+{32,-5} .. {0,-86}z17
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(66,557FX#,634FY#,0FY#);
+"B";
+z1=(398FX,177FY);
+z2=(494FX,177FY);
+z3=(453FX,285FY);
+z4=(340FX,314FY);
+z5=(121FX,314FY);
+z6=(121FX,373FY);
+z7=(269FX,538FY);
+z8=(381FX,414FY);
+z9=(381FX,376FY);
+z10=(478FX,376FY);
+z11=(478FX,447FY);
+z12=(265FX,634FY);
+z13=(10FX,329FY);
+z14=(10FX,0FY);
+z15=(121FX,0FY);
+z16=(121FX,215FY);
+z17=(341FX,215FY);
+z18=(384FX,209FY);
+z19=(398FX,177FY);
+FuF (z1
+-- z2
+{0,55} .. {-28,21}z3
+{-27,20} .. {-48,0}z4
+-- z5
+-- z6
+{0,99} .. {100,0}z7
+{74,0} .. {0,-74}z8
+-- z9
+-- z10
+-- z11
+{0,125} .. {-112,0}z12
+{-196,0} .. {0,-183}z13
+-- z14
+-- z15
+-- z16
+-- z17
+{20,0} .. {9,-4}z18
+{11,-5} .. {0,-22}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(67,570FX#,651FY#,0FY#);
+"C";
+z1=(477FX,110FY);
+z2=(519FX,238FY);
+z3=(395FX,435FY);
+z4=(415FX,452FY);
+z5=(441FX,529FY);
+z6=(394FX,616FY);
+z7=(274FX,651FY);
+z8=(98FX,529FY);
+z9=(148FX,435FY);
+z10=(129FX,421FY);
+z11=(17FX,295FY);
+z12=(144FX,296FY);
+z13=(256FX,362FY);
+z14=(340FX,338FY);
+z15=(398FX,237FY);
+z16=(268FX,108FY);
+z17=(145FX,196FY);
+z18=(21FX,196FY);
+z19=(119FX,47FY);
+z20=(271FX,0FY);
+z21=(477FX,110FY);
+z22=(316FX,550FY);
+z23=(331FX,520FY);
+z24=(263FX,480FY);
+z25=(202FX,525FY);
+z26=(270FX,564FY);
+z27=(316FX,550FY);
+FuF (z1
+{28,38} .. {0,47}z2
+{0,79} .. {-71,32}z3
+{12,10} .. {1,1}z4
+{18,20} .. {0,30}z5
+{0,35} .. {-30,23}z6
+{-33,24} .. {-47,0}z7
+{-70,0} .. {0,-88}z8
+{0,-51} .. {33,-29}z9
+{-5,-4} .. {-8,-5}z10
+{-61,-37} .. {-35,-67}z11
+-- z12
+{35,48} .. {64,0}z13
+{33,0} .. {23,-16}z14
+{32,-21} .. {0,-40}z15
+{0,-77} .. {-74,0}z16
+{-81,0} .. {-34,65}z17
+-- z18
+{23,-74} .. {45,-32}z19
+{44,-31} .. {57,0}z20
+{77,0} .. {45,62}z21
+);
+FuF (z22
+{12,-10} .. {0,-11}z23
+{-1,-30} .. {-22,0}z24
+{-25,0} .. {-1,30}z25
+{3,30} .. {23,0}z26
+{19,0} .. {12,-9}z27
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(68,721FX#,651FY#,0FY#);
+"D";
+z1=(569FX,191FY);
+z2=(670FX,191FY);
+z3=(522FX,326FY);
+z4=(483FX,326FY);
+z5=(483FX,427FY);
+z6=(246FX,651FY);
+z7=(86FX,599FY);
+z8=(10FX,409FY);
+z9=(119FX,409FY);
+z10=(255FX,557FY);
+z11=(372FX,378FY);
+z12=(372FX,0FY);
+z13=(483FX,0FY);
+z14=(483FX,229FY);
+z15=(514FX,229FY);
+z16=(560FX,221FY);
+z17=(569FX,191FY);
+FuF (z1
+-- z2
+{0,101} .. {-93,0}z3
+-- z4
+-- z5
+{0,140} .. {-136,0}z6
+{-63,0} .. {-43,-35}z7
+{-51,-42} .. {0,-89}z8
+-- z9
+{0,108} .. {107,0}z10
+{98,0} .. {0,-78}z11
+-- z12
+-- z13
+-- z14
+-- z15
+{23,0} .. {8,-5}z16
+{7,-3} .. {0,-22}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(69,573FX#,643FY#,0FY#);
+"E";
+z1=(430FX,348FY);
+z2=(523FX,348FY);
+z3=(486FX,446FY);
+z4=(349FX,469FY);
+z5=(120FX,469FY);
+z6=(120FX,644FY);
+z7=(10FX,644FY);
+z8=(10FX,278FY);
+z9=(53FX,88FY);
+z10=(239FX,0FY);
+z11=(461FX,208FY);
+z12=(461FX,269FY);
+z13=(365FX,269FY);
+z14=(365FX,226FY);
+z15=(340FX,129FY);
+z16=(238FX,96FY);
+z17=(189FX,102FY);
+z18=(120FX,258FY);
+z19=(120FX,380FY);
+z20=(342FX,380FY);
+z21=(416FX,375FY);
+z22=(430FX,348FY);
+FuF (z1
+-- z2
+{0,52} .. {-26,17}z3
+{-26,16} .. {-64,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+{0,-79} .. {29,-48}z9
+{43,-69} .. {76,0}z10
+{129,0} .. {0,140}z11
+-- z12
+-- z13
+-- z14
+{0,-45} .. {-16,-21}z15
+{-26,-33} .. {-37,0}z16
+{-21,0} .. {-12,3}z17
+{-61,21} .. {0,54}z18
+-- z19
+-- z20
+{41,0} .. {10,-3}z21
+{7,-3} .. {3,-20}z22
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(70,694FX#,660FY#,0FY#);
+"F";
+z1=(535FX,55FY);
+z2=(611FX,223FY);
+z3=(380FX,472FY);
+z4=(380FX,660FY);
+z5=(214FX,660FY);
+z6=(88FX,555FY);
+z7=(158FX,444FY);
+z8=(270FX,402FY);
+z9=(270FX,88FY);
+z10=(263FX,88FY);
+z11=(97FX,183FY);
+z12=(10FX,183FY);
+z13=(43FX,98FY);
+z14=(268FX,0FY);
+z15=(317FX,0FY);
+z16=(369FX,0FY);
+z17=(535FX,55FY);
+z18=(270FX,582FY);
+z19=(270FX,492FY);
+z20=(187FX,547FY);
+z21=(193FX,569FY);
+z22=(270FX,582FY);
+z23=(479FX,326FY);
+z24=(517FX,214FY);
+z25=(382FX,88FY);
+z26=(380FX,88FY);
+z27=(380FX,382FY);
+z28=(479FX,326FY);
+FuF (z1
+{51,41} .. {0,70}z2
+{0,134} .. {-126,18}z3
+-- z4
+-- z5
+{-61,0} .. {0,-68}z6
+{0,-49} .. {46,-25}z7
+-- z8
+-- z9
+-- z10
+{-68,0} .. {-40,52}z11
+-- z12
+{0,-38} .. {20,-24}z13
+{55,-66} .. {85,0}z14
+-- z15
+-- z16
+{65,0} .. {45,37}z17
+);
+FuF (z18
+-- z19
+{-25,8} .. {0,33}z20
+{0,15} .. {2,2}z21
+{9,7} .. {44,0}z22
+);
+FuF (z23
+{25,-28} .. {0,-47}z24
+{0,-88} .. {-83,0}z25
+-- z26
+-- z27
+{43,-11} .. {23,-27}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(71,723FX#,651FY#,0FY#);
+"G";
+z1=(485FX,249FY);
+z2=(672FX,251FY);
+z3=(672FX,333FY);
+z4=(485FX,334FY);
+z5=(485FX,467FY);
+z6=(247FX,651FY);
+z7=(10FX,436FY);
+z8=(228FX,242FY);
+z9=(374FX,254FY);
+z10=(372FX,0FY);
+z11=(485FX,0FY);
+z12=(340FX,536FY);
+z13=(375FX,428FY);
+z14=(263FX,329FY);
+z15=(119FX,437FY);
+z16=(247FX,557FY);
+z17=(340FX,536FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,143} .. {-124,0}z6
+{-127,0} .. {0,-136}z7
+{0,-137} .. {131,0}z8
+{51,0} .. {49,12}z9
+-- z10
+-- z11
+);
+FuF (z12
+{21,-16} .. {0,-58}z13
+{0,-82} .. {-78,0}z14
+{-83,0} .. {0,101}z15
+{0,88} .. {83,0}z16
+{47,0} .. {16,-13}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(72,672FX#,682FY#,17FY#);
+"H";
+z1=(-8FX,482FY);
+z2=(621FX,-17FY);
+z3=(621FX,136FY);
+z4=(221FX,438FY);
+z5=(541FX,519FY);
+z6=(541FX,594FY);
+z7=(506FX,630FY);
+z8=(328FX,682FY);
+z9=(420FX,596FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(73,473FX#,651FY#,0FY#);
+"I";
+z1=(336FX,183FY);
+z2=(443FX,183FY);
+z3=(443FX,312FY);
+z4=(255FX,477FY);
+z5=(118FX,427FY);
+z6=(118FX,651FY);
+z7=(10FX,651FY);
+z8=(10FX,0FY);
+z9=(118FX,0FY);
+z10=(118FX,253FY);
+z11=(251FX,369FY);
+z12=(336FX,296FY);
+FuF (z1
+
+-- z2
+-- z3
+{0,106} .. {-92,0}z4
+{-48,0} .. {-37,-31}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,66} .. {59,0}z11
+{44,0} .. {0,-50}z12
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(74,637FX#,646FY#,15FY#);
+"J";
+z1=(480FX,-16FY);
+z2=(592FX,-16FY);
+z3=(545FX,95FY);
+z4=(371FX,129FY);
+z5=(345FX,129FY);
+z6=(562FX,423FY);
+z7=(309FX,647FY);
+z8=(49FX,397FY);
+z9=(200FX,236FY);
+z10=(243FX,171FY);
+z11=(197FX,129FY);
+z12=(102FX,129FY);
+z13=(102FX,162FY);
+z14=(10FX,162FY);
+z15=(10FX,-1FY);
+z16=(101FX,-1FY);
+z17=(101FX,33FY);
+z18=(353FX,33FY);
+z19=(463FX,22FY);
+z20=(480FX,-16FY);
+z21=(433FX,455FY);
+z22=(444FX,408FY);
+z23=(328FX,244FY);
+z24=(198FX,352FY);
+z25=(169FX,397FY);
+z26=(213FX,487FY);
+z27=(320FX,539FY);
+z28=(433FX,455FY);
+FuF (z1
+-- z2
+{0,57} .. {-32,21}z3
+{-36,23} .. {-79,0}z4
+-- z5
+{99,78} .. {0,145}z6
+{0,133} .. {-123,0}z7
+{-113,0} .. {0,-115}z8
+{0,-82} .. {58,-40}z9
+{31,-22} .. {0,-20}z10
+{0,-29} .. {-21,-8}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+{56,0} .. {18,-7}z19
+{13,-5} .. {0,-26}z20
+);
+FuF (z21
+{7,-18} .. {0,-13}z22
+{0,-57} .. {-45,-29}z23
+{-25,57} .. {-49,31}z24
+{-22,14} .. {0,16}z25
+{0,27} .. {31,33}z26
+{34,35} .. {38,0}z27
+{56,0} .. {19,-51}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(75,536FX#,648FY#,0FY#);
+"K";
+z1=(362FX,0FY);
+z2=(484FX,0FY);
+z3=(484FX,482FY);
+z4=(363FX,482FY);
+z5=(363FX,335FY);
+z6=(246FX,253FY);
+z7=(120FX,359FY);
+z8=(120FX,648FY);
+z9=(10FX,648FY);
+z10=(10FX,392FY);
+z11=(249FX,145FY);
+z12=(362FX,172FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-75} .. {-62,0}z6
+{-69,0} .. {0,80}z7
+-- z8
+-- z9
+-- z10
+{0,-164} .. {163,0}z11
+{41,0} .. {34,24}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(76,449FX#,646FY#,66FY#);
+"L";
+z1=(296FX,-67FY);
+z2=(397FX,-67FY);
+z3=(341FX,67FY);
+z4=(224FX,96FY);
+z5=(118FX,96FY);
+z6=(118FX,647FY);
+z7=(10FX,647FY);
+z8=(10FX,-3FY);
+z9=(193FX,-3FY);
+z10=(266FX,-9FY);
+z11=(296FX,-67FY);
+FuF (z1
+-- z2
+{0,68} .. {-38,26}z3
+{-30,20} .. {-47,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{37,0} .. {12,-4}z10
+{21,-7} .. {0,-38}z11
+);
+lbl (range 1 thru 11);
+endchar;
+
+beginchar(77,733FX#,646FY#,0FY#);
+"M";
+z1=(584FX,502FY);
+z2=(681FX,502FY);
+z3=(538FX,647FY);
+z4=(390FX,647FY);
+z5=(390FX,288FY);
+z6=(352FX,132FY);
+z7=(248FX,103FY);
+z8=(120FX,276FY);
+z9=(120FX,647FY);
+z10=(10FX,647FY);
+z11=(10FX,279FY);
+z12=(253FX,0FY);
+z13=(500FX,283FY);
+z14=(500FX,549FY);
+z15=(533FX,549FY);
+z16=(584FX,502FY);
+FuF (z1
+-- z2
+{0,103} .. {-99,0}z3
+-- z4
+-- z5
+{0,-81} .. {-24,-25}z6
+{-17,-18} .. {-54,0}z7
+{-102,0} .. {0,88}z8
+-- z9
+-- z10
+-- z11
+{0,-163} .. {178,0}z12
+{187,0} .. {0,177}z13
+-- z14
+-- z15
+{39,0} .. {0,-43}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(78,753FX#,652FY#,0FY#);
+"N";
+z1=(628FX,53FY);
+z2=(701FX,231FY);
+z3=(701FX,346FY);
+z4=(591FX,346FY);
+z5=(591FX,227FY);
+z6=(464FX,97FY);
+z7=(335FX,271FY);
+z8=(335FX,572FY);
+z9=(246FX,572FY);
+z10=(150FX,591FY);
+z11=(135FX,652FY);
+z12=(29FX,652FY);
+z13=(204FX,478FY);
+z14=(224FX,478FY);
+z15=(224FX,281FY);
+z16=(460FX,0FY);
+z17=(628FX,53FY);
+FuF (z1
+{49,40} .. {0,77}z2
+-- z3
+-- z4
+-- z5
+{0,-90} .. {-91,0}z6
+{-97,0} .. {0,82}z7
+-- z8
+-- z9
+{-52,0} .. {-14,12}z10
+{-9,7} .. {0,40}z11
+-- z12
+{0,-118} .. {121,0}z13
+-- z14
+-- z15
+{0,-150} .. {168,0}z16
+{69,0} .. {43,36}z17
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(79,544FX#,646FY#,0FY#);
+"O";
+z1=(383FX,0FY);
+z2=(491FX,0FY);
+z3=(491FX,411FY);
+z4=(445FX,550FY);
+z5=(243FX,646FY);
+z6=(82FX,583FY);
+z7=(9FX,377FY);
+z8=(9FX,0FY);
+z9=(118FX,0FY);
+z10=(118FX,407FY);
+z11=(251FX,542FY);
+z12=(335FX,511FY);
+z13=(383FX,421FY);
+FuF (z1
+-- z2
+-- z3
+{0,53} .. {-31,40}z4
+{-46,58} .. {-73,0}z5
+{-64,0} .. {-43,-42}z6
+{-49,-49} .. {0,-88}z7
+-- z8
+-- z9
+-- z10
+{0,77} .. {75,0}z11
+{28,0} .. {28,-21}z12
+{33,-25} .. {0,-36}z13
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(80,671FX#,645FY#,0FY#);
+"P";
+z1=(512FX,0FY);
+z2=(618FX,0FY);
+z3=(618FX,372FY);
+z4=(565FX,556FY);
+z5=(324FX,645FY);
+z6=(10FX,358FY);
+z7=(10FX,337FY);
+z8=(114FX,337FY);
+z9=(274FX,555FY);
+z10=(274FX,180FY);
+z11=(384FX,180FY);
+z12=(384FX,555FY);
+z13=(512FX,375FY);
+FuF (z1
+-- z2
+-- z3
+{0,76} .. {-36,46}z4
+{-59,75} .. {-88,0}z5
+{-193,0} .. {0,-203}z6
+-- z7
+-- z8
+{0,119} .. {131,6}z9
+-- z10
+-- z11
+-- z12
+{103,-6} .. {0,-94}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(81,646FX#,642FY#,0FY#);
+"Q";
+z1=(501FX,73FY);
+z2=(608FX,73FY);
+z3=(584FX,169FY);
+z4=(424FX,209FY);
+z5=(240FX,209FY);
+z6=(240FX,269FY);
+z7=(263FX,251FY);
+z8=(334FX,231FY);
+z9=(580FX,443FY);
+z10=(364FX,643FY);
+z11=(130FX,420FY);
+z12=(130FX,209FY);
+z13=(14FX,209FY);
+z14=(14FX,121FY);
+z15=(130FX,121FY);
+z16=(130FX,5FY);
+z17=(240FX,5FY);
+z18=(240FX,121FY);
+z19=(420FX,121FY);
+z20=(488FX,116FY);
+z21=(501FX,73FY);
+z22=(436FX,511FY);
+z23=(468FX,436FY);
+z24=(363FX,327FY);
+z25=(239FX,427FY);
+z26=(359FX,542FY);
+z27=(436FX,511FY);
+FuF (z1
+-- z2
+{0,49} .. {-17,19}z3
+{-35,42} .. {-49,0}z4
+-- z5
+-- z6
+-- z7
+{23,-13} .. {24,0}z8
+{126,0} .. {0,138}z9
+{0,121} .. {-116,0}z10
+{-138,0} .. {0,-142}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{40,0} .. {7,-3}z20
+{7,-2} .. {0,-35}z21
+);
+FuF (z22
+{22,-20} .. {0,-30}z23
+{0,-58} .. {-59,0}z24
+{-58,0} .. {0,66}z25
+{0,66} .. {65,0}z26
+{30,0} .. {22,-21}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(82,508FX#,651FY#,0FY#);
+"R";
+z1=(349FX,357FY);
+z2=(457FX,357FY);
+z3=(457FX,468FY);
+z4=(245FX,651FY);
+z5=(10FX,385FY);
+z6=(10FX,0FY);
+z7=(118FX,0FY);
+z8=(118FX,352FY);
+z9=(250FX,547FY);
+z10=(349FX,442FY);
+FuF (z1
+-- z2
+-- z3
+{0,130} .. {-115,0}z4
+{-151,0} .. {0,-146}z5
+-- z6
+-- z7
+-- z8
+{0,97} .. {113,0}z9
+{72,0} .. {0,-77}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(83,545FX#,649FY#,0FY#);
+"S";
+z1=(449FX,102FY);
+z2=(493FX,290FY);
+z3=(493FX,650FY);
+z4=(384FX,650FY);
+z5=(384FX,270FY);
+z6=(242FX,113FY);
+z7=(119FX,286FY);
+z8=(119FX,650FY);
+z9=(10FX,650FY);
+z10=(10FX,286FY);
+z11=(245FX,0FY);
+z12=(449FX,102FY);
+FuF (z1
+{30,48} .. {0,77}z2
+-- z3
+-- z4
+-- z5
+{0,-103} .. {-100,0}z6
+{-99,0} .. {0,88}z7
+-- z8
+-- z9
+-- z10
+{0,-165} .. {173,0}z11
+{82,0} .. {45,75}z12
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(84,591FX#,646FY#,10FY#);
+"T";
+z1=(517FX,87FY);
+z2=(546FX,186FY);
+z3=(435FX,347FY);
+z4=(187FX,427FY);
+z5=(169FX,468FY);
+z6=(291FX,544FY);
+z7=(422FX,427FY);
+z8=(527FX,435FY);
+z9=(519FX,505FY);
+z10=(287FX,646FY);
+z11=(172FX,624FY);
+z12=(62FX,464FY);
+z13=(68FX,420FY);
+z14=(378FX,251FY);
+z15=(439FX,179FY);
+z16=(306FX,92FY);
+z17=(220FX,108FY);
+z18=(142FX,232FY);
+z19=(40FX,224FY);
+z20=(75FX,92FY);
+z21=(310FX,-10FY);
+z22=(517FX,87FY);
+FuF (z1
+{19,31} .. {0,35}z2
+{0,75} .. {-67,31}z3
+{-60,28} .. {-31,30}z4
+{-12,11} .. {0,17}z5
+{0,64} .. {46,0}z6
+{85,0} .. {8,-87}z7
+-- z8
+{0,34} .. {-5,18}z9
+{-34,104} .. {-101,0}z10
+{-41,0} .. {-36,-15}z11
+{-64,-28} .. {0,-71}z12
+{0,-15} .. {4,-14}z13
+{38,-133} .. {104,-40}z14
+{33,-13} .. {0,-40}z15
+{0,-67} .. {-53,0}z16
+{-33,0} .. {-25,11}z17
+{-59,26} .. {-7,59}z18
+-- z19
+{0,-51} .. {28,-43}z20
+{54,-82} .. {92,0}z21
+{77,0} .. {44,69}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(85,1092FX#,652FY#,0FY#);
+"U";
+z1=(878FX,186FY);
+z2=(1040FX,186FY);
+z3=(1040FX,281FY);
+z4=(990FX,281FY);
+z5=(990FX,285FY);
+z6=(770FX,481FY);
+z7=(653FX,456FY);
+z8=(653FX,652FY);
+z9=(539FX,652FY);
+z10=(539FX,0FY);
+z11=(653FX,0FY);
+z12=(653FX,286FY);
+z13=(768FX,378FY);
+z14=(878FX,263FY);
+z15=(396FX,0FY);
+z16=(508FX,0FY);
+z17=(508FX,411FY);
+z18=(460FX,550FY);
+z19=(251FX,646FY);
+z20=(85FX,583FY);
+z21=(9FX,377FY);
+z22=(9FX,0FY);
+z23=(121FX,0FY);
+z24=(121FX,407FY);
+z25=(260FX,542FY);
+z26=(346FX,511FY);
+z27=(396FX,421FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,143} .. {-135,0}z6
+{-41,0} .. {-35,-23}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,73} .. {65,0}z13
+{86,0} .. {0,-84}z14
+);
+FuF (z15
+-- z16
+-- z17
+{0,53} .. {-32,39}z18
+{-48,58} .. {-76,0}z19
+{-66,0} .. {-44,-43}z20
+{-51,-49} .. {0,-88}z21
+-- z22
+-- z23
+-- z24
+{0,77} .. {79,0}z25
+{28,0} .. {29,-21}z26
+{34,-24} .. {0,-36}z27
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(86,736FX#,646FY#,67FY#);
+"V";
+z1=(591FX,-68FY);
+z2=(696FX,-68FY);
+z3=(631FX,66FY);
+z4=(501FX,95FY);
+z5=(488FX,95FY);
+z6=(488FX,647FY);
+z7=(364FX,647FY);
+z8=(364FX,312FY);
+z9=(246FX,216FY);
+z10=(147FX,249FY);
+z11=(121FX,390FY);
+z12=(121FX,488FY);
+z13=(10FX,488FY);
+z14=(10FX,358FY);
+z15=(231FX,114FY);
+z16=(364FX,143FY);
+z17=(364FX,-3FY);
+z18=(503FX,-3FY);
+z19=(573FX,-16FY);
+z20=(591FX,-68FY);
+FuF (z1
+-- z2
+{0,68} .. {-43,25}z3
+{-34,20} .. {-53,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+{0,-74} .. {-64,0}z9
+{-53,0} .. {-15,20}z10
+{-16,22} .. {0,73}z11
+-- z12
+-- z13
+-- z14
+{0,-148} .. {161,0}z15
+{49,0} .. {44,20}z16
+-- z17
+-- z18
+{37,0} .. {11,-8}z19
+{8,-6} .. {4,-35}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(87,547FX#,652FY#,0FY#);
+"W";
+z1=(338FX,186FY);
+z2=(496FX,186FY);
+z3=(496FX,281FY);
+z4=(447FX,281FY);
+z5=(447FX,285FY);
+z6=(234FX,481FY);
+z7=(121FX,456FY);
+z8=(121FX,652FY);
+z9=(10FX,652FY);
+z10=(10FX,0FY);
+z11=(121FX,0FY);
+z12=(121FX,286FY);
+z13=(232FX,378FY);
+z14=(338FX,263FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,143} .. {-131,0}z6
+{-40,0} .. {-34,-23}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,73} .. {62,0}z13
+{84,0} .. {0,-84}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(88,654FX#,648FY#,0FY#);
+"X";
+z1=(541FX,156FY);
+z2=(602FX,318FY);
+z3=(602FX,477FY);
+z4=(492FX,477FY);
+z5=(492FX,333FY);
+z6=(476FX,239FY);
+z7=(415FX,212FY);
+z8=(345FX,242FY);
+z9=(329FX,339FY);
+z10=(329FX,477FY);
+z11=(120FX,477FY);
+z12=(120FX,648FY);
+z13=(10FX,648FY);
+z14=(10FX,0FY);
+z15=(120FX,0FY);
+z16=(120FX,379FY);
+z17=(219FX,379FY);
+z18=(219FX,334FY);
+z19=(410FX,105FY);
+z20=(541FX,156FY);
+FuF (z1
+{42,39} .. {0,68}z2
+-- z3
+-- z4
+-- z5
+{0,-47} .. {-10,-17}z6
+{-10,-17} .. {-32,0}z7
+{-38,0} .. {-11,19}z8
+{-10,16} .. {0,49}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+{0,-121} .. {135,0}z19
+{52,0} .. {35,34}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(89,600FX#,663FY#,0FY#);
+"Y";
+z1=(456FX,41FY);
+z2=(534FX,202FY);
+z3=(439FX,362FY);
+z4=(499FX,495FY);
+z5=(255FX,664FY);
+z6=(133FX,635FY);
+z7=(36FX,485FY);
+z8=(75FX,468FY);
+z9=(103FX,468FY);
+z10=(119FX,468FY);
+z11=(142FX,468FY);
+z12=(165FX,532FY);
+z13=(266FX,565FY);
+z14=(387FX,507FY);
+z15=(361FX,422FY);
+z16=(136FX,396FY);
+z17=(136FX,430FY);
+z18=(88FX,430FY);
+z19=(49FX,427FY);
+z20=(49FX,278FY);
+z21=(135FX,278FY);
+z22=(135FX,309FY);
+z23=(248FX,309FY);
+z24=(424FX,195FY);
+z25=(291FX,105FY);
+z26=(184FX,131FY);
+z27=(152FX,220FY);
+z28=(38FX,218FY);
+z29=(299FX,0FY);
+z30=(456FX,41FY);
+FuF (z1
+{53,35} .. {0,71}z2
+{0,73} .. {-57,38}z3
+{40,35} .. {0,55}z4
+{0,137} .. {-107,0}z5
+{-46,0} .. {-35,-19}z6
+{-53,-29} .. {0,-63}z7
+{0,-1} .. {29,-1}z8
+{16,0} .. {3,0}z9
+-- z10
+-- z11
+{0,32} .. {16,16}z12
+{22,21} .. {46,0}z13
+{33,0} .. {0,-50}z14
+{0,-34} .. {-25,-25}z15
+{-36,-37} .. {-35,0}z16
+-- z17
+-- z18
+{-12,0} .. {-18,-2}z19
+-- z20
+-- z21
+-- z22
+-- z23
+{79,1} .. {0,-101}z24
+{0,-80} .. {-63,0}z25
+{-50,0} .. {-22,17}z26
+{-21,17} .. {0,48}z27
+-- z28
+{0,-171} .. {147,0}z29
+{63,0} .. {41,28}z30
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(90,637FX#,648FY#,37FY#);
+"Z";
+z1=(336FX,236FY);
+z2=(199FX,125FY);
+z3=(102FX,125FY);
+z4=(102FX,169FY);
+z5=(10FX,169FY);
+z6=(10FX,-2FY);
+z7=(102FX,-2FY);
+z8=(102FX,31FY);
+z9=(319FX,31FY);
+z10=(457FX,20FY);
+z11=(487FX,-38FY);
+z12=(599FX,-38FY);
+z13=(531FX,98FY);
+z14=(356FX,125FY);
+z15=(564FX,441FY);
+z16=(323FX,648FY);
+z17=(71FX,428FY);
+z18=(150FX,289FY);
+z19=(308FX,234FY);
+z20=(336FX,236FY);
+z21=(410FX,517FY);
+z22=(447FX,438FY);
+z23=(312FX,334FY);
+z24=(267FX,342FY);
+z25=(185FX,443FY);
+z26=(314FX,555FY);
+z27=(410FX,517FY);
+FuF (z1
+{-41,-42} .. {-48,-33}z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{73,0} .. {20,-7}z10
+{20,-6} .. {0,-39}z11
+-- z12
+{0,73} .. {-46,21}z13
+{-35,16} .. {-81,2}z14
+{80,65} .. {0,107}z15
+{0,125} .. {-113,0}z16
+{-135,0} .. {0,-150}z17
+{0,-54} .. {51,-39}z18
+{48,-36} .. {57,0}z19
+{9,0} .. {9,1}z20
+);
+FuF (z21
+{25,-23} .. {0,-29}z22
+{0,-78} .. {-66,0}z23
+{-14,0} .. {-16,5}z24
+{-49,14} .. {0,55}z25
+{0,77} .. {71,0}z26
+{38,0} .. {27,-25}z27
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(91,289FX#,749FY#,249FY#);
+"bracketleft";
+z1=(100FX,-249FY);
+z2=(266FX,-249FY);
+z3=(266FX,-153FY);
+z4=(192FX,-153FY);
+z5=(192FX,653FY);
+z6=(266FX,653FY);
+z7=(266FX,749FY);
+z8=(100FX,749FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(92,473FX#,657FY#,0FY#);
+"quotedblleft";
+z1=(343FX,461FY);
+z2=(442FX,461FY);
+z3=(442FX,556FY);
+z4=(424FX,556FY);
+z5=(445FX,658FY);
+z6=(382FX,658FY);
+z7=(343FX,543FY);
+z8=(179FX,461FY);
+z9=(278FX,461FY);
+z10=(278FX,556FY);
+z11=(260FX,556FY);
+z12=(281FX,658FY);
+z13=(219FX,658FY);
+z14=(179FX,543FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(93,289FX#,749FY#,249FY#);
+"bracketright";
+z1=(21FX,-249FY);
+z2=(187FX,-249FY);
+z3=(187FX,749FY);
+z4=(21FX,749FY);
+z5=(21FX,653FY);
+z6=(96FX,653FY);
+z7=(96FX,-153FY);
+z8=(21FX,-153FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(94,500FX#,749FY#,250FY#);
+"braceleft";
+z1=(401FX,-250FY);
+z2=(426FX,-224FY);
+z3=(426FX,-220FY);
+z4=(401FX,-195FY);
+z5=(295FX,-106FY);
+z6=(295FX,130FY);
+z7=(217FX,250FY);
+z8=(295FX,370FY);
+z9=(295FX,606FY);
+z10=(401FX,695FY);
+z11=(426FX,720FY);
+z12=(426FX,724FY);
+z13=(401FX,750FY);
+z14=(203FX,606FY);
+z15=(203FX,370FY);
+z16=(97FX,278FY);
+z17=(72FX,251FY);
+z18=(72FX,249FY);
+z19=(97FX,222FY);
+z20=(203FX,130FY);
+z21=(203FX,-106FY);
+z22=(401FX,-250FY);
+FuF (z1
+{15,0} .. {0,15}z2
+-- z3
+{0,14} .. {-13,0}z4
+{-48,0} .. {0,58}z5
+-- z6
+{0,57} .. {-46,24}z7
+{46,24} .. {0,58}z8
+-- z9
+{0,59} .. {49,0}z10
+{13,0} .. {0,16}z11
+-- z12
+{0,15} .. {-15,0}z13
+{-83,0} .. {0,-108}z14
+-- z15
+{0,-59} .. {-49,0}z16
+{-13,0} .. {0,-14}z17
+-- z18
+{0,-14} .. {13,0}z19
+{50,0} .. {0,-59}z20
+-- z21
+{0,-108} .. {83,0}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(95,500FX#,749FY#,250FY#);
+"braceright";
+z1=(418FX,230FY);
+z2=(426FX,249FY);
+z3=(426FX,251FY);
+z4=(401FX,278FY);
+z5=(295FX,370FY);
+z6=(295FX,606FY);
+z7=(97FX,750FY);
+z8=(72FX,724FY);
+z9=(72FX,720FY);
+z10=(97FX,695FY);
+z11=(203FX,606FY);
+z12=(203FX,370FY);
+z13=(281FX,250FY);
+z14=(203FX,130FY);
+z15=(203FX,-106FY);
+z16=(97FX,-195FY);
+z17=(72FX,-220FY);
+z18=(72FX,-224FY);
+z19=(97FX,-250FY);
+z20=(295FX,-106FY);
+z21=(295FX,130FY);
+z22=(401FX,222FY);
+z23=(418FX,230FY);
+FuF (z1
+{5,5} .. {0,7}z2
+-- z3
+{0,14} .. {-14,0}z4
+{-49,0} .. {0,59}z5
+-- z6
+{0,108} .. {-83,0}z7
+{-13,0} .. {0,-14}z8
+-- z9
+{0,-17} .. {13,0}z10
+{49,0} .. {0,-59}z11
+-- z12
+{0,-58} .. {46,-24}z13
+{-46,-24} .. {0,-57}z14
+-- z15
+{0,-58} .. {-48,0}z16
+{-13,0} .. {0,-14}z17
+-- z18
+{0,-14} .. {14,0}z19
+{83,0} .. {0,109}z20
+-- z21
+{0,59} .. {49,0}z22
+{7,0} .. {4,5}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(96,182FX#,710FY#,0FY#);
+"buth";
+z1=(118FX,508FY);
+z2=(129FX,534FY);
+z3=(125FX,550FY);
+z4=(65FX,690FY);
+z5=(37FX,710FY);
+z6=(3FX,674FY);
+z7=(6FX,659FY);
+z8=(67FX,519FY);
+z9=(95FX,498FY);
+z10=(118FX,508FY);
+FuF (z1
+{7,7} .. {0,10}z2
+{0,5} .. {-3,6}z3
+-- z4
+{-5,13} .. {-14,0}z5
+{-18,0} .. {0,-20}z6
+{0,-4} .. {2,-5}z7
+-- z8
+{5,-13} .. {13,0}z9
+{9,0} .. {7,6}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(97,680FX#,428FY#,0FY#);
+"a";
+z1=(540FX,0FY);
+z2=(625FX,0FY);
+z3=(625FX,428FY);
+z4=(524FX,428FY);
+z5=(524FX,156FY);
+z6=(444FX,94FY);
+z7=(375FX,149FY);
+z8=(376FX,156FY);
+z9=(376FX,428FY);
+z10=(275FX,428FY);
+z11=(275FX,154FY);
+z12=(276FX,146FY);
+z13=(276FX,142FY);
+z14=(186FX,92FY);
+z15=(110FX,184FY);
+z16=(110FX,428FY);
+z17=(11FX,428FY);
+z18=(11FX,158FY);
+z19=(188FX,0FY);
+z20=(274FX,17FY);
+z21=(307FX,40FY);
+z22=(443FX,0FY);
+z23=(540FX,28FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-41} .. {-36,0}z6
+{-33,0} .. {0,35}z7
+{0,3} .. {1,2}z8
+-- z9
+-- z10
+-- z11
+{0,-3} .. {1,-3}z12
+-- z13
+{0,-42} .. {-31,0}z14
+{-54,0} .. {0,47}z15
+-- z16
+-- z17
+-- z18
+{0,-113} .. {106,0}z19
+{35,0} .. {22,12}z20
+{1,1} .. {21,15}z21
+{39,-29} .. {48,0}z22
+{32,0} .. {28,17}z23
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(98,415FX#,432FY#,159FY#);
+"b";
+z1=(263FX,171FY);
+z2=(360FX,171FY);
+z3=(360FX,271FY);
+z4=(329FX,374FY);
+z5=(213FX,433FY);
+z6=(108FX,407FY);
+z7=(108FX,428FY);
+z8=(11FX,428FY);
+z9=(11FX,-160FY);
+z10=(108FX,-160FY);
+z11=(108FX,6FY);
+z12=(359FX,6FY);
+z13=(359FX,93FY);
+z14=(108FX,93FY);
+z15=(108FX,236FY);
+z16=(134FX,326FY);
+z17=(192FX,335FY);
+z18=(243FX,313FY);
+z19=(263FX,171FY);
+FuF (z1
+-- z2
+-- z3
+{0,40} .. {-21,28}z4
+{-26,34} .. {-42,0}z5
+{-38,0} .. {-32,-22}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+{0,53} .. {15,10}z16
+{6,4} .. {34,0}z17
+{27,0} .. {9,-13}z18
+{12,-20} .. {0,-82}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(99,479FX#,439FY#,163FY#);
+"c";
+z1=(326FX,414FY);
+z2=(227FX,440FY);
+z3=(64FX,360FY);
+z4=(11FX,208FY);
+z5=(202FX,-8FY);
+z6=(319FX,12FY);
+z7=(213FX,-70FY);
+z8=(146FX,-31FY);
+z9=(52FX,-29FY);
+z10=(205FX,-164FY);
+z11=(423FX,62FY);
+z12=(423FX,427FY);
+z13=(326FX,427FY);
+z14=(326FX,283FY);
+z15=(326FX,122FY);
+z16=(210FX,88FY);
+z17=(116FX,212FY);
+z18=(148FX,306FY);
+z19=(216FX,343FY);
+z20=(326FX,283FY);
+FuF (z1
+{-29,21} .. {-35,0}z2
+{-67,0} .. {-42,-53}z3
+{-35,-45} .. {0,-56}z4
+{0,-132} .. {134,0}z5
+{40,0} .. {37,14}z6
+{-9,-60} .. {-56,0}z7
+{-38,0} .. {-21,31}z8
+-- z9
+{0,-92} .. {81,0}z10
+{148,0} .. {0,144}z11
+-- z12
+-- z13
+);
+FuF (z14
+-- z15
+{-16,-28} .. {-26,0}z16
+{-78,0} .. {0,71}z17
+{0,37} .. {22,26}z18
+{21,26} .. {24,0}z19
+{46,0} .. {23,-42}z20
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(100,527FX#,428FY#,160FY#);
+"d";
+z1=(387FX,-8FY);
+z2=(471FX,-8FY);
+z3=(471FX,81FY);
+z4=(387FX,81FY);
+z5=(387FX,255FY);
+z6=(357FX,373FY);
+z7=(220FX,428FY);
+z8=(111FX,410FY);
+z9=(111FX,428FY);
+z10=(11FX,428FY);
+z11=(11FX,-8FY);
+z12=(111FX,-8FY);
+z13=(111FX,261FY);
+z14=(128FX,319FY);
+z15=(208FX,336FY);
+z16=(289FX,271FY);
+z17=(289FX,-161FY);
+z18=(387FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,49} .. {-21,29}z6
+{-34,47} .. {-53,0}z7
+{-37,0} .. {-32,-23}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{0,32} .. {10,8}z14
+{12,10} .. {44,0}z15
+{49,0} .. {0,-57}z16
+-- z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(101,420FX#,671FY#,0FY#);
+"e";
+z1=(109FX,359FY);
+z2=(369FX,359FY);
+z3=(369FX,439FY);
+z4=(109FX,439FY);
+z5=(109FX,671FY);
+z6=(11FX,671FY);
+z7=(11FX,193FY);
+z8=(182FX,0FY);
+z9=(365FX,150FY);
+z10=(365FX,311FY);
+z11=(268FX,311FY);
+z12=(268FX,162FY);
+z13=(183FX,89FY);
+z14=(109FX,183FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-118} .. {116,0}z8
+{92,0} .. {0,110}z9
+-- z10
+-- z11
+-- z12
+{0,-58} .. {-51,0}z13
+{-50,0} .. {0,48}z14
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(102,617FX#,672FY#,160FY#);
+"f";
+z1=(249FX,87FY);
+z2=(117FX,220FY);
+z3=(25FX,220FY);
+z4=(25FX,198FY);
+z5=(249FX,-4FY);
+z6=(249FX,-161FY);
+z7=(346FX,-161FY);
+z8=(346FX,-1FY);
+z9=(565FX,187FY);
+z10=(346FX,417FY);
+z11=(346FX,518FY);
+z12=(211FX,672FY);
+z13=(80FX,553FY);
+z14=(249FX,356FY);
+z15=(249FX,541FY);
+z16=(249FX,452FY);
+z17=(168FX,544FY);
+z18=(210FX,589FY);
+z19=(249FX,541FY);
+z20=(450FX,253FY);
+z21=(473FX,185FY);
+z22=(356FX,87FY);
+z23=(346FX,87FY);
+z24=(346FX,325FY);
+z25=(450FX,253FY);
+FuF (z1
+{-93,2} .. {-11,95}z2
+-- z3
+-- z4
+{0,-146} .. {126,-4}z5
+-- z6
+-- z7
+-- z8
+{118,12} .. {0,143}z9
+{0,134} .. {-106,41}z10
+-- z11
+{0,92} .. {-99,0}z12
+{-69,0} .. {0,-77}z13
+{0,-108} .. {89,-34}z14
+);
+FuF (z15
+-- z16
+{-39,20} .. {0,51}z17
+{0,24} .. {25,0}z18
+{31,0} .. {0,-30}z19
+);
+FuF (z20
+{15,-20} .. {0,-25}z21
+{0,-72} .. {-64,0}z22
+{-3,0} .. {-4,0}z23
+-- z24
+{37,-17} .. {25,-33}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(103,582FX#,425FY#,160FY#);
+"g";
+z1=(432FX,-8FY);
+z2=(527FX,-8FY);
+z3=(527FX,81FY);
+z4=(432FX,81FY);
+z5=(432FX,396FY);
+z6=(350FX,396FY);
+z7=(241FX,426FY);
+z8=(11FX,208FY);
+z9=(230FX,-23FY);
+z10=(330FX,-4FY);
+z11=(330FX,-161FY);
+z12=(432FX,-161FY);
+z13=(330FX,225FY);
+z14=(330FX,178FY);
+z15=(316FX,88FY);
+z16=(230FX,64FY);
+z17=(123FX,213FY);
+z18=(242FX,334FY);
+z19=(317FX,314FY);
+z20=(330FX,225FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-40,24} .. {-48,0}z7
+{-122,0} .. {0,-128}z8
+{0,-129} .. {132,0}z9
+{33,0} .. {31,12}z10
+-- z11
+-- z12
+);
+FuF (z13
+-- z14
+{0,-51} .. {-8,-11}z15
+{-9,-13} .. {-51,0}z16
+{-80,0} .. {0,68}z17
+{0,79} .. {79,0}z18
+{45,0} .. {9,-11}z19
+{7,-11} .. {0,-51}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(104,434FX#,675FY#,0FY#);
+"h";
+z1=(281FX,0FY);
+z2=(379FX,0FY);
+z3=(379FX,301FY);
+z4=(217FX,439FY);
+z5=(110FX,420FY);
+z6=(110FX,676FY);
+z7=(11FX,676FY);
+z8=(11FX,0FY);
+z9=(110FX,0FY);
+z10=(110FX,280FY);
+z11=(198FX,339FY);
+z12=(281FX,266FY);
+FuF (z1
+-- z2
+-- z3
+{0,99} .. {-83,0}z4
+{-40,0} .. {-36,-16}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,48} .. {35,0}z11
+{51,0} .. {0,-56}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(105,434FX#,671FY#,160FY#);
+"i";
+z1=(270FX,-6FY);
+z2=(368FX,-6FY);
+z3=(368FX,288FY);
+z4=(209FX,436FY);
+z5=(112FX,413FY);
+z6=(112FX,671FY);
+z7=(11FX,671FY);
+z8=(11FX,-161FY);
+z9=(112FX,-161FY);
+z10=(112FX,238FY);
+z11=(204FX,335FY);
+z12=(257FX,311FY);
+z13=(270FX,214FY);
+FuF (z1
+-- z2
+-- z3
+{0,97} .. {-86,0}z4
+{-33,0} .. {-28,-19}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,68} .. {67,0}z11
+{30,0} .. {7,-15}z12
+{8,-15} .. {0,-51}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(106,474FX#,431FY#,169FY#);
+"j";
+z1=(300FX,-153FY);
+z2=(422FX,-134FY);
+z3=(398FX,-46FY);
+z4=(275FX,-67FY);
+z5=(164FX,-80FY);
+z6=(127FX,-74FY);
+z7=(323FX,133FY);
+z8=(381FX,273FY);
+z9=(221FX,432FY);
+z10=(80FX,383FY);
+z11=(24FX,271FY);
+z12=(58FX,184FY);
+z13=(114FX,138FY);
+z14=(138FX,95FY);
+z15=(18FX,-78FY);
+z16=(80FX,-163FY);
+z17=(155FX,-170FY);
+z18=(300FX,-153FY);
+z19=(256FX,329FY);
+z20=(278FX,261FY);
+z21=(214FX,165FY);
+z22=(126FX,278FY);
+z23=(212FX,343FY);
+z24=(256FX,329FY);
+FuF (z1
+{43,7} .. {44,7}z2
+-- z3
+{-50,-8} .. {-37,-6}z4
+{-49,-8} .. {-25,0}z5
+{-7,0} .. {-7,5}z6
+{36,72} .. {53,64}z7
+{38,45} .. {0,48}z8
+{0,95} .. {-90,0}z9
+{-55,0} .. {-39,-33}z10
+{-36,-31} .. {0,-44}z11
+{0,-33} .. {22,-24}z12
+{19,-15} .. {18,-16}z13
+{17,-15} .. {0,-14}z14
+{0,-41} .. {0,-66}z15
+{0,-35} .. {37,-6}z16
+{28,-5} .. {22,0}z17
+{48,0} .. {48,8}z18
+);
+FuF (z19
+{13,-12} .. {0,-35}z20
+{0,-36} .. {-23,-24}z21
+{-32,36} .. {0,52}z22
+{0,36} .. {30,0}z23
+{20,0} .. {10,-9}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(107,434FX#,672FY#,160FY#);
+"k";
+z1=(281FX,-161FY);
+z2=(379FX,-161FY);
+z3=(379FX,437FY);
+z4=(281FX,437FY);
+z5=(281FX,197FY);
+z6=(188FX,97FY);
+z7=(135FX,118FY);
+z8=(110FX,240FY);
+z9=(110FX,672FY);
+z10=(11FX,672FY);
+z11=(11FX,231FY);
+z12=(185FX,-6FY);
+z13=(281FX,28FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-61} .. {-58,0}z6
+{-26,0} .. {-10,13}z7
+{-16,20} .. {0,63}z8
+-- z9
+-- z10
+-- z11
+{0,-128} .. {140,0}z12
+{40,0} .. {31,24}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(108,301FX#,426FY#,160FY#);
+"l";
+z1=(11FX,-161FY);
+z2=(246FX,-161FY);
+z3=(246FX,-59FY);
+z4=(107FX,-59FY);
+z5=(107FX,427FY);
+z6=(11FX,427FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+lbl (range 1 thru 6);
+endchar;
+
+beginchar(109,549FX#,673FY#,0FY#);
+"m";
+z1=(443FX,571FY);
+z2=(481FX,571FY);
+z3=(481FX,672FY);
+z4=(440FX,673FY);
+z5=(412FX,674FY);
+z6=(286FX,542FY);
+z7=(286FX,218FY);
+z8=(194FX,104FY);
+z9=(129FX,128FY);
+z10=(111FX,238FY);
+z11=(111FX,445FY);
+z12=(11FX,445FY);
+z13=(11FX,213FY);
+z14=(195FX,0FY);
+z15=(385FX,228FY);
+z16=(385FX,498FY);
+z17=(396FX,563FY);
+z18=(443FX,571FY);
+FuF (z1
+{7,0} .. {23,0}z2
+-- z3
+-- z4
+{-9,1} .. {-10,0}z5
+{-86,0} .. {0,-92}z6
+-- z7
+{0,-56} .. {-61,0}z8
+{-36,0} .. {-9,14}z9
+{-11,15} .. {0,59}z10
+-- z11
+-- z12
+-- z13
+{0,-129} .. {140,0}z14
+{128,0} .. {0,119}z15
+-- z16
+{0,37} .. {6,8}z17
+{9,12} .. {13,-1}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(110,532FX#,674FY#,15FY#);
+"n";
+z1=(390FX,-1FY);
+z2=(476FX,-1FY);
+z3=(476FX,439FY);
+z4=(376FX,439FY);
+z5=(376FX,150FY);
+z6=(287FX,85FY);
+z7=(215FX,207FY);
+z8=(215FX,550FY);
+z9=(194FX,550FY);
+z10=(176FX,549FY);
+z11=(158FX,549FY);
+z12=(154FX,549FY);
+z13=(148FX,549FY);
+z14=(143FX,549FY);
+z15=(111FX,552FY);
+z16=(111FX,562FY);
+z17=(111FX,616FY);
+z18=(111FX,675FY);
+z19=(18FX,675FY);
+z20=(18FX,615FY);
+z21=(18FX,575FY);
+z22=(24FX,498FY);
+z23=(66FX,468FY);
+z24=(116FX,467FY);
+z25=(116FX,200FY);
+z26=(167FX,38FY);
+z27=(269FX,-16FY);
+z28=(390FX,19FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-44} .. {-35,0}z6
+{-66,0} .. {0,52}z7
+-- z8
+-- z9
+{-6,0} .. {-5,0}z10
+-- z11
+-- z12
+-- z13
+-- z14
+{-17,0} .. {-4,3}z15
+{-2,1} .. {0,5}z16
+-- z17
+-- z18
+-- z19
+{0,-31} .. {0,-14}z20
+-- z21
+{0,-36} .. {5,-14}z22
+{7,-16} .. {19,-5}z23
+-- z24
+-- z25
+{0,-66} .. {35,-41}z26
+{29,-35} .. {39,0}z27
+{45,0} .. {37,27}z28
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(111,421FX#,435FY#,0FY#);
+"o";
+z1=(264FX,0FY);
+z2=(364FX,0FY);
+z3=(364FX,290FY);
+z4=(188FX,436FY);
+z5=(108FX,417FY);
+z6=(108FX,427FY);
+z7=(10FX,427FY);
+z8=(10FX,0FY);
+z9=(108FX,0FY);
+z10=(108FX,283FY);
+z11=(185FX,338FY);
+z12=(264FX,253FY);
+FuF (z1
+-- z2
+-- z3
+{0,89} .. {-77,0}z4
+{-27,0} .. {-24,-16}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,27} .. {23,0}z11
+{43,0} .. {0,-42}z12
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(112,695FX#,428FY#,159FY#);
+"p";
+z1=(540FX,-160FY);
+z2=(640FX,-160FY);
+z3=(640FX,428FY);
+z4=(539FX,428FY);
+z5=(539FX,185FY);
+z6=(448FX,97FY);
+z7=(400FX,107FY);
+z8=(376FX,186FY);
+z9=(376FX,428FY);
+z10=(275FX,428FY);
+z11=(275FX,182FY);
+z12=(180FX,99FY);
+z13=(110FX,213FY);
+z14=(110FX,428FY);
+z15=(11FX,428FY);
+z16=(11FX,176FY);
+z17=(166FX,-7FY);
+z18=(318FX,54FY);
+z19=(449FX,-8FY);
+z20=(540FX,25FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-55} .. {-52,0}z6
+{-27,0} .. {-7,6}z7
+{-14,9} .. {0,46}z8
+-- z9
+-- z10
+-- z11
+{0,-53} .. {-49,0}z12
+{-58,0} .. {0,44}z13
+-- z14
+-- z15
+-- z16
+{0,-97} .. {106,0}z17
+{52,0} .. {36,39}z18
+{29,-45} .. {53,0}z19
+{31,0} .. {25,18}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(113,548FX#,421FY#,180FY#);
+"q";
+z1=(469FX,98FY);
+z2=(504FX,231FY);
+z3=(489FX,308FY);
+z4=(311FX,422FY);
+z5=(200FX,393FY);
+z6=(200FX,407FY);
+z7=(101FX,407FY);
+z8=(101FX,21FY);
+z9=(18FX,21FY);
+z10=(18FX,-67FY);
+z11=(101FX,-67FY);
+z12=(101FX,-181FY);
+z13=(200FX,-181FY);
+z14=(200FX,-67FY);
+z15=(474FX,-67FY);
+z16=(474FX,21FY);
+z17=(357FX,21FY);
+z18=(236FX,21FY);
+z19=(200FX,21FY);
+z20=(200FX,41FY);
+z21=(300FX,14FY);
+z22=(469FX,98FY);
+z23=(386FX,302FY);
+z24=(411FX,216FY);
+z25=(307FX,104FY);
+z26=(212FX,222FY);
+z27=(311FX,328FY);
+z28=(386FX,302FY);
+FuF (z1
+{24,36} .. {0,53}z2
+{0,26} .. {-10,25}z3
+{-30,77} .. {-81,0}z4
+{-40,0} .. {-33,-24}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+{28,-24} .. {36,0}z21
+{65,0} .. {38,56}z22
+);
+FuF (z23
+{16,-17} .. {0,-42}z24
+{0,-64} .. {-66,0}z25
+{-76,0} .. {0,64}z26
+{0,71} .. {72,0}z27
+{36,0} .. {15,-17}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(114,420FX#,430FY#,161FY#);
+"r";
+z1=(266FX,-8FY);
+z2=(365FX,-8FY);
+z3=(365FX,288FY);
+z4=(207FX,431FY);
+z5=(109FX,418FY);
+z6=(109FX,428FY);
+z7=(11FX,428FY);
+z8=(11FX,-161FY);
+z9=(109FX,-161FY);
+z10=(109FX,268FY);
+z11=(184FX,342FY);
+z12=(266FX,293FY);
+FuF (z1
+-- z2
+-- z3
+{0,103} .. {-89,0}z4
+{-32,0} .. {-31,-14}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,51} .. {47,0}z11
+{29,0} .. {0,-39}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(115,435FX#,428FY#,0FY#);
+"s";
+z1=(282FX,0FY);
+z2=(380FX,0FY);
+z3=(380FX,428FY);
+z4=(282FX,428FY);
+z5=(282FX,191FY);
+z6=(189FX,96FY);
+z7=(110FX,191FY);
+z8=(110FX,428FY);
+z9=(11FX,428FY);
+z10=(11FX,184FY);
+z11=(191FX,0FY);
+z12=(282FX,21FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-65} .. {-65,0}z6
+{-51,0} .. {0,46}z7
+-- z8
+-- z9
+-- z10
+{0,-117} .. {114,0}z11
+{32,0} .. {27,18}z12
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(116,684FX#,442FY#,160FY#);
+"t";
+z1=(528FX,-8FY);
+z2=(629FX,-8FY);
+z3=(629FX,282FY);
+z4=(543FX,423FY);
+z5=(438FX,443FY);
+z6=(343FX,427FY);
+z7=(277FX,427FY);
+z8=(277FX,172FY);
+z9=(181FX,75FY);
+z10=(113FX,149FY);
+z11=(113FX,427FY);
+z12=(11FX,427FY);
+z13=(11FX,160FY);
+z14=(183FX,-24FY);
+z15=(277FX,2FY);
+z16=(277FX,-161FY);
+z17=(378FX,-161FY);
+z18=(378FX,289FY);
+z19=(446FX,341FY);
+z20=(528FX,275FY);
+FuF (z1
+-- z2
+-- z3
+{0,67} .. {-57,32}z4
+{-38,20} .. {-41,0}z5
+{-27,0} .. {-24,-15}z6
+-- z7
+-- z8
+{0,-69} .. {-68,0}z9
+{-55,0} .. {0,54}z10
+-- z11
+-- z12
+-- z13
+{0,-122} .. {120,0}z14
+{36,0} .. {30,16}z15
+-- z16
+-- z17
+-- z18
+{0,47} .. {44,0}z19
+{46,0} .. {0,-50}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(117,752FX#,435FY#,0FY#);
+"u";
+z1=(414FX,0FY);
+z2=(697FX,0FY);
+z3=(697FX,79FY);
+z4=(515FX,79FY);
+z5=(515FX,426FY);
+z6=(414FX,426FY);
+z7=(275FX,0FY);
+z8=(379FX,0FY);
+z9=(379FX,290FY);
+z10=(196FX,436FY);
+z11=(113FX,417FY);
+z12=(113FX,427FY);
+z13=(10FX,427FY);
+z14=(10FX,0FY);
+z15=(113FX,0FY);
+z16=(113FX,283FY);
+z17=(193FX,338FY);
+z18=(275FX,253FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+{0,89} .. {-80,0}z10
+{-29,0} .. {-24,-16}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{0,27} .. {25,0}z17
+{44,0} .. {0,-42}z18
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(118,536FX#,674FY#,160FY#);
+"v";
+z1=(273FX,-161FY);
+z2=(482FX,-161FY);
+z3=(482FX,-64FY);
+z4=(372FX,-65FY);
+z5=(372FX,675FY);
+z6=(273FX,675FY);
+z7=(273FX,166FY);
+z8=(194FX,91FY);
+z9=(111FX,176FY);
+z10=(111FX,436FY);
+z11=(11FX,436FY);
+z12=(11FX,131FY);
+z13=(176FX,-11FY);
+z14=(273FX,7FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-55} .. {-53,0}z8
+{-54,0} .. {0,56}z9
+-- z10
+-- z11
+-- z12
+{0,-95} .. {83,0}z13
+{37,0} .. {33,12}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(119,330FX#,425FY#,0FY#);
+"w";
+z1=(11FX,0FY);
+z2=(275FX,0FY);
+z3=(275FX,79FY);
+z4=(106FX,79FY);
+z5=(106FX,426FY);
+z6=(11FX,426FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+lbl (range 1 thru 6);
+endchar;
+
+beginchar(120,654FX#,674FY#,160FY#);
+"x";
+z1=(561FX,43FY);
+z2=(599FX,190FY);
+z3=(599FX,437FY);
+z4=(498FX,437FY);
+z5=(498FX,229FY);
+z6=(487FX,110FY);
+z7=(425FX,83FY);
+z8=(348FX,191FY);
+z9=(348FX,235FY);
+z10=(222FX,438FY);
+z11=(112FX,408FY);
+z12=(112FX,675FY);
+z13=(11FX,675FY);
+z14=(11FX,-161FY);
+z15=(112FX,-161FY);
+z16=(112FX,272FY);
+z17=(186FX,336FY);
+z18=(248FX,234FY);
+z19=(248FX,194FY);
+z20=(419FX,-6FY);
+z21=(561FX,43FY);
+FuF (z1
+{27,30} .. {0,66}z2
+-- z3
+-- z4
+-- z5
+{0,-66} .. {-6,-15}z6
+{-7,-15} .. {-38,0}z7
+{-66,0} .. {0,56}z8
+-- z9
+{0,85} .. {-108,0}z10
+{-38,0} .. {-33,-20}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{0,36} .. {33,0}z17
+{55,0} .. {0,-43}z18
+-- z19
+{0,-128} .. {136,0}z20
+{64,0} .. {29,34}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(121,262FX#,428FY#,159FY#);
+"y";
+z1=(146FX,-125FY);
+z2=(206FX,13FY);
+z3=(206FX,428FY);
+z4=(106FX,428FY);
+z5=(106FX,69FY);
+z6=(84FX,-26FY);
+z7=(13FX,-43FY);
+z8=(13FX,-160FY);
+z9=(146FX,-125FY);
+FuF (z1
+{40,31} .. {0,60}z2
+-- z3
+-- z4
+-- z5
+{0,-50} .. {-13,-15}z6
+{-9,-10} .. {-44,0}z7
+-- z8
+{61,0} .. {32,23}z9
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(122,537FX#,441FY#,160FY#);
+"z";
+z1=(329FX,-161FY);
+z2=(482FX,-161FY);
+z3=(482FX,-72FY);
+z4=(429FX,-72FY);
+z5=(429FX,412FY);
+z6=(348FX,412FY);
+z7=(240FX,441FY);
+z8=(11FX,223FY);
+z9=(229FX,-8FY);
+z10=(329FX,20FY);
+z11=(302FX,323FY);
+z12=(319FX,235FY);
+z13=(302FX,128FY);
+z14=(224FX,87FY);
+z15=(187FX,97FY);
+z16=(118FX,211FY);
+z17=(230FX,346FY);
+z18=(302FX,323FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-41,24} .. {-47,0}z7
+{-122,0} .. {0,-129}z8
+{0,-129} .. {131,0}z9
+{42,0} .. {35,20}z10
+);
+FuF (z11
+{10,-13} .. {0,-47}z12
+{0,-50} .. {-11,-22}z13
+{-10,-20} .. {-44,-5}z14
+{-10,0} .. {-15,7}z15
+{-47,21} .. {0,51}z16
+{0,67} .. {73,0}z17
+{39,0} .. {11,-14}z18
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(123,449FX#,266FY#,0FY#);
+"hyphen";
+z1=(-9FX,188FY);
+z2=(459FX,188FY);
+z3=(459FX,266FY);
+z4=(-9FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,43FX#,730FY#,0FY#);
+"shesht";
+z1=(-10FX,678FY);
+z2=(-4FX,697FY);
+z3=(-38FX,731FY);
+z4=(-64FX,715FY);
+z5=(-131FX,603FY);
+z6=(-137FX,582FY);
+z7=(-110FX,551FY);
+z8=(-85FX,566FY);
+FuF (z1
+{4,6} .. {0,6}z2
+{0,19} .. {-18,0}z3
+{-11,0} .. {-6,-10}z4
+-- z5
+{-4,-6} .. {0,-8}z6
+{0,-16} .. {16,0}z7
+{11,0} .. {6,8}z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(125,999FX#,266FY#,0FY#);
+"emdash";
+z1=(0FX,188FY);
+z2=(1000FX,188FY);
+z3=(1000FX,266FY);
+z4=(0FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,319FX#,695FY#,0FY#);
+"exclam";
+z1=(201FX,576FY);
+z2=(203FX,696FY);
+z3=(115FX,696FY);
+z4=(117FX,610FY);
+z5=(119FX,406FY);
+z6=(120FX,393FY);
+z7=(120FX,352FY);
+z8=(121FX,233FY);
+z9=(122FX,222FY);
+z10=(122FX,191FY);
+z11=(138FX,168FY);
+z12=(180FX,168FY);
+z13=(197FX,191FY);
+z14=(197FX,264FY);
+z15=(198FX,320FY);
+z16=(201FX,522FY);
+z17=(201FX,534FY);
+z18=(116FX,0FY);
+z19=(203FX,0FY);
+z20=(203FX,113FY);
+z21=(116FX,113FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,-14} .. {11,0}z11
+-- z12
+{10,0} .. {0,12}z13
+-- z14
+-- z15
+-- z16
+-- z17
+);
+FuF (z18
+-- z19
+-- z20
+-- z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(3,623FX#,652FY#,0FY#);
+"Dz";
+z1=(385FX,4FY);
+z2=(543FX,4FY);
+z3=(427FX,108FY);
+z4=(375FX,134FY);
+z5=(520FX,427FY);
+z6=(269FX,653FY);
+z7=(19FX,444FY);
+z8=(19FX,380FY);
+z9=(127FX,380FY);
+z10=(127FX,440FY);
+z11=(277FX,557FY);
+z12=(406FX,437FY);
+z13=(374FX,296FY);
+z14=(270FX,171FY);
+z15=(143FX,177FY);
+z16=(10FX,82FY);
+z17=(124FX,0FY);
+z18=(248FX,35FY);
+z19=(282FX,59FY);
+z20=(385FX,4FY);
+z21=(106FX,86FY);
+z22=(140FX,89FY);
+z23=(204FX,82FY);
+z24=(198FX,110FY);
+z25=(161FX,88FY);
+z26=(140FX,85FY);
+z27=(126FX,85FY);
+z28=(106FX,86FY);
+FuF (z1
+-- z2
+{-60,62} .. {-26,16}z3
+{-11,7} .. {-23,10}z4
+{90,69} .. {0,115}z5
+{0,152} .. {-140,0}z6
+{-119,0} .. {0,-135}z7
+-- z8
+-- z9
+-- z10
+{0,89} .. {75,0}z11
+{81,0} .. {0,-85}z12
+{0,-50} .. {-21,-44}z13
+{-20,-44} .. {-41,-26}z14
+{-43,4} .. {-43,0}z15
+{-62,0} .. {0,-78}z16
+{0,-66} .. {53,0}z17
+{47,0} .. {35,24}z18
+-- z19
+{39,-10} .. {30,-28}z20
+);
+FuF (z21
+{18,1} .. {22,0}z22
+{21,0} .. {22,-3}z23
+-- z24
+{-20,-13} .. {-5,-2}z25
+{-3,-2} .. {-11,0}z26
+-- z27
+{-8,0} .. {-5,1}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(4,749FX#,655FY#,84FY#);
+"Gh";
+z1=(533FX,-84FY);
+z2=(645FX,-84FY);
+z3=(600FX,42FY);
+z4=(500FX,86FY);
+z5=(500FX,435FY);
+z6=(241FX,656FY);
+z7=(10FX,451FY);
+z8=(10FX,379FY);
+z9=(120FX,379FY);
+z10=(120FX,434FY);
+z11=(254FX,557FY);
+z12=(390FX,432FY);
+z13=(390FX,-4FY);
+z14=(487FX,-11FY);
+z15=(533FX,-84FY);
+FuF (z1
+-- z2
+{0,59} .. {-30,29}z3
+{-27,27} .. {-40,3}z4
+-- z5
+{0,143} .. {-129,0}z6
+{-124,0} .. {0,-137}z7
+-- z8
+-- z9
+-- z10
+{0,97} .. {90,0}z11
+{71,0} .. {0,-75}z12
+-- z13
+{58,0} .. {12,-5}z14
+{24,-8} .. {7,-46}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(5,652FX#,667FY#,0FY#);
+"Chmute";
+z1=(476FX,20FY);
+z2=(585FX,20FY);
+z3=(303FX,444FY);
+z4=(436FX,593FY);
+z5=(361FX,668FY);
+z6=(248FX,533FY);
+z7=(207FX,599FY);
+z8=(141FX,520FY);
+z9=(179FX,458FY);
+z10=(10FX,142FY);
+z11=(10FX,132FY);
+z12=(161FX,0FY);
+z13=(392FX,39FY);
+z14=(451FX,51FY);
+z15=(239FX,355FY);
+z16=(380FX,138FY);
+z17=(214FX,99FY);
+z18=(133FX,105FY);
+z19=(113FX,143FY);
+z20=(114FX,159FY);
+z21=(239FX,355FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{-50,-66} .. {0,-78}z10
+{0,-5} .. {0,-2}z11
+{13,-99} .. {102,0}z12
+{79,0} .. {76,20}z13
+{28,7} .. {12,1}z14
+);
+FuF (z15
+-- z16
+{-43,-18} .. {-46,0}z17
+{-46,0} .. {-9,3}z18
+{-12,4} .. {0,24}z19
+{0,5} .. {1,5}z20
+{1,17} .. {18,24}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(6,467FX#,649FY#,54FY#);
+"Esimple";
+z1=(271FX,-54FY);
+z2=(375FX,-54FY);
+z3=(220FX,94FY);
+z4=(115FX,94FY);
+z5=(115FX,390FY);
+z6=(309FX,390FY);
+z7=(309FX,478FY);
+z8=(115FX,478FY);
+z9=(115FX,650FY);
+z10=(10FX,650FY);
+z11=(10FX,-2FY);
+z12=(183FX,-2FY);
+z13=(260FX,-15FY);
+z14=(271FX,-54FY);
+FuF (z1
+-- z2
+{0,99} .. {-92,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{40,0} .. {12,-7}z13
+{7,-5} .. {0,-27}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(7,556FX#,646FY#,67FY#);
+"Article";
+z1=(384FX,375FY);
+z2=(493FX,375FY);
+z3=(493FX,451FY);
+z4=(280FX,647FY);
+z5=(10FX,404FY);
+z6=(10FX,-3FY);
+z7=(262FX,-3FY);
+z8=(361FX,-15FY);
+z9=(380FX,-68FY);
+z10=(483FX,-68FY);
+z11=(441FX,58FY);
+z12=(282FX,96FY);
+z13=(119FX,96FY);
+z14=(119FX,398FY);
+z15=(280FX,543FY);
+z16=(384FX,424FY);
+FuF (z1
+-- z2
+-- z3
+{0,133} .. {-123,0}z4
+{-152,0} .. {0,-169}z5
+-- z6
+-- z7
+{53,0} .. {15,-7}z8
+{12,-6} .. {0,-36}z9
+-- z10
+{0,64} .. {-29,24}z11
+{-32,26} .. {-72,0}z12
+-- z13
+-- z14
+{0,108} .. {96,0}z15
+{86,0} .. {0,-84}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(8,774FX#,652FY#,0FY#);
+"Th";
+z1=(562FX,326FY);
+z2=(656FX,326FY);
+z3=(656FX,412FY);
+z4=(562FX,412FY);
+z5=(562FX,417FY);
+z6=(517FX,567FY);
+z7=(324FX,652FY);
+z8=(197FX,620FY);
+z9=(10FX,286FY);
+z10=(10FX,0FY);
+z11=(121FX,0FY);
+z12=(121FX,258FY);
+z13=(339FX,555FY);
+z14=(460FX,416FY);
+z15=(460FX,411FY);
+z16=(408FX,411FY);
+z17=(217FX,255FY);
+z18=(392FX,80FY);
+z19=(562FX,280FY);
+z20=(460FX,326FY);
+z21=(460FX,279FY);
+z22=(445FX,190FY);
+z23=(390FX,171FY);
+z24=(312FX,253FY);
+z25=(409FX,326FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,60} .. {-30,40}z6
+{-45,58} .. {-71,0}z7
+{-42,0} .. {-43,-21}z8
+{-131,-65} .. {0,-142}z9
+-- z10
+-- z11
+-- z12
+{0,137} .. {165,0}z13
+{86,0} .. {0,-81}z14
+-- z15
+-- z16
+{-107,0} .. {0,-117}z17
+{0,-92} .. {91,0}z18
+{124,0} .. {0,113}z19
+);
+FuF (z20
+-- z21
+{0,-48} .. {-9,-13}z22
+{-7,-11} .. {-32,0}z23
+{-50,0} .. {0,50}z24
+{0,66} .. {55,0}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(9,716FX#,646FY#,0FY#);
+"Zh";
+z1=(449FX,315FY);
+z2=(568FX,315FY);
+z3=(568FX,413FY);
+z4=(545FX,411FY);
+z5=(535FX,411FY);
+z6=(530FX,411FY);
+z7=(524FX,411FY);
+z8=(517FX,411FY);
+z9=(508FX,411FY);
+z10=(498FX,411FY);
+z11=(486FX,411FY);
+z12=(473FX,411FY);
+z13=(449FX,411FY);
+z14=(449FX,646FY);
+z15=(339FX,646FY);
+z16=(339FX,412FY);
+z17=(234FX,412FY);
+z18=(10FX,215FY);
+z19=(23FX,109FY);
+z20=(231FX,0FY);
+z21=(449FX,212FY);
+z22=(339FX,315FY);
+z23=(339FX,186FY);
+z24=(259FX,107FY);
+z25=(247FX,108FY);
+z26=(231FX,108FY);
+z27=(139FX,125FY);
+z28=(119FX,214FY);
+z29=(149FX,291FY);
+z30=(261FX,315FY);
+FuF (z1
+-- z2
+-- z3
+{-19,-2} .. {-2,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{-123,0} .. {0,-137}z18
+{0,-44} .. {9,-26}z19
+{29,-93} .. {85,0}z20
+{146,0} .. {0,151}z21
+);
+FuF (z22
+-- z23
+{0,-60} .. {-55,2}z24
+-- z25
+{-8,0} .. {-3,0}z26
+{-53,0} .. {-11,10}z27
+{-11,10} .. {0,52}z28
+{0,39} .. {19,13}z29
+{20,15} .. {56,0}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(10,615FX#,657FY#,0FY#);
+"Sh";
+z1=(484FX,48FY);
+z2=(562FX,253FY);
+z3=(438FX,253FY);
+z4=(294FX,105FY);
+z5=(116FX,268FY);
+z6=(359FX,506FY);
+z7=(431FX,500FY);
+z8=(511FX,531FY);
+z9=(544FX,658FY);
+z10=(419FX,600FY);
+z11=(175FX,655FY);
+z12=(53FX,619FY);
+z13=(28FX,515FY);
+z14=(161FX,551FY);
+z15=(231FX,542FY);
+z16=(10FX,293FY);
+z17=(284FX,0FY);
+z18=(484FX,48FY);
+FuF (z1
+{53,39} .. {0,101}z2
+-- z3
+{0,-112} .. {-105,0}z4
+{-93,0} .. {0,100}z5
+{0,145} .. {104,55}z6
+{24,-3} .. {24,0}z7
+{30,0} .. {19,27}z8
+-- z9
+{-45,-36} .. {-57,0}z10
+{-80,0} .. {-75,0}z11
+{-43,0} .. {-30,-36}z12
+-- z13
+{52,28} .. {58,0}z14
+{24,0} .. {22,-6}z15
+{-103,-58} .. {0,-140}z16
+{0,-170} .. {177,0}z17
+{87,0} .. {45,33}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(11,586FX#,646FY#,0FY#);
+"Ch";
+z1=(467FX,206FY);
+z2=(534FX,397FY);
+z3=(277FX,646FY);
+z4=(10FX,384FY);
+z5=(10FX,353FY);
+z6=(120FX,353FY);
+z7=(174FX,508FY);
+z8=(293FX,546FY);
+z9=(416FX,396FY);
+z10=(372FX,267FY);
+z11=(163FX,122FY);
+z12=(96FX,159FY);
+z13=(4FX,97FY);
+z14=(189FX,0FY);
+z15=(407FX,0FY);
+z16=(278FX,59FY);
+z17=(467FX,206FY);
+FuF (z1
+{45,59} .. {0,68}z2
+{0,167} .. {-165,0}z3
+{-139,0} .. {0,-144}z4
+-- z5
+-- z6
+{0,79} .. {35,30}z7
+{30,25} .. {50,0}z8
+{94,0} .. {0,-84}z9
+{0,-41} .. {-30,-45}z10
+{-42,-62} .. {-79,-2}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{71,30} .. {46,61}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(12,723FX#,652FY#,0FY#);
+"Rhard";
+z1=(590FX,180FY);
+z2=(681FX,181FY);
+z3=(544FX,313FY);
+z4=(500FX,313FY);
+z5=(500FX,398FY);
+z6=(267FX,653FY);
+z7=(10FX,398FY);
+z8=(10FX,0FY);
+z9=(120FX,0FY);
+z10=(120FX,395FY);
+z11=(257FX,557FY);
+z12=(390FX,391FY);
+z13=(390FX,0FY);
+z14=(500FX,0FY);
+z15=(500FX,226FY);
+z16=(506FX,226FY);
+z17=(576FX,222FY);
+z18=(590FX,180FY);
+FuF (z1
+-- z2
+{0,95} .. {-95,0}z3
+-- z4
+-- z5
+{0,151} .. {-155,0}z6
+{-165,0} .. {0,-169}z7
+-- z8
+-- z9
+-- z10
+{0,86} .. {95,0}z11
+{96,0} .. {0,-85}z12
+-- z13
+-- z14
+-- z15
+-- z16
+{40,0} .. {6,-3}z17
+{5,-3} .. {7,-29}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(13,779FX#,713FY#,0FY#);
+"Ts";
+z1=(523FX,560FY);
+z2=(606FX,554FY);
+z3=(622FX,510FY);
+z4=(722FX,510FY);
+z5=(696FX,608FY);
+z6=(552FX,654FY);
+z7=(193FX,654FY);
+z8=(114FX,666FY);
+z9=(103FX,714FY);
+z10=(0FX,714FY);
+z11=(154FX,557FY);
+z12=(89FX,331FY);
+z13=(339FX,0FY);
+z14=(593FX,327FY);
+z15=(523FX,560FY);
+z16=(474FX,431FY);
+z17=(484FX,317FY);
+z18=(343FX,89FY);
+z19=(278FX,110FY);
+z20=(200FX,331FY);
+z21=(338FX,570FY);
+z22=(474FX,431FY);
+FuF (z1
+{46,0} .. {10,-3}z2
+{10,-3} .. {0,-34}z3
+-- z4
+{0,49} .. {-18,21}z5
+{-35,41} .. {-49,0}z6
+-- z7
+{-44,0} .. {-10,7}z8
+{-6,3} .. {0,36}z9
+-- z10
+{0,-114} .. {105,-5}z11
+{-46,-68} .. {0,-82}z12
+{0,-156} .. {184,0}z13
+{200,0} .. {0,174}z14
+{0,78} .. {-57,60}z15
+);
+FuF (z16
+{7,-32} .. {0,-43}z17
+{0,-85} .. {-111,0}z18
+{-23,0} .. {-21,14}z19
+{-65,47} .. {0,74}z20
+{0,86} .. {114,0}z21
+{84,0} .. {16,-73}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(14,728FX#,654FY#,0FY#);
+"Ph";
+z1=(572FX,159FY);
+z2=(661FX,318FY);
+z3=(392FX,551FY);
+z4=(392FX,654FY);
+z5=(282FX,654FY);
+z6=(282FX,551FY);
+z7=(84FX,480FY);
+z8=(21FX,329FY);
+z9=(47FX,232FY);
+z10=(282FX,113FY);
+z11=(282FX,0FY);
+z12=(392FX,0FY);
+z13=(392FX,113FY);
+z14=(572FX,159FY);
+z15=(392FX,461FY);
+z16=(553FX,318FY);
+z17=(520FX,249FY);
+z18=(428FX,214FY);
+z19=(392FX,214FY);
+z20=(282FX,461FY);
+z21=(282FX,214FY);
+z22=(260FX,214FY);
+z23=(135FX,326FY);
+z24=(282FX,461FY);
+FuF (z1
+{59,37} .. {0,69}z2
+{0,159} .. {-141,5}z3
+-- z4
+-- z5
+-- z6
+{-83,-2} .. {-48,-46}z7
+{-42,-40} .. {0,-60}z8
+{0,-34} .. {17,-31}z9
+{48,-84} .. {92,-3}z10
+-- z11
+-- z12
+-- z13
+{72,2} .. {47,29}z14
+);
+FuF (z15
+{92,0} .. {0,-99}z16
+{0,-25} .. {-23,-22}z17
+{-24,-23} .. {-37,0}z18
+-- z19
+);
+FuF (z20
+-- z21
+-- z22
+{-65,0} .. {0,69}z23
+{0,89} .. {85,1}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(15,652FX#,634FY#,19FY#);
+"Osimple";
+z1=(325FX,-20FY);
+z2=(602FX,306FY);
+z3=(326FX,635FY);
+z4=(50FX,306FY);
+z5=(325FX,-20FY);
+z6=(325FX,550FY);
+z7=(497FX,319FY);
+z8=(326FX,66FY);
+z9=(155FX,319FY);
+z10=(325FX,550FY);
+FuF (z1
+{151,0} .. {0,184}z2
+{0,184} .. {-150,0}z3
+{-153,0} .. {0,-182}z4
+{0,-186} .. {146,0}z5
+);
+FuF (z6
+{86,0} .. {0,-146}z7
+{0,-161} .. {-84,0}z8
+{-86,0} .. {0,159}z9
+{0,149} .. {82,0}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(19,600FX#,646FY#,0FY#);
+"dz";
+z1=(393FX,4FY);
+z2=(494FX,4FY);
+z3=(285FX,393FY);
+z4=(364FX,534FY);
+z5=(249FX,600FY);
+z6=(294FX,647FY);
+z7=(183FX,647FY);
+z8=(119FX,579FY);
+z9=(243FX,510FY);
+z10=(175FX,419FY);
+z11=(13FX,114FY);
+z12=(13FX,96FY);
+z13=(175FX,0FY);
+z14=(375FX,35FY);
+z15=(215FX,315FY);
+z16=(329FX,125FY);
+z17=(165FX,88FY);
+z18=(115FX,135FY);
+z19=(115FX,140FY);
+z20=(215FX,315FY);
+FuF (z1
+-- z2
+{-34,92} .. {-71,63}z3
+{32,49} .. {25,54}z4
+{-39,21} .. {-38,23}z5
+-- z6
+-- z7
+-- z8
+{48,-20} .. {43,-28}z9
+{-10,-21} .. {-36,-39}z10
+{-78,-87} .. {0,-127}z11
+-- z12
+{1,-87} .. {67,0}z13
+{72,0} .. {69,17}z14
+);
+FuF (z15
+{34,-1} .. {8,-18}z16
+{-40,-11} .. {-38,0}z17
+{-40,0} .. {-6,40}z18
+{0,1} .. {0,2}z19
+{1,42} .. {30,29}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(20,552FX#,428FY#,160FY#);
+"gh";
+z1=(286FX,-161FY);
+z2=(496FX,-161FY);
+z3=(496FX,-66FY);
+z4=(386FX,-66FY);
+z5=(386FX,232FY);
+z6=(210FX,428FY);
+z7=(111FX,401FY);
+z8=(111FX,428FY);
+z9=(11FX,428FY);
+z10=(11FX,-8FY);
+z11=(112FX,-8FY);
+z12=(112FX,239FY);
+z13=(198FX,327FY);
+z14=(286FX,235FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,108} .. {-112,0}z6
+{-34,0} .. {-28,-22}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,50} .. {51,0}z13
+{52,0} .. {0,-51}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(21,542FX#,646FY#,0FY#);
+"chmute";
+z1=(387FX,14FY);
+z2=(501FX,14FY);
+z3=(243FX,390FY);
+z4=(312FX,511FY);
+z5=(403FX,557FY);
+z6=(403FX,647FY);
+z7=(242FX,579FY);
+z8=(167FX,454FY);
+z9=(76FX,464FY);
+z10=(129FX,392FY);
+z11=(86FX,284FY);
+z12=(11FX,78FY);
+z13=(25FX,21FY);
+z14=(106FX,4FY);
+z15=(354FX,55FY);
+z16=(188FX,294FY);
+z17=(294FX,134FY);
+z18=(122FX,94FY);
+z19=(114FX,100FY);
+z20=(130FX,156FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{22,39} .. {41,7}z5
+-- z6
+{-76,0} .. {-37,-46}z7
+{-25,-42} .. {-24,-42}z8
+-- z9
+-- z10
+{-9,-30} .. {-19,-42}z11
+{-24,-52} .. {0,-60}z12
+{0,-23} .. {12,-21}z13
+{20,-16} .. {23,0}z14
+{82,0} .. {76,28}z15
+);
+FuF (z16
+-- z17
+{-26,-10} .. {-32,0}z18
+{-5,0} .. {0,4}z19
+{0,10} .. {12,28}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(22,405FX#,672FY#,71FY#);
+"esimple";
+z1=(109FX,347FY);
+z2=(350FX,347FY);
+z3=(350FX,437FY);
+z4=(109FX,437FY);
+z5=(109FX,672FY);
+z6=(11FX,672FY);
+z7=(11FX,-3FY);
+z8=(153FX,-3FY);
+z9=(224FX,-18FY);
+z10=(241FX,-71FY);
+z11=(334FX,-71FY);
+z12=(272FX,57FY);
+z13=(159FX,89FY);
+z14=(109FX,89FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{38,0} .. {11,-9}z9
+{7,-6} .. {4,-35}z10
+-- z11
+{0,63} .. {-41,27}z12
+{-32,22} .. {-43,0}z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(23,477FX#,428FY#,159FY#);
+"article";
+z1=(11FX,-160FY);
+z2=(422FX,-160FY);
+z3=(422FX,-69FY);
+z4=(110FX,-69FY);
+z5=(110FX,264FY);
+z6=(202FX,328FY);
+z7=(283FX,248FY);
+z8=(283FX,-8FY);
+z9=(382FX,-8FY);
+z10=(382FX,281FY);
+z11=(227FX,429FY);
+z12=(110FX,397FY);
+z13=(110FX,428FY);
+z14=(11FX,428FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,49} .. {39,0}z6
+{58,0} .. {0,-62}z7
+-- z8
+-- z9
+-- z10
+{0,84} .. {-79,0}z11
+{-47,0} .. {-39,-28}z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(24,583FX#,428FY#,160FY#);
+"th";
+z1=(470FX,210FY);
+z2=(539FX,210FY);
+z3=(539FX,288FY);
+z4=(469FX,288FY);
+z5=(263FX,428FY);
+z6=(110FX,371FY);
+z7=(110FX,427FY);
+z8=(11FX,427FY);
+z9=(11FX,-161FY);
+z10=(110FX,-161FY);
+z11=(110FX,225FY);
+z12=(126FX,267FY);
+z13=(264FX,343FY);
+z14=(360FX,326FY);
+z15=(383FX,288FY);
+z16=(335FX,288FY);
+z17=(160FX,141FY);
+z18=(303FX,-8FY);
+z19=(470FX,155FY);
+z20=(384FX,210FY);
+z21=(384FX,164FY);
+z22=(306FX,73FY);
+z23=(244FX,125FY);
+z24=(352FX,210FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-9,106} .. {-91,0}z5
+{-59,0} .. {-44,-40}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,10} .. {12,19}z12
+{29,49} .. {58,0}z13
+{47,0} .. {18,-10}z14
+{12,-8} .. {2,-18}z15
+-- z16
+{-91,0} .. {0,-101}z17
+{0,-89} .. {93,0}z18
+{94,0} .. {0,96}z19
+);
+FuF (z20
+-- z21
+{0,-55} .. {-56,0}z22
+{-28,0} .. {0,31}z23
+{0,68} .. {60,0}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(25,582FX#,672FY#,0FY#);
+"zh";
+z1=(429FX,347FY);
+z2=(527FX,347FY);
+z3=(527FX,439FY);
+z4=(429FX,439FY);
+z5=(429FX,672FY);
+z6=(329FX,672FY);
+z7=(329FX,439FY);
+z8=(299FX,439FY);
+z9=(96FX,384FY);
+z10=(11FX,222FY);
+z11=(235FX,0FY);
+z12=(429FX,208FY);
+z13=(329FX,347FY);
+z14=(329FX,178FY);
+z15=(237FX,92FY);
+z16=(221FX,92FY);
+z17=(114FX,222FY);
+z18=(303FX,347FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{-82,0} .. {-52,-37}z9
+{-56,-40} .. {0,-68}z10
+{0,-147} .. {138,0}z11
+{138,0} .. {0,140}z12
+);
+FuF (z13
+-- z14
+{0,-68} .. {-60,0}z15
+-- z16
+{-73,0} .. {0,69}z17
+{0,108} .. {84,0}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(26,407FX#,428FY#,164FY#);
+"sh";
+z1=(292FX,-162FY);
+z2=(349FX,-152FY);
+z3=(348FX,-45FY);
+z4=(210FX,-69FY);
+z5=(153FX,-63FY);
+z6=(140FX,-63FY);
+z7=(186FX,-3FY);
+z8=(340FX,244FY);
+z9=(185FX,428FY);
+z10=(25FX,239FY);
+z11=(28FX,200FY);
+z12=(121FX,200FY);
+z13=(129FX,296FY);
+z14=(178FX,329FY);
+z15=(241FX,235FY);
+z16=(185FX,132FY);
+z17=(75FX,22FY);
+z18=(11FX,-84FY);
+z19=(199FX,-163FY);
+z20=(204FX,-163FY);
+z21=(207FX,-163FY);
+z22=(227FX,-164FY);
+z23=(253FX,-165FY);
+z24=(292FX,-162FY);
+FuF (z1
+{14,1} .. {28,6}z2
+-- z3
+{-46,-14} .. {-48,0}z4
+{-23,0} .. {-15,4}z5
+{-7,2} .. {0,3}z6
+{0,13} .. {34,27}z7
+{87,68} .. {0,127}z8
+{0,91} .. {-96,0}z9
+{-114,0} .. {0,-106}z10
+{0,-13} .. {2,-13}z11
+-- z12
+{0,55} .. {5,14}z13
+{8,22} .. {26,0}z14
+{53,0} .. {0,-45}z15
+{0,-26} .. {-40,-42}z16
+{-36,-38} .. {-37,-37}z17
+{-39,-40} .. {0,-30}z18
+{0,-76} .. {44,0}z19
+-- z20
+{1,0} .. {1,0}z21
+-- z22
+{9,-1} .. {8,0}z23
+{12,0} .. {15,2}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(27,333FX#,428FY#,166FY#);
+"ch";
+z1=(278FX,-150FY);
+z2=(279FX,-61FY);
+z3=(181FX,-79FY);
+z4=(149FX,-65FY);
+z5=(269FX,167FY);
+z6=(235FX,240FY);
+z7=(157FX,299FY);
+z8=(264FX,428FY);
+z9=(152FX,428FY);
+z10=(82FX,344FY);
+z11=(56FX,288FY);
+z12=(94FX,231FY);
+z13=(150FX,201FY);
+z14=(174FX,153FY);
+z15=(43FX,-67FY);
+z16=(61FX,-121FY);
+z17=(167FX,-166FY);
+z18=(278FX,-150FY);
+FuF (z1
+-- z2
+{-32,-8} .. {-32,0}z3
+{-8,0} .. {0,14}z4
+{0,54} .. {0,132}z5
+{0,29} .. {-22,20}z6
+{-12,11} .. {0,11}z7
+{0,9} .. {2,2}z8
+-- z9
+{-28,-25} .. {-20,-32}z10
+{-18,-29} .. {0,-8}z11
+{0,-26} .. {23,-12}z12
+{19,-10} .. {19,-10}z13
+{16,-12} .. {0,-21}z14
+{0,-90} .. {0,-113}z15
+{0,-20} .. {12,-16}z16
+{27,-37} .. {41,0}z17
+{38,0} .. {37,8}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(28,523FX#,428FY#,0FY#);
+"rhard";
+z1=(216FX,0FY);
+z2=(466FX,0FY);
+z3=(466FX,89FY);
+z4=(344FX,89FY);
+z5=(413FX,256FY);
+z6=(217FX,428FY);
+z7=(97FX,402FY);
+z8=(97FX,428FY);
+z9=(11FX,428FY);
+z10=(11FX,0FY);
+z11=(111FX,0FY);
+z12=(111FX,269FY);
+z13=(215FX,334FY);
+z14=(314FX,256FY);
+z15=(216FX,59FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{38,48} .. {0,63}z5
+{0,110} .. {-102,0}z6
+{-38,0} .. {-35,-17}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,50} .. {37,0}z13
+{55,0} .. {0,-62}z14
+{0,-60} .. {-33,-50}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(29,492FX#,632FY#,0FY#);
+"ts";
+z1=(377FX,66FY);
+z2=(437FX,238FY);
+z3=(248FX,529FY);
+z4=(133FX,632FY);
+z5=(1FX,632FY);
+z6=(112FX,528FY);
+z7=(202FX,444FY);
+z8=(11FX,244FY);
+z9=(236FX,0FY);
+z10=(377FX,66FY);
+z11=(302FX,332FY);
+z12=(337FX,231FY);
+z13=(219FX,93FY);
+z14=(110FX,209FY);
+z15=(231FX,352FY);
+z16=(302FX,332FY);
+FuF (z1
+{40,46} .. {0,69}z2
+{0,123} .. {-84,72}z3
+{-63,53} .. {-16,17}z4
+-- z5
+{49,-49} .. {34,-29}z6
+{29,-26} .. {25,-31}z7
+{-105,-9} .. {0,-112}z8
+{0,-151} .. {155,0}z9
+{55,0} .. {39,44}z10
+);
+FuF (z11
+{22,-17} .. {0,-52}z12
+{0,-83} .. {-86,0}z13
+{-64,0} .. {0,65}z14
+{0,79} .. {85,0}z15
+{33,0} .. {15,-13}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(30,684FX#,662FY#,160FY#);
+"ph";
+z1=(528FX,-6FY);
+z2=(629FX,-6FY);
+z3=(629FX,314FY);
+z4=(565FX,416FY);
+z5=(474FX,450FY);
+z6=(378FX,427FY);
+z7=(378FX,663FY);
+z8=(276FX,663FY);
+z9=(276FX,154FY);
+z10=(190FX,84FY);
+z11=(113FX,188FY);
+z12=(113FX,435FY);
+z13=(11FX,435FY);
+z14=(11FX,188FY);
+z15=(168FX,-15FY);
+z16=(276FX,1FY);
+z17=(276FX,-161FY);
+z18=(378FX,-161FY);
+z19=(378FX,285FY);
+z20=(449FX,347FY);
+z21=(528FX,268FY);
+FuF (z1
+-- z2
+-- z3
+{0,41} .. {-40,28}z4
+{-33,21} .. {-28,0}z5
+{-33,0} .. {-29,-14}z6
+-- z7
+-- z8
+-- z9
+{0,-54} .. {-46,0}z10
+{-69,0} .. {0,58}z11
+-- z12
+-- z13
+-- z14
+{0,-105} .. {118,0}z15
+{36,0} .. {34,15}z16
+-- z17
+-- z18
+-- z19
+{0,47} .. {43,0}z20
+{48,0} .. {0,-49}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(31,473FX#,436FY#,10FY#);
+"osimple";
+z1=(236FX,-10FY);
+z2=(444FX,209FY);
+z3=(237FX,437FY);
+z4=(28FX,209FY);
+z5=(236FX,-10FY);
+z6=(236FX,353FY);
+z7=(346FX,218FY);
+z8=(236FX,76FY);
+z9=(127FX,218FY);
+z10=(236FX,353FY);
+FuF (z1
+{114,0} .. {0,123}z2
+{0,125} .. {-114,0}z3
+{-118,0} .. {0,-122}z4
+{0,-125} .. {112,0}z5
+);
+FuF (z6
+{53,0} .. {0,-96}z7
+{0,-98} .. {-55,0}z8
+{-51,0} .. {0,100}z9
+{0,98} .. {49,0}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(32,620FX#,635FY#,16FY#);
+"ev";
+z1=(275FX,-1FY);
+z2=(481FX,-1FY);
+z3=(481FX,91FY);
+z4=(372FX,91FY);
+z5=(372FX,438FY);
+z6=(272FX,438FY);
+z7=(272FX,168FY);
+z8=(189FX,84FY);
+z9=(111FX,178FY);
+z10=(111FX,635FY);
+z11=(11FX,635FY);
+z12=(11FX,202FY);
+z13=(189FX,-17FY);
+z14=(262FX,-1FY);
+z15=(275FX,10FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-57} .. {-55,0}z8
+{-54,0} .. {0,50}z9
+-- z10
+-- z11
+-- z12
+{0,-118} .. {130,0}z13
+{29,0} .. {20,11}z14
+-- z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(127,473FX#,707FY#,0FY#);
+"question";
+z1=(402FX,471FY);
+z2=(416FX,535FY);
+z3=(235FX,707FY);
+z4=(52FX,646FY);
+z5=(62FX,620FY);
+z6=(84FX,556FY);
+z7=(112FX,575FY);
+z8=(130FX,588FY);
+z9=(218FX,615FY);
+z10=(312FX,547FY);
+z11=(287FX,486FY);
+z12=(218FX,400FY);
+z13=(176FX,191FY);
+z14=(194FX,169FY);
+z15=(249FX,169FY);
+z16=(270FX,190FY);
+z17=(270FX,222FY);
+z18=(270FX,243FY);
+z19=(343FX,401FY);
+z20=(402FX,471FY);
+z21=(169FX,0FY);
+z22=(277FX,0FY);
+z23=(277FX,113FY);
+z24=(169FX,113FY);
+FuF (z1
+{9,19} .. {0,23}z2
+{0,114} .. {-103,0}z3
+{-74,0} .. {-61,-44}z4
+-- z5
+-- z6
+{17,10} .. {6,6}z7
+{4,3} .. {8,5}z8
+{24,17} .. {28,0}z9
+{50,0} .. {0,-62}z10
+{0,-27} .. {-19,-17}z11
+{-26,-23} .. {-18,-31}z12
+{-41,-76} .. {-1,-84}z13
+{0,-12} .. {12,-2}z14
+-- z15
+{11,0} .. {0,14}z16
+-- z17
+-- z18
+{0,55} .. {38,36}z19
+{27,27} .. {18,37}z20
+);
+FuF (z21
+-- z22
+-- z23
+-- z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+% ligatures e' ev
+ligtable 101:
+39=:22,
+118=:32;
+
+% ligatures E'
+ligtable 69:
+39=:6;
+
+
+% ligature u'
+ligtable 117:
+39=:23;
+
+% ligature U'
+ligtable 85:
+39=:7;
+
+
+% ligatures t' th
+ligtable 116:
+39=:24,
+104=:24;
+
+% ligatures T' Th TH
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+
+% ligature dz
+ligtable 100:
+122=:19;
+
+% ligatures Dz DZ
+ligtable 68:
+122=:3,
+90=:3;
+
+
+% ligatures g' gh
+ligtable 103:
+39=:25,
+104=:20;
+
+% ligatures G' Gh GH
+ligtable 71:
+39=:9,
+104=:4,
+72=:4;
+
+
+% ligature j'
+ligtable 106:
+39=:21;
+
+% ligature J'
+ligtable 74:
+39=:5;
+
+
+% ligature sh
+ligtable 115:
+104=:26;
+
+% ligatures Sh SH
+ligtable 83:
+104=:10,
+72=:10;
+
+
+% ligatures c' ch
+ligtable 99:
+39=:29,
+104=:27;
+
+% ligatures C' Ch CH
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+
+% ligature r'
+ligtable 114:
+39=:28;
+
+% ligature R'
+ligtable 82:
+39=:12;
+
+
+% ligatures p' ph
+ligtable 112:
+39=:30,
+104=:30;
+
+% ligatures P' Ph PH
+ligtable 80:
+39=:14,
+104=:14,
+72=:14;
+
+
+% ligature o'
+ligtable 111:
+39=:31;
+
+% ligature O'
+ligtable 79:
+39=:15,
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+% ligature ''
+ligtable 39:
+39=:34;
+
+% ligature ``
+ligtable 96:
+96=:92;
+
+% ligature <<
+ligtable 60:
+60=:60;
+
+% ligature >>
+ligtable 62:
+62=:62;
+
+% ligature --
+ligtable 45:
+45=:123;
+
+
+% ligature ---
+ligtable 123:
+45=:125;
+
+
+% spacing for U'
+ligtable 7:
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+
+% spacing for O'
+ligtable 15:
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+
+% spacing for ev
+ligtable 32:
+63 kern -110FX#,
+33 kern -110FX#,
+124 kern -110FX#;
+
+
+% spacing for harcakan nshan
+ligtable 63:
+"a" kern -78FX#,
+"b" kern -78FX#,
+"g" kern -78FX#,
+"d" kern -78FX#,
+"z" kern -78FX#,
+23 kern -78FX#,
+25 kern -78FX#,
+"l" kern -78FX#,
+19 kern -78FX#,
+20 kern -78FX#,
+21 kern -78FX#,
+"m" kern -78FX#,
+"y" kern -138FX#,
+26 kern -78FX#,
+"o" kern -78FX#,
+27 kern -78FX#,
+"p" kern -78FX#,
+"j" kern -78FX#,
+28 kern -78FX#,
+"s" kern -78FX#,
+"v" kern -78FX#,
+"r" kern -78FX#,
+"c" kern -78FX#,
+"u" kern -78FX#,
+30 kern -78FX#,
+"q" kern -138FX#,
+31 kern -78FX#,
+"f" kern -78FX#,
+"w" kern -78FX#,
+"B" kern -78FX#,
+"Z" kern -78FX#,
+ 7 kern -78FX#,
+ 9 kern -78FX#,
+ 5 kern -78FX#,
+"O" kern -78FX#,
+11 kern -78FX#,
+"P" kern -78FX#,
+"J" kern -78FX#,
+"V" kern -78FX#,
+12 kern -78FX#,
+"R" kern -78FX#,
+"C" kern -78FX#,
+"U" kern -78FX#,
+14 kern -78FX#,
+"Q" kern -78FX#,
+15 kern -78FX#,
+"F" kern -78FX#,
+"H" kern -42FX#,
+"Y" kern -42FX#;
+
+
+% spacing for bacakanchakan nshan
+ligtable 33:
+"a" kern -78FX#,
+"b" kern -78FX#,
+"g" kern -78FX#,
+"d" kern -78FX#,
+"z" kern -78FX#,
+23 kern -78FX#,
+25 kern -78FX#,
+"l" kern -78FX#,
+19 kern -78FX#,
+20 kern -78FX#,
+21 kern -78FX#,
+"m" kern -78FX#,
+"y" kern -138FX#,
+26 kern -78FX#,
+"o" kern -78FX#,
+27 kern -78FX#,
+"p" kern -78FX#,
+"j" kern -78FX#,
+28 kern -78FX#,
+"s" kern -78FX#,
+"v" kern -78FX#,
+"r" kern -78FX#,
+"c" kern -78FX#,
+"u" kern -78FX#,
+30 kern -78FX#,
+"q" kern -138FX#,
+31 kern -78FX#,
+"f" kern -78FX#,
+"w" kern -78FX#,
+"B" kern -78FX#,
+"Z" kern -78FX#,
+ 7 kern -78FX#,
+ 9 kern -78FX#,
+ 5 kern -78FX#,
+"O" kern -78FX#,
+11 kern -78FX#,
+"P" kern -78FX#,
+"J" kern -78FX#,
+"V" kern -78FX#,
+12 kern -78FX#,
+"R" kern -78FX#,
+"C" kern -78FX#,
+"U" kern -78FX#,
+14 kern -78FX#,
+"Q" kern -78FX#,
+15 kern -78FX#,
+"F" kern -78FX#,
+"H" kern -42FX#,
+"Y" kern -42FX#;
+
+font_slant := 0.1700;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "arssbs10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/arssr10.mf b/Master/texmf-dist/fonts/source/public/armenian/arssr10.mf
new file mode 100644
index 00000000000..415cc84952b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/arssr10.mf
@@ -0,0 +1,6867 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 arssr10.mf (Armenian SansSerif (Roman) 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,134FX#,747FY#,0FY#);
+"bacakanchakan";
+z1=(135FX,713FY);
+z2=(143FX,722FY);
+z3=(146FX,732FY);
+z4=(141FX,743FY);
+z5=(130FX,747FY);
+z6=(112FX,740FY);
+z7=(45FX,686FY);
+z8=(-46FX,686FY);
+z9=(-59FX,683FY);
+z10=(-63FX,680FY);
+z11=(-123FX,611FY);
+z12=(-133FX,592FY);
+z13=(-118FX,578FY);
+z14=(-99FX,587FY);
+z15=(-37FX,639FY);
+z16=(54FX,639FY);
+z17=(71FX,644FY);
+FuF (z1
+{4,3} .. {2,3}z2
+{2,3} .. {0,4}z3
+{0,4} .. {-3,2}z4
+{-3,3} .. {-5,0}z5
+{-6,0} .. {-6,-5}z6
+-- z7
+-- z8
+{-3,0} .. {-5,-2}z9
+{-2,-1} .. {0,-1}z10
+-- z11
+{-6,-7} .. {0,-6}z12
+{0,-10} .. {10,0}z13
+{6,0} .. {7,6}z14
+-- z15
+-- z16
+{7,0} .. {4,4}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(34,473FX#,657FY#,0FY#);
+"quotedblright";
+z1=(110FX,580FY);
+z2=(110FX,658FY);
+z3=(31FX,658FY);
+z4=(31FX,579FY);
+z5=(55FX,579FY);
+z6=(31FX,461FY);
+z7=(70FX,461FY);
+z8=(294FX,580FY);
+z9=(294FX,658FY);
+z10=(215FX,658FY);
+z11=(215FX,579FY);
+z12=(239FX,579FY);
+z13=(215FX,461FY);
+z14=(254FX,461FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(35,502FX#,658FY#,10FY#);
+"numbersign";
+z1=(45FX,-11FY);
+z2=(112FX,-11FY);
+z3=(150FX,177FY);
+z4=(289FX,177FY);
+z5=(251FX,-11FY);
+z6=(317FX,-11FY);
+z7=(355FX,177FY);
+z8=(491FX,177FY);
+z9=(491FX,243FY);
+z10=(369FX,243FY);
+z11=(402FX,403FY);
+z12=(491FX,403FY);
+z13=(491FX,469FY);
+z14=(415FX,469FY);
+z15=(453FX,659FY);
+z16=(387FX,659FY);
+z17=(348FX,469FY);
+z18=(209FX,469FY);
+z19=(248FX,659FY);
+z20=(182FX,659FY);
+z21=(143FX,469FY);
+z22=(9FX,469FY);
+z23=(9FX,403FY);
+z24=(130FX,403FY);
+z25=(97FX,243FY);
+z26=(9FX,243FY);
+z27=(9FX,177FY);
+z28=(84FX,177FY);
+z29=(164FX,243FY);
+z30=(196FX,403FY);
+z31=(336FX,403FY);
+z32=(302FX,243FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+-- z26
+-- z27
+-- z28
+);
+FuF (z29
+-- z30
+-- z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(36,502FX#,707FY#,93FY#);
+"dollar";
+z1=(225FX,-93FY);
+z2=(272FX,-93FY);
+z3=(272FX,-13FY);
+z4=(408FX,46FY);
+z5=(460FX,185FY);
+z6=(448FX,254FY);
+z7=(412FX,309FY);
+z8=(352FX,349FY);
+z9=(272FX,373FY);
+z10=(272FX,602FY);
+z11=(333FX,569FY);
+z12=(363FX,497FY);
+z13=(445FX,509FY);
+z14=(382FX,629FY);
+z15=(272FX,669FY);
+z16=(272FX,707FY);
+z17=(225FX,707FY);
+z18=(225FX,669FY);
+z19=(106FX,626FY);
+z20=(46FX,488FY);
+z21=(66FX,403FY);
+z22=(125FX,345FY);
+z23=(225FX,307FY);
+z24=(225FX,53FY);
+z25=(145FX,100FY);
+z26=(112FX,194FY);
+z27=(33FX,180FY);
+z28=(63FX,75FY);
+z29=(128FX,13FY);
+z30=(225FX,-14FY);
+z31=(225FX,603FY);
+z32=(225FX,383FY);
+z33=(148FX,427FY);
+z34=(126FX,495FY);
+z35=(152FX,565FY);
+z36=(225FX,603FY);
+z37=(272FX,53FY);
+z38=(272FX,296FY);
+z39=(357FX,248FY);
+z40=(379FX,179FY);
+z41=(348FX,94FY);
+z42=(272FX,53FY);
+FuF (z1
+-- z2
+-- z3
+{56,3} .. {34,36}z4
+{35,37} .. {0,56}z5
+{0,25} .. {-8,22}z6
+{-8,22} .. {-16,15}z7
+{-16,17} .. {-24,10}z8
+{-14,6} .. {-40,10}z9
+-- z10
+{26,-5} .. {15,-16}z11
+{15,-17} .. {5,-31}z12
+-- z13
+{-8,52} .. {-34,29}z14
+{-27,22} .. {-46,4}z15
+-- z16
+-- z17
+-- z18
+{-53,-6} .. {-26,-23}z19
+{-40,-35} .. {0,-57}z20
+{0,-32} .. {13,-25}z21
+{14,-25} .. {25,-14}z22
+{34,-20} .. {32,-6}z23
+-- z24
+{-31,4} .. {-22,28}z25
+{-16,21} .. {-6,42}z26
+-- z27
+{3,-42} .. {17,-28}z28
+{19,-29} .. {25,-13}z29
+{25,-13} .. {40,-5}z30
+);
+FuF (z31
+-- z32
+{-37,11} .. {-15,18}z33
+{-15,18} .. {0,27}z34
+{0,28} .. {18,19}z35
+{19,21} .. {31,4}z36
+);
+FuF (z37
+-- z38
+{43,-15} .. {14,-18}z39
+{15,-18} .. {0,-28}z40
+{0,-34} .. {-21,-23}z41
+{-20,-23} .. {-31,-4}z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(37,804FX#,658FY#,23FY#);
+"percent";
+z1=(52FX,492FY);
+z2=(91FX,360FY);
+z3=(189FX,317FY);
+z4=(289FX,360FY);
+z5=(329FX,488FY);
+z6=(289FX,615FY);
+z7=(188FX,659FY);
+z8=(88FX,610FY);
+z9=(52FX,492FY);
+z10=(191FX,603FY);
+z11=(241FX,578FY);
+z12=(261FX,490FY);
+z13=(241FX,396FY);
+z14=(191FX,371FY);
+z15=(142FX,396FY);
+z16=(122FX,484FY);
+z17=(141FX,578FY);
+z18=(191FX,603FY);
+z19=(191FX,-24FY);
+z20=(257FX,-24FY);
+z21=(610FX,659FY);
+z22=(545FX,659FY);
+z23=(471FX,152FY);
+z24=(510FX,20FY);
+z25=(608FX,-24FY);
+z26=(708FX,20FY);
+z27=(749FX,147FY);
+z28=(708FX,275FY);
+z29=(608FX,318FY);
+z30=(507FX,270FY);
+z31=(471FX,152FY);
+z32=(610FX,264FY);
+z33=(659FX,238FY);
+z34=(679FX,150FY);
+z35=(659FX,57FY);
+z36=(610FX,31FY);
+z37=(561FX,57FY);
+z38=(541FX,144FY);
+z39=(560FX,238FY);
+z40=(610FX,264FY);
+FuF (z1
+{1,-59} .. {25,-29}z2
+{26,-29} .. {38,0}z3
+{40,0} .. {27,29}z4
+{28,31} .. {0,56}z5
+{0,56} .. {-27,29}z6
+{-26,29} .. {-41,0}z7
+{-44,0} .. {-23,-32}z8
+{-23,-33} .. {0,-46}z9
+);
+FuF (z10
+{20,0} .. {14,-17}z11
+{13,-17} .. {0,-42}z12
+{0,-46} .. {-13,-17}z13
+{-14,-17} .. {-20,0}z14
+{-20,0} .. {-13,17}z15
+{-13,18} .. {0,42}z16
+{0,46} .. {13,16}z17
+{14,17} .. {20,0}z18
+);
+FuF (z19
+-- z20
+-- z21
+-- z22
+);
+FuF (z23
+{0,-59} .. {25,-29}z24
+{26,-29} .. {39,0}z25
+{41,0} .. {26,29}z26
+{28,30} .. {0,55}z27
+{0,57} .. {-27,29}z28
+{-26,29} .. {-41,0}z29
+{-45,0} .. {-23,-32}z30
+{-23,-32} .. {0,-46}z31
+);
+FuF (z32
+{20,0} .. {13,-17}z33
+{14,-17} .. {0,-42}z34
+{0,-46} .. {-14,-17}z35
+{-14,-18} .. {-20,1}z36
+{-20,0} .. {-13,17}z37
+{-13,17} .. {0,41}z38
+{0,46} .. {13,16}z39
+{13,17} .. {20,-1}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(38,697FX#,658FY#,20FY#);
+"ampersand";
+z1=(645FX,57FY);
+z2=(611FX,49FY);
+z3=(558FX,41FY);
+z4=(532FX,40FY);
+z5=(487FX,51FY);
+z6=(460FX,63FY);
+z7=(445FX,73FY);
+z8=(457FX,85FY);
+z9=(467FX,95FY);
+z10=(506FX,139FY);
+z11=(600FX,317FY);
+z12=(606FX,336FY);
+z13=(612FX,357FY);
+z14=(578FX,366FY);
+z15=(551FX,372FY);
+z16=(535FX,324FY);
+z17=(426FX,141FY);
+z18=(400FX,116FY);
+z19=(395FX,119FY);
+z20=(389FX,125FY);
+z21=(362FX,157FY);
+z22=(321FX,210FY);
+z23=(268FX,293FY);
+z24=(258FX,312FY);
+z25=(263FX,319FY);
+z26=(311FX,363FY);
+z27=(398FX,507FY);
+z28=(379FX,591FY);
+z29=(324FX,648FY);
+z30=(281FX,659FY);
+z31=(189FX,613FY);
+z32=(148FX,473FY);
+z33=(154FX,407FY);
+z34=(168FX,345FY);
+z35=(170FX,339FY);
+z36=(173FX,330FY);
+z37=(175FX,322FY);
+z38=(162FX,310FY);
+z39=(109FX,264FY);
+z40=(92FX,250FY);
+z41=(81FX,240FY);
+z42=(50FX,194FY);
+z43=(38FX,141FY);
+z44=(65FX,49FY);
+z45=(142FX,-9FY);
+z46=(199FX,-20FY);
+z47=(290FX,-10FY);
+z48=(352FX,12FY);
+z49=(389FX,31FY);
+z50=(411FX,17FY);
+z51=(450FX,-3FY);
+z52=(542FX,-20FY);
+z53=(599FX,-16FY);
+z54=(644FX,-6FY);
+z55=(645FX,-1FY);
+z56=(233FX,372FY);
+z57=(212FX,459FY);
+z58=(210FX,487FY);
+z59=(212FX,535FY);
+z60=(235FX,582FY);
+z61=(274FX,600FY);
+z62=(319FX,571FY);
+z63=(331FX,516FY);
+z64=(329FX,495FY);
+z65=(270FX,406FY);
+z66=(248FX,385FY);
+z67=(233FX,372FY);
+z68=(202FX,266FY);
+z69=(227FX,221FY);
+z70=(296FX,126FY);
+z71=(320FX,97FY);
+z72=(331FX,87FY);
+z73=(341FX,75FY);
+z74=(303FX,58FY);
+z75=(200FX,40FY);
+z76=(165FX,50FY);
+z77=(125FX,88FY);
+z78=(111FX,142FY);
+z79=(121FX,187FY);
+z80=(134FX,206FY);
+z81=(151FX,223FY);
+z82=(170FX,240FY);
+z83=(179FX,247FY);
+z84=(193FX,259FY);
+z85=(202FX,266FY);
+FuF (z1
+-- z2
+{-21,-5} .. {-14,-1}z3
+-- z4
+{-14,0} .. {-16,7}z5
+{-13,5} .. {-5,3}z6
+-- z7
+{3,3} .. {5,5}z8
+{5,4} .. {2,2}z9
+{15,15} .. {11,14}z10
+{39,50} .. {23,69}z11
+{1,4} .. {3,9}z12
+{3,9} .. {1,5}z13
+-- z14
+-- z15
+-- z16
+{-24,-76} .. {-47,-46}z17
+{-16,-16} .. {-1,0}z18
+{-1,0} .. {-2,2}z19
+{-2,1} .. {-2,2}z20
+-- z21
+-- z22
+{-24,31} .. {-12,24}z23
+{-6,10} .. {0,3}z24
+{0,2} .. {3,3}z25
+-- z26
+{60,54} .. {0,40}z27
+{0,30} .. {-12,26}z28
+{-12,26} .. {-25,12}z29
+{-15,7} .. {-14,0}z30
+{-39,0} .. {-22,-30}z31
+{-27,-36} .. {0,-58}z32
+{0,-23} .. {4,-21}z33
+{4,-24} .. {4,-17}z34
+{1,-1} .. {1,-3}z35
+{1,-2} .. {1,-4}z36
+{1,-4} .. {0,-1}z37
+{0,-1} .. {-8,-7}z38
+-- z39
+{-7,-6} .. {-4,-4}z40
+{-5,-3} .. {-3,-3}z41
+{-13,-13} .. {-8,-17}z42
+{-8,-18} .. {0,-18}z43
+{0,-35} .. {18,-26}z44
+{18,-27} .. {33,-12}z45
+{20,-7} .. {18,0}z46
+{33,0} .. {28,7}z47
+{22,5} .. {19,10}z48
+-- z49
+{2,0} .. {14,-9}z50
+{14,-10} .. {11,-5}z51
+{27,-11} .. {35,0}z52
+{16,0} .. {22,3}z53
+{26,4} .. {4,2}z54
+{1,0} .. {0,3}z55
+);
+FuF (z56
+{-11,33} .. {-3,25}z57
+-- z58
+{0,21} .. {2,11}z59
+{3,19} .. {11,12}z60
+{11,12} .. {15,0}z61
+{20,0} .. {10,-20}z62
+{9,-15} .. {0,-21}z63
+{0,-9} .. {-1,-5}z64
+{-6,-26} .. {-35,-32}z65
+-- z66
+{-6,-7} .. {-4,-2}z67
+);
+FuF (z68
+{7,-16} .. {9,-14}z69
+{21,-32} .. {26,-31}z70
+-- z71
+{2,-2} .. {5,-5}z72
+{5,-5} .. {2,-3}z73
+-- z74
+{-31,-13} .. {-37,0}z75
+{-12,0} .. {-12,6}z76
+{-17,9} .. {-10,17}z77
+{-9,16} .. {0,20}z78
+{0,15} .. {6,15}z79
+{3,6} .. {6,6}z80
+{5,6} .. {6,5}z81
+{7,6} .. {6,5}z82
+{1,1} .. {5,4}z83
+{5,5} .. {5,3}z84
+{4,4} .. {2,1}z85
+);
+lbl (range 1 thru 85);
+endchar;
+
+beginchar(39,263FX#,657FY#,0FY#);
+"apatharc";
+z1=(171FX,580FY);
+z2=(171FX,658FY);
+z3=(92FX,658FY);
+z4=(92FX,579FY);
+z5=(116FX,579FY);
+z6=(92FX,461FY);
+z7=(131FX,461FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+lbl (range 1 thru 7);
+endchar;
+
+beginchar(40,389FX#,749FY#,249FY#);
+"parenleft";
+z1=(332FX,-249FY);
+z2=(315FX,-231FY);
+z3=(292FX,-205FY);
+z4=(225FX,-97FY);
+z5=(165FX,127FY);
+z6=(159FX,213FY);
+z7=(158FX,226FY);
+z8=(158FX,273FY);
+z9=(159FX,296FY);
+z10=(163FX,357FY);
+z11=(239FX,625FY);
+z12=(298FX,712FY);
+z13=(316FX,733FY);
+z14=(332FX,749FY);
+z15=(274FX,749FY);
+z16=(268FX,749FY);
+z17=(246FX,728FY);
+z18=(127FX,542FY);
+z19=(98FX,447FY);
+z20=(77FX,250FY);
+z21=(84FX,136FY);
+z22=(106FX,23FY);
+z23=(141FX,-75FY);
+z24=(246FX,-229FY);
+z25=(268FX,-249FY);
+z26=(274FX,-249FY);
+FuF (z1
+{-3,4} .. {-8,9}z2
+-- z3
+{-26,29} .. {-20,42}z4
+{-32,68} .. {-6,81}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{7,105} .. {40,73}z11
+{18,34} .. {21,24}z12
+-- z13
+{8,7} .. {3,4}z14
+-- z15
+-- z16
+{-1,-1} .. {-14,-13}z17
+{-52,-51} .. {-27,-73}z18
+{-12,-31} .. {-7,-32}z19
+{-14,-64} .. {0,-67}z20
+{0,-36} .. {4,-39}z21
+{5,-40} .. {10,-35}z22
+{9,-36} .. {14,-30}z23
+{27,-58} .. {43,-44}z24
+{12,-12} .. {3,-1}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(41,389FX#,749FY#,249FY#);
+"parenright";
+z1=(55FX,749FY);
+z2=(60FX,743FY);
+z3=(67FX,736FY);
+z4=(72FX,731FY);
+z5=(95FX,705FY);
+z6=(163FX,596FY);
+z7=(201FX,487FY);
+z8=(222FX,371FY);
+z9=(228FX,286FY);
+z10=(229FX,273FY);
+z11=(229FX,226FY);
+z12=(228FX,203FY);
+z13=(224FX,142FY);
+z14=(198FX,0FY);
+z15=(148FX,-125FY);
+z16=(90FX,-212FY);
+z17=(71FX,-233FY);
+z18=(55FX,-249FY);
+z19=(113FX,-249FY);
+z20=(119FX,-249FY);
+z21=(142FX,-228FY);
+z22=(212FX,-141FY);
+z23=(260FX,-42FY);
+z24=(289FX,52FY);
+z25=(310FX,251FY);
+z26=(294FX,423FY);
+z27=(247FX,575FY);
+z28=(141FX,729FY);
+z29=(119FX,749FY);
+z30=(113FX,749FY);
+FuF (z1
+{1,-1} .. {2,-3}z2
+{2,-2} .. {2,-3}z3
+{2,-2} .. {1,-1}z4
+-- z5
+{29,-31} .. {18,-40}z6
+{16,-34} .. {10,-38}z7
+{10,-38} .. {3,-40}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{-3,-50} .. {-13,-45}z14
+{-12,-44} .. {-21,-39}z15
+{-16,-29} .. {-25,-27}z16
+-- z17
+{-9,-9} .. {-2,-2}z18
+-- z19
+-- z20
+{3,1} .. {13,13}z21
+{27,27} .. {20,31}z22
+{19,32} .. {13,34}z23
+{13,34} .. {6,29}z24
+{14,61} .. {0,72}z25
+{0,59} .. {-11,55}z26
+{-10,56} .. {-21,46}z27
+{-28,61} .. {-42,42}z28
+{-12,12} .. {-3,1}z29
+-- z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(42,459FX#,689FY#,0FY#);
+"asterisk";
+z1=(203FX,532FY);
+z2=(185FX,544FY);
+z3=(150FX,570FY);
+z4=(124FX,587FY);
+z5=(106FX,600FY);
+z6=(92FX,603FY);
+z7=(68FX,593FY);
+z8=(58FX,569FY);
+z9=(65FX,548FY);
+z10=(74FX,542FY);
+z11=(179FX,486FY);
+z12=(179FX,484FY);
+z13=(74FX,428FY);
+z14=(65FX,422FY);
+z15=(58FX,402FY);
+z16=(69FX,378FY);
+z17=(92FX,367FY);
+z18=(106FX,370FY);
+z19=(116FX,377FY);
+z20=(124FX,383FY);
+z21=(150FX,401FY);
+z22=(185FX,426FY);
+z23=(203FX,439FY);
+z24=(203FX,425FY);
+z25=(199FX,364FY);
+z26=(198FX,341FY);
+z27=(196FX,315FY);
+z28=(205FX,291FY);
+z29=(228FX,281FY);
+z30=(253FX,290FY);
+z31=(262FX,315FY);
+z32=(261FX,327FY);
+z33=(261FX,340FY);
+z34=(257FX,410FY);
+z35=(255FX,439FY);
+z36=(273FX,426FY);
+z37=(308FX,401FY);
+z38=(334FX,383FY);
+z39=(344FX,376FY);
+z40=(352FX,370FY);
+z41=(366FX,367FY);
+z42=(390FX,378FY);
+z43=(400FX,403FY);
+z44=(393FX,422FY);
+z45=(389FX,425FY);
+z46=(385FX,428FY);
+z47=(279FX,484FY);
+z48=(279FX,486FY);
+z49=(385FX,542FY);
+z50=(393FX,548FY);
+z51=(400FX,569FY);
+z52=(390FX,593FY);
+z53=(366FX,603FY);
+z54=(352FX,600FY);
+z55=(344FX,595FY);
+z56=(334FX,587FY);
+z57=(308FX,570FY);
+z58=(273FX,544FY);
+z59=(255FX,532FY);
+z60=(256FX,544FY);
+z61=(260FX,606FY);
+z62=(261FX,630FY);
+z63=(262FX,655FY);
+z64=(254FX,679FY);
+z65=(230FX,689FY);
+z66=(206FX,680FY);
+z67=(196FX,655FY);
+z68=(197FX,644FY);
+z69=(198FX,630FY);
+z70=(202FX,560FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-11,8} .. {-1,1}z5
+{-7,2} .. {-3,0}z6
+{-9,0} .. {-6,-7}z7
+{-7,-7} .. {0,-9}z8
+{0,-8} .. {5,-6}z9
+{2,-2} .. {4,-2}z10
+-- z11
+-- z12
+-- z13
+{-4,-3} .. {-2,-1}z14
+{-5,-5} .. {0,-8}z15
+{0,-8} .. {8,-8}z16
+{7,-7} .. {9,0}z17
+{5,0} .. {5,2}z18
+{3,2} .. {4,3}z19
+{3,3} .. {2,1}z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+-- z26
+-- z27
+{-1,-10} .. {6,-6}z28
+{6,-7} .. {9,0}z29
+{11,0} .. {6,6}z30
+{6,6} .. {-1,10}z31
+-- z32
+-- z33
+-- z34
+-- z35
+-- z36
+-- z37
+-- z38
+{2,-1} .. {4,-3}z39
+{5,-4} .. {0,0}z40
+{5,-2} .. {4,0}z41
+{10,0} .. {6,7}z42
+{7,7} .. {0,9}z43
+{0,7} .. {-5,5}z44
+{-2,1} .. {-1,1}z45
+{-2,1} .. {-1,1}z46
+-- z47
+-- z48
+-- z49
+{3,2} .. {2,2}z50
+{5,6} .. {0,8}z51
+{0,9} .. {-7,7}z52
+{-6,7} .. {-10,0}z53
+{-3,0} .. {-7,-2}z54
+{-3,-2} .. {-3,-1}z55
+{-3,-2} .. {-4,-3}z56
+-- z57
+-- z58
+-- z59
+-- z60
+-- z61
+-- z62
+-- z63
+{1,10} .. {-5,6}z64
+{-6,7} .. {-10,0}z65
+{-10,0} .. {-6,-6}z66
+{-7,-6} .. {1,-10}z67
+-- z68
+-- z69
+-- z70
+);
+lbl (range 1 thru 70);
+endchar;
+
+beginchar(43,537FX#,479FY#,22FY#);
+"plus";
+z1=(522FX,197FY);
+z2=(522FX,257FY);
+z3=(300FX,257FY);
+z4=(300FX,479FY);
+z5=(240FX,479FY);
+z6=(240FX,257FY);
+z7=(19FX,257FY);
+z8=(19FX,197FY);
+z9=(240FX,197FY);
+z10=(240FX,-23FY);
+z11=(300FX,-23FY);
+z12=(300FX,197FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,263FX#,78FY#,118FY#);
+"comma";
+z1=(92FX,-118FY);
+z2=(132FX,-118FY);
+z3=(164FX,-19FY);
+z4=(171FX,18FY);
+z5=(171FX,79FY);
+z6=(92FX,79FY);
+z7=(92FX,0FY);
+z8=(116FX,0FY);
+FuF (z1
+-- z2
+{10,34} .. {11,32}z3
+{6,18} .. {0,17}z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(45,422FX#,257FY#,0FY#);
+"miuthyun";
+z1=(54FX,197FY);
+z2=(369FX,197FY);
+z3=(369FX,257FY);
+z4=(54FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,263FX#,78FY#,0FY#);
+"period";
+z1=(171FX,79FY);
+z2=(92FX,79FY);
+z3=(92FX,0FY);
+z4=(171FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(47,251FX#,658FY#,11FY#);
+"slash";
+z1=(0FX,-11FY);
+z2=(64FX,-11FY);
+z3=(251FX,658FY);
+z4=(188FX,658FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,503FX#,650FY#,11FY#);
+"zero";
+z1=(38FX,319FY);
+z2=(102FX,56FY);
+z3=(249FX,-11FY);
+z4=(366FX,28FY);
+z5=(437FX,135FY);
+z6=(460FX,319FY);
+z7=(445FX,473FY);
+z8=(405FX,569FY);
+z9=(340FX,629FY);
+z10=(249FX,650FY);
+z11=(131FX,612FY);
+z12=(61FX,504FY);
+z13=(43FX,423FY);
+z14=(38FX,319FY);
+z15=(119FX,319FY);
+z16=(160FX,538FY);
+z17=(248FX,584FY);
+z18=(341FX,532FY);
+z19=(378FX,319FY);
+z20=(340FX,108FY);
+z21=(249FX,54FY);
+z22=(156FX,108FY);
+z23=(119FX,319FY);
+FuF (z1
+{0,-121} .. {43,-54}z2
+{35,-45} .. {63,0}z3
+{47,0} .. {31,26}z4
+{32,25} .. {16,46}z5
+{15,46} .. {0,77}z6
+{0,64} .. {-10,38}z7
+{-10,38} .. {-17,26}z8
+{-17,26} .. {-26,14}z9
+{-27,14} .. {-34,0}z10
+{-47,0} .. {-31,-25}z11
+{-31,-26} .. {-16,-46}z12
+{-8,-23} .. {-4,-31}z13
+{-4,-31} .. {0,-38}z14
+);
+FuF (z15
+{0,107} .. {27,39}z16
+{22,31} .. {36,0}z17
+{37,0} .. {25,-35}z18
+{25,-35} .. {0,-107}z19
+{0,-105} .. {-25,-35}z20
+{-25,-36} .. {-36,0}z21
+{-37,0} .. {-25,36}z22
+{-24,35} .. {0,105}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(49,503FX#,650FY#,0FY#);
+"one";
+z1=(337FX,0FY);
+z2=(337FX,650FY);
+z3=(286FX,650FY);
+z4=(215FX,563FY);
+z5=(98FX,488FY);
+z6=(98FX,411FY);
+z7=(183FX,452FY);
+z8=(257FX,507FY);
+z9=(257FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-14,-28} .. {-33,-30}z4
+{-33,-29} .. {-45,-20}z5
+-- z6
+{25,9} .. {32,18}z7
+{31,19} .. {18,18}z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(50,503FX#,650FY#,0FY#);
+"two";
+z1=(455FX,76FY);
+z2=(138FX,76FY);
+z3=(171FX,120FY);
+z4=(263FX,201FY);
+z5=(386FX,315FY);
+z6=(439FX,395FY);
+z7=(454FX,470FY);
+z8=(400FX,598FY);
+z9=(253FX,650FY);
+z10=(105FX,602FY);
+z11=(42FX,463FY);
+z12=(124FX,454FY);
+z13=(159FX,550FY);
+z14=(251FX,584FY);
+z15=(339FX,552FY);
+z16=(373FX,472FY);
+z17=(335FX,376FY);
+z18=(193FX,239FY);
+z19=(89FX,142FY);
+z20=(37FX,55FY);
+z21=(29FX,28FY);
+z22=(27FX,0FY);
+z23=(455FX,0FY);
+FuF (z1
+-- z2
+{9,15} .. {13,14}z3
+{13,14} .. {48,40}z4
+{57,48} .. {25,28}z5
+{25,29} .. {11,25}z6
+{10,25} .. {0,25}z7
+{0,51} .. {-36,34}z8
+{-37,35} .. {-61,0}z9
+{-62,0} .. {-37,-32}z10
+{-36,-31} .. {-6,-61}z11
+-- z12
+{0,41} .. {23,23}z13
+{24,23} .. {38,0}z14
+{36,0} .. {23,-21}z15
+{22,-22} .. {0,-32}z16
+{0,-30} .. {-25,-34}z17
+{-25,-34} .. {-70,-57}z18
+{-45,-36} .. {-24,-29}z19
+{-24,-28} .. {-10,-30}z20
+{-4,-10} .. {-1,-8}z21
+{-1,-7} .. {0,-11}z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(51,503FX#,650FY#,11FY#);
+"three";
+z1=(38FX,171FY);
+z2=(102FX,39FY);
+z3=(244FX,-11FY);
+z4=(400FX,47FY);
+z5=(462FX,191FY);
+z6=(430FX,296FY);
+z7=(341FX,351FY);
+z8=(408FX,406FY);
+z9=(430FX,482FY);
+z10=(407FX,565FY);
+z11=(338FX,627FY);
+z12=(241FX,650FY);
+z13=(112FX,606FY);
+z14=(46FX,482FY);
+z15=(125FX,468FY);
+z16=(166FX,556FY);
+z17=(242FX,585FY);
+z18=(319FX,556FY);
+z19=(348FX,484FY);
+z20=(308FX,402FY);
+z21=(216FX,375FY);
+z22=(204FX,376FY);
+z23=(195FX,307FY);
+z24=(251FX,315FY);
+z25=(342FX,280FY);
+z26=(378FX,189FY);
+z27=(339FX,93FY);
+z28=(244FX,54FY);
+z29=(164FX,84FY);
+z30=(117FX,182FY);
+FuF (z1
+{6,-54} .. {37,-34}z2
+{38,-34} .. {57,0}z3
+{63,0} .. {41,39}z4
+{41,40} .. {0,56}z5
+{0,42} .. {-21,28}z6
+{-21,28} .. {-38,9}z7
+{29,13} .. {15,23}z8
+{15,23} .. {0,28}z9
+{0,29} .. {-15,26}z10
+{-16,27} .. {-30,15}z11
+{-29,16} .. {-35,0}z12
+{-51,0} .. {-35,-29}z13
+{-34,-30} .. {-10,-53}z14
+-- z15
+{7,39} .. {21,20}z16
+{20,19} .. {30,0}z17
+{32,0} .. {20,-19}z18
+{20,-19} .. {0,-28}z19
+{0,-37} .. {-27,-18}z20
+{-28,-18} .. {-34,2}z21
+-- z22
+-- z23
+{21,5} .. {16,0}z24
+{37,0} .. {24,-23}z25
+{24,-24} .. {0,-37}z26
+{0,-38} .. {-26,-26}z27
+{-26,-26} .. {-37,0}z28
+{-31,0} .. {-22,20}z29
+{-22,20} .. {-9,45}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(52,503FX#,647FY#,0FY#);
+"four";
+z1=(292FX,0FY);
+z2=(372FX,0FY);
+z3=(372FX,155FY);
+z4=(459FX,155FY);
+z5=(459FX,228FY);
+z6=(372FX,228FY);
+z7=(372FX,647FY);
+z8=(307FX,647FY);
+z9=(11FX,228FY);
+z10=(11FX,155FY);
+z11=(292FX,155FY);
+z12=(292FX,228FY);
+z13=(90FX,228FY);
+z14=(292FX,520FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,503FX#,638FY#,11FY#);
+"five";
+z1=(38FX,170FY);
+z2=(101FX,38FY);
+z3=(246FX,-11FY);
+z4=(416FX,68FY);
+z5=(467FX,219FY);
+z6=(409FX,371FY);
+z7=(265FX,429FY);
+z8=(143FX,389FY);
+z9=(178FX,563FY);
+z10=(436FX,563FY);
+z11=(436FX,639FY);
+z12=(114FX,639FY);
+z13=(52FX,306FY);
+z14=(126FX,296FY);
+z15=(176FX,342FY);
+z16=(244FX,359FY);
+z17=(344FX,320FY);
+z18=(382FX,212FY);
+z19=(342FX,98FY);
+z20=(246FX,54FY);
+z21=(164FX,85FY);
+z22=(121FX,177FY);
+FuF (z1
+{5,-55} .. {37,-33}z2
+{38,-33} .. {59,0}z3
+{71,0} .. {42,53}z4
+{34,43} .. {0,58}z5
+{0,62} .. {-38,39}z6
+{-39,39} .. {-57,0}z7
+{-42,0} .. {-39,-27}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{13,19} .. {21,12}z15
+{20,11} .. {25,0}z16
+{41,0} .. {25,-26}z17
+{26,-27} .. {0,-45}z18
+{0,-47} .. {-27,-28}z19
+{-26,-29} .. {-38,0}z20
+{-32,0} .. {-23,20}z21
+{-22,20} .. {-6,41}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(54,503FX#,650FY#,11FY#);
+"six";
+z1=(450FX,489FY);
+z2=(392FX,607FY);
+z3=(266FX,650FY);
+z4=(103FX,576FY);
+z5=(34FX,303FY);
+z6=(97FX,62FY);
+z7=(259FX,-11FY);
+z8=(363FX,17FY);
+z9=(435FX,97FY);
+z10=(462FX,210FY);
+z11=(406FX,361FY);
+z12=(270FX,420FY);
+z13=(183FX,399FY);
+z14=(113FX,334FY);
+z15=(119FX,419FY);
+z16=(136FX,484FY);
+z17=(195FX,564FY);
+z18=(261FX,585FY);
+z19=(341FX,551FY);
+z20=(371FX,483FY);
+z21=(125FX,210FY);
+z22=(163FX,311FY);
+z23=(254FX,350FY);
+z24=(344FX,311FY);
+z25=(380FX,205FY);
+z26=(344FX,95FY);
+z27=(257FX,54FY);
+z28=(191FX,74FY);
+z29=(143FX,132FY);
+z30=(125FX,210FY);
+FuF (z1
+{-6,51} .. {-32,28}z2
+{-33,29} .. {-51,0}z3
+{-68,0} .. {-41,-49}z4
+{-46,-57} .. {0,-125}z5
+{0,-112} .. {42,-49}z6
+{42,-49} .. {66,0}z7
+{39,0} .. {31,19}z8
+{31,19} .. {17,35}z9
+{18,35} .. {0,40}z10
+{0,62} .. {-37,39}z11
+{-38,39} .. {-53,0}z12
+{-30,0} .. {-28,-14}z13
+{-27,-14} .. {-19,-29}z14
+{0,31} .. {4,26}z15
+{4,26} .. {8,17}z16
+{14,35} .. {25,18}z17
+{19,14} .. {25,0}z18
+{32,0} .. {21,-22}z19
+{13,-14} .. {7,-31}z20
+);
+FuF (z21
+{0,41} .. {25,26}z22
+{25,26} .. {36,0}z23
+{36,0} .. {24,-26}z24
+{24,-26} .. {0,-45}z25
+{0,-46} .. {-24,-27}z26
+{-24,-27} .. {-34,0}z27
+{-22,0} .. {-22,13}z28
+{-21,14} .. {-11,25}z29
+{-12,25} .. {0,27}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(55,503FX#,639FY#,0FY#);
+"seven";
+z1=(43FX,563FY);
+z2=(360FX,563FY);
+z3=(246FX,393FY);
+z4=(163FX,185FY);
+z5=(133FX,0FY);
+z6=(215FX,0FY);
+z7=(224FX,93FY);
+z8=(246FX,178FY);
+z9=(339FX,402FY);
+z10=(462FX,577FY);
+z11=(462FX,639FY);
+z12=(43FX,639FY);
+FuF (z1
+-- z2
+{-40,-46} .. {-35,-68}z3
+{-36,-67} .. {-19,-71}z4
+{-19,-75} .. {0,-49}z5
+-- z6
+{0,30} .. {6,32}z7
+{5,25} .. {10,32}z8
+{22,78} .. {40,71}z9
+{41,74} .. {40,43}z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(56,503FX#,650FY#,11FY#);
+"eight";
+z1=(160FX,351FY);
+z2=(68FX,292FY);
+z3=(37FX,187FY);
+z4=(96FX,46FY);
+z5=(250FX,-11FY);
+z6=(405FX,46FY);
+z7=(463FX,185FY);
+z8=(432FX,289FY);
+z9=(341FX,351FY);
+z10=(413FX,403FY);
+z11=(437FX,481FY);
+z12=(385FX,601FY);
+z13=(249FX,650FY);
+z14=(114FX,602FY);
+z15=(63FX,483FY);
+z16=(87FX,402FY);
+z17=(160FX,351FY);
+z18=(144FX,486FY);
+z19=(174FX,556FY);
+z20=(250FX,585FY);
+z21=(325FX,555FY);
+z22=(355FX,481FY);
+z23=(326FX,411FY);
+z24=(250FX,382FY);
+z25=(173FX,411FY);
+z26=(144FX,486FY);
+z27=(118FX,187FY);
+z28=(156FX,279FY);
+z29=(248FX,317FY);
+z30=(344FX,279FY);
+z31=(382FX,184FY);
+z32=(345FX,91FY);
+z33=(251FX,54FY);
+z34=(182FX,72FY);
+z35=(134FX,121FY);
+z36=(118FX,187FY);
+FuF (z1
+{-40,-10} .. {-22,-29}z2
+{-21,-28} .. {0,-42}z3
+{0,-56} .. {40,-38}z4
+{39,-38} .. {64,0}z5
+{64,0} .. {40,38}z6
+{39,38} .. {0,55}z7
+{0,40} .. {-21,29}z8
+{-21,29} .. {-40,13}z9
+{33,12} .. {15,22}z10
+{16,22} .. {0,30}z11
+{0,47} .. {-35,33}z12
+{-34,33} .. {-56,0}z13
+{-57,0} .. {-33,-32}z14
+{-34,-33} .. {0,-47}z15
+{0,-31} .. {16,-23}z16
+{16,-22} .. {33,-12}z17
+);
+FuF (z18
+{0,27} .. {20,20}z19
+{20,19} .. {31,0}z20
+{30,0} .. {20,-20}z21
+{20,-20} .. {0,-29}z22
+{0,-27} .. {-19,-19}z23
+{-20,-20} .. {-31,0}z24
+{-31,0} .. {-20,20}z25
+{-19,20} .. {0,31}z26
+);
+FuF (z27
+{0,37} .. {25,25}z28
+{25,25} .. {37,0}z29
+{38,0} .. {26,-25}z30
+{25,-26} .. {0,-38}z31
+{0,-38} .. {-25,-24}z32
+{-24,-24} .. {-38,0}z33
+{-25,0} .. {-22,12}z34
+{-21,11} .. {-11,21}z35
+{-10,22} .. {0,22}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(57,503FX#,650FY#,11FY#);
+"nine";
+z1=(49FX,150FY);
+z2=(108FX,31FY);
+z3=(231FX,-11FY);
+z4=(356FX,28FY);
+z5=(437FX,140FY);
+z6=(463FX,337FY);
+z7=(436FX,519FY);
+z8=(356FX,616FY);
+z9=(301FX,642FY);
+z10=(241FX,650FY);
+z11=(96FX,590FY);
+z12=(38FX,431FY);
+z13=(94FX,278FY);
+z14=(229FX,219FY);
+z15=(319FX,244FY);
+z16=(384FX,305FY);
+z17=(384FX,289FY);
+z18=(372FX,191FY);
+z19=(342FX,115FY);
+z20=(298FX,71FY);
+z21=(233FX,54FY);
+z22=(163FX,79FY);
+z23=(126FX,157FY);
+z24=(375FX,435FY);
+z25=(339FX,328FY);
+z26=(249FX,290FY);
+z27=(156FX,329FY);
+z28=(119FX,429FY);
+z29=(159FX,541FY);
+z30=(251FX,584FY);
+z31=(339FX,544FY);
+z32=(375FX,435FY);
+FuF (z1
+{8,-52} .. {32,-28}z2
+{32,-28} .. {50,0}z3
+{48,0} .. {35,26}z4
+{36,25} .. {18,49}z5
+{17,48} .. {0,83}z6
+{0,79} .. {-18,42}z7
+{-18,42} .. {-35,23}z8
+{-17,11} .. {-20,6}z9
+{-19,5} .. {-21,0}z10
+{-58,0} .. {-39,-40}z11
+{-39,-40} .. {0,-66}z12
+{0,-63} .. {38,-39}z13
+{37,-39} .. {53,0}z14
+{32,0} .. {28,16}z15
+{27,16} .. {16,25}z16
+-- z17
+{1,-33} .. {-8,-32}z18
+{-8,-32} .. {-12,-19}z19
+{-11,-18} .. {-18,-11}z20
+{-19,-11} .. {-25,0}z21
+{-28,0} .. {-19,17}z22
+{-19,16} .. {-6,36}z23
+);
+FuF (z24
+{0,-45} .. {-24,-26}z25
+{-24,-25} .. {-36,0}z26
+{-37,0} .. {-25,26}z27
+{-24,25} .. {0,41}z28
+{0,46} .. {27,29}z29
+{26,29} .. {35,0}z30
+{34,0} .. {25,-27}z31
+{24,-26} .. {0,-46}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(58,263FX#,420FY#,0FY#);
+"colon";
+z1=(171FX,421FY);
+z2=(92FX,421FY);
+z3=(92FX,342FY);
+z4=(171FX,342FY);
+z5=(92FX,79FY);
+z6=(92FX,0FY);
+z7=(171FX,0FY);
+z8=(171FX,79FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(59,263FX#,420FY#,118FY#);
+"semicolon";
+z1=(171FX,421FY);
+z2=(92FX,421FY);
+z3=(92FX,342FY);
+z4=(171FX,342FY);
+z5=(92FX,-118FY);
+z6=(132FX,-118FY);
+z7=(164FX,-19FY);
+z8=(171FX,18FY);
+z9=(171FX,79FY);
+z10=(92FX,79FY);
+z11=(92FX,0FY);
+z12=(116FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+{10,34} .. {11,32}z7
+{6,18} .. {0,17}z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(60,483FX#,417FY#,0FY#);
+"guillemotleft";
+z1=(144FX,224FY);
+z2=(255FX,418FY);
+z3=(192FX,418FY);
+z4=(56FX,224FY);
+z5=(192FX,31FY);
+z6=(254FX,31FY);
+z7=(309FX,224FY);
+z8=(421FX,418FY);
+z9=(357FX,418FY);
+z10=(223FX,224FY);
+z11=(357FX,31FY);
+z12=(421FX,31FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(61,537FX#,413FY#,0FY#);
+"equal";
+z1=(21FX,359FY);
+z2=(520FX,359FY);
+z3=(520FX,414FY);
+z4=(21FX,414FY);
+z5=(21FX,208FY);
+z6=(520FX,208FY);
+z7=(520FX,263FY);
+z8=(21FX,263FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,483FX#,417FY#,0FY#);
+"guillemotright";
+z1=(336FX,224FY);
+z2=(225FX,31FY);
+z3=(287FX,31FY);
+z4=(424FX,224FY);
+z5=(287FX,418FY);
+z6=(225FX,418FY);
+z7=(171FX,224FY);
+z8=(59FX,31FY);
+z9=(124FX,31FY);
+z10=(257FX,224FY);
+z11=(124FX,418FY);
+z12=(59FX,418FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(63,120FX#,731FY#,0FY#);
+"paruyg";
+z1=(69FX,639FY);
+z2=(39FX,704FY);
+z3=(-38FX,731FY);
+z4=(-112FX,704FY);
+z5=(-144FX,616FY);
+z6=(-144FX,534FY);
+z7=(-118FX,534FY);
+z8=(-119FX,564FY);
+z9=(-119FX,593FY);
+z10=(-105FX,673FY);
+z11=(-32FX,706FY);
+z12=(22FX,687FY);
+z13=(39FX,630FY);
+z14=(28FX,585FY);
+z15=(7FX,575FY);
+z16=(-17FX,611FY);
+z17=(-38FX,647FY);
+z18=(-49FX,633FY);
+z19=(-47FX,617FY);
+z20=(-41FX,598FY);
+z21=(7FX,549FY);
+z22=(54FX,579FY);
+z23=(69FX,639FY);
+FuF (z1
+{0,26} .. {-20,18}z2
+{-20,18} .. {-31,0}z3
+{-30,0} .. {-19,-18}z4
+{-21,-20} .. {0,-39}z5
+-- z6
+-- z7
+{0,7} .. {-1,13}z8
+{0,14} .. {0,6}z9
+{0,38} .. {10,16}z10
+{13,22} .. {36,0}z11
+{25,0} .. {11,-13}z12
+{11,-13} .. {0,-25}z13
+{0,-20} .. {-7,-10}z14
+{-5,-7} .. {-9,0}z15
+{-12,0} .. {-4,24}z16
+{-5,24} .. {-9,0}z17
+{-7,0} .. {0,-10}z18
+{0,-5} .. {1,-6}z19
+{2,-5} .. {2,-8}z20
+{11,-32} .. {21,0}z21
+{20,0} .. {11,20}z22
+{10,17} .. {0,23}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(64,900FX#,646FY#,186FY#);
+"at";
+z1=(503FX,71FY);
+z2=(511FX,33FY);
+z3=(538FX,7FY);
+z4=(586FX,-2FY);
+z5=(759FX,86FY);
+z6=(847FX,309FY);
+z7=(805FX,472FY);
+z8=(670FX,603FY);
+z9=(477FX,646FY);
+z10=(241FX,584FY);
+z11=(91FX,404FY);
+z12=(48FX,203FY);
+z13=(84FX,26FY);
+z14=(171FX,-88FY);
+z15=(309FX,-162FY);
+z16=(486FX,-187FY);
+z17=(583FX,-180FY);
+z18=(665FX,-159FY);
+z19=(793FX,-84FY);
+z20=(868FX,8FY);
+z21=(790FX,8FY);
+z22=(675FX,-85FY);
+z23=(485FX,-123FY);
+z24=(292FX,-86FY);
+z25=(158FX,27FY);
+z26=(112FX,210FY);
+z27=(158FX,400FY);
+z28=(288FX,536FY);
+z29=(473FX,583FY);
+z30=(636FX,545FY);
+z31=(746FX,445FY);
+z32=(783FX,310FY);
+z33=(754FX,190FY);
+z34=(676FX,97FY);
+z35=(616FX,71FY);
+z36=(594FX,79FY);
+z37=(585FX,99FY);
+z38=(598FX,166FY);
+z39=(661FX,457FY);
+z40=(583FX,457FY);
+z41=(569FX,390FY);
+z42=(509FX,450FY);
+z43=(438FX,469FY);
+z44=(336FX,435FY);
+z45=(248FX,331FY);
+z46=(213FX,193FY);
+z47=(236FX,90FY);
+z48=(295FX,21FY);
+z49=(370FX,-1FY);
+z50=(440FX,18FY);
+z51=(503FX,71FY);
+z52=(293FX,188FY);
+z53=(297FX,228FY);
+z54=(307FX,270FY);
+z55=(344FX,346FY);
+z56=(392FX,391FY);
+z57=(443FX,405FY);
+z58=(514FX,372FY);
+z59=(537FX,333FY);
+z60=(544FX,281FY);
+z61=(528FX,193FY);
+z62=(488FX,120FY);
+z63=(436FX,77FY);
+z64=(386FX,63FY);
+z65=(321FX,95FY);
+z66=(293FX,188FY);
+FuF (z1
+{2,-19} .. {3,-7}z2
+{6,-11} .. {12,-6}z3
+{13,-6} .. {19,0}z4
+{63,0} .. {53,59}z5
+{59,65} .. {0,83}z6
+{0,58} .. {-28,51}z7
+{-33,58} .. {-57,30}z8
+{-57,29} .. {-71,0}z9
+{-92,0} .. {-65,-42}z10
+{-65,-42} .. {-35,-78}z11
+{-28,-63} .. {0,-71}z12
+{0,-63} .. {24,-55}z13
+{20,-43} .. {38,-33}z14
+{38,-33} .. {54,-17}z15
+{55,-16} .. {64,0}z16
+{36,0} .. {29,4}z17
+{29,5} .. {25,9}z18
+{50,19} .. {36,31}z19
+{35,31} .. {15,30}z20
+-- z21
+{-26,-36} .. {-51,-26}z22
+{-51,-25} .. {-76,0}z23
+{-70,0} .. {-58,24}z24
+{-58,24} .. {-31,51}z25
+{-30,52} .. {0,70}z26
+{0,67} .. {30,60}z27
+{31,59} .. {56,31}z28
+{56,32} .. {68,0}z29
+{60,0} .. {49,-26}z30
+{49,-25} .. {24,-41}z31
+{25,-42} .. {0,-49}z32
+{0,-41} .. {-19,-39}z33
+{-19,-39} .. {-33,-23}z34
+{-25,-18} .. {-15,0}z35
+{-8,0} .. {-6,6}z36
+{-6,5} .. {0,8}z37
+{0,4} .. {8,40}z38
+-- z39
+-- z40
+-- z41
+{-18,27} .. {-23,13}z42
+{-22,13} .. {-25,0}z43
+{-33,0} .. {-35,-23}z44
+{-35,-23} .. {-24,-46}z45
+{-23,-46} .. {0,-46}z46
+{0,-37} .. {15,-32}z47
+{15,-31} .. {24,-15}z48
+{25,-15} .. {26,0}z49
+{23,0} .. {24,13}z50
+{23,14} .. {19,22}z51
+);
+FuF (z52
+{0,13} .. {3,14}z53
+{2,13} .. {5,15}z54
+{9,30} .. {15,21}z55
+{15,20} .. {17,10}z56
+{16,9} .. {18,0}z57
+{29,0} .. {19,-22}z58
+{11,-11} .. {5,-15}z59
+{5,-14} .. {0,-20}z60
+{0,-29} .. {-11,-29}z61
+{-10,-29} .. {-17,-20}z62
+{-16,-19} .. {-18,-10}z63
+{-17,-9} .. {-16,0}z64
+{-24,0} .. {-19,21}z65
+{-18,22} .. {0,40}z66
+);
+lbl (range 1 thru 66);
+endchar;
+
+beginchar(65,697FX#,651FY#,0FY#);
+"A";
+z1=(624FX,0FY);
+z2=(590FX,136FY);
+z3=(505FX,188FY);
+z4=(505FX,651FY);
+z5=(419FX,651FY);
+z6=(419FX,248FY);
+z7=(360FX,136FY);
+z8=(255FX,80FY);
+z9=(145FX,118FY);
+z10=(96FX,261FY);
+z11=(96FX,651FY);
+z12=(10FX,651FY);
+z13=(10FX,261FY);
+z14=(57FX,94FY);
+z15=(156FX,18FY);
+z16=(248FX,0FY);
+z17=(349FX,24FY);
+z18=(426FX,76FY);
+z19=(465FX,127FY);
+z20=(548FX,0FY);
+FuF (z1
+{0,55} .. {-23,35}z2
+{-22,34} .. {-34,0}z3
+-- z4
+-- z5
+-- z6
+{0,-36} .. {-40,-38}z7
+{-38,-38} .. {-32,0}z8
+{-46,0} .. {-28,26}z9
+{-33,31} .. {0,65}z10
+-- z11
+-- z12
+-- z13
+{0,-68} .. {31,-43}z14
+{24,-35} .. {42,-16}z15
+{30,-12} .. {31,0}z16
+{32,0} .. {35,16}z17
+{29,14} .. {22,21}z18
+{22,20} .. {5,14}z19
+{55,0} .. {0,-85}z20
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(66,557FX#,634FY#,0FY#);
+"B";
+z1=(494FX,186FY);
+z2=(457FX,270FY);
+z3=(346FX,297FY);
+z4=(96FX,297FY);
+z5=(96FX,375FY);
+z6=(127FX,497FY);
+z7=(197FX,552FY);
+z8=(270FX,565FY);
+z9=(359FX,536FY);
+z10=(406FX,419FY);
+z11=(406FX,395FY);
+z12=(477FX,395FY);
+z13=(477FX,454FY);
+z14=(441FX,562FY);
+z15=(359FX,618FY);
+z16=(266FX,634FY);
+z17=(78FX,569FY);
+z18=(10FX,330FY);
+z19=(10FX,0FY);
+z20=(96FX,0FY);
+z21=(96FX,226FY);
+z22=(347FX,226FY);
+z23=(399FX,218FY);
+z24=(423FX,186FY);
+FuF (z1
+{0,38} .. {-25,18}z2
+{-25,18} .. {-49,0}z3
+-- z4
+-- z5
+{0,50} .. {21,31}z6
+{17,25} .. {29,11}z7
+{22,9} .. {27,0}z8
+{35,0} .. {24,-20}z9
+{31,-25} .. {0,-53}z10
+-- z11
+-- z12
+-- z13
+{0,43} .. {-24,29}z14
+{-20,25} .. {-35,12}z15
+{-29,11} .. {-32,0}z16
+{-85,0} .. {-41,-44}z17
+{-45,-48} .. {0,-111}z18
+-- z19
+-- z20
+-- z21
+-- z22
+{22,0} .. {12,-5}z23
+{16,-6} .. {0,-15}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(67,570FX#,651FY#,0FY#);
+"C";
+z1=(519FX,234FY);
+z2=(468FX,368FY);
+z3=(369FX,435FY);
+z4=(413FX,469FY);
+z5=(436FX,539FY);
+z6=(392FX,617FY);
+z7=(274FX,651FY);
+z8=(153FX,619FY);
+z9=(102FX,539FY);
+z10=(124FX,475FY);
+z11=(162FX,442FY);
+z12=(128FX,412FY);
+z13=(80FX,379FY);
+z14=(27FX,310FY);
+z15=(127FX,311FY);
+z16=(168FX,357FY);
+z17=(255FX,380FY);
+z18=(353FX,352FY);
+z19=(407FX,293FY);
+z20=(422FX,233FY);
+z21=(374FX,120FY);
+z22=(267FX,81FY);
+z23=(191FX,94FY);
+z24=(152FX,127FY);
+z25=(127FX,173FY);
+z26=(27FX,173FY);
+z27=(118FX,47FY);
+z28=(271FX,0FY);
+z29=(380FX,29FY);
+z30=(477FX,109FY);
+z31=(519FX,234FY);
+z32=(351FX,529FY);
+z33=(324FX,488FY);
+z34=(262FX,472FY);
+z35=(205FX,491FY);
+z36=(181FX,536FY);
+z37=(209FX,576FY);
+z38=(270FX,592FY);
+z39=(329FX,573FY);
+z40=(351FX,529FY);
+FuF (z1
+{0,49} .. {-34,41}z2
+{-30,37} .. {-36,8}z3
+{27,21} .. {2,2}z4
+{15,18} .. {0,29}z5
+{0,30} .. {-29,22}z6
+{-31,23} .. {-48,0}z7
+{-47,0} .. {-33,-22}z8
+{-34,-21} .. {0,-32}z9
+{0,-30} .. {14,-13}z10
+{8,-7} .. {17,-15}z11
+{-6,-10} .. {-16,-10}z12
+{-22,-13} .. {-10,-9}z13
+{-20,-17} .. {-15,-29}z14
+-- z15
+{19,24} .. {9,6}z16
+{20,15} .. {38,0}z17
+{38,0} .. {27,-19}z18
+{23,-15} .. {13,-25}z19
+{10,-20} .. {0,-20}z20
+{0,-47} .. {-32,-29}z21
+{-29,-26} .. {-42,0}z22
+{-32,0} .. {-19,8}z23
+{-15,7} .. {-11,15}z24
+{-3,5} .. {-14,26}z25
+-- z26
+{16,-53} .. {44,-31}z27
+{44,-31} .. {58,0}z28
+{35,0} .. {38,20}z29
+{41,20} .. {24,33}z30
+{28,37} .. {0,46}z31
+);
+FuF (z32
+{-1,-16} .. {-18,-11}z33
+{-17,-11} .. {-24,0}z34
+{-22,0} .. {-16,13}z35
+{-16,12} .. {0,18}z36
+{2,16} .. {17,10}z37
+{17,11} .. {24,0}z38
+{23,0} .. {16,-13}z39
+{16,-12} .. {0,-17}z40
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(68,721FX#,651FY#,0FY#);
+"D";
+z1=(389FX,381FY);
+z2=(389FX,0FY);
+z3=(474FX,0FY);
+z4=(474FX,240FY);
+z5=(523FX,240FY);
+z6=(578FX,230FY);
+z7=(597FX,200FY);
+z8=(670FX,200FY);
+z9=(629FX,286FY);
+z10=(531FX,310FY);
+z11=(474FX,310FY);
+z12=(474FX,432FY);
+z13=(414FX,587FY);
+z14=(241FX,651FY);
+z15=(84FX,600FY);
+z16=(10FX,429FY);
+z17=(92FX,429FY);
+z18=(116FX,533FY);
+z19=(177FX,576FY);
+z20=(251FX,585FY);
+z21=(353FX,533FY);
+z22=(389FX,381FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{24,0} .. {12,-7}z6
+{13,-6} .. {0,-14}z7
+-- z8
+{0,39} .. {-27,18}z9
+{-23,16} .. {-42,0}z10
+-- z11
+-- z12
+{0,63} .. {-40,41}z13
+{-42,43} .. {-73,0}z14
+{-63,0} .. {-41,-34}z15
+{-49,-40} .. {0,-74}z16
+-- z17
+{0,44} .. {16,25}z18
+{14,20} .. {27,8}z19
+{18,6} .. {31,0}z20
+{44,0} .. {24,-34}z21
+{24,-35} .. {0,-67}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(69,573FX#,643FY#,0FY#);
+"E";
+z1=(523FX,365FY);
+z2=(491FX,438FY);
+z3=(355FX,460FY);
+z4=(95FX,460FY);
+z5=(95FX,644FY);
+z6=(10FX,644FY);
+z7=(10FX,276FY);
+z8=(53FX,85FY);
+z9=(146FX,12FY);
+z10=(237FX,0FY);
+z11=(330FX,14FY);
+z12=(418FX,73FY);
+z13=(457FX,202FY);
+z14=(457FX,251FY);
+z15=(387FX,251FY);
+z16=(387FX,221FY);
+z17=(357FX,110FY);
+z18=(294FX,72FY);
+z19=(236FX,69FY);
+z20=(179FX,76FY);
+z21=(121FX,125FY);
+z22=(95FX,255FY);
+z23=(95FX,399FY);
+z24=(347FX,399FY);
+z25=(431FX,393FY);
+z26=(454FX,365FY);
+FuF (z1
+{0,36} .. {-21,13}z2
+{-23,15} .. {-68,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-81} .. {28,-46}z8
+{22,-35} .. {40,-13}z9
+{24,-8} .. {37,0}z10
+{33,0} .. {28,9}z11
+{38,13} .. {21,27}z12
+{26,33} .. {0,53}z13
+-- z14
+-- z15
+-- z16
+{0,-49} .. {-20,-25}z17
+{-15,-20} .. {-27,-6}z18
+{-11,-2} .. {-28,0}z19
+{-23,0} .. {-15,5}z20
+{-25,9} .. {-14,24}z21
+{-17,31} .. {0,56}z22
+-- z23
+-- z24
+{43,0} .. {14,-4}z25
+{13,-5} .. {3,-14}z26
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(70,694FX#,660FY#,0FY#);
+"F";
+z1=(611FX,218FY);
+z2=(536FX,390FY);
+z3=(367FX,464FY);
+z4=(367FX,660FY);
+z5=(209FX,660FY);
+z6=(125FX,633FY);
+z7=(92FX,565FY);
+z8=(156FX,465FY);
+z9=(284FX,416FY);
+z10=(284FX,60FY);
+z11=(261FX,60FY);
+z12=(179FX,78FY);
+z13=(117FX,118FY);
+z14=(78FX,159FY);
+z15=(10FX,159FY);
+z16=(41FX,97FY);
+z17=(128FX,31FY);
+z18=(266FX,0FY);
+z19=(317FX,0FY);
+z20=(372FX,0FY);
+z21=(537FX,54FY);
+z22=(611FX,218FY);
+z23=(284FX,478FY);
+z24=(216FX,501FY);
+z25=(164FX,557FY);
+z26=(177FX,594FY);
+z27=(274FX,611FY);
+z28=(284FX,611FY);
+z29=(545FX,209FY);
+z30=(499FX,94FY);
+z31=(385FX,60FY);
+z32=(367FX,60FY);
+z33=(367FX,404FY);
+z34=(500FX,337FY);
+z35=(545FX,209FY);
+FuF (z1
+{0,68} .. {-50,47}z2
+{-46,43} .. {-67,6}z3
+-- z4
+-- z5
+{-33,0} .. {-23,-18}z6
+{-22,-19} .. {0,-27}z7
+{0,-44} .. {43,-22}z8
+{43,-17} .. {43,-16}z9
+-- z10
+-- z11
+{-28,0} .. {-27,12}z12
+{-21,9} .. {-21,17}z13
+{-14,13} .. {-11,15}z14
+-- z15
+{0,-17} .. {20,-24}z16
+{23,-27} .. {35,-17}z17
+{42,-21} .. {50,0}z18
+-- z19
+-- z20
+{66,0} .. {45,36}z21
+{49,40} .. {0,69}z22
+);
+FuF (z23
+{-23,8} .. {-22,9}z24
+{-35,13} .. {0,23}z25
+{0,18} .. {9,7}z26
+{15,11} .. {50,0}z27
+-- z28
+);
+FuF (z29
+{0,-51} .. {-30,-26}z30
+{-28,-23} .. {-49,0}z31
+-- z32
+-- z33
+{58,-10} .. {31,-34}z34
+{30,-34} .. {0,-52}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(71,723FX#,651FY#,0FY#);
+"G";
+z1=(672FX,317FY);
+z2=(476FX,318FY);
+z3=(476FX,474FY);
+z4=(416FX,607FY);
+z5=(243FX,651FY);
+z6=(84FX,600FY);
+z7=(10FX,441FY);
+z8=(26FX,354FY);
+z9=(89FX,283FY);
+z10=(223FX,254FY);
+z11=(310FX,255FY);
+z12=(392FX,271FY);
+z13=(390FX,0FY);
+z14=(476FX,0FY);
+z15=(476FX,261FY);
+z16=(672FX,263FY);
+z17=(392FX,433FY);
+z18=(363FX,340FY);
+z19=(259FX,313FY);
+z20=(180FX,319FY);
+z21=(117FX,353FY);
+z22=(92FX,442FY);
+z23=(139FX,558FY);
+z24=(242FX,585FY);
+z25=(350FX,559FY);
+z26=(392FX,433FY);
+FuF (z1
+-- z2
+-- z3
+{0,59} .. {-40,29}z4
+{-39,29} .. {-76,0}z5
+{-62,0} .. {-44,-34}z6
+{-49,-39} .. {0,-67}z7
+{0,-33} .. {10,-25}z8
+{13,-30} .. {29,-17}z9
+{34,-19} .. {55,0}z10
+{44,0} .. {14,1}z11
+{24,2} .. {30,8}z12
+-- z13
+-- z14
+-- z15
+-- z16
+);
+FuF (z17
+{0,-44} .. {-20,-18}z18
+{-19,-18} .. {-50,0}z19
+{-34,0} .. {-18,4}z20
+{-28,6} .. {-14,17}z21
+{-17,21} .. {0,39}z22
+{0,54} .. {31,23}z23
+{24,18} .. {44,0}z24
+{51,0} .. {21,-17}z25
+{28,-22} .. {0,-62}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(72,672FX#,664FY#,0FY#);
+"H";
+z1=(621FX,-1FY);
+z2=(621FX,119FY);
+z3=(179FX,451FY);
+z4=(536FX,540FY);
+z5=(536FX,600FY);
+z6=(507FX,630FY);
+z7=(389FX,665FY);
+z8=(458FX,600FY);
+z9=(10FX,482FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(73,473FX#,651FY#,0FY#);
+"I";
+z1=(443FX,192FY);
+z2=(443FX,312FY);
+z3=(377FX,433FY);
+z4=(257FX,468FY);
+z5=(157FX,443FY);
+z6=(94FX,389FY);
+z7=(94FX,651FY);
+z8=(10FX,651FY);
+z9=(10FX,0FY);
+z10=(94FX,0FY);
+z11=(94FX,249FY);
+z12=(151FX,351FY);
+z13=(253FX,387FY);
+z14=(325FX,366FY);
+z15=(360FX,294FY);
+z16=(360FX,192FY);
+FuF (z1
+-- z2
+{0,51} .. {-44,29}z3
+{-36,24} .. {-44,0}z4
+{-34,0} .. {-33,-17}z5
+{-31,-15} .. {-11,-20}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,40} .. {38,28}z12
+{33,24} .. {35,0}z13
+{28,0} .. {19,-14}z14
+{24,-17} .. {0,-31}z15
+-- z16
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(74,637FX#,646FY#,15FY#);
+"J";
+z1=(592FX,-16FY);
+z2=(550FX,71FY);
+z3=(375FX,103FY);
+z4=(300FX,103FY);
+z5=(420FX,197FY);
+z6=(519FX,295FY);
+z7=(560FX,428FY);
+z8=(480FX,586FY);
+z9=(310FX,647FY);
+z10=(189FX,606FY);
+z11=(91FX,509FY);
+z12=(51FX,401FY);
+z13=(104FX,310FY);
+z14=(203FX,245FY);
+z15=(256FX,164FY);
+z16=(229FX,118FY);
+z17=(194FX,103FY);
+z18=(75FX,103FY);
+z19=(75FX,139FY);
+z20=(10FX,139FY);
+z21=(10FX,0FY);
+z22=(74FX,0FY);
+z23=(74FX,36FY);
+z24=(355FX,36FY);
+z25=(478FX,23FY);
+z26=(506FX,-16FY);
+z27=(468FX,412FY);
+z28=(422FX,307FY);
+z29=(321FX,216FY);
+z30=(262FX,294FY);
+z31=(184FX,340FY);
+z32=(145FX,401FY);
+z33=(197FX,507FY);
+z34=(321FX,565FY);
+z35=(411FX,533FY);
+z36=(456FX,468FY);
+z37=(468FX,412FY);
+FuF (z1
+{0,40} .. {-28,19}z2
+{-34,22} .. {-82,0}z3
+-- z4
+{2,2} .. {78,61}z5
+{46,36} .. {20,30}z6
+{28,39} .. {0,49}z7
+{0,62} .. {-54,44}z8
+{-50,40} .. {-63,0}z9
+{-39,0} .. {-42,-27}z10
+{-39,-26} .. {-26,-39}z11
+{-27,-38} .. {0,-34}z12
+{0,-33} .. {36,-27}z13
+{32,-23} .. {32,-23}z14
+{36,-25} .. {0,-28}z15
+{0,-21} .. {-18,-10}z16
+{-2,-1} .. {-21,-9}z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+{60,0} .. {22,-8}z25
+
+{18,-8} .. {0,-19}z26
+);
+FuF (z27
+{0,-30} .. {-30,-40}z28
+{-31,-40} .. {-36,-20}z29
+{-8,30} .. {-32,21}z30
+{-25,16} .. {-26,16}z31
+{-26,17} .. {0,24}z32
+{0,34} .. {35,37}z33
+{38,39} .. {45,0}z34
+{35,0} .. {24,-22}z35
+{19,-16} .. {11,-28}z36
+{8,-21} .. {0,-16}z37
+);
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(75,536FX#,648FY#,0FY#);
+"K";
+z1=(484FX,0FY);
+z2=(484FX,474FY);
+z3=(387FX,474FY);
+z4=(387FX,336FY);
+z5=(357FX,259FY);
+z6=(246FX,234FY);
+z7=(134FX,266FY);
+z8=(95FX,360FY);
+z9=(95FX,648FY);
+z10=(10FX,648FY);
+z11=(10FX,395FY);
+z12=(69FX,212FY);
+z13=(249FX,152FY);
+z14=(332FX,163FY);
+z15=(386FX,199FY);
+z16=(386FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-36} .. {-20,-16}z5
+{-21,-17} .. {-52,0}z6
+{-48,0} .. {-26,21}z7
+{-26,22} .. {0,41}z8
+-- z9
+-- z10
+-- z11
+{0,-83} .. {39,-39}z12
+{38,-40} .. {81,0}z13
+{36,0} .. {19,7}z14
+{19,7} .. {17,17}z15
+-- z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(76,449FX#,646FY#,66FY#);
+"L";
+z1=(397FX,-67FY);
+z2=(343FX,43FY);
+z3=(225FX,71FY);
+z4=(95FX,71FY);
+z5=(95FX,647FY);
+z6=(10FX,647FY);
+z7=(10FX,0FY);
+z8=(192FX,0FY);
+z9=(276FX,-7FY);
+z10=(320FX,-67FY);
+FuF (z1
+{0,50} .. {-36,23}z2
+{-29,19} .. {-50,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{40,0} .. {16,-5}z9
+{29,-10} .. {0,-31}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(77,733FX#,646FY#,0FY#);
+"M";
+z1=(681FX,527FY);
+z2=(637FX,627FY);
+z3=(548FX,647FY);
+z4=(408FX,647FY);
+z5=(408FX,287FY);
+z6=(364FX,112FY);
+z7=(243FX,76FY);
+z8=(143FX,113FY);
+z9=(94FX,274FY);
+z10=(94FX,647FY);
+z11=(10FX,647FY);
+z12=(10FX,277FY);
+z13=(64FX,76FY);
+z14=(249FX,0FY);
+z15=(374FX,22FY);
+z16=(460FX,107FY);
+z17=(491FX,281FY);
+z18=(491FX,576FY);
+z19=(542FX,576FY);
+z20=(589FX,568FY);
+z21=(611FX,527FY);
+FuF (z1
+{0,47} .. {-29,20}z2
+{-21,13} .. {-38,0}z3
+-- z4
+-- z5
+{0,-87} .. {-29,-30}z6
+{-23,-24} .. {-58,0}z7
+{-42,0} .. {-25,24}z8
+{-33,33} .. {0,75}z9
+-- z10
+-- z11
+-- z12
+{0,-88} .. {36,-46}z13
+{40,-51} .. {84,0}z14
+{50,0} .. {33,15}z15
+{38,17} .. {19,39}z16
+{21,43} .. {0,73}z17
+-- z18
+-- z19
+{21,0} .. {11,-5}z20
+{15,-7} .. {0,-20}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(78,753FX#,652FY#,0FY#);
+"N";
+z1=(701FX,226FY);
+z2=(701FX,331FY);
+z3=(617FX,331FY);
+z4=(617FX,222FY);
+z5=(582FX,107FY);
+z6=(468FX,70FY);
+z7=(364FX,116FY);
+z8=(317FX,268FY);
+z9=(317FX,568FY);
+z10=(240FX,568FY);
+z11=(130FX,591FY);
+z12=(107FX,652FY);
+z13=(29FX,652FY);
+z14=(62FX,549FY);
+z15=(196FX,502FY);
+z16=(234FX,502FY);
+z17=(234FX,279FY);
+z18=(292FX,77FY);
+z19=(464FX,0FY);
+z20=(630FX,52FY);
+z21=(701FX,226FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-52} .. {-24,-25}z5
+{-23,-25} .. {-53,0}z6
+{-42,0} .. {-27,31}z7
+{-31,36} .. {0,66}z8
+-- z9
+-- z10
+{-54,0} .. {-19,16}z11
+{-15,12} .. {0,28}z12
+-- z13
+{0,-44} .. {22,-25}z14
+{28,-31} .. {62,0}z15
+-- z16
+-- z17
+{0,-86} .. {39,-49}z18
+{40,-51} .. {74,0}z19
+{70,0} .. {41,35}z20
+{47,39} .. {0,77}z21
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(79,544FX#,646FY#,0FY#);
+"O";
+z1=(491FX,0FY);
+z2=(491FX,415FY);
+z3=(446FX,551FY);
+z4=(345FX,624FY);
+z5=(242FX,646FY);
+z6=(82FX,585FY);
+z7=(9FX,380FY);
+z8=(9FX,0FY);
+z9=(93FX,0FY);
+z10=(93FX,411FY);
+z11=(132FX,517FY);
+z12=(252FX,569FY);
+z13=(350FX,533FY);
+z14=(408FX,426FY);
+z15=(408FX,0FY);
+FuF (z1
+-- z2
+{0,52} .. {-30,38}z3
+{-26,31} .. {-42,18}z4
+{-36,15} .. {-33,0}z5
+{-64,0} .. {-42,-41}z6
+{-49,-48} .. {0,-89}z7
+-- z8
+-- z9
+-- z10
+{0,40} .. {26,30}z11
+{31,34} .. {50,0}z12
+{33,0} .. {32,-24}z13
+{39,-28} .. {0,-43}z14
+-- z15
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(80,671FX#,645FY#,0FY#);
+"P";
+z1=(618FX,0FY);
+z2=(618FX,375FY);
+z3=(565FX,558FY);
+z4=(447FX,632FY);
+z5=(324FX,645FY);
+z6=(83FX,568FY);
+z7=(10FX,360FY);
+z8=(10FX,354FY);
+z9=(87FX,354FY);
+z10=(123FX,505FY);
+z11=(202FX,570FY);
+z12=(288FX,583FY);
+z13=(288FX,189FY);
+z14=(372FX,189FY);
+z15=(372FX,583FY);
+z16=(436FX,575FY);
+z17=(506FX,520FY);
+z18=(539FX,378FY);
+z19=(539FX,0FY);
+FuF (z1
+-- z2
+{0,77} .. {-36,45}z3
+{-28,35} .. {-51,14}z4
+{-33,9} .. {-49,0}z5
+{-109,0} .. {-52,-51}z6
+{-48,-47} .. {0,-91}z7
+-- z8
+-- z9
+{0,64} .. {24,37}z10
+{19,31} .. {34,13}z11
+{24,9} .. {33,0}z12
+-- z13
+-- z14
+-- z15
+{25,0} .. {17,-5}z16
+{30,-10} .. {16,-27}z17
+{22,-34} .. {0,-60}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(81,646FX#,642FY#,0FY#);
+"Q";
+z1=(527FX,76FY);
+z2=(608FX,76FY);
+z3=(587FX,151FY);
+z4=(526FX,181FY);
+z5=(430FX,187FY);
+z6=(220FX,187FY);
+z7=(220FX,300FY);
+z8=(269FX,261FY);
+z9=(336FX,243FY);
+z10=(446FX,263FY);
+z11=(539FX,330FY);
+z12=(578FX,449FY);
+z13=(517FX,588FY);
+z14=(367FX,643FY);
+z15=(193FX,579FY);
+z16=(136FX,425FY);
+z17=(136FX,187FY);
+z18=(14FX,187FY);
+z19=(14FX,127FY);
+z20=(136FX,127FY);
+z21=(136FX,5FY);
+z22=(220FX,5FY);
+z23=(220FX,127FY);
+z24=(426FX,127FY);
+z25=(504FX,121FY);
+z26=(527FX,76FY);
+z27=(361FX,569FY);
+z28=(454FX,532FY);
+z29=(493FX,442FY);
+z30=(456FX,350FY);
+z31=(365FX,311FY);
+z32=(264FX,344FY);
+z33=(219FX,432FY);
+z34=(261FX,529FY);
+z35=(361FX,569FY);
+FuF (z1
+-- z2
+{0,33} .. {-14,17}z3
+{-13,15} .. {-28,5}z4
+{-20,4} .. {-44,0}z5
+-- z6
+-- z7
+{16,-13} .. {17,-13}z8
+{21,-12} .. {24,0}z9
+{38,0} .. {35,13}z10
+{39,16} .. {23,29}z11
+{26,33} .. {0,46}z12
+{0,56} .. {-41,36}z13
+{-41,37} .. {-59,0}z14
+{-75,0} .. {-41,-43}z15
+{-38,-39} .. {0,-64}z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+{41,0} .. {11,-4}z25
+{15,-6} .. {0,-24}z26
+);
+FuF (z27
+{36,0} .. {26,-25}z28
+{26,-24} .. {0,-36}z29
+{0,-35} .. {-24,-26}z30
+{-25,-26} .. {-36,0}z31
+{-39,0} .. {-29,22}z32
+{-30,23} .. {0,36}z33
+{0,38} .. {28,26}z34
+{28,27} .. {39,0}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(82,508FX#,651FY#,0FY#);
+"R";
+z1=(457FX,375FY);
+z2=(457FX,475FY);
+z3=(403FX,604FY);
+z4=(246FX,651FY);
+z5=(80FX,583FY);
+z6=(10FX,388FY);
+z7=(10FX,0FY);
+z8=(94FX,0FY);
+z9=(94FX,354FY);
+z10=(139FX,528FY);
+z11=(251FX,574FY);
+z12=(337FX,552FY);
+z13=(373FX,448FY);
+z14=(373FX,375FY);
+FuF (z1
+-- z2
+{0,55} .. {-36,31}z3
+{-37,31} .. {-68,0}z4
+{-68,0} .. {-43,-46}z5
+{-46,-48} .. {0,-82}z6
+-- z7
+-- z8
+-- z9
+{0,80} .. {30,36}z10
+{25,31} .. {50,0}z11
+{39,0} .. {19,-14}z12
+{24,-20} .. {0,-50}z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(83,545FX#,649FY#,0FY#);
+"S";
+z1=(493FX,288FY);
+z2=(493FX,650FY);
+z3=(409FX,650FY);
+z4=(409FX,267FY);
+z5=(377FX,144FY);
+z6=(308FX,95FY);
+z7=(241FX,87FY);
+z8=(181FX,98FY);
+z9=(121FX,152FY);
+z10=(94FX,284FY);
+z11=(94FX,650FY);
+z12=(10FX,650FY);
+z13=(10FX,284FY);
+z14=(53FX,94FY);
+z15=(149FX,15FY);
+z16=(245FX,0FY);
+z17=(350FX,18FY);
+z18=(449FX,99FY);
+z19=(493FX,288FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-52} .. {-22,-30}z5
+{-16,-23} .. {-30,-9}z6
+{-19,-6} .. {-26,0}z7
+{-22,0} .. {-18,8}z8
+{-26,11} .. {-14,25}z9
+{-18,33} .. {0,56}z10
+-- z11
+-- z12
+-- z13
+{0,-81} .. {28,-46}z14
+{23,-37} .. {41,-15}z15
+{27,-10} .. {37,0}z16
+{40,0} .. {30,12}z17
+{43,16} .. {23,38}z18
+{29,47} .. {0,79}z19
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(84,591FX#,646FY#,10FY#);
+"T";
+z1=(40FX,204FY);
+z2=(48FX,144FY);
+z3=(74FX,90FY);
+z4=(115FX,46FY);
+z5=(166FX,14FY);
+z6=(230FX,-5FY);
+z7=(311FX,-10FY);
+z8=(375FX,-4FY);
+z9=(433FX,15FY);
+z10=(517FX,84FY);
+z11=(546FX,179FY);
+z12=(539FX,227FY);
+z13=(519FX,269FY);
+z14=(437FX,334FY);
+z15=(384FX,353FY);
+z16=(297FX,375FY);
+z17=(169FX,420FY);
+z18=(145FX,476FY);
+z19=(181FX,543FY);
+z20=(291FX,572FY);
+z21=(402FX,540FY);
+z22=(445FX,450FY);
+z23=(526FX,456FY);
+z24=(518FX,509FY);
+z25=(494FX,556FY);
+z26=(412FX,623FY);
+z27=(287FX,646FY);
+z28=(171FX,624FY);
+z29=(92FX,560FY);
+z30=(71FX,517FY);
+z31=(64FX,471FY);
+z32=(69FX,429FY);
+z33=(86FX,391FY);
+z34=(155FX,333FY);
+z35=(277FX,293FY);
+z36=(389FX,262FY);
+z37=(425FX,245FY);
+z38=(447FX,224FY);
+z39=(464FX,172FY);
+z40=(446FX,117FY);
+z41=(391FX,80FY);
+z42=(352FX,68FY);
+z43=(307FX,65FY);
+z44=(209FX,83FY);
+z45=(145FX,132FY);
+z46=(128FX,168FY);
+z47=(119FX,211FY);
+FuF (z1
+{0,-21} .. {5,-19}z2
+{6,-19} .. {11,-17}z3
+{12,-17} .. {16,-12}z4
+{15,-13} .. {19,-9}z5
+{19,-8} .. {23,-4}z6
+{24,-3} .. {30,0}z7
+{22,0} .. {20,4}z8
+{21,4} .. {18,9}z9
+{37,17} .. {19,29}z10
+{19,30} .. {0,33}z11
+{0,18} .. {-4,15}z12
+{-5,14} .. {-9,14}z13
+{-18,27} .. {-36,17}z14
+{-12,6} .. {-23,7}z15
+{-23,6} .. {-35,9}z16
+{-69,15} .. {-16,15}z17
+{-16,15} .. {0,22}z18
+{0,27} .. {24,18}z19
+{22,19} .. {51,0}z20
+{49,0} .. {25,-21}z21
+{25,-21} .. {4,-39}z22
+-- z23
+{0,19} .. {-5,17}z24
+{-6,17} .. {-10,15}z25
+{-18,30} .. {-36,15}z26
+{-37,15} .. {-46,0}z27
+{-42,0} .. {-35,-15}z28
+{-35,-15} .. {-18,-28}z29
+{-9,-14} .. {-5,-15}z30
+{-5,-15} .. {0,-16}z31
+{0,-14} .. {3,-14}z32
+{4,-13} .. {8,-12}z33
+{15,-23} .. {30,-16}z34
+{23,-13} .. {58,-14}z35
+{61,-15} .. {14,-6}z36
+{15,-5} .. {10,-6}z37
+{9,-6} .. {6,-8}z38
+{11,-15} .. {0,-20}z39
+{0,-20} .. {-12,-16}z40
+{-13,-16} .. {-24,-9}z41
+{-12,-5} .. {-14,-2}z42
+{-13,-2} .. {-16,0}z43
+{-37,0} .. {-29,12}z44
+{-29,13} .. {-14,20}z45
+{-7,11} .. {-4,13}z46
+{-5,13} .. {-1,15}z47
+);
+lbl (range 1 thru 47);
+endchar;
+
+beginchar(85,1092FX#,652FY#,0FY#);
+"U";
+z1=(491FX,0FY);
+z2=(491FX,415FY);
+z3=(446FX,551FY);
+z4=(345FX,624FY);
+z5=(242FX,646FY);
+z6=(82FX,585FY);
+z7=(9FX,380FY);
+z8=(9FX,0FY);
+z9=(93FX,0FY);
+z10=(93FX,411FY);
+z11=(132FX,517FY);
+z12=(252FX,569FY);
+z13=(350FX,533FY);
+z14=(408FX,426FY);
+z15=(408FX,0FY);
+z16=(1041FX,195FY);
+z17=(1041FX,263FY);
+z18=(988FX,263FY);
+z19=(988FX,283FY);
+z20=(929FX,433FY);
+z21=(778FX,473FY);
+z22=(695FX,464FY);
+z23=(640FX,429FY);
+z24=(640FX,652FY);
+z25=(555FX,652FY);
+z26=(555FX,0FY);
+z27=(640FX,0FY);
+z28=(640FX,284FY);
+z29=(683FX,375FY);
+z30=(776FX,396FY);
+z31=(874FX,368FY);
+z32=(905FX,260FY);
+z33=(905FX,195FY);
+FuF (z1
+-- z2
+{0,52} .. {-30,38}z3
+{-26,31} .. {-42,18}z4
+{-36,15} .. {-33,0}z5
+{-64,0} .. {-42,-41}z6
+{-49,-48} .. {0,-89}z7
+-- z8
+-- z9
+-- z10
+{0,40} .. {26,30}z11
+{31,34} .. {50,0}z12
+{33,0} .. {32,-24}z13
+{39,-28} .. {0,-43}z14
+-- z15
+);
+FuF (z16
+-- z17
+-- z18
+-- z19
+{0,69} .. {-39,30}z20
+{-34,27} .. {-67,0}z21
+{-37,0} .. {-19,-6}z22
+{-19,-6} .. {-18,-17}z23
+-- z24
+-- z25
+-- z26
+-- z27
+-- z28
+{0,42} .. {28,19}z29
+{22,14} .. {40,0}z30
+{46,0} .. {20,-19}z31
+{21,-20} .. {0,-52}z32
+-- z33
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(86,736FX#,646FY#,67FY#);
+"V";
+z1=(696FX,-68FY);
+z2=(636FX,42FY);
+z3=(508FX,70FY);
+z4=(478FX,70FY);
+z5=(478FX,647FY);
+z6=(381FX,647FY);
+z7=(381FX,313FY);
+z8=(337FX,220FY);
+z9=(241FX,196FY);
+z10=(124FX,238FY);
+z11=(94FX,394FY);
+z12=(94FX,481FY);
+z13=(10FX,481FY);
+z14=(10FX,361FY);
+z15=(53FX,193FY);
+z16=(225FX,122FY);
+z17=(310FX,133FY);
+z18=(381FX,162FY);
+z19=(381FX,0FY);
+z20=(510FX,0FY);
+z21=(592FX,-16FY);
+z22=(617FX,-68FY);
+FuF (z1
+{0,50} .. {-40,23}z2
+{-32,18} .. {-53,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-42} .. {-29,-20}z8
+{-23,-16} .. {-41,0}z9
+{-57,0} .. {-21,28}z10
+{-20,27} .. {0,76}z11
+-- z12
+-- z13
+-- z14
+{0,-73} .. {28,-38}z15
+{35,-47} .. {80,0}z16
+{31,0} .. {26,7}z17
+{21,6} .. {26,14}z18
+-- z19
+-- z20
+{39,0} .. {15,-11}z21
+{14,-10} .. {3,-25}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(87,547FX#,652FY#,0FY#);
+"W";
+z1=(496FX,195FY);
+z2=(496FX,263FY);
+z3=(443FX,263FY);
+z4=(443FX,283FY);
+z5=(384FX,433FY);
+z6=(233FX,473FY);
+z7=(150FX,464FY);
+z8=(96FX,429FY);
+z9=(96FX,652FY);
+z10=(10FX,652FY);
+z11=(10FX,0FY);
+z12=(96FX,0FY);
+z13=(96FX,284FY);
+z14=(138FX,375FY);
+z15=(231FX,396FY);
+z16=(329FX,368FY);
+z17=(360FX,260FY);
+z18=(360FX,195FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,69} .. {-40,30}z5
+{-34,27} .. {-67,0}z6
+{-36,0} .. {-19,-6}z7
+{-19,-6} .. {-17,-17}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{0,42} .. {28,19}z14
+{22,14} .. {40,0}z15
+{46,0} .. {19,-19}z16
+{21,-20} .. {0,-52}z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(88,654FX#,648FY#,0FY#);
+"X";
+z1=(602FX,317FY);
+z2=(602FX,468FY);
+z3=(519FX,468FY);
+z4=(519FX,334FY);
+z5=(499FX,226FY);
+z6=(420FX,190FY);
+z7=(333FX,229FY);
+z8=(314FX,339FY);
+z9=(314FX,468FY);
+z10=(94FX,468FY);
+z11=(94FX,648FY);
+z12=(10FX,648FY);
+z13=(10FX,0FY);
+z14=(94FX,0FY);
+z15=(94FX,397FY);
+z16=(231FX,397FY);
+z17=(231FX,335FY);
+z18=(274FX,178FY);
+z19=(416FX,110FY);
+z20=(543FX,159FY);
+z21=(602FX,317FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-50} .. {-13,-22}z5
+{-14,-24} .. {-38,0}z6
+{-42,0} .. {-16,26}z7
+{-13,22} .. {0,51}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{0,-65} .. {29,-40}z18
+{32,-45} .. {62,0}z19
+{51,0} .. {34,32}z20
+{40,37} .. {0,68}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(89,600FX#,663FY#,0FY#);
+"Y";
+z1=(246FX,324FY);
+z2=(110FX,323FY);
+z3=(110FX,292FY);
+z4=(50FX,292FY);
+z5=(50FX,417FY);
+z6=(75FX,418FY);
+z7=(110FX,418FY);
+z8=(110FX,383FY);
+z9=(238FX,382FY);
+z10=(315FX,389FY);
+z11=(378FX,415FY);
+z12=(403FX,455FY);
+z13=(409FX,516FY);
+z14=(360FX,576FY);
+z15=(265FX,592FY);
+z16=(146FX,553FY);
+z17=(116FX,491FY);
+z18=(108FX,491FY);
+z19=(91FX,491FY);
+z20=(61FX,491FY);
+z21=(36FX,493FY);
+z22=(59FX,568FY);
+z23=(131FX,635FY);
+z24=(253FX,664FY);
+z25=(429FX,625FY);
+z26=(497FX,503FY);
+z27=(466FX,405FY);
+z28=(421FX,362FY);
+z29=(457FX,339FY);
+z30=(508FX,286FY);
+z31=(534FX,196FY);
+z32=(458FX,40FY);
+z33=(300FX,0FY);
+z34=(117FX,41FY);
+z35=(38FX,197FY);
+z36=(127FX,198FY);
+z37=(168FX,109FY);
+z38=(292FX,78FY);
+z39=(407FX,102FY);
+z40=(449FX,188FY);
+z41=(420FX,273FY);
+z42=(345FX,314FY);
+z43=(246FX,324FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{5,1} .. {12,0}z6
+{12,0} .. {11,0}z7
+-- z8
+-- z9
+{27,0} .. {25,5}z10
+{31,6} .. {12,11}z11
+{12,13} .. {5,14}z12
+{4,13} .. {0,27}z13
+{0,26} .. {-33,14}z14
+{-26,11} .. {-37,0}z15
+{-52,0} .. {-27,-26}z16
+{-20,-19} .. {0,-22}z17
+{-2,0} .. {-3,0}z18
+{-2,0} .. {-9,0}z19
+{-3,0} .. {-17,0}z20
+{-17,0} .. {0,1}z21
+{0,25} .. {16,25}z22
+{17,28} .. {31,16}z23
+{35,19} .. {47,0}z24
+{75,0} .. {42,-26}z25
+{45,-28} .. {0,-53}z26
+{0,-38} .. {-21,-28}z27
+{-10,-14} .. {-20,-15}z28
+{12,-8} .. {12,-8}z29
+{22,-16} .. {12,-19}z30
+{18,-27} .. {0,-33}z31
+{0,-70} .. {-51,-34}z32
+{-40,-27} .. {-65,0}z33
+{-79,0} .. {-43,27}z34
+{-53,33} .. {0,71}z35
+-- z36
+{0,-38} .. {27,-21}z37
+{27,-21} .. {56,0}z38
+{51,0} .. {26,16}z39
+{28,18} .. {0,40}z40
+{0,35} .. {-19,21}z41
+{-18,19} .. {-33,8}z42
+{-27,7} .. {-39,-1}z43
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(90,637FX#,648FY#,37FY#);
+"Z";
+z1=(599FX,-38FY);
+z2=(536FX,74FY);
+z3=(310FX,101FY);
+z4=(413FX,188FY);
+z5=(516FX,317FY);
+z6=(562FX,448FY);
+z7=(487FX,591FY);
+z8=(324FX,648FY);
+z9=(149FX,596FY);
+z10=(74FX,434FY);
+z11=(151FX,301FY);
+z12=(308FX,247FY);
+z13=(351FX,252FY);
+z14=(388FX,267FY);
+z15=(303FX,179FY);
+z16=(198FX,100FY);
+z17=(75FX,100FY);
+z18=(75FX,146FY);
+z19=(10FX,146FY);
+z20=(10FX,0FY);
+z21=(75FX,0FY);
+z22=(75FX,34FY);
+z23=(320FX,34FY);
+z24=(471FX,22FY);
+z25=(513FX,-38FY);
+z26=(471FX,444FY);
+z27=(416FX,344FY);
+z28=(313FX,320FY);
+z29=(260FX,328FY);
+z30=(194FX,365FY);
+z31=(162FX,449FY);
+z32=(204FX,547FY);
+z33=(315FX,582FY);
+z34=(426FX,539FY);
+z35=(471FX,444FY);
+FuF (z1
+{0,55} .. {-42,19}z2
+{-39,18} .. {-111,0}z3
+{31,20} .. {38,38}z4
+{42,43} .. {27,43}z5
+{31,50} .. {0,37}z6
+{0,55} .. {-50,40}z7
+{-48,38} .. {-61,0}z8
+{-71,0} .. {-45,-35}z9
+{-50,-39} .. {0,-69}z10
+{0,-50} .. {51,-39}z11
+{49,-36} .. {56,0}z12
+{15,0} .. {13,4}z13
+{14,3} .. {11,7}z14
+{-20,-28} .. {-36,-31}z15
+{-29,-25} .. {-41,-28}z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+{76,0} .. {24,-8}z24
+{28,-9} .. {0,-31}z25
+);
+FuF (z26
+{0,-45} .. {-36,-22}z27
+{-28,-16} .. {-40,0}z28
+{-17,0} .. {-19,6}z29
+{-27,8} .. {-17,17}z30
+{-21,22} .. {0,34}z31
+{0,41} .. {28,24}z32
+{27,23} .. {47,0}z33
+{43,0} .. {30,-29}z34
+{30,-27} .. {0,-36}z35
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(91,289FX#,749FY#,249FY#);
+"bracketleft";
+z1=(100FX,749FY);
+z2=(100FX,-249FY);
+z3=(266FX,-249FY);
+z4=(266FX,-185FY);
+z5=(176FX,-185FY);
+z6=(176FX,685FY);
+z7=(266FX,685FY);
+z8=(266FX,749FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(92,473FX#,657FY#,0FY#);
+"quotedblleft";
+z1=(258FX,658FY);
+z2=(219FX,658FY);
+z3=(179FX,538FY);
+z4=(179FX,461FY);
+z5=(258FX,461FY);
+z6=(258FX,539FY);
+z7=(234FX,539FY);
+z8=(442FX,658FY);
+z9=(403FX,658FY);
+z10=(363FX,538FY);
+z11=(363FX,461FY);
+z12=(442FX,461FY);
+z13=(442FX,539FY);
+z14=(418FX,539FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(93,289FX#,749FY#,249FY#);
+"bracketright";
+z1=(21FX,749FY);
+z2=(21FX,685FY);
+z3=(112FX,685FY);
+z4=(112FX,-185FY);
+z5=(21FX,-185FY);
+z6=(21FX,-249FY);
+z7=(187FX,-249FY);
+z8=(187FX,749FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(94,500FX#,750FY#,250FY#);
+"braceleft";
+z1=(416FX,750FY);
+z2=(319FX,736FY);
+z3=(245FX,692FY);
+z4=(216FX,618FY);
+z5=(216FX,374FY);
+z6=(198FX,317FY);
+z7=(148FX,276FY);
+z8=(82FX,261FY);
+z9=(75FX,258FY);
+z10=(72FX,251FY);
+z11=(72FX,249FY);
+z12=(75FX,242FY);
+z13=(82FX,239FY);
+z14=(133FX,231FY);
+z15=(176FX,207FY);
+z16=(205FX,171FY);
+z17=(216FX,126FY);
+z18=(216FX,-118FY);
+z19=(245FX,-192FY);
+z20=(319FX,-236FY);
+z21=(416FX,-250FY);
+z22=(426FX,-240FY);
+z23=(426FX,-237FY);
+z24=(423FX,-230FY);
+z25=(416FX,-228FY);
+z26=(349FX,-214FY);
+z27=(301FX,-175FY);
+z28=(282FX,-118FY);
+z29=(282FX,126FY);
+z30=(249FX,205FY);
+z31=(163FX,250FY);
+z32=(250FX,295FY);
+z33=(282FX,374FY);
+z34=(282FX,618FY);
+z35=(322FX,697FY);
+z36=(416FX,728FY);
+z37=(426FX,737FY);
+z38=(426FX,740FY);
+z39=(416FX,750FY);
+FuF (z1
+{-34,0} .. {-31,-9}z2
+{-30,-10} .. {-19,-20}z3
+{-19,-20} .. {0,-29}z4
+-- z5
+{0,-21} .. {-12,-17}z6
+{-13,-18} .. {-21,-10}z7
+{-21,-10} .. {-23,0}z8
+{-3,0} .. {-2,-2}z9
+{-2,-2} .. {0,-3}z10
+-- z11
+{0,-3} .. {2,-2}z12
+{2,-2} .. {3,0}z13
+{18,0} .. {16,-5}z14
+{16,-6} .. {13,-10}z15
+{12,-10} .. {7,-14}z16
+{7,-14} .. {0,-16}z17
+-- z18
+{0,-29} .. {19,-20}z19
+{19,-20} .. {30,-10}z20
+{31,-9} .. {34,0}z21
+{7,0} .. {0,7}z22
+-- z23
+{0,3} .. {-2,2}z24
+{-3,1} .. {-2,0}z25
+{-24,0} .. {-21,9}z26
+{-20,10} .. {-12,16}z27
+{-13,17} .. {0,21}z28
+-- z29
+{0,32} .. {-22,21}z30
+{-22,21} .. {-35,9}z31
+{36,9} .. {22,20}z32
+{21,21} .. {0,32}z33
+-- z34
+{0,32} .. {27,21}z35
+{26,21} .. {36,0}z36
+{7,0} .. {0,6}z37
+-- z38
+{0,7} .. {-7,0}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(95,500FX#,750FY#,250FY#);
+"braceright";
+z1=(72FX,737FY);
+z2=(82FX,728FY);
+z3=(176FX,697FY);
+z4=(216FX,618FY);
+z5=(216FX,374FY);
+z6=(249FX,295FY);
+z7=(335FX,250FY);
+z8=(249FX,205FY);
+z9=(216FX,126FY);
+z10=(216FX,-118FY);
+z11=(176FX,-197FY);
+z12=(82FX,-228FY);
+z13=(75FX,-230FY);
+z14=(72FX,-237FY);
+z15=(72FX,-240FY);
+z16=(75FX,-247FY);
+z17=(82FX,-250FY);
+z18=(223FX,-216FY);
+z19=(282FX,-118FY);
+z20=(282FX,126FY);
+z21=(301FX,183FY);
+z22=(350FX,224FY);
+z23=(416FX,239FY);
+z24=(423FX,242FY);
+z25=(426FX,249FY);
+z26=(426FX,251FY);
+z27=(423FX,258FY);
+z28=(416FX,261FY);
+z29=(350FX,276FY);
+z30=(301FX,317FY);
+z31=(282FX,374FY);
+z32=(282FX,618FY);
+z33=(253FX,692FY);
+z34=(179FX,736FY);
+z35=(82FX,750FY);
+z36=(75FX,747FY);
+z37=(72FX,740FY);
+FuF (z1
+{0,-6} .. {7,0}z2
+{36,0} .. {26,-21}z3
+{27,-21} .. {0,-32}z4
+-- z5
+{0,-32} .. {22,-21}z6
+{22,-20} .. {36,-9}z7
+{-35,-9} .. {-23,-21}z8
+{-22,-21} .. {0,-32}z9
+-- z10
+{0,-32} .. {-26,-21}z11
+{-27,-21} .. {-36,0}z12
+{-2,0} .. {-2,-1}z13
+{-2,-2} .. {0,-3}z14
+-- z15
+{0,-3} .. {2,-1}z16
+{2,-2} .. {3,0}z17
+{54,0} .. {40,23}z18
+{39,22} .. {0,43}z19
+-- z20
+{0,21} .. {13,17}z21
+{12,18} .. {21,10}z22
+{21,10} .. {23,0}z23
+{3,0} .. {2,2}z24
+{2,2} .. {0,3}z25
+-- z26
+{0,3} .. {-2,2}z27
+{-2,2} .. {-3,0}z28
+{-23,0} .. {-21,10}z29
+{-21,10} .. {-12,18}z30
+{-13,17} .. {0,21}z31
+-- z32
+{0,29} .. {-20,20}z33
+{-19,20} .. {-30,10}z34
+{-31,9} .. {-34,0}z35
+{-2,0} .. {-2,-2}z36
+{-2,-2} .. {0,-3}z37
+);
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(96,182FX#,710FY#,0FY#);
+"buth";
+z1=(126FX,535FY);
+z2=(50FX,696FY);
+z3=(42FX,707FY);
+z4=(30FX,710FY);
+z5=(12FX,703FY);
+z6=(3FX,685FY);
+z7=(6FX,674FY);
+z8=(81FX,512FY);
+z9=(90FX,502FY);
+z10=(102FX,498FY);
+z11=(121FX,505FY);
+z12=(129FX,523FY);
+z13=(126FX,535FY);
+FuF (z1
+-- z2
+{-2,5} .. {-4,2}z3
+{-4,2} .. {-4,0}z4
+{-7,0} .. {-5,-5}z5
+{-6,-5} .. {0,-7}z6
+{0,-4} .. {2,-4}z7
+-- z8
+{3,-4} .. {4,-2}z9
+{4,-3} .. {4,0}z10
+{7,0} .. {6,5}z11
+{5,5} .. {0,7}z12
+{0,3} .. {-2,5}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(97,680FX#,428FY#,0FY#);
+"a";
+z1=(625FX,0FY);
+z2=(625FX,428FY);
+z3=(551FX,428FY);
+z4=(551FX,152FY);
+z5=(515FX,88FY);
+z6=(450FX,69FY);
+z7=(393FX,87FY);
+z8=(362FX,144FY);
+z9=(363FX,153FY);
+z10=(363FX,428FY);
+z11=(289FX,428FY);
+z12=(289FX,149FY);
+z13=(290FX,143FY);
+z14=(290FX,137FY);
+z15=(250FX,81FY);
+z16=(179FX,67FY);
+z17=(112FX,94FY);
+z18=(83FX,182FY);
+z19=(83FX,428FY);
+z20=(11FX,428FY);
+z21=(11FX,154FY);
+z22=(42FX,50FY);
+z23=(111FX,8FY);
+z24=(181FX,0FY);
+z25=(261FX,15FY);
+z26=(308FX,47FY);
+z27=(370FX,12FY);
+z28=(449FX,0FY);
+z29=(513FX,13FY);
+z30=(567FX,50FY);
+z31=(567FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-27} .. {-24,-16}z5
+{-19,-13} .. {-24,0}z6
+{-21,0} .. {-17,12}z7
+{-21,14} .. {0,23}z8
+{0,4} .. {1,2}z9
+-- z10
+-- z11
+-- z12
+{0,-1} .. {1,-3}z13
+{0,-2} .. {0,-2}z14
+{0,-25} .. {-27,-12}z15
+{-19,-9} .. {-28,0}z16
+{-27,0} .. {-18,18}z17
+{-19,21} .. {0,38}z18
+-- z19
+-- z20
+-- z21
+{0,-44} .. {21,-26}z22
+{17,-20} .. {29,-8}z23
+{19,-5} .. {28,0}z24
+{37,0} .. {17,10}z25
+{1,0} .. {31,21}z26
+{17,-16} .. {24,-7}z27
+{24,-8} .. {29,0}z28
+{21,0} .. {22,9}z29
+{24,10} .. {12,15}z30
+-- z31
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(98,415FX#,432FY#,159FY#);
+"b";
+z1=(359FX,74FY);
+z2=(85FX,74FY);
+z3=(85FX,242FY);
+z4=(120FX,350FY);
+z5=(193FX,361FY);
+z6=(261FX,331FY);
+z7=(286FX,189FY);
+z8=(360FX,189FY);
+z9=(360FX,279FY);
+z10=(329FX,377FY);
+z11=(266FX,422FY);
+z12=(215FX,433FY);
+z13=(146FX,425FY);
+z14=(85FX,387FY);
+z15=(85FX,428FY);
+z16=(11FX,428FY);
+z17=(11FX,-160FY);
+z18=(85FX,-160FY);
+z19=(85FX,15FY);
+z20=(359FX,15FY);
+FuF (z1
+-- z2
+-- z3
+{0,56} .. {23,16}z4
+{12,7} .. {37,0}z5
+{32,0} .. {13,-20}z6
+{17,-25} .. {0,-70}z7
+-- z8
+-- z9
+{0,39} .. {-21,26}z10
+{-15,20} .. {-27,10}z11
+{-18,7} .. {-16,0}z12
+{-29,0} .. {-17,-5}z13
+{-24,-7} .. {-17,-19}z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(99,479FX#,439FY#,163FY#);
+"c";
+z1=(423FX,58FY);
+z2=(423FX,427FY);
+z3=(350FX,427FY);
+z4=(350FX,392FY);
+z5=(304FX,427FY);
+z6=(228FX,440FY);
+z7=(65FX,362FY);
+z8=(11FX,212FY);
+z9=(70FX,42FY);
+z10=(201FX,0FY);
+z11=(282FX,9FY);
+z12=(346FX,31FY);
+z13=(319FX,-54FY);
+z14=(241FX,-96FY);
+z15=(213FX,-97FY);
+z16=(161FX,-87FY);
+z17=(132FX,-56FY);
+z18=(56FX,-55FY);
+z19=(99FX,-132FY);
+z20=(204FX,-164FY);
+z21=(354FX,-121FY);
+z22=(413FX,-28FY);
+z23=(423FX,58FY);
+z24=(350FX,295FY);
+z25=(350FX,118FY);
+z26=(302FX,82FY);
+z27=(210FX,69FY);
+z28=(122FX,102FY);
+z29=(92FX,216FY);
+z30=(130FX,325FY);
+z31=(216FX,370FY);
+z32=(299FX,349FY);
+z33=(350FX,295FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-15,17} .. {-16,7}z5
+{-19,8} .. {-32,0}z6
+{-67,0} .. {-41,-52}z7
+{-36,-45} .. {0,-55}z8
+{0,-78} .. {39,-35}z9
+{31,-28} .. {56,0}z10
+{28,0} .. {26,6}z11
+{25,6} .. {17,9}z12
+{0,-34} .. {-18,-23}z13
+{-19,-25} .. {-33,-3}z14
+{-11,-1} .. {-8,0}z15
+{-23,0} .. {-12,7}z16
+{-9,6} .. {-10,15}z17
+-- z18
+{0,-28} .. {29,-23}z19
+{26,-21} .. {44,0}z20
+{64,0} .. {36,28}z21
+{29,22} .. {11,40}z22
+{7,24} .. {0,33}z23
+);
+FuF (z24
+-- z25
+{-6,-15} .. {-26,-9}z26
+{-26,-9} .. {-35,0}z27
+{-40,0} .. {-19,22}z28
+{-20,24} .. {0,52}z29
+{0,43} .. {26,30}z30
+{25,30} .. {32,0}z31
+{32,0} .. {24,-14}z32
+{22,-13} .. {12,-23}z33
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(100,527FX#,428FY#,160FY#);
+"d";
+z1=(471FX,0FY);
+z2=(471FX,62FY);
+z3=(381FX,62FY);
+z4=(381FX,262FY);
+z5=(352FX,377FY);
+z6=(286FX,421FY);
+z7=(218FX,428FY);
+z8=(150FX,427FY);
+z9=(86FX,387FY);
+z10=(86FX,428FY);
+z11=(11FX,428FY);
+z12=(11FX,0FY);
+z13=(86FX,0FY);
+z14=(86FX,268FY);
+z15=(110FX,341FY);
+z16=(205FX,364FY);
+z17=(281FX,347FY);
+z18=(309FX,279FY);
+z19=(309FX,-161FY);
+z20=(381FX,-161FY);
+z21=(381FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,49} .. {-19,28}z5
+{-16,21} .. {-28,8}z6
+{-17,5} .. {-29,0}z7
+{-37,0} .. {-9,-1}z8
+{-24,-3} .. {-19,-24}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{0,35} .. {16,13}z15
+{17,15} .. {46,0}z16
+{36,0} .. {15,-11}z17
+{18,-13} .. {0,-32}z18
+-- z19
+-- z20
+-- z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(101,420FX#,671FY#,0FY#);
+"e";
+z1=(369FX,376FY);
+z2=(369FX,428FY);
+z3=(86FX,428FY);
+z4=(86FX,671FY);
+z5=(11FX,671FY);
+z6=(11FX,186FY);
+z7=(68FX,35FY);
+z8=(181FX,0FY);
+z9=(316FX,37FY);
+z10=(365FX,142FY);
+z11=(365FX,293FY);
+z12=(291FX,293FY);
+z13=(291FX,153FY);
+z14=(265FX,84FY);
+z15=(183FX,61FY);
+z16=(118FX,87FY);
+z17=(86FX,175FY);
+z18=(86FX,376FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{0,-70} .. {38,-31}z7
+{28,-23} .. {47,0}z8
+{57,0} .. {33,25}z9
+{32,25} .. {0,45}z10
+-- z11
+-- z12
+-- z13
+{0,-31} .. {-17,-15}z14
+{-18,-16} .. {-37,0}z15
+{-27,0} .. {-17,18}z16
+{-18,19} .. {0,40}z17
+-- z18
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(102,617FX#,672FY#,160FY#);
+"f";
+z1=(565FX,184FY);
+z2=(528FX,296FY);
+z3=(439FX,366FY);
+z4=(333FX,412FY);
+z5=(333FX,528FY);
+z6=(309FX,628FY);
+z7=(206FX,672FY);
+z8=(125FX,648FY);
+z9=(83FX,565FY);
+z10=(110FX,472FY);
+z11=(177FX,410FY);
+z12=(263FX,371FY);
+z13=(263FX,65FY);
+z14=(254FX,65FY);
+z15=(142FX,93FY);
+z16=(93FX,202FY);
+z17=(25FX,202FY);
+z18=(25FX,196FY);
+z19=(67FX,68FY);
+z20=(161FX,13FY);
+z21=(263FX,2FY);
+z22=(263FX,-161FY);
+z23=(333FX,-161FY);
+z24=(333FX,4FY);
+z25=(450FX,24FY);
+z26=(533FX,76FY);
+z27=(565FX,184FY);
+z28=(263FX,435FY);
+z29=(172FX,488FY);
+z30=(144FX,555FY);
+z31=(161FX,599FY);
+z32=(205FX,618FY);
+z33=(212FX,618FY);
+z34=(249FX,602FY);
+z35=(263FX,552FY);
+z36=(500FX,183FY);
+z37=(460FX,93FY);
+z38=(360FX,64FY);
+z39=(333FX,66FY);
+z40=(333FX,352FY);
+z41=(407FX,317FY);
+z42=(472FX,263FY);
+z43=(500FX,183FY);
+FuF (z1
+{0,43} .. {-25,32}z2
+{-20,26} .. {-39,20}z3
+{-25,14} .. {-46,17}z4
+-- z5
+{0,44} .. {-16,23}z6
+{-20,29} .. {-48,0}z7
+{-31,0} .. {-23,-16}z8
+{-28,-19} .. {0,-36}z9
+{0,-35} .. {18,-27}z10
+{16,-23} .. {29,-18}z11
+{23,-13} .. {35,-12}z12
+-- z13
+-- z14
+{-50,0} .. {-24,19}z15
+{-27,21} .. {-5,52}z16
+-- z17
+-- z18
+{0,-54} .. {28,-31}z19
+{22,-26} .. {40,-11}z20
+{29,-7} .. {39,0}z21
+-- z22
+-- z23
+-- z24
+{49,4} .. {30,9}z25
+{37,12} .. {18,23}z26
+{21,27} .. {0,45}z27
+);
+FuF (z28
+{-44,19} .. {-17,16}z29
+{-19,18} .. {0,27}z30
+{0,16} .. {11,13}z31
+{11,13} .. {18,0}z32
+{3,0} .. {2,0}z33
+{17,-3} .. {8,-8}z34
+{9,-11} .. {0,-23}z35
+);
+FuF (z36
+{0,-39} .. {-27,-21}z37
+{-24,-19} .. {-43,0}z38
+{-9,0} .. {-9,1}z39
+-- z40
+{30,-12} .. {20,-11}z41
+{28,-17} .. {15,-19}z42
+{18,-24} .. {0,-29}z43
+);
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(103,582FX#,425FY#,160FY#);
+"g";
+z1=(527FX,0FY);
+z2=(527FX,62FY);
+z3=(426FX,62FY);
+z4=(426FX,395FY);
+z5=(350FX,395FY);
+z6=(306FX,417FY);
+z7=(240FX,426FY);
+z8=(80FX,366FY);
+z9=(11FX,212FY);
+z10=(69FX,52FY);
+z11=(228FX,-16FY);
+z12=(298FX,-6FY);
+z13=(350FX,16FY);
+z14=(350FX,-161FY);
+z15=(426FX,-161FY);
+z16=(426FX,0FY);
+z17=(350FX,230FY);
+z18=(350FX,181FY);
+z19=(332FX,76FY);
+z20=(228FX,44FY);
+z21=(142FX,82FY);
+z22=(98FX,217FY);
+z23=(137FX,327FY);
+z24=(241FX,361FY);
+z25=(333FX,333FY);
+z26=(350FX,230FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{-19,11} .. {-10,3}z6
+{-17,6} .. {-27,0}z7
+{-63,0} .. {-44,-40}z8
+{-46,-42} .. {0,-61}z9
+{0,-64} .. {39,-43}z10
+{41,-45} .. {65,0}z11
+{20,0} .. {26,6}z12
+{27,7} .. {8,8}z13
+-- z14
+-- z15
+-- z16
+);
+FuF (z17
+-- z18
+{0,-54} .. {-12,-16}z19
+{-15,-21} .. {-54,0}z20
+{-34,0} .. {-23,25}z21
+{-29,31} .. {0,59}z22
+{0,48} .. {26,25}z23
+{25,23} .. {45,0}z24
+{47,0} .. {14,-19}z25
+{11,-16} .. {0,-53}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(104,434FX#,675FY#,0FY#);
+"h";
+z1=(379FX,0FY);
+z2=(379FX,299FY);
+z3=(348FX,383FY);
+
+z4=(282FX,420FY);
+z5=(218FX,428FY);
+z6=(155FX,423FY);
+z7=(86FX,397FY);
+z8=(86FX,676FY);
+z9=(11FX,676FY);
+z10=(11FX,0FY);
+z11=(86FX,0FY);
+z12=(86FX,278FY);
+z13=(113FX,332FY);
+z14=(199FX,355FY);
+z15=(283FX,328FY);
+z16=(304FX,263FY);
+z17=(304FX,0FY);
+FuF (z1
+-- z2
+{0,34} .. {-21,21}z3
+{-16,17} .. {-28,8}z4
+{-19,5} .. {-24,0}z5
+{-26,0} .. {-16,-3}z6
+{-23,-4} .. {-23,-13}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,22} .. {18,14}z13
+{20,16} .. {38,0}z14
+{38,0} .. {18,-18}z15
+{14,-15} .. {0,-28}z16
+-- z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(105,434FX#,671FY#,160FY#);
+"i";
+z1=(368FX,0FY);
+z2=(368FX,290FY);
+z3=(330FX,384FY);
+z4=(211FX,427FY);
+z5=(140FX,418FY);
+z6=(89FX,381FY);
+z7=(89FX,671FY);
+z8=(11FX,671FY);
+z9=(11FX,-161FY);
+z10=(89FX,-161FY);
+z11=(89FX,237FY);
+z12=(112FX,321FY);
+z13=(205FX,354FY);
+z14=(278FX,321FY);
+z15=(293FX,212FY);
+z16=(293FX,0FY);
+FuF (z1
+-- z2
+{0,37} .. {-25,26}z3
+{-28,28} .. {-51,0}z4
+{-30,0} .. {-18,-6}z5
+{-22,-7} .. {-12,-18}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,37} .. {15,19}z12
+{18,22} .. {44,0}z13
+{36,0} .. {13,-22}z14
+{10,-19} .. {0,-53}z15
+-- z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(106,474FX#,431FY#,169FY#);
+"j";
+z1=(418FX,-135FY);
+z2=(401FX,-74FY);
+z3=(282FX,-93FY);
+z4=(160FX,-107FY);
+z5=(118FX,-101FY);
+z6=(102FX,-83FY);
+z7=(200FX,31FY);
+z8=(320FX,144FY);
+z9=(378FX,281FY);
+z10=(333FX,390FY);
+z11=(221FX,432FY);
+z12=(80FX,384FY);
+z13=(25FX,279FY);
+z14=(56FX,199FY);
+z15=(116FX,151FY);
+z16=(147FX,93FY);
+z17=(113FX,36FY);
+z18=(51FX,-27FY);
+z19=(18FX,-89FY);
+z20=(32FX,-133FY);
+z21=(71FX,-163FY);
+z22=(150FX,-170FY);
+z23=(214FX,-165FY);
+z24=(304FX,-152FY);
+z25=(418FX,-135FY);
+z26=(299FX,268FY);
+z27=(265FX,197FY);
+z28=(212FX,143FY);
+z29=(143FX,208FY);
+z30=(102FX,285FY);
+z31=(146FX,348FY);
+z32=(212FX,370FY);
+z33=(270FX,352FY);
+z34=(299FX,268FY);
+FuF (z1
+-- z2
+{-40,-6} .. {-40,-6}z3
+{-54,-10} .. {-27,0}z4
+{-18,0} .. {-10,4}z5
+{-11,4} .. {0,8}z6
+{15,32} .. {50,44}z7
+{66,59} .. {14,17}z8
+{39,45} .. {0,46}z9
+{0,44} .. {-30,28}z10
+{-30,28} .. {-45,0}z11
+{-56,0} .. {-38,-32}z12
+{-37,-30} .. {0,-40}z13
+{0,-31} .. {21,-22}z14
+{20,-16} .. {20,-16}z15
+{21,-18} .. {0,-21}z16
+{0,-14} .. {-23,-23}z17
+{-20,-22} .. {-21,-21}z18
+{-22,-24} .. {0,-17}z19
+{0,-14} .. {9,-15}z20
+{10,-18} .. {15,-3}z21
+{30,-5} .. {23,0}z22
+{20,0} .. {23,3}z23
+{23,3} .. {37,6}z24
+{47,7} .. {29,4}z25
+);
+FuF (z26
+{0,-23} .. {-23,-24}z27
+{-13,-14} .. {-23,-22}z28
+{-8,13} .. {-37,30}z29
+{-27,22} .. {0,30}z30
+{0,25} .. {29,17}z31
+{24,15} .. {20,0}z32
+{24,0} .. {14,-12}z33
+{19,-17} .. {0,-39}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(107,434FX#,672FY#,160FY#);
+"k";
+z1=(379FX,-161FY);
+z2=(379FX,428FY);
+z3=(304FX,428FY);
+z4=(304FX,195FY);
+z5=(264FX,99FY);
+z6=(187FX,74FY);
+z7=(117FX,102FY);
+z8=(86FX,240FY);
+z9=(86FX,672FY);
+z10=(11FX,672FY);
+z11=(11FX,230FY);
+z12=(58FX,49FY);
+z13=(184FX,0FY);
+z14=(261FX,19FY);
+z15=(304FX,51FY);
+z16=(304FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-43} .. {-27,-21}z5
+{-21,-16} .. {-30,0}z6
+{-31,0} .. {-15,18}z7
+{-21,26} .. {0,67}z8
+-- z9
+-- z10
+-- z11
+{0,-84} .. {31,-37}z12
+{28,-33} .. {56,0}z13
+{32,0} .. {20,13}z14
+{5,3} .. {24,18}z15
+-- z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(108,301FX#,426FY#,160FY#);
+"l";
+z1=(246FX,-161FY);
+z2=(246FX,-86FY);
+z3=(88FX,-86FY);
+z4=(88FX,427FY);
+z5=(11FX,427FY);
+z6=(11FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+lbl (range 1 thru 6);
+endchar;
+
+beginchar(109,549FX#,673FY#,0FY#);
+"m";
+z1=(481FX,598FY);
+z2=(481FX,672FY);
+z3=(453FX,673FY);
+z4=(424FX,674FY);
+z5=(341FX,653FY);
+z6=(304FX,552FY);
+z7=(304FX,212FY);
+z8=(272FX,115FY);
+z9=(191FX,77FY);
+z10=(108FX,109FY);
+z11=(86FX,233FY);
+z12=(86FX,434FY);
+z13=(11FX,434FY);
+z14=(11FX,207FY);
+z15=(48FX,57FY);
+z16=(192FX,0FY);
+z17=(324FX,57FY);
+z18=(379FX,223FY);
+z19=(379FX,505FY);
+z20=(394FX,583FY);
+z21=(436FX,599FY);
+z22=(457FX,598FY);
+z23=(481FX,598FY);
+FuF (z1
+-- z2
+{-9,1} .. {-9,0}z3
+{-10,1} .. {-10,0}z4
+{-37,0} .. {-18,-14}z5
+{-24,-18} .. {0,-49}z6
+-- z7
+{0,-39} .. {-22,-26}z8
+{-21,-25} .. {-33,0}z9
+{-41,0} .. {-14,22}z10
+{-15,21} .. {0,62}z11
+-- z12
+-- z13
+-- z14
+{0,-67} .. {25,-33}z15
+{29,-38} .. {67,0}z16
+{54,0} .. {34,38}z17
+{37,41} .. {0,70}z18
+-- z19
+{0,39} .. {10,13}z20
+{8,11} .. {20,0}z21
+{7,0} .. {7,-1}z22
+{8,0} .. {9,0}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(110,532FX#,674FY#,15FY#);
+"n";
+z1=(476FX,0FY);
+z2=(476FX,428FY);
+z3=(401FX,428FY);
+z4=(401FX,142FY);
+z5=(366FX,81FY);
+z6=(290FX,58FY);
+z7=(224FX,87FY);
+z8=(197FX,201FY);
+z9=(197FX,544FY);
+z10=(191FX,544FY);
+z11=(171FX,543FY);
+z12=(152FX,543FY);
+z13=(147FX,543FY);
+z14=(142FX,543FY);
+z15=(136FX,543FY);
+z16=(94FX,548FY);
+z17=(85FX,572FY);
+z18=(85FX,629FY);
+z19=(85FX,675FY);
+z20=(18FX,675FY);
+z21=(18FX,628FY);
+z22=(18FX,587FY);
+z23=(24FX,512FY);
+z24=(56FX,490FY);
+z25=(123FX,490FY);
+z26=(123FX,194FY);
+z27=(174FX,35FY);
+z28=(270FX,-16FY);
+z29=(366FX,2FY);
+z30=(416FX,37FY);
+z31=(416FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-24} .. {-23,-16}z5
+{-22,-15} .. {-28,0}z6
+{-28,0} .. {-16,20}z7
+{-18,22} .. {0,54}z8
+-- z9
+-- z10
+{-7,0} .. {-6,0}z11
+{-7,0} .. {-6,0}z12
+-- z13
+-- z14
+-- z15
+{-23,0} .. {-5,3}z16
+{-6,3} .. {0,13}z17
+{0,17} .. {0,21}z18
+{0,21} .. {0,9}z19
+-- z20
+{0,-17} .. {0,-15}z21
+{0,-15} .. {0,-13}z22
+{0,-39} .. {4,-11}z23
+{4,-10} .. {17,-4}z24
+-- z25
+-- z26
+{0,-66} .. {34,-39}z27
+{29,-34} .. {35,0}z28
+{38,0} .. {26,12}z29
+{13,6} .. {21,17}z30
+-- z31
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(111,421FX#,435FY#,0FY#);
+"o";
+z1=(364FX,0FY);
+z2=(364FX,296FY);
+z3=(307FX,395FY);
+z4=(188FX,436FY);
+z5=(132FX,429FY);
+z6=(85FX,397FY);
+z7=(85FX,427FY);
+z8=(10FX,427FY);
+z9=(10FX,0FY);
+z10=(85FX,0FY);
+z11=(85FX,287FY);
+z12=(123FX,340FY);
+z13=(185FX,363FY);
+z14=(253FX,333FY);
+z15=(287FX,255FY);
+z16=(287FX,0FY);
+FuF (z1
+-- z2
+{0,38} .. {-38,28}z3
+{-36,27} .. {-44,0}z4
+{-22,0} .. {-15,-4}z5
+{-16,-5} .. {-16,-16}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,19} .. {25,17}z12
+{22,15} .. {19,0}z13
+{24,0} .. {21,-20}z14
+{23,-21} .. {0,-31}z15
+-- z16
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(112,695FX#,428FY#,159FY#);
+"p";
+z1=(640FX,-160FY);
+z2=(640FX,428FY);
+z3=(566FX,428FY);
+z4=(566FX,187FY);
+z5=(525FX,101FY);
+z6=(454FX,79FY);
+z7=(394FX,92FY);
+z8=(363FX,188FY);
+z9=(363FX,428FY);
+z10=(289FX,428FY);
+z11=(289FX,185FY);
+z12=(248FX,105FY);
+z13=(173FX,81FY);
+z14=(110FX,114FY);
+z15=(83FX,217FY);
+z16=(83FX,428FY);
+z17=(11FX,428FY);
+z18=(11FX,179FY);
+z19=(62FX,37FY);
+z20=(158FX,1FY);
+z21=(256FX,25FY);
+z22=(319FX,80FY);
+z23=(362FX,26FY);
+z24=(455FX,0FY);
+z25=(516FX,16FY);
+z26=(567FX,56FY);
+z27=(567FX,-160FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-38} .. {-27,-19}z5
+{-21,-15} .. {-26,0}z6
+{-28,0} .. {-11,9}z7
+{-21,15} .. {0,48}z8
+-- z9
+-- z10
+-- z11
+{0,-34} .. {-27,-19}z12
+{-22,-16} .. {-28,0}z13
+{-26,0} .. {-16,22}z14
+{-18,24} .. {0,45}z15
+-- z16
+-- z17
+-- z18
+{0,-64} .. {34,-31}z19
+{27,-24} .. {37,0}z20
+{34,0} .. {31,16}z21
+{31,16} .. {11,21}z22
+{10,-23} .. {19,-13}z23
+{24,-17} .. {38,0}z24
+{19,0} .. {22,11}z25
+{21,11} .. {12,15}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(113,548FX#,421FY#,180FY#);
+"q";
+z1=(504FX,236FY);
+z2=(490FX,312FY);
+z3=(432FX,387FY);
+z4=(315FX,422FY);
+z5=(226FX,407FY);
+z6=(180FX,375FY);
+z7=(180FX,406FY);
+z8=(106FX,406FY);
+z9=(106FX,0FY);
+z10=(18FX,0FY);
+z11=(18FX,-61FY);
+z12=(106FX,-61FY);
+z13=(106FX,-181FY);
+z14=(180FX,-181FY);
+z15=(180FX,-61FY);
+z16=(472FX,-61FY);
+z17=(472FX,0FY);
+z18=(180FX,0FY);
+z19=(180FX,80FY);
+z20=(230FX,35FY);
+z21=(302FX,25FY);
+z22=(389FX,42FY);
+z23=(469FX,106FY);
+z24=(504FX,236FY);
+z25=(437FX,221FY);
+z26=(406FX,129FY);
+z27=(310FX,87FY);
+z28=(225FX,119FY);
+z29=(196FX,182FY);
+z30=(193FX,228FY);
+z31=(223FX,325FY);
+z32=(315FX,355FY);
+z33=(406FX,323FY);
+z34=(437FX,221FY);
+FuF (z1
+{0,26} .. {-9,25}z2
+{-13,31} .. {-26,19}z3
+{-31,23} .. {-47,0}z4
+{-38,0} .. {-22,-10}z5
+{-10,-5} .. {-20,-17}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{13,-22} .. {20,-8}z20
+{17,-7} .. {31,0}z21
+{31,0} .. {27,12}z22
+{34,14} .. {19,29}z23
+{24,35} .. {0,52}z24
+);
+FuF (z25
+{0,-36} .. {-21,-25}z26
+{-23,-28} .. {-41,0}z27
+{-37,0} .. {-20,21}z28
+{-14,15} .. {-5,27}z29
+{-2,11} .. {0,19}z30
+{0,44} .. {20,21}z31
+{20,20} .. {41,0}z32
+{40,0} .. {20,-21}z33
+{21,-22} .. {0,-46}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(114,420FX#,430FY#,161FY#);
+"r";
+z1=(365FX,0FY);
+z2=(365FX,297FY);
+z3=(335FX,386FY);
+z4=(271FX,424FY);
+z5=(209FX,431FY);
+z6=(141FX,428FY);
+z7=(86FX,406FY);
+z8=(86FX,428FY);
+z9=(11FX,428FY);
+z10=(11FX,-161FY);
+z11=(86FX,-161FY);
+z12=(86FX,275FY);
+z13=(113FX,347FY);
+z14=(184FX,369FY);
+z15=(255FX,354FY);
+z16=(290FX,301FY);
+z17=(290FX,0FY);
+FuF (z1
+-- z2
+{0,37} .. {-20,22}z3
+{-16,18} .. {-27,7}z4
+{-18,4} .. {-23,0}z5
+{-33,0} .. {-12,-2}z6
+{-21,-3} .. {-15,-12}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,31} .. {18,17}z13
+{17,15} .. {30,0}z14
+{28,0} .. {20,-10}z15
+{23,-13} .. {0,-23}z16
+-- z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(115,435FX#,428FY#,0FY#);
+"s";
+z1=(380FX,0FY);
+z2=(380FX,428FY);
+z3=(305FX,428FY);
+z4=(305FX,189FY);
+z5=(276FX,100FY);
+z6=(188FX,71FY);
+z7=(115FX,106FY);
+z8=(86FX,189FY);
+z9=(86FX,428FY);
+z10=(11FX,428FY);
+z11=(11FX,182FY);
+z12=(68FX,38FY);
+z13=(191FX,0FY);
+z14=(265FX,12FY);
+z15=(305FX,43FY);
+z16=(305FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-40} .. {-20,-19}z5
+{-19,-19} .. {-39,0}z6
+{-29,0} .. {-20,23}z7
+{-19,23} .. {0,32}z8
+-- z9
+-- z10
+-- z11
+{0,-65} .. {38,-32}z12
+{30,-25} .. {52,0}z13
+{32,0} .. {17,8}z14
+{17,8} .. {9,13}z15
+-- z16
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(116,684FX#,442FY#,160FY#);
+"t";
+z1=(629FX,0FY);
+z2=(629FX,290FY);
+z3=(606FX,374FY);
+z4=(546FX,423FY);
+z5=(492FX,441FY);
+z6=(445FX,443FY);
+z7=(390FX,440FY);
+z8=(349FX,427FY);
+z9=(291FX,427FY);
+z10=(291FX,174FY);
+z11=(261FX,82FY);
+z12=(174FX,56FY);
+z13=(107FX,75FY);
+z14=(86FX,149FY);
+z15=(86FX,427FY);
+z16=(11FX,427FY);
+z17=(11FX,161FY);
+z18=(39FX,42FY);
+z19=(104FX,-7FY);
+z20=(176FX,-17FY);
+z21=(243FX,-3FY);
+z22=(291FX,21FY);
+z23=(291FX,-161FY);
+z24=(365FX,-161FY);
+z25=(365FX,297FY);
+z26=(381FX,349FY);
+z27=(453FX,368FY);
+z28=(536FX,338FY);
+z29=(555FX,282FY);
+z30=(555FX,0FY);
+FuF (z1
+-- z2
+{0,32} .. {-15,24}z3
+{-12,18} .. {-28,14}z4
+{-17,10} .. {-19,2}z5
+{-7,1} .. {-24,0}z6
+{-19,0} .. {-17,-2}z7
+{-18,-2} .. {-9,-6}z8
+-- z9
+-- z10
+{0,-42} .. {-20,-19}z11
+{-19,-17} .. {-39,0}z12
+{-32,0} .. {-13,13}z13
+{-14,14} .. {0,35}z14
+-- z15
+-- z16
+-- z17
+{0,-50} .. {18,-29}z18
+{15,-24} .. {28,-9}z19
+{18,-7} .. {29,0}z20
+{23,0} .. {22,9}z21
+{4,1} .. {28,15}z22
+-- z23
+-- z24
+-- z25
+{0,24} .. {11,11}z26
+{13,13} .. {35,0}z27
+{38,0} .. {17,-20}z28
+{13,-14} .. {0,-23}z29
+-- z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(117,752FX#,435FY#,0FY#);
+"u";
+z1=(364FX,0FY);
+z2=(364FX,296FY);
+z3=(307FX,395FY);
+z4=(188FX,436FY);
+z5=(132FX,429FY);
+z6=(85FX,397FY);
+z7=(85FX,427FY);
+z8=(10FX,427FY);
+z9=(10FX,0FY);
+z10=(85FX,0FY);
+z11=(85FX,287FY);
+z12=(123FX,340FY);
+z13=(185FX,363FY);
+z14=(253FX,333FY);
+z15=(287FX,255FY);
+z16=(287FX,0FY);
+z17=(697FX,0FY);
+z18=(697FX,52FY);
+z19=(507FX,52FY);
+z20=(507FX,426FY);
+z21=(433FX,426FY);
+z22=(433FX,0FY);
+FuF (z1
+-- z2
+{0,38} .. {-38,28}z3
+{-36,27} .. {-44,0}z4
+{-22,0} .. {-15,-4}z5
+{-16,-5} .. {-16,-16}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,19} .. {25,17}z12
+{22,15} .. {19,0}z13
+{24,0} .. {21,-20}z14
+{23,-21} .. {0,-31}z15
+-- z16
+);
+FuF (z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(118,536FX#,674FY#,160FY#);
+"v";
+z1=(482FX,-161FY);
+z2=(482FX,-93FY);
+z3=(365FX,-93FY);
+z4=(365FX,675FY);
+z5=(291FX,675FY);
+z6=(291FX,163FY);
+z7=(272FX,97FY);
+z8=(191FX,69FY);
+z9=(113FX,96FY);
+z10=(86FX,173FY);
+z11=(86FX,427FY);
+z12=(11FX,427FY);
+z13=(11FX,126FY);
+z14=(56FX,31FY);
+z15=(172FX,-6FY);
+z16=(239FX,2FY);
+z17=(291FX,20FY);
+z18=(291FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{0,-29} .. {-13,-15}z7
+{-16,-19} .. {-38,0}z8
+{-34,0} .. {-18,18}z9
+{-18,18} .. {0,33}z10
+-- z11
+-- z12
+-- z13
+{0,-39} .. {30,-24}z14
+{30,-24} .. {48,0}z15
+{26,0} .. {19,5}z16
+{4,1} .. {31,11}z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(119,330FX#,425FY#,0FY#);
+"w";
+z1=(275FX,0FY);
+z2=(275FX,52FY);
+z3=(85FX,52FY);
+z4=(85FX,426FY);
+z5=(11FX,426FY);
+z6=(11FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+lbl (range 1 thru 6);
+endchar;
+
+beginchar(120,654FX#,674FY#,160FY#);
+"x";
+z1=(425FX,0FY);
+z2=(563FX,45FY);
+z3=(599FX,187FY);
+z4=(599FX,428FY);
+z5=(524FX,428FY);
+z6=(524FX,228FY);
+z7=(512FX,98FY);
+z8=(432FX,61FY);
+z9=(354FX,98FY);
+z10=(334FX,188FY);
+z11=(334FX,234FY);
+z12=(326FX,321FY);
+z13=(293FX,397FY);
+z14=(217FX,429FY);
+z15=(142FX,415FY);
+z16=(85FX,382FY);
+z17=(85FX,675FY);
+z18=(11FX,675FY);
+z19=(11FX,-161FY);
+z20=(85FX,-161FY);
+z21=(85FX,272FY);
+z22=(121FX,335FY);
+z23=(180FX,355FY);
+z24=(244FX,319FY);
+z25=(261FX,233FY);
+z26=(261FX,192FY);
+z27=(299FX,41FY);
+z28=(425FX,0FY);
+FuF (z1
+{66,0} .. {26,30}z2
+{24,27} .. {0,67}z3
+-- z4
+-- z5
+-- z6
+{0,-68} .. {-8,-19}z7
+{-11,-25} .. {-42,0}z8
+{-37,0} .. {-15,25}z9
+{-13,21} .. {0,39}z10
+-- z11
+{0,33} .. {-5,25}z12
+{-7,33} .. {-15,18}z13
+{-19,21} .. {-32,0}z14
+{-26,0} .. {-24,-9}z15
+{-23,-8} .. {-16,-14}z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+{0,25} .. {24,17}z22
+{19,13} .. {20,0}z23
+{29,0} .. {14,-24}z24
+{11,-21} .. {0,-37}z25
+-- z26
+{0,-72} .. {25,-29}z27
+{25,-27} .. {59,0}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(121,262FX#,428FY#,159FY#);
+"y";
+z1=(206FX,6FY);
+z2=(206FX,428FY);
+z3=(121FX,428FY);
+z4=(121FX,66FY);
+z5=(91FX,-46FY);
+z6=(13FX,-69FY);
+z7=(13FX,-160FY);
+z8=(143FX,-125FY);
+z9=(206FX,6FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-55} .. {-20,-20}z5
+{-15,-15} .. {-37,0}z6
+-- z7
+{53,0} .. {34,23}z8
+{42,28} .. {0,59}z9
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(122,537FX#,441FY#,160FY#);
+"z";
+z1=(482FX,-161FY);
+z2=(482FX,-100FY);
+z3=(426FX,-100FY);
+z4=(426FX,410FY);
+z5=(350FX,410FY);
+z6=(293FX,437FY);
+z7=(240FX,441FY);
+z8=(80FX,381FY);
+z9=(11FX,228FY);
+z10=(69FX,68FY);
+z11=(228FX,0FY);
+z12=(294FX,11FY);
+z13=(350FX,43FY);
+z14=(350FX,-161FY);
+z15=(340FX,240FY);
+z16=(320FX,120FY);
+z17=(223FX,68FY);
+z18=(176FX,80FY);
+z19=(120FX,124FY);
+z20=(93FX,215FY);
+z21=(132FX,328FY);
+z22=(229FX,373FY);
+z23=(318FX,343FY);
+z24=(340FX,240FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{-24,15} .. {-14,4}z6
+{-14,3} .. {-22,0}z7
+{-63,0} .. {-44,-40}z8
+{-46,-41} .. {0,-61}z9
+{0,-64} .. {39,-43}z10
+{41,-45} .. {65,0}z11
+{26,0} .. {18,7}z12
+{10,4} .. {27,17}z13
+-- z14
+);
+FuF (z15
+{0,-54} .. {-13,-27}z16
+{-14,-29} .. {-50,-6}z17
+{-14,0} .. {-18,8}z18
+{-23,10} .. {-14,19}z19
+{-18,25} .. {0,36}z20
+{0,45} .. {26,30}z21
+{26,30} .. {39,0}z22
+{43,0} .. {16,-20}z23
+{15,-18} .. {0,-50}z24
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(123,449FX#,257FY#,0FY#);
+"hyphen";
+z1=(0FX,197FY);
+z2=(450FX,197FY);
+z3=(450FX,257FY);
+z4=(0FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,43FX#,730FY#,0FY#);
+"shesht";
+z1=(-8FX,694FY);
+z2=(-4FX,707FY);
+z3=(-12FX,724FY);
+z4=(-30FX,731FY);
+z5=(-49FX,720FY);
+z6=(-133FX,588FY);
+z7=(-137FX,572FY);
+z8=(-132FX,557FY);
+z9=(-119FX,551FY);
+z10=(-102FX,562FY);
+FuF (z1
+{3,4} .. {0,4}z2
+{0,7} .. {-5,5}z3
+{-5,5} .. {-7,0}z4
+{-8,0} .. {-5,-7}z5
+-- z6
+{-3,-6} .. {0,-5}z7
+{0,-6} .. {4,-4}z8
+{3,-4} .. {5,0}z9
+{6,0} .. {5,8}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(125,999FX#,257FY#,0FY#);
+"emdash";
+z1=(0FX,197FY);
+z2=(1000FX,197FY);
+z3=(1000FX,257FY);
+z4=(0FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,319FX#,695FY#,0FY#);
+"exclam";
+z1=(116FX,696FY);
+z2=(118FX,623FY);
+z3=(120FX,409FY);
+z4=(121FX,396FY);
+z5=(121FX,352FY);
+z6=(123FX,229FY);
+z7=(124FX,216FY);
+z8=(124FX,184FY);
+z9=(125FX,177FY);
+z10=(130FX,176FY);
+z11=(188FX,176FY);
+z12=(194FX,184FY);
+z13=(194FX,260FY);
+z14=(196FX,319FY);
+z15=(200FX,530FY);
+z16=(201FX,544FY);
+z17=(201FX,587FY);
+z18=(203FX,696FY);
+z19=(116FX,86FY);
+z20=(116FX,0FY);
+z21=(203FX,0FY);
+z22=(203FX,86FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{0,-4} .. {0,-1}z9
+{1,0} .. {2,0}z10
+-- z11
+{4,0} .. {0,5}z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+);
+FuF (z19
+-- z20
+-- z21
+-- z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(3,623FX#,652FY#,0FY#);
+"Dz";
+z1=(522FX,4FY);
+z2=(429FX,84FY);
+z3=(349FX,121FY);
+z4=(468FX,246FY);
+z5=(520FX,432FY);
+z6=(456FX,591FY);
+z7=(269FX,653FY);
+z8=(95FX,597FY);
+z9=(19FX,450FY);
+z10=(19FX,399FY);
+z11=(102FX,399FY);
+z12=(102FX,445FY);
+z13=(163FX,557FY);
+z14=(278FX,585FY);
+z15=(397FX,544FY);
+z16=(431FX,442FY);
+z17=(396FX,288FY);
+z18=(326FX,189FY);
+z19=(274FX,146FY);
+z20=(218FX,151FY);
+z21=(136FX,153FY);
+z22=(43FX,133FY);
+z23=(10FX,70FY);
+z24=(39FX,16FY);
+z25=(115FX,0FY);
+z26=(238FX,34FY);
+z27=(280FX,63FY);
+z28=(327FX,48FY);
+z29=(398FX,4FY);
+z30=(202FX,86FY);
+z31=(161FX,61FY);
+z32=(132FX,57FY);
+z33=(117FX,57FY);
+z34=(86FX,60FY);
+z35=(75FX,73FY);
+z36=(94FX,90FY);
+z37=(132FX,94FY);
+z38=(171FX,91FY);
+z39=(202FX,86FY);
+FuF (z1
+{-37,37} .. {-25,16}z2
+{-15,9} .. {-39,16}z3
+{49,32} .. {30,51}z4
+{34,58} .. {0,66}z5
+{0,67} .. {-42,39}z6
+{-45,41} .. {-80,0}z7
+{-67,0} .. {-49,-37}z8
+{-51,-39} .. {0,-59}z9
+-- z10
+-- z11
+-- z12
+{0,51} .. {41,24}z13
+{30,18} .. {46,0}z14
+{53,0} .. {26,-27}z15
+{22,-24} .. {0,-44}z16
+{0,-55} .. {-23,-48}z17
+{-18,-36} .. {-29,-30}z18
+{-20,-20} .. {-15,-9}z19
+{-19,2} .. {-19,1}z20
+{-18,2} .. {-36,0}z21
+{-41,0} .. {-21,-14}z22
+{-22,-13} .. {0,-29}z23
+{0,-24} .. {19,-12}z24
+{18,-11} .. {33,0}z25
+{48,0} .. {34,23}z26
+{10,7} .. {18,12}z27
+{17,-4} .. {14,-6}z28
+{29,-12} .. {19,-18}z29
+);
+FuF (z30
+{-21,-14} .. {-7,-3}z31
+{-7,-3} .. {-12,0}z32
+-- z33
+{-13,0} .. {-8,2}z34
+{-7,2} .. {0,7}z35
+{0,8} .. {13,3}z36
+{9,2} .. {17,0}z37
+{15,0} .. {11,-2}z38
+{12,-2} .. {9,-1}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(4,749FX#,655FY#,84FY#);
+"Gh";
+z1=(645FX,-84FY);
+z2=(603FX,20FY);
+z3=(493FX,61FY);
+z4=(493FX,441FY);
+z5=(417FX,597FY);
+z6=(237FX,656FY);
+z7=(84FX,611FY);
+z8=(10FX,458FY);
+z9=(10FX,399FY);
+z10=(94FX,399FY);
+z11=(94FX,440FY);
+z12=(132FX,553FY);
+z13=(251FX,585FY);
+z14=(367FX,539FY);
+z15=(409FX,438FY);
+z16=(409FX,0FY);
+z17=(500FX,-8FY);
+z18=(557FX,-84FY);
+FuF (z1
+{0,42} .. {-28,27}z2
+{-29,28} .. {-45,0}z3
+-- z4
+{0,63} .. {-50,41}z5
+{-49,39} .. {-71,0}z6
+{-61,0} .. {-41,-30}z7
+{-49,-36} .. {0,-66}z8
+-- z9
+-- z10
+-- z11
+{0,53} .. {26,22}z12
+{24,21} .. {55,0}z13
+{47,0} .. {31,-30}z14
+{28,-29} .. {0,-39}z15
+-- z16
+{45,0} .. {15,-5}z17
+{32,-11} .. {6,-39}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(5,652FX#,660FY#,0FY#);
+"Chmute";
+z1=(572FX,21FY);
+z2=(284FX,451FY);
+z3=(422FX,605FY);
+z4=(366FX,660FY);
+z5=(244FX,516FY);
+z6=(200FX,585FY);
+z7=(152FX,528FY);
+z8=(192FX,463FY);
+z9=(129FX,376FY);
+z10=(49FX,245FY);
+z11=(10FX,133FY);
+z12=(10FX,124FY);
+z13=(43FX,32FY);
+z14=(153FX,0FY);
+z15=(287FX,14FY);
+z16=(394FX,40FY);
+z17=(468FX,54FY);
+z18=(494FX,21FY);
+z19=(409FX,121FY);
+z20=(307FX,87FY);
+z21=(210FX,72FY);
+z22=(119FX,79FY);
+z23=(87FX,133FY);
+z24=(87FX,141FY);
+z25=(88FX,153FY);
+z26=(116FX,207FY);
+z27=(177FX,301FY);
+z28=(238FX,384FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{-19,-25} .. {-23,-33}z9
+{-32,-48} .. {-21,-40}z10
+{-26,-50} .. {0,-25}z11
+{0,-4} .. {0,-2}z12
+{6,-45} .. {16,-16}z13
+{21,-21} .. {53,0}z14
+{41,0} .. {48,9}z15
+{21,4} .. {51,13}z16
+{35,9} .. {14,0}z17
+-- z18
+);
+FuF (z19
+{-27,-13} .. {-41,-9}z20
+{-40,-10} .. {-24,0}z21
+{-48,0} .. {-13,5}z22
+{-22,7} .. {0,29}z23
+{0,2} .. {0,3}z24
+{0,3} .. {1,5}z25
+{0,4} .. {18,32}z26
+{18,29} .. {23,33}z27
+{26,38} .. {15,18}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(6,467FX#,649FY#,54FY#);
+"Esimple";
+z1=(303FX,410FY);
+z2=(303FX,471FY);
+z3=(92FX,471FY);
+z4=(92FX,650FY);
+z5=(10FX,650FY);
+z6=(10FX,0FY);
+z7=(182FX,0FY);
+z8=(274FX,-16FY);
+z9=(294FX,-54FY);
+z10=(375FX,-54FY);
+z11=(341FX,27FY);
+z12=(222FX,69FY);
+z13=(92FX,69FY);
+z14=(92FX,410FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{44,0} .. {17,-11}z8
+{14,-8} .. {0,-17}z9
+-- z10
+{0,31} .. {-23,23}z11
+{-28,28} .. {-51,0}z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(7,556FX#,646FY#,67FY#);
+"Article";
+z1=(483FX,-68FY);
+z2=(444FX,35FY);
+z3=(284FX,71FY);
+z4=(94FX,71FY);
+z5=(94FX,403FY);
+z6=(126FX,513FY);
+z7=(200FX,560FY);
+z8=(282FX,571FY);
+z9=(381FX,540FY);
+z10=(409FX,430FY);
+z11=(409FX,395FY);
+z12=(493FX,395FY);
+z13=(493FX,458FY);
+z14=(440FX,595FY);
+z15=(282FX,647FY);
+z16=(87FX,589FY);
+z17=(10FX,409FY);
+z18=(10FX,0FY);
+z19=(263FX,0FY);
+z20=(376FX,-14FY);
+z21=(405FX,-68FY);
+FuF (z1
+{0,48} .. {-26,21}z2
+{-30,24} .. {-76,0}z3
+-- z4
+-- z5
+{0,46} .. {22,28}z6
+{18,22} .. {32,9}z7
+{24,7} .. {31,0}z8
+{48,0} .. {18,-20}z9
+{19,-21} .. {0,-52}z10
+-- z11
+-- z12
+-- z13
+{0,59} .. {-35,33}z14
+{-37,35} .. {-69,0}z15
+{-82,0} .. {-48,-39}z16
+{-51,-41} .. {0,-79}z17
+-- z18
+-- z19
+{56,0} .. {20,-9}z20
+{19,-10} .. {0,-26}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(8,774FX#,652FY#,0FY#);
+"Th";
+z1=(656FX,342FY);
+z2=(656FX,401FY);
+z3=(557FX,401FY);
+z4=(557FX,421FY);
+z5=(513FX,569FY);
+z6=(417FX,636FY);
+z7=(323FX,652FY);
+z8=(197FX,620FY);
+z9=(69FX,506FY);
+z10=(10FX,284FY);
+z11=(10FX,0FY);
+z12=(95FX,0FY);
+z13=(95FX,255FY);
+z14=(154FX,484FY);
+z15=(339FX,582FY);
+z16=(439FX,546FY);
+z17=(483FX,420FY);
+z18=(483FX,399FY);
+z19=(411FX,399FY);
+z20=(263FX,353FY);
+z21=(227FX,252FY);
+z22=(282FX,132FY);
+z23=(395FX,84FY);
+z24=(514FX,131FY);
+z25=(557FX,278FY);
+z26=(557FX,342FY);
+z27=(483FX,277FY);
+z28=(464FX,174FY);
+z29=(393FX,147FY);
+z30=(323FX,173FY);
+z31=(294FX,249FY);
+z32=(330FX,326FY);
+z33=(413FX,342FY);
+z34=(483FX,342FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,61} .. {-30,38}z5
+{-23,30} .. {-41,14}z6
+{-30,11} .. {-33,0}z7
+{-40,0} .. {-44,-21}z8
+{-54,-27} .. {-32,-49}z9
+{-39,-60} .. {0,-88}z10
+-- z11
+-- z12
+-- z13
+{0,94} .. {40,59}z14
+{43,66} .. {80,0}z15
+{42,0} .. {25,-24}z16
+{29,-28} .. {0,-56}z17
+-- z18
+-- z19
+{-68,0} .. {-31,-31}z20
+{-24,-24} .. {0,-43}z21
+{0,-46} .. {36,-34}z22
+{34,-32} .. {41,0}z23
+{52,0} .. {27,32}z24
+{29,33} .. {0,65}z25
+-- z26
+);
+FuF (z27
+{0,-50} .. {-13,-19}z28
+{-12,-18} .. {-35,0}z29
+{-28,0} .. {-18,17}z30
+{-19,18} .. {0,32}z31
+{0,37} .. {24,14}z32
+{17,11} .. {38,0}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(9,716FX#,646FY#,0FY#);
+"Zh";
+z1=(568FX,331FY);
+z2=(568FX,399FY);
+z3=(560FX,399FY);
+z4=(549FX,399FY);
+z5=(544FX,399FY);
+z6=(538FX,399FY);
+z7=(530FX,399FY);
+z8=(521FX,399FY);
+z9=(510FX,399FY);
+z10=(497FX,399FY);
+z11=(483FX,399FY);
+z12=(459FX,399FY);
+z13=(442FX,399FY);
+z14=(442FX,646FY);
+z15=(358FX,646FY);
+z16=(358FX,401FY);
+z17=(231FX,401FY);
+z18=(141FX,388FY);
+z19=(51FX,333FY);
+z20=(10FX,210FY);
+z21=(23FX,103FY);
+z22=(83FX,28FY);
+z23=(227FX,0FY);
+z24=(389FX,47FY);
+z25=(442FX,207FY);
+z26=(442FX,331FY);
+z27=(358FX,179FY);
+z28=(324FX,96FY);
+z29=(257FX,81FY);
+z30=(244FX,81FY);
+z31=(227FX,81FY);
+z32=(120FX,103FY);
+z33=(93FX,209FY);
+z34=(131FX,303FY);
+z35=(259FX,331FY);
+z36=(358FX,331FY);
+FuF (z1
+-- z2
+{-2,0} .. {-3,0}z3
+{-3,0} .. {-4,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{-5,0} .. {-11,0}z12
+{-10,0} .. {-1,0}z13
+-- z14
+-- z15
+-- z16
+-- z17
+{-32,0} .. {-28,-8}z18
+{-38,-12} .. {-22,-25}z19
+{-27,-31} .. {0,-51}z20
+{0,-46} .. {9,-25}z21
+{10,-33} .. {30,-17}z22
+{33,-19} .. {63,0}z23
+{75,0} .. {33,31}z24
+{36,32} .. {0,74}z25
+-- z26
+);
+FuF (z27
+{0,-40} .. {-22,-15}z28
+{-15,-10} .. {-29,0}z29
+{-1,0} .. {-8,0}z30
+{-8,0} .. {-3,0}z31
+{-55,0} .. {-16,15}z32
+{-18,15} .. {0,55}z33
+{0,44} .. {26,19}z34
+{26,18} .. {60,0}z35
+-- z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(10,615FX#,655FY#,0FY#);
+"Sh";
+z1=(562FX,233FY);
+z2=(463FX,233FY);
+z3=(434FX,129FY);
+z4=(368FX,86FY);
+z5=(294FX,78FY);
+z6=(152FX,129FY);
+z7=(90FX,265FY);
+z8=(146FX,407FY);
+z9=(263FX,484FY);
+z10=(359FX,531FY);
+z11=(391FX,528FY);
+z12=(439FX,524FY);
+z13=(481FX,530FY);
+z14=(509FX,548FY);
+z15=(531FX,631FY);
+z16=(482FX,605FY);
+z17=(427FX,597FY);
+z18=(341FX,612FY);
+z19=(245FX,641FY);
+z20=(168FX,655FY);
+z21=(95FX,649FY);
+z22=(54FX,626FY);
+z23=(37FX,555FY);
+z24=(89FX,572FY);
+z25=(154FX,578FY);
+z26=(218FX,571FY);
+z27=(264FX,554FY);
+z28=(158FX,495FY);
+z29=(56FX,418FY);
+z30=(10FX,291FY);
+z31=(76FX,87FY);
+z32=(284FX,0FY);
+z33=(486FX,48FY);
+z34=(562FX,233FY);
+FuF (z1
+-- z2
+{0,-44} .. {-20,-25}z3
+{-15,-21} .. {-29,-8}z4
+{-19,-5} .. {-31,0}z5
+{-55,0} .. {-40,34}z6
+{-41,36} .. {0,55}z7
+{0,55} .. {37,40}z8
+{26,27} .. {52,25}z9
+{61,29} .. {3,2}z10
+{2,0} .. {19,-2}z11
+{19,-3} .. {13,0}z12
+{16,0} .. {12,4}z13
+{13,3} .. {6,9}z14
+-- z15
+{-16,-12} .. {-17,-5}z16
+{-17,-5} .. {-20,0}z17
+{-25,0} .. {-32,10}z18
+{-33,9} .. {-31,10}z19
+{-31,9} .. {-20,0}z20
+{-31,0} .. {-17,-4}z21
+{-18,-4} .. {-10,-12}z22
+-- z23
+{15,8} .. {20,3}z24
+{20,4} .. {24,0}z25
+{23,0} .. {20,-5}z26
+{20,-4} .. {11,-7}z27
+{-36,-20} .. {-35,-20}z28
+{-46,-25} .. {-22,-26}z29
+{-30,-36} .. {0,-49}z30
+{0,-83} .. {44,-53}z31
+{48,-58} .. {90,0}z32
+{91,0} .. {44,32}z33
+{51,36} .. {0,87}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(11,586FX#,646FY#,0FY#);
+"Ch";
+z1=(534FX,401FY);
+z2=(480FX,574FY);
+z3=(278FX,646FY);
+z4=(96FX,572FY);
+z5=(10FX,387FY);
+z6=(10FX,370FY);
+z7=(95FX,370FY);
+z8=(158FX,529FY);
+z9=(294FX,574FY);
+z10=(407FX,526FY);
+z11=(441FX,399FY);
+z12=(391FX,255FY);
+z13=(276FX,141FY);
+z14=(152FX,96FY);
+z15=(86FX,132FY);
+z16=(19FX,87FY);
+z17=(188FX,0FY);
+z18=(340FX,0FY);
+z19=(230FX,50FY);
+z20=(330FX,91FY);
+z21=(466FX,210FY);
+z22=(534FX,401FY);
+FuF (z1
+{0,74} .. {-36,41}z2
+{-43,48} .. {-92,0}z3
+{-68,0} .. {-54,-49}z4
+{-57,-51} .. {0,-72}z5
+-- z6
+-- z7
+{0,71} .. {42,35}z8
+{35,30} .. {56,0}z9
+{50,0} .. {25,-32}z10
+{23,-29} .. {0,-55}z11
+{0,-46} .. {-33,-50}z12
+{-31,-45} .. {-46,-31}z13
+{-45,-30} .. {-38,0}z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{21,0} .. {46,27}z20
+{56,33} .. {35,46}z21
+{46,59} .. {0,68}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(12,723FX#,652FY#,0FY#);
+"Rhard";
+z1=(614FX,189FY);
+z2=(681FX,190FY);
+z3=(656FX,265FY);
+z4=(554FX,297FY);
+z5=(491FX,297FY);
+z6=(491FX,401FY);
+z7=(449FX,565FY);
+z8=(355FX,637FY);
+z9=(264FX,653FY);
+z10=(140FX,632FY);
+z11=(47FX,555FY);
+z12=(10FX,401FY);
+z13=(10FX,0FY);
+z14=(94FX,0FY);
+z15=(94FX,398FY);
+z16=(136FX,533FY);
+z17=(253FX,585FY);
+z18=(359FX,541FY);
+z19=(408FX,394FY);
+z20=(408FX,0FY);
+z21=(491FX,0FY);
+z22=(491FX,237FY);
+z23=(514FX,237FY);
+z24=(595FX,231FY);
+z25=(614FX,189FY);
+FuF (z1
+-- z2
+{0,33} .. {-17,17}z3
+{-21,21} .. {-47,0}z4
+-- z5
+-- z6
+{0,69} .. {-28,41}z7
+{-23,34} .. {-40,14}z8
+{-27,11} .. {-33,0}z9
+{-47,0} .. {-36,-14}z10
+{-40,-16} .. {-22,-35}z11
+{-24,-39} .. {0,-63}z12
+-- z13
+-- z14
+-- z15
+{0,56} .. {28,34}z16
+{29,34} .. {49,0}z17
+{43,0} .. {28,-29}z18
+{33,-34} .. {0,-64}z19
+-- z20
+-- z21
+-- z22
+-- z23
+{46,0} .. {8,-4}z24
+{7,-4} .. {5,-24}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(13,779FX#,713FY#,0FY#);
+"Ts";
+z1=(722FX,533FY);
+z2=(698FX,609FY);
+z3=(639FX,643FY);
+z4=(560FX,651FY);
+z5=(186FX,651FY);
+z6=(94FX,666FY);
+z7=(75FX,714FY);
+z8=(0FX,714FY);
+z9=(26FX,625FY);
+z10=(92FX,588FY);
+z11=(177FX,582FY);
+z12=(119FX,481FY);
+z13=(93FX,330FY);
+z14=(116FX,174FY);
+z15=(195FX,50FY);
+z16=(338FX,0FY);
+z17=(522FX,76FY);
+z18=(588FX,326FY);
+z19=(568FX,472FY);
+z20=(525FX,551FY);
+z21=(487FX,585FY);
+z22=(509FX,585FY);
+z23=(622FX,578FY);
+z24=(650FX,533FY);
+z25=(506FX,315FY);
+z26=(465FX,139FY);
+z27=(342FX,61FY);
+z28=(265FX,86FY);
+z29=(202FX,171FY);
+z30=(176FX,330FY);
+z31=(191FX,449FY);
+z32=(240FX,552FY);
+z33=(337FX,595FY);
+z34=(446FX,548FY);
+z35=(494FX,438FY);
+z36=(506FX,315FY);
+FuF (z1
+{0,32} .. {-16,18}z2
+{-13,16} .. {-26,6}z3
+{-20,6} .. {-33,0}z4
+-- z5
+{-46,0} .. {-15,10}z6
+{-13,8} .. {0,24}z7
+-- z8
+{0,-39} .. {17,-21}z9
+{16,-18} .. {28,-7}z10
+{20,-4} .. {37,0}z11
+{-25,-31} .. {-13,-37}z12
+{-18,-45} .. {0,-56}z13
+{0,-57} .. {15,-47}z14
+{18,-53} .. {35,-30}z15
+{39,-33} .. {56,0}z16
+{81,0} .. {42,51}z17
+{44,54} .. {0,113}z18
+{0,56} .. {-13,41}z19
+{-10,31} .. {-18,21}z20
+{-10,12} .. {-15,10}z21
+-- z22
+{60,0} .. {15,-5}z23
+{19,-5} .. {0,-25}z24
+);
+FuF (z25
+{0,-70} .. {-27,-47}z26
+{-30,-52} .. {-52,0}z27
+{-27,0} .. {-24,17}z28
+{-26,19} .. {-15,37}z29
+{-17,42} .. {0,64}z30
+{0,42} .. {10,37}z31
+{11,44} .. {22,24}z32
+{26,29} .. {39,0}z33
+{45,0} .. {28,-32}z34
+{22,-26} .. {10,-47}z35
+{8,-35} .. {0,-47}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(14,728FX#,654FY#,0FY#);
+"Ph";
+z1=(661FX,317FY);
+z2=(609FX,463FY);
+z3=(494FX,530FY);
+z4=(378FX,546FY);
+z5=(378FX,654FY);
+z6=(295FX,654FY);
+z7=(295FX,546FY);
+z8=(83FX,476FY);
+z9=(21FX,330FY);
+z10=(46FX,236FY);
+z11=(133FX,154FY);
+z12=(295FX,119FY);
+z13=(295FX,0FY);
+z14=(378FX,0FY);
+z15=(378FX,119FY);
+z16=(575FX,165FY);
+z17=(661FX,317FY);
+z18=(580FX,317FY);
+z19=(540FX,233FY);
+z20=(432FX,192FY);
+z21=(378FX,192FY);
+z22=(378FX,484FY);
+z23=(392FX,484FY);
+z24=(533FX,438FY);
+z25=(580FX,317FY);
+z26=(295FX,192FY);
+z27=(256FX,192FY);
+z28=(151FX,231FY);
+z29=(109FX,326FY);
+z30=(156FX,442FY);
+z31=(283FX,484FY);
+z32=(295FX,484FY);
+FuF (z1
+{0,60} .. {-35,38}z2
+{-28,30} .. {-49,15}z3
+{-36,11} .. {-41,0}z4
+-- z5
+-- z6
+-- z7
+{-92,0} .. {-49,-47}z8
+{-42,-39} .. {0,-58}z9
+{0,-33} .. {17,-29}z10
+{20,-35} .. {38,-20}z11
+{44,-24} .. {64,0}z12
+-- z13
+-- z14
+-- z15
+{82,0} .. {50,31}z16
+{58,35} .. {0,66}z17
+);
+FuF (z18
+{0,-31} .. {-27,-26}z19
+{-29,-27} .. {-43,0}z20
+-- z21
+-- z22
+-- z23
+{61,0} .. {34,-31}z24
+{31,-30} .. {0,-51}z25
+);
+FuF (z26
+-- z27
+{-42,0} .. {-28,26}z28
+{-28,26} .. {0,37}z29
+{0,49} .. {31,28}z30
+{32,28} .. {53,0}z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(15,652FX#,634FY#,19FY#);
+"Osimple";
+z1=(602FX,306FY);
+z2=(326FX,635FY);
+z3=(50FX,306FY);
+z4=(325FX,-20FY);
+z5=(602FX,306FY);
+z6=(326FX,38FY);
+z7=(129FX,319FY);
+z8=(325FX,578FY);
+z9=(523FX,319FY);
+z10=(326FX,38FY);
+FuF (z1
+{0,186} .. {-148,0}z2
+{-150,0} .. {0,-184}z3
+{0,-188} .. {144,0}z4
+{149,0} .. {0,186}z5
+);
+FuF (z6
+{-104,0} .. {0,170}z7
+{0,163} .. {99,0}z8
+{103,0} .. {0,-159}z9
+{0,-173} .. {-101,0}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(19,600FX#,646FY#,0FY#);
+"dz";
+z1=(412FX,4FY);
+z2=(487FX,4FY);
+z3=(428FX,137FY);
+z4=(344FX,296FY);
+z5=(265FX,392FY);
+z6=(296FX,439FY);
+z7=(324FX,484FY);
+z8=(350FX,537FY);
+z9=(288FX,572FY);
+z10=(242FX,600FY);
+z11=(223FX,611FY);
+z12=(259FX,647FY);
+z13=(185FX,647FY);
+z14=(138FX,598FY);
+z15=(175FX,580FY);
+z16=(215FX,555FY);
+z17=(263FX,525FY);
+z18=(182FX,413FY);
+z19=(70FX,278FY);
+z20=(13FX,104FY);
+z21=(13FX,85FY);
+z22=(58FX,19FY);
+z23=(169FX,0FY);
+z24=(283FX,12FY);
+z25=(391FX,39FY);
+z26=(357FX,105FY);
+z27=(289FX,87FY);
+z28=(214FX,68FY);
+z29=(160FX,61FY);
+z30=(108FX,73FY);
+z31=(90FX,124FY);
+z32=(90FX,130FY);
+z33=(114FX,202FY);
+z34=(164FX,281FY);
+z35=(205FX,330FY);
+z36=(212FX,331FY);
+z37=(269FX,280FY);
+z38=(357FX,105FY);
+FuF (z1
+-- z2
+{-13,35} .. {-26,53}z3
+{-30,63} .. {-26,43}z4
+{-33,53} .. {-20,11}z5
+{16,24} .. {5,7}z6
+{12,20} .. {6,10}z7
+{8,16} .. {9,20}z8
+{-22,12} .. {-19,11}z9
+{-10,6} .. {-20,13}z10
+{-7,3} .. {-6,4}z11
+-- z12
+-- z13
+-- z14
+{12,-5} .. {13,-7}z15
+{8,-5} .. {19,-12}z16
+{24,-15} .. {8,-5}z17
+{-9,-25} .. {-45,-49}z18
+{-56,-62} .. {-18,-28}z19
+{-38,-58} .. {0,-58}z20
+-- z21
+{3,-31} .. {27,-13}z22
+{24,-13} .. {49,0}z23
+{43,0} .. {34,8}z24
+{69,18} .. {3,0}z25
+);
+FuF (z26
+{-22,-6} .. {-23,-5}z27
+{-31,-8} .. {-19,-4}z28
+{-25,-5} .. {-11,0}z29
+{-26,0} .. {-9,8}z30
+{-8,8} .. {-4,26}z31
+{0,2} .. {0,2}z32
+{0,17} .. {16,31}z33
+{14,26} .. {20,27}z34
+{18,25} .. {9,8}z35
+{4,1} .. {1,0}z36
+{17,0} .. {21,-34}z37
+{22,-34} .. {37,-83}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(20,552FX#,428FY#,160FY#);
+"gh";
+z1=(496FX,-161FY);
+z2=(496FX,-93FY);
+z3=(379FX,-93FY);
+z4=(379FX,237FY);
+z5=(323FX,384FY);
+z6=(207FX,428FY);
+z7=(136FX,417FY);
+z8=(85FX,372FY);
+z9=(85FX,428FY);
+z10=(11FX,428FY);
+z11=(11FX,0FY);
+z12=(86FX,0FY);
+z13=(86FX,244FY);
+z14=(117FX,322FY);
+z15=(194FX,354FY);
+z16=(275FX,319FY);
+z17=(304FX,241FY);
+z18=(304FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,64} .. {-37,34}z5
+{-32,29} .. {-46,0}z6
+{-28,0} .. {-19,-7}z7
+{-22,-8} .. {-12,-22}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{0,31} .. {21,21}z14
+{20,21} .. {31,0}z15
+{31,0} .. {23,-23}z16
+{20,-20} .. {0,-32}z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(21,542FX#,646FY#,0FY#);
+"chmute";
+z1=(487FX,15FY);
+z2=(223FX,392FY);
+z3=(302FX,528FY);
+z4=(342FX,568FY);
+z5=(397FX,582FY);
+z6=(397FX,647FY);
+z7=(255FX,583FY);
+z8=(169FX,444FY);
+z9=(99FX,451FY);
+z10=(138FX,399FY);
+z11=(89FX,275FY);
+z12=(36FX,161FY);
+z13=(11FX,66FY);
+z14=(13FX,40FY);
+z15=(22FX,17FY);
+z16=(49FX,8FY);
+z17=(97FX,4FY);
+z18=(212FX,16FY);
+z19=(366FX,61FY);
+z20=(403FX,15FY);
+z21=(321FX,118FY);
+z22=(240FX,91FY);
+z23=(173FX,76FY);
+z24=(145FX,71FY);
+z25=(114FX,67FY);
+z26=(89FX,89FY);
+z27=(107FX,154FY);
+z28=(181FX,326FY);
+FuF (z1
+-- z2
+-- z3
+{12,21} .. {13,6}z4
+{10,5} .. {27,4}z5
+-- z6
+{-60,0} .. {-35,-42}z7
+{-29,-47} .. {-29,-46}z8
+-- z9
+-- z10
+{-9,-34} .. {-23,-49}z11
+{-34,-74} .. {-1,-3}z12
+{-17,-40} .. {0,-23}z13
+{0,-10} .. {1,-7}z14
+{1,-7} .. {5,-8}z15
+{5,-4} .. {13,-2}z16
+{13,-3} .. {19,0}z17
+{35,0} .. {42,8}z18
+{51,10} .. {52,20}z19
+-- z20
+);
+FuF (z21
+{-13,-7} .. {-41,-11}z22
+{-29,-7} .. {-16,-3}z23
+{-6,-1} .. {-12,-2}z24
+{-13,-3} .. {-8,0}z25
+{-17,0} .. {0,15}z26
+{0,14} .. {12,29}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(22,405FX#,672FY#,71FY#);
+"esimple";
+z1=(350FX,365FY);
+z2=(350FX,427FY);
+z3=(86FX,427FY);
+z4=(86FX,672FY);
+z5=(11FX,672FY);
+z6=(11FX,0FY);
+z7=(150FX,0FY);
+z8=(238FX,-19FY);
+z9=(261FX,-71FY);
+z10=(332FX,-71FY);
+z11=(273FX,33FY);
+z12=(157FX,64FY);
+z13=(86FX,64FY);
+z14=(86FX,365FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{42,0} .. {17,-12}z8
+{13,-11} .. {2,-24}z9
+-- z10
+{0,44} .. {-39,25}z11
+{-33,21} .. {-44,0}z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(23,477FX#,428FY#,159FY#);
+"article";
+z1=(422FX,-96FY);
+z2=(86FX,-96FY);
+z3=(86FX,271FY);
+z4=(115FX,330FY);
+z5=(201FX,354FY);
+z6=(278FX,334FY);
+z7=(304FX,254FY);
+z8=(304FX,0FY);
+z9=(379FX,0FY);
+z10=(379FX,289FY);
+z11=(326FX,393FY);
+z12=(228FX,429FY);
+z13=(158FX,422FY);
+z14=(86FX,378FY);
+z15=(86FX,428FY);
+z16=(11FX,428FY);
+z17=(11FX,-160FY);
+z18=(422FX,-160FY);
+FuF (z1
+-- z2
+-- z3
+{0,24} .. {19,15}z4
+{21,16} .. {36,0}z5
+{35,0} .. {16,-13}z6
+{18,-16} .. {0,-38}z7
+-- z8
+-- z9
+-- z10
+{0,42} .. {-35,27}z11
+{-30,24} .. {-35,0}z12
+{-31,0} .. {-16,-4}z13
+{-23,-7} .. {-25,-22}z14
+-- z15
+-- z16
+-- z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(24,583FX#,428FY#,160FY#);
+"th";
+z1=(466FX,280FY);
+z2=(418FX,383FY);
+z3=(262FX,428FY);
+z4=(171FX,411FY);
+z5=(84FX,345FY);
+z6=(84FX,427FY);
+z7=(11FX,427FY);
+z8=(11FX,-161FY);
+z9=(84FX,-161FY);
+z10=(84FX,230FY);
+z11=(103FX,283FY);
+z12=(161FX,342FY);
+z13=(263FX,370FY);
+z14=(373FX,350FY);
+z15=(407FX,280FY);
+z16=(338FX,280FY);
+z17=(211FX,238FY);
+z18=(169FX,142FY);
+z19=(198FX,46FY);
+z20=(304FX,0FY);
+z21=(422FX,46FY);
+z22=(466FX,156FY);
+z23=(466FX,230FY);
+z24=(539FX,230FY);
+z25=(539FX,280FY);
+z26=(407FX,165FY);
+z27=(371FX,72FY);
+z28=(308FX,53FY);
+z29=(252FX,74FY);
+z30=(226FX,124FY);
+z31=(258FX,203FY);
+z32=(357FX,230FY);
+z33=(407FX,230FY);
+FuF (z1
+{0,42} .. {-32,26}z2
+{-36,30} .. {-68,0}z3
+{-34,0} .. {-27,-12}z4
+{-32,-13} .. {-26,-31}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,14} .. {13,21}z11
+{15,24} .. {24,15}z12
+{30,19} .. {38,0}z13
+{51,0} .. {22,-13}z14
+{23,-13} .. {0,-33}z15
+-- z16
+{-55,0} .. {-30,-28}z17
+{-28,-25} .. {0,-39}z18
+{0,-39} .. {19,-25}z19
+{23,-31} .. {47,0}z20
+{48,0} .. {31,31}z21
+{29,30} .. {0,43}z22
+-- z23
+-- z24
+-- z25
+);
+FuF (z26
+{0,-43} .. {-24,-19}z27
+{-17,-12} .. {-25,0}z28
+{-23,0} .. {-15,14}z29
+{-17,16} .. {0,17}z30
+{0,35} .. {21,18}z31
+{21,18} .. {45,0}z32
+-- z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(25,582FX#,672FY#,0FY#);
+"zh";
+z1=(527FX,364FY);
+z2=(527FX,428FY);
+z3=(423FX,428FY);
+z4=(423FX,672FY);
+z5=(349FX,672FY);
+z6=(349FX,428FY);
+z7=(301FX,428FY);
+z8=(94FX,373FY);
+z9=(11FX,216FY);
+z10=(49FX,78FY);
+z11=(136FX,15FY);
+z12=(233FX,0FY);
+z13=(366FX,37FY);
+z14=(423FX,202FY);
+z15=(423FX,364FY);
+z16=(349FX,170FY);
+z17=(308FX,79FY);
+z18=(235FX,64FY);
+z19=(218FX,64FY);
+z20=(134FX,95FY);
+z21=(88FX,216FY);
+z22=(122FX,309FY);
+z23=(203FX,353FY);
+z24=(305FX,364FY);
+z25=(349FX,364FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{-85,0} .. {-53,-37}z8
+{-55,-39} .. {0,-66}z9
+{0,-57} .. {25,-35}z10
+{21,-29} .. {37,-13}z11
+{29,-10} .. {36,0}z12
+{60,0} .. {29,25}z13
+{38,31} .. {0,79}z14
+-- z15
+);
+FuF (z16
+{0,-44} .. {-27,-17}z17
+{-16,-10} .. {-32,0}z18
+-- z19
+{-32,0} .. {-24,21}z20
+{-30,27} .. {0,53}z21
+{0,39} .. {23,23}z22
+{18,20} .. {35,10}z23
+{29,7} .. {39,0}z24
+-- z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(26,407FX#,428FY#,164FY#);
+"sh";
+z1=(349FX,-154FY);
+z2=(348FX,-76FY);
+z3=(279FX,-91FY);
+z4=(213FX,-96FY);
+z5=(147FX,-90FY);
+z6=(120FX,-74FY);
+z7=(177FX,3FY);
+z8=(283FX,92FY);
+z9=(339FX,250FY);
+z10=(302FX,366FY);
+z11=(185FX,428FY);
+z12=(79FX,393FY);
+z13=(35FX,317FY);
+z14=(26FX,245FY);
+z15=(27FX,231FY);
+z16=(28FX,219FY);
+z17=(99FX,219FY);
+z18=(109FX,310FY);
+z19=(178FX,355FY);
+z20=(245FX,321FY);
+z21=(263FX,241FY);
+z22=(197FX,120FY);
+z23=(76FX,5FY);
+z24=(11FX,-96FY);
+z25=(61FX,-145FY);
+z26=(201FX,-163FY);
+z27=(206FX,-163FY);
+z28=(211FX,-163FY);
+z29=(233FX,-164FY);
+z30=(261FX,-165FY);
+z31=(301FX,-162FY);
+z32=(349FX,-154FY);
+FuF (z1
+-- z2
+{-23,-7} .. {-23,-3}z3
+{-23,-4} .. {-21,0}z4
+{-27,0} .. {-17,4}z5
+{-18,5} .. {0,6}z6
+{0,23} .. {38,29}z7
+{55,41} .. {15,18}z8
+{37,44} .. {0,62}z9
+{0,42} .. {-25,35}z10
+{-29,41} .. {-49,0}z11
+{-44,0} .. {-26,-23}z12
+{-20,-18} .. {-9,-32}z13
+{-6,-22} .. {0,-26}z14
+{0,-4} .. {0,-6}z15
+{0,-5} .. {1,-3}z16
+-- z17
+{0,43} .. {7,18}z18
+{11,30} .. {35,0}z19
+{31,0} .. {14,-23}z20
+{12,-19} .. {0,-34}z21
+{0,-34} .. {-45,-46}z22
+{-39,-39} .. {-40,-38}z23
+{-43,-43} .. {0,-25}z24
+{0,-21} .. {33,-11}z25
+{34,-12} .. {60,0}z26
+{2,0} .. {1,0}z27
+{2,0} .. {1,0}z28
+{5,0} .. {10,0}z29
+{9,0} .. {10,0}z30
+{11,0} .. {15,2}z31
+{15,2} .. {17,4}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(27,333FX#,428FY#,166FY#);
+"ch";
+z1=(278FX,-152FY);
+z2=(279FX,-92FY);
+z3=(234FX,-101FY);
+z4=(184FX,-106FY);
+z5=(146FX,-99FY);
+z6=(132FX,-76FY);
+z7=(168FX,-11FY);
+z8=(233FX,60FY);
+z9=(268FX,169FY);
+z10=(235FX,234FY);
+z11=(174FX,272FY);
+z12=(141FX,308FY);
+z13=(181FX,364FY);
+z14=(241FX,428FY);
+z15=(156FX,428FY);
+z16=(85FX,347FY);
+z17=(58FX,297FY);
+z18=(93FX,250FY);
+z19=(157FX,219FY);
+z20=(192FX,154FY);
+z21=(153FX,71FY);
+z22=(81FX,7FY);
+z23=(43FX,-78FY);
+z24=(60FX,-124FY);
+z25=(100FX,-155FY);
+z26=(131FX,-164FY);
+z27=(168FX,-166FY);
+z28=(243FX,-159FY);
+z29=(278FX,-152FY);
+FuF (z1
+-- z2
+{-20,-4} .. {-10,-2}z3
+{-20,-3} .. {-13,0}z4
+{-16,0} .. {-9,5}z5
+{-10,5} .. {0,11}z6
+{0,19} .. {24,25}z7
+{36,38} .. {7,9}z8
+{23,33} .. {0,39}z9
+{0,25} .. {-22,19}z10
+{-5,4} .. {-35,21}z11
+{-22,13} .. {0,11}z12
+{0,6} .. {27,31}z13
+{15,16} .. {25,27}z14
+-- z15
+{-26,-22} .. {-22,-32}z16
+{-18,-26} .. {0,-7}z17
+{0,-19} .. {24,-12}z18
+{21,-10} .. {22,-10}z19
+{23,-16} .. {0,-28}z20
+{0,-29} .. {-26,-26}z21
+{-24,-22} .. {-23,-23}z22
+{-26,-25} .. {0,-31}z23
+{0,-17} .. {12,-14}z24
+{10,-13} .. {17,-7}z25
+{9,-4} .. {11,-2}z26
+{11,-1} .. {13,0}z27
+{22,0} .. {28,5}z28
+{9,2} .. {14,3}z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(28,523FX#,428FY#,0FY#);
+"rhard";
+z1=(466FX,64FY);
+z2=(317FX,64FY);
+z3=(381FX,153FY);
+z4=(405FX,218FY);
+z5=(409FX,259FY);
+z6=(347FX,386FY);
+z7=(215FX,428FY);
+z8=(131FX,416FY);
+z9=(71FX,385FY);
+z10=(71FX,428FY);
+z11=(11FX,428FY);
+z12=(11FX,0FY);
+z13=(86FX,0FY);
+z14=(86FX,273FY);
+z15=(125FX,336FY);
+z16=(214FX,359FY);
+z17=(301FX,336FY);
+z18=(335FX,259FY);
+z19=(315FX,181FY);
+z20=(272FX,105FY);
+z21=(231FX,43FY);
+z22=(231FX,0FY);
+z23=(466FX,0FY);
+FuF (z1
+-- z2
+{28,31} .. {15,28}z3
+{12,22} .. {4,21}z4
+{3,13} .. {0,15}z5
+{0,53} .. {-42,31}z6
+{-36,28} .. {-52,0}z7
+{-28,0} .. {-28,-8}z8
+{-28,-9} .. {-12,-12}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{0,26} .. {26,16}z15
+{24,15} .. {35,0}z16
+{38,0} .. {20,-15}z17
+{23,-16} .. {0,-35}z18
+{0,-22} .. {-14,-30}z19
+{-10,-22} .. {-18,-29}z20
+{-14,-21} .. {-13,-20}z21
+-- z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(29,492FX#,632FY#,0FY#);
+"ts";
+z1=(437FX,234FY);
+z2=(374FX,396FY);
+z3=(240FX,527FY);
+z4=(119FX,632FY);
+z5=(24FX,632FY);
+z6=(114FX,551FY);
+z7=(189FX,485FY);
+z8=(228FX,436FY);
+z9=(72FX,379FY);
+z10=(11FX,241FY);
+z11=(59FX,71FY);
+z12=(237FX,0FY);
+z13=(376FX,64FY);
+z14=(437FX,234FY);
+z15=(361FX,226FY);
+z16=(323FX,104FY);
+z17=(218FX,66FY);
+z18=(130FX,99FY);
+z19=(85FX,203FY);
+z20=(121FX,322FY);
+z21=(232FX,370FY);
+z22=(318FX,346FY);
+z23=(361FX,226FY);
+FuF (z1
+{0,53} .. {-42,54}z2
+{-28,36} .. {-61,51}z3
+{-68,56} .. {-13,14}z4
+-- z5
+{24,-24} .. {36,-30}z6
+{39,-34} .. {10,-11}z7
+{22,-21} .. {4,-12}z8
+{-63,0} .. {-41,-38}z9
+{-41,-37} .. {0,-55}z10
+{0,-73} .. {32,-40}z11
+{37,-47} .. {81,0}z12
+{54,0} .. {38,43}z13
+{41,45} .. {0,69}z14
+);
+FuF (z15
+{0,-54} .. {-26,-27}z16
+{-24,-26} .. {-46,0}z17
+{-33,0} .. {-25,22}z18
+{-30,26} .. {0,44}z19
+{0,49} .. {24,30}z20
+{26,32} .. {48,0}z21
+{37,0} .. {20,-16}z22
+{29,-23} .. {0,-57}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(30,684FX#,662FY#,160FY#);
+"ph";
+z1=(629FX,0FY);
+z2=(629FX,317FY);
+z3=(569FX,409FY);
+z4=(482FX,441FY);
+z5=(419FX,431FY);
+z6=(365FX,407FY);
+z7=(365FX,663FY);
+z8=(290FX,663FY);
+z9=(290FX,150FY);
+z10=(260FX,83FY);
+z11=(183FX,62FY);
+z12=(105FX,95FY);
+z13=(86FX,186FY);
+z14=(86FX,427FY);
+z15=(11FX,427FY);
+z16=(11FX,185FY);
+z17=(52FX,38FY);
+z18=(161FX,-9FY);
+z19=(241FX,-3FY);
+z20=(290FX,18FY);
+z21=(290FX,-161FY);
+z22=(365FX,-161FY);
+z23=(365FX,286FY);
+z24=(388FX,347FY);
+z25=(455FX,367FY);
+z26=(530FX,338FY);
+z27=(555FX,269FY);
+z28=(555FX,0FY);
+FuF (z1
+-- z2
+{0,35} .. {-40,27}z3
+{-33,21} .. {-25,0}z4
+{-21,0} .. {-21,-7}z5
+{-22,-6} .. {-14,-10}z6
+-- z7
+-- z8
+-- z9
+{0,-29} .. {-20,-15}z10
+{-18,-14} .. {-33,0}z11
+{-37,0} .. {-15,22}z12
+{-13,19} .. {0,42}z13
+-- z14
+-- z15
+-- z16
+{0,-65} .. {27,-33}z17
+{25,-31} .. {47,0}z18
+{35,0} .. {18,4}z19
+{18,4} .. {15,10}z20
+-- z21
+-- z22
+-- z23
+{0,27} .. {16,14}z24
+{15,13} .. {29,0}z25
+{32,0} .. {18,-19}z26
+{17,-18} .. {0,-28}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(31,473FX#,436FY#,10FY#);
+"osimple";
+z1=(444FX,208FY);
+z2=(237FX,437FY);
+z3=(28FX,208FY);
+z4=(236FX,-10FY);
+z5=(444FX,208FY);
+z6=(236FX,50FY);
+z7=(102FX,218FY);
+z8=(236FX,379FY);
+z9=(371FX,218FY);
+z10=(236FX,50FY);
+FuF (z1
+{0,127} .. {-113,0}z2
+{-117,0} .. {0,-125}z3
+{0,-125} .. {111,0}z4
+{114,0} .. {0,123}z5
+);
+FuF (z6
+{-65,0} .. {0,115}z7
+{0,115} .. {62,0}z8
+{66,0} .. {0,-112}z9
+{0,-112} .. {-70,0}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(32,620FX#,635FY#,16FY#);
+"ev";
+z1=(481FX,64FY);
+z2=(365FX,64FY);
+z3=(365FX,428FY);
+z4=(290FX,428FY);
+z5=(290FX,161FY);
+z6=(263FX,83FY);
+z7=(185FX,56FY);
+z8=(112FX,89FY);
+z9=(86FX,172FY);
+z10=(86FX,635FY);
+z11=(11FX,635FY);
+z12=(11FX,197FY);
+z13=(56FX,38FY);
+z14=(185FX,-17FY);
+z15=(254FX,-3FY);
+z16=(293FX,28FY);
+z17=(293FX,0FY);
+z18=(481FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-35} .. {-18,-17}z6
+{-18,-18} .. {-34,0}z7
+{-31,0} .. {-18,22}z8
+{-17,21} .. {0,34}z9
+-- z10
+-- z11
+-- z12
+{0,-70} .. {30,-36}z13
+{30,-36} .. {56,0}z14
+{30,0} .. {16,9}z15
+{13,10} .. {13,10}z16
+-- z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(127,473FX#,707FY#,0FY#);
+"question";
+z1=(55FX,654FY);
+z2=(61FX,638FY);
+z3=(79FX,589FY);
+z4=(91FX,598FY);
+z5=(112FX,613FY);
+z6=(162FX,635FY);
+z7=(216FX,643FY);
+z8=(289FX,632FY);
+z9=(330FX,589FY);
+z10=(335FX,556FY);
+z11=(320FX,498FY);
+z12=(312FX,489FY);
+z13=(302FX,480FY);
+z14=(293FX,472FY);
+z15=(265FX,442FY);
+z16=(231FX,394FY);
+z17=(207FX,342FY);
+z18=(191FX,284FY);
+z19=(188FX,246FY);
+z20=(187FX,184FY);
+z21=(188FX,178FY);
+z22=(191FX,176FY);
+z23=(250FX,176FY);
+z24=(257FX,183FY);
+z25=(257FX,216FY);
+z26=(257FX,238FY);
+z27=(289FX,346FY);
+z28=(342FX,415FY);
+z29=(365FX,435FY);
+z30=(386FX,456FY);
+z31=(402FX,483FY);
+z32=(416FX,544FY);
+z33=(403FX,615FY);
+z34=(365FX,666FY);
+z35=(308FX,697FY);
+z36=(235FX,707FY);
+z37=(139FX,695FY);
+z38=(55FX,654FY);
+z39=(179FX,86FY);
+z40=(179FX,0FY);
+z41=(265FX,0FY);
+z42=(265FX,86FY);
+FuF (z1
+-- z2
+-- z3
+{2,1} .. {6,5}z4
+{5,3} .. {9,7}z5
+{15,9} .. {19,6}z6
+{19,5} .. {17,0}z7
+{29,0} .. {20,-7}z8
+{20,-7} .. {7,-22}z9
+{3,-11} .. {0,-11}z10
+{0,-24} .. {-10,-15}z11
+{-3,-3} .. {-3,-3}z12
+{-2,-2} .. {-4,-4}z13
+{-4,-3} .. {-2,-2}z14
+{-14,-13} .. {-5,-7}z15
+{-13,-16} .. {-9,-16}z16
+{-9,-17} .. {-7,-18}z17
+{-7,-18} .. {-4,-21}z18
+{-2,-18} .. {0,-8}z19
+-- z20
+{0,-3} .. {1,-1}z21
+{0,-1} .. {2,-1}z22
+-- z23
+{4,0} .. {0,5}z24
+-- z25
+-- z26
+{0,34} .. {21,38}z27
+{14,26} .. {21,19}z28
+{7,7} .. {8,7}z29
+{8,7} .. {6,7}z30
+{5,7} .. {5,11}z31
+{9,19} .. {0,22}z32
+{0,27} .. {-9,21}z33
+{-9,21} .. {-16,13}z34
+{-16,13} .. {-22,7}z35
+{-23,7} .. {-26,0}z36
+{-36,0} .. {-28,-8}z37
+{-28,-9} .. {-28,-19}z38
+);
+FuF (z39
+-- z40
+-- z41
+-- z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+% ligatures e' ev
+ligtable 101:
+39=:22,
+118=:32;
+
+% ligatures E'
+ligtable 69:
+39=:6;
+
+
+% ligature u'
+ligtable 117:
+39=:23;
+
+% ligature U'
+ligtable 85:
+39=:7;
+
+
+% ligatures t' th
+ligtable 116:
+39=:24,
+104=:24;
+
+% ligatures T' Th TH
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+
+% ligature dz
+ligtable 100:
+122=:19;
+
+% ligatures Dz DZ
+ligtable 68:
+122=:3,
+90=:3;
+
+
+% ligatures g' gh
+ligtable 103:
+39=:25,
+104=:20;
+
+% ligatures G' Gh GH
+ligtable 71:
+39=:9,
+104=:4,
+72=:4;
+
+
+% ligature j'
+ligtable 106:
+39=:21;
+
+% ligature J'
+ligtable 74:
+39=:5;
+
+
+% ligature sh
+ligtable 115:
+104=:26;
+
+% ligatures Sh SH
+ligtable 83:
+104=:10,
+72=:10;
+
+
+% ligatures c' ch
+ligtable 99:
+39=:29,
+104=:27;
+
+% ligatures C' Ch CH
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+
+% ligature r'
+ligtable 114:
+39=:28;
+
+% ligature R'
+ligtable 82:
+39=:12;
+
+
+% ligatures p' ph
+ligtable 112:
+39=:30,
+104=:30;
+
+% ligatures P' Ph PH
+ligtable 80:
+39=:14,
+104=:14,
+72=:14;
+
+
+% ligature o'
+ligtable 111:
+39=:31;
+
+% ligature O'
+ligtable 79:
+39=:15,
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+% ligature ''
+ligtable 39:
+39=:34;
+
+% ligature ``
+ligtable 96:
+96=:92;
+
+% ligature <<
+ligtable 60:
+60=:60;
+
+% ligature >>
+ligtable 62:
+62=:62;
+
+% ligature --
+ligtable 45:
+45=:123;
+
+
+% ligature ---
+ligtable 123:
+45=:125;
+
+
+% spacing for U'
+ligtable 7:
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+
+% spacing for O'
+ligtable 15:
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+
+% spacing for ev
+ligtable 32:
+63 kern -110FX#,
+33 kern -110FX#,
+124 kern -110FX#;
+
+
+% spacing for harcakan nshan
+ligtable 63:
+"a" kern -78FX#,
+"b" kern -78FX#,
+"g" kern -78FX#,
+"d" kern -78FX#,
+"z" kern -78FX#,
+23 kern -78FX#,
+25 kern -78FX#,
+"l" kern -78FX#,
+19 kern -78FX#,
+20 kern -78FX#,
+21 kern -78FX#,
+"m" kern -78FX#,
+"y" kern -138FX#,
+26 kern -78FX#,
+"o" kern -78FX#,
+27 kern -78FX#,
+"p" kern -78FX#,
+"j" kern -78FX#,
+28 kern -78FX#,
+"s" kern -78FX#,
+"v" kern -78FX#,
+"r" kern -78FX#,
+"c" kern -78FX#,
+"u" kern -78FX#,
+30 kern -78FX#,
+"q" kern -138FX#,
+31 kern -78FX#,
+"f" kern -78FX#,
+"w" kern -78FX#,
+"B" kern -78FX#,
+"Z" kern -78FX#,
+ 7 kern -78FX#,
+ 9 kern -78FX#,
+ 5 kern -78FX#,
+"O" kern -78FX#,
+11 kern -78FX#,
+"P" kern -78FX#,
+"J" kern -78FX#,
+"V" kern -78FX#,
+12 kern -78FX#,
+"R" kern -78FX#,
+"C" kern -78FX#,
+"U" kern -78FX#,
+14 kern -78FX#,
+"Q" kern -78FX#,
+15 kern -78FX#,
+"F" kern -78FX#,
+"H" kern -42FX#,
+"Y" kern -42FX#;
+
+
+% spacing for bacakanchakan nshan
+ligtable 33:
+"a" kern -78FX#,
+"b" kern -78FX#,
+"g" kern -78FX#,
+"d" kern -78FX#,
+"z" kern -78FX#,
+23 kern -78FX#,
+25 kern -78FX#,
+"l" kern -78FX#,
+19 kern -78FX#,
+20 kern -78FX#,
+21 kern -78FX#,
+"m" kern -78FX#,
+"y" kern -138FX#,
+26 kern -78FX#,
+"o" kern -78FX#,
+27 kern -78FX#,
+"p" kern -78FX#,
+"j" kern -78FX#,
+28 kern -78FX#,
+"s" kern -78FX#,
+"v" kern -78FX#,
+"r" kern -78FX#,
+"c" kern -78FX#,
+"u" kern -78FX#,
+30 kern -78FX#,
+"q" kern -138FX#,
+31 kern -78FX#,
+"f" kern -78FX#,
+"w" kern -78FX#,
+"B" kern -78FX#,
+"Z" kern -78FX#,
+ 7 kern -78FX#,
+ 9 kern -78FX#,
+ 5 kern -78FX#,
+"O" kern -78FX#,
+11 kern -78FX#,
+"P" kern -78FX#,
+"J" kern -78FX#,
+"V" kern -78FX#,
+12 kern -78FX#,
+"R" kern -78FX#,
+"C" kern -78FX#,
+"U" kern -78FX#,
+14 kern -78FX#,
+"Q" kern -78FX#,
+15 kern -78FX#,
+"F" kern -78FX#,
+"H" kern -42FX#,
+"Y" kern -42FX#;
+
+font_slant := 0.0000;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "arssr10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/arsssl10.mf b/Master/texmf-dist/fonts/source/public/armenian/arsssl10.mf
new file mode 100644
index 00000000000..683d63b4fb3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/arsssl10.mf
@@ -0,0 +1,6868 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 arsssl10.mf (Armenian SansSerif Slanted 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+currenttransform:=identity slanted 0.1700 yscaled aspect_ratio;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,134FX#,747FY#,0FY#);
+"bacakanchakan";
+z1=(135FX,713FY);
+z2=(143FX,722FY);
+z3=(146FX,732FY);
+z4=(141FX,743FY);
+z5=(130FX,747FY);
+z6=(112FX,740FY);
+z7=(45FX,686FY);
+z8=(-46FX,686FY);
+z9=(-59FX,683FY);
+z10=(-63FX,680FY);
+z11=(-123FX,611FY);
+z12=(-133FX,592FY);
+z13=(-118FX,578FY);
+z14=(-99FX,587FY);
+z15=(-37FX,639FY);
+z16=(54FX,639FY);
+z17=(71FX,644FY);
+FuF (z1
+{4,3} .. {2,3}z2
+{2,3} .. {0,4}z3
+{0,4} .. {-3,2}z4
+{-3,3} .. {-5,0}z5
+{-6,0} .. {-6,-5}z6
+-- z7
+-- z8
+{-3,0} .. {-5,-2}z9
+{-2,-1} .. {0,-1}z10
+-- z11
+{-6,-7} .. {0,-6}z12
+{0,-10} .. {10,0}z13
+{6,0} .. {7,6}z14
+-- z15
+-- z16
+{7,0} .. {4,4}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(34,473FX#,657FY#,0FY#);
+"quotedblright";
+z1=(110FX,580FY);
+z2=(110FX,658FY);
+z3=(31FX,658FY);
+z4=(31FX,579FY);
+z5=(55FX,579FY);
+z6=(31FX,461FY);
+z7=(70FX,461FY);
+z8=(294FX,580FY);
+z9=(294FX,658FY);
+z10=(215FX,658FY);
+z11=(215FX,579FY);
+z12=(239FX,579FY);
+z13=(215FX,461FY);
+z14=(254FX,461FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(35,502FX#,658FY#,10FY#);
+"numbersign";
+z1=(45FX,-11FY);
+z2=(112FX,-11FY);
+z3=(150FX,177FY);
+z4=(289FX,177FY);
+z5=(251FX,-11FY);
+z6=(317FX,-11FY);
+z7=(355FX,177FY);
+z8=(491FX,177FY);
+z9=(491FX,243FY);
+z10=(369FX,243FY);
+z11=(402FX,403FY);
+z12=(491FX,403FY);
+z13=(491FX,469FY);
+z14=(415FX,469FY);
+z15=(453FX,659FY);
+z16=(387FX,659FY);
+z17=(348FX,469FY);
+z18=(209FX,469FY);
+z19=(248FX,659FY);
+z20=(182FX,659FY);
+z21=(143FX,469FY);
+z22=(9FX,469FY);
+z23=(9FX,403FY);
+z24=(130FX,403FY);
+z25=(97FX,243FY);
+z26=(9FX,243FY);
+z27=(9FX,177FY);
+z28=(84FX,177FY);
+z29=(164FX,243FY);
+z30=(196FX,403FY);
+z31=(336FX,403FY);
+z32=(302FX,243FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+-- z26
+-- z27
+-- z28
+);
+FuF (z29
+-- z30
+-- z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(36,502FX#,707FY#,93FY#);
+"dollar";
+z1=(225FX,-93FY);
+z2=(272FX,-93FY);
+z3=(272FX,-13FY);
+z4=(408FX,46FY);
+z5=(460FX,185FY);
+z6=(448FX,254FY);
+z7=(412FX,309FY);
+z8=(352FX,349FY);
+z9=(272FX,373FY);
+z10=(272FX,602FY);
+z11=(333FX,569FY);
+z12=(363FX,497FY);
+z13=(445FX,509FY);
+z14=(382FX,629FY);
+z15=(272FX,669FY);
+z16=(272FX,707FY);
+z17=(225FX,707FY);
+z18=(225FX,669FY);
+z19=(106FX,626FY);
+z20=(46FX,488FY);
+z21=(66FX,403FY);
+z22=(125FX,345FY);
+z23=(225FX,307FY);
+z24=(225FX,53FY);
+z25=(145FX,100FY);
+z26=(112FX,194FY);
+z27=(33FX,180FY);
+z28=(63FX,75FY);
+z29=(128FX,13FY);
+z30=(225FX,-14FY);
+z31=(225FX,603FY);
+z32=(225FX,383FY);
+z33=(148FX,427FY);
+z34=(126FX,495FY);
+z35=(152FX,565FY);
+z36=(225FX,603FY);
+z37=(272FX,53FY);
+z38=(272FX,296FY);
+z39=(357FX,248FY);
+z40=(379FX,179FY);
+z41=(348FX,94FY);
+z42=(272FX,53FY);
+FuF (z1
+-- z2
+-- z3
+{56,3} .. {34,36}z4
+{35,37} .. {0,56}z5
+{0,25} .. {-8,22}z6
+{-8,22} .. {-16,15}z7
+{-16,17} .. {-24,10}z8
+{-14,6} .. {-40,10}z9
+-- z10
+{26,-5} .. {15,-16}z11
+{15,-17} .. {5,-31}z12
+-- z13
+{-8,52} .. {-34,29}z14
+{-27,22} .. {-46,4}z15
+-- z16
+-- z17
+-- z18
+{-53,-6} .. {-26,-23}z19
+{-40,-35} .. {0,-57}z20
+{0,-32} .. {13,-25}z21
+{14,-25} .. {25,-14}z22
+{34,-20} .. {32,-6}z23
+-- z24
+{-31,4} .. {-22,28}z25
+{-16,21} .. {-6,42}z26
+-- z27
+{3,-42} .. {17,-28}z28
+{19,-29} .. {25,-13}z29
+{25,-13} .. {40,-5}z30
+);
+FuF (z31
+-- z32
+{-37,11} .. {-15,18}z33
+{-15,18} .. {0,27}z34
+{0,28} .. {18,19}z35
+{19,21} .. {31,4}z36
+);
+FuF (z37
+-- z38
+{43,-15} .. {14,-18}z39
+{15,-18} .. {0,-28}z40
+{0,-34} .. {-21,-23}z41
+{-20,-23} .. {-31,-4}z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(37,804FX#,658FY#,23FY#);
+"percent";
+z1=(52FX,492FY);
+z2=(91FX,360FY);
+z3=(189FX,317FY);
+z4=(289FX,360FY);
+z5=(329FX,488FY);
+z6=(289FX,615FY);
+z7=(188FX,659FY);
+z8=(88FX,610FY);
+z9=(52FX,492FY);
+z10=(191FX,603FY);
+z11=(241FX,578FY);
+z12=(261FX,490FY);
+z13=(241FX,396FY);
+z14=(191FX,371FY);
+z15=(142FX,396FY);
+z16=(122FX,484FY);
+z17=(141FX,578FY);
+z18=(191FX,603FY);
+z19=(191FX,-24FY);
+z20=(257FX,-24FY);
+z21=(610FX,659FY);
+z22=(545FX,659FY);
+z23=(471FX,152FY);
+z24=(510FX,20FY);
+z25=(608FX,-24FY);
+z26=(708FX,20FY);
+z27=(749FX,147FY);
+z28=(708FX,275FY);
+z29=(608FX,318FY);
+z30=(507FX,270FY);
+z31=(471FX,152FY);
+z32=(610FX,264FY);
+z33=(659FX,238FY);
+z34=(679FX,150FY);
+z35=(659FX,57FY);
+z36=(610FX,31FY);
+z37=(561FX,57FY);
+z38=(541FX,144FY);
+z39=(560FX,238FY);
+z40=(610FX,264FY);
+FuF (z1
+{1,-59} .. {25,-29}z2
+{26,-29} .. {38,0}z3
+{40,0} .. {27,29}z4
+{28,31} .. {0,56}z5
+{0,56} .. {-27,29}z6
+{-26,29} .. {-41,0}z7
+{-44,0} .. {-23,-32}z8
+{-23,-33} .. {0,-46}z9
+);
+FuF (z10
+{20,0} .. {14,-17}z11
+{13,-17} .. {0,-42}z12
+{0,-46} .. {-13,-17}z13
+{-14,-17} .. {-20,0}z14
+{-20,0} .. {-13,17}z15
+{-13,18} .. {0,42}z16
+{0,46} .. {13,16}z17
+{14,17} .. {20,0}z18
+);
+FuF (z19
+-- z20
+-- z21
+-- z22
+);
+FuF (z23
+{0,-59} .. {25,-29}z24
+{26,-29} .. {39,0}z25
+{41,0} .. {26,29}z26
+{28,30} .. {0,55}z27
+{0,57} .. {-27,29}z28
+{-26,29} .. {-41,0}z29
+{-45,0} .. {-23,-32}z30
+{-23,-32} .. {0,-46}z31
+);
+FuF (z32
+{20,0} .. {13,-17}z33
+{14,-17} .. {0,-42}z34
+{0,-46} .. {-14,-17}z35
+{-14,-18} .. {-20,1}z36
+{-20,0} .. {-13,17}z37
+{-13,17} .. {0,41}z38
+{0,46} .. {13,16}z39
+{13,17} .. {20,-1}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(38,697FX#,658FY#,20FY#);
+"ampersand";
+z1=(645FX,57FY);
+z2=(611FX,49FY);
+z3=(558FX,41FY);
+z4=(532FX,40FY);
+z5=(487FX,51FY);
+z6=(460FX,63FY);
+z7=(445FX,73FY);
+z8=(457FX,85FY);
+z9=(467FX,95FY);
+z10=(506FX,139FY);
+z11=(600FX,317FY);
+z12=(606FX,336FY);
+z13=(612FX,357FY);
+z14=(578FX,366FY);
+z15=(551FX,372FY);
+z16=(535FX,324FY);
+z17=(426FX,141FY);
+z18=(400FX,116FY);
+z19=(395FX,119FY);
+z20=(389FX,125FY);
+z21=(362FX,157FY);
+z22=(321FX,210FY);
+z23=(268FX,293FY);
+z24=(258FX,312FY);
+z25=(263FX,319FY);
+z26=(311FX,363FY);
+z27=(398FX,507FY);
+z28=(379FX,591FY);
+z29=(324FX,648FY);
+z30=(281FX,659FY);
+z31=(189FX,613FY);
+z32=(148FX,473FY);
+z33=(154FX,407FY);
+z34=(168FX,345FY);
+z35=(170FX,339FY);
+z36=(173FX,330FY);
+z37=(175FX,322FY);
+z38=(162FX,310FY);
+z39=(109FX,264FY);
+z40=(92FX,250FY);
+z41=(81FX,240FY);
+z42=(50FX,194FY);
+z43=(38FX,141FY);
+z44=(65FX,49FY);
+z45=(142FX,-9FY);
+z46=(199FX,-20FY);
+z47=(290FX,-10FY);
+z48=(352FX,12FY);
+z49=(389FX,31FY);
+z50=(411FX,17FY);
+z51=(450FX,-3FY);
+z52=(542FX,-20FY);
+z53=(599FX,-16FY);
+z54=(644FX,-6FY);
+z55=(645FX,-1FY);
+z56=(233FX,372FY);
+z57=(212FX,459FY);
+z58=(210FX,487FY);
+z59=(212FX,535FY);
+z60=(235FX,582FY);
+z61=(274FX,600FY);
+z62=(319FX,571FY);
+z63=(331FX,516FY);
+z64=(329FX,495FY);
+z65=(270FX,406FY);
+z66=(248FX,385FY);
+z67=(233FX,372FY);
+z68=(202FX,266FY);
+z69=(227FX,221FY);
+z70=(296FX,126FY);
+z71=(320FX,97FY);
+z72=(331FX,87FY);
+z73=(341FX,75FY);
+z74=(303FX,58FY);
+z75=(200FX,40FY);
+z76=(165FX,50FY);
+z77=(125FX,88FY);
+z78=(111FX,142FY);
+z79=(121FX,187FY);
+z80=(134FX,206FY);
+z81=(151FX,223FY);
+z82=(170FX,240FY);
+z83=(179FX,247FY);
+z84=(193FX,259FY);
+z85=(202FX,266FY);
+FuF (z1
+-- z2
+{-21,-5} .. {-14,-1}z3
+-- z4
+{-14,0} .. {-16,7}z5
+{-13,5} .. {-5,3}z6
+-- z7
+{3,3} .. {5,5}z8
+{5,4} .. {2,2}z9
+{15,15} .. {11,14}z10
+{39,50} .. {23,69}z11
+{1,4} .. {3,9}z12
+{3,9} .. {1,5}z13
+-- z14
+-- z15
+-- z16
+{-24,-76} .. {-47,-46}z17
+{-16,-16} .. {-1,0}z18
+{-1,0} .. {-2,2}z19
+{-2,1} .. {-2,2}z20
+-- z21
+-- z22
+{-24,31} .. {-12,24}z23
+{-6,10} .. {0,3}z24
+{0,2} .. {3,3}z25
+-- z26
+{60,54} .. {0,40}z27
+{0,30} .. {-12,26}z28
+{-12,26} .. {-25,12}z29
+{-15,7} .. {-14,0}z30
+{-39,0} .. {-22,-30}z31
+{-27,-36} .. {0,-58}z32
+{0,-23} .. {4,-21}z33
+{4,-24} .. {4,-17}z34
+{1,-1} .. {1,-3}z35
+{1,-2} .. {1,-4}z36
+{1,-4} .. {0,-1}z37
+{0,-1} .. {-8,-7}z38
+-- z39
+{-7,-6} .. {-4,-4}z40
+{-5,-3} .. {-3,-3}z41
+{-13,-13} .. {-8,-17}z42
+{-8,-18} .. {0,-18}z43
+{0,-35} .. {18,-26}z44
+{18,-27} .. {33,-12}z45
+{20,-7} .. {18,0}z46
+{33,0} .. {28,7}z47
+{22,5} .. {19,10}z48
+-- z49
+{2,0} .. {14,-9}z50
+{14,-10} .. {11,-5}z51
+{27,-11} .. {35,0}z52
+{16,0} .. {22,3}z53
+{26,4} .. {4,2}z54
+{1,0} .. {0,3}z55
+);
+FuF (z56
+{-11,33} .. {-3,25}z57
+-- z58
+{0,21} .. {2,11}z59
+{3,19} .. {11,12}z60
+{11,12} .. {15,0}z61
+{20,0} .. {10,-20}z62
+{9,-15} .. {0,-21}z63
+{0,-9} .. {-1,-5}z64
+{-6,-26} .. {-35,-32}z65
+-- z66
+{-6,-7} .. {-4,-2}z67
+);
+FuF (z68
+{7,-16} .. {9,-14}z69
+{21,-32} .. {26,-31}z70
+-- z71
+{2,-2} .. {5,-5}z72
+{5,-5} .. {2,-3}z73
+-- z74
+{-31,-13} .. {-37,0}z75
+{-12,0} .. {-12,6}z76
+{-17,9} .. {-10,17}z77
+{-9,16} .. {0,20}z78
+{0,15} .. {6,15}z79
+{3,6} .. {6,6}z80
+{5,6} .. {6,5}z81
+{7,6} .. {6,5}z82
+{1,1} .. {5,4}z83
+{5,5} .. {5,3}z84
+{4,4} .. {2,1}z85
+);
+lbl (range 1 thru 85);
+endchar;
+
+beginchar(39,263FX#,657FY#,0FY#);
+"apatharc";
+z1=(171FX,580FY);
+z2=(171FX,658FY);
+z3=(92FX,658FY);
+z4=(92FX,579FY);
+z5=(116FX,579FY);
+z6=(92FX,461FY);
+z7=(131FX,461FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+lbl (range 1 thru 7);
+endchar;
+
+beginchar(40,389FX#,749FY#,249FY#);
+"parenleft";
+z1=(332FX,-249FY);
+z2=(315FX,-231FY);
+z3=(292FX,-205FY);
+z4=(225FX,-97FY);
+z5=(165FX,127FY);
+z6=(159FX,213FY);
+z7=(158FX,226FY);
+z8=(158FX,273FY);
+z9=(159FX,296FY);
+z10=(163FX,357FY);
+z11=(239FX,625FY);
+z12=(298FX,712FY);
+z13=(316FX,733FY);
+z14=(332FX,749FY);
+z15=(274FX,749FY);
+z16=(268FX,749FY);
+z17=(246FX,728FY);
+z18=(127FX,542FY);
+z19=(98FX,447FY);
+z20=(77FX,250FY);
+z21=(84FX,136FY);
+z22=(106FX,23FY);
+z23=(141FX,-75FY);
+z24=(246FX,-229FY);
+z25=(268FX,-249FY);
+z26=(274FX,-249FY);
+FuF (z1
+{-3,4} .. {-8,9}z2
+-- z3
+{-26,29} .. {-20,42}z4
+{-32,68} .. {-6,81}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{7,105} .. {40,73}z11
+{18,34} .. {21,24}z12
+-- z13
+{8,7} .. {3,4}z14
+-- z15
+-- z16
+{-1,-1} .. {-14,-13}z17
+{-52,-51} .. {-27,-73}z18
+{-12,-31} .. {-7,-32}z19
+{-14,-64} .. {0,-67}z20
+{0,-36} .. {4,-39}z21
+{5,-40} .. {10,-35}z22
+{9,-36} .. {14,-30}z23
+{27,-58} .. {43,-44}z24
+{12,-12} .. {3,-1}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(41,389FX#,749FY#,249FY#);
+"parenright";
+z1=(55FX,749FY);
+z2=(60FX,743FY);
+z3=(67FX,736FY);
+z4=(72FX,731FY);
+z5=(95FX,705FY);
+z6=(163FX,596FY);
+z7=(201FX,487FY);
+z8=(222FX,371FY);
+z9=(228FX,286FY);
+z10=(229FX,273FY);
+z11=(229FX,226FY);
+z12=(228FX,203FY);
+z13=(224FX,142FY);
+z14=(198FX,0FY);
+z15=(148FX,-125FY);
+z16=(90FX,-212FY);
+z17=(71FX,-233FY);
+z18=(55FX,-249FY);
+z19=(113FX,-249FY);
+z20=(119FX,-249FY);
+z21=(142FX,-228FY);
+z22=(212FX,-141FY);
+z23=(260FX,-42FY);
+z24=(289FX,52FY);
+z25=(310FX,251FY);
+z26=(294FX,423FY);
+z27=(247FX,575FY);
+z28=(141FX,729FY);
+z29=(119FX,749FY);
+z30=(113FX,749FY);
+FuF (z1
+{1,-1} .. {2,-3}z2
+{2,-2} .. {2,-3}z3
+{2,-2} .. {1,-1}z4
+-- z5
+{29,-31} .. {18,-40}z6
+{16,-34} .. {10,-38}z7
+{10,-38} .. {3,-40}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{-3,-50} .. {-13,-45}z14
+{-12,-44} .. {-21,-39}z15
+{-16,-29} .. {-25,-27}z16
+-- z17
+{-9,-9} .. {-2,-2}z18
+-- z19
+-- z20
+{3,1} .. {13,13}z21
+{27,27} .. {20,31}z22
+{19,32} .. {13,34}z23
+{13,34} .. {6,29}z24
+{14,61} .. {0,72}z25
+{0,59} .. {-11,55}z26
+{-10,56} .. {-21,46}z27
+{-28,61} .. {-42,42}z28
+{-12,12} .. {-3,1}z29
+-- z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(42,459FX#,689FY#,0FY#);
+"asterisk";
+z1=(203FX,532FY);
+z2=(185FX,544FY);
+z3=(150FX,570FY);
+z4=(124FX,587FY);
+z5=(106FX,600FY);
+z6=(92FX,603FY);
+z7=(68FX,593FY);
+z8=(58FX,569FY);
+z9=(65FX,548FY);
+z10=(74FX,542FY);
+z11=(179FX,486FY);
+z12=(179FX,484FY);
+z13=(74FX,428FY);
+z14=(65FX,422FY);
+z15=(58FX,402FY);
+z16=(69FX,378FY);
+z17=(92FX,367FY);
+z18=(106FX,370FY);
+z19=(116FX,377FY);
+z20=(124FX,383FY);
+z21=(150FX,401FY);
+z22=(185FX,426FY);
+z23=(203FX,439FY);
+z24=(203FX,425FY);
+z25=(199FX,364FY);
+z26=(198FX,341FY);
+z27=(196FX,315FY);
+z28=(205FX,291FY);
+z29=(228FX,281FY);
+z30=(253FX,290FY);
+z31=(262FX,315FY);
+z32=(261FX,327FY);
+z33=(261FX,340FY);
+z34=(257FX,410FY);
+z35=(255FX,439FY);
+z36=(273FX,426FY);
+z37=(308FX,401FY);
+z38=(334FX,383FY);
+z39=(344FX,376FY);
+z40=(352FX,370FY);
+z41=(366FX,367FY);
+z42=(390FX,378FY);
+z43=(400FX,403FY);
+z44=(393FX,422FY);
+z45=(389FX,425FY);
+z46=(385FX,428FY);
+z47=(279FX,484FY);
+z48=(279FX,486FY);
+z49=(385FX,542FY);
+z50=(393FX,548FY);
+z51=(400FX,569FY);
+z52=(390FX,593FY);
+z53=(366FX,603FY);
+z54=(352FX,600FY);
+z55=(344FX,595FY);
+z56=(334FX,587FY);
+z57=(308FX,570FY);
+z58=(273FX,544FY);
+z59=(255FX,532FY);
+z60=(256FX,544FY);
+z61=(260FX,606FY);
+z62=(261FX,630FY);
+z63=(262FX,655FY);
+z64=(254FX,679FY);
+z65=(230FX,689FY);
+z66=(206FX,680FY);
+z67=(196FX,655FY);
+z68=(197FX,644FY);
+z69=(198FX,630FY);
+z70=(202FX,560FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-11,8} .. {-1,1}z5
+{-7,2} .. {-3,0}z6
+{-9,0} .. {-6,-7}z7
+{-7,-7} .. {0,-9}z8
+{0,-8} .. {5,-6}z9
+{2,-2} .. {4,-2}z10
+-- z11
+-- z12
+-- z13
+{-4,-3} .. {-2,-1}z14
+{-5,-5} .. {0,-8}z15
+{0,-8} .. {8,-8}z16
+{7,-7} .. {9,0}z17
+{5,0} .. {5,2}z18
+{3,2} .. {4,3}z19
+{3,3} .. {2,1}z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+-- z26
+-- z27
+{-1,-10} .. {6,-6}z28
+{6,-7} .. {9,0}z29
+{11,0} .. {6,6}z30
+{6,6} .. {-1,10}z31
+-- z32
+-- z33
+-- z34
+-- z35
+-- z36
+-- z37
+-- z38
+{2,-1} .. {4,-3}z39
+{5,-4} .. {0,0}z40
+{5,-2} .. {4,0}z41
+{10,0} .. {6,7}z42
+{7,7} .. {0,9}z43
+{0,7} .. {-5,5}z44
+{-2,1} .. {-1,1}z45
+{-2,1} .. {-1,1}z46
+-- z47
+-- z48
+-- z49
+{3,2} .. {2,2}z50
+{5,6} .. {0,8}z51
+{0,9} .. {-7,7}z52
+{-6,7} .. {-10,0}z53
+{-3,0} .. {-7,-2}z54
+{-3,-2} .. {-3,-1}z55
+{-3,-2} .. {-4,-3}z56
+-- z57
+-- z58
+-- z59
+-- z60
+-- z61
+-- z62
+-- z63
+{1,10} .. {-5,6}z64
+{-6,7} .. {-10,0}z65
+{-10,0} .. {-6,-6}z66
+{-7,-6} .. {1,-10}z67
+-- z68
+-- z69
+-- z70
+);
+lbl (range 1 thru 70);
+endchar;
+
+beginchar(43,537FX#,479FY#,22FY#);
+"plus";
+z1=(522FX,197FY);
+z2=(522FX,257FY);
+z3=(300FX,257FY);
+z4=(300FX,479FY);
+z5=(240FX,479FY);
+z6=(240FX,257FY);
+z7=(19FX,257FY);
+z8=(19FX,197FY);
+z9=(240FX,197FY);
+z10=(240FX,-23FY);
+z11=(300FX,-23FY);
+z12=(300FX,197FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,263FX#,78FY#,118FY#);
+"comma";
+z1=(92FX,-118FY);
+z2=(132FX,-118FY);
+z3=(164FX,-19FY);
+z4=(171FX,18FY);
+z5=(171FX,79FY);
+z6=(92FX,79FY);
+z7=(92FX,0FY);
+z8=(116FX,0FY);
+FuF (z1
+-- z2
+{10,34} .. {11,32}z3
+{6,18} .. {0,17}z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(45,422FX#,257FY#,0FY#);
+"miuthyun";
+z1=(54FX,197FY);
+z2=(369FX,197FY);
+z3=(369FX,257FY);
+z4=(54FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,263FX#,78FY#,0FY#);
+"period";
+z1=(171FX,79FY);
+z2=(92FX,79FY);
+z3=(92FX,0FY);
+z4=(171FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(47,251FX#,658FY#,11FY#);
+"slash";
+z1=(0FX,-11FY);
+z2=(64FX,-11FY);
+z3=(251FX,658FY);
+z4=(188FX,658FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,503FX#,650FY#,11FY#);
+"zero";
+z1=(38FX,319FY);
+z2=(102FX,56FY);
+z3=(249FX,-11FY);
+z4=(366FX,28FY);
+z5=(437FX,135FY);
+z6=(460FX,319FY);
+z7=(445FX,473FY);
+z8=(405FX,569FY);
+z9=(340FX,629FY);
+z10=(249FX,650FY);
+z11=(131FX,612FY);
+z12=(61FX,504FY);
+z13=(43FX,423FY);
+z14=(38FX,319FY);
+z15=(119FX,319FY);
+z16=(160FX,538FY);
+z17=(248FX,584FY);
+z18=(341FX,532FY);
+z19=(378FX,319FY);
+z20=(340FX,108FY);
+z21=(249FX,54FY);
+z22=(156FX,108FY);
+z23=(119FX,319FY);
+FuF (z1
+{0,-121} .. {43,-54}z2
+{35,-45} .. {63,0}z3
+{47,0} .. {31,26}z4
+{32,25} .. {16,46}z5
+{15,46} .. {0,77}z6
+{0,64} .. {-10,38}z7
+{-10,38} .. {-17,26}z8
+{-17,26} .. {-26,14}z9
+{-27,14} .. {-34,0}z10
+{-47,0} .. {-31,-25}z11
+{-31,-26} .. {-16,-46}z12
+{-8,-23} .. {-4,-31}z13
+{-4,-31} .. {0,-38}z14
+);
+FuF (z15
+{0,107} .. {27,39}z16
+{22,31} .. {36,0}z17
+{37,0} .. {25,-35}z18
+{25,-35} .. {0,-107}z19
+{0,-105} .. {-25,-35}z20
+{-25,-36} .. {-36,0}z21
+{-37,0} .. {-25,36}z22
+{-24,35} .. {0,105}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(49,503FX#,650FY#,0FY#);
+"one";
+z1=(337FX,0FY);
+z2=(337FX,650FY);
+z3=(286FX,650FY);
+z4=(215FX,563FY);
+z5=(98FX,488FY);
+z6=(98FX,411FY);
+z7=(183FX,452FY);
+z8=(257FX,507FY);
+z9=(257FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-14,-28} .. {-33,-30}z4
+{-33,-29} .. {-45,-20}z5
+-- z6
+{25,9} .. {32,18}z7
+{31,19} .. {18,18}z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(50,503FX#,650FY#,0FY#);
+"two";
+z1=(455FX,76FY);
+z2=(138FX,76FY);
+z3=(171FX,120FY);
+z4=(263FX,201FY);
+z5=(386FX,315FY);
+z6=(439FX,395FY);
+z7=(454FX,470FY);
+z8=(400FX,598FY);
+z9=(253FX,650FY);
+z10=(105FX,602FY);
+z11=(42FX,463FY);
+z12=(124FX,454FY);
+z13=(159FX,550FY);
+z14=(251FX,584FY);
+z15=(339FX,552FY);
+z16=(373FX,472FY);
+z17=(335FX,376FY);
+z18=(193FX,239FY);
+z19=(89FX,142FY);
+z20=(37FX,55FY);
+z21=(29FX,28FY);
+z22=(27FX,0FY);
+z23=(455FX,0FY);
+FuF (z1
+-- z2
+{9,15} .. {13,14}z3
+{13,14} .. {48,40}z4
+{57,48} .. {25,28}z5
+{25,29} .. {11,25}z6
+{10,25} .. {0,25}z7
+{0,51} .. {-36,34}z8
+{-37,35} .. {-61,0}z9
+{-62,0} .. {-37,-32}z10
+{-36,-31} .. {-6,-61}z11
+-- z12
+{0,41} .. {23,23}z13
+{24,23} .. {38,0}z14
+{36,0} .. {23,-21}z15
+{22,-22} .. {0,-32}z16
+{0,-30} .. {-25,-34}z17
+{-25,-34} .. {-70,-57}z18
+{-45,-36} .. {-24,-29}z19
+{-24,-28} .. {-10,-30}z20
+{-4,-10} .. {-1,-8}z21
+{-1,-7} .. {0,-11}z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(51,503FX#,650FY#,11FY#);
+"three";
+z1=(38FX,171FY);
+z2=(102FX,39FY);
+z3=(244FX,-11FY);
+z4=(400FX,47FY);
+z5=(462FX,191FY);
+z6=(430FX,296FY);
+z7=(341FX,351FY);
+z8=(408FX,406FY);
+z9=(430FX,482FY);
+z10=(407FX,565FY);
+z11=(338FX,627FY);
+z12=(241FX,650FY);
+z13=(112FX,606FY);
+z14=(46FX,482FY);
+z15=(125FX,468FY);
+z16=(166FX,556FY);
+z17=(242FX,585FY);
+z18=(319FX,556FY);
+z19=(348FX,484FY);
+z20=(308FX,402FY);
+z21=(216FX,375FY);
+z22=(204FX,376FY);
+z23=(195FX,307FY);
+z24=(251FX,315FY);
+z25=(342FX,280FY);
+z26=(378FX,189FY);
+z27=(339FX,93FY);
+z28=(244FX,54FY);
+z29=(164FX,84FY);
+z30=(117FX,182FY);
+FuF (z1
+{6,-54} .. {37,-34}z2
+{38,-34} .. {57,0}z3
+{63,0} .. {41,39}z4
+{41,40} .. {0,56}z5
+{0,42} .. {-21,28}z6
+{-21,28} .. {-38,9}z7
+{29,13} .. {15,23}z8
+{15,23} .. {0,28}z9
+{0,29} .. {-15,26}z10
+{-16,27} .. {-30,15}z11
+{-29,16} .. {-35,0}z12
+{-51,0} .. {-35,-29}z13
+{-34,-30} .. {-10,-53}z14
+-- z15
+{7,39} .. {21,20}z16
+{20,19} .. {30,0}z17
+{32,0} .. {20,-19}z18
+{20,-19} .. {0,-28}z19
+{0,-37} .. {-27,-18}z20
+{-28,-18} .. {-34,2}z21
+-- z22
+-- z23
+{21,5} .. {16,0}z24
+{37,0} .. {24,-23}z25
+{24,-24} .. {0,-37}z26
+{0,-38} .. {-26,-26}z27
+{-26,-26} .. {-37,0}z28
+{-31,0} .. {-22,20}z29
+{-22,20} .. {-9,45}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(52,503FX#,647FY#,0FY#);
+"four";
+z1=(292FX,0FY);
+z2=(372FX,0FY);
+z3=(372FX,155FY);
+z4=(459FX,155FY);
+z5=(459FX,228FY);
+z6=(372FX,228FY);
+z7=(372FX,647FY);
+z8=(307FX,647FY);
+z9=(11FX,228FY);
+z10=(11FX,155FY);
+z11=(292FX,155FY);
+z12=(292FX,228FY);
+z13=(90FX,228FY);
+z14=(292FX,520FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,503FX#,638FY#,11FY#);
+"five";
+z1=(38FX,170FY);
+z2=(101FX,38FY);
+z3=(246FX,-11FY);
+z4=(416FX,68FY);
+z5=(467FX,219FY);
+z6=(409FX,371FY);
+z7=(265FX,429FY);
+z8=(143FX,389FY);
+z9=(178FX,563FY);
+z10=(436FX,563FY);
+z11=(436FX,639FY);
+z12=(114FX,639FY);
+z13=(52FX,306FY);
+z14=(126FX,296FY);
+z15=(176FX,342FY);
+z16=(244FX,359FY);
+z17=(344FX,320FY);
+z18=(382FX,212FY);
+z19=(342FX,98FY);
+z20=(246FX,54FY);
+z21=(164FX,85FY);
+z22=(121FX,177FY);
+FuF (z1
+{5,-55} .. {37,-33}z2
+{38,-33} .. {59,0}z3
+{71,0} .. {42,53}z4
+{34,43} .. {0,58}z5
+{0,62} .. {-38,39}z6
+{-39,39} .. {-57,0}z7
+{-42,0} .. {-39,-27}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{13,19} .. {21,12}z15
+{20,11} .. {25,0}z16
+{41,0} .. {25,-26}z17
+{26,-27} .. {0,-45}z18
+{0,-47} .. {-27,-28}z19
+{-26,-29} .. {-38,0}z20
+{-32,0} .. {-23,20}z21
+{-22,20} .. {-6,41}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(54,503FX#,650FY#,11FY#);
+"six";
+z1=(450FX,489FY);
+z2=(392FX,607FY);
+z3=(266FX,650FY);
+z4=(103FX,576FY);
+z5=(34FX,303FY);
+z6=(97FX,62FY);
+z7=(259FX,-11FY);
+z8=(363FX,17FY);
+z9=(435FX,97FY);
+z10=(462FX,210FY);
+z11=(406FX,361FY);
+z12=(270FX,420FY);
+z13=(183FX,399FY);
+z14=(113FX,334FY);
+z15=(119FX,419FY);
+z16=(136FX,484FY);
+z17=(195FX,564FY);
+z18=(261FX,585FY);
+z19=(341FX,551FY);
+z20=(371FX,483FY);
+z21=(125FX,210FY);
+z22=(163FX,311FY);
+z23=(254FX,350FY);
+z24=(344FX,311FY);
+z25=(380FX,205FY);
+z26=(344FX,95FY);
+z27=(257FX,54FY);
+z28=(191FX,74FY);
+z29=(143FX,132FY);
+z30=(125FX,210FY);
+FuF (z1
+{-6,51} .. {-32,28}z2
+{-33,29} .. {-51,0}z3
+{-68,0} .. {-41,-49}z4
+{-46,-57} .. {0,-125}z5
+{0,-112} .. {42,-49}z6
+{42,-49} .. {66,0}z7
+{39,0} .. {31,19}z8
+{31,19} .. {17,35}z9
+{18,35} .. {0,40}z10
+{0,62} .. {-37,39}z11
+{-38,39} .. {-53,0}z12
+{-30,0} .. {-28,-14}z13
+{-27,-14} .. {-19,-29}z14
+{0,31} .. {4,26}z15
+{4,26} .. {8,17}z16
+{14,35} .. {25,18}z17
+{19,14} .. {25,0}z18
+{32,0} .. {21,-22}z19
+{13,-14} .. {7,-31}z20
+);
+FuF (z21
+{0,41} .. {25,26}z22
+{25,26} .. {36,0}z23
+{36,0} .. {24,-26}z24
+{24,-26} .. {0,-45}z25
+{0,-46} .. {-24,-27}z26
+{-24,-27} .. {-34,0}z27
+{-22,0} .. {-22,13}z28
+{-21,14} .. {-11,25}z29
+{-12,25} .. {0,27}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(55,503FX#,639FY#,0FY#);
+"seven";
+z1=(43FX,563FY);
+z2=(360FX,563FY);
+z3=(246FX,393FY);
+z4=(163FX,185FY);
+z5=(133FX,0FY);
+z6=(215FX,0FY);
+z7=(224FX,93FY);
+z8=(246FX,178FY);
+z9=(339FX,402FY);
+z10=(462FX,577FY);
+z11=(462FX,639FY);
+z12=(43FX,639FY);
+FuF (z1
+-- z2
+{-40,-46} .. {-35,-68}z3
+{-36,-67} .. {-19,-71}z4
+{-19,-75} .. {0,-49}z5
+-- z6
+{0,30} .. {6,32}z7
+{5,25} .. {10,32}z8
+{22,78} .. {40,71}z9
+{41,74} .. {40,43}z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(56,503FX#,650FY#,11FY#);
+"eight";
+z1=(160FX,351FY);
+z2=(68FX,292FY);
+z3=(37FX,187FY);
+z4=(96FX,46FY);
+z5=(250FX,-11FY);
+z6=(405FX,46FY);
+z7=(463FX,185FY);
+z8=(432FX,289FY);
+z9=(341FX,351FY);
+z10=(413FX,403FY);
+z11=(437FX,481FY);
+z12=(385FX,601FY);
+z13=(249FX,650FY);
+z14=(114FX,602FY);
+z15=(63FX,483FY);
+z16=(87FX,402FY);
+z17=(160FX,351FY);
+z18=(144FX,486FY);
+z19=(174FX,556FY);
+z20=(250FX,585FY);
+z21=(325FX,555FY);
+z22=(355FX,481FY);
+z23=(326FX,411FY);
+z24=(250FX,382FY);
+z25=(173FX,411FY);
+z26=(144FX,486FY);
+z27=(118FX,187FY);
+z28=(156FX,279FY);
+z29=(248FX,317FY);
+z30=(344FX,279FY);
+z31=(382FX,184FY);
+z32=(345FX,91FY);
+z33=(251FX,54FY);
+z34=(182FX,72FY);
+z35=(134FX,121FY);
+z36=(118FX,187FY);
+FuF (z1
+{-40,-10} .. {-22,-29}z2
+{-21,-28} .. {0,-42}z3
+{0,-56} .. {40,-38}z4
+{39,-38} .. {64,0}z5
+{64,0} .. {40,38}z6
+{39,38} .. {0,55}z7
+{0,40} .. {-21,29}z8
+{-21,29} .. {-40,13}z9
+{33,12} .. {15,22}z10
+{16,22} .. {0,30}z11
+{0,47} .. {-35,33}z12
+{-34,33} .. {-56,0}z13
+{-57,0} .. {-33,-32}z14
+{-34,-33} .. {0,-47}z15
+{0,-31} .. {16,-23}z16
+{16,-22} .. {33,-12}z17
+);
+FuF (z18
+{0,27} .. {20,20}z19
+{20,19} .. {31,0}z20
+{30,0} .. {20,-20}z21
+{20,-20} .. {0,-29}z22
+{0,-27} .. {-19,-19}z23
+{-20,-20} .. {-31,0}z24
+{-31,0} .. {-20,20}z25
+{-19,20} .. {0,31}z26
+);
+FuF (z27
+{0,37} .. {25,25}z28
+{25,25} .. {37,0}z29
+{38,0} .. {26,-25}z30
+{25,-26} .. {0,-38}z31
+{0,-38} .. {-25,-24}z32
+{-24,-24} .. {-38,0}z33
+{-25,0} .. {-22,12}z34
+{-21,11} .. {-11,21}z35
+{-10,22} .. {0,22}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(57,503FX#,650FY#,11FY#);
+"nine";
+z1=(49FX,150FY);
+z2=(108FX,31FY);
+z3=(231FX,-11FY);
+z4=(356FX,28FY);
+z5=(437FX,140FY);
+z6=(463FX,337FY);
+z7=(436FX,519FY);
+z8=(356FX,616FY);
+z9=(301FX,642FY);
+z10=(241FX,650FY);
+z11=(96FX,590FY);
+z12=(38FX,431FY);
+z13=(94FX,278FY);
+z14=(229FX,219FY);
+z15=(319FX,244FY);
+z16=(384FX,305FY);
+z17=(384FX,289FY);
+z18=(372FX,191FY);
+z19=(342FX,115FY);
+z20=(298FX,71FY);
+z21=(233FX,54FY);
+z22=(163FX,79FY);
+z23=(126FX,157FY);
+z24=(375FX,435FY);
+z25=(339FX,328FY);
+z26=(249FX,290FY);
+z27=(156FX,329FY);
+z28=(119FX,429FY);
+z29=(159FX,541FY);
+z30=(251FX,584FY);
+z31=(339FX,544FY);
+z32=(375FX,435FY);
+FuF (z1
+{8,-52} .. {32,-28}z2
+{32,-28} .. {50,0}z3
+{48,0} .. {35,26}z4
+{36,25} .. {18,49}z5
+{17,48} .. {0,83}z6
+{0,79} .. {-18,42}z7
+{-18,42} .. {-35,23}z8
+{-17,11} .. {-20,6}z9
+{-19,5} .. {-21,0}z10
+{-58,0} .. {-39,-40}z11
+{-39,-40} .. {0,-66}z12
+{0,-63} .. {38,-39}z13
+{37,-39} .. {53,0}z14
+{32,0} .. {28,16}z15
+{27,16} .. {16,25}z16
+-- z17
+{1,-33} .. {-8,-32}z18
+{-8,-32} .. {-12,-19}z19
+{-11,-18} .. {-18,-11}z20
+{-19,-11} .. {-25,0}z21
+{-28,0} .. {-19,17}z22
+{-19,16} .. {-6,36}z23
+);
+FuF (z24
+{0,-45} .. {-24,-26}z25
+{-24,-25} .. {-36,0}z26
+{-37,0} .. {-25,26}z27
+{-24,25} .. {0,41}z28
+{0,46} .. {27,29}z29
+{26,29} .. {35,0}z30
+{34,0} .. {25,-27}z31
+{24,-26} .. {0,-46}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(58,263FX#,420FY#,0FY#);
+"colon";
+z1=(171FX,421FY);
+z2=(92FX,421FY);
+z3=(92FX,342FY);
+z4=(171FX,342FY);
+z5=(92FX,79FY);
+z6=(92FX,0FY);
+z7=(171FX,0FY);
+z8=(171FX,79FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(59,263FX#,420FY#,118FY#);
+"semicolon";
+z1=(171FX,421FY);
+z2=(92FX,421FY);
+z3=(92FX,342FY);
+z4=(171FX,342FY);
+z5=(92FX,-118FY);
+z6=(132FX,-118FY);
+z7=(164FX,-19FY);
+z8=(171FX,18FY);
+z9=(171FX,79FY);
+z10=(92FX,79FY);
+z11=(92FX,0FY);
+z12=(116FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+{10,34} .. {11,32}z7
+{6,18} .. {0,17}z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(60,483FX#,417FY#,0FY#);
+"guillemotleft";
+z1=(144FX,224FY);
+z2=(255FX,418FY);
+z3=(192FX,418FY);
+z4=(56FX,224FY);
+z5=(192FX,31FY);
+z6=(254FX,31FY);
+z7=(309FX,224FY);
+z8=(421FX,418FY);
+z9=(357FX,418FY);
+z10=(223FX,224FY);
+z11=(357FX,31FY);
+z12=(421FX,31FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(61,537FX#,413FY#,0FY#);
+"equal";
+z1=(21FX,359FY);
+z2=(520FX,359FY);
+z3=(520FX,414FY);
+z4=(21FX,414FY);
+z5=(21FX,208FY);
+z6=(520FX,208FY);
+z7=(520FX,263FY);
+z8=(21FX,263FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,483FX#,417FY#,0FY#);
+"guillemotright";
+z1=(336FX,224FY);
+z2=(225FX,31FY);
+z3=(287FX,31FY);
+z4=(424FX,224FY);
+z5=(287FX,418FY);
+z6=(225FX,418FY);
+z7=(171FX,224FY);
+z8=(59FX,31FY);
+z9=(124FX,31FY);
+z10=(257FX,224FY);
+z11=(124FX,418FY);
+z12=(59FX,418FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+FuF (z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(63,120FX#,731FY#,0FY#);
+"paruyg";
+z1=(69FX,639FY);
+z2=(39FX,704FY);
+z3=(-38FX,731FY);
+z4=(-112FX,704FY);
+z5=(-144FX,616FY);
+z6=(-144FX,534FY);
+z7=(-118FX,534FY);
+z8=(-119FX,564FY);
+z9=(-119FX,593FY);
+z10=(-105FX,673FY);
+z11=(-32FX,706FY);
+z12=(22FX,687FY);
+z13=(39FX,630FY);
+z14=(28FX,585FY);
+z15=(7FX,575FY);
+z16=(-17FX,611FY);
+z17=(-38FX,647FY);
+z18=(-49FX,633FY);
+z19=(-47FX,617FY);
+z20=(-41FX,598FY);
+z21=(7FX,549FY);
+z22=(54FX,579FY);
+z23=(69FX,639FY);
+FuF (z1
+{0,26} .. {-20,18}z2
+{-20,18} .. {-31,0}z3
+{-30,0} .. {-19,-18}z4
+{-21,-20} .. {0,-39}z5
+-- z6
+-- z7
+{0,7} .. {-1,13}z8
+{0,14} .. {0,6}z9
+{0,38} .. {10,16}z10
+{13,22} .. {36,0}z11
+{25,0} .. {11,-13}z12
+{11,-13} .. {0,-25}z13
+{0,-20} .. {-7,-10}z14
+{-5,-7} .. {-9,0}z15
+{-12,0} .. {-4,24}z16
+{-5,24} .. {-9,0}z17
+{-7,0} .. {0,-10}z18
+{0,-5} .. {1,-6}z19
+{2,-5} .. {2,-8}z20
+{11,-32} .. {21,0}z21
+{20,0} .. {11,20}z22
+{10,17} .. {0,23}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(64,900FX#,646FY#,186FY#);
+"at";
+z1=(503FX,71FY);
+z2=(511FX,33FY);
+z3=(538FX,7FY);
+z4=(586FX,-2FY);
+z5=(759FX,86FY);
+z6=(847FX,309FY);
+z7=(805FX,472FY);
+z8=(670FX,603FY);
+z9=(477FX,646FY);
+z10=(241FX,584FY);
+z11=(91FX,404FY);
+z12=(48FX,203FY);
+z13=(84FX,26FY);
+z14=(171FX,-88FY);
+z15=(309FX,-162FY);
+z16=(486FX,-187FY);
+z17=(583FX,-180FY);
+z18=(665FX,-159FY);
+z19=(793FX,-84FY);
+z20=(868FX,8FY);
+z21=(790FX,8FY);
+z22=(675FX,-85FY);
+z23=(485FX,-123FY);
+z24=(292FX,-86FY);
+z25=(158FX,27FY);
+z26=(112FX,210FY);
+z27=(158FX,400FY);
+z28=(288FX,536FY);
+z29=(473FX,583FY);
+z30=(636FX,545FY);
+z31=(746FX,445FY);
+z32=(783FX,310FY);
+z33=(754FX,190FY);
+z34=(676FX,97FY);
+z35=(616FX,71FY);
+z36=(594FX,79FY);
+z37=(585FX,99FY);
+z38=(598FX,166FY);
+z39=(661FX,457FY);
+z40=(583FX,457FY);
+z41=(569FX,390FY);
+z42=(509FX,450FY);
+z43=(438FX,469FY);
+z44=(336FX,435FY);
+z45=(248FX,331FY);
+z46=(213FX,193FY);
+z47=(236FX,90FY);
+z48=(295FX,21FY);
+z49=(370FX,-1FY);
+z50=(440FX,18FY);
+z51=(503FX,71FY);
+z52=(293FX,188FY);
+z53=(297FX,228FY);
+z54=(307FX,270FY);
+z55=(344FX,346FY);
+z56=(392FX,391FY);
+z57=(443FX,405FY);
+z58=(514FX,372FY);
+z59=(537FX,333FY);
+z60=(544FX,281FY);
+z61=(528FX,193FY);
+z62=(488FX,120FY);
+z63=(436FX,77FY);
+z64=(386FX,63FY);
+z65=(321FX,95FY);
+z66=(293FX,188FY);
+FuF (z1
+{2,-19} .. {3,-7}z2
+{6,-11} .. {12,-6}z3
+{13,-6} .. {19,0}z4
+{63,0} .. {53,59}z5
+{59,65} .. {0,83}z6
+{0,58} .. {-28,51}z7
+{-33,58} .. {-57,30}z8
+{-57,29} .. {-71,0}z9
+{-92,0} .. {-65,-42}z10
+{-65,-42} .. {-35,-78}z11
+{-28,-63} .. {0,-71}z12
+{0,-63} .. {24,-55}z13
+{20,-43} .. {38,-33}z14
+{38,-33} .. {54,-17}z15
+{55,-16} .. {64,0}z16
+{36,0} .. {29,4}z17
+{29,5} .. {25,9}z18
+{50,19} .. {36,31}z19
+{35,31} .. {15,30}z20
+-- z21
+{-26,-36} .. {-51,-26}z22
+{-51,-25} .. {-76,0}z23
+{-70,0} .. {-58,24}z24
+{-58,24} .. {-31,51}z25
+{-30,52} .. {0,70}z26
+{0,67} .. {30,60}z27
+{31,59} .. {56,31}z28
+{56,32} .. {68,0}z29
+{60,0} .. {49,-26}z30
+{49,-25} .. {24,-41}z31
+{25,-42} .. {0,-49}z32
+{0,-41} .. {-19,-39}z33
+{-19,-39} .. {-33,-23}z34
+{-25,-18} .. {-15,0}z35
+{-8,0} .. {-6,6}z36
+{-6,5} .. {0,8}z37
+{0,4} .. {8,40}z38
+-- z39
+-- z40
+-- z41
+{-18,27} .. {-23,13}z42
+{-22,13} .. {-25,0}z43
+{-33,0} .. {-35,-23}z44
+{-35,-23} .. {-24,-46}z45
+{-23,-46} .. {0,-46}z46
+{0,-37} .. {15,-32}z47
+{15,-31} .. {24,-15}z48
+{25,-15} .. {26,0}z49
+{23,0} .. {24,13}z50
+{23,14} .. {19,22}z51
+);
+FuF (z52
+{0,13} .. {3,14}z53
+{2,13} .. {5,15}z54
+{9,30} .. {15,21}z55
+{15,20} .. {17,10}z56
+{16,9} .. {18,0}z57
+{29,0} .. {19,-22}z58
+{11,-11} .. {5,-15}z59
+{5,-14} .. {0,-20}z60
+{0,-29} .. {-11,-29}z61
+{-10,-29} .. {-17,-20}z62
+{-16,-19} .. {-18,-10}z63
+{-17,-9} .. {-16,0}z64
+{-24,0} .. {-19,21}z65
+{-18,22} .. {0,40}z66
+);
+lbl (range 1 thru 66);
+endchar;
+
+beginchar(65,697FX#,651FY#,0FY#);
+"A";
+z1=(624FX,0FY);
+z2=(590FX,136FY);
+z3=(505FX,188FY);
+z4=(505FX,651FY);
+z5=(419FX,651FY);
+z6=(419FX,248FY);
+z7=(360FX,136FY);
+z8=(255FX,80FY);
+z9=(145FX,118FY);
+z10=(96FX,261FY);
+z11=(96FX,651FY);
+z12=(10FX,651FY);
+z13=(10FX,261FY);
+z14=(57FX,94FY);
+z15=(156FX,18FY);
+z16=(248FX,0FY);
+z17=(349FX,24FY);
+z18=(426FX,76FY);
+z19=(465FX,127FY);
+z20=(548FX,0FY);
+FuF (z1
+{0,55} .. {-23,35}z2
+{-22,34} .. {-34,0}z3
+-- z4
+-- z5
+-- z6
+{0,-36} .. {-40,-38}z7
+{-38,-38} .. {-32,0}z8
+{-46,0} .. {-28,26}z9
+{-33,31} .. {0,65}z10
+-- z11
+-- z12
+-- z13
+{0,-68} .. {31,-43}z14
+{24,-35} .. {42,-16}z15
+{30,-12} .. {31,0}z16
+{32,0} .. {35,16}z17
+{29,14} .. {22,21}z18
+{22,20} .. {5,14}z19
+{55,0} .. {0,-85}z20
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(66,557FX#,634FY#,0FY#);
+"B";
+z1=(494FX,186FY);
+z2=(457FX,270FY);
+z3=(346FX,297FY);
+z4=(96FX,297FY);
+z5=(96FX,375FY);
+z6=(127FX,497FY);
+z7=(197FX,552FY);
+z8=(270FX,565FY);
+z9=(359FX,536FY);
+z10=(406FX,419FY);
+z11=(406FX,395FY);
+z12=(477FX,395FY);
+z13=(477FX,454FY);
+z14=(441FX,562FY);
+z15=(359FX,618FY);
+z16=(266FX,634FY);
+z17=(78FX,569FY);
+z18=(10FX,330FY);
+z19=(10FX,0FY);
+z20=(96FX,0FY);
+z21=(96FX,226FY);
+z22=(347FX,226FY);
+z23=(399FX,218FY);
+z24=(423FX,186FY);
+FuF (z1
+{0,38} .. {-25,18}z2
+{-25,18} .. {-49,0}z3
+-- z4
+-- z5
+{0,50} .. {21,31}z6
+{17,25} .. {29,11}z7
+{22,9} .. {27,0}z8
+{35,0} .. {24,-20}z9
+{31,-25} .. {0,-53}z10
+-- z11
+-- z12
+-- z13
+{0,43} .. {-24,29}z14
+{-20,25} .. {-35,12}z15
+{-29,11} .. {-32,0}z16
+{-85,0} .. {-41,-44}z17
+{-45,-48} .. {0,-111}z18
+-- z19
+-- z20
+-- z21
+-- z22
+{22,0} .. {12,-5}z23
+{16,-6} .. {0,-15}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(67,570FX#,651FY#,0FY#);
+"C";
+z1=(519FX,234FY);
+z2=(468FX,368FY);
+z3=(369FX,435FY);
+z4=(413FX,469FY);
+z5=(436FX,539FY);
+z6=(392FX,617FY);
+z7=(274FX,651FY);
+z8=(153FX,619FY);
+z9=(102FX,539FY);
+z10=(124FX,475FY);
+z11=(162FX,442FY);
+z12=(128FX,412FY);
+z13=(80FX,379FY);
+z14=(27FX,310FY);
+z15=(127FX,311FY);
+z16=(168FX,357FY);
+z17=(255FX,380FY);
+z18=(353FX,352FY);
+z19=(407FX,293FY);
+z20=(422FX,233FY);
+z21=(374FX,120FY);
+z22=(267FX,81FY);
+z23=(191FX,94FY);
+z24=(152FX,127FY);
+z25=(127FX,173FY);
+z26=(27FX,173FY);
+z27=(118FX,47FY);
+z28=(271FX,0FY);
+z29=(380FX,29FY);
+z30=(477FX,109FY);
+z31=(519FX,234FY);
+z32=(351FX,529FY);
+z33=(324FX,488FY);
+z34=(262FX,472FY);
+z35=(205FX,491FY);
+z36=(181FX,536FY);
+z37=(209FX,576FY);
+z38=(270FX,592FY);
+z39=(329FX,573FY);
+z40=(351FX,529FY);
+FuF (z1
+{0,49} .. {-34,41}z2
+{-30,37} .. {-36,8}z3
+{27,21} .. {2,2}z4
+{15,18} .. {0,29}z5
+{0,30} .. {-29,22}z6
+{-31,23} .. {-48,0}z7
+{-47,0} .. {-33,-22}z8
+{-34,-21} .. {0,-32}z9
+{0,-30} .. {14,-13}z10
+{8,-7} .. {17,-15}z11
+{-6,-10} .. {-16,-10}z12
+{-22,-13} .. {-10,-9}z13
+{-20,-17} .. {-15,-29}z14
+-- z15
+{19,24} .. {9,6}z16
+{20,15} .. {38,0}z17
+{38,0} .. {27,-19}z18
+{23,-15} .. {13,-25}z19
+{10,-20} .. {0,-20}z20
+{0,-47} .. {-32,-29}z21
+{-29,-26} .. {-42,0}z22
+{-32,0} .. {-19,8}z23
+{-15,7} .. {-11,15}z24
+{-3,5} .. {-14,26}z25
+-- z26
+{16,-53} .. {44,-31}z27
+{44,-31} .. {58,0}z28
+{35,0} .. {38,20}z29
+{41,20} .. {24,33}z30
+{28,37} .. {0,46}z31
+);
+FuF (z32
+{-1,-16} .. {-18,-11}z33
+{-17,-11} .. {-24,0}z34
+{-22,0} .. {-16,13}z35
+{-16,12} .. {0,18}z36
+{2,16} .. {17,10}z37
+{17,11} .. {24,0}z38
+{23,0} .. {16,-13}z39
+{16,-12} .. {0,-17}z40
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(68,721FX#,651FY#,0FY#);
+"D";
+z1=(389FX,381FY);
+z2=(389FX,0FY);
+z3=(474FX,0FY);
+z4=(474FX,240FY);
+z5=(523FX,240FY);
+z6=(578FX,230FY);
+z7=(597FX,200FY);
+z8=(670FX,200FY);
+z9=(629FX,286FY);
+z10=(531FX,310FY);
+z11=(474FX,310FY);
+z12=(474FX,432FY);
+z13=(414FX,587FY);
+z14=(241FX,651FY);
+z15=(84FX,600FY);
+z16=(10FX,429FY);
+z17=(92FX,429FY);
+z18=(116FX,533FY);
+z19=(177FX,576FY);
+z20=(251FX,585FY);
+z21=(353FX,533FY);
+z22=(389FX,381FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{24,0} .. {12,-7}z6
+{13,-6} .. {0,-14}z7
+-- z8
+{0,39} .. {-27,18}z9
+{-23,16} .. {-42,0}z10
+-- z11
+-- z12
+{0,63} .. {-40,41}z13
+{-42,43} .. {-73,0}z14
+{-63,0} .. {-41,-34}z15
+{-49,-40} .. {0,-74}z16
+-- z17
+{0,44} .. {16,25}z18
+{14,20} .. {27,8}z19
+{18,6} .. {31,0}z20
+{44,0} .. {24,-34}z21
+{24,-35} .. {0,-67}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(69,573FX#,643FY#,0FY#);
+"E";
+z1=(523FX,365FY);
+z2=(491FX,438FY);
+z3=(355FX,460FY);
+z4=(95FX,460FY);
+z5=(95FX,644FY);
+z6=(10FX,644FY);
+z7=(10FX,276FY);
+z8=(53FX,85FY);
+z9=(146FX,12FY);
+z10=(237FX,0FY);
+z11=(330FX,14FY);
+z12=(418FX,73FY);
+z13=(457FX,202FY);
+z14=(457FX,251FY);
+z15=(387FX,251FY);
+z16=(387FX,221FY);
+z17=(357FX,110FY);
+z18=(294FX,72FY);
+z19=(236FX,69FY);
+z20=(179FX,76FY);
+z21=(121FX,125FY);
+z22=(95FX,255FY);
+z23=(95FX,399FY);
+z24=(347FX,399FY);
+z25=(431FX,393FY);
+z26=(454FX,365FY);
+FuF (z1
+{0,36} .. {-21,13}z2
+{-23,15} .. {-68,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-81} .. {28,-46}z8
+{22,-35} .. {40,-13}z9
+{24,-8} .. {37,0}z10
+{33,0} .. {28,9}z11
+{38,13} .. {21,27}z12
+{26,33} .. {0,53}z13
+-- z14
+-- z15
+-- z16
+{0,-49} .. {-20,-25}z17
+{-15,-20} .. {-27,-6}z18
+{-11,-2} .. {-28,0}z19
+{-23,0} .. {-15,5}z20
+{-25,9} .. {-14,24}z21
+{-17,31} .. {0,56}z22
+-- z23
+-- z24
+{43,0} .. {14,-4}z25
+{13,-5} .. {3,-14}z26
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(70,694FX#,660FY#,0FY#);
+"F";
+z1=(611FX,218FY);
+z2=(536FX,390FY);
+z3=(367FX,464FY);
+z4=(367FX,660FY);
+z5=(209FX,660FY);
+z6=(125FX,633FY);
+z7=(92FX,565FY);
+z8=(156FX,465FY);
+z9=(284FX,416FY);
+z10=(284FX,60FY);
+z11=(261FX,60FY);
+z12=(179FX,78FY);
+z13=(117FX,118FY);
+z14=(78FX,159FY);
+z15=(10FX,159FY);
+z16=(41FX,97FY);
+z17=(128FX,31FY);
+z18=(266FX,0FY);
+z19=(317FX,0FY);
+z20=(372FX,0FY);
+z21=(537FX,54FY);
+z22=(611FX,218FY);
+z23=(284FX,478FY);
+z24=(216FX,501FY);
+z25=(164FX,557FY);
+z26=(177FX,594FY);
+z27=(274FX,611FY);
+z28=(284FX,611FY);
+z29=(545FX,209FY);
+z30=(499FX,94FY);
+z31=(385FX,60FY);
+z32=(367FX,60FY);
+z33=(367FX,404FY);
+z34=(500FX,337FY);
+z35=(545FX,209FY);
+FuF (z1
+{0,68} .. {-50,47}z2
+{-46,43} .. {-67,6}z3
+-- z4
+-- z5
+{-33,0} .. {-23,-18}z6
+{-22,-19} .. {0,-27}z7
+{0,-44} .. {43,-22}z8
+{43,-17} .. {43,-16}z9
+-- z10
+-- z11
+{-28,0} .. {-27,12}z12
+{-21,9} .. {-21,17}z13
+{-14,13} .. {-11,15}z14
+-- z15
+{0,-17} .. {20,-24}z16
+{23,-27} .. {35,-17}z17
+{42,-21} .. {50,0}z18
+-- z19
+-- z20
+{66,0} .. {45,36}z21
+{49,40} .. {0,69}z22
+);
+FuF (z23
+{-23,8} .. {-22,9}z24
+{-35,13} .. {0,23}z25
+{0,18} .. {9,7}z26
+{15,11} .. {50,0}z27
+-- z28
+);
+FuF (z29
+{0,-51} .. {-30,-26}z30
+{-28,-23} .. {-49,0}z31
+-- z32
+-- z33
+{58,-10} .. {31,-34}z34
+{30,-34} .. {0,-52}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(71,723FX#,651FY#,0FY#);
+"G";
+z1=(672FX,317FY);
+z2=(476FX,318FY);
+z3=(476FX,474FY);
+z4=(416FX,607FY);
+z5=(243FX,651FY);
+z6=(84FX,600FY);
+z7=(10FX,441FY);
+z8=(26FX,354FY);
+z9=(89FX,283FY);
+z10=(223FX,254FY);
+z11=(310FX,255FY);
+z12=(392FX,271FY);
+z13=(390FX,0FY);
+z14=(476FX,0FY);
+z15=(476FX,261FY);
+z16=(672FX,263FY);
+z17=(392FX,433FY);
+z18=(363FX,340FY);
+z19=(259FX,313FY);
+z20=(180FX,319FY);
+z21=(117FX,353FY);
+z22=(92FX,442FY);
+z23=(139FX,558FY);
+z24=(242FX,585FY);
+z25=(350FX,559FY);
+z26=(392FX,433FY);
+FuF (z1
+-- z2
+-- z3
+{0,59} .. {-40,29}z4
+{-39,29} .. {-76,0}z5
+{-62,0} .. {-44,-34}z6
+{-49,-39} .. {0,-67}z7
+{0,-33} .. {10,-25}z8
+{13,-30} .. {29,-17}z9
+{34,-19} .. {55,0}z10
+{44,0} .. {14,1}z11
+{24,2} .. {30,8}z12
+-- z13
+-- z14
+-- z15
+-- z16
+);
+FuF (z17
+{0,-44} .. {-20,-18}z18
+{-19,-18} .. {-50,0}z19
+{-34,0} .. {-18,4}z20
+{-28,6} .. {-14,17}z21
+{-17,21} .. {0,39}z22
+{0,54} .. {31,23}z23
+{24,18} .. {44,0}z24
+{51,0} .. {21,-17}z25
+{28,-22} .. {0,-62}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(72,672FX#,664FY#,0FY#);
+"H";
+z1=(621FX,-1FY);
+z2=(621FX,119FY);
+z3=(179FX,451FY);
+z4=(536FX,540FY);
+z5=(536FX,600FY);
+z6=(507FX,630FY);
+z7=(389FX,665FY);
+z8=(458FX,600FY);
+z9=(10FX,482FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(73,473FX#,651FY#,0FY#);
+"I";
+z1=(443FX,192FY);
+z2=(443FX,312FY);
+z3=(377FX,433FY);
+z4=(257FX,468FY);
+z5=(157FX,443FY);
+z6=(94FX,389FY);
+z7=(94FX,651FY);
+z8=(10FX,651FY);
+z9=(10FX,0FY);
+z10=(94FX,0FY);
+z11=(94FX,249FY);
+z12=(151FX,351FY);
+z13=(253FX,387FY);
+z14=(325FX,366FY);
+z15=(360FX,294FY);
+z16=(360FX,192FY);
+FuF (z1
+-- z2
+{0,51} .. {-44,29}z3
+{-36,24} .. {-44,0}z4
+{-34,0} .. {-33,-17}z5
+{-31,-15} .. {-11,-20}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,40} .. {38,28}z12
+{33,24} .. {35,0}z13
+{28,0} .. {19,-14}z14
+{24,-17} .. {0,-31}z15
+-- z16
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(74,637FX#,646FY#,15FY#);
+"J";
+z1=(592FX,-16FY);
+z2=(550FX,71FY);
+z3=(375FX,103FY);
+z4=(300FX,103FY);
+z5=(420FX,197FY);
+z6=(519FX,295FY);
+z7=(560FX,428FY);
+z8=(480FX,586FY);
+z9=(310FX,647FY);
+z10=(189FX,606FY);
+z11=(91FX,509FY);
+z12=(51FX,401FY);
+z13=(104FX,310FY);
+z14=(203FX,245FY);
+z15=(256FX,164FY);
+z16=(229FX,118FY);
+z17=(194FX,103FY);
+z18=(75FX,103FY);
+z19=(75FX,139FY);
+z20=(10FX,139FY);
+z21=(10FX,0FY);
+z22=(74FX,0FY);
+z23=(74FX,36FY);
+z24=(355FX,36FY);
+z25=(478FX,23FY);
+z26=(506FX,-16FY);
+z27=(468FX,412FY);
+z28=(422FX,307FY);
+z29=(321FX,216FY);
+z30=(262FX,294FY);
+z31=(184FX,340FY);
+z32=(145FX,401FY);
+z33=(197FX,507FY);
+z34=(321FX,565FY);
+z35=(411FX,533FY);
+z36=(456FX,468FY);
+z37=(468FX,412FY);
+FuF (z1
+{0,40} .. {-28,19}z2
+{-34,22} .. {-82,0}z3
+-- z4
+{2,2} .. {78,61}z5
+{46,36} .. {20,30}z6
+{28,39} .. {0,49}z7
+{0,62} .. {-54,44}z8
+{-50,40} .. {-63,0}z9
+{-39,0} .. {-42,-27}z10
+{-39,-26} .. {-26,-39}z11
+{-27,-38} .. {0,-34}z12
+{0,-33} .. {36,-27}z13
+{32,-23} .. {32,-23}z14
+{36,-25} .. {0,-28}z15
+{0,-21} .. {-18,-10}z16
+{-2,-1} .. {-21,-9}z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+{60,0} .. {22,-8}z25
+
+{18,-8} .. {0,-19}z26
+);
+FuF (z27
+{0,-30} .. {-30,-40}z28
+{-31,-40} .. {-36,-20}z29
+{-8,30} .. {-32,21}z30
+{-25,16} .. {-26,16}z31
+{-26,17} .. {0,24}z32
+{0,34} .. {35,37}z33
+{38,39} .. {45,0}z34
+{35,0} .. {24,-22}z35
+{19,-16} .. {11,-28}z36
+{8,-21} .. {0,-16}z37
+);
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(75,536FX#,648FY#,0FY#);
+"K";
+z1=(484FX,0FY);
+z2=(484FX,474FY);
+z3=(387FX,474FY);
+z4=(387FX,336FY);
+z5=(357FX,259FY);
+z6=(246FX,234FY);
+z7=(134FX,266FY);
+z8=(95FX,360FY);
+z9=(95FX,648FY);
+z10=(10FX,648FY);
+z11=(10FX,395FY);
+z12=(69FX,212FY);
+z13=(249FX,152FY);
+z14=(332FX,163FY);
+z15=(386FX,199FY);
+z16=(386FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-36} .. {-20,-16}z5
+{-21,-17} .. {-52,0}z6
+{-48,0} .. {-26,21}z7
+{-26,22} .. {0,41}z8
+-- z9
+-- z10
+-- z11
+{0,-83} .. {39,-39}z12
+{38,-40} .. {81,0}z13
+{36,0} .. {19,7}z14
+{19,7} .. {17,17}z15
+-- z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(76,449FX#,646FY#,66FY#);
+"L";
+z1=(397FX,-67FY);
+z2=(343FX,43FY);
+z3=(225FX,71FY);
+z4=(95FX,71FY);
+z5=(95FX,647FY);
+z6=(10FX,647FY);
+z7=(10FX,0FY);
+z8=(192FX,0FY);
+z9=(276FX,-7FY);
+z10=(320FX,-67FY);
+FuF (z1
+{0,50} .. {-36,23}z2
+{-29,19} .. {-50,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{40,0} .. {16,-5}z9
+{29,-10} .. {0,-31}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(77,733FX#,646FY#,0FY#);
+"M";
+z1=(681FX,527FY);
+z2=(637FX,627FY);
+z3=(548FX,647FY);
+z4=(408FX,647FY);
+z5=(408FX,287FY);
+z6=(364FX,112FY);
+z7=(243FX,76FY);
+z8=(143FX,113FY);
+z9=(94FX,274FY);
+z10=(94FX,647FY);
+z11=(10FX,647FY);
+z12=(10FX,277FY);
+z13=(64FX,76FY);
+z14=(249FX,0FY);
+z15=(374FX,22FY);
+z16=(460FX,107FY);
+z17=(491FX,281FY);
+z18=(491FX,576FY);
+z19=(542FX,576FY);
+z20=(589FX,568FY);
+z21=(611FX,527FY);
+FuF (z1
+{0,47} .. {-29,20}z2
+{-21,13} .. {-38,0}z3
+-- z4
+-- z5
+{0,-87} .. {-29,-30}z6
+{-23,-24} .. {-58,0}z7
+{-42,0} .. {-25,24}z8
+{-33,33} .. {0,75}z9
+-- z10
+-- z11
+-- z12
+{0,-88} .. {36,-46}z13
+{40,-51} .. {84,0}z14
+{50,0} .. {33,15}z15
+{38,17} .. {19,39}z16
+{21,43} .. {0,73}z17
+-- z18
+-- z19
+{21,0} .. {11,-5}z20
+{15,-7} .. {0,-20}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(78,753FX#,652FY#,0FY#);
+"N";
+z1=(701FX,226FY);
+z2=(701FX,331FY);
+z3=(617FX,331FY);
+z4=(617FX,222FY);
+z5=(582FX,107FY);
+z6=(468FX,70FY);
+z7=(364FX,116FY);
+z8=(317FX,268FY);
+z9=(317FX,568FY);
+z10=(240FX,568FY);
+z11=(130FX,591FY);
+z12=(107FX,652FY);
+z13=(29FX,652FY);
+z14=(62FX,549FY);
+z15=(196FX,502FY);
+z16=(234FX,502FY);
+z17=(234FX,279FY);
+z18=(292FX,77FY);
+z19=(464FX,0FY);
+z20=(630FX,52FY);
+z21=(701FX,226FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-52} .. {-24,-25}z5
+{-23,-25} .. {-53,0}z6
+{-42,0} .. {-27,31}z7
+{-31,36} .. {0,66}z8
+-- z9
+-- z10
+{-54,0} .. {-19,16}z11
+{-15,12} .. {0,28}z12
+-- z13
+{0,-44} .. {22,-25}z14
+{28,-31} .. {62,0}z15
+-- z16
+-- z17
+{0,-86} .. {39,-49}z18
+{40,-51} .. {74,0}z19
+{70,0} .. {41,35}z20
+{47,39} .. {0,77}z21
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(79,544FX#,646FY#,0FY#);
+"O";
+z1=(491FX,0FY);
+z2=(491FX,415FY);
+z3=(446FX,551FY);
+z4=(345FX,624FY);
+z5=(242FX,646FY);
+z6=(82FX,585FY);
+z7=(9FX,380FY);
+z8=(9FX,0FY);
+z9=(93FX,0FY);
+z10=(93FX,411FY);
+z11=(132FX,517FY);
+z12=(252FX,569FY);
+z13=(350FX,533FY);
+z14=(408FX,426FY);
+z15=(408FX,0FY);
+FuF (z1
+-- z2
+{0,52} .. {-30,38}z3
+{-26,31} .. {-42,18}z4
+{-36,15} .. {-33,0}z5
+{-64,0} .. {-42,-41}z6
+{-49,-48} .. {0,-89}z7
+-- z8
+-- z9
+-- z10
+{0,40} .. {26,30}z11
+{31,34} .. {50,0}z12
+{33,0} .. {32,-24}z13
+{39,-28} .. {0,-43}z14
+-- z15
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(80,671FX#,645FY#,0FY#);
+"P";
+z1=(618FX,0FY);
+z2=(618FX,375FY);
+z3=(565FX,558FY);
+z4=(447FX,632FY);
+z5=(324FX,645FY);
+z6=(83FX,568FY);
+z7=(10FX,360FY);
+z8=(10FX,354FY);
+z9=(87FX,354FY);
+z10=(123FX,505FY);
+z11=(202FX,570FY);
+z12=(288FX,583FY);
+z13=(288FX,189FY);
+z14=(372FX,189FY);
+z15=(372FX,583FY);
+z16=(436FX,575FY);
+z17=(506FX,520FY);
+z18=(539FX,378FY);
+z19=(539FX,0FY);
+FuF (z1
+-- z2
+{0,77} .. {-36,45}z3
+{-28,35} .. {-51,14}z4
+{-33,9} .. {-49,0}z5
+{-109,0} .. {-52,-51}z6
+{-48,-47} .. {0,-91}z7
+-- z8
+-- z9
+{0,64} .. {24,37}z10
+{19,31} .. {34,13}z11
+{24,9} .. {33,0}z12
+-- z13
+-- z14
+-- z15
+{25,0} .. {17,-5}z16
+{30,-10} .. {16,-27}z17
+{22,-34} .. {0,-60}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(81,646FX#,642FY#,0FY#);
+"Q";
+z1=(527FX,76FY);
+z2=(608FX,76FY);
+z3=(587FX,151FY);
+z4=(526FX,181FY);
+z5=(430FX,187FY);
+z6=(220FX,187FY);
+z7=(220FX,300FY);
+z8=(269FX,261FY);
+z9=(336FX,243FY);
+z10=(446FX,263FY);
+z11=(539FX,330FY);
+z12=(578FX,449FY);
+z13=(517FX,588FY);
+z14=(367FX,643FY);
+z15=(193FX,579FY);
+z16=(136FX,425FY);
+z17=(136FX,187FY);
+z18=(14FX,187FY);
+z19=(14FX,127FY);
+z20=(136FX,127FY);
+z21=(136FX,5FY);
+z22=(220FX,5FY);
+z23=(220FX,127FY);
+z24=(426FX,127FY);
+z25=(504FX,121FY);
+z26=(527FX,76FY);
+z27=(361FX,569FY);
+z28=(454FX,532FY);
+z29=(493FX,442FY);
+z30=(456FX,350FY);
+z31=(365FX,311FY);
+z32=(264FX,344FY);
+z33=(219FX,432FY);
+z34=(261FX,529FY);
+z35=(361FX,569FY);
+FuF (z1
+-- z2
+{0,33} .. {-14,17}z3
+{-13,15} .. {-28,5}z4
+{-20,4} .. {-44,0}z5
+-- z6
+-- z7
+{16,-13} .. {17,-13}z8
+{21,-12} .. {24,0}z9
+{38,0} .. {35,13}z10
+{39,16} .. {23,29}z11
+{26,33} .. {0,46}z12
+{0,56} .. {-41,36}z13
+{-41,37} .. {-59,0}z14
+{-75,0} .. {-41,-43}z15
+{-38,-39} .. {0,-64}z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+{41,0} .. {11,-4}z25
+{15,-6} .. {0,-24}z26
+);
+FuF (z27
+{36,0} .. {26,-25}z28
+{26,-24} .. {0,-36}z29
+{0,-35} .. {-24,-26}z30
+{-25,-26} .. {-36,0}z31
+{-39,0} .. {-29,22}z32
+{-30,23} .. {0,36}z33
+{0,38} .. {28,26}z34
+{28,27} .. {39,0}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(82,508FX#,651FY#,0FY#);
+"R";
+z1=(457FX,375FY);
+z2=(457FX,475FY);
+z3=(403FX,604FY);
+z4=(246FX,651FY);
+z5=(80FX,583FY);
+z6=(10FX,388FY);
+z7=(10FX,0FY);
+z8=(94FX,0FY);
+z9=(94FX,354FY);
+z10=(139FX,528FY);
+z11=(251FX,574FY);
+z12=(337FX,552FY);
+z13=(373FX,448FY);
+z14=(373FX,375FY);
+FuF (z1
+-- z2
+{0,55} .. {-36,31}z3
+{-37,31} .. {-68,0}z4
+{-68,0} .. {-43,-46}z5
+{-46,-48} .. {0,-82}z6
+-- z7
+-- z8
+-- z9
+{0,80} .. {30,36}z10
+{25,31} .. {50,0}z11
+{39,0} .. {19,-14}z12
+{24,-20} .. {0,-50}z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(83,545FX#,649FY#,0FY#);
+"S";
+z1=(493FX,288FY);
+z2=(493FX,650FY);
+z3=(409FX,650FY);
+z4=(409FX,267FY);
+z5=(377FX,144FY);
+z6=(308FX,95FY);
+z7=(241FX,87FY);
+z8=(181FX,98FY);
+z9=(121FX,152FY);
+z10=(94FX,284FY);
+z11=(94FX,650FY);
+z12=(10FX,650FY);
+z13=(10FX,284FY);
+z14=(53FX,94FY);
+z15=(149FX,15FY);
+z16=(245FX,0FY);
+z17=(350FX,18FY);
+z18=(449FX,99FY);
+z19=(493FX,288FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-52} .. {-22,-30}z5
+{-16,-23} .. {-30,-9}z6
+{-19,-6} .. {-26,0}z7
+{-22,0} .. {-18,8}z8
+{-26,11} .. {-14,25}z9
+{-18,33} .. {0,56}z10
+-- z11
+-- z12
+-- z13
+{0,-81} .. {28,-46}z14
+{23,-37} .. {41,-15}z15
+{27,-10} .. {37,0}z16
+{40,0} .. {30,12}z17
+{43,16} .. {23,38}z18
+{29,47} .. {0,79}z19
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(84,591FX#,646FY#,10FY#);
+"T";
+z1=(40FX,204FY);
+z2=(48FX,144FY);
+z3=(74FX,90FY);
+z4=(115FX,46FY);
+z5=(166FX,14FY);
+z6=(230FX,-5FY);
+z7=(311FX,-10FY);
+z8=(375FX,-4FY);
+z9=(433FX,15FY);
+z10=(517FX,84FY);
+z11=(546FX,179FY);
+z12=(539FX,227FY);
+z13=(519FX,269FY);
+z14=(437FX,334FY);
+z15=(384FX,353FY);
+z16=(297FX,375FY);
+z17=(169FX,420FY);
+z18=(145FX,476FY);
+z19=(181FX,543FY);
+z20=(291FX,572FY);
+z21=(402FX,540FY);
+z22=(445FX,450FY);
+z23=(526FX,456FY);
+z24=(518FX,509FY);
+z25=(494FX,556FY);
+z26=(412FX,623FY);
+z27=(287FX,646FY);
+z28=(171FX,624FY);
+z29=(92FX,560FY);
+z30=(71FX,517FY);
+z31=(64FX,471FY);
+z32=(69FX,429FY);
+z33=(86FX,391FY);
+z34=(155FX,333FY);
+z35=(277FX,293FY);
+z36=(389FX,262FY);
+z37=(425FX,245FY);
+z38=(447FX,224FY);
+z39=(464FX,172FY);
+z40=(446FX,117FY);
+z41=(391FX,80FY);
+z42=(352FX,68FY);
+z43=(307FX,65FY);
+z44=(209FX,83FY);
+z45=(145FX,132FY);
+z46=(128FX,168FY);
+z47=(119FX,211FY);
+FuF (z1
+{0,-21} .. {5,-19}z2
+{6,-19} .. {11,-17}z3
+{12,-17} .. {16,-12}z4
+{15,-13} .. {19,-9}z5
+{19,-8} .. {23,-4}z6
+{24,-3} .. {30,0}z7
+{22,0} .. {20,4}z8
+{21,4} .. {18,9}z9
+{37,17} .. {19,29}z10
+{19,30} .. {0,33}z11
+{0,18} .. {-4,15}z12
+{-5,14} .. {-9,14}z13
+{-18,27} .. {-36,17}z14
+{-12,6} .. {-23,7}z15
+{-23,6} .. {-35,9}z16
+{-69,15} .. {-16,15}z17
+{-16,15} .. {0,22}z18
+{0,27} .. {24,18}z19
+{22,19} .. {51,0}z20
+{49,0} .. {25,-21}z21
+{25,-21} .. {4,-39}z22
+-- z23
+{0,19} .. {-5,17}z24
+{-6,17} .. {-10,15}z25
+{-18,30} .. {-36,15}z26
+{-37,15} .. {-46,0}z27
+{-42,0} .. {-35,-15}z28
+{-35,-15} .. {-18,-28}z29
+{-9,-14} .. {-5,-15}z30
+{-5,-15} .. {0,-16}z31
+{0,-14} .. {3,-14}z32
+{4,-13} .. {8,-12}z33
+{15,-23} .. {30,-16}z34
+{23,-13} .. {58,-14}z35
+{61,-15} .. {14,-6}z36
+{15,-5} .. {10,-6}z37
+{9,-6} .. {6,-8}z38
+{11,-15} .. {0,-20}z39
+{0,-20} .. {-12,-16}z40
+{-13,-16} .. {-24,-9}z41
+{-12,-5} .. {-14,-2}z42
+{-13,-2} .. {-16,0}z43
+{-37,0} .. {-29,12}z44
+{-29,13} .. {-14,20}z45
+{-7,11} .. {-4,13}z46
+{-5,13} .. {-1,15}z47
+);
+lbl (range 1 thru 47);
+endchar;
+
+beginchar(85,1092FX#,652FY#,0FY#);
+"U";
+z1=(491FX,0FY);
+z2=(491FX,415FY);
+z3=(446FX,551FY);
+z4=(345FX,624FY);
+z5=(242FX,646FY);
+z6=(82FX,585FY);
+z7=(9FX,380FY);
+z8=(9FX,0FY);
+z9=(93FX,0FY);
+z10=(93FX,411FY);
+z11=(132FX,517FY);
+z12=(252FX,569FY);
+z13=(350FX,533FY);
+z14=(408FX,426FY);
+z15=(408FX,0FY);
+z16=(1041FX,195FY);
+z17=(1041FX,263FY);
+z18=(988FX,263FY);
+z19=(988FX,283FY);
+z20=(929FX,433FY);
+z21=(778FX,473FY);
+z22=(695FX,464FY);
+z23=(640FX,429FY);
+z24=(640FX,652FY);
+z25=(555FX,652FY);
+z26=(555FX,0FY);
+z27=(640FX,0FY);
+z28=(640FX,284FY);
+z29=(683FX,375FY);
+z30=(776FX,396FY);
+z31=(874FX,368FY);
+z32=(905FX,260FY);
+z33=(905FX,195FY);
+FuF (z1
+-- z2
+{0,52} .. {-30,38}z3
+{-26,31} .. {-42,18}z4
+{-36,15} .. {-33,0}z5
+{-64,0} .. {-42,-41}z6
+{-49,-48} .. {0,-89}z7
+-- z8
+-- z9
+-- z10
+{0,40} .. {26,30}z11
+{31,34} .. {50,0}z12
+{33,0} .. {32,-24}z13
+{39,-28} .. {0,-43}z14
+-- z15
+);
+FuF (z16
+-- z17
+-- z18
+-- z19
+{0,69} .. {-39,30}z20
+{-34,27} .. {-67,0}z21
+{-37,0} .. {-19,-6}z22
+{-19,-6} .. {-18,-17}z23
+-- z24
+-- z25
+-- z26
+-- z27
+-- z28
+{0,42} .. {28,19}z29
+{22,14} .. {40,0}z30
+{46,0} .. {20,-19}z31
+{21,-20} .. {0,-52}z32
+-- z33
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(86,736FX#,646FY#,67FY#);
+"V";
+z1=(696FX,-68FY);
+z2=(636FX,42FY);
+z3=(508FX,70FY);
+z4=(478FX,70FY);
+z5=(478FX,647FY);
+z6=(381FX,647FY);
+z7=(381FX,313FY);
+z8=(337FX,220FY);
+z9=(241FX,196FY);
+z10=(124FX,238FY);
+z11=(94FX,394FY);
+z12=(94FX,481FY);
+z13=(10FX,481FY);
+z14=(10FX,361FY);
+z15=(53FX,193FY);
+z16=(225FX,122FY);
+z17=(310FX,133FY);
+z18=(381FX,162FY);
+z19=(381FX,0FY);
+z20=(510FX,0FY);
+z21=(592FX,-16FY);
+z22=(617FX,-68FY);
+FuF (z1
+{0,50} .. {-40,23}z2
+{-32,18} .. {-53,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+{0,-42} .. {-29,-20}z8
+{-23,-16} .. {-41,0}z9
+{-57,0} .. {-21,28}z10
+{-20,27} .. {0,76}z11
+-- z12
+-- z13
+-- z14
+{0,-73} .. {28,-38}z15
+{35,-47} .. {80,0}z16
+{31,0} .. {26,7}z17
+{21,6} .. {26,14}z18
+-- z19
+-- z20
+{39,0} .. {15,-11}z21
+{14,-10} .. {3,-25}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(87,547FX#,652FY#,0FY#);
+"W";
+z1=(496FX,195FY);
+z2=(496FX,263FY);
+z3=(443FX,263FY);
+z4=(443FX,283FY);
+z5=(384FX,433FY);
+z6=(233FX,473FY);
+z7=(150FX,464FY);
+z8=(96FX,429FY);
+z9=(96FX,652FY);
+z10=(10FX,652FY);
+z11=(10FX,0FY);
+z12=(96FX,0FY);
+z13=(96FX,284FY);
+z14=(138FX,375FY);
+z15=(231FX,396FY);
+z16=(329FX,368FY);
+z17=(360FX,260FY);
+z18=(360FX,195FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,69} .. {-40,30}z5
+{-34,27} .. {-67,0}z6
+{-36,0} .. {-19,-6}z7
+{-19,-6} .. {-17,-17}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{0,42} .. {28,19}z14
+{22,14} .. {40,0}z15
+{46,0} .. {19,-19}z16
+{21,-20} .. {0,-52}z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(88,654FX#,648FY#,0FY#);
+"X";
+z1=(602FX,317FY);
+z2=(602FX,468FY);
+z3=(519FX,468FY);
+z4=(519FX,334FY);
+z5=(499FX,226FY);
+z6=(420FX,190FY);
+z7=(333FX,229FY);
+z8=(314FX,339FY);
+z9=(314FX,468FY);
+z10=(94FX,468FY);
+z11=(94FX,648FY);
+z12=(10FX,648FY);
+z13=(10FX,0FY);
+z14=(94FX,0FY);
+z15=(94FX,397FY);
+z16=(231FX,397FY);
+z17=(231FX,335FY);
+z18=(274FX,178FY);
+z19=(416FX,110FY);
+z20=(543FX,159FY);
+z21=(602FX,317FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-50} .. {-13,-22}z5
+{-14,-24} .. {-38,0}z6
+{-42,0} .. {-16,26}z7
+{-13,22} .. {0,51}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{0,-65} .. {29,-40}z18
+{32,-45} .. {62,0}z19
+{51,0} .. {34,32}z20
+{40,37} .. {0,68}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(89,600FX#,663FY#,0FY#);
+"Y";
+z1=(246FX,324FY);
+z2=(110FX,323FY);
+z3=(110FX,292FY);
+z4=(50FX,292FY);
+z5=(50FX,417FY);
+z6=(75FX,418FY);
+z7=(110FX,418FY);
+z8=(110FX,383FY);
+z9=(238FX,382FY);
+z10=(315FX,389FY);
+z11=(378FX,415FY);
+z12=(403FX,455FY);
+z13=(409FX,516FY);
+z14=(360FX,576FY);
+z15=(265FX,592FY);
+z16=(146FX,553FY);
+z17=(116FX,491FY);
+z18=(108FX,491FY);
+z19=(91FX,491FY);
+z20=(61FX,491FY);
+z21=(36FX,493FY);
+z22=(59FX,568FY);
+z23=(131FX,635FY);
+z24=(253FX,664FY);
+z25=(429FX,625FY);
+z26=(497FX,503FY);
+z27=(466FX,405FY);
+z28=(421FX,362FY);
+z29=(457FX,339FY);
+z30=(508FX,286FY);
+z31=(534FX,196FY);
+z32=(458FX,40FY);
+z33=(300FX,0FY);
+z34=(117FX,41FY);
+z35=(38FX,197FY);
+z36=(127FX,198FY);
+z37=(168FX,109FY);
+z38=(292FX,78FY);
+z39=(407FX,102FY);
+z40=(449FX,188FY);
+z41=(420FX,273FY);
+z42=(345FX,314FY);
+z43=(246FX,324FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{5,1} .. {12,0}z6
+{12,0} .. {11,0}z7
+-- z8
+-- z9
+{27,0} .. {25,5}z10
+{31,6} .. {12,11}z11
+{12,13} .. {5,14}z12
+{4,13} .. {0,27}z13
+{0,26} .. {-33,14}z14
+{-26,11} .. {-37,0}z15
+{-52,0} .. {-27,-26}z16
+{-20,-19} .. {0,-22}z17
+{-2,0} .. {-3,0}z18
+{-2,0} .. {-9,0}z19
+{-3,0} .. {-17,0}z20
+{-17,0} .. {0,1}z21
+{0,25} .. {16,25}z22
+{17,28} .. {31,16}z23
+{35,19} .. {47,0}z24
+{75,0} .. {42,-26}z25
+{45,-28} .. {0,-53}z26
+{0,-38} .. {-21,-28}z27
+{-10,-14} .. {-20,-15}z28
+{12,-8} .. {12,-8}z29
+{22,-16} .. {12,-19}z30
+{18,-27} .. {0,-33}z31
+{0,-70} .. {-51,-34}z32
+{-40,-27} .. {-65,0}z33
+{-79,0} .. {-43,27}z34
+{-53,33} .. {0,71}z35
+-- z36
+{0,-38} .. {27,-21}z37
+{27,-21} .. {56,0}z38
+{51,0} .. {26,16}z39
+{28,18} .. {0,40}z40
+{0,35} .. {-19,21}z41
+{-18,19} .. {-33,8}z42
+{-27,7} .. {-39,-1}z43
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(90,637FX#,648FY#,37FY#);
+"Z";
+z1=(599FX,-38FY);
+z2=(536FX,74FY);
+z3=(310FX,101FY);
+z4=(413FX,188FY);
+z5=(516FX,317FY);
+z6=(562FX,448FY);
+z7=(487FX,591FY);
+z8=(324FX,648FY);
+z9=(149FX,596FY);
+z10=(74FX,434FY);
+z11=(151FX,301FY);
+z12=(308FX,247FY);
+z13=(351FX,252FY);
+z14=(388FX,267FY);
+z15=(303FX,179FY);
+z16=(198FX,100FY);
+z17=(75FX,100FY);
+z18=(75FX,146FY);
+z19=(10FX,146FY);
+z20=(10FX,0FY);
+z21=(75FX,0FY);
+z22=(75FX,34FY);
+z23=(320FX,34FY);
+z24=(471FX,22FY);
+z25=(513FX,-38FY);
+z26=(471FX,444FY);
+z27=(416FX,344FY);
+z28=(313FX,320FY);
+z29=(260FX,328FY);
+z30=(194FX,365FY);
+z31=(162FX,449FY);
+z32=(204FX,547FY);
+z33=(315FX,582FY);
+z34=(426FX,539FY);
+z35=(471FX,444FY);
+FuF (z1
+{0,55} .. {-42,19}z2
+{-39,18} .. {-111,0}z3
+{31,20} .. {38,38}z4
+{42,43} .. {27,43}z5
+{31,50} .. {0,37}z6
+{0,55} .. {-50,40}z7
+{-48,38} .. {-61,0}z8
+{-71,0} .. {-45,-35}z9
+{-50,-39} .. {0,-69}z10
+{0,-50} .. {51,-39}z11
+{49,-36} .. {56,0}z12
+{15,0} .. {13,4}z13
+{14,3} .. {11,7}z14
+{-20,-28} .. {-36,-31}z15
+{-29,-25} .. {-41,-28}z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+{76,0} .. {24,-8}z24
+{28,-9} .. {0,-31}z25
+);
+FuF (z26
+{0,-45} .. {-36,-22}z27
+{-28,-16} .. {-40,0}z28
+{-17,0} .. {-19,6}z29
+{-27,8} .. {-17,17}z30
+{-21,22} .. {0,34}z31
+{0,41} .. {28,24}z32
+{27,23} .. {47,0}z33
+{43,0} .. {30,-29}z34
+{30,-27} .. {0,-36}z35
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(91,289FX#,749FY#,249FY#);
+"bracketleft";
+z1=(100FX,749FY);
+z2=(100FX,-249FY);
+z3=(266FX,-249FY);
+z4=(266FX,-185FY);
+z5=(176FX,-185FY);
+z6=(176FX,685FY);
+z7=(266FX,685FY);
+z8=(266FX,749FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(92,473FX#,657FY#,0FY#);
+"quotedblleft";
+z1=(258FX,658FY);
+z2=(219FX,658FY);
+z3=(179FX,538FY);
+z4=(179FX,461FY);
+z5=(258FX,461FY);
+z6=(258FX,539FY);
+z7=(234FX,539FY);
+z8=(442FX,658FY);
+z9=(403FX,658FY);
+z10=(363FX,538FY);
+z11=(363FX,461FY);
+z12=(442FX,461FY);
+z13=(442FX,539FY);
+z14=(418FX,539FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+);
+FuF (z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(93,289FX#,749FY#,249FY#);
+"bracketright";
+z1=(21FX,749FY);
+z2=(21FX,685FY);
+z3=(112FX,685FY);
+z4=(112FX,-185FY);
+z5=(21FX,-185FY);
+z6=(21FX,-249FY);
+z7=(187FX,-249FY);
+z8=(187FX,749FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(94,500FX#,750FY#,250FY#);
+"braceleft";
+z1=(416FX,750FY);
+z2=(319FX,736FY);
+z3=(245FX,692FY);
+z4=(216FX,618FY);
+z5=(216FX,374FY);
+z6=(198FX,317FY);
+z7=(148FX,276FY);
+z8=(82FX,261FY);
+z9=(75FX,258FY);
+z10=(72FX,251FY);
+z11=(72FX,249FY);
+z12=(75FX,242FY);
+z13=(82FX,239FY);
+z14=(133FX,231FY);
+z15=(176FX,207FY);
+z16=(205FX,171FY);
+z17=(216FX,126FY);
+z18=(216FX,-118FY);
+z19=(245FX,-192FY);
+z20=(319FX,-236FY);
+z21=(416FX,-250FY);
+z22=(426FX,-240FY);
+z23=(426FX,-237FY);
+z24=(423FX,-230FY);
+z25=(416FX,-228FY);
+z26=(349FX,-214FY);
+z27=(301FX,-175FY);
+z28=(282FX,-118FY);
+z29=(282FX,126FY);
+z30=(249FX,205FY);
+z31=(163FX,250FY);
+z32=(250FX,295FY);
+z33=(282FX,374FY);
+z34=(282FX,618FY);
+z35=(322FX,697FY);
+z36=(416FX,728FY);
+z37=(426FX,737FY);
+z38=(426FX,740FY);
+z39=(416FX,750FY);
+FuF (z1
+{-34,0} .. {-31,-9}z2
+{-30,-10} .. {-19,-20}z3
+{-19,-20} .. {0,-29}z4
+-- z5
+{0,-21} .. {-12,-17}z6
+{-13,-18} .. {-21,-10}z7
+{-21,-10} .. {-23,0}z8
+{-3,0} .. {-2,-2}z9
+{-2,-2} .. {0,-3}z10
+-- z11
+{0,-3} .. {2,-2}z12
+{2,-2} .. {3,0}z13
+{18,0} .. {16,-5}z14
+{16,-6} .. {13,-10}z15
+{12,-10} .. {7,-14}z16
+{7,-14} .. {0,-16}z17
+-- z18
+{0,-29} .. {19,-20}z19
+{19,-20} .. {30,-10}z20
+{31,-9} .. {34,0}z21
+{7,0} .. {0,7}z22
+-- z23
+{0,3} .. {-2,2}z24
+{-3,1} .. {-2,0}z25
+{-24,0} .. {-21,9}z26
+{-20,10} .. {-12,16}z27
+{-13,17} .. {0,21}z28
+-- z29
+{0,32} .. {-22,21}z30
+{-22,21} .. {-35,9}z31
+{36,9} .. {22,20}z32
+{21,21} .. {0,32}z33
+-- z34
+{0,32} .. {27,21}z35
+{26,21} .. {36,0}z36
+{7,0} .. {0,6}z37
+-- z38
+{0,7} .. {-7,0}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(95,500FX#,750FY#,250FY#);
+"braceright";
+z1=(72FX,737FY);
+z2=(82FX,728FY);
+z3=(176FX,697FY);
+z4=(216FX,618FY);
+z5=(216FX,374FY);
+z6=(249FX,295FY);
+z7=(335FX,250FY);
+z8=(249FX,205FY);
+z9=(216FX,126FY);
+z10=(216FX,-118FY);
+z11=(176FX,-197FY);
+z12=(82FX,-228FY);
+z13=(75FX,-230FY);
+z14=(72FX,-237FY);
+z15=(72FX,-240FY);
+z16=(75FX,-247FY);
+z17=(82FX,-250FY);
+z18=(223FX,-216FY);
+z19=(282FX,-118FY);
+z20=(282FX,126FY);
+z21=(301FX,183FY);
+z22=(350FX,224FY);
+z23=(416FX,239FY);
+z24=(423FX,242FY);
+z25=(426FX,249FY);
+z26=(426FX,251FY);
+z27=(423FX,258FY);
+z28=(416FX,261FY);
+z29=(350FX,276FY);
+z30=(301FX,317FY);
+z31=(282FX,374FY);
+z32=(282FX,618FY);
+z33=(253FX,692FY);
+z34=(179FX,736FY);
+z35=(82FX,750FY);
+z36=(75FX,747FY);
+z37=(72FX,740FY);
+FuF (z1
+{0,-6} .. {7,0}z2
+{36,0} .. {26,-21}z3
+{27,-21} .. {0,-32}z4
+-- z5
+{0,-32} .. {22,-21}z6
+{22,-20} .. {36,-9}z7
+{-35,-9} .. {-23,-21}z8
+{-22,-21} .. {0,-32}z9
+-- z10
+{0,-32} .. {-26,-21}z11
+{-27,-21} .. {-36,0}z12
+{-2,0} .. {-2,-1}z13
+{-2,-2} .. {0,-3}z14
+-- z15
+{0,-3} .. {2,-1}z16
+{2,-2} .. {3,0}z17
+{54,0} .. {40,23}z18
+{39,22} .. {0,43}z19
+-- z20
+{0,21} .. {13,17}z21
+{12,18} .. {21,10}z22
+{21,10} .. {23,0}z23
+{3,0} .. {2,2}z24
+{2,2} .. {0,3}z25
+-- z26
+{0,3} .. {-2,2}z27
+{-2,2} .. {-3,0}z28
+{-23,0} .. {-21,10}z29
+{-21,10} .. {-12,18}z30
+{-13,17} .. {0,21}z31
+-- z32
+{0,29} .. {-20,20}z33
+{-19,20} .. {-30,10}z34
+{-31,9} .. {-34,0}z35
+{-2,0} .. {-2,-2}z36
+{-2,-2} .. {0,-3}z37
+);
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(96,182FX#,710FY#,0FY#);
+"buth";
+z1=(126FX,535FY);
+z2=(50FX,696FY);
+z3=(42FX,707FY);
+z4=(30FX,710FY);
+z5=(12FX,703FY);
+z6=(3FX,685FY);
+z7=(6FX,674FY);
+z8=(81FX,512FY);
+z9=(90FX,502FY);
+z10=(102FX,498FY);
+z11=(121FX,505FY);
+z12=(129FX,523FY);
+z13=(126FX,535FY);
+FuF (z1
+-- z2
+{-2,5} .. {-4,2}z3
+{-4,2} .. {-4,0}z4
+{-7,0} .. {-5,-5}z5
+{-6,-5} .. {0,-7}z6
+{0,-4} .. {2,-4}z7
+-- z8
+{3,-4} .. {4,-2}z9
+{4,-3} .. {4,0}z10
+{7,0} .. {6,5}z11
+{5,5} .. {0,7}z12
+{0,3} .. {-2,5}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(97,680FX#,428FY#,0FY#);
+"a";
+z1=(625FX,0FY);
+z2=(625FX,428FY);
+z3=(551FX,428FY);
+z4=(551FX,152FY);
+z5=(515FX,88FY);
+z6=(450FX,69FY);
+z7=(393FX,87FY);
+z8=(362FX,144FY);
+z9=(363FX,153FY);
+z10=(363FX,428FY);
+z11=(289FX,428FY);
+z12=(289FX,149FY);
+z13=(290FX,143FY);
+z14=(290FX,137FY);
+z15=(250FX,81FY);
+z16=(179FX,67FY);
+z17=(112FX,94FY);
+z18=(83FX,182FY);
+z19=(83FX,428FY);
+z20=(11FX,428FY);
+z21=(11FX,154FY);
+z22=(42FX,50FY);
+z23=(111FX,8FY);
+z24=(181FX,0FY);
+z25=(261FX,15FY);
+z26=(308FX,47FY);
+z27=(370FX,12FY);
+z28=(449FX,0FY);
+z29=(513FX,13FY);
+z30=(567FX,50FY);
+z31=(567FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-27} .. {-24,-16}z5
+{-19,-13} .. {-24,0}z6
+{-21,0} .. {-17,12}z7
+{-21,14} .. {0,23}z8
+{0,4} .. {1,2}z9
+-- z10
+-- z11
+-- z12
+{0,-1} .. {1,-3}z13
+{0,-2} .. {0,-2}z14
+{0,-25} .. {-27,-12}z15
+{-19,-9} .. {-28,0}z16
+{-27,0} .. {-18,18}z17
+{-19,21} .. {0,38}z18
+-- z19
+-- z20
+-- z21
+{0,-44} .. {21,-26}z22
+{17,-20} .. {29,-8}z23
+{19,-5} .. {28,0}z24
+{37,0} .. {17,10}z25
+{1,0} .. {31,21}z26
+{17,-16} .. {24,-7}z27
+{24,-8} .. {29,0}z28
+{21,0} .. {22,9}z29
+{24,10} .. {12,15}z30
+-- z31
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(98,415FX#,432FY#,159FY#);
+"b";
+z1=(359FX,74FY);
+z2=(85FX,74FY);
+z3=(85FX,242FY);
+z4=(120FX,350FY);
+z5=(193FX,361FY);
+z6=(261FX,331FY);
+z7=(286FX,189FY);
+z8=(360FX,189FY);
+z9=(360FX,279FY);
+z10=(329FX,377FY);
+z11=(266FX,422FY);
+z12=(215FX,433FY);
+z13=(146FX,425FY);
+z14=(85FX,387FY);
+z15=(85FX,428FY);
+z16=(11FX,428FY);
+z17=(11FX,-160FY);
+z18=(85FX,-160FY);
+z19=(85FX,15FY);
+z20=(359FX,15FY);
+FuF (z1
+-- z2
+-- z3
+{0,56} .. {23,16}z4
+{12,7} .. {37,0}z5
+{32,0} .. {13,-20}z6
+{17,-25} .. {0,-70}z7
+-- z8
+-- z9
+{0,39} .. {-21,26}z10
+{-15,20} .. {-27,10}z11
+{-18,7} .. {-16,0}z12
+{-29,0} .. {-17,-5}z13
+{-24,-7} .. {-17,-19}z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(99,479FX#,439FY#,163FY#);
+"c";
+z1=(423FX,58FY);
+z2=(423FX,427FY);
+z3=(350FX,427FY);
+z4=(350FX,392FY);
+z5=(304FX,427FY);
+z6=(228FX,440FY);
+z7=(65FX,362FY);
+z8=(11FX,212FY);
+z9=(70FX,42FY);
+z10=(201FX,0FY);
+z11=(282FX,9FY);
+z12=(346FX,31FY);
+z13=(319FX,-54FY);
+z14=(241FX,-96FY);
+z15=(213FX,-97FY);
+z16=(161FX,-87FY);
+z17=(132FX,-56FY);
+z18=(56FX,-55FY);
+z19=(99FX,-132FY);
+z20=(204FX,-164FY);
+z21=(354FX,-121FY);
+z22=(413FX,-28FY);
+z23=(423FX,58FY);
+z24=(350FX,295FY);
+z25=(350FX,118FY);
+z26=(302FX,82FY);
+z27=(210FX,69FY);
+z28=(122FX,102FY);
+z29=(92FX,216FY);
+z30=(130FX,325FY);
+z31=(216FX,370FY);
+z32=(299FX,349FY);
+z33=(350FX,295FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-15,17} .. {-16,7}z5
+{-19,8} .. {-32,0}z6
+{-67,0} .. {-41,-52}z7
+{-36,-45} .. {0,-55}z8
+{0,-78} .. {39,-35}z9
+{31,-28} .. {56,0}z10
+{28,0} .. {26,6}z11
+{25,6} .. {17,9}z12
+{0,-34} .. {-18,-23}z13
+{-19,-25} .. {-33,-3}z14
+{-11,-1} .. {-8,0}z15
+{-23,0} .. {-12,7}z16
+{-9,6} .. {-10,15}z17
+-- z18
+{0,-28} .. {29,-23}z19
+{26,-21} .. {44,0}z20
+{64,0} .. {36,28}z21
+{29,22} .. {11,40}z22
+{7,24} .. {0,33}z23
+);
+FuF (z24
+-- z25
+{-6,-15} .. {-26,-9}z26
+{-26,-9} .. {-35,0}z27
+{-40,0} .. {-19,22}z28
+{-20,24} .. {0,52}z29
+{0,43} .. {26,30}z30
+{25,30} .. {32,0}z31
+{32,0} .. {24,-14}z32
+{22,-13} .. {12,-23}z33
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(100,527FX#,428FY#,160FY#);
+"d";
+z1=(471FX,0FY);
+z2=(471FX,62FY);
+z3=(381FX,62FY);
+z4=(381FX,262FY);
+z5=(352FX,377FY);
+z6=(286FX,421FY);
+z7=(218FX,428FY);
+z8=(150FX,427FY);
+z9=(86FX,387FY);
+z10=(86FX,428FY);
+z11=(11FX,428FY);
+z12=(11FX,0FY);
+z13=(86FX,0FY);
+z14=(86FX,268FY);
+z15=(110FX,341FY);
+z16=(205FX,364FY);
+z17=(281FX,347FY);
+z18=(309FX,279FY);
+z19=(309FX,-161FY);
+z20=(381FX,-161FY);
+z21=(381FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,49} .. {-19,28}z5
+{-16,21} .. {-28,8}z6
+{-17,5} .. {-29,0}z7
+{-37,0} .. {-9,-1}z8
+{-24,-3} .. {-19,-24}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{0,35} .. {16,13}z15
+{17,15} .. {46,0}z16
+{36,0} .. {15,-11}z17
+{18,-13} .. {0,-32}z18
+-- z19
+-- z20
+-- z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(101,420FX#,671FY#,0FY#);
+"e";
+z1=(369FX,376FY);
+z2=(369FX,428FY);
+z3=(86FX,428FY);
+z4=(86FX,671FY);
+z5=(11FX,671FY);
+z6=(11FX,186FY);
+z7=(68FX,35FY);
+z8=(181FX,0FY);
+z9=(316FX,37FY);
+z10=(365FX,142FY);
+z11=(365FX,293FY);
+z12=(291FX,293FY);
+z13=(291FX,153FY);
+z14=(265FX,84FY);
+z15=(183FX,61FY);
+z16=(118FX,87FY);
+z17=(86FX,175FY);
+z18=(86FX,376FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{0,-70} .. {38,-31}z7
+{28,-23} .. {47,0}z8
+{57,0} .. {33,25}z9
+{32,25} .. {0,45}z10
+-- z11
+-- z12
+-- z13
+{0,-31} .. {-17,-15}z14
+{-18,-16} .. {-37,0}z15
+{-27,0} .. {-17,18}z16
+{-18,19} .. {0,40}z17
+-- z18
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(102,617FX#,672FY#,160FY#);
+"f";
+z1=(565FX,184FY);
+z2=(528FX,296FY);
+z3=(439FX,366FY);
+z4=(333FX,412FY);
+z5=(333FX,528FY);
+z6=(309FX,628FY);
+z7=(206FX,672FY);
+z8=(125FX,648FY);
+z9=(83FX,565FY);
+z10=(110FX,472FY);
+z11=(177FX,410FY);
+z12=(263FX,371FY);
+z13=(263FX,65FY);
+z14=(254FX,65FY);
+z15=(142FX,93FY);
+z16=(93FX,202FY);
+z17=(25FX,202FY);
+z18=(25FX,196FY);
+z19=(67FX,68FY);
+z20=(161FX,13FY);
+z21=(263FX,2FY);
+z22=(263FX,-161FY);
+z23=(333FX,-161FY);
+z24=(333FX,4FY);
+z25=(450FX,24FY);
+z26=(533FX,76FY);
+z27=(565FX,184FY);
+z28=(263FX,435FY);
+z29=(172FX,488FY);
+z30=(144FX,555FY);
+z31=(161FX,599FY);
+z32=(205FX,618FY);
+z33=(212FX,618FY);
+z34=(249FX,602FY);
+z35=(263FX,552FY);
+z36=(500FX,183FY);
+z37=(460FX,93FY);
+z38=(360FX,64FY);
+z39=(333FX,66FY);
+z40=(333FX,352FY);
+z41=(407FX,317FY);
+z42=(472FX,263FY);
+z43=(500FX,183FY);
+FuF (z1
+{0,43} .. {-25,32}z2
+{-20,26} .. {-39,20}z3
+{-25,14} .. {-46,17}z4
+-- z5
+{0,44} .. {-16,23}z6
+{-20,29} .. {-48,0}z7
+{-31,0} .. {-23,-16}z8
+{-28,-19} .. {0,-36}z9
+{0,-35} .. {18,-27}z10
+{16,-23} .. {29,-18}z11
+{23,-13} .. {35,-12}z12
+-- z13
+-- z14
+{-50,0} .. {-24,19}z15
+{-27,21} .. {-5,52}z16
+-- z17
+-- z18
+{0,-54} .. {28,-31}z19
+{22,-26} .. {40,-11}z20
+{29,-7} .. {39,0}z21
+-- z22
+-- z23
+-- z24
+{49,4} .. {30,9}z25
+{37,12} .. {18,23}z26
+{21,27} .. {0,45}z27
+);
+FuF (z28
+{-44,19} .. {-17,16}z29
+{-19,18} .. {0,27}z30
+{0,16} .. {11,13}z31
+{11,13} .. {18,0}z32
+{3,0} .. {2,0}z33
+{17,-3} .. {8,-8}z34
+{9,-11} .. {0,-23}z35
+);
+FuF (z36
+{0,-39} .. {-27,-21}z37
+{-24,-19} .. {-43,0}z38
+{-9,0} .. {-9,1}z39
+-- z40
+{30,-12} .. {20,-11}z41
+{28,-17} .. {15,-19}z42
+{18,-24} .. {0,-29}z43
+);
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(103,582FX#,425FY#,160FY#);
+"g";
+z1=(527FX,0FY);
+z2=(527FX,62FY);
+z3=(426FX,62FY);
+z4=(426FX,395FY);
+z5=(350FX,395FY);
+z6=(306FX,417FY);
+z7=(240FX,426FY);
+z8=(80FX,366FY);
+z9=(11FX,212FY);
+z10=(69FX,52FY);
+z11=(228FX,-16FY);
+z12=(298FX,-6FY);
+z13=(350FX,16FY);
+z14=(350FX,-161FY);
+z15=(426FX,-161FY);
+z16=(426FX,0FY);
+z17=(350FX,230FY);
+z18=(350FX,181FY);
+z19=(332FX,76FY);
+z20=(228FX,44FY);
+z21=(142FX,82FY);
+z22=(98FX,217FY);
+z23=(137FX,327FY);
+z24=(241FX,361FY);
+z25=(333FX,333FY);
+z26=(350FX,230FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{-19,11} .. {-10,3}z6
+{-17,6} .. {-27,0}z7
+{-63,0} .. {-44,-40}z8
+{-46,-42} .. {0,-61}z9
+{0,-64} .. {39,-43}z10
+{41,-45} .. {65,0}z11
+{20,0} .. {26,6}z12
+{27,7} .. {8,8}z13
+-- z14
+-- z15
+-- z16
+);
+FuF (z17
+-- z18
+{0,-54} .. {-12,-16}z19
+{-15,-21} .. {-54,0}z20
+{-34,0} .. {-23,25}z21
+{-29,31} .. {0,59}z22
+{0,48} .. {26,25}z23
+{25,23} .. {45,0}z24
+{47,0} .. {14,-19}z25
+{11,-16} .. {0,-53}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(104,434FX#,675FY#,0FY#);
+"h";
+z1=(379FX,0FY);
+z2=(379FX,299FY);
+z3=(348FX,383FY);
+
+z4=(282FX,420FY);
+z5=(218FX,428FY);
+z6=(155FX,423FY);
+z7=(86FX,397FY);
+z8=(86FX,676FY);
+z9=(11FX,676FY);
+z10=(11FX,0FY);
+z11=(86FX,0FY);
+z12=(86FX,278FY);
+z13=(113FX,332FY);
+z14=(199FX,355FY);
+z15=(283FX,328FY);
+z16=(304FX,263FY);
+z17=(304FX,0FY);
+FuF (z1
+-- z2
+{0,34} .. {-21,21}z3
+{-16,17} .. {-28,8}z4
+{-19,5} .. {-24,0}z5
+{-26,0} .. {-16,-3}z6
+{-23,-4} .. {-23,-13}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,22} .. {18,14}z13
+{20,16} .. {38,0}z14
+{38,0} .. {18,-18}z15
+{14,-15} .. {0,-28}z16
+-- z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(105,434FX#,671FY#,160FY#);
+"i";
+z1=(368FX,0FY);
+z2=(368FX,290FY);
+z3=(330FX,384FY);
+z4=(211FX,427FY);
+z5=(140FX,418FY);
+z6=(89FX,381FY);
+z7=(89FX,671FY);
+z8=(11FX,671FY);
+z9=(11FX,-161FY);
+z10=(89FX,-161FY);
+z11=(89FX,237FY);
+z12=(112FX,321FY);
+z13=(205FX,354FY);
+z14=(278FX,321FY);
+z15=(293FX,212FY);
+z16=(293FX,0FY);
+FuF (z1
+-- z2
+{0,37} .. {-25,26}z3
+{-28,28} .. {-51,0}z4
+{-30,0} .. {-18,-6}z5
+{-22,-7} .. {-12,-18}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,37} .. {15,19}z12
+{18,22} .. {44,0}z13
+{36,0} .. {13,-22}z14
+{10,-19} .. {0,-53}z15
+-- z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(106,474FX#,431FY#,169FY#);
+"j";
+z1=(418FX,-135FY);
+z2=(401FX,-74FY);
+z3=(282FX,-93FY);
+z4=(160FX,-107FY);
+z5=(118FX,-101FY);
+z6=(102FX,-83FY);
+z7=(200FX,31FY);
+z8=(320FX,144FY);
+z9=(378FX,281FY);
+z10=(333FX,390FY);
+z11=(221FX,432FY);
+z12=(80FX,384FY);
+z13=(25FX,279FY);
+z14=(56FX,199FY);
+z15=(116FX,151FY);
+z16=(147FX,93FY);
+z17=(113FX,36FY);
+z18=(51FX,-27FY);
+z19=(18FX,-89FY);
+z20=(32FX,-133FY);
+z21=(71FX,-163FY);
+z22=(150FX,-170FY);
+z23=(214FX,-165FY);
+z24=(304FX,-152FY);
+z25=(418FX,-135FY);
+z26=(299FX,268FY);
+z27=(265FX,197FY);
+z28=(212FX,143FY);
+z29=(143FX,208FY);
+z30=(102FX,285FY);
+z31=(146FX,348FY);
+z32=(212FX,370FY);
+z33=(270FX,352FY);
+z34=(299FX,268FY);
+FuF (z1
+-- z2
+{-40,-6} .. {-40,-6}z3
+{-54,-10} .. {-27,0}z4
+{-18,0} .. {-10,4}z5
+{-11,4} .. {0,8}z6
+{15,32} .. {50,44}z7
+{66,59} .. {14,17}z8
+{39,45} .. {0,46}z9
+{0,44} .. {-30,28}z10
+{-30,28} .. {-45,0}z11
+{-56,0} .. {-38,-32}z12
+{-37,-30} .. {0,-40}z13
+{0,-31} .. {21,-22}z14
+{20,-16} .. {20,-16}z15
+{21,-18} .. {0,-21}z16
+{0,-14} .. {-23,-23}z17
+{-20,-22} .. {-21,-21}z18
+{-22,-24} .. {0,-17}z19
+{0,-14} .. {9,-15}z20
+{10,-18} .. {15,-3}z21
+{30,-5} .. {23,0}z22
+{20,0} .. {23,3}z23
+{23,3} .. {37,6}z24
+{47,7} .. {29,4}z25
+);
+FuF (z26
+{0,-23} .. {-23,-24}z27
+{-13,-14} .. {-23,-22}z28
+{-8,13} .. {-37,30}z29
+{-27,22} .. {0,30}z30
+{0,25} .. {29,17}z31
+{24,15} .. {20,0}z32
+{24,0} .. {14,-12}z33
+{19,-17} .. {0,-39}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(107,434FX#,672FY#,160FY#);
+"k";
+z1=(379FX,-161FY);
+z2=(379FX,428FY);
+z3=(304FX,428FY);
+z4=(304FX,195FY);
+z5=(264FX,99FY);
+z6=(187FX,74FY);
+z7=(117FX,102FY);
+z8=(86FX,240FY);
+z9=(86FX,672FY);
+z10=(11FX,672FY);
+z11=(11FX,230FY);
+z12=(58FX,49FY);
+z13=(184FX,0FY);
+z14=(261FX,19FY);
+z15=(304FX,51FY);
+z16=(304FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-43} .. {-27,-21}z5
+{-21,-16} .. {-30,0}z6
+{-31,0} .. {-15,18}z7
+{-21,26} .. {0,67}z8
+-- z9
+-- z10
+-- z11
+{0,-84} .. {31,-37}z12
+{28,-33} .. {56,0}z13
+{32,0} .. {20,13}z14
+{5,3} .. {24,18}z15
+-- z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(108,301FX#,426FY#,160FY#);
+"l";
+z1=(246FX,-161FY);
+z2=(246FX,-86FY);
+z3=(88FX,-86FY);
+z4=(88FX,427FY);
+z5=(11FX,427FY);
+z6=(11FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+lbl (range 1 thru 6);
+endchar;
+
+beginchar(109,549FX#,673FY#,0FY#);
+"m";
+z1=(481FX,598FY);
+z2=(481FX,672FY);
+z3=(453FX,673FY);
+z4=(424FX,674FY);
+z5=(341FX,653FY);
+z6=(304FX,552FY);
+z7=(304FX,212FY);
+z8=(272FX,115FY);
+z9=(191FX,77FY);
+z10=(108FX,109FY);
+z11=(86FX,233FY);
+z12=(86FX,434FY);
+z13=(11FX,434FY);
+z14=(11FX,207FY);
+z15=(48FX,57FY);
+z16=(192FX,0FY);
+z17=(324FX,57FY);
+z18=(379FX,223FY);
+z19=(379FX,505FY);
+z20=(394FX,583FY);
+z21=(436FX,599FY);
+z22=(457FX,598FY);
+z23=(481FX,598FY);
+FuF (z1
+-- z2
+{-9,1} .. {-9,0}z3
+{-10,1} .. {-10,0}z4
+{-37,0} .. {-18,-14}z5
+{-24,-18} .. {0,-49}z6
+-- z7
+{0,-39} .. {-22,-26}z8
+{-21,-25} .. {-33,0}z9
+{-41,0} .. {-14,22}z10
+{-15,21} .. {0,62}z11
+-- z12
+-- z13
+-- z14
+{0,-67} .. {25,-33}z15
+{29,-38} .. {67,0}z16
+{54,0} .. {34,38}z17
+{37,41} .. {0,70}z18
+-- z19
+{0,39} .. {10,13}z20
+{8,11} .. {20,0}z21
+{7,0} .. {7,-1}z22
+{8,0} .. {9,0}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(110,532FX#,674FY#,15FY#);
+"n";
+z1=(476FX,0FY);
+z2=(476FX,428FY);
+z3=(401FX,428FY);
+z4=(401FX,142FY);
+z5=(366FX,81FY);
+z6=(290FX,58FY);
+z7=(224FX,87FY);
+z8=(197FX,201FY);
+z9=(197FX,544FY);
+z10=(191FX,544FY);
+z11=(171FX,543FY);
+z12=(152FX,543FY);
+z13=(147FX,543FY);
+z14=(142FX,543FY);
+z15=(136FX,543FY);
+z16=(94FX,548FY);
+z17=(85FX,572FY);
+z18=(85FX,629FY);
+z19=(85FX,675FY);
+z20=(18FX,675FY);
+z21=(18FX,628FY);
+z22=(18FX,587FY);
+z23=(24FX,512FY);
+z24=(56FX,490FY);
+z25=(123FX,490FY);
+z26=(123FX,194FY);
+z27=(174FX,35FY);
+z28=(270FX,-16FY);
+z29=(366FX,2FY);
+z30=(416FX,37FY);
+z31=(416FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-24} .. {-23,-16}z5
+{-22,-15} .. {-28,0}z6
+{-28,0} .. {-16,20}z7
+{-18,22} .. {0,54}z8
+-- z9
+-- z10
+{-7,0} .. {-6,0}z11
+{-7,0} .. {-6,0}z12
+-- z13
+-- z14
+-- z15
+{-23,0} .. {-5,3}z16
+{-6,3} .. {0,13}z17
+{0,17} .. {0,21}z18
+{0,21} .. {0,9}z19
+-- z20
+{0,-17} .. {0,-15}z21
+{0,-15} .. {0,-13}z22
+{0,-39} .. {4,-11}z23
+{4,-10} .. {17,-4}z24
+-- z25
+-- z26
+{0,-66} .. {34,-39}z27
+{29,-34} .. {35,0}z28
+{38,0} .. {26,12}z29
+{13,6} .. {21,17}z30
+-- z31
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(111,421FX#,435FY#,0FY#);
+"o";
+z1=(364FX,0FY);
+z2=(364FX,296FY);
+z3=(307FX,395FY);
+z4=(188FX,436FY);
+z5=(132FX,429FY);
+z6=(85FX,397FY);
+z7=(85FX,427FY);
+z8=(10FX,427FY);
+z9=(10FX,0FY);
+z10=(85FX,0FY);
+z11=(85FX,287FY);
+z12=(123FX,340FY);
+z13=(185FX,363FY);
+z14=(253FX,333FY);
+z15=(287FX,255FY);
+z16=(287FX,0FY);
+FuF (z1
+-- z2
+{0,38} .. {-38,28}z3
+{-36,27} .. {-44,0}z4
+{-22,0} .. {-15,-4}z5
+{-16,-5} .. {-16,-16}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,19} .. {25,17}z12
+{22,15} .. {19,0}z13
+{24,0} .. {21,-20}z14
+{23,-21} .. {0,-31}z15
+-- z16
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(112,695FX#,428FY#,159FY#);
+"p";
+z1=(640FX,-160FY);
+z2=(640FX,428FY);
+z3=(566FX,428FY);
+z4=(566FX,187FY);
+z5=(525FX,101FY);
+z6=(454FX,79FY);
+z7=(394FX,92FY);
+z8=(363FX,188FY);
+z9=(363FX,428FY);
+z10=(289FX,428FY);
+z11=(289FX,185FY);
+z12=(248FX,105FY);
+z13=(173FX,81FY);
+z14=(110FX,114FY);
+z15=(83FX,217FY);
+z16=(83FX,428FY);
+z17=(11FX,428FY);
+z18=(11FX,179FY);
+z19=(62FX,37FY);
+z20=(158FX,1FY);
+z21=(256FX,25FY);
+z22=(319FX,80FY);
+z23=(362FX,26FY);
+z24=(455FX,0FY);
+z25=(516FX,16FY);
+z26=(567FX,56FY);
+z27=(567FX,-160FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-38} .. {-27,-19}z5
+{-21,-15} .. {-26,0}z6
+{-28,0} .. {-11,9}z7
+{-21,15} .. {0,48}z8
+-- z9
+-- z10
+-- z11
+{0,-34} .. {-27,-19}z12
+{-22,-16} .. {-28,0}z13
+{-26,0} .. {-16,22}z14
+{-18,24} .. {0,45}z15
+-- z16
+-- z17
+-- z18
+{0,-64} .. {34,-31}z19
+{27,-24} .. {37,0}z20
+{34,0} .. {31,16}z21
+{31,16} .. {11,21}z22
+{10,-23} .. {19,-13}z23
+{24,-17} .. {38,0}z24
+{19,0} .. {22,11}z25
+{21,11} .. {12,15}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(113,548FX#,421FY#,180FY#);
+"q";
+z1=(504FX,236FY);
+z2=(490FX,312FY);
+z3=(432FX,387FY);
+z4=(315FX,422FY);
+z5=(226FX,407FY);
+z6=(180FX,375FY);
+z7=(180FX,406FY);
+z8=(106FX,406FY);
+z9=(106FX,0FY);
+z10=(18FX,0FY);
+z11=(18FX,-61FY);
+z12=(106FX,-61FY);
+z13=(106FX,-181FY);
+z14=(180FX,-181FY);
+z15=(180FX,-61FY);
+z16=(472FX,-61FY);
+z17=(472FX,0FY);
+z18=(180FX,0FY);
+z19=(180FX,80FY);
+z20=(230FX,35FY);
+z21=(302FX,25FY);
+z22=(389FX,42FY);
+z23=(469FX,106FY);
+z24=(504FX,236FY);
+z25=(437FX,221FY);
+z26=(406FX,129FY);
+z27=(310FX,87FY);
+z28=(225FX,119FY);
+z29=(196FX,182FY);
+z30=(193FX,228FY);
+z31=(223FX,325FY);
+z32=(315FX,355FY);
+z33=(406FX,323FY);
+z34=(437FX,221FY);
+FuF (z1
+{0,26} .. {-9,25}z2
+{-13,31} .. {-26,19}z3
+{-31,23} .. {-47,0}z4
+{-38,0} .. {-22,-10}z5
+{-10,-5} .. {-20,-17}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{13,-22} .. {20,-8}z20
+{17,-7} .. {31,0}z21
+{31,0} .. {27,12}z22
+{34,14} .. {19,29}z23
+{24,35} .. {0,52}z24
+);
+FuF (z25
+{0,-36} .. {-21,-25}z26
+{-23,-28} .. {-41,0}z27
+{-37,0} .. {-20,21}z28
+{-14,15} .. {-5,27}z29
+{-2,11} .. {0,19}z30
+{0,44} .. {20,21}z31
+{20,20} .. {41,0}z32
+{40,0} .. {20,-21}z33
+{21,-22} .. {0,-46}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(114,420FX#,430FY#,161FY#);
+"r";
+z1=(365FX,0FY);
+z2=(365FX,297FY);
+z3=(335FX,386FY);
+z4=(271FX,424FY);
+z5=(209FX,431FY);
+z6=(141FX,428FY);
+z7=(86FX,406FY);
+z8=(86FX,428FY);
+z9=(11FX,428FY);
+z10=(11FX,-161FY);
+z11=(86FX,-161FY);
+z12=(86FX,275FY);
+z13=(113FX,347FY);
+z14=(184FX,369FY);
+z15=(255FX,354FY);
+z16=(290FX,301FY);
+z17=(290FX,0FY);
+FuF (z1
+-- z2
+{0,37} .. {-20,22}z3
+{-16,18} .. {-27,7}z4
+{-18,4} .. {-23,0}z5
+{-33,0} .. {-12,-2}z6
+{-21,-3} .. {-15,-12}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{0,31} .. {18,17}z13
+{17,15} .. {30,0}z14
+{28,0} .. {20,-10}z15
+{23,-13} .. {0,-23}z16
+-- z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(115,435FX#,428FY#,0FY#);
+"s";
+z1=(380FX,0FY);
+z2=(380FX,428FY);
+z3=(305FX,428FY);
+z4=(305FX,189FY);
+z5=(276FX,100FY);
+z6=(188FX,71FY);
+z7=(115FX,106FY);
+z8=(86FX,189FY);
+z9=(86FX,428FY);
+z10=(11FX,428FY);
+z11=(11FX,182FY);
+z12=(68FX,38FY);
+z13=(191FX,0FY);
+z14=(265FX,12FY);
+z15=(305FX,43FY);
+z16=(305FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-40} .. {-20,-19}z5
+{-19,-19} .. {-39,0}z6
+{-29,0} .. {-20,23}z7
+{-19,23} .. {0,32}z8
+-- z9
+-- z10
+-- z11
+{0,-65} .. {38,-32}z12
+{30,-25} .. {52,0}z13
+{32,0} .. {17,8}z14
+{17,8} .. {9,13}z15
+-- z16
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(116,684FX#,442FY#,160FY#);
+"t";
+z1=(629FX,0FY);
+z2=(629FX,290FY);
+z3=(606FX,374FY);
+z4=(546FX,423FY);
+z5=(492FX,441FY);
+z6=(445FX,443FY);
+z7=(390FX,440FY);
+z8=(349FX,427FY);
+z9=(291FX,427FY);
+z10=(291FX,174FY);
+z11=(261FX,82FY);
+z12=(174FX,56FY);
+z13=(107FX,75FY);
+z14=(86FX,149FY);
+z15=(86FX,427FY);
+z16=(11FX,427FY);
+z17=(11FX,161FY);
+z18=(39FX,42FY);
+z19=(104FX,-7FY);
+z20=(176FX,-17FY);
+z21=(243FX,-3FY);
+z22=(291FX,21FY);
+z23=(291FX,-161FY);
+z24=(365FX,-161FY);
+z25=(365FX,297FY);
+z26=(381FX,349FY);
+z27=(453FX,368FY);
+z28=(536FX,338FY);
+z29=(555FX,282FY);
+z30=(555FX,0FY);
+FuF (z1
+-- z2
+{0,32} .. {-15,24}z3
+{-12,18} .. {-28,14}z4
+{-17,10} .. {-19,2}z5
+{-7,1} .. {-24,0}z6
+{-19,0} .. {-17,-2}z7
+{-18,-2} .. {-9,-6}z8
+-- z9
+-- z10
+{0,-42} .. {-20,-19}z11
+{-19,-17} .. {-39,0}z12
+{-32,0} .. {-13,13}z13
+{-14,14} .. {0,35}z14
+-- z15
+-- z16
+-- z17
+{0,-50} .. {18,-29}z18
+{15,-24} .. {28,-9}z19
+{18,-7} .. {29,0}z20
+{23,0} .. {22,9}z21
+{4,1} .. {28,15}z22
+-- z23
+-- z24
+-- z25
+{0,24} .. {11,11}z26
+{13,13} .. {35,0}z27
+{38,0} .. {17,-20}z28
+{13,-14} .. {0,-23}z29
+-- z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(117,752FX#,435FY#,0FY#);
+"u";
+z1=(364FX,0FY);
+z2=(364FX,296FY);
+z3=(307FX,395FY);
+z4=(188FX,436FY);
+z5=(132FX,429FY);
+z6=(85FX,397FY);
+z7=(85FX,427FY);
+z8=(10FX,427FY);
+z9=(10FX,0FY);
+z10=(85FX,0FY);
+z11=(85FX,287FY);
+z12=(123FX,340FY);
+z13=(185FX,363FY);
+z14=(253FX,333FY);
+z15=(287FX,255FY);
+z16=(287FX,0FY);
+z17=(697FX,0FY);
+z18=(697FX,52FY);
+z19=(507FX,52FY);
+z20=(507FX,426FY);
+z21=(433FX,426FY);
+z22=(433FX,0FY);
+FuF (z1
+-- z2
+{0,38} .. {-38,28}z3
+{-36,27} .. {-44,0}z4
+{-22,0} .. {-15,-4}z5
+{-16,-5} .. {-16,-16}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{0,19} .. {25,17}z12
+{22,15} .. {19,0}z13
+{24,0} .. {21,-20}z14
+{23,-21} .. {0,-31}z15
+-- z16
+);
+FuF (z17
+-- z18
+-- z19
+-- z20
+-- z21
+-- z22
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(118,536FX#,674FY#,160FY#);
+"v";
+z1=(482FX,-161FY);
+z2=(482FX,-93FY);
+z3=(365FX,-93FY);
+z4=(365FX,675FY);
+z5=(291FX,675FY);
+z6=(291FX,163FY);
+z7=(272FX,97FY);
+z8=(191FX,69FY);
+z9=(113FX,96FY);
+z10=(86FX,173FY);
+z11=(86FX,427FY);
+z12=(11FX,427FY);
+z13=(11FX,126FY);
+z14=(56FX,31FY);
+z15=(172FX,-6FY);
+z16=(239FX,2FY);
+z17=(291FX,20FY);
+z18=(291FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{0,-29} .. {-13,-15}z7
+{-16,-19} .. {-38,0}z8
+{-34,0} .. {-18,18}z9
+{-18,18} .. {0,33}z10
+-- z11
+-- z12
+-- z13
+{0,-39} .. {30,-24}z14
+{30,-24} .. {48,0}z15
+{26,0} .. {19,5}z16
+{4,1} .. {31,11}z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(119,330FX#,425FY#,0FY#);
+"w";
+z1=(275FX,0FY);
+z2=(275FX,52FY);
+z3=(85FX,52FY);
+z4=(85FX,426FY);
+z5=(11FX,426FY);
+z6=(11FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+lbl (range 1 thru 6);
+endchar;
+
+beginchar(120,654FX#,674FY#,160FY#);
+"x";
+z1=(425FX,0FY);
+z2=(563FX,45FY);
+z3=(599FX,187FY);
+z4=(599FX,428FY);
+z5=(524FX,428FY);
+z6=(524FX,228FY);
+z7=(512FX,98FY);
+z8=(432FX,61FY);
+z9=(354FX,98FY);
+z10=(334FX,188FY);
+z11=(334FX,234FY);
+z12=(326FX,321FY);
+z13=(293FX,397FY);
+z14=(217FX,429FY);
+z15=(142FX,415FY);
+z16=(85FX,382FY);
+z17=(85FX,675FY);
+z18=(11FX,675FY);
+z19=(11FX,-161FY);
+z20=(85FX,-161FY);
+z21=(85FX,272FY);
+z22=(121FX,335FY);
+z23=(180FX,355FY);
+z24=(244FX,319FY);
+z25=(261FX,233FY);
+z26=(261FX,192FY);
+z27=(299FX,41FY);
+z28=(425FX,0FY);
+FuF (z1
+{66,0} .. {26,30}z2
+{24,27} .. {0,67}z3
+-- z4
+-- z5
+-- z6
+{0,-68} .. {-8,-19}z7
+{-11,-25} .. {-42,0}z8
+{-37,0} .. {-15,25}z9
+{-13,21} .. {0,39}z10
+-- z11
+{0,33} .. {-5,25}z12
+{-7,33} .. {-15,18}z13
+{-19,21} .. {-32,0}z14
+{-26,0} .. {-24,-9}z15
+{-23,-8} .. {-16,-14}z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+{0,25} .. {24,17}z22
+{19,13} .. {20,0}z23
+{29,0} .. {14,-24}z24
+{11,-21} .. {0,-37}z25
+-- z26
+{0,-72} .. {25,-29}z27
+{25,-27} .. {59,0}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(121,262FX#,428FY#,159FY#);
+"y";
+z1=(206FX,6FY);
+z2=(206FX,428FY);
+z3=(121FX,428FY);
+z4=(121FX,66FY);
+z5=(91FX,-46FY);
+z6=(13FX,-69FY);
+z7=(13FX,-160FY);
+z8=(143FX,-125FY);
+z9=(206FX,6FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-55} .. {-20,-20}z5
+{-15,-15} .. {-37,0}z6
+-- z7
+{53,0} .. {34,23}z8
+{42,28} .. {0,59}z9
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(122,537FX#,441FY#,160FY#);
+"z";
+z1=(482FX,-161FY);
+z2=(482FX,-100FY);
+z3=(426FX,-100FY);
+z4=(426FX,410FY);
+z5=(350FX,410FY);
+z6=(293FX,437FY);
+z7=(240FX,441FY);
+z8=(80FX,381FY);
+z9=(11FX,228FY);
+z10=(69FX,68FY);
+z11=(228FX,0FY);
+z12=(294FX,11FY);
+z13=(350FX,43FY);
+z14=(350FX,-161FY);
+z15=(340FX,240FY);
+z16=(320FX,120FY);
+z17=(223FX,68FY);
+z18=(176FX,80FY);
+z19=(120FX,124FY);
+z20=(93FX,215FY);
+z21=(132FX,328FY);
+z22=(229FX,373FY);
+z23=(318FX,343FY);
+z24=(340FX,240FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{-24,15} .. {-14,4}z6
+{-14,3} .. {-22,0}z7
+{-63,0} .. {-44,-40}z8
+{-46,-41} .. {0,-61}z9
+{0,-64} .. {39,-43}z10
+{41,-45} .. {65,0}z11
+{26,0} .. {18,7}z12
+{10,4} .. {27,17}z13
+-- z14
+);
+FuF (z15
+{0,-54} .. {-13,-27}z16
+{-14,-29} .. {-50,-6}z17
+{-14,0} .. {-18,8}z18
+{-23,10} .. {-14,19}z19
+{-18,25} .. {0,36}z20
+{0,45} .. {26,30}z21
+{26,30} .. {39,0}z22
+{43,0} .. {16,-20}z23
+{15,-18} .. {0,-50}z24
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(123,449FX#,257FY#,0FY#);
+"hyphen";
+z1=(0FX,197FY);
+z2=(450FX,197FY);
+z3=(450FX,257FY);
+z4=(0FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,43FX#,730FY#,0FY#);
+"shesht";
+z1=(-8FX,694FY);
+z2=(-4FX,707FY);
+z3=(-12FX,724FY);
+z4=(-30FX,731FY);
+z5=(-49FX,720FY);
+z6=(-133FX,588FY);
+z7=(-137FX,572FY);
+z8=(-132FX,557FY);
+z9=(-119FX,551FY);
+z10=(-102FX,562FY);
+FuF (z1
+{3,4} .. {0,4}z2
+{0,7} .. {-5,5}z3
+{-5,5} .. {-7,0}z4
+{-8,0} .. {-5,-7}z5
+-- z6
+{-3,-6} .. {0,-5}z7
+{0,-6} .. {4,-4}z8
+{3,-4} .. {5,0}z9
+{6,0} .. {5,8}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(125,999FX#,257FY#,0FY#);
+"emdash";
+z1=(0FX,197FY);
+z2=(1000FX,197FY);
+z3=(1000FX,257FY);
+z4=(0FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,319FX#,695FY#,0FY#);
+"exclam";
+z1=(116FX,696FY);
+z2=(118FX,623FY);
+z3=(120FX,409FY);
+z4=(121FX,396FY);
+z5=(121FX,352FY);
+z6=(123FX,229FY);
+z7=(124FX,216FY);
+z8=(124FX,184FY);
+z9=(125FX,177FY);
+z10=(130FX,176FY);
+z11=(188FX,176FY);
+z12=(194FX,184FY);
+z13=(194FX,260FY);
+z14=(196FX,319FY);
+z15=(200FX,530FY);
+z16=(201FX,544FY);
+z17=(201FX,587FY);
+z18=(203FX,696FY);
+z19=(116FX,86FY);
+z20=(116FX,0FY);
+z21=(203FX,0FY);
+z22=(203FX,86FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{0,-4} .. {0,-1}z9
+{1,0} .. {2,0}z10
+-- z11
+{4,0} .. {0,5}z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+);
+FuF (z19
+-- z20
+-- z21
+-- z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(3,623FX#,652FY#,0FY#);
+"Dz";
+z1=(522FX,4FY);
+z2=(429FX,84FY);
+z3=(349FX,121FY);
+z4=(468FX,246FY);
+z5=(520FX,432FY);
+z6=(456FX,591FY);
+z7=(269FX,653FY);
+z8=(95FX,597FY);
+z9=(19FX,450FY);
+z10=(19FX,399FY);
+z11=(102FX,399FY);
+z12=(102FX,445FY);
+z13=(163FX,557FY);
+z14=(278FX,585FY);
+z15=(397FX,544FY);
+z16=(431FX,442FY);
+z17=(396FX,288FY);
+z18=(326FX,189FY);
+z19=(274FX,146FY);
+z20=(218FX,151FY);
+z21=(136FX,153FY);
+z22=(43FX,133FY);
+z23=(10FX,70FY);
+z24=(39FX,16FY);
+z25=(115FX,0FY);
+z26=(238FX,34FY);
+z27=(280FX,63FY);
+z28=(327FX,48FY);
+z29=(398FX,4FY);
+z30=(202FX,86FY);
+z31=(161FX,61FY);
+z32=(132FX,57FY);
+z33=(117FX,57FY);
+z34=(86FX,60FY);
+z35=(75FX,73FY);
+z36=(94FX,90FY);
+z37=(132FX,94FY);
+z38=(171FX,91FY);
+z39=(202FX,86FY);
+FuF (z1
+{-37,37} .. {-25,16}z2
+{-15,9} .. {-39,16}z3
+{49,32} .. {30,51}z4
+{34,58} .. {0,66}z5
+{0,67} .. {-42,39}z6
+{-45,41} .. {-80,0}z7
+{-67,0} .. {-49,-37}z8
+{-51,-39} .. {0,-59}z9
+-- z10
+-- z11
+-- z12
+{0,51} .. {41,24}z13
+{30,18} .. {46,0}z14
+{53,0} .. {26,-27}z15
+{22,-24} .. {0,-44}z16
+{0,-55} .. {-23,-48}z17
+{-18,-36} .. {-29,-30}z18
+{-20,-20} .. {-15,-9}z19
+{-19,2} .. {-19,1}z20
+{-18,2} .. {-36,0}z21
+{-41,0} .. {-21,-14}z22
+{-22,-13} .. {0,-29}z23
+{0,-24} .. {19,-12}z24
+{18,-11} .. {33,0}z25
+{48,0} .. {34,23}z26
+{10,7} .. {18,12}z27
+{17,-4} .. {14,-6}z28
+{29,-12} .. {19,-18}z29
+);
+FuF (z30
+{-21,-14} .. {-7,-3}z31
+{-7,-3} .. {-12,0}z32
+-- z33
+{-13,0} .. {-8,2}z34
+{-7,2} .. {0,7}z35
+{0,8} .. {13,3}z36
+{9,2} .. {17,0}z37
+{15,0} .. {11,-2}z38
+{12,-2} .. {9,-1}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(4,749FX#,655FY#,84FY#);
+"Gh";
+z1=(645FX,-84FY);
+z2=(603FX,20FY);
+z3=(493FX,61FY);
+z4=(493FX,441FY);
+z5=(417FX,597FY);
+z6=(237FX,656FY);
+z7=(84FX,611FY);
+z8=(10FX,458FY);
+z9=(10FX,399FY);
+z10=(94FX,399FY);
+z11=(94FX,440FY);
+z12=(132FX,553FY);
+z13=(251FX,585FY);
+z14=(367FX,539FY);
+z15=(409FX,438FY);
+z16=(409FX,0FY);
+z17=(500FX,-8FY);
+z18=(557FX,-84FY);
+FuF (z1
+{0,42} .. {-28,27}z2
+{-29,28} .. {-45,0}z3
+-- z4
+{0,63} .. {-50,41}z5
+{-49,39} .. {-71,0}z6
+{-61,0} .. {-41,-30}z7
+{-49,-36} .. {0,-66}z8
+-- z9
+-- z10
+-- z11
+{0,53} .. {26,22}z12
+{24,21} .. {55,0}z13
+{47,0} .. {31,-30}z14
+{28,-29} .. {0,-39}z15
+-- z16
+{45,0} .. {15,-5}z17
+{32,-11} .. {6,-39}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(5,652FX#,660FY#,0FY#);
+"Chmute";
+z1=(572FX,21FY);
+z2=(284FX,451FY);
+z3=(422FX,605FY);
+z4=(366FX,660FY);
+z5=(244FX,516FY);
+z6=(200FX,585FY);
+z7=(152FX,528FY);
+z8=(192FX,463FY);
+z9=(129FX,376FY);
+z10=(49FX,245FY);
+z11=(10FX,133FY);
+z12=(10FX,124FY);
+z13=(43FX,32FY);
+z14=(153FX,0FY);
+z15=(287FX,14FY);
+z16=(394FX,40FY);
+z17=(468FX,54FY);
+z18=(494FX,21FY);
+z19=(409FX,121FY);
+z20=(307FX,87FY);
+z21=(210FX,72FY);
+z22=(119FX,79FY);
+z23=(87FX,133FY);
+z24=(87FX,141FY);
+z25=(88FX,153FY);
+z26=(116FX,207FY);
+z27=(177FX,301FY);
+z28=(238FX,384FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{-19,-25} .. {-23,-33}z9
+{-32,-48} .. {-21,-40}z10
+{-26,-50} .. {0,-25}z11
+{0,-4} .. {0,-2}z12
+{6,-45} .. {16,-16}z13
+{21,-21} .. {53,0}z14
+{41,0} .. {48,9}z15
+{21,4} .. {51,13}z16
+{35,9} .. {14,0}z17
+-- z18
+);
+FuF (z19
+{-27,-13} .. {-41,-9}z20
+{-40,-10} .. {-24,0}z21
+{-48,0} .. {-13,5}z22
+{-22,7} .. {0,29}z23
+{0,2} .. {0,3}z24
+{0,3} .. {1,5}z25
+{0,4} .. {18,32}z26
+{18,29} .. {23,33}z27
+{26,38} .. {15,18}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(6,467FX#,649FY#,54FY#);
+"Esimple";
+z1=(303FX,410FY);
+z2=(303FX,471FY);
+z3=(92FX,471FY);
+z4=(92FX,650FY);
+z5=(10FX,650FY);
+z6=(10FX,0FY);
+z7=(182FX,0FY);
+z8=(274FX,-16FY);
+z9=(294FX,-54FY);
+z10=(375FX,-54FY);
+z11=(341FX,27FY);
+z12=(222FX,69FY);
+z13=(92FX,69FY);
+z14=(92FX,410FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{44,0} .. {17,-11}z8
+{14,-8} .. {0,-17}z9
+-- z10
+{0,31} .. {-23,23}z11
+{-28,28} .. {-51,0}z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(7,556FX#,646FY#,67FY#);
+"Article";
+z1=(483FX,-68FY);
+z2=(444FX,35FY);
+z3=(284FX,71FY);
+z4=(94FX,71FY);
+z5=(94FX,403FY);
+z6=(126FX,513FY);
+z7=(200FX,560FY);
+z8=(282FX,571FY);
+z9=(381FX,540FY);
+z10=(409FX,430FY);
+z11=(409FX,395FY);
+z12=(493FX,395FY);
+z13=(493FX,458FY);
+z14=(440FX,595FY);
+z15=(282FX,647FY);
+z16=(87FX,589FY);
+z17=(10FX,409FY);
+z18=(10FX,0FY);
+z19=(263FX,0FY);
+z20=(376FX,-14FY);
+z21=(405FX,-68FY);
+FuF (z1
+{0,48} .. {-26,21}z2
+{-30,24} .. {-76,0}z3
+-- z4
+-- z5
+{0,46} .. {22,28}z6
+{18,22} .. {32,9}z7
+{24,7} .. {31,0}z8
+{48,0} .. {18,-20}z9
+{19,-21} .. {0,-52}z10
+-- z11
+-- z12
+-- z13
+{0,59} .. {-35,33}z14
+{-37,35} .. {-69,0}z15
+{-82,0} .. {-48,-39}z16
+{-51,-41} .. {0,-79}z17
+-- z18
+-- z19
+{56,0} .. {20,-9}z20
+{19,-10} .. {0,-26}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(8,774FX#,652FY#,0FY#);
+"Th";
+z1=(656FX,342FY);
+z2=(656FX,401FY);
+z3=(557FX,401FY);
+z4=(557FX,421FY);
+z5=(513FX,569FY);
+z6=(417FX,636FY);
+z7=(323FX,652FY);
+z8=(197FX,620FY);
+z9=(69FX,506FY);
+z10=(10FX,284FY);
+z11=(10FX,0FY);
+z12=(95FX,0FY);
+z13=(95FX,255FY);
+z14=(154FX,484FY);
+z15=(339FX,582FY);
+z16=(439FX,546FY);
+z17=(483FX,420FY);
+z18=(483FX,399FY);
+z19=(411FX,399FY);
+z20=(263FX,353FY);
+z21=(227FX,252FY);
+z22=(282FX,132FY);
+z23=(395FX,84FY);
+z24=(514FX,131FY);
+z25=(557FX,278FY);
+z26=(557FX,342FY);
+z27=(483FX,277FY);
+z28=(464FX,174FY);
+z29=(393FX,147FY);
+z30=(323FX,173FY);
+z31=(294FX,249FY);
+z32=(330FX,326FY);
+z33=(413FX,342FY);
+z34=(483FX,342FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,61} .. {-30,38}z5
+{-23,30} .. {-41,14}z6
+{-30,11} .. {-33,0}z7
+{-40,0} .. {-44,-21}z8
+{-54,-27} .. {-32,-49}z9
+{-39,-60} .. {0,-88}z10
+-- z11
+-- z12
+-- z13
+{0,94} .. {40,59}z14
+{43,66} .. {80,0}z15
+{42,0} .. {25,-24}z16
+{29,-28} .. {0,-56}z17
+-- z18
+-- z19
+{-68,0} .. {-31,-31}z20
+{-24,-24} .. {0,-43}z21
+{0,-46} .. {36,-34}z22
+{34,-32} .. {41,0}z23
+{52,0} .. {27,32}z24
+{29,33} .. {0,65}z25
+-- z26
+);
+FuF (z27
+{0,-50} .. {-13,-19}z28
+{-12,-18} .. {-35,0}z29
+{-28,0} .. {-18,17}z30
+{-19,18} .. {0,32}z31
+{0,37} .. {24,14}z32
+{17,11} .. {38,0}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(9,716FX#,646FY#,0FY#);
+"Zh";
+z1=(568FX,331FY);
+z2=(568FX,399FY);
+z3=(560FX,399FY);
+z4=(549FX,399FY);
+z5=(544FX,399FY);
+z6=(538FX,399FY);
+z7=(530FX,399FY);
+z8=(521FX,399FY);
+z9=(510FX,399FY);
+z10=(497FX,399FY);
+z11=(483FX,399FY);
+z12=(459FX,399FY);
+z13=(442FX,399FY);
+z14=(442FX,646FY);
+z15=(358FX,646FY);
+z16=(358FX,401FY);
+z17=(231FX,401FY);
+z18=(141FX,388FY);
+z19=(51FX,333FY);
+z20=(10FX,210FY);
+z21=(23FX,103FY);
+z22=(83FX,28FY);
+z23=(227FX,0FY);
+z24=(389FX,47FY);
+z25=(442FX,207FY);
+z26=(442FX,331FY);
+z27=(358FX,179FY);
+z28=(324FX,96FY);
+z29=(257FX,81FY);
+z30=(244FX,81FY);
+z31=(227FX,81FY);
+z32=(120FX,103FY);
+z33=(93FX,209FY);
+z34=(131FX,303FY);
+z35=(259FX,331FY);
+z36=(358FX,331FY);
+FuF (z1
+-- z2
+{-2,0} .. {-3,0}z3
+{-3,0} .. {-4,0}z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{-5,0} .. {-11,0}z12
+{-10,0} .. {-1,0}z13
+-- z14
+-- z15
+-- z16
+-- z17
+{-32,0} .. {-28,-8}z18
+{-38,-12} .. {-22,-25}z19
+{-27,-31} .. {0,-51}z20
+{0,-46} .. {9,-25}z21
+{10,-33} .. {30,-17}z22
+{33,-19} .. {63,0}z23
+{75,0} .. {33,31}z24
+{36,32} .. {0,74}z25
+-- z26
+);
+FuF (z27
+{0,-40} .. {-22,-15}z28
+{-15,-10} .. {-29,0}z29
+{-1,0} .. {-8,0}z30
+{-8,0} .. {-3,0}z31
+{-55,0} .. {-16,15}z32
+{-18,15} .. {0,55}z33
+{0,44} .. {26,19}z34
+{26,18} .. {60,0}z35
+-- z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(10,615FX#,655FY#,0FY#);
+"Sh";
+z1=(562FX,233FY);
+z2=(463FX,233FY);
+z3=(434FX,129FY);
+z4=(368FX,86FY);
+z5=(294FX,78FY);
+z6=(152FX,129FY);
+z7=(90FX,265FY);
+z8=(146FX,407FY);
+z9=(263FX,484FY);
+z10=(359FX,531FY);
+z11=(391FX,528FY);
+z12=(439FX,524FY);
+z13=(481FX,530FY);
+z14=(509FX,548FY);
+z15=(531FX,631FY);
+z16=(482FX,605FY);
+z17=(427FX,597FY);
+z18=(341FX,612FY);
+z19=(245FX,641FY);
+z20=(168FX,655FY);
+z21=(95FX,649FY);
+z22=(54FX,626FY);
+z23=(37FX,555FY);
+z24=(89FX,572FY);
+z25=(154FX,578FY);
+z26=(218FX,571FY);
+z27=(264FX,554FY);
+z28=(158FX,495FY);
+z29=(56FX,418FY);
+z30=(10FX,291FY);
+z31=(76FX,87FY);
+z32=(284FX,0FY);
+z33=(486FX,48FY);
+z34=(562FX,233FY);
+FuF (z1
+-- z2
+{0,-44} .. {-20,-25}z3
+{-15,-21} .. {-29,-8}z4
+{-19,-5} .. {-31,0}z5
+{-55,0} .. {-40,34}z6
+{-41,36} .. {0,55}z7
+{0,55} .. {37,40}z8
+{26,27} .. {52,25}z9
+{61,29} .. {3,2}z10
+{2,0} .. {19,-2}z11
+{19,-3} .. {13,0}z12
+{16,0} .. {12,4}z13
+{13,3} .. {6,9}z14
+-- z15
+{-16,-12} .. {-17,-5}z16
+{-17,-5} .. {-20,0}z17
+{-25,0} .. {-32,10}z18
+{-33,9} .. {-31,10}z19
+{-31,9} .. {-20,0}z20
+{-31,0} .. {-17,-4}z21
+{-18,-4} .. {-10,-12}z22
+-- z23
+{15,8} .. {20,3}z24
+{20,4} .. {24,0}z25
+{23,0} .. {20,-5}z26
+{20,-4} .. {11,-7}z27
+{-36,-20} .. {-35,-20}z28
+{-46,-25} .. {-22,-26}z29
+{-30,-36} .. {0,-49}z30
+{0,-83} .. {44,-53}z31
+{48,-58} .. {90,0}z32
+{91,0} .. {44,32}z33
+{51,36} .. {0,87}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(11,586FX#,646FY#,0FY#);
+"Ch";
+z1=(534FX,401FY);
+z2=(480FX,574FY);
+z3=(278FX,646FY);
+z4=(96FX,572FY);
+z5=(10FX,387FY);
+z6=(10FX,370FY);
+z7=(95FX,370FY);
+z8=(158FX,529FY);
+z9=(294FX,574FY);
+z10=(407FX,526FY);
+z11=(441FX,399FY);
+z12=(391FX,255FY);
+z13=(276FX,141FY);
+z14=(152FX,96FY);
+z15=(86FX,132FY);
+z16=(19FX,87FY);
+z17=(188FX,0FY);
+z18=(340FX,0FY);
+z19=(230FX,50FY);
+z20=(330FX,91FY);
+z21=(466FX,210FY);
+z22=(534FX,401FY);
+FuF (z1
+{0,74} .. {-36,41}z2
+{-43,48} .. {-92,0}z3
+{-68,0} .. {-54,-49}z4
+{-57,-51} .. {0,-72}z5
+-- z6
+-- z7
+{0,71} .. {42,35}z8
+{35,30} .. {56,0}z9
+{50,0} .. {25,-32}z10
+{23,-29} .. {0,-55}z11
+{0,-46} .. {-33,-50}z12
+{-31,-45} .. {-46,-31}z13
+{-45,-30} .. {-38,0}z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{21,0} .. {46,27}z20
+{56,33} .. {35,46}z21
+{46,59} .. {0,68}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(12,723FX#,652FY#,0FY#);
+"Rhard";
+z1=(614FX,189FY);
+z2=(681FX,190FY);
+z3=(656FX,265FY);
+z4=(554FX,297FY);
+z5=(491FX,297FY);
+z6=(491FX,401FY);
+z7=(449FX,565FY);
+z8=(355FX,637FY);
+z9=(264FX,653FY);
+z10=(140FX,632FY);
+z11=(47FX,555FY);
+z12=(10FX,401FY);
+z13=(10FX,0FY);
+z14=(94FX,0FY);
+z15=(94FX,398FY);
+z16=(136FX,533FY);
+z17=(253FX,585FY);
+z18=(359FX,541FY);
+z19=(408FX,394FY);
+z20=(408FX,0FY);
+z21=(491FX,0FY);
+z22=(491FX,237FY);
+z23=(514FX,237FY);
+z24=(595FX,231FY);
+z25=(614FX,189FY);
+FuF (z1
+-- z2
+{0,33} .. {-17,17}z3
+{-21,21} .. {-47,0}z4
+-- z5
+-- z6
+{0,69} .. {-28,41}z7
+{-23,34} .. {-40,14}z8
+{-27,11} .. {-33,0}z9
+{-47,0} .. {-36,-14}z10
+{-40,-16} .. {-22,-35}z11
+{-24,-39} .. {0,-63}z12
+-- z13
+-- z14
+-- z15
+{0,56} .. {28,34}z16
+{29,34} .. {49,0}z17
+{43,0} .. {28,-29}z18
+{33,-34} .. {0,-64}z19
+-- z20
+-- z21
+-- z22
+-- z23
+{46,0} .. {8,-4}z24
+{7,-4} .. {5,-24}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(13,779FX#,713FY#,0FY#);
+"Ts";
+z1=(722FX,533FY);
+z2=(698FX,609FY);
+z3=(639FX,643FY);
+z4=(560FX,651FY);
+z5=(186FX,651FY);
+z6=(94FX,666FY);
+z7=(75FX,714FY);
+z8=(0FX,714FY);
+z9=(26FX,625FY);
+z10=(92FX,588FY);
+z11=(177FX,582FY);
+z12=(119FX,481FY);
+z13=(93FX,330FY);
+z14=(116FX,174FY);
+z15=(195FX,50FY);
+z16=(338FX,0FY);
+z17=(522FX,76FY);
+z18=(588FX,326FY);
+z19=(568FX,472FY);
+z20=(525FX,551FY);
+z21=(487FX,585FY);
+z22=(509FX,585FY);
+z23=(622FX,578FY);
+z24=(650FX,533FY);
+z25=(506FX,315FY);
+z26=(465FX,139FY);
+z27=(342FX,61FY);
+z28=(265FX,86FY);
+z29=(202FX,171FY);
+z30=(176FX,330FY);
+z31=(191FX,449FY);
+z32=(240FX,552FY);
+z33=(337FX,595FY);
+z34=(446FX,548FY);
+z35=(494FX,438FY);
+z36=(506FX,315FY);
+FuF (z1
+{0,32} .. {-16,18}z2
+{-13,16} .. {-26,6}z3
+{-20,6} .. {-33,0}z4
+-- z5
+{-46,0} .. {-15,10}z6
+{-13,8} .. {0,24}z7
+-- z8
+{0,-39} .. {17,-21}z9
+{16,-18} .. {28,-7}z10
+{20,-4} .. {37,0}z11
+{-25,-31} .. {-13,-37}z12
+{-18,-45} .. {0,-56}z13
+{0,-57} .. {15,-47}z14
+{18,-53} .. {35,-30}z15
+{39,-33} .. {56,0}z16
+{81,0} .. {42,51}z17
+{44,54} .. {0,113}z18
+{0,56} .. {-13,41}z19
+{-10,31} .. {-18,21}z20
+{-10,12} .. {-15,10}z21
+-- z22
+{60,0} .. {15,-5}z23
+{19,-5} .. {0,-25}z24
+);
+FuF (z25
+{0,-70} .. {-27,-47}z26
+{-30,-52} .. {-52,0}z27
+{-27,0} .. {-24,17}z28
+{-26,19} .. {-15,37}z29
+{-17,42} .. {0,64}z30
+{0,42} .. {10,37}z31
+{11,44} .. {22,24}z32
+{26,29} .. {39,0}z33
+{45,0} .. {28,-32}z34
+{22,-26} .. {10,-47}z35
+{8,-35} .. {0,-47}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(14,728FX#,654FY#,0FY#);
+"Ph";
+z1=(661FX,317FY);
+z2=(609FX,463FY);
+z3=(494FX,530FY);
+z4=(378FX,546FY);
+z5=(378FX,654FY);
+z6=(295FX,654FY);
+z7=(295FX,546FY);
+z8=(83FX,476FY);
+z9=(21FX,330FY);
+z10=(46FX,236FY);
+z11=(133FX,154FY);
+z12=(295FX,119FY);
+z13=(295FX,0FY);
+z14=(378FX,0FY);
+z15=(378FX,119FY);
+z16=(575FX,165FY);
+z17=(661FX,317FY);
+z18=(580FX,317FY);
+z19=(540FX,233FY);
+z20=(432FX,192FY);
+z21=(378FX,192FY);
+z22=(378FX,484FY);
+z23=(392FX,484FY);
+z24=(533FX,438FY);
+z25=(580FX,317FY);
+z26=(295FX,192FY);
+z27=(256FX,192FY);
+z28=(151FX,231FY);
+z29=(109FX,326FY);
+z30=(156FX,442FY);
+z31=(283FX,484FY);
+z32=(295FX,484FY);
+FuF (z1
+{0,60} .. {-35,38}z2
+{-28,30} .. {-49,15}z3
+{-36,11} .. {-41,0}z4
+-- z5
+-- z6
+-- z7
+{-92,0} .. {-49,-47}z8
+{-42,-39} .. {0,-58}z9
+{0,-33} .. {17,-29}z10
+{20,-35} .. {38,-20}z11
+{44,-24} .. {64,0}z12
+-- z13
+-- z14
+-- z15
+{82,0} .. {50,31}z16
+{58,35} .. {0,66}z17
+);
+FuF (z18
+{0,-31} .. {-27,-26}z19
+{-29,-27} .. {-43,0}z20
+-- z21
+-- z22
+-- z23
+{61,0} .. {34,-31}z24
+{31,-30} .. {0,-51}z25
+);
+FuF (z26
+-- z27
+{-42,0} .. {-28,26}z28
+{-28,26} .. {0,37}z29
+{0,49} .. {31,28}z30
+{32,28} .. {53,0}z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(15,652FX#,634FY#,19FY#);
+"Osimple";
+z1=(602FX,306FY);
+z2=(326FX,635FY);
+z3=(50FX,306FY);
+z4=(325FX,-20FY);
+z5=(602FX,306FY);
+z6=(326FX,38FY);
+z7=(129FX,319FY);
+z8=(325FX,578FY);
+z9=(523FX,319FY);
+z10=(326FX,38FY);
+FuF (z1
+{0,186} .. {-148,0}z2
+{-150,0} .. {0,-184}z3
+{0,-188} .. {144,0}z4
+{149,0} .. {0,186}z5
+);
+FuF (z6
+{-104,0} .. {0,170}z7
+{0,163} .. {99,0}z8
+{103,0} .. {0,-159}z9
+{0,-173} .. {-101,0}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(19,600FX#,646FY#,0FY#);
+"dz";
+z1=(412FX,4FY);
+z2=(487FX,4FY);
+z3=(428FX,137FY);
+z4=(344FX,296FY);
+z5=(265FX,392FY);
+z6=(296FX,439FY);
+z7=(324FX,484FY);
+z8=(350FX,537FY);
+z9=(288FX,572FY);
+z10=(242FX,600FY);
+z11=(223FX,611FY);
+z12=(259FX,647FY);
+z13=(185FX,647FY);
+z14=(138FX,598FY);
+z15=(175FX,580FY);
+z16=(215FX,555FY);
+z17=(263FX,525FY);
+z18=(182FX,413FY);
+z19=(70FX,278FY);
+z20=(13FX,104FY);
+z21=(13FX,85FY);
+z22=(58FX,19FY);
+z23=(169FX,0FY);
+z24=(283FX,12FY);
+z25=(391FX,39FY);
+z26=(357FX,105FY);
+z27=(289FX,87FY);
+z28=(214FX,68FY);
+z29=(160FX,61FY);
+z30=(108FX,73FY);
+z31=(90FX,124FY);
+z32=(90FX,130FY);
+z33=(114FX,202FY);
+z34=(164FX,281FY);
+z35=(205FX,330FY);
+z36=(212FX,331FY);
+z37=(269FX,280FY);
+z38=(357FX,105FY);
+FuF (z1
+-- z2
+{-13,35} .. {-26,53}z3
+{-30,63} .. {-26,43}z4
+{-33,53} .. {-20,11}z5
+{16,24} .. {5,7}z6
+{12,20} .. {6,10}z7
+{8,16} .. {9,20}z8
+{-22,12} .. {-19,11}z9
+{-10,6} .. {-20,13}z10
+{-7,3} .. {-6,4}z11
+-- z12
+-- z13
+-- z14
+{12,-5} .. {13,-7}z15
+{8,-5} .. {19,-12}z16
+{24,-15} .. {8,-5}z17
+{-9,-25} .. {-45,-49}z18
+{-56,-62} .. {-18,-28}z19
+{-38,-58} .. {0,-58}z20
+-- z21
+{3,-31} .. {27,-13}z22
+{24,-13} .. {49,0}z23
+{43,0} .. {34,8}z24
+{69,18} .. {3,0}z25
+);
+FuF (z26
+{-22,-6} .. {-23,-5}z27
+{-31,-8} .. {-19,-4}z28
+{-25,-5} .. {-11,0}z29
+{-26,0} .. {-9,8}z30
+{-8,8} .. {-4,26}z31
+{0,2} .. {0,2}z32
+{0,17} .. {16,31}z33
+{14,26} .. {20,27}z34
+{18,25} .. {9,8}z35
+{4,1} .. {1,0}z36
+{17,0} .. {21,-34}z37
+{22,-34} .. {37,-83}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(20,552FX#,428FY#,160FY#);
+"gh";
+z1=(496FX,-161FY);
+z2=(496FX,-93FY);
+z3=(379FX,-93FY);
+z4=(379FX,237FY);
+z5=(323FX,384FY);
+z6=(207FX,428FY);
+z7=(136FX,417FY);
+z8=(85FX,372FY);
+z9=(85FX,428FY);
+z10=(11FX,428FY);
+z11=(11FX,0FY);
+z12=(86FX,0FY);
+z13=(86FX,244FY);
+z14=(117FX,322FY);
+z15=(194FX,354FY);
+z16=(275FX,319FY);
+z17=(304FX,241FY);
+z18=(304FX,-161FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,64} .. {-37,34}z5
+{-32,29} .. {-46,0}z6
+{-28,0} .. {-19,-7}z7
+{-22,-8} .. {-12,-22}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{0,31} .. {21,21}z14
+{20,21} .. {31,0}z15
+{31,0} .. {23,-23}z16
+{20,-20} .. {0,-32}z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(21,542FX#,646FY#,0FY#);
+"chmute";
+z1=(487FX,15FY);
+z2=(223FX,392FY);
+z3=(302FX,528FY);
+z4=(342FX,568FY);
+z5=(397FX,582FY);
+z6=(397FX,647FY);
+z7=(255FX,583FY);
+z8=(169FX,444FY);
+z9=(99FX,451FY);
+z10=(138FX,399FY);
+z11=(89FX,275FY);
+z12=(36FX,161FY);
+z13=(11FX,66FY);
+z14=(13FX,40FY);
+z15=(22FX,17FY);
+z16=(49FX,8FY);
+z17=(97FX,4FY);
+z18=(212FX,16FY);
+z19=(366FX,61FY);
+z20=(403FX,15FY);
+z21=(321FX,118FY);
+z22=(240FX,91FY);
+z23=(173FX,76FY);
+z24=(145FX,71FY);
+z25=(114FX,67FY);
+z26=(89FX,89FY);
+z27=(107FX,154FY);
+z28=(181FX,326FY);
+FuF (z1
+-- z2
+-- z3
+{12,21} .. {13,6}z4
+{10,5} .. {27,4}z5
+-- z6
+{-60,0} .. {-35,-42}z7
+{-29,-47} .. {-29,-46}z8
+-- z9
+-- z10
+{-9,-34} .. {-23,-49}z11
+{-34,-74} .. {-1,-3}z12
+{-17,-40} .. {0,-23}z13
+{0,-10} .. {1,-7}z14
+{1,-7} .. {5,-8}z15
+{5,-4} .. {13,-2}z16
+{13,-3} .. {19,0}z17
+{35,0} .. {42,8}z18
+{51,10} .. {52,20}z19
+-- z20
+);
+FuF (z21
+{-13,-7} .. {-41,-11}z22
+{-29,-7} .. {-16,-3}z23
+{-6,-1} .. {-12,-2}z24
+{-13,-3} .. {-8,0}z25
+{-17,0} .. {0,15}z26
+{0,14} .. {12,29}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(22,405FX#,672FY#,71FY#);
+"esimple";
+z1=(350FX,365FY);
+z2=(350FX,427FY);
+z3=(86FX,427FY);
+z4=(86FX,672FY);
+z5=(11FX,672FY);
+z6=(11FX,0FY);
+z7=(150FX,0FY);
+z8=(238FX,-19FY);
+z9=(261FX,-71FY);
+z10=(332FX,-71FY);
+z11=(273FX,33FY);
+z12=(157FX,64FY);
+z13=(86FX,64FY);
+z14=(86FX,365FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{42,0} .. {17,-12}z8
+{13,-11} .. {2,-24}z9
+-- z10
+{0,44} .. {-39,25}z11
+{-33,21} .. {-44,0}z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(23,477FX#,428FY#,159FY#);
+"article";
+z1=(422FX,-96FY);
+z2=(86FX,-96FY);
+z3=(86FX,271FY);
+z4=(115FX,330FY);
+z5=(201FX,354FY);
+z6=(278FX,334FY);
+z7=(304FX,254FY);
+z8=(304FX,0FY);
+z9=(379FX,0FY);
+z10=(379FX,289FY);
+z11=(326FX,393FY);
+z12=(228FX,429FY);
+z13=(158FX,422FY);
+z14=(86FX,378FY);
+z15=(86FX,428FY);
+z16=(11FX,428FY);
+z17=(11FX,-160FY);
+z18=(422FX,-160FY);
+FuF (z1
+-- z2
+-- z3
+{0,24} .. {19,15}z4
+{21,16} .. {36,0}z5
+{35,0} .. {16,-13}z6
+{18,-16} .. {0,-38}z7
+-- z8
+-- z9
+-- z10
+{0,42} .. {-35,27}z11
+{-30,24} .. {-35,0}z12
+{-31,0} .. {-16,-4}z13
+{-23,-7} .. {-25,-22}z14
+-- z15
+-- z16
+-- z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(24,583FX#,428FY#,160FY#);
+"th";
+z1=(466FX,280FY);
+z2=(418FX,383FY);
+z3=(262FX,428FY);
+z4=(171FX,411FY);
+z5=(84FX,345FY);
+z6=(84FX,427FY);
+z7=(11FX,427FY);
+z8=(11FX,-161FY);
+z9=(84FX,-161FY);
+z10=(84FX,230FY);
+z11=(103FX,283FY);
+z12=(161FX,342FY);
+z13=(263FX,370FY);
+z14=(373FX,350FY);
+z15=(407FX,280FY);
+z16=(338FX,280FY);
+z17=(211FX,238FY);
+z18=(169FX,142FY);
+z19=(198FX,46FY);
+z20=(304FX,0FY);
+z21=(422FX,46FY);
+z22=(466FX,156FY);
+z23=(466FX,230FY);
+z24=(539FX,230FY);
+z25=(539FX,280FY);
+z26=(407FX,165FY);
+z27=(371FX,72FY);
+z28=(308FX,53FY);
+z29=(252FX,74FY);
+z30=(226FX,124FY);
+z31=(258FX,203FY);
+z32=(357FX,230FY);
+z33=(407FX,230FY);
+FuF (z1
+{0,42} .. {-32,26}z2
+{-36,30} .. {-68,0}z3
+{-34,0} .. {-27,-12}z4
+{-32,-13} .. {-26,-31}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{0,14} .. {13,21}z11
+{15,24} .. {24,15}z12
+{30,19} .. {38,0}z13
+{51,0} .. {22,-13}z14
+{23,-13} .. {0,-33}z15
+-- z16
+{-55,0} .. {-30,-28}z17
+{-28,-25} .. {0,-39}z18
+{0,-39} .. {19,-25}z19
+{23,-31} .. {47,0}z20
+{48,0} .. {31,31}z21
+{29,30} .. {0,43}z22
+-- z23
+-- z24
+-- z25
+);
+FuF (z26
+{0,-43} .. {-24,-19}z27
+{-17,-12} .. {-25,0}z28
+{-23,0} .. {-15,14}z29
+{-17,16} .. {0,17}z30
+{0,35} .. {21,18}z31
+{21,18} .. {45,0}z32
+-- z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(25,582FX#,672FY#,0FY#);
+"zh";
+z1=(527FX,364FY);
+z2=(527FX,428FY);
+z3=(423FX,428FY);
+z4=(423FX,672FY);
+z5=(349FX,672FY);
+z6=(349FX,428FY);
+z7=(301FX,428FY);
+z8=(94FX,373FY);
+z9=(11FX,216FY);
+z10=(49FX,78FY);
+z11=(136FX,15FY);
+z12=(233FX,0FY);
+z13=(366FX,37FY);
+z14=(423FX,202FY);
+z15=(423FX,364FY);
+z16=(349FX,170FY);
+z17=(308FX,79FY);
+z18=(235FX,64FY);
+z19=(218FX,64FY);
+z20=(134FX,95FY);
+z21=(88FX,216FY);
+z22=(122FX,309FY);
+z23=(203FX,353FY);
+z24=(305FX,364FY);
+z25=(349FX,364FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+{-85,0} .. {-53,-37}z8
+{-55,-39} .. {0,-66}z9
+{0,-57} .. {25,-35}z10
+{21,-29} .. {37,-13}z11
+{29,-10} .. {36,0}z12
+{60,0} .. {29,25}z13
+{38,31} .. {0,79}z14
+-- z15
+);
+FuF (z16
+{0,-44} .. {-27,-17}z17
+{-16,-10} .. {-32,0}z18
+-- z19
+{-32,0} .. {-24,21}z20
+{-30,27} .. {0,53}z21
+{0,39} .. {23,23}z22
+{18,20} .. {35,10}z23
+{29,7} .. {39,0}z24
+-- z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(26,407FX#,428FY#,164FY#);
+"sh";
+z1=(349FX,-154FY);
+z2=(348FX,-76FY);
+z3=(279FX,-91FY);
+z4=(213FX,-96FY);
+z5=(147FX,-90FY);
+z6=(120FX,-74FY);
+z7=(177FX,3FY);
+z8=(283FX,92FY);
+z9=(339FX,250FY);
+z10=(302FX,366FY);
+z11=(185FX,428FY);
+z12=(79FX,393FY);
+z13=(35FX,317FY);
+z14=(26FX,245FY);
+z15=(27FX,231FY);
+z16=(28FX,219FY);
+z17=(99FX,219FY);
+z18=(109FX,310FY);
+z19=(178FX,355FY);
+z20=(245FX,321FY);
+z21=(263FX,241FY);
+z22=(197FX,120FY);
+z23=(76FX,5FY);
+z24=(11FX,-96FY);
+z25=(61FX,-145FY);
+z26=(201FX,-163FY);
+z27=(206FX,-163FY);
+z28=(211FX,-163FY);
+z29=(233FX,-164FY);
+z30=(261FX,-165FY);
+z31=(301FX,-162FY);
+z32=(349FX,-154FY);
+FuF (z1
+-- z2
+{-23,-7} .. {-23,-3}z3
+{-23,-4} .. {-21,0}z4
+{-27,0} .. {-17,4}z5
+{-18,5} .. {0,6}z6
+{0,23} .. {38,29}z7
+{55,41} .. {15,18}z8
+{37,44} .. {0,62}z9
+{0,42} .. {-25,35}z10
+{-29,41} .. {-49,0}z11
+{-44,0} .. {-26,-23}z12
+{-20,-18} .. {-9,-32}z13
+{-6,-22} .. {0,-26}z14
+{0,-4} .. {0,-6}z15
+{0,-5} .. {1,-3}z16
+-- z17
+{0,43} .. {7,18}z18
+{11,30} .. {35,0}z19
+{31,0} .. {14,-23}z20
+{12,-19} .. {0,-34}z21
+{0,-34} .. {-45,-46}z22
+{-39,-39} .. {-40,-38}z23
+{-43,-43} .. {0,-25}z24
+{0,-21} .. {33,-11}z25
+{34,-12} .. {60,0}z26
+{2,0} .. {1,0}z27
+{2,0} .. {1,0}z28
+{5,0} .. {10,0}z29
+{9,0} .. {10,0}z30
+{11,0} .. {15,2}z31
+{15,2} .. {17,4}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(27,333FX#,428FY#,166FY#);
+"ch";
+z1=(278FX,-152FY);
+z2=(279FX,-92FY);
+z3=(234FX,-101FY);
+z4=(184FX,-106FY);
+z5=(146FX,-99FY);
+z6=(132FX,-76FY);
+z7=(168FX,-11FY);
+z8=(233FX,60FY);
+z9=(268FX,169FY);
+z10=(235FX,234FY);
+z11=(174FX,272FY);
+z12=(141FX,308FY);
+z13=(181FX,364FY);
+z14=(241FX,428FY);
+z15=(156FX,428FY);
+z16=(85FX,347FY);
+z17=(58FX,297FY);
+z18=(93FX,250FY);
+z19=(157FX,219FY);
+z20=(192FX,154FY);
+z21=(153FX,71FY);
+z22=(81FX,7FY);
+z23=(43FX,-78FY);
+z24=(60FX,-124FY);
+z25=(100FX,-155FY);
+z26=(131FX,-164FY);
+z27=(168FX,-166FY);
+z28=(243FX,-159FY);
+z29=(278FX,-152FY);
+FuF (z1
+-- z2
+{-20,-4} .. {-10,-2}z3
+{-20,-3} .. {-13,0}z4
+{-16,0} .. {-9,5}z5
+{-10,5} .. {0,11}z6
+{0,19} .. {24,25}z7
+{36,38} .. {7,9}z8
+{23,33} .. {0,39}z9
+{0,25} .. {-22,19}z10
+{-5,4} .. {-35,21}z11
+{-22,13} .. {0,11}z12
+{0,6} .. {27,31}z13
+{15,16} .. {25,27}z14
+-- z15
+{-26,-22} .. {-22,-32}z16
+{-18,-26} .. {0,-7}z17
+{0,-19} .. {24,-12}z18
+{21,-10} .. {22,-10}z19
+{23,-16} .. {0,-28}z20
+{0,-29} .. {-26,-26}z21
+{-24,-22} .. {-23,-23}z22
+{-26,-25} .. {0,-31}z23
+{0,-17} .. {12,-14}z24
+{10,-13} .. {17,-7}z25
+{9,-4} .. {11,-2}z26
+{11,-1} .. {13,0}z27
+{22,0} .. {28,5}z28
+{9,2} .. {14,3}z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(28,523FX#,428FY#,0FY#);
+"rhard";
+z1=(466FX,64FY);
+z2=(317FX,64FY);
+z3=(381FX,153FY);
+z4=(405FX,218FY);
+z5=(409FX,259FY);
+z6=(347FX,386FY);
+z7=(215FX,428FY);
+z8=(131FX,416FY);
+z9=(71FX,385FY);
+z10=(71FX,428FY);
+z11=(11FX,428FY);
+z12=(11FX,0FY);
+z13=(86FX,0FY);
+z14=(86FX,273FY);
+z15=(125FX,336FY);
+z16=(214FX,359FY);
+z17=(301FX,336FY);
+z18=(335FX,259FY);
+z19=(315FX,181FY);
+z20=(272FX,105FY);
+z21=(231FX,43FY);
+z22=(231FX,0FY);
+z23=(466FX,0FY);
+FuF (z1
+-- z2
+{28,31} .. {15,28}z3
+{12,22} .. {4,21}z4
+{3,13} .. {0,15}z5
+{0,53} .. {-42,31}z6
+{-36,28} .. {-52,0}z7
+{-28,0} .. {-28,-8}z8
+{-28,-9} .. {-12,-12}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{0,26} .. {26,16}z15
+{24,15} .. {35,0}z16
+{38,0} .. {20,-15}z17
+{23,-16} .. {0,-35}z18
+{0,-22} .. {-14,-30}z19
+{-10,-22} .. {-18,-29}z20
+{-14,-21} .. {-13,-20}z21
+-- z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(29,492FX#,632FY#,0FY#);
+"ts";
+z1=(437FX,234FY);
+z2=(374FX,396FY);
+z3=(240FX,527FY);
+z4=(119FX,632FY);
+z5=(24FX,632FY);
+z6=(114FX,551FY);
+z7=(189FX,485FY);
+z8=(228FX,436FY);
+z9=(72FX,379FY);
+z10=(11FX,241FY);
+z11=(59FX,71FY);
+z12=(237FX,0FY);
+z13=(376FX,64FY);
+z14=(437FX,234FY);
+z15=(361FX,226FY);
+z16=(323FX,104FY);
+z17=(218FX,66FY);
+z18=(130FX,99FY);
+z19=(85FX,203FY);
+z20=(121FX,322FY);
+z21=(232FX,370FY);
+z22=(318FX,346FY);
+z23=(361FX,226FY);
+FuF (z1
+{0,53} .. {-42,54}z2
+{-28,36} .. {-61,51}z3
+{-68,56} .. {-13,14}z4
+-- z5
+{24,-24} .. {36,-30}z6
+{39,-34} .. {10,-11}z7
+{22,-21} .. {4,-12}z8
+{-63,0} .. {-41,-38}z9
+{-41,-37} .. {0,-55}z10
+{0,-73} .. {32,-40}z11
+{37,-47} .. {81,0}z12
+{54,0} .. {38,43}z13
+{41,45} .. {0,69}z14
+);
+FuF (z15
+{0,-54} .. {-26,-27}z16
+{-24,-26} .. {-46,0}z17
+{-33,0} .. {-25,22}z18
+{-30,26} .. {0,44}z19
+{0,49} .. {24,30}z20
+{26,32} .. {48,0}z21
+{37,0} .. {20,-16}z22
+{29,-23} .. {0,-57}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(30,684FX#,662FY#,160FY#);
+"ph";
+z1=(629FX,0FY);
+z2=(629FX,317FY);
+z3=(569FX,409FY);
+z4=(482FX,441FY);
+z5=(419FX,431FY);
+z6=(365FX,407FY);
+z7=(365FX,663FY);
+z8=(290FX,663FY);
+z9=(290FX,150FY);
+z10=(260FX,83FY);
+z11=(183FX,62FY);
+z12=(105FX,95FY);
+z13=(86FX,186FY);
+z14=(86FX,427FY);
+z15=(11FX,427FY);
+z16=(11FX,185FY);
+z17=(52FX,38FY);
+z18=(161FX,-9FY);
+z19=(241FX,-3FY);
+z20=(290FX,18FY);
+z21=(290FX,-161FY);
+z22=(365FX,-161FY);
+z23=(365FX,286FY);
+z24=(388FX,347FY);
+z25=(455FX,367FY);
+z26=(530FX,338FY);
+z27=(555FX,269FY);
+z28=(555FX,0FY);
+FuF (z1
+-- z2
+{0,35} .. {-40,27}z3
+{-33,21} .. {-25,0}z4
+{-21,0} .. {-21,-7}z5
+{-22,-6} .. {-14,-10}z6
+-- z7
+-- z8
+-- z9
+{0,-29} .. {-20,-15}z10
+{-18,-14} .. {-33,0}z11
+{-37,0} .. {-15,22}z12
+{-13,19} .. {0,42}z13
+-- z14
+-- z15
+-- z16
+{0,-65} .. {27,-33}z17
+{25,-31} .. {47,0}z18
+{35,0} .. {18,4}z19
+{18,4} .. {15,10}z20
+-- z21
+-- z22
+-- z23
+{0,27} .. {16,14}z24
+{15,13} .. {29,0}z25
+{32,0} .. {18,-19}z26
+{17,-18} .. {0,-28}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(31,473FX#,436FY#,10FY#);
+"osimple";
+z1=(444FX,208FY);
+z2=(237FX,437FY);
+z3=(28FX,208FY);
+z4=(236FX,-10FY);
+z5=(444FX,208FY);
+z6=(236FX,50FY);
+z7=(102FX,218FY);
+z8=(236FX,379FY);
+z9=(371FX,218FY);
+z10=(236FX,50FY);
+FuF (z1
+{0,127} .. {-113,0}z2
+{-117,0} .. {0,-125}z3
+{0,-125} .. {111,0}z4
+{114,0} .. {0,123}z5
+);
+FuF (z6
+{-65,0} .. {0,115}z7
+{0,115} .. {62,0}z8
+{66,0} .. {0,-112}z9
+{0,-112} .. {-70,0}z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(32,620FX#,635FY#,16FY#);
+"ev";
+z1=(481FX,64FY);
+z2=(365FX,64FY);
+z3=(365FX,428FY);
+z4=(290FX,428FY);
+z5=(290FX,161FY);
+z6=(263FX,83FY);
+z7=(185FX,56FY);
+z8=(112FX,89FY);
+z9=(86FX,172FY);
+z10=(86FX,635FY);
+z11=(11FX,635FY);
+z12=(11FX,197FY);
+z13=(56FX,38FY);
+z14=(185FX,-17FY);
+z15=(254FX,-3FY);
+z16=(293FX,28FY);
+z17=(293FX,0FY);
+z18=(481FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{0,-35} .. {-18,-17}z6
+{-18,-18} .. {-34,0}z7
+{-31,0} .. {-18,22}z8
+{-17,21} .. {0,34}z9
+-- z10
+-- z11
+-- z12
+{0,-70} .. {30,-36}z13
+{30,-36} .. {56,0}z14
+{30,0} .. {16,9}z15
+{13,10} .. {13,10}z16
+-- z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(127,473FX#,707FY#,0FY#);
+"question";
+z1=(55FX,654FY);
+z2=(61FX,638FY);
+z3=(79FX,589FY);
+z4=(91FX,598FY);
+z5=(112FX,613FY);
+z6=(162FX,635FY);
+z7=(216FX,643FY);
+z8=(289FX,632FY);
+z9=(330FX,589FY);
+z10=(335FX,556FY);
+z11=(320FX,498FY);
+z12=(312FX,489FY);
+z13=(302FX,480FY);
+z14=(293FX,472FY);
+z15=(265FX,442FY);
+z16=(231FX,394FY);
+z17=(207FX,342FY);
+z18=(191FX,284FY);
+z19=(188FX,246FY);
+z20=(187FX,184FY);
+z21=(188FX,178FY);
+z22=(191FX,176FY);
+z23=(250FX,176FY);
+z24=(257FX,183FY);
+z25=(257FX,216FY);
+z26=(257FX,238FY);
+z27=(289FX,346FY);
+z28=(342FX,415FY);
+z29=(365FX,435FY);
+z30=(386FX,456FY);
+z31=(402FX,483FY);
+z32=(416FX,544FY);
+z33=(403FX,615FY);
+z34=(365FX,666FY);
+z35=(308FX,697FY);
+z36=(235FX,707FY);
+z37=(139FX,695FY);
+z38=(55FX,654FY);
+z39=(179FX,86FY);
+z40=(179FX,0FY);
+z41=(265FX,0FY);
+z42=(265FX,86FY);
+FuF (z1
+-- z2
+-- z3
+{2,1} .. {6,5}z4
+{5,3} .. {9,7}z5
+{15,9} .. {19,6}z6
+{19,5} .. {17,0}z7
+{29,0} .. {20,-7}z8
+{20,-7} .. {7,-22}z9
+{3,-11} .. {0,-11}z10
+{0,-24} .. {-10,-15}z11
+{-3,-3} .. {-3,-3}z12
+{-2,-2} .. {-4,-4}z13
+{-4,-3} .. {-2,-2}z14
+{-14,-13} .. {-5,-7}z15
+{-13,-16} .. {-9,-16}z16
+{-9,-17} .. {-7,-18}z17
+{-7,-18} .. {-4,-21}z18
+{-2,-18} .. {0,-8}z19
+-- z20
+{0,-3} .. {1,-1}z21
+{0,-1} .. {2,-1}z22
+-- z23
+{4,0} .. {0,5}z24
+-- z25
+-- z26
+{0,34} .. {21,38}z27
+{14,26} .. {21,19}z28
+{7,7} .. {8,7}z29
+{8,7} .. {6,7}z30
+{5,7} .. {5,11}z31
+{9,19} .. {0,22}z32
+{0,27} .. {-9,21}z33
+{-9,21} .. {-16,13}z34
+{-16,13} .. {-22,7}z35
+{-23,7} .. {-26,0}z36
+{-36,0} .. {-28,-8}z37
+{-28,-9} .. {-28,-19}z38
+);
+FuF (z39
+-- z40
+-- z41
+-- z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+% ligatures e' ev
+ligtable 101:
+39=:22,
+118=:32;
+
+% ligatures E'
+ligtable 69:
+39=:6;
+
+
+% ligature u'
+ligtable 117:
+39=:23;
+
+% ligature U'
+ligtable 85:
+39=:7;
+
+
+% ligatures t' th
+ligtable 116:
+39=:24,
+104=:24;
+
+% ligatures T' Th TH
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+
+% ligature dz
+ligtable 100:
+122=:19;
+
+% ligatures Dz DZ
+ligtable 68:
+122=:3,
+90=:3;
+
+
+% ligatures g' gh
+ligtable 103:
+39=:25,
+104=:20;
+
+% ligatures G' Gh GH
+ligtable 71:
+39=:9,
+104=:4,
+72=:4;
+
+
+% ligature j'
+ligtable 106:
+39=:21;
+
+% ligature J'
+ligtable 74:
+39=:5;
+
+
+% ligature sh
+ligtable 115:
+104=:26;
+
+% ligatures Sh SH
+ligtable 83:
+104=:10,
+72=:10;
+
+
+% ligatures c' ch
+ligtable 99:
+39=:29,
+104=:27;
+
+% ligatures C' Ch CH
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+
+% ligature r'
+ligtable 114:
+39=:28;
+
+% ligature R'
+ligtable 82:
+39=:12;
+
+
+% ligatures p' ph
+ligtable 112:
+39=:30,
+104=:30;
+
+% ligatures P' Ph PH
+ligtable 80:
+39=:14,
+104=:14,
+72=:14;
+
+
+% ligature o'
+ligtable 111:
+39=:31;
+
+% ligature O'
+ligtable 79:
+39=:15,
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+% ligature ''
+ligtable 39:
+39=:34;
+
+% ligature ``
+ligtable 96:
+96=:92;
+
+% ligature <<
+ligtable 60:
+60=:60;
+
+% ligature >>
+ligtable 62:
+62=:62;
+
+% ligature --
+ligtable 45:
+45=:123;
+
+
+% ligature ---
+ligtable 123:
+45=:125;
+
+
+% spacing for U'
+ligtable 7:
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+
+% spacing for O'
+ligtable 15:
+63 kern 110FX#,
+33 kern 110FX#,
+124 kern 110FX#;
+
+
+% spacing for ev
+ligtable 32:
+63 kern -110FX#,
+33 kern -110FX#,
+124 kern -110FX#;
+
+
+% spacing for harcakan nshan
+ligtable 63:
+"a" kern -78FX#,
+"b" kern -78FX#,
+"g" kern -78FX#,
+"d" kern -78FX#,
+"z" kern -78FX#,
+23 kern -78FX#,
+25 kern -78FX#,
+"l" kern -78FX#,
+19 kern -78FX#,
+20 kern -78FX#,
+21 kern -78FX#,
+"m" kern -78FX#,
+"y" kern -138FX#,
+26 kern -78FX#,
+"o" kern -78FX#,
+27 kern -78FX#,
+"p" kern -78FX#,
+"j" kern -78FX#,
+28 kern -78FX#,
+"s" kern -78FX#,
+"v" kern -78FX#,
+"r" kern -78FX#,
+"c" kern -78FX#,
+"u" kern -78FX#,
+30 kern -78FX#,
+"q" kern -138FX#,
+31 kern -78FX#,
+"f" kern -78FX#,
+"w" kern -78FX#,
+"B" kern -78FX#,
+"Z" kern -78FX#,
+ 7 kern -78FX#,
+ 9 kern -78FX#,
+ 5 kern -78FX#,
+"O" kern -78FX#,
+11 kern -78FX#,
+"P" kern -78FX#,
+"J" kern -78FX#,
+"V" kern -78FX#,
+12 kern -78FX#,
+"R" kern -78FX#,
+"C" kern -78FX#,
+"U" kern -78FX#,
+14 kern -78FX#,
+"Q" kern -78FX#,
+15 kern -78FX#,
+"F" kern -78FX#,
+"H" kern -42FX#,
+"Y" kern -42FX#;
+
+
+% spacing for bacakanchakan nshan
+ligtable 33:
+"a" kern -78FX#,
+"b" kern -78FX#,
+"g" kern -78FX#,
+"d" kern -78FX#,
+"z" kern -78FX#,
+23 kern -78FX#,
+25 kern -78FX#,
+"l" kern -78FX#,
+19 kern -78FX#,
+20 kern -78FX#,
+21 kern -78FX#,
+"m" kern -78FX#,
+"y" kern -138FX#,
+26 kern -78FX#,
+"o" kern -78FX#,
+27 kern -78FX#,
+"p" kern -78FX#,
+"j" kern -78FX#,
+28 kern -78FX#,
+"s" kern -78FX#,
+"v" kern -78FX#,
+"r" kern -78FX#,
+"c" kern -78FX#,
+"u" kern -78FX#,
+30 kern -78FX#,
+"q" kern -138FX#,
+31 kern -78FX#,
+"f" kern -78FX#,
+"w" kern -78FX#,
+"B" kern -78FX#,
+"Z" kern -78FX#,
+ 7 kern -78FX#,
+ 9 kern -78FX#,
+ 5 kern -78FX#,
+"O" kern -78FX#,
+11 kern -78FX#,
+"P" kern -78FX#,
+"J" kern -78FX#,
+"V" kern -78FX#,
+12 kern -78FX#,
+"R" kern -78FX#,
+"C" kern -78FX#,
+"U" kern -78FX#,
+14 kern -78FX#,
+"Q" kern -78FX#,
+15 kern -78FX#,
+"F" kern -78FX#,
+"H" kern -42FX#,
+"Y" kern -42FX#;
+
+font_slant := 0.1700;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "arsssl10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/artmb10.mf b/Master/texmf-dist/fonts/source/public/armenian/artmb10.mf
new file mode 100644
index 00000000000..659663f6ddc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/artmb10.mf
@@ -0,0 +1,7676 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 artmb10.mf (Armenian Times Bold 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,159FX#,763FY#,0FY#);
+"bacakanchakan";
+z1=(157FX,636FY);
+z2=(138FX,763FY);
+z3=(101FX,750FY);
+z4=(115FX,718FY);
+z5=(71FX,658FY);
+z6=(40FX,636FY);
+z7=(0FX,605FY);
+z8=(-29FX,524FY);
+z9=(-5FX,446FY);
+z10=(30FX,459FY);
+z11=(20FX,490FY);
+z12=(43FX,535FY);
+z13=(93FX,574FY);
+z14=(126FX,597FY);
+z15=(157FX,636FY);
+FuF (z1
+{18,43} .. {-28,36}z2
+-- z3
+{12,-19} .. {-1,-6}z4
+{-1,-28} .. {-19,-18}z5
+-- z6
+-- z7
+{-21,-17} .. {0,-37}z8
+{1,-25} .. {17,-29}z9
+-- z10
+{-9,17} .. {0,7}z11
+{0,7} .. {17,24}z12
+{17,13} .. {17,12}z13
+-- z14
+{14,11} .. {7,15}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(34,542FX#,624FY#,0FY#);
+"quotedblright";
+z1=(156FX,507FY);
+z2=(64FX,337FY);
+z3=(60FX,327FY);
+z4=(63FX,320FY);
+z5=(69FX,314FY);
+z6=(79FX,311FY);
+z7=(86FX,312FY);
+z8=(140FX,367FY);
+z9=(177FX,437FY);
+z10=(189FX,514FY);
+z11=(179FX,567FY);
+z12=(151FX,608FY);
+z13=(105FX,624FY);
+z14=(66FX,615FY);
+z15=(42FX,589FY);
+z16=(34FX,555FY);
+z17=(53FX,506FY);
+z18=(105FX,485FY);
+z19=(156FX,507FY);
+z20=(382FX,507FY);
+z21=(356FX,414FY);
+z22=(291FX,337FY);
+z23=(287FX,327FY);
+z24=(289FX,320FY);
+z25=(296FX,314FY);
+z26=(305FX,311FY);
+z27=(312FX,312FY);
+z28=(367FX,367FY);
+z29=(403FX,436FY);
+z30=(415FX,514FY);
+z31=(405FX,567FY);
+z32=(377FX,608FY);
+z33=(331FX,624FY);
+z34=(293FX,615FY);
+z35=(269FX,589FY);
+z36=(261FX,555FY);
+z37=(280FX,506FY);
+z38=(331FX,485FY);
+z39=(382FX,507FY);
+FuF (z1
+{-2,-64} .. {-59,-49}z2
+{-3,-4} .. {0,-3}z3
+{0,-2} .. {2,-3}z4
+-- z5
+{3,-2} .. {4,0}z6
+{3,0} .. {2,1}z7
+{20,15} .. {16,22}z8
+{16,21} .. {9,25}z9
+{8,25} .. {0,26}z10
+{0,18} .. {-7,17}z11
+{-6,17} .. {-12,10}z12
+{-13,11} .. {-18,0}z13
+{-15,0} .. {-11,-6}z14
+{-10,-7} .. {-5,-10}z15
+{-5,-11} .. {0,-12}z16
+{0,-19} .. {12,-14}z17
+{12,-14} .. {22,0}z18
+{22,0} .. {12,15}z19
+);
+FuF (z20
+{-1,-34} .. {-17,-28}z21
+{-16,-28} .. {-27,-23}z22
+{-3,-3} .. {0,-4}z23
+{0,-3} .. {1,-2}z24
+-- z25
+{3,-2} .. {4,0}z26
+{3,0} .. {1,1}z27
+{22,15} .. {15,21}z28
+{16,21} .. {9,25}z29
+{8,25} .. {0,27}z30
+{0,18} .. {-7,17}z31
+{-6,17} .. {-12,10}z32
+{-13,11} .. {-18,0}z33
+{-14,0} .. {-11,-6}z34
+{-11,-7} .. {-5,-10}z35
+{-5,-11} .. {0,-12}z36
+{0,-19} .. {13,-14}z37
+{12,-14} .. {22,0}z38
+{22,0} .. {12,15}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(35,862FX#,623FY#,173FY#);
+"numbersign";
+z1=(85FX,298FY);
+z2=(308FX,298FY);
+z3=(265FX,152FY);
+z4=(85FX,152FY);
+z5=(65FX,144FY);
+z6=(58FX,125FY);
+z7=(65FX,106FY);
+z8=(85FX,97FY);
+z9=(247FX,97FY);
+z10=(174FX,-140FY);
+z11=(192FX,-174FY);
+z12=(226FX,-156FY);
+z13=(303FX,97FY);
+z14=(477FX,97FY);
+z15=(404FX,-140FY);
+z16=(422FX,-174FY);
+z17=(456FX,-156FY);
+z18=(533FX,97FY);
+z19=(776FX,97FY);
+z20=(795FX,106FY);
+z21=(803FX,125FY);
+z22=(795FX,144FY);
+z23=(776FX,152FY);
+z24=(552FX,152FY);
+z25=(596FX,298FY);
+z26=(776FX,298FY);
+z27=(795FX,306FY);
+z28=(803FX,325FY);
+z29=(795FX,345FY);
+z30=(776FX,353FY);
+z31=(615FX,353FY);
+z32=(687FX,590FY);
+z33=(669FX,624FY);
+z34=(635FX,606FY);
+z35=(558FX,353FY);
+z36=(383FX,353FY);
+z37=(456FX,590FY);
+z38=(438FX,624FY);
+z39=(404FX,606FY);
+z40=(327FX,353FY);
+z41=(85FX,353FY);
+z42=(65FX,345FY);
+z43=(58FX,325FY);
+z44=(65FX,306FY);
+z45=(85FX,298FY);
+z46=(495FX,152FY);
+z47=(321FX,152FY);
+z48=(365FX,298FY);
+z49=(539FX,298FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-8,0} .. {-5,-5}z5
+{-5,-6} .. {0,-7}z6
+{0,-7} .. {5,-5}z7
+{5,-6} .. {8,0}z8
+-- z9
+-- z10
+{0,-19} .. {12,-4}z11
+{19,0} .. {4,12}z12
+-- z13
+-- z14
+-- z15
+{0,-19} .. {12,-4}z16
+{19,0} .. {4,12}z17
+-- z18
+-- z19
+{8,0} .. {5,6}z20
+{5,5} .. {0,7}z21
+{0,7} .. {-5,5}z22
+{-5,5} .. {-8,0}z23
+-- z24
+-- z25
+-- z26
+{7,0} .. {5,5}z27
+{5,6} .. {0,7}z28
+{0,8} .. {-5,6}z29
+{-5,5} .. {-8,0}z30
+-- z31
+-- z32
+{0,19} .. {-12,4}z33
+{-19,0} .. {-4,-12}z34
+-- z35
+-- z36
+-- z37
+{0,19} .. {-12,4}z38
+{-19,0} .. {-4,-12}z39
+-- z40
+-- z41
+{-8,0} .. {-5,-5}z42
+{-5,-6} .. {0,-8}z43
+{0,-7} .. {5,-6}z44
+{6,-5} .. {8,0}z45
+);
+FuF (z46
+-- z47
+-- z48
+-- z49
+);
+lbl (range 1 thru 49);
+endchar;
+
+beginchar(36,471FX#,641FY#,63FY#);
+"dollar";
+z1=(261FX,385FY);
+z2=(261FX,588FY);
+z3=(368FX,513FY);
+z4=(400FX,438FY);
+z5=(418FX,438FY);
+z6=(418FX,572FY);
+z7=(261FX,620FY);
+z8=(261FX,642FY);
+z9=(221FX,642FY);
+z10=(221FX,620FY);
+z11=(95FX,572FY);
+z12=(36FX,457FY);
+z13=(100FX,332FY);
+z14=(221FX,249FY);
+z15=(221FX,21FY);
+z16=(146FX,41FY);
+z17=(67FX,170FY);
+z18=(47FX,170FY);
+z19=(47FX,21FY);
+z20=(134FX,-5FY);
+z21=(221FX,-13FY);
+z22=(221FX,-64FY);
+z23=(261FX,-64FY);
+z24=(261FX,-10FY);
+z25=(389FX,42FY);
+z26=(442FX,167FY);
+z27=(401FX,280FY);
+z28=(261FX,385FY);
+z29=(221FX,589FY);
+z30=(221FX,410FY);
+z31=(149FX,469FY);
+z32=(134FX,512FY);
+z33=(167FX,571FY);
+z34=(221FX,589FY);
+z35=(261FX,21FY);
+z36=(261FX,221FY);
+z37=(337FX,109FY);
+z38=(261FX,21FY);
+FuF (z1
+-- z2
+{48,-14} .. {23,-36}z3
+{13,-21} .. {8,-29}z4
+-- z5
+-- z6
+{-53,28} .. {-52,4}z7
+-- z8
+-- z9
+-- z10
+{-52,-7} .. {-33,-25}z11
+{-39,-29} .. {0,-47}z12
+{1,-45} .. {42,-38}z13
+{19,-17} .. {62,-38}z14
+-- z15
+{-31,3} .. {-19,11}z16
+{-41,21} .. {-11,65}z17
+-- z18
+-- z19
+{32,-12} .. {26,-5}z20
+{27,-5} .. {31,0}z21
+-- z22
+-- z23
+-- z24
+{53,6} .. {33,29}z25
+{35,32} .. {0,52}z26
+{-1,43} .. {-27,32}z27
+{-20,24} .. {-73,47}z28
+);
+FuF (z29
+-- z30
+{-38,25} .. {-10,14}z31
+{-10,14} .. {0,14}z32
+{1,23} .. {21,17}z33
+{13,10} .. {23,2}z34
+);
+FuF (z35
+-- z36
+{51,-39} .. {-1,-36}z37
+{0,-47} .. {-50,-12}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(37,667FX#,638FY#,26FY#);
+"percent";
+z1=(308FX,474FY);
+z2=(303FX,518FY);
+z3=(239FX,618FY);
+z4=(169FX,638FY);
+z5=(46FX,559FY);
+z6=(27FX,472FY);
+z7=(68FX,350FY);
+z8=(167FX,303FY);
+z9=(267FX,348FY);
+z10=(308FX,474FY);
+z11=(631FX,143FY);
+z12=(613FX,228FY);
+z13=(563FX,287FY);
+z14=(490FX,309FY);
+z15=(421FX,289FY);
+z16=(368FX,231FY);
+z17=(351FX,142FY);
+z18=(396FX,16FY);
+z19=(491FX,-25FY);
+z20=(587FX,18FY);
+z21=(631FX,143FY);
+z22=(565FX,638FY);
+z23=(504FX,638FY);
+z24=(69FX,-26FY);
+z25=(131FX,-26FY);
+z26=(200FX,467FY);
+z27=(194FX,356FY);
+z28=(181FX,329FY);
+z29=(170FX,325FY);
+z30=(156FX,329FY);
+z31=(141FX,355FY);
+z32=(135FX,439FY);
+z33=(140FX,581FY);
+z34=(155FX,609FY);
+z35=(168FX,616FY);
+z36=(181FX,610FY);
+z37=(194FX,582FY);
+z38=(200FX,467FY);
+z39=(523FX,156FY);
+z40=(517FX,28FY);
+z41=(505FX,2FY);
+z42=(490FX,-3FY);
+z43=(463FX,27FY);
+z44=(457FX,135FY);
+z45=(465FX,257FY);
+z46=(477FX,282FY);
+z47=(490FX,287FY);
+z48=(504FX,283FY);
+z49=(516FX,253FY);
+z50=(523FX,156FY);
+FuF (z1
+{0,15} .. {-3,14}z2
+{-12,47} .. {-31,19}z3
+{-23,14} .. {-24,-1}z4
+{-56,0} .. {-26,-52}z5
+{-13,-26} .. {0,-32}z6
+{1,-52} .. {27,-29}z7
+{28,-31} .. {38,0}z8
+{39,0} .. {27,30}z9
+{27,30} .. {0,54}z10
+);
+FuF (z11
+{0,31} .. {-11,25}z12
+{-12,24} .. {-22,15}z13
+{-22,15} .. {-26,-1}z14
+{-22,0} .. {-24,-13}z15
+{-22,-12} .. {-13,-26}z16
+{-12,-25} .. {0,-34}z17
+{0,-57} .. {30,-27}z18
+{31,-28} .. {32,1}z19
+{36,0} .. {29,29}z20
+{30,30} .. {0,53}z21
+);
+FuF (z22
+-- z23
+-- z24
+-- z25
+);
+FuF (z26
+{0,-53} .. {-4,-22}z27
+{-2,-12} .. {-7,-5}z28
+{-4,-3} .. {-3,0}z29
+{-8,1} .. {-2,1}z30
+{-8,7} .. {-3,11}z31
+{-4,19} .. {0,36}z32
+{0,64} .. {3,31}z33
+{5,15} .. {5,3}z34
+{3,5} .. {5,0}z35
+{7,-1} .. {2,-3}z36
+{7,-4} .. {2,-15}z37
+{4,-23} .. {0,-53}z38
+);
+FuF (z39
+{-1,-50} .. {-3,-35}z40
+{-5,-14} .. {-3,-4}z41
+{-5,-4} .. {-5,0}z42
+{-14,1} .. {-4,19}z43
+{-4,24} .. {0,48}z44
+{1,49} .. {5,32}z45
+{2,11} .. {6,6}z46
+{3,3} .. {6,0}z47
+{6,0} .. {3,-3}z48
+{6,-6} .. {2,-14}z49
+{5,-32} .. {0,-33}z50
+);
+lbl (range 1 thru 50);
+endchar;
+
+beginchar(38,804FX#,635FY#,10FY#);
+"ampersand";
+z1=(446FX,127FY);
+z2=(363FX,222FY);
+z3=(288FX,341FY);
+z4=(415FX,514FY);
+z5=(403FX,572FY);
+z6=(370FX,618FY);
+z7=(319FX,635FY);
+z8=(237FX,615FY);
+z9=(177FX,558FY);
+z10=(155FX,479FY);
+z11=(193FX,303FY);
+z12=(87FX,211FY);
+z13=(43FX,125FY);
+z14=(70FX,51FY);
+z15=(140FX,5FY);
+z16=(230FX,-10FY);
+z17=(410FX,47FY);
+z18=(602FX,-10FY);
+z19=(673FX,5FY);
+z20=(726FX,46FY);
+z21=(746FX,106FY);
+z22=(703FX,106FY);
+z23=(673FX,53FY);
+z24=(602FX,33FY);
+z25=(475FX,99FY);
+z26=(606FX,258FY);
+z27=(667FX,346FY);
+z28=(692FX,355FY);
+z29=(751FX,357FY);
+z30=(751FX,399FY);
+z31=(654FX,398FY);
+z32=(552FX,399FY);
+z33=(552FX,357FY);
+z34=(601FX,354FY);
+z35=(617FX,346FY);
+z36=(569FX,276FY);
+z37=(508FX,193FY);
+z38=(446FX,127FY);
+z39=(158FX,156FY);
+z40=(200FX,265FY);
+z41=(208FX,273FY);
+z42=(284FX,157FY);
+z43=(374FX,71FY);
+z44=(238FX,33FY);
+z45=(196FX,49FY);
+z46=(168FX,94FY);
+z47=(158FX,156FY);
+z48=(373FX,514FY);
+z49=(347FX,451FY);
+z50=(275FX,374FY);
+z51=(247FX,514FY);
+z52=(268FX,576FY);
+z53=(319FX,602FY);
+z54=(347FX,591FY);
+z55=(366FX,559FY);
+z56=(373FX,514FY);
+FuF (z1
+{-17,18} .. {-38,45}z2
+{-32,39} .. {-18,40}z3
+{85,75} .. {0,40}z4
+{0,20} .. {-8,19}z5
+{-7,19} .. {-15,11}z6
+{-15,12} .. {-19,0}z7
+{-29,0} .. {-25,-13}z8
+{-25,-14} .. {-15,-24}z9
+{-15,-24} .. {0,-29}z10
+{0,-59} .. {25,-59}z11
+-- z12
+{-28,-25} .. {0,-34}z13
+{0,-29} .. {18,-21}z14
+{18,-20} .. {28,-11}z15
+{29,-10} .. {31,0}z16
+{62,0} .. {58,38}z17
+{62,-38} .. {66,0}z18
+{25,0} .. {22,10}z19
+{22,9} .. {13,18}z20
+{14,17} .. {0,23}z21
+-- z22
+{0,-22} .. {-20,-13}z23
+{-20,-14} .. {-28,0}z24
+{-37,0} .. {-48,44}z25
+{43,41} .. {45,65}z26
+-- z27
+{3,4} .. {14,2}z28
+{13,1} .. {26,0}z29
+-- z30
+{-21,-1} .. {-43,0}z31
+{-22,0} .. {-46,1}z32
+-- z33
+{22,0} .. {11,-2}z34
+{11,-1} .. {0,-4}z35
+-- z36
+{-22,-31} .. {-19,-24}z37
+{-19,-24} .. {-22,-20}z38
+);
+FuF (z39
+{0,50} .. {26,25}z40
+-- z41
+{19,-40} .. {31,-38}z42
+{27,-31} .. {34,-26}z43
+{-44,-26} .. {-47,0}z44
+{-16,0} .. {-12,11}z45
+{-12,11} .. {-7,19}z46
+{-7,20} .. {0,22}z47
+);
+FuF (z48
+{0,-19} .. {-17,-23}z49
+{-18,-23} .. {-30,-28}z50
+{-19,47} .. {0,46}z51
+{0,24} .. {14,17}z52
+{13,17} .. {21,0}z53
+{10,0} .. {8,-7}z54
+{8,-8} .. {4,-14}z55
+{4,-13} .. {0,-17}z56
+);
+lbl (range 1 thru 56);
+endchar;
+
+beginchar(39,235FX#,624FY#,0FY#);
+"apatharc";
+z1=(175FX,535FY);
+z2=(155FX,597FY);
+z3=(98FX,624FY);
+z4=(58FX,609FY);
+z5=(43FX,570FY);
+z6=(102FX,523FY);
+z7=(114FX,524FY);
+z8=(125FX,526FY);
+z9=(133FX,524FY);
+z10=(138FX,513FY);
+z11=(60FX,413FY);
+z12=(69FX,395FY);
+z13=(140FX,452FY);
+z14=(175FX,535FY);
+FuF (z1
+{-1,24} .. {-13,17}z2
+{-14,19} .. {-24,-1}z3
+{-16,0} .. {-11,-10}z4
+{-10,-10} .. {0,-16}z5
+{1,-32} .. {39,0}z6
+{2,0} .. {6,0}z7
+-- z8
+-- z9
+{3,-2} .. {0,-5}z10
+{-1,-34} .. {-51,-32}z11
+-- z12
+{27,13} .. {20,25}z13
+{23,28} .. {0,27}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(40,379FX#,750FY#,249FY#);
+"parenleft";
+z1=(366FX,-250FY);
+z2=(366FX,-222FY);
+z3=(285FX,-154FY);
+z4=(195FX,250FY);
+z5=(222FX,522FY);
+z6=(281FX,650FY);
+z7=(366FX,724FY);
+z8=(366FX,750FY);
+z9=(129FX,554FY);
+z10=(46FX,253FY);
+z11=(129FX,-50FY);
+z12=(366FX,-250FY);
+FuF (z1
+-- z2
+{-34,20} .. {-20,26}z3
+{-60,80} .. {0,189}z4
+{0,117} .. {18,64}z5
+{15,53} .. {24,32}z6
+{18,24} .. {39,25}z7
+-- z8
+{-99,-33} .. {-59,-98}z9
+{-56,-92} .. {0,-109}z10
+{0,-109} .. {56,-93}z11
+{59,-100} .. {99,-33}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(41,379FX#,750FY#,249FY#);
+"parenright";
+z1=(334FX,247FY);
+z2=(252FX,550FY);
+z3=(14FX,750FY);
+z4=(14FX,722FY);
+z5=(95FX,654FY);
+z6=(185FX,251FY);
+z7=(158FX,-22FY);
+z8=(99FX,-150FY);
+z9=(14FX,-224FY);
+z10=(14FX,-250FY);
+z11=(242FX,-66FY);
+z12=(334FX,247FY);
+FuF (z1
+{0,109} .. {-55,93}z2
+{-60,100} .. {-99,33}z3
+-- z4
+{34,-19} .. {20,-26}z5
+{60,-80} .. {0,-189}z6
+{0,-118} .. {-18,-64}z7
+{-14,-51} .. {-25,-34}z8
+{-17,-23} .. {-39,-26}z9
+-- z10
+{90,31} .. {62,92}z11
+{61,91} .. {0,118}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(42,471FX#,646FY#,0FY#);
+"asterisk";
+z1=(406FX,335FY);
+z2=(350FX,415FY);
+z3=(270FX,443FY);
+z4=(382FX,479FY);
+z5=(372FX,568FY);
+z6=(309FX,520FY);
+z7=(255FX,473FY);
+z8=(266FX,545FY);
+z9=(267FX,633FY);
+z10=(237FX,646FY);
+z11=(195FX,600FY);
+z12=(207FX,548FY);
+z13=(218FX,476FY);
+z14=(95FX,566FY);
+z15=(67FX,554FY);
+z16=(56FX,523FY);
+z17=(75FX,486FY);
+z18=(104FX,475FY);
+z19=(180FX,456FY);
+z20=(203FX,444FY);
+z21=(125FX,415FY);
+z22=(56FX,363FY);
+z23=(99FX,322FY);
+z24=(168FX,372FY);
+z25=(219FX,414FY);
+z26=(219FX,405FY);
+z27=(206FX,340FY);
+z28=(193FX,286FY);
+z29=(235FX,241FY);
+z30=(281FX,292FY);
+z31=(254FX,416FY);
+z32=(309FX,368FY);
+z33=(375FX,321FY);
+z34=(406FX,335FY);
+FuF (z1
+{32,47} .. {-43,9}z2
+{-32,7} .. {-21,11}z3
+{40,23} .. {45,10}z4
+{52,18} .. {-50,0}z5
+{-13,-2} .. {-29,-28}z6
+{-23,-22} .. {-13,-10}z7
+{2,25} .. {5,23}z8
+{9,25} .. {-24,23}z9
+{-8,9} .. {-12,0}z10
+{-29,0} .. {0,-27}z11
+{0,-10} .. {8,-24}z12
+{6,-20} .. {1,-27}z13
+{-22,17} .. {-18,0}z14
+{-12,-2} .. {-7,-7}z15
+{-7,-11} .. {0,-10}z16
+{1,-16} .. {14,-6}z17
+{13,-6} .. {6,-2}z18
+{26,-6} .. {25,-7}z19
+-- z20
+{-18,-11} .. {-34,-8}z21
+{-40,-9} .. {0,-27}z22
+{0,-27} .. {27,0}z23
+{32,0} .. {19,21}z24
+{20,22} .. {25,16}z25
+-- z26
+{-1,-19} .. {-8,-25}z27
+{-8,-28} .. {1,-6}z28
+{2,-27} .. {26,0}z29
+{30,3} .. {0,31}z30
+{-20,59} .. {-1,58}z31
+{17,-9} .. {20,-23}z32
+{25,-29} .. {19,0}z33
+{12,1} .. {8,9}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(43,537FX#,488FY#,31FY#);
+"plus";
+z1=(309FX,188FY);
+z2=(531FX,188FY);
+z3=(531FX,266FY);
+z4=(309FX,266FY);
+z5=(309FX,488FY);
+z6=(231FX,488FY);
+z7=(231FX,266FY);
+z8=(10FX,266FY);
+z9=(10FX,188FY);
+z10=(231FX,188FY);
+z11=(231FX,-32FY);
+z12=(309FX,-32FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,235FX#,141FY#,165FY#);
+"comma";
+z1=(205FX,27FY);
+z2=(176FX,111FY);
+z3=(109FX,141FY);
+z4=(54FX,119FY);
+z5=(30FX,65FY);
+z6=(50FX,15FY);
+z7=(98FX,-6FY);
+z8=(131FX,2FY);
+z9=(139FX,5FY);
+z10=(149FX,-11FY);
+z11=(47FX,-145FY);
+z12=(47FX,-165FY);
+z13=(160FX,-96FY);
+z14=(205FX,27FY);
+FuF (z1
+{0,35} .. {-19,21}z2
+{-18,21} .. {-26,-1}z3
+{-21,0} .. {-15,-15}z4
+{-16,-15} .. {0,-21}z5
+{1,-19} .. {13,-15}z6
+{13,-14} .. {19,0}z7
+{13,0} .. {9,5}z8
+{3,2} .. {2,0}z9
+{7,0} .. {0,-11}z10
+{-1,-61} .. {-67,-28}z11
+-- z12
+{48,15} .. {27,31}z13
+{31,34} .. {0,48}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(45,422FX#,266FY#,0FY#);
+"miuthyun";
+z1=(45FX,188FY);
+z2=(378FX,188FY);
+z3=(378FX,266FY);
+z4=(45FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,235FX#,141FY#,11FY#);
+"period";
+z1=(195FX,65FY);
+z2=(172FX,120FY);
+z3=(118FX,142FY);
+z4=(64FX,119FY);
+z5=(41FX,65FY);
+z6=(64FX,11FY);
+z7=(118FX,-12FY);
+z8=(173FX,11FY);
+z9=(195FX,65FY);
+FuF (z1
+{0,21} .. {-15,15}z2
+{-15,15} .. {-21,0}z3
+{-21,0} .. {-15,-15}z4
+{-15,-15} .. {0,-21}z5
+{1,-22} .. {15,-14}z6
+{14,-15} .. {22,0}z7
+{21,0} .. {15,15}z8
+{15,14} .. {0,22}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(47,262FX#,638FY#,14FY#);
+"slash";
+z1=(265FX,639FY);
+z2=(207FX,639FY);
+z3=(1FX,-14FY);
+z4=(60FX,-14FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,471FX#,637FY#,12FY#);
+"zero";
+z1=(437FX,312FY);
+z2=(406FX,501FY);
+z3=(336FX,600FY);
+z4=(235FX,637FY);
+z5=(134FX,600FY);
+z6=(54FX,465FY);
+z7=(34FX,305FY);
+z8=(54FX,159FY);
+z9=(89FX,76FY);
+z10=(235FX,-13FY);
+z11=(309FX,6FY);
+z12=(411FX,138FY);
+z13=(437FX,312FY);
+z14=(295FX,313FY);
+z15=(293FX,115FY);
+z16=(287FX,69FY);
+z17=(237FX,21FY);
+z18=(183FX,76FY);
+z19=(174FX,253FY);
+z20=(180FX,537FY);
+z21=(203FX,595FY);
+z22=(234FX,606FY);
+z23=(271FX,591FY);
+z24=(293FX,504FY);
+z25=(295FX,313FY);
+FuF (z1
+{0,70} .. {-21,56}z2
+{-15,41} .. {-31,24}z3
+{-32,25} .. {-36,0}z4
+{-35,0} .. {-32,-25}z5
+{-36,-28} .. {-17,-62}z6
+{-14,-49} .. {0,-57}z7
+{0,-54} .. {13,-44}z8
+{11,-36} .. {13,-19}z9
+{40,-60} .. {57,1}z10
+{27,0} .. {23,12}z11
+{49,27} .. {19,61}z12
+{18,56} .. {0,59}z13
+);
+FuF (z14
+-- z15
+{0,-17} .. {-4,-13}z16
+{-9,-32} .. {-24,0}z17
+{-28,0} .. {-8,37}z18
+{-6,28} .. {0,90}z19
+{0,163} .. {4,27}z20
+{5,29} .. {11,10}z21
+{8,7} .. {13,0}z22
+{17,-1} .. {7,-10}z23
+{14,-19} .. {0,-39}z24
+{2,-102} .. {0,-25}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(49,471FX#,637FY#,0FY#);
+"one";
+z1=(399FX,0FY);
+z2=(399FX,17FY);
+z3=(385FX,17FY);
+z4=(334FX,28FY);
+z5=(312FX,53FY);
+z6=(307FX,127FY);
+z7=(307FX,637FY);
+z8=(292FX,637FY);
+z9=(62FX,532FY);
+z10=(70FX,516FY);
+z11=(128FX,531FY);
+z12=(153FX,523FY);
+z13=(172FX,490FY);
+z14=(173FX,450FY);
+z15=(173FX,127FY);
+z16=(167FX,52FY);
+z17=(87FX,17FY);
+z18=(70FX,17FY);
+z19=(70FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-22,0} .. {-12,7}z4
+{-12,7} .. {-3,10}z5
+{-3,9} .. {0,40}z6
+-- z7
+-- z8
+-- z9
+-- z10
+{23,10} .. {16,0}z11
+{9,-1} .. {7,-5}z12
+{11,-7} .. {2,-15}z13
+{1,-4} .. {0,-23}z14
+-- z15
+{0,-40} .. {-4,-10}z16
+{-8,-23} .. {-45,0}z17
+-- z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(50,471FX#,637FY#,0FY#);
+"two";
+z1=(426FX,181FY);
+z2=(409FX,181FY);
+z3=(384FX,139FY);
+z4=(294FX,121FY);
+z5=(159FX,121FY);
+z6=(362FX,358FY);
+z7=(397FX,483FY);
+z8=(374FX,554FY);
+z9=(227FX,637FY);
+z10=(34FX,464FY);
+z11=(51FX,458FY);
+z12=(161FX,529FY);
+z13=(236FX,496FY);
+z14=(264FX,417FY);
+z15=(175FX,197FY);
+z16=(23FX,10FY);
+z17=(23FX,0FY);
+z18=(391FX,0FY);
+FuF (z1
+-- z2
+{-10,-22} .. {-6,-6}z3
+{-12,-12} .. {-48,0}z4
+-- z5
+{105,102} .. {30,56}z6
+{23,43} .. {0,41}z7
+{-1,22} .. {-15,25}z8
+{-33,56} .. {-65,-1}z9
+{-97,0} .. {-32,-115}z10
+-- z11
+{27,48} .. {46,0}z12
+{31,0} .. {20,-22}z13
+{19,-22} .. {-1,-31}z14
+{0,-63} .. {-59,-84}z15
+{-14,-21} .. {-87,-104}z16
+-- z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(51,471FX#,637FY#,13FY#);
+"three";
+z1=(417FX,221FY);
+z2=(307FX,382FY);
+z3=(388FX,505FY);
+z4=(342FX,602FY);
+z5=(239FX,637FY);
+z6=(38FX,483FY);
+z7=(55FX,477FY);
+z8=(165FX,545FY);
+z9=(233FX,519FY);
+z10=(262FX,452FY);
+z11=(247FX,397FY);
+z12=(202FX,351FY);
+z13=(140FX,329FY);
+z14=(140FX,313FY);
+z15=(261FX,248FY);
+z16=(313FX,123FY);
+z17=(291FX,58FY);
+z18=(230FX,28FY);
+z19=(157FX,58FY);
+z20=(94FX,105FY);
+z21=(65FX,111FY);
+z22=(30FX,96FY);
+z23=(15FX,60FY);
+z24=(41FX,13FY);
+z25=(157FX,-13FY);
+z26=(339FX,49FY);
+z27=(417FX,221FY);
+FuF (z1
+{0,71} .. {-73,36}z2
+{54,32} .. {0,50}z3
+{0,39} .. {-30,25}z4
+{-29,24} .. {-39,-1}z5
+{-89,0} .. {-45,-102}z6
+-- z7
+{31,46} .. {42,0}z8
+{26,0} .. {19,-17}z9
+{19,-18} .. {0,-27}z10
+{0,-18} .. {-10,-19}z11
+{-12,-20} .. {-19,-11}z12
+{-11,-6} .. {-30,-9}z13
+-- z14
+{49,-12} .. {31,-31}z15
+{35,-35} .. {0,-49}z16
+{0,-25} .. {-15,-19}z17
+{-16,-20} .. {-25,0}z18
+{-24,0} .. {-25,20}z19
+{-35,28} .. {-7,3}z20
+{-9,4} .. {-11,0}z21
+{-13,0} .. {-10,-10}z22
+{-10,-10} .. {0,-14}z23
+{0,-19} .. {17,-12}z24
+{26,-18} .. {52,0}z25
+{72,0} .. {49,42}z26
+{53,43} .. {-1,71}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(52,471FX#,637FY#,0FY#);
+"four";
+z1=(433FX,140FY);
+z2=(433FX,235FY);
+z3=(376FX,235FY);
+z4=(376FX,637FY);
+z5=(320FX,637FY);
+z6=(23FX,235FY);
+z7=(23FX,140FY);
+z8=(250FX,140FY);
+z9=(250FX,0FY);
+z10=(376FX,0FY);
+z11=(376FX,140FY);
+z12=(250FX,235FY);
+z13=(68FX,235FY);
+z14=(250FX,482FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,471FX#,624FY#,12FY#);
+"five";
+z1=(436FX,624FY);
+z2=(144FX,624FY);
+z3=(32FX,309FY);
+z4=(69FX,310FY);
+z5=(274FX,259FY);
+z6=(355FX,128FY);
+z7=(328FX,61FY);
+z8=(264FX,34FY);
+z9=(232FX,39FY);
+z10=(183FX,66FY);
+z11=(84FX,112FY);
+z12=(49FX,97FY);
+z13=(34FX,62FY);
+z14=(63FX,16FY);
+z15=(180FX,-13FY);
+z16=(310FX,17FY);
+z17=(401FX,98FY);
+z18=(435FX,214FY);
+z19=(365FX,364FY);
+z20=(120FX,443FY);
+z21=(144FX,506FY);
+z22=(390FX,506FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{81,1} .. {56,-35}z5
+{54,-34} .. {0,-53}z6
+{0,-26} .. {-18,-19}z7
+{-18,-18} .. {-25,0}z8
+{-12,0} .. {-9,4}z9
+{-16,6} .. {-17,12}z10
+{-44,30} .. {-22,0}z11
+{-14,0} .. {-10,-10}z12
+{-10,-10} .. {0,-13}z13
+{0,-18} .. {19,-13}z14
+{27,-20} .. {51,0}z15
+{48,0} .. {39,20}z16
+{37,18} .. {23,35}z17
+{23,36} .. {0,41}z18
+{0,60} .. {-47,40}z19
+{-62,53} .. {-102,0}z20
+-- z21
+-- z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(54,471FX#,637FY#,12FY#);
+"six";
+z1=(443FX,624FY);
+z2=(443FX,637FY);
+z3=(229FX,583FY);
+z4=(86FX,440FY);
+z5=(35FX,243FY);
+z6=(63FX,111FY);
+z7=(245FX,-13FY);
+z8=(344FX,16FY);
+z9=(442FX,208FY);
+z10=(400FX,340FY);
+z11=(278FX,398FY);
+z12=(184FX,371FY);
+z13=(229FX,489FY);
+z14=(309FX,569FY);
+z15=(443FX,624FY);
+z16=(310FX,142FY);
+z17=(256FX,17FY);
+z18=(220FX,34FY);
+z19=(187FX,116FY);
+z20=(175FX,240FY);
+z21=(177FX,287FY);
+z22=(178FX,333FY);
+z23=(226FX,349FY);
+z24=(280FX,317FY);
+z25=(310FX,142FY);
+FuF (z1
+-- z2
+{-81,0} .. {-61,-36}z3
+{-62,-36} .. {-34,-60}z4
+{-34,-60} .. {0,-72}z5
+{0,-48} .. {19,-40}z6
+{38,-83} .. {83,1}z7
+{35,0} .. {31,19}z8
+{65,39} .. {0,89}z9
+{0,53} .. {-28,35}z10
+{-30,39} .. {-51,0}z11
+{-37,0} .. {-26,-18}z12
+{12,49} .. {18,30}z13
+{20,31} .. {34,22}z14
+{34,23} .. {55,13}z15
+);
+FuF (z16
+{0,-84} .. {-36,1}z17
+{-14,0} .. {-10,11}z18
+{-14,16} .. {-8,39}z19
+{-9,42} .. {1,41}z20
+{0,9} .. {1,22}z21
+{1,20} .. {0,11}z22
+{21,11} .. {11,0}z23
+{23,-1} .. {14,-21}z24
+{20,-32} .. {0,-84}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(55,471FX#,624FY#,12FY#);
+"seven";
+z1=(449FX,624FY);
+z2=(77FX,624FY);
+z3=(32FX,431FY);
+z4=(49FX,431FY);
+z5=(93FX,483FY);
+z6=(208FX,502FY);
+z7=(337FX,502FY);
+z8=(167FX,-13FY);
+z9=(239FX,-13FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{12,25} .. {17,10}z5
+{26,13} .. {51,0}z6
+-- z7
+-- z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(56,471FX#,635FY#,12FY#);
+"eight";
+z1=(438FX,167FY);
+z2=(405FX,274FY);
+z3=(321FX,353FY);
+z4=(428FX,492FY);
+z5=(380FX,593FY);
+z6=(243FX,635FY);
+z7=(108FX,596FY);
+z8=(44FX,477FY);
+z9=(78FX,375FY);
+z10=(160FX,301FY);
+z11=(101FX,268FY);
+z12=(33FX,144FY);
+z13=(94FX,25FY);
+z14=(227FX,-13FY);
+z15=(373FX,33FY);
+z16=(438FX,167FY);
+z17=(320FX,490FY);
+z18=(286FX,376FY);
+z19=(167FX,529FY);
+z20=(188FX,584FY);
+z21=(241FX,607FY);
+z22=(294FX,582FY);
+z23=(320FX,490FY);
+z24=(315FX,109FY);
+z25=(294FX,45FY);
+z26=(235FX,17FY);
+z27=(193FX,29FY);
+z28=(150FX,144FY);
+z29=(158FX,208FY);
+z30=(174FX,256FY);
+z31=(194FX,279FY);
+z32=(315FX,109FY);
+FuF (z1
+{0,40} .. {-22,31}z2
+{-17,25} .. {-39,28}z3
+{72,36} .. {0,56}z4
+{0,39} .. {-32,28}z5
+{-32,28} .. {-59,0}z6
+{-52,0} .. {-38,-26}z7
+{-43,-30} .. {1,-50}z8
+{0,-39} .. {23,-29}z9
+{14,-18} .. {40,-32}z10
+{-24,-11} .. {-16,-11}z11
+{-46,-32} .. {0,-51}z12
+{0,-51} .. {40,-28}z13
+{35,-25} .. {53,0}z14
+{58,0} .. {39,31}z15
+{44,33} .. {-1,56}z16
+);
+FuF (z17
+{0,-45} .. {-22,-31}z18
+{-80,52} .. {1,50}z19
+{0,21} .. {14,15}z20
+{14,15} .. {21,0}z21
+{22,-1} .. {13,-16}z22
+{18,-21} .. {-1,-40}z23
+);
+FuF (z24
+{-1,-26} .. {-14,-17}z25
+{-15,-19} .. {-25,1}z26
+{-15,0} .. {-13,8}z27
+{-29,19} .. {1,58}z28
+{0,23} .. {5,20}z29
+{4,20} .. {7,12}z30
+{6,9} .. {7,7}z31
+{81,-55} .. {0,-58}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(57,471FX#,637FY#,12FY#);
+"nine";
+z1=(438FX,380FY);
+z2=(413FX,507FY);
+z3=(331FX,606FY);
+z4=(228FX,637FY);
+z5=(129FX,609FY);
+z6=(30FX,416FY);
+z7=(72FX,283FY);
+z8=(196FX,225FY);
+z9=(286FX,251FY);
+z10=(242FX,135FY);
+z11=(29FX,0FY);
+z12=(29FX,-13FY);
+z13=(250FX,46FY);
+z14=(391FX,192FY);
+z15=(438FX,380FY);
+z16=(298FX,381FY);
+z17=(295FX,327FY);
+z18=(293FX,290FY);
+z19=(246FX,275FY);
+z20=(193FX,307FY);
+z21=(162FX,483FY);
+z22=(216FX,606FY);
+z23=(246FX,596FY);
+z24=(279FX,537FY);
+z25=(298FX,381FY);
+FuF (z1
+{0,46} .. {-16,39}z2
+{-19,43} .. {-35,23}z3
+{-33,21} .. {-36,-1}z4
+{-35,0} .. {-31,-19}z5
+{-66,-40} .. {0,-89}z6
+{1,-53} .. {27,-35}z7
+{30,-39} .. {52,0}z8
+{26,0} .. {34,17}z9
+{-9,-45} .. {-20,-33}z10
+{-42,-68} .. {-100,-22}z11
+-- z12
+{80,0} .. {67,39}z13
+{62,36} .. {32,61}z14
+{32,60} .. {0,65}z15
+);
+FuF (z16
+-- z17
+{-1,-16} .. {0,-9}z18
+{-19,-10} .. {-12,0}z19
+{-23,1} .. {-12,21}z20
+{-21,33} .. {0,85}z21
+{0,83} .. {36,-1}z22
+{13,0} .. {7,-6}z23
+{15,-13} .. {7,-26}z24
+{13,-48} .. {-3,-56}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(58,314FX#,443FY#,11FY#);
+"colon";
+z1=(234FX,367FY);
+z2=(211FX,421FY);
+z3=(158FX,443FY);
+z4=(103FX,420FY);
+z5=(81FX,367FY);
+z6=(103FX,312FY);
+z7=(158FX,290FY);
+z8=(212FX,312FY);
+z9=(234FX,367FY);
+z10=(234FX,65FY);
+z11=(211FX,120FY);
+z12=(157FX,142FY);
+z13=(103FX,119FY);
+z14=(81FX,65FY);
+z15=(103FX,11FY);
+z16=(157FX,-12FY);
+z17=(212FX,11FY);
+z18=(234FX,65FY);
+FuF (z1
+{0,21} .. {-15,15}z2
+{-15,15} .. {-20,0}z3
+{-22,0} .. {-15,-15}z4
+{-15,-14} .. {0,-21}z5
+{0,-22} .. {14,-15}z6
+{15,-14} .. {22,0}z7
+{21,0} .. {15,14}z8
+{15,15} .. {0,22}z9
+);
+FuF (z10
+{0,21} .. {-15,15}z11
+{-15,15} .. {-21,0}z12
+{-21,0} .. {-15,-15}z13
+{-15,-15} .. {1,-21}z14
+{0,-22} .. {15,-14}z15
+{15,-15} .. {21,0}z16
+{22,0} .. {15,15}z17
+{15,14} .. {0,22}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(59,314FX#,443FY#,165FY#);
+"semicolon";
+z1=(233FX,367FY);
+z2=(211FX,421FY);
+z3=(157FX,443FY);
+z4=(102FX,421FY);
+z5=(81FX,367FY);
+z6=(103FX,313FY);
+z7=(157FX,291FY);
+z8=(211FX,313FY);
+z9=(233FX,367FY);
+z10=(245FX,27FY);
+z11=(216FX,111FY);
+z12=(149FX,141FY);
+z13=(93FX,119FY);
+z14=(70FX,65FY);
+z15=(90FX,15FY);
+z16=(137FX,-6FY);
+z17=(170FX,2FY);
+z18=(179FX,5FY);
+z19=(188FX,-11FY);
+z20=(87FX,-145FY);
+z21=(87FX,-165FY);
+z22=(200FX,-96FY);
+z23=(245FX,27FY);
+FuF (z1
+{0,21} .. {-15,15}z2
+{-15,15} .. {-21,0}z3
+{-21,0} .. {-15,-15}z4
+{-14,-15} .. {1,-21}z5
+{0,-21} .. {15,-14}z6
+{15,-15} .. {21,0}z7
+{21,0} .. {15,15}z8
+{15,15} .. {0,21}z9
+);
+FuF (z10
+{-1,35} .. {-19,21}z11
+{-19,21} .. {-26,-1}z12
+{-21,0} .. {-16,-15}z13
+{-16,-15} .. {0,-21}z14
+{0,-19} .. {13,-15}z15
+{13,-14} .. {18,0}z16
+{14,0} .. {8,5}z17
+{4,2} .. {2,0}z18
+{6,0} .. {-1,-11}z19
+{-1,-61} .. {-67,-28}z20
+-- z21
+{47,15} .. {28,31}z22
+{30,34} .. {0,48}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(60,471FX#,392FY#,0FY#);
+"guillemotleft";
+z1=(432FX,58FY);
+z2=(388FX,126FY);
+z3=(331FX,214FY);
+z4=(378FX,290FY);
+z5=(431FX,365FY);
+z6=(421FX,373FY);
+z7=(221FX,214FY);
+z8=(418FX,49FY);
+z9=(423FX,48FY);
+z10=(428FX,50FY);
+z11=(432FX,58FY);
+z12=(249FX,41FY);
+z13=(186FX,138FY);
+z14=(144FX,216FY);
+z15=(161FX,255FY);
+z16=(188FX,297FY);
+z17=(249FX,384FY);
+z18=(239FX,392FY);
+z19=(163FX,334FY);
+z20=(24FX,214FY);
+z21=(235FX,32FY);
+z22=(240FX,32FY);
+z23=(245FX,33FY);
+z24=(249FX,41FY);
+FuF (z1
+{-17,28} .. {-12,17}z2
+{-33,48} .. {-5,10}z3
+{16,29} .. {15,22}z4
+-- z5
+{-1,5} .. {-6,1}z6
+-- z7
+-- z8
+{1,0} .. {2,0}z9
+{3,1} .. {1,1}z10
+{3,3} .. {0,3}z11
+);
+FuF (z12
+-- z13
+{-20,29} .. {-8,23}z14
+{5,14} .. {6,12}z15
+{7,11} .. {11,17}z16
+{26,38} .. {15,20}z17
+{-1,4} .. {-5,1}z18
+{-6,0} .. {-45,-38}z19
+-- z20
+-- z21
+{1,0} .. {2,0}z22
+{3,0} .. {1,1}z23
+{3,3} .. {0,2}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(61,537FX#,421FY#,0FY#);
+"equal";
+z1=(14FX,352FY);
+z2=(527FX,352FY);
+z3=(527FX,421FY);
+z4=(14FX,421FY);
+z5=(14FX,201FY);
+z6=(527FX,201FY);
+z7=(527FX,270FY);
+z8=(14FX,270FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,471FX#,392FY#,0FY#);
+"guillemotright";
+z1=(445FX,214FY);
+z2=(391FX,260FY);
+z3=(343FX,303FY);
+z4=(300FX,338FY);
+z5=(231FX,392FY);
+z6=(223FX,391FY);
+z7=(221FX,384FY);
+z8=(282FX,300FY);
+z9=(326FX,216FY);
+z10=(314FX,191FY);
+z11=(259FX,100FY);
+z12=(221FX,41FY);
+z13=(228FX,30FY);
+z14=(235FX,32FY);
+z15=(249FX,214FY);
+z16=(48FX,373FY);
+z17=(39FX,365FY);
+z18=(92FX,290FY);
+z19=(139FX,214FY);
+z20=(82FX,128FY);
+z21=(38FX,58FY);
+z22=(45FX,47FY);
+z23=(52FX,49FY);
+FuF (z1
+-- z2
+{-20,17} .. {-13,11}z3
+{-19,16} .. {-9,7}z4
+{-44,37} .. {-2,0}z5
+{-2,-1} .. {-3,0}z6
+{-1,-2} .. {0,-3}z7
+-- z8
+{19,-27} .. {11,-29}z9
+{-3,-8} .. {-5,-9}z10
+{-12,-25} .. {-24,-36}z11
+-- z12
+{0,-7} .. {5,0}z13
+{3,1} .. {2,1}z14
+);
+FuF (z15
+-- z16
+{-6,-1} .. {0,-4}z17
+-- z18
+{19,-27} .. {13,-23}z19
+{-25,-38} .. {-13,-19}z20
+{-30,-44} .. {0,-3}z21
+{0,-7} .. {5,0}z22
+{3,0} .. {2,1}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(63,217FX#,697FY#,0FY#);
+"paruyg";
+z1=(195FX,560FY);
+z2=(211FX,621FY);
+z3=(201FX,659FY);
+z4=(177FX,687FY);
+z5=(-22FX,579FY);
+z6=(-40FX,546FY);
+z7=(-65FX,448FY);
+z8=(-28FX,445FY);
+z9=(19FX,556FY);
+z10=(96FX,605FY);
+z11=(126FX,572FY);
+z12=(93FX,523FY);
+z13=(88FX,522FY);
+z14=(71FX,523FY);
+z15=(65FX,490FY);
+z16=(86FX,488FY);
+z17=(153FX,513FY);
+z18=(195FX,560FY);
+FuF (z1
+{10,20} .. {0,21}z2
+{0,14} .. {-6,11}z3
+{-6,11} .. {-10,7}z4
+{-67,42} .. {-27,-56}z5
+{-11,-21} .. {-1,-1}z6
+{-13,-31} .. {-2,-34}z7
+-- z8
+{7,37} .. {23,30}z9
+{14,19} .. {23,1}z10
+{21,-4} .. {0,-18}z11
+{0,-19} .. {-16,-8}z12
+{-2,-1} .. {-2,0}z13
+{-3,1} .. {-10,0}z14
+-- z15
+-- z16
+{20,1} .. {25,15}z17
+{17,10} .. {11,21}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(64,877FX#,638FY#,203FY#);
+"at";
+z1=(857FX,76FY);
+z2=(829FX,76FY);
+z3=(680FX,-111FY);
+z4=(451FX,-178FY);
+z5=(192FX,-76FY);
+z6=(91FX,185FY);
+z7=(142FX,398FY);
+z8=(292FX,556FY);
+z9=(498FX,610FY);
+z10=(710FX,529FY);
+z11=(793FX,319FY);
+z12=(759FX,174FY);
+z13=(692FX,83FY);
+z14=(594FX,33FY);
+z15=(567FX,44FY);
+z16=(557FX,70FY);
+z17=(571FX,141FY);
+z18=(655FX,431FY);
+z19=(543FX,426FY);
+z20=(527FX,371FY);
+z21=(462FX,443FY);
+z22=(415FX,432FY);
+z23=(339FX,374FY);
+z24=(224FX,102FY);
+z25=(241FX,33FY);
+z26=(301FX,0FY);
+z27=(343FX,10FY);
+z28=(401FX,58FY);
+z29=(460FX,146FY);
+z30=(449FX,81FY);
+z31=(543FX,0FY);
+z32=(777FX,154FY);
+z33=(819FX,328FY);
+z34=(780FX,485FY);
+z35=(666FX,598FY);
+z36=(488FX,639FY);
+z37=(260FX,583FY);
+z38=(99FX,422FY);
+z39=(42FX,201FY);
+z40=(158FX,-90FY);
+z41=(450FX,-204FY);
+z42=(695FX,-131FY);
+z43=(857FX,76FY);
+z44=(506FX,350FY);
+z45=(445FX,158FY);
+z46=(370FX,84FY);
+z47=(343FX,127FY);
+z48=(390FX,303FY);
+z49=(473FX,410FY);
+z50=(494FX,398FY);
+z51=(506FX,350FY);
+FuF (z1
+-- z2
+{-30,-78} .. {-70,-46}z3
+{-68,-44} .. {-85,0}z4
+{-106,0} .. {-67,68}z5
+{-68,67} .. {0,107}z6
+{0,76} .. {34,66}z7
+{36,69} .. {64,36}z8
+{62,36} .. {75,0}z9
+{86,0} .. {55,-54}z10
+{55,-54} .. {0,-86}z11
+{0,-51} .. {-23,-45}z12
+{-15,-32} .. {-29,-28}z13
+{-35,-34} .. {-30,0}z14
+{-10,0} .. {-8,7}z15
+{-7,6} .. {0,11}z16
+{0,16} .. {9,31}z17
+-- z18
+-- z19
+-- z20
+{-8,49} .. {-35,-1}z21
+{-17,0} .. {-15,-7}z22
+{-29,-16} .. {-22,-23}z23
+{-77,-79} .. {0,-102}z24
+{0,-28} .. {12,-18}z25
+{14,-22} .. {26,0}z26
+{16,0} .. {12,7}z27
+{20,10} .. {19,22}z28
+{14,16} .. {25,43}z29
+{-8,-28} .. {0,-16}z30
+{1,-54} .. {62,0}z31
+{103,0} .. {53,103}z32
+{28,53} .. {0,63}z33
+{0,57} .. {-26,47}z34
+{-27,49} .. {-49,27}z35
+{-51,27} .. {-67,0}z36
+{-83,0} .. {-69,-37}z37
+{-69,-37} .. {-38,-70}z38
+{-38,-67} .. {0,-80}z39
+{0,-118} .. {77,-76}z40
+{76,-76} .. {119,0}z41
+{93,0} .. {70,49}z42
+{71,48} .. {37,90}z43
+);
+FuF (z44
+{-1,-64} .. {-40,-64}z45
+{-30,-49} .. {-20,0}z46
+{-18,0} .. {0,29}z47
+{0,45} .. {32,72}z48
+{30,72} .. {25,0}z49
+{8,0} .. {6,-8}z50
+{8,-12} .. {0,-20}z51
+);
+lbl (range 1 thru 51);
+endchar;
+
+beginchar(65,699FX#,624FY#,13FY#);
+"A";
+z1=(685FX,6FY);
+z2=(677FX,34FY);
+z3=(653FX,29FY);
+z4=(560FX,117FY);
+z5=(583FX,176FY);
+z6=(589FX,258FY);
+z7=(589FX,523FY);
+z8=(605FX,584FY);
+z9=(677FX,607FY);
+z10=(677FX,624FY);
+z11=(369FX,624FY);
+z12=(369FX,607FY);
+z13=(432FX,588FY);
+z14=(446FX,523FY);
+z15=(446FX,337FY);
+z16=(537FX,211FY);
+z17=(530FX,152FY);
+z18=(447FX,198FY);
+z19=(334FX,131FY);
+z20=(353FX,112FY);
+z21=(387FX,123FY);
+z22=(426FX,104FY);
+z23=(458FX,58FY);
+z24=(349FX,19FY);
+z25=(250FX,197FY);
+z26=(250FX,523FY);
+z27=(264FX,587FY);
+z28=(326FX,607FY);
+z29=(326FX,624FY);
+z30=(22FX,624FY);
+z31=(22FX,607FY);
+z32=(89FX,589FY);
+z33=(106FX,523FY);
+z34=(106FX,258FY);
+z35=(348FX,-13FY);
+z36=(483FX,34FY);
+z37=(594FX,-13FY);
+z38=(685FX,6FY);
+FuF (z1
+-- z2
+{-8,-3} .. {-8,0}z3
+{-29,0} .. {-33,58}z4
+{11,17} .. {4,22}z5
+{4,22} .. {0,32}z6
+-- z7
+{0,29} .. {10,12}z8
+{13,15} .. {35,0}z9
+-- z10
+-- z11
+-- z12
+{31,-1} .. {10,-12}z13
+{10,-11} .. {0,-32}z14
+-- z15
+{62,-13} .. {-1,-71}z16
+{0,-20} .. {-4,-20}z17
+{-24,31} .. {-31,0}z18
+{-44,-1} .. {-32,-44}z19
+-- z20
+{12,7} .. {10,0}z21
+{14,0} .. {12,-13}z22
+{9,-10} .. {13,-21}z23
+{-30,-26} .. {-43,0}z24
+{-66,0} .. {0,119}z25
+-- z26
+{0,32} .. {9,11}z27
+{10,13} .. {31,0}z28
+-- z29
+-- z30
+-- z31
+{33,-1} .. {11,-12}z32
+{12,-11} .. {0,-33}z33
+-- z34
+{0,-181} .. {161,1}z35
+{64,0} .. {26,31}z36
+{20,-32} .. {54,1}z37
+{45,1} .. {16,12}z38
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(66,641FX#,637FY#,0FY#);
+"B";
+z1=(607FX,136FY);
+z2=(607FX,168FY);
+z3=(420FX,241FY);
+z4=(241FX,241FY);
+z5=(241FX,411FY);
+z6=(339FX,606FY);
+z7=(432FX,506FY);
+z8=(438FX,409FY);
+z9=(438FX,315FY);
+z10=(581FX,315FY);
+z11=(581FX,373FY);
+z12=(523FX,564FY);
+z13=(339FX,637FY);
+z14=(151FX,555FY);
+z15=(98FX,373FY);
+z16=(98FX,104FY);
+z17=(80FX,36FY);
+z18=(13FX,18FY);
+z19=(13FX,0FY);
+z20=(325FX,0FY);
+z21=(325FX,18FY);
+z22=(256FX,37FY);
+z23=(241FX,105FY);
+z24=(241FX,200FY);
+z25=(395FX,200FY);
+z26=(444FX,158FY);
+z27=(444FX,136FY);
+FuF (z1
+-- z2
+{0,49} .. {-124,0}z3
+-- z4
+-- z5
+{0,130} .. {65,0}z6
+{52,0} .. {10,-66}z7
+{4,-22} .. {0,-43}z8
+-- z9
+-- z10
+-- z11
+{0,81} .. {-39,46}z12
+{-42,49} .. {-81,-1}z13
+{-84,0} .. {-41,-55}z14
+{-35,-46} .. {0,-75}z15
+-- z16
+{0,-33} .. {-12,-12}z17
+{-11,-12} .. {-33,0}z18
+-- z19
+-- z20
+-- z21
+{-35,0} .. {-11,13}z22
+{-10,12} .. {0,34}z23
+-- z24
+-- z25
+{33,0} .. {0,-28}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(67,666FX#,640FY#,10FY#);
+"C";
+z1=(605FX,210FY);
+z2=(553FX,356FY);
+z3=(408FX,420FY);
+z4=(491FX,441FY);
+z5=(535FX,510FY);
+z6=(474FX,611FY);
+z7=(338FX,641FY);
+z8=(206FX,612FY);
+z9=(134FX,508FY);
+z10=(179FX,443FY);
+z11=(259FX,418FY);
+z12=(140FX,381FY);
+z13=(61FX,289FY);
+z14=(225FX,289FY);
+z15=(251FX,363FY);
+z16=(333FX,396FY);
+z17=(452FX,212FY);
+z18=(335FX,22FY);
+z19=(214FX,203FY);
+z20=(56FX,204FY);
+z21=(130FX,57FY);
+z22=(337FX,-11FY);
+z23=(534FX,58FY);
+z24=(605FX,210FY);
+z25=(391FX,510FY);
+z26=(378FX,457FY);
+z27=(333FX,431FY);
+z28=(294FX,452FY);
+z29=(275FX,508FY);
+z30=(336FX,608FY);
+z31=(391FX,510FY);
+FuF (z1
+{0,63} .. {-35,34}z2
+{-30,30} .. {-66,13}z3
+{32,0} .. {24,14}z4
+{30,17} .. {0,29}z5
+{-1,44} .. {-40,23}z6
+{-35,20} .. {-56,0}z7
+{-50,-1} .. {-38,-19}z8
+{-48,-24} .. {0,-45}z9
+{0,-26} .. {30,-18}z10
+{24,-14} .. {29,-2}z11
+{-45,-5} .. {-35,-20}z12
+{-40,-23} .. {-13,-38}z13
+-- z14
+{1,31} .. {17,18}z15
+{19,22} .. {35,0}z16
+{79,0} .. {0,-123}z17
+{0,-127} .. {-77,1}z18
+{-81,0} .. {0,121}z19
+-- z20
+{0,-58} .. {49,-40}z21
+{54,-45} .. {84,0}z22
+{80,0} .. {51,46}z23
+{47,42} .. {0,60}z24
+);
+FuF (z25
+{0,-20} .. {-8,-15}z26
+{-11,-17} .. {-19,0}z27
+{-14,0} .. {-12,14}z28
+{-13,15} .. {0,22}z29
+{1,68} .. {40,-1}z30
+{37,0} .. {-1,-65}z31
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(68,725FX#,637FY#,0FY#);
+"D";
+z1=(742FX,136FY);
+z2=(742FX,168FY);
+z3=(555FX,241FY);
+z4=(513FX,241FY);
+z5=(513FX,373FY);
+z6=(272FX,637FY);
+z7=(30FX,373FY);
+z8=(30FX,315FY);
+z9=(174FX,315FY);
+z10=(174FX,404FY);
+z11=(193FX,547FY);
+z12=(272FX,606FY);
+z13=(370FX,406FY);
+z14=(370FX,102FY);
+z15=(350FX,31FY);
+z16=(277FX,16FY);
+z17=(277FX,0FY);
+z18=(598FX,0FY);
+z19=(598FX,18FY);
+z20=(528FX,33FY);
+z21=(513FX,104FY);
+z22=(513FX,200FY);
+z23=(531FX,200FY);
+z24=(567FX,193FY);
+z25=(580FX,158FY);
+z26=(580FX,136FY);
+FuF (z1
+-- z2
+{0,49} .. {-125,0}z3
+-- z4
+-- z5
+{0,176} .. {-161,-1}z6
+{-161,0} .. {0,-176}z7
+-- z8
+-- z9
+-- z10
+{0,63} .. {13,33}z11
+{16,39} .. {37,0}z12
+{65,-1} .. {0,-133}z13
+-- z14
+{0,-36} .. {-13,-11}z15
+{-12,-10} .. {-37,0}z16
+-- z17
+-- z18
+-- z19
+{-37,0} .. {-10,10}z20
+{-10,10} .. {0,37}z21
+-- z22
+-- z23
+{17,0} .. {6,-4}z24
+{9,-6} .. {0,-17}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(69,630FX#,624FY#,13FY#);
+"E";
+z1=(607FX,315FY);
+z2=(607FX,349FY);
+z3=(540FX,418FY);
+z4=(435FX,431FY);
+z5=(241FX,431FY);
+z6=(241FX,523FY);
+z7=(258FX,591FY);
+z8=(327FX,607FY);
+z9=(327FX,624FY);
+z10=(13FX,624FY);
+z11=(13FX,607FY);
+z12=(83FX,591FY);
+z13=(98FX,523FY);
+z14=(98FX,258FY);
+z15=(340FX,-13FY);
+z16=(519FX,46FY);
+z17=(581FX,222FY);
+z18=(581FX,234FY);
+z19=(438FX,234FY);
+z20=(438FX,181FY);
+z21=(341FX,19FY);
+z22=(255FX,82FY);
+z23=(241FX,199FY);
+z24=(241FX,390FY);
+z25=(394FX,390FY);
+z26=(447FX,339FY);
+z27=(447FX,315FY);
+FuF (z1
+-- z2
+{0,32} .. {-45,14}z3
+{-30,9} .. {-40,0}z4
+-- z5
+-- z6
+{0,35} .. {11,11}z7
+{11,10} .. {35,0}z8
+-- z9
+-- z10
+-- z11
+{36,0} .. {11,-10}z12
+{10,-10} .. {0,-35}z13
+-- z14
+
+{0,-181} .. {161,0}z15
+{78,0} .. {41,39}z16
+{42,40} .. {0,78}z17
+-- z18
+-- z19
+-- z20
+{0,-108} .. {-64,0}z21
+{-42,0} .. {-15,42}z22
+{-9,25} .. {0,53}z23
+-- z24
+-- z25
+{36,0} .. {0,-34}z26
+-- z27
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(70,792FX#,624FY#,10FY#);
+"F";
+z1=(761FX,210FY);
+z2=(468FX,436FY);
+z3=(468FX,523FY);
+z4=(487FX,589FY);
+z5=(554FX,607FY);
+z6=(554FX,624FY);
+z7=(325FX,624FY);
+z8=(163FX,602FY);
+z9=(102FX,512FY);
+z10=(185FX,419FY);
+z11=(325FX,407FY);
+z12=(325FX,26FY);
+z13=(177FX,210FY);
+z14=(177FX,315FY);
+z15=(34FX,315FY);
+z16=(34FX,208FY);
+z17=(162FX,30FY);
+z18=(393FX,-11FY);
+z19=(630FX,31FY);
+z20=(761FX,210FY);
+z21=(325FX,439FY);
+z22=(242FX,519FY);
+z23=(263FX,577FY);
+z24=(325FX,592FY);
+z25=(607FX,210FY);
+z26=(581FX,88FY);
+z27=(468FX,26FY);
+z28=(468FX,403FY);
+z29=(582FX,344FY);
+z30=(607FX,210FY);
+FuF (z1
+{0,151} .. {-195,0}z2
+-- z3
+{0,32} .. {13,12}z4
+{12,12} .. {32,0}z5
+-- z6
+-- z7
+{-73,0} .. {-35,-15}z8
+{-41,-17} .. {1,-42}z9
+{0,-47} .. {55,-15}z10
+{30,-8} .. {64,0}z11
+-- z12
+{-99,15} .. {0,107}z13
+-- z14
+-- z15
+-- z16
+{0,-81} .. {85,-38}z17
+{62,-27} .. {92,0}z18
+{94,0} .. {64,28}z19
+{87,38} .. {0,81}z20
+);
+FuF (z21
+{-56,1} .. {0,52}z22
+{0,27} .. {13,12}z23
+{13,10} .. {29,0}z24
+);
+FuF (z25
+{-1,-53} .. {-17,-28}z26
+{-23,-36} .. {-53,-5}z27
+-- z28
+{54,0} .. {22,-39}z29
+{17,-29} .. {0,-60}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(71,758FX#,637FY#,0FY#);
+"G";
+z1=(772FX,136FY);
+z2=(772FX,168FY);
+z3=(591FX,241FY);
+z4=(543FX,241FY);
+z5=(543FX,380FY);
+z6=(478FX,566FY);
+z7=(297FX,637FY);
+z8=(123FX,580FY);
+z9=(50FX,416FY);
+z10=(113FX,266FY);
+z11=(308FX,200FY);
+z12=(399FX,200FY);
+z13=(399FX,93FY);
+z14=(376FX,29FY);
+z15=(307FX,18FY);
+z16=(307FX,0FY);
+z17=(625FX,0FY);
+z18=(625FX,18FY);
+z19=(560FX,29FY);
+z20=(543FX,90FY);
+z21=(543FX,200FY);
+z22=(566FX,200FY);
+z23=(610FX,158FY);
+z24=(610FX,136FY);
+z25=(399FX,241FY);
+z26=(308FX,241FY);
+z27=(197FX,415FY);
+z28=(297FX,606FY);
+z29=(380FX,540FY);
+z30=(399FX,426FY);
+FuF (z1
+-- z2
+{0,49} .. {-121,0}z3
+-- z4
+-- z5
+{0,77} .. {-43,47}z6
+{-44,47} .. {-77,0}z7
+{-70,0} .. {-46,-38}z8
+{-48,-41} .. {0,-68}z9
+{0,-61} .. {42,-40}z10
+{47,-44} .. {84,0}z11
+-- z12
+-- z13
+{0,-32} .. {-15,-11}z14
+{-11,-7} .. {-34,0}z15
+-- z16
+-- z17
+-- z18
+{-33,0} .. {-10,7}z19
+{-12,9} .. {0,32}z20
+-- z21
+-- z22
+{29,0} .. {0,-28}z23
+-- z24
+);
+FuF (z25
+-- z26
+{-74,0} .. {0,116}z27
+{0,127} .. {66,0}z28
+{38,-1} .. {17,-43}z29
+{13,-30} .. {0,-46}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(72,594FX#,692FY#,18FY#);
+"H";
+z1=(556FX,656FY);
+z2=(556FX,692FY);
+z3=(392FX,692FY);
+z4=(392FX,666FY);
+z5=(343FX,624FY);
+z6=(54FX,624FY);
+z7=(-3FX,586FY);
+z8=(31FX,525FY);
+z9=(433FX,136FY);
+z10=(483FX,71FY);
+z11=(504FX,15FY);
+z12=(504FX,-19FY);
+z13=(532FX,-19FY);
+z14=(532FX,67FY);
+z15=(460FX,302FY);
+z16=(193FX,558FY);
+z17=(184FX,572FY);
+z18=(206FX,583FY);
+z19=(411FX,583FY);
+z20=(527FX,604FY);
+z21=(556FX,656FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-28} .. {-33,0}z5
+-- z6
+{-38,0} .. {0,-26}z7
+{0,-19} .. {23,-22}z8
+-- z9
+{19,-18} .. {15,-26}z10
+{14,-24} .. {0,-13}z11
+-- z12
+-- z13
+-- z14
+{0,98} .. {-48,59}z15
+-- z16
+{-6,6} .. {0,4}z17
+{0,8} .. {14,0}z18
+-- z19
+{54,0} .. {23,14}z20
+{19,12} .. {0,23}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(73,612FX#,624FY#,0FY#);
+"I";
+z1=(581FX,158FY);
+z2=(581FX,210FY);
+z3=(524FX,403FY);
+z4=(340FX,481FY);
+z5=(300FX,475FY);
+z6=(241FX,454FY);
+z7=(241FX,523FY);
+z8=(258FX,590FY);
+z9=(327FX,606FY);
+z10=(327FX,624FY);
+z11=(13FX,624FY);
+z12=(13FX,607FY);
+z13=(82FX,590FY);
+z14=(98FX,523FY);
+z15=(98FX,93FY);
+z16=(79FX,31FY);
+z17=(13FX,18FY);
+z18=(13FX,0FY);
+z19=(327FX,0FY);
+z20=(327FX,19FY);
+z21=(261FX,30FY);
+z22=(241FX,93FY);
+z23=(241FX,278FY);
+z24=(256FX,390FY);
+z25=(339FX,449FY);
+z26=(438FX,287FY);
+z27=(438FX,158FY);
+FuF (z1
+-- z2
+{0,81} .. {-38,47}z3
+{-42,52} .. {-80,0}z4
+{-11,0} .. {-16,-4}z5
+{-20,-5} .. {-19,-9}z6
+-- z7
+{0,34} .. {11,10}z8
+{11,10} .. {35,0}z9
+-- z10
+-- z11
+-- z12
+{35,-1} .. {11,-11}z13
+{11,-10} .. {0,-34}z14
+-- z15
+{0,-31} .. {-13,-10}z16
+{-12,-9} .. {-33,0}z17
+-- z18
+-- z19
+-- z20
+{-33,0} .. {-10,7}z21
+{-13,10} .. {0,32}z22
+-- z23
+{0,50} .. {10,25}z24
+{15,40} .. {40,0}z25
+{66,0} .. {0,-108}z26
+-- z27
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(74,680FX#,636FY#,95FY#);
+"J";
+z1=(621FX,387FY);
+z2=(546FX,566FY);
+z3=(353FX,636FY);
+z4=(167FX,585FY);
+z5=(75FX,425FY);
+z6=(144FX,280FY);
+z7=(206FX,238FY);
+z8=(308FX,129FY);
+z9=(223FX,42FY);
+z10=(223FX,122FY);
+z11=(80FX,122FY);
+z12=(80FX,-95FY);
+z13=(223FX,-95FY);
+z14=(223FX,0FY);
+z15=(395FX,0FY);
+z16=(444FX,-12FY);
+z17=(458FX,-58FY);
+z18=(458FX,-95FY);
+z19=(619FX,-95FY);
+z20=(619FX,-47FY);
+z21=(461FX,41FY);
+z22=(324FX,41FY);
+z23=(524FX,173FY);
+z24=(621FX,387FY);
+z25=(484FX,357FY);
+z26=(375FX,128FY);
+z27=(378FX,131FY);
+z28=(390FX,174FY);
+z29=(363FX,265FY);
+z30=(288FX,349FY);
+z31=(197FX,490FY);
+z32=(231FX,568FY);
+z33=(292FX,591FY);
+z34=(428FX,511FY);
+z35=(484FX,357FY);
+FuF (z1
+{0,73} .. {-50,47}z2
+{-49,47} .. {-79,0}z3
+{-71,0} .. {-53,-34}z4
+{-62,-39} .. {0,-67}z5
+{0,-58} .. {46,-39}z6
+{14,-11} .. {27,-17}z7
+{68,-42} .. {0,-31}z8
+{0,-58} .. {-57,0}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+{23,0} .. {10,-8}z16
+{9,-9} .. {0,-22}z17
+-- z18
+-- z19
+-- z20
+{0,59} .. {-106,0}z21
+-- z22
+{74,23} .. {59,65}z23
+{65,70} .. {0,73}z24
+);
+FuF (z25
+{-1,-97} .. {-72,-55}z26
+-- z27
+{8,11} .. {0,18}z28
+{0,29} .. {-18,32}z29
+{-19,34} .. {-31,22}z30
+{-61,43} .. {0,50}z31
+{0,33} .. {22,19}z32
+{18,16} .. {22,0}z33
+{51,0} .. {40,-53}z34
+{37,-50} .. {0,-53}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(75,676FX#,624FY#,0FY#);
+"K";
+z1=(666FX,0FY);
+z2=(666FX,18FY);
+z3=(594FX,35FY);
+z4=(581FX,102FY);
+z5=(581FX,322FY);
+z6=(596FX,395FY);
+z7=(666FX,413FY);
+z8=(666FX,431FY);
+z9=(352FX,431FY);
+z10=(352FX,412FY);
+z11=(424FX,394FY);
+z12=(438FX,321FY);
+z13=(438FX,293FY);
+z14=(414FX,215FY);
+z15=(339FX,175FY);
+z16=(257FX,225FY);
+z17=(241FX,356FY);
+z18=(241FX,523FY);
+z19=(259FX,594FY);
+z20=(327FX,607FY);
+z21=(327FX,624FY);
+z22=(13FX,624FY);
+z23=(13FX,606FY);
+z24=(82FX,589FY);
+z25=(98FX,523FY);
+z26=(98FX,409FY);
+z27=(156FX,217FY);
+z28=(338FX,143FY);
+z29=(397FX,146FY);
+z30=(438FX,158FY);
+z31=(438FX,102FY);
+z32=(420FX,35FY);
+z33=(352FX,19FY);
+z34=(352FX,0FY);
+FuF (z1
+-- z2
+{-38,1} .. {-10,11}z3
+{-9,9} .. {0,35}z4
+-- z5
+{0,38} .. {10,11}z6
+{11,12} .. {36,0}z7
+-- z8
+-- z9
+-- z10
+{38,0} .. {10,-12}z11
+{9,-10} .. {0,-38}z12
+-- z13
+{0,-30} .. {-16,-22}z14
+{-19,-27} .. {-31,0}z15
+{-40,1} .. {-14,33}z16
+{-10,25} .. {0,62}z17
+-- z18
+{0,37} .. {12,11}z19
+{10,8} .. {36,0}z20
+-- z21
+-- z22
+-- z23
+{36,-1} .. {10,-11}z24
+{11,-10} .. {0,-33}z25
+-- z26
+{0,-82} .. {39,-46}z27
+{41,-49} .. {80,0}z28
+{30,0} .. {9,2}z29
+-- z30
+-- z31
+{0,-33} .. {-12,-12}z32
+{-12,-11} .. {-33,0}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(76,501FX#,624FY#,65FY#);
+"L";
+z1=(483FX,-66FY);
+z2=(483FX,-34FY);
+z3=(348FX,41FY);
+z4=(241FX,41FY);
+z5=(241FX,523FY);
+z6=(257FX,591FY);
+z7=(327FX,607FY);
+z8=(327FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,607FY);
+z11=(83FX,590FY);
+z12=(98FX,523FY);
+z13=(98FX,104FY);
+z14=(82FX,34FY);
+z15=(13FX,18FY);
+z16=(13FX,0FY);
+z17=(270FX,0FY);
+z18=(322FX,-43FY);
+z19=(322FX,-66FY);
+FuF (z1
+-- z2
+{0,50} .. {-90,0}z3
+-- z4
+-- z5
+{0,35} .. {10,10}z6
+{11,10} .. {35,0}z7
+-- z8
+-- z9
+-- z10
+{37,-1} .. {9,-10}z11
+{10,-10} .. {0,-34}z12
+-- z13
+{0,-36} .. {-11,-11}z14
+{-10,-11} .. {-36,0}z15
+-- z16
+-- z17
+{35,0} .. {0,-29}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(77,833FX#,624FY#,13FY#);
+"M";
+z1=(833FX,517FY);
+z2=(833FX,549FY);
+z3=(797FX,604FY);
+z4=(698FX,624FY);
+z5=(359FX,624FY);
+z6=(359FX,607FY);
+z7=(421FX,588FY);
+z8=(438FX,523FY);
+z9=(438FX,184FY);
+z10=(420FX,77FY);
+z11=(339FX,19FY);
+z12=(241FX,184FY);
+z13=(241FX,523FY);
+z14=(255FX,588FY);
+z15=(318FX,607FY);
+z16=(318FX,624FY);
+z17=(13FX,624FY);
+z18=(13FX,607FY);
+z19=(82FX,590FY);
+z20=(98FX,523FY);
+z21=(98FX,258FY);
+z22=(156FX,64FY);
+z23=(338FX,-13FY);
+z24=(524FX,63FY);
+z25=(581FX,258FY);
+z26=(581FX,583FY);
+z27=(618FX,583FY);
+z28=(671FX,539FY);
+z29=(671FX,517FY);
+FuF (z1
+-- z2
+{0,23} .. {-24,14}z3
+{-24,14} .. {-42,0}z4
+-- z5
+-- z6
+{31,0} .. {10,-12}z7
+{11,-12} .. {0,-31}z8
+-- z9
+{0,-43} .. {-11,-29}z10
+{-17,-39} .. {-37,0}z11
+{-65,0} .. {0,110}z12
+-- z13
+{0,32} .. {9,11}z14
+{11,12} .. {31,0}z15
+-- z16
+-- z17
+-- z18
+{35,-1} .. {11,-11}z19
+{11,-10} .. {0,-34}z20
+-- z21
+{0,-81} .. {39,-48}z22
+{42,-52} .. {79,0}z23
+{82,0} .. {42,51}z24
+{38,46} .. {0,83}z25
+-- z26
+-- z27
+{35,0} .. {0,-29}z28
+-- z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(78,744FX#,694FY#,13FY#);
+"N";
+z1=(694FX,249FY);
+z2=(694FX,315FY);
+z3=(551FX,315FY);
+z4=(551FX,242FY);
+z5=(545FX,115FY);
+z6=(520FX,45FY);
+z7=(453FX,19FY);
+z8=(383FX,53FY);
+z9=(359FX,131FY);
+z10=(355FX,252FY);
+z11=(355FX,624FY);
+z12=(215FX,624FY);
+z13=(171FX,636FY);
+z14=(162FX,671FY);
+z15=(162FX,694FY);
+z16=(0FX,694FY);
+z17=(0FX,662FY);
+z18=(175FX,583FY);
+z19=(211FX,583FY);
+z20=(211FX,258FY);
+z21=(454FX,-13FY);
+z22=(640FX,55FY);
+z23=(694FX,249FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-59} .. {-4,-25}z5
+{-4,-32} .. {-12,-15}z6
+{-15,-18} .. {-30,0}z7
+{-32,0} .. {-15,22}z8
+{-12,17} .. {-5,35}z9
+{-3,25} .. {0,56}z10
+-- z11
+-- z12
+{-21,0} .. {-8,8}z13
+{-6,6} .. {0,17}z14
+-- z15
+-- z16
+-- z17
+{0,-53} .. {117,0}z18
+-- z19
+-- z20
+{0,-181} .. {162,0}z21
+{85,0} .. {39,46}z22
+{36,43} .. {0,86}z23
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(79,681FX#,637FY#,0FY#);
+"O";
+z1=(669FX,0FY);
+z2=(669FX,18FY);
+z3=(599FX,35FY);
+z4=(581FX,104FY);
+z5=(581FX,373FY);
+z6=(339FX,637FY);
+z7=(98FX,373FY);
+z8=(98FX,104FY);
+z9=(81FX,35FY);
+z10=(13FX,18FY);
+z11=(13FX,0FY);
+z12=(318FX,0FY);
+z13=(318FX,18FY);
+z14=(255FX,37FY);
+z15=(241FX,104FY);
+z16=(241FX,409FY);
+z17=(339FX,606FY);
+z18=(432FX,511FY);
+z19=(437FX,409FY);
+z20=(437FX,104FY);
+z21=(423FX,39FY);
+z22=(361FX,18FY);
+z23=(361FX,0FY);
+FuF (z1
+-- z2
+{-35,0} .. {-12,11}z3
+{-12,11} .. {0,35}z4
+-- z5
+{0,176} .. {-161,0}z6
+{-161,0} .. {0,-176}z7
+-- z8
+{0,-35} .. {-11,-11}z9
+{-11,-11} .. {-34,0}z10
+-- z11
+-- z12
+-- z13
+{-33,0} .. {-9,13}z14
+{-9,11} .. {0,34}z15
+-- z16
+{0,132} .. {65,0}z17
+{52,-1} .. {10,-63}z18
+{4,-24} .. {0,-44}z19
+-- z20
+{0,-32} .. {-9,-12}z21
+{-12,-14} .. {-30,0}z22
+-- z23
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(80,824FX#,631FY#,0FY#);
+"P";
+z1=(809FX,0FY);
+z2=(809FX,18FY);
+z3=(743FX,33FY);
+z4=(728FX,102FY);
+z5=(728FX,341FY);
+z6=(700FX,474FY);
+z7=(380FX,632FY);
+z8=(111FX,544FY);
+z9=(32FX,345FY);
+z10=(32FX,315FY);
+z11=(175FX,315FY);
+z12=(175FX,387FY);
+z13=(209FX,528FY);
+z14=(308FX,593FY);
+z15=(308FX,205FY);
+z16=(451FX,205FY);
+z17=(451FX,593FY);
+z18=(585FX,376FY);
+z19=(585FX,102FY);
+z20=(566FX,33FY);
+z21=(499FX,19FY);
+z22=(499FX,0FY);
+FuF (z1
+-- z2
+{-35,1} .. {-9,9}z3
+{-10,9} .. {0,37}z4
+-- z5
+{0,50} .. {-19,39}z6
+{-51,105} .. {-162,0}z7
+{-119,0} .. {-60,-58}z8
+{-53,-50} .. {0,-83}z9
+-- z10
+-- z11
+-- z12
+{0,57} .. {22,37}z13
+{24,39} .. {42,4}z14
+-- z15
+-- z16
+-- z17
+{89,-12} .. {0,-133}z18
+-- z19
+{0,-36} .. {-13,-10}z20
+{-10,-9} .. {-34,0}z21
+-- z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(81,741FX#,637FY#,0FY#);
+"Q";
+z1=(691FX,47FY);
+z2=(691FX,79FY);
+z3=(544FX,153FY);
+z4=(338FX,153FY);
+z5=(338FX,274FY);
+z6=(438FX,234FY);
+z7=(605FX,276FY);
+z8=(678FX,425FY);
+z9=(611FX,586FY);
+z10=(440FX,637FY);
+z11=(261FX,579FY);
+z12=(195FX,404FY);
+z13=(195FX,153FY);
+z14=(178FX,153FY);
+z15=(129FX,194FY);
+z16=(129FX,217FY);
+z17=(0FX,217FY);
+z18=(0FX,185FY);
+z19=(47FX,128FY);
+z20=(125FX,111FY);
+z21=(194FX,111FY);
+z22=(194FX,90FY);
+z23=(177FX,33FY);
+z24=(116FX,18FY);
+z25=(116FX,0FY);
+z26=(427FX,0FY);
+z27=(427FX,18FY);
+z28=(360FX,31FY);
+z29=(338FX,93FY);
+z30=(338FX,111FY);
+z31=(480FX,111FY);
+z32=(529FX,70FY);
+z33=(529FX,47FY);
+z34=(535FX,436FY);
+z35=(437FX,269FY);
+z36=(360FX,316FY);
+z37=(338FX,408FY);
+z38=(338FX,450FY);
+z39=(359FX,559FY);
+z40=(440FX,606FY);
+z41=(517FX,560FY);
+z42=(535FX,436FY);
+FuF (z1
+-- z2
+{0,49} .. {-98,0}z3
+-- z4
+-- z5
+{31,-27} .. {36,0}z6
+{70,0} .. {41,28}z7
+{49,33} .. {0,67}z8
+{0,70} .. {-45,38}z9
+{-42,34} .. {-72,0}z10
+{-76,0} .. {-43,-39}z11
+{-44,-41} .. {0,-76}z12
+-- z13
+-- z14
+{-33,0} .. {0,27}z15
+-- z16
+-- z17
+-- z18
+{0,-26} .. {31,-12}z19
+{26,-11} .. {26,0}z20
+-- z21
+-- z22
+{0,-28} .. {-11,-10}z23
+{-12,-10} .. {-29,0}z24
+-- z25
+-- z26
+-- z27
+{-33,0} .. {-12,9}z28
+{-14,10} .. {0,31}z29
+-- z30
+-- z31
+{32,-4} .. {0,-23}z32
+-- z33
+);
+FuF (z34
+{-1,-112} .. {-65,1}z35
+{-34,0} .. {-17,31}z36
+{-14,25} .. {0,36}z37
+-- z38
+{0,47} .. {14,26}z39
+{16,31} .. {37,0}z40
+{37,-1} .. {14,-30}z41
+{12,-25} .. {0,-58}z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(82,612FX#,637FY#,0FY#);
+"R";
+z1=(581FX,315FY);
+z2=(581FX,373FY);
+z3=(523FX,564FY);
+z4=(339FX,637FY);
+z5=(98FX,373FY);
+z6=(98FX,104FY);
+z7=(82FX,35FY);
+z8=(14FX,18FY);
+z9=(14FX,0FY);
+z10=(327FX,0FY);
+z11=(327FX,18FY);
+z12=(257FX,35FY);
+z13=(241FX,104FY);
+z14=(241FX,409FY);
+z15=(339FX,606FY);
+z16=(432FX,506FY);
+z17=(438FX,409FY);
+z18=(438FX,315FY);
+FuF (z1
+-- z2
+{0,82} .. {-39,45}z3
+{-41,49} .. {-81,0}z4
+{-160,0} .. {0,-176}z5
+-- z6
+{0,-35} .. {-11,-11}z7
+{-11,-11} .. {-34,0}z8
+-- z9
+-- z10
+-- z11
+{-36,1} .. {-11,11}z12
+{-10,10} .. {0,36}z13
+-- z14
+{0,131} .. {65,0}z15
+{50,0} .. {12,-66}z16
+{4,-23} .. {0,-42}z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(83,681FX#,624FY#,13FY#);
+"S";
+z1=(677FX,607FY);
+z2=(677FX,624FY);
+z3=(370FX,624FY);
+z4=(370FX,607FY);
+z5=(433FX,587FY);
+z6=(446FX,520FY);
+z7=(446FX,215FY);
+z8=(429FX,75FY);
+z9=(348FX,19FY);
+z10=(256FX,116FY);
+z11=(250FX,215FY);
+z12=(250FX,520FY);
+z13=(263FX,587FY);
+z14=(327FX,607FY);
+z15=(327FX,624FY);
+z16=(22FX,624FY);
+z17=(22FX,607FY);
+z18=(92FX,587FY);
+z19=(106FX,520FY);
+z20=(106FX,252FY);
+z21=(348FX,-13FY);
+z22=(537FX,59FY);
+z23=(589FX,252FY);
+z24=(589FX,520FY);
+z25=(609FX,588FY);
+z26=(677FX,607FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{32,-1} .. {9,-13}z5
+{9,-11} .. {0,-34}z6
+-- z7
+{0,-65} .. {-12,-29}z8
+{-15,-38} .. {-39,0}z9
+{-52,0} .. {-9,65}z10
+{-4,24} .. {0,42}z11
+-- z12
+{0,34} .. {8,11}z13
+{11,13} .. {32,0}z14
+-- z15
+-- z16
+-- z17
+{35,0} .. {11,-13}z18
+{9,-11} .. {0,-34}z19
+-- z20
+{0,-177} .. {161,1}z21
+{88,0} .. {38,48}z22
+{35,43} .. {0,86}z23
+-- z24
+{0,33} .. {13,13}z25
+{13,12} .. {33,0}z26
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(84,604FX#,635FY#,10FY#);
+"T";
+z1=(558FX,158FY);
+z2=(451FX,325FY);
+z3=(383FX,360FY);
+z4=(318FX,393FY);
+z5=(260FX,434FY);
+z6=(236FX,494FY);
+z7=(311FX,609FY);
+z8=(377FX,539FY);
+z9=(385FX,431FY);
+z10=(528FX,431FY);
+z11=(465FX,581FY);
+z12=(311FX,636FY);
+z13=(167FX,595FY);
+z14=(93FX,473FY);
+z15=(133FX,368FY);
+z16=(221FX,306FY);
+z17=(312FX,264FY);
+z18=(385FX,208FY);
+z19=(415FX,135FY);
+z20=(322FX,21FY);
+z21=(197FX,204FY);
+z22=(42FX,204FY);
+z23=(136FX,42FY);
+z24=(323FX,-11FY);
+z25=(498FX,47FY);
+z26=(558FX,158FY);
+FuF (z1
+{0,69} .. {-71,42}z2
+{-10,6} .. {-35,17}z3
+{-24,12} .. {-19,10}z4
+{-26,14} .. {-13,14}z5
+{-16,18} .. {0,22}z6
+{0,77} .. {50,-1}z7
+{33,0} .. {10,-47}z8
+{6,-23} .. {0,-49}z9
+-- z10
+{0,62} .. {-42,38}z11
+{-40,36} .. {-63,0}z12
+{-53,0} .. {-43,-27}z13
+{-50,-30} .. {0,-50}z14
+{0,-41} .. {27,-29}z15
+{21,-24} .. {38,-18}z16
+{40,-19} .. {20,-9}z17
+{30,-14} .. {19,-23}z18
+{20,-24} .. {0,-25}z19
+{-1,-76} .. {-61,0}z20
+{-83,0} .. {0,122}z21
+-- z22
+{0,-68} .. {63,-40}z23
+{54,-35} .. {71,0}z24
+{72,0} .. {45,38}z25
+{40,33} .. {0,41}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(85,1213FX#,637FY#,0FY#);
+"U";
+z1=(669FX,0FY);
+z2=(669FX,18FY);
+z3=(599FX,35FY);
+z4=(581FX,104FY);
+z5=(581FX,373FY);
+z6=(339FX,637FY);
+z7=(98FX,373FY);
+z8=(98FX,104FY);
+z9=(81FX,35FY);
+z10=(13FX,18FY);
+z11=(13FX,0FY);
+z12=(318FX,0FY);
+z13=(318FX,18FY);
+z14=(255FX,37FY);
+z15=(241FX,104FY);
+z16=(241FX,409FY);
+z17=(339FX,606FY);
+z18=(432FX,511FY);
+z19=(437FX,409FY);
+z20=(437FX,104FY);
+z21=(423FX,39FY);
+z22=(361FX,18FY);
+z23=(361FX,0FY);
+z24=(1213FX,315FY);
+z25=(1213FX,350FY);
+z26=(1072FX,431FY);
+z27=(922FX,431FY);
+z28=(922FX,523FY);
+z29=(939FX,591FY);
+z30=(1009FX,607FY);
+z31=(1009FX,624FY);
+z32=(694FX,624FY);
+z33=(694FX,607FY);
+z34=(764FX,591FY);
+z35=(779FX,523FY);
+z36=(779FX,104FY);
+z37=(762FX,32FY);
+z38=(694FX,18FY);
+z39=(694FX,0FY);
+z40=(1009FX,0FY);
+z41=(1009FX,19FY);
+z42=(940FX,33FY);
+z43=(922FX,104FY);
+z44=(922FX,390FY);
+z45=(1000FX,390FY);
+z46=(1053FX,346FY);
+z47=(1053FX,315FY);
+FuF (z1
+-- z2
+{-35,0} .. {-12,11}z3
+{-12,11} .. {0,35}z4
+-- z5
+{0,176} .. {-161,0}z6
+{-161,0} .. {0,-176}z7
+-- z8
+{0,-35} .. {-11,-11}z9
+{-11,-11} .. {-34,0}z10
+-- z11
+-- z12
+-- z13
+{-33,0} .. {-9,13}z14
+{-9,11} .. {0,34}z15
+-- z16
+{0,132} .. {65,0}z17
+{52,-1} .. {10,-63}z18
+{4,-24} .. {0,-44}z19
+-- z20
+{0,-32} .. {-9,-12}z21
+{-12,-14} .. {-30,0}z22
+-- z23
+);
+FuF (z24
+-- z25
+{0,54} .. {-94,0}z26
+-- z27
+-- z28
+{0,35} .. {11,11}z29
+{11,10} .. {36,0}z30
+-- z31
+-- z32
+-- z33
+{36,-1} .. {11,-10}z34
+{10,-11} .. {0,-35}z35
+-- z36
+{0,-38} .. {-11,-10}z37
+{-10,-9} .. {-35,0}z38
+-- z39
+-- z40
+-- z41
+{-36,0} .. {-10,9}z42
+{-12,11} .. {0,36}z43
+-- z44
+-- z45
+{35,0} .. {0,-29}z46
+-- z47
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 47);
+endchar;
+
+beginchar(86,762FX#,624FY#,64FY#);
+"V";
+z1=(779FX,-64FY);
+z2=(779FX,-31FY);
+z3=(702FX,34FY);
+z4=(588FX,41FY);
+z5=(555FX,41FY);
+z6=(555FX,523FY);
+z7=(571FX,591FY);
+z8=(641FX,607FY);
+z9=(641FX,624FY);
+z10=(327FX,624FY);
+z11=(327FX,606FY);
+z12=(397FX,590FY);
+z13=(412FX,523FY);
+z14=(412FX,346FY);
+z15=(314FX,175FY);
+z16=(216FX,335FY);
+z17=(216FX,431FY);
+z18=(2FX,431FY);
+z19=(2FX,412FY);
+z20=(76FX,368FY);
+z21=(313FX,143FY);
+z22=(412FX,177FY);
+z23=(412FX,0FY);
+z24=(577FX,0FY);
+z25=(617FX,-47FY);
+z26=(617FX,-64FY);
+FuF (z1
+-- z2
+{0,33} .. {-51,10}z3
+{-24,5} .. {-52,0}z4
+-- z5
+-- z6
+{0,35} .. {10,10}z7
+{11,10} .. {36,0}z8
+-- z9
+-- z10
+-- z11
+{36,-1} .. {11,-10}z12
+{10,-9} .. {0,-35}z13
+-- z14
+{0,-114} .. {-65,0}z15
+{-65,0} .. {0,106}z16
+-- z17
+-- z18
+-- z19
+{49,-1} .. {1,-29}z20
+{1,-150} .. {157,0}z21
+{33,0} .. {33,22}z22
+-- z23
+-- z24
+{26,0} .. {0,-31}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(87,531FX#,624FY#,0FY#);
+"W";
+z1=(532FX,315FY);
+z2=(532FX,350FY);
+z3=(391FX,431FY);
+z4=(241FX,431FY);
+z5=(241FX,523FY);
+z6=(258FX,591FY);
+z7=(327FX,607FY);
+z8=(327FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,607FY);
+z11=(83FX,591FY);
+z12=(98FX,523FY);
+z13=(98FX,104FY);
+z14=(81FX,32FY);
+z15=(13FX,18FY);
+z16=(13FX,0FY);
+z17=(327FX,0FY);
+z18=(328FX,19FY);
+z19=(259FX,33FY);
+z20=(241FX,104FY);
+z21=(241FX,390FY);
+z22=(319FX,390FY);
+z23=(372FX,346FY);
+z24=(372FX,315FY);
+FuF (z1
+-- z2
+{0,54} .. {-94,0}z3
+-- z4
+-- z5
+{0,35} .. {11,11}z6
+{11,10} .. {35,0}z7
+-- z8
+-- z9
+-- z10
+{36,-1} .. {11,-10}z11
+{10,-11} .. {0,-35}z12
+-- z13
+{0,-38} .. {-11,-10}z14
+{-11,-9} .. {-35,0}z15
+-- z16
+-- z17
+-- z18
+{-36,0} .. {-10,9}z19
+{-12,11} .. {0,36}z20
+-- z21
+-- z22
+{35,0} .. {0,-29}z23
+-- z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(88,865FX#,624FY#,11FY#);
+"X";
+z1=(825FX,249FY);
+z2=(825FX,431FY);
+z3=(614FX,431FY);
+z4=(614FX,413FY);
+z5=(673FX,390FY);
+z6=(682FX,322FY);
+z7=(682FX,205FY);
+z8=(668FX,66FY);
+z9=(601FX,14FY);
+z10=(519FX,84FY);
+z11=(508FX,204FY);
+z12=(508FX,431FY);
+z13=(241FX,431FY);
+z14=(241FX,523FY);
+z15=(258FX,590FY);
+z16=(327FX,606FY);
+z17=(327FX,624FY);
+z18=(13FX,624FY);
+z19=(13FX,607FY);
+z20=(82FX,590FY);
+z21=(98FX,523FY);
+z22=(98FX,104FY);
+z23=(82FX,34FY);
+z24=(13FX,18FY);
+z25=(13FX,0FY);
+z26=(327FX,0FY);
+z27=(327FX,18FY);
+z28=(258FX,34FY);
+z29=(241FX,104FY);
+z30=(241FX,390FY);
+z31=(364FX,390FY);
+z32=(364FX,249FY);
+z33=(603FX,-12FY);
+z34=(774FX,64FY);
+z35=(825FX,249FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{31,-1} .. {8,-15}z5
+{6,-10} .. {0,-35}z6
+-- z7
+{0,-65} .. {-9,-27}z8
+{-12,-35} .. {-33,0}z9
+{-41,1} .. {-14,46}z10
+{-7,27} .. {0,54}z11
+-- z12
+-- z13
+-- z14
+{0,34} .. {11,10}z15
+{12,10} .. {34,0}z16
+-- z17
+-- z18
+-- z19
+{35,-1} .. {11,-11}z20
+{11,-10} .. {0,-34}z21
+-- z22
+{0,-36} .. {-11,-11}z23
+{-10,-11} .. {-36,0}z24
+-- z25
+-- z26
+-- z27
+{-35,0} .. {-11,10}z28
+{-11,11} .. {0,36}z29
+-- z30
+-- z31
+-- z32
+{0,-174} .. {159,0}z33
+{76,0} .. {38,50}z34
+{34,44} .. {0,79}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(89,632FX#,640FY#,10FY#);
+"Y";
+z1=(603FX,205FY);
+z2=(549FX,325FY);
+z3=(426FX,371FY);
+z4=(424FX,373FY);
+z5=(509FX,408FY);
+z6=(550FX,493FY);
+z7=(483FX,607FY);
+z8=(347FX,641FY);
+z9=(211FX,609FY);
+z10=(134FX,501FY);
+z11=(275FX,501FY);
+z12=(347FX,608FY);
+z13=(413FX,497FY);
+z14=(319FX,379FY);
+z15=(225FX,379FY);
+z16=(232FX,408FY);
+z17=(91FX,408FY);
+z18=(69FX,303FY);
+z19=(212FX,303FY);
+z20=(220FX,347FY);
+z21=(321FX,347FY);
+z22=(454FX,195FY);
+z23=(425FX,81FY);
+z24=(328FX,22FY);
+z25=(233FX,87FY);
+z26=(210FX,208FY);
+z27=(58FX,208FY);
+z28=(143FX,43FY);
+z29=(326FX,-11FY);
+z30=(513FX,42FY);
+z31=(603FX,205FY);
+FuF (z1
+{0,49} .. {-36,32}z2
+{-33,30} .. {-48,0}z3
+-- z4
+{33,3} .. {23,20}z5
+{27,23} .. {0,34}z6
+{0,49} .. {-45,26}z7
+{-38,23} .. {-53,0}z8
+{-53,-1} .. {-38,-21}z9
+{-45,-25} .. {-6,-47}z10
+-- z11
+{1,72} .. {47,-1}z12
+{44,0} .. {0,-74}z13
+{0,-79} .. {-62,0}z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+{88,0} .. {0,-102}z22
+{0,-43} .. {-19,-32}z23
+{-24,-40} .. {-41,0}z24
+{-43,0} .. {-21,44}z25
+{-15,32} .. {0,49}z26
+-- z27
+{0,-69} .. {56,-41}z28
+{50,-36} .. {72,0}z29
+{71,0} .. {54,35}z30
+{60,41} .. {0,68}z31
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(90,670FX#,637FY#,95FY#);
+"Z";
+z1=(615FX,408FY);
+z2=(537FX,582FY);
+z3=(352FX,637FY);
+z4=(140FX,570FY);
+z5=(70FX,415FY);
+z6=(143FX,259FY);
+z7=(317FX,205FY);
+z8=(375FX,210FY);
+z9=(427FX,228FY);
+z10=(343FX,109FY);
+z11=(217FX,41FY);
+z12=(217FX,122FY);
+z13=(74FX,122FY);
+z14=(74FX,-95FY);
+z15=(217FX,-95FY);
+z16=(217FX,0FY);
+z17=(408FX,0FY);
+z18=(453FX,-58FY);
+z19=(453FX,-95FY);
+z20=(614FX,-95FY);
+z21=(614FX,-47FY);
+z22=(457FX,41FY);
+z23=(315FX,41FY);
+z24=(478FX,132FY);
+z25=(575FX,257FY);
+z26=(615FX,408FY);
+z27=(470FX,415FY);
+z28=(444FX,302FY);
+z29=(352FX,243FY);
+z30=(250FX,297FY);
+z31=(221FX,414FY);
+z32=(352FX,607FY);
+z33=(470FX,415FY);
+FuF (z1
+{-1,75} .. {-52,41}z2
+{-46,37} .. {-77,0}z3
+{-90,0} .. {-51,-45}z4
+{-47,-41} .. {0,-62}z5
+{0,-66} .. {49,-38}z6
+{47,-36} .. {70,0}z7
+{20,0} .. {19,3}z8
+{24,5} .. {11,7}z9
+{-13,-38} .. {-43,-41}z10
+{-47,-45} .. {-37,0}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{30,0} .. {0,-39}z18
+-- z19
+-- z20
+-- z21
+{0,59} .. {-105,0}z22
+-- z23
+{61,19} .. {47,42}z24
+{40,36} .. {24,48}z25
+{27,51} .. {0,50}z26
+);
+FuF (z27
+{0,-44} .. {-17,-31}z28
+{-21,-40} .. {-40,0}z29
+{-46,0} .. {-22,36}z30
+{-20,29} .. {0,48}z31
+{0,130} .. {87,-1}z32
+{78,0} .. {0,-128}z33
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(91,394FX#,750FY#,249FY#);
+"bracketleft";
+z1=(356FX,-250FY);
+z2=(356FX,-229FY);
+z3=(330FX,-229FY);
+z4=(283FX,-224FY);
+z5=(255FX,-189FY);
+z6=(253FX,-125FY);
+z7=(253FX,621FY);
+z8=(259FX,695FY);
+z9=(330FX,726FY);
+z10=(356FX,726FY);
+z11=(356FX,750FY);
+z12=(124FX,750FY);
+z13=(124FX,-250FY);
+FuF (z1
+-- z2
+-- z3
+{-22,0} .. {-9,4}z4
+{-14,6} .. {-5,17}z5
+{-2,6} .. {0,37}z6
+-- z7
+{0,39} .. {4,10}z8
+{9,20} .. {38,0}z9
+-- z10
+-- z11
+-- z12
+-- z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(92,542FX#,624FY#,0FY#);
+"quotedblleft";
+z1=(158FX,428FY);
+z2=(185FX,521FY);
+z3=(250FX,599FY);
+z4=(254FX,606FY);
+z5=(251FX,615FY);
+z6=(245FX,621FY);
+z7=(236FX,624FY);
+z8=(229FX,623FY);
+z9=(153FX,533FY);
+z10=(126FX,421FY);
+z11=(148FX,344FY);
+z12=(210FX,310FY);
+z13=(261FX,330FY);
+z14=(280FX,380FY);
+z15=(272FX,414FY);
+z16=(248FX,440FY);
+z17=(210FX,450FY);
+z18=(158FX,428FY);
+z19=(384FX,428FY);
+z20=(411FX,521FY);
+z21=(476FX,599FY);
+z22=(480FX,607FY);
+z23=(478FX,615FY);
+z24=(471FX,621FY);
+z25=(462FX,624FY);
+z26=(455FX,623FY);
+z27=(401FX,568FY);
+z28=(364FX,498FY);
+z29=(352FX,421FY);
+z30=(375FX,344FY);
+z31=(436FX,310FY);
+z32=(488FX,330FY);
+z33=(506FX,380FY);
+z34=(488FX,429FY);
+z35=(436FX,450FY);
+z36=(384FX,428FY);
+FuF (z1
+{2,34} .. {16,29}z2
+{16,29} .. {27,24}z3
+{3,2} .. {0,2}z4
+{0,3} .. {-2,3}z5
+-- z6
+{-3,2} .. {-4,0}z7
+{-3,0} .. {-1,-1}z8
+{-33,-24} .. {-18,-36}z9
+{-18,-35} .. {0,-39}z10
+{0,-29} .. {14,-23}z11
+{15,-23} .. {26,0}z12
+{22,0} .. {12,13}z13
+{13,14} .. {0,20}z14
+{0,12} .. {-5,11}z15
+{-5,11} .. {-11,6}z16
+{-11,7} .. {-15,0}z17
+{-22,0} .. {-13,-15}z18
+);
+FuF (z19
+{2,33} .. {16,29}z20
+{16,28} .. {27,24}z21
+{3,2} .. {0,3}z22
+{0,4} .. {-1,2}z23
+-- z24
+{-2,2} .. {-4,0}z25
+{-3,0} .. {-1,-1}z26
+{-20,-15} .. {-16,-22}z27
+{-16,-21} .. {-9,-25}z28
+{-8,-26} .. {0,-26}z29
+{0,-29} .. {15,-22}z30
+{15,-23} .. {25,0}z31
+{22,0} .. {13,13}z32
+{12,14} .. {0,19}z33
+{0,19} .. {-12,14}z34
+{-12,14} .. {-23,0}z35
+{-22,0} .. {-13,-15}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(93,394FX#,750FY#,249FY#);
+"bracketright";
+z1=(271FX,-250FY);
+z2=(271FX,750FY);
+z3=(39FX,750FY);
+z4=(39FX,727FY);
+z5=(65FX,727FY);
+z6=(140FX,686FY);
+z7=(142FX,623FY);
+z8=(142FX,-124FY);
+z9=(135FX,-197FY);
+z10=(65FX,-228FY);
+z11=(39FX,-228FY);
+z12=(39FX,-250FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{43,0} .. {7,-27}z6
+{1,-5} .. {0,-36}z7
+-- z8
+{0,-38} .. {-5,-10}z9
+{-9,-21} .. {-38,0}z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(94,448FX#,749FY#,249FY#);
+"braceleft";
+z1=(400FX,-250FY);
+z2=(400FX,-224FY);
+z3=(292FX,-116FY);
+z4=(306FX,-23FY);
+z5=(319FX,69FY);
+z6=(237FX,209FY);
+z7=(137FX,251FY);
+z8=(231FX,288FY);
+z9=(318FX,432FY);
+z10=(305FX,526FY);
+z11=(291FX,621FY);
+z12=(400FX,725FY);
+z13=(400FX,750FY);
+z14=(319FX,740FY);
+z15=(247FX,706FY);
+z16=(171FX,572FY);
+z17=(188FX,472FY);
+z18=(200FX,387FY);
+z19=(92FX,267FY);
+z20=(92FX,234FY);
+z21=(200FX,119FY);
+z22=(188FX,31FY);
+z23=(170FX,-74FY);
+z24=(196FX,-155FY);
+z25=(276FX,-226FY);
+z26=(380FX,-250FY);
+FuF (z1
+-- z2
+{-72,15} .. {0,58}z3
+{0,21} .. {9,41}z4
+{9,40} .. {-1,21}z5
+{-1,56} .. {-54,38}z6
+{-20,13} .. {-47,14}z7
+{43,12} .. {20,13}z8
+{58,38} .. {0,58}z9
+{0,21} .. {-9,42}z10
+{-10,42} .. {0,22}z11
+{1,56} .. {72,13}z12
+-- z13
+{-34,-1} .. {-20,-6}z14
+{-27,-7} .. {-21,-15}z15
+{-51,-37} .. {1,-52}z16
+{0,-23} .. {11,-43}z17
+{9,-33} .. {-1,-24}z18
+{0,-69} .. {-71,-12}z19
+-- z20
+{73,-13} .. {-1,-64}z21
+{0,-27} .. {-8,-32}z22
+{-12,-45} .. {0,-25}z23
+{1,-27} .. {17,-27}z24
+{18,-30} .. {35,-18}z25
+{33,-16} .. {36,0}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(95,448FX#,750FY#,249FY#);
+"braceright";
+z1=(359FX,233FY);
+z2=(359FX,267FY);
+z3=(250FX,381FY);
+z4=(263FX,470FY);
+z5=(280FX,574FY);
+z6=(254FX,656FY);
+z7=(175FX,726FY);
+z8=(70FX,751FY);
+z9=(51FX,750FY);
+z10=(51FX,724FY);
+z11=(158FX,616FY);
+z12=(144FX,523FY);
+z13=(130FX,431FY);
+z14=(213FX,292FY);
+z15=(313FX,249FY);
+z16=(219FX,213FY);
+z17=(132FX,68FY);
+z18=(145FX,-26FY);
+z19=(159FX,-120FY);
+z20=(51FX,-224FY);
+z21=(51FX,-250FY);
+z22=(132FX,-239FY);
+z23=(203FX,-206FY);
+z24=(279FX,-72FY);
+z25=(262FX,29FY);
+z26=(250FX,114FY);
+z27=(359FX,233FY);
+FuF (z1
+-- z2
+{-74,12} .. {1,64}z3
+{0,27} .. {9,33}z4
+{11,45} .. {0,24}z5
+{-1,27} .. {-17,28}z6
+{-18,29} .. {-34,18}z7
+{-35,17} .. {-35,-1}z8
+-- z9
+-- z10
+{72,-14} .. {0,-58}z11
+{-1,-21} .. {-9,-41}z12
+{-10,-41} .. {0,-20}z13
+{1,-56} .. {54,-37}z14
+{20,-14} .. {46,-15}z15
+{-44,-12} .. {-19,-12}z16
+{-58,-38} .. {0,-59}z17
+{0,-21} .. {8,-41}z18
+{9,-41} .. {0,-21}z19
+{0,-57} .. {-72,-13}z20
+-- z21
+{34,2} .. {20,6}z22
+{26,7} .. {21,15}z23
+{51,37} .. {0,53}z24
+{0,24} .. {-11,44}z25
+{-8,32} .. {0,24}z26
+{1,68} .. {72,11}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(96,226FX#,727FY#,0FY#);
+"buth";
+z1=(191FX,566FY);
+z2=(49FX,709FY);
+z3=(13FX,727FY);
+z4=(-16FX,712FY);
+z5=(-28FX,674FY);
+z6=(-23FX,650FY);
+z7=(-8FX,633FY);
+z8=(138FX,540FY);
+FuF (z1
+-- z2
+{-12,12} .. {-12,0}z3
+{-11,0} .. {-8,-10}z4
+{-8,-10} .. {0,-15}z5
+{1,-9} .. {3,-7}z6
+{3,-7} .. {7,-4}z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(97,759FX#,431FY#,12FY#);
+"a";
+z1=(744FX,0FY);
+z2=(744FX,18FY);
+z3=(708FX,29FY);
+z4=(698FX,67FY);
+z5=(698FX,431FY);
+z6=(522FX,431FY);
+z7=(522FX,414FY);
+z8=(569FX,373FY);
+z9=(569FX,105FY);
+z10=(487FX,47FY);
+z11=(444FX,120FY);
+z12=(444FX,431FY);
+z13=(266FX,431FY);
+z14=(266FX,414FY);
+z15=(315FX,373FY);
+z16=(315FX,105FY);
+z17=(234FX,48FY);
+z18=(191FX,120FY);
+z19=(191FX,431FY);
+z20=(16FX,431FY);
+z21=(16FX,414FY);
+z22=(62FX,373FY);
+z23=(62FX,146FY);
+z24=(181FX,-12FY);
+z25=(322FX,66FY);
+z26=(364FX,6FY);
+z27=(435FX,-12FY);
+z28=(511FX,6FY);
+z29=(569FX,58FY);
+z30=(569FX,0FY);
+FuF (z1
+-- z2
+{-18,0} .. {-6,7}z3
+{-7,7} .. {0,18}z4
+-- z5
+-- z6
+-- z7
+{31,0} .. {0,-28}z8
+-- z9
+{-28,-39} .. {-27,0}z10
+{-29,0} .. {0,49}z11
+-- z12
+-- z13
+-- z14
+{33,0} .. {0,-28}z15
+-- z16
+{-25,-38} .. {-29,0}z17
+{-29,0} .. {0,48}z18
+-- z19
+-- z20
+-- z21
+{31,0} .. {0,-28}z22
+-- z23
+{0,-105} .. {79,0}z24
+{60,0} .. {34,52}z25
+{6,-26} .. {22,-14}z26
+{20,-12} .. {28,0}z27
+{26,0} .. {25,12}z28
+{27,13} .. {11,22}z29
+-- z30
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(98,514FX#,443FY#,204FY#);
+"b";
+z1=(478FX,0FY);
+z2=(478FX,45FY);
+z3=(191FX,45FY);
+z4=(191FX,325FY);
+z5=(283FX,384FY);
+z6=(329FX,314FY);
+z7=(329FX,117FY);
+z8=(458FX,117FY);
+z9=(458FX,289FY);
+z10=(341FX,443FY);
+z11=(262FX,428FY);
+z12=(191FX,374FY);
+z13=(191FX,431FY);
+z14=(18FX,431FY);
+z15=(18FX,413FY);
+z16=(55FX,401FY);
+z17=(62FX,364FY);
+z18=(62FX,-143FY);
+z19=(53FX,-179FY);
+z20=(18FX,-188FY);
+z21=(18FX,-204FY);
+z22=(236FX,-204FY);
+z23=(236FX,-188FY);
+z24=(200FX,-179FY);
+z25=(191FX,-143FY);
+z26=(191FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{26,39} .. {35,0}z5
+{31,0} .. {0,-47}z6
+-- z7
+-- z8
+-- z9
+{0,103} .. {-78,0}z10
+{-27,0} .. {-26,-10}z11
+{-31,-13} .. {-16,-23}z12
+-- z13
+-- z14
+-- z15
+{18,0} .. {6,-8}z16
+{5,-6} .. {0,-18}z17
+-- z18
+{0,-18} .. {-6,-6}z19
+{-6,-6} .. {-17,0}z20
+-- z21
+-- z22
+-- z23
+{-18,0} .. {-6,6}z24
+{-6,5} .. {0,18}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(99,512FX#,443FY#,204FY#);
+"c";
+z1=(457FX,0FY);
+z2=(457FX,443FY);
+z3=(441FX,443FY);
+z4=(369FX,393FY);
+z5=(254FX,443FY);
+z6=(101FX,374FY);
+z7=(29FX,197FY);
+z8=(79FX,42FY);
+z9=(180FX,-4FY);
+z10=(277FX,15FY);
+z11=(327FX,51FY);
+z12=(327FX,-80FY);
+z13=(291FX,-140FY);
+z14=(215FX,-161FY);
+z15=(165FX,-133FY);
+z16=(167FX,-118FY);
+z17=(169FX,-103FY);
+z18=(98FX,-58FY);
+z19=(62FX,-75FY);
+z20=(48FX,-112FY);
+z21=(102FX,-181FY);
+z22=(215FX,-204FY);
+z23=(386FX,-148FY);
+z24=(457FX,0FY);
+z25=(327FX,100FY);
+z26=(290FX,69FY);
+z27=(241FX,56FY);
+z28=(182FX,90FY);
+z29=(164FX,205FY);
+z30=(204FX,369FY);
+z31=(263FX,399FY);
+z32=(327FX,333FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-27,34} .. {-50,0}z5
+{-57,0} .. {-45,-46}z6
+{-48,-49} .. {0,-69}z7
+{0,-67} .. {33,-37}z8
+{28,-30} .. {40,0}z9
+{35,0} .. {30,12}z10
+{24,11} .. {9,14}z11
+-- z12
+{0,-25} .. {-24,-15}z13
+{-22,-14} .. {-28,0}z14
+{-33,1} .. {0,18}z15
+{0,3} .. {1,7}z16
+{1,6} .. {0,3}z17
+{0,30} .. {-47,0}z18
+{-15,0} .. {-9,-11}z19
+{-10,-11} .. {0,-14}z20
+{0,-29} .. {36,-18}z21
+{32,-16} .. {44,1}z22
+{68,0} .. {45,38}z23
+{47,38} .. {0,60}z24
+);
+FuF (z25
+{-6,-12} .. {-19,-9}z26
+{-18,-8} .. {-15,0}z27
+{-28,0} .. {-12,23}z28
+{-12,22} .. {0,54}z29
+{0,77} .. {27,33}z30
+{17,20} .. {23,0}z31
+{43,0} .. {0,-44}z32
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(100,562FX#,443FY#,204FY#);
+"d";
+z1=(562FX,0FY);
+z2=(562FX,45FY);
+z3=(458FX,45FY);
+z4=(458FX,292FY);
+z5=(340FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,431FY);
+z8=(16FX,431FY);
+z9=(16FX,413FY);
+z10=(55FX,400FY);
+z11=(62FX,364FY);
+z12=(62FX,58FY);
+z13=(16FX,17FY);
+z14=(16FX,0FY);
+z15=(234FX,0FY);
+z16=(234FX,17FY);
+z17=(191FX,58FY);
+z18=(191FX,325FY);
+z19=(232FX,367FY);
+z20=(283FX,384FY);
+z21=(329FX,314FY);
+z22=(329FX,-152FY);
+z23=(286FX,-188FY);
+z24=(286FX,-204FY);
+z25=(504FX,-204FY);
+z26=(504FX,-188FY);
+z27=(458FX,-152FY);
+z28=(458FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,101} .. {-78,0}z5
+{-65,0} .. {-34,-46}z6
+-- z7
+-- z8
+-- z9
+{20,0} .. {6,-9}z10
+{5,-6} .. {0,-18}z11
+-- z12
+{0,-27} .. {-31,0}z13
+-- z14
+-- z15
+-- z16
+{-29,0} .. {0,27}z17
+-- z18
+{10,16} .. {18,12}z19
+{17,11} .. {17,0}z20
+{31,0} .. {0,-47}z21
+-- z22
+{0,-24} .. {-29,0}z23
+-- z24
+-- z25
+-- z26
+{-31,0} .. {0,24}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(101,519FX#,624FY#,12FY#);
+"e";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(467FX,28FY);
+z4=(458FX,67FY);
+z5=(458FX,306FY);
+z6=(329FX,306FY);
+z7=(329FX,106FY);
+z8=(233FX,47FY);
+z9=(191FX,113FY);
+z10=(191FX,386FY);
+z11=(485FX,386FY);
+z12=(485FX,431FY);
+z13=(191FX,431FY);
+z14=(191FX,558FY);
+z15=(200FX,597FY);
+z16=(235FX,607FY);
+z17=(235FX,624FY);
+z18=(17FX,624FY);
+z19=(17FX,607FY);
+z20=(52FX,596FY);
+z21=(62FX,558FY);
+z22=(62FX,124FY);
+z23=(92FX,27FY);
+z24=(177FX,-12FY);
+z25=(329FX,56FY);
+z26=(329FX,0FY);
+FuF (z1
+-- z2
+{-18,0} .. {-7,7}z3
+{-6,6} .. {0,20}z4
+-- z5
+-- z6
+-- z7
+{-26,-39} .. {-38,0}z8
+{-28,0} .. {0,44}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{0,19} .. {6,7}z15
+{6,7} .. {18,0}z16
+-- z17
+-- z18
+-- z19
+{17,0} .. {6,-8}z20
+{7,-7} .. {0,-18}z21
+-- z22
+{0,-40} .. {20,-25}z23
+{21,-27} .. {35,0}z24
+{63,0} .. {39,46}z25
+-- z26
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(102,671FX#,629FY#,203FY#);
+"f";
+z1=(658FX,207FY);
+z2=(588FX,376FY);
+z3=(403FX,440FY);
+z4=(403FX,629FY);
+z5=(277FX,629FY);
+z6=(121FX,600FY);
+z7=(65FX,519FY);
+z8=(112FX,431FY);
+z9=(277FX,401FY);
+z10=(277FX,41FY);
+z11=(189FX,85FY);
+z12=(152FX,225FY);
+z13=(152FX,237FY);
+z14=(155FX,268FY);
+z15=(30FX,272FY);
+z16=(20FX,217FY);
+z17=(90FX,55FY);
+z18=(277FX,-6FY);
+z19=(277FX,-139FY);
+z20=(263FX,-182FY);
+z21=(219FX,-190FY);
+z22=(219FX,-204FY);
+z23=(466FX,-203FY);
+z24=(466FX,-189FY);
+z25=(403FX,-137FY);
+z26=(403FX,-5FY);
+z27=(588FX,59FY);
+z28=(658FX,207FY);
+z29=(277FX,443FY);
+z30=(188FX,517FY);
+z31=(210FX,575FY);
+z32=(277FX,590FY);
+z33=(528FX,208FY);
+z34=(488FX,79FY);
+z35=(403FX,41FY);
+z36=(403FX,399FY);
+z37=(498FX,350FY);
+z38=(528FX,208FY);
+FuF (z1
+{0,70} .. {-47,43}z2
+{-46,43} .. {-77,0}z3
+-- z4
+-- z5
+{-66,0} .. {-38,-19}z6
+{-38,-19} .. {0,-35}z7
+{0,-41} .. {31,-18}z8
+{33,-20} .. {77,0}z9
+-- z10
+{-36,0} .. {-23,30}z11
+{-24,33} .. {0,61}z12
+-- z13
+{0,7} .. {2,13}z14
+-- z15
+{-7,-28} .. {0,-9}z16
+{0,-68} .. {46,-40}z17
+{47,-40} .. {78,0}z18
+-- z19
+{0,-22} .. {-9,-6}z20
+{-7,-5} .. {-22,0}z21
+-- z22
+-- z23
+-- z24
+{-42,0} .. {0,34}z25
+-- z26
+{75,1} .. {49,42}z27
+{47,41} .. {0,58}z28
+);
+FuF (z29
+{-59,0} .. {0,49}z30
+{0,28} .. {15,11}z31
+{13,10} .. {32,0}z32
+);
+FuF (z33
+{0,-56} .. {-26,-30}z34
+{-23,-26} .. {-34,0}z35
+-- z36
+{45,-4} .. {19,-28}z37
+{20,-29} .. {0,-66}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(103,563FX#,443FY#,204FY#);
+"g";
+z1=(563FX,0FY);
+z2=(563FX,45FY);
+z3=(457FX,45FY);
+z4=(457FX,443FY);
+z5=(441FX,443FY);
+z6=(369FX,393FY);
+z7=(257FX,443FY);
+z8=(100FX,377FY);
+z9=(28FX,197FY);
+z10=(71FX,52FY);
+z11=(193FX,-13FY);
+z12=(277FX,8FY);
+z13=(328FX,45FY);
+z14=(328FX,-141FY);
+z15=(263FX,-187FY);
+z16=(263FX,-204FY);
+z17=(513FX,-204FY);
+z18=(513FX,-187FY);
+z19=(471FX,-179FY);
+z20=(457FX,-137FY);
+z21=(457FX,0FY);
+z22=(328FX,87FY);
+z23=(291FX,60FY);
+z24=(245FX,46FY);
+z25=(181FX,97FY);
+z26=(163FX,205FY);
+z27=(203FX,366FY);
+z28=(264FX,399FY);
+z29=(328FX,296FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-27,34} .. {-48,0}z7
+{-59,0} .. {-46,-44}z8
+{-48,-48} .. {0,-72}z9
+{0,-57} .. {29,-40}z10
+{31,-44} .. {51,0}z11
+{27,0} .. {29,14}z12
+{22,12} .. {12,13}z13
+-- z14
+{0,-31} .. {-43,0}z15
+-- z16
+-- z17
+-- z18
+{-21,0} .. {-7,5}z19
+{-10,7} .. {0,21}z20
+-- z21
+);
+FuF (z22
+{-7,-9} .. {-18,-9}z23
+{-19,-9} .. {-12,0}z24
+{-27,0} .. {-15,34}z25
+{-12,29} .. {0,43}z26
+{0,73} .. {27,34}z27
+{17,22} .. {23,0}z28
+{43,0} .. {0,-69}z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(104,519FX#,624FY#,0FY#);
+"h";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(468FX,28FY);
+z4=(458FX,61FY);
+z5=(458FX,307FY);
+z6=(415FX,418FY);
+z7=(340FX,443FY);
+z8=(191FX,375FY);
+z9=(191FX,624FY);
+z10=(16FX,624FY);
+z11=(16FX,607FY);
+z12=(52FX,600FY);
+z13=(62FX,554FY);
+z14=(62FX,61FY);
+z15=(53FX,26FY);
+z16=(18FX,17FY);
+z17=(18FX,0FY);
+z18=(237FX,0FY);
+z19=(237FX,17FY);
+z20=(201FX,26FY);
+z21=(191FX,61FY);
+z22=(191FX,325FY);
+z23=(283FX,384FY);
+z24=(329FX,316FY);
+z25=(329FX,61FY);
+z26=(287FX,17FY);
+z27=(287FX,0FY);
+FuF (z1
+-- z2
+{-18,0} .. {-6,7}z3
+{-7,6} .. {0,16}z4
+-- z5
+{0,50} .. {-29,24}z6
+{-21,17} .. {-29,0}z7
+{-61,0} .. {-39,-45}z8
+-- z9
+-- z10
+-- z11
+{19,0} .. {5,-5}z12
+{7,-7} .. {0,-24}z13
+-- z14
+{0,-17} .. {-6,-6}z15
+{-7,-6} .. {-17,0}z16
+-- z17
+-- z18
+-- z19
+{-18,0} .. {-6,6}z20
+{-7,6} .. {0,17}z21
+-- z22
+{25,39} .. {36,0}z23
+{30,0} .. {0,-46}z24
+-- z25
+{0,-29} .. {-28,0}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(105,519FX#,624FY#,204FY#);
+"i";
+z1=(504FX,0FY);
+z2=(504FX,17FY);
+z3=(458FX,58FY);
+z4=(458FX,293FY);
+z5=(341FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,624FY);
+z8=(16FX,624FY);
+z9=(16FX,607FY);
+z10=(53FX,595FY);
+z11=(62FX,553FY);
+z12=(62FX,-143FY);
+z13=(50FX,-182FY);
+z14=(16FX,-188FY);
+z15=(16FX,-204FY);
+z16=(234FX,-204FY);
+z17=(234FX,-188FY);
+z18=(216FX,-187FY);
+z19=(191FX,-143FY);
+z20=(191FX,325FY);
+z21=(285FX,384FY);
+z22=(329FX,314FY);
+z23=(329FX,58FY);
+z24=(320FX,26FY);
+z25=(286FX,17FY);
+z26=(286FX,0FY);
+FuF (z1
+-- z2
+{-31,0} .. {0,27}z3
+-- z4
+{0,100} .. {-78,0}z5
+{-67,0} .. {-33,-46}z6
+-- z7
+-- z8
+-- z9
+{18,0} .. {7,-8}z10
+{6,-8} .. {0,-20}z11
+-- z12
+{0,-21} .. {-8,-5}z13
+{-6,-4} .. {-17,0}z14
+-- z15
+-- z16
+-- z17
+{-8,0} .. {-4,1}z18
+{-17,3} .. {0,26}z19
+-- z20
+{26,39} .. {37,0}z21
+{29,0} .. {0,-47}z22
+-- z23
+{0,-16} .. {-6,-6}z24
+{-7,-6} .. {-16,0}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(106,460FX#,446FY#,204FY#);
+"j";
+z1=(449FX,288FY);
+z2=(400FX,393FY);
+z3=(264FX,447FY);
+z4=(100FX,373FY);
+z5=(21FX,221FY);
+z6=(62FX,121FY);
+z7=(138FX,79FY);
+z8=(179FX,28FY);
+z9=(159FX,-4FY);
+z10=(66FX,-78FY);
+z11=(13FX,-157FY);
+z12=(31FX,-191FY);
+z13=(75FX,-204FY);
+z14=(420FX,-204FY);
+z15=(420FX,-159FY);
+z16=(221FX,-159FY);
+z17=(136FX,-105FY);
+z18=(167FX,-50FY);
+z19=(289FX,50FY);
+z20=(401FX,151FY);
+z21=(449FX,288FY);
+z22=(327FX,256FY);
+z23=(328FX,241FY);
+z24=(216FX,44FY);
+z25=(234FX,104FY);
+z26=(197FX,182FY);
+z27=(144FX,222FY);
+z28=(115FX,288FY);
+z29=(170FX,379FY);
+z30=(215FX,391FY);
+z31=(290FX,354FY);
+z32=(327FX,256FY);
+FuF (z1
+{0,38} .. {-33,32}z2
+{-36,36} .. {-54,0}z3
+{-56,-1} .. {-53,-49}z4
+{-53,-49} .. {0,-52}z5
+{0,-43} .. {28,-23}z6
+{6,-6} .. {44,-23}z7
+{27,-14} .. {0,-20}z8
+{0,-11} .. {-14,-10}z9
+-- z10
+{-35,-28} .. {0,-25}z11
+{0,-14} .. {12,-8}z12
+{12,-9} .. {18,0}z13
+-- z14
+-- z15
+-- z16
+{-57,0} .. {0,36}z17
+{0,20} .. {21,16}z18
+-- z19
+{59,49} .. {16,19}z20
+{32,40} .. {-1,51}z21
+);
+FuF (z22
+{1,-5} .. {0,-5}z23
+{0,-70} .. {-75,-61}z24
+{12,19} .. {0,20}z25
+{0,37} .. {-25,15}z26
+{-25,16} .. {-10,11}z27
+{-19,19} .. {0,25}z28
+{0,39} .. {36,22}z29
+{14,8} .. {16,0}z30
+{29,0} .. {22,-24}z31
+{22,-25} .. {2,-40}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(107,519FX#,624FY#,204FY#);
+"k";
+z1=(505FX,-204FY);
+z2=(505FX,-187FY);
+z3=(468FX,-176FY);
+z4=(458FX,-134FY);
+z5=(458FX,360FY);
+z6=(467FX,403FY);
+z7=(505FX,414FY);
+z8=(505FX,431FY);
+z9=(287FX,431FY);
+z10=(287FX,414FY);
+z11=(320FX,402FY);
+z12=(329FX,360FY);
+z13=(329FX,106FY);
+z14=(237FX,47FY);
+z15=(191FX,117FY);
+z16=(191FX,558FY);
+z17=(199FX,598FY);
+z18=(233FX,607FY);
+z19=(233FX,624FY);
+z20=(16FX,624FY);
+z21=(16FX,607FY);
+z22=(53FX,597FY);
+z23=(62FX,558FY);
+z24=(62FX,124FY);
+z25=(93FX,24FY);
+z26=(177FX,-12FY);
+z27=(329FX,57FY);
+z28=(329FX,-134FY);
+z29=(318FX,-176FY);
+z30=(278FX,-187FY);
+z31=(278FX,-204FY);
+FuF (z1
+-- z2
+{-18,0} .. {-7,7}z3
+{-6,7} .. {0,20}z4
+-- z5
+{0,21} .. {6,7}z6
+{6,7} .. {20,0}z7
+-- z8
+-- z9
+-- z10
+{16,0} .. {7,-8}z11
+{6,-8} .. {0,-20}z12
+-- z13
+{-26,-39} .. {-35,0}z14
+{-31,0} .. {0,47}z15
+-- z16
+{0,20} .. {5,7}z17
+{5,6} .. {17,0}z18
+-- z19
+-- z20
+-- z21
+{18,0} .. {7,-7}z22
+{6,-7} .. {0,-19}z23
+-- z24
+{0,-43} .. {20,-24}z25
+{21,-24} .. {35,0}z26
+{59,0} .. {43,46}z27
+-- z28
+{0,-20} .. {-7,-8}z29
+{-7,-7} .. {-20,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(108,296FX#,431FY#,204FY#);
+"l";
+z1=(297FX,-204FY);
+z2=(297FX,-159FY);
+z3=(228FX,-159FY);
+z4=(191FX,-111FY);
+z5=(191FX,355FY);
+z6=(199FX,400FY);
+z7=(238FX,414FY);
+z8=(238FX,431FY);
+z9=(15FX,431FY);
+z10=(15FX,414FY);
+z11=(51FX,402FY);
+z12=(62FX,355FY);
+z13=(62FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-24,0} .. {0,32}z4
+-- z5
+{0,22} .. {5,8}z6
+{6,9} .. {20,0}z7
+-- z8
+-- z9
+-- z10
+{17,0} .. {7,-8}z11
+{8,-9} .. {0,-22}z12
+-- z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(109,544FX#,637FY#,12FY#);
+"m";
+z1=(546FX,558FY);
+z2=(515FX,614FY);
+z3=(431FX,637FY);
+z4=(325FX,606FY);
+z5=(280FX,512FY);
+z6=(304FX,431FY);
+z7=(329FX,338FY);
+z8=(329FX,108FY);
+z9=(293FX,68FY);
+z10=(236FX,47FY);
+z11=(191FX,117FY);
+z12=(191FX,431FY);
+z13=(16FX,431FY);
+z14=(16FX,414FY);
+z15=(53FX,403FY);
+z16=(62FX,360FY);
+z17=(62FX,124FY);
+z18=(92FX,27FY);
+z19=(177FX,-12FY);
+z20=(329FX,57FY);
+z21=(329FX,0FY);
+z22=(504FX,0FY);
+z23=(504FX,18FY);
+z24=(469FX,26FY);
+z25=(458FX,62FY);
+z26=(458FX,336FY);
+z27=(427FX,416FY);
+z28=(369FX,471FY);
+z29=(338FX,529FY);
+z30=(355FX,576FY);
+z31=(397FX,594FY);
+z32=(434FX,554FY);
+z33=(460FX,507FY);
+z34=(494FX,499FY);
+z35=(531FX,515FY);
+z36=(546FX,558FY);
+FuF (z1
+{-1,23} .. {-20,14}z2
+{-21,16} .. {-35,0}z3
+{-43,0} .. {-28,-21}z4
+{-30,-23} .. {0,-39}z5
+{0,-24} .. {16,-30}z6
+{17,-30} .. {0,-32}z7
+-- z8
+{-7,-15} .. {-17,-12}z9
+{-19,-14} .. {-19,0}z10
+{-30,0} .. {0,47}z11
+-- z12
+-- z13
+-- z14
+{19,0} .. {5,-7}z15
+{6,-8} .. {0,-21}z16
+-- z17
+{0,-40} .. {20,-25}z18
+{21,-26} .. {35,0}z19
+{66,0} .. {35,46}z20
+-- z21
+-- z22
+-- z23
+{-17,0} .. {-7,5}z24
+{-7,7} .. {0,17}z25
+-- z26
+{0,29} .. {-20,24}z27
+{-19,18} .. {-19,18}z28
+{-20,20} .. {0,18}z29
+{0,20} .. {11,11}z30
+{12,12} .. {16,0}z31
+{17,0} .. {8,-27}z32
+{8,-24} .. {10,-8}z33
+{7,-5} .. {16,0}z34
+{15,0} .. {9,11}z35
+{10,11} .. {0,18}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(110,519FX#,635FY#,12FY#);
+"n";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(472FX,23FY);
+z4=(458FX,67FY);
+z5=(458FX,431FY);
+z6=(277FX,431FY);
+z7=(278FX,414FY);
+z8=(321FX,399FY);
+z9=(329FX,355FY);
+z10=(329FX,106FY);
+z11=(233FX,47FY);
+z12=(192FX,116FY);
+z13=(192FX,409FY);
+z14=(227FX,469FY);
+z15=(227FX,474FY);
+z16=(227FX,481FY);
+z17=(136FX,545FY);
+z18=(210FX,590FY);
+z19=(313FX,590FY);
+z20=(313FX,636FY);
+z21=(191FX,636FY);
+z22=(70FX,610FY);
+z23=(30FX,543FY);
+z24=(100FX,465FY);
+z25=(68FX,417FY);
+z26=(62FX,356FY);
+z27=(62FX,128FY);
+z28=(177FX,-12FY);
+z29=(329FX,57FY);
+z30=(329FX,0FY);
+FuF (z1
+-- z2
+{-15,0} .. {-6,3}z3
+{-10,5} .. {0,24}z4
+-- z5
+-- z6
+-- z7
+{22,0} .. {7,-10}z8
+{5,-7} .. {0,-22}z9
+-- z10
+{-26,-39} .. {-38,0}z11
+{-28,0} .. {0,46}z12
+-- z13
+{0,39} .. {24,1}z14
+{0,1} .. {0,2}z15
+{0,3} .. {0,2}z16
+{-61,1} .. {0,41}z17
+{0,30} .. {50,0}z18
+-- z19
+-- z20
+-- z21
+{-53,0} .. {-28,-17}z22
+{-27,-17} .. {0,-28}z23
+{0,-42} .. {46,-11}z24
+{-17,-16} .. {-5,-17}z25
+{-4,-12} .. {0,-28}z26
+-- z27
+{0,-93} .. {76,0}z28
+{59,0} .. {43,46}z29
+-- z30
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(111,519FX#,443FY#,0FY#);
+"o";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(471FX,25FY);
+z4=(458FX,62FY);
+z5=(458FX,293FY);
+z6=(343FX,443FY);
+z7=(191FX,374FY);
+z8=(191FX,431FY);
+z9=(16FX,431FY);
+z10=(16FX,414FY);
+z11=(52FX,404FY);
+z12=(62FX,364FY);
+z13=(62FX,62FY);
+z14=(52FX,26FY);
+z15=(16FX,17FY);
+z16=(16FX,0FY);
+z17=(234FX,0FY);
+z18=(234FX,17FY);
+z19=(203FX,24FY);
+z20=(191FX,62FY);
+z21=(191FX,325FY);
+z22=(228FX,365FY);
+z23=(285FX,384FY);
+z24=(329FX,309FY);
+z25=(329FX,62FY);
+z26=(320FX,26FY);
+z27=(286FX,17FY);
+z28=(286FX,0FY);
+FuF (z1
+-- z2
+{-16,0} .. {-6,5}z3
+{-9,6} .. {0,18}z4
+-- z5
+{0,100} .. {-77,0}z6
+{-64,0} .. {-37,-46}z7
+-- z8
+-- z9
+-- z10
+{18,0} .. {6,-7}z11
+{7,-8} .. {0,-19}z12
+-- z13
+{0,-18} .. {-7,-6}z14
+{-6,-6} .. {-18,0}z15
+-- z16
+-- z17
+-- z18
+{-15,0} .. {-6,5}z19
+{-8,6} .. {0,19}z20
+-- z21
+{8,14} .. {17,12}z22
+{20,14} .. {18,-1}z23
+{29,-1} .. {0,-49}z24
+-- z25
+{0,-17} .. {-6,-7}z26
+{-6,-6} .. {-17,0}z27
+-- z28
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(112,759FX#,431FY#,204FY#);
+"p";
+z1=(738FX,-204FY);
+z2=(738FX,-188FY);
+z3=(698FX,-147FY);
+z4=(698FX,431FY);
+z5=(520FX,431FY);
+z6=(520FX,414FY);
+z7=(558FX,402FY);
+z8=(569FX,360FY);
+z9=(569FX,105FY);
+z10=(486FX,47FY);
+z11=(444FX,124FY);
+z12=(444FX,431FY);
+z13=(266FX,431FY);
+z14=(266FX,414FY);
+z15=(303FX,406FY);
+z16=(315FX,360FY);
+z17=(315FX,105FY);
+z18=(234FX,48FY);
+z19=(191FX,124FY);
+z20=(191FX,431FY);
+z21=(16FX,431FY);
+z22=(16FX,414FY);
+z23=(54FX,402FY);
+z24=(62FX,360FY);
+z25=(62FX,128FY);
+z26=(181FX,-12FY);
+z27=(322FX,66FY);
+z28=(435FX,-12FY);
+z29=(514FX,7FY);
+z30=(569FX,58FY);
+z31=(569FX,-147FY);
+z32=(557FX,-181FY);
+z33=(520FX,-188FY);
+z34=(520FX,-204FY);
+FuF (z1
+-- z2
+{-27,0} .. {0,27}z3
+-- z4
+-- z5
+-- z6
+{19,0} .. {7,-8}z7
+{7,-8} .. {0,-20}z8
+-- z9
+{-28,-39} .. {-28,0}z10
+{-28,0} .. {0,51}z11
+-- z12
+-- z13
+-- z14
+{19,0} .. {6,-5}z15
+{8,-8} .. {0,-23}z16
+-- z17
+{-27,-38} .. {-27,0}z18
+{-29,0} .. {0,51}z19
+-- z20
+-- z21
+-- z22
+{19,0} .. {6,-8}z23
+{6,-7} .. {0,-21}z24
+-- z25
+{0,-94} .. {79,0}z26
+{61,0} .. {33,52}z27
+{14,-52} .. {62,0}z28
+{26,0} .. {27,13}z29
+{28,14} .. {9,20}z30
+-- z31
+{0,-17} .. {-8,-6}z32
+{-6,-5} .. {-19,0}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(113,559FX#,440FY#,204FY#);
+"q";
+z1=(512FX,214FY);
+z2=(459FX,387FY);
+z3=(337FX,440FY);
+z4=(217FX,380FY);
+z5=(217FX,431FY);
+z6=(37FX,431FY);
+z7=(37FX,413FY);
+z8=(78FX,397FY);
+z9=(88FX,338FY);
+z10=(88FX,-60FY);
+z11=(0FX,-60FY);
+z12=(0FX,-106FY);
+z13=(88FX,-106FY);
+z14=(88FX,-139FY);
+z15=(79FX,-178FY);
+z16=(37FX,-188FY);
+z17=(37FX,-204FY);
+z18=(282FX,-204FY);
+z19=(282FX,-188FY);
+z20=(234FX,-181FY);
+z21=(217FX,-138FY);
+z22=(217FX,-105FY);
+z23=(511FX,-105FY);
+z24=(511FX,-60FY);
+z25=(216FX,-60FY);
+z26=(216FX,61FY);
+z27=(333FX,5FY);
+z28=(473FX,81FY);
+z29=(512FX,214FY);
+z30=(376FX,204FY);
+z31=(302FX,57FY);
+z32=(217FX,113FY);
+z33=(217FX,326FY);
+z34=(295FX,385FY);
+z35=(376FX,204FY);
+FuF (z1
+{0,75} .. {-35,41}z2
+{-32,36} .. {-50,-1}z3
+{-57,0} .. {-23,-40}z4
+-- z5
+-- z6
+-- z7
+{21,-1} .. {7,-10}z8
+{7,-9} .. {0,-30}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{0,-19} .. {-6,-7}z15
+{-7,-7} .. {-21,0}z16
+-- z17
+-- z18
+-- z19
+{-23,0} .. {-9,4}z20
+{-11,7} .. {0,22}z21
+-- z22
+-- z23
+-- z24
+-- z25
+-- z26
+{34,-38} .. {44,0}z27
+{61,0} .. {32,51}z28
+{26,40} .. {0,49}z29
+);
+FuF (z30
+{0,-98} .. {-50,0}z31
+{-30,0} .. {-27,37}z32
+-- z33
+{16,40} .. {36,-1}z34
+{54,-1} .. {0,-120}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(114,519FX#,443FY#,204FY#);
+"r";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(458FX,58FY);
+z4=(458FX,289FY);
+z5=(344FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,431FY);
+z8=(16FX,431FY);
+z9=(16FX,413FY);
+z10=(53FX,401FY);
+z11=(62FX,360FY);
+z12=(62FX,-134FY);
+z13=(54FX,-177FY);
+z14=(16FX,-187FY);
+z15=(16FX,-204FY);
+z16=(234FX,-204FY);
+z17=(234FX,-187FY);
+z18=(198FX,-173FY);
+z19=(191FX,-134FY);
+z20=(191FX,325FY);
+z21=(284FX,384FY);
+z22=(329FX,314FY);
+z23=(329FX,58FY);
+z24=(286FX,17FY);
+z25=(286FX,0FY);
+FuF (z1
+-- z2
+{-31,0} .. {0,27}z3
+-- z4
+{0,103} .. {-76,0}z5
+{-68,0} .. {-34,-46}z6
+-- z7
+-- z8
+-- z9
+{18,0} .. {6,-8}z10
+{6,-7} .. {0,-20}z11
+-- z12
+{0,-22} .. {-5,-7}z13
+{-6,-7} .. {-19,0}z14
+-- z15
+-- z16
+-- z17
+{-18,0} .. {-5,9}z18
+{-5,7} .. {0,19}z19
+-- z20
+{26,39} .. {36,0}z21
+{30,0} .. {0,-47}z22
+-- z23
+{0,-27} .. {-29,0}z24
+-- z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(115,519FX#,431FY#,12FY#);
+"s";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(468FX,27FY);
+z4=(458FX,62FY);
+z5=(458FX,431FY);
+z6=(279FX,431FY);
+z7=(279FX,414FY);
+z8=(329FX,369FY);
+z9=(329FX,106FY);
+z10=(234FX,47FY);
+z11=(191FX,122FY);
+z12=(191FX,431FY);
+z13=(16FX,431FY);
+z14=(16FX,414FY);
+z15=(52FX,405FY);
+z16=(62FX,369FY);
+z17=(62FX,133FY);
+z18=(94FX,23FY);
+z19=(176FX,-12FY);
+z20=(329FX,56FY);
+z21=(329FX,0FY);
+FuF (z1
+-- z2
+{-18,0} .. {-6,6}z3
+{-7,7} .. {0,17}z4
+-- z5
+-- z6
+-- z7
+{33,0} .. {0,-30}z8
+-- z9
+{-26,-39} .. {-37,0}z10
+{-28,0} .. {0,50}z11
+-- z12
+-- z13
+-- z14
+{17,0} .. {7,-6}z15
+{7,-7} .. {0,-17}z16
+-- z17
+{0,-48} .. {21,-25}z18
+{21,-24} .. {34,0}z19
+{67,0} .. {35,46}z20
+-- z21
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(116,759FX#,443FY#,204FY#);
+"t";
+z1=(744FX,0FY);
+z2=(744FX,18FY);
+z3=(716FX,23FY);
+z4=(698FX,81FY);
+z5=(698FX,309FY);
+z6=(577FX,443FY);
+z7=(444FX,374FY);
+z8=(444FX,431FY);
+z9=(266FX,431FY);
+z10=(266FX,414FY);
+z11=(306FX,402FY);
+z12=(315FX,357FY);
+z13=(315FX,107FY);
+z14=(287FX,73FY);
+z15=(237FX,48FY);
+z16=(191FX,114FY);
+z17=(191FX,431FY);
+z18=(16FX,431FY);
+z19=(16FX,414FY);
+z20=(54FX,402FY);
+z21=(62FX,359FY);
+z22=(62FX,135FY);
+z23=(181FX,-12FY);
+z24=(316FX,58FY);
+z25=(316FX,-142FY);
+z26=(302FX,-184FY);
+z27=(258FX,-191FY);
+z28=(258FX,-204FY);
+z29=(508FX,-204FY);
+z30=(508FX,-190FY);
+z31=(444FX,-142FY);
+z32=(444FX,323FY);
+z33=(472FX,358FY);
+z34=(521FX,383FY);
+z35=(559FX,369FY);
+z36=(569FX,317FY);
+z37=(569FX,0FY);
+FuF (z1
+-- z2
+{-13,0} .. {-6,3}z3
+{-12,6} .. {0,32}z4
+-- z5
+{0,90} .. {-80,0}z6
+{-47,0} .. {-41,-46}z7
+-- z8
+-- z9
+-- z10
+{20,0} .. {6,-8}z11
+{6,-7} .. {0,-23}z12
+-- z13
+{-1,-7} .. {-18,-15}z14
+{-19,-17} .. {-14,0}z15
+{-31,0} .. {0,44}z16
+-- z17
+-- z18
+-- z19
+{19,0} .. {6,-8}z20
+{6,-7} .. {0,-22}z21
+-- z22
+{0,-98} .. {79,0}z23
+{52,0} .. {38,47}z24
+-- z25
+{0,-22} .. {-9,-6}z26
+{-7,-5} .. {-22,0}z27
+-- z28
+-- z29
+-- z30
+{-43,1} .. {0,31}z31
+-- z32
+{2,9} .. {17,15}z33
+{18,16} .. {14,0}z34
+{18,0} .. {7,-9}z35
+{6,-10} .. {0,-25}z36
+-- z37
+);
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(117,822FX#,443FY#,0FY#);
+"u";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(471FX,25FY);
+z4=(458FX,62FY);
+z5=(458FX,293FY);
+z6=(343FX,443FY);
+z7=(191FX,374FY);
+z8=(191FX,431FY);
+z9=(16FX,431FY);
+z10=(16FX,414FY);
+z11=(52FX,404FY);
+z12=(62FX,364FY);
+z13=(62FX,62FY);
+z14=(52FX,26FY);
+z15=(16FX,17FY);
+z16=(16FX,0FY);
+z17=(234FX,0FY);
+z18=(234FX,17FY);
+z19=(203FX,24FY);
+z20=(191FX,62FY);
+z21=(191FX,325FY);
+z22=(228FX,365FY);
+z23=(285FX,384FY);
+z24=(329FX,309FY);
+z25=(329FX,62FY);
+z26=(320FX,26FY);
+z27=(286FX,17FY);
+z28=(286FX,0FY);
+z29=(816FX,0FY);
+z30=(816FX,45FY);
+z31=(739FX,45FY);
+z32=(711FX,72FY);
+z33=(711FX,431FY);
+z34=(532FX,431FY);
+z35=(532FX,414FY);
+z36=(582FX,374FY);
+z37=(582FX,0FY);
+FuF (z1
+-- z2
+{-16,0} .. {-6,5}z3
+{-9,6} .. {0,18}z4
+-- z5
+{0,100} .. {-77,0}z6
+{-64,0} .. {-37,-46}z7
+-- z8
+-- z9
+-- z10
+{18,0} .. {6,-7}z11
+{7,-8} .. {0,-19}z12
+-- z13
+{0,-18} .. {-7,-6}z14
+{-6,-6} .. {-18,0}z15
+-- z16
+-- z17
+-- z18
+{-15,0} .. {-6,5}z19
+{-8,6} .. {0,19}z20
+-- z21
+{8,14} .. {17,12}z22
+{20,14} .. {18,-1}z23
+{29,-1} .. {0,-49}z24
+-- z25
+{0,-17} .. {-6,-7}z26
+{-6,-6} .. {-17,0}z27
+-- z28
+);
+FuF (z29
+-- z30
+-- z31
+{-19,0} .. {0,18}z32
+-- z33
+-- z34
+-- z35
+{33,0} .. {0,-27}z36
+-- z37
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(118,563FX#,624FY#,204FY#);
+"v";
+z1=(563FX,-204FY);
+z2=(563FX,-159FY);
+z3=(500FX,-159FY);
+z4=(465FX,-149FY);
+z5=(458FX,-117FY);
+z6=(458FX,553FY);
+z7=(468FX,599FY);
+z8=(504FX,607FY);
+z9=(504FX,624FY);
+z10=(286FX,624FY);
+z11=(286FX,607FY);
+z12=(304FX,607FY);
+z13=(329FX,553FY);
+z14=(329FX,106FY);
+z15=(236FX,48FY);
+z16=(191FX,117FY);
+z17=(191FX,431FY);
+z18=(16FX,431FY);
+z19=(16FX,414FY);
+z20=(51FX,406FY);
+z21=(62FX,360FY);
+z22=(62FX,124FY);
+z23=(92FX,26FY);
+z24=(177FX,-12FY);
+z25=(329FX,56FY);
+z26=(329FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-18,0} .. {-5,7}z4
+{-5,6} .. {0,16}z5
+-- z6
+{0,24} .. {6,7}z7
+{6,6} .. {18,0}z8
+-- z9
+-- z10
+-- z11
+{8,0} .. {4,0}z12
+{17,-3} .. {0,-33}z13
+-- z14
+{-26,-39} .. {-36,0}z15
+{-30,0} .. {0,46}z16
+-- z17
+-- z18
+-- z19
+{17,0} .. {6,-5}z20
+{7,-7} .. {0,-23}z21
+-- z22
+{0,-40} .. {20,-25}z23
+{21,-26} .. {36,0}z24
+{60,0} .. {42,46}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(119,302FX#,431FY#,0FY#);
+"w";
+z1=(296FX,0FY);
+z2=(296FX,45FY);
+z3=(219FX,45FY);
+z4=(191FX,72FY);
+z5=(191FX,431FY);
+z6=(12FX,431FY);
+z7=(12FX,414FY);
+z8=(62FX,374FY);
+z9=(62FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-19,0} .. {0,18}z4
+-- z5
+-- z6
+-- z7
+{33,0} .. {0,-27}z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(120,779FX#,624FY#,204FY#);
+"x";
+z1=(759FX,414FY);
+z2=(759FX,431FY);
+z3=(537FX,431FY);
+z4=(537FX,414FY);
+z5=(563FX,411FY);
+z6=(583FX,360FY);
+z7=(583FX,105FY);
+z8=(501FX,47FY);
+z9=(459FX,66FY);
+z10=(444FX,115FY);
+z11=(453FX,315FY);
+z12=(333FX,445FY);
+z13=(191FX,374FY);
+z14=(191FX,549FY);
+z15=(198FX,591FY);
+z16=(238FX,607FY);
+z17=(238FX,624FY);
+z18=(16FX,624FY);
+z19=(16FX,607FY);
+z20=(54FX,592FY);
+z21=(62FX,549FY);
+z22=(62FX,-142FY);
+z23=(56FX,-177FY);
+z24=(15FX,-191FY);
+z25=(15FX,-204FY);
+z26=(240FX,-204FY);
+z27=(240FX,-191FY);
+z28=(201FX,-181FY);
+z29=(191FX,-142FY);
+z30=(191FX,328FY);
+z31=(274FX,380FY);
+z32=(315FX,368FY);
+z33=(325FX,315FY);
+z34=(316FX,110FY);
+z35=(351FX,21FY);
+z36=(441FX,-12FY);
+z37=(583FX,58FY);
+z38=(583FX,0FY);
+z39=(758FX,0FY);
+z40=(758FX,18FY);
+z41=(712FX,62FY);
+z42=(712FX,360FY);
+z43=(723FX,406FY);
+z44=(759FX,414FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{12,0} .. {6,-2}z5
+{13,-4} .. {0,-30}z6
+-- z7
+{-31,-39} .. {-23,0}z8
+{-17,0} .. {-11,13}z9
+{-11,12} .. {0,20}z10
+-- z11
+{3,87} .. {-83,0}z12
+{-50,0} .. {-45,-48}z13
+-- z14
+{0,20} .. {5,8}z15
+{7,10} .. {20,0}z16
+-- z17
+-- z18
+-- z19
+{19,0} .. {6,-10}z20
+{6,-8} .. {0,-20}z21
+-- z22
+{0,-17} .. {-4,-7}z23
+{-5,-9} .. {-22,0}z24
+-- z25
+-- z26
+-- z27
+{-19,0} .. {-7,6}z28
+{-6,7} .. {0,19}z29
+-- z30
+{30,35} .. {26,0}z31
+{20,0} .. {7,-8}z32
+{7,-9} .. {-1,-26}z33
+-- z34
+{-2,-36} .. {25,-23}z35
+{24,-23} .. {36,1}z36
+{51,0} .. {44,46}z37
+-- z38
+-- z39
+-- z40
+{-31,0} .. {0,29}z41
+-- z42
+{0,23} .. {8,7}z43
+{6,5} .. {18,0}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(121,314FX#,431FY#,203FY#);
+"y";
+z1=(228FX,-15FY);
+z2=(228FX,431FY);
+z3=(49FX,431FY);
+z4=(49FX,413FY);
+z5=(100FX,359FY);
+z6=(100FX,70FY);
+z7=(125FX,-52FY);
+z8=(149FX,-106FY);
+z9=(135FX,-146FY);
+z10=(93FX,-163FY);
+z11=(58FX,-116FY);
+z12=(48FX,-87FY);
+z13=(21FX,-75FY);
+z14=(-13FX,-90FY);
+z15=(-26FX,-124FY);
+z16=(1FX,-181FY);
+z17=(84FX,-204FY);
+z18=(203FX,-155FY);
+z19=(228FX,-15FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{34,0} .. {0,-36}z5
+-- z6
+{0,-65} .. {17,-16}z7
+{16,-15} .. {0,-21}z8
+{0,-16} .. {-10,-11}z9
+{-10,-11} .. {-18,0}z10
+{-23,0} .. {0,31}z11
+{0,11} .. {-7,8}z12
+{-8,8} .. {-10,0}z13
+{-13,0} .. {-10,-10}z14
+{-9,-11} .. {0,-12}z15
+{0,-23} .. {18,-15}z16
+{20,-15} .. {35,0}z17
+{58,0} .. {21,32}z18
+{17,26} .. {0,67}z19
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(122,559FX#,443FY#,204FY#);
+"z";
+z1=(562FX,-204FY);
+z2=(562FX,-159FY);
+z3=(502FX,-159FY);
+z4=(467FX,-149FY);
+z5=(457FX,-115FY);
+z6=(457FX,443FY);
+z7=(441FX,443FY);
+z8=(369FX,393FY);
+z9=(255FX,443FY);
+z10=(91FX,376FY);
+z11=(29FX,197FY);
+z12=(78FX,41FY);
+z13=(208FX,-18FY);
+z14=(328FX,45FY);
+z15=(328FX,-204FY);
+z16=(328FX,87FY);
+z17=(257FX,41FY);
+z18=(186FX,80FY);
+z19=(164FX,205FY);
+z20=(206FX,375FY);
+z21=(263FX,404FY);
+z22=(306FX,386FY);
+z23=(328FX,333FY);
+FuF (z1
+-- z2
+-- z3
+{-17,0} .. {-6,7}z4
+{-6,6} .. {0,16}z5
+-- z6
+-- z7
+-- z8
+{-26,34} .. {-50,0}z9
+{-68,0} .. {-41,-45}z10
+{-41,-46} .. {0,-74}z11
+{0,-65} .. {32,-39}z12
+{32,-39} .. {54,0}z13
+{43,0} .. {37,42}z14
+-- z15
+);
+FuF (z16
+{-28,-31} .. {-19,0}z17
+{-33,0} .. {-14,26}z18
+{-14,25} .. {0,58}z19
+{0,81} .. {28,33}z20
+{16,19} .. {22,0}z21
+{16,0} .. {12,-12}z22
+{15,-13} .. {0,-22}z23
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(123,449FX#,266FY#,0FY#);
+"hyphen";
+z1=(-9FX,188FY);
+z2=(459FX,188FY);
+z3=(459FX,266FY);
+z4=(-9FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,128FX#,691FY#,0FY#);
+"shesht";
+z1=(129FX,632FY);
+z2=(131FX,661FY);
+z3=(88FX,692FY);
+z4=(71FX,689FY);
+z5=(42FX,663FY);
+z6=(-66FX,475FY);
+z7=(-30FX,458FY);
+z8=(116FX,609FY);
+z9=(129FX,632FY);
+FuF (z1
+{4,9} .. {-3,10}z2
+{-5,21} .. {-23,0}z3
+-- z4
+{-13,-6} .. {-7,-11}z5
+-- z6
+-- z7
+-- z8
+{7,7} .. {2,8}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(125,999FX#,266FY#,0FY#);
+"emdash";
+z1=(0FX,188FY);
+z2=(1000FX,188FY);
+z3=(1000FX,266FY);
+z4=(0FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,314FX#,638FY#,12FY#);
+"exclam";
+z1=(234FX,561FY);
+z2=(212FX,617FY);
+z3=(157FX,639FY);
+z4=(101FX,617FY);
+z5=(81FX,560FY);
+z6=(102FX,431FY);
+z7=(126FX,330FY);
+z8=(147FX,203FY);
+z9=(168FX,203FY);
+z10=(187FX,330FY);
+z11=(211FX,431FY);
+z12=(234FX,561FY);
+z13=(233FX,62FY);
+z14=(211FX,115FY);
+z15=(158FX,137FY);
+z16=(105FX,115FY);
+z17=(83FX,62FY);
+z18=(105FX,9FY);
+z19=(158FX,-12FY);
+z20=(210FX,10FY);
+z21=(233FX,62FY);
+FuF (z1
+{0,23} .. {-15,15}z2
+{-15,15} .. {-22,0}z3
+{-24,-1} .. {-14,-14}z4
+{-14,-14} .. {0,-24}z5
+{0,-26} .. {14,-60}z6
+-- z7
+{14,-59} .. {0,-26}z8
+-- z9
+{6,59} .. {7,26}z10
+-- z11
+{15,63} .. {0,24}z12
+);
+FuF (z13
+{0,21} .. {-14,15}z14
+{-15,15} .. {-21,0}z15
+{-21,0} .. {-14,-15}z16
+{-15,-14} .. {0,-21}z17
+{1,-21} .. {14,-15}z18
+{15,-14} .. {21,0}z19
+{20,0} .. {14,15}z20
+{15,14} .. {0,20}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(3,659FX#,637FY#,15FY#);
+"Dz";
+z1=(607FX,77FY);
+z2=(584FX,97FY);
+z3=(512FX,53FY);
+z4=(460FX,68FY);
+z5=(412FX,110FY);
+z6=(498FX,184FY);
+z7=(607FX,402FY);
+z8=(531FX,581FY);
+z9=(341FX,637FY);
+z10=(132FX,571FY);
+z11=(61FX,424FY);
+z12=(64FX,392FY);
+z13=(214FX,392FY);
+z14=(211FX,438FY);
+z15=(240FX,555FY);
+z16=(342FX,607FY);
+z17=(442FX,530FY);
+z18=(466FX,396FY);
+z19=(432FX,233FY);
+z20=(365FX,147FY);
+z21=(273FX,198FY);
+z22=(197FX,208FY);
+z23=(105FX,175FY);
+z24=(63FX,89FY);
+z25=(98FX,13FY);
+z26=(178FX,-15FY);
+z27=(263FX,2FY);
+z28=(309FX,29FY);
+z29=(386FX,-8FY);
+z30=(456FX,-12FY);
+z31=(607FX,77FY);
+z32=(267FX,58FY);
+z33=(225FX,32FY);
+z34=(180FX,24FY);
+z35=(118FX,74FY);
+z36=(169FX,107FY);
+z37=(267FX,58FY);
+FuF (z1
+-- z2
+{-22,-30} .. {-26,0}z3
+{-17,0} .. {-18,10}z4
+{-17,9} .. {-15,19}z5
+{31,20} .. {27,29}z6
+{72,77} .. {0,69}z7
+{0,78} .. {-51,41}z8
+{-46,38} .. {-81,0}z9
+{-88,0} .. {-51,-44}z10
+{-47,-40} .. {0,-57}z11
+{0,-12} .. {2,-10}z12
+-- z13
+{-2,17} .. {0,14}z14
+{0,48} .. {19,30}z15
+{23,35} .. {45,-1}z16
+{45,0} .. {22,-51}z17
+{16,-38} .. {0,-52}z18
+{0,-60} .. {-23,-48}z19
+{-19,-37} .. {-26,-20}z20
+{-32,25} .. {-29,9}z21
+{-22,7} .. {-29,0}z22
+{-35,-1} .. {-26,-22}z23
+{-28,-23} .. {0,-34}z24
+{0,-31} .. {23,-20}z25
+{22,-19} .. {31,0}z26
+{33,0} .. {23,11}z27
+{10,5} .. {21,13}z28
+{27,-20} .. {24,-5}z29
+{15,-3} .. {32,1}z30
+{65,0} .. {35,59}z31
+);
+FuF (z32
+{-18,-13} .. {-10,-4}z33
+{-13,-5} .. {-17,0}z34
+{-42,1} .. {1,33}z35
+{0,23} .. {34,-1}z36
+{31,0} .. {34,-32}z37
+);
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(4,692FX#,637FY#,66FY#);
+"Gh";
+z1=(705FX,-67FY);
+z2=(705FX,-35FY);
+z3=(663FX,19FY);
+z4=(598FX,35FY);
+z5=(519FX,35FY);
+z6=(519FX,366FY);
+z7=(462FX,561FY);
+z8=(277FX,637FY);
+z9=(95FX,560FY);
+z10=(37FX,366FY);
+z11=(37FX,315FY);
+z12=(180FX,315FY);
+z13=(180FX,402FY);
+z14=(192FX,530FY);
+z15=(278FX,606FY);
+z16=(360FX,552FY);
+z17=(376FX,405FY);
+z18=(376FX,0FY);
+z19=(490FX,0FY);
+z20=(543FX,-44FY);
+z21=(543FX,-67FY);
+FuF (z1
+-- z2
+{0,22} .. {-28,14}z3
+{-22,11} .. {-22,0}z4
+-- z5
+-- z6
+{0,84} .. {-38,46}z7
+{-42,51} .. {-82,0}z8
+{-79,0} .. {-43,-51}z9
+{-39,-48} .. {0,-81}z10
+-- z11
+-- z12
+-- z13
+{0,58} .. {8,28}z14
+{14,50} .. {43,0}z15
+{41,0} .. {14,-36}z16
+{11,-28} .. {0,-70}z17
+-- z18
+-- z19
+{35,0} .. {0,-29}z20
+-- z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(5,622FX#,633FY#,0FY#);
+"Chmute";
+z1=(565FX,0FY);
+z2=(565FX,118FY);
+z3=(384FX,438FY);
+z4=(260FX,503FY);
+z5=(350FX,575FY);
+z6=(376FX,551FY);
+z7=(376FX,525FY);
+z8=(541FX,525FY);
+z9=(541FX,560FY);
+z10=(497FX,618FY);
+z11=(421FX,634FY);
+z12=(215FX,522FY);
+z13=(173FX,537FY);
+z14=(126FX,549FY);
+z15=(106FX,515FY);
+z16=(149FX,503FY);
+z17=(192FX,490FY);
+z18=(90FX,313FY);
+z19=(57FX,111FY);
+z20=(57FX,0FY);
+z21=(421FX,40FY);
+z22=(200FX,40FY);
+z23=(200FX,159FY);
+z24=(203FX,289FY);
+z25=(242FX,470FY);
+z26=(421FX,166FY);
+FuF (z1
+-- z2
+{0,126} .. {-121,88}z3
+{-42,30} .. {-41,14}z4
+{40,48} .. {21,0}z5
+{18,0} .. {0,-16}z6
+-- z7
+-- z8
+-- z9
+{0,25} .. {-29,13}z10
+{-22,11} .. {-28,0}z11
+{-65,0} .. {-72,-74}z12
+{-10,5} .. {-18,5}z13
+{-21,5} .. {-10,3}z14
+-- z15
+{10,-3} .. {19,-5}z16
+{19,-5} .. {10,-4}z17
+{-44,-46} .. {-24,-72}z18
+{-22,-66} .. {0,-69}z19
+-- z20
+);
+FuF (z21
+-- z22
+-- z23
+{0,48} .. {2,38}z24
+{4,88} .. {22,33}z25
+{120,-61} .. {0,-142}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(6,561FX#,624FY#,65FY#);
+"Esimple";
+z1=(541FX,315FY);
+z2=(541FX,356FY);
+z3=(492FX,414FY);
+z4=(406FX,431FY);
+z5=(250FX,431FY);
+z6=(250FX,523FY);
+z7=(267FX,590FY);
+z8=(336FX,607FY);
+z9=(336FX,624FY);
+z10=(22FX,624FY);
+z11=(22FX,607FY);
+z12=(90FX,590FY);
+z13=(106FX,523FY);
+z14=(106FX,104FY);
+z15=(88FX,36FY);
+z16=(22FX,18FY);
+z17=(22FX,0FY);
+z18=(278FX,0FY);
+z19=(331FX,-43FY);
+z20=(331FX,-66FY);
+z21=(491FX,-66FY);
+z22=(491FX,-34FY);
+z23=(356FX,41FY);
+z24=(250FX,41FY);
+z25=(250FX,390FY);
+z26=(327FX,390FY);
+z27=(380FX,346FY);
+z28=(380FX,315FY);
+FuF (z1
+-- z2
+{0,24} .. {-32,14}z3
+{-26,11} .. {-31,0}z4
+-- z5
+-- z6
+{0,34} .. {11,11}z7
+{11,11} .. {35,0}z8
+-- z9
+-- z10
+-- z11
+{35,-1} .. {10,-11}z12
+{11,-10} .. {0,-34}z13
+-- z14
+{0,-33} .. {-12,-12}z15
+{-12,-12} .. {-32,0}z16
+-- z17
+-- z18
+{35,0} .. {0,-29}z19
+-- z20
+-- z21
+-- z22
+{0,50} .. {-90,0}z23
+-- z24
+-- z25
+-- z26
+{35,0} .. {0,-29}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(7,643FX#,637FY#,65FY#);
+"Article";
+z1=(607FX,-66FY);
+z2=(607FX,-34FY);
+z3=(557FX,26FY);
+z4=(473FX,40FY);
+z5=(301FX,40FY);
+z6=(252FX,51FY);
+z7=(241FX,100FY);
+z8=(241FX,407FY);
+z9=(260FX,557FY);
+z10=(339FX,606FY);
+z11=(406FX,583FY);
+z12=(432FX,516FY);
+z13=(438FX,409FY);
+z14=(438FX,315FY);
+z15=(581FX,315FY);
+z16=(581FX,366FY);
+z17=(524FX,561FY);
+z18=(339FX,637FY);
+z19=(98FX,366FY);
+z20=(98FX,102FY);
+z21=(80FX,32FY);
+z22=(13FX,18FY);
+z23=(13FX,0FY);
+z24=(394FX,0FY);
+z25=(447FX,-43FY);
+z26=(447FX,-66FY);
+FuF (z1
+-- z2
+{0,27} .. {-34,13}z3
+{-23,9} .. {-32,0}z4
+-- z5
+{-25,0} .. {-8,8}z6
+{-7,8} .. {0,25}z7
+-- z8
+{0,71} .. {12,29}z9
+{15,33} .. {38,0}z10
+{30,-1} .. {15,-15}z11
+{13,-14} .. {4,-31}z12
+{4,-22} .. {0,-50}z13
+-- z14
+-- z15
+-- z16
+{0,84} .. {-38,46}z17
+{-41,51} .. {-82,0}z18
+{-160,0} .. {0,-181}z19
+-- z20
+{0,-36} .. {-12,-11}z21
+{-11,-9} .. {-34,0}z22
+-- z23
+-- z24
+{36,0} .. {0,-29}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(8,892FX#,633FY#,0FY#);
+"Th";
+z1=(926FX,208FY);
+z2=(926FX,239FY);
+z3=(864FX,300FY);
+z4=(770FX,315FY);
+z5=(689FX,315FY);
+z6=(689FX,368FY);
+z7=(661FX,481FY);
+z8=(393FX,634FY);
+z9=(125FX,478FY);
+z10=(98FX,366FY);
+z11=(98FX,102FY);
+z12=(82FX,33FY);
+z13=(13FX,18FY);
+z14=(13FX,0FY);
+z15=(327FX,0FY);
+z16=(327FX,18FY);
+z17=(258FX,32FY);
+z18=(241FX,100FY);
+z19=(241FX,371FY);
+z20=(394FX,602FY);
+z21=(510FX,546FY);
+z22=(545FX,372FY);
+z23=(545FX,315FY);
+z24=(467FX,315FY);
+z25=(359FX,273FY);
+z26=(310FX,164FY);
+z27=(370FX,42FY);
+z28=(502FX,0FY);
+z29=(632FX,45FY);
+z30=(689FX,168FY);
+z31=(689FX,274FY);
+z32=(716FX,274FY);
+z33=(765FX,230FY);
+z34=(765FX,208FY);
+z35=(545FX,163FY);
+z36=(542FX,87FY);
+z37=(502FX,33FY);
+z38=(455FX,161FY);
+z39=(509FX,274FY);
+z40=(545FX,274FY);
+FuF (z1
+-- z2
+{0,27} .. {-41,14}z3
+{-30,10} .. {-32,0}z4
+-- z5
+-- z6
+{0,38} .. {-18,37}z7
+{-51,102} .. {-128,0}z8
+{-128,0} .. {-50,-104}z9
+{-18,-37} .. {0,-37}z10
+-- z11
+{0,-36} .. {-11,-11}z12
+{-10,-10} .. {-36,0}z13
+-- z14
+-- z15
+-- z16
+{-36,0} .. {-10,9}z17
+{-11,10} .. {0,36}z18
+-- z19
+{0,154} .. {102,0}z20
+{53,0} .. {24,-37}z21
+{23,-37} .. {0,-79}z22
+-- z23
+-- z24
+{-41,0} .. {-31,-28}z25
+{-32,-29} .. {0,-43}z26
+{0,-50} .. {40,-31}z27
+{36,-28} .. {52,0}z28
+{51,0} .. {36,30}z29
+{38,32} .. {0,50}z30
+-- z31
+-- z32
+{33,0} .. {0,-29}z33
+-- z34
+);
+FuF (z35
+{0,-37} .. {-2,-14}z36
+{-6,-36} .. {-21,0}z37
+{-32,1} .. {1,85}z38
+{0,76} .. {36,0}z39
+-- z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(9,751FX#,624FY#,13FY#);
+"Zh";
+z1=(767FX,315FY);
+z2=(767FX,354FY);
+z3=(716FX,409FY);
+z4=(584FX,431FY);
+z5=(537FX,431FY);
+z6=(537FX,535FY);
+z7=(554FX,595FY);
+z8=(617FX,607FY);
+z9=(617FX,624FY);
+z10=(302FX,624FY);
+z11=(302FX,607FY);
+z12=(373FX,596FY);
+z13=(394FX,532FY);
+z14=(394FX,431FY);
+z15=(316FX,431FY);
+z16=(123FX,372FY);
+z17=(43FX,207FY);
+z18=(119FX,41FY);
+z19=(298FX,-13FY);
+z20=(537FX,244FY);
+z21=(537FX,390FY);
+z22=(558FX,390FY);
+z23=(605FX,344FY);
+z24=(605FX,315FY);
+z25=(394FX,198FY);
+z26=(298FX,19FY);
+z27=(211FX,87FY);
+z28=(193FX,205FY);
+z29=(233FX,356FY);
+z30=(346FX,390FY);
+z31=(394FX,390FY);
+FuF (z1
+-- z2
+{0,22} .. {-34,14}z3
+{-34,15} .. {-54,0}z4
+-- z5
+-- z6
+{0,31} .. {11,9}z7
+{9,8} .. {33,0}z8
+-- z9
+-- z10
+-- z11
+{37,-1} .. {11,-6}z12
+{14,-9} .. {0,-34}z13
+-- z14
+-- z15
+{-79,0} .. {-50,-39}z16
+{-53,-41} .. {0,-69}z17
+{0,-71} .. {51,-39}z18
+{46,-36} .. {73,0}z19
+{160,0} .. {0,172}z20
+-- z21
+-- z22
+{31,0} .. {0,-31}z23
+-- z24
+);
+FuF (z25
+{0,-119} .. {-64,0}z26
+{-40,0} .. {-18,46}z27
+{-12,31} .. {1,47}z28
+{0,74} .. {27,27}z29
+{23,22} .. {52,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(10,660FX#,648FY#,11FY#);
+"Sh";
+z1=(600FX,203FY);
+z2=(596FX,234FY);
+z3=(447FX,234FY);
+z4=(449FX,188FY);
+z5=(421FX,71FY);
+z6=(318FX,19FY);
+z7=(219FX,96FY);
+z8=(195FX,230FY);
+z9=(268FX,441FY);
+z10=(316FX,481FY);
+z11=(443FX,420FY);
+z12=(588FX,490FY);
+z13=(569FX,515FY);
+z14=(525FX,501FY);
+z15=(479FX,517FY);
+z16=(424FX,557FY);
+z17=(344FX,619FY);
+z18=(229FX,649FY);
+z19=(158FX,629FY);
+z20=(94FX,577FY);
+z21=(120FX,553FY);
+z22=(146FX,569FY);
+z23=(174FX,575FY);
+z24=(222FX,556FY);
+z25=(255FX,529FY);
+z26=(280FX,506FY);
+z27=(124FX,399FY);
+z28=(54FX,224FY);
+z29=(129FX,46FY);
+z30=(319FX,-12FY);
+z31=(529FX,55FY);
+z32=(600FX,203FY);
+FuF (z1
+{0,9} .. {-3,11}z2
+-- z3
+{2,-17} .. {0,-14}z4
+{0,-48} .. {-19,-30}z5
+{-23,-35} .. {-46,0}z6
+{-45,0} .. {-21,51}z7
+{-16,38} .. {0,51}z8
+{0,91} .. {49,49}z9
+{10,11} .. {21,16}z10
+{44,-41} .. {40,0}z11
+{60,1} .. {36,46}z12
+-- z13
+{-15,-10} .. {-14,0}z14
+{-13,0} .. {-17,10}z15
+{-10,6} .. {-27,21}z16
+{-42,34} .. {-11,8}z17
+{-32,20} .. {-45,0}z18
+{-21,0} .. {-27,-13}z19
+{-26,-14} .. {-17,-21}z20
+-- z21
+{8,6} .. {9,5}z22
+{10,4} .. {9,0}z23
+{18,-1} .. {14,-12}z24
+{15,-12} .. {7,-6}z25
+{11,-10} .. {5,-5}z26
+{-58,-14} .. {-46,-58}z27
+{-47,-57} .. {0,-60}z28
+{0,-78} .. {50,-41}z29
+{47,-38} .. {80,0}z30
+{89,0} .. {51,44}z31
+{47,41} .. {0,58}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(11,635FX#,637FY#,22FY#);
+"Ch";
+z1=(589FX,402FY);
+z2=(514FX,581FY);
+z3=(325FX,637FY);
+z4=(136FX,587FY);
+z5=(44FX,424FY);
+z6=(47FX,392FY);
+z7=(197FX,392FY);
+z8=(194FX,438FY);
+z9=(223FX,555FY);
+z10=(326FX,607FY);
+z11=(425FX,530FY);
+z12=(449FX,396FY);
+z13=(376FX,185FY);
+z14=(327FX,145FY);
+z15=(201FX,205FY);
+z16=(56FX,136FY);
+z17=(75FX,111FY);
+z18=(118FX,125FY);
+z19=(165FX,110FY);
+z20=(220FX,69FY);
+z21=(300FX,8FY);
+z22=(415FX,-23FY);
+z23=(484FX,-3FY);
+z24=(550FX,49FY);
+z25=(524FX,74FY);
+z26=(469FX,52FY);
+z27=(421FX,70FY);
+z28=(389FX,97FY);
+z29=(363FX,121FY);
+z30=(520FX,227FY);
+z31=(589FX,402FY);
+FuF (z1
+{0,78} .. {-50,41}z2
+{-46,38} .. {-80,0}z3
+{-74,0} .. {-52,-33}z4
+{-61,-39} .. {0,-69}z5
+{0,-12} .. {2,-10}z6
+-- z7
+{-2,17} .. {0,14}z8
+{0,48} .. {19,30}z9
+{23,35} .. {46,-1}z10
+{44,0} .. {22,-51}z11
+{16,-38} .. {0,-51}z12
+{0,-92} .. {-48,-48}z13
+{-10,-10} .. {-23,-17}z14
+{-45,41} .. {-39,-1}z15
+{-61,0} .. {-36,-46}z16
+-- z17
+{16,10} .. {13,-1}z18
+{14,0} .. {17,-10}z19
+{10,-6} .. {27,-21}z20
+{42,-33} .. {12,-7}z21
+{31,-20} .. {45,0}z22
+{21,0} .. {25,13}z23
+{27,14} .. {17,21}z24
+-- z25
+{-18,-16} .. {-18,1}z26
+{-18,0} .. {-15,12}z27
+{-12,10} .. {-9,7}z28
+{-10,9} .. {-7,7}z29
+{58,13} .. {46,58}z30
+{46,57} .. {0,60}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(12,806FX#,637FY#,0FY#);
+"Rhard";
+z1=(810FX,136FY);
+z2=(810FX,168FY);
+z3=(623FX,241FY);
+z4=(581FX,241FY);
+z5=(581FX,373FY);
+z6=(523FX,564FY);
+z7=(339FX,637FY);
+z8=(152FX,568FY);
+z9=(98FX,373FY);
+z10=(98FX,104FY);
+z11=(82FX,34FY);
+z12=(13FX,18FY);
+z13=(13FX,0FY);
+z14=(322FX,0FY);
+z15=(322FX,18FY);
+z16=(255FX,35FY);
+z17=(241FX,104FY);
+z18=(241FX,408FY);
+z19=(261FX,546FY);
+z20=(339FX,606FY);
+z21=(438FX,408FY);
+z22=(438FX,104FY);
+z23=(424FX,36FY);
+z24=(359FX,18FY);
+z25=(359FX,0FY);
+z26=(669FX,0FY);
+z27=(669FX,18FY);
+z28=(595FX,35FY);
+z29=(581FX,104FY);
+z30=(581FX,200FY);
+z31=(599FX,200FY);
+z32=(648FX,158FY);
+z33=(648FX,136FY);
+FuF (z1
+-- z2
+{0,49} .. {-124,0}z3
+-- z4
+-- z5
+{0,81} .. {-39,46}z6
+{-42,49} .. {-81,0}z7
+{-86,0} .. {-39,-46}z8
+{-36,-43} .. {0,-87}z9
+-- z10
+{0,-36} .. {-11,-11}z11
+{-10,-11} .. {-36,0}z12
+-- z13
+-- z14
+-- z15
+{-35,0} .. {-10,11}z16
+{-9,10} .. {0,36}z17
+-- z18
+{0,61} .. {13,31}z19
+{16,40} .. {36,0}z20
+{66,-1} .. {0,-131}z21
+-- z22
+{0,-34} .. {-9,-11}z23
+{-11,-12} .. {-33,0}z24
+-- z25
+-- z26
+-- z27
+{-39,1} .. {-10,11}z28
+{-9,10} .. {0,36}z29
+-- z30
+-- z31
+{32,0} .. {0,-28}z32
+-- z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(13,711FX#,624FY#,10FY#);
+"Ts";
+z1=(719FX,449FY);
+z2=(719FX,485FY);
+z3=(676FX,539FY);
+z4=(572FX,566FY);
+z5=(311FX,515FY);
+z6=(191FX,598FY);
+z7=(191FX,624FY);
+z8=(30FX,624FY);
+z9=(30FX,589FY);
+z10=(129FX,508FY);
+z11=(271FX,490FY);
+z12=(132FX,394FY);
+z13=(76FX,237FY);
+z14=(154FX,57FY);
+z15=(340FX,-11FY);
+z16=(543FX,70FY);
+z17=(613FX,240FY);
+z18=(540FX,420FY);
+z19=(361FX,502FY);
+z20=(482FX,528FY);
+z21=(549FX,510FY);
+z22=(558FX,475FY);
+z23=(558FX,449FY);
+z24=(460FX,244FY);
+z25=(436FX,73FY);
+z26=(338FX,14FY);
+z27=(246FX,76FY);
+z28=(227FX,242FY);
+z29=(321FX,481FY);
+z30=(460FX,244FY);
+FuF (z1
+-- z2
+{0,20} .. {-29,16}z3
+{-31,18} .. {-39,0}z4
+{-88,0} .. {-87,-34}z5
+{-80,1} .. {0,55}z6
+-- z7
+-- z8
+-- z9
+{0,-36} .. {66,-18}z10
+{45,-11} .. {50,0}z11
+{-58,-21} .. {-35,-42}z12
+{-38,-46} .. {0,-58}z13
+{0,-73} .. {52,-47}z14
+{50,-45} .. {74,0}z15
+{84,1} .. {52,53}z16
+{47,48} .. {0,65}z17
+{0,74} .. {-49,46}z18
+{-44,42} .. {-76,13}z19
+{45,18} .. {36,-1}z20
+{34,0} .. {11,-12}z21
+{6,-7} .. {0,-17}z22
+-- z23
+);
+FuF (z24
+{0,-80} .. {-16,-34}z25
+{-19,-40} .. {-47,0}z26
+{-44,1} .. {-17,41}z27
+{-13,33} .. {0,78}z28
+{0,130} .. {63,30}z29
+{93,-22} .. {0,-136}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(14,791FX#,624FY#,0FY#);
+"Ph";
+z1=(760FX,315FY);
+z2=(665FX,471FY);
+z3=(475FX,509FY);
+z4=(475FX,523FY);
+z5=(492FX,589FY);
+z6=(558FX,607FY);
+z7=(558FX,624FY);
+z8=(249FX,624FY);
+z9=(249FX,607FY);
+z10=(316FX,589FY);
+z11=(332FX,523FY);
+z12=(332FX,509FY);
+z13=(139FX,470FY);
+z14=(38FX,315FY);
+z15=(137FX,157FY);
+z16=(332FX,115FY);
+z17=(332FX,102FY);
+z18=(315FX,34FY);
+z19=(247FX,18FY);
+z20=(247FX,0FY);
+z21=(560FX,0FY);
+z22=(560FX,18FY);
+z23=(488FX,35FY);
+z24=(475FX,102FY);
+z25=(475FX,115FY);
+z26=(665FX,157FY);
+z27=(760FX,315FY);
+z28=(607FX,315FY);
+z29=(577FX,198FY);
+z30=(475FX,140FY);
+z31=(475FX,481FY);
+z32=(579FX,431FY);
+z33=(607FX,315FY);
+z34=(332FX,140FY);
+z35=(233FX,197FY);
+z36=(200FX,315FY);
+z37=(230FX,429FY);
+z38=(332FX,481FY);
+FuF (z1
+{0,70} .. {-64,34}z2
+{-49,26} .. {-78,0}z3
+-- z4
+{0,33} .. {11,11}z5
+{11,12} .. {33,0}z6
+-- z7
+-- z8
+-- z9
+{34,-1} .. {11,-12}z10
+{11,-11} .. {0,-33}z11
+-- z12
+{-77,0} .. {-52,-26}z13
+{-68,-34} .. {0,-69}z14
+{0,-71} .. {66,-34}z15
+{53,-28} .. {78,0}z16
+-- z17
+{0,-35} .. {-12,-11}z18
+{-11,-11} .. {-35,0}z19
+-- z20
+-- z21
+-- z22
+{-38,1} .. {-9,11}z23
+{-9,10} .. {0,35}z24
+-- z25
+{77,0} .. {50,28}z26
+{64,35} .. {0,70}z27
+);
+FuF (z28
+{0,-46} .. {-20,-32}z29
+{-25,-39} .. {-44,0}z30
+-- z31
+{47,0} .. {23,-33}z32
+{19,-29} .. {-1,-49}z33
+);
+FuF (z34
+{-41,1} .. {-25,37}z35
+{-22,33} .. {0,45}z36
+{0,47} .. {20,29}z37
+{24,35} .. {44,0}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(15,765FX#,632FY#,15FY#);
+"Osimple";
+z1=(718FX,309FY);
+z2=(626FX,546FY);
+z3=(387FX,633FY);
+z4=(147FX,549FY);
+z5=(56FX,314FY);
+z6=(146FX,74FY);
+z7=(388FX,-15FY);
+z8=(625FX,75FY);
+z9=(718FX,309FY);
+z10=(552FX,310FY);
+z11=(388FX,21FY);
+z12=(222FX,309FY);
+z13=(389FX,604FY);
+z14=(552FX,310FY);
+FuF (z1
+{0,99} .. {-61,59}z2
+{-60,58} .. {-100,0}z3
+{-100,0} .. {-60,-56}z4
+{-61,-57} .. {0,-100}z5
+{0,-101} .. {60,-59}z6
+{60,-59} .. {101,0}z7
+{96,0} .. {62,60}z8
+{62,61} .. {0,95}z9
+);
+FuF (z10
+{0,-193} .. {-109,0}z11
+{-111,0} .. {0,192}z12
+{0,196} .. {112,0}z13
+{108,0} .. {0,-196}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(19,503FX#,647FY#,12FY#);
+"dz";
+z1=(502FX,0FY);
+z2=(502FX,18FY);
+z3=(455FX,73FY);
+z4=(426FX,303FY);
+z5=(263FX,420FY);
+z6=(320FX,460FY);
+z7=(367FX,521FY);
+z8=(323FX,561FY);
+z9=(229FX,579FY);
+z10=(192FX,602FY);
+z11=(215FX,632FY);
+z12=(190FX,648FY);
+z13=(120FX,598FY);
+z14=(93FX,546FY);
+z15=(126FX,502FY);
+z16=(225FX,484FY);
+z17=(247FX,463FY);
+z18=(229FX,439FY);
+z19=(42FX,128FY);
+z20=(91FX,12FY);
+z21=(164FX,-12FY);
+z22=(327FX,56FY);
+z23=(327FX,0FY);
+z24=(327FX,106FY);
+z25=(285FX,66FY);
+z26=(231FX,47FY);
+z27=(171FX,141FY);
+z28=(189FX,334FY);
+z29=(233FX,403FY);
+z30=(296FX,346FY);
+z31=(327FX,235FY);
+FuF (z1
+-- z2
+{-31,0} .. {0,37}z3
+{0,123} .. {-19,30}z4
+{-43,71} .. {-65,7}z5
+-- z6
+{31,22} .. {0,19}z7
+{0,21} .. {-29,5}z8
+-- z9
+{-25,4} .. {0,11}z10
+{0,10} .. {15,10}z11
+-- z12
+-- z13
+{-18,-13} .. {0,-22}z14
+{0,-25} .. {22,-5}z15
+-- z16
+{15,-3} .. {0,-11}z17
+{0,-9} .. {-12,-7}z18
+{-124,-72} .. {0,-136}z19
+{0,-53} .. {33,-24}z20
+{21,-16} .. {27,0}z21
+{72,0} .. {37,46}z22
+-- z23
+);
+FuF (z24
+{-7,-14} .. {-21,-12}z25
+{-20,-13} .. {-16,0}z26
+{-40,0} .. {0,63}z27
+{0,90} .. {12,39}z28
+{8,26} .. {22,20}z29
+{24,-10} .. {18,-29}z30
+{21,-33} .. {0,-41}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(20,562FX#,443FY#,204FY#);
+"gh";
+z1=(563FX,-204FY);
+z2=(563FX,-159FY);
+z3=(458FX,-159FY);
+z4=(458FX,297FY);
+z5=(339FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,431FY);
+z8=(16FX,431FY);
+z9=(16FX,413FY);
+z10=(48FX,406FY);
+z11=(62FX,364FY);
+z12=(62FX,58FY);
+z13=(50FX,23FY);
+z14=(16FX,17FY);
+z15=(16FX,0FY);
+z16=(234FX,0FY);
+z17=(234FX,17FY);
+z18=(191FX,58FY);
+z19=(191FX,325FY);
+z20=(285FX,384FY);
+z21=(329FX,314FY);
+z22=(329FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,98} .. {-79,0}z5
+{-64,0} .. {-35,-46}z6
+-- z7
+-- z8
+-- z9
+{15,0} .. {6,-5}z10
+{10,-7} .. {0,-21}z11
+-- z12
+{0,-18} .. {-8,-6}z13
+{-6,-4} .. {-17,0}z14
+-- z15
+-- z16
+-- z17
+{-29,0} .. {0,27}z18
+-- z19
+{26,39} .. {37,0}z20
+{29,0} .. {0,-47}z21
+-- z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(21,516FX#,640FY#,15FY#);
+"chmute";
+z1=(517FX,0FY);
+z2=(517FX,19FY);
+z3=(474FX,41FY);
+z4=(470FX,94FY);
+z5=(430FX,310FY);
+z6=(335FX,393FY);
+z7=(211FX,426FY);
+z8=(267FX,552FY);
+z9=(349FX,607FY);
+z10=(367FX,589FY);
+z11=(362FX,564FY);
+z12=(356FX,545FY);
+z13=(356FX,535FY);
+z14=(371FX,502FY);
+z15=(410FX,490FY);
+z16=(459FX,548FY);
+z17=(427FX,618FY);
+z18=(367FX,641FY);
+z19=(226FX,579FY);
+z20=(118FX,430FY);
+z21=(24FX,431FY);
+z22=(24FX,386FY);
+z23=(101FX,385FY);
+z24=(47FX,126FY);
+z25=(82FX,24FY);
+z26=(172FX,-15FY);
+z27=(268FX,5FY);
+z28=(342FX,56FY);
+z29=(342FX,0FY);
+z30=(341FX,105FY);
+z31=(233FX,44FY);
+z32=(176FX,146FY);
+z33=(201FX,381FY);
+z34=(314FX,319FY);
+z35=(341FX,105FY);
+FuF (z1
+-- z2
+{-24,0} .. {-5,14}z3
+{-2,7} .. {0,29}z4
+{0,102} .. {-27,42}z5
+{-22,35} .. {-42,21}z6
+{-38,19} .. {-45,3}z7
+{13,50} .. {25,34}z8
+{26,37} .. {28,0}z9
+{12,0} .. {0,-12}z10
+{0,-7} .. {-3,-10}z11
+{-1,-6} .. {-2,-6}z12
+{0,-3} .. {0,-3}z13
+{0,-14} .. {10,-8}z14
+{11,-8} .. {15,0}z15
+{33,1} .. {0,38}z16
+{-1,29} .. {-21,18}z17
+{-18,15} .. {-22,0}z18
+{-47,0} .. {-47,-41}z19
+{-46,-40} .. {-26,-60}z20
+-- z21
+-- z22
+-- z23
+{-36,-93} .. {0,-80}z24
+{0,-41} .. {23,-27}z25
+{24,-26} .. {36,0}z26
+{31,0} .. {33,14}z27
+{32,13} .. {17,21}z28
+-- z29
+);
+FuF (z30
+{-40,-41} .. {-32,0}z31
+{-38,0} .. {0,68}z32
+{0,64} .. {17,92}z33
+{59,-7} .. {16,-34}z34
+{18,-38} .. {0,-105}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(22,424FX#,624FY#,86FY#);
+"esimple";
+z1=(423FX,386FY);
+z2=(423FX,431FY);
+z3=(191FX,431FY);
+z4=(191FX,530FY);
+z5=(201FX,592FY);
+z6=(234FX,607FY);
+z7=(234FX,624FY);
+z8=(16FX,624FY);
+z9=(16FX,607FY);
+z10=(59FX,584FY);
+z11=(62FX,530FY);
+z12=(62FX,0FY);
+z13=(241FX,0FY);
+z14=(278FX,-34FY);
+z15=(251FX,-53FY);
+z16=(209FX,-47FY);
+z17=(204FX,-74FY);
+z18=(296FX,-87FY);
+z19=(387FX,-71FY);
+z20=(420FX,-31FY);
+z21=(386FX,23FY);
+z22=(290FX,45FY);
+z23=(191FX,45FY);
+z24=(191FX,386FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,31} .. {7,11}z5
+{5,8} .. {17,1}z6
+-- z7
+-- z8
+-- z9
+{23,-3} .. {5,-12}z10
+{2,-6} .. {0,-30}z11
+-- z12
+-- z13
+{25,0} .. {0,-23}z14
+{0,-13} .. {-18,0}z15
+{-11,0} .. {-17,4}z16
+-- z17
+{35,-8} .. {26,0}z18
+{39,0} .. {22,11}z19
+{22,10} .. {0,17}z20
+{0,21} .. {-22,15}z21
+{-24,15} .. {-40,0}z22
+-- z23
+-- z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(23,519FX#,443FY#,204FY#);
+"article";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(458FX,53FY);
+z4=(458FX,292FY);
+z5=(341FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,431FY);
+z8=(16FX,431FY);
+z9=(16FX,414FY);
+z10=(62FX,370FY);
+z11=(62FX,-204FY);
+z12=(487FX,-204FY);
+z13=(486FX,-159FY);
+z14=(191FX,-159FY);
+z15=(191FX,325FY);
+z16=(285FX,384FY);
+z17=(329FX,314FY);
+z18=(329FX,53FY);
+z19=(286FX,17FY);
+z20=(286FX,0FY);
+FuF (z1
+-- z2
+{-31,0} .. {0,24}z3
+-- z4
+{0,101} .. {-78,0}z5
+{-66,0} .. {-35,-46}z6
+-- z7
+-- z8
+-- z9
+{31,0} .. {0,-30}z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+{26,39} .. {37,0}z16
+{29,0} .. {0,-47}z17
+-- z18
+{0,-24} .. {-29,0}z19
+-- z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(24,691FX#,445FY#,204FY#);
+"th";
+z1=(691FX,219FY);
+z2=(691FX,264FY);
+z3=(629FX,264FY);
+z4=(629FX,274FY);
+z5=(565FX,389FY);
+z6=(408FX,445FY);
+z7=(191FX,374FY);
+z8=(191FX,431FY);
+z9=(16FX,431FY);
+z10=(16FX,414FY);
+z11=(62FX,373FY);
+z12=(62FX,-138FY);
+z13=(53FX,-181FY);
+z14=(16FX,-187FY);
+z15=(16FX,-204FY);
+z16=(234FX,-204FY);
+z17=(234FX,-187FY);
+z18=(198FX,-176FY);
+z19=(191FX,-138FY);
+z20=(191FX,332FY);
+z21=(258FX,369FY);
+z22=(356FX,388FY);
+z23=(449FX,355FY);
+z24=(499FX,272FY);
+z25=(500FX,264FY);
+z26=(439FX,264FY);
+z27=(302FX,225FY);
+z28=(257FX,130FY);
+z29=(307FX,28FY);
+z30=(443FX,-12FY);
+z31=(575FX,26FY);
+z32=(629FX,133FY);
+z33=(629FX,219FY);
+z34=(501FX,132FY);
+z35=(444FX,24FY);
+z36=(403FX,50FY);
+z37=(384FX,130FY);
+z38=(447FX,219FY);
+z39=(501FX,219FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-2,42} .. {-40,35}z5
+{-45,37} .. {-60,0}z6
+{-80,0} .. {-65,-48}z7
+-- z8
+-- z9
+-- z10
+{31,0} .. {0,-28}z11
+-- z12
+{0,-22} .. {-6,-7}z13
+{-5,-4} .. {-19,0}z14
+-- z15
+-- z16
+-- z17
+{-19,0} .. {-5,8}z18
+{-5,6} .. {0,19}z19
+-- z20
+{15,14} .. {30,11}z21
+{34,13} .. {31,0}z22
+{33,0} .. {30,-22}z23
+{32,-24} .. {2,-32}z24
+-- z25
+-- z26
+{-59,0} .. {-32,-26}z27
+{-30,-24} .. {0,-39}z28
+{1,-43} .. {33,-25}z29
+{33,-26} .. {57,0}z30
+{54,0} .. {34,25}z31
+{36,26} .. {0,45}z32
+-- z33
+);
+FuF (z34
+{0,-72} .. {-38,0}z35
+{-17,0} .. {-11,17}z36
+{-13,19} .. {0,34}z37
+{0,60} .. {42,0}z38
+-- z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(25,558FX#,624FY#,20FY#);
+"zh";
+z1=(566FX,386FY);
+z2=(566FX,431FY);
+z3=(461FX,431FY);
+z4=(461FX,546FY);
+z5=(473FX,598FY);
+z6=(517FX,607FY);
+z7=(517FX,624FY);
+z8=(268FX,624FY);
+z9=(268FX,607FY);
+z10=(318FX,595FY);
+z11=(331FX,544FY);
+z12=(331FX,431FY);
+z13=(221FX,431FY);
+z14=(82FX,373FY);
+z15=(27FX,227FY);
+z16=(89FX,41FY);
+z17=(253FX,-21FY);
+z18=(391FX,31FY);
+z19=(461FX,215FY);
+z20=(461FX,386FY);
+z21=(331FX,111FY);
+z22=(308FX,38FY);
+z23=(252FX,9FY);
+z24=(164FX,203FY);
+z25=(188FX,341FY);
+z26=(271FX,387FY);
+z27=(331FX,387FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,27} .. {8,7}z5
+{6,6} .. {24,0}z6
+-- z7
+-- z8
+-- z9
+{25,0} .. {8,-8}z10
+{8,-8} .. {0,-26}z11
+-- z12
+-- z13
+{-55,0} .. {-38,-39}z14
+{-37,-39} .. {0,-59}z15
+{0,-81} .. {41,-43}z16
+{40,-41} .. {70,0}z17
+{54,0} .. {38,34}z18
+{47,43} .. {0,80}z19
+-- z20
+);
+FuF (z21
+{0,-29} .. {-15,-20}z22
+{-16,-19} .. {-22,0}z23
+{-58,0} .. {0,129}z24
+{0,63} .. {16,29}z25
+{17,31} .. {39,0}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(26,385FX#,448FY#,204FY#);
+"sh";
+z1=(370FX,-204FY);
+z2=(370FX,-159FY);
+z3=(205FX,-159FY);
+z4=(144FX,-142FY);
+z5=(116FX,-97FY);
+z6=(150FX,-39FY);
+z7=(239FX,40FY);
+z8=(368FX,283FY);
+z9=(367FX,309FY);
+z10=(317FX,406FY);
+z11=(193FX,449FY);
+z12=(63FX,387FY);
+z13=(13FX,225FY);
+z14=(48FX,221FY);
+z15=(82FX,320FY);
+z16=(161FX,371FY);
+z17=(228FX,334FY);
+z18=(251FX,244FY);
+z19=(160FX,26FY);
+z20=(74FX,-51FY);
+z21=(-1FX,-158FY);
+z22=(23FX,-194FY);
+z23=(64FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-23,0} .. {-17,12}z4
+{-19,12} .. {0,18}z5
+{0,19} .. {23,20}z6
+-- z7
+{86,75} .. {0,87}z8
+{0,9} .. {0,8}z9
+{-4,39} .. {-29,26}z10
+{-32,28} .. {-51,0}z11
+{-54,0} .. {-32,-41}z12
+{-33,-41} .. {0,-67}z13
+-- z14
+{1,35} .. {22,31}z15
+{23,34} .. {30,0}z16
+{29,0} .. {16,-25}z17
+{15,-23} .. {1,-38}z18
+{3,-90} .. {-64,-56}z19
+-- z20
+{-50,-44} .. {0,-28}z21
+{0,-16} .. {16,-8}z22
+{12,-7} .. {15,0}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(27,318FX#,439FY#,204FY#);
+"ch";
+z1=(321FX,-204FY);
+z2=(321FX,-159FY);
+z3=(226FX,-159FY);
+z4=(151FX,-105FY);
+z5=(174FX,-54FY);
+z6=(262FX,21FY);
+z7=(292FX,91FY);
+z8=(267FX,155FY);
+z9=(209FX,197FY);
+z10=(152FX,239FY);
+z11=(123FX,309FY);
+z12=(152FX,369FY);
+z13=(249FX,398FY);
+z14=(242FX,439FY);
+z15=(102FX,371FY);
+z16=(32FX,222FY);
+z17=(79FX,118FY);
+z18=(167FX,79FY);
+z19=(214FX,50FY);
+z20=(196FX,22FY);
+z21=(86FX,-70FY);
+z22=(26FX,-159FY);
+z23=(43FX,-192FY);
+z24=(86FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-50,0} .. {0,36}z4
+{0,21} .. {15,13}z5
+-- z6
+{20,17} .. {0,30}z7
+{0,26} .. {-17,17}z8
+{-9,8} .. {-30,20}z9
+{-29,18} .. {-9,10}z10
+{-19,20} .. {0,27}z11
+{0,24} .. {19,17}z12
+{22,19} .. {43,0}z13
+-- z14
+{-48,0} .. {-46,-45}z15
+{-47,-46} .. {0,-53}z16
+{0,-44} .. {31,-25}z17
+{18,-13} .. {41,-13}z18
+{31,-10} .. {0,-9}z19
+{0,-9} .. {-12,-10}z20
+-- z21
+{-40,-33} .. {0,-27}z22
+{0,-14} .. {12,-8}z23
+{11,-8} .. {18,0}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(28,515FX#,443FY#,0FY#);
+"rhard";
+z1=(498FX,0FY);
+z2=(498FX,45FY);
+z3=(334FX,45FY);
+z4=(448FX,160FY);
+z5=(485FX,294FY);
+z6=(438FX,406FY);
+z7=(317FX,443FY);
+z8=(245FX,420FY);
+z9=(191FX,374FY);
+z10=(191FX,431FY);
+z11=(16FX,431FY);
+z12=(16FX,413FY);
+z13=(50FX,405FY);
+z14=(62FX,364FY);
+z15=(62FX,58FY);
+z16=(16FX,17FY);
+z17=(16FX,0FY);
+z18=(234FX,0FY);
+z19=(234FX,17FY);
+z20=(202FX,23FY);
+z21=(191FX,58FY);
+z22=(191FX,325FY);
+z23=(264FX,381FY);
+z24=(330FX,351FY);
+z25=(357FX,270FY);
+z26=(338FX,140FY);
+z27=(280FX,44FY);
+z28=(280FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{48,26} .. {29,50}z4
+{25,45} .. {0,44}z5
+{0,48} .. {-32,27}z6
+{-29,25} .. {-51,0}z7
+{-22,0} .. {-26,-16}z8
+{-24,-14} .. {-12,-17}z9
+-- z10
+-- z11
+-- z12
+{17,0} .. {6,-5}z13
+{8,-6} .. {0,-21}z14
+-- z15
+{0,-27} .. {-31,0}z16
+-- z17
+-- z18
+-- z19
+{-16,0} .. {-6,4}z20
+{-7,6} .. {0,18}z21
+-- z22
+{25,37} .. {24,0}z23
+{27,0} .. {17,-20}z24
+{18,-20} .. {0,-34}z25
+{0,-44} .. {-13,-43}z26
+{-15,-46} .. {-24,-18}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(29,513FX#,624FY#,13FY#);
+"ts";
+z1=(513FX,386FY);
+z2=(513FX,431FY);
+z3=(380FX,431FY);
+z4=(262FX,567FY);
+z5=(256FX,578FY);
+z6=(266FX,582FY);
+z7=(308FX,582FY);
+z8=(308FX,624FY);
+z9=(92FX,624FY);
+z10=(71FX,584FY);
+z11=(163FX,510FY);
+z12=(220FX,444FY);
+z13=(91FX,392FY);
+z14=(35FX,248FY);
+z15=(37FX,209FY);
+z16=(106FX,57FY);
+z17=(268FX,-14FY);
+z18=(419FX,52FY);
+z19=(471FX,201FY);
+z20=(454FX,299FY);
+z21=(412FX,386FY);
+z22=(355FX,145FY);
+z23=(338FX,56FY);
+z24=(298FX,18FY);
+z25=(204FX,101FY);
+z26=(162FX,285FY);
+z27=(187FX,377FY);
+z28=(245FX,409FY);
+z29=(279FX,369FY);
+z30=(329FX,270FY);
+z31=(355FX,145FY);
+FuF (z1
+-- z2
+-- z3
+{-34,46} .. {-45,44}z4
+{-4,5} .. {0,3}z5
+{0,3} .. {7,0}z6
+-- z7
+-- z8
+-- z9
+-- z10
+{27,-16} .. {34,-33}z11
+{26,-27} .. {12,-17}z12
+{-53,-3} .. {-33,-32}z13
+{-38,-35} .. {0,-61}z14
+{0,-13} .. {1,-13}z15
+{8,-60} .. {38,-41}z16
+{44,-47} .. {64,0}z17
+{63,0} .. {38,44}z18
+{34,40} .. {0,59}z19
+{0,28} .. {-11,37}z20
+{-12,36} .. {-16,22}z21
+);
+FuF (z22
+{0,-34} .. {-11,-26}z23
+{-12,-25} .. {-15,0}z24
+{-35,0} .. {-28,55}z25
+{-28,55} .. {0,68}z26
+{0,38} .. {17,24}z27
+{16,22} .. {23,0}z28
+{6,0} .. {17,-27}z29
+{20,-31} .. {13,-35}z30
+{17,-45} .. {0,-38}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(30,759FX#,624FY#,204FY#);
+"ph";
+z1=(744FX,0FY);
+z2=(744FX,18FY);
+z3=(716FX,23FY);
+z4=(698FX,81FY);
+z5=(698FX,305FY);
+z6=(578FX,443FY);
+z7=(444FX,374FY);
+z8=(444FX,549FY);
+z9=(455FX,602FY);
+z10=(496FX,607FY);
+z11=(496FX,624FY);
+z12=(266FX,624FY);
+z13=(266FX,607FY);
+z14=(311FX,595FY);
+z15=(315FX,550FY);
+z16=(315FX,107FY);
+z17=(287FX,73FY);
+z18=(237FX,48FY);
+z19=(191FX,114FY);
+z20=(191FX,431FY);
+z21=(16FX,431FY);
+z22=(16FX,414FY);
+z23=(56FX,401FY);
+z24=(62FX,350FY);
+z25=(62FX,131FY);
+z26=(90FX,29FY);
+z27=(181FX,-12FY);
+z28=(316FX,58FY);
+z29=(316FX,-142FY);
+z30=(302FX,-184FY);
+z31=(258FX,-191FY);
+z32=(258FX,-204FY);
+z33=(508FX,-204FY);
+z34=(508FX,-191FY);
+z35=(444FX,-142FY);
+z36=(444FX,323FY);
+z37=(472FX,358FY);
+z38=(521FX,383FY);
+z39=(569FX,317FY);
+z40=(569FX,0FY);
+FuF (z1
+-- z2
+{-13,0} .. {-6,3}z3
+{-12,6} .. {0,32}z4
+-- z5
+{0,92} .. {-80,0}z6
+{-48,0} .. {-41,-46}z7
+-- z8
+{0,30} .. {7,6}z9
+{4,3} .. {24,0}z10
+-- z11
+-- z12
+-- z13
+{26,-1} .. {4,-7}z14
+{3,-3} .. {0,-27}z15
+-- z16
+{-1,-7} .. {-18,-15}z17
+{-19,-17} .. {-14,0}z18
+{-31,0} .. {0,44}z19
+-- z20
+-- z21
+-- z22
+{21,0} .. {5,-9}z23
+{4,-7} .. {0,-27}z24
+-- z25
+{0,-43} .. {19,-25}z26
+{20,-27} .. {40,0}z27
+{51,0} .. {39,47}z28
+-- z29
+{0,-22} .. {-9,-6}z30
+{-7,-5} .. {-22,0}z31
+-- z32
+-- z33
+-- z34
+{-43,1} .. {0,32}z35
+-- z36
+{2,9} .. {17,15}z37
+{18,16} .. {14,0}z38
+{32,0} .. {0,-44}z39
+-- z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(31,501FX#,449FY#,19FY#);
+"osimple";
+z1=(483FX,210FY);
+z2=(415FX,385FY);
+z3=(253FX,450FY);
+z4=(90FX,381FY);
+z5=(24FX,213FY);
+z6=(85FX,50FY);
+z7=(254FX,-20FY);
+z8=(418FX,47FY);
+z9=(483FX,210FY);
+z10=(348FX,214FY);
+z11=(325FX,73FY);
+z12=(253FX,17FY);
+z13=(183FX,72FY);
+z14=(159FX,214FY);
+z15=(186FX,358FY);
+z16=(255FX,413FY);
+z17=(324FX,360FY);
+z18=(348FX,214FY);
+FuF (z1
+{0,71} .. {-45,45}z2
+{-44,43} .. {-64,0}z3
+{-65,0} .. {-44,-46}z4
+{-44,-45} .. {0,-67}z5
+{0,-65} .. {40,-43}z6
+{43,-47} .. {70,0}z7
+{65,0} .. {44,44}z8
+{43,45} .. {0,63}z9
+);
+FuF (z10
+{0,-59} .. {-15,-34}z11
+{-17,-37} .. {-31,0}z12
+{-30,0} .. {-16,37}z13
+{-16,35} .. {0,60}z14
+{0,60} .. {18,36}z15
+{17,37} .. {29,0}z16
+{30,0} .. {16,-35}z17
+{16,-36} .. {0,-62}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(32,584FX#,624FY#,11FY#);
+"ev";
+z1=(578FX,0FY);
+z2=(578FX,45FY);
+z3=(519FX,45FY);
+z4=(473FX,91FY);
+z5=(473FX,431FY);
+z6=(293FX,431FY);
+z7=(293FX,414FY);
+z8=(344FX,374FY);
+z9=(344FX,107FY);
+z10=(248FX,47FY);
+z11=(216FX,67FY);
+z12=(205FX,147FY);
+z13=(205FX,562FY);
+z14=(248FX,607FY);
+z15=(248FX,624FY);
+z16=(30FX,624FY);
+z17=(30FX,607FY);
+z18=(70FX,596FY);
+z19=(76FX,562FY);
+z20=(76FX,147FY);
+z21=(188FX,-12FY);
+z22=(344FX,57FY);
+z23=(344FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-38,0} .. {0,40}z4
+-- z5
+-- z6
+-- z7
+{34,0} .. {0,-27}z8
+-- z9
+{-24,-40} .. {-40,0}z10
+{-15,0} .. {-6,13}z11
+{-7,15} .. {0,38}z12
+-- z13
+{0,30} .. {28,0}z14
+-- z15
+-- z16
+-- z17
+{21,0} .. {6,-8}z18
+{5,-7} .. {0,-16}z19
+-- z20
+{0,-106} .. {74,0}z21
+{67,1} .. {37,45}z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(127,471FX#,638FY#,12FY#);
+"question";
+z1=(419FX,493FY);
+z2=(361FX,604FY);
+z3=(236FX,639FY);
+z4=(116FX,606FY);
+z5=(58FX,502FY);
+z6=(74FX,455FY);
+z7=(118FX,436FY);
+z8=(157FX,451FY);
+z9=(172FX,489FY);
+z10=(167FX,517FY);
+z11=(154FX,546FY);
+z12=(144FX,572FY);
+z13=(157FX,594FY);
+z14=(198FX,607FY);
+z15=(246FX,588FY);
+z16=(279FX,488FY);
+z17=(271FX,421FY);
+z18=(239FX,351FY);
+z19=(210FX,280FY);
+z20=(205FX,204FY);
+z21=(224FX,204FY);
+z22=(244FX,279FY);
+z23=(302FX,330FY);
+z24=(383FX,397FY);
+z25=(419FX,493FY);
+z26=(293FX,62FY);
+z27=(271FX,115FY);
+z28=(219FX,136FY);
+z29=(166FX,114FY);
+z30=(145FX,62FY);
+z31=(166FX,9FY);
+z32=(219FX,-12FY);
+z33=(272FX,9FY);
+z34=(293FX,62FY);
+FuF (z1
+{0,48} .. {-38,26}z2
+{-33,23} .. {-50,0}z3
+{-46,0} .. {-34,-22}z4
+{-39,-25} .. {1,-44}z5
+{0,-19} .. {11,-13}z6
+{11,-13} .. {18,0}z7
+{15,0} .. {11,10}z8
+{10,10} .. {-1,15}z9
+{0,9} .. {-3,10}z10
+{-1,2} .. {-8,17}z11
+{-7,14} .. {0,3}z12
+{0,8} .. {9,7}z13
+{11,9} .. {16,0}z14
+{18,0} .. {14,-12}z15
+{22,-21} .. {0,-45}z16
+{0,-26} .. {-5,-19}z17
+{-4,-16} .. {-17,-31}z18
+{-16,-30} .. {-4,-17}z19
+{-3,-13} .. {0,-38}z20
+-- z21
+{3,33} .. {11,17}z22
+{9,14} .. {29,19}z23
+{38,25} .. {16,19}z24
+{24,28} .. {0,36}z25
+);
+FuF (z26
+{0,21} .. {-14,14}z27
+{-14,15} .. {-20,-1}z28
+{-21,0} .. {-14,-15}z29
+{-15,-14} .. {1,-21}z30
+{0,-20} .. {14,-15}z31
+{15,-15} .. {21,1}z32
+{21,0} .. {15,14}z33
+{14,15} .. {0,21}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+ligtable 101:
+39=:22,
+118=:32;
+
+ligtable 69:
+39=:6;
+
+ligtable 117:
+39=:23;
+
+ligtable 116:
+39=:24,
+104=:24;
+
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+ligtable 100:
+122=:19;
+
+ligtable 74:
+39=:5;
+
+ligtable 115:
+104=:26;
+
+ligtable 83:
+104=:10,
+72=:10;
+
+ligtable 99:
+39=:29,
+104=:27;
+
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+ligtable 114:
+39=:28;
+
+ligtable 111:
+39=:31;
+
+ligtable 79:
+39=:15;
+
+ligtable 39:
+39=:34;
+
+ligtable 96:
+96=:92;
+
+ligtable 60:
+60=:60;
+
+ligtable 62:
+62=:62;
+
+ligtable 45:
+45=:123;
+
+ligtable 123:
+45=:125;
+
+ligtable 27:
+121 kern 67FX#;
+
+ligtable 26:
+121 kern 40FX#;
+
+ligtable 23:
+121 kern 40FX#;
+
+ligtable 20:
+121 kern 67FX#;
+
+ligtable 12:
+81 kern 49FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 9:
+81 kern -67FX#;
+
+ligtable 8:
+81 kern 49FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 4:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 124:
+25 kern -103FX#,
+122 kern -103FX#,
+121 kern -103FX#,
+119 kern -103FX#,
+118 kern -103FX#,
+117 kern -103FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -103FX#,
+115 kern -103FX#,
+28 kern -103FX#,
+114 kern -103FX#,
+113 kern -103FX#,
+30 kern -103FX#,
+112 kern -103FX#,
+31 kern -103FX#,
+111 kern -103FX#,
+109 kern -103FX#,
+108 kern -103FX#,
+106 kern -103FX#,
+20 kern -103FX#,
+103 kern -103FX#,
+102 kern -76FX#,
+19 kern -76FX#,
+100 kern -76FX#,
+21 kern -103FX#,
+27 kern -103FX#,
+99 kern -103FX#,
+98 kern -103FX#,
+23 kern -103FX#,
+97 kern -103FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -94FX#,
+85 kern -112FX#,
+12 kern -112FX#,
+82 kern -112FX#,
+81 kern -94FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -112FX#,
+79 kern -112FX#,
+78 kern 35FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -112FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -112FX#,
+7 kern -112FX#;
+
+ligtable 122:
+121 kern 67FX#;
+
+ligtable 118:
+121 kern 67FX#;
+
+ligtable 112:
+39=:30,
+104=:30,
+121 kern 40FX#;
+
+ligtable 108:
+121 kern 67FX#;
+
+ligtable 107:
+121 kern 40FX#;
+
+ligtable 106:
+39=:21,
+121 kern 40FX#;
+
+ligtable 103:
+39=:25,
+104=:20,
+121 kern 40FX#;
+
+ligtable 88:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 87:
+81 kern -67FX#;
+
+ligtable 86:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 85:
+39=:7,
+81 kern -67FX#;
+
+ligtable 82:
+39=:12,
+81 kern -67FX#;
+
+ligtable 80:
+39=:14,
+104=:14,
+72=:14,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 77:
+25 kern -76FX#,
+122 kern -76FX#,
+121 kern -76FX#,
+119 kern -76FX#,
+118 kern -76FX#,
+117 kern -76FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -76FX#,
+115 kern -76FX#,
+28 kern -76FX#,
+114 kern -76FX#,
+113 kern -76FX#,
+30 kern -76FX#,
+112 kern -76FX#,
+31 kern -76FX#,
+111 kern -76FX#,
+109 kern -76FX#,
+108 kern -76FX#,
+106 kern -76FX#,
+20 kern -76FX#,
+103 kern -76FX#,
+102 kern -49FX#,
+19 kern -49FX#,
+100 kern -49FX#,
+21 kern -76FX#,
+27 kern -76FX#,
+99 kern -76FX#,
+98 kern -76FX#,
+23 kern -76FX#,
+97 kern -76FX#,
+86 kern -76FX#,
+81 kern -67FX#,
+70 kern -76FX#;
+
+ligtable 76:
+86 kern -184FX#,
+10 kern -103FX#,
+83 kern -103FX#,
+14 kern -134FX#,
+80 kern -134FX#,
+78 kern -134FX#,
+77 kern -134FX#,
+75 kern -134FX#,
+72 kern -134FX#,
+4 kern -184FX#,
+71 kern -184FX#,
+70 kern -134FX#,
+3 kern -103FX#,
+68 kern -103FX#,
+65 kern -134FX#;
+
+ligtable 71:
+39=:9,
+104=:4,
+72=:4,
+81 kern 49FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 70:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 68:
+122=:3,
+90=:3,
+81 kern 49FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 63:
+25 kern -202FX#,
+122 kern -202FX#,
+121 kern -202FX#,
+119 kern -202FX#,
+118 kern -202FX#,
+117 kern -202FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -202FX#,
+115 kern -202FX#,
+28 kern -202FX#,
+114 kern -202FX#,
+113 kern -202FX#,
+30 kern -202FX#,
+112 kern -202FX#,
+31 kern -202FX#,
+111 kern -202FX#,
+109 kern -202FX#,
+108 kern -202FX#,
+106 kern -202FX#,
+20 kern -202FX#,
+103 kern -202FX#,
+102 kern -76FX#,
+19 kern -76FX#,
+100 kern -76FX#,
+21 kern -202FX#,
+27 kern -202FX#,
+99 kern -202FX#,
+98 kern -202FX#,
+23 kern -202FX#,
+97 kern -202FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -193FX#,
+85 kern -112FX#,
+12 kern -112FX#,
+82 kern -112FX#,
+81 kern -193FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -112FX#,
+79 kern -112FX#,
+78 kern 35FX#,
+74 kern -89FX#,
+72 kern 22FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -112FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -112FX#,
+7 kern -112FX#;
+
+ligtable 33:
+25 kern -139FX#,
+122 kern -139FX#,
+121 kern -139FX#,
+119 kern -139FX#,
+118 kern -139FX#,
+117 kern -139FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -139FX#,
+115 kern -139FX#,
+28 kern -139FX#,
+114 kern -139FX#,
+113 kern -139FX#,
+30 kern -139FX#,
+112 kern -139FX#,
+31 kern -139FX#,
+111 kern -139FX#,
+109 kern -139FX#,
+108 kern -139FX#,
+106 kern -139FX#,
+20 kern -139FX#,
+103 kern -139FX#,
+102 kern -76FX#,
+19 kern -76FX#,
+100 kern -76FX#,
+21 kern -139FX#,
+27 kern -139FX#,
+99 kern -139FX#,
+98 kern -139FX#,
+23 kern -139FX#,
+97 kern -139FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -130FX#,
+85 kern -112FX#,
+12 kern -112FX#,
+82 kern -112FX#,
+81 kern -130FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -112FX#,
+79 kern -112FX#,
+78 kern 35FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -112FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -112FX#,
+7 kern -112FX#;
+
+font_slant := 0.0000;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "artmb10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/artmbi10.mf b/Master/texmf-dist/fonts/source/public/armenian/artmbi10.mf
new file mode 100644
index 00000000000..979e1f2d3e9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/artmbi10.mf
@@ -0,0 +1,9005 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 artmbi10.mf (Armenian Times Bold Italic 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,212FX#,763FY#,0FY#);
+"bacakanchakan";
+z1=(315FX,636FY);
+z2=(328FX,763FY);
+z3=(288FX,750FY);
+z4=(294FX,718FY);
+z5=(235FX,658FY);
+z6=(198FX,636FY);
+z7=(151FX,605FY);
+z8=(102FX,524FY);
+z9=(106FX,446FY);
+z10=(144FX,459FY);
+z11=(142FX,490FY);
+z12=(177FX,535FY);
+z13=(236FX,574FY);
+z14=(275FX,597FY);
+z15=(315FX,636FY);
+FuF (z1
+{29,43} .. {-19,36}z2
+-- z3
+{8,-19} .. {-2,-6}z4
+{-8,-28} .. {-23,-18}z5
+-- z6
+-- z7
+{-25,-17} .. {-8,-37}z8
+{-6,-25} .. {9,-29}z9
+-- z10
+{-4,17} .. {2,7}z11
+{1,7} .. {24,24}z12
+{20,13} .. {20,12}z13
+-- z14
+{16,11} .. {10,15}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(34,542FX#,624FY#,0FY#);
+"quotedblright";
+z1=(283FX,507FY);
+z2=(148FX,337FY);
+z3=(142FX,327FY);
+z4=(143FX,320FY);
+z5=(148FX,314FY);
+z6=(157FX,311FY);
+z7=(164FX,312FY);
+z8=(232FX,367FY);
+z9=(286FX,437FY);
+z10=(317FX,514FY);
+z11=(321FX,567FY);
+z12=(302FX,608FY);
+z13=(260FX,624FY);
+z14=(220FX,615FY);
+z15=(189FX,589FY);
+z16=(173FX,555FY);
+z17=(179FX,506FY);
+z18=(226FX,485FY);
+z19=(283FX,507FY);
+z20=(509FX,507FY);
+z21=(460FX,414FY);
+z22=(375FX,337FY);
+z23=(369FX,327FY);
+z24=(369FX,320FY);
+z25=(375FX,314FY);
+z26=(382FX,311FY);
+z27=(390FX,312FY);
+z28=(459FX,367FY);
+z29=(511FX,436FY);
+z30=(543FX,514FY);
+z31=(546FX,567FY);
+z32=(528FX,608FY);
+z33=(487FX,624FY);
+z34=(446FX,615FY);
+z35=(416FX,589FY);
+z36=(400FX,555FY);
+z37=(406FX,506FY);
+z38=(452FX,485FY);
+z39=(509FX,507FY);
+FuF (z1
+{-18,-64} .. {-72,-49}z2
+{-4,-4} .. {0,-3}z3
+{-1,-2} .. {1,-3}z4
+-- z5
+{2,-2} .. {5,0}z6
+{2,0} .. {2,1}z7
+{24,15} .. {21,22}z8
+{21,21} .. {15,25}z9
+{14,25} .. {6,26}z10
+{5,18} .. {-2,17}z11
+{-3,17} .. {-10,10}z12
+{-10,11} .. {-18,0}z13
+{-14,0} .. {-12,-6}z14
+{-13,-7} .. {-8,-10}z15
+{-8,-11} .. {-3,-12}z16
+{-5,-19} .. {9,-14}z17
+{9,-14} .. {22,0}z18
+{22,0} .. {16,15}z19
+);
+FuF (z20
+{-10,-34} .. {-23,-28}z21
+{-24,-28} .. {-33,-23}z22
+{-3,-3} .. {-1,-4}z23
+{-1,-3} .. {1,-2}z24
+-- z25
+{1,-2} .. {3,0}z26
+{4,0} .. {2,1}z27
+{25,15} .. {21,21}z28
+{20,21} .. {14,25}z29
+{15,25} .. {7,27}z30
+{4,18} .. {-3,17}z31
+{-2,17} .. {-10,10}z32
+{-10,11} .. {-18,0}z33
+{-15,0} .. {-13,-6}z34
+{-12,-7} .. {-8,-10}z35
+{-8,-11} .. {-2,-12}z36
+{-5,-19} .. {9,-14}z37
+{9,-14} .. {22,0}z38
+{22,0} .. {16,15}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(35,862FX#,623FY#,173FY#);
+"numbersign";
+z1=(159FX,298FY);
+z2=(383FX,298FY);
+z3=(302FX,152FY);
+z4=(123FX,152FY);
+z5=(101FX,144FY);
+z6=(89FX,125FY);
+z7=(92FX,106FY);
+z8=(109FX,97FY);
+z9=(271FX,97FY);
+z10=(139FX,-140FY);
+z11=(148FX,-174FY);
+z12=(187FX,-156FY);
+z13=(327FX,97FY);
+z14=(501FX,97FY);
+z15=(369FX,-140FY);
+z16=(379FX,-174FY);
+z17=(417FX,-156FY);
+z18=(558FX,97FY);
+z19=(800FX,97FY);
+z20=(822FX,106FY);
+z21=(834FX,125FY);
+z22=(831FX,144FY);
+z23=(814FX,152FY);
+z24=(589FX,152FY);
+z25=(670FX,298FY);
+z26=(850FX,298FY);
+z27=(871FX,306FY);
+z28=(884FX,325FY);
+z29=(881FX,345FY);
+z30=(864FX,353FY);
+z31=(703FX,353FY);
+z32=(834FX,590FY);
+z33=(824FX,624FY);
+z34=(786FX,606FY);
+z35=(646FX,353FY);
+z36=(471FX,353FY);
+z37=(603FX,590FY);
+z38=(594FX,624FY);
+z39=(555FX,606FY);
+z40=(414FX,353FY);
+z41=(173FX,353FY);
+z42=(151FX,345FY);
+z43=(139FX,325FY);
+z44=(142FX,306FY);
+z45=(159FX,298FY);
+z46=(533FX,152FY);
+z47=(359FX,152FY);
+z48=(439FX,298FY);
+z49=(613FX,298FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-8,0} .. {-7,-5}z5
+{-6,-6} .. {-2,-7}z6
+{-2,-7} .. {4,-5}z7
+{3,-6} .. {8,0}z8
+-- z9
+-- z10
+{-5,-19} .. {11,-4}z11
+{20,0} .. {7,12}z12
+-- z13
+-- z14
+-- z15
+{-4,-19} .. {11,-4}z16
+{19,0} .. {6,12}z17
+-- z18
+-- z19
+{8,0} .. {7,6}z20
+{6,5} .. {2,7}z21
+{2,7} .. {-4,5}z22
+{-4,5} .. {-7,0}z23
+-- z24
+-- z25
+-- z26
+{8,0} .. {6,5}z27
+{7,6} .. {2,7}z28
+{2,8} .. {-4,6}z29
+{-4,5} .. {-8,0}z30
+-- z31
+-- z32
+{5,19} .. {-11,4}z33
+{-18,0} .. {-7,-12}z34
+-- z35
+-- z36
+-- z37
+{5,19} .. {-11,4}z38
+{-19,0} .. {-7,-12}z39
+-- z40
+-- z41
+{-8,0} .. {-7,-5}z42
+{-6,-6} .. {-2,-8}z43
+{-2,-7} .. {4,-6}z44
+{4,-5} .. {8,0}z45
+);
+FuF (z46
+-- z47
+-- z48
+-- z49
+);
+lbl (range 1 thru 49);
+endchar;
+
+beginchar(36,470FX#,664FY#,71FY#);
+"dollar";
+z1=(293FX,387FY);
+z2=(349FX,597FY);
+z3=(392FX,563FY);
+z4=(412FX,505FY);
+z5=(407FX,456FY);
+z6=(425FX,456FY);
+z7=(466FX,591FY);
+z8=(359FX,632FY);
+z9=(368FX,664FY);
+z10=(333FX,664FY);
+z11=(325FX,637FY);
+z12=(295FX,639FY);
+z13=(201FX,617FY);
+z14=(136FX,557FY);
+z15=(113FX,472FY);
+z16=(228FX,279FY);
+z17=(163FX,37FY);
+z18=(111FX,99FY);
+z19=(99FX,181FY);
+z20=(81FX,181FY);
+z21=(41FX,32FY);
+z22=(101FX,5FY);
+z23=(150FX,-8FY);
+z24=(133FX,-71FY);
+z25=(168FX,-71FY);
+z26=(184FX,-13FY);
+z27=(214FX,-14FY);
+z28=(365FX,35FY);
+z29=(429FX,176FY);
+z30=(398FX,276FY);
+z31=(293FX,387FY);
+z32=(316FX,606FY);
+z33=(264FX,414FY);
+z34=(217FX,512FY);
+z35=(244FX,581FY);
+z36=(316FX,606FY);
+z37=(195FX,27FY);
+z38=(256FX,253FY);
+z39=(318FX,135FY);
+z40=(288FX,57FY);
+z41=(218FX,25FY);
+z42=(195FX,27FY);
+FuF (z1
+-- z2
+{21,-10} .. {8,-13}z3
+{13,-18} .. {0,-21}z4
+{0,-12} .. {-3,-20}z5
+-- z6
+-- z7
+{-30,18} .. {-42,9}z8
+-- z9
+-- z10
+-- z11
+{-14,1} .. {-6,0}z12
+{-33,0} .. {-30,-14}z13
+{-27,-14} .. {-16,-26}z14
+{-16,-26} .. {0,-31}z15
+{1,-58} .. {75,-70}z16
+-- z17
+{-25,16} .. {-10,26}z18
+{-6,17} .. {-2,38}z19
+-- z20
+-- z21
+{25,-13} .. {15,-5}z22
+{14,-5} .. {19,-4}z23
+-- z24
+-- z25
+-- z26
+{10,-1} .. {10,0}z27
+{61,0} .. {40,32}z28
+{43,35} .. {-1,59}z29
+{-1,36} .. {-20,30}z30
+{-11,16} .. {-59,58}z31
+);
+FuF (z32
+-- z33
+{-31,33} .. {0,33}z34
+{-1,29} .. {18,17}z35
+{19,17} .. {29,-1}z36
+);
+FuF (z37
+-- z38
+{41,-41} .. {0,-38}z39
+{1,-30} .. {-21,-22}z40
+{-20,-21} .. {-26,0}z41
+{-10,1} .. {-6,0}z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(37,784FX#,638FY#,26FY#);
+"percent";
+z1=(728FX,639FY);
+z2=(671FX,639FY);
+z3=(112FX,-25FY);
+z4=(167FX,-25FY);
+z5=(208FX,299FY);
+z6=(341FX,370FY);
+z7=(387FX,517FY);
+z8=(357FX,602FY);
+z9=(274FX,635FY);
+z10=(157FX,579FY);
+z11=(100FX,421FY);
+z12=(127FX,335FY);
+z13=(208FX,299FY);
+z14=(211FX,323FY);
+z15=(180FX,357FY);
+z16=(194FX,440FY);
+z17=(229FX,566FY);
+z18=(255FX,604FY);
+z19=(278FX,611FY);
+z20=(308FX,576FY);
+z21=(292FX,489FY);
+z22=(259FX,367FY);
+z23=(211FX,323FY);
+z24=(557FX,-27FY);
+z25=(689FX,46FY);
+z26=(738FX,193FY);
+z27=(707FX,277FY);
+z28=(624FX,310FY);
+z29=(496FX,239FY);
+z30=(450FX,97FY);
+z31=(477FX,11FY);
+z32=(557FX,-27FY);
+z33=(559FX,0FY);
+z34=(531FX,33FY);
+z35=(562FX,186FY);
+z36=(595FX,271FY);
+z37=(625FX,286FY);
+z38=(659FX,250FY);
+z39=(644FX,167FY);
+z40=(609FX,46FY);
+z41=(559FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+{53,0} .. {35,47}z6
+{32,43} .. {-1,55}z7
+{-1,35} .. {-19,21}z8
+{-20,22} .. {-35,0}z9
+{-46,0} .. {-32,-37}z10
+{-39,-46} .. {2,-59}z11
+{1,-36} .. {17,-22}z12
+{19,-25} .. {34,0}z13
+);
+FuF (z14
+{-21,1} .. {0,22}z15
+{0,18} .. {10,37}z16
+{19,73} .. {4,11}z17
+{7,18} .. {11,7}z18
+{5,5} .. {10,0}z19
+{20,0} .. {0,-23}z20
+{0,-18} .. {-11,-40}z21
+{-19,-73} .. {-3,-9}z22
+{-11,-30} .. {-21,0}z23
+);
+FuF (z24
+{52,1} .. {36,48}z25
+{34,44} .. {-1,54}z26
+{-1,34} .. {-20,22}z27
+{-22,23} .. {-34,-1}z28
+{-50,0} .. {-35,-47}z29
+{-32,-43} .. {2,-52}z30
+{1,-35} .. {17,-23}z31
+{20,-25} .. {34,0}z32
+);
+FuF (z33
+{-18,1} .. {0,21}z34
+{-1,27} .. {21,75}z35
+{13,45} .. {9,11}z36
+{9,10} .. {11,-1}z37
+{22,0} .. {1,-24}z38
+{0,-17} .. {-10,-39}z39
+{-19,-70} .. {-4,-11}z40
+{-14,-31} .. {-20,1}z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(38,804FX#,635FY#,10FY#);
+"ampersand";
+z1=(478FX,127FY);
+z2=(419FX,222FY);
+z3=(373FX,341FY);
+z4=(543FX,514FY);
+z5=(546FX,572FY);
+z6=(524FX,618FY);
+z7=(477FX,635FY);
+z8=(390FX,615FY);
+z9=(316FX,558FY);
+z10=(274FX,479FY);
+z11=(269FX,303FY);
+z12=(140FX,211FY);
+z13=(74FX,125FY);
+z14=(83FX,51FY);
+z15=(142FX,5FY);
+z16=(228FX,-10FY);
+z17=(421FX,47FY);
+z18=(600FX,-10FY);
+z19=(674FX,5FY);
+z20=(738FX,46FY);
+z21=(773FX,106FY);
+z22=(729FX,106FY);
+z23=(686FX,53FY);
+z24=(610FX,33FY);
+z25=(500FX,99FY);
+z26=(670FX,258FY);
+z27=(753FX,346FY);
+z28=(781FX,355FY);
+z29=(841FX,357FY);
+z30=(851FX,399FY);
+z31=(753FX,398FY);
+z32=(652FX,399FY);
+z33=(641FX,357FY);
+z34=(689FX,354FY);
+z35=(704FX,346FY);
+z36=(637FX,276FY);
+z37=(556FX,193FY);
+z38=(478FX,127FY);
+z39=(197FX,156FY);
+z40=(266FX,265FY);
+z41=(276FX,273FY);
+z42=(324FX,157FY);
+z43=(391FX,71FY);
+z44=(246FX,33FY);
+z45=(208FX,49FY);
+z46=(192FX,94FY);
+z47=(197FX,156FY);
+z48=(501FX,514FY);
+z49=(459FX,451FY);
+z50=(368FX,374FY);
+z51=(375FX,514FY);
+z52=(412FX,576FY);
+z53=(469FX,602FY);
+z54=(494FX,591FY);
+z55=(505FX,559FY);
+z56=(501FX,514FY);
+FuF (z1
+{-13,18} .. {-26,45}z2
+{-23,39} .. {-8,40}z3
+{103,75} .. {10,40}z4
+{5,20} .. {-3,19}z5
+{-3,19} .. {-12,11}z6
+{-12,12} .. {-20,0}z7
+{-29,0} .. {-29,-13}z8
+{-28,-14} .. {-21,-24}z9
+{-21,-24} .. {-7,-29}z10
+{-14,-59} .. {11,-59}z11
+-- z12
+{-35,-25} .. {-9,-34}z13
+{-7,-29} .. {13,-21}z14
+{13,-20} .. {27,-11}z15
+{26,-10} .. {31,0}z16
+{61,0} .. {67,38}z17
+{53,-38} .. {66,0}z18
+{24,0} .. {25,10}z19
+{25,9} .. {18,18}z20
+{17,17} .. {6,23}z21
+-- z22
+{-5,-22} .. {-23,-13}z23
+{-23,-14} .. {-28,0}z24
+{-37,0} .. {-36,44}z25
+{53,41} .. {61,65}z26
+-- z27
+{4,4} .. {15,2}z28
+{13,1} .. {27,0}z29
+-- z30
+{-22,-1} .. {-44,0}z31
+{-22,0} .. {-45,1}z32
+-- z33
+{22,0} .. {10,-2}z34
+{11,-1} .. {-1,-4}z35
+-- z36
+{-28,-31} .. {-26,-24}z37
+{-25,-24} .. {-27,-20}z38
+);
+FuF (z39
+{12,50} .. {33,25}z40
+-- z41
+{10,-40} .. {22,-38}z42
+{18,-31} .. {27,-26}z43
+{-50,-26} .. {-47,0}z44
+{-16,0} .. {-9,11}z45
+{-9,11} .. {-1,19}z46
+{-2,20} .. {5,22}z47
+);
+FuF (z48
+{-5,-19} .. {-23,-23}z49
+{-23,-23} .. {-38,-28}z50
+{-7,47} .. {11,46}z51
+{7,24} .. {18,17}z52
+{17,17} .. {21,0}z53
+{10,0} .. {6,-7}z54
+{7,-8} .. {1,-14}z55
+{2,-13} .. {-4,-17}z56
+);
+lbl (range 1 thru 56);
+endchar;
+
+beginchar(39,244FX#,624FY#,0FY#);
+"apatharc";
+z1=(318FX,535FY);
+z2=(322FX,566FY);
+z3=(312FX,601FY);
+z4=(264FX,624FY);
+z5=(220FX,608FY);
+z6=(196FX,570FY);
+z7=(194FX,554FY);
+z8=(242FX,523FY);
+z9=(255FX,524FY);
+z10=(267FX,526FY);
+z11=(274FX,524FY);
+z12=(276FX,513FY);
+z13=(237FX,458FY);
+z14=(174FX,413FY);
+z15=(178FX,395FY);
+z16=(262FX,452FY);
+z17=(318FX,535FY);
+FuF (z1
+{3,12} .. {-1,9}z2
+{-1,15} .. {-6,8}z3
+{-11,16} .. {-21,-1}z4
+{-17,0} .. {-12,-11}z5
+{-13,-13} .. {-3,-12}z6
+{-1,-6} .. {0,-5}z7
+{2,-23} .. {30,2}z8
+-- z9
+-- z10
+-- z11
+{1,-2} .. {0,-6}z12
+{-6,-19} .. {-20,-18}z13
+{-20,-17} .. {-22,-13}z14
+-- z15
+{29,13} .. {27,25}z16
+{30,28} .. {7,28}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(40,379FX#,750FY#,249FY#);
+"parenleft";
+z1=(304FX,-250FY);
+z2=(311FX,-222FY);
+z3=(247FX,-154FY);
+z4=(258FX,250FY);
+z5=(352FX,522FY);
+z6=(443FX,650FY);
+z7=(547FX,724FY);
+z8=(553FX,750FY);
+z9=(267FX,554FY);
+z10=(109FX,253FY);
+z11=(116FX,-50FY);
+z12=(304FX,-250FY);
+FuF (z1
+-- z2
+{-29,20} .. {-13,26}z3
+{-40,80} .. {48,189}z4
+{29,117} .. {34,64}z5
+{28,53} .. {32,32}z6
+{24,24} .. {45,25}z7
+-- z8
+{-107,-33} .. {-84,-98}z9
+{-79,-92} .. {-27,-109}z10
+{-27,-109} .. {32,-93}z11
+{35,-100} .. {91,-33}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(41,379FX#,750FY#,249FY#);
+"parenright";
+z1=(396FX,247FY);
+z2=(389FX,550FY);
+z3=(201FX,750FY);
+z4=(194FX,722FY);
+z5=(258FX,654FY);
+z6=(247FX,251FY);
+z7=(153FX,-22FY);
+z8=(62FX,-150FY);
+z9=(-42FX,-224FY);
+z10=(-48FX,-250FY);
+z11=(225FX,-66FY);
+z12=(396FX,247FY);
+FuF (z1
+{27,109} .. {-32,93}z2
+{-35,100} .. {-90,33}z3
+-- z4
+{29,-19} .. {14,-26}z5
+{40,-80} .. {-47,-189}z6
+{-29,-118} .. {-33,-64}z7
+{-27,-51} .. {-33,-34}z8
+{-24,-23} .. {-46,-26}z9
+-- z10
+{97,31} .. {85,92}z11
+{85,91} .. {29,118}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(42,470FX#,646FY#,0FY#);
+"asterisk";
+z1=(489FX,335FY);
+z2=(453FX,415FY);
+z3=(381FX,443FY);
+z4=(502FX,479FY);
+z5=(513FX,568FY);
+z6=(439FX,520FY);
+z7=(373FX,473FY);
+z8=(402FX,545FY);
+z9=(424FX,633FY);
+z10=(398FX,646FY);
+z11=(344FX,600FY);
+z12=(343FX,548FY);
+z13=(337FX,476FY);
+z14=(237FX,566FY);
+z15=(205FX,554FY);
+z16=(186FX,523FY);
+z17=(196FX,486FY);
+z18=(223FX,475FY);
+z19=(294FX,456FY);
+z20=(314FX,444FY);
+z21=(229FX,415FY);
+z22=(146FX,363FY);
+z23=(179FX,322FY);
+z24=(261FX,372FY);
+z25=(322FX,414FY);
+z26=(320FX,405FY);
+z27=(291FX,340FY);
+z28=(264FX,286FY);
+z29=(295FX,241FY);
+z30=(354FX,292FY);
+z31=(358FX,416FY);
+z32=(401FX,368FY);
+z33=(455FX,321FY);
+z34=(489FX,335FY);
+FuF (z1
+{45,47} .. {-42,9}z2
+{-30,7} .. {-18,11}z3
+{45,23} .. {48,10}z4
+{56,18} .. {-51,0}z5
+{-13,-2} .. {-35,-28}z6
+{-29,-22} .. {-15,-10}z7
+{8,25} .. {11,23}z8
+{15,25} .. {-19,23}z9
+{-5,9} .. {-12,0}z10
+{-29,0} .. {-7,-27}z11
+{-2,-10} .. {2,-24}z12
+{2,-20} .. {-6,-27}z13
+{-18,17} .. {-17,0}z14
+{-13,-2} .. {-8,-7}z15
+{-10,-11} .. {-3,-10}z16
+{-3,-16} .. {12,-6}z17
+{12,-6} .. {6,-2}z18
+{24,-6} .. {23,-7}z19
+-- z20
+{-21,-11} .. {-36,-8}z21
+{-43,-9} .. {-7,-27}z22
+{-6,-27} .. {27,0}z23
+{32,0} .. {25,21}z24
+{25,22} .. {28,16}z25
+-- z26
+{-5,-19} .. {-14,-25}z27
+{-16,-28} .. {-1,-6}z28
+{-5,-27} .. {26,0}z29
+{30,3} .. {8,31}z30
+{-5,59} .. {14,58}z31
+{14,-9} .. {15,-23}z32
+{17,-29} .. {19,0}z33
+{12,1} .. {9,9}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(43,537FX#,488FY#,31FY#);
+"plus";
+z1=(356FX,188FY);
+z2=(577FX,188FY);
+z3=(597FX,266FY);
+z4=(375FX,266FY);
+z5=(431FX,488FY);
+z6=(352FX,488FY);
+z7=(297FX,266FY);
+z8=(76FX,266FY);
+z9=(57FX,188FY);
+z10=(277FX,188FY);
+z11=(223FX,-32FY);
+z12=(301FX,-32FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,234FX#,140FY#,151FY#);
+"comma";
+z1=(-13FX,-152FY);
+z2=(123FX,-58FY);
+z3=(165FX,55FY);
+z4=(142FX,114FY);
+z5=(87FX,140FY);
+z6=(33FX,120FY);
+z7=(12FX,67FY);
+z8=(18FX,38FY);
+z9=(51FX,0FY);
+z10=(75FX,-39FY);
+z11=(62FX,-71FY);
+z12=(-24FX,-132FY);
+FuF (z1
+{62,26} .. {29,37}z2
+{29,38} .. {-1,38}z3
+{-1,23} .. {-15,17}z4
+{-15,18} .. {-22,-1}z5
+{-21,0} .. {-15,-13}z6
+{-15,-15} .. {1,-21}z7
+{0,-12} .. {4,-7}z8
+{3,-6} .. {19,-19}z9
+{16,-17} .. {0,-10}z10
+{0,-11} .. {-8,-10}z11
+{-11,-14} .. {-46,-27}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(45,422FX#,266FY#,0FY#);
+"miuthyun";
+z1=(92FX,188FY);
+z2=(425FX,188FY);
+z3=(444FX,266FY);
+z4=(111FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,234FX#,138FY#,12FY#);
+"period";
+z1=(62FX,138FY);
+z2=(9FX,116FY);
+z3=(-12FX,63FY);
+z4=(10FX,9FY);
+z5=(64FX,-13FY);
+z6=(118FX,9FY);
+z7=(139FX,63FY);
+z8=(116FX,116FY);
+z9=(62FX,138FY);
+FuF (z1
+{-21,0} .. {-14,-15}z2
+{-15,-14} .. {1,-21}z3
+{0,-21} .. {14,-15}z4
+{15,-15} .. {21,0}z5
+{21,0} .. {15,15}z6
+{14,15} .. {0,21}z7
+{0,21} .. {-15,14}z8
+{-15,15} .. {-21,0}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(47,261FX#,637FY#,14FY#);
+"slash";
+z1=(385FX,637FY);
+z2=(320FX,637FY);
+z3=(-70FX,-14FY);
+z4=(-5FX,-14FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,470FX#,637FY#,12FY#);
+"zero";
+z1=(328FX,637FY);
+z2=(249FX,615FY);
+z3=(152FX,509FY);
+z4=(89FX,377FY);
+z5=(55FX,164FY);
+z6=(74FX,74FY);
+z7=(188FX,-13FY);
+z8=(327FX,53FY);
+z9=(451FX,305FY);
+z10=(468FX,456FY);
+z11=(452FX,542FY);
+z12=(328FX,637FY);
+z13=(332FX,606FY);
+z14=(374FX,556FY);
+z15=(352FX,415FY);
+z16=(262FX,97FY);
+z17=(223FX,27FY);
+z18=(192FX,17FY);
+z19=(162FX,30FY);
+z20=(149FX,65FY);
+z21=(157FX,140FY);
+z22=(190FX,277FY);
+z23=(258FX,511FY);
+z24=(308FX,601FY);
+z25=(332FX,606FY);
+FuF (z1
+{-27,0} .. {-26,-15}z2
+{-33,-19} .. {-31,-52}z3
+{-26,-42} .. {-16,-46}z4
+{-24,-72} .. {2,-70}z5
+{1,-32} .. {12,-27}z6
+{24,-59} .. {52,1}z7
+{53,1} .. {40,43}z8
+{59,63} .. {24,105}z9
+{12,54} .. {-1,46}z10
+{-1,28} .. {-9,29}z11
+{-22,64} .. {-61,0}z12
+);
+FuF (z13
+{28,-1} .. {0,-33}z14
+{1,-35} .. {-15,-59}z15
+{-36,-133} .. {-25,-79}z16
+{-10,-33} .. {-16,-14}z17
+{-8,-7} .. {-13,0}z18
+{-12,0} .. {-8,8}z19
+{-9,9} .. {0,15}z20
+{0,23} .. {5,27}z21
+{3,21} .. {18,70}z22
+{25,91} .. {21,65}z23
+{17,51} .. {17,9}z24
+{7,3} .. {9,0}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(49,470FX#,637FY#,0FY#);
+"one";
+z1=(414FX,637FY);
+z2=(394FX,637FY);
+z3=(161FX,581FY);
+z4=(165FX,564FY);
+z5=(210FX,567FY);
+z6=(260FX,522FY);
+z7=(258FX,500FY);
+z8=(153FX,113FY);
+z9=(136FX,62FY);
+z10=(98FX,25FY);
+z11=(33FX,17FY);
+z12=(28FX,0FY);
+z13=(343FX,0FY);
+z14=(347FX,17FY);
+z15=(287FX,23FY);
+z16=(260FX,61FY);
+z17=(271FX,113FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{20,2} .. {9,0}z5
+{33,0} .. {0,-30}z6
+{0,-7} .. {-2,-7}z7
+-- z8
+{-7,-25} .. {-4,-9}z9
+{-9,-18} .. {-16,-6}z10
+{-12,-5} .. {-31,-1}z11
+-- z12
+-- z13
+-- z14
+{-34,2} .. {-6,2}z15
+{-18,7} .. {0,18}z16
+{0,8} .. {7,26}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(50,470FX#,637FY#,0FY#);
+"two";
+z1=(341FX,0FY);
+z2=(411FX,172FY);
+z3=(389FX,172FY);
+z4=(341FX,116FY);
+z5=(266FX,106FY);
+z6=(145FX,106FY);
+z7=(348FX,292FY);
+z8=(422FX,386FY);
+z9=(452FX,502FY);
+z10=(402FX,601FY);
+z11=(296FX,637FY);
+z12=(112FX,485FY);
+z13=(130FX,477FY);
+z14=(238FX,548FY);
+z15=(305FX,521FY);
+z16=(332FX,453FY);
+z17=(300FX,335FY);
+z18=(223FX,237FY);
+z19=(9FX,17FY);
+z20=(10FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-14,-29} .. {-18,-9}z4
+{-15,-7} .. {-35,0}z5
+-- z6
+{101,87} .. {34,36}z7
+{34,37} .. {15,26}z8
+{21,38} .. {-1,40}z9
+{-1,39} .. {-32,27}z10
+{-30,24} .. {-41,-1}z11
+{-89,0} .. {-34,-101}z12
+-- z13
+{30,47} .. {42,0}z14
+{27,0} .. {18,-18}z15
+{18,-18} .. {0,-27}z16
+{1,-40} .. {-22,-39}z17
+{-14,-23} .. {-37,-43}z18
+{-60,-69} .. {-83,-78}z19
+-- z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(51,470FX#,637FY#,12FY#);
+"three";
+z1=(120FX,339FY);
+z2=(204FX,315FY);
+z3=(279FX,171FY);
+z4=(249FX,64FY);
+z5=(200FX,35FY);
+z6=(143FX,57FY);
+z7=(88FX,90FY);
+z8=(67FX,94FY);
+z9=(31FX,81FY);
+z10=(16FX,46FY);
+z11=(37FX,8FY);
+z12=(120FX,-13FY);
+z13=(302FX,47FY);
+z14=(392FX,227FY);
+z15=(359FX,326FY);
+z16=(287FX,375FY);
+z17=(369FX,406FY);
+z18=(439FX,521FY);
+z19=(395FX,607FY);
+z20=(301FX,637FY);
+z21=(138FX,530FY);
+z22=(156FX,520FY);
+z23=(249FX,580FY);
+z24=(304FX,559FY);
+z25=(326FX,507FY);
+z26=(228FX,386FY);
+z27=(125FX,359FY);
+FuF (z1
+{35,-4} .. {21,-12}z2
+{49,-27} .. {1,-69}z3
+{1,-43} .. {-21,-28}z4
+{-14,-19} .. {-19,0}z5
+{-15,0} .. {-23,15}z6
+{-31,20} .. {-5,2}z7
+{-7,3} .. {-6,0}z8
+{-15,0} .. {-9,-9}z9
+{-10,-9} .. {0,-14}z10
+{1,-16} .. {13,-9}z11
+{19,-14} .. {36,0}z12
+{69,1} .. {52,40}z13
+{62,48} .. {-2,73}z14
+{-1,38} .. {-21,28}z15
+{-14,18} .. {-34,14}z16
+{37,11} .. {17,10}z17
+{48,29} .. {-1,48}z18
+{-1,35} .. {-28,22}z19
+{-27,20} .. {-36,0}z20
+{-62,0} .. {-46,-71}z21
+-- z22
+{30,41} .. {32,-1}z23
+{21,0} .. {15,-14}z24
+{15,-14} .. {0,-20}z25
+{0,-51} .. {-66,-30}z26
+{-27,-12} .. {-42,-6}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(52,470FX#,637FY#,12FY#);
+"four";
+z1=(224FX,132FY);
+z2=(185FX,-13FY);
+z3=(289FX,-13FY);
+z4=(329FX,132FY);
+z5=(399FX,132FY);
+z6=(422FX,209FY);
+z7=(350FX,209FY);
+z8=(467FX,637FY);
+z9=(407FX,637FY);
+z10=(41FX,209FY);
+z11=(20FX,132FY);
+z12=(246FX,209FY);
+z13=(86FX,209FY);
+z14=(318FX,482FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,470FX#,624FY#,13FY#);
+"five";
+z1=(234FX,624FY);
+z2=(111FX,363FY);
+z3=(203FX,343FY);
+z4=(278FX,271FY);
+z5=(306FX,169FY);
+z6=(276FX,68FY);
+z7=(217FX,37FY);
+z8=(166FX,58FY);
+z9=(118FX,93FY);
+z10=(89FX,99FY);
+z11=(54FX,84FY);
+z12=(41FX,49FY);
+z13=(77FX,-1FY);
+z14=(141FX,-13FY);
+z15=(275FX,23FY);
+z16=(373FX,122FY);
+z17=(406FX,251FY);
+z18=(377FX,353FY);
+z19=(195FX,461FY);
+z20=(222FX,517FY);
+z21=(440FX,517FY);
+z22=(469FX,624FY);
+FuF (z1
+-- z2
+{38,-2} .. {23,-12}z3
+{31,-17} .. {19,-31}z4
+{18,-32} .. {0,-36}z5
+{0,-42} .. {-20,-26}z6
+{-17,-21} .. {-23,0}z7
+{-18,1} .. {-16,14}z8
+{-27,21} .. {-5,2}z9
+{-9,4} .. {-10,0}z10
+{-14,-1} .. {-10,-9}z11
+{-9,-10} .. {1,-14}z12
+{1,-22} .. {24,-11}z13
+{18,-8} .. {25,0}z14
+{48,0} .. {41,24}z15
+{42,24} .. {24,42}z16
+{23,42} .. {-1,44}z17
+{-1,36} .. {-18,32}z18
+{-34,58} .. {-88,14}z19
+-- z20
+-- z21
+-- z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(54,470FX#,642FY#,12FY#);
+"six";
+z1=(475FX,642FY);
+z2=(205FX,517FY);
+z3=(97FX,362FY);
+z4=(59FX,176FY);
+z5=(100FX,43FY);
+z6=(223FX,-13FY);
+z7=(390FX,80FY);
+z8=(438FX,249FY);
+z9=(407FX,351FY);
+z10=(314FX,398FY);
+z11=(240FX,384FY);
+z12=(475FX,624FY);
+z13=(225FX,349FY);
+z14=(266FX,356FY);
+z15=(302FX,338FY);
+z16=(322FX,280FY);
+z17=(293FX,114FY);
+z18=(219FX,16FY);
+z19=(181FX,33FY);
+z20=(165FX,85FY);
+z21=(177FX,181FY);
+z22=(225FX,349FY);
+FuF (z1
+{-100,-8} .. {-80,-76}z2
+{-46,-44} .. {-26,-60}z3
+{-26,-61} .. {1,-63}z4
+{1,-55} .. {26,-34}z5
+{29,-37} .. {53,0}z6
+{70,0} .. {41,62}z7
+{34,51} .. {-2,62}z8
+{-1,41} .. {-20,27}z9
+{-23,32} .. {-40,0}z10
+{-21,0} .. {-29,-9}z11
+{57,132} .. {99,27}z12
+);
+FuF (z13
+{18,4} .. {10,0}z14
+{14,0} .. {10,-12}z15
+{13,-16} .. {1,-23}z16
+{0,-45} .. {-20,-66}z17
+{-20,-66} .. {-30,1}z18
+{-16,0} .. {-10,11}z19
+{-10,11} .. {0,24}z20
+{0,26} .. {8,38}z21
+{13,58} .. {19,54}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(55,470FX#,624FY#,12FY#);
+"seven";
+z1=(189FX,624FY);
+z2=(108FX,459FY);
+z3=(126FX,459FY);
+z4=(187FX,505FY);
+z5=(265FX,514FY);
+z6=(416FX,514FY);
+z7=(124FX,8FY);
+z8=(162FX,-13FY);
+z9=(517FX,604FY);
+z10=(516FX,624FY);
+FuF (z1
+-- z2
+-- z3
+{17,23} .. {24,8}z4
+{17,6} .. {35,0}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+);
+lbl (range 1 thru 10);
+endchar;
+
+beginchar(56,470FX#,637FY#,12FY#);
+"eight";
+z1=(194FX,326FY);
+z2=(115FX,284FY);
+z3=(38FX,137FY);
+z4=(91FX,24FY);
+z5=(211FX,-13FY);
+z6=(356FX,45FY);
+z7=(412FX,188FY);
+z8=(385FX,276FY);
+z9=(329FX,353FY);
+z10=(394FX,383FY);
+z11=(459FX,503FY);
+z12=(416FX,598FY);
+z13=(302FX,637FY);
+z14=(177FX,590FY);
+z15=(133FX,473FY);
+z16=(194FX,326FY);
+z17=(310FX,374FY);
+z18=(250FX,506FY);
+z19=(271FX,592FY);
+z20=(308FX,610FY);
+z21=(341FX,590FY);
+z22=(357FX,527FY);
+z23=(341FX,411FY);
+z24=(310FX,374FY);
+z25=(211FX,305FY);
+z26=(267FX,234FY);
+z27=(292FX,148FY);
+z28=(260FX,47FY);
+z29=(204FX,17FY);
+z30=(141FX,101FY);
+z31=(178FX,269FY);
+z32=(211FX,305FY);
+FuF (z1
+{-35,-14} .. {-18,-14}z2
+{-53,-41} .. {1,-57}z3
+{1,-48} .. {34,-28}z4
+{31,-25} .. {48,0}z5
+{58,0} .. {38,38}z6
+{39,38} .. {-2,57}z7
+{-1,30} .. {-17,29}z8
+{-8,14} .. {-29,37}z9
+{30,11} .. {13,9}z10
+{44,32} .. {-1,48}z11
+{0,37} .. {-28,26}z12
+{-28,27} .. {-48,-1}z13
+{-52,0} .. {-31,-31}z14
+{-30,-32} .. {1,-46}z15
+{1,-47} .. {40,-51}z16
+);
+FuF (z17
+{-40,48} .. {-1,40}z18
+{0,37} .. {14,21}z19
+{9,12} .. {16,0}z20
+{12,-1} .. {10,-13}z21
+{10,-12} .. {1,-30}z22
+{0,-49} .. {-11,-28}z23
+{-5,-13} .. {-16,-12}z24
+);
+FuF (z25
+{26,-29} .. {11,-19}z26
+{16,-27} .. {0,-30}z27
+{0,-39} .. {-22,-28}z28
+{-16,-20} .. {-21,0}z29
+{-41,0} .. {-1,56}z30
+{-1,69} .. {26,43}z31
+{6,11} .. {16,13}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(57,470FX#,641FY#,13FY#);
+"nine";
+z1=(46FX,-13FY);
+z2=(316FX,111FY);
+z3=(424FX,267FY);
+z4=(462FX,453FY);
+z5=(421FX,585FY);
+z6=(299FX,642FY);
+z7=(132FX,549FY);
+z8=(83FX,380FY);
+z9=(114FX,277FY);
+z10=(208FX,231FY);
+z11=(282FX,245FY);
+z12=(46FX,6FY);
+z13=(296FX,280FY);
+z14=(255FX,274FY);
+z15=(220FX,292FY);
+z16=(200FX,349FY);
+z17=(228FX,515FY);
+z18=(303FX,613FY);
+z19=(356FX,544FY);
+z20=(345FX,448FY);
+z21=(296FX,280FY);
+FuF (z1
+{102,8} .. {78,75}z2
+{46,45} .. {26,59}z3
+{26,61} .. {-1,63}z4
+{-1,54} .. {-26,33}z5
+{-29,38} .. {-53,0}z6
+{-71,0} .. {-41,-62}z7
+{-34,-51} .. {1,-62}z8
+{1,-41} .. {19,-28}z9
+{23,-31} .. {40,1}z10
+{21,0} .. {29,9}z11
+{-58,-132} .. {-99,-27}z12
+);
+FuF (z13
+{-17,-4} .. {-11,0}z14
+{-13,0} .. {-10,12}z15
+{-13,16} .. {0,22}z16
+{-1,45} .. {20,66}z17
+{20,66} .. {30,-1}z18
+{35,0} .. {0,-46}z19
+{1,-28} .. {-8,-36}z20
+{-12,-56} .. {-20,-56}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(58,313FX#,425FY#,12FY#);
+"colon";
+z1=(193FX,426FY);
+z2=(140FX,404FY);
+z3=(118FX,350FY);
+z4=(141FX,297FY);
+z5=(195FX,274FY);
+z6=(249FX,296FY);
+z7=(270FX,350FY);
+z8=(247FX,404FY);
+z9=(193FX,426FY);
+z10=(115FX,138FY);
+z11=(62FX,116FY);
+z12=(40FX,63FY);
+z13=(63FX,9FY);
+z14=(117FX,-13FY);
+z15=(171FX,9FY);
+z16=(192FX,63FY);
+z17=(169FX,116FY);
+z18=(115FX,138FY);
+FuF (z1
+{-21,0} .. {-14,-14}z2
+{-15,-15} .. {0,-21}z3
+{1,-21} .. {15,-14}z4
+{15,-15} .. {21,0}z5
+{22,0} .. {15,14}z6
+{14,15} .. {0,21}z7
+{0,21} .. {-15,15}z8
+{-15,15} .. {-21,0}z9
+);
+FuF (z10
+{-21,0} .. {-14,-15}z11
+{-15,-14} .. {0,-21}z12
+{1,-21} .. {15,-15}z13
+{15,-15} .. {21,0}z14
+{21,0} .. {15,15}z15
+{14,15} .. {0,21}z16
+{0,21} .. {-15,14}z17
+{-15,15} .. {-21,0}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(59,313FX#,426FY#,151FY#);
+"semicolon";
+z1=(193FX,426FY);
+z2=(139FX,404FY);
+z3=(118FX,350FY);
+z4=(142FX,295FY);
+z5=(196FX,273FY);
+z6=(250FX,296FY);
+z7=(271FX,350FY);
+z8=(248FX,404FY);
+z9=(193FX,426FY);
+z10=(16FX,-152FY);
+z11=(152FX,-58FY);
+z12=(194FX,55FY);
+z13=(172FX,114FY);
+z14=(116FX,140FY);
+z15=(63FX,120FY);
+z16=(41FX,67FY);
+z17=(48FX,38FY);
+z18=(81FX,0FY);
+z19=(105FX,-39FY);
+z20=(92FX,-71FY);
+z21=(5FX,-132FY);
+FuF (z1
+{-21,0} .. {-15,-15}z2
+{-15,-15} .. {1,-21}z3
+{1,-22} .. {15,-15}z4
+{15,-15} .. {21,0}z5
+{21,0} .. {15,15}z6
+{15,14} .. {-1,22}z7
+{0,21} .. {-15,15}z8
+{-16,15} .. {-21,-1}z9
+);
+FuF (z10
+{63,26} .. {28,37}z11
+{29,38} .. {-2,38}z12
+{0,23} .. {-14,17}z13
+{-15,18} .. {-23,-1}z14
+{-20,0} .. {-15,-13}z15
+{-15,-15} .. {0,-21}z16
+{1,-12} .. {4,-7}z17
+{3,-6} .. {19,-19}z18
+{16,-17} .. {0,-10}z19
+{-1,-11} .. {-8,-10}z20
+{-11,-14} .. {-47,-27}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(60,480FX#,392FY#,0FY#);
+"guillemotleft";
+z1=(551FX,381FY);
+z2=(541FX,387FY);
+z3=(522FX,392FY);
+z4=(487FX,367FY);
+z5=(399FX,302FY);
+z6=(278FX,214FY);
+z7=(348FX,131FY);
+z8=(428FX,32FY);
+z9=(449FX,34FY);
+z10=(463FX,41FY);
+z11=(425FX,132FY);
+z12=(385FX,212FY);
+z13=(551FX,381FY);
+z14=(368FX,385FY);
+z15=(361FX,389FY);
+z16=(341FX,392FY);
+z17=(306FX,367FY);
+z18=(218FX,302FY);
+z19=(97FX,214FY);
+z20=(166FX,131FY);
+z21=(247FX,32FY);
+z22=(267FX,34FY);
+z23=(282FX,41FY);
+z24=(244FX,132FY);
+z25=(204FX,212FY);
+z26=(368FX,385FY);
+FuF (z1
+{-1,2} .. {-6,2}z2
+{-7,2} .. {-6,1}z3
+{-1,0} .. {-22,-17}z4
+{-35,-26} .. {-24,-17}z5
+{-71,-52} .. {-10,-7}z6
+{11,-14} .. {36,-42}z7
+{21,-24} .. {33,-42}z8
+{9,0} .. {5,1}z9
+{9,2} .. {1,2}z10
+{1,8} .. {-27,53}z11
+{-16,33} .. {-10,20}z12
+{110,108} .. {0,5}z13
+);
+FuF (z14
+{-1,2} .. {-4,0}z15
+{-4,1} .. {-9,1}z16
+{-1,0} .. {-22,-17}z17
+{-41,-31} .. {-17,-12}z18
+{-71,-52} .. {-10,-7}z19
+{14,-17} .. {32,-38}z20
+{26,-30} .. {28,-36}z21
+{8,0} .. {5,1}z22
+{9,2} .. {1,2}z23
+{1,7} .. {-27,54}z24
+-- z25
+{108,105} .. {1,10}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(61,537FX#,421FY#,0FY#);
+"equal";
+z1=(24FX,352FY);
+z2=(537FX,352FY);
+z3=(554FX,421FY);
+z4=(41FX,421FY);
+z5=(-14FX,201FY);
+z6=(500FX,201FY);
+z7=(517FX,270FY);
+z8=(4FX,270FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,480FX#,391FY#,0FY#);
+"guillemotright";
+z1=(489FX,210FY);
+z2=(435FX,275FY);
+z3=(339FX,391FY);
+z4=(318FX,390FY);
+z5=(304FX,382FY);
+z6=(342FX,292FY);
+z7=(382FX,211FY);
+z8=(213FX,41FY);
+z9=(245FX,31FY);
+z10=(280FX,57FY);
+z11=(368FX,122FY);
+z12=(489FX,210FY);
+z13=(308FX,210FY);
+z14=(254FX,275FY);
+z15=(158FX,391FY);
+z16=(137FX,390FY);
+z17=(122FX,382FY);
+z18=(161FX,292FY);
+z19=(201FX,211FY);
+z20=(35FX,41FY);
+z21=(43FX,37FY);
+z22=(64FX,31FY);
+z23=(99FX,57FY);
+z24=(186FX,122FY);
+z25=(308FX,210FY);
+FuF (z1
+{-16,21} .. {-20,22}z2
+{-47,55} .. {-17,22}z3
+{-9,0} .. {-5,-1}z4
+{-9,-3} .. {0,-3}z5
+{-2,-7} .. {27,-53}z6
+{16,-34} .. {10,-21}z7
+{-111,-106} .. {-1,-8}z8
+{0,-2} .. {22,-5}z9
+{1,0} .. {22,17}z10
+{45,33} .. {14,10}z11
+{56,40} .. {25,18}z12
+);
+FuF (z13
+{-16,21} .. {-20,22}z14
+{-47,55} .. {-17,22}z15
+{-9,0} .. {-5,-1}z16
+{-9,-3} .. {-1,-3}z17
+{-1,-6} .. {27,-53}z18
+-- z19
+{-109,-102} .. {-2,-12}z20
+{1,-1} .. {4,-1}z21
+{4,-2} .. {10,-2}z22
+{1,0} .. {22,17}z23
+{32,24} .. {26,20}z24
+{69,50} .. {12,9}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(63,270FX#,697FY#,0FY#);
+"paruyg";
+z1=(335FX,560FY);
+z2=(366FX,621FY);
+z3=(366FX,659FY);
+z4=(348FX,687FY);
+z5=(123FX,579FY);
+z6=(97FX,546FY);
+z7=(47FX,448FY);
+z8=(84FX,445FY);
+z9=(158FX,556FY);
+z10=(248FX,605FY);
+z11=(269FX,572FY);
+z12=(223FX,523FY);
+z13=(219FX,522FY);
+z14=(202FX,523FY);
+z15=(188FX,490FY);
+z16=(209FX,488FY);
+z17=(281FX,513FY);
+z18=(335FX,560FY);
+FuF (z1
+{15,20} .. {5,21}z2
+{3,14} .. {-3,11}z3
+{-3,11} .. {-9,7}z4
+{-56,42} .. {-41,-56}z5
+{-16,-21} .. {-1,-1}z6
+{-21,-31} .. {-11,-34}z7
+-- z8
+{16,37} .. {31,30}z9
+{19,19} .. {24,1}z10
+{19,-4} .. {-4,-18}z11
+{-5,-19} .. {-19,-8}z12
+{-1,-1} .. {-2,0}z13
+{-3,1} .. {-10,0}z14
+-- z15
+-- z16
+{19,1} .. {29,15}z17
+{20,10} .. {16,21}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(64,783FX#,638FY#,203FY#);
+"at";
+z1=(595FX,426FY);
+z2=(566FX,371FY);
+z3=(518FX,443FY);
+z4=(469FX,432FY);
+z5=(378FX,374FY);
+z6=(195FX,102FY);
+z7=(195FX,33FY);
+z8=(247FX,0FY);
+z9=(291FX,10FY);
+z10=(361FX,58FY);
+z11=(442FX,146FY);
+z12=(415FX,81FY);
+z13=(488FX,0FY);
+z14=(761FX,154FY);
+z15=(846FX,328FY);
+z16=(847FX,485FY);
+z17=(761FX,598FY);
+z18=(593FX,639FY);
+z19=(351FX,583FY);
+z20=(150FX,422FY);
+z21=(38FX,201FY);
+z22=(81FX,-90FY);
+z23=(345FX,-204FY);
+z24=(608FX,-131FY);
+z25=(821FX,76FY);
+z26=(793FX,76FY);
+z27=(598FX,-111FY);
+z28=(352FX,-178FY);
+z29=(118FX,-76FY);
+z30=(83FX,185FY);
+z31=(187FX,398FY);
+z32=(376FX,556FY);
+z33=(596FX,610FY);
+z34=(788FX,529FY);
+z35=(818FX,319FY);
+z36=(749FX,174FY);
+z37=(659FX,83FY);
+z38=(548FX,33FY);
+z39=(524FX,44FY);
+z40=(520FX,70FY);
+z41=(552FX,141FY);
+z42=(708FX,431FY);
+z43=(521FX,410FY);
+z44=(539FX,398FY);
+z45=(539FX,350FY);
+z46=(430FX,158FY);
+z47=(337FX,84FY);
+z48=(320FX,127FY);
+z49=(411FX,303FY);
+z50=(521FX,410FY);
+FuF (z1
+-- z2
+{3,49} .. {-36,-1}z3
+{-16,0} .. {-16,-7}z4
+{-34,-16} .. {-27,-23}z5
+{-96,-79} .. {-26,-102}z6
+{-7,-28} .. {7,-18}z7
+{8,-22} .. {26,0}z8
+{16,0} .. {13,7}z9
+{23,10} .. {24,22}z10
+{18,16} .. {36,43}z11
+{-14,-28} .. {-4,-16}z12
+{-13,-54} .. {61,0}z13
+{103,0} .. {79,103}z14
+{41,53} .. {15,63}z15
+{15,57} .. {-14,47}z16
+{-15,49} .. {-43,27}z17
+{-45,27} .. {-67,0}z18
+{-83,0} .. {-78,-37}z19
+{-78,-37} .. {-56,-70}z20
+{-55,-67} .. {-20,-80}z21
+{-29,-118} .. {58,-76}z22
+{58,-76} .. {119,0}z23
+{93,0} .. {82,49}z24
+{83,48} .. {59,90}z25
+-- z26
+{-49,-78} .. {-81,-46}z27
+{-79,-44} .. {-85,0}z28
+{-105,0} .. {-51,68}z29
+{-50,67} .. {27,107}z30
+{18,76} .. {51,66}z31
+{54,69} .. {72,36}z32
+{71,36} .. {76,0}z33
+{86,0} .. {42,-54}z34
+{41,-54} .. {-21,-86}z35
+{-13,-51} .. {-33,-45}z36
+{-24,-32} .. {-36,-28}z37
+{-44,-34} .. {-30,0}z38
+{-10,0} .. {-6,7}z39
+{-6,6} .. {3,11}z40
+{4,16} .. {17,31}z41
+-- z42
+);
+FuF (z43
+{8,0} .. {4,-8}z44
+{5,-12} .. {-5,-20}z45
+{-16,-64} .. {-56,-64}z46
+{-42,-49} .. {-20,0}z47
+{-19,0} .. {7,29}z48
+{11,45} .. {49,72}z49
+{49,72} .. {25,0}z50
+);
+lbl (range 1 thru 50);
+endchar;
+
+beginchar(65,737FX#,624FY#,13FY#);
+"A";
+z1=(490FX,34FY);
+z2=(528FX,-4FY);
+z3=(588FX,-13FY);
+z4=(685FX,6FY);
+z5=(684FX,34FY);
+z6=(660FX,29FY);
+z7=(622FX,45FY);
+z8=(587FX,117FY);
+z9=(652FX,258FY);
+z10=(718FX,523FY);
+z11=(751FX,589FY);
+z12=(827FX,607FY);
+z13=(832FX,624FY);
+z14=(523FX,624FY);
+z15=(519FX,607FY);
+z16=(582FX,569FY);
+z17=(574FX,523FY);
+z18=(528FX,337FY);
+z19=(577FX,308FY);
+z20=(593FX,256FY);
+z21=(586FX,204FY);
+z22=(565FX,152FY);
+z23=(535FX,186FY);
+z24=(493FX,197FY);
+z25=(428FX,178FY);
+z26=(364FX,131FY);
+z27=(379FX,112FY);
+z28=(416FX,123FY);
+z29=(451FX,104FY);
+z30=(471FX,58FY);
+z31=(352FX,19FY);
+z32=(330FX,22FY);
+z33=(285FX,107FY);
+z34=(296FX,197FY);
+z35=(378FX,523FY);
+z36=(411FX,589FY);
+z37=(475FX,607FY);
+z38=(480FX,624FY);
+z39=(175FX,624FY);
+z40=(171FX,607FY);
+z41=(226FX,597FY);
+z42=(242FX,568FY);
+z43=(235FX,523FY);
+z44=(169FX,258FY);
+z45=(154FX,149FY);
+z46=(343FX,-13FY);
+z47=(490FX,34FY);
+FuF (z1
+{6,-17} .. {19,-8}z2
+{17,-7} .. {23,1}z3
+{40,1} .. {25,12}z4
+-- z5
+{-11,-4} .. {-4,0}z6
+{-16,1} .. {-9,10}z7
+{-13,13} .. {-10,35}z8
+{27,30} .. {16,64}z9
+-- z10
+{8,33} .. {14,11}z11
+{13,12} .. {37,0}z12
+-- z13
+-- z14
+-- z15
+{41,0} .. {1,-25}z16
+{0,-9} .. {-5,-22}z17
+-- z18
+{22,-5} .. {10,-15}z19
+{10,-14} .. {0,-20}z20
+{0,-17} .. {-5,-18}z21
+{-6,-19} .. {-8,-15}z22
+{-9,16} .. {-11,7}z23
+{-14,8} .. {-14,0}z24
+{-21,0} .. {-22,-12}z25
+{-25,-13} .. {-18,-18}z26
+-- z27
+{16,8} .. {8,0}z28
+{15,0} .. {9,-13}z29
+{4,-5} .. {9,-26}z30
+{-39,-27} .. {-41,1}z31
+{-8,0} .. {-6,2}z32
+{-30,8} .. {0,48}z33
+{0,29} .. {8,31}z34
+-- z35
+{7,31} .. {15,13}z36
+{13,11} .. {30,0}z37
+-- z38
+-- z39
+-- z40
+{26,0} .. {10,-6}z41
+{11,-6} .. {0,-13}z42
+{-3,-20} .. {-2,-10}z43
+-- z44
+{-11,-43} .. {1,-30}z45
+{3,-109} .. {124,1}z46
+{63,0} .. {34,31}z47
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 47);
+endchar;
+
+beginchar(66,697FX#,637FY#,0FY#);
+"B";
+z1=(297FX,200FY);
+z2=(451FX,200FY);
+z3=(491FX,174FY);
+z4=(490FX,158FY);
+z5=(484FX,136FY);
+z6=(647FX,136FY);
+z7=(654FX,168FY);
+z8=(656FX,184FY);
+z9=(486FX,241FY);
+z10=(308FX,241FY);
+z11=(350FX,411FY);
+z12=(404FX,548FY);
+z13=(498FX,606FY);
+z14=(551FX,585FY);
+z15=(567FX,531FY);
+z16=(546FX,409FY);
+z17=(523FX,315FY);
+z18=(666FX,315FY);
+z19=(680FX,373FY);
+z20=(693FX,473FY);
+z21=(649FX,590FY);
+z22=(505FX,637FY);
+z23=(295FX,554FY);
+z24=(197FX,373FY);
+z25=(130FX,104FY);
+z26=(96FX,36FY);
+z27=(24FX,18FY);
+z28=(19FX,0FY);
+z29=(331FX,0FY);
+z30=(335FX,18FY);
+z31=(282FX,26FY);
+z32=(266FX,58FY);
+z33=(274FX,105FY);
+FuF (z1
+-- z2
+{27,0} .. {0,-17}z3
+{0,-7} .. {0,-4}z4
+-- z5
+-- z6
+-- z7
+{2,3} .. {0,8}z8
+{-1,38} .. {-113,0}z9
+-- z10
+-- z11
+{14,58} .. {22,33}z12
+{26,39} .. {37,0}z13
+{24,-1} .. {11,-13}z14
+{10,-12} .. {1,-24}z15
+{0,-25} .. {-14,-57}z16
+-- z17
+-- z18
+-- z19
+{10,38} .. {-1,29}z20
+{-2,51} .. {-28,27}z21
+{-32,32} .. {-64,-1}z22
+{-84,0} .. {-56,-55}z23
+{-47,-46} .. {-19,-74}z24
+-- z25
+{-8,-34} .. {-14,-11}z26
+{-15,-12} .. {-32,0}z27
+-- z28
+-- z29
+-- z30
+{-25,0} .. {-11,5}z31
+{-10,7} .. {0,14}z32
+{0,10} .. {6,21}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(67,655FX#,629FY#,8FY#);
+"C";
+z1=(243FX,203FY);
+z2=(85FX,204FY);
+z3=(80FX,160FY);
+z4=(159FX,29FY);
+z5=(314FX,-8FY);
+z6=(527FX,58FY);
+z7=(636FX,210FY);
+z8=(646FX,280FY);
+z9=(492FX,420FY);
+z10=(580FX,444FY);
+z11=(628FX,510FY);
+z12=(631FX,538FY);
+z13=(588FX,607FY);
+z14=(474FX,629FY);
+z15=(328FX,596FY);
+z16=(254FX,508FY);
+z17=(251FX,490FY);
+z18=(277FX,440FY);
+z19=(342FX,418FY);
+z20=(202FX,376FY);
+z21=(112FX,289FY);
+z22=(276FX,289FY);
+z23=(320FX,363FY);
+z24=(411FX,396FY);
+z25=(496FX,303FY);
+z26=(484FX,212FY);
+z27=(319FX,23FY);
+z28=(254FX,49FY);
+z29=(232FX,119FY);
+z30=(243FX,203FY);
+z31=(464FX,597FY);
+z32=(492FX,563FY);
+z33=(484FX,508FY);
+z34=(462FX,460FY);
+z35=(419FX,431FY);
+z36=(390FX,471FY);
+z37=(395FX,508FY);
+z38=(464FX,597FY);
+FuF (z1
+-- z2
+{-4,-16} .. {0,-13}z3
+{2,-57} .. {51,-31}z4
+{42,-25} .. {62,1}z5
+{81,0} .. {61,43}z6
+{57,41} .. {16,60}z7
+{7,29} .. {0,18}z8
+{-3,75} .. {-100,19}z9
+{35,0} .. {23,15}z10
+{25,17} .. {7,27}z11
+{2,9} .. {0,10}z12
+{0,31} .. {-28,15}z13
+{-30,15} .. {-46,-1}z14
+{-57,0} .. {-40,-21}z15
+{-41,-22} .. {-9,-37}z16
+{-2,-7} .. {0,-4}z17
+{1,-21} .. {16,-13}z18
+{17,-13} .. {27,-2}z19
+{-53,-5} .. {-40,-23}z20
+{-41,-24} .. {-19,-34}z21
+-- z22
+{8,30} .. {22,19}z23
+{27,22} .. {34,0}z24
+{55,-1} .. {1,-62}z25
+{1,-27} .. {-9,-33}z26
+{-33,-126} .. {-77,0}z27
+{-30,0} .. {-14,17}z28
+{-15,18} .. {0,29}z29
+{0,25} .. {7,31}z30
+);
+FuF (z31
+{19,0} .. {0,-23}z32
+{0,-15} .. {-5,-22}z33
+{-5,-17} .. {-10,-14}z34
+{-13,-19} .. {-15,0}z35
+{-19,0} .. {-1,27}z36
+{0,11} .. {3,13}z37
+{15,59} .. {31,0}z38
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(68,814FX#,637FY#,0FY#);
+"D";
+z1=(546FX,104FY);
+z2=(569FX,200FY);
+z3=(610FX,200FY);
+z4=(651FX,177FY);
+z5=(648FX,158FY);
+z6=(643FX,136FY);
+z7=(805FX,136FY);
+z8=(813FX,168FY);
+z9=(814FX,182FY);
+z10=(645FX,241FY);
+z11=(579FX,241FY);
+z12=(612FX,373FY);
+z13=(627FX,480FY);
+z14=(438FX,637FY);
+z15=(227FX,558FY);
+z16=(129FX,373FY);
+z17=(115FX,315FY);
+z18=(258FX,315FY);
+z19=(280FX,404FY);
+z20=(336FX,547FY);
+z21=(429FX,606FY);
+z22=(494FX,522FY);
+z23=(477FX,406FY);
+z24=(401FX,102FY);
+z25=(365FX,32FY);
+z26=(287FX,16FY);
+z27=(283FX,0FY);
+z28=(604FX,0FY);
+z29=(608FX,18FY);
+z30=(552FX,24FY);
+z31=(537FX,53FY);
+z32=(539FX,78FY);
+z33=(546FX,104FY);
+FuF (z1
+-- z2
+-- z3
+{27,0} .. {1,-15}z4
+{0,-5} .. {-2,-8}z5
+-- z6
+-- z7
+-- z8
+{1,5} .. {-1,4}z9
+{0,40} .. {-112,0}z10
+-- z11
+-- z12
+{11,42} .. {-1,29}z13
+{-2,105} .. {-124,0}z14
+{-87,0} .. {-54,-53}z15
+{-46,-44} .. {-20,-79}z16
+-- z17
+-- z18
+-- z19
+{15,61} .. {22,34}z20
+{26,40} .. {36,0}z21
+{42,-1} .. {1,-55}z22
+{1,-31} .. {-12,-46}z23
+-- z24
+{-9,-35} .. {-15,-12}z25
+{-15,-11} .. {-38,0}z26
+-- z27
+-- z28
+-- z29
+{-30,1} .. {-7,3}z30
+{-10,5} .. {0,15}z31
+{0,8} .. {2,9}z32
+{3,12} .. {2,6}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(69,692FX#,624FY#,13FY#);
+"E";
+z1=(548FX,431FY);
+z2=(355FX,431FY);
+z3=(378FX,523FY);
+z4=(411FX,591FY);
+z5=(485FX,607FY);
+z6=(489FX,624FY);
+z7=(175FX,624FY);
+z8=(171FX,607FY);
+z9=(227FX,600FY);
+z10=(242FX,572FY);
+z11=(235FX,523FY);
+z12=(169FX,258FY);
+z13=(154FX,145FY);
+z14=(200FX,27FY);
+z15=(343FX,-13FY);
+z16=(546FX,55FY);
+z17=(642FX,222FY);
+z18=(646FX,234FY);
+z19=(502FX,234FY);
+z20=(489FX,181FY);
+z21=(439FX,64FY);
+z22=(352FX,19FY);
+z23=(280FX,92FY);
+z24=(285FX,140FY);
+z25=(297FX,199FY);
+z26=(345FX,390FY);
+z27=(497FX,390FY);
+z28=(541FX,361FY);
+z29=(538FX,339FY);
+z30=(532FX,315FY);
+z31=(692FX,315FY);
+z32=(701FX,349FY);
+z33=(703FX,362FY);
+z34=(663FX,412FY);
+z35=(548FX,431FY);
+FuF (z1
+-- z2
+-- z3
+{8,35} .. {14,11}z4
+{14,10} .. {35,0}z5
+-- z6
+-- z7
+-- z8
+{28,-1} .. {9,-3}z9
+{10,-5} .. {0,-14}z10
+{1,-11} .. {-5,-22}z11
+-- z12
+{-11,-44} .. {1,-32}z13
+{2,-52} .. {29,-26}z14
+{29,-27} .. {66,0}z15
+{83,0} .. {52,46}z16
+{44,38} .. {20,74}z17
+-- z18
+-- z19
+-- z20
+{-12,-51} .. {-21,-27}z21
+{-23,-30} .. {-34,1}z22
+{-47,0} .. {-1,48}z23
+{0,14} .. {3,18}z24
+{6,30} .. {2,10}z25
+-- z26
+-- z27
+{29,0} .. {0,-19}z28
+{-1,-8} .. {-1,-6}z29
+-- z30
+-- z31
+-- z32
+{1,5} .. {0,4}z33
+{-2,21} .. {-25,12}z34
+{-24,13} .. {-52,0}z35
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(70,848FX#,624FY#,10FY#);
+"F";
+z1=(717FX,624FY);
+z2=(486FX,624FY);
+z3=(338FX,608FY);
+z4=(236FX,512FY);
+z5=(232FX,496FY);
+z6=(232FX,485FY);
+z7=(313FX,415FY);
+z8=(432FX,407FY);
+z9=(337FX,26FY);
+z10=(256FX,63FY);
+z11=(226FX,142FY);
+z12=(236FX,210FY);
+z13=(262FX,315FY);
+z14=(119FX,315FY);
+z15=(92FX,208FY);
+z16=(86FX,182FY);
+z17=(86FX,159FY);
+z18=(165FX,35FY);
+z19=(396FX,-11FY);
+z20=(650FX,33FY);
+z21=(820FX,210FY);
+z22=(828FX,277FY);
+z23=(766FX,394FY);
+z24=(582FX,436FY);
+z25=(604FX,523FY);
+z26=(640FX,589FY);
+z27=(712FX,607FY);
+z28=(481FX,26FY);
+z29=(574FX,403FY);
+z30=(653FX,379FY);
+z31=(679FX,308FY);
+z32=(665FX,210FY);
+z33=(605FX,85FY);
+z34=(481FX,26FY);
+z35=(378FX,519FY);
+z36=(411FX,575FY);
+z37=(479FX,592FY);
+z38=(441FX,439FY);
+z39=(374FX,489FY);
+z40=(378FX,519FY);
+FuF (z1
+-- z2
+{-63,0} .. {-35,-11}z3
+{-56,-17} .. {-12,-47}z4
+{-3,-8} .. {0,-2}z5
+{0,-7} .. {0,0}z6
+{1,-35} .. {52,-11}z7
+{25,-6} .. {54,0}z8
+-- z9
+{-37,7} .. {-17,18}z10
+{-20,20} .. {0,33}z11
+{0,21} .. {6,24}z12
+-- z13
+-- z14
+-- z15
+{-4,-15} .. {0,-3}z16
+{-1,-3} .. {1,-12}z17
+{2,-53} .. {51,-29}z18
+{53,-30} .. {101,0}z19
+{99,0} .. {71,29}z20
+{93,38} .. {20,80}z21
+{5,23} .. {0,22}z22
+{-1,51} .. {-40,27}z23
+{-40,28} .. {-83,0}z24
+-- z25
+{8,32} .. {16,12}z26
+{16,12} .. {32,0}z27
+);
+FuF (z28
+-- z29
+{37,-1} .. {16,-15}z30
+{18,-16} .. {0,-31}z31
+{0,-28} .. {-10,-38}z32
+{-14,-54} .. {-26,-28}z33
+{-30,-34} .. {-52,-5}z34
+);
+FuF (z35
+{8,25} .. {14,12}z36
+{15,11} .. {31,0}z37
+-- z38
+{-44,0} .. {0,33}z39
+{1,13} .. {2,7}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(71,817FX#,637FY#,0FY#);
+"G";
+z1=(571FX,200FY);
+z2=(618FX,200FY);
+z3=(653FX,176FY);
+z4=(651FX,158FY);
+z5=(646FX,136FY);
+z6=(808FX,136FY);
+z7=(816FX,168FY);
+z8=(817FX,183FY);
+z9=(794FX,220FY);
+z10=(653FX,241FY);
+z11=(582FX,241FY);
+z12=(616FX,380FY);
+z13=(627FX,465FY);
+z14=(576FX,591FY);
+z15=(435FX,637FY);
+z16=(233FX,569FY);
+z17=(133FX,416FY);
+z18=(126FX,359FY);
+z19=(178FX,246FY);
+z20=(336FX,200FY);
+z21=(428FX,200FY);
+z22=(400FX,93FY);
+z23=(363FX,30FY);
+z24=(289FX,18FY);
+z25=(285FX,0FY);
+z26=(604FX,0FY);
+z27=(608FX,18FY);
+z28=(554FX,24FY);
+z29=(538FX,51FY);
+z30=(544FX,90FY);
+z31=(428FX,606FY);
+z32=(479FX,581FY);
+z33=(496FX,515FY);
+z34=(485FX,426FY);
+z35=(438FX,241FY);
+z36=(347FX,241FY);
+z37=(290FX,263FY);
+z38=(269FX,332FY);
+z39=(269FX,355FY);
+z40=(280FX,415FY);
+z41=(340FX,557FY);
+z42=(428FX,606FY);
+FuF (z1
+-- z2
+{23,0} .. {0,-16}z3
+{0,-4} .. {-2,-8}z4
+-- z5
+-- z6
+-- z7
+{1,3} .. {0,7}z8
+{0,16} .. {-15,9}z9
+{-24,14} .. {-70,0}z10
+-- z11
+-- z12
+{8,32} .. {-1,25}z13
+{-1,54} .. {-33,30}z14
+{-33,31} .. {-61,-1}z15
+{-78,0} .. {-57,-45}z16
+{-51,-40} .. {-16,-62}z17
+{-5,-20} .. {0,-18}z18
+{2,-47} .. {33,-28}z19
+{36,-31} .. {69,0}z20
+-- z21
+-- z22
+{-8,-32} .. {-17,-10}z23
+{-13,-8} .. {-36,0}z24
+-- z25
+-- z26
+-- z27
+{-28,1} .. {-8,3}z28
+{-11,5} .. {0,13}z29
+{0,11} .. {4,15}z30
+);
+FuF (z31
+{23,-1} .. {11,-16}z32
+{12,-16} .. {0,-28}z33
+{0,-29} .. {-7,-30}z34
+-- z35
+-- z36
+{-24,0} .. {-14,14}z37
+{-13,15} .. {0,31}z38
+{0,9} .. {0,7}z39
+{1,13} .. {6,26}z40
+{16,64} .. {24,31}z41
+{26,33} .. {33,0}z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(72,602FX#,692FY#,18FY#);
+"H";
+z1=(727FX,656FY);
+z2=(737FX,692FY);
+z3=(572FX,692FY);
+z4=(565FX,666FY);
+z5=(544FX,636FY);
+z6=(506FX,624FY);
+z7=(217FX,624FY);
+z8=(169FX,610FY);
+z9=(149FX,574FY);
+z10=(169FX,525FY);
+z11=(474FX,136FY);
+z12=(504FX,81FY);
+z13=(516FX,30FY);
+z14=(514FX,15FY);
+z15=(506FX,-19FY);
+z16=(535FX,-19FY);
+z17=(556FX,67FY);
+z18=(572FX,195FY);
+z19=(566FX,255FY);
+z20=(547FX,302FY);
+z21=(344FX,558FY);
+z22=(339FX,570FY);
+z23=(363FX,583FY);
+z24=(563FX,583FY);
+z25=(686FX,605FY);
+z26=(727FX,656FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-3,-13} .. {-11,-7}z5
+{-10,-8} .. {-15,0}z6
+-- z7
+{-19,0} .. {-13,-10}z8
+{-14,-9} .. {0,-15}z9
+{1,-17} .. {12,-16}z10
+-- z11
+{10,-12} .. {10,-24}z12
+{8,-20} .. {0,-14}z13
+{-1,-6} .. {-1,-4}z14
+-- z15
+-- z16
+-- z17
+{12,48} .. {-1,37}z18
+{0,25} .. {-4,15}z19
+{-5,18} .. {-8,14}z20
+-- z21
+{-3,6} .. {0,2}z22
+{1,9} .. {15,0}z23
+-- z24
+{55,0} .. {27,15}z25
+{21,11} .. {7,23}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(73,659FX#,624FY#,0FY#);
+"I";
+z1=(361FX,454FY);
+z2=(378FX,523FY);
+z3=(411FX,591FY);
+z4=(485FX,606FY);
+z5=(489FX,624FY);
+z6=(175FX,624FY);
+z7=(171FX,607FY);
+z8=(226FX,597FY);
+z9=(242FX,569FY);
+z10=(234FX,523FY);
+z11=(126FX,93FY);
+z12=(93FX,31FY);
+z13=(23FX,18FY);
+z14=(19FX,0FY);
+z15=(333FX,0FY);
+z16=(337FX,19FY);
+z17=(280FX,26FY);
+z18=(264FX,55FY);
+z19=(265FX,74FY);
+z20=(270FX,93FY);
+z21=(316FX,278FY);
+z22=(359FX,391FY);
+z23=(457FX,449FY);
+z24=(528FX,373FY);
+z25=(515FX,287FY);
+z26=(482FX,158FY);
+z27=(626FX,158FY);
+z28=(639FX,210FY);
+z29=(652FX,312FY);
+z30=(608FX,434FY);
+z31=(466FX,481FY);
+z32=(361FX,454FY);
+FuF (z1
+-- z2
+{8,35} .. {14,10}z3
+{13,10} .. {36,0}z4
+-- z5
+-- z6
+-- z7
+{26,0} .. {10,-6}z8
+{11,-6} .. {0,-13}z9
+{0,-9} .. {-6,-21}z10
+-- z11
+{-7,-31} .. {-15,-10}z12
+{-13,-9} .. {-33,0}z13
+-- z14
+-- z15
+-- z16
+{-29,1} .. {-9,4}z17
+{-10,5} .. {0,14}z18
+{1,8} .. {0,4}z19
+{3,9} .. {1,4}z20
+-- z21
+{13,50} .. {16,25}z22
+{25,39} .. {40,0}z23
+{46,0} .. {1,-50}z24
+{0,-22} .. {-9,-35}z25
+-- z26
+-- z27
+-- z28
+{9,37} .. {-1,31}z29
+{-1,53} .. {-28,28}z30
+{-33,32} .. {-62,-1}z31
+{-30,-1} .. {-40,-17}z32
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(74,648FX#,636FY#,95FY#);
+"J";
+z1=(299FX,146FY);
+z2=(262FX,71FY);
+z3=(183FX,42FY);
+z4=(204FX,122FY);
+z5=(60FX,122FY);
+z6=(6FX,-95FY);
+z7=(149FX,-95FY);
+z8=(173FX,0FY);
+z9=(344FX,0FY);
+z10=(397FX,-32FY);
+z11=(393FX,-58FY);
+z12=(384FX,-95FY);
+z13=(545FX,-95FY);
+z14=(558FX,-47FY);
+z15=(560FX,-29FY);
+z16=(421FX,41FY);
+z17=(284FX,41FY);
+z18=(577FX,226FY);
+z19=(677FX,456FY);
+z20=(618FX,588FY);
+z21=(463FX,636FY);
+z22=(218FX,555FY);
+z23=(125FX,374FY);
+z24=(171FX,278FY);
+z25=(254FX,218FY);
+z26=(299FX,146FY);
+z27=(390FX,591FY);
+z28=(488FX,540FY);
+z29=(529FX,414FY);
+z30=(495FX,263FY);
+z31=(335FX,102FY);
+z32=(377FX,222FY);
+z33=(353FX,315FY);
+z34=(301FX,378FY);
+z35=(266FX,461FY);
+z36=(308FX,555FY);
+z37=(390FX,591FY);
+FuF (z1
+{1,-29} .. {-25,-21}z2
+{-24,-19} .. {-29,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{35,0} .. {1,-21}z10
+{0,-7} .. {-3,-10}z11
+-- z12
+-- z13
+-- z14
+{1,6} .. {0,6}z15
+{-1,47} .. {-92,0}z16
+-- z17
+{121,39} .. {75,84}z18
+{68,77} .. {-1,77}z19
+{-1,56} .. {-38,32}z20
+{-39,32} .. {-65,0}z21
+{-98,0} .. {-66,-54}z22
+{-63,-51} .. {1,-70}z23
+{1,-37} .. {30,-27}z24
+{28,-20} .. {27,-20}z25
+{30,-22} .. {0,-26}z26
+);
+FuF (z27
+{39,0} .. {27,-34}z28
+{27,-34} .. {1,-50}z29
+{1,-51} .. {-24,-50}z30
+{-34,-68} .. {-73,-39}z31
+{29,35} .. {-1,45}z32
+{0,31} .. {-16,31}z33
+{-3,5} .. {-32,37}z34
+{-23,26} .. {-1,29}z35
+{0,36} .. {28,26}z36
+{26,25} .. {28,-1}z37
+);
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(75,733FX#,624FY#,0FY#);
+"K";
+z1=(337FX,356FY);
+z2=(378FX,523FY);
+z3=(412FX,592FY);
+z4=(484FX,607FY);
+z5=(488FX,624FY);
+z6=(175FX,624FY);
+z7=(171FX,606FY);
+z8=(226FX,597FY);
+z9=(243FX,568FY);
+z10=(235FX,523FY);
+z11=(207FX,409FY);
+z12=(194FX,309FY);
+z13=(380FX,143FY);
+z14=(440FX,146FY);
+z15=(483FX,158FY);
+z16=(469FX,102FY);
+z17=(435FX,34FY);
+z18=(362FX,19FY);
+z19=(358FX,0FY);
+z20=(672FX,0FY);
+z21=(676FX,18FY);
+z22=(619FX,25FY);
+z23=(604FX,53FY);
+z24=(612FX,102FY);
+z25=(668FX,322FY);
+z26=(701FX,396FY);
+z27=(776FX,413FY);
+z28=(780FX,431FY);
+z29=(466FX,431FY);
+z30=(461FX,412FY);
+z31=(517FX,405FY);
+z32=(534FX,375FY);
+z33=(524FX,321FY);
+z34=(517FX,293FY);
+z35=(472FX,213FY);
+z36=(389FX,175FY);
+z37=(335FX,193FY);
+z38=(318FX,243FY);
+z39=(322FX,292FY);
+z40=(337FX,356FY);
+FuF (z1
+-- z2
+{9,36} .. {14,10}z3
+{14,10} .. {34,0}z4
+-- z5
+-- z6
+-- z7
+{27,0} .. {10,-6}z8
+{11,-5} .. {1,-14}z9
+{0,-8} .. {-5,-22}z10
+-- z11
+{-9,-36} .. {0,-30}z12
+{3,-110} .. {121,0}z13
+{31,0} .. {9,2}z14
+{19,6} .. {9,2}z15
+-- z16
+{-8,-35} .. {-14,-11}z17
+{-15,-10} .. {-34,0}z18
+-- z19
+-- z20
+-- z21
+{-29,1} .. {-9,4}z22
+{-10,6} .. {0,12}z23
+{-1,9} .. {6,24}z24
+-- z25
+{9,39} .. {12,10}z26
+{14,11} .. {36,0}z27
+-- z28
+-- z29
+-- z30
+{30,-1} .. {8,-4}z31
+{11,-6} .. {0,-14}z32
+{-1,-14} .. {-6,-21}z33
+-- z34
+{-9,-32} .. {-21,-22}z35
+{-24,-25} .. {-31,0}z36
+{-25,0} .. {-11,12}z37
+{-12,11} .. {0,22}z38
+{0,16} .. {4,16}z39
+{5,28} .. {4,15}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(76,539FX#,624FY#,65FY#);
+"L";
+z1=(19FX,0FY);
+z2=(275FX,0FY);
+z3=(309FX,-7FY);
+z4=(319FX,-27FY);
+z5=(317FX,-43FY);
+z6=(311FX,-66FY);
+z7=(472FX,-66FY);
+z8=(479FX,-34FY);
+z9=(482FX,-16FY);
+z10=(450FX,27FY);
+z11=(364FX,41FY);
+z12=(257FX,41FY);
+z13=(377FX,523FY);
+z14=(409FX,590FY);
+z15=(484FX,607FY);
+z16=(489FX,624FY);
+z17=(175FX,624FY);
+z18=(170FX,607FY);
+z19=(226FX,599FY);
+z20=(242FX,570FY);
+z21=(234FX,523FY);
+z22=(129FX,104FY);
+z23=(96FX,33FY);
+z24=(23FX,18FY);
+FuF (z1
+-- z2
+{16,0} .. {6,-5}z3
+{6,-4} .. {0,-9}z4
+{-1,-8} .. {-1,-2}z5
+-- z6
+-- z7
+-- z8
+{2,7} .. {0,5}z9
+{-1,20} .. {-21,9}z10
+{-22,10} .. {-35,0}z11
+-- z12
+-- z13
+{9,35} .. {12,9}z14
+{14,11} .. {36,0}z15
+-- z16
+-- z17
+-- z18
+{29,-1} .. {8,-4}z19
+{10,-6} .. {0,-14}z20
+{0,-10} .. {-5,-22}z21
+-- z22
+{-9,-37} .. {-13,-11}z23
+{-14,-10} .. {-35,0}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(77,890FX#,624FY#,13FY#);
+"M";
+z1=(733FX,583FY);
+z2=(769FX,583FY);
+z3=(813FX,552FY);
+z4=(812FX,539FY);
+z5=(806FX,517FY);
+z6=(968FX,517FY);
+z7=(976FX,549FY);
+z8=(978FX,564FY);
+z9=(860FX,624FY);
+z10=(521FX,624FY);
+z11=(517FX,607FY);
+z12=(581FX,566FY);
+z13=(574FX,523FY);
+z14=(490FX,184FY);
+z15=(437FX,67FY);
+z16=(350FX,19FY);
+z17=(280FX,93FY);
+z18=(294FX,184FY);
+z19=(378FX,523FY);
+z20=(410FX,590FY);
+z21=(475FX,607FY);
+z22=(480FX,624FY);
+z23=(175FX,624FY);
+z24=(171FX,607FY);
+z25=(226FX,597FY);
+z26=(242FX,569FY);
+z27=(235FX,523FY);
+z28=(169FX,258FY);
+z29=(156FX,158FY);
+z30=(341FX,-13FY);
+z31=(652FX,258FY);
+FuF (z1
+-- z2
+{29,0} .. {0,-21}z3
+{0,-5} .. {0,-3}z4
+-- z5
+-- z6
+-- z7
+{2,5} .. {0,5}z8
+{-2,40} .. {-77,0}z9
+-- z10
+-- z11
+{43,-1} .. {0,-26}z12
+{0,-10} .. {-5,-18}z13
+-- z14
+{-12,-49} .. {-23,-29}z15
+{-25,-33} .. {-32,1}z16
+{-47,1} .. {0,49}z17
+{0,24} .. {9,36}z18
+-- z19
+{8,33} .. {13,11}z20
+{13,11} .. {30,0}z21
+-- z22
+-- z23
+-- z24
+{26,0} .. {10,-6}z25
+{11,-6} .. {0,-13}z26
+{1,-9} .. {-5,-22}z27
+-- z28
+{-10,-39} .. {1,-28}z29
+{3,-115} .. {120,1}z30
+{162,1} .. {45,180}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(78,823FX#,694FY#,13FY#);
+"N";
+z1=(527FX,624FY);
+z2=(360FX,624FY);
+z3=(325FX,630FY);
+z4=(316FX,649FY);
+z5=(319FX,671FY);
+z6=(325FX,694FY);
+z7=(162FX,694FY);
+z8=(154FX,662FY);
+z9=(152FX,644FY);
+z10=(215FX,589FY);
+z11=(309FX,583FY);
+z12=(382FX,583FY);
+z13=(301FX,258FY);
+z14=(290FX,195FY);
+z15=(286FX,144FY);
+z16=(333FX,26FY);
+z17=(475FX,-13FY);
+z18=(784FX,258FY);
+z19=(799FX,315FY);
+z20=(665FX,315FY);
+z21=(649FX,252FY);
+z22=(587FX,86FY);
+z23=(482FX,19FY);
+z24=(410FX,104FY);
+z25=(415FX,169FY);
+z26=(434FX,252FY);
+FuF (z1
+-- z2
+{-18,0} .. {-5,4}z3
+{-6,5} .. {0,8}z4
+{1,9} .. {0,6}z5
+-- z6
+-- z7
+-- z8
+{-2,-7} .. {0,-5}z9
+{1,-27} .. {41,-9}z10
+{20,-4} .. {43,0}z11
+-- z12
+-- z13
+{-7,-28} .. {-2,-13}z14
+{-3,-18} .. {1,-16}z15
+{0,-52} .. {31,-27}z16
+{31,-26} .. {64,0}z17
+{161,0} .. {45,181}z18
+-- z19
+-- z20
+-- z21
+{-19,-76} .. {-22,-35}z22
+{-28,-45} .. {-42,1}z23
+{-48,1} .. {0,56}z24
+{0,20} .. {3,23}z25
+{3,17} .. {10,39}z26
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(79,737FX#,637FY#,0FY#);
+"O";
+z1=(680FX,373FY);
+z2=(691FX,430FY);
+z3=(695FX,480FY);
+z4=(649FX,595FY);
+z5=(505FX,637FY);
+z6=(197FX,373FY);
+z7=(130FX,104FY);
+z8=(96FX,36FY);
+z9=(23FX,18FY);
+z10=(19FX,0FY);
+z11=(323FX,0FY);
+z12=(328FX,18FY);
+z13=(280FX,25FY);
+z14=(266FX,54FY);
+z15=(273FX,104FY);
+z16=(350FX,409FY);
+z17=(497FX,606FY);
+z18=(566FX,533FY);
+z19=(546FX,409FY);
+z20=(470FX,104FY);
+z21=(439FX,39FY);
+z22=(371FX,18FY);
+z23=(367FX,0FY);
+z24=(674FX,0FY);
+z25=(678FX,18FY);
+z26=(624FX,26FY);
+z27=(606FX,58FY);
+z28=(613FX,104FY);
+FuF (z1
+{6,25} .. {2,12}z2
+{3,21} .. {0,12}z3
+{-2,51} .. {-28,25}z4
+{-32,29} .. {-64,-1}z5
+{-162,0} .. {-43,-175}z6
+-- z7
+{-8,-34} .. {-14,-12}z8
+{-15,-12} .. {-34,0}z9
+-- z10
+-- z11
+-- z12
+{-26,1} .. {-6,4}z13
+{-9,6} .. {0,14}z14
+{-1,11} .. {5,22}z15
+-- z16
+{32,131} .. {66,0}z17
+{47,0} .. {0,-48}z18
+{0,-29} .. {-13,-54}z19
+-- z20
+{-8,-31} .. {-13,-12}z21
+{-15,-14} .. {-31,0}z22
+-- z23
+-- z24
+-- z25
+{-24,0} .. {-11,5}z26
+{-12,8} .. {0,14}z27
+{1,14} .. {4,17}z28
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(80,880FX#,631FY#,0FY#);
+"P";
+z1=(462FX,593FY);
+z2=(365FX,205FY);
+z3=(509FX,205FY);
+z4=(605FX,593FY);
+z5=(674FX,556FY);
+z6=(698FX,474FY);
+z7=(685FX,376FY);
+z8=(616FX,102FY);
+z9=(580FX,33FY);
+z10=(509FX,19FY);
+z11=(505FX,0FY);
+z12=(815FX,0FY);
+z13=(819FX,18FY);
+z14=(767FX,24FY);
+z15=(752FX,54FY);
+z16=(759FX,102FY);
+z17=(820FX,341FY);
+z18=(828FX,383FY);
+z19=(830FX,424FY);
+z20=(544FX,632FY);
+z21=(253FX,544FY);
+z22=(125FX,345FY);
+z23=(117FX,315FY);
+z24=(260FX,315FY);
+z25=(278FX,387FY);
+z26=(349FX,529FY);
+z27=(462FX,593FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{31,-4} .. {15,-21}z5
+{16,-22} .. {0,-33}z6
+{0,-29} .. {-9,-37}z7
+-- z8
+{-8,-34} .. {-15,-12}z9
+{-13,-9} .. {-34,0}z10
+-- z11
+-- z12
+-- z13
+{-26,1} .. {-8,3}z14
+{-10,6} .. {0,14}z15
+{0,12} .. {5,20}z16
+-- z17
+{5,19} .. {1,9}z18
+{2,13} .. {0,15}z19
+{-5,138} .. {-186,0}z20
+{-119,0} .. {-75,-59}z21
+{-65,-50} .. {-21,-82}z22
+-- z23
+-- z24
+-- z25
+{13,55} .. {34,39}z26
+{33,39} .. {42,4}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(81,797FX#,637FY#,0FY#);
+"Q";
+z1=(256FX,111FY);
+z2=(251FX,90FY);
+z3=(220FX,33FY);
+z4=(154FX,18FY);
+z5=(149FX,0FY);
+z6=(460FX,0FY);
+z7=(465FX,18FY);
+z8=(416FX,23FY);
+z9=(390FX,58FY);
+z10=(395FX,93FY);
+z11=(400FX,111FY);
+z12=(541FX,111FY);
+z13=(581FX,81FY);
+z14=(580FX,70FY);
+z15=(574FX,47FY);
+z16=(736FX,47FY);
+z17=(745FX,79FY);
+z18=(747FX,95FY);
+z19=(712FX,140FY);
+z20=(616FX,153FY);
+z21=(411FX,153FY);
+z22=(440FX,274FY);
+z23=(531FX,234FY);
+z24=(712FX,277FY);
+z25=(818FX,425FY);
+z26=(826FX,491FY);
+z27=(776FX,599FY);
+z28=(634FX,637FY);
+z29=(438FX,577FY);
+z30=(330FX,404FY);
+z31=(267FX,153FY);
+z32=(250FX,153FY);
+z33=(210FX,184FY);
+z34=(211FX,194FY);
+z35=(217FX,217FY);
+z36=(60FX,217FY);
+z37=(53FX,185FY);
+z38=(51FX,171FY);
+z39=(59FX,146FY);
+z40=(187FX,111FY);
+z41=(485FX,450FY);
+z42=(626FX,606FY);
+z43=(677FX,588FY);
+z44=(693FX,537FY);
+z45=(677FX,436FY);
+z46=(611FX,299FY);
+z47=(537FX,269FY);
+z48=(486FX,290FY);
+z49=(467FX,351FY);
+z50=(475FX,408FY);
+FuF (z1
+-- z2
+{-7,-28} .. {-14,-11}z3
+{-14,-10} .. {-30,0}z4
+-- z5
+-- z6
+-- z7
+{-23,0} .. {-10,3}z8
+{-17,5} .. {0,18}z9
+{0,10} .. {4,13}z10
+-- z11
+-- z12
+{27,-5} .. {0,-15}z13
+{0,-5} .. {0,-3}z14
+-- z15
+-- z16
+-- z17
+{1,3} .. {0,7}z18
+{-1,22} .. {-22,9}z19
+{-24,8} .. {-40,0}z20
+-- z21
+-- z22
+{26,-27} .. {35,0}z23
+{72,0} .. {49,29}z24
+{55,33} .. {16,66}z25
+{5,23} .. {0,21}z26
+{-1,46} .. {-32,26}z27
+{-33,26} .. {-62,-1}z28
+{-79,0} .. {-52,-40}z29
+{-54,-40} .. {-18,-75}z30
+-- z31
+-- z32
+{-26,0} .. {-1,21}z33
+{1,4} .. {0,3}z34
+-- z35
+-- z36
+-- z37
+{-2,-5} .. {1,-4}z38
+{0,-10} .. {5,-7}z39
+{17,-23} .. {69,0}z40
+);
+FuF (z41
+{27,104} .. {67,0}z42
+{24,0} .. {10,-12}z43
+{10,-12} .. {0,-23}z44
+{0,-27} .. {-10,-40}z45
+{-16,-63} .. {-28,-28}z46
+{-21,-21} .. {-29,1}z47
+{-22,0} .. {-12,14}z48
+{-12,14} .. {-1,27}z49
+{0,18} .. {6,19}z50
+);
+lbl (range 1 thru 50);
+endchar;
+
+beginchar(82,669FX#,637FY#,0FY#);
+"R";
+z1=(680FX,373FY);
+z2=(693FX,473FY);
+z3=(647FX,592FY);
+z4=(505FX,637FY);
+z5=(197FX,373FY);
+z6=(130FX,104FY);
+z7=(96FX,34FY);
+z8=(24FX,18FY);
+z9=(20FX,0FY);
+z10=(332FX,0FY);
+z11=(337FX,18FY);
+z12=(282FX,25FY);
+z13=(266FX,55FY);
+z14=(274FX,104FY);
+z15=(350FX,409FY);
+z16=(403FX,546FY);
+z17=(498FX,606FY);
+z18=(549FX,585FY);
+z19=(565FX,528FY);
+z20=(563FX,491FY);
+z21=(546FX,409FY);
+z22=(523FX,315FY);
+z23=(666FX,315FY);
+FuF (z1
+{10,38} .. {-1,28}z2
+{-2,52} .. {-29,27}z3
+{-31,30} .. {-64,0}z4
+{-161,0} .. {-44,-176}z5
+-- z6
+{-9,-36} .. {-14,-11}z7
+{-14,-11} .. {-35,0}z8
+-- z9
+-- z10
+-- z11
+{-28,1} .. {-9,4}z12
+{-10,6} .. {0,14}z13
+{0,11} .. {6,22}z14
+-- z15
+{15,60} .. {20,31}z16
+{27,40} .. {37,0}z17
+{23,-1} .. {11,-13}z18
+{10,-14} .. {1,-24}z19
+{0,-13} .. {-2,-11}z20
+{-6,-36} .. {-5,-19}z21
+-- z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(83,737FX#,624FY#,13FY#);
+"S";
+z1=(342FX,-13FY);
+z2=(550FX,58FY);
+z3=(650FX,252FY);
+z4=(718FX,520FY);
+z5=(753FX,588FY);
+z6=(826FX,607FY);
+z7=(831FX,624FY);
+z8=(523FX,624FY);
+z9=(519FX,607FY);
+z10=(567FX,598FY);
+z11=(582FX,570FY);
+z12=(574FX,520FY);
+z13=(497FX,215FY);
+z14=(445FX,75FY);
+z15=(350FX,19FY);
+z16=(297FX,37FY);
+z17=(280FX,92FY);
+z18=(285FX,144FY);
+z19=(301FX,215FY);
+z20=(378FX,520FY);
+z21=(407FX,587FY);
+z22=(475FX,607FY);
+z23=(480FX,624FY);
+z24=(175FX,624FY);
+z25=(171FX,607FY);
+z26=(217FX,601FY);
+z27=(242FX,566FY);
+z28=(235FX,520FY);
+z29=(167FX,252FY);
+z30=(152FX,141FY);
+z31=(200FX,26FY);
+z32=(342FX,-13FY);
+FuF (z1
+{88,0} .. {51,47}z2
+{45,42} .. {22,87}z3
+-- z4
+{8,33} .. {16,13}z5
+{16,12} .. {33,0}z6
+-- z7
+-- z8
+-- z9
+{22,0} .. {10,-6}z10
+{10,-6} .. {0,-13}z11
+{0,-12} .. {-5,-22}z12
+-- z13
+{-16,-64} .. {-18,-29}z14
+{-24,-38} .. {-39,1}z15
+{-26,0} .. {-9,12}z16
+{-11,12} .. {-1,24}z17
+{0,17} .. {4,18}z18
+{4,23} .. {7,24}z19
+-- z20
+{8,34} .. {11,11}z21
+{13,13} .. {32,0}z22
+-- z23
+-- z24
+-- z25
+{22,-1} .. {9,-3}z26
+{16,-7} .. {1,-17}z27
+{-3,-20} .. {-2,-11}z28
+-- z29
+{-11,-41} .. {0,-33}z30
+{1,-50} .. {31,-27}z31
+{31,-27} .. {64,1}z32
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(84,620FX#,635FY#,10FY#);
+"T";
+z1=(625FX,431FY);
+z2=(632FX,490FY);
+z3=(580FX,600FY);
+z4=(460FX,636FY);
+z5=(302FX,594FY);
+z6=(200FX,473FY);
+z7=(195FX,430FY);
+z8=(259FX,322FY);
+z9=(367FX,264FY);
+z10=(419FX,217FY);
+z11=(440FX,158FY);
+z12=(438FX,135FY);
+z13=(392FX,52FY);
+z14=(317FX,21FY);
+z15=(224FX,113FY);
+z16=(237FX,204FY);
+z17=(82FX,204FY);
+z18=(77FX,158FY);
+z19=(141FX,37FY);
+z20=(310FX,-11FY);
+z21=(476FX,32FY);
+z22=(587FX,158FY);
+z23=(592FX,204FY);
+z24=(542FX,309FY);
+z25=(462FX,360FY);
+z26=(371FX,419FY);
+z27=(346FX,472FY);
+z28=(348FX,494FY);
+z29=(453FX,609FY);
+z30=(500FX,551FY);
+z31=(482FX,431FY);
+FuF (z1
+{5,23} .. {-1,17}z2
+{-1,47} .. {-33,26}z3
+{-31,24} .. {-49,0}z4
+{-56,0} .. {-49,-28}z5
+{-56,-31} .. {-12,-50}z6
+{-4,-14} .. {0,-15}z7
+{1,-42} .. {42,-30}z8
+{48,-26} .. {24,-13}z9
+{21,-11} .. {13,-20}z10
+{14,-20} .. {0,-20}z11
+{1,-9} .. {-2,-6}z12
+{-9,-35} .. {-22,-20}z13
+{-21,-21} .. {-29,1}z14
+{-61,0} .. {-1,61}z15
+{0,26} .. {9,35}z16
+-- z17
+{-4,-16} .. {0,-15}z18
+{2,-49} .. {41,-31}z19
+{41,-32} .. {72,0}z20
+{58,0} .. {52,28}z21
+{60,32} .. {14,52}z22
+{4,15} .. {-1,15}z23
+{-1,41} .. {-32,28}z24
+{-32,22} .. {-22,12}z25
+{-55,33} .. {-6,7}z26
+{-16,16} .. {0,19}z27
+{0,8} .. {1,6}z28
+{21,78} .. {49,-1}z29
+{31,0} .. {0,-38}z30
+{0,-25} .. {-12,-55}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(85,1324FX#,637FY#,0FY#);
+"U";
+z1=(680FX,373FY);
+z2=(691FX,430FY);
+z3=(695FX,480FY);
+z4=(649FX,595FY);
+z5=(505FX,637FY);
+z6=(197FX,373FY);
+z7=(130FX,104FY);
+z8=(96FX,36FY);
+z9=(23FX,18FY);
+z10=(19FX,0FY);
+z11=(323FX,0FY);
+z12=(328FX,18FY);
+z13=(280FX,25FY);
+z14=(266FX,54FY);
+z15=(273FX,104FY);
+z16=(350FX,409FY);
+z17=(497FX,606FY);
+z18=(566FX,533FY);
+z19=(546FX,409FY);
+z20=(470FX,104FY);
+z21=(439FX,39FY);
+z22=(371FX,18FY);
+z23=(367FX,0FY);
+z24=(674FX,0FY);
+z25=(678FX,18FY);
+z26=(624FX,26FY);
+z27=(606FX,58FY);
+z28=(613FX,104FY);
+z29=(756FX,0FY);
+z30=(1070FX,0FY);
+z31=(1075FX,19FY);
+z32=(1018FX,26FY);
+z33=(1003FX,57FY);
+z34=(1011FX,104FY);
+z35=(1082FX,390FY);
+z36=(1159FX,390FY);
+z37=(1192FX,381FY);
+z38=(1203FX,360FY);
+z39=(1201FX,346FY);
+z40=(1193FX,315FY);
+z41=(1353FX,315FY);
+z42=(1362FX,350FY);
+z43=(1365FX,368FY);
+z44=(1241FX,431FY);
+z45=(1092FX,431FY);
+z46=(1115FX,523FY);
+z47=(1147FX,590FY);
+z48=(1222FX,607FY);
+z49=(1226FX,624FY);
+z50=(912FX,624FY);
+z51=(908FX,607FY);
+z52=(963FX,598FY);
+z53=(979FX,570FY);
+z54=(971FX,523FY);
+z55=(867FX,104FY);
+z56=(832FX,33FY);
+z57=(760FX,18FY);
+FuF (z1
+{6,25} .. {2,12}z2
+{3,21} .. {0,12}z3
+{-2,51} .. {-28,25}z4
+{-32,29} .. {-64,-1}z5
+{-162,0} .. {-43,-175}z6
+-- z7
+{-8,-34} .. {-14,-12}z8
+{-15,-12} .. {-34,0}z9
+-- z10
+-- z11
+-- z12
+{-26,1} .. {-6,4}z13
+{-9,6} .. {0,14}z14
+{-1,11} .. {5,22}z15
+-- z16
+{32,131} .. {66,0}z17
+{47,0} .. {0,-48}z18
+{0,-29} .. {-13,-54}z19
+-- z20
+{-8,-31} .. {-13,-12}z21
+{-15,-14} .. {-31,0}z22
+-- z23
+-- z24
+-- z25
+{-24,0} .. {-11,5}z26
+{-12,8} .. {0,14}z27
+{1,14} .. {4,17}z28
+);
+FuF (z29
+-- z30
+-- z31
+{-28,1} .. {-10,4}z32
+{-10,6} .. {0,14}z33
+{-1,9} .. {6,22}z34
+-- z35
+-- z36
+{16,0} .. {6,-6}z37
+{7,-6} .. {0,-8}z38
+{-1,-6} .. {-1,-4}z39
+-- z40
+-- z41
+-- z42
+{2,7} .. {0,5}z43
+{-2,42} .. {-81,0}z44
+-- z45
+-- z46
+{8,35} .. {13,9}z47
+{13,11} .. {37,0}z48
+-- z49
+-- z50
+-- z51
+{27,0} .. {10,-6}z52
+{11,-5} .. {0,-13}z53
+{0,-10} .. {-6,-22}z54
+-- z55
+{-9,-38} .. {-14,-10}z56
+{-13,-10} .. {-35,0}z57
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 57);
+endchar;
+
+beginchar(86,863FX#,624FY#,64FY#);
+"V";
+z1=(417FX,0FY);
+z2=(610FX,0FY);
+z3=(641FX,-23FY);
+z4=(638FX,-47FY);
+z5=(634FX,-64FY);
+z6=(796FX,-64FY);
+z7=(804FX,-31FY);
+z8=(806FX,-15FY);
+z9=(765FX,27FY);
+z10=(632FX,41FY);
+z11=(571FX,41FY);
+z12=(691FX,523FY);
+z13=(724FX,591FY);
+z14=(798FX,607FY);
+z15=(802FX,624FY);
+z16=(488FX,624FY);
+z17=(483FX,606FY);
+z18=(530FX,601FY);
+z19=(557FX,571FY);
+z20=(548FX,523FY);
+z21=(504FX,346FY);
+z22=(363FX,175FY);
+z23=(294FX,254FY);
+z24=(306FX,335FY);
+z25=(329FX,431FY);
+z26=(115FX,431FY);
+z27=(111FX,412FY);
+z28=(159FX,404FY);
+z29=(175FX,380FY);
+z30=(173FX,368FY);
+z31=(163FX,323FY);
+z32=(162FX,288FY);
+z33=(354FX,143FY);
+z34=(462FX,177FY);
+FuF (z1
+-- z2
+{20,0} .. {0,-15}z3
+{-1,-10} .. {-1,-6}z4
+-- z5
+-- z6
+-- z7
+{2,7} .. {-1,4}z8
+{-1,19} .. {-27,9}z9
+{-28,10} .. {-60,0}z10
+-- z11
+-- z12
+{9,35} .. {13,10}z13
+{12,10} .. {37,0}z14
+-- z15
+-- z16
+-- z17
+{24,-1} .. {7,-2}z18
+{18,-4} .. {0,-16}z19
+{0,-12} .. {-5,-20}z20
+-- z21
+{-28,-114} .. {-66,0}z22
+{-46,1} .. {0,52}z23
+{0,21} .. {8,33}z24
+-- z25
+-- z26
+-- z27
+{23,0} .. {9,-5}z28
+{10,-7} .. {1,-9}z29
+{-1,-5} .. {0,-3}z30
+{-5,-17} .. {-2,-13}z31
+{-1,-9} .. {1,-15}z32
+{3,-97} .. {125,0}z33
+{35,0} .. {37,22}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(87,587FX#,624FY#,0FY#);
+"W";
+z1=(19FX,0FY);
+z2=(333FX,0FY);
+z3=(338FX,19FY);
+z4=(281FX,26FY);
+z5=(266FX,57FY);
+z6=(273FX,104FY);
+z7=(345FX,390FY);
+z8=(422FX,390FY);
+z9=(455FX,381FY);
+z10=(466FX,360FY);
+z11=(464FX,346FY);
+z12=(456FX,315FY);
+z13=(616FX,315FY);
+z14=(625FX,350FY);
+z15=(628FX,368FY);
+z16=(504FX,431FY);
+z17=(355FX,431FY);
+z18=(378FX,523FY);
+z19=(409FX,590FY);
+z20=(485FX,607FY);
+z21=(489FX,624FY);
+z22=(175FX,624FY);
+z23=(171FX,607FY);
+z24=(226FX,598FY);
+z25=(242FX,570FY);
+z26=(234FX,523FY);
+z27=(130FX,104FY);
+z28=(95FX,33FY);
+z29=(23FX,18FY);
+FuF (z1
+-- z2
+-- z3
+{-28,1} .. {-10,4}z4
+{-10,6} .. {0,14}z5
+{-1,9} .. {5,22}z6
+-- z7
+-- z8
+{16,0} .. {6,-6}z9
+{7,-6} .. {0,-8}z10
+{-1,-6} .. {0,-4}z11
+-- z12
+-- z13
+-- z14
+{2,7} .. {0,5}z15
+{-2,42} .. {-81,0}z16
+-- z17
+-- z18
+{8,35} .. {12,9}z19
+{14,11} .. {37,0}z20
+-- z21
+-- z22
+-- z23
+{27,0} .. {10,-6}z24
+{10,-5} .. {0,-13}z25
+{0,-10} .. {-6,-22}z26
+-- z27
+{-10,-38} .. {-14,-10}z28
+{-13,-10} .. {-35,0}z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(88,921FX#,624FY#,11FY#);
+"X";
+z1=(337FX,18FY);
+z2=(282FX,25FY);
+z3=(266FX,56FY);
+z4=(274FX,104FY);
+z5=(345FX,390FY);
+z6=(467FX,390FY);
+z7=(432FX,249FY);
+z8=(419FX,148FY);
+z9=(606FX,-12FY);
+z10=(788FX,57FY);
+z11=(893FX,249FY);
+z12=(939FX,431FY);
+z13=(728FX,431FY);
+z14=(723FX,413FY);
+z15=(766FX,407FY);
+z16=(778FX,380FY);
+z17=(768FX,322FY);
+z18=(740FX,205FY);
+z19=(690FX,66FY);
+z20=(610FX,14FY);
+z21=(561FX,32FY);
+z22=(547FX,88FY);
+z23=(564FX,204FY);
+z24=(621FX,431FY);
+z25=(355FX,431FY);
+z26=(378FX,523FY);
+z27=(411FX,589FY);
+z28=(485FX,606FY);
+z29=(489FX,624FY);
+z30=(175FX,624FY);
+z31=(171FX,607FY);
+z32=(226FX,597FY);
+z33=(242FX,569FY);
+z34=(235FX,523FY);
+z35=(130FX,104FY);
+z36=(97FX,34FY);
+z37=(23FX,18FY);
+z38=(19FX,0FY);
+z39=(333FX,0FY);
+FuF (z1
+{-28,1} .. {-9,4}z2
+{-11,7} .. {0,13}z3
+{0,10} .. {6,22}z4
+-- z5
+-- z6
+-- z7
+{-9,-38} .. {1,-30}z8
+{2,-106} .. {123,0}z9
+{72,0} .. {49,46}z10
+{49,44} .. {21,84}z11
+-- z12
+-- z13
+-- z14
+{22,-1} .. {7,-3}z15
+{8,-6} .. {0,-12}z16
+{0,-14} .. {-6,-25}z17
+-- z18
+{-16,-65} .. {-17,-28}z19
+{-21,-35} .. {-32,0}z20
+{-23,1} .. {-9,11}z21
+{-9,12} .. {0,25}z22
+{-1,28} .. {12,50}z23
+-- z24
+-- z25
+-- z26
+{8,33} .. {14,11}z27
+{14,11} .. {35,0}z28
+-- z29
+-- z30
+-- z31
+{27,0} .. {10,-6}z32
+{11,-6} .. {0,-13}z33
+{1,-9} .. {-5,-22}z34
+-- z35
+{-9,-36} .. {-13,-11}z36
+{-13,-11} .. {-37,0}z37
+-- z38
+-- z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(89,638FX#,640FY#,10FY#);
+"Y";
+z1=(639FX,493FY);
+z2=(643FX,527FY);
+z3=(596FX,610FY);
+z4=(473FX,641FY);
+z5=(316FX,603FY);
+z6=(225FX,501FY);
+z7=(366FX,501FY);
+z8=(406FX,588FY);
+z9=(467FX,616FY);
+z10=(501FX,603FY);
+z11=(512FX,562FY);
+z12=(503FX,497FY);
+z13=(379FX,379FY);
+z14=(286FX,379FY);
+z15=(299FX,408FY);
+z16=(158FX,408FY);
+z17=(111FX,303FY);
+z18=(254FX,303FY);
+z19=(272FX,347FY);
+z20=(373FX,347FY);
+z21=(475FX,254FY);
+z22=(468FX,195FY);
+z23=(405FX,68FY);
+z24=(316FX,18FY);
+z25=(216FX,120FY);
+z26=(227FX,208FY);
+z27=(75FX,208FY);
+z28=(69FX,182FY);
+z29=(69FX,158FY);
+z30=(135FX,36FY);
+z31=(307FX,-11FY);
+z32=(510FX,51FY);
+z33=(620FX,205FY);
+z34=(625FX,248FY);
+z35=(583FX,338FY);
+z36=(484FX,371FY);
+z37=(482FX,373FY);
+z38=(579FX,410FY);
+z39=(639FX,493FY);
+FuF (z1
+{3,12} .. {-1,11}z2
+{-1,36} .. {-30,19}z3
+{-33,21} .. {-49,0}z4
+{-60,-1} .. {-45,-24}z5
+{-45,-25} .. {-16,-43}z6
+-- z7
+{11,41} .. {16,17}z8
+{19,19} .. {22,0}z9
+{16,-1} .. {6,-8}z10
+{8,-10} .. {0,-18}z11
+{0,-21} .. {-6,-22}z12
+{-20,-79} .. {-62,0}z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+{67,0} .. {1,-62}z21
+{1,-19} .. {-5,-21}z22
+{-13,-51} .. {-30,-34}z23
+{-29,-34} .. {-31,0}z24
+{-67,1} .. {0,67}z25
+{0,25} .. {7,34}z26
+-- z27
+{-4,-12} .. {0,-5}z28
+{0,-3} .. {1,-13}z29
+{2,-51} .. {42,-30}z30
+{44,-32} .. {71,0}z31
+{78,1} .. {57,41}z32
+{57,40} .. {16,63}z33
+{4,16} .. {0,13}z34
+{-2,39} .. {-26,21}z35
+{-29,22} .. {-37,0}z36
+-- z37
+{35,4} .. {29,21}z38
+{31,23} .. {9,32}z39
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(90,644FX#,637FY#,95FY#);
+"Z";
+z1=(439FX,228FY);
+z2=(326FX,110FY);
+z3=(183FX,41FY);
+z4=(203FX,122FY);
+z5=(59FX,122FY);
+z6=(5FX,-95FY);
+z7=(148FX,-95FY);
+z8=(172FX,0FY);
+z9=(363FX,0FY);
+z10=(396FX,-31FY);
+z11=(393FX,-58FY);
+z12=(384FX,-95FY);
+z13=(545FX,-95FY);
+z14=(558FX,-47FY);
+z15=(559FX,-28FY);
+z16=(522FX,24FY);
+z17=(423FX,41FY);
+z18=(281FX,41FY);
+z19=(541FX,196FY);
+z20=(673FX,408FY);
+z21=(681FX,474FY);
+z22=(467FX,637FY);
+z23=(257FX,583FY);
+z24=(129FX,415FY);
+z25=(123FX,360FY);
+z26=(180FX,246FY);
+z27=(324FX,205FY);
+z28=(387FX,210FY);
+z29=(439FX,228FY);
+z30=(529FX,415FY);
+z31=(461FX,286FY);
+z32=(368FX,243FY);
+z33=(296FX,270FY);
+z34=(270FX,343FY);
+z35=(279FX,414FY);
+z36=(459FX,607FY);
+z37=(543FX,512FY);
+z38=(529FX,415FY);
+FuF (z1
+{-22,-37} .. {-53,-42}z2
+{-58,-46} .. {-37,0}z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{22,0} .. {0,-21}z10
+{-1,-14} .. {-1,-3}z11
+-- z12
+-- z13
+-- z14
+{1,5} .. {0,7}z15
+{-1,24} .. {-24,10}z16
+{-24,12} .. {-42,0}z17
+-- z18
+{98,28} .. {75,75}z19
+{70,70} .. {18,71}z20
+{6,25} .. {-1,19}z21
+{-3,109} .. {-139,0}z22
+{-79,0} .. {-61,-36}z23
+{-68,-40} .. {-18,-71}z24
+{-5,-21} .. {1,-16}z25
+{1,-50} .. {37,-27}z26
+{39,-28} .. {57,0}z27
+{24,1} .. {18,2}z28
+{21,4} .. {13,8}z29
+);
+FuF (z30
+{-13,-55} .. {-32,-31}z31
+{-30,-29} .. {-32,0}z32
+{-31,0} .. {-17,18}z33
+{-17,17} .. {0,31}z34
+{0,24} .. {6,23}z35
+{33,130} .. {87,-1}z36
+{55,0} .. {1,-63}z37
+{0,-27} .. {-9,-38}z38
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(91,394FX#,750FY#,249FY#);
+"bracketleft";
+z1=(294FX,-250FY);
+z2=(299FX,-229FY);
+z3=(273FX,-229FY);
+z4=(227FX,-224FY);
+z5=(208FX,-189FY);
+z6=(221FX,-125FY);
+z7=(407FX,621FY);
+z8=(432FX,695FY);
+z9=(511FX,726FY);
+z10=(537FX,726FY);
+z11=(543FX,750FY);
+z12=(311FX,750FY);
+z13=(61FX,-250FY);
+FuF (z1
+-- z2
+-- z3
+{-22,0} .. {-8,4}z4
+{-13,6} .. {0,17}z5
+{0,6} .. {9,37}z6
+-- z7
+{10,39} .. {7,10}z8
+{15,20} .. {38,0}z9
+-- z10
+-- z11
+-- z12
+-- z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(92,542FX#,624FY#,0FY#);
+"quotedblleft";
+z1=(265FX,428FY);
+z2=(315FX,521FY);
+z3=(399FX,599FY);
+z4=(405FX,606FY);
+z5=(404FX,615FY);
+z6=(400FX,621FY);
+z7=(392FX,624FY);
+z8=(384FX,623FY);
+z9=(286FX,533FY);
+z10=(231FX,421FY);
+z11=(234FX,344FY);
+z12=(287FX,310FY);
+z13=(344FX,330FY);
+z14=(375FX,380FY);
+z15=(375FX,414FY);
+z16=(358FX,440FY);
+z17=(322FX,450FY);
+z18=(265FX,428FY);
+z19=(491FX,428FY);
+z20=(541FX,521FY);
+z21=(625FX,599FY);
+z22=(631FX,607FY);
+z23=(631FX,615FY);
+z24=(625FX,621FY);
+z25=(618FX,624FY);
+z26=(611FX,623FY);
+z27=(542FX,568FY);
+z28=(488FX,498FY);
+z29=(457FX,421FY);
+z30=(461FX,344FY);
+z31=(514FX,310FY);
+z32=(570FX,330FY);
+z33=(600FX,380FY);
+z34=(595FX,429FY);
+z35=(549FX,450FY);
+z36=(491FX,428FY);
+FuF (z1
+{10,34} .. {23,29}z2
+{24,29} .. {32,24}z3
+{4,2} .. {0,2}z4
+{1,3} .. {-2,3}z5
+-- z6
+{-2,2} .. {-3,0}z7
+{-4,0} .. {-2,-1}z8
+{-39,-24} .. {-27,-36}z9
+{-27,-35} .. {-10,-39}z10
+{-7,-29} .. {9,-23}z11
+{9,-23} .. {26,0}z12
+{22,0} .. {16,13}z13
+{16,14} .. {5,20}z14
+{3,12} .. {-3,11}z15
+{-2,11} .. {-9,6}z16
+{-9,7} .. {-15,0}z17
+{-22,0} .. {-16,-15}z18
+);
+FuF (z19
+{10,33} .. {24,29}z20
+{23,28} .. {33,24}z21
+{3,2} .. {1,3}z22
+{1,4} .. {-1,2}z23
+-- z24
+{0,2} .. {-4,0}z25
+{-4,0} .. {-1,-1}z26
+{-25,-15} .. {-22,-22}z27
+{-21,-21} .. {-15,-25}z28
+{-14,-26} .. {-6,-26}z29
+{-7,-29} .. {10,-22}z30
+{9,-23} .. {26,0}z31
+{22,0} .. {16,13}z32
+{16,14} .. {4,19}z33
+{5,19} .. {-8,14}z34
+{-9,14} .. {-22,0}z35
+{-23,0} .. {-16,-15}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(93,394FX#,750FY#,249FY#);
+"bracketright";
+z1=(209FX,-250FY);
+z2=(458FX,750FY);
+z3=(226FX,750FY);
+z4=(220FX,727FY);
+z5=(246FX,727FY);
+z6=(311FX,686FY);
+z7=(298FX,623FY);
+z8=(111FX,-124FY);
+z9=(86FX,-197FY);
+z10=(8FX,-228FY);
+z11=(-18FX,-228FY);
+z12=(-24FX,-250FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{43,0} .. {1,-27}z6
+{0,-5} .. {-9,-36}z7
+-- z8
+{-9,-38} .. {-7,-10}z9
+{-14,-21} .. {-38,0}z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(94,448FX#,749FY#,249FY#);
+"braceleft";
+z1=(337FX,-250FY);
+z2=(344FX,-224FY);
+z3=(263FX,-116FY);
+z4=(300FX,-23FY);
+z5=(337FX,69FY);
+z6=(289FX,209FY);
+z7=(200FX,251FY);
+z8=(303FX,288FY);
+z9=(426FX,432FY);
+z10=(436FX,526FY);
+z11=(446FX,621FY);
+z12=(580FX,725FY);
+z13=(587FX,750FY);
+z14=(503FX,740FY);
+z15=(423FX,706FY);
+z16=(314FX,572FY);
+z17=(306FX,472FY);
+z18=(297FX,387FY);
+z19=(158FX,267FY);
+z20=(150FX,234FY);
+z21=(230FX,119FY);
+z22=(195FX,31FY);
+z23=(152FX,-74FY);
+z24=(157FX,-155FY);
+z25=(220FX,-226FY);
+z26=(318FX,-250FY);
+FuF (z1
+-- z2
+{-68,15} .. {14,58}z3
+{5,21} .. {19,41}z4
+{19,40} .. {5,21}z5
+{13,56} .. {-45,38}z6
+{-16,13} .. {-43,14}z7
+{46,12} .. {23,13}z8
+{67,38} .. {15,58}z9
+{5,21} .. {2,42}z10
+{1,42} .. {5,22}z11
+{15,56} .. {74,13}z12
+-- z13
+{-35,-1} .. {-22,-6}z14
+{-28,-7} .. {-25,-15}z15
+{-61,-37} .. {-12,-52}z16
+{-6,-23} .. {1,-43}z17
+{0,-33} .. {-6,-24}z18
+{-18,-69} .. {-75,-12}z19
+-- z20
+{70,-13} .. {-17,-64}z21
+{-7,-27} .. {-17,-32}z22
+{-23,-45} .. {-6,-25}z23
+{-6,-27} .. {10,-27}z24
+{11,-30} .. {31,-18}z25
+{29,-16} .. {37,0}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(95,448FX#,750FY#,249FY#);
+"braceright";
+z1=(417FX,233FY);
+z2=(425FX,267FY);
+z3=(345FX,381FY);
+z4=(380FX,470FY);
+z5=(423FX,574FY);
+z6=(417FX,656FY);
+z7=(356FX,726FY);
+z8=(257FX,751FY);
+z9=(238FX,750FY);
+z10=(231FX,724FY);
+z11=(311FX,616FY);
+z12=(274FX,523FY);
+z13=(238FX,431FY);
+z14=(286FX,292FY);
+z15=(375FX,249FY);
+z16=(272FX,213FY);
+z17=(149FX,68FY);
+z18=(139FX,-26FY);
+z19=(129FX,-120FY);
+z20=(-5FX,-224FY);
+z21=(-12FX,-250FY);
+z22=(72FX,-239FY);
+z23=(152FX,-206FY);
+z24=(261FX,-72FY);
+z25=(269FX,29FY);
+z26=(278FX,114FY);
+z27=(417FX,233FY);
+FuF (z1
+-- z2
+{-70,12} .. {17,64}z3
+{7,27} .. {17,33}z4
+{23,45} .. {6,24}z5
+{6,27} .. {-10,28}z6
+{-11,29} .. {-30,18}z7
+{-31,17} .. {-35,-1}z8
+-- z9
+-- z10
+{69,-14} .. {-16,-58}z11
+{-5,-21} .. {-19,-41}z12
+{-19,-41} .. {-5,-20}z13
+{-13,-56} .. {45,-37}z14
+{17,-14} .. {42,-15}z15
+{-46,-12} .. {-22,-12}z16
+{-67,-38} .. {-15,-59}z17
+{-5,-21} .. {-1,-41}z18
+{-1,-41} .. {-5,-21}z19
+{-14,-57} .. {-75,-13}z20
+-- z21
+{35,2} .. {21,6}z22
+{28,7} .. {25,15}z23
+{59,37} .. {13,53}z24
+{6,24} .. {-1,44}z25
+{0,32} .. {6,24}z26
+{18,68} .. {75,11}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(96,255FX#,742FY#,0FY#);
+"buth";
+z1=(232FX,569FY);
+z2=(137FX,725FY);
+z3=(107FX,742FY);
+z4=(74FX,729FY);
+z5=(61FX,697FY);
+z6=(75FX,665FY);
+z7=(201FX,543FY);
+FuF (z1
+-- z2
+{-8,12} .. {-13,-1}z3
+{-13,0} .. {-9,-8}z4
+{-9,-9} .. {1,-12}z5
+{0,-13} .. {9,-8}z6
+-- z7
+);
+lbl (range 1 thru 7);
+endchar;
+
+beginchar(97,834FX#,437FY#,15FY#);
+"a";
+z1=(816FX,160FY);
+z2=(797FX,174FY);
+z3=(746FX,95FY);
+z4=(707FX,77FY);
+z5=(694FX,106FY);
+z6=(698FX,143FY);
+z7=(768FX,425FY);
+z8=(640FX,425FY);
+z9=(623FX,355FY);
+z10=(553FX,187FY);
+z11=(463FX,77FY);
+z12=(445FX,106FY);
+z13=(446FX,128FY);
+z14=(451FX,153FY);
+z15=(520FX,425FY);
+z16=(391FX,425FY);
+z17=(374FX,355FY);
+z18=(293FX,176FY);
+z19=(208FX,81FY);
+z20=(194FX,107FY);
+z21=(201FX,158FY);
+z22=(248FX,308FY);
+z23=(259FX,370FY);
+z24=(192FX,438FY);
+z25=(74FX,382FY);
+z26=(4FX,268FY);
+z27=(25FX,257FY);
+z28=(64FX,320FY);
+z29=(108FX,345FY);
+z30=(124FX,330FY);
+z31=(117FX,297FY);
+z32=(71FX,157FY);
+z33=(59FX,107FY);
+z34=(55FX,65FY);
+z35=(72FX,6FY);
+z36=(124FX,-15FY);
+z37=(351FX,235FY);
+z38=(331FX,155FY);
+z39=(317FX,57FY);
+z40=(331FX,3FY);
+z41=(376FX,-15FY);
+z42=(499FX,56FY);
+z43=(601FX,235FY);
+z44=(580FX,155FY);
+z45=(569FX,101FY);
+z46=(565FX,56FY);
+z47=(579FX,3FY);
+z48=(625FX,-15FY);
+z49=(742FX,46FY);
+z50=(816FX,160FY);
+FuF (z1
+-- z2
+{-23,-42} .. {-11,-11}z3
+{-11,-12} .. {-15,0}z4
+{-9,1} .. {0,18}z5
+{0,15} .. {2,10}z6
+-- z7
+-- z8
+-- z9
+{-12,-49} .. {-35,-64}z10
+{-40,-74} .. {-20,0}z11
+{-12,1} .. {0,19}z12
+{0,11} .. {0,4}z13
+{1,7} .. {2,10}z14
+-- z15
+-- z16
+-- z17
+{-14,-54} .. {-40,-66}z18
+{-39,-63} .. {-18,0}z19
+{-9,1} .. {0,16}z20
+{-1,18} .. {5,16}z21
+-- z22
+{8,24} .. {-1,17}z23
+{-1,46} .. {-43,0}z24
+{-42,-1} .. {-37,-36}z25
+{-31,-32} .. {-15,-44}z26
+-- z27
+{13,27} .. {14,15}z28
+{16,17} .. {13,-1}z29
+{11,0} .. {0,-10}z30
+{0,-11} .. {-4,-11}z31
+-- z32
+{-5,-15} .. {-3,-18}z33
+{-3,-16} .. {1,-12}z34
+{1,-26} .. {11,-13}z35
+{12,-15} .. {22,0}z36
+{64,0} .. {87,166}z37
+-- z38
+{-10,-42} .. {1,-24}z39
+{1,-24} .. {9,-11}z40
+{10,-13} .. {19,0}z41
+{44,0} .. {38,48}z42
+{29,36} .. {39,83}z43
+-- z44
+{-4,-14} .. {-4,-22}z45
+{-3,-18} .. {0,-12}z46
+{1,-24} .. {9,-11}z47
+{10,-13} .. {21,0}z48
+{42,0} .. {36,40}z49
+{23,25} .. {26,51}z50
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 50);
+endchar;
+
+beginchar(98,548FX#,432FY#,188FY#);
+"b";
+z1=(486FX,268FY);
+z2=(497FX,321FY);
+z3=(499FX,357FY);
+z4=(484FX,412FY);
+z5=(438FX,432FY);
+z6=(324FX,379FY);
+z7=(205FX,192FY);
+z8=(231FX,293FY);
+z9=(240FX,366FY);
+z10=(178FX,432FY);
+z11=(85FX,397FY);
+z12=(-11FX,262FY);
+z13=(8FX,252FY);
+z14=(96FX,339FY);
+z15=(111FX,319FY);
+z16=(108FX,293FY);
+z17=(101FX,262FY);
+z18=(4FX,-126FY);
+z19=(-6FX,-150FY);
+z20=(-21FX,-164FY);
+z21=(-67FX,-175FY);
+z22=(-71FX,-189FY);
+z23=(178FX,-189FY);
+z24=(182FX,-175FY);
+z25=(137FX,-164FY);
+z26=(129FX,-145FY);
+z27=(132FX,-126FY);
+z28=(165FX,0FY);
+z29=(441FX,0FY);
+z30=(448FX,28FY);
+z31=(173FX,28FY);
+z32=(181FX,63FY);
+z33=(256FX,232FY);
+z34=(351FX,335FY);
+z35=(363FX,312FY);
+z36=(359FX,277FY);
+z37=(325FX,141FY);
+z38=(452FX,141FY);
+FuF (z1
+{7,25} .. {1,10}z2
+{2,9} .. {-1,15}z3
+{0,23} .. {-10,14}z4
+{-10,14} .. {-20,0}z5
+{-41,-1} .. {-35,-35}z6
+{-38,-38} .. {-41,-86}z7
+-- z8
+{7,30} .. {-1,19}z9
+{-1,45} .. {-40,-1}z10
+{-33,-1} .. {-29,-23}z11
+{-37,-29} .. {-27,-61}z12
+-- z13
+{35,59} .. {24,-1}z14
+{10,0} .. {0,-13}z15
+{-2,-17} .. {0,-1}z16
+{-1,-8} .. {-3,-12}z17
+-- z18
+{-3,-10} .. {-4,-6}z19
+{-5,-7} .. {-5,-3}z20
+{-11,-7} .. {-19,0}z21
+-- z22
+-- z23
+-- z24
+{-23,1} .. {-8,6}z25
+{-5,5} .. {0,8}z26
+{0,6} .. {2,7}z27
+-- z28
+-- z29
+-- z30
+-- z31
+-- z32
+{12,48} .. {38,65}z33
+{41,69} .. {23,0}z34
+{9,0} .. {-1,-15}z35
+{0,-12} .. {-3,-11}z36
+-- z37
+-- z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(99,501FX#,443FY#,204FY#);
+"c";
+z1=(484FX,443FY);
+z2=(468FX,443FY);
+z3=(385FX,393FY);
+z4=(370FX,413FY);
+z5=(282FX,443FY);
+z6=(170FX,412FY);
+z7=(67FX,321FY);
+z8=(8FX,197FY);
+z9=(0FX,130FY);
+z10=(5FX,93FY);
+z11=(23FX,51FY);
+z12=(66FX,10FY);
+z13=(124FX,0FY);
+z14=(180FX,9FY);
+z15=(214FX,26FY);
+z16=(226FX,34FY);
+z17=(259FX,58FY);
+z18=(216FX,-107FY);
+z19=(172FX,-168FY);
+z20=(97FX,-189FY);
+z21=(57FX,-180FY);
+z22=(50FX,-165FY);
+z23=(52FX,-151FY);
+z24=(59FX,-128FY);
+z25=(61FX,-107FY);
+z26=(59FX,-93FY);
+z27=(32FX,-76FY);
+z28=(5FX,-72FY);
+z29=(-50FX,-112FY);
+z30=(-52FX,-128FY);
+z31=(-15FX,-180FY);
+z32=(94FX,-204FY);
+z33=(271FX,-149FY);
+z34=(373FX,0FY);
+z35=(328FX,362FY);
+z36=(310FX,264FY);
+z37=(269FX,100FY);
+z38=(225FX,66FY);
+z39=(200FX,55FY);
+z40=(179FX,53FY);
+z41=(140FX,77FY);
+z42=(133FX,101FY);
+z43=(132FX,128FY);
+z44=(145FX,205FY);
+z45=(212FX,374FY);
+z46=(282FX,413FY);
+z47=(310FX,400FY);
+z48=(328FX,362FY);
+FuF (z1
+-- z2
+-- z3
+{-5,8} .. {-5,6}z4
+{-20,20} .. {-39,0}z5
+{-37,0} .. {-38,-21}z6
+{-38,-20} .. {-30,-40}z7
+{-29,-39} .. {-10,-43}z8
+{-6,-23} .. {1,-22}z9
+{3,-18} .. {1,-7}z10
+{4,-16} .. {8,-12}z11
+{15,-20} .. {14,-7}z12
+{14,-7} .. {25,0}z13
+{23,0} .. {14,6}z14
+{17,9} .. {6,3}z15
+{2,3} .. {6,3}z16
+-- z17
+-- z18
+{-7,-27} .. {-22,-13}z19
+{-22,-14} .. {-28,0}z20
+{-23,0} .. {-4,6}z21
+{-4,5} .. {-1,4}z22
+{1,5} .. {0,4}z23
+-- z24
+{2,3} .. {0,11}z25
+{-2,10} .. {0,0}z26
+{-7,10} .. {-11,1}z27
+-- z28
+{-30,-1} .. {-6,-26}z29
+{-2,-6} .. {0,-5}z30
+{1,-23} .. {23,-12}z31
+{31,-17} .. {41,1}z32
+{67,0} .. {51,36}z33
+{52,37} .. {16,62}z34
+);
+FuF (z35
+{-1,-24} .. {-11,-42}z36
+-- z37
+{-18,-18} .. {-11,-5}z38
+-- z39
+{-3,-2} .. {-11,0}z40
+{-19,1} .. {-7,15}z41
+{-4,10} .. {-1,6}z42
+{-1,8} .. {0,10}z43
+{0,19} .. {8,32}z44
+{24,90} .. {21,22}z45
+{24,26} .. {23,0}z46
+{13,-2} .. {6,-7}z47
+{9,-9} .. {3,-17}z48
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 48);
+endchar;
+
+beginchar(100,578FX#,431FY#,188FY#);
+"d";
+z1=(554FX,28FY);
+z2=(430FX,28FY);
+z3=(494FX,268FY);
+z4=(508FX,356FY);
+z5=(446FX,432FY);
+z6=(301FX,345FY);
+z7=(214FX,192FY);
+z8=(239FX,293FY);
+z9=(249FX,366FY);
+z10=(187FX,432FY);
+z11=(91FX,395FY);
+z12=(-3FX,262FY);
+z13=(16FX,252FY);
+z14=(105FX,339FY);
+z15=(120FX,319FY);
+z16=(117FX,293FY);
+z17=(110FX,262FY);
+z18=(46FX,0FY);
+z19=(174FX,0FY);
+z20=(190FX,63FY);
+z21=(265FX,232FY);
+z22=(359FX,335FY);
+z23=(372FX,312FY);
+z24=(368FX,277FY);
+z25=(261FX,-126FY);
+z26=(237FX,-164FY);
+z27=(190FX,-175FY);
+z28=(187FX,-189FY);
+z29=(436FX,-189FY);
+z30=(439FX,-175FY);
+z31=(395FX,-164FY);
+z32=(387FX,-145FY);
+z33=(390FX,-126FY);
+z34=(423FX,0FY);
+z35=(546FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{10,35} .. {0,23}z4
+{-1,51} .. {-40,-1}z5
+{-52,-1} .. {-45,-57}z6
+{-27,-34} .. {-31,-68}z7
+-- z8
+{8,30} .. {-1,18}z9
+{-1,44} .. {-40,0}z10
+{-34,0} .. {-30,-25}z11
+{-36,-30} .. {-26,-59}z12
+-- z13
+{35,58} .. {24,0}z14
+{9,-1} .. {0,-13}z15
+{-2,-17} .. {0,-1}z16
+{-3,-14} .. {-1,-7}z17
+-- z18
+-- z19
+-- z20
+{12,49} .. {38,64}z21
+{41,69} .. {22,0}z22
+{9,0} .. {0,-15}z23
+{-1,-14} .. {-2,-9}z24
+-- z25
+{-5,-18} .. {-11,-7}z26
+{-12,-7} .. {-20,0}z27
+-- z28
+-- z29
+-- z30
+{-22,1} .. {-7,6}z31
+{-5,5} .. {0,7}z32
+{0,5} .. {2,8}z33
+-- z34
+-- z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(101,543FX#,624FY#,13FY#);
+"e";
+z1=(113FX,507FY);
+z2=(24FX,157FY);
+z3=(10FX,69FY);
+z4=(74FX,-13FY);
+z5=(190FX,42FY);
+z6=(306FX,233FY);
+z7=(280FX,131FY);
+z8=(271FX,58FY);
+z9=(288FX,3FY);
+z10=(333FX,-13FY);
+z11=(426FX,26FY);
+z12=(522FX,162FY);
+z13=(503FX,173FY);
+z14=(459FX,104FY);
+z15=(415FX,79FY);
+z16=(403FX,86FY);
+z17=(400FX,105FY);
+z18=(402FX,134FY);
+z19=(409FX,165FY);
+z20=(446FX,315FY);
+z21=(318FX,315FY);
+z22=(249FX,178FY);
+z23=(161FX,84FY);
+z24=(148FX,111FY);
+z25=(152FX,147FY);
+z26=(216FX,396FY);
+z27=(509FX,396FY);
+z28=(515FX,425FY);
+z29=(223FX,425FY);
+z30=(269FX,624FY);
+z31=(230FX,624FY);
+z32=(77FX,597FY);
+z33=(74FX,579FY);
+z34=(109FX,572FY);
+z35=(119FX,554FY);
+z36=(117FX,529FY);
+z37=(113FX,507FY);
+FuF (z1
+-- z2
+{-10,-40} .. {0,-19}z3
+{1,-55} .. {42,1}z4
+{41,0} .. {37,36}z5
+{41,42} .. {36,85}z6
+-- z7
+{-7,-29} .. {1,-20}z8
+{1,-27} .. {10,-10}z9
+{10,-11} .. {20,0}z10
+{32,0} .. {31,26}z11
+{36,32} .. {28,59}z12
+-- z13
+{-20,-36} .. {-9,-10}z14
+{-14,-17} .. {-16,0}z15
+{-6,1} .. {-2,4}z16
+{-2,6} .. {0,7}z17
+{0,8} .. {2,11}z18
+{4,14} .. {1,6}z19
+-- z20
+-- z21
+{-17,-43} .. {-29,-48}z22
+{-38,-63} .. {-21,0}z23
+{-9,1} .. {0,17}z24
+{0,13} .. {3,11}z25
+-- z26
+-- z27
+-- z28
+-- z29
+-- z30
+-- z31
+-- z32
+-- z33
+{19,-1} .. {5,-4}z34
+{6,-5} .. {0,-7}z35
+{-1,-12} .. {-1,-5}z36
+{-1,-10} .. {-1,-4}z37
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(102,702FX#,633FY#,188FY#);
+"f";
+z1=(657FX,207FY);
+z2=(667FX,285FY);
+z3=(620FX,395FY);
+z4=(461FX,440FY);
+z5=(483FX,528FY);
+z6=(485FX,548FY);
+z7=(436FX,614FY);
+z8=(345FX,634FY);
+z9=(223FX,608FY);
+z10=(143FX,519FY);
+z11=(138FX,491FY);
+z12=(197FX,424FY);
+z13=(327FX,409FY);
+z14=(232FX,29FY);
+z15=(164FX,55FY);
+z16=(143FX,126FY);
+z17=(159FX,237FY);
+z18=(170FX,268FY);
+z19=(38FX,270FY);
+z20=(21FX,217FY);
+z21=(15FX,189FY);
+z22=(15FX,159FY);
+z23=(69FX,39FY);
+z24=(223FX,-6FY);
+z25=(193FX,-124FY);
+z26=(167FX,-168FY);
+z27=(123FX,-175FY);
+z28=(119FX,-189FY);
+z29=(366FX,-189FY);
+z30=(369FX,-175FY);
+z31=(318FX,-139FY);
+z32=(320FX,-123FY);
+z33=(350FX,-5FY);
+z34=(557FX,61FY);
+z35=(657FX,207FY);
+z36=(358FX,534FY);
+z37=(335FX,443FY);
+z38=(278FX,454FY);
+z39=(262FX,489FY);
+z40=(265FX,510FY);
+z41=(270FX,536FY);
+z42=(291FX,582FY);
+z43=(328FX,602FY);
+z44=(361FX,558FY);
+z45=(358FX,534FY);
+z46=(528FX,208FY);
+z47=(467FX,80FY);
+z48=(358FX,31FY);
+z49=(453FX,408FY);
+z50=(544FX,320FY);
+z51=(540FX,270FY);
+z52=(528FX,208FY);
+FuF (z1
+{7,29} .. {0,23}z2
+{-2,48} .. {-30,26}z3
+{-34,30} .. {-72,0}z4
+-- z5
+{2,7} .. {0,6}z6
+{0,28} .. {-32,16}z7
+{-27,13} .. {-34,0}z8
+{-46,-1} .. {-35,-17}z9
+{-44,-20} .. {-9,-39}z10
+{-4,-10} .. {0,-9}z11
+{2,-33} .. {38,-12}z12
+{30,-10} .. {57,0}z13
+-- z14
+{-32,0} .. {-14,17}z15
+{-14,18} .. {0,29}z16
+{0,29} .. {10,45}z17
+-- z18
+-- z19
+-- z20
+{-4,-13} .. {0,-6}z21
+{-1,-6} .. {1,-14}z22
+{1,-50} .. {35,-30}z23
+{34,-30} .. {68,0}z24
+-- z25
+{-5,-23} .. {-12,-7}z26
+{-8,-4} .. {-21,0}z27
+-- z28
+-- z29
+-- z30
+{-33,1} .. {0,23}z31
+{1,8} .. {1,3}z32
+-- z33
+{81,1} .. {57,43}z34
+{52,40} .. {15,58}z35
+);
+FuF (z36
+-- z37
+{-28,0} .. {-10,8}z38
+{-10,7} .. {0,16}z39
+{0,4} .. {2,10}z40
+{2,13} .. {2,5}z41
+{4,16} .. {10,15}z42
+{12,14} .. {13,0}z43
+{21,-1} .. {1,-29}z44
+{0,-9} .. {-2,-7}z45
+);
+FuF (z46
+{-15,-56} .. {-26,-30}z47
+{-28,-32} .. {-44,0}z48
+-- z49
+{60,-2} .. {1,-57}z50
+{1,-16} .. {-3,-18}z51
+{-7,-37} .. {-1,-4}z52
+);
+lbl (range 1 thru 52);
+endchar;
+
+beginchar(103,529FX#,443FY#,188FY#);
+"g";
+z1=(511FX,28FY);
+z2=(390FX,28FY);
+z3=(442FX,239FY);
+z4=(449FX,301FY);
+z5=(404FX,408FY);
+z6=(290FX,443FY);
+z7=(117FX,368FY);
+z8=(17FX,197FY);
+z9=(6FX,116FY);
+z10=(129FX,-13FY);
+z11=(203FX,4FY);
+z12=(264FX,45FY);
+z13=(225FX,-105FY);
+z14=(197FX,-165FY);
+z15=(144FX,-172FY);
+z16=(140FX,-189FY);
+z17=(390FX,-189FY);
+z18=(394FX,-172FY);
+z19=(348FX,-144FY);
+z20=(356FX,-101FY);
+z21=(382FX,0FY);
+z22=(504FX,0FY);
+z23=(318FX,264FY);
+z24=(274FX,87FY);
+z25=(230FX,52FY);
+z26=(184FX,40FY);
+z27=(138FX,102FY);
+z28=(154FX,205FY);
+z29=(225FX,379FY);
+z30=(291FX,413FY);
+z31=(334FX,364FY);
+z32=(318FX,264FY);
+FuF (z1
+-- z2
+-- z3
+{6,22} .. {-1,19}z4
+{-1,47} .. {-29,24}z5
+{-28,24} .. {-48,-1}z6
+{-63,0} .. {-52,-50}z7
+{-48,-46} .. {-18,-68}z8
+{-8,-29} .. {1,-25}z9
+{3,-86} .. {79,0}z10
+{23,0} .. {26,12}z11
+{28,12} .. {12,15}z12
+-- z13
+{-9,-33} .. {-10,-7}z14
+{-7,-5} .. {-28,0}z15
+-- z16
+-- z17
+-- z18
+{-30,0} .. {0,19}z19
+{0,8} .. {5,21}z20
+-- z21
+-- z22
+);
+FuF (z23
+-- z24
+{-12,-15} .. {-18,-9}z25
+{-17,-8} .. {-14,0}z26
+{-30,0} .. {0,42}z27
+{0,26} .. {11,42}z28
+{21,84} .. {26,32}z29
+{18,23} .. {26,-1}z30
+{29,-1} .. {0,-32}z31
+{0,-23} .. {-11,-43}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(104,546FX#,624FY#,11FY#);
+"h";
+z1=(135FX,507FY);
+z2=(9FX,0FY);
+z3=(138FX,0FY);
+z4=(154FX,63FY);
+z5=(229FX,235FY);
+z6=(323FX,340FY);
+z7=(337FX,313FY);
+z8=(332FX,277FY);
+z9=(283FX,123FY);
+z10=(276FX,75FY);
+z11=(307FX,9FY);
+z12=(380FX,-12FY);
+z13=(467FX,39FY);
+z14=(521FX,136FY);
+z15=(507FX,143FY);
+z16=(420FX,41FY);
+z17=(398FX,65FY);
+z18=(408FX,112FY);
+z19=(458FX,268FY);
+z20=(470FX,312FY);
+z21=(473FX,357FY);
+z22=(410FX,438FY);
+z23=(193FX,223FY);
+z24=(291FX,624FY);
+z25=(252FX,624FY);
+z26=(99FX,597FY);
+z27=(96FX,579FY);
+z28=(131FX,572FY);
+z29=(140FX,554FY);
+z30=(139FX,532FY);
+z31=(135FX,507FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{12,49} .. {38,65}z5
+{41,70} .. {22,0}z6
+{9,-1} .. {1,-17}z7
+{0,-13} .. {-3,-11}z8
+-- z9
+{-5,-17} .. {1,-15}z10
+{1,-30} .. {20,-14}z11
+{19,-14} .. {29,0}z12
+{31,1} .. {27,33}z13
+{21,25} .. {15,40}z14
+-- z15
+{-33,-69} .. {-25,1}z16
+{-15,1} .. {0,15}z17
+{0,12} .. {7,19}z18
+-- z19
+{5,17} .. {3,13}z20
+{3,17} .. {-1,13}z21
+{-2,54} .. {-40,0}z22
+{-78,-1} .. {-67,-143}z23
+-- z24
+-- z25
+-- z26
+-- z27
+{18,-1} .. {5,-4}z28
+{6,-5} .. {0,-7}z29
+{0,-9} .. {0,-6}z30
+{-1,-10} .. {-2,-6}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(105,546FX#,624FY#,188FY#);
+"i";
+z1=(190FX,223FY);
+z2=(289FX,624FY);
+z3=(250FX,624FY);
+z4=(97FX,597FY);
+z5=(94FX,579FY);
+z6=(129FX,572FY);
+z7=(138FX,554FY);
+z8=(138FX,541FY);
+z9=(137FX,529FY);
+z10=(133FX,507FY);
+z11=(-17FX,-96FY);
+z12=(-23FX,-117FY);
+z13=(-30FX,-131FY);
+z14=(-48FX,-158FY);
+z15=(-88FX,-171FY);
+z16=(-93FX,-189FY);
+z17=(134FX,-189FY);
+z18=(139FX,-171FY);
+z19=(106FX,-156FY);
+z20=(104FX,-146FY);
+z21=(112FX,-94FY);
+z22=(152FX,63FY);
+z23=(227FX,235FY);
+z24=(321FX,340FY);
+z25=(335FX,313FY);
+z26=(330FX,277FY);
+z27=(281FX,123FY);
+z28=(274FX,75FY);
+z29=(305FX,9FY);
+z30=(378FX,-12FY);
+z31=(465FX,39FY);
+z32=(519FX,136FY);
+z33=(505FX,143FY);
+z34=(418FX,41FY);
+z35=(396FX,65FY);
+z36=(406FX,112FY);
+z37=(456FX,268FY);
+z38=(468FX,312FY);
+z39=(471FX,357FY);
+z40=(408FX,438FY);
+z41=(190FX,223FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{18,-1} .. {5,-4}z6
+{6,-5} .. {0,-7}z7
+{0,-3} .. {0,-6}z8
+{0,-5} .. {0,-3}z9
+{-2,-10} .. {-1,-4}z10
+-- z11
+{-2,-5} .. {-2,-9}z12
+{-3,-7} .. {-2,-2}z13
+{-7,-14} .. {-5,-4}z14
+{-7,-7} .. {-19,-2}z15
+-- z16
+-- z17
+-- z18
+{-18,3} .. {-3,7}z19
+{-2,3} .. {1,4}z20
+{0,15} .. {5,20}z21
+-- z22
+{12,50} .. {38,65}z23
+{41,70} .. {22,0}z24
+{9,-1} .. {1,-17}z25
+{0,-13} .. {-3,-11}z26
+-- z27
+{-5,-17} .. {1,-15}z28
+{1,-30} .. {20,-14}z29
+{19,-14} .. {29,0}z30
+{31,1} .. {27,33}z31
+{21,25} .. {15,40}z32
+-- z33
+{-33,-69} .. {-25,1}z34
+{-15,1} .. {0,15}z35
+{0,12} .. {7,19}z36
+-- z37
+{5,17} .. {3,13}z38
+{3,17} .. {-1,13}z39
+{-2,54} .. {-40,0}z40
+{-79,-1} .. {-67,-143}z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(106,476FX#,440FY#,188FY#);
+"j";
+z1=(437FX,288FY);
+z2=(441FX,306FY);
+z3=(441FX,316FY);
+z4=(415FX,390FY);
+z5=(291FX,440FY);
+z6=(121FX,369FY);
+z7=(15FX,221FY);
+z8=(11FX,195FY);
+z9=(15FX,175FY);
+z10=(25FX,157FY);
+z11=(91FX,110FY);
+z12=(157FX,60FY);
+z13=(129FX,28FY);
+z14=(57FX,-18FY);
+z15=(-40FX,-83FY);
+z16=(-86FX,-142FY);
+z17=(-87FX,-158FY);
+z18=(-77FX,-179FY);
+z19=(-36FX,-189FY);
+z20=(309FX,-189FY);
+z21=(317FX,-160FY);
+z22=(108FX,-160FY);
+z23=(57FX,-144FY);
+z24=(49FX,-120FY);
+z25=(50FX,-103FY);
+z26=(76FX,-53FY);
+z27=(120FX,-14FY);
+z28=(225FX,60FY);
+z29=(292FX,106FY);
+z30=(368FX,166FY);
+z31=(421FX,231FY);
+z32=(437FX,288FY);
+z33=(305FX,239FY);
+z34=(293FX,204FY);
+z35=(269FX,155FY);
+z36=(197FX,76FY);
+z37=(220FX,121FY);
+z38=(221FX,134FY);
+z39=(215FX,155FY);
+z40=(175FX,193FY);
+z41=(130FX,239FY);
+z42=(121FX,275FY);
+z43=(121FX,288FY);
+z44=(124FX,303FY);
+z45=(177FX,378FY);
+z46=(230FX,398FY);
+z47=(293FX,344FY);
+z48=(308FX,278FY);
+z49=(305FX,239FY);
+FuF (z1
+-- z2
+{0,7} .. {0,0}z3
+{-1,27} .. {-16,23}z4
+{-25,34} .. {-58,-1}z5
+{-56,0} .. {-57,-47}z6
+{-57,-47} .. {-13,-52}z7
+{-3,-11} .. {0,-6}z8
+{2,-10} .. {1,-4}z9
+{2,-5} .. {5,-7}z10
+{15,-24} .. {29,-7}z11
+{48,-12} .. {-3,-21}z12
+{-3,-11} .. {-15,-10}z13
+-- z14
+-- z15
+{-25,-16} .. {-6,-23}z16
+{-1,-4} .. {1,-7}z17
+{1,-11} .. {6,-3}z18
+{11,-7} .. {16,0}z19
+-- z20
+-- z21
+-- z22
+{-25,0} .. {-9,11}z23
+{-5,8} .. {0,7}z24
+{1,8} .. {0,3}z25
+{7,20} .. {10,13}z26
+{9,12} .. {20,14}z27
+-- z28
+-- z29
+{38,27} .. {13,13}z30
+{27,27} .. {9,16}z31
+{4,9} .. {6,29}z32
+);
+FuF (z33
+{-8,-23} .. {0,-1}z34
+{-4,-10} .. {-12,-23}z35
+{-13,-28} .. {-35,-25}z36
+{12,16} .. {4,14}z37
+-- z38
+{0,4} .. {-4,10}z39
+{-5,15} .. {-21,11}z40
+{-21,11} .. {-9,20}z41
+{-6,15} .. {0,9}z42
+{0,3} .. {0,5}z43
+{1,4} .. {1,7}z44
+{10,37} .. {25,13}z45
+{24,13} .. {11,0}z46
+{27,0} .. {15,-36}z47
+{11,-25} .. {-1,-19}z48
+{0,-12} .. {-2,-14}z49
+);
+lbl (range 1 thru 49);
+endchar;
+
+beginchar(107,512FX#,624FY#,188FY#);
+"k";
+z1=(159FX,145FY);
+z2=(277FX,624FY);
+z3=(237FX,624FY);
+z4=(86FX,597FY);
+z5=(82FX,579FY);
+z6=(127FX,554FY);
+z7=(125FX,529FY);
+z8=(121FX,507FY);
+z9=(29FX,143FY);
+z10=(19FX,65FY);
+z11=(78FX,-13FY);
+z12=(184FX,30FY);
+z13=(302FX,211FY);
+z14=(226FX,-96FY);
+z15=(221FX,-114FY);
+z16=(214FX,-133FY);
+z17=(195FX,-158FY);
+z18=(157FX,-171FY);
+z19=(153FX,-189FY);
+z20=(376FX,-189FY);
+z21=(380FX,-171FY);
+z22=(345FX,-156FY);
+z23=(344FX,-146FY);
+z24=(353FX,-94FY);
+z25=(483FX,425FY);
+z26=(354FX,425FY);
+z27=(338FX,358FY);
+z28=(260FX,185FY);
+z29=(171FX,89FY);
+z30=(160FX,89FY);
+z31=(153FX,105FY);
+z32=(159FX,145FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{30,-2} .. {0,-15}z6
+{0,-12} .. {-1,-5}z7
+{-1,-7} .. {-2,-8}z8
+-- z9
+{-7,-31} .. {1,-21}z10
+{2,-53} .. {37,1}z11
+{39,0} .. {32,28}z12
+{39,36} .. {40,85}z13
+-- z14
+{-1,-6} .. {-2,-6}z15
+{-3,-6} .. {-2,-6}z16
+{-7,-11} .. {-6,-5}z17
+{-7,-7} .. {-18,-2}z18
+-- z19
+-- z20
+-- z21
+{-19,3} .. {-4,7}z22
+{-1,2} .. {0,5}z23
+{1,13} .. {5,22}z24
+-- z25
+-- z26
+-- z27
+{-13,-51} .. {-39,-64}z28
+{-40,-64} .. {-20,0}z29
+-- z30
+{-5,2} .. {0,9}z31
+{0,13} .. {4,14}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(108,316FX#,424FY#,188FY#);
+"l";
+z1=(242FX,425FY);
+z2=(111FX,425FY);
+z3=(-42FX,-189FY);
+z4=(210FX,-189FY);
+z5=(217FX,-160FY);
+z6=(140FX,-160FY);
+z7=(104FX,-145FY);
+z8=(110FX,-94FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-21,0} .. {-3,10}z7
+{-2,11} .. {5,23}z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(109,591FX#,637FY#,13FY#);
+"m";
+z1=(652FX,558FY);
+z2=(654FX,575FY);
+z3=(636FX,614FY);
+z4=(557FX,637FY);
+z5=(435FX,604FY);
+z6=(385FX,559FY);
+z7=(362FX,498FY);
+z8=(371FX,447FY);
+z9=(381FX,399FY);
+z10=(380FX,384FY);
+z11=(377FX,361FY);
+z12=(310FX,202FY);
+z13=(208FX,84FY);
+z14=(194FX,111FY);
+z15=(199FX,147FY);
+z16=(248FX,301FY);
+z17=(260FX,371FY);
+z18=(183FX,438FY);
+z19=(80FX,384FY);
+z20=(7FX,268FY);
+z21=(26FX,257FY);
+z22=(68FX,321FY);
+z23=(110FX,345FY);
+z24=(125FX,329FY);
+z25=(121FX,306FY);
+z26=(73FX,157FY);
+z27=(58FX,67FY);
+z28=(73FX,8FY);
+z29=(121FX,-13FY);
+z30=(237FX,40FY);
+z31=(353FX,233FY);
+z32=(328FX,131FY);
+z33=(318FX,58FY);
+z34=(335FX,3FY);
+z35=(380FX,-13FY);
+z36=(473FX,26FY);
+z37=(570FX,162FY);
+z38=(551FX,173FY);
+z39=(507FX,104FY);
+z40=(463FX,79FY);
+z41=(450FX,86FY);
+z42=(447FX,105FY);
+z43=(450FX,134FY);
+z44=(456FX,165FY);
+z45=(502FX,345FY);
+z46=(505FX,364FY);
+z47=(494FX,401FY);
+z48=(463FX,442FY);
+z49=(432FX,484FY);
+z50=(423FX,515FY);
+z51=(456FX,578FY);
+z52=(505FX,599FY);
+z53=(529FX,593FY);
+z54=(537FX,583FY);
+z55=(540FX,554FY);
+z56=(539FX,542FY);
+z57=(552FX,508FY);
+z58=(585FX,499FY);
+z59=(626FX,514FY);
+z60=(652FX,558FY);
+FuF (z1
+{1,3} .. {0,9}z2
+{-1,15} .. {-11,11}z3
+{-16,16} .. {-37,0}z4
+{-45,0} .. {-36,-22}z5
+{-19,-12} .. {-14,-18}z6
+{-16,-21} .. {1,-19}z7
+{0,-12} .. {6,-22}z8
+{7,-21} .. {0,-11}z9
+{0,-5} .. {0,-5}z10
+{-1,-9} .. {-1,-6}z11
+{-7,-37} .. {-37,-69}z12
+{-42,-79} .. {-25,0}z13
+{-9,1} .. {-1,17}z14
+{0,13} .. {3,11}z15
+-- z16
+{8,28} .. {-1,18}z17
+{-1,45} .. {-50,-1}z18
+{-32,0} .. {-36,-36}z19
+{-36,-36} .. {-13,-41}z20
+-- z21
+{13,27} .. {15,16}z22
+{15,16} .. {13,0}z23
+{10,-1} .. {0,-10}z24
+{-1,-9} .. {-2,-6}z25
+-- z26
+{-10,-32} .. {0,-28}z27
+{1,-25} .. {9,-15}z28
+{12,-14} .. {20,1}z29
+{42,0} .. {35,35}z30
+{42,40} .. {35,88}z31
+-- z32
+{-7,-30} .. {1,-19}z33
+{1,-26} .. {10,-11}z34
+{11,-11} .. {19,0}z35
+{32,0} .. {30,26}z36
+{36,31} .. {29,60}z37
+-- z38
+{-21,-36} .. {-9,-10}z39
+{-14,-17} .. {-16,0}z40
+{-7,1} .. {-2,4}z41
+{-1,6} .. {0,7}z42
+{0,8} .. {2,11}z43
+{3,14} .. {1,6}z44
+-- z45
+{2,8} .. {0,5}z46
+{-1,13} .. {-6,11}z47
+{-5,10} .. {-15,17}z48
+{-15,18} .. {-6,10}z49
+{-6,12} .. {0,8}z50
+{0,23} .. {22,19}z51
+{15,14} .. {17,0}z52
+{8,0} .. {8,-4}z53
+{6,-2} .. {0,-4}z54
+{2,-4} .. {0,-15}z55
+{-1,-4} .. {0,-4}z56
+{1,-17} .. {8,-6}z57
+{10,-6} .. {12,1}z58
+{14,0} .. {14,10}z59
+{15,13} .. {2,16}z60
+);
+lbl (range 1 thru 60);
+endchar;
+
+beginchar(110,548FX#,631FY#,13FY#);
+"n";
+z1=(533FX,162FY);
+z2=(514FX,173FY);
+z3=(470FX,104FY);
+z4=(426FX,79FY);
+z5=(414FX,86FY);
+z6=(410FX,105FY);
+z7=(413FX,134FY);
+z8=(419FX,165FY);
+z9=(485FX,425FY);
+z10=(356FX,425FY);
+z11=(340FX,361FY);
+z12=(265FX,190FY);
+z13=(171FX,84FY);
+z14=(158FX,109FY);
+z15=(162FX,147FY);
+z16=(217FX,368FY);
+z17=(239FX,430FY);
+z18=(277FX,469FY);
+z19=(279FX,476FY);
+z20=(224FX,495FY);
+z21=(204FX,536FY);
+z22=(205FX,545FY);
+z23=(232FX,589FY);
+z24=(282FX,605FY);
+z25=(338FX,587FY);
+z26=(382FX,545FY);
+z27=(403FX,558FY);
+z28=(336FX,616FY);
+z29=(271FX,632FY);
+z30=(155FX,608FY);
+z31=(98FX,543FY);
+z32=(96FX,523FY);
+z33=(149FX,465FY);
+z34=(96FX,391FY);
+z35=(81FX,338FY);
+z36=(36FX,157FY);
+z37=(25FX,110FY);
+z38=(22FX,62FY);
+z39=(37FX,6FY);
+z40=(84FX,-13FY);
+z41=(316FX,233FY);
+z42=(291FX,131FY);
+z43=(281FX,58FY);
+z44=(298FX,3FY);
+z45=(344FX,-13FY);
+z46=(436FX,26FY);
+z47=(533FX,162FY);
+FuF (z1
+-- z2
+{-20,-36} .. {-9,-10}z3
+{-14,-17} .. {-16,0}z4
+{-6,1} .. {-1,4}z5
+{-2,6} .. {-1,7}z6
+{0,8} .. {2,11}z7
+{3,14} .. {1,6}z8
+-- z9
+-- z10
+-- z11
+{-12,-48} .. {-38,-65}z12
+{-41,-71} .. {-22,0}z13
+{-9,1} .. {0,16}z14
+{-1,11} .. {3,14}z15
+-- z16
+{7,28} .. {8,13}z17
+{9,15} .. {16,11}z18
+-- z19
+{-25,1} .. {-12,12}z20
+{-13,11} .. {-1,16}z21
+{1,3} .. {0,3}z22
+{4,18} .. {14,11}z23
+{15,10} .. {19,0}z24
+{19,0} .. {19,-12}z25
+{19,-11} .. {10,-17}z26
+-- z27
+{-16,25} .. {-29,14}z28
+{-22,11} .. {-21,0}z29
+{-48,-1} .. {-29,-15}z30
+{-31,-15} .. {-8,-28}z31
+{-1,-7} .. {0,-6}z32
+{1,-30} .. {35,-8}z33
+{-24,-18} .. {-11,-31}z34
+{-3,-5} .. {-7,-30}z35
+-- z36
+{-6,-24} .. {-2,-7}z37
+{-2,-17} .. {1,-15}z38
+{0,-24} .. {10,-13}z39
+{10,-13} .. {21,1}z40
+{82,1} .. {73,163}z41
+-- z42
+{-7,-30} .. {1,-19}z43
+{1,-26} .. {10,-11}z44
+{11,-11} .. {20,0}z45
+{31,0} .. {30,26}z46
+{36,31} .. {29,60}z47
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 47);
+endchar;
+
+beginchar(111,599FX#,436FY#,13FY#);
+"o";
+z1=(572FX,158FY);
+z2=(553FX,166FY);
+z3=(513FX,105FY);
+z4=(476FX,81FY);
+z5=(451FX,105FY);
+z6=(458FX,143FY);
+z7=(496FX,268FY);
+z8=(510FX,357FY);
+z9=(496FX,413FY);
+z10=(448FX,437FY);
+z11=(303FX,347FY);
+z12=(215FX,192FY);
+z13=(241FX,293FY);
+z14=(251FX,367FY);
+z15=(188FX,437FY);
+z16=(72FX,377FY);
+z17=(-1FX,262FY);
+z18=(18FX,252FY);
+z19=(62FX,321FY);
+z20=(106FX,344FY);
+z21=(121FX,321FY);
+z22=(111FX,262FY);
+z23=(47FX,0FY);
+z24=(176FX,0FY);
+z25=(192FX,63FY);
+z26=(267FX,235FY);
+z27=(361FX,339FY);
+z28=(374FX,313FY);
+z29=(370FX,277FY);
+z30=(321FX,123FY);
+z31=(312FX,67FY);
+z32=(337FX,6FY);
+z33=(404FX,-13FY);
+z34=(505FX,49FY);
+z35=(572FX,158FY);
+FuF (z1
+-- z2
+{-19,-32} .. {-7,-9}z3
+{-14,-16} .. {-10,0}z4
+{-16,1} .. {0,16}z5
+{1,15} .. {4,10}z6
+-- z7
+{10,33} .. {-1,26}z8
+{0,24} .. {-9,13}z9
+{-10,16} .. {-21,0}z10
+{-51,-1} .. {-46,-59}z11
+{-27,-36} .. {-32,-68}z12
+-- z13
+{7,30} .. {-1,19}z14
+{-2,46} .. {-40,0}z15
+{-41,0} .. {-36,-40}z16
+{-29,-31} .. {-20,-46}z17
+-- z18
+{21,36} .. {9,10}z19
+{14,15} .. {15,0}z20
+{10,0} .. {0,-16}z21
+{-2,-22} .. {-5,-18}z22
+-- z23
+-- z24
+-- z25
+{12,49} .. {38,66}z26
+{40,70} .. {23,0}z27
+{8,-1} .. {0,-17}z28
+{1,-13} .. {-3,-11}z29
+-- z30
+{-6,-21} .. {0,-16}z31
+{1,-28} .. {16,-13}z32
+{16,-13} .. {28,0}z33
+{31,0} .. {36,42}z34
+{31,35} .. {14,37}z35
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(112,793FX#,437FY#,188FY#);
+"p";
+z1=(762FX,425FY);
+z2=(633FX,425FY);
+z3=(616FX,355FY);
+z4=(546FX,187FY);
+z5=(455FX,77FY);
+z6=(437FX,106FY);
+z7=(438FX,128FY);
+z8=(444FX,153FY);
+z9=(512FX,425FY);
+z10=(384FX,425FY);
+z11=(366FX,355FY);
+z12=(286FX,176FY);
+z13=(201FX,81FY);
+z14=(186FX,107FY);
+z15=(189FX,134FY);
+z16=(194FX,158FY);
+z17=(241FX,308FY);
+z18=(252FX,372FY);
+z19=(183FX,438FY);
+z20=(67FX,381FY);
+z21=(-2FX,269FY);
+z22=(17FX,257FY);
+z23=(100FX,345FY);
+z24=(117FX,329FY);
+z25=(112FX,305FY);
+z26=(63FX,157FY);
+z27=(51FX,107FY);
+z28=(47FX,65FY);
+z29=(64FX,6FY);
+z30=(117FX,-15FY);
+z31=(344FX,235FY);
+z32=(324FX,155FY);
+z33=(310FX,57FY);
+z34=(324FX,3FY);
+z35=(369FX,-15FY);
+z36=(497FX,64FY);
+z37=(577FX,200FY);
+z38=(495FX,-126FY);
+z39=(471FX,-164FY);
+z40=(425FX,-175FY);
+z41=(422FX,-189FY);
+z42=(671FX,-189FY);
+z43=(674FX,-175FY);
+z44=(630FX,-164FY);
+z45=(622FX,-145FY);
+z46=(625FX,-126FY);
+FuF (z1
+-- z2
+-- z3
+{-12,-47} .. {-35,-65}z4
+{-40,-74} .. {-21,0}z5
+{-12,1} .. {0,19}z6
+{1,11} .. {0,4}z7
+{3,12} .. {1,5}z8
+-- z9
+-- z10
+-- z11
+{-13,-54} .. {-40,-65}z12
+{-39,-63} .. {-17,0}z13
+{-10,1} .. {0,16}z14
+{0,6} .. {2,12}z15
+{2,12} .. {2,4}z16
+-- z17
+{7,24} .. {0,18}z18
+{-1,44} .. {-45,0}z19
+{-41,-1} .. {-37,-37}z20
+{-32,-32} .. {-14,-42}z21
+-- z22
+{27,60} .. {28,-1}z23
+{11,0} .. {0,-11}z24
+{-2,-9} .. {-1,-7}z25
+-- z26
+{-7,-22} .. {-3,-11}z27
+{-3,-16} .. {0,-12}z28
+{1,-26} .. {10,-14}z29
+{13,-15} .. {22,0}z30
+{64,0} .. {88,166}z31
+-- z32
+{-10,-42} .. {1,-24}z33
+{1,-24} .. {9,-12}z34
+{11,-12} .. {19,0}z35
+{45,0} .. {41,53}z36
+{24,30} .. {30,61}z37
+-- z38
+{-4,-18} .. {-12,-7}z39
+{-11,-7} .. {-19,0}z40
+-- z41
+-- z42
+-- z43
+{-22,1} .. {-7,6}z44
+{-5,5} .. {0,8}z45
+{0,5} .. {2,8}z46
+);
+lbl (range 1 thru 46);
+endchar;
+
+beginchar(113,514FX#,442FY#,188FY#);
+"q";
+z1=(469FX,214FY);
+z2=(478FX,285FY);
+z3=(432FX,399FY);
+z4=(319FX,443FY);
+z5=(163FX,391FY);
+z6=(62FX,242FY);
+z7=(-14FX,-59FY);
+z8=(-104FX,-59FY);
+z9=(-112FX,-90FY);
+z10=(-21FX,-90FY);
+z11=(-27FX,-113FY);
+z12=(-49FX,-161FY);
+z13=(-93FX,-172FY);
+z14=(-98FX,-189FY);
+z15=(147FX,-189FY);
+z16=(152FX,-172FY);
+z17=(97FX,-145FY);
+z18=(102FX,-113FY);
+z19=(108FX,-89FY);
+z20=(401FX,-89FY);
+z21=(408FX,-59FY);
+z22=(115FX,-59FY);
+z23=(145FX,61FY);
+z24=(151FX,43FY);
+z25=(245FX,5FY);
+z26=(392FX,70FY);
+z27=(469FX,214FY);
+z28=(333FX,214FY);
+z29=(285FX,93FY);
+z30=(228FX,52FY);
+z31=(180FX,64FY);
+z32=(157FX,109FY);
+z33=(205FX,298FY);
+z34=(241FX,373FY);
+z35=(311FX,413FY);
+z36=(342FX,398FY);
+z37=(354FX,349FY);
+z38=(333FX,214FY);
+FuF (z1
+{7,27} .. {-1,21}z2
+{-2,48} .. {-29,28}z3
+{-32,30} .. {-44,0}z4
+{-57,-1} .. {-47,-33}z5
+{-52,-38} .. {-15,-61}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{-6,-25} .. {-9,-7}z12
+{-9,-7} .. {-20,0}z13
+-- z14
+-- z15
+-- z16
+{-37,0} .. {0,18}z17
+{0,7} .. {4,14}z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+{2,-7} .. {2,-6}z24
+{11,-26} .. {51,1}z25
+{57,0} .. {41,43}z26
+{37,38} .. {14,58}z27
+);
+FuF (z28
+{-14,-54} .. {-18,-27}z29
+{-19,-27} .. {-19,0}z30
+{-20,1} .. {-12,7}z31
+{-12,10} .. {-4,20}z32
+-- z33
+{6,28} .. {17,22}z34
+{22,27} .. {25,-1}z35
+{13,0} .. {7,-10}z36
+{8,-11} .. {0,-22}z37
+{0,-37} .. {-14,-53}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(114,584FX#,432FY#,188FY#);
+"r";
+z1=(557FX,136FY);
+z2=(543FX,143FY);
+z3=(499FX,75FY);
+z4=(456FX,47FY);
+z5=(434FX,68FY);
+z6=(444FX,112FY);
+z7=(494FX,268FY);
+z8=(506FX,311FY);
+z9=(510FX,356FY);
+z10=(493FX,412FY);
+z11=(446FX,432FY);
+z12=(302FX,344FY);
+z13=(214FX,192FY);
+z14=(239FX,293FY);
+z15=(249FX,366FY);
+z16=(187FX,432FY);
+z17=(93FX,397FY);
+z18=(-3FX,262FY);
+z19=(16FX,252FY);
+z20=(105FX,339FY);
+z21=(120FX,319FY);
+z22=(117FX,293FY);
+z23=(110FX,262FY);
+z24=(12FX,-126FY);
+z25=(2FX,-150FY);
+z26=(-13FX,-164FY);
+z27=(-59FX,-175FY);
+z28=(-62FX,-189FY);
+z29=(187FX,-189FY);
+z30=(190FX,-175FY);
+z31=(146FX,-164FY);
+z32=(138FX,-145FY);
+z33=(140FX,-126FY);
+z34=(190FX,63FY);
+z35=(257FX,219FY);
+z36=(359FX,335FY);
+z37=(373FX,311FY);
+z38=(368FX,277FY);
+z39=(320FX,123FY);
+z40=(312FX,76FY);
+z41=(343FX,13FY);
+z42=(416FX,-6FY);
+z43=(505FX,44FY);
+z44=(557FX,136FY);
+FuF (z1
+-- z2
+{-12,-26} .. {-17,-19}z3
+{-17,-19} .. {-12,0}z4
+{-15,0} .. {0,14}z5
+{0,10} .. {7,19}z6
+-- z7
+{6,18} .. {2,11}z8
+{3,17} .. {0,13}z9
+{-1,23} .. {-10,14}z10
+{-10,14} .. {-21,0}z11
+{-51,-1} .. {-45,-58}z12
+{-27,-34} .. {-31,-67}z13
+-- z14
+{8,30} .. {-1,18}z15
+{-1,45} .. {-40,-1}z16
+{-34,-1} .. {-29,-23}z17
+{-37,-29} .. {-27,-61}z18
+-- z19
+{35,58} .. {24,0}z20
+{9,-1} .. {0,-13}z21
+{-2,-17} .. {0,-1}z22
+{-4,-15} .. {-1,-6}z23
+-- z24
+{-3,-10} .. {-4,-6}z25
+{-4,-6} .. {-6,-3}z26
+{-11,-7} .. {-20,0}z27
+-- z28
+-- z29
+-- z30
+{-22,1} .. {-8,6}z31
+{-5,5} .. {0,8}z32
+{0,6} .. {1,7}z33
+-- z34
+{10,40} .. {34,64}z35
+{42,77} .. {26,0}z36
+{9,-1} .. {1,-15}z37
+{0,-11} .. {-3,-11}z38
+-- z39
+{-6,-17} .. {0,-14}z40
+{1,-30} .. {19,-12}z41
+{19,-13} .. {29,0}z42
+{32,1} .. {27,32}z43
+{22,25} .. {13,36}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(115,585FX#,437FY#,13FY#);
+"s";
+z1=(561FX,162FY);
+z2=(542FX,173FY);
+z3=(498FX,104FY);
+z4=(454FX,79FY);
+z5=(442FX,86FY);
+z6=(439FX,105FY);
+z7=(441FX,134FY);
+z8=(448FX,165FY);
+z9=(513FX,425FY);
+z10=(385FX,425FY);
+z11=(369FX,361FY);
+z12=(294FX,190FY);
+z13=(199FX,84FY);
+z14=(186FX,111FY);
+z15=(191FX,147FY);
+z16=(239FX,301FY);
+z17=(252FX,372FY);
+z18=(185FX,438FY);
+z19=(64FX,376FY);
+z20=(-1FX,268FY);
+z21=(18FX,257FY);
+z22=(99FX,345FY);
+z23=(118FX,329FY);
+z24=(115FX,312FY);
+z25=(64FX,157FY);
+z26=(53FX,112FY);
+z27=(49FX,67FY);
+z28=(65FX,8FY);
+z29=(113FX,-13FY);
+z30=(228FX,42FY);
+z31=(345FX,233FY);
+z32=(319FX,131FY);
+z33=(310FX,58FY);
+z34=(327FX,3FY);
+z35=(372FX,-13FY);
+z36=(464FX,26FY);
+z37=(561FX,162FY);
+FuF (z1
+-- z2
+{-21,-37} .. {-8,-9}z3
+{-14,-17} .. {-16,0}z4
+{-7,1} .. {-1,4}z5
+{-2,6} .. {0,7}z6
+{-1,8} .. {2,11}z7
+{4,14} .. {1,6}z8
+-- z9
+-- z10
+-- z11
+{-12,-48} .. {-38,-65}z12
+{-41,-71} .. {-23,0}z13
+{-8,1} .. {0,17}z14
+{-1,12} .. {4,12}z15
+-- z16
+{9,30} .. {0,18}z17
+{-2,44} .. {-43,0}z18
+{-44,-1} .. {-37,-40}z19
+{-28,-30} .. {-15,-42}z20
+-- z21
+{29,60} .. {25,-1}z22
+{12,0} .. {1,-11}z23
+{0,-6} .. {-2,-5}z24
+-- z25
+{-4,-12} .. {-3,-18}z26
+{-3,-18} .. {1,-12}z27
+{1,-24} .. {10,-16}z28
+{12,-14} .. {20,1}z29
+{41,0} .. {36,36}z30
+{42,42} .. {36,85}z31
+-- z32
+{-7,-29} .. {1,-20}z33
+{1,-27} .. {11,-10}z34
+{10,-11} .. {20,0}z35
+{31,0} .. {30,26}z36
+{36,32} .. {28,59}z37
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(116,831FX#,437FY#,188FY#);
+"t";
+z1=(805FX,162FY);
+z2=(786FX,170FY);
+z3=(744FX,104FY);
+z4=(703FX,79FY);
+z5=(682FX,106FY);
+z6=(687FX,132FY);
+z7=(728FX,268FY);
+z8=(743FX,357FY);
+z9=(728FX,414FY);
+z10=(680FX,438FY);
+z11=(580FX,395FY);
+z12=(465FX,229FY);
+z13=(514FX,425FY);
+z14=(384FX,425FY);
+z15=(368FX,362FY);
+z16=(283FX,176FY);
+z17=(199FX,81FY);
+z18=(184FX,107FY);
+z19=(187FX,134FY);
+z20=(192FX,158FY);
+z21=(239FX,308FY);
+z22=(250FX,371FY);
+z23=(179FX,438FY);
+z24=(65FX,380FY);
+z25=(-3FX,268FY);
+z26=(16FX,257FY);
+z27=(55FX,320FY);
+z28=(100FX,345FY);
+z29=(115FX,327FY);
+z30=(109FX,297FY);
+z31=(62FX,157FY);
+z32=(49FX,107FY);
+z33=(45FX,65FY);
+z34=(63FX,6FY);
+z35=(115FX,-15FY);
+z36=(220FX,41FY);
+z37=(331FX,214FY);
+z38=(254FX,-96FY);
+z39=(241FX,-133FY);
+z40=(223FX,-158FY);
+z41=(184FX,-171FY);
+z42=(179FX,-189FY);
+z43=(406FX,-189FY);
+z44=(411FX,-171FY);
+z45=(378FX,-156FY);
+z46=(376FX,-146FY);
+z47=(384FX,-94FY);
+z48=(424FX,63FY);
+z49=(499FX,235FY);
+z50=(593FX,340FY);
+z51=(610FX,320FY);
+z52=(607FX,298FY);
+z53=(602FX,277FY);
+z54=(554FX,123FY);
+z55=(544FX,62FY);
+z56=(632FX,-13FY);
+z57=(741FX,53FY);
+z58=(805FX,162FY);
+FuF (z1
+-- z2
+{-15,-29} .. {-13,-15}z3
+{-15,-17} .. {-12,0}z4
+{-14,1} .. {-1,17}z5
+{2,14} .. {2,4}z6
+-- z7
+{11,34} .. {0,25}z8
+{-1,26} .. {-9,13}z9
+{-11,16} .. {-21,0}z10
+{-35,0} .. {-32,-28}z11
+{-41,-36} .. {-36,-75}z12
+-- z13
+-- z14
+-- z15
+{-14,-57} .. {-42,-67}z16
+{-41,-63} .. {-15,0}z17
+{-10,1} .. {0,16}z18
+{0,8} .. {2,10}z19
+{3,14} .. {1,2}z20
+-- z21
+{8,25} .. {-1,17}z22
+{-1,45} .. {-46,0}z23
+{-40,-1} .. {-36,-38}z24
+{-31,-32} .. {-15,-43}z25
+-- z26
+{12,27} .. {14,16}z27
+{16,17} .. {14,-1}z28
+{10,0} .. {0,-12}z29
+{-1,-11} .. {-3,-9}z30
+-- z31
+{-8,-22} .. {-2,-11}z32
+{-3,-15} .. {0,-13}z33
+{1,-26} .. {11,-14}z34
+{12,-14} .. {22,0}z35
+{37,0} .. {33,37}z36
+{31,35} .. {43,81}z37
+-- z38
+{-5,-15} .. {-3,-10}z39
+{-3,-8} .. {-9,-9}z40
+{-7,-7} .. {-18,-2}z41
+-- z42
+-- z43
+-- z44
+{-18,3} .. {-4,7}z45
+{-2,3} .. {0,4}z46
+{0,15} .. {5,20}z47
+-- z48
+{13,51} .. {37,64}z49
+{41,71} .. {22,-1}z50
+{11,0} .. {0,-13}z51
+{-2,-14} .. {0,-1}z52
+{-1,-9} .. {-1,-5}z53
+-- z54
+{-7,-22} .. {1,-19}z55
+{1,-51} .. {58,1}z56
+{36,0} .. {36,44}z57
+{28,33} .. {15,39}z58
+);
+lbl (range 1 thru 58);
+endchar;
+
+beginchar(117,889FX#,436FY#,13FY#);
+"u";
+z1=(572FX,158FY);
+z2=(553FX,166FY);
+z3=(513FX,105FY);
+z4=(476FX,81FY);
+z5=(451FX,105FY);
+z6=(458FX,143FY);
+z7=(496FX,268FY);
+z8=(510FX,357FY);
+z9=(496FX,413FY);
+z10=(448FX,437FY);
+z11=(303FX,347FY);
+z12=(215FX,192FY);
+z13=(241FX,293FY);
+z14=(251FX,367FY);
+z15=(188FX,437FY);
+z16=(72FX,377FY);
+z17=(-1FX,262FY);
+z18=(18FX,252FY);
+z19=(62FX,321FY);
+z20=(106FX,344FY);
+z21=(121FX,321FY);
+z22=(111FX,262FY);
+z23=(47FX,0FY);
+z24=(176FX,0FY);
+z25=(192FX,63FY);
+z26=(267FX,235FY);
+z27=(361FX,339FY);
+z28=(374FX,313FY);
+z29=(370FX,277FY);
+z30=(321FX,123FY);
+z31=(312FX,67FY);
+z32=(337FX,6FY);
+z33=(404FX,-13FY);
+z34=(505FX,49FY);
+z35=(572FX,158FY);
+z36=(871FX,28FY);
+z37=(783FX,28FY);
+z38=(764FX,29FY);
+z39=(748FX,37FY);
+z40=(744FX,54FY);
+z41=(838FX,425FY);
+z42=(709FX,425FY);
+z43=(601FX,0FY);
+z44=(864FX,0FY);
+FuF (z1
+-- z2
+{-19,-32} .. {-7,-9}z3
+{-14,-16} .. {-10,0}z4
+{-16,1} .. {0,16}z5
+{1,15} .. {4,10}z6
+-- z7
+{10,33} .. {-1,26}z8
+{0,24} .. {-9,13}z9
+{-10,16} .. {-21,0}z10
+{-51,-1} .. {-46,-59}z11
+{-27,-36} .. {-32,-68}z12
+-- z13
+{7,30} .. {-1,19}z14
+{-2,46} .. {-40,0}z15
+{-41,0} .. {-36,-40}z16
+{-29,-31} .. {-20,-46}z17
+-- z18
+{21,36} .. {9,10}z19
+{14,15} .. {15,0}z20
+{10,0} .. {0,-16}z21
+{-2,-22} .. {-5,-18}z22
+-- z23
+-- z24
+-- z25
+{12,49} .. {38,66}z26
+{40,70} .. {23,0}z27
+{8,-1} .. {0,-17}z28
+{1,-13} .. {-3,-11}z29
+-- z30
+{-6,-21} .. {0,-16}z31
+{1,-28} .. {16,-13}z32
+{16,-13} .. {28,0}z33
+{31,0} .. {36,42}z34
+{31,35} .. {14,37}z35
+);
+FuF (z36
+-- z37
+-- z38
+{-10,5} .. {0,1}z39
+{-3,5} .. {0,7}z40
+-- z41
+-- z42
+-- z43
+-- z44
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(118,587FX#,624FY#,188FY#);
+"v";
+z1=(404FX,507FY);
+z2=(368FX,361FY);
+z3=(293FX,190FY);
+z4=(199FX,84FY);
+z5=(185FX,111FY);
+z6=(190FX,147FY);
+z7=(239FX,302FY);
+z8=(252FX,373FY);
+z9=(184FX,438FY);
+z10=(61FX,375FY);
+z11=(-2FX,268FY);
+z12=(17FX,257FY);
+z13=(98FX,345FY);
+z14=(117FX,329FY);
+z15=(114FX,312FY);
+z16=(63FX,157FY);
+z17=(52FX,112FY);
+z18=(48FX,67FY);
+z19=(64FX,8FY);
+z20=(112FX,-13FY);
+z21=(221FX,36FY);
+z22=(328FX,204FY);
+z23=(228FX,-189FY);
+z24=(510FX,-189FY);
+z25=(516FX,-161FY);
+z26=(416FX,-161FY);
+z27=(372FX,-156FY);
+z28=(375FX,-119FY);
+z29=(560FX,624FY);
+z30=(521FX,624FY);
+z31=(368FX,597FY);
+z32=(365FX,579FY);
+z33=(400FX,572FY);
+z34=(410FX,554FY);
+z35=(408FX,529FY);
+z36=(404FX,507FY);
+FuF (z1
+-- z2
+{-12,-48} .. {-38,-66}z3
+{-41,-71} .. {-22,0}z4
+{-9,1} .. {0,17}z5
+{0,12} .. {4,12}z6
+-- z7
+{9,29} .. {0,18}z8
+{-2,43} .. {-44,0}z9
+{-44,0} .. {-38,-42}z10
+{-31,-34} .. {-11,-37}z11
+-- z12
+{30,60} .. {24,-1}z13
+{12,0} .. {0,-11}z14
+{0,-6} .. {-2,-5}z15
+-- z16
+{-4,-12} .. {-4,-18}z17
+{-3,-18} .. {1,-12}z18
+{1,-24} .. {10,-16}z19
+{12,-14} .. {20,1}z20
+{39,0} .. {33,32}z21
+{35,33} .. {37,79}z22
+-- z23
+-- z24
+-- z25
+-- z26
+{-26,0} .. {-4,3}z27
+{-3,4} .. {5,21}z28
+-- z29
+-- z30
+-- z31
+-- z32
+{18,-1} .. {6,-4}z33
+{6,-5} .. {0,-7}z34
+{-1,-12} .. {0,-5}z35
+{-1,-10} .. {-1,-5}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(119,290FX#,424FY#,0FY#);
+"w";
+z1=(272FX,28FY);
+z2=(183FX,28FY);
+z3=(165FX,29FY);
+z4=(148FX,37FY);
+z5=(144FX,54FY);
+z6=(238FX,425FY);
+z7=(109FX,425FY);
+z8=(1FX,0FY);
+z9=(265FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-11,5} .. {-1,1}z4
+{-2,5} .. {0,7}z5
+-- z6
+-- z7
+-- z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(120,824FX#,624FY#,188FY#);
+"x";
+z1=(136FX,507FY);
+z2=(-22FX,-126FY);
+z3=(-45FX,-165FY);
+z4=(-90FX,-175FY);
+z5=(-93FX,-189FY);
+z6=(154FX,-189FY);
+z7=(158FX,-175FY);
+z8=(121FX,-168FY);
+z9=(105FX,-144FY);
+z10=(107FX,-126FY);
+z11=(161FX,87FY);
+z12=(236FX,248FY);
+z13=(326FX,340FY);
+z14=(343FX,317FY);
+z15=(333FX,267FY);
+z16=(298FX,157FY);
+z17=(287FX,111FY);
+z18=(283FX,67FY);
+z19=(299FX,8FY);
+z20=(346FX,-13FY);
+z21=(460FX,43FY);
+z22=(586FX,233FY);
+z23=(561FX,131FY);
+z24=(551FX,58FY);
+z25=(568FX,3FY);
+z26=(614FX,-13FY);
+z27=(706FX,26FY);
+z28=(803FX,162FY);
+z29=(784FX,173FY);
+z30=(740FX,104FY);
+z31=(696FX,79FY);
+z32=(684FX,86FY);
+z33=(680FX,105FY);
+z34=(683FX,134FY);
+z35=(689FX,165FY);
+z36=(755FX,425FY);
+z37=(626FX,425FY);
+z38=(610FX,361FY);
+z39=(532FX,190FY);
+z40=(434FX,84FY);
+z41=(420FX,111FY);
+z42=(425FX,147FY);
+z43=(470FX,298FY);
+z44=(478FX,356FY);
+z45=(411FX,439FY);
+z46=(264FX,345FY);
+z47=(181FX,205FY);
+z48=(292FX,624FY);
+z49=(253FX,624FY);
+z50=(100FX,597FY);
+z51=(97FX,579FY);
+z52=(132FX,572FY);
+z53=(142FX,554FY);
+z54=(140FX,529FY);
+z55=(136FX,507FY);
+FuF (z1
+-- z2
+{-5,-20} .. {-11,-7}z3
+{-11,-6} .. {-19,0}z4
+-- z5
+-- z6
+-- z7
+{-17,1} .. {-8,4}z8
+{-10,5} .. {0,11}z9
+{0,5} .. {1,7}z10
+-- z11
+{12,47} .. {38,60}z12
+{40,62} .. {20,-1}z13
+{11,0} .. {1,-15}z14
+{-2,-17} .. {-5,-17}z15
+-- z16
+{-5,-16} .. {-2,-15}z17
+{-4,-16} .. {1,-14}z18
+{1,-24} .. {10,-16}z19
+{12,-14} .. {19,0}z20
+{39,0} .. {37,38}z21
+{38,37} .. {46,89}z22
+-- z23
+{-8,-29} .. {1,-20}z24
+{1,-26} .. {10,-11}z25
+{11,-11} .. {20,0}z26
+{31,0} .. {30,26}z27
+{36,31} .. {29,60}z28
+-- z29
+{-20,-36} .. {-9,-10}z30
+{-14,-17} .. {-16,0}z31
+{-6,1} .. {-2,4}z32
+{-2,6} .. {-1,7}z33
+{0,8} .. {2,11}z34
+{3,14} .. {1,6}z35
+-- z36
+-- z37
+-- z38
+{-11,-47} .. {-40,-67}z39
+{-43,-71} .. {-22,0}z40
+{-9,1} .. {0,17}z41
+{-1,12} .. {4,13}z42
+-- z43
+{6,21} .. {-1,18}z44
+{-2,56} .. {-42,-1}z45
+{-48,0} .. {-50,-62}z46
+{-39,-48} .. {-16,-45}z47
+-- z48
+-- z49
+-- z50
+-- z51
+{18,-1} .. {5,-4}z52
+{7,-5} .. {0,-7}z53
+{-1,-11} .. {0,-6}z54
+{-2,-10} .. {-1,-4}z55
+);
+lbl (range 1 thru 55);
+endchar;
+
+beginchar(121,284FX#,424FY#,203FY#);
+"y";
+z1=(248FX,425FY);
+z2=(119FX,425FY);
+z3=(27FX,70FY);
+z4=(1FX,-40FY);
+z5=(-9FX,-101FY);
+z6=(-15FX,-139FY);
+z7=(-50FX,-175FY);
+z8=(-69FX,-165FY);
+z9=(-69FX,-160FY);
+z10=(-68FX,-142FY);
+z11=(-63FX,-129FY);
+z12=(-61FX,-116FY);
+z13=(-59FX,-100FY);
+z14=(-63FX,-85FY);
+z15=(-88FX,-75FY);
+z16=(-125FX,-90FY);
+z17=(-147FX,-121FY);
+z18=(-150FX,-143FY);
+z19=(-57FX,-204FY);
+z20=(41FX,-176FY);
+z21=(100FX,-116FY);
+z22=(135FX,-15FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-9,-24} .. {-15,0}z7
+{-11,3} .. {-2,4}z8
+{0,2} .. {0,2}z9
+{0,5} .. {1,7}z10
+-- z11
+-- z12
+{1,6} .. {0,5}z13
+{-1,8} .. {-2,2}z14
+{-6,7} .. {-11,-1}z15
+{-11,0} .. {-14,-10}z16
+{-12,-12} .. {-2,-9}z17
+{-2,-9} .. {0,-5}z18
+{1,-41} .. {61,0}z19
+{38,1} .. {27,18}z20
+{28,17} .. {12,22}z21
+{12,25} .. {11,43}z22
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(122,494FX#,443FY#,188FY#);
+"z";
+z1=(475FX,-160FY);
+z2=(377FX,-158FY);
+z3=(337FX,-140FY);
+z4=(432FX,239FY);
+z5=(438FX,265FY);
+z6=(440FX,303FY);
+z7=(400FX,403FY);
+z8=(280FX,443FY);
+z9=(168FX,412FY);
+z10=(66FX,321FY);
+z11=(7FX,197FY);
+z12=(-2FX,125FY);
+z13=(13FX,52FY);
+z14=(120FX,-13FY);
+z15=(192FX,4FY);
+z16=(221FX,21FY);
+z17=(253FX,45FY);
+z18=(195FX,-189FY);
+z19=(468FX,-189FY);
+z20=(326FX,362FY);
+z21=(309FX,264FY);
+z22=(264FX,87FY);
+z23=(221FX,53FY);
+z24=(195FX,41FY);
+z25=(175FX,40FY);
+z26=(134FX,66FY);
+z27=(129FX,101FY);
+z28=(144FX,205FY);
+z29=(211FX,374FY);
+z30=(282FX,413FY);
+z31=(311FX,398FY);
+z32=(326FX,362FY);
+FuF (z1
+-- z2
+{-30,0} .. {3,11}z3
+-- z4
+{2,11} .. {2,6}z5
+{2,11} .. {-1,15}z6
+{-1,42} .. {-25,25}z7
+{-29,27} .. {-51,0}z8
+{-36,0} .. {-38,-21}z9
+{-39,-20} .. {-29,-40}z10
+{-28,-38} .. {-11,-44}z11
+{-7,-26} .. {1,-22}z12
+{1,-29} .. {9,-20}z13
+{19,-44} .. {53,0}z14
+{22,0} .. {26,12}z15
+-- z16
+{16,10} .. {6,5}z17
+-- z18
+-- z19
+);
+FuF (z20
+{0,-21} .. {-11,-44}z21
+-- z22
+{-20,-19} .. {-9,-4}z23
+-- z24
+{-2,-1} .. {-11,1}z25
+{-19,0} .. {-8,17}z26
+{-3,9} .. {0,14}z27
+{-1,30} .. {11,39}z28
+{23,89} .. {22,24}z29
+{24,26} .. {24,0}z30
+{11,-2} .. {9,-8}z31
+{10,-10} .. {0,-14}z32
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(123,449FX#,266FY#,0FY#);
+"hyphen";
+z1=(38FX,188FY);
+z2=(506FX,188FY);
+z3=(525FX,266FY);
+z4=(57FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,182FX#,691FY#,0FY#);
+"shesht";
+z1=(287FX,632FY);
+z2=(296FX,661FY);
+z3=(261FX,692FY);
+z4=(243FX,689FY);
+z5=(208FX,663FY);
+z6=(53FX,475FY);
+z7=(84FX,458FY);
+z8=(268FX,609FY);
+z9=(287FX,632FY);
+FuF (z1
+{6,9} .. {0,10}z2
+{0,21} .. {-22,0}z3
+-- z4
+{-15,-6} .. {-9,-11}z5
+-- z6
+-- z7
+-- z8
+{8,7} .. {5,8}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(125,999FX#,266FY#,0FY#);
+"emdash";
+z1=(47FX,188FY);
+z2=(1047FX,188FY);
+z3=(1066FX,266FY);
+z4=(66FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,366FX#,638FY#,12FY#);
+"exclam";
+z1=(172FX,178FY);
+z2=(273FX,426FY);
+z3=(327FX,579FY);
+z4=(312FX,619FY);
+z5=(274FX,639FY);
+z6=(215FX,596FY);
+z7=(184FX,426FY);
+z8=(154FX,178FY);
+z9=(130FX,137FY);
+z10=(77FX,115FY);
+z11=(57FX,62FY);
+z12=(80FX,8FY);
+z13=(133FX,-13FY);
+z14=(186FX,9FY);
+z15=(207FX,62FY);
+z16=(184FX,115FY);
+z17=(130FX,137FY);
+FuF (z1
+{27,75} .. {41,90}z2
+{37,79} .. {0,23}z3
+{-1,15} .. {-9,12}z4
+{-11,14} .. {-15,0}z5
+{-25,-1} .. {-14,-28}z6
+{-15,-29} .. {-6,-85}z7
+{-7,-83} .. {-14,-82}z8
+);
+FuF (z9
+{-20,0} .. {-15,-15}z10
+{-14,-14} .. {1,-21}z11
+{0,-21} .. {15,-15}z12
+{14,-14} .. {21,0}z13
+{21,0} .. {14,14}z14
+{14,14} .. {0,21}z15
+{-1,21} .. {-15,14}z16
+{-15,15} .. {-21,0}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(3,652FX#,637FY#,15FY#);
+"Dz";
+z1=(128FX,392FY);
+z2=(278FX,392FY);
+z3=(341FX,552FY);
+z4=(460FX,607FY);
+z5=(509FX,591FY);
+z6=(544FX,495FY);
+z7=(530FX,396FY);
+z8=(454FX,233FY);
+z9=(367FX,147FY);
+z10=(297FX,195FY);
+z11=(214FX,208FY);
+z12=(105FX,168FY);
+z13=(50FX,89FY);
+z14=(47FX,73FY);
+z15=(47FX,62FY);
+z16=(78FX,4FY);
+z17=(140FX,-15FY);
+z18=(209FX,-5FY);
+z19=(281FX,29FY);
+z20=(342FX,-6FY);
+z21=(400FX,-12FY);
+z22=(418FX,-12FY);
+z23=(503FX,7FY);
+z24=(591FX,77FY);
+z25=(574FX,97FY);
+z26=(491FX,53FY);
+z27=(442FX,67FY);
+z28=(404FX,110FY);
+z29=(564FX,233FY);
+z30=(673FX,402FY);
+z31=(682FX,475FY);
+z32=(466FX,637FY);
+z33=(239FX,571FY);
+z34=(133FX,424FY);
+z35=(151FX,24FY);
+z36=(114FX,34FY);
+z37=(100FX,60FY);
+z38=(102FX,74FY);
+z39=(124FX,100FY);
+z40=(161FX,107FY);
+z41=(206FX,92FY);
+z42=(247FX,58FY);
+z43=(197FX,32FY);
+z44=(151FX,24FY);
+FuF (z1
+-- z2
+{11,71} .. {31,36}z3
+{33,37} .. {46,-1}z4
+{20,0} .. {13,-11}z5
+{23,-18} .. {1,-46}z6
+{0,-29} .. {-9,-37}z7
+{-15,-60} .. {-36,-49}z8
+{-28,-38} .. {-30,-19}z9
+{-24,23} .. {-23,9}z10
+{-22,8} .. {-33,0}z11
+{-40,0} .. {-32,-27}z12
+{-29,-24} .. {-8,-29}z13
+{-2,-9} .. {0,-2}z14
+{0,-7} .. {0,0}z15
+{0,-25} .. {19,-14}z16
+{17,-13} .. {24,1}z17
+{26,0} .. {20,6}z18
+{20,7} .. {28,15}z19
+{20,-17} .. {20,-6}z20
+{15,-4} .. {23,0}z21
+-- z22
+{29,0} .. {27,13}z23
+{34,16} .. {25,30}z24
+-- z25
+{-31,-29} .. {-25,0}z26
+{-19,0} .. {-14,9}z27
+{-14,9} .. {-11,19}z28
+{59,33} .. {48,49}z29
+{59,61} .. {14,52}z30
+{6,27} .. {0,22}z31
+{-4,109} .. {-141,-1}z32
+{-89,0} .. {-62,-44}z33
+{-62,-43} .. {-9,-55}z34
+);
+FuF (z35
+{-16,1} .. {-8,6}z36
+{-9,6} .. {0,11}z37
+{1,6} .. {1,3}z38
+{3,14} .. {12,4}z39
+{12,5} .. {13,-1}z40
+{12,0} .. {18,-10}z41
+{17,-9} .. {10,-13}z42
+{-19,-12} .. {-14,-5}z43
+{-15,-6} .. {-16,0}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(4,748FX#,637FY#,66FY#);
+"Gh";
+z1=(536FX,0FY);
+z2=(571FX,-11FY);
+z3=(579FX,-32FY);
+z4=(578FX,-44FY);
+z5=(573FX,-67FY);
+z6=(735FX,-67FY);
+z7=(742FX,-35FY);
+z8=(744FX,-23FY);
+z9=(710FX,21FY);
+z10=(654FX,35FY);
+z11=(534FX,35FY);
+z12=(617FX,366FY);
+z13=(630FX,469FY);
+z14=(581FX,594FY);
+z15=(442FX,637FY);
+z16=(249FX,566FY);
+z17=(134FX,366FY);
+z18=(121FX,315FY);
+z19=(264FX,315FY);
+z20=(287FX,402FY);
+z21=(344FX,553FY);
+z22=(435FX,606FY);
+z23=(488FX,588FY);
+z24=(505FX,535FY);
+z25=(484FX,405FY);
+z26=(382FX,0FY);
+FuF (z1
+{15,0} .. {8,-8}z2
+{5,-5} .. {0,-9}z3
+{-1,-5} .. {0,-3}z4
+-- z5
+-- z6
+-- z7
+{2,6} .. {-1,2}z8
+{-1,18} .. {-22,11}z9
+{-17,10} .. {-20,0}z10
+-- z11
+-- z12
+{10,39} .. {-1,30}z13
+{-1,55} .. {-31,28}z14
+{-33,29} .. {-60,-1}z15
+{-75,0} .. {-54,-47}z16
+{-54,-46} .. {-23,-87}z17
+-- z18
+-- z19
+-- z20
+{18,71} .. {20,30}z21
+{25,36} .. {36,0}z22
+{24,-1} .. {11,-11}z23
+{11,-13} .. {0,-22}z24
+{0,-32} .. {-14,-55}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(5,605FX#,633FY#,0FY#);
+"Chmute";
+z1=(356FX,503FY);
+z2=(419FX,555FY);
+z3=(463FX,575FY);
+z4=(485FX,559FY);
+z5=(483FX,551FY);
+z6=(477FX,525FY);
+z7=(641FX,525FY);
+z8=(650FX,560FY);
+z9=(651FX,573FY);
+z10=(623FX,617FY);
+z11=(550FX,634FY);
+z12=(443FX,606FY);
+z13=(315FX,522FY);
+z14=(275FX,537FY);
+z15=(233FX,549FY);
+z16=(205FX,515FY);
+z17=(246FX,503FY);
+z18=(284FX,490FY);
+z19=(142FX,321FY);
+z20=(54FX,111FY);
+z21=(26FX,0FY);
+z22=(534FX,0FY);
+z23=(564FX,118FY);
+z24=(574FX,208FY);
+z25=(492FX,408FY);
+z26=(356FX,503FY);
+z27=(179FX,40FY);
+z28=(210FX,159FY);
+z29=(276FX,378FY);
+z30=(329FX,470FY);
+z31=(410FX,394FY);
+z32=(445FX,270FY);
+z33=(432FX,166FY);
+z34=(400FX,40FY);
+FuF (z1
+{20,20} .. {22,14}z2
+{21,14} .. {8,-1}z3
+{14,0} .. {1,-10}z4
+{0,-2} .. {-1,-3}z5
+-- z6
+-- z7
+-- z8
+{1,5} .. {-1,3}z9
+{0,18} .. {-19,11}z10
+{-21,11} .. {-28,0}z11
+{-32,0} .. {-40,-18}z12
+{-39,-19} .. {-46,-38}z13
+{-8,4} .. {-18,6}z14
+{-19,5} .. {-9,3}z15
+-- z16
+{15,-5} .. {13,-4}z17
+{19,-6} .. {7,-3}z18
+{-53,-44} .. {-42,-69}z19
+{-40,-67} .. {-19,-73}z20
+-- z21
+-- z22
+-- z23
+{8,30} .. {-1,30}z24
+{-2,75} .. {-53,59}z25
+{-41,46} .. {-50,18}z26
+);
+FuF (z27
+-- z28
+{27,107} .. {17,39}z29
+{18,43} .. {17,19}z30
+{35,-21} .. {19,-30}z31
+{23,-36} .. {0,-47}z32
+{1,-33} .. {-9,-36}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(6,581FX#,624FY#,65FY#);
+"Esimple";
+z1=(19FX,0FY);
+z2=(275FX,0FY);
+z3=(309FX,-9FY);
+z4=(319FX,-31FY);
+z5=(317FX,-43FY);
+z6=(311FX,-66FY);
+z7=(472FX,-66FY);
+z8=(479FX,-34FY);
+z9=(482FX,-15FY);
+z10=(364FX,41FY);
+z11=(257FX,41FY);
+z12=(344FX,390FY);
+z13=(422FX,390FY);
+z14=(450FX,383FY);
+z15=(466FX,358FY);
+z16=(464FX,346FY);
+z17=(456FX,315FY);
+z18=(616FX,315FY);
+z19=(627FX,356FY);
+z20=(628FX,368FY);
+z21=(583FX,418FY);
+z22=(510FX,431FY);
+z23=(355FX,431FY);
+z24=(377FX,523FY);
+z25=(412FX,590FY);
+z26=(484FX,607FY);
+z27=(489FX,624FY);
+z28=(175FX,624FY);
+z29=(170FX,607FY);
+z30=(226FX,597FY);
+z31=(242FX,569FY);
+z32=(234FX,523FY);
+z33=(129FX,104FY);
+z34=(95FX,36FY);
+z35=(23FX,18FY);
+FuF (z1
+-- z2
+{17,0} .. {6,-6}z3
+{7,-5} .. {0,-9}z4
+{-1,-6} .. {-1,-2}z5
+-- z6
+-- z7
+-- z8
+{2,7} .. {0,5}z9
+{-2,38} .. {-77,0}z10
+-- z11
+-- z12
+-- z13
+{11,0} .. {7,-4}z14
+{10,-6} .. {1,-11}z15
+{-1,-5} .. {0,-3}z16
+-- z17
+-- z18
+-- z19
+{1,4} .. {-1,3}z20
+{-1,22} .. {-29,11}z21
+{-22,9} .. {-27,0}z22
+-- z23
+-- z24
+{9,34} .. {15,11}z25
+{14,11} .. {34,0}z26
+-- z27
+-- z28
+-- z29
+{27,0} .. {10,-6}z30
+{10,-6} .. {0,-13}z31
+{0,-9} .. {-5,-22}z32
+-- z33
+{-8,-34} .. {-15,-12}z34
+{-14,-12} .. {-34,0}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(7,699FX#,637FY#,65FY#);
+"Article";
+z1=(679FX,366FY);
+z2=(692FX,471FY);
+z3=(505FX,637FY);
+z4=(292FX,554FY);
+z5=(196FX,366FY);
+z6=(129FX,102FY);
+z7=(94FX,33FY);
+z8=(23FX,18FY);
+z9=(19FX,0FY);
+z10=(400FX,0FY);
+z11=(443FX,-31FY);
+z12=(442FX,-43FY);
+z13=(436FX,-66FY);
+z14=(596FX,-66FY);
+z15=(604FX,-34FY);
+z16=(606FX,-20FY);
+z17=(571FX,24FY);
+z18=(488FX,40FY);
+z19=(316FX,40FY);
+z20=(266FX,65FY);
+z21=(268FX,79FY);
+z22=(272FX,100FY);
+z23=(349FX,407FY);
+z24=(405FX,556FY);
+z25=(497FX,606FY);
+z26=(552FX,589FY);
+z27=(569FX,539FY);
+z28=(561FX,474FY);
+z29=(546FX,409FY);
+z30=(522FX,315FY);
+z31=(665FX,315FY);
+FuF (z1
+{9,37} .. {0,33}z2
+{-4,111} .. {-121,-1}z3
+{-88,0} .. {-54,-55}z4
+{-44,-44} .. {-20,-81}z5
+-- z6
+{-9,-36} .. {-14,-10}z7
+{-14,-10} .. {-33,0}z8
+-- z9
+-- z10
+{28,0} .. {0,-21}z11
+{0,-6} .. {0,-2}z12
+-- z13
+-- z14
+-- z15
+{1,6} .. {0,3}z16
+{-1,20} .. {-23,9}z17
+{-24,11} .. {-31,0}z18
+-- z19
+{-33,0} .. {0,17}z20
+{1,6} .. {1,3}z21
+{2,9} .. {1,5}z22
+-- z23
+{17,70} .. {20,29}z24
+{23,34} .. {38,0}z25
+{26,-1} .. {11,-11}z26
+{11,-11} .. {0,-22}z27
+{0,-17} .. {-5,-26}z28
+{-3,-15} .. {-7,-28}z29
+-- z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(8,975FX#,633FY#,0FY#);
+"Th";
+z1=(763FX,274FY);
+z2=(790FX,274FY);
+z3=(820FX,264FY);
+z4=(829FX,240FY);
+z5=(830FX,236FY);
+z6=(829FX,230FY);
+z7=(823FX,208FY);
+z8=(984FX,208FY);
+z9=(992FX,239FY);
+z10=(993FX,250FY);
+z11=(952FX,297FY);
+z12=(854FX,315FY);
+z13=(773FX,315FY);
+z14=(787FX,368FY);
+z15=(792FX,399FY);
+z16=(794FX,429FY);
+z17=(725FX,584FY);
+z18=(558FX,634FY);
+z19=(303FX,536FY);
+z20=(196FX,366FY);
+z21=(129FX,102FY);
+z22=(96FX,33FY);
+z23=(24FX,18FY);
+z24=(19FX,0FY);
+z25=(333FX,0FY);
+z26=(338FX,18FY);
+z27=(280FX,24FY);
+z28=(264FX,53FY);
+z29=(273FX,100FY);
+z30=(340FX,371FY);
+z31=(425FX,544FY);
+z32=(551FX,602FY);
+z33=(662FX,494FY);
+z34=(644FX,372FY);
+z35=(630FX,315FY);
+z36=(552FX,315FY);
+z37=(431FX,272FY);
+z38=(357FX,164FY);
+z39=(353FX,123FY);
+z40=(402FX,29FY);
+z41=(508FX,0FY);
+z42=(655FX,50FY);
+z43=(736FX,168FY);
+z44=(516FX,33FY);
+z45=(487FX,70FY);
+z46=(501FX,161FY);
+z47=(533FX,242FY);
+z48=(584FX,274FY);
+z49=(619FX,274FY);
+z50=(592FX,163FY);
+z51=(556FX,61FY);
+z52=(516FX,33FY);
+FuF (z1
+-- z2
+{13,0} .. {7,-6}z3
+{6,-6} .. {0,-10}z4
+-- z5
+{-1,-1} .. {0,-3}z6
+-- z7
+-- z8
+-- z9
+{1,5} .. {0,2}z10
+{0,20} .. {-27,12}z11
+{-27,12} .. {-39,0}z12
+-- z13
+-- z14
+{3,14} .. {0,7}z15
+{2,8} .. {-1,11}z16
+{-2,68} .. {-43,36}z17
+{-42,33} .. {-70,0}z18
+{-99,-1} .. {-71,-64}z19
+{-56,-51} .. {-16,-63}z20
+-- z21
+{-9,-36} .. {-13,-10}z22
+{-14,-10} .. {-34,0}z23
+-- z24
+-- z25
+-- z26
+{-30,1} .. {-8,3}z27
+{-10,4} .. {0,15}z28
+{1,11} .. {5,20}z29
+-- z30
+{19,75} .. {38,40}z31
+{36,39} .. {48,0}z32
+{72,0} .. {2,-72}z33
+{0,-32} .. {-12,-49}z34
+-- z35
+-- z36
+{-43,0} .. {-38,-29}z37
+{-39,-28} .. {-11,-44}z38
+{-3,-14} .. {1,-13}z39
+{0,-40} .. {32,-22}z40
+{28,-20} .. {42,0}z41
+{55,1} .. {43,33}z42
+{43,33} .. {11,46}z43
+);
+FuF (z44
+{-20,0} .. {0,25}z45
+{0,24} .. {9,36}z46
+{8,34} .. {13,20}z47
+{14,22} .. {20,0}z48
+-- z49
+-- z50
+{-11,-48} .. {-13,-20}z51
+{-11,-18} .. {-15,0}z52
+);
+lbl (range 1 thru 52);
+endchar;
+
+beginchar(9,826FX#,624FY#,13FY#);
+"Zh";
+z1=(662FX,390FY);
+z2=(689FX,381FY);
+z3=(699FX,358FY);
+z4=(697FX,344FY);
+z5=(690FX,315FY);
+z6=(852FX,315FY);
+z7=(862FX,354FY);
+z8=(864FX,364FY);
+z9=(819FX,412FY);
+z10=(699FX,431FY);
+z11=(629FX,431FY);
+z12=(655FX,535FY);
+z13=(683FX,593FY);
+z14=(752FX,607FY);
+z15=(756FX,624FY);
+z16=(441FX,624FY);
+z17=(437FX,607FY);
+z18=(499FX,600FY);
+z19=(517FX,572FY);
+z20=(511FX,532FY);
+z21=(485FX,431FY);
+z22=(407FX,431FY);
+z23=(196FX,371FY);
+z24=(78FX,207FY);
+z25=(71FX,144FY);
+z26=(126FX,28FY);
+z27=(278FX,-13FY);
+z28=(479FX,58FY);
+z29=(582FX,244FY);
+z30=(618FX,390FY);
+z31=(428FX,198FY);
+z32=(373FX,71FY);
+z33=(285FX,19FY);
+z34=(232FX,42FY);
+z35=(214FX,110FY);
+z36=(227FX,205FY);
+z37=(306FX,356FY);
+z38=(427FX,390FY);
+z39=(475FX,390FY);
+FuF (z1
+{11,0} .. {7,-6}z2
+{6,-5} .. {0,-10}z3
+{-1,-6} .. {-1,-3}z4
+-- z5
+-- z6
+-- z7
+{1,5} .. {0,2}z8
+{-1,20} .. {-28,12}z9
+{-31,13} .. {-49,0}z10
+-- z11
+-- z12
+{9,32} .. {10,7}z13
+{11,9} .. {35,0}z14
+-- z15
+-- z16
+-- z17
+{32,-1} .. {9,-3}z18
+{12,-5} .. {0,-13}z19
+{-2,-18} .. {-2,-9}z20
+-- z21
+-- z22
+{-78,0} .. {-62,-40}z23
+{-61,-40} .. {-17,-70}z24
+{-5,-24} .. {1,-18}z25
+{2,-50} .. {35,-27}z26
+{35,-28} .. {66,0}z27
+{81,0} .. {53,48}z28
+{49,43} .. {20,81}z29
+-- z30
+);
+FuF (z31
+{-14,-54} .. {-23,-31}z32
+{-26,-35} .. {-33,1}z33
+{-24,0} .. {-11,15}z34
+{-12,17} .. {0,28}z35
+{0,29} .. {9,34}z36
+{19,74} .. {34,27}z37
+{28,23} .. {53,0}z38
+-- z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(10,646FX#,648FY#,11FY#);
+"Sh";
+z1=(378FX,506FY);
+z2=(211FX,414FY);
+z3=(82FX,224FY);
+z4=(73FX,151FY);
+z5=(128FX,31FY);
+z6=(288FX,-12FY);
+z7=(516FX,55FY);
+z8=(622FX,203FY);
+z9=(627FX,234FY);
+z10=(477FX,234FY);
+z11=(412FX,75FY);
+z12=(294FX,19FY);
+z13=(233FX,48FY);
+z14=(211FX,130FY);
+z15=(224FX,230FY);
+z16=(315FX,409FY);
+z17=(408FX,481FY);
+z18=(453FX,441FY);
+z19=(520FX,420FY);
+z20=(683FX,490FY);
+z21=(670FX,515FY);
+z22=(623FX,501FY);
+z23=(580FX,517FY);
+z24=(535FX,557FY);
+z25=(470FX,619FY);
+z26=(363FX,649FY);
+z27=(288FX,629FY);
+z28=(210FX,577FY);
+z29=(231FX,553FY);
+z30=(260FX,569FY);
+z31=(290FX,574FY);
+z32=(333FX,556FY);
+z33=(365FX,523FY);
+z34=(378FX,506FY);
+FuF (z1
+{-52,-12} .. {-59,-50}z2
+{-69,-59} .. {-16,-68}z3
+{-7,-26} .. {1,-22}z4
+{2,-52} .. {35,-28}z5
+{37,-29} .. {70,0}z6
+{89,1} .. {63,44}z7
+{62,44} .. {9,55}z8
+-- z9
+-- z10
+{-10,-69} .. {-34,-37}z11
+{-33,-38} .. {-45,1}z12
+{-28,0} .. {-13,19}z13
+{-15,20} .. {0,34}z14
+{0,32} .. {9,35}z15
+{18,72} .. {43,47}z16
+{21,24} .. {41,24}z17
+{17,-19} .. {13,-8}z18
+{23,-14} .. {22,0}z19
+{60,1} .. {49,46}z20
+-- z21
+{-21,-10} .. {-11,0}z22
+{-15,1} .. {-13,9}z23
+{-12,8} .. {-18,18}z24
+{-31,31} .. {-12,10}z25
+{-26,20} .. {-45,0}z26
+{-22,0} .. {-28,-13}z27
+{-31,-14} .. {-21,-21}z28
+-- z29
+{10,7} .. {9,4}z30
+{11,4} .. {9,-1}z31
+{17,0} .. {11,-12}z32
+{12,-11} .. {10,-11}z33
+{5,-6} .. {4,-6}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(11,646FX#,637FY#,22FY#);
+"Ch";
+z1=(375FX,121FY);
+z2=(543FX,212FY);
+z3=(672FX,402FY);
+z4=(682FX,475FY);
+z5=(466FX,637FY);
+z6=(239FX,571FY);
+z7=(133FX,424FY);
+z8=(128FX,392FY);
+z9=(278FX,392FY);
+z10=(341FX,552FY);
+z11=(460FX,607FY);
+z12=(509FX,591FY);
+z13=(544FX,495FY);
+z14=(530FX,396FY);
+z15=(439FX,217FY);
+z16=(345FX,145FY);
+z17=(235FX,205FY);
+z18=(72FX,136FY);
+z19=(85FX,111FY);
+z20=(132FX,125FY);
+z21=(185FX,101FY);
+z22=(220FX,69FY);
+z23=(285FX,7FY);
+z24=(392FX,-23FY);
+z25=(467FX,-3FY);
+z26=(544FX,49FY);
+z27=(524FX,74FY);
+z28=(493FX,58FY);
+z29=(465FX,52FY);
+z30=(421FX,70FY);
+z31=(391FX,102FY);
+z32=(375FX,121FY);
+FuF (z1
+{54,11} .. {58,49}z2
+{69,58} .. {17,69}z3
+{7,26} .. {0,22}z4
+{-4,109} .. {-141,-1}z5
+{-89,0} .. {-62,-44}z6
+{-62,-43} .. {-8,-55}z7
+-- z8
+-- z9
+{10,71} .. {31,36}z10
+{33,37} .. {47,-1}z11
+{20,0} .. {13,-11}z12
+{23,-18} .. {1,-46}z13
+{0,-28} .. {-9,-38}z14
+{-18,-74} .. {-43,-45}z15
+{-22,-24} .. {-41,-24}z16
+{-33,41} .. {-40,-1}z17
+{-62,0} .. {-47,-46}z18
+-- z19
+{20,10} .. {11,-1}z20
+{16,0} .. {19,-15}z21
+{10,-8} .. {14,-13}z22
+{37,-37} .. {6,-5}z23
+{25,-20} .. {46,0}z24
+{21,0} .. {29,13}z25
+{31,14} .. {20,20}z26
+-- z27
+{-9,-6} .. {-12,-4}z28
+{-10,-4} .. {-9,0}z29
+{-17,1} .. {-12,11}z30
+{-10,10} .. {-9,11}z31
+{-8,8} .. {-3,4}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(12,882FX#,637FY#,0FY#);
+"Rhard";
+z1=(613FX,104FY);
+z2=(637FX,200FY);
+z3=(677FX,200FY);
+z4=(718FX,171FY);
+z5=(716FX,158FY);
+z6=(711FX,136FY);
+z7=(873FX,136FY);
+z8=(881FX,168FY);
+z9=(883FX,181FY);
+z10=(713FX,241FY);
+z11=(648FX,241FY);
+z12=(680FX,373FY);
+z13=(693FX,472FY);
+z14=(505FX,637FY);
+z15=(197FX,373FY);
+z16=(130FX,104FY);
+z17=(97FX,33FY);
+z18=(24FX,18FY);
+z19=(19FX,0FY);
+z20=(328FX,0FY);
+z21=(333FX,18FY);
+z22=(280FX,24FY);
+z23=(265FX,52FY);
+z24=(268FX,75FY);
+z25=(274FX,104FY);
+z26=(350FX,408FY);
+z27=(404FX,546FY);
+z28=(498FX,606FY);
+z29=(547FX,584FY);
+z30=(563FX,524FY);
+z31=(545FX,408FY);
+z32=(470FX,104FY);
+z33=(436FX,34FY);
+z34=(370FX,18FY);
+z35=(365FX,0FY);
+z36=(675FX,0FY);
+z37=(679FX,18FY);
+z38=(621FX,25FY);
+z39=(605FX,54FY);
+z40=(613FX,104FY);
+FuF (z1
+-- z2
+-- z3
+{27,0} .. {1,-19}z4
+{-1,-5} .. {0,-4}z5
+-- z6
+-- z7
+-- z8
+{1,5} .. {0,4}z9
+{-2,40} .. {-111,0}z10
+-- z11
+-- z12
+{10,38} .. {-1,28}z13
+{-3,111} .. {-122,-1}z14
+{-162,0} .. {-44,-175}z15
+-- z16
+{-9,-38} .. {-13,-10}z17
+{-13,-10} .. {-35,0}z18
+-- z19
+-- z20
+-- z21
+{-27,1} .. {-8,3}z22
+{-10,6} .. {0,13}z23
+{0,6} .. {2,10}z24
+{2,13} .. {2,6}z25
+-- z26
+{15,60} .. {21,32}z27
+{27,40} .. {36,0}z28
+{23,-1} .. {10,-14}z29
+{10,-15} .. {0,-25}z30
+{1,-28} .. {-13,-49}z31
+-- z32
+{-9,-36} .. {-14,-11}z33
+{-13,-11} .. {-31,0}z34
+-- z35
+-- z36
+-- z37
+{-31,1} .. {-8,4}z38
+{-10,6} .. {0,14}z39
+{0,15} .. {4,19}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(13,683FX#,624FY#,10FY#);
+"Ts";
+z1=(470FX,502FY);
+z2=(598FX,528FY);
+z3=(664FX,495FY);
+z4=(661FX,475FY);
+z5=(654FX,449FY);
+z6=(814FX,449FY);
+z7=(823FX,485FY);
+z8=(824FX,494FY);
+z9=(775FX,550FY);
+z10=(697FX,566FY);
+z11=(424FX,515FY);
+z12=(370FX,520FY);
+z13=(321FX,573FY);
+z14=(324FX,598FY);
+z15=(330FX,624FY);
+z16=(170FX,624FY);
+z17=(161FX,589FY);
+z18=(159FX,576FY);
+z19=(250FX,506FY);
+z20=(377FX,490FY);
+z21=(209FX,388FY);
+z22=(118FX,237FY);
+z23=(111FX,174FY);
+z24=(163FX,44FY);
+z25=(321FX,-11FY);
+z26=(544FX,70FY);
+z27=(657FX,240FY);
+z28=(666FX,311FY);
+z29=(612FX,438FY);
+z30=(470FX,502FY);
+z31=(270FX,242FY);
+z32=(425FX,481FY);
+z33=(520FX,353FY);
+z34=(505FX,244FY);
+z35=(437FX,73FY);
+z36=(325FX,14FY);
+z37=(266FX,36FY);
+z38=(247FX,99FY);
+z39=(270FX,242FY);
+FuF (z1
+{49,18} .. {36,-1}z2
+{44,0} .. {0,-22}z3
+{-1,-8} .. {-1,-5}z4
+-- z5
+-- z6
+-- z7
+{1,3} .. {0,3}z8
+{-2,24} .. {-31,13}z9
+{-24,11} .. {-28,0}z10
+{-88,0} .. {-94,-34}z11
+{-23,0} .. {-13,3}z12
+{-33,8} .. {0,27}z13
+{0,11} .. {1,6}z14
+-- z15
+-- z16
+-- z17
+{-2,-5} .. {0,-4}z18
+{1,-32} .. {59,-15}z19
+{40,-10} .. {45,0}z20
+{-67,-23} .. {-45,-44}z21
+{-47,-46} .. {-14,-54}z22
+{-5,-21} .. {0,-21}z23
+{2,-55} .. {33,-32}z24
+{39,-37} .. {67,0}z25
+{84,1} .. {65,53}z26
+{58,48} .. {18,66}z27
+{6,26} .. {0,21}z28
+{-1,51} .. {-35,34}z29
+{-35,33} .. {-60,10}z30
+);
+FuF (z31
+{33,129} .. {71,30}z32
+{62,-16} .. {2,-70}z33
+{0,-31} .. {-10,-42}z34
+{-19,-79} .. {-26,-35}z35
+{-28,-40} .. {-46,0}z36
+{-28,1} .. {-12,14}z37
+{-13,16} .. {0,26}z38
+{0,34} .. {15,61}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(14,815FX#,624FY#,0FY#);
+"Ph";
+z1=(698FX,624FY);
+z2=(388FX,624FY);
+z3=(384FX,607FY);
+z4=(453FX,568FY);
+z5=(446FX,523FY);
+z6=(443FX,509FY);
+z7=(235FX,467FY);
+z8=(100FX,315FY);
+z9=(94FX,268FY);
+z10=(162FX,155FY);
+z11=(344FX,115FY);
+z12=(341FX,102FY);
+z13=(306FX,33FY);
+z14=(235FX,18FY);
+z15=(230FX,0FY);
+z16=(543FX,0FY);
+z17=(548FX,18FY);
+z18=(492FX,25FY);
+z19=(476FX,54FY);
+z20=(484FX,102FY);
+z21=(488FX,115FY);
+z22=(709FX,167FY);
+z23=(822FX,315FY);
+z24=(828FX,340FY);
+z25=(828FX,363FY);
+z26=(742FX,483FY);
+z27=(586FX,509FY);
+z28=(589FX,523FY);
+z29=(624FX,589FY);
+z30=(694FX,607FY);
+z31=(494FX,140FY);
+z32=(579FX,481FY);
+z33=(679FX,383FY);
+z34=(670FX,315FY);
+z35=(609FX,198FY);
+z36=(494FX,140FY);
+z37=(435FX,481FY);
+z38=(350FX,140FY);
+z39=(278FX,173FY);
+z40=(255FX,254FY);
+z41=(262FX,315FY);
+z42=(323FX,432FY);
+z43=(435FX,481FY);
+FuF (z1
+-- z2
+-- z3
+{46,-2} .. {0,-24}z4
+{1,-10} .. {-5,-20}z5
+-- z6
+{-80,-1} .. {-58,-27}z7
+{-73,-34} .. {-17,-67}z8
+{-4,-17} .. {0,-14}z9
+{2,-50} .. {44,-25}z10
+{45,-27} .. {76,0}z11
+-- z12
+{-10,-36} .. {-14,-11}z13
+{-14,-10} .. {-34,0}z14
+-- z15
+-- z16
+-- z17
+{-29,1} .. {-9,4}z18
+{-10,6} .. {-1,13}z19
+{0,14} .. {5,18}z20
+-- z21
+{90,1} .. {57,34}z22
+{59,34} .. {16,64}z23
+{4,13} .. {1,4}z24
+{1,4} .. {0,11}z25
+{-2,55} .. {-55,25}z26
+{-41,17} .. {-63,0}z27
+-- z28
+{9,33} .. {15,11}z29
+{14,12} .. {32,0}z30
+);
+FuF (z31
+-- z32
+{67,0} .. {0,-65}z33
+{0,-21} .. {-6,-24}z34
+{-12,-46} .. {-28,-32}z35
+{-34,-39} .. {-42,0}z36
+);
+FuF (z37
+-- z38
+{-32,1} .. {-16,21}z39
+{-15,21} .. {0,33}z40
+{-1,20} .. {5,21}z41
+{12,48} .. {29,30}z42
+{32,33} .. {43,0}z43
+);
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(15,795FX#,632FY#,15FY#);
+"Osimple";
+z1=(783FX,309FY);
+z2=(796FX,413FY);
+z3=(749FX,547FY);
+z4=(533FX,633FY);
+z5=(270FX,547FY);
+z6=(122FX,314FY);
+z7=(109FX,205FY);
+z8=(155FX,71FY);
+z9=(372FX,-15FY);
+z10=(627FX,72FY);
+z11=(783FX,309FY);
+z12=(287FX,309FY);
+z13=(527FX,604FY);
+z14=(640FX,471FY);
+z15=(618FX,310FY);
+z16=(522FX,91FY);
+z17=(381FX,21FY);
+z18=(265FX,154FY);
+z19=(268FX,213FY);
+z20=(287FX,309FY);
+FuF (z1
+{10,39} .. {-1,30}z2
+{-1,54} .. {-30,36}z3
+{-48,58} .. {-96,0}z4
+{-101,-1} .. {-74,-56}z5
+{-75,-58} .. {-24,-97}z6
+{-9,-41} .. {1,-31}z7
+{2,-56} .. {28,-33}z8
+{51,-58} .. {94,1}z9
+{91,0} .. {79,58}z10
+{79,57} .. {25,101}z11
+);
+FuF (z12
+{48,196} .. {111,0}z13
+{74,0} .. {1,-88}z14
+{1,-44} .. {-16,-63}z15
+{-26,-98} .. {-38,-48}z16
+{-38,-47} .. {-56,0}z17
+{-76,0} .. {-2,89}z18
+{0,22} .. {2,18}z19
+{4,27} .. {9,37}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(19,552FX#,637FY#,8FY#);
+"dz";
+z1=(532FX,162FY);
+z2=(513FX,173FY);
+z3=(425FX,85FY);
+z4=(410FX,109FY);
+z5=(419FX,165FY);
+z6=(431FX,228FY);
+z7=(434FX,283FY);
+z8=(430FX,317FY);
+z9=(387FX,390FY);
+z10=(306FX,427FY);
+z11=(371FX,451FY);
+z12=(401FX,464FY);
+z13=(421FX,475FY);
+z14=(443FX,507FY);
+z15=(443FX,516FY);
+z16=(437FX,534FY);
+z17=(417FX,546FY);
+z18=(314FX,569FY);
+z19=(288FX,579FY);
+z20=(284FX,592FY);
+z21=(290FX,602FY);
+z22=(310FX,619FY);
+z23=(286FX,637FY);
+z24=(207FX,584FY);
+z25=(184FX,563FY);
+z26=(182FX,560FY);
+z27=(173FX,547FY);
+z28=(168FX,531FY);
+z29=(166FX,518FY);
+z30=(188FX,489FY);
+z31=(291FX,468FY);
+z32=(299FX,456FY);
+z33=(241FX,428FY);
+z34=(119FX,338FY);
+z35=(23FX,126FY);
+z36=(18FX,98FY);
+z37=(18FX,75FY);
+z38=(35FX,17FY);
+z39=(88FX,-8FY);
+z40=(316FX,233FY);
+z41=(295FX,158FY);
+z42=(280FX,59FY);
+z43=(296FX,9FY);
+z44=(343FX,-7FY);
+z45=(532FX,162FY);
+z46=(329FX,320FY);
+z47=(258FX,183FY);
+z48=(169FX,90FY);
+z49=(153FX,117FY);
+z50=(200FX,298FY);
+z51=(229FX,361FY);
+z52=(274FX,413FY);
+z53=(321FX,373FY);
+z54=(329FX,320FY);
+FuF (z1
+-- z2
+{-35,-59} .. {-24,0}z3
+{-10,1} .. {0,15}z4
+{2,26} .. {4,11}z5
+{5,16} .. {3,26}z6
+{3,24} .. {-1,13}z7
+{0,16} .. {-2,7}z8
+{-10,31} .. {-19,18}z9
+{-19,17} .. {-36,7}z10
+-- z11
+{15,5} .. {5,3}z12
+{9,5} .. {4,2}z13
+{11,10} .. {4,11}z14
+{0,1} .. {-1,4}z15
+{0,6} .. {-4,6}z16
+{-3,7} .. {-10,1}z17
+-- z18
+{-14,3} .. {-3,4}z19
+{-3,5} .. {0,3}z20
+-- z21
+-- z22
+-- z23
+-- z24
+{-11,-8} .. {-4,-7}z25
+-- z26
+{-4,-7} .. {-2,-2}z27
+{-3,-4} .. {-1,-6}z28
+{-2,-4} .. {0,-4}z29
+{1,-17} .. {13,-2}z30
+-- z31
+{7,-2} .. {-2,-7}z32
+-- z33
+{-58,-28} .. {-24,-32}z34
+{-45,-64} .. {-18,-78}z35
+{-3,-14} .. {0,-5}z36
+{0,-3} .. {0,-12}z37
+{0,-24} .. {11,-15}z38
+{13,-17} .. {23,1}z39
+{70,1} .. {82,160}z40
+{-8,-25} .. {-7,-26}z41
+{-10,-42} .. {0,-24}z42
+{1,-23} .. {10,-10}z43
+{10,-11} .. {22,0}z44
+{70,0} .. {56,113}z45
+);
+FuF (z46
+{-13,-38} .. {-35,-54}z47
+{-40,-63} .. {-19,1}z48
+{-11,0} .. {0,18}z49
+{0,40} .. {31,81}z50
+{9,23} .. {10,19}z51
+{14,25} .. {16,9}z52
+{25,-11} .. {6,-16}z53
+{5,-8} .. {0,-27}z54
+);
+lbl (range 1 thru 54);
+endchar;
+
+beginchar(20,592FX#,439FY#,188FY#);
+"gh";
+z1=(494FX,268FY);
+z2=(505FX,319FY);
+z3=(509FX,365FY);
+z4=(450FX,439FY);
+z5=(214FX,192FY);
+z6=(239FX,293FY);
+z7=(250FX,371FY);
+z8=(190FX,439FY);
+z9=(94FX,399FY);
+z10=(-3FX,262FY);
+z11=(17FX,252FY);
+z12=(105FX,339FY);
+z13=(120FX,319FY);
+z14=(117FX,293FY);
+z15=(110FX,262FY);
+z16=(44FX,0FY);
+z17=(174FX,0FY);
+z18=(190FX,63FY);
+z19=(265FX,232FY);
+z20=(359FX,335FY);
+z21=(372FX,312FY);
+z22=(368FX,277FY);
+z23=(257FX,-189FY);
+z24=(484FX,-189FY);
+z25=(491FX,-160FY);
+z26=(394FX,-160FY);
+FuF (z1
+{7,28} .. {1,6}z2
+{3,15} .. {0,15}z3
+{-3,50} .. {-37,-1}z4
+{-81,-1} .. {-76,-164}z5
+-- z6
+{8,33} .. {-1,19}z7
+{-2,46} .. {-38,-1}z8
+{-32,0} .. {-32,-26}z9
+{-38,-31} .. {-27,-60}z10
+-- z11
+{34,58} .. {24,0}z12
+{10,-1} .. {0,-13}z13
+{-2,-17} .. {0,-1}z14
+{-3,-15} .. {-1,-6}z15
+-- z16
+-- z17
+-- z18
+{12,49} .. {38,64}z19
+{41,69} .. {22,0}z20
+{9,0} .. {0,-15}z21
+{0,-13} .. {-2,-10}z22
+-- z23
+-- z24
+-- z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(21,563FX#,640FY#,14FY#);
+"chmute";
+z1=(532FX,162FY);
+z2=(513FX,173FY);
+z3=(465FX,104FY);
+z4=(425FX,79FY);
+z5=(410FX,105FY);
+z6=(419FX,165FY);
+z7=(431FX,228FY);
+z8=(434FX,280FY);
+z9=(430FX,313FY);
+z10=(394FX,371FY);
+z11=(307FX,411FY);
+z12=(249FX,420FY);
+z13=(330FX,550FY);
+z14=(415FX,607FY);
+z15=(427FX,605FY);
+z16=(433FX,591FY);
+z17=(419FX,563FY);
+z18=(407FX,545FY);
+z19=(403FX,534FY);
+z20=(411FX,506FY);
+z21=(448FX,490FY);
+z22=(481FX,503FY);
+z23=(505FX,529FY);
+z24=(510FX,549FY);
+z25=(513FX,571FY);
+z26=(509FX,594FY);
+z27=(485FX,628FY);
+z28=(442FX,641FY);
+z29=(290FX,572FY);
+z30=(164FX,424FY);
+z31=(73FX,425FY);
+z32=(64FX,397FY);
+z33=(145FX,397FY);
+z34=(107FX,337FY);
+z35=(23FX,126FY);
+z36=(18FX,98FY);
+z37=(18FX,75FY);
+z38=(39FX,8FY);
+z39=(88FX,-14FY);
+z40=(316FX,233FY);
+z41=(290FX,135FY);
+z42=(280FX,57FY);
+z43=(295FX,4FY);
+z44=(343FX,-13FY);
+z45=(435FX,26FY);
+z46=(532FX,162FY);
+z47=(318FX,301FY);
+z48=(254FX,171FY);
+z49=(169FX,84FY);
+z50=(156FX,111FY);
+z51=(166FX,185FY);
+z52=(200FX,298FY);
+z53=(218FX,348FY);
+z54=(235FX,391FY);
+z55=(286FX,372FY);
+z56=(316FX,334FY);
+z57=(318FX,325FY);
+z58=(319FX,309FY);
+z59=(318FX,301FY);
+FuF (z1
+-- z2
+{-18,-30} .. {-14,-16}z3
+{-15,-17} .. {-12,0}z4
+{-10,1} .. {0,16}z5
+{2,29} .. {4,11}z6
+{5,17} .. {3,25}z7
+{3,23} .. {-1,12}z8
+{0,15} .. {-2,7}z9
+{-7,22} .. {-18,17}z10
+{-23,22} .. {-35,5}z11
+{-26,4} .. {-13,2}z12
+{30,58} .. {24,28}z13
+{33,38} .. {24,0}z14
+-- z15
+{4,-4} .. {0,-6}z16
+-- z17
+{-6,-8} .. {-2,-4}z18
+{-1,-5} .. {-1,-3}z19
+{1,-11} .. {5,-8}z20
+{10,-10} .. {15,0}z21
+{9,0} .. {12,8}z22
+{13,9} .. {3,9}z23
+{3,8} .. {0,6}z24
+{2,7} .. {0,8}z25
+{-2,11} .. {-1,4}z26
+{-6,15} .. {-10,8}z27
+{-12,9} .. {-17,0}z28
+{-48,-1} .. {-54,-45}z29
+{-38,-33} .. {-45,-65}z30
+-- z31
+-- z32
+-- z33
+{-18,-29} .. {-6,-11}z34
+{-37,-63} .. {-19,-78}z35
+{-3,-13} .. {0,-6}z36
+{0,-3} .. {0,-12}z37
+{0,-30} .. {14,-15}z38
+{14,-15} .. {19,0}z39
+{68,0} .. {84,164}z40
+{-11,-35} .. {-7,-30}z41
+{-7,-32} .. {0,-20}z42
+{1,-25} .. {9,-10}z43
+{11,-12} .. {21,0}z44
+{31,0} .. {30,26}z45
+{36,31} .. {29,60}z46
+);
+FuF (z47
+{-13,-39} .. {-29,-48}z48
+{-36,-58} .. {-21,0}z49
+{-8,1} .. {0,17}z50
+{2,34} .. {4,16}z51
+-- z52
+{5,15} .. {7,18}z53
+{9,21} .. {3,8}z54
+{19,-4} .. {15,-9}z55
+{17,-10} .. {3,-15}z56
+{1,-4} .. {0,-2}z57
+-- z58
+{-1,-3} .. {0,-2}z59
+);
+lbl (range 1 thru 59);
+endchar;
+
+beginchar(22,482FX#,624FY#,75FY#);
+"esimple";
+z1=(257FX,425FY);
+z2=(304FX,624FY);
+z3=(263FX,624FY);
+z4=(112FX,597FY);
+z5=(109FX,579FY);
+z6=(144FX,572FY);
+z7=(153FX,554FY);
+z8=(152FX,529FY);
+z9=(148FX,507FY);
+z10=(21FX,0FY);
+z11=(200FX,0FY);
+z12=(223FX,-6FY);
+z13=(230FX,-23FY);
+z14=(229FX,-28FY);
+z15=(228FX,-34FY);
+z16=(194FX,-58FY);
+z17=(157FX,-58FY);
+z18=(152FX,-74FY);
+z19=(170FX,-76FY);
+z20=(181FX,-76FY);
+z21=(297FX,-68FY);
+z22=(371FX,-31FY);
+z23=(372FX,-22FY);
+z24=(256FX,28FY);
+z25=(157FX,28FY);
+z26=(251FX,396FY);
+z27=(500FX,396FY);
+z28=(507FX,425FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{17,-1} .. {6,-4}z6
+{6,-5} .. {0,-7}z7
+{0,-12} .. {0,-5}z8
+{-2,-10} .. {-1,-5}z9
+-- z10
+-- z11
+{11,0} .. {4,-4}z12
+{4,-6} .. {0,-6}z13
+{0,-1} .. {0,-2}z14
+{0,-3} .. {0,-1}z15
+{-5,-14} .. {-18,-3}z16
+{-5,0} .. {-20,0}z17
+-- z18
+{6,-1} .. {7,0}z19
+-- z20
+{45,0} .. {32,5}z21
+{44,7} .. {5,17}z22
+{1,2} .. {0,4}z23
+{-2,34} .. {-75,0}z24
+-- z25
+-- z26
+-- z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(23,599FX#,437FY#,188FY#);
+"article";
+z1=(571FX,162FY);
+z2=(552FX,172FY);
+z3=(471FX,81FY);
+z4=(448FX,99FY);
+z5=(453FX,127FY);
+z6=(494FX,268FY);
+z7=(506FX,312FY);
+z8=(510FX,357FY);
+z9=(446FX,438FY);
+z10=(214FX,192FY);
+z11=(239FX,293FY);
+z12=(249FX,367FY);
+z13=(187FX,438FY);
+z14=(93FX,400FY);
+z15=(-3FX,262FY);
+z16=(17FX,252FY);
+z17=(60FX,321FY);
+z18=(105FX,345FY);
+z19=(120FX,322FY);
+z20=(117FX,294FY);
+z21=(110FX,262FY);
+z22=(-3FX,-189FY);
+z23=(430FX,-189FY);
+z24=(435FX,-160FY);
+z25=(169FX,-160FY);
+z26=(144FX,-155FY);
+z27=(139FX,-141FY);
+z28=(141FX,-126FY);
+z29=(190FX,63FY);
+z30=(267FX,238FY);
+z31=(359FX,340FY);
+z32=(373FX,313FY);
+z33=(368FX,277FY);
+z34=(320FX,123FY);
+z35=(310FX,64FY);
+z36=(399FX,-13FY);
+z37=(505FX,51FY);
+z38=(571FX,162FY);
+FuF (z1
+-- z2
+{-29,-62} .. {-25,1}z3
+{-16,1} .. {0,11}z4
+{0,7} .. {4,12}z5
+-- z6
+{7,21} .. {2,8}z7
+{3,17} .. {0,13}z8
+{-3,54} .. {-40,0}z9
+{-92,-2} .. {-63,-162}z10
+-- z11
+{8,30} .. {-1,19}z12
+{-2,48} .. {-40,0}z13
+{-33,-1} .. {-30,-24}z14
+{-36,-30} .. {-28,-62}z15
+-- z16
+{19,35} .. {9,11}z17
+{15,16} .. {16,0}z18
+{9,0} .. {1,-16}z19
+{-2,-17} .. {0,-2}z20
+{-3,-12} .. {-2,-9}z21
+-- z22
+-- z23
+-- z24
+-- z25
+{-14,0} .. {-3,3}z26
+{-3,4} .. {0,5}z27
+{1,7} .. {1,3}z28
+-- z29
+{13,50} .. {38,67}z30
+{39,68} .. {22,0}z31
+{9,-1} .. {1,-17}z32
+{0,-13} .. {-3,-11}z33
+-- z34
+{-8,-23} .. {1,-16}z35
+{2,-52} .. {57,1}z36
+{35,0} .. {36,42}z37
+{30,35} .. {14,39}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(24,746FX#,437FY#,188FY#);
+"th";
+z1=(713FX,245FY);
+z2=(645FX,245FY);
+z3=(651FX,270FY);
+z4=(655FX,291FY);
+z5=(657FX,313FY);
+z6=(614FX,404FY);
+z7=(521FX,438FY);
+z8=(337FX,357FY);
+z9=(217FX,205FY);
+z10=(239FX,293FY);
+z11=(249FX,367FY);
+z12=(186FX,438FY);
+z13=(93FX,400FY);
+z14=(-3FX,262FY);
+z15=(16FX,252FY);
+z16=(60FX,321FY);
+z17=(104FX,345FY);
+z18=(120FX,322FY);
+z19=(116FX,294FY);
+z20=(110FX,262FY);
+z21=(12FX,-126FY);
+z22=(2FX,-150FY);
+z23=(-13FX,-164FY);
+z24=(-59FX,-175FY);
+z25=(-62FX,-189FY);
+z26=(187FX,-189FY);
+z27=(190FX,-175FY);
+z28=(146FX,-164FY);
+z29=(138FX,-145FY);
+z30=(140FX,-126FY);
+z31=(190FX,63FY);
+z32=(234FX,179FY);
+z33=(321FX,292FY);
+z34=(464FX,343FY);
+z35=(505FX,328FY);
+z36=(526FX,287FY);
+z37=(524FX,267FY);
+z38=(518FX,245FY);
+z39=(495FX,245FY);
+z40=(374FX,232FY);
+z41=(277FX,130FY);
+z42=(271FX,89FY);
+z43=(425FX,-14FY);
+z44=(544FX,22FY);
+z45=(614FX,123FY);
+z46=(638FX,217FY);
+z47=(705FX,217FY);
+z48=(511FX,217FY);
+z49=(488FX,122FY);
+z50=(460FX,40FY);
+z51=(421FX,17FY);
+z52=(403FX,28FY);
+z53=(394FX,68FY);
+z54=(404FX,133FY);
+z55=(487FX,217FY);
+FuF (z1
+-- z2
+-- z3
+{2,10} .. {1,4}z4
+{1,8} .. {0,7}z5
+{-2,39} .. {-27,22}z6
+{-28,23} .. {-34,0}z7
+{-60,-1} .. {-63,-53}z8
+{-56,-46} .. {-24,-55}z9
+-- z10
+{7,30} .. {-1,19}z11
+{-2,48} .. {-40,0}z12
+{-32,-1} .. {-29,-24}z13
+{-37,-30} .. {-28,-62}z14
+-- z15
+{20,35} .. {9,11}z16
+{14,16} .. {15,0}z17
+{10,0} .. {1,-16}z18
+{-2,-17} .. {-1,-2}z19
+{-2,-13} .. {-2,-9}z20
+-- z21
+{-3,-10} .. {-4,-6}z22
+{-4,-6} .. {-6,-3}z23
+{-11,-7} .. {-20,0}z24
+-- z25
+-- z26
+-- z27
+{-22,1} .. {-7,6}z28
+{-5,5} .. {0,8}z29
+{0,6} .. {1,7}z30
+-- z31
+{10,41} .. {19,36}z32
+{25,49} .. {33,26}z33
+{44,35} .. {52,-1}z34
+{13,0} .. {14,-10}z35
+{14,-11} .. {0,-16}z36
+{0,-7} .. {-1,-7}z37
+-- z38
+-- z39
+{-55,0} .. {-26,-9}z40
+{-50,-16} .. {-14,-52}z41
+{-4,-15} .. {0,-12}z42
+{3,-69} .. {100,0}z43
+{45,0} .. {35,24}z44
+{36,25} .. {11,42}z45
+-- z46
+-- z47
+);
+FuF (z48
+-- z49
+{-10,-39} .. {-9,-16}z50
+{-8,-15} .. {-18,0}z51
+{-8,1} .. {-4,6}z52
+{-6,8} .. {0,18}z53
+{0,18} .. {7,25}z54
+{16,56} .. {39,0}z55
+);
+lbl (range 1 thru 55);
+endchar;
+
+beginchar(25,623FX#,624FY#,20FY#);
+"zh";
+z1=(348FX,396FY);
+z2=(276FX,111FY);
+z3=(244FX,43FY);
+z4=(181FX,9FY);
+z5=(136FX,61FY);
+z6=(134FX,80FY);
+z7=(149FX,195FY);
+z8=(177FX,286FY);
+z9=(241FX,385FY);
+z10=(297FX,396FY);
+z11=(485FX,425FY);
+z12=(531FX,624FY);
+z13=(492FX,624FY);
+z14=(340FX,597FY);
+z15=(336FX,579FY);
+z16=(371FX,572FY);
+z17=(381FX,554FY);
+z18=(380FX,529FY);
+z19=(375FX,507FY);
+z20=(355FX,425FY);
+z21=(254FX,425FY);
+z22=(174FX,412FY);
+z23=(108FX,373FY);
+z24=(19FX,227FY);
+z25=(9FX,147FY);
+z26=(37FX,50FY);
+z27=(175FX,-21FY);
+z28=(321FX,31FY);
+z29=(433FX,215FY);
+z30=(478FX,396FY);
+z31=(590FX,396FY);
+z32=(598FX,425FY);
+FuF (z1
+-- z2
+{-7,-27} .. {-15,-19}z3
+{-18,-23} .. {-24,0}z4
+{-26,1} .. {-4,34}z5
+{-1,4} .. {0,8}z6
+{1,36} .. {9,41}z7
+{9,36} .. {10,25}z8
+{21,56} .. {21,10}z9
+{16,7} .. {22,0}z10
+);
+FuF (z11
+-- z12
+-- z13
+-- z14
+-- z15
+{19,-1} .. {5,-4}z16
+{7,-5} .. {0,-7}z17
+{0,-12} .. {0,-5}z18
+{-2,-10} .. {-1,-4}z19
+-- z20
+-- z21
+{-28,0} .. {-26,-9}z22
+{-23,-7} .. {-21,-19}z23
+{-44,-38} .. {-15,-59}z24
+{-7,-29} .. {0,-24}z25
+{1,-36} .. {18,-28}z26
+{30,-48} .. {62,0}z27
+{44,1} .. {53,34}z28
+{52,34} .. {23,89}z29
+-- z30
+-- z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(26,423FX#,439FY#,188FY#);
+"sh";
+z1=(388FX,290FY);
+z2=(392FX,321FY);
+z3=(370FX,391FY);
+z4=(255FX,439FY);
+z5=(112FX,381FY);
+z6=(9FX,225FY);
+z7=(42FX,221FY);
+z8=(97FX,313FY);
+z9=(190FX,362FY);
+z10=(249FX,328FY);
+z11=(259FX,287FY);
+z12=(257FX,266FY);
+z13=(239FX,205FY);
+z14=(211FX,152FY);
+z15=(170FX,99FY);
+z16=(126FX,58FY);
+z17=(31FX,-18FY);
+z18=(-65FX,-94FY);
+z19=(-102FX,-148FY);
+z20=(-103FX,-159FY);
+z21=(-88FX,-181FY);
+z22=(-49FX,-189FY);
+z23=(262FX,-189FY);
+z24=(269FX,-160FY);
+z25=(114FX,-160FY);
+z26=(52FX,-137FY);
+z27=(41FX,-105FY);
+z28=(43FX,-92FY);
+z29=(44FX,-80FY);
+z30=(89FX,-14FY);
+z31=(206FX,77FY);
+z32=(287FX,138FY);
+z33=(325FX,175FY);
+z34=(388FX,290FY);
+FuF (z1
+{4,12} .. {-1,8}z2
+{-1,25} .. {-14,22}z3
+{-20,33} .. {-56,-1}z4
+{-43,0} .. {-52,-38}z5
+{-53,-38} .. {-16,-66}z6
+-- z7
+{9,32} .. {28,29}z8
+{31,33} .. {31,0}z9
+{30,0} .. {9,-23}z10
+{6,-15} .. {0,-12}z11
+{0,-7} .. {-1,-7}z12
+{-9,-32} .. {-3,-8}z13
+{-7,-17} .. {-11,-18}z14
+{-12,-19} .. {-15,-17}z15
+{-10,-11} .. {-19,-17}z16
+-- z17
+{-46,-37} .. {-17,-14}z18
+{-21,-18} .. {-4,-18}z19
+{-1,-2} .. {0,-5}z20
+{1,-11} .. {9,-3}z21
+{10,-5} .. {16,0}z22
+-- z23
+-- z24
+-- z25
+{-30,0} .. {-11,15}z26
+{-7,10} .. {0,11}z27
+{1,4} .. {1,5}z28
+{0,5} .. {0,3}z29
+{8,26} .. {22,18}z30
+-- z31
+{43,33} .. {11,8}z32
+{11,9} .. {15,16}z33
+{31,34} .. {10,43}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(27,317FX#,439FY#,204FY#);
+"ch";
+z1=(283FX,402FY);
+z2=(282FX,439FY);
+z3=(120FX,370FY);
+z4=(19FX,225FY);
+z5=(12FX,178FY);
+z6=(32FX,130FY);
+z7=(100FX,91FY);
+z8=(152FX,41FY);
+z9=(141FX,23FY);
+z10=(128FX,12FY);
+z11=(52FX,-36FY);
+z12=(-38FX,-94FY);
+z13=(-86FX,-157FY);
+z14=(-87FX,-172FY);
+z15=(-77FX,-194FY);
+z16=(-36FX,-204FY);
+z17=(199FX,-204FY);
+z18=(206FX,-176FY);
+z19=(111FX,-176FY);
+z20=(51FX,-133FY);
+z21=(53FX,-115FY);
+z22=(119FX,-30FY);
+z23=(198FX,25FY);
+z24=(230FX,56FY);
+z25=(244FX,84FY);
+z26=(247FX,107FY);
+z27=(187FX,186FY);
+z28=(149FX,212FY);
+z29=(124FX,266FY);
+z30=(130FX,315FY);
+z31=(179FX,379FY);
+z32=(259FX,404FY);
+FuF (z1
+-- z2
+{-53,-1} .. {-55,-45}z3
+{-55,-45} .. {-13,-52}z4
+{-5,-19} .. {0,-12}z5
+{1,-23} .. {12,-9}z6
+{20,-17} .. {26,-9}z7
+{39,-14} .. {-4,-19}z8
+{-4,-8} .. {-4,-3}z9
+-- z10
+-- z11
+{-45,-28} .. {-15,-10}z12
+{-26,-20} .. {-6,-23}z13
+{-1,-4} .. {1,-6}z14
+{1,-11} .. {6,-3}z15
+{10,-7} .. {17,0}z16
+-- z17
+-- z18
+-- z19
+{-40,0} .. {0,29}z20
+{0,6} .. {2,6}z21
+{10,33} .. {34,24}z22
+-- z23
+{17,12} .. {5,9}z24
+{7,7} .. {3,12}z25
+{2,10} .. {-1,5}z26
+{-2,33} .. {-38,20}z27
+{-16,7} .. {-10,10}z28
+{-16,16} .. {0,20}z29
+{1,19} .. {2,14}z30
+{9,27} .. {24,16}z31
+{25,17} .. {29,0}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(28,582FX#,441FY#,0FY#);
+"rhard";
+z1=(489FX,28FY);
+z2=(302FX,28FY);
+z3=(451FX,134FY);
+z4=(556FX,340FY);
+z5=(527FX,413FY);
+z6=(449FX,441FY);
+z7=(334FX,384FY);
+z8=(216FX,192FY);
+z9=(241FX,293FY);
+z10=(251FX,367FY);
+z11=(188FX,437FY);
+z12=(72FX,377FY);
+z13=(-1FX,262FY);
+z14=(18FX,252FY);
+z15=(62FX,321FY);
+z16=(106FX,344FY);
+z17=(122FX,321FY);
+z18=(112FX,262FY);
+z19=(47FX,0FY);
+z20=(176FX,0FY);
+z21=(192FX,63FY);
+z22=(268FX,231FY);
+z23=(379FX,337FY);
+z24=(392FX,334FY);
+z25=(416FX,291FY);
+z26=(398FX,213FY);
+z27=(346FX,116FY);
+z28=(303FX,59FY);
+z29=(250FX,14FY);
+z30=(246FX,0FY);
+z31=(482FX,0FY);
+FuF (z1
+-- z2
+{49,23} .. {51,47}z3
+{72,68} .. {-2,70}z4
+{-1,31} .. {-19,18}z5
+{-19,19} .. {-33,-1}z6
+{-38,0} .. {-38,-38}z7
+{-44,-43} .. {-34,-85}z8
+-- z9
+{7,30} .. {-1,19}z10
+{-2,46} .. {-40,0}z11
+{-40,0} .. {-37,-40}z12
+{-28,-31} .. {-21,-46}z13
+-- z14
+{21,36} .. {9,10}z15
+{14,15} .. {15,0}z16
+{10,0} .. {1,-16}z17
+{-3,-22} .. {-4,-18}z18
+-- z19
+-- z20
+-- z21
+{13,51} .. {38,61}z22
+{43,70} .. {31,0}z23
+{4,0} .. {5,-2}z24
+{16,-8} .. {0,-20}z25
+{1,-21} .. {-13,-31}z26
+{-13,-32} .. {-22,-32}z27
+{-15,-23} .. {-14,-15}z28
+{-16,-16} .. {-20,-14}z29
+-- z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(29,502FX#,624FY#,15FY#);
+"ts";
+z1=(501FX,425FY);
+z2=(402FX,425FY);
+z3=(365FX,487FY);
+z4=(301FX,570FY);
+z5=(288FX,581FY);
+z6=(285FX,586FY);
+z7=(283FX,591FY);
+z8=(295FX,596FY);
+z9=(360FX,596FY);
+z10=(367FX,624FY);
+z11=(151FX,624FY);
+z12=(121FX,584FY);
+z13=(179FX,520FY);
+z14=(239FX,439FY);
+z15=(98FX,372FY);
+z16=(13FX,216FY);
+z17=(7FX,144FY);
+z18=(29FX,54FY);
+z19=(169FX,-15FY);
+z20=(336FX,58FY);
+z21=(429FX,219FY);
+z22=(435FX,263FY);
+z23=(437FX,303FY);
+z24=(432FX,347FY);
+z25=(416FX,396FY);
+z26=(494FX,396FY);
+z27=(304FX,215FY);
+z28=(301FX,181FY);
+z29=(295FX,145FY);
+z30=(259FX,61FY);
+z31=(240FX,37FY);
+z32=(208FX,17FY);
+z33=(150FX,77FY);
+z34=(139FX,159FY);
+z35=(146FX,250FY);
+z36=(155FX,285FY);
+z37=(215FX,393FY);
+z38=(242FX,405FY);
+z39=(255FX,402FY);
+z40=(268FX,391FY);
+z41=(303FX,287FY);
+z42=(306FX,249FY);
+z43=(304FX,215FY);
+FuF (z1
+-- z2
+{-18,33} .. {-6,8}z3
+-- z4
+-- z5
+{-1,1} .. {-1,2}z6
+{-1,2} .. {-1,1}z7
+{1,3} .. {7,0}z8
+-- z9
+-- z10
+-- z11
+-- z12
+{18,-14} .. {20,-28}z13
+-- z14
+{-53,-4} .. {-41,-40}z15
+{-49,-49} .. {-7,-55}z16
+{-4,-29} .. {0,-19}z17
+{1,-38} .. {14,-22}z18
+{28,-47} .. {65,1}z19
+{63,1} .. {48,48}z20
+{47,47} .. {15,61}z21
+{4,19} .. {1,10}z22
+{2,17} .. {-1,10}z23
+{-1,17} .. {-2,12}z24
+{-4,16} .. {-7,17}z25
+-- z26
+);
+FuF (z27
+{-1,-17} .. {-1,-6}z28
+{-3,-16} .. {-1,-8}z29
+{-11,-36} .. {-13,-20}z30
+{-10,-13} .. {-3,-3}z31
+{-13,-14} .. {-8,0}z32
+{-28,1} .. {-10,39}z33
+{-7,25} .. {-1,29}z34
+{0,32} .. {5,29}z35
+{4,15} .. {2,8}z36
+{15,55} .. {25,17}z37
+{11,8} .. {7,0}z38
+{5,0} .. {3,-2}z39
+{5,-2} .. {4,-5}z40
+{19,-29} .. {5,-40}z41
+{2,-11} .. {0,-15}z42
+{1,-12} .. {-2,-11}z43
+);
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(30,831FX#,624FY#,188FY#);
+"ph";
+z1=(467FX,229FY);
+z2=(565FX,624FY);
+z3=(525FX,624FY);
+z4=(373FX,597FY);
+z5=(370FX,579FY);
+z6=(405FX,572FY);
+z7=(414FX,554FY);
+z8=(413FX,529FY);
+z9=(409FX,507FY);
+z10=(370FX,362FY);
+z11=(284FX,176FY);
+z12=(201FX,81FY);
+z13=(186FX,107FY);
+z14=(189FX,134FY);
+z15=(194FX,158FY);
+z16=(241FX,308FY);
+z17=(252FX,372FY);
+z18=(232FX,420FY);
+z19=(179FX,438FY);
+z20=(67FX,379FY);
+z21=(-1FX,268FY);
+z22=(19FX,257FY);
+z23=(102FX,345FY);
+z24=(118FX,328FY);
+z25=(113FX,306FY);
+z26=(63FX,157FY);
+z27=(51FX,107FY);
+z28=(47FX,65FY);
+z29=(64FX,6FY);
+z30=(117FX,-15FY);
+z31=(222FX,41FY);
+z32=(333FX,214FY);
+z33=(256FX,-96FY);
+z34=(242FX,-133FY);
+z35=(225FX,-158FY);
+z36=(185FX,-171FY);
+z37=(181FX,-189FY);
+z38=(408FX,-189FY);
+z39=(413FX,-171FY);
+z40=(380FX,-156FY);
+z41=(378FX,-146FY);
+z42=(386FX,-94FY);
+z43=(426FX,63FY);
+z44=(500FX,235FY);
+z45=(595FX,340FY);
+z46=(612FX,320FY);
+z47=(609FX,298FY);
+z48=(604FX,277FY);
+z49=(555FX,123FY);
+z50=(545FX,62FY);
+z51=(633FX,-13FY);
+z52=(745FX,53FY);
+z53=(807FX,162FY);
+z54=(787FX,170FY);
+z55=(745FX,104FY);
+z56=(704FX,79FY);
+z57=(684FX,106FY);
+z58=(688FX,132FY);
+z59=(730FX,268FY);
+z60=(744FX,357FY);
+z61=(730FX,414FY);
+z62=(682FX,438FY);
+z63=(582FX,395FY);
+z64=(467FX,229FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{18,-1} .. {5,-4}z6
+{6,-5} .. {0,-7}z7
+{0,-12} .. {0,-5}z8
+{-2,-11} .. {-1,-4}z9
+-- z10
+{-15,-57} .. {-42,-67}z11
+{-41,-63} .. {-15,0}z12
+{-10,1} .. {0,16}z13
+{0,8} .. {2,10}z14
+{2,14} .. {1,2}z15
+-- z16
+{8,26} .. {-1,17}z17
+{-1,20} .. {-12,12}z18
+{-11,12} .. {-24,0}z19
+{-39,-1} .. {-36,-39}z20
+{-32,-33} .. {-13,-41}z21
+-- z22
+{25,59} .. {31,0}z23
+{10,0} .. {1,-12}z24
+{-2,-11} .. {-2,-3}z25
+-- z26
+{-7,-22} .. {-2,-11}z27
+{-3,-15} .. {1,-13}z28
+{1,-26} .. {10,-14}z29
+{13,-14} .. {22,0}z30
+{36,0} .. {34,37}z31
+{30,35} .. {44,81}z32
+-- z33
+{-6,-15} .. {-4,-10}z34
+{-3,-8} .. {-8,-9}z35
+{-8,-7} .. {-19,-2}z36
+-- z37
+-- z38
+-- z39
+{-19,3} .. {-3,7}z40
+{-2,3} .. {1,4}z41
+{0,15} .. {5,20}z42
+-- z43
+{12,51} .. {37,64}z44
+{41,71} .. {22,-1}z45
+{11,0} .. {0,-13}z46
+{-2,-14} .. {0,-1}z47
+{-2,-9} .. {-1,-5}z48
+-- z49
+{-7,-22} .. {0,-19}z50
+{1,-51} .. {57,1}z51
+{37,0} .. {38,44}z52
+{33,39} .. {8,34}z53
+-- z54
+{-14,-29} .. {-14,-15}z55
+{-15,-17} .. {-13,0}z56
+{-13,1} .. {0,17}z57
+{2,14} .. {1,4}z58
+-- z59
+{10,34} .. {-1,25}z60
+{0,26} .. {-9,13}z61
+{-11,16} .. {-21,0}z62
+{-35,0} .. {-32,-28}z63
+{-41,-36} .. {-36,-75}z64
+);
+lbl (range 1 thru 64);
+endchar;
+
+beginchar(31,499FX#,443FY#,13FY#);
+"osimple";
+z1=(437FX,331FY);
+z2=(385FX,415FY);
+z3=(288FX,443FY);
+z4=(122FX,372FY);
+z5=(30FX,213FY);
+z6=(21FX,140FY);
+z7=(40FX,58FY);
+z8=(175FX,-13FY);
+z9=(344FX,55FY);
+z10=(434FX,215FY);
+z11=(443FX,286FY);
+z12=(442FX,303FY);
+z13=(437FX,331FY);
+z14=(326FX,358FY);
+z15=(321FX,315FY);
+z16=(308FX,251FY);
+z17=(259FX,84FY);
+z18=(182FX,19FY);
+z19=(148FX,36FY);
+z20=(139FX,90FY);
+z21=(155FX,174FY);
+z22=(155FX,177FY);
+z23=(198FX,322FY);
+z24=(214FX,365FY);
+z25=(237FX,393FY);
+z26=(282FX,411FY);
+z27=(313FX,399FY);
+z28=(326FX,358FY);
+FuF (z1
+{-7,37} .. {-28,19}z2
+{-27,19} .. {-38,0}z3
+{-60,0} .. {-51,-48}z4
+{-46,-45} .. {-15,-61}z5
+{-6,-28} .. {1,-20}z6
+{1,-32} .. {12,-22}z7
+{25,-48} .. {65,0}z8
+{67,0} .. {45,45}z9
+{45,46} .. {15,61}z10
+{6,27} .. {0,20}z11
+{-1,4} .. {0,7}z12
+{-2,11} .. {-2,7}z13
+);
+FuF (z14
+{-2,-20} .. {-2,-9}z15
+{-3,-21} .. {-6,-22}z16
+{-25,-95} .. {-8,-16}z17
+{-21,-43} .. {-31,0}z18
+{-14,0} .. {-9,11}z19
+{-5,7} .. {-1,29}z20
+{3,25} .. {8,31}z21
+-- z22
+{11,45} .. {17,52}z23
+{6,18} .. {5,11}z24
+{11,12} .. {5,6}z25
+{16,13} .. {14,-1}z26
+{12,0} .. {9,-8}z27
+{8,-9} .. {1,-19}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(32,527FX#,624FY#,13FY#);
+"ev";
+z1=(113FX,507FY);
+z2=(24FX,157FY);
+z3=(13FX,70FY);
+z4=(28FX,9FY);
+z5=(74FX,-13FY);
+z6=(187FX,44FY);
+z7=(288FX,196FY);
+z8=(239FX,0FY);
+z9=(502FX,0FY);
+z10=(510FX,28FY);
+z11=(421FX,28FY);
+z12=(402FX,29FY);
+z13=(386FX,37FY);
+z14=(382FX,54FY);
+z15=(474FX,425FY);
+z16=(345FX,425FY);
+z17=(318FX,315FY);
+z18=(249FX,178FY);
+z19=(161FX,84FY);
+z20=(148FX,111FY);
+z21=(152FX,147FY);
+z22=(269FX,624FY);
+z23=(230FX,624FY);
+z24=(77FX,597FY);
+z25=(74FX,579FY);
+z26=(109FX,572FY);
+z27=(119FX,554FY);
+z28=(117FX,529FY);
+z29=(113FX,507FY);
+FuF (z1
+-- z2
+{-8,-33} .. {1,-25}z3
+{0,-25} .. {10,-15}z4
+{10,-15} .. {21,1}z5
+{36,0} .. {39,38}z6
+{40,39} .. {27,62}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{-10,5} .. {0,1}z13
+{-3,5} .. {0,7}z14
+-- z15
+-- z16
+-- z17
+{-17,-43} .. {-29,-48}z18
+{-38,-63} .. {-21,0}z19
+{-9,1} .. {0,17}z20
+{0,12} .. {3,11}z21
+-- z22
+-- z23
+-- z24
+-- z25
+{19,-1} .. {5,-4}z26
+{6,-5} .. {0,-7}z27
+{-1,-12} .. {-1,-5}z28
+{-1,-10} .. {-1,-4}z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(127,470FX#,638FY#,13FY#);
+"question";
+z1=(180FX,176FY);
+z2=(225FX,268FY);
+z3=(311FX,328FY);
+z4=(423FX,429FY);
+z5=(445FX,513FY);
+z6=(424FX,575FY);
+z7=(275FX,639FY);
+z8=(173FX,613FY);
+z9=(124FX,526FY);
+z10=(141FX,475FY);
+z11=(189FX,454FY);
+z12=(232FX,471FY);
+z13=(250FX,513FY);
+z14=(233FX,563FY);
+z15=(224FX,586FY);
+z16=(239FX,611FY);
+z17=(267FX,619FY);
+z18=(317FX,594FY);
+z19=(333FX,538FY);
+z20=(322FX,477FY);
+z21=(257FX,375FY);
+z22=(188FX,284FY);
+z23=(161FX,176FY);
+z24=(162FX,137FY);
+z25=(109FX,116FY);
+z26=(88FX,62FY);
+z27=(111FX,9FY);
+z28=(165FX,-13FY);
+z29=(218FX,9FY);
+z30=(239FX,62FY);
+z31=(216FX,115FY);
+z32=(162FX,137FY);
+FuF (z1
+{5,37} .. {25,24}z2
+{12,12} .. {45,28}z3
+{54,33} .. {21,34}z4
+{16,25} .. {-1,31}z5
+{0,21} .. {-14,20}z6
+{-28,43} .. {-71,0}z7
+{-40,0} .. {-28,-17}z8
+{-34,-21} .. {1,-37}z9
+{0,-20} .. {11,-14}z10
+{12,-14} .. {20,0}z11
+{17,0} .. {12,11}z12
+{13,12} .. {-1,17}z13
+{-1,14} .. {-11,19}z14
+{-6,11} .. {0,5}z15
+{0,11} .. {10,6}z16
+{8,6} .. {11,-1}z17
+{21,0} .. {12,-17}z18
+{11,-15} .. {0,-23}z19
+{1,-21} .. {-8,-19}z20
+{-12,-30} .. {-31,-38}z21
+{-37,-43} .. {-10,-17}z22
+{-19,-33} .. {1,-39}z23
+);
+FuF (z24
+{-21,0} .. {-14,-14}z25
+{-14,-15} .. {0,-21}z26
+{0,-21} .. {15,-14}z27
+{15,-15} .. {21,0}z28
+{21,0} .. {15,15}z29
+{14,14} .. {0,21}z30
+{-1,21} .. {-15,14}z31
+{-15,15} .. {-21,0}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+ligtable 101:
+39=:22,
+118=:32;
+
+ligtable 69:
+39=:6;
+
+ligtable 117:
+39=:23;
+
+ligtable 116:
+39=:24,
+104=:24;
+
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+ligtable 100:
+122=:19;
+
+ligtable 74:
+39=:5;
+
+ligtable 115:
+104=:26;
+
+ligtable 83:
+104=:10,
+72=:10;
+
+ligtable 99:
+39=:29,
+104=:27;
+
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+ligtable 114:
+39=:28;
+
+ligtable 111:
+39=:31;
+
+ligtable 79:
+39=:15;
+
+ligtable 39:
+39=:34;
+
+ligtable 96:
+96=:92;
+
+ligtable 60:
+60=:60;
+
+ligtable 62:
+62=:62;
+
+ligtable 45:
+45=:123;
+
+ligtable 123:
+45=:125;
+
+ligtable 27:
+121 kern 67FX#;
+
+ligtable 26:
+121 kern 40FX#;
+
+ligtable 23:
+121 kern 40FX#;
+
+ligtable 20:
+121 kern 67FX#;
+
+ligtable 12:
+78 kern -116FX#,
+75 kern -116FX#,
+72 kern -175FX#,
+4 kern -103FX#,
+71 kern -103FX#;
+
+ligtable 9:
+81 kern -67FX#;
+
+ligtable 8:
+78 kern -116FX#,
+75 kern -116FX#,
+72 kern -175FX#;
+
+ligtable 4:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 124:
+25 kern -103FX#,
+122 kern -103FX#,
+121 kern -103FX#,
+119 kern -103FX#,
+118 kern -103FX#,
+117 kern -103FX#,
+29 kern -17FX#,
+24 kern -17FX#,
+116 kern -17FX#,
+26 kern -103FX#,
+115 kern -103FX#,
+28 kern -103FX#,
+114 kern -103FX#,
+113 kern -103FX#,
+30 kern -103FX#,
+112 kern -103FX#,
+31 kern -103FX#,
+111 kern -103FX#,
+109 kern -103FX#,
+108 kern -103FX#,
+106 kern -103FX#,
+20 kern -103FX#,
+103 kern -103FX#,
+102 kern -76FX#,
+19 kern -76FX#,
+100 kern -76FX#,
+21 kern -103FX#,
+27 kern -103FX#,
+99 kern -103FX#,
+98 kern -103FX#,
+23 kern -103FX#,
+97 kern -103FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -94FX#,
+85 kern -112FX#,
+12 kern -112FX#,
+82 kern -112FX#,
+81 kern -94FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -112FX#,
+79 kern -112FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -112FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -112FX#,
+7 kern -112FX#;
+
+ligtable 122:
+121 kern 67FX#;
+
+ligtable 118:
+121 kern 67FX#;
+
+ligtable 112:
+39=:30,
+104=:30,
+121 kern 40FX#;
+
+ligtable 108:
+121 kern 67FX#;
+
+ligtable 107:
+121 kern 40FX#;
+
+ligtable 106:
+39=:21,
+121 kern 40FX#;
+
+ligtable 103:
+39=:25,
+104=:20,
+121 kern 40FX#;
+
+ligtable 88:
+78 kern -116FX#,
+75 kern -116FX#,
+72 kern -67FX#;
+
+ligtable 87:
+81 kern -67FX#;
+
+ligtable 86:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 85:
+39=:7,
+81 kern -67FX#;
+
+ligtable 82:
+39=:12,
+81 kern -67FX#;
+
+ligtable 80:
+39=:14,
+104=:14,
+72=:14,
+78 kern -116FX#,
+75 kern -116FX#,
+72 kern -67FX#;
+
+ligtable 77:
+25 kern -76FX#,
+122 kern -76FX#,
+121 kern -76FX#,
+119 kern -76FX#,
+118 kern -76FX#,
+117 kern -76FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -76FX#,
+115 kern -76FX#,
+28 kern -76FX#,
+114 kern -76FX#,
+113 kern -76FX#,
+30 kern -76FX#,
+112 kern -76FX#,
+31 kern -76FX#,
+111 kern -76FX#,
+109 kern -76FX#,
+108 kern -76FX#,
+106 kern -76FX#,
+20 kern -76FX#,
+103 kern -76FX#,
+102 kern -49FX#,
+19 kern -49FX#,
+100 kern -49FX#,
+21 kern -76FX#,
+27 kern -76FX#,
+99 kern -76FX#,
+98 kern -76FX#,
+23 kern -76FX#,
+97 kern -76FX#,
+86 kern -76FX#,
+81 kern -67FX#,
+70 kern -76FX#;
+
+ligtable 76:
+86 kern -184FX#,
+10 kern -103FX#,
+83 kern -103FX#,
+14 kern -134FX#,
+80 kern -134FX#,
+78 kern -134FX#,
+77 kern -134FX#,
+75 kern -134FX#,
+72 kern -134FX#,
+4 kern -184FX#,
+71 kern -184FX#,
+70 kern -134FX#,
+3 kern -103FX#,
+68 kern -103FX#,
+65 kern -134FX#;
+
+ligtable 71:
+39=:9,
+104=:4,
+72=:4,
+78 kern -116FX#,
+75 kern -116FX#,
+72 kern -175FX#,
+4 kern -103FX#,
+71 kern -103FX#;
+
+ligtable 70:
+78 kern -116FX#,
+75 kern -116FX#,
+72 kern -175FX#;
+
+ligtable 68:
+122=:3,
+90=:3,
+78 kern -116FX#,
+75 kern -116FX#,
+72 kern -175FX#,
+4 kern -103FX#,
+71 kern -103FX#;
+
+ligtable 63:
+25 kern -202FX#,
+122 kern -202FX#,
+121 kern -202FX#,
+119 kern -202FX#,
+118 kern -202FX#,
+117 kern -202FX#,
+29 kern -17FX#,
+24 kern -17FX#,
+116 kern -17FX#,
+26 kern -202FX#,
+115 kern -202FX#,
+28 kern -202FX#,
+114 kern -202FX#,
+113 kern -202FX#,
+30 kern -202FX#,
+112 kern -202FX#,
+31 kern -202FX#,
+111 kern -202FX#,
+109 kern -202FX#,
+108 kern -202FX#,
+106 kern -202FX#,
+20 kern -202FX#,
+103 kern -202FX#,
+102 kern -76FX#,
+19 kern -76FX#,
+100 kern -76FX#,
+21 kern -202FX#,
+27 kern -202FX#,
+99 kern -202FX#,
+98 kern -202FX#,
+23 kern -202FX#,
+97 kern -202FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -193FX#,
+85 kern -112FX#,
+12 kern -112FX#,
+82 kern -112FX#,
+81 kern -193FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -112FX#,
+79 kern -112FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -112FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -112FX#,
+7 kern -112FX#;
+
+ligtable 33:
+25 kern -139FX#,
+122 kern -139FX#,
+121 kern -139FX#,
+119 kern -139FX#,
+118 kern -139FX#,
+117 kern -139FX#,
+29 kern -17FX#,
+24 kern -17FX#,
+116 kern -17FX#,
+26 kern -139FX#,
+115 kern -139FX#,
+28 kern -139FX#,
+114 kern -139FX#,
+113 kern -139FX#,
+30 kern -139FX#,
+112 kern -139FX#,
+31 kern -139FX#,
+111 kern -139FX#,
+109 kern -139FX#,
+108 kern -139FX#,
+106 kern -139FX#,
+20 kern -139FX#,
+103 kern -139FX#,
+102 kern -76FX#,
+19 kern -76FX#,
+100 kern -76FX#,
+21 kern -139FX#,
+27 kern -139FX#,
+99 kern -139FX#,
+98 kern -139FX#,
+23 kern -139FX#,
+97 kern -139FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -130FX#,
+85 kern -112FX#,
+12 kern -112FX#,
+82 kern -112FX#,
+81 kern -130FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -112FX#,
+79 kern -112FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -112FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -112FX#,
+7 kern -112FX#;
+
+font_slant := 0.2500;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "artmbi10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/artmbs10.mf b/Master/texmf-dist/fonts/source/public/armenian/artmbs10.mf
new file mode 100644
index 00000000000..febb3d54e5f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/artmbs10.mf
@@ -0,0 +1,7677 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 artmbs10.mf (Armenian Times Bold Slanted 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+currenttransform:=identity slanted 0.1700 yscaled aspect_ratio;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,159FX#,763FY#,0FY#);
+"bacakanchakan";
+z1=(157FX,636FY);
+z2=(138FX,763FY);
+z3=(101FX,750FY);
+z4=(115FX,718FY);
+z5=(71FX,658FY);
+z6=(40FX,636FY);
+z7=(0FX,605FY);
+z8=(-29FX,524FY);
+z9=(-5FX,446FY);
+z10=(30FX,459FY);
+z11=(20FX,490FY);
+z12=(43FX,535FY);
+z13=(93FX,574FY);
+z14=(126FX,597FY);
+z15=(157FX,636FY);
+FuF (z1
+{18,43} .. {-28,36}z2
+-- z3
+{12,-19} .. {-1,-6}z4
+{-1,-28} .. {-19,-18}z5
+-- z6
+-- z7
+{-21,-17} .. {0,-37}z8
+{1,-25} .. {17,-29}z9
+-- z10
+{-9,17} .. {0,7}z11
+{0,7} .. {17,24}z12
+{17,13} .. {17,12}z13
+-- z14
+{14,11} .. {7,15}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(34,542FX#,624FY#,0FY#);
+"quotedblright";
+z1=(156FX,507FY);
+z2=(64FX,337FY);
+z3=(60FX,327FY);
+z4=(63FX,320FY);
+z5=(69FX,314FY);
+z6=(79FX,311FY);
+z7=(86FX,312FY);
+z8=(140FX,367FY);
+z9=(177FX,437FY);
+z10=(189FX,514FY);
+z11=(179FX,567FY);
+z12=(151FX,608FY);
+z13=(105FX,624FY);
+z14=(66FX,615FY);
+z15=(42FX,589FY);
+z16=(34FX,555FY);
+z17=(53FX,506FY);
+z18=(105FX,485FY);
+z19=(156FX,507FY);
+z20=(382FX,507FY);
+z21=(356FX,414FY);
+z22=(291FX,337FY);
+z23=(287FX,327FY);
+z24=(289FX,320FY);
+z25=(296FX,314FY);
+z26=(305FX,311FY);
+z27=(312FX,312FY);
+z28=(367FX,367FY);
+z29=(403FX,436FY);
+z30=(415FX,514FY);
+z31=(405FX,567FY);
+z32=(377FX,608FY);
+z33=(331FX,624FY);
+z34=(293FX,615FY);
+z35=(269FX,589FY);
+z36=(261FX,555FY);
+z37=(280FX,506FY);
+z38=(331FX,485FY);
+z39=(382FX,507FY);
+FuF (z1
+{-2,-64} .. {-59,-49}z2
+{-3,-4} .. {0,-3}z3
+{0,-2} .. {2,-3}z4
+-- z5
+{3,-2} .. {4,0}z6
+{3,0} .. {2,1}z7
+{20,15} .. {16,22}z8
+{16,21} .. {9,25}z9
+{8,25} .. {0,26}z10
+{0,18} .. {-7,17}z11
+{-6,17} .. {-12,10}z12
+{-13,11} .. {-18,0}z13
+{-15,0} .. {-11,-6}z14
+{-10,-7} .. {-5,-10}z15
+{-5,-11} .. {0,-12}z16
+{0,-19} .. {12,-14}z17
+{12,-14} .. {22,0}z18
+{22,0} .. {12,15}z19
+);
+FuF (z20
+{-1,-34} .. {-17,-28}z21
+{-16,-28} .. {-27,-23}z22
+{-3,-3} .. {0,-4}z23
+{0,-3} .. {1,-2}z24
+-- z25
+{3,-2} .. {4,0}z26
+{3,0} .. {1,1}z27
+{22,15} .. {15,21}z28
+{16,21} .. {9,25}z29
+{8,25} .. {0,27}z30
+{0,18} .. {-7,17}z31
+{-6,17} .. {-12,10}z32
+{-13,11} .. {-18,0}z33
+{-14,0} .. {-11,-6}z34
+{-11,-7} .. {-5,-10}z35
+{-5,-11} .. {0,-12}z36
+{0,-19} .. {13,-14}z37
+{12,-14} .. {22,0}z38
+{22,0} .. {12,15}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(35,862FX#,623FY#,173FY#);
+"numbersign";
+z1=(85FX,298FY);
+z2=(308FX,298FY);
+z3=(265FX,152FY);
+z4=(85FX,152FY);
+z5=(65FX,144FY);
+z6=(58FX,125FY);
+z7=(65FX,106FY);
+z8=(85FX,97FY);
+z9=(247FX,97FY);
+z10=(174FX,-140FY);
+z11=(192FX,-174FY);
+z12=(226FX,-156FY);
+z13=(303FX,97FY);
+z14=(477FX,97FY);
+z15=(404FX,-140FY);
+z16=(422FX,-174FY);
+z17=(456FX,-156FY);
+z18=(533FX,97FY);
+z19=(776FX,97FY);
+z20=(795FX,106FY);
+z21=(803FX,125FY);
+z22=(795FX,144FY);
+z23=(776FX,152FY);
+z24=(552FX,152FY);
+z25=(596FX,298FY);
+z26=(776FX,298FY);
+z27=(795FX,306FY);
+z28=(803FX,325FY);
+z29=(795FX,345FY);
+z30=(776FX,353FY);
+z31=(615FX,353FY);
+z32=(687FX,590FY);
+z33=(669FX,624FY);
+z34=(635FX,606FY);
+z35=(558FX,353FY);
+z36=(383FX,353FY);
+z37=(456FX,590FY);
+z38=(438FX,624FY);
+z39=(404FX,606FY);
+z40=(327FX,353FY);
+z41=(85FX,353FY);
+z42=(65FX,345FY);
+z43=(58FX,325FY);
+z44=(65FX,306FY);
+z45=(85FX,298FY);
+z46=(495FX,152FY);
+z47=(321FX,152FY);
+z48=(365FX,298FY);
+z49=(539FX,298FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-8,0} .. {-5,-5}z5
+{-5,-6} .. {0,-7}z6
+{0,-7} .. {5,-5}z7
+{5,-6} .. {8,0}z8
+-- z9
+-- z10
+{0,-19} .. {12,-4}z11
+{19,0} .. {4,12}z12
+-- z13
+-- z14
+-- z15
+{0,-19} .. {12,-4}z16
+{19,0} .. {4,12}z17
+-- z18
+-- z19
+{8,0} .. {5,6}z20
+{5,5} .. {0,7}z21
+{0,7} .. {-5,5}z22
+{-5,5} .. {-8,0}z23
+-- z24
+-- z25
+-- z26
+{7,0} .. {5,5}z27
+{5,6} .. {0,7}z28
+{0,8} .. {-5,6}z29
+{-5,5} .. {-8,0}z30
+-- z31
+-- z32
+{0,19} .. {-12,4}z33
+{-19,0} .. {-4,-12}z34
+-- z35
+-- z36
+-- z37
+{0,19} .. {-12,4}z38
+{-19,0} .. {-4,-12}z39
+-- z40
+-- z41
+{-8,0} .. {-5,-5}z42
+{-5,-6} .. {0,-8}z43
+{0,-7} .. {5,-6}z44
+{6,-5} .. {8,0}z45
+);
+FuF (z46
+-- z47
+-- z48
+-- z49
+);
+lbl (range 1 thru 49);
+endchar;
+
+beginchar(36,471FX#,641FY#,63FY#);
+"dollar";
+z1=(261FX,385FY);
+z2=(261FX,588FY);
+z3=(368FX,513FY);
+z4=(400FX,438FY);
+z5=(418FX,438FY);
+z6=(418FX,572FY);
+z7=(261FX,620FY);
+z8=(261FX,642FY);
+z9=(221FX,642FY);
+z10=(221FX,620FY);
+z11=(95FX,572FY);
+z12=(36FX,457FY);
+z13=(100FX,332FY);
+z14=(221FX,249FY);
+z15=(221FX,21FY);
+z16=(146FX,41FY);
+z17=(67FX,170FY);
+z18=(47FX,170FY);
+z19=(47FX,21FY);
+z20=(134FX,-5FY);
+z21=(221FX,-13FY);
+z22=(221FX,-64FY);
+z23=(261FX,-64FY);
+z24=(261FX,-10FY);
+z25=(389FX,42FY);
+z26=(442FX,167FY);
+z27=(401FX,280FY);
+z28=(261FX,385FY);
+z29=(221FX,589FY);
+z30=(221FX,410FY);
+z31=(149FX,469FY);
+z32=(134FX,512FY);
+z33=(167FX,571FY);
+z34=(221FX,589FY);
+z35=(261FX,21FY);
+z36=(261FX,221FY);
+z37=(337FX,109FY);
+z38=(261FX,21FY);
+FuF (z1
+-- z2
+{48,-14} .. {23,-36}z3
+{13,-21} .. {8,-29}z4
+-- z5
+-- z6
+{-53,28} .. {-52,4}z7
+-- z8
+-- z9
+-- z10
+{-52,-7} .. {-33,-25}z11
+{-39,-29} .. {0,-47}z12
+{1,-45} .. {42,-38}z13
+{19,-17} .. {62,-38}z14
+-- z15
+{-31,3} .. {-19,11}z16
+{-41,21} .. {-11,65}z17
+-- z18
+-- z19
+{32,-12} .. {26,-5}z20
+{27,-5} .. {31,0}z21
+-- z22
+-- z23
+-- z24
+{53,6} .. {33,29}z25
+{35,32} .. {0,52}z26
+{-1,43} .. {-27,32}z27
+{-20,24} .. {-73,47}z28
+);
+FuF (z29
+-- z30
+{-38,25} .. {-10,14}z31
+{-10,14} .. {0,14}z32
+{1,23} .. {21,17}z33
+{13,10} .. {23,2}z34
+);
+FuF (z35
+-- z36
+{51,-39} .. {-1,-36}z37
+{0,-47} .. {-50,-12}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(37,667FX#,638FY#,26FY#);
+"percent";
+z1=(308FX,474FY);
+z2=(303FX,518FY);
+z3=(239FX,618FY);
+z4=(169FX,638FY);
+z5=(46FX,559FY);
+z6=(27FX,472FY);
+z7=(68FX,350FY);
+z8=(167FX,303FY);
+z9=(267FX,348FY);
+z10=(308FX,474FY);
+z11=(631FX,143FY);
+z12=(613FX,228FY);
+z13=(563FX,287FY);
+z14=(490FX,309FY);
+z15=(421FX,289FY);
+z16=(368FX,231FY);
+z17=(351FX,142FY);
+z18=(396FX,16FY);
+z19=(491FX,-25FY);
+z20=(587FX,18FY);
+z21=(631FX,143FY);
+z22=(565FX,638FY);
+z23=(504FX,638FY);
+z24=(69FX,-26FY);
+z25=(131FX,-26FY);
+z26=(200FX,467FY);
+z27=(194FX,356FY);
+z28=(181FX,329FY);
+z29=(170FX,325FY);
+z30=(156FX,329FY);
+z31=(141FX,355FY);
+z32=(135FX,439FY);
+z33=(140FX,581FY);
+z34=(155FX,609FY);
+z35=(168FX,616FY);
+z36=(181FX,610FY);
+z37=(194FX,582FY);
+z38=(200FX,467FY);
+z39=(523FX,156FY);
+z40=(517FX,28FY);
+z41=(505FX,2FY);
+z42=(490FX,-3FY);
+z43=(463FX,27FY);
+z44=(457FX,135FY);
+z45=(465FX,257FY);
+z46=(477FX,282FY);
+z47=(490FX,287FY);
+z48=(504FX,283FY);
+z49=(516FX,253FY);
+z50=(523FX,156FY);
+FuF (z1
+{0,15} .. {-3,14}z2
+{-12,47} .. {-31,19}z3
+{-23,14} .. {-24,-1}z4
+{-56,0} .. {-26,-52}z5
+{-13,-26} .. {0,-32}z6
+{1,-52} .. {27,-29}z7
+{28,-31} .. {38,0}z8
+{39,0} .. {27,30}z9
+{27,30} .. {0,54}z10
+);
+FuF (z11
+{0,31} .. {-11,25}z12
+{-12,24} .. {-22,15}z13
+{-22,15} .. {-26,-1}z14
+{-22,0} .. {-24,-13}z15
+{-22,-12} .. {-13,-26}z16
+{-12,-25} .. {0,-34}z17
+{0,-57} .. {30,-27}z18
+{31,-28} .. {32,1}z19
+{36,0} .. {29,29}z20
+{30,30} .. {0,53}z21
+);
+FuF (z22
+-- z23
+-- z24
+-- z25
+);
+FuF (z26
+{0,-53} .. {-4,-22}z27
+{-2,-12} .. {-7,-5}z28
+{-4,-3} .. {-3,0}z29
+{-8,1} .. {-2,1}z30
+{-8,7} .. {-3,11}z31
+{-4,19} .. {0,36}z32
+{0,64} .. {3,31}z33
+{5,15} .. {5,3}z34
+{3,5} .. {5,0}z35
+{7,-1} .. {2,-3}z36
+{7,-4} .. {2,-15}z37
+{4,-23} .. {0,-53}z38
+);
+FuF (z39
+{-1,-50} .. {-3,-35}z40
+{-5,-14} .. {-3,-4}z41
+{-5,-4} .. {-5,0}z42
+{-14,1} .. {-4,19}z43
+{-4,24} .. {0,48}z44
+{1,49} .. {5,32}z45
+{2,11} .. {6,6}z46
+{3,3} .. {6,0}z47
+{6,0} .. {3,-3}z48
+{6,-6} .. {2,-14}z49
+{5,-32} .. {0,-33}z50
+);
+lbl (range 1 thru 50);
+endchar;
+
+beginchar(38,804FX#,635FY#,10FY#);
+"ampersand";
+z1=(446FX,127FY);
+z2=(363FX,222FY);
+z3=(288FX,341FY);
+z4=(415FX,514FY);
+z5=(403FX,572FY);
+z6=(370FX,618FY);
+z7=(319FX,635FY);
+z8=(237FX,615FY);
+z9=(177FX,558FY);
+z10=(155FX,479FY);
+z11=(193FX,303FY);
+z12=(87FX,211FY);
+z13=(43FX,125FY);
+z14=(70FX,51FY);
+z15=(140FX,5FY);
+z16=(230FX,-10FY);
+z17=(410FX,47FY);
+z18=(602FX,-10FY);
+z19=(673FX,5FY);
+z20=(726FX,46FY);
+z21=(746FX,106FY);
+z22=(703FX,106FY);
+z23=(673FX,53FY);
+z24=(602FX,33FY);
+z25=(475FX,99FY);
+z26=(606FX,258FY);
+z27=(667FX,346FY);
+z28=(692FX,355FY);
+z29=(751FX,357FY);
+z30=(751FX,399FY);
+z31=(654FX,398FY);
+z32=(552FX,399FY);
+z33=(552FX,357FY);
+z34=(601FX,354FY);
+z35=(617FX,346FY);
+z36=(569FX,276FY);
+z37=(508FX,193FY);
+z38=(446FX,127FY);
+z39=(158FX,156FY);
+z40=(200FX,265FY);
+z41=(208FX,273FY);
+z42=(284FX,157FY);
+z43=(374FX,71FY);
+z44=(238FX,33FY);
+z45=(196FX,49FY);
+z46=(168FX,94FY);
+z47=(158FX,156FY);
+z48=(373FX,514FY);
+z49=(347FX,451FY);
+z50=(275FX,374FY);
+z51=(247FX,514FY);
+z52=(268FX,576FY);
+z53=(319FX,602FY);
+z54=(347FX,591FY);
+z55=(366FX,559FY);
+z56=(373FX,514FY);
+FuF (z1
+{-17,18} .. {-38,45}z2
+{-32,39} .. {-18,40}z3
+{85,75} .. {0,40}z4
+{0,20} .. {-8,19}z5
+{-7,19} .. {-15,11}z6
+{-15,12} .. {-19,0}z7
+{-29,0} .. {-25,-13}z8
+{-25,-14} .. {-15,-24}z9
+{-15,-24} .. {0,-29}z10
+{0,-59} .. {25,-59}z11
+-- z12
+{-28,-25} .. {0,-34}z13
+{0,-29} .. {18,-21}z14
+{18,-20} .. {28,-11}z15
+{29,-10} .. {31,0}z16
+{62,0} .. {58,38}z17
+{62,-38} .. {66,0}z18
+{25,0} .. {22,10}z19
+{22,9} .. {13,18}z20
+{14,17} .. {0,23}z21
+-- z22
+{0,-22} .. {-20,-13}z23
+{-20,-14} .. {-28,0}z24
+{-37,0} .. {-48,44}z25
+{43,41} .. {45,65}z26
+-- z27
+{3,4} .. {14,2}z28
+{13,1} .. {26,0}z29
+-- z30
+{-21,-1} .. {-43,0}z31
+{-22,0} .. {-46,1}z32
+-- z33
+{22,0} .. {11,-2}z34
+{11,-1} .. {0,-4}z35
+-- z36
+{-22,-31} .. {-19,-24}z37
+{-19,-24} .. {-22,-20}z38
+);
+FuF (z39
+{0,50} .. {26,25}z40
+-- z41
+{19,-40} .. {31,-38}z42
+{27,-31} .. {34,-26}z43
+{-44,-26} .. {-47,0}z44
+{-16,0} .. {-12,11}z45
+{-12,11} .. {-7,19}z46
+{-7,20} .. {0,22}z47
+);
+FuF (z48
+{0,-19} .. {-17,-23}z49
+{-18,-23} .. {-30,-28}z50
+{-19,47} .. {0,46}z51
+{0,24} .. {14,17}z52
+{13,17} .. {21,0}z53
+{10,0} .. {8,-7}z54
+{8,-8} .. {4,-14}z55
+{4,-13} .. {0,-17}z56
+);
+lbl (range 1 thru 56);
+endchar;
+
+beginchar(39,235FX#,624FY#,0FY#);
+"apatharc";
+z1=(175FX,535FY);
+z2=(155FX,597FY);
+z3=(98FX,624FY);
+z4=(58FX,609FY);
+z5=(43FX,570FY);
+z6=(102FX,523FY);
+z7=(114FX,524FY);
+z8=(125FX,526FY);
+z9=(133FX,524FY);
+z10=(138FX,513FY);
+z11=(60FX,413FY);
+z12=(69FX,395FY);
+z13=(140FX,452FY);
+z14=(175FX,535FY);
+FuF (z1
+{-1,24} .. {-13,17}z2
+{-14,19} .. {-24,-1}z3
+{-16,0} .. {-11,-10}z4
+{-10,-10} .. {0,-16}z5
+{1,-32} .. {39,0}z6
+{2,0} .. {6,0}z7
+-- z8
+-- z9
+{3,-2} .. {0,-5}z10
+{-1,-34} .. {-51,-32}z11
+-- z12
+{27,13} .. {20,25}z13
+{23,28} .. {0,27}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(40,379FX#,750FY#,249FY#);
+"parenleft";
+z1=(366FX,-250FY);
+z2=(366FX,-222FY);
+z3=(285FX,-154FY);
+z4=(195FX,250FY);
+z5=(222FX,522FY);
+z6=(281FX,650FY);
+z7=(366FX,724FY);
+z8=(366FX,750FY);
+z9=(129FX,554FY);
+z10=(46FX,253FY);
+z11=(129FX,-50FY);
+z12=(366FX,-250FY);
+FuF (z1
+-- z2
+{-34,20} .. {-20,26}z3
+{-60,80} .. {0,189}z4
+{0,117} .. {18,64}z5
+{15,53} .. {24,32}z6
+{18,24} .. {39,25}z7
+-- z8
+{-99,-33} .. {-59,-98}z9
+{-56,-92} .. {0,-109}z10
+{0,-109} .. {56,-93}z11
+{59,-100} .. {99,-33}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(41,379FX#,750FY#,249FY#);
+"parenright";
+z1=(334FX,247FY);
+z2=(252FX,550FY);
+z3=(14FX,750FY);
+z4=(14FX,722FY);
+z5=(95FX,654FY);
+z6=(185FX,251FY);
+z7=(158FX,-22FY);
+z8=(99FX,-150FY);
+z9=(14FX,-224FY);
+z10=(14FX,-250FY);
+z11=(242FX,-66FY);
+z12=(334FX,247FY);
+FuF (z1
+{0,109} .. {-55,93}z2
+{-60,100} .. {-99,33}z3
+-- z4
+{34,-19} .. {20,-26}z5
+{60,-80} .. {0,-189}z6
+{0,-118} .. {-18,-64}z7
+{-14,-51} .. {-25,-34}z8
+{-17,-23} .. {-39,-26}z9
+-- z10
+{90,31} .. {62,92}z11
+{61,91} .. {0,118}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(42,471FX#,646FY#,0FY#);
+"asterisk";
+z1=(406FX,335FY);
+z2=(350FX,415FY);
+z3=(270FX,443FY);
+z4=(382FX,479FY);
+z5=(372FX,568FY);
+z6=(309FX,520FY);
+z7=(255FX,473FY);
+z8=(266FX,545FY);
+z9=(267FX,633FY);
+z10=(237FX,646FY);
+z11=(195FX,600FY);
+z12=(207FX,548FY);
+z13=(218FX,476FY);
+z14=(95FX,566FY);
+z15=(67FX,554FY);
+z16=(56FX,523FY);
+z17=(75FX,486FY);
+z18=(104FX,475FY);
+z19=(180FX,456FY);
+z20=(203FX,444FY);
+z21=(125FX,415FY);
+z22=(56FX,363FY);
+z23=(99FX,322FY);
+z24=(168FX,372FY);
+z25=(219FX,414FY);
+z26=(219FX,405FY);
+z27=(206FX,340FY);
+z28=(193FX,286FY);
+z29=(235FX,241FY);
+z30=(281FX,292FY);
+z31=(254FX,416FY);
+z32=(309FX,368FY);
+z33=(375FX,321FY);
+z34=(406FX,335FY);
+FuF (z1
+{32,47} .. {-43,9}z2
+{-32,7} .. {-21,11}z3
+{40,23} .. {45,10}z4
+{52,18} .. {-50,0}z5
+{-13,-2} .. {-29,-28}z6
+{-23,-22} .. {-13,-10}z7
+{2,25} .. {5,23}z8
+{9,25} .. {-24,23}z9
+{-8,9} .. {-12,0}z10
+{-29,0} .. {0,-27}z11
+{0,-10} .. {8,-24}z12
+{6,-20} .. {1,-27}z13
+{-22,17} .. {-18,0}z14
+{-12,-2} .. {-7,-7}z15
+{-7,-11} .. {0,-10}z16
+{1,-16} .. {14,-6}z17
+{13,-6} .. {6,-2}z18
+{26,-6} .. {25,-7}z19
+-- z20
+{-18,-11} .. {-34,-8}z21
+{-40,-9} .. {0,-27}z22
+{0,-27} .. {27,0}z23
+{32,0} .. {19,21}z24
+{20,22} .. {25,16}z25
+-- z26
+{-1,-19} .. {-8,-25}z27
+{-8,-28} .. {1,-6}z28
+{2,-27} .. {26,0}z29
+{30,3} .. {0,31}z30
+{-20,59} .. {-1,58}z31
+{17,-9} .. {20,-23}z32
+{25,-29} .. {19,0}z33
+{12,1} .. {8,9}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(43,537FX#,488FY#,31FY#);
+"plus";
+z1=(309FX,188FY);
+z2=(531FX,188FY);
+z3=(531FX,266FY);
+z4=(309FX,266FY);
+z5=(309FX,488FY);
+z6=(231FX,488FY);
+z7=(231FX,266FY);
+z8=(10FX,266FY);
+z9=(10FX,188FY);
+z10=(231FX,188FY);
+z11=(231FX,-32FY);
+z12=(309FX,-32FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,235FX#,141FY#,165FY#);
+"comma";
+z1=(205FX,27FY);
+z2=(176FX,111FY);
+z3=(109FX,141FY);
+z4=(54FX,119FY);
+z5=(30FX,65FY);
+z6=(50FX,15FY);
+z7=(98FX,-6FY);
+z8=(131FX,2FY);
+z9=(139FX,5FY);
+z10=(149FX,-11FY);
+z11=(47FX,-145FY);
+z12=(47FX,-165FY);
+z13=(160FX,-96FY);
+z14=(205FX,27FY);
+FuF (z1
+{0,35} .. {-19,21}z2
+{-18,21} .. {-26,-1}z3
+{-21,0} .. {-15,-15}z4
+{-16,-15} .. {0,-21}z5
+{1,-19} .. {13,-15}z6
+{13,-14} .. {19,0}z7
+{13,0} .. {9,5}z8
+{3,2} .. {2,0}z9
+{7,0} .. {0,-11}z10
+{-1,-61} .. {-67,-28}z11
+-- z12
+{48,15} .. {27,31}z13
+{31,34} .. {0,48}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(45,422FX#,266FY#,0FY#);
+"miuthyun";
+z1=(45FX,188FY);
+z2=(378FX,188FY);
+z3=(378FX,266FY);
+z4=(45FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,235FX#,141FY#,11FY#);
+"period";
+z1=(195FX,65FY);
+z2=(172FX,120FY);
+z3=(118FX,142FY);
+z4=(64FX,119FY);
+z5=(41FX,65FY);
+z6=(64FX,11FY);
+z7=(118FX,-12FY);
+z8=(173FX,11FY);
+z9=(195FX,65FY);
+FuF (z1
+{0,21} .. {-15,15}z2
+{-15,15} .. {-21,0}z3
+{-21,0} .. {-15,-15}z4
+{-15,-15} .. {0,-21}z5
+{1,-22} .. {15,-14}z6
+{14,-15} .. {22,0}z7
+{21,0} .. {15,15}z8
+{15,14} .. {0,22}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(47,262FX#,638FY#,14FY#);
+"slash";
+z1=(265FX,639FY);
+z2=(207FX,639FY);
+z3=(1FX,-14FY);
+z4=(60FX,-14FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,471FX#,637FY#,12FY#);
+"zero";
+z1=(437FX,312FY);
+z2=(406FX,501FY);
+z3=(336FX,600FY);
+z4=(235FX,637FY);
+z5=(134FX,600FY);
+z6=(54FX,465FY);
+z7=(34FX,305FY);
+z8=(54FX,159FY);
+z9=(89FX,76FY);
+z10=(235FX,-13FY);
+z11=(309FX,6FY);
+z12=(411FX,138FY);
+z13=(437FX,312FY);
+z14=(295FX,313FY);
+z15=(293FX,115FY);
+z16=(287FX,69FY);
+z17=(237FX,21FY);
+z18=(183FX,76FY);
+z19=(174FX,253FY);
+z20=(180FX,537FY);
+z21=(203FX,595FY);
+z22=(234FX,606FY);
+z23=(271FX,591FY);
+z24=(293FX,504FY);
+z25=(295FX,313FY);
+FuF (z1
+{0,70} .. {-21,56}z2
+{-15,41} .. {-31,24}z3
+{-32,25} .. {-36,0}z4
+{-35,0} .. {-32,-25}z5
+{-36,-28} .. {-17,-62}z6
+{-14,-49} .. {0,-57}z7
+{0,-54} .. {13,-44}z8
+{11,-36} .. {13,-19}z9
+{40,-60} .. {57,1}z10
+{27,0} .. {23,12}z11
+{49,27} .. {19,61}z12
+{18,56} .. {0,59}z13
+);
+FuF (z14
+-- z15
+{0,-17} .. {-4,-13}z16
+{-9,-32} .. {-24,0}z17
+{-28,0} .. {-8,37}z18
+{-6,28} .. {0,90}z19
+{0,163} .. {4,27}z20
+{5,29} .. {11,10}z21
+{8,7} .. {13,0}z22
+{17,-1} .. {7,-10}z23
+{14,-19} .. {0,-39}z24
+{2,-102} .. {0,-25}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(49,471FX#,637FY#,0FY#);
+"one";
+z1=(399FX,0FY);
+z2=(399FX,17FY);
+z3=(385FX,17FY);
+z4=(334FX,28FY);
+z5=(312FX,53FY);
+z6=(307FX,127FY);
+z7=(307FX,637FY);
+z8=(292FX,637FY);
+z9=(62FX,532FY);
+z10=(70FX,516FY);
+z11=(128FX,531FY);
+z12=(153FX,523FY);
+z13=(172FX,490FY);
+z14=(173FX,450FY);
+z15=(173FX,127FY);
+z16=(167FX,52FY);
+z17=(87FX,17FY);
+z18=(70FX,17FY);
+z19=(70FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-22,0} .. {-12,7}z4
+{-12,7} .. {-3,10}z5
+{-3,9} .. {0,40}z6
+-- z7
+-- z8
+-- z9
+-- z10
+{23,10} .. {16,0}z11
+{9,-1} .. {7,-5}z12
+{11,-7} .. {2,-15}z13
+{1,-4} .. {0,-23}z14
+-- z15
+{0,-40} .. {-4,-10}z16
+{-8,-23} .. {-45,0}z17
+-- z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(50,471FX#,637FY#,0FY#);
+"two";
+z1=(426FX,181FY);
+z2=(409FX,181FY);
+z3=(384FX,139FY);
+z4=(294FX,121FY);
+z5=(159FX,121FY);
+z6=(362FX,358FY);
+z7=(397FX,483FY);
+z8=(374FX,554FY);
+z9=(227FX,637FY);
+z10=(34FX,464FY);
+z11=(51FX,458FY);
+z12=(161FX,529FY);
+z13=(236FX,496FY);
+z14=(264FX,417FY);
+z15=(175FX,197FY);
+z16=(23FX,10FY);
+z17=(23FX,0FY);
+z18=(391FX,0FY);
+FuF (z1
+-- z2
+{-10,-22} .. {-6,-6}z3
+{-12,-12} .. {-48,0}z4
+-- z5
+{105,102} .. {30,56}z6
+{23,43} .. {0,41}z7
+{-1,22} .. {-15,25}z8
+{-33,56} .. {-65,-1}z9
+{-97,0} .. {-32,-115}z10
+-- z11
+{27,48} .. {46,0}z12
+{31,0} .. {20,-22}z13
+{19,-22} .. {-1,-31}z14
+{0,-63} .. {-59,-84}z15
+{-14,-21} .. {-87,-104}z16
+-- z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(51,471FX#,637FY#,13FY#);
+"three";
+z1=(417FX,221FY);
+z2=(307FX,382FY);
+z3=(388FX,505FY);
+z4=(342FX,602FY);
+z5=(239FX,637FY);
+z6=(38FX,483FY);
+z7=(55FX,477FY);
+z8=(165FX,545FY);
+z9=(233FX,519FY);
+z10=(262FX,452FY);
+z11=(247FX,397FY);
+z12=(202FX,351FY);
+z13=(140FX,329FY);
+z14=(140FX,313FY);
+z15=(261FX,248FY);
+z16=(313FX,123FY);
+z17=(291FX,58FY);
+z18=(230FX,28FY);
+z19=(157FX,58FY);
+z20=(94FX,105FY);
+z21=(65FX,111FY);
+z22=(30FX,96FY);
+z23=(15FX,60FY);
+z24=(41FX,13FY);
+z25=(157FX,-13FY);
+z26=(339FX,49FY);
+z27=(417FX,221FY);
+FuF (z1
+{0,71} .. {-73,36}z2
+{54,32} .. {0,50}z3
+{0,39} .. {-30,25}z4
+{-29,24} .. {-39,-1}z5
+{-89,0} .. {-45,-102}z6
+-- z7
+{31,46} .. {42,0}z8
+{26,0} .. {19,-17}z9
+{19,-18} .. {0,-27}z10
+{0,-18} .. {-10,-19}z11
+{-12,-20} .. {-19,-11}z12
+{-11,-6} .. {-30,-9}z13
+-- z14
+{49,-12} .. {31,-31}z15
+{35,-35} .. {0,-49}z16
+{0,-25} .. {-15,-19}z17
+{-16,-20} .. {-25,0}z18
+{-24,0} .. {-25,20}z19
+{-35,28} .. {-7,3}z20
+{-9,4} .. {-11,0}z21
+{-13,0} .. {-10,-10}z22
+{-10,-10} .. {0,-14}z23
+{0,-19} .. {17,-12}z24
+{26,-18} .. {52,0}z25
+{72,0} .. {49,42}z26
+{53,43} .. {-1,71}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(52,471FX#,637FY#,0FY#);
+"four";
+z1=(433FX,140FY);
+z2=(433FX,235FY);
+z3=(376FX,235FY);
+z4=(376FX,637FY);
+z5=(320FX,637FY);
+z6=(23FX,235FY);
+z7=(23FX,140FY);
+z8=(250FX,140FY);
+z9=(250FX,0FY);
+z10=(376FX,0FY);
+z11=(376FX,140FY);
+z12=(250FX,235FY);
+z13=(68FX,235FY);
+z14=(250FX,482FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,471FX#,624FY#,12FY#);
+"five";
+z1=(436FX,624FY);
+z2=(144FX,624FY);
+z3=(32FX,309FY);
+z4=(69FX,310FY);
+z5=(274FX,259FY);
+z6=(355FX,128FY);
+z7=(328FX,61FY);
+z8=(264FX,34FY);
+z9=(232FX,39FY);
+z10=(183FX,66FY);
+z11=(84FX,112FY);
+z12=(49FX,97FY);
+z13=(34FX,62FY);
+z14=(63FX,16FY);
+z15=(180FX,-13FY);
+z16=(310FX,17FY);
+z17=(401FX,98FY);
+z18=(435FX,214FY);
+z19=(365FX,364FY);
+z20=(120FX,443FY);
+z21=(144FX,506FY);
+z22=(390FX,506FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{81,1} .. {56,-35}z5
+{54,-34} .. {0,-53}z6
+{0,-26} .. {-18,-19}z7
+{-18,-18} .. {-25,0}z8
+{-12,0} .. {-9,4}z9
+{-16,6} .. {-17,12}z10
+{-44,30} .. {-22,0}z11
+{-14,0} .. {-10,-10}z12
+{-10,-10} .. {0,-13}z13
+{0,-18} .. {19,-13}z14
+{27,-20} .. {51,0}z15
+{48,0} .. {39,20}z16
+{37,18} .. {23,35}z17
+{23,36} .. {0,41}z18
+{0,60} .. {-47,40}z19
+{-62,53} .. {-102,0}z20
+-- z21
+-- z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(54,471FX#,637FY#,12FY#);
+"six";
+z1=(443FX,624FY);
+z2=(443FX,637FY);
+z3=(229FX,583FY);
+z4=(86FX,440FY);
+z5=(35FX,243FY);
+z6=(63FX,111FY);
+z7=(245FX,-13FY);
+z8=(344FX,16FY);
+z9=(442FX,208FY);
+z10=(400FX,340FY);
+z11=(278FX,398FY);
+z12=(184FX,371FY);
+z13=(229FX,489FY);
+z14=(309FX,569FY);
+z15=(443FX,624FY);
+z16=(310FX,142FY);
+z17=(256FX,17FY);
+z18=(220FX,34FY);
+z19=(187FX,116FY);
+z20=(175FX,240FY);
+z21=(177FX,287FY);
+z22=(178FX,333FY);
+z23=(226FX,349FY);
+z24=(280FX,317FY);
+z25=(310FX,142FY);
+FuF (z1
+-- z2
+{-81,0} .. {-61,-36}z3
+{-62,-36} .. {-34,-60}z4
+{-34,-60} .. {0,-72}z5
+{0,-48} .. {19,-40}z6
+{38,-83} .. {83,1}z7
+{35,0} .. {31,19}z8
+{65,39} .. {0,89}z9
+{0,53} .. {-28,35}z10
+{-30,39} .. {-51,0}z11
+{-37,0} .. {-26,-18}z12
+{12,49} .. {18,30}z13
+{20,31} .. {34,22}z14
+{34,23} .. {55,13}z15
+);
+FuF (z16
+{0,-84} .. {-36,1}z17
+{-14,0} .. {-10,11}z18
+{-14,16} .. {-8,39}z19
+{-9,42} .. {1,41}z20
+{0,9} .. {1,22}z21
+{1,20} .. {0,11}z22
+{21,11} .. {11,0}z23
+{23,-1} .. {14,-21}z24
+{20,-32} .. {0,-84}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(55,471FX#,624FY#,12FY#);
+"seven";
+z1=(449FX,624FY);
+z2=(77FX,624FY);
+z3=(32FX,431FY);
+z4=(49FX,431FY);
+z5=(93FX,483FY);
+z6=(208FX,502FY);
+z7=(337FX,502FY);
+z8=(167FX,-13FY);
+z9=(239FX,-13FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{12,25} .. {17,10}z5
+{26,13} .. {51,0}z6
+-- z7
+-- z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(56,471FX#,635FY#,12FY#);
+"eight";
+z1=(438FX,167FY);
+z2=(405FX,274FY);
+z3=(321FX,353FY);
+z4=(428FX,492FY);
+z5=(380FX,593FY);
+z6=(243FX,635FY);
+z7=(108FX,596FY);
+z8=(44FX,477FY);
+z9=(78FX,375FY);
+z10=(160FX,301FY);
+z11=(101FX,268FY);
+z12=(33FX,144FY);
+z13=(94FX,25FY);
+z14=(227FX,-13FY);
+z15=(373FX,33FY);
+z16=(438FX,167FY);
+z17=(320FX,490FY);
+z18=(286FX,376FY);
+z19=(167FX,529FY);
+z20=(188FX,584FY);
+z21=(241FX,607FY);
+z22=(294FX,582FY);
+z23=(320FX,490FY);
+z24=(315FX,109FY);
+z25=(294FX,45FY);
+z26=(235FX,17FY);
+z27=(193FX,29FY);
+z28=(150FX,144FY);
+z29=(158FX,208FY);
+z30=(174FX,256FY);
+z31=(194FX,279FY);
+z32=(315FX,109FY);
+FuF (z1
+{0,40} .. {-22,31}z2
+{-17,25} .. {-39,28}z3
+{72,36} .. {0,56}z4
+{0,39} .. {-32,28}z5
+{-32,28} .. {-59,0}z6
+{-52,0} .. {-38,-26}z7
+{-43,-30} .. {1,-50}z8
+{0,-39} .. {23,-29}z9
+{14,-18} .. {40,-32}z10
+{-24,-11} .. {-16,-11}z11
+{-46,-32} .. {0,-51}z12
+{0,-51} .. {40,-28}z13
+{35,-25} .. {53,0}z14
+{58,0} .. {39,31}z15
+{44,33} .. {-1,56}z16
+);
+FuF (z17
+{0,-45} .. {-22,-31}z18
+{-80,52} .. {1,50}z19
+{0,21} .. {14,15}z20
+{14,15} .. {21,0}z21
+{22,-1} .. {13,-16}z22
+{18,-21} .. {-1,-40}z23
+);
+FuF (z24
+{-1,-26} .. {-14,-17}z25
+{-15,-19} .. {-25,1}z26
+{-15,0} .. {-13,8}z27
+{-29,19} .. {1,58}z28
+{0,23} .. {5,20}z29
+{4,20} .. {7,12}z30
+{6,9} .. {7,7}z31
+{81,-55} .. {0,-58}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(57,471FX#,637FY#,12FY#);
+"nine";
+z1=(438FX,380FY);
+z2=(413FX,507FY);
+z3=(331FX,606FY);
+z4=(228FX,637FY);
+z5=(129FX,609FY);
+z6=(30FX,416FY);
+z7=(72FX,283FY);
+z8=(196FX,225FY);
+z9=(286FX,251FY);
+z10=(242FX,135FY);
+z11=(29FX,0FY);
+z12=(29FX,-13FY);
+z13=(250FX,46FY);
+z14=(391FX,192FY);
+z15=(438FX,380FY);
+z16=(298FX,381FY);
+z17=(295FX,327FY);
+z18=(293FX,290FY);
+z19=(246FX,275FY);
+z20=(193FX,307FY);
+z21=(162FX,483FY);
+z22=(216FX,606FY);
+z23=(246FX,596FY);
+z24=(279FX,537FY);
+z25=(298FX,381FY);
+FuF (z1
+{0,46} .. {-16,39}z2
+{-19,43} .. {-35,23}z3
+{-33,21} .. {-36,-1}z4
+{-35,0} .. {-31,-19}z5
+{-66,-40} .. {0,-89}z6
+{1,-53} .. {27,-35}z7
+{30,-39} .. {52,0}z8
+{26,0} .. {34,17}z9
+{-9,-45} .. {-20,-33}z10
+{-42,-68} .. {-100,-22}z11
+-- z12
+{80,0} .. {67,39}z13
+{62,36} .. {32,61}z14
+{32,60} .. {0,65}z15
+);
+FuF (z16
+-- z17
+{-1,-16} .. {0,-9}z18
+{-19,-10} .. {-12,0}z19
+{-23,1} .. {-12,21}z20
+{-21,33} .. {0,85}z21
+{0,83} .. {36,-1}z22
+{13,0} .. {7,-6}z23
+{15,-13} .. {7,-26}z24
+{13,-48} .. {-3,-56}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(58,314FX#,443FY#,11FY#);
+"colon";
+z1=(234FX,367FY);
+z2=(211FX,421FY);
+z3=(158FX,443FY);
+z4=(103FX,420FY);
+z5=(81FX,367FY);
+z6=(103FX,312FY);
+z7=(158FX,290FY);
+z8=(212FX,312FY);
+z9=(234FX,367FY);
+z10=(234FX,65FY);
+z11=(211FX,120FY);
+z12=(157FX,142FY);
+z13=(103FX,119FY);
+z14=(81FX,65FY);
+z15=(103FX,11FY);
+z16=(157FX,-12FY);
+z17=(212FX,11FY);
+z18=(234FX,65FY);
+FuF (z1
+{0,21} .. {-15,15}z2
+{-15,15} .. {-20,0}z3
+{-22,0} .. {-15,-15}z4
+{-15,-14} .. {0,-21}z5
+{0,-22} .. {14,-15}z6
+{15,-14} .. {22,0}z7
+{21,0} .. {15,14}z8
+{15,15} .. {0,22}z9
+);
+FuF (z10
+{0,21} .. {-15,15}z11
+{-15,15} .. {-21,0}z12
+{-21,0} .. {-15,-15}z13
+{-15,-15} .. {1,-21}z14
+{0,-22} .. {15,-14}z15
+{15,-15} .. {21,0}z16
+{22,0} .. {15,15}z17
+{15,14} .. {0,22}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(59,314FX#,443FY#,165FY#);
+"semicolon";
+z1=(233FX,367FY);
+z2=(211FX,421FY);
+z3=(157FX,443FY);
+z4=(102FX,421FY);
+z5=(81FX,367FY);
+z6=(103FX,313FY);
+z7=(157FX,291FY);
+z8=(211FX,313FY);
+z9=(233FX,367FY);
+z10=(245FX,27FY);
+z11=(216FX,111FY);
+z12=(149FX,141FY);
+z13=(93FX,119FY);
+z14=(70FX,65FY);
+z15=(90FX,15FY);
+z16=(137FX,-6FY);
+z17=(170FX,2FY);
+z18=(179FX,5FY);
+z19=(188FX,-11FY);
+z20=(87FX,-145FY);
+z21=(87FX,-165FY);
+z22=(200FX,-96FY);
+z23=(245FX,27FY);
+FuF (z1
+{0,21} .. {-15,15}z2
+{-15,15} .. {-21,0}z3
+{-21,0} .. {-15,-15}z4
+{-14,-15} .. {1,-21}z5
+{0,-21} .. {15,-14}z6
+{15,-15} .. {21,0}z7
+{21,0} .. {15,15}z8
+{15,15} .. {0,21}z9
+);
+FuF (z10
+{-1,35} .. {-19,21}z11
+{-19,21} .. {-26,-1}z12
+{-21,0} .. {-16,-15}z13
+{-16,-15} .. {0,-21}z14
+{0,-19} .. {13,-15}z15
+{13,-14} .. {18,0}z16
+{14,0} .. {8,5}z17
+{4,2} .. {2,0}z18
+{6,0} .. {-1,-11}z19
+{-1,-61} .. {-67,-28}z20
+-- z21
+{47,15} .. {28,31}z22
+{30,34} .. {0,48}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(60,471FX#,392FY#,0FY#);
+"guillemotleft";
+z1=(432FX,58FY);
+z2=(388FX,126FY);
+z3=(331FX,214FY);
+z4=(378FX,290FY);
+z5=(431FX,365FY);
+z6=(421FX,373FY);
+z7=(221FX,214FY);
+z8=(418FX,49FY);
+z9=(423FX,48FY);
+z10=(428FX,50FY);
+z11=(432FX,58FY);
+z12=(249FX,41FY);
+z13=(186FX,138FY);
+z14=(144FX,216FY);
+z15=(161FX,255FY);
+z16=(188FX,297FY);
+z17=(249FX,384FY);
+z18=(239FX,392FY);
+z19=(163FX,334FY);
+z20=(24FX,214FY);
+z21=(235FX,32FY);
+z22=(240FX,32FY);
+z23=(245FX,33FY);
+z24=(249FX,41FY);
+FuF (z1
+{-17,28} .. {-12,17}z2
+{-33,48} .. {-5,10}z3
+{16,29} .. {15,22}z4
+-- z5
+{-1,5} .. {-6,1}z6
+-- z7
+-- z8
+{1,0} .. {2,0}z9
+{3,1} .. {1,1}z10
+{3,3} .. {0,3}z11
+);
+FuF (z12
+-- z13
+{-20,29} .. {-8,23}z14
+{5,14} .. {6,12}z15
+{7,11} .. {11,17}z16
+{26,38} .. {15,20}z17
+{-1,4} .. {-5,1}z18
+{-6,0} .. {-45,-38}z19
+-- z20
+-- z21
+{1,0} .. {2,0}z22
+{3,0} .. {1,1}z23
+{3,3} .. {0,2}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(61,537FX#,421FY#,0FY#);
+"equal";
+z1=(14FX,352FY);
+z2=(527FX,352FY);
+z3=(527FX,421FY);
+z4=(14FX,421FY);
+z5=(14FX,201FY);
+z6=(527FX,201FY);
+z7=(527FX,270FY);
+z8=(14FX,270FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,471FX#,392FY#,0FY#);
+"guillemotright";
+z1=(445FX,214FY);
+z2=(391FX,260FY);
+z3=(343FX,303FY);
+z4=(300FX,338FY);
+z5=(231FX,392FY);
+z6=(223FX,391FY);
+z7=(221FX,384FY);
+z8=(282FX,300FY);
+z9=(326FX,216FY);
+z10=(314FX,191FY);
+z11=(259FX,100FY);
+z12=(221FX,41FY);
+z13=(228FX,30FY);
+z14=(235FX,32FY);
+z15=(249FX,214FY);
+z16=(48FX,373FY);
+z17=(39FX,365FY);
+z18=(92FX,290FY);
+z19=(139FX,214FY);
+z20=(82FX,128FY);
+z21=(38FX,58FY);
+z22=(45FX,47FY);
+z23=(52FX,49FY);
+FuF (z1
+-- z2
+{-20,17} .. {-13,11}z3
+{-19,16} .. {-9,7}z4
+{-44,37} .. {-2,0}z5
+{-2,-1} .. {-3,0}z6
+{-1,-2} .. {0,-3}z7
+-- z8
+{19,-27} .. {11,-29}z9
+{-3,-8} .. {-5,-9}z10
+{-12,-25} .. {-24,-36}z11
+-- z12
+{0,-7} .. {5,0}z13
+{3,1} .. {2,1}z14
+);
+FuF (z15
+-- z16
+{-6,-1} .. {0,-4}z17
+-- z18
+{19,-27} .. {13,-23}z19
+{-25,-38} .. {-13,-19}z20
+{-30,-44} .. {0,-3}z21
+{0,-7} .. {5,0}z22
+{3,0} .. {2,1}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(63,217FX#,697FY#,0FY#);
+"paruyg";
+z1=(195FX,560FY);
+z2=(211FX,621FY);
+z3=(201FX,659FY);
+z4=(177FX,687FY);
+z5=(-22FX,579FY);
+z6=(-40FX,546FY);
+z7=(-65FX,448FY);
+z8=(-28FX,445FY);
+z9=(19FX,556FY);
+z10=(96FX,605FY);
+z11=(126FX,572FY);
+z12=(93FX,523FY);
+z13=(88FX,522FY);
+z14=(71FX,523FY);
+z15=(65FX,490FY);
+z16=(86FX,488FY);
+z17=(153FX,513FY);
+z18=(195FX,560FY);
+FuF (z1
+{10,20} .. {0,21}z2
+{0,14} .. {-6,11}z3
+{-6,11} .. {-10,7}z4
+{-67,42} .. {-27,-56}z5
+{-11,-21} .. {-1,-1}z6
+{-13,-31} .. {-2,-34}z7
+-- z8
+{7,37} .. {23,30}z9
+{14,19} .. {23,1}z10
+{21,-4} .. {0,-18}z11
+{0,-19} .. {-16,-8}z12
+{-2,-1} .. {-2,0}z13
+{-3,1} .. {-10,0}z14
+-- z15
+-- z16
+{20,1} .. {25,15}z17
+{17,10} .. {11,21}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(64,877FX#,638FY#,203FY#);
+"at";
+z1=(857FX,76FY);
+z2=(829FX,76FY);
+z3=(680FX,-111FY);
+z4=(451FX,-178FY);
+z5=(192FX,-76FY);
+z6=(91FX,185FY);
+z7=(142FX,398FY);
+z8=(292FX,556FY);
+z9=(498FX,610FY);
+z10=(710FX,529FY);
+z11=(793FX,319FY);
+z12=(759FX,174FY);
+z13=(692FX,83FY);
+z14=(594FX,33FY);
+z15=(567FX,44FY);
+z16=(557FX,70FY);
+z17=(571FX,141FY);
+z18=(655FX,431FY);
+z19=(543FX,426FY);
+z20=(527FX,371FY);
+z21=(462FX,443FY);
+z22=(415FX,432FY);
+z23=(339FX,374FY);
+z24=(224FX,102FY);
+z25=(241FX,33FY);
+z26=(301FX,0FY);
+z27=(343FX,10FY);
+z28=(401FX,58FY);
+z29=(460FX,146FY);
+z30=(449FX,81FY);
+z31=(543FX,0FY);
+z32=(777FX,154FY);
+z33=(819FX,328FY);
+z34=(780FX,485FY);
+z35=(666FX,598FY);
+z36=(488FX,639FY);
+z37=(260FX,583FY);
+z38=(99FX,422FY);
+z39=(42FX,201FY);
+z40=(158FX,-90FY);
+z41=(450FX,-204FY);
+z42=(695FX,-131FY);
+z43=(857FX,76FY);
+z44=(506FX,350FY);
+z45=(445FX,158FY);
+z46=(370FX,84FY);
+z47=(343FX,127FY);
+z48=(390FX,303FY);
+z49=(473FX,410FY);
+z50=(494FX,398FY);
+z51=(506FX,350FY);
+FuF (z1
+-- z2
+{-30,-78} .. {-70,-46}z3
+{-68,-44} .. {-85,0}z4
+{-106,0} .. {-67,68}z5
+{-68,67} .. {0,107}z6
+{0,76} .. {34,66}z7
+{36,69} .. {64,36}z8
+{62,36} .. {75,0}z9
+{86,0} .. {55,-54}z10
+{55,-54} .. {0,-86}z11
+{0,-51} .. {-23,-45}z12
+{-15,-32} .. {-29,-28}z13
+{-35,-34} .. {-30,0}z14
+{-10,0} .. {-8,7}z15
+{-7,6} .. {0,11}z16
+{0,16} .. {9,31}z17
+-- z18
+-- z19
+-- z20
+{-8,49} .. {-35,-1}z21
+{-17,0} .. {-15,-7}z22
+{-29,-16} .. {-22,-23}z23
+{-77,-79} .. {0,-102}z24
+{0,-28} .. {12,-18}z25
+{14,-22} .. {26,0}z26
+{16,0} .. {12,7}z27
+{20,10} .. {19,22}z28
+{14,16} .. {25,43}z29
+{-8,-28} .. {0,-16}z30
+{1,-54} .. {62,0}z31
+{103,0} .. {53,103}z32
+{28,53} .. {0,63}z33
+{0,57} .. {-26,47}z34
+{-27,49} .. {-49,27}z35
+{-51,27} .. {-67,0}z36
+{-83,0} .. {-69,-37}z37
+{-69,-37} .. {-38,-70}z38
+{-38,-67} .. {0,-80}z39
+{0,-118} .. {77,-76}z40
+{76,-76} .. {119,0}z41
+{93,0} .. {70,49}z42
+{71,48} .. {37,90}z43
+);
+FuF (z44
+{-1,-64} .. {-40,-64}z45
+{-30,-49} .. {-20,0}z46
+{-18,0} .. {0,29}z47
+{0,45} .. {32,72}z48
+{30,72} .. {25,0}z49
+{8,0} .. {6,-8}z50
+{8,-12} .. {0,-20}z51
+);
+lbl (range 1 thru 51);
+endchar;
+
+beginchar(65,699FX#,624FY#,13FY#);
+"A";
+z1=(685FX,6FY);
+z2=(677FX,34FY);
+z3=(653FX,29FY);
+z4=(560FX,117FY);
+z5=(583FX,176FY);
+z6=(589FX,258FY);
+z7=(589FX,523FY);
+z8=(605FX,584FY);
+z9=(677FX,607FY);
+z10=(677FX,624FY);
+z11=(369FX,624FY);
+z12=(369FX,607FY);
+z13=(432FX,588FY);
+z14=(446FX,523FY);
+z15=(446FX,337FY);
+z16=(537FX,211FY);
+z17=(530FX,152FY);
+z18=(447FX,198FY);
+z19=(334FX,131FY);
+z20=(353FX,112FY);
+z21=(387FX,123FY);
+z22=(426FX,104FY);
+z23=(458FX,58FY);
+z24=(349FX,19FY);
+z25=(250FX,197FY);
+z26=(250FX,523FY);
+z27=(264FX,587FY);
+z28=(326FX,607FY);
+z29=(326FX,624FY);
+z30=(22FX,624FY);
+z31=(22FX,607FY);
+z32=(89FX,589FY);
+z33=(106FX,523FY);
+z34=(106FX,258FY);
+z35=(348FX,-13FY);
+z36=(483FX,34FY);
+z37=(594FX,-13FY);
+z38=(685FX,6FY);
+FuF (z1
+-- z2
+{-8,-3} .. {-8,0}z3
+{-29,0} .. {-33,58}z4
+{11,17} .. {4,22}z5
+{4,22} .. {0,32}z6
+-- z7
+{0,29} .. {10,12}z8
+{13,15} .. {35,0}z9
+-- z10
+-- z11
+-- z12
+{31,-1} .. {10,-12}z13
+{10,-11} .. {0,-32}z14
+-- z15
+{62,-13} .. {-1,-71}z16
+{0,-20} .. {-4,-20}z17
+{-24,31} .. {-31,0}z18
+{-44,-1} .. {-32,-44}z19
+-- z20
+{12,7} .. {10,0}z21
+{14,0} .. {12,-13}z22
+{9,-10} .. {13,-21}z23
+{-30,-26} .. {-43,0}z24
+{-66,0} .. {0,119}z25
+-- z26
+{0,32} .. {9,11}z27
+{10,13} .. {31,0}z28
+-- z29
+-- z30
+-- z31
+{33,-1} .. {11,-12}z32
+{12,-11} .. {0,-33}z33
+-- z34
+{0,-181} .. {161,1}z35
+{64,0} .. {26,31}z36
+{20,-32} .. {54,1}z37
+{45,1} .. {16,12}z38
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(66,641FX#,637FY#,0FY#);
+"B";
+z1=(607FX,136FY);
+z2=(607FX,168FY);
+z3=(420FX,241FY);
+z4=(241FX,241FY);
+z5=(241FX,411FY);
+z6=(339FX,606FY);
+z7=(432FX,506FY);
+z8=(438FX,409FY);
+z9=(438FX,315FY);
+z10=(581FX,315FY);
+z11=(581FX,373FY);
+z12=(523FX,564FY);
+z13=(339FX,637FY);
+z14=(151FX,555FY);
+z15=(98FX,373FY);
+z16=(98FX,104FY);
+z17=(80FX,36FY);
+z18=(13FX,18FY);
+z19=(13FX,0FY);
+z20=(325FX,0FY);
+z21=(325FX,18FY);
+z22=(256FX,37FY);
+z23=(241FX,105FY);
+z24=(241FX,200FY);
+z25=(395FX,200FY);
+z26=(444FX,158FY);
+z27=(444FX,136FY);
+FuF (z1
+-- z2
+{0,49} .. {-124,0}z3
+-- z4
+-- z5
+{0,130} .. {65,0}z6
+{52,0} .. {10,-66}z7
+{4,-22} .. {0,-43}z8
+-- z9
+-- z10
+-- z11
+{0,81} .. {-39,46}z12
+{-42,49} .. {-81,-1}z13
+{-84,0} .. {-41,-55}z14
+{-35,-46} .. {0,-75}z15
+-- z16
+{0,-33} .. {-12,-12}z17
+{-11,-12} .. {-33,0}z18
+-- z19
+-- z20
+-- z21
+{-35,0} .. {-11,13}z22
+{-10,12} .. {0,34}z23
+-- z24
+-- z25
+{33,0} .. {0,-28}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(67,666FX#,640FY#,10FY#);
+"C";
+z1=(605FX,210FY);
+z2=(553FX,356FY);
+z3=(408FX,420FY);
+z4=(491FX,441FY);
+z5=(535FX,510FY);
+z6=(474FX,611FY);
+z7=(338FX,641FY);
+z8=(206FX,612FY);
+z9=(134FX,508FY);
+z10=(179FX,443FY);
+z11=(259FX,418FY);
+z12=(140FX,381FY);
+z13=(61FX,289FY);
+z14=(225FX,289FY);
+z15=(251FX,363FY);
+z16=(333FX,396FY);
+z17=(452FX,212FY);
+z18=(335FX,22FY);
+z19=(214FX,203FY);
+z20=(56FX,204FY);
+z21=(130FX,57FY);
+z22=(337FX,-11FY);
+z23=(534FX,58FY);
+z24=(605FX,210FY);
+z25=(391FX,510FY);
+z26=(378FX,457FY);
+z27=(333FX,431FY);
+z28=(294FX,452FY);
+z29=(275FX,508FY);
+z30=(336FX,608FY);
+z31=(391FX,510FY);
+FuF (z1
+{0,63} .. {-35,34}z2
+{-30,30} .. {-66,13}z3
+{32,0} .. {24,14}z4
+{30,17} .. {0,29}z5
+{-1,44} .. {-40,23}z6
+{-35,20} .. {-56,0}z7
+{-50,-1} .. {-38,-19}z8
+{-48,-24} .. {0,-45}z9
+{0,-26} .. {30,-18}z10
+{24,-14} .. {29,-2}z11
+{-45,-5} .. {-35,-20}z12
+{-40,-23} .. {-13,-38}z13
+-- z14
+{1,31} .. {17,18}z15
+{19,22} .. {35,0}z16
+{79,0} .. {0,-123}z17
+{0,-127} .. {-77,1}z18
+{-81,0} .. {0,121}z19
+-- z20
+{0,-58} .. {49,-40}z21
+{54,-45} .. {84,0}z22
+{80,0} .. {51,46}z23
+{47,42} .. {0,60}z24
+);
+FuF (z25
+{0,-20} .. {-8,-15}z26
+{-11,-17} .. {-19,0}z27
+{-14,0} .. {-12,14}z28
+{-13,15} .. {0,22}z29
+{1,68} .. {40,-1}z30
+{37,0} .. {-1,-65}z31
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(68,725FX#,637FY#,0FY#);
+"D";
+z1=(742FX,136FY);
+z2=(742FX,168FY);
+z3=(555FX,241FY);
+z4=(513FX,241FY);
+z5=(513FX,373FY);
+z6=(272FX,637FY);
+z7=(30FX,373FY);
+z8=(30FX,315FY);
+z9=(174FX,315FY);
+z10=(174FX,404FY);
+z11=(193FX,547FY);
+z12=(272FX,606FY);
+z13=(370FX,406FY);
+z14=(370FX,102FY);
+z15=(350FX,31FY);
+z16=(277FX,16FY);
+z17=(277FX,0FY);
+z18=(598FX,0FY);
+z19=(598FX,18FY);
+z20=(528FX,33FY);
+z21=(513FX,104FY);
+z22=(513FX,200FY);
+z23=(531FX,200FY);
+z24=(567FX,193FY);
+z25=(580FX,158FY);
+z26=(580FX,136FY);
+FuF (z1
+-- z2
+{0,49} .. {-125,0}z3
+-- z4
+-- z5
+{0,176} .. {-161,-1}z6
+{-161,0} .. {0,-176}z7
+-- z8
+-- z9
+-- z10
+{0,63} .. {13,33}z11
+{16,39} .. {37,0}z12
+{65,-1} .. {0,-133}z13
+-- z14
+{0,-36} .. {-13,-11}z15
+{-12,-10} .. {-37,0}z16
+-- z17
+-- z18
+-- z19
+{-37,0} .. {-10,10}z20
+{-10,10} .. {0,37}z21
+-- z22
+-- z23
+{17,0} .. {6,-4}z24
+{9,-6} .. {0,-17}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(69,630FX#,624FY#,13FY#);
+"E";
+z1=(607FX,315FY);
+z2=(607FX,349FY);
+z3=(540FX,418FY);
+z4=(435FX,431FY);
+z5=(241FX,431FY);
+z6=(241FX,523FY);
+z7=(258FX,591FY);
+z8=(327FX,607FY);
+z9=(327FX,624FY);
+z10=(13FX,624FY);
+z11=(13FX,607FY);
+z12=(83FX,591FY);
+z13=(98FX,523FY);
+z14=(98FX,258FY);
+z15=(340FX,-13FY);
+z16=(519FX,46FY);
+z17=(581FX,222FY);
+z18=(581FX,234FY);
+z19=(438FX,234FY);
+z20=(438FX,181FY);
+z21=(341FX,19FY);
+z22=(255FX,82FY);
+z23=(241FX,199FY);
+z24=(241FX,390FY);
+z25=(394FX,390FY);
+z26=(447FX,339FY);
+z27=(447FX,315FY);
+FuF (z1
+-- z2
+{0,32} .. {-45,14}z3
+{-30,9} .. {-40,0}z4
+-- z5
+-- z6
+{0,35} .. {11,11}z7
+{11,10} .. {35,0}z8
+-- z9
+-- z10
+-- z11
+{36,0} .. {11,-10}z12
+{10,-10} .. {0,-35}z13
+-- z14
+
+{0,-181} .. {161,0}z15
+{78,0} .. {41,39}z16
+{42,40} .. {0,78}z17
+-- z18
+-- z19
+-- z20
+{0,-108} .. {-64,0}z21
+{-42,0} .. {-15,42}z22
+{-9,25} .. {0,53}z23
+-- z24
+-- z25
+{36,0} .. {0,-34}z26
+-- z27
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(70,792FX#,624FY#,10FY#);
+"F";
+z1=(761FX,210FY);
+z2=(468FX,436FY);
+z3=(468FX,523FY);
+z4=(487FX,589FY);
+z5=(554FX,607FY);
+z6=(554FX,624FY);
+z7=(325FX,624FY);
+z8=(163FX,602FY);
+z9=(102FX,512FY);
+z10=(185FX,419FY);
+z11=(325FX,407FY);
+z12=(325FX,26FY);
+z13=(177FX,210FY);
+z14=(177FX,315FY);
+z15=(34FX,315FY);
+z16=(34FX,208FY);
+z17=(162FX,30FY);
+z18=(393FX,-11FY);
+z19=(630FX,31FY);
+z20=(761FX,210FY);
+z21=(325FX,439FY);
+z22=(242FX,519FY);
+z23=(263FX,577FY);
+z24=(325FX,592FY);
+z25=(607FX,210FY);
+z26=(581FX,88FY);
+z27=(468FX,26FY);
+z28=(468FX,403FY);
+z29=(582FX,344FY);
+z30=(607FX,210FY);
+FuF (z1
+{0,151} .. {-195,0}z2
+-- z3
+{0,32} .. {13,12}z4
+{12,12} .. {32,0}z5
+-- z6
+-- z7
+{-73,0} .. {-35,-15}z8
+{-41,-17} .. {1,-42}z9
+{0,-47} .. {55,-15}z10
+{30,-8} .. {64,0}z11
+-- z12
+{-99,15} .. {0,107}z13
+-- z14
+-- z15
+-- z16
+{0,-81} .. {85,-38}z17
+{62,-27} .. {92,0}z18
+{94,0} .. {64,28}z19
+{87,38} .. {0,81}z20
+);
+FuF (z21
+{-56,1} .. {0,52}z22
+{0,27} .. {13,12}z23
+{13,10} .. {29,0}z24
+);
+FuF (z25
+{-1,-53} .. {-17,-28}z26
+{-23,-36} .. {-53,-5}z27
+-- z28
+{54,0} .. {22,-39}z29
+{17,-29} .. {0,-60}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(71,758FX#,637FY#,0FY#);
+"G";
+z1=(772FX,136FY);
+z2=(772FX,168FY);
+z3=(591FX,241FY);
+z4=(543FX,241FY);
+z5=(543FX,380FY);
+z6=(478FX,566FY);
+z7=(297FX,637FY);
+z8=(123FX,580FY);
+z9=(50FX,416FY);
+z10=(113FX,266FY);
+z11=(308FX,200FY);
+z12=(399FX,200FY);
+z13=(399FX,93FY);
+z14=(376FX,29FY);
+z15=(307FX,18FY);
+z16=(307FX,0FY);
+z17=(625FX,0FY);
+z18=(625FX,18FY);
+z19=(560FX,29FY);
+z20=(543FX,90FY);
+z21=(543FX,200FY);
+z22=(566FX,200FY);
+z23=(610FX,158FY);
+z24=(610FX,136FY);
+z25=(399FX,241FY);
+z26=(308FX,241FY);
+z27=(197FX,415FY);
+z28=(297FX,606FY);
+z29=(380FX,540FY);
+z30=(399FX,426FY);
+FuF (z1
+-- z2
+{0,49} .. {-121,0}z3
+-- z4
+-- z5
+{0,77} .. {-43,47}z6
+{-44,47} .. {-77,0}z7
+{-70,0} .. {-46,-38}z8
+{-48,-41} .. {0,-68}z9
+{0,-61} .. {42,-40}z10
+{47,-44} .. {84,0}z11
+-- z12
+-- z13
+{0,-32} .. {-15,-11}z14
+{-11,-7} .. {-34,0}z15
+-- z16
+-- z17
+-- z18
+{-33,0} .. {-10,7}z19
+{-12,9} .. {0,32}z20
+-- z21
+-- z22
+{29,0} .. {0,-28}z23
+-- z24
+);
+FuF (z25
+-- z26
+{-74,0} .. {0,116}z27
+{0,127} .. {66,0}z28
+{38,-1} .. {17,-43}z29
+{13,-30} .. {0,-46}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(72,594FX#,692FY#,18FY#);
+"H";
+z1=(556FX,656FY);
+z2=(556FX,692FY);
+z3=(392FX,692FY);
+z4=(392FX,666FY);
+z5=(343FX,624FY);
+z6=(54FX,624FY);
+z7=(-3FX,586FY);
+z8=(31FX,525FY);
+z9=(433FX,136FY);
+z10=(483FX,71FY);
+z11=(504FX,15FY);
+z12=(504FX,-19FY);
+z13=(532FX,-19FY);
+z14=(532FX,67FY);
+z15=(460FX,302FY);
+z16=(193FX,558FY);
+z17=(184FX,572FY);
+z18=(206FX,583FY);
+z19=(411FX,583FY);
+z20=(527FX,604FY);
+z21=(556FX,656FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-28} .. {-33,0}z5
+-- z6
+{-38,0} .. {0,-26}z7
+{0,-19} .. {23,-22}z8
+-- z9
+{19,-18} .. {15,-26}z10
+{14,-24} .. {0,-13}z11
+-- z12
+-- z13
+-- z14
+{0,98} .. {-48,59}z15
+-- z16
+{-6,6} .. {0,4}z17
+{0,8} .. {14,0}z18
+-- z19
+{54,0} .. {23,14}z20
+{19,12} .. {0,23}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(73,612FX#,624FY#,0FY#);
+"I";
+z1=(581FX,158FY);
+z2=(581FX,210FY);
+z3=(524FX,403FY);
+z4=(340FX,481FY);
+z5=(300FX,475FY);
+z6=(241FX,454FY);
+z7=(241FX,523FY);
+z8=(258FX,590FY);
+z9=(327FX,606FY);
+z10=(327FX,624FY);
+z11=(13FX,624FY);
+z12=(13FX,607FY);
+z13=(82FX,590FY);
+z14=(98FX,523FY);
+z15=(98FX,93FY);
+z16=(79FX,31FY);
+z17=(13FX,18FY);
+z18=(13FX,0FY);
+z19=(327FX,0FY);
+z20=(327FX,19FY);
+z21=(261FX,30FY);
+z22=(241FX,93FY);
+z23=(241FX,278FY);
+z24=(256FX,390FY);
+z25=(339FX,449FY);
+z26=(438FX,287FY);
+z27=(438FX,158FY);
+FuF (z1
+-- z2
+{0,81} .. {-38,47}z3
+{-42,52} .. {-80,0}z4
+{-11,0} .. {-16,-4}z5
+{-20,-5} .. {-19,-9}z6
+-- z7
+{0,34} .. {11,10}z8
+{11,10} .. {35,0}z9
+-- z10
+-- z11
+-- z12
+{35,-1} .. {11,-11}z13
+{11,-10} .. {0,-34}z14
+-- z15
+{0,-31} .. {-13,-10}z16
+{-12,-9} .. {-33,0}z17
+-- z18
+-- z19
+-- z20
+{-33,0} .. {-10,7}z21
+{-13,10} .. {0,32}z22
+-- z23
+{0,50} .. {10,25}z24
+{15,40} .. {40,0}z25
+{66,0} .. {0,-108}z26
+-- z27
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(74,680FX#,636FY#,95FY#);
+"J";
+z1=(621FX,387FY);
+z2=(546FX,566FY);
+z3=(353FX,636FY);
+z4=(167FX,585FY);
+z5=(75FX,425FY);
+z6=(144FX,280FY);
+z7=(206FX,238FY);
+z8=(308FX,129FY);
+z9=(223FX,42FY);
+z10=(223FX,122FY);
+z11=(80FX,122FY);
+z12=(80FX,-95FY);
+z13=(223FX,-95FY);
+z14=(223FX,0FY);
+z15=(395FX,0FY);
+z16=(444FX,-12FY);
+z17=(458FX,-58FY);
+z18=(458FX,-95FY);
+z19=(619FX,-95FY);
+z20=(619FX,-47FY);
+z21=(461FX,41FY);
+z22=(324FX,41FY);
+z23=(524FX,173FY);
+z24=(621FX,387FY);
+z25=(484FX,357FY);
+z26=(375FX,128FY);
+z27=(378FX,131FY);
+z28=(390FX,174FY);
+z29=(363FX,265FY);
+z30=(288FX,349FY);
+z31=(197FX,490FY);
+z32=(231FX,568FY);
+z33=(292FX,591FY);
+z34=(428FX,511FY);
+z35=(484FX,357FY);
+FuF (z1
+{0,73} .. {-50,47}z2
+{-49,47} .. {-79,0}z3
+{-71,0} .. {-53,-34}z4
+{-62,-39} .. {0,-67}z5
+{0,-58} .. {46,-39}z6
+{14,-11} .. {27,-17}z7
+{68,-42} .. {0,-31}z8
+{0,-58} .. {-57,0}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+{23,0} .. {10,-8}z16
+{9,-9} .. {0,-22}z17
+-- z18
+-- z19
+-- z20
+{0,59} .. {-106,0}z21
+-- z22
+{74,23} .. {59,65}z23
+{65,70} .. {0,73}z24
+);
+FuF (z25
+{-1,-97} .. {-72,-55}z26
+-- z27
+{8,11} .. {0,18}z28
+{0,29} .. {-18,32}z29
+{-19,34} .. {-31,22}z30
+{-61,43} .. {0,50}z31
+{0,33} .. {22,19}z32
+{18,16} .. {22,0}z33
+{51,0} .. {40,-53}z34
+{37,-50} .. {0,-53}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(75,676FX#,624FY#,0FY#);
+"K";
+z1=(666FX,0FY);
+z2=(666FX,18FY);
+z3=(594FX,35FY);
+z4=(581FX,102FY);
+z5=(581FX,322FY);
+z6=(596FX,395FY);
+z7=(666FX,413FY);
+z8=(666FX,431FY);
+z9=(352FX,431FY);
+z10=(352FX,412FY);
+z11=(424FX,394FY);
+z12=(438FX,321FY);
+z13=(438FX,293FY);
+z14=(414FX,215FY);
+z15=(339FX,175FY);
+z16=(257FX,225FY);
+z17=(241FX,356FY);
+z18=(241FX,523FY);
+z19=(259FX,594FY);
+z20=(327FX,607FY);
+z21=(327FX,624FY);
+z22=(13FX,624FY);
+z23=(13FX,606FY);
+z24=(82FX,589FY);
+z25=(98FX,523FY);
+z26=(98FX,409FY);
+z27=(156FX,217FY);
+z28=(338FX,143FY);
+z29=(397FX,146FY);
+z30=(438FX,158FY);
+z31=(438FX,102FY);
+z32=(420FX,35FY);
+z33=(352FX,19FY);
+z34=(352FX,0FY);
+FuF (z1
+-- z2
+{-38,1} .. {-10,11}z3
+{-9,9} .. {0,35}z4
+-- z5
+{0,38} .. {10,11}z6
+{11,12} .. {36,0}z7
+-- z8
+-- z9
+-- z10
+{38,0} .. {10,-12}z11
+{9,-10} .. {0,-38}z12
+-- z13
+{0,-30} .. {-16,-22}z14
+{-19,-27} .. {-31,0}z15
+{-40,1} .. {-14,33}z16
+{-10,25} .. {0,62}z17
+-- z18
+{0,37} .. {12,11}z19
+{10,8} .. {36,0}z20
+-- z21
+-- z22
+-- z23
+{36,-1} .. {10,-11}z24
+{11,-10} .. {0,-33}z25
+-- z26
+{0,-82} .. {39,-46}z27
+{41,-49} .. {80,0}z28
+{30,0} .. {9,2}z29
+-- z30
+-- z31
+{0,-33} .. {-12,-12}z32
+{-12,-11} .. {-33,0}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(76,501FX#,624FY#,65FY#);
+"L";
+z1=(483FX,-66FY);
+z2=(483FX,-34FY);
+z3=(348FX,41FY);
+z4=(241FX,41FY);
+z5=(241FX,523FY);
+z6=(257FX,591FY);
+z7=(327FX,607FY);
+z8=(327FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,607FY);
+z11=(83FX,590FY);
+z12=(98FX,523FY);
+z13=(98FX,104FY);
+z14=(82FX,34FY);
+z15=(13FX,18FY);
+z16=(13FX,0FY);
+z17=(270FX,0FY);
+z18=(322FX,-43FY);
+z19=(322FX,-66FY);
+FuF (z1
+-- z2
+{0,50} .. {-90,0}z3
+-- z4
+-- z5
+{0,35} .. {10,10}z6
+{11,10} .. {35,0}z7
+-- z8
+-- z9
+-- z10
+{37,-1} .. {9,-10}z11
+{10,-10} .. {0,-34}z12
+-- z13
+{0,-36} .. {-11,-11}z14
+{-10,-11} .. {-36,0}z15
+-- z16
+-- z17
+{35,0} .. {0,-29}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(77,833FX#,624FY#,13FY#);
+"M";
+z1=(833FX,517FY);
+z2=(833FX,549FY);
+z3=(797FX,604FY);
+z4=(698FX,624FY);
+z5=(359FX,624FY);
+z6=(359FX,607FY);
+z7=(421FX,588FY);
+z8=(438FX,523FY);
+z9=(438FX,184FY);
+z10=(420FX,77FY);
+z11=(339FX,19FY);
+z12=(241FX,184FY);
+z13=(241FX,523FY);
+z14=(255FX,588FY);
+z15=(318FX,607FY);
+z16=(318FX,624FY);
+z17=(13FX,624FY);
+z18=(13FX,607FY);
+z19=(82FX,590FY);
+z20=(98FX,523FY);
+z21=(98FX,258FY);
+z22=(156FX,64FY);
+z23=(338FX,-13FY);
+z24=(524FX,63FY);
+z25=(581FX,258FY);
+z26=(581FX,583FY);
+z27=(618FX,583FY);
+z28=(671FX,539FY);
+z29=(671FX,517FY);
+FuF (z1
+-- z2
+{0,23} .. {-24,14}z3
+{-24,14} .. {-42,0}z4
+-- z5
+-- z6
+{31,0} .. {10,-12}z7
+{11,-12} .. {0,-31}z8
+-- z9
+{0,-43} .. {-11,-29}z10
+{-17,-39} .. {-37,0}z11
+{-65,0} .. {0,110}z12
+-- z13
+{0,32} .. {9,11}z14
+{11,12} .. {31,0}z15
+-- z16
+-- z17
+-- z18
+{35,-1} .. {11,-11}z19
+{11,-10} .. {0,-34}z20
+-- z21
+{0,-81} .. {39,-48}z22
+{42,-52} .. {79,0}z23
+{82,0} .. {42,51}z24
+{38,46} .. {0,83}z25
+-- z26
+-- z27
+{35,0} .. {0,-29}z28
+-- z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(78,744FX#,694FY#,13FY#);
+"N";
+z1=(694FX,249FY);
+z2=(694FX,315FY);
+z3=(551FX,315FY);
+z4=(551FX,242FY);
+z5=(545FX,115FY);
+z6=(520FX,45FY);
+z7=(453FX,19FY);
+z8=(383FX,53FY);
+z9=(359FX,131FY);
+z10=(355FX,252FY);
+z11=(355FX,624FY);
+z12=(215FX,624FY);
+z13=(171FX,636FY);
+z14=(162FX,671FY);
+z15=(162FX,694FY);
+z16=(0FX,694FY);
+z17=(0FX,662FY);
+z18=(175FX,583FY);
+z19=(211FX,583FY);
+z20=(211FX,258FY);
+z21=(454FX,-13FY);
+z22=(640FX,55FY);
+z23=(694FX,249FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-59} .. {-4,-25}z5
+{-4,-32} .. {-12,-15}z6
+{-15,-18} .. {-30,0}z7
+{-32,0} .. {-15,22}z8
+{-12,17} .. {-5,35}z9
+{-3,25} .. {0,56}z10
+-- z11
+-- z12
+{-21,0} .. {-8,8}z13
+{-6,6} .. {0,17}z14
+-- z15
+-- z16
+-- z17
+{0,-53} .. {117,0}z18
+-- z19
+-- z20
+{0,-181} .. {162,0}z21
+{85,0} .. {39,46}z22
+{36,43} .. {0,86}z23
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(79,681FX#,637FY#,0FY#);
+"O";
+z1=(669FX,0FY);
+z2=(669FX,18FY);
+z3=(599FX,35FY);
+z4=(581FX,104FY);
+z5=(581FX,373FY);
+z6=(339FX,637FY);
+z7=(98FX,373FY);
+z8=(98FX,104FY);
+z9=(81FX,35FY);
+z10=(13FX,18FY);
+z11=(13FX,0FY);
+z12=(318FX,0FY);
+z13=(318FX,18FY);
+z14=(255FX,37FY);
+z15=(241FX,104FY);
+z16=(241FX,409FY);
+z17=(339FX,606FY);
+z18=(432FX,511FY);
+z19=(437FX,409FY);
+z20=(437FX,104FY);
+z21=(423FX,39FY);
+z22=(361FX,18FY);
+z23=(361FX,0FY);
+FuF (z1
+-- z2
+{-35,0} .. {-12,11}z3
+{-12,11} .. {0,35}z4
+-- z5
+{0,176} .. {-161,0}z6
+{-161,0} .. {0,-176}z7
+-- z8
+{0,-35} .. {-11,-11}z9
+{-11,-11} .. {-34,0}z10
+-- z11
+-- z12
+-- z13
+{-33,0} .. {-9,13}z14
+{-9,11} .. {0,34}z15
+-- z16
+{0,132} .. {65,0}z17
+{52,-1} .. {10,-63}z18
+{4,-24} .. {0,-44}z19
+-- z20
+{0,-32} .. {-9,-12}z21
+{-12,-14} .. {-30,0}z22
+-- z23
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(80,824FX#,631FY#,0FY#);
+"P";
+z1=(809FX,0FY);
+z2=(809FX,18FY);
+z3=(743FX,33FY);
+z4=(728FX,102FY);
+z5=(728FX,341FY);
+z6=(700FX,474FY);
+z7=(380FX,632FY);
+z8=(111FX,544FY);
+z9=(32FX,345FY);
+z10=(32FX,315FY);
+z11=(175FX,315FY);
+z12=(175FX,387FY);
+z13=(209FX,528FY);
+z14=(308FX,593FY);
+z15=(308FX,205FY);
+z16=(451FX,205FY);
+z17=(451FX,593FY);
+z18=(585FX,376FY);
+z19=(585FX,102FY);
+z20=(566FX,33FY);
+z21=(499FX,19FY);
+z22=(499FX,0FY);
+FuF (z1
+-- z2
+{-35,1} .. {-9,9}z3
+{-10,9} .. {0,37}z4
+-- z5
+{0,50} .. {-19,39}z6
+{-51,105} .. {-162,0}z7
+{-119,0} .. {-60,-58}z8
+{-53,-50} .. {0,-83}z9
+-- z10
+-- z11
+-- z12
+{0,57} .. {22,37}z13
+{24,39} .. {42,4}z14
+-- z15
+-- z16
+-- z17
+{89,-12} .. {0,-133}z18
+-- z19
+{0,-36} .. {-13,-10}z20
+{-10,-9} .. {-34,0}z21
+-- z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(81,741FX#,637FY#,0FY#);
+"Q";
+z1=(691FX,47FY);
+z2=(691FX,79FY);
+z3=(544FX,153FY);
+z4=(338FX,153FY);
+z5=(338FX,274FY);
+z6=(438FX,234FY);
+z7=(605FX,276FY);
+z8=(678FX,425FY);
+z9=(611FX,586FY);
+z10=(440FX,637FY);
+z11=(261FX,579FY);
+z12=(195FX,404FY);
+z13=(195FX,153FY);
+z14=(178FX,153FY);
+z15=(129FX,194FY);
+z16=(129FX,217FY);
+z17=(0FX,217FY);
+z18=(0FX,185FY);
+z19=(47FX,128FY);
+z20=(125FX,111FY);
+z21=(194FX,111FY);
+z22=(194FX,90FY);
+z23=(177FX,33FY);
+z24=(116FX,18FY);
+z25=(116FX,0FY);
+z26=(427FX,0FY);
+z27=(427FX,18FY);
+z28=(360FX,31FY);
+z29=(338FX,93FY);
+z30=(338FX,111FY);
+z31=(480FX,111FY);
+z32=(529FX,70FY);
+z33=(529FX,47FY);
+z34=(535FX,436FY);
+z35=(437FX,269FY);
+z36=(360FX,316FY);
+z37=(338FX,408FY);
+z38=(338FX,450FY);
+z39=(359FX,559FY);
+z40=(440FX,606FY);
+z41=(517FX,560FY);
+z42=(535FX,436FY);
+FuF (z1
+-- z2
+{0,49} .. {-98,0}z3
+-- z4
+-- z5
+{31,-27} .. {36,0}z6
+{70,0} .. {41,28}z7
+{49,33} .. {0,67}z8
+{0,70} .. {-45,38}z9
+{-42,34} .. {-72,0}z10
+{-76,0} .. {-43,-39}z11
+{-44,-41} .. {0,-76}z12
+-- z13
+-- z14
+{-33,0} .. {0,27}z15
+-- z16
+-- z17
+-- z18
+{0,-26} .. {31,-12}z19
+{26,-11} .. {26,0}z20
+-- z21
+-- z22
+{0,-28} .. {-11,-10}z23
+{-12,-10} .. {-29,0}z24
+-- z25
+-- z26
+-- z27
+{-33,0} .. {-12,9}z28
+{-14,10} .. {0,31}z29
+-- z30
+-- z31
+{32,-4} .. {0,-23}z32
+-- z33
+);
+FuF (z34
+{-1,-112} .. {-65,1}z35
+{-34,0} .. {-17,31}z36
+{-14,25} .. {0,36}z37
+-- z38
+{0,47} .. {14,26}z39
+{16,31} .. {37,0}z40
+{37,-1} .. {14,-30}z41
+{12,-25} .. {0,-58}z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(82,612FX#,637FY#,0FY#);
+"R";
+z1=(581FX,315FY);
+z2=(581FX,373FY);
+z3=(523FX,564FY);
+z4=(339FX,637FY);
+z5=(98FX,373FY);
+z6=(98FX,104FY);
+z7=(82FX,35FY);
+z8=(14FX,18FY);
+z9=(14FX,0FY);
+z10=(327FX,0FY);
+z11=(327FX,18FY);
+z12=(257FX,35FY);
+z13=(241FX,104FY);
+z14=(241FX,409FY);
+z15=(339FX,606FY);
+z16=(432FX,506FY);
+z17=(438FX,409FY);
+z18=(438FX,315FY);
+FuF (z1
+-- z2
+{0,82} .. {-39,45}z3
+{-41,49} .. {-81,0}z4
+{-160,0} .. {0,-176}z5
+-- z6
+{0,-35} .. {-11,-11}z7
+{-11,-11} .. {-34,0}z8
+-- z9
+-- z10
+-- z11
+{-36,1} .. {-11,11}z12
+{-10,10} .. {0,36}z13
+-- z14
+{0,131} .. {65,0}z15
+{50,0} .. {12,-66}z16
+{4,-23} .. {0,-42}z17
+-- z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(83,681FX#,624FY#,13FY#);
+"S";
+z1=(677FX,607FY);
+z2=(677FX,624FY);
+z3=(370FX,624FY);
+z4=(370FX,607FY);
+z5=(433FX,587FY);
+z6=(446FX,520FY);
+z7=(446FX,215FY);
+z8=(429FX,75FY);
+z9=(348FX,19FY);
+z10=(256FX,116FY);
+z11=(250FX,215FY);
+z12=(250FX,520FY);
+z13=(263FX,587FY);
+z14=(327FX,607FY);
+z15=(327FX,624FY);
+z16=(22FX,624FY);
+z17=(22FX,607FY);
+z18=(92FX,587FY);
+z19=(106FX,520FY);
+z20=(106FX,252FY);
+z21=(348FX,-13FY);
+z22=(537FX,59FY);
+z23=(589FX,252FY);
+z24=(589FX,520FY);
+z25=(609FX,588FY);
+z26=(677FX,607FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{32,-1} .. {9,-13}z5
+{9,-11} .. {0,-34}z6
+-- z7
+{0,-65} .. {-12,-29}z8
+{-15,-38} .. {-39,0}z9
+{-52,0} .. {-9,65}z10
+{-4,24} .. {0,42}z11
+-- z12
+{0,34} .. {8,11}z13
+{11,13} .. {32,0}z14
+-- z15
+-- z16
+-- z17
+{35,0} .. {11,-13}z18
+{9,-11} .. {0,-34}z19
+-- z20
+{0,-177} .. {161,1}z21
+{88,0} .. {38,48}z22
+{35,43} .. {0,86}z23
+-- z24
+{0,33} .. {13,13}z25
+{13,12} .. {33,0}z26
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(84,604FX#,635FY#,10FY#);
+"T";
+z1=(558FX,158FY);
+z2=(451FX,325FY);
+z3=(383FX,360FY);
+z4=(318FX,393FY);
+z5=(260FX,434FY);
+z6=(236FX,494FY);
+z7=(311FX,609FY);
+z8=(377FX,539FY);
+z9=(385FX,431FY);
+z10=(528FX,431FY);
+z11=(465FX,581FY);
+z12=(311FX,636FY);
+z13=(167FX,595FY);
+z14=(93FX,473FY);
+z15=(133FX,368FY);
+z16=(221FX,306FY);
+z17=(312FX,264FY);
+z18=(385FX,208FY);
+z19=(415FX,135FY);
+z20=(322FX,21FY);
+z21=(197FX,204FY);
+z22=(42FX,204FY);
+z23=(136FX,42FY);
+z24=(323FX,-11FY);
+z25=(498FX,47FY);
+z26=(558FX,158FY);
+FuF (z1
+{0,69} .. {-71,42}z2
+{-10,6} .. {-35,17}z3
+{-24,12} .. {-19,10}z4
+{-26,14} .. {-13,14}z5
+{-16,18} .. {0,22}z6
+{0,77} .. {50,-1}z7
+{33,0} .. {10,-47}z8
+{6,-23} .. {0,-49}z9
+-- z10
+{0,62} .. {-42,38}z11
+{-40,36} .. {-63,0}z12
+{-53,0} .. {-43,-27}z13
+{-50,-30} .. {0,-50}z14
+{0,-41} .. {27,-29}z15
+{21,-24} .. {38,-18}z16
+{40,-19} .. {20,-9}z17
+{30,-14} .. {19,-23}z18
+{20,-24} .. {0,-25}z19
+{-1,-76} .. {-61,0}z20
+{-83,0} .. {0,122}z21
+-- z22
+{0,-68} .. {63,-40}z23
+{54,-35} .. {71,0}z24
+{72,0} .. {45,38}z25
+{40,33} .. {0,41}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(85,1213FX#,637FY#,0FY#);
+"U";
+z1=(669FX,0FY);
+z2=(669FX,18FY);
+z3=(599FX,35FY);
+z4=(581FX,104FY);
+z5=(581FX,373FY);
+z6=(339FX,637FY);
+z7=(98FX,373FY);
+z8=(98FX,104FY);
+z9=(81FX,35FY);
+z10=(13FX,18FY);
+z11=(13FX,0FY);
+z12=(318FX,0FY);
+z13=(318FX,18FY);
+z14=(255FX,37FY);
+z15=(241FX,104FY);
+z16=(241FX,409FY);
+z17=(339FX,606FY);
+z18=(432FX,511FY);
+z19=(437FX,409FY);
+z20=(437FX,104FY);
+z21=(423FX,39FY);
+z22=(361FX,18FY);
+z23=(361FX,0FY);
+z24=(1213FX,315FY);
+z25=(1213FX,350FY);
+z26=(1072FX,431FY);
+z27=(922FX,431FY);
+z28=(922FX,523FY);
+z29=(939FX,591FY);
+z30=(1009FX,607FY);
+z31=(1009FX,624FY);
+z32=(694FX,624FY);
+z33=(694FX,607FY);
+z34=(764FX,591FY);
+z35=(779FX,523FY);
+z36=(779FX,104FY);
+z37=(762FX,32FY);
+z38=(694FX,18FY);
+z39=(694FX,0FY);
+z40=(1009FX,0FY);
+z41=(1009FX,19FY);
+z42=(940FX,33FY);
+z43=(922FX,104FY);
+z44=(922FX,390FY);
+z45=(1000FX,390FY);
+z46=(1053FX,346FY);
+z47=(1053FX,315FY);
+FuF (z1
+-- z2
+{-35,0} .. {-12,11}z3
+{-12,11} .. {0,35}z4
+-- z5
+{0,176} .. {-161,0}z6
+{-161,0} .. {0,-176}z7
+-- z8
+{0,-35} .. {-11,-11}z9
+{-11,-11} .. {-34,0}z10
+-- z11
+-- z12
+-- z13
+{-33,0} .. {-9,13}z14
+{-9,11} .. {0,34}z15
+-- z16
+{0,132} .. {65,0}z17
+{52,-1} .. {10,-63}z18
+{4,-24} .. {0,-44}z19
+-- z20
+{0,-32} .. {-9,-12}z21
+{-12,-14} .. {-30,0}z22
+-- z23
+);
+FuF (z24
+-- z25
+{0,54} .. {-94,0}z26
+-- z27
+-- z28
+{0,35} .. {11,11}z29
+{11,10} .. {36,0}z30
+-- z31
+-- z32
+-- z33
+{36,-1} .. {11,-10}z34
+{10,-11} .. {0,-35}z35
+-- z36
+{0,-38} .. {-11,-10}z37
+{-10,-9} .. {-35,0}z38
+-- z39
+-- z40
+-- z41
+{-36,0} .. {-10,9}z42
+{-12,11} .. {0,36}z43
+-- z44
+-- z45
+{35,0} .. {0,-29}z46
+-- z47
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 47);
+endchar;
+
+beginchar(86,762FX#,624FY#,64FY#);
+"V";
+z1=(779FX,-64FY);
+z2=(779FX,-31FY);
+z3=(702FX,34FY);
+z4=(588FX,41FY);
+z5=(555FX,41FY);
+z6=(555FX,523FY);
+z7=(571FX,591FY);
+z8=(641FX,607FY);
+z9=(641FX,624FY);
+z10=(327FX,624FY);
+z11=(327FX,606FY);
+z12=(397FX,590FY);
+z13=(412FX,523FY);
+z14=(412FX,346FY);
+z15=(314FX,175FY);
+z16=(216FX,335FY);
+z17=(216FX,431FY);
+z18=(2FX,431FY);
+z19=(2FX,412FY);
+z20=(76FX,368FY);
+z21=(313FX,143FY);
+z22=(412FX,177FY);
+z23=(412FX,0FY);
+z24=(577FX,0FY);
+z25=(617FX,-47FY);
+z26=(617FX,-64FY);
+FuF (z1
+-- z2
+{0,33} .. {-51,10}z3
+{-24,5} .. {-52,0}z4
+-- z5
+-- z6
+{0,35} .. {10,10}z7
+{11,10} .. {36,0}z8
+-- z9
+-- z10
+-- z11
+{36,-1} .. {11,-10}z12
+{10,-9} .. {0,-35}z13
+-- z14
+{0,-114} .. {-65,0}z15
+{-65,0} .. {0,106}z16
+-- z17
+-- z18
+-- z19
+{49,-1} .. {1,-29}z20
+{1,-150} .. {157,0}z21
+{33,0} .. {33,22}z22
+-- z23
+-- z24
+{26,0} .. {0,-31}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(87,531FX#,624FY#,0FY#);
+"W";
+z1=(532FX,315FY);
+z2=(532FX,350FY);
+z3=(391FX,431FY);
+z4=(241FX,431FY);
+z5=(241FX,523FY);
+z6=(258FX,591FY);
+z7=(327FX,607FY);
+z8=(327FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,607FY);
+z11=(83FX,591FY);
+z12=(98FX,523FY);
+z13=(98FX,104FY);
+z14=(81FX,32FY);
+z15=(13FX,18FY);
+z16=(13FX,0FY);
+z17=(327FX,0FY);
+z18=(328FX,19FY);
+z19=(259FX,33FY);
+z20=(241FX,104FY);
+z21=(241FX,390FY);
+z22=(319FX,390FY);
+z23=(372FX,346FY);
+z24=(372FX,315FY);
+FuF (z1
+-- z2
+{0,54} .. {-94,0}z3
+-- z4
+-- z5
+{0,35} .. {11,11}z6
+{11,10} .. {35,0}z7
+-- z8
+-- z9
+-- z10
+{36,-1} .. {11,-10}z11
+{10,-11} .. {0,-35}z12
+-- z13
+{0,-38} .. {-11,-10}z14
+{-11,-9} .. {-35,0}z15
+-- z16
+-- z17
+-- z18
+{-36,0} .. {-10,9}z19
+{-12,11} .. {0,36}z20
+-- z21
+-- z22
+{35,0} .. {0,-29}z23
+-- z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(88,865FX#,624FY#,11FY#);
+"X";
+z1=(825FX,249FY);
+z2=(825FX,431FY);
+z3=(614FX,431FY);
+z4=(614FX,413FY);
+z5=(673FX,390FY);
+z6=(682FX,322FY);
+z7=(682FX,205FY);
+z8=(668FX,66FY);
+z9=(601FX,14FY);
+z10=(519FX,84FY);
+z11=(508FX,204FY);
+z12=(508FX,431FY);
+z13=(241FX,431FY);
+z14=(241FX,523FY);
+z15=(258FX,590FY);
+z16=(327FX,606FY);
+z17=(327FX,624FY);
+z18=(13FX,624FY);
+z19=(13FX,607FY);
+z20=(82FX,590FY);
+z21=(98FX,523FY);
+z22=(98FX,104FY);
+z23=(82FX,34FY);
+z24=(13FX,18FY);
+z25=(13FX,0FY);
+z26=(327FX,0FY);
+z27=(327FX,18FY);
+z28=(258FX,34FY);
+z29=(241FX,104FY);
+z30=(241FX,390FY);
+z31=(364FX,390FY);
+z32=(364FX,249FY);
+z33=(603FX,-12FY);
+z34=(774FX,64FY);
+z35=(825FX,249FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{31,-1} .. {8,-15}z5
+{6,-10} .. {0,-35}z6
+-- z7
+{0,-65} .. {-9,-27}z8
+{-12,-35} .. {-33,0}z9
+{-41,1} .. {-14,46}z10
+{-7,27} .. {0,54}z11
+-- z12
+-- z13
+-- z14
+{0,34} .. {11,10}z15
+{12,10} .. {34,0}z16
+-- z17
+-- z18
+-- z19
+{35,-1} .. {11,-11}z20
+{11,-10} .. {0,-34}z21
+-- z22
+{0,-36} .. {-11,-11}z23
+{-10,-11} .. {-36,0}z24
+-- z25
+-- z26
+-- z27
+{-35,0} .. {-11,10}z28
+{-11,11} .. {0,36}z29
+-- z30
+-- z31
+-- z32
+{0,-174} .. {159,0}z33
+{76,0} .. {38,50}z34
+{34,44} .. {0,79}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(89,632FX#,640FY#,10FY#);
+"Y";
+z1=(603FX,205FY);
+z2=(549FX,325FY);
+z3=(426FX,371FY);
+z4=(424FX,373FY);
+z5=(509FX,408FY);
+z6=(550FX,493FY);
+z7=(483FX,607FY);
+z8=(347FX,641FY);
+z9=(211FX,609FY);
+z10=(134FX,501FY);
+z11=(275FX,501FY);
+z12=(347FX,608FY);
+z13=(413FX,497FY);
+z14=(319FX,379FY);
+z15=(225FX,379FY);
+z16=(232FX,408FY);
+z17=(91FX,408FY);
+z18=(69FX,303FY);
+z19=(212FX,303FY);
+z20=(220FX,347FY);
+z21=(321FX,347FY);
+z22=(454FX,195FY);
+z23=(425FX,81FY);
+z24=(328FX,22FY);
+z25=(233FX,87FY);
+z26=(210FX,208FY);
+z27=(58FX,208FY);
+z28=(143FX,43FY);
+z29=(326FX,-11FY);
+z30=(513FX,42FY);
+z31=(603FX,205FY);
+FuF (z1
+{0,49} .. {-36,32}z2
+{-33,30} .. {-48,0}z3
+-- z4
+{33,3} .. {23,20}z5
+{27,23} .. {0,34}z6
+{0,49} .. {-45,26}z7
+{-38,23} .. {-53,0}z8
+{-53,-1} .. {-38,-21}z9
+{-45,-25} .. {-6,-47}z10
+-- z11
+{1,72} .. {47,-1}z12
+{44,0} .. {0,-74}z13
+{0,-79} .. {-62,0}z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+{88,0} .. {0,-102}z22
+{0,-43} .. {-19,-32}z23
+{-24,-40} .. {-41,0}z24
+{-43,0} .. {-21,44}z25
+{-15,32} .. {0,49}z26
+-- z27
+{0,-69} .. {56,-41}z28
+{50,-36} .. {72,0}z29
+{71,0} .. {54,35}z30
+{60,41} .. {0,68}z31
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(90,670FX#,637FY#,95FY#);
+"Z";
+z1=(615FX,408FY);
+z2=(537FX,582FY);
+z3=(352FX,637FY);
+z4=(140FX,570FY);
+z5=(70FX,415FY);
+z6=(143FX,259FY);
+z7=(317FX,205FY);
+z8=(375FX,210FY);
+z9=(427FX,228FY);
+z10=(343FX,109FY);
+z11=(217FX,41FY);
+z12=(217FX,122FY);
+z13=(74FX,122FY);
+z14=(74FX,-95FY);
+z15=(217FX,-95FY);
+z16=(217FX,0FY);
+z17=(408FX,0FY);
+z18=(453FX,-58FY);
+z19=(453FX,-95FY);
+z20=(614FX,-95FY);
+z21=(614FX,-47FY);
+z22=(457FX,41FY);
+z23=(315FX,41FY);
+z24=(478FX,132FY);
+z25=(575FX,257FY);
+z26=(615FX,408FY);
+z27=(470FX,415FY);
+z28=(444FX,302FY);
+z29=(352FX,243FY);
+z30=(250FX,297FY);
+z31=(221FX,414FY);
+z32=(352FX,607FY);
+z33=(470FX,415FY);
+FuF (z1
+{-1,75} .. {-52,41}z2
+{-46,37} .. {-77,0}z3
+{-90,0} .. {-51,-45}z4
+{-47,-41} .. {0,-62}z5
+{0,-66} .. {49,-38}z6
+{47,-36} .. {70,0}z7
+{20,0} .. {19,3}z8
+{24,5} .. {11,7}z9
+{-13,-38} .. {-43,-41}z10
+{-47,-45} .. {-37,0}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{30,0} .. {0,-39}z18
+-- z19
+-- z20
+-- z21
+{0,59} .. {-105,0}z22
+-- z23
+{61,19} .. {47,42}z24
+{40,36} .. {24,48}z25
+{27,51} .. {0,50}z26
+);
+FuF (z27
+{0,-44} .. {-17,-31}z28
+{-21,-40} .. {-40,0}z29
+{-46,0} .. {-22,36}z30
+{-20,29} .. {0,48}z31
+{0,130} .. {87,-1}z32
+{78,0} .. {0,-128}z33
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(91,394FX#,750FY#,249FY#);
+"bracketleft";
+z1=(356FX,-250FY);
+z2=(356FX,-229FY);
+z3=(330FX,-229FY);
+z4=(283FX,-224FY);
+z5=(255FX,-189FY);
+z6=(253FX,-125FY);
+z7=(253FX,621FY);
+z8=(259FX,695FY);
+z9=(330FX,726FY);
+z10=(356FX,726FY);
+z11=(356FX,750FY);
+z12=(124FX,750FY);
+z13=(124FX,-250FY);
+FuF (z1
+-- z2
+-- z3
+{-22,0} .. {-9,4}z4
+{-14,6} .. {-5,17}z5
+{-2,6} .. {0,37}z6
+-- z7
+{0,39} .. {4,10}z8
+{9,20} .. {38,0}z9
+-- z10
+-- z11
+-- z12
+-- z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(92,542FX#,624FY#,0FY#);
+"quotedblleft";
+z1=(158FX,428FY);
+z2=(185FX,521FY);
+z3=(250FX,599FY);
+z4=(254FX,606FY);
+z5=(251FX,615FY);
+z6=(245FX,621FY);
+z7=(236FX,624FY);
+z8=(229FX,623FY);
+z9=(153FX,533FY);
+z10=(126FX,421FY);
+z11=(148FX,344FY);
+z12=(210FX,310FY);
+z13=(261FX,330FY);
+z14=(280FX,380FY);
+z15=(272FX,414FY);
+z16=(248FX,440FY);
+z17=(210FX,450FY);
+z18=(158FX,428FY);
+z19=(384FX,428FY);
+z20=(411FX,521FY);
+z21=(476FX,599FY);
+z22=(480FX,607FY);
+z23=(478FX,615FY);
+z24=(471FX,621FY);
+z25=(462FX,624FY);
+z26=(455FX,623FY);
+z27=(401FX,568FY);
+z28=(364FX,498FY);
+z29=(352FX,421FY);
+z30=(375FX,344FY);
+z31=(436FX,310FY);
+z32=(488FX,330FY);
+z33=(506FX,380FY);
+z34=(488FX,429FY);
+z35=(436FX,450FY);
+z36=(384FX,428FY);
+FuF (z1
+{2,34} .. {16,29}z2
+{16,29} .. {27,24}z3
+{3,2} .. {0,2}z4
+{0,3} .. {-2,3}z5
+-- z6
+{-3,2} .. {-4,0}z7
+{-3,0} .. {-1,-1}z8
+{-33,-24} .. {-18,-36}z9
+{-18,-35} .. {0,-39}z10
+{0,-29} .. {14,-23}z11
+{15,-23} .. {26,0}z12
+{22,0} .. {12,13}z13
+{13,14} .. {0,20}z14
+{0,12} .. {-5,11}z15
+{-5,11} .. {-11,6}z16
+{-11,7} .. {-15,0}z17
+{-22,0} .. {-13,-15}z18
+);
+FuF (z19
+{2,33} .. {16,29}z20
+{16,28} .. {27,24}z21
+{3,2} .. {0,3}z22
+{0,4} .. {-1,2}z23
+-- z24
+{-2,2} .. {-4,0}z25
+{-3,0} .. {-1,-1}z26
+{-20,-15} .. {-16,-22}z27
+{-16,-21} .. {-9,-25}z28
+{-8,-26} .. {0,-26}z29
+{0,-29} .. {15,-22}z30
+{15,-23} .. {25,0}z31
+{22,0} .. {13,13}z32
+{12,14} .. {0,19}z33
+{0,19} .. {-12,14}z34
+{-12,14} .. {-23,0}z35
+{-22,0} .. {-13,-15}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(93,394FX#,750FY#,249FY#);
+"bracketright";
+z1=(271FX,-250FY);
+z2=(271FX,750FY);
+z3=(39FX,750FY);
+z4=(39FX,727FY);
+z5=(65FX,727FY);
+z6=(140FX,686FY);
+z7=(142FX,623FY);
+z8=(142FX,-124FY);
+z9=(135FX,-197FY);
+z10=(65FX,-228FY);
+z11=(39FX,-228FY);
+z12=(39FX,-250FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{43,0} .. {7,-27}z6
+{1,-5} .. {0,-36}z7
+-- z8
+{0,-38} .. {-5,-10}z9
+{-9,-21} .. {-38,0}z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(94,448FX#,749FY#,249FY#);
+"braceleft";
+z1=(400FX,-250FY);
+z2=(400FX,-224FY);
+z3=(292FX,-116FY);
+z4=(306FX,-23FY);
+z5=(319FX,69FY);
+z6=(237FX,209FY);
+z7=(137FX,251FY);
+z8=(231FX,288FY);
+z9=(318FX,432FY);
+z10=(305FX,526FY);
+z11=(291FX,621FY);
+z12=(400FX,725FY);
+z13=(400FX,750FY);
+z14=(319FX,740FY);
+z15=(247FX,706FY);
+z16=(171FX,572FY);
+z17=(188FX,472FY);
+z18=(200FX,387FY);
+z19=(92FX,267FY);
+z20=(92FX,234FY);
+z21=(200FX,119FY);
+z22=(188FX,31FY);
+z23=(170FX,-74FY);
+z24=(196FX,-155FY);
+z25=(276FX,-226FY);
+z26=(380FX,-250FY);
+FuF (z1
+-- z2
+{-72,15} .. {0,58}z3
+{0,21} .. {9,41}z4
+{9,40} .. {-1,21}z5
+{-1,56} .. {-54,38}z6
+{-20,13} .. {-47,14}z7
+{43,12} .. {20,13}z8
+{58,38} .. {0,58}z9
+{0,21} .. {-9,42}z10
+{-10,42} .. {0,22}z11
+{1,56} .. {72,13}z12
+-- z13
+{-34,-1} .. {-20,-6}z14
+{-27,-7} .. {-21,-15}z15
+{-51,-37} .. {1,-52}z16
+{0,-23} .. {11,-43}z17
+{9,-33} .. {-1,-24}z18
+{0,-69} .. {-71,-12}z19
+-- z20
+{73,-13} .. {-1,-64}z21
+{0,-27} .. {-8,-32}z22
+{-12,-45} .. {0,-25}z23
+{1,-27} .. {17,-27}z24
+{18,-30} .. {35,-18}z25
+{33,-16} .. {36,0}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(95,448FX#,750FY#,249FY#);
+"braceright";
+z1=(359FX,233FY);
+z2=(359FX,267FY);
+z3=(250FX,381FY);
+z4=(263FX,470FY);
+z5=(280FX,574FY);
+z6=(254FX,656FY);
+z7=(175FX,726FY);
+z8=(70FX,751FY);
+z9=(51FX,750FY);
+z10=(51FX,724FY);
+z11=(158FX,616FY);
+z12=(144FX,523FY);
+z13=(130FX,431FY);
+z14=(213FX,292FY);
+z15=(313FX,249FY);
+z16=(219FX,213FY);
+z17=(132FX,68FY);
+z18=(145FX,-26FY);
+z19=(159FX,-120FY);
+z20=(51FX,-224FY);
+z21=(51FX,-250FY);
+z22=(132FX,-239FY);
+z23=(203FX,-206FY);
+z24=(279FX,-72FY);
+z25=(262FX,29FY);
+z26=(250FX,114FY);
+z27=(359FX,233FY);
+FuF (z1
+-- z2
+{-74,12} .. {1,64}z3
+{0,27} .. {9,33}z4
+{11,45} .. {0,24}z5
+{-1,27} .. {-17,28}z6
+{-18,29} .. {-34,18}z7
+{-35,17} .. {-35,-1}z8
+-- z9
+-- z10
+{72,-14} .. {0,-58}z11
+{-1,-21} .. {-9,-41}z12
+{-10,-41} .. {0,-20}z13
+{1,-56} .. {54,-37}z14
+{20,-14} .. {46,-15}z15
+{-44,-12} .. {-19,-12}z16
+{-58,-38} .. {0,-59}z17
+{0,-21} .. {8,-41}z18
+{9,-41} .. {0,-21}z19
+{0,-57} .. {-72,-13}z20
+-- z21
+{34,2} .. {20,6}z22
+{26,7} .. {21,15}z23
+{51,37} .. {0,53}z24
+{0,24} .. {-11,44}z25
+{-8,32} .. {0,24}z26
+{1,68} .. {72,11}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(96,226FX#,727FY#,0FY#);
+"buth";
+z1=(191FX,566FY);
+z2=(49FX,709FY);
+z3=(13FX,727FY);
+z4=(-16FX,712FY);
+z5=(-28FX,674FY);
+z6=(-23FX,650FY);
+z7=(-8FX,633FY);
+z8=(138FX,540FY);
+FuF (z1
+-- z2
+{-12,12} .. {-12,0}z3
+{-11,0} .. {-8,-10}z4
+{-8,-10} .. {0,-15}z5
+{1,-9} .. {3,-7}z6
+{3,-7} .. {7,-4}z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(97,759FX#,431FY#,12FY#);
+"a";
+z1=(744FX,0FY);
+z2=(744FX,18FY);
+z3=(708FX,29FY);
+z4=(698FX,67FY);
+z5=(698FX,431FY);
+z6=(522FX,431FY);
+z7=(522FX,414FY);
+z8=(569FX,373FY);
+z9=(569FX,105FY);
+z10=(487FX,47FY);
+z11=(444FX,120FY);
+z12=(444FX,431FY);
+z13=(266FX,431FY);
+z14=(266FX,414FY);
+z15=(315FX,373FY);
+z16=(315FX,105FY);
+z17=(234FX,48FY);
+z18=(191FX,120FY);
+z19=(191FX,431FY);
+z20=(16FX,431FY);
+z21=(16FX,414FY);
+z22=(62FX,373FY);
+z23=(62FX,146FY);
+z24=(181FX,-12FY);
+z25=(322FX,66FY);
+z26=(364FX,6FY);
+z27=(435FX,-12FY);
+z28=(511FX,6FY);
+z29=(569FX,58FY);
+z30=(569FX,0FY);
+FuF (z1
+-- z2
+{-18,0} .. {-6,7}z3
+{-7,7} .. {0,18}z4
+-- z5
+-- z6
+-- z7
+{31,0} .. {0,-28}z8
+-- z9
+{-28,-39} .. {-27,0}z10
+{-29,0} .. {0,49}z11
+-- z12
+-- z13
+-- z14
+{33,0} .. {0,-28}z15
+-- z16
+{-25,-38} .. {-29,0}z17
+{-29,0} .. {0,48}z18
+-- z19
+-- z20
+-- z21
+{31,0} .. {0,-28}z22
+-- z23
+{0,-105} .. {79,0}z24
+{60,0} .. {34,52}z25
+{6,-26} .. {22,-14}z26
+{20,-12} .. {28,0}z27
+{26,0} .. {25,12}z28
+{27,13} .. {11,22}z29
+-- z30
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(98,514FX#,443FY#,204FY#);
+"b";
+z1=(478FX,0FY);
+z2=(478FX,45FY);
+z3=(191FX,45FY);
+z4=(191FX,325FY);
+z5=(283FX,384FY);
+z6=(329FX,314FY);
+z7=(329FX,117FY);
+z8=(458FX,117FY);
+z9=(458FX,289FY);
+z10=(341FX,443FY);
+z11=(262FX,428FY);
+z12=(191FX,374FY);
+z13=(191FX,431FY);
+z14=(18FX,431FY);
+z15=(18FX,413FY);
+z16=(55FX,401FY);
+z17=(62FX,364FY);
+z18=(62FX,-143FY);
+z19=(53FX,-179FY);
+z20=(18FX,-188FY);
+z21=(18FX,-204FY);
+z22=(236FX,-204FY);
+z23=(236FX,-188FY);
+z24=(200FX,-179FY);
+z25=(191FX,-143FY);
+z26=(191FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{26,39} .. {35,0}z5
+{31,0} .. {0,-47}z6
+-- z7
+-- z8
+-- z9
+{0,103} .. {-78,0}z10
+{-27,0} .. {-26,-10}z11
+{-31,-13} .. {-16,-23}z12
+-- z13
+-- z14
+-- z15
+{18,0} .. {6,-8}z16
+{5,-6} .. {0,-18}z17
+-- z18
+{0,-18} .. {-6,-6}z19
+{-6,-6} .. {-17,0}z20
+-- z21
+-- z22
+-- z23
+{-18,0} .. {-6,6}z24
+{-6,5} .. {0,18}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(99,512FX#,443FY#,204FY#);
+"c";
+z1=(457FX,0FY);
+z2=(457FX,443FY);
+z3=(441FX,443FY);
+z4=(369FX,393FY);
+z5=(254FX,443FY);
+z6=(101FX,374FY);
+z7=(29FX,197FY);
+z8=(79FX,42FY);
+z9=(180FX,-4FY);
+z10=(277FX,15FY);
+z11=(327FX,51FY);
+z12=(327FX,-80FY);
+z13=(291FX,-140FY);
+z14=(215FX,-161FY);
+z15=(165FX,-133FY);
+z16=(167FX,-118FY);
+z17=(169FX,-103FY);
+z18=(98FX,-58FY);
+z19=(62FX,-75FY);
+z20=(48FX,-112FY);
+z21=(102FX,-181FY);
+z22=(215FX,-204FY);
+z23=(386FX,-148FY);
+z24=(457FX,0FY);
+z25=(327FX,100FY);
+z26=(290FX,69FY);
+z27=(241FX,56FY);
+z28=(182FX,90FY);
+z29=(164FX,205FY);
+z30=(204FX,369FY);
+z31=(263FX,399FY);
+z32=(327FX,333FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-27,34} .. {-50,0}z5
+{-57,0} .. {-45,-46}z6
+{-48,-49} .. {0,-69}z7
+{0,-67} .. {33,-37}z8
+{28,-30} .. {40,0}z9
+{35,0} .. {30,12}z10
+{24,11} .. {9,14}z11
+-- z12
+{0,-25} .. {-24,-15}z13
+{-22,-14} .. {-28,0}z14
+{-33,1} .. {0,18}z15
+{0,3} .. {1,7}z16
+{1,6} .. {0,3}z17
+{0,30} .. {-47,0}z18
+{-15,0} .. {-9,-11}z19
+{-10,-11} .. {0,-14}z20
+{0,-29} .. {36,-18}z21
+{32,-16} .. {44,1}z22
+{68,0} .. {45,38}z23
+{47,38} .. {0,60}z24
+);
+FuF (z25
+{-6,-12} .. {-19,-9}z26
+{-18,-8} .. {-15,0}z27
+{-28,0} .. {-12,23}z28
+{-12,22} .. {0,54}z29
+{0,77} .. {27,33}z30
+{17,20} .. {23,0}z31
+{43,0} .. {0,-44}z32
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(100,562FX#,443FY#,204FY#);
+"d";
+z1=(562FX,0FY);
+z2=(562FX,45FY);
+z3=(458FX,45FY);
+z4=(458FX,292FY);
+z5=(340FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,431FY);
+z8=(16FX,431FY);
+z9=(16FX,413FY);
+z10=(55FX,400FY);
+z11=(62FX,364FY);
+z12=(62FX,58FY);
+z13=(16FX,17FY);
+z14=(16FX,0FY);
+z15=(234FX,0FY);
+z16=(234FX,17FY);
+z17=(191FX,58FY);
+z18=(191FX,325FY);
+z19=(232FX,367FY);
+z20=(283FX,384FY);
+z21=(329FX,314FY);
+z22=(329FX,-152FY);
+z23=(286FX,-188FY);
+z24=(286FX,-204FY);
+z25=(504FX,-204FY);
+z26=(504FX,-188FY);
+z27=(458FX,-152FY);
+z28=(458FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,101} .. {-78,0}z5
+{-65,0} .. {-34,-46}z6
+-- z7
+-- z8
+-- z9
+{20,0} .. {6,-9}z10
+{5,-6} .. {0,-18}z11
+-- z12
+{0,-27} .. {-31,0}z13
+-- z14
+-- z15
+-- z16
+{-29,0} .. {0,27}z17
+-- z18
+{10,16} .. {18,12}z19
+{17,11} .. {17,0}z20
+{31,0} .. {0,-47}z21
+-- z22
+{0,-24} .. {-29,0}z23
+-- z24
+-- z25
+-- z26
+{-31,0} .. {0,24}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(101,519FX#,624FY#,12FY#);
+"e";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(467FX,28FY);
+z4=(458FX,67FY);
+z5=(458FX,306FY);
+z6=(329FX,306FY);
+z7=(329FX,106FY);
+z8=(233FX,47FY);
+z9=(191FX,113FY);
+z10=(191FX,386FY);
+z11=(485FX,386FY);
+z12=(485FX,431FY);
+z13=(191FX,431FY);
+z14=(191FX,558FY);
+z15=(200FX,597FY);
+z16=(235FX,607FY);
+z17=(235FX,624FY);
+z18=(17FX,624FY);
+z19=(17FX,607FY);
+z20=(52FX,596FY);
+z21=(62FX,558FY);
+z22=(62FX,124FY);
+z23=(92FX,27FY);
+z24=(177FX,-12FY);
+z25=(329FX,56FY);
+z26=(329FX,0FY);
+FuF (z1
+-- z2
+{-18,0} .. {-7,7}z3
+{-6,6} .. {0,20}z4
+-- z5
+-- z6
+-- z7
+{-26,-39} .. {-38,0}z8
+{-28,0} .. {0,44}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{0,19} .. {6,7}z15
+{6,7} .. {18,0}z16
+-- z17
+-- z18
+-- z19
+{17,0} .. {6,-8}z20
+{7,-7} .. {0,-18}z21
+-- z22
+{0,-40} .. {20,-25}z23
+{21,-27} .. {35,0}z24
+{63,0} .. {39,46}z25
+-- z26
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(102,671FX#,629FY#,203FY#);
+"f";
+z1=(658FX,207FY);
+z2=(588FX,376FY);
+z3=(403FX,440FY);
+z4=(403FX,629FY);
+z5=(277FX,629FY);
+z6=(121FX,600FY);
+z7=(65FX,519FY);
+z8=(112FX,431FY);
+z9=(277FX,401FY);
+z10=(277FX,41FY);
+z11=(189FX,85FY);
+z12=(152FX,225FY);
+z13=(152FX,237FY);
+z14=(155FX,268FY);
+z15=(30FX,272FY);
+z16=(20FX,217FY);
+z17=(90FX,55FY);
+z18=(277FX,-6FY);
+z19=(277FX,-139FY);
+z20=(263FX,-182FY);
+z21=(219FX,-190FY);
+z22=(219FX,-204FY);
+z23=(466FX,-203FY);
+z24=(466FX,-189FY);
+z25=(403FX,-137FY);
+z26=(403FX,-5FY);
+z27=(588FX,59FY);
+z28=(658FX,207FY);
+z29=(277FX,443FY);
+z30=(188FX,517FY);
+z31=(210FX,575FY);
+z32=(277FX,590FY);
+z33=(528FX,208FY);
+z34=(488FX,79FY);
+z35=(403FX,41FY);
+z36=(403FX,399FY);
+z37=(498FX,350FY);
+z38=(528FX,208FY);
+FuF (z1
+{0,70} .. {-47,43}z2
+{-46,43} .. {-77,0}z3
+-- z4
+-- z5
+{-66,0} .. {-38,-19}z6
+{-38,-19} .. {0,-35}z7
+{0,-41} .. {31,-18}z8
+{33,-20} .. {77,0}z9
+-- z10
+{-36,0} .. {-23,30}z11
+{-24,33} .. {0,61}z12
+-- z13
+{0,7} .. {2,13}z14
+-- z15
+{-7,-28} .. {0,-9}z16
+{0,-68} .. {46,-40}z17
+{47,-40} .. {78,0}z18
+-- z19
+{0,-22} .. {-9,-6}z20
+{-7,-5} .. {-22,0}z21
+-- z22
+-- z23
+-- z24
+{-42,0} .. {0,34}z25
+-- z26
+{75,1} .. {49,42}z27
+{47,41} .. {0,58}z28
+);
+FuF (z29
+{-59,0} .. {0,49}z30
+{0,28} .. {15,11}z31
+{13,10} .. {32,0}z32
+);
+FuF (z33
+{0,-56} .. {-26,-30}z34
+{-23,-26} .. {-34,0}z35
+-- z36
+{45,-4} .. {19,-28}z37
+{20,-29} .. {0,-66}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(103,563FX#,443FY#,204FY#);
+"g";
+z1=(563FX,0FY);
+z2=(563FX,45FY);
+z3=(457FX,45FY);
+z4=(457FX,443FY);
+z5=(441FX,443FY);
+z6=(369FX,393FY);
+z7=(257FX,443FY);
+z8=(100FX,377FY);
+z9=(28FX,197FY);
+z10=(71FX,52FY);
+z11=(193FX,-13FY);
+z12=(277FX,8FY);
+z13=(328FX,45FY);
+z14=(328FX,-141FY);
+z15=(263FX,-187FY);
+z16=(263FX,-204FY);
+z17=(513FX,-204FY);
+z18=(513FX,-187FY);
+z19=(471FX,-179FY);
+z20=(457FX,-137FY);
+z21=(457FX,0FY);
+z22=(328FX,87FY);
+z23=(291FX,60FY);
+z24=(245FX,46FY);
+z25=(181FX,97FY);
+z26=(163FX,205FY);
+z27=(203FX,366FY);
+z28=(264FX,399FY);
+z29=(328FX,296FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-27,34} .. {-48,0}z7
+{-59,0} .. {-46,-44}z8
+{-48,-48} .. {0,-72}z9
+{0,-57} .. {29,-40}z10
+{31,-44} .. {51,0}z11
+{27,0} .. {29,14}z12
+{22,12} .. {12,13}z13
+-- z14
+{0,-31} .. {-43,0}z15
+-- z16
+-- z17
+-- z18
+{-21,0} .. {-7,5}z19
+{-10,7} .. {0,21}z20
+-- z21
+);
+FuF (z22
+{-7,-9} .. {-18,-9}z23
+{-19,-9} .. {-12,0}z24
+{-27,0} .. {-15,34}z25
+{-12,29} .. {0,43}z26
+{0,73} .. {27,34}z27
+{17,22} .. {23,0}z28
+{43,0} .. {0,-69}z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(104,519FX#,624FY#,0FY#);
+"h";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(468FX,28FY);
+z4=(458FX,61FY);
+z5=(458FX,307FY);
+z6=(415FX,418FY);
+z7=(340FX,443FY);
+z8=(191FX,375FY);
+z9=(191FX,624FY);
+z10=(16FX,624FY);
+z11=(16FX,607FY);
+z12=(52FX,600FY);
+z13=(62FX,554FY);
+z14=(62FX,61FY);
+z15=(53FX,26FY);
+z16=(18FX,17FY);
+z17=(18FX,0FY);
+z18=(237FX,0FY);
+z19=(237FX,17FY);
+z20=(201FX,26FY);
+z21=(191FX,61FY);
+z22=(191FX,325FY);
+z23=(283FX,384FY);
+z24=(329FX,316FY);
+z25=(329FX,61FY);
+z26=(287FX,17FY);
+z27=(287FX,0FY);
+FuF (z1
+-- z2
+{-18,0} .. {-6,7}z3
+{-7,6} .. {0,16}z4
+-- z5
+{0,50} .. {-29,24}z6
+{-21,17} .. {-29,0}z7
+{-61,0} .. {-39,-45}z8
+-- z9
+-- z10
+-- z11
+{19,0} .. {5,-5}z12
+{7,-7} .. {0,-24}z13
+-- z14
+{0,-17} .. {-6,-6}z15
+{-7,-6} .. {-17,0}z16
+-- z17
+-- z18
+-- z19
+{-18,0} .. {-6,6}z20
+{-7,6} .. {0,17}z21
+-- z22
+{25,39} .. {36,0}z23
+{30,0} .. {0,-46}z24
+-- z25
+{0,-29} .. {-28,0}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(105,519FX#,624FY#,204FY#);
+"i";
+z1=(504FX,0FY);
+z2=(504FX,17FY);
+z3=(458FX,58FY);
+z4=(458FX,293FY);
+z5=(341FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,624FY);
+z8=(16FX,624FY);
+z9=(16FX,607FY);
+z10=(53FX,595FY);
+z11=(62FX,553FY);
+z12=(62FX,-143FY);
+z13=(50FX,-182FY);
+z14=(16FX,-188FY);
+z15=(16FX,-204FY);
+z16=(234FX,-204FY);
+z17=(234FX,-188FY);
+z18=(216FX,-187FY);
+z19=(191FX,-143FY);
+z20=(191FX,325FY);
+z21=(285FX,384FY);
+z22=(329FX,314FY);
+z23=(329FX,58FY);
+z24=(320FX,26FY);
+z25=(286FX,17FY);
+z26=(286FX,0FY);
+FuF (z1
+-- z2
+{-31,0} .. {0,27}z3
+-- z4
+{0,100} .. {-78,0}z5
+{-67,0} .. {-33,-46}z6
+-- z7
+-- z8
+-- z9
+{18,0} .. {7,-8}z10
+{6,-8} .. {0,-20}z11
+-- z12
+{0,-21} .. {-8,-5}z13
+{-6,-4} .. {-17,0}z14
+-- z15
+-- z16
+-- z17
+{-8,0} .. {-4,1}z18
+{-17,3} .. {0,26}z19
+-- z20
+{26,39} .. {37,0}z21
+{29,0} .. {0,-47}z22
+-- z23
+{0,-16} .. {-6,-6}z24
+{-7,-6} .. {-16,0}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(106,460FX#,446FY#,204FY#);
+"j";
+z1=(449FX,288FY);
+z2=(400FX,393FY);
+z3=(264FX,447FY);
+z4=(100FX,373FY);
+z5=(21FX,221FY);
+z6=(62FX,121FY);
+z7=(138FX,79FY);
+z8=(179FX,28FY);
+z9=(159FX,-4FY);
+z10=(66FX,-78FY);
+z11=(13FX,-157FY);
+z12=(31FX,-191FY);
+z13=(75FX,-204FY);
+z14=(420FX,-204FY);
+z15=(420FX,-159FY);
+z16=(221FX,-159FY);
+z17=(136FX,-105FY);
+z18=(167FX,-50FY);
+z19=(289FX,50FY);
+z20=(401FX,151FY);
+z21=(449FX,288FY);
+z22=(327FX,256FY);
+z23=(328FX,241FY);
+z24=(216FX,44FY);
+z25=(234FX,104FY);
+z26=(197FX,182FY);
+z27=(144FX,222FY);
+z28=(115FX,288FY);
+z29=(170FX,379FY);
+z30=(215FX,391FY);
+z31=(290FX,354FY);
+z32=(327FX,256FY);
+FuF (z1
+{0,38} .. {-33,32}z2
+{-36,36} .. {-54,0}z3
+{-56,-1} .. {-53,-49}z4
+{-53,-49} .. {0,-52}z5
+{0,-43} .. {28,-23}z6
+{6,-6} .. {44,-23}z7
+{27,-14} .. {0,-20}z8
+{0,-11} .. {-14,-10}z9
+-- z10
+{-35,-28} .. {0,-25}z11
+{0,-14} .. {12,-8}z12
+{12,-9} .. {18,0}z13
+-- z14
+-- z15
+-- z16
+{-57,0} .. {0,36}z17
+{0,20} .. {21,16}z18
+-- z19
+{59,49} .. {16,19}z20
+{32,40} .. {-1,51}z21
+);
+FuF (z22
+{1,-5} .. {0,-5}z23
+{0,-70} .. {-75,-61}z24
+{12,19} .. {0,20}z25
+{0,37} .. {-25,15}z26
+{-25,16} .. {-10,11}z27
+{-19,19} .. {0,25}z28
+{0,39} .. {36,22}z29
+{14,8} .. {16,0}z30
+{29,0} .. {22,-24}z31
+{22,-25} .. {2,-40}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(107,519FX#,624FY#,204FY#);
+"k";
+z1=(505FX,-204FY);
+z2=(505FX,-187FY);
+z3=(468FX,-176FY);
+z4=(458FX,-134FY);
+z5=(458FX,360FY);
+z6=(467FX,403FY);
+z7=(505FX,414FY);
+z8=(505FX,431FY);
+z9=(287FX,431FY);
+z10=(287FX,414FY);
+z11=(320FX,402FY);
+z12=(329FX,360FY);
+z13=(329FX,106FY);
+z14=(237FX,47FY);
+z15=(191FX,117FY);
+z16=(191FX,558FY);
+z17=(199FX,598FY);
+z18=(233FX,607FY);
+z19=(233FX,624FY);
+z20=(16FX,624FY);
+z21=(16FX,607FY);
+z22=(53FX,597FY);
+z23=(62FX,558FY);
+z24=(62FX,124FY);
+z25=(93FX,24FY);
+z26=(177FX,-12FY);
+z27=(329FX,57FY);
+z28=(329FX,-134FY);
+z29=(318FX,-176FY);
+z30=(278FX,-187FY);
+z31=(278FX,-204FY);
+FuF (z1
+-- z2
+{-18,0} .. {-7,7}z3
+{-6,7} .. {0,20}z4
+-- z5
+{0,21} .. {6,7}z6
+{6,7} .. {20,0}z7
+-- z8
+-- z9
+-- z10
+{16,0} .. {7,-8}z11
+{6,-8} .. {0,-20}z12
+-- z13
+{-26,-39} .. {-35,0}z14
+{-31,0} .. {0,47}z15
+-- z16
+{0,20} .. {5,7}z17
+{5,6} .. {17,0}z18
+-- z19
+-- z20
+-- z21
+{18,0} .. {7,-7}z22
+{6,-7} .. {0,-19}z23
+-- z24
+{0,-43} .. {20,-24}z25
+{21,-24} .. {35,0}z26
+{59,0} .. {43,46}z27
+-- z28
+{0,-20} .. {-7,-8}z29
+{-7,-7} .. {-20,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(108,296FX#,431FY#,204FY#);
+"l";
+z1=(297FX,-204FY);
+z2=(297FX,-159FY);
+z3=(228FX,-159FY);
+z4=(191FX,-111FY);
+z5=(191FX,355FY);
+z6=(199FX,400FY);
+z7=(238FX,414FY);
+z8=(238FX,431FY);
+z9=(15FX,431FY);
+z10=(15FX,414FY);
+z11=(51FX,402FY);
+z12=(62FX,355FY);
+z13=(62FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-24,0} .. {0,32}z4
+-- z5
+{0,22} .. {5,8}z6
+{6,9} .. {20,0}z7
+-- z8
+-- z9
+-- z10
+{17,0} .. {7,-8}z11
+{8,-9} .. {0,-22}z12
+-- z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(109,544FX#,637FY#,12FY#);
+"m";
+z1=(546FX,558FY);
+z2=(515FX,614FY);
+z3=(431FX,637FY);
+z4=(325FX,606FY);
+z5=(280FX,512FY);
+z6=(304FX,431FY);
+z7=(329FX,338FY);
+z8=(329FX,108FY);
+z9=(293FX,68FY);
+z10=(236FX,47FY);
+z11=(191FX,117FY);
+z12=(191FX,431FY);
+z13=(16FX,431FY);
+z14=(16FX,414FY);
+z15=(53FX,403FY);
+z16=(62FX,360FY);
+z17=(62FX,124FY);
+z18=(92FX,27FY);
+z19=(177FX,-12FY);
+z20=(329FX,57FY);
+z21=(329FX,0FY);
+z22=(504FX,0FY);
+z23=(504FX,18FY);
+z24=(469FX,26FY);
+z25=(458FX,62FY);
+z26=(458FX,336FY);
+z27=(427FX,416FY);
+z28=(369FX,471FY);
+z29=(338FX,529FY);
+z30=(355FX,576FY);
+z31=(397FX,594FY);
+z32=(434FX,554FY);
+z33=(460FX,507FY);
+z34=(494FX,499FY);
+z35=(531FX,515FY);
+z36=(546FX,558FY);
+FuF (z1
+{-1,23} .. {-20,14}z2
+{-21,16} .. {-35,0}z3
+{-43,0} .. {-28,-21}z4
+{-30,-23} .. {0,-39}z5
+{0,-24} .. {16,-30}z6
+{17,-30} .. {0,-32}z7
+-- z8
+{-7,-15} .. {-17,-12}z9
+{-19,-14} .. {-19,0}z10
+{-30,0} .. {0,47}z11
+-- z12
+-- z13
+-- z14
+{19,0} .. {5,-7}z15
+{6,-8} .. {0,-21}z16
+-- z17
+{0,-40} .. {20,-25}z18
+{21,-26} .. {35,0}z19
+{66,0} .. {35,46}z20
+-- z21
+-- z22
+-- z23
+{-17,0} .. {-7,5}z24
+{-7,7} .. {0,17}z25
+-- z26
+{0,29} .. {-20,24}z27
+{-19,18} .. {-19,18}z28
+{-20,20} .. {0,18}z29
+{0,20} .. {11,11}z30
+{12,12} .. {16,0}z31
+{17,0} .. {8,-27}z32
+{8,-24} .. {10,-8}z33
+{7,-5} .. {16,0}z34
+{15,0} .. {9,11}z35
+{10,11} .. {0,18}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(110,519FX#,635FY#,12FY#);
+"n";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(472FX,23FY);
+z4=(458FX,67FY);
+z5=(458FX,431FY);
+z6=(277FX,431FY);
+z7=(278FX,414FY);
+z8=(321FX,399FY);
+z9=(329FX,355FY);
+z10=(329FX,106FY);
+z11=(233FX,47FY);
+z12=(192FX,116FY);
+z13=(192FX,409FY);
+z14=(227FX,469FY);
+z15=(227FX,474FY);
+z16=(227FX,481FY);
+z17=(136FX,545FY);
+z18=(210FX,590FY);
+z19=(313FX,590FY);
+z20=(313FX,636FY);
+z21=(191FX,636FY);
+z22=(70FX,610FY);
+z23=(30FX,543FY);
+z24=(100FX,465FY);
+z25=(68FX,417FY);
+z26=(62FX,356FY);
+z27=(62FX,128FY);
+z28=(177FX,-12FY);
+z29=(329FX,57FY);
+z30=(329FX,0FY);
+FuF (z1
+-- z2
+{-15,0} .. {-6,3}z3
+{-10,5} .. {0,24}z4
+-- z5
+-- z6
+-- z7
+{22,0} .. {7,-10}z8
+{5,-7} .. {0,-22}z9
+-- z10
+{-26,-39} .. {-38,0}z11
+{-28,0} .. {0,46}z12
+-- z13
+{0,39} .. {24,1}z14
+{0,1} .. {0,2}z15
+{0,3} .. {0,2}z16
+{-61,1} .. {0,41}z17
+{0,30} .. {50,0}z18
+-- z19
+-- z20
+-- z21
+{-53,0} .. {-28,-17}z22
+{-27,-17} .. {0,-28}z23
+{0,-42} .. {46,-11}z24
+{-17,-16} .. {-5,-17}z25
+{-4,-12} .. {0,-28}z26
+-- z27
+{0,-93} .. {76,0}z28
+{59,0} .. {43,46}z29
+-- z30
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(111,519FX#,443FY#,0FY#);
+"o";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(471FX,25FY);
+z4=(458FX,62FY);
+z5=(458FX,293FY);
+z6=(343FX,443FY);
+z7=(191FX,374FY);
+z8=(191FX,431FY);
+z9=(16FX,431FY);
+z10=(16FX,414FY);
+z11=(52FX,404FY);
+z12=(62FX,364FY);
+z13=(62FX,62FY);
+z14=(52FX,26FY);
+z15=(16FX,17FY);
+z16=(16FX,0FY);
+z17=(234FX,0FY);
+z18=(234FX,17FY);
+z19=(203FX,24FY);
+z20=(191FX,62FY);
+z21=(191FX,325FY);
+z22=(228FX,365FY);
+z23=(285FX,384FY);
+z24=(329FX,309FY);
+z25=(329FX,62FY);
+z26=(320FX,26FY);
+z27=(286FX,17FY);
+z28=(286FX,0FY);
+FuF (z1
+-- z2
+{-16,0} .. {-6,5}z3
+{-9,6} .. {0,18}z4
+-- z5
+{0,100} .. {-77,0}z6
+{-64,0} .. {-37,-46}z7
+-- z8
+-- z9
+-- z10
+{18,0} .. {6,-7}z11
+{7,-8} .. {0,-19}z12
+-- z13
+{0,-18} .. {-7,-6}z14
+{-6,-6} .. {-18,0}z15
+-- z16
+-- z17
+-- z18
+{-15,0} .. {-6,5}z19
+{-8,6} .. {0,19}z20
+-- z21
+{8,14} .. {17,12}z22
+{20,14} .. {18,-1}z23
+{29,-1} .. {0,-49}z24
+-- z25
+{0,-17} .. {-6,-7}z26
+{-6,-6} .. {-17,0}z27
+-- z28
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(112,759FX#,431FY#,204FY#);
+"p";
+z1=(738FX,-204FY);
+z2=(738FX,-188FY);
+z3=(698FX,-147FY);
+z4=(698FX,431FY);
+z5=(520FX,431FY);
+z6=(520FX,414FY);
+z7=(558FX,402FY);
+z8=(569FX,360FY);
+z9=(569FX,105FY);
+z10=(486FX,47FY);
+z11=(444FX,124FY);
+z12=(444FX,431FY);
+z13=(266FX,431FY);
+z14=(266FX,414FY);
+z15=(303FX,406FY);
+z16=(315FX,360FY);
+z17=(315FX,105FY);
+z18=(234FX,48FY);
+z19=(191FX,124FY);
+z20=(191FX,431FY);
+z21=(16FX,431FY);
+z22=(16FX,414FY);
+z23=(54FX,402FY);
+z24=(62FX,360FY);
+z25=(62FX,128FY);
+z26=(181FX,-12FY);
+z27=(322FX,66FY);
+z28=(435FX,-12FY);
+z29=(514FX,7FY);
+z30=(569FX,58FY);
+z31=(569FX,-147FY);
+z32=(557FX,-181FY);
+z33=(520FX,-188FY);
+z34=(520FX,-204FY);
+FuF (z1
+-- z2
+{-27,0} .. {0,27}z3
+-- z4
+-- z5
+-- z6
+{19,0} .. {7,-8}z7
+{7,-8} .. {0,-20}z8
+-- z9
+{-28,-39} .. {-28,0}z10
+{-28,0} .. {0,51}z11
+-- z12
+-- z13
+-- z14
+{19,0} .. {6,-5}z15
+{8,-8} .. {0,-23}z16
+-- z17
+{-27,-38} .. {-27,0}z18
+{-29,0} .. {0,51}z19
+-- z20
+-- z21
+-- z22
+{19,0} .. {6,-8}z23
+{6,-7} .. {0,-21}z24
+-- z25
+{0,-94} .. {79,0}z26
+{61,0} .. {33,52}z27
+{14,-52} .. {62,0}z28
+{26,0} .. {27,13}z29
+{28,14} .. {9,20}z30
+-- z31
+{0,-17} .. {-8,-6}z32
+{-6,-5} .. {-19,0}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(113,559FX#,440FY#,204FY#);
+"q";
+z1=(512FX,214FY);
+z2=(459FX,387FY);
+z3=(337FX,440FY);
+z4=(217FX,380FY);
+z5=(217FX,431FY);
+z6=(37FX,431FY);
+z7=(37FX,413FY);
+z8=(78FX,397FY);
+z9=(88FX,338FY);
+z10=(88FX,-60FY);
+z11=(0FX,-60FY);
+z12=(0FX,-106FY);
+z13=(88FX,-106FY);
+z14=(88FX,-139FY);
+z15=(79FX,-178FY);
+z16=(37FX,-188FY);
+z17=(37FX,-204FY);
+z18=(282FX,-204FY);
+z19=(282FX,-188FY);
+z20=(234FX,-181FY);
+z21=(217FX,-138FY);
+z22=(217FX,-105FY);
+z23=(511FX,-105FY);
+z24=(511FX,-60FY);
+z25=(216FX,-60FY);
+z26=(216FX,61FY);
+z27=(333FX,5FY);
+z28=(473FX,81FY);
+z29=(512FX,214FY);
+z30=(376FX,204FY);
+z31=(302FX,57FY);
+z32=(217FX,113FY);
+z33=(217FX,326FY);
+z34=(295FX,385FY);
+z35=(376FX,204FY);
+FuF (z1
+{0,75} .. {-35,41}z2
+{-32,36} .. {-50,-1}z3
+{-57,0} .. {-23,-40}z4
+-- z5
+-- z6
+-- z7
+{21,-1} .. {7,-10}z8
+{7,-9} .. {0,-30}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{0,-19} .. {-6,-7}z15
+{-7,-7} .. {-21,0}z16
+-- z17
+-- z18
+-- z19
+{-23,0} .. {-9,4}z20
+{-11,7} .. {0,22}z21
+-- z22
+-- z23
+-- z24
+-- z25
+-- z26
+{34,-38} .. {44,0}z27
+{61,0} .. {32,51}z28
+{26,40} .. {0,49}z29
+);
+FuF (z30
+{0,-98} .. {-50,0}z31
+{-30,0} .. {-27,37}z32
+-- z33
+{16,40} .. {36,-1}z34
+{54,-1} .. {0,-120}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(114,519FX#,443FY#,204FY#);
+"r";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(458FX,58FY);
+z4=(458FX,289FY);
+z5=(344FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,431FY);
+z8=(16FX,431FY);
+z9=(16FX,413FY);
+z10=(53FX,401FY);
+z11=(62FX,360FY);
+z12=(62FX,-134FY);
+z13=(54FX,-177FY);
+z14=(16FX,-187FY);
+z15=(16FX,-204FY);
+z16=(234FX,-204FY);
+z17=(234FX,-187FY);
+z18=(198FX,-173FY);
+z19=(191FX,-134FY);
+z20=(191FX,325FY);
+z21=(284FX,384FY);
+z22=(329FX,314FY);
+z23=(329FX,58FY);
+z24=(286FX,17FY);
+z25=(286FX,0FY);
+FuF (z1
+-- z2
+{-31,0} .. {0,27}z3
+-- z4
+{0,103} .. {-76,0}z5
+{-68,0} .. {-34,-46}z6
+-- z7
+-- z8
+-- z9
+{18,0} .. {6,-8}z10
+{6,-7} .. {0,-20}z11
+-- z12
+{0,-22} .. {-5,-7}z13
+{-6,-7} .. {-19,0}z14
+-- z15
+-- z16
+-- z17
+{-18,0} .. {-5,9}z18
+{-5,7} .. {0,19}z19
+-- z20
+{26,39} .. {36,0}z21
+{30,0} .. {0,-47}z22
+-- z23
+{0,-27} .. {-29,0}z24
+-- z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(115,519FX#,431FY#,12FY#);
+"s";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(468FX,27FY);
+z4=(458FX,62FY);
+z5=(458FX,431FY);
+z6=(279FX,431FY);
+z7=(279FX,414FY);
+z8=(329FX,369FY);
+z9=(329FX,106FY);
+z10=(234FX,47FY);
+z11=(191FX,122FY);
+z12=(191FX,431FY);
+z13=(16FX,431FY);
+z14=(16FX,414FY);
+z15=(52FX,405FY);
+z16=(62FX,369FY);
+z17=(62FX,133FY);
+z18=(94FX,23FY);
+z19=(176FX,-12FY);
+z20=(329FX,56FY);
+z21=(329FX,0FY);
+FuF (z1
+-- z2
+{-18,0} .. {-6,6}z3
+{-7,7} .. {0,17}z4
+-- z5
+-- z6
+-- z7
+{33,0} .. {0,-30}z8
+-- z9
+{-26,-39} .. {-37,0}z10
+{-28,0} .. {0,50}z11
+-- z12
+-- z13
+-- z14
+{17,0} .. {7,-6}z15
+{7,-7} .. {0,-17}z16
+-- z17
+{0,-48} .. {21,-25}z18
+{21,-24} .. {34,0}z19
+{67,0} .. {35,46}z20
+-- z21
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(116,759FX#,443FY#,204FY#);
+"t";
+z1=(744FX,0FY);
+z2=(744FX,18FY);
+z3=(716FX,23FY);
+z4=(698FX,81FY);
+z5=(698FX,309FY);
+z6=(577FX,443FY);
+z7=(444FX,374FY);
+z8=(444FX,431FY);
+z9=(266FX,431FY);
+z10=(266FX,414FY);
+z11=(306FX,402FY);
+z12=(315FX,357FY);
+z13=(315FX,107FY);
+z14=(287FX,73FY);
+z15=(237FX,48FY);
+z16=(191FX,114FY);
+z17=(191FX,431FY);
+z18=(16FX,431FY);
+z19=(16FX,414FY);
+z20=(54FX,402FY);
+z21=(62FX,359FY);
+z22=(62FX,135FY);
+z23=(181FX,-12FY);
+z24=(316FX,58FY);
+z25=(316FX,-142FY);
+z26=(302FX,-184FY);
+z27=(258FX,-191FY);
+z28=(258FX,-204FY);
+z29=(508FX,-204FY);
+z30=(508FX,-190FY);
+z31=(444FX,-142FY);
+z32=(444FX,323FY);
+z33=(472FX,358FY);
+z34=(521FX,383FY);
+z35=(559FX,369FY);
+z36=(569FX,317FY);
+z37=(569FX,0FY);
+FuF (z1
+-- z2
+{-13,0} .. {-6,3}z3
+{-12,6} .. {0,32}z4
+-- z5
+{0,90} .. {-80,0}z6
+{-47,0} .. {-41,-46}z7
+-- z8
+-- z9
+-- z10
+{20,0} .. {6,-8}z11
+{6,-7} .. {0,-23}z12
+-- z13
+{-1,-7} .. {-18,-15}z14
+{-19,-17} .. {-14,0}z15
+{-31,0} .. {0,44}z16
+-- z17
+-- z18
+-- z19
+{19,0} .. {6,-8}z20
+{6,-7} .. {0,-22}z21
+-- z22
+{0,-98} .. {79,0}z23
+{52,0} .. {38,47}z24
+-- z25
+{0,-22} .. {-9,-6}z26
+{-7,-5} .. {-22,0}z27
+-- z28
+-- z29
+-- z30
+{-43,1} .. {0,31}z31
+-- z32
+{2,9} .. {17,15}z33
+{18,16} .. {14,0}z34
+{18,0} .. {7,-9}z35
+{6,-10} .. {0,-25}z36
+-- z37
+);
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(117,822FX#,443FY#,0FY#);
+"u";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(471FX,25FY);
+z4=(458FX,62FY);
+z5=(458FX,293FY);
+z6=(343FX,443FY);
+z7=(191FX,374FY);
+z8=(191FX,431FY);
+z9=(16FX,431FY);
+z10=(16FX,414FY);
+z11=(52FX,404FY);
+z12=(62FX,364FY);
+z13=(62FX,62FY);
+z14=(52FX,26FY);
+z15=(16FX,17FY);
+z16=(16FX,0FY);
+z17=(234FX,0FY);
+z18=(234FX,17FY);
+z19=(203FX,24FY);
+z20=(191FX,62FY);
+z21=(191FX,325FY);
+z22=(228FX,365FY);
+z23=(285FX,384FY);
+z24=(329FX,309FY);
+z25=(329FX,62FY);
+z26=(320FX,26FY);
+z27=(286FX,17FY);
+z28=(286FX,0FY);
+z29=(816FX,0FY);
+z30=(816FX,45FY);
+z31=(739FX,45FY);
+z32=(711FX,72FY);
+z33=(711FX,431FY);
+z34=(532FX,431FY);
+z35=(532FX,414FY);
+z36=(582FX,374FY);
+z37=(582FX,0FY);
+FuF (z1
+-- z2
+{-16,0} .. {-6,5}z3
+{-9,6} .. {0,18}z4
+-- z5
+{0,100} .. {-77,0}z6
+{-64,0} .. {-37,-46}z7
+-- z8
+-- z9
+-- z10
+{18,0} .. {6,-7}z11
+{7,-8} .. {0,-19}z12
+-- z13
+{0,-18} .. {-7,-6}z14
+{-6,-6} .. {-18,0}z15
+-- z16
+-- z17
+-- z18
+{-15,0} .. {-6,5}z19
+{-8,6} .. {0,19}z20
+-- z21
+{8,14} .. {17,12}z22
+{20,14} .. {18,-1}z23
+{29,-1} .. {0,-49}z24
+-- z25
+{0,-17} .. {-6,-7}z26
+{-6,-6} .. {-17,0}z27
+-- z28
+);
+FuF (z29
+-- z30
+-- z31
+{-19,0} .. {0,18}z32
+-- z33
+-- z34
+-- z35
+{33,0} .. {0,-27}z36
+-- z37
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(118,563FX#,624FY#,204FY#);
+"v";
+z1=(563FX,-204FY);
+z2=(563FX,-159FY);
+z3=(500FX,-159FY);
+z4=(465FX,-149FY);
+z5=(458FX,-117FY);
+z6=(458FX,553FY);
+z7=(468FX,599FY);
+z8=(504FX,607FY);
+z9=(504FX,624FY);
+z10=(286FX,624FY);
+z11=(286FX,607FY);
+z12=(304FX,607FY);
+z13=(329FX,553FY);
+z14=(329FX,106FY);
+z15=(236FX,48FY);
+z16=(191FX,117FY);
+z17=(191FX,431FY);
+z18=(16FX,431FY);
+z19=(16FX,414FY);
+z20=(51FX,406FY);
+z21=(62FX,360FY);
+z22=(62FX,124FY);
+z23=(92FX,26FY);
+z24=(177FX,-12FY);
+z25=(329FX,56FY);
+z26=(329FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-18,0} .. {-5,7}z4
+{-5,6} .. {0,16}z5
+-- z6
+{0,24} .. {6,7}z7
+{6,6} .. {18,0}z8
+-- z9
+-- z10
+-- z11
+{8,0} .. {4,0}z12
+{17,-3} .. {0,-33}z13
+-- z14
+{-26,-39} .. {-36,0}z15
+{-30,0} .. {0,46}z16
+-- z17
+-- z18
+-- z19
+{17,0} .. {6,-5}z20
+{7,-7} .. {0,-23}z21
+-- z22
+{0,-40} .. {20,-25}z23
+{21,-26} .. {36,0}z24
+{60,0} .. {42,46}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(119,302FX#,431FY#,0FY#);
+"w";
+z1=(296FX,0FY);
+z2=(296FX,45FY);
+z3=(219FX,45FY);
+z4=(191FX,72FY);
+z5=(191FX,431FY);
+z6=(12FX,431FY);
+z7=(12FX,414FY);
+z8=(62FX,374FY);
+z9=(62FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-19,0} .. {0,18}z4
+-- z5
+-- z6
+-- z7
+{33,0} .. {0,-27}z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(120,779FX#,624FY#,204FY#);
+"x";
+z1=(759FX,414FY);
+z2=(759FX,431FY);
+z3=(537FX,431FY);
+z4=(537FX,414FY);
+z5=(563FX,411FY);
+z6=(583FX,360FY);
+z7=(583FX,105FY);
+z8=(501FX,47FY);
+z9=(459FX,66FY);
+z10=(444FX,115FY);
+z11=(453FX,315FY);
+z12=(333FX,445FY);
+z13=(191FX,374FY);
+z14=(191FX,549FY);
+z15=(198FX,591FY);
+z16=(238FX,607FY);
+z17=(238FX,624FY);
+z18=(16FX,624FY);
+z19=(16FX,607FY);
+z20=(54FX,592FY);
+z21=(62FX,549FY);
+z22=(62FX,-142FY);
+z23=(56FX,-177FY);
+z24=(15FX,-191FY);
+z25=(15FX,-204FY);
+z26=(240FX,-204FY);
+z27=(240FX,-191FY);
+z28=(201FX,-181FY);
+z29=(191FX,-142FY);
+z30=(191FX,328FY);
+z31=(274FX,380FY);
+z32=(315FX,368FY);
+z33=(325FX,315FY);
+z34=(316FX,110FY);
+z35=(351FX,21FY);
+z36=(441FX,-12FY);
+z37=(583FX,58FY);
+z38=(583FX,0FY);
+z39=(758FX,0FY);
+z40=(758FX,18FY);
+z41=(712FX,62FY);
+z42=(712FX,360FY);
+z43=(723FX,406FY);
+z44=(759FX,414FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{12,0} .. {6,-2}z5
+{13,-4} .. {0,-30}z6
+-- z7
+{-31,-39} .. {-23,0}z8
+{-17,0} .. {-11,13}z9
+{-11,12} .. {0,20}z10
+-- z11
+{3,87} .. {-83,0}z12
+{-50,0} .. {-45,-48}z13
+-- z14
+{0,20} .. {5,8}z15
+{7,10} .. {20,0}z16
+-- z17
+-- z18
+-- z19
+{19,0} .. {6,-10}z20
+{6,-8} .. {0,-20}z21
+-- z22
+{0,-17} .. {-4,-7}z23
+{-5,-9} .. {-22,0}z24
+-- z25
+-- z26
+-- z27
+{-19,0} .. {-7,6}z28
+{-6,7} .. {0,19}z29
+-- z30
+{30,35} .. {26,0}z31
+{20,0} .. {7,-8}z32
+{7,-9} .. {-1,-26}z33
+-- z34
+{-2,-36} .. {25,-23}z35
+{24,-23} .. {36,1}z36
+{51,0} .. {44,46}z37
+-- z38
+-- z39
+-- z40
+{-31,0} .. {0,29}z41
+-- z42
+{0,23} .. {8,7}z43
+{6,5} .. {18,0}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(121,314FX#,431FY#,203FY#);
+"y";
+z1=(228FX,-15FY);
+z2=(228FX,431FY);
+z3=(49FX,431FY);
+z4=(49FX,413FY);
+z5=(100FX,359FY);
+z6=(100FX,70FY);
+z7=(125FX,-52FY);
+z8=(149FX,-106FY);
+z9=(135FX,-146FY);
+z10=(93FX,-163FY);
+z11=(58FX,-116FY);
+z12=(48FX,-87FY);
+z13=(21FX,-75FY);
+z14=(-13FX,-90FY);
+z15=(-26FX,-124FY);
+z16=(1FX,-181FY);
+z17=(84FX,-204FY);
+z18=(203FX,-155FY);
+z19=(228FX,-15FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{34,0} .. {0,-36}z5
+-- z6
+{0,-65} .. {17,-16}z7
+{16,-15} .. {0,-21}z8
+{0,-16} .. {-10,-11}z9
+{-10,-11} .. {-18,0}z10
+{-23,0} .. {0,31}z11
+{0,11} .. {-7,8}z12
+{-8,8} .. {-10,0}z13
+{-13,0} .. {-10,-10}z14
+{-9,-11} .. {0,-12}z15
+{0,-23} .. {18,-15}z16
+{20,-15} .. {35,0}z17
+{58,0} .. {21,32}z18
+{17,26} .. {0,67}z19
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(122,559FX#,443FY#,204FY#);
+"z";
+z1=(562FX,-204FY);
+z2=(562FX,-159FY);
+z3=(502FX,-159FY);
+z4=(467FX,-149FY);
+z5=(457FX,-115FY);
+z6=(457FX,443FY);
+z7=(441FX,443FY);
+z8=(369FX,393FY);
+z9=(255FX,443FY);
+z10=(91FX,376FY);
+z11=(29FX,197FY);
+z12=(78FX,41FY);
+z13=(208FX,-18FY);
+z14=(328FX,45FY);
+z15=(328FX,-204FY);
+z16=(328FX,87FY);
+z17=(257FX,41FY);
+z18=(186FX,80FY);
+z19=(164FX,205FY);
+z20=(206FX,375FY);
+z21=(263FX,404FY);
+z22=(306FX,386FY);
+z23=(328FX,333FY);
+FuF (z1
+-- z2
+-- z3
+{-17,0} .. {-6,7}z4
+{-6,6} .. {0,16}z5
+-- z6
+-- z7
+-- z8
+{-26,34} .. {-50,0}z9
+{-68,0} .. {-41,-45}z10
+{-41,-46} .. {0,-74}z11
+{0,-65} .. {32,-39}z12
+{32,-39} .. {54,0}z13
+{43,0} .. {37,42}z14
+-- z15
+);
+FuF (z16
+{-28,-31} .. {-19,0}z17
+{-33,0} .. {-14,26}z18
+{-14,25} .. {0,58}z19
+{0,81} .. {28,33}z20
+{16,19} .. {22,0}z21
+{16,0} .. {12,-12}z22
+{15,-13} .. {0,-22}z23
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(123,449FX#,266FY#,0FY#);
+"hyphen";
+z1=(-9FX,188FY);
+z2=(459FX,188FY);
+z3=(459FX,266FY);
+z4=(-9FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,128FX#,691FY#,0FY#);
+"shesht";
+z1=(129FX,632FY);
+z2=(131FX,661FY);
+z3=(88FX,692FY);
+z4=(71FX,689FY);
+z5=(42FX,663FY);
+z6=(-66FX,475FY);
+z7=(-30FX,458FY);
+z8=(116FX,609FY);
+z9=(129FX,632FY);
+FuF (z1
+{4,9} .. {-3,10}z2
+{-5,21} .. {-23,0}z3
+-- z4
+{-13,-6} .. {-7,-11}z5
+-- z6
+-- z7
+-- z8
+{7,7} .. {2,8}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(125,999FX#,266FY#,0FY#);
+"emdash";
+z1=(0FX,188FY);
+z2=(1000FX,188FY);
+z3=(1000FX,266FY);
+z4=(0FX,266FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,314FX#,638FY#,12FY#);
+"exclam";
+z1=(234FX,561FY);
+z2=(212FX,617FY);
+z3=(157FX,639FY);
+z4=(101FX,617FY);
+z5=(81FX,560FY);
+z6=(102FX,431FY);
+z7=(126FX,330FY);
+z8=(147FX,203FY);
+z9=(168FX,203FY);
+z10=(187FX,330FY);
+z11=(211FX,431FY);
+z12=(234FX,561FY);
+z13=(233FX,62FY);
+z14=(211FX,115FY);
+z15=(158FX,137FY);
+z16=(105FX,115FY);
+z17=(83FX,62FY);
+z18=(105FX,9FY);
+z19=(158FX,-12FY);
+z20=(210FX,10FY);
+z21=(233FX,62FY);
+FuF (z1
+{0,23} .. {-15,15}z2
+{-15,15} .. {-22,0}z3
+{-24,-1} .. {-14,-14}z4
+{-14,-14} .. {0,-24}z5
+{0,-26} .. {14,-60}z6
+-- z7
+{14,-59} .. {0,-26}z8
+-- z9
+{6,59} .. {7,26}z10
+-- z11
+{15,63} .. {0,24}z12
+);
+FuF (z13
+{0,21} .. {-14,15}z14
+{-15,15} .. {-21,0}z15
+{-21,0} .. {-14,-15}z16
+{-15,-14} .. {0,-21}z17
+{1,-21} .. {14,-15}z18
+{15,-14} .. {21,0}z19
+{20,0} .. {14,15}z20
+{15,14} .. {0,20}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(3,659FX#,637FY#,15FY#);
+"Dz";
+z1=(607FX,77FY);
+z2=(584FX,97FY);
+z3=(512FX,53FY);
+z4=(460FX,68FY);
+z5=(412FX,110FY);
+z6=(498FX,184FY);
+z7=(607FX,402FY);
+z8=(531FX,581FY);
+z9=(341FX,637FY);
+z10=(132FX,571FY);
+z11=(61FX,424FY);
+z12=(64FX,392FY);
+z13=(214FX,392FY);
+z14=(211FX,438FY);
+z15=(240FX,555FY);
+z16=(342FX,607FY);
+z17=(442FX,530FY);
+z18=(466FX,396FY);
+z19=(432FX,233FY);
+z20=(365FX,147FY);
+z21=(273FX,198FY);
+z22=(197FX,208FY);
+z23=(105FX,175FY);
+z24=(63FX,89FY);
+z25=(98FX,13FY);
+z26=(178FX,-15FY);
+z27=(263FX,2FY);
+z28=(309FX,29FY);
+z29=(386FX,-8FY);
+z30=(456FX,-12FY);
+z31=(607FX,77FY);
+z32=(267FX,58FY);
+z33=(225FX,32FY);
+z34=(180FX,24FY);
+z35=(118FX,74FY);
+z36=(169FX,107FY);
+z37=(267FX,58FY);
+FuF (z1
+-- z2
+{-22,-30} .. {-26,0}z3
+{-17,0} .. {-18,10}z4
+{-17,9} .. {-15,19}z5
+{31,20} .. {27,29}z6
+{72,77} .. {0,69}z7
+{0,78} .. {-51,41}z8
+{-46,38} .. {-81,0}z9
+{-88,0} .. {-51,-44}z10
+{-47,-40} .. {0,-57}z11
+{0,-12} .. {2,-10}z12
+-- z13
+{-2,17} .. {0,14}z14
+{0,48} .. {19,30}z15
+{23,35} .. {45,-1}z16
+{45,0} .. {22,-51}z17
+{16,-38} .. {0,-52}z18
+{0,-60} .. {-23,-48}z19
+{-19,-37} .. {-26,-20}z20
+{-32,25} .. {-29,9}z21
+{-22,7} .. {-29,0}z22
+{-35,-1} .. {-26,-22}z23
+{-28,-23} .. {0,-34}z24
+{0,-31} .. {23,-20}z25
+{22,-19} .. {31,0}z26
+{33,0} .. {23,11}z27
+{10,5} .. {21,13}z28
+{27,-20} .. {24,-5}z29
+{15,-3} .. {32,1}z30
+{65,0} .. {35,59}z31
+);
+FuF (z32
+{-18,-13} .. {-10,-4}z33
+{-13,-5} .. {-17,0}z34
+{-42,1} .. {1,33}z35
+{0,23} .. {34,-1}z36
+{31,0} .. {34,-32}z37
+);
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(4,692FX#,637FY#,66FY#);
+"Gh";
+z1=(705FX,-67FY);
+z2=(705FX,-35FY);
+z3=(663FX,19FY);
+z4=(598FX,35FY);
+z5=(519FX,35FY);
+z6=(519FX,366FY);
+z7=(462FX,561FY);
+z8=(277FX,637FY);
+z9=(95FX,560FY);
+z10=(37FX,366FY);
+z11=(37FX,315FY);
+z12=(180FX,315FY);
+z13=(180FX,402FY);
+z14=(192FX,530FY);
+z15=(278FX,606FY);
+z16=(360FX,552FY);
+z17=(376FX,405FY);
+z18=(376FX,0FY);
+z19=(490FX,0FY);
+z20=(543FX,-44FY);
+z21=(543FX,-67FY);
+FuF (z1
+-- z2
+{0,22} .. {-28,14}z3
+{-22,11} .. {-22,0}z4
+-- z5
+-- z6
+{0,84} .. {-38,46}z7
+{-42,51} .. {-82,0}z8
+{-79,0} .. {-43,-51}z9
+{-39,-48} .. {0,-81}z10
+-- z11
+-- z12
+-- z13
+{0,58} .. {8,28}z14
+{14,50} .. {43,0}z15
+{41,0} .. {14,-36}z16
+{11,-28} .. {0,-70}z17
+-- z18
+-- z19
+{35,0} .. {0,-29}z20
+-- z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(5,622FX#,633FY#,0FY#);
+"Chmute";
+z1=(565FX,0FY);
+z2=(565FX,118FY);
+z3=(384FX,438FY);
+z4=(260FX,503FY);
+z5=(350FX,575FY);
+z6=(376FX,551FY);
+z7=(376FX,525FY);
+z8=(541FX,525FY);
+z9=(541FX,560FY);
+z10=(497FX,618FY);
+z11=(421FX,634FY);
+z12=(215FX,522FY);
+z13=(173FX,537FY);
+z14=(126FX,549FY);
+z15=(106FX,515FY);
+z16=(149FX,503FY);
+z17=(192FX,490FY);
+z18=(90FX,313FY);
+z19=(57FX,111FY);
+z20=(57FX,0FY);
+z21=(421FX,40FY);
+z22=(200FX,40FY);
+z23=(200FX,159FY);
+z24=(203FX,289FY);
+z25=(242FX,470FY);
+z26=(421FX,166FY);
+FuF (z1
+-- z2
+{0,126} .. {-121,88}z3
+{-42,30} .. {-41,14}z4
+{40,48} .. {21,0}z5
+{18,0} .. {0,-16}z6
+-- z7
+-- z8
+-- z9
+{0,25} .. {-29,13}z10
+{-22,11} .. {-28,0}z11
+{-65,0} .. {-72,-74}z12
+{-10,5} .. {-18,5}z13
+{-21,5} .. {-10,3}z14
+-- z15
+{10,-3} .. {19,-5}z16
+{19,-5} .. {10,-4}z17
+{-44,-46} .. {-24,-72}z18
+{-22,-66} .. {0,-69}z19
+-- z20
+);
+FuF (z21
+-- z22
+-- z23
+{0,48} .. {2,38}z24
+{4,88} .. {22,33}z25
+{120,-61} .. {0,-142}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(6,561FX#,624FY#,65FY#);
+"Esimple";
+z1=(541FX,315FY);
+z2=(541FX,356FY);
+z3=(492FX,414FY);
+z4=(406FX,431FY);
+z5=(250FX,431FY);
+z6=(250FX,523FY);
+z7=(267FX,590FY);
+z8=(336FX,607FY);
+z9=(336FX,624FY);
+z10=(22FX,624FY);
+z11=(22FX,607FY);
+z12=(90FX,590FY);
+z13=(106FX,523FY);
+z14=(106FX,104FY);
+z15=(88FX,36FY);
+z16=(22FX,18FY);
+z17=(22FX,0FY);
+z18=(278FX,0FY);
+z19=(331FX,-43FY);
+z20=(331FX,-66FY);
+z21=(491FX,-66FY);
+z22=(491FX,-34FY);
+z23=(356FX,41FY);
+z24=(250FX,41FY);
+z25=(250FX,390FY);
+z26=(327FX,390FY);
+z27=(380FX,346FY);
+z28=(380FX,315FY);
+FuF (z1
+-- z2
+{0,24} .. {-32,14}z3
+{-26,11} .. {-31,0}z4
+-- z5
+-- z6
+{0,34} .. {11,11}z7
+{11,11} .. {35,0}z8
+-- z9
+-- z10
+-- z11
+{35,-1} .. {10,-11}z12
+{11,-10} .. {0,-34}z13
+-- z14
+{0,-33} .. {-12,-12}z15
+{-12,-12} .. {-32,0}z16
+-- z17
+-- z18
+{35,0} .. {0,-29}z19
+-- z20
+-- z21
+-- z22
+{0,50} .. {-90,0}z23
+-- z24
+-- z25
+-- z26
+{35,0} .. {0,-29}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(7,643FX#,637FY#,65FY#);
+"Article";
+z1=(607FX,-66FY);
+z2=(607FX,-34FY);
+z3=(557FX,26FY);
+z4=(473FX,40FY);
+z5=(301FX,40FY);
+z6=(252FX,51FY);
+z7=(241FX,100FY);
+z8=(241FX,407FY);
+z9=(260FX,557FY);
+z10=(339FX,606FY);
+z11=(406FX,583FY);
+z12=(432FX,516FY);
+z13=(438FX,409FY);
+z14=(438FX,315FY);
+z15=(581FX,315FY);
+z16=(581FX,366FY);
+z17=(524FX,561FY);
+z18=(339FX,637FY);
+z19=(98FX,366FY);
+z20=(98FX,102FY);
+z21=(80FX,32FY);
+z22=(13FX,18FY);
+z23=(13FX,0FY);
+z24=(394FX,0FY);
+z25=(447FX,-43FY);
+z26=(447FX,-66FY);
+FuF (z1
+-- z2
+{0,27} .. {-34,13}z3
+{-23,9} .. {-32,0}z4
+-- z5
+{-25,0} .. {-8,8}z6
+{-7,8} .. {0,25}z7
+-- z8
+{0,71} .. {12,29}z9
+{15,33} .. {38,0}z10
+{30,-1} .. {15,-15}z11
+{13,-14} .. {4,-31}z12
+{4,-22} .. {0,-50}z13
+-- z14
+-- z15
+-- z16
+{0,84} .. {-38,46}z17
+{-41,51} .. {-82,0}z18
+{-160,0} .. {0,-181}z19
+-- z20
+{0,-36} .. {-12,-11}z21
+{-11,-9} .. {-34,0}z22
+-- z23
+-- z24
+{36,0} .. {0,-29}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(8,892FX#,633FY#,0FY#);
+"Th";
+z1=(926FX,208FY);
+z2=(926FX,239FY);
+z3=(864FX,300FY);
+z4=(770FX,315FY);
+z5=(689FX,315FY);
+z6=(689FX,368FY);
+z7=(661FX,481FY);
+z8=(393FX,634FY);
+z9=(125FX,478FY);
+z10=(98FX,366FY);
+z11=(98FX,102FY);
+z12=(82FX,33FY);
+z13=(13FX,18FY);
+z14=(13FX,0FY);
+z15=(327FX,0FY);
+z16=(327FX,18FY);
+z17=(258FX,32FY);
+z18=(241FX,100FY);
+z19=(241FX,371FY);
+z20=(394FX,602FY);
+z21=(510FX,546FY);
+z22=(545FX,372FY);
+z23=(545FX,315FY);
+z24=(467FX,315FY);
+z25=(359FX,273FY);
+z26=(310FX,164FY);
+z27=(370FX,42FY);
+z28=(502FX,0FY);
+z29=(632FX,45FY);
+z30=(689FX,168FY);
+z31=(689FX,274FY);
+z32=(716FX,274FY);
+z33=(765FX,230FY);
+z34=(765FX,208FY);
+z35=(545FX,163FY);
+z36=(542FX,87FY);
+z37=(502FX,33FY);
+z38=(455FX,161FY);
+z39=(509FX,274FY);
+z40=(545FX,274FY);
+FuF (z1
+-- z2
+{0,27} .. {-41,14}z3
+{-30,10} .. {-32,0}z4
+-- z5
+-- z6
+{0,38} .. {-18,37}z7
+{-51,102} .. {-128,0}z8
+{-128,0} .. {-50,-104}z9
+{-18,-37} .. {0,-37}z10
+-- z11
+{0,-36} .. {-11,-11}z12
+{-10,-10} .. {-36,0}z13
+-- z14
+-- z15
+-- z16
+{-36,0} .. {-10,9}z17
+{-11,10} .. {0,36}z18
+-- z19
+{0,154} .. {102,0}z20
+{53,0} .. {24,-37}z21
+{23,-37} .. {0,-79}z22
+-- z23
+-- z24
+{-41,0} .. {-31,-28}z25
+{-32,-29} .. {0,-43}z26
+{0,-50} .. {40,-31}z27
+{36,-28} .. {52,0}z28
+{51,0} .. {36,30}z29
+{38,32} .. {0,50}z30
+-- z31
+-- z32
+{33,0} .. {0,-29}z33
+-- z34
+);
+FuF (z35
+{0,-37} .. {-2,-14}z36
+{-6,-36} .. {-21,0}z37
+{-32,1} .. {1,85}z38
+{0,76} .. {36,0}z39
+-- z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(9,751FX#,624FY#,13FY#);
+"Zh";
+z1=(767FX,315FY);
+z2=(767FX,354FY);
+z3=(716FX,409FY);
+z4=(584FX,431FY);
+z5=(537FX,431FY);
+z6=(537FX,535FY);
+z7=(554FX,595FY);
+z8=(617FX,607FY);
+z9=(617FX,624FY);
+z10=(302FX,624FY);
+z11=(302FX,607FY);
+z12=(373FX,596FY);
+z13=(394FX,532FY);
+z14=(394FX,431FY);
+z15=(316FX,431FY);
+z16=(123FX,372FY);
+z17=(43FX,207FY);
+z18=(119FX,41FY);
+z19=(298FX,-13FY);
+z20=(537FX,244FY);
+z21=(537FX,390FY);
+z22=(558FX,390FY);
+z23=(605FX,344FY);
+z24=(605FX,315FY);
+z25=(394FX,198FY);
+z26=(298FX,19FY);
+z27=(211FX,87FY);
+z28=(193FX,205FY);
+z29=(233FX,356FY);
+z30=(346FX,390FY);
+z31=(394FX,390FY);
+FuF (z1
+-- z2
+{0,22} .. {-34,14}z3
+{-34,15} .. {-54,0}z4
+-- z5
+-- z6
+{0,31} .. {11,9}z7
+{9,8} .. {33,0}z8
+-- z9
+-- z10
+-- z11
+{37,-1} .. {11,-6}z12
+{14,-9} .. {0,-34}z13
+-- z14
+-- z15
+{-79,0} .. {-50,-39}z16
+{-53,-41} .. {0,-69}z17
+{0,-71} .. {51,-39}z18
+{46,-36} .. {73,0}z19
+{160,0} .. {0,172}z20
+-- z21
+-- z22
+{31,0} .. {0,-31}z23
+-- z24
+);
+FuF (z25
+{0,-119} .. {-64,0}z26
+{-40,0} .. {-18,46}z27
+{-12,31} .. {1,47}z28
+{0,74} .. {27,27}z29
+{23,22} .. {52,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(10,660FX#,648FY#,11FY#);
+"Sh";
+z1=(600FX,203FY);
+z2=(596FX,234FY);
+z3=(447FX,234FY);
+z4=(449FX,188FY);
+z5=(421FX,71FY);
+z6=(318FX,19FY);
+z7=(219FX,96FY);
+z8=(195FX,230FY);
+z9=(268FX,441FY);
+z10=(316FX,481FY);
+z11=(443FX,420FY);
+z12=(588FX,490FY);
+z13=(569FX,515FY);
+z14=(525FX,501FY);
+z15=(479FX,517FY);
+z16=(424FX,557FY);
+z17=(344FX,619FY);
+z18=(229FX,649FY);
+z19=(158FX,629FY);
+z20=(94FX,577FY);
+z21=(120FX,553FY);
+z22=(146FX,569FY);
+z23=(174FX,575FY);
+z24=(222FX,556FY);
+z25=(255FX,529FY);
+z26=(280FX,506FY);
+z27=(124FX,399FY);
+z28=(54FX,224FY);
+z29=(129FX,46FY);
+z30=(319FX,-12FY);
+z31=(529FX,55FY);
+z32=(600FX,203FY);
+FuF (z1
+{0,9} .. {-3,11}z2
+-- z3
+{2,-17} .. {0,-14}z4
+{0,-48} .. {-19,-30}z5
+{-23,-35} .. {-46,0}z6
+{-45,0} .. {-21,51}z7
+{-16,38} .. {0,51}z8
+{0,91} .. {49,49}z9
+{10,11} .. {21,16}z10
+{44,-41} .. {40,0}z11
+{60,1} .. {36,46}z12
+-- z13
+{-15,-10} .. {-14,0}z14
+{-13,0} .. {-17,10}z15
+{-10,6} .. {-27,21}z16
+{-42,34} .. {-11,8}z17
+{-32,20} .. {-45,0}z18
+{-21,0} .. {-27,-13}z19
+{-26,-14} .. {-17,-21}z20
+-- z21
+{8,6} .. {9,5}z22
+{10,4} .. {9,0}z23
+{18,-1} .. {14,-12}z24
+{15,-12} .. {7,-6}z25
+{11,-10} .. {5,-5}z26
+{-58,-14} .. {-46,-58}z27
+{-47,-57} .. {0,-60}z28
+{0,-78} .. {50,-41}z29
+{47,-38} .. {80,0}z30
+{89,0} .. {51,44}z31
+{47,41} .. {0,58}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(11,635FX#,637FY#,22FY#);
+"Ch";
+z1=(589FX,402FY);
+z2=(514FX,581FY);
+z3=(325FX,637FY);
+z4=(136FX,587FY);
+z5=(44FX,424FY);
+z6=(47FX,392FY);
+z7=(197FX,392FY);
+z8=(194FX,438FY);
+z9=(223FX,555FY);
+z10=(326FX,607FY);
+z11=(425FX,530FY);
+z12=(449FX,396FY);
+z13=(376FX,185FY);
+z14=(327FX,145FY);
+z15=(201FX,205FY);
+z16=(56FX,136FY);
+z17=(75FX,111FY);
+z18=(118FX,125FY);
+z19=(165FX,110FY);
+z20=(220FX,69FY);
+z21=(300FX,8FY);
+z22=(415FX,-23FY);
+z23=(484FX,-3FY);
+z24=(550FX,49FY);
+z25=(524FX,74FY);
+z26=(469FX,52FY);
+z27=(421FX,70FY);
+z28=(389FX,97FY);
+z29=(363FX,121FY);
+z30=(520FX,227FY);
+z31=(589FX,402FY);
+FuF (z1
+{0,78} .. {-50,41}z2
+{-46,38} .. {-80,0}z3
+{-74,0} .. {-52,-33}z4
+{-61,-39} .. {0,-69}z5
+{0,-12} .. {2,-10}z6
+-- z7
+{-2,17} .. {0,14}z8
+{0,48} .. {19,30}z9
+{23,35} .. {46,-1}z10
+{44,0} .. {22,-51}z11
+{16,-38} .. {0,-51}z12
+{0,-92} .. {-48,-48}z13
+{-10,-10} .. {-23,-17}z14
+{-45,41} .. {-39,-1}z15
+{-61,0} .. {-36,-46}z16
+-- z17
+{16,10} .. {13,-1}z18
+{14,0} .. {17,-10}z19
+{10,-6} .. {27,-21}z20
+{42,-33} .. {12,-7}z21
+{31,-20} .. {45,0}z22
+{21,0} .. {25,13}z23
+{27,14} .. {17,21}z24
+-- z25
+{-18,-16} .. {-18,1}z26
+{-18,0} .. {-15,12}z27
+{-12,10} .. {-9,7}z28
+{-10,9} .. {-7,7}z29
+{58,13} .. {46,58}z30
+{46,57} .. {0,60}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(12,806FX#,637FY#,0FY#);
+"Rhard";
+z1=(810FX,136FY);
+z2=(810FX,168FY);
+z3=(623FX,241FY);
+z4=(581FX,241FY);
+z5=(581FX,373FY);
+z6=(523FX,564FY);
+z7=(339FX,637FY);
+z8=(152FX,568FY);
+z9=(98FX,373FY);
+z10=(98FX,104FY);
+z11=(82FX,34FY);
+z12=(13FX,18FY);
+z13=(13FX,0FY);
+z14=(322FX,0FY);
+z15=(322FX,18FY);
+z16=(255FX,35FY);
+z17=(241FX,104FY);
+z18=(241FX,408FY);
+z19=(261FX,546FY);
+z20=(339FX,606FY);
+z21=(438FX,408FY);
+z22=(438FX,104FY);
+z23=(424FX,36FY);
+z24=(359FX,18FY);
+z25=(359FX,0FY);
+z26=(669FX,0FY);
+z27=(669FX,18FY);
+z28=(595FX,35FY);
+z29=(581FX,104FY);
+z30=(581FX,200FY);
+z31=(599FX,200FY);
+z32=(648FX,158FY);
+z33=(648FX,136FY);
+FuF (z1
+-- z2
+{0,49} .. {-124,0}z3
+-- z4
+-- z5
+{0,81} .. {-39,46}z6
+{-42,49} .. {-81,0}z7
+{-86,0} .. {-39,-46}z8
+{-36,-43} .. {0,-87}z9
+-- z10
+{0,-36} .. {-11,-11}z11
+{-10,-11} .. {-36,0}z12
+-- z13
+-- z14
+-- z15
+{-35,0} .. {-10,11}z16
+{-9,10} .. {0,36}z17
+-- z18
+{0,61} .. {13,31}z19
+{16,40} .. {36,0}z20
+{66,-1} .. {0,-131}z21
+-- z22
+{0,-34} .. {-9,-11}z23
+{-11,-12} .. {-33,0}z24
+-- z25
+-- z26
+-- z27
+{-39,1} .. {-10,11}z28
+{-9,10} .. {0,36}z29
+-- z30
+-- z31
+{32,0} .. {0,-28}z32
+-- z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(13,711FX#,624FY#,10FY#);
+"Ts";
+z1=(719FX,449FY);
+z2=(719FX,485FY);
+z3=(676FX,539FY);
+z4=(572FX,566FY);
+z5=(311FX,515FY);
+z6=(191FX,598FY);
+z7=(191FX,624FY);
+z8=(30FX,624FY);
+z9=(30FX,589FY);
+z10=(129FX,508FY);
+z11=(271FX,490FY);
+z12=(132FX,394FY);
+z13=(76FX,237FY);
+z14=(154FX,57FY);
+z15=(340FX,-11FY);
+z16=(543FX,70FY);
+z17=(613FX,240FY);
+z18=(540FX,420FY);
+z19=(361FX,502FY);
+z20=(482FX,528FY);
+z21=(549FX,510FY);
+z22=(558FX,475FY);
+z23=(558FX,449FY);
+z24=(460FX,244FY);
+z25=(436FX,73FY);
+z26=(338FX,14FY);
+z27=(246FX,76FY);
+z28=(227FX,242FY);
+z29=(321FX,481FY);
+z30=(460FX,244FY);
+FuF (z1
+-- z2
+{0,20} .. {-29,16}z3
+{-31,18} .. {-39,0}z4
+{-88,0} .. {-87,-34}z5
+{-80,1} .. {0,55}z6
+-- z7
+-- z8
+-- z9
+{0,-36} .. {66,-18}z10
+{45,-11} .. {50,0}z11
+{-58,-21} .. {-35,-42}z12
+{-38,-46} .. {0,-58}z13
+{0,-73} .. {52,-47}z14
+{50,-45} .. {74,0}z15
+{84,1} .. {52,53}z16
+{47,48} .. {0,65}z17
+{0,74} .. {-49,46}z18
+{-44,42} .. {-76,13}z19
+{45,18} .. {36,-1}z20
+{34,0} .. {11,-12}z21
+{6,-7} .. {0,-17}z22
+-- z23
+);
+FuF (z24
+{0,-80} .. {-16,-34}z25
+{-19,-40} .. {-47,0}z26
+{-44,1} .. {-17,41}z27
+{-13,33} .. {0,78}z28
+{0,130} .. {63,30}z29
+{93,-22} .. {0,-136}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(14,791FX#,624FY#,0FY#);
+"Ph";
+z1=(760FX,315FY);
+z2=(665FX,471FY);
+z3=(475FX,509FY);
+z4=(475FX,523FY);
+z5=(492FX,589FY);
+z6=(558FX,607FY);
+z7=(558FX,624FY);
+z8=(249FX,624FY);
+z9=(249FX,607FY);
+z10=(316FX,589FY);
+z11=(332FX,523FY);
+z12=(332FX,509FY);
+z13=(139FX,470FY);
+z14=(38FX,315FY);
+z15=(137FX,157FY);
+z16=(332FX,115FY);
+z17=(332FX,102FY);
+z18=(315FX,34FY);
+z19=(247FX,18FY);
+z20=(247FX,0FY);
+z21=(560FX,0FY);
+z22=(560FX,18FY);
+z23=(488FX,35FY);
+z24=(475FX,102FY);
+z25=(475FX,115FY);
+z26=(665FX,157FY);
+z27=(760FX,315FY);
+z28=(607FX,315FY);
+z29=(577FX,198FY);
+z30=(475FX,140FY);
+z31=(475FX,481FY);
+z32=(579FX,431FY);
+z33=(607FX,315FY);
+z34=(332FX,140FY);
+z35=(233FX,197FY);
+z36=(200FX,315FY);
+z37=(230FX,429FY);
+z38=(332FX,481FY);
+FuF (z1
+{0,70} .. {-64,34}z2
+{-49,26} .. {-78,0}z3
+-- z4
+{0,33} .. {11,11}z5
+{11,12} .. {33,0}z6
+-- z7
+-- z8
+-- z9
+{34,-1} .. {11,-12}z10
+{11,-11} .. {0,-33}z11
+-- z12
+{-77,0} .. {-52,-26}z13
+{-68,-34} .. {0,-69}z14
+{0,-71} .. {66,-34}z15
+{53,-28} .. {78,0}z16
+-- z17
+{0,-35} .. {-12,-11}z18
+{-11,-11} .. {-35,0}z19
+-- z20
+-- z21
+-- z22
+{-38,1} .. {-9,11}z23
+{-9,10} .. {0,35}z24
+-- z25
+{77,0} .. {50,28}z26
+{64,35} .. {0,70}z27
+);
+FuF (z28
+{0,-46} .. {-20,-32}z29
+{-25,-39} .. {-44,0}z30
+-- z31
+{47,0} .. {23,-33}z32
+{19,-29} .. {-1,-49}z33
+);
+FuF (z34
+{-41,1} .. {-25,37}z35
+{-22,33} .. {0,45}z36
+{0,47} .. {20,29}z37
+{24,35} .. {44,0}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(15,765FX#,632FY#,15FY#);
+"Osimple";
+z1=(718FX,309FY);
+z2=(626FX,546FY);
+z3=(387FX,633FY);
+z4=(147FX,549FY);
+z5=(56FX,314FY);
+z6=(146FX,74FY);
+z7=(388FX,-15FY);
+z8=(625FX,75FY);
+z9=(718FX,309FY);
+z10=(552FX,310FY);
+z11=(388FX,21FY);
+z12=(222FX,309FY);
+z13=(389FX,604FY);
+z14=(552FX,310FY);
+FuF (z1
+{0,99} .. {-61,59}z2
+{-60,58} .. {-100,0}z3
+{-100,0} .. {-60,-56}z4
+{-61,-57} .. {0,-100}z5
+{0,-101} .. {60,-59}z6
+{60,-59} .. {101,0}z7
+{96,0} .. {62,60}z8
+{62,61} .. {0,95}z9
+);
+FuF (z10
+{0,-193} .. {-109,0}z11
+{-111,0} .. {0,192}z12
+{0,196} .. {112,0}z13
+{108,0} .. {0,-196}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(19,503FX#,647FY#,12FY#);
+"dz";
+z1=(502FX,0FY);
+z2=(502FX,18FY);
+z3=(455FX,73FY);
+z4=(426FX,303FY);
+z5=(263FX,420FY);
+z6=(320FX,460FY);
+z7=(367FX,521FY);
+z8=(323FX,561FY);
+z9=(229FX,579FY);
+z10=(192FX,602FY);
+z11=(215FX,632FY);
+z12=(190FX,648FY);
+z13=(120FX,598FY);
+z14=(93FX,546FY);
+z15=(126FX,502FY);
+z16=(225FX,484FY);
+z17=(247FX,463FY);
+z18=(229FX,439FY);
+z19=(42FX,128FY);
+z20=(91FX,12FY);
+z21=(164FX,-12FY);
+z22=(327FX,56FY);
+z23=(327FX,0FY);
+z24=(327FX,106FY);
+z25=(285FX,66FY);
+z26=(231FX,47FY);
+z27=(171FX,141FY);
+z28=(189FX,334FY);
+z29=(233FX,403FY);
+z30=(296FX,346FY);
+z31=(327FX,235FY);
+FuF (z1
+-- z2
+{-31,0} .. {0,37}z3
+{0,123} .. {-19,30}z4
+{-43,71} .. {-65,7}z5
+-- z6
+{31,22} .. {0,19}z7
+{0,21} .. {-29,5}z8
+-- z9
+{-25,4} .. {0,11}z10
+{0,10} .. {15,10}z11
+-- z12
+-- z13
+{-18,-13} .. {0,-22}z14
+{0,-25} .. {22,-5}z15
+-- z16
+{15,-3} .. {0,-11}z17
+{0,-9} .. {-12,-7}z18
+{-124,-72} .. {0,-136}z19
+{0,-53} .. {33,-24}z20
+{21,-16} .. {27,0}z21
+{72,0} .. {37,46}z22
+-- z23
+);
+FuF (z24
+{-7,-14} .. {-21,-12}z25
+{-20,-13} .. {-16,0}z26
+{-40,0} .. {0,63}z27
+{0,90} .. {12,39}z28
+{8,26} .. {22,20}z29
+{24,-10} .. {18,-29}z30
+{21,-33} .. {0,-41}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(20,562FX#,443FY#,204FY#);
+"gh";
+z1=(563FX,-204FY);
+z2=(563FX,-159FY);
+z3=(458FX,-159FY);
+z4=(458FX,297FY);
+z5=(339FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,431FY);
+z8=(16FX,431FY);
+z9=(16FX,413FY);
+z10=(48FX,406FY);
+z11=(62FX,364FY);
+z12=(62FX,58FY);
+z13=(50FX,23FY);
+z14=(16FX,17FY);
+z15=(16FX,0FY);
+z16=(234FX,0FY);
+z17=(234FX,17FY);
+z18=(191FX,58FY);
+z19=(191FX,325FY);
+z20=(285FX,384FY);
+z21=(329FX,314FY);
+z22=(329FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,98} .. {-79,0}z5
+{-64,0} .. {-35,-46}z6
+-- z7
+-- z8
+-- z9
+{15,0} .. {6,-5}z10
+{10,-7} .. {0,-21}z11
+-- z12
+{0,-18} .. {-8,-6}z13
+{-6,-4} .. {-17,0}z14
+-- z15
+-- z16
+-- z17
+{-29,0} .. {0,27}z18
+-- z19
+{26,39} .. {37,0}z20
+{29,0} .. {0,-47}z21
+-- z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(21,516FX#,640FY#,15FY#);
+"chmute";
+z1=(517FX,0FY);
+z2=(517FX,19FY);
+z3=(474FX,41FY);
+z4=(470FX,94FY);
+z5=(430FX,310FY);
+z6=(335FX,393FY);
+z7=(211FX,426FY);
+z8=(267FX,552FY);
+z9=(349FX,607FY);
+z10=(367FX,589FY);
+z11=(362FX,564FY);
+z12=(356FX,545FY);
+z13=(356FX,535FY);
+z14=(371FX,502FY);
+z15=(410FX,490FY);
+z16=(459FX,548FY);
+z17=(427FX,618FY);
+z18=(367FX,641FY);
+z19=(226FX,579FY);
+z20=(118FX,430FY);
+z21=(24FX,431FY);
+z22=(24FX,386FY);
+z23=(101FX,385FY);
+z24=(47FX,126FY);
+z25=(82FX,24FY);
+z26=(172FX,-15FY);
+z27=(268FX,5FY);
+z28=(342FX,56FY);
+z29=(342FX,0FY);
+z30=(341FX,105FY);
+z31=(233FX,44FY);
+z32=(176FX,146FY);
+z33=(201FX,381FY);
+z34=(314FX,319FY);
+z35=(341FX,105FY);
+FuF (z1
+-- z2
+{-24,0} .. {-5,14}z3
+{-2,7} .. {0,29}z4
+{0,102} .. {-27,42}z5
+{-22,35} .. {-42,21}z6
+{-38,19} .. {-45,3}z7
+{13,50} .. {25,34}z8
+{26,37} .. {28,0}z9
+{12,0} .. {0,-12}z10
+{0,-7} .. {-3,-10}z11
+{-1,-6} .. {-2,-6}z12
+{0,-3} .. {0,-3}z13
+{0,-14} .. {10,-8}z14
+{11,-8} .. {15,0}z15
+{33,1} .. {0,38}z16
+{-1,29} .. {-21,18}z17
+{-18,15} .. {-22,0}z18
+{-47,0} .. {-47,-41}z19
+{-46,-40} .. {-26,-60}z20
+-- z21
+-- z22
+-- z23
+{-36,-93} .. {0,-80}z24
+{0,-41} .. {23,-27}z25
+{24,-26} .. {36,0}z26
+{31,0} .. {33,14}z27
+{32,13} .. {17,21}z28
+-- z29
+);
+FuF (z30
+{-40,-41} .. {-32,0}z31
+{-38,0} .. {0,68}z32
+{0,64} .. {17,92}z33
+{59,-7} .. {16,-34}z34
+{18,-38} .. {0,-105}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(22,424FX#,624FY#,86FY#);
+"esimple";
+z1=(423FX,386FY);
+z2=(423FX,431FY);
+z3=(191FX,431FY);
+z4=(191FX,530FY);
+z5=(201FX,592FY);
+z6=(234FX,607FY);
+z7=(234FX,624FY);
+z8=(16FX,624FY);
+z9=(16FX,607FY);
+z10=(59FX,584FY);
+z11=(62FX,530FY);
+z12=(62FX,0FY);
+z13=(241FX,0FY);
+z14=(278FX,-34FY);
+z15=(251FX,-53FY);
+z16=(209FX,-47FY);
+z17=(204FX,-74FY);
+z18=(296FX,-87FY);
+z19=(387FX,-71FY);
+z20=(420FX,-31FY);
+z21=(386FX,23FY);
+z22=(290FX,45FY);
+z23=(191FX,45FY);
+z24=(191FX,386FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,31} .. {7,11}z5
+{5,8} .. {17,1}z6
+-- z7
+-- z8
+-- z9
+{23,-3} .. {5,-12}z10
+{2,-6} .. {0,-30}z11
+-- z12
+-- z13
+{25,0} .. {0,-23}z14
+{0,-13} .. {-18,0}z15
+{-11,0} .. {-17,4}z16
+-- z17
+{35,-8} .. {26,0}z18
+{39,0} .. {22,11}z19
+{22,10} .. {0,17}z20
+{0,21} .. {-22,15}z21
+{-24,15} .. {-40,0}z22
+-- z23
+-- z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(23,519FX#,443FY#,204FY#);
+"article";
+z1=(504FX,0FY);
+z2=(504FX,18FY);
+z3=(458FX,53FY);
+z4=(458FX,292FY);
+z5=(341FX,443FY);
+z6=(191FX,374FY);
+z7=(191FX,431FY);
+z8=(16FX,431FY);
+z9=(16FX,414FY);
+z10=(62FX,370FY);
+z11=(62FX,-204FY);
+z12=(487FX,-204FY);
+z13=(486FX,-159FY);
+z14=(191FX,-159FY);
+z15=(191FX,325FY);
+z16=(285FX,384FY);
+z17=(329FX,314FY);
+z18=(329FX,53FY);
+z19=(286FX,17FY);
+z20=(286FX,0FY);
+FuF (z1
+-- z2
+{-31,0} .. {0,24}z3
+-- z4
+{0,101} .. {-78,0}z5
+{-66,0} .. {-35,-46}z6
+-- z7
+-- z8
+-- z9
+{31,0} .. {0,-30}z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+{26,39} .. {37,0}z16
+{29,0} .. {0,-47}z17
+-- z18
+{0,-24} .. {-29,0}z19
+-- z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(24,691FX#,445FY#,204FY#);
+"th";
+z1=(691FX,219FY);
+z2=(691FX,264FY);
+z3=(629FX,264FY);
+z4=(629FX,274FY);
+z5=(565FX,389FY);
+z6=(408FX,445FY);
+z7=(191FX,374FY);
+z8=(191FX,431FY);
+z9=(16FX,431FY);
+z10=(16FX,414FY);
+z11=(62FX,373FY);
+z12=(62FX,-138FY);
+z13=(53FX,-181FY);
+z14=(16FX,-187FY);
+z15=(16FX,-204FY);
+z16=(234FX,-204FY);
+z17=(234FX,-187FY);
+z18=(198FX,-176FY);
+z19=(191FX,-138FY);
+z20=(191FX,332FY);
+z21=(258FX,369FY);
+z22=(356FX,388FY);
+z23=(449FX,355FY);
+z24=(499FX,272FY);
+z25=(500FX,264FY);
+z26=(439FX,264FY);
+z27=(302FX,225FY);
+z28=(257FX,130FY);
+z29=(307FX,28FY);
+z30=(443FX,-12FY);
+z31=(575FX,26FY);
+z32=(629FX,133FY);
+z33=(629FX,219FY);
+z34=(501FX,132FY);
+z35=(444FX,24FY);
+z36=(403FX,50FY);
+z37=(384FX,130FY);
+z38=(447FX,219FY);
+z39=(501FX,219FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-2,42} .. {-40,35}z5
+{-45,37} .. {-60,0}z6
+{-80,0} .. {-65,-48}z7
+-- z8
+-- z9
+-- z10
+{31,0} .. {0,-28}z11
+-- z12
+{0,-22} .. {-6,-7}z13
+{-5,-4} .. {-19,0}z14
+-- z15
+-- z16
+-- z17
+{-19,0} .. {-5,8}z18
+{-5,6} .. {0,19}z19
+-- z20
+{15,14} .. {30,11}z21
+{34,13} .. {31,0}z22
+{33,0} .. {30,-22}z23
+{32,-24} .. {2,-32}z24
+-- z25
+-- z26
+{-59,0} .. {-32,-26}z27
+{-30,-24} .. {0,-39}z28
+{1,-43} .. {33,-25}z29
+{33,-26} .. {57,0}z30
+{54,0} .. {34,25}z31
+{36,26} .. {0,45}z32
+-- z33
+);
+FuF (z34
+{0,-72} .. {-38,0}z35
+{-17,0} .. {-11,17}z36
+{-13,19} .. {0,34}z37
+{0,60} .. {42,0}z38
+-- z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(25,558FX#,624FY#,20FY#);
+"zh";
+z1=(566FX,386FY);
+z2=(566FX,431FY);
+z3=(461FX,431FY);
+z4=(461FX,546FY);
+z5=(473FX,598FY);
+z6=(517FX,607FY);
+z7=(517FX,624FY);
+z8=(268FX,624FY);
+z9=(268FX,607FY);
+z10=(318FX,595FY);
+z11=(331FX,544FY);
+z12=(331FX,431FY);
+z13=(221FX,431FY);
+z14=(82FX,373FY);
+z15=(27FX,227FY);
+z16=(89FX,41FY);
+z17=(253FX,-21FY);
+z18=(391FX,31FY);
+z19=(461FX,215FY);
+z20=(461FX,386FY);
+z21=(331FX,111FY);
+z22=(308FX,38FY);
+z23=(252FX,9FY);
+z24=(164FX,203FY);
+z25=(188FX,341FY);
+z26=(271FX,387FY);
+z27=(331FX,387FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,27} .. {8,7}z5
+{6,6} .. {24,0}z6
+-- z7
+-- z8
+-- z9
+{25,0} .. {8,-8}z10
+{8,-8} .. {0,-26}z11
+-- z12
+-- z13
+{-55,0} .. {-38,-39}z14
+{-37,-39} .. {0,-59}z15
+{0,-81} .. {41,-43}z16
+{40,-41} .. {70,0}z17
+{54,0} .. {38,34}z18
+{47,43} .. {0,80}z19
+-- z20
+);
+FuF (z21
+{0,-29} .. {-15,-20}z22
+{-16,-19} .. {-22,0}z23
+{-58,0} .. {0,129}z24
+{0,63} .. {16,29}z25
+{17,31} .. {39,0}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(26,385FX#,448FY#,204FY#);
+"sh";
+z1=(370FX,-204FY);
+z2=(370FX,-159FY);
+z3=(205FX,-159FY);
+z4=(144FX,-142FY);
+z5=(116FX,-97FY);
+z6=(150FX,-39FY);
+z7=(239FX,40FY);
+z8=(368FX,283FY);
+z9=(367FX,309FY);
+z10=(317FX,406FY);
+z11=(193FX,449FY);
+z12=(63FX,387FY);
+z13=(13FX,225FY);
+z14=(48FX,221FY);
+z15=(82FX,320FY);
+z16=(161FX,371FY);
+z17=(228FX,334FY);
+z18=(251FX,244FY);
+z19=(160FX,26FY);
+z20=(74FX,-51FY);
+z21=(-1FX,-158FY);
+z22=(23FX,-194FY);
+z23=(64FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-23,0} .. {-17,12}z4
+{-19,12} .. {0,18}z5
+{0,19} .. {23,20}z6
+-- z7
+{86,75} .. {0,87}z8
+{0,9} .. {0,8}z9
+{-4,39} .. {-29,26}z10
+{-32,28} .. {-51,0}z11
+{-54,0} .. {-32,-41}z12
+{-33,-41} .. {0,-67}z13
+-- z14
+{1,35} .. {22,31}z15
+{23,34} .. {30,0}z16
+{29,0} .. {16,-25}z17
+{15,-23} .. {1,-38}z18
+{3,-90} .. {-64,-56}z19
+-- z20
+{-50,-44} .. {0,-28}z21
+{0,-16} .. {16,-8}z22
+{12,-7} .. {15,0}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(27,318FX#,439FY#,204FY#);
+"ch";
+z1=(321FX,-204FY);
+z2=(321FX,-159FY);
+z3=(226FX,-159FY);
+z4=(151FX,-105FY);
+z5=(174FX,-54FY);
+z6=(262FX,21FY);
+z7=(292FX,91FY);
+z8=(267FX,155FY);
+z9=(209FX,197FY);
+z10=(152FX,239FY);
+z11=(123FX,309FY);
+z12=(152FX,369FY);
+z13=(249FX,398FY);
+z14=(242FX,439FY);
+z15=(102FX,371FY);
+z16=(32FX,222FY);
+z17=(79FX,118FY);
+z18=(167FX,79FY);
+z19=(214FX,50FY);
+z20=(196FX,22FY);
+z21=(86FX,-70FY);
+z22=(26FX,-159FY);
+z23=(43FX,-192FY);
+z24=(86FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-50,0} .. {0,36}z4
+{0,21} .. {15,13}z5
+-- z6
+{20,17} .. {0,30}z7
+{0,26} .. {-17,17}z8
+{-9,8} .. {-30,20}z9
+{-29,18} .. {-9,10}z10
+{-19,20} .. {0,27}z11
+{0,24} .. {19,17}z12
+{22,19} .. {43,0}z13
+-- z14
+{-48,0} .. {-46,-45}z15
+{-47,-46} .. {0,-53}z16
+{0,-44} .. {31,-25}z17
+{18,-13} .. {41,-13}z18
+{31,-10} .. {0,-9}z19
+{0,-9} .. {-12,-10}z20
+-- z21
+{-40,-33} .. {0,-27}z22
+{0,-14} .. {12,-8}z23
+{11,-8} .. {18,0}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(28,515FX#,443FY#,0FY#);
+"rhard";
+z1=(498FX,0FY);
+z2=(498FX,45FY);
+z3=(334FX,45FY);
+z4=(448FX,160FY);
+z5=(485FX,294FY);
+z6=(438FX,406FY);
+z7=(317FX,443FY);
+z8=(245FX,420FY);
+z9=(191FX,374FY);
+z10=(191FX,431FY);
+z11=(16FX,431FY);
+z12=(16FX,413FY);
+z13=(50FX,405FY);
+z14=(62FX,364FY);
+z15=(62FX,58FY);
+z16=(16FX,17FY);
+z17=(16FX,0FY);
+z18=(234FX,0FY);
+z19=(234FX,17FY);
+z20=(202FX,23FY);
+z21=(191FX,58FY);
+z22=(191FX,325FY);
+z23=(264FX,381FY);
+z24=(330FX,351FY);
+z25=(357FX,270FY);
+z26=(338FX,140FY);
+z27=(280FX,44FY);
+z28=(280FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{48,26} .. {29,50}z4
+{25,45} .. {0,44}z5
+{0,48} .. {-32,27}z6
+{-29,25} .. {-51,0}z7
+{-22,0} .. {-26,-16}z8
+{-24,-14} .. {-12,-17}z9
+-- z10
+-- z11
+-- z12
+{17,0} .. {6,-5}z13
+{8,-6} .. {0,-21}z14
+-- z15
+{0,-27} .. {-31,0}z16
+-- z17
+-- z18
+-- z19
+{-16,0} .. {-6,4}z20
+{-7,6} .. {0,18}z21
+-- z22
+{25,37} .. {24,0}z23
+{27,0} .. {17,-20}z24
+{18,-20} .. {0,-34}z25
+{0,-44} .. {-13,-43}z26
+{-15,-46} .. {-24,-18}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(29,513FX#,624FY#,13FY#);
+"ts";
+z1=(513FX,386FY);
+z2=(513FX,431FY);
+z3=(380FX,431FY);
+z4=(262FX,567FY);
+z5=(256FX,578FY);
+z6=(266FX,582FY);
+z7=(308FX,582FY);
+z8=(308FX,624FY);
+z9=(92FX,624FY);
+z10=(71FX,584FY);
+z11=(163FX,510FY);
+z12=(220FX,444FY);
+z13=(91FX,392FY);
+z14=(35FX,248FY);
+z15=(37FX,209FY);
+z16=(106FX,57FY);
+z17=(268FX,-14FY);
+z18=(419FX,52FY);
+z19=(471FX,201FY);
+z20=(454FX,299FY);
+z21=(412FX,386FY);
+z22=(355FX,145FY);
+z23=(338FX,56FY);
+z24=(298FX,18FY);
+z25=(204FX,101FY);
+z26=(162FX,285FY);
+z27=(187FX,377FY);
+z28=(245FX,409FY);
+z29=(279FX,369FY);
+z30=(329FX,270FY);
+z31=(355FX,145FY);
+FuF (z1
+-- z2
+-- z3
+{-34,46} .. {-45,44}z4
+{-4,5} .. {0,3}z5
+{0,3} .. {7,0}z6
+-- z7
+-- z8
+-- z9
+-- z10
+{27,-16} .. {34,-33}z11
+{26,-27} .. {12,-17}z12
+{-53,-3} .. {-33,-32}z13
+{-38,-35} .. {0,-61}z14
+{0,-13} .. {1,-13}z15
+{8,-60} .. {38,-41}z16
+{44,-47} .. {64,0}z17
+{63,0} .. {38,44}z18
+{34,40} .. {0,59}z19
+{0,28} .. {-11,37}z20
+{-12,36} .. {-16,22}z21
+);
+FuF (z22
+{0,-34} .. {-11,-26}z23
+{-12,-25} .. {-15,0}z24
+{-35,0} .. {-28,55}z25
+{-28,55} .. {0,68}z26
+{0,38} .. {17,24}z27
+{16,22} .. {23,0}z28
+{6,0} .. {17,-27}z29
+{20,-31} .. {13,-35}z30
+{17,-45} .. {0,-38}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(30,759FX#,624FY#,204FY#);
+"ph";
+z1=(744FX,0FY);
+z2=(744FX,18FY);
+z3=(716FX,23FY);
+z4=(698FX,81FY);
+z5=(698FX,305FY);
+z6=(578FX,443FY);
+z7=(444FX,374FY);
+z8=(444FX,549FY);
+z9=(455FX,602FY);
+z10=(496FX,607FY);
+z11=(496FX,624FY);
+z12=(266FX,624FY);
+z13=(266FX,607FY);
+z14=(311FX,595FY);
+z15=(315FX,550FY);
+z16=(315FX,107FY);
+z17=(287FX,73FY);
+z18=(237FX,48FY);
+z19=(191FX,114FY);
+z20=(191FX,431FY);
+z21=(16FX,431FY);
+z22=(16FX,414FY);
+z23=(56FX,401FY);
+z24=(62FX,350FY);
+z25=(62FX,131FY);
+z26=(90FX,29FY);
+z27=(181FX,-12FY);
+z28=(316FX,58FY);
+z29=(316FX,-142FY);
+z30=(302FX,-184FY);
+z31=(258FX,-191FY);
+z32=(258FX,-204FY);
+z33=(508FX,-204FY);
+z34=(508FX,-191FY);
+z35=(444FX,-142FY);
+z36=(444FX,323FY);
+z37=(472FX,358FY);
+z38=(521FX,383FY);
+z39=(569FX,317FY);
+z40=(569FX,0FY);
+FuF (z1
+-- z2
+{-13,0} .. {-6,3}z3
+{-12,6} .. {0,32}z4
+-- z5
+{0,92} .. {-80,0}z6
+{-48,0} .. {-41,-46}z7
+-- z8
+{0,30} .. {7,6}z9
+{4,3} .. {24,0}z10
+-- z11
+-- z12
+-- z13
+{26,-1} .. {4,-7}z14
+{3,-3} .. {0,-27}z15
+-- z16
+{-1,-7} .. {-18,-15}z17
+{-19,-17} .. {-14,0}z18
+{-31,0} .. {0,44}z19
+-- z20
+-- z21
+-- z22
+{21,0} .. {5,-9}z23
+{4,-7} .. {0,-27}z24
+-- z25
+{0,-43} .. {19,-25}z26
+{20,-27} .. {40,0}z27
+{51,0} .. {39,47}z28
+-- z29
+{0,-22} .. {-9,-6}z30
+{-7,-5} .. {-22,0}z31
+-- z32
+-- z33
+-- z34
+{-43,1} .. {0,32}z35
+-- z36
+{2,9} .. {17,15}z37
+{18,16} .. {14,0}z38
+{32,0} .. {0,-44}z39
+-- z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(31,501FX#,449FY#,19FY#);
+"osimple";
+z1=(483FX,210FY);
+z2=(415FX,385FY);
+z3=(253FX,450FY);
+z4=(90FX,381FY);
+z5=(24FX,213FY);
+z6=(85FX,50FY);
+z7=(254FX,-20FY);
+z8=(418FX,47FY);
+z9=(483FX,210FY);
+z10=(348FX,214FY);
+z11=(325FX,73FY);
+z12=(253FX,17FY);
+z13=(183FX,72FY);
+z14=(159FX,214FY);
+z15=(186FX,358FY);
+z16=(255FX,413FY);
+z17=(324FX,360FY);
+z18=(348FX,214FY);
+FuF (z1
+{0,71} .. {-45,45}z2
+{-44,43} .. {-64,0}z3
+{-65,0} .. {-44,-46}z4
+{-44,-45} .. {0,-67}z5
+{0,-65} .. {40,-43}z6
+{43,-47} .. {70,0}z7
+{65,0} .. {44,44}z8
+{43,45} .. {0,63}z9
+);
+FuF (z10
+{0,-59} .. {-15,-34}z11
+{-17,-37} .. {-31,0}z12
+{-30,0} .. {-16,37}z13
+{-16,35} .. {0,60}z14
+{0,60} .. {18,36}z15
+{17,37} .. {29,0}z16
+{30,0} .. {16,-35}z17
+{16,-36} .. {0,-62}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(32,584FX#,624FY#,11FY#);
+"ev";
+z1=(578FX,0FY);
+z2=(578FX,45FY);
+z3=(519FX,45FY);
+z4=(473FX,91FY);
+z5=(473FX,431FY);
+z6=(293FX,431FY);
+z7=(293FX,414FY);
+z8=(344FX,374FY);
+z9=(344FX,107FY);
+z10=(248FX,47FY);
+z11=(216FX,67FY);
+z12=(205FX,147FY);
+z13=(205FX,562FY);
+z14=(248FX,607FY);
+z15=(248FX,624FY);
+z16=(30FX,624FY);
+z17=(30FX,607FY);
+z18=(70FX,596FY);
+z19=(76FX,562FY);
+z20=(76FX,147FY);
+z21=(188FX,-12FY);
+z22=(344FX,57FY);
+z23=(344FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-38,0} .. {0,40}z4
+-- z5
+-- z6
+-- z7
+{34,0} .. {0,-27}z8
+-- z9
+{-24,-40} .. {-40,0}z10
+{-15,0} .. {-6,13}z11
+{-7,15} .. {0,38}z12
+-- z13
+{0,30} .. {28,0}z14
+-- z15
+-- z16
+-- z17
+{21,0} .. {6,-8}z18
+{5,-7} .. {0,-16}z19
+-- z20
+{0,-106} .. {74,0}z21
+{67,1} .. {37,45}z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(127,471FX#,638FY#,12FY#);
+"question";
+z1=(419FX,493FY);
+z2=(361FX,604FY);
+z3=(236FX,639FY);
+z4=(116FX,606FY);
+z5=(58FX,502FY);
+z6=(74FX,455FY);
+z7=(118FX,436FY);
+z8=(157FX,451FY);
+z9=(172FX,489FY);
+z10=(167FX,517FY);
+z11=(154FX,546FY);
+z12=(144FX,572FY);
+z13=(157FX,594FY);
+z14=(198FX,607FY);
+z15=(246FX,588FY);
+z16=(279FX,488FY);
+z17=(271FX,421FY);
+z18=(239FX,351FY);
+z19=(210FX,280FY);
+z20=(205FX,204FY);
+z21=(224FX,204FY);
+z22=(244FX,279FY);
+z23=(302FX,330FY);
+z24=(383FX,397FY);
+z25=(419FX,493FY);
+z26=(293FX,62FY);
+z27=(271FX,115FY);
+z28=(219FX,136FY);
+z29=(166FX,114FY);
+z30=(145FX,62FY);
+z31=(166FX,9FY);
+z32=(219FX,-12FY);
+z33=(272FX,9FY);
+z34=(293FX,62FY);
+FuF (z1
+{0,48} .. {-38,26}z2
+{-33,23} .. {-50,0}z3
+{-46,0} .. {-34,-22}z4
+{-39,-25} .. {1,-44}z5
+{0,-19} .. {11,-13}z6
+{11,-13} .. {18,0}z7
+{15,0} .. {11,10}z8
+{10,10} .. {-1,15}z9
+{0,9} .. {-3,10}z10
+{-1,2} .. {-8,17}z11
+{-7,14} .. {0,3}z12
+{0,8} .. {9,7}z13
+{11,9} .. {16,0}z14
+{18,0} .. {14,-12}z15
+{22,-21} .. {0,-45}z16
+{0,-26} .. {-5,-19}z17
+{-4,-16} .. {-17,-31}z18
+{-16,-30} .. {-4,-17}z19
+{-3,-13} .. {0,-38}z20
+-- z21
+{3,33} .. {11,17}z22
+{9,14} .. {29,19}z23
+{38,25} .. {16,19}z24
+{24,28} .. {0,36}z25
+);
+FuF (z26
+{0,21} .. {-14,14}z27
+{-14,15} .. {-20,-1}z28
+{-21,0} .. {-14,-15}z29
+{-15,-14} .. {1,-21}z30
+{0,-20} .. {14,-15}z31
+{15,-15} .. {21,1}z32
+{21,0} .. {15,14}z33
+{14,15} .. {0,21}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+ligtable 101:
+39=:22,
+118=:32;
+
+ligtable 69:
+39=:6;
+
+ligtable 117:
+39=:23;
+
+ligtable 116:
+39=:24,
+104=:24;
+
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+ligtable 100:
+122=:19;
+
+ligtable 74:
+39=:5;
+
+ligtable 115:
+104=:26;
+
+ligtable 83:
+104=:10,
+72=:10;
+
+ligtable 99:
+39=:29,
+104=:27;
+
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+ligtable 114:
+39=:28;
+
+ligtable 111:
+39=:31;
+
+ligtable 79:
+39=:15;
+
+ligtable 39:
+39=:34;
+
+ligtable 96:
+96=:92;
+
+ligtable 60:
+60=:60;
+
+ligtable 62:
+62=:62;
+
+ligtable 45:
+45=:123;
+
+ligtable 123:
+45=:125;
+
+ligtable 27:
+121 kern 67FX#;
+
+ligtable 26:
+121 kern 40FX#;
+
+ligtable 23:
+121 kern 40FX#;
+
+ligtable 20:
+121 kern 67FX#;
+
+ligtable 12:
+81 kern 49FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 9:
+81 kern -67FX#;
+
+ligtable 8:
+81 kern 49FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 4:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 124:
+25 kern -103FX#,
+122 kern -103FX#,
+121 kern -103FX#,
+119 kern -103FX#,
+118 kern -103FX#,
+117 kern -103FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -103FX#,
+115 kern -103FX#,
+28 kern -103FX#,
+114 kern -103FX#,
+113 kern -103FX#,
+30 kern -103FX#,
+112 kern -103FX#,
+31 kern -103FX#,
+111 kern -103FX#,
+109 kern -103FX#,
+108 kern -103FX#,
+106 kern -103FX#,
+20 kern -103FX#,
+103 kern -103FX#,
+102 kern -76FX#,
+19 kern -76FX#,
+100 kern -76FX#,
+21 kern -103FX#,
+27 kern -103FX#,
+99 kern -103FX#,
+98 kern -103FX#,
+23 kern -103FX#,
+97 kern -103FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -94FX#,
+85 kern -112FX#,
+12 kern -112FX#,
+82 kern -112FX#,
+81 kern -94FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -112FX#,
+79 kern -112FX#,
+78 kern 35FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -112FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -112FX#,
+7 kern -112FX#;
+
+ligtable 122:
+121 kern 67FX#;
+
+ligtable 118:
+121 kern 67FX#;
+
+ligtable 112:
+39=:30,
+104=:30,
+121 kern 40FX#;
+
+ligtable 108:
+121 kern 67FX#;
+
+ligtable 107:
+121 kern 40FX#;
+
+ligtable 106:
+39=:21,
+121 kern 40FX#;
+
+ligtable 103:
+39=:25,
+104=:20,
+121 kern 40FX#;
+
+ligtable 88:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 87:
+81 kern -67FX#;
+
+ligtable 86:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 85:
+39=:7,
+81 kern -67FX#;
+
+ligtable 82:
+39=:12,
+81 kern -67FX#;
+
+ligtable 80:
+39=:14,
+104=:14,
+72=:14,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 77:
+25 kern -76FX#,
+122 kern -76FX#,
+121 kern -76FX#,
+119 kern -76FX#,
+118 kern -76FX#,
+117 kern -76FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -76FX#,
+115 kern -76FX#,
+28 kern -76FX#,
+114 kern -76FX#,
+113 kern -76FX#,
+30 kern -76FX#,
+112 kern -76FX#,
+31 kern -76FX#,
+111 kern -76FX#,
+109 kern -76FX#,
+108 kern -76FX#,
+106 kern -76FX#,
+20 kern -76FX#,
+103 kern -76FX#,
+102 kern -49FX#,
+19 kern -49FX#,
+100 kern -49FX#,
+21 kern -76FX#,
+27 kern -76FX#,
+99 kern -76FX#,
+98 kern -76FX#,
+23 kern -76FX#,
+97 kern -76FX#,
+86 kern -76FX#,
+81 kern -67FX#,
+70 kern -76FX#;
+
+ligtable 76:
+86 kern -184FX#,
+10 kern -103FX#,
+83 kern -103FX#,
+14 kern -134FX#,
+80 kern -134FX#,
+78 kern -134FX#,
+77 kern -134FX#,
+75 kern -134FX#,
+72 kern -134FX#,
+4 kern -184FX#,
+71 kern -184FX#,
+70 kern -134FX#,
+3 kern -103FX#,
+68 kern -103FX#,
+65 kern -134FX#;
+
+ligtable 71:
+39=:9,
+104=:4,
+72=:4,
+81 kern 49FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 70:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 68:
+122=:3,
+90=:3,
+81 kern 49FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 63:
+25 kern -202FX#,
+122 kern -202FX#,
+121 kern -202FX#,
+119 kern -202FX#,
+118 kern -202FX#,
+117 kern -202FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -202FX#,
+115 kern -202FX#,
+28 kern -202FX#,
+114 kern -202FX#,
+113 kern -202FX#,
+30 kern -202FX#,
+112 kern -202FX#,
+31 kern -202FX#,
+111 kern -202FX#,
+109 kern -202FX#,
+108 kern -202FX#,
+106 kern -202FX#,
+20 kern -202FX#,
+103 kern -202FX#,
+102 kern -76FX#,
+19 kern -76FX#,
+100 kern -76FX#,
+21 kern -202FX#,
+27 kern -202FX#,
+99 kern -202FX#,
+98 kern -202FX#,
+23 kern -202FX#,
+97 kern -202FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -193FX#,
+85 kern -112FX#,
+12 kern -112FX#,
+82 kern -112FX#,
+81 kern -193FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -112FX#,
+79 kern -112FX#,
+78 kern 35FX#,
+74 kern -89FX#,
+72 kern 22FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -112FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -112FX#,
+7 kern -112FX#;
+
+ligtable 33:
+25 kern -139FX#,
+122 kern -139FX#,
+121 kern -139FX#,
+119 kern -139FX#,
+118 kern -139FX#,
+117 kern -139FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -139FX#,
+115 kern -139FX#,
+28 kern -139FX#,
+114 kern -139FX#,
+113 kern -139FX#,
+30 kern -139FX#,
+112 kern -139FX#,
+31 kern -139FX#,
+111 kern -139FX#,
+109 kern -139FX#,
+108 kern -139FX#,
+106 kern -139FX#,
+20 kern -139FX#,
+103 kern -139FX#,
+102 kern -76FX#,
+19 kern -76FX#,
+100 kern -76FX#,
+21 kern -139FX#,
+27 kern -139FX#,
+99 kern -139FX#,
+98 kern -139FX#,
+23 kern -139FX#,
+97 kern -139FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -130FX#,
+85 kern -112FX#,
+12 kern -112FX#,
+82 kern -112FX#,
+81 kern -130FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -112FX#,
+79 kern -112FX#,
+78 kern 35FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -112FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -112FX#,
+7 kern -112FX#;
+
+font_slant := 0.1700;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "artmbs10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/artmi10.mf b/Master/texmf-dist/fonts/source/public/armenian/artmi10.mf
new file mode 100644
index 00000000000..585deb5ac6c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/artmi10.mf
@@ -0,0 +1,9094 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 artmi10.mf (Armenian Times Italic 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,158FX#,752FY#,0FY#);
+"bacakanchakan";
+z1=(327FX,684FY);
+z2=(331FX,719FY);
+z3=(323FX,753FY);
+z4=(301FX,745FY);
+z5=(303FX,718FY);
+z6=(282FX,685FY);
+z7=(239FX,651FY);
+z8=(202FX,629FY);
+z9=(155FX,598FY);
+z10=(111FX,525FY);
+z11=(113FX,457FY);
+z12=(133FX,464FY);
+z13=(133FX,490FY);
+z14=(172FX,542FY);
+z15=(201FX,560FY);
+z16=(232FX,581FY);
+z17=(271FX,604FY);
+z18=(308FX,640FY);
+z19=(327FX,684FY);
+FuF (z1
+{3,13} .. {0,10}z2
+{-1,14} .. {-4,9}z3
+-- z4
+{4,-10} .. {-3,-8}z5
+{-4,-14} .. {-10,-8}z6
+-- z7
+-- z8
+-- z9
+{-21,-14} .. {-8,-35}z10
+{-6,-24} .. {7,-21}z11
+-- z12
+{-2,9} .. {2,8}z13
+{2,10} .. {24,25}z14
+{12,8} .. {7,4}z15
+-- z16
+-- z17
+{16,11} .. {9,14}z18
+{10,14} .. {3,15}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(34,449FX#,624FY#,0FY#);
+"quotedblright";
+z1=(254FX,549FY);
+z2=(252FX,541FY);
+z3=(250FX,532FY);
+z4=(210FX,444FY);
+z5=(138FX,372FY);
+z6=(138FX,372FY);
+z7=(134FX,365FY);
+z8=(135FX,360FY);
+z9=(136FX,357FY);
+z10=(142FX,356FY);
+z11=(148FX,357FY);
+z12=(225FX,435FY);
+z13=(270FX,532FY);
+z14=(272FX,597FY);
+z15=(233FX,624FY);
+z16=(195FX,610FY);
+z17=(175FX,578FY);
+z18=(179FX,544FY);
+z19=(209FX,530FY);
+z20=(254FX,549FY);
+z21=(429FX,549FY);
+z22=(425FX,532FY);
+z23=(385FX,444FY);
+z24=(313FX,372FY);
+z25=(309FX,365FY);
+z26=(310FX,360FY);
+z27=(311FX,357FY);
+z28=(317FX,356FY);
+z29=(323FX,357FY);
+z30=(324FX,357FY);
+z31=(401FX,436FY);
+z32=(445FX,532FY);
+z33=(450FX,576FY);
+z34=(439FX,611FY);
+z35=(408FX,624FY);
+z36=(370FX,611FY);
+z37=(349FX,578FY);
+z38=(354FX,544FY);
+z39=(385FX,530FY);
+z40=(429FX,549FY);
+FuF (z1
+{-1,-3} .. {-1,-3}z2
+{0,-2} .. {-1,-4}z3
+{-7,-30} .. {-19,-28}z4
+{-19,-28} .. {-29,-20}z5
+-- z6
+{-2,-3} .. {-1,-2}z7
+{0,-1} .. {1,-2}z8
+-- z9
+{2,-1} .. {2,0}z10
+{2,0} .. {2,1}z11
+{30,22} .. {21,30}z12
+{22,31} .. {8,34}z13
+{6,25} .. {-5,19}z14
+{-5,18} .. {-21,0}z15
+{-15,0} .. {-11,-10}z16
+{-10,-9} .. {-3,-12}z17
+{-3,-13} .. {6,-10}z18
+{6,-9} .. {14,0}z19
+{17,0} .. {13,13}z20
+);
+FuF (z21
+{-1,-4} .. {-2,-8}z22
+{-7,-30} .. {-19,-28}z23
+{-20,-28} .. {-28,-20}z24
+{-2,-2} .. {-1,-3}z25
+{0,-2} .. {1,-2}z26
+-- z27
+{2,-1} .. {2,0}z28
+{1,0} .. {3,1}z29
+-- z30
+{30,22} .. {22,31}z31
+{21,30} .. {8,34}z32
+{4,15} .. {0,15}z33
+{-1,14} .. {-7,9}z34
+{-7,9} .. {-14,0}z35
+{-14,0} .. {-11,-9}z36
+{-11,-10} .. {-3,-12}z37
+{-3,-13} .. {6,-9}z38
+{6,-9} .. {15,0}z39
+{16,0} .. {13,13}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(35,749FX#,624FY#,174FY#);
+"numbersign";
+z1=(142FX,294FY);
+z2=(344FX,294FY);
+z3=(273FX,156FY);
+z4=(107FX,156FY);
+z5=(93FX,150FY);
+z6=(85FX,138FY);
+z7=(87FX,125FY);
+z8=(98FX,120FY);
+z9=(253FX,120FY);
+z10=(112FX,-152FY);
+z11=(120FX,-174FY);
+z12=(145FX,-162FY);
+z13=(290FX,120FY);
+z14=(459FX,120FY);
+z15=(318FX,-152FY);
+z16=(326FX,-174FY);
+z17=(351FX,-162FY);
+z18=(496FX,120FY);
+z19=(710FX,120FY);
+z20=(724FX,125FY);
+z21=(733FX,138FY);
+z22=(731FX,151FY);
+z23=(719FX,156FY);
+z24=(516FX,156FY);
+z25=(587FX,294FY);
+z26=(754FX,294FY);
+z27=(768FX,299FY);
+z28=(776FX,312FY);
+z29=(774FX,325FY);
+z30=(763FX,330FY);
+z31=(608FX,330FY);
+z32=(748FX,602FY);
+z33=(741FX,624FY);
+z34=(715FX,612FY);
+z35=(570FX,330FY);
+z36=(402FX,330FY);
+z37=(542FX,602FY);
+z38=(535FX,624FY);
+z39=(509FX,612FY);
+z40=(364FX,330FY);
+z41=(151FX,330FY);
+z42=(137FX,325FY);
+z43=(128FX,312FY);
+z44=(131FX,300FY);
+z45=(142FX,294FY);
+z46=(479FX,156FY);
+z47=(310FX,156FY);
+z48=(381FX,294FY);
+z49=(549FX,294FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-5,0} .. {-4,-4}z5
+{-4,-3} .. {-1,-5}z6
+{-1,-5} .. {3,-4}z7
+{3,-4} .. {5,0}z8
+-- z9
+-- z10
+{-3,-12} .. {8,-2}z11
+{12,0} .. {4,9}z12
+-- z13
+-- z14
+-- z15
+{-3,-12} .. {8,-2}z16
+{12,0} .. {4,9}z17
+-- z18
+-- z19
+{5,0} .. {4,4}z20
+{5,3} .. {2,5}z21
+{1,5} .. {-2,3}z22
+{-3,3} .. {-5,0}z23
+-- z24
+-- z25
+-- z26
+{5,0} .. {5,3}z27
+{4,4} .. {1,5}z28
+{1,5} .. {-3,3}z29
+{-3,4} .. {-5,0}z30
+-- z31
+-- z32
+{3,12} .. {-7,2}z33
+{-12,0} .. {-4,-9}z34
+-- z35
+-- z36
+-- z37
+{3,13} .. {-8,1}z38
+{-13,0} .. {-4,-9}z39
+-- z40
+-- z41
+{-5,0} .. {-4,-4}z42
+{-5,-4} .. {-2,-5}z43
+{-1,-5} .. {3,-3}z44
+{2,-4} .. {5,0}z45
+);
+FuF (z46
+-- z47
+-- z48
+-- z49
+);
+lbl (range 1 thru 49);
+endchar;
+
+beginchar(36,470FX#,676FY#,71FY#);
+"dollar";
+z1=(94FX,154FY);
+z2=(61FX,23FY);
+z3=(124FX,0FY);
+z4=(215FX,-13FY);
+z5=(200FX,-72FY);
+z6=(230FX,-72FY);
+z7=(244FX,-13FY);
+z8=(384FX,36FY);
+z9=(469FX,155FY);
+z10=(474FX,197FY);
+z11=(459FX,250FY);
+z12=(340FX,370FY);
+z13=(399FX,604FY);
+z14=(485FX,563FY);
+z15=(501FX,505FY);
+z16=(496FX,456FY);
+z17=(514FX,456FY);
+z18=(549FX,594FY);
+z19=(468FX,626FY);
+z20=(407FX,635FY);
+z21=(418FX,677FY);
+z22=(388FX,677FY);
+z23=(377FX,635FY);
+z24=(253FX,590FY);
+z25=(177FX,484FY);
+z26=(181FX,399FY);
+z27=(290FX,286FY);
+z28=(223FX,17FY);
+z29=(111FX,116FY);
+z30=(114FX,154FY);
+z31=(316FX,389FY);
+z32=(257FX,514FY);
+z33=(370FX,603FY);
+z34=(252FX,17FY);
+z35=(315FX,266FY);
+z36=(374FX,208FY);
+z37=(390FX,132FY);
+z38=(309FX,34FY);
+z39=(252FX,17FY);
+FuF (z1
+-- z2
+{21,-9} .. {21,-6}z3
+{29,-7} .. {32,-1}z4
+-- z5
+-- z6
+-- z7
+{53,5} .. {41,28}z8
+{45,32} .. {12,48}z9
+{4,14} .. {0,14}z10
+{0,19} .. {-10,16}z11
+{-16,27} .. {-63,53}z12
+-- z13
+{41,-5} .. {16,-23}z14
+{10,-15} .. {0,-24}z15
+{0,-15} .. {-4,-18}z16
+-- z17
+-- z18
+{-43,19} .. {-11,3}z19
+{-17,4} .. {-24,2}z20
+-- z21
+-- z22
+-- z23
+{-47,-6} .. {-36,-24}z24
+{-40,-28} .. {-11,-43}z25
+{-8,-33} .. {11,-24}z26
+{14,-33} .. {58,-42}z27
+-- z28
+{-74,8} .. {-1,58}z29
+{0,12} .. {2,14}z30
+);
+FuF (z31
+{-50,40} .. {11,43}z32
+{13,52} .. {62,7}z33
+);
+FuF (z34
+-- z35
+{30,-25} .. {9,-13}z36
+{17,-24} .. {-7,-27}z37
+{-11,-42} .. {-43,-23}z38
+{-14,-8} .. {-24,-4}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(37,652FX#,638FY#,24FY#);
+"percent";
+z1=(344FX,512FY);
+z2=(309FX,603FY);
+z3=(234FX,638FY);
+z4=(154FX,609FY);
+z5=(83FX,531FY);
+z6=(59FX,427FY);
+z7=(88FX,340FY);
+z8=(171FX,305FY);
+z9=(290FX,366FY);
+z10=(344FX,512FY);
+z11=(604FX,638FY);
+z12=(565FX,638FY);
+z13=(65FX,-24FY);
+z14=(104FX,-24FY);
+z15=(612FX,184FY);
+z16=(577FX,274FY);
+z17=(498FX,309FY);
+z18=(379FX,245FY);
+z19=(325FX,97FY);
+z20=(360FX,9FY);
+z21=(440FX,-24FY);
+z22=(565FX,45FY);
+z23=(612FX,184FY);
+z24=(284FX,564FY);
+z25=(259FX,434FY);
+z26=(164FX,321FY);
+z27=(132FX,337FY);
+z28=(118FX,377FY);
+z29=(120FX,421FY);
+z30=(141FX,504FY);
+z31=(237FX,620FY);
+z32=(269FX,604FY);
+z33=(284FX,564FY);
+z34=(551FX,229FY);
+z35=(527FX,105FY);
+z36=(471FX,8FY);
+z37=(431FX,-6FY);
+z38=(400FX,8FY);
+z39=(386FX,49FY);
+z40=(408FX,168FY);
+z41=(465FX,273FY);
+z42=(505FX,290FY);
+z43=(537FX,274FY);
+z44=(551FX,229FY);
+FuF (z1
+{-1,37} .. {-23,24}z2
+{-22,24} .. {-28,-1}z3
+{-24,0} .. {-29,-19}z4
+{-31,-19} .. {-17,-33}z5
+{-17,-33} .. {1,-37}z6
+{1,-36} .. {18,-22}z7
+{20,-24} .. {35,1}z8
+{44,0} .. {35,40}z9
+{38,43} .. {-2,55}z10
+);
+FuF (z11
+-- z12
+-- z13
+-- z14
+);
+FuF (z15
+{-1,37} .. {-22,23}z16
+{-23,23} .. {-29,0}z17
+{-43,-1} .. {-37,-42}z18
+{-37,-43} .. {1,-56}z19
+{1,-36} .. {22,-22}z20
+{22,-23} .. {32,1}z21
+{48,0} .. {35,46}z22
+{32,43} .. {-1,50}z23
+);
+FuF (z24
+{0,-43} .. {-17,-44}z25
+{-29,-76} .. {-34,1}z26
+{-13,1} .. {-8,10}z27
+{-10,10} .. {0,16}z28
+{0,17} .. {1,13}z29
+{3,23} .. {11,32}z30
+{27,77} .. {37,0}z31
+{12,-2} .. {9,-9}z32
+{10,-13} .. {0,-14}z33
+);
+FuF (z34
+{0,-41} .. {-16,-42}z35
+{-17,-46} .. {-20,-19}z36
+{-12,-10} .. {-15,1}z37
+{-13,0} .. {-8,9}z38
+{-9,11} .. {0,17}z39
+{-1,33} .. {15,46}z40
+{16,50} .. {22,20}z41
+{13,12} .. {14,0}z42
+{12,-1} .. {9,-10}z43
+{10,-10} .. {0,-20}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(38,699FX#,645FY#,19FY#);
+"ampersand";
+z1=(413FX,105FY);
+z2=(358FX,223FY);
+z3=(324FX,346FY);
+z4=(428FX,446FY);
+z5=(477FX,526FY);
+z6=(484FX,582FY);
+z7=(471FX,628FY);
+z8=(432FX,645FY);
+z9=(363FX,626FY);
+z10=(306FX,573FY);
+z11=(273FX,505FY);
+z12=(262FX,318FY);
+z13=(122FX,200FY);
+z14=(67FX,116FY);
+z15=(72FX,45FY);
+z16=(121FX,-3FY);
+z17=(195FX,-20FY);
+z18=(376FX,49FY);
+z19=(518FX,-20FY);
+z20=(616FX,18FY);
+z21=(675FX,109FY);
+z22=(653FX,109FY);
+z23=(626FX,57FY);
+z24=(579FX,20FY);
+z25=(525FX,7FY);
+z26=(422FX,88FY);
+z27=(496FX,162FY);
+z28=(574FX,253FY);
+z29=(616FX,302FY);
+z30=(672FX,345FY);
+z31=(743FX,360FY);
+z32=(750FX,388FY);
+z33=(660FX,385FY);
+z34=(552FX,388FY);
+z35=(545FX,360FY);
+z36=(596FX,343FY);
+z37=(600FX,320FY);
+z38=(590FX,302FY);
+z39=(557FX,264FY);
+z40=(413FX,105FY);
+z41=(148FX,144FY);
+z42=(215FX,255FY);
+z43=(265FX,297FY);
+z44=(297FX,188FY);
+z45=(362FX,65FY);
+z46=(206FX,7FY);
+z47=(149FX,48FY);
+z48=(148FX,144FY);
+z49=(455FX,526FY);
+z50=(412FX,456FY);
+z51=(322FX,368FY);
+z52=(335FX,526FY);
+z53=(371FX,595FY);
+z54=(426FX,624FY);
+z55=(452FX,611FY);
+z56=(461FX,576FY);
+z57=(455FX,526FY);
+FuF (z1
+{-17,31} .. {-20,48}z2
+{-16,39} .. {-6,43}z3
+{43,38} .. {26,29}z4
+{27,30} .. {6,24}z5
+{5,19} .. {0,18}z6
+{0,19} .. {-8,12}z7
+{-8,11} .. {-17,0}z8
+{-24,0} .. {-23,-13}z9
+{-22,-13} .. {-16,-22}z10
+{-16,-21} .. {-6,-24}z11
+{-16,-61} .. {8,-63}z12
+-- z13
+{-30,-25} .. {-7,-31}z14
+{-7,-26} .. {10,-21}z15
+{10,-20} .. {23,-12}z16
+{22,-11} .. {27,0}z17
+{59,0} .. {62,46}z18
+{38,-46} .. {57,0}z19
+{35,0} .. {30,25}z20
+{31,25} .. {8,35}z21
+-- z22
+{-5,-19} .. {-13,-16}z23
+{-13,-15} .. {-18,-9}z24
+{-17,-9} .. {-18,0}z25
+{-35,0} .. {-34,54}z26
+{23,20} .. {27,30}z27
+{26,29} .. {26,31}z28
+-- z29
+{16,19} .. {21,9}z30
+{21,10} .. {27,0}z31
+-- z32
+{-30,-2} .. {-30,0}z33
+{-36,0} .. {-36,2}z34
+-- z35
+{24,0} .. {10,-11}z36
+{5,-6} .. {-2,-9}z37
+{-2,-7} .. {-5,-5}z38
+-- z39
+{-62,-73} .. {-35,-33}z40
+);
+FuF (z41
+{12,46} .. {33,28}z42
+-- z43
+{6,-32} .. {17,-40}z44
+{24,-58} .. {18,-25}z45
+{-54,-39} .. {-50,0}z46
+{-28,0} .. {-10,27}z47
+{-10,27} .. {9,37}z48
+);
+FuF (z49
+{-5,-20} .. {-24,-27}z50
+{-23,-26} .. {-37,-32}z51
+{-5,53} .. {13,52}z52
+{6,27} .. {18,19}z53
+{17,20} .. {20,0}z54
+{12,0} .. {5,-9}z55
+{6,-8} .. {0,-15}z56
+{1,-15} .. {-5,-18}z57
+);
+lbl (range 1 thru 57);
+endchar;
+
+beginchar(39,234FX#,624FY#,0FY#);
+"apatharc";
+z1=(322FX,566FY);
+z2=(312FX,601FY);
+z3=(264FX,624FY);
+z4=(220FX,608FY);
+z5=(196FX,570FY);
+z6=(194FX,554FY);
+z7=(242FX,523FY);
+z8=(255FX,524FY);
+z9=(267FX,526FY);
+z10=(274FX,524FY);
+z11=(276FX,513FY);
+z12=(237FX,458FY);
+z13=(174FX,413FY);
+z14=(178FX,395FY);
+z15=(262FX,452FY);
+z16=(318FX,535FY);
+z17=(322FX,566FY);
+FuF (z1
+{-1,15} .. {-6,8}z2
+{-11,16} .. {-21,-1}z3
+{-17,0} .. {-12,-11}z4
+{-13,-13} .. {-3,-12}z5
+{-1,-6} .. {0,-5}z6
+{2,-23} .. {30,2}z7
+-- z8
+-- z9
+-- z10
+{1,-2} .. {0,-6}z11
+{-6,-19} .. {-20,-18}z12
+{-20,-17} .. {-22,-13}z13
+-- z14
+{29,13} .. {27,25}z15
+{30,28} .. {7,28}z16
+{3,12} .. {-1,9}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(40,390FX#,749FY#,250FY#);
+"parenleft";
+z1=(539FX,732FY);
+z2=(533FX,750FY);
+z3=(121FX,260FY);
+z4=(100FX,98FY);
+z5=(108FX,25FY);
+z6=(127FX,-43FY);
+z7=(200FX,-173FY);
+z8=(280FX,-250FY);
+z9=(299FX,-232FY);
+z10=(188FX,-15FY);
+z11=(222FX,261FY);
+z12=(337FX,542FY);
+z13=(539FX,732FY);
+FuF (z1
+-- z2
+{-224,-116} .. {-51,-210}z3
+{-14,-56} .. {0,-53}z4
+{3,-37} .. {2,-12}z5
+{4,-21} .. {9,-24}z6
+{18,-49} .. {31,-37}z7
+{33,-39} .. {21,-12}z8
+-- z9
+{-66,53} .. {-8,91}z10
+{-6,71} .. {29,113}z11
+{30,116} .. {47,71}z12
+{47,71} .. {88,56}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(41,390FX#,749FY#,250FY#);
+"parenright";
+z1=(-25FX,-232FY);
+z2=(-19FX,-250FY);
+z3=(253FX,-36FY);
+z4=(393FX,240FY);
+z5=(386FX,544FY);
+z6=(325FX,659FY);
+z7=(234FX,750FY);
+z8=(215FX,732FY);
+z9=(323FX,528FY);
+z10=(292FX,239FY);
+z11=(176FX,-43FY);
+z12=(-25FX,-232FY);
+FuF (z1
+-- z2
+{113,60} .. {68,83}z3
+{70,86} .. {24,98}z4
+{28,115} .. {-33,88}z5
+{-14,38} .. {-27,39}z6
+{-31,44} .. {-30,16}z7
+-- z8
+{66,-54} .. {6,-82}z9
+{6,-84} .. {-27,-109}z10
+{-29,-116} .. {-49,-72}z11
+{-49,-73} .. {-84,-53}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(42,470FX#,637FY#,0FY#);
+"asterisk";
+z1=(547FX,534FY);
+z2=(543FX,549FY);
+z3=(521FX,559FY);
+z4=(450FX,514FY);
+z5=(368FX,456FY);
+z6=(384FX,504FY);
+z7=(404FX,549FY);
+z8=(421FX,581FY);
+z9=(430FX,601FY);
+z10=(431FX,610FY);
+z11=(427FX,627FY);
+z12=(405FX,637FY);
+z13=(377FX,626FY);
+z14=(363FX,604FY);
+z15=(361FX,551FY);
+z16=(359FX,508FY);
+z17=(351FX,458FY);
+z18=(287FX,519FY);
+z19=(244FX,557FY);
+z20=(220FX,548FY);
+z21=(203FX,510FY);
+z22=(213FX,493FY);
+z23=(263FX,477FY);
+z24=(310FX,464FY);
+z25=(326FX,454FY);
+z26=(340FX,444FY);
+z27=(237FX,407FY);
+z28=(165FX,363FY);
+z29=(163FX,354FY);
+z30=(168FX,338FY);
+z31=(191FX,331FY);
+z32=(226FX,345FY);
+z33=(264FX,378FY);
+z34=(304FX,408FY);
+z35=(325FX,420FY);
+z36=(342FX,430FY);
+z37=(338FX,405FY);
+z38=(326FX,373FY);
+z39=(308FX,337FY);
+z40=(282FX,287FY);
+z41=(281FX,274FY);
+z42=(284FX,260FY);
+z43=(305FX,250FY);
+z44=(336FX,263FY);
+z45=(353FX,291FY);
+z46=(348FX,348FY);
+z47=(361FX,430FY);
+z48=(418FX,373FY);
+z49=(465FX,330FY);
+z50=(480FX,333FY);
+z51=(493FX,342FY);
+z52=(502FX,353FY);
+z53=(507FX,371FY);
+z54=(457FX,407FY);
+z55=(373FX,443FY);
+z56=(452FX,475FY);
+z57=(510FX,488FY);
+z58=(547FX,525FY);
+z59=(547FX,534FY);
+FuF (z1
+{-1,8} .. {-2,2}z2
+{-5,7} .. {-9,0}z3
+{-10,-2} .. {-37,-28}z4
+{-42,-32} .. {-13,-7}z5
+{4,15} .. {6,17}z6
+{7,19} .. {6,11}z7
+{8,15} .. {3,6}z8
+{4,8} .. {2,6}z9
+{1,2} .. {0,4}z10
+{-1,9} .. {-1,3}z11
+{-5,7} .. {-9,0}z12
+{-12,0} .. {-6,-8}z13
+{-8,-8} .. {-2,-7}z14
+{-2,-10} .. {1,-25}z15
+{0,-15} .. {-2,-14}z16
+{-2,-16} .. {-3,-17}z17
+{-26,17} .. {-17,24}z18
+{-17,25} .. {-11,0}z19
+{-10,-2} .. {-5,-4}z20
+{-12,-12} .. {0,-13}z21
+{1,-9} .. {5,-2}z22
+{6,-4} .. {27,-6}z23
+{27,-7} .. {4,-2}z24
+{8,-5} .. {3,-2}z25
+{7,-5} .. {2,-2}z26
+{-23,-15} .. {-46,-10}z27
+{-45,-10} .. {-3,-19}z28
+{-2,-3} .. {0,-3}z29
+{1,-8} .. {2,-3}z30
+{4,-5} .. {11,0}z31
+{12,0} .. {11,9}z32
+-- z33
+{16,13} .. {11,6}z34
+{9,6} .. {5,2}z35
+{11,7} .. {0,0}z36
+-- z37
+{-5,-13} .. {-3,-8}z38
+{-9,-16} .. {-4,-7}z39
+-- z40
+{-1,-3} .. {0,-6}z41
+{0,-6} .. {2,-4}z42
+{5,-7} .. {9,0}z43
+{11,1} .. {10,8}z44
+{10,8} .. {2,11}z45
+-- z46
+{1,20} .. {8,34}z47
+{20,-9} .. {18,-29}z48
+{19,-28} .. {13,0}z49
+{6,0} .. {4,2}z50
+{6,3} .. {3,3}z51
+{6,6} .. {0,1}z52
+{4,3} .. {-1,9}z53
+{0,16} .. {-33,8}z54
+{-38,8} .. {-18,16}z55
+{31,17} .. {22,4}z56
+-- z57
+{19,6} .. {6,18}z58
+{0,2} .. {0,5}z59
+);
+lbl (range 1 thru 59);
+endchar;
+
+beginchar(43,537FX#,479FY#,22FY#);
+"plus";
+z1=(571FX,197FY);
+z2=(586FX,257FY);
+z3=(364FX,257FY);
+z4=(419FX,479FY);
+z5=(359FX,479FY);
+z6=(304FX,257FY);
+z7=(83FX,257FY);
+z8=(68FX,197FY);
+z9=(289FX,197FY);
+z10=(234FX,-23FY);
+z11=(294FX,-23FY);
+z12=(349FX,197FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,234FX#,96FY#,133FY#);
+"comma";
+z1=(144FX,38FY);
+z2=(134FX,73FY);
+z3=(85FX,96FY);
+z4=(41FX,80FY);
+z5=(18FX,41FY);
+z6=(16FX,26FY);
+z7=(64FX,-6FY);
+z8=(77FX,-5FY);
+z9=(89FX,-2FY);
+z10=(96FX,-5FY);
+z11=(98FX,-15FY);
+z12=(60FX,-68FY);
+z13=(-5FX,-115FY);
+z14=(-1FX,-133FY);
+z15=(86FX,-75FY);
+z16=(140FX,6FY);
+z17=(144FX,38FY);
+FuF (z1
+{-1,15} .. {-6,8}z2
+{-11,16} .. {-22,-1}z3
+{-17,0} .. {-13,-11}z4
+{-12,-13} .. {-3,-13}z5
+{-2,-5} .. {0,-5}z6
+{2,-23} .. {31,2}z7
+-- z8
+-- z9
+-- z10
+{1,-1} .. {0,-6}z11
+{-4,-17} .. {-21,-18}z12
+{-21,-19} .. {-23,-12}z13
+-- z14
+{31,14} .. {27,25}z15
+{29,28} .. {7,26}z16
+{3,13} .. {-1,9}z17
+);
+lbl (range 1 thru 17);
+endchar;
+
+beginchar(45,422FX#,257FY#,0FY#);
+"miuthyun";
+z1=(103FX,197FY);
+z2=(418FX,197FY);
+z3=(433FX,257FY);
+z4=(118FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,234FX#,94FY#,10FY#);
+"period";
+z1=(128FX,57FY);
+z2=(120FX,79FY);
+z3=(87FX,94FY);
+z4=(44FX,78FY);
+z5=(21FX,40FY);
+z6=(20FX,27FY);
+z7=(28FX,4FY);
+z8=(60FX,-11FY);
+z9=(102FX,4FY);
+z10=(126FX,41FY);
+z11=(128FX,57FY);
+FuF (z1
+{-2,10} .. {-4,4}z2
+{-9,11} .. {-12,-1}z3
+{-17,0} .. {-12,-10}z4
+{-12,-11} .. {-3,-14}z5
+{-1,-3} .. {0,-6}z6
+{1,-11} .. {4,-4}z7
+{10,-10} .. {11,0}z8
+{16,0} .. {12,10}z9
+{12,10} .. {3,15}z10
+{2,5} .. {0,5}z11
+);
+lbl (range 1 thru 11);
+endchar;
+
+beginchar(47,261FX#,637FY#,13FY#);
+"slash";
+z1=(437FX,637FY);
+z2=(373FX,637FY);
+z3=(-6FX,-13FY);
+z4=(58FX,-13FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,470FX#,637FY#,13FY#);
+"zero";
+z1=(549FX,447FY);
+z2=(537FX,536FY);
+z3=(402FX,637FY);
+z4=(205FX,526FY);
+z5=(106FX,312FY);
+z6=(90FX,176FY);
+z7=(101FX,88FY);
+z8=(238FX,-13FY);
+z9=(426FX,90FY);
+z10=(533FX,313FY);
+z11=(549FX,447FY);
+z12=(471FX,502FY);
+z13=(441FX,311FY);
+z14=(379FX,127FY);
+z15=(244FX,12FY);
+z16=(176FX,61FY);
+z17=(167FX,123FY);
+z18=(167FX,148FY);
+z19=(171FX,183FY);
+z20=(200FX,322FY);
+z21=(279FX,526FY);
+z22=(395FX,613FY);
+z23=(466FX,544FY);
+z24=(471FX,502FY);
+FuF (z1
+{-1,33} .. {-7,27}z2
+{-17,68} .. {-72,-1}z3
+{-75,0} .. {-57,-74}z4
+{-46,-59} .. {-21,-84}z5
+{-12,-51} .. {1,-40}z6
+{1,-36} .. {6,-23}z7
+{18,-68} .. {73,0}z8
+{74,0} .. {52,69}z9
+{52,68} .. {20,80}z10
+{12,50} .. {-1,39}z11
+);
+FuF (z12
+{0,-51} .. {-20,-76}z13
+{-22,-83} .. {-19,-40}z14
+{-38,-78} .. {-52,1}z15
+{-36,0} .. {-10,33}z16
+{-6,24} .. {1,17}z17
+{0,23} .. {0,-6}z18
+{2,14} .. {1,9}z19
+{5,39} .. {14,54}z20
+{21,80} .. {32,56}z21
+{33,59} .. {44,0}z22
+{37,0} .. {10,-46}z23
+{3,-12} .. {0,-16}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(49,470FX#,637FY#,0FY#);
+"one";
+z1=(448FX,636FY);
+z2=(440FX,637FY);
+z3=(249FX,552FY);
+z4=(257FX,540FY);
+z5=(314FX,553FY);
+z6=(338FX,527FY);
+z7=(336FX,512FY);
+z8=(229FX,86FY);
+z9=(193FX,27FY);
+z10=(121FX,14FY);
+z11=(117FX,0FY);
+z12=(378FX,0FY);
+z13=(381FX,14FY);
+z14=(312FX,23FY);
+z15=(305FX,72FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{22,10} .. {16,-2}z5
+{16,-2} .. {0,-15}z6
+{0,-5} .. {-1,-5}z7
+-- z8
+{-8,-30} .. {-16,-10}z9
+{-14,-8} .. {-34,0}z10
+-- z11
+-- z12
+-- z13
+{-40,1} .. {-6,5}z14
+{-10,9} .. {6,24}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(50,470FX#,637FY#,0FY#);
+"two";
+z1=(529FX,515FY);
+z2=(491FX,605FY);
+z3=(394FX,637FY);
+z4=(247FX,584FY);
+z5=(149FX,450FY);
+z6=(167FX,445FY);
+z7=(333FX,568FY);
+z8=(412FX,540FY);
+z9=(438FX,475FY);
+z10=(380FX,326FY);
+z11=(253FX,193FY);
+z12=(37FX,12FY);
+z13=(34FX,0FY);
+z14=(402FX,0FY);
+z15=(487FX,129FY);
+z16=(475FX,134FY);
+z17=(376FX,72FY);
+z18=(144FX,72FY);
+z19=(353FX,245FY);
+z20=(529FX,515FY);
+FuF (z1
+{-1,39} .. {-25,21}z2
+{-25,22} .. {-40,-1}z3
+{-54,0} .. {-44,-35}z4
+{-42,-33} .. {-23,-56}z5
+-- z6
+{51,83} .. {59,0}z7
+{33,0} .. {19,-18}z8
+{17,-16} .. {0,-27}z9
+{1,-44} .. {-40,-55}z10
+{-32,-45} .. {-52,-43}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{-32,-41} .. {-34,0}z17
+-- z18
+-- z19
+{119,98} .. {-2,81}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(51,470FX#,637FY#,13FY#);
+"three";
+z1=(512FX,542FY);
+z2=(494FX,597FY);
+z3=(393FX,637FY);
+z4=(169FX,485FY);
+z5=(182FX,481FY);
+z6=(348FX,581FY);
+z7=(405FX,564FY);
+z8=(430FX,512FY);
+z9=(427FX,483FY);
+z10=(357FX,382FY);
+z11=(230FX,323FY);
+z12=(228FX,311FY);
+z13=(299FX,308FY);
+z14=(353FX,286FY);
+z15=(386FX,235FY);
+z16=(390FX,203FY);
+z17=(327FX,63FY);
+z18=(224FX,21FY);
+z19=(162FX,47FY);
+z20=(101FX,74FY);
+z21=(70FX,64FY);
+z22=(54FX,28FY);
+z23=(83FX,-3FY);
+z24=(150FX,-13FY);
+z25=(346FX,42FY);
+z26=(463FX,204FY);
+z27=(471FX,262FY);
+z28=(387FX,378FY);
+z29=(508FX,510FY);
+z30=(512FX,542FY);
+FuF (z1
+{-1,21} .. {-11,16}z2
+{-18,27} .. {-50,0}z3
+{-94,0} .. {-56,-102}z4
+-- z5
+{54,68} .. {57,-1}z6
+{23,0} .. {15,-11}z7
+{16,-13} .. {0,-22}z8
+{-1,-15} .. {-1,-4}z9
+{-10,-42} .. {-36,-25}z10
+{-35,-24} .. {-50,-15}z11
+-- z12
+-- z13
+{20,-5} .. {16,-10}z14
+{16,-11} .. {6,-23}z15
+{3,-13} .. {0,-8}z16
+{-1,-55} .. {-41,-38}z17
+{-31,-29} .. {-38,1}z18
+{-15,0} .. {-27,17}z19
+{-29,18} .. {-12,0}z20
+{-13,-1} .. {-8,-6}z21
+{-11,-13} .. {0,-11}z22
+{0,-14} .. {19,-7}z23
+{22,-7} .. {23,1}z24
+{72,0} .. {59,36}z25
+{61,38} .. {17,70}z26
+{5,22} .. {0,17}z27
+{-1,54} .. {-55,24}z28
+{69,38} .. {11,49}z29
+{3,11} .. {0,11}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(52,470FX#,637FY#,0FY#);
+"four";
+z1=(514FX,637FY);
+z2=(473FX,637FY);
+z3=(72FX,218FY);
+z4=(57FX,158FY);
+z5=(322FX,158FY);
+z6=(282FX,0FY);
+z7=(355FX,0FY);
+z8=(394FX,158FY);
+z9=(491FX,158FY);
+z10=(506FX,218FY);
+z11=(409FX,218FY);
+z12=(417FX,542FY);
+z13=(336FX,218FY);
+z14=(109FX,218FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,470FX#,648FY#,13FY#);
+"five";
+z1=(580FX,642FY);
+z2=(573FX,649FY);
+z3=(523FX,624FY);
+z4=(326FX,624FY);
+z5=(167FX,399FY);
+z6=(167FX,389FY);
+z7=(326FX,349FY);
+z8=(396FX,239FY);
+z9=(343FX,94FY);
+z10=(222FX,22FY);
+z11=(161FX,51FY);
+z12=(93FX,80FY);
+z13=(46FX,31FY);
+z14=(151FX,-13FY);
+z15=(377FX,75FY);
+z16=(473FX,286FY);
+z17=(414FX,414FY);
+z18=(255FX,470FY);
+z19=(314FX,550FY);
+z20=(500FX,550FY);
+z21=(534FX,575FY);
+FuF (z1
+-- z2
+{-14,-16} .. {-19,0}z3
+-- z4
+-- z5
+-- z6
+{64,-1} .. {42,-26}z7
+{46,-27} .. {1,-46}z8
+{1,-50} .. {-36,-47}z9
+{-38,-48} .. {-43,0}z10
+{-16,0} .. {-25,20}z11
+{-25,19} .. {-21,0}z12
+{-33,0} .. {2,-33}z13
+{2,-29} .. {68,0}z14
+{87,0} .. {64,59}z15
+{66,59} .. {-2,82}z16
+{-1,53} .. {-39,32}z17
+{-38,32} .. {-68,5}z18
+-- z19
+-- z20
+{12,0} .. {11,17}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(54,470FX#,645FY#,13FY#);
+"six";
+z1=(588FX,645FY);
+z2=(237FX,492FY);
+z3=(90FX,154FY);
+z4=(132FX,30FY);
+z5=(243FX,-13FY);
+z6=(442FX,89FY);
+z7=(507FX,273FY);
+z8=(470FX,368FY);
+z9=(373FX,404FY);
+z10=(239FX,365FY);
+z11=(398FX,554FY);
+z12=(586FX,630FY);
+z13=(417FX,260FY);
+z14=(379FX,98FY);
+z15=(263FX,13FY);
+z16=(172FX,131FY);
+z17=(193FX,263FY);
+z18=(230FX,333FY);
+z19=(322FX,360FY);
+z20=(417FX,260FY);
+FuF (z1
+{-133,0} .. {-101,-102}z2
+{-101,-101} .. {3,-124}z3
+{1,-54} .. {27,-29}z4
+{26,-29} .. {47,0}z5
+{80,0} .. {53,68}z6
+{45,59} .. {-2,64}z7
+{0,39} .. {-24,24}z8
+{-24,24} .. {-41,0}z9
+{-53,0} .. {-37,-26}z10
+{33,76} .. {73,51}z11
+{61,42} .. {64,8}z12
+);
+FuF (z13
+{1,-58} .. {-26,-50}z14
+{-30,-56} .. {-47,0}z15
+{-59,0} .. {-1,78}z16
+{-1,43} .. {15,46}z17
+{13,39} .. {11,8}z18
+{27,18} .. {34,0}z19
+{62,0} .. {1,-67}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(55,470FX#,624FY#,7FY#);
+"seven";
+z1=(585FX,624FY);
+z2=(236FX,624FY);
+z3=(203FX,571FY);
+z4=(147FX,486FY);
+z5=(161FX,478FY);
+z6=(223FX,538FY);
+z7=(285FX,554FY);
+z8=(493FX,554FY);
+z9=(166FX,-7FY);
+z10=(227FX,-7FY);
+z11=(582FX,609FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{26,31} .. {15,9}z6
+{15,11} .. {26,0}z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+lbl (range 1 thru 11);
+endchar;
+
+beginchar(56,470FX#,637FY#,13FY#);
+"eight";
+z1=(536FX,538FY);
+z2=(498FX,611FY);
+z3=(402FX,637FY);
+z4=(245FX,578FY);
+z5=(182FX,457FY);
+z6=(259FX,313FY);
+z7=(202FX,275FY);
+z8=(89FX,101FY);
+z9=(129FX,18FY);
+z10=(235FX,-13FY);
+z11=(421FX,68FY);
+z12=(467FX,191FY);
+z13=(367FX,350FY);
+z14=(536FX,538FY);
+z15=(472FX,539FY);
+z16=(344FX,367FY);
+z17=(260FX,486FY);
+z18=(297FX,575FY);
+z19=(389FX,611FY);
+z20=(451FX,589FY);
+z21=(472FX,539FY);
+z22=(388FX,151FY);
+z23=(349FX,54FY);
+z24=(254FX,13FY);
+z25=(161FX,102FY);
+z26=(195FX,213FY);
+z27=(279FX,294FY);
+z28=(354FX,227FY);
+z29=(388FX,151FY);
+FuF (z1
+{0,31} .. {-25,18}z2
+{-25,18} .. {-39,-1}z3
+{-60,0} .. {-44,-39}z4
+{-43,-36} .. {1,-44}z5
+{1,-48} .. {50,-48}z6
+-- z7
+{-77,-51} .. {2,-65}z8
+{0,-35} .. {26,-21}z9
+{26,-21} .. {45,0}z10
+{81,0} .. {42,54}z11
+{32,40} .. {-1,42}z12
+{0,43} .. {-66,63}z13
+{114,52} .. {-2,73}z14
+);
+FuF (z15
+{1,-66} .. {-87,-49}z16
+{-55,40} .. {0,39}z17
+{-1,35} .. {25,24}z18
+{26,24} .. {36,0}z19
+{26,0} .. {15,-15}z20
+{14,-13} .. {0,-20}z21
+);
+FuF (z22
+{1,-37} .. {-27,-27}z23
+{-27,-27} .. {-36,0}z24
+{-61,0} .. {-2,59}z25
+{0,36} .. {23,38}z26
+{24,38} .. {32,16}z27
+{44,-38} .. {6,-6}z28
+{22,-25} .. {0,-26}z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(57,470FX#,637FY#,20FY#);
+"nine";
+z1=(546FX,471FY);
+z2=(504FX,594FY);
+z3=(393FX,638FY);
+z4=(195FX,536FY);
+z5=(129FX,352FY);
+z6=(166FX,257FY);
+z7=(263FX,221FY);
+z8=(397FX,260FY);
+z9=(239FX,71FY);
+z10=(50FX,-6FY);
+z11=(48FX,-21FY);
+z12=(399FX,133FY);
+z13=(546FX,471FY);
+z14=(464FX,493FY);
+z15=(443FX,362FY);
+z16=(406FX,292FY);
+z17=(314FX,264FY);
+z18=(219FX,364FY);
+z19=(257FX,526FY);
+z20=(373FX,611FY);
+
+z21=(464FX,493FY);
+FuF (z1
+{-1,53} .. {-27,29}z2
+{-26,29} .. {-47,0}z3
+{-80,0} .. {-52,-68}z4
+{-45,-59} .. {2,-63}z5
+{0,-40} .. {24,-23}z6
+{24,-24} .. {41,0}z7
+{53,0} .. {37,26}z8
+{-33,-76} .. {-72,-50}z9
+{-62,-43} .. {-64,-9}z10
+-- z11
+{133,0} .. {101,103}z12
+{101,100} .. {-3,125}z13
+);
+FuF (z14
+{1,-42} .. {-15,-45}z15
+{-13,-39} .. {-11,-7}z16
+{-27,-19} .. {-34,0}z17
+{-62,0} .. {-1,66}z18
+{-1,59} .. {26,49}z19
+{30,57} .. {47,0}z20
+{59,0} .. {1,-79}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(58,266FX#,440FY#,10FY#);
+"colon";
+z1=(286FX,400FY);
+z2=(278FX,424FY);
+z3=(245FX,440FY);
+z4=(202FX,424FY);
+z5=(178FX,385FY);
+z6=(176FX,371FY);
+z7=(183FX,348FY);
+z8=(217FX,334FY);
+z9=(285FX,386FY);
+z10=(286FX,400FY);
+z11=(200FX,56FY);
+z12=(158FX,96FY);
+z13=(116FX,78FY);
+z14=(92FX,41FY);
+z15=(90FX,26FY);
+z16=(97FX,4FY);
+z17=(131FX,-11FY);
+z18=(198FX,41FY);
+z19=(200FX,56FY);
+FuF (z1
+{-1,10} .. {-4,6}z2
+{-9,11} .. {-13,-1}z3
+{-16,0} .. {-13,-10}z4
+{-12,-11} .. {-4,-15}z5
+{-1,-5} .. {0,-5}z6
+{1,-10} .. {3,-5}z7
+{10,-10} .. {12,1}z8
+{36,1} .. {10,34}z9
+{1,4} .. {0,5}z10
+);
+FuF (z11
+{-3,27} .. {-25,-1}z12
+{-16,0} .. {-12,-12}z13
+{-12,-11} .. {-4,-13}z14
+{-1,-6} .. {0,-5}z15
+{1,-9} .. {3,-5}z16
+{11,-10} .. {12,0}z17
+{37,2} .. {8,32}z18
+{2,5} .. {0,5}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(59,261FX#,432FY#,133FY#);
+"semicolon";
+z1=(280FX,393FY);
+z2=(272FX,416FY);
+z3=(240FX,433FY);
+z4=(198FX,417FY);
+z5=(174FX,378FY);
+z6=(172FX,364FY);
+z7=(180FX,342FY);
+z8=(214FX,328FY);
+z9=(255FX,345FY);
+z10=(279FX,379FY);
+z11=(280FX,393FY);
+z12=(215FX,38FY);
+z13=(205FX,73FY);
+z14=(157FX,96FY);
+z15=(91FX,49FY);
+z16=(87FX,26FY);
+z17=(135FX,-6FY);
+z18=(148FX,-5FY);
+z19=(159FX,-2FY);
+z20=(167FX,-5FY);
+z21=(169FX,-15FY);
+z22=(66FX,-115FY);
+z23=(70FX,-133FY);
+z24=(155FX,-76FY);
+z25=(211FX,6FY);
+z26=(215FX,38FY);
+FuF (z1
+{-1,10} .. {-4,5}z2
+{-8,12} .. {-13,0}z3
+{-17,-1} .. {-11,-10}z4
+{-13,-12} .. {-3,-14}z5
+{-1,-5} .. {0,-5}z6
+{1,-8} .. {4,-6}z7
+{10,-9} .. {12,0}z8
+{14,1} .. {13,11}z9
+{14,11} .. {2,12}z10
+{1,5} .. {0,5}z11
+);
+FuF (z12
+{-1,15} .. {-6,9}z13
+{-11,16} .. {-21,-1}z14
+{-33,-1} .. {-11,-31}z15
+{-3,-8} .. {0,-7}z16
+{1,-23} .. {31,2}z17
+-- z18
+-- z19
+-- z20
+{1,-1} .. {0,-6}z21
+{-8,-33} .. {-60,-34}z22
+-- z23
+{31,13} .. {26,25}z24
+{30,27} .. {7,27}z25
+{4,12} .. {-1,9}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(60,470FX#,392FY#,0FY#);
+"guillemotleft";
+z1=(530FX,384FY);
+z2=(522FX,392FY);
+z3=(449FX,338FY);
+z4=(370FX,280FY);
+z5=(278FX,214FY);
+z6=(300FX,186FY);
+z7=(327FX,158FY);
+z8=(374FX,102FY);
+z9=(428FX,32FY);
+z10=(444FX,41FY);
+z11=(414FX,125FY);
+z12=(366FX,212FY);
+z13=(438FX,285FY);
+z14=(497FX,345FY);
+z15=(523FX,372FY);
+z16=(530FX,384FY);
+z17=(349FX,384FY);
+z18=(341FX,392FY);
+z19=(268FX,338FY);
+z20=(189FX,280FY);
+z21=(97FX,214FY);
+z22=(119FX,186FY);
+z23=(145FX,158FY);
+z24=(193FX,102FY);
+z25=(247FX,32FY);
+z26=(258FX,34FY);
+z27=(263FX,41FY);
+z28=(233FX,125FY);
+z29=(185FX,212FY);
+z30=(257FX,285FY);
+z31=(316FX,345FY);
+z32=(342FX,372FY);
+z33=(349FX,384FY);
+FuF (z1
+{-1,4} .. {-4,1}z2
+-- z3
+{-41,-30} .. {-12,-8}z4
+{-40,-29} .. {-21,-15}z5
+-- z6
+-- z7
+{14,-16} .. {17,-22}z8
+-- z9
+{9,0} .. {2,6}z10
+{3,15} .. {-22,41}z11
+-- z12
+-- z13
+-- z14
+-- z15
+{4,5} .. {0,3}z16
+);
+FuF (z17
+{-1,4} .. {-4,1}z18
+-- z19
+{-41,-30} .. {-12,-8}z20
+{-40,-29} .. {-21,-15}z21
+-- z22
+-- z23
+{19,-21} .. {13,-17}z24
+-- z25
+{6,0} .. {1,1}z26
+{3,3} .. {0,1}z27
+{2,16} .. {-22,40}z28
+-- z29
+-- z30
+-- z31
+-- z32
+{4,5} .. {0,3}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(61,537FX#,413FY#,0FY#);
+"equal";
+z1=(33FX,359FY);
+z2=(532FX,359FY);
+z3=(546FX,414FY);
+z4=(46FX,414FY);
+z5=(-5FX,208FY);
+z6=(494FX,208FY);
+z7=(508FX,263FY);
+z8=(9FX,263FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,470FX#,391FY#,0FY#);
+"guillemotright";
+z1=(489FX,210FY);
+z2=(467FX,237FY);
+z3=(439FX,265FY);
+z4=(392FX,321FY);
+z5=(339FX,391FY);
+z6=(322FX,382FY);
+z7=(353FX,298FY);
+z8=(401FX,211FY);
+z9=(328FX,139FY);
+z10=(243FX,51FY);
+z11=(237FX,40FY);
+z12=(245FX,31FY);
+z13=(308FX,210FY);
+z14=(286FX,237FY);
+z15=(258FX,265FY);
+z16=(211FX,321FY);
+z17=(158FX,391FY);
+z18=(146FX,390FY);
+z19=(141FX,382FY);
+z20=(172FX,298FY);
+z21=(220FX,211FY);
+z22=(146FX,139FY);
+z23=(87FX,77FY);
+z24=(62FX,51FY);
+z25=(56FX,40FY);
+z26=(64FX,31FY);
+FuF (z1
+-- z2
+-- z3
+{-12,12} .. {-19,25}z4
+-- z5
+{-9,0} .. {-2,-6}z6
+{-2,-15} .. {23,-41}z7
+-- z8
+-- z9
+-- z10
+{-3,-3} .. {-1,-4}z11
+{1,-4} .. {4,-2}z12
+);
+FuF (z13
+-- z14
+-- z15
+{-12,12} .. {-19,25}z16
+-- z17
+{-7,0} .. {-1,-1}z18
+{-3,-3} .. {-1,-3}z19
+{-2,-15} .. {22,-41}z20
+-- z21
+-- z22
+-- z23
+-- z24
+{-3,-3} .. {-1,-4}z25
+{1,-4} .. {4,-2}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(63,216FX#,688FY#,0FY#);
+"paruyg";
+z1=(357FX,621FY);
+z2=(357FX,654FY);
+z3=(341FX,679FY);
+z4=(310FX,689FY);
+z5=(215FX,651FY);
+z6=(131FX,577FY);
+z7=(129FX,575FY);
+z8=(104FX,543FY);
+z9=(87FX,516FY);
+z10=(58FX,456FY);
+z11=(78FX,455FY);
+z12=(113FX,514FY);
+z13=(152FX,562FY);
+z14=(199FX,596FY);
+z15=(250FX,614FY);
+z16=(277FX,572FY);
+z17=(254FX,536FY);
+z18=(226FX,515FY);
+z19=(215FX,513FY);
+z20=(206FX,514FY);
+z21=(200FX,498FY);
+z22=(210FX,497FY);
+z23=(278FX,520FY);
+z24=(328FX,564FY);
+z25=(357FX,621FY);
+FuF (z1
+{3,13} .. {-3,9}z2
+{-3,11} .. {-8,6}z3
+{-8,7} .. {-12,0}z4
+{-27,-1} .. {-36,-24}z5
+{-37,-24} .. {-18,-25}z6
+-- z7
+{-15,-21} .. {-1,-1}z8
+{-8,-12} .. {-4,-6}z9
+{-14,-24} .. {-5,-16}z10
+-- z11
+{8,18} .. {15,21}z12
+{15,21} .. {11,11}z13
+{11,11} .. {20,12}z14
+{21,12} .. {13,0}z15
+{24,-5} .. {-6,-23}z16
+{-3,-14} .. {-12,-10}z17
+{-12,-11} .. {-7,-3}z18
+{-3,-1} .. {-5,0}z19
+{-2,1} .. {-4,0}z20
+-- z21
+-- z22
+{17,1} .. {28,14}z23
+{18,10} .. {16,20}z24
+{14,19} .. {5,19}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(64,867FX#,654FY#,203FY#);
+"at";
+z1=(809FX,79FY);
+z2=(782FX,79FY);
+z3=(591FX,-106FY);
+z4=(349FX,-175FY);
+z5=(177FX,-131FY);
+z6=(77FX,5FY);
+z7=(80FX,193FY);
+z8=(185FX,409FY);
+z9=(373FX,575FY);
+z10=(584FX,631FY);
+z11=(725FX,597FY);
+z12=(810FX,493FY);
+z13=(812FX,348FY);
+z14=(739FX,190FY);
+z15=(652FX,97FY);
+z16=(542FX,47FY);
+z17=(516FX,82FY);
+z18=(555FX,171FY);
+z19=(602FX,257FY);
+z20=(702FX,441FY);
+z21=(627FX,431FY);
+z22=(600FX,380FY);
+z23=(583FX,428FY);
+z24=(536FX,444FY);
+z25=(432FX,406FY);
+z26=(290FX,280FY);
+z27=(202FX,121FY);
+z28=(205FX,49FY);
+z29=(259FX,14FY);
+z30=(473FX,145FY);
+z31=(448FX,77FY);
+z32=(502FX,14FY);
+z33=(633FX,52FY);
+z34=(764FX,180FY);
+z35=(838FX,339FY);
+z36=(838FX,500FY);
+z37=(745FX,618FY);
+z38=(587FX,655FY);
+z39=(352FX,595FY);
+z40=(153FX,431FY);
+z41=(39FX,204FY);
+z42=(39FX,-4FY);
+z43=(149FX,-152FY);
+z44=(339FX,-204FY);
+z45=(605FX,-127FY);
+z46=(809FX,79FY);
+z47=(577FX,356FY);
+z48=(521FX,237FY);
+z49=(453FX,152FY);
+z50=(315FX,70FY);
+z51=(280FX,91FY);
+z52=(278FX,135FY);
+z53=(332FX,242FY);
+z54=(457FX,386FY);
+z55=(536FX,422FY);
+z56=(574FX,402FY);
+z57=(577FX,356FY);
+FuF (z1
+-- z2
+{-54,-79} .. {-73,-44}z3
+{-77,-46} .. {-84,0}z4
+{-66,0} .. {-49,29}z5
+{-50,31} .. {-16,60}z6
+{-16,56} .. {18,70}z7
+{19,75} .. {51,69}z8
+{53,72} .. {72,39}z9
+{70,38} .. {70,0}z10
+{55,0} .. {39,-23}z11
+{42,-24} .. {15,-45}z12
+{15,-45} .. {-13,-52}z13
+{-14,-56} .. {-35,-50}z14
+{-25,-35} .. {-33,-26}z15
+{-41,-34} .. {-32,0}z16
+{-24,1} .. {6,23}z17
+{6,21} .. {21,38}z18
+{15,29} .. {15,28}z19
+-- z20
+-- z21
+-- z22
+{0,22} .. {-11,10}z23
+{-11,11} .. {-20,0}z24
+{-28,0} .. {-41,-25}z25
+{-51,-32} .. {-43,-53}z26
+{-46,-55} .. {-12,-50}z27
+{-7,-27} .. {9,-21}z28
+{9,-24} .. {27,1}z29
+{49,0} .. {94,87}z30
+{-13,-29} .. {-3,-16}z31
+{-10,-42} .. {46,0}z32
+{43,1} .. {45,25}z33
+{47,26} .. {40,59}z34
+{36,53} .. {14,53}z35
+{14,57} .. {-14,50}z36
+{-15,52} .. {-47,27}z37
+{-43,25} .. {-62,0}z38
+{-79,0} .. {-78,-40}z39
+{-78,-40} .. {-55,-69}z40
+{-55,-70} .. {-21,-82}z41
+{-19,-76} .. {19,-63}z42
+{19,-63} .. {54,-35}z43
+{53,-35} .. {73,0}z44
+{92,0} .. {86,51}z45
+{86,51} .. {50,86}z46
+);
+FuF (z47
+{-8,-31} .. {-29,-48}z48
+{-17,-29} .. {-28,-27}z49
+{-56,-55} .. {-36,0}z50
+{-17,0} .. {-7,14}z51
+{-6,12} .. {4,17}z52
+{7,28} .. {29,44}z53
+{40,61} .. {43,35}z54
+{29,24} .. {23,0}z55
+{17,0} .. {8,-14}z56
+{7,-12} .. {-5,-18}z57
+);
+lbl (range 1 thru 57);
+endchar;
+
+beginchar(65,718FX#,624FY#,25FY#);
+"A";
+z1=(828FX,624FY);
+z2=(561FX,624FY);
+z3=(557FX,607FY);
+z4=(611FX,598FY);
+z5=(628FX,565FY);
+z6=(621FX,523FY);
+z7=(575FX,337FY);
+z8=(615FX,264FY);
+z9=(598FX,193FY);
+z10=(561FX,131FY);
+z11=(480FX,185FY);
+z12=(376FX,139FY);
+z13=(378FX,122FY);
+z14=(414FX,132FY);
+z15=(483FX,57FY);
+z16=(352FX,19FY);
+z17=(246FX,131FY);
+z18=(263FX,252FY);
+z19=(331FX,523FY);
+z20=(366FX,590FY);
+z21=(438FX,607FY);
+z22=(442FX,624FY);
+z23=(175FX,624FY);
+z24=(171FX,607FY);
+z25=(241FX,566FY);
+z26=(234FX,523FY);
+z27=(169FX,258FY);
+z28=(155FX,153FY);
+z29=(342FX,-13FY);
+z30=(498FX,30FY);
+z31=(598FX,-25FY);
+z32=(686FX,0FY);
+z33=(684FX,21FY);
+z34=(662FX,16FY);
+z35=(578FX,101FY);
+z36=(648FX,245FY);
+z37=(718FX,523FY);
+z38=(751FX,591FY);
+z39=(823FX,607FY);
+FuF (z1
+-- z2
+-- z3
+{25,0} .. {11,-6}z4
+{11,-6} .. {0,-16}z5
+{0,-10} .. {-5,-18}z6
+-- z7
+{26,-11} .. {1,-37}z8
+{0,-20} .. {-12,-27}z9
+{-11,-27} .. {-14,-14}z10
+{-18,36} .. {-36,0}z11
+{-40,0} .. {-30,-30}z12
+-- z13
+{14,7} .. {10,0}z14
+{25,0} .. {21,-50}z15
+{-34,-26} .. {-53,0}z16
+{-70,0} .. {-1,75}z17
+{-1,33} .. {12,48}z18
+-- z19
+{8,34} .. {15,11}z20
+{14,11} .. {34,0}z21
+-- z22
+-- z23
+-- z24
+{46,0} .. {1,-27}z25
+{0,-10} .. {-5,-19}z26
+-- z27
+{-10,-39} .. {0,-31}z28
+{2,-111} .. {122,0}z29
+{58,0} .. {46,29}z30
+{23,-37} .. {44,0}z31
+{28,0} .. {31,17}z32
+{0,4} .. {-1,10}z33
+{-7,-4} .. {-7,0}z34
+{-29,0} .. {-27,57}z35
+{31,31} .. {16,65}z36
+-- z37
+{8,35} .. {13,11}z38
+{14,10} .. {34,0}z39
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(66,718FX#,637FY#,0FY#);
+"B";
+z1=(679FX,366FY);
+z2=(694FX,475FY);
+z3=(506FX,637FY);
+z4=(283FX,542FY);
+z5=(196FX,366FY);
+z6=(129FX,102FY);
+z7=(93FX,30FY);
+z8=(24FX,18FY);
+z9=(19FX,0FY);
+z10=(286FX,0FY);
+z11=(290FX,18FY);
+z12=(217FX,53FY);
+z13=(226FX,102FY);
+z14=(250FX,200FY);
+z15=(488FX,200FY);
+z16=(532FX,171FY);
+z17=(530FX,157FY);
+z18=(524FX,134FY);
+z19=(647FX,134FY);
+z20=(654FX,162FY);
+z21=(656FX,178FY);
+z22=(623FX,225FY);
+z23=(539FX,241FY);
+z24=(261FX,241FY);
+z25=(293FX,373FY);
+z26=(499FX,606FY);
+z27=(608FX,509FY);
+z28=(592FX,402FY);
+z29=(570FX,315FY);
+z30=(666FX,315FY);
+FuF (z1
+{11,41} .. {-1,32}z2
+{-2,108} .. {-124,0}z3
+{-93,0} .. {-56,-64}z4
+{-40,-45} .. {-18,-72}z5
+-- z6
+{-9,-38} .. {-15,-10}z7
+{-11,-8} .. {-35,0}z8
+-- z9
+-- z10
+-- z11
+{-48,0} .. {-1,23}z12
+{0,-3} .. {6,36}z13
+-- z14
+-- z15
+{29,0} .. {0,-19}z16
+{0,-4} .. {-2,-5}z17
+-- z18
+-- z19
+-- z20
+{1,6} .. {0,5}z21
+{-1,20} .. {-21,12}z22
+{-21,11} .. {-35,0}z23
+-- z24
+-- z25
+{39,155} .. {98,0}z26
+{71,0} .. {2,-64}z27
+{0,-27} .. {-11,-44}z28
+-- z29
+-- z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(67,636FX#,638FY#,16FY#);
+"C";
+z1=(631FX,281FY);
+z2=(600FX,362FY);
+z3=(485FX,420FY);
+z4=(611FX,510FY);
+z5=(614FX,528FY);
+z6=(614FX,538FY);
+z7=(584FX,606FY);
+z8=(463FX,638FY);
+z9=(390FX,629FY);
+z10=(326FX,603FY);
+z11=(278FX,561FY);
+z12=(254FX,508FY);
+z13=(252FX,492FY);
+z14=(276FX,446FY);
+z15=(335FX,418FY);
+z16=(218FX,378FY);
+z17=(123FX,289FY);
+z18=(221FX,289FY);
+z19=(294FX,367FY);
+z20=(403FX,396FY);
+z21=(523FX,338FY);
+z22=(532FX,281FY);
+z23=(524FX,208FY);
+z24=(495FX,134FY);
+z25=(449FX,73FY);
+z26=(314FX,16FY);
+z27=(212FX,61FY);
+z28=(182FX,149FY);
+z29=(182FX,160FY);
+z30=(184FX,175FY);
+z31=(89FX,175FY);
+z32=(87FX,164FY);
+z33=(88FX,153FY);
+z34=(135FX,41FY);
+z35=(306FX,-16FY);
+z36=(511FX,50FY);
+z37=(584FX,125FY);
+z38=(622FX,210FY);
+z39=(631FX,281FY);
+z40=(519FX,545FY);
+z41=(515FX,510FY);
+z42=(411FX,428FY);
+z43=(357FX,447FY);
+z44=(346FX,477FY);
+z45=(350FX,508FY);
+z46=(365FX,554FY);
+z47=(385FX,582FY);
+z48=(453FX,607FY);
+z49=(519FX,545FY);
+FuF (z1
+{-1,36} .. {-20,18}z2
+{-32,29} .. {-44,9}z3
+{76,20} .. {8,40}z4
+{2,8} .. {0,4}z5
+{0,7} .. {0,0}z6
+{0,29} .. {-19,16}z7
+{-26,22} .. {-54,-1}z8
+{-26,0} .. {-22,-6}z9
+{-23,-6} .. {-20,-12}z10
+{-22,-13} .. {-10,-16}z11
+{-12,-18} .. {-4,-18}z12
+{-1,-5} .. {0,-6}z13
+{1,-19} .. {16,-12}z14
+{22,-17} .. {17,-2}z15
+{-39,-8} .. {-39,-19}z16
+{-41,-20} .. {-22,-39}z17
+-- z18
+{21,33} .. {28,19}z19
+{30,20} .. {43,0}z20
+{67,0} .. {12,-38}z21
+{6,-18} .. {-1,-20}z22
+{0,-26} .. {-5,-22}z23
+{-7,-27} .. {-12,-22}z24
+{-15,-26} .. {-16,-15}z25
+{-41,-38} .. {-49,0}z26
+{-44,0} .. {-24,30}z27
+{-19,25} .. {-1,34}z28
+-- z29
+{1,5} .. {0,5}z30
+-- z31
+{-1,-4} .. {-1,-3}z32
+-- z33
+{0,-44} .. {31,-31}z34
+{38,-39} .. {76,1}z35
+{80,0} .. {56,43}z36
+{31,24} .. {18,27}z37
+{18,27} .. {7,30}z38
+{7,30} .. {-1,17}z39
+);
+FuF (z40
+{0,-12} .. {-3,-11}z41
+{-15,-55} .. {-55,1}z42
+{-25,1} .. {-11,12}z43
+{-7,8} .. {0,12}z44
+{1,14} .. {1,6}z45
+{8,24} .. {3,6}z46
+{6,12} .. {6,7}z47
+{17,17} .. {28,0}z48
+{45,-1} .. {-1,-41}z49
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 49);
+endchar;
+
+beginchar(68,700FX#,637FY#,0FY#);
+"D";
+z1=(775FX,180FY);
+z2=(768FX,201FY);
+z3=(706FX,238FY);
+z4=(645FX,241FY);
+z5=(579FX,241FY);
+z6=(611FX,366FY);
+z7=(624FX,470FY);
+z8=(437FX,637FY);
+z9=(238FX,567FY);
+z10=(129FX,366FY);
+z11=(115FX,315FY);
+z12=(211FX,315FY);
+z13=(233FX,403FY);
+z14=(236FX,412FY);
+z15=(310FX,555FY);
+z16=(428FX,606FY);
+z17=(526FX,550FY);
+z18=(534FX,497FY);
+z19=(516FX,373FY);
+z20=(448FX,102FY);
+z21=(414FX,39FY);
+z22=(341FX,19FY);
+z23=(337FX,0FY);
+z24=(604FX,0FY);
+z25=(608FX,18FY);
+z26=(544FX,34FY);
+z27=(538FX,56FY);
+z28=(539FX,77FY);
+z29=(545FX,102FY);
+z30=(569FX,200FY);
+z31=(610FX,200FY);
+z32=(630FX,196FY);
+z33=(646FX,184FY);
+z34=(650FX,172FY);
+z35=(648FX,158FY);
+z36=(643FX,136FY);
+z37=(766FX,136FY);
+z38=(773FX,168FY);
+z39=(775FX,180FY);
+FuF (z1
+{-1,8} .. {-4,6}z2
+{-13,21} .. {-28,4}z3
+{-20,2} .. {-21,0}z4
+-- z5
+-- z6
+{10,39} .. {-1,31}z7
+{-3,112} .. {-121,0}z8
+{-81,0} .. {-51,-47}z9
+{-50,-45} .. {-23,-89}z10
+-- z11
+-- z12
+-- z13
+-- z14
+{16,62} .. {33,34}z15
+{34,34} .. {45,0}z16
+{52,-1} .. {13,-36}z17
+{5,-15} .. {0,-20}z18
+{0,-33} .. {-12,-49}z19
+-- z20
+{-7,-29} .. {-16,-13}z21
+{-16,-13} .. {-33,0}z22
+-- z23
+-- z24
+-- z25
+{-35,1} .. {-7,10}z26
+{-4,5} .. {0,9}z27
+{0,10} .. {0,4}z28
+{2,12} .. {2,5}z29
+-- z30
+-- z31
+-- z32
+{7,-3} .. {4,-5}z33
+{2,-4} .. {0,-4}z34
+{-1,-6} .. {0,-4}z35
+-- z36
+-- z37
+-- z38
+{1,5} .. {0,3}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(69,673FX#,624FY#,13FY#);
+"E";
+z1=(702FX,360FY);
+z2=(673FX,407FY);
+z3=(640FX,420FY);
+z4=(585FX,425FY);
+z5=(306FX,425FY);
+z6=(331FX,523FY);
+z7=(363FX,589FY);
+z8=(438FX,607FY);
+z9=(442FX,624FY);
+z10=(175FX,624FY);
+z11=(171FX,607FY);
+z12=(236FX,590FY);
+z13=(241FX,569FY);
+z14=(240FX,547FY);
+z15=(235FX,523FY);
+z16=(169FX,258FY);
+z17=(155FX,155FY);
+z18=(180FX,58FY);
+z19=(343FX,-13FY);
+z20=(535FX,52FY);
+z21=(643FX,224FY);
+z22=(547FX,224FY);
+z23=(536FX,181FY);
+z24=(470FX,67FY);
+z25=(352FX,19FY);
+z26=(253FX,75FY);
+z27=(245FX,124FY);
+z28=(263FX,252FY);
+z29=(296FX,383FY);
+z30=(533FX,383FY);
+z31=(570FX,371FY);
+z32=(577FX,351FY);
+z33=(576FX,339FY);
+z34=(570FX,315FY);
+z35=(692FX,315FY);
+z36=(701FX,349FY);
+z37=(702FX,360FY);
+FuF (z1
+{-3,21} .. {-17,10}z2
+{-8,7} .. {-14,2}z3
+{-8,3} .. {-28,0}z4
+-- z5
+-- z6
+{8,32} .. {14,12}z7
+{13,12} .. {37,0}z8
+-- z9
+-- z10
+-- z11
+{36,-1} .. {7,-10}z12
+{3,-4} .. {0,-10}z13
+{-1,-9} .. {0,-5}z14
+{-3,-11} .. {-1,-5}z15
+-- z16
+{-10,-41} .. {1,-27}z17
+{1,-41} .. {15,-24}z18
+{31,-48} .. {78,1}z19
+{73,0} .. {55,43}z20
+{54,43} .. {18,71}z21
+-- z22
+-- z23
+{-23,-54} .. {-21,-22}z24
+{-30,-33} .. {-48,0}z25
+{-52,0} .. {-14,37}z26
+{-5,15} .. {0,17}z27
+{0,36} .. {12,49}z28
+-- z29
+-- z30
+{20,0} .. {5,-8}z31
+{5,-8} .. {0,-5}z32
+{-1,-5} .. {0,-3}z33
+-- z34
+-- z35
+-- z36
+{1,2} .. {0,5}z37
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 37);
+endchar;
+
+beginchar(70,695FX#,624FY#,8FY#);
+"F";
+z1=(732FX,276FY);
+z2=(703FX,371FY);
+z3=(504FX,436FY);
+z4=(526FX,523FY);
+z5=(558FX,589FY);
+z6=(634FX,607FY);
+z7=(638FX,624FY);
+z8=(455FX,624FY);
+z9=(316FX,607FY);
+z10=(226FX,512FY);
+z11=(221FX,479FY);
+z12=(263FX,425FY);
+z13=(401FX,407FY);
+z14=(306FX,26FY);
+z15=(183FX,78FY);
+z16=(165FX,148FY);
+z17=(173FX,210FY);
+z18=(192FX,287FY);
+z19=(96FX,287FY);
+z20=(76FX,208FY);
+z21=(71FX,183FY);
+z22=(72FX,171FY);
+z23=(124FX,59FY);
+z24=(345FX,-8FY);
+z25=(600FX,59FY);
+z26=(683FX,131FY);
+z27=(725FX,212FY);
+z28=(732FX,276FY);
+z29=(447FX,592FY);
+z30=(410FX,439FY);
+z31=(328FX,457FY);
+z32=(315FX,489FY);
+z33=(319FX,517FY);
+z34=(359FX,576FY);
+z35=(447FX,592FY);
+z36=(636FX,279FY);
+z37=(549FX,76FY);
+z38=(402FX,26FY);
+z39=(496FX,403FY);
+z40=(624FX,343FY);
+z41=(636FX,279FY);
+FuF (z1
+{-1,38} .. {-18,25}z2
+{-30,43} .. {-102,0}z3
+-- z4
+{8,32} .. {13,12}z5
+{13,12} .. {37,0}z6
+-- z7
+-- z8
+{-60,0} .. {-32,-12}z9
+{-49,-17} .. {-11,-46}z10
+{-4,-13} .. {0,-9}z11
+{1,-28} .. {27,-8}z12
+{39,-12} .. {53,0}z13
+-- z14
+{-62,1} .. {-19,33}z15
+{-12,19} .. {-1,28}z16
+{0,20} .. {6,21}z17
+-- z18
+-- z19
+-- z20
+{-3,-12} .. {0,-5}z21
+-- z22
+{0,-41} .. {34,-34}z23
+{47,-45} .. {100,0}z24
+{101,0} .. {69,45}z25
+{35,23} .. {21,25}z26
+{22,27} .. {6,27}z27
+{6,23} .. {-1,20}z28
+);
+FuF (z29
+-- z30
+{-43,1} .. {-12,11}z31
+{-8,9} .. {-1,13}z32
+{2,14} .. {1,5}z33
+{9,29} .. {18,10}z34
+{17,11} .. {41,0}z35
+);
+FuF (z36
+{0,-84} .. {-58,-51}z37
+{-37,-33} .. {-61,0}z38
+-- z39
+{70,0} .. {15,-40}z40
+{8,-22} .. {0,-21}z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(71,704FX#,637FY#,0FY#);
+"G";
+z1=(782FX,180FY);
+z2=(775FX,201FY);
+z3=(753FX,224FY);
+z4=(713FX,238FY);
+z5=(651FX,241FY);
+z6=(584FX,241FY);
+z7=(619FX,380FY);
+z8=(630FX,472FY);
+z9=(443FX,637FY);
+z10=(252FX,578FY);
+z11=(140FX,414FY);
+z12=(135FX,389FY);
+z13=(134FX,364FY);
+z14=(165FX,267FY);
+z15=(343FX,200FY);
+z16=(477FX,200FY);
+z17=(450FX,93FY);
+z18=(414FX,32FY);
+z19=(342FX,18FY);
+z20=(338FX,0FY);
+z21=(602FX,0FY);
+z22=(607FX,18FY);
+z23=(547FX,33FY);
+z24=(541FX,56FY);
+z25=(546FX,90FY);
+z26=(573FX,200FY);
+z27=(616FX,200FY);
+z28=(638FX,197FY);
+z29=(652FX,187FY);
+z30=(656FX,172FY);
+z31=(655FX,158FY);
+z32=(650FX,136FY);
+z33=(772FX,136FY);
+z34=(780FX,168FY);
+z35=(782FX,180FY);
+z36=(540FX,487FY);
+z37=(534FX,426FY);
+z38=(487FX,241FY);
+z39=(354FX,241FY);
+z40=(250FX,286FY);
+z41=(232FX,348FY);
+z42=(240FX,413FY);
+z43=(311FX,553FY);
+z44=(435FX,606FY);
+z45=(532FX,543FY);
+z46=(539FX,514FY);
+z47=(540FX,487FY);
+FuF (z1
+{-1,9} .. {-3,5}z2
+{-7,10} .. {-8,5}z3
+{-7,7} .. {-20,3}z4
+{-20,2} .. {-21,0}z5
+-- z6
+-- z7
+{8,33} .. {-1,28}z8
+{-4,111} .. {-121,-1}z9
+{-71,0} .. {-56,-39}z10
+{-58,-42} .. {-17,-68}z11
+{-4,-13} .. {0,-3}z12
+{-1,-4} .. {0,-13}z13
+{1,-36} .. {19,-28}z14
+{30,-45} .. {88,0}z15
+-- z16
+-- z17
+{-8,-31} .. {-16,-9}z18
+{-15,-9} .. {-32,0}z19
+-- z20
+-- z21
+-- z22
+{-31,1} .. {-9,9}z23
+{-4,5} .. {0,10}z24
+{-1,7} .. {4,15}z25
+-- z26
+-- z27
+{10,0} .. {5,-2}z28
+{6,-2} .. {3,-4}z29
+{3,-4} .. {0,-6}z30
+{-1,-6} .. {0,-4}z31
+-- z32
+-- z33
+-- z34
+{1,5} .. {0,3}z35
+);
+FuF (z36
+{0,-24} .. {-4,-17}z37
+-- z38
+-- z39
+{-49,0} .. {-20,30}z40
+{-12,18} .. {0,23}z41
+{0,22} .. {6,21}z42
+{15,60} .. {33,34}z43
+{34,35} .. {48,0}z44
+{56,-1} .. {9,-41}z45
+{4,-12} .. {0,-7}z46
+{1,-5} .. {0,-13}z47
+);
+lbl (range 1 thru 47);
+endchar;
+
+beginchar(72,509FX#,693FY#,18FY#);
+"H";
+z1=(696FX,693FY);
+z2=(574FX,693FY);
+z3=(567FX,666FY);
+z4=(509FX,624FY);
+z5=(169FX,624FY);
+z6=(120FX,597FY);
+z7=(139FX,554FY);
+z8=(438FX,147FY);
+z9=(470FX,97FY);
+z10=(474FX,85FY);
+z11=(483FX,45FY);
+z12=(480FX,27FY);
+z13=(469FX,-19FY);
+z14=(497FX,-19FY);
+z15=(518FX,67FY);
+z16=(526FX,128FY);
+z17=(513FX,199FY);
+z18=(481FX,253FY);
+z19=(257FX,557FY);
+z20=(252FX,574FY);
+z21=(263FX,582FY);
+z22=(524FX,583FY);
+z23=(646FX,605FY);
+z24=(687FX,656FY);
+FuF (z1
+-- z2
+-- z3
+{-6,-28} .. {-32,0}z4
+-- z5
+{-34,0} .. {1,-18}z6
+{0,-12} .. {12,-17}z7
+-- z8
+{15,-21} .. {6,-13}z9
+{2,-4} .. {1,-4}z10
+{5,-13} .. {1,-14}z11
+-- z12
+-- z13
+-- z14
+-- z15
+{5,22} .. {0,19}z16
+{-1,26} .. {-8,21}z17
+{-9,23} .. {-13,13}z18
+-- z19
+{-5,7} .. {2,4}z20
+{3,5} .. {4,0}z21
+-- z22
+{55,0} .. {26,15}z23
+{22,12} .. {5,22}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(73,650FX#,624FY#,0FY#);
+"I";
+z1=(653FX,315FY);
+z2=(467FX,481FY);
+z3=(311FX,441FY);
+z4=(331FX,523FY);
+z5=(365FX,586FY);
+z6=(438FX,606FY);
+z7=(442FX,624FY);
+z8=(175FX,624FY);
+z9=(171FX,607FY);
+z10=(236FX,590FY);
+z11=(242FX,569FY);
+z12=(240FX,547FY);
+z13=(235FX,523FY);
+z14=(129FX,102FY);
+z15=(95FX,32FY);
+z16=(23FX,18FY);
+z17=(19FX,0FY);
+z18=(286FX,0FY);
+z19=(290FX,19FY);
+z20=(228FX,39FY);
+z21=(221FX,65FY);
+z22=(225FX,102FY);
+z23=(270FX,278FY);
+z24=(327FX,401FY);
+z25=(460FX,449FY);
+z26=(562FX,381FY);
+z27=(552FX,245FY);
+z28=(530FX,158FY);
+z29=(626FX,158FY);
+z30=(639FX,210FY);
+z31=(653FX,315FY);
+FuF (z1
+{-3,111} .. {-121,0}z2
+{-55,0} .. {-49,-27}z3
+-- z4
+{10,29} .. {13,13}z5
+{17,13} .. {32,0}z6
+-- z7
+-- z8
+-- z9
+{36,-1} .. {7,-10}z10
+{4,-4} .. {1,-10}z11
+{-1,-9} .. {0,-5}z12
+{-3,-11} .. {-1,-5}z13
+-- z14
+{-9,-37} .. {-14,-10}z15
+{-14,-9} .. {-35,0}z16
+-- z17
+-- z18
+-- z19
+{-34,0} .. {-7,14}z20
+{-5,7} .. {0,10}z21
+{-1,11} .. {3,14}z22
+-- z23
+{11,47} .. {26,35}z24
+{24,32} .. {64,0}z25
+{67,0} .. {1,-45}z26
+{1,-60} .. {-8,-31}z27
+-- z28
+-- z29
+-- z30
+{10,37} .. {0,33}z31
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(74,677FX#,637FY#,95FY#);
+"J";
+z1=(706FX,464FY);
+z2=(646FX,592FY);
+z3=(506FX,637FY);
+z4=(271FX,550FY);
+z5=(182FX,390FY);
+z6=(223FX,300FY);
+z7=(285FX,252FY);
+z8=(385FX,159FY);
+z9=(356FX,102FY);
+z10=(251FX,49FY);
+z11=(189FX,41FY);
+z12=(210FX,122FY);
+z13=(100FX,122FY);
+z14=(46FX,-95FY);
+z15=(155FX,-95FY);
+z16=(179FX,0FY);
+z17=(408FX,0FY);
+z18=(475FX,-42FY);
+z19=(473FX,-58FY);
+z20=(464FX,-95FY);
+z21=(573FX,-95FY);
+z22=(585FX,-47FY);
+z23=(587FX,-30FY);
+z24=(544FX,25FY);
+z25=(451FX,42FY);
+z26=(318FX,42FY);
+z27=(608FX,221FY);
+z28=(706FX,464FY);
+z29=(599FX,420FY);
+z30=(543FX,249FY);
+z31=(416FX,129FY);
+z32=(441FX,169FY);
+z33=(449FX,210FY);
+z34=(358FX,338FY);
+z35=(281FX,438FY);
+z36=(336FX,546FY);
+z37=(444FX,588FY);
+z38=(559FX,540FY);
+z39=(599FX,420FY);
+FuF (z1
+{-1,54} .. {-39,31}z2
+{-37,30} .. {-57,0}z3
+{-90,0} .. {-66,-58}z4
+{-60,-53} .. {1,-54}z5
+{1,-32} .. {27,-28}z6
+{19,-21} .. {22,-11}z7
+{67,-33} .. {0,-30}z8
+{0,-18} .. {-19,-19}z9
+{-42,-27} .. {-28,-8}z10
+{-17,-5} .. {-25,0}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{44,0} .. {0,-28}z18
+{0,-5} .. {-2,-5}z19
+-- z20
+-- z21
+-- z22
+{1,6} .. {0,5}z23
+{-1,24} .. {-28,13}z24
+{-25,12} .. {-37,0}z25
+-- z26
+{133,57} .. {60,62}z27
+{67,68} .. {-1,93}z28
+);
+FuF (z29
+{1,-60} .. {-39,-54}z30
+{-32,-46} .. {-53,-34}z31
+{10,10} .. {6,17}z32
+{6,14} .. {0,14}z33
+{-1,44} .. {-60,41}z34
+{-50,35} .. {-1,31}z35
+{0,41} .. {37,31}z36
+{34,28} .. {38,0}z37
+{49,0} .. {28,-32}z38
+{26,-30} .. {1,-50}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(75,718FX#,624FY#,0FY#);
+"K";
+z1=(778FX,425FY);
+z2=(511FX,425FY);
+z3=(507FX,406FY);
+z4=(569FX,386FY);
+z5=(576FX,359FY);
+z6=(571FX,322FY);
+z7=(564FX,295FY);
+z8=(506FX,201FY);
+z9=(388FX,175FY);
+z10=(286FX,243FY);
+z11=(295FX,379FY);
+z12=(304FX,415FY);
+z13=(315FX,463FY);
+z14=(325FX,501FY);
+z15=(332FX,523FY);
+z16=(366FX,592FY);
+z17=(438FX,607FY);
+z18=(442FX,624FY);
+z19=(175FX,624FY);
+z20=(171FX,606FY);
+z21=(233FX,586FY);
+z22=(239FX,559FY);
+z23=(235FX,523FY);
+z24=(209FX,415FY);
+z25=(194FX,309FY);
+z26=(380FX,143FY);
+z27=(464FX,154FY);
+z28=(536FX,183FY);
+z29=(516FX,102FY);
+z30=(482FX,39FY);
+z31=(409FX,19FY);
+z32=(405FX,0FY);
+z33=(672FX,0FY);
+z34=(676FX,18FY);
+z35=(612FX,34FY);
+z36=(606FX,56FY);
+z37=(607FX,77FY);
+z38=(612FX,102FY);
+z39=(668FX,322FY);
+z40=(703FX,393FY);
+z41=(773FX,407FY);
+FuF (z1
+-- z2
+-- z3
+{33,0} .. {8,-13}z4
+{5,-7} .. {0,-11}z5
+{0,-11} .. {-4,-14}z6
+-- z7
+{-11,-45} .. {-27,-17}z8
+{-28,-17} .. {-51,0}z9
+{-68,0} .. {0,45}z10
+{0,67} .. {6,24}z11
+-- z12
+-- z13
+-- z14
+-- z15
+{12,39} .. {10,7}z16
+{14,10} .. {34,0}z17
+-- z18
+-- z19
+-- z20
+{33,0} .. {8,-13}z21
+{4,-8} .. {0,-11}z22
+{1,-10} .. {-3,-14}z23
+-- z24
+{-10,-41} .. {0,-29}z25
+{2,-112} .. {122,1}z26
+{34,0} .. {22,7}z27
+{23,7} .. {25,12}z28
+-- z29
+{-7,-29} .. {-15,-13}z30
+{-16,-13} .. {-33,0}z31
+-- z32
+-- z33
+-- z34
+{-36,1} .. {-7,10}z35
+{-4,5} .. {0,9}z36
+{1,10} .. {0,4}z37
+{1,7} .. {2,10}z38
+-- z39
+{9,38} .. {14,9}z40
+{14,9} .. {33,0}z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(76,529FX#,624FY#,65FY#);
+"L";
+z1=(481FX,-20FY);
+z2=(475FX,-1FY);
+z3=(453FX,23FY);
+z4=(419FX,37FY);
+z5=(364FX,41FY);
+z6=(210FX,41FY);
+z7=(330FX,523FY);
+z8=(362FX,589FY);
+z9=(437FX,607FY);
+z10=(442FX,624FY);
+z11=(175FX,624FY);
+z12=(170FX,607FY);
+z13=(236FX,590FY);
+z14=(241FX,569FY);
+z15=(239FX,547FY);
+z16=(234FX,523FY);
+z17=(129FX,104FY);
+z18=(95FX,33FY);
+z19=(23FX,18FY);
+z20=(19FX,0FY);
+z21=(313FX,0FY);
+z22=(349FX,-12FY);
+z23=(356FX,-33FY);
+z24=(355FX,-43FY);
+z25=(349FX,-66FY);
+z26=(472FX,-66FY);
+z27=(479FX,-34FY);
+z28=(481FX,-20FY);
+FuF (z1
+{0,7} .. {-4,5}z2
+{-5,11} .. {-9,5}z3
+{-8,8} .. {-15,2}z4
+{-10,3} .. {-26,0}z5
+-- z6
+-- z7
+{8,32} .. {13,12}z8
+{13,12} .. {36,0}z9
+-- z10
+-- z11
+-- z12
+{37,-1} .. {8,-10}z13
+{3,-4} .. {0,-10}z14
+{-1,-9} .. {0,-5}z15
+{-2,-11} .. {-1,-5}z16
+-- z17
+{-9,-37} .. {-14,-11}z18
+{-14,-10} .. {-34,0}z19
+-- z20
+-- z21
+{19,0} .. {5,-8}z22
+{4,-8} .. {0,-5}z23
+{-1,-4} .. {0,-3}z24
+-- z25
+-- z26
+-- z27
+{1,5} .. {0,5}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(77,833FX#,624FY#,13FY#);
+"M";
+z1=(938FX,561FY);
+z2=(932FX,582FY);
+z3=(909FX,607FY);
+z4=(876FX,620FY);
+z5=(820FX,624FY);
+z6=(561FX,624FY);
+z7=(557FX,607FY);
+z8=(623FX,589FY);
+z9=(628FX,568FY);
+z10=(626FX,546FY);
+z11=(621FX,523FY);
+z12=(554FX,252FY);
+z13=(472FX,73FY);
+z14=(348FX,19FY);
+z15=(236FX,86FY);
+z16=(238FX,114FY);
+z17=(247FX,177FY);
+z18=(263FX,252FY);
+z19=(331FX,523FY);
+z20=(363FX,589FY);
+z21=(438FX,607FY);
+z22=(442FX,624FY);
+z23=(175FX,624FY);
+z24=(171FX,607FY);
+z25=(236FX,590FY);
+z26=(241FX,569FY);
+z27=(240FX,547FY);
+z28=(235FX,523FY);
+z29=(169FX,258FY);
+z30=(155FX,151FY);
+z31=(179FX,57FY);
+z32=(341FX,-13FY);
+z33=(513FX,38FY);
+z34=(609FX,149FY);
+z35=(652FX,258FY);
+z36=(733FX,583FY);
+z37=(769FX,583FY);
+z38=(805FX,571FY);
+z39=(813FX,551FY);
+z40=(812FX,539FY);
+z41=(806FX,517FY);
+z42=(929FX,517FY);
+z43=(937FX,549FY);
+z44=(938FX,561FY);
+FuF (z1
+{-1,9} .. {-3,5}z2
+{-8,11} .. {-8,5}z3
+{-8,6} .. {-14,2}z4
+{-10,3} .. {-27,0}z5
+-- z6
+-- z7
+{38,0} .. {6,-12}z8
+{3,-4} .. {0,-10}z9
+{0,-6} .. {-1,-9}z10
+{-2,-11} .. {-2,-4}z11
+-- z12
+{-21,-81} .. {-34,-38}z13
+{-32,-36} .. {-50,0}z14
+{-74,0} .. {0,44}z15
+{0,11} .. {1,7}z16
+{0,11} .. {5,31}z17
+{6,29} .. {5,21}z18
+-- z19
+{8,32} .. {14,12}z20
+{13,12} .. {37,0}z21
+-- z22
+-- z23
+-- z24
+{36,-1} .. {7,-10}z25
+{3,-4} .. {0,-10}z26
+{-1,-9} .. {0,-5}z27
+{-3,-11} .. {-1,-5}z28
+-- z29
+{-10,-40} .. {1,-31}z30
+{1,-39} .. {15,-24}z31
+{30,-47} .. {78,0}z32
+{70,0} .. {44,34}z33
+{44,33} .. {20,41}z34
+{20,40} .. {9,33}z35
+-- z36
+-- z37
+{20,0} .. {4,-8}z38
+{6,-8} .. {0,-5}z39
+{0,-5} .. {0,-3}z40
+-- z41
+-- z42
+-- z43
+{1,5} .. {0,3}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(78,715FX#,693FY#,13FY#);
+"N";
+z1=(752FX,315FY);
+z2=(656FX,315FY);
+z3=(640FX,252FY);
+z4=(575FX,86FY);
+z5=(439FX,19FY);
+z6=(356FX,47FY);
+z7=(331FX,132FY);
+z8=(333FX,160FY);
+z9=(337FX,192FY);
+z10=(443FX,624FY);
+z11=(310FX,624FY);
+z12=(286FX,627FY);
+z13=(272FX,638FY);
+z14=(267FX,656FY);
+z15=(267FX,668FY);
+z16=(274FX,693FY);
+z17=(152FX,693FY);
+z18=(143FX,659FY);
+z19=(141FX,647FY);
+z20=(148FX,624FY);
+z21=(258FX,583FY);
+z22=(336FX,583FY);
+z23=(255FX,258FY);
+z24=(245FX,210FY);
+z25=(241FX,182FY);
+z26=(242FX,158FY);
+z27=(430FX,-13FY);
+z28=(586FX,29FY);
+z29=(697FX,145FY);
+z30=(738FX,258FY);
+FuF (z1
+-- z2
+-- z3
+{-16,-63} .. {-27,-47}z4
+{-25,-45} .. {-65,1}z5
+{-38,0} .. {-17,18}z6
+{-16,18} .. {0,39}z7
+{0,13} .. {1,6}z8
+{2,20} .. {1,2}z9
+-- z10
+-- z11
+{-10,0} .. {-6,2}z12
+{-7,4} .. {-2,4}z13
+{-4,6} .. {1,6}z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{0,-8} .. {4,-7}z20
+{14,-27} .. {59,0}z21
+-- z22
+-- z23
+{-5,-21} .. {-2,-11}z24
+{-3,-14} .. {0,-5}z25
+{1,-16} .. {0,0}z26
+{2,-115} .. {121,1}z27
+{56,0} .. {48,28}z28
+{50,29} .. {24,49}z29
+{17,35} .. {10,40}z30
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(79,718FX#,637FY#,0FY#);
+"O";
+z1=(693FX,472FY);
+z2=(667FX,568FY);
+z3=(511FX,637FY);
+z4=(411FX,625FY);
+z5=(335FX,589FY);
+z6=(240FX,485FY);
+z7=(197FX,373FY);
+z8=(130FX,104FY);
+z9=(96FX,34FY);
+z10=(24FX,18FY);
+z11=(19FX,0FY);
+z12=(291FX,0FY);
+z13=(295FX,18FY);
+z14=(226FX,36FY);
+z15=(220FX,59FY);
+z16=(221FX,79FY);
+z17=(226FX,104FY);
+z18=(295FX,379FY);
+z19=(359FX,535FY);
+z20=(504FX,606FY);
+z21=(602FX,497FY);
+z22=(586FX,379FY);
+z23=(517FX,104FY);
+z24=(483FX,34FY);
+z25=(407FX,18FY);
+z26=(403FX,0FY);
+z27=(675FX,0FY);
+z28=(679FX,18FY);
+z29=(613FX,34FY);
+z30=(606FX,58FY);
+z31=(613FX,104FY);
+z32=(680FX,373FY);
+z33=(693FX,472FY);
+FuF (z1
+{-1,38} .. {-16,26}z2
+{-30,47} .. {-74,-1}z3
+{-40,0} .. {-27,-8}z4
+{-28,-8} .. {-22,-16}z5
+{-46,-35} .. {-17,-35}z6
+{-20,-41} .. {-9,-34}z7
+-- z8
+{-9,-37} .. {-14,-10}z9
+{-14,-11} .. {-34,0}z10
+-- z11
+-- z12
+-- z13
+{-38,1} .. {-8,11}z14
+{-4,6} .. {0,9}z15
+{1,9} .. {0,4}z16
+{2,9} .. {2,8}z17
+-- z18
+{18,70} .. {25,34}z19
+{35,48} .. {61,0}z20
+{65,-1} .. {0,-72}z21
+{0,-34} .. {-11,-45}z22
+-- z23
+{-9,-36} .. {-14,-11}z24
+{-14,-11} .. {-37,0}z25
+-- z26
+-- z27
+-- z28
+{-36,1} .. {-8,10}z29
+{-5,7} .. {0,9}z30
+{0,10} .. {5,21}z31
+-- z32
+{10,38} .. {-1,28}z33
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(80,803FX#,636FY#,0FY#);
+"P";
+z1=(784FX,424FY);
+z2=(741FX,550FY);
+z3=(519FX,636FY);
+z4=(276FX,568FY);
+z5=(130FX,368FY);
+z6=(117FX,315FY);
+z7=(213FX,315FY);
+z8=(232FX,389FY);
+z9=(317FX,537FY);
+z10=(464FX,604FY);
+z11=(366FX,211FY);
+z12=(463FX,213FY);
+z13=(561FX,604FY);
+z14=(675FX,531FY);
+z15=(691FX,450FY);
+z16=(682FX,373FY);
+z17=(614FX,102FY);
+z18=(580FX,39FY);
+z19=(508FX,19FY);
+z20=(503FX,0FY);
+z21=(766FX,0FY);
+z22=(771FX,18FY);
+z23=(712FX,37FY);
+z24=(705FX,63FY);
+z25=(710FX,102FY);
+z26=(777FX,366FY);
+z27=(784FX,424FY);
+FuF (z1
+{-2,44} .. {-27,40}z2
+{-40,58} .. {-108,0}z3
+{-91,0} .. {-71,-46}z4
+{-76,-49} .. {-21,-84}z5
+-- z6
+-- z7
+-- z8
+{13,55} .. {43,44}z9
+{44,45} .. {54,0}z10
+-- z11
+-- z12
+-- z13
+{58,-1} .. {17,-48}z14
+{10,-27} .. {0,-27}z15
+{0,-28} .. {-6,-23}z16
+-- z17
+{-7,-29} .. {-16,-13}z18
+{-16,-13} .. {-32,0}z19
+-- z20
+-- z21
+-- z22
+{-33,1} .. {-7,12}z23
+{-5,7} .. {0,10}z24
+{1,15} .. {2,11}z25
+-- z26
+{5,19} .. {0,20}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(81,794FX#,637FY#,0FY#);
+"Q";
+z1=(830FX,489FY);
+z2=(779FX,596FY);
+z3=(627FX,637FY);
+z4=(432FX,577FY);
+z5=(330FX,404FY);
+z6=(266FX,153FY);
+z7=(221FX,153FY);
+z8=(202FX,156FY);
+z9=(186FX,167FY);
+z10=(181FX,181FY);
+z11=(182FX,194FY);
+z12=(189FX,217FY);
+z13=(66FX,217FY);
+z14=(58FX,185FY);
+z15=(57FX,174FY);
+z16=(83FX,128FY);
+z17=(187FX,111FY);
+z18=(256FX,111FY);
+z19=(249FX,90FY);
+z20=(219FX,33FY);
+z21=(154FX,18FY);
+z22=(149FX,0FY);
+z23=(414FX,0FY);
+z24=(418FX,18FY);
+z25=(361FX,26FY);
+z26=(342FX,59FY);
+z27=(347FX,93FY);
+z28=(353FX,111FY);
+z29=(619FX,111FY);
+z30=(639FX,109FY);
+z31=(653FX,98FY);
+z32=(658FX,81FY);
+z33=(657FX,70FY);
+z34=(651FX,47FY);
+z35=(774FX,47FY);
+z36=(783FX,79FY);
+z37=(784FX,89FY);
+z38=(774FX,117FY);
+z39=(754FX,137FY);
+z40=(726FX,148FY);
+z41=(692FX,153FY);
+z42=(362FX,153FY);
+z43=(395FX,281FY);
+z44=(449FX,241FY);
+z45=(525FX,230FY);
+z46=(713FX,286FY);
+z47=(816FX,404FY);
+z48=(830FX,489FY);
+z49=(735FX,510FY);
+z50=(719FX,418FY);
+z51=(653FX,310FY);
+z52=(536FX,267FY);
+z53=(456FX,291FY);
+z54=(418FX,362FY);
+z55=(420FX,382FY);
+z56=(437FX,450FY);
+z57=(505FX,564FY);
+z58=(619FX,606FY);
+z59=(735FX,510FY);
+FuF (z1
+{-1,44} .. {-33,27}z2
+{-35,28} .. {-66,-1}z3
+{-80,0} .. {-50,-40}z4
+{-49,-39} .. {-19,-77}z5
+-- z6
+-- z7
+-- z8
+{-6,1} .. {-4,6}z9
+{-4,6} .. {0,4}z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+{0,-17} .. {17,-14}z16
+{14,-11} .. {55,0}z17
+-- z18
+-- z19
+{-8,-28} .. {-12,-10}z20
+{-13,-10} .. {-30,0}z21
+-- z22
+-- z23
+-- z24
+{-26,0} .. {-12,5}z25
+{-12,9} .. {-1,13}z26
+{0,11} .. {3,12}z27
+-- z28
+-- z29
+-- z30
+{8,-4} .. {2,-4}z31
+{4,-5} .. {0,-7}z32
+-- z33
+-- z34
+-- z35
+-- z36
+-- z37
+{-1,12} .. {-6,7}z38
+{-6,9} .. {-8,5}z39
+{-7,6} .. {-11,1}z40
+{-16,2} .. {-7,1}z41
+-- z42
+-- z43
+{16,-20} .. {20,-7}z44
+{22,-7} .. {29,0}z45
+{68,1} .. {57,37}z46
+{59,38} .. {10,41}z47
+{10,40} .. {-1,16}z48
+);
+FuF (z49
+{-2,-27} .. {-8,-34}z50
+{-10,-43} .. {-34,-29}z51
+{-35,-29} .. {-43,0}z52
+{-31,0} .. {-22,16}z53
+{-25,18} .. {0,30}z54
+-- z55
+-- z56
+{11,47} .. {34,29}z57
+{34,28} .. {42,0}z58
+{76,-1} .. {1,-63}z59
+);
+lbl (range 1 thru 59);
+endchar;
+
+beginchar(82,650FX#,637FY#,0FY#);
+"R";
+z1=(692FX,471FY);
+z2=(506FX,637FY);
+z3=(348FX,595FY);
+z4=(237FX,476FY);
+z5=(196FX,366FY);
+z6=(129FX,102FY);
+z7=(95FX,32FY);
+z8=(24FX,18FY);
+z9=(19FX,0FY);
+z10=(286FX,0FY);
+z11=(290FX,19FY);
+z12=(228FX,39FY);
+z13=(221FX,65FY);
+z14=(226FX,102FY);
+z15=(293FX,373FY);
+z16=(375FX,550FY);
+z17=(499FX,606FY);
+z18=(602FX,537FY);
+z19=(600FX,468FY);
+z20=(592FX,402FY);
+z21=(570FX,315FY);
+z22=(666FX,315FY);
+z23=(679FX,366FY);
+z24=(692FX,471FY);
+FuF (z1
+{-2,111} .. {-122,-1}z2
+{-58,0} .. {-47,-28}z3
+{-50,-28} .. {-24,-51}z4
+{-18,-36} .. {-10,-37}z5
+-- z6
+{-9,-37} .. {-13,-10}z7
+{-14,-9} .. {-34,0}z8
+-- z9
+-- z10
+-- z11
+{-34,0} .. {-8,14}z12
+{-5,7} .. {0,10}z13
+{0,11} .. {4,14}z14
+-- z15
+{20,79} .. {35,39}z16
+{33,37} .. {50,0}z17
+{68,0} .. {1,-46}z18
+{0,-25} .. {-2,-21}z19
+{-2,-31} .. {-3,-13}z20
+-- z21
+-- z22
+-- z23
+{10,35} .. {-1,35}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(83,718FX#,624FY#,13FY#);
+"S";
+z1=(830FX,624FY);
+z2=(563FX,624FY);
+z3=(559FX,607FY);
+z4=(625FX,589FY);
+z5=(630FX,568FY);
+z6=(627FX,546FY);
+z7=(623FX,523FY);
+z8=(555FX,252FY);
+z9=(474FX,73FY);
+z10=(350FX,19FY);
+z11=(238FX,86FY);
+z12=(239FX,114FY);
+z13=(250FX,177FY);
+z14=(265FX,252FY);
+z15=(333FX,523FY);
+z16=(365FX,589FY);
+z17=(440FX,607FY);
+z18=(444FX,624FY);
+z19=(177FX,624FY);
+z20=(173FX,607FY);
+z21=(238FX,590FY);
+z22=(243FX,569FY);
+z23=(242FX,547FY);
+z24=(236FX,523FY);
+z25=(171FX,258FY);
+z26=(157FX,151FY);
+z27=(181FX,57FY);
+z28=(343FX,-13FY);
+z29=(515FX,38FY);
+z30=(611FX,149FY);
+z31=(653FX,258FY);
+z32=(719FX,523FY);
+z33=(754FX,592FY);
+z34=(825FX,607FY);
+FuF (z1
+-- z2
+-- z3
+{38,0} .. {6,-12}z4
+{3,-4} .. {0,-10}z5
+{0,-6} .. {-2,-9}z6
+{-2,-11} .. {-1,-4}z7
+-- z8
+{-20,-81} .. {-34,-38}z9
+{-32,-37} .. {-50,0}z10
+{-74,0} .. {0,44}z11
+{0,11} .. {0,7}z12
+{4,26} .. {3,16}z13
+{6,34} .. {4,16}z14
+-- z15
+{8,32} .. {14,12}z16
+{13,12} .. {37,0}z17
+-- z18
+-- z19
+-- z20
+{36,-1} .. {7,-10}z21
+{3,-3} .. {0,-11}z22
+{0,-9} .. {0,-5}z23
+{-3,-12} .. {-1,-4}z24
+-- z25
+{-10,-40} .. {1,-31}z26
+{0,-39} .. {15,-24}z27
+{30,-47} .. {78,0}z28
+{70,0} .. {44,34}z29
+{44,33} .. {20,41}z30
+{20,40} .. {8,33}z31
+-- z32
+{10,37} .. {14,9}z33
+{14,10} .. {34,0}z34
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(84,612FX#,635FY#,15FY#);
+"T";
+z1=(647FX,509FY);
+z2=(560FX,621FY);
+z3=(476FX,636FY);
+z4=(323FX,597FY);
+z5=(219FX,488FY);
+z6=(214FX,463FY);
+z7=(211FX,428FY);
+z8=(220FX,388FY);
+z9=(284FX,323FY);
+z10=(437FX,249FY);
+z11=(494FX,198FY);
+z12=(496FX,178FY);
+z13=(491FX,129FY);
+z14=(470FX,83FY);
+z15=(432FX,46FY);
+z16=(332FX,16FY);
+z17=(228FX,69FY);
+z18=(209FX,141FY);
+z19=(217FX,204FY);
+z20=(119FX,204FY);
+z21=(113FX,148FY);
+z22=(159FX,32FY);
+z23=(325FX,-15FY);
+z24=(500FX,39FY);
+z25=(563FX,96FY);
+z26=(592FX,154FY);
+z27=(598FX,180FY);
+z28=(599FX,207FY);
+z29=(596FX,232FY);
+z30=(587FX,258FY);
+z31=(542FX,316FY);
+z32=(451FX,362FY);
+z33=(356FX,414FY);
+z34=(315FX,448FY);
+z35=(308FX,470FY);
+z36=(311FX,494FY);
+z37=(372FX,576FY);
+z38=(420FX,602FY);
+z39=(468FX,609FY);
+z40=(549FX,558FY);
+z41=(560FX,505FY);
+z42=(552FX,444FY);
+z43=(642FX,445FY);
+z44=(647FX,509FY);
+FuF (z1
+{-2,53} .. {-56,22}z2
+{-27,10} .. {-29,0}z3
+{-52,-1} .. {-51,-25}z4
+{-58,-29} .. {-11,-44}z5
+{-2,-7} .. {-2,-10}z6
+{-3,-11} .. {1,-13}z7
+{0,-17} .. {6,-9}z8
+{11,-20} .. {31,-24}z9
+-- z10
+{34,-16} .. {4,-18}z11
+{2,-7} .. {0,-7}z12
+{0,-20} .. {-3,-13}z13
+{-4,-16} .. {-10,-14}z14
+{-13,-18} .. {-11,-8}z15
+{-31,-20} .. {-36,0}z16
+{-49,1} .. {-20,35}z17
+{-12,21} .. {-1,27}z18
+{0,20} .. {6,22}z19
+-- z20
+-- z21
+{2,-47} .. {29,-31}z22
+{31,-31} .. {80,0}z23
+{66,0} .. {51,36}z24
+{27,19} .. {15,19}z25
+{14,18} .. {6,21}z26
+{4,12} .. {0,5}z27
+{1,5} .. {0,13}z28
+{0,9} .. {-1,8}z29
+{-4,13} .. {-3,5}z30
+{-15,30} .. {-16,9}z31
+{-36,19} .. {-24,13}z32
+-- z33
+{-19,10} .. {-8,12}z34
+{-5,7} .. {0,8}z35
+{1,11} .. {1,4}z36
+{9,33} .. {32,22}z37
+{18,13} .. {14,5}z38
+{14,5} .. {18,0}z39
+{42,0} .. {12,-34}z40
+{7,-18} .. {0,-17}z41
+{0,-20} .. {-6,-21}z42
+-- z43
+{4,24} .. {0,18}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(85,1240FX#,637FY#,0FY#);
+"U";
+z1=(693FX,472FY);
+z2=(667FX,568FY);
+z3=(511FX,637FY);
+z4=(411FX,625FY);
+z5=(335FX,589FY);
+z6=(240FX,485FY);
+z7=(197FX,373FY);
+z8=(130FX,104FY);
+z9=(96FX,34FY);
+z10=(24FX,18FY);
+z11=(19FX,0FY);
+z12=(291FX,0FY);
+z13=(295FX,18FY);
+z14=(226FX,36FY);
+z15=(220FX,59FY);
+z16=(221FX,79FY);
+z17=(226FX,104FY);
+z18=(295FX,379FY);
+z19=(359FX,535FY);
+z20=(504FX,606FY);
+z21=(602FX,497FY);
+z22=(586FX,379FY);
+z23=(517FX,104FY);
+z24=(483FX,34FY);
+z25=(407FX,18FY);
+z26=(403FX,0FY);
+z27=(675FX,0FY);
+z28=(679FX,18FY);
+z29=(613FX,34FY);
+z30=(606FX,58FY);
+z31=(613FX,104FY);
+z32=(680FX,373FY);
+z33=(693FX,472FY);
+z34=(1298FX,360FY);
+z35=(1269FX,407FY);
+z36=(1236FX,420FY);
+z37=(1180FX,425FY);
+z38=(1025FX,425FY);
+z39=(1049FX,523FY);
+z40=(1081FX,589FY);
+z41=(1156FX,607FY);
+z42=(1160FX,624FY);
+z43=(893FX,624FY);
+z44=(889FX,607FY);
+z45=(954FX,590FY);
+z46=(960FX,569FY);
+z47=(958FX,547FY);
+z48=(953FX,523FY);
+z49=(848FX,104FY);
+z50=(814FX,33FY);
+z51=(742FX,18FY);
+z52=(737FX,0FY);
+z53=(1004FX,0FY);
+z54=(1010FX,19FY);
+z55=(939FX,64FY);
+z56=(945FX,104FY);
+z57=(1014FX,383FY);
+z58=(1129FX,383FY);
+z59=(1166FX,371FY);
+z60=(1173FX,351FY);
+z61=(1171FX,339FY);
+z62=(1165FX,315FY);
+z63=(1288FX,315FY);
+z64=(1296FX,349FY);
+z65=(1298FX,360FY);
+FuF (z1
+{-1,38} .. {-16,26}z2
+{-30,47} .. {-74,-1}z3
+{-40,0} .. {-27,-8}z4
+{-28,-8} .. {-22,-16}z5
+{-46,-35} .. {-17,-35}z6
+{-20,-41} .. {-9,-34}z7
+-- z8
+{-9,-37} .. {-14,-10}z9
+{-14,-11} .. {-34,0}z10
+-- z11
+-- z12
+-- z13
+{-38,1} .. {-8,11}z14
+{-4,6} .. {0,9}z15
+{1,9} .. {0,4}z16
+{2,9} .. {2,8}z17
+-- z18
+{17,70} .. {25,34}z19
+{35,48} .. {61,0}z20
+{65,-1} .. {0,-72}z21
+{0,-34} .. {-11,-45}z22
+-- z23
+{-9,-36} .. {-14,-11}z24
+{-14,-11} .. {-37,0}z25
+-- z26
+-- z27
+-- z28
+{-36,1} .. {-8,10}z29
+{-5,7} .. {0,9}z30
+{0,10} .. {5,21}z31
+-- z32
+{10,38} .. {-1,28}z33
+);
+FuF (z34
+{-4,22} .. {-15,10}z35
+{-8,7} .. {-14,2}z36
+{-9,3} .. {-29,0}z37
+-- z38
+-- z39
+{8,32} .. {13,12}z40
+{13,12} .. {37,0}z41
+-- z42
+-- z43
+-- z44
+{36,-1} .. {7,-10}z45
+{4,-4} .. {0,-10}z46
+{-1,-9} .. {0,-5}z47
+{-2,-11} .. {-1,-5}z48
+-- z49
+{-9,-37} .. {-14,-11}z50
+{-14,-10} .. {-34,0}z51
+-- z52
+-- z53
+-- z54
+{-48,4} .. {1,26}z55
+{0,12} .. {4,15}z56
+-- z57
+-- z58
+{20,0} .. {5,-8}z59
+{4,-8} .. {0,-5}z60
+{-1,-5} .. {-1,-3}z61
+-- z62
+-- z63
+-- z64
+{1,2} .. {0,5}z65
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 65);
+endchar;
+
+beginchar(86,833FX#,624FY#,70FY#);
+"V";
+z1=(827FX,624FY);
+z2=(560FX,624FY);
+z3=(556FX,606FY);
+z4=(627FX,561FY);
+z5=(621FX,523FY);
+z6=(577FX,346FY);
+z7=(387FX,175FY);
+z8=(277FX,279FY);
+z9=(282FX,329FY);
+z10=(306FX,425FY);
+z11=(139FX,425FY);
+z12=(134FX,406FY);
+z13=(188FX,395FY);
+z14=(198FX,368FY);
+z15=(191FX,306FY);
+z16=(241FX,189FY);
+z17=(380FX,143FY);
+z18=(536FX,183FY);
+z19=(490FX,0FY);
+z20=(635FX,0FY);
+z21=(664FX,-36FY);
+z22=(663FX,-47FY);
+z23=(657FX,-70FY);
+z24=(780FX,-70FY);
+z25=(788FX,-38FY);
+z26=(789FX,-25FY);
+z27=(747FX,22FY);
+z28=(655FX,36FY);
+z29=(595FX,36FY);
+z30=(717FX,523FY);
+z31=(753FX,596FY);
+z32=(823FX,607FY);
+FuF (z1
+-- z2
+-- z3
+{47,0} .. {1,-30}z4
+{0,-10} .. {-4,-16}z5
+-- z6
+{-29,-114} .. {-98,0}z7
+{-72,0} .. {-1,69}z8
+{-1,16} .. {4,17}z9
+-- z10
+-- z11
+-- z12
+{28,-1} .. {8,-7}z13
+{9,-7} .. {-2,-11}z14
+{-5,-27} .. {1,-15}z15
+{2,-50} .. {32,-28}z16
+{33,-31} .. {60,0}z17
+{50,0} .. {54,27}z18
+-- z19
+-- z20
+{19,0} .. {0,-24}z21
+{0,-4} .. {-1,-3}z22
+-- z23
+-- z24
+-- z25
+{1,5} .. {-1,4}z26
+{0,20} .. {-28,11}z27
+{-24,9} .. {-37,0}z28
+-- z29
+-- z30
+{10,39} .. {14,10}z31
+{11,7} .. {36,0}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(87,521FX#,624FY#,0FY#);
+"W";
+z1=(579FX,360FY);
+z2=(551FX,407FY);
+z3=(517FX,420FY);
+z4=(462FX,425FY);
+z5=(306FX,425FY);
+z6=(331FX,523FY);
+z7=(363FX,589FY);
+z8=(438FX,607FY);
+z9=(442FX,624FY);
+z10=(175FX,624FY);
+z11=(171FX,607FY);
+z12=(236FX,590FY);
+z13=(242FX,569FY);
+z14=(240FX,547FY);
+z15=(235FX,523FY);
+z16=(130FX,104FY);
+z17=(95FX,33FY);
+z18=(23FX,18FY);
+z19=(19FX,0FY);
+z20=(286FX,0FY);
+z21=(291FX,19FY);
+z22=(221FX,64FY);
+z23=(226FX,104FY);
+z24=(296FX,383FY);
+z25=(411FX,383FY);
+z26=(448FX,371FY);
+z27=(455FX,351FY);
+z28=(453FX,339FY);
+z29=(447FX,315FY);
+z30=(570FX,315FY);
+z31=(578FX,349FY);
+z32=(579FX,360FY);
+FuF (z1
+{-3,22} .. {-15,10}z2
+{-9,7} .. {-14,2}z3
+{-8,3} .. {-28,0}z4
+-- z5
+-- z6
+{8,32} .. {13,12}z7
+{13,12} .. {37,0}z8
+-- z9
+-- z10
+-- z11
+{36,-1} .. {7,-10}z12
+{4,-4} .. {1,-10}z13
+{-1,-9} .. {0,-5}z14
+{-3,-11} .. {-1,-5}z15
+-- z16
+{-9,-37} .. {-14,-11}z17
+{-13,-10} .. {-35,0}z18
+-- z19
+-- z20
+-- z21
+{-47,4} .. {1,26}z22
+{0,12} .. {3,15}z23
+-- z24
+-- z25
+{20,0} .. {5,-8}z26
+{4,-8} .. {0,-5}z27
+{-1,-5} .. {0,-3}z28
+-- z29
+-- z30
+-- z31
+{1,2} .. {0,5}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(88,819FX#,624FY#,13FY#);
+"X";
+z1=(857FX,425FY);
+z2=(675FX,425FY);
+z3=(671FX,407FY);
+z4=(742FX,368FY);
+z5=(737FX,334FY);
+z6=(702FX,192FY);
+z7=(547FX,12FY);
+z8=(463FX,104FY);
+z9=(475FX,190FY);
+z10=(533FX,425FY);
+z11=(306FX,425FY);
+z12=(331FX,523FY);
+z13=(364FX,587FY);
+z14=(438FX,606FY);
+z15=(442FX,624FY);
+z16=(175FX,624FY);
+z17=(171FX,607FY);
+z18=(242FX,566FY);
+z19=(235FX,523FY);
+z20=(130FX,104FY);
+z21=(93FX,30FY);
+z22=(23FX,18FY);
+z23=(19FX,0FY);
+z24=(286FX,0FY);
+z25=(290FX,18FY);
+z26=(219FX,61FY);
+z27=(226FX,104FY);
+z28=(298FX,392FY);
+z29=(430FX,392FY);
+z30=(381FX,204FY);
+z31=(373FX,139FY);
+z32=(412FX,33FY);
+z33=(539FX,-13FY);
+z34=(715FX,53FY);
+z35=(800FX,204FY);
+FuF (z1
+-- z2
+-- z3
+{47,-2} .. {0,-24}z4
+{0,-8} .. {-4,-14}z5
+-- z6
+{-30,-121} .. {-74,0}z7
+{-55,1} .. {-1,60}z8
+{-1,24} .. {9,33}z9
+-- z10
+-- z11
+-- z12
+{7,31} .. {15,12}z13
+{15,12} .. {34,0}z14
+-- z15
+-- z16
+-- z17
+{46,-2} .. {1,-26}z18
+{0,-9} .. {-4,-19}z19
+-- z20
+{-10,-38} .. {-15,-11}z21
+{-12,-8} .. {-35,0}z22
+-- z23
+-- z24
+-- z25
+{-47,1} .. {0,27}z26
+{0,8} .. {5,21}z27
+-- z28
+-- z29
+-- z30
+{-5,-22} .. {0,-21}z31
+{1,-44} .. {25,-27}z32
+{29,-31} .. {56,1}z33
+{71,0} .. {46,44}z34
+{40,37} .. {16,64}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(89,660FX#,634FY#,16FY#);
+"Y";
+z1=(651FX,530FY);
+z2=(502FX,635FY);
+z3=(341FX,598FY);
+z4=(239FX,476FY);
+z5=(333FX,476FY);
+z6=(392FX,582FY);
+z7=(496FX,610FY);
+z8=(561FX,585FY);
+z9=(571FX,549FY);
+z10=(563FX,491FY);
+z11=(502FX,401FY);
+z12=(401FX,373FY);
+z13=(271FX,373FY);
+z14=(284FX,402FY);
+z15=(184FX,402FY);
+z16=(136FX,298FY);
+z17=(241FX,297FY);
+z18=(257FX,341FY);
+z19=(396FX,341FY);
+z20=(516FX,301FY);
+z21=(548FX,230FY);
+z22=(543FX,188FY);
+z23=(469FX,66FY);
+z24=(338FX,12FY);
+z25=(239FX,70FY);
+z26=(228FX,132FY);
+z27=(240FX,221FY);
+z28=(132FX,221FY);
+z29=(124FX,151FY);
+z30=(154FX,52FY);
+z31=(329FX,-16FY);
+z32=(522FX,37FY);
+z33=(634FX,198FY);
+z34=(638FX,217FY);
+z35=(640FX,244FY);
+z36=(607FX,316FY);
+z37=(505FX,367FY);
+z38=(590FX,406FY);
+z39=(646FX,488FY);
+z40=(651FX,530FY);
+FuF (z1
+{-3,70} .. {-96,0}z2
+{-60,-1} .. {-48,-24}z3
+{-56,-29} .. {-12,-52}z4
+-- z5
+{15,55} .. {24,16}z6
+{28,19} .. {41,0}z7
+{32,0} .. {12,-17}z8
+{7,-10} .. {0,-14}z9
+{0,-17} .. {-5,-22}z10
+{-11,-40} .. {-30,-20}z11
+{-30,-19} .. {-37,1}z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{49,0} .. {30,-27}z20
+{21,-18} .. {1,-29}z21
+{0,-14} .. {-3,-14}z22
+{-12,-48} .. {-38,-34}z23
+{-39,-36} .. {-48,0}z24
+{-50,1} .. {-15,38}z25
+{-7,19} .. {0,23}z26
+{0,31} .. {8,29}z27
+-- z28
+{-6,-25} .. {0,-22}z29
+{1,-39} .. {19,-27}z30
+{33,-46} .. {84,1}z31
+{75,0} .. {54,35}z32
+{58,38} .. {16,70}z33
+{1,4} .. {2,8}z34
+{1,10} .. {0,8}z35
+{-1,30} .. {-22,19}z36
+{-30,26} .. {-38,8}z37
+{34,13} .. {23,13}z38
+{28,16} .. {10,39}z39
+{4,17} .. {0,11}z40
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(90,677FX#,637FY#,95FY#);
+"Z";
+z1=(694FX,358FY);
+z2=(711FX,465FY);
+z3=(645FX,600FY);
+z4=(508FX,637FY);
+z5=(279FX,560FY);
+z6=(178FX,384FY);
+z7=(177FX,358FY);
+z8=(221FX,243FY);
+z9=(383FX,185FY);
+z10=(497FX,217FY);
+z11=(352FX,98FY);
+z12=(195FX,41FY);
+z13=(215FX,122FY);
+z14=(105FX,122FY);
+z15=(51FX,-95FY);
+z16=(161FX,-95FY);
+z17=(184FX,0FY);
+z18=(414FX,0FY);
+z19=(481FX,-43FY);
+z20=(479FX,-58FY);
+z21=(470FX,-95FY);
+z22=(578FX,-95FY);
+z23=(591FX,-47FY);
+z24=(593FX,-27FY);
+z25=(456FX,41FY);
+z26=(322FX,41FY);
+z27=(564FX,185FY);
+z28=(694FX,358FY);
+z29=(615FX,425FY);
+z30=(530FX,274FY);
+z31=(402FX,224FY);
+z32=(315FX,253FY);
+z33=(276FX,340FY);
+z34=(276FX,355FY);
+z35=(346FX,540FY);
+z36=(500FX,606FY);
+z37=(590FX,563FY);
+z38=(620FX,471FY);
+z39=(615FX,425FY);
+FuF (z1
+{12,40} .. {0,32}z2
+{-1,60} .. {-42,30}z3
+{-36,25} .. {-56,0}z4
+{-89,0} .. {-63,-52}z5
+{-59,-48} .. {-8,-69}z6
+{-1,-9} .. {1,-9}z7
+{0,-46} .. {29,-30}z8
+{36,-39} .. {72,0}z9
+{50,0} .. {26,22}z10
+{-34,-43} .. {-63,-37}z11
+{-63,-38} .. {-41,0}z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+{44,0} .. {1,-29}z19
+{0,-5} .. {-1,-5}z20
+-- z21
+-- z22
+-- z23
+{2,7} .. {0,6}z24
+{-1,46} .. {-91,0}z25
+-- z26
+{83,26} .. {78,71}z27
+{72,65} .. {15,50}z28
+);
+FuF (z29
+{-17,-65} .. {-40,-36}z30
+{-38,-34} .. {-47,0}z31
+{-35,1} .. {-23,19}z32
+{-25,21} .. {-1,37}z33
+{0,5} .. {0,5}z34
+{5,79} .. {41,44}z35
+{40,44} .. {63,0}z36
+{38,0} .. {22,-28}z37
+{19,-25} .. {1,-36}z38
+{0,-16} .. {-3,-14}z39
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(91,380FX#,750FY#,250FY#);
+"bracketleft";
+z1=(277FX,-250FY);
+z2=(288FX,-206FY);
+z3=(126FX,-206FY);
+z4=(353FX,706FY);
+z5=(515FX,706FY);
+z6=(526FX,750FY);
+z7=(281FX,750FY);
+z8=(32FX,-250FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(92,449FX#,624FY#,0FY#);
+"quotedblleft";
+z1=(264FX,430FY);
+z2=(267FX,448FY);
+z3=(308FX,534FY);
+z4=(379FX,608FY);
+z5=(384FX,615FY);
+z6=(382FX,620FY);
+z7=(381FX,623FY);
+z8=(375FX,624FY);
+z9=(368FX,623FY);
+z10=(314FX,572FY);
+z11=(273FX,513FY);
+z12=(248FX,448FY);
+z13=(246FX,383FY);
+z14=(284FX,355FY);
+z15=(322FX,369FY);
+z16=(343FX,402FY);
+z17=(339FX,436FY);
+z18=(307FX,450FY);
+z19=(264FX,430FY);
+z20=(439FX,430FY);
+z21=(441FX,440FY);
+z22=(442FX,448FY);
+z23=(483FX,534FY);
+z24=(555FX,608FY);
+z25=(558FX,615FY);
+z26=(558FX,620FY);
+z27=(556FX,623FY);
+z28=(551FX,624FY);
+z29=(544FX,623FY);
+z30=(489FX,572FY);
+z31=(448FX,513FY);
+z32=(422FX,448FY);
+z33=(421FX,383FY);
+z34=(459FX,355FY);
+z35=(498FX,369FY);
+z36=(519FX,402FY);
+z37=(515FX,436FY);
+z38=(483FX,450FY);
+z39=(439FX,430FY);
+FuF (z1
+{0,4} .. {2,8}z2
+{8,30} .. {20,27}z3
+{19,28} .. {28,22}z4
+{3,3} .. {1,2}z5
+{0,2} .. {-2,2}z6
+-- z7
+{-1,1} .. {-3,0}z8
+{-3,0} .. {-2,-1}z9
+{-20,-16} .. {-16,-19}z10
+{-16,-18} .. {-11,-21}z11
+{-11,-21} .. {-5,-23}z12
+{-6,-24} .. {5,-20}z13
+{5,-19} .. {21,0}z14
+{14,0} .. {11,10}z15
+{11,10} .. {3,12}z16
+{4,13} .. {-6,9}z17
+{-5,9} .. {-16,0}z18
+{-16,0} .. {-12,-13}z19
+);
+FuF (z20
+{1,4} .. {1,2}z21
+{0,3} .. {0,3}z22
+{8,30} .. {20,27}z23
+{19,28} .. {29,22}z24
+{2,2} .. {0,3}z25
+{1,2} .. {-1,1}z26
+-- z27
+{0,1} .. {-3,0}z28
+{-3,0} .. {-2,-1}z29
+{-20,-15} .. {-16,-19}z30
+{-16,-18} .. {-11,-21}z31
+{-12,-21} .. {-6,-23}z32
+{-6,-24} .. {5,-20}z33
+{5,-19} .. {20,0}z34
+{15,0} .. {11,10}z35
+{11,10} .. {3,12}z36
+{3,13} .. {-6,9}z37
+{-6,9} .. {-15,0}z38
+{-17,0} .. {-12,-13}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(93,380FX#,750FY#,250FY#);
+"bracketright";
+z1=(229FX,750FY);
+z2=(218FX,706FY);
+z3=(380FX,706FY);
+z4=(153FX,-206FY);
+z5=(-9FX,-206FY);
+z6=(-20FX,-250FY);
+z7=(225FX,-250FY);
+z8=(474FX,750FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(94,527FX#,750FY#,250FY#);
+"braceleft";
+z1=(394FX,-231FY);
+z2=(303FX,-107FY);
+z3=(336FX,-23FY);
+z4=(370FX,65FY);
+z5=(349FX,181FY);
+z6=(259FX,252FY);
+z7=(384FX,320FY);
+z8=(463FX,436FY);
+z9=(472FX,521FY);
+z10=(481FX,607FY);
+z11=(633FX,731FY);
+z12=(638FX,750FY);
+z13=(482FX,683FY);
+z14=(385FX,544FY);
+z15=(376FX,458FY);
+z16=(367FX,375FY);
+z17=(309FX,296FY);
+z18=(217FX,261FY);
+z19=(211FX,239FY);
+z20=(291FX,197FY);
+z21=(306FX,126FY);
+z22=(272FX,42FY);
+z23=(239FX,-43FY);
+z24=(265FX,-183FY);
+z25=(389FX,-250FY);
+FuF (z1
+{-77,21} .. {16,62}z2
+{6,23} .. {16,33}z3
+{17,36} .. {5,23}z4
+{10,43} .. {-24,35}z5
+{-21,31} .. {-39,16}z6
+{48,15} .. {35,30}z7
+{42,35} .. {11,43}z8
+{4,19} .. {1,38}z9
+{1,38} .. {5,19}z10
+{16,64} .. {85,18}z11
+-- z12
+{-57,-8} .. {-47,-37}z13
+{-52,-39} .. {-13,-54}z14
+{-5,-20} .. {-1,-38}z15
+{-1,-37} .. {-5,-18}z16
+{-8,-32} .. {-31,-21}z17
+{-28,-19} .. {-33,-4}z18
+-- z19
+{37,-5} .. {16,-23}z20
+{16,-22} .. {-6,-25}z21
+{-5,-18} .. {-17,-38}z22
+{-17,-37} .. {-5,-20}z23
+{-14,-54} .. {31,-39}z24
+{29,-37} .. {54,-8}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(95,527FX#,750FY#,250FY#);
+"braceright";
+z1=(277FX,731FY);
+z2=(368FX,607FY);
+z3=(334FX,522FY);
+z4=(300FX,436FY);
+z5=(321FX,319FY);
+z6=(412FX,249FY);
+z7=(286FX,181FY);
+z8=(208FX,64FY);
+z9=(199FX,-22FY);
+z10=(190FX,-107FY);
+z11=(37FX,-231FY);
+z12=(33FX,-250FY);
+z13=(189FX,-183FY);
+z14=(286FX,-43FY);
+z15=(295FX,41FY);
+z16=(303FX,126FY);
+z17=(362FX,204FY);
+z18=(454FX,239FY);
+z19=(459FX,261FY);
+z20=(385FX,296FY);
+z21=(365FX,375FY);
+z22=(399FX,457FY);
+z23=(432FX,543FY);
+z24=(409FX,678FY);
+z25=(282FX,750FY);
+FuF (z1
+{77,-20} .. {-16,-62}z2
+{-5,-19} .. {-17,-38}z3
+{-18,-37} .. {-5,-20}z4
+{-10,-43} .. {24,-35}z5
+{21,-31} .. {40,-16}z6
+{-48,-16} .. {-36,-29}z7
+{-42,-35} .. {-10,-44}z8
+{-5,-19} .. {-1,-38}z9
+{-1,-37} .. {-5,-19}z10
+{-17,-63} .. {-85,-20}z11
+-- z12
+{56,8} .. {47,37}z13
+{52,40} .. {13,54}z14
+{5,19} .. {1,37}z15
+{1,38} .. {4,19}z16
+{8,31} .. {31,21}z17
+{28,20} .. {33,4}z18
+-- z19
+{-31,5} .. {-18,18}z20
+{-21,21} .. {8,32}z21
+{5,18} .. {18,37}z22
+{17,37} .. {5,20}z23
+{12,50} .. {-28,40}z24
+{-28,41} .. {-57,8}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(96,236FX#,743FY#,0FY#);
+"buth";
+z1=(212FX,569FY);
+z2=(116FX,725FY);
+z3=(84FX,743FY);
+z4=(54FX,729FY);
+z5=(38FX,704FY);
+z6=(39FX,686FY);
+z7=(54FX,665FY);
+z8=(181FX,543FY);
+FuF (z1
+-- z2
+{-7,12} .. {-14,0}z3
+{-11,0} .. {-9,-9}z4
+{-10,-10} .. {-1,-6}z5
+{-2,-5} .. {2,-7}z6
+{5,-9} .. {5,-5}z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(97,815FX#,430FY#,7FY#);
+"a";
+z1=(843FX,137FY);
+z2=(828FX,140FY);
+z3=(787FX,74FY);
+z4=(744FX,46FY);
+z5=(715FX,76FY);
+z6=(722FX,121FY);
+z7=(799FX,425FY);
+z8=(719FX,425FY);
+z9=(701FX,355FY);
+z10=(608FX,153FY);
+z11=(494FX,43FY);
+z12=(466FX,74FY);
+z13=(472FX,113FY);
+z14=(550FX,425FY);
+z15=(469FX,425FY);
+z16=(452FX,355FY);
+z17=(358FX,156FY);
+z18=(246FX,43FY);
+z19=(214FX,82FY);
+z20=(219FX,112FY);
+z21=(284FX,315FY);
+z22=(291FX,366FY);
+z23=(229FX,430FY);
+z24=(143FX,381FY);
+z25=(88FX,286FY);
+z26=(103FX,282FY);
+z27=(146FX,349FY);
+z28=(188FX,376FY);
+z29=(213FX,350FY);
+z30=(207FX,316FY);
+z31=(142FX,112FY);
+z32=(134FX,59FY);
+z33=(202FX,-7FY);
+z34=(314FX,50FY);
+z35=(430FX,235FY);
+z36=(397FX,113FY);
+z37=(390FX,62FY);
+z38=(454FX,-7FY);
+z39=(679FX,235FY);
+z40=(648FX,119FY);
+z41=(640FX,62FY);
+z42=(703FX,-7FY);
+z43=(790FX,43FY);
+z44=(843FX,137FY);
+FuF (z1
+-- z2
+{-10,-25} .. {-17,-19}z3
+{-16,-19} .. {-12,0}z4
+{-19,0} .. {-1,20}z5
+{0,11} .. {4,20}z6
+-- z7
+-- z8
+-- z9
+{-16,-63} .. {-46,-72}z10
+{-48,-73} .. {-28,0}z11
+{-19,0} .. {0,21}z12
+{0,10} .. {4,16}z13
+-- z14
+-- z15
+-- z16
+{-15,-60} .. {-48,-73}z17
+{-48,-75} .. {-26,0}z18
+{-21,0} .. {-1,26}z19
+{0,10} .. {3,10}z20
+-- z21
+{5,17} .. {-1,17}z22
+{0,43} .. {-41,0}z23
+{-29,0} .. {-29,-33}z24
+{-25,-29} .. {-12,-35}z25
+-- z26
+{12,26} .. {17,19}z27
+{17,18} .. {11,-1}z28
+{16,0} .. {0,-17}z29
+{1,-9} .. {-5,-14}z30
+-- z31
+{-6,-19} .. {1,-16}z32
+{0,-44} .. {45,0}z33
+{39,0} .. {36,38}z34
+{35,38} .. {42,86}z35
+-- z36
+{-5,-19} .. {1,-15}z37
+{0,-46} .. {42,0}z38
+{74,0} .. {76,162}z39
+-- z40
+{-5,-22} .. {0,-16}z41
+{1,-46} .. {41,0}z42
+{31,0} .. {27,34}z43
+{21,25} .. {15,38}z44
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(98,541FX#,433FY#,190FY#);
+"b";
+z1=(553FX,384FY);
+z2=(551FX,405FY);
+z3=(481FX,434FY);
+z4=(253FX,193FY);
+z5=(285FX,311FY);
+z6=(295FX,382FY);
+z7=(294FX,394FY);
+z8=(291FX,407FY);
+z9=(234FX,434FY);
+z10=(153FX,393FY);
+z11=(89FX,290FY);
+z12=(104FX,286FY);
+z13=(121FX,318FY);
+z14=(141FX,348FY);
+z15=(191FX,380FY);
+z16=(213FX,365FY);
+z17=(217FX,349FY);
+z18=(212FX,314FY);
+z19=(102FX,-126FY);
+z20=(77FX,-166FY);
+z21=(31FX,-176FY);
+z22=(27FX,-191FY);
+z23=(227FX,-191FY);
+z24=(231FX,-176FY);
+z25=(188FX,-167FY);
+z26=(178FX,-146FY);
+z27=(180FX,-128FY);
+z28=(213FX,0FY);
+z29=(488FX,0FY);
+z30=(495FX,28FY);
+z31=(220FX,28FY);
+z32=(232FX,78FY);
+z33=(326FX,272FY);
+z34=(441FX,380FY);
+z35=(470FX,362FY);
+z36=(461FX,292FY);
+z37=(423FX,141FY);
+z38=(503FX,141FY);
+z39=(540FX,292FY);
+z40=(553FX,384FY);
+FuF (z1
+{-1,11} .. {0,4}z2
+{-8,19} .. {-38,0}z3
+{-71,0} .. {-81,-161}z4
+-- z5
+{7,26} .. {0,22}z6
+{-1,4} .. {0,3}z7
+{0,3} .. {-2,6}z8
+{-9,18} .. {-29,0}z9
+{-29,-1} .. {-25,-26}z10
+{-25,-27} .. {-17,-41}z11
+-- z12
+{8,14} .. {4,7}z13
+{6,11} .. {7,9}z14
+{16,21} .. {17,0}z15
+{11,-2} .. {4,-8}z16
+{3,-3} .. {0,-7}z17
+{0,-10} .. {-4,-14}z18
+-- z19
+{-5,-20} .. {-12,-7}z20
+{-11,-7} .. {-19,0}z21
+-- z22
+-- z23
+-- z24
+{-22,1} .. {-7,5}z25
+{-7,6} .. {0,8}z26
+{0,5} .. {2,7}z27
+-- z28
+-- z29
+-- z30
+-- z31
+-- z32
+{14,57} .. {48,72}z33
+{49,73} .. {28,-1}z34
+{17,0} .. {2,-12}z35
+{2,-14} .. {-8,-33}z36
+-- z37
+-- z38
+-- z39
+{9,36} .. {-1,25}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(99,453FX#,433FY#,195FY#);
+"c";
+z1=(487FX,311FY);
+z2=(454FX,389FY);
+z3=(355FX,434FY);
+z4=(189FX,367FY);
+z5=(85FX,198FY);
+z6=(75FX,117FY);
+z7=(83FX,66FY);
+z8=(190FX,0FY);
+z9=(283FX,24FY);
+z10=(346FX,68FY);
+z11=(351FX,68FY);
+z12=(310FX,-98FY);
+z13=(263FX,-156FY);
+z14=(222FX,-170FY);
+z15=(177FX,-174FY);
+z16=(127FX,-146FY);
+z17=(129FX,-128FY);
+z18=(138FX,-99FY);
+z19=(138FX,-78FY);
+z20=(120FX,-72FY);
+z21=(45FX,-120FY);
+z22=(43FX,-140FY);
+z23=(70FX,-179FY);
+z24=(172FX,-195FY);
+z25=(326FX,-147FY);
+z26=(411FX,-12FY);
+z27=(482FX,268FY);
+z28=(487FX,311FY);
+z29=(414FX,337FY);
+z30=(409FX,298FY);
+z31=(368FX,134FY);
+z32=(362FX,114FY);
+z33=(351FX,93FY);
+z34=(311FX,69FY);
+z35=(252FX,58FY);
+z36=(172FX,106FY);
+z37=(163FX,157FY);
+z38=(165FX,191FY);
+z39=(173FX,225FY);
+z40=(231FX,347FY);
+z41=(346FX,408FY);
+z42=(405FX,376FY);
+z43=(414FX,337FY);
+FuF (z1
+{-1,31} .. {-21,21}z2
+{-31,30} .. {-35,0}z3
+{-59,-1} .. {-52,-44}z4
+{-54,-45} .. {-15,-67}z5
+{-8,-34} .. {1,-20}z6
+{0,-20} .. {5,-14}z7
+{16,-44} .. {56,1}z8
+{29,0} .. {33,16}z9
+{34,17} .. {7,13}z10
+-- z11
+-- z12
+{-7,-27} .. {-25,-12}z13
+{-16,-7} .. {-12,-2}z14
+{-15,-3} .. {-15,0}z15
+{-33,1} .. {0,17}z16
+{-1,6} .. {2,6}z17
+-- z18
+{2,10} .. {-2,4}z19
+{-3,4} .. {-9,0}z20
+{-42,0} .. {-8,-32}z21
+{-2,-8} .. {1,-6}z22
+{1,-18} .. {17,-7}z23
+{24,-11} .. {44,0}z24
+{60,0} .. {42,32}z25
+{42,32} .. {15,58}z26
+-- z27
+{4,14} .. {0,15}z28
+);
+FuF (z29
+{0,-12} .. {-3,-14}z30
+-- z31
+-- z32
+-- z33
+{-6,-8} .. {-20,-8}z34
+{-21,-8} .. {-19,1}z35
+{-42,0} .. {-11,32}z36
+{-5,16} .. {-1,18}z37
+{0,11} .. {2,12}z38
+{3,15} .. {2,7}z39
+{13,49} .. {25,32}z40
+{32,40} .. {44,0}z41
+{29,0} .. {10,-21}z42
+{5,-12} .. {1,-14}z43
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(100,601FX#,433FY#,188FY#);
+"d";
+z1=(611FX,28FY);
+z2=(477FX,28FY);
+z3=(544FX,292FY);
+z4=(554FX,358FY);
+z5=(484FX,434FY);
+z6=(258FX,193FY);
+z7=(288FX,311FY);
+z8=(297FX,371FY);
+z9=(236FX,434FY);
+z10=(149FX,393FY);
+z11=(75FX,291FY);
+z12=(92FX,283FY);
+z13=(142FX,354FY);
+z14=(194FX,383FY);
+z15=(220FX,352FY);
+z16=(215FX,314FY);
+z17=(136FX,0FY);
+z18=(216FX,0FY);
+z19=(238FX,78FY);
+z20=(333FX,272FY);
+z21=(448FX,383FY);
+z22=(474FX,352FY);
+z23=(464FX,292FY);
+z24=(364FX,-105FY);
+z25=(336FX,-160FY);
+z26=(287FX,-175FY);
+z27=(284FX,-189FY);
+z28=(467FX,-189FY);
+z29=(471FX,-175FY);
+z30=(437FX,-161FY);
+z31=(442FX,-113FY);
+z32=(470FX,0FY);
+z33=(602FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{7,25} .. {0,19}z4
+{-1,50} .. {-46,0}z5
+{-72,0} .. {-79,-161}z6
+-- z7
+{6,23} .. {0,17}z8
+{-1,43} .. {-40,0}z9
+{-28,-1} .. {-30,-27}z10
+{-30,-26} .. {-19,-42}z11
+-- z12
+{14,28} .. {19,19}z13
+{19,19} .. {15,0}z14
+{17,0} .. {0,-21}z15
+{1,-10} .. {-4,-15}z16
+-- z17
+-- z18
+-- z19
+{16,58} .. {47,71}z20
+{49,74} .. {27,0}z21
+{17,0} .. {1,-21}z22
+{0,-13} .. {-7,-27}z23
+-- z24
+{-7,-28} .. {-12,-8}z25
+{-13,-10} .. {-20,0}z26
+-- z27
+-- z28
+-- z29
+{-19,1} .. {-4,8}z30
+{-3,7} .. {6,25}z31
+-- z32
+-- z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(101,553FX#,643FY#,11FY#);
+"e";
+z1=(591FX,135FY);
+z2=(575FX,142FY);
+z3=(525FX,71FY);
+z4=(473FX,42FY);
+z5=(447FX,73FY);
+z6=(452FX,109FY);
+z7=(504FX,315FY);
+z8=(424FX,315FY);
+z9=(312FX,120FY);
+z10=(224FX,42FY);
+z11=(192FX,69FY);
+z12=(202FX,131FY);
+z13=(269FX,396FY);
+z14=(544FX,396FY);
+z15=(551FX,425FY);
+z16=(276FX,425FY);
+z17=(331FX,641FY);
+z18=(327FX,643FY);
+z19=(183FX,602FY);
+z20=(179FX,587FY);
+z21=(194FX,588FY);
+z22=(229FX,558FY);
+z23=(226FX,538FY);
+z24=(123FX,131FY);
+z25=(113FX,57FY);
+z26=(183FX,-10FY);
+z27=(410FX,229FY);
+z28=(377FX,111FY);
+z29=(368FX,51FY);
+z30=(431FX,-12FY);
+z31=(521FX,32FY);
+z32=(591FX,135FY);
+FuF (z1
+-- z2
+{-11,-27} .. {-22,-20}z3
+{-21,-19} .. {-14,0}z4
+{-17,0} .. {0,20}z5
+{-1,9} .. {4,15}z6
+-- z7
+-- z8
+{-31,-74} .. {-44,-56}z9
+{-40,-52} .. {-19,0}z10
+{-21,0} .. {0,18}z11
+{-1,12} .. {7,30}z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+{5,1} .. {5,0}z21
+{23,0} .. {1,-20}z22
+{0,-6} .. {-2,-8}z23
+-- z24
+{-7,-29} .. {1,-20}z25
+{0,-44} .. {46,0}z26
+{70,0} .. {81,159}z27
+-- z28
+{-6,-23} .. {0,-17}z29
+{1,-42} .. {41,0}z30
+{29,0} .. {31,29}z31
+{29,28} .. {17,41}z32
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(102,620FX#,635FY#,188FY#);
+"f";
+z1=(668FX,288FY);
+z2=(622FX,395FY);
+z3=(463FX,436FY);
+z4=(483FX,510FY);
+z5=(487FX,544FY);
+z6=(458FX,611FY);
+z7=(378FX,636FY);
+z8=(271FX,606FY);
+z9=(213FX,518FY);
+z10=(210FX,490FY);
+z11=(377FX,407FY);
+z12=(282FX,26FY);
+z13=(180FX,58FY);
+z14=(146FX,146FY);
+z15=(154FX,209FY);
+z16=(158FX,222FY);
+z17=(166FX,247FY);
+z18=(168FX,251FY);
+z19=(91FX,258FY);
+z20=(73FX,203FY);
+z21=(66FX,140FY);
+z22=(121FX,30FY);
+z23=(273FX,-8FY);
+z24=(244FX,-123FY);
+z25=(220FX,-166FY);
+z26=(172FX,-175FY);
+z27=(169FX,-189FY);
+z28=(369FX,-189FY);
+z29=(373FX,-175FY);
+z30=(321FX,-143FY);
+z31=(323FX,-123FY);
+z32=(352FX,-9FY);
+z33=(557FX,58FY);
+z34=(658FX,204FY);
+z35=(668FX,288FY);
+z36=(414FX,560FY);
+z37=(407FX,511FY);
+z38=(386FX,439FY);
+z39=(315FX,451FY);
+z40=(295FX,487FY);
+z41=(299FX,515FY);
+z42=(328FX,585FY);
+z43=(370FX,602FY);
+z44=(404FX,591FY);
+z45=(414FX,560FY);
+z46=(588FX,280FY);
+z47=(578FX,204FY);
+z48=(502FX,74FY);
+z49=(361FX,26FY);
+z50=(455FX,403FY);
+z51=(559FX,367FY);
+z52=(588FX,280FY);
+FuF (z1
+{-1,47} .. {-30,24}z2
+{-33,27} .. {-73,0}z3
+-- z4
+{3,11} .. {0,12}z5
+{0,28} .. {-19,16}z6
+{-19,17} .. {-34,0}z7
+{-43,-1} .. {-28,-19}z8
+{-28,-19} .. {-11,-40}z9
+{-2,-10} .. {0,-8}z10
+{2,-56} .. {109,0}z11
+-- z12
+{-46,1} .. {-23,20}z13
+{-23,22} .. {0,37}z14
+{0,14} .. {6,28}z15
+{2,6} .. {0,3}z16
+-- z17
+-- z18
+-- z19
+{-6,-12} .. {-7,-24}z20
+{-6,-22} .. {1,-20}z21
+{1,-47} .. {36,-26}z22
+{35,-25} .. {66,0}z23
+-- z24
+{-6,-23} .. {-10,-6}z25
+{-11,-6} .. {-21,0}z26
+-- z27
+-- z28
+-- z29
+{-34,0} .. {0,21}z30
+{0,7} .. {1,6}z31
+-- z32
+{79,1} .. {58,44}z33
+{53,40} .. {14,57}z34
+{8,32} .. {-1,24}z35
+);
+FuF (z36
+{0,-15} .. {-5,-18}z37
+-- z38
+{-33,0} .. {-14,8}z39
+{-13,9} .. {0,15}z40
+{1,13} .. {1,6}z41
+{11,36} .. {9,11}z42
+{9,11} .. {19,0}z43
+{16,0} .. {6,-7}z44
+{7,-7} .. {0,-14}z45
+);
+FuF (z46
+{1,-23} .. {-8,-28}z47
+{-14,-55} .. {-36,-31}z48
+{-35,-32} .. {-58,0}z49
+-- z50
+{48,-1} .. {21,-23}z51
+{19,-21} .. {0,-37}z52
+);
+lbl (range 1 thru 52);
+endchar;
+
+beginchar(103,527FX#,433FY#,188FY#);
+"g";
+z1=(562FX,28FY);
+z2=(431FX,28FY);
+z3=(490FX,263FY);
+z4=(498FX,327FY);
+z5=(467FX,397FY);
+z6=(366FX,434FY);
+z7=(199FX,367FY);
+z8=(96FX,198FY);
+z9=(85FX,114FY);
+z10=(99FX,48FY);
+z11=(197FX,-9FY);
+z12=(283FX,11FY);
+z13=(355FX,58FY);
+z14=(359FX,58FY);
+z15=(318FX,-104FY);
+z16=(283FX,-159FY);
+z17=(217FX,-173FY);
+z18=(214FX,-189FY);
+z19=(437FX,-189FY);
+z20=(439FX,-175FY);
+z21=(396FX,-158FY);
+z22=(391FX,-145FY);
+z23=(395FX,-118FY);
+z24=(424FX,0FY);
+z25=(555FX,0FY);
+z26=(428FX,351FY);
+z27=(423FX,315FY);
+z28=(375FX,124FY);
+z29=(369FX,105FY);
+z30=(355FX,85FY);
+z31=(316FX,60FY);
+z32=(261FX,48FY);
+z33=(181FX,102FY);
+z34=(176FX,128FY);
+z35=(174FX,154FY);
+z36=(183FX,225FY);
+z37=(241FX,347FY);
+z38=(356FX,408FY);
+z39=(428FX,351FY);
+FuF (z1
+-- z2
+-- z3
+{6,26} .. {-1,17}z4
+{-1,32} .. {-19,14}z5
+{-32,25} .. {-35,0}z6
+{-60,-1} .. {-52,-44}z7
+{-53,-45} .. {-15,-67}z8
+{-8,-35} .. {1,-21}z9
+{1,-22} .. {9,-22}z10
+{18,-39} .. {47,1}z11
+{24,0} .. {33,13}z12
+{35,14} .. {13,17}z13
+-- z14
+-- z15
+{-6,-26} .. {-17,-11}z16
+{-15,-9} .. {-29,0}z17
+-- z18
+-- z19
+-- z20
+{-23,5} .. {-6,6}z21
+{-3,3} .. {0,6}z22
+{2,14} .. {1,4}z23
+-- z24
+-- z25
+);
+FuF (z26
+{0,-10} .. {-3,-14}z27
+-- z28
+-- z29
+-- z30
+{-6,-9} .. {-20,-8}z31
+{-21,-8} .. {-15,0}z32
+{-42,0} .. {-12,36}z33
+{-2,8} .. {-1,9}z34
+{-1,9} .. {0,8}z35
+{0,27} .. {6,21}z36
+{13,49} .. {26,33}z37
+{32,40} .. {44,0}z38
+{47,0} .. {1,-38}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(104,527FX#,644FY#,10FY#);
+"h";
+z1=(558FX,140FY);
+z2=(543FX,144FY);
+z3=(499FX,76FY);
+z4=(458FX,50FY);
+z5=(433FX,70FY);
+z6=(442FX,111FY);
+z7=(491FX,268FY);
+z8=(509FX,365FY);
+z9=(444FX,434FY);
+z10=(328FX,374FY);
+z11=(218FX,207FY);
+z12=(329FX,642FY);
+z13=(325FX,644FY);
+z14=(269FX,627FY);
+z15=(180FX,603FY);
+z16=(176FX,588FY);
+z17=(200FX,589FY);
+z18=(227FX,561FY);
+z19=(224FX,539FY);
+z20=(88FX,0FY);
+z21=(168FX,0FY);
+z22=(186FX,72FY);
+z23=(287FX,276FY);
+z24=(398FX,383FY);
+z25=(429FX,352FY);
+z26=(419FX,300FY);
+z27=(365FX,122FY);
+z28=(352FX,50FY);
+z29=(417FX,-10FY);
+z30=(499FX,41FY);
+z31=(558FX,140FY);
+FuF (z1
+-- z2
+{-13,-27} .. {-17,-18}z3
+{-16,-17} .. {-11,0}z4
+{-16,0} .. {-1,13}z5
+{0,8} .. {6,20}z6
+-- z7
+{13,40} .. {-1,25}z8
+{0,46} .. {-43,0}z9
+{-38,0} .. {-39,-40}z10
+{-40,-40} .. {-34,-71}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{10,1} .. {6,0}z17
+{18,-3} .. {0,-16}z18
+{0,-6} .. {-2,-9}z19
+-- z20
+-- z21
+-- z22
+{17,63} .. {51,72}z23
+{50,71} .. {25,0}z24
+{20,0} .. {0,-21}z25
+{1,-11} .. {-7,-23}z26
+-- z27
+{-9,-30} .. {1,-18}z28
+{1,-40} .. {43,0}z29
+{26,0} .. {29,34}z30
+{24,28} .. {16,37}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(105,536FX#,645FY#,188FY#);
+"i";
+z1=(546FX,139FY);
+z2=(534FX,144FY);
+z3=(490FX,79FY);
+z4=(446FX,50FY);
+z5=(423FX,71FY);
+z6=(431FX,109FY);
+z7=(488FX,291FY);
+z8=(501FX,366FY);
+z9=(430FX,434FY);
+z10=(209FX,213FY);
+z11=(317FX,643FY);
+z12=(310FX,645FY);
+z13=(169FX,603FY);
+z14=(166FX,587FY);
+z15=(192FX,590FY);
+z16=(215FX,558FY);
+z17=(211FX,527FY);
+z18=(46FX,-126FY);
+z19=(22FX,-164FY);
+z20=(-25FX,-175FY);
+z21=(-28FX,-189FY);
+z22=(172FX,-189FY);
+z23=(176FX,-175FY);
+z24=(131FX,-164FY);
+z25=(125FX,-126FY);
+z26=(177FX,78FY);
+z27=(272FX,269FY);
+z28=(387FX,383FY);
+z29=(416FX,350FY);
+z30=(405FX,291FY);
+z31=(352FX,111FY);
+z32=(342FX,51FY);
+z33=(411FX,-9FY);
+z34=(481FX,32FY);
+z35=(546FX,139FY);
+FuF (z1
+-- z2
+{-12,-24} .. {-17,-19}z3
+{-18,-19} .. {-12,0}z4
+{-15,0} .. {-1,14}z5
+{0,8} .. {5,17}z6
+-- z7
+{9,29} .. {0,21}z8
+{-1,45} .. {-47,0}z9
+{-67,0} .. {-80,-147}z10
+-- z11
+-- z12
+-- z13
+-- z14
+{11,3} .. {6,-1}z15
+{15,-1} .. {0,-20}z16
+{1,-9} .. {-3,-11}z17
+-- z18
+{-5,-19} .. {-12,-6}z19
+{-11,-7} .. {-20,0}z20
+-- z21
+-- z22
+-- z23
+{-23,1} .. {-8,6}z24
+{-8,8} .. {4,18}z25
+-- z26
+{14,54} .. {50,74}z27
+{51,76} .. {25,0}z28
+{19,0} .. {1,-22}z29
+{0,-14} .. {-8,-25}z30
+-- z31
+{-7,-23} .. {0,-17}z32
+{1,-40} .. {45,0}z33
+{21,0} .. {26,27}z34
+{27,29} .. {16,42}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(106,447FX#,433FY#,188FY#);
+"j";
+z1=(483FX,308FY);
+z2=(453FX,394FY);
+z3=(345FX,434FY);
+z4=(191FX,373FY);
+z5=(99FX,228FY);
+z6=(93FX,194FY);
+z7=(93FX,175FY);
+z8=(105FX,136FY);
+z9=(178FX,111FY);
+z10=(217FX,73FY);
+z11=(213FX,46FY);
+z12=(200FX,33FY);
+z13=(180FX,18FY);
+z14=(105FX,-36FY);
+z15=(47FX,-80FY);
+z16=(11FX,-140FY);
+z17=(9FX,-158FY);
+z18=(21FX,-179FY);
+z19=(62FX,-189FY);
+z20=(355FX,-189FY);
+z21=(362FX,-160FY);
+z22=(185FX,-160FY);
+z23=(140FX,-149FY);
+z24=(123FX,-127FY);
+z25=(122FX,-112FY);
+z26=(124FX,-105FY);
+z27=(148FX,-56FY);
+z28=(196FX,-6FY);
+z29=(277FX,58FY);
+z30=(425FX,179FY);
+z31=(483FX,308FY);
+z32=(393FX,329FY);
+z33=(392FX,299FY);
+z34=(387FX,270FY);
+z35=(368FX,216FY);
+z36=(341FX,170FY);
+z37=(253FX,72FY);
+z38=(267FX,93FY);
+z39=(273FX,109FY);
+z40=(274FX,123FY);
+z41=(270FX,144FY);
+z42=(226FX,187FY);
+z43=(187FX,209FY);
+z44=(182FX,225FY);
+z45=(201FX,306FY);
+z46=(248FX,374FY);
+z47=(328FX,411FY);
+z48=(393FX,329FY);
+FuF (z1
+{0,35} .. {-20,22}z2
+{-24,27} .. {-48,0}z3
+{-55,-1} .. {-48,-40}z4
+{-48,-40} .. {-14,-56}z5
+{-4,-16} .. {0,-7}z6
+{-1,-4} .. {1,-8}z7
+{1,-21} .. {7,-5}z8
+{7,-5} .. {42,-12}z9
+{25,-7} .. {0,-18}z10
+{-1,-12} .. {-1,-7}z11
+{-2,-3} .. {-7,-6}z12
+-- z13
+-- z14
+{-32,-22} .. {-7,-7}z15
+{-18,-17} .. {-6,-23}z16
+{-2,-8} .. {0,-4}z17
+{0,-11} .. {8,-4}z18
+{11,-6} .. {16,0}z19
+-- z20
+-- z21
+-- z22
+{-19,0} .. {-11,7}z23
+{-10,8} .. {-1,7}z24
+-- z25
+-- z26
+{5,17} .. {11,16}z27
+{10,16} .. {22,18}z28
+-- z29
+{77,61} .. {21,19}z30
+{40,36} .. {-1,50}z31
+);
+FuF (z32
+{0,-13} .. {0,-7}z33
+{-1,-8} .. {-2,-11}z34
+{-4,-19} .. {-8,-17}z35
+{-9,-19} .. {-9,-12}z36
+{-21,-30} .. {-37,-36}z37
+{9,9} .. {0,5}z38
+-- z39
+{1,4} .. {-1,5}z40
+{0,10} .. {-2,4}z41
+{-7,19} .. {-22,10}z42
+{-22,10} .. {-4,5}z43
+{-3,5} .. {0,6}z44
+{-1,25} .. {13,29}z45
+{13,28} .. {19,17}z46
+{27,25} .. {27,0}z47
+{42,0} .. {0,-55}z48
+);
+lbl (range 1 thru 48);
+endchar;
+
+beginchar(107,501FX#,645FY#,188FY#);
+"k";
+z1=(531FX,425FY);
+z2=(451FX,425FY);
+z3=(433FX,353FY);
+z4=(335FX,153FY);
+z5=(221FX,41FY);
+z6=(192FX,73FY);
+z7=(199FX,120FY);
+z8=(330FX,642FY);
+z9=(322FX,645FY);
+z10=(181FX,603FY);
+z11=(177FX,587FY);
+z12=(189FX,590FY);
+z13=(225FX,550FY);
+z14=(222FX,526FY);
+z15=(130FX,157FY);
+z16=(113FX,58FY);
+z17=(176FX,-9FY);
+z18=(289FX,46FY);
+z19=(402FX,215FY);
+z20=(314FX,-126FY);
+z21=(290FX,-164FY);
+z22=(243FX,-175FY);
+z23=(240FX,-189FY);
+z24=(440FX,-189FY);
+z25=(443FX,-175FY);
+z26=(399FX,-164FY);
+z27=(393FX,-126FY);
+FuF (z1
+-- z2
+-- z3
+{-14,-59} .. {-51,-74}z4
+{-51,-74} .. {-25,0}z5
+{-19,0} .. {0,21}z6
+{0,11} .. {5,21}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{5,2} .. {3,0}z12
+{23,4} .. {1,-30}z13
+{0,-7} .. {-2,-9}z14
+-- z15
+{-12,-47} .. {1,-19}z16
+{1,-45} .. {41,0}z17
+{39,0} .. {36,37}z18
+{34,35} .. {41,78}z19
+-- z20
+{-4,-18} .. {-12,-7}z21
+{-11,-7} .. {-20,0}z22
+-- z23
+-- z24
+-- z25
+{-22,1} .. {-7,6}z26
+{-8,8} .. {4,18}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(108,285FX#,424FY#,187FY#);
+"l";
+z1=(284FX,425FY);
+z2=(208FX,425FY);
+z3=(53FX,-188FY);
+z4=(241FX,-188FY);
+z5=(247FX,-159FY);
+z6=(179FX,-159FY);
+z7=(151FX,-153FY);
+z8=(144FX,-140FY);
+z9=(146FX,-125FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-14,0} .. {-5,4}z7
+{-4,4} .. {0,4}z8
+{1,6} .. {0,5}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(109,593FX#,633FY#,9FY#);
+"m";
+z1=(661FX,593FY);
+z2=(584FX,634FY);
+z3=(469FX,592FY);
+z4=(423FX,497FY);
+z5=(446FX,437FY);
+z6=(468FX,377FY);
+z7=(467FX,364FY);
+z8=(463FX,353FY);
+z9=(363FX,153FY);
+z10=(251FX,41FY);
+z11=(223FX,71FY);
+z12=(233FX,124FY);
+z13=(286FX,306FY);
+z14=(298FX,373FY);
+z15=(232FX,428FY);
+z16=(147FX,380FY);
+z17=(91FX,284FY);
+z18=(106FX,280FY);
+z19=(192FX,374FY);
+z20=(219FX,355FY);
+z21=(210FX,314FY);
+z22=(164FX,157FY);
+z23=(144FX,54FY);
+z24=(206FX,-9FY);
+z25=(319FX,47FY);
+z26=(441FX,233FY);
+z27=(411FX,117FY);
+z28=(400FX,47FY);
+z29=(464FX,-9FY);
+z30=(624FX,134FY);
+z31=(608FX,141FY);
+z32=(505FX,41FY);
+z33=(478FX,72FY);
+z34=(485FX,119FY);
+z35=(549FX,375FY);
+z36=(551FX,395FY);
+z37=(517FX,464FY);
+z38=(475FX,519FY);
+z39=(473FX,534FY);
+z40=(495FX,582FY);
+z41=(543FX,602FY);
+z42=(563FX,574FY);
+z43=(610FX,545FY);
+z44=(646FX,560FY);
+z45=(661FX,593FY);
+FuF (z1
+{-2,28} .. {-49,0}z2
+{-45,-1} .. {-32,-27}z3
+{-31,-27} .. {1,-36}z4
+{0,-15} .. {15,-26}z5
+{14,-25} .. {0,-15}z6
+{0,-4} .. {-1,-5}z7
+-- z8
+{-18,-60} .. {-49,-73}z9
+{-50,-75} .. {-25,0}z10
+{-18,1} .. {-1,19}z11
+{0,13} .. {7,22}z12
+-- z13
+{8,30} .. {0,15}z14
+{0,37} .. {-43,0}z15
+{-28,0} .. {-28,-32}z16
+{-24,-28} .. {-13,-36}z17
+-- z18
+{32,64} .. {26,-1}z19
+{18,0} .. {0,-12}z20
+{0,-6} .. {-6,-22}z21
+-- z22
+{-14,-47} .. {1,-22}z23
+{1,-42} .. {41,0}z24
+{39,0} .. {36,37}z25
+{35,37} .. {46,87}z26
+-- z27
+{-8,-30} .. {0,-16}z28
+{1,-38} .. {42,0}z29
+{56,0} .. {51,95}z30
+-- z31
+{-39,-66} .. {-30,0}z32
+{-18,0} .. {0,20}z33
+{0,11} .. {5,21}z34
+-- z35
+{1,7} .. {0,6}z36
+{0,21} .. {-22,25}z37
+{-26,28} .. {-2,8}z38
+{-1,4} .. {0,5}z39
+{0,18} .. {15,14}z40
+{15,13} .. {18,0}z41
+{1,0} .. {12,-18}z42
+{12,-19} .. {19,0}z43
+{14,0} .. {10,10}z44
+{11,9} .. {-1,13}z45
+);
+lbl (range 1 thru 45);
+endchar;
+
+beginchar(110,564FX#,630FY#,9FY#);
+"n";
+z1=(599FX,134FY);
+z2=(583FX,141FY);
+z3=(480FX,41FY);
+z4=(452FX,69FY);
+z5=(460FX,119FY);
+z6=(536FX,425FY);
+z7=(456FX,425FY);
+z8=(439FX,353FY);
+z9=(341FX,152FY);
+z10=(227FX,41FY);
+z11=(199FX,72FY);
+z12=(207FX,124FY);
+z13=(269FX,371FY);
+z14=(295FX,440FY);
+z15=(342FX,477FY);
+z16=(344FX,483FY);
+z17=(301FX,505FY);
+z18=(283FX,539FY);
+z19=(320FX,597FY);
+z20=(348FX,602FY);
+z21=(396FX,588FY);
+z22=(427FX,555FY);
+z23=(451FX,572FY);
+z24=(341FX,631FY);
+z25=(266FX,613FY);
+z26=(216FX,543FY);
+z27=(253FX,476FY);
+z28=(252FX,473FY);
+z29=(208FX,423FY);
+z30=(181FX,338FY);
+z31=(135FX,157FY);
+z32=(119FX,55FY);
+z33=(181FX,-9FY);
+z34=(297FX,50FY);
+z35=(416FX,233FY);
+z36=(385FX,117FY);
+z37=(374FX,49FY);
+z38=(440FX,-9FY);
+z39=(599FX,134FY);
+FuF (z1
+-- z2
+{-38,-66} .. {-30,0}z3
+{-18,0} .. {0,18}z4
+{0,9} .. {6,24}z5
+-- z6
+-- z7
+-- z8
+{-15,-59} .. {-50,-75}z9
+{-51,-74} .. {-25,0}z10
+{-19,1} .. {0,20}z11
+{0,12} .. {6,22}z12
+-- z13
+{8,31} .. {9,15}z14
+{10,14} .. {21,11}z15
+{1,3} .. {0,1}z16
+{-17,3} .. {-12,11}z17
+{-12,10} .. {0,12}z18
+{0,30} .. {24,9}z19
+{9,3} .. {10,0}z20
+{17,0} .. {15,-9}z21
+{15,-9} .. {6,-13}z22
+-- z23
+{-22,39} .. {-51,0}z24
+{-27,0} .. {-23,-12}z25
+{-31,-16} .. {-2,-31}z26
+{-2,-31} .. {27,-13}z27
+-- z28
+{-19,-15} .. {-10,-19}z29
+{-8,-16} .. {-11,-41}z30
+-- z31
+{-11,-46} .. {1,-23}z32
+{0,-43} .. {41,0}z33
+{40,0} .. {38,40}z34
+{37,38} .. {43,84}z35
+-- z36
+{-8,-28} .. {1,-17}z37
+{0,-39} .. {44,0}z38
+{57,0} .. {49,95}z39
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(111,584FX#,433FY#,9FY#);
+"o";
+z1=(610FX,140FY);
+z2=(594FX,144FY);
+z3=(550FX,75FY);
+z4=(510FX,50FY);
+z5=(485FX,70FY);
+z6=(494FX,111FY);
+z7=(552FX,297FY);
+z8=(563FX,363FY);
+z9=(496FX,434FY);
+z10=(262FX,192FY);
+z11=(295FX,325FY);
+z12=(301FX,371FY);
+z13=(237FX,434FY);
+z14=(77FX,291FY);
+z15=(94FX,283FY);
+z16=(196FX,383FY);
+z17=(224FX,355FY);
+z18=(216FX,306FY);
+z19=(140FX,0FY);
+z20=(220FX,0FY);
+z21=(238FX,72FY);
+z22=(336FX,274FY);
+z23=(450FX,383FY);
+z24=(479FX,350FY);
+z25=(469FX,297FY);
+z26=(417FX,122FY);
+z27=(404FX,50FY);
+z28=(469FX,-9FY);
+z29=(554FX,44FY);
+z30=(610FX,140FY);
+FuF (z1
+-- z2
+{-12,-28} .. {-17,-18}z3
+{-16,-17} .. {-11,0}z4
+{-16,0} .. {-1,13}z5
+{0,8} .. {6,20}z6
+-- z7
+{8,24} .. {-1,20}z8
+{-1,47} .. {-44,0}z9
+{-78,0} .. {-78,-161}z10
+-- z11
+{4,17} .. {0,14}z12
+{-1,42} .. {-42,0}z13
+{-55,0} .. {-52,-95}z14
+-- z15
+{43,66} .. {25,0}z16
+{18,0} .. {0,-18}z17
+{0,-12} .. {-5,-21}z18
+-- z19
+-- z20
+-- z21
+{17,63} .. {49,72}z22
+{49,73} .. {27,0}z23
+{19,0} .. {0,-22}z24
+{0,-13} .. {-7,-23}z25
+-- z26
+{-9,-29} .. {0,-19}z27
+{1,-40} .. {42,1}z28
+{28,0} .. {29,35}z29
+{23,28} .. {15,36}z30
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(112,777FX#,430FY#,188FY#);
+"p";
+z1=(806FX,425FY);
+z2=(726FX,425FY);
+z3=(709FX,355FY);
+z4=(614FX,155FY);
+z5=(501FX,43FY);
+z6=(476FX,58FY);
+z7=(473FX,70FY);
+z8=(481FX,121FY);
+z9=(558FX,425FY);
+z10=(477FX,425FY);
+z11=(460FX,355FY);
+z12=(365FX,156FY);
+z13=(254FX,43FY);
+z14=(228FX,59FY);
+z15=(225FX,71FY);
+z16=(235FX,126FY);
+z17=(281FX,272FY);
+z18=(290FX,308FY);
+z19=(300FX,381FY);
+z20=(297FX,401FY);
+z21=(236FX,430FY);
+z22=(153FX,382FY);
+z23=(96FX,286FY);
+z24=(111FX,282FY);
+z25=(151FX,347FY);
+z26=(195FX,376FY);
+z27=(217FX,361FY);
+z28=(211FX,316FY);
+z29=(162FX,158FY);
+z30=(145FX,43FY);
+z31=(146FX,31FY);
+z32=(210FX,-7FY);
+z33=(316FX,45FY);
+z34=(437FX,235FY);
+z35=(416FX,151FY);
+z36=(409FX,119FY);
+z37=(398FX,39FY);
+z38=(399FX,22FY);
+z39=(462FX,-7FY);
+z40=(566FX,50FY);
+z41=(670FX,203FY);
+z42=(588FX,-124FY);
+z43=(563FX,-163FY);
+z44=(519FX,-175FY);
+z45=(515FX,-189FY);
+z46=(714FX,-188FY);
+z47=(718FX,-175FY);
+z48=(673FX,-164FY);
+z49=(665FX,-145FY);
+z50=(668FX,-126FY);
+FuF (z1
+-- z2
+-- z3
+{-15,-59} .. {-48,-74}z4
+{-47,-75} .. {-28,0}z5
+{-13,1} .. {-3,9}z6
+{-2,3} .. {-1,5}z7
+{0,14} .. {5,21}z8
+-- z9
+-- z10
+-- z11
+{-14,-55} .. {-49,-78}z12
+{-48,-76} .. {-26,0}z13
+{-14,1} .. {-4,10}z14
+{-2,3} .. {0,5}z15
+{1,19} .. {6,18}z16
+-- z17
+-- z18
+{7,28} .. {0,20}z19
+{-1,8} .. {-1,5}z20
+{-5,19} .. {-36,0}z21
+{-29,0} .. {-26,-32}z22
+{-28,-34} .. {-10,-30}z23
+-- z24
+{11,26} .. {15,17}z25
+{18,20} .. {11,-1}z26
+{15,0} .. {1,-10}z27
+{1,-11} .. {-6,-19}z28
+-- z29
+{-12,-58} .. {1,-19}z30
+{0,-5} .. {0,-3}z31
+{1,-26} .. {41,1}z32
+{37,0} .. {34,34}z33
+{33,35} .. {48,92}z34
+-- z35
+-- z36
+{-8,-32} .. {1,-21}z37
+{0,-6} .. {0,-5}z38
+{7,-20} .. {35,1}z39
+{32,0} .. {37,38}z40
+{37,37} .. {33,65}z41
+-- z42
+{-5,-20} .. {-11,-6}z43
+{-10,-8} .. {-19,0}z44
+-- z45
+-- z46
+-- z47
+{-22,1} .. {-8,6}z48
+{-5,5} .. {-1,8}z49
+{0,6} .. {2,7}z50
+);
+lbl (range 1 thru 50);
+endchar;
+
+beginchar(113,500FX#,433FY#,188FY#);
+"q";
+z1=(527FX,285FY);
+z2=(497FX,375FY);
+z3=(362FX,434FY);
+z4=(226FX,387FY);
+z5=(151FX,263FY);
+z6=(74FX,-47FY);
+z7=(-30FX,-47FY);
+z8=(-38FX,-76FY);
+z9=(66FX,-76FY);
+z10=(56FX,-118FY);
+z11=(34FX,-160FY);
+z12=(-17FX,-175FY);
+z13=(-20FX,-189FY);
+z14=(188FX,-189FY);
+z15=(191FX,-174FY);
+z16=(140FX,-164FY);
+z17=(131FX,-145FY);
+z18=(136FX,-119FY);
+z19=(146FX,-76FY);
+z20=(445FX,-76FY);
+z21=(453FX,-47FY);
+z22=(154FX,-47FY);
+z23=(189FX,96FY);
+z24=(194FX,96FY);
+z25=(246FX,47FY);
+z26=(318FX,28FY);
+z27=(444FX,77FY);
+z28=(519FX,217FY);
+z29=(527FX,285FY);
+z30=(454FX,314FY);
+z31=(445FX,244FY);
+z32=(283FX,82FY);
+z33=(234FX,95FY);
+z34=(205FX,123FY);
+z35=(203FX,128FY);
+z36=(203FX,137FY);
+z37=(204FX,148FY);
+z38=(207FX,160FY);
+z39=(246FX,315FY);
+z40=(285FX,383FY);
+z41=(358FX,408FY);
+z42=(454FX,314FY);
+FuF (z1
+{-1,36} .. {-19,24}z2
+{-31,40} .. {-59,0}z3
+{-53,-1} .. {-37,-31}z4
+{-37,-31} .. {-13,-52}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+{-6,-22} .. {-9,-6}z11
+{-9,-6} .. {-25,-4}z12
+-- z13
+-- z14
+-- z15
+{-24,1} .. {-11,5}z16
+{-6,5} .. {0,8}z17
+{2,10} .. {2,7}z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+{8,-19} .. {27,-13}z25
+{25,-13} .. {23,0}z26
+{49,1} .. {35,32}z27
+{35,33} .. {15,61}z28
+{6,25} .. {0,21}z29
+);
+FuF (z30
+{0,-25} .. {-6,-21}z31
+{-30,-109} .. {-78,1}z32
+{-18,0} .. {-15,8}z33
+{-14,8} .. {-6,11}z34
+{-1,3} .. {-1,0}z35
+-- z36
+{1,2} .. {0,6}z37
+{1,6} .. {1,2}z38
+-- z39
+{8,30} .. {18,15}z40
+{20,16} .. {29,0}z41
+{64,0} .. {0,-62}z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(114,596FX#,433FY#,188FY#);
+"r";
+z1=(626FX,140FY);
+z2=(611FX,144FY);
+z3=(566FX,75FY);
+z4=(526FX,50FY);
+z5=(503FX,73FY);
+z6=(510FX,111FY);
+z7=(572FX,309FY);
+z8=(580FX,360FY);
+z9=(512FX,434FY);
+z10=(278FX,192FY);
+z11=(308FX,309FY);
+z12=(317FX,371FY);
+z13=(253FX,434FY);
+z14=(93FX,291FY);
+z15=(110FX,283FY);
+z16=(212FX,383FY);
+z17=(239FX,351FY);
+z18=(232FX,306FY);
+z19=(125FX,-126FY);
+z20=(101FX,-164FY);
+z21=(54FX,-175FY);
+z22=(51FX,-189FY);
+z23=(251FX,-189FY);
+z24=(255FX,-175FY);
+z25=(210FX,-164FY);
+z26=(202FX,-145FY);
+z27=(205FX,-126FY);
+z28=(255FX,72FY);
+z29=(350FX,269FY);
+z30=(466FX,383FY);
+z31=(496FX,351FY);
+z32=(487FX,300FY);
+z33=(433FX,122FY);
+z34=(421FX,52FY);
+z35=(486FX,-9FY);
+z36=(626FX,140FY);
+FuF (z1
+-- z2
+{-13,-28} .. {-18,-18}z3
+{-15,-17} .. {-11,0}z4
+{-15,0} .. {0,15}z5
+{0,8} .. {5,17}z6
+-- z7
+{5,16} .. {0,18}z8
+{-1,49} .. {-44,0}z9
+{-77,0} .. {-79,-161}z10
+-- z11
+{6,25} .. {-1,16}z12
+{0,42} .. {-42,0}z13
+{-55,0} .. {-52,-95}z14
+-- z15
+{42,66} .. {26,0}z16
+{18,0} .. {0,-21}z17
+{0,-11} .. {-5,-19}z18
+-- z19
+{-4,-18} .. {-12,-7}z20
+{-12,-7} .. {-20,0}z21
+-- z22
+-- z23
+-- z24
+{-22,1} .. {-8,6}z25
+{-5,5} .. {0,8}z26
+{0,5} .. {2,7}z27
+-- z28
+{14,58} .. {49,74}z29
+{51,76} .. {27,0}z30
+{20,0} .. {0,-21}z31
+{1,-12} .. {-6,-22}z32
+-- z33
+{-8,-28} .. {0,-19}z34
+{1,-41} .. {43,0}z35
+{50,0} .. {43,99}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(115,598FX#,428FY#,9FY#);
+"s";
+z1=(623FX,134FY);
+z2=(607FX,141FY);
+z3=(504FX,41FY);
+z4=(475FX,69FY);
+z5=(484FX,119FY);
+z6=(560FX,425FY);
+z7=(480FX,425FY);
+z8=(462FX,353FY);
+z9=(365FX,153FY);
+z10=(250FX,41FY);
+z11=(221FX,71FY);
+z12=(231FX,124FY);
+z13=(284FX,306FY);
+z14=(296FX,372FY);
+z15=(231FX,428FY);
+z16=(146FX,380FY);
+z17=(90FX,284FY);
+z18=(105FX,280FY);
+z19=(191FX,374FY);
+z20=(216FX,350FY);
+z21=(209FX,314FY);
+z22=(152FX,127FY);
+z23=(141FX,58FY);
+z24=(205FX,-9FY);
+z25=(318FX,47FY);
+z26=(440FX,233FY);
+z27=(408FX,117FY);
+z28=(397FX,50FY);
+z29=(463FX,-9FY);
+z30=(623FX,134FY);
+FuF (z1
+-- z2
+{-40,-67} .. {-29,1}z3
+{-19,1} .. {0,17}z4
+{0,9} .. {6,25}z5
+-- z6
+-- z7
+-- z8
+{-14,-59} .. {-51,-75}z9
+{-51,-74} .. {-26,0}z10
+{-19,0} .. {-1,20}z11
+{0,13} .. {7,22}z12
+-- z13
+{9,28} .. {-1,16}z14
+{0,37} .. {-43,0}z15
+{-28,0} .. {-28,-32}z16
+{-24,-28} .. {-13,-36}z17
+-- z18
+{31,63} .. {26,0}z19
+{17,0} .. {0,-16}z20
+{0,-9} .. {-5,-15}z21
+-- z22
+{-8,-25} .. {1,-21}z23
+{0,-45} .. {42,0}z24
+{39,0} .. {36,37}z25
+{35,37} .. {46,87}z26
+-- z27
+{-8,-27} .. {0,-17}z28
+{1,-39} .. {43,0}z29
+{56,0} .. {51,95}z30
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(116,808FX#,433FY#,188FY#);
+"t";
+z1=(834FX,138FY);
+z2=(819FX,141FY);
+z3=(777FX,77FY);
+z4=(735FX,50FY);
+z5=(713FX,70FY);
+z6=(720FX,107FY);
+z7=(769FX,265FY);
+z8=(789FX,369FY);
+z9=(720FX,434FY);
+z10=(501FX,220FY);
+z11=(553FX,425FY);
+z12=(473FX,425FY);
+z13=(456FX,355FY);
+z14=(361FX,155FY);
+z15=(251FX,43FY);
+z16=(221FX,72FY);
+z17=(231FX,126FY);
+z18=(286FX,308FY);
+z19=(297FX,373FY);
+z20=(239FX,433FY);
+z21=(143FX,386FY);
+z22=(76FX,290FY);
+z23=(92FX,282FY);
+z24=(195FX,383FY);
+z25=(217FX,360FY);
+z26=(208FX,316FY);
+z27=(159FX,158FY);
+z28=(141FX,62FY);
+z29=(206FX,-7FY);
+z30=(309FX,43FY);
+z31=(420FX,211FY);
+z32=(320FX,-189FY);
+z33=(401FX,-189FY);
+z34=(464FX,69FY);
+z35=(561FX,271FY);
+z36=(676FX,382FY);
+z37=(706FX,350FY);
+z38=(696FX,297FY);
+z39=(641FX,116FY);
+z40=(630FX,54FY);
+z41=(690FX,-9FY);
+z42=(777FX,40FY);
+z43=(834FX,138FY);
+FuF (z1
+-- z2
+{-11,-24} .. {-17,-18}z3
+{-17,-18} .. {-12,0}z4
+{-15,0} .. {0,14}z5
+{-1,8} .. {5,16}z6
+-- z7
+{14,44} .. {0,25}z8
+{-1,43} .. {-45,0}z9
+{-71,0} .. {-75,-142}z10
+-- z11
+-- z12
+-- z13
+{-15,-59} .. {-48,-74}z14
+{-49,-75} .. {-25,0}z15
+{-20,1} .. {0,18}z16
+{-1,12} .. {7,24}z17
+-- z18
+{8,25} .. {-1,18}z19
+{0,40} .. {-38,0}z20
+{-32,0} .. {-32,-32}z21
+{-26,-26} .. {-19,-38}z22
+-- z23
+{40,67} .. {29,0}z24
+{14,0} .. {0,-15}z25
+{0,-10} .. {-6,-20}z26
+-- z27
+{-12,-39} .. {0,-25}z28
+{1,-47} .. {42,1}z29
+{36,0} .. {32,33}z30
+{32,33} .. {42,79}z31
+-- z32
+-- z33
+-- z34
+{15,60} .. {49,75}z35
+{50,74} .. {26,0}z36
+{20,0} .. {0,-21}z37
+{0,-13} .. {-7,-22}z38
+-- z39
+{-7,-24} .. {0,-18}z40
+{1,-42} .. {39,0}z41
+{28,0} .. {29,33}z42
+{25,29} .. {13,37}z43
+);
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(117,858FX#,433FY#,9FY#);
+"u";
+z1=(610FX,140FY);
+z2=(594FX,144FY);
+z3=(550FX,75FY);
+z4=(510FX,50FY);
+z5=(485FX,70FY);
+z6=(494FX,111FY);
+z7=(552FX,297FY);
+z8=(563FX,363FY);
+z9=(496FX,434FY);
+z10=(262FX,192FY);
+z11=(295FX,325FY);
+z12=(301FX,371FY);
+z13=(237FX,434FY);
+z14=(77FX,291FY);
+z15=(94FX,283FY);
+z16=(196FX,383FY);
+z17=(224FX,355FY);
+z18=(216FX,306FY);
+z19=(140FX,0FY);
+z20=(220FX,0FY);
+z21=(238FX,72FY);
+z22=(336FX,274FY);
+z23=(450FX,383FY);
+z24=(479FX,350FY);
+z25=(469FX,297FY);
+z26=(417FX,122FY);
+z27=(404FX,50FY);
+z28=(469FX,-9FY);
+z29=(554FX,44FY);
+z30=(610FX,140FY);
+z31=(859FX,28FY);
+z32=(744FX,28FY);
+z33=(843FX,425FY);
+z34=(763FX,425FY);
+z35=(658FX,0FY);
+z36=(852FX,0FY);
+FuF (z1
+-- z2
+{-12,-28} .. {-17,-18}z3
+{-16,-17} .. {-11,0}z4
+{-16,0} .. {-1,13}z5
+{0,8} .. {6,20}z6
+-- z7
+{8,24} .. {-1,20}z8
+{-1,47} .. {-44,0}z9
+{-78,0} .. {-78,-161}z10
+-- z11
+{4,17} .. {0,14}z12
+{-1,42} .. {-42,0}z13
+{-55,0} .. {-52,-95}z14
+-- z15
+{43,66} .. {25,0}z16
+{18,0} .. {0,-18}z17
+{0,-12} .. {-5,-21}z18
+-- z19
+-- z20
+-- z21
+{17,63} .. {49,72}z22
+{49,73} .. {27,0}z23
+{19,0} .. {0,-22}z24
+{0,-13} .. {-7,-23}z25
+-- z26
+{-9,-29} .. {0,-19}z27
+{1,-40} .. {42,1}z28
+{28,0} .. {29,35}z29
+{23,28} .. {15,36}z30
+);
+FuF (z31
+-- z32
+-- z33
+-- z34
+-- z35
+-- z36
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(118,585FX#,645FY#,188FY#);
+"v";
+z1=(620FX,642FY);
+z2=(617FX,645FY);
+z3=(472FX,604FY);
+z4=(469FX,589FY);
+z5=(492FX,589FY);
+z6=(521FX,566FY);
+z7=(516FX,541FY);
+z8=(470FX,353FY);
+z9=(373FX,154FY);
+z10=(256FX,41FY);
+z11=(228FX,76FY);
+z12=(237FX,124FY);
+z13=(290FX,306FY);
+z14=(302FX,374FY);
+z15=(237FX,428FY);
+z16=(153FX,380FY);
+z17=(96FX,284FY);
+z18=(111FX,280FY);
+z19=(197FX,374FY);
+z20=(222FX,349FY);
+z21=(214FX,310FY);
+z22=(166FX,157FY);
+z23=(147FX,58FY);
+z24=(211FX,-9FY);
+z25=(317FX,39FY);
+z26=(432FX,207FY);
+z27=(335FX,-189FY);
+z28=(546FX,-189FY);
+z29=(553FX,-160FY);
+z30=(472FX,-160FY);
+z31=(429FX,-138FY);
+z32=(430FX,-126FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{19,1} .. {0,-16}z6
+{0,-7} .. {-3,-9}z7
+-- z8
+{-14,-58} .. {-51,-75}z9
+{-52,-75} .. {-26,0}z10
+{-18,1} .. {-1,23}z11
+{0,13} .. {6,19}z12
+-- z13
+{8,28} .. {0,17}z14
+{-1,36} .. {-43,0}z15
+{-28,0} .. {-28,-32}z16
+{-25,-27} .. {-14,-36}z17
+-- z18
+{31,63} .. {27,0}z19
+{16,0} .. {1,-17}z20
+{0,-10} .. {-5,-16}z21
+-- z22
+{-13,-42} .. {0,-24}z23
+{1,-45} .. {42,0}z24
+{38,0} .. {33,32}z25
+{34,33} .. {43,79}z26
+-- z27
+-- z28
+-- z29
+-- z30
+{-28,0} .. {0,15}z31
+{0,3} .. {1,5}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(119,274FX#,424FY#,0FY#);
+"w";
+z1=(274FX,28FY);
+z2=(160FX,28FY);
+z3=(259FX,425FY);
+z4=(179FX,425FY);
+z5=(74FX,0FY);
+z6=(268FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+);
+lbl (range 1 thru 6);
+endchar;
+
+beginchar(120,764FX#,645FY#,188FY#);
+"x";
+z1=(798FX,138FY);
+z2=(783FX,140FY);
+z3=(698FX,47FY);
+z4=(670FX,78FY);
+z5=(676FX,121FY);
+z6=(753FX,425FY);
+z7=(672FX,425FY);
+z8=(655FX,355FY);
+z9=(561FX,157FY);
+z10=(446FX,44FY);
+z11=(427FX,72FY);
+z12=(432FX,109FY);
+z13=(487FX,291FY);
+z14=(499FX,362FY);
+z15=(429FX,434FY);
+z16=(215FX,213FY);
+z17=(323FX,643FY);
+z18=(317FX,645FY);
+z19=(176FX,603FY);
+z20=(172FX,587FY);
+z21=(199FX,590FY);
+z22=(224FX,565FY);
+z23=(218FX,527FY);
+z24=(54FX,-126FY);
+z25=(30FX,-164FY);
+z26=(-17FX,-175FY);
+z27=(-20FX,-189FY);
+z28=(180FX,-189FY);
+z29=(183FX,-175FY);
+z30=(139FX,-164FY);
+z31=(133FX,-126FY);
+z32=(184FX,78FY);
+z33=(276FX,268FY);
+z34=(389FX,380FY);
+z35=(418FX,345FY);
+z36=(408FX,291FY);
+z37=(353FX,111FY);
+z38=(344FX,57FY);
+z39=(409FX,-7FY);
+z40=(528FX,63FY);
+z41=(628FX,228FY);
+z42=(630FX,228FY);
+z43=(604FX,118FY);
+z44=(597FX,59FY);
+z45=(655FX,-7FY);
+z46=(798FX,138FY);
+FuF (z1
+-- z2
+{-30,-62} .. {-27,0}z3
+{-18,0} .. {0,21}z4
+{0,11} .. {4,18}z5
+-- z6
+-- z7
+-- z8
+{-15,-60} .. {-48,-72}z9
+{-49,-76} .. {-27,0}z10
+{-13,0} .. {0,18}z11
+{-1,11} .. {4,14}z12
+-- z13
+{9,27} .. {-1,20}z14
+{0,48} .. {-46,0}z15
+{-66,0} .. {-77,-147}z16
+-- z17
+-- z18
+-- z19
+-- z20
+{12,2} .. {6,0}z21
+{17,0} .. {0,-17}z22
+{1,-7} .. {-4,-18}z23
+-- z24
+{-5,-19} .. {-11,-7}z25
+{-12,-7} .. {-20,0}z26
+-- z27
+-- z28
+-- z29
+{-22,1} .. {-7,6}z30
+{-9,7} .. {5,18}z31
+-- z32
+{13,55} .. {48,72}z33
+{49,75} .. {26,0}z34
+{19,0} .. {0,-23}z35
+{1,-14} .. {-7,-22}z36
+-- z37
+{-7,-20} .. {1,-16}z38
+{0,-43} .. {43,0}z39
+{40,0} .. {40,47}z40
+{30,36} .. {37,74}z41
+-- z42
+-- z43
+{-5,-22} .. {1,-17}z44
+{1,-44} .. {38,0}z45
+{56,0} .. {40,97}z46
+);
+lbl (range 1 thru 46);
+endchar;
+
+beginchar(121,283FX#,424FY#,205FY#);
+"y";
+z1=(299FX,425FY);
+z2=(219FX,425FY);
+z3=(100FX,-58FY);
+z4=(23FX,-174FY);
+z5=(-4FX,-145FY);
+z6=(-44FX,-117FY);
+z7=(-94FX,-165FY);
+z8=(-70FX,-195FY);
+z9=(-18FX,-205FY);
+z10=(119FX,-149FY);
+z11=(194FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{-19,-77} .. {-32,0}z4
+{-5,0} .. {-13,19}z5
+{-14,19} .. {-13,0}z6
+{-34,0} .. {1,-32}z7
+{0,-12} .. {16,-7}z8
+{14,-7} .. {20,0}z9
+{58,0} .. {34,38}z10
+{35,38} .. {15,61}z11
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 11);
+endchar;
+
+beginchar(122,538FX#,433FY#,204FY#);
+"z";
+z1=(517FX,-176FY);
+z2=(430FX,-176FY);
+z3=(394FX,-169FY);
+z4=(391FX,-159FY);
+z5=(395FX,-132FY);
+z6=(500FX,282FY);
+z7=(504FX,320FY);
+z8=(476FX,390FY);
+z9=(370FX,434FY);
+z10=(204FX,367FY);
+z11=(100FX,198FY);
+z12=(90FX,115FY);
+z13=(202FX,-9FY);
+z14=(296FX,15FY);
+z15=(359FX,58FY);
+z16=(364FX,58FY);
+z17=(298FX,-204FY);
+z18=(510FX,-204FY);
+z19=(433FX,352FY);
+z20=(432FX,337FY);
+z21=(429FX,319FY);
+z22=(381FX,124FY);
+z23=(375FX,105FY);
+z24=(363FX,84FY);
+z25=(324FX,59FY);
+z26=(265FX,48FY);
+z27=(186FX,102FY);
+z28=(181FX,128FY);
+z29=(178FX,154FY);
+z30=(188FX,225FY);
+z31=(246FX,347FY);
+z32=(361FX,408FY);
+z33=(433FX,352FY);
+FuF (z1
+-- z2
+{-22,0} .. {-2,5}z3
+{-2,4} .. {0,2}z4
+{3,17} .. {0,1}z5
+-- z6
+{3,12} .. {0,13}z7
+{-1,26} .. {-17,21}z8
+{-26,29} .. {-45,0}z9
+{-59,-1} .. {-52,-44}z10
+{-54,-45} .. {-16,-67}z11
+{-8,-33} .. {1,-22}z12
+{3,-84} .. {72,1}z13
+{30,0} .. {32,16}z14
+{35,17} .. {7,11}z15
+-- z16
+-- z17
+-- z18
+);
+FuF (z19
+{-1,-3} .. {1,-7}z20
+{0,-6} .. {-2,-6}z21
+-- z22
+{-3,-9} .. {-1,-4}z23
+-- z24
+{-4,-9} .. {-22,-8}z25
+{-21,-7} .. {-18,0}z26
+{-42,0} .. {-11,36}z27
+{-3,8} .. {-1,9}z28
+{-2,9} .. {0,8}z29
+{1,26} .. {6,21}z30
+{13,49} .. {26,32}z31
+{32,41} .. {44,0}z32
+{47,-1} .. {1,-36}z33
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(123,449FX#,257FY#,0FY#);
+"hyphen";
+z1=(49FX,197FY);
+z2=(499FX,197FY);
+z3=(514FX,257FY);
+z4=(64FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,128FX#,682FY#,0FY#);
+"shesht";
+z1=(287FX,659FY);
+z2=(259FX,683FY);
+z3=(243FX,680FY);
+z4=(214FX,659FY);
+z5=(66FX,479FY);
+z6=(85FX,469FY);
+z7=(263FX,616FY);
+z8=(279FX,636FY);
+z9=(287FX,659FY);
+FuF (z1
+{-1,16} .. {-18,0}z2
+-- z3
+{-11,-5} .. {-8,-9}z4
+-- z5
+-- z6
+-- z7
+{7,6} .. {4,8}z8
+{5,7} .. {0,9}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(125,999FX#,257FY#,0FY#);
+"emdash";
+z1=(49FX,197FY);
+z2=(1049FX,197FY);
+z3=(1064FX,257FY);
+z4=(64FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,313FX#,637FY#,8FY#);
+"exclam";
+z1=(374FX,584FY);
+z2=(374FX,595FY);
+z3=(372FX,613FY);
+z4=(337FX,637FY);
+z5=(292FX,612FY);
+z6=(269FX,559FY);
+z7=(263FX,527FY);
+z8=(255FX,465FY);
+z9=(241FX,323FY);
+z10=(213FX,166FY);
+z11=(225FX,166FY);
+z12=(362FX,537FY);
+z13=(371FX,562FY);
+z14=(374FX,584FY);
+z15=(242FX,53FY);
+z16=(234FX,76FY);
+z17=(201FX,91FY);
+z18=(161FX,75FY);
+z19=(138FX,39FY);
+z20=(137FX,25FY);
+z21=(143FX,4FY);
+z22=(177FX,-8FY);
+z23=(216FX,4FY);
+z24=(240FX,39FY);
+z25=(242FX,53FY);
+FuF (z1
+{0,7} .. {0,0}z2
+{0,10} .. {0,2}z3
+{-2,16} .. {-21,0}z4
+{-19,0} .. {-11,-17}z5
+{-12,-17} .. {-3,-19}z6
+-- z7
+-- z8
+-- z9
+{-4,-46} .. {-14,-58}z10
+-- z11
+-- z12
+-- z13
+{2,13} .. {0,2}z14
+);
+FuF (z15
+{-2,10} .. {-4,5}z16
+{-9,10} .. {-13,0}z17
+{-15,-1} .. {-11,-10}z18
+{-12,-11} .. {-3,-13}z19
+{-1,-5} .. {0,-5}z20
+{1,-10} .. {3,-4}z21
+{10,-9} .. {13,1}z22
+{14,0} .. {12,8}z23
+{13,9} .. {3,14}z24
+{1,4} .. {0,5}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(3,627FX#,637FY#,14FY#);
+"Dz";
+z1=(689FX,463FY);
+z2=(635FX,590FY);
+z3=(489FX,637FY);
+z4=(268FX,567FY);
+z5=(155FX,373FY);
+z6=(254FX,373FY);
+z7=(318FX,537FY);
+z8=(479FX,606FY);
+z9=(567FX,568FY);
+z10=(598FX,475FY);
+z11=(582FX,388FY);
+z12=(507FX,255FY);
+z13=(395FX,147FY);
+z14=(329FX,194FY);
+z15=(248FX,209FY);
+z16=(137FX,168FY);
+z17=(93FX,123FY);
+z18=(80FX,76FY);
+z19=(110FX,10FY);
+z20=(180FX,-14FY);
+z21=(344FX,47FY);
+z22=(398FX,-3FY);
+z23=(455FX,-13FY);
+z24=(599FX,60FY);
+z25=(575FX,78FY);
+z26=(521FX,55FY);
+z27=(471FX,72FY);
+z28=(436FX,107FY);
+z29=(533FX,181FY);
+z30=(626FX,279FY);
+z31=(678FX,379FY);
+z32=(689FX,463FY);
+z33=(308FX,76FY);
+z34=(237FX,36FY);
+z35=(189FX,23FY);
+z36=(144FX,32FY);
+z37=(123FX,63FY);
+z38=(125FX,82FY);
+z39=(155FX,107FY);
+z40=(185FX,118FY);
+z41=(219FX,121FY);
+z42=(247FX,115FY);
+z43=(267FX,109FY);
+z44=(308FX,76FY);
+FuF (z1
+{-1,54} .. {-35,30}z2
+{-35,32} .. {-62,-1}z3
+{-79,0} .. {-68,-47}z4
+{-77,-53} .. {2,-77}z5
+-- z6
+{-1,64} .. {43,46}z7
+{44,46} .. {63,0}z8
+{39,-1} .. {19,-25}z9
+{20,-25} .. {1,-37}z10
+{0,-17} .. {-11,-41}z11
+{-10,-41} .. {-40,-48}z12
+{-39,-47} .. {-36,-25}z13
+{-22,22} .. {-22,9}z14
+{-24,10} .. {-30,0}z15
+{-38,-1} .. {-35,-26}z16
+{-20,-14} .. {-9,-16}z17
+{-9,-15} .. {1,-16}z18
+{1,-28} .. {19,-16}z19
+{19,-17} .. {28,1}z20
+{43,1} .. {66,40}z21
+{24,-27} .. {12,-7}z22
+{12,-7} .. {26,0}z23
+{53,0} .. {43,49}z24
+-- z25
+{-15,-15} .. {-21,0}z26
+{-20,0} .. {-13,12}z27
+-- z28
+{27,17} .. {38,32}z29
+{35,31} .. {26,35}z30
+{28,36} .. {7,31}z31
+{8,33} .. {0,22}z32
+);
+FuF (z33
+{-22,-16} .. {-25,-10}z34
+{-23,-9} .. {-9,1}z35
+{-18,0} .. {-12,5}z36
+{-14,7} .. {0,14}z37
+-- z38
+{4,9} .. {17,7}z39
+{12,6} .. {8,2}z40
+{10,2} .. {12,0}z41
+{9,0} .. {10,-4}z42
+{10,-3} .. {3,-1}z43
+{18,-9} .. {9,-13}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(4,777FX#,637FY#,66FY#);
+"Gh";
+z1=(735FX,-23FY);
+z2=(728FX,-2FY);
+z3=(710FX,20FY);
+z4=(685FX,29FY);
+z5=(644FX,35FY);
+z6=(538FX,35FY);
+z7=(622FX,366FY);
+z8=(635FX,470FY);
+z9=(610FX,567FY);
+z10=(447FX,637FY);
+z11=(249FX,567FY);
+z12=(139FX,366FY);
+z13=(126FX,315FY);
+z14=(222FX,315FY);
+z15=(244FX,403FY);
+z16=(247FX,412FY);
+z17=(321FX,555FY);
+z18=(438FX,606FY);
+z19=(537FX,550FY);
+z20=(545FX,497FY);
+z21=(527FX,373FY);
+z22=(434FX,0FY);
+z23=(567FX,-1FY);
+z24=(603FX,-14FY);
+z25=(610FX,-33FY);
+z26=(608FX,-44FY);
+z27=(602FX,-67FY);
+z28=(725FX,-67FY);
+z29=(733FX,-35FY);
+z30=(735FX,-23FY);
+FuF (z1
+{-1,9} .. {-3,5}z2
+{-6,11} .. {-6,4}z3
+{-8,6} .. {-9,0}z4
+-- z5
+-- z6
+-- z7
+{10,38} .. {-1,32}z8
+{-1,40} .. {-15,24}z9
+{-31,47} .. {-78,0}z10
+{-80,0} .. {-51,-47}z11
+{-50,-45} .. {-23,-89}z12
+-- z13
+-- z14
+-- z15
+-- z16
+{16,61} .. {33,34}z17
+{34,34} .. {44,0}z18
+{53,-1} .. {13,-36}z19
+{5,-15} .. {0,-20}z20
+{0,-34} .. {-12,-49}z21
+-- z22
+-- z23
+{19,0} .. {5,-9}z24
+{4,-7} .. {0,-6}z25
+{-1,-5} .. {0,-3}z26
+-- z27
+-- z28
+-- z29
+{1,5} .. {0,3}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(5,647FX#,639FY#,0FY#);
+"Chmute";
+z1=(679FX,573FY);
+z2=(653FX,622FY);
+z3=(571FX,640FY);
+z4=(347FX,514FY);
+z5=(304FX,530FY);
+z6=(251FX,542FY);
+z7=(237FX,508FY);
+z8=(309FX,481FY);
+z9=(168FX,313FY);
+z10=(84FX,111FY);
+z11=(56FX,0FY);
+z12=(565FX,0FY);
+z13=(601FX,146FY);
+z14=(610FX,228FY);
+z15=(514FX,423FY);
+z16=(379FX,497FY);
+z17=(465FX,565FY);
+z18=(531FX,593FY);
+z19=(558FX,573FY);
+z20=(555FX,556FY);
+z21=(549FX,530FY);
+z22=(672FX,530FY);
+z23=(678FX,556FY);
+z24=(679FX,573FY);
+z25=(518FX,246FY);
+z26=(504FX,145FY);
+z27=(478FX,40FY);
+z28=(163FX,40FY);
+z29=(188FX,144FY);
+z30=(350FX,466FY);
+z31=(468FX,380FY);
+z32=(518FX,246FY);
+FuF (z1
+{0,21} .. {-17,12}z2
+{-19,13} .. {-36,0}z3
+{-47,-1} .. {-103,-83}z4
+{-9,5} .. {-20,5}z5
+{-21,6} .. {-15,3}z6
+-- z7
+{44,-14} .. {4,-4}z8
+{-59,-55} .. {-35,-57}z9
+{-36,-58} .. {-20,-76}z10
+-- z11
+-- z12
+-- z13
+{7,26} .. {-1,29}z14
+{-2,78} .. {-62,52}z15
+{-36,30} .. {-54,19}z16
+{44,36} .. {13,9}z17
+{28,19} .. {16,0}z18
+{17,0} .. {1,-14}z19
+{0,-4} .. {-2,-8}z20
+-- z21
+-- z22
+-- z23
+{1,5} .. {0,6}z24
+);
+FuF (z25
+{0,-31} .. {-9,-37}z26
+-- z27
+-- z28
+-- z29
+{35,140} .. {73,75}z30
+{53,-28} .. {26,-30}z31
+{33,-38} .. {1,-52}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(6,572FX#,624FY#,65FY#);
+"Esimple";
+z1=(626FX,360FY);
+z2=(598FX,407FY);
+z3=(564FX,420FY);
+z4=(508FX,425FY);
+z5=(306FX,425FY);
+z6=(330FX,523FY);
+z7=(362FX,589FY);
+z8=(437FX,607FY);
+z9=(442FX,624FY);
+z10=(175FX,624FY);
+z11=(170FX,607FY);
+z12=(236FX,590FY);
+z13=(241FX,569FY);
+z14=(239FX,547FY);
+z15=(234FX,523FY);
+z16=(129FX,104FY);
+z17=(95FX,33FY);
+z18=(23FX,18FY);
+z19=(19FX,0FY);
+z20=(313FX,0FY);
+z21=(349FX,-12FY);
+z22=(356FX,-33FY);
+z23=(355FX,-43FY);
+z24=(349FX,-66FY);
+z25=(472FX,-66FY);
+z26=(479FX,-34FY);
+z27=(481FX,-20FY);
+z28=(475FX,-1FY);
+z29=(453FX,23FY);
+z30=(419FX,37FY);
+z31=(364FX,41FY);
+z32=(210FX,41FY);
+z33=(295FX,383FY);
+z34=(457FX,383FY);
+z35=(493FX,371FY);
+z36=(502FX,351FY);
+z37=(499FX,339FY);
+z38=(493FX,315FY);
+z39=(616FX,315FY);
+z40=(625FX,349FY);
+z41=(626FX,360FY);
+FuF (z1
+{-3,21} .. {-16,11}z2
+{-9,7} .. {-14,2}z3
+{-8,3} .. {-29,0}z4
+-- z5
+-- z6
+{8,32} .. {13,12}z7
+{13,12} .. {36,0}z8
+-- z9
+-- z10
+-- z11
+{37,-1} .. {8,-10}z12
+{3,-4} .. {0,-10}z13
+{-1,-9} .. {0,-5}z14
+{-2,-11} .. {-1,-5}z15
+-- z16
+{-9,-37} .. {-14,-11}z17
+{-14,-10} .. {-34,0}z18
+-- z19
+-- z20
+{19,0} .. {5,-8}z21
+{4,-8} .. {0,-5}z22
+{-1,-4} .. {0,-3}z23
+-- z24
+-- z25
+-- z26
+{1,5} .. {0,5}z27
+{0,7} .. {-4,5}z28
+{-5,11} .. {-9,5}z29
+{-8,8} .. {-15,2}z30
+{-10,3} .. {-26,0}z31
+-- z32
+-- z33
+-- z34
+{20,0} .. {4,-8}z35
+{6,-9} .. {1,-5}z36
+{-1,-5} .. {-1,-3}z37
+-- z38
+-- z39
+-- z40
+{1,2} .. {0,5}z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(7,718FX#,637FY#,65FY#);
+"Article";
+z1=(692FX,471FY);
+z2=(506FX,637FY);
+z3=(347FX,595FY);
+z4=(236FX,476FY);
+z5=(196FX,366FY);
+z6=(129FX,102FY);
+z7=(94FX,32FY);
+z8=(23FX,18FY);
+z9=(19FX,0FY);
+z10=(437FX,0FY);
+z11=(473FX,-12FY);
+z12=(480FX,-33FY);
+z13=(480FX,-43FY);
+z14=(474FX,-66FY);
+z15=(596FX,-66FY);
+z16=(604FX,-34FY);
+z17=(606FX,-20FY);
+z18=(599FX,-1FY);
+z19=(577FX,23FY);
+z20=(544FX,37FY);
+z21=(489FX,41FY);
+z22=(269FX,41FY);
+z23=(222FX,51FY);
+z24=(219FX,62FY);
+z25=(225FX,102FY);
+z26=(293FX,373FY);
+z27=(374FX,550FY);
+z28=(499FX,606FY);
+z29=(601FX,537FY);
+z30=(599FX,468FY);
+z31=(591FX,402FY);
+z32=(569FX,315FY);
+z33=(665FX,315FY);
+z34=(679FX,366FY);
+z35=(692FX,471FY);
+FuF (z1
+{-3,111} .. {-121,-1}z2
+{-58,0} .. {-48,-28}z3
+{-50,-28} .. {-24,-51}z4
+{-18,-36} .. {-9,-37}z5
+-- z6
+{-10,-37} .. {-14,-10}z7
+{-13,-9} .. {-34,0}z8
+-- z9
+-- z10
+{21,0} .. {3,-8}z11
+{5,-8} .. {0,-5}z12
+{0,-4} .. {0,-3}z13
+-- z14
+-- z15
+-- z16
+{1,6} .. {0,3}z17
+{0,7} .. {-5,6}z18
+{-5,11} .. {-10,5}z19
+{-8,8} .. {-14,1}z20
+{-8,3} .. {-29,0}z21
+-- z22
+{-26,0} .. {-5,6}z23
+{-2,4} .. {0,3}z24
+{1,14} .. {3,13}z25
+-- z26
+{20,79} .. {34,39}z27
+{33,37} .. {50,0}z28
+{67,0} .. {1,-46}z29
+{0,-25} .. {-2,-21}z30
+{-2,-31} .. {-3,-13}z31
+-- z32
+-- z33
+-- z34
+{9,35} .. {0,35}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(8,800FX#,638FY#,0FY#);
+"Th";
+z1=(899FX,239FY);
+z2=(901FX,255FY);
+z3=(857FX,303FY);
+z4=(783FX,315FY);
+z5=(706FX,315FY);
+z6=(722FX,381FY);
+z7=(732FX,457FY);
+z8=(679FX,587FY);
+z9=(530FX,638FY);
+z10=(316FX,562FY);
+z11=(196FX,366FY);
+z12=(129FX,102FY);
+z13=(93FX,30FY);
+z14=(24FX,18FY);
+z15=(19FX,0FY);
+z16=(286FX,0FY);
+z17=(290FX,18FY);
+z18=(218FX,59FY);
+z19=(226FX,102FY);
+z20=(293FX,373FY);
+z21=(371FX,534FY);
+z22=(523FX,607FY);
+z23=(641FX,484FY);
+z24=(630FX,394FY);
+z25=(609FX,315FY);
+z26=(524FX,315FY);
+z27=(387FX,261FY);
+z28=(323FX,118FY);
+z29=(363FX,31FY);
+z30=(462FX,0FY);
+z31=(602FX,57FY);
+z32=(669FX,168FY);
+z33=(695FX,274FY);
+z34=(732FX,274FY);
+z35=(775FX,240FY);
+z36=(774FX,230FY);
+z37=(768FX,208FY);
+z38=(890FX,208FY);
+z39=(599FX,274FY);
+z40=(572FX,165FY);
+z41=(470FX,33FY);
+z42=(421FX,96FY);
+z43=(450FX,216FY);
+z44=(525FX,274FY);
+FuF (z1
+{1,6} .. {0,5}z2
+{-1,21} .. {-29,11}z3
+{-21,8} .. {-28,0}z4
+-- z5
+-- z6
+{7,27} .. {0,24}z7
+{-1,54} .. {-35,32}z8
+{-36,34} .. {-64,0}z9
+{-82,0} .. {-61,-51}z10
+{-59,-49} .. {-21,-81}z11
+-- z12
+{-9,-38} .. {-15,-10}z13
+{-11,-8} .. {-35,0}z14
+-- z15
+-- z16
+-- z17
+{-47,0} .. {-1,27}z18
+{0,8} .. {6,21}z19
+-- z20
+{17,66} .. {35,41}z21
+{42,48} .. {59,0}z22
+{77,0} .. {2,-82}z23
+{0,-28} .. {-8,-32}z24
+-- z25
+-- z26
+{-51,0} .. {-41,-36}z27
+{-43,-39} .. {1,-56}z28
+{1,-37} .. {26,-22}z29
+{26,-21} .. {40,0}z30
+{53,1} .. {40,37}z31
+{34,32} .. {11,42}z32
+-- z33
+-- z34
+{28,0} .. {0,-23}z35
+{0,-3} .. {-1,-4}z36
+-- z37
+-- z38
+);
+FuF (z39
+-- z40
+{-22,-89} .. {-46,0}z41
+{-33,1} .. {1,41}z42
+{1,44} .. {19,37}z43
+{21,39} .. {28,0}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(9,767FX#,624FY#,13FY#);
+"Zh";
+z1=(821FX,365FY);
+z2=(816FX,384FY);
+z3=(793FX,408FY);
+z4=(765FX,420FY);
+z5=(731FX,425FY);
+z6=(623FX,425FY);
+z7=(651FX,535FY);
+z8=(682FX,591FY);
+z9=(748FX,607FY);
+z10=(753FX,624FY);
+z11=(488FX,624FY);
+z12=(484FX,607FY);
+z13=(549FX,591FY);
+z14=(559FX,565FY);
+z15=(554FX,532FY);
+z16=(527FX,425FY);
+z17=(402FX,425FY);
+z18=(201FX,371FY);
+z19=(82FX,207FY);
+z20=(75FX,149FY);
+z21=(106FX,53FY);
+z22=(274FX,-13FY);
+z23=(471FX,57FY);
+z24=(578FX,244FY);
+z25=(612FX,383FY);
+z26=(656FX,383FY);
+z27=(681FX,381FY);
+z28=(691FX,370FY);
+z29=(696FX,354FY);
+z30=(695FX,341FY);
+z31=(688FX,315FY);
+z32=(811FX,315FY);
+z33=(820FX,351FY);
+z34=(821FX,365FY);
+z35=(516FX,383FY);
+z36=(471FX,198FY);
+z37=(397FX,70FY);
+z38=(282FX,19FY);
+z39=(184FX,71FY);
+z40=(171FX,128FY);
+z41=(182FX,205FY);
+z42=(264FX,344FY);
+z43=(421FX,383FY);
+FuF (z1
+{0,7} .. {-3,5}z2
+{-8,11} .. {-7,5}z3
+{-7,6} .. {-12,2}z4
+{-11,1} .. {-12,3}z5
+-- z6
+-- z7
+{7,27} .. {14,11}z8
+{14,10} .. {30,0}z9
+-- z10
+-- z11
+-- z12
+{34,-1} .. {9,-10}z13
+{7,-6} .. {0,-11}z14
+{0,-7} .. {-4,-15}z15
+-- z16
+-- z17
+{-77,0} .. {-57,-36}z18
+{-62,-39} .. {-17,-71}z19
+{-5,-22} .. {1,-17}z20
+{1,-36} .. {20,-28}z21
+{30,-45} .. {82,1}z22
+{80,0} .. {52,47}z23
+{52,47} .. {19,78}z24
+-- z25
+-- z26
+-- z27
+{5,-2} .. {2,-6}z28
+{3,-6} .. {0,-5}z29
+{-1,-4} .. {0,-5}z30
+-- z31
+-- z32
+-- z33
+{1,5} .. {-1,5}z34
+);
+FuF (z35
+-- z36
+{-13,-51} .. {-37,-34}z37
+{-36,-34} .. {-41,1}z38
+{-50,0} .. {-15,34}z39
+{-9,17} .. {0,21}z40
+{0,25} .. {7,26}z41
+{17,67} .. {38,26}z42
+{35,26} .. {69,0}z43
+);
+lbl (range 1 thru 43);
+endchar;
+
+beginchar(10,620FX#,638FY#,14FY#);
+"Sh";
+z1=(641FX,471FY);
+z2=(639FX,497FY);
+z3=(617FX,493FY);
+z4=(578FX,510FY);
+z5=(522FX,549FY);
+z6=(463FX,589FY);
+z7=(417FX,617FY);
+z8=(314FX,638FY);
+z9=(225FX,624FY);
+z10=(230FX,579FY);
+z11=(269FX,589FY);
+z12=(359FX,541FY);
+z13=(379FX,515FY);
+z14=(221FX,416FY);
+z15=(118FX,264FY);
+z16=(102FX,159FY);
+z17=(305FX,-14FY);
+z18=(534FX,68FY);
+z19=(635FX,250FY);
+z20=(534FX,250FY);
+z21=(470FX,87FY);
+z22=(310FX,18FY);
+z23=(222FX,54FY);
+z24=(192FX,146FY);
+z25=(209FX,239FY);
+z26=(284FX,382FY);
+z27=(422FX,484FY);
+z28=(471FX,445FY);
+z29=(540FX,423FY);
+z30=(585FX,431FY);
+z31=(641FX,471FY);
+FuF (z1
+-- z2
+{-6,-3} .. {-8,0}z3
+{-9,0} .. {-16,11}z4
+{-20,14} .. {-18,12}z5
+{-28,19} .. {-12,7}z6
+{-21,14} .. {-9,6}z7
+{-26,15} .. {-42,-1}z8
+{-27,0} .. {-33,-9}z9
+-- z10
+{11,7} .. {15,-1}z11
+{35,0} .. {25,-31}z12
+{13,-17} .. {0,0}z13
+{-53,-19} .. {-52,-47}z14
+{-56,-51} .. {-12,-50}z15
+{-11,-44} .. {0,-26}z16
+{4,-115} .. {132,0}z17
+{90,0} .. {62,55}z18
+{63,55} .. {5,66}z19
+-- z20
+{1,-63} .. {-43,-45}z21
+{-44,-46} .. {-63,0}z22
+{-37,0} .. {-21,24}z23
+{-20,23} .. {0,38}z24
+{0,16} .. {11,46}z25
+{12,48} .. {38,47}z26
+{41,51} .. {51,17}z27
+-- z28
+{20,-15} .. {26,1}z29
+{16,0} .. {14,5}z30
+{17,7} .. {20,20}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(11,648FX#,637FY#,7FY#);
+"Ch";
+z1=(693FX,463FY);
+z2=(632FX,595FY);
+z3=(490FX,637FY);
+z4=(273FX,566FY);
+z5=(158FX,373FY);
+z6=(259FX,373FY);
+z7=(322FX,534FY);
+z8=(483FX,606FY);
+z9=(571FX,568FY);
+z10=(603FX,475FY);
+z11=(587FX,385FY);
+z12=(489FX,235FY);
+z13=(336FX,138FY);
+z14=(281FX,178FY);
+z15=(219FX,199FY);
+z16=(118FX,151FY);
+z17=(119FX,124FY);
+z18=(142FX,128FY);
+z19=(241FX,80FY);
+z20=(342FX,13FY);
+z21=(444FX,-7FY);
+z22=(532FX,7FY);
+z23=(529FX,52FY);
+z24=(489FX,41FY);
+z25=(379FX,106FY);
+z26=(568FX,221FY);
+z27=(677FX,366FY);
+z28=(693FX,463FY);
+FuF (z1
+{-2,58} .. {-39,30}z2
+{-35,29} .. {-59,-1}z3
+{-80,0} .. {-65,-47}z4
+{-72,-51} .. {-5,-78}z5
+-- z6
+{-1,61} .. {43,47}z7
+{43,48} .. {64,0}z8
+{38,-1} .. {21,-25}z9
+{22,-26} .. {0,-36}z10
+{0,-15} .. {-11,-45}z11
+{-12,-50} .. {-53,-50}z12
+{-50,-47} .. {-52,-17}z13
+{-33,24} .. {-4,2}z14
+{-22,14} .. {-19,0}z15
+{-35,0} .. {-32,-32}z16
+-- z17
+{8,3} .. {7,-1}z18
+{18,0} .. {48,-32}z19
+{67,-44} .. {1,-1}z20
+{26,-14} .. {41,1}z21
+{26,0} .. {32,9}z22
+-- z23
+{-10,-7} .. {-17,0}z24
+{-35,0} .. {-38,43}z25
+{64,25} .. {62,52}z26
+{63,53} .. {10,44}z27
+{11,47} .. {0,18}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(12,771FX#,637FY#,0FY#);
+"Rhard";
+z1=(844FX,166FY);
+z2=(846FX,181FY);
+z3=(729FX,241FY);
+z4=(648FX,241FY);
+z5=(680FX,373FY);
+z6=(694FX,478FY);
+z7=(511FX,637FY);
+z8=(280FX,539FY);
+z9=(197FX,373FY);
+z10=(130FX,104FY);
+z11=(24FX,18FY);
+z12=(19FX,0FY);
+z13=(286FX,0FY);
+z14=(290FX,18FY);
+z15=(220FX,60FY);
+z16=(226FX,104FY);
+z17=(295FX,377FY);
+z18=(504FX,606FY);
+z19=(604FX,505FY);
+z20=(586FX,377FY);
+z21=(516FX,104FY);
+z22=(478FX,36FY);
+z23=(406FX,18FY);
+z24=(402FX,0FY);
+z25=(674FX,0FY);
+z26=(678FX,18FY);
+z27=(623FX,27FY);
+z28=(607FX,60FY);
+z29=(613FX,104FY);
+z30=(637FX,200FY);
+z31=(677FX,200FY);
+z32=(722FX,167FY);
+z33=(714FX,134FY);
+z34=(836FX,134FY);
+FuF (z1
+{2,5} .. {0,5}z2
+{0,40} .. {-77,0}z3
+-- z4
+-- z5
+{10,39} .. {0,31}z6
+{-2,106} .. {-120,0}z7
+{-97,0} .. {-57,-66}z8
+{-39,-43} .. {-17,-67}z9
+-- z10
+{-14,-58} .. {-56,0}z11
+-- z12
+-- z13
+-- z14
+{-46,0} .. {0,28}z15
+{0,10} .. {4,19}z16
+-- z17
+{38,152} .. {101,0}z18
+{66,0} .. {1,-67}z19
+{1,-33} .. {-13,-52}z20
+-- z21
+{-8,-33} .. {-17,-13}z22
+{-16,-12} .. {-32,0}z23
+-- z24
+-- z25
+-- z26
+{-25,0} .. {-11,6}z27
+{-10,6} .. {0,16}z28
+{0,11} .. {4,19}z29
+-- z30
+-- z31
+{30,0} .. {1,-22}z32
+{0,-10} .. {-5,-12}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(13,679FX#,624FY#,17FY#);
+"Ts";
+z1=(779FX,541FY);
+z2=(773FX,561FY);
+z3=(750FX,586FY);
+z4=(710FX,602FY);
+z5=(684FX,609FY);
+z6=(655FX,609FY);
+z7=(541FX,588FY);
+z8=(402FX,525FY);
+z9=(382FX,529FY);
+z10=(345FX,532FY);
+z11=(309FX,552FY);
+z12=(290FX,587FY);
+z13=(292FX,598FY);
+z14=(298FX,624FY);
+z15=(175FX,624FY);
+z16=(166FX,589FY);
+z17=(165FX,574FY);
+z18=(171FX,554FY);
+z19=(205FX,525FY);
+z20=(356FX,496FY);
+z21=(215FX,392FY);
+z22=(132FX,239FY);
+z23=(124FX,175FY);
+z24=(155FX,66FY);
+z25=(327FX,-17FY);
+z26=(451FX,6FY);
+z27=(616FX,157FY);
+z28=(661FX,312FY);
+z29=(623FX,423FY);
+z30=(456FX,515FY);
+z31=(539FX,552FY);
+z32=(573FX,562FY);
+z33=(604FX,565FY);
+z34=(639FX,557FY);
+z35=(652FX,541FY);
+z36=(654FX,529FY);
+z37=(652FX,519FY);
+z38=(646FX,492FY);
+z39=(769FX,492FY);
+z40=(778FX,528FY);
+z41=(779FX,541FY);
+z42=(567FX,320FY);
+z43=(556FX,239FY);
+z44=(472FX,76FY);
+z45=(405FX,24FY);
+z46=(331FX,7FY);
+z47=(225FX,76FY);
+z48=(212FX,146FY);
+z49=(224FX,244FY);
+z50=(411FX,490FY);
+z51=(540FX,410FY);
+z52=(567FX,320FY);
+FuF (z1
+{-1,7} .. {-3,6}z2
+{-7,12} .. {-8,5}z3
+{-8,6} .. {-19,5}z4
+{-10,4} .. {-7,0}z5
+{-6,1} .. {-13,-1}z6
+{-36,0} .. {-40,-13}z7
+-- z8
+{-8,2} .. {-5,1}z9
+{-14,1} .. {-10,1}z10
+{-13,3} .. {-11,10}z11
+{-12,11} .. {0,13}z12
+{1,4} .. {1,3}z13
+-- z14
+-- z15
+-- z16
+{-1,-5} .. {0,-5}z17
+{0,-6} .. {4,-7}z18
+{7,-11} .. {15,-8}z19
+{40,-19} .. {61,0}z20
+{-51,-20} .. {-43,-49}z21
+{-42,-49} .. {-13,-53}z22
+{-6,-23} .. {1,-19}z23
+{1,-40} .. {19,-32}z24
+{34,-55} .. {81,0}z25
+{46,0} .. {36,15}z26
+{65,27} .. {45,74}z27
+{32,52} .. {-2,51}z28
+{-1,44} .. {-24,30}z29
+{-38,48} .. {-73,13}z30
+{32,16} .. {24,9}z31
+{16,6} .. {7,1}z32
+{12,2} .. {8,0}z33
+{16,-1} .. {7,-5}z34
+{8,-4} .. {0,-6}z35
+-- z36
+{-1,-4} .. {-1,-2}z37
+-- z38
+-- z39
+-- z40
+{1,5} .. {0,4}z41
+);
+FuF (z42
+{0,-27} .. {-7,-27}z43
+{-19,-70} .. {-37,-39}z44
+{-21,-23} .. {-23,-12}z45
+{-25,-11} .. {-25,0}z46
+{-54,1} .. {-17,45}z47
+{-8,21} .. {-1,25}z48
+{0,32} .. {8,33}z49
+{30,116} .. {95,47}z50
+{59,-12} .. {27,-41}z51
+{18,-27} .. {0,-33}z52
+);
+lbl (range 1 thru 52);
+endchar;
+
+beginchar(14,722FX#,624FY#,0FY#);
+"Ph";
+z1=(756FX,373FY);
+z2=(524FX,511FY);
+z3=(527FX,523FY);
+z4=(559FX,589FY);
+z5=(634FX,607FY);
+z6=(638FX,624FY);
+z7=(371FX,624FY);
+z8=(367FX,607FY);
+z9=(436FX,566FY);
+z10=(430FX,523FY);
+z11=(427FX,509FY);
+z12=(212FX,459FY);
+z13=(102FX,315FY);
+z14=(94FX,260FY);
+z15=(139FX,167FY);
+z16=(326FX,115FY);
+z17=(324FX,102FY);
+z18=(292FX,35FY);
+z19=(218FX,18FY);
+z20=(214FX,0FY);
+z21=(480FX,0FY);
+z22=(484FX,18FY);
+z23=(417FX,35FY);
+z24=(413FX,54FY);
+z25=(415FX,76FY);
+z26=(420FX,102FY);
+z27=(420FX,115FY);
+z28=(622FX,160FY);
+z29=(749FX,315FY);
+z30=(756FX,373FY);
+z31=(659FX,367FY);
+z32=(653FX,315FY);
+z33=(578FX,193FY);
+z34=(430FX,140FY);
+z35=(515FX,481FY);
+z36=(640FX,432FY);
+z37=(659FX,367FY);
+z38=(418FX,481FY);
+z39=(333FX,140FY);
+z40=(210FX,193FY);
+z41=(192FX,262FY);
+z42=(198FX,315FY);
+z43=(271FX,432FY);
+z44=(418FX,481FY);
+FuF (z1
+{-3,92} .. {-152,0}z2
+-- z3
+{10,34} .. {11,10}z4
+{13,12} .. {37,0}z5
+-- z6
+-- z7
+-- z8
+{46,-2} .. {0,-26}z9
+{-1,-10} .. {-3,-19}z10
+-- z11
+{-86,-1} .. {-57,-33}z12
+{-57,-33} .. {-16,-63}z13
+{-5,-20} .. {0,-16}z14
+{1,-38} .. {29,-24}z15
+{41,-35} .. {84,0}z16
+-- z17
+{-10,-34} .. {-12,-11}z18
+{-15,-11} .. {-34,0}z19
+-- z20
+-- z21
+-- z22
+{-38,0} .. {-7,11}z23
+{-2,5} .. {0,8}z24
+{1,10} .. {0,5}z25
+{1,7} .. {2,10}z26
+-- z27
+{78,1} .. {57,29}z28
+{68,35} .. {16,68}z29
+{5,24} .. {-1,15}z30
+);
+FuF (z31
+{0,-17} .. {-4,-18}z32
+{-12,-46} .. {-38,-35}z33
+{-36,-35} .. {-62,0}z34
+-- z35
+{65,-1} .. {19,-32}z36
+{13,-22} .. {-1,-22}z37
+);
+FuF (z38
+-- z39
+{-63,1} .. {-19,34}z40
+{-12,23} .. {0,23}z41
+{0,20} .. {4,16}z42
+{12,45} .. {37,33}z43
+{37,32} .. {61,0}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(15,718FX#,637FY#,13FY#);
+"Osimple";
+z1=(746FX,417FY);
+z2=(701FX,550FY);
+z3=(506FX,637FY);
+z4=(270FX,553FY);
+z5=(116FX,312FY);
+z6=(103FX,205FY);
+z7=(147FX,72FY);
+z8=(344FX,-13FY);
+z9=(593FX,82FY);
+z10=(733FX,312FY);
+z11=(746FX,417FY);
+z12=(643FX,441FY);
+z13=(625FX,313FY);
+z14=(535FX,118FY);
+z15=(353FX,21FY);
+z16=(225FX,97FY);
+z17=(206FX,184FY);
+z18=(223FX,312FY);
+z19=(315FX,507FY);
+z20=(497FX,604FY);
+z21=(623FX,529FY);
+z22=(643FX,441FY);
+FuF (z1
+{-1,53} .. {-29,36}z2
+{-47,58} .. {-83,0}z3
+{-81,0} .. {-76,-56}z4
+{-77,-58} .. {-25,-103}z5
+{-10,-39} .. {1,-32}z6
+{1,-55} .. {28,-33}z7
+{47,-57} .. {84,0}z8
+{93,0} .. {73,64}z9
+{70,61} .. {24,92}z10
+{9,38} .. {-1,32}z11
+);
+FuF (z12
+{1,-38} .. {-13,-48}z13
+{-20,-79} .. {-40,-51}z14
+{-51,-65} .. {-71,0}z15
+{-62,0} .. {-23,51}z16
+{-12,26} .. {-1,32}z17
+{-1,36} .. {12,49}z18
+{20,78} .. {42,52}z19
+{51,65} .. {70,0}z20
+{59,-1} .. {26,-50}z21
+{13,-24} .. {1,-35}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(19,504FX#,635FY#,11FY#);
+"dz";
+z1=(552FX,132FY);
+z2=(535FX,137FY);
+z3=(499FX,77FY);
+z4=(449FX,42FY);
+z5=(421FX,54FY);
+z6=(419FX,63FY);
+z7=(424FX,102FY);
+z8=(462FX,270FY);
+z9=(466FX,305FY);
+z10=(442FX,369FY);
+z11=(353FX,429FY);
+z12=(417FX,453FY);
+z13=(467FX,477FY);
+z14=(489FX,508FY);
+z15=(488FX,519FY);
+z16=(483FX,532FY);
+z17=(462FX,545FY);
+z18=(337FX,568FY);
+z19=(310FX,576FY);
+z20=(305FX,589FY);
+z21=(309FX,595FY);
+z22=(313FX,601FY);
+z23=(336FX,621FY);
+z24=(315FX,636FY);
+z25=(253FX,586FY);
+z26=(221FX,542FY);
+z27=(219FX,530FY);
+z28=(225FX,517FY);
+z29=(250FX,504FY);
+z30=(366FX,481FY);
+z31=(378FX,479FY);
+z32=(380FX,473FY);
+z33=(370FX,461FY);
+z34=(338FX,447FY);
+z35=(267FX,410FY);
+z36=(69FX,113FY);
+z37=(65FX,78FY);
+z38=(79FX,27FY);
+z39=(160FX,-12FY);
+z40=(271FX,51FY);
+z41=(387FX,229FY);
+z42=(356FX,111FY);
+z43=(346FX,42FY);
+z44=(348FX,30FY);
+z45=(351FX,16FY);
+z46=(407FX,-12FY);
+z47=(486FX,28FY);
+z48=(552FX,132FY);
+z49=(401FX,340FY);
+z50=(396FX,301FY);
+z51=(317FX,155FY);
+z52=(209FX,45FY);
+z53=(165FX,68FY);
+z54=(155FX,102FY);
+z55=(159FX,132FY);
+z56=(222FX,312FY);
+z57=(328FX,419FY);
+z58=(401FX,340FY);
+FuF (z1
+-- z2
+{-7,-19} .. {-17,-22}z3
+{-20,-23} .. {-14,0}z4
+{-14,2} .. {-4,6}z5
+{-2,2} .. {1,4}z6
+{0,11} .. {3,15}z7
+-- z8
+{3,14} .. {0,9}z9
+{0,24} .. {-16,18}z10
+{-23,28} .. {-36,12}z11
+-- z12
+{21,8} .. {12,8}z13
+{13,9} .. {2,11}z14
+-- z15
+{0,4} .. {-3,4}z16
+{-6,7} .. {-8,1}z17
+-- z18
+{-15,3} .. {-3,3}z19
+{-3,5} .. {0,4}z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+{-14,-12} .. {-7,-17}z26
+{-1,-4} .. {0,-4}z27
+{1,-6} .. {3,-2}z28
+{2,-6} .. {14,-3}z29
+-- z30
+{6,-1} .. {2,0}z31
+{3,-2} .. {-1,-2}z32
+{-4,-6} .. {-3,-2}z33
+-- z34
+{-18,-7} .. {-30,-17}z35
+{-97,-55} .. {-35,-142}z36
+{-4,-13} .. {1,-11}z37
+{1,-18} .. {9,-16}z38
+{14,-26} .. {40,0}z39
+{36,0} .. {38,42}z40
+{39,43} .. {39,75}z41
+-- z42
+{-7,-25} .. {0,-21}z43
+{1,-1} .. {0,-7}z44
+{1,-6} .. {1,-3}z45
+{9,-18} .. {28,0}z46
+{29,0} .. {24,26}z47
+{27,30} .. {17,39}z48
+);
+FuF (z49
+{0,-11} .. {-4,-15}z50
+{-20,-45} .. {-33,-52}z51
+{-46,-73} .. {-26,0}z52
+{-17,0} .. {-12,15}z53
+{-7,11} .. {0,12}z54
+{1,14} .. {1,6}z55
+{19,77} .. {23,43}z56
+{22,43} .. {48,28}z57
+{48,-17} .. {1,-36}z58
+);
+lbl (range 1 thru 58);
+endchar;
+
+beginchar(20,595FX#,433FY#,188FY#);
+"gh";
+z1=(563FX,-160FY);
+z2=(432FX,-160FY);
+z3=(545FX,292FY);
+z4=(554FX,360FY);
+z5=(486FX,434FY);
+z6=(258FX,193FY);
+z7=(290FX,311FY);
+z8=(298FX,370FY);
+z9=(238FX,434FY);
+z10=(160FX,401FY);
+z11=(76FX,292FY);
+z12=(93FX,282FY);
+z13=(196FX,383FY);
+z14=(222FX,351FY);
+z15=(217FX,314FY);
+z16=(138FX,0FY);
+z17=(217FX,0FY);
+z18=(237FX,78FY);
+z19=(332FX,272FY);
+z20=(445FX,382FY);
+z21=(475FX,348FY);
+z22=(466FX,292FY);
+z23=(345FX,-189FY);
+z24=(557FX,-189FY);
+FuF (z1
+-- z2
+-- z3
+{7,26} .. {-1,19}z4
+{-1,49} .. {-44,0}z5
+{-71,0} .. {-81,-161}z6
+-- z7
+{6,23} .. {-1,16}z8
+{0,43} .. {-40,0}z9
+{-25,0} .. {-27,-22}z10
+{-31,-26} .. {-25,-47}z11
+-- z12
+{38,67} .. {30,0}z13
+{17,0} .. {0,-21}z14
+{1,-10} .. {-4,-15}z15
+-- z16
+-- z17
+-- z18
+{13,56} .. {50,73}z19
+{50,74} .. {26,0}z20
+{19,0} .. {1,-23}z21
+{0,-13} .. {-6,-24}z22
+-- z23
+-- z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(21,538FX#,629FY#,11FY#);
+"chmute";
+z1=(574FX,559FY);
+z2=(565FX,585FY);
+z3=(535FX,616FY);
+z4=(493FX,629FY);
+z5=(384FX,579FY);
+z6=(311FX,513FY);
+z7=(236FX,421FY);
+z8=(190FX,425FY);
+z9=(140FX,425FY);
+z10=(134FX,396FY);
+z11=(219FX,395FY);
+z12=(138FX,254FY);
+z13=(93FX,138FY);
+z14=(78FX,65FY);
+z15=(90FX,20FY);
+z16=(173FX,-12FY);
+z17=(284FX,51FY);
+z18=(399FX,229FY);
+z19=(369FX,111FY);
+z20=(360FX,42FY);
+z21=(361FX,30FY);
+z22=(364FX,16FY);
+z23=(420FX,-12FY);
+z24=(499FX,28FY);
+z25=(566FX,132FY);
+z26=(548FX,137FY);
+z27=(512FX,77FY);
+z28=(462FX,42FY);
+z29=(434FX,54FY);
+z30=(432FX,63FY);
+z31=(438FX,102FY);
+z32=(470FX,253FY);
+z33=(475FX,293FY);
+z34=(436FX,373FY);
+z35=(284FX,417FY);
+z36=(369FX,525FY);
+z37=(475FX,599FY);
+z38=(489FX,595FY);
+z39=(494FX,581FY);
+z40=(488FX,568FY);
+z41=(484FX,554FY);
+z42=(483FX,542FY);
+z43=(484FX,531FY);
+z44=(521FX,508FY);
+z45=(559FX,522FY);
+z46=(569FX,537FY);
+z47=(573FX,550FY);
+z48=(574FX,559FY);
+z49=(410FX,301FY);
+z50=(307FX,122FY);
+z51=(223FX,45FY);
+z52=(177FX,66FY);
+z53=(167FX,96FY);
+z54=(172FX,132FY);
+z55=(195FX,216FY);
+z56=(217FX,282FY);
+z57=(266FX,389FY);
+z58=(358FX,371FY);
+z59=(410FX,301FY);
+FuF (z1
+{0,9} .. {-6,9}z2
+{-9,14} .. {-11,6}z3
+{-11,9} .. {-17,0}z4
+{-32,-1} .. {-41,-33}z5
+{-28,-22} .. {-21,-22}z6
+{-29,-31} .. {-21,-30}z7
+{-10,3} .. {-21,0}z8
+-- z9
+-- z10
+-- z11
+{-29,-41} .. {-25,-53}z12
+{-19,-40} .. {-11,-37}z13
+{-10,-32} .. {0,-17}z14
+{1,-18} .. {7,-12}z15
+{16,-21} .. {40,0}z16
+{36,0} .. {38,42}z17
+{39,43} .. {38,75}z18
+-- z19
+{-7,-25} .. {1,-21}z20
+{0,-1} .. {0,-7}z21
+{1,-7} .. {1,-2}z22
+{10,-18} .. {28,0}z23
+{29,0} .. {23,26}z24
+{27,30} .. {17,39}z25
+-- z26
+{-8,-20} .. {-16,-20}z27
+{-19,-23} .. {-14,0}z28
+{-14,2} .. {-4,6}z29
+{-2,2} .. {0,4}z30
+{0,10} .. {4,16}z31
+-- z32
+{3,16} .. {0,11}z33
+{-1,32} .. {-25,22}z34
+{-34,29} .. {-67,0}z35
+{26,39} .. {31,33}z36
+{44,49} .. {26,0}z37
+-- z38
+{5,-1} .. {-1,-8}z39
+{-3,-5} .. {-1,-3}z40
+-- z41
+{0,-2} .. {0,-6}z42
+{1,-4} .. {0,-3}z43
+{9,-16} .. {15,0}z44
+{18,0} .. {7,10}z45
+{4,5} .. {3,5}z46
+{3,5} .. {0,4}z47
+{1,3} .. {0,3}z48
+);
+FuF (z49
+{-32,-70} .. {-37,-50}z50
+{-38,-52} .. {-18,0}z51
+{-19,0} .. {-11,14}z52
+{-6,8} .. {0,12}z53
+{0,11} .. {3,13}z54
+{11,40} .. {5,16}z55
+{7,22} .. {8,22}z56
+{17,45} .. {16,27}z57
+{35,-1} .. {26,-11}z58
+{30,-13} .. {5,-34}z59
+);
+lbl (range 1 thru 59);
+endchar;
+
+beginchar(22,398FX#,645FY#,77FY#);
+"esimple";
+z1=(514FX,425FY);
+z2=(270FX,425FY);
+z3=(324FX,642FY);
+z4=(321FX,645FY);
+z5=(263FX,627FY);
+z6=(176FX,604FY);
+z7=(173FX,589FY);
+z8=(196FX,589FY);
+z9=(225FX,576FY);
+z10=(220FX,541FY);
+z11=(85FX,0FY);
+z12=(255FX,0FY);
+z13=(280FX,-9FY);
+z14=(284FX,-32FY);
+z15=(274FX,-46FY);
+z16=(254FX,-51FY);
+z17=(216FX,-45FY);
+z18=(208FX,-71FY);
+z19=(239FX,-76FY);
+z20=(250FX,-77FY);
+z21=(275FX,-77FY);
+z22=(338FX,-66FY);
+z23=(373FX,-31FY);
+z24=(374FX,-14FY);
+z25=(357FX,15FY);
+z26=(295FX,28FY);
+z27=(171FX,28FY);
+z28=(263FX,396FY);
+z29=(507FX,396FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{18,0} .. {2,-8}z9
+{0,-8} .. {-3,-15}z10
+-- z11
+-- z12
+{13,0} .. {4,-6}z13
+{4,-7} .. {-2,-8}z14
+{-3,-7} .. {-4,-2}z15
+{-4,-3} .. {-10,0}z16
+-- z17
+-- z18
+{9,-3} .. {12,0}z19
+{4,0} .. {3,0}z20
+-- z21
+{23,0} .. {19,8}z22
+{20,8} .. {4,16}z23
+{1,3} .. {-1,8}z24
+{0,13} .. {-11,6}z25
+{-15,9} .. {-26,0}z26
+-- z27
+-- z28
+-- z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(23,595FX#,433FY#,188FY#);
+"article";
+z1=(620FX,131FY);
+z2=(603FX,137FY);
+z3=(585FX,104FY);
+z4=(565FX,75FY);
+z5=(538FX,50FY);
+z6=(510FX,42FY);
+z7=(486FX,57FY);
+z8=(483FX,70FY);
+z9=(489FX,109FY);
+z10=(550FX,315FY);
+z11=(544FX,291FY);
+z12=(558FX,380FY);
+z13=(554FX,403FY);
+z14=(485FX,434FY);
+z15=(257FX,193FY);
+z16=(288FX,311FY);
+z17=(298FX,382FY);
+z18=(297FX,394FY);
+z19=(294FX,407FY);
+z20=(237FX,434FY);
+z21=(89FX,291FY);
+z22=(108FX,286FY);
+z23=(125FX,318FY);
+z24=(145FX,348FY);
+z25=(195FX,380FY);
+z26=(218FX,366FY);
+z27=(221FX,350FY);
+z28=(216FX,314FY);
+z29=(90FX,-189FY);
+z30=(476FX,-189FY);
+z31=(482FX,-160FY);
+z32=(214FX,-160FY);
+z33=(186FX,-153FY);
+z34=(182FX,-141FY);
+z35=(185FX,-126FY);
+z36=(236FX,78FY);
+z37=(330FX,274FY);
+z38=(444FX,380FY);
+z39=(472FX,369FY);
+z40=(474FX,349FY);
+z41=(471FX,321FY);
+z42=(465FX,291FY);
+z43=(411FX,111FY);
+z44=(401FX,44FY);
+z45=(468FX,-17FY);
+z46=(552FX,26FY);
+z47=(620FX,131FY);
+FuF (z1
+-- z2
+{-8,-16} .. {-4,-6}z3
+{-10,-15} .. {-3,-4}z4
+{-8,-11} .. {-10,-6}z5
+{-9,-5} .. {-10,0}z6
+{-11,0} .. {-5,10}z7
+{-2,4} .. {0,4}z8
+{1,15} .. {3,11}z9
+-- z10
+-- z11
+{9,42} .. {0,17}z12
+{-1,9} .. {-2,6}z13
+{-8,20} .. {-38,0}z14
+{-71,0} .. {-81,-161}z15
+-- z16
+{7,26} .. {0,21}z17
+{-1,4} .. {0,3}z18
+{0,3} .. {-2,6}z19
+{-9,18} .. {-29,0}z20
+{-58,-1} .. {-41,-94}z21
+-- z22
+{7,13} .. {5,9}z23
+{6,11} .. {7,9}z24
+{17,21} .. {17,0}z25
+{11,0} .. {5,-9}z26
+{2,-5} .. {0,-6}z27
+{0,-10} .. {-4,-14}z28
+-- z29
+-- z30
+-- z31
+-- z32
+{-14,0} .. {-5,5}z33
+{-2,3} .. {0,5}z34
+{0,3} .. {2,7}z35
+-- z36
+{14,56} .. {49,74}z37
+{47,70} .. {29,0}z38
+{17,0} .. {1,-7}z39
+{1,-5} .. {0,-8}z40
+{-2,-18} .. {0,0}z41
+{-1,-8} .. {-2,-12}z42
+-- z43
+{-7,-22} .. {0,-23}z44
+{1,-41} .. {44,1}z45
+{27,0} .. {29,28}z46
+{29,29} .. {17,41}z47
+);
+lbl (range 1 thru 47);
+endchar;
+
+beginchar(24,616FX#,433FY#,189FY#);
+"th";
+z1=(683FX,245FY);
+z2=(615FX,245FY);
+z3=(622FX,276FY);
+z4=(625FX,315FY);
+z5=(580FX,407FY);
+z6=(501FX,434FY);
+z7=(254FX,193FY);
+z8=(286FX,311FY);
+z9=(295FX,369FY);
+z10=(235FX,434FY);
+z11=(150FX,395FY);
+z12=(82FX,292FY);
+z13=(100FX,286FY);
+z14=(192FX,380FY);
+z15=(220FX,355FY);
+z16=(213FX,315FY);
+z17=(104FX,-127FY);
+z18=(75FX,-168FY);
+z19=(33FX,-175FY);
+z20=(29FX,-190FY);
+z21=(229FX,-190FY);
+z22=(233FX,-175FY);
+z23=(180FX,-148FY);
+z24=(180FX,-146FY);
+z25=(183FX,-127FY);
+z26=(236FX,94FY);
+z27=(470FX,380FY);
+z28=(546FX,310FY);
+z29=(542FX,276FY);
+z30=(535FX,245FY);
+z31=(485FX,245FY);
+z32=(346FX,189FY);
+z33=(304FX,76FY);
+z34=(336FX,8FY);
+z35=(415FX,-12FY);
+z36=(585FX,123FY);
+z37=(608FX,217FY);
+z38=(677FX,217FY);
+z39=(529FX,217FY);
+z40=(506FX,122FY);
+z41=(480FX,52FY);
+z42=(421FX,16FY);
+z43=(392FX,31FY);
+z44=(384FX,64FY);
+z45=(486FX,217FY);
+FuF (z1
+-- z2
+-- z3
+{2,14} .. {-1,12}z4
+{0,39} .. {-30,22}z5
+{-23,18} .. {-29,0}z6
+{-91,0} .. {-74,-161}z7
+-- z8
+{6,23} .. {0,16}z9
+{-1,43} .. {-39,0}z10
+{-30,0} .. {-27,-26}z11
+{-28,-26} .. {-18,-43}z12
+-- z13
+{31,63} .. {30,0}z14
+{18,0} .. {0,-17}z15
+{0,-9} .. {-5,-18}z16
+-- z17
+{-7,-20} .. {-12,-7}z18
+{-9,-5} .. {-19,0}z19
+-- z20
+-- z21
+-- z22
+{-34,1} .. {-1,17}z23
+{0,1} .. {0,1}z24
+{0,5} .. {2,8}z25
+-- z26
+{77,191} .. {79,0}z27
+{50,0} .. {0,-47}z28
+{1,-10} .. {-3,-12}z29
+-- z30
+-- z31
+{-59,0} .. {-34,-37}z32
+{-28,-31} .. {0,-44}z33
+{0,-31} .. {21,-15}z34
+{19,-13} .. {34,0}z35
+{91,2} .. {22,89}z36
+-- z37
+-- z38
+);
+FuF (z39
+-- z40
+{-8,-33} .. {-9,-14}z41
+{-14,-24} .. {-25,0}z42
+{-13,0} .. {-7,10}z43
+{-7,10} .. {1,12}z44
+{10,102} .. {58,0}z45
+);
+lbl (range 1 thru 45);
+endchar;
+
+beginchar(25,522FX#,645FY#,9FY#);
+"zh";
+z1=(663FX,425FY);
+z2=(532FX,425FY);
+z3=(586FX,642FY);
+z4=(582FX,645FY);
+z5=(524FX,627FY);
+z6=(438FX,604FY);
+z7=(434FX,589FY);
+z8=(458FX,589FY);
+z9=(487FX,580FY);
+z10=(483FX,544FY);
+z11=(453FX,425FY);
+z12=(350FX,425FY);
+z13=(194FX,367FY);
+z14=(104FX,227FY);
+z15=(95FX,153FY);
+z16=(124FX,58FY);
+z17=(256FX,-9FY);
+z18=(383FX,36FY);
+z19=(479FX,215FY);
+z20=(525FX,396FY);
+z21=(656FX,396FY);
+z22=(446FX,396FY);
+z23=(373FX,105FY);
+z24=(260FX,17FY);
+z25=(179FX,64FY);
+z26=(168FX,120FY);
+z27=(178FX,197FY);
+z28=(243FX,334FY);
+z29=(357FX,396FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+{18,0} .. {2,-5}z9
+{1,-6} .. {-4,-18}z10
+-- z11
+-- z12
+{-57,0} .. {-47,-38}z13
+{-45,-38} .. {-14,-55}z14
+{-7,-29} .. {1,-21}z15
+{1,-38} .. {18,-25}z16
+{31,-45} .. {57,0}z17
+{44,0} .. {41,30}z18
+{42,30} .. {23,89}z19
+-- z20
+-- z21
+);
+FuF (z22
+-- z23
+{-15,-59} .. {-60,1}z24
+{-38,0} .. {-16,31}z25
+{-7,15} .. {0,22}z26
+{-1,24} .. {7,27}z27
+{14,54} .. {29,37}z28
+{32,41} .. {44,0}z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(26,389FX#,430FY#,188FY#);
+"sh";
+z1=(438FX,318FY);
+z2=(294FX,430FY);
+z3=(166FX,374FY);
+z4=(73FX,231FY);
+z5=(96FX,222FY);
+z6=(164FX,315FY);
+z7=(256FX,359FY);
+z8=(342FX,278FY);
+z9=(312FX,192FY);
+z10=(223FX,93FY);
+z11=(78FX,-20FY);
+z12=(-19FX,-105FY);
+z13=(-40FX,-155FY);
+z14=(5FX,-189FY);
+z15=(306FX,-189FY);
+z16=(313FX,-160FY);
+z17=(137FX,-160FY);
+z18=(91FX,-148FY);
+z19=(75FX,-123FY);
+z20=(94FX,-62FY);
+z21=(147FX,-1FY);
+z22=(314FX,124FY);
+z23=(438FX,318FY);
+FuF (z1
+{-2,76} .. {-94,-1}z2
+{-46,0} .. {-40,-37}z3
+{-39,-35} .. {-23,-60}z4
+-- z5
+{11,32} .. {35,30}z6
+{34,29} .. {27,0}z7
+{56,0} .. {1,-54}z8
+{0,-24} .. {-20,-34}z9
+{-22,-37} .. {-37,-28}z10
+-- z11
+{-48,-37} .. {-17,-20}z12
+{-14,-17} .. {0,-16}z13
+{0,-22} .. {30,0}z14
+-- z15
+-- z16
+-- z17
+{-19,0} .. {-12,8}z18
+{-11,7} .. {0,9}z19
+{-1,18} .. {13,23}z20
+{14,24} .. {21,16}z21
+-- z22
+{84,63} .. {-1,66}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(27,299FX#,433FY#,188FY#);
+"ch";
+z1=(351FX,414FY);
+z2=(347FX,434FY);
+z3=(207FX,377FY);
+z4=(125FX,289FY);
+z5=(107FX,240FY);
+z6=(105FX,219FY);
+z7=(122FX,170FY);
+z8=(174FX,121FY);
+z9=(212FX,92FY);
+z10=(220FX,71FY);
+z11=(214FX,60FY);
+z12=(206FX,50FY);
+z13=(187FX,38FY);
+z14=(117FX,-13FY);
+z15=(17FX,-93FY);
+z16=(-11FX,-139FY);
+z17=(-13FX,-146FY);
+z18=(-13FX,-153FY);
+z19=(-3FX,-177FY);
+z20=(36FX,-189FY);
+z21=(262FX,-189FY);
+z22=(269FX,-160FY);
+z23=(155FX,-160FY);
+z24=(136FX,-158FY);
+z25=(119FX,-150FY);
+z26=(101FX,-126FY);
+z27=(103FX,-99FY);
+z28=(126FX,-56FY);
+z29=(181FX,0FY);
+z30=(251FX,53FY);
+z31=(281FX,82FY);
+z32=(292FX,105FY);
+z33=(294FX,122FY);
+z34=(283FX,152FY);
+z35=(240FX,190FY);
+z36=(198FX,231FY);
+z37=(189FX,261FY);
+z38=(191FX,281FY);
+z39=(194FX,291FY);
+z40=(250FX,368FY);
+z41=(351FX,414FY);
+FuF (z1
+-- z2
+{-51,-6} .. {-43,-32}z3
+{-45,-33} .. {-10,-25}z4
+-- z5
+{-2,-8} .. {1,-6}z6
+{1,-18} .. {11,-14}z7
+{15,-21} .. {20,-11}z8
+{18,-11} .. {7,-8}z9
+{7,-9} .. {-1,-5}z10
+{-1,-4} .. {-3,-3}z11
+{0,-3} .. {-5,-3}z12
+-- z13
+-- z14
+{-52,-38} .. {-15,-15}z15
+{-15,-18} .. {-3,-13}z16
+{-1,-3} .. {0,-2}z17
+{0,-5} .. {0,0}z18
+{0,-11} .. {5,-5}z19
+{13,-8} .. {13,0}z20
+-- z21
+-- z22
+-- z23
+{-8,0} .. {-5,1}z24
+{-8,3} .. {-3,2}z25
+{-12,8} .. {0,8}z26
+{0,8} .. {2,10}z27
+{5,13} .. {11,16}z28
+{12,19} .. {24,19}z29
+-- z30
+{12,9} .. {8,10}z31
+{6,8} .. {1,7}z32
+{1,12} .. {0,0}z33
+{-1,12} .. {-6,8}z34
+{-10,13} .. {-19,13}z35
+{-17,11} .. {-11,16}z36
+{-6,11} .. {0,9}z37
+{0,7} .. {1,7}z38
+-- z39
+{7,24} .. {31,27}z40
+{31,27} .. {36,4}z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(28,557FX#,433FY#,0FY#);
+"rhard";
+z1=(585FX,336FY);
+z2=(572FX,391FY);
+z3=(502FX,434FY);
+z4=(268FX,192FY);
+z5=(289FX,275FY);
+z6=(299FX,326FY);
+z7=(310FX,390FY);
+z8=(295FX,423FY);
+z9=(243FX,434FY);
+z10=(162FX,396FY);
+z11=(82FX,291FY);
+z12=(100FX,283FY);
+z13=(128FX,327FY);
+z14=(154FX,356FY);
+z15=(201FX,383FY);
+z16=(227FX,368FY);
+z17=(230FX,355FY);
+z18=(222FX,306FY);
+z19=(145FX,0FY);
+z20=(226FX,0FY);
+z21=(244FX,72FY);
+z22=(340FX,273FY);
+z23=(455FX,383FY);
+z24=(490FX,346FY);
+z25=(495FX,311FY);
+z26=(492FX,279FY);
+z27=(463FX,184FY);
+z28=(383FX,56FY);
+z29=(338FX,14FY);
+z30=(334FX,0FY);
+z31=(540FX,0FY);
+z32=(547FX,28FY);
+z33=(392FX,28FY);
+z34=(509FX,150FY);
+z35=(581FX,302FY);
+z36=(585FX,336FY);
+FuF (z1
+{-1,20} .. {-8,17}z2
+{-14,29} .. {-32,0}z3
+{-82,-1} .. {-74,-160}z4
+-- z5
+{3,12} .. {4,22}z6
+{6,34} .. {1,9}z7
+{1,15} .. {-11,7}z8
+{-11,8} .. {-24,0}z9
+{-26,0} .. {-28,-25}z10
+{-27,-24} .. {-26,-46}z11
+-- z12
+{13,20} .. {5,9}z13
+{12,13} .. {6,6}z14
+{19,18} .. {12,0}z15
+{15,-1} .. {2,-9}z16
+{2,-2} .. {1,-7}z17
+{0,-11} .. {-5,-22}z18
+-- z19
+-- z20
+-- z21
+{15,59} .. {49,75}z22
+{48,73} .. {28,0}z23
+{18,0} .. {5,-25}z24
+{4,-10} .. {-1,-14}z25
+{0,-13} .. {-2,-8}z26
+{-7,-31} .. {-12,-32}z27
+{-16,-43} .. {-38,-42}z28
+{-15,-17} .. {-15,-11}z29
+-- z30
+-- z31
+-- z32
+-- z33
+{46,36} .. {33,45}z34
+{35,50} .. {13,52}z35
+{2,12} .. {0,11}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(29,499FX#,624FY#,9FY#);
+"ts";
+z1=(592FX,402FY);
+z2=(522FX,420FY);
+z3=(485FX,425FY);
+z4=(433FX,498FY);
+z5=(381FX,554FY);
+z6=(361FX,579FY);
+z7=(360FX,586FY);
+z8=(361FX,591FY);
+z9=(375FX,599FY);
+z10=(405FX,599FY);
+z11=(411FX,624FY);
+z12=(262FX,624FY);
+z13=(233FX,605FY);
+z14=(264FX,566FY);
+z15=(331FX,495FY);
+z16=(380FX,429FY);
+z17=(200FX,374FY);
+z18=(101FX,214FY);
+z19=(95FX,189FY);
+z20=(93FX,150FY);
+z21=(119FX,57FY);
+z22=(252FX,-9FY);
+z23=(421FX,61FY);
+z24=(517FX,217FY);
+z25=(526FX,269FY);
+z26=(528FX,318FY);
+z27=(504FX,394FY);
+z28=(542FX,387FY);
+z29=(581FX,375FY);
+z30=(438FX,296FY);
+z31=(426FX,189FY);
+z32=(272FX,17FY);
+z33=(190FX,93FY);
+z34=(186FX,135FY);
+z35=(202FX,258FY);
+z36=(257FX,357FY);
+z37=(359FX,403FY);
+z38=(392FX,396FY);
+z39=(438FX,296FY);
+FuF (z1
+{-25,8} .. {-21,3}z2
+{-14,3} .. {-11,0}z3
+{-17,29} .. {-18,20}z4
+-- z5
+{-9,11} .. {-4,6}z6
+{0,2} .. {-1,2}z7
+{0,2} .. {0,2}z8
+{2,5} .. {7,0}z9
+-- z10
+-- z11
+-- z12
+{-17,0} .. {-3,-13}z13
+{-1,-10} .. {21,-16}z14
+{22,-16} .. {23,-31}z15
+-- z16
+{-72,0} .. {-48,-37}z17
+{-49,-37} .. {-17,-70}z18
+{-3,-12} .. {-1,-4}z19
+{-2,-11} .. {1,-15}z20
+{1,-37} .. {16,-25}z21
+{28,-45} .. {60,1}z22
+{63,0} .. {50,46}z23
+{50,45} .. {14,58}z24
+{5,18} .. {1,17}z25
+{2,19} .. {0,13}z26
+{-3,27} .. {-13,23}z27
+-- z28
+-- z29
+);
+FuF (z30
+{0,-39} .. {-9,-32}z31
+{-31,-115} .. {-72,0}z32
+{-49,0} .. {-6,50}z33
+{-3,20} .. {0,9}z34
+{0,40} .. {11,41}z35
+{9,39} .. {27,27}z36
+{31,31} .. {37,0}z37
+{14,-1} .. {8,-4}z38
+{29,-20} .. {1,-47}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(30,809FX#,645FY#,188FY#);
+"ph";
+z1=(836FX,138FY);
+z2=(821FX,141FY);
+z3=(780FX,76FY);
+z4=(736FX,47FY);
+z5=(714FX,61FY);
+z6=(714FX,78FY);
+z7=(770FX,265FY);
+z8=(787FX,380FY);
+z9=(786FX,392FY);
+z10=(722FX,431FY);
+z11=(590FX,351FY);
+z12=(503FX,214FY);
+z13=(610FX,642FY);
+z14=(606FX,645FY);
+z15=(548FX,627FY);
+z16=(462FX,604FY);
+z17=(458FX,589FY);
+z18=(482FX,589FY);
+z19=(509FX,575FY);
+z20=(509FX,558FY);
+z21=(505FX,541FY);
+z22=(458FX,355FY);
+z23=(362FX,156FY);
+z24=(253FX,43FY);
+z25=(226FX,59FY);
+z26=(224FX,71FY);
+z27=(233FX,126FY);
+z28=(279FX,272FY);
+z29=(288FX,308FY);
+z30=(298FX,381FY);
+z31=(296FX,401FY);
+z32=(235FX,430FY);
+z33=(150FX,381FY);
+z34=(94FX,286FY);
+z35=(110FX,282FY);
+z36=(150FX,347FY);
+z37=(193FX,376FY);
+z38=(215FX,361FY);
+z39=(210FX,316FY);
+z40=(161FX,158FY);
+z41=(143FX,43FY);
+z42=(144FX,31FY);
+z43=(208FX,-7FY);
+z44=(339FX,74FY);
+z45=(423FX,211FY);
+z46=(339FX,-126FY);
+z47=(315FX,-165FY);
+z48=(268FX,-175FY);
+z49=(264FX,-189FY);
+z50=(464FX,-189FY);
+z51=(468FX,-175FY);
+z52=(415FX,-145FY);
+z53=(418FX,-126FY);
+z54=(466FX,69FY);
+z55=(562FX,267FY);
+z56=(678FX,380FY);
+z57=(704FX,363FY);
+z58=(706FX,352FY);
+z59=(698FX,297FY);
+z60=(651FX,152FY);
+z61=(643FX,116FY);
+z62=(632FX,39FY);
+z63=(633FX,23FY);
+z64=(696FX,-6FY);
+z65=(781FX,42FY);
+z66=(836FX,138FY);
+FuF (z1
+-- z2
+{-11,-24} .. {-16,-19}z3
+{-17,-19} .. {-12,0}z4
+{-13,0} .. {-1,9}z5
+-- z6
+-- z7
+{12,40} .. {-1,37}z8
+{0,5} .. {0,2}z9
+{-1,27} .. {-42,-1}z10
+{-44,-1} .. {-44,-53}z11
+{-23,-28} .. {-35,-64}z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+{18,1} .. {0,-10}z19
+{0,-3} .. {0,-8}z20
+{-1,-8} .. {-2,-3}z21
+-- z22
+{-14,-55} .. {-50,-77}z23
+{-48,-76} .. {-25,0}z24
+{-14,1} .. {-4,10}z25
+{-2,4} .. {1,4}z26
+{0,19} .. {6,18}z27
+-- z28
+-- z29
+{7,27} .. {0,22}z30
+{-1,8} .. {0,5}z31
+{-5,19} .. {-35,0}z32
+{-31,0} .. {-25,-33}z33
+{-26,-32} .. {-11,-31}z34
+-- z35
+{11,26} .. {16,17}z36
+{18,20} .. {11,-1}z37
+{15,0} .. {0,-10}z38
+{1,-11} .. {-6,-19}z39
+-- z40
+{-17,-54} .. {0,-21}z41
+{1,-5} .. {0,-3}z42
+{1,-26} .. {41,1}z43
+{44,0} .. {43,54}z44
+{23,28} .. {33,63}z45
+-- z46
+{-5,-20} .. {-11,-7}z47
+{-11,-6} .. {-20,0}z48
+-- z49
+-- z50
+-- z51
+{-35,2} .. {-1,18}z52
+{0,5} .. {2,7}z53
+-- z54
+{14,57} .. {50,75}z55
+{50,75} .. {27,0}z56
+{14,0} .. {3,-11}z57
+{2,-3} .. {0,-4}z58
+{0,-15} .. {-7,-22}z59
+-- z60
+-- z61
+{-8,-32} .. {1,-19}z62
+{0,-6} .. {0,-5}z63
+{7,-20} .. {35,0}z64
+{31,0} .. {25,32}z65
+{26,32} .. {11,32}z66
+);
+lbl (range 1 thru 66);
+endchar;
+
+beginchar(31,470FX#,433FY#,9FY#);
+"osimple";
+z1=(515FX,288FY);
+z2=(488FX,375FY);
+z3=(350FX,434FY);
+z4=(184FX,368FY);
+z5=(91FX,214FY);
+z6=(81FX,145FY);
+z7=(107FX,56FY);
+z8=(241FX,-9FY);
+z9=(410FX,60FY);
+z10=(507FX,217FY);
+z11=(515FX,288FY);
+z12=(428FX,286FY);
+z13=(415FX,189FY);
+z14=(261FX,17FY);
+z15=(178FX,95FY);
+z16=(173FX,125FY);
+z17=(173FX,144FY);
+z18=(187FX,258FY);
+z19=(244FX,367FY);
+z20=(335FX,408FY);
+z21=(418FX,344FY);
+z22=(428FX,286FY);
+FuF (z1
+{0,35} .. {-18,23}z2
+{-29,40} .. {-63,0}z3
+{-62,-1} .. {-49,-44}z4
+{-46,-41} .. {-16,-61}z5
+{-7,-26} .. {0,-20}z6
+{2,-34} .. {16,-25}z7
+{29,-44} .. {61,1}z8
+{61,0} .. {51,46}z9
+{50,44} .. {15,61}z10
+{6,23} .. {-1,24}z11
+);
+FuF (z12
+{0,-32} .. {-9,-32}z13
+{-31,-116} .. {-71,1}z14
+{-48,1} .. {-7,51}z15
+{-3,19} .. {0,1}z16
+{0,13} .. {0,0}z17
+{-1,39} .. {9,37}z18
+{12,47} .. {26,25}z19
+{29,27} .. {31,0}z20
+{43,-1} .. {12,-42}z21
+{6,-20} .. {0,-18}z22
+);
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(32,539FX#,643FY#,9FY#);
+"ev";
+z1=(447FX,425FY);
+z2=(427FX,353FY);
+z3=(416FX,314FY);
+z4=(313FX,121FY);
+z5=(220FX,41FY);
+z6=(186FX,73FY);
+z7=(197FX,131FY);
+z8=(325FX,641FY);
+z9=(322FX,643FY);
+z10=(177FX,602FY);
+z11=(174FX,587FY);
+z12=(197FX,588FY);
+z13=(224FX,560FY);
+z14=(221FX,538FY);
+z15=(117FX,131FY);
+z16=(107FX,57FY);
+z17=(133FX,-2FY);
+z18=(177FX,-10FY);
+z19=(316FX,84FY);
+z20=(396FX,222FY);
+z21=(339FX,0FY);
+z22=(533FX,0FY);
+z23=(540FX,28FY);
+z24=(425FX,28FY);
+z25=(527FX,425FY);
+FuF (z1
+-- z2
+-- z3
+{-19,-67} .. {-50,-62}z4
+{-43,-53} .. {-19,0}z5
+{-22,0} .. {-1,21}z6
+{0,11} .. {7,28}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{10,1} .. {5,0}z12
+{18,-2} .. {1,-16}z13
+{0,-6} .. {-2,-9}z14
+-- z15
+{-7,-29} .. {1,-20}z16
+{0,-29} .. {17,-10}z17
+{10,-5} .. {20,0}z18
+{44,0} .. {49,62}z19
+{35,44} .. {19,47}z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(127,418FX#,637FY#,7FY#);
+"question";
+z1=(524FX,536FY);
+z2=(458FX,623FY);
+z3=(384FX,637FY);
+z4=(265FX,600FY);
+z5=(196FX,503FY);
+z6=(192FX,473FY);
+z7=(194FX,458FY);
+z8=(228FX,443FY);
+z9=(259FX,455FY);
+z10=(275FX,483FY);
+z11=(266FX,519FY);
+z12=(257FX,553FY);
+z13=(295FX,591FY);
+z14=(360FX,609FY);
+z15=(437FX,530FY);
+z16=(432FX,490FY);
+z17=(378FX,373FY);
+z18=(325FX,295FY);
+z19=(284FX,225FY);
+z20=(259FX,155FY);
+z21=(275FX,155FY);
+z22=(305FX,218FY);
+z23=(325FX,247FY);
+z24=(344FX,271FY);
+z25=(377FX,303FY);
+z26=(423FX,346FY);
+z27=(484FX,417FY);
+z28=(517FX,484FY);
+z29=(524FX,536FY);
+z30=(293FX,54FY);
+z31=(284FX,76FY);
+z32=(252FX,92FY);
+z33=(213FX,76FY);
+z34=(189FX,40FY);
+z35=(187FX,26FY);
+z36=(195FX,5FY);
+z37=(228FX,-7FY);
+z38=(266FX,5FY);
+z39=(291FX,40FY);
+z40=(293FX,54FY);
+FuF (z1
+{-2,40} .. {-42,18}z2
+{-25,10} .. {-24,-1}z3
+{-43,0} .. {-37,-24}z4
+{-37,-25} .. {-9,-40}z5
+{-2,-13} .. {0,-7}z6
+{1,-7} .. {0,-4}z7
+{6,-11} .. {17,1}z8
+{13,0} .. {8,8}z9
+{9,9} .. {1,9}z10
+{2,13} .. {-8,11}z11
+{-8,16} .. {2,7}z12
+{5,14} .. {20,11}z13
+{22,13} .. {22,-1}z14
+{50,-1} .. {1,-52}z15
+{0,-12} .. {-4,-15}z16
+{-8,-37} .. {-27,-41}z17
+-- z18
+{-17,-24} .. {-11,-22}z19
+{-12,-26} .. {-4,-20}z20
+-- z21
+-- z22
+{11,16} .. {3,3}z23
+{11,14} .. {2,2}z24
+-- z25
+-- z26
+{24,23} .. {17,25}z27
+{18,26} .. {4,19}z28
+{5,22} .. {-1,13}z29
+);
+FuF (z30
+{-2,10} .. {-5,5}z31
+{-8,11} .. {-14,0}z32
+{-14,0} .. {-11,-11}z33
+{-12,-10} .. {-4,-14}z34
+{-1,-4} .. {0,-5}z35
+{1,-10} .. {4,-4}z36
+{9,-8} .. {13,0}z37
+{12,1} .. {13,7}z38
+{13,9} .. {4,14}z39
+{1,4} .. {0,5}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+ligtable 101:
+39=:22,
+118=:32;
+
+ligtable 69:
+39=:6;
+
+ligtable 117:
+39=:23;
+
+ligtable 116:
+39=:24,
+104=:24;
+
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+ligtable 100:
+122=:19;
+
+ligtable 74:
+39=:5;
+
+ligtable 115:
+104=:26;
+
+ligtable 83:
+104=:10,
+72=:10;
+
+ligtable 99:
+39=:29,
+104=:27;
+
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+ligtable 114:
+39=:28;
+
+ligtable 111:
+39=:31;
+
+ligtable 79:
+39=:15;
+
+ligtable 39:
+39=:34;
+
+ligtable 96:
+96=:92;
+
+ligtable 60:
+60=:60;
+
+ligtable 62:
+62=:62;
+
+ligtable 45:
+45=:123;
+
+ligtable 123:
+45=:125;
+
+ligtable 27:
+121 kern 67FX#;
+
+ligtable 26:
+121 kern 40FX#;
+
+ligtable 23:
+121 kern 40FX#;
+
+ligtable 20:
+121 kern 67FX#;
+
+ligtable 12:
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 9:
+81 kern -67FX#;
+
+ligtable 8:
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 4:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 124:
+25 kern -103FX#,
+122 kern -103FX#,
+121 kern -103FX#,
+119 kern -103FX#,
+118 kern -103FX#,
+117 kern -103FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -103FX#,
+115 kern -103FX#,
+28 kern -103FX#,
+114 kern -103FX#,
+113 kern -103FX#,
+30 kern -103FX#,
+112 kern -103FX#,
+31 kern -103FX#,
+111 kern -103FX#,
+109 kern -103FX#,
+108 kern -103FX#,
+106 kern -103FX#,
+20 kern -103FX#,
+103 kern -103FX#,
+102 kern -121FX#,
+19 kern -121FX#,
+100 kern -121FX#,
+21 kern -103FX#,
+27 kern -103FX#,
+99 kern -103FX#,
+98 kern -103FX#,
+23 kern -103FX#,
+97 kern -103FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -94FX#,
+85 kern -148FX#,
+12 kern -148FX#,
+82 kern -148FX#,
+81 kern -94FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -148FX#,
+79 kern -148FX#,
+78 kern 40FX#,
+74 kern -89FX#,
+72 kern 40FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -148FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -148FX#,
+7 kern -148FX#;
+
+ligtable 122:
+121 kern 67FX#;
+
+ligtable 118:
+121 kern 67FX#;
+
+ligtable 112:
+39=:30,
+104=:30,
+121 kern 40FX#;
+
+ligtable 108:
+121 kern 67FX#;
+
+ligtable 107:
+121 kern 40FX#;
+
+ligtable 106:
+39=:21,
+121 kern 40FX#;
+
+ligtable 103:
+39=:25,
+104=:20,
+121 kern 40FX#;
+
+ligtable 88:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 87:
+81 kern -67FX#;
+
+ligtable 86:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 85:
+39=:7,
+81 kern -67FX#;
+
+ligtable 82:
+39=:12,
+81 kern -67FX#;
+
+ligtable 80:
+39=:14,
+104=:14,
+72=:14,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 77:
+25 kern -76FX#,
+122 kern -76FX#,
+121 kern -76FX#,
+119 kern -76FX#,
+118 kern -76FX#,
+117 kern -76FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -76FX#,
+115 kern -76FX#,
+28 kern -76FX#,
+114 kern -76FX#,
+113 kern -76FX#,
+30 kern -76FX#,
+112 kern -76FX#,
+31 kern -76FX#,
+111 kern -76FX#,
+109 kern -76FX#,
+108 kern -76FX#,
+106 kern -76FX#,
+20 kern -76FX#,
+103 kern -76FX#,
+102 kern -67FX#,
+19 kern -67FX#,
+100 kern -67FX#,
+21 kern -76FX#,
+27 kern -76FX#,
+99 kern -76FX#,
+98 kern -76FX#,
+23 kern -76FX#,
+97 kern -76FX#,
+86 kern -76FX#,
+81 kern -67FX#,
+70 kern -76FX#;
+
+ligtable 76:
+86 kern -184FX#,
+10 kern -103FX#,
+83 kern -103FX#,
+14 kern -134FX#,
+80 kern -134FX#,
+78 kern -134FX#,
+77 kern -134FX#,
+75 kern -134FX#,
+72 kern -134FX#,
+4 kern -184FX#,
+71 kern -184FX#,
+70 kern -134FX#,
+3 kern -103FX#,
+68 kern -103FX#,
+65 kern -134FX#;
+
+ligtable 71:
+39=:9,
+104=:4,
+72=:4,
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 70:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 68:
+122=:3,
+90=:3,
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 63:
+25 kern -202FX#,
+122 kern -202FX#,
+121 kern -202FX#,
+119 kern -202FX#,
+118 kern -202FX#,
+117 kern -202FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -202FX#,
+115 kern -202FX#,
+28 kern -202FX#,
+114 kern -202FX#,
+113 kern -202FX#,
+30 kern -202FX#,
+112 kern -202FX#,
+31 kern -202FX#,
+111 kern -202FX#,
+109 kern -202FX#,
+108 kern -202FX#,
+106 kern -202FX#,
+20 kern -202FX#,
+103 kern -202FX#,
+102 kern -121FX#,
+19 kern -121FX#,
+100 kern -121FX#,
+21 kern -202FX#,
+27 kern -202FX#,
+99 kern -202FX#,
+98 kern -202FX#,
+23 kern -202FX#,
+97 kern -202FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -193FX#,
+85 kern -148FX#,
+12 kern -148FX#,
+82 kern -148FX#,
+81 kern -193FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -148FX#,
+79 kern -148FX#,
+78 kern 40FX#,
+74 kern -89FX#,
+72 kern 40FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -148FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -148FX#,
+7 kern -148FX#;
+
+ligtable 33:
+25 kern -139FX#,
+122 kern -139FX#,
+121 kern -139FX#,
+119 kern -139FX#,
+118 kern -139FX#,
+117 kern -139FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -139FX#,
+115 kern -139FX#,
+28 kern -139FX#,
+114 kern -139FX#,
+113 kern -139FX#,
+30 kern -139FX#,
+112 kern -139FX#,
+31 kern -139FX#,
+111 kern -139FX#,
+109 kern -139FX#,
+108 kern -139FX#,
+106 kern -139FX#,
+20 kern -139FX#,
+103 kern -139FX#,
+102 kern -121FX#,
+19 kern -121FX#,
+100 kern -121FX#,
+21 kern -139FX#,
+27 kern -139FX#,
+99 kern -139FX#,
+98 kern -139FX#,
+23 kern -139FX#,
+97 kern -139FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -130FX#,
+85 kern -148FX#,
+12 kern -148FX#,
+82 kern -148FX#,
+81 kern -130FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -148FX#,
+79 kern -148FX#,
+78 kern 40FX#,
+74 kern -89FX#,
+72 kern 40FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -148FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -148FX#,
+7 kern -148FX#;
+
+font_slant := 0.2500;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "artmi10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/artmr10.mf b/Master/texmf-dist/fonts/source/public/armenian/artmr10.mf
new file mode 100644
index 00000000000..2abaeac9d5d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/artmr10.mf
@@ -0,0 +1,7954 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 artmr10.mf (Armenian Times (Roman) 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,159FX#,753FY#,0FY#);
+"bacakanchakan";
+z1=(157FX,684FY);
+z2=(152FX,719FY);
+z3=(135FX,753FY);
+z4=(115FX,745FY);
+z5=(124FX,718FY);
+z6=(111FX,685FY);
+z7=(76FX,651FY);
+z8=(45FX,629FY);
+z9=(6FX,598FY);
+z10=(-20FX,525FY);
+z11=(-1FX,457FY);
+z12=(17FX,464FY);
+z13=(11FX,490FY);
+z14=(37FX,542FY);
+z15=(61FX,560FY);
+z16=(88FX,581FY);
+z17=(121FX,604FY);
+z18=(148FX,640FY);
+z19=(157FX,684FY);
+FuF (z1
+{0,13} .. {-3,10}z2
+{-5,14} .. {-6,9}z3
+-- z4
+{7,-10} .. {-1,-8}z5
+{0,-14} .. {-8,-8}z6
+-- z7
+-- z8
+-- z9
+{-18,-14} .. {1,-35}z10
+{0,-24} .. {12,-21}z11
+-- z12
+{-4,9} .. {0,8}z13
+{0,10} .. {18,25}z14
+{10,8} .. {6,4}z15
+-- z16
+-- z17
+{13,11} .. {5,14}z18
+{6,14} .. {-1,15}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(34,450FX#,624FY#,0FY#);
+"quotedblright";
+z1=(117FX,549FY);
+z2=(118FX,541FY);
+z3=(118FX,532FY);
+z4=(99FX,444FY);
+z5=(46FX,372FY);
+z6=(45FX,372FY);
+z7=(43FX,365FY);
+z8=(45FX,360FY);
+z9=(47FX,357FY);
+z10=(53FX,356FY);
+z11=(59FX,357FY);
+z12=(117FX,435FY);
+z13=(138FX,532FY);
+z14=(123FX,597FY);
+z15=(77FX,624FY);
+z16=(43FX,610FY);
+z17=(31FX,578FY);
+z18=(43FX,544FY);
+z19=(77FX,530FY);
+z20=(117FX,549FY);
+z21=(292FX,549FY);
+z22=(293FX,532FY);
+z23=(274FX,444FY);
+z24=(221FX,372FY);
+z25=(218FX,365FY);
+z26=(221FX,360FY);
+z27=(222FX,357FY);
+z28=(229FX,356FY);
+z29=(234FX,357FY);
+z30=(235FX,357FY);
+z31=(292FX,436FY);
+z32=(312FX,532FY);
+z33=(306FX,576FY);
+z34=(287FX,611FY);
+z35=(253FX,624FY);
+z36=(218FX,611FY);
+z37=(205FX,578FY);
+z38=(218FX,544FY);
+z39=(253FX,530FY);
+z40=(292FX,549FY);
+FuF (z1
+{0,-3} .. {1,-3}z2
+{0,-2} .. {0,-4}z3
+{0,-30} .. {-13,-28}z4
+{-12,-28} .. {-23,-20}z5
+-- z6
+{-1,-3} .. {0,-2}z7
+{0,-1} .. {1,-2}z8
+-- z9
+{3,-1} .. {1,0}z10
+{2,0} .. {2,1}z11
+{25,22} .. {14,30}z12
+{14,31} .. {0,34}z13
+{0,25} .. {-10,19}z14
+{-10,18} .. {-21,0}z15
+{-14,0} .. {-8,-10}z16
+{-8,-9} .. {0,-12}z17
+{0,-13} .. {8,-10}z18
+{9,-9} .. {14,0}z19
+{17,0} .. {9,13}z20
+);
+FuF (z21
+{0,-4} .. {0,-8}z22
+{0,-30} .. {-12,-28}z23
+{-13,-28} .. {-22,-20}z24
+{-2,-2} .. {0,-3}z25
+{0,-2} .. {2,-2}z26
+-- z27
+{3,-1} .. {2,0}z28
+{1,0} .. {3,1}z29
+-- z30
+{24,22} .. {14,31}z31
+{14,30} .. {0,34}z32
+{0,15} .. {-4,15}z33
+{-4,14} .. {-9,9}z34
+{-9,9} .. {-13,0}z35
+{-15,0} .. {-8,-9}z36
+{-9,-10} .. {0,-12}z37
+{0,-13} .. {8,-9}z38
+{9,-9} .. {15,0}z39
+{16,0} .. {10,13}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(35,750FX#,624FY#,174FY#);
+"numbersign";
+z1=(69FX,294FY);
+z2=(271FX,294FY);
+z3=(234FX,156FY);
+z4=(69FX,156FY);
+z5=(55FX,150FY);
+z6=(51FX,138FY);
+z7=(56FX,125FY);
+z8=(69FX,120FY);
+z9=(223FX,120FY);
+z10=(150FX,-152FY);
+z11=(164FX,-174FY);
+z12=(185FX,-162FY);
+z13=(260FX,120FY);
+z14=(429FX,120FY);
+z15=(356FX,-152FY);
+z16=(369FX,-174FY);
+z17=(392FX,-162FY);
+z18=(466FX,120FY);
+z19=(680FX,120FY);
+z20=(693FX,125FY);
+z21=(698FX,138FY);
+z22=(693FX,151FY);
+z23=(680FX,156FY);
+z24=(478FX,156FY);
+z25=(514FX,294FY);
+z26=(680FX,294FY);
+z27=(693FX,299FY);
+z28=(698FX,312FY);
+z29=(693FX,325FY);
+z30=(680FX,330FY);
+z31=(526FX,330FY);
+z32=(598FX,602FY);
+z33=(585FX,624FY);
+z34=(562FX,612FY);
+z35=(488FX,330FY);
+z36=(319FX,330FY);
+z37=(392FX,602FY);
+z38=(379FX,624FY);
+z39=(356FX,612FY);
+z40=(282FX,330FY);
+z41=(69FX,330FY);
+z42=(56FX,325FY);
+z43=(51FX,312FY);
+z44=(56FX,300FY);
+z45=(69FX,294FY);
+z46=(440FX,156FY);
+z47=(272FX,156FY);
+z48=(308FX,294FY);
+z49=(476FX,294FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-6,0} .. {-4,-4}z5
+{-3,-3} .. {0,-5}z6
+{0,-5} .. {4,-4}z7
+{3,-4} .. {5,0}z8
+-- z9
+-- z10
+{0,-12} .. {9,-2}z11
+{11,0} .. {2,9}z12
+-- z13
+-- z14
+-- z15
+{0,-12} .. {8,-2}z16
+{12,0} .. {2,9}z17
+-- z18
+-- z19
+{5,0} .. {4,4}z20
+{4,3} .. {0,5}z21
+{0,5} .. {-4,3}z22
+{-3,3} .. {-6,0}z23
+-- z24
+-- z25
+-- z26
+{5,0} .. {4,3}z27
+{4,4} .. {0,5}z28
+{0,5} .. {-4,3}z29
+{-4,4} .. {-5,0}z30
+-- z31
+-- z32
+{0,12} .. {-8,2}z33
+{-12,0} .. {-2,-9}z34
+-- z35
+-- z36
+-- z37
+{0,13} .. {-8,1}z38
+{-12,0} .. {-2,-9}z39
+-- z40
+-- z41
+{-5,0} .. {-3,-4}z42
+{-4,-4} .. {0,-5}z43
+{0,-5} .. {4,-3}z44
+{3,-4} .. {5,0}z45
+);
+FuF (z46
+-- z47
+-- z48
+-- z49
+);
+lbl (range 1 thru 49);
+endchar;
+
+beginchar(36,472FX#,677FY#,72FY#);
+"dollar";
+z1=(50FX,154FY);
+z2=(50FX,23FY);
+z3=(125FX,-1FY);
+z4=(213FX,-13FY);
+z5=(213FX,-72FY);
+z6=(242FX,-72FY);
+z7=(242FX,-13FY);
+z8=(368FX,35FY);
+z9=(424FX,155FY);
+z10=(391FX,250FY);
+z11=(242FX,370FY);
+z12=(242FX,604FY);
+z13=(341FX,560FY);
+z14=(376FX,456FY);
+z15=(394FX,456FY);
+z16=(394FX,594FY);
+z17=(306FX,626FY);
+z18=(242FX,635FY);
+z19=(242FX,677FY);
+z20=(213FX,677FY);
+z21=(213FX,635FY);
+z22=(100FX,591FY);
+z23=(50FX,484FY);
+z24=(75FX,399FY);
+z25=(213FX,286FY);
+z26=(213FX,17FY);
+z27=(70FX,154FY);
+z28=(213FX,389FY);
+z29=(122FX,514FY);
+z30=(213FX,603FY);
+z31=(242FX,17FY);
+z32=(242FX,266FY);
+z33=(314FX,211FY);
+z34=(351FX,132FY);
+z35=(295FX,34FY);
+z36=(242FX,17FY);
+FuF (z1
+-- z2
+{26,-10} .. {24,-6}z3
+{30,-7} .. {28,-1}z4
+-- z5
+-- z6
+-- z7
+{50,4} .. {34,28}z8
+{38,32} .. {0,48}z9
+{0,38} .. {-22,26}z10
+{-23,27} .. {-76,53}z11
+-- z12
+{45,-5} .. {21,-24}z13
+{20,-23} .. {3,-46}z14
+-- z15
+-- z16
+{-48,19} .. {-11,3}z17
+{-19,4} .. {-24,2}z18
+-- z19
+-- z20
+-- z21
+{-46,-6} .. {-29,-24}z22
+{-34,-27} .. {0,-44}z23
+{0,-33} .. {16,-23}z24
+{23,-33} .. {69,-42}z25
+-- z26
+{-89,9} .. {-6,82}z27
+);
+FuF (z28
+{-61,40} .. {0,43}z29
+{0,52} .. {61,7}z30
+);
+FuF (z31
+-- z32
+{36,-25} .. {12,-12}z33
+{25,-25} .. {0,-27}z34
+{0,-42} .. {-37,-23}z35
+{-12,-8} .. {-23,-4}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(37,786FX#,638FY#,25FY#);
+"percent";
+z1=(642FX,638FY);
+z2=(600FX,638FY);
+z3=(145FX,-25FY);
+z4=(186FX,-25FY);
+z5=(168FX,638FY);
+z6=(52FX,557FY);
+z7=(33FX,469FY);
+z8=(51FX,381FY);
+z9=(167FX,301FY);
+z10=(267FX,355FY);
+z11=(298FX,469FY);
+z12=(263FX,588FY);
+z13=(168FX,638FY);
+z14=(166FX,613FY);
+z15=(203FX,589FY);
+z16=(225FX,467FY);
+z17=(165FX,325FY);
+z18=(140FX,333FY);
+z19=(117FX,372FY);
+z20=(106FX,470FY);
+z21=(166FX,613FY);
+z22=(620FX,310FY);
+z23=(589FX,305FY);
+z24=(555FX,291FY);
+z25=(507FX,230FY);
+z26=(489FX,141FY);
+z27=(556FX,-6FY);
+z28=(622FX,-25FY);
+z29=(713FX,17FY);
+z30=(753FX,141FY);
+z31=(684FX,289FY);
+z32=(620FX,310FY);
+z33=(621FX,286FY);
+z34=(659FX,262FY);
+z35=(680FX,140FY);
+z36=(659FX,25FY);
+z37=(621FX,0FY);
+z38=(583FX,23FY);
+z39=(561FX,139FY);
+z40=(582FX,260FY);
+z41=(621FX,286FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+{-53,0} .. {-24,-54}z6
+{-13,-29} .. {0,-30}z7
+{1,-32} .. {11,-27}z8
+{23,-55} .. {54,1}z9
+{43,0} .. {24,36}z10
+{21,30} .. {0,46}z11
+{0,46} .. {-23,33}z12
+{-23,34} .. {-41,0}z13
+);
+FuF (z14
+{15,-1} .. {10,-16}z15
+{15,-24} .. {0,-57}z16
+{0,-95} .. {-40,0}z17
+{-10,0} .. {-7,6}z18
+{-12,10} .. {-5,16}z19
+{-6,21} .. {0,44}z20
+{1,96} .. {39,-1}z21
+);
+FuF (z22
+{-10,0} .. {-11,-4}z23
+{-11,-3} .. {-12,-6}z24
+{-21,-16} .. {-11,-25}z25
+{-13,-28} .. {0,-32}z26
+{1,-70} .. {44,-28}z27
+{21,-13} .. {23,0}z28
+{34,0} .. {26,28}z29
+{27,29} .. {0,53}z30
+{-1,71} .. {-45,28}z31
+{-23,14} .. {-19,0}z32
+);
+FuF (z33
+{16,-2} .. {10,-14}z34
+{15,-23} .. {-1,-58}z35
+{0,-56} .. {-14,-21}z36
+{-12,-17} .. {-13,0}z37
+{-16,0} .. {-10,15}z38
+{-15,23} .. {0,54}z39
+{1,60} .. {13,20}z40
+{11,17} .. {15,0}z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(38,700FX#,645FY#,20FY#);
+"ampersand";
+z1=(386FX,105FY);
+z2=(302FX,223FY);
+z3=(238FX,346FY);
+z4=(317FX,446FY);
+z5=(346FX,526FY);
+z6=(339FX,582FY);
+z7=(314FX,628FY);
+z8=(271FX,645FY);
+z9=(207FX,626FY);
+z10=(163FX,573FY);
+z11=(147FX,505FY);
+z12=(183FX,318FY);
+z13=(72FX,200FY);
+z14=(38FX,116FY);
+z15=(61FX,45FY);
+z16=(121FX,-3FY);
+z17=(200FX,-20FY);
+z18=(363FX,49FY);
+z19=(523FX,-20FY);
+z20=(612FX,18FY);
+z21=(648FX,109FY);
+z22=(625FX,109FY);
+z23=(611FX,57FY);
+z24=(574FX,20FY);
+z25=(523FX,7FY);
+z26=(400FX,88FY);
+z27=(455FX,162FY);
+z28=(511FX,253FY);
+z29=(541FX,302FY);
+z30=(586FX,345FY);
+z31=(653FX,360FY);
+z32=(653FX,388FY);
+z33=(564FX,385FY);
+z34=(455FX,388FY);
+z35=(455FX,360FY);
+z36=(510FX,343FY);
+z37=(520FX,320FY);
+z38=(515FX,302FY);
+z39=(491FX,264FY);
+z40=(386FX,105FY);
+z41=(112FX,144FY);
+z42=(151FX,255FY);
+z43=(191FX,297FY);
+z44=(250FX,188FY);
+z45=(346FX,65FY);
+z46=(204FX,7FY);
+z47=(138FX,48FY);
+z48=(112FX,144FY);
+z49=(324FX,526FY);
+z50=(299FX,456FY);
+z51=(230FX,368FY);
+z52=(203FX,526FY);
+z53=(222FX,595FY);
+z54=(271FX,624FY);
+z55=(300FX,611FY);
+z56=(318FX,576FY);
+z57=(324FX,526FY);
+FuF (z1
+{-23,31} .. {-32,48}z2
+{-26,39} .. {-17,43}z3
+{33,38} .. {19,29}z4
+{20,30} .. {0,24}z5
+{0,19} .. {-5,18}z6
+{-5,19} .. {-12,12}z7
+{-11,11} .. {-18,0}z8
+{-23,0} .. {-19,-13}z9
+{-19,-13} .. {-11,-22}z10
+{-11,-21} .. {0,-24}z11
+{0,-61} .. {24,-63}z12
+-- z13
+{-23,-25} .. {0,-31}z14
+{0,-26} .. {16,-21}z15
+{15,-20} .. {25,-12}z16
+{25,-11} .. {27,0}z17
+{59,0} .. {50,46}z18
+{50,-46} .. {57,0}z19
+{35,0} .. {25,25}z20
+{24,25} .. {0,35}z21
+-- z22
+{0,-19} .. {-10,-16}z23
+{-9,-15} .. {-16,-9}z24
+{-15,-9} .. {-19,0}z25
+{-35,0} .. {-48,54}z26
+{18,20} .. {19,30}z27
+{19,29} .. {19,31}z28
+-- z29
+{11,19} .. {19,10}z30
+{18,9} .. {26,0}z31
+-- z32
+{-29,-2} .. {-30,0}z33
+{-36,0} .. {-36,2}z34
+-- z35
+{25,0} .. {12,-11}z36
+{7,-6} .. {0,-9}z37
+{0,-7} .. {-3,-5}z38
+-- z39
+{-45,-72} .. {-28,-33}z40
+);
+FuF (z41
+{0,46} .. {26,28}z42
+-- z43
+{14,-32} .. {26,-40}z44
+{38,-58} .. {25,-25}z45
+{-45,-39} .. {-50,0}z46
+{-27,0} .. {-16,27}z47
+{-17,27} .. {0,37}z48
+);
+FuF (z49
+{0,-20} .. {-17,-27}z50
+{-16,-26} .. {-29,-32}z51
+{-18,53} .. {0,52}z52
+{0,27} .. {12,19}z53
+{13,20} .. {20,0}z54
+{11,0} .. {8,-9}z55
+{8,-8} .. {4,-15}z56
+{4,-15} .. {0,-18}z57
+);
+lbl (range 1 thru 57);
+endchar;
+
+beginchar(39,236FX#,624FY#,0FY#);
+"apatharc";
+z1=(175FX,535FY);
+z2=(155FX,597FY);
+z3=(98FX,624FY);
+z4=(57FX,607FY);
+z5=(43FX,570FY);
+z6=(102FX,523FY);
+z7=(114FX,524FY);
+z8=(125FX,526FY);
+z9=(133FX,524FY);
+z10=(138FX,513FY);
+z11=(60FX,413FY);
+z12=(69FX,395FY);
+z13=(141FX,454FY);
+z14=(175FX,535FY);
+FuF (z1
+{0,25} .. {-13,17}z2
+{-14,18} .. {-24,0}z3
+{-17,0} .. {-10,-12}z4
+{-9,-11} .. {0,-13}z5
+{1,-34} .. {39,3}z6
+-- z7
+-- z8
+-- z9
+{3,-3} .. {0,-4}z10
+{-2,-35} .. {-50,-31}z11
+-- z12
+{28,14} .. {20,26}z13
+{22,27} .. {0,27}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(40,391FX#,750FY#,250FY#);
+"parenleft";
+z1=(357FX,732FY);
+z2=(346FX,750FY);
+z3=(56FX,260FY);
+z4=(75FX,98FY);
+z5=(102FX,25FY);
+z6=(137FX,-43FY);
+z7=(243FX,-173FY);
+z8=(342FX,-250FY);
+z9=(357FX,-232FY);
+z10=(192FX,-15FY);
+z11=(157FX,261FY);
+z12=(202FX,542FY);
+z13=(357FX,732FY);
+FuF (z1
+-- z2
+{-195,-116} .. {2,-210}z3
+{0,-56} .. {12,-53}z4
+{13,-37} .. {5,-12}z5
+{9,-21} .. {15,-24}z6
+{30,-49} .. {40,-37}z7
+{43,-39} .. {23,-12}z8
+-- z9
+{-79,53} .. {-31,91}z10
+{-24,71} .. {1,113}z11
+{1,116} .. {29,71}z12
+{29,71} .. {74,56}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(41,391FX#,750FY#,250FY#);
+"parenright";
+z1=(33FX,-232FY);
+z2=(44FX,-250FY);
+z3=(262FX,-36FY);
+z4=(333FX,240FY);
+z5=(251FX,544FY);
+z6=(160FX,659FY);
+z7=(47FX,750FY);
+z8=(33FX,732FY);
+z9=(191FX,528FY);
+z10=(233FX,239FY);
+z11=(187FX,-43FY);
+z12=(33FX,-232FY);
+FuF (z1
+-- z2
+{98,60} .. {47,83}z3
+{49,86} .. {0,98}z4
+{-1,115} .. {-54,88}z5
+{-24,38} .. {-37,39}z6
+{-41,44} .. {-34,16}z7
+-- z8
+{79,-54} .. {27,-82}z9
+{27,-84} .. {0,-109}z10
+{0,-116} .. {-31,-72}z11
+{-31,-73} .. {-71,-53}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(42,472FX#,637FY#,0FY#);
+"asterisk";
+z1=(271FX,601FY);
+z2=(260FX,626FY);
+z3=(237FX,637FY);
+z4=(211FX,626FY);
+z5=(204FX,600FY);
+z6=(215FX,551FY);
+z7=(228FX,458FY);
+z8=(157FX,514FY);
+z9=(96FX,557FY);
+z10=(74FX,548FY);
+z11=(65FX,524FY);
+z12=(78FX,494FY);
+z13=(106FX,484FY);
+z14=(135FX,477FY);
+z15=(155FX,472FY);
+z16=(184FX,464FY);
+z17=(221FX,444FY);
+z18=(127FX,407FY);
+z19=(65FX,363FY);
+z20=(99FX,331FY);
+z21=(131FX,345FY);
+z22=(161FX,378FY);
+z23=(193FX,408FY);
+z24=(227FX,430FY);
+z25=(228FX,405FY);
+z26=(215FX,338FY);
+z27=(202FX,287FY);
+z28=(235FX,250FY);
+z29=(272FX,291FY);
+z30=(253FX,348FY);
+z31=(245FX,430FY);
+z32=(316FX,373FY);
+z33=(374FX,330FY);
+z34=(399FX,340FY);
+z35=(408FX,365FY);
+z36=(348FX,407FY);
+z37=(253FX,443FY);
+z38=(325FX,475FY);
+z39=(380FX,488FY);
+z40=(407FX,525FY);
+z41=(397FX,549FY);
+z42=(373FX,559FY);
+z43=(315FX,514FY);
+z44=(245FX,456FY);
+z45=(257FX,547FY);
+z46=(271FX,601FY);
+FuF (z1
+{-1,11} .. {-6,5}z2
+{-6,8} .. {-9,0}z3
+{-13,0} .. {-5,-8}z4
+{-5,-7} .. {0,-10}z5
+{0,-9} .. {8,-24}z6
+{8,-26} .. {0,-36}z7
+{-9,5} .. {-38,32}z8
+{-34,29} .. {-6,0}z9
+{-10,-2} .. {-4,-4}z10
+{-6,-9} .. {0,-7}z11
+{1,-16} .. {8,-4}z12
+{13,-5} .. {6,-2}z13
+{14,-3} .. {6,-2}z14
+-- z15
+{17,-4} .. {2,-1}z16
+-- z17
+{-20,-15} .. {-43,-10}z18
+{-41,-10} .. {0,-19}z19
+{0,-21} .. {23,0}z20
+{13,0} .. {8,9}z21
+-- z22
+{14,15} .. {7,4}z23
+-- z24
+-- z25
+{-1,-20} .. {-8,-25}z26
+{-9,-30} .. {1,-4}z27
+{1,-25} .. {21,1}z28
+{24,1} .. {0,25}z29
+-- z30
+{-5,16} .. {0,39}z31
+{21,-8} .. {26,-30}z32
+{25,-29} .. {13,0}z33
+{11,1} .. {6,6}z34
+{6,9} .. {0,7}z35
+{-1,20} .. {-39,9}z36
+{-39,8} .. {-24,16}z37
+{26,17} .. {22,5}z38
+-- z39
+{18,6} .. {0,18}z40
+{-1,11} .. {-6,6}z41
+{-7,6} .. {-9,0}z42
+{-9,-1} .. {-30,-29}z43
+{-33,-32} .. {-14,-7}z44
+{2,33} .. {6,28}z45
+{9,24} .. {0,12}z46
+);
+lbl (range 1 thru 46);
+endchar;
+
+beginchar(43,537FX#,479FY#,23FY#);
+"plus";
+z1=(522FX,197FY);
+z2=(522FX,257FY);
+z3=(300FX,257FY);
+z4=(300FX,479FY);
+z5=(240FX,479FY);
+z6=(240FX,257FY);
+z7=(19FX,257FY);
+z8=(19FX,197FY);
+z9=(240FX,197FY);
+z10=(240FX,-23FY);
+z11=(300FX,-23FY);
+z12=(300FX,197FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,236FX#,96FY#,133FY#);
+"comma";
+z1=(184FX,6FY);
+z2=(161FX,73FY);
+z3=(107FX,96FY);
+z4=(68FX,81FY);
+z5=(53FX,41FY);
+z6=(111FX,-6FY);
+z7=(123FX,-5FY);
+z8=(135FX,-2FY);
+z9=(142FX,-5FY);
+z10=(147FX,-15FY);
+z11=(119FX,-72FY);
+z12=(70FX,-115FY);
+z13=(78FX,-133FY);
+z14=(151FX,-75FY);
+z15=(184FX,6FY);
+FuF (z1
+{0,29} .. {-15,16}z2
+{-15,16} .. {-21,0}z3
+{-16,0} .. {-10,-10}z4
+{-10,-10} .. {0,-16}z5
+{1,-34} .. {38,3}z6
+-- z7
+-- z8
+-- z9
+{4,-2} .. {0,-4}z10
+{-1,-17} .. {-18,-20}z11
+{-14,-17} .. {-18,-12}z12
+-- z13
+{29,14} .. {20,25}z14
+{22,27} .. {0,27}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(45,423FX#,257FY#,0FY#);
+"miuthyun";
+z1=(54FX,197FY);
+z2=(369FX,197FY);
+z3=(369FX,257FY);
+z4=(54FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,212FX#,94FY#,11FY#);
+"period";
+z1=(154FX,41FY);
+z2=(140FX,79FY);
+z3=(105FX,94FY);
+z4=(73FX,78FY);
+z5=(59FX,40FY);
+z6=(75FX,3FY);
+z7=(105FX,-11FY);
+z8=(140FX,5FY);
+z9=(154FX,41FY);
+FuF (z1
+{0,16} .. {-9,9}z2
+{-10,10} .. {-14,-1}z3
+{-13,0} .. {-8,-11}z4
+{-9,-11} .. {0,-14}z5
+{1,-15} .. {10,-10}z6
+{10,-9} .. {10,0}z7
+{15,2} .. {9,9}z8
+{9,12} .. {0,12}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(47,262FX#,654FY#,13FY#);
+"slash";
+z1=(264FX,654FY);
+z2=(228FX,654FY);
+z3=(1FX,-13FY);
+z4=(39FX,-13FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,472FX#,637FY#,13FY#);
+"zero";
+z1=(449FX,313FY);
+z2=(397FX,535FY);
+z3=(236FX,637FY);
+z4=(73FX,535FY);
+z5=(23FX,312FY);
+z6=(74FX,87FY);
+z7=(236FX,-13FY);
+z8=(398FX,89FY);
+z9=(449FX,313FY);
+z10=(113FX,322FY);
+z11=(140FX,525FY);
+z12=(236FX,613FY);
+z13=(325FX,543FY);
+z14=(358FX,310FY);
+z15=(335FX,107FY);
+z16=(236FX,12FY);
+z17=(155FX,62FY);
+z18=(118FX,189FY);
+z19=(113FX,322FY);
+FuF (z1
+{0,80} .. {-34,68}z2
+{-34,68} .. {-73,0}z3
+{-75,0} .. {-34,-68}z4
+{-33,-68} .. {0,-81}z5
+{0,-83} .. {34,-67}z6
+{34,-67} .. {74,0}z7
+{74,0} .. {34,68}z8
+{34,70} .. {0,80}z9
+);
+FuF (z10
+{1,82} .. {18,54}z11
+{19,59} .. {45,0}z12
+{37,0} .. {22,-46}z13
+{23,-47} .. {-1,-108}z14
+{0,-71} .. {-15,-64}z15
+{-15,-64} .. {-51,0}z16
+{-36,0} .. {-18,34}z17
+{-19,36} .. {-6,49}z18
+{-4,30} .. {0,58}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(49,472FX#,637FY#,0FY#);
+"one";
+z1=(282FX,636FY);
+z2=(274FX,637FY);
+z3=(105FX,552FY);
+z4=(105FX,538FY);
+z5=(123FX,546FY);
+z6=(169FX,559FY);
+z7=(195FX,549FY);
+z8=(201FX,519FY);
+z9=(201FX,86FY);
+z10=(178FX,26FY);
+z11=(111FX,14FY);
+z12=(111FX,0FY);
+z13=(372FX,0FY);
+z14=(372FX,14FY);
+z15=(301FX,23FY);
+z16=(282FX,72FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{5,3} .. {7,2}z5
+{24,9} .. {6,0}z6
+{13,0} .. {4,-7}z7
+{4,-8} .. {0,-12}z8
+-- z9
+{0,-30} .. {-15,-10}z10
+{-12,-8} .. {-33,0}z11
+-- z12
+-- z13
+-- z14
+{-35,1} .. {-12,5}z15
+{-13,7} .. {0,26}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(50,472FX#,637FY#,0FY#);
+"two";
+z1=(400FX,468FY);
+z2=(351FX,589FY);
+z3=(228FX,637FY);
+z4=(29FX,450FY);
+z5=(49FX,445FY);
+z6=(185FX,568FY);
+z7=(283FX,529FY);
+z8=(319FX,432FY);
+z9=(282FX,306FY);
+z10=(199FX,193FY);
+z11=(28FX,12FY);
+z12=(28FX,0FY);
+z13=(396FX,0FY);
+z14=(448FX,129FY);
+z15=(436FX,134FY);
+z16=(407FX,93FY);
+z17=(353FX,72FY);
+z18=(121FX,72FY);
+z19=(286FX,245FY);
+z20=(369FX,353FY);
+z21=(400FX,468FY);
+FuF (z1
+{-1,48} .. {-32,32}z2
+{-33,32} .. {-49,0}z3
+{-109,-1} .. {-24,-124}z4
+-- z5
+{33,83} .. {58,-1}z6
+{41,-1} .. {24,-25}z7
+{24,-25} .. {0,-39}z8
+{0,-41} .. {-24,-42}z9
+{-25,-44} .. {-30,-31}z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{-14,-14} .. {-22,0}z17
+-- z18
+-- z19
+{33,35} .. {22,37}z20
+{21,35} .. {0,41}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(51,472FX#,637FY#,13FY#);
+"three";
+z1=(42FX,485FY);
+z2=(57FX,481FY);
+z3=(196FX,581FY);
+z4=(271FX,552FY);
+z5=(300FX,483FY);
+z6=(143FX,323FY);
+z7=(144FX,311FY);
+z8=(216FX,308FY);
+z9=(274FX,286FY);
+z10=(321FX,234FY);
+z11=(338FX,164FY);
+z12=(306FX,64FY);
+z13=(213FX,21FY);
+z14=(142FX,47FY);
+z15=(76FX,74FY);
+z16=(49FX,64FY);
+z17=(41FX,40FY);
+z18=(76FX,-2FY);
+z19=(148FX,-13FY);
+z20=(329FX,42FY);
+z21=(407FX,204FY);
+z22=(377FX,310FY);
+z23=(287FX,378FY);
+z24=(374FX,510FY);
+z25=(338FX,597FY);
+z26=(228FX,637FY);
+z27=(42FX,485FY);
+FuF (z1
+-- z2
+{34,67} .. {58,0}z3
+{30,0} .. {20,-20}z4
+{19,-19} .. {0,-27}z5
+{-1,-73} .. {-104,-34}z6
+-- z7
+-- z8
+{22,-5} .. {17,-10}z9
+{19,-11} .. {12,-24}z10
+{12,-25} .. {0,-22}z11
+{0,-40} .. {-22,-27}z12
+{-23,-30} .. {-39,1}z13
+{-16,0} .. {-31,17}z14
+{-33,18} .. {-12,0}z15
+{-12,-1} .. {-6,-6}z16
+{-6,-9} .. {1,-7}z17
+{0,-21} .. {23,-7}z18
+{25,-8} .. {23,0}z19
+{71,1} .. {50,36}z20
+{52,38} .. {-1,70}z21
+{0,40} .. {-20,30}z22
+{-19,30} .. {-41,15}z23
+{58,38} .. {0,50}z24
+{0,31} .. {-24,27}z25
+{-25,27} .. {-48,0}z26
+{-94,0} .. {-30,-102}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(52,472FX#,637FY#,0FY#);
+"four";
+z1=(349FX,637FY);
+z2=(308FX,637FY);
+z3=(12FX,218FY);
+z4=(12FX,158FY);
+z5=(276FX,158FY);
+z6=(276FX,0FY);
+z7=(349FX,0FY);
+z8=(349FX,158FY);
+z9=(445FX,158FY);
+z10=(445FX,218FY);
+z11=(349FX,218FY);
+z12=(49FX,218FY);
+z13=(275FX,542FY);
+z14=(275FX,218FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,472FX#,649FY#,13FY#);
+"five";
+z1=(413FX,642FY);
+z2=(405FX,649FY);
+z3=(386FX,629FY);
+z4=(360FX,624FY);
+z5=(164FX,624FY);
+z6=(60FX,399FY);
+z7=(63FX,389FY);
+z8=(251FX,337FY);
+z9=(336FX,188FY);
+z10=(304FX,76FY);
+z11=(205FX,22FY);
+z12=(180FX,29FY);
+z13=(141FX,51FY);
+z14=(67FX,80FY);
+z15=(30FX,44FY);
+z16=(67FX,-1FY);
+z17=(149FX,-13FY);
+z18=(329FX,52FY);
+z19=(402FX,218FY);
+z20=(390FX,309FY);
+z21=(340FX,385FY);
+z22=(259FX,438FY);
+z23=(131FX,470FY);
+z24=(171FX,550FY);
+z25=(356FX,550FY);
+z26=(385FX,575FY);
+FuF (z1
+-- z2
+-- z3
+{-5,-3} .. {-12,0}z4
+-- z5
+-- z6
+-- z7
+{69,0} .. {56,-34}z8
+{57,-35} .. {0,-65}z9
+{0,-43} .. {-21,-32}z10
+{-25,-36} .. {-42,0}z11
+{-9,1} .. {-7,3}z12
+{-12,6} .. {-14,9}z13
+{-31,20} .. {-19,-1}z14
+{-24,-1} .. {0,-24}z15
+{0,-22} .. {24,-8}z16
+{27,-8} .. {28,0}z17
+{71,1} .. {49,43}z18
+{48,42} .. {0,68}z19
+{0,37} .. {-8,23}z20
+{-9,25} .. {-24,26}z21
+{-20,22} .. {-34,13}z22
+{-35,14} .. {-51,9}z23
+-- z24
+-- z25
+{12,0} .. {7,17}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(54,472FX#,645FY#,13FY#);
+"six";
+z1=(423FX,630FY);
+z2=(420FX,645FY);
+z3=(145FX,534FY);
+z4=(32FX,271FY);
+z5=(78FX,80FY);
+z6=(240FX,-13FY);
+z7=(392FX,54FY);
+z8=(441FX,207FY);
+z9=(396FX,347FY);
+z10=(266FX,404FY);
+z11=(143FX,361FY);
+z12=(239FX,542FY);
+z13=(423FX,630FY);
+z14=(120FX,239FY);
+z15=(123FX,296FY);
+z16=(227FX,360FY);
+z17=(327FX,307FY);
+z18=(356FX,171FY);
+z19=(328FX,53FY);
+z20=(254FX,13FY);
+z21=(155FX,75FY);
+z22=(119FX,217FY);
+z23=(120FX,239FY);
+FuF (z1
+-- z2
+{-108,0} .. {-75,-73}z3
+{-76,-74} .. {1,-102}z4
+{0,-77} .. {30,-51}z5
+{37,-63} .. {71,1}z6
+{69,0} .. {33,44}z7
+{33,44} .. {0,58}z8
+{0,56} .. {-30,38}z9
+{-30,38} .. {-57,0}z10
+{-35,0} .. {-47,-29}z11
+{13,71} .. {51,50}z12
+{51,49} .. {71,10}z13
+);
+FuF (z14
+-- z15
+{10,43} .. {60,0}z16
+{46,0} .. {19,-35}z17
+{20,-36} .. {0,-55}z18
+{0,-53} .. {-19,-26}z19
+{-19,-27} .. {-30,0}z20
+{-44,1} .. {-23,41}z21
+{-24,42} .. {0,53}z22
+{0,7} .. {1,7}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(55,472FX#,624FY#,7FY#);
+"seven";
+z1=(424FX,624FY);
+z2=(75FX,624FY);
+z3=(54FX,571FY);
+z4=(19FX,486FY);
+z5=(35FX,478FY);
+z6=(83FX,538FY);
+z7=(140FX,554FY);
+z8=(349FX,554FY);
+z9=(162FX,-7FY);
+z10=(223FX,-7FY);
+z11=(424FX,609FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{18,30} .. {14,10}z6
+{14,11} .. {24,0}z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+lbl (range 1 thru 11);
+endchar;
+
+beginchar(56,472FX#,637FY#,13FY#);
+"eight";
+z1=(400FX,505FY);
+z2=(353FX,600FY);
+z3=(236FX,637FY);
+z4=(111FX,596FY);
+z5=(58FX,490FY);
+z6=(93FX,390FY);
+z7=(175FX,313FY);
+z8=(127FX,275FY);
+z9=(71FX,214FY);
+z10=(53FX,140FY);
+z11=(101FX,31FY);
+z12=(233FX,-13FY);
+z13=(378FX,37FY);
+z14=(420FX,143FY);
+z15=(392FX,236FY);
+z16=(274FX,350FY);
+z17=(400FX,505FY);
+z18=(128FX,517FY);
+z19=(157FX,586FY);
+z20=(229FX,611FY);
+z21=(306FX,583FY);
+z22=(335FX,508FY);
+z23=(311FX,426FY);
+z24=(246FX,367FY);
+z25=(162FX,434FY);
+z26=(128FX,517FY);
+z27=(124FX,148FY);
+z28=(141FX,225FY);
+z29=(200FX,294FY);
+z30=(287FX,230FY);
+z31=(348FX,120FY);
+z32=(320FX,42FY);
+z33=(244FX,13FY);
+z34=(156FX,52FY);
+z35=(124FX,148FY);
+FuF (z1
+{0,39} .. {-31,24}z2
+{-33,26} .. {-45,0}z3
+{-48,-1} .. {-35,-27}z4
+{-35,-26} .. {0,-44}z5
+{0,-39} .. {23,-27}z6
+{3,-3} .. {52,-48}z7
+-- z8
+{-24,-19} .. {-13,-22}z9
+{-12,-19} .. {0,-30}z10
+{0,-44} .. {32,-29}z11
+{33,-30} .. {55,0}z12
+{70,1} .. {27,33}z13
+{28,34} .. {-1,36}z14
+{0,33} .. {-18,29}z15
+{-18,30} .. {-60,46}z16
+{84,45} .. {-1,58}z17
+);
+FuF (z18
+{0,29} .. {18,17}z19
+{18,17} .. {29,0}z20
+{32,-1} .. {20,-19}z21
+{19,-18} .. {0,-31}z22
+{0,-32} .. {-16,-23}z23
+{-13,-19} .. {-30,-20}z24
+{-35,22} .. {-21,23}z25
+{-23,25} .. {1,30}z26
+);
+FuF (z27
+{0,27} .. {11,24}z28
+{10,24} .. {29,22}z29
+-- z30
+{41,-30} .. {0,-43}z31
+{0,-32} .. {-19,-20}z32
+{-19,-19} .. {-32,0}z33
+{-39,1} .. {-20,25}z34
+{-22,27} .. {1,37}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(57,472FX#,637FY#,21FY#);
+"nine";
+z1=(53FX,-2FY);
+z2=(56FX,-21FY);
+z3=(328FX,96FY);
+z4=(433FX,371FY);
+z5=(385FX,549FY);
+z6=(231FX,637FY);
+z7=(79FX,570FY);
+z8=(28FX,417FY);
+z9=(65FX,287FY);
+z10=(204FX,223FY);
+z11=(272FX,237FY);
+z12=(337FX,275FY);
+z13=(338FX,273FY);
+z14=(223FX,77FY);
+z15=(53FX,-2FY);
+z16=(341FX,385FY);
+z17=(341FX,363FY);
+z18=(342FX,345FY);
+z19=(327FX,298FY);
+z20=(282FX,273FY);
+z21=(239FX,264FY);
+z22=(155FX,300FY);
+z23=(115FX,454FY);
+z24=(119FX,500FY);
+z25=(218FX,611FY);
+z26=(310FX,550FY);
+z27=(341FX,385FY);
+FuF (z1
+-- z2
+{111,0} .. {70,78}z3
+{70,77} .. {0,106}z4
+{0,68} .. {-32,50}z5
+{-37,59} .. {-65,0}z6
+{-67,0} .. {-34,-45}z7
+{-34,-45} .. {0,-57}z8
+{0,-45} .. {25,-42}z9
+{25,-43} .. {67,1}z10
+{23,0} .. {22,9}z11
+{25,10} .. {18,15}z12
+-- z13
+{-24,-88} .. {-53,-43}z14
+{-53,-43} .. {-60,-9}z15
+);
+FuF (z16
+-- z17
+-- z18
+{-1,-23} .. {-9,-9}z19
+{-11,-10} .. {-19,-6}z20
+{-20,-7} .. {-9,0}z21
+{-31,1} .. {-25,23}z22
+{-27,25} .. {0,78}z23
+{0,16} .. {2,14}z24
+{12,75} .. {54,-1}z25
+{42,0} .. {19,-40}z26
+{21,-42} .. {0,-68}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(58,267FX#,440FY#,11FY#);
+"colon";
+z1=(184FX,41FY);
+z2=(167FX,80FY);
+z3=(130FX,96FY);
+z4=(92FX,78FY);
+z5=(77FX,41FY);
+z6=(93FX,4FY);
+z7=(130FX,-11FY);
+z8=(152FX,-6FY);
+z9=(184FX,41FY);
+z10=(184FX,386FY);
+z11=(167FX,424FY);
+z12=(130FX,440FY);
+z13=(92FX,424FY);
+z14=(77FX,385FY);
+z15=(93FX,348FY);
+z16=(130FX,334FY);
+z17=(152FX,338FY);
+z18=(168FX,349FY);
+z19=(184FX,386FY);
+FuF (z1
+{-1,15} .. {-11,11}z2
+{-10,11} .. {-15,0}z3
+{-17,-1} .. {-9,-12}z4
+{-10,-12} .. {0,-12}z5
+{1,-16} .. {10,-9}z6
+{12,-10} .. {13,0}z7
+{11,2} .. {4,2}z8
+{22,9} .. {-1,22}z9
+);
+FuF (z10
+{-1,15} .. {-11,11}z11
+{-10,11} .. {-15,-1}z12
+{-15,0} .. {-11,-10}z13
+{-10,-11} .. {0,-15}z14
+{1,-16} .. {10,-8}z15
+{11,-9} .. {14,0}z16
+{10,1} .. {5,2}z17
+{5,2} .. {5,5}z18
+{11,11} .. {0,14}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(59,262FX#,433FY#,133FY#);
+"semicolon";
+z1=(181FX,379FY);
+z2=(165FX,416FY);
+z3=(128FX,433FY);
+z4=(90FX,415FY);
+z5=(76FX,378FY);
+z6=(92FX,342FY);
+z7=(128FX,328FY);
+z8=(165FX,343FY);
+z9=(181FX,379FY);
+z10=(207FX,6FY);
+z11=(184FX,73FY);
+z12=(130FX,96FY);
+z13=(89FX,79FY);
+z14=(76FX,41FY);
+z15=(134FX,-6FY);
+z16=(146FX,-5FY);
+z17=(158FX,-2FY);
+z18=(165FX,-5FY);
+z19=(170FX,-15FY);
+z20=(143FX,-70FY);
+z21=(93FX,-115FY);
+z22=(101FX,-133FY);
+z23=(173FX,-76FY);
+z24=(207FX,6FY);
+FuF (z1
+{0,14} .. {-10,11}z2
+{-11,11} .. {-14,0}z3
+{-15,0} .. {-10,-12}z4
+{-9,-11} .. {0,-13}z5
+{1,-14} .. {10,-10}z6
+{11,-9} .. {12,0}z7
+{16,1} .. {9,9}z8
+{11,11} .. {0,13}z9
+);
+FuF (z10
+{0,29} .. {-15,16}z11
+{-15,15} .. {-21,0}z12
+{-17,0} .. {-10,-11}z13
+{-9,-12} .. {0,-14}z14
+{1,-34} .. {38,3}z15
+-- z16
+-- z17
+-- z18
+{4,-2} .. {0,-4}z19
+{-1,-17} .. {-17,-19}z20
+{-18,-20} .. {-16,-10}z21
+-- z22
+{27,13} .. {21,25}z23
+{23,27} .. {0,27}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(60,472FX#,392FY#,0FY#);
+"guillemotleft";
+z1=(430FX,41FY);
+z2=(378FX,125FY);
+z3=(309FX,212FY);
+z4=(363FX,285FY);
+z5=(426FX,372FY);
+z6=(429FX,384FY);
+z7=(420FX,392FY);
+z8=(402FX,378FY);
+z9=(360FX,338FY);
+z10=(221FX,214FY);
+z11=(250FX,186FY);
+z12=(283FX,158FY);
+z13=(344FX,102FY);
+z14=(416FX,32FY);
+z15=(427FX,34FY);
+z16=(430FX,41FY);
+z17=(249FX,41FY);
+z18=(197FX,125FY);
+z19=(127FX,212FY);
+z20=(182FX,285FY);
+z21=(225FX,345FY);
+z22=(244FX,372FY);
+z23=(248FX,384FY);
+z24=(239FX,392FY);
+z25=(221FX,378FY);
+z26=(179FX,338FY);
+z27=(40FX,214FY);
+z28=(69FX,186FY);
+z29=(102FX,158FY);
+z30=(163FX,102FY);
+z31=(235FX,32FY);
+z32=(245FX,33FY);
+z33=(249FX,41FY);
+FuF (z1
+{-1,14} .. {-34,42}z2
+-- z3
+-- z4
+-- z5
+{2,3} .. {0,5}z6
+{-2,4} .. {-4,1}z7
+{-9,-7} .. {-3,-2}z8
+{-16,-15} .. {-12,-12}z9
+{-39,-37} .. {-53,-46}z10
+-- z11
+-- z12
+{25,-22} .. {15,-15}z13
+-- z14
+{6,0} .. {1,1}z15
+{1,1} .. {1,4}z16
+);
+FuF (z17
+{-1,14} .. {-34,42}z18
+-- z19
+-- z20
+-- z21
+-- z22
+{3,4} .. {0,4}z23
+{-2,4} .. {-4,1}z24
+{-9,-7} .. {-3,-2}z25
+{-16,-15} .. {-12,-12}z26
+{-39,-37} .. {-53,-46}z27
+-- z28
+-- z29
+{22,-19} .. {19,-18}z30
+-- z31
+{6,0} .. {1,0}z32
+{2,2} .. {1,4}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(61,537FX#,414FY#,0FY#);
+"equal";
+z1=(21FX,359FY);
+z2=(520FX,359FY);
+z3=(520FX,414FY);
+z4=(21FX,414FY);
+z5=(21FX,208FY);
+z6=(520FX,208FY);
+z7=(520FX,263FY);
+z8=(21FX,263FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,472FX#,391FY#,0FY#);
+"guillemotright";
+z1=(432FX,210FY);
+z2=(403FX,237FY);
+z3=(369FX,265FY);
+z4=(341FX,290FY);
+z5=(308FX,321FY);
+z6=(237FX,391FY);
+z7=(227FX,391FY);
+z8=(222FX,382FY);
+z9=(274FX,298FY);
+z10=(344FX,211FY);
+z11=(289FX,139FY);
+z12=(245FX,77FY);
+z13=(227FX,51FY);
+z14=(223FX,40FY);
+z15=(233FX,31FY);
+z16=(248FX,44FY);
+z17=(292FX,85FY);
+z18=(251FX,210FY);
+z19=(222FX,237FY);
+z20=(188FX,265FY);
+z21=(160FX,290FY);
+z22=(126FX,321FY);
+z23=(56FX,391FY);
+z24=(45FX,391FY);
+z25=(41FX,382FY);
+z26=(93FX,298FY);
+z27=(163FX,211FY);
+z28=(107FX,139FY);
+z29=(64FX,77FY);
+z30=(45FX,51FY);
+z31=(42FX,40FY);
+z32=(52FX,31FY);
+z33=(67FX,44FY);
+z34=(111FX,85FY);
+FuF (z1
+-- z2
+-- z3
+{-5,4} .. {-14,13}z4
+{-15,14} .. {-7,7}z5
+-- z6
+{-6,0} .. {0,0}z7
+{-2,-2} .. {-1,-4}z8
+{1,-14} .. {33,-42}z9
+-- z10
+{-17,-20} .. {-20,-28}z11
+-- z12
+-- z13
+-- z14
+{2,-4} .. {5,-2}z15
+{7,6} .. {2,2}z16
+{18,17} .. {12,10}z17
+);
+FuF (z18
+-- z19
+-- z20
+{-5,4} .. {-13,13}z21
+{-20,18} .. {-3,2}z22
+-- z23
+{-7,0} .. {-1,0}z24
+{-1,-2} .. {-1,-4}z25
+{1,-14} .. {33,-42}z26
+-- z27
+{-18,-22} .. {-18,-26}z28
+-- z29
+-- z30
+-- z31
+{2,-4} .. {5,-2}z32
+{8,7} .. {2,2}z33
+{23,22} .. {6,5}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(63,218FX#,689FY#,0FY#);
+"paruyg";
+z1=(202FX,621FY);
+z2=(193FX,654FY);
+z3=(172FX,679FY);
+z4=(139FX,689FY);
+z5=(52FX,651FY);
+z6=(-13FX,577FY);
+z7=(-14FX,575FY);
+z8=(-31FX,543FY);
+z9=(-41FX,516FY);
+z10=(-56FX,456FY);
+z11=(-35FX,455FY);
+z12=(-15FX,514FY);
+z13=(12FX,562FY);
+z14=(51FX,596FY);
+z15=(97FX,614FY);
+z16=(135FX,572FY);
+z17=(121FX,536FY);
+z18=(97FX,515FY);
+z19=(88FX,513FY);
+z20=(78FX,514FY);
+z21=(76FX,498FY);
+z22=(87FX,497FY);
+z23=(148FX,520FY);
+z24=(187FX,564FY);
+z25=(202FX,621FY);
+FuF (z1
+{0,13} .. {-6,9}z2
+{-5,11} .. {-9,6}z3
+{-10,7} .. {-12,0}z4
+{-27,-1} .. {-31,-24}z5
+{-30,-24} .. {-12,-25}z6
+-- z7
+{-11,-21} .. {0,-1}z8
+{-5,-12} .. {-2,-6}z9
+{-9,-24} .. {-2,-16}z10
+-- z11
+{3,18} .. {10,21}z12
+{10,21} .. {8,11}z13
+{8,11} .. {18,12}z14
+{18,12} .. {13,0}z15
+{25,-5} .. {0,-23}z16
+{0,-14} .. {-9,-10}z17
+{-9,-11} .. {-7,-3}z18
+{-2,-1} .. {-4,0}z19
+{-4,1} .. {-3,0}z20
+-- z21
+-- z22
+{16,1} .. {24,14}z23
+{16,10} .. {10,20}z24
+{10,19} .. {0,19}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(64,869FX#,655FY#,204FY#);
+"at";
+z1=(648FX,441FY);
+z2=(576FX,431FY);
+z3=(561FX,380FY);
+z4=(533FX,428FY);
+z5=(482FX,444FY);
+z6=(387FX,406FY);
+z7=(276FX,280FY);
+z8=(228FX,121FY);
+z9=(249FX,49FY);
+z10=(311FX,14FY);
+z11=(493FX,145FY);
+z12=(484FX,77FY);
+z13=(555FX,14FY);
+z14=(676FX,52FY);
+z15=(775FX,180FY);
+z16=(809FX,339FY);
+z17=(769FX,500FY);
+z18=(648FX,618FY);
+z19=(480FX,655FY);
+z20=(260FX,595FY);
+z21=(102FX,431FY);
+z22=(45FX,204FY);
+z23=(96FX,-4FY);
+z24=(244FX,-152FY);
+z25=(446FX,-204FY);
+z26=(693FX,-127FY);
+z27=(846FX,79FY);
+z28=(819FX,79FY);
+z29=(673FX,-106FY);
+z30=(449FX,-175FY);
+z31=(266FX,-131FY);
+z32=(132FX,5FY);
+z33=(88FX,193FY);
+z34=(139FX,409FY);
+z35=(286FX,575FY);
+z36=(483FX,631FY);
+z37=(632FX,597FY);
+z38=(743FX,493FY);
+z39=(782FX,348FY);
+z40=(748FX,190FY);
+z41=(684FX,97FY);
+z42=(586FX,47FY);
+z43=(552FX,82FY);
+z44=(568FX,171FY);
+z45=(595FX,257FY);
+z46=(487FX,422FY);
+z47=(530FX,402FY);
+z48=(544FX,356FY);
+z49=(519FX,237FY);
+z50=(472FX,152FY);
+z51=(354FX,70FY);
+z52=(314FX,91FY);
+z53=(301FX,135FY);
+z54=(328FX,242FY);
+z55=(417FX,386FY);
+z56=(487FX,422FY);
+FuF (z1
+-- z2
+-- z3
+{-5,22} .. {-14,10}z4
+{-14,11} .. {-20,0}z5
+{-29,0} .. {-35,-25}z6
+{-43,-32} .. {-31,-53}z7
+{-32,-55} .. {0,-50}z8
+{0,-27} .. {14,-21}z9
+{15,-24} .. {26,0}z10
+{50,1} .. {72,87}z11
+{-6,-29} .. {0,-16}z12
+{1,-42} .. {46,1}z13
+{42,0} .. {38,25}z14
+{41,26} .. {25,59}z15
+{23,53} .. {0,53}z16
+{0,57} .. {-27,50}z17
+{-27,52} .. {-53,27}z18
+{-50,25} .. {-62,0}z19
+{-79,0} .. {-68,-40}z20
+{-68,-40} .. {-37,-69}z21
+{-38,-70} .. {0,-82}z22
+{0,-76} .. {34,-63}z23
+{35,-63} .. {64,-36}z24
+{61,-34} .. {73,0}z25
+{92,0} .. {73,51}z26
+{73,51} .. {29,86}z27
+-- z28
+{-34,-79} .. {-63,-44}z29
+{-65,-46} .. {-84,0}z30
+{-66,0} .. {-56,29}z31
+{-58,31} .. {-31,60}z32
+{-29,56} .. {0,70}z33
+{0,75} .. {34,69}z34
+{36,72} .. {62,39}z35
+{61,38} .. {71,0}z36
+{55,0} .. {45,-23}z37
+{48,-24} .. {25,-45}z38
+{26,-45} .. {0,-52}z39
+{-1,-56} .. {-22,-50}z40
+{-16,-35} .. {-27,-27}z41
+{-34,-34} .. {-33,1}z42
+{-23,0} .. {1,23}z43
+{0,21} .. {11,38}z44
+{9,29} .. {8,28}z45
+);
+FuF (z46
+{17,0} .. {11,-14}z47
+{10,-12} .. {0,-18}z48
+{-1,-31} .. {-17,-48}z49
+{-10,-29} .. {-21,-27}z50
+{-43,-55} .. {-36,0}z51
+{-17,0} .. {-10,14}z52
+{-9,12} .. {0,17}z53
+{1,28} .. {18,44}z54
+{25,61} .. {35,35}z55
+{23,24} .. {23,0}z56
+);
+lbl (range 1 thru 56);
+endchar;
+
+beginchar(65,691FX#,624FY#,25FY#);
+"A";
+z1=(680FX,0FY);
+z2=(673FX,21FY);
+z3=(654FX,18FY);
+z4=(547FX,104FY);
+z5=(581FX,245FY);
+z6=(581FX,523FY);
+z7=(599FX,591FY);
+z8=(666FX,607FY);
+z9=(666FX,624FY);
+z10=(399FX,624FY);
+z11=(399FX,607FY);
+z12=(472FX,591FY);
+z13=(485FX,523FY);
+z14=(485FX,337FY);
+z15=(525FX,307FY);
+z16=(544FX,243FY);
+z17=(523FX,135FY);
+z18=(432FX,185FY);
+z19=(335FX,139FY);
+z20=(341FX,122FY);
+z21=(379FX,132FY);
+z22=(430FX,111FY);
+z23=(467FX,59FY);
+z24=(341FX,19FY);
+z25=(194FX,252FY);
+z26=(194FX,523FY);
+z27=(212FX,589FY);
+z28=(280FX,607FY);
+z29=(280FX,624FY);
+z30=(13FX,624FY);
+z31=(13FX,607FY);
+z32=(84FX,589FY);
+z33=(98FX,523FY);
+z34=(98FX,258FY);
+z35=(161FX,57FY);
+z36=(340FX,-13FY);
+z37=(432FX,4FY);
+z38=(485FX,33FY);
+z39=(599FX,-25FY);
+z40=(680FX,0FY);
+FuF (z1
+{-3,9} .. {-1,5}z2
+{-6,-2} .. {-7,0}z3
+{-42,0} .. {-29,57}z4
+{23,33} .. {0,61}z5
+-- z6
+{0,34} .. {12,11}z7
+{11,11} .. {34,0}z8
+-- z9
+-- z10
+-- z11
+{39,0} .. {10,-10}z12
+{8,-9} .. {0,-36}z13
+-- z14
+{15,-4} .. {12,-16}z15
+{13,-18} .. {0,-24}z16
+{0,-48} .. {-14,-24}z17
+{-24,33} .. {-37,0}z18
+{-42,0} .. {-23,-30}z19
+-- z20
+{13,7} .. {12,0}z21
+{20,0} .. {15,-14}z22
+{8,-8} .. {17,-27}z23
+{-29,-27} .. {-55,0}z24
+{-98,0} .. {0,155}z25
+-- z26
+{0,33} .. {12,12}z27
+{12,12} .. {34,0}z28
+-- z29
+-- z30
+-- z31
+{37,0} .. {10,-12}z32
+{9,-9} .. {0,-34}z33
+-- z34
+{0,-87} .. {42,-47}z35
+{43,-47} .. {77,0}z36
+{31,0} .. {31,12}z37
+{23,9} .. {12,11}z38
+{29,-39} .. {47,0}z39
+{28,0} .. {26,17}z40
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(66,654FX#,637FY#,0FY#);
+"B";
+z1=(607FX,134FY);
+z2=(607FX,166FY);
+z3=(578FX,215FY);
+z4=(473FX,237FY);
+z5=(194FX,237FY);
+z6=(194FX,373FY);
+z7=(341FX,601FY);
+z8=(450FX,548FY);
+z9=(485FX,379FY);
+z10=(485FX,315FY);
+z11=(581FX,315FY);
+z12=(581FX,366FY);
+z13=(515FX,569FY);
+z14=(340FX,637FY);
+z15=(168FX,568FY);
+z16=(98FX,366FY);
+z17=(98FX,102FY);
+z18=(82FX,34FY);
+z19=(13FX,18FY);
+z20=(13FX,0FY);
+z21=(280FX,0FY);
+z22=(280FX,18FY);
+z23=(211FX,34FY);
+z24=(194FX,102FY);
+z25=(194FX,200FY);
+z26=(432FX,200FY);
+z27=(485FX,157FY);
+z28=(485FX,134FY);
+FuF (z1
+-- z2
+{0,20} .. {-20,12}z3
+{-24,15} .. {-46,0}z4
+-- z5
+-- z6
+{0,152} .. {98,0}z7
+{50,0} .. {23,-35}z8
+{23,-36} .. {0,-77}z9
+-- z10
+-- z11
+-- z12
+{0,88} .. {-44,47}z13
+{-42,46} .. {-75,0}z14
+{-70,0} .. {-44,-46}z15
+{-47,-49} .. {0,-86}z16
+-- z17
+{0,-35} .. {-11,-10}z18
+{-12,-11} .. {-35,0}z19
+-- z20
+-- z21
+-- z22
+{-35,0} .. {-11,11}z23
+{-11,11} .. {0,35}z24
+-- z25
+-- z26
+{35,0} .. {0,-28}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(67,636FX#,635FY#,13FY#);
+"C";
+z1=(588FX,210FY);
+z2=(397FX,420FY);
+z3=(501FX,517FY);
+z4=(451FX,602FY);
+z5=(323FX,635FY);
+z6=(197FX,599FY);
+z7=(144FX,515FY);
+z8=(176FX,447FY);
+z9=(248FX,418FY);
+z10=(121FX,374FY);
+z11=(55FX,289FY);
+z12=(167FX,289FY);
+z13=(321FX,396FY);
+z14=(490FX,204FY);
+z15=(444FX,74FY);
+z16=(326FX,23FY);
+z17=(210FX,70FY);
+z18=(158FX,175FY);
+z19=(54FX,175FY);
+z20=(139FX,39FY);
+z21=(326FX,-13FY);
+z22=(513FX,54FY);
+z23=(588FX,210FY);
+z24=(405FX,517FY);
+z25=(321FX,433FY);
+z26=(262FX,456FY);
+z27=(240FX,515FY);
+z28=(264FX,577FY);
+z29=(321FX,598FY);
+z30=(405FX,517FY);
+FuF (z1
+{-1,115} .. {-126,25}z2
+{69,18} .. {0,47}z3
+{0,34} .. {-33,22}z4
+{-33,22} .. {-52,0}z5
+{-49,0} .. {-35,-24}z6
+{-35,-23} .. {0,-32}z7
+{0,-27} .. {21,-18}z8
+{20,-16} .. {28,-3}z9
+{-55,-9} .. {-30,-20}z10
+{-29,-20} .. {-15,-37}z11
+-- z12
+{26,71} .. {77,0}z13
+{113,0} .. {0,-128}z14
+{0,-52} .. {-30,-34}z15
+{-31,-34} .. {-48,0}z16
+{-46,0} .. {-32,31}z17
+{-31,29} .. {-3,41}z18
+-- z19
+{7,-55} .. {50,-36}z20
+{50,-35} .. {75,0}z21
+{72,0} .. {52,45}z22
+{50,45} .. {0,60}z23
+);
+FuF (z24
+{0,-56} .. {-56,0}z25
+{-24,0} .. {-15,15}z26
+{-15,15} .. {0,24}z27
+{1,27} .. {15,15}z28
+{15,14} .. {23,0}z29
+{56,0} .. {0,-54}z30
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(68,685FX#,637FY#,0FY#);
+"D";
+z1=(693FX,136FY);
+z2=(693FX,168FY);
+z3=(546FX,237FY);
+z4=(513FX,237FY);
+z5=(513FX,366FY);
+z6=(448FX,569FY);
+z7=(271FX,637FY);
+z8=(94FX,566FY);
+z9=(30FX,366FY);
+z10=(30FX,315FY);
+z11=(126FX,315FY);
+z12=(126FX,412FY);
+z13=(166FX,553FY);
+z14=(270FX,601FY);
+z15=(417FX,373FY);
+z16=(417FX,102FY);
+z17=(397FX,33FY);
+z18=(331FX,19FY);
+z19=(331FX,0FY);
+z20=(598FX,0FY);
+z21=(598FX,18FY);
+z22=(529FX,34FY);
+z23=(513FX,102FY);
+z24=(513FX,200FY);
+z25=(526FX,200FY);
+z26=(571FX,158FY);
+z27=(571FX,136FY);
+FuF (z1
+-- z2
+{0,46} .. {-98,0}z3
+-- z4
+-- z5
+{0,88} .. {-44,47}z6
+{-43,45} .. {-76,0}z7
+{-75,0} .. {-43,-48}z8
+{-42,-47} .. {0,-86}z9
+-- z10
+-- z11
+-- z12
+{0,61} .. {27,34}z13
+{25,32} .. {44,0}z14
+{98,0} .. {0,-152}z15
+-- z16
+{0,-35} .. {-13,-11}z17
+{-11,-9} .. {-33,0}z18
+-- z19
+-- z20
+-- z21
+{-35,0} .. {-11,11}z22
+{-11,11} .. {0,34}z23
+-- z24
+-- z25
+{30,0} .. {0,-28}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(69,636FX#,624FY#,13FY#);
+"E";
+z1=(607FX,315FY);
+z2=(607FX,349FY);
+z3=(473FX,425FY);
+z4=(194FX,425FY);
+z5=(194FX,523FY);
+z6=(211FX,590FY);
+z7=(280FX,607FY);
+z8=(280FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,607FY);
+z11=(83FX,589FY);
+z12=(98FX,523FY);
+z13=(98FX,258FY);
+z14=(166FX,58FY);
+z15=(340FX,-13FY);
+z16=(513FX,51FY);
+z17=(581FX,211FY);
+z18=(581FX,224FY);
+z19=(485FX,224FY);
+z20=(485FX,213FY);
+z21=(453FX,80FY);
+z22=(341FX,24FY);
+z23=(230FX,79FY);
+z24=(194FX,252FY);
+z25=(194FX,387FY);
+z26=(432FX,387FY);
+z27=(485FX,339FY);
+z28=(485FX,315FY);
+FuF (z1
+-- z2
+{0,50} .. {-89,0}z3
+-- z4
+-- z5
+{0,34} .. {11,11}z6
+{12,11} .. {34,0}z7
+-- z8
+-- z9
+-- z10
+{36,-1} .. {10,-11}z11
+{10,-11} .. {0,-33}z12
+-- z13
+{0,-85} .. {45,-48}z14
+{43,-47} .. {73,0}z15
+{70,0} .. {45,43}z16
+{45,42} .. {0,65}z17
+-- z18
+-- z19
+-- z20
+{0,-56} .. {-21,-33}z21
+{-25,-37} .. {-50,0}z22
+{-50,0} .. {-24,37}z23
+{-24,36} .. {0,79}z24
+-- z25
+-- z26
+{35,0} .. {0,-32}z27
+-- z28
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(70,722FX#,624FY#,8FY#);
+"F";
+z1=(699FX,212FY);
+z2=(636FX,372FY);
+z3=(422FX,436FY);
+z4=(422FX,541FY);
+z5=(438FX,594FY);
+z6=(504FX,607FY);
+z7=(504FX,624FY);
+z8=(326FX,624FY);
+z9=(124FX,512FY);
+z10=(188FX,421FY);
+z11=(326FX,402FY);
+z12=(326FX,29FY);
+z13=(147FX,210FY);
+z14=(147FX,287FY);
+z15=(51FX,287FY);
+z16=(51FX,208FY);
+z17=(138FX,58FY);
+z18=(374FX,-8FY);
+z19=(616FX,60FY);
+z20=(699FX,212FY);
+z21=(326FX,439FY);
+z22=(237FX,460FY);
+z23=(216FX,517FY);
+z24=(326FX,588FY);
+z25=(602FX,210FY);
+z26=(422FX,29FY);
+z27=(422FX,399FY);
+z28=(602FX,210FY);
+FuF (z1
+{0,68} .. {-42,38}z2
+{-48,42} .. {-95,0}z3
+-- z4
+{0,27} .. {10,9}z5
+{11,8} .. {33,0}z6
+-- z7
+-- z8
+{-134,0} .. {0,-75}z9
+{0,-43} .. {42,-17}z10
+{31,-13} .. {61,0}z11
+-- z12
+{-119,9} .. {0,111}z13
+-- z14
+-- z15
+-- z16
+{0,-58} .. {58,-42}z17
+{62,-44} .. {96,0}z18
+{100,0} .. {61,46}z19
+{55,41} .. {0,60}z20
+);
+FuF (z21
+{-43,0} .. {-17,14}z22
+{-14,11} .. {0,27}z23
+{0,47} .. {73,0}z24
+);
+FuF (z25
+{-1,-114} .. {-119,-6}z26
+-- z27
+{122,0} .. {-2,-126}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(71,701FX#,637FY#,0FY#);
+"G";
+z1=(704FX,136FY);
+z2=(704FX,168FY);
+z3=(663FX,218FY);
+z4=(557FX,237FY);
+z5=(517FX,237FY);
+z6=(517FX,380FY);
+z7=(453FX,573FY);
+z8=(277FX,637FY);
+z9=(99FX,574FY);
+z10=(30FX,414FY);
+z11=(100FX,260FY);
+z12=(288FX,200FY);
+z13=(420FX,200FY);
+z14=(420FX,93FY);
+z15=(403FX,32FY);
+z16=(332FX,18FY);
+z17=(332FX,0FY);
+z18=(596FX,0FY);
+z19=(596FX,18FY);
+z20=(531FX,31FY);
+z21=(517FX,90FY);
+z22=(517FX,200FY);
+z23=(533FX,200FY);
+z24=(582FX,158FY);
+z25=(582FX,136FY);
+z26=(420FX,237FY);
+z27=(288FX,237FY);
+z28=(169FX,286FY);
+z29=(128FX,413FY);
+z30=(171FX,554FY);
+z31=(277FX,601FY);
+z32=(382FX,553FY);
+z33=(420FX,426FY);
+FuF (z1
+-- z2
+{0,21} .. {-28,13}z3
+{-27,12} .. {-44,0}z4
+-- z5
+-- z6
+{0,85} .. {-43,44}z7
+{-41,43} .. {-76,0}z8
+{-72,0} .. {-46,-42}z9
+{-46,-43} .. {1,-64}z10
+{0,-64} .. {46,-39}z11
+{48,-40} .. {78,0}z12
+-- z13
+-- z14
+{0,-31} .. {-12,-9}z15
+{-11,-9} .. {-36,0}z16
+-- z17
+-- z18
+-- z19
+{-34,0} .. {-10,9}z20
+{-10,9} .. {0,31}z21
+-- z22
+-- z23
+{32,0} .. {0,-28}z24
+-- z25
+);
+FuF (z26
+-- z27
+{-51,0} .. {-29,33}z28
+{-27,32} .. {0,53}z29
+{1,61} .. {28,33}z30
+{27,31} .. {44,0}z31
+{45,0} .. {25,-32}z32
+{26,-32} .. {0,-53}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(72,558FX#,693FY#,19FY#);
+"H";
+z1=(545FX,656FY);
+z2=(545FX,693FY);
+z3=(424FX,693FY);
+z4=(424FX,663FY);
+z5=(375FX,624FY);
+z6=(45FX,624FY);
+z7=(0FX,584FY);
+z8=(23FX,535FY);
+z9=(425FX,128FY);
+z10=(481FX,61FY);
+z11=(496FX,8FY);
+z12=(496FX,-19FY);
+z13=(525FX,-19FY);
+z14=(525FX,67FY);
+z15=(436FX,255FY);
+z16=(137FX,557FY);
+z17=(127FX,575FY);
+z18=(146FX,588FY);
+z19=(401FX,588FY);
+z20=(497FX,606FY);
+z21=(545FX,656FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-26} .. {-33,0}z5
+-- z6
+{-30,0} .. {0,-27}z7
+{0,-17} .. {15,-15}z8
+-- z9
+{28,-28} .. {10,-17}z10
+{9,-16} .. {0,-19}z11
+-- z12
+-- z13
+-- z14
+{0,65} .. {-59,60}z15
+-- z16
+{-7,7} .. {0,5}z17
+{0,8} .. {13,0}z18
+-- z19
+{35,0} .. {29,12}z20
+{32,13} .. {0,20}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(73,624FX#,624FY#,0FY#);
+"I";
+z1=(581FX,158FY);
+z2=(581FX,210FY);
+z3=(519FX,410FY);
+z4=(340FX,481FY);
+z5=(194FX,441FY);
+z6=(194FX,523FY);
+z7=(210FX,590FY);
+z8=(280FX,606FY);
+z9=(280FX,624FY);
+z10=(13FX,624FY);
+z11=(13FX,607FY);
+z12=(84FX,590FY);
+z13=(98FX,523FY);
+z14=(98FX,102FY);
+z15=(81FX,31FY);
+z16=(13FX,18FY);
+z17=(13FX,0FY);
+z18=(280FX,0FY);
+z19=(280FX,19FY);
+z20=(210FX,34FY);
+z21=(194FX,102FY);
+z22=(194FX,278FY);
+z23=(341FX,444FY);
+z24=(485FX,245FY);
+z25=(485FX,158FY);
+FuF (z1
+-- z2
+{0,86} .. {-41,47}z3
+{-42,47} .. {-78,0}z4
+{-53,0} .. {-44,-27}z5
+-- z6
+{0,34} .. {10,10}z7
+{11,10} .. {36,0}z8
+-- z9
+-- z10
+-- z11
+{38,0} .. {10,-11}z12
+{9,-10} .. {0,-35}z13
+-- z14
+{0,-37} .. {-11,-10}z15
+{-9,-9} .. {-36,0}z16
+-- z17
+-- z18
+-- z19
+{-37,-1} .. {-10,11}z20
+{-11,10} .. {0,35}z21
+-- z22
+{0,111} .. {98,0}z23
+{96,0} .. {0,-133}z24
+-- z25
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(74,671FX#,637FY#,95FY#);
+"J";
+z1=(604FX,375FY);
+z2=(527FX,569FY);
+z3=(347FX,637FY);
+z4=(147FX,560FY);
+z5=(76FX,403FY);
+z6=(118FX,299FY);
+z7=(233FX,243FY);
+z8=(349FX,142FY);
+z9=(336FX,93FY);
+z10=(257FX,54FY);
+z11=(174FX,36FY);
+z12=(174FX,122FY);
+z13=(74FX,122FY);
+z14=(74FX,-95FY);
+z15=(174FX,-95FY);
+z16=(174FX,0FY);
+z17=(413FX,0FY);
+z18=(470FX,-15FY);
+z19=(493FX,-58FY);
+z20=(493FX,-95FY);
+z21=(601FX,-95FY);
+z22=(601FX,-47FY);
+z23=(445FX,37FY);
+z24=(290FX,37FY);
+z25=(333FX,49FY);
+z26=(523FX,185FY);
+z27=(604FX,375FY);
+z28=(299FX,590FY);
+z29=(458FX,525FY);
+z30=(509FX,350FY);
+z31=(466FX,206FY);
+z32=(385FX,120FY);
+z33=(400FX,174FY);
+z34=(364FX,266FY);
+z35=(263FX,325FY);
+z36=(179FX,373FY);
+z37=(153FX,444FY);
+z38=(198FX,554FY);
+z39=(299FX,590FY);
+FuF (z1
+{0,81} .. {-52,49}z2
+{-48,46} .. {-72,0}z3
+{-80,0} .. {-53,-52}z4
+{-47,-46} .. {0,-59}z5
+{0,-39} .. {28,-30}z6
+{30,-31} .. {47,-6}z7
+{78,-11} .. {0,-57}z8
+{0,-20} .. {-9,-12}z9
+{-20,-15} .. {-33,-12}z10
+{-33,-12} .. {-22,0}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{23,0} .. {15,-10}z18
+{16,-10} .. {0,-18}z19
+-- z20
+-- z21
+-- z22
+{0,56} .. {-104,0}z23
+-- z24
+-- z25
+{76,33} .. {50,58}z26
+{54,61} .. {0,65}z27
+);
+FuF (z28
+{70,0} .. {36,-44}z29
+{34,-41} .. {0,-75}z30
+{0,-49} .. {-29,-47}z31
+{-24,-38} .. {-30,-20}z32
+{10,16} .. {0,20}z33
+{0,33} .. {-24,28}z34
+{-25,31} .. {-42,9}z35
+{-36,8} .. {-20,24}z36
+{-17,20} .. {0,27}z37
+{0,46} .. {30,27}z38
+{28,24} .. {39,0}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(75,677FX#,624FY#,0FY#);
+"K";
+z1=(666FX,0FY);
+z2=(666FX,18FY);
+z3=(598FX,35FY);
+z4=(581FX,102FY);
+z5=(581FX,322FY);
+z6=(597FX,392FY);
+z7=(666FX,407FY);
+z8=(666FX,425FY);
+z9=(399FX,425FY);
+z10=(399FX,406FY);
+z11=(469FX,390FY);
+z12=(485FX,322FY);
+z13=(485FX,295FY);
+z14=(442FX,207FY);
+z15=(338FX,180FY);
+z16=(194FX,379FY);
+z17=(194FX,523FY);
+z18=(211FX,590FY);
+z19=(280FX,607FY);
+z20=(280FX,624FY);
+z21=(13FX,624FY);
+z22=(13FX,606FY);
+z23=(82FX,593FY);
+z24=(98FX,523FY);
+z25=(98FX,415FY);
+z26=(161FX,213FY);
+z27=(338FX,143FY);
+z28=(485FX,183FY);
+z29=(485FX,102FY);
+z30=(470FX,34FY);
+z31=(399FX,19FY);
+z32=(399FX,0FY);
+FuF (z1
+-- z2
+{-34,0} .. {-11,11}z3
+{-11,11} .. {0,34}z4
+-- z5
+{0,37} .. {11,10}z6
+{10,10} .. {36,0}z7
+-- z8
+-- z9
+-- z10
+{36,0} .. {10,-11}z11
+{11,-10} .. {0,-35}z12
+-- z13
+{0,-38} .. {-29,-20}z14
+{-26,-18} .. {-43,0}z15
+{-96,0} .. {0,133}z16
+-- z17
+{0,34} .. {11,10}z18
+{12,11} .. {34,0}z19
+-- z20
+-- z21
+-- z22
+{37,0} .. {10,-9}z23
+{11,-9} .. {0,-37}z24
+-- z25
+{0,-88} .. {42,-47}z26
+{41,-46} .. {76,0}z27
+{69,0} .. {29,27}z28
+-- z29
+{0,-35} .. {-10,-10}z30
+{-10,-10} .. {-38,0}z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(76,484FX#,624FY#,66FY#);
+"L";
+z1=(483FX,-66FY);
+z2=(483FX,-34FY);
+z3=(348FX,37FY);
+z4=(194FX,37FY);
+z5=(194FX,523FY);
+z6=(211FX,590FY);
+z7=(280FX,607FY);
+z8=(280FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,607FY);
+z11=(85FX,589FY);
+z12=(98FX,523FY);
+z13=(98FX,104FY);
+z14=(81FX,32FY);
+z15=(13FX,18FY);
+z16=(13FX,0FY);
+z17=(308FX,0FY);
+z18=(360FX,-43FY);
+z19=(360FX,-66FY);
+FuF (z1
+-- z2
+{0,47} .. {-90,0}z3
+-- z4
+-- z5
+{0,34} .. {11,11}z6
+{12,11} .. {34,0}z7
+-- z8
+-- z9
+-- z10
+{38,-1} .. {10,-11}z11
+{9,-9} .. {0,-35}z12
+-- z13
+{0,-37} .. {-12,-11}z14
+{-10,-9} .. {-35,0}z15
+-- z16
+-- z17
+{35,0} .. {0,-29}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(77,767FX#,624FY#,13FY#);
+"M";
+z1=(775FX,517FY);
+z2=(775FX,549FY);
+z3=(640FX,624FY);
+z4=(399FX,624FY);
+z5=(399FX,607FY);
+z6=(472FX,588FY);
+z7=(485FX,523FY);
+z8=(485FX,252FY);
+z9=(451FX,76FY);
+z10=(338FX,24FY);
+z11=(194FX,252FY);
+z12=(194FX,523FY);
+z13=(212FX,589FY);
+z14=(280FX,607FY);
+z15=(280FX,624FY);
+z16=(13FX,624FY);
+z17=(13FX,607FY);
+z18=(85FX,589FY);
+z19=(98FX,523FY);
+z20=(98FX,258FY);
+z21=(167FX,58FY);
+z22=(338FX,-13FY);
+z23=(517FX,59FY);
+z24=(581FX,258FY);
+z25=(581FX,588FY);
+z26=(599FX,588FY);
+z27=(652FX,539FY);
+z28=(652FX,517FY);
+FuF (z1
+-- z2
+{0,50} .. {-90,0}z3
+-- z4
+-- z5
+{38,0} .. {11,-12}z6
+{9,-10} .. {0,-33}z7
+-- z8
+{0,-82} .. {-23,-35}z9
+{-23,-35} .. {-52,0}z10
+{-96,0} .. {0,152}z11
+-- z12
+{0,33} .. {12,12}z13
+{12,12} .. {34,0}z14
+-- z15
+-- z16
+-- z17
+{38,0} .. {11,-11}z18
+{9,-10} .. {0,-34}z19
+-- z20
+{0,-83} .. {46,-50}z21
+{44,-47} .. {70,0}z22
+{77,0} .. {43,48}z23
+{43,47} .. {0,85}z24
+-- z25
+-- z26
+{35,0} .. {0,-33}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(78,690FX#,693FY#,13FY#);
+"N";
+z1=(641FX,249FY);
+z2=(641FX,315FY);
+z3=(545FX,315FY);
+z4=(545FX,242FY);
+z5=(515FX,77FY);
+z6=(402FX,23FY);
+z7=(287FX,76FY);
+z8=(255FX,243FY);
+z9=(255FX,624FY);
+z10=(154FX,624FY);
+z11=(101FX,668FY);
+z12=(101FX,693FY);
+z13=(-22FX,693FY);
+z14=(-22FX,659FY);
+z15=(113FX,588FY);
+z16=(158FX,588FY);
+z17=(158FX,258FY);
+z18=(222FX,57FY);
+z19=(401FX,-13FY);
+z20=(581FX,57FY);
+z21=(641FX,249FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-78} .. {-20,-32}z5
+{-22,-36} .. {-53,0}z6
+{-54,0} .. {-23,35}z7
+{-21,34} .. {0,78}z8
+-- z9
+-- z10
+{-35,0} .. {0,29}z11
+-- z12
+-- z13
+-- z14
+{0,-48} .. {90,0}z15
+-- z16
+-- z17
+{0,-87} .. {42,-47}z18
+{42,-47} .. {77,0}z19
+{79,0} .. {41,47}z20
+{40,45} .. {0,83}z21
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(79,681FX#,637FY#,0FY#);
+"O";
+z1=(669FX,0FY);
+z2=(669FX,18FY);
+z3=(601FX,33FY);
+z4=(581FX,104FY);
+z5=(581FX,373FY);
+z6=(517FX,567FY);
+z7=(342FX,637FY);
+z8=(165FX,564FY);
+z9=(98FX,373FY);
+z10=(98FX,104FY);
+z11=(82FX,32FY);
+z12=(13FX,18FY);
+z13=(13FX,0FY);
+z14=(285FX,0FY);
+z15=(285FX,18FY);
+z16=(212FX,34FY);
+z17=(194FX,104FY);
+z18=(194FX,379FY);
+z19=(342FX,601FY);
+z20=(450FX,548FY);
+z21=(485FX,379FY);
+z22=(485FX,104FY);
+z23=(467FX,31FY);
+z24=(397FX,18FY);
+z25=(397FX,0FY);
+FuF (z1
+-- z2
+{-34,0} .. {-11,10}z3
+{-13,12} .. {0,36}z4
+-- z5
+{0,82} .. {-43,47}z6
+{-42,47} .. {-74,0}z7
+{-74,0} .. {-44,-49}z8
+{-45,-49} .. {0,-78}z9
+-- z10
+{0,-38} .. {-11,-10}z11
+{-11,-10} .. {-36,0}z12
+-- z13
+-- z14
+-- z15
+{-37,0} .. {-12,11}z16
+{-12,10} .. {0,37}z17
+-- z18
+{0,148} .. {98,0}z19
+{49,0} .. {23,-35}z20
+{23,-36} .. {0,-77}z21
+-- z22
+{0,-38} .. {-12,-11}z23
+{-11,-9} .. {-36,0}z24
+-- z25
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(80,767FX#,638FY#,0FY#);
+"P";
+z1=(760FX,0FY);
+z2=(760FX,18FY);
+z3=(696FX,35FY);
+z4=(679FX,102FY);
+z5=(679FX,366FY);
+z6=(601FX,554FY);
+z7=(354FX,638FY);
+z8=(110FX,554FY);
+z9=(32FX,368FY);
+z10=(32FX,315FY);
+z11=(128FX,315FY);
+z12=(128FX,389FY);
+z13=(182FX,538FY);
+z14=(308FX,601FY);
+z15=(308FX,213FY);
+z16=(404FX,213FY);
+z17=(404FX,601FY);
+z18=(533FX,529FY);
+z19=(583FX,373FY);
+z20=(583FX,102FY);
+z21=(567FX,35FY);
+z22=(497FX,19FY);
+z23=(497FX,0FY);
+FuF (z1
+-- z2
+{-32,0} .. {-11,11}z3
+{-11,12} .. {0,33}z4
+-- z5
+{0,75} .. {-52,50}z6
+{-60,56} .. {-105,0}z7
+{-105,0} .. {-58,-56}z8
+{-52,-50} .. {0,-74}z9
+-- z10
+-- z11
+-- z12
+{0,58} .. {35,41}z13
+{35,40} .. {49,1}z14
+-- z15
+-- z16
+-- z17
+{51,-1} .. {35,-46}z18
+{33,-45} .. {0,-59}z19
+-- z20
+{0,-34} .. {-11,-11}z21
+{-11,-11} .. {-36,0}z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(81,745FX#,637FY#,0FY#);
+"Q";
+z1=(698FX,47FY);
+z2=(698FX,79FY);
+z3=(555FX,148FY);
+z4=(275FX,148FY);
+z5=(275FX,281FY);
+z6=(345FX,242FY);
+z7=(424FX,230FY);
+z8=(597FX,286FY);
+z9=(665FX,426FY);
+z10=(600FX,584FY);
+z11=(417FX,637FY);
+z12=(241FX,573FY);
+z13=(179FX,404FY);
+z14=(179FX,148FY);
+z15=(156FX,148FY);
+z16=(117FX,186FY);
+z17=(117FX,217FY);
+z18=(-3FX,217FY);
+z19=(-3FX,183FY);
+z20=(123FX,111FY);
+z21=(179FX,111FY);
+z22=(179FX,90FY);
+z23=(162FX,33FY);
+z24=(99FX,18FY);
+z25=(99FX,0FY);
+z26=(364FX,0FY);
+z27=(364FX,18FY);
+z28=(292FX,32FY);
+z29=(275FX,93FY);
+z30=(275FX,111FY);
+z31=(518FX,111FY);
+z32=(576FX,81FY);
+z33=(576FX,47FY);
+z34=(565FX,427FY);
+z35=(525FX,312FY);
+z36=(426FX,267FY);
+z37=(318FX,302FY);
+z38=(274FX,387FY);
+z39=(274FX,431FY);
+z40=(312FX,556FY);
+z41=(417FX,601FY);
+z42=(565FX,427FY);
+FuF (z1
+-- z2
+{0,46} .. {-96,0}z3
+-- z4
+-- z5
+{15,-17} .. {32,-9}z6
+{27,-8} .. {26,0}z7
+{70,0} .. {45,37}z8
+{45,37} .. {0,56}z9
+{0,69} .. {-43,36}z10
+{-43,35} .. {-79,0}z11
+{-74,0} .. {-43,-43}z12
+{-41,-42} .. {0,-71}z13
+-- z14
+-- z15
+{-26,0} .. {0,25}z16
+-- z17
+-- z18
+-- z19
+{0,-48} .. {84,0}z20
+-- z21
+-- z22
+{0,-28} .. {-11,-10}z23
+{-12,-10} .. {-31,0}z24
+-- z25
+-- z26
+-- z27
+{-36,0} .. {-12,9}z28
+{-11,10} .. {0,31}z29
+-- z30
+-- z31
+{38,0} .. {0,-20}z32
+-- z33
+);
+FuF (z34
+{0,-47} .. {-26,-30}z35
+{-26,-30} .. {-40,0}z36
+{-43,0} .. {-29,23}z37
+{-29,23} .. {0,33}z38
+-- z39
+{0,53} .. {25,30}z40
+{26,30} .. {44,0}z41
+{98,0} .. {0,-116}z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(82,613FX#,637FY#,0FY#);
+"R";
+z1=(581FX,315FY);
+z2=(581FX,366FY);
+z3=(519FX,567FY);
+z4=(340FX,637FY);
+z5=(158FX,558FY);
+z6=(98FX,366FY);
+z7=(98FX,102FY);
+z8=(84FX,35FY);
+z9=(13FX,18FY);
+z10=(13FX,0FY);
+z11=(280FX,0FY);
+z12=(280FX,19FY);
+z13=(210FX,34FY);
+z14=(194FX,102FY);
+z15=(194FX,373FY);
+z16=(341FX,601FY);
+z17=(451FX,544FY);
+z18=(485FX,374FY);
+z19=(485FX,315FY);
+FuF (z1
+-- z2
+{0,87} .. {-41,47}z3
+{-42,47} .. {-78,0}z4
+{-78,0} .. {-43,-53}z5
+{-40,-49} .. {0,-79}z6
+-- z7
+{0,-35} .. {-9,-10}z8
+{-11,-12} .. {-37,0}z9
+-- z10
+-- z11
+-- z12
+{-36,0} .. {-11,10}z13
+{-10,10} .. {0,35}z14
+-- z15
+{0,152} .. {98,0}z16
+{51,0} .. {23,-38}z17
+{23,-36} .. {0,-77}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(83,683FX#,624FY#,13FY#);
+"S";
+z1=(669FX,607FY);
+z2=(669FX,624FY);
+z3=(397FX,624FY);
+z4=(397FX,607FY);
+z5=(467FX,593FY);
+z6=(485FX,521FY);
+z7=(485FX,245FY);
+z8=(450FX,77FY);
+z9=(342FX,23FY);
+z10=(194FX,245FY);
+z11=(194FX,521FY);
+z12=(212FX,591FY);
+z13=(285FX,607FY);
+z14=(285FX,624FY);
+z15=(13FX,624FY);
+z16=(13FX,607FY);
+z17=(82FX,593FY);
+z18=(98FX,521FY);
+z19=(98FX,252FY);
+z20=(165FX,60FY);
+z21=(342FX,-13FY);
+z22=(517FX,58FY);
+z23=(581FX,252FY);
+z24=(581FX,521FY);
+z25=(601FX,591FY);
+z26=(669FX,607FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{36,0} .. {11,-9}z5
+{12,-11} .. {0,-37}z6
+-- z7
+{0,-76} .. {-23,-36}z8
+{-23,-36} .. {-49,0}z9
+{-98,0} .. {0,148}z10
+-- z11
+{0,36} .. {12,11}z12
+{12,10} .. {37,0}z13
+-- z14
+-- z15
+-- z16
+{36,0} .. {11,-9}z17
+{11,-11} .. {0,-37}z18
+-- z19
+{0,-79} .. {45,-49}z20
+{44,-48} .. {74,0}z21
+{74,0} .. {42,47}z22
+{43,47} .. {0,82}z23
+-- z24
+{0,35} .. {13,12}z25
+{11,11} .. {34,0}z26
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(84,580FX#,637FY#,13FY#);
+"T";
+z1=(543FX,154FY);
+z2=(411FX,335FY);
+z3=(240FX,413FY);
+z4=(176FX,494FY);
+z5=(212FX,573FY);
+z6=(305FX,601FY);
+z7=(426FX,444FY);
+z8=(523FX,444FY);
+z9=(461FX,587FY);
+z10=(305FX,637FY);
+z11=(149FX,592FY);
+z12=(83FX,478FY);
+z13=(172FX,339FY);
+z14=(364FX,249FY);
+z15=(447FX,129FY);
+z16=(408FX,52FY);
+z17=(316FX,24FY);
+z18=(198FX,72FY);
+z19=(155FX,204FY);
+z20=(57FX,204FY);
+z21=(132FX,50FY);
+z22=(317FX,-13FY);
+z23=(479FX,40FY);
+z24=(543FX,154FY);
+FuF (z1
+{0,81} .. {-88,40}z2
+-- z3
+{-42,19} .. {0,35}z4
+{0,34} .. {24,19}z5
+{23,18} .. {39,0}z6
+{80,0} .. {0,-105}z7
+-- z8
+{0,60} .. {-41,35}z9
+{-39,34} .. {-65,0}z10
+{-62,0} .. {-42,-30}z11
+{-44,-30} .. {0,-45}z12
+{0,-65} .. {59,-28}z13
+-- z14
+{56,-26} .. {0,-54}z15
+{0,-32} .. {-26,-20}z16
+{-25,-19} .. {-36,0}z17
+{-50,0} .. {-29,32}z18
+{-29,32} .. {0,56}z19
+-- z20
+{0,-62} .. {50,-41}z21
+{50,-42} .. {73,0}z22
+{63,0} .. {45,35}z23
+{42,34} .. {0,43}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(85,1149FX#,637FY#,0FY#);
+"U";
+z1=(669FX,0FY);
+z2=(669FX,18FY);
+z3=(601FX,33FY);
+z4=(581FX,104FY);
+z5=(581FX,373FY);
+z6=(517FX,567FY);
+z7=(342FX,637FY);
+z8=(165FX,564FY);
+z9=(98FX,373FY);
+z10=(98FX,104FY);
+z11=(82FX,32FY);
+z12=(13FX,18FY);
+z13=(13FX,0FY);
+z14=(285FX,0FY);
+z15=(285FX,18FY);
+z16=(212FX,34FY);
+z17=(194FX,104FY);
+z18=(194FX,379FY);
+z19=(342FX,601FY);
+z20=(450FX,548FY);
+z21=(485FX,379FY);
+z22=(485FX,104FY);
+z23=(467FX,31FY);
+z24=(397FX,18FY);
+z25=(397FX,0FY);
+z26=(1152FX,315FY);
+z27=(1152FX,349FY);
+z28=(1126FX,394FY);
+z29=(1017FX,425FY);
+z30=(875FX,425FY);
+z31=(875FX,523FY);
+z32=(891FX,591FY);
+z33=(961FX,607FY);
+z34=(961FX,624FY);
+z35=(694FX,624FY);
+z36=(694FX,607FY);
+z37=(763FX,591FY);
+z38=(779FX,523FY);
+z39=(779FX,104FY);
+z40=(762FX,32FY);
+z41=(694FX,18FY);
+z42=(694FX,0FY);
+z43=(962FX,0FY);
+z44=(962FX,19FY);
+z45=(895FX,34FY);
+z46=(875FX,104FY);
+z47=(875FX,388FY);
+z48=(977FX,388FY);
+z49=(1029FX,339FY);
+z50=(1029FX,315FY);
+FuF (z1
+-- z2
+{-34,0} .. {-11,10}z3
+{-13,12} .. {0,36}z4
+-- z5
+{0,82} .. {-43,47}z6
+{-42,47} .. {-74,0}z7
+{-74,0} .. {-44,-49}z8
+{-45,-49} .. {0,-78}z9
+-- z10
+{0,-38} .. {-11,-10}z11
+{-11,-10} .. {-36,0}z12
+-- z13
+-- z14
+-- z15
+{-37,0} .. {-12,11}z16
+{-12,10} .. {0,37}z17
+-- z18
+{0,148} .. {98,0}z19
+{49,0} .. {23,-35}z20
+{23,-36} .. {0,-77}z21
+-- z22
+{0,-38} .. {-12,-11}z23
+{-11,-9} .. {-36,0}z24
+-- z25
+);
+FuF (z26
+-- z27
+{0,15} .. {-17,15}z28
+{-25,20} .. {-48,0}z29
+-- z30
+-- z31
+{0,35} .. {10,10}z32
+{10,10} .. {36,0}z33
+-- z34
+-- z35
+-- z36
+{36,0} .. {10,-10}z37
+{11,-10} .. {0,-35}z38
+-- z39
+{0,-37} .. {-11,-11}z40
+{-10,-9} .. {-35,0}z41
+-- z42
+-- z43
+-- z44
+{-34,0} .. {-11,10}z45
+{-13,11} .. {0,36}z46
+-- z47
+-- z48
+{35,0} .. {0,-33}z49
+-- z50
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 50);
+endchar;
+
+beginchar(86,731FX#,624FY#,70FY#);
+"V";
+z1=(739FX,-70FY);
+z2=(739FX,-38FY);
+z3=(588FX,37FY);
+z4=(551FX,37FY);
+z5=(551FX,523FY);
+z6=(566FX,591FY);
+z7=(636FX,607FY);
+z8=(636FX,624FY);
+z9=(368FX,624FY);
+z10=(368FX,606FY);
+z11=(440FX,589FY);
+z12=(455FX,523FY);
+z13=(455FX,346FY);
+z14=(307FX,180FY);
+z15=(192FX,248FY);
+z16=(164FX,373FY);
+z17=(164FX,425FY);
+z18=(-12FX,425FY);
+z19=(-12FX,406FY);
+z20=(44FX,394FY);
+z21=(61FX,368FY);
+z22=(127FX,208FY);
+z23=(308FX,143FY);
+z24=(455FX,183FY);
+z25=(455FX,0FY);
+z26=(572FX,0FY);
+z27=(604FX,-15FY);
+z28=(616FX,-47FY);
+z29=(616FX,-70FY);
+FuF (z1
+-- z2
+{0,50} .. {-101,0}z3
+-- z4
+-- z5
+{0,34} .. {10,11}z6
+{11,10} .. {36,0}z7
+-- z8
+-- z9
+-- z10
+{37,0} .. {11,-11}z11
+{10,-10} .. {0,-34}z12
+-- z13
+{0,-111} .. {-98,0}z14
+{-52,0} .. {-25,45}z15
+{-18,33} .. {0,50}z16
+-- z17
+-- z18
+-- z19
+{26,0} .. {11,-8}z20
+{12,-7} .. {0,-10}z21
+{0,-63} .. {44,-43}z22
+{44,-43} .. {77,0}z23
+{54,0} .. {44,27}z24
+-- z25
+-- z26
+{13,0} .. {9,-10}z27
+{8,-10} .. {0,-12}z28
+-- z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(87,468FX#,624FY#,0FY#);
+"W";
+z1=(471FX,315FY);
+z2=(471FX,349FY);
+z3=(445FX,394FY);
+z4=(336FX,425FY);
+z5=(194FX,425FY);
+z6=(194FX,523FY);
+z7=(210FX,591FY);
+z8=(280FX,607FY);
+z9=(280FX,624FY);
+z10=(13FX,624FY);
+z11=(13FX,607FY);
+z12=(82FX,591FY);
+z13=(98FX,523FY);
+z14=(98FX,104FY);
+z15=(81FX,32FY);
+z16=(13FX,18FY);
+z17=(13FX,0FY);
+z18=(281FX,0FY);
+z19=(281FX,19FY);
+z20=(214FX,34FY);
+z21=(194FX,104FY);
+z22=(194FX,388FY);
+z23=(296FX,388FY);
+z24=(348FX,339FY);
+z25=(348FX,315FY);
+FuF (z1
+-- z2
+{0,15} .. {-17,15}z3
+{-25,20} .. {-48,0}z4
+-- z5
+-- z6
+{0,35} .. {11,10}z7
+{10,10} .. {36,0}z8
+-- z9
+-- z10
+-- z11
+{36,0} .. {10,-10}z12
+{11,-10} .. {0,-35}z13
+-- z14
+{0,-37} .. {-11,-11}z15
+{-10,-9} .. {-35,0}z16
+-- z17
+-- z18
+-- z19
+{-34,0} .. {-11,10}z20
+{-13,11} .. {0,36}z21
+-- z22
+-- z23
+{35,0} .. {0,-33}z24
+-- z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(88,783FX#,624FY#,13FY#);
+"X";
+z1=(745FX,222FY);
+z2=(745FX,425FY);
+z3=(563FX,425FY);
+z4=(563FX,407FY);
+z5=(632FX,389FY);
+z6=(649FX,322FY);
+z7=(649FX,213FY);
+z8=(622FX,59FY);
+z9=(537FX,17FY);
+z10=(453FX,54FY);
+z11=(421FX,211FY);
+z12=(421FX,425FY);
+z13=(194FX,425FY);
+z14=(194FX,523FY);
+z15=(212FX,591FY);
+z16=(280FX,606FY);
+z17=(280FX,624FY);
+z18=(13FX,624FY);
+z19=(13FX,607FY);
+z20=(86FX,589FY);
+z21=(98FX,523FY);
+z22=(98FX,104FY);
+z23=(81FX,32FY);
+z24=(13FX,18FY);
+z25=(13FX,0FY);
+z26=(280FX,0FY);
+z27=(280FX,18FY);
+z28=(211FX,34FY);
+z29=(194FX,104FY);
+z30=(194FX,388FY);
+z31=(327FX,388FY);
+z32=(327FX,222FY);
+z33=(537FX,-13FY);
+z34=(693FX,56FY);
+z35=(745FX,222FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{35,0} .. {11,-12}z5
+{11,-12} .. {0,-33}z6
+-- z7
+{0,-73} .. {-18,-30}z8
+{-17,-28} .. {-40,0}z9
+{-38,0} .. {-18,24}z10
+{-21,30} .. {0,75}z11
+-- z12
+-- z13
+-- z14
+{0,34} .. {12,11}z15
+{11,10} .. {35,0}z16
+-- z17
+-- z18
+-- z19
+{38,0} .. {10,-12}z20
+{8,-10} .. {0,-34}z21
+-- z22
+{0,-37} .. {-12,-11}z23
+{-10,-9} .. {-35,0}z24
+-- z25
+-- z26
+-- z27
+{-34,0} .. {-12,11}z28
+{-11,10} .. {0,36}z29
+-- z30
+-- z31
+-- z32
+{0,-157} .. {140,0}z33
+{66,0} .. {38,46}z34
+{35,43} .. {0,68}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(89,603FX#,638FY#,16FY#);
+"Y";
+z1=(568FX,199FY);
+z2=(505FX,321FY);
+z3=(388FX,365FY);
+z4=(386FX,367FY);
+z5=(476FX,410FY);
+z6=(511FX,488FY);
+z7=(451FX,597FY);
+z8=(297FX,638FY);
+z9=(153FX,595FY);
+z10=(93FX,476FY);
+z11=(187FX,476FY);
+z12=(298FX,601FY);
+z13=(414FX,491FY);
+z14=(282FX,378FY);
+z15=(152FX,378FY);
+z16=(157FX,411FY);
+z17=(57FX,411FY);
+z18=(35FX,298FY);
+z19=(136FX,298FY);
+z20=(145FX,341FY);
+z21=(284FX,341FY);
+z22=(415FX,304FY);
+z23=(468FX,188FY);
+z24=(419FX,57FY);
+z25=(309FX,17FY);
+z26=(203FX,60FY);
+z27=(158FX,187FY);
+z28=(158FX,221FY);
+z29=(51FX,221FY);
+z30=(51FX,200FY);
+z31=(123FX,47FY);
+z32=(307FX,-16FY);
+z33=(497FX,42FY);
+z34=(568FX,199FY);
+FuF (z1
+{0,49} .. {-42,32}z2
+{-35,27} .. {-43,2}z3
+-- z4
+{36,6} .. {24,23}z5
+{23,23} .. {0,29}z6
+{0,45} .. {-40,28}z7
+{-40,27} .. {-63,0}z8
+{-58,0} .. {-38,-29}z9
+{-40,-29} .. {0,-50}z10
+-- z11
+{0,84} .. {74,0}z12
+{79,0} .. {-1,-74}z13
+{-1,-75} .. {-87,0}z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+{55,0} .. {33,-25}z22
+{36,-27} .. {0,-51}z23
+{0,-57} .. {-33,-31}z24
+{-29,-27} .. {-44,0}z25
+{-44,0} .. {-27,29}z26
+{-30,31} .. {0,54}z27
+-- z28
+-- z29
+-- z30
+{0,-61} .. {48,-41}z31
+{48,-42} .. {74,0}z32
+{79,0} .. {48,39}z33
+{47,39} .. {0,65}z34
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(90,653FX#,637FY#,95FY#);
+"Z";
+z1=(593FX,405FY);
+z2=(517FX,574FY);
+z3=(331FX,637FY);
+z4=(146FX,574FY);
+z5=(69FX,415FY);
+z6=(141FX,245FY);
+z7=(326FX,185FY);
+z8=(398FX,198FY);
+z9=(443FX,222FY);
+z10=(314FX,88FY);
+z11=(164FX,37FY);
+z12=(164FX,122FY);
+z13=(64FX,122FY);
+z14=(64FX,-95FY);
+z15=(164FX,-95FY);
+z16=(164FX,0FY);
+z17=(403FX,0FY);
+z18=(459FX,-15FY);
+z19=(483FX,-58FY);
+z20=(483FX,-95FY);
+z21=(591FX,-95FY);
+z22=(591FX,-47FY);
+z23=(435FX,40FY);
+z24=(321FX,40FY);
+z25=(270FX,40FY);
+z26=(323FX,57FY);
+z27=(507FX,187FY);
+z28=(593FX,405FY);
+z29=(491FX,402FY);
+z30=(442FX,265FY);
+z31=(335FX,224FY);
+z32=(166FX,417FY);
+z33=(213FX,553FY);
+z34=(331FX,601FY);
+z35=(449FX,549FY);
+z36=(491FX,402FY);
+FuF (z1
+{0,69} .. {-51,44}z2
+{-50,42} .. {-74,0}z3
+{-73,0} .. {-50,-42}z4
+{-52,-42} .. {0,-64}z5
+{0,-72} .. {48,-42}z6
+{47,-40} .. {76,0}z7
+{24,0} .. {24,9}z8
+{21,7} .. {8,8}z9
+{-25,-51} .. {-61,-38}z10
+{-56,-34} .. {-44,0}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{23,0} .. {15,-10}z18
+{16,-10} .. {0,-18}z19
+-- z20
+-- z21
+-- z22
+{0,58} .. {-104,0}z23
+-- z24
+-- z25
+-- z26
+{69,22} .. {54,65}z27
+{57,70} .. {0,75}z28
+);
+FuF (z29
+{0,-59} .. {-33,-32}z30
+{-29,-27} .. {-42,0}z31
+{-114,0} .. {1,129}z32
+{0,57} .. {31,34}z33
+{30,32} .. {49,0}z34
+{50,0} .. {28,-34}z35
+{28,-34} .. {0,-63}z36
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(91,380FX#,750FY#,250FY#);
+"bracketleft";
+z1=(339FX,-250FY);
+z2=(339FX,-206FY);
+z3=(177FX,-206FY);
+z4=(177FX,706FY);
+z5=(339FX,706FY);
+z6=(339FX,750FY);
+z7=(94FX,750FY);
+z8=(94FX,-250FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(92,450FX#,624FY#,0FY#);
+"quotedblleft";
+z1=(156FX,430FY);
+z2=(156FX,448FY);
+z3=(174FX,534FY);
+z4=(228FX,608FY);
+z5=(230FX,615FY);
+z6=(228FX,620FY);
+z7=(226FX,623FY);
+z8=(220FX,624FY);
+z9=(213FX,623FY);
+z10=(171FX,572FY);
+z11=(145FX,513FY);
+z12=(136FX,448FY);
+z13=(150FX,383FY);
+z14=(195FX,355FY);
+z15=(230FX,369FY);
+z16=(243FX,402FY);
+z17=(231FX,436FY);
+z18=(195FX,450FY);
+z19=(156FX,430FY);
+z20=(331FX,430FY);
+z21=(331FX,440FY);
+z22=(330FX,448FY);
+z23=(350FX,534FY);
+z24=(403FX,608FY);
+z25=(405FX,615FY);
+z26=(403FX,620FY);
+z27=(401FX,623FY);
+z28=(395FX,624FY);
+z29=(389FX,623FY);
+z30=(346FX,572FY);
+z31=(320FX,513FY);
+z32=(311FX,448FY);
+z33=(325FX,383FY);
+z34=(371FX,355FY);
+z35=(406FX,369FY);
+z36=(418FX,402FY);
+z37=(406FX,436FY);
+z38=(371FX,450FY);
+z39=(331FX,430FY);
+FuF (z1
+{0,4} .. {0,8}z2
+{0,30} .. {12,27}z3
+{13,28} .. {23,22}z4
+{1,3} .. {0,2}z5
+{0,2} .. {-1,2}z6
+-- z7
+{-1,1} .. {-3,0}z8
+{-3,0} .. {-1,-1}z9
+{-17,-16} .. {-11,-19}z10
+{-11,-18} .. {-6,-21}z11
+{-6,-21} .. {0,-23}z12
+{0,-24} .. {10,-20}z13
+{9,-19} .. {20,0}z14
+{15,0} .. {8,10}z15
+{9,10} .. {0,12}z16
+{0,13} .. {-8,9}z17
+{-8,9} .. {-16,0}z18
+{-16,0} .. {-10,-13}z19
+);
+FuF (z20
+{0,4} .. {0,2}z21
+{0,3} .. {-1,3}z22
+{0,30} .. {12,27}z23
+{13,28} .. {23,22}z24
+{2,2} .. {0,3}z25
+{0,2} .. {-2,1}z26
+-- z27
+{-1,1} .. {-3,0}z28
+{-3,0} .. {-1,-1}z29
+{-17,-15} .. {-12,-19}z30
+{-11,-18} .. {-6,-21}z31
+{-6,-21} .. {0,-23}z32
+{0,-24} .. {10,-20}z33
+{9,-19} .. {21,0}z34
+{15,0} .. {9,10}z35
+{8,10} .. {0,12}z36
+{0,13} .. {-8,9}z37
+{-8,9} .. {-15,0}z38
+{-18,0} .. {-9,-13}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(93,380FX#,750FY#,250FY#);
+"bracketright";
+z1=(42FX,750FY);
+z2=(42FX,706FY);
+z3=(204FX,706FY);
+z4=(204FX,-206FY);
+z5=(42FX,-206FY);
+z6=(42FX,-250FY);
+z7=(287FX,-250FY);
+z8=(287FX,750FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(94,527FX#,750FY#,250FY#);
+"braceleft";
+z1=(451FX,-231FY);
+z2=(330FX,-107FY);
+z3=(342FX,-23FY);
+z4=(354FX,65FY);
+z5=(304FX,181FY);
+z6=(196FX,252FY);
+z7=(305FX,320FY);
+z8=(354FX,436FY);
+z9=(342FX,521FY);
+z10=(330FX,607FY);
+z11=(451FX,731FY);
+z12=(451FX,750FY);
+z13=(311FX,683FY);
+z14=(249FX,544FY);
+z15=(262FX,458FY);
+z16=(274FX,375FY);
+z17=(235FX,296FY);
+z18=(152FX,261FY);
+z19=(152FX,239FY);
+z20=(242FX,197FY);
+z21=(274FX,126FY);
+z22=(262FX,42FY);
+z23=(249FX,-43FY);
+z24=(311FX,-183FY);
+z25=(451FX,-250FY);
+FuF (z1
+{-81,21} .. {1,62}z2
+{0,23} .. {8,33}z3
+{8,36} .. {0,23}z4
+{0,43} .. {-33,35}z5
+{-29,31} .. {-43,16}z6
+{44,15} .. {29,30}z7
+{33,35} .. {0,43}z8
+{0,19} .. {-8,38}z9
+{-8,38} .. {0,19}z10
+{0,64} .. {81,18}z11
+-- z12
+{-55,-8} .. {-39,-37}z13
+{-41,-39} .. {1,-54}z14
+{0,-20} .. {8,-38}z15
+{8,-37} .. {0,-18}z16
+{0,-32} .. {-26,-21}z17
+{-23,-19} .. {-32,-4}z18
+-- z19
+{38,-5} .. {22,-23}z20
+{22,-22} .. {-1,-25}z21
+{0,-18} .. {-9,-38}z22
+{-8,-37} .. {0,-20}z23
+{1,-54} .. {41,-39}z24
+{38,-37} .. {55,-8}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(95,527FX#,750FY#,250FY#);
+"braceright";
+z1=(95FX,731FY);
+z2=(216FX,607FY);
+z3=(204FX,522FY);
+z4=(192FX,436FY);
+z5=(241FX,319FY);
+z6=(350FX,249FY);
+z7=(241FX,181FY);
+z8=(192FX,64FY);
+z9=(204FX,-22FY);
+z10=(216FX,-107FY);
+z11=(95FX,-231FY);
+z12=(95FX,-250FY);
+z13=(235FX,-183FY);
+z14=(297FX,-43FY);
+z15=(284FX,41FY);
+z16=(272FX,126FY);
+z17=(311FX,204FY);
+z18=(394FX,239FY);
+z19=(394FX,261FY);
+z20=(311FX,296FY);
+z21=(272FX,375FY);
+z22=(285FX,457FY);
+z23=(297FX,543FY);
+z24=(240FX,678FY);
+z25=(95FX,750FY);
+FuF (z1
+{81,-20} .. {-1,-62}z2
+{0,-19} .. {-8,-38}z3
+{-8,-37} .. {0,-20}z4
+{1,-43} .. {33,-35}z5
+{29,-31} .. {44,-16}z6
+{-44,-16} .. {-28,-29}z7
+{-33,-35} .. {1,-44}z8
+{0,-19} .. {9,-38}z9
+{8,-37} .. {0,-19}z10
+{-1,-63} .. {-80,-20}z11
+-- z12
+{55,8} .. {39,37}z13
+{41,40} .. {0,54}z14
+{0,19} .. {-8,37}z15
+{-9,38} .. {0,19}z16
+{0,31} .. {26,21}z17
+{23,20} .. {32,4}z18
+-- z19
+{-32,5} .. {-23,18}z20
+{-26,21} .. {0,32}z21
+{0,18} .. {8,37}z22
+{8,37} .. {0,20}z23
+{0,50} .. {-38,40}z24
+{-38,41} .. {-59,8}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(96,196FX#,743FY#,0FY#);
+"buth";
+z1=(159FX,569FY);
+z2=(24FX,725FY);
+z3=(-12FX,743FY);
+z4=(-38FX,731FY);
+z5=(-49FX,704FY);
+z6=(-23FX,665FY);
+z7=(135FX,543FY);
+FuF (z1
+-- z2
+{-11,12} .. {-13,-1}z3
+{-10,0} .. {-7,-8}z4
+{-7,-8} .. {0,-10}z5
+{3,-14} .. {15,-12}z6
+-- z7
+);
+lbl (range 1 thru 7);
+endchar;
+
+beginchar(97,734FX#,425FY#,14FY#);
+"a";
+z1=(718FX,29FY);
+z2=(712FX,41FY);
+z3=(691FX,38FY);
+z4=(655FX,94FY);
+z5=(655FX,425FY);
+z6=(511FX,425FY);
+z7=(511FX,410FY);
+z8=(560FX,402FY);
+z9=(575FX,360FY);
+z10=(575FX,92FY);
+z11=(544FX,58FY);
+z12=(472FX,35FY);
+z13=(418FX,59FY);
+z14=(402FX,137FY);
+z15=(402FX,425FY);
+z16=(254FX,425FY);
+z17=(254FX,410FY);
+z18=(314FX,396FY);
+z19=(322FX,335FY);
+z20=(322FX,93FY);
+z21=(280FX,51FY);
+z22=(218FX,35FY);
+z23=(149FX,122FY);
+z24=(149FX,425FY);
+z25=(5FX,425FY);
+z26=(5FX,410FY);
+z27=(56FX,398FY);
+z28=(70FX,356FY);
+z29=(70FX,154FY);
+z30=(181FX,-14FY);
+z31=(333FX,65FY);
+z32=(433FX,-14FY);
+z33=(579FX,58FY);
+z34=(579FX,-12FY);
+z35=(585FX,-14FY);
+FuF (z1
+-- z2
+{-8,-2} .. {-6,0}z3
+{-24,0} .. {0,37}z4
+-- z5
+-- z6
+-- z7
+{24,0} .. {8,-5}z8
+{10,-6} .. {0,-22}z9
+-- z10
+{0,-9} .. {-21,-14}z11
+{-24,-15} .. {-24,0}z12
+{-25,0} .. {-11,16}z13
+{-11,16} .. {0,36}z14
+-- z15
+-- z16
+-- z17
+{33,-2} .. {7,-8}z18
+{6,-7} .. {0,-33}z19
+-- z20
+{-8,-17} .. {-19,-11}z21
+{-19,-11} .. {-22,0}z22
+{-46,0} .. {0,58}z23
+-- z24
+-- z25
+-- z26
+{25,-1} .. {9,-7}z27
+{9,-7} .. {0,-21}z28
+-- z29
+{0,-112} .. {74,0}z30
+{58,0} .. {43,52}z31
+{15,-53} .. {51,1}z32
+{60,1} .. {37,47}z33
+-- z34
+-- z35
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(98,501FX#,441FY#,204FY#);
+"b";
+z1=(443FX,0FY);
+z2=(443FX,33FY);
+z3=(149FX,33FY);
+z4=(149FX,333FY);
+z5=(272FX,389FY);
+z6=(325FX,368FY);
+z7=(343FX,298FY);
+z8=(343FX,141FY);
+z9=(422FX,141FY);
+z10=(422FX,298FY);
+z11=(391FX,407FY);
+z12=(312FX,441FY);
+z13=(146FX,364FY);
+z14=(146FX,437FY);
+z15=(140FX,439FY);
+z16=(9FX,397FY);
+z17=(9FX,380FY);
+z18=(20FX,384FY);
+z19=(35FX,384FY);
+z20=(66FX,363FY);
+z21=(70FX,321FY);
+z22=(70FX,-140FY);
+z23=(55FX,-180FY);
+z24=(12FX,-191FY);
+z25=(12FX,-204FY);
+z26=(211FX,-204FY);
+z27=(211FX,-191FY);
+z28=(149FX,-142FY);
+z29=(149FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{37,37} .. {45,0}z5
+{24,0} .. {12,-14}z6
+{12,-14} .. {0,-33}z7
+-- z8
+-- z9
+-- z10
+{0,50} .. {-21,23}z11
+{-21,22} .. {-31,0}z12
+{-54,0} .. {-56,-51}z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{16,0} .. {5,-14}z20
+{2,-8} .. {0,-20}z21
+-- z22
+{0,-20} .. {-10,-7}z23
+{-9,-7} .. {-19,0}z24
+-- z25
+-- z26
+-- z27
+{-41,0} .. {0,33}z28
+-- z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(99,509FX#,441FY#,209FY#);
+"c";
+z1=(435FX,-25FY);
+z2=(435FX,436FY);
+z3=(431FX,441FY);
+z4=(374FX,407FY);
+z5=(321FX,433FY);
+z6=(259FX,440FY);
+z7=(109FX,369FY);
+z8=(48FX,198FY);
+z9=(89FX,50FY);
+z10=(203FX,-5FY);
+z11=(307FX,23FY);
+z12=(351FX,68FY);
+z13=(356FX,68FY);
+z14=(356FX,-84FY);
+z15=(319FX,-157FY);
+z16=(234FX,-178FY);
+z17=(183FX,-163FY);
+z18=(163FX,-125FY);
+z19=(163FX,-117FY);
+z20=(164FX,-110FY);
+z21=(125FX,-82FY);
+z22=(86FX,-120FY);
+z23=(88FX,-134FY);
+z24=(131FX,-184FY);
+z25=(234FX,-209FY);
+z26=(382FX,-161FY);
+z27=(435FX,-25FY);
+z28=(356FX,102FY);
+z29=(251FX,48FY);
+z30=(156FX,104FY);
+z31=(129FX,225FY);
+z32=(166FX,362FY);
+z33=(257FX,414FY);
+z34=(329FX,396FY);
+z35=(356FX,325FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-27,14} .. {-9,3}z5
+{-15,5} .. {-27,0}z6
+{-59,-1} .. {-41,-47}z7
+{-41,-47} .. {1,-67}z8
+{0,-62} .. {27,-37}z9
+{27,-36} .. {49,0}z10
+{39,0} .. {30,18}z11
+{22,14} .. {7,16}z12
+-- z13
+-- z14
+{0,-32} .. {-25,-17}z15
+{-21,-14} .. {-35,0}z16
+{-21,0} .. {-13,10}z17
+{-13,10} .. {0,15}z18
+{0,2} .. {0,4}z19
+{1,3} .. {0,2}z20
+{0,19} .. {-26,0}z21
+{-26,0} .. {0,-25}z22
+{0,-4} .. {2,-5}z23
+{4,-19} .. {24,-15}z24
+{29,-17} .. {40,0}z25
+{63,0} .. {36,33}z26
+{35,32} .. {0,58}z27
+);
+FuF (z28
+{-31,-36} .. {-39,0}z29
+{-42,0} .. {-22,37}z30
+{-18,32} .. {0,49}z31
+{0,57} .. {23,34}z32
+{24,35} .. {37,-1}z33
+{33,0} .. {15,-11}z34
+{18,-14} .. {0,-33}z35
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(100,520FX#,441FY#,205FY#);
+"d";
+z1=(520FX,0FY);
+z2=(520FX,33FY);
+z3=(422FX,33FY);
+z4=(422FX,298FY);
+z5=(307FX,441FY);
+z6=(146FX,363FY);
+z7=(146FX,438FY);
+z8=(140FX,440FY);
+z9=(67FX,414FY);
+z10=(9FX,397FY);
+z11=(9FX,381FY);
+z12=(42FX,388FY);
+z13=(70FX,345FY);
+z14=(70FX,78FY);
+z15=(58FX,26FY);
+z16=(12FX,14FY);
+z17=(12FX,0FY);
+z18=(211FX,0FY);
+z19=(211FX,14FY);
+z20=(161FX,26FY);
+z21=(149FX,62FY);
+z22=(149FX,334FY);
+z23=(268FX,389FY);
+z24=(343FX,298FY);
+z25=(343FX,-122FY);
+z26=(328FX,-178FY);
+z27=(283FX,-192FY);
+z28=(283FX,-205FY);
+z29=(467FX,-205FY);
+z30=(467FX,-192FY);
+z31=(431FX,-179FY);
+z32=(422FX,-155FY);
+z33=(422FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,95} .. {-77,0}z5
+{-50,0} .. {-57,-52}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{16,5} .. {6,0}z12
+{19,0} .. {0,-29}z13
+-- z14
+{0,-27} .. {-8,-8}z15
+{-6,-6} .. {-25,-2}z16
+-- z17
+-- z18
+-- z19
+{-24,1} .. {-9,7}z20
+{-8,7} .. {0,17}z21
+-- z22
+{38,38} .. {41,-1}z23
+{50,-1} .. {0,-59}z24
+-- z25
+{0,-28} .. {-10,-9}z26
+{-9,-9} .. {-20,0}z27
+-- z28
+-- z29
+-- z30
+{-20,1} .. {-4,8}z31
+{-6,9} .. {0,7}z32
+-- z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(101,501FX#,643FY#,14FY#);
+"e";
+z1=(483FX,29FY);
+z2=(478FX,44FY);
+z3=(450FX,39FY);
+z4=(422FX,76FY);
+z5=(422FX,315FY);
+z6=(343FX,315FY);
+z7=(343FX,92FY);
+z8=(278FX,49FY);
+z9=(220FX,35FY);
+z10=(149FX,127FY);
+z11=(149FX,391FY);
+z12=(443FX,391FY);
+z13=(443FX,425FY);
+z14=(149FX,425FY);
+z15=(149FX,641FY);
+z16=(144FX,643FY);
+z17=(91FX,625FY);
+z18=(10FX,602FY);
+z19=(10FX,587FY);
+z20=(32FX,590FY);
+z21=(70FX,538FY);
+z22=(70FX,136FY);
+z23=(101FX,23FY);
+z24=(180FX,-14FY);
+z25=(346FX,62FY);
+z26=(346FX,-12FY);
+z27=(353FX,-14FY);
+FuF (z1
+-- z2
+{-11,-3} .. {-8,0}z3
+{-18,0} .. {0,24}z4
+-- z5
+-- z6
+-- z7
+{-17,-18} .. {-26,-11}z8
+{-23,-9} .. {-15,0}z9
+{-47,0} .. {0,61}z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{8,2} .. {7,0}z20
+{25,0} .. {0,-35}z21
+-- z22
+{0,-49} .. {21,-27}z23
+{19,-24} .. {33,0}z24
+{54,0} .. {56,50}z25
+-- z26
+-- z27
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(102,648FX#,624FY#,204FY#);
+"f";
+z1=(620FX,204FY);
+z2=(552FX,373FY);
+z3=(367FX,436FY);
+z4=(367FX,624FY);
+z5=(288FX,624FY);
+z6=(93FX,508FY);
+z7=(288FX,407FY);
+z8=(288FX,22FY);
+z9=(164FX,75FY);
+z10=(123FX,193FY);
+z11=(123FX,209FY);
+z12=(126FX,251FY);
+z13=(39FX,258FY);
+z14=(35FX,205FY);
+z15=(101FX,45FY);
+z16=(288FX,-13FY);
+z17=(288FX,-139FY);
+z18=(273FX,-184FY);
+z19=(229FX,-191FY);
+z20=(229FX,-204FY);
+z21=(429FX,-204FY);
+z22=(429FX,-191FY);
+z23=(367FX,-139FY);
+z24=(367FX,-14FY);
+z25=(550FX,51FY);
+z26=(620FX,204FY);
+z27=(288FX,439FY);
+z28=(201FX,460FY);
+z29=(178FX,517FY);
+z30=(288FX,592FY);
+z31=(531FX,204FY);
+z32=(490FX,71FY);
+z33=(367FX,22FY);
+z34=(367FX,403FY);
+z35=(490FX,346FY);
+z36=(531FX,204FY);
+FuF (z1
+{-1,71} .. {-44,41}z2
+{-45,42} .. {-78,0}z3
+-- z4
+-- z5
+{-130,0} .. {0,-78}z6
+{0,-67} .. {130,0}z7
+-- z8
+{-53,1} .. {-30,34}z9
+{-27,31} .. {0,48}z10
+{0,5} .. {0,6}z11
+-- z12
+-- z13
+{-3,-14} .. {0,-21}z14
+{0,-68} .. {44,-38}z15
+{44,-39} .. {81,0}z16
+-- z17
+{0,-23} .. {-10,-7}z18
+{-7,-4} .. {-22,0}z19
+-- z20
+-- z21
+-- z22
+{-41,1} .. {0,33}z23
+-- z24
+{74,1} .. {48,42}z25
+{47,42} .. {-1,61}z26
+);
+FuF (z27
+{-42,1} .. {-16,13}z28
+{-15,11} .. {0,27}z29
+{0,50} .. {73,0}z30
+);
+FuF (z31
+{0,-56} .. {-27,-32}z32
+{-28,-33} .. {-53,0}z33
+-- z34
+{54,-1} .. {28,-37}z35
+{28,-35} .. {0,-60}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(103,518FX#,441FY#,204FY#);
+"g";
+z1=(528FX,0FY);
+z2=(528FX,32FY);
+z3=(430FX,32FY);
+z4=(430FX,436FY);
+z5=(426FX,441FY);
+z6=(369FX,407FY);
+z7=(254FX,440FY);
+z8=(104FX,370FY);
+z9=(43FX,198FY);
+z10=(82FX,49FY);
+z11=(198FX,-14FY);
+z12=(299FX,14FY);
+z13=(346FX,58FY);
+z14=(351FX,58FY);
+z15=(351FX,-134FY);
+z16=(333FX,-181FY);
+z17=(286FX,-189FY);
+z18=(286FX,-204FY);
+z19=(490FX,-204FY);
+z20=(490FX,-192FY);
+z21=(443FX,-179FY);
+z22=(430FX,-132FY);
+z23=(430FX,0FY);
+z24=(351FX,124FY);
+z25=(312FX,63FY);
+z26=(245FX,39FY);
+z27=(152FX,99FY);
+z28=(124FX,225FY);
+z29=(160FX,363FY);
+z30=(251FX,414FY);
+z31=(321FX,391FY);
+z32=(351FX,325FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-34,22} .. {-43,0}z7
+{-59,0} .. {-41,-46}z8
+{-41,-47} .. {0,-68}z9
+{0,-60} .. {26,-39}z10
+{28,-42} .. {50,0}z11
+{36,0} .. {31,19}z12
+{25,15} .. {6,15}z13
+-- z14
+-- z15
+{0,-24} .. {-12,-8}z16
+{-9,-5} .. {-23,0}z17
+-- z18
+-- z19
+-- z20
+{-22,0} .. {-9,8}z21
+{-8,9} .. {0,23}z22
+-- z23
+);
+FuF (z24
+{0,-22} .. {-26,-18}z25
+{-23,-16} .. {-22,0}z26
+{-40,0} .. {-22,40}z27
+{-19,34} .. {0,50}z28
+{1,58} .. {24,34}z29
+{23,34} .. {38,0}z30
+{29,0} .. {18,-15}z31
+{20,-16} .. {0,-28}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(104,501FX#,644FY#,0FY#);
+"h";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(435FX,25FY);
+z4=(422FX,71FY);
+z5=(422FX,291FY);
+z6=(306FX,441FY);
+z7=(149FX,363FY);
+z8=(149FX,642FY);
+z9=(144FX,644FY);
+z10=(91FX,626FY);
+z11=(10FX,603FY);
+z12=(10FX,588FY);
+z13=(34FX,589FY);
+z14=(65FX,575FY);
+z15=(70FX,539FY);
+z16=(70FX,73FY);
+z17=(62FX,27FY);
+z18=(9FX,14FY);
+z19=(9FX,0FY);
+z20=(212FX,0FY);
+z21=(212FX,14FY);
+z22=(158FX,28FY);
+z23=(149FX,72FY);
+z24=(149FX,329FY);
+z25=(204FX,371FY);
+z26=(271FX,390FY);
+z27=(329FX,361FY);
+z28=(343FX,287FY);
+z29=(343FX,71FY);
+z30=(333FX,25FY);
+z31=(288FX,14FY);
+z32=(288FX,0FY);
+FuF (z1
+-- z2
+{-22,1} .. {-7,6}z3
+{-8,7} .. {0,23}z4
+-- z5
+{0,100} .. {-78,0}z6
+{-57,0} .. {-48,-52}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{16,1} .. {4,-10}z14
+{3,-6} .. {0,-18}z15
+-- z16
+{0,-24} .. {-5,-7}z17
+{-7,-9} .. {-28,0}z18
+-- z19
+-- z20
+-- z21
+{-28,1} .. {-8,9}z22
+{-6,7} .. {0,22}z23
+-- z24
+{9,15} .. {28,13}z25
+{26,13} .. {18,0}z26
+{28,-1} .. {11,-18}z27
+{9,-16} .. {0,-34}z28
+-- z29
+{0,-24} .. {-7,-7}z30
+{-7,-6} .. {-24,-2}z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(105,501FX#,645FY#,204FY#);
+"i";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(434FX,25FY);
+z4=(422FX,76FY);
+z5=(422FX,298FY);
+z6=(312FX,441FY);
+z7=(149FX,364FY);
+z8=(149FX,643FY);
+z9=(142FX,645FY);
+z10=(67FX,620FY);
+z11=(10FX,603FY);
+z12=(10FX,587FY);
+z13=(20FX,590FY);
+z14=(35FX,590FY);
+z15=(66FX,569FY);
+z16=(70FX,527FY);
+z17=(70FX,-142FY);
+z18=(55FX,-180FY);
+z19=(12FX,-191FY);
+z20=(12FX,-204FY);
+z21=(211FX,-204FY);
+z22=(211FX,-191FY);
+z23=(149FX,-142FY);
+z24=(149FX,335FY);
+z25=(191FX,365FY);
+z26=(272FX,389FY);
+z27=(343FX,298FY);
+z28=(343FX,75FY);
+z29=(332FX,25FY);
+z30=(283FX,14FY);
+z31=(283FX,0FY);
+FuF (z1
+-- z2
+{-23,1} .. {-7,7}z3
+{-8,7} .. {0,27}z4
+-- z5
+{0,95} .. {-73,0}z6
+{-55,0} .. {-54,-51}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{16,0} .. {5,-14}z15
+{3,-7} .. {0,-21}z16
+-- z17
+{0,-19} .. {-10,-7}z18
+{-9,-7} .. {-19,0}z19
+-- z20
+-- z21
+-- z22
+{-41,0} .. {0,33}z23
+-- z24
+{9,9} .. {19,11}z25
+{28,16} .. {25,0}z26
+{47,0} .. {0,-61}z27
+-- z28
+{0,-27} .. {-7,-7}z29
+{-7,-7} .. {-25,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(106,448FX#,441FY#,204FY#);
+"j";
+z1=(419FX,267FY);
+z2=(370FX,389FY);
+z3=(242FX,441FY);
+z4=(94FX,373FY);
+z5=(29FX,220FY);
+z6=(62FX,143FY);
+z7=(139FX,105FY);
+z8=(212FX,53FY);
+z9=(189FX,12FY);
+z10=(72FX,-84FY);
+z11=(26FX,-156FY);
+z12=(43FX,-192FY);
+z13=(78FX,-204FY);
+z14=(414FX,-204FY);
+z15=(414FX,-172FY);
+z16=(171FX,-172FY);
+z17=(120FX,-128FY);
+z18=(160FX,-53FY);
+z19=(277FX,44FY);
+z20=(394FX,169FY);
+z21=(419FX,267FY);
+z22=(337FX,258FY);
+z23=(315FX,149FY);
+z24=(246FX,60FY);
+z25=(250FX,84FY);
+z26=(178FX,168FY);
+z27=(110FX,287FY);
+z28=(145FX,368FY);
+z29=(220FX,408FY);
+z30=(305FX,356FY);
+z31=(337FX,258FY);
+FuF (z1
+{0,47} .. {-33,34}z2
+{-33,35} .. {-52,0}z3
+{-55,0} .. {-43,-45}z4
+{-43,-44} .. {0,-57}z5
+{0,-29} .. {22,-22}z6
+{21,-21} .. {30,-5}z7
+{49,-7} .. {0,-27}z8
+{0,-14} .. {-15,-13}z9
+-- z10
+{-31,-25} .. {0,-23}z11
+{0,-14} .. {11,-10}z12
+{10,-8} .. {13,0}z13
+-- z14
+-- z15
+-- z16
+{-34,0} .. {0,29}z17
+{0,28} .. {26,22}z18
+-- z19
+{57,47} .. {21,36}z20
+{16,28} .. {0,37}z21
+);
+FuF (z22
+{-1,-43} .. {-14,-30}z23
+{-14,-29} .. {-32,-30}z24
+{3,8} .. {0,8}z25
+{0,32} .. {-48,24}z26
+{-46,23} .. {0,56}z27
+{0,28} .. {23,26}z28
+{24,27} .. {27,0}z29
+{33,0} .. {24,-35}z30
+{22,-31} .. {0,-34}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(107,501FX#,645FY#,204FY#);
+"k";
+z1=(484FX,-204FY);
+z2=(484FX,-191FY);
+z3=(422FX,-142FY);
+z4=(422FX,425FY);
+z5=(278FX,425FY);
+z6=(278FX,408FY);
+z7=(330FX,397FY);
+z8=(343FX,355FY);
+z9=(343FX,109FY);
+z10=(301FX,59FY);
+z11=(220FX,36FY);
+z12=(165FX,61FY);
+z13=(149FX,115FY);
+z14=(149FX,642FY);
+z15=(140FX,645FY);
+z16=(67FX,620FY);
+z17=(9FX,603FY);
+z18=(9FX,587FY);
+z19=(20FX,590FY);
+z20=(35FX,590FY);
+z21=(61FX,579FY);
+z22=(70FX,526FY);
+z23=(70FX,105FY);
+z24=(105FX,19FY);
+z25=(183FX,-14FY);
+z26=(269FX,6FY);
+z27=(344FX,65FY);
+z28=(344FX,-142FY);
+z29=(330FX,-180FY);
+z30=(286FX,-191FY);
+z31=(286FX,-204FY);
+FuF (z1
+-- z2
+{-41,0} .. {0,33}z3
+-- z4
+-- z5
+-- z6
+{26,0} .. {8,-8}z7
+{9,-7} .. {0,-21}z8
+-- z9
+{0,-18} .. {-28,-16}z10
+{-27,-15} .. {-26,0}z11
+{-24,0} .. {-13,17}z12
+{-10,14} .. {0,22}z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+{12,0} .. {5,-7}z21
+{6,-8} .. {0,-27}z22
+-- z23
+{0,-35} .. {23,-23}z24
+{21,-22} .. {31,0}z25
+{29,0} .. {28,13}z26
+{32,14} .. {18,25}z27
+-- z28
+{0,-19} .. {-10,-7}z29
+{-10,-7} .. {-19,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(108,264FX#,441FY#,204FY#);
+"l";
+z1=(258FX,-204FY);
+z2=(258FX,-172FY);
+z3=(190FX,-172FY);
+z4=(160FX,-164FY);
+z5=(149FX,-138FY);
+z6=(149FX,439FY);
+z7=(143FX,441FY);
+z8=(69FX,415FY);
+z9=(10FX,398FY);
+z10=(10FX,382FY);
+z11=(20FX,386FY);
+z12=(35FX,386FY);
+z13=(66FX,365FY);
+z14=(70FX,323FY);
+z15=(70FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-13,0} .. {-7,5}z4
+{-7,4} .. {0,13}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{16,0} .. {4,-14}z13
+{3,-7} .. {0,-21}z14
+-- z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(109,502FX#,634FY#,15FY#);
+"m";
+z1=(481FX,28FY);
+z2=(481FX,42FY);
+z3=(461FX,41FY);
+z4=(422FX,86FY);
+z5=(422FX,375FY);
+z6=(366FX,462FY);
+z7=(310FX,548FY);
+z8=(323FX,585FY);
+z9=(359FX,602FY);
+z10=(390FX,574FY);
+z11=(441FX,545FY);
+z12=(481FX,581FY);
+z13=(453FX,621FY);
+z14=(392FX,634FY);
+z15=(298FX,602FY);
+z16=(264FX,520FY);
+z17=(303FX,438FY);
+z18=(343FX,355FY);
+z19=(343FX,107FY);
+z20=(297FX,58FY);
+z21=(223FX,35FY);
+z22=(149FX,115FY);
+z23=(149FX,425FY);
+z24=(12FX,425FY);
+z25=(12FX,411FY);
+z26=(58FX,394FY);
+z27=(70FX,353FY);
+z28=(70FX,133FY);
+z29=(106FX,18FY);
+z30=(181FX,-14FY);
+z31=(276FX,12FY);
+z32=(346FX,65FY);
+z33=(346FX,-15FY);
+z34=(422FX,11FY);
+z35=(481FX,28FY);
+FuF (z1
+-- z2
+{-7,-1} .. {-6,0}z3
+{-26,0} .. {0,30}z4
+-- z5
+{0,27} .. {-38,31}z6
+{-37,31} .. {0,26}z7
+{0,15} .. {8,10}z8
+{9,11} .. {15,0}z9
+{8,0} .. {13,-18}z10
+{13,-19} .. {21,0}z11
+{27,0} .. {0,24}z12
+{0,17} .. {-19,10}z13
+{-16,8} .. {-24,0}z14
+{-40,-1} .. {-23,-20}z15
+{-23,-21} .. {0,-34}z16
+{0,-20} .. {27,-35}z17
+{26,-34} .. {0,-21}z18
+-- z19
+{0,-16} .. {-31,-17}z20
+{-29,-16} .. {-20,0}z21
+{-49,0} .. {0,54}z22
+-- z23
+-- z24
+-- z25
+{23,-3} .. {7,-8}z26
+{8,-7} .. {0,-20}z27
+-- z28
+{0,-50} .. {24,-26}z29
+{20,-21} .. {30,0}z30
+{30,0} .. {33,17}z31
+{30,15} .. {17,20}z32
+-- z33
+-- z34
+{29,10} .. {11,2}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(110,501FX#,624FY#,15FY#);
+"n";
+z1=(481FX,28FY);
+z2=(481FX,41FY);
+z3=(464FX,39FY);
+z4=(422FX,86FY);
+z5=(422FX,425FY);
+z6=(298FX,425FY);
+z7=(298FX,408FY);
+z8=(334FX,396FY);
+z9=(343FX,353FY);
+z10=(343FX,90FY);
+z11=(220FX,35FY);
+z12=(149FX,113FY);
+z13=(149FX,371FY);
+z14=(205FX,463FY);
+z15=(205FX,483FY);
+z16=(145FX,502FY);
+z17=(119FX,547FY);
+z18=(176FX,591FY);
+z19=(276FX,591FY);
+z20=(276FX,624FY);
+z21=(156FX,624FY);
+z22=(79FX,606FY);
+z23=(44FX,551FY);
+z24=(65FX,495FY);
+z25=(106FX,472FY);
+z26=(106FX,468FY);
+z27=(78FX,427FY);
+z28=(70FX,338FY);
+z29=(70FX,130FY);
+z30=(100FX,24FY);
+z31=(183FX,-14FY);
+z32=(348FX,65FY);
+z33=(348FX,-15FY);
+z34=(422FX,11FY);
+z35=(481FX,28FY);
+FuF (z1
+-- z2
+{-6,-1} .. {-5,0}z3
+{-28,0} .. {0,31}z4
+-- z5
+-- z6
+-- z7
+{18,0} .. {6,-7}z8
+{6,-8} .. {0,-20}z9
+-- z10
+{-48,-37} .. {-34,0}z11
+{-47,0} .. {0,52}z12
+-- z13
+{0,61} .. {37,0}z14
+-- z15
+{-23,0} .. {-17,13}z16
+{-18,13} .. {0,17}z17
+{0,29} .. {38,0}z18
+-- z19
+-- z20
+-- z21
+{-30,0} .. {-21,-12}z22
+{-24,-13} .. {0,-23}z23
+{0,-24} .. {14,-13}z24
+{8,-7} .. {20,-8}z25
+-- z26
+{-14,-11} .. {-5,-16}z27
+{-6,-18} .. {0,-42}z28
+-- z29
+{0,-45} .. {20,-25}z30
+{21,-25} .. {35,0}z31
+{62,0} .. {48,52}z32
+-- z33
+-- z34
+{27,9} .. {12,3}z35
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(111,501FX#,441FY#,0FY#);
+"o";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(435FX,25FY);
+z4=(422FX,62FY);
+z5=(422FX,298FY);
+z6=(312FX,441FY);
+z7=(146FX,363FY);
+z8=(146FX,438FY);
+z9=(140FX,440FY);
+z10=(9FX,397FY);
+z11=(14FX,384FY);
+z12=(43FX,389FY);
+z13=(70FX,354FY);
+z14=(70FX,62FY);
+z15=(58FX,25FY);
+z16=(12FX,14FY);
+z17=(12FX,0FY);
+z18=(211FX,0FY);
+z19=(211FX,14FY);
+z20=(162FX,25FY);
+z21=(149FX,62FY);
+z22=(149FX,334FY);
+z23=(212FX,375FY);
+z24=(272FX,389FY);
+z25=(343FX,298FY);
+z26=(343FX,61FY);
+z27=(333FX,25FY);
+z28=(288FX,14FY);
+z29=(288FX,0FY);
+FuF (z1
+-- z2
+{-21,0} .. {-8,7}z3
+{-9,7} .. {0,18}z4
+-- z5
+{0,95} .. {-73,0}z6
+{-59,0} .. {-52,-52}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{15,3} .. {4,0}z12
+{18,0} .. {0,-23}z13
+-- z14
+{0,-18} .. {-8,-7}z15
+{-8,-7} .. {-23,0}z16
+-- z17
+-- z18
+-- z19
+{-24,0} .. {-9,7}z20
+{-8,7} .. {0,18}z21
+-- z22
+{18,17} .. {24,10}z23
+{23,10} .. {17,0}z24
+{47,-1} .. {0,-60}z25
+-- z26
+{0,-18} .. {-6,-6}z27
+{-8,-7} .. {-22,0}z28
+-- z29
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(112,734FX#,425FY#,205FY#);
+"p";
+z1=(718FX,-204FY);
+z2=(718FX,-192FY);
+z3=(656FX,-143FY);
+z4=(655FX,425FY);
+z5=(511FX,425FY);
+z6=(511FX,410FY);
+z7=(564FX,399FY);
+z8=(576FX,360FY);
+z9=(576FX,92FY);
+z10=(531FX,53FY);
+z11=(468FX,35FY);
+z12=(412FX,67FY);
+z13=(402FX,137FY);
+z14=(402FX,425FY);
+z15=(255FX,425FY);
+z16=(255FX,410FY);
+z17=(288FX,407FY);
+z18=(308FX,395FY);
+z19=(323FX,335FY);
+z20=(323FX,93FY);
+z21=(282FX,52FY);
+z22=(218FX,35FY);
+z23=(166FX,53FY);
+z24=(149FX,122FY);
+z25=(149FX,425FY);
+z26=(5FX,425FY);
+z27=(5FX,410FY);
+z28=(54FX,401FY);
+z29=(70FX,356FY);
+z30=(70FX,154FY);
+z31=(93FX,35FY);
+z32=(181FX,-14FY);
+z33=(264FX,9FY);
+z34=(333FX,65FY);
+z35=(433FX,-14FY);
+z36=(576FX,58FY);
+z37=(577FX,-143FY);
+z38=(562FX,-181FY);
+z39=(518FX,-192FY);
+z40=(518FX,-205FY);
+FuF (z1
+-- z2
+{-41,0} .. {0,32}z3
+-- z4
+-- z5
+-- z6
+{28,0} .. {8,-8}z7
+{8,-7} .. {0,-19}z8
+-- z9
+{0,-13} .. {-30,-14}z10
+{-27,-12} .. {-15,0}z11
+{-28,1} .. {-9,21}z12
+{-7,15} .. {0,32}z13
+-- z14
+-- z15
+-- z16
+{17,-1} .. {5,-1}z17
+{7,-3} .. {6,-6}z18
+{10,-10} .. {0,-30}z19
+-- z20
+{-9,-16} .. {-19,-11}z21
+{-19,-12} .. {-23,0}z22
+{-24,0} .. {-10,11}z23
+{-11,13} .. {0,33}z24
+-- z25
+-- z26
+-- z27
+{23,-1} .. {10,-5}z28
+{11,-7} .. {0,-23}z29
+-- z30
+{0,-48} .. {16,-32}z31
+{16,-33} .. {42,0}z32
+{29,0} .. {26,15}z33
+{28,16} .. {18,21}z34
+{15,-52} .. {51,0}z35
+{55,0} .. {40,48}z36
+-- z37
+{0,-18} .. {-10,-7}z38
+{-10,-7} .. {-20,0}z39
+-- z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(113,508FX#,441FY#,204FY#);
+"q";
+z1=(474FX,-93FY);
+z2=(474FX,-60FY);
+z3=(154FX,-60FY);
+z4=(154FX,91FY);
+z5=(158FX,91FY);
+z6=(214FX,44FY);
+z7=(298FX,23FY);
+z8=(416FX,68FY);
+z9=(462FX,198FY);
+z10=(394FX,379FY);
+z11=(241FX,440FY);
+z12=(136FX,407FY);
+z13=(79FX,441FY);
+z14=(75FX,-60FY);
+z15=(0FX,-60FY);
+z16=(0FX,-94FY);
+z17=(75FX,-94FY);
+z18=(75FX,-137FY);
+z19=(60FX,-184FY);
+z20=(15FX,-192FY);
+z21=(15FX,-204FY);
+z22=(238FX,-204FY);
+z23=(238FX,-189FY);
+z24=(173FX,-182FY);
+z25=(154FX,-138FY);
+z26=(154FX,-93FY);
+z27=(381FX,225FY);
+z28=(349FX,112FY);
+z29=(255FX,70FY);
+z30=(154FX,124FY);
+z31=(154FX,325FY);
+z32=(178FX,392FY);
+z33=(244FX,414FY);
+z34=(381FX,225FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{12,-18} .. {26,-14}z6
+{27,-14} .. {29,0}z7
+{49,0} .. {30,30}z8
+{31,32} .. {0,55}z9
+{0,75} .. {-46,44}z10
+{-41,41} .. {-60,0}z11
+{-35,0} .. {-35,-22}z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+{0,-24} .. {-10,-7}z19
+{-6,-4} .. {-24,-2}z20
+-- z21
+-- z22
+-- z23
+{-34,0} .. {-9,4}z24
+{-13,6} .. {0,23}z25
+-- z26
+);
+FuF (z27
+{0,-48} .. {-21,-28}z28
+{-22,-28} .. {-40,0}z29
+{-41,0} .. {-26,36}z30
+-- z31
+{0,29} .. {16,15}z32
+{17,16} .. {28,-1}z33
+{91,-2} .. {0,-123}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(114,502FX#,441FY#,204FY#);
+"r";
+z1=(480FX,0FY);
+z2=(480FX,14FY);
+z3=(438FX,23FY);
+z4=(423FX,62FY);
+z5=(423FX,298FY);
+z6=(314FX,441FY);
+z7=(146FX,364FY);
+z8=(146FX,439FY);
+z9=(140FX,441FY);
+z10=(67FX,415FY);
+z11=(9FX,398FY);
+z12=(9FX,382FY);
+z13=(43FX,388FY);
+z14=(67FX,371FY);
+z15=(70FX,322FY);
+z16=(70FX,-142FY);
+z17=(56FX,-180FY);
+z18=(12FX,-191FY);
+z19=(12FX,-204FY);
+z20=(212FX,-204FY);
+z21=(212FX,-191FY);
+z22=(149FX,-142FY);
+z23=(149FX,335FY);
+z24=(274FX,389FY);
+z25=(343FX,298FY);
+z26=(343FX,61FY);
+z27=(327FX,21FY);
+z28=(283FX,14FY);
+z29=(283FX,0FY);
+FuF (z1
+-- z2
+{-20,1} .. {-8,6}z3
+{-10,6} .. {0,19}z4
+-- z5
+{0,95} .. {-72,0}z6
+{-57,0} .. {-55,-51}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{14,4} .. {9,0}z13
+{13,0} .. {3,-12}z14
+{2,-7} .. {0,-26}z15
+-- z16
+{0,-19} .. {-9,-7}z17
+{-10,-7} .. {-19,0}z18
+-- z19
+-- z20
+-- z21
+{-42,0} .. {0,33}z22
+-- z23
+{39,36} .. {44,0}z24
+{46,0} .. {0,-61}z25
+-- z26
+{0,-20} .. {-11,-7}z27
+{-8,-4} .. {-22,0}z28
+-- z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(115,501FX#,425FY#,14FY#);
+"s";
+z1=(5FX,425FY);
+z2=(5FX,410FY);
+z3=(70FX,363FY);
+z4=(70FX,142FY);
+z5=(181FX,-14FY);
+z6=(346FX,64FY);
+z7=(346FX,-11FY);
+z8=(353FX,-13FY);
+z9=(483FX,29FY);
+z10=(478FX,43FY);
+z11=(457FX,41FY);
+z12=(422FX,82FY);
+z13=(422FX,425FY);
+z14=(281FX,425FY);
+z15=(281FX,410FY);
+z16=(330FX,400FY);
+z17=(343FX,362FY);
+z18=(343FX,93FY);
+z19=(280FX,50FY);
+z20=(220FX,35FY);
+z21=(149FX,128FY);
+z22=(149FX,425FY);
+FuF (z1
+-- z2
+{43,0} .. {0,-32}z3
+-- z4
+{0,-104} .. {74,0}z5
+{58,0} .. {51,52}z6
+-- z7
+-- z8
+-- z9
+-- z10
+{-8,-2} .. {-6,0}z11
+{-23,0} .. {0,28}z12
+-- z13
+-- z14
+-- z15
+{24,0} .. {9,-7}z16
+{9,-7} .. {0,-19}z17
+-- z18
+{-17,-18} .. {-25,-11}z19
+{-23,-10} .. {-17,0}z20
+{-47,0} .. {0,62}z21
+-- z22
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(116,734FX#,439FY#,207FY#);
+"t";
+z1=(710FX,0FY);
+z2=(710FX,14FY);
+z3=(666FX,23FY);
+z4=(655FX,69FY);
+z5=(655FX,264FY);
+z6=(543FX,439FY);
+z7=(402FX,368FY);
+z8=(402FX,423FY);
+z9=(255FX,423FY);
+z10=(255FX,408FY);
+z11=(288FX,405FY);
+z12=(308FX,393FY);
+z13=(323FX,333FY);
+z14=(323FX,96FY);
+z15=(218FX,33FY);
+z16=(165FX,54FY);
+z17=(149FX,124FY);
+z18=(149FX,423FY);
+z19=(5FX,423FY);
+z20=(5FX,408FY);
+z21=(54FX,399FY);
+z22=(70FX,354FY);
+z23=(70FX,157FY);
+z24=(97FX,23FY);
+z25=(181FX,-16FY);
+z26=(258FX,0FY);
+z27=(323FX,56FY);
+z28=(323FX,-144FY);
+z29=(309FX,-183FY);
+z30=(264FX,-193FY);
+z31=(264FX,-207FY);
+z32=(464FX,-207FY);
+z33=(464FX,-193FY);
+z34=(402FX,-144FY);
+z35=(402FX,325FY);
+z36=(437FX,368FY);
+z37=(507FX,390FY);
+z38=(576FX,296FY);
+z39=(576FX,70FY);
+z40=(563FX,23FY);
+z41=(519FX,15FY);
+z42=(519FX,0FY);
+FuF (z1
+-- z2
+{-21,0} .. {-8,6}z3
+{-7,8} .. {0,23}z4
+-- z5
+{0,118} .. {-75,-1}z6
+{-43,-1} .. {-51,-47}z7
+-- z8
+-- z9
+-- z10
+{16,0} .. {6,-2}z11
+{9,-3} .. {5,-5}z12
+{10,-10} .. {0,-30}z13
+-- z14
+{-20,-42} .. {-50,0}z15
+{-24,0} .. {-11,14}z16
+{-10,13} .. {0,33}z17
+-- z18
+-- z19
+-- z20
+{23,0} .. {10,-5}z21
+{11,-6} .. {0,-24}z22
+-- z23
+{0,-63} .. {18,-27}z24
+{19,-27} .. {37,1}z25
+{27,0} .. {24,10}z26
+{21,9} .. {23,29}z27
+-- z28
+{0,-20} .. {-9,-6}z29
+{-9,-6} .. {-21,0}z30
+-- z31
+-- z32
+-- z33
+{-41,0} .. {0,32}z34
+-- z35
+{0,13} .. {23,15}z36
+{24,16} .. {23,0}z37
+{46,-1} .. {0,-62}z38
+-- z39
+{0,-25} .. {-9,-6}z40
+{-9,-5} .. {-20,0}z41
+-- z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(117,797FX#,441FY#,0FY#);
+"u";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(435FX,25FY);
+z4=(422FX,62FY);
+z5=(422FX,298FY);
+z6=(312FX,441FY);
+z7=(146FX,363FY);
+z8=(146FX,438FY);
+z9=(140FX,440FY);
+z10=(9FX,397FY);
+z11=(14FX,384FY);
+z12=(43FX,389FY);
+z13=(70FX,354FY);
+z14=(70FX,62FY);
+z15=(58FX,25FY);
+z16=(12FX,14FY);
+z17=(12FX,0FY);
+z18=(211FX,0FY);
+z19=(211FX,14FY);
+z20=(162FX,25FY);
+z21=(149FX,62FY);
+z22=(149FX,334FY);
+z23=(212FX,375FY);
+z24=(272FX,389FY);
+z25=(343FX,298FY);
+z26=(343FX,61FY);
+z27=(333FX,25FY);
+z28=(288FX,14FY);
+z29=(288FX,0FY);
+z30=(792FX,0FY);
+z31=(792FX,28FY);
+z32=(649FX,28FY);
+z33=(649FX,425FY);
+z34=(511FX,425FY);
+z35=(511FX,411FY);
+z36=(558FX,395FY);
+z37=(570FX,353FY);
+z38=(570FX,0FY);
+FuF (z1
+-- z2
+{-21,0} .. {-8,7}z3
+{-9,7} .. {0,18}z4
+-- z5
+{0,95} .. {-73,0}z6
+{-59,0} .. {-52,-52}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{15,3} .. {4,0}z12
+{18,0} .. {0,-23}z13
+-- z14
+{0,-18} .. {-8,-7}z15
+{-8,-7} .. {-23,0}z16
+-- z17
+-- z18
+-- z19
+{-24,0} .. {-9,7}z20
+{-8,7} .. {0,18}z21
+-- z22
+{18,17} .. {24,10}z23
+{23,10} .. {17,0}z24
+{47,-1} .. {0,-60}z25
+-- z26
+{0,-18} .. {-6,-6}z27
+{-8,-7} .. {-22,0}z28
+-- z29
+);
+FuF (z30
+-- z31
+-- z32
+-- z33
+-- z34
+-- z35
+{24,-3} .. {7,-7}z36
+{8,-8} .. {0,-20}z37
+-- z38
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(118,521FX#,645FY#,204FY#);
+"v";
+z1=(520FX,-204FY);
+z2=(520FX,-172FY);
+z3=(473FX,-172FY);
+z4=(437FX,-168FY);
+z5=(422FX,-138FY);
+z6=(422FX,642FY);
+z7=(418FX,645FY);
+z8=(364FX,627FY);
+z9=(284FX,604FY);
+z10=(284FX,589FY);
+z11=(308FX,589FY);
+z12=(338FX,576FY);
+z13=(343FX,541FY);
+z14=(343FX,99FY);
+z15=(303FX,62FY);
+z16=(220FX,36FY);
+z17=(166FX,60FY);
+z18=(149FX,115FY);
+z19=(149FX,425FY);
+z20=(12FX,425FY);
+z21=(12FX,411FY);
+z22=(58FX,394FY);
+z23=(70FX,353FY);
+z24=(70FX,133FY);
+z25=(183FX,-14FY);
+z26=(266FX,6FY);
+z27=(343FX,65FY);
+z28=(343FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-18,0} .. {-6,2}z4
+{-10,5} .. {0,15}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{17,0} .. {3,-10}z12
+{3,-10} .. {0,-13}z13
+-- z14
+{0,-9} .. {-27,-16}z15
+{-29,-18} .. {-26,0}z16
+{-24,0} .. {-12,16}z17
+{-11,15} .. {0,22}z18
+-- z19
+-- z20
+-- z21
+{23,-3} .. {7,-8}z22
+{8,-7} .. {0,-20}z23
+-- z24
+{0,-98} .. {75,0}z25
+{26,0} .. {30,13}z26
+{35,15} .. {17,24}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(119,298FX#,425FY#,0FY#);
+"w";
+z1=(292FX,0FY);
+z2=(292FX,28FY);
+z3=(149FX,28FY);
+z4=(149FX,425FY);
+z5=(12FX,425FY);
+z6=(12FX,411FY);
+z7=(58FX,395FY);
+z8=(70FX,353FY);
+z9=(70FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{23,-3} .. {7,-7}z7
+{8,-8} .. {0,-20}z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(120,734FX#,645FY#,204FY#);
+"x";
+z1=(713FX,29FY);
+z2=(713FX,41FY);
+z3=(693FX,40FY);
+z4=(661FX,53FY);
+z5=(655FX,87FY);
+z6=(655FX,425FY);
+z7=(510FX,425FY);
+z8=(510FX,408FY);
+z9=(564FX,400FY);
+z10=(576FX,355FY);
+z11=(576FX,99FY);
+z12=(543FX,60FY);
+z13=(470FX,36FY);
+z14=(415FX,60FY);
+z15=(399FX,115FY);
+z16=(405FX,298FY);
+z17=(295FX,440FY);
+z18=(146FX,362FY);
+z19=(146FX,643FY);
+z20=(140FX,645FY);
+z21=(67FX,620FY);
+z22=(10FX,603FY);
+z23=(10FX,587FY);
+z24=(20FX,590FY);
+z25=(35FX,590FY);
+z26=(66FX,569FY);
+z27=(70FX,527FY);
+z28=(70FX,-142FY);
+z29=(55FX,-180FY);
+z30=(12FX,-191FY);
+z31=(12FX,-204FY);
+z32=(211FX,-204FY);
+z33=(211FX,-191FY);
+z34=(149FX,-142FY);
+z35=(149FX,333FY);
+z36=(256FX,392FY);
+z37=(326FX,298FY);
+z38=(320FX,105FY);
+z39=(352FX,21FY);
+z40=(433FX,-14FY);
+z41=(580FX,63FY);
+z42=(582FX,-14FY);
+z43=(593FX,-14FY);
+z44=(713FX,29FY);
+FuF (z1
+-- z2
+{-7,0} .. {-6,0}z3
+{-16,0} .. {-5,9}z4
+{-4,6} .. {0,16}z5
+-- z6
+-- z7
+-- z8
+{28,0} .. {8,-6}z9
+{8,-6} .. {0,-24}z10
+-- z11
+{0,-11} .. {-22,-15}z12
+{-24,-16} .. {-24,0}z13
+{-24,0} .. {-13,16}z14
+{-11,15} .. {1,22}z15
+-- z16
+{3,94} .. {-76,0}z17
+{-42,0} .. {-58,-52}z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+{16,0} .. {5,-14}z26
+{3,-7} .. {0,-21}z27
+-- z28
+{0,-19} .. {-10,-7}z29
+{-9,-7} .. {-19,0}z30
+-- z31
+-- z32
+-- z33
+{-41,0} .. {0,33}z34
+-- z35
+{47,40} .. {25,0}z36
+{48,0} .. {-2,-63}z37
+-- z38
+{-1,-32} .. {23,-24}z39
+{22,-23} .. {31,0}z40
+{49,0} .. {49,51}z41
+-- z42
+-- z43
+{66,23} .. {14,6}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(121,280FX#,441FY#,205FY#);
+"y";
+z1=(202FX,0FY);
+z2=(202FX,438FY);
+z3=(197FX,441FY);
+z4=(117FX,412FY);
+z5=(88FX,400FY);
+z6=(50FX,390FY);
+z7=(50FX,375FY);
+z8=(88FX,379FY);
+z9=(115FX,365FY);
+z10=(123FX,318FY);
+z11=(123FX,-58FY);
+z12=(119FX,-128FY);
+z13=(76FX,-174FY);
+z14=(37FX,-145FY);
+z15=(-6FX,-117FY);
+z16=(-46FX,-153FY);
+z17=(-18FX,-194FY);
+z18=(42FX,-205FY);
+z19=(164FX,-149FY);
+z20=(202FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-13,-5} .. {-6,-3}z5
+{-17,-5} .. {-9,-1}z6
+-- z7
+-- z8
+{15,-1} .. {3,-8}z9
+{5,-8} .. {0,-23}z10
+-- z11
+{0,-35} .. {-2,-12}z12
+{-7,-31} .. {-22,0}z13
+{-8,0} .. {-18,19}z14
+{-19,19} .. {-10,0}z15
+{-27,-1} .. {1,-23}z16
+{1,-19} .. {18,-8}z17
+{17,-7} .. {22,0}z18
+{57,0} .. {25,38}z19
+{25,38} .. {0,62}z20
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(122,524FX#,441FY#,204FY#);
+"z";
+z1=(529FX,-204FY);
+z2=(529FX,-172FY);
+z3=(475FX,-172FY);
+z4=(438FX,-164FY);
+z5=(430FX,-128FY);
+z6=(430FX,436FY);
+z7=(426FX,441FY);
+z8=(369FX,407FY);
+z9=(321FX,430FY);
+z10=(265FX,440FY);
+z11=(110FX,376FY);
+z12=(42FX,198FY);
+z13=(83FX,45FY);
+z14=(209FX,-14FY);
+z15=(297FX,14FY);
+z16=(346FX,58FY);
+z17=(351FX,58FY);
+z18=(351FX,-204FY);
+z19=(351FX,124FY);
+z20=(309FX,61FY);
+z21=(245FX,39FY);
+z22=(152FX,99FY);
+z23=(123FX,225FY);
+z24=(166FX,372FY);
+z25=(263FX,414FY);
+z26=(351FX,325FY);
+FuF (z1
+-- z2
+-- z3
+{-20,0} .. {-5,5}z4
+{-5,4} .. {0,19}z5
+-- z6
+-- z7
+-- z8
+{-28,14} .. {-4,1}z9
+{-16,8} .. {-21,0}z10
+{-61,0} .. {-42,-42}z11
+{-45,-46} .. {0,-73}z12
+{0,-65} .. {27,-37}z13
+{29,-39} .. {55,0}z14
+{28,0} .. {31,19}z15
+{26,16} .. {6,13}z16
+-- z17
+-- z18
+);
+FuF (z19
+{0,-24} .. {-28,-18}z20
+{-24,-15} .. {-19,0}z21
+{-40,0} .. {-22,40}z22
+{-19,34} .. {0,50}z23
+{0,65} .. {29,33}z24
+{24,28} .. {40,0}z25
+{58,-1} .. {0,-59}z26
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(123,450FX#,257FY#,0FY#);
+"hyphen";
+z1=(0FX,197FY);
+z2=(450FX,197FY);
+z3=(450FX,257FY);
+z4=(0FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,129FX#,683FY#,0FY#);
+"shesht";
+z1=(123FX,659FY);
+z2=(89FX,683FY);
+z3=(74FX,680FY);
+z4=(50FX,659FY);
+z5=(-53FX,479FY);
+z6=(-32FX,469FY);
+z7=(110FX,616FY);
+z8=(121FX,636FY);
+z9=(123FX,659FY);
+FuF (z1
+{-5,16} .. {-18,0}z2
+-- z3
+{-10,-5} .. {-5,-9}z4
+-- z5
+-- z6
+-- z7
+{5,6} .. {2,8}z8
+{3,7} .. {-2,9}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(125,1000FX#,257FY#,0FY#);
+"emdash";
+z1=(0FX,197FY);
+z2=(1000FX,197FY);
+z3=(1000FX,257FY);
+z4=(0FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,314FX#,637FY#,8FY#);
+"exclam";
+z1=(223FX,562FY);
+z2=(211FX,615FY);
+z3=(172FX,637FY);
+z4=(133FX,614FY);
+z5=(123FX,559FY);
+z6=(124FX,527FY);
+z7=(132FX,465FY);
+z8=(155FX,323FY);
+z9=(166FX,166FY);
+z10=(178FX,166FY);
+z11=(222FX,537FY);
+z12=(224FX,39FY);
+z13=(209FX,76FY);
+z14=(173FX,91FY);
+z15=(136FX,75FY);
+z16=(123FX,39FY);
+z17=(137FX,4FY);
+z18=(173FX,-8FY);
+z19=(210FX,4FY);
+z20=(224FX,39FY);
+FuF (z1
+{1,22} .. {-7,14}z2
+{-8,15} .. {-18,0}z3
+{-19,-1} .. {-7,-15}z4
+{-8,-18} .. {1,-19}z5
+-- z6
+-- z7
+-- z8
+{7,-46} .. {0,-58}z9
+-- z10
+-- z11
+);
+FuF (z12
+{-1,14} .. {-10,11}z13
+{-10,10} .. {-14,0}z14
+{-16,-1} .. {-9,-10}z15
+{-9,-11} .. {0,-14}z16
+{0,-15} .. {10,-8}z17
+{11,-9} .. {13,0}z18
+{14,1} .. {10,8}z19
+{10,10} .. {0,13}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(3,655FX#,637FY#,14FY#);
+"Dz";
+z1=(595FX,387FY);
+z2=(522FX,571FY);
+z3=(335FX,637FY);
+z4=(152FX,578FY);
+z5=(69FX,408FY);
+z6=(74FX,365FY);
+z7=(171FX,365FY);
+z8=(168FX,418FY);
+z9=(217FX,555FY);
+z10=(333FX,601FY);
+z11=(492FX,389FY);
+z12=(452FX,241FY);
+z13=(374FX,135FY);
+z14=(201FX,209FY);
+z15=(107FX,177FY);
+z16=(64FX,94FY);
+z17=(105FX,11FY);
+z18=(189FX,-14FY);
+z19=(339FX,40FY);
+z20=(465FX,-13FY);
+z21=(590FX,60FY);
+z22=(561FX,78FY);
+z23=(509FX,47FY);
+z24=(421FX,100FY);
+z25=(537FX,230FY);
+z26=(595FX,387FY);
+z27=(298FX,70FY);
+z28=(189FX,23FY);
+z29=(137FX,37FY);
+z30=(116FX,73FY);
+z31=(137FX,114FY);
+z32=(191FX,126FY);
+z33=(298FX,70FY);
+FuF (z1
+{0,77} .. {-48,46}z2
+{-47,44} .. {-77,0}z3
+{-72,0} .. {-50,-39}z4
+{-56,-44} .. {0,-70}z5
+{0,-14} .. {4,-15}z6
+-- z7
+{-2,6} .. {0,29}z8
+{0,58} .. {33,33}z9
+{30,31} .. {47,0}z10
+{106,0} .. {0,-141}z11
+{0,-48} .. {-27,-51}z12
+{-22,-42} .. {-31,-29}z13
+{-65,50} .. {-50,-1}z14
+{-36,0} .. {-26,-21}z15
+{-28,-21} .. {0,-34}z16
+{0,-36} .. {27,-19}z17
+{23,-17} .. {33,0}z18
+{46,0} .. {54,36}z19
+{44,-36} .. {40,0}z20
+{52,0} .. {31,49}z21
+-- z22
+{-15,-21} .. {-19,0}z23
+{-15,0} .. {-44,35}z24
+{43,34} .. {34,53}z25
+{38,60} .. {0,45}z26
+);
+FuF (z27
+{-40,-32} .. {-33,0}z28
+{-21,0} .. {-14,10}z29
+{-14,9} .. {0,15}z30
+{-1,18} .. {15,10}z31
+{13,9} .. {23,0}z32
+{29,-1} .. {43,-37}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(4,707FX#,637FY#,67FY#);
+"Gh";
+z1=(700FX,-67FY);
+z2=(700FX,-35FY);
+z3=(665FX,20FY);
+z4=(593FX,37FY);
+z5=(525FX,37FY);
+z6=(525FX,366FY);
+z7=(461FX,565FY);
+z8=(282FX,637FY);
+z9=(106FX,566FY);
+z10=(41FX,366FY);
+z11=(41FX,315FY);
+z12=(138FX,315FY);
+z13=(138FX,394FY);
+z14=(281FX,601FY);
+z15=(428FX,391FY);
+z16=(428FX,0FY);
+z17=(525FX,0FY);
+z18=(577FX,-44FY);
+z19=(577FX,-67FY);
+FuF (z1
+-- z2
+{0,23} .. {-23,14}z3
+{-20,11} .. {-28,0}z4
+-- z5
+-- z6
+{0,85} .. {-43,48}z7
+{-42,48} .. {-77,0}z8
+{-74,0} .. {-43,-48}z9
+{-43,-48} .. {0,-86}z10
+-- z11
+-- z12
+-- z13
+{0,138} .. {96,0}z14
+{98,0} .. {0,-140}z15
+-- z16
+-- z17
+{35,0} .. {0,-29}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(5,626FX#,638FY#,0FY#);
+"Chmute";
+z1=(564FX,0FY);
+z2=(564FX,146FY);
+z3=(478FX,359FY);
+z4=(256FX,503FY);
+z5=(383FX,592FY);
+z6=(416FX,555FY);
+z7=(416FX,529FY);
+z8=(539FX,529FY);
+z9=(539FX,555FY);
+z10=(505FX,617FY);
+z11=(411FX,638FY);
+z12=(319FX,608FY);
+z13=(216FX,518FY);
+z14=(119FX,544FY);
+z15=(109FX,508FY);
+z16=(192FX,485FY);
+z17=(93FX,306FY);
+z18=(55FX,111FY);
+z19=(55FX,0FY);
+z20=(467FX,37FY);
+z21=(152FX,37FY);
+z22=(152FX,144FY);
+z23=(174FX,329FY);
+z24=(234FX,469FY);
+z25=(467FX,145FY);
+FuF (z1
+-- z2
+{0,77} .. {-58,64}z3
+{-55,62} .. {-92,35}z4
+{51,59} .. {34,0}z5
+{22,0} .. {0,-25}z6
+-- z7
+-- z8
+-- z9
+{0,27} .. {-23,15}z10
+{-23,14} .. {-40,0}z11
+{-28,0} .. {-34,-20}z12
+{-38,-22} .. {-31,-38}z13
+{-27,9} .. {-38,8}z14
+-- z15
+{33,-7} .. {23,-9}z16
+{-41,-51} .. {-24,-68}z17
+{-25,-68} .. {0,-62}z18
+-- z19
+);
+FuF (z20
+-- z21
+-- z22
+{0,64} .. {15,59}z23
+{15,59} .. {25,35}z24
+{156,-60} .. {0,-156}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(6,584FX#,624FY#,66FY#);
+"Esimple";
+z1=(543FX,315FY);
+z2=(543FX,349FY);
+z3=(408FX,425FY);
+z4=(206FX,425FY);
+z5=(206FX,523FY);
+z6=(223FX,590FY);
+z7=(292FX,607FY);
+z8=(292FX,624FY);
+z9=(25FX,624FY);
+z10=(25FX,607FY);
+z11=(96FX,590FY);
+z12=(110FX,523FY);
+z13=(110FX,104FY);
+z14=(93FX,32FY);
+z15=(25FX,18FY);
+z16=(25FX,0FY);
+z17=(319FX,0FY);
+z18=(372FX,-43FY);
+z19=(372FX,-66FY);
+z20=(495FX,-66FY);
+z21=(495FX,-34FY);
+z22=(469FX,11FY);
+z23=(360FX,37FY);
+z24=(206FX,37FY);
+z25=(206FX,388FY);
+z26=(368FX,388FY);
+z27=(421FX,339FY);
+z28=(421FX,315FY);
+FuF (z1
+-- z2
+{0,50} .. {-90,0}z3
+-- z4
+-- z5
+{0,34} .. {11,11}z6
+{11,11} .. {35,0}z7
+-- z8
+-- z9
+-- z10
+{37,0} .. {10,-11}z11
+{9,-10} .. {0,-35}z12
+-- z13
+{0,-37} .. {-11,-11}z14
+{-11,-9} .. {-35,0}z15
+-- z16
+-- z17
+{35,0} .. {0,-29}z18
+-- z19
+-- z20
+-- z21
+{0,17} .. {-17,13}z22
+{-23,17} .. {-49,0}z23
+-- z24
+-- z25
+-- z26
+{35,0} .. {0,-33}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(7,681FX#,637FY#,66FY#);
+"Article";
+z1=(607FX,-66FY);
+z2=(607FX,-34FY);
+z3=(473FX,37FY);
+z4=(254FX,37FY);
+z5=(203FX,52FY);
+z6=(194FX,102FY);
+z7=(194FX,373FY);
+z8=(233FX,550FY);
+z9=(341FX,601FY);
+z10=(459FX,534FY);
+z11=(485FX,365FY);
+z12=(485FX,315FY);
+z13=(581FX,315FY);
+z14=(581FX,366FY);
+z15=(519FX,567FY);
+z16=(340FX,637FY);
+z17=(169FX,569FY);
+z18=(98FX,366FY);
+z19=(98FX,102FY);
+z20=(81FX,32FY);
+z21=(13FX,18FY);
+z22=(13FX,0FY);
+z23=(432FX,0FY);
+z24=(485FX,-43FY);
+z25=(485FX,-66FY);
+FuF (z1
+-- z2
+{0,47} .. {-89,0}z3
+-- z4
+{-27,0} .. {-8,10}z5
+{-6,7} .. {0,26}z6
+-- z7
+{0,81} .. {26,37}z8
+{23,34} .. {49,0}z9
+{56,0} .. {22,-45}z10
+{17,-36} .. {0,-77}z11
+-- z12
+-- z13
+-- z14
+{0,87} .. {-41,47}z15
+{-42,47} .. {-78,0}z16
+{-70,0} .. {-44,-46}z17
+{-47,-49} .. {0,-86}z18
+-- z19
+{0,-36} .. {-11,-11}z20
+{-10,-9} .. {-35,0}z21
+-- z22
+-- z23
+{35,0} .. {0,-29}z24
+-- z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(8,804FX#,638FY#,0FY#);
+"Th";
+z1=(805FX,208FY);
+z2=(805FX,239FY);
+z3=(671FX,315FY);
+z4=(621FX,315FY);
+z5=(621FX,381FY);
+z6=(551FX,563FY);
+z7=(365FX,638FY);
+z8=(173FX,561FY);
+z9=(98FX,366FY);
+z10=(98FX,102FY);
+z11=(82FX,33FY);
+z12=(13FX,18FY);
+z13=(13FX,0FY);
+z14=(280FX,0FY);
+z15=(280FX,18FY);
+z16=(212FX,32FY);
+z17=(194FX,102FY);
+z18=(194FX,373FY);
+z19=(233FX,528FY);
+z20=(366FX,601FY);
+z21=(492FX,530FY);
+z22=(525FX,394FY);
+z23=(525FX,315FY);
+z24=(438FX,315FY);
+z25=(328FX,271FY);
+z26=(282FX,164FY);
+z27=(332FX,45FY);
+z28=(456FX,0FY);
+z29=(580FX,55FY);
+z30=(621FX,168FY);
+z31=(621FX,277FY);
+z32=(634FX,277FY);
+z33=(683FX,235FY);
+z34=(683FX,208FY);
+z35=(525FX,165FY);
+z36=(456FX,37FY);
+z37=(401FX,74FY);
+z38=(383FX,163FY);
+z39=(400FX,243FY);
+z40=(451FX,278FY);
+z41=(525FX,278FY);
+FuF (z1
+-- z2
+{0,51} .. {-89,0}z3
+-- z4
+-- z5
+{0,72} .. {-47,49}z6
+{-48,50} .. {-76,0}z7
+{-78,0} .. {-50,-52}z8
+{-49,-51} .. {0,-79}z9
+-- z10
+{0,-36} .. {-11,-11}z11
+{-11,-10} .. {-35,0}z12
+-- z13
+-- z14
+-- z15
+{-35,0} .. {-10,9}z16
+{-12,11} .. {0,36}z17
+-- z18
+{0,62} .. {26,41}z19
+{30,49} .. {59,0}z20
+{57,0} .. {28,-48}z21
+{21,-37} .. {0,-54}z22
+-- z23
+-- z24
+{-42,0} .. {-32,-30}z25
+{-31,-29} .. {0,-41}z26
+{1,-49} .. {33,-31}z27
+{33,-30} .. {50,0}z28
+{52,0} .. {30,37}z29
+{27,33} .. {0,43}z30
+-- z31
+-- z32
+{32,0} .. {0,-28}z33
+-- z34
+);
+FuF (z35
+{0,-85} .. {-46,0}z36
+{-24,0} .. {-13,25}z37
+{-12,23} .. {0,37}z38
+{0,31} .. {12,22}z39
+{12,23} .. {21,0}z40
+-- z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(9,718FX#,624FY#,13FY#);
+"Zh";
+z1=(717FX,315FY);
+z2=(717FX,351FY);
+z3=(572FX,425FY);
+z4=(511FX,425FY);
+z5=(511FX,535FY);
+z6=(530FX,594FY);
+z7=(590FX,607FY);
+z8=(590FX,624FY);
+z9=(327FX,624FY);
+z10=(327FX,607FY);
+z11=(403FX,589FY);
+z12=(415FX,532FY);
+z13=(415FX,425FY);
+z14=(290FX,425FY);
+z15=(102FX,368FY);
+z16=(24FX,207FY);
+z17=(94FX,49FY);
+z18=(272FX,-13FY);
+z19=(449FX,52FY);
+z20=(511FX,216FY);
+z21=(511FX,387FY);
+z22=(545FX,387FY);
+z23=(582FX,379FY);
+z24=(595FX,341FY);
+z25=(595FX,315FY);
+z26=(415FX,212FY);
+z27=(272FX,23FY);
+z28=(124FX,205FY);
+z29=(172FX,350FY);
+z30=(320FX,387FY);
+z31=(415FX,387FY);
+FuF (z1
+-- z2
+{0,49} .. {-97,0}z3
+-- z4
+-- z5
+{0,29} .. {13,10}z6
+{10,8} .. {29,0}z7
+-- z8
+-- z9
+-- z10
+{40,-2} .. {11,-10}z11
+{8,-7} .. {0,-31}z12
+-- z13
+-- z14
+{-76,0} .. {-49,-38}z15
+{-52,-40} .. {0,-67}z16
+{0,-64} .. {46,-41}z17
+{47,-42} .. {72,0}z18
+{74,0} .. {44,44}z19
+{41,42} .. {0,67}z20
+-- z21
+-- z22
+{18,0} .. {7,-5}z23
+{8,-7} .. {0,-18}z24
+-- z25
+);
+FuF (z26
+{0,-126} .. {-95,0}z27
+{-99,0} .. {0,121}z28
+{0,69} .. {32,28}z29
+{29,25} .. {69,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(10,625FX#,630FY#,15FY#);
+"Sh";
+z1=(273FX,516FY);
+z2=(117FX,409FY);
+z3=(58FX,229FY);
+z4=(125FX,54FY);
+z5=(313FX,-15FY);
+z6=(517FX,61FY);
+z7=(584FX,215FY);
+z8=(581FX,250FY);
+z9=(479FX,250FY);
+z10=(486FX,193FY);
+z11=(439FX,73FY);
+z12=(313FX,22FY);
+z13=(198FX,81FY);
+z14=(155FX,229FY);
+z15=(310FX,492FY);
+z16=(452FX,424FY);
+z17=(541FX,472FY);
+z18=(534FX,498FY);
+z19=(512FX,494FY);
+z20=(425FX,529FY);
+z21=(322FX,595FY);
+z22=(184FX,630FY);
+z23=(83FX,602FY);
+z24=(105FX,571FY);
+z25=(142FX,586FY);
+z26=(214FX,562FY);
+z27=(273FX,516FY);
+FuF (z1
+{-63,-15} .. {-40,-56}z2
+{-39,-54} .. {0,-66}z3
+{0,-73} .. {45,-44}z4
+{46,-46} .. {79,0}z5
+{85,0} .. {51,50}z6
+{44,44} .. {0,58}z7
+{0,11} .. {-2,12}z8
+-- z9
+{5,-19} .. {0,-19}z10
+{0,-47} .. {-32,-33}z11
+{-32,-34} .. {-51,0}z12
+{-47,0} .. {-29,39}z13
+{-29,39} .. {0,60}z14
+{0,144} .. {104,31}z15
+{61,-46} .. {34,0}z16
+{34,0} .. {25,32}z17
+-- z18
+{-8,-2} .. {-7,0}z19
+{-23,0} .. {-35,23}z20
+{-58,38} .. {-11,6}z21
+{-45,23} .. {-47,0}z22
+{-51,0} .. {-17,-19}z23
+-- z24
+{12,10} .. {12,0}z25
+{23,0} .. {25,-16}z26
+{10,-6} .. {30,-25}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(11,625FX#,637FY#,7FY#);
+"Ch";
+z1=(333FX,106FY);
+z2=(497FX,214FY);
+z3=(572FX,394FY);
+z4=(505FX,569FY);
+z5=(316FX,637FY);
+z6=(113FX,562FY);
+z7=(47FX,408FY);
+z8=(49FX,373FY);
+z9=(151FX,373FY);
+z10=(144FX,431FY);
+z11=(191FX,550FY);
+z12=(316FX,601FY);
+z13=(431FX,542FY);
+z14=(475FX,393FY);
+z15=(425FX,239FY);
+z16=(297FX,131FY);
+z17=(154FX,199FY);
+z18=(65FX,151FY);
+z19=(73FX,124FY);
+z20=(95FX,128FY);
+z21=(182FX,93FY);
+z22=(284FX,28FY);
+z23=(422FX,-7FY);
+z24=(523FX,20FY);
+z25=(501FX,52FY);
+z26=(464FX,37FY);
+z27=(393FX,60FY);
+z28=(333FX,106FY);
+FuF (z1
+{62,18} .. {47,55}z2
+{50,57} .. {0,63}z3
+{0,72} .. {-44,44}z4
+{-46,46} .. {-80,0}z5
+{-85,0} .. {-51,-50}z6
+{-44,-44} .. {0,-59}z7
+{0,-10} .. {2,-13}z8
+-- z9
+{-5,20} .. {0,19}z10
+{0,47} .. {32,32}z11
+{33,34} .. {51,0}z12
+{48,0} .. {29,-39}z13
+{29,-39} .. {0,-60}z14
+{0,-52} .. {-33,-50}z15
+{-35,-54} .. {-50,-18}z16
+{-61,45} .. {-34,0}z17
+{-34,0} .. {-26,-32}z18
+-- z19
+{8,3} .. {7,0}z20
+{23,0} .. {35,-24}z21
+{57,-38} .. {11,-6}z22
+{45,-23} .. {47,0}z23
+{51,0} .. {16,18}z24
+-- z25
+{-12,-10} .. {-13,0}z26
+{-22,0} .. {-25,16}z27
+{-10,6} .. {-30,24}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(12,777FX#,637FY#,0FY#);
+"Rhard";
+z1=(797FX,134FY);
+z2=(797FX,166FY);
+z3=(762FX,220FY);
+z4=(662FX,241FY);
+z5=(581FX,241FY);
+z6=(581FX,373FY);
+z7=(515FX,570FY);
+z8=(345FX,637FY);
+z9=(163FX,563FY);
+z10=(98FX,373FY);
+z11=(98FX,104FY);
+z12=(82FX,31FY);
+z13=(13FX,18FY);
+z14=(13FX,0FY);
+z15=(280FX,0FY);
+z16=(280FX,18FY);
+z17=(210FX,34FY);
+z18=(194FX,104FY);
+z19=(194FX,377FY);
+z20=(229FX,545FY);
+z21=(346FX,601FY);
+z22=(485FX,377FY);
+z23=(485FX,104FY);
+z24=(470FX,35FY);
+z25=(396FX,18FY);
+z26=(396FX,0FY);
+z27=(668FX,0FY);
+z28=(668FX,18FY);
+z29=(596FX,35FY);
+z30=(581FX,104FY);
+z31=(581FX,204FY);
+z32=(622FX,204FY);
+z33=(674FX,157FY);
+z34=(674FX,134FY);
+FuF (z1
+-- z2
+{0,22} .. {-23,14}z3
+{-25,14} .. {-42,0}z4
+-- z5
+-- z6
+{0,84} .. {-44,47}z7
+{-42,45} .. {-72,0}z8
+{-76,0} .. {-45,-50}z9
+{-43,-48} .. {0,-78}z10
+-- z11
+{0,-39} .. {-11,-10}z12
+{-10,-9} .. {-37,0}z13
+-- z14
+-- z15
+-- z16
+{-36,0} .. {-10,11}z17
+{-10,11} .. {0,36}z18
+-- z19
+{0,76} .. {23,36}z20
+{24,37} .. {53,0}z21
+{93,0} .. {0,-149}z22
+-- z23
+{0,-36} .. {-10,-10}z24
+{-11,-12} .. {-38,0}z25
+-- z26
+-- z27
+-- z28
+{-37,0} .. {-11,11}z29
+{-10,10} .. {0,36}z30
+-- z31
+-- z32
+{35,0} .. {0,-32}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(13,661FX#,624FY#,13FY#);
+"Ts";
+z1=(640FX,492FY);
+z2=(640FX,528FY);
+z3=(601FX,589FY);
+z4=(515FX,609FY);
+z5=(264FX,525FY);
+z6=(175FX,542FY);
+z7=(136FX,598FY);
+z8=(136FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,589FY);
+z11=(56FX,530FY);
+z12=(130FX,512FY);
+z13=(225FX,496FY);
+z14=(111FX,381FY);
+z15=(66FX,239FY);
+z16=(139FX,59FY);
+z17=(323FX,-13FY);
+z18=(515FX,61FY);
+z19=(587FX,240FY);
+z20=(515FX,421FY);
+z21=(321FX,515FY);
+z22=(476FX,565FY);
+z23=(517FX,519FY);
+z24=(517FX,492FY);
+z25=(490FX,239FY);
+z26=(445FX,79FY);
+z27=(321FX,24FY);
+z28=(204FX,82FY);
+z29=(164FX,244FY);
+z30=(282FX,490FY);
+z31=(437FX,405FY);
+z32=(490FX,239FY);
+FuF (z1
+-- z2
+{0,26} .. {-26,15}z3
+{-23,14} .. {-34,0}z4
+{-73,0} .. {-94,-56}z5
+{-45,9} .. {-15,3}z6
+{-26,6} .. {0,31}z7
+-- z8
+-- z9
+-- z10
+{0,-29} .. {29,-11}z11
+{17,-6} .. {33,-6}z12
+{32,-5} .. {31,-5}z13
+{-46,-28} .. {-30,-49}z14
+{-30,-48} .. {0,-47}z15
+{0,-72} .. {49,-49}z16
+{48,-48} .. {74,0}z17
+{79,0} .. {49,49}z18
+{48,47} .. {0,72}z19
+{0,72} .. {-48,49}z20
+{-48,49} .. {-82,14}z21
+{53,33} .. {50,0}z22
+{27,0} .. {0,-31}z23
+-- z24
+);
+FuF (z25
+{-1,-70} .. {-30,-37}z26
+{-30,-37} .. {-53,0}z27
+{-50,0} .. {-28,39}z28
+{-27,39} .. {1,69}z29
+{1,121} .. {78,43}z30
+{68,-13} .. {35,-43}z31
+{36,-43} .. {0,-67}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(14,686FX#,624FY#,0FY#);
+"Ph";
+z1=(664FX,315FY);
+z2=(595FX,473FY);
+z3=(389FX,532FY);
+z4=(389FX,546FY);
+z5=(414FX,600FY);
+z6=(476FX,607FY);
+z7=(476FX,624FY);
+z8=(210FX,624FY);
+z9=(210FX,607FY);
+z10=(268FX,598FY);
+z11=(292FX,546FY);
+z12=(292FX,532FY);
+z13=(90FX,470FY);
+z14=(17FX,315FY);
+z15=(92FX,156FY);
+z16=(292FX,97FY);
+z17=(292FX,79FY);
+z18=(276FX,33FY);
+z19=(208FX,18FY);
+z20=(208FX,0FY);
+z21=(474FX,0FY);
+z22=(474FX,18FY);
+z23=(405FX,32FY);
+z24=(389FX,79FY);
+z25=(389FX,97FY);
+z26=(595FX,162FY);
+z27=(664FX,315FY);
+z28=(568FX,315FY);
+z29=(524FX,188FY);
+z30=(389FX,134FY);
+z31=(389FX,496FY);
+z32=(528FX,439FY);
+z33=(568FX,315FY);
+z34=(292FX,134FY);
+z35=(153FX,191FY);
+z36=(113FX,315FY);
+z37=(158FX,441FY);
+z38=(292FX,496FY);
+FuF (z1
+{0,67} .. {-46,38}z2
+{-48,40} .. {-89,0}z3
+-- z4
+{0,28} .. {17,8}z5
+{11,4} .. {31,0}z6
+-- z7
+-- z8
+-- z9
+{28,0} .. {11,-6}z10
+{16,-8} .. {0,-26}z11
+-- z12
+{-84,0} .. {-50,-42}z13
+{-49,-40} .. {0,-64}z14
+{0,-66} .. {50,-40}z15
+{50,-39} .. {83,0}z16
+-- z17
+{0,-22} .. {-11,-9}z18
+{-13,-10} .. {-33,0}z19
+-- z20
+-- z21
+-- z22
+{-34,0} .. {-12,9}z23
+{-11,8} .. {0,23}z24
+-- z25
+{87,0} .. {51,44}z26
+{46,40} .. {0,62}z27
+);
+FuF (z28
+{0,-52} .. {-29,-33}z29
+{-33,-36} .. {-57,0}z30
+-- z31
+{61,0} .. {32,-38}z32
+{26,-32} .. {0,-50}z33
+);
+FuF (z34
+{-61,0} .. {-32,38}z35
+{-26,32} .. {0,50}z36
+{0,50} .. {30,34}z37
+{33,36} .. {56,0}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(15,705FX#,637FY#,13FY#);
+"Osimple";
+z1=(666FX,312FY);
+z2=(574FX,551FY);
+z3=(358FX,637FY);
+z4=(143FX,553FY);
+z5=(50FX,312FY);
+z6=(142FX,71FY);
+z7=(359FX,-13FY);
+z8=(578FX,76FY);
+z9=(666FX,312FY);
+z10=(559FX,313FY);
+z11=(502FX,96FY);
+z12=(359FX,24FY);
+z13=(211FX,100FY);
+z14=(157FX,312FY);
+z15=(213FX,526FY);
+z16=(358FX,601FY);
+z17=(503FX,528FY);
+z18=(559FX,313FY);
+FuF (z1
+{0,98} .. {-62,61}z2
+{-58,57} .. {-86,0}z3
+{-85,0} .. {-58,-56}z4
+{-62,-61} .. {0,-100}z5
+{0,-100} .. {62,-60}z6
+{58,-56} .. {87,0}z7
+{88,0} .. {58,59}z8
+{59,61} .. {0,96}z9
+);
+FuF (z10
+{0,-93} .. {-38,-51}z11
+{-35,-48} .. {-60,0}z12
+{-63,0} .. {-35,51}z13
+{-36,51} .. {0,91}z14
+{0,91} .. {37,51}z15
+{36,50} .. {61,0}z16
+{61,0} .. {36,-49}z17
+{38,-51} .. {0,-93}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(19,484FX#,636FY#,14FY#);
+"dz";
+z1=(477FX,30FY);
+z2=(477FX,42FY);
+z3=(427FX,51FY);
+z4=(418FX,76FY);
+z5=(418FX,181FY);
+z6=(370FX,345FY);
+z7=(264FX,429FY);
+z8=(343FX,475FY);
+z9=(367FX,508FY);
+z10=(325FX,550FY);
+z11=(203FX,571FY);
+z12=(177FX,588FY);
+z13=(183FX,604FY);
+z14=(199FX,621FY);
+z15=(175FX,636FY);
+z16=(126FX,586FY);
+z17=(106FX,545FY);
+z18=(143FX,504FY);
+z19=(264FX,481FY);
+z20=(282FX,473FY);
+z21=(219FX,435FY);
+z22=(100FX,327FY);
+z23=(36FX,128FY);
+z24=(181FX,-14FY);
+z25=(340FX,64FY);
+z26=(340FX,-10FY);
+z27=(343FX,-13FY);
+z28=(413FX,11FY);
+z29=(340FX,209FY);
+z30=(339FX,88FY);
+z31=(217FX,41FY);
+z32=(121FX,146FY);
+z33=(237FX,412FY);
+z34=(312FX,337FY);
+z35=(340FX,209FY);
+FuF (z1
+-- z2
+{-22,-5} .. {-11,11}z3
+{-5,10} .. {-1,7}z4
+-- z5
+{0,62} .. {-32,47}z6
+{-29,44} .. {-42,12}z7
+{32,18} .. {21,12}z8
+{17,10} .. {-1,12}z9
+{-1,23} .. {-27,5}z10
+-- z11
+{-17,3} .. {0,9}z12
+{0,4} .. {4,7}z13
+-- z14
+-- z15
+-- z16
+{-13,-13} .. {0,-14}z17
+{0,-23} .. {24,-5}z18
+-- z19
+{12,-2} .. {0,-3}z20
+{0,1} .. {-42,-27}z21
+{-50,-32} .. {-30,-41}z22
+{-43,-58} .. {0,-74}z23
+{0,-96} .. {96,1}z24
+{56,1} .. {50,51}z25
+-- z26
+-- z27
+-- z28
+);
+FuF (z29
+-- z30
+{-39,-33} .. {-42,1}z31
+{-64,1} .. {0,69}z32
+{0,119} .. {77,58}z33
+{31,-13} .. {19,-36}z34
+{19,-37} .. {0,-48}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(20,520FX#,440FY#,205FY#);
+"gh";
+z1=(520FX,-205FY);
+z2=(520FX,-172FY);
+z3=(422FX,-173FY);
+z4=(422FX,298FY);
+z5=(304FX,440FY);
+z6=(146FX,363FY);
+z7=(146FX,438FY);
+z8=(140FX,440FY);
+z9=(67FX,414FY);
+z10=(9FX,397FY);
+z11=(9FX,381FY);
+z12=(43FX,388FY);
+z13=(67FX,370FY);
+z14=(70FX,322FY);
+z15=(70FX,62FY);
+z16=(56FX,23FY);
+z17=(12FX,14FY);
+z18=(12FX,0FY);
+z19=(211FX,0FY);
+z20=(211FX,14FY);
+z21=(164FX,24FY);
+z22=(149FX,62FY);
+z23=(149FX,334FY);
+z24=(190FX,364FY);
+z25=(265FX,388FY);
+z26=(343FX,298FY);
+z27=(343FX,-205FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,95} .. {-79,0}z5
+{-51,0} .. {-54,-52}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{14,5} .. {8,0}z12
+{13,0} .. {3,-12}z13
+{2,-6} .. {0,-26}z14
+-- z15
+{0,-21} .. {-9,-5}z16
+{-10,-6} .. {-19,0}z17
+-- z18
+-- z19
+-- z20
+{-22,1} .. {-9,5}z21
+{-10,9} .. {0,16}z22
+-- z23
+{9,10} .. {18,10}z24
+{28,16} .. {22,0}z25
+{52,0} .. {0,-60}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(21,501FX#,629FY#,14FY#);
+"chmute";
+z1=(479FX,29FY);
+z2=(479FX,42FY);
+z3=(462FX,41FY);
+z4=(422FX,88FY);
+z5=(420FX,183FY);
+z6=(333FX,361FY);
+z7=(175FX,417FY);
+z8=(241FX,541FY);
+z9=(328FX,597FY);
+z10=(353FX,586FY);
+z11=(357FX,555FY);
+z12=(395FX,507FY);
+z13=(438FX,546FY);
+z14=(408FX,606FY);
+z15=(338FX,629FY);
+z16=(222FX,567FY);
+z17=(124FX,421FY);
+z18=(27FX,425FY);
+z19=(28FX,396FY);
+z20=(113FX,395FY);
+z21=(50FX,103FY);
+z22=(175FX,-14FY);
+z23=(269FX,12FY);
+z24=(346FX,67FY);
+z25=(347FX,-13FY);
+z26=(421FX,12FY);
+z27=(479FX,29FY);
+z28=(343FX,183FY);
+z29=(343FX,89FY);
+z30=(211FX,41FY);
+z31=(145FX,78FY);
+z32=(128FX,185FY);
+z33=(164FX,389FY);
+z34=(304FX,310FY);
+z35=(343FX,183FY);
+FuF (z1
+-- z2
+{-6,-1} .. {-6,0}z3
+{-26,0} .. {0,32}z4
+{0,54} .. {-1,10}z5
+{-10,78} .. {-49,41}z6
+{-42,35} .. {-63,2}z7
+{19,50} .. {26,33}z8
+{29,37} .. {28,0}z9
+{13,0} .. {4,-7}z10
+{3,-5} .. {0,-16}z11
+{1,-33} .. {24,1}z12
+{30,1} .. {-1,25}z13
+{0,25} .. {-20,15}z14
+{-19,15} .. {-28,0}z15
+{-37,0} .. {-41,-42}z16
+{-37,-38} .. {-28,-60}z17
+{-35,2} .. {-30,1}z18
+-- z19
+-- z20
+{-42,-104} .. {0,-91}z21
+{0,-79} .. {83,1}z22
+{30,1} .. {33,17}z23
+{31,15} .. {21,22}z24
+-- z25
+-- z26
+{28,10} .. {11,1}z27
+);
+FuF (z28
+-- z29
+{-42,-33} .. {-46,1}z30
+{-32,0} .. {-12,24}z31
+{-12,22} .. {0,49}z32
+{1,63} .. {23,73}z33
+{60,-2} .. {33,-51}z34
+{26,-39} .. {0,-45}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(22,399FX#,645FY#,78FY#);
+"esimple";
+z1=(393FX,391FY);
+z2=(393FX,425FY);
+z3=(149FX,425FY);
+z4=(149FX,642FY);
+z5=(145FX,645FY);
+z6=(91FX,627FY);
+z7=(11FX,604FY);
+z8=(11FX,589FY);
+z9=(34FX,589FY);
+z10=(64FX,575FY);
+z11=(70FX,541FY);
+z12=(70FX,0FY);
+z13=(241FX,0FY);
+z14=(277FX,-31FY);
+z15=(212FX,-62FY);
+z16=(218FX,-78FY);
+z17=(257FX,-78FY);
+z18=(339FX,-64FY);
+z19=(366FX,-28FY);
+z20=(332FX,16FY);
+z21=(245FX,33FY);
+z22=(149FX,33FY);
+z23=(149FX,391FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{17,0} .. {3,-10}z10
+{4,-10} .. {0,-13}z11
+-- z12
+-- z13
+{25,0} .. {-1,-21}z14
+{0,-21} .. {-43,0}z15
+-- z16
+{8,-2} .. {18,1}z17
+{35,1} .. {20,9}z18
+{18,9} .. {0,15}z19
+{0,19} .. {-23,11}z20
+{-22,11} .. {-36,0}z21
+-- z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(23,501FX#,441FY#,205FY#);
+"article";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(437FX,23FY);
+z4=(422FX,76FY);
+z5=(422FX,298FY);
+z6=(312FX,441FY);
+z7=(146FX,363FY);
+z8=(146FX,438FY);
+z9=(140FX,440FY);
+z10=(9FX,397FY);
+z11=(9FX,381FY);
+z12=(47FX,387FY);
+z13=(70FX,345FY);
+z14=(70FX,-205FY);
+z15=(474FX,-205FY);
+z16=(474FX,-173FY);
+z17=(187FX,-173FY);
+z18=(158FX,-165FY);
+z19=(149FX,-139FY);
+z20=(149FX,334FY);
+z21=(272FX,389FY);
+z22=(343FX,298FY);
+z23=(343FX,75FY);
+z24=(327FX,19FY);
+z25=(283FX,14FY);
+z26=(283FX,0FY);
+FuF (z1
+-- z2
+{-22,1} .. {-6,5}z3
+{-10,8} .. {0,28}z4
+-- z5
+{0,95} .. {-73,0}z6
+{-55,0} .. {-55,-52}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{24,4} .. {1,0}z12
+{15,0} .. {0,-28}z13
+-- z14
+-- z15
+-- z16
+-- z17
+{-14,0} .. {-5,5}z18
+{-6,6} .. {0,12}z19
+-- z20
+{40,38} .. {42,-1}z21
+{47,-1} .. {0,-59}z22
+-- z23
+{0,-30} .. {-11,-7}z24
+{-6,-3} .. {-24,0}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(24,624FX#,441FY#,204FY#);
+"th";
+z1=(614FX,217FY);
+z2=(614FX,250FY);
+z3=(546FX,250FY);
+z4=(546FX,277FY);
+z5=(489FX,392FY);
+z6=(347FX,441FY);
+z7=(239FX,418FY);
+z8=(146FX,364FY);
+z9=(146FX,439FY);
+z10=(140FX,441FY);
+z11=(67FX,415FY);
+z12=(10FX,398FY);
+z13=(10FX,382FY);
+z14=(43FX,388FY);
+z15=(67FX,376FY);
+z16=(70FX,350FY);
+z17=(70FX,-142FY);
+z18=(55FX,-180FY);
+z19=(11FX,-191FY);
+z20=(11FX,-204FY);
+z21=(211FX,-204FY);
+z22=(211FX,-191FY);
+z23=(149FX,-142FY);
+z24=(149FX,335FY);
+z25=(307FX,389FY);
+z26=(426FX,352FY);
+z27=(466FX,266FY);
+z28=(466FX,250FY);
+z29=(393FX,250FY);
+z30=(280FX,212FY);
+z31=(233FX,121FY);
+z32=(282FX,20FY);
+z33=(390FX,-16FY);
+z34=(496FX,25FY);
+z35=(546FX,120FY);
+z36=(546FX,217FY);
+z37=(467FX,119FY);
+z38=(443FX,42FY);
+z39=(390FX,15FY);
+z40=(339FX,46FY);
+z41=(317FX,121FY);
+z42=(339FX,193FY);
+z43=(392FX,217FY);
+z44=(467FX,217FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,45} .. {-38,31}z5
+{-39,33} .. {-56,0}z6
+{-33,0} .. {-39,-15}z7
+{-39,-15} .. {-23,-21}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{13,4} .. {9,0}z14
+{13,0} .. {3,-8}z15
+{2,-4} .. {0,-13}z16
+-- z17
+{0,-18} .. {-10,-7}z18
+{-10,-7} .. {-19,0}z19
+-- z20
+-- z21
+-- z22
+{-41,0} .. {0,33}z23
+-- z24
+{42,36} .. {63,0}z25
+{51,0} .. {29,-24}z26
+{26,-23} .. {0,-35}z27
+-- z28
+-- z29
+{-44,0} .. {-32,-25}z30
+{-31,-25} .. {0,-36}z31
+{0,-41} .. {32,-27}z32
+{30,-25} .. {42,1}z33
+{39,0} .. {31,27}z34
+{34,28} .. {0,36}z35
+-- z36
+);
+FuF (z37
+{0,-31} .. {-16,-20}z38
+{-14,-18} .. {-21,1}z39
+{-19,0} .. {-15,20}z40
+{-15,20} .. {0,30}z41
+{0,30} .. {14,18}z42
+{14,16} .. {22,0}z43
+-- z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(25,524FX#,645FY#,15FY#);
+"zh";
+z1=(524FX,391FY);
+z2=(524FX,425FY);
+z3=(426FX,425FY);
+z4=(426FX,642FY);
+z5=(421FX,645FY);
+z6=(368FX,627FY);
+z7=(287FX,604FY);
+z8=(287FX,589FY);
+z9=(311FX,589FY);
+z10=(342FX,580FY);
+z11=(347FX,544FY);
+z12=(347FX,425FY);
+z13=(244FX,425FY);
+z14=(98FX,368FY);
+z15=(39FX,227FY);
+z16=(103FX,51FY);
+z17=(259FX,-15FY);
+z18=(426FX,215FY);
+z19=(426FX,391FY);
+z20=(347FX,101FY);
+z21=(321FX,34FY);
+z22=(257FX,11FY);
+z23=(152FX,66FY);
+z24=(120FX,199FY);
+z25=(160FX,341FY);
+z26=(258FX,391FY);
+z27=(347FX,391FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{18,0} .. {2,-5}z10
+{3,-6} .. {0,-18}z11
+-- z12
+-- z13
+{-58,0} .. {-40,-38}z14
+{-40,-39} .. {0,-55}z15
+{0,-73} .. {43,-45}z16
+{42,-44} .. {62,0}z17
+{111,0} .. {0,153}z18
+-- z19
+);
+FuF (z20
+{0,-28} .. {-17,-16}z21
+{-17,-16} .. {-26,0}z22
+{-46,0} .. {-24,37}z23
+{-22,34} .. {0,55}z24
+{1,60} .. {26,35}z25
+{25,34} .. {40,0}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(26,386FX#,435FY#,209FY#);
+"sh";
+z1=(355FX,272FY);
+z2=(197FX,435FY);
+z3=(77FX,377FY);
+z4=(25FX,244FY);
+z5=(26FX,223FY);
+z6=(47FX,224FY);
+z7=(83FX,317FY);
+z8=(168FX,364FY);
+z9=(239FX,325FY);
+z10=(261FX,250FY);
+z11=(243FX,149FY);
+z12=(191FX,57FY);
+z13=(47FX,-88FY);
+z14=(7FX,-160FY);
+z15=(26FX,-196FY);
+z16=(64FX,-209FY);
+z17=(356FX,-209FY);
+z18=(356FX,-175FY);
+z19=(152FX,-175FY);
+z20=(107FX,-125FY);
+z21=(162FX,-15FY);
+z22=(219FX,41FY);
+z23=(334FX,184FY);
+z24=(355FX,272FY);
+FuF (z1
+{0,108} .. {-105,0}z2
+{-45,0} .. {-35,-39}z3
+{-35,-38} .. {0,-50}z4
+{0,-7} .. {1,-7}z5
+-- z6
+{-1,32} .. {25,30}z7
+{26,31} .. {31,0}z8
+{30,0} .. {17,-26}z9
+{14,-22} .. {0,-28}z10
+{0,-33} .. {-12,-34}z11
+{-13,-39} .. {-22,-22}z12
+-- z13
+{-26,-27} .. {0,-22}z14
+{0,-15} .. {13,-9}z15
+{11,-8} .. {14,0}z16
+-- z17
+-- z18
+-- z19
+{-30,0} .. {0,34}z20
+{0,37} .. {37,36}z21
+-- z22
+{56,55} .. {20,40}z23
+{14,27} .. {0,31}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(27,291FX#,434FY#,204FY#);
+"ch";
+z1=(290FX,-204FY);
+z2=(290FX,-172FY);
+z3=(138FX,-172FY);
+z4=(96FX,-130FY);
+z5=(120FX,-70FY);
+z6=(161FX,-30FY);
+z7=(225FX,25FY);
+z8=(248FX,52FY);
+z9=(254FX,78FY);
+z10=(231FX,125FY);
+z11=(189FX,158FY);
+z12=(157FX,173FY);
+z13=(109FX,223FY);
+z14=(102FX,265FY);
+z15=(102FX,277FY);
+z16=(104FX,292FY);
+z17=(221FX,411FY);
+z18=(218FX,434FY);
+z19=(85FX,367FY);
+z20=(24FX,228FY);
+z21=(53FX,143FY);
+z22=(97FX,112FY);
+z23=(146FX,86FY);
+z24=(175FX,65FY);
+z25=(187FX,44FY);
+z26=(185FX,35FY);
+z27=(183FX,30FY);
+z28=(180FX,25FY);
+z29=(104FX,-38FY);
+z30=(59FX,-78FY);
+z31=(4FX,-155FY);
+z32=(18FX,-193FY);
+z33=(54FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-29,5} .. {1,23}z4
+{0,22} .. {15,18}z5
+{10,11} .. {18,15}z6
+-- z7
+{11,10} .. {5,8}z8
+{4,8} .. {0,9}z9
+{0,17} .. {-16,15}z10
+{-15,14} .. {-13,7}z11
+{-21,10} .. {-1,1}z12
+{-23,11} .. {-9,22}z13
+{-5,12} .. {0,16}z14
+-- z15
+{1,5} .. {0,5}z16
+{12,63} .. {66,16}z17
+-- z18
+{-47,0} .. {-41,-44}z19
+{-42,-45} .. {1,-47}z20
+{0,-36} .. {19,-21}z21
+{9,-10} .. {20,-11}z22
+{17,-9} .. {16,-9}z23
+{16,-9} .. {4,-5}z24
+{8,-8} .. {0,-6}z25
+-- z26
+{-1,-1} .. {0,-2}z27
+{-1,-1} .. {-1,-2}z28
+-- z29
+{-21,-17} .. {-10,-9}z30
+{-37,-34} .. {0,-17}z31
+{1,-19} .. {9,-6}z32
+{9,-8} .. {15,0}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(28,499FX#,441FY#,0FY#);
+"rhard";
+z1=(463FX,0FY);
+z2=(463FX,33FY);
+z3=(309FX,33FY);
+z4=(404FX,149FY);
+z5=(444FX,309FY);
+z6=(408FX,402FY);
+z7=(304FX,440FY);
+z8=(215FX,414FY);
+z9=(146FX,364FY);
+z10=(146FX,439FY);
+z11=(140FX,441FY);
+z12=(67FX,415FY);
+z13=(10FX,398FY);
+z14=(10FX,382FY);
+z15=(43FX,389FY);
+z16=(70FX,337FY);
+z17=(70FX,62FY);
+z18=(55FX,22FY);
+z19=(12FX,14FY);
+z20=(12FX,0FY);
+z21=(211FX,0FY);
+z22=(211FX,14FY);
+z23=(164FX,24FY);
+z24=(149FX,62FY);
+z25=(149FX,335FY);
+z26=(203FX,372FY);
+z27=(265FX,389FY);
+z28=(359FX,286FY);
+z29=(257FX,19FY);
+z30=(257FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{44,43} .. {19,34}z4
+{27,47} .. {0,60}z5
+{0,38} .. {-24,24}z6
+{-25,26} .. {-45,0}z7
+{-26,0} .. {-33,-17}z8
+{-30,-16} .. {-16,-18}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{14,5} .. {7,0}z15
+{18,0} .. {0,-35}z16
+-- z17
+{0,-20} .. {-10,-7}z18
+{-8,-5} .. {-21,0}z19
+-- z20
+-- z21
+-- z22
+{-22,1} .. {-10,5}z23
+{-10,9} .. {0,17}z24
+-- z25
+{12,13} .. {24,11}z26
+{25,12} .. {16,0}z27
+{63,0} .. {0,-68}z28
+{0,-120} .. {-68,-58}z29
+-- z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(29,500FX#,624FY#,14FY#);
+"ts";
+z1=(463FX,391FY);
+z2=(463FX,425FY);
+z3=(360FX,425FY);
+z4=(316FX,465FY);
+z5=(181FX,585FY);
+z6=(179FX,594FY);
+z7=(187FX,599FY);
+z8=(227FX,599FY);
+z9=(227FX,624FY);
+z10=(58FX,624FY);
+z11=(48FX,593FY);
+z12=(103FX,557FY);
+z13=(241FX,432FY);
+z14=(240FX,429FY);
+z15=(103FX,370FY);
+z16=(47FX,214FY);
+z17=(99FX,53FY);
+z18=(240FX,-14FY);
+z19=(392FX,58FY);
+z20=(445FX,217FY);
+z21=(385FX,391FY);
+z22=(360FX,189FY);
+z23=(333FX,63FY);
+z24=(254FX,12FY);
+z25=(158FX,91FY);
+z26=(133FX,257FY);
+z27=(162FX,362FY);
+z28=(232FX,399FY);
+z29=(319FX,348FY);
+z30=(360FX,189FY);
+FuF (z1
+-- z2
+-- z3
+{-7,7} .. {-22,20}z4
+-- z5
+{-2,2} .. {1,4}z6
+{2,3} .. {4,0}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{22,-10} .. {15,-14}z12
+-- z13
+-- z14
+{-56,0} .. {-36,-40}z15
+{-37,-40} .. {0,-64}z16
+{0,-64} .. {34,-43}z17
+{35,-44} .. {59,0}z18
+{62,0} .. {39,48}z19
+{36,45} .. {0,61}z20
+{0,67} .. {-40,49}z21
+);
+FuF (z22
+{0,-53} .. {-17,-31}z23
+{-19,-34} .. {-34,0}z24
+{-44,0} .. {-21,52}z25
+{-17,43} .. {1,68}z26
+{0,44} .. {19,25}z27
+{18,25} .. {28,0}z28
+{34,0} .. {24,-34}z29
+{28,-39} .. {0,-67}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(30,734FX#,645FY#,204FY#);
+"ph";
+z1=(710FX,0FY);
+z2=(710FX,14FY);
+z3=(666FX,23FY);
+z4=(655FX,69FY);
+z5=(655FX,299FY);
+z6=(625FX,398FY);
+z7=(543FX,438FY);
+z8=(468FX,420FY);
+z9=(402FX,374FY);
+z10=(402FX,642FY);
+z11=(397FX,645FY);
+z12=(343FX,627FY);
+z13=(263FX,604FY);
+z14=(263FX,589FY);
+z15=(287FX,589FY);
+z16=(318FX,576FY);
+z17=(323FX,541FY);
+z18=(323FX,93FY);
+z19=(288FX,55FY);
+z20=(217FX,35FY);
+z21=(149FX,122FY);
+z22=(149FX,425FY);
+z23=(4FX,425FY);
+z24=(4FX,410FY);
+z25=(53FX,401FY);
+z26=(70FX,356FY);
+z27=(70FX,126FY);
+z28=(96FX,29FY);
+z29=(190FX,-14FY);
+z30=(323FX,53FY);
+z31=(323FX,-142FY);
+z32=(309FX,-181FY);
+z33=(264FX,-191FY);
+z34=(264FX,-204FY);
+z35=(464FX,-204FY);
+z36=(464FX,-191FY);
+z37=(417FX,-180FY);
+z38=(402FX,-142FY);
+z39=(402FX,321FY);
+z40=(436FX,366FY);
+z41=(506FX,390FY);
+z42=(558FX,370FY);
+z43=(576FX,303FY);
+z44=(576FX,0FY);
+FuF (z1
+-- z2
+{-22,0} .. {-8,6}z3
+{-7,7} .. {0,23}z4
+-- z5
+{0,39} .. {-20,27}z6
+{-20,28} .. {-34,-1}z7
+{-25,0} .. {-25,-12}z8
+{-25,-11} .. {-19,-19}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+{17,0} .. {3,-10}z16
+{3,-10} .. {0,-13}z17
+-- z18
+{0,-11} .. {-23,-14}z19
+{-23,-14} .. {-24,0}z20
+{-45,1} .. {0,58}z21
+-- z22
+-- z23
+-- z24
+{23,-1} .. {10,-5}z25
+{11,-7} .. {0,-23}z26
+-- z27
+{0,-41} .. {17,-23}z28
+{21,-29} .. {42,0}z29
+{43,1} .. {46,44}z30
+-- z31
+{0,-21} .. {-9,-6}z32
+{-9,-6} .. {-21,0}z33
+-- z34
+-- z35
+-- z36
+{-22,1} .. {-9,6}z37
+{-10,9} .. {0,17}z38
+-- z39
+{0,15} .. {23,16}z40
+{24,16} .. {23,0}z41
+{24,0} .. {11,-13}z42
+{12,-15} .. {0,-29}z43
+-- z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(31,485FX#,441FY#,14FY#);
+"osimple";
+z1=(453FX,217FY);
+z2=(391FX,381FY);
+z3=(236FX,441FY);
+z4=(87FX,374FY);
+z5=(27FX,214FY);
+z6=(86FX,53FY);
+z7=(239FX,-14FY);
+z8=(397FX,58FY);
+z9=(453FX,217FY);
+z10=(368FX,189FY);
+z11=(336FX,62FY);
+z12=(252FX,12FY);
+z13=(144FX,93FY);
+z14=(112FX,258FY);
+z15=(149FX,377FY);
+z16=(228FX,414FY);
+z17=(331FX,348FY);
+z18=(368FX,189FY);
+FuF (z1
+{0,68} .. {-41,41}z2
+{-40,40} .. {-63,0}z3
+{-59,0} .. {-40,-44}z4
+{-40,-45} .. {0,-62}z5
+{0,-63} .. {39,-44}z6
+{41,-45} .. {62,0}z7
+{65,0} .. {40,48}z8
+{37,44} .. {0,62}z9
+);
+FuF (z10
+{0,-52} .. {-21,-33}z11
+{-21,-33} .. {-35,0}z12
+{-47,0} .. {-25,54}z13
+{-21,45} .. {0,65}z14
+{0,50} .. {24,29}z15
+{22,25} .. {31,0}z16
+{43,0} .. {26,-44}z17
+{24,-42} .. {0,-64}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(32,571FX#,643FY#,14FY#);
+"ev";
+z1=(565FX,0FY);
+z2=(565FX,28FY);
+z3=(422FX,28FY);
+z4=(422FX,425FY);
+z5=(285FX,425FY);
+z6=(285FX,411FY);
+z7=(332FX,395FY);
+z8=(343FX,353FY);
+z9=(343FX,93FY);
+z10=(219FX,35FY);
+z11=(149FX,131FY);
+z12=(149FX,641FY);
+z13=(144FX,643FY);
+z14=(91FX,625FY);
+z15=(10FX,602FY);
+z16=(10FX,587FY);
+z17=(34FX,588FY);
+z18=(64FX,573FY);
+z19=(70FX,538FY);
+z20=(70FX,145FY);
+z21=(179FX,-14FY);
+z22=(286FX,16FY);
+z23=(347FX,67FY);
+z24=(347FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{23,-3} .. {8,-7}z7
+{7,-8} .. {0,-20}z8
+-- z9
+{-41,-39} .. {-42,0}z10
+{-47,0} .. {0,64}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{17,1} .. {3,-11}z18
+{4,-9} .. {0,-14}z19
+-- z20
+{0,-106} .. {73,0}z21
+{37,0} .. {34,20}z22
+{27,15} .. {14,19}z23
+-- z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(127,419FX#,637FY#,7FY#);
+"question";
+z1=(391FX,484FY);
+z2=(384FX,536FY);
+z3=(356FX,583FY);
+z4=(296FX,622FY);
+z5=(218FX,637FY);
+z6=(111FX,602FY);
+z7=(64FX,503FY);
+z8=(74FX,458FY);
+z9=(111FX,443FY);
+z10=(139FX,455FY);
+z11=(148FX,483FY);
+z12=(130FX,519FY);
+z13=(112FX,553FY);
+z14=(140FX,591FY);
+z15=(201FX,609FY);
+z16=(277FX,573FY);
+z17=(303FX,490FY);
+z18=(278FX,373FY);
+z19=(260FX,333FY);
+z20=(245FX,295FY);
+z21=(222FX,230FY);
+z22=(215FX,189FY);
+z23=(214FX,155FY);
+z24=(230FX,155FY);
+z25=(245FX,219FY);
+z26=(271FX,271FY);
+z27=(295FX,303FY);
+z28=(330FX,346FY);
+z29=(373FX,417FY);
+z30=(391FX,484FY);
+z31=(275FX,40FY);
+z32=(259FX,76FY);
+z33=(223FX,92FY);
+z34=(188FX,77FY);
+z35=(174FX,40FY);
+z36=(188FX,5FY);
+z37=(223FX,-7FY);
+z38=(259FX,5FY);
+z39=(275FX,40FY);
+FuF (z1
+{-1,18} .. {-4,17}z2
+{-8,19} .. {-11,12}z3
+{-13,16} .. {-26,10}z4
+{-27,10} .. {-25,0}z5
+{-42,0} .. {-29,-24}z6
+{-32,-25} .. {1,-41}z7
+{0,-17} .. {6,-13}z8
+{7,-11} .. {17,1}z9
+{13,0} .. {6,8}z10
+{6,8} .. {0,10}z11
+{-1,12} .. {-11,12}z12
+{-12,15} .. {0,8}z13
+{0,14} .. {18,11}z14
+{21,13} .. {20,0}z15
+{32,-1} .. {18,-24}z16
+{18,-23} .. {0,-32}z17
+{0,-34} .. {-18,-44}z18
+{-7,-18} .. {-4,-9}z19
+{-7,-17} .. {-3,-8}z20
+{-10,-23} .. {-5,-21}z21
+{-5,-18} .. {0,-10}z22
+{-1,-4} .. {0,-19}z23
+-- z24
+{5,25} .. {5,17}z25
+{10,25} .. {8,10}z26
+-- z27
+-- z28
+{16,20} .. {12,27}z29
+{12,28} .. {0,17}z30
+);
+FuF (z31
+{0,15} .. {-11,9}z32
+{-11,11} .. {-13,0}z33
+{-13,-1} .. {-10,-9}z34
+{-10,-10} .. {0,-15}z35
+{0,-15} .. {10,-8}z36
+{11,-9} .. {12,0}z37
+{15,1} .. {9,8}z38
+{11,9} .. {-1,15}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+ligtable 101:
+39=:22,
+118=:32;
+
+ligtable 69:
+39=:6;
+
+ligtable 117:
+39=:23;
+
+ligtable 116:
+39=:24,
+104=:24;
+
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+ligtable 100:
+122=:19;
+
+ligtable 74:
+39=:5;
+
+ligtable 115:
+104=:26;
+
+ligtable 83:
+104=:10,
+72=:10;
+
+ligtable 99:
+39=:29,
+104=:27;
+
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+ligtable 114:
+39=:28;
+
+ligtable 111:
+39=:31;
+
+ligtable 79:
+39=:15;
+
+ligtable 39:
+39=:34;
+
+ligtable 96:
+96=:92;
+
+ligtable 60:
+60=:60;
+
+ligtable 62:
+62=:62;
+
+ligtable 45:
+45=:123;
+
+ligtable 123:
+45=:125;
+
+ligtable 27:
+121 kern 67FX#;
+
+ligtable 26:
+121 kern 40FX#;
+
+ligtable 23:
+121 kern 40FX#;
+
+ligtable 20:
+121 kern 67FX#;
+
+ligtable 12:
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 9:
+81 kern -67FX#;
+
+ligtable 8:
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 4:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 124:
+25 kern -103FX#,
+122 kern -103FX#,
+121 kern -103FX#,
+119 kern -103FX#,
+118 kern -103FX#,
+117 kern -103FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -103FX#,
+115 kern -103FX#,
+28 kern -103FX#,
+114 kern -103FX#,
+113 kern -103FX#,
+30 kern -103FX#,
+112 kern -103FX#,
+31 kern -103FX#,
+111 kern -103FX#,
+109 kern -103FX#,
+108 kern -103FX#,
+106 kern -103FX#,
+20 kern -103FX#,
+103 kern -103FX#,
+102 kern -121FX#,
+19 kern -121FX#,
+100 kern -121FX#,
+21 kern -103FX#,
+27 kern -103FX#,
+99 kern -103FX#,
+98 kern -103FX#,
+23 kern -103FX#,
+97 kern -103FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -94FX#,
+85 kern -148FX#,
+12 kern -148FX#,
+82 kern -148FX#,
+81 kern -94FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -148FX#,
+79 kern -148FX#,
+78 kern 44FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -148FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -148FX#,
+7 kern -148FX#;
+
+ligtable 122:
+121 kern 67FX#;
+
+ligtable 118:
+121 kern 67FX#;
+
+ligtable 112:
+39=:30,
+104=:30,
+121 kern 40FX#;
+
+ligtable 108:
+121 kern 67FX#;
+
+ligtable 107:
+121 kern 40FX#;
+
+ligtable 106:
+39=:21,
+121 kern 40FX#;
+
+ligtable 103:
+39=:25,
+104=:20,
+121 kern 40FX#;
+
+ligtable 88:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 87:
+81 kern -67FX#;
+
+ligtable 86:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 85:
+39=:7,
+81 kern -67FX#;
+
+ligtable 82:
+39=:12,
+81 kern -67FX#;
+
+ligtable 80:
+39=:14,
+104=:14,
+72=:14,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 77:
+25 kern -76FX#,
+122 kern -76FX#,
+121 kern -76FX#,
+119 kern -76FX#,
+118 kern -76FX#,
+117 kern -76FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -76FX#,
+115 kern -76FX#,
+28 kern -76FX#,
+114 kern -76FX#,
+113 kern -76FX#,
+30 kern -76FX#,
+112 kern -76FX#,
+31 kern -76FX#,
+111 kern -76FX#,
+109 kern -76FX#,
+108 kern -76FX#,
+106 kern -76FX#,
+20 kern -76FX#,
+103 kern -76FX#,
+102 kern -67FX#,
+19 kern -67FX#,
+100 kern -67FX#,
+21 kern -76FX#,
+27 kern -76FX#,
+99 kern -76FX#,
+98 kern -76FX#,
+23 kern -76FX#,
+97 kern -76FX#,
+86 kern -76FX#,
+81 kern -67FX#,
+70 kern -76FX#;
+
+ligtable 76:
+86 kern -184FX#,
+10 kern -103FX#,
+83 kern -103FX#,
+14 kern -134FX#,
+80 kern -134FX#,
+78 kern -134FX#,
+77 kern -134FX#,
+75 kern -134FX#,
+72 kern -134FX#,
+4 kern -184FX#,
+71 kern -184FX#,
+70 kern -134FX#,
+3 kern -103FX#,
+68 kern -103FX#,
+65 kern -134FX#;
+
+ligtable 71:
+39=:9,
+104=:4,
+72=:4,
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 70:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 68:
+122=:3,
+90=:3,
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 63:
+25 kern -202FX#,
+122 kern -202FX#,
+121 kern -202FX#,
+119 kern -202FX#,
+118 kern -202FX#,
+117 kern -202FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -202FX#,
+115 kern -202FX#,
+28 kern -202FX#,
+114 kern -202FX#,
+113 kern -202FX#,
+30 kern -202FX#,
+112 kern -202FX#,
+31 kern -202FX#,
+111 kern -202FX#,
+109 kern -202FX#,
+108 kern -202FX#,
+106 kern -202FX#,
+20 kern -202FX#,
+103 kern -202FX#,
+102 kern -121FX#,
+19 kern -121FX#,
+100 kern -121FX#,
+21 kern -202FX#,
+27 kern -202FX#,
+99 kern -202FX#,
+98 kern -202FX#,
+23 kern -202FX#,
+97 kern -202FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -193FX#,
+85 kern -148FX#,
+12 kern -148FX#,
+82 kern -148FX#,
+81 kern -193FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -148FX#,
+79 kern -148FX#,
+78 kern 44FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -148FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -148FX#,
+7 kern -148FX#;
+
+ligtable 33:
+25 kern -139FX#,
+122 kern -139FX#,
+121 kern -139FX#,
+119 kern -139FX#,
+118 kern -139FX#,
+117 kern -139FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -139FX#,
+115 kern -139FX#,
+28 kern -139FX#,
+114 kern -139FX#,
+113 kern -139FX#,
+30 kern -139FX#,
+112 kern -139FX#,
+31 kern -139FX#,
+111 kern -139FX#,
+109 kern -139FX#,
+108 kern -139FX#,
+106 kern -139FX#,
+20 kern -139FX#,
+103 kern -139FX#,
+102 kern -121FX#,
+19 kern -121FX#,
+100 kern -121FX#,
+21 kern -139FX#,
+27 kern -139FX#,
+99 kern -139FX#,
+98 kern -139FX#,
+23 kern -139FX#,
+97 kern -139FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -130FX#,
+85 kern -148FX#,
+12 kern -148FX#,
+82 kern -148FX#,
+81 kern -130FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -148FX#,
+79 kern -148FX#,
+78 kern 44FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -148FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -148FX#,
+7 kern -148FX#;
+
+font_slant := 0.0000;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "artmr10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/artmsl10.mf b/Master/texmf-dist/fonts/source/public/armenian/artmsl10.mf
new file mode 100644
index 00000000000..b6c8aed3729
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/artmsl10.mf
@@ -0,0 +1,7955 @@
+%% This file is a part of the ArmTeX 2.0
+%% [1999/06/01 v2.0 artmsl10.mf (Armenian Times Slanted 10pt font)]
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+currenttransform:=identity slanted 0.1700 yscaled aspect_ratio;
+if unknown FontSize: FontSize := 10pt#; fi
+FX# := FontSize * 0.0010;
+FY# := FontSize * 0.0010;
+input ps2mfbas
+
+beginchar(33,159FX#,753FY#,0FY#);
+"bacakanchakan";
+z1=(157FX,684FY);
+z2=(152FX,719FY);
+z3=(135FX,753FY);
+z4=(115FX,745FY);
+z5=(124FX,718FY);
+z6=(111FX,685FY);
+z7=(76FX,651FY);
+z8=(45FX,629FY);
+z9=(6FX,598FY);
+z10=(-20FX,525FY);
+z11=(-1FX,457FY);
+z12=(17FX,464FY);
+z13=(11FX,490FY);
+z14=(37FX,542FY);
+z15=(61FX,560FY);
+z16=(88FX,581FY);
+z17=(121FX,604FY);
+z18=(148FX,640FY);
+z19=(157FX,684FY);
+FuF (z1
+{0,13} .. {-3,10}z2
+{-5,14} .. {-6,9}z3
+-- z4
+{7,-10} .. {-1,-8}z5
+{0,-14} .. {-8,-8}z6
+-- z7
+-- z8
+-- z9
+{-18,-14} .. {1,-35}z10
+{0,-24} .. {12,-21}z11
+-- z12
+{-4,9} .. {0,8}z13
+{0,10} .. {18,25}z14
+{10,8} .. {6,4}z15
+-- z16
+-- z17
+{13,11} .. {5,14}z18
+{6,14} .. {-1,15}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(34,450FX#,624FY#,0FY#);
+"quotedblright";
+z1=(117FX,549FY);
+z2=(118FX,541FY);
+z3=(118FX,532FY);
+z4=(99FX,444FY);
+z5=(46FX,372FY);
+z6=(45FX,372FY);
+z7=(43FX,365FY);
+z8=(45FX,360FY);
+z9=(47FX,357FY);
+z10=(53FX,356FY);
+z11=(59FX,357FY);
+z12=(117FX,435FY);
+z13=(138FX,532FY);
+z14=(123FX,597FY);
+z15=(77FX,624FY);
+z16=(43FX,610FY);
+z17=(31FX,578FY);
+z18=(43FX,544FY);
+z19=(77FX,530FY);
+z20=(117FX,549FY);
+z21=(292FX,549FY);
+z22=(293FX,532FY);
+z23=(274FX,444FY);
+z24=(221FX,372FY);
+z25=(218FX,365FY);
+z26=(221FX,360FY);
+z27=(222FX,357FY);
+z28=(229FX,356FY);
+z29=(234FX,357FY);
+z30=(235FX,357FY);
+z31=(292FX,436FY);
+z32=(312FX,532FY);
+z33=(306FX,576FY);
+z34=(287FX,611FY);
+z35=(253FX,624FY);
+z36=(218FX,611FY);
+z37=(205FX,578FY);
+z38=(218FX,544FY);
+z39=(253FX,530FY);
+z40=(292FX,549FY);
+FuF (z1
+{0,-3} .. {1,-3}z2
+{0,-2} .. {0,-4}z3
+{0,-30} .. {-13,-28}z4
+{-12,-28} .. {-23,-20}z5
+-- z6
+{-1,-3} .. {0,-2}z7
+{0,-1} .. {1,-2}z8
+-- z9
+{3,-1} .. {1,0}z10
+{2,0} .. {2,1}z11
+{25,22} .. {14,30}z12
+{14,31} .. {0,34}z13
+{0,25} .. {-10,19}z14
+{-10,18} .. {-21,0}z15
+{-14,0} .. {-8,-10}z16
+{-8,-9} .. {0,-12}z17
+{0,-13} .. {8,-10}z18
+{9,-9} .. {14,0}z19
+{17,0} .. {9,13}z20
+);
+FuF (z21
+{0,-4} .. {0,-8}z22
+{0,-30} .. {-12,-28}z23
+{-13,-28} .. {-22,-20}z24
+{-2,-2} .. {0,-3}z25
+{0,-2} .. {2,-2}z26
+-- z27
+{3,-1} .. {2,0}z28
+{1,0} .. {3,1}z29
+-- z30
+{24,22} .. {14,31}z31
+{14,30} .. {0,34}z32
+{0,15} .. {-4,15}z33
+{-4,14} .. {-9,9}z34
+{-9,9} .. {-13,0}z35
+{-15,0} .. {-8,-9}z36
+{-9,-10} .. {0,-12}z37
+{0,-13} .. {8,-9}z38
+{9,-9} .. {15,0}z39
+{16,0} .. {10,13}z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(35,750FX#,624FY#,174FY#);
+"numbersign";
+z1=(69FX,294FY);
+z2=(271FX,294FY);
+z3=(234FX,156FY);
+z4=(69FX,156FY);
+z5=(55FX,150FY);
+z6=(51FX,138FY);
+z7=(56FX,125FY);
+z8=(69FX,120FY);
+z9=(223FX,120FY);
+z10=(150FX,-152FY);
+z11=(164FX,-174FY);
+z12=(185FX,-162FY);
+z13=(260FX,120FY);
+z14=(429FX,120FY);
+z15=(356FX,-152FY);
+z16=(369FX,-174FY);
+z17=(392FX,-162FY);
+z18=(466FX,120FY);
+z19=(680FX,120FY);
+z20=(693FX,125FY);
+z21=(698FX,138FY);
+z22=(693FX,151FY);
+z23=(680FX,156FY);
+z24=(478FX,156FY);
+z25=(514FX,294FY);
+z26=(680FX,294FY);
+z27=(693FX,299FY);
+z28=(698FX,312FY);
+z29=(693FX,325FY);
+z30=(680FX,330FY);
+z31=(526FX,330FY);
+z32=(598FX,602FY);
+z33=(585FX,624FY);
+z34=(562FX,612FY);
+z35=(488FX,330FY);
+z36=(319FX,330FY);
+z37=(392FX,602FY);
+z38=(379FX,624FY);
+z39=(356FX,612FY);
+z40=(282FX,330FY);
+z41=(69FX,330FY);
+z42=(56FX,325FY);
+z43=(51FX,312FY);
+z44=(56FX,300FY);
+z45=(69FX,294FY);
+z46=(440FX,156FY);
+z47=(272FX,156FY);
+z48=(308FX,294FY);
+z49=(476FX,294FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-6,0} .. {-4,-4}z5
+{-3,-3} .. {0,-5}z6
+{0,-5} .. {4,-4}z7
+{3,-4} .. {5,0}z8
+-- z9
+-- z10
+{0,-12} .. {9,-2}z11
+{11,0} .. {2,9}z12
+-- z13
+-- z14
+-- z15
+{0,-12} .. {8,-2}z16
+{12,0} .. {2,9}z17
+-- z18
+-- z19
+{5,0} .. {4,4}z20
+{4,3} .. {0,5}z21
+{0,5} .. {-4,3}z22
+{-3,3} .. {-6,0}z23
+-- z24
+-- z25
+-- z26
+{5,0} .. {4,3}z27
+{4,4} .. {0,5}z28
+{0,5} .. {-4,3}z29
+{-4,4} .. {-5,0}z30
+-- z31
+-- z32
+{0,12} .. {-8,2}z33
+{-12,0} .. {-2,-9}z34
+-- z35
+-- z36
+-- z37
+{0,13} .. {-8,1}z38
+{-12,0} .. {-2,-9}z39
+-- z40
+-- z41
+{-5,0} .. {-3,-4}z42
+{-4,-4} .. {0,-5}z43
+{0,-5} .. {4,-3}z44
+{3,-4} .. {5,0}z45
+);
+FuF (z46
+-- z47
+-- z48
+-- z49
+);
+lbl (range 1 thru 49);
+endchar;
+
+beginchar(36,472FX#,677FY#,72FY#);
+"dollar";
+z1=(50FX,154FY);
+z2=(50FX,23FY);
+z3=(125FX,-1FY);
+z4=(213FX,-13FY);
+z5=(213FX,-72FY);
+z6=(242FX,-72FY);
+z7=(242FX,-13FY);
+z8=(368FX,35FY);
+z9=(424FX,155FY);
+z10=(391FX,250FY);
+z11=(242FX,370FY);
+z12=(242FX,604FY);
+z13=(341FX,560FY);
+z14=(376FX,456FY);
+z15=(394FX,456FY);
+z16=(394FX,594FY);
+z17=(306FX,626FY);
+z18=(242FX,635FY);
+z19=(242FX,677FY);
+z20=(213FX,677FY);
+z21=(213FX,635FY);
+z22=(100FX,591FY);
+z23=(50FX,484FY);
+z24=(75FX,399FY);
+z25=(213FX,286FY);
+z26=(213FX,17FY);
+z27=(70FX,154FY);
+z28=(213FX,389FY);
+z29=(122FX,514FY);
+z30=(213FX,603FY);
+z31=(242FX,17FY);
+z32=(242FX,266FY);
+z33=(314FX,211FY);
+z34=(351FX,132FY);
+z35=(295FX,34FY);
+z36=(242FX,17FY);
+FuF (z1
+-- z2
+{26,-10} .. {24,-6}z3
+{30,-7} .. {28,-1}z4
+-- z5
+-- z6
+-- z7
+{50,4} .. {34,28}z8
+{38,32} .. {0,48}z9
+{0,38} .. {-22,26}z10
+{-23,27} .. {-76,53}z11
+-- z12
+{45,-5} .. {21,-24}z13
+{20,-23} .. {3,-46}z14
+-- z15
+-- z16
+{-48,19} .. {-11,3}z17
+{-19,4} .. {-24,2}z18
+-- z19
+-- z20
+-- z21
+{-46,-6} .. {-29,-24}z22
+{-34,-27} .. {0,-44}z23
+{0,-33} .. {16,-23}z24
+{23,-33} .. {69,-42}z25
+-- z26
+{-89,9} .. {-6,82}z27
+);
+FuF (z28
+{-61,40} .. {0,43}z29
+{0,52} .. {61,7}z30
+);
+FuF (z31
+-- z32
+{36,-25} .. {12,-12}z33
+{25,-25} .. {0,-27}z34
+{0,-42} .. {-37,-23}z35
+{-12,-8} .. {-23,-4}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(37,786FX#,638FY#,25FY#);
+"percent";
+z1=(642FX,638FY);
+z2=(600FX,638FY);
+z3=(145FX,-25FY);
+z4=(186FX,-25FY);
+z5=(168FX,638FY);
+z6=(52FX,557FY);
+z7=(33FX,469FY);
+z8=(51FX,381FY);
+z9=(167FX,301FY);
+z10=(267FX,355FY);
+z11=(298FX,469FY);
+z12=(263FX,588FY);
+z13=(168FX,638FY);
+z14=(166FX,613FY);
+z15=(203FX,589FY);
+z16=(225FX,467FY);
+z17=(165FX,325FY);
+z18=(140FX,333FY);
+z19=(117FX,372FY);
+z20=(106FX,470FY);
+z21=(166FX,613FY);
+z22=(620FX,310FY);
+z23=(589FX,305FY);
+z24=(555FX,291FY);
+z25=(507FX,230FY);
+z26=(489FX,141FY);
+z27=(556FX,-6FY);
+z28=(622FX,-25FY);
+z29=(713FX,17FY);
+z30=(753FX,141FY);
+z31=(684FX,289FY);
+z32=(620FX,310FY);
+z33=(621FX,286FY);
+z34=(659FX,262FY);
+z35=(680FX,140FY);
+z36=(659FX,25FY);
+z37=(621FX,0FY);
+z38=(583FX,23FY);
+z39=(561FX,139FY);
+z40=(582FX,260FY);
+z41=(621FX,286FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+{-53,0} .. {-24,-54}z6
+{-13,-29} .. {0,-30}z7
+{1,-32} .. {11,-27}z8
+{23,-55} .. {54,1}z9
+{43,0} .. {24,36}z10
+{21,30} .. {0,46}z11
+{0,46} .. {-23,33}z12
+{-23,34} .. {-41,0}z13
+);
+FuF (z14
+{15,-1} .. {10,-16}z15
+{15,-24} .. {0,-57}z16
+{0,-95} .. {-40,0}z17
+{-10,0} .. {-7,6}z18
+{-12,10} .. {-5,16}z19
+{-6,21} .. {0,44}z20
+{1,96} .. {39,-1}z21
+);
+FuF (z22
+{-10,0} .. {-11,-4}z23
+{-11,-3} .. {-12,-6}z24
+{-21,-16} .. {-11,-25}z25
+{-13,-28} .. {0,-32}z26
+{1,-70} .. {44,-28}z27
+{21,-13} .. {23,0}z28
+{34,0} .. {26,28}z29
+{27,29} .. {0,53}z30
+{-1,71} .. {-45,28}z31
+{-23,14} .. {-19,0}z32
+);
+FuF (z33
+{16,-2} .. {10,-14}z34
+{15,-23} .. {-1,-58}z35
+{0,-56} .. {-14,-21}z36
+{-12,-17} .. {-13,0}z37
+{-16,0} .. {-10,15}z38
+{-15,23} .. {0,54}z39
+{1,60} .. {13,20}z40
+{11,17} .. {15,0}z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(38,700FX#,645FY#,20FY#);
+"ampersand";
+z1=(386FX,105FY);
+z2=(302FX,223FY);
+z3=(238FX,346FY);
+z4=(317FX,446FY);
+z5=(346FX,526FY);
+z6=(339FX,582FY);
+z7=(314FX,628FY);
+z8=(271FX,645FY);
+z9=(207FX,626FY);
+z10=(163FX,573FY);
+z11=(147FX,505FY);
+z12=(183FX,318FY);
+z13=(72FX,200FY);
+z14=(38FX,116FY);
+z15=(61FX,45FY);
+z16=(121FX,-3FY);
+z17=(200FX,-20FY);
+z18=(363FX,49FY);
+z19=(523FX,-20FY);
+z20=(612FX,18FY);
+z21=(648FX,109FY);
+z22=(625FX,109FY);
+z23=(611FX,57FY);
+z24=(574FX,20FY);
+z25=(523FX,7FY);
+z26=(400FX,88FY);
+z27=(455FX,162FY);
+z28=(511FX,253FY);
+z29=(541FX,302FY);
+z30=(586FX,345FY);
+z31=(653FX,360FY);
+z32=(653FX,388FY);
+z33=(564FX,385FY);
+z34=(455FX,388FY);
+z35=(455FX,360FY);
+z36=(510FX,343FY);
+z37=(520FX,320FY);
+z38=(515FX,302FY);
+z39=(491FX,264FY);
+z40=(386FX,105FY);
+z41=(112FX,144FY);
+z42=(151FX,255FY);
+z43=(191FX,297FY);
+z44=(250FX,188FY);
+z45=(346FX,65FY);
+z46=(204FX,7FY);
+z47=(138FX,48FY);
+z48=(112FX,144FY);
+z49=(324FX,526FY);
+z50=(299FX,456FY);
+z51=(230FX,368FY);
+z52=(203FX,526FY);
+z53=(222FX,595FY);
+z54=(271FX,624FY);
+z55=(300FX,611FY);
+z56=(318FX,576FY);
+z57=(324FX,526FY);
+FuF (z1
+{-23,31} .. {-32,48}z2
+{-26,39} .. {-17,43}z3
+{33,38} .. {19,29}z4
+{20,30} .. {0,24}z5
+{0,19} .. {-5,18}z6
+{-5,19} .. {-12,12}z7
+{-11,11} .. {-18,0}z8
+{-23,0} .. {-19,-13}z9
+{-19,-13} .. {-11,-22}z10
+{-11,-21} .. {0,-24}z11
+{0,-61} .. {24,-63}z12
+-- z13
+{-23,-25} .. {0,-31}z14
+{0,-26} .. {16,-21}z15
+{15,-20} .. {25,-12}z16
+{25,-11} .. {27,0}z17
+{59,0} .. {50,46}z18
+{50,-46} .. {57,0}z19
+{35,0} .. {25,25}z20
+{24,25} .. {0,35}z21
+-- z22
+{0,-19} .. {-10,-16}z23
+{-9,-15} .. {-16,-9}z24
+{-15,-9} .. {-19,0}z25
+{-35,0} .. {-48,54}z26
+{18,20} .. {19,30}z27
+{19,29} .. {19,31}z28
+-- z29
+{11,19} .. {19,10}z30
+{18,9} .. {26,0}z31
+-- z32
+{-29,-2} .. {-30,0}z33
+{-36,0} .. {-36,2}z34
+-- z35
+{25,0} .. {12,-11}z36
+{7,-6} .. {0,-9}z37
+{0,-7} .. {-3,-5}z38
+-- z39
+{-45,-72} .. {-28,-33}z40
+);
+FuF (z41
+{0,46} .. {26,28}z42
+-- z43
+{14,-32} .. {26,-40}z44
+{38,-58} .. {25,-25}z45
+{-45,-39} .. {-50,0}z46
+{-27,0} .. {-16,27}z47
+{-17,27} .. {0,37}z48
+);
+FuF (z49
+{0,-20} .. {-17,-27}z50
+{-16,-26} .. {-29,-32}z51
+{-18,53} .. {0,52}z52
+{0,27} .. {12,19}z53
+{13,20} .. {20,0}z54
+{11,0} .. {8,-9}z55
+{8,-8} .. {4,-15}z56
+{4,-15} .. {0,-18}z57
+);
+lbl (range 1 thru 57);
+endchar;
+
+beginchar(39,236FX#,624FY#,0FY#);
+"apatharc";
+z1=(175FX,535FY);
+z2=(155FX,597FY);
+z3=(98FX,624FY);
+z4=(57FX,607FY);
+z5=(43FX,570FY);
+z6=(102FX,523FY);
+z7=(114FX,524FY);
+z8=(125FX,526FY);
+z9=(133FX,524FY);
+z10=(138FX,513FY);
+z11=(60FX,413FY);
+z12=(69FX,395FY);
+z13=(141FX,454FY);
+z14=(175FX,535FY);
+FuF (z1
+{0,25} .. {-13,17}z2
+{-14,18} .. {-24,0}z3
+{-17,0} .. {-10,-12}z4
+{-9,-11} .. {0,-13}z5
+{1,-34} .. {39,3}z6
+-- z7
+-- z8
+-- z9
+{3,-3} .. {0,-4}z10
+{-2,-35} .. {-50,-31}z11
+-- z12
+{28,14} .. {20,26}z13
+{22,27} .. {0,27}z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(40,391FX#,750FY#,250FY#);
+"parenleft";
+z1=(357FX,732FY);
+z2=(346FX,750FY);
+z3=(56FX,260FY);
+z4=(75FX,98FY);
+z5=(102FX,25FY);
+z6=(137FX,-43FY);
+z7=(243FX,-173FY);
+z8=(342FX,-250FY);
+z9=(357FX,-232FY);
+z10=(192FX,-15FY);
+z11=(157FX,261FY);
+z12=(202FX,542FY);
+z13=(357FX,732FY);
+FuF (z1
+-- z2
+{-195,-116} .. {2,-210}z3
+{0,-56} .. {12,-53}z4
+{13,-37} .. {5,-12}z5
+{9,-21} .. {15,-24}z6
+{30,-49} .. {40,-37}z7
+{43,-39} .. {23,-12}z8
+-- z9
+{-79,53} .. {-31,91}z10
+{-24,71} .. {1,113}z11
+{1,116} .. {29,71}z12
+{29,71} .. {74,56}z13
+);
+lbl (range 1 thru 13);
+endchar;
+
+beginchar(41,391FX#,750FY#,250FY#);
+"parenright";
+z1=(33FX,-232FY);
+z2=(44FX,-250FY);
+z3=(262FX,-36FY);
+z4=(333FX,240FY);
+z5=(251FX,544FY);
+z6=(160FX,659FY);
+z7=(47FX,750FY);
+z8=(33FX,732FY);
+z9=(191FX,528FY);
+z10=(233FX,239FY);
+z11=(187FX,-43FY);
+z12=(33FX,-232FY);
+FuF (z1
+-- z2
+{98,60} .. {47,83}z3
+{49,86} .. {0,98}z4
+{-1,115} .. {-54,88}z5
+{-24,38} .. {-37,39}z6
+{-41,44} .. {-34,16}z7
+-- z8
+{79,-54} .. {27,-82}z9
+{27,-84} .. {0,-109}z10
+{0,-116} .. {-31,-72}z11
+{-31,-73} .. {-71,-53}z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(42,472FX#,637FY#,0FY#);
+"asterisk";
+z1=(271FX,601FY);
+z2=(260FX,626FY);
+z3=(237FX,637FY);
+z4=(211FX,626FY);
+z5=(204FX,600FY);
+z6=(215FX,551FY);
+z7=(228FX,458FY);
+z8=(157FX,514FY);
+z9=(96FX,557FY);
+z10=(74FX,548FY);
+z11=(65FX,524FY);
+z12=(78FX,494FY);
+z13=(106FX,484FY);
+z14=(135FX,477FY);
+z15=(155FX,472FY);
+z16=(184FX,464FY);
+z17=(221FX,444FY);
+z18=(127FX,407FY);
+z19=(65FX,363FY);
+z20=(99FX,331FY);
+z21=(131FX,345FY);
+z22=(161FX,378FY);
+z23=(193FX,408FY);
+z24=(227FX,430FY);
+z25=(228FX,405FY);
+z26=(215FX,338FY);
+z27=(202FX,287FY);
+z28=(235FX,250FY);
+z29=(272FX,291FY);
+z30=(253FX,348FY);
+z31=(245FX,430FY);
+z32=(316FX,373FY);
+z33=(374FX,330FY);
+z34=(399FX,340FY);
+z35=(408FX,365FY);
+z36=(348FX,407FY);
+z37=(253FX,443FY);
+z38=(325FX,475FY);
+z39=(380FX,488FY);
+z40=(407FX,525FY);
+z41=(397FX,549FY);
+z42=(373FX,559FY);
+z43=(315FX,514FY);
+z44=(245FX,456FY);
+z45=(257FX,547FY);
+z46=(271FX,601FY);
+FuF (z1
+{-1,11} .. {-6,5}z2
+{-6,8} .. {-9,0}z3
+{-13,0} .. {-5,-8}z4
+{-5,-7} .. {0,-10}z5
+{0,-9} .. {8,-24}z6
+{8,-26} .. {0,-36}z7
+{-9,5} .. {-38,32}z8
+{-34,29} .. {-6,0}z9
+{-10,-2} .. {-4,-4}z10
+{-6,-9} .. {0,-7}z11
+{1,-16} .. {8,-4}z12
+{13,-5} .. {6,-2}z13
+{14,-3} .. {6,-2}z14
+-- z15
+{17,-4} .. {2,-1}z16
+-- z17
+{-20,-15} .. {-43,-10}z18
+{-41,-10} .. {0,-19}z19
+{0,-21} .. {23,0}z20
+{13,0} .. {8,9}z21
+-- z22
+{14,15} .. {7,4}z23
+-- z24
+-- z25
+{-1,-20} .. {-8,-25}z26
+{-9,-30} .. {1,-4}z27
+{1,-25} .. {21,1}z28
+{24,1} .. {0,25}z29
+-- z30
+{-5,16} .. {0,39}z31
+{21,-8} .. {26,-30}z32
+{25,-29} .. {13,0}z33
+{11,1} .. {6,6}z34
+{6,9} .. {0,7}z35
+{-1,20} .. {-39,9}z36
+{-39,8} .. {-24,16}z37
+{26,17} .. {22,5}z38
+-- z39
+{18,6} .. {0,18}z40
+{-1,11} .. {-6,6}z41
+{-7,6} .. {-9,0}z42
+{-9,-1} .. {-30,-29}z43
+{-33,-32} .. {-14,-7}z44
+{2,33} .. {6,28}z45
+{9,24} .. {0,12}z46
+);
+lbl (range 1 thru 46);
+endchar;
+
+beginchar(43,537FX#,479FY#,23FY#);
+"plus";
+z1=(522FX,197FY);
+z2=(522FX,257FY);
+z3=(300FX,257FY);
+z4=(300FX,479FY);
+z5=(240FX,479FY);
+z6=(240FX,257FY);
+z7=(19FX,257FY);
+z8=(19FX,197FY);
+z9=(240FX,197FY);
+z10=(240FX,-23FY);
+z11=(300FX,-23FY);
+z12=(300FX,197FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+);
+lbl (range 1 thru 12);
+endchar;
+
+beginchar(44,236FX#,96FY#,133FY#);
+"comma";
+z1=(184FX,6FY);
+z2=(161FX,73FY);
+z3=(107FX,96FY);
+z4=(68FX,81FY);
+z5=(53FX,41FY);
+z6=(111FX,-6FY);
+z7=(123FX,-5FY);
+z8=(135FX,-2FY);
+z9=(142FX,-5FY);
+z10=(147FX,-15FY);
+z11=(119FX,-72FY);
+z12=(70FX,-115FY);
+z13=(78FX,-133FY);
+z14=(151FX,-75FY);
+z15=(184FX,6FY);
+FuF (z1
+{0,29} .. {-15,16}z2
+{-15,16} .. {-21,0}z3
+{-16,0} .. {-10,-10}z4
+{-10,-10} .. {0,-16}z5
+{1,-34} .. {38,3}z6
+-- z7
+-- z8
+-- z9
+{4,-2} .. {0,-4}z10
+{-1,-17} .. {-18,-20}z11
+{-14,-17} .. {-18,-12}z12
+-- z13
+{29,14} .. {20,25}z14
+{22,27} .. {0,27}z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(45,423FX#,257FY#,0FY#);
+"miuthyun";
+z1=(54FX,197FY);
+z2=(369FX,197FY);
+z3=(369FX,257FY);
+z4=(54FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(46,212FX#,94FY#,11FY#);
+"period";
+z1=(154FX,41FY);
+z2=(140FX,79FY);
+z3=(105FX,94FY);
+z4=(73FX,78FY);
+z5=(59FX,40FY);
+z6=(75FX,3FY);
+z7=(105FX,-11FY);
+z8=(140FX,5FY);
+z9=(154FX,41FY);
+FuF (z1
+{0,16} .. {-9,9}z2
+{-10,10} .. {-14,-1}z3
+{-13,0} .. {-8,-11}z4
+{-9,-11} .. {0,-14}z5
+{1,-15} .. {10,-10}z6
+{10,-9} .. {10,0}z7
+{15,2} .. {9,9}z8
+{9,12} .. {0,12}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(47,262FX#,654FY#,13FY#);
+"slash";
+z1=(264FX,654FY);
+z2=(228FX,654FY);
+z3=(1FX,-13FY);
+z4=(39FX,-13FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(48,472FX#,637FY#,13FY#);
+"zero";
+z1=(449FX,313FY);
+z2=(397FX,535FY);
+z3=(236FX,637FY);
+z4=(73FX,535FY);
+z5=(23FX,312FY);
+z6=(74FX,87FY);
+z7=(236FX,-13FY);
+z8=(398FX,89FY);
+z9=(449FX,313FY);
+z10=(113FX,322FY);
+z11=(140FX,525FY);
+z12=(236FX,613FY);
+z13=(325FX,543FY);
+z14=(358FX,310FY);
+z15=(335FX,107FY);
+z16=(236FX,12FY);
+z17=(155FX,62FY);
+z18=(118FX,189FY);
+z19=(113FX,322FY);
+FuF (z1
+{0,80} .. {-34,68}z2
+{-34,68} .. {-73,0}z3
+{-75,0} .. {-34,-68}z4
+{-33,-68} .. {0,-81}z5
+{0,-83} .. {34,-67}z6
+{34,-67} .. {74,0}z7
+{74,0} .. {34,68}z8
+{34,70} .. {0,80}z9
+);
+FuF (z10
+{1,82} .. {18,54}z11
+{19,59} .. {45,0}z12
+{37,0} .. {22,-46}z13
+{23,-47} .. {-1,-108}z14
+{0,-71} .. {-15,-64}z15
+{-15,-64} .. {-51,0}z16
+{-36,0} .. {-18,34}z17
+{-19,36} .. {-6,49}z18
+{-4,30} .. {0,58}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(49,472FX#,637FY#,0FY#);
+"one";
+z1=(282FX,636FY);
+z2=(274FX,637FY);
+z3=(105FX,552FY);
+z4=(105FX,538FY);
+z5=(123FX,546FY);
+z6=(169FX,559FY);
+z7=(195FX,549FY);
+z8=(201FX,519FY);
+z9=(201FX,86FY);
+z10=(178FX,26FY);
+z11=(111FX,14FY);
+z12=(111FX,0FY);
+z13=(372FX,0FY);
+z14=(372FX,14FY);
+z15=(301FX,23FY);
+z16=(282FX,72FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{5,3} .. {7,2}z5
+{24,9} .. {6,0}z6
+{13,0} .. {4,-7}z7
+{4,-8} .. {0,-12}z8
+-- z9
+{0,-30} .. {-15,-10}z10
+{-12,-8} .. {-33,0}z11
+-- z12
+-- z13
+-- z14
+{-35,1} .. {-12,5}z15
+{-13,7} .. {0,26}z16
+);
+lbl (range 1 thru 16);
+endchar;
+
+beginchar(50,472FX#,637FY#,0FY#);
+"two";
+z1=(400FX,468FY);
+z2=(351FX,589FY);
+z3=(228FX,637FY);
+z4=(29FX,450FY);
+z5=(49FX,445FY);
+z6=(185FX,568FY);
+z7=(283FX,529FY);
+z8=(319FX,432FY);
+z9=(282FX,306FY);
+z10=(199FX,193FY);
+z11=(28FX,12FY);
+z12=(28FX,0FY);
+z13=(396FX,0FY);
+z14=(448FX,129FY);
+z15=(436FX,134FY);
+z16=(407FX,93FY);
+z17=(353FX,72FY);
+z18=(121FX,72FY);
+z19=(286FX,245FY);
+z20=(369FX,353FY);
+z21=(400FX,468FY);
+FuF (z1
+{-1,48} .. {-32,32}z2
+{-33,32} .. {-49,0}z3
+{-109,-1} .. {-24,-124}z4
+-- z5
+{33,83} .. {58,-1}z6
+{41,-1} .. {24,-25}z7
+{24,-25} .. {0,-39}z8
+{0,-41} .. {-24,-42}z9
+{-25,-44} .. {-30,-31}z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+{-14,-14} .. {-22,0}z17
+-- z18
+-- z19
+{33,35} .. {22,37}z20
+{21,35} .. {0,41}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(51,472FX#,637FY#,13FY#);
+"three";
+z1=(42FX,485FY);
+z2=(57FX,481FY);
+z3=(196FX,581FY);
+z4=(271FX,552FY);
+z5=(300FX,483FY);
+z6=(143FX,323FY);
+z7=(144FX,311FY);
+z8=(216FX,308FY);
+z9=(274FX,286FY);
+z10=(321FX,234FY);
+z11=(338FX,164FY);
+z12=(306FX,64FY);
+z13=(213FX,21FY);
+z14=(142FX,47FY);
+z15=(76FX,74FY);
+z16=(49FX,64FY);
+z17=(41FX,40FY);
+z18=(76FX,-2FY);
+z19=(148FX,-13FY);
+z20=(329FX,42FY);
+z21=(407FX,204FY);
+z22=(377FX,310FY);
+z23=(287FX,378FY);
+z24=(374FX,510FY);
+z25=(338FX,597FY);
+z26=(228FX,637FY);
+z27=(42FX,485FY);
+FuF (z1
+-- z2
+{34,67} .. {58,0}z3
+{30,0} .. {20,-20}z4
+{19,-19} .. {0,-27}z5
+{-1,-73} .. {-104,-34}z6
+-- z7
+-- z8
+{22,-5} .. {17,-10}z9
+{19,-11} .. {12,-24}z10
+{12,-25} .. {0,-22}z11
+{0,-40} .. {-22,-27}z12
+{-23,-30} .. {-39,1}z13
+{-16,0} .. {-31,17}z14
+{-33,18} .. {-12,0}z15
+{-12,-1} .. {-6,-6}z16
+{-6,-9} .. {1,-7}z17
+{0,-21} .. {23,-7}z18
+{25,-8} .. {23,0}z19
+{71,1} .. {50,36}z20
+{52,38} .. {-1,70}z21
+{0,40} .. {-20,30}z22
+{-19,30} .. {-41,15}z23
+{58,38} .. {0,50}z24
+{0,31} .. {-24,27}z25
+{-25,27} .. {-48,0}z26
+{-94,0} .. {-30,-102}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(52,472FX#,637FY#,0FY#);
+"four";
+z1=(349FX,637FY);
+z2=(308FX,637FY);
+z3=(12FX,218FY);
+z4=(12FX,158FY);
+z5=(276FX,158FY);
+z6=(276FX,0FY);
+z7=(349FX,0FY);
+z8=(349FX,158FY);
+z9=(445FX,158FY);
+z10=(445FX,218FY);
+z11=(349FX,218FY);
+z12=(49FX,218FY);
+z13=(275FX,542FY);
+z14=(275FX,218FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+FuF (z12
+-- z13
+-- z14
+);
+lbl (range 1 thru 14);
+endchar;
+
+beginchar(53,472FX#,649FY#,13FY#);
+"five";
+z1=(413FX,642FY);
+z2=(405FX,649FY);
+z3=(386FX,629FY);
+z4=(360FX,624FY);
+z5=(164FX,624FY);
+z6=(60FX,399FY);
+z7=(63FX,389FY);
+z8=(251FX,337FY);
+z9=(336FX,188FY);
+z10=(304FX,76FY);
+z11=(205FX,22FY);
+z12=(180FX,29FY);
+z13=(141FX,51FY);
+z14=(67FX,80FY);
+z15=(30FX,44FY);
+z16=(67FX,-1FY);
+z17=(149FX,-13FY);
+z18=(329FX,52FY);
+z19=(402FX,218FY);
+z20=(390FX,309FY);
+z21=(340FX,385FY);
+z22=(259FX,438FY);
+z23=(131FX,470FY);
+z24=(171FX,550FY);
+z25=(356FX,550FY);
+z26=(385FX,575FY);
+FuF (z1
+-- z2
+-- z3
+{-5,-3} .. {-12,0}z4
+-- z5
+-- z6
+-- z7
+{69,0} .. {56,-34}z8
+{57,-35} .. {0,-65}z9
+{0,-43} .. {-21,-32}z10
+{-25,-36} .. {-42,0}z11
+{-9,1} .. {-7,3}z12
+{-12,6} .. {-14,9}z13
+{-31,20} .. {-19,-1}z14
+{-24,-1} .. {0,-24}z15
+{0,-22} .. {24,-8}z16
+{27,-8} .. {28,0}z17
+{71,1} .. {49,43}z18
+{48,42} .. {0,68}z19
+{0,37} .. {-8,23}z20
+{-9,25} .. {-24,26}z21
+{-20,22} .. {-34,13}z22
+{-35,14} .. {-51,9}z23
+-- z24
+-- z25
+{12,0} .. {7,17}z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(54,472FX#,645FY#,13FY#);
+"six";
+z1=(423FX,630FY);
+z2=(420FX,645FY);
+z3=(145FX,534FY);
+z4=(32FX,271FY);
+z5=(78FX,80FY);
+z6=(240FX,-13FY);
+z7=(392FX,54FY);
+z8=(441FX,207FY);
+z9=(396FX,347FY);
+z10=(266FX,404FY);
+z11=(143FX,361FY);
+z12=(239FX,542FY);
+z13=(423FX,630FY);
+z14=(120FX,239FY);
+z15=(123FX,296FY);
+z16=(227FX,360FY);
+z17=(327FX,307FY);
+z18=(356FX,171FY);
+z19=(328FX,53FY);
+z20=(254FX,13FY);
+z21=(155FX,75FY);
+z22=(119FX,217FY);
+z23=(120FX,239FY);
+FuF (z1
+-- z2
+{-108,0} .. {-75,-73}z3
+{-76,-74} .. {1,-102}z4
+{0,-77} .. {30,-51}z5
+{37,-63} .. {71,1}z6
+{69,0} .. {33,44}z7
+{33,44} .. {0,58}z8
+{0,56} .. {-30,38}z9
+{-30,38} .. {-57,0}z10
+{-35,0} .. {-47,-29}z11
+{13,71} .. {51,50}z12
+{51,49} .. {71,10}z13
+);
+FuF (z14
+-- z15
+{10,43} .. {60,0}z16
+{46,0} .. {19,-35}z17
+{20,-36} .. {0,-55}z18
+{0,-53} .. {-19,-26}z19
+{-19,-27} .. {-30,0}z20
+{-44,1} .. {-23,41}z21
+{-24,42} .. {0,53}z22
+{0,7} .. {1,7}z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(55,472FX#,624FY#,7FY#);
+"seven";
+z1=(424FX,624FY);
+z2=(75FX,624FY);
+z3=(54FX,571FY);
+z4=(19FX,486FY);
+z5=(35FX,478FY);
+z6=(83FX,538FY);
+z7=(140FX,554FY);
+z8=(349FX,554FY);
+z9=(162FX,-7FY);
+z10=(223FX,-7FY);
+z11=(424FX,609FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{18,30} .. {14,10}z6
+{14,11} .. {24,0}z7
+-- z8
+-- z9
+-- z10
+-- z11
+);
+lbl (range 1 thru 11);
+endchar;
+
+beginchar(56,472FX#,637FY#,13FY#);
+"eight";
+z1=(400FX,505FY);
+z2=(353FX,600FY);
+z3=(236FX,637FY);
+z4=(111FX,596FY);
+z5=(58FX,490FY);
+z6=(93FX,390FY);
+z7=(175FX,313FY);
+z8=(127FX,275FY);
+z9=(71FX,214FY);
+z10=(53FX,140FY);
+z11=(101FX,31FY);
+z12=(233FX,-13FY);
+z13=(378FX,37FY);
+z14=(420FX,143FY);
+z15=(392FX,236FY);
+z16=(274FX,350FY);
+z17=(400FX,505FY);
+z18=(128FX,517FY);
+z19=(157FX,586FY);
+z20=(229FX,611FY);
+z21=(306FX,583FY);
+z22=(335FX,508FY);
+z23=(311FX,426FY);
+z24=(246FX,367FY);
+z25=(162FX,434FY);
+z26=(128FX,517FY);
+z27=(124FX,148FY);
+z28=(141FX,225FY);
+z29=(200FX,294FY);
+z30=(287FX,230FY);
+z31=(348FX,120FY);
+z32=(320FX,42FY);
+z33=(244FX,13FY);
+z34=(156FX,52FY);
+z35=(124FX,148FY);
+FuF (z1
+{0,39} .. {-31,24}z2
+{-33,26} .. {-45,0}z3
+{-48,-1} .. {-35,-27}z4
+{-35,-26} .. {0,-44}z5
+{0,-39} .. {23,-27}z6
+{3,-3} .. {52,-48}z7
+-- z8
+{-24,-19} .. {-13,-22}z9
+{-12,-19} .. {0,-30}z10
+{0,-44} .. {32,-29}z11
+{33,-30} .. {55,0}z12
+{70,1} .. {27,33}z13
+{28,34} .. {-1,36}z14
+{0,33} .. {-18,29}z15
+{-18,30} .. {-60,46}z16
+{84,45} .. {-1,58}z17
+);
+FuF (z18
+{0,29} .. {18,17}z19
+{18,17} .. {29,0}z20
+{32,-1} .. {20,-19}z21
+{19,-18} .. {0,-31}z22
+{0,-32} .. {-16,-23}z23
+{-13,-19} .. {-30,-20}z24
+{-35,22} .. {-21,23}z25
+{-23,25} .. {1,30}z26
+);
+FuF (z27
+{0,27} .. {11,24}z28
+{10,24} .. {29,22}z29
+-- z30
+{41,-30} .. {0,-43}z31
+{0,-32} .. {-19,-20}z32
+{-19,-19} .. {-32,0}z33
+{-39,1} .. {-20,25}z34
+{-22,27} .. {1,37}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(57,472FX#,637FY#,21FY#);
+"nine";
+z1=(53FX,-2FY);
+z2=(56FX,-21FY);
+z3=(328FX,96FY);
+z4=(433FX,371FY);
+z5=(385FX,549FY);
+z6=(231FX,637FY);
+z7=(79FX,570FY);
+z8=(28FX,417FY);
+z9=(65FX,287FY);
+z10=(204FX,223FY);
+z11=(272FX,237FY);
+z12=(337FX,275FY);
+z13=(338FX,273FY);
+z14=(223FX,77FY);
+z15=(53FX,-2FY);
+z16=(341FX,385FY);
+z17=(341FX,363FY);
+z18=(342FX,345FY);
+z19=(327FX,298FY);
+z20=(282FX,273FY);
+z21=(239FX,264FY);
+z22=(155FX,300FY);
+z23=(115FX,454FY);
+z24=(119FX,500FY);
+z25=(218FX,611FY);
+z26=(310FX,550FY);
+z27=(341FX,385FY);
+FuF (z1
+-- z2
+{111,0} .. {70,78}z3
+{70,77} .. {0,106}z4
+{0,68} .. {-32,50}z5
+{-37,59} .. {-65,0}z6
+{-67,0} .. {-34,-45}z7
+{-34,-45} .. {0,-57}z8
+{0,-45} .. {25,-42}z9
+{25,-43} .. {67,1}z10
+{23,0} .. {22,9}z11
+{25,10} .. {18,15}z12
+-- z13
+{-24,-88} .. {-53,-43}z14
+{-53,-43} .. {-60,-9}z15
+);
+FuF (z16
+-- z17
+-- z18
+{-1,-23} .. {-9,-9}z19
+{-11,-10} .. {-19,-6}z20
+{-20,-7} .. {-9,0}z21
+{-31,1} .. {-25,23}z22
+{-27,25} .. {0,78}z23
+{0,16} .. {2,14}z24
+{12,75} .. {54,-1}z25
+{42,0} .. {19,-40}z26
+{21,-42} .. {0,-68}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(58,267FX#,440FY#,11FY#);
+"colon";
+z1=(184FX,41FY);
+z2=(167FX,80FY);
+z3=(130FX,96FY);
+z4=(92FX,78FY);
+z5=(77FX,41FY);
+z6=(93FX,4FY);
+z7=(130FX,-11FY);
+z8=(152FX,-6FY);
+z9=(184FX,41FY);
+z10=(184FX,386FY);
+z11=(167FX,424FY);
+z12=(130FX,440FY);
+z13=(92FX,424FY);
+z14=(77FX,385FY);
+z15=(93FX,348FY);
+z16=(130FX,334FY);
+z17=(152FX,338FY);
+z18=(168FX,349FY);
+z19=(184FX,386FY);
+FuF (z1
+{-1,15} .. {-11,11}z2
+{-10,11} .. {-15,0}z3
+{-17,-1} .. {-9,-12}z4
+{-10,-12} .. {0,-12}z5
+{1,-16} .. {10,-9}z6
+{12,-10} .. {13,0}z7
+{11,2} .. {4,2}z8
+{22,9} .. {-1,22}z9
+);
+FuF (z10
+{-1,15} .. {-11,11}z11
+{-10,11} .. {-15,-1}z12
+{-15,0} .. {-11,-10}z13
+{-10,-11} .. {0,-15}z14
+{1,-16} .. {10,-8}z15
+{11,-9} .. {14,0}z16
+{10,1} .. {5,2}z17
+{5,2} .. {5,5}z18
+{11,11} .. {0,14}z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(59,262FX#,433FY#,133FY#);
+"semicolon";
+z1=(181FX,379FY);
+z2=(165FX,416FY);
+z3=(128FX,433FY);
+z4=(90FX,415FY);
+z5=(76FX,378FY);
+z6=(92FX,342FY);
+z7=(128FX,328FY);
+z8=(165FX,343FY);
+z9=(181FX,379FY);
+z10=(207FX,6FY);
+z11=(184FX,73FY);
+z12=(130FX,96FY);
+z13=(89FX,79FY);
+z14=(76FX,41FY);
+z15=(134FX,-6FY);
+z16=(146FX,-5FY);
+z17=(158FX,-2FY);
+z18=(165FX,-5FY);
+z19=(170FX,-15FY);
+z20=(143FX,-70FY);
+z21=(93FX,-115FY);
+z22=(101FX,-133FY);
+z23=(173FX,-76FY);
+z24=(207FX,6FY);
+FuF (z1
+{0,14} .. {-10,11}z2
+{-11,11} .. {-14,0}z3
+{-15,0} .. {-10,-12}z4
+{-9,-11} .. {0,-13}z5
+{1,-14} .. {10,-10}z6
+{11,-9} .. {12,0}z7
+{16,1} .. {9,9}z8
+{11,11} .. {0,13}z9
+);
+FuF (z10
+{0,29} .. {-15,16}z11
+{-15,15} .. {-21,0}z12
+{-17,0} .. {-10,-11}z13
+{-9,-12} .. {0,-14}z14
+{1,-34} .. {38,3}z15
+-- z16
+-- z17
+-- z18
+{4,-2} .. {0,-4}z19
+{-1,-17} .. {-17,-19}z20
+{-18,-20} .. {-16,-10}z21
+-- z22
+{27,13} .. {21,25}z23
+{23,27} .. {0,27}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(60,472FX#,392FY#,0FY#);
+"guillemotleft";
+z1=(430FX,41FY);
+z2=(378FX,125FY);
+z3=(309FX,212FY);
+z4=(363FX,285FY);
+z5=(426FX,372FY);
+z6=(429FX,384FY);
+z7=(420FX,392FY);
+z8=(402FX,378FY);
+z9=(360FX,338FY);
+z10=(221FX,214FY);
+z11=(250FX,186FY);
+z12=(283FX,158FY);
+z13=(344FX,102FY);
+z14=(416FX,32FY);
+z15=(427FX,34FY);
+z16=(430FX,41FY);
+z17=(249FX,41FY);
+z18=(197FX,125FY);
+z19=(127FX,212FY);
+z20=(182FX,285FY);
+z21=(225FX,345FY);
+z22=(244FX,372FY);
+z23=(248FX,384FY);
+z24=(239FX,392FY);
+z25=(221FX,378FY);
+z26=(179FX,338FY);
+z27=(40FX,214FY);
+z28=(69FX,186FY);
+z29=(102FX,158FY);
+z30=(163FX,102FY);
+z31=(235FX,32FY);
+z32=(245FX,33FY);
+z33=(249FX,41FY);
+FuF (z1
+{-1,14} .. {-34,42}z2
+-- z3
+-- z4
+-- z5
+{2,3} .. {0,5}z6
+{-2,4} .. {-4,1}z7
+{-9,-7} .. {-3,-2}z8
+{-16,-15} .. {-12,-12}z9
+{-39,-37} .. {-53,-46}z10
+-- z11
+-- z12
+{25,-22} .. {15,-15}z13
+-- z14
+{6,0} .. {1,1}z15
+{1,1} .. {1,4}z16
+);
+FuF (z17
+{-1,14} .. {-34,42}z18
+-- z19
+-- z20
+-- z21
+-- z22
+{3,4} .. {0,4}z23
+{-2,4} .. {-4,1}z24
+{-9,-7} .. {-3,-2}z25
+{-16,-15} .. {-12,-12}z26
+{-39,-37} .. {-53,-46}z27
+-- z28
+-- z29
+{22,-19} .. {19,-18}z30
+-- z31
+{6,0} .. {1,0}z32
+{2,2} .. {1,4}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(61,537FX#,414FY#,0FY#);
+"equal";
+z1=(21FX,359FY);
+z2=(520FX,359FY);
+z3=(520FX,414FY);
+z4=(21FX,414FY);
+z5=(21FX,208FY);
+z6=(520FX,208FY);
+z7=(520FX,263FY);
+z8=(21FX,263FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+FuF (z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(62,472FX#,391FY#,0FY#);
+"guillemotright";
+z1=(432FX,210FY);
+z2=(403FX,237FY);
+z3=(369FX,265FY);
+z4=(341FX,290FY);
+z5=(308FX,321FY);
+z6=(237FX,391FY);
+z7=(227FX,391FY);
+z8=(222FX,382FY);
+z9=(274FX,298FY);
+z10=(344FX,211FY);
+z11=(289FX,139FY);
+z12=(245FX,77FY);
+z13=(227FX,51FY);
+z14=(223FX,40FY);
+z15=(233FX,31FY);
+z16=(248FX,44FY);
+z17=(292FX,85FY);
+z18=(251FX,210FY);
+z19=(222FX,237FY);
+z20=(188FX,265FY);
+z21=(160FX,290FY);
+z22=(126FX,321FY);
+z23=(56FX,391FY);
+z24=(45FX,391FY);
+z25=(41FX,382FY);
+z26=(93FX,298FY);
+z27=(163FX,211FY);
+z28=(107FX,139FY);
+z29=(64FX,77FY);
+z30=(45FX,51FY);
+z31=(42FX,40FY);
+z32=(52FX,31FY);
+z33=(67FX,44FY);
+z34=(111FX,85FY);
+FuF (z1
+-- z2
+-- z3
+{-5,4} .. {-14,13}z4
+{-15,14} .. {-7,7}z5
+-- z6
+{-6,0} .. {0,0}z7
+{-2,-2} .. {-1,-4}z8
+{1,-14} .. {33,-42}z9
+-- z10
+{-17,-20} .. {-20,-28}z11
+-- z12
+-- z13
+-- z14
+{2,-4} .. {5,-2}z15
+{7,6} .. {2,2}z16
+{18,17} .. {12,10}z17
+);
+FuF (z18
+-- z19
+-- z20
+{-5,4} .. {-13,13}z21
+{-20,18} .. {-3,2}z22
+-- z23
+{-7,0} .. {-1,0}z24
+{-1,-2} .. {-1,-4}z25
+{1,-14} .. {33,-42}z26
+-- z27
+{-18,-22} .. {-18,-26}z28
+-- z29
+-- z30
+-- z31
+{2,-4} .. {5,-2}z32
+{8,7} .. {2,2}z33
+{23,22} .. {6,5}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(63,218FX#,689FY#,0FY#);
+"paruyg";
+z1=(202FX,621FY);
+z2=(193FX,654FY);
+z3=(172FX,679FY);
+z4=(139FX,689FY);
+z5=(52FX,651FY);
+z6=(-13FX,577FY);
+z7=(-14FX,575FY);
+z8=(-31FX,543FY);
+z9=(-41FX,516FY);
+z10=(-56FX,456FY);
+z11=(-35FX,455FY);
+z12=(-15FX,514FY);
+z13=(12FX,562FY);
+z14=(51FX,596FY);
+z15=(97FX,614FY);
+z16=(135FX,572FY);
+z17=(121FX,536FY);
+z18=(97FX,515FY);
+z19=(88FX,513FY);
+z20=(78FX,514FY);
+z21=(76FX,498FY);
+z22=(87FX,497FY);
+z23=(148FX,520FY);
+z24=(187FX,564FY);
+z25=(202FX,621FY);
+FuF (z1
+{0,13} .. {-6,9}z2
+{-5,11} .. {-9,6}z3
+{-10,7} .. {-12,0}z4
+{-27,-1} .. {-31,-24}z5
+{-30,-24} .. {-12,-25}z6
+-- z7
+{-11,-21} .. {0,-1}z8
+{-5,-12} .. {-2,-6}z9
+{-9,-24} .. {-2,-16}z10
+-- z11
+{3,18} .. {10,21}z12
+{10,21} .. {8,11}z13
+{8,11} .. {18,12}z14
+{18,12} .. {13,0}z15
+{25,-5} .. {0,-23}z16
+{0,-14} .. {-9,-10}z17
+{-9,-11} .. {-7,-3}z18
+{-2,-1} .. {-4,0}z19
+{-4,1} .. {-3,0}z20
+-- z21
+-- z22
+{16,1} .. {24,14}z23
+{16,10} .. {10,20}z24
+{10,19} .. {0,19}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(64,869FX#,655FY#,204FY#);
+"at";
+z1=(648FX,441FY);
+z2=(576FX,431FY);
+z3=(561FX,380FY);
+z4=(533FX,428FY);
+z5=(482FX,444FY);
+z6=(387FX,406FY);
+z7=(276FX,280FY);
+z8=(228FX,121FY);
+z9=(249FX,49FY);
+z10=(311FX,14FY);
+z11=(493FX,145FY);
+z12=(484FX,77FY);
+z13=(555FX,14FY);
+z14=(676FX,52FY);
+z15=(775FX,180FY);
+z16=(809FX,339FY);
+z17=(769FX,500FY);
+z18=(648FX,618FY);
+z19=(480FX,655FY);
+z20=(260FX,595FY);
+z21=(102FX,431FY);
+z22=(45FX,204FY);
+z23=(96FX,-4FY);
+z24=(244FX,-152FY);
+z25=(446FX,-204FY);
+z26=(693FX,-127FY);
+z27=(846FX,79FY);
+z28=(819FX,79FY);
+z29=(673FX,-106FY);
+z30=(449FX,-175FY);
+z31=(266FX,-131FY);
+z32=(132FX,5FY);
+z33=(88FX,193FY);
+z34=(139FX,409FY);
+z35=(286FX,575FY);
+z36=(483FX,631FY);
+z37=(632FX,597FY);
+z38=(743FX,493FY);
+z39=(782FX,348FY);
+z40=(748FX,190FY);
+z41=(684FX,97FY);
+z42=(586FX,47FY);
+z43=(552FX,82FY);
+z44=(568FX,171FY);
+z45=(595FX,257FY);
+z46=(487FX,422FY);
+z47=(530FX,402FY);
+z48=(544FX,356FY);
+z49=(519FX,237FY);
+z50=(472FX,152FY);
+z51=(354FX,70FY);
+z52=(314FX,91FY);
+z53=(301FX,135FY);
+z54=(328FX,242FY);
+z55=(417FX,386FY);
+z56=(487FX,422FY);
+FuF (z1
+-- z2
+-- z3
+{-5,22} .. {-14,10}z4
+{-14,11} .. {-20,0}z5
+{-29,0} .. {-35,-25}z6
+{-43,-32} .. {-31,-53}z7
+{-32,-55} .. {0,-50}z8
+{0,-27} .. {14,-21}z9
+{15,-24} .. {26,0}z10
+{50,1} .. {72,87}z11
+{-6,-29} .. {0,-16}z12
+{1,-42} .. {46,1}z13
+{42,0} .. {38,25}z14
+{41,26} .. {25,59}z15
+{23,53} .. {0,53}z16
+{0,57} .. {-27,50}z17
+{-27,52} .. {-53,27}z18
+{-50,25} .. {-62,0}z19
+{-79,0} .. {-68,-40}z20
+{-68,-40} .. {-37,-69}z21
+{-38,-70} .. {0,-82}z22
+{0,-76} .. {34,-63}z23
+{35,-63} .. {64,-36}z24
+{61,-34} .. {73,0}z25
+{92,0} .. {73,51}z26
+{73,51} .. {29,86}z27
+-- z28
+{-34,-79} .. {-63,-44}z29
+{-65,-46} .. {-84,0}z30
+{-66,0} .. {-56,29}z31
+{-58,31} .. {-31,60}z32
+{-29,56} .. {0,70}z33
+{0,75} .. {34,69}z34
+{36,72} .. {62,39}z35
+{61,38} .. {71,0}z36
+{55,0} .. {45,-23}z37
+{48,-24} .. {25,-45}z38
+{26,-45} .. {0,-52}z39
+{-1,-56} .. {-22,-50}z40
+{-16,-35} .. {-27,-27}z41
+{-34,-34} .. {-33,1}z42
+{-23,0} .. {1,23}z43
+{0,21} .. {11,38}z44
+{9,29} .. {8,28}z45
+);
+FuF (z46
+{17,0} .. {11,-14}z47
+{10,-12} .. {0,-18}z48
+{-1,-31} .. {-17,-48}z49
+{-10,-29} .. {-21,-27}z50
+{-43,-55} .. {-36,0}z51
+{-17,0} .. {-10,14}z52
+{-9,12} .. {0,17}z53
+{1,28} .. {18,44}z54
+{25,61} .. {35,35}z55
+{23,24} .. {23,0}z56
+);
+lbl (range 1 thru 56);
+endchar;
+
+beginchar(65,691FX#,624FY#,25FY#);
+"A";
+z1=(680FX,0FY);
+z2=(673FX,21FY);
+z3=(654FX,18FY);
+z4=(547FX,104FY);
+z5=(581FX,245FY);
+z6=(581FX,523FY);
+z7=(599FX,591FY);
+z8=(666FX,607FY);
+z9=(666FX,624FY);
+z10=(399FX,624FY);
+z11=(399FX,607FY);
+z12=(472FX,591FY);
+z13=(485FX,523FY);
+z14=(485FX,337FY);
+z15=(525FX,307FY);
+z16=(544FX,243FY);
+z17=(523FX,135FY);
+z18=(432FX,185FY);
+z19=(335FX,139FY);
+z20=(341FX,122FY);
+z21=(379FX,132FY);
+z22=(430FX,111FY);
+z23=(467FX,59FY);
+z24=(341FX,19FY);
+z25=(194FX,252FY);
+z26=(194FX,523FY);
+z27=(212FX,589FY);
+z28=(280FX,607FY);
+z29=(280FX,624FY);
+z30=(13FX,624FY);
+z31=(13FX,607FY);
+z32=(84FX,589FY);
+z33=(98FX,523FY);
+z34=(98FX,258FY);
+z35=(161FX,57FY);
+z36=(340FX,-13FY);
+z37=(432FX,4FY);
+z38=(485FX,33FY);
+z39=(599FX,-25FY);
+z40=(680FX,0FY);
+FuF (z1
+{-3,9} .. {-1,5}z2
+{-6,-2} .. {-7,0}z3
+{-42,0} .. {-29,57}z4
+{23,33} .. {0,61}z5
+-- z6
+{0,34} .. {12,11}z7
+{11,11} .. {34,0}z8
+-- z9
+-- z10
+-- z11
+{39,0} .. {10,-10}z12
+{8,-9} .. {0,-36}z13
+-- z14
+{15,-4} .. {12,-16}z15
+{13,-18} .. {0,-24}z16
+{0,-48} .. {-14,-24}z17
+{-24,33} .. {-37,0}z18
+{-42,0} .. {-23,-30}z19
+-- z20
+{13,7} .. {12,0}z21
+{20,0} .. {15,-14}z22
+{8,-8} .. {17,-27}z23
+{-29,-27} .. {-55,0}z24
+{-98,0} .. {0,155}z25
+-- z26
+{0,33} .. {12,12}z27
+{12,12} .. {34,0}z28
+-- z29
+-- z30
+-- z31
+{37,0} .. {10,-12}z32
+{9,-9} .. {0,-34}z33
+-- z34
+{0,-87} .. {42,-47}z35
+{43,-47} .. {77,0}z36
+{31,0} .. {31,12}z37
+{23,9} .. {12,11}z38
+{29,-39} .. {47,0}z39
+{28,0} .. {26,17}z40
+);
+chp[65]:=currentpicture;
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(66,654FX#,637FY#,0FY#);
+"B";
+z1=(607FX,134FY);
+z2=(607FX,166FY);
+z3=(578FX,215FY);
+z4=(473FX,237FY);
+z5=(194FX,237FY);
+z6=(194FX,373FY);
+z7=(341FX,601FY);
+z8=(450FX,548FY);
+z9=(485FX,379FY);
+z10=(485FX,315FY);
+z11=(581FX,315FY);
+z12=(581FX,366FY);
+z13=(515FX,569FY);
+z14=(340FX,637FY);
+z15=(168FX,568FY);
+z16=(98FX,366FY);
+z17=(98FX,102FY);
+z18=(82FX,34FY);
+z19=(13FX,18FY);
+z20=(13FX,0FY);
+z21=(280FX,0FY);
+z22=(280FX,18FY);
+z23=(211FX,34FY);
+z24=(194FX,102FY);
+z25=(194FX,200FY);
+z26=(432FX,200FY);
+z27=(485FX,157FY);
+z28=(485FX,134FY);
+FuF (z1
+-- z2
+{0,20} .. {-20,12}z3
+{-24,15} .. {-46,0}z4
+-- z5
+-- z6
+{0,152} .. {98,0}z7
+{50,0} .. {23,-35}z8
+{23,-36} .. {0,-77}z9
+-- z10
+-- z11
+-- z12
+{0,88} .. {-44,47}z13
+{-42,46} .. {-75,0}z14
+{-70,0} .. {-44,-46}z15
+{-47,-49} .. {0,-86}z16
+-- z17
+{0,-35} .. {-11,-10}z18
+{-12,-11} .. {-35,0}z19
+-- z20
+-- z21
+-- z22
+{-35,0} .. {-11,11}z23
+{-11,11} .. {0,35}z24
+-- z25
+-- z26
+{35,0} .. {0,-28}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(67,636FX#,635FY#,13FY#);
+"C";
+z1=(588FX,210FY);
+z2=(397FX,420FY);
+z3=(501FX,517FY);
+z4=(451FX,602FY);
+z5=(323FX,635FY);
+z6=(197FX,599FY);
+z7=(144FX,515FY);
+z8=(176FX,447FY);
+z9=(248FX,418FY);
+z10=(121FX,374FY);
+z11=(55FX,289FY);
+z12=(167FX,289FY);
+z13=(321FX,396FY);
+z14=(490FX,204FY);
+z15=(444FX,74FY);
+z16=(326FX,23FY);
+z17=(210FX,70FY);
+z18=(158FX,175FY);
+z19=(54FX,175FY);
+z20=(139FX,39FY);
+z21=(326FX,-13FY);
+z22=(513FX,54FY);
+z23=(588FX,210FY);
+z24=(405FX,517FY);
+z25=(321FX,433FY);
+z26=(262FX,456FY);
+z27=(240FX,515FY);
+z28=(264FX,577FY);
+z29=(321FX,598FY);
+z30=(405FX,517FY);
+FuF (z1
+{-1,115} .. {-126,25}z2
+{69,18} .. {0,47}z3
+{0,34} .. {-33,22}z4
+{-33,22} .. {-52,0}z5
+{-49,0} .. {-35,-24}z6
+{-35,-23} .. {0,-32}z7
+{0,-27} .. {21,-18}z8
+{20,-16} .. {28,-3}z9
+{-55,-9} .. {-30,-20}z10
+{-29,-20} .. {-15,-37}z11
+-- z12
+{26,71} .. {77,0}z13
+{113,0} .. {0,-128}z14
+{0,-52} .. {-30,-34}z15
+{-31,-34} .. {-48,0}z16
+{-46,0} .. {-32,31}z17
+{-31,29} .. {-3,41}z18
+-- z19
+{7,-55} .. {50,-36}z20
+{50,-35} .. {75,0}z21
+{72,0} .. {52,45}z22
+{50,45} .. {0,60}z23
+);
+FuF (z24
+{0,-56} .. {-56,0}z25
+{-24,0} .. {-15,15}z26
+{-15,15} .. {0,24}z27
+{1,27} .. {15,15}z28
+{15,14} .. {23,0}z29
+{56,0} .. {0,-54}z30
+);
+chp[67]:=currentpicture;
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(68,685FX#,637FY#,0FY#);
+"D";
+z1=(693FX,136FY);
+z2=(693FX,168FY);
+z3=(546FX,237FY);
+z4=(513FX,237FY);
+z5=(513FX,366FY);
+z6=(448FX,569FY);
+z7=(271FX,637FY);
+z8=(94FX,566FY);
+z9=(30FX,366FY);
+z10=(30FX,315FY);
+z11=(126FX,315FY);
+z12=(126FX,412FY);
+z13=(166FX,553FY);
+z14=(270FX,601FY);
+z15=(417FX,373FY);
+z16=(417FX,102FY);
+z17=(397FX,33FY);
+z18=(331FX,19FY);
+z19=(331FX,0FY);
+z20=(598FX,0FY);
+z21=(598FX,18FY);
+z22=(529FX,34FY);
+z23=(513FX,102FY);
+z24=(513FX,200FY);
+z25=(526FX,200FY);
+z26=(571FX,158FY);
+z27=(571FX,136FY);
+FuF (z1
+-- z2
+{0,46} .. {-98,0}z3
+-- z4
+-- z5
+{0,88} .. {-44,47}z6
+{-43,45} .. {-76,0}z7
+{-75,0} .. {-43,-48}z8
+{-42,-47} .. {0,-86}z9
+-- z10
+-- z11
+-- z12
+{0,61} .. {27,34}z13
+{25,32} .. {44,0}z14
+{98,0} .. {0,-152}z15
+-- z16
+{0,-35} .. {-13,-11}z17
+{-11,-9} .. {-33,0}z18
+-- z19
+-- z20
+-- z21
+{-35,0} .. {-11,11}z22
+{-11,11} .. {0,34}z23
+-- z24
+-- z25
+{30,0} .. {0,-28}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(69,636FX#,624FY#,13FY#);
+"E";
+z1=(607FX,315FY);
+z2=(607FX,349FY);
+z3=(473FX,425FY);
+z4=(194FX,425FY);
+z5=(194FX,523FY);
+z6=(211FX,590FY);
+z7=(280FX,607FY);
+z8=(280FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,607FY);
+z11=(83FX,589FY);
+z12=(98FX,523FY);
+z13=(98FX,258FY);
+z14=(166FX,58FY);
+z15=(340FX,-13FY);
+z16=(513FX,51FY);
+z17=(581FX,211FY);
+z18=(581FX,224FY);
+z19=(485FX,224FY);
+z20=(485FX,213FY);
+z21=(453FX,80FY);
+z22=(341FX,24FY);
+z23=(230FX,79FY);
+z24=(194FX,252FY);
+z25=(194FX,387FY);
+z26=(432FX,387FY);
+z27=(485FX,339FY);
+z28=(485FX,315FY);
+FuF (z1
+-- z2
+{0,50} .. {-89,0}z3
+-- z4
+-- z5
+{0,34} .. {11,11}z6
+{12,11} .. {34,0}z7
+-- z8
+-- z9
+-- z10
+{36,-1} .. {10,-11}z11
+{10,-11} .. {0,-33}z12
+-- z13
+{0,-85} .. {45,-48}z14
+{43,-47} .. {73,0}z15
+{70,0} .. {45,43}z16
+{45,42} .. {0,65}z17
+-- z18
+-- z19
+-- z20
+{0,-56} .. {-21,-33}z21
+{-25,-37} .. {-50,0}z22
+{-50,0} .. {-24,37}z23
+{-24,36} .. {0,79}z24
+-- z25
+-- z26
+{35,0} .. {0,-32}z27
+-- z28
+);
+chp[69]:=currentpicture;
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(70,722FX#,624FY#,8FY#);
+"F";
+z1=(699FX,212FY);
+z2=(636FX,372FY);
+z3=(422FX,436FY);
+z4=(422FX,541FY);
+z5=(438FX,594FY);
+z6=(504FX,607FY);
+z7=(504FX,624FY);
+z8=(326FX,624FY);
+z9=(124FX,512FY);
+z10=(188FX,421FY);
+z11=(326FX,402FY);
+z12=(326FX,29FY);
+z13=(147FX,210FY);
+z14=(147FX,287FY);
+z15=(51FX,287FY);
+z16=(51FX,208FY);
+z17=(138FX,58FY);
+z18=(374FX,-8FY);
+z19=(616FX,60FY);
+z20=(699FX,212FY);
+z21=(326FX,439FY);
+z22=(237FX,460FY);
+z23=(216FX,517FY);
+z24=(326FX,588FY);
+z25=(602FX,210FY);
+z26=(422FX,29FY);
+z27=(422FX,399FY);
+z28=(602FX,210FY);
+FuF (z1
+{0,68} .. {-42,38}z2
+{-48,42} .. {-95,0}z3
+-- z4
+{0,27} .. {10,9}z5
+{11,8} .. {33,0}z6
+-- z7
+-- z8
+{-134,0} .. {0,-75}z9
+{0,-43} .. {42,-17}z10
+{31,-13} .. {61,0}z11
+-- z12
+{-119,9} .. {0,111}z13
+-- z14
+-- z15
+-- z16
+{0,-58} .. {58,-42}z17
+{62,-44} .. {96,0}z18
+{100,0} .. {61,46}z19
+{55,41} .. {0,60}z20
+);
+FuF (z21
+{-43,0} .. {-17,14}z22
+{-14,11} .. {0,27}z23
+{0,47} .. {73,0}z24
+);
+FuF (z25
+{-1,-114} .. {-119,-6}z26
+-- z27
+{122,0} .. {-2,-126}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(71,701FX#,637FY#,0FY#);
+"G";
+z1=(704FX,136FY);
+z2=(704FX,168FY);
+z3=(663FX,218FY);
+z4=(557FX,237FY);
+z5=(517FX,237FY);
+z6=(517FX,380FY);
+z7=(453FX,573FY);
+z8=(277FX,637FY);
+z9=(99FX,574FY);
+z10=(30FX,414FY);
+z11=(100FX,260FY);
+z12=(288FX,200FY);
+z13=(420FX,200FY);
+z14=(420FX,93FY);
+z15=(403FX,32FY);
+z16=(332FX,18FY);
+z17=(332FX,0FY);
+z18=(596FX,0FY);
+z19=(596FX,18FY);
+z20=(531FX,31FY);
+z21=(517FX,90FY);
+z22=(517FX,200FY);
+z23=(533FX,200FY);
+z24=(582FX,158FY);
+z25=(582FX,136FY);
+z26=(420FX,237FY);
+z27=(288FX,237FY);
+z28=(169FX,286FY);
+z29=(128FX,413FY);
+z30=(171FX,554FY);
+z31=(277FX,601FY);
+z32=(382FX,553FY);
+z33=(420FX,426FY);
+FuF (z1
+-- z2
+{0,21} .. {-28,13}z3
+{-27,12} .. {-44,0}z4
+-- z5
+-- z6
+{0,85} .. {-43,44}z7
+{-41,43} .. {-76,0}z8
+{-72,0} .. {-46,-42}z9
+{-46,-43} .. {1,-64}z10
+{0,-64} .. {46,-39}z11
+{48,-40} .. {78,0}z12
+-- z13
+-- z14
+{0,-31} .. {-12,-9}z15
+{-11,-9} .. {-36,0}z16
+-- z17
+-- z18
+-- z19
+{-34,0} .. {-10,9}z20
+{-10,9} .. {0,31}z21
+-- z22
+-- z23
+{32,0} .. {0,-28}z24
+-- z25
+);
+FuF (z26
+-- z27
+{-51,0} .. {-29,33}z28
+{-27,32} .. {0,53}z29
+{1,61} .. {28,33}z30
+{27,31} .. {44,0}z31
+{45,0} .. {25,-32}z32
+{26,-32} .. {0,-53}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(72,558FX#,693FY#,19FY#);
+"H";
+z1=(545FX,656FY);
+z2=(545FX,693FY);
+z3=(424FX,693FY);
+z4=(424FX,663FY);
+z5=(375FX,624FY);
+z6=(45FX,624FY);
+z7=(0FX,584FY);
+z8=(23FX,535FY);
+z9=(425FX,128FY);
+z10=(481FX,61FY);
+z11=(496FX,8FY);
+z12=(496FX,-19FY);
+z13=(525FX,-19FY);
+z14=(525FX,67FY);
+z15=(436FX,255FY);
+z16=(137FX,557FY);
+z17=(127FX,575FY);
+z18=(146FX,588FY);
+z19=(401FX,588FY);
+z20=(497FX,606FY);
+z21=(545FX,656FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-26} .. {-33,0}z5
+-- z6
+{-30,0} .. {0,-27}z7
+{0,-17} .. {15,-15}z8
+-- z9
+{28,-28} .. {10,-17}z10
+{9,-16} .. {0,-19}z11
+-- z12
+-- z13
+-- z14
+{0,65} .. {-59,60}z15
+-- z16
+{-7,7} .. {0,5}z17
+{0,8} .. {13,0}z18
+-- z19
+{35,0} .. {29,12}z20
+{32,13} .. {0,20}z21
+);
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(73,624FX#,624FY#,0FY#);
+"I";
+z1=(581FX,158FY);
+z2=(581FX,210FY);
+z3=(519FX,410FY);
+z4=(340FX,481FY);
+z5=(194FX,441FY);
+z6=(194FX,523FY);
+z7=(210FX,590FY);
+z8=(280FX,606FY);
+z9=(280FX,624FY);
+z10=(13FX,624FY);
+z11=(13FX,607FY);
+z12=(84FX,590FY);
+z13=(98FX,523FY);
+z14=(98FX,102FY);
+z15=(81FX,31FY);
+z16=(13FX,18FY);
+z17=(13FX,0FY);
+z18=(280FX,0FY);
+z19=(280FX,19FY);
+z20=(210FX,34FY);
+z21=(194FX,102FY);
+z22=(194FX,278FY);
+z23=(341FX,444FY);
+z24=(485FX,245FY);
+z25=(485FX,158FY);
+FuF (z1
+-- z2
+{0,86} .. {-41,47}z3
+{-42,47} .. {-78,0}z4
+{-53,0} .. {-44,-27}z5
+-- z6
+{0,34} .. {10,10}z7
+{11,10} .. {36,0}z8
+-- z9
+-- z10
+-- z11
+{38,0} .. {10,-11}z12
+{9,-10} .. {0,-35}z13
+-- z14
+{0,-37} .. {-11,-10}z15
+{-9,-9} .. {-36,0}z16
+-- z17
+-- z18
+-- z19
+{-37,-1} .. {-10,11}z20
+{-11,10} .. {0,35}z21
+-- z22
+{0,111} .. {98,0}z23
+{96,0} .. {0,-133}z24
+-- z25
+);
+chp[73]:=currentpicture;
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(74,671FX#,637FY#,95FY#);
+"J";
+z1=(604FX,375FY);
+z2=(527FX,569FY);
+z3=(347FX,637FY);
+z4=(147FX,560FY);
+z5=(76FX,403FY);
+z6=(118FX,299FY);
+z7=(233FX,243FY);
+z8=(349FX,142FY);
+z9=(336FX,93FY);
+z10=(257FX,54FY);
+z11=(174FX,36FY);
+z12=(174FX,122FY);
+z13=(74FX,122FY);
+z14=(74FX,-95FY);
+z15=(174FX,-95FY);
+z16=(174FX,0FY);
+z17=(413FX,0FY);
+z18=(470FX,-15FY);
+z19=(493FX,-58FY);
+z20=(493FX,-95FY);
+z21=(601FX,-95FY);
+z22=(601FX,-47FY);
+z23=(445FX,37FY);
+z24=(290FX,37FY);
+z25=(333FX,49FY);
+z26=(523FX,185FY);
+z27=(604FX,375FY);
+z28=(299FX,590FY);
+z29=(458FX,525FY);
+z30=(509FX,350FY);
+z31=(466FX,206FY);
+z32=(385FX,120FY);
+z33=(400FX,174FY);
+z34=(364FX,266FY);
+z35=(263FX,325FY);
+z36=(179FX,373FY);
+z37=(153FX,444FY);
+z38=(198FX,554FY);
+z39=(299FX,590FY);
+FuF (z1
+{0,81} .. {-52,49}z2
+{-48,46} .. {-72,0}z3
+{-80,0} .. {-53,-52}z4
+{-47,-46} .. {0,-59}z5
+{0,-39} .. {28,-30}z6
+{30,-31} .. {47,-6}z7
+{78,-11} .. {0,-57}z8
+{0,-20} .. {-9,-12}z9
+{-20,-15} .. {-33,-12}z10
+{-33,-12} .. {-22,0}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{23,0} .. {15,-10}z18
+{16,-10} .. {0,-18}z19
+-- z20
+-- z21
+-- z22
+{0,56} .. {-104,0}z23
+-- z24
+-- z25
+{76,33} .. {50,58}z26
+{54,61} .. {0,65}z27
+);
+FuF (z28
+{70,0} .. {36,-44}z29
+{34,-41} .. {0,-75}z30
+{0,-49} .. {-29,-47}z31
+{-24,-38} .. {-30,-20}z32
+{10,16} .. {0,20}z33
+{0,33} .. {-24,28}z34
+{-25,31} .. {-42,9}z35
+{-36,8} .. {-20,24}z36
+{-17,20} .. {0,27}z37
+{0,46} .. {30,27}z38
+{28,24} .. {39,0}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(75,677FX#,624FY#,0FY#);
+"K";
+z1=(666FX,0FY);
+z2=(666FX,18FY);
+z3=(598FX,35FY);
+z4=(581FX,102FY);
+z5=(581FX,322FY);
+z6=(597FX,392FY);
+z7=(666FX,407FY);
+z8=(666FX,425FY);
+z9=(399FX,425FY);
+z10=(399FX,406FY);
+z11=(469FX,390FY);
+z12=(485FX,322FY);
+z13=(485FX,295FY);
+z14=(442FX,207FY);
+z15=(338FX,180FY);
+z16=(194FX,379FY);
+z17=(194FX,523FY);
+z18=(211FX,590FY);
+z19=(280FX,607FY);
+z20=(280FX,624FY);
+z21=(13FX,624FY);
+z22=(13FX,606FY);
+z23=(82FX,593FY);
+z24=(98FX,523FY);
+z25=(98FX,415FY);
+z26=(161FX,213FY);
+z27=(338FX,143FY);
+z28=(485FX,183FY);
+z29=(485FX,102FY);
+z30=(470FX,34FY);
+z31=(399FX,19FY);
+z32=(399FX,0FY);
+FuF (z1
+-- z2
+{-34,0} .. {-11,11}z3
+{-11,11} .. {0,34}z4
+-- z5
+{0,37} .. {11,10}z6
+{10,10} .. {36,0}z7
+-- z8
+-- z9
+-- z10
+{36,0} .. {10,-11}z11
+{11,-10} .. {0,-35}z12
+-- z13
+{0,-38} .. {-29,-20}z14
+{-26,-18} .. {-43,0}z15
+{-96,0} .. {0,133}z16
+-- z17
+{0,34} .. {11,10}z18
+{12,11} .. {34,0}z19
+-- z20
+-- z21
+-- z22
+{37,0} .. {10,-9}z23
+{11,-9} .. {0,-37}z24
+-- z25
+{0,-88} .. {42,-47}z26
+{41,-46} .. {76,0}z27
+{69,0} .. {29,27}z28
+-- z29
+{0,-35} .. {-10,-10}z30
+{-10,-10} .. {-38,0}z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(76,484FX#,624FY#,66FY#);
+"L";
+z1=(483FX,-66FY);
+z2=(483FX,-34FY);
+z3=(348FX,37FY);
+z4=(194FX,37FY);
+z5=(194FX,523FY);
+z6=(211FX,590FY);
+z7=(280FX,607FY);
+z8=(280FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,607FY);
+z11=(85FX,589FY);
+z12=(98FX,523FY);
+z13=(98FX,104FY);
+z14=(81FX,32FY);
+z15=(13FX,18FY);
+z16=(13FX,0FY);
+z17=(308FX,0FY);
+z18=(360FX,-43FY);
+z19=(360FX,-66FY);
+FuF (z1
+-- z2
+{0,47} .. {-90,0}z3
+-- z4
+-- z5
+{0,34} .. {11,11}z6
+{12,11} .. {34,0}z7
+-- z8
+-- z9
+-- z10
+{38,-1} .. {10,-11}z11
+{9,-9} .. {0,-35}z12
+-- z13
+{0,-37} .. {-12,-11}z14
+{-10,-9} .. {-35,0}z15
+-- z16
+-- z17
+{35,0} .. {0,-29}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(77,767FX#,624FY#,13FY#);
+"M";
+z1=(775FX,517FY);
+z2=(775FX,549FY);
+z3=(640FX,624FY);
+z4=(399FX,624FY);
+z5=(399FX,607FY);
+z6=(472FX,588FY);
+z7=(485FX,523FY);
+z8=(485FX,252FY);
+z9=(451FX,76FY);
+z10=(338FX,24FY);
+z11=(194FX,252FY);
+z12=(194FX,523FY);
+z13=(212FX,589FY);
+z14=(280FX,607FY);
+z15=(280FX,624FY);
+z16=(13FX,624FY);
+z17=(13FX,607FY);
+z18=(85FX,589FY);
+z19=(98FX,523FY);
+z20=(98FX,258FY);
+z21=(167FX,58FY);
+z22=(338FX,-13FY);
+z23=(517FX,59FY);
+z24=(581FX,258FY);
+z25=(581FX,588FY);
+z26=(599FX,588FY);
+z27=(652FX,539FY);
+z28=(652FX,517FY);
+FuF (z1
+-- z2
+{0,50} .. {-90,0}z3
+-- z4
+-- z5
+{38,0} .. {11,-12}z6
+{9,-10} .. {0,-33}z7
+-- z8
+{0,-82} .. {-23,-35}z9
+{-23,-35} .. {-52,0}z10
+{-96,0} .. {0,152}z11
+-- z12
+{0,33} .. {12,12}z13
+{12,12} .. {34,0}z14
+-- z15
+-- z16
+-- z17
+{38,0} .. {11,-11}z18
+{9,-10} .. {0,-34}z19
+-- z20
+{0,-83} .. {46,-50}z21
+{44,-47} .. {70,0}z22
+{77,0} .. {43,48}z23
+{43,47} .. {0,85}z24
+-- z25
+-- z26
+{35,0} .. {0,-33}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(78,690FX#,693FY#,13FY#);
+"N";
+z1=(641FX,249FY);
+z2=(641FX,315FY);
+z3=(545FX,315FY);
+z4=(545FX,242FY);
+z5=(515FX,77FY);
+z6=(402FX,23FY);
+z7=(287FX,76FY);
+z8=(255FX,243FY);
+z9=(255FX,624FY);
+z10=(154FX,624FY);
+z11=(101FX,668FY);
+z12=(101FX,693FY);
+z13=(-22FX,693FY);
+z14=(-22FX,659FY);
+z15=(113FX,588FY);
+z16=(158FX,588FY);
+z17=(158FX,258FY);
+z18=(222FX,57FY);
+z19=(401FX,-13FY);
+z20=(581FX,57FY);
+z21=(641FX,249FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,-78} .. {-20,-32}z5
+{-22,-36} .. {-53,0}z6
+{-54,0} .. {-23,35}z7
+{-21,34} .. {0,78}z8
+-- z9
+-- z10
+{-35,0} .. {0,29}z11
+-- z12
+-- z13
+-- z14
+{0,-48} .. {90,0}z15
+-- z16
+-- z17
+{0,-87} .. {42,-47}z18
+{42,-47} .. {77,0}z19
+{79,0} .. {41,47}z20
+{40,45} .. {0,83}z21
+);
+chp[78]:=currentpicture;
+lbl (range 1 thru 21);
+endchar;
+
+beginchar(79,681FX#,637FY#,0FY#);
+"O";
+z1=(669FX,0FY);
+z2=(669FX,18FY);
+z3=(601FX,33FY);
+z4=(581FX,104FY);
+z5=(581FX,373FY);
+z6=(517FX,567FY);
+z7=(342FX,637FY);
+z8=(165FX,564FY);
+z9=(98FX,373FY);
+z10=(98FX,104FY);
+z11=(82FX,32FY);
+z12=(13FX,18FY);
+z13=(13FX,0FY);
+z14=(285FX,0FY);
+z15=(285FX,18FY);
+z16=(212FX,34FY);
+z17=(194FX,104FY);
+z18=(194FX,379FY);
+z19=(342FX,601FY);
+z20=(450FX,548FY);
+z21=(485FX,379FY);
+z22=(485FX,104FY);
+z23=(467FX,31FY);
+z24=(397FX,18FY);
+z25=(397FX,0FY);
+FuF (z1
+-- z2
+{-34,0} .. {-11,10}z3
+{-13,12} .. {0,36}z4
+-- z5
+{0,82} .. {-43,47}z6
+{-42,47} .. {-74,0}z7
+{-74,0} .. {-44,-49}z8
+{-45,-49} .. {0,-78}z9
+-- z10
+{0,-38} .. {-11,-10}z11
+{-11,-10} .. {-36,0}z12
+-- z13
+-- z14
+-- z15
+{-37,0} .. {-12,11}z16
+{-12,10} .. {0,37}z17
+-- z18
+{0,148} .. {98,0}z19
+{49,0} .. {23,-35}z20
+{23,-36} .. {0,-77}z21
+-- z22
+{0,-38} .. {-12,-11}z23
+{-11,-9} .. {-36,0}z24
+-- z25
+);
+chp[79]:=currentpicture;
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(80,767FX#,638FY#,0FY#);
+"P";
+z1=(760FX,0FY);
+z2=(760FX,18FY);
+z3=(696FX,35FY);
+z4=(679FX,102FY);
+z5=(679FX,366FY);
+z6=(601FX,554FY);
+z7=(354FX,638FY);
+z8=(110FX,554FY);
+z9=(32FX,368FY);
+z10=(32FX,315FY);
+z11=(128FX,315FY);
+z12=(128FX,389FY);
+z13=(182FX,538FY);
+z14=(308FX,601FY);
+z15=(308FX,213FY);
+z16=(404FX,213FY);
+z17=(404FX,601FY);
+z18=(533FX,529FY);
+z19=(583FX,373FY);
+z20=(583FX,102FY);
+z21=(567FX,35FY);
+z22=(497FX,19FY);
+z23=(497FX,0FY);
+FuF (z1
+-- z2
+{-32,0} .. {-11,11}z3
+{-11,12} .. {0,33}z4
+-- z5
+{0,75} .. {-52,50}z6
+{-60,56} .. {-105,0}z7
+{-105,0} .. {-58,-56}z8
+{-52,-50} .. {0,-74}z9
+-- z10
+-- z11
+-- z12
+{0,58} .. {35,41}z13
+{35,40} .. {49,1}z14
+-- z15
+-- z16
+-- z17
+{51,-1} .. {35,-46}z18
+{33,-45} .. {0,-59}z19
+-- z20
+{0,-34} .. {-11,-11}z21
+{-11,-11} .. {-36,0}z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(81,745FX#,637FY#,0FY#);
+"Q";
+z1=(698FX,47FY);
+z2=(698FX,79FY);
+z3=(555FX,148FY);
+z4=(275FX,148FY);
+z5=(275FX,281FY);
+z6=(345FX,242FY);
+z7=(424FX,230FY);
+z8=(597FX,286FY);
+z9=(665FX,426FY);
+z10=(600FX,584FY);
+z11=(417FX,637FY);
+z12=(241FX,573FY);
+z13=(179FX,404FY);
+z14=(179FX,148FY);
+z15=(156FX,148FY);
+z16=(117FX,186FY);
+z17=(117FX,217FY);
+z18=(-3FX,217FY);
+z19=(-3FX,183FY);
+z20=(123FX,111FY);
+z21=(179FX,111FY);
+z22=(179FX,90FY);
+z23=(162FX,33FY);
+z24=(99FX,18FY);
+z25=(99FX,0FY);
+z26=(364FX,0FY);
+z27=(364FX,18FY);
+z28=(292FX,32FY);
+z29=(275FX,93FY);
+z30=(275FX,111FY);
+z31=(518FX,111FY);
+z32=(576FX,81FY);
+z33=(576FX,47FY);
+z34=(565FX,427FY);
+z35=(525FX,312FY);
+z36=(426FX,267FY);
+z37=(318FX,302FY);
+z38=(274FX,387FY);
+z39=(274FX,431FY);
+z40=(312FX,556FY);
+z41=(417FX,601FY);
+z42=(565FX,427FY);
+FuF (z1
+-- z2
+{0,46} .. {-96,0}z3
+-- z4
+-- z5
+{15,-17} .. {32,-9}z6
+{27,-8} .. {26,0}z7
+{70,0} .. {45,37}z8
+{45,37} .. {0,56}z9
+{0,69} .. {-43,36}z10
+{-43,35} .. {-79,0}z11
+{-74,0} .. {-43,-43}z12
+{-41,-42} .. {0,-71}z13
+-- z14
+-- z15
+{-26,0} .. {0,25}z16
+-- z17
+-- z18
+-- z19
+{0,-48} .. {84,0}z20
+-- z21
+-- z22
+{0,-28} .. {-11,-10}z23
+{-12,-10} .. {-31,0}z24
+-- z25
+-- z26
+-- z27
+{-36,0} .. {-12,9}z28
+{-11,10} .. {0,31}z29
+-- z30
+-- z31
+{38,0} .. {0,-20}z32
+-- z33
+);
+FuF (z34
+{0,-47} .. {-26,-30}z35
+{-26,-30} .. {-40,0}z36
+{-43,0} .. {-29,23}z37
+{-29,23} .. {0,33}z38
+-- z39
+{0,53} .. {25,30}z40
+{26,30} .. {44,0}z41
+{98,0} .. {0,-116}z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(82,613FX#,637FY#,0FY#);
+"R";
+z1=(581FX,315FY);
+z2=(581FX,366FY);
+z3=(519FX,567FY);
+z4=(340FX,637FY);
+z5=(158FX,558FY);
+z6=(98FX,366FY);
+z7=(98FX,102FY);
+z8=(84FX,35FY);
+z9=(13FX,18FY);
+z10=(13FX,0FY);
+z11=(280FX,0FY);
+z12=(280FX,19FY);
+z13=(210FX,34FY);
+z14=(194FX,102FY);
+z15=(194FX,373FY);
+z16=(341FX,601FY);
+z17=(451FX,544FY);
+z18=(485FX,374FY);
+z19=(485FX,315FY);
+FuF (z1
+-- z2
+{0,87} .. {-41,47}z3
+{-42,47} .. {-78,0}z4
+{-78,0} .. {-43,-53}z5
+{-40,-49} .. {0,-79}z6
+-- z7
+{0,-35} .. {-9,-10}z8
+{-11,-12} .. {-37,0}z9
+-- z10
+-- z11
+-- z12
+{-36,0} .. {-11,10}z13
+{-10,10} .. {0,35}z14
+-- z15
+{0,152} .. {98,0}z16
+{51,0} .. {23,-38}z17
+{23,-36} .. {0,-77}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(83,683FX#,624FY#,13FY#);
+"S";
+z1=(669FX,607FY);
+z2=(669FX,624FY);
+z3=(397FX,624FY);
+z4=(397FX,607FY);
+z5=(467FX,593FY);
+z6=(485FX,521FY);
+z7=(485FX,245FY);
+z8=(450FX,77FY);
+z9=(342FX,23FY);
+z10=(194FX,245FY);
+z11=(194FX,521FY);
+z12=(212FX,591FY);
+z13=(285FX,607FY);
+z14=(285FX,624FY);
+z15=(13FX,624FY);
+z16=(13FX,607FY);
+z17=(82FX,593FY);
+z18=(98FX,521FY);
+z19=(98FX,252FY);
+z20=(165FX,60FY);
+z21=(342FX,-13FY);
+z22=(517FX,58FY);
+z23=(581FX,252FY);
+z24=(581FX,521FY);
+z25=(601FX,591FY);
+z26=(669FX,607FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{36,0} .. {11,-9}z5
+{12,-11} .. {0,-37}z6
+-- z7
+{0,-76} .. {-23,-36}z8
+{-23,-36} .. {-49,0}z9
+{-98,0} .. {0,148}z10
+-- z11
+{0,36} .. {12,11}z12
+{12,10} .. {37,0}z13
+-- z14
+-- z15
+-- z16
+{36,0} .. {11,-9}z17
+{11,-11} .. {0,-37}z18
+-- z19
+{0,-79} .. {45,-49}z20
+{44,-48} .. {74,0}z21
+{74,0} .. {42,47}z22
+{43,47} .. {0,82}z23
+-- z24
+{0,35} .. {13,12}z25
+{11,11} .. {34,0}z26
+);
+chp[83]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(84,580FX#,637FY#,13FY#);
+"T";
+z1=(543FX,154FY);
+z2=(411FX,335FY);
+z3=(240FX,413FY);
+z4=(176FX,494FY);
+z5=(212FX,573FY);
+z6=(305FX,601FY);
+z7=(426FX,444FY);
+z8=(523FX,444FY);
+z9=(461FX,587FY);
+z10=(305FX,637FY);
+z11=(149FX,592FY);
+z12=(83FX,478FY);
+z13=(172FX,339FY);
+z14=(364FX,249FY);
+z15=(447FX,129FY);
+z16=(408FX,52FY);
+z17=(316FX,24FY);
+z18=(198FX,72FY);
+z19=(155FX,204FY);
+z20=(57FX,204FY);
+z21=(132FX,50FY);
+z22=(317FX,-13FY);
+z23=(479FX,40FY);
+z24=(543FX,154FY);
+FuF (z1
+{0,81} .. {-88,40}z2
+-- z3
+{-42,19} .. {0,35}z4
+{0,34} .. {24,19}z5
+{23,18} .. {39,0}z6
+{80,0} .. {0,-105}z7
+-- z8
+{0,60} .. {-41,35}z9
+{-39,34} .. {-65,0}z10
+{-62,0} .. {-42,-30}z11
+{-44,-30} .. {0,-45}z12
+{0,-65} .. {59,-28}z13
+-- z14
+{56,-26} .. {0,-54}z15
+{0,-32} .. {-26,-20}z16
+{-25,-19} .. {-36,0}z17
+{-50,0} .. {-29,32}z18
+{-29,32} .. {0,56}z19
+-- z20
+{0,-62} .. {50,-41}z21
+{50,-42} .. {73,0}z22
+{63,0} .. {45,35}z23
+{42,34} .. {0,43}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(85,1149FX#,637FY#,0FY#);
+"U";
+z1=(669FX,0FY);
+z2=(669FX,18FY);
+z3=(601FX,33FY);
+z4=(581FX,104FY);
+z5=(581FX,373FY);
+z6=(517FX,567FY);
+z7=(342FX,637FY);
+z8=(165FX,564FY);
+z9=(98FX,373FY);
+z10=(98FX,104FY);
+z11=(82FX,32FY);
+z12=(13FX,18FY);
+z13=(13FX,0FY);
+z14=(285FX,0FY);
+z15=(285FX,18FY);
+z16=(212FX,34FY);
+z17=(194FX,104FY);
+z18=(194FX,379FY);
+z19=(342FX,601FY);
+z20=(450FX,548FY);
+z21=(485FX,379FY);
+z22=(485FX,104FY);
+z23=(467FX,31FY);
+z24=(397FX,18FY);
+z25=(397FX,0FY);
+z26=(1152FX,315FY);
+z27=(1152FX,349FY);
+z28=(1126FX,394FY);
+z29=(1017FX,425FY);
+z30=(875FX,425FY);
+z31=(875FX,523FY);
+z32=(891FX,591FY);
+z33=(961FX,607FY);
+z34=(961FX,624FY);
+z35=(694FX,624FY);
+z36=(694FX,607FY);
+z37=(763FX,591FY);
+z38=(779FX,523FY);
+z39=(779FX,104FY);
+z40=(762FX,32FY);
+z41=(694FX,18FY);
+z42=(694FX,0FY);
+z43=(962FX,0FY);
+z44=(962FX,19FY);
+z45=(895FX,34FY);
+z46=(875FX,104FY);
+z47=(875FX,388FY);
+z48=(977FX,388FY);
+z49=(1029FX,339FY);
+z50=(1029FX,315FY);
+FuF (z1
+-- z2
+{-34,0} .. {-11,10}z3
+{-13,12} .. {0,36}z4
+-- z5
+{0,82} .. {-43,47}z6
+{-42,47} .. {-74,0}z7
+{-74,0} .. {-44,-49}z8
+{-45,-49} .. {0,-78}z9
+-- z10
+{0,-38} .. {-11,-10}z11
+{-11,-10} .. {-36,0}z12
+-- z13
+-- z14
+-- z15
+{-37,0} .. {-12,11}z16
+{-12,10} .. {0,37}z17
+-- z18
+{0,148} .. {98,0}z19
+{49,0} .. {23,-35}z20
+{23,-36} .. {0,-77}z21
+-- z22
+{0,-38} .. {-12,-11}z23
+{-11,-9} .. {-36,0}z24
+-- z25
+);
+FuF (z26
+-- z27
+{0,15} .. {-17,15}z28
+{-25,20} .. {-48,0}z29
+-- z30
+-- z31
+{0,35} .. {10,10}z32
+{10,10} .. {36,0}z33
+-- z34
+-- z35
+-- z36
+{36,0} .. {10,-10}z37
+{11,-10} .. {0,-35}z38
+-- z39
+{0,-37} .. {-11,-11}z40
+{-10,-9} .. {-35,0}z41
+-- z42
+-- z43
+-- z44
+{-34,0} .. {-11,10}z45
+{-13,11} .. {0,36}z46
+-- z47
+-- z48
+{35,0} .. {0,-33}z49
+-- z50
+);
+chp[85]:=currentpicture;
+lbl (range 1 thru 50);
+endchar;
+
+beginchar(86,731FX#,624FY#,70FY#);
+"V";
+z1=(739FX,-70FY);
+z2=(739FX,-38FY);
+z3=(588FX,37FY);
+z4=(551FX,37FY);
+z5=(551FX,523FY);
+z6=(566FX,591FY);
+z7=(636FX,607FY);
+z8=(636FX,624FY);
+z9=(368FX,624FY);
+z10=(368FX,606FY);
+z11=(440FX,589FY);
+z12=(455FX,523FY);
+z13=(455FX,346FY);
+z14=(307FX,180FY);
+z15=(192FX,248FY);
+z16=(164FX,373FY);
+z17=(164FX,425FY);
+z18=(-12FX,425FY);
+z19=(-12FX,406FY);
+z20=(44FX,394FY);
+z21=(61FX,368FY);
+z22=(127FX,208FY);
+z23=(308FX,143FY);
+z24=(455FX,183FY);
+z25=(455FX,0FY);
+z26=(572FX,0FY);
+z27=(604FX,-15FY);
+z28=(616FX,-47FY);
+z29=(616FX,-70FY);
+FuF (z1
+-- z2
+{0,50} .. {-101,0}z3
+-- z4
+-- z5
+{0,34} .. {10,11}z6
+{11,10} .. {36,0}z7
+-- z8
+-- z9
+-- z10
+{37,0} .. {11,-11}z11
+{10,-10} .. {0,-34}z12
+-- z13
+{0,-111} .. {-98,0}z14
+{-52,0} .. {-25,45}z15
+{-18,33} .. {0,50}z16
+-- z17
+-- z18
+-- z19
+{26,0} .. {11,-8}z20
+{12,-7} .. {0,-10}z21
+{0,-63} .. {44,-43}z22
+{44,-43} .. {77,0}z23
+{54,0} .. {44,27}z24
+-- z25
+-- z26
+{13,0} .. {9,-10}z27
+{8,-10} .. {0,-12}z28
+-- z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(87,468FX#,624FY#,0FY#);
+"W";
+z1=(471FX,315FY);
+z2=(471FX,349FY);
+z3=(445FX,394FY);
+z4=(336FX,425FY);
+z5=(194FX,425FY);
+z6=(194FX,523FY);
+z7=(210FX,591FY);
+z8=(280FX,607FY);
+z9=(280FX,624FY);
+z10=(13FX,624FY);
+z11=(13FX,607FY);
+z12=(82FX,591FY);
+z13=(98FX,523FY);
+z14=(98FX,104FY);
+z15=(81FX,32FY);
+z16=(13FX,18FY);
+z17=(13FX,0FY);
+z18=(281FX,0FY);
+z19=(281FX,19FY);
+z20=(214FX,34FY);
+z21=(194FX,104FY);
+z22=(194FX,388FY);
+z23=(296FX,388FY);
+z24=(348FX,339FY);
+z25=(348FX,315FY);
+FuF (z1
+-- z2
+{0,15} .. {-17,15}z3
+{-25,20} .. {-48,0}z4
+-- z5
+-- z6
+{0,35} .. {11,10}z7
+{10,10} .. {36,0}z8
+-- z9
+-- z10
+-- z11
+{36,0} .. {10,-10}z12
+{11,-10} .. {0,-35}z13
+-- z14
+{0,-37} .. {-11,-11}z15
+{-10,-9} .. {-35,0}z16
+-- z17
+-- z18
+-- z19
+{-34,0} .. {-11,10}z20
+{-13,11} .. {0,36}z21
+-- z22
+-- z23
+{35,0} .. {0,-33}z24
+-- z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(88,783FX#,624FY#,13FY#);
+"X";
+z1=(745FX,222FY);
+z2=(745FX,425FY);
+z3=(563FX,425FY);
+z4=(563FX,407FY);
+z5=(632FX,389FY);
+z6=(649FX,322FY);
+z7=(649FX,213FY);
+z8=(622FX,59FY);
+z9=(537FX,17FY);
+z10=(453FX,54FY);
+z11=(421FX,211FY);
+z12=(421FX,425FY);
+z13=(194FX,425FY);
+z14=(194FX,523FY);
+z15=(212FX,591FY);
+z16=(280FX,606FY);
+z17=(280FX,624FY);
+z18=(13FX,624FY);
+z19=(13FX,607FY);
+z20=(86FX,589FY);
+z21=(98FX,523FY);
+z22=(98FX,104FY);
+z23=(81FX,32FY);
+z24=(13FX,18FY);
+z25=(13FX,0FY);
+z26=(280FX,0FY);
+z27=(280FX,18FY);
+z28=(211FX,34FY);
+z29=(194FX,104FY);
+z30=(194FX,388FY);
+z31=(327FX,388FY);
+z32=(327FX,222FY);
+z33=(537FX,-13FY);
+z34=(693FX,56FY);
+z35=(745FX,222FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{35,0} .. {11,-12}z5
+{11,-12} .. {0,-33}z6
+-- z7
+{0,-73} .. {-18,-30}z8
+{-17,-28} .. {-40,0}z9
+{-38,0} .. {-18,24}z10
+{-21,30} .. {0,75}z11
+-- z12
+-- z13
+-- z14
+{0,34} .. {12,11}z15
+{11,10} .. {35,0}z16
+-- z17
+-- z18
+-- z19
+{38,0} .. {10,-12}z20
+{8,-10} .. {0,-34}z21
+-- z22
+{0,-37} .. {-12,-11}z23
+{-10,-9} .. {-35,0}z24
+-- z25
+-- z26
+-- z27
+{-34,0} .. {-12,11}z28
+{-11,10} .. {0,36}z29
+-- z30
+-- z31
+-- z32
+{0,-157} .. {140,0}z33
+{66,0} .. {38,46}z34
+{35,43} .. {0,68}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(89,603FX#,638FY#,16FY#);
+"Y";
+z1=(568FX,199FY);
+z2=(505FX,321FY);
+z3=(388FX,365FY);
+z4=(386FX,367FY);
+z5=(476FX,410FY);
+z6=(511FX,488FY);
+z7=(451FX,597FY);
+z8=(297FX,638FY);
+z9=(153FX,595FY);
+z10=(93FX,476FY);
+z11=(187FX,476FY);
+z12=(298FX,601FY);
+z13=(414FX,491FY);
+z14=(282FX,378FY);
+z15=(152FX,378FY);
+z16=(157FX,411FY);
+z17=(57FX,411FY);
+z18=(35FX,298FY);
+z19=(136FX,298FY);
+z20=(145FX,341FY);
+z21=(284FX,341FY);
+z22=(415FX,304FY);
+z23=(468FX,188FY);
+z24=(419FX,57FY);
+z25=(309FX,17FY);
+z26=(203FX,60FY);
+z27=(158FX,187FY);
+z28=(158FX,221FY);
+z29=(51FX,221FY);
+z30=(51FX,200FY);
+z31=(123FX,47FY);
+z32=(307FX,-16FY);
+z33=(497FX,42FY);
+z34=(568FX,199FY);
+FuF (z1
+{0,49} .. {-42,32}z2
+{-35,27} .. {-43,2}z3
+-- z4
+{36,6} .. {24,23}z5
+{23,23} .. {0,29}z6
+{0,45} .. {-40,28}z7
+{-40,27} .. {-63,0}z8
+{-58,0} .. {-38,-29}z9
+{-40,-29} .. {0,-50}z10
+-- z11
+{0,84} .. {74,0}z12
+{79,0} .. {-1,-74}z13
+{-1,-75} .. {-87,0}z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+-- z21
+{55,0} .. {33,-25}z22
+{36,-27} .. {0,-51}z23
+{0,-57} .. {-33,-31}z24
+{-29,-27} .. {-44,0}z25
+{-44,0} .. {-27,29}z26
+{-30,31} .. {0,54}z27
+-- z28
+-- z29
+-- z30
+{0,-61} .. {48,-41}z31
+{48,-42} .. {74,0}z32
+{79,0} .. {48,39}z33
+{47,39} .. {0,65}z34
+);
+chp[89]:=currentpicture;
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(90,653FX#,637FY#,95FY#);
+"Z";
+z1=(593FX,405FY);
+z2=(517FX,574FY);
+z3=(331FX,637FY);
+z4=(146FX,574FY);
+z5=(69FX,415FY);
+z6=(141FX,245FY);
+z7=(326FX,185FY);
+z8=(398FX,198FY);
+z9=(443FX,222FY);
+z10=(314FX,88FY);
+z11=(164FX,37FY);
+z12=(164FX,122FY);
+z13=(64FX,122FY);
+z14=(64FX,-95FY);
+z15=(164FX,-95FY);
+z16=(164FX,0FY);
+z17=(403FX,0FY);
+z18=(459FX,-15FY);
+z19=(483FX,-58FY);
+z20=(483FX,-95FY);
+z21=(591FX,-95FY);
+z22=(591FX,-47FY);
+z23=(435FX,40FY);
+z24=(321FX,40FY);
+z25=(270FX,40FY);
+z26=(323FX,57FY);
+z27=(507FX,187FY);
+z28=(593FX,405FY);
+z29=(491FX,402FY);
+z30=(442FX,265FY);
+z31=(335FX,224FY);
+z32=(166FX,417FY);
+z33=(213FX,553FY);
+z34=(331FX,601FY);
+z35=(449FX,549FY);
+z36=(491FX,402FY);
+FuF (z1
+{0,69} .. {-51,44}z2
+{-50,42} .. {-74,0}z3
+{-73,0} .. {-50,-42}z4
+{-52,-42} .. {0,-64}z5
+{0,-72} .. {48,-42}z6
+{47,-40} .. {76,0}z7
+{24,0} .. {24,9}z8
+{21,7} .. {8,8}z9
+{-25,-51} .. {-61,-38}z10
+{-56,-34} .. {-44,0}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{23,0} .. {15,-10}z18
+{16,-10} .. {0,-18}z19
+-- z20
+-- z21
+-- z22
+{0,58} .. {-104,0}z23
+-- z24
+-- z25
+-- z26
+{69,22} .. {54,65}z27
+{57,70} .. {0,75}z28
+);
+FuF (z29
+{0,-59} .. {-33,-32}z30
+{-29,-27} .. {-42,0}z31
+{-114,0} .. {1,129}z32
+{0,57} .. {31,34}z33
+{30,32} .. {49,0}z34
+{50,0} .. {28,-34}z35
+{28,-34} .. {0,-63}z36
+);
+chp[90]:=currentpicture;
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(91,380FX#,750FY#,250FY#);
+"bracketleft";
+z1=(339FX,-250FY);
+z2=(339FX,-206FY);
+z3=(177FX,-206FY);
+z4=(177FX,706FY);
+z5=(339FX,706FY);
+z6=(339FX,750FY);
+z7=(94FX,750FY);
+z8=(94FX,-250FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(92,450FX#,624FY#,0FY#);
+"quotedblleft";
+z1=(156FX,430FY);
+z2=(156FX,448FY);
+z3=(174FX,534FY);
+z4=(228FX,608FY);
+z5=(230FX,615FY);
+z6=(228FX,620FY);
+z7=(226FX,623FY);
+z8=(220FX,624FY);
+z9=(213FX,623FY);
+z10=(171FX,572FY);
+z11=(145FX,513FY);
+z12=(136FX,448FY);
+z13=(150FX,383FY);
+z14=(195FX,355FY);
+z15=(230FX,369FY);
+z16=(243FX,402FY);
+z17=(231FX,436FY);
+z18=(195FX,450FY);
+z19=(156FX,430FY);
+z20=(331FX,430FY);
+z21=(331FX,440FY);
+z22=(330FX,448FY);
+z23=(350FX,534FY);
+z24=(403FX,608FY);
+z25=(405FX,615FY);
+z26=(403FX,620FY);
+z27=(401FX,623FY);
+z28=(395FX,624FY);
+z29=(389FX,623FY);
+z30=(346FX,572FY);
+z31=(320FX,513FY);
+z32=(311FX,448FY);
+z33=(325FX,383FY);
+z34=(371FX,355FY);
+z35=(406FX,369FY);
+z36=(418FX,402FY);
+z37=(406FX,436FY);
+z38=(371FX,450FY);
+z39=(331FX,430FY);
+FuF (z1
+{0,4} .. {0,8}z2
+{0,30} .. {12,27}z3
+{13,28} .. {23,22}z4
+{1,3} .. {0,2}z5
+{0,2} .. {-1,2}z6
+-- z7
+{-1,1} .. {-3,0}z8
+{-3,0} .. {-1,-1}z9
+{-17,-16} .. {-11,-19}z10
+{-11,-18} .. {-6,-21}z11
+{-6,-21} .. {0,-23}z12
+{0,-24} .. {10,-20}z13
+{9,-19} .. {20,0}z14
+{15,0} .. {8,10}z15
+{9,10} .. {0,12}z16
+{0,13} .. {-8,9}z17
+{-8,9} .. {-16,0}z18
+{-16,0} .. {-10,-13}z19
+);
+FuF (z20
+{0,4} .. {0,2}z21
+{0,3} .. {-1,3}z22
+{0,30} .. {12,27}z23
+{13,28} .. {23,22}z24
+{2,2} .. {0,3}z25
+{0,2} .. {-2,1}z26
+-- z27
+{-1,1} .. {-3,0}z28
+{-3,0} .. {-1,-1}z29
+{-17,-15} .. {-12,-19}z30
+{-11,-18} .. {-6,-21}z31
+{-6,-21} .. {0,-23}z32
+{0,-24} .. {10,-20}z33
+{9,-19} .. {21,0}z34
+{15,0} .. {9,10}z35
+{8,10} .. {0,12}z36
+{0,13} .. {-8,9}z37
+{-8,9} .. {-15,0}z38
+{-18,0} .. {-9,-13}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+beginchar(93,380FX#,750FY#,250FY#);
+"bracketright";
+z1=(42FX,750FY);
+z2=(42FX,706FY);
+z3=(204FX,706FY);
+z4=(204FX,-206FY);
+z5=(42FX,-206FY);
+z6=(42FX,-250FY);
+z7=(287FX,-250FY);
+z8=(287FX,750FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+);
+lbl (range 1 thru 8);
+endchar;
+
+beginchar(94,527FX#,750FY#,250FY#);
+"braceleft";
+z1=(451FX,-231FY);
+z2=(330FX,-107FY);
+z3=(342FX,-23FY);
+z4=(354FX,65FY);
+z5=(304FX,181FY);
+z6=(196FX,252FY);
+z7=(305FX,320FY);
+z8=(354FX,436FY);
+z9=(342FX,521FY);
+z10=(330FX,607FY);
+z11=(451FX,731FY);
+z12=(451FX,750FY);
+z13=(311FX,683FY);
+z14=(249FX,544FY);
+z15=(262FX,458FY);
+z16=(274FX,375FY);
+z17=(235FX,296FY);
+z18=(152FX,261FY);
+z19=(152FX,239FY);
+z20=(242FX,197FY);
+z21=(274FX,126FY);
+z22=(262FX,42FY);
+z23=(249FX,-43FY);
+z24=(311FX,-183FY);
+z25=(451FX,-250FY);
+FuF (z1
+{-81,21} .. {1,62}z2
+{0,23} .. {8,33}z3
+{8,36} .. {0,23}z4
+{0,43} .. {-33,35}z5
+{-29,31} .. {-43,16}z6
+{44,15} .. {29,30}z7
+{33,35} .. {0,43}z8
+{0,19} .. {-8,38}z9
+{-8,38} .. {0,19}z10
+{0,64} .. {81,18}z11
+-- z12
+{-55,-8} .. {-39,-37}z13
+{-41,-39} .. {1,-54}z14
+{0,-20} .. {8,-38}z15
+{8,-37} .. {0,-18}z16
+{0,-32} .. {-26,-21}z17
+{-23,-19} .. {-32,-4}z18
+-- z19
+{38,-5} .. {22,-23}z20
+{22,-22} .. {-1,-25}z21
+{0,-18} .. {-9,-38}z22
+{-8,-37} .. {0,-20}z23
+{1,-54} .. {41,-39}z24
+{38,-37} .. {55,-8}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(95,527FX#,750FY#,250FY#);
+"braceright";
+z1=(95FX,731FY);
+z2=(216FX,607FY);
+z3=(204FX,522FY);
+z4=(192FX,436FY);
+z5=(241FX,319FY);
+z6=(350FX,249FY);
+z7=(241FX,181FY);
+z8=(192FX,64FY);
+z9=(204FX,-22FY);
+z10=(216FX,-107FY);
+z11=(95FX,-231FY);
+z12=(95FX,-250FY);
+z13=(235FX,-183FY);
+z14=(297FX,-43FY);
+z15=(284FX,41FY);
+z16=(272FX,126FY);
+z17=(311FX,204FY);
+z18=(394FX,239FY);
+z19=(394FX,261FY);
+z20=(311FX,296FY);
+z21=(272FX,375FY);
+z22=(285FX,457FY);
+z23=(297FX,543FY);
+z24=(240FX,678FY);
+z25=(95FX,750FY);
+FuF (z1
+{81,-20} .. {-1,-62}z2
+{0,-19} .. {-8,-38}z3
+{-8,-37} .. {0,-20}z4
+{1,-43} .. {33,-35}z5
+{29,-31} .. {44,-16}z6
+{-44,-16} .. {-28,-29}z7
+{-33,-35} .. {1,-44}z8
+{0,-19} .. {9,-38}z9
+{8,-37} .. {0,-19}z10
+{-1,-63} .. {-80,-20}z11
+-- z12
+{55,8} .. {39,37}z13
+{41,40} .. {0,54}z14
+{0,19} .. {-8,37}z15
+{-9,38} .. {0,19}z16
+{0,31} .. {26,21}z17
+{23,20} .. {32,4}z18
+-- z19
+{-32,5} .. {-23,18}z20
+{-26,21} .. {0,32}z21
+{0,18} .. {8,37}z22
+{8,37} .. {0,20}z23
+{0,50} .. {-38,40}z24
+{-38,41} .. {-59,8}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(96,196FX#,743FY#,0FY#);
+"buth";
+z1=(159FX,569FY);
+z2=(24FX,725FY);
+z3=(-12FX,743FY);
+z4=(-38FX,731FY);
+z5=(-49FX,704FY);
+z6=(-23FX,665FY);
+z7=(135FX,543FY);
+FuF (z1
+-- z2
+{-11,12} .. {-13,-1}z3
+{-10,0} .. {-7,-8}z4
+{-7,-8} .. {0,-10}z5
+{3,-14} .. {15,-12}z6
+-- z7
+);
+lbl (range 1 thru 7);
+endchar;
+
+beginchar(97,734FX#,425FY#,14FY#);
+"a";
+z1=(718FX,29FY);
+z2=(712FX,41FY);
+z3=(691FX,38FY);
+z4=(655FX,94FY);
+z5=(655FX,425FY);
+z6=(511FX,425FY);
+z7=(511FX,410FY);
+z8=(560FX,402FY);
+z9=(575FX,360FY);
+z10=(575FX,92FY);
+z11=(544FX,58FY);
+z12=(472FX,35FY);
+z13=(418FX,59FY);
+z14=(402FX,137FY);
+z15=(402FX,425FY);
+z16=(254FX,425FY);
+z17=(254FX,410FY);
+z18=(314FX,396FY);
+z19=(322FX,335FY);
+z20=(322FX,93FY);
+z21=(280FX,51FY);
+z22=(218FX,35FY);
+z23=(149FX,122FY);
+z24=(149FX,425FY);
+z25=(5FX,425FY);
+z26=(5FX,410FY);
+z27=(56FX,398FY);
+z28=(70FX,356FY);
+z29=(70FX,154FY);
+z30=(181FX,-14FY);
+z31=(333FX,65FY);
+z32=(433FX,-14FY);
+z33=(579FX,58FY);
+z34=(579FX,-12FY);
+z35=(585FX,-14FY);
+FuF (z1
+-- z2
+{-8,-2} .. {-6,0}z3
+{-24,0} .. {0,37}z4
+-- z5
+-- z6
+-- z7
+{24,0} .. {8,-5}z8
+{10,-6} .. {0,-22}z9
+-- z10
+{0,-9} .. {-21,-14}z11
+{-24,-15} .. {-24,0}z12
+{-25,0} .. {-11,16}z13
+{-11,16} .. {0,36}z14
+-- z15
+-- z16
+-- z17
+{33,-2} .. {7,-8}z18
+{6,-7} .. {0,-33}z19
+-- z20
+{-8,-17} .. {-19,-11}z21
+{-19,-11} .. {-22,0}z22
+{-46,0} .. {0,58}z23
+-- z24
+-- z25
+-- z26
+{25,-1} .. {9,-7}z27
+{9,-7} .. {0,-21}z28
+-- z29
+{0,-112} .. {74,0}z30
+{58,0} .. {43,52}z31
+{15,-53} .. {51,1}z32
+{60,1} .. {37,47}z33
+-- z34
+-- z35
+);
+chp[97]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(98,501FX#,441FY#,204FY#);
+"b";
+z1=(443FX,0FY);
+z2=(443FX,33FY);
+z3=(149FX,33FY);
+z4=(149FX,333FY);
+z5=(272FX,389FY);
+z6=(325FX,368FY);
+z7=(343FX,298FY);
+z8=(343FX,141FY);
+z9=(422FX,141FY);
+z10=(422FX,298FY);
+z11=(391FX,407FY);
+z12=(312FX,441FY);
+z13=(146FX,364FY);
+z14=(146FX,437FY);
+z15=(140FX,439FY);
+z16=(9FX,397FY);
+z17=(9FX,380FY);
+z18=(20FX,384FY);
+z19=(35FX,384FY);
+z20=(66FX,363FY);
+z21=(70FX,321FY);
+z22=(70FX,-140FY);
+z23=(55FX,-180FY);
+z24=(12FX,-191FY);
+z25=(12FX,-204FY);
+z26=(211FX,-204FY);
+z27=(211FX,-191FY);
+z28=(149FX,-142FY);
+z29=(149FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{37,37} .. {45,0}z5
+{24,0} .. {12,-14}z6
+{12,-14} .. {0,-33}z7
+-- z8
+-- z9
+-- z10
+{0,50} .. {-21,23}z11
+{-21,22} .. {-31,0}z12
+{-54,0} .. {-56,-51}z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{16,0} .. {5,-14}z20
+{2,-8} .. {0,-20}z21
+-- z22
+{0,-20} .. {-10,-7}z23
+{-9,-7} .. {-19,0}z24
+-- z25
+-- z26
+-- z27
+{-41,0} .. {0,33}z28
+-- z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(99,509FX#,441FY#,209FY#);
+"c";
+z1=(435FX,-25FY);
+z2=(435FX,436FY);
+z3=(431FX,441FY);
+z4=(374FX,407FY);
+z5=(321FX,433FY);
+z6=(259FX,440FY);
+z7=(109FX,369FY);
+z8=(48FX,198FY);
+z9=(89FX,50FY);
+z10=(203FX,-5FY);
+z11=(307FX,23FY);
+z12=(351FX,68FY);
+z13=(356FX,68FY);
+z14=(356FX,-84FY);
+z15=(319FX,-157FY);
+z16=(234FX,-178FY);
+z17=(183FX,-163FY);
+z18=(163FX,-125FY);
+z19=(163FX,-117FY);
+z20=(164FX,-110FY);
+z21=(125FX,-82FY);
+z22=(86FX,-120FY);
+z23=(88FX,-134FY);
+z24=(131FX,-184FY);
+z25=(234FX,-209FY);
+z26=(382FX,-161FY);
+z27=(435FX,-25FY);
+z28=(356FX,102FY);
+z29=(251FX,48FY);
+z30=(156FX,104FY);
+z31=(129FX,225FY);
+z32=(166FX,362FY);
+z33=(257FX,414FY);
+z34=(329FX,396FY);
+z35=(356FX,325FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-27,14} .. {-9,3}z5
+{-15,5} .. {-27,0}z6
+{-59,-1} .. {-41,-47}z7
+{-41,-47} .. {1,-67}z8
+{0,-62} .. {27,-37}z9
+{27,-36} .. {49,0}z10
+{39,0} .. {30,18}z11
+{22,14} .. {7,16}z12
+-- z13
+-- z14
+{0,-32} .. {-25,-17}z15
+{-21,-14} .. {-35,0}z16
+{-21,0} .. {-13,10}z17
+{-13,10} .. {0,15}z18
+{0,2} .. {0,4}z19
+{1,3} .. {0,2}z20
+{0,19} .. {-26,0}z21
+{-26,0} .. {0,-25}z22
+{0,-4} .. {2,-5}z23
+{4,-19} .. {24,-15}z24
+{29,-17} .. {40,0}z25
+{63,0} .. {36,33}z26
+{35,32} .. {0,58}z27
+);
+FuF (z28
+{-31,-36} .. {-39,0}z29
+{-42,0} .. {-22,37}z30
+{-18,32} .. {0,49}z31
+{0,57} .. {23,34}z32
+{24,35} .. {37,-1}z33
+{33,0} .. {15,-11}z34
+{18,-14} .. {0,-33}z35
+);
+chp[99]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(100,520FX#,441FY#,205FY#);
+"d";
+z1=(520FX,0FY);
+z2=(520FX,33FY);
+z3=(422FX,33FY);
+z4=(422FX,298FY);
+z5=(307FX,441FY);
+z6=(146FX,363FY);
+z7=(146FX,438FY);
+z8=(140FX,440FY);
+z9=(67FX,414FY);
+z10=(9FX,397FY);
+z11=(9FX,381FY);
+z12=(42FX,388FY);
+z13=(70FX,345FY);
+z14=(70FX,78FY);
+z15=(58FX,26FY);
+z16=(12FX,14FY);
+z17=(12FX,0FY);
+z18=(211FX,0FY);
+z19=(211FX,14FY);
+z20=(161FX,26FY);
+z21=(149FX,62FY);
+z22=(149FX,334FY);
+z23=(268FX,389FY);
+z24=(343FX,298FY);
+z25=(343FX,-122FY);
+z26=(328FX,-178FY);
+z27=(283FX,-192FY);
+z28=(283FX,-205FY);
+z29=(467FX,-205FY);
+z30=(467FX,-192FY);
+z31=(431FX,-179FY);
+z32=(422FX,-155FY);
+z33=(422FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,95} .. {-77,0}z5
+{-50,0} .. {-57,-52}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{16,5} .. {6,0}z12
+{19,0} .. {0,-29}z13
+-- z14
+{0,-27} .. {-8,-8}z15
+{-6,-6} .. {-25,-2}z16
+-- z17
+-- z18
+-- z19
+{-24,1} .. {-9,7}z20
+{-8,7} .. {0,17}z21
+-- z22
+{38,38} .. {41,-1}z23
+{50,-1} .. {0,-59}z24
+-- z25
+{0,-28} .. {-10,-9}z26
+{-9,-9} .. {-20,0}z27
+-- z28
+-- z29
+-- z30
+{-20,1} .. {-4,8}z31
+{-6,9} .. {0,7}z32
+-- z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(101,501FX#,643FY#,14FY#);
+"e";
+z1=(483FX,29FY);
+z2=(478FX,44FY);
+z3=(450FX,39FY);
+z4=(422FX,76FY);
+z5=(422FX,315FY);
+z6=(343FX,315FY);
+z7=(343FX,92FY);
+z8=(278FX,49FY);
+z9=(220FX,35FY);
+z10=(149FX,127FY);
+z11=(149FX,391FY);
+z12=(443FX,391FY);
+z13=(443FX,425FY);
+z14=(149FX,425FY);
+z15=(149FX,641FY);
+z16=(144FX,643FY);
+z17=(91FX,625FY);
+z18=(10FX,602FY);
+z19=(10FX,587FY);
+z20=(32FX,590FY);
+z21=(70FX,538FY);
+z22=(70FX,136FY);
+z23=(101FX,23FY);
+z24=(180FX,-14FY);
+z25=(346FX,62FY);
+z26=(346FX,-12FY);
+z27=(353FX,-14FY);
+FuF (z1
+-- z2
+{-11,-3} .. {-8,0}z3
+{-18,0} .. {0,24}z4
+-- z5
+-- z6
+-- z7
+{-17,-18} .. {-26,-11}z8
+{-23,-9} .. {-15,0}z9
+{-47,0} .. {0,61}z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+{8,2} .. {7,0}z20
+{25,0} .. {0,-35}z21
+-- z22
+{0,-49} .. {21,-27}z23
+{19,-24} .. {33,0}z24
+{54,0} .. {56,50}z25
+-- z26
+-- z27
+);
+chp[101]:=currentpicture;
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(102,648FX#,624FY#,204FY#);
+"f";
+z1=(620FX,204FY);
+z2=(552FX,373FY);
+z3=(367FX,436FY);
+z4=(367FX,624FY);
+z5=(288FX,624FY);
+z6=(93FX,508FY);
+z7=(288FX,407FY);
+z8=(288FX,22FY);
+z9=(164FX,75FY);
+z10=(123FX,193FY);
+z11=(123FX,209FY);
+z12=(126FX,251FY);
+z13=(39FX,258FY);
+z14=(35FX,205FY);
+z15=(101FX,45FY);
+z16=(288FX,-13FY);
+z17=(288FX,-139FY);
+z18=(273FX,-184FY);
+z19=(229FX,-191FY);
+z20=(229FX,-204FY);
+z21=(429FX,-204FY);
+z22=(429FX,-191FY);
+z23=(367FX,-139FY);
+z24=(367FX,-14FY);
+z25=(550FX,51FY);
+z26=(620FX,204FY);
+z27=(288FX,439FY);
+z28=(201FX,460FY);
+z29=(178FX,517FY);
+z30=(288FX,592FY);
+z31=(531FX,204FY);
+z32=(490FX,71FY);
+z33=(367FX,22FY);
+z34=(367FX,403FY);
+z35=(490FX,346FY);
+z36=(531FX,204FY);
+FuF (z1
+{-1,71} .. {-44,41}z2
+{-45,42} .. {-78,0}z3
+-- z4
+-- z5
+{-130,0} .. {0,-78}z6
+{0,-67} .. {130,0}z7
+-- z8
+{-53,1} .. {-30,34}z9
+{-27,31} .. {0,48}z10
+{0,5} .. {0,6}z11
+-- z12
+-- z13
+{-3,-14} .. {0,-21}z14
+{0,-68} .. {44,-38}z15
+{44,-39} .. {81,0}z16
+-- z17
+{0,-23} .. {-10,-7}z18
+{-7,-4} .. {-22,0}z19
+-- z20
+-- z21
+-- z22
+{-41,1} .. {0,33}z23
+-- z24
+{74,1} .. {48,42}z25
+{47,42} .. {-1,61}z26
+);
+FuF (z27
+{-42,1} .. {-16,13}z28
+{-15,11} .. {0,27}z29
+{0,50} .. {73,0}z30
+);
+FuF (z31
+{0,-56} .. {-27,-32}z32
+{-28,-33} .. {-53,0}z33
+-- z34
+{54,-1} .. {28,-37}z35
+{28,-35} .. {0,-60}z36
+);
+lbl (range 1 thru 36);
+endchar;
+
+beginchar(103,518FX#,441FY#,204FY#);
+"g";
+z1=(528FX,0FY);
+z2=(528FX,32FY);
+z3=(430FX,32FY);
+z4=(430FX,436FY);
+z5=(426FX,441FY);
+z6=(369FX,407FY);
+z7=(254FX,440FY);
+z8=(104FX,370FY);
+z9=(43FX,198FY);
+z10=(82FX,49FY);
+z11=(198FX,-14FY);
+z12=(299FX,14FY);
+z13=(346FX,58FY);
+z14=(351FX,58FY);
+z15=(351FX,-134FY);
+z16=(333FX,-181FY);
+z17=(286FX,-189FY);
+z18=(286FX,-204FY);
+z19=(490FX,-204FY);
+z20=(490FX,-192FY);
+z21=(443FX,-179FY);
+z22=(430FX,-132FY);
+z23=(430FX,0FY);
+z24=(351FX,124FY);
+z25=(312FX,63FY);
+z26=(245FX,39FY);
+z27=(152FX,99FY);
+z28=(124FX,225FY);
+z29=(160FX,363FY);
+z30=(251FX,414FY);
+z31=(321FX,391FY);
+z32=(351FX,325FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{-34,22} .. {-43,0}z7
+{-59,0} .. {-41,-46}z8
+{-41,-47} .. {0,-68}z9
+{0,-60} .. {26,-39}z10
+{28,-42} .. {50,0}z11
+{36,0} .. {31,19}z12
+{25,15} .. {6,15}z13
+-- z14
+-- z15
+{0,-24} .. {-12,-8}z16
+{-9,-5} .. {-23,0}z17
+-- z18
+-- z19
+-- z20
+{-22,0} .. {-9,8}z21
+{-8,9} .. {0,23}z22
+-- z23
+);
+FuF (z24
+{0,-22} .. {-26,-18}z25
+{-23,-16} .. {-22,0}z26
+{-40,0} .. {-22,40}z27
+{-19,34} .. {0,50}z28
+{1,58} .. {24,34}z29
+{23,34} .. {38,0}z30
+{29,0} .. {18,-15}z31
+{20,-16} .. {0,-28}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(104,501FX#,644FY#,0FY#);
+"h";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(435FX,25FY);
+z4=(422FX,71FY);
+z5=(422FX,291FY);
+z6=(306FX,441FY);
+z7=(149FX,363FY);
+z8=(149FX,642FY);
+z9=(144FX,644FY);
+z10=(91FX,626FY);
+z11=(10FX,603FY);
+z12=(10FX,588FY);
+z13=(34FX,589FY);
+z14=(65FX,575FY);
+z15=(70FX,539FY);
+z16=(70FX,73FY);
+z17=(62FX,27FY);
+z18=(9FX,14FY);
+z19=(9FX,0FY);
+z20=(212FX,0FY);
+z21=(212FX,14FY);
+z22=(158FX,28FY);
+z23=(149FX,72FY);
+z24=(149FX,329FY);
+z25=(204FX,371FY);
+z26=(271FX,390FY);
+z27=(329FX,361FY);
+z28=(343FX,287FY);
+z29=(343FX,71FY);
+z30=(333FX,25FY);
+z31=(288FX,14FY);
+z32=(288FX,0FY);
+FuF (z1
+-- z2
+{-22,1} .. {-7,6}z3
+{-8,7} .. {0,23}z4
+-- z5
+{0,100} .. {-78,0}z6
+{-57,0} .. {-48,-52}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{16,1} .. {4,-10}z14
+{3,-6} .. {0,-18}z15
+-- z16
+{0,-24} .. {-5,-7}z17
+{-7,-9} .. {-28,0}z18
+-- z19
+-- z20
+-- z21
+{-28,1} .. {-8,9}z22
+{-6,7} .. {0,22}z23
+-- z24
+{9,15} .. {28,13}z25
+{26,13} .. {18,0}z26
+{28,-1} .. {11,-18}z27
+{9,-16} .. {0,-34}z28
+-- z29
+{0,-24} .. {-7,-7}z30
+{-7,-6} .. {-24,-2}z31
+-- z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(105,501FX#,645FY#,204FY#);
+"i";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(434FX,25FY);
+z4=(422FX,76FY);
+z5=(422FX,298FY);
+z6=(312FX,441FY);
+z7=(149FX,364FY);
+z8=(149FX,643FY);
+z9=(142FX,645FY);
+z10=(67FX,620FY);
+z11=(10FX,603FY);
+z12=(10FX,587FY);
+z13=(20FX,590FY);
+z14=(35FX,590FY);
+z15=(66FX,569FY);
+z16=(70FX,527FY);
+z17=(70FX,-142FY);
+z18=(55FX,-180FY);
+z19=(12FX,-191FY);
+z20=(12FX,-204FY);
+z21=(211FX,-204FY);
+z22=(211FX,-191FY);
+z23=(149FX,-142FY);
+z24=(149FX,335FY);
+z25=(191FX,365FY);
+z26=(272FX,389FY);
+z27=(343FX,298FY);
+z28=(343FX,75FY);
+z29=(332FX,25FY);
+z30=(283FX,14FY);
+z31=(283FX,0FY);
+FuF (z1
+-- z2
+{-23,1} .. {-7,7}z3
+{-8,7} .. {0,27}z4
+-- z5
+{0,95} .. {-73,0}z6
+{-55,0} .. {-54,-51}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{16,0} .. {5,-14}z15
+{3,-7} .. {0,-21}z16
+-- z17
+{0,-19} .. {-10,-7}z18
+{-9,-7} .. {-19,0}z19
+-- z20
+-- z21
+-- z22
+{-41,0} .. {0,33}z23
+-- z24
+{9,9} .. {19,11}z25
+{28,16} .. {25,0}z26
+{47,0} .. {0,-61}z27
+-- z28
+{0,-27} .. {-7,-7}z29
+{-7,-7} .. {-25,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(106,448FX#,441FY#,204FY#);
+"j";
+z1=(419FX,267FY);
+z2=(370FX,389FY);
+z3=(242FX,441FY);
+z4=(94FX,373FY);
+z5=(29FX,220FY);
+z6=(62FX,143FY);
+z7=(139FX,105FY);
+z8=(212FX,53FY);
+z9=(189FX,12FY);
+z10=(72FX,-84FY);
+z11=(26FX,-156FY);
+z12=(43FX,-192FY);
+z13=(78FX,-204FY);
+z14=(414FX,-204FY);
+z15=(414FX,-172FY);
+z16=(171FX,-172FY);
+z17=(120FX,-128FY);
+z18=(160FX,-53FY);
+z19=(277FX,44FY);
+z20=(394FX,169FY);
+z21=(419FX,267FY);
+z22=(337FX,258FY);
+z23=(315FX,149FY);
+z24=(246FX,60FY);
+z25=(250FX,84FY);
+z26=(178FX,168FY);
+z27=(110FX,287FY);
+z28=(145FX,368FY);
+z29=(220FX,408FY);
+z30=(305FX,356FY);
+z31=(337FX,258FY);
+FuF (z1
+{0,47} .. {-33,34}z2
+{-33,35} .. {-52,0}z3
+{-55,0} .. {-43,-45}z4
+{-43,-44} .. {0,-57}z5
+{0,-29} .. {22,-22}z6
+{21,-21} .. {30,-5}z7
+{49,-7} .. {0,-27}z8
+{0,-14} .. {-15,-13}z9
+-- z10
+{-31,-25} .. {0,-23}z11
+{0,-14} .. {11,-10}z12
+{10,-8} .. {13,0}z13
+-- z14
+-- z15
+-- z16
+{-34,0} .. {0,29}z17
+{0,28} .. {26,22}z18
+-- z19
+{57,47} .. {21,36}z20
+{16,28} .. {0,37}z21
+);
+FuF (z22
+{-1,-43} .. {-14,-30}z23
+{-14,-29} .. {-32,-30}z24
+{3,8} .. {0,8}z25
+{0,32} .. {-48,24}z26
+{-46,23} .. {0,56}z27
+{0,28} .. {23,26}z28
+{24,27} .. {27,0}z29
+{33,0} .. {24,-35}z30
+{22,-31} .. {0,-34}z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(107,501FX#,645FY#,204FY#);
+"k";
+z1=(484FX,-204FY);
+z2=(484FX,-191FY);
+z3=(422FX,-142FY);
+z4=(422FX,425FY);
+z5=(278FX,425FY);
+z6=(278FX,408FY);
+z7=(330FX,397FY);
+z8=(343FX,355FY);
+z9=(343FX,109FY);
+z10=(301FX,59FY);
+z11=(220FX,36FY);
+z12=(165FX,61FY);
+z13=(149FX,115FY);
+z14=(149FX,642FY);
+z15=(140FX,645FY);
+z16=(67FX,620FY);
+z17=(9FX,603FY);
+z18=(9FX,587FY);
+z19=(20FX,590FY);
+z20=(35FX,590FY);
+z21=(61FX,579FY);
+z22=(70FX,526FY);
+z23=(70FX,105FY);
+z24=(105FX,19FY);
+z25=(183FX,-14FY);
+z26=(269FX,6FY);
+z27=(344FX,65FY);
+z28=(344FX,-142FY);
+z29=(330FX,-180FY);
+z30=(286FX,-191FY);
+z31=(286FX,-204FY);
+FuF (z1
+-- z2
+{-41,0} .. {0,33}z3
+-- z4
+-- z5
+-- z6
+{26,0} .. {8,-8}z7
+{9,-7} .. {0,-21}z8
+-- z9
+{0,-18} .. {-28,-16}z10
+{-27,-15} .. {-26,0}z11
+{-24,0} .. {-13,17}z12
+{-10,14} .. {0,22}z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+-- z19
+-- z20
+{12,0} .. {5,-7}z21
+{6,-8} .. {0,-27}z22
+-- z23
+{0,-35} .. {23,-23}z24
+{21,-22} .. {31,0}z25
+{29,0} .. {28,13}z26
+{32,14} .. {18,25}z27
+-- z28
+{0,-19} .. {-10,-7}z29
+{-10,-7} .. {-19,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(108,264FX#,441FY#,204FY#);
+"l";
+z1=(258FX,-204FY);
+z2=(258FX,-172FY);
+z3=(190FX,-172FY);
+z4=(160FX,-164FY);
+z5=(149FX,-138FY);
+z6=(149FX,439FY);
+z7=(143FX,441FY);
+z8=(69FX,415FY);
+z9=(10FX,398FY);
+z10=(10FX,382FY);
+z11=(20FX,386FY);
+z12=(35FX,386FY);
+z13=(66FX,365FY);
+z14=(70FX,323FY);
+z15=(70FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-13,0} .. {-7,5}z4
+{-7,4} .. {0,13}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{16,0} .. {4,-14}z13
+{3,-7} .. {0,-21}z14
+-- z15
+);
+lbl (range 1 thru 15);
+endchar;
+
+beginchar(109,502FX#,634FY#,15FY#);
+"m";
+z1=(481FX,28FY);
+z2=(481FX,42FY);
+z3=(461FX,41FY);
+z4=(422FX,86FY);
+z5=(422FX,375FY);
+z6=(366FX,462FY);
+z7=(310FX,548FY);
+z8=(323FX,585FY);
+z9=(359FX,602FY);
+z10=(390FX,574FY);
+z11=(441FX,545FY);
+z12=(481FX,581FY);
+z13=(453FX,621FY);
+z14=(392FX,634FY);
+z15=(298FX,602FY);
+z16=(264FX,520FY);
+z17=(303FX,438FY);
+z18=(343FX,355FY);
+z19=(343FX,107FY);
+z20=(297FX,58FY);
+z21=(223FX,35FY);
+z22=(149FX,115FY);
+z23=(149FX,425FY);
+z24=(12FX,425FY);
+z25=(12FX,411FY);
+z26=(58FX,394FY);
+z27=(70FX,353FY);
+z28=(70FX,133FY);
+z29=(106FX,18FY);
+z30=(181FX,-14FY);
+z31=(276FX,12FY);
+z32=(346FX,65FY);
+z33=(346FX,-15FY);
+z34=(422FX,11FY);
+z35=(481FX,28FY);
+FuF (z1
+-- z2
+{-7,-1} .. {-6,0}z3
+{-26,0} .. {0,30}z4
+-- z5
+{0,27} .. {-38,31}z6
+{-37,31} .. {0,26}z7
+{0,15} .. {8,10}z8
+{9,11} .. {15,0}z9
+{8,0} .. {13,-18}z10
+{13,-19} .. {21,0}z11
+{27,0} .. {0,24}z12
+{0,17} .. {-19,10}z13
+{-16,8} .. {-24,0}z14
+{-40,-1} .. {-23,-20}z15
+{-23,-21} .. {0,-34}z16
+{0,-20} .. {27,-35}z17
+{26,-34} .. {0,-21}z18
+-- z19
+{0,-16} .. {-31,-17}z20
+{-29,-16} .. {-20,0}z21
+{-49,0} .. {0,54}z22
+-- z23
+-- z24
+-- z25
+{23,-3} .. {7,-8}z26
+{8,-7} .. {0,-20}z27
+-- z28
+{0,-50} .. {24,-26}z29
+{20,-21} .. {30,0}z30
+{30,0} .. {33,17}z31
+{30,15} .. {17,20}z32
+-- z33
+-- z34
+{29,10} .. {11,2}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(110,501FX#,624FY#,15FY#);
+"n";
+z1=(481FX,28FY);
+z2=(481FX,41FY);
+z3=(464FX,39FY);
+z4=(422FX,86FY);
+z5=(422FX,425FY);
+z6=(298FX,425FY);
+z7=(298FX,408FY);
+z8=(334FX,396FY);
+z9=(343FX,353FY);
+z10=(343FX,90FY);
+z11=(220FX,35FY);
+z12=(149FX,113FY);
+z13=(149FX,371FY);
+z14=(205FX,463FY);
+z15=(205FX,483FY);
+z16=(145FX,502FY);
+z17=(119FX,547FY);
+z18=(176FX,591FY);
+z19=(276FX,591FY);
+z20=(276FX,624FY);
+z21=(156FX,624FY);
+z22=(79FX,606FY);
+z23=(44FX,551FY);
+z24=(65FX,495FY);
+z25=(106FX,472FY);
+z26=(106FX,468FY);
+z27=(78FX,427FY);
+z28=(70FX,338FY);
+z29=(70FX,130FY);
+z30=(100FX,24FY);
+z31=(183FX,-14FY);
+z32=(348FX,65FY);
+z33=(348FX,-15FY);
+z34=(422FX,11FY);
+z35=(481FX,28FY);
+FuF (z1
+-- z2
+{-6,-1} .. {-5,0}z3
+{-28,0} .. {0,31}z4
+-- z5
+-- z6
+-- z7
+{18,0} .. {6,-7}z8
+{6,-8} .. {0,-20}z9
+-- z10
+{-48,-37} .. {-34,0}z11
+{-47,0} .. {0,52}z12
+-- z13
+{0,61} .. {37,0}z14
+-- z15
+{-23,0} .. {-17,13}z16
+{-18,13} .. {0,17}z17
+{0,29} .. {38,0}z18
+-- z19
+-- z20
+-- z21
+{-30,0} .. {-21,-12}z22
+{-24,-13} .. {0,-23}z23
+{0,-24} .. {14,-13}z24
+{8,-7} .. {20,-8}z25
+-- z26
+{-14,-11} .. {-5,-16}z27
+{-6,-18} .. {0,-42}z28
+-- z29
+{0,-45} .. {20,-25}z30
+{21,-25} .. {35,0}z31
+{62,0} .. {48,52}z32
+-- z33
+-- z34
+{27,9} .. {12,3}z35
+);
+chp[110]:=currentpicture;
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(111,501FX#,441FY#,0FY#);
+"o";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(435FX,25FY);
+z4=(422FX,62FY);
+z5=(422FX,298FY);
+z6=(312FX,441FY);
+z7=(146FX,363FY);
+z8=(146FX,438FY);
+z9=(140FX,440FY);
+z10=(9FX,397FY);
+z11=(14FX,384FY);
+z12=(43FX,389FY);
+z13=(70FX,354FY);
+z14=(70FX,62FY);
+z15=(58FX,25FY);
+z16=(12FX,14FY);
+z17=(12FX,0FY);
+z18=(211FX,0FY);
+z19=(211FX,14FY);
+z20=(162FX,25FY);
+z21=(149FX,62FY);
+z22=(149FX,334FY);
+z23=(212FX,375FY);
+z24=(272FX,389FY);
+z25=(343FX,298FY);
+z26=(343FX,61FY);
+z27=(333FX,25FY);
+z28=(288FX,14FY);
+z29=(288FX,0FY);
+FuF (z1
+-- z2
+{-21,0} .. {-8,7}z3
+{-9,7} .. {0,18}z4
+-- z5
+{0,95} .. {-73,0}z6
+{-59,0} .. {-52,-52}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{15,3} .. {4,0}z12
+{18,0} .. {0,-23}z13
+-- z14
+{0,-18} .. {-8,-7}z15
+{-8,-7} .. {-23,0}z16
+-- z17
+-- z18
+-- z19
+{-24,0} .. {-9,7}z20
+{-8,7} .. {0,18}z21
+-- z22
+{18,17} .. {24,10}z23
+{23,10} .. {17,0}z24
+{47,-1} .. {0,-60}z25
+-- z26
+{0,-18} .. {-6,-6}z27
+{-8,-7} .. {-22,0}z28
+-- z29
+);
+chp[111]:=currentpicture;
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(112,734FX#,425FY#,205FY#);
+"p";
+z1=(718FX,-204FY);
+z2=(718FX,-192FY);
+z3=(656FX,-143FY);
+z4=(655FX,425FY);
+z5=(511FX,425FY);
+z6=(511FX,410FY);
+z7=(564FX,399FY);
+z8=(576FX,360FY);
+z9=(576FX,92FY);
+z10=(531FX,53FY);
+z11=(468FX,35FY);
+z12=(412FX,67FY);
+z13=(402FX,137FY);
+z14=(402FX,425FY);
+z15=(255FX,425FY);
+z16=(255FX,410FY);
+z17=(288FX,407FY);
+z18=(308FX,395FY);
+z19=(323FX,335FY);
+z20=(323FX,93FY);
+z21=(282FX,52FY);
+z22=(218FX,35FY);
+z23=(166FX,53FY);
+z24=(149FX,122FY);
+z25=(149FX,425FY);
+z26=(5FX,425FY);
+z27=(5FX,410FY);
+z28=(54FX,401FY);
+z29=(70FX,356FY);
+z30=(70FX,154FY);
+z31=(93FX,35FY);
+z32=(181FX,-14FY);
+z33=(264FX,9FY);
+z34=(333FX,65FY);
+z35=(433FX,-14FY);
+z36=(576FX,58FY);
+z37=(577FX,-143FY);
+z38=(562FX,-181FY);
+z39=(518FX,-192FY);
+z40=(518FX,-205FY);
+FuF (z1
+-- z2
+{-41,0} .. {0,32}z3
+-- z4
+-- z5
+-- z6
+{28,0} .. {8,-8}z7
+{8,-7} .. {0,-19}z8
+-- z9
+{0,-13} .. {-30,-14}z10
+{-27,-12} .. {-15,0}z11
+{-28,1} .. {-9,21}z12
+{-7,15} .. {0,32}z13
+-- z14
+-- z15
+-- z16
+{17,-1} .. {5,-1}z17
+{7,-3} .. {6,-6}z18
+{10,-10} .. {0,-30}z19
+-- z20
+{-9,-16} .. {-19,-11}z21
+{-19,-12} .. {-23,0}z22
+{-24,0} .. {-10,11}z23
+{-11,13} .. {0,33}z24
+-- z25
+-- z26
+-- z27
+{23,-1} .. {10,-5}z28
+{11,-7} .. {0,-23}z29
+-- z30
+{0,-48} .. {16,-32}z31
+{16,-33} .. {42,0}z32
+{29,0} .. {26,15}z33
+{28,16} .. {18,21}z34
+{15,-52} .. {51,0}z35
+{55,0} .. {40,48}z36
+-- z37
+{0,-18} .. {-10,-7}z38
+{-10,-7} .. {-20,0}z39
+-- z40
+);
+lbl (range 1 thru 40);
+endchar;
+
+beginchar(113,508FX#,441FY#,204FY#);
+"q";
+z1=(474FX,-93FY);
+z2=(474FX,-60FY);
+z3=(154FX,-60FY);
+z4=(154FX,91FY);
+z5=(158FX,91FY);
+z6=(214FX,44FY);
+z7=(298FX,23FY);
+z8=(416FX,68FY);
+z9=(462FX,198FY);
+z10=(394FX,379FY);
+z11=(241FX,440FY);
+z12=(136FX,407FY);
+z13=(79FX,441FY);
+z14=(75FX,-60FY);
+z15=(0FX,-60FY);
+z16=(0FX,-94FY);
+z17=(75FX,-94FY);
+z18=(75FX,-137FY);
+z19=(60FX,-184FY);
+z20=(15FX,-192FY);
+z21=(15FX,-204FY);
+z22=(238FX,-204FY);
+z23=(238FX,-189FY);
+z24=(173FX,-182FY);
+z25=(154FX,-138FY);
+z26=(154FX,-93FY);
+z27=(381FX,225FY);
+z28=(349FX,112FY);
+z29=(255FX,70FY);
+z30=(154FX,124FY);
+z31=(154FX,325FY);
+z32=(178FX,392FY);
+z33=(244FX,414FY);
+z34=(381FX,225FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+{12,-18} .. {26,-14}z6
+{27,-14} .. {29,0}z7
+{49,0} .. {30,30}z8
+{31,32} .. {0,55}z9
+{0,75} .. {-46,44}z10
+{-41,41} .. {-60,0}z11
+{-35,0} .. {-35,-22}z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+-- z18
+{0,-24} .. {-10,-7}z19
+{-6,-4} .. {-24,-2}z20
+-- z21
+-- z22
+-- z23
+{-34,0} .. {-9,4}z24
+{-13,6} .. {0,23}z25
+-- z26
+);
+FuF (z27
+{0,-48} .. {-21,-28}z28
+{-22,-28} .. {-40,0}z29
+{-41,0} .. {-26,36}z30
+-- z31
+{0,29} .. {16,15}z32
+{17,16} .. {28,-1}z33
+{91,-2} .. {0,-123}z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(114,502FX#,441FY#,204FY#);
+"r";
+z1=(480FX,0FY);
+z2=(480FX,14FY);
+z3=(438FX,23FY);
+z4=(423FX,62FY);
+z5=(423FX,298FY);
+z6=(314FX,441FY);
+z7=(146FX,364FY);
+z8=(146FX,439FY);
+z9=(140FX,441FY);
+z10=(67FX,415FY);
+z11=(9FX,398FY);
+z12=(9FX,382FY);
+z13=(43FX,388FY);
+z14=(67FX,371FY);
+z15=(70FX,322FY);
+z16=(70FX,-142FY);
+z17=(56FX,-180FY);
+z18=(12FX,-191FY);
+z19=(12FX,-204FY);
+z20=(212FX,-204FY);
+z21=(212FX,-191FY);
+z22=(149FX,-142FY);
+z23=(149FX,335FY);
+z24=(274FX,389FY);
+z25=(343FX,298FY);
+z26=(343FX,61FY);
+z27=(327FX,21FY);
+z28=(283FX,14FY);
+z29=(283FX,0FY);
+FuF (z1
+-- z2
+{-20,1} .. {-8,6}z3
+{-10,6} .. {0,19}z4
+-- z5
+{0,95} .. {-72,0}z6
+{-57,0} .. {-55,-51}z7
+-- z8
+-- z9
+-- z10
+-- z11
+-- z12
+{14,4} .. {9,0}z13
+{13,0} .. {3,-12}z14
+{2,-7} .. {0,-26}z15
+-- z16
+{0,-19} .. {-9,-7}z17
+{-10,-7} .. {-19,0}z18
+-- z19
+-- z20
+-- z21
+{-42,0} .. {0,33}z22
+-- z23
+{39,36} .. {44,0}z24
+{46,0} .. {0,-61}z25
+-- z26
+{0,-20} .. {-11,-7}z27
+{-8,-4} .. {-22,0}z28
+-- z29
+);
+lbl (range 1 thru 29);
+endchar;
+
+beginchar(115,501FX#,425FY#,14FY#);
+"s";
+z1=(5FX,425FY);
+z2=(5FX,410FY);
+z3=(70FX,363FY);
+z4=(70FX,142FY);
+z5=(181FX,-14FY);
+z6=(346FX,64FY);
+z7=(346FX,-11FY);
+z8=(353FX,-13FY);
+z9=(483FX,29FY);
+z10=(478FX,43FY);
+z11=(457FX,41FY);
+z12=(422FX,82FY);
+z13=(422FX,425FY);
+z14=(281FX,425FY);
+z15=(281FX,410FY);
+z16=(330FX,400FY);
+z17=(343FX,362FY);
+z18=(343FX,93FY);
+z19=(280FX,50FY);
+z20=(220FX,35FY);
+z21=(149FX,128FY);
+z22=(149FX,425FY);
+FuF (z1
+-- z2
+{43,0} .. {0,-32}z3
+-- z4
+{0,-104} .. {74,0}z5
+{58,0} .. {51,52}z6
+-- z7
+-- z8
+-- z9
+-- z10
+{-8,-2} .. {-6,0}z11
+{-23,0} .. {0,28}z12
+-- z13
+-- z14
+-- z15
+{24,0} .. {9,-7}z16
+{9,-7} .. {0,-19}z17
+-- z18
+{-17,-18} .. {-25,-11}z19
+{-23,-10} .. {-17,0}z20
+{-47,0} .. {0,62}z21
+-- z22
+);
+chp[115]:=currentpicture;
+lbl (range 1 thru 22);
+endchar;
+
+beginchar(116,734FX#,439FY#,207FY#);
+"t";
+z1=(710FX,0FY);
+z2=(710FX,14FY);
+z3=(666FX,23FY);
+z4=(655FX,69FY);
+z5=(655FX,264FY);
+z6=(543FX,439FY);
+z7=(402FX,368FY);
+z8=(402FX,423FY);
+z9=(255FX,423FY);
+z10=(255FX,408FY);
+z11=(288FX,405FY);
+z12=(308FX,393FY);
+z13=(323FX,333FY);
+z14=(323FX,96FY);
+z15=(218FX,33FY);
+z16=(165FX,54FY);
+z17=(149FX,124FY);
+z18=(149FX,423FY);
+z19=(5FX,423FY);
+z20=(5FX,408FY);
+z21=(54FX,399FY);
+z22=(70FX,354FY);
+z23=(70FX,157FY);
+z24=(97FX,23FY);
+z25=(181FX,-16FY);
+z26=(258FX,0FY);
+z27=(323FX,56FY);
+z28=(323FX,-144FY);
+z29=(309FX,-183FY);
+z30=(264FX,-193FY);
+z31=(264FX,-207FY);
+z32=(464FX,-207FY);
+z33=(464FX,-193FY);
+z34=(402FX,-144FY);
+z35=(402FX,325FY);
+z36=(437FX,368FY);
+z37=(507FX,390FY);
+z38=(576FX,296FY);
+z39=(576FX,70FY);
+z40=(563FX,23FY);
+z41=(519FX,15FY);
+z42=(519FX,0FY);
+FuF (z1
+-- z2
+{-21,0} .. {-8,6}z3
+{-7,8} .. {0,23}z4
+-- z5
+{0,118} .. {-75,-1}z6
+{-43,-1} .. {-51,-47}z7
+-- z8
+-- z9
+-- z10
+{16,0} .. {6,-2}z11
+{9,-3} .. {5,-5}z12
+{10,-10} .. {0,-30}z13
+-- z14
+{-20,-42} .. {-50,0}z15
+{-24,0} .. {-11,14}z16
+{-10,13} .. {0,33}z17
+-- z18
+-- z19
+-- z20
+{23,0} .. {10,-5}z21
+{11,-6} .. {0,-24}z22
+-- z23
+{0,-63} .. {18,-27}z24
+{19,-27} .. {37,1}z25
+{27,0} .. {24,10}z26
+{21,9} .. {23,29}z27
+-- z28
+{0,-20} .. {-9,-6}z29
+{-9,-6} .. {-21,0}z30
+-- z31
+-- z32
+-- z33
+{-41,0} .. {0,32}z34
+-- z35
+{0,13} .. {23,15}z36
+{24,16} .. {23,0}z37
+{46,-1} .. {0,-62}z38
+-- z39
+{0,-25} .. {-9,-6}z40
+{-9,-5} .. {-20,0}z41
+-- z42
+);
+lbl (range 1 thru 42);
+endchar;
+
+beginchar(117,797FX#,441FY#,0FY#);
+"u";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(435FX,25FY);
+z4=(422FX,62FY);
+z5=(422FX,298FY);
+z6=(312FX,441FY);
+z7=(146FX,363FY);
+z8=(146FX,438FY);
+z9=(140FX,440FY);
+z10=(9FX,397FY);
+z11=(14FX,384FY);
+z12=(43FX,389FY);
+z13=(70FX,354FY);
+z14=(70FX,62FY);
+z15=(58FX,25FY);
+z16=(12FX,14FY);
+z17=(12FX,0FY);
+z18=(211FX,0FY);
+z19=(211FX,14FY);
+z20=(162FX,25FY);
+z21=(149FX,62FY);
+z22=(149FX,334FY);
+z23=(212FX,375FY);
+z24=(272FX,389FY);
+z25=(343FX,298FY);
+z26=(343FX,61FY);
+z27=(333FX,25FY);
+z28=(288FX,14FY);
+z29=(288FX,0FY);
+z30=(792FX,0FY);
+z31=(792FX,28FY);
+z32=(649FX,28FY);
+z33=(649FX,425FY);
+z34=(511FX,425FY);
+z35=(511FX,411FY);
+z36=(558FX,395FY);
+z37=(570FX,353FY);
+z38=(570FX,0FY);
+FuF (z1
+-- z2
+{-21,0} .. {-8,7}z3
+{-9,7} .. {0,18}z4
+-- z5
+{0,95} .. {-73,0}z6
+{-59,0} .. {-52,-52}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{15,3} .. {4,0}z12
+{18,0} .. {0,-23}z13
+-- z14
+{0,-18} .. {-8,-7}z15
+{-8,-7} .. {-23,0}z16
+-- z17
+-- z18
+-- z19
+{-24,0} .. {-9,7}z20
+{-8,7} .. {0,18}z21
+-- z22
+{18,17} .. {24,10}z23
+{23,10} .. {17,0}z24
+{47,-1} .. {0,-60}z25
+-- z26
+{0,-18} .. {-6,-6}z27
+{-8,-7} .. {-22,0}z28
+-- z29
+);
+FuF (z30
+-- z31
+-- z32
+-- z33
+-- z34
+-- z35
+{24,-3} .. {7,-7}z36
+{8,-8} .. {0,-20}z37
+-- z38
+);
+chp[117]:=currentpicture;
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(118,521FX#,645FY#,204FY#);
+"v";
+z1=(520FX,-204FY);
+z2=(520FX,-172FY);
+z3=(473FX,-172FY);
+z4=(437FX,-168FY);
+z5=(422FX,-138FY);
+z6=(422FX,642FY);
+z7=(418FX,645FY);
+z8=(364FX,627FY);
+z9=(284FX,604FY);
+z10=(284FX,589FY);
+z11=(308FX,589FY);
+z12=(338FX,576FY);
+z13=(343FX,541FY);
+z14=(343FX,99FY);
+z15=(303FX,62FY);
+z16=(220FX,36FY);
+z17=(166FX,60FY);
+z18=(149FX,115FY);
+z19=(149FX,425FY);
+z20=(12FX,425FY);
+z21=(12FX,411FY);
+z22=(58FX,394FY);
+z23=(70FX,353FY);
+z24=(70FX,133FY);
+z25=(183FX,-14FY);
+z26=(266FX,6FY);
+z27=(343FX,65FY);
+z28=(343FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-18,0} .. {-6,2}z4
+{-10,5} .. {0,15}z5
+-- z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{17,0} .. {3,-10}z12
+{3,-10} .. {0,-13}z13
+-- z14
+{0,-9} .. {-27,-16}z15
+{-29,-18} .. {-26,0}z16
+{-24,0} .. {-12,16}z17
+{-11,15} .. {0,22}z18
+-- z19
+-- z20
+-- z21
+{23,-3} .. {7,-8}z22
+{8,-7} .. {0,-20}z23
+-- z24
+{0,-98} .. {75,0}z25
+{26,0} .. {30,13}z26
+{35,15} .. {17,24}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(119,298FX#,425FY#,0FY#);
+"w";
+z1=(292FX,0FY);
+z2=(292FX,28FY);
+z3=(149FX,28FY);
+z4=(149FX,425FY);
+z5=(12FX,425FY);
+z6=(12FX,411FY);
+z7=(58FX,395FY);
+z8=(70FX,353FY);
+z9=(70FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{23,-3} .. {7,-7}z7
+{8,-8} .. {0,-20}z8
+-- z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(120,734FX#,645FY#,204FY#);
+"x";
+z1=(713FX,29FY);
+z2=(713FX,41FY);
+z3=(693FX,40FY);
+z4=(661FX,53FY);
+z5=(655FX,87FY);
+z6=(655FX,425FY);
+z7=(510FX,425FY);
+z8=(510FX,408FY);
+z9=(564FX,400FY);
+z10=(576FX,355FY);
+z11=(576FX,99FY);
+z12=(543FX,60FY);
+z13=(470FX,36FY);
+z14=(415FX,60FY);
+z15=(399FX,115FY);
+z16=(405FX,298FY);
+z17=(295FX,440FY);
+z18=(146FX,362FY);
+z19=(146FX,643FY);
+z20=(140FX,645FY);
+z21=(67FX,620FY);
+z22=(10FX,603FY);
+z23=(10FX,587FY);
+z24=(20FX,590FY);
+z25=(35FX,590FY);
+z26=(66FX,569FY);
+z27=(70FX,527FY);
+z28=(70FX,-142FY);
+z29=(55FX,-180FY);
+z30=(12FX,-191FY);
+z31=(12FX,-204FY);
+z32=(211FX,-204FY);
+z33=(211FX,-191FY);
+z34=(149FX,-142FY);
+z35=(149FX,333FY);
+z36=(256FX,392FY);
+z37=(326FX,298FY);
+z38=(320FX,105FY);
+z39=(352FX,21FY);
+z40=(433FX,-14FY);
+z41=(580FX,63FY);
+z42=(582FX,-14FY);
+z43=(593FX,-14FY);
+z44=(713FX,29FY);
+FuF (z1
+-- z2
+{-7,0} .. {-6,0}z3
+{-16,0} .. {-5,9}z4
+{-4,6} .. {0,16}z5
+-- z6
+-- z7
+-- z8
+{28,0} .. {8,-6}z9
+{8,-6} .. {0,-24}z10
+-- z11
+{0,-11} .. {-22,-15}z12
+{-24,-16} .. {-24,0}z13
+{-24,0} .. {-13,16}z14
+{-11,15} .. {1,22}z15
+-- z16
+{3,94} .. {-76,0}z17
+{-42,0} .. {-58,-52}z18
+-- z19
+-- z20
+-- z21
+-- z22
+-- z23
+-- z24
+-- z25
+{16,0} .. {5,-14}z26
+{3,-7} .. {0,-21}z27
+-- z28
+{0,-19} .. {-10,-7}z29
+{-9,-7} .. {-19,0}z30
+-- z31
+-- z32
+-- z33
+{-41,0} .. {0,33}z34
+-- z35
+{47,40} .. {25,0}z36
+{48,0} .. {-2,-63}z37
+-- z38
+{-1,-32} .. {23,-24}z39
+{22,-23} .. {31,0}z40
+{49,0} .. {49,51}z41
+-- z42
+-- z43
+{66,23} .. {14,6}z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(121,280FX#,441FY#,205FY#);
+"y";
+z1=(202FX,0FY);
+z2=(202FX,438FY);
+z3=(197FX,441FY);
+z4=(117FX,412FY);
+z5=(88FX,400FY);
+z6=(50FX,390FY);
+z7=(50FX,375FY);
+z8=(88FX,379FY);
+z9=(115FX,365FY);
+z10=(123FX,318FY);
+z11=(123FX,-58FY);
+z12=(119FX,-128FY);
+z13=(76FX,-174FY);
+z14=(37FX,-145FY);
+z15=(-6FX,-117FY);
+z16=(-46FX,-153FY);
+z17=(-18FX,-194FY);
+z18=(42FX,-205FY);
+z19=(164FX,-149FY);
+z20=(202FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{-13,-5} .. {-6,-3}z5
+{-17,-5} .. {-9,-1}z6
+-- z7
+-- z8
+{15,-1} .. {3,-8}z9
+{5,-8} .. {0,-23}z10
+-- z11
+{0,-35} .. {-2,-12}z12
+{-7,-31} .. {-22,0}z13
+{-8,0} .. {-18,19}z14
+{-19,19} .. {-10,0}z15
+{-27,-1} .. {1,-23}z16
+{1,-19} .. {18,-8}z17
+{17,-7} .. {22,0}z18
+{57,0} .. {25,38}z19
+{25,38} .. {0,62}z20
+);
+chp[121]:=currentpicture;
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(122,524FX#,441FY#,204FY#);
+"z";
+z1=(529FX,-204FY);
+z2=(529FX,-172FY);
+z3=(475FX,-172FY);
+z4=(438FX,-164FY);
+z5=(430FX,-128FY);
+z6=(430FX,436FY);
+z7=(426FX,441FY);
+z8=(369FX,407FY);
+z9=(321FX,430FY);
+z10=(265FX,440FY);
+z11=(110FX,376FY);
+z12=(42FX,198FY);
+z13=(83FX,45FY);
+z14=(209FX,-14FY);
+z15=(297FX,14FY);
+z16=(346FX,58FY);
+z17=(351FX,58FY);
+z18=(351FX,-204FY);
+z19=(351FX,124FY);
+z20=(309FX,61FY);
+z21=(245FX,39FY);
+z22=(152FX,99FY);
+z23=(123FX,225FY);
+z24=(166FX,372FY);
+z25=(263FX,414FY);
+z26=(351FX,325FY);
+FuF (z1
+-- z2
+-- z3
+{-20,0} .. {-5,5}z4
+{-5,4} .. {0,19}z5
+-- z6
+-- z7
+-- z8
+{-28,14} .. {-4,1}z9
+{-16,8} .. {-21,0}z10
+{-61,0} .. {-42,-42}z11
+{-45,-46} .. {0,-73}z12
+{0,-65} .. {27,-37}z13
+{29,-39} .. {55,0}z14
+{28,0} .. {31,19}z15
+{26,16} .. {6,13}z16
+-- z17
+-- z18
+);
+FuF (z19
+{0,-24} .. {-28,-18}z20
+{-24,-15} .. {-19,0}z21
+{-40,0} .. {-22,40}z22
+{-19,34} .. {0,50}z23
+{0,65} .. {29,33}z24
+{24,28} .. {40,0}z25
+{58,-1} .. {0,-59}z26
+);
+chp[122]:=currentpicture;
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(123,450FX#,257FY#,0FY#);
+"hyphen";
+z1=(0FX,197FY);
+z2=(450FX,197FY);
+z3=(450FX,257FY);
+z4=(0FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(124,129FX#,683FY#,0FY#);
+"shesht";
+z1=(123FX,659FY);
+z2=(89FX,683FY);
+z3=(74FX,680FY);
+z4=(50FX,659FY);
+z5=(-53FX,479FY);
+z6=(-32FX,469FY);
+z7=(110FX,616FY);
+z8=(121FX,636FY);
+z9=(123FX,659FY);
+FuF (z1
+{-5,16} .. {-18,0}z2
+-- z3
+{-10,-5} .. {-5,-9}z4
+-- z5
+-- z6
+-- z7
+{5,6} .. {2,8}z8
+{3,7} .. {-2,9}z9
+);
+lbl (range 1 thru 9);
+endchar;
+
+beginchar(125,1000FX#,257FY#,0FY#);
+"emdash";
+z1=(0FX,197FY);
+z2=(1000FX,197FY);
+z3=(1000FX,257FY);
+z4=(0FX,257FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+);
+lbl (range 1 thru 4);
+endchar;
+
+beginchar(126,314FX#,637FY#,8FY#);
+"exclam";
+z1=(223FX,562FY);
+z2=(211FX,615FY);
+z3=(172FX,637FY);
+z4=(133FX,614FY);
+z5=(123FX,559FY);
+z6=(124FX,527FY);
+z7=(132FX,465FY);
+z8=(155FX,323FY);
+z9=(166FX,166FY);
+z10=(178FX,166FY);
+z11=(222FX,537FY);
+z12=(224FX,39FY);
+z13=(209FX,76FY);
+z14=(173FX,91FY);
+z15=(136FX,75FY);
+z16=(123FX,39FY);
+z17=(137FX,4FY);
+z18=(173FX,-8FY);
+z19=(210FX,4FY);
+z20=(224FX,39FY);
+FuF (z1
+{1,22} .. {-7,14}z2
+{-8,15} .. {-18,0}z3
+{-19,-1} .. {-7,-15}z4
+{-8,-18} .. {1,-19}z5
+-- z6
+-- z7
+-- z8
+{7,-46} .. {0,-58}z9
+-- z10
+-- z11
+);
+FuF (z12
+{-1,14} .. {-10,11}z13
+{-10,10} .. {-14,0}z14
+{-16,-1} .. {-9,-10}z15
+{-9,-11} .. {0,-14}z16
+{0,-15} .. {10,-8}z17
+{11,-9} .. {13,0}z18
+{14,1} .. {10,8}z19
+{10,10} .. {0,13}z20
+);
+lbl (range 1 thru 20);
+endchar;
+
+beginchar(3,655FX#,637FY#,14FY#);
+"Dz";
+z1=(595FX,387FY);
+z2=(522FX,571FY);
+z3=(335FX,637FY);
+z4=(152FX,578FY);
+z5=(69FX,408FY);
+z6=(74FX,365FY);
+z7=(171FX,365FY);
+z8=(168FX,418FY);
+z9=(217FX,555FY);
+z10=(333FX,601FY);
+z11=(492FX,389FY);
+z12=(452FX,241FY);
+z13=(374FX,135FY);
+z14=(201FX,209FY);
+z15=(107FX,177FY);
+z16=(64FX,94FY);
+z17=(105FX,11FY);
+z18=(189FX,-14FY);
+z19=(339FX,40FY);
+z20=(465FX,-13FY);
+z21=(590FX,60FY);
+z22=(561FX,78FY);
+z23=(509FX,47FY);
+z24=(421FX,100FY);
+z25=(537FX,230FY);
+z26=(595FX,387FY);
+z27=(298FX,70FY);
+z28=(189FX,23FY);
+z29=(137FX,37FY);
+z30=(116FX,73FY);
+z31=(137FX,114FY);
+z32=(191FX,126FY);
+z33=(298FX,70FY);
+FuF (z1
+{0,77} .. {-48,46}z2
+{-47,44} .. {-77,0}z3
+{-72,0} .. {-50,-39}z4
+{-56,-44} .. {0,-70}z5
+{0,-14} .. {4,-15}z6
+-- z7
+{-2,6} .. {0,29}z8
+{0,58} .. {33,33}z9
+{30,31} .. {47,0}z10
+{106,0} .. {0,-141}z11
+{0,-48} .. {-27,-51}z12
+{-22,-42} .. {-31,-29}z13
+{-65,50} .. {-50,-1}z14
+{-36,0} .. {-26,-21}z15
+{-28,-21} .. {0,-34}z16
+{0,-36} .. {27,-19}z17
+{23,-17} .. {33,0}z18
+{46,0} .. {54,36}z19
+{44,-36} .. {40,0}z20
+{52,0} .. {31,49}z21
+-- z22
+{-15,-21} .. {-19,0}z23
+{-15,0} .. {-44,35}z24
+{43,34} .. {34,53}z25
+{38,60} .. {0,45}z26
+);
+FuF (z27
+{-40,-32} .. {-33,0}z28
+{-21,0} .. {-14,10}z29
+{-14,9} .. {0,15}z30
+{-1,18} .. {15,10}z31
+{13,9} .. {23,0}z32
+{29,-1} .. {43,-37}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(4,707FX#,637FY#,67FY#);
+"Gh";
+z1=(700FX,-67FY);
+z2=(700FX,-35FY);
+z3=(665FX,20FY);
+z4=(593FX,37FY);
+z5=(525FX,37FY);
+z6=(525FX,366FY);
+z7=(461FX,565FY);
+z8=(282FX,637FY);
+z9=(106FX,566FY);
+z10=(41FX,366FY);
+z11=(41FX,315FY);
+z12=(138FX,315FY);
+z13=(138FX,394FY);
+z14=(281FX,601FY);
+z15=(428FX,391FY);
+z16=(428FX,0FY);
+z17=(525FX,0FY);
+z18=(577FX,-44FY);
+z19=(577FX,-67FY);
+FuF (z1
+-- z2
+{0,23} .. {-23,14}z3
+{-20,11} .. {-28,0}z4
+-- z5
+-- z6
+{0,85} .. {-43,48}z7
+{-42,48} .. {-77,0}z8
+{-74,0} .. {-43,-48}z9
+{-43,-48} .. {0,-86}z10
+-- z11
+-- z12
+-- z13
+{0,138} .. {96,0}z14
+{98,0} .. {0,-140}z15
+-- z16
+-- z17
+{35,0} .. {0,-29}z18
+-- z19
+);
+lbl (range 1 thru 19);
+endchar;
+
+beginchar(5,626FX#,638FY#,0FY#);
+"Chmute";
+z1=(564FX,0FY);
+z2=(564FX,146FY);
+z3=(478FX,359FY);
+z4=(256FX,503FY);
+z5=(383FX,592FY);
+z6=(416FX,555FY);
+z7=(416FX,529FY);
+z8=(539FX,529FY);
+z9=(539FX,555FY);
+z10=(505FX,617FY);
+z11=(411FX,638FY);
+z12=(319FX,608FY);
+z13=(216FX,518FY);
+z14=(119FX,544FY);
+z15=(109FX,508FY);
+z16=(192FX,485FY);
+z17=(93FX,306FY);
+z18=(55FX,111FY);
+z19=(55FX,0FY);
+z20=(467FX,37FY);
+z21=(152FX,37FY);
+z22=(152FX,144FY);
+z23=(174FX,329FY);
+z24=(234FX,469FY);
+z25=(467FX,145FY);
+FuF (z1
+-- z2
+{0,77} .. {-58,64}z3
+{-55,62} .. {-92,35}z4
+{51,59} .. {34,0}z5
+{22,0} .. {0,-25}z6
+-- z7
+-- z8
+-- z9
+{0,27} .. {-23,15}z10
+{-23,14} .. {-40,0}z11
+{-28,0} .. {-34,-20}z12
+{-38,-22} .. {-31,-38}z13
+{-27,9} .. {-38,8}z14
+-- z15
+{33,-7} .. {23,-9}z16
+{-41,-51} .. {-24,-68}z17
+{-25,-68} .. {0,-62}z18
+-- z19
+);
+FuF (z20
+-- z21
+-- z22
+{0,64} .. {15,59}z23
+{15,59} .. {25,35}z24
+{156,-60} .. {0,-156}z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(6,584FX#,624FY#,66FY#);
+"Esimple";
+z1=(543FX,315FY);
+z2=(543FX,349FY);
+z3=(408FX,425FY);
+z4=(206FX,425FY);
+z5=(206FX,523FY);
+z6=(223FX,590FY);
+z7=(292FX,607FY);
+z8=(292FX,624FY);
+z9=(25FX,624FY);
+z10=(25FX,607FY);
+z11=(96FX,590FY);
+z12=(110FX,523FY);
+z13=(110FX,104FY);
+z14=(93FX,32FY);
+z15=(25FX,18FY);
+z16=(25FX,0FY);
+z17=(319FX,0FY);
+z18=(372FX,-43FY);
+z19=(372FX,-66FY);
+z20=(495FX,-66FY);
+z21=(495FX,-34FY);
+z22=(469FX,11FY);
+z23=(360FX,37FY);
+z24=(206FX,37FY);
+z25=(206FX,388FY);
+z26=(368FX,388FY);
+z27=(421FX,339FY);
+z28=(421FX,315FY);
+FuF (z1
+-- z2
+{0,50} .. {-90,0}z3
+-- z4
+-- z5
+{0,34} .. {11,11}z6
+{11,11} .. {35,0}z7
+-- z8
+-- z9
+-- z10
+{37,0} .. {10,-11}z11
+{9,-10} .. {0,-35}z12
+-- z13
+{0,-37} .. {-11,-11}z14
+{-11,-9} .. {-35,0}z15
+-- z16
+-- z17
+{35,0} .. {0,-29}z18
+-- z19
+-- z20
+-- z21
+{0,17} .. {-17,13}z22
+{-23,17} .. {-49,0}z23
+-- z24
+-- z25
+-- z26
+{35,0} .. {0,-33}z27
+-- z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(7,681FX#,637FY#,66FY#);
+"Article";
+z1=(607FX,-66FY);
+z2=(607FX,-34FY);
+z3=(473FX,37FY);
+z4=(254FX,37FY);
+z5=(203FX,52FY);
+z6=(194FX,102FY);
+z7=(194FX,373FY);
+z8=(233FX,550FY);
+z9=(341FX,601FY);
+z10=(459FX,534FY);
+z11=(485FX,365FY);
+z12=(485FX,315FY);
+z13=(581FX,315FY);
+z14=(581FX,366FY);
+z15=(519FX,567FY);
+z16=(340FX,637FY);
+z17=(169FX,569FY);
+z18=(98FX,366FY);
+z19=(98FX,102FY);
+z20=(81FX,32FY);
+z21=(13FX,18FY);
+z22=(13FX,0FY);
+z23=(432FX,0FY);
+z24=(485FX,-43FY);
+z25=(485FX,-66FY);
+FuF (z1
+-- z2
+{0,47} .. {-89,0}z3
+-- z4
+{-27,0} .. {-8,10}z5
+{-6,7} .. {0,26}z6
+-- z7
+{0,81} .. {26,37}z8
+{23,34} .. {49,0}z9
+{56,0} .. {22,-45}z10
+{17,-36} .. {0,-77}z11
+-- z12
+-- z13
+-- z14
+{0,87} .. {-41,47}z15
+{-42,47} .. {-78,0}z16
+{-70,0} .. {-44,-46}z17
+{-47,-49} .. {0,-86}z18
+-- z19
+{0,-36} .. {-11,-11}z20
+{-10,-9} .. {-35,0}z21
+-- z22
+-- z23
+{35,0} .. {0,-29}z24
+-- z25
+);
+lbl (range 1 thru 25);
+endchar;
+
+beginchar(8,804FX#,638FY#,0FY#);
+"Th";
+z1=(805FX,208FY);
+z2=(805FX,239FY);
+z3=(671FX,315FY);
+z4=(621FX,315FY);
+z5=(621FX,381FY);
+z6=(551FX,563FY);
+z7=(365FX,638FY);
+z8=(173FX,561FY);
+z9=(98FX,366FY);
+z10=(98FX,102FY);
+z11=(82FX,33FY);
+z12=(13FX,18FY);
+z13=(13FX,0FY);
+z14=(280FX,0FY);
+z15=(280FX,18FY);
+z16=(212FX,32FY);
+z17=(194FX,102FY);
+z18=(194FX,373FY);
+z19=(233FX,528FY);
+z20=(366FX,601FY);
+z21=(492FX,530FY);
+z22=(525FX,394FY);
+z23=(525FX,315FY);
+z24=(438FX,315FY);
+z25=(328FX,271FY);
+z26=(282FX,164FY);
+z27=(332FX,45FY);
+z28=(456FX,0FY);
+z29=(580FX,55FY);
+z30=(621FX,168FY);
+z31=(621FX,277FY);
+z32=(634FX,277FY);
+z33=(683FX,235FY);
+z34=(683FX,208FY);
+z35=(525FX,165FY);
+z36=(456FX,37FY);
+z37=(401FX,74FY);
+z38=(383FX,163FY);
+z39=(400FX,243FY);
+z40=(451FX,278FY);
+z41=(525FX,278FY);
+FuF (z1
+-- z2
+{0,51} .. {-89,0}z3
+-- z4
+-- z5
+{0,72} .. {-47,49}z6
+{-48,50} .. {-76,0}z7
+{-78,0} .. {-50,-52}z8
+{-49,-51} .. {0,-79}z9
+-- z10
+{0,-36} .. {-11,-11}z11
+{-11,-10} .. {-35,0}z12
+-- z13
+-- z14
+-- z15
+{-35,0} .. {-10,9}z16
+{-12,11} .. {0,36}z17
+-- z18
+{0,62} .. {26,41}z19
+{30,49} .. {59,0}z20
+{57,0} .. {28,-48}z21
+{21,-37} .. {0,-54}z22
+-- z23
+-- z24
+{-42,0} .. {-32,-30}z25
+{-31,-29} .. {0,-41}z26
+{1,-49} .. {33,-31}z27
+{33,-30} .. {50,0}z28
+{52,0} .. {30,37}z29
+{27,33} .. {0,43}z30
+-- z31
+-- z32
+{32,0} .. {0,-28}z33
+-- z34
+);
+FuF (z35
+{0,-85} .. {-46,0}z36
+{-24,0} .. {-13,25}z37
+{-12,23} .. {0,37}z38
+{0,31} .. {12,22}z39
+{12,23} .. {21,0}z40
+-- z41
+);
+lbl (range 1 thru 41);
+endchar;
+
+beginchar(9,718FX#,624FY#,13FY#);
+"Zh";
+z1=(717FX,315FY);
+z2=(717FX,351FY);
+z3=(572FX,425FY);
+z4=(511FX,425FY);
+z5=(511FX,535FY);
+z6=(530FX,594FY);
+z7=(590FX,607FY);
+z8=(590FX,624FY);
+z9=(327FX,624FY);
+z10=(327FX,607FY);
+z11=(403FX,589FY);
+z12=(415FX,532FY);
+z13=(415FX,425FY);
+z14=(290FX,425FY);
+z15=(102FX,368FY);
+z16=(24FX,207FY);
+z17=(94FX,49FY);
+z18=(272FX,-13FY);
+z19=(449FX,52FY);
+z20=(511FX,216FY);
+z21=(511FX,387FY);
+z22=(545FX,387FY);
+z23=(582FX,379FY);
+z24=(595FX,341FY);
+z25=(595FX,315FY);
+z26=(415FX,212FY);
+z27=(272FX,23FY);
+z28=(124FX,205FY);
+z29=(172FX,350FY);
+z30=(320FX,387FY);
+z31=(415FX,387FY);
+FuF (z1
+-- z2
+{0,49} .. {-97,0}z3
+-- z4
+-- z5
+{0,29} .. {13,10}z6
+{10,8} .. {29,0}z7
+-- z8
+-- z9
+-- z10
+{40,-2} .. {11,-10}z11
+{8,-7} .. {0,-31}z12
+-- z13
+-- z14
+{-76,0} .. {-49,-38}z15
+{-52,-40} .. {0,-67}z16
+{0,-64} .. {46,-41}z17
+{47,-42} .. {72,0}z18
+{74,0} .. {44,44}z19
+{41,42} .. {0,67}z20
+-- z21
+-- z22
+{18,0} .. {7,-5}z23
+{8,-7} .. {0,-18}z24
+-- z25
+);
+FuF (z26
+{0,-126} .. {-95,0}z27
+{-99,0} .. {0,121}z28
+{0,69} .. {32,28}z29
+{29,25} .. {69,0}z30
+-- z31
+);
+lbl (range 1 thru 31);
+endchar;
+
+beginchar(10,625FX#,630FY#,15FY#);
+"Sh";
+z1=(273FX,516FY);
+z2=(117FX,409FY);
+z3=(58FX,229FY);
+z4=(125FX,54FY);
+z5=(313FX,-15FY);
+z6=(517FX,61FY);
+z7=(584FX,215FY);
+z8=(581FX,250FY);
+z9=(479FX,250FY);
+z10=(486FX,193FY);
+z11=(439FX,73FY);
+z12=(313FX,22FY);
+z13=(198FX,81FY);
+z14=(155FX,229FY);
+z15=(310FX,492FY);
+z16=(452FX,424FY);
+z17=(541FX,472FY);
+z18=(534FX,498FY);
+z19=(512FX,494FY);
+z20=(425FX,529FY);
+z21=(322FX,595FY);
+z22=(184FX,630FY);
+z23=(83FX,602FY);
+z24=(105FX,571FY);
+z25=(142FX,586FY);
+z26=(214FX,562FY);
+z27=(273FX,516FY);
+FuF (z1
+{-63,-15} .. {-40,-56}z2
+{-39,-54} .. {0,-66}z3
+{0,-73} .. {45,-44}z4
+{46,-46} .. {79,0}z5
+{85,0} .. {51,50}z6
+{44,44} .. {0,58}z7
+{0,11} .. {-2,12}z8
+-- z9
+{5,-19} .. {0,-19}z10
+{0,-47} .. {-32,-33}z11
+{-32,-34} .. {-51,0}z12
+{-47,0} .. {-29,39}z13
+{-29,39} .. {0,60}z14
+{0,144} .. {104,31}z15
+{61,-46} .. {34,0}z16
+{34,0} .. {25,32}z17
+-- z18
+{-8,-2} .. {-7,0}z19
+{-23,0} .. {-35,23}z20
+{-58,38} .. {-11,6}z21
+{-45,23} .. {-47,0}z22
+{-51,0} .. {-17,-19}z23
+-- z24
+{12,10} .. {12,0}z25
+{23,0} .. {25,-16}z26
+{10,-6} .. {30,-25}z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(11,625FX#,637FY#,7FY#);
+"Ch";
+z1=(333FX,106FY);
+z2=(497FX,214FY);
+z3=(572FX,394FY);
+z4=(505FX,569FY);
+z5=(316FX,637FY);
+z6=(113FX,562FY);
+z7=(47FX,408FY);
+z8=(49FX,373FY);
+z9=(151FX,373FY);
+z10=(144FX,431FY);
+z11=(191FX,550FY);
+z12=(316FX,601FY);
+z13=(431FX,542FY);
+z14=(475FX,393FY);
+z15=(425FX,239FY);
+z16=(297FX,131FY);
+z17=(154FX,199FY);
+z18=(65FX,151FY);
+z19=(73FX,124FY);
+z20=(95FX,128FY);
+z21=(182FX,93FY);
+z22=(284FX,28FY);
+z23=(422FX,-7FY);
+z24=(523FX,20FY);
+z25=(501FX,52FY);
+z26=(464FX,37FY);
+z27=(393FX,60FY);
+z28=(333FX,106FY);
+FuF (z1
+{62,18} .. {47,55}z2
+{50,57} .. {0,63}z3
+{0,72} .. {-44,44}z4
+{-46,46} .. {-80,0}z5
+{-85,0} .. {-51,-50}z6
+{-44,-44} .. {0,-59}z7
+{0,-10} .. {2,-13}z8
+-- z9
+{-5,20} .. {0,19}z10
+{0,47} .. {32,32}z11
+{33,34} .. {51,0}z12
+{48,0} .. {29,-39}z13
+{29,-39} .. {0,-60}z14
+{0,-52} .. {-33,-50}z15
+{-35,-54} .. {-50,-18}z16
+{-61,45} .. {-34,0}z17
+{-34,0} .. {-26,-32}z18
+-- z19
+{8,3} .. {7,0}z20
+{23,0} .. {35,-24}z21
+{57,-38} .. {11,-6}z22
+{45,-23} .. {47,0}z23
+{51,0} .. {16,18}z24
+-- z25
+{-12,-10} .. {-13,0}z26
+{-22,0} .. {-25,16}z27
+{-10,6} .. {-30,24}z28
+);
+lbl (range 1 thru 28);
+endchar;
+
+beginchar(12,777FX#,637FY#,0FY#);
+"Rhard";
+z1=(797FX,134FY);
+z2=(797FX,166FY);
+z3=(762FX,220FY);
+z4=(662FX,241FY);
+z5=(581FX,241FY);
+z6=(581FX,373FY);
+z7=(515FX,570FY);
+z8=(345FX,637FY);
+z9=(163FX,563FY);
+z10=(98FX,373FY);
+z11=(98FX,104FY);
+z12=(82FX,31FY);
+z13=(13FX,18FY);
+z14=(13FX,0FY);
+z15=(280FX,0FY);
+z16=(280FX,18FY);
+z17=(210FX,34FY);
+z18=(194FX,104FY);
+z19=(194FX,377FY);
+z20=(229FX,545FY);
+z21=(346FX,601FY);
+z22=(485FX,377FY);
+z23=(485FX,104FY);
+z24=(470FX,35FY);
+z25=(396FX,18FY);
+z26=(396FX,0FY);
+z27=(668FX,0FY);
+z28=(668FX,18FY);
+z29=(596FX,35FY);
+z30=(581FX,104FY);
+z31=(581FX,204FY);
+z32=(622FX,204FY);
+z33=(674FX,157FY);
+z34=(674FX,134FY);
+FuF (z1
+-- z2
+{0,22} .. {-23,14}z3
+{-25,14} .. {-42,0}z4
+-- z5
+-- z6
+{0,84} .. {-44,47}z7
+{-42,45} .. {-72,0}z8
+{-76,0} .. {-45,-50}z9
+{-43,-48} .. {0,-78}z10
+-- z11
+{0,-39} .. {-11,-10}z12
+{-10,-9} .. {-37,0}z13
+-- z14
+-- z15
+-- z16
+{-36,0} .. {-10,11}z17
+{-10,11} .. {0,36}z18
+-- z19
+{0,76} .. {23,36}z20
+{24,37} .. {53,0}z21
+{93,0} .. {0,-149}z22
+-- z23
+{0,-36} .. {-10,-10}z24
+{-11,-12} .. {-38,0}z25
+-- z26
+-- z27
+-- z28
+{-37,0} .. {-11,11}z29
+{-10,10} .. {0,36}z30
+-- z31
+-- z32
+{35,0} .. {0,-32}z33
+-- z34
+);
+lbl (range 1 thru 34);
+endchar;
+
+beginchar(13,661FX#,624FY#,13FY#);
+"Ts";
+z1=(640FX,492FY);
+z2=(640FX,528FY);
+z3=(601FX,589FY);
+z4=(515FX,609FY);
+z5=(264FX,525FY);
+z6=(175FX,542FY);
+z7=(136FX,598FY);
+z8=(136FX,624FY);
+z9=(13FX,624FY);
+z10=(13FX,589FY);
+z11=(56FX,530FY);
+z12=(130FX,512FY);
+z13=(225FX,496FY);
+z14=(111FX,381FY);
+z15=(66FX,239FY);
+z16=(139FX,59FY);
+z17=(323FX,-13FY);
+z18=(515FX,61FY);
+z19=(587FX,240FY);
+z20=(515FX,421FY);
+z21=(321FX,515FY);
+z22=(476FX,565FY);
+z23=(517FX,519FY);
+z24=(517FX,492FY);
+z25=(490FX,239FY);
+z26=(445FX,79FY);
+z27=(321FX,24FY);
+z28=(204FX,82FY);
+z29=(164FX,244FY);
+z30=(282FX,490FY);
+z31=(437FX,405FY);
+z32=(490FX,239FY);
+FuF (z1
+-- z2
+{0,26} .. {-26,15}z3
+{-23,14} .. {-34,0}z4
+{-73,0} .. {-94,-56}z5
+{-45,9} .. {-15,3}z6
+{-26,6} .. {0,31}z7
+-- z8
+-- z9
+-- z10
+{0,-29} .. {29,-11}z11
+{17,-6} .. {33,-6}z12
+{32,-5} .. {31,-5}z13
+{-46,-28} .. {-30,-49}z14
+{-30,-48} .. {0,-47}z15
+{0,-72} .. {49,-49}z16
+{48,-48} .. {74,0}z17
+{79,0} .. {49,49}z18
+{48,47} .. {0,72}z19
+{0,72} .. {-48,49}z20
+{-48,49} .. {-82,14}z21
+{53,33} .. {50,0}z22
+{27,0} .. {0,-31}z23
+-- z24
+);
+FuF (z25
+{-1,-70} .. {-30,-37}z26
+{-30,-37} .. {-53,0}z27
+{-50,0} .. {-28,39}z28
+{-27,39} .. {1,69}z29
+{1,121} .. {78,43}z30
+{68,-13} .. {35,-43}z31
+{36,-43} .. {0,-67}z32
+);
+lbl (range 1 thru 32);
+endchar;
+
+beginchar(14,686FX#,624FY#,0FY#);
+"Ph";
+z1=(664FX,315FY);
+z2=(595FX,473FY);
+z3=(389FX,532FY);
+z4=(389FX,546FY);
+z5=(414FX,600FY);
+z6=(476FX,607FY);
+z7=(476FX,624FY);
+z8=(210FX,624FY);
+z9=(210FX,607FY);
+z10=(268FX,598FY);
+z11=(292FX,546FY);
+z12=(292FX,532FY);
+z13=(90FX,470FY);
+z14=(17FX,315FY);
+z15=(92FX,156FY);
+z16=(292FX,97FY);
+z17=(292FX,79FY);
+z18=(276FX,33FY);
+z19=(208FX,18FY);
+z20=(208FX,0FY);
+z21=(474FX,0FY);
+z22=(474FX,18FY);
+z23=(405FX,32FY);
+z24=(389FX,79FY);
+z25=(389FX,97FY);
+z26=(595FX,162FY);
+z27=(664FX,315FY);
+z28=(568FX,315FY);
+z29=(524FX,188FY);
+z30=(389FX,134FY);
+z31=(389FX,496FY);
+z32=(528FX,439FY);
+z33=(568FX,315FY);
+z34=(292FX,134FY);
+z35=(153FX,191FY);
+z36=(113FX,315FY);
+z37=(158FX,441FY);
+z38=(292FX,496FY);
+FuF (z1
+{0,67} .. {-46,38}z2
+{-48,40} .. {-89,0}z3
+-- z4
+{0,28} .. {17,8}z5
+{11,4} .. {31,0}z6
+-- z7
+-- z8
+-- z9
+{28,0} .. {11,-6}z10
+{16,-8} .. {0,-26}z11
+-- z12
+{-84,0} .. {-50,-42}z13
+{-49,-40} .. {0,-64}z14
+{0,-66} .. {50,-40}z15
+{50,-39} .. {83,0}z16
+-- z17
+{0,-22} .. {-11,-9}z18
+{-13,-10} .. {-33,0}z19
+-- z20
+-- z21
+-- z22
+{-34,0} .. {-12,9}z23
+{-11,8} .. {0,23}z24
+-- z25
+{87,0} .. {51,44}z26
+{46,40} .. {0,62}z27
+);
+FuF (z28
+{0,-52} .. {-29,-33}z29
+{-33,-36} .. {-57,0}z30
+-- z31
+{61,0} .. {32,-38}z32
+{26,-32} .. {0,-50}z33
+);
+FuF (z34
+{-61,0} .. {-32,38}z35
+{-26,32} .. {0,50}z36
+{0,50} .. {30,34}z37
+{33,36} .. {56,0}z38
+);
+lbl (range 1 thru 38);
+endchar;
+
+beginchar(15,705FX#,637FY#,13FY#);
+"Osimple";
+z1=(666FX,312FY);
+z2=(574FX,551FY);
+z3=(358FX,637FY);
+z4=(143FX,553FY);
+z5=(50FX,312FY);
+z6=(142FX,71FY);
+z7=(359FX,-13FY);
+z8=(578FX,76FY);
+z9=(666FX,312FY);
+z10=(559FX,313FY);
+z11=(502FX,96FY);
+z12=(359FX,24FY);
+z13=(211FX,100FY);
+z14=(157FX,312FY);
+z15=(213FX,526FY);
+z16=(358FX,601FY);
+z17=(503FX,528FY);
+z18=(559FX,313FY);
+FuF (z1
+{0,98} .. {-62,61}z2
+{-58,57} .. {-86,0}z3
+{-85,0} .. {-58,-56}z4
+{-62,-61} .. {0,-100}z5
+{0,-100} .. {62,-60}z6
+{58,-56} .. {87,0}z7
+{88,0} .. {58,59}z8
+{59,61} .. {0,96}z9
+);
+FuF (z10
+{0,-93} .. {-38,-51}z11
+{-35,-48} .. {-60,0}z12
+{-63,0} .. {-35,51}z13
+{-36,51} .. {0,91}z14
+{0,91} .. {37,51}z15
+{36,50} .. {61,0}z16
+{61,0} .. {36,-49}z17
+{38,-51} .. {0,-93}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(19,484FX#,636FY#,14FY#);
+"dz";
+z1=(477FX,30FY);
+z2=(477FX,42FY);
+z3=(427FX,51FY);
+z4=(418FX,76FY);
+z5=(418FX,181FY);
+z6=(370FX,345FY);
+z7=(264FX,429FY);
+z8=(343FX,475FY);
+z9=(367FX,508FY);
+z10=(325FX,550FY);
+z11=(203FX,571FY);
+z12=(177FX,588FY);
+z13=(183FX,604FY);
+z14=(199FX,621FY);
+z15=(175FX,636FY);
+z16=(126FX,586FY);
+z17=(106FX,545FY);
+z18=(143FX,504FY);
+z19=(264FX,481FY);
+z20=(282FX,473FY);
+z21=(219FX,435FY);
+z22=(100FX,327FY);
+z23=(36FX,128FY);
+z24=(181FX,-14FY);
+z25=(340FX,64FY);
+z26=(340FX,-10FY);
+z27=(343FX,-13FY);
+z28=(413FX,11FY);
+z29=(340FX,209FY);
+z30=(339FX,88FY);
+z31=(217FX,41FY);
+z32=(121FX,146FY);
+z33=(237FX,412FY);
+z34=(312FX,337FY);
+z35=(340FX,209FY);
+FuF (z1
+-- z2
+{-22,-5} .. {-11,11}z3
+{-5,10} .. {-1,7}z4
+-- z5
+{0,62} .. {-32,47}z6
+{-29,44} .. {-42,12}z7
+{32,18} .. {21,12}z8
+{17,10} .. {-1,12}z9
+{-1,23} .. {-27,5}z10
+-- z11
+{-17,3} .. {0,9}z12
+{0,4} .. {4,7}z13
+-- z14
+-- z15
+-- z16
+{-13,-13} .. {0,-14}z17
+{0,-23} .. {24,-5}z18
+-- z19
+{12,-2} .. {0,-3}z20
+{0,1} .. {-42,-27}z21
+{-50,-32} .. {-30,-41}z22
+{-43,-58} .. {0,-74}z23
+{0,-96} .. {96,1}z24
+{56,1} .. {50,51}z25
+-- z26
+-- z27
+-- z28
+);
+FuF (z29
+-- z30
+{-39,-33} .. {-42,1}z31
+{-64,1} .. {0,69}z32
+{0,119} .. {77,58}z33
+{31,-13} .. {19,-36}z34
+{19,-37} .. {0,-48}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(20,520FX#,440FY#,205FY#);
+"gh";
+z1=(520FX,-205FY);
+z2=(520FX,-172FY);
+z3=(422FX,-173FY);
+z4=(422FX,298FY);
+z5=(304FX,440FY);
+z6=(146FX,363FY);
+z7=(146FX,438FY);
+z8=(140FX,440FY);
+z9=(67FX,414FY);
+z10=(9FX,397FY);
+z11=(9FX,381FY);
+z12=(43FX,388FY);
+z13=(67FX,370FY);
+z14=(70FX,322FY);
+z15=(70FX,62FY);
+z16=(56FX,23FY);
+z17=(12FX,14FY);
+z18=(12FX,0FY);
+z19=(211FX,0FY);
+z20=(211FX,14FY);
+z21=(164FX,24FY);
+z22=(149FX,62FY);
+z23=(149FX,334FY);
+z24=(190FX,364FY);
+z25=(265FX,388FY);
+z26=(343FX,298FY);
+z27=(343FX,-205FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,95} .. {-79,0}z5
+{-51,0} .. {-54,-52}z6
+-- z7
+-- z8
+-- z9
+-- z10
+-- z11
+{14,5} .. {8,0}z12
+{13,0} .. {3,-12}z13
+{2,-6} .. {0,-26}z14
+-- z15
+{0,-21} .. {-9,-5}z16
+{-10,-6} .. {-19,0}z17
+-- z18
+-- z19
+-- z20
+{-22,1} .. {-9,5}z21
+{-10,9} .. {0,16}z22
+-- z23
+{9,10} .. {18,10}z24
+{28,16} .. {22,0}z25
+{52,0} .. {0,-60}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(21,501FX#,629FY#,14FY#);
+"chmute";
+z1=(479FX,29FY);
+z2=(479FX,42FY);
+z3=(462FX,41FY);
+z4=(422FX,88FY);
+z5=(420FX,183FY);
+z6=(333FX,361FY);
+z7=(175FX,417FY);
+z8=(241FX,541FY);
+z9=(328FX,597FY);
+z10=(353FX,586FY);
+z11=(357FX,555FY);
+z12=(395FX,507FY);
+z13=(438FX,546FY);
+z14=(408FX,606FY);
+z15=(338FX,629FY);
+z16=(222FX,567FY);
+z17=(124FX,421FY);
+z18=(27FX,425FY);
+z19=(28FX,396FY);
+z20=(113FX,395FY);
+z21=(50FX,103FY);
+z22=(175FX,-14FY);
+z23=(269FX,12FY);
+z24=(346FX,67FY);
+z25=(347FX,-13FY);
+z26=(421FX,12FY);
+z27=(479FX,29FY);
+z28=(343FX,183FY);
+z29=(343FX,89FY);
+z30=(211FX,41FY);
+z31=(145FX,78FY);
+z32=(128FX,185FY);
+z33=(164FX,389FY);
+z34=(304FX,310FY);
+z35=(343FX,183FY);
+FuF (z1
+-- z2
+{-6,-1} .. {-6,0}z3
+{-26,0} .. {0,32}z4
+{0,54} .. {-1,10}z5
+{-10,78} .. {-49,41}z6
+{-42,35} .. {-63,2}z7
+{19,50} .. {26,33}z8
+{29,37} .. {28,0}z9
+{13,0} .. {4,-7}z10
+{3,-5} .. {0,-16}z11
+{1,-33} .. {24,1}z12
+{30,1} .. {-1,25}z13
+{0,25} .. {-20,15}z14
+{-19,15} .. {-28,0}z15
+{-37,0} .. {-41,-42}z16
+{-37,-38} .. {-28,-60}z17
+{-35,2} .. {-30,1}z18
+-- z19
+-- z20
+{-42,-104} .. {0,-91}z21
+{0,-79} .. {83,1}z22
+{30,1} .. {33,17}z23
+{31,15} .. {21,22}z24
+-- z25
+-- z26
+{28,10} .. {11,1}z27
+);
+FuF (z28
+-- z29
+{-42,-33} .. {-46,1}z30
+{-32,0} .. {-12,24}z31
+{-12,22} .. {0,49}z32
+{1,63} .. {23,73}z33
+{60,-2} .. {33,-51}z34
+{26,-39} .. {0,-45}z35
+);
+lbl (range 1 thru 35);
+endchar;
+
+beginchar(22,399FX#,645FY#,78FY#);
+"esimple";
+z1=(393FX,391FY);
+z2=(393FX,425FY);
+z3=(149FX,425FY);
+z4=(149FX,642FY);
+z5=(145FX,645FY);
+z6=(91FX,627FY);
+z7=(11FX,604FY);
+z8=(11FX,589FY);
+z9=(34FX,589FY);
+z10=(64FX,575FY);
+z11=(70FX,541FY);
+z12=(70FX,0FY);
+z13=(241FX,0FY);
+z14=(277FX,-31FY);
+z15=(212FX,-62FY);
+z16=(218FX,-78FY);
+z17=(257FX,-78FY);
+z18=(339FX,-64FY);
+z19=(366FX,-28FY);
+z20=(332FX,16FY);
+z21=(245FX,33FY);
+z22=(149FX,33FY);
+z23=(149FX,391FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{17,0} .. {3,-10}z10
+{4,-10} .. {0,-13}z11
+-- z12
+-- z13
+{25,0} .. {-1,-21}z14
+{0,-21} .. {-43,0}z15
+-- z16
+{8,-2} .. {18,1}z17
+{35,1} .. {20,9}z18
+{18,9} .. {0,15}z19
+{0,19} .. {-23,11}z20
+{-22,11} .. {-36,0}z21
+-- z22
+-- z23
+);
+lbl (range 1 thru 23);
+endchar;
+
+beginchar(23,501FX#,441FY#,205FY#);
+"article";
+z1=(479FX,0FY);
+z2=(479FX,14FY);
+z3=(437FX,23FY);
+z4=(422FX,76FY);
+z5=(422FX,298FY);
+z6=(312FX,441FY);
+z7=(146FX,363FY);
+z8=(146FX,438FY);
+z9=(140FX,440FY);
+z10=(9FX,397FY);
+z11=(9FX,381FY);
+z12=(47FX,387FY);
+z13=(70FX,345FY);
+z14=(70FX,-205FY);
+z15=(474FX,-205FY);
+z16=(474FX,-173FY);
+z17=(187FX,-173FY);
+z18=(158FX,-165FY);
+z19=(149FX,-139FY);
+z20=(149FX,334FY);
+z21=(272FX,389FY);
+z22=(343FX,298FY);
+z23=(343FX,75FY);
+z24=(327FX,19FY);
+z25=(283FX,14FY);
+z26=(283FX,0FY);
+FuF (z1
+-- z2
+{-22,1} .. {-6,5}z3
+{-10,8} .. {0,28}z4
+-- z5
+{0,95} .. {-73,0}z6
+{-55,0} .. {-55,-52}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{24,4} .. {1,0}z12
+{15,0} .. {0,-28}z13
+-- z14
+-- z15
+-- z16
+-- z17
+{-14,0} .. {-5,5}z18
+{-6,6} .. {0,12}z19
+-- z20
+{40,38} .. {42,-1}z21
+{47,-1} .. {0,-59}z22
+-- z23
+{0,-30} .. {-11,-7}z24
+{-6,-3} .. {-24,0}z25
+-- z26
+);
+lbl (range 1 thru 26);
+endchar;
+
+beginchar(24,624FX#,441FY#,204FY#);
+"th";
+z1=(614FX,217FY);
+z2=(614FX,250FY);
+z3=(546FX,250FY);
+z4=(546FX,277FY);
+z5=(489FX,392FY);
+z6=(347FX,441FY);
+z7=(239FX,418FY);
+z8=(146FX,364FY);
+z9=(146FX,439FY);
+z10=(140FX,441FY);
+z11=(67FX,415FY);
+z12=(10FX,398FY);
+z13=(10FX,382FY);
+z14=(43FX,388FY);
+z15=(67FX,376FY);
+z16=(70FX,350FY);
+z17=(70FX,-142FY);
+z18=(55FX,-180FY);
+z19=(11FX,-191FY);
+z20=(11FX,-204FY);
+z21=(211FX,-204FY);
+z22=(211FX,-191FY);
+z23=(149FX,-142FY);
+z24=(149FX,335FY);
+z25=(307FX,389FY);
+z26=(426FX,352FY);
+z27=(466FX,266FY);
+z28=(466FX,250FY);
+z29=(393FX,250FY);
+z30=(280FX,212FY);
+z31=(233FX,121FY);
+z32=(282FX,20FY);
+z33=(390FX,-16FY);
+z34=(496FX,25FY);
+z35=(546FX,120FY);
+z36=(546FX,217FY);
+z37=(467FX,119FY);
+z38=(443FX,42FY);
+z39=(390FX,15FY);
+z40=(339FX,46FY);
+z41=(317FX,121FY);
+z42=(339FX,193FY);
+z43=(392FX,217FY);
+z44=(467FX,217FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+{0,45} .. {-38,31}z5
+{-39,33} .. {-56,0}z6
+{-33,0} .. {-39,-15}z7
+{-39,-15} .. {-23,-21}z8
+-- z9
+-- z10
+-- z11
+-- z12
+-- z13
+{13,4} .. {9,0}z14
+{13,0} .. {3,-8}z15
+{2,-4} .. {0,-13}z16
+-- z17
+{0,-18} .. {-10,-7}z18
+{-10,-7} .. {-19,0}z19
+-- z20
+-- z21
+-- z22
+{-41,0} .. {0,33}z23
+-- z24
+{42,36} .. {63,0}z25
+{51,0} .. {29,-24}z26
+{26,-23} .. {0,-35}z27
+-- z28
+-- z29
+{-44,0} .. {-32,-25}z30
+{-31,-25} .. {0,-36}z31
+{0,-41} .. {32,-27}z32
+{30,-25} .. {42,1}z33
+{39,0} .. {31,27}z34
+{34,28} .. {0,36}z35
+-- z36
+);
+FuF (z37
+{0,-31} .. {-16,-20}z38
+{-14,-18} .. {-21,1}z39
+{-19,0} .. {-15,20}z40
+{-15,20} .. {0,30}z41
+{0,30} .. {14,18}z42
+{14,16} .. {22,0}z43
+-- z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(25,524FX#,645FY#,15FY#);
+"zh";
+z1=(524FX,391FY);
+z2=(524FX,425FY);
+z3=(426FX,425FY);
+z4=(426FX,642FY);
+z5=(421FX,645FY);
+z6=(368FX,627FY);
+z7=(287FX,604FY);
+z8=(287FX,589FY);
+z9=(311FX,589FY);
+z10=(342FX,580FY);
+z11=(347FX,544FY);
+z12=(347FX,425FY);
+z13=(244FX,425FY);
+z14=(98FX,368FY);
+z15=(39FX,227FY);
+z16=(103FX,51FY);
+z17=(259FX,-15FY);
+z18=(426FX,215FY);
+z19=(426FX,391FY);
+z20=(347FX,101FY);
+z21=(321FX,34FY);
+z22=(257FX,11FY);
+z23=(152FX,66FY);
+z24=(120FX,199FY);
+z25=(160FX,341FY);
+z26=(258FX,391FY);
+z27=(347FX,391FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+-- z7
+-- z8
+-- z9
+{18,0} .. {2,-5}z10
+{3,-6} .. {0,-18}z11
+-- z12
+-- z13
+{-58,0} .. {-40,-38}z14
+{-40,-39} .. {0,-55}z15
+{0,-73} .. {43,-45}z16
+{42,-44} .. {62,0}z17
+{111,0} .. {0,153}z18
+-- z19
+);
+FuF (z20
+{0,-28} .. {-17,-16}z21
+{-17,-16} .. {-26,0}z22
+{-46,0} .. {-24,37}z23
+{-22,34} .. {0,55}z24
+{1,60} .. {26,35}z25
+{25,34} .. {40,0}z26
+-- z27
+);
+lbl (range 1 thru 27);
+endchar;
+
+beginchar(26,386FX#,435FY#,209FY#);
+"sh";
+z1=(355FX,272FY);
+z2=(197FX,435FY);
+z3=(77FX,377FY);
+z4=(25FX,244FY);
+z5=(26FX,223FY);
+z6=(47FX,224FY);
+z7=(83FX,317FY);
+z8=(168FX,364FY);
+z9=(239FX,325FY);
+z10=(261FX,250FY);
+z11=(243FX,149FY);
+z12=(191FX,57FY);
+z13=(47FX,-88FY);
+z14=(7FX,-160FY);
+z15=(26FX,-196FY);
+z16=(64FX,-209FY);
+z17=(356FX,-209FY);
+z18=(356FX,-175FY);
+z19=(152FX,-175FY);
+z20=(107FX,-125FY);
+z21=(162FX,-15FY);
+z22=(219FX,41FY);
+z23=(334FX,184FY);
+z24=(355FX,272FY);
+FuF (z1
+{0,108} .. {-105,0}z2
+{-45,0} .. {-35,-39}z3
+{-35,-38} .. {0,-50}z4
+{0,-7} .. {1,-7}z5
+-- z6
+{-1,32} .. {25,30}z7
+{26,31} .. {31,0}z8
+{30,0} .. {17,-26}z9
+{14,-22} .. {0,-28}z10
+{0,-33} .. {-12,-34}z11
+{-13,-39} .. {-22,-22}z12
+-- z13
+{-26,-27} .. {0,-22}z14
+{0,-15} .. {13,-9}z15
+{11,-8} .. {14,0}z16
+-- z17
+-- z18
+-- z19
+{-30,0} .. {0,34}z20
+{0,37} .. {37,36}z21
+-- z22
+{56,55} .. {20,40}z23
+{14,27} .. {0,31}z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(27,291FX#,434FY#,204FY#);
+"ch";
+z1=(290FX,-204FY);
+z2=(290FX,-172FY);
+z3=(138FX,-172FY);
+z4=(96FX,-130FY);
+z5=(120FX,-70FY);
+z6=(161FX,-30FY);
+z7=(225FX,25FY);
+z8=(248FX,52FY);
+z9=(254FX,78FY);
+z10=(231FX,125FY);
+z11=(189FX,158FY);
+z12=(157FX,173FY);
+z13=(109FX,223FY);
+z14=(102FX,265FY);
+z15=(102FX,277FY);
+z16=(104FX,292FY);
+z17=(221FX,411FY);
+z18=(218FX,434FY);
+z19=(85FX,367FY);
+z20=(24FX,228FY);
+z21=(53FX,143FY);
+z22=(97FX,112FY);
+z23=(146FX,86FY);
+z24=(175FX,65FY);
+z25=(187FX,44FY);
+z26=(185FX,35FY);
+z27=(183FX,30FY);
+z28=(180FX,25FY);
+z29=(104FX,-38FY);
+z30=(59FX,-78FY);
+z31=(4FX,-155FY);
+z32=(18FX,-193FY);
+z33=(54FX,-204FY);
+FuF (z1
+-- z2
+-- z3
+{-29,5} .. {1,23}z4
+{0,22} .. {15,18}z5
+{10,11} .. {18,15}z6
+-- z7
+{11,10} .. {5,8}z8
+{4,8} .. {0,9}z9
+{0,17} .. {-16,15}z10
+{-15,14} .. {-13,7}z11
+{-21,10} .. {-1,1}z12
+{-23,11} .. {-9,22}z13
+{-5,12} .. {0,16}z14
+-- z15
+{1,5} .. {0,5}z16
+{12,63} .. {66,16}z17
+-- z18
+{-47,0} .. {-41,-44}z19
+{-42,-45} .. {1,-47}z20
+{0,-36} .. {19,-21}z21
+{9,-10} .. {20,-11}z22
+{17,-9} .. {16,-9}z23
+{16,-9} .. {4,-5}z24
+{8,-8} .. {0,-6}z25
+-- z26
+{-1,-1} .. {0,-2}z27
+{-1,-1} .. {-1,-2}z28
+-- z29
+{-21,-17} .. {-10,-9}z30
+{-37,-34} .. {0,-17}z31
+{1,-19} .. {9,-6}z32
+{9,-8} .. {15,0}z33
+);
+lbl (range 1 thru 33);
+endchar;
+
+beginchar(28,499FX#,441FY#,0FY#);
+"rhard";
+z1=(463FX,0FY);
+z2=(463FX,33FY);
+z3=(309FX,33FY);
+z4=(404FX,149FY);
+z5=(444FX,309FY);
+z6=(408FX,402FY);
+z7=(304FX,440FY);
+z8=(215FX,414FY);
+z9=(146FX,364FY);
+z10=(146FX,439FY);
+z11=(140FX,441FY);
+z12=(67FX,415FY);
+z13=(10FX,398FY);
+z14=(10FX,382FY);
+z15=(43FX,389FY);
+z16=(70FX,337FY);
+z17=(70FX,62FY);
+z18=(55FX,22FY);
+z19=(12FX,14FY);
+z20=(12FX,0FY);
+z21=(211FX,0FY);
+z22=(211FX,14FY);
+z23=(164FX,24FY);
+z24=(149FX,62FY);
+z25=(149FX,335FY);
+z26=(203FX,372FY);
+z27=(265FX,389FY);
+z28=(359FX,286FY);
+z29=(257FX,19FY);
+z30=(257FX,0FY);
+FuF (z1
+-- z2
+-- z3
+{44,43} .. {19,34}z4
+{27,47} .. {0,60}z5
+{0,38} .. {-24,24}z6
+{-25,26} .. {-45,0}z7
+{-26,0} .. {-33,-17}z8
+{-30,-16} .. {-16,-18}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+{14,5} .. {7,0}z15
+{18,0} .. {0,-35}z16
+-- z17
+{0,-20} .. {-10,-7}z18
+{-8,-5} .. {-21,0}z19
+-- z20
+-- z21
+-- z22
+{-22,1} .. {-10,5}z23
+{-10,9} .. {0,17}z24
+-- z25
+{12,13} .. {24,11}z26
+{25,12} .. {16,0}z27
+{63,0} .. {0,-68}z28
+{0,-120} .. {-68,-58}z29
+-- z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(29,500FX#,624FY#,14FY#);
+"ts";
+z1=(463FX,391FY);
+z2=(463FX,425FY);
+z3=(360FX,425FY);
+z4=(316FX,465FY);
+z5=(181FX,585FY);
+z6=(179FX,594FY);
+z7=(187FX,599FY);
+z8=(227FX,599FY);
+z9=(227FX,624FY);
+z10=(58FX,624FY);
+z11=(48FX,593FY);
+z12=(103FX,557FY);
+z13=(241FX,432FY);
+z14=(240FX,429FY);
+z15=(103FX,370FY);
+z16=(47FX,214FY);
+z17=(99FX,53FY);
+z18=(240FX,-14FY);
+z19=(392FX,58FY);
+z20=(445FX,217FY);
+z21=(385FX,391FY);
+z22=(360FX,189FY);
+z23=(333FX,63FY);
+z24=(254FX,12FY);
+z25=(158FX,91FY);
+z26=(133FX,257FY);
+z27=(162FX,362FY);
+z28=(232FX,399FY);
+z29=(319FX,348FY);
+z30=(360FX,189FY);
+FuF (z1
+-- z2
+-- z3
+{-7,7} .. {-22,20}z4
+-- z5
+{-2,2} .. {1,4}z6
+{2,3} .. {4,0}z7
+-- z8
+-- z9
+-- z10
+-- z11
+{22,-10} .. {15,-14}z12
+-- z13
+-- z14
+{-56,0} .. {-36,-40}z15
+{-37,-40} .. {0,-64}z16
+{0,-64} .. {34,-43}z17
+{35,-44} .. {59,0}z18
+{62,0} .. {39,48}z19
+{36,45} .. {0,61}z20
+{0,67} .. {-40,49}z21
+);
+FuF (z22
+{0,-53} .. {-17,-31}z23
+{-19,-34} .. {-34,0}z24
+{-44,0} .. {-21,52}z25
+{-17,43} .. {1,68}z26
+{0,44} .. {19,25}z27
+{18,25} .. {28,0}z28
+{34,0} .. {24,-34}z29
+{28,-39} .. {0,-67}z30
+);
+lbl (range 1 thru 30);
+endchar;
+
+beginchar(30,734FX#,645FY#,204FY#);
+"ph";
+z1=(710FX,0FY);
+z2=(710FX,14FY);
+z3=(666FX,23FY);
+z4=(655FX,69FY);
+z5=(655FX,299FY);
+z6=(625FX,398FY);
+z7=(543FX,438FY);
+z8=(468FX,420FY);
+z9=(402FX,374FY);
+z10=(402FX,642FY);
+z11=(397FX,645FY);
+z12=(343FX,627FY);
+z13=(263FX,604FY);
+z14=(263FX,589FY);
+z15=(287FX,589FY);
+z16=(318FX,576FY);
+z17=(323FX,541FY);
+z18=(323FX,93FY);
+z19=(288FX,55FY);
+z20=(217FX,35FY);
+z21=(149FX,122FY);
+z22=(149FX,425FY);
+z23=(4FX,425FY);
+z24=(4FX,410FY);
+z25=(53FX,401FY);
+z26=(70FX,356FY);
+z27=(70FX,126FY);
+z28=(96FX,29FY);
+z29=(190FX,-14FY);
+z30=(323FX,53FY);
+z31=(323FX,-142FY);
+z32=(309FX,-181FY);
+z33=(264FX,-191FY);
+z34=(264FX,-204FY);
+z35=(464FX,-204FY);
+z36=(464FX,-191FY);
+z37=(417FX,-180FY);
+z38=(402FX,-142FY);
+z39=(402FX,321FY);
+z40=(436FX,366FY);
+z41=(506FX,390FY);
+z42=(558FX,370FY);
+z43=(576FX,303FY);
+z44=(576FX,0FY);
+FuF (z1
+-- z2
+{-22,0} .. {-8,6}z3
+{-7,7} .. {0,23}z4
+-- z5
+{0,39} .. {-20,27}z6
+{-20,28} .. {-34,-1}z7
+{-25,0} .. {-25,-12}z8
+{-25,-11} .. {-19,-19}z9
+-- z10
+-- z11
+-- z12
+-- z13
+-- z14
+-- z15
+{17,0} .. {3,-10}z16
+{3,-10} .. {0,-13}z17
+-- z18
+{0,-11} .. {-23,-14}z19
+{-23,-14} .. {-24,0}z20
+{-45,1} .. {0,58}z21
+-- z22
+-- z23
+-- z24
+{23,-1} .. {10,-5}z25
+{11,-7} .. {0,-23}z26
+-- z27
+{0,-41} .. {17,-23}z28
+{21,-29} .. {42,0}z29
+{43,1} .. {46,44}z30
+-- z31
+{0,-21} .. {-9,-6}z32
+{-9,-6} .. {-21,0}z33
+-- z34
+-- z35
+-- z36
+{-22,1} .. {-9,6}z37
+{-10,9} .. {0,17}z38
+-- z39
+{0,15} .. {23,16}z40
+{24,16} .. {23,0}z41
+{24,0} .. {11,-13}z42
+{12,-15} .. {0,-29}z43
+-- z44
+);
+lbl (range 1 thru 44);
+endchar;
+
+beginchar(31,485FX#,441FY#,14FY#);
+"osimple";
+z1=(453FX,217FY);
+z2=(391FX,381FY);
+z3=(236FX,441FY);
+z4=(87FX,374FY);
+z5=(27FX,214FY);
+z6=(86FX,53FY);
+z7=(239FX,-14FY);
+z8=(397FX,58FY);
+z9=(453FX,217FY);
+z10=(368FX,189FY);
+z11=(336FX,62FY);
+z12=(252FX,12FY);
+z13=(144FX,93FY);
+z14=(112FX,258FY);
+z15=(149FX,377FY);
+z16=(228FX,414FY);
+z17=(331FX,348FY);
+z18=(368FX,189FY);
+FuF (z1
+{0,68} .. {-41,41}z2
+{-40,40} .. {-63,0}z3
+{-59,0} .. {-40,-44}z4
+{-40,-45} .. {0,-62}z5
+{0,-63} .. {39,-44}z6
+{41,-45} .. {62,0}z7
+{65,0} .. {40,48}z8
+{37,44} .. {0,62}z9
+);
+FuF (z10
+{0,-52} .. {-21,-33}z11
+{-21,-33} .. {-35,0}z12
+{-47,0} .. {-25,54}z13
+{-21,45} .. {0,65}z14
+{0,50} .. {24,29}z15
+{22,25} .. {31,0}z16
+{43,0} .. {26,-44}z17
+{24,-42} .. {0,-64}z18
+);
+lbl (range 1 thru 18);
+endchar;
+
+beginchar(32,571FX#,643FY#,14FY#);
+"ev";
+z1=(565FX,0FY);
+z2=(565FX,28FY);
+z3=(422FX,28FY);
+z4=(422FX,425FY);
+z5=(285FX,425FY);
+z6=(285FX,411FY);
+z7=(332FX,395FY);
+z8=(343FX,353FY);
+z9=(343FX,93FY);
+z10=(219FX,35FY);
+z11=(149FX,131FY);
+z12=(149FX,641FY);
+z13=(144FX,643FY);
+z14=(91FX,625FY);
+z15=(10FX,602FY);
+z16=(10FX,587FY);
+z17=(34FX,588FY);
+z18=(64FX,573FY);
+z19=(70FX,538FY);
+z20=(70FX,145FY);
+z21=(179FX,-14FY);
+z22=(286FX,16FY);
+z23=(347FX,67FY);
+z24=(347FX,0FY);
+FuF (z1
+-- z2
+-- z3
+-- z4
+-- z5
+-- z6
+{23,-3} .. {8,-7}z7
+{7,-8} .. {0,-20}z8
+-- z9
+{-41,-39} .. {-42,0}z10
+{-47,0} .. {0,64}z11
+-- z12
+-- z13
+-- z14
+-- z15
+-- z16
+-- z17
+{17,1} .. {3,-11}z18
+{4,-9} .. {0,-14}z19
+-- z20
+{0,-106} .. {73,0}z21
+{37,0} .. {34,20}z22
+{27,15} .. {14,19}z23
+-- z24
+);
+lbl (range 1 thru 24);
+endchar;
+
+beginchar(127,419FX#,637FY#,7FY#);
+"question";
+z1=(391FX,484FY);
+z2=(384FX,536FY);
+z3=(356FX,583FY);
+z4=(296FX,622FY);
+z5=(218FX,637FY);
+z6=(111FX,602FY);
+z7=(64FX,503FY);
+z8=(74FX,458FY);
+z9=(111FX,443FY);
+z10=(139FX,455FY);
+z11=(148FX,483FY);
+z12=(130FX,519FY);
+z13=(112FX,553FY);
+z14=(140FX,591FY);
+z15=(201FX,609FY);
+z16=(277FX,573FY);
+z17=(303FX,490FY);
+z18=(278FX,373FY);
+z19=(260FX,333FY);
+z20=(245FX,295FY);
+z21=(222FX,230FY);
+z22=(215FX,189FY);
+z23=(214FX,155FY);
+z24=(230FX,155FY);
+z25=(245FX,219FY);
+z26=(271FX,271FY);
+z27=(295FX,303FY);
+z28=(330FX,346FY);
+z29=(373FX,417FY);
+z30=(391FX,484FY);
+z31=(275FX,40FY);
+z32=(259FX,76FY);
+z33=(223FX,92FY);
+z34=(188FX,77FY);
+z35=(174FX,40FY);
+z36=(188FX,5FY);
+z37=(223FX,-7FY);
+z38=(259FX,5FY);
+z39=(275FX,40FY);
+FuF (z1
+{-1,18} .. {-4,17}z2
+{-8,19} .. {-11,12}z3
+{-13,16} .. {-26,10}z4
+{-27,10} .. {-25,0}z5
+{-42,0} .. {-29,-24}z6
+{-32,-25} .. {1,-41}z7
+{0,-17} .. {6,-13}z8
+{7,-11} .. {17,1}z9
+{13,0} .. {6,8}z10
+{6,8} .. {0,10}z11
+{-1,12} .. {-11,12}z12
+{-12,15} .. {0,8}z13
+{0,14} .. {18,11}z14
+{21,13} .. {20,0}z15
+{32,-1} .. {18,-24}z16
+{18,-23} .. {0,-32}z17
+{0,-34} .. {-18,-44}z18
+{-7,-18} .. {-4,-9}z19
+{-7,-17} .. {-3,-8}z20
+{-10,-23} .. {-5,-21}z21
+{-5,-18} .. {0,-10}z22
+{-1,-4} .. {0,-19}z23
+-- z24
+{5,25} .. {5,17}z25
+{10,25} .. {8,10}z26
+-- z27
+-- z28
+{16,20} .. {12,27}z29
+{12,28} .. {0,17}z30
+);
+FuF (z31
+{0,15} .. {-11,9}z32
+{-11,11} .. {-13,0}z33
+{-13,-1} .. {-10,-9}z34
+{-10,-10} .. {0,-15}z35
+{0,-15} .. {10,-8}z36
+{11,-9} .. {12,0}z37
+{15,1} .. {9,8}z38
+{11,9} .. {-1,15}z39
+);
+lbl (range 1 thru 39);
+endchar;
+
+
+
+
+
+%%% ligatures and kerning
+
+
+ligtable 101:
+39=:22,
+118=:32;
+
+ligtable 69:
+39=:6;
+
+ligtable 117:
+39=:23;
+
+ligtable 116:
+39=:24,
+104=:24;
+
+ligtable 84:
+39=:8,
+104=:8,
+72=:8;
+
+ligtable 100:
+122=:19;
+
+ligtable 74:
+39=:5;
+
+ligtable 115:
+104=:26;
+
+ligtable 83:
+104=:10,
+72=:10;
+
+ligtable 99:
+39=:29,
+104=:27;
+
+ligtable 67:
+39=:13,
+104=:11,
+72=:11;
+
+ligtable 114:
+39=:28;
+
+ligtable 111:
+39=:31;
+
+ligtable 79:
+39=:15;
+
+ligtable 39:
+39=:34;
+
+ligtable 96:
+96=:92;
+
+ligtable 60:
+60=:60;
+
+ligtable 62:
+62=:62;
+
+ligtable 45:
+45=:123;
+
+ligtable 123:
+45=:125;
+
+ligtable 27:
+121 kern 67FX#;
+
+ligtable 26:
+121 kern 40FX#;
+
+ligtable 23:
+121 kern 40FX#;
+
+ligtable 20:
+121 kern 67FX#;
+
+ligtable 12:
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 9:
+81 kern -67FX#;
+
+ligtable 8:
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 4:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 124:
+25 kern -103FX#,
+122 kern -103FX#,
+121 kern -103FX#,
+119 kern -103FX#,
+118 kern -103FX#,
+117 kern -103FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -103FX#,
+115 kern -103FX#,
+28 kern -103FX#,
+114 kern -103FX#,
+113 kern -103FX#,
+30 kern -103FX#,
+112 kern -103FX#,
+31 kern -103FX#,
+111 kern -103FX#,
+109 kern -103FX#,
+108 kern -103FX#,
+106 kern -103FX#,
+20 kern -103FX#,
+103 kern -103FX#,
+102 kern -121FX#,
+19 kern -121FX#,
+100 kern -121FX#,
+21 kern -103FX#,
+27 kern -103FX#,
+99 kern -103FX#,
+98 kern -103FX#,
+23 kern -103FX#,
+97 kern -103FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -94FX#,
+85 kern -148FX#,
+12 kern -148FX#,
+82 kern -148FX#,
+81 kern -94FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -148FX#,
+79 kern -148FX#,
+78 kern 44FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -148FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -148FX#,
+7 kern -148FX#;
+
+ligtable 122:
+121 kern 67FX#;
+
+ligtable 118:
+121 kern 67FX#;
+
+ligtable 112:
+39=:30,
+104=:30,
+121 kern 40FX#;
+
+ligtable 108:
+121 kern 67FX#;
+
+ligtable 107:
+121 kern 40FX#;
+
+ligtable 106:
+39=:21,
+121 kern 40FX#;
+
+ligtable 103:
+39=:25,
+104=:20,
+121 kern 40FX#;
+
+ligtable 88:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 87:
+81 kern -67FX#;
+
+ligtable 86:
+86 kern -89FX#,
+10 kern -53FX#,
+83 kern -53FX#,
+14 kern -62FX#,
+80 kern -62FX#,
+78 kern -62FX#,
+77 kern -62FX#,
+75 kern -62FX#,
+72 kern -62FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -62FX#,
+3 kern -53FX#,
+68 kern -53FX#,
+65 kern -62FX#;
+
+ligtable 85:
+39=:7,
+81 kern -67FX#;
+
+ligtable 82:
+39=:12,
+81 kern -67FX#;
+
+ligtable 80:
+39=:14,
+104=:14,
+72=:14,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -67FX#;
+
+ligtable 77:
+25 kern -76FX#,
+122 kern -76FX#,
+121 kern -76FX#,
+119 kern -76FX#,
+118 kern -76FX#,
+117 kern -76FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -76FX#,
+115 kern -76FX#,
+28 kern -76FX#,
+114 kern -76FX#,
+113 kern -76FX#,
+30 kern -76FX#,
+112 kern -76FX#,
+31 kern -76FX#,
+111 kern -76FX#,
+109 kern -76FX#,
+108 kern -76FX#,
+106 kern -76FX#,
+20 kern -76FX#,
+103 kern -76FX#,
+102 kern -67FX#,
+19 kern -67FX#,
+100 kern -67FX#,
+21 kern -76FX#,
+27 kern -76FX#,
+99 kern -76FX#,
+98 kern -76FX#,
+23 kern -76FX#,
+97 kern -76FX#,
+86 kern -76FX#,
+81 kern -67FX#,
+70 kern -76FX#;
+
+ligtable 76:
+86 kern -184FX#,
+10 kern -103FX#,
+83 kern -103FX#,
+14 kern -134FX#,
+80 kern -134FX#,
+78 kern -134FX#,
+77 kern -134FX#,
+75 kern -134FX#,
+72 kern -134FX#,
+4 kern -184FX#,
+71 kern -184FX#,
+70 kern -134FX#,
+3 kern -103FX#,
+68 kern -103FX#,
+65 kern -134FX#;
+
+ligtable 71:
+39=:9,
+104=:4,
+72=:4,
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 70:
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#;
+
+ligtable 68:
+122=:3,
+90=:3,
+81 kern 40FX#,
+78 kern -67FX#,
+75 kern -67FX#,
+72 kern -130FX#,
+4 kern -67FX#,
+71 kern -67FX#;
+
+ligtable 63:
+25 kern -202FX#,
+122 kern -202FX#,
+121 kern -202FX#,
+119 kern -202FX#,
+118 kern -202FX#,
+117 kern -202FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -202FX#,
+115 kern -202FX#,
+28 kern -202FX#,
+114 kern -202FX#,
+113 kern -202FX#,
+30 kern -202FX#,
+112 kern -202FX#,
+31 kern -202FX#,
+111 kern -202FX#,
+109 kern -202FX#,
+108 kern -202FX#,
+106 kern -202FX#,
+20 kern -202FX#,
+103 kern -202FX#,
+102 kern -121FX#,
+19 kern -121FX#,
+100 kern -121FX#,
+21 kern -202FX#,
+27 kern -202FX#,
+99 kern -202FX#,
+98 kern -202FX#,
+23 kern -202FX#,
+97 kern -202FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -193FX#,
+85 kern -148FX#,
+12 kern -148FX#,
+82 kern -148FX#,
+81 kern -193FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -148FX#,
+79 kern -148FX#,
+78 kern 44FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -148FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -148FX#,
+7 kern -148FX#;
+
+ligtable 33:
+25 kern -139FX#,
+122 kern -139FX#,
+121 kern -139FX#,
+119 kern -139FX#,
+118 kern -139FX#,
+117 kern -139FX#,
+29 kern -49FX#,
+24 kern -49FX#,
+116 kern -49FX#,
+26 kern -139FX#,
+115 kern -139FX#,
+28 kern -139FX#,
+114 kern -139FX#,
+113 kern -139FX#,
+30 kern -139FX#,
+112 kern -139FX#,
+31 kern -139FX#,
+111 kern -139FX#,
+109 kern -139FX#,
+108 kern -139FX#,
+106 kern -139FX#,
+20 kern -139FX#,
+103 kern -139FX#,
+102 kern -121FX#,
+19 kern -121FX#,
+100 kern -121FX#,
+21 kern -139FX#,
+27 kern -139FX#,
+99 kern -139FX#,
+98 kern -139FX#,
+23 kern -139FX#,
+97 kern -139FX#,
+9 kern -89FX#,
+90 kern -89FX#,
+89 kern -89FX#,
+86 kern -130FX#,
+85 kern -148FX#,
+12 kern -148FX#,
+82 kern -148FX#,
+81 kern -130FX#,
+14 kern -89FX#,
+80 kern -89FX#,
+15 kern -148FX#,
+79 kern -148FX#,
+78 kern 44FX#,
+74 kern -89FX#,
+4 kern -89FX#,
+71 kern -89FX#,
+70 kern -148FX#,
+3 kern -89FX#,
+68 kern -89FX#,
+5 kern -89FX#,
+11 kern -89FX#,
+67 kern -89FX#,
+66 kern -148FX#,
+7 kern -148FX#;
+
+font_slant := 0.1700;
+font_normal_space := 333 * FX#;
+font_normal_stretch := 167 * FX#;
+font_normal_shrink := 111 * FX#;
+font_x_height := 431 * FY#;
+font_quad := 1000 * FX#;
+font_extra_space := 0.0000;
+
+designsize := FontSize;
+font_coding_scheme := "TeX text";
+font_identifier := "artmsl10";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/armenian/ps2mfbas.mf b/Master/texmf-dist/fonts/source/public/armenian/ps2mfbas.mf
new file mode 100644
index 00000000000..9fc2791e56c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/armenian/ps2mfbas.mf
@@ -0,0 +1,37 @@
+% ps2mfbase.mf
+def nonzerowinding =
+ cull currentpicture dropping (0,0);
+enddef;
+extra_endchar := extra_endchar & "nonzerowinding;";
+%
+smoothing := 0; autorounding := 0;
+turningcheck := 0;
+define_pixels (FX, FY);
+%
+picture chp[];
+pair p[];
+%
+def seac (expr achar, bchar, adx, ady) =
+ currentpicture := chp[bchar] + chp[achar] shifted (adx * FX, ady * FY);
+enddef;
+def endseacchar =
+ endgroup
+enddef;
+%
+def FuF (expr p_path) =
+ path this_path;
+ this_path = (p_path -- cycle);
+% fill (this_path xscaled FX yscaled FY);
+ fill (this_path);
+enddef;
+%
+vardef lbl@#(text t) =
+ if proofing > 1:
+ forsuffixes $$=b,:
+ forsuffixes $=t:
+ makelabel@# (str$.$$, z$.$$);
+ endfor
+ endfor
+ fi
+enddef;
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/astro/astrosym.cal b/Master/texmf-dist/fonts/source/public/astro/astrosym.cal
new file mode 100644
index 00000000000..bf259b7ed09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/astro/astrosym.cal
@@ -0,0 +1,491 @@
+% ASTROSYM.CAL : AstroSym (Version 2.20, Aug. 10, 2002) - file 5 of 8
+% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at
+% Institute of Mathematics, University of Vienna Vienna, Austria
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(O+0,U#,U#,0u#); "Sol";
+ D:=2P; % diameter of central circle
+ corners; centers;
+ PEN; draw BC..CL..TC..CR..BC..cycle; % main circle
+ Pen; draw fullcircle scaled D shifted CC; % central circle
+ endchar;
+
+beginchar(O+1,46u#,80u#,16u#); "Mercurius";
+ corners; centers;
+ VV:=(CC-CL) rotated 90;
+ bC := CC-VV;
+ VV:=2VV+vP/3;
+ tL:=CL+VV; tC:=CC+VV; tR:=CR+VV;
+ R:=length(tL-hd-tC); % upper circle: outer radius
+ s:=length(TC+vd-tC); a:= angle(R+-+s,s); % upper partial sector: angle
+ Tl:= (tL-hd) rotatedaround (tC,-a); % upper circle: outer endpoints
+ Tr:= (tR+hd) rotatedaround (tC, a);
+ tl:= (tL+hd) rotatedaround (tC,-a+10); % upper circle: inner endpoints
+ tr:= (tR-hd) rotatedaround (tC, a-10);
+ D:=length(CR-CL); % central circle: diameter
+ SPEN; cross (bC,BC, 3/2,-2P); % bottom cross
+ PEN;
+ draw fullcircle scaled D shifted CC; % central circle
+ Pen; Fill
+ ( Tl..(tL-hd){down}..{up}(tR+hd)..Tr % upper circle: outside
+ & Tr--tr
+ & tr..(tR-hd){down}..{up}(tL+hd)..tl % upper circle: inside
+ & tl--Tl--cycle
+ );
+ endchar;
+
+beginchar(O+5,44u#,70u#,0u#); "Iuppiter";
+ Corners (P,0,0,P); Centers (2/3,2/7); Top (6/7);
+ RPEN; draw tC--BC; % right vertical bar
+ RPEN rotated 90; draw (CL+hd)--CR; % horizontal bar
+ Pen; Fill % left vertical arc
+ ( (CL-vd-hd){tC-CL}..{TL-CC}(TL+(1-sqrt2)*vP-hd) % - left
+ & (TL+(1-sqrt2)*vP-hd)--(TL+vd-(1-sqrt2)*hP) % - top
+ & (TL+vd-(1-sqrt2)*hP){CC-TL}..{CL-tC}(CL-vd+hd) % - right
+ & (CL-vd+hd)--(CL-vd-hd) % - bottom
+ & (CL-vd-hd)..cycle
+ );
+ endchar;
+
+beginchar(O+6,44u#,72u#,12u#); "Saturnus";
+ Corners (P,P,d+P,P);
+ Centers (1/6,5/9); % BC and TC : left vertical bar
+ RT (1/2,1); % bR : right arc (right)
+ HOR (0,1/3); Top (6/7); % tl and tr : upper horizontal bar
+ BOT (2/3,7/9); Bl:=Bl-vd; % Bl
+ Br:=Br-(0,d)+((P-(P*sqrt(2))*sind(45+20),0) rotated -70); % Br
+ SPEN; draw tl--tr; draw BC--TC; % left cross
+ PEN; draw CC{dir 20}..{down}bR..{dir250}Bl..{dir-70}Br; % right arc
+ RPEN rotated 20; draw Br--(Br+(hP rotated -70)); % sharpen arc end
+ endchar;
+
+beginchar(O+11,1U#,72u#,2u#); "Aries";
+ Corners(p,p,p+d,p);
+ BOT (1/2,1/2);
+ % upper boundary :
+ vv:=7vd; % estimated correction
+ bl:=Bl+vv; br:=Br+vv; % bl = br : lower middle point
+ TOP (1/6,5/6); % (temporary) Tl and Tr : upper arcs (tops)
+ HH:= Tl-TL; VV:= HH rotated -90;
+ tr:=Tr+VV; % tr : right upper halfcircle (centre)
+ D:=length(tr-br); R:=length(HH); s:=D+-+R; % calculating direction of bar
+ b:=angle(s,R); b:=b+angle(tr-br);
+ Tr:=tr+(HH rotated (b+90)); % Tr : (left endpoint)
+ tR:=tr+(HH rotated (b-90)); % tR : (right endpoint)
+ tl:=Tl+VV; a:=180-b; % tl : left upper halfcircle (centre)
+ Tl:=tl+(HH rotated (a-90)); % Tl : (right endpoint)
+ tL:=tl+(HH rotated (a+90)); % tL : (left endpoint)
+ % lower boundary :
+ s:=2(P-p)/sind(90-b); % caculating |Bl-bl|
+ Bl:= bl-(0,s); Br:=br-(0,s);
+ t:=2(P-p)/length(HH);
+ tl:=Tl-t*(HH rotated (a-90)); % left upper halfcircle: right endpoint
+ tr:=Tr-t*(HH rotated (b+90)); % right upper halfcircle: left endpoint
+ Pen; Fill
+ ( bl--Tl{dir a}..{dir (a-180)}tL % left part: upper boundary
+ & tL..(tL+(1,0)) % avoiding strange path
+ {dir (a-6)}..{dir (a-180)}tl--Bl % left part: lower boundary
+ & Bl--bl..cycle
+ );
+ Fill
+ ( br--Tr{dir b}..{dir (b-180)}tR % right part: upper boundary
+ & tR..(tR-(1,0)) % avoiding strange path
+ {dir (b+6)}..{dir (b-180)}tr--Br % right part: lower boundary
+ & Br--br..cycle
+ );
+ endchar;
+
+beginchar(O+12,1U#,72u#,8u#); "Taurus";
+ Corners(P,P,P,p);
+ Centers (1/2,5/9); % BC and CC : lower circle (top and bottom)
+ HOR (1/8,7/8); % Tl and Tr : upper arcs (tops)
+ Bot (5/18); % bl and br : lower circle (left and right)
+ LFT (0,4/5); RT (0,4/5); % tL and tR : upper arcs (left and right)
+ Pen; Fill
+ ( Tl{dir 223}..{down}(tL-hd)..(CC-vd) % left upper arc: outside
+ ..(br-hd)..(BC+vd)..(bl+hd)..(CC-vd) % lower circle: inside
+ ..{up}(tR+hd)..{dir 137}Tr % right upper arc: outside
+ & Tr{dir -47}..{down}(tR-hd/2+vd/2)..(CC+vd) % right upper arc: inside
+ ..(bl-hd)..(BC-vd)..(br+hd)..(CC+vd) % lower circle: outside
+ ..{up}(tL+hd/2+vd/2)..{dir 47}Tl % left upper arc: inside
+ & Tl..Tl..cycle
+ );
+ endchar;
+
+beginchar(O+13,56u#,72u#,8u#); "Gemini";
+ Corners (p,p,p,p);
+ HOR (2/7,5/7);
+ Top (7/8); Bot (1/8);
+ Pen; Fill ( BL..(bl-vd)..(br-vd)..BR % bottom arc: lower boundary
+ & BR..(br+vd)..(bl+vd)..BL % bottom arc: upper boundary
+ & BL--cycle
+ );
+ Fill ( TL..(tl-vd)..(tr-vd)..TR % top arc: lower boundary
+ & TR..(tr+vd)..(tl+vd)..TL % top arc: upper boundary
+ & TL--cycle
+ );
+ RPEN; draw tl--bl; draw tr--br; % left and right vertical bar
+ endchar;
+
+beginchar(O+14,80u#,68u#,0u#); "Cancer";
+ corners; centers;
+ Cl:=2/7[CL,CR]; RT (0,4/5);
+ PEN; draw CL{up}..{down}Cl..{up}CL; % left circle
+ Pen; Fill ( (CL-hd){up}..{right}(TC+vd)..tR % upper arc: upper boundary
+ & tR..{left}(TC-vd/2)..{down}(CL+hd) % upper arc: lower boundary
+ & (CL+hd)--(CL-hd)..cycle
+ );
+ picture upper; upper := currentpicture; % adding rotated copy
+ addto currentpicture also upper rotated 180 shifted 2CC;
+ endchar;
+
+beginchar(O+15,68u#,80u#,10u#); "Leo";
+ Corners(P,p,d+P,P); centers; % TC
+ HOR (1/6,17/20); Top (3/4); % tl and tr : main arc (left and right)
+ BOT (1/3,2/3); rr:=(Bl-BL)/2;
+ bL:=BL+(rr rotated 90); bl:=bL+2rr; % bL and bl : lower left circle
+ Br:=BR+hd-(2d,0)-vP; BR:=BR-vP; % Br and BR : lower right arc
+ PEN; draw bL{down}..{up}bl % lower left circle: lower arc
+ ..{up}tl..{right}TC..{down}tr..{down}Br; % main arc
+ Pen; Fill % lower right arc
+ ( (Br-hd){down}..{up}BR % outside
+ & BR{dir265}..{up}(Br+hd) % inside
+ & (Br+hd)--(Br-hd)..cycle
+ );
+ Fill ( (bL+hd){up}..bl % lower left circle: upper arc, ouside
+ & bl{up}..{down}(bL-hd) % inside
+ & (bL-hd)--(bL+hd)..cycle
+ );
+ endchar;
+
+beginchar(O+16,100u#,68u#,10u#); "Virgo";
+ Corners (P,P,d,0);
+ LFT (0,3/4); % tL : left upper arc (left end)
+ HOR (1/3,2/3); Top (3/4); % tl and tr : upper arcs (endpoints)
+ TOP (4/14,4/14+1/3); % Tl and Tr : upper arcs (tops)
+ RT (1/5,3/4); % tR : right upper arc (right end)
+ % bR and tR : right vertical bar (ends)
+ TR:=(4/14+2/3)[TL,TR]; % TR : right upper arc (top)
+ bC:=.5[Bl,Br]-(0,d/2); % bC : lower right stroke (endpoint)
+ br:=Br-(0,d); % br : middle right bar (lower end)
+ Br:=Br+vP; % Br : lower right vertical stroke (left)
+ BR:=2/3[Br,BR+vP]; % BR : lower right vertical stroke (right)
+ RPEN; draw TL--BL; draw tl--Bl; draw tr--br; draw tR--bR; % vertical bars
+ Pen; Fill % left upper arc
+ ( tL{dir 42}..{right}(Tl-4vp)..{down}(tl+hd) % upper boundary
+ & (tl+hd)--(tl-hd)
+ & (tl-hd){up}..(Tl-2vP-2vp)..{dir 215}tL..cycle % lower boundary
+ );
+ Fill % middle upper arc
+ ( tl{dir 42}..{right}(Tr-4vp)..{down}(tr+hd) % upper boundary
+ & (tr+hd)--(tr-hd)
+ & (tr-hd){up}..(Tr-2vP-2vp)..{dir 215}tl..cycle % lower boundary
+ );
+ Fill % right upper arc
+ ( tr{dir 45}..{right}(TR-1vp)..{down}(tR+hd) % upper boundary
+ & (tR+hd)--(tR-hd)
+ & (tR-hd){up}..(TR-2vd-0vp)..{dir 215}tr..cycle % lower boundary
+ );
+ PEN; draw bR{dir250}..{dir190}BR--Br; % lower right stroke: right part
+ Pen; Fill
+ ( (Br+vd){left}..{dir 235}bC % lower right stroke: left part
+ & bC{dir 50}..{right}(Br-vd)
+ & (Br-vd)--(Br+vd)..cycle
+ );
+ endchar;
+
+beginchar(O+17,64u#,56u#,-8u#); "Libra";
+ corners;
+ Centers (1/2,7/15); % CL and CR : upper bars (outer ends)
+ TOP (1/4,3/4);
+ VV:=(TC-Tl) rotated -90;
+ tl:=Tl+VV; tr:=Tr+VV; % tl and tr : upper arc (left and right)
+ R:=length(VV); D:=length(TC-CC); % calculating intersection of
+ t:=(R+-+(D-R))/length(BR-BL); % upper arc with upper bars
+ HOR (1/2-t,1/2+t); Bot (7/15); % (bl and cl renamed:)
+ Cl:=bl; Cr:=br; % Cl and Cr : upper arc (inner ends)
+% Cl:=bl+hP; Cr:=br-hP; % Cl and Cr : upper arc (inner ends)
+ bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down
+% bL:=CL; bl:=Cl; br:=Cr; bR:=CR; % shift upper bars slightly down
+ SPEN; draw BL--BR; % bottom bar
+ SPEN; draw bL--bl; draw br--bR; % left and right upper bars
+ Pen; Fill % left upper bar: left end
+ ( CL{dir 170}..{dir 105}(CL+vd-hd) % inner boundary
+ & (CL+vd-hd)--(CL-hd)--CL % left and lower boundary
+ & CL.. cycle
+ );
+ Pen; Fill % right upper bar: right end
+ ( CR{dir 10}..{dir 75}(CR+vd+hd) % inner boundary
+ & (CR+vd+hd)--(CR+hd)--CR % right and lower boundary
+ & CR.. cycle
+ );
+ PEN; draw Cl..{up}tl..{right}TC..{down}tr..Cr; % upper arc
+ endchar;
+
+beginchar(O+18,(14/15)*100u#-(13/15)*P#+p#,68u#,10u#); "Scorpio";
+ Corners (P,p,d,0);
+ LFT (0,3/4); % tL : left upper arc (left end)
+ HOR (5/14,10/14); Top (3/4); % tl and tr : upper arcs (endpoints)
+ TOP (4/14,9/14); % Tl and Tr : upper arcs (tops)
+ RT (1/6,1); % bR : lower right arrow (point)
+ br:=1/3[Br,BR]-(0,d)+vp; % br : lower right arc (bottom)
+ BR:=2/3[Br,BR]+vp; % Br and BR : lower right arc (endpoints)
+ RPEN; draw TL--BL; draw tl--Bl; draw tr--Br; % vertical bars
+ Pen; Fill % left upper arc
+ ( tL{dir 42}..{right}(Tl-4vp)..{down}(tl+hd) % upper boundary
+ & (tl+hd)--(tl-hd)
+ & (tl-hd){up}..(Tl-2vP-2vp)..{dir 215}tL..cycle % lower boundary
+ );
+ Fill % right upper arc
+ ( tl{dir 42}..{right}(Tr-4vp)..{down}(tr+hd) % upper boundary
+ & (tr+hd)--(tr-hd)
+ & (tr-hd){up}..(Tr-2vP-2vp)..{dir 215}tl..cycle % lower boundary
+ );
+ Fill % lower right arc
+ ( (Br+hd){down}..{right}(br+vd)..{dir angle((br-BR) rotated 0)}BR
+ & BR{dir angle((BR-br) rotated 6)}..{left}br..{up}(Br-hd)
+ & (Br-hd)--(Br+hd)..cycle
+ );
+ arrow (BR+2hp,bR, 1, 1/4,1/2); % lower right arrow
+ endchar;
+
+beginchar(O+19,56u#,80u#,8u#); "Sagittarius";
+ Corners(P*(h+d)/((h+d)++w),p,P*w/((h+d)++w),p);
+ bl:=(1/5)[BL,TR]; tr:=(3/4)[BL,TR];
+ VV:=TR-BL; a:=angle(VV);
+ HH:= VV/8 rotated 90;
+ bL:= bl+HH; Bl:= bl-HH;
+ RPEN rotated (a+90); draw BL--tr; % shaft
+ RPEN rotated a; draw bL--Bl; % short bar
+ Pen; arrow (tr,TR, 6/7, .3,.6); % point
+ endchar;
+
+beginchar(O+20,56u#,1U#,0); "Capricornus";
+ Corners(p,p,p,p); % TR: top bar (right end)
+ Centers (2/3,2/3); % BC and CC: loop (bottom and top)
+ HOR (1/3,1); Bot (1/3); % bl and br: loop (left and right)
+ TOP(1/4,1); Tl:=Tl-hd; % Tl: top bar (left end)
+ LFT (.45,1); % bL: end of loop
+ Pen; Fill
+ ( Tl--TR % top bar: upper boundary
+ & TR{dir225}..{down}(bl+hd)..{right}(BC+2vd) % loop from TR to bL
+ ..{up}(br-2hd)..{left}(CC-.5vd-hd)..bL
+ & bL..{right}(CC+.5vd)..{down}br..{left}BC % loop back from bL to TR
+ ..{up}(bl-hd)..{dir45}(TR-2vd-3hd)
+ & (TR-2vd-3hd)--(Tl-2vd)--Tl % top bar: lower boundary
+ & Tl..Tl..cycle
+ );
+ endchar;
+
+beginchar(O+22,56u#,72u#,8u#); "Pisces";
+ Corners(p,p,p,p);
+ HOR (1/4,3/4); Top (1/2);
+ Pen; Fill ( BL..(tl-hd)..TL % left arc: left boundary
+ & TL..(tl+hd)..BL % left arc: right boundary
+ & BL--cycle
+ );
+ Fill ( BR..(tr-hd)..TR % right arc: left boundary
+ & TR..(tr+hd)..BR % right arc: right boundary
+ & BR--cycle
+ );
+ PEN; draw tl--tr; % vertical bar
+ endchar;
+
+beginchar(O+23,44u#,72u#,12u#); "Saturnus 2";
+ corners; Centers (4/9,8/11);
+ HOR (0,8/9); Top (19/22);
+ RT (6.3/11,1); % bR
+ Bl:=2/9[BL,BR]; Bot(.8/12); % bl
+ bC:=1/5[BC,TC]; % bC
+ Bl:=Bl+((P-(P*sqrt(2))*sind(45+20),0) rotated -70); % Bl
+ SPEN; draw tl--tr; draw CC--TC; % upper cross
+ PEN; draw CC{right}..{down}bR..bC..{dir250}bl..{dir-70}Bl; % lower arc
+ RPEN rotated 20; draw Bl--(Bl+(hP rotated -70)); % sharpen arc end
+ endchar;
+
+beginchar(O+27,76u#,50u#,-22u#); "Aquarius 2";
+ Corners (p,p,p,p);
+ % upper strokes:
+ Centers (3/5,1/2); % CL and CC : left stroke (left end, right bottom)
+ TOP (1/4,4/5); % Tl and Tr : left stroke (left top, right end)
+ Pen;
+ Fill ( (CL+vp)..{right}Tl..{right}(CC+vd)..(Tr-vP) % left stroke: upper
+ & (Tr-vP)..{left}(CC+vp)..{left}(Tl-2vd)..(CL+vp) % left stroke: lower
+ & (CL+vp)..cycle
+ );
+ Fill ( (Tr+hP/2)..{right}(CR+2vd) % right stroke: upper
+ & (CR+2vd){-hP/2-2vd}..{left}(CR-hP+vp) % right stroke: lower
+ ..(Tr-2vd-hP/2) % ( from Tr to CR )
+ & (Tr-2vd-hP/2)--(Tr+hP/2) % right stroke: left end
+ & (Tr+hP/2)..cycle
+ );
+ picture upper; upper:= currentpicture; % lower strokes
+ addto currentpicture also upper shifted (0,-(h+d)/2);
+ endchar;
+
+beginchar(O+28,78u#,56u#,-9u#); "Aquarius 3";
+ Corners(p,p,(h+d)/2+P,P);
+ % upper stroke : points on central line:
+ centers; % CL and CR : ends
+ HOR (1/5,3/5); Bot(1/2); % bl and br : down crossing
+ HOR (2/5,4/5); Top(1/2); % tl and tr : up crossing
+ PEN;
+ draw bl{down}..tl{up}..br{down}..tr{up}; % middle part
+ Pen; Fill
+ ( CL{up}..{down}(bl+hd) % left end : upper boundary
+ & (bl+hd)--(bl-hd)
+ & (bl-hd){up}..{dir 225}CL % lower boundary
+ & CL..cycle
+ );
+ Fill ( CR{up}..{down}(tr-hd) % right end : upper boundary
+ & (tr-hd)--(tr+hd)
+ & (tr+hd){up}..{dir -45}CR % lower boundary
+ & CR..cycle
+ );
+ picture upper; upper:= currentpicture; % lower stroke
+ addto currentpicture also upper shifted (0,-(h+d)/2);
+ endchar;
+
+beginchar(O+29,U#,U#,0u#); "Terra 2"; % for smaller circle : 52u#,U#,0#
+ corners; centers;
+ VV:=(BC-BL) rotated 90;
+ TC:=CC+VV; BC:=CC-VV;
+ PEN; draw TC..CR..BC..CL..TC..cycle; % circle
+ draw BC--TC; draw CL--CR; % cross in circle
+ s:=1+1/2;
+ CL:=CL+s*hP; CR:=CR-s*hP;
+ BC:=BC+s*vP; TC:=TC-s*vP;
+ PEN scaled 1/2; undraw TC..CR..BC..CL..TC..cycle;
+ endchar;
+
+beginchar(O+32,88u#,56u#,0); "Libra 3"; % larger variant
+ corners;
+ Centers (1/2,7/15); % CL and CR : upper bars (outer ends)
+ TOP (1/4,3/4);
+ VV:=(TC-Tl) rotated -90;
+ tl:=Tl+VV; tr:=Tr+VV; % tl and tr : upper arc (left and right)
+ R:=length(VV); D:=length(TC-CC); % calculating intersection of
+ t:=(R+-+(D-R))/length(BR-BL); % upper arc with upper bars
+ HOR (1/2-t,1/2+t); Bot (7/15); % (bl and cl renamed:)
+ Cl:=bl; Cr:=br; % Cl and Cr : upper arc (inner ends)
+ bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down
+%% CL:=CL+8u;CR:=CR+8u; % left and right points
+ CL:=1/3[bL,TL];CR:=1/3[bR,TR]; % left and right points
+ SPEN; draw BL--BR; % bottom bar
+ SPEN; draw bL--bl; draw br--bR; % left and right upper bars
+ Pen; Fill % left upper bar: left end
+ ( bl{dir 175}..{dir 100}(CL+vd-hd) % inner boundary
+ & (CL+vd-hd)--(bL-hd)--bl % left and lower boundary
+ & bl.. cycle
+ );
+ Pen; Fill % right upper bar: right end
+ ( br{dir 5}..{dir 80}(CR+vd+hd) % inner boundary
+ & (CR+vd+hd)--(bR+hd)--br % right and lower boundary
+ & br.. cycle
+ );
+ PEN; draw Cl..{up}tl..{right}TC..{down}tr..Cr; % upper arc
+ endchar;
+
+beginchar(O+42,10/11U#,U#,0u#); "(moon) last quarter - inverse";
+ Corners(p,p,p,p); Centers(4/11,1/2);
+ b:=1; % reduction of stroke breadth
+% outer circumference: big circle
+ VV:=(TL-BL)/2; HH:=VV rotated -90;
+ BC:=BL+HH; TC:=TL+HH; % CL=BL+VV;
+ MM:=CL+HH;
+% outer circumference: calculating small circle
+ R:=length(HH); D:=length(BR-BL);
+ s:=(R+-+(D-R)); t:=s/2R;
+ CC:=CC+hP;
+ D:=length(CR-CC);
+ r := D/2 + s*s/2D;
+ RT (1/2-t,1/2+t);
+ mm:=CC+(r,0);
+% inner circumference:
+ D:=length(mm-MM); R:=R-2(b*P-p); r:=r+2b*(P-p);
+ a:=(R*R-r*r+D*D)/2D;
+ tr:=MM+(a,R+-+a);
+ br:=MM+(a,-(R+-+a));
+Fill ( tR..CL..bR
+ & bR..CC..tR
+ & tR..cycle
+ );
+% unfill tr..(CL+2b*hd)..br % for standard variant \char10
+% & br..(CC-2b*hd)..tr
+% & tr..cycle;
+endchar;
+
+ temp := currentpicture;
+beginchar(O+43,10/11U#,U#,0u#); "(moon) first quarter - inverse";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+10,10/11U#,U#,0u#); "Luna = (moon) last quarter";
+currentpicture := temp;
+unfill tr..(CL+2b*hd)..br
+ & br..(CC-2b*hd)..tr
+ & tr..cycle;
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+41,10/11U#,U#,0u#); "(moon) first quarter";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+52,1.4U#,1.05U#,.35U#); "Pallas";
+ Corners (p,p,P,p); Centers (.5,.4);
+ numeric aa[]; pair Cl,Cr,tC;
+ RR:= 2(vP-vp);
+ Cl = aa1[CL,TC] + ( RR rotated -120 ) = aa2[CL,CR] + RR;
+ Cr = aa3[CR,TC] + ( RR rotated 120 ) = aa4[CL,CR] + RR;
+ tC = aa5[CR,TC] + ( RR rotated 120 ) = aa6[CL,TC] + ( RR rotated -120 );
+ Pen; Fill (
+ TC--CL--CR--TC & TC--tC % top triangle : outside
+ & tC--Cr--Cl--tC & tC--TC & cycle % top triangle : inside
+ ) ;
+ SPEN; cross (CC,BC, 1,-P); % bottom cross
+ endchar;
+
+a:=(sqrt3)/2; % ratio (equilateral triangle)
+ % used chars ( 58 60 ) 61 ( 63 )
+beginchar(O+61,(U#+2P#)/a+2P#,U#+2a*P#,2P#); "Trigon";
+ Corners (p,p,p,p); centers;
+ numeric aa[]; pair Bl,Br,tC;
+ RR:= 2(vP-vp);
+ Bl = aa1[BL,TC] + ( RR rotated -120 ) = aa2[BL,BR] + RR;
+ Br = aa3[BR,TC] + ( RR rotated 120 ) = aa4[BL,BR] + RR;
+ tC = aa5[BR,TC] + ( RR rotated 120 ) = aa6[BL,TC] + ( RR rotated -120 );
+ Pen; Fill (
+ TC--BL--BR--TC & TC--tC % triangle : outside
+ & tC--Br--Bl--tC & tC--TC & cycle % triangle : inside
+ ) ;
+ endchar;
+
+beginchar(O+64,68u#,80u#,0); "ascending node of moon";
+ Corners(P,P,P,P); centers; % TC
+ HOR (1/6,5/6); Top (3/4); % tl and tr : main arc (left and right)
+ BOT (1/3,2/3); rr:=(Bl-BL)/2;
+ bL:=BL+(rr rotated 90); bl:=bL+2rr; % bL and bl : lower left circle
+ bR:=BR+(rr rotated 90); br:=bR-2rr; % bR and br : lower right circle
+ PEN; draw bL{down}..{up}bl % lower left half circle
+ ..{up}tl..{right}TC..{down}tr % main arc
+ ..{down}br..{up}bR; % lower right half circle
+ Pen;
+ Fill ( (bL+hd){up}..bl-(1,0)--bl % lower left circle: upper arc, outside
+ & bl{up}..{down}(bL-hd) % inside
+ & (bL-hd)--(bL+hd)..cycle
+ );
+ Fill ( (bR-hd){up}..br+(1,0)--br % lower right circle: upper arc, outside
+ & br{up}..{down}(bR+hd) % inside
+ & (bR+hd)--(bR-hd)..cycle
+ );
+ endchar;
+
+temp := currentpicture;
+beginchar(O+65,68u#,80u#,0); "descending node of moon";
+ currentpicture := ( temp yscaled -1 ) shifted ( 0,h );
+ endchar;
+
+endinput;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of ASTROSYM.CAL %%%
diff --git a/Master/texmf-dist/fonts/source/public/astro/astrosym.cmn b/Master/texmf-dist/fonts/source/public/astro/astrosym.cmn
new file mode 100644
index 00000000000..c2f060a78de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/astro/astrosym.cmn
@@ -0,0 +1,441 @@
+% ASTROSYM.CMN : AstroSym (Version 2.20, Aug. 10, 2002) - file 4 of 8
+% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at
+% Institute of Mathematics, University of Vienna Vienna, Austria
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(O+2,52u#,80u#,0u#); "Venus";
+ corners; centers;
+ VV:=(TC-TL) rotated -90;
+ CL:=TL+VV; CR:=TR+VV; bC:=TC+2VV;
+ PEN; draw TC..CR..bC..CL..TC..cycle; % top circle
+ SPEN; cross (bC,BC, 4/3,-2P); % bottom cross
+ endchar;
+
+beginchar(O+3,52u#,80u#,0u#); "Terra";
+ corners; centers;
+ VV:=(BC-BL) rotated 90;
+ CL:=BL+VV; CR:=BR+VV; tC:=BC+2VV;
+ PEN; draw tC..CR..BC..CL..tC..cycle; % bottom circle
+ SPEN; cross (tC,TC, 1,2P); % top cross
+ endchar;
+
+beginchar(O+4,52u#,88u#,0u#); "Mars";
+ corners; centers;
+ VV:=(BC-BL) rotated 90;
+ CL:=BL+VV; CR:=BR+VV; tC:=BC+2VV;
+ CC:=BC+VV;
+ Cr:=(tC+2vP) rotatedaround (CC,-15); % temporary
+ TR:=TR+vd+hd; % top arrow: top
+ tr:=.45[Cr,TR]; % top arrow: base
+ Cr:=Cr-(2hP rotated angle(TR-Cr)); % top arrow: stem base
+ a:=angle(TR-tr); b:=cosd(a)/sind(a); % arrow: calculate breadth
+ PEN; draw tC..CR..BC..CL..tC..cycle; % bottom circle
+ PEN; draw Cr--tr; % top arrow: stem
+ Pen; arrow (tr,TR, 2b, .1,.5); % top arrow
+ endchar;
+
+beginchar(O+7,52u#,74u#,10u#); "Uranus";
+ corners; centers;
+ VV:=(BC-BL) rotated 90;
+ bL:=BL+VV; bR:=BR+VV; CC:=BC+2VV;
+ bC:=BC+VV;
+ TC:=TC+vd; tC:=.4[CC,TC];
+ PEN; draw CC..bR..BC..bL..CC..cycle; % bottom circle
+ fill fullcircle scaled 2P shifted bC; % bottom circle: dot
+ draw CC--tC; % top arrow: stem
+ Pen; arrow (tC,TC, 1.2, .1,.5); % top arrow
+ endchar;
+
+beginchar(O+8,88u#,80u#,0u#); "Neptunus";
+ Corners(p,p,P,p); Centers(.5,.2);
+ HOR (9/88,79/88);
+ Top(.725); Bot(.2);
+ b:=length(Tl-TL)/length(Tl-tl); % arrows: breadth of points
+ SPEN; draw bl--br; % horizontal bar
+ draw bC--BC; % vertical stem
+ draw bl--tl; draw bC--tC; draw br--tr; % three arrows: arms
+ Pen; arrow (tl,Tl, 2b, .2,.5); % three arrows: points
+ arrow (tC,TC, 2b, .2,.5);
+ arrow (tr,Tr, 2b, .2,.5);
+ endchar;
+
+beginchar(O+9,52u#,80u#,0u#); "Pluto";
+ corners; centers;
+ VV:=(TC-TL) rotated -90;
+ bC:=TC+2VV; bL:=TL+2VV;
+ BOT (0,2/3); % Br : bottom bar (right end)
+ PEN; draw TL--TC{right}..{left}bC--bL; % top right arc
+ SPEN; draw BL--TL; draw BL--Br; % left bar and bottom bar
+ endchar;
+
+beginchar(O+21,76u#,58u#,-6u#); "Aquarius";
+ Corners(P,P,(h+d)/2+P,P);
+ % upper strokes:
+ centers; % CL and CR : left and right end
+ BOT (3/12,11/12); BC:=.5[Bl,Br]; % Bl,BC,Br : upper endpoints
+ TOP (1/12,9/12); TC:=.5[Tl,Tr]; % Tl,TC,Tr : lower endpoints
+% PEN yscaled (p/P) rotated (90-angle(Tl-CL));
+ PEN yscaled (p/P) rotated angle(Tl-CL);
+ draw CL--Tl--Bl--TC--BC--Tr--Br--CR;
+ picture upper; upper:= currentpicture; % lower strokes
+ addto currentpicture also upper shifted (0,-(h+d)/2);
+ endchar;
+
+beginchar(O+24,88u#,80u#,0u#); "Neptunus 2";
+ Corners(p,p,P,p); Centers(.5,.2);
+ HOR (9/88,79/88);
+ Top(.725); Bot(.2);
+ b:=length(Tl-TL)/length(Tl-tl); % arrows: breadth of points
+ SPEN; draw bC--tC; % middle arm
+ cross (BC,bC, 1, -P); % lower cross
+ PEN; draw tl{down}..{up}tr; % arc from left to right arm
+ Pen; arrow (tl,Tl, 2b, .2,.5); % three arrows: points
+ arrow (tC,TC, 2b, .2,.5);
+ arrow (tr,Tr, 2b, .2,.5);
+ endchar;
+
+beginchar(O+25,68u#,80u#,0u#); "Pluto 2";
+ Corners(p,p,P,p); Centers(.5,.2);
+ HOR (2/17,15/17);
+ Top(.725); Bot(.2)
+ b:=length(Tl-TL)/length(Tl-tl); % arrows: breadth of points
+ SPEN; draw bl--br; % horizontal bar
+ draw bC--BC; % vertical stem
+ draw bl--tl; draw br--tr; % two arrows: arms
+ Pen; arrow (tl,Tl, 2b, .2,.5); % two arrows; points
+ arrow (tr,Tr, 2b, .2,.5);
+ endchar;
+
+beginchar(O+26,1U#,1U#,0); "Libra 2";
+ corners; Centers (1/2,2/3-1/12);
+ LFT (1/3,1); RT (1/3,1);
+ PEN; draw CC{right}..TC..{right}CC; % top circle
+ SPEN; draw bL--bR; draw CL--CR; % lower and upper bar
+ endchar;
+
+beginchar(O+30,74u#,88u#,0u#); "Mars 2";
+ corners; Centers (1/2,11/40);
+ VV:=(CL-BL); HH := VV rotated -90;
+ BC:=BL+HH; CR:=CL+2HH; tC:=BC+2VV;
+ CC:=BC+VV;
+ TR:=TR+vd+hd; % top arrow: top
+ Cr:=(tC+2vP) rotatedaround (CC,angle(TR-CC)-90); % temporary
+ tr:=.45[Cr,TR]; % top arrow: base
+ Cr:=Cr-(2hP rotated angle(TR-Cr)); % top arrow: stem base
+ a:=angle((TR-tr) rotated .5(90-angle(TR-(CR+hd))));
+ b:=cosd(a)/sind(a); % arrow: calculate breadth
+ PEN; draw tC..CR..BC..CL..cycle; % bottom circle
+ PEN; draw Cr--tr; % top arrow: stem
+ Pen; arrow (tr,TR, 2b, .1,.5); % top arrow
+ endchar;
+
+beginchar(O+31,52u#,80u#,0u#); "Pluto 3"; % variation of Pluto (1)
+ corners; centers;
+ VV:=(TC-TL) rotated -90;
+ bC:=TC+2VV; bL:=TL+2VV;
+ HOR (2/5,1); % Bl : bottom bar (left end)
+ Cl := Tl+VV; % Cl : vertical bar (top end)
+ PEN; draw TL--TC{right}..{left}bC--bL; % letter P : top right arc
+ SPEN; draw BL--TL; % letter P : left bar
+ SPEN; draw Bl--Cl; draw Bl--BR; % letter L : left bar and bottom bar
+ endchar;
+
+beginchar(O+33,U#,U#,0u#); "Star";
+ corners; centers;
+ RR:=length(BC-CC)*(1,sind15/cosd15);
+ for i:= 0 upto 5 : SPEN rotated (60i+45);
+ draw CC--(CC+(RR rotated 60i)); endfor;
+ endchar;
+
+beginchar(O+34,88u#,88u#,0u#); "Comet";
+ corners;
+ BOT (11/40,2/3);
+ HH:=(Bl-BL); VV:=HH rotated 90;
+ CC:=Bl+VV;
+ TOP (1/3,2/3); RT (1/3,2/3);
+ PEN; Circle ( CC, HH,VV ); % bottom circle
+ a := angle (Tr-CC);
+ RPEN rotated (a+90); draw ( CC + ( HH rotated a ) ) -- Tr;
+ a := angle (TR-CC);
+ SPEN rotated (a+90);
+ draw ( CC + ( HH rotated a ) ) -- ( TR - ( HH rotated a )/4 );
+ a := angle (tR-CC);
+ RPEN rotated (a+90); draw ( CC + ( HH rotated a ) ) -- tR;
+ endchar;
+
+beginchar(O+35,74u#,88u#,0u#); "Meteor";
+ corners; Centers (4/5,2/3);
+ BL:=BL-vd-hd; % bot arrow: top
+CC:=CR; % better?
+ bl:=1/5[BL,CC]; % bot arrow: base
+ a:=angle((BL-bl) rotated .5(90-angle(BL-(CL-hd))));
+ b:=cosd(a)/sind(a); % arrow: calculate breadth
+ SPEN; drawdot TR; PEN; draw TR--CC--bl; % bot arrow: stem
+ Pen; arrow (bl,BL, 2b, .1,.5); % bot arrow
+ endchar;
+
+beginchar(O+36,74u#,88u#,0u#); "Conjunction";
+ corners; Centers (1/2,11/40);
+ VV:=(CL-BL); HH := VV rotated -90;
+ BC:=BL+HH; CR:=CL+2HH; tC:=BC+2VV;
+ CC:=BC+VV;
+ Cr:=(tC+vP/2) rotatedaround (CC,angle(TR-CC)-90); % temporary
+ PEN; draw tC..CR..BC..CL..cycle; % bottom circle
+ RPEN rotated (90+angle(TR-Cr)); draw Cr--TR; % top arrow: stem
+ endchar;
+
+beginchar(O+37,72u#,72u#,0u#); "Opposition";
+ corners;
+ HH:=(BR-BL)/6; VV:=HH rotated 90;
+ HH:=(BR-BL)/5; VV:=HH rotated 90;
+ TT:=HH rotated 45;
+ bC:=BL+HH+VV; tC:=TR-HH-VV;
+ PEN; Circle (bC,HH,VV);
+ Circle (tC,HH,VV);
+ draw (bC+TT)--(tC-TT);
+ endchar;
+
+beginchar(O+38,U#,U#,0u#); "Quadrature";
+ corners;
+ SPEN; draw TL--TR--BR--BL--TL ; % square
+ endchar;
+
+beginchar(O+39,U#,U#,0u#); "full moon";
+ corners; centers;
+ VV:=(BC-BL) rotated 90;
+ TC:=CC+VV; BC:=CC-VV; D:=U/9;
+ hh:=(U/6,0); vv:=(0,U/6);
+ PEN; draw TC..CR..BC..CL..TC..cycle; % circle
+ endchar;
+
+beginchar(O+40,U#,U#,0u#); "new moon";
+ fill TC..CR..BC..CL..TC..cycle; % circle
+ endchar;
+
+beginchar(O+44,2/3U#,U#,0u#); "Luna 2 = (moon 2) last quarter";
+ corners; Centers(3/4,1/2);
+ VV:=(TL-BL)/2; HH:=VV rotated -90;
+ BC:=BL+HH; TC:=TL+HH; % CL=BL+VV;
+ R:=length(HH); D:=length(BR-BL);
+ t:=(R+-+(D-R))/2R;
+ RT (1/2-t,1/2+t);
+ PEN; draw tR..TC..CL..BC..bR; % outer circle
+ Pen; draw tR..CC..bR; % inner arc
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+45,2/3U#,U#,0u#); "(moon 2) first quarter";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+46,2/3U#,U#,0u#); "(moon 2) last quarter - inverse";
+ Pen; filldraw tR..TC..CL..BC..bR % big circle
+ & bR..CC..tR -- cycle; % small circle
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+47,2/3U#,U#,0u#); "(moon 2) first quarter - inverse";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+48,U#,78u#,16u#); "Ceres";
+ corners; Centers (2/5,1/4);
+ Tl := (TL+TC)/2 - vP; % arc : upper end
+ tR := (CR+TR)/2; % arc : midpoint (right)
+ Cl := (CL+CC)/2 + vP; % arc : lower end
+ Bl := (BL+BC)/2; % cross : base
+ bL := .4[BL,CL]; bC := .4[BC,CC]; % for bar of cross
+ PEN; draw Tl..TC..tR..CC..Cl; % (inverted) C shape
+ REND ( Tl, 2 angle ( TC-Tl ) + 180 );
+ SPEN; draw Cl--Bl; % cross : vertical stem
+ draw bL--bC; % cross : horizontal bar
+ endchar;
+
+beginchar(O+49,U#,68u#,20u#); "Ceres 2";
+ corners; centers;
+ HOR (3/8,3/4); % Tl Br
+ LFT (1/4,3/4); RT (1/4,3/4); % tL ; bR
+ Bot (1/4); Top (3/4); % bC ; tr
+ Cl := .5[Bl,Tl]; % C shape : bottom point
+ PEN; draw Tl{left}..tL..Cl..tr; % C shaped arc
+ REND ( Tl,0 );
+ SPEN; draw tr--Br; % cross : vertical stem
+ draw bC--bR; % cross : horizontal bar
+ endchar;
+
+beginchar(O+50,40u#,80u#,16u#); "Juno";
+ corners; centers;
+ RR:=(TC-TL); VV:=RR rotated -90;
+ CC:=TC+VV; % center top star
+ bL := BL-VV; bR := BR-VV; % for lower bar
+ % or : LFT (1/6,1); RT (1/6,1) % or 1/5
+ for i:= 0 upto 6 : SPEN rotated (45i+45); % top star
+ draw CC--(CC+(RR rotated (45i-45))); endfor;
+ SPEN; draw CC--BC; % stem
+ draw bL--bR; % lower horizontal bar
+ endchar;
+
+beginchar(O+51,56u#,80u#,24u#); "Juno 2";
+ corners; centers;
+ HOR (1/5,4/5); Bot (1/5) % or : 1/3 3/4 ; 1/4
+ LFT (1/4,7/8); RT (1/4,7/8);
+ SPEN rotated angle(tR-CL) ; draw tR--CL; % upper cross ( X )
+ SPEN rotated angle(tL-CR) ; draw tL--CR; % upper cross ( X )
+ SPEN; draw TC--BC; % stem
+ draw bl--br; % bottom horizontal bar
+ endchar;
+
+beginchar(O+53,52u#,80u#,0u#); "Vesta";
+ corners; centers;
+ VV:=(BR-BL) rotated 90;
+ CL:=BL+VV; CR:=BR+VV; CC:=BC+VV; % vertices of square
+ TOP (.2,.8); % endpoints of upper V
+ SPEN; draw CL--CR--BR--BL--CL; % bottom square
+ PEN; draw Tl--CC--Tr; % upper V
+ endchar;
+
+beginchar(O+54,U#,U#,0#); "Vesta 2";
+ Corners (P,P,P,p); centers;
+ HOR (1/5,4/5); Top (5/8); Cl := tl; Cr := tr;
+ HOR (3/8,5/8); Bot (1/2); Top (7/8);
+ TOP (1/5,4/5);
+ RPEN rotated 20; % left horn
+ draw (bl+(vP-vp)/2+hP){left}..Cl..tl..{dir 200}Tl;
+ RPEN rotated -20; % right horn
+ draw (br+(vP-vp)/2-hP){right}..Cr..tr..{dir -20}Tr;
+ SPEN; draw CL--CR; % middle bar
+ draw bl--Bl; % left foot
+ draw br--Br; % right foot
+ endchar;
+
+beginchar(O+55,52u#,96u#,0u#); "Chiron";
+ corners; centers;
+ RR:=(BC-BL) rotated 90;
+ bL:=BL+RR; bR:=BR+RR; bC:=BC+2RR;
+ CC := bC+vP;
+ TOP (1/6,5/6); rr := (Tr-TC) rotated 90;
+ tC := TC-rr; tr := Tr-2rr;
+ PEN; draw bC..bR..BC..bL..bC..cycle; % bottom circle
+ SPEN; draw CC--TC; % top stem
+ PEN; draw Tr--tC--tr; % top arms
+ endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% reset O if 200 + char number > 255 ( uniform (thin) )
+if O = 200 : O := 122 fi ;
+
+beginchar(O+56,U#,80u#,16u#); "Pluto 4 (tree)";
+ corners; Centers (1/2,1/3);
+ HOR (1/4,3/4); Bot (1/6);
+ bC := CC-vP;
+ PEN; draw TL{right}..{down}CC; draw TR{left}..{down}CC; % top arcs
+ REND (TL,180); REND (TR,0); %
+ SPEN; draw bC--BC; draw bl--br; % bottom cross
+ endchar;
+
+beginchar(O+57,2U#,U#+P#,0); "Pluto 5 (cup)";
+% beginchar(O+57,2U#,U#,0); "Pluto 5 (cup)";
+ corners; centers;
+ aa := (2-sqrt3)/4;
+ Cl := aa[CL,CR]; Cr := aa[CR,CL];
+% TC := TC-vP; % potential correction : lowered contents
+ PEN; draw TL{down}..Cl..BC..Cr..{up}TR; % half circle : "cup"
+ draw Cl..TC..Cr; % "contents"
+ REND (TL,90); REND (TR,90);
+ endchar;
+
+a:=(sqrt3)/2; % ratio (equilateral triangle)
+ % used chars 58 60 ( 61 ) 63
+beginchar(O+58,U#/a+2*(P#-(1-a)*Pp),U#+2*P#-Pp,P#-Pp); "Semi-sextile";
+ Corners (P-(1-a)*Pp,P-(1-a)*Pp,P,P-Pp/2); centers;
+ RLine ( BL,BR ); % base
+ RLine ( TL,BC ); % left stroke (down)
+ RLine ( TR,BC ); % right stroke (up)
+ endchar;
+
+beginchar(O+59,U#,U#,0u#); "Semi-quadrature";
+ corners;
+ SPEN; draw TL--BL--BR; % L shape ( of square )
+ endchar;
+
+beginchar(O+60,a*U#+2*P#-Pp,U#+P#-Pp,P#-Pp); "Sextile";
+ Corners (P-Pp/2,P-Pp/2,P-Pp,P-Pp); centers;
+ LFT (1/4,3/4); RT (1/4,3/4);
+ RPEN; draw TC--BC; % stem
+ RLine (bL,tR); % stem turned 60
+ RLine (tL,bR); % stem turned -60
+ endchar;
+
+beginchar(O+62,U#,U#,U#/2); "one and a half quadrature";
+ corners; Centers (1/2,1/3);
+ tC := (TC+CC)/2;
+ SPEN; draw TL--CL--CR--TR--TL; % square
+ draw tC--BC--BR; % L shaped cedilla
+ endchar;
+
+beginchar(O+63,U#/a+2*(P#-(1-a)*Pp),U#+2*P#-Pp,P#-Pp); "Quincunx";
+ Corners (P-(1-a)*Pp,P-(1-a)*Pp,P-Pp/2,P); centers;
+ RLine ( TL,TR ); % top
+ RLine ( BL,TC ); % left stroke (up)
+ RLine ( BR,TC ); % right stroke (down)
+ endchar; % horizontal mirror image of semi-sextile
+
+beginchar(O+66,52u#,96u#,0u#); "Chiron 2";
+ corners; centers;
+ BC := BC-hP/3 ; % bottom circle slightly off centre
+ rr := (BC-BL) ; RR := rr rotated 90 ; % radii of circle
+ bL := BL+RR; bR := bL+2rr; bC := BC+2RR; % points on circle
+ TC := TL+rr; % top of stem
+ CC := bC+vP; % base of stem
+ tR := (CR+TR)/2; rr := (TR-tR) rotated -90 ;
+ tC := tR-rr ; % base of arms (right angle)
+ % calligraphic style : fit arms into corner
+ a := (sqrt2-1); mm := Pp*(a,a) ; nn := Pp*(a,-a) ;
+ PEN; draw bC..bR..BC..bL..bC..cycle; % bottom circle
+ SPEN; draw CC--TC; % top stem
+ RLine ( TR+mm,tC ); RLine ( tC,CR+nn ); % top arms
+ endchar;
+
+beginchar(O+67,U#,56u#,8u#); "Lilith";
+ Corners (P,P,p,p); centers;
+ LFT (1/8,2/3) ; RT (1/8,2/3) ; % bL bR : for bottom stroke
+ HOR (1/4,3/4); Bot (1/8); % bC : for bottom stroke
+ br := Br; % br : lowest point on bottom stroke (saved!)
+ HOR (2/5,7/8); Top (2/3); % tl tr : for top stroke
+ TOP (0,8/12); % Tr : highest point on top stroke
+ pickup pencircle xscaled 2P yscaled 2p ; % special pen
+ draw bL{dir 70}..bC..br{dir 0}..bR ; % bottom stroke
+ draw bL{dir 0}..tl..Tr{dir 0}..tr..{dir 180}(CC+hP) ; % top stroke
+ endchar;
+
+beginchar(O+68,U#,U#,22u#); "Pluto 6";
+ corners; centers;
+ LFT (1/4,4/5); RT (1/4,4/5); % tL tR : for cup
+ HOR (1/6 , 5/6 ); Bot (1/4) ; % bl br : )
+ HOR (5/16,11/16); Top (4/5) ; % tl tr : circle (left,right)
+ rr := tr-tC ; TC := tC+(rr rotated 90) ; % TC : circle (top) [ centre tC ]
+ tC := tC+(rr rotated -90) ; % tC : circle (bot)
+ SPEN; draw TL; draw TR; % endpoints of cup
+ PEN; draw TL--tL{dir -90}..CC..{dir 90}tR--TR; % cup
+ draw tC..tr..TC..tl..tC..cycle ; % circle
+ SPEN; draw bl--br; % cross: horizontal bar
+ draw (CC-vP)--BC; % cross: vertical bar
+ endchar;
+
+
+beginchar(O+69,U#,U#,0u#); "Sextile 2";
+ corners; centers;
+ RR:=(CR-CC) rotated 45;
+ tr:=CC+RR; tl:=CC+(RR rotated 90);
+ bl:=CC-RR; br:=CC+(RR rotated -90);
+ SPEN; draw CL--CR; draw TC--BC; % horizontal cross
+ DPEN; draw bl--tr; draw tl--br; % diagonal cross
+ endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% reset O back to 200 if 122 ( uniform (thin) )
+if O = 122 : O := 200 fi ;
+
+endinput;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of ASTROSYM.CMN %%%
diff --git a/Master/texmf-dist/fonts/source/public/astro/astrosym.mac b/Master/texmf-dist/fonts/source/public/astro/astrosym.mac
new file mode 100644
index 00000000000..e1013d30b20
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/astro/astrosym.mac
@@ -0,0 +1,153 @@
+% ASTROSYM.MAC : AstroSym (Version 2.20, Aug. 10, 2002) - file 3 of 8
+% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at
+% Institute of Mathematics, University of Vienna Vienna, Austria
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%% variables
+
+numeric r,R,D, a,b, s,t; %H,V,
+
+pair
+ TL,Tl,TC,Tr,TR,
+ tL,tl,tC,tr,tR,
+ CL,Cl,CC,Cr,CR,
+ bL,bl,bC,br,bR,
+ BL,Bl,BC,Br,BR;
+
+pair BB,MM,TT, mm, LL,RR, ll,rr, HH,VV, vv,nn, hh,vv,nn;
+
+pair vP,hP, vp,hp, vd,hd;
+
+%% values for corrections needed in calligraphic style % mar99
+%% ( zero for uniform stroke )
+
+def pP = if p=P : 0 else: p# fi enddef; % p or 0 % not (yet?) used
+def Pp = if p=P : 0 else: P# fi enddef; % P or 0
+
+picture temp;
+
+%%%%%%%% macros
+
+def PEN = pickup pencircle scaled 2P enddef;
+def SPEN = pickup pensquare scaled 2P enddef;
+def DPEN = pickup (pensquare rotated 45) scaled 2P enddef; % added aug02
+def RPEN = pickup penrazor scaled 2P enddef;
+def Pen = pickup pencircle scaled 2p; enddef;
+
+%% line with RPEN ( maximal breadth ) % added mar99
+def RLine ( expr PP, QQ ) =
+ aa := angle ( PP - QQ ) ;
+ RPEN rotated (aa+90) ;
+ draw PP--QQ;
+ % ( QQ + ( hP rotated aa ) ); % potential extension
+ enddef;
+
+%% replacement for RLine for uniform strokes
+%% only needed for efficiency
+def Line ( expr PP, QQ ) =
+ PEN; draw PP--QQ;
+ enddef;
+% let RLine=Line;
+
+%%% auxilary macro : changing end of stroke from PEN to SPEN % 14feb99
+
+def REND ( expr endpoint, direction ) =
+ RPEN rotated (direction+90) ;
+% draw endpoint--( endpoint + ( Pp*(1,0) rotated direction ) );
+ draw endpoint--( endpoint + ( ( if p=P : (0,0) else : hP fi )
+ rotated direction ) );
+ enddef;
+%%%
+
+def corrections =
+ vP:=(0,P); hP:=(P,0);
+ vp:=(0,p); hp:=(p,0);
+ vd:=vP-vp; hd:=hP-hp;
+ enddef;
+
+def Corners (expr lft_corr, rt_corr, bot_corr, top_corr) =
+ BL := (0+lft_corr,-d+bot_corr); BR := (w-rt_corr,-d+bot_corr);
+ TL := (0+lft_corr, h-top_corr); TR := (w-rt_corr, h-top_corr);
+ enddef;
+def corners = Corners (P,P,P,P); enddef;
+
+def Centers (expr x_ratio,y_ratio) =
+ BC:=bot x_ratio[BL,BR]; TC:=top x_ratio[TL,TR];
+ CL:=lft y_ratio[BL,TL]; CR:= rt y_ratio[BR,TR];
+ CC:=y_ratio[BC,TC];
+ enddef;
+def Centers (expr x_ratio,y_ratio) =
+ BC:=x_ratio[BL,BR]; TC:=x_ratio[TL,TR];
+ CL:=y_ratio[BL,TL]; CR:=y_ratio[BR,TR];
+ CC:=y_ratio[BC,TC];
+ enddef;
+def centers = Centers (1/2,1/2); enddef;
+
+def TOP (expr lft_ratio,rt_ratio) =
+ Tl:=lft_ratio[TL,TR]; Tr:=rt_ratio[TL,TR];
+ enddef;
+def BOT (expr lft_ratio,rt_ratio) =
+ Bl:=lft_ratio[BL,BR]; Br:=rt_ratio[BL,BR];
+ enddef;
+def HOR (expr lft_ratio,rt_ratio) =
+ BOT(lft_ratio,rt_ratio); TOP(lft_ratio,rt_ratio);
+ enddef;
+
+def Bot (expr ratio) =
+ bl:=ratio[Bl,Tl]; bC:=ratio[BC,TC]; br:=ratio[Br,Tr];
+ enddef;
+def Top (expr ratio) =
+ tl:=ratio[Bl,Tl]; tC:=ratio[BC,TC]; tr:=ratio[Br,Tr];
+ enddef;
+
+def LFT (expr bot_ratio,top_ratio) =
+ bL:=bot_ratio[BL,TL]; tL:=top_ratio[BL,TL];
+ enddef;
+def RT (expr bot_ratio,top_ratio) =
+ bR:=bot_ratio[BR,TR]; tR:=top_ratio[BR,TR];
+ enddef;
+
+def Fill (expr boundary) =
+ fill boundary; draw boundary;
+ enddef;
+
+def ARROW (expr base,top, breadth, lcorr,bcorr) =
+ vv := top-base;
+ nn := breadth*(vv rotated 90)/2;
+ BB := base; TT := top;
+ LL := base+nn-lcorr*vv; RR := base-nn-lcorr*vv;
+ ll := .5[base,top]+(1-bcorr)*nn/2;
+ rr := .5[base,top]-(1-bcorr)*nn/2;
+ enddef;
+
+def arrow (expr base,top, breadth, lcorr,bcorr) =
+ ARROW (base,top, breadth, lcorr,bcorr);
+ Fill ( LL{dir angle(ll-LL)}..{dir angle(TT-ll)}TT
+ & TT{dir angle(rr-TT)}..{dir angle(RR-rr)}RR
+ & RR{dir angle(BB+lcorr*vv-RR)}..BB..{dir angle(LL-BB-lcorr*vv)}LL
+ ..cycle );
+ enddef;
+
+def Arrow (expr base,top, breadth, lcorr,bcorr) =
+ ARROW (base,top, breadth, lcorr,bcorr);
+ draw LL{dir angle(ll-LL)}..{dir angle(TT-ll)}TT
+ & TT{dir angle(rr-TT)}..{dir angle(RR-rr)}RR;
+ draw BB--TT;
+ enddef;
+
+def cross (expr base,top, breadth, base_corr) =
+ vv := (top-base-(0,base_corr));
+ nn := breadth*(vv rotated 90)/2;
+ BB := base; TT := top;
+ MM := .5[base+(0,base_corr),top];
+ LL := MM-nn; RR := MM+nn;
+ draw LL--RR; draw BB--TT;
+ enddef;
+
+def Circle (expr cc, hh, vv) =
+ draw (cc-vv)..(cc-hh)..(cc+vv)..(cc+hh)..(cc-vv)..cycle;
+ enddef;
+
+endinput;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of ASTROSYM.MAC %%%
diff --git a/Master/texmf-dist/fonts/source/public/astro/astrosym.mf b/Master/texmf-dist/fonts/source/public/astro/astrosym.mf
new file mode 100644
index 00000000000..1997538900f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/astro/astrosym.mf
@@ -0,0 +1,99 @@
+% ASTROSYM.MF : AstroSym (Version 2.20, Aug. 10, 2002) - file 2 of 8
+% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at
+% Institute of Mathematics, University of Vienna Vienna, Austria
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_size = .4cm#; % scaling factor U = diameter of sun symbol
+font_identifier = "AstroSym";
+font_coding_scheme = "special purpose: astronomical symbols";
+% tracingtitles:=1;
+
+%%%%%%%%%%%
+% font size ( U = diameter of sun symbol )
+%%%%%%%%%%%
+
+U# := .4cm#;
+u# := (1/64)*U#;
+
+define_pixels(U,u);
+
+input astrosym.mac; % macro file
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+% version 1: calligraphic
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+O := 0; % offset value for character position
+
+ P# := 4u#; % width of thick strokes
+ p# := .5u#; % width of thin strokes
+
+define_pixels(P,p);
+corrections;
+
+input astrosym.cmn; % symbols with common code definition
+input astrosym.cal; % symbols with special code
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% version 2: uniform: thick
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+O:=100; % offset value for character position
+
+P# := 4u#; % widths of thick and thin strokes set equal
+p# := 4u#;
+
+define_pixels (P,p);
+corrections;
+let arrow = Arrow; % different arrow shape
+let Pen = PEN; % all pens are equal
+let SPEN = PEN;
+let DPEN = PEN; % added aug02
+let RPEN = PEN;
+% let RLine = Line; % more efficient
+
+input astrosym.cmn; % symbols with common code definition
+input astrosym.uni; % symbols with special code
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+% version 2: uniform: thin
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+O:=200; % offset value value for character position
+ % reset ( in .uni ) to 122
+ % for character numbers > 55
+
+P# := 2u#; % widths of thick and thin strokes set equal
+p# := 2u#;
+define_pixels (P,p);
+corrections;
+ % repeated for the sake of completeness
+let arrow = Arrow; % different arrow shape
+let Pen = PEN; % all pens are equal
+let SPEN = PEN;
+let DPEN = PEN; % added aug02
+let RPEN = PEN;
+
+input astrosym.cmn; % symbols with common code definition
+input astrosym.uni; % symbols with special code
+
+%%%%%%%%%%%%%%%%%
+% extra symbols %
+%%%%%%%%%%%%%%%%%
+
+O := 90; % offset value for character position
+
+P# := 2u#; % width of thick strokes
+p# := 1u#; % width of thin strokes
+
+define_pixels(P,p);
+corrections;
+
+input astrosym.xtr; % symbols with only one version
+
+%%%%%%%%
+bye
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of ASTROSYM.MF %%%
diff --git a/Master/texmf-dist/fonts/source/public/astro/astrosym.uni b/Master/texmf-dist/fonts/source/public/astro/astrosym.uni
new file mode 100644
index 00000000000..da09507a8e9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/astro/astrosym.uni
@@ -0,0 +1,302 @@
+% ASTROSYM.UNI : AstroSym (Version 2.20, Aug. 10, 2002) - file 6 of 8
+% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at
+% Institute of Mathematics, University of Vienna Vienna, Austria
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(O+0,U#,U#,0u#); "Sol";
+ D:=U/16; % diameter of central circle
+ corners; centers;
+ PEN; draw BC..CL..TC..CR..BC..cycle; % main circle
+ Pen; draw fullcircle scaled D shifted CC; % central circle
+ endchar;
+
+beginchar(O+1,46u#,80u#,16u#); "Mercurius";
+ corners; centers;
+ VV := (CC-CL) rotated 90;
+ bC:=CC-VV;
+ tC:=CC+2VV+vP/3;
+ D:=length(CR-CL); % circles: diameter
+ s:=length(TC-tC); a:= angle(s,(D/2)+-+s); % upper partial sector: angle
+ SPEN; cross (bC,BC, 3/2,-2P); % bottom cross
+ PEN;
+ draw fullcircle scaled D shifted CC; % central circle
+ draw halfcircle scaled D rotated (90+a) shifted tC; % upper partial circle
+ draw halfcircle scaled D rotated -(90+a) shifted tC;
+ endchar;
+
+beginchar(O+5,44u#,70u#,0u#); "Iuppiter";
+ corners; Centers (3/4,1/5); Top (4/5);
+ PEN; draw tC--BC; % right vertical bar
+ draw CL--CR; % horizontal bar
+ draw CL{tC-CL}..{TL-CC}TL; % left vertical arc
+ endchar;
+
+beginchar(O+6,44u#,72u#,12u#); "Saturnus";
+ Corners (P,P,d+P,P);;
+ Centers (1/6,5/9); % BC and TC : left vertical bar
+ RT (1/2,1); % bR : right arc (right)
+ HOR (0,1/3); Top (6/7); % tl and tr : upper horizontal bar
+ BOT (2/3,7/9); Bl:=Bl-vd; % Bl
+ Br:=Br-(0,d); % Br
+ SPEN; draw tl--tr; draw BC--TC; % left cross
+ PEN; draw CC{dir 20}..{down}bR..{dir250}Bl..{dir-70}Br; % right arc
+ endchar;
+
+beginchar(O+11,1U#,72u#,0u#); "Aries";
+ corners;
+ BOT (1/2,1/2); % Bl = Br : lower middle point
+ TOP (1/6,5/6); % (temporary) Tl and Tr : upper arcs (tops)
+ HH:= Tl-TL; VV:= HH rotated -90;
+ tr:=Tr+VV; % tr : right upper halfcircle (centre)
+ D:=length(tr-br); R:=length(HH); s:=D+-+R; % calculating direction of bar
+ b:=angle(s,R); b:=b+angle(tr-Br);
+ Tr:=tr+(HH rotated (b+90)); % Tr : (left endpoint)
+ tR:=tr+(HH rotated (b-90)); % tR : (right endpoint)
+ tl:=Tl+VV; a:=180-b; % tl : left upper halfcircle (centre)
+ Tl:=tl+(HH rotated (a-90)); % Tl : (right endpoint)
+ tL:=tl+(HH rotated (a+90)); % tL : (left endpoint)
+ PEN; draw Bl--Tl{dir a}..{dir (a-180)}tL; % left part
+ draw Br--Tr{dir b}..{dir (b-180)}tR; % right part
+ endchar;
+
+beginchar(O+12,1U#,72u#,8u#); "Taurus";
+ corners; Centers(1/2,5/9); % BC and CC : lower circle (top and bottom)
+ HOR (1/8,7/8); % Tl and Tr : upper arcs (tops)
+ Bot (5/18); % bl and br : lower circle (left and right)
+ LFT (0,4/5); RT (0,4/5); % tL and tR : upper arcs (left and right)
+ PEN; draw Tl{dir 235}..{down}tL..CC..br..BC..bl..CC..{up}tR..{dir 145}Tr;
+ endchar;
+
+beginchar(O+13,56u#,72u#,8u#); "Gemini";
+ corners;
+ HOR (2/7,5/7);
+ Top (7/8); Bot (1/8);
+ PEN; draw BL..bl..br..BR; draw TL..tl..tr..TR; % bottom and upper arc
+ draw tl--bl; draw tr--br; % left and right vertical bar
+ endchar;
+beginchar(O+14,84u#,68u#,0u#); "Cancer";
+ corners; centers;
+ Cl:=2/7[CL,CR]; RT (0,4/5);
+ PEN; draw CL{up}..{down}Cl..{up}CL % left circle
+ ..{right}(TC-2hP/3)..(tR-4hP/3+vP/2); % upper arc
+ picture upper; upper := currentpicture; % adding rotated copy
+ addto currentpicture also upper rotated 180 shifted 2CC;
+ endchar;
+
+beginchar(O+15,68u#,80u#,10u#); "Leo";
+ Corners(P,P,d+P,P); centers; % TC
+ HOR (1/6,17/20); Top (3/4); % tl and tr : main arc (left and right)
+ BOT (1/3,2/3); rr:=(Bl-BL)/2;
+ bL:=BL+(rr rotated 90); bl:=bL+2rr; % bL and bl : lower left circle
+ Br:=BR-(2d,0); % Br and BR : lower right arc
+ PEN; draw bl{up}..{down}bL..{up}bl % lower left circle
+ ..{up}tl..{right}TC..{down}tr % main arc
+ ..{down}Br..{up}BR; % lower right arc
+ endchar;
+beginchar(O+16,100u#,68u#,10u#); "Virgo";
+ Corners (P,P,d+P,P);
+ LFT (0,3/4); % tL : left upper arc (left end)
+ HOR (1/3,2/3); Top (3/4); % tl and tr : upper arcs (endpoints)
+ TOP (4/14,4/14+1/3);
+ Tl:=Tl-(0,4u); Tr:=Tr-(0,4u); % Tl and Tr : upper arcs (tops)
+ RT (1/5,3/4); % tR : right upper arc (right end)
+ % bR and tR : right vertical bar (ends)
+ TR:=(4/14+2/3)[TL,TR]; % TR : right upper arc (top)
+ bC:=.5[Bl,Br]-(0,d/2); % bC : lower right stroke (endpoint)
+ br:=Br-(0,d); % br : middle right bar (lower end)
+ Br:=Br+vP; % Br : lower right vertical stroke (left)
+ BR:=2/3[Br,BR]; % BR : lower right vertical stroke (right)
+ PEN; draw TL--BL; draw tl--Bl; draw tr--br; draw tR--bR; % vertical bars
+ draw tL{dir 40}..{right}Tl..{down}tl; % left upper arc
+ draw tl{dir 40}..{right}Tr..{down}tr; % middle upper arc
+ draw tr{dir 40}..{right}TR..{down}tR; % right upper arc
+ draw bR{dir250}..{dir190}BR--Br; % lower right stroke: right part
+ draw Br{left}..{dir 235}bC; % lower right stroke: left part
+ endchar;
+
+beginchar(O+17,64u#,56u#,-8u#); "Libra";
+ corners;
+ Centers (1/2,7/15); % CL and CR : upper bars (outer ends)
+ TOP (1/4,3/4);
+ VV:=(TC-Tl) rotated -90;
+ tl:=Tl+VV; tr:=Tr+VV; % tl and tr : upper arc (left and right)
+ R:=length(VV); D:=length(TC-CC); % calculating intersection of
+ t:=(R+-+(D-R))/length(BR-BL); % upper arc with upper bars
+ HOR (1/2-t,1/2+t); Bot (7/15); % (bl and cl renamed:)
+ Cl:=bl; Cr:=br; % Cl and Cr : upper arc (inner ends)
+% Cl:=bl+hP; Cr:=br-hP; % Cl and Cr : upper arc (inner ends)
+ bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down
+ PEN; draw BL--BR; % bottom bar
+ draw (CL+vP)--bL--bl--Cl % left and right upper bar
+ & Cl..{up}tl..{right}TC..{down}tr..Cr % upper arc
+ & Cr--br--bR--(CR+vP);
+ endchar;
+
+beginchar(O+18,(14/15)*100u#-(13/15)*P#+p#,68u#,10u#); "Scorpio";
+ Corners (P,P,d+P,P);
+ LFT (0,3/4); % tL : left upper arc (left end)
+ HOR (5/14,10/14); Top (3/4); % tl and tr : upper arcs (endpoints)
+ TOP (4/14,9/14);
+ Tl:=Tl-(0,4u); Tr:=Tr-(0,4u); % Tl and Tr : upper arcs (tops)
+ RT (1/6,1); % bR : lower right arrow (point)
+ br:=1/5[Br,BR]-(0,d); % br : lower right arc (bottom)
+ BR:=2/3[Br,BR]; % Br and BR : lower right arc (endpoints)
+ PEN; draw TL--BL; draw tl--Bl; draw tr--Br; % vertical bars
+ draw tL{dir 40}..{right}Tl..{down}tl;
+ draw tl{dir 40}..{right}Tr..{down}tr;
+ draw BR{dir angle(BR-bR)}..{left}br..{up}(Br);
+ Pen; arrow (BR,bR, 1, 1/4,1/2);
+ endchar;
+
+beginchar(O+19,56u#,80u#,8u#); "Sagittarius";
+ corners;
+ bl:=(1/5)[BL,TR]; tr:=(4/5)[BL,TR];
+ VV:=TR-BL; a:=angle(VV);
+ HH:= VV/10 rotated 90;
+ bL := bl+HH; Bl := bl-HH;
+ PEN; draw BL--tr; draw bL--Bl; % shaft and short bar
+ Pen; arrow (tr,TR, 5/6, .3,.5); % point
+ endchar;
+
+beginchar(O+20,56u#,1U#,0); "Capricornus";
+ corners; % TR: top bar (right end)
+ Centers (2/3,2/3); % BC and CC: loop (bottom and top)
+ HOR (1/3,1); Bot (1/3); % bl and br: loop (left and right)
+ TOP(1/4,1); % Tl: top bar (left end)
+ LFT (.45,1); % bL: end of loop
+ PEN; draw Tl--TR{dir225} % top bar
+ ..{down}bl..{right}BC..{up}br..{left}CC..bL; % lower loop
+ endchar;
+
+beginchar(O+22,56u#,72u#,8u#); "Pisces";
+ corners;
+ HOR (1/5,4/5); Top (1/2);
+ PEN; draw BL..tl..TL; draw BR..tr..TR; % left and right arc
+ draw tl--tr; % vertical bar
+ endchar;
+
+beginchar(O+23,44u#,72u#,12u#); "Saturnus 2";
+ corners; Centers (4/9,8/11);
+ HOR (0,8/9); Top (19/22);
+ RT (6.3/11,1); % bR
+ Bl:=2/9[BL,BR]; Bot(.8/12); % Bl, bl
+ bC:=1/5[BC,TC]; % bC
+ SPEN; draw tl--tr; draw CC--TC; % upper cross
+ PEN; draw CC{right}..{down}bR..bC..{dir250}bl..{dir-70}Bl; % lower arc
+ endchar;
+
+beginchar(O+27,76u#,50u#,-22u#); "Aquarius 2";
+ corners;
+ % upper strokes:
+ Centers (3/5,1/2); % CL and CC : left stroke (left end, right bottom)
+ TOP (1/4,5/6); % Tl and Tr : left stroke (left top, right end)
+ % Tr and CR : right stoke (left and right end)
+ PEN; draw (CL+vP)..{right}Tl..{right}(CC+vP)..{dir20}(Tr-vP/2); %left stroke
+ draw Tr..{right}(CR+vP); % right stroke
+ picture upper; upper:= currentpicture;
+ addto currentpicture also upper shifted (0,-(h+d)/2);
+ endchar;
+
+beginchar(O+28,78u#,56u#,-9u#); "Aquarius 3";
+ Corners(P,P,(h+d)/2+P,P);
+ % upper stroke : points on central line:
+ centers; % CL and CR : ends
+ HOR (1/5,3/5); Bot(1/2); % bl and br : down crossing
+ HOR (2/5,4/5); Top(1/2); % tl and tr : up crossing
+ PEN;
+ draw CL{up}..bl{down}..tl{up}..br{down}..tr{up}..CR{down};
+ picture upper; upper:= currentpicture; % lower stroke
+ addto currentpicture also upper shifted (0,-(h+d)/2);
+ endchar;
+
+beginchar(O+29,U#,U#,0u#); "Terra 2";
+ corners; centers;
+ VV:=(BC-BL) rotated 90;
+ TC:=CC+VV; BC:=CC-VV;
+ PEN; draw TC..CR..BC..CL..TC..cycle; % circle
+ draw BC--TC; draw CL--CR; % cross in circle
+ endchar;
+
+beginchar(O+32,88u#,56u#,0); "Libra 3"; % larger variant
+ corners;
+ Centers (1/2,7/15); % CL and CR : upper bars (outer ends)
+ TOP (1/4,3/4);
+ VV:=(TC-Tl) rotated -90;
+ tl:=Tl+VV; tr:=Tr+VV; % tl and tr : upper arc (left and right)
+ R:=length(VV); D:=length(TC-CC); % calculating intersection of
+ t:=(R+-+(D-R))/length(BR-BL); % upper arc with upper bars
+ HOR (1/2-t,1/2+t); Bot (7/15); % (bl and cl renamed:)
+ Cl:=bl; Cr:=br; % Cl and Cr : upper arc (inner ends)
+ bL:=CL-vP; bl:=Cl-vP; br:=Cr-vP; bR:=CR-vP; % shift upper bars slightly down
+% CL:=CL+8u;CR:=CR+8u; % left and right points
+ CL:=1/3[bL,TL];CR:=1/3[bR,TR]; % left and right points
+ PEN; draw BL--BR; % bottom bar
+ draw (CL+vP)--bL--bl--Cl % left and right upper bar
+ & Cl..{up}tl..{right}TC..{down}tr..Cr % upper arc
+ & Cr--br--bR--(CR+vP);
+ endchar;
+
+%% moon : phases
+
+beginchar(O+10,10/11U#,U#,0u#); "Luna = (moon) last quarter";
+ corners; Centers(4/11,1/2);
+ VV:=(TL-BL)/2; HH:=VV rotated -90;
+ BC:=BL+HH; TC:=TL+HH; % CL=BL+VV;
+ R:=length(HH); D:=length(BR-BL);
+ t:=(R+-+(D-R))/2R;
+ RT (1/2-t,1/2+t);
+ PEN; draw tR..TC..CL..BC..bR; % big circle
+ draw tR..CC..bR; % small circle
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+41,10/11U#,U#,0u#); "(moon) first quarter";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+42,10/11U#,U#,0u#); "(moon) last quarter - inverse";
+ PEN; filldraw tR..TC..CL..BC..bR % big circle
+ & bR..CC..tR -- cycle; % small circle
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+43,10/11U#,U#,0u#); "(moon) first quarter - inverse";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+52,1.4U#,1.05U#,.35U#); "Pallas";
+ corners; Centers (.5,.4);
+ PEN; draw TC--CL--CR--TC; % top triangle
+ SPEN; cross (CC,BC, 1,-2P); % bottom cross
+ endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% reset O if 200 + char number > 255 ( uniform (thin) )
+if O = 200 : O := 122 fi ;
+
+a:=(sqrt3)/2; % ratio (equilateral triangle)
+ % used chars ( 58 60 ) 61 ( 63 )
+beginchar(O+61,U#/a+2P#,U#+P#,.P#); "Trigon";
+ corners; centers;
+ PEN; draw TC--BL--BR--TC; % triangle
+ endchar;
+
+beginchar(O+64,68u#,80u#,0); "ascending node of moon";
+ Corners(P,P,P,P); centers; % TC
+ HOR (1/6,5/6); Top (3/4); % tl and tr : main arc (left and right)
+ BOT (1/3,2/3); rr:=(Bl-BL)/2;
+ bL:=BL+(rr rotated 90); bl:=bL+2rr; % bL and bl : lower left circle
+ bR:=BR+(rr rotated 90); br:=bR-2rr; % bR and br : lower right circle
+ PEN; draw bl{up}..{down}bL..{up}bl % lower left circle
+ ..{up}tl..{right}TC..{down}tr % main arc
+ ..{down}br..{up}bR..br{down}; % lower right circle
+ endchar;
+
+temp := currentpicture;
+beginchar(O+65,68u#,80u#,0); "descending node of moon";
+ currentpicture := ( temp yscaled -1 ) shifted ( 0,h );
+ endchar;
+
+endinput;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of ASTROSYM.UNI %%%
diff --git a/Master/texmf-dist/fonts/source/public/astro/astrosym.xtr b/Master/texmf-dist/fonts/source/public/astro/astrosym.xtr
new file mode 100644
index 00000000000..1d9489d92df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/astro/astrosym.xtr
@@ -0,0 +1,115 @@
+% ASTROSYM.XTR : AstroSym (Version 2.20, Aug. 10, 2002) - file 7 of 8
+% Peter Schmitt eMail: Peter.Schmitt@univie.ac.at
+% Institute of Mathematics, University of Vienna Vienna, Austria
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(O+0,U#,U#,0u#); "(moon face) full moon";
+ corners; centers;
+ VV:=(BC-BL) rotated 90;
+ TC:=CC+VV; BC:=CC-VV; D:=U/9;
+ hh:=(U/6,0); vv:=(0,U/6);
+ PEN; draw TC..CR..BC..CL..TC..cycle; % circle
+ Pen; draw CC--(CC-vv); % nose
+ filldraw fullcircle scaled D shifted (CC-hh+vv/2); % left eye
+ filldraw fullcircle scaled D shifted (CC+hh+vv/2); % right eye
+ draw (CC-vv-hh)..(CC-1.8vv)..(CC-vv+hh); % mouth
+ draw (CC-vv+hh)..(CC-1.5vv)..(CC-vv-hh);
+ endchar;
+
+beginchar(O+1,U#,U#,0u#); "(moon face) new moon";
+ PEN; fill TC..CR..BC..CL..TC..cycle; % circle
+ Pen; undraw CC--(CC-vv); % nose
+ unfilldraw fullcircle scaled D shifted (CC-hh+vv/2); % left eye
+ unfilldraw fullcircle scaled D shifted (CC+hh+vv/2); % right eye
+ undraw (CC-vv-hh)..(CC-1.8vv)..(CC-vv+hh); % mouth
+ undraw (CC-vv+hh)..(CC-1.5vv)..(CC-vv-hh);
+ endchar;
+
+ path moon;
+beginchar(O+2,2/3U#,U#,0u#); "(moon face) last quarter";
+ corners; Centers(3/4,1/2);
+ VV:=(TL-BL)/2; HH:=VV rotated -90;
+ BC:=BL+HH; TC:=TL+HH; % CL=BL+VV;
+ R:=length(HH); D:=length(BR-BL);
+ t:=(R+-+(D-R))/2R;
+ RT (1/2-t,1/2+t);
+ rr:=(2u,2u); ll:=(-5u,-3u); mm:=(0,-5u);
+ moon := bR..BC..CL..TC..tR % outer circle
+ & tR..{dir -45}(CC+rr) % forehead
+ & {dir 180}(CC+rr)..(CC+ll)..(CC+2ll){dir 180} % nose
+ & (CC+2ll){dir -10}..(CC+mm)
+ & (CC+mm){dir -135}..bR % mouth
+ & bR--cycle; % chin
+ D:=U/9; filldraw fullcircle scaled D shifted (CC-hh+vv/2); % eye
+ Pen; draw moon;
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+3,2/3U#,U#,0u#); "(moon face) first quarter";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+4,2/3U#,U#,0u#); "(moon face) last quarter - inverse";
+ fill moon;
+ D:=U/9; unfilldraw fullcircle scaled D shifted (CC-hh+vv/2); % eye
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+5,2/3U#,U#,0u#); "(moon face) first quarter - inverse";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+endinput;
+
+beginchar(O+6,U#,U#,0u#); "full moon";
+ corners; centers;
+ VV:=(BC-BL) rotated 90;
+ TC:=CC+VV; BC:=CC-VV; D:=U/9;
+ hh:=(U/6,0); vv:=(0,U/6);
+ PEN; draw TC..CR..BC..CL..TC..cycle; % circle
+ endchar;
+
+beginchar(O+7,U#,U#,0u#); "new moon";
+ fill TC..CR..BC..CL..TC..cycle; % disk
+ shade (CL,CR, BC,TC);
+ Pen; draw TC..CR..BC..CL..TC..cycle; % circle
+ endchar;
+
+ temp:=currentpicture;
+beginchar(O+8,2/3U#,U#,0u#); "Luna 2 = (moon 2) last quarter";
+ corners; Centers(3/4,1/2);
+ VV:=(TL-BL)/2; HH:=VV rotated -90;
+ BC:=BL+HH; TC:=TL+HH; % CL=BL+VV;
+ R:=length(HH); D:=length(BR-BL);
+ t:=(R+-+(D-R))/2R;
+ RT (1/2-t,1/2+t);
+ currentpicture := temp;
+ Pen; unfilldraw tR..TC..CL..BC..bR % outer circle
+ & bR..CC..tR % inner arc
+ & tR--cycle;
+ cullit;
+ Pen; draw tR..TC..CL..BC..bR; % outer circle
+ draw tR..CC..bR; % inner arc
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+9,2/3U#,U#,0u#); "(moon 2) first quarter";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+beginchar(O+9,2/3U#,U#,0u#); "(moon 2) last quarter - inverse";
+ PEN; filldraw tR..TC..CL..BC..bR % big circle
+ & bR..CC..tR -- cycle; % small circle
+ cullit; addto currentpicture also -temp; cullit;
+ Pen; draw tR..TC..CL..BC..bR % big circle
+ & bR..CC..tR -- cycle; % small circle
+ endchar;
+
+ temp := currentpicture;
+beginchar(O+10,2/3U#,U#,0u#); "(moon 2) first quarter - inverse";
+ currentpicture := temp xscaled -1 shifted (w,0);
+ endchar;
+
+endinput;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of ASTROSYM.XTR %%%
diff --git a/Master/texmf-dist/fonts/source/public/backgammon/bg.mf b/Master/texmf-dist/fonts/source/public/backgammon/bg.mf
new file mode 100644
index 00000000000..57fde2d5635
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/backgammon/bg.mf
@@ -0,0 +1,1098 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bg.mf : A character set to draw backgammon matches in LaTeX %
+% %
+% Copyright by J. Richter 1994 %
+% %
+% Distribution and use is free, as long as you don't change this file %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+
+size# := 30pt#; % Length of the edge of one square
+number_shadepoints := 15; % Numbers of pixels for black point per row
+
+pensize# := size#/100;
+
+define_pixels(size, pensize);
+
+whitecheckersize := size-3*pensize;
+blackcheckersize := size;
+digitpensize := 5*pensize;
+
+erasediameter := size/2;
+
+font_x_height size#;
+font_quad size#;
+
+%%%%%%%%%%%%%%%%
+% upwhitepoint %
+%%%%%%%%%%%%%%%%
+
+def upwhitepoint(expr i) =
+
+pickup pencircle scaled pensize;
+
+draw (0.1*i*size,0pt)--(0.1*(i+1)*size,size);
+draw ((0.9-i*0.1)*size,size)--((1-i*.1)*size,0pt);
+
+enddef; % upwhitepoint
+
+%%%%%%%%%%%%%%%%%%
+% downwhitepoint %
+%%%%%%%%%%%%%%%%%%
+
+def downwhitepoint(expr i) =
+
+pickup pencircle scaled pensize;
+
+draw (0.1*i*size,size)--(0.1*(i+1)*size,0pt);
+draw ((0.9-i*0.1)*size,0pt)--((1-i*.1)*size,size);
+
+enddef; % downwhitepoint
+
+%%%%%%%%%%%%%%%%
+% upblackpoint %
+%%%%%%%%%%%%%%%%
+
+def upblackpoint(expr i) =
+
+boolean first_time;
+
+x := 0;
+y := 0;
+
+if 2*round(i/2)=i:
+ offset := 0;
+else :
+ offset := size/(2number_shadepoints);
+fi;
+
+pickup pencircle scaled 2pensize;
+
+for y = 1 upto number_shadepoints :
+ if offset = 0 :
+ offset := size/(2number_shadepoints)
+ else :
+ offset := 0;
+ fi;
+ for x = 0 upto number_shadepoints - 1:
+ if (0.1*(i+y/number_shadepoints)*size< x*(size/number_shadepoints)+offset) and
+ ((1-(i+y/number_shadepoints)*0.1)*size > x*(size/number_shadepoints)+offset):
+ drawdot (x*(size/number_shadepoints)+offset,y*(size/number_shadepoints));
+ fi;
+ endfor;
+endfor;
+
+pickup pencircle scaled pensize;
+
+draw (0.1*i*size,0pt)--(0.1*(i+1)*size,size);
+draw ((0.9-i*0.1)*size,size)--((1-i*.1)*size,0pt);
+
+enddef; % upblackpoint
+
+%%%%%%%%%%%%%%%%%%
+% downblackpoint %
+%%%%%%%%%%%%%%%%%%
+
+def downblackpoint(expr i) =
+
+boolean first_time;
+
+x := 0;
+y := 0;
+if 2*round(i/2)=i:
+ offset := size/(2number_shadepoints);
+else :
+ offset := 0;
+fi;
+
+pickup pencircle scaled 2pensize;
+
+for y = 1 upto number_shadepoints :
+ if offset = 0 :
+ offset := size/(2number_shadepoints)
+ else :
+ offset := 0;
+ fi;
+ for x = 0 upto number_shadepoints - 1:
+ if (0.1*(i+(1-y/number_shadepoints))*size< x*(size/number_shadepoints)+offset) and
+ ((1-(i+(1-y/number_shadepoints))*0.1)*size > x*(size/number_shadepoints)+offset):
+ drawdot (x*(size/number_shadepoints)+offset,y*(size/number_shadepoints));
+ fi;
+ endfor;
+endfor;
+
+pickup pencircle scaled pensize;
+
+draw (0.1*i*size,size)--(0.1*(i+1)*size,0pt);
+draw ((0.9-i*0.1)*size,0pt)--((1-i*.1)*size,size);
+
+enddef; % upblackpoint
+
+%%%%%%%%%%%%%%%%
+% whitechecker %
+%%%%%%%%%%%%%%%%
+
+def whitechecker =
+
+pickup pencircle scaled 3pensize;
+
+erase fill fullcircle scaled whitecheckersize shifted (size/2, size/2);
+draw fullcircle scaled whitecheckersize shifted (size/2, size/2);
+
+enddef; % whitechecker
+
+%%%%%%%%%%%%%%%%
+% blackchecker %
+%%%%%%%%%%%%%%%%
+
+def blackchecker =
+
+pickup pencircle scaled 3pensize;
+
+fill fullcircle scaled blackcheckersize shifted (size/2, size/2);
+
+enddef; % blackchecker
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Macros to draw the digits from 0 to 9 %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+def drawdigit_zero(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+draw (xstart+scale*size/4,ystart+scale*size){right}..(xstart+scale*size/2,ystart+scale*size/2){down}..(xstart+scale*size/4,ystart+scale*0){left}..(xstart+scale*0,ystart+scale*size/2){up}..cycle;
+
+enddef; %drawdigit_zero
+
+def drawdigit_one(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+draw (xstart+scale*0,ystart+scale*3size/4)--(xstart+scale*size/4,ystart+scale*size)--(xstart+scale*size/4,ystart+scale*0);
+draw (xstart+scale*0,ystart+scale*0)--(xstart+scale*size/2,ystart+scale*0);
+
+enddef; %drawdigit_one
+
+def drawdigit_two(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+draw (xstart+scale*0,ystart+scale*3size/4){up}..(xstart+scale*size/4,ystart+scale*size){right}..(xstart+scale*size/2,ystart+scale*3size/4){down}..(xstart+scale*0,ystart+scale*0){dir 270};
+draw(xstart+scale*0,ystart+scale*0)--(xstart+scale*size/2,ystart+scale*0);
+
+enddef; %drawdigit_two
+
+def drawdigit_three(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+draw (xstart+scale*0,ystart+scale*7size/8){dir 45}..(xstart+scale*size/4,ystart+scale*size){right}..(xstart+scale*size/2,ystart+scale*13size/16){down}..(xstart+scale*size/8,ystart+scale*55size/100){left};
+draw (xstart+scale*size/8,ystart+scale*55size/100){right}..(xstart+scale*size/2,ystart+scale*5size/16){down}..(xstart+scale*size/4,ystart+scale*0){left}..(xstart+scale*0,ystart+scale*size/8){up};
+
+enddef; %drawdigit_three
+
+def drawdigit_four(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+
+draw (xstart+scale*size/2,ystart+scale*size/4)--(xstart+scale*0,ystart+scale*size/4)--(xstart+scale*3size/8,ystart+scale*size)--(xstart+scale*3size/8,ystart+scale*0)
+
+enddef; %drawdigit_four
+
+def drawdigit_five(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+
+draw (xstart+scale*size/2,ystart+scale*size)--(xstart+scale*0,ystart+scale*size)--(xstart+scale*0,ystart+scale*55size/100){dir 13}..(xstart+scale*size/2,ystart+scale*size/4){down}..(xstart+scale*size/4,ystart+scale*0){left}..(xstart+scale*0,ystart+scale*size/4){up}
+
+enddef; %drawdigit_five
+
+def drawdigit_six(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+
+draw (xstart+scale*size/2,ystart+scale*size){left}..(xstart+scale*0,ystart+scale*3size/10){down}..(xstart+scale*size/4,ystart+scale*0){right}..(xstart+scale*size/2,ystart+scale*3size/10){up}..(xstart+scale*size/4,ystart+scale*6size/10){left}..(xstart+scale*0,ystart+scale*3size/10){down}
+
+enddef; %drawdigit_six
+
+def drawdigit_seven(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+
+draw (xstart+scale*0,ystart+scale*size)--(xstart+scale*size/2,ystart+scale*size)--(xstart+scale*0,ystart+scale*0)
+
+enddef; %drawdigit_seven
+
+def drawdigit_eight(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+
+diameter1 := scale*0.9size/2;
+diameter2 := scale*1.1size/2;
+draw fullcircle scaled diameter1 shifted (xstart+scale*size/4,ystart+scale*1.55size/2);
+draw fullcircle scaled diameter2 shifted (xstart+scale*size/4,ystart+scale*0.55size/2);
+
+enddef; %drawdigit_eight
+
+def drawdigit_nine(expr xstart,ystart,scale) =
+
+pickup pencircle xscaled digitpensize yscaled pensize;
+
+draw (xstart+scale*0,ystart+scale*0){right}..(xstart+scale*size/2,ystart+scale*7size/10){up}..(xstart+scale*size/4,ystart+scale*size){left}..(xstart+scale*0,ystart+scale*7size/10){down}..(xstart+scale*size/4,ystart+scale*4size/10){right}..(xstart+scale*size/2,ystart+scale*7size/10){up}
+
+enddef; %drawdigit_nine
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The numbers from 1 to 24 to number the boardpoints %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(128, size#, size#, 0);
+
+drawdigit_one(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(129, size#, size#, 0);
+
+drawdigit_two(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(130, size#, size#, 0);
+
+drawdigit_three(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(131, size#, size#, 0);
+
+drawdigit_four(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(132, size#, size#, 0);
+
+drawdigit_five(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(133, size#, size#, 0);
+
+drawdigit_six(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(134, size#, size#, 0);
+
+drawdigit_seven(0.44size,0.35size,0.3)
+
+endchar;
+
+beginchar(135, size#, size#, 0);
+
+drawdigit_eight(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(136, size#, size#, 0);
+
+drawdigit_nine(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(137, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_zero(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(138, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_one(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(139, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_two(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(140, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_three(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(141, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_four(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(142, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_five(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(143, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_six(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(144, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_seven(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(145, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_eight(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(146, size#, size#, 0);
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_nine(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(147, size#, size#, 0);
+
+drawdigit_two(0.32size,0.35size,0.3)
+drawdigit_zero(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(148, size#, size#, 0);
+
+drawdigit_two(0.32size,0.35size,0.3)
+drawdigit_one(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(149, size#, size#, 0);
+
+drawdigit_two(0.32size,0.35size,0.3)
+drawdigit_two(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(150, size#, size#, 0);
+
+drawdigit_two(0.32size,0.35size,0.3)
+drawdigit_three(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(151, size#, size#, 0);
+
+drawdigit_two(0.32size,0.35size,0.3)
+drawdigit_four(0.55size,0.35size,0.3)
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% checkers with numbers on it %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+code := 142;
+
+for background = 1 upto 5:
+
+for colour = 1 upto 2:
+
+code := code + 10;
+
+beginchar(code, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+drawdigit_six(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(code+1, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+
+drawdigit_seven(0.44size,0.35size,0.3)
+
+endchar;
+
+beginchar(code+2, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+
+drawdigit_eight(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(code+3, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+
+drawdigit_nine(0.425size,0.35size,0.3)
+
+endchar;
+
+beginchar(code+4, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_zero(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(code+5, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_one(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(code+6, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_two(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(code+7, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_three(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(code+8, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_four(0.55size,0.35size,0.3)
+
+endchar;
+
+beginchar(code+9, size#, size#, 0);
+
+if background = 2: downwhitepoint(4) fi
+if background = 3: downblackpoint(4) fi
+if background = 4: upwhitepoint(4) fi
+if background = 5: upblackpoint(4) fi
+
+if colour = 1: whitechecker
+else: blackchecker
+fi
+
+erase fill (size/4,size/4)--(size/4,3size/4)--(3size/4,3size/4)--(3size/4,size/4)--cycle;
+
+
+drawdigit_one(0.32size,0.35size,0.3)
+drawdigit_five(0.55size,0.35size,0.3)
+
+endchar;
+
+endfor;
+
+endfor;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% white points without checkers %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("a", size#, size#, 0);
+
+upwhitepoint(0)
+
+endchar;
+
+beginchar("b", size#, size#, 0);
+
+upwhitepoint(1)
+
+endchar;
+
+beginchar("c", size#, size#, 0);
+
+upwhitepoint(2)
+
+endchar;
+
+beginchar("d", size#, size#, 0);
+
+upwhitepoint(3)
+
+endchar;
+
+beginchar("e", size#, size#, 0);
+
+upwhitepoint(4)
+
+endchar;
+
+beginchar("k", size#, size#, 0);
+
+downwhitepoint(0)
+
+endchar;
+
+beginchar("l", size#, size#, 0);
+
+downwhitepoint(1)
+
+endchar;
+
+beginchar("m", size#, size#, 0);
+
+downwhitepoint(2)
+
+endchar;
+
+beginchar("n", size#, size#, 0);
+
+downwhitepoint(3)
+
+endchar;
+
+beginchar("o", size#, size#, 0);
+
+downwhitepoint(4)
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% black points without checkers %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("f", size#, size#, 0);
+
+upblackpoint(0)
+
+endchar;
+
+beginchar("g", size#, size#, 0);
+
+upblackpoint(1)
+
+endchar;
+
+beginchar("h", size#, size#, 0);
+
+upblackpoint(2)
+
+endchar;
+
+beginchar("i", size#, size#, 0);
+
+upblackpoint(3)
+
+endchar;
+
+beginchar("j", size#, size#, 0);
+
+upblackpoint(4)
+
+endchar;
+
+beginchar("p", size#, size#, 0);
+
+downblackpoint(0)
+
+endchar;
+
+beginchar("q", size#, size#, 0);
+
+downblackpoint(1)
+
+endchar;
+
+beginchar("r", size#, size#, 0);
+
+downblackpoint(2)
+
+endchar;
+
+beginchar("s", size#, size#, 0);
+
+downblackpoint(3)
+
+endchar;
+
+beginchar("t", size#, size#, 0);
+
+downblackpoint(4)
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% white points with white checkers %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("A", size#, size#, 0);
+
+upwhitepoint(0)
+whitechecker
+
+endchar;
+
+beginchar("B", size#, size#, 0);
+
+upwhitepoint(1)
+whitechecker
+
+endchar;
+
+
+beginchar("C", size#, size#, 0);
+
+upwhitepoint(2)
+whitechecker
+
+endchar;
+
+beginchar("D", size#, size#, 0);
+
+upwhitepoint(3)
+
+whitechecker
+endchar;
+
+beginchar("E", size#, size#, 0);
+
+upwhitepoint(4)
+whitechecker
+
+endchar;
+
+beginchar("K", size#, size#, 0);
+
+downwhitepoint(0)
+whitechecker
+
+endchar;
+
+beginchar("L", size#, size#, 0);
+
+downwhitepoint(1)
+whitechecker
+
+endchar;
+
+beginchar("M", size#, size#, 0);
+
+downwhitepoint(2)
+whitechecker
+
+endchar;
+
+beginchar("N", size#, size#, 0);
+
+downwhitepoint(3)
+
+whitechecker
+endchar;
+
+beginchar("O", size#, size#, 0);
+
+downwhitepoint(4)
+whitechecker
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% white points with black checkers %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("0", size#, size#, 0);
+
+upwhitepoint(0)
+blackchecker
+
+endchar;
+
+beginchar("1", size#, size#, 0);
+
+upwhitepoint(1)
+blackchecker
+
+endchar;
+
+
+beginchar("2", size#, size#, 0);
+
+upwhitepoint(2)
+blackchecker
+
+endchar;
+
+beginchar("3", size#, size#, 0);
+
+upwhitepoint(3)
+
+blackchecker
+endchar;
+
+beginchar("4", size#, size#, 0);
+
+upwhitepoint(4)
+blackchecker
+
+endchar;
+
+beginchar("P", size#, size#, 0);
+
+downwhitepoint(0)
+blackchecker
+
+endchar;
+
+beginchar("Q", size#, size#, 0);
+
+downwhitepoint(1)
+blackchecker
+
+endchar;
+
+beginchar("R", size#, size#, 0);
+
+downwhitepoint(2)
+blackchecker
+
+endchar;
+
+beginchar("S", size#, size#, 0);
+
+downwhitepoint(3)
+
+blackchecker
+endchar;
+
+beginchar("T", size#, size#, 0);
+
+downwhitepoint(4)
+blackchecker
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% black points with white checkers %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("F", size#, size#, 0);
+
+upblackpoint(0);
+whitechecker;
+
+endchar;
+
+beginchar("G", size#, size#, 0);
+
+upblackpoint(1);
+whitechecker;
+
+endchar;
+
+beginchar("H", size#, size#, 0);
+
+upblackpoint(2);
+whitechecker;
+
+endchar;
+
+beginchar("I", size#, size#, 0);
+
+upblackpoint(3);
+
+whitechecker;
+endchar;
+
+beginchar("J", size#, size#, 0);
+
+upblackpoint(4);
+whitechecker;
+
+endchar;
+
+beginchar("U", size#, size#, 0);
+
+downblackpoint(0);
+whitechecker;
+
+endchar;
+
+beginchar("V", size#, size#, 0);
+
+downblackpoint(1);
+whitechecker;
+
+endchar;
+
+
+beginchar("W", size#, size#, 0);
+
+downblackpoint(2);
+whitechecker;
+
+endchar;
+
+beginchar("X", size#, size#, 0);
+
+downblackpoint(3);
+
+whitechecker;
+endchar;
+
+beginchar("Y", size#, size#, 0);
+
+downblackpoint(4);
+whitechecker;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% black points with black checkers %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("5", size#, size#, 0);
+
+upblackpoint(0)
+blackchecker
+
+endchar;
+beginchar("6", size#, size#, 0);
+
+upblackpoint(1)
+blackchecker
+
+endchar;
+
+
+beginchar("7", size#, size#, 0);
+
+upblackpoint(2)
+blackchecker
+
+endchar;
+
+beginchar("8", size#, size#, 0);
+
+upblackpoint(3)
+
+blackchecker
+endchar;
+
+beginchar("9", size#, size#, 0);
+
+upblackpoint(4)
+blackchecker
+
+endchar;
+
+beginchar("u", size#, size#, 0);
+
+downblackpoint(0)
+blackchecker
+
+endchar;
+
+beginchar("v", size#, size#, 0);
+
+downblackpoint(1)
+blackchecker
+
+endchar;
+
+beginchar("w", size#, size#, 0);
+
+downblackpoint(2)
+blackchecker
+
+endchar;
+
+beginchar("x", size#, size#, 0);
+
+downblackpoint(3)
+
+blackchecker
+endchar;
+
+beginchar("y", size#, size#, 0);
+
+downblackpoint(4)
+blackchecker
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%
+% An empty square %
+%%%%%%%%%%%%%%%%%%%
+
+beginchar("z", size#, size#, 0);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% A (left or right) border %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("Z", pensize#, size#, 0);
+
+pickup pencircle scaled pensize;
+
+draw (0pt,0pt)--(0pt,size);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% An (upper or lower) border %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("-", size#, pensize#, 0);
+
+pickup pencircle scaled pensize;
+
+draw (0pt,0pt)--(size,0pt);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% A "boarderthick" filler %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(0, pensize#, pensize#, 0);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%
+% A black Checker %
+%%%%%%%%%%%%%%%%%%%
+
+beginchar("@", size#, size#, 0);
+
+blackchecker
+
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%%
+% A white Checker %
+%%%%%%%%%%%%%%%%%%%
+
+beginchar("*", size#, size#, 0);
+
+whitechecker
+
+endchar;
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bang10.mf b/Master/texmf-dist/fonts/source/public/bangtex/bang10.mf
new file mode 100644
index 00000000000..0f7afb2251d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bang10.mf
@@ -0,0 +1,100 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bang10.mf: METAFONT file that defines the Bengali alphabet (regular)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+def makebox(text rule) =
+ for y=0,h,matra_f*h,matra_f*h/2,-d:
+ rule((0,y)t_,(w,y)t_);
+ endfor % horizontals
+ for x=0,w:
+ rule((x,-d)t_,(x,h)t_);
+ endfor % verticals
+ for rv=1 upto floor(w/1pt):
+ for x=1pt*rv:
+ rule((x,-d)t_,(x,h)t_);
+ endfor
+ endfor% more verticals
+enddef;
+
+
+
+mode_setup;
+font_size 10pt#;
+u# = 1/3pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+numeric stem_width, stem_slope;
+numeric matra_thickness, matra_f, matra_h,matra_t, matra_slope;
+numeric dot_diam, ball_hang, ha_dip;
+numeric lindent, rindent;
+numeric xmag; xmag = 1;
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% matra_thickness should be removed at the end
+%%%%%%%%%%%%%%%%%%%%%%%%%
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+stem_width = xmag*.55pt;
+stem_slope = 45;
+dot_diam = 1pt; % diameter of dots in "ra", "ya" etc.
+matra_thickness = .75pt;
+matra_slope = 115;
+matra_f = .75; % fraction of h where normally the top end of matras rest
+matra_t = 3/50; % thickness of matras as a fraction of matra_f
+matra_h = matra_f-.5matra_t;
+ball_hang = .7pt;
+ha_dip = .7pt; % the depth by which the end of "ha" dips below baseline
+lindent = 1.5stem_width;
+rindent = 1.5stem_width;
+numball_one = 9/50*8pt; % large balls used in numerals
+numball_two = 0.8*numball_one; % small balls used in numerals
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 0;
+
+
+
+input bangbase;
+end;
+
+%%% End of bang10.mf
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangbase.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangbase.mf
new file mode 100644
index 00000000000..183e369856a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangbase.mf
@@ -0,0 +1,49 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangbase.mf: METAFONT file that calls the base files
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+input bangmac;
+input bangdefs;
+
+input bangvow;
+input bangkaar;
+input bangconso;
+input bangfala;
+input bangnum;
+input bangpunc;
+input banghalf;
+input bangjuk;
+input banglig;
+
+%% End of the file bangbase.mf
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangconso.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangconso.mf
new file mode 100644
index 00000000000..e9990517a74
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangconso.mf
@@ -0,0 +1,483 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangconso.mf: METAFONT file that defines bangla consonants
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar("k", 19u#, stht#,stdp#); "The letter ka";
+ numeric wba; wba = 14/19w;
+ ka(0,0,wba,h);
+ matra(0,w);
+endchar;
+
+
+beginchar("x", 16u#, stht#,stdp#); "The letter kha";
+ numeric xstem,height,balld,phi;
+ xstem=w-rindent; height=matra_f*h; balld=.18h; phi=-90;
+ matra(xstem,w);
+ z2l = (7.5/43w,43/50height);
+ z2r = z2l + .5balld * dir(phi) + .02w * dir(phi+90);
+ z3l = (.5w,matra_f*h);
+ z3r = (.52w,.63h);
+ z4r = (26.5/43w,41/50height);
+ z4l = (30/43w,38/50height);
+ z5r = (6/43w,30/50height);
+ z6l = (13/43w,22/50height);
+ z5l = .7[z5r,z6l];
+ z6r = z5r;
+ z7 = (xstem,height);
+ fill fullcircle scaled balld shifted (z2l);
+ penstroke z2e{right}..z3e;
+ penstroke z3e..z4e{down}..{left}z5e;
+ hookstem(z6r,z6l,z7,0,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("g", 14u#, stht#,stdp#); "The letter ga";
+ numeric xstem,hh,hrise; hh = .9h; hrise = matra_f*(h-hh);
+ xstem=w-rindent;
+ stem(xstem);
+ matra(xstem,w);
+ ga_(0,hrise,xstem,hh);
+endchar;
+
+beginchar("G", 15u#, stht#,stdp#); "The letter gha";
+ numeric xstem,height; xstem = w-rindent; height = matra_f*h;
+ matra(0,w); stem(xstem);
+% The upper left portion
+ z1l = (4/42w,matra_h*h); penpos1(11/42w,0);
+ z2l = (22/42w,37/50height);
+ z2r = (28/42w,34/50height);
+ z3 = (12.5/42w,20/50height);
+ fill z1l..{z2r-z3}z2r--z2l{z3-z2r}..z1r--cycle;
+% The portion going towards lower left
+ cwbar(z2l,z2r,z3,angle(z1r-z2r));
+% The hook and the stem
+ z4 = 7/21[z3,z2r];
+ z5 = (xstem,matra_h*h);
+ hookstem(z4,z3,z5,0,angle(z2r-z2l));
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(130, 17u#, stht#,stdp#); "The letter unga";
+ unga(0,0,w,matra_f*h);
+endchar;
+
+beginchar("c", 13u#, stht#,stdp#); "The letter ca";
+ ca(0,0,w,h);
+ matra(0,w);
+endchar;
+
+beginchar("q",15.5u#,stht#,stdp#); "The letter cha";
+ numeric hh,hrise; hh=h;
+ hrise = matra_f*(h-hh);
+ cha(0,hrise,w,hh);
+ currenttransform := identity slanted slantval;
+ matra(0,w);
+endchar;
+
+beginchar("j", 20u#, stht#,stdp#); "The letter ja";
+ ja_full(0,0,w,h);
+ matra(0,w);
+endchar;
+
+beginchar("C", 18u#, stht#,stdp#); "The letter jha";
+ numeric wba,xstem; wba = 14/18w; xstem = wba-rindent;
+ ba(0,0,xstem,h);
+ matra(0,xstem);
+% Now the part to the right
+ z6 = (.87w,.14h);
+ z7 = (xstem,.43h);
+ z8 = (x7,.35h);
+ hookjt(z8,z7,z6,.07h,.4,90);
+ halfstem(x6,matra_f*h,.13h);
+ matra(x6,w);
+ penlabels (1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(131, 26u#, stht#,stdp#); "The letter ina";
+ ina(0,0,w,h);
+endchar;
+
+beginchar("T", 13u#, stht#,stdp#); "The letter Ta";
+ numeric balld; balld = .19h;
+ matra(0,w);
+ Dha(0,0,w,h);
+% The Tiki
+ Tiki (.9w,.1w);
+endchar;
+
+beginchar("F", 13u#, stht#,stdp#); "The letter Tha";
+ numeric width; width = .13w;
+% The bag
+ z1 = (.61w,matra_f*h-.5matra_thickness); penpos1(width,0);
+ z2 = (.23w,.3h); penpos2(1.4width,-45);
+ z3l= (.5w,.06h); penpos3(.8width,90);
+ z4l= (.93w,.32h); penpos4(.8width,180);
+ z5 = z1; z5l = z1r; z5r = z1l;
+ penstroke z1e..{left}z2e;
+ penstroke z2e..{right}z3e;
+ penstroke z3e{right}..z4e{up}..z5e;
+% The antenna
+ numeric antwid; antwid = length(z1l-z1r);
+ z6 = (x1l,h);
+ pickup pencircle xscaled antwid yscaled 1.4antwid rotated 0;
+ draw z1{z1-z4}..{dir 45}z6;
+ picture shape_Tha; shape_Tha = currentpicture;
+% matra
+ matra(0,w);
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("D", 18u#, stht#,stdp#); "The letter Da";
+ numeric height; height = matra_f*h;
+ matra(0,w);
+ Da(0,0,w,height,.88);
+endchar;
+
+beginchar("Z", 13u#, stht#,stdp#); "The letter Dha";
+ matra(0,w);
+ Dha(0,0,w,h);
+endchar;
+
+beginchar("N", 13.5u#, stht#,stdp#); "The letter murdhanya na";
+ numeric xstem;
+ xstem = w - rindent;
+ matra (xstem,w);
+ stem(xstem);
+ Na_(0,0,xstem,h);
+endchar;
+
+beginchar("t", 19u#, stht#,stdp#); "The letter ta";
+ numeric height; height = matra_f*h;
+ ta(0,0,w,height);
+ matra(0,w);
+endchar;
+
+beginchar("Q", 15u#, stht#,stdp#); "The letter tha";
+ numeric xstem,balld,phi,height;
+ xstem=w-rindent; balld=.18h; height = matra_f*h;
+ matra(xstem,w);
+ z1l = (.5lindent,.6h); penpos1(.5balld,0);
+ z2r = (.4w,.68h);
+ z2l = (.33w,height);
+ z3r = (23.5/42w,36/50height); penpos3(3.5/42w,180);
+ z4r = (5/42w,27/50height);
+ z4l = (8.5/42w,20/50height);
+ z5 = (xstem,height);
+ fill fullcircle scaled balld shifted (z1r);
+ penstroke z1e{up}..{right}z2e..{down}z3e..tension1.2..{left}z4e;
+ hookstem(z4r,z4l,z5,0,0);
+ penlabels(1,2,3,4,5);
+endchar;
+
+
+beginchar("d", 14u#, stht#,stdp#); "The letter da";
+ matra(0,w);
+ da(0,0,w,h);
+endchar;
+
+beginchar("z", 14u#, stht#,stdp#); "The letter dha";
+ numeric xstem,height,theta;
+ xstem = w - rindent; height = matra_f*h; theta = 20;
+ ba(0,0,xstem,h);
+ matra(xstem,w);
+ z8l = point 16/34 of ba_pl;
+ z8r = point 22/34 of ba_pl;
+ z9l = (10.5/39w,43/50height);
+ z9r = (7/39w,43/50height);
+ z10l = (17/39w,(matra_f-matra_t)*h); penpos10(.5dot_diam,theta);
+ fill fullcircle scaled dot_diam shifted z10l;
+ fill z10r{dir (theta+90)}..z9r..{right}z8r--z8l{left}..z9l..z10l--cycle;
+ picture shape_dha;
+ currentpicture = shape_dha;
+ penlabels(8,9,10);
+endchar;
+
+
+beginchar("n", 15.5u#, stht#,stdp#); "The letter na";
+ numeric ww,xstem,height; xstem = ww = w-rindent; height = matra_f*h;
+ na(0,0,w,height,1);
+ matra(0,w);
+endchar;
+
+beginchar("p", 17u#, stht#,stdp#); "The letter pa";
+ numeric xstem,height; xstem=w-rindent; height = matra_f*h;
+ matra(xstem,w);
+ stem(xstem);
+ pa_(0,0,xstem,h);
+endchar;
+
+beginchar("f", 18.5u#, stht#,stdp#); "The letter pha";
+ numeric xstem,wJa,balld,fracrise;
+ wJa = 28/37w; xstem = wJa-rindent; balld = .16h; fracrise=.8;
+ matra(0,w);
+% The upper left portion
+ Ja(0,0,wJa,h,fracrise);
+ z6r = (xstem+.5stem_width,fracrise*matra_h*h); penpos6(stem_width,90);
+% This part is for the ball at the end of the hook
+ z7 = (.83w,.38h);
+ fill fullcircle scaled balld shifted (z7);
+% The hook
+ z8r = z7 + .5balld * dir(0); penpos8(.2balld,0);
+ penstroke z6e{right}..{down}z8e;
+ penlabels(6,7,8);
+ picture shape_pha; shape_pha = currentpicture;
+endchar;
+
+beginchar("b", 14u#, stht#,stdp#); "The letter ba";
+ numeric xstem; xstem = w - rindent;
+ matra(0,w);
+ ba(0,0,xstem,h);
+endchar;
+
+beginchar("v", 20u#, stht#,stdp#); "The letter bha";
+ numeric balld; balld = .25h;
+ matra(0,w);
+ bha(0,0,w,matra_f*h);
+endchar;
+
+beginchar("m", 15.5u#, stht#,stdp#); "The letter ma";
+ numeric xstem,theta,balld,height;
+ xstem = w-rindent; theta = -30; balld = .25h; height = matra_f*h;
+ matra(0,w);
+% The part leading to the dot
+ z1l = (4/43w,matra_h*h); penpos1(7/43w,0);
+ z2l = (21.5/43w,31/50height);
+ z2r = (26/43w,28/50height);
+ z3l = (16/43w,21/50height); penpos3(.5balld,theta);
+ fill z1l{down}..{down}z2l{down}..z3l--z3r{dir (theta+90)}..z2r..tension1.3..z1r--cycle;
+% The dot
+ fill fullcircle scaled balld shifted z3l;
+% The part to the lower right of the dot
+ z4r = z3l;
+ z4l = z3l + .5balld * dir 90;
+ z5 = (xstem,matra_h*h);
+ hookstem(z4l,z4r,z5,0,0);
+ penlabels(1,2,3,4,5);
+endchar;
+
+
+beginchar("J",15u#,stht#,stdp#); "The letter antasthya ja";
+ Ja(0,0,w,h,1);
+% The matra
+ matra(0,w);
+endchar;
+
+beginchar("r",14u#,stht#,stdp#); "The letter ra";
+ numeric xstem; xstem = w-rindent;
+ matra(0,w);
+ z6 = (.32w,.15h);
+ fill fullcircle scaled dot_diam shifted (z6);
+ ba(0,0,xstem,h);
+ penlabels (1,2,3,4,5,6);
+endchar;
+
+beginchar("l",18u#,stht#,stdp#); "The letter la";
+ numeric xstem; xstem = w - rindent;
+ la_(0,0,xstem,h);
+ stem(xstem);
+ matra(0,w);
+endchar;
+
+beginchar("H",14.5u#,stht#,stdp#); "The letter ha";
+ numeric height; height = matra_f*h;
+ Ha(0,0,w,height);
+ matra(0,w);
+endchar;
+
+beginchar("X",22u#,stht#,stdp#); "The letter khiyo";
+ khiyo(0,0,w,h);
+ matra(0,w);
+endchar;
+
+beginchar("S", 18u#, stht#,stdp#); "The letter talabya sha";
+ numeric xstem; xstem = w-rindent;
+ stem(xstem);
+ matra(xstem,w);
+ sha_(0,0,xstem,h);
+endchar;
+
+
+beginchar("P", 15u#, stht#,stdp#); "The letter murdhanya sha";
+ numeric xstem; xstem = w-rindent;
+% The upper left portion
+ z1l = (4/42w,matra_h*h); penpos1(11/42w,0);
+ z2l = (22/42w,37.5/50height);
+ z2r = (28/42w,34/50height);
+ fill z1l{down}..{z2l-z1l}z2l--z2r--z1r--cycle;
+% The portion going towards lower left
+ z3 = (12.5/42w,20/50height);
+ cwbar(z2l,z2r,z3,angle(z1r-z2r));
+% The hook
+ z4 = .33[z3,z2r];
+ z5 = (xstem,matra_h*h);
+ hookstem(z4,z3,z5,0,angle(z2r-z2l));
+% The cross through the belly
+ x6 = xstem;
+ y6 = (y1r*(x2r-x6) - y2r*(x1r-x6))/(x2r-x1r);
+ z7 = .13[z2r,z3];
+ cwbar (z7,z2r,z6,90);
+ penlabels(1,2,3,4,5,6,7);
+ picture shape_Sha; shape_Sha = currentpicture;
+ matra(0,w);
+endchar;
+
+beginchar("s",17.5u#,stht#,stdp#); "The letter dantya-sa";
+ numeric xstem,height; xstem = w-rindent; height=matra_h*h;
+ matra(0,w);
+ stem(xstem);
+ sa_(0,0,xstem,height);
+endchar;
+
+beginchar(136, 16u#, stht#,stdp#); "The letter Da-y shunyo Ra";
+ numeric height; height = matra_f*h;
+ Da(0,0,w,height,.88);
+ matra(0,w);
+% The dot
+ z9 = (.61w,-ha_dip);
+ fill fullcircle scaled dot_diam shifted (z9);
+ penlabels(9);
+endchar;
+
+beginchar(137, 13u#, stht#,stdp#); "The letter Dha-y shunyo Ra";
+ numeric balld; balld = .19h;
+ matra(0,w);
+ z1 = (lindent-.5stem_width,matra_f*h-.5matra_thickness);
+ z2 = (lindent+.5stem_width,matra_f*h-.5matra_thickness);
+ z3 = (x1,.25h);
+ z4 = (x2,y3);
+ z5 = (.35w,.09h);
+ z6 = (.39w,.2h);
+ z8 = (.69w,.41h);
+ z7 = (max(.88w,x8+.5balld),.43h);
+ fill z1{down}..{down}z3..z5{right}..tension1.5..z7--z8{down}..z6..z4{up}--z2--cycle;
+ z9 = (x8,y8+.5balld);
+ hookcirc(z9,z7,z8,balld,30);
+% The dot at the bottom
+ z10= (x6,-ha_dip);
+ fill fullcircle scaled dot_diam shifted (z10);
+ penlabels (1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar("y",14u#,stht#,stdp#); "The letter antasthya ya";
+ matra(0,w);
+ Ja(0,0,w,h,1);
+% The ball
+ z8 = (.42w,.13h);
+ fill fullcircle scaled dot_diam shifted (z8);
+ penlabels(8);
+endchar;
+
+beginchar(133,14u#,stht#,stdp#); "The letter khanda ta";
+% The dot
+ z1r = (.5w,matra_f*h); penpos1(.09h,90);
+ z2r = (.3w,.59h); penpos2(.04h,-150);
+ z3r = (.54w,.39h); penpos3(.1h,-90);
+ z4r = (.75w,.54h); penpos4(.06h,0);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+% The hanging part
+ z5r = (.7lindent,.48h); penpos5(.08h,180);
+ z6l = (x1,.3h);
+ z6r= (.5w,.19h);
+ z7l = (w,0); penpos7(.1w,180);
+ z8l = (.2[x7l,x7r],-ha_dip);
+ z8r = z7r;
+ penstroke z1e..z5e..z6e..{down}z7e..z8e;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+beginchar("K",9u#,stht#,stdp#); "The letter anuswar";
+ numeric vdiam; vdiam = .3h;
+ x1 = .5w; y1= matra_f*h - .5vdiam;
+ golla (z1,vdiam);
+ z9l = (.07w,.41h); z9r = (.24w,.23h);
+ z10 = (.96w,-.04h);
+ hookjt(z9r,z9l,z10,.03h,.1,45);
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar("h",9u#,stht#,stdp#); "The letter bisargo";
+ numeric balld; balld = .3h;
+ z1 = (.5w,.6h);
+ z2 = (x1,matra_f*h-y1);
+ golla (z1,balld);
+ golla (z2,balld);
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(132,0stwd#,stht#,stdp#); "The letter candra-bindu";
+ rt z1 = (w,h);
+ z1'= (x1+8,y1);
+ z2 = (-2rindent,matra_f*h+.5matra_thickness);
+ z3 = (-4rindent,h);
+% baTi(z1,z1',z2,z3);
+ pickup Tiki_pen; draw flex(z1,z2,z3);
+ z5 = (x2,h);
+ fill fullcircle scaled dot_diam shifted (z5);
+ penlabels(1,1',2,3,4,5);
+endchar;
+
+beginchar("B",14u#,stht#,stdp#); "The Asamiya letter ra";
+ numeric wba; wba = w - rindent;
+ z1l = (4/39wba,29/50height);
+ z3r = (8.5/39wba,23.5/50height);
+ z2l = (wba,43/50height); penpos2(5.5/50height,-90);
+ z1r = z1l + length(z2r-z2l) * dir angle(z3r-z1l);
+ path rra_pr; rra_pr = z1r{z2l-z1r}..z2r;
+ path rra_pl; rra_pl = z2l..{z1r-z2l}z1l;
+ penstroke z1e{z2l-z1r}..z2e;
+ z3l = point .2 of rra_pr;
+ fill z1l--z3l--z3r--cycle;
+ z4 = (wba,height);
+ hookstem(z3l,z3r,z4,angle(z3l-z1l),2*angle(z3l-z1l));
+ pickup pencircle scaled .6length(z3l-z3r);
+ lft top z5 = point .65 of rra_pl;
+ rt z6 = (wba,.35h);
+ draw z5--z6;
+ matra(0,w);
+ penlabels (1,2,3,4,5,6);
+endchar;
+
+beginchar("w", 14u#, stht#,stdp#); "The Asamiya letter wa";
+ numeric xstem; xstem = w - rindent;
+ matra(0,w);
+ ba(0,0,xstem,h);
+ pickup pencircle xscaled 0.1pt yscaled 0.4pt;
+ z6 = (.14w,.22h);
+ z7 = (w-2rindent, 0);
+ draw z6{right}..z7;
+ penlabels(6,7);
+endchar;
+
+%%% End of bangconso.mf \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangdefs.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangdefs.mf
new file mode 100644
index 00000000000..fb97135357d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangdefs.mf
@@ -0,0 +1,914 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangdefs.mf: METAFONT file that defines various shapes
+% for use in various bangla fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+def E(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,ypen,currenttransform; transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ numeric balld,ypen,height,theta;
+ balld = .3w; ypen = .9pt; height = matra_f*h; theta = 220;
+% The circle
+ z1l = (.5w,.43h); penpos1(.5balld,theta);
+ fill fullcircle scaled balld shifted (z1l);
+% The connector between the circle and the stem
+ z2r = (.7w,height); penpos2(matra_t*h,90);
+ z3 = (w-rindent,.6h); penpos3 (stem_width,0);
+ fill z1r{dir (theta-90)}..tension1.3..{right}z2r..tension1.2..{down}z3r--z3l{up}..{left}z2l..tension1.6..{dir (theta+90)}z1l--cycle;
+% The wavy line
+ x4= w-rindent-.5stem_width;
+ y4 = ypen; penpos4(.07h,90);
+ z5 = (.51w,.18h); penpos5(6/50height,90);
+ z6 = (.27w,.21h); penpos6(6/50height,90);
+ z7 = (4/48w,26/50height); penpos7(3/50height,0);
+ z8 = (6.5/48w,36/50height); penpos8(2/50height,-30);
+ penstroke z5e{left}..z6e..z7e..tension1.2..z8e;
+% The stem
+ hookstem(z5r,z5l,z3,0,0);
+ penlabels(1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+def Estem(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,currenttransform; transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ numeric balld,height,theta;
+ balld = .7(w-.5stem_width); height = matra_f*h; theta = 180;
+% The circle
+ z1r = (0,.6height); penpos1(.5balld,theta);
+ fill fullcircle scaled balld shifted (z1l);
+% The connector between the circle and the stem
+ x2r = .75[x1l,x3l]; y2r = height;
+ penpos2(matra_t*h,90);
+ z3 = (w,.8height); penpos3 (stem_width,0);
+ z4 = (x3,0); penpos4(stem_width,0);
+ fill z1r{dir (theta-90)}..{right}z2r..tension1.2..{down}z3r--z4r--z4l--z3l{up}..z2l..tension1.6..{dir (theta+90)}z1l--cycle;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+def O(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,smalld,phia,phib,currenttransform;
+ transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ numeric balld,phia,phib,height,rballx,rbally;
+ phia=150; phib=-45; height = matra_f*h; % smalld,balld defined later
+% The two circles
+ z1r = (21/52w,33/50height);
+ z4r = z5l = (37/52w,29/50height);
+ balld = .7 * length(z1r-z4r);
+ smalld = .9balld;
+ fill fullcircle scaled smalld shifted (z1r);
+ fill fullcircle scaled balld shifted (z4r);
+% Line between the two circles
+ z2l = (44/52w,45/50height);
+ z3l = (45/52w,36/50height);
+ z3r = (43/52w,40/50height);
+ z2r = (37/52w,46/50height);
+ z1l= z1r + .5smalld * dir (phia);
+ z4l= z4r + .5balld * dir (phib);
+ fill z1l{dir (phia-90)}..z2l..z3l..z4l--z4r..z3r..z2r..tension1.5..z1r--cycle;
+%% The line connecting to the cup
+ z5r= z5l + .5balld * dir (phib+90);
+ z6l = (45/52w,20/50height);
+ z6r = (47.5/52w,19/50height);
+ fill z5l..{down}z6l--z6r{up}..z5r--cycle;
+%% The cup
+ z7r = (35/52w,6.5/50height); penpos7(6/50height,-90);
+ z8r = (2.5/52w,45/50height);
+ z8l = (5.2/52w,43/50height);
+ z9 = (0,63/50height);
+ penstroke z6e{down}..{left}z7e..{z9-z8l}z8e;
+ penlabels(1,2,3,4,5,6,7,8,9);
+%% We now define the x and y co-ordinates for the right ball.
+%% These are not protected. They need to be used sometimes.
+ rballx = x4r; rbally = y4r;
+ endgroup
+enddef;
+
+
+def ka(expr xoff,yoff,wba,h) =
+ begingroup
+ save x,y,xstem,theta,balld,wbar,currenttransform;
+ numeric xstem,theta,balld,height;
+ xstem=wba-rindent; theta=-30; balld=.2height; height = matra_f*h;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+% The first part is equivalent to the definition of "ba"
+ ba(xoff,yoff,xstem,h);
+ z2l = (xstem,43/50height); penpos2(5.5/50height,-90);
+% This part is for the ball at the end of the hook
+ z6 = (43/32xstem,21/50height);
+ fill fullcircle scaled balld shifted (z6);
+% This part is the hook
+ z7l = z6 + .5balld * dir(theta);
+ z7r = z6 + .5balld * dir(theta+70);
+ penstroke z2e{right}..z7e;
+ penlabels(1,2,3,3',4,5,6,7,8,8',9,10);
+ endgroup
+enddef;
+
+def ga_(expr xoff, yoff, w, h) =
+ begingroup
+ numeric xstem,height;
+ xstem=w-rindent; height = matra_f*h;
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ z1l = (11/35w,18/50height);
+ z1r = (15.5/35w,15/50height);
+ z2l = (19/35w,30/50height);
+ z2r = (24/35w,29/50height);
+ z3l = (19/35w,34/50height);
+ z3r = (21/35w,37/50height);
+ z4l = (16/35w,35.5/50height);
+ z4r = (13.5/35w,39/50height);
+ z5l = (4/35w,31/50height);
+ z5r = (8/35w,38/50height);
+ z6l = (1.5/35w,38/50height);
+ z6r = z5r;
+ z7l = (17/35w,height);
+ z7r = (18/35w,46/50height);
+ z8l = (w,35/50height); penpos8(stem_width,-90);
+ fill z1l..z2l..z3l..z4l{left}..tension1.2..{left}z5l..tension2..{up}z6l--z6r--z5r{z4l-z5l}..z4r..z3r..z2r..tension1.3..z1r--cycle;
+ fill z6l{up}..{right}z7l..tension1.5..z8l--z8r..tension1.42..z7r..z6r--cycle;
+ penlabels (1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+
+def unga(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+% The vertical part
+ z2 = (18.5/47w,36/50h); penpos2(stem_width,0);
+ z3l = (25.5/47w,18/50h);
+ z3r= (23/47w,23/50h);
+ z3 = .5[z3l,z3r];
+% The part going up
+ z4l = (36/47w,26/50h);
+ z4r = (34/47w,33/50h);
+ fill z2l{down}..tension0.8..{right}z3l{right}..tension1.5..z4l--z4r..tension1.8..{left}z3r..{up}z2r--cycle;
+% The lower cup
+ z5l = (40/47w,22/50h); penpos5(3/47w,-10);
+ z6l = (28/47w,10/50h);
+ z6r = (29/47w,3/50h);
+ z7l = (6/47w,42/50h);
+ z7r = (4/47w,43/50h);
+ z8 = (0,63/50h);
+ fill z4l..{down}z5l..{left}z6l{left}..{z8-z7l}z7l--z7r{z7r-z8}..{right}z6r{right}..z5r{up}..z4r--cycle;
+% The upper part with the dot
+ z9l = (31/47w,h); penpos9(stem_width,-90);
+ z10l = (38/47w,43/50h); penpos10(.6stem_width,180);
+ z11l = z2r; penpos11(stem_width,90);
+ x12l = x7l; y12r = h; penpos12(.12w,10);
+ penstroke z2e{up}..{right}z9e..z10e{down}..z11e..{z12-z3}z12e;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+ endgroup
+enddef;
+
+def ca(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height; height = matra_f*h;
+ z1 = (lindent,matra_h*h); penpos1(stem_width,180);
+ z2r = (x1r,41.5/50height); penpos2(stem_width,180);
+ z3r = (x1r,.24h);
+ z3l = (x2l,.26h);
+ z5r = (33/37w,29/50height);
+ z5l = (27/37w,26.5/50height);
+ z4r = (.3[x3r,x5r],4/50height);
+ z4l = (.3[x3l,x5l],9/50height);
+ z6r = (x1l,.45[y1,y2]);
+ z6l = z2r; z6 = .5[z6l,z6r];
+ penstroke z1e--z2e--z3e{down}..{right}z4e;
+ penstroke z4e{right}..{up}z5e;
+ penstroke z5e{up}..{up}z6e;
+ penlabels(1,2,3,4,5,6);
+ endgroup
+enddef;
+
+
+def cha(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform,ww,hh,hrise;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric ww,hh,hrise,height;
+ height = matra_f*h;
+% The rounded part
+ z7r = (25/44w,39/50height);
+ z7l = (x7r,y7r-matra_t*height);
+ z8l = (35/44w,30/50height);
+ z8r = (39/44w,28/50height);
+ z9l = (16.5/44w,15/50height);
+ z9r = (x9l,11/50height);
+ z10l = (7/44w,17/50height);
+ z10r = (12/44w,10/50height);
+ penstroke z7e{right}..{down}z8e{down}..{left}z9e..z10e;
+% The part that goes down
+ z11= (w,-ha_dip);
+ hookjt(z10r,z10l,z11,.06h,.2,45);
+% The part that looks like a small "ca"
+ ww = x7l+.8rindent; hrise - y10l = y10l - y9l;
+% hrise = matra_h*(h-hh);
+ hh = h-(hrise/matra_h);
+ ca(xoff,hrise+yoff,ww,hh);
+ penlabels(7,8,9,10);
+ endgroup
+enddef;
+
+def ja_bare(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height;
+ height = matra_f*h;
+% The upper part
+ z1 = (27/37w,matra_h*h); penpos1(10/37w,0);
+ z2l = (13/37w,35/50height);
+ z2r = (16/37w,32/50height);
+ z3l = (23.5/37w,23/50height);
+ z3r = (20/37w,28/50height);
+ z4r = (30/37w,33.5/50height);
+ z4l = (32.5/37w,28/50height);
+ penstroke z1e{z2l-z1r}..{down}z2e{down}..{right}z3e..z4e;
+% The lower cup
+ z5r = (w,y3l); penpos5(2.5/37w,0);
+ z6r = (26/37w,9/50height); penpos6(7/50height,-90);
+ z7r = (4.5/37w,43/50height);
+ z7l = (6/37w,42/50height);
+ penstroke z5e{down}..{left}z6e..{up}z7e;
+% The part joining the above two parts
+ penstroke z5e{up}..z4e;
+ penlabels(1,2,3,4,5,6,7);
+% The hook
+% NONE FOR THIS VERSION
+% Definitions to export
+ numeric topl_ja,topr_ja,midlx_ja,midrx_ja,midly_ja,midry_ja;
+ topl_ja = x1l; topr_ja = x1;
+ z91 = .5[z4r,z5r]; penpos91(.3length(z4l-z5r), angle(z5r-z4l));
+ midlx_ja = x91r; midrx_ja = x91l;
+ midly_ja = y91r; midry_ja = y91l;
+ endgroup
+enddef;
+
+def ja_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ numeric wbare,height;
+ wbare = 37/53w; height = matra_f*h;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ ja_bare(xoff,yoff,wbare,h);
+ z8l = (topl_ja,matra_h*h);
+ z8r = (topr_ja,matra_h*h);
+ z9l = (w,35/50height);
+ z9r = (47/53w,40/50height);
+ z3' = (midlx_ja,midly_ja);
+ penstroke z8e{z3'-z8l}..{right}z9e;
+ penlabels(3',8,9);
+% Definitions to export
+ numeric tiplx,tiply,tiprx,tipry;
+ tiplx = x9l; tiply = y9l;
+ tiprx = x9r; tipry = y9r;
+ endgroup
+enddef;
+
+def ja_full(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform,width,thiv;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height; height = matra_f*h;
+ ja_(xoff,yoff,w-.5rindent,h);
+ z9l = (tiplx,tiply);
+ z9' = (tiprx,tipry); z9r = .7[z9l,z9'];
+ z10l = (x9r,0);
+ z10r = (x10l-2/56w,1/50height);
+ penstroke z9e{z9r-(w,height)}..z10e;
+ penlabels(10);
+ endgroup
+enddef;
+
+def ina(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform,theta,wE;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric theta,wE; theta = 60; wE=18.5/26w;
+ z1 = (wE-rindent,.41h) + (xoff,yoff);
+ E(xoff,yoff,wE,h);
+ clover(z1,w-wE,.25h,.08h);
+ endgroup
+enddef;
+
+def Da(expr xoff,yoff,w,h,fracrise) =
+ begingroup
+ save x,y,xstem,currenttransform; transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ numeric xstem; xstem = .5w;
+% The vertical part
+ z1 = (xstem,h); penpos1(stem_width,0);
+ z2 = (x1,31/50h); penpos2(stem_width,0);
+ z3l = (27.5/49w,21.5/50h);
+ z3r= (x3l+1/49w,28/50h);
+ fill z1l..{down}z2l..{right}z3l--z3r{left}..{up}z2r--z1r--cycle;
+% The part going up
+ z4l = (42.5/49w,30/50h);
+ z4r = (40/49w,38/50h);
+ fill z3l{right}..tension1.5..z4l--z4r..tension1.8..{left}z3r--cycle;
+% The lower cup
+ z5l = (44/49w,27/50h); penpos5(3/50w,0);
+ z6l = (29.5/49w,12/50h);
+ z6r = (31/49w,5/50h);
+ z7l = (7/49w,(fracrise-.02)*h);
+ z7r = (5/49w,fracrise*h);
+ z8 = (0,(63/44)*fracrise*h);
+ fill z4l..{down}z5l..{left}z6l{left}..{z8-z7l}z7l--z7r{z7r-z8}..{right}z6r{right}..z5r{up}..z4r--cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+def Dha(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric balld; balld = .19h;
+ z1 = (lindent,matra_f*h); penpos1(stem_width,0);
+ z2 = (lindent,.27h); penpos2(stem_width,0);
+ z3l = (.35w,.08h);
+ z3r = (.39w,.2h);
+ z4r = (.69w,.41h);
+ z4l = (max(.88w,x4r+.5balld),.47h);
+ penstroke z1e{down}..{down}z2e..tension1.2..z3e{right}..tension1.2..{up}z4e;
+ z5 = (x4l-.5balld,y4l);
+ fill fullcircle scaled (balld) shifted (z5);
+ penlabels (1,2,3,4,5);
+ endgroup
+enddef;
+
+def Na_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,balld,currenttransform;
+ numeric xstem,balld,height;
+ xstem = w - rindent; height = matra_f*h; balld = max(9/50height,.3w);
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) xscaled(w/xstem) slanted slantval;
+ z1r = (16.5/37w,31/50height);
+ fill fullcircle scaled balld xscaled(xstem/w) shifted (z1r);
+ penpos1(.5balld * xstem/w,180);
+ z2l = z1r - (0,.75balld);
+ penpos2(.5balld,90);
+ z3l = (3.5/37w,36/50height); penpos3(6/37w,0);
+ z4l = (15.5/37w,height);
+ z4r = (17/37w,45/50height);
+ z5r = (xstem,y3); penpos5(.08h,-90);
+ penstroke z1e{down}..z2e..{up}z3e..z4e{right}..{z5l-z4l}z5e;
+ penlabels(1,2,3,4,5);
+ endgroup
+enddef;
+
+def ta(expr xoff,yoff,ww,hh) =
+ begingroup
+ save x,y,balld,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric balld; balld = 14/50hh;
+% The ball
+ z1l = (30/52ww,32/50hh); penpos1(.5balld,180);
+ fill fullcircle scaled balld shifted (z1l);
+% Joining the ball and the cup
+ z2r = (33.5/52ww,43/50hh);
+ z2l = z1l + .5balld * dir(45);
+% The cup at the bottom
+ z3l = (47/52ww,27/50hh);
+ z3r = (50/52ww,26/50hh);
+ z4l = (33/52ww,13.5/50hh);
+ z4r = (35/52ww,7/50hh);
+ z5l = (6/52ww,43/50hh);
+ z5r = (4/52ww,44/50hh);
+ z6 = (0,62/50hh);
+ fill z1l..z2l{right}..{down}z3l{down}..z4l{left}..tension1.2..{z6-z5l}z5l--z5r{z5r-z6}..tension1.2..{right}z4r{right}..{up}z3r{up}..{left}z2r..z1r--cycle;
+ penlabels(1,2,3,4,5,6);
+% Definitions to export
+ numeric top_ta;
+ top_ta = y2l;
+ endgroup
+enddef;
+
+def da(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height; height=matra_f*h;
+%% The vertical bar at the left
+ z1 = (lindent,height); penpos1(stem_width,0);
+ z2l = (x1l,20/50height);
+ z2r = (x1r,15/50height);
+ penstroke z1e..z2e;
+%% The diagonal line
+ y4r = .52h;
+ y4l-y4r=y2l-y2r;
+ x4r-x4l=stem_width;
+ .5[x4r,x4l] = w - rindent;
+ z3 = (x4l,height);
+ penstroke z2e{z3-z2l}..z4e;
+%% Calculation for the upper end of the diagonal line
+ x5r = x4l;
+ y5 = y2r;
+ penpos5(.6*length(z4r-z4l),0);
+ x6r = x4r; y6r = 0;
+ penpos6(.4*length(z4r-z4l),-25);
+ penstroke z4e..z5e..z6e;
+ penlabels(1,2,3,4,5,6);
+% Co-ordinates to export
+ numeric da_tiplx, da_tiply, da_tiprx, da_tipry;
+ da_tiplx = x6l; da_tiply = y6l; da_tiprx = x6r; da_tipry = y6r;
+ endgroup
+enddef;
+
+
+def na(expr xoff,yoff,w,h,frach) =
+ begingroup
+ save x,y,xstem,balld,currenttransform;
+ numeric xstem,balld; xstem=w-rindent;
+ balld = max(15/50h,1/3w);
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ z1r = (13/42w,21.5/50h); penpos1(.5balld,0);
+ z2r = z1r + .5balld * dir 45;
+ z2l = z1r + .5balld * (.4 dir 0 + 1.5 dir 90);
+ fill fullcircle scaled balld shifted (z1r);
+ fill z1l{up}..{right}z2l--z2r{left}..z1r--cycle;
+ if frach>0:
+ z3 = (xstem,frach*h);
+ hookstem(z2l,z2r,z3,0,0);
+ else:
+ z3 = (w,0);
+ hookjt(z2r,z2l,z3,0.2h,1,90);
+ fi;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+
+def na_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,vdiam,ecc,currenttransform;
+ numeric xstem,balld;
+ xstem=w-rindent; balld = .25h;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ z1r = (13/32w,21.5/50h); penpos1(.5balld,0);
+ z2r = z1r + .5balld * dir 45;
+ z2l = z1r + .5balld * (.4 dir 0 + 1.5 dir 90);
+ z3l = (w,y1); penpos3(.5*length(z2l-z2r),-90);
+ fill fullcircle scaled balld shifted (z1r);
+ fill z1l{up}..{right}z2l--z2r{left}..z1r--cycle;
+ penstroke z2e{right}..tension1.2..z3e;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+def pa_(expr xoff,yoff,w,h) =
+begingroup
+ save x,y,height,full_w,currenttransform; transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height;
+ height = matra_f*h;
+% The upper curve
+ z1l = (3/39w,35/50height);
+ z1r= (11/39w,38/50height);
+ z2l = (20/39w,matra_h*h);
+ z2r = (22/39w,43/50height);
+ z3l = (w-.5stem_width,34/50height);
+ z3r = (x3l,y3l+y2r-y2l);
+ path p; p = z3r{z2l-z3r}..z2r..z1r;
+ penstroke z1e{up}..z2e..tension1.1..z3e;
+% The lower bar
+ z4l = (10.5/39w,21/50height);
+ z4r = (17/39w,19/50height);
+ z5= p intersectionpoint (z4l--(w,matra_f*h));
+ cwbar(z4r,z4l,z5,angle(z3l-z5));
+% The connector
+ z6l= (6.5/39w,32/50height);
+ z6r = z1r;
+ z7r = (16.3/39w,34/50height);
+ z7l = (14.5/39w,33/50height);
+ z8r = .4[z4l,z5];
+ y8l = y8r;
+ x8r - x8l = length(z7r - z7l);
+ penstroke z1e{down}..{right}z6e;
+ penstroke z6e{right}..z7e..{down}z8e;
+ fill z8l..{z4l-z8r}z4l--z4r--z8r--cycle;
+ penlabels (1,2,3,4,5,6,7,8);
+endgroup
+enddef;
+
+def ba(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ numeric height; height = matra_f*h;
+ transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ z1l = (4/39w,29/50height);
+ z3r = (8.5/39w,23.5/50height);
+ z2l = (w,43/50height); penpos2(5.5/50height,-90);
+ z1r = z1l + length(z2r-z2l) * dir angle(z3r-z1l);
+ path ba_pr; ba_pr = z1r{z2l-z1r}..z2r;
+ path ba_pl; ba_pl = z2l..{z1r-z2l}z1l;
+ penstroke z1e{z2l-z1r}..z2e;
+ z3l = point .2 of ba_pr;
+ fill z1l--z3l--z3r--cycle;
+ z4 = (w,height);
+ hookstem(z3l,z3r,z4,angle(z3l-z1l),2*angle(z3l-z1l));
+ penlabels (1,2,3,4);
+ currenttransform := identity slanted slantval;
+ numeric ba_topxl, ba_topxr, ba_topy;
+ ba_topxl = x4 - .5stem_width + xoff;
+ ba_topxr = x4 + .5stem_width + xoff;
+ ba_topy = height + yoff;
+ endgroup
+enddef;
+
+def ba_remove(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ numeric height; height = matra_f*h;
+ transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+ z1l = (4/39w,29/50height);
+ z3r = (8.5/39w,23.5/50height);
+ z2l = (w,43/50height); penpos2(5.5/50height,-90);
+ z1r = z1l + length(z2r-z2l) * dir angle(z3r-z1l);
+ path ba_pr; ba_pr = z1r{z2l-z1r}..z2r;
+ path ba_pl; ba_pl = z2l..{z1r-z2l}z1l;
+ z3l = point .2 of ba_pr;
+ z4r = (w+.5stem_width,0); penpos4(.5stem_width,-stem_slope);
+ z5 = z2 + (.5stem_width,0); penpos5(5.5/50height,-90);
+ z7 = (x5,0);
+ unfill z5l--ba_pl--z3r{z3l-z1l}..{down}z4l--z4r--cycle;
+ unfill z5l--ba_pl--z3r{z3l-z1l}..{down}z4l--z4r--cycle;
+ endgroup
+enddef;
+
+
+
+def ba_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y;
+ z1l = (4/39w,29/50height);
+ z3r = (8.5/39w,23.5/50height);
+ z2l = (w,43/50height); penpos2(5.5/50height,-90);
+ z1r = z1l + length(z2r-z2l) * dir angle(z3r-z1l);
+ path ba_pr; ba_pr = z1r{z2l-z1r}..z2r;
+ path ba_pl; ba_pl = z2l..{z1r-z2r}z1l;
+ penstroke z1e{z2l-z1r}..z2e;
+ z3l = point .2 of ba_pr;
+ fill z1l--z3l--z3r--cycle;
+ z4 = (w,height);
+ hookstem(z3l,z3r,z4,angle(z3l-z1l),2*angle(z3l-z1l));
+ penlabels (1,2,3,4,5);
+ endgroup
+enddef;
+
+def ba_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,currenttransform;
+ numeric wba,xstem; wba = w; xstem = w-rindent;
+ transform currenttransform;
+ currenttransform := identity xscaled (wba/xstem) shifted (xoff,yoff) slanted slantval;
+ z1 = (.07wba,.45h);
+ z2 = (.14wba,.35h);
+ z3 = (xstem,.53h);
+ z4 = (xstem,.03h);
+ z5 = z2 + .23wba * (cosd angle(z3-z2), sind angle(z3-z2));
+ cwbar(z1,z2,z3,90);
+ hookjt(z2,z5,z4,.1h,.2,90);
+ penlabels (1,2,3,4,5);
+ currenttransform := identity slanted slantval;
+ endgroup
+enddef;
+
+def bha(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,balld,currenttransform;
+ numeric balld; balld = 12/54w;
+ transform currenttransform;
+ currenttransform := identity shifted (xoff,yoff) slanted slantval;
+% The cup at the bottom
+ z4l = (48/54w,28/50h); z4r = (51/54w,25/50h);
+ z5l = (33/54w,13/50h); z5r = (34/54w,6/50h);
+ z6l = (7/54w,43/50h); z6r = (5/54w,44/50h);
+% The ball
+ z1r = (26/54w,34/50h); penpos1(.5balld,0);
+ fill fullcircle scaled balld shifted z1r;
+% Joining the ball and the cup
+ z2l = (31/54w,24/50h); z2r = (32/54w,30/50h);
+ z3l = (45.5/54w,32.5/50h); z3r = (42/54w,39.5/50h);
+ fill z1r..z2r{right}..z3r--z3l..{left}z2l..{up}z1l--cycle;
+ fill z3r..z4r{down}..{left}z5r..tension1.4..{(0,63/50h)-z6r}z6r--z6l{z6l-(0,63/50h)}..tension1.4..z5l{right}..{up}z4l..z3l--cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+
+def ma_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,theta,balld,height, currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric xstem,theta,balld,height;
+ xstem = w-rindent; theta = -30; balld = .25h; height = matra_f*h;
+% The part leading to the dot
+ z1l = (4/43w,matra_h*h); penpos1(7/43w,0);
+ z2l = (21.5/43w,31/50height);
+ z2r = (26/43w,28/50height);
+ z3l = (16/43w,21/50height); penpos3(.5balld,theta);
+ fill z1l{down}..{down}z2l{down}..z3l--z3r{dir (theta+90)}..z2r..tension1.3..z1r--cycle;
+% The dot
+ fill fullcircle scaled balld shifted z3l;
+% The part to the lower right of the dot
+ z4r = z3l;
+ z4l = z3l + .5balld * dir 90;
+ z5 = (xstem,matra_h*h);
+ hookstem(z4l,z4r,z5,0,0);
+ penlabels(1,2,3,4,5);
+ endgroup
+enddef;
+
+
+
+def Ja(expr xoff,yoff,w,h,topfrac) =
+ begingroup
+ save x,y,xstem,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric xstem,height; xstem = w-rindent; height = matra_f*h;
+% The upper left portion
+ z1l = (4/42w,matra_h*h); penpos1(11/42w,0);
+ z2l = (22/42w,37/50height);
+ z2r = (28/42w,34/50height);
+ fill z1l{down}..{z2l-z1l}z2l--z2r--z1r--cycle;
+ z3 = (12.5/42w,20/50height);
+% The portion going towards lower left
+ cwbar(z2l,z2r,z3,angle(z1r-z2r));
+% The hook and the stem
+ z4 = 7/21[z3,z2r];
+ z5 = (xstem,topfrac*matra_h*h);
+ hookstem(z4,z3,z5,0,angle(z2r-z2l));
+ penlabels(1,2,3,4,5);
+ endgroup
+enddef;
+
+
+def la_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem,balld,xecc,currenttransform;
+ numeric xstem,balld,xecc,height;
+ height = matra_f*h;
+ xstem = w-rindent; balld = 13/50height; xecc = xstem/w;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) xscaled (1/xecc) slanted slantval;
+% The ball
+ z1 = (.41w,.33h);
+ fill fullcircle scaled balld xscaled (xecc) shifted (z1);
+% The first wavy line coming out of the ball
+ z2l = z1 + .5balld * dir (-90); penpos2(.3balld,90);
+ z3l = (5.8/50w,28/50height);
+ z3r = (9/50w,26/50height);
+ z4l = (16/50w,41.5/50height);
+ z4r = (18/50w,36/50height);
+ z5l = (26.5/50w,36/50height);
+ z5r = (29/50w,27/50height);
+ penstroke z2e..z3e{up}..{right}z4e..{z5r-z4l}z5e;
+% The second wavy line connecting to the stem
+ z6l = (33/50w,y4l-1/100height);
+ z6r= (35/50w,y4r);
+ z7l = (xstem,31/50height);
+ z7r= (xstem,26/50height);
+ penstroke z5e{up}..z6e..tension1.4..{z6r-z6l}z7e;
+ penlabels(1,2,3,4,5,6,7);
+ endgroup
+enddef;
+
+
+def sha_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,height,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric height; height = matra_f*h;
+% The balls
+ z1l = (14.5/40w,40/50height);
+ z1r = (17/40w,42/50height);
+ z2 = (5.5/40w,30/50height);
+ z3 = (11.5/40w,25/50height);
+ z4 = (19/40w,y2);
+ x5 -x4 = x4 - x3; y5 = y3;
+ x6 - x4 = x4 - x2; y6=y2;
+ z7l = z1r;
+ x7r - x4 = x4 - x1l; y7r = y1l;
+ fill z1r--z1l..tension1.4..{down}z2{down}..z3{right}..z4--cycle;
+ fill z7l--z7r..tension1.4..{down}z6{down}..z5{left}..z4--cycle;
+% The antenna to the left
+ z8r = (0,matra_f*h);
+ x8l = abs(cosd(matra_slope))*matra_t*h;
+ y8r-y8l = matra_t*h;
+ penstroke z8e{right}..tension0.9..{z4-z1l}z1e;
+% The line connecting the balls with the stem
+ z9l = (27/40w,y8r);
+ z9r = (29/40w,44.5/50height);
+ z10l = (w,40/50height);
+ z10r = (w,35/50height);
+ penstroke z7e..{right}z9e{right}..tension1.5..{z10r-z9r}z10e;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+ endgroup
+enddef;
+
+
+def Sha_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,xstem, currenttransform;
+ numeric xstem,height; xstem = w-rindent; height=matra_f*h;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) xscaled (w/xstem) slanted slantval;
+% The upper left portion
+ z1l = (4/42w,matra_h*h); penpos1(11/42w,0);
+ z2l = (22/42w,37.5/50height);
+ z2r = (28/42w,34/50height);
+ fill z1l{down}..{z2l-z1l}z2l--z2r--z1r--cycle;
+% The portion going towards lower left
+ z3 = (12.5/42w,20/50height);
+ cwbar(z2l,z2r,z3,angle(z1r-z2r));
+% The hook
+ z4 = .33[z3,z2r];
+ z5 = (xstem,.5stem_width*sind(stem_slope));
+ hookjt(z3,z4,z5,.05h,.5,90);
+% The cross through the belly
+ x6 = xstem;
+ y6 = (y1r*(x2r-x6) - y2r*(x1r-x6))/(x2r-x1r);
+ z7 = .13[z2r,z3];
+ cwbar (z7,z2r,z6,90);
+ penlabels(1,2,3,4,5,6,7);
+ endgroup
+enddef;
+
+
+
+
+def sa_(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ numeric xstem; xstem = w-rindent;
+ numeric midxl_sa,midyl_sa,midxr_sa,midyr_sa;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) xscaled(w/xstem) slanted slantval;
+% The wavy line
+ z5l = (5/46w,26/50h);
+ z5r = (7/46w,27/50h);
+ z6l = (14.5/46w,15/50h);
+ z6r = (12/46w,22/50h);
+ z8r= (xstem,28/50h);
+ z8l= (x8r,22.5/50h);
+ x7r = 2/3[x6r,x8r]; y7r = 38.5/50h;
+ x7l = 2/3[x6l,x8l]; y7l = 31.5/50h;
+ path pr; pr = z7r{left}..tension2..{left}z6r{left}..tension5..z5r;
+ path pl; pl = z5l..tension5..{right}z6l{right}..tension2..{right}z7l;
+ fill pl--pr--cycle;
+ penstroke z7e{right}..{z8l-z7r}z8e;
+% The upper left part
+ z1l = (3.5/46w,h); penpos1(12.5/46w,0);
+ z2 = (11/46w,43/50h);
+ z3l = ((21/46w,0)--(21/46w,h)) intersectionpoint pr;
+ z3r = ((23/46w,0)--(23/46w,h)) intersectionpoint pr;
+ fill z1l{down}..{right}z2{right}..{down}z3l--z3r{up}..tension1.2..z1r--cycle;
+% Exporting co-ordinates
+ midxl_sa = (x3l+xoff)*(w/xstem); midyl_sa = y3l+yoff;
+ midxr_sa = (x3r+xoff)*(w/xstem); midyr_sa = y3r+yoff;
+ penlabels(1,2,3,4,5,6,7,8);
+ endgroup
+enddef;
+
+def Ha(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric balld,phi; balld = 13/50h; phi=-60;
+%% The ball
+ z1r = (14.5/40w,34/50h); penpos1(.5balld,phi);
+ fill fullcircle scaled balld shifted z1r;
+%% The connector
+ z2 = (16/40w,h); penpos2(6.5/40w,0);
+ z3l = (19.5/40w,42/50h);
+ z3r = (23/40w,42/50h);
+ z4 = z1r + .5balld * dir(-90);
+ fill z4{right}..{up}z3r..z2r--z2l..{down}z3l..z1r--cycle;
+ z5 = (26/40w,37/50h);
+ z6l = (37/40w,31/50h);
+ z6r = (34/40w,32.5/50h);
+ z7l = (19/40w,13.5/50h);
+ z7r = (16.5/40w,19/50h);
+ fill z1l..{right}z3l..{down}z6l--z6r{up}..{left}z5..z1r--cycle;
+%% The swordlike line at the bottom
+ z9l = (10.5/40w,13/50h);
+ z9r = (5/40w,23/50h);
+ z10 = (46/40w,-ha_dip);
+ fill z6l{down}..{left}z7l..z9l--z9r..{right}z7r..{up}z6r--cycle;
+ hookjt(z9l,z9r,z10,.08h,.5,angle(z9r-z9l));
+ penlabels(1,2,3,4,5,6,7,9,10);
+ endgroup
+enddef;
+
+def khiyo(expr xoff,yoff,w,h) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ numeric xstem,balld,thinness,height,theta;
+ xstem=42/63w; thinness=.45; height = matra_f*h; balld=11/50height;
+ theta = -60;
+% The two balls
+ z0 = (xstem,height);
+ z1= (11/63w,34.5/50height);
+ z2= (24/63w,20/50height);
+ fill fullcircle scaled balld shifted (z1);
+ fill fullcircle scaled balld shifted (z2);
+% Points on the two circles
+ z1a = z1 + .5 * balld * dir(0);
+ z1b = thinness[z1a,z1];
+ z1c = z1 + .5balld * dir(90);
+ z2a = z2 + .5balld * dir(0);
+ z2b = thinness[z2a,z2];
+ z2c = z2 + .5balld * dir(90);
+% The line from the matra to the first dot
+ z6l = (7/63w,matra_h*h); penpos6(6.5/63w,0);
+ fill z6l..{down}z1b--z1a{up}..z6r--cycle;
+% The line between the two dots
+ fill z1c{right}..{down}z2a--z2b{up}..tension0.8..{left}z1b--cycle;
+% The stem
+ hookstem(z2c,z2a,z0,0,0);
+% This part is for the ball at the end of the hook
+ z3 = (51/63w,23/50height);
+ fill fullcircle scaled balld shifted z3;
+% The hook
+ z4l = (xstem,34.5/50height); penpos4(.5balld,90);
+ z5 = (x3,y4); penpos5(.45balld,90);;
+ z7 = (24/63w,matra_h*h); penpos7(4/63w,0);
+ z3a = z3 + .5balld * dir(theta);
+ z3b = thinness[z3a,z3];
+ fill z3a{dir (theta+90)}..tension1.4..{left}z5r..z4r{left}..tension0.8..{up}z7r--z7l..{right}z4l..z5l{right}..{dir (theta-90)}z3--cycle;
+ penlabels (0,1,1a,1b,1c,2,2a,2b,2c,3,3',3a,3b,4,5,6,7);
+% definitions to export
+ numeric ballx, bally;
+ ballx = x3; bally = y3;
+ endgroup
+enddef;
+
+
+
+%%% End of bangdefs.mf
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangfala.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangfala.mf
new file mode 100644
index 00000000000..cf6b2220b4f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangfala.mf
@@ -0,0 +1,133 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangfala.mf: METAFONT file that defines various "fala"s that
+% typically go below another consonant
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar(175,0u#,stht#,stdp#); "ref";
+ z1l = (4lindent,matra_f*h+.5matra_thickness);
+ penpos1(1.4stem_width,145);
+ z2l = (6.5lindent,h);
+ penpos2(.7stem_width,70);
+ penstroke z1e--z2e;
+ penlabels(1,2);
+endchar;
+
+beginchar("R", 0, stht#,stdp#); "ra-fala";
+ numeric Ewidth; Ewidth = .06h;
+ x1 = -rindent; y1=0;
+ z3 = (-5.5rindent,.2h);
+ Ebase(z1,z3,Ewidth);
+ halfstem(x1,y3,y1-.5Ewidth);
+endchar;
+
+
+beginchar("Y", 7.3u#, stht#,stdp#); "Ja-fala";
+ matra(0,w);
+ z1 = (14/20w,matra_h*h); penpos1(4/20w,0);
+ z2l = (8/20w,matra_f*35/50h);
+ z2r = (13/20w,matra_f*38/50h);
+ z3l = (11/20w,matra_f*10/50h); penpos3(4.7/20w,0);
+ z4l = (0,0); z4r = (1.5/20w,-matra_h*2/50h);
+ pickup penrazor scaled 1.3stem_width rotated 40;
+ fill z1l..{down}z2l..{down}z3l..tension1.2..z4l--z4r..tension1.2..z3r{up}..{up}z2r..{(w,y1)-z2l}z1r--cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar("W",0u#, stht#,stdp#); "Ba-fala, or Wa-fala";
+ numeric ww,hh,xstem,xshift;
+ ww=3rindent; hh=.6h; xstem=ww; xshift = ww+rindent;
+ ba(-xshift,0,ww,hh);
+endchar;
+
+beginchar(153,6u#, stht#,stdp#); "Ba-fala, or Wa-fala (with matra)";
+ numeric ww,hh,xstem,xshift;
+ ww=2.5rindent; hh=.5h; xstem=ww; xshift = ww+rindent-w;
+ ba(-xshift,-ha_dip,ww,hh);
+ matra(0,w);
+endchar;
+
+beginchar("M", 9u#, stht#, stdp#); "Ma-fala";
+ numeric xstem,balld;
+ xstem = w - rindent; balld = .5w;
+ matra(0,w);
+ z1 = (lindent,.3h);
+ x2 = x1 + .5(stem_width - balld); y2 = y1;
+ z3 = z2 + .5balld * dir(90);
+ z4 = (xstem,matra_f*h);
+ halfstem(x1,matra_f*h,y1);
+ fill fullcircle scaled balld shifted z2;
+ hookstem(z3,z2,z4,0,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar("L", 0u#, stht#,stdp#); "la-fala";
+ numeric ww,hh; ww=5rindent; hh=.7h;
+ la_(-ww,-.15h,ww,hh);
+ halfstem(-rindent,.2h,0);
+endchar;
+
+beginchar(25, 0u#, stht#,stdp#); "murdhanya na-fala";
+ numeric ww,hh; ww=3rindent; hh=.5h;
+ Na_(-4rindent,-.15h,ww,hh);
+endchar;
+
+beginchar(26, 0u#, stht#,stdp#); "na-fala";
+ numeric ww,hh; ww = 5rindent; hh = .25h;
+ na(-ww,0,ww,hh,.7);
+endchar;
+
+beginchar(27, 5u#, stht#, stdp#); "special form for Ma-fala";
+ numeric xstem,balld,ww,lshift; lshift = 2rindent; ww = w + lshift;
+ xstem = ww - rindent; balld = .4ww;
+ z1 = (lindent,.27h);
+ x2 = x1 + .5(stem_width - balld); y2 = y1;
+ z3 = z2 + .5balld * dir(90);
+ z4 = (xstem,matra_f*h);
+ fill fullcircle scaled balld shifted z2;
+ hookstem(z3,z2,z4,0,0);
+ matra(0,ww);
+ picture sp_ma_fala; sp_ma_fala = currentpicture;
+ currentpicture := currentpicture shifted (-lshift,0);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(13,0stwd#, stht#, stdp#); "hass (consonant) sign";
+ numeric width; width = stem_width/abs(sind(stem_slope));
+ z1r = (-rindent,0); penpos1(.8width,stem_slope);
+ z2r = (+1.1rindent,-d); penpos2(.5width,-20);
+ penstroke z1e..z2e;
+ penlabels(1,2);
+endchar;
+
+%%% End of bangfala.mf \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/banghalf.mf b/Master/texmf-dist/fonts/source/public/bangtex/banghalf.mf
new file mode 100644
index 00000000000..285fa1b6cc5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/banghalf.mf
@@ -0,0 +1,198 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% banghalf.mf: METAFONT file that defines the broken form for
+% consonants to be used in conjuncts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+beginchar(160,12u#,stht#,stdp#); "k+";
+ numeric hh,hrise; hh=.6h;
+ hrise = matra_f*h-.75hh;
+ ka(0,hrise,w-rindent,hh);
+ matra(0,w);
+endchar;
+
+beginchar(161,8u#,stht#,stdp#); "g+";
+ numeric hh,hrise; hh = .75h; hrise = matra_f*(h-hh);
+ ga_(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(162,9u#,stht#,stdp#); "unga+";
+ numeric ww,hh,hrise; ww=w+lindent; hh=.5h;
+ hrise = (matra_f+.5matra_t)*h-hh;
+ unga(0,hrise,ww,hh);
+endchar;
+
+beginchar(163,7u#,stht#,stdp#); "c+";
+ numeric ww,hh,hrise; ww = w+lindent; hh=.65h;
+ hrise = matra_h*(h-hh);
+ matra(0,w);
+ ca(0,hrise,ww,hh);
+endchar;
+
+beginchar(164,10u#,stht#,stdp#); "j+";
+ numeric hh,hrise; hh=.7h; hrise=matra_f*(h-hh);
+ ja_(0,hrise,w+lindent,hh);
+ matra(0,w);
+endchar;
+
+beginchar(165,12u#,stht#,stdp#); "ina+";
+ numeric hE,hrise; hE=.5h; hrise = matra_f*(h-hE);
+ ina(0,hrise,w+lindent,hE);
+endchar;
+
+beginchar(166,12u#,stht#,stdp#); "T+";
+ numeric hh,hrise; hh = .9h; hrise = matra_f*(h-hh);
+ Dha(0,hrise,w,hh);
+ matra(0,w);
+ Tiki(.9w,.1w);
+endchar;
+
+beginchar(167,14u#,stht#,stdp#); "D+";
+ numeric hrise,hh; hh = .75matra_f*h; hrise = matra_f*h-hh;
+ Da(0,hrise,w,hh,.88);
+ matra(0,w);
+endchar;
+
+beginchar(168,6u#,stht#,stdp#); "N+";
+ numeric hrise,hh; hh = .7h; hrise = matra_f*(h - hh)-matra_thickness;
+ Na_(.001w,hrise,w+lindent,hh);
+endchar;
+
+beginchar(169,14u#,stht#,stdp#); "t+";
+ numeric hrise,hta; hta = .65h; hrise = matra_f*(h - hta);
+ ta(.04w,hrise,.9w,matra_f*hta);
+ matra(0,w);
+endchar;
+
+beginchar(170,8u#,stht#,stdp#); "d+";
+ numeric hh,hrise; hh = .7h; hrise = matra_f*(h-hh);
+ matra(0,w);
+ da(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(171,5u#,stht#,stdp#); "n+";
+ numeric ww,hh,hrise; ww = w+lindent; hh=.8h;
+ matra(0,w);
+ hrise = matra_f*(h-hh);
+ na_(0,1.5hrise,ww,matra_f*hh);
+endchar;
+
+beginchar(172,10u#,stht#,stdp#); "p+";
+ numeric hh,hrise; hh = .8h; hrise = matra_h*(h-hh);
+ pa_(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(173,9u#,stht#,stdp#); "b+";
+ numeric hh,hrise,ww;
+ hh = .7h; hrise = matra_f*(h-hh); ww = w - .5stem_width;
+ ba(0,hrise,ww,hh);
+ matra(0,w);
+endchar;
+
+beginchar(174,11u#,stht#,stdp#); "m+";
+ numeric balld,height;
+ balld = .35w; height = matra_f*h;
+ y1 = matra_h*h; x1r = x2l;
+ penpos1(.3balld,0);
+ z2l = (16/43w,37/50height); penpos2(.5balld,0);
+ fill z1l..{down}z2--z2r{up}..z1r--cycle;
+% The dot
+ fill fullcircle scaled balld shifted z2l;
+% The part to the right of the dot
+ pickup pencircle xscaled .5balld yscaled .25balld rotated -50;
+ top z3 = z2l + .5balld*dir 90;
+ z4 = (.75[x2l,w],30/50height);
+ rt z5 = (w+lindent,y3);
+ top z6 = (w,height);
+ draw z3{right}..{right}z4..{up}z5..z6;
+ penlabels(1,2,3,4,5,6);
+ picture shape_halfma; shape_halfma = currentpicture;
+ matra(0,w);
+endchar;
+
+beginchar(176,10u#,stht#,stdp#); "l+";
+ numeric hh,hrise; hh=.8h;
+ hrise = matra_f*h-.75hh;
+ matra(0,w);
+ la_(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(177,9u#,stht#,stdp#); "sh+";
+ numeric hh,hrise; hh = .8h; hrise = matra_f*(h-hh);
+ sha_(0,hrise,w+lindent,hh);
+endchar;
+
+beginchar(178,8u#,stht#,stdp#); "Sh+";
+ numeric balld; balld = w;
+ z1 = (w+rindent-.5balld,matra_f*h-.5balld);
+ golla(z1,balld);
+ matra(0,w);
+ pickup pencircle scaled .1w;
+ lft top z2 = z1 + .5balld * dir (135);
+ rt bot z3 = z1 + .5balld * dir (-45);
+ draw z2--z3;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(179,9u#,stht#,stdp#); "s+";
+ numeric ww,hh,hrise; ww = w+lindent; hh=.55h;
+ hrise = matra_h*h-hh;
+ sa_(0,hrise,ww,hh);
+ matra(0,w);
+endchar;
+
+beginchar(154,13u#,stht#,stdp#); "small bha";
+ numeric ww,hh,hrise; ww = w; hh=.7h;
+ hrise = matra_f*(h-hh);
+ bha(0,hrise,ww,matra_f*hh);
+ matra(0,w);
+endchar;
+
+beginchar(155,14u#,stht#,stdp#); "small ma";
+ numeric hh,hrise;
+ hh=.85h; hrise = matra_f*(h-hh);
+ ma_(0,hrise,w,hh);
+ matra(0,w);
+endchar;
+
+beginchar(156,14u#,stht#,stdp#); "small sa";
+ numeric hh,hrise,xstem;
+ hh=.5h; hrise = matra_h*h-hh; xstem = w - rindent;
+ sa_(0,hrise,xstem,hh);
+ matra(0,w);
+ stem(w-rindent);
+endchar;
+
+
+%%% End of banghalf.mf
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangjuk.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangjuk.mf
new file mode 100644
index 00000000000..dee644361a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangjuk.mf
@@ -0,0 +1,800 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangjuk.mf: METAFONT file that defines jukto byanjons
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar(22,16u#, stht#,stdp#); "d+R";
+ numeric wda; wda = 14/16w;
+ da(w-wda,0,wda,h);
+ z1 = (da_tiplx+w-wda,da_tiply);
+ z2 = (.05w,.25h);
+ Ebase(z1,z2,.06h);
+ matra(0,w);
+endchar;
+
+
+beginchar(23,18u#, stht#,stdp#); "p+R";
+ numeric xstem,wpa; wpa = 17/18w; xstem = w-rindent;
+ stem(xstem);
+ matra(xstem,w);
+ pa_(w-wpa,0,wpa-rindent,h);
+ z1 = (xstem+.5stem_width,0);
+ z2 = (.05w,.3h);
+ Ebase(z1,z2,.06h);
+endchar;
+
+
+beginchar(24,18u#, stht#,stdp#); "sh+R";
+ numeric xstem,wsha; wsha=w; xstem = w-rindent;
+ sha_(w-wsha,0,wsha-rindent,h);
+ stem(xstem);
+ matra(xstem,w);
+ z1 = (xstem+.5stem_width,0); z2 = (.05w,.3h);
+ Ebase(z1,z2,.06h);
+ z3r = (0,matra_f*h); penpos3(matra_t*h,90);
+ z4r = z3r + (w-wsha,0); penpos4(matra_t*h,matra_slope);
+ penstroke z3e--z4e;
+endchar;
+
+beginchar(180,17u#, stht#,stdp#); "k+k";
+ numeric hrise,hh,xstem;
+ xstem = .75w; hh = .75h; hrise = matra_f*(h-hh);
+ ka(0,hrise,xstem,hh);
+ ba_remove(0,0,xstem-rindent,hh);
+ ka(0,0,xstem,hh);
+ ka(0,0,xstem,hh);
+ ka(0,0,xstem,hh);
+ matra(0,w);
+endchar;
+
+beginchar(181,16u#, stht#,stdp#); "k+t";
+ numeric hka,wka,rise_ka,hta,wta,rise_ta;
+ hka = .65h; rise_ka = matra_f*(h - hka); wka = .7w;
+ hta = .65matra_f*h; wta = .9w; rise_ta = -.035h;
+ ka(.05w,rise_ka,wka,hka);
+ ta(-.04w,rise_ta,wta,hta);
+ unfill (0,0)--(0,top_ta)--(w,top_ta)--(w,0)--cycle;
+ unfill (0,0)--(0,top_ta)--(w,top_ta)--(w,0)--cycle;
+ ta(-.04w,rise_ta,wta,hta);
+ ta(-.04w,rise_ta,wta,hta);
+ matra(0,w);
+endchar;
+
+beginchar(182,14u#, stht#,stdp#); "k+t+r";
+ numeric hka,wka,hrise;
+ hka = .55h; hrise = matra_f*(h - hka); wka = .75w;
+ ka(0,hrise,wka,hka);
+ E(.04w,-.02h,.9w,.6h);
+ matra(0,w);
+endchar;
+
+beginchar(183,19u#, stht#,stdp#); "k+n";
+ numeric xstem,hh,hrise,nashift;
+ xstem = 14/19w; hh = .9h; hrise = matra_f*(h-hh);
+ z1 = (xstem-rindent+.5stem_width,0);
+ nashift = 0.2x1;
+ ka(0,hrise,xstem,hh);
+ na(nashift,0,xstem-nashift,.3h,1);
+ matra(0,w);
+endchar;
+
+beginchar(184,19u#, stht#,stdp#); "k+r";
+ numeric xstem,hh,hrise;
+ xstem = 14/19w; hh = h; hrise = matra_f*(h-hh);
+ z1 = (xstem-rindent+.5stem_width,0); z2 = (.02w,.23h);
+ ka(0,hrise,xstem,hh);
+ Ebase(z1,z2,.06h);
+ matra(0,w);
+ stem(x1-.5stem_width);
+endchar;
+
+beginchar(185,19u#, stht#,stdp#); "k+l";
+ numeric xstem,hh,hrise;
+ xstem = 14/19w; hh = .86h; hrise = matra_f*(h-hh);
+ z1 = (xstem-rindent,0);
+ ka(0,hrise,xstem,hh);
+ la_(-.03w,-.18h,x1+.5stem_width,.7h);
+ matra(0,w);
+ stem(x1);
+endchar;
+
+beginchar(186,17u#, stht#,stdp#); "k+w";
+ numeric hrise,hh,xstem;
+ xstem = 13/17w; hh = .75h; hrise = matra_f*(h-hh);
+ ka(0,hrise,xstem,hh);
+ ba_remove(0,0,xstem-rindent,hh);
+ ba(0,0,xstem-rindent,hh);
+ ba(0,0,xstem-rindent,hh);
+ ba(0,0,xstem-rindent,hh);
+ matra(0,w);
+endchar;
+
+beginchar(187,18u#, stht#,stdp#); "k+s";
+ numeric xstem;
+ xstem = w-rindent;
+ matra(0,w);
+ stem(xstem);
+% The wavy line
+ sa_(0,-.15h,xstem,.75matra_f*h);
+ z11l = (midxl_sa,midyl_sa);
+ z11r = (midxr_sa,midyr_sa);
+ unfill z11l--z11r--(x11r,(matra_f-matra_t)*h)--(0,(matra_f-matra_t)*h)--(0,y11l)--cycle;
+ numeric ww,hh,hrise;
+ ww=x11l+rindent; hh=h-y11r; hrise = matra_f*(h-hh);
+ ka(0,hrise,ww,hh);
+ ka(0,hrise,ww,hh);
+ penlabels(11);
+endchar;
+
+beginchar(189,27u#,stht#,stdp#); "khiyo + m";
+ numeric ww,th; ww = 22/27w; th = 60;
+ khiyo(0,0,ww,h);
+ matra(0,w);
+ z11l = (ballx,bally); penpos11(.5balld,th);
+ z12 = (w-rindent,matra_h*h);
+ hookstem(z11r,z11l,z12,th-70,th-90);
+ penlabels(11,12);
+endchar;
+
+
+beginchar(190,13u#,stht#,stdp#); "g + g";
+ numeric xstem,ww,hh,hrise;
+ xstem = ww = w-rindent; hh = .67h; hrise = matra_h*(h-hh);
+ matra(xstem,w);
+ stem(xstem);
+ ga_(0,hrise,ww,hh);
+ ga_(0,-.1h,ww,hh);
+endchar;
+
+beginchar(192,14u#,stht#,stdp#); "ch + r";
+ numeric hh,hrise; hh=.8h;
+ hrise = matra_f*(h-hh);
+ cha(0,hrise,w,hh);
+ matra(0,w);
+ z1 = (w-rindent,0); z2 = (0,.2h);
+ Ebase(z1,z2,.06h);
+ halfstem(x1,0,.18h);
+endchar;
+
+beginchar(193,13u#,stht#,stdp#); "ch + W";
+ numeric hh,hrise,hb,wb,shxb;
+ hh=.7h; hrise = matra_f*(h-hh);
+ hb = .4h; wb = .5w; shxb = .15w;
+ cha(0,hrise,w,hh);
+ matra(0,w);
+ ba(shxb,0,wb,hb);
+endchar;
+
+beginchar(194,24u#, stht#,stdp#); "j+j";
+ numeric hrise,hha,hhb,ww,width,xshift,yshift;
+ ww = .7w; hha = .6h; hrise = matra_h*(h-hha); width = .18ww;
+ xshift = .31w; hhb = .8h; yshift = matra_f*(h-hhb);
+ ja_bare(0,hrise,7/8*37/56ww,hha);
+ z1'l = (topl_ja,matra_h*h);
+ z1'r = (topr_ja,matra_h*h);
+ ja_full(xshift,0,ww,hhb);
+ z2'l = (topl_ja+xshift,matra_h*hhb);
+ z2'r = (topr_ja+xshift,matra_h*hhb);
+ matra(0,w);
+ penstroke z1'e..tension1.2..{right}z2'e;
+ penlabels(1',2');
+endchar;
+
+beginchar(195,24u#, stht#,stdp#); "j+j+W";
+ numeric hrise,hha,hhb,ww,width,xshift,yshift;
+ ww = .7w; hha = .6h; hrise = matra_f*(h-hha); width = .18ww;
+ xshift = .25w; hhb = .8h; yshift = matra_f*(h-hhb);
+ ja_bare(0,hrise,7/8*37/56ww,hha);
+ ja_full(xshift,yshift,ww,3/4hhb);
+ matra(0,w);
+ z11r = (.5ww,matra_f*h-.5matra_thickness); penpos11(.5width,0);
+ z12 = z11 + (xshift,-yshift); penpos12(width,0);
+ z13 = .5[z11,z12] + (0,-.04h); penpos13(.8width,0);
+ penstroke z11e..z13e..z12e;
+ ba_(.45w,0,.35w,.35h);
+ halfstem(.8w,.3h,0);
+ penlabels(11,12,13);
+endchar;
+
+beginchar(196,20u#, stht#,stdp#); "j+ina";
+ numeric ww; ww = 37/56w;
+ ja_bare(0,0,ww,h);
+ matra(0,w);
+ z11l = (topl_ja,matra_h*h);
+ z11r = (topr_ja,matra_h*h);
+ z12r = (midlx_ja,midly_ja);
+ z12l = (midrx_ja,midry_ja); z12 = .5[z12l,z12r];
+ penstroke z11e..z12e;
+ clover(z12,w-ww,.23h,.08h);
+ penlabels(11,12,13);
+endchar;
+
+beginchar(197,18u#, stht#,stdp#); "j+r";
+ numeric width,hrise,hh,ww;
+ hh = .84h; hrise = matra_f*(h-hh); width = .18w;
+ ja_bare(0,hrise,37/56w,hh);
+ matra(0,w);
+ z7r = (.5w,matra_f*h-.5matra_thickness); penpos7(.5width,0);
+ z8 = (.68w,.54hh+hrise); penpos8(.5width,90);
+ z9 = (.84w,.54hh+hrise); penpos9(.7width,80);
+ penstroke z7e..z8e..z9e;
+ z10= (.79w,.18h); penpos10(.5length(z9l-z9r),-45);
+ z11= (.84w,0);penpos11(.5length(z9l-z9r),-30);
+ x12r = .96w; y12r = y9l;
+ z12l = z9r;
+ penstroke z12e..z10e{down}..z11e;
+ z13 = (.03w,.22h);
+ Ebase(z11,z13,.07h);
+ penlabels(7,8,9,10,11,12,13);
+endchar;
+
+beginchar(198,18u#, stht#,stdp#); "j+W";
+ numeric width,hrise,hj,hb,wb,ofxb;
+ hj = .8h; hrise = matra_f*(h-hj); width = .18w;
+ hb = .5h; wb = .4w; ofxb = x10-wb;
+ ja_bare(0,hrise,37/56w,hj);
+ matra(0,w);
+ z7r = (.5w,matra_f*h-.5matra_thickness); penpos7(.5width,0);
+ z8 = (.68w,.54hj+hrise); penpos8(.5width,90);
+ z9 = (.84w,.54hj+hrise); penpos9(.7width,80);
+ penstroke z7e..z8e..z9e;
+ z10= (w-1.3rindent,matra_f*hb); penpos10(stem_width,0);
+ x11r = .96w; y11r = y9l;
+ z11l = z9r;
+ penstroke z11e..z10e{down};
+ ba(x10-wb,0,wb,hb);
+ penlabels(7,8,9,10,11);
+endchar;
+
+beginchar(199,17u#, stht#,stdp#); "ina+ca";
+ numeric hrise,hh,xstem,ww,clovh;
+ xstem = .35w; hh = .4h; hrise = matra_f*(h-hh); ww = w-xstem;
+ clovh = .18h;
+ Estem(lindent,hrise,xstem,hh);
+ ca(xstem,0,ww,matra_f*h);
+ z11 = (xstem+lindent,matra_f*h-clovh);
+ clover(z11,.6ww,clovh,.13hh);
+ penlabels(11);
+endchar;
+
+beginchar(200,16u#, stht#,stdp#); "ina+cha";
+ numeric hrise,hh,xstem,ww,clovh;
+ xstem = .3w; hh = .4h; hrise = matra_f*(h-hh); ww = w-xstem;
+ clovh = .2h;
+ Estem(lindent,hrise,xstem,hh);
+ cha(xstem,0,ww,matra_f*(h-hh)/matra_h);
+ z11 = (xstem+lindent,matra_f*h-clovh);
+ clover(z11,.6ww,clovh,.12hh);
+ penlabels(11);
+endchar;
+
+beginchar(201,18u#, stht#,stdp#); "ina+ja";
+ numeric hrise,hh,hja,xshift,clovh;
+ xshift = .1w; clovh = .18h;
+ hh = .35h; hrise = matra_f*(h-hh);
+ hja = hrise/matra_h; wina = xstem-xshift;
+% The ja at the bottom
+ ja_full(0,0,w,hja);
+% The E-like stem at the top
+ numeric xstem,wina;
+ xstem = .5[topl_ja,topr_ja];
+ wina = xstem - xshift;
+ Estem(xshift,hrise,wina,hh);
+% The clover
+ z11 = (xstem,matra_f*h-.5hh);
+ clover(z11,.65(w-xstem),clovh,.12hh);
+ penlabels(11);
+endchar;
+
+beginchar(202,16u#, stht#,stdp#); "ina+jha";
+% I decided not to use a separate form for this.
+endchar;
+
+beginchar(203,12u#, stht#,stdp#); "Ta+Ta";
+ numeric hh,hrise; hh = .9h; hrise = matra_f*(h-hh);
+ Dha(0,hrise,w,hh);
+ matra(0,w);
+ Tiki(.9w,.1w);
+ z11 = (.65w,.3h);
+ z12 = (.4w,0);
+ z13 = (.05w,.1h);
+ pickup pencircle xscaled stem_width yscaled .6stem_width rotated 120;
+ draw z11..z12..z13;
+ penlabels(11,12,13);
+endchar;
+
+beginchar(204,20u#, stht#,stdp#); "Na+Ta";
+ numeric wNa,wTa,hh,hrise;
+ wNa=9/20w; hh = .7h; hrise = matra_f*(h-hh); wTa = 13/20w;
+ Dha(wNa-lindent,0,wTa,h);
+ Na_(0,hrise,wNa,hh);
+ pickup penrazor scaled matra_thickness rotated matra_slope;
+ draw (wNa-.5stem_width,matra_f*h)..(w,matra_f*h);
+ Tiki(.9w,.3w);
+endchar;
+
+beginchar(205,15u#, stht#,stdp#); "Na+Tha";
+ numeric ww,hh,hrise; ww=.65w; hh = .7h; hrise = matra_f*(h-hh);
+ currentpicture := currentpicture + shape_Tha;
+ currentpicture := currentpicture shifted (.1w,0);
+ Na_(0,hrise,ww,hh);
+ pickup penrazor scaled matra_thickness rotated matra_slope;
+ draw (ww,matra_f*h)..(w,matra_f*h);
+endchar;
+
+beginchar(206,18u#, stht#,stdp#); "N+D";
+ numeric hh,hrise;
+ hh = .65h; hrise = matra_f*(h-hh);
+ Da(0,0,w,matra_f*h,.6);
+ Na_(0,hrise,.5w,hh);
+ matra(.5w,w);
+endchar;
+
+beginchar(207,17u#, stht#,stdp#); "N+D+R";
+ numeric wDa,hDa,hNa,Darise,Narise;
+ hNa = .65h; wDa = w; hDa = .9h;
+ Narise = matra_f*(h-hNa); Darise = matra_f*(h-hDa);
+ numeric Ewidth; Ewidth = .05h;
+ Da(w-wDa,Darise,wDa,matra_f*hDa,.6);
+ Na_(0,Narise,.5w,hNa);
+ x1 = w-rindent; y1=0;
+ z3 = (.05w,.15h);
+ Ebase(z1,z3,Ewidth);
+ halfstem(x1,.28h,y1-.5Ewidth);
+ matra(.5wDa,w);
+endchar;
+
+beginchar(208,13u#, stht#,stdp#); "N+N";
+ numeric ww,hh,hrise; ww = w-rindent; hh=.8h; hrise = matra_f*(h-hh);
+ matra(ww,w);
+ stem(ww);
+ Na_(0,hrise,ww,hh);
+ Na_(0,-.18h,ww,hh);
+endchar;
+
+beginchar(209,17u#, stht#,stdp#); "t+t";
+ O(0,0,w,h);
+ matra(0,w);
+endchar;
+
+beginchar(210,14u#, stht#,stdp#); "t+t+W";
+ numeric hh,hrise,wba,hba,shiftba;
+ hh = .6h; hrise = (matra_h-matra_t)*(h-hh);
+ wba = .5w; hba = .48h; shiftba = .2w;
+ O(0,hrise,w,hh);
+ ba(shiftba,0,wba,hba);
+ matra(0,w);
+endchar;
+
+beginchar(211,15u#, stht#,stdp#); "t+th";
+ numeric xstem,balld,phi,height;
+ balld = .18h; phi=65; xstem=w-rindent; height = matra_f*h;
+ z1 = (.17w,.56h);
+ fill fullcircle scaled balld shifted (z1);
+ z2l = z1 + .5balld * dir (-179); z2r = z1;
+ z3l = (.05w,.63h);
+ z3r = (.1w,.6h);
+ z4l = (.28w,matra_h*h); penpos4(.08h,-90);
+ z6l = (.56w,y4l); penpos6(length(z4r-z4l),-90);
+ y5l = y4l-.5balld; x5l = .5[x4l,x6l]; penpos5(.09h,-90);
+ penstroke z2e{up}..{right}z4e..{dir -phi}z5e;
+%
+ z7r = (.64w,.52h); penpos7(.08w,180);
+ z8r = (5/42w,27/50height);
+ z8l = (8.5/42w,20/50height);
+ penstroke z5e{dir phi}..z6e{right}..z7e..{left}z8e;
+ z9 = (xstem,height);
+ hookstem(z8r,z8l,z9,0,0);
+ matra(xstem,w);
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(212,15u#, stht#,stdp#); "t+n";
+ numeric xstem,xshift,hh,hrise,nafrac;
+ xstem = w-rindent; xshift = .15w; hh = .7h; hrise = matra_f*(h-hh);
+ nafrac = .42;
+ matra(0,w);
+ ta(.05w,hrise,.9w,matra_f*hh);
+ na(xshift,0,.9w-xshift,nafrac*h,.35/nafrac);
+endchar;
+
+beginchar(213,17.5u#, stht#,stdp#); "t+r";
+ E(0,0,w,.94h);
+ matra(0,w);
+endchar;
+
+beginchar(214,16u#, stht#,stdp#); "d+d";
+ numeric wbar;
+%% Initial definitions
+ z1 = (lindent,matra_f*h); penpos1(stem_width,0);
+ z2l = (x1l,.43h);
+ z2r = (x1r,.35h);
+ wbar = length(z2r-z2l);
+%% The first diagonal line
+ z3l = (.5w,.65h); z3l-z3r=z2l-z2r; z3 = .5[z3l,z3r];
+ penstroke z2e..z3e;
+%% The first hanging line
+ x4 = .1[x3l,x2l]; y4 = .5y2l;
+ penpos4(.4wbar,angle(z3l-z2l));
+ penstroke z3e..{down}z4e;
+ currentpicture := currentpicture + currentpicture shifted (z4l-z2l - ((y2l/h)*slantval*w,0));
+%% The vertical bar at the left
+ penstroke z1e..z2e;
+ matra(0,w);
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(215,12u#, stht#,stdp#); "d+bh";
+ numeric hh,hrise; hh = .65h; hrise = matra_f*(h-hh);
+ da(0,hrise,w,hh);
+ bha(0,-.1hh,w,matra_f*hh);
+ matra(0,w);
+endchar;
+
+beginchar(216,12u#, stht#,stdp#); "d+W";
+ matra(0,w);
+%% The vertical bar at the left
+ z1 = (lindent,matra_f*h); penpos1(stem_width,0);
+ z2l = (x1l,.4h);
+ z2r = (x1r,.32h);
+ penstroke z1e..z2e;
+%% The diagonal line
+ y3r = .52h;
+ y3l-y3r=y2l-y2r;
+ x3r-x3l=stem_width;
+ z3 = .5[z3l,z3r];
+ x3 = w - rindent;
+ penstroke z2e{z3-z2r}..z3e;
+%% The "ba"
+ ba(x2l,0,w-rindent-lindent,.55h);
+% Connecting the ba-part and the da-part
+ z4l = (ba_topxl,ba_topy);
+ z4r = (ba_topxr,ba_topy);
+ penstroke z3e..{down}z4e;
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(217,14u#, stht#,stdp#); "dh+W";
+ numeric hh,ba_shift; hh = .7h; ba_shift = 2/14w;
+ currentpicture := currentpicture + shape_dha;
+ ba_remove(ba_shift,0,w-rindent-ba_shift,hh);
+ ba(ba_shift,0,w-rindent-ba_shift,hh);
+ ba(ba_shift,0,w-rindent-ba_shift,hh);
+ ba(ba_shift,0,w-rindent-ba_shift,hh);
+endchar;
+
+beginchar(218,15u#, stht#,stdp#); "n+t";
+ numeric xstem,xshift,hh,hrise,fracrise,wna;
+ xstem = w-rindent; xshift = .1w; hh = .5h; hrise = .3h;
+ fracrise = (matra_f*h-hh)/hrise; wna = .8w;
+ matra(0,w);
+ na(xshift,hrise,wna-xshift,hh,fracrise);
+ ta(.1w,-.03h,xstem,.7matra_f*h);
+endchar;
+
+beginchar(219,13u#, stht#,stdp#); "n+t+r";
+ numeric xshift,hna,hrise,stem_frac;
+ xshift = .06w; hna = .6h;
+ hrise = matra_f*h-(hna*stem_frac); stem_frac = .8;
+ matra(0,w);
+ na(xshift,hrise,w-xshift,hna,stem_frac);
+ E(0,0,w,.6h);
+endchar;
+
+beginchar(220,13u#, stht#,stdp#); "n+t+W";
+ numeric hh,hrise,xstem,xshift,bashift;
+ hh = .8h; hrise = matra_f*(h-hh); xstem = w-rindent; xshift = .06w;
+ bashift = .3w;
+ matra(0,w);
+ na(xshift,.25hh+hrise,w-xshift,.6hh,.8);
+ ta(0,hrise,xstem+.1w,.5hh);
+ ba(.7bashift,-.05h,xstem-bashift,.4h);
+endchar;
+
+beginchar(221,21u#, stht#,stdp#); "n+d";
+ numeric wna,hna,hrise;
+ wna=1/3w; hna = 33/50matra_f*h;
+ hrise = matra_f*h-hna;
+ matra(0,w);
+ na(0,hrise,wna+lindent+rindent,hna,1);
+ da(wna,0,w-wna,h);
+ matra(0,w);
+ picture shape_nd; shape_nd = currentpicture;
+endchar;
+
+beginchar(222,21u#, stht#,stdp#); "n+d+R";
+ currentpicture := currentpicture + shape_nd;
+ z1 = (w-rindent+.5stem_width,0); z2 = (.04w,.3h);
+ Ebase(z1,z2,.06h);
+endchar;
+
+
+beginchar(223,14.5u#, stht#,stdp#); "n+n";
+ numeric xstem,ww,hh; xstem = ww = w-rindent; hh=.6h;
+ matra(0,w);
+ na(0,0,w,hh,.8);
+ na(0,.25h,w,hh,.8);
+endchar;
+
+beginchar(224,13u#, stht#,stdp#); "n+W";
+ numeric xstem,ww,hh,hrise,bashift;
+ xstem = ww = w-rindent; hh=.5h; hrise = matra_f*h-hh; bashift = .15w;
+ matra(0,w);
+ na(0,hrise,w,hh,1);
+ ba(bashift,0,ww-bashift,.6h);
+endchar;
+
+beginchar(225,14u#, stht#,stdp#); "p+t";
+ numeric hrise,hh,xstem,xshift; xstem = w-rindent; xshift = .08xstem;
+ hh = .68h; hrise = matra_f*(h-hh);
+ pa_(xshift,hrise,xstem-xshift,hh);
+ ta(.09w,-.03h,.9w,.49h);
+ halfstem(xstem,matra_f*h,.33h);
+ matra(xstem,w);
+endchar;
+
+beginchar(226,14u#, stht#,stdp#); "p+p";
+ numeric ww,hh,hrise; ww=w-rindent; hh=.7h;
+ hrise = matra_f*(h-hh);
+ pa_(0,hrise,ww,hh);
+ pa_(0,-.08h,ww,hh);
+ matra(ww,w);
+ stem(ww);
+endchar;
+
+beginchar(227,18.5u#, stht#,stdp#); "ph+r";
+ numeric wpha; wpha = 28/37w;
+ currentpicture := currentpicture + shape_pha;
+ z1 = (wpha-rindent+.5stem_width,0);
+ z2 = (0,.2h);
+ Ebase(z1,z2,.06h);
+endchar;
+
+beginchar(228,18.5u#, stht#,stdp#); "ph+l";
+ numeric wpha; wpha = 28/37w;
+ currentpicture := currentpicture + shape_pha;
+ z1 = (wpha-rindent,0);
+ z2 = (0,.2h);
+ la_(0,-.2h,wpha-rindent,.6h);
+endchar;
+
+beginchar(229,20u#, stht#,stdp#); "b+j";
+ numeric ww, hh, hrise; ww = .4w; hh = .54h; hrise = matra_f*(h-hh);
+ ja_full(0,0,w,h);
+ ba_remove(0,hrise,ww,hh);
+ ba(0,hrise,ww,hh);
+ ba(0,hrise,ww,hh);
+ ba(0,hrise,ww,hh);
+ matra(0,w);
+endchar;
+
+
+
+beginchar(230,14u#, stht#,stdp#); "b+b";
+ numeric xstem,hh,hrise;
+ xstem = w - rindent; hh = .75h; hrise = matra_f*(h-hh);
+ ba(0,hrise,xstem,hh);
+ ba_remove(0,0,xstem,hh);
+ ba(0,0,xstem,hh);
+ ba(0,0,xstem,hh);
+ ba(0,0,xstem,hh);
+ matra(0,w);
+endchar;
+
+beginchar(231,17.5u#, stht#,stdp#); "bh+r";
+ numeric balld,height;
+ balld = .25w; height=matra_f*h;
+% The circle
+ z4 = (w-rindent,25/50height); penpos4(stem_width,0);
+ x1r = .5x4; y1r = 34/50height; penpos1(.5balld,60);
+ fill fullcircle scaled balld shifted (z1r);
+% The connector between the circle and the stem
+ z2l = (.7x4,26/50height); z2r = (32/54w,31/50height);
+ x3r = 42/54w; y3r = 39.5/50height; penpos3(stem_width,100);
+ penstroke z1e..z2e..z3e;
+ fill z3r{right}..{down}z4r--z4l{up}..z3l--cycle;
+% The wavy line
+ z5 = (.51w,.18h); penpos5(6/50height,90);
+ z6 = (.27w,.21h); penpos6(6/50height,90);
+ z7 = (4/48w,24/50height); penpos7(3/50height,0);
+ z8 = (6.5/48w,33/50height); penpos8(2/50height,-30);
+ penstroke z5e{left}..z6e..z7e..tension1.2..z8e;
+ hookstem(z5r,z5l,z4,0,0);
+ penlabels(1,2,3,4,5,6,7,8);
+ matra(0,w);
+endchar;
+
+beginchar(232,13u#, stht#,stdp#); "m+b";
+ numeric xstem,hh,hrise,bashift;
+ xstem = w - rindent; hh = .65h; hrise = matra_f*(h-hh); bashift = .1w;
+ ba(bashift,0,xstem-bashift,hh);
+ ma_(0,hrise,xstem+rindent,hh);
+ matra(0,w);
+endchar;
+
+beginchar(233,16u#, stht#,stdp#); "m+bh";
+ numeric hh; hh = .52h;
+ bha(0,0,w,hh);
+ currentpicture := currentpicture + shape_halfma shifted (.08w,0);
+ matra(0,w);
+endchar;
+
+beginchar(234,17u#, stht#,stdp#); "l+l";
+ numeric hh,xstem;
+ xstem = w-rindent; hh = .85h;
+ la_(0,.15h,xstem,hh);
+ la_(0,-.2h,xstem,hh);
+ stem(xstem);
+ matra(0,w);
+endchar;
+
+beginchar(235,20u#, stht#,stdp#); "Sh+T";
+ numeric hh,hrise,Tashift;
+ hh = .75h; hrise = matra_f*(h-hh); Tashift = .4w;
+ Sha_(0,hrise,Tashift+lindent-.5stem_width,hh);
+ Dha(Tashift,0,w-Tashift,h);
+ matra(0,w);
+ Tiki(.9w,Tashift);
+endchar;
+
+beginchar(236,15u#, stht#,stdp#); "Sh+Th";
+ numeric hh,hrise;
+ hh = .65h; hrise = matra_f*(h-hh);
+ Sha_(0,hrise,.55w,hh);
+ currentpicture := currentpicture + shape_Tha shifted (.08w,0);
+ matra(0,w);
+endchar;
+
+beginchar(237,22u#, stht#,stdp#); "Sh+N";
+ numeric wSha; wSha = 15/22w;
+ currentpicture := currentpicture + shape_Sha;
+ matra(0,wSha-rindent+.5stem_width);
+ z1 = (wSha-rindent+.25stem_width,.5h);
+ clover(z1,w-wSha,matra_f*h-y1,.08h);
+endchar;
+
+beginchar(238,16u#, stht#,stdp#); "s+k";
+ numeric hrise,hh,xstem,xshift;
+ xstem = w-2rindent; hh = .5h; hrise = matra_h*h-hh; xshift=.2w;
+ halfstem(xstem,matra_f*h,.35h);
+ sa_(0,hrise,xstem,hh);
+ ka(xshift,0,xstem+2rindent-xshift,.65h);
+ matra(0,w);
+endchar;
+
+beginchar(239,15u#, stht#,stdp#); "s+t";
+ numeric hrise,hh,xstem,xshift;
+ xstem = w-rindent; hh = .45h; hrise = matra_h*h-hh;
+ xshift=0w;
+ halfstem(xstem,matra_f*h,.33h);
+ sa_(xshift,hrise,xstem-xshift,hh);
+ ta(.09w,-.03h,.9w,.65matra_f*h);
+ matra(0,w);
+endchar;
+
+beginchar(240,14u#, stht#,stdp#); "s+t+r";
+ numeric hrise,hh,xstem,xshift;
+ xstem = w-rindent; hh = .45h; hrise = matra_h*h-hh; xshift=-.04w;
+ halfstem(xstem,matra_f*h,.33h);
+ sa_(xshift,hrise,xstem-xshift,hh);
+ E(0,0,w,.6h);
+ matra(0,w);
+endchar;
+
+beginchar(241,14u#, stht#,stdp#); "H+N";
+ numeric ww,shiftNa,hHa,hrise;
+ ww = .6w; shiftNa = .1w; hHa = .85h; hrise = matra_f*(h-hHa);
+ Na_(shiftNa,-.22h,ww,.6h);
+ Ha(0,hrise,w,matra_f*hHa);
+ halfstem(ww+shiftNa,.25h,-ha_dip);
+ matra(0,w);
+endchar;
+
+beginchar(242,21u#, stht#,stdp#); "H+n";
+ numeric ww,hh;
+ ww = .4w; hh = .7h;
+ na_(-.0w,.2h,ww,hh);
+ currentpicture := currentpicture reflectedabout ((w/2,0),(w/2,h)) shifted (1.2w*slantval,0);
+ Ha(0,0,14.5/21w,matra_f*h);
+ matra(0,w);
+endchar;
+
+beginchar(243,22u#, stht#,stdp#); "H+m";
+ numeric xstem,balld,thinness,height,theta;
+ xstem=42/63w; thinness=.45; height = matra_f*h; balld=11/50height;
+ theta = -60;
+ matra(0,w);
+% The two balls
+ z0 = (xstem,height);
+ z1= (11/63w,34.5/50height);
+ z2= (24/63w,20/50height);
+ fill fullcircle scaled balld shifted (z1);
+ fill fullcircle scaled balld shifted (z2);
+% Points on the two circles
+ z1a = z1 + .5 * balld * dir(0);
+ z1b = thinness[z1a,z1];
+ z1c = z1 + .5balld * dir(90);
+ z2a = z2 + .5balld * dir(0);
+ z2b = thinness[z2a,z2];
+ z2c = z2 + .5balld * dir(90);
+% The line from the matra to the first dot
+ z6l = (7/63w,matra_h*h); penpos6(6.5/63w,0);
+ fill z6l..{down}z1b--z1a{up}..z6r--cycle;
+% The line between the two dots
+ fill z1c{right}..{down}z2a--z2b{up}..tension0.8..{left}z1b--cycle;
+% The stem
+ hookstem(z2c,z2a,z0,0,0);
+% This part is for the ball at the end of the hook
+ z3r = (w-rindent,0);
+ x3l = x5l;
+ y3l = stem_width/sind(stem_slope);
+% The hook
+ z4l = (xstem,34.5/50height); penpos4(.5balld,90);
+ z5r = (w-rindent,.9[y3l,y4l]); penpos5(stem_width,0);
+ z7 = (24/63w,matra_h*h); penpos7(4/63w,0);
+ penstroke z3e{up}..{up}z5e..z4e{left};
+ fill z4l--z1a--z1c--z4r--cycle;
+ penlabels (0,1,1a,1b,1c,2,2a,2b,2c,3,4,5,6,7);
+endchar;
+
+beginchar(244,14u#, stht#,stdp#); "H+r";
+ numeric hHa,hrise;
+ hHa = .85h; hrise = matra_f*(h-hHa);
+ Ha(0,hrise,w,matra_f*hHa);
+ z1 = (w-rindent,0); z2 = (.02w,.23h);
+ Ebase(z1,z2,.06h);
+ halfstem(x1-.5stem_width,.2h,0);
+ matra(0,w);
+endchar;
+
+beginchar(245,14u#, stht#,stdp#); "H+l";
+ numeric ww,hh,hHa,hrise,lashift;
+ ww = w-rindent; hh = .6h; hHa = .85h; hrise = matra_f*(h-hHa);
+ lashift = -.07w;
+ la_(lashift,-.18h,ww-lashift,hh);
+ Ha(0,hrise,w,matra_f*hHa);
+ halfstem(ww,.2h,-ha_dip);
+ matra(0,w);
+endchar;
+
+beginchar(246,14u#, stht#,stdp#); "H+W";
+ numeric hrise,hHa;
+ hHa = .85h; hrise = matra_f*(h-hHa);
+ matra(0,w);
+ Ha(0,hrise,w,matra_f*hHa);
+ ba(.13w,0,.5w,.42h);
+endchar;
+
+
+%%% End of bangjuk.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangkaar.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangkaar.mf
new file mode 100644
index 00000000000..b890e9fc7fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangkaar.mf
@@ -0,0 +1,146 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangkaar.mf: METAFONT file that defines the Bangla conjunct vowels
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+beginchar("a",7u#, stht#,stdp#); "A-kar";
+ numeric xstem; xstem=.45w;
+ matra(0,w);
+ stem(xstem);
+endchar;
+
+
+beginchar("i",7u#, stht#, stdp#); "hraswa i-kar";
+ numeric xstem,height; xstem = .5w; height = matra_f*h;
+ matra(0,w);
+ stem(xstem);
+ pickup pencircle xscaled 0.2pt yscaled 0.6pt rotated 45;
+ z1 = (xstem,matra_h*h);
+ bot z6 = (25/20w,70/50*matra_f*h);
+ lft x5 = 0; y5=.3[y1,y6];
+ z7 = (53/20w,57/50height);
+ draw z1..tension1.5..z5..{right}z6..tension1.2..z7;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(140, 6u#,stht#,stdp#); "dirgha i-kar";
+ numeric xstem,height; xstem = w-rindent; height = matra_f*h;
+ matra(-rindent,w);
+ stem(xstem);
+ pickup pencircle xscaled 0.2pt yscaled 0.6pt rotated 45;
+ z3 = (xstem,matra_h*h);
+ z5 = (-20/17w,73/50height);
+ z6 = (-33/17w,65/50height);
+ z7 = (-21/17w,59/50height);
+ lft z8 = (-rindent,matra_h*h);
+ draw z3{up}..{left}z5{left}..{down}z6{down}..z7{right}..{dir -120}z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("u",0stwd#,stht#,stdp#); "hraswa-u-kar";
+ numeric width; width = stem_width/abs(sind(stem_slope));
+ z1l = (-rindent-.5stem_width,stem_width*sind(stem_slope));
+ z1r = (-rindent+.5stem_width,0);
+ z2r = (-rindent,-.25d); penpos2(.5width,0);
+ z3 = (-2rindent,-.6d); penpos3(.5width,-90);
+ z4 = (-3rindent,-.3d); penpos4(.5width,180);
+ z5 = (-2.2rindent,0); penpos5(.8width,90);
+ z6 = (+1.1rindent,-d); penpos6(.5width,0);
+ fill z1r{down}..{left}z3r..z4r..{right}z5r{right}..z2r..tension 2..z6r--z6l--z2l..{up}z1l--cycle;
+ unfill z3l..z4l..{right}z5l..{dir -30}z2l{dir -130}..cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(142,0stwd#,stht#,stdp#); "dirgha-u-kar";
+ numeric width; width = stem_width/abs(sind(stem_slope));
+ z1r = (-rindent-.5stem_width,stem_width*sind(stem_slope));
+ z1l = (-rindent+.5stem_width,0);
+ z2r = (0,-.25d); penpos2(.5width,0);
+ z3 = (-1.5rindent,-.6d); penpos3(.6width,-90);
+ z4 = (-2.7rindent,-.3d); penpos4(.6width,180);
+ z5 = (-2.2rindent,0); penpos5(.5width,90);
+ z6 = (+1.5rindent,-d); penpos6(.5width,0);
+ fill z1r..z5r..z4r..z3r..z2r--z2l..z3l..z4l..z5l..{right}z1l--cycle;
+ penstroke z2e--z6e;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(144,0stwd#,stht#,stdp#); "ri-kar";
+z1 = (w-0.9pt,0); z2 = (w-2.1pt,-1/3d); z3 = (w,-d);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2--z3;
+endchar;
+
+beginchar(146,8u#,stht#,stdp#); "ae-kar";
+ numeric balld; balld = 1.5dot_diam;
+ z1 = (w-.5balld,.5balld);
+ fill fullcircle scaled balld shifted z1;
+ z3l = (.5w,matra_f*h-.5matra_thickness); z3r = (w,y3l);
+ z4l = (.15w,.5matra_f*h); z4r = z4l + (.15w,0);
+ z5l = (x1,0); z5r = z1;
+ penstroke z3e..{down}z4e..{right}z5e;
+ picture shape_ekar; shape_ekar = currentpicture;
+ matra(0,w);
+ z9 = (0,.4h); z10 = (.8w,y9);
+ pickup penrazor xscaled 1.5stem_width rotated 90;
+ draw z9--z10;
+ matra(0,w);
+ penlabels (1,3,4,5,9,10);
+endchar;
+
+beginchar("e",8u#,stht#,stdp#); "e-kar";
+ currentpicture := shape_ekar;
+ matra(0,w);
+endchar;
+
+beginchar(148,8u#,stht#,stdp#); "oi-kar";
+ currentpicture := shape_ekar;
+ Tiki(.9w,0);
+ matra(0,w);
+endchar;
+
+
+beginchar("o",0,stht#,stdp#); "o-kar";
+endchar;
+
+beginchar(150,6u#,stht#,stdp#); "ou-kar";
+ numeric xstem; xstem=.5w;
+ Tiki(xstem,-3rindent);
+ matra(0,w);
+ stem(xstem);
+endchar;
+
+
+%%% End of bangkaar.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/banglig.mf b/Master/texmf-dist/fonts/source/public/bangtex/banglig.mf
new file mode 100644
index 00000000000..9b621c68bc1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/banglig.mf
@@ -0,0 +1,183 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% banglig.mf: METAFONT file defining ligature tables for Bangla
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% double dNNarhi
+ligtable ".": "." =: 14;
+
+%% dot dot dot
+ligtable 14 : "." =: 15;
+
+%% peT-kaTa "e"
+ligtable "a": "a" =: 146;
+ligtable "A": "A" =: 147;
+
+%% bha
+ligtable "b": "h" =: "v", "/" =: 173;
+
+%% cha
+ligtable "c": "h" =: "q", "/" =: 163;
+
+%% dha, da + (fala)
+ligtable "d": "h" =: "z", "R" =: 22, "W" =: 216, "M"=:| 170, "/" =: 170;
+
+%% Dha, Da + (fala)
+ligtable "D": "h" =: "Z", "/" =: 167, "L" =:| 167, "R" =:| 167, "W" =:| 167;
+
+%% pha + (fala)
+ligtable "f": "R" =: 227, "L" =: 228;
+
+%% gha
+ligtable "g": "h" =: "G", "/" =: 161;
+
+%% Ha + (fala)
+ligtable "H": "R" =: 244, "W" =: 246, "M" =: 243, "L" =: 245;
+
+%% dirgha-i
+ligtable "i": "i" =: 140;
+ligtable "I": "I" =: 141;
+
+%% jha, ja + (fala)
+ligtable "j": "h" =: "C", "R" =: 197, "W" =: 198, "/" =: 164;
+
+%% kha, khiyo, ka + (fala)
+ligtable "k": "h" =: "x", "K" =: "X", "W" =: 186, "R" =: 184, "L" =: 185, "M" =:| 160, "/" =: 160;
+
+%% la +
+ligtable "l": "/" =: 176, "M" =:| 176;
+
+%% ma +
+ligtable "m": "/" =: 174, "M" =:| 174, "L" =:| 155, "W" =: 232;
+
+%% anuswar, unga, ina, candro-bindu
+ligtable "N": "G" =: 130, "J" =: 131, "N" =: 132, "/" =: 168;
+
+%% na +
+ligtable "n": "/" =: 171, "M" =:| 171, "W" =: 224;
+
+%% OI, OU
+ligtable "o": "i" =: 148, "u" =: 150;
+ligtable "O": "I" =: 149, "U" =: 151;
+
+%% pha, pa + (fala)
+ligtable "p": "R" =: 23, "h" =: "f", "/" =: 172, "M" =:| 172;
+
+%% murdhanya Sha +
+ligtable "P": "/" =: 178;
+
+%% cha + (fala)
+ligtable "q": "R" =: 192, "W" =: 193;
+
+%% ref, day-shunyo ra, ri, asamiya ra
+ligtable "r": "/" =: 175, "h" =: 136, "R" =: 144, "W" =: "B";
+ligtable "R": "R" =: 145;
+
+%% talabya sha, dantyo sa + (fala)
+ligtable "s": "h" =: "S", "/" =: 179, "M" =:| 179, "L" =:| 156, "W" =:| 156, "|" =:| 156;
+
+%% sha + (fala), murdhonyo sha
+ligtable "S": "R" =: 24, "h" =: "P", "/" =: 177, "M" =:| 177, "|" =: "S";
+
+%% tha, ta + (fala)
+ligtable "t": "h" =: "Q", "R" =: 213, "W" =:| 169, "L" =:| 169, "M" =:| 169, "/" =: 169;
+
+%% Tha, Ta + (fala)
+ligtable "T": "h" =: "F", "R" =:| 166, "W" =:| 166, "/" =: 166, "i" kern 3u#;
+
+%% dirgho-u
+ligtable "u": "u" =: 142;
+ligtable "U": "U" =: 143;
+
+%% bha + (fala)
+ligtable "v": "R" =: 231, "L" =:| 154, "W" =:| 154;
+
+%% khiyo + (fala)
+ligtable "X": "M" =: 189;
+
+%% dha + wa
+ligtable "z": "W" =: 217;
+
+%% double quotation
+ligtable "`": "`" =: 2;
+ligtable "'": "'" =: 1;
+
+%% endash, emdash
+ligtable "-": "-" =: 8;
+ligtable 8: "-" =: 9;
+
+ligtable 47: "n" =: 26, "N" =:25;
+ligtable 58: "/" =: 13;
+ligtable 124: "W" =: 153;
+ligtable 130: "/" =: 162;
+ligtable 131: "/" =: 165;
+ligtable 132: "G" =: "K";
+ligtable 136: "h" =: 137, "u" kern 5u#;
+ligtable 137: "u" kern 5u#;
+ligtable 155: "n" |=: 26;
+ligtable 160: "k" =: 180, "t" =: 181, "T" kern -7u#, "n" =: 183, "M" kern -7u#, "s"=: 187;
+ligtable 161: "g" =: 190, "Y" =: 196, "m" |=: "M", "n" |=: 26, 26 =:| "g";
+ligtable 164: "j" =: 194;
+ligtable 165: "c" =: 199, "j" =: 201;
+ligtable 166: "T" =: 203, "W" kern 4.5u#;
+ligtable 167: "D" kern -3u#;
+ligtable 168: "T" =: 204, "D" =: 206, "N" =: 208, "H" =: 241;
+ligtable 169: "t" =: 209, "n" =: 212, "r" =: 213, "M" |=: 27,
+27 kern -1u#, "/" =: 133;
+ligtable 170: "d" =: 214, "b" =: 216, "M" |=: 27, 27 kern1u#, "h" |=: 122;
+ligtable 171: "H" =: 242, "t" =: 218, "d" =: 221, "n" =: 223, "h" |=: "Q";
+ligtable 172: "t" =: 225, "p" =: 226, "l" |=: "L", "L" =:| "p", "n" |=: 26, 26 =:| "p";
+ligtable 173: "j" =: 229, "d" kern -3u#, "b" =: 230;
+ligtable 174: "b" =: 232, "n" |=: 26, 26 =:| 155, "m" |=: 77, "l" |=: "L", "L" =:| 155;
+ligtable 176: "l" =: 234, "g" kern 1.5u#, "p" kern .5u#, "m" |=: "M";
+ligtable 177: "l" |=: "L", "L" =:| "S", "n" |=: 26, 26 =:| "S", "m" |=: "M";
+ligtable 178: "T" =: 235, "N" =:237, "m" |=: 77;
+ligtable 179: "t" =: 239, "h" |=: "Q", "k" =: 238, "n" |=: 26, 26 =:| 156;
+ligtable 181: "R" =: 182;
+ligtable 194: "W" =: 195;
+ligtable 199: "h" =: 200;
+ligtable 201: "h" |=: 67, 67 =:| 165;
+ligtable 204: "h" =: 205;
+ligtable 206: "R" =: 207;
+ligtable 209: "W" =: 210, "h" =: 211;
+ligtable 214: "h" =:| 170;
+ligtable 216: "h" =: 215;
+ligtable 218: "R" =: 219, "W" =: 220, "h" =:| 171;
+ligtable 221: "h" |=: 122, 122 =:| 171, "R" =: 222, "W" |=: 216, 216 =:| 171;
+ligtable 232: "h" =: 233;
+ligtable 233: "R" |=: 231, 231 =:| 174;
+ligtable 235: "h" =: 236;
+ligtable 238: "h" |=: "x", "x" =:| 179, "R" |=: 184, 184 =:| 179;
+ligtable 239: "h" =:| 179, "R" =: 240;
+
+%%% End of banglig.mf
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf
new file mode 100644
index 00000000000..684ca8d6b16
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangmac.mf
@@ -0,0 +1,267 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangmac.mf: METAFONT file that defines various macros
+% for use in bangla fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+def matra(expr wa,wb) =
+ begingroup
+ save x,y,lslope,rslope;
+ lslope = matra_slope;
+ rslope = matra_slope;
+ z1'r = (wa,matra_f*h);
+ z2'r = (wb,matra_f*h);
+ if wa>0: x1'r := x1'r - 0.5*stem_width; lslope := 90;
+ x12=x1'r + stem_width;
+ y12 = matra_h*h + .5matra_t*h/sind(lslope);
+ x13=x1'r;
+ y13=y12;
+ x11=x1'r;
+ y11 = y12 + stem_width/sind(lslope);
+ fill z13--z11--z12--cycle;
+ fi
+ if wb<w: x2' := x2' + 0.5*stem_width; rslope := 90; fi
+ penpos1'(matra_t*h/sind(lslope),lslope);
+ penpos2'(matra_t*h/sind(rslope),rslope);
+ penstroke z1'e--z2'e;
+ penlabels(11,12,13);
+ endgroup
+enddef;
+
+
+def stem(expr xstem) =
+ begingroup
+ save x,y;
+ z1' = (xstem,matra_f*h);
+ penpos1'(stem_width,0);
+ x2'r = x1'r; y2'r = 0;
+ x2'l = x1'l; y2'l = y2'r + stem_width * sind(stem_slope);
+ penstroke z1'e--z2'e;
+ penlabels(1',2');
+ endgroup
+enddef;
+
+
+def halfstem(expr xstem,a,b) =
+ begingroup
+ save x,y;
+ z1 = (xstem,a);
+ penpos1(stem_width,0);
+ x2r = x1r; y2r = b;
+ x2l = x1l; y2l = b + stem_width * sind(stem_slope);
+ fill z1l--z2l--z2r--z1r--cycle;
+ endgroup
+enddef;
+
+
+def cwbar(expr za,zb,zc,th) =
+ begingroup
+ save x,y,phiab,phibc,width,lab,lcd;
+ phiab = angle(za-zb);
+ phibc = angle(zb-zc);
+ lab = length(za-zb);
+ width = lab * sind(abs(phibc - phiab));
+ lcd = width / sind(abs(th - phibc));
+ z4' = zc + dir(th) * lcd;
+ z1l = za; z1r = zb; z2l = z4'; z2r = zc;
+ penstroke z1e--z2e;
+ endgroup
+enddef;
+
+
+%% Macro for a hook hanging from two points, with a curvature at the
+%% middle. The two upper points are za and zb.
+def hookjt(expr za,zb,zc,lift,thinness,thf) =
+ begingroup
+ save x,y,lab,lcd,thab,thcd,lmid,thmid,dist;
+ dist = 0.8;
+ z4 = zc + thinness*length(za-zb) * dir(thf);
+ z11' = .5[za,zb]; z12' = .5[zc,z4];
+ lab = length(za-zb); lcd = length(zc-z4);
+ thab = angle(zb-za); thcd = angle(z4-zc);
+ lmid = (1-dist)*lab + dist*lcd;
+ thmid = (1-dist)*thab + dist*thcd;
+ penpos11'(lab,thab); penpos12'(lcd,thcd);
+ z13'l = dist[za,zc] + (0,dist*lift);
+ penpos13'(lmid,thmid);
+ penstroke z11'e..z13'e..z12'e;
+ penlabels(11',12',13');
+ endgroup
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% macro for a hook with a stem attached to it.
+
+def hookstem(expr za,zb,zc,phia,phib) =
+ begingroup
+ save x,y;
+ z1r = za;
+ z1l = zb;
+ zc = z3; penpos3(stem_width,0);
+ z2l = (x3,.5stem_width*sind(stem_slope));
+ z2r = (x3+.5stem_width,0);
+ path hs_pl; hs_pl = z1l{dir phia}..tension1.2..{down}z2l;
+ path hs_pr; hs_pr = z2r{up}..tension1.2..{dir (180+phib)}z1r;
+ fill hs_pl--hs_pr--cycle;
+ z4r = z2r;
+ z4l = hs_pl intersectionpoint (z3l--(x3l,0));
+ penstroke z3e--z4e;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+% macro for a ball with a hook attached to it. The ball is centered at
+% za, with radius rad. The points zb and zc are the two end points of
+% the hook. The angle `th' is the angular co-ordinate of the point on
+% the circumference of the circle where the hook attaches to the
+% circle.
+
+def hookcirc(expr za,zb,zc,rad,th) =
+ begingroup
+ save x,y,phi,psi,chdir,thickness;
+ z1 = za;
+ fill fullcircle scaled rad shifted (z1);
+ thickness = length(zb-zc);
+ z5 = z1 + .5rad * dir(th);
+ z4 = z5 - thickness * dir(th);
+ z2=zb; z3=zc;
+ chdir:=1;
+ if angle(z5-z1)>angle(z2-z1): chdir:=-1; fi
+ phi = th + chdir*90;
+ if phi>0: psi=phi-180; else: psi=phi+180; fi
+ fill z2--z3..{dir psi}z4--z5{dir phi}..cycle;
+ endgroup
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% macro for the Tiki to be used for the letters "Ta", hraswa i and u
+%% etc. xa is the x-coordinate of the right end of the Tiki and xb is
+%% the same for the left end.
+
+def Tiki(expr xa,xb) =
+ begingroup
+ save x,y;
+ bot z1 = (xa,matra_f*h);
+ z2 = (xb,h);
+ z1'= (.5[x1,x2],.5[y1,y2]);
+ pickup pencircle xscaled .7pt yscaled .3pt rotated 90;
+ Tiki_pen := savepen;
+ draw z1{up}..{left}z1'{left}..{dir 60}z2;
+ penlabels(1,2);
+ endgroup
+enddef;
+
+
+def baTi(expr za,zb,zc,zd) =
+ begingroup
+ save x,y,lab,phi;
+ z1 = za; z2 = zb; z3 = zc; z4 = zd;
+ lab = length(z1-z2);
+ phi = 100;
+ x3' = x3; y3'-y3 = min(2.3*lab,.3[y2,y3]);
+ z4' = z4 + .4*lab * dir (phi-120);
+ fill z2{down}..{left}z3{left}..{dir 100}z4--z4'{dir (phi-180)}..{right}z3'{right}..{up}z1--cycle;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% This is the golla to be used for bisarga, anuswar etc.
+
+def golla(expr za,balld) =
+ begingroup
+ save x,y;
+ z1r = za + .5balld * dir (45);
+ z2r = za + .5balld * dir (135);
+ z3r = za + .5balld * dir (-135);
+ z4r = za + .5balld * dir (-45);
+ penpos1(.15balld,45);
+ penpos2(.25balld,135);
+ penpos3(.15balld,-135);
+ penpos4(.25balld,-45);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+ endgroup
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% The base of E, also used as ra-fala
+
+def Ebase(expr za,zb,t) =
+ begingroup
+ save x,y,w,h;
+ numeric w,h;
+ w=abs(xpart(za) - xpart(zb)); h=abs(ypart(za) - ypart(zb));
+ x1 = xpart(za); y1l= ypart(za); penpos1(t,90);
+ z2l = z1 + (-.3w,.13h); penpos2(1.4t,90);
+ y3 = y2; x3 = x2 -.4w; penpos3(1.4t,90);
+ z4l = zb; penpos4(t/3,-40);
+ penstroke z1e..{left}z2e{left}..z3e;%..z4e;
+ fill z3l{left}..z4l--z4l--z4l..{right}z3r--cycle;
+ penlabels(1,2,3,4);
+ endgroup
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% The shape at the right of ina, Sh+N etc.
+%% The starting point is za, the x-distance between za and the
+%% highest/lowest point is w, the total height is 2h, and t is the
+%% thickness of the lines.
+
+def clover(expr za,w,h,t) =
+ begingroup
+ save x,y,currenttransform;
+ transform currenttransform;
+ currenttransform := identity shifted za slanted slantval;
+ numeric theta,balld; theta = 60; balld = .7w-.7t;
+ z1 = (0,0); penpos1(0,-90);
+ z2r = (x1+.5w,y1-h); penpos2(t,-90);
+ z3r = (w,y1-.5h); penpos3(.7t,0);
+ z4l = (x2,y1); penpos4(.5balld,theta);
+ fill fullcircle scaled (balld) shifted z4l;
+ penstroke z1e..z2e..{up}z3e{up}..{dir (theta+90)}z4e;
+ z4'l = z4l; penpos4'(.5balld,-theta);
+ x3' = x3; y3' - y4l = y4l - y3; penpos3'(.7t,0);
+ x2' = x2; y2' -y4l = y4l - y2; penpos2'(t,90);
+ penstroke z1e..z2'e..{down}z3'e{down}..{dir (-theta-90)}z4'e;
+ penlabels(1,2,2',3,3',4,4');
+ endgroup
+enddef;
+
+
+
+%% End of file bangmac.mf \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangnum.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangnum.mf
new file mode 100644
index 00000000000..9677db2d198
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangnum.mf
@@ -0,0 +1,209 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangnum.mf: METAFONT file that defines the Bangla numerals
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar("0",16u#,stht#,stdp#); "The number 0";
+ numeric balld; balld = .55h;
+ z1 = (.5w,matra_f*h/2);
+ golla (z1,balld);
+ penlabels(1);
+endchar;
+
+beginchar("1",16u#,stht#,stdp#); "The number 1";
+ numeric phi,xs,ys; xs = 20/45w; ys = 10/50h;
+ z1 = (13/45w,matra_f*45/50h);
+ z2l = z1 - (.5numball_two,0); penpos2(.8numball_two,0);
+ z3 = (34/45w,matra_f*18/50h); penpos3(3/45w,0);
+ z4 = .5[z3r,(w,y3r)];
+ z5l = (22/45w,matra_f*7/50h);
+ phi = angle(z4-z5l);
+ penpos5(.5ys,phi-90);
+ fill fullcircle scaled numball_two shifted z1;
+ fill z2l{down}..z3l..z5l--z5r..z3r{up}..{up}z2r--cycle;
+ fill fullcircle xscaled xs yscaled ys rotated phi shifted z5l;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("2",16u#,stht#,stdp#); "The number 2";
+ z1 = (17/45w,matra_f*45/50h);
+ z2l = z1 - (.5numball_two,0); penpos2(.8numball_two,0);
+ z3 = (34/45w,matra_f*26/50h); penpos3(3/45w,0);
+ z4l = (22/45w,matra_f*20/50h);
+ z4r = (19/45w,matra_f*14/50h);
+ z5l = (6/45w,matra_f*26/50h);
+ z5r = (10/45w,matra_f*16/50h);
+ z6 = (43/45w,-ha_dip); penpos6(length(z3l-z3r),angle(z5r-z5l));
+ fill fullcircle scaled numball_two shifted z1;
+ fill z2l{down}..{down}z3l..{left}z4l..z5l--z5r..z4r{right}..z3r{up}..{up}z2r--cycle;
+ fill z5l..{z6l-z4l}z6l--z6r{z4r-z6r}..z5r--cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("3",16u#,stht#,stdp#); "The number 3";
+ numeric balld; balld = 1.2numball_one;
+ z1r = (21/45w,matra_f*33/50h); penpos1(.5balld,0);
+ z2l = (25/45w,matra_f*44/50h);
+ z2r = (28/45w,matra_f*39/50h);
+ z5r = (38/45w,matra_f*25/50h);
+ z5l = (41/45w,matra_f*23/50h);
+ z6r = (26/45w,matra_f*12/50h);
+ z6l = (26/45w,matra_f*5.5/50h);
+ z7r = (3.5/45w,matra_f*39/50h);
+ z7l = (1/45w,matra_f*40/50h);
+ fill fullcircle scaled balld shifted z1r;
+ fill z1l{up}..tension0.95..z2l{right}..{down}z5l--z5r{up}..z2r{left}..z1r--cycle;
+ fill z5r{down}..{left}z6r..{z7l-(x2l,0)}z7r--z7l{(x1r,0)-z7r}..tension1.2..z6l{right}..{up}z5l--cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar("4",16u#,stht#,stdp#); "The number 4";
+ numeric w_one, w_two; w_one = matra_f*2.5/50h; w_two = 5/45w;
+ z1l = (22/45w,matra_f*48/50h); penpos1(w_one,-90);
+ z2 = (11/45w,matra_f*36/50h); penpos2(w_two,0);
+ z3l = (18/45w,matra_f*24/50h);
+ z3r = (28/45w,matra_f*26/50h); z3 = .5[z3l,z3r];
+ z4 = (35/45w,matra_f*13/50h); penpos4(w_two,0);
+ z5r = (x1,matra_f*h-y1l); penpos5(w_one,-90);
+ z6 = (11/45w,y4); penpos6(w_two,180);
+ z7l = (21/45w,matra_f*22/50h);
+ z7r = (24.5/45w,matra_f*27/50h); z7 = z3;
+ z8 = (34/45w,y2); penpos8(w_two,180);
+ pickup pencircle xscaled (length(z3l-z3r)) yscaled (matra_f*3/50h) rotated (angle(z3r-z3l));
+ penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("5",16u#,stht#,stdp#); "The number 5";
+ z1l = (30/45w,matra_f*48/50h);
+ z1r = (23.5/45w,matra_f*41/50h);
+ z2 = (6.5/45w,matra_f*20/50h); penpos2(4/45w,0);
+ z3l = (22/45w,matra_f*2.5/50h);
+ z3r = (26/45w,matra_f*5/50h);
+ z4l = (35/45w,matra_f*4.5/50h);
+ z5l = (31/45w,matra_f*7/50h);
+ z4r = z5l;
+ z5r = z3r;
+ penstroke z1e..{down}z2e..z3e..z4e;
+ fill z5l--z4l--z3r--cycle;
+ z6l = (24/45w,matra_f*14/50h);
+ z6r = (19/45w,matra_f*18/50h);
+ z7l = (29/45w,matra_f*27/50h);
+ z7r = (x6l,matra_f*30/50h);
+ z8l = (40/45w,matra_f*33/50h);
+ z8r = (x7l,matra_f*33/50h);
+ z9l = (31/45w,matra_f*40/50h);
+ z9r = (25/45w,matra_f*36/50h);
+ penstroke z5e..z6e{up}..z7e..z8e;
+ penstroke z8e..z9e..{up}z1e;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar("6",16u#,stht#,stdp#); "The number 6";
+ z1l = (14/45w,matra_f*43/50h); penpos1(.5numball_two,0);
+ z2l = (16/45w,matra_f*31/50h); penpos2(4/45w,0);
+ z3l = (25/45w,matra_f*21/50h);
+ z3r = (22.5/45w,matra_f*26/50h);
+ z4l = (36/45w,matra_f*29/50h);
+ z4r = (33.5/45w,matra_f*37/50h);
+ z5l = (39/45w,matra_f*22/50h);
+ z5r = (41.5/45w,matra_f*22/50h);
+ z6l = (26/45w,matra_f*10.5/50h);
+ z6r = (26/45w,matra_f*4.5/50h);
+ z7l = (3.5/45w,matra_f*39/50h);
+ z7r = (1/45w,matra_f*40/50h);
+ fill fullcircle scaled numball_two shifted z1l;
+ fill z1l--z2l{z2l-z1l}..z3l..tension2..z4l--z4r..tension2..z3r..z2r..tension3..z1r--cycle;
+ fill z4r..{down}z5r--z5l{up}..z4l--cycle;
+% baTi(z5l,z5r,z6r,z7r);
+ fill z5r{down}..{left}z6r..{z7l-(x2l,y6l)}z7r--z7l{(x2l,y6r)-z7r}..z6l{right}..{up}z5l--cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+
+beginchar("7",16u#,stht#,stdp#); "The number 7";
+ z5r = (33/45w,matra_f*7/50h); penpos5(.5numball_two,0);
+ z4l = (28/45w,matra_f*26/50h); penpos4(stem_width,0);
+ z3' = (x4l,matra_f*30/50h);
+ z3l = (16/45w,y4l);
+ z3r = (x3l,y3');
+ z2l = (6.5/45w,matra_f*34/50h);
+ z2r = (11/45w,matra_f*31/50h);
+ z1l = (19/45w,matra_f*47/50h);
+ z1r = (22/45w,matra_f*43/50h);
+ fill fullcircle scaled numball_two shifted z5r;
+ fill z5l..z4l--z4l{left}..z3l..z2l{up}..{right}z1l..{down}z4r..z5r--cycle;
+ unfill z3'{left}..{left}z3r..z2r..tension1.5..z1r..tension2..cycle;
+ penlabels(1,2,3,3',4,5);
+endchar;
+
+beginchar("8",16u#,stht#,stdp#); "The number 8";
+ z1l = (6/45w,matra_f*43/50h); penpos1(.5numball_two,0);
+ z2r = (x1r,matra_f*27/50h); penpos2(stem_width,0);
+ z4l = (14/45w,matra_f*4/50h);
+ z4r = (x4l,matra_f*9/50h); z4 = .5[z4l,z4r];
+ z3r = (x1r,.7[y2,y4]); penpos3(stem_width,0);
+ z5l = (30/45w,matra_f*20/50h);
+ z5r = (26/45w,matra_f*23.5/50h);
+ z6l = (18/45w,matra_f*32/50h);
+ z6r = (x2r,matra_f*25/50h);
+ z7 = (32/45w,matra_f*28/50h);
+ z8 = (40/45w,matra_f*28.7/50h);
+ z9 = (43/45w,matra_f*33/50h);
+ fill fullcircle scaled numball_two shifted z1l;
+ path p; p = z4l..{up}z5l..tension1.2..{left}z6l{left};
+ fill z1l..{down}z2l..z3l{down}..{right}z4l..p..z2r--z1r--cycle;
+ unfill z6r{down}..{down}z3r..{right}z4r..tension1.8..z5r..tension2..z6r--cycle;
+ z10 = p intersectionpoint (z5r--z7);
+ pickup Tiki_pen;
+ draw z10..z7..z8..z9;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar("9",16u#,stht#,stdp#); "The number 9";
+ z1r = (15/45w,matra_f*7/50h); penpos1(.5numball_one,90);
+ z2l = (17/45w,matra_f*1/2h);
+ z2r = (16/45w,matra_f*22/50h);
+ z3l = (30/45w,matra_f*10/50h);
+ z3r = (25/45w,matra_f*3.5/50h);
+ z4 = (37.5/45w,matra_f*18/50h); penpos4(3/45w,0);
+ z5 = (x3r,matra_f*34/50h); penpos5(matra_f*5/50h,90);
+ z6l = (5/45w,matra_f*43/50h); penpos6(.5numball_two,0);
+ fill z1l{left}..{right}z2l..{down}z3l--z3r{up}..z2r{left}..z1r--cycle;
+ fill z3l..{up}z4l..z5l..{up}z6l--z6r{z4-z6}..z5r..z4r{down}..z3r--cycle;
+ fill fullcircle scaled numball_one shifted z1r;
+ fill fullcircle scaled numball_two shifted z6r;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+%%% End of bangnum.mf
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangpunc.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangpunc.mf
new file mode 100644
index 00000000000..7107bf3ba9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangpunc.mf
@@ -0,0 +1,247 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangpunc.mf: METAFONT file that defines the Bangla punctuation symbols
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+beginchar(".",12u#,stht#,stdp#); "dnari (period)";
+ z1 = (w-rindent,0);
+ stem(x1);
+ matra(x1,x1);
+ picture shape_dnari; shape_dnari:=currentpicture;
+ penlabels(1);
+endchar;
+
+beginchar(14,15u#,stht#,stdp#); "double dnari";
+ currentpicture := shape_dnari;
+ currentpicture := currentpicture + currentpicture shifted (2stem_width,0);
+endchar;
+
+beginchar(15,20u#, stht#, stdp#); "Three dots";
+ z1 = (1/4w,0); z2 = (1/2w,0); z3 = (w-x1,0);
+ fill fullcircle scaled dot_diam shifted z1;
+ fill fullcircle scaled dot_diam shifted z2;
+ fill fullcircle scaled dot_diam shifted z3;
+endchar;
+
+beginchar("!",12u#,stht#,stdp#); "exclamation mark";
+ numeric xx; xx = w - rindent;
+ z1 = (xx,matra_f*h); penpos1(.05w,0);
+ z2 = (xx,.65h); penpos2(.2w,0);
+ z3 = (xx,0); penpos3(.01w,0);
+ z0 = (xx,-ha_dip);
+ filldraw z1..z1l..{down}z2l{down}..z3l--cycle;
+ filldraw z1..z1r..{down}z2r{down}..z3r--cycle;
+ fill fullcircle scaled dot_diam shifted z0;
+ penlabels(1,2,3,0);
+endchar;
+
+beginchar(",",0.3stwd#,stht#,stdp#); "comma";
+ pickup pencircle scaled 0.5pt;
+ z1 = (2/3w,1/9h); z2 = (2/5w,-d);
+ draw z1{dir -60}..{dir -130}z2;
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(":",0.3stwd#,stht#,stdp#); "colon";
+ z1 = (1/2w,1/6h); z2 = (1/2w,(3/4-1/6)*h);
+ fill fullcircle scaled 1.5pt shifted z1;
+ fill fullcircle scaled 1.5pt shifted z2;
+endchar;
+
+beginchar(";",0.3stwd#,stht#,stdp#); "semi colon";
+ pickup pencircle scaled 0.5pt;
+ z1 = (2/3w,1/9h); z2 = (2/5w,-d);
+ draw z1{dir -60}..{dir -130}z2;
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,1.8pt));
+endchar;
+
+beginchar("`",0.3stwd#,stht#,stdp#); "backquote";
+ pickup pencircle scaled 0.5pt;
+ z1 = (1/3w,(3/4-1/9)*h); z2 = (3/5w,h);
+ draw z1{dir 120}..{dir 50}z2;
+ fill fullcircle scaled 1.5pt shifted (z1 + (0.50pt,0.22pt));
+endchar;
+
+beginchar("'",0.3stwd#,stht#,stdp#); "quote";
+ pickup pencircle scaled 0.5pt;
+ z1 = (2/3w,24/25h); z2 = (2/5w,(3/4-1/9-1/25)*h);
+ draw z1{dir -60}..{dir -130}z2;
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(1,0.45stwd#,stht#,stdp#); "double quote";
+ pickup pencircle scaled 0.5pt;
+ z1 = (2/5w,29/30h); z2 = (1/5w,(3/4-1/9-1/30)*h);
+ z1' = (4/5w,29/30h); z2' = (3/5w,(3/4-1/9-1/30)*h);
+ draw z1{dir -60}..{dir -130}z2;
+ draw z1'{dir -60}..{dir -130}z2';
+ fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+ fill fullcircle scaled 1.5pt shifted (z1' + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(2,0.45stwd#,stht#,stdp#); "double backquote";
+ pickup pencircle scaled 0.5pt;
+ z1 = (1/5w,(3/4-1/9)*h); z2 = (2/5w,h);
+ z1' = (3/5w,(3/4-1/9)*h); z2' = (4/5w,h);
+ draw z1{dir 120}..{dir 50}z2;
+ draw z1'{dir 120}..{dir 50}z2';
+ fill fullcircle scaled 1.5pt shifted (z1 + (0.50pt,0.22pt));
+ fill fullcircle scaled 1.5pt shifted (z1' + (0.50pt,0.22pt));
+endchar;
+
+beginchar("/",0.3stwd#,stht#,stdp#); "forward slash";
+ pickup pencircle scaled 0.5pt;
+ z1 = (7/8w,3/4h+2/3d); z2 = (1/8w,-2/3d);
+ draw z1--z2;
+endchar;
+
+beginchar("=",0.7stwd#,stht#,stdp#); "equality sign";
+ pickup pencircle scaled 0.5pt;
+ z3 = (1/10w,(1/4-1/30)*h); z4 = (9/10w,(1/4-1/30)*h);
+ z3' = (1/10w,(1/2-1/100)*h); z4' = (9/10w,(1/2-1/100)*h);
+ draw z3--z4; draw z3'--z4';
+endchar;
+
+beginchar("[",0.20stwd#,stht#,stdp#); "left square bracket";
+ pickup pencircle scaled 0.1pt;
+ z1=(w,h); z2 = (1/3w,h); z3 = (1/3w,-d); z4 = (w,-d);
+ z1 - z1' = (0,0.5pt); z2 - z2' = (-0.5pt,0.5pt);
+ z4 - z4' = (0,-0.5pt); z3 - z3' = (-0.5pt,-0.5pt);
+ filldraw z1--z2--z3--z4--z4'--z3'--z2'--z1'--cycle;
+endchar;
+
+beginchar("]",0.20stwd#,stht#,stdp#); "right square bracket";
+ pickup pencircle scaled 0.1pt;
+ z1=(0,h); z2 = (2/3w,h); z3 = (2/3w,-d); z4 = (0,-d);
+ z1 - z1' = (0,0.5pt); z2 - z2' = (0.5pt,0.5pt);
+ z4 - z4' = (0,-0.5pt); z3 - z3' = (0.5pt,-0.5pt);
+ filldraw z1--z2--z3--z4--z4'--z3'--z2'--z1'--cycle;
+endchar;
+
+beginchar("(",0.28stwd#,stht#,stdp#); "left parenthesis";
+ pickup pencircle scaled 0.1pt;
+ z1 = (8/9w,h); z3 = (8/9w,-d);
+ z2 = (1/4w,1/3h); z2' = z2 + (0.5pt,0);
+ filldraw z2'{up}..{dir 60}z1{dir -130}..{down}z2{down}
+ ..{dir -50}z3{dir 120}..cycle;
+ endchar;
+
+beginchar(")",0.28stwd#,stht#,stdp#); "right parenthesis";
+ pickup pencircle scaled 0.1pt;
+ z1 = (1/9w,h); z3 = (1/9w,-d);
+ z2 = (3/4w,1/3h); z2' = z2 - (0.5pt,0);
+ filldraw z2'{up}..{dir 120}z1{dir -50}..{down}z2{down}
+ ..{dir -130}z3{dir 60}..cycle;
+endchar;
+
+beginchar("*",0.48stwd#,stht#,stdp#); "asterisk";
+ numeric frac; frac = 1/8h;
+ z1 = (1/2w,h); z2 = (1/2w,3/7h);
+ z3 = (1/6w,h-frac); z4 = (5/6w,3/7h + frac);
+ z5 = (1/6w,3/7h+frac); z6 = (5/6w,h - frac);
+ pickup pencircle scaled 0.5pt;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+endchar;
+
+beginchar("+",0.68stwd#,stht#,stdp#); "plus sign";
+ pickup pencircle scaled 0.5pt;
+ z1 = (.1w,.5matra_f*h); z2 = (w-x1,y1);
+ top z3 = (1/2w,matra_f*h); bot z4 = (x3,0);
+ draw z1--z2; draw z3--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar("-",0.4stwd#,stht#,stdp#); "hyphen";
+ z1 = (1/9w,3/8h); penpos1(matra_t*h,90);
+ z2 = (w-x1,y1); penpos2(matra_t*h,90);
+ penstroke z1e--z2e;
+ penlabels(1,2);
+endchar;
+
+beginchar(8,0.60stwd#,stht#,stdp#); "endash";
+ pickup pencircle scaled (.5matra_t*h);
+ lft z1 = (0,3/8h); rt z2 = (w,3/8h);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+beginchar(9,1.10stwd#,stht#,stdp#); "emdash";
+ pickup pencircle scaled (.5matra_t*h);
+ lft z1 = (0,3/8h); rt z2 = (w,3/8h);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+beginchar("%",0.70stwd#,stht#,stdp#); "percent sign";
+ z1 = (5/6w,h); z2 = (1/6w,-1/3d);
+ pickup pencircle scaled 0.5pt;
+ draw z1--z2;
+ pickup pencircle xscaled 0.4pt yscaled 0.2pt;
+ draw fullcircle xscaled 11/40w yscaled 1/2h shifted (1/4w,3/4h);
+ draw fullcircle xscaled 11/40w yscaled 1/2h shifted (3/4w,-1/3d + 1/4h);
+ z3 = (11/40w,h);
+ pickup pencircle scaled 0.25pt;
+ draw z3{dir -45}..{dir 45}z1;
+endchar;
+
+beginchar("?",17u#,stht#,stdp#); "question mark";
+ numeric ww; ww=12/17w;
+ x3 = w - rindent;
+ z0 = (x0,3/5h);
+ pickup pencircle xscaled 0.5pt yscaled 0.25pt rotated -25;
+ lft z1=(x0-.5dot_diam,3/5h);
+ top z2=(x1+1/3ww,matra_f*h);
+ z3=(x2+1/3ww,3/5h);
+ z4=(x2,11/30h);
+ z5=(x2,1/7h);
+ z6 = (x5,0);
+ fill fullcircle scaled dot_diam shifted z0;
+ draw z1{up}..{right}z2{right}..{down}z3{down}..{dir -135}z4..{down}z5;
+ fill fullcircle scaled dot_diam shifted z6;
+ penlabels(0,1,2,3,4,5,6);
+endchar;
+
+beginchar("$",0.65stwd#,stht#,stdp#); "bucks";
+ z1 = (4/7w,h); z2 = (1/7w,-1/3d);
+ pickup pencircle scaled 0.5pt;
+ draw z1--z2;
+ z3 = (4/7w,3/7h); z4 = (8/9w,3/7h);
+ draw z3--z4;
+endchar;
+
+beginchar("|", 8u#, stht#, stdp#); "The pipe line";
+endchar;
+
+
+%%% End of bangpunc.mf
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangsl10.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangsl10.mf
new file mode 100644
index 00000000000..bb477152c09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangsl10.mf
@@ -0,0 +1,86 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangsl10.mf: METAFONT file that defines the Bengali alphabet (slanted)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+mode_setup;
+font_size 10pt#;
+u# = 1/3pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+numeric stem_width, stem_slope;
+numeric matra_thickness, matra_f, matra_h,matra_t, matra_slope;
+numeric dot_diam, ball_hang, ha_dip;
+numeric lindent, rindent;
+numeric xmag; xmag = 1;
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% matra_thickness should be removed at the end
+%%%%%%%%%%%%%%%%%%%%%%%%%
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+stem_width = xmag*.55pt;
+stem_slope = 45;
+dot_diam = 1pt; % diameter of dots in "ra", "ya" etc.
+matra_thickness = .75pt;
+matra_slope = 115;
+matra_f = .75; % fraction of h where normally the top end of matras rest
+matra_t = 3/50; % thickness of matras as a fraction of matra_f
+matra_h = matra_f-.5matra_t;
+ball_hang = .7pt;
+ha_dip = .7pt; % the depth by which the end of "ha" dips below baseline
+lindent = 1.5stem_width;
+rindent = 1.5stem_width;
+numball_one = 9/50*8pt; % large balls used in numerals
+numball_two = 0.8*numball_one; % small balls used in numerals
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = .15;
+currenttransform := identity slanted slantval;
+
+
+input bangbase;
+end;
+
+%%% End of bangsl10.mf
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangvow.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangvow.mf
new file mode 100644
index 00000000000..da17c79212b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangvow.mf
@@ -0,0 +1,227 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bangvow.mf: METAFONT file that defines bangla vowels
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+beginchar("A", 21u#, stht#, stdp#); "The letter a";
+ numeric xstem,balld,wta,height;
+ wta=31/40w; height = matra_f*h;
+ xstem = w-rindent; balld = 14/50height;
+ matra(0,w);
+% The ball
+ z1l = (25/57w,35/50height); penpos1(.5balld,120);
+ fill fullcircle scaled balld shifted (z1l);
+% Joining the ball and the cup
+ z2r = z1l + .5balld * (1.1dir(90) + .5 dir(0)) ;
+ z2l = z1l + .5balld * dir(35); z2 = .5[z2l,z2r];
+% The cup at the bottom
+ z3l = (40/57w,28/50height);
+ z3r = (43/57w,26.5/50height);
+ z4l = (29/57w,18/50height);
+ z4r = (32/57w,11/50height);
+ z5l = (5/57w,42/50height);
+ z5r = (3/57w,43/50height);
+ z6 = (0,63/50height);
+ path p; p = z4r{right}..{up}z3r{up}..{left}z2r;
+ fill z1l..z2l{right}..{down}z3l{down}..z4l{left}..tension1.4..{z6-z5l}z5l--z5r{z5r-z6}..tension1.4..{right}p{left}..z1r--cycle;
+% The stem and the hook
+ z7 = p intersectionpoint ((0,25/50height)--(w,25/50height));
+ z8 = p intersectionpoint ((0,20/50height)--(w,20/50height));
+ z9 = (xstem,height);
+ phil = angle(z3l-z2r); phir = angle(z3l-z2l);
+ hookstem(z7,z8,z9,phil,phir);
+% The little Tiki at the top
+ z12l = (18/57w,matra_h*h); penpos12(6/57w,0);
+ fill z2r{z2r-z2l}..z12r--z12l{z2r-z12l}..z2l--cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar("I", 14.5u#, stht#, stdp#); "The letter hraswa i";
+ numeric height; height = matra_f*h;
+ Ha(0,0,w,height);
+% The matra and the Tiki
+ matra(0,w);
+ Tiki(.9w,.07w);
+endchar;
+
+beginchar(141,18u#, stht#,stdp#); "The letter dirgha I";
+ numeric balld,height,phii,phiii;
+ height=matra_f*h; balld = 13/50height; phii=0; phiii = 120;
+ matra(0,w);
+%% The ball
+ z2l = (12/50w,35/50height); penpos2(.5balld,phii);
+ fill fullcircle scaled balld shifted z2l;
+%% The line from matra to ball
+ z1l = (6/50w,(matra_h-.5matra_t)*h); penpos1(8/50w,0);
+ fill z1l{right}..z2l--z2r{dir (phii+90)}..z1r--cycle;
+%% The upward going part
+ z5l = (8.5/50w,23/50height);
+ z5r = (7.5/50w,22/50height); z5 = .5[z5l,z5r];
+ z6l = (14/50w,19/50height);
+ z6r = (17/50w,12/50height); z6 = .5[z6l,z6r];
+ penstroke z5e..{right}z6e;
+ z7l = (41/50w,41/50height);
+ z7r = (46/50w,37/50height); z7 = .5[z7l,z7r];
+ path ptop,pbot;
+ ptop = z6l{right}..tension1.5..{z7r-z5l}z7l;
+ pbot = z7r{z5l-z7r}..tension1.5..{left}z6r;
+ fill ptop--pbot--cycle;
+%% The part connecting the ball with the upward going line
+ z3l = z2l; penpos3(.5balld,phiii);
+ z4r = (ptop intersectionpoint ((28/50w,height)--(28/50w,0))) - .05(0,y6l-y6r);
+ z4l = (ptop intersectionpoint ((19/50w,height)--(19/50w,0))) - .05(0,y6l-y6r);
+ fill z3r{dir (phiii-90)}..{down}z4r--z6r--z4l{z4r-z4l}..z3l--cycle;
+%% The downward going part at the right end
+ z8l = (34/50w,24/50height);
+ z8r = (37.5/50w,23/50height);
+ z9l = (38/50w,2/50height);
+ z9r = (41/50w,0);
+ fill flex(z7l,z8l,z9l)--flex(z9r,z8r,z7r)--cycle;
+%% The Tiki
+ Tiki(x7,.05w);
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+beginchar("U",18u#, stht#,stdp#); "The letter hraswa u";
+ numeric height; height = matra_f*h;
+ Da(0,0,w,height,.88);
+ matra(0,w);
+ Tiki(.9w,.1w);
+endchar;
+
+beginchar(143,19u#, stht#,stdp#); "The letter dirgha u";
+% %%% The first part is the definition of "Da"
+ numeric xstem,height,shift;
+ xstem = .5w; height=matra_f*h; shift = .06w;
+% The vertical part
+ z1 = (xstem,height); penpos1(stem_width,0);
+ z2 = (x1,31/50height); penpos2(stem_width,0);
+ z3l = (27.5/49w,21.5/50height);
+ z3r= (x3l+1/49w,28/50height);
+ fill z1l..{down}z2l..{right}z3l--z3r{left}..{up}z2r--z1r--cycle;
+% The part going up
+ z4l = (42.5/49w,30/50height);
+ z4r = (40/49w,38/50height);
+ fill z3l{right}..tension1.5..z4l--z4r..tension1.8..{left}z3r--cycle;
+% The first cup
+ z5l = (44/49w,27/50height); penpos5(3/50w,0);
+ z6l = (29.5/49w,12/50height);
+ z6r = (31/49w,5/50height);
+ z7l = (7/49w,43/50height) + (shift,0);
+ z7r = (5/49w,44/50height) + (shift,0);
+ z8 = (0,63/50height); penpos8(shift,0);
+ fill z4l..{down}z5l..{left}z6l{left}..{z8r-z7l}z7l--z7r{z7r-z8r}..{right}z6r{right}..z5r{up}..z4r--cycle;
+% The second cup
+ z8' = (0,height);
+ z7'l = (7/49w,43/50height) - (shift,0);
+ z7'r = (5/49w,44/50height) - (shift,0);
+ fill z4l..{down}z5l..{left}z6l{left}..{z8l-z7'l}z7'l--z7'r{z7'r-z8l}..{right}z6r{right}..z5r{up}..z4r--cycle;
+% matra and tiki
+ matra(0,w);
+ Tiki(.9w,.1w);
+ penlabels(1,2,3,4,5,6,7,7',8,8');
+endchar;
+
+beginchar(145,20u#, stht#,stdp#); "The letter RI";
+ numeric xstem,balld,phi,wkha; wkha = 16/20w;
+ xstem=wkha-rindent; balld=.18h; phi=-90;
+ matra(xstem,xstem);
+ z1 = (.17wkha,.6h);
+ z2 = z1 + .5balld * dir(phi) + .02wkha * dir(phi+90);
+ z3 = z1 + .5balld * dir(phi+90);
+ z4 = (.5wkha,matra_f*h);
+ z5 = (.55wkha,.6h);
+ z6 = (.56wkha,.52h);
+ z7 = (.68wkha,y6);
+ z8 = (.12wkha,.41h);
+ z9 = (.28wkha,.25h);
+ z10 = (.48wkha,.34h);
+ z11 = (xstem,.5stem_width*sind(stem_slope));
+ stem(xstem);
+ hookcirc(z1,z2,z3,balld,-90);
+ fill z5..{left}z2..z3{right}..z4--cycle;
+ fill z5..z6--z7{up}..z4--cycle;
+ fill z6{down}..{z8-z7}z8--z9--z10..{up}z7--cycle;
+ hookjt(z9,z10,z11,.1h,.3,90);
+% The right stem and the connector
+ z12 = (w-rindent,.15h);
+ z13 = (xstem,.43h);
+ z14 = (x13,.35h);
+ hookjt(z14,z13,z12,.07h,.4,90);
+ halfstem(x12,matra_f*h,.13h);
+ matra(x12,x12);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(147,17.5u#, stht#,stdp#); "The letter peT-kaTa e (ae)";
+ E(0,0,w,h);
+% The cross line
+ z9 = (w,.4h); z10 = (w-2rindent,y9);
+ pickup penrazor xscaled 1.5stem_width rotated 90;
+ draw z9--z10;
+ penlabels(9,10);
+endchar;
+
+beginchar("E",17.5u#, stht#,stdp#); "The letter e";
+ E(0,0,w,h);
+endchar;
+
+beginchar(149,17.5u#, stht#,stdp#); "The letter oi";
+ numeric height; height = matra_f*h;
+ pickup Tiki_pen;
+ z1 = (w-rindent,38/50height);
+ rt x2 = w; y2 = height;
+ z3 = (19/48w,1.1h);
+ draw z1..{up}z2{up}..{dir 60}z3;
+ penlabels(1,2,3);
+ E(0,0,w,h);
+endchar;
+
+beginchar("O",18.5u#,stht#,stdp#); "The letter o";
+ O(0,0,w,h);
+endchar;
+
+beginchar(151,18.5u#, stht#,stdp#); "The letter ou";
+ numeric height; height = matra_f*h;
+ pickup Tiki_pen;
+ z1 = (rballx,rbally);
+ rt x2 = w; y2 = height;
+ z3 = (18/52w,1.1h);
+ draw z1..{up}z2..{dir 60}z3;
+ penlabels(1,2,3,4,5,6,7,8,9);
+ O(0,0,w,h);
+endchar;
+
+%% end of bangvow.mf \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/bangtex/bangwd10.mf b/Master/texmf-dist/fonts/source/public/bangtex/bangwd10.mf
new file mode 100644
index 00000000000..bd8a8e09c67
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bangtex/bangwd10.mf
@@ -0,0 +1,85 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bang10.mf: METAFONT file that defines the Bengali alphabet (wide)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%
+%% This file is part of the package BANGTEX, containing Bangla fonts
+%% and style files for the TeX/LaTeX typesetting systems
+%%
+%% Copyright (C) 2001, 2002 Palash Baran Pal
+%% e-mail: pbpal@theory.saha.ernet.in internet:
+%% internet: http://tnp.saha.ernet.in/~pbpal
+%% Address: Saha Institute of Nuclear Physics
+%% 1/AF Bidhan Nagar
+%% Calcutta 700064, INDIA
+%%
+%% Original release: January 2001
+%% Latest modification released: January 2002
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+%% 02111-1307 USA
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+mode_setup;
+font_size 10pt#;
+u# = .4pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+numeric stem_width, stem_slope;
+numeric matra_thickness, matra_f, matra_h,matra_t, matra_slope;
+numeric dot_diam, ball_hang, ha_dip;
+numeric lindent, rindent;
+numeric xmag; xmag=.4/.33;
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% matra_thickness should be removed at the end
+%%%%%%%%%%%%%%%%%%%%%%%%%
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+stem_width = xmag*.55pt;
+stem_slope = 45;
+dot_diam = 1pt; % diameter of dots in "ra", "ya" etc.
+matra_thickness = .75pt;
+matra_slope = 115;
+matra_f = .75; % fraction of h where normally the top end of matras rest
+matra_t = 3/50; % thickness of matras as a fraction of matra_f
+matra_h = matra_f-.5matra_t;
+ball_hang = .7pt;
+ha_dip = .7pt; % the depth by which the end of "ha" dips below baseline
+lindent = 1.5stem_width;
+rindent = 1.5stem_width;
+numball_one = 9/50*8pt; % large balls used in numerals
+numball_two = 0.8*numball_one; % small balls used in numerals
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 0;
+
+
+
+input bangbase;
+end;
+
+%%% End of bangwd10.mf
diff --git a/Master/texmf-dist/fonts/source/public/barcode2/wlc11.mf b/Master/texmf-dist/fonts/source/public/barcode2/wlc11.mf
new file mode 100644
index 00000000000..39e07aef3c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/barcode2/wlc11.mf
@@ -0,0 +1,101 @@
+%%
+%% This is file `wlc11.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% barcodes.dtx (with options: `code11mf')
+%% As this is a generated file, you may perhaps not want to edit it.
+%% This file belongs to the barcode package.
+%% It may be of no great use without the rest of the barcode package.
+%% \CharacterTable
+%% {Upper-case \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
+%% Lower-case \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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% Code 11 in Metafont format
+%% Peter Willadt 1998-04-10
+%% For copyright and the like see the documentation
+%% to the barcode package, from which this file is part of.
+%% If you received only this file,
+%% then maybe someone fooled you.
+%%
+%% Code 11 requires one or two check digits.
+%% These check digtis are calculated using a weighted mod 11-checksum.
+%% You have to see the docs.
+%% Start and stop chars are mapped to @,
+%% codeable are 0--9 and the minus sign.
+
+mode_setup;
+
+bheight#:=5mm#;
+
+bwidth# :=.33 mm#;
+
+designsize :=bheight#;
+font_slant :=0;
+font_normal_space :=8*bwidth#;
+font_extra_space :=0;
+font_normal_stretch:=0;
+font_normal_shrink :=0;
+font_quad :=15*bwidth#;
+
+define_pixels(bheight, bwidth);
+
+def CODExichar(expr charnum, spex) =
+numeric mywid, asval, i;
+mywid=6;
+for i= 0 upto 4:
+asval:=ASCII(substring(i,i+1) of spex);
+asval:=asval-ASCII("0");
+mywid:=mywid+asval;
+endfor;
+beginchar(charnum, mywid*bwidth#,bheight#,0);
+y1=y2=0;
+y3=y4=bheight;
+numeric myright,myleft,barweight,spcweight;
+myright:=0;myleft:=0;barweight:=0;spcweight:=0;
+for i=0 upto 4:
+asval:=ASCII(substring(i,i+1) of spex);
+asval:=asval-ASCII("0");
+myright:=myright+(asval+1)*bwidth;
+if not odd (i):
+x1:=myleft-blacker;
+x4:=x1;
+x2:=myright+blacker;
+x3:=x2;
+fill (z1)--(z2)--(z3)--(z4)--cycle;
+fi
+myleft:=myright;
+endfor;
+endchar;
+enddef;
+
+CODExichar("-","00100");
+CODExichar("0","00001");
+CODExichar("1","10001");
+CODExichar("2","01001");
+CODExichar("3","11000");
+CODExichar("4","00101");
+CODExichar("5","10100");
+CODExichar("6","01100");
+CODExichar("7","00011");
+CODExichar("8","10010");
+CODExichar("9","10000");
+CODExichar("@","00110");
+
+end;% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\endinput
+%%
+%% End of file `wlc11.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/barcode2/wlc128.mf b/Master/texmf-dist/fonts/source/public/barcode2/wlc128.mf
new file mode 100644
index 00000000000..0bd4c466657
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/barcode2/wlc128.mf
@@ -0,0 +1,187 @@
+%%
+%% This is file `wlc128.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% barcodes.dtx (with options: `code128mf')
+%% As this is a generated file, you may perhaps not want to edit it.
+%% This file belongs to the barcode package.
+%% It may be of no great use without the rest of the barcode package.
+%% \CharacterTable
+%% {Upper-case \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
+%% Lower-case \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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% Code 128, in Metafont mode
+%% This gives a raw font, that should be mapped properly
+%% so read the docs!
+%% Willadt 1997-08-17
+
+mode_setup;
+
+bheight#:=5mm#;
+
+%% high res: .264 mm#
+%% med res: .33 mm#
+bwidth# :=.33 mm#;
+
+designsize :=bheight#;
+font_slant :=0;
+font_normal_space :=11*bwidth#;
+font_extra_space :=0;
+font_normal_stretch:=0;
+font_normal_shrink :=0;
+font_quad :=11*bwidth#;
+
+define_pixels(bheight, bwidth);
+
+def CXXVIIIchar(expr charnum, spex) =
+numeric mywid, asval, i;
+mywid=0;
+beginchar(charnum, 11*bwidth#,bheight#,0);
+y1=y2=0;
+y3=y4=bheight;
+numeric myright,myleft,barweight,spcweight;
+myright:=0;myleft:=0;barweight:=0;spcweight:=0;
+for i=0 upto 8:
+asval:=ASCII(substring(i,i+1) of spex);
+exitif asval=-1;
+asval:=asval-ASCII("0");
+myright:=myright+asval*bwidth;
+if not odd (i):
+x1:=myleft-blacker;
+x4:=x1;
+x2:=myright+blacker;
+x3:=x2;
+fill (z1)--(z2)--(z3)--(z4)--cycle;
+fi
+myleft:=myright;
+endfor;
+endchar;
+enddef;
+
+CXXVIIIchar(107,"212222"); % Ersatz fuer Null
+CXXVIIIchar( 0,"212222");
+CXXVIIIchar( 1,"222122");
+CXXVIIIchar( 2,"222221");
+CXXVIIIchar( 3,"121223");
+CXXVIIIchar( 4,"121322");
+CXXVIIIchar( 5,"131222");
+CXXVIIIchar( 6,"122213");
+CXXVIIIchar( 7,"122312");
+CXXVIIIchar( 8,"132212");
+CXXVIIIchar( 9,"221213");
+CXXVIIIchar( 10,"221312");
+CXXVIIIchar( 11,"231212");
+CXXVIIIchar( 12,"112232");
+CXXVIIIchar( 13,"122132");
+CXXVIIIchar( 14,"122231");
+CXXVIIIchar( 15,"113222");
+CXXVIIIchar( 16,"123122");
+CXXVIIIchar( 17,"123221");
+CXXVIIIchar( 18,"223211");
+CXXVIIIchar( 19,"221132");
+CXXVIIIchar( 20,"221231");
+CXXVIIIchar( 21,"213212");
+CXXVIIIchar( 22,"223112");
+CXXVIIIchar( 23,"312131");
+CXXVIIIchar( 24,"311222");
+CXXVIIIchar( 25,"321122");
+CXXVIIIchar( 26,"321221");
+CXXVIIIchar( 27,"312212");
+CXXVIIIchar( 28,"322112");
+CXXVIIIchar( 29,"322211");
+CXXVIIIchar( 30,"212123");
+CXXVIIIchar( 31,"212321");
+CXXVIIIchar( 32,"232121");
+CXXVIIIchar( 33,"111323");
+CXXVIIIchar( 34,"131123");
+CXXVIIIchar( 35,"131321");
+CXXVIIIchar( 36,"112313");
+CXXVIIIchar( 37,"132113");
+CXXVIIIchar( 38,"132311");
+CXXVIIIchar( 39,"211313");
+CXXVIIIchar( 40,"231113");
+CXXVIIIchar( 41,"231311");
+CXXVIIIchar( 42,"112133");
+CXXVIIIchar( 43,"112331");
+CXXVIIIchar( 44,"132131");
+CXXVIIIchar( 45,"113123");
+CXXVIIIchar( 46,"113321");
+CXXVIIIchar( 47,"133121");
+CXXVIIIchar( 48,"313121");
+CXXVIIIchar( 49,"211331");
+CXXVIIIchar( 50,"231131");
+CXXVIIIchar( 51,"213113");
+CXXVIIIchar( 52,"213311");
+CXXVIIIchar( 53,"213131");
+CXXVIIIchar( 54,"311123");
+CXXVIIIchar( 55,"311321");
+CXXVIIIchar( 56,"331121");
+CXXVIIIchar( 57,"312113");
+CXXVIIIchar( 58,"312311");
+CXXVIIIchar( 59,"332111");
+CXXVIIIchar( 60,"314111");
+CXXVIIIchar( 61,"221411");
+CXXVIIIchar( 62,"431111");
+CXXVIIIchar( 63,"111224");
+CXXVIIIchar( 64,"111422");
+CXXVIIIchar( 65,"121124");
+CXXVIIIchar( 66,"121421");
+CXXVIIIchar( 67,"141122");
+CXXVIIIchar( 68,"141221");
+CXXVIIIchar( 69,"112214");
+CXXVIIIchar( 70,"112412");
+CXXVIIIchar( 71,"122114");
+CXXVIIIchar( 72,"122411");
+CXXVIIIchar( 73,"142112");
+CXXVIIIchar( 74,"142211");
+CXXVIIIchar( 75,"241211");
+CXXVIIIchar( 76,"221114");
+CXXVIIIchar( 77,"413111");
+CXXVIIIchar( 78,"241112");
+CXXVIIIchar( 79,"134111");
+CXXVIIIchar( 80,"111242");
+CXXVIIIchar( 81,"121142");
+CXXVIIIchar( 82,"121241");
+CXXVIIIchar( 83,"114212");
+CXXVIIIchar( 84,"124112");
+CXXVIIIchar( 85,"124211");
+CXXVIIIchar( 86,"411212");
+CXXVIIIchar( 87,"421112");
+CXXVIIIchar( 88,"421211");
+CXXVIIIchar( 89,"212141");
+CXXVIIIchar( 90,"214121");
+CXXVIIIchar( 91,"412121");
+CXXVIIIchar( 92,"111143");
+CXXVIIIchar( 93,"111341");
+CXXVIIIchar( 94,"131141");
+CXXVIIIchar( 95,"114113");
+CXXVIIIchar( 96,"114311");
+CXXVIIIchar( 97,"411113");
+CXXVIIIchar( 98,"411311");
+CXXVIIIchar( 99,"113141");
+CXXVIIIchar(100,"114131");
+CXXVIIIchar(101,"311141");
+CXXVIIIchar(102,"411131");
+CXXVIIIchar(103,"211412");
+CXXVIIIchar(104,"211214");
+CXXVIIIchar(105,"211232");
+CXXVIIIchar(106,"2331112");
+
+end;
+\endinput
+%%
+%% End of file `wlc128.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/barcode2/wlc39.mf b/Master/texmf-dist/fonts/source/public/barcode2/wlc39.mf
new file mode 100644
index 00000000000..8c330143bca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/barcode2/wlc39.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `wlc39.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% barcodes.dtx (with options: `code39mf')
+%% As this is a generated file, you may perhaps not want to edit it.
+%% This file belongs to the barcode package.
+%% It may be of no great use without the rest of the barcode package.
+%% \CharacterTable
+%% {Upper-case \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
+%% Lower-case \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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% Code 39, in Metafont mode
+%% Willadt 1997-08-17
+mode_setup;
+
+bheight#:=5mm#;
+
+%% high res .2 mm,
+%% med res .3 mm,
+%% lo res .4 mm.
+
+bwidth# :=.3mm#;
+
+designsize :=bheight#;
+font_slant :=0;
+font_normal_space :=13*bwidth#;
+font_extra_space :=0;
+font_normal_stretch:=0;
+font_normal_shrink :=0;
+font_quad :=13*bwidth#;
+
+define_pixels(bheight, bwidth);
+
+def thirtyninechar(expr charnum, spex) =
+ beginchar(charnum, 13*bwidth#,bheight#,0);
+ numeric myright,myleft;
+ numeric asval, i;
+ myright:=0;myleft:=0;
+ y1=y2=0;y3=y4=bheight;
+ for i=0 upto 11:
+ asval:=ASCII(substring(i,i+1) of spex);
+ exitif asval=-1;
+ asval:=asval-ASCII("0");
+ myright:=myright+asval*bwidth;
+ if not odd (i):
+x1:=myleft-blacker;
+x4:=x1;
+x2:=myright+blacker;
+x3:=x2;
+fill (z1)--(z2)--(z3)--(z4)--cycle;
+ fi
+ myleft:=myright;
+ endfor;
+ endchar;
+enddef;
+
+\thirtyninechar("0")("1112212111");
+\thirtyninechar("1")("2112111121");
+\thirtyninechar("2")("1122111121");
+\thirtyninechar("3")("2122111111");
+\thirtyninechar("4")("1112211121");
+\thirtyninechar("5")("2112211111");
+\thirtyninechar("6")("1122211111");
+\thirtyninechar("7")("1112112121");
+\thirtyninechar("8")("2112112111");
+\thirtyninechar("9")("1122112111");
+\thirtyninechar( 64)("1211212111"); % start = @
+\thirtyninechar("-")("1211112121");
+\thirtyninechar("+")("1211121211");
+\thirtyninechar("$")("1212121111");
+\thirtyninechar("/")("1212111211");
+\thirtyninechar(".")("2211112111");
+\thirtyninechar( 37)("1112121211"); % percent
+\thirtyninechar( 32)("1221112111"); % space
+\thirtyninechar("A")("2111121121");
+\thirtyninechar("B")("1121121121");
+\thirtyninechar("C")("2121121111");
+\thirtyninechar("D")("1111221121");
+\thirtyninechar("E")("2111221111");
+\thirtyninechar("F")("1121221111");
+\thirtyninechar("G")("1111122121");
+\thirtyninechar("H")("2111122111");
+\thirtyninechar("I")("1121122111");
+\thirtyninechar("J")("1111222111");
+\thirtyninechar("K")("2111111221");
+\thirtyninechar("L")("1121111221");
+\thirtyninechar("M")("2121111211");
+\thirtyninechar("N")("1111211221");
+\thirtyninechar("O")("2111211211");
+\thirtyninechar("P")("1121211211");
+\thirtyninechar("Q")("1111112221");
+\thirtyninechar("R")("2111112211");
+\thirtyninechar("S")("1121112211");
+\thirtyninechar("T")("1111212211");
+\thirtyninechar("U")("2211111121");
+\thirtyninechar("V")("1221111121");
+\thirtyninechar("W")("2221111111");
+\thirtyninechar("X")("1211211121");
+\thirtyninechar("Y")("2211211111");
+\thirtyninechar("Z")("1221211111");
+
+\end;
+
+\endinput
+%%
+%% End of file `wlc39.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/barcode2/wlc93.mf b/Master/texmf-dist/fonts/source/public/barcode2/wlc93.mf
new file mode 100644
index 00000000000..f92734f7f9f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/barcode2/wlc93.mf
@@ -0,0 +1,144 @@
+%%
+%% This is file `wlc93.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% barcodes.dtx (with options: `code93mf')
+%% As this is a generated file, you may perhaps not want to edit it.
+%% This file belongs to the barcode package.
+%% It may be of no great use without the rest of the barcode package.
+%% \CharacterTable
+%% {Upper-case \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
+%% Lower-case \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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% Code 93 in Metafont format
+%% Peter Willadt 1998-04-21
+%% For copyright and the like see the documentation
+%% to the barcode package, from which this file is part of.
+%% If you received only this file,
+%% then maybe someone fooled you.
+%%
+%% Code 93 requires one or two check digits.
+%% These check digtis are calculated using a weighted mod 11-checksum.
+%% You have to see the docs.
+%% Start and stop chars are mapped to < and >, respectively.
+%% codeable are 0--9 , A-Z, -,+, space, dot, $, /, and percent.
+%% To print full ascii, ordinary characters have to be preceeded with
+%% on of four shift characters. Thes shift characters are
+%% ($) mapped to =
+%% (%) mapped to [
+%% (/) mapped to |
+%% (+) mapped to ]
+
+mode_setup;
+
+bheight#:=5mm#;
+
+bwidth# :=.33 mm#;
+
+designsize :=bheight#;
+font_slant :=0;
+font_normal_space :=9*bwidth#;
+font_extra_space :=0;
+font_normal_stretch:=0;
+font_normal_shrink :=0;
+font_quad :=10*bwidth#;
+
+define_pixels(bheight, bwidth);
+
+def CODExciiichar(expr charnum, spex) =
+numeric mywid, asval, i;
+mywid=0;
+for i= 0 upto 5:
+asval:=ASCII(substring(i,i+1) of spex);
+asval:=asval-ASCII("0");
+mywid:=mywid+asval;
+endfor;
+beginchar(charnum, mywid*bwidth#,bheight#,0);
+y1=y2=0;
+y3=y4=bheight;
+numeric myright,myleft,barweight,spcweight;
+myright:=0;myleft:=0;barweight:=0;spcweight:=0;
+for i=0 upto 5:
+asval:=ASCII(substring(i,i+1) of spex);
+asval:=asval-ASCII("0");
+myright:=myright+asval*bwidth;
+if not odd (i):
+x1:=myleft-blacker;
+x4:=x1;
+x2:=myright+blacker;
+x3:=x2;
+fill (z1)--(z2)--(z3)--(z4)--cycle;
+fi
+myleft:=myright;
+endfor;
+endchar;
+enddef;
+
+CODExciiichar("0","131112");
+CODExciiichar("1","111213");
+CODExciiichar("2","111312");
+CODExciiichar("3","111411");
+CODExciiichar("4","121113");
+CODExciiichar("5","121212");
+CODExciiichar("6","121311");
+CODExciiichar("7","111114");
+CODExciiichar("8","131211");
+CODExciiichar("9","141111");
+CODExciiichar("A","211113");
+CODExciiichar("B","211212");
+CODExciiichar("C","211311");
+CODExciiichar("D","221112");
+CODExciiichar("E","221211");
+CODExciiichar("F","231111");
+CODExciiichar("G","112113");
+CODExciiichar("H","112212");
+CODExciiichar("I","112311");
+CODExciiichar("J","122112");
+CODExciiichar("K","132111");
+CODExciiichar("L","111123");
+CODExciiichar("M","111222");
+CODExciiichar("N","111321");
+CODExciiichar("O","121122");
+CODExciiichar("P","131121");
+CODExciiichar("Q","212112");
+CODExciiichar("R","212211");
+CODExciiichar("S","211122");
+CODExciiichar("T","211221");
+CODExciiichar("U","221121");
+CODExciiichar("V","222111");
+CODExciiichar("W","112122");
+CODExciiichar("X","112221");
+CODExciiichar("Y","122121");
+CODExciiichar("Z","123111");
+CODExciiichar("-","121131");
+CODExciiichar(".","311112");
+CODExciiichar( 32,"311211");% space
+CODExciiichar( 36,"321111");% dollar
+CODExciiichar("/","112131");
+CODExciiichar("+","113121");
+CODExciiichar( 37,"211131");% percent
+CODExciiichar("(","121221");% ought to be ($)
+CODExciiichar(")","312111");% ought to be (%)
+CODExciiichar("[","311121");% ought to be (/)
+CODExciiichar("]","122211");% ought to be (+)
+CODExciiichar("<","111141");% start sign
+CODExciiichar(">","1111411");% stop sign has extra bar
+
+end;
+\endinput
+%%
+%% End of file `wlc93.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/barcode2/wlcr39.mf b/Master/texmf-dist/fonts/source/public/barcode2/wlcr39.mf
new file mode 100644
index 00000000000..12a15495069
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/barcode2/wlcr39.mf
@@ -0,0 +1,115 @@
+%%
+%% This is file `wlcr39.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% barcodes.dtx (with options: `wlcr39mf')
+%% As this is a generated file, you may perhaps not want to edit it.
+%% This file belongs to the barcode package.
+%% It may be of no great use without the rest of the barcode package.
+%% \CharacterTable
+%% {Upper-case \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
+%% Lower-case \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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+mode_setup;
+
+bwidth#:=5mm#;
+
+
+bheight# :=.3mm#;
+
+designsize :=13*bheight#;
+font_slant :=0;
+font_normal_space :=bwidth#;
+font_extra_space :=0;
+font_normal_stretch:=0;
+font_normal_shrink :=0;
+font_quad :=bwidth#;
+
+define_pixels(bheight, bwidth);
+
+def thirtyninechar(expr charnum, spex) =
+ beginchar(charnum, bwidth#,12*bheight#,bheight#);
+ numeric mytop,mybot;
+ numeric asval, i;
+ mytop:=12*bheight;mybot:=mytop;
+ x1=x2=0;x3=x4=bwidth;
+ for i=0 upto 11:
+ asval:=ASCII(substring(i,i+1) of spex);
+ exitif asval=-1;
+ asval:=asval-ASCII("0");
+ mybot:=mybot-asval*bheight;
+ if not odd (i):
+y1:=mytop+blacker;
+y4:=y1;
+y2:=mybot-blacker;
+y3:=y2;
+fill (z1)--(z2)--(z3)--(z4)--cycle;
+ fi
+ mytop:=mybot;
+ endfor;
+ endchar;
+enddef;
+
+\thirtyninechar("0")("1112212111");
+\thirtyninechar("1")("2112111121");
+\thirtyninechar("2")("1122111121");
+\thirtyninechar("3")("2122111111");
+\thirtyninechar("4")("1112211121");
+\thirtyninechar("5")("2112211111");
+\thirtyninechar("6")("1122211111");
+\thirtyninechar("7")("1112112121");
+\thirtyninechar("8")("2112112111");
+\thirtyninechar("9")("1122112111");
+\thirtyninechar( 64)("1211212111"); % start = @
+\thirtyninechar("-")("1211112121");
+\thirtyninechar("+")("1211121211");
+\thirtyninechar("$")("1212121111");
+\thirtyninechar("/")("1212111211");
+\thirtyninechar(".")("2211112111");
+\thirtyninechar( 37)("1112121211"); % percent
+\thirtyninechar( 32)("1221112111"); % space
+\thirtyninechar("A")("2111121121");
+\thirtyninechar("B")("1121121121");
+\thirtyninechar("C")("2121121111");
+\thirtyninechar("D")("1111221121");
+\thirtyninechar("E")("2111221111");
+\thirtyninechar("F")("1121221111");
+\thirtyninechar("G")("1111122121");
+\thirtyninechar("H")("2111122111");
+\thirtyninechar("I")("1121122111");
+\thirtyninechar("J")("1111222111");
+\thirtyninechar("K")("2111111221");
+\thirtyninechar("L")("1121111221");
+\thirtyninechar("M")("2121111211");
+\thirtyninechar("N")("1111211221");
+\thirtyninechar("O")("2111211211");
+\thirtyninechar("P")("1121211211");
+\thirtyninechar("Q")("1111112221");
+\thirtyninechar("R")("2111112211");
+\thirtyninechar("S")("1121112211");
+\thirtyninechar("T")("1111212211");
+\thirtyninechar("U")("2211111121");
+\thirtyninechar("V")("1221111121");
+\thirtyninechar("W")("2221111111");
+\thirtyninechar("X")("1211211121");
+\thirtyninechar("Y")("2211211111");
+\thirtyninechar("Z")("1221211111");
+
+\end;
+\endinput
+%%
+%% End of file `wlcr39.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/barcode2/wlean.mf b/Master/texmf-dist/fonts/source/public/barcode2/wlean.mf
new file mode 100644
index 00000000000..e3a12e28cb3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/barcode2/wlean.mf
@@ -0,0 +1,417 @@
+%%
+%% This is file `wlean.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% barcodes.dtx (with options: `codeeanmf')
+%% As this is a generated file, you may perhaps not want to edit it.
+%% This file belongs to the barcode package.
+%% It may be of no great use without the rest of the barcode package.
+%% \CharacterTable
+%% {Upper-case \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
+%% Lower-case \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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+%%
+%% Font for printing EAN Code
+%% For small sizes (on the Deskjet, < 1,0) you have to be
+%% very careful and test if the font is still machine readable.
+%% On write-black-printers, it may be necessary to reduce
+%% the width of black bars by fiddling with
+%% the definition of fb().
+%% For producing EAN Add-ons or codes with variable height,
+%% it would be a good idea to shorten the height of the bars and
+%% to leave the numbers out of the bars-definition, so that you
+%% could stack several bars above each other.
+%% Flexibility would increase, but---on the other hand---
+%% TeX macros for setting EAN code would become even more complicated.
+%% Peter Willadt 1997, September, 21
+%% Author
+%% Peter Willadt
+%% Heinrich-Wieland-Allee 5
+%% 75177 Pforzheim
+%% Germany
+%% email: Willadt@t-online.de
+
+mode_setup;
+
+%% EAN size 1 (100%)
+bheight#:=22.85mm#;
+bdepth#:=1.65mm#;
+bwidth#:=0.33mm#;
+digheight#:=2.75mm#;
+numgap#=1mm#;
+digdiam#=0.9pt#;
+lgap#:= bwidth#+0.5 digdiam#;
+totheight#=bheight#+digheight#+numgap#;
+ndheight#:=totheight#-bheight#-bdepth#;
+define_pixels(ndheight,digheight,numgap,lgap,bwidth);
+define_blacker_pixels(bheight,totheight,digdiam);
+
+font_normal_space=7*bwidth#;
+font_size 10pt#;
+
+def fb(expr posn) =
+x20:=(posn-1)*bwidth;
+x21:=x20;
+x22:=posn*bwidth;
+x23:=x22;
+y20:=y22:=digheight+numgap;
+y21:=y23:=h;
+fill z20--z21--z23--z22--cycle;
+enddef;
+
+def klotz(expr posn) =
+x1:=(posn-1)*bwidth;x2:=posn*bwidth;
+x3:=x2;x4:=x1;
+y1:=y2:=ndheight;
+y3:=y4:=digheight+numgap;
+fill z1--z2--z3--z4--cycle;
+enddef;
+
+def nuller =
+x1=0.5w;
+y1=digheight;
+x2=lgap;
+y2=0.8y1;
+x3=x2;
+y3-y4=y1-y2;
+y4=0;
+x4=x1;
+x5=w-x3;
+y5=y3;
+x6=x5;
+y6=y2;
+pickup pencircle scaled digdiam;
+draw z1..{down}z2--z3{down}..z4..{up}z5--z6{up}..cycle;
+enddef;
+
+def einser =
+x1=x2=0.5w+lgap;
+x3=2*lgap;
+y1=0;
+y2=digheight;
+y3=0.8digheight;
+pickup pencircle scaled digdiam;
+draw z1--z2--z3;
+enddef;
+
+def zweier =
+x1=w-lgap;
+x2=lgap;
+y1=y2=0;
+x3=x2;
+y3=0.15 digheight;
+x4=w-lgap;
+y4=0.6 digheight;
+x5=x4;
+y5=0.9 digheight;
+x6=0.5w;
+y6=digheight;
+x7=x2;
+y7=y5;
+pickup pencircle scaled digdiam;
+draw z1--z2{up}..z3..z4..z5..z6..z7;
+enddef;
+
+def dreier =
+x1=lgap;
+w-x2=x1;
+y1=y2=digheight;
+x3=0.5w;
+y3=0.6digheight;
+y4=0.5y3;
+x4=x2;
+y5=0;
+x5=0.5w;
+x6=x1;
+y6=0.2 digheight;
+pickup pencircle scaled digdiam;
+draw z1--z2--z3{right}..z4..z5..z6;
+enddef;
+
+def vierer =
+x1=0.6w;y1=digheight;
+x2=lgap;
+y2=0.3digheight;
+y3=y2;
+w-x3=x2;
+x4=0.5[x1,x3];
+x5=x4;
+y4=0.5digheight;
+y5=0;
+pickup pencircle scaled digdiam;
+draw z1--z2--z3;
+draw z4--z5;
+enddef;
+
+def fuenfer =
+x2=lgap;
+x2=w-x1;
+y1=y2=digheight;
+x3=x2;
+y3=0.7digheight;
+x4=x1;
+y3-y4=y4;
+x5=x2;
+y5=0;
+pickup pencircle scaled digdiam;
+draw z1--z2--z3{right}..z4..{left}z5;
+enddef;
+
+def sechser =
+x1=0.6w;
+y1=digheight;
+x2=lgap;
+x4=w-x2;
+y2=y4=0.5y5;
+x3=x5=0.5w;
+y3=0;
+y5=x4-x2;
+pickup pencircle scaled digdiam;
+draw z2..z3..z4..z5..cycle;
+draw z1..{down}z2;
+enddef;
+def siebener =
+x1=lgap;
+x2=w-x1;
+y1=y2=digheight;
+x3=x4=0.5w;
+y3=0.3digheight;
+y4=0;
+pickup pencircle scaled digdiam;
+draw z1--z2;
+draw z2..z3...z4;
+enddef;
+def achter =
+x1=x3=x5=0.5w;
+y1=digheight;
+y3=0.6digheight;
+y5=0;
+x2=w-x7;
+x4=w-x6;
+y2=y7=0.5[y1,y3];
+y4=y6=0.5[y3,y5];
+x2=1.5lgap;
+x4=w-lgap;
+pickup pencircle scaled digdiam;
+draw z1..z2..z3..z7..cycle;
+draw z3..z4..z5..z6..cycle;
+enddef;
+def neuner =
+x1=0.4w;
+y1=0;
+x2=w-lgap;
+x4=w-x2;
+y2=y4=0.5[y5,y3];
+x3=x5=0.5w;
+y3=digheight;
+y5=0.4 digheight;
+pickup pencircle scaled digdiam;
+draw z1..{up}z2;
+draw z2..z3..z4..z5..cycle;
+enddef;
+beginchar("+",3*bwidth#,totheight#,0); "Das Randzeichen";
+fb(1); fb(3);
+klotz(1);
+klotz(3);
+endchar;
+beginchar("-",5*bwidth#,totheight#,0); "Das Mittenzeichen";
+fb(2); fb(4);
+klotz(2);
+klotz(4);
+endchar;
+
+beginchar("0",7*bwidth#,digheight#,0);
+nuller;
+endchar;
+
+beginchar("1",7*bwidth#,digheight#,0);
+einser;
+endchar;
+
+beginchar("2",7*bwidth#,digheight#,0);
+zweier;
+endchar;
+
+beginchar("3",7*bwidth#,digheight#,0);
+dreier;
+endchar;
+
+beginchar("4",7*bwidth#,digheight#,0);
+vierer;
+endchar;
+
+beginchar("5",7*bwidth#,digheight#,0);
+fuenfer;
+endchar;
+
+beginchar("6",7*bwidth#,digheight#,0);
+sechser;
+endchar;
+
+beginchar("7",7*bwidth#,digheight#,0);
+siebener;
+endchar;
+
+beginchar("8",7*bwidth#,digheight#,0);
+achter;
+endchar;
+
+beginchar("9",7*bwidth#,digheight#,0);
+neuner;
+endchar;
+
+
+beginchar("A",7*bwidth#,totheight#,0); "Die Null (A)";
+fb(4);fb(5);fb(7);
+nuller;
+endchar;
+
+beginchar("B",7*bwidth#,totheight#,0); "Die Eins (A)";
+fb(3);fb(4);fb(7);
+einser;
+endchar;
+
+beginchar("C",7*bwidth#,totheight#,0); "Die Zwei (A)";
+fb(3);fb(6);fb(7);
+zweier;
+endchar;
+beginchar("D",7*bwidth#,totheight#,0); "Die Drei (A)";
+fb(2);fb(3);fb(4);fb(5);fb(7);
+dreier;
+endchar;
+beginchar("E",7*bwidth#,totheight#,0); "Die Vier (A)";
+fb(2);fb(6);fb(7);
+vierer;
+endchar;
+beginchar("F",7*bwidth#,totheight#,0); "Die Fuenf (A)";
+fb(2);fb(3);fb(7);
+fuenfer;
+endchar;
+beginchar("G",7*bwidth#,totheight#,0); "Die Sechs (A)";
+fb(2);fb(4);fb(5);fb(6);fb(7);
+sechser;
+endchar;
+beginchar("H",7*bwidth#,totheight#,0); "Die Sieben (A)";
+fb(2);fb(3);fb(4);fb(6);fb(7);
+siebener;
+endchar;
+
+beginchar("I",7*bwidth#,totheight#,0); "Die Acht (A)";
+fb(2);fb(3);fb(5);fb(6);fb(7);
+achter;
+endchar;
+
+beginchar("J",7*bwidth#,totheight#,0); "Die Neun (A)";
+fb(4);fb(6);fb(7);
+neuner;
+endchar;
+
+
+beginchar("a",7*bwidth#,totheight#,0); "Die Null (B)";
+fb(2);fb(5);fb(6);fb(7);
+nuller;
+endchar;
+
+beginchar("b",7*bwidth#,totheight#,0); "Die Eins (B)";
+fb(2);fb(3);fb(6);fb(7);
+einser;
+endchar;
+
+beginchar("c",7*bwidth#,totheight#,0); "Die Zwei (B)";
+fb(3);fb(4);fb(6);fb(7);
+zweier;
+endchar;
+beginchar("d",7*bwidth#,totheight#,0); "Die Drei (B)";
+fb(2);fb(7);
+dreier;
+endchar;
+beginchar("e",7*bwidth#,totheight#,0); "Die Vier (B)";
+fb(3);fb(4);fb(5);fb(7);
+vierer;
+endchar;
+beginchar("f",7*bwidth#,totheight#,0); "Die Fuenf (B)";
+fb(2);fb(3);fb(4);fb(7);
+fuenfer;
+endchar;
+beginchar("g",7*bwidth#,totheight#,0); "Die Sechs (B)";
+fb(5);fb(7);
+sechser;
+endchar;
+beginchar("h",7*bwidth#,totheight#,0); "Die Sieben (B)";
+fb(3);fb(7);
+siebener;
+endchar;
+
+beginchar("i",7*bwidth#,totheight#,0); "Die Acht (B)";
+fb(4);fb(7);
+achter;
+endchar;
+
+beginchar("j",7*bwidth#,totheight#,0); "Die Neun (B)";
+fb(3);fb(5);fb(6);fb(7);
+neuner;
+endchar;
+
+
+beginchar("K",7*bwidth#,totheight#,0); "Die Null (C)";
+fb(1);fb(2);fb(3);fb(6);
+nuller;
+endchar;
+
+beginchar("L",7*bwidth#,totheight#,0); "Die Eins (C)";
+fb(1);fb(2);fb(5);fb(6);
+einser;
+endchar;
+
+beginchar("M",7*bwidth#,totheight#,0); "Die Zwei (C)";
+fb(1);fb(2);fb(4);fb(5);
+zweier;
+endchar;
+beginchar("N",7*bwidth#,totheight#,0); "Die Drei (C)";
+fb(1);fb(6);
+dreier;
+endchar;
+beginchar("O",7*bwidth#,totheight#,0); "Die Vier (C)";
+fb(1);fb(3);fb(4);fb(5);
+vierer;
+endchar;
+beginchar("P",7*bwidth#,totheight#,0); "Die Fuenf (C)";
+fb(1);fb(4);fb(5);fb(6);
+fuenfer;
+endchar;
+beginchar("Q",7*bwidth#,totheight#,0); "Die Sechs (C)";
+fb(1);fb(3);
+sechser;
+endchar;
+beginchar("R",7*bwidth#,totheight#,0); "Die Sieben (C)";
+fb(1);fb(5);
+siebener;
+endchar;
+
+beginchar("S",7*bwidth#,totheight#,0); "Die Acht (C)";
+fb(1);fb(4);
+achter;
+endchar;
+
+beginchar("T",7*bwidth#,totheight#,0); "Die Neun (C)";
+fb(1);fb(2);fb(3);fb(5);
+neuner;
+endchar;
+
+end;
+\endinput
+%%
+%% End of file `wlean.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/barcodes/barcodes.mf b/Master/texmf-dist/fonts/source/public/barcodes/barcodes.mf
new file mode 100644
index 00000000000..1e9f1fe6798
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/barcodes/barcodes.mf
@@ -0,0 +1,269 @@
+%NAME: barcodes.mf
+% 10-Nov-87 14:05:55-PST,10055;000000000000
+% Return-Path: <CLDLV%NASAGISS.BITNET@forsythe.stanford.edu>
+% Date: Tue, 10 Nov 87 15:46:49 EDT
+% From: Dimitri Vulis <CLDLV%NASAGISS.BITNET@forsythe.stanford.edu>
+% Subject: Foo (bar codes)
+%
+% Dear Malcolm: I believe that the following file would of general
+% interest, but I think it's too long for the digest:
+%
+% I was amazed to find out that business people pay enormous money for the
+% ability to produce bar codes. This ought to be TRIVIAL with \TeX.
+% So, I got hold of a public domain BASIC program that supposedly does that and
+% lifted the codes and put them into METAFONT (it was EASY). Caveat(s): I have
+% never tested these codes with an OCR. The BASIC program said it used `3 of 9'
+% encoding. I presume it's not the same as UPC. The sizes may be off---I
+% took them from the BASIC program that used HP LJ's 100dpi graphics mode.
+% Disclaimer: I haven't tested these codes. Use them at your own risk.
+% Remarks:
+% 1) White space is a displayable character.
+% 2) There are 9 significant strips, bwbwbwbwb; 3 of them are wide.
+% 3) The white_naro; at the end of each code is the inter-code spacing.
+% Credits: the original BASIC program was written by `Bill Wood Mil., WI' and
+% later re-written by `Bill Baines, Enfield, CT.'. METAFONT version is by
+% `Dimitri Vulis CLDLV@NASAGISS.BITNET'
+mode_setup;
+font_identifier "DVBar"; font_size .35in#;
+naro#:=.01in#; % narrow strip width
+wide#:=3naro#; % wide strip width
+wdth#:=3wide#+7naro#; % common width of all codes
+hght#:=.35in#; % common height of all codes
+define_pixels(naro,wide,wdth,hght);
+def white_naro=
+ wid:=wid+naro;
+enddef;
+def black_naro=
+ filldraw (wid,0)--(wid,hght)--(wid+naro,hght)--(wid+naro,0)--cycle;
+ wid:=wid+naro;
+enddef;
+def white_wide=
+ wid:=wid+wide;
+enddef;
+def black_wide=
+ filldraw (wid,0)--(wid,hght)--(wid+wide,hght)--(wid+wide,0)--cycle;
+ wid:=wid+wide;
+enddef;
+beginchar("1",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_naro; white_wide; black_naro;
+white_naro; black_naro; white_naro; black_wide; white_naro;
+endchar;
+beginchar("2",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_wide; white_wide; black_naro;
+white_naro; black_naro; white_naro; black_wide; white_naro;
+endchar;
+beginchar("3",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_wide; white_wide; black_naro;
+white_naro; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("4",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_naro; white_wide; black_wide;
+white_naro; black_naro; white_naro; black_wide; white_naro;
+endchar;
+beginchar("5",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_naro; white_wide; black_wide;
+white_naro; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("6",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_wide; white_wide; black_wide;
+white_naro; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("7",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_naro; white_wide; black_naro;
+white_naro; black_wide; white_naro; black_wide; white_naro;
+endchar;
+beginchar("8",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_naro; white_wide; black_naro;
+white_naro; black_wide; white_naro; black_naro; white_naro;
+endchar;
+beginchar("9",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_wide; white_wide; black_naro;
+white_naro; black_wide; white_naro; black_naro; white_naro;
+endchar;
+beginchar("0",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_naro; white_wide; black_wide;
+white_naro; black_wide; white_naro; black_naro; white_naro;
+endchar;
+beginchar("A",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_naro; white_naro; black_naro;
+white_wide; black_naro; white_naro; black_wide; white_naro;
+endchar;
+beginchar("B",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_wide; white_naro; black_naro;
+white_wide; black_naro; white_naro; black_wide; white_naro;
+endchar;
+beginchar("C",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_wide; white_naro; black_naro;
+white_wide; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("D",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_naro; white_naro; black_wide;
+white_wide; black_naro; white_naro; black_wide; white_naro;
+endchar;
+beginchar("E",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_naro; white_naro; black_wide;
+white_wide; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("F",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_wide; white_naro; black_wide;
+white_wide; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("G",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_naro; white_naro; black_naro;
+white_wide; black_wide; white_naro; black_wide; white_naro;
+endchar;
+beginchar("H",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_naro; white_naro; black_naro;
+white_wide; black_wide; white_naro; black_naro; white_naro;
+endchar;
+beginchar("I",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_wide; white_naro; black_naro;
+white_wide; black_wide; white_naro; black_naro; white_naro;
+endchar;
+beginchar("J",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_naro; white_naro; black_wide;
+white_wide; black_wide; white_naro; black_naro; white_naro;
+endchar;
+beginchar("K",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_naro; white_naro; black_naro;
+white_naro; black_naro; white_wide; black_wide; white_naro;
+endchar;
+beginchar("L",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_wide; white_naro; black_naro;
+white_naro; black_naro; white_wide; black_wide; white_naro;
+endchar;
+beginchar("M",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_wide; white_naro; black_naro;
+white_naro; black_naro; white_wide; black_naro; white_naro;
+endchar;
+beginchar("N",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_naro; white_naro; black_wide;
+white_naro; black_naro; white_wide; black_wide; white_naro;
+endchar;
+beginchar("O",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_naro; white_naro; black_wide;
+white_naro; black_naro; white_wide; black_naro; white_naro;
+endchar;
+beginchar("P",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_wide; white_naro; black_wide;
+white_naro; black_naro; white_wide; black_naro; white_naro;
+endchar;
+beginchar("Q",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_naro; white_naro; black_naro;
+white_naro; black_wide; white_wide; black_wide; white_naro;
+endchar;
+beginchar("R",wdth#,hght#,0);
+wid:=0;
+black_wide; white_naro; black_naro; white_naro; black_naro;
+white_naro; black_wide; white_wide; black_naro; white_naro;
+endchar;
+beginchar("S",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_wide; white_naro; black_naro;
+white_naro; black_wide; white_wide; black_naro; white_naro;
+endchar;
+beginchar("T",wdth#,hght#,0);
+wid:=0;
+black_naro; white_naro; black_naro; white_naro; black_wide;
+white_naro; black_wide; white_wide; black_naro; white_naro;
+endchar;
+beginchar("U",wdth#,hght#,0);
+wid:=0;
+black_wide; white_wide; black_naro; white_naro; black_naro;
+white_naro; black_naro; white_naro; black_wide; white_naro;
+endchar;
+beginchar("V",wdth#,hght#,0);
+wid:=0;
+black_naro; white_wide; black_wide; white_naro; black_naro;
+white_naro; black_naro; white_naro; black_wide; white_naro;
+endchar;
+beginchar("W",wdth#,hght#,0);
+wid:=0;
+black_wide; white_wide; black_wide; white_naro; black_naro;
+white_naro; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("X",wdth#,hght#,0);
+wid:=0;
+black_naro; white_wide; black_naro; white_naro; black_wide;
+white_naro; black_naro; white_naro; black_wide; white_naro;
+endchar;
+beginchar("Y",wdth#,hght#,0);
+wid:=0;
+black_wide; white_wide; black_naro; white_naro; black_wide;
+white_naro; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("Z",wdth#,hght#,0);
+wid:=0;
+black_naro; white_wide; black_wide; white_naro; black_wide;
+white_naro; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("-",wdth#,hght#,0); % minus
+wid:=0;
+black_naro; white_wide; black_naro; white_naro; black_naro;
+white_naro; black_wide; white_naro; black_wide; white_naro;
+endchar;
+beginchar(".",wdth#,hght#,0); %period
+wid:=0;
+black_wide; white_wide; black_naro; white_naro; black_naro;
+white_naro; black_wide; white_naro; black_naro; white_naro;
+endchar;
+beginchar(" ",wdth#,hght#,0); %white space
+wid:=0;
+black_naro; white_wide; black_wide; white_naro; black_naro;
+white_naro; black_wide; white_naro; black_naro; white_naro;
+endchar;
+beginchar("*",wdth#,hght#,0); %ascii asterisk
+wid:=0;
+black_naro; white_wide; black_naro; white_naro; black_wide;
+white_naro; black_wide; white_naro; black_naro; white_naro;
+endchar;
+beginchar("$",wdth#,hght#,0); %dollar sign
+wid:=0;
+black_naro; white_wide; black_naro; white_wide; black_naro;
+white_wide; black_naro; white_naro; black_naro; white_naro;
+endchar;
+beginchar("/",wdth#,hght#,0); %forward slash
+wid:=0;
+black_naro; white_wide; black_naro; white_wide; black_naro;
+white_naro; black_naro; white_wide; black_naro; white_naro;
+endchar;
+beginchar("+",wdth#,hght#,0); %plus
+wid:=0;
+black_naro; white_wide; black_naro; white_naro; black_naro;
+white_wide; black_naro; white_wide; black_naro; white_naro;
+endchar;
+beginchar("%",wdth#,hght#,0); %percent sign
+wid:=0;
+black_naro; white_naro; black_naro; white_wide; black_naro;
+white_wide; black_naro; white_wide; black_naro; white_naro;
+endchar;
+end; %all done
+
+
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal-accents.mf b/Master/texmf-dist/fonts/source/public/bayer/universal-accents.mf
new file mode 100644
index 00000000000..c589b1f27b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal-accents.mf
@@ -0,0 +1,164 @@
+%%
+%% This is file `accents.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `accents')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+bauhaussymb(hex"12",x_width#,l_height#,0,0);
+ "The accent `";
+ top z1 = (0,h);
+ bot z2 = (2.5p_thick,h-2.5p_thick);
+ draw z1--z2;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(hex"13",x_width#,l_height#,0,0);
+ "The accent '";
+ bot z1 = (0.5wi,h-2p_thick);
+ top z2 = (.5wi+2p_thick,h);
+ draw z1--z2;
+ cutoff(z1,-90);
+ cutoff(z2,90);
+endchar;
+
+bauhaussymb(hex"14",x_width#,l_height#,0,0);
+ "The accent hachek";
+ bot z1 = (.5wi,h-2p_thick);
+ top z2 = (.5wi-1.5p_thick,h);
+ top z3 = (.5wi+1.5p_thick,h);
+ draw z2---z1{right}---z3;
+ cutoff(z2,90);
+ cutoff(z3,90);
+ penlabels(1,2,3);
+endchar;
+
+bauhaussymb(hex"15",x_width#,l_height#,0,0);
+ "The accent breve";
+ bot z1 = (.5wi,h-2p_thick);
+ top z2 = (.5wi-p_thick,h);
+ top z3 = (.5wi+p_thick,h);
+ cutdraw z2{down}..z1{right}..z3{up};
+ penlabels(1,2,3);
+endchar;
+
+bauhaussymb(hex"16",x_width#,l_height#,0,0);
+ "The accent bar";
+ top z1 = (.5wi-1.5p_thick,h);
+ top z2 = (.5wi+1.5p_thick,h);
+ cutdraw z1{right}--z2;
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(hex"17",A_width#,l_height#,0,0);
+ "The accent circle";
+ top z1 = (.5wi,h+p_thick);
+ lft z2 = (.5wi-1.5p_thick,h-.5p_thick);
+ bot z3 = (.5wi,h-2p_thick);
+ rt z4 = (.5wi+1.5p_thick,h-.5p_thick);
+ draw z1{left}..z2{down}..z3{right}..z4{up}..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+bauhaussymb(hex"18",x_width#,l_height#,p_depth#,0);
+ "The accent cidelia";
+ bot z1 = (.5wi,0);
+ rt z2 = (.5wi+1.5p_thick,-.5p_thick);
+ top z3 = (.5wi,-p_thick);
+ cutdraw z1{right}..z2{down}..z3{left};
+ penlabels(1,2,3);
+endchar;
+
+bauhaussymb(hex"20",f_space#,l_height#,0,0);
+ "The accent bar over l";
+ top z1 = (0,.5h);
+ bot z2 = (3p_thick,.5h);
+ cutdraw z1--z2;
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(hex"5E",x_width#,l_height#,0,0);
+ "The accent hat";
+ top z1 = (.5wi,h);
+ bot z2 = (.5wi-1.5p_thick,h-2p_thick);
+ bot z3 = (.5wi+1.5p_thick,h-2p_thick);
+ draw z2---z1{right}---z3;
+ cutoff(z2,-90);
+ cutoff(z3,-90);
+ penlabels(1,2,3);
+endchar;
+
+bauhaussymb(hex"5F",x_width#,l_height#,0,0);
+ "The accent dot";
+ top z1 = (.5wi,h);
+ drawdot z1;
+ penlabels(1,2,3);
+endchar;
+
+bauhaussymb(hex"7D",x_width#,l_height#,0,0);
+ "The accent ''";
+ rt z1 = (.5wi,h);
+ rt z2 = (.5wi-2p_thick,h-2p_thick);
+ rt z3 = (.5wi+2p_thick,h);
+ rt z4 = (.5wi,h-2p_thick);
+ draw z1--z2;
+ draw z3--z4;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ cutoff(z3,90);
+ cutoff(z4,-90);
+ penlabels(1,2,3,4);
+endchar;
+
+bauhaussymb(hex"7E",x_width#,l_height#,0,0);
+ "The accent ~";
+ bot z1 = (.5wi-1.5p_thick,h-1.5p_thick);
+ top z2 = (.5wi-.75p_thick,h);
+ bot z3 = (.5wi+.75p_thick,h-1.5p_thick);
+ top z4 = (.5wi+1.5p_thick,h);
+ cutdraw z1..z2{right}..z3{right}..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+bauhaussymb(hex"7F",x_width#,l_height#,0,0);
+ "The accent ^^a8";
+ top rt z1 = (.5wi-.25p_thick,h);
+ top lft z2 = (.5wi+.25p_thick,h);
+ drawdot z1;
+ drawdot z2;
+ penlabels(1,2);
+endchar;
+
+
+\endinput
+%%
+%% End of file `accents.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal-digits.mf b/Master/texmf-dist/fonts/source/public/bayer/universal-digits.mf
new file mode 100644
index 00000000000..43f7ad6f72a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal-digits.mf
@@ -0,0 +1,162 @@
+%%
+%% This is file `digits.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `digits')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+bauhausnumb("0",A_width#,l_height#,0,0);
+ lft z1 = (0,h-.5wi);
+ top z2 = (.5wi,h);
+ rt z3 = (wi,y1);
+ rt z4 = (wi,.5wi);
+ bot z5 = (.5wi,0);
+ lft z6 = (0,y4);
+ draw z1{up}..z2{right}..z3{down}---z4{down}..z5{left}..z6{up}---cycle;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+bauhausnumb("1",3/8(A_width#-f_space#)+f_space#,l_height#,0,0);
+ top z1 = (0,h);
+ top z2 = (2/3wi,h);
+ rt z3 = (wi,h-x2);
+ rt z4 = (wi,0);
+ cutdraw z1{right}---z2{right}..z3{down}---z4{down};
+ penlabels(1,2,3,4);
+endchar;
+
+bauhausnumb("2",A_width#,l_height#,0,0);
+ lft z1 = (0,h-.5wi);
+ top z2 = (.5wi,h);
+ rt z3 = (wi,y1);
+ lft bot z4 = (0,0);
+ bot z5 = (wi,0);
+ cutdraw z1{up}..z2{right}..z3{down}---z4{(-1,1)}---z5{right};
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhausnumb("3",A_width#,l_height#,0,0);
+ rad = .25h;
+ lft z1 = (0,h-rad);
+ top z2 = (rad,h);
+ top z3 = (wi-rad,h);
+ rt z4 = (wi,h-rad);
+ rt z5 = (wi-rad,.5h);
+ rt z6 = (wi,rad);
+ bot z7 = (wi-rad,0);
+ bot z8 = (rad,0);
+ lft z9 = (0,rad);
+ cutdraw z1{up}..z2{right}---z3{right}..z4{down}..z5{left};
+ cutdraw z5{right}..z6{down}..z7{left}---z8{left}..z9{up};
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+bauhausnumb("4",A_width#,l_height#,0,0);
+ z1 = (.8wi,h);
+ lft z2 = (0,h-x1);
+ z3 = (wi,y2);
+ z4 = (x1,0);
+ z5 = (x1,h-.5x1);
+ draw z1{(-1,-1)}---z2{(1,-1)}---z3{right};
+ cutoff(z1,90);
+ cutoff(z3,0);
+ cutdraw z4{up}--z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhausnumb("5",A_width#,l_height#,0,0);
+ tmp=wi/(1+sind(60));
+ lft z1 = (0,tmp*(1-sind(30)));
+ bot z2 = (wi-tmp,0);
+ rt top z3 = (wi,tmp);
+ top z4 = (x2,2y3);
+ top lft z5 = (0,2y3);
+ top lft z6 = (0,h);
+ top z7 = (wi,h);
+ cutdraw z1{dir(-60)}..z2{right}..z3{up}..z4{left}---
+ z5{(-1,1)}---z6{(1,1)}---z7{right};
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+bauhausnumb("6",A_width#,l_height#,0,0);
+ lft z1 = (0,.5wi);
+ top z2 = (.5wi,wi);
+ rt z3 = (wi,y1);
+ bot z4 = (x2,0);
+ lft z5 = (0,h-.5wi);
+ top z6 = (x2,h);
+ z7 = z6 rotatedaround((.5wi,h-.5wi),-60);
+ draw z1{up}..z2{right}..z3{down}..z4{left}..z1{up}---
+ z5{up}..z6{right}..z7{dir(-60)};
+ cutoff(z7,-60);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+bauhausnumb("7",A_width#,l_height#,0,0) ;
+ top z1 = (0,h);
+ rt top z2 = (wi,h);
+ lft z3 = (0,0);
+ draw z1{right}---z2{(1,-1)}---z3{z3-z1} ;
+ cutoff(z1,180);
+ cutoff(z3,angle(z3-z1));
+ penlabels(1,2,3);
+endchar ;
+
+bauhausnumb("8",.5l_height#+p_thick#+f_space#,l_height#,0,0);
+ top z1 = (.5wi,h);
+ z3 = (x1,.5h);
+ bot z6 = (x1,0);
+ rt z2 = bot z3 rotatedaround(.5[z3,z1],90);
+ lft z4 = bot z3 rotatedaround(.5[z3,z1],-90);
+ rt z5 = top z3 rotatedaround(.5[z6,z3],-90);
+ lft z7 = top z3 rotatedaround(.5[z6,z3],90);
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle;
+ draw z3{right}..z5{down}..z6{left}..z7{up}..cycle;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+bauhausnumb("9",A_width#,l_height#,0,0);
+ rt z1 = (wi,h-.5wi);
+ bot z2 = (.5wi,h-wi);
+ lft z3 = (0,y1);
+ top z4 = (x2,h);
+ rt z5 = (wi,.5wi);
+ bot z6 = (x2,0);
+ z7 = z6 rotatedaround((.5wi,.5wi),-60);
+ draw z1{down}..z2{left}..z3{up}..z4{right}..
+ z1{down}---z5{down}..z6{left}..z7{dir(120)};
+ cutoff(z7,120);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+
+\endinput
+%%
+%% End of file `digits.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal-extras.mf b/Master/texmf-dist/fonts/source/public/bayer/universal-extras.mf
new file mode 100644
index 00000000000..92c9b24739d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal-extras.mf
@@ -0,0 +1,366 @@
+%%
+%% This is file `extras.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `extras')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+picture blackpic;
+bauhausextra(hex"00","bauplus")%\bauplus
+ z1 = (0,0);
+ z2 = (0,h);
+ z3 = (wi,h);
+ z4 = (wi,0);
+ fill z1--z2--z3--z4--cycle;
+ blackpic := currentpicture;
+ inn=.9wi;
+ sp=.05wi;
+ z5 = (1/3inn+sp,h-sp);
+ z6 = (.5(wi-sp),y5);
+ z7 = (x6,.5(h+.sp));
+ z8 = (x5,y7);
+ path square ;
+ square = z5--z6--z7--z8--cycle;
+ unfill square;
+ unfill (square rotatedaround((.5wi,.5h),90));
+ unfill (square rotatedaround((.5wi,.5h),180));
+ unfill (square rotatedaround((.5wi,.5h),270));
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhausextra(hex"01","baudash")%\baudash
+ currentpicture := currentpicture + blackpic;
+ innn=.9wi;
+ z5 = (sp,.5(h+sp));
+ z6 = (sp,1/6innn+.5h);
+ z7 = (.5(wi-sp),y6);
+ z8 = (x7,.y5);
+ path square[] ;
+ square1 = z5--z6--z7--z8--cycle;
+ square2 = (square1 reflectedabout((.5wi,0),(.5wi,h)));
+ unfill square1;
+ unfill (square1 reflectedabout((0,.5h),(wi,.5h)));
+ unfill square2 ;
+ unfill (square2 reflectedabout((0,.5h),(wi,.5h)));
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhausextra(hex"02","bauequal")%\bauequal
+ currentpicture := currentpicture + blackpic;
+ z1 = (sp,.5(h+sp));
+ z2 = (sp,1/6innn+.5h);
+ z3 = (.5(wi-sp),y2);
+ z4 = (x3,.y1);
+ z5 = (sp,sp);
+ z6 = (sp,1/6innn+sp);
+ z7 = (.5(wi-sp),y6);
+ z8 = (x7,.y5);
+ path square[] ;
+ square1 = z1--z2--z3--z4--cycle;
+ square2 = (square1 reflectedabout((.5wi,0),(.5wi,h)));
+ square3 = z5--z6--z7--z8--cycle;
+ square4 = (square3 reflectedabout((.5wi,0),(.5wi,h)));
+ unfill square1;
+ unfill square2;
+ unfill square3 ;
+ unfill square4;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhausextra(hex"03","bautriangle")%\bautriangle
+ z1 = (0,0);
+ z2 = (.5wi,h);
+ z3 = (wi,0);
+ fill z1--z2--z3--cycle;
+ penlabels(1,2,3);
+endchar;
+
+bauhausextra(hex"04","baucircle")%\baucircle
+ currentpicture := currentpicture + blackpic;
+ pickup pencircle scaled 1/4wi;
+ top z1 = (.5wi,h); rt z2 = (wi,.5h);
+ bot z3 = (.5wi,0); lft z4 = (0,.5h);
+ undraw z1..z2..z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+bauhausextra(hex"05","baucross")%\baucross
+ bot lft z1 = (0,0) ; top lft z2 = (0,h) ;
+ top rt z3 = (wi,h) ; bot rt z4 = (wi,0) ;
+ draw z1--z2--z3--z4--cycle;
+ z5 = (0,1/4h) ; z6 = (1/4wi,.5h) ; z7 = (0,3/4h) ;
+ z8 = (1/4wi,h) ; z9 = (.5wi,3/4h) ; z10 = (3/4wi,h) ;
+ z11 = (wi,3/4h) ; z12 = (3/4wi,.5h) ; z13 = (wi,1/4h) ;
+ z14 = (3/4wi,0) ; z15 = (.5wi,1/4h) ; z16 = (1/4wi,0) ;
+ fill z1--z5--z6--z7--z2--z8--z9--z10--z3--z11--z12--
+ z13--z4--z14--z15--z16--cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+bauhausextra(hex"06","bauwindow")%\bauwindow
+ bot lft z1 = (0,0) ; top lft z2 = (0,h) ;
+ top rt z3 = (wi,h) ; bot rt z4 = (wi,0) ;
+ draw z1--z2--z3--z4--cycle;
+ top z5 = (.5wi,h) ; bot z6 = (.5wi,0) ;
+ lft z7 = (0,.5h) ; rt z8 = (wi,.5h) ;
+ draw z5--z6;
+ draw z7--z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhausextra(hex"07","bauhole")%\bauhole
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (x1,0);
+ lft z4 = (0,y2);
+ draw z1..z2..z3..z4..cycle;
+ z5 = (.5wi,9/10h);
+ z6 = (9/10wi,.5h);
+ z7 = (x5,1/10h);
+ z8 = (1/10wi,y6);
+ fill z5..z6..z7..z8..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhausextra(hex"08","baueclipse")%\baueclipse
+ pickup pencircle scaled p_thick;
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (x1,0);
+ lft z4 = (0,y2);
+ draw z1..z2..z3..z4..cycle;
+ delta = .05wi;
+ z5 = bot z1 - (0,delta);
+ z6 = lft z2 - (delta,0);
+ z7 = top z3 + (0,.9delta);
+ z8 = rt z4 + (.9delta,0);
+ fill z5..z6..z7..z8..cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhausextra(hex"09","bauquarter")%\bauquarter
+ z1 = (.5wi,h);
+ z2 = (.5wi,.5h);
+ z3 = (wi,y2);
+ z4 = (x1,0);
+ z5 = (0,y2);
+ top z7 = z1;
+ rt z8 = z3;
+ fill z4{left}..z5{up}..z1--z2--z3..cycle;
+ draw z7{right}..z8{down};
+ penlabels(1,2,3,4,5,7,8);
+endchar;
+
+bauhausextra(hex"0A","bauarrow")%\bauarrow
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (x1,0);
+ lft z4 = (0,y2);
+ draw z1..z2..z3..z4..cycle;
+ z5 = (3/10wi,6/10h);
+ z6 = (6/10wi,y5);
+ z7 = (x6,y5+1/20wi);
+ z8 = (x6+3/20wi,.5h);
+ z9 = (x6,4/10h-1/20h);
+ z10 = (x6,4/10h);
+ z11 = (x5,y10);
+ fill z5--z6--z7--z8--z9--z10--z11--cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+bauhausextra(hex"0B","bauwhitearrow")%\bauwhitearrow
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (x1,0);
+ lft z4 = (0,y2);
+ draw z1..z2..z3..z4..cycle;
+ z5 = (3/10wi,6/10h);
+ z6 = (6/10wi,y5);
+ z7 = (x6,y5+1/20wi);
+ z8 = (x6+3/20wi,.5h);
+ z9 = (x6,4/10h-1/20h);
+ z10 = (x6,4/10h);
+ z11 = (x5,y10);
+ draw z5--z6--z7--z8--z9--z10--z11--cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+bauhausextra(hex"0C","bauhead")%\bauhead
+ % Vertical variables
+ a1 = 0.702h ; a2 = 0.561h ; a3 = 0.491h ; a4 = 0.351h ;
+ a5 = 0.272h ; a6 = 0.140h ;
+ % horizontal variables
+ b1 = 0.202wi ; b2 = 0.307wi ; b3 = 0.412wi ; b4 = 0.447wi ;
+ b5 = 0.465wi ; b6 = 0.518wi ; b7 = 0.588wi ; b8 = 0.623wi ;
+ % eye
+ pickup pensquare scaled .009wi ;
+ top lft z1 = (b1,a1) ; top rt z2 = (b2,a1) ;
+ draw z1--z2;
+ bot rt z3 = (b4,a3) ; top rt z4 = (b4,a2) ;
+ draw z3--z4;
+ z5 = (b2,a1) ; z6 = (b4,a1) ; z7 = (b4,a2) ; z8 = (b2,a2) ;
+ fill z5--z6--z7--z8--cycle;
+ % nostril
+ lft bot z9 = (b4,a4) ; rt bot z10 = (b7,a4) ;
+ draw z9--z10 ;
+ % chin
+ lft bot z11 = (b2,a6) ; rt bot z12 = (b6,a6) ;
+ draw z11--z12;
+ % lips
+ pickup pensquare scaled 0.035wi ;
+ lft top z13 = (b5,a5) ; rt top z14 = (b6,a5) ;
+ draw z13--z14;
+ % bottom of face
+ z15 = (b6,a4) ; z16 = (b7,a4) ; z17 = (b7,a6) ; z18 = (b6,a6) ;
+ fill z15--z16--z17--z18--cycle ;
+ % save the common stuff
+ picture commonface ;
+ commonface := currentpicture ;
+ % head with circle
+ path noselft, nosert, necklft, neckrt ;
+ path headcircle , parttop, partbot;
+ z19 = (b7,a4) ; z20 = (b7,h) ; noselft = z19--z20 ;
+ z21 = (b8,h) ; z22 = (b8,a4) ; nosert = z21--z22 ;
+ z23 = (b3,a6) ; z24 = (b3,0) ; necklft = z23--z24 ;
+ z25 = (b6,0) ; z26 = (b6,a6) ; neckrt = z25--z26 ;
+ % circle
+ pickup pencircle scaled .009wi;
+ top z27 = (.5wi,h) ; rt z28 = (wi,.5h) ;
+ bot z29 = (.5wi,0) ; lft z30 = (0,.5h) ;
+ headcircle := z27..z28..z29..z30..cycle ;
+ draw headcircle ;
+ % nose/forhead
+ z31 = noselft intersectiontimes headcircle ;
+ z32 = nosert intersectiontimes headcircle ;
+ parttop = subpath(y31,y32) of headcircle ;
+ fill z19--parttop--z22--cycle ;
+ % nose/forhead
+ z33 = neckrt intersectiontimes headcircle ;
+ z34 = necklft intersectiontimes headcircle ;
+ partbot = subpath(y34,y33) of headcircle ;
+ fill z23--partbot--z26--cycle ;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20) ;
+ penlabels(21,22,23,24,25,26,27,28,29,30);
+endchar;
+
+bauhausextra(hex"0D","bauface");%\bauface
+ % head without cicle
+ path noselft, nosert, necklft, neckrt ;
+ % nose/forhead
+ z19 = (b7,a4) ; z20 = (b7,h) ; noselft = z19--z20 ;
+ z21 = (b8,h) ; z22 = (b8,a4) ; nosert = z21--z22 ;
+ fill noselft--nosert--cycle;
+ % neck
+ z23 = (b3,a6) ; z24 = (b3,0) ; necklft = z23--z24 ;
+ z25 = (b6,0) ; z26 = (b6,a6) ; neckrt = z25--z26 ;
+ fill necklft--neckrt--cycle;
+ currentpicture := currentpicture + commonface ;
+endchar;
+
+beginchar(hex"0E",5/7l_height#+f_space#,l_height#,p_depth#);
+ %\bauquestion
+ "The bauhaus symbol bauquestion";
+ pickup pencircle scaled 1/10p_thick ;
+ spp=.01wi;
+ wi#:=2/3l_height#;
+ define_pixels(wi);
+ z1 = (0,0) ; z2 = (0,h) ; z3 = (wi,h) ; z4 = (wi,0) ;
+ fill z1--z2--z3--z4--cycle;
+ z5 = (1/2(.5wi-spp)+spp,spp);
+ z6 = (.5wi,y5) ;
+ z7 = (.5wi,x5);
+ z8 = (x5,x5);
+ unfill z5--z6--z7--z8--cycle;
+ z9 = (x6+3/2(x5-spp),y7); z10 = (x9,y7+x9-x6) ; z11 = (x6,y10) ;
+ unfill z7--z9--z10--z11--cycle;
+ z12 = (x6,y11+.5(wi-spp)) ; z13 = (spp,y12) ; z14 = (spp,y10) ;
+ unfill z11--z12--z13--z14--cycle ;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+bauhausextra(hex"84","bauforms");%\bauforms
+ pickup pencircle scaled 1/32 wi;
+ top z1 = (.5wi,h);
+ rt z2 = (wi,.5h);
+ bot z3 = (.5wi,0);
+ lft z4 = (0,.5h);
+ draw z1..z2..z3..z4..cycle;
+ for phi := 20 step 0.1 until 40 :
+ a1 := 31/32wi*cosd(phi);
+ a2 := (31/32wi*(cosd(phi)**2))/(cosd(phi)+sind(phi));
+ a3 := a1*cosd(phi);
+ a4 := a1*sind(phi);
+ a5 := a2*cosd(phi);
+ a6 := a2*sind(phi);
+ a7 := a2*(cosd(phi)+2*sind(phi));
+ a8 := angle(a7-31wi/64,a6);
+ a9 := 31wi/64*(1+cosd(a8));
+ a10 := 31wi/64*sind(a8);
+ if abs(a7 - a9)<.1 :
+ exitif abs(a6 - a10)<.1 ;
+ fi;
+ endfor;
+ pickup pencircle scaled 1/64wi;
+ lft z5 = (1/32wi,.5h);
+ top z6 = (a3,a4)+(0,.5h);
+ bot z7 = (a3,.5h-a4);
+ draw z5--z6--z7--z5;
+ pickup pencircle scaled 1/24wi;
+ top lft z8 = (a5,a6)+(0,.5h);
+ top rt z9 = (a7,a6)+(0,.5h);
+ bot rt z10 = (a7,.5h-a6);
+ bot lft z11 = (a5,.5h-a6);
+ z12 = (a9,a10)+(0,.5h);
+ draw z8--z9--z10--z11--z8;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+bauhausextra(hex"85","baupunct");%\baupunct
+ z1 = (.5wi,h);
+ z2 = (wi,.5h);
+ z3 = (.5wi,0);
+ z4 = (0,.5h);
+ fill z1..z2..z3..z4..cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+bauhausextra(hex"86","bausquare");%\bausquare
+ z1 = (0,h);
+ z2 = (wi,h);
+ z3 = (wi,0);
+ z4 = (0,0);
+ fill z1--z2--z3--z4--cycle;
+ penlabels(1,2,3,4);
+endchar;
+
+
+\endinput
+%%
+%% End of file `extras.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal-ligatures.mf b/Master/texmf-dist/fonts/source/public/bayer/universal-ligatures.mf
new file mode 100644
index 00000000000..277a6f2fcb7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal-ligatures.mf
@@ -0,0 +1,116 @@
+%%
+%% This is file `ligatures.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `ligatures')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+bauhaussymb(hex"19",2p_thick#+.5l_height#+f_space#,l_height#,0,0);
+ "Ligature ss";
+ lft z1 = (wi-.5h,0);
+ lft z2 = (wi-.5h,.75h);
+ top z3 = (wi-.25h,h);
+ rt z4 = (wi,y2);
+ z5 = (wi-.25h,.5h);
+ z6 = (0,.5h);
+ rt z7 = (wi,.25h);
+ bot z8 = (wi-.25h,0);
+ cutdraw z1{up}---z2{up}..z3{right}..z4{down}..z5{left}---z6{left};
+ cutdraw z5{right}..z7{down}..z8{left};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhaussymb(hex"1A",2x_width#-p_thick#-2f_space#,x_height#,0,0);
+ "Ligature ae";
+ currentpicture := a_pic + ( e_pic shifted (.5wi,0));
+endchar;
+
+bauhaussymb(hex"1B",2x_width#-p_thick#-2f_space#,x_height#,0,0);
+ "Ligature oe";
+ currentpicture := o_pic + ( e_pic shifted (.5wi,0));
+endchar;
+
+bauhaussymb(hex"1C",x_width#,x_height#,0,0);
+ "Ligature o/";
+ lft z10 = (0,0);
+ rt z11 = (wi,h);
+ draw z10{(1,1)}--z11;
+ cutoff(z10,-90);
+ cutoff(z11,90);
+ currentpicture := currentpicture + o_pic;
+endchar;
+
+bauhaussymb(hex"1D",M_width#,l_height#,0,0);
+ "Ligature AE";
+ lft z1 = (0,0);
+ lft z2 = (0,.5wi);
+ top z3 = (.5wi,h);
+ top z4 = (wi,h);
+ lft z5 = (0,.5h);
+ z6 = (wi,.5h);
+ bot z7 = (wi,0);
+ bot z8 = (.5wi,0);
+ cutdraw z1{up}---z2{up}..z3{right}---z4{right};
+ draw z5{right}---z6{right};
+ cutoff(z6,0);
+ cutdraw z7{left}---z8{(-1,1)}---z3{up};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhaussymb(hex"1E",.5l_height#+.5A_width#+.5f_space#,l_height#,0,0);
+ "Ligature OE";
+ bot z1 = (wi,0);
+ bot z2 = (.5h,0);
+ lft z3 = (0,.5h);
+ top z4 = (.5h,h);
+ top z5 = (wi,h);
+ z6 = .5[z2,z4];
+ z7 = .5[z1,z5];
+ cutdraw z1{left}---z2{left}..z3{up}..z4{right}---z5{right};
+ draw z2{up}--z4{up};
+ draw z6{right}--z7{right};
+ cutoff(z7,0);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+bauhaussymb(hex"1F",l_height#+f_space#,l_height#,0,0);
+ "Liguture O/";
+ lft z10 = (0,0);
+ rt z11 = (wi,h);
+ draw z10{(1,1)}--z11;
+ cutoff(z10,-90);
+ cutoff(z11,90);
+ currentpicture := currentpicture + O_pic;
+endchar;
+
+
+\endinput
+%%
+%% End of file `ligatures.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal-lowers.mf b/Master/texmf-dist/fonts/source/public/bayer/universal-lowers.mf
new file mode 100644
index 00000000000..5142826f2d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal-lowers.mf
@@ -0,0 +1,347 @@
+%%
+%% This is file `lowers.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `lowers')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+bauhauschar("a",1x_width#,1x_height#,0,0); %"The letter a";
+ bot z1 = (7/16wi,0);
+ lft z2 = lft z3 rotatedaround((0.5wi,0.5h),45);
+ lft z3 = (0,0.5h);
+ top z4 = (0.5wi,h);
+ rt z5 = top z4 rotatedaround((0.5wi,0.5h),-45);
+ rt z6 = (wi,0.5h+sind(15));
+ rt z7 = (wi,0);
+ draw z6..z1{left}..z2..z3{up}..z4{right}..z5..z6{down}--z7 ;
+ penlabels(1,2,3,4,5,6,7,8);
+ cutoff(z7,-90);
+ a_pic := currentpicture;
+endchar;
+
+bauhauschar("b",1x_width#,l_height#,0,0); %"The letter b";
+ top y1=5/8h ;
+ rt x2=wi ;
+ bot y3=0 ;
+ lft x4= lft x5 = lft x6 = 0 ;
+ x1 = x3 = 0.5wi ;
+ y2 = y4 = y5 = 5/16h ;
+ y6 = h ;
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ cutdraw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+bauhauschar("c",c_width#,1x_height#,0,1f_space#); %"The letter c";
+ rt z5 = top z4 rotatedaround((0.5wi,0.5h),-60);
+ rt z1 = bot z2 rotatedaround((0.5wi,0.5h),60);
+ bot y2=0;
+ lft x3=0;
+ top y4=h;
+ x2 = x4 = 0.5wi;
+ y3 = 0.5h ;
+ cutdraw z1..z2{left}..z3{up}..z4{right}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("d",1x_width#,l_height#,0,0); %"The letter d";
+ top y1 = 5/8h ;
+ rt x2 = rt x5 = rt x6 = wi ;
+ bot y3 =0 ;
+ lft x4 = 0 ;
+ x1 = x3 = 0.5wi ;
+ y2 = y4 = y5 = 5/16h ;
+ y6 = h ;
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ cutdraw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+bauhauschar("e",1x_width#,1x_height#,0,0) ; %"The letter e";
+ rt z1 = bot z2 rotatedaround((0.5wi,0.5h),60) ;
+ bot y2 = 0 ;
+ lft x3 = 0 ;
+ top y4 = h ;
+ rt x5 = rt x7 = wi ;
+ x6 = p_thick;
+ x2 = x4 = 0.5wi ;
+ y3 = y5 = y6 = 0.5h ;
+ y7 = y5 - 0.5p_thick ;
+ cutdraw z5{up}..z4{left}..z3{down}..z2{right}..z1 ;
+ cutdraw z5{down}--z7{down} ;
+ draw z6{right}--z5{right};
+ penlabels(1,2,3,4,5,6,7);
+ e_pic := currentpicture
+endchar;
+
+bauhauschar("f",f_width#,l_height#,0,0); %"The letter f";
+ lft x1 = lft x2 = 0 ;
+ y1 = 0 ;
+ top y2 = top y5 = top y6 = 5/8h ;
+ x4 = wi ;
+ x5 = p_thick;
+ x6 = wi;
+ top y4 = h ;
+ lft z3 = lft z2 rotatedaround((top z6),-45) ;
+ cutdraw z1{up}--z2{up}..z3{(1,1)}..z4{right} ;
+ cutdraw z5{right}--z6 ;
+ penlabels(1,2,3,4,5,6,7);
+endchar ;
+
+bauhauschar("g",1x_width#,1x_height#,p_depth#,0); %"The letter g";
+ rt z1 = top z2 rotatedaround((0.5wi,0.5h),-60) ;
+ top z2 = (0.5wi,h) ;
+ lft z3 = (0,0.5h) ;
+ bot z4 = (0.5wi,0) ;
+ rt z5 = (wi,0.5h) ;
+ rt z6 = (wi,-d) ;
+ cutdraw z1{(-cosd(60),sind(60))}..z2{left}..z3{down}
+ ..z4{right}..z5{up} ;
+ cutdraw z5{down}--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+bauhauschar("h",1x_width#,1l_height#,0,0) ; %"The letter h" ;
+ lft z1 = (0,0) ;
+ lft z2 = (0,h) ;
+ rt z3 = (wi,0) ;
+ rt z4 = (wi,x5) ;
+ top z5 = (0.5wi,5/8h) ;
+ lft z6 = (0,x5) ;
+ cutdraw z1{up}--z2 ;
+ cutdraw z3{up}--z4..z5{left}..z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+bauhauschar("i",1/5x_height#+f_space#,l_height#,0,0); %"The letter i" ;
+ lft z1 = (0,0) ;
+ lft z2 = (0,5/8h) ;
+ top z3 = (0.5wi,h) ;
+ cutdraw z1{up}--z2 ;
+ drawdot z3 ;
+ penlabels(1,2,3);
+endchar;
+
+bauhauschar("j",1/5x_height#+f_space#,l_height#,p_depth#,0);
+ %"The letter j"
+ lft z1 = (0,-d) ;
+ lft z2 = (0,5/8h) ;
+ top z3 = (0.5wi,h) ;
+ cutdraw z1{up}--z2 ;
+ drawdot z3 ;
+ penlabels(1,2,3);
+endchar;
+
+bauhauschar("k",0.8x_width#,1x_height#,0,0); %"The letter k" ;
+ lft z1 = (0,0) ;
+ lft z2 = (0,h) ;
+ lft z3 = (0,0.5h) ;
+ rt z4 = (wi,0) ;
+ rt z5 = (wi,h) ;
+ cutdraw z1{up}--z2 ;
+ cutdraw z3{right}..z4{down} ;
+ cutdraw z3{right}..z5{up} ;
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("l",1/5x_height#+f_space#,l_height#,0,0);%"The letter l" ;
+ lft z1 = (0,0) ;
+ lft z2 = (0,h) ;
+ cutdraw z1{up}--z2 ;
+ penlabels(1,2,3);
+endchar;
+
+bauhauschar("m",1m_width#,1x_height#,0,0); %"The letter m";
+ lft z1 = (0,0) ;
+ lft z2 = (0,0.7h) ;
+ top z3 = (0.5[x5,x1],h) ;
+ z4 = (0.5wi,0.7h-0.25p_thick) ;
+ z5 = (0.5wi,0) ;
+ top z6 = (0.5[x8,x5],h) ;
+ rt z7 = (wi,0.7h) ;
+ rt z8 = (wi,0) ;
+ cutdraw z1{up}--z2..z3{right}..z4{down}--z5 ;
+ cutdraw z4{up}..z6{right}..z7--z8{down} ;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhauschar("n",1x_width#,1x_height#,0,0); %"The letter n";
+ lft z1 = (0,0);
+ lft z2 = (0,0.6h) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,0.6h) ;
+ rt z5 = (wi,0);
+ cutdraw z1{up}--z2{up}..z3{right}..z4{down}--z5{down};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+bauhauschar("o",1x_width#,1x_height#,0,0); %"The letter o";
+ top y1=h ;
+ rt x2=wi ;
+ bot y3=0 ;
+ lft x4=0 ;
+ x1 = x3 = 0.5wi ;
+ y2 = y4 = 0.5h ;
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ penlabels(1,2,3,4);
+ o_pic := currentpicture;
+endchar ;
+
+bauhauschar("p",1x_width#,1x_height#,p_depth#,0); %"The letter p";
+ lft z1 = (0,-d) ;
+ lft z2 = (0,0.5h) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,0.5h) ;
+ bot z5 = (0.5wi,0) ;
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle ;
+ cutdraw z1{up}--z2{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+bauhauschar("q",1x_width#,1x_height#,p_depth#,0); %"The letter q";
+ rt z1 = (wi,-d) ;
+ lft z2 = (0,0.5h) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,0.5h) ;
+ bot z5 = (0.5wi,0) ;
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle ;
+ cutdraw z1{up}--z4{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+bauhauschar("r",3/5x_height#+f_space#,1x_height#,0,0); %"The letter r";
+ lft z1 = (0,0) ;
+ lft z2 = (0,h-wi);
+ top z4 = (wi,h) ;
+ lft z3 = lft z2 rotatedaround((x4,y2),-45);
+ cutdraw z1{up}--z2{up}..z3{(1,1)}..z4{right};
+ penlabels(1,2,3,4);
+endchar;
+
+bauhauschar("s",0.8x_width#,1x_height#,0,0); %"The letter s";
+ lft z1 = (0,0.5[y6,y2]) ;
+ bot z2 = (1/3wi,0) ;
+ bot z3 = (2/3wi,0) ;
+ rt z4 = (wi,0.5[y5,y3]) ;
+ z5 = (2/3wi,0.5h) ;
+ z6 = (1/3wi,0.5h) ;
+ lft z7 = (0,0.5[y8,y6]) ;
+ top z8 = (1/3wi,h);
+ top z9 = (2/3wi,h) ;
+ rt z10 = (wi,0.5[y8,y6]) ;
+ cutdraw z1{down}..z2{right}--z3{right}..z4{up}..
+ z5{left}--z6{left}..z7{up}..z8{right}--z9{right}..z10{down} ;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+bauhauschar("t",3/5x_height#+f_space#,1l_height#,0,0); %"The letter t";
+ z1 = (0.5wi,0);
+ z2 = (0.5wi,h);
+ cutdraw z1{up}--z2;
+ top z3 = (0,5/8h);
+ top z4 = (wi,5/8h);
+ cutdraw z3--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+bauhauschar("u",1x_width#,1x_height#,0,0); %"The letter u";
+ lft z1 = (0,h);
+ lft z2 = (0,0.4h) ;
+ bot z3 = (0.5wi,0) ;
+ rt z4 = (wi,0.4h) ;
+ rt z5 = (wi,h);
+ cutdraw z1{down}--z2{down}..z3{right}..z4{up}--z5{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+bauhauschar("v",1x_width#,1x_height#,0,0); %"The letter v";
+ lft z1 = (0,h);
+ bot z2 = (0.5wi-0.5p_thick,0.5p_thick);
+ bot z3 = (0.5wi,0);
+ bot z4 = (0.5wi+0.5p_thick,0.5p_thick);
+ rt z5 = (wi,h);
+ draw z1{down}--z2..z3..z4--z5{up};
+ cutoff(z1,90);
+ cutoff(z5,90);
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("w",1m_width#,1x_height#,0,0); %"The letter w";
+ lft z1 = (0,h) ;
+ lft z2 = (0,0.3h) ;
+ bot z3 = (0.5[x5,x1],0) ;
+ z4 = (0.5wi,0.3h+0.25p_thick) ;
+ z5 = (0.5wi,h) ;
+ bot z6 = (0.5[x8,x5],0) ;
+ rt z7 = (wi,0.3h) ;
+ rt z8 = (wi,h) ;
+ cutdraw z1{down}--z2..z3{right}..z4{up}--z5 ;
+ cutdraw z4{down}..z6{right}..z7--z8{down} ;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhauschar("x",1x_width#,1x_height#,0,0); %"The letter x";
+ top z1 = (0,h);
+ z2 = (0.5wi,0.5wi);
+ bot z3 = (0,0);
+ top z4 = (wi,h);
+ bot z5 = (wi,0);
+ cutdraw z1{right}..z2{down}..z3{left};
+ cutdraw z4{left}..z2{down}..z5{right};
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("y",1x_width#,1x_height#,p_depth#,0) ; %"The letter y" ;
+ rt z1 = (wi,-d) ;
+ lft z2 = (0,h) ;
+ rt z3 = (wi,h) ;
+ rt z4 = (wi,x5) ;
+ bot z5 = (0.5wi,0) ;
+ lft z6 = (0,x5) ;
+ cutdraw z1{up}--z3 ;
+ cutdraw z3{up}--z4..z5{left}..z6{up}--z2{up} ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+bauhauschar("z",1x_width#,1x_height#,0,0) ; %"The letter z" ;
+ top z1 = (0,h);
+ rt x2 = wi ; top y2 = h ;
+ rt x3 = wi ; top y3 = y2;
+ lft x4 = 0 ; bot y4 = y5 ;
+ lft x5 = 0 ; bot y5 = 0 ;
+ bot z6 = (wi,0);
+ cutdraw z1{right}--z2..z3--z4..z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+
+\endinput
+%%
+%% End of file `lowers.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal-punctuations.mf b/Master/texmf-dist/fonts/source/public/bayer/universal-punctuations.mf
new file mode 100644
index 00000000000..c27dc2ad722
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal-punctuations.mf
@@ -0,0 +1,301 @@
+%%
+%% This is file `punctuations.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `punctuations')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+bauhaussymb("!",p_thick#+f_space#,l_height#,0,0);
+ "The punctuation !";
+ lft bot z1 = (0,0);
+ lft z2 = (0,3y1);
+ lft z3 = (0,h);
+ drawdot z1;
+ cutdraw z2{up}--z3;
+ penlabels(1,2,3);
+endchar;
+
+bauhaussymb("(",.5x_width#,l_height#,p_depth#,0);
+ "The punctuation (";
+ rt z1 = (wi,h);
+ lft z3 = (0,.5(h-d));
+ rt z5 = (wi,-d);
+ draw z1..z3..z5;
+ cutoff(z1,90);
+ cutoff(z5,-90);
+ penlabels(1,3,5);
+endchar;
+
+bauhaussymb(")",.5x_width#,l_height#,p_depth#,0);
+ "The punctuation )";
+ lft z1 = (0,h);
+ rt z3 = (wi,.5(h-d));
+ lft z5 = (0,-d);
+ draw z1..z3..z5;
+ cutoff(z1,90);
+ cutoff(z5,-90);
+ penlabels(1,3,5);
+endchar;
+
+bauhaussymb(hex"22",3f_space#,l_height#,0,0);
+ "The punctuation ''";
+ lft z1 = (3p_thick,h);
+ lft z2 = (p_thick,h);
+ lft z3 = (2p_thick,h-3p_thick);
+ lft z4 = (0,h-3p_thick);
+ draw z1--z3;
+ draw z2--z4;
+ cutoff(z1,90);
+ cutoff(z2,90);
+ cutoff(z3,-90);
+ cutoff(z4,-90);
+ penlabels(1,2,3,4);
+endchar;
+
+bauhaussymb("#",A_width#,l_height#,0,0);
+ "The punctuation #";
+ lft top z1 = (0,3/4h);
+ lft bot z2 = (0,1/4h);
+ rt z3 = (wi,y1);
+ rt z4 = (wi,y2);
+ cutdraw z1{right}--z3{right};
+ cutdraw z2{right}--z4{right};
+ bot z5 = (1/5wi,0);
+ bot z6 = (3/5wi,0);
+ top z7 = (2/5wi,h);
+ top z8 = (4/5wi,h);
+ draw z5--z7;
+ draw z6--z8;
+ cutoff(z5,-90);
+ cutoff(z6,-90);
+ cutoff(z7,90);
+ cutoff(z8,90);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhaussymb("%",A_width#,l_height#,0,0);
+ "The punctuation %";
+ rt z1 = (wi,h);
+ lft z2 = (0,0);
+ draw z1--z2;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ top z3 = (1/4wi,h);
+ rt z4 = top z3 rotatedaround((x3,h-x3),-90);
+ bot z5 = top z3 rotatedaround((x3,h-x3),-180);
+ lft z6 = top z3 rotatedaround((x3,h-x3),-270);
+ draw z3{right}..z4{down}..z5{left}..z6{up}..cycle;
+ bot z7 = (3/4wi,0);
+ lft z8 = bot z7 rotatedaround((x7,x3),-90);
+ top z9 = bot z7 rotatedaround((x7,x3),-180);
+ rt z10 = bot z7 rotatedaround((x7,x3),-270);
+ draw z7{left}..z8{up}..z9{right}..z10{down}..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+bauhaussymb("'",2f_space#,l_height#,0,0);
+ "The punctuation '";
+ lft z1 = (p_thick,h);
+ lft z2 = (0,h-3p_thick);
+ draw z1--z2;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ penlabels(1,2);
+endchar;
+
+bauhaussymb("*",x_width#,l_height#,0,0);
+ "The punctuation *";
+ z1 = (0.5wi,h);
+ z2 = z1 rotatedaround((.5wi,h-.5wi),-60);
+ z3 = z1 rotatedaround((.5wi,h-.5wi),-120);
+ z4 = z1 rotatedaround((.5wi,h-.5wi),-180);
+ z5 = z1 rotatedaround((.5wi,h-.5wi),-240);
+ z6 = z1 rotatedaround((.5wi,h-.5wi),-300);
+ cutdraw z1--z4;
+ cutdraw z2--z5;
+ cutdraw z3--z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+bauhaussymb("+",x_width#,x_height#,0,0);
+ "The punctuation +";
+ z1 = (.5wi,h);
+ z2 = (.5wi,0);
+ z3 = (0,.5h);
+ z4 = (wi,.5h);
+ cutdraw z1{down}--z2;
+ cutdraw z3{right}--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+bauhaussymb(",",p_thick#+f_space#,p_thick#,2/3p_depth#,0);
+ "The punctuation ,";
+ lft bot z1 = (0,h);
+ lft top z2 = (0,-d);
+ cutdraw z1{down}--z2;
+ penlabels(1,2);
+endchar;
+
+bauhaussymb("-",.7x_width#,x_height#,0,0);
+ "The punctuation -";
+ z1 = (0,.5h);
+ z2 = (wi,y1);
+ cutdraw z1{right}--z2;
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(".",p_thick#+f_space#,p_thick#,0,0);
+ "The punctuation .";
+ lft bot z1 = (0,0);
+ drawdot z1;
+ penlabels(1);
+endchar;
+
+bauhaussymb("/",2/3x_width#,l_height#,p_depth#,0);
+ "The punctuation /";
+ lft z1 = (0,-d);
+ rt z2 = (wi,h);
+ draw z1--z2;
+ cutoff(z1,-90);
+ cutoff(z2,90);
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(":",p_thick#+f_space#,x_height#,0,0);
+ "The punctuation :";
+ top lft z1 = (0,h);
+ bot lft z2 = (0,0);
+ drawdot z1;
+ drawdot z2;
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(";",p_thick#+f_space#,x_height#,2/3p_depth#,0);
+ "The punctuation ;";
+ lft bot z1 = (0,0);
+ lft top z2 = (0,-d);
+ lft top z3 = (0,h);
+ cutdraw z1{down}--z2;
+ drawdot z3;
+ penlabels(1,2,3);
+endchar;
+
+bauhaussymb("=",.7x_width#,x_height#,0,0);
+ "The punctuation =";
+ top z1 = (0,1/3h);
+ z2 = (wi,y1);
+ cutdraw z1{right}--z2;
+ bot z3 = (0,2/3h);
+ z4 = (wi,y3);
+ cutdraw z3{right}--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+bauhaussymb("@",l_height#+f_space#,l_height#,0,0);
+ "The punctuation @";
+ rt z1 = (wi,0);
+ rt z2 = (wi,.5h);
+ top z3 = (.5wi,h);
+ lft z4 = (0,.5h);
+ z5 = z4 rotatedaround((.5wi,.5h),60);
+ rt z6 = (wi,1/3h);
+ top z7 = (wi-1/3h,2/3h);
+ lft z8 = (wi-2/3h,1/3h);
+ bot z9 = (wi-1/3h,0);
+ cutdraw z1{up}--z2{up}..z3{left}..z4{down}..z5{dir(-30)};
+ draw z6{up}..z7{left}..z8{down}..z9{right}..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+bauhaussymb("[",.7x_width#,l_height#,p_depth#,0);
+ "The punctuation [";
+ rt top z1 = (wi,h);
+ lft top z2 = (0,h);
+ lft bot z3 = (0,-d);
+ rt bot z4 = (wi,-d);
+ cutdraw z1{left}---z2{(-1,-1)}---z3{(1,-1)}---z4{right};
+ penlabels(1,2,3,4);
+endchar;
+
+bauhaussymb(hex"5C",3f_space#,l_height#,0,0);
+ "The punctuation ``";
+ lft z1 = (0,h);
+ lft z2 = (2p_thick,h);
+ lft z3 = (p_thick,h-3p_thick);
+ lft z4 = (3p_thick,h-3p_thick);
+ draw z1--z3;
+ draw z2--z4;
+ cutoff(z1,90);
+ cutoff(z2,90);
+ cutoff(z3,-90);
+ cutoff(z4,-90);
+ penlabels(1,2,3,4);
+endchar;
+
+bauhaussymb("]",.7x_width#,l_height#,p_depth#,0);
+ "The punctuation ]";
+ lft top z1 = (0,h);
+ rt top z2 = (wi,h);
+ rt bot z3 = (wi,-d);
+ lft bot z4 = (0,-d);
+ cutdraw z1{right}---z2{(1,-1)}---z3{(-1,-1)}---z4{left};
+ penlabels(1,2,3,4);
+endchar;
+
+bauhaussymb("`",2f_space#,l_height#,0,0);
+ "The punctuation `";
+ lft z1 = (0,h);
+ lft z2 = (p_thick,h-3p_thick);
+ draw z1--z2;
+ cutoff(z1,90);
+ cutoff(z2,-90);
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(hex"7B",x_width#,x_height#,0,0);
+ "The punctuation --";
+ z1 = (0,.5h);
+ z2 = (wi,y1);
+ cutdraw z1{right}--z2;
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(hex"7C",m_width#,x_height#,0,0);
+ "The punctuation ---";
+ z1 = (0,.5h);
+ z2 = (wi,y1);
+ cutdraw z1{right}--z2;
+ penlabels(1,2);
+endchar;
+
+
+\endinput
+%%
+%% End of file `punctuations.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal-specials.mf b/Master/texmf-dist/fonts/source/public/bayer/universal-specials.mf
new file mode 100644
index 00000000000..c5100202653
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal-specials.mf
@@ -0,0 +1,200 @@
+%%
+%% This is file `specials.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `specials')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+bauhaussymb(hex"0F",p_thick#+f_space#,l_height#,p_depth#,0);
+ "The symbol |";
+ lft z1 = (0,h);
+ lft z2 = (0,-d);
+ cutdraw z1{down}--z2{down};
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(hex"10",p_thick#+f_space#,x_height#,0,0);
+ "Dotless i";
+ lft z1 = (0,0);
+ lft z2 = (0,h);
+ cutdraw z1{up}--z2;
+ penlabels(1,2);
+endchar;
+
+bauhaussymb(hex"11",p_thick#+f_space#,x_height#,p_depth#,0);
+ "Dotless j";
+ lft z1 = (0,-d);
+ lft z2 = (0,h);
+ cutdraw z1{up}--z2;
+ penlabels(1,2);
+endchar;
+
+bauhaussymb("$",x_width#,l_height#,0,0);
+ "The symbol $";
+ lft z1 = (0,0.5[y6,y2]) ;
+ bot z2 = (1/3wi,1/8h) ;
+ bot z3 = (2/3wi,1/8h) ;
+ rt z4 = (wi,0.5[y5,y3]) ;
+ z5 = (2/3wi,0.5h) ;
+ z6 = (1/3wi,0.5h) ;
+ lft z7 = (0,0.5[y8,y6]) ;
+ top z8 = (1/3wi,7/8h);
+ top z9 = (2/3wi,7/8h) ;
+ rt z10 = (wi,0.5[y8,y6]) ;
+ z11 = (.5wi,0);
+ z12 = (.5wi,h);
+ cutdraw z1{down}..z2{right}--z3{right}..z4{up}..z5{left}--
+ z6{left}..z7{up}..z8{right}--z9{right}..z10{down};
+ cutdraw z11{up}--z12{up};
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+bauhaussymb("&",.5l_height#+2p_thick#+f_space#,l_height#,0,0);
+ "The symbol &";
+ top z1 = (3/8wi,h);
+ bot z6 = (x1,1/8h);
+ z3 = .5[z6,z1];
+ rt z2 = bot z3 rotatedaround(.5[z3,z1],90);
+ lft z4 = bot z3 rotatedaround(.5[z3,z1],-90);
+ rt z5 = top z3 rotatedaround(.5[z6,z3],-90);
+ lft z7 = top z3 rotatedaround(.5[z6,z3],90);
+ bot z8 = (wi,1/8h);
+ z9 = (x5,0);
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle;
+ cutdraw z8{left}---z6{left}..z7{up}..z3{right}..z5{down}---z9{down};
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+bauhaussymb("?",x_width#,l_height#,0,0);
+ "The symbol ?" ;
+ lft z1 = (0,h-.5wi);
+ top z2 = (.5wi,h);
+ rt z3 = (wi,y1);
+ z4 = (x2,h-wi);
+ bot z6 = (x2,0);
+ z5 = (x2,3y6);
+ draw z1{up}..z2{right}..z3{down}..z4{left}--z5{down};
+ cutoff(z1,-90);
+ cutoff(z5,-90);
+ drawdot z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+bauhaussymb(spanish_query,x_width#,x_height#,p_depth#,0);
+ "Spanish query";
+ lft z1 = (0,-d+.5wi);
+ bot z2 = (.5wi,-d);
+ rt z3 = (wi,y1);
+ z4 = (x2,-d+wi);
+ top z6 = (x2,h);
+ z5 = (x2,h-3*(h-y6));
+ draw z3{down}..z2{left}..z1{up}..z4{right}--z5{up};
+ cutoff(z3,90);
+ cutoff(z5,90);
+ drawdot z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+bauhaussymb(spanish_shriek,p_thick#+f_space#,x_height#,p_depth#,0);
+ "Spanish shriek";
+ lft top z1 = (0,h);
+ lft z2 = (0,h-3*(h-y1));
+ lft z3 = (0,-d);
+ drawdot z1;
+ cutdraw z2{down}--z3;
+ penlabels(1,2,3);
+endchar;
+
+bauhaussymb(hex"80",.7x_width#,l_height#,p_depth#,0);
+ "The symbol {";
+ top z1 = (wi,h);
+ top z2 = (1/2wi,h);
+ lft z3 = (1/4wi,h-1/2wi);
+ z4 = (x3,1/2(h-d));
+ z5 = (0,1/2(h-d));
+ z6 = (x3,1/2wi-d);
+ bot z7 = (x2,-d);
+ bot z8 = (wi,-d);
+ cutdraw z1{left}..z3{down}---z4{down}--z5{left};
+ cutdraw z4{down}---z6{down}..z8{right};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhaussymb(hex"81",.7x_width#,l_height#,p_depth#,0);
+ "The symbol }";
+ top z1 = (0,h);
+ top z2 = (1/2wi,h);
+ rt z3 = (3/4wi,h-1/2wi);
+ z4 = (x3,1/2(h-d));
+ z5 = (wi,1/2(h-d));
+ z6 = (x3,1/2wi-d);
+ bot z7 = (x2,-d);
+ bot z8 = (0,-d);
+ cutdraw z1{right}..z3{down}---z4{down}--z5{right};
+ cutdraw z4{down}---z6{down}..z8{left};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhaussymb(hex"82",.5l_height#+f_space#,l_height#,0,0);
+ "Paragraph sign";
+ lft z1 = (0,.5h);
+ top z2 = (.5wi,.5h+.5wi);
+ rt z3 = (wi,0.5h);
+ bot z4 = (.5wi,.5h-.5wi);
+ lft z5 = (0,h-.5wi);
+ top z6 = (.5wi,h);
+ z7 = z6 rotatedaround((.5wi,y5),-60);
+ rt z8 = (wi,.5wi);
+ bot z9 = (.5wi,0);
+ z10 = z9 rotatedaround((.5wi,y8),-60);
+ draw z10{dir(-60)}..z9{right}..z8{up}--z3{up};
+ draw z7{dir(120)}..z6{left}..z5{down}--z1{down};
+ draw z1{up}..z2{right}..z3{down}..z4{left}..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+ cutoff(z10,120);
+ cutoff(z7,-30);
+endchar;
+
+bauhaussymb(hex"83",A_width#,l_height#,0,0);
+ "variant letter Q";
+ rt z1 = (wi,0) ;
+ lft z2 = (0,h-.5wi) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,h-.5wi) ;
+ bot z5 = (0.5wi,h-wi) ;
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle ;
+ cutdraw z1{up}--z4{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+
+\endinput
+%%
+%% End of file `specials.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal-uppers.mf b/Master/texmf-dist/fonts/source/public/bayer/universal-uppers.mf
new file mode 100644
index 00000000000..224abfd7a1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal-uppers.mf
@@ -0,0 +1,335 @@
+%%
+%% This is file `uppers.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `uppers')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+bauhauschar("A",1A_width#,1l_height#,0,0); %"The letter A";
+ lft z1=(0,0);
+ lft z2=(0,h-0.5wi);
+ top z3=(0.5wi,h);
+ rt z4=(wi,y2);
+ rt z5=(wi,0);
+ lft z6=(0,0.5h);
+ rt z7=(wi,y6);
+ cutdraw z1{up}--z2{up}..z3{right}..z4{down}--z5{down};
+ cutdraw z6{right}--z7{right};
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+bauhauschar("B",1A_width#,1l_height#,0,0); %"The letter B";
+ lft bot z1 = (0,0);
+ lft top z2 = (0,h);
+ top z3 = (wi-0.25h,h);
+ rt z4 = (wi,0.75h);
+ z5 = (x3,0.5h);
+ z6 = (p_thick,0.5h);
+ rt z7 = (wi,0.25h);
+ bot z8 = (x3,0);
+ draw z1{(-1,1)}---z2{(1,1)}---z3{right}..z4{down}..z5{left}--z6{left};
+ draw z5{right}..z7{down}..z8{left}---z1{(-1,1)};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhauschar("C",C_width#+f_space#,l_height#,0,0);
+ rt z1 = bot z2 rotatedaround((0.5wi,0.5h),60);
+ bot z2 = (0.5wi,0);
+ lft z3 = (0,0.5h);
+ top z4 = (0.5wi,h);
+ rt z5 = top z4 rotatedaround((0.5wi,0.5h),-60);
+ cutdraw z1..z2{left}..z3{up}..z4{right}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("D",A_width#,l_height#,0,0);
+ lft bot z1 = (0,0);
+ lft top z2 = (0,h);
+ top z3 = (wi-.5h,h);
+ rt z4 = (wi,0.5h);
+ bot z5 = (x3,0);
+ draw z2{right}---z3{right}..z4{down}..z5{left}---z1{left}---z2{up};
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("E",A_width#,l_height#,0,0);
+ rt bot z1 = (wi,0);
+ lft bot z2 = (0,0);
+ lft top z3 = (0,h);
+ rt top z4 = (wi,h);
+ lft z5 = (0,0.5h);
+ rt z6 = (wi,0.5h);
+ cutdraw z1{left}---z2{(-1,1)}---z3{(1,1)}---z4{right};
+ cutdraw z5{left}--z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+bauhauschar("F",A_width#,l_height#,0,0);
+ lft bot z1 = (0,0);
+ lft top z2 = (0,h);
+ rt top z3 = (wi,h);
+ lft z4 = (0,0.5h);
+ rt z5 = (wi,0.5h);
+ cutdraw z1{up}---z2{(1,1)}---z3{right};
+ cutdraw z4{left}--z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("G",l_height#+f_space#,l_height#,0,0);
+ rt z1 = (wi,0.5h);
+ bot z2 = (0.5wi,0);
+ lft z3 = (0,0.5h);
+ top z4 = (0.5wi,h);
+ rt z5 = top z4 rotatedaround((0.5wi,0.5h),-60);
+ rt z6 = (wi,0);
+ cutdraw z1..z2{left}..z3{up}..z4{right}..z5;
+ cutdraw z1{down}--z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+bauhauschar("H",A_width#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,0.5h);
+ lft z3 = (0,h);
+ rt z4 = (wi,0);
+ rt z5 = (wi,0.5h);
+ rt z6 = (wi,h);
+ cutdraw z1{up}--z3{up};
+ cutdraw z4{up}--z6{up};
+ cutdraw z2{left}--z5{left};
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+bauhauschar("I",p_thick#+2f_space#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,h);
+ cutdraw z1{up}--z2{up};
+ penlabels(1,2);
+endchar;
+
+bauhauschar("J",.5x_width#,l_height#,0,0);
+ bot z1 = (0,0);
+ bot rt z2 = (wi,0);
+ rt z3 = (wi,h);
+ cutdraw z1{right}---z2{(1,1)}---z3{up};
+ penlabels(1,2,3);
+endchar;
+
+bauhauschar("K",0.5l_height#+2f_space#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,0.5h);
+ lft z3 = (0,h);
+ rt z4 = (wi,0);
+ rt z5 = (wi,h);
+ cutdraw z1{up}--z3{up};
+ cutdraw z2{right}..z4{down};
+ cutdraw z2{right}..z5{up};
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("L",A_width#,l_height#,0,0);
+ lft z1 = (0,h);
+ lft bot z2 = (0,0);
+ rt bot z3 = (wi,0);
+ cutdraw z1{down}---z2{(1,-1)}---z3{right};
+ penlabels(1,2,3);
+endchar;
+
+bauhauschar("M",M_width#,l_height#,0,0);
+ lft z1 = (0,0) ;
+ lft z2 = (0,0.7h) ;
+ top z3 = (0.5[x5,x1],h) ;
+ z4 = (0.5wi,0.7h-0.25p_thick) ;
+ z5 = (0.5wi,0) ;
+ top z6 = (0.5[x8,x5],h) ;
+ rt z7 = (wi,0.7h) ;
+ rt z8 = (wi,0) ;
+ cutdraw z1{up}--z2..z3{right}..z4{down}--z5 ;
+ cutdraw z4{up}..z6{right}..z7--z8{down} ;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhauschar("N",A_width#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,0.6h) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,0.6h) ;
+ rt z5 = (wi,0);
+ cutdraw z1{up}--z2{up}..z3{right}..z4{down}--z5{down};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+bauhauschar("O",l_height#+f_space#,l_height#,0,0);
+ top z1 = (.5wi,h) ;
+ rt z2 = (wi,.5h) ;
+ bot z3 = (.5wi,0) ;
+ lft z4 = (0,.5h) ;
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ penlabels(1,2,3,4);
+ O_pic = currentpicture;
+endchar ;
+
+bauhauschar("P",A_width#,l_height#,0,0);
+ lft z1 = (0,0) ;
+ lft z2 = (0,h-.5wi) ;
+ top z3 = (0.5wi,h) ;
+ rt z4 = (wi,h-.5wi) ;
+ bot z5 = (0.5wi,h-wi) ;
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle ;
+ cutdraw z1{up}--z2{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+bauhauschar("Q",l_height#+f_space#,l_height#,2/3p_depth#,0);
+ top z1 = (.5wi,h) ;
+ rt z2 = (wi,.5h) ;
+ bot z3 = (.5wi,0) ;
+ lft z4 = (0,.5h) ;
+ z5 = (.5wi,2d);
+ z6 = (.5wi,-d);
+ draw z1{right}..z2{down}..z3{left}..z4{up}..cycle ;
+ cutdraw z5{down}--z6;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+bauhauschar("R",A_width#,l_height#,0,0);
+ lft z1 = (0,0);
+ lft z2 = (0,h-.5wi);
+ top z3 = (.5wi,h);
+ rt z4 = (wi,h-.5wi);
+ bot z5 = (0.5wi,h-wi);
+ rt z6 = (wi,h-1.5wi);
+ rt z7 = (wi,0);
+ draw z2{up}..z3{right}..z4{down}..z5{left}..cycle;
+ cutdraw z1{up}--z2{up};
+ cutdraw z5{right}..z7{down};
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+bauhauschar("S",A_width#,l_height#,0,0); %
+ lft z1 = (0,0.5[y6,y2]) ;
+ bot z2 = (1/3wi,0) ;
+ bot z3 = (2/3wi,0) ;
+ rt z4 = (wi,0.5[y5,y3]) ;
+ z5 = (2/3wi,0.5h) ;
+ z6 = (1/3wi,0.5h) ;
+ lft z7 = (0,0.5[y8,y6]) ;
+ top z8 = (1/3wi,h);
+ top z9 = (2/3wi,h) ;
+ rt z10 = (wi,0.5[y8,y6]) ;
+ cutdraw z1{down}..z2{right}--z3{right}..z4{up}..z5{left}
+ --z6{left}..z7{up}..z8{right}--z9{right}..z10{down} ;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+bauhauschar("T",A_width#,l_height#,0,0);
+ top z1 = (0,h);
+ top z2 = (wi,h);
+ z3 = (.5wi,h);
+ z4 = (0.5wi,0);
+ cutdraw z1{right}--z2;
+ cutdraw z3{up}--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+bauhauschar("U",A_width#,l_height#,0,0);
+ lft z1 = (0,h);
+ lft z2 = (0,0.4h) ;
+ bot z3 = (0.5wi,0) ;
+ rt z4 = (wi,0.4h) ;
+ rt z5 = (wi,h);
+ cutdraw z1{down}--z2{down}..z3{right}..z4{up}--z5{up};
+ penlabels(1,2,3,4,5);
+endchar ;
+
+bauhauschar("V",A_width#,l_height#,0,0);
+ lft z1 = (0,h);
+ bot z2 = (0.5wi-0.5p_thick,0.5p_thick);
+ bot z3 = (0.5wi,0);
+ bot z4 = (0.5wi+0.5p_thick,0.5p_thick);
+ rt z5 = (wi,h);
+ draw z1{down}--z2..z3..z4--z5{up};
+ cutoff(z1,90);
+ cutoff(z5,90);
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("W",M_width#,l_height#,0,0);
+ lft z1 = (0,h) ;
+ lft z2 = (0,0.3h) ;
+ bot z3 = (0.5[x5,x1],0) ;
+ z4 = (0.5wi,0.3h+0.25p_thick) ;
+ z5 = (0.5wi,h) ;
+ bot z6 = (0.5[x8,x5],0) ;
+ rt z7 = (wi,0.3h) ;
+ rt z8 = (wi,h) ;
+ cutdraw z1{down}--z2..z3{right}..z4{up}--z5 ;
+ cutdraw z4{down}..z6{right}..z7--z8{down} ;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+bauhauschar("X",l_height#+f_space#,l_height#,0,0);
+ top z1 = (0,h);
+ z2 = (0.5wi,0.5wi);
+ bot z3 = (0,0);
+ top z4 = (wi,h);
+ bot z5 = (wi,0);
+ cutdraw z1{right}..z2{down}..z3{left};
+ cutdraw z4{left}..z2{down}..z5{right};
+ penlabels(1,2,3,4,5);
+endchar;
+
+bauhauschar("Y",A_width#,l_height#,0,0) ;
+ rt z1 = (wi,0) ;
+ lft z2 = (0,h) ;
+ rt z3 = (wi,h) ;
+ rt z4 = (wi,h-x5) ;
+ bot z5 = (0.5wi,h-wi) ;
+ lft z6 = (0,h-x5) ;
+ cutdraw z1{up}--z3 ;
+ cutdraw z3{up}--z4..z5{left}..z6{up}--z2{up} ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+bauhauschar("Z",A_width#,l_height#,0,0) ;
+ top z1 = (0,h);
+ rt x2 = wi ; top y2 = h ;
+ rt x3 = wi ; top y3 = y2;
+ lft x4 = 0 ; bot y4 = y5 ;
+ lft x5 = 0 ; bot y5 = 0 ;
+ bot z6 = (wi,0);
+ cutdraw z1{right}--z2..z3--z4..z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+endchar ;
+
+
+\endinput
+%%
+%% End of file `uppers.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal.mf b/Master/texmf-dist/fonts/source/public/bayer/universal.mf
new file mode 100644
index 00000000000..8cd9dcb8807
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal.mf
@@ -0,0 +1,131 @@
+%%
+%% This is file `universal.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `main')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+x_height# = 8u#; % height of lowercase without ascenders
+m_width# = 7/5x_height# ; % width of widest lowercase (1em)
+x_width# = x_height#+f_space#; % width of normal lowercase
+p_depth# = 3/5x_height# ; % depth of charactes accending baseline
+l_height# = 8/5x_height# ; % height of heighest characters
+p_thick# = 1/36x_height# ; % pen thickness
+f_space# = 2u#; % space added after fonts
+c_width# = 1x_width#-0.5x_width#*(1-cosd(35)); % width of "c"
+C_width# = l_height#-0.5l_height#*(1-cosd(35)); % width of "C"
+f_width# = 3/8l_height#+f_space#; % width of "f"
+A_width# = m_width# ; % width of normal upper case characters
+M_width# = 7/5A_width# ; % width of "M"
+define_pixels(u,m_width,x_width,x_height,p_depth,l_height,p_thick) ;
+define_pixels(f_space,A_width,C_width,M_width) ;
+define_corrected_pixels(p_depth) ;
+
+ligs:=2;
+font_coding_scheme:="TeX text";
+spanish_shriek:=oct"074";
+spanish_query:=oct"076";
+
+mode_setup;
+
+font_x_height 8u#;
+font_quad m_width#;
+font_normal_space 6u#+f_space#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4f_space#;
+font_extra_space 2u#;
+
+def makebox(text rule) = % macro for hardcopy proofs
+ rule((0,0)t_,(w,0)t_);
+ rule((0,0.01)t_,(w,0.01)t_);
+ for y=-d step u until h+u: % making addtional grid lines
+ rule((0,y)t_,(w,y)t_);
+ endfor % horizontals
+ for x=0 step u until w+u:
+ rule((x,-d)t_,(x,h)t_);
+ endfor % verticals
+enddef;
+
+def bauhauschar (expr name, width, height, depth, extra_width) =
+ beginchar(name,width,height,depth);
+ "The letter "&name;
+ pickup pencircle scaled p_thick ;
+ wi#:=width-f_space#+extra_width;
+ define_pixels(wi);
+ enddef;
+
+def bauhausnumb (expr name, width, height, depth, extra_width) =
+ beginchar(name,width,height,depth);
+ "The number "&name;
+ pickup pencircle scaled p_thick ;
+ wi#:=width-f_space#+extra_width;
+ define_pixels(wi);
+ enddef;
+
+def bauhaussymb (expr name, width, height, depth, extra_width) =
+ beginchar(name,width,height,depth);
+ pickup pencircle scaled p_thick ;
+ wi#:=width-f_space#+extra_width;
+ define_pixels(wi);
+ enddef;
+
+def bauhausextra (expr number, name) =
+ beginchar(number,l_height#+f_space#,l_height#,p_depth#);
+ "The bauhaus symbol "&name;
+ pickup pencircle scaled 1/10p_thick ;
+ wi#:=l_height#;
+ define_pixels(wi);
+ enddef;
+
+picture e_pic, a_pic, o_pic, O_pic; % any where
+
+input universal-uppers; % upper case (majuscules)
+input universal-lowers; % lower case (minuscules)
+input universal-digits; % numerals
+input universal-specials ; % special symbols
+input universal-ligatures; % ligaturres
+input universal-punctuations; % punctuation symbols
+input universal-accents; % accents
+input universal-extras; % bauhaus extras
+
+ligtable "u": "h" kern u#;
+ligtable "f": "f" kern 0 , "l" kern 0 , "i" kern 0;
+ligtable "o": "l" kern u#;
+ligtable "?": "`" =: spanish_query;
+ligtable "!": "`" =: spanish_shriek;
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+bye.
+
+\endinput
+%%
+%% End of file `universal.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal10.mf b/Master/texmf-dist/fonts/source/public/bayer/universal10.mf
new file mode 100644
index 00000000000..34e3fcb8d45
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal10.mf
@@ -0,0 +1,43 @@
+%%
+%% This is file `universal10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `ten')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+font_identifier:="universal"; % name of the font
+
+font_size 10pt#; % design size of font.
+u# = 20/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+
+\endinput
+%%
+%% End of file `universal10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal12.mf b/Master/texmf-dist/fonts/source/public/bayer/universal12.mf
new file mode 100644
index 00000000000..0579c8c3151
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal12.mf
@@ -0,0 +1,43 @@
+%%
+%% This is file `universal12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `twelve')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+font_identifier:="universal"; % name of the font
+
+font_size 12pt#; % design size of font.
+u# = 24/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+
+\endinput
+%%
+%% End of file `universal12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal17.mf b/Master/texmf-dist/fonts/source/public/bayer/universal17.mf
new file mode 100644
index 00000000000..88c5f20ecff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal17.mf
@@ -0,0 +1,43 @@
+%%
+%% This is file `universal17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `seventeen')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+font_identifier:="universal"; % name of the font
+
+font_size 17pt#; % design size of font.
+u# = 34/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+
+\endinput
+%%
+%% End of file `universal17.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal8.mf b/Master/texmf-dist/fonts/source/public/bayer/universal8.mf
new file mode 100644
index 00000000000..0b95cc8bc34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal8.mf
@@ -0,0 +1,43 @@
+%%
+%% This is file `universal8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `eight')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+font_identifier:="universal"; % name of the font
+
+font_size 8pt#; % design size of font.
+u# = 16/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+
+\endinput
+%%
+%% End of file `universal8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bayer/universal9.mf b/Master/texmf-dist/fonts/source/public/bayer/universal9.mf
new file mode 100644
index 00000000000..3e07f6bab22
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bayer/universal9.mf
@@ -0,0 +1,43 @@
+%%
+%% This is file `universal9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% universal.dtx (with options: `nine')
+%%
+%% Copyright (C) 1997 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (universal.dtx
+%% and universal.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this program; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file universal.dtx for further comments and documentation.
+%%
+font_identifier:="universal"; % name of the font
+
+font_size 9pt#; % design size of font.
+u# = 18/36pt#; % unit width (= 2/36*font_size)
+input universal % input driver file
+
+\endinput
+%%
+%% End of file `universal9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/bbding/bbding10.mf b/Master/texmf-dist/fonts/source/public/bbding/bbding10.mf
new file mode 100644
index 00000000000..5bfb102aeca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbding/bbding10.mf
@@ -0,0 +1,2628 @@
+%mode=localfont;
+mode_setup;
+u#:=1/10pt#; %.1mm#;
+define_pixels(u);
+%screenstrokes;
+%imagerules;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ dole u©¡znut‚ smˆ©uj¡c¡ doprava %%%%%%%%%%%
+beginchar(0,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u);
+z1=(13u,67u); z2=(2u,76u); z3=(13u,84u); z4=(24u,76u);
+z5=(13u,21u); z6=(2u,29u); z7=(13u,38u); z8=(24u,29u);
+z10=(24u,71u);
+z11=(23.5u,69u); z12=(26u,67u); z13=(35u,66u); z14=(110u,55u);
+z15=(104u,50u); z16=(100u,48u); z17=(95u,46.5u); z18=(90u,46u);
+z19=(39u,51u); z20=(38u,57u);
+z21=(35u,60u); z22=(29u,63u); z23=(20u,64.5u); z24=(13u,65u); z25=(u,u);
+z26=(13u,60u); z27=(u,u); z28=(u,u); z29=(u,u);
+z30=(13u,40u);
+z31=(20u,40.5u); z32=(27u,42u); z33=(33u,45u); z34=(37u,49.5u); z35=(60u,80u);
+z36=(73u,79u); z37=(44.5u,47u); z38=(39u,43u); z39=(33u,40.5u); z40=(28u,39.5u);
+z41=(24u,37u); z42=(24u,35u); z43=(25u,33u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z5{dir 180}..z6..z7..z8..{dir 180}z5;
+s5=reverse s0 reflectedabout(z100,z101);
+s6=reverse s1 reflectedabout(z100,z101);
+draw s5;
+draw s6;
+pickup pencircle scaled .4u;
+s2=(z24--z10..z11..z12..z13{z14-z13}--z14..z15..z16..z17..z18--z19
+..z20..z21..z22..z23..z24--cycle);
+s3=(z43--z30..z31..z32..z33..z34{z35-z34}--z35--z36--z37..z38..z39
+..z40..z41..z42..z43--cycle);
+s7=s2 reflectedabout(z100,z101);
+s8=s3 reflectedabout(z100,z101);
+fill s7;
+fill s8;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ kompletn¡ smˆ©uj¡c¡ doprava %%%%%%%%%%%%%%%
+beginchar(1,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u);
+z1=(13u,62u); z2=(2u,71u); z3=(13u,79u); z4=(24u,71u); z5=(u,u);
+z10=(24u,65u);
+z11=(23.5u,63.5u); z12=(26u,61.5u); z13=(30u,61u); z14=(35u,60.5u);
+z15=(45u,58u); z16=(110u,35u); z17=(108u,32u); z18=(105u,30u);
+z19=(101u,29u); z20=(96u,30u);
+z21=(40u,48u); z22=(37u,54u); z23=(32u,57u); z24=(25u,59u); z25=(20u,59.5u);
+z26=(13u,60u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=reverse s0 reflectedabout(z100,z101);
+draw s0;
+draw s1;
+pickup pencircle scaled .4u;
+s2=(z26--z10..z11..z12..z13..z14..{z16-z15}z15--z16..z17..z18..z19
+..z20--z21..z22..z23..z24..z25..z26--cycle);
+s3=s2 reflectedabout(z100,z101);
+fill s2;
+fill s3;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ naho©e u©¡znut‚ smˆ©uj¡c¡ doprava %%%%%%%%%
+beginchar(2,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u);
+z1=(13u,67u); z2=(2u,76u); z3=(13u,84u); z4=(24u,76u);
+z5=(13u,21u); z6=(2u,29u); z7=(13u,38u); z8=(24u,29u);
+z10=(24u,71u);
+z11=(23.5u,69u); z12=(26u,67u); z13=(35u,66u); z14=(110u,55u);
+z15=(104u,50u); z16=(100u,48u); z17=(95u,46.5u); z18=(90u,46u);
+z19=(39u,51u); z20=(38u,57u);
+z21=(35u,60u); z22=(29u,63u); z23=(20u,64.5u); z24=(13u,65u); z25=(u,u);
+z26=(13u,60u); z27=(u,u); z28=(u,u); z29=(u,u);
+z30=(13u,40u);
+z31=(20u,40.5u); z32=(27u,42u); z33=(33u,45u); z34=(37u,49.5u); z35=(60u,80u);
+z36=(73u,79u); z37=(44.5u,47u); z38=(39u,43u); z39=(33u,40.5u); z40=(28u,39.5u);
+z41=(24u,37u); z42=(24u,35u); z43=(25u,33u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z5{dir 180}..z6..z7..z8..{dir 180}z5;
+draw s0;
+draw s1;
+pickup pencircle scaled .4u;
+s2=(z24--z10..z11..z12..z13{z14-z13}--z14..z15..z16..z17..z18--z19
+..z20..z21..z22..z23..z24--cycle);
+fill s2;
+s3=(z43--z30..z31..z32..z33..z34{z35-z34}--z35--z36--z37..z38..z39
+..z40..z41..z42..z43--cycle);
+fill s3;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ dole u©¡znut‚ smˆ©uj¡c¡ doleva %%%%%%%%%%%%
+beginchar(3,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(13u,67u); z2=(2u,76u); z3=(13u,84u); z4=(24u,76u);
+z5=(13u,21u); z6=(2u,29u); z7=(13u,38u); z8=(24u,29u);
+z10=(24u,71u);
+z11=(23.5u,69u); z12=(26u,67u); z13=(35u,66u); z14=(110u,55u);
+z15=(104u,50u); z16=(100u,48u); z17=(95u,46.5u); z18=(90u,46u);
+z19=(39u,51u); z20=(38u,57u);
+z21=(35u,60u); z22=(29u,63u); z23=(20u,64.5u); z24=(13u,65u); z25=(u,u);
+z26=(13u,60u); z27=(u,u); z28=(u,u); z29=(u,u);
+z30=(13u,40u);
+z31=(20u,40.5u); z32=(27u,42u); z33=(33u,45u); z34=(37u,49.5u); z35=(60u,80u);
+z36=(73u,79u); z37=(44.5u,47u); z38=(39u,43u); z39=(33u,40.5u); z40=(28u,39.5u);
+z41=(24u,37u); z42=(24u,35u); z43=(25u,33u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z5{dir 180}..z6..z7..z8..{dir 180}z5;
+s5=reverse s0 reflectedabout(z100,z101);
+s6=reverse s1 reflectedabout(z100,z101);
+s11=reverse s5 reflectedabout(z102,z103);
+s12=reverse s6 reflectedabout(z102,z103);
+draw s11;
+draw s12;
+
+pickup pencircle scaled .4u;
+s2=(z24--z10..z11..z12..z13{z14-z13}--z14..z15..z16..z17..z18--z19
+..z20..z21..z22..z23..z24--cycle);
+s3=(z43--z30..z31..z32..z33..z34{z35-z34}--z35--z36--z37..z38..z39
+..z40..z41..z42..z43--cycle);
+s7=s2 reflectedabout(z100,z101);
+s8=s3 reflectedabout(z100,z101);
+s13=s7 reflectedabout(z102,z103);
+s14=s8 reflectedabout(z102,z103);
+fill s13;
+fill s14;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ kompletn¡ smˆ©uj¡c¡ doleva %%%%%%%%%%%%%%%%
+beginchar(4,110u#,100u#,0);
+path s[];
+
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(13u,62u); z2=(2u,71u); z3=(13u,79u); z4=(24u,71u); z5=(u,u);
+z10=(24u,65u);
+z11=(23.5u,63.5u); z12=(26u,61.5u); z13=(30u,61u); z14=(35u,60.5u);
+z15=(45u,58u); z16=(110u,35u); z17=(108u,32u); z18=(105u,30u);
+z19=(101u,29u); z20=(96u,30u);
+z21=(40u,48u); z22=(37u,54u); z23=(32u,57u); z24=(25u,59u); z25=(20u,59.5u);
+z26=(13u,60u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=reverse s0 reflectedabout(z100,z101);
+s11=reverse s0 reflectedabout(z102,z103);
+s12=reverse s1 reflectedabout(z102,z103);
+draw s11;
+draw s12;
+
+pickup pencircle scaled .4u;
+s2=(z26--z10..z11..z12..z13..z14..{z16-z15}z15--z16..z17..z18..z19
+..z20--z21..z22..z23..z24..z25..z26--cycle);
+s3=s2 reflectedabout(z100,z101);
+s13=reverse s2 reflectedabout(z102,z103);
+s14=reverse s3 reflectedabout(z102,z103);
+fill s13;
+fill s14;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ naho©e u©¡znut‚ smˆ©uj¡c¡ doleva %%%%%%%%%%
+beginchar(5,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(13u,67u); z2=(2u,76u); z3=(13u,84u); z4=(24u,76u);
+z5=(13u,21u); z6=(2u,29u); z7=(13u,38u); z8=(24u,29u);
+z10=(24u,71u);
+z11=(23.5u,69u); z12=(26u,67u); z13=(35u,66u); z14=(110u,55u);
+z15=(104u,50u); z16=(100u,48u); z17=(95u,46.5u); z18=(90u,46u);
+z19=(39u,51u); z20=(38u,57u);
+z21=(35u,60u); z22=(29u,63u); z23=(20u,64.5u); z24=(13u,65u); z25=(u,u);
+z26=(13u,60u); z27=(u,u); z28=(u,u); z29=(u,u);
+z30=(13u,40u);
+z31=(20u,40.5u); z32=(27u,42u); z33=(33u,45u); z34=(37u,49.5u); z35=(60u,80u);
+z36=(73u,79u); z37=(44.5u,47u); z38=(39u,43u); z39=(33u,40.5u); z40=(28u,39.5u);
+z41=(24u,37u); z42=(24u,35u); z43=(25u,33u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z5{dir 180}..z6..z7..z8..{dir 180}z5;
+%s5=reverse s0 reflectedabout(z100,z101);
+%s6=reverse s1 reflectedabout(z100,z101);
+s11=reverse s0 reflectedabout(z102,z103);
+s12=reverse s1 reflectedabout(z102,z103);
+draw s11;
+draw s12;
+
+pickup pencircle scaled .4u;
+s2=(z24--z10..z11..z12..z13{z14-z13}--z14..z15..z16..z17..z18--z19
+..z20..z21..z22..z23..z24--cycle);
+s3=(z43--z30..z31..z32..z33..z34{z35-z34}--z35--z36--z37..z38..z39
+..z40..z41..z42..z43--cycle);
+%s7=s2 reflectedabout(z100,z101);
+%s8=s3 reflectedabout(z100,z101);
+s13=s2 reflectedabout(z102,z103);
+s14=s3 reflectedabout(z102,z103);
+fill s13;
+fill s14;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky dut‚ velik‚ kompletn¡ smˆ©uj¡c¡ doprava %%%%%%%%
+beginchar(6,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(17u,67u); z2=(7u,75u); z3=(17u,83u); z4=(27u,75u);
+z5=(17u,60u); z6=(0u,75u); z7=(17u,90u); z8=(34u,75u);
+z9=(32.5u,68u); z10=(22u,60.5u);
+z11=(33u,67u); z12=(35u,66u); z13=(44u,66u); z14=(49u,68u);
+z15=(110u,10u); z16=(106u,7u); z17=(100u,5u); z18=(92u,6u);
+z19=(85u,10u); z20=(40u,50u); z21=(38u,56u); z22=(35u,59u);
+z23=(30u,60.5u); z24=(54.5u,50u);
+z25=(56u,62u); z26=(67u,51u); z27=(54u,38u); z28=(41u,49u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z10..z5..z6..z7..z8..z9;
+s2=(z9..z11..z12..z13..z14--z15..z16..z17..z18..z19
+--z20..z21..z22..z23..z10);
+s3=z25--z26;
+s30=z28--z27;
+s4=s2 reflectedabout(z100,z101);
+s5=reverse s0 reflectedabout(z100,z101);
+s6=reverse s1 reflectedabout(z100,z101);
+draw s0;
+draw s1;
+draw s2;
+pickup pencircle scaled 5u;
+erase draw s3;
+erase draw s30;
+pickup pencircle scaled 4u;
+draw s4;
+draw s5;
+draw s6;
+pickup pencircle scaled 3u;
+draw fullcircle scaled 9u shifted z24;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky dut‚ velik‚ kompletn¡ smˆ©uj¡c¡ doprava %%%%%%%%
+beginchar(7,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(17u,67u); z2=(7u,75u); z3=(17u,83u); z4=(27u,75u);
+z5=(17u,60u); z6=(0u,75u); z7=(17u,90u); z8=(34u,75u);
+z9=(32.5u,68u); z10=(22u,60.5u);
+z11=(33u,67u); z12=(35u,66u); z13=(44u,66u); z14=(49u,68u);
+z15=(110u,10u); z16=(106u,7u); z17=(100u,5u); z18=(92u,6u);
+z19=(85u,10u); z20=(40u,50u); z21=(38u,56u); z22=(35u,59u);
+z23=(30u,60.5u); z24=(54.5u,50u);
+z25=(56u,62u); z26=(67u,51u); z27=(54u,38u); z28=(41u,49u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z10..z5..z6..z7..z8..z9;
+s2=(z9..z11..z12..z13..z14--z15..z16..z17..z18..z19
+--z20..z21..z22..z23..z10);
+s3=z25--z26;
+s30=z28--z27;
+s4=s2 reflectedabout(z100,z101);
+s5=reverse s0 reflectedabout(z100,z101);
+s6=reverse s1 reflectedabout(z100,z101);
+
+s10=s0 reflectedabout(z102,z103);
+s11=s1 reflectedabout(z102,z103);
+s12=s2 reflectedabout(z102,z103);
+s13=s3 reflectedabout(z102,z103);
+s130=s30 reflectedabout(z102,z103);
+s14=s4 reflectedabout(z102,z103);
+s15=s5 reflectedabout(z102,z103);
+s16=s6 reflectedabout(z102,z103);
+
+draw s10;
+draw s11;
+draw s12;
+pickup pencircle scaled 5u;
+erase draw s13;
+erase draw s130;
+pickup pencircle scaled 4u;
+draw s14;
+draw s15;
+draw s16;
+pickup pencircle scaled 3u;
+draw fullcircle scaled 9u shifted z24 reflectedabout(z102,z103);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Telefon %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(8,100u#,100u#,0);
+path s[];
+z0=(55u,50u);
+z1=(50u,10u); z2=(21u,10u); z30=(20u,12u); z3=(20u,22u); z4=(21u,27u);
+z5=(30u,51u); z6=(32.5u,55u); z7=(35u,57u); z8=(40u,57u); z9=(50u,57u);
+z10=(50u,37u); z11=(50u,70u); z40=(47u,70u); z12=(40u,69.5u); z13=(31u,69u);
+z14=(28.5u,68u); z15=(27u,63u); z16=(27u,57u); z17=(26u,53.5u); z18=(23u,52u);
+z19=(9u,52u); z20=(6u,53.5u); z21=(5u,57u); z22=(5u,69u); z23=(7u,75u);
+z24=(12u,79u); z25=(30u,82.5u); z26=(47u,84u); z27=(50u,84u); z50=(16u,56u);
+
+pickup pencircle scaled 3u;
+s0=z1--z2..z30--z3..z4--z5..z6..z7--z25--z8--z9--z1--cycle;
+s1=z11--z12..z13..z14..{z16-z15}z15--z16..z17..z18--z19..z20..z21--z22..z23..z24..z25
+..z26--z27--z11--cycle;
+s2=z21..z50..z16;
+s5=s0 reflectedabout(z1,z27);
+s6=s1 reflectedabout(z1,z27);
+s7=s2 reflectedabout(z1,z27);
+fill s0;
+fill s1;
+fill s5;
+fill s6;
+erase draw s2;
+erase draw s7;
+pickup pencircle scaled 32 u;
+erase drawdot z10;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Sluch tko v kruhu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(9,100u#,100u#,0);
+path s[];
+z0=(50u,50u); z100=(0u,50u); z101=(100u,50u);
+z1=(46u,53u); z2=(37u,59u); z3=(48u,75u); z4=(55u,83u); z5=(60u,86u);
+z6=(64u,86.5u); z7=(67u,86u); z8=(76u,81u); z9=(77.5u,79u);
+z10=(77.5u,77u);
+z11=(76u,73u); z12=(72u,68u); z13=(70u,67.5u); z14=(68u,68u);
+z15=(64u,70u); z16=(61u,71u); z17=(58u,69u); z18=(52u,62u); z19=(72u,83.5u);
+z20=(67u,69u); z21=(72u,75u); z22=(75u,83u);
+z30=(30u,28u); z31=(24u,20u); z32=(33u,5u); z33=(50u,2u);
+z50=(16u,19u); z51=(2u,50u); z52=(50u,98u); z53=(98u,50u);
+
+pickup pencircle scaled 4u;
+s0=z1--z2..z3..z4..z5..z6..z7..z19..z8..z9..z10..z11..z12..z13..z14..z15..z16
+..z17..z18..z1--cycle;
+s1=z20..z21..z22;
+s2=z30..z31..z32..z33..z53..z52..z51..z50;
+s5=s0 reflectedabout(z1,z2);
+s6=reverse s1 reflectedabout(z1,z2);
+
+fill s0;
+fill s5;
+draw s2;
+pickup pencircle scaled 3u;
+erase draw s1;
+erase draw s6;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Magnetofonov  c¡vka %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(10,100u#,100u#,0);
+z0=(50u,50u); z1=(37.5u,50u); z2=(62.5u,50u); z3=(42.5u,98u); z4=(57.5u,98u);
+
+pickup pencircle scaled 4u;
+draw fullcircle scaled 96u shifted z0;
+fill (z2--z1--z3--z4--z2--cycle);
+fill (z2--z1--z3--z4--z2--cycle) rotatedaround(z0,120);
+fill (z2--z1--z3--z4--z2--cycle) rotatedaround(z0,240);
+erase draw fullcircle scaled 88u shifted z0;
+erase draw fullcircle scaled 34u shifted z0;
+pickup pencircle scaled 30u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Letadlo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(11,100u#,100u#,0);
+path s[];
+z0=(50u,50u); z100=(0u,50u); z101=(100u,50u);
+z1=(0u,50u); z2=(2u,51u); z3=(6u,52u); z4=(18u,53.5u); z5=(44u,56u);
+z6=(67u,57u); z7=(80u,57u); z8=(86u,56.5u); z9=(94u,55.5u); z10=(99u,53u);
+z11=(100u,50u); z12=(0u,70u); z13=(5u,70u); z14=(45u,58u);
+z15=(42u,71u); z16=(30u,100u); z17=(35u,100u); z18=(37u,99.5u);
+z19=(39u,98u); z20=(42u,90u); z21=(50u,90u); z22=(49u,75u); z23=(60.5u,75u);
+z25=(44u,55u); z26=(67u,56u); z33=(6u,51.5u); z34=(18u,53u);
+pickup pencircle scaled 6u;
+s0=z1..z2..z3..z4..z5..z6..z7..z8..z9..z10..z11--z1--cycle;
+s1=z33--z12--z13--z34..z33--cycle;
+s2=z25--z14--z15--z16--z17..z18..z19--z26..z25--cycle;
+s3=z20--z21;
+s4=z22--z23;
+s5=s0 reflectedabout(z100,z101);
+s6=s1 reflectedabout(z100,z101);
+s7=s2 reflectedabout(z100,z101);
+s8=s3 reflectedabout(z100,z101);
+s9=s4 reflectedabout(z100,z101);
+fill s0;
+fill s1;
+fill s2;
+draw s3;
+draw s4;
+draw s8;
+draw s9;
+fill s5;
+fill s6;
+fill s7;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Dopis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(12,75u#,100u#,0);
+z1=(0u,25u); z2=(0u,75u);
+z3=(75u,75u); z4=(75u,25u);
+z5=(37.5u,50u); z6=(37.5u,54u); z7=(37.5u,46u);
+
+pickup pencircle scaled 4u;
+draw z1--z2--z3--z4--z1;
+draw z1--z6--z4;
+draw z2--z7--z3;
+pickup pencircle scaled 18u;
+drawdot z5;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bodek =
+z0=(7u,7u+25u); z1=(5u,9u+25u); z2=(0u,27u+25u); z3=(7u,45u+25u);
+z4=(9u,47u+25u); z5=(15u,47u+25u); z6=(13u,45u+25u); z7=(6u,27u+25u);
+z8=(11u,9u+25u); z9=(13u,7u+25u);
+z11=(15u,12u+25u); z12=(11u,22u+25u); z13=(18u,42.5u+25u); z14=(25u,42u+25u);
+z15=(29u,44u+25u); z16=(37u,50u+25u); z17=(46u,53.5u+25u); z18=(60u,52.5u+25u);
+z19=(72u,50u+25u); z20=(81u,48u+25u); z21=(110u,34u+25u); z22=(98u,30u+25u);
+z23=(76u,35u+25u); z24=(70u,10u+25u); z25=(65u,1u+25u);
+z26=(50u,0u+25u); z27=(40u,2u+25u); z28=(30u,8u+25u); z29=(25u,10u+25u);
+z260=(60u,0u+25u); z270=(55u,0u+25u); z230=(72u,20u+25u); z240=(71u,6u+25u);
+z30=(72u,28u+25u); z31=(69u,16u+25u); z32=(65u,6.5u+25u);
+z50=(85u,47u+25u); z51=(100u,40.5u+25u); z52=(109u,35.5u+25u);
+z53=(107u,30u+25u); z54=(88u,33u+25u); z55=(85u,34u+25u);
+enddef;
+
+def rucka =
+pickup pencircle scaled .2u;
+fill (z0..z1..z2..z3..z4--z5..z6..z7..z8..z9--z0..cycle);
+fill (z11..z12..z13--z14..{z16-z15}z15..z16..{z18-z17}z17--z18{z18-z17}..z19
+--z20..z50--z51{z51-z50}..z52..z21..z53..z22..z54..z55--z23--z230--z24..z240
+..z25..z260--z270..z26..z27..z28..z29--z11--cycle);
+pickup pencircle scaled 16u;
+drawdot z30;
+pickup pencircle scaled 14u;
+drawdot z31;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Ruka ‡ern  ukazuj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(13,110u#,100u#,0);
+
+bodek;
+rucka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Ruka ‡ern  ukazuj¡c¡ doleva %%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(14,110u#,100u#,0);
+
+bodek;
+rucka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform rotated 30 shifted (37.5u,-15u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Ruka ‡ern  ukazuj¡c¡ ¨ikmo doprava nahoru %%%%%%%%%%%%
+beginchar(15,110u#,100u#,0); %95u#,0);
+
+bodek;
+rucka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Ruka ‡ern  ukazuj¡c¡ ¨ikmo doleva nahoru %%%%%%%%%%%%%
+beginchar(16,110u#,100u#,0); %95u#,0);
+
+bodek;
+rucka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-147.5u,15u)
+rotated -30;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def body =
+z0=(14u,11u+25u);
+z1=(0u,0u+25u); z2=(0u,48u+25u); z3=(10u,48u+25u); z300=(10u,44u+25u);z4=(10u,5u+25u);z5=(10u,0u+25u);
+z6=(20u,44u+25u); z7=(20u,40u+25u); z8=(20u,12u+25u); z9=(20u,5u+25u);
+z10=(25u,40u+25u); z11=(37u,48u+25u); z12=(45u,50u+25u); z13=(58u,50u+25u); z14=(64u,48u+25u);
+z15=(76u,35u+25u); z16=(70u,28u+25u); z17=(60u,31u+25u); z18=(54u,37u+25u); z19=(52u,42u+25u);
+z20=(48u,35u+25u); z100=(28u,41u+25u); z160=(76u,31u+25u);
+%z21=(98u,48u+25u); z22=(110u,42u+25u); z23=(98u,35u+25u);z250=(60u,18.5u+25u);
+z21=(80u,48u+25u); z22=(110u,42u+25u); z23=(80u,35u+25u);z250=(60u,18.5u+25u);
+z24=(81u,28u+25u); z240=(76u,22u+25u); z25=(70u,20u+25u); z26=(52u,20u+25u);
+z27=(50u,25u+25u); z28=(55u,30u+25u); z29=(40u,20u+25u); z30=(30u,25u+25u);
+z31=(79u,17u+25u); z32=(72u,10u+25u); z33=(50u,10u+25u); z34=(45u,15u+25u);
+z320=(60u,8u+25u);
+z35=(75u,6u+25u); z36=(70u,1.5u+25u); z37=(60u,0u+25u); z38=(50u,2u+25u); z39=(45u,7u+25u);
+z40=(40u,3u+25u); z41=(30u,10u+25u); z42=(25u,12u+25u);
+z51=(98u,47u+25u); z53=(98u,36u+25u);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ruka =
+pickup pencircle scaled 4u;
+fill z1--z2--z3--z5--cycle; % ruk v
+draw z300--z6--z9--z4; % ko¨ile
+draw (z7--z10{z10-z7}..z100--z11..{z13-z12}z12--z13{z13-z12}
+..z14--z15{z15-z14}..z160..z16..z16..z17..z18..z19); % palec 1
+draw z18..z20; % palec 2
+draw z14--z21..z51{z51-z21}..z22..{z23-z53}z53..z23--z15; % ukazov ‡ek
+draw (z15..z24..z240..z25..z250..z26..z27..z28..z17); % prost©edn¡‡ek
+draw z27..z29..z30; % b©¡¨ko
+draw (z240..z31..z32..z320..z33..z34..z26); %
+draw z32..z35..z36..z37..z38..z39..z33;
+draw z38..z40..z41..z42--z8;
+pickup pencircle scaled 5u;
+drawdot z0; % knofl¡k
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek ruky ukazuj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%
+beginchar(17,110u#,100u#,0);
+
+body;
+ruka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Obr zek ruky ukazuj¡c¡ doleva %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(18,110u#,100u#,0);
+
+body;
+ruka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform rotated 30 shifted (42.5u,-15u); %(27.5u,0u); % shifted (0u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek ruky ukazuj¡c¡ ¨ikmo doprava nahoru %%%%%%%%%%
+beginchar(19,110u#,100u#,0);
+
+body;
+ruka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek ruky ukazuj¡c¡ ¨ikmo doleva nahoru %%%%%%%%%%%
+beginchar(20,110u#,100u#,0);
+
+body;
+ruka;
+
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-152.5u,15u)
+rotated -30;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bodiky =
+z200=(1u,26u); z300=(10u,29u); z400=(15u,11u);z500=(15u,23u);z600=(19u,12u);
+z1=(25u,0u); z2=(0u,25u); z3=(8u,30u); z4=(20u,14u); z5=(10u,13u);
+z6=(4u,20u);
+z110=(24u,29u);
+z7=(8u,32u); z8=(8u,35.5u); z9=(14u,40u);
+z10=(18u,39u); z11=(20u,37u); z12=(27u,20u); z13=(25u,17u); z14=(20u,18u);
+z15=(30u,8u); z16=(40u,33u);
+z17=(27u,32u); z18=(22u,45u); z19=(29u,45u);
+z20=(43u,45u); % z100=(28u,41u); z160=(76u,31u);
+z21=(47u,44u); z22=(49u,40u); z23=(50u,25u);
+z24=(7u,72u); z25=(11u,80u); z26=(18u,76u);
+z27=(39u,75u); z28=(45u,80u); z29=(50u,73u);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Obr zek ruky ukazuj¡c¡ V %%%%%
+beginchar(21,50u#,80u#,0);
+bodiky;
+def vecko =
+pickup pencircle scaled 4u;
+draw z23..z1..z2;
+draw z2..z200..z3..z300..{z500-z300}z500{z4-z500}..z4..z600..z400..z5..z6;
+draw z300..z7..z8..tension 2 and 5..z9..z10..tension 1.5..z110..z12..z13..z14..z500;
+draw z15..z12..z16;
+draw z16..z17..z11..z18..z19..z20..z21..z22..z23;
+draw z11--z24..z25..z26--z19;
+draw z19--z27..z28..z29--z20;
+
+enddef;
+vecko;
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%%% Obr zek p¡¨¡c¡ ruky %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(22,106u#,100u#,0);
+
+z1=(1u,1u+12.5u); z2=(3u,6u+12.5u); z3=(4u,4u+12.5u); z4=(5.5u,3.5u+12.5u); z5=(6u,14u+12.5u);
+z6=(8u,9u+12.5u); z7=(13u,7u+12.5u); z8=(61u,73u+12.5u); z9=(67u,72u+12.5u); z10=(68u,66u+12.5u);
+
+z11=(25u,35u+12.5u); z12=(20u,24u+12.5u); z13=(11u,19u+12.5u); z14=(9u,21u+12.5u); z15=(8u,23u+12.5u);
+z16=(9u,23u+12.5u); z17=(14u,25u+12.5u); z18=(16u,30u+12.5u); z19=(13.5u,32u+12.5u); z20=(13u,34u+12.5u);
+z21=(19u,48u+12.5u); z22=(22u,52u+12.5u); z23=(40u,63u+12.5u); z24=(45u,63u+12.5u); z25=(82u,45u+12.5u);
+z26=(88u,43u+12.5u); z27=(93u,43u+12.5u); z28=(93u,46u+12.5u); z29=(102u,46u+12.5u); z30=(105u,30u+12.5u);
+z31=(100u,6u+12.5u); z32=(90u,6u+12.5u); z33=(90u,14u+12.5u); z34=(92u,15u+12.5u); z35=(95u,30u+12.5u);
+
+.z36=(86u,15u+12.5u); z37=(82u,12u+12.5u); z38=(77u,10u+12.5u); z39=(62u,10u+12.5u); z40=(50u,12u+12.5u);
+z41=(40u,11u+12.5u); z42=(32u,11u+12.5u); z43=(30u,12u+12.5u); z44=(29u,14u+12.5u); z45=(29u,17u+12.5u);
+z46=(28u,19u+12.5u); z47=(23u,18u+12.5u); z48=(21.5u,14u+12.5u); z49=(24u,11u+12.5u); z50=(18u,13u+12.5u);
+z51=(19.5u,20.5u+12.5u); z52=(30u,25.5u+12.5u); z53=(37u,25u+12.5u); z54=(39u,24u+12.5u); z55=(42u,27u+12.5u);
+z56=(51u,29u+12.5u); z57=(55u,34u+12.5u); z58=(47u,40u+12.5u); z59=(45u,42u+12.5u);
+z70=(29u,19u+12.5u); z71=(16u,20u+12.5u);
+z60=(39u,13u+12.5u); z61=(38u,17u+12.5u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+pickup pencircle scaled 3.5u;
+draw z5--z1--z7;
+fill (z1--z2..z3..z4--z1--cycle);
+draw z11..z12..z71..z13..z14..z16;
+draw z16..{z18-z17}z17--z18;
+pickup pencircle scaled 3u;
+draw z16..z19;
+pickup pencircle scaled 3.5u;
+draw z18..z19..z20--z21..z22--z23..z24..z25..z26--z27;
+draw z27--z28..z35..z32--z33;
+draw z28--z29..z30..z31--z32;
+filldraw (z5--z13..z71..z12..z11--z8..z9..z10--z52..tension 1.15 and .75..z51
+..tension .75 and .85..z50--z7..z6..z5--cycle);
+draw z34--z36{z36-z34}..z37..z38..z39..z40..z41..z42..z43..z44..z45..z70;
+draw z70..z46..z47..z48..z49--z43;
+draw z49..z50..z51..z52..z53..z54;
+draw z53..z55..z56--z57;
+draw z55--z58{z58-z55}..z59;
+draw z41..z60..z61;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bodicky=
+z1=(0u,38u); z2=(0u,62u); z3=(14u,75u); z4=(28u,62u); z5=(28u,38u);
+z6=(14u,25u); z7=(14u,50u); z8=(76u,25u); z9=(83u,38u); z10=(85u,50u);
+z11=(83u,62u); z12=(76u,75u); z13=(109u,50u); z14=(97u,41u); z15=(100u,50u);
+z16=(97u,59u); z71=(14u,40u); z72=(8u,50u); z73=(14u,60u); z74=(20u,50u);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def tuzka=
+pickup pencircle scaled 4u;
+draw z1--z2--z3--z4--z5--z6--z1--cycle;
+fill (z71{dir 180}..z72..z73..z74..{dir 180}z71..cycle);
+pickup pencircle scaled 4u;
+draw z3--z12;
+draw z4--z11;
+draw z5--z9;
+draw z6--z8;
+draw z8..z9..z10..z11..z12;
+draw z12--z13--z8;
+fill z14..z15..z16--z13--z14..cycle;
+enddef;
+
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%
+beginchar(23,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ doleva %%%%%%%%%%%%%%%%%%%%%%%
+beginchar(24,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform rotated 30 shifted (35u,-15u); %(42.5u,-15u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ ¨ikmo doprava nahoru %%%%%%%%%
+beginchar(25,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ ¨ikmo doleva nahoru %%%%%%%%%%
+beginchar(26,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted
+(-145u,15u) rotated -30; %(-152.5u,15u) rotated -30;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%vvvvvvv%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform rotated -30 shifted (-15u,30u);%(35u,-15u) %(42.5u,-15u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ ¨ikmo doprava dol– %%%%%%%%%%%
+beginchar(27,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ ¨ikmo doleva dol– %%%%%%%%%%%%
+beginchar(28,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted
+(-95u,-30u) rotated 30;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%VVVVVV%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Pero b¡l‚ smˆ©uj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(29,110u#,100u#,0);
+path s[];
+z1=(0u,50u); z2=(17u,67u); z3=(33u,67u); z4=(40u,60u); z5=(45u,67u);
+z6=(47u,75u); z7=(55u,80u); z8=(66u,78u); z9=(109u,50u); z10=(86u,65u);
+z11=(86u,50u); z12=(60u,50u); z20=(34.5u,63u);
+
+pickup pencircle scaled 4u;
+s1=z1..{z3-z2}z2--z3..z20..z4..z5..z6..z7..z8--z10--z9--z12;
+s2=z9--z10--z11--z9--cycle;
+draw s1;
+fill s2;
+s3=s1 reflectedabout(z1,z9);
+s4=s2 reflectedabout(z1,z9);
+draw s3;
+fill s4;
+pickup pencircle scaled 20u;
+draw z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Pero b¡l‚ smˆ©uj¡c¡ doleva %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(30,110u#,100u#,0);
+path s[];
+z1=(0u,50u); z2=(17u,67u); z3=(33u,67u); z4=(40u,60u); z5=(45u,67u);
+z6=(47u,75u); z7=(55u,80u); z8=(66u,78u); z9=(109u,50u); z10=(86u,65u);
+z11=(86u,50u); z12=(60u,50u); z20=(34.5u,63u);
+
+pickup pencircle scaled 4u;
+s1=z1..{z3-z2}z2--z3..z20..z4..z5..z6..z7..z8--z10--z9--z12;
+s2=z9--z10--z11--z9--cycle;
+draw s1;
+fill s2;
+s3=s1 reflectedabout(z1,z9);
+s4=s2 reflectedabout(z1,z9);
+draw s3;
+fill s4;
+pickup pencircle scaled 20u;
+draw z12;
+
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Pero ‡ern‚ smˆ©uj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(31,110u#,100u#,0);
+path s[];
+z1=(0u,50u); z2=(17u,67u); z3=(25u,67u); z4=(40u,57u); z5=(45u,67u);
+z6=(47u,75u); z7=(58u,85u); z8=(70u,80u); z9=(109u,50u); z10=(84u,64u);
+z11=(95u,56u); z12=(60u,50u); z20=(33u,61u); z21=(28u,66u);
+z22=(77u,72u); z23=(67u,50u); z24=(67u,53u); z25=(105u,50u);
+pickup pencircle scaled .2u;
+s1=z1..{z3-z2}z2--z3{z3-z2}..z21..z20..z4..z5..z6..z7..z8..z22..z10..z11..z9--z1--cycle;
+s2=z25--z24--z23--z25--cycle;
+fill s1;
+erase fill s2;
+s3=s1 reflectedabout(z1,z9);
+s4=s2 reflectedabout(z1,z9);
+fill s3;
+erase fill s4;
+pickup pencircle scaled 20u;
+erase draw z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Pero ‡ern‚ smˆ©uj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(32,110u#,100u#,0);
+path s[];
+z1=(0u,50u); z2=(17u,67u); z3=(25u,67u); z4=(40u,57u); z5=(45u,67u);
+z6=(47u,75u); z7=(58u,85u); z8=(70u,80u); z9=(109u,50u); z10=(84u,64u);
+z11=(95u,56u); z12=(60u,50u); z20=(33u,61u); z21=(28u,66u);
+z22=(77u,72u); z23=(67u,50u); z24=(67u,53u); z25=(105u,50u);
+pickup pencircle scaled .2u;
+s1=z1..{z3-z2}z2--z3..z21..z20..z4..z5..z6..z7..z8..z22..z10..z11..z9--z1--cycle;
+s2=z25--z24--z23--z25--cycle;
+fill s1;
+erase fill s2;
+s3=s1 reflectedabout(z1,z9);
+s4=s2 reflectedabout(z1,z9);
+fill s3;
+erase fill s4;
+pickup pencircle scaled 20u;
+erase draw z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Fajfka tenk  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(33,100u#,100u#,0);
+z0=(50u,50u); z1=(15u,35u); z2=(25u,7u); z3=(52u,50u); z4=(90u,97u);
+z10=(18u,25u); z20=(25.5u,4.5u);
+%pickup pencircle scaled 17.5 u;
+pickup pencircle xscaled 17.5u yscaled 10u rotated 30;
+draw z1..z10..z2;
+pickup pencircle xscaled 10u yscaled 3 u;
+draw (z20..z3..z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Fajfka tu‡n  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(34,100u#,100u#,0);
+z0=(50u,50u); z1=(15u,50u); z2=(18u,20u); z3=(55u,50u); z4=(90u,90u);
+z10=(15u,45u); z20=(19.5u,20u); z21=(25u,25u); z40=(87.5u,88u);
+pickup pencircle xscaled 27.5u yscaled 17.5u rotated 45;
+draw z1..z10..z2;
+pickup pencircle xscaled 18.5u yscaled 7.5u rotated 270;
+draw (z20..z21..z40..z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ pooto‡en˜ o 45 st. tenk˜ %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(35,100u#,100u#,0);
+z0=(50u,50u); z1=(7.5u,7.5u); z2=(7.5u,92.5u); z3=(92.5u,92.5u);
+z4=(92.5u,7.5u);
+
+pickup pensquare scaled 10 u rotated 45;
+draw z1--z3;
+draw z2--z4;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ pooto‡en˜ o 45 st. tu‡n˜ %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(36,100u#,100u#,0);
+z0=(50u,50u); z1=(22.5u,22.5u); z2=(22.5u,77.5u); z3=(77.5u,77.5u);
+z4=(77.5u,22.5u);
+
+pickup pensquare scaled 30 u rotated 45;
+draw z1--z3;
+draw z2--z4;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tenk˜ sklonˆn˜ o 45 st. psac¡ %%%%%%%%%%%%%%%%%%%
+beginchar(37,100u#,100u#,0);
+z0=(50u,50u); z1=(40u,85u); z2=(75u,35u); z3=(45u,50u); z4=(90u,92.5u);
+z10=(52u,65u); z20=(15u,8u);
+
+pickup pencircle xscaled 10u yscaled 20u rotated 350;
+draw z1..z10..z2;
+pickup pencircle xscaled 20u yscaled 10 u rotated 15;
+draw (z20..z3..z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ trojit˜ tu‡n˜ symetrick˜ %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(38,100u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(50u,85u); z2=(50u,15u);
+z3=(15u,50u); z4=(85u,50u);
+
+pickup pensquare scaled 30u;
+draw (z1--z2);
+pickup pensquare scaled 30u;
+draw (z3--z4);
+
+pickup pensquare scaled 22u;
+erase draw (z1--z2);
+pickup pensquare scaled 22u;
+erase draw (z3--z4);
+
+pickup pensquare scaled 14u;
+draw (z1--z2);
+pickup pensquare scaled 14u;
+draw (z3--z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tu‡n˜ symetrick˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(39,100u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(50u,83.5u); z2=(50u,16.5u);
+z3=(16.5u,50u); z4=(83.5u,50u);
+
+pickup pensquare scaled 33u;
+draw (z1--z2);
+pickup pensquare scaled 33u;
+draw (z3--z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tu‡n˜ symetrick˜ s pr zdn˜m st©edem %%%%%%%%%%%%%
+beginchar(40,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,83.5u); z2=(50u,16.5u);
+z3=(16.5u,50u); z4=(83.5u,50u);
+
+pickup pensquare scaled 33u;
+draw (z1--z2);
+pickup pensquare scaled 33u;
+draw (z3--z4);
+erase draw z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tenk˜ symetrick˜ s pr zdn˜m st©edem %%%%%%%%%%%%%
+beginchar(41,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,93u); z2=(50u,7u);
+z3=(7u,50u); z4=(93u,50u);
+
+pickup pensquare scaled 14u;
+draw (z1--z2);
+pickup pensquare scaled 14u;
+draw (z3--z4);
+erase draw z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tenk˜ nesymetrick˜ pln˜ %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(42,66u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(33u,89u); z2=(33u,11u); z3=(11u,66u); z4=(55u,66u);
+z5=(33u,91u); z6=(33u,9u); z7=(9u,66u); z8=(57u,66u);
+z11=(33u,93u); z12=(33u,7u); z13=(7u,66u); z14=(59u,66u);
+
+pickup pensquare scaled 14u;
+draw (z11--z12);
+pickup pensquare scaled 14u;
+draw (z13--z14);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tenk˜ nesymetrick˜ se st¡nem vpravo %%%%%%%%%%%%%
+beginchar(43,75u#,100u#,0);
+z10=(0u,0u);
+z11=(42u,91u); z12=(33.5u,9u); z13=(66u,66u); z14=(9u,57u);
+z0=(33u,50u);
+z1=(33u,91u); z2=(33u,18u);
+z3=(9u,66u); z4=(57u,66u);
+pickup pensquare scaled 13u rotatedaround (z10,45);
+draw z11; draw z12; draw z13; draw z14;
+pickup pensquare scaled 18u;
+draw (z1--z2) shifted (9u,-9u);
+pickup pensquare scaled 18u;
+draw (z3--z4) shifted (9u,-9u);
+pickup pensquare scaled 18u;
+draw (z1--z2);
+pickup pensquare scaled 18u;
+draw (z3--z4);
+pickup pensquare scaled 10u;
+erase draw (z1--z2);
+pickup pensquare scaled 10u;
+erase draw (z3--z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ trojit˜ tu‡n˜ nesymetrick˜ %%%%%%%%%%%%%%%%%%%%%%
+beginchar(44,66u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(33u,85u); z2=(33u,15u);
+z3=(15u,66u); z4=(51u,66u);
+
+pickup pensquare scaled 30u;
+draw (z1--z2);
+pickup pensquare scaled 30u;
+draw (z3--z4);
+
+pickup pensquare scaled 22u;
+erase draw (z1--z2);
+pickup pensquare scaled 22u;
+erase draw (z3--z4);
+
+pickup pensquare scaled 14u;
+draw (z1--z2);
+pickup pensquare scaled 14u;
+draw (z3--z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ trojit˜ tu‡n˜ nesymetrick˜ - varianta %%%%%%%%%%%
+beginchar(45,66u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(33u,85u); z2=(33u,15u); z3=(15u,66u); z4=(51u,66u);
+z5=(33u,89u); z6=(33u,11u); z7=(11u,66u); z8=(55u,66u);
+z11=(33u,93u); z12=(33u,7u); z13=(7u,66u); z14=(59u,66u);
+
+pickup pensquare scaled 30u;
+draw (z1--z2);
+pickup pensquare scaled 30u;
+draw (z3--z4);
+
+pickup pensquare scaled 22u;
+erase draw (z5--z6);
+pickup pensquare scaled 22u;
+erase draw (z7--z8);
+
+pickup pensquare scaled 14u;
+draw (z11--z12);
+pickup pensquare scaled 14u;
+draw (z13--z14);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Malt‚zsk˜ k©¡‘ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(46,100u#,100u#,0);
+z0=(50u,50u); z1=(48u,50u); z2=(48u,60u); z3=(20u,88u); z4=(20u,90u);
+z5=(80u,90u); z6=(80u,88u); z7=(52u,60u); z8=(52u,50u);
+def malt = (z1--z2{z2-z1}..z3--z4--z5--z6..{z8-z7}z7--z8--z1--cycle)
+enddef;
+pickup pencircle scaled 4u;
+fill malt;
+fill malt rotatedaround(z0,90);
+fill malt rotatedaround(z0,180);
+fill malt rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda Davidova ‡ern  %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(47,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,60);
+z3=z1 rotatedaround(z0,120);
+z4=z1 rotatedaround(z0,180);
+z5=z1 rotatedaround(z0,240);
+z6=z1 rotatedaround(z0,300);
+
+pickup pencircle scaled 2u;
+fill z1--z3--z5--z1--cycle;
+fill z2--z4--z6--z2--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda Davidova b¡l  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(48,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,60);
+z3=z1 rotatedaround(z0,120);
+z4=z1 rotatedaround(z0,180);
+z5=z1 rotatedaround(z0,240);
+z6=z1 rotatedaround(z0,300);
+
+pickup pencircle scaled 4u;
+draw z1--z3--z5--z1--cycle;
+draw z2--z4--z6--z2--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%% XXXXXXXXXXXXXXXXXXXXXXX %%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek pln˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(49,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(43u,93u); z3=(47u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(53u,70u); z9=(57u,93u);
+
+def rameno =(z6--z5..z4..z3..z2..z1..z9..z8..z7..z6--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+filldraw rameno;
+filldraw rameno rotatedaround(z0,90);
+filldraw rameno rotatedaround(z0,180);
+filldraw rameno rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek pln˜ s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%%
+beginchar(50,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(38u,86u); z3=(48u,70u); z4=(49.25u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(50.75u,60u); z8=(52u,70u); z9=(62u,86u);
+%z2=(43u,93u); z3=(47u,70u); z4=(49u,60u); z5=(49.75u,50u);
+%z6=(50.25u,50u); z7=(51u,60u); z8=(53u,70u); z9=(57u,93u);
+
+def rameno =(z6--z5..z4{z4-z5}..z3..z2..z1..z9..z8..{z6-z7}z7..z6--cycle)
+enddef;
+pickup pencircle scaled .3 u;
+filldraw rameno;
+filldraw rameno rotatedaround(z0,90);
+filldraw rameno rotatedaround(z0,180);
+filldraw rameno rotatedaround(z0,270);
+pickup pencircle scaled 12 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek pln˜ tu‡n˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(51,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,99u);
+z2=(34u,78u); z3=(48u,59u); z4=(49.25u,55u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(50.75u,55u); z8=(52u,59u); z9=(66u,78u);
+
+def rameno =(z6--z5..z4{z4-z5}..z3..z2..z1..z9..z8..{z6-z7}z7..z6--cycle)
+enddef;
+pickup pencircle scaled 2 u;
+filldraw rameno;
+filldraw rameno rotatedaround(z0,90);
+filldraw rameno rotatedaround(z0,180);
+filldraw rameno rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©n sobn˜ trojl¡stek na k©¡‘i %%%%%%%%%%%%%%%%%%%%%%
+beginchar(52,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,92u); z2=(50u,8u);
+z3=(42u,80u); z4=(58u,80u);
+
+pickup pencircle scaled 4 u;
+draw (z1--z2);
+draw (z1--z2) rotatedaround(z0,90);
+pickup pencircle scaled 16 u;
+drawdot z1;
+drawdot z3;
+drawdot z4;
+drawdot z1 rotatedaround(z0,90);
+drawdot z3 rotatedaround(z0,90);
+drawdot z4 rotatedaround(z0,90);
+drawdot z1 rotatedaround(z0,180);
+drawdot z3 rotatedaround(z0,180);
+drawdot z4 rotatedaround(z0,180);
+drawdot z1 rotatedaround(z0,270);
+drawdot z3 rotatedaround(z0,270);
+drawdot z4 rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Koso‡tverec vydut˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(53,100u#,100u#,0);
+z0=(50u,50u);
+z1=(-5u,-5u); z2=(105u,-5u); z3=(50u,100u); z4=(-5u,105u); z5=(105u,105u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 2u;
+fill (z6--z8--z3--z7--z6--cycle);
+pickup pencircle scaled 109.5u;
+erase drawdot z1;
+erase drawdot z2;
+erase drawdot z4;
+erase drawdot z5;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Koso‡tverec vydut˜ s b¡lou hvˆzdou uvnit© %%%%%%%%%%%%
+beginchar(54,100u#,100u#,0);
+z0=(50u,50u);
+z1=(-5u,-5u); z2=(105u,-5u); z3=(50u,100u); z4=(-5u,105u); z5=(105u,105u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+z9=(50u,90u); z10=(50u,62u); z30=(50u,74u);
+
+z11=z10 rotatedaround(z0,45);
+z12=z10 rotatedaround(z0,315);
+z13=z10 rotatedaround(z0,135);
+z14=z10 rotatedaround(z0,225);
+
+z15=z9 rotatedaround(z0,90);
+z16=z9 rotatedaround(z0,180);
+z17=z9 rotatedaround(z0,270);
+
+z20=z30 rotatedaround(z0,7.5);
+z21=z30 rotatedaround(z0,82.5);
+z22=z30 rotatedaround(z0,97.5);
+z23=z30 rotatedaround(z0,172.5);
+z24=z30 rotatedaround(z0,187.5);
+z25=z30 rotatedaround(z0,262.5);
+z26=z30 rotatedaround(z0,277.5);
+z27=z30 rotatedaround(z0,352.5);
+
+pickup pencircle scaled 2u;
+fill (z6--z8--z3--z7--z6--cycle);
+erase fill (z9--z20--z11--z21--z15--z22--z13--z23--z16--z24--z14
+--z25--z17--z26--z12--z27--z9--cycle);
+pickup pencircle scaled 109.5u;
+erase drawdot z1;
+erase drawdot z2;
+erase drawdot z4;
+erase drawdot z5;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  b¡l  - pentagram %%%%%%%%%%%%%%%%%
+beginchar(55,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u); z6=(50u,0u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+draw z1--z3--z5--z2--z4--z1--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  ‡ern  %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(56,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(57,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,90u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  b¡l  v ‡ern‚m kruhu %%%%%%%%%%%%%%
+beginchar(58,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 100u;
+drawdot z0;
+pickup pencircle scaled 4u;
+erase fill z1--z3--z5--z2--z4--z1--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  ‡ern  s pr zdn˜m st©edem %%%%%%%%%
+beginchar(59,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+pickup pencircle scaled 36u;
+erase drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  s ‡ern˜m st©edem %%%%%%%%%%%%%%%%%%%%%
+beginchar(60,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,90u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+pickup pencircle scaled 34u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  trojit  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(61,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,90u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+z11=(50u,80u);
+z12=z11 rotatedaround(z0,72);
+z13=z11 rotatedaround(z0,144);
+z14=z11 rotatedaround(z0,216);
+z15=z11 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+fill z11--z13--z15--z12--z14--z11--cycle;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  trojit  tu‡n  %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(62,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,85u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+z11=(50u,70u);
+z12=z11 rotatedaround(z0,72);
+z13=z11 rotatedaround(z0,144);
+z14=z11 rotatedaround(z0,216);
+z15=z11 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+fill z11--z13--z15--z12--z14--z11--cycle;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  se st¡novan˜mi rameny %%%%%%%%%%%%%%%%
+beginchar(63,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,98u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,68u);
+z7=z6 rotatedaround(z0,36);
+z8=z6 rotatedaround(z0,108);
+z9=z6 rotatedaround(z0,180);
+z10=z6 rotatedaround(z0,252);
+z11=z6 rotatedaround(z0,324);
+
+pickup pencircle scaled 4u;
+draw z1--z7--z2--z8--z3--z9--z4--z10--z5--z11--z1--cycle;
+pickup pencircle scaled .1u;
+filldraw (z0--z11--z1--cycle);
+filldraw (z0--z11--z1--cycle) rotatedaround (z0,72);
+filldraw (z0--z11--z1--cycle) rotatedaround (z0,144);
+filldraw (z0--z11--z1--cycle) rotatedaround (z0,216);
+filldraw (z0--z11--z1--cycle) rotatedaround (z0,288);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  se st¡nem vpravo %%%%%%%%%%%%%%%%%%%%%
+beginchar(64,110u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,90u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+z20=z1 shifted (3.8u,0u);
+z21=z4 shifted (3.8u,0u);
+z22=z5 shifted (4.8u,0u);
+z23=z3 shifted (4.8u,0u);
+
+pickup pencircle xscaled 8u yscaled 0u;
+draw z20--z21;
+pickup pencircle xscaled 10u yscaled 0u;
+draw z22--z23;
+
+pickup pencircle scaled 2u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzdice ¨estic¡p  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(65,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,100u); z6=(50u,0u);
+
+pickup pencircle xscaled 20u yscaled 0u;
+draw (z1--z6);
+pickup pencircle xscaled 20u yscaled 0u rotatedaround (z10,60);
+draw (z1--z6) rotatedaround (z0,60);
+pickup pencircle xscaled 20u yscaled 0u rotatedaround (z10,120);
+draw (z1--z6) rotatedaround (z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzdice ¨estic¡p  s pr zdn˜m st©edem %%%%%%%%%%%%%%%%
+beginchar(66,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,100u); z2=(50u,64u);
+z3=(50u,36u); z4=(50u,0u);
+
+pickup pencircle xscaled 15u yscaled 0u;
+draw (z1--z2);
+draw (z3--z4);
+pickup pencircle xscaled 15u yscaled 0u rotatedaround (z10,60);
+draw (z1--z2) rotatedaround (z0,60);
+draw (z3--z4) rotatedaround (z0,60);
+pickup pencircle xscaled 15u yscaled 0u rotatedaround (z10,120);
+draw (z1--z2) rotatedaround (z0,120);
+draw (z3--z4) rotatedaround (z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzdice ¨estic¡p  tenk  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(67,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,100u); z2=(50u,64u);
+z3=(50u,36u); z4=(50u,0u);
+
+pickup pencircle xscaled 4u yscaled 0u;
+draw (z1--z4);
+pickup pencircle xscaled 4u yscaled 0u rotatedaround (z10,60);
+draw (z1--z4) rotatedaround (z0,60);
+pickup pencircle xscaled 4u yscaled 0u rotatedaround (z10,120);
+draw (z1--z4) rotatedaround (z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzdice ¨estic¡p  tenk  s pr zdn˜m st©edem %%%%%%%%%%
+beginchar(68,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,100u); z2=(50u,64u);
+z3=(50u,36u); z4=(50u,0u);
+
+pickup pencircle xscaled 4u yscaled 0u;
+draw (z1--z2);
+draw (z3--z4);
+pickup pencircle xscaled 4u yscaled 0u rotatedaround (z10,60);
+draw (z1--z2) rotatedaround (z0,60);
+draw (z3--z4) rotatedaround (z0,60);
+pickup pencircle xscaled 4u yscaled 0u rotatedaround (z10,120);
+draw (z1--z2) rotatedaround (z0,120);
+draw (z3--z4) rotatedaround (z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Za‡ tek obr zk– se spr vn˜mi ‡arami
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Osmic¡p  hvˆzda pln  tenk  %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(69,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(45u,50u); z3=(55u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,45);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,90);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,135);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,225);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,270);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,315);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmic¡p  hvˆzda pln  tenk  %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(70,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(46u,50u); z3=(54u,50u); z4=(58u,68u);
+z5=(42u,68u); z40=(57u,67u); z50=(43u,67u);
+
+pickup pencircle scaled 4 u;
+fill (z1--z0--z4--z1--cycle);
+draw (z50--z1--z40);
+
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,45);
+draw (z50--z1--z40) rotatedaround(z0,45);
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,90);
+draw (z50--z1--z40) rotatedaround(z0,90);
+
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,135);
+draw (z50--z1--z40) rotatedaround(z0,135);
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,180);
+draw (z50--z1--z40) rotatedaround(z0,180);
+
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,225);
+draw (z50--z1--z40) rotatedaround(z0,225);
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,270);
+draw (z50--z1--z40) rotatedaround(z0,270);
+
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,315);
+draw (z50--z1--z40) rotatedaround(z0,315);
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estic¡p  hvˆzda pln  st©edn¡ %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(71,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(40u,50u); z3=(60u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,60);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,120);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,240);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,300);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmic¡p  hvˆzda pln  st©edn¡ %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(72,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(40u,50u); z3=(60u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,45);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,90);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,135);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,225);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,270);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,315);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmic¡p  hvˆzda pln  tu‡n  %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(73,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(32u,50u); z3=(68u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,45);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,90);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,135);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,225);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,270);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,315);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Dvan ctic¡p  hvˆzda pln  st©edn¡ %%%%%%%%%%%%%%%%%%%%%
+beginchar(74,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(35u,50u); z3=(65u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,30);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,60);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,90);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,120);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,150);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,210);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,240);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,270);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,300);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,330);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estn ctic¡p  hvˆzda pln  st©edn¡ %%%%%%%%%%%%%%%%%%%%
+beginchar(75,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(48u,50u); z3=(52u,50u); z4=(52u,100u);
+z5=(48u,100u);
+
+pickup pencircle scaled .33;
+fill (z2--z3--z4--z5--z2--cycle);
+
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,22.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,45);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,67.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,90);
+
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,112.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,135);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,157.5);
+fill (z2--z3--z4--z5--z2--z2--cycle) rotatedaround(z0,180);
+
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,202.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,225);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,247.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,270);
+
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,292.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,315);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,337.5);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(76,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(44u,96u); z3=(45u,82u); z4=(50u,66u);
+z5=(56u,96u); z6=(55u,82u);
+pickup pencircle scaled .33 u;
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,60);
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,120);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,180);
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,240);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,300);
+
+pickup pencircle scaled 26 u;
+drawdot z0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek s dut˜m st©edem %%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(77,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(44u,96u); z3=(45u,82u); z4=(50u,56u);
+z5=(56u,96u); z6=(55u,82u);
+pickup pencircle scaled .33 u;
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,60);
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,120);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,180);
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,240);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,300);
+
+pickup pencircle scaled 32 u;
+drawdot z0;
+pickup pencircle scaled 24 u;
+erase drawdot z0;
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek pln˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(78,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(43u,93u); z3=(47u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(53u,70u); z9=(57u,93u);
+
+def rameno =(z6--z5..z4..z3..z2..z1..z9..z8..z7..z6--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+filldraw rameno;
+filldraw rameno rotatedaround(z0,60);
+filldraw rameno rotatedaround(z0,120);
+filldraw rameno rotatedaround(z0,180);
+filldraw rameno rotatedaround(z0,240);
+filldraw rameno rotatedaround(z0,300);
+pickup pencircle scaled 9 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek st©¡davˆ pln˜ a dut˜ %%%%%%%%%%%%%%%%%%%%%
+beginchar(79,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(42u,91u); z3=(44u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,70u); z9=(58u,91u);
+
+def ramenko =(z0--z3{z3-z0}..z2..{z1-z2}z1{z9-z1}..z9..{z0-z8}z8--z0--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+draw ramenko;
+
+filldraw ramenko rotatedaround(z0,60);
+draw ramenko rotatedaround(z0,120);
+filldraw ramenko rotatedaround(z0,180);
+draw ramenko rotatedaround(z0,240);
+filldraw ramenko rotatedaround(z0,300);
+pickup pencircle scaled 12 u;
+drawdot z0;
+pickup pencircle scaled 9 u;
+erase drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Pˆtil¡stek tu‡n˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(80,100u#,100u#,0);
+z0=(50u,47u); z1=(50u,80.75u);
+
+pickup pencircle scaled 38.5 u;
+drawdot z1;
+drawdot z1 rotatedaround(z0,72);
+drawdot z1 rotatedaround(z0,144);
+drawdot z1 rotatedaround(z0,216);
+drawdot z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 40 u;
+drawdot z0;
+pickup pencircle scaled 32 u;
+erase drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek dut˜ s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%
+beginchar(81,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(36.5u,88u); z3=(40.5u,70u); z4=(63.5u,88u); z5=(59.5u,70u);
+z6=(50u,92u); z7=(38u,80u); z8=(62u,80u);
+z9=(40u,70u); z10=(60u,70u);
+
+def rameniko =(z0--z3{z3-z0}..z2..z1..z4..{z0-z5}z5--z0--cycle)
+enddef;
+def ramenicko =(z0..{z9-z0}z9..z7..z6..z8..{z0-z10}z10..z0--cycle)
+enddef;
+pickup pencircle scaled 6 u;
+filldraw rameniko;
+erase fill rameniko;
+filldraw rameniko rotatedaround(z0,60);
+erase fill rameniko rotatedaround(z0,60);
+filldraw rameniko rotatedaround(z0,120);
+erase fill rameniko rotatedaround(z0,120);
+filldraw rameniko rotatedaround(z0,180);
+erase fill rameniko rotatedaround(z0,180);
+filldraw rameniko rotatedaround(z0,240);
+erase fill rameniko rotatedaround(z0,240);
+filldraw rameniko rotatedaround(z0,300);
+erase fill rameniko rotatedaround(z0,300);
+pickup pencircle scaled 38 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Pˆtil¡stek dut˜ s pln˜m st©edem s tykadly %%%%%%%%%%%%
+beginchar(82,100u#,100u#,0);
+z0=(50u,47u); z1=(50u,98u);
+z2=(34u,84u); z3=(38.5u,68u); z4=(66u,84u); z5=(61.5u,68u);
+z6=(50u,93u); z7=(35u,80u); z8=(65u,80u);
+z9=(37.5u,67.5u); z10=(62.5u,67.5u);
+z11=(47u,47u); z12=(53u,47u); z13=(50u,78u);
+def rameniko =(z0--z3{z3-z0}..z2..z1..z4..{z0-z5}z5--z0--cycle)
+enddef;
+def ramenicko =(z0..{z9-z0}z9..z7..z6..z8..{z0-z10}z10..z0--cycle)
+enddef;
+def carecka =(z12--z11--z13--z12--cycle)
+enddef;
+pickup pencircle scaled 6 u;
+filldraw rameniko;
+erase fill ramenicko;
+filldraw carecka;
+filldraw rameniko rotatedaround(z0,72);
+erase fill ramenicko rotatedaround(z0,72);
+filldraw carecka rotatedaround(z0,72);
+filldraw rameniko rotatedaround(z0,144);
+erase fill ramenicko rotatedaround(z0,144);
+filldraw carecka rotatedaround(z0,144);
+filldraw rameniko rotatedaround(z0,216);
+erase fill ramenicko rotatedaround(z0,216);
+filldraw carecka rotatedaround(z0,216);
+filldraw rameniko rotatedaround(z0,288);
+erase fill ramenicko rotatedaround(z0,288);
+filldraw carecka rotatedaround(z0,288);
+pickup pencircle scaled 38 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmil¡stek s obrysem s dut˜m st©edem %%%%%%%%%%%%%%%%%
+beginchar(83,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u); z8=(50u,90u);
+z2=(50u,82u); z3=(50u,80u);
+z4=z2 rotatedaround(z0,22.5);
+z5=z2 rotatedaround(z0,337.5);
+z6=z3 rotatedaround(z0,12.5);
+z7=z3 rotatedaround(z0,347.5);
+def rameniciko =(z0--z4{z4-z0}..z1..{z0-z5}z5--z0--cycle)
+enddef;
+def ramenicicko =(z0--z6{z6-z0}..z8..{z0-z7}z7--z0--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+draw rameniciko;
+fill ramenicicko;
+draw rameniciko rotatedaround(z0,45);
+fill ramenicicko rotatedaround(z0,45);
+draw rameniciko rotatedaround(z0,90);
+fill ramenicicko rotatedaround(z0,90);
+draw rameniciko rotatedaround(z0,135);
+fill ramenicicko rotatedaround(z0,135);
+draw rameniciko rotatedaround(z0,180);
+fill ramenicicko rotatedaround(z0,180);
+draw rameniciko rotatedaround(z0,225);
+fill ramenicicko rotatedaround(z0,225);
+draw rameniciko rotatedaround(z0,270);
+fill ramenicicko rotatedaround(z0,270);
+draw rameniciko rotatedaround(z0,315);
+fill ramenicicko rotatedaround(z0,315);
+
+pickup pencircle scaled 32 u;
+drawdot z0;
+pickup pencircle scaled 24 u;
+erase drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ern˜ kruh s osmic¡pou hvˆzdou uvnit© s kru‘nic¡ %%%%%
+beginchar(84,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,99u);
+z2=z1 rotatedaround(z0,45);
+z3=z1 rotatedaround(z0,90);
+z4=z1 rotatedaround(z0,135);
+z5=z1 rotatedaround(z0,180);
+z6=z1 rotatedaround(z0,225);
+z7=z1 rotatedaround(z0,270);
+z8=z1 rotatedaround(z0,315);
+
+pickup pencircle scaled 100 u;
+drawdot z0;
+pickup pencircle scaled 4 u;
+erase fill z1--z4--z7--z2--z5--z8--z3--z6--z1--cycle;
+draw fullcircle scaled 50u shifted z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek s listy nap–l pln˜mi a dut˜mi %%%%%%%%%%%%
+beginchar(85,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(42u,91u); z3=(44u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,70u); z9=(58u,91u);
+
+def ramenko =(z0--z3{z3-z0}..z2..{z1-z2}z1{z9-z1}..z9..{z0-z8}z8--z0--cycle)
+enddef;
+def ramendo =(z0--z1{z9-z1}..z9..{z0-z8}z8--z0--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+draw ramenko;
+fill ramendo;
+draw ramenko rotatedaround(z0,60);
+fill ramendo rotatedaround(z0,60);
+draw ramenko rotatedaround(z0,120);
+fill ramendo rotatedaround(z0,120);
+draw ramenko rotatedaround(z0,180);
+fill ramendo rotatedaround(z0,180);
+draw ramenko rotatedaround(z0,240);
+fill ramendo rotatedaround(z0,240);
+draw ramenko rotatedaround(z0,300);
+fill ramendo rotatedaround(z0,300);
+pickup pencircle scaled 12 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek dut˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(86,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(50u,90u); z3=(50u,75u);
+%z4=z1 rotatedaround (z0,22.5);
+%z5=z1 rotatedaround (z0,337.5);
+%z6=z3 rotatedaround (z0,45);
+%z7=z3 rotatedaround (z0,315);
+z4=z1 rotatedaround (z0,20);
+z5=z1 rotatedaround (z0,340);
+z6=z3 rotatedaround (z0,40);
+z7=z3 rotatedaround (z0,320);
+
+def listek = (z0--z6{z6-z0}..z4..z2&z2..z5..{z0-z7}z7--z0--cycle)
+rotatedaround(z0,45)
+enddef;
+pickup pencircle scaled 4 u;
+draw listek;
+
+draw listek rotatedaround(z0,90);
+draw listek rotatedaround(z0,180);
+draw listek rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek pln˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(87,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,101u); z2=(50u,90u); z3=(50u,75u);
+z4=z1 rotatedaround (z0,20);
+z5=z1 rotatedaround (z0,340);
+z6=z3 rotatedaround (z0,40);
+z7=z3 rotatedaround (z0,320);
+
+def listek = (z0--z6{z6-z0}..z4..z2&z2..z5..{z0-z7}z7--z0--cycle)
+rotatedaround(z0,45)
+enddef;
+pickup pencircle scaled 1 u;
+filldraw listek;
+
+filldraw listek rotatedaround(z0,90);
+filldraw listek rotatedaround(z0,180);
+filldraw listek rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estiramenn  kole‡ka %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(88,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,85u); z2=(50u,15u); z3=(50u,75u);
+
+pickup pencircle scaled 4 u;
+draw z1--z2;
+draw (z1--z2) rotatedaround(z0,60);
+draw (z1--z2) rotatedaround(z0,120);
+pickup pencircle scaled 30 u;
+drawdot z1;
+drawdot z2;
+drawdot z1 rotatedaround(z0,60);
+drawdot z2 rotatedaround(z0,60);
+drawdot z1 rotatedaround(z0,120);
+drawdot z2 rotatedaround(z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmil¡stek s pln˜m st©edem a kr tk˜mi l¡stky %%%%%%%%%
+beginchar(89,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(45u,96u); z3=(46u,82u); z4=(50u,66u);
+z5=(55u,96u); z6=(54u,82u);
+
+def list = (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle)
+enddef;
+pickup pencircle scaled .33 u;
+fill list;
+fill list rotatedaround(z0,45);
+fill list rotatedaround(z0,90);
+fill list rotatedaround(z0,135);
+fill list rotatedaround(z0,180);
+fill list rotatedaround(z0,225);
+fill list rotatedaround(z0,270);
+fill list rotatedaround(z0,315);
+
+pickup pencircle scaled 24 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmil¡stek s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(90,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(43u,96u); z3=(44u,78u); z4=(50u,50u);
+z5=(57u,96u); z6=(56u,78u); %z4=(50u,66u);
+def list = (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle)
+enddef;
+pickup pencircle scaled .33 u;
+fill list;
+fill list rotatedaround(z0,45);
+fill list rotatedaround(z0,90);
+fill list rotatedaround(z0,135);
+fill list rotatedaround(z0,180);
+fill list rotatedaround(z0,225);
+fill list rotatedaround(z0,270);
+fill list rotatedaround(z0,315);
+
+pickup pencircle scaled 20 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Pˆtil¡stek dut˜ s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%%
+beginchar(91,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(42u,91u); z3=(44u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,70u); z9=(58u,91u);
+z10=(50u,65u);
+def ramenko=(z10--z3{z3-z10}..z2..{z1-z2}z1{z9-z1}..z9..{z10-z8}z8--z10--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+draw ramenko;
+draw ramenko rotatedaround(z0,60);
+draw ramenko rotatedaround(z0,120);
+draw ramenko rotatedaround(z0,180);
+draw ramenko rotatedaround(z0,240);
+draw ramenko rotatedaround(z0,300);
+pickup pencircle scaled 20 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek s pln˜m st©edem a s k©¡‘kem %%%%%%%%%%%%%%%
+beginchar(92,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u);
+z2=(42u,97u); z3=(44u,68u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,68u); z9=(58u,97u);
+z10=(50u,60u); z11=(10u,90u); z12=(38u,62u);
+def ramenko=(z10..z3{z3-z10}..z2..{z1-z2}z1{z9-z1}..z9..{z10-z8}z8..z10--cycle)
+enddef;
+
+pickup pensquare scaled 4 u rotated 45;
+fill ramenko;
+draw (z11--z12);
+fill ramenko rotatedaround(z0,90);
+draw (z11--z12) rotatedaround(z0,90);
+fill ramenko rotatedaround(z0,180);
+draw (z11--z12) rotatedaround(z0,180);
+fill ramenko rotatedaround(z0,270);
+draw (z11--z12) rotatedaround(z0,270);
+pickup pencircle scaled 20 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek s pln˜m st©edem a s k©¡‘kem %%%%%%%%%%%%%%%
+beginchar(93,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u);
+z2=(42u,96u); z3=(44u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,70u); z9=(58u,96u);
+z10=(50u,60u); z11=(10u,90u); z12=(38u,62u);
+def ramenko=(z10..{z3-z10}z3..z2{z2-z3}..{z1-z2}z1{z9-z1}..{z8-z9}z9..z8{z10-z8}..z10&z10..cycle)
+enddef;
+
+pickup pensquare scaled 4 u rotated 45;
+fill ramenko;
+draw (z11--z12);
+fill ramenko rotatedaround(z0,90);
+draw (z11--z12) rotatedaround(z0,90);
+fill ramenko rotatedaround(z0,180);
+draw (z11--z12) rotatedaround(z0,180);
+fill ramenko rotatedaround(z0,270);
+draw (z11--z12) rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estiramenn  vlo‡ka %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(94,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98.5u); z2=(50u,1.5u);
+z3=(50u,80u); z4=(35u,92.5u); z5=(65u,92.5u);
+z6=(50u,20u); z7=(35u,7.5u); z8=(65u,7.5u);
+
+pickup pencircle scaled 4 u;
+draw z1--z2;
+draw (z1--z2) rotatedaround(z0,60);
+draw (z1--z2) rotatedaround(z0,120);
+draw z4--z3--z5;
+draw z7--z6--z8;
+draw (z4--z3--z5) rotatedaround(z0,60);
+draw (z7--z6--z8) rotatedaround(z0,60);
+draw (z4--z3--z5) rotatedaround(z0,120);
+draw (z7--z6--z8) rotatedaround(z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estiramenn  vlo‡ka s tlust˜mi vedlej¨¡mi ram¡nky %%%%
+beginchar(95,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(50u,0u);
+z3=(50u,80u); z4=(35u,92.5u); z5=(65u,92.5u);
+z6=(50u,20u); z7=(35u,7.5u); z8=(65u,7.5u);
+
+pickup pencircle scaled 4 u;
+draw z1--z2;
+draw (z1--z2) rotatedaround(z0,60);
+draw (z1--z2) rotatedaround(z0,120);
+pickup pencircle scaled 10 u;
+draw z4--z3--z5;
+draw z7--z6--z8;
+draw (z4--z3--z5) rotatedaround(z0,60);
+draw (z7--z6--z8) rotatedaround(z0,60);
+draw (z4--z3--z5) rotatedaround(z0,120);
+draw (z7--z6--z8) rotatedaround(z0,120);
+pickup pencircle scaled 8 u;
+erase draw fullcircle scaled 104 u shifted z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estiramenn  vlo‡ka s vnit©n¡m ¨esti£heln¡kem %%%%%%%%
+beginchar(96,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(50u,0u);
+z3=(50u,95u);
+z4=z3 rotatedaround(z0,30);
+z5=z3 rotatedaround(z0,90);
+z6=z3 rotatedaround(z0,150);
+z7=z3 rotatedaround(z0,210);
+z8=z3 rotatedaround(z0,270);
+z9=z3 rotatedaround(z0,330);
+
+z10=(50u,75u);
+z11=z10 rotatedaround(z0,60);
+z12=z10 rotatedaround(z0,120);
+z13=z10 rotatedaround(z0,180);
+z14=z10 rotatedaround(z0,240);
+z15=z10 rotatedaround(z0,300);
+
+pickup pencircle scaled 8 u;
+draw z1--z2;
+draw (z1--z2) rotatedaround(z0,60);
+draw (z1--z2) rotatedaround(z0,120);
+pickup pencircle scaled 4 u;
+draw (z11--z4--z10--z9--z15);
+draw (z11--z4--z10--z9--z15--z8) rotatedaround(z0,120);
+draw (z11--z4--z10--z9--z15--z8) rotatedaround(z0,240);
+pickup pencircle scaled 8 u;
+erase draw fullcircle scaled 104 u shifted z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% konec obr zk– se spr vn˜mi ‡arami
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Kruh ‡ern˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(97,100u#,100u#,0);
+
+z1=(50u,50u);
+pickup pencircle scaled 100u;
+drawdot z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Elipsa %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(98,100u#,100u#,0);
+
+z1=(50u,50u);
+pickup pencircle scaled 4u;
+draw fullcircle xscaled 98u yscaled 60u shifted z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Elipsa pln  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(99,100u#,100u#,0);
+
+z1=(50u,50u);
+pickup pencircle scaled 2u;
+fill fullcircle xscaled 100u yscaled 60u shifted z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Kruh se st¡nem vpravo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(100,110u#,100u#,0);
+
+z1=(50u,50u);
+z2=(55u,50u);
+
+pickup pencircle xscaled 110u yscaled 100u;
+drawdot z2;
+pickup pencircle scaled 99u;
+erase drawdot z1;
+pickup pencircle scaled 4u;
+draw fullcircle scaled 96u shifted z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Elipsa se st¡nem vpravo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(101,110u#,100u#,0);
+
+z1=(50u,50u); z2=(55u,50u);
+pickup pencircle scaled 4u;
+fill fullcircle xscaled 110u yscaled 62u shifted z2;
+erase fill fullcircle xscaled 92u yscaled 54u shifted z1;
+%draw fullcircle xscaled 92u yscaled 54u shifted z1;
+%erase fill fullcircle xscaled 96u yscaled 58u shifted z1;
+%draw fullcircle xscaled 96u yscaled 58u shifted z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(102,100u#,100u#,0);
+
+z1=(50u,50u);
+
+pickup pensquare scaled 100u;
+draw z1;
+pickup pensquare scaled 92u;
+erase draw z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec ‡ern˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(103,100u#,100u#,0);
+
+z1=(50u,50u);
+
+pickup pensquare scaled 100u;
+draw z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se ‡tercov˜m st¡nem vpravo dole %%%%%%%%%%%%%%
+beginchar(104,100u#,100u#,0);
+
+z1=(58u,42u);
+z2=(42u,58u);
+z3=(0u,16u); z4=(0u,100u);z5=(84u,100u); z6=(84u,16u);
+
+pickup pensquare scaled 84u;
+draw z1;
+draw z2;
+pickup pensquare scaled 76u;
+erase draw z2;
+endchar;
+%%%%%%%%%%%%%%%%%%% €tverec se ‡tvercov˜m st¡nem vpravo naho©e %%%%%%%
+beginchar(105,100u#,100u#,0);
+
+z1=(58u,58u);
+z2=(42u,42u);
+z3=(0u,0u); z4=(0u,84u); z5=(84u,84u); z6=(84u,0u);
+
+pickup pensquare scaled 84u;
+draw z1;
+draw z2;
+pickup pensquare scaled 76u;
+erase draw z2;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se ‡tvercov˜m st¡nem vlevo naho©e %%%%%%%%
+beginchar(106,100u#,100u#,0);
+
+z1=(58u,42u);
+z2=(42u,58u);
+z3=(16u,0u); z4=(16u,84u);z5=(100u,84u); z6=(100u,0u);
+
+pickup pensquare scaled 84u;
+draw z2;
+draw z1;
+pickup pensquare scaled 76u;
+erase draw z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se zkosen˜m st¡nem vpravo dole %%%%%%%%%%%
+beginchar(107,100u#,100u#,0);
+
+z1=(58u,42u);
+z2=(42u,58u);
+z3=(0u,16u); z4=(0u,100u);z5=(84u,100u); z6=(84u,16u);
+z7=(16u,0u); z8=(16u,84u); z9=(100u,84u); z10=(100u,0u);
+
+pickup pensquare scaled 84u;
+draw z1;
+pickup pencircle scaled 4u;
+fill z3--z5--z9--z7--z3--cycle;
+pickup pensquare scaled 84u;
+draw z2;
+pickup pensquare scaled 76u;
+erase draw z2;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se zkosen˜m st¡nem vpravo naho©e %%%%%%%%%
+beginchar(108,100u#,100u#,0);
+z0=(0u,0u);
+z1=(58u,58u);
+z2=(42u,42u);
+z3=(0u,16u); z4=(0u,100u);z5=(84u,100u); z6=(84u,16u);
+z7=(16u,0u); z8=(16u,84u); z9=(100u,84u); z10=(100u,0u);
+z11=(0u,84u); z12=(16u,100u); z13=(84u,0u); z14=(100u,16u);
+z15=(84u,84u); z16=(100u,100u);
+pickup pensquare scaled 84u;
+draw z1;
+pickup pencircle scaled 4u;
+fill z11--z12--z14--z13--z11--cycle;
+pickup pensquare scaled 84u;
+draw z2;
+pickup pensquare scaled 76u;
+erase draw z2;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se zkosen˜m st¡nem vlevo naho©e %%%%%%%%%%
+beginchar(109,100u#,100u#,0);
+
+z1=(58u,42u);
+z2=(42u,58u);
+z3=(0u,16u); z4=(0u,100u); z5=(84u,100u); z6=(84u,16u);
+z7=(16u,0u); z8=(16u,84u); z9=(100u,84u); z10=(100u,0u);
+
+pickup pensquare scaled 84u;
+draw z2;
+pickup pencircle scaled 4u;
+fill z3--z5--z9--z7--z3--cycle; % shifted (0u,0u) rotated 180;
+pickup pensquare scaled 84u;
+draw z1;
+pickup pensquare scaled 76u;
+erase draw z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Troj£heln¡k se z kladnou dole %%%%%%%%%%%%%%%%%%%%
+beginchar(110,110u#,100u#,0);
+z1=(0u,0u); z2=(55u,100u); z3=(110u,0u);
+
+pickup pencircle scaled 4u;
+fill (z1--z2--z3--z1--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Troj£heln¡k se z kladnou naho©e %%%%%%%%%%%%%%%%%%
+beginchar(111,110u#,100u#,0);
+z1=(0u,0u); z2=(55u,100u); z3=(110u,0u);
+z4=(0u,100u); z5=(110u,100u); z6=(55u,0u);
+
+pickup pencircle scaled 4u;
+fill (z6--z4--z5--z6--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Koso‡tverec %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(112,100u#,100u#,0);
+z0=(50u,50u);
+z1=(0u,0u); z2=(100u,0u); z3=(50u,100u); z4=(0u,100u); z5=(100u,100u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 4u;
+fill (z6--z8--z3--z7--z6--cycle);
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Koso‡tverec ze ‡ty© koso‡tvere‡k– %%%%%%%%%%%%%%%%
+beginchar(113,100u#,100u#,0);
+z0=(50u,50u);
+z1=(0u,0u); z2=(100u,0u); z3=(50u,100u); z4=(0u,100u); z5=(100u,100u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 4u;
+fill (z6--z8--z3--z7--z6--cycle);
+pickup pencircle scaled 10u;
+erase draw z4--z2;
+erase draw z1--z5;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Polokruh pravostrann˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(114,50u#,100u#,0);
+z0=(50u,50u);
+z1=(0u,0u); z2=(100u,0u); z3=(50u,100u); z4=(0u,100u); z5=(100u,100u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 2u;
+fill (z1--z4..z0..z1..cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Polokruh levostrann˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(115,50u#,100u#,0);
+z0=(50u,50u);
+z1=(0u,0u); z2=(100u,0u); z3=(50u,100u); z4=(0u,100u); z5=(100u,100u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 2u;
+fill (z6--z3..z8..z6..cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Tenk˜ svisl˜ pruh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(116,12.5u#,100u#,0);
+
+z1=(0u,0u); z2=(12.5u,0u); z3=(6.25u,6.25u); z4=(0u,100u); z5=(12.5u,100u);
+z6=(6.25u,93.75u);
+
+pickup pensquare scaled 12.5u;
+draw z3--z6;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% St©edn¡ svisl˜ pruh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(117,25u#,100u#,0);
+
+z1=(0u,0u); z2=(25u,0u); z3=(12.5u,12.5u); z4=(0u,100u); z5=(25u,100u);
+z6=(12.5u,87.5u);
+
+pickup pensquare scaled 25u;
+draw z3--z6;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Tlust˜ svisl˜ pruh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(118,50u#,100u#,0);
+
+z1=(0u,0u); z2=(50u,0u); z3=(25u,25u); z4=(0u,100u); z5=(50u,100u);
+z6=(25u,75u);
+
+pickup pensquare scaled 50u;
+draw z3--z6;
+endchar;
+
+
+%%%%%%%%%%%% end;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYY %%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% ›ipka s prou‘ky %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(119,110u#,100u#,0);
+
+z1=(0u,50u); z2=(100u,50u); z3=(90u,90u); z4=(120u,98u);
+z5=(90u,10u); z6=(120u,2u);
+z7=(9u,70u); z8=(25u,70u); z9=(40u,70u); z10=(58u,70u);
+z11=(9u,30u); z12=(25u,30u); z13=(40u,30u); z14=(58u,30u);
+
+pickup pencircle xscaled 40u yscaled 0u; % 20u
+draw z5--z3;
+pickup pencircle xscaled 0u yscaled 40u; % 20u
+draw z1--z2;
+pickup pencircle scaled 100u; % 50u;
+erase drawdot z4;
+erase drawdot z6;
+pickup pencircle scaled 10u;
+erase draw z7--z11;
+pickup pencircle scaled 6u;
+erase draw z8--z12;
+pickup pencircle scaled 4u;
+erase draw z9--z13;
+pickup pencircle scaled 3u;
+erase draw z10--z14;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›ipka s oc skem dol– %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(120,110u#,100u#,0);
+%z1=(10u,25u); z2=(37.5u,25u); z3=(50u,45u); z4=(37.5u,42u);
+%z5=(65u,25u); z6=(37.5u,7u);
+%z7=(5u,25u); z8=(10u,25u); z9=(5u,8u); z10=(10u,8u);
+%z11=(1.5u,4u); z12=(1.5u,10u);
+
+z1=(20u,50u); z2=(75u,50u); z3=(100u,90u); z4=(60u,84u);
+z5=(110u,50u); z6=(60u,14u);
+z7=(10u,50u); z8=(20u,50u); z9=(10u,16u); z10=(20u,16u);
+z11=(3u,8u); z12=(3u,20u);
+
+pickup pencircle xscaled 0u yscaled 40u; % 20
+draw z1--z2;
+pickup pencircle scaled 2u;
+fill (z6--z4--z5--z6--cycle);
+pickup pencircle xscaled 20u yscaled 0u; % 10
+draw z7--z9;
+pickup pencircle scaled 40u; % 20
+drawdot z8;
+pickup pencircle scaled 28u; % 14
+erase drawdot z10;
+pickup pencircle xscaled 6u yscaled 0u; % 3
+draw z11--z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((0u,50u),(110u,50u));
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% ›ipka s oc skem nahoru %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(121,110u#,100u#,0);
+%z1=(10u,25u); z2=(37.5u,25u); z3=(50u,45u); z4=(37.5u,42u);
+%z5=(65u,25u); z6=(37.5u,7u);
+%z7=(5u,25u); z8=(10u,25u); z9=(5u,8u); z10=(10u,8u);
+%z11=(1.5u,4u); z12=(1.5u,10u);
+
+z1=(20u,50u); z2=(75u,50u); z3=(100u,90u); z4=(60u,84u);
+z5=(110u,50u); z6=(60u,14u);
+z7=(10u,50u); z8=(20u,50u); z9=(10u,16u); z10=(20u,16u);
+z11=(3u,8u); z12=(3u,20u);
+
+pickup pencircle xscaled 0u yscaled 40u; % 20
+draw z1--z2;
+pickup pencircle scaled 2u;
+fill (z6--z4--z5--z6--cycle);
+pickup pencircle xscaled 20u yscaled 0u; % 10
+draw z7--z9;
+pickup pencircle scaled 40u; % 20
+drawdot z8;
+pickup pencircle scaled 28u; % 14
+erase drawdot z10;
+pickup pencircle xscaled 6u yscaled 0u; % 3
+draw z11--z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((0u,50u),(110u,50u));
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% ›ipka zplo¨tˆl  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(122,50u#,100u#,0);
+z1=(0u,50u); z2=(17u,50u);
+z3=(17u,0u); z4=(17u,100u); z5=(50u,50u);
+
+pickup pencircle xscaled 0u yscaled 60u;
+draw z1--z2;
+pickup pencircle scaled 2u;
+fill (z3--z4--z5--z3--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›ipka v ov lu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(123,100u#,100u#,0);
+
+z0=(-10u,50u);
+z1=(-7u,50u); z2=(50u,50u);
+z3=(50u,4u); z4=(50u,96u); z5=(96u,50u);
+z6=(100u,50u); z7=(20u,4u); z8=(70u,4u); z9=(70u,96u); z10=(20u,96u);
+
+pickup pencircle scaled 2u;
+fill (z1..z10..tension 1.15..z9..z6..z8..tension 1.15..z7..z1--cycle);
+pickup pencircle xscaled 0u yscaled 60u; % 30u;
+erase draw z0--z2;
+pickup pencircle scaled 2u;
+erase fill (z3--z4--z5--z3--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% XXXXXXXXXXXXXXXXXXXXXXXXXXXXX %%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+end;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbm10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbm10.mf
new file mode 100644
index 00000000000..dd1628ce20a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbm10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard 10 point
+% Was cmr10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBB"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=28/36pt#; % space between the doubled bars
+cap_interspace#:=37/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbm12.mf b/Master/texmf-dist/fonts/source/public/bbm/bbm12.mf
new file mode 100644
index 00000000000..9ea10064c8a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbm12.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard 12 point
+% Was cmr12; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBB"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=33/36pt#; % space between the doubled bars
+cap_interspace#:=41/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbm17.mf b/Master/texmf-dist/fonts/source/public/bbm/bbm17.mf
new file mode 100644
index 00000000000..0bdf9f19aea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbm17.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard 17 point (more or less)
+% Was cmr17; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBB"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=425/36pt#; % height of caps
+fig_height#:=401/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=150/36pt#; % height of crossbar in lowercase e
+comma_depth#:=121/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=13/36pt#; % uppercase hairline breadth
+cap_stem#:=41/36pt#; % uppercase stem breadth
+cap_curve#:=47/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=34/36pt#; % vertical distance from serif base to tangent
+jut#:=42/36pt#; % protrusion of lowercase serifs
+cap_jut#:=50/36pt#; % protrusion of uppercase serifs
+beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs
+beak#:=121/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=17pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches
+serif_drop#:=7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=42/36pt#; % space between the doubled bars
+cap_interspace#:=50/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbm5.mf b/Master/texmf-dist/fonts/source/public/bbm/bbm5.mf
new file mode 100644
index 00000000000..27da560de4c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbm5.mf
@@ -0,0 +1,80 @@
+% Computer Modern Blackboard 5 point
+% Was cmr5; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBB"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=18/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=15/36pt#; % space between the doubled bars
+cap_interspace#:=20/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbm6.mf b/Master/texmf-dist/fonts/source/public/bbm/bbm6.mf
new file mode 100644
index 00000000000..6f34ae52bc5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbm6.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard 6 point
+% Was cmr6; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBB"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=17/36pt#; % space between the doubled bars
+cap_interspace#:=23/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbm7.mf b/Master/texmf-dist/fonts/source/public/bbm/bbm7.mf
new file mode 100644
index 00000000000..1d39b92a6f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbm7.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard 7 point
+% Was cmr7; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBB"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=19/36pt#; % space between the doubled bars
+cap_interspace#:=26/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbm8.mf b/Master/texmf-dist/fonts/source/public/bbm/bbm8.mf
new file mode 100644
index 00000000000..052865d1145
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbm8.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard 8 point
+% Was cmr8; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBB"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=22/36pt#; % space between the doubled bars
+cap_interspace#:=29/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbm9.mf b/Master/texmf-dist/fonts/source/public/bbm/bbm9.mf
new file mode 100644
index 00000000000..1bebad10095
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbm9.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard 9 point
+% Was cmr9; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBB"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=25/36pt#; % space between the doubled bars
+cap_interspace#:=33/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmb10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmb10.mf
new file mode 100644
index 00000000000..71ac0f0449d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmb10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Bold Blackboard 10 point
+% Was cmb10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBB"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=10/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=25/36pt#; % space between the doubled bars
+cap_interspace#:=34/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmbx10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmbx10.mf
new file mode 100644
index 00000000000..28bc54f65e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmbx10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Bold Extended Blackboard 10 point
+% Was cmbx10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBBX"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=25/36pt#; % space between the doubled bars
+cap_interspace#:=39/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmbx12.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmbx12.mf
new file mode 100644
index 00000000000..aa2e65c7f2a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmbx12.mf
@@ -0,0 +1,81 @@
+% Computer Modern Bold Extended Blackboard 12 point
+% Was cmbx12; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBBX"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=18.3/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=30/36pt#; % space between the doubled bars
+cap_interspace#:=46/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmbx5.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmbx5.mf
new file mode 100644
index 00000000000..a3d7d976134
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmbx5.mf
@@ -0,0 +1,80 @@
+% Computer Modern Bold Extended Blackboard 5 point
+% Was cmbx5; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBBX"; font_size 5pt#;
+
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123.5/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=80/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=40/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=13/36pt#; % protrusion of lowercase serifs
+cap_jut#:=19/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=13/36pt#; % space between the doubled bars
+cap_interspace#:=19/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmbx6.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmbx6.mf
new file mode 100644
index 00000000000..fb57af197bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmbx6.mf
@@ -0,0 +1,81 @@
+% Computer Modern Bold Extended Blackboard 6 point
+% Was cmbx6; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBBX"; font_size 6pt#;
+
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=96/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=49/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=36/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=15/36pt#; % space between the doubled bars
+cap_interspace#:=23/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmbx7.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmbx7.mf
new file mode 100644
index 00000000000..c3fcb50a021
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmbx7.mf
@@ -0,0 +1,80 @@
+% Computer Modern Bold Extended Blackboard 7 point
+% Was cmbx7; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBBX"; font_size 7pt#;
+
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=1/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=32/36pt#; % lowercase stem breadth
+curve#:=35/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=38/36pt#; % uppercase stem breadth
+cap_curve#:=41/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=17/36pt#; % space between the doubled bars
+cap_interspace#:=27/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmbx8.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmbx8.mf
new file mode 100644
index 00000000000..a818bae188e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmbx8.mf
@@ -0,0 +1,81 @@
+% Computer Modern Bold Extended Blackboard 8 point
+% Was cmbx8; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBBX"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=19/36pt#; % space between the doubled bars
+cap_interspace#:=31/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmbx9.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmbx9.mf
new file mode 100644
index 00000000000..e9945a523fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmbx9.mf
@@ -0,0 +1,81 @@
+% Computer Modern Bold Extended Blackboard 9 point
+% Was cmbx9; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBBX"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=22/36pt#; % space between the doubled bars
+cap_interspace#:=35/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmbxsl10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmbxsl10.mf
new file mode 100644
index 00000000000..5fdc235d981
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmbxsl10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Bold Extended Slanted Blackboard 10 point
+% Was cmbxsl10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBBXSL"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=25/36pt#; % space between the doubled bars
+cap_interspace#:=39/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmdunh10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmdunh10.mf
new file mode 100644
index 00000000000..5f8c8e535cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmdunh10.mf
@@ -0,0 +1,80 @@
+% Computer Modern Dunhill Blackboard 10 point
+% Was cmdunh10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBDUNH"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=370/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=346/36pt#; % height of caps
+fig_height#:=332/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=28/36pt#; % space between the doubled bars
+cap_interspace#:=37/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmfib8.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmfib8.mf
new file mode 100644
index 00000000000..0a4acb0f672
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmfib8.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Fibonacci Font
+% Was cmfib8; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBFIB"; font_size 8pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=-2/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=233/36pt#; % height of tallest characters
+asc_height#:=233/36pt#; % height of lowercase ascenders
+cap_height#:=233/36pt#; % height of caps
+fig_height#:=233/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=89/36pt#; % axis of symmetry for math symbols
+bar_height#:=89/36pt#; % height of crossbar in lowercase e
+comma_depth#:=55/36pt#; % depth of comma below baseline
+desc_depth#:=55/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=13/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=34/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=34/36pt#; % breadth in middle of lowercase s
+flare#:=34/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=34/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=34/36pt#; % uppercase stem breadth
+cap_curve#:=39/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=21/36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=21/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=21/36pt#; % protrusion of uppercase serifs
+beak_jut#:=13/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=3/8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/13; % extra openness inside bowls
+beak_darkness:=5/13; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=21/36pt#; % space between the doubled bars
+cap_interspace#:=34/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbminch.mf b/Master/texmf-dist/fonts/source/public/bbm/bbminch.mf
new file mode 100644
index 00000000000..fabc8d79cd4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbminch.mf
@@ -0,0 +1,81 @@
+% Computer Modern Inch-High Sans Serif Bold Extended Blackboard Caps and Digits
+% Was cminch; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+numeric Pt#; 250/36Pt#=1in#;
+font_identifier:="CMBBINCH"; font_size 10Pt#;
+
+u#:=22/36Pt#; % unit width
+width_adj#:=22/36Pt#; % width adjustment for certain characters
+serif_fit#:=-9/36Pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36Pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0Pt#; % extra space added to all sidebars
+
+body_height#:=270/36Pt#; % height of tallest characters
+asc_height#:=250/36Pt#; % height of lowercase ascenders
+cap_height#:=250/36Pt#; % height of caps
+fig_height#:=250/36Pt#; % height of numerals
+x_height#:=165/36Pt#; % height of lowercase without ascenders
+math_axis#:=90/36Pt#; % axis of symmetry for math symbols
+bar_height#:=90/36Pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36Pt#; % depth of comma below baseline
+desc_depth#:=70/36Pt#; % depth of lowercase descenders
+
+crisp#:=13/36Pt#; % diameter of serif corners % was 26/36Pt# GFR
+tiny#:=13/36Pt#; % diameter of rounded corners % was 26/36Pt# GFR
+fine#:=9/36Pt#; % diameter of sharply rounded corners
+thin_join#:=9/36Pt#; % width of extrafine details
+hair#:=49/36Pt#; % lowercase hairline breadth
+stem#:=49/36Pt#; % lowercase stem breadth
+curve#:=49/36Pt#; % lowercase curve breadth
+ess#:=43/36Pt#; % breadth in middle of lowercase s
+flare#:=40/36Pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36Pt#; % diameter of dots
+cap_hair#:=49/36Pt#; % uppercase hairline breadth
+cap_stem#:=53/36Pt#; % uppercase stem breadth
+cap_curve#:=53/36Pt#; % uppercase curve breadth
+cap_ess#:=51/36Pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36Pt#; % thickness of lines in math symbols
+
+dish#:=0Pt#; % amount erased at top or bottom of serifs
+bracket#:=0Pt#; % vertical distance from serif base to tangent
+jut#:=0Pt#; % protrusion of lowercase serifs
+cap_jut#:=0Pt#; % protrusion of uppercase serifs
+beak_jut#:=0Pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36Pt#; % vertical protrusion of beak serifs
+vair#:=26/36Pt#; % vertical diameter of hairlines
+notch_cut#:=49/36Pt#; % maximum breadth above or below notches
+bar#:=26/36Pt#; % lowercase bar thickness
+slab#:=36/36Pt#; % serif and arm thickness
+cap_bar#:=34/36Pt#; % uppercase bar thickness
+cap_band#:=31/36Pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36Pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36Pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36Pt#; % for small refinements of stem breadth
+vair_corr#:=2/36Pt#; % for small refinements of hairline height
+apex_corr#:=18/36Pt#; % extra width at diagonal junctions
+
+o#:=8/36Pt#; % amount of overshoot for curves
+apex_o#:=0Pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=49/36Pt#; % space between the doubled bars
+cap_interspace#:=53/36Pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmsl10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmsl10.mf
new file mode 100644
index 00000000000..a0026bbbabf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmsl10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Slanted Blackboard 10 point
+% Was cmsl10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=28/36pt#; % space between the doubled bars
+cap_interspace#:=37/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmsl12.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmsl12.mf
new file mode 100644
index 00000000000..6034488e8af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmsl12.mf
@@ -0,0 +1,81 @@
+% Computer Modern Slanted Blackboard 12 point
+% Was cmsl12; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSL"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=33/36pt#; % space between the doubled bars
+cap_interspace#:=41/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmsl8.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmsl8.mf
new file mode 100644
index 00000000000..1a92126aba7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmsl8.mf
@@ -0,0 +1,82 @@
+% Computer Modern Slanted Blackboard 8 point
+% Was cmsl8; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSL"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=22/36pt#; % space between the doubled bars
+cap_interspace#:=29/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmsl9.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmsl9.mf
new file mode 100644
index 00000000000..7bc64e91040
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmsl9.mf
@@ -0,0 +1,80 @@
+% Computer Modern Slanted Blackboard 9 point
+% Was cmsl9; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSL"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=25/36pt#; % space between the doubled bars
+cap_interspace#:=33/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmsltt10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmsltt10.mf
new file mode 100644
index 00000000000..4cd0a60a77e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmsltt10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Slanted Typewriter Text for use with 10 point
+% Was cmsltt10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSLTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=11/36pt#; % diameter of serif corners % was 22/36pt# GFR
+tiny#:=11/36pt#; % diameter of rounded corners % was 22/36pt# GFR
+fine#:=10.5/36pt#; % diameter of sharply rounded corners % was 22/36pt# GFR
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=34/36pt#; % space between the doubled bars
+cap_interspace#:=34/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmss10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmss10.mf
new file mode 100644
index 00000000000..446f2069857
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmss10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Sans Serif 10 pt
+% Was cmss10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=8.5/36pt#; % width of extrafine details % was 17/36pt# GFR
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=28/36pt#; % space between the doubled bars
+cap_interspace#:=32/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmss12.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmss12.mf
new file mode 100644
index 00000000000..236323026c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmss12.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Sans Serif 12 pt
+% Was cmss12; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSS"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details % was 20/36pt# GFR
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=33/36pt#; % space between the doubled bars
+cap_interspace#:=37/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmss17.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmss17.mf
new file mode 100644
index 00000000000..eb5d1627bea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmss17.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Sans Serif 17 pt (more or less)
+% Was cmss17; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSS"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=24/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=432/36pt#; % height of caps
+fig_height#:=408/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=136/36pt#; % height of crossbar in lowercase e
+comma_depth#:=78/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=14/36pt#; % width of extrafine details % was 28/36pt# GFR
+hair#:=47/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=47/36pt#; % lowercase curve breadth
+ess#:=47/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50/36pt#; % diameter of dots
+cap_hair#:=47/36pt#; % uppercase hairline breadth
+cap_stem#:=52/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=52/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.8/36pt#; % vertical protrusion of beak serifs
+vair#:=38/36pt#; % vertical diameter of hairlines
+notch_cut#:=32/36pt#; % maximum breadth above or below notches
+bar#:=36/36pt#; % lowercase bar thickness
+slab#:=40/36pt#; % serif and arm thickness
+cap_bar#:=38/36pt#; % uppercase bar thickness
+cap_band#:=35/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=7/36pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=47/36pt#; % space between the doubled bars
+cap_interspace#:=52/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmss8.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmss8.mf
new file mode 100644
index 00000000000..5d84fb20393
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmss8.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Sans Serif 8 pt
+% Was cmss8; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSS"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details % was 15/36pt# GFR
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=25/36pt#; % space between the doubled bars
+cap_interspace#:=29/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmss9.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmss9.mf
new file mode 100644
index 00000000000..d4f5f152d93
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmss9.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Sans Serif 9 pt
+% Was cmss9; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSS"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=212/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details % was 16/36pt# GFR
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=27/36pt#; % space between the doubled bars
+cap_interspace#:=31/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmssbx10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmssbx10.mf
new file mode 100644
index 00000000000..4a0ce728e40
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmssbx10.mf
@@ -0,0 +1,80 @@
+% Computer Modern Sans Serif Bold Extended Blackboard 10 pt
+% Was cmssbx10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSSBX"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=22/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners % was 26/36pt# GFR
+tiny#:=13/36pt#; % diameter of rounded corners % was 26/36pt# GFR
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=49/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=43/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=49/36pt#; % uppercase hairline breadth
+cap_stem#:=53/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=49/36pt#; % maximum breadth above or below notches
+bar#:=26/36pt#; % lowercase bar thickness
+slab#:=36/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=31/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=18/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=49/36pt#; % space between the doubled bars
+cap_interspace#:=53/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmssdc10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmssdc10.mf
new file mode 100644
index 00000000000..c9f05a3b020
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmssdc10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Sans Serif Demibold Condensed Blackboard 10 pt
+% Was cmssdc10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSSDC"; font_size 10pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-8/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+crisp#:=11.5/36pt#; % diameter of serif corners % was 23/36pt# GFR
+tiny#:=11.5/36pt#; % diameter of rounded corners % was 23/36pt# GFR
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=40/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=37/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=44/36pt#; % uppercase stem breadth
+cap_curve#:=44/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=23/36pt#; % vertical diameter of hairlines
+notch_cut#:=40/36pt#; % maximum breadth above or below notches
+bar#:=23/36pt#; % lowercase bar thickness
+slab#:=31/36pt#; % serif and arm thickness
+cap_bar#:=29/36pt#; % uppercase bar thickness
+cap_band#:=27/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=37/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=14/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.91; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.74; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=40/36pt#; % space between the doubled bars
+cap_interspace#:=44/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmssi10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmssi10.mf
new file mode 100644
index 00000000000..562820e6b05
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmssi10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Slanted Blackboard Sans Serif 10 pt
+% Was cmssi10; modified for blackboard letter
+% Gilles F. ROBERT (20-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSSI"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=8.5/36pt#; % width of extrafine details % was 17/36pt# GFR
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=28/36pt#; % space between the doubled bars
+cap_interspace#:=32/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmssi12.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmssi12.mf
new file mode 100644
index 00000000000..92adedbf81c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmssi12.mf
@@ -0,0 +1,81 @@
+% Computer Modern Slanted Blackboard Sans Serif 12 pt
+% Was cmssi12; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSSI"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details % was 20/36pt# GFR
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=33/36pt#; % space between the doubled bars
+cap_interspace#:=37/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmssi17.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmssi17.mf
new file mode 100644
index 00000000000..201d6fa09f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmssi17.mf
@@ -0,0 +1,81 @@
+% Computer Modern Slanted Blackboard Sans Serif 17 pt (more or less)
+% Was cmssi17; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSSI"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=24/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=432/36pt#; % height of caps
+fig_height#:=408/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=136/36pt#; % height of crossbar in lowercase e
+comma_depth#:=78/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=14/36pt#; % width of extrafine details % was 28/36pt# GFR
+hair#:=47/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=47/36pt#; % lowercase curve breadth
+ess#:=47/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50/36pt#; % diameter of dots
+cap_hair#:=47/36pt#; % uppercase hairline breadth
+cap_stem#:=52/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=52/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.8/36pt#; % vertical protrusion of beak serifs
+vair#:=38/36pt#; % vertical diameter of hairlines
+notch_cut#:=32/36pt#; % maximum breadth above or below notches
+bar#:=36/36pt#; % lowercase bar thickness
+slab#:=40/36pt#; % serif and arm thickness
+cap_bar#:=38/36pt#; % uppercase bar thickness
+cap_band#:=35/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=7/36pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=47/36pt#; % space between the doubled bars
+cap_interspace#:=52/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmssi8.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmssi8.mf
new file mode 100644
index 00000000000..c4cae705514
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmssi8.mf
@@ -0,0 +1,81 @@
+% Computer Modern Slanted Blackboard Sans Serif 8 pt
+% Was cmssi8; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSSI"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details % was 15/36pt# GFR
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=25/36pt#; % space between the doubled bars
+cap_interspace#:=29/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmssi9.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmssi9.mf
new file mode 100644
index 00000000000..54b12155207
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmssi9.mf
@@ -0,0 +1,81 @@
+% Computer Modern Slanted Blackboard Sans Serif 9 pt
+% Was cmssi9; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSSI"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=212/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details % was 20/36pt# GFR
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=27/36pt#; % space between the doubled bars
+cap_interspace#:=31/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmssq8.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmssq8.mf
new file mode 100644
index 00000000000..8b67ed8bb44
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmssq8.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Sans Serif Quotation Style 8 point
+% Was cmssq8; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSSQ"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=9/36pt#; % diameter of serif corners % was 18/36pt# GFR
+tiny#:=9/36pt#; % diameter of rounded corners % was 18/36pt# GFR
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+interspace#:=23/36pt#; % space between the doubled bars
+cap_interspace#:=27/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmssqi8.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmssqi8.mf
new file mode 100644
index 00000000000..86f95e486af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmssqi8.mf
@@ -0,0 +1,82 @@
+% Computer Modern Blackboard Sans Serif Quotation Style Slanted 8 point
+% Was cmssqi8; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBSSQI"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=9/36pt#; % diameter of serif corners % was 18/36pt# GFR
+tiny#:=9/36pt#; % diameter of rounded corners % was 18/36pt# GFR
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+interspace#:=23/36pt#; % space between the doubled bars
+cap_interspace#:=27/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmtt10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmtt10.mf
new file mode 100644
index 00000000000..f40cf8327db
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmtt10.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Typewriter for use with 10 point
+% Was cmtt10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=11/36pt#; % diameter of serif corners % was 22/36pt# GFR
+tiny#:=11/36pt#; % diameter of rounded corners % was 22/36pt# GFR
+fine#:=10.5/36pt#; % diameter of sharply rounded corners % was 21/36pt# GFR
+thin_join#:=12.5/36pt#; % width of extrafine details % was 21/36pt# GFR
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=34/36pt#; % space between the doubled bars
+cap_interspace#:=34/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmtt12.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmtt12.mf
new file mode 100644
index 00000000000..deb3f3707b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmtt12.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Typewriter for use with 12 point
+% Was cmtt12; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBTT"; font_size 12pt#;
+
+u#:=24.7/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=300/36pt#; % height of tallest characters
+asc_height#:=264/36pt#; % height of lowercase ascenders
+cap_height#:=264/36pt#; % height of caps
+fig_height#:=264/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=132/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=60/36pt#; % depth of comma below baseline
+desc_depth#:=96/36pt#; % depth of lowercase descenders
+
+crisp#:=12.5/36pt#; % diameter of serif corners % was 25/36pt# GFR
+tiny#:=12.5/36pt#; % diameter of rounded corners % was 25/36pt# GFR
+fine#:=11/36pt#; % diameter of sharply rounded corners % was 22/36pt# GFR
+thin_join#:=14/36pt#; % width of extrafine details % was 22/36pt# GFR
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=39/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=28/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=39/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=39/36pt#; % vertical protrusion of beak serifs
+vair#:=25/36pt#; % vertical diameter of hairlines
+notch_cut#:=28/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=25/36pt#; % serif and arm thickness
+cap_bar#:=25/36pt#; % uppercase bar thickness
+cap_band#:=25/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=28/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=11/36pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.86; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=39/36pt#; % space between the doubled bars
+cap_interspace#:=39/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmtt8.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmtt8.mf
new file mode 100644
index 00000000000..69369eab4e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmtt8.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Typewriter for use with 8 point
+% Was cmtt8; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBTT"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=200/36pt#; % height of tallest characters
+asc_height#:=176/36pt#; % height of lowercase ascenders
+cap_height#:=176/36pt#; % height of caps
+fig_height#:=176/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=88/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=64/36pt#; % depth of lowercase descenders
+
+crisp#:=9.5/36pt#; % diameter of serif corners % was 19/36pt# GFR
+tiny#:=9.5/36pt#; % diameter of rounded corners % was 19/36pt# GFR
+fine#:=9/36pt#; % diameter of sharply rounded corners % was 18/36pt# GFR
+thin_join#:=11/36pt#; % width of extrafine details % was 18/36pt# GFR
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=27/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=27/36pt#; % space between the doubled bars
+cap_interspace#:=27/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmtt9.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmtt9.mf
new file mode 100644
index 00000000000..f0974c1394a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmtt9.mf
@@ -0,0 +1,81 @@
+% Computer Modern Blackboard Typewriter for use with 9 point
+% Was cmtt9; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBTT"; font_size 9pt#;
+
+u#:=18.9/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=225/36pt#; % height of tallest characters
+asc_height#:=198/36pt#; % height of lowercase ascenders
+cap_height#:=198/36pt#; % height of caps
+fig_height#:=198/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=72/36pt#; % depth of lowercase descenders
+
+crisp#:=10.5/36pt#; % diameter of serif corners % was 21/36pt# GFR
+tiny#:=10.5/36pt#; % diameter of rounded corners % was 21/36pt# GFR
+fine#:=10/36pt#; % diameter of sharply rounded corners % was 20/36pt# GFR
+thin_join#:=12/36pt#; % width of extrafine details % was 20/36pt# GFR
+hair#:=24/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=33/36pt#; % diameter of dots
+cap_hair#:=24/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=24/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=31/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=31/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3.5/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+interspace#:=31/36pt#; % space between the doubled bars
+cap_interspace#:=31/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/bbmvtt10.mf b/Master/texmf-dist/fonts/source/public/bbm/bbmvtt10.mf
new file mode 100644
index 00000000000..ced30730172
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/bbmvtt10.mf
@@ -0,0 +1,82 @@
+% Computer Modern Variable-Width Blackboard Typewriter Text for use with 10 point
+% Was cmvtt10; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93)
+if unknown blbbase: input blbbase fi
+
+font_identifier:="CMBBVTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=11/36pt#; % diameter of serif corners % was 22/36pt# GFR
+tiny#:=11/36pt#; % diameter of rounded corners % was 22/36pt# GFR
+fine#:=10.5/36pt#; % diameter of sharply rounded corners % was 21/36pt# GFR
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+interspace#:=34/36pt#; % space between the doubled bars
+cap_interspace#:=34/36pt#; % same for uppercase letters
+
+generate blbord % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bbm/blbbase.mf b/Master/texmf-dist/fonts/source/public/bbm/blbbase.mf
new file mode 100644
index 00000000000..7fb53aa81a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/blbbase.mf
@@ -0,0 +1,182 @@
+% This is blbbase.mf (29-03-93) v1.0
+% The base file for Computer Modern Blackboard (a supplement to {\tt cmbase.mf})
+% Most of the code is borrowed from cmbase.mf but slightly modified
+% Gilles F. ROBERT March 93
+
+if unknown cmbase: input cmbase; fi
+blbbase:=1;
+
+numeric interspace#,cap_interspace#,interspace,cap_interspace,
+ curve_interspace,cap_curve_interspace;
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l:=-hround(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment+cap_interspace#;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-letter_fit;
+ enddef;
+
+def mono_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric expansion_factor;
+ mono_charwd#+cap_interspace#=2letter_fit#
+ +expansion_factor*(charwd+left_adjustment+right_adjustment+cap_interspace#);
+ forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
+ $:=$.#*expansion_factor*hppp; endfor
+ l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
+ interim xoffset:=-l;
+ r:=l+mono_charwd+cap_interspace-shrink_fit;
+ w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
+ charwd:=mono_charwd#; charic:=mono_charic#;
+ enddef;
+
+extra_beginchar := extra_beginchar &"numeric Delta_x;";
+
+vardef pen_duplicate(text t) =
+ forsuffixes $=t :
+ x$=.5[x.G$,x.D$]; y.G$=y.D$=y$;
+ forsuffixes e=l,r :
+ z.G$e-z.G$ = z.D$e-z.D$ = z$e-z$;
+ endfor
+ endfor
+ forsuffixes $=t : x.D$ - x.G$ = endfor Delta_x;
+ enddef;
+
+vardef double text t =
+ forsuffixes z=z.G,z.D : t; endfor
+ enddef;
+
+vardef define_upper(suffix @,$)(expr p) =
+ forsuffixes e=l,r:
+ top z@e = (z$e--(x$e,infinity)) intersectionpoint p;
+ x@e := x$e;
+ endfor enddef;
+
+vardef define_lower(suffix @,$)(expr p) =
+ forsuffixes e=l,r:
+ bot z@e = (z$e--(x$e,-infinity)) intersectionpoint p;
+ x@e := x$e;
+ endfor enddef;
+
+vardef define_upper_and_lower(suffix @,@@,$)(expr p) =
+ define_upper(@,$,p);
+ define_lower(@@,$,p);
+ enddef;
+
+vardef mid_biserif(suffix $,$$,@) % serif at |z$| for stroke from |z$$|
+ (expr darkness) suffix modifier =
+ pickup crisp.nib; numeric bracket_height; pair downward;
+ bracket_height=if dark.modifier: 1.5 fi\\ bracket;
+ if y$<y$$: y@2=min(y$+bracket_height,y$$);
+ top y@1-slab=bot y@0+eps=tiny.bot y$; downward=z$-z$$;
+ if y@1>y@2: y@2:=y@1; fi
+ else: y@2=max(y$-bracket_height,y$$);
+ bot y@1+slab=top y@0-eps=tiny.top y$; downward=z$$-z$;
+ if y@1<y@2: y@2:=y@1; fi fi
+ y@3=y@2;
+ forsuffixes @@= @0,@2,@3:
+ z@@=.5[z.G@@,z.D@@]; y.G@@=y.D@@;
+ endfor
+ z@3=z@2=whatever[z$,z$$]; z@0=whatever[z$,z$$];
+ z.D@2+penoffset downward of currentpen =
+ z.D$l+penoffset downward of pen_[tiny.nib]+whatever*downward;
+ z.D@0=z.D$+whatever*downward; z.D@3=z.D@0+whatever*downward;
+ if x.D@3<x.D@2+eps: x.D@3:=x.D@2+eps; fi
+ %z.G@2-penoffset downward of currentpen =
+ % z.G$r-penoffset downward of pen_[tiny.nib]+whatever*downward;
+ % x.G@0=x.G$; z.G@3=z.G@0+whatever*downward;
+ % if x.G@3>x.G@2-eps: x.G@3:=x.G@2-eps; fi
+ pair base; ypart base=y@1; base=z$+whatever*downward;
+ filldraw z.G@2{z$-z$$}
+ ...darkness[base,z@2]{z.D@2-z.G@2}
+ ...{z$$-z$}z.D@2--z.D@3--z.D@0--z.G@0--z.G@3--cycle; % the serif
+ labels (G@2,D@2); enddef;
+
+vardef sloped_mid_biserif(suffix $,$$,@) % serif at |z$| for stroke from |z$$|
+ (expr darkness,drop) suffix modifier =
+ pickup crisp.nib; numeric bracket_height; pair downward;
+ bracket_height=if dark.modifier: 1.5 fi\\ bracket;
+ if y$<y$$: y.G@2=min(y$+slab+bracket_height,y$$);
+ top y@1-slab-.5drop=bot y@0+eps=tiny.bot y$; downward=z$-z$$;
+ if y@1>y.G@2: y.G@2:=y@1; fi
+ else: y.G@2=max(y$-slab-bracket_height,y$$);
+ bot y@1+slab+.5drop=top y@0-eps=tiny.top y$; downward=z$$-z$;
+ if y@1<y.G@2: y.G@2:=y@1; fi fi
+ y@3=y@2;
+ z@0=.5[z.G@0,z.D@0]; y.G@0=y.D@0;
+ forsuffixes @@= @2,@3:
+ z@@=.5[z.G@@,z.D@@]; y.G@@=y.D@@-drop;
+ endfor
+ %z@3=z@2=whatever[z$,z$$]; z@0=whatever[z$,z$$];
+ z.D@2+penoffset downward of currentpen =
+ z.D$l+penoffset downward of pen_[tiny.nib]+whatever*downward;
+ z.D@0=z.D$+whatever*downward; z.D@3=z.D@0+whatever*downward;
+ if x.D@3<x.D@2+eps: x.D@3:=x.D@2+eps; fi
+ z.G@2-penoffset downward of currentpen =
+ z.G$r-penoffset downward of pen_[tiny.nib]+whatever*downward;
+ x.G@0=x.G$; z.G@3=z.G@0+whatever*downward;
+ if x.G@3>x.G@2-eps: x.G@3:=x.G@2-eps; fi
+ pair base; ypart base=y@1; base=z$+whatever*downward;
+ filldraw z.G@2{z$-z$$}
+ ...darkness[base,z@2]{z.D@2-z.G@2}
+ ...{z$$-z$}z.D@2--z.D@3--z.D@0--z.G@0--z.G@3--cycle; % the serif
+ labels (G@2,D@2); enddef;
+
+def dish_biserif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@@)(expr mid_darkness)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ serif(G$,G$$,@,left_darkness,-left_jut) modifier;
+ mid_biserif($,$$,@@@,mid_darkness) modifier;
+ serif(D$,D$$,@@,right_darkness,right_jut) modifier;
+ if dish>0: pickup tiny.nib; numeric dish_out,dish_in;
+ if y$<y$$: dish_out=bot y$; dish_in=dish_out+dish; let rev_=reverse;
+ else: dish_out=top y$; dish_in=dish_out-dish; let rev_=relax; fi
+ erase fill rev_
+ ((x@1,dish_out)..(x$,dish_in){right}..(x@@1,dish_out)--cycle);
+ fi enddef;
+
+def nodish_biserif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@@)(expr mid_darkness)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ serif(G$,G$$,@,left_darkness,-left_jut) modifier;
+ mid_biserif($,$$,@@@,mid_darkness) modifier;
+ serif(D$,D$$,@@,right_darkness,right_jut) modifier; enddef;
+
+vardef sloped_biserif.l(suffix $,$$,@)(expr darkness,jut,drop)
+ (suffix @@)(expr mid_darkness) =
+ sloped_serif.l(G$,G$$,@,darkness,jut,drop);
+ sloped_mid_biserif($,$$,@@,mid_darkness,drop);
+ if drop>0: erase fill z.D@@0--top z.D@@0
+ --(x@2r,top y.D@@0)--z@2r--cycle; fi % erase excess at top
+ enddef;
+
+vardef sloped_biserif.r(suffix $,$$,@)(expr darkness,jut,drop)
+ (suffix @@)(expr mid_darkness) =
+ sloped_serif.r(D$,D$$,@,darkness,jut,drop);
+ sloped_mid_biserif($,$$,@@,mid_darkness,-drop);
+ if drop>0: erase fill z.D@@0--top z.D@@0
+ --(x@2r,top y.D@@0)--z@2r--cycle; fi % erase excess at top
+ enddef;
+
+def f_double_stroke(suffix $,$$,@,left_serif,mid_serif,right_serif)(expr left_jut,right_jut)=
+ pickup tiny.nib; bot y$=0; pen_duplicate(@0,@0',@1);
+ penpos@0(x$r-x$l,0); x@0l=x$l; top y@0=x_height;
+ pickup fine.nib; pos@0'(x$r-x$l+tiny,180); % removed stem_corr GFR
+ y@0'=y@0; lft x@0'r=tiny.lft x$l;
+ penpos@1(x@0'l-x@0'r,180); x@1=x@0'; y@1+.5vair=.5[x_height,h];
+ pos@2(vair,90); top y@2r=h+oo;
+ if serifs: x@2=.6[x.G@1,x$$r]; (x@,y@2r)=whatever[z@2l,z.G@1l];
+ x@2r:=min(x@,.5[x@2,x$$r]); pos@3(hair,0); bulb(@2,@3,$$); % bulb
+ else: x@2=.6[x.G@1,x$$]; y.G@1l:=1/3[y.G@1l,y@2l]; fi
+ pickup tiny.nib;
+ Delta_x = min(hround(interspace+.5stem'),x@2r-x.G@1l);
+ double filldraw stroke z$e--z@0e; % double stem
+ define_upper(D@2,D@0',super_arc.l(G@1,@2));
+ filldraw stroke z.D@0'e--z.D@2e; % inner stroke
+ pickup fine.nib;
+ if serifs: filldraw stroke z.G@0'e--z.G@1e & super_arc.e(G@1,@2); % arc
+ dish_biserif($,@0,left_serif,1/3,left_jut,mid_serif,1/3,right_serif,1/3,right_jut); % serif
+ else: filldraw stroke z.G@0'e--z.G@1e & super_arc.e(G@1,@2)
+ & term.e(@2,$$,right,.9,4); % arc and terminal
+ mid_biserif($,@0,mid_serif,1/3); fi % terminal
+ penlabels(G@0,D@0,G@1,D@1,@2,D@2); enddef;
diff --git a/Master/texmf-dist/fonts/source/public/bbm/blbord.mf b/Master/texmf-dist/fonts/source/public/bbm/blbord.mf
new file mode 100644
index 00000000000..3d22e929b09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/blbord.mf
@@ -0,0 +1,26 @@
+% Computer Modern Blackboard:
+% Was roman.mf; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93) v1.0
+
+font_coding_scheme:="Blackboard";
+mode_setup; font_setup;
+define_whole_pixels(interspace,cap_interspace);
+curve_interspace:=hround(1.5interspace#*hppp);
+cap_curve_interspace:=hround(1.5cap_interspace#*hppp);
+
+stem':=stem; cap_stem':=cap_stem;
+
+input blbordu;
+input blbordl;
+input blbordsp;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/bbm/blbordl.mf b/Master/texmf-dist/fonts/source/public/bbm/blbordl.mf
new file mode 100644
index 00000000000..34d13b9e15b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/blbordl.mf
@@ -0,0 +1,975 @@
+% Computer Modern Blackboard lower case:
+% Was romanl.mf; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93) v1.0
+
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+% modified March 93 by Gilles F. ROBERT for blackboard letters
+
+% Character codes \0141 through \0172 are generated.
+
+cmchar "The letter a";
+beginchar("a",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pen_duplicate(7);
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(.5curve-stem_corr),180);
+lft x.G7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z.G7e&super_arc.e(G7,6)}}; % bowl
+Delta_x = min(hround(curve_interspace+.5curve-stem_corr),.5(x9r-x.G7l));
+define_upper_and_lower(D6,D8,D7,{{interim superness:=more_super;
+ z9r{down}...z8r{left}...{up}z.G7r&super_arc.r(G7,6)}});
+filldraw stroke z.D6e--z.D8e; % inner stroke
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,G7,8,D6,D7,D8,9,10,11,12,13); endchar;
+
+cmchar "The letter b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pen_duplicate(0,0',1,2);
+pickup tiny.nib; pos1(.5stem',0); pos2(.5stem,0);
+pos0'(.5stem',0); pos0(.5stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x.G1l=hround(2.5u-.5stem'); top y1=h;
+Delta_x = hround(interspace+.5stem);
+numeric edge; edge=rt x.D2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x.D2l),1/3[rt x.D2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit-interspace)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; double filldraw stroke z1e--z0'e--z0e--z2e; % double stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem+interspace,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_biserif.l(1,0',a,1/3,jut,serif_drop,a',1/3); % upper serif
+ mid_biserif(2,0',b,1/3); % lower serif
+else: mid_biserif(1,0',a,1/3); fi % upper terminal
+penlabels(G0,D0,G1,D1,G2,D2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pen_duplicate(3);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(.5curve,180); lft x.G3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+Delta_x = min(hround(curve_interspace+.5curve),x2r-x.G3l);
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,G3)(.7superpull)
+ & pulled_super_arc.e(G3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,G3)(.7superpull)
+ & pulled_super_arc.e(G3,4)(.5superpull) & p.e; fi % arc and lower terminal
+define_upper_and_lower(D2,D4,D3,
+ pulled_super_arc.r(2,G3)(.7superpull) & pulled_super_arc.r(G3,4)(.5superpull));
+filldraw stroke z.D2e--z.D4e; % inner stroke
+penlabels(0,1,2,G3,4,D2,D3,D4,5); endchar;
+
+cmchar "The letter d";
+beginchar("d",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pen_duplicate(5);
+pos4(vair,90); pos5(.5curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x.G5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x.G5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x.G5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,G5)
+ & pulled_arc.e(G5,6)...{up}z7e; % bowl
+Delta_x = min(hround(curve_interspace+.5curve),x6r-x.G5l);
+define_upper_and_lower(D4,D6,D5,
+ z3r{up}...pulled_arc.r(4,G5) & pulled_arc.r(G5,6)...{up}z7r);
+filldraw stroke z.D4e--z.D6e; % inner stroke
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,G5,6,D4,D5,D6,7); endchar;
+
+cmchar "The letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if .5left_curve<tiny.breadth: left_curve:=2tiny.breadth; fi
+pen_duplicate(3);
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(.5left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x.G3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+Delta_x = min(hround(curve_interspace+.5curve),x2r-x.G3l);
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,G3) & pulled_arc.e(G3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+ define_upper_and_lower(D2,D4,D3,pulled_arc.r(2,G3) & pulled_arc.r(G3,4));
+ filldraw stroke z.D2e--z.D4e; % inner stroke
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,G3) & super_arc.e(G3,4); % left bowl and arc
+ define_upper_and_lower(D2,D4,D3,super_arc.r(2,G3) & super_arc.r(G3,4));
+ filldraw stroke z.D2e--z.D4e; % inner stroke
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=x.D3r; endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,G3,4,D2,D3,D4,5); endchar;
+
+cmchar "The letter f";
+beginchar("f",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pen_duplicate(1);
+pickup tiny.nib; pos1(.5stem',0); lft x.G1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_double_stroke(1,2,a,b,bc,c,jut,if not monospace:1.25fi\\ jut); % double stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(G1,D1,2,3,4); endchar;
+
+iff not variant_g: cmchar "The letter g";
+beginchar("g",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+light_curve'=max(4fine.breadth/3,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pen_duplicate(2);
+pos2(.5light_curve',180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x.G2,x4]; y2=y4=.5[y1,y3];
+lft x.G2r=hround(1.75u-.375light_curve'); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,G2) & pulled_arc.e(G2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+Delta_x = min(hround(curve_interspace+.5light_curve'),x1r-x.G2l);
+define_upper_and_lower(D1,D3,D2,pulled_arc.r(1,G2) & pulled_arc.r(G2,3));
+filldraw stroke z.D1e--z.D3e; % inner stroke
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x.G2r]; y8'=superness[y.G2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x.G2]; y8''=superness[y.G2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+penlabels(0,1,G2,3,D1,D2,D3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: cmchar "Variant letter g";
+beginchar("g",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pen_duplicate(5);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(.5curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x.G5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x.G5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x.G5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,G5)
+ &super_arc.e(G5,6)&z6e{right}...{up}z7e; % bowl
+Delta_x = min(hround(curve_interspace+.5curve),x6r-x.G5l);
+define_upper_and_lower(D4,D6,D5,super_arc.r(4,G5) & super_arc.r(G5,6));
+filldraw stroke z.D4e--z.D6e; % inner stroke
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,G5,6,D4,D5,D6,7,8,9,10,11); endchar;
+
+cmchar "The letter h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pen_duplicate(1,1',2,2');
+pickup tiny.nib; pos1(.5stem,0); pos2(.5stem,0);
+pos1'(.5stem',0); pos2'(.5stem',0); pos3(stem,0);
+Delta_x = hround(interspace+.5stem);
+lft x.G1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3r=w-x.G1l;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+double filldraw stroke z1'e--z2'e; % left (double) stem
+h_stroke(D2,a,3,4); % arch and right stem
+if serifs: sloped_biserif.l(1',2',b,1/3,jut,serif_drop,b',1/3); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_biserif(2,1,c,1/3,jut,cd,1/3,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: mid_biserif(1,2,b,1/3); % upper left terminal
+ mid_biserif(2,1,cd,1/3); fi % lower left terminal
+penlabels(G1,D1,G2,D2,3,4); endchar;
+
+cmchar "The letter i";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5stem',0); pos2(.5stem',0);
+Delta_x = hround(interspace+.5stem');
+if odd(w-stem'-interspace): change_width; fi
+lft x.G1l=hround(.5w-.5stem'-.5interspace); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+double filldraw stroke z1e--z2e; % double stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,hround(x1+.5dot_diam-.2jut)-.5tiny)
+else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_biserif.l(1,2,a,1/3,.95jut,serif_drop,a',1/3); % upper serif
+ dish_biserif(2,1,b,1/3,jut,bc,1/3,c,1/3,.9jut); % lower serif
+else: mid_biserif(1,2,a,1/3); % upper terminal
+ mid_biserif(2,1,bc,1/3); fi % lower terminal
+penlabels(G1,D1,G2,D2,3,4); endchar;
+
+cmchar "The letter j";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("j",5.5u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5stem',0); pos2(.5stem',0);
+rt x.D1r=hround(.5w+.25u+.5stem'+.5interspace); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z.D1e--z.D2e; % right stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x.D1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs:
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x.D2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z.D2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z.D2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+ Delta_x = min(hround(interspace+.5stem'),x.D2l-x5r);
+ define_lower(G5,G2,z.D2r{down}...z5r{left});
+ filldraw stroke z.G1e--z.G5e; % left (inner) stem
+ sloped_biserif.l(1,2,a,1/3,1.1jut,serif_drop,a',1/3); % upper serif
+else: pen_duplicate(2');
+ pickup fine.nib; pos2'(.5stem',0); z2'=z2;
+ pos6(.2[vair,.5stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z.D2'r; (x.D2'l,y5l)=whatever[z7l,z5r]; x5l=x.D2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z.D2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; % arc and terminal
+ Delta_x = min(hround(interspace+.5stem'),x.D2l-x7l);
+ define_lower(G5,G2',z.D2'r..{down}z5r & super_arc.r(5,6)
+ & z6r{left}..z7r);
+ filldraw stroke z.G2'e--z.G5e; % inner stroke
+ pickup tiny.nib; filldraw stroke z.G1e--z.G2e; % right stem
+ mid_biserif(1,2,a,1/3); fi % upper terminal
+penlabels(G1,D1,G2,D2,G2',D2',3,4,5,G5,6,7); endchar;
+
+cmchar "The letter k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=stem2=max(tiny.breadth,hround(.5fudged.stem-stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+pen_duplicate(1,2);
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+Delta_x = hround(interspace+stem1);
+lft x.G1l=lft x.G2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x.D1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x.D1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pen_duplicate(0,0');
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z.D0r=whatever[z3,z4]; double filldraw stroke z1e..z0e--z0'e..z2e; % double stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_biserif.l(1,0,a,1/3,jut,serif_drop,a',1/3); % upper stem serif
+ dish_biserif(2,0',b,1/3,jut,bc,1/3,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark); % lower diagonal serif
+else: mid_biserif(1,0,a,1/3); % upper stem terminal
+ mid_biserif(2,0',bc,1/3); fi % lower stem terminal
+penlabels(G0,D0,G1,D1,G2,D2,3,4,5,6,11); endchar;
+
+cmchar "The letter l";
+beginchar("l",5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5stem',0); pos2(.5stem',0);
+Delta_x = hround(interspace+.5stem');
+if odd(w-stem'-interspace): change_width; fi
+lft x.G1l=hround(.5w-.5stem'-.5interspace); x1=x2; top y1=h; bot y2=0;
+double filldraw stroke z1e--z2e; % double stem
+if serifs: sloped_biserif.l(1,2,a,1/3,jut,serif_drop,a',1/3); % upper serif
+ dish_biserif(2,1,b,1/3,jut,bc,1/3,c,1/3,jut); % lower serif
+else: mid_biserif(1,2,a,1/3); % upper terminal
+ mid_biserif(2,1,bc,1/3); fi % lower terminal
+penlabels(G1,D1,G2,D2); endchar;
+
+cmchar "The letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(.5mfudged.stem-stem_corr);
+pen_duplicate(1,1',2,2');
+pickup tiny.nib; %pos1(.5mfudged.stem,0); pos2(.5mfudged.stem,0);
+pos1(shaved_stem,0); pos2(shaved_stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+Delta_x = hround(interspace+.5mfudged.stem);
+lft x.G1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; % stem, sic
+lft x3l=hround(.5w-.5mfudged.stem+.5interspace); x5l-x3r=x3l-x.D1r;
+if not monospace: r:=hround(x5+x.D1)+r-w-interspace; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+double filldraw stroke z1'e--z2'e; % left (double) stem
+h_stroke(D2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_biserif.l(1',2',c,1/3,jut,serif_drop,c',1/3); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x.D2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x.D2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_biserif(2,1,d,1/3,jut,de,1/3,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+else: mid_biserif(1,2,c,1/3); % upper left terminal
+ mid_biserif(2,1,de,1/3); fi % lower left terminal
+penlabels(G1,D1,G2,D2,3,4,5,6); endchar;
+
+cmchar "The letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pen_duplicate(1,1',2,2');
+pickup tiny.nib; %pos1(.5stem,0); pos2(.5stem,0);
+numeric shaved_stem; shaved_stem=hround(.5stem-stem_corr);
+pos1(shaved_stem,0); pos2(shaved_stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+Delta_x = hround(interspace+.5stem);
+lft x.G1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3r=w-x.G1l;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+double filldraw stroke z1'e--z2'e; % left (double) stem
+h_stroke(D2,a,3,4); % arch and right stem
+if serifs: sloped_biserif.l(1',2',b,1/3,jut,serif_drop,b',1/3); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x.D2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x.D2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_biserif(2,1,c,1/3,jut,cd,1/3,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: mid_biserif(1,2,b,1/3); % upper left terminal
+ mid_biserif(2,1,cd,1/3); fi % lower left terminal
+penlabels(G1,D1,G2,D2,3,4); endchar;
+
+cmchar "The letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pen_duplicate(2);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(.5curve,180); penpos4(curve,0);
+x.G2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x.G2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,G2) & pulled_arc.e(G2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+Delta_x = min(hround(curve_interspace+.5curve),x1r-x.G2l);
+define_upper_and_lower(D1,D3,D2,pulled_arc.r(1,G2) & pulled_arc.r(G2,3));
+filldraw stroke z.D1e--z.D3e; % inner stroke
+penlabels(1,G2,3,D1,D2,D3,4); endchar;
+
+cmchar "The letter p";
+beginchar("p",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pen_duplicate(0,0',1,2);
+pickup tiny.nib; pos1(.5stem',0); pos2(.5stem,0);
+pos0'(.5stem',0); pos0(.5stem,0); z0l=z0'l; x0'=x1; x0=x2;
+Delta_x = hround(interspace+.5stem);
+lft x.G1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x.D2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x.D2l), 1/3[rt x.D2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u+.5interspace; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+double filldraw stroke z1e--z0'e--z0e--z2e; % double stem
+%pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+%z7'=z2; x8l=x7'l; bot y8=0;
+%filldraw stroke z7'e--z8e; % point
+if serifs: sloped_biserif.l(1,0',a,1/3,jut,serif_drop,a',1/3); % upper serif
+ dish_biserif(2,0,b,1/3,jut,bc,1/3,c,1/3,jut); % lower serif
+else: mid_biserif(1,0,a,1/3); % upper terminal
+ mid_biserif(2,0,bc,1/3); fi % lower terminal
+penlabels(G0,D0,G1,D1,G2,D2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter q";
+beginchar("q",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pen_duplicate(5);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(.5curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x.G5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x.G5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x.G5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,G5)
+ &super_arc.e(G5,6)&z6e{right}...{up}z7e; % bowl
+Delta_x = min(hround(curve_interspace+.5curve),x6r-x.G5l);
+define_upper_and_lower(D4,D6,D5,super_arc.r(4,G5) & super_arc.r(G5,6));
+filldraw stroke z.D4e--z.D6e; % inner stroke
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,G5,6,D4,D5,D6,7,8); endchar;
+
+cmchar "The letter r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'+interspace; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pen_duplicate(0,0',1,2);
+pickup tiny.nib; pos0(hround(.5stem-stem_corr),0); pos2(hround(.5stem-stem_corr),0);
+pos1(hround(.5stem-stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(.5stem-stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+Delta_x = hround(interspace+.5stem-stem_corr);
+lft x.G1l=hround(2.5u-.5stem+stem_corr); bot y2=0;
+double filldraw stroke z1e--z0'e--z0e--z2e; % double stem
+if serifs: sloped_biserif.l(1,0',a,1/3,jut,serif_drop,a',1/3); % upper serif
+ dish_biserif(2,0,b,1/3,jut,bc,1/3,c,1/3,1.25jut); % lower serif
+else: mid_biserif(1,0,a,1/3); % upper terminal
+ mid_biserif(2,0,bc,1/3); fi % lower terminal
+penlabels(G1,D1,G2,D2,3,4,5,6); endchar;
+
+cmchar "The letter s";
+beginchar("s",7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pen_duplicate(3,6);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x.G3l=hround .6u; rt x.D6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[.75s_slab,.75ess']-fine;
+Delta_x = min(hround(curve_interspace+x3r-x3l+fine),x2l-x.G3r); % x2l-x.G3r=x.D6l-x7r
+ellipse_set(2l,G3l,4l,0l); ellipse_set(2r,G3r,4r,0r); y3=y3r;
+ellipse_set(7l,D6l,5l,0l); ellipse_set(7r,D6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,G3) & z.G3e{down}
+ ..z4e---z5e..z.D6e{down} & super_arc.e(D6,7); % main stroke
+define_upper_and_lower(D2,D4,D3,super_arc.l(2,G3) & z.G3l{down}..z4l---z5l);
+define_upper_and_lower(G5,G7,G6,z4r---z5r..z.D6r{down} & super_arc.r(D6,7));
+filldraw stroke z.D2e--z.D4e; filldraw stroke z.G5e--z.G7e; % inner strokes
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,G3,4,D2,D3,D4,5,D6,7,G5,G6,G7,8,8',9,10); endchar;
+
+cmchar "The letter t";
+beginchar("t",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+pen_duplicate(2,3);
+numeric shaved_stem; shaved_stem=hround(.5stem if hefty:-\\stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x.G2r=lft x.G3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x.G3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x.G3r,x4]);
+ filldraw stroke z.G2e..super_arc.e(G3,4)...{up}z5e; % stem and hook
+ Delta_x = min(hround(interspace+shaved_stem),x4r-x.G3l);
+ define_lower(D4,D3,super_arc.r(G3,4));
+ filldraw stroke z.D2e--z.D4e; % inner stroke
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x.G3l,x5l]; x4r:=1/3[x.G3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z.G2e..super_arc.e(G3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ Delta_x = min(hround(interspace+shaved_stem),x5r-x.G3l);
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ define_lower(D4,D3,super_arc.r(G3,4)&z4r{right}...{up}z5r);
+ else: filldraw p; define_lower(D4,D3,super_arc.r(G3,4)
+ & z4r{right}..tension .9 and atleast 1..z5r); fi;
+ filldraw stroke z.D2e--z.D4e; fi % inner stroke
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x.D2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x.D2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+penlabels(1,G2,D2,G3,D3,4,D4,5,6,7,8); endchar;
+
+cmchar "The letter u";
+beginchar("u",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5stem,0); pos2(.5stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x.G1l=hround(2.5u-.5stem); x1=x2; x3r=w-x.G1l; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+pen_duplicate(2');
+penpos2'(.5stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x.G2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(G2',5)}} & z5e{right}...{up}z6e; % arc
+pickup tiny.nib;
+Delta_x = min(hround(interspace+.5stem),x5r-x.G2r);
+define_lower(D5,D2,{{interim superness:=hein_super;
+ pulled_arc.r(G2',5)}} & z5r{right}...{up}z6r);
+double filldraw stroke z1e--z2e; % left (double) stem
+filldraw stroke z.D2e--z.D5e; % inner stroke
+pickup fine.nib;
+if serifs: sloped_biserif.l(1,2,a,1/3,jut,serif_drop,a',1/3); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); % lower right serif
+else: mid_biserif(1,2,a,1/3); fi % upper left terminal
+penlabels(G1,D1,G2,D2,3,4,5,D5); labels(6); endchar;
+
+cmchar "The letter v";
+beginchar("v",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+pen_duplicate(1,2);
+outer_jut=.75jut; x.G1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x.D2r=x3r; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x.G1l-apex_corr-interspace);
+penpos1(alpha*.5left_stem,0); penpos2(alpha*.5left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+Delta_x = hround(alpha*(interspace+.5left_stem));
+z0=whatever[z.D1r,z.D2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,D2l,D1l)--diag_end(D2l,D1l,1,1,D1r,D2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,D2l,D1l)
+ --diag_end(D2l,D1l,1,1,D1r,0)--cycle; fi % left and right diagonals
+fill diag_end(G2l,G1l,1,1,G1r,G2r)--diag_end(G1r,G2r,1,1,G2l,G1l)--cycle;
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ prime_points_inside(2,1); pen_duplicate(1',2');
+ if rt x.D1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x.D1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_biserif(1',2,a,1/3,outer_jut,ab,1/3,b,1/2,inner_jut); % left serif
+ mid_biserif(2',1,ab',1/3); % lower terminal
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: mid_biserif(1,2,ab,1/3); % upper terminal
+ mid_biserif(2,1,ab',1/3); fi % lower terminal
+penlabels(0,G1,D1,G2,D2,3,4); endchar;
+
+cmchar "The letter w";
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x.G1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+pen_duplicate(1,2);
+x2-x1=x4-x3=x6-x5=x8-x7; x.D2r=x3r; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x.G1l+mid_corr-2apex_corr+interspace);
+penpos1(alpha*.5stem1,0); penpos2(alpha*.5stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+Delta_x = hround(alpha*(interspace+.5stem1));
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z.D1r,z.D2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(D1l,D2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(D2r,D1r,1,1,D1l,D2l)--cycle; % diagonals
+fill diag_end(G2r,G1r,1,1,G1l,G2l)--diag_end(G1l,G2l,1,1,G2r,G1r)--cycle;
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ prime_points_inside(2,1); pen_duplicate(1',2');
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_biserif(1',2,a,1/3,outer_jut,ab,1/3,b,1/2,inner_jut1); % left serif
+ mid_biserif(2',1,ab',1/3); % lower left terminal
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); % right serif
+else: mid_biserif(1,2,ab,1/3); % upper terminal
+ mid_biserif(2,1,ab',1/3); fi % lower terminal
+penlabels(0,G1,D1,G2,D2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter x";
+beginchar("x",if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+pen_duplicate(1,4);
+x.G1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x.D4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x.D4r-x.G1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*.5stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*.5stem1,0);
+Delta_x = hround(alpha1*(interspace+.5stem1));
+if hefty:
+ z12=whatever[z2l,z3l]=whatever[z.D1r,z.D4r];
+ z13=whatever[z2l,z3l]=whatever[z.G1l,z.G4l];
+ z24=whatever[z2r,z3r]=whatever[z.D1r,z.D4r];
+ z34=whatever[z2r,z3r]=whatever[z.G1l,z.G4l];
+ fill diag_end(12,D1r,.5,1,D1l,D4l)--diag_end(D1l,D4l,.5,1,D4r,24)--z24
+ --diag_end(24,2r,1,.5,2l,12)--z12--cycle; % upper diagonals
+ fill diag_end(34,G4l,.5,1,G4r,G1r)--diag_end(G4r,G1r,.5,1,G1l,13)--z13
+ --diag_end(13,3l,1,.5,3r,34)--z34--cycle; % lower diagonals
+else: forsuffixes e=l,r: forsuffixes $=G,D:
+ z$0e = whatever[z2e,z3e] = whatever[z$1,z$4]; endfor endfor
+ fill diag_end(D4r,D1r,.5,1,D1l,D4l)
+ --diag_end(D1l,D4l,.5,1,D4r,D1r)--cycle; % upper left diagonal
+ fill diag_end(G4r,G1r,.5,1,G1l,G4l)
+ --diag_end(G1l,G4l,.5,1,G4r,G1r)--cycle; % lower left diagonal
+ fill z.D0l--z.D0r--diag_end(D0r,2r,.5,1,2l,D0l)--cycle; % upper right diagonal
+ fill diag_end(G0l,3l,.5,1,3r,G0r)--z.G0r--z.G0l--cycle; fi % lower right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ pen_duplicate(1',4');
+ if rt x.D1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x.D1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x.G4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x.G4'l-inner_jut2-xjut; fi
+ dish_biserif(1',4,a,1/3,outer_jut,ab,1/2,b,2/3,inner_jut1); % upper left serif
+ dish_biserif(4',1,c,2/3,inner_jut2,cd,1/2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); % lower left serif
+else: mid_biserif(1,4,ab,1/2); % upper left terminal
+ mid_biserif(4,1,cd,1/2); fi % lower right terminal
+penlabels(0,G0,D0,G1,D1,2,3,G4,D4,12,13,24,34); endchar;
+
+cmchar "The letter y";
+beginchar("y",if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+pen_duplicate(1,2);
+x.G1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x.G2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x.G1l-apex_corr-interspace);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*.5left_stem,0); penpos2(alpha3*.5left_stem,0);
+Delta_x = hround(alpha3*(interspace+.5left_stem));
+ z.D0r=whatever[z.D1r,z.D2r]=z4l+whatever*(z3r-z4r);
+ z.G0l=z.G2l;%=z3l
+ z.G0r=whatever[z.G1r,z.G2r]=whatever[z.G0l,z.D0r];
+ z.D0l=whatever[z.D1l,z.D2l]=whatever[z.G0l,z.D0r];
+if y.G0r>notch_cut: y0:=notch_cut;
+ %y.G0l:=y.G0l-0/3*(y.G0r-y0);
+ y.G0r:=y.G0r-1/3*(y.G0r-y0);
+ %y.D0l:=y.D0l-0/3*(y.G0r-y0);
+ y.D0r:=y.D0r-1/3*(y.G0r-y0);
+ fill z.D0r+.5right{up}...{z4r-z3r}diag_end(D0r,4l,1,1,4r,3r)
+ --z3r--z.G0l--diag_end(G0l,G1l,1,1,G1r,G0r){z2-z1}
+ ...{down}z.G0r--z.D0l--diag_end(D0l,D1l,1,1,D1r,D0r){z2-z1}
+ ...{down}z.D0r+.5left--cycle; % left and right diagonals
+else: fill z.D0r--diag_end(D0r,4l,1,1,4r,3r)--z3r--z.G0l
+ --diag_end(G0l,G1l,1,1,G1r,G0r)--z.G0r--z.D0l
+ --diag_end(D0l,D1l,1,1,D1r,D0l)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ pen_duplicate(1');
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_biserif(1',2,a,1/3,outer_jut,ab,1/3,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); % arc and terminal
+ mid_biserif(1,2,ab,1/3); fi % left terminal
+penlabels(G0,D0,G1,D1,G2,D2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter z";
+beginchar("z",8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=max(.6[vair,.5stem],tiny+eps);
+else: arm_thickness1=vair; arm_thickness2=vair';
+ z_stem=max(.9[vair,.5stem],tiny+eps); fi
+pen_duplicate(1,2,3,4);
+pickup tiny.nib; rt x.D1r=rt x.D2r=hround(w-.8u); lft x.G3l=lft x.G4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem+interspace-tiny,y2-y3,x.D2r-x.G3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+Delta_x = hround(alpha*(interspace+z_stem));
+pair delta; delta=penoffset z3-z2 of currentpen;
+double
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % double diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x.D1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x.G4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(G1,D1,G2,D2,G3,D3,G4,D4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/bbm/blbordsp.mf b/Master/texmf-dist/fonts/source/public/bbm/blbordsp.mf
new file mode 100644
index 00000000000..2efff4d2883
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/blbordsp.mf
@@ -0,0 +1,131 @@
+% Computer Modern Blackboard specials:
+% Was partly romand.mf and punct.mf; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93) v1.0
+% This file contains the digits 1 and 2, together with parentheses and brackets.
+
+% Character codes \0061, \0062, \0050, \0051, \0133 and \0135 are generated.
+
+cmchar "The numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib; pen_duplicate(1,2);
+pos1(.5light_stem,0); pos2(.5light_stem,0);
+lft x.G1l=lft x.G2l=hround(.5(w+.5u)-.5cap_stem'-.5interspace); top y1=h+o; bot y2=0;
+Delta_x = hround(interspace+.5light_stem);
+double filldraw stroke z1e--z2e; % double stem
+if not serifs: save slab; slab=bar; fi
+dish_biserif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ ab,1/3,
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x.G1l-2.35u);
+tiny.rt x.D1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(G1,D1,G2,D2,3,4); endchar;
+
+cmchar "The numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[.5curve,.5cap_curve],0);
+pen_duplicate(3);
+top y2r=h+o; x2=.5(w-.5u); rt x.D3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x.D3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z.D3e{down}.. z4e---z5e--z6e; % stroke
+Delta_x = min(hround(curve_interspace+.4[.5curve,.5cap_curve]),x.D3l-x2r);
+define_upper_and_lower(G2,G4,G3,z2r{right}..tension atleast .9 and atleast 1
+ ..z.D3r{down}.. z4r---z5r);
+filldraw stroke z.G2e--z.G4e; % inner stroke
+penlabels(0,1,2,D3,4,G2,G3,G4,5,6,7,8); endchar;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib; pen_duplicate(2);
+pos1(vair,0); pos2(.75[hair,.5stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x.G2l=hround(x1-cap_interspace-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x.G2e-x1e),y2-y1}...z.G2e
+ ...{3(x3e-x.G2e),y3-y2}z3e; % arc
+Delta_x = min(hround(curve_interspace+.75[hair,.5stem]),x1l-x.G2r);
+define_upper_and_lower(D1,D3,D2,z1l{3(x.G2l-x1l),y2-y1}...z.G2l
+ ...{3(x3l-x.G2l),y3-y2}z3l);
+filldraw stroke z.D1e--z.D3e; % inner stroke
+penlabels(1,G2,3,D1,D2,D3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib; pen_duplicate(2);
+pos1(vair,0); pos2(.75[hair,.5stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x.D2r=hround(x1+cap_interspace+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x.D2e-x1e),y2-y1}...z.D2e
+ ...{3(x3e-x.D2e),y3-y2}z3e; % arc
+Delta_x = min(hround(curve_interspace+.75[hair,.5stem]),x.D2l-x1r);
+define_upper_and_lower(G1,G3,G2,z1r{3(x.D2r-x1r),y2-y1}...z.D2r
+ ...{3(x3r-x.D2r),y3-y2}z3r);
+filldraw stroke z.G1e--z.G3e; % inner stroke
+penlabels(1,D2,3,G1,G2,G3); endchar;
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0); pen_duplicate(1,2);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,.5stem-stem_corr);
+else: top_thickness=2side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+Delta_x = hround(interspace+side_thickness);
+top y1=h; bot y2=-d; lft x.G1l=lft x.G2l=hround(2.5u-.5side_thickness)-1-eps;
+double filldraw stroke z1e--z2e; % double stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x.G1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(G1,D1,G2,D2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0); pen_duplicate(1,2);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,.5stem-stem_corr);
+else: top_thickness=2side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+Delta_x = hround(interspace+side_thickness);
+top y1=h; bot y2=-d; rt x.D1r=rt x.D2r=hround(w-2.5u+.5side_thickness)+1+eps;
+double filldraw stroke z1e--z2e; % double stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x.D1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(G1,D1,G2,D2,3,4,5,6); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/bbm/blbordu.mf b/Master/texmf-dist/fonts/source/public/bbm/blbordu.mf
new file mode 100644
index 00000000000..94945ee59a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbm/blbordu.mf
@@ -0,0 +1,884 @@
+% Computer Modern Blackboard upper case:
+% Was romanu.mf; modified for blackboard letter
+% Gilles F. ROBERT (29-03-93) v1.0
+
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+% modified March 93 by Gilles F. ROBERT for blackboard letters
+
+% Character codes \0101 through \0132 are generated.
+
+cmchar "The letter A";
+beginchar("A",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=max(min(cap_hair if hefty: -3stem_corr fi,.5right_stem),tiny);
+pen_duplicate(1,2);
+outer_jut=.8cap_jut; x.G1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x.D2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem+cap_interspace,y2-y1,x4r-x.G1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+Delta_x = hround(alpha*(cap_interspace+left_stem));
+z0=whatever[z.D1r,z.D2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,D2l,D1l)--diag_end(D2l,D1l,1,1,D1r,D2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,D2l,D1l)
+ --diag_end(D2l,D1l,1,1,D1r,0)--cycle; fi % left and right diagonals
+fill diag_end(G2l,G1l,1,1,G1r,G2r)--diag_end(G1r,G2r,1,1,G2l,G1l)--cycle; % left outer diagonal
+penpos5(whatever,angle(z2-z1)); z5=whatever[z.D1,z.D2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ prime_points_inside(2,1); pen_duplicate(1',2');
+ if rt x.D1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x.D1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_biserif(1',2,a,1/2,outer_jut,ab,1/2,b,.6,inner_jut)(dark); % left serif
+ mid_biserif(2',1,ab',1/2); % upper terminal
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); % right serif
+else: mid_biserif(1,2,ab,1/3)(dark); % lower terminal
+ mid_biserif(2,1,ab',1/2); fi % upper terminal
+penlabels(0,G1,D1,G2,D2,3,4,5,6); endchar;
+
+cmchar "The letter B";
+beginchar("B",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=.5cap_stem-hround stem_corr; middle_weight=.6vair+.5;
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+Delta_x = hround(cap_interspace+left_stem);
+lft x.G1l=lft x.G2l=hround max(2u,3u-left_stem); top y1=h; bot y2=0;
+double filldraw stroke z1e--z2e; % double stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z.G1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z.G2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x.D1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x.G1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x.G1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_biserif(1,2,a,1/3,cap_jut,ab,1/3,b,1/3,.5cap_jut); % upper serif
+ nodish_biserif(2,1,c,1/3,cap_jut,cd,1/3,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(G1,D1,G2,D2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The letter C";
+if serifs: beginchar("C",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(hround(.5cap_curve),180); pos4(cap_band,270); pos5(hair,360);
+ pen_duplicate(3);
+ rt x1r=rt x5r=hround(w-u); lft x.G3r=hround u; x2=x4=.55[x.G3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,G3) & pulled_arc.e(G3,4)...{up}z5e; % exterior arc
+ Delta_x = min(hround(cap_curve_interspace+.5cap_curve),x4r-x.G3l);
+ define_upper_and_lower(D2,D4,D3,pulled_arc.r(2,G3) & pulled_arc.r(G3,4));
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar("C",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(.5cap_curve,180); pos4(slab,270); pos5(flare,275);
+ pen_duplicate(3);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x.G3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,G3)
+ & super_arc.e(G3,4) & term.e(4,5,right,.8,4); % exterior arc and terminals
+ Delta_x = min(hround(cap_curve_interspace+.5cap_curve),x4r-x.G3l);
+ define_upper_and_lower(D2,D4,D3,super_arc.r(2,G3) & super_arc.r(G3,4)); fi
+filldraw stroke z.D2e--z.D4e; % inner stroke
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,G3,4,D2,D3,D4,5,6); endchar;
+
+cmchar "The letter D";
+beginchar("D",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5cap_stem',0); pos2(.5cap_stem',0);
+lft x.G1l=lft x.G2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+Delta_x = hround(cap_interspace+.5cap_stem');
+double filldraw stroke z1e--z2e; % double stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z.G1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z.G2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_biserif(1,2,a,1/3,cap_jut,ab,1/3,b,1/3,.5cap_jut); % upper serif
+ nodish_biserif(2,1,c,1/3,cap_jut,cd,1/3,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(G1,D1,G2,D2,3,4,5,6,7); endchar;
+
+cmchar "The letter E";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5cap_stem,0); pos2(.5cap_stem,0);
+Delta_x = hround(cap_interspace+.5cap_stem);
+lft x.G1l=lft x.G2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+double filldraw stroke z1e--z2e; % double stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x.G1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x.D1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x.G2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_biserif(1,2,a,1/3,cap_jut,ab,1/3,b,1/3,.5cap_jut); % upper serif
+ nodish_biserif(2,1,c,1/3,cap_jut,cd,1/3,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,G1,D1,G2,D2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter F";
+beginchar("F",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5cap_stem,0); pos2(.5cap_stem,0);
+Delta_x = hround(cap_interspace+.5cap_stem);
+lft x.G1l=lft x.G2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+double filldraw stroke z1e--z2e; % double stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x.G1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x.D1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_biserif(1,2,a,1/3,cap_jut,ab,1/3,b,1/3,.5cap_jut); % upper serif
+ dish_biserif(2,1,c,1/3,cap_jut,cd,1/3,d,1/3,1.25cap_jut); % lower serif
+else: mid_biserif(2,1,cd,1/3); fi % lower terminal
+math_fit(0,ic#-2.5u#); penlabels(0,G1,D1,G2,D2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter G";
+if serifs: beginchar("G",14u#,cap_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(hround(.5cap_curve),180); pos4(cap_band,270);
+ pen_duplicate(3);
+ rt x1r=hround(w-2u); lft x.G3r=hround u; x2=x4=.55[x.G3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,G3) & pulled_arc.e(G3,4)...z5e{up}; % arc
+ Delta_x = min(hround(cap_curve_interspace+.5cap_curve),x4r-x.G3l);
+ define_upper_and_lower(D2,D4,D3,pulled_arc.r(2,G3) & pulled_arc.r(G3,4));
+ filldraw stroke z.D2e--z.D4e; % inner stroke
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar("G",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pen_duplicate(3);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(hround(.75cap_curve),180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x.G3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,G3)
+ & super_arc.e(G3,4) & term.e(4,5,right,1,4); % arc and terminals
+ Delta_x = min(hround(cap_curve_interspace+.5cap_curve),x4r-x.G3l);
+ define_upper_and_lower(D2,D4,D3,super_arc.r(2,G3) & super_arc.r(G3,4));
+ filldraw stroke z.D2e--z.D4e; % inner stroke
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,G3,4,D2,D3,D4,5,6,7,8,9); endchar;
+
+cmchar "The letter H";
+beginchar("H",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5cap_stem,0); pos2(.5cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+Delta_x = hround(cap_interspace+.5cap_stem);
+lft x.G1l=lft x.G2l=hround max(2u,3u-.5cap_stem); x3r=x4r=w-x.G1l;
+top y1=top y3=h; bot y2=bot y4=0;
+double filldraw stroke z1e--z2e; % left (double) stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x.D1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x.D1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x.D1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_biserif(1,2,a,1/3,cap_jut,ab,1/3,b,1/3,inner_jut); % upper left serif
+ dish_biserif(2,1,c,1/3,cap_jut,cd,1/3,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower left serif
+else: mid_biserif(1,2,ab,1/3); % upper left terminal
+ mid_biserif(2,1,cd,1/3); fi % lower left terminal
+math_fit(0,.5ic#); penlabels(G1,D1,G2,D2,3,4,5,6); endchar;
+
+cmchar "The letter I";
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5cap_stem,0); pos2(.5cap_stem,0);
+Delta_x = hround(cap_interspace+.5cap_stem);
+lft x.G1l=lft x.G2l=hround(.5w-.5cap_stem-.5cap_interspace); top y1=h; bot y2=0;
+double filldraw stroke z1e--z2e; % double stem
+if serifs: dish_biserif(1,2,a,1/3,1.05cap_jut,ab,1/3,b,1/3,1.05cap_jut); % upper serif
+ dish_biserif(2,1,c,1/3,1.05cap_jut,cd,1/3,d,1/3,1.05cap_jut); % lower serif
+else: mid_biserif(1,2,ab,1/3); % upper terminal
+ mid_biserif(2,1,cd,1/3); fi % lower terminal
+math_fit(0,.5ic#); labels(G1,D1,G2,D2); endchar;
+
+cmchar "The letter J";
+beginchar("J",9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5cap_stem',0); pos2(.5cap_stem',0);
+top y1=h; rt x.D1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x.D2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z.D1e--z.D2e&super_arc.e(D2,3); % stem and arc
+ Delta_x = min(hround(cap_interspace+.5cap_stem'),x.D2l-x3r);
+ define_lower(G3,G2,super_arc.r(D2,3));
+ filldraw stroke z.G1e--z.G3e; % left (inner) stroke
+ dish_biserif(1,2,a,1/3,1.3cap_jut,ab,1/3,b,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: pen_duplicate(3);
+ pickup fine.nib; pos3(.5cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x.D3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z.D3e{down}....term.e(4,5,left,1,4); % arc and terminal
+ Delta_x = min(hround(cap_interspace+.5cap_stem'),x.D2l-x5l);
+ define_lower(G4,G3,z.D3r{down}....term.r(4,5,left,1,4));
+ filldraw stroke z.G3e--z.G4e; % left (inner) stroke
+ pickup tiny.nib; double filldraw stroke z1e--z2e; % double stem
+ mid_biserif(1,2,ab,1/3); fi % terminal
+math_fit(0,.5ic#-.5u#); penlabels(G1,D1,G2,D2,D3,G3,4,G4,5); endchar;
+
+cmchar "The letter K";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5fudged.cap_stem,0); pos2(.5fudged.cap_stem,0);
+Delta_x = hround(cap_interspace+.5fudged.cap_stem);
+lft x.G1l=lft x.G2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+double filldraw stroke z1e--z2e; % double stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x.D1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x.D1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z.D1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z.D1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x.D2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x.D2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_biserif(1,2,a,1/3,cap_jut,ab,1/3,b,1/3,cap_jut); % upper stem serif
+ dish_biserif(2,1,c,1/3,cap_jut,cd,1/3,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); % lower diagonal serif
+else: mid_biserif(1,2,ab,1/3); % upper stem terminal
+ mid_biserif(2,1,cd,1/3); fi % lower stem terminal
+math_fit(0,.5ic#); penlabels(G1,D1,G2,D2,3,4,5,6); endchar;
+
+cmchar "The letter L";
+beginchar("L",11u#-width_adj#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5cap_stem,0); pos2(.5cap_stem,0);
+Delta_x = hround(cap_interspace+.5cap_stem);
+lft x.G1l=lft x.G2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+double filldraw stroke z1e--z2e; % double stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x.G2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_biserif(1,2,a,1/3,cap_jut,ab,1/3,b,1/3,1.25cap_jut); % upper serif
+ nodish_biserif(2,1,c,1/3,cap_jut,cd,1/3,d,1/3,.5cap_jut); % lower serif
+else: mid_biserif(1,2,ab,1/3); fi % upper terminal
+math_fit(0,u#); penlabels(G1,D1,G2,D2,3,4); endchar;
+
+cmchar "The letter M";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(max(.5fudged.hair+stem_corr,tiny));
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<2stem1: stem4:=2stem1; fi
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+Delta_x = hround(cap_interspace+stem1);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x.G1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+double filldraw stroke z1e--z2e; % left (double) stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x.D1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x.D1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(G1,G2,a,1/3,-cap_jut); mid_biserif(1,2,a',1/3); % upper left serif
+ dish_biserif(2,1,b,1/2,cap_jut,bc,1/2,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); % lower right serif
+else: mid_biserif(1,2,a',1/3); % upper left terminal
+ mid_biserif(2,1,bc,1/2)(dark); fi % lower left terminal
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,G1,D1,1',G2,D2,3,3',4,5,6,7,8); endchar;
+
+cmchar "The letter N";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem,thin_stem'; thin_stem=hround(fudged.hair+stem_corr);
+ thin_stem'=hround(max(.5(fudged.hair+stem_corr),tiny+eps)); pen_duplicate(1,2);
+pickup tiny.nib; pos1(thin_stem',0); pos2(thin_stem',0);
+Delta_x = hround(cap_interspace+thin_stem');
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x.G1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+double filldraw stroke z1e--z2e; % left (double) stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ if x.D1r-x.G1l<x5r-x5l: lft x5l=tiny.lft x.G1l; else: x5r=tiny.rt x.D1r; fi
+ x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x.G1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos6(whatever,90);
+ z6l=z4l;
+ if xpart((z.D1r-z.G1l) rotated (-angle(z.G1l-z6l)+90))<cap_stem-3stem_corr-tiny: z5l=z.G1l;
+ penpos5(whatever,0);
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ else: z5r=z.D1r; numeric alpha;
+ alpha=diag_ratio(1,cap_stem-3stem_corr-tiny,y5r-y6l,x6l-x5r);
+ penpos5(alpha*max(eps,cap_stem-3stem_corr-tiny),0);
+ z6r=z5r+whatever*(z5l-z6l); fi
+ %z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ %z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l); fi
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(G1,G2,a,1/3,-cap_jut);
+ mid_biserif(1,2,a',1/3); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut-x5l+x.G1l); fi % upper left serif
+ dish_biserif(2,1,b,1/2,cap_jut,bc,1/2,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); % upper right serif
+else: mid_biserif(1,2,a',1/3); % upper left terminal
+ mid_biserif(2,1,bc,1/2)(dark); fi % lower left terminal
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(G1,D1,1',G2,D2,3,4,4',5,6,7); endchar;
+
+cmchar "The letter O";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(hround(.5cap_curve),180); penpos4(cap_curve,0);
+pen_duplicate(2);
+if monospace: x.G2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x.G2r=hround u; fi
+x4r=w-x.G2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,G2)(.5superpull)
+ & pulled_super_arc.e(G2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+Delta_x = min(hround(cap_curve_interspace+.5cap_curve),x1r-x.G2l) ;
+define_upper_and_lower(D1,D3,D2,
+ pulled_super_arc.r(1,G2)(.5superpull) & pulled_super_arc.r(G2,3)(.5superpull));
+filldraw stroke z.D1e--z.D3e; % inner stroke
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,G2,3,D1,D2,D3,4); endchar;
+
+cmchar "The letter P";
+beginchar("P",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pen_duplicate(0,0',1,2);
+pickup tiny.nib; penpos1(.5cap_stem'-tiny,0); penpos2(.5cap_stem-tiny,0);
+pos0(.5cap_stem',0); pos0'(.5cap_stem,0);
+Delta_x = hround(cap_interspace+.5cap_stem);
+lft x.G1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y.D0=y.D0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z.G1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x.D2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+double filldraw stroke z1e--z0e--z0'e--z2e; % double stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_biserif(1,0,a,1/3,cap_jut,ab,1/3,b,1/3,.5cap_jut); % upper serif
+ dish_biserif(2,0',c,1/3,cap_jut,cd,1/3,d,1/3,cap_jut); % lower serif
+else: mid_biserif(2,0',cd,1/3); fi % lower terminal
+math_fit(0,ic#-2.5u#); penlabels(G0,D0,G1,D1,G2,D2,3,4,5,6,7); endchar;
+
+cmchar "The letter Q";
+beginchar("Q",14u#-width_adj#,cap_height#,comma_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=cap_curve-hround stem_corr;
+penpos1(vair',90); penpos3(vair',-90);
+penpos2(hround(.5light_curve),180); penpos4(light_curve,0);
+pen_duplicate(2);
+if monospace: x.G2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"Q"| like |"O"|
+else: x.G2r=hround u; fi
+x4r=w-x.G2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,G2)(.5superpull)
+ & pulled_super_arc.e(G2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+Delta_x = min(hround(cap_curve_interspace+.5cap_curve),x1r-x.G2l) ;
+define_upper_and_lower(D1,D3,D2,
+ pulled_super_arc.r(1,G2)(.5superpull) & pulled_super_arc.r(G2,3)(.5superpull));
+filldraw stroke z.D1e--z.D3e; % inner stroke
+pickup tiny.nib;
+if hefty: penpos5(1.2(.5[cap_bar,light_curve]),0); penpos6(1.2light_curve,0);
+ x5=.5w; x6r=hround(w-1.5u);
+ y5=vround .28h; y6=-d;
+ fill diag_end(6r,5r,.25,1,5l,6l)--diag_end(5l,6l,.5,1,6r,5r)--cycle; % tail
+else: pos3'(vair,270); pos5(vair,180); pos6(vair,90);
+ pos7(cap_curve,85); penpos8(eps,180);
+ z3'=z3; x6=x3; top y6r=vround(.2h+.5vair);
+ lft x5r=hround(.5w-1.25u-.5vair); y5=.5[y3,y6];
+ bot y7l=-d; x7l=2/3[x6,x8]; y8=0; rt x8=hround(x4r+.1u);
+ filldraw stroke z3'e{left}...z5e{up}...z6e{right}
+ ..z7e{right}...z8e{up}; fi % tail
+math_fit(-.3cap_height#*slant-.5u#,ic#);
+penlabels(1,G2,3,D1,D2,D3,4,5,6,7,8); endchar;
+
+cmchar "The letter R";
+beginchar("R",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5cap_stem',0); pos2(.5cap_stem',0);
+Delta_x = hround(cap_interspace+.5cap_stem');
+lft x.G1l=lft x.G2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+double filldraw stroke z1e--z2e; % double stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z.G1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x.D2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_biserif(1,2,a,1/3,cap_jut,ab,1/3,b,1/3,.5cap_jut); % upper serif
+ dish_biserif(2,1,c,1/3,cap_jut,cd,1/3,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; % tail
+ mid_biserif(2,1,cd,1/3); fi % lower terminal
+math_fit(0,.75ic#); penlabels(0,G1,D1,G2,D2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter S";
+beginchar("S",10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pen_duplicate(3,6);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x.G3l=hround u; rt x.D6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround (.5[.75s_slab,.75ess']-fine);
+Delta_x = min(hround(cap_curve_interspace+x3r-x3l+fine),x2l-x.G3r); % x2l-x.G3r=x.D6l-x7r
+ellipse_set(2l,G3l,4l,0l); ellipse_set(2r,G3r,4r,0r); y3=y3r;
+ellipse_set(7l,D6l,5l,0l); ellipse_set(7r,D6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,G3) & z.G3e{down}
+ ..z4e---z5e..z.D6e{down} & super_arc.e(D6,7); % main stroke
+define_upper_and_lower(D2,D4,D3,
+ super_arc.l(2,G3) & (z.G3l{down}..z4l---z5l));
+define_upper_and_lower(G5,G7,G6,
+ (z4r---z5r..z.D6r{down}) & super_arc.r(D6,7));
+filldraw stroke z.D2e--z.D4e; filldraw stroke z.G5e--z.G7e; % inner strokes
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,1',2,G3,4,D2,D3,D4,5,D6,7,G5,G6,G7,8,8',9,10); endchar;
+
+cmchar "The letter T";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pen_duplicate(1,2);
+pickup tiny.nib; pos1(.5cap_stem,0); pos2(.5cap_stem,0);
+lft x.G1l=lft x.G2l=hround(.5w-.5cap_stem-.5cap_interspace); top y1=h; bot y2=0;
+Delta_x = hround(cap_interspace+.5cap_stem);
+double filldraw stroke z1e--z2e; % double stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_biserif(2,1,c,1/3,1.414cap_jut,cd,1/3,d,1/3,1.414cap_jut); % lower serif
+ nodish_biserif(1,2,a,1/3,.5cap_jut,ab,1/3,b,1/3,.5cap_jut); % upper bracketing
+else: mid_biserif(2,1,cd,1/3); fi % lower terminal
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(G1,D1,G2,D2,3,4,5,6); endchar;
+
+cmchar "The letter U";
+beginchar("U",13u#+.5width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pen_duplicate(1,2,2');
+pickup tiny.nib; pos1(.5cap_stem,0); pos2(.5cap_stem,0);
+pos2'(.5cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x.G1,x5]; x4=x5; x.G1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x.G1l=hround max(2u,3u-.5cap_stem-.5cap_interspace);
+Delta_x = min(hround(cap_interspace+.5cap_stem),x3r-x.G2r);
+double filldraw stroke z1e--z2e; % left (double) stem
+filldraw stroke pulled_arc.e(G2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+define_lower(D3,D2',pulled_arc.r(G2',3));
+filldraw stroke z.D2'e--z.D3e; % inner stroke
+if serifs: dish_biserif(1,2,a,1/3,cap_jut,ab,1/3,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); % right serif
+else: mid_biserif(1,2,ab,1/3); fi % left terminal
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(G1,D1,G2,D2,3,D3,4,5); endchar;
+
+cmchar "The letter V";
+beginchar("V",13u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+pen_duplicate(1,2);
+outer_jut=.75cap_jut; x.G1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x.D2r=x3r; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x.G1l-apex_corr-cap_interspace);
+penpos1(alpha*.5left_stem,0); penpos2(alpha*.5left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+Delta_x = hround(alpha*(cap_interspace+.5left_stem));
+z0=whatever[z.D1r,z.D2r]=whatever[z3l,z4l];
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,D2l,D1l)--diag_end(D2l,D1l,1,1,D1r,D2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,D2l,D1l)
+ --diag_end(D2l,D1l,1,1,D1r,0)--cycle; fi % left and right diagonals
+fill diag_end(G2l,G1l,1,1,G1r,G2r)--diag_end(G1r,G2r,1,1,G2l,G1l)--cycle; % lower left diagonal
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ prime_points_inside(2,1); pen_duplicate(1',2');
+ if rt x.D1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x.D1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_biserif(1',2,a,1/3,outer_jut,ab,1/3,b,1/2,inner_jut); % left serif
+ mid_biserif(2',1,ab',1/3); % lower terminal
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: mid_biserif(1,2,ab,1/3); % upper terminal
+ mid_biserif(2,1,ab',1/3); fi % lower terminal
+math_fit(.75u#-cap_height#*slant,ic#-4u#); penlabels(0,G1,D1,G2,D2,3,4); endchar;
+
+cmchar "The letter W";
+beginchar("W",18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x.G1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+pen_duplicate(1,2);
+x2-x1=x4-x3=x6-x5=x8-x7; x.D2r=x3r; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x.G1l+mid_corr-2apex_corr+cap_interspace);
+penpos1(alpha*.5stem1,0); penpos2(alpha*.5stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+Delta_x = hround(alpha*(cap_interspace+.5stem1));
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z.D1r,z.D2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(D1l,D2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(D2r,D1r,1,1,D1l,D2l)--cycle; % diagonals
+fill diag_end(G2r,G1r,1,1,G1l,G2l)--diag_end(G1l,G2l,1,1,G2r,G1r)--cycle; % lower left diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ prime_points_inside(2,1); pen_duplicate(1',2');
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x.D1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x.D1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_biserif(1',2,a,1/3,outer_jut,ab,1/3,b,1/2,inner_jut1); % left serif
+ mid_biserif(2',1,ab',1/3); % lower left terminal
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); % right serif
+else: mid_biserif(1,2,ab,1/3); % left serif
+ mid_biserif(2,1,ab',1/3); fi % lower left terminal
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+penlabels(0,G1,D1,G2,D2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter X";
+beginchar("X",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+pen_duplicate(1,4);
+x.G1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x.D4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1+cap_interspace,h,x.D4r-x.G1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*.5stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*.5stem1,0);
+Delta_x = hround(alpha1*(cap_interspace+.5stem1));
+if hefty:
+ z12=whatever[z2l,z3l]=whatever[z.D1r,z.D4r];
+ z13=whatever[z2l,z3l]=whatever[z.G1l,z.G4l];
+ z24=whatever[z2r,z3r]=whatever[z.D1r,z.D4r];
+ z34=whatever[z2r,z3r]=whatever[z.G1l,z.G4l];
+ fill diag_end(12,D1r,.5,1,D1l,D4l)--diag_end(D1l,D4l,.5,1,D4r,24)--z24
+ --diag_end(24,2r,1,.5,2l,12)--z12--cycle; % upper diagonals
+ fill diag_end(34,G4l,.5,1,G4r,G1r)--diag_end(G4r,G1r,.5,1,G1l,13)--z13
+ --diag_end(13,3l,1,.5,3r,34)--z34--cycle; % lower diagonals
+else: forsuffixes e=l,,r: forsuffixes $=G,D:
+ z$0e = whatever[z2e,z3e] = whatever[z$1,z$4]; endfor endfor
+ fill diag_end(D4r,D1r,.5,1,D1l,D4l)
+ --diag_end(D1l,D4l,.5,1,D4r,D1r)--cycle; % upper left diagonal
+ fill diag_end(G4r,G1r,.5,1,G1l,G4l)
+ --diag_end(G1l,G4l,.5,1,G4r,G1r)--cycle; % lower left diagonal
+ fill z.D0l--z.D0r--diag_end(D0r,2r,.5,1,2l,D0l)--cycle; % upper right diagonal
+ fill diag_end(G0l,3l,.5,1,3r,G0r)--z.G0r--z.G0l--cycle; fi % lower right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(4,1); pen_duplicate(1',4');
+ prime_points_inside(2,3); prime_points_inside(3,2);
+ if rt x.D1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x.D1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x.G4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x.G4'l-inner_jut2-xjut; fi
+ dish_biserif(1',4,a,1/3,outer_jut,ab,1/2,b,2/3,inner_jut1); % upper left serif
+ dish_biserif(4',1,c,2/3,inner_jut2,cd,1/2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); % lower left serif
+else: mid_biserif(1,4,ab,1/2); % upper left terminal
+ mid_biserif(4,1,cd,1/2); fi % lower right terminal
+math_fit(0,.5ic#); penlabels(0,G0,D0,G1,D1,2,3,G4,D4,12,13,24,34); endchar;
+
+cmchar "The letter Y";
+beginchar("Y",13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+pen_duplicate(1,2,5,6);numeric theta;
+outer_jut=.75cap_jut; x.G1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x.G2l=x.G5l=hround(.5w-.5left_stem-.5cap_interspace); x3r=x.D5r; y1l=y4=h; y2l=y3=y5=.4h;
+%dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+%pair dz; forsuffixes $=1,2,6: z$r-z$=z$-z$l=endfor .5dz;
+penpos5(.5left_stem,0); penpos6(.5left_stem,0); x5=x6; y6=0;
+theta = angle(z2l-z1l)+90; alpha = 1/cosd(.5theta);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos1(alpha*.5left_stem,0);penpos2(.5left_stem,theta);
+%dz=(alpha*.5left_stem,0)rotated theta; x5=x6; y6=0;
+Delta_x = hround(alpha*(cap_interspace+.5left_stem));
+z0=whatever[z.D1r,z.D2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z.D5r
+ --diag_end(D5r,D6r,1,1,D6l,D5l)--z.D5l--diag_end(D2l,D1l,1,1,D1r,D2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z.D5r
+ --diag_end(D5r,D6r,1,1,D6l,D5l)--z.D5l % z.D5l=z.D2l
+ --diag_end(D2l,D1l,1,1,D1r,0)--cycle; fi % diagonals and stem
+fill z.G2r..z.G5r--diag_end(G5r,G6r,1,1,G6l,G5l)--z.G5l--diag_end(G2l,G1l,1,1,G1r,G2r)--cycle;
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ prime_points_inside(6,5); pen_duplicate(1',6');
+ if rt x.D1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x.D1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_biserif(1',2,a,1/3,outer_jut,ab,1/3,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_biserif(6',5,e,1/3,cap_jut,ef,1/3,f,1/3,cap_jut); % lower serif
+else: mid_biserif(1,2,ab,1/3); % upper left terminal
+ mid_biserif(6,5,ef,1/3); fi % lower terminal
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,G1,D1,G2,D2,3,4,G5,D5,G6,D6); endchar;
+
+cmchar "The letter Z";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=max(.8[vair,.5cap_stem],tiny+eps);
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=max(.9[vair,.5cap_stem],tiny+eps); fi
+pen_duplicate(1,2,3,4);
+pickup tiny.nib;
+x3l=x4l=w-x1r=w-x2r; lft x.G3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem+cap_interspace-tiny,y2-y3,x.D2r-x.G3l);
+penpos1(alpha*(z_stem-tiny),0);penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0);penpos4(alpha*(z_stem-tiny),0);
+Delta_x = hround(alpha*(cap_interspace+z_stem));
+pair delta; delta=penoffset z3-z2 of currentpen;
+double
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % double diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x.D1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x.G4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(G1,D1,G2,D2,G3,D3,G4,D4,5,6,7,8); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbbase.mf b/Master/texmf-dist/fonts/source/public/bbold/bbbase.mf
new file mode 100644
index 00000000000..dd1f3c633b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbbase.mf
@@ -0,0 +1,374 @@
+% Blackboard bold base file, containing lots of horrible hacks.
+% Alan Jeffrey, 12--18 Dec 1989.
+
+% DIGITIZATION
+
+% I'm doing all my own digitization, so I don't need help from MF.
+autorounding := 0;
+
+% To get the unsharp version of x#, say unsharp x#.
+def unsharp = hppp * enddef;
+
+% The only pen I'm working with is of size pen_size. This makes life
+% rather easier. To find the x-coordinate whose left-hand edge is
+% at hround x, say leftround x, and similarly for rightround,
+% topround and bottomround.
+def leftround expr x = hround x + 1/2 pen_size enddef;
+def rightround expr x = hround x - 1/2 pen_size enddef;
+def topround expr y = vround y - 1/2 pen_size enddef;
+def bottomround expr y = vround y + 1/2 pen_size enddef;
+
+% Using this, I can give the equivalent of define_whole_pixels...
+def define_whole_top_pixels (text t) =
+ forsuffixes $ = t:
+ $ := topround unsharp $.#;
+ endfor
+enddef;
+
+def define_whole_bottom_pixels (text t) =
+ forsuffixes $ = t:
+ $ := bottomround unsharp $.#;
+ endfor
+enddef;
+
+% POINTS
+
+% The point y~x is short for (x,y). The reason for switching the
+% points around is that I find it easier to say Top~Left than
+% (Left, Top).
+primarydef x ~ y = (y,x) enddef;
+
+% To find the average of two points, say p -+- q.
+primarydef x ~ y = (y,x) enddef;
+tertiarydef x -+- y = .5[x,y] enddef;
+
+% To get the point 1/2fatness above p, say above p. This is useful
+% for drawing lines fatness in width. Similarly we have commands
+% below, leftof and rightof.
+def above secondary p =
+ p + 1/2fatness * up
+enddef;
+
+def below secondary p =
+ p + 1/2fatness * down
+enddef;
+
+def leftof secondary p =
+ p + 1/2fatness * left
+enddef;
+
+def rightof secondary p =
+ p + 1/2fatness * right
+enddef;
+
+% The command farleftof is equivalent to leftof leftof, and similarly
+% farrightof.
+def farleftof secondary p =
+ p + fatness * left
+enddef;
+
+def farrightof secondary p =
+ p + fatness * right
+enddef;
+
+% To get curves with o-correction, we need to be able to move
+% o pixels up or down.
+def oabove secondary p =
+ p + o * up
+enddef;
+
+def obelow secondary p =
+ p + o * down
+enddef;
+
+% DECLARATIONS
+
+% To declare a new variable foo of type T, say var (T) foo.
+def var (text type) text declarations =
+ save declarations;
+ type declarations
+enddef;
+
+% PATHS
+
+% Given a cyclic path p, outline p draws the path and fills the inside
+% with white. This is stolen from the MF book, exercise 13.11.
+def outline expr c =
+ begingroup
+ picture region;
+ region := nullpicture;
+ interim turningcheck := 0;
+ addto region contour c;
+ cull region dropping (0,0);
+ cullit;
+ addto currentpicture also -region;
+ cullit;
+ draw c
+ endgroup
+enddef;
+
+% Given a path p, leftside p is the path 1/2 fatness to its left,
+% and similarly rightside.
+def leftside primary apath =
+ apath shifted (1/2fatness * left)
+enddef;
+
+def rightside primary apath =
+ apath shifted (1/2fatness * right)
+enddef;
+
+% Given a path p, fatten p draws the leftside of p,
+% the rightside of p, and joins them up with straight lines.
+def fatten expr apath =
+ leftside apath
+ -- (reverse rightside apath)
+ -- cycle
+enddef;
+
+% Given a point p, splodge p draws an o-corrected circle of radius
+% fatness around p.
+def splodge expr apoint =
+ above apoint + o*up {right}
+ .. rightof apoint + o*right {down}
+ .. below apoint + o*down {left}
+ .. leftof apoint + o*left {up}
+ .. cycle
+enddef;
+
+% The command splodgel does the same, but doesn't close the cycle,
+% and leaves the current point at the left of the circle.
+def splodgel tertiary apoint =
+ leftof apoint + o*left {up}
+ .. above apoint + o*up {right}
+ .. rightof apoint + o*right {down}
+ .. below apoint + o*down {left}
+ .. leftof apoint + o*left {up}
+enddef;
+
+% Similarly, splodger leaves the current point at the right of the
+% circle.
+def splodger tertiary apoint =
+ rightof apoint + o*right {down}
+ .. below apoint + o*down {left}
+ .. leftof apoint + o*left {up}
+ .. above apoint + o*up {right}
+ .. rightof apoint + o*right {down}
+enddef;
+
+% CLIPPING
+
+% sometime (p, q) gives the time along p when it intersects q.
+def sometime (expr apath, bpath) =
+ xpart (apath intersectiontimes bpath)
+enddef;
+
+% othertime (p, q) gives another time at which p intersects q.
+def othertime (expr apath, bpath) =
+ length apath - sometime (reverse apath) (reverse bpath)
+enddef;
+
+% firsttime (p, q) gives the smallest of sometime (p,q) and othertime (p,q).
+def firsttime (expr apath, bpath) =
+ min (sometime (apath) (bpath), othertime (apath) (bpath))
+enddef;
+
+% lasttime (p, q) gives the largest of the two times.
+def lasttime (expr apath, bpath) =
+ max (sometime (apath) (bpath), othertime (apath) (bpath))
+enddef;
+
+% We can then clip p with q by finding the subpath of p from 0 to
+% the time p intersects q.
+def cliponce (expr apath, clippath) =
+ subpath (0, sometime (apath) (clippath)) of apath
+enddef;
+
+% Similarly, if p intersects q twice, we can find the path between
+% the two times it intersects with cliptwice.
+def cliptwice (expr apath, clippath) =
+ subpath
+ (firsttime (apath) (clippath), lasttime (apath) (clippath))
+ of apath
+enddef;
+
+% Given a path p and two paths q and r which intersect p,
+% we can find the path between when p crosses q and when p crosses r.
+% someclipbetween (p, q, r) will always start at q and finish at r.
+def someclipbetween (expr apath, firstclip, secondclip) =
+ subpath
+ (sometime (apath) (firstclip),
+ sometime (apath) (secondclip))
+ of
+ apath
+enddef;
+
+% firstclipbetween does the same, but if p intersects q and r more
+% than once, it gives the first clipping.
+def firstclipbetween (expr apath, firstclip, secondclip) =
+ subpath
+ (firsttime (apath) (firstclip),
+ firsttime (apath) (secondclip))
+ of
+ apath
+enddef;
+
+% lastclipbetween gives the last clipping.
+def lastclipbetween (expr apath, firstclip, secondclip) =
+ subpath
+ (lasttime (apath) (firstclip),
+ lasttime (apath) (secondclip))
+ of
+ apath
+enddef;
+
+% We can join these together and clip fat lines.
+def fatcliponce (expr apath, clippath) =
+ cliponce (leftside apath) (clippath)
+ -- someclipbetween (clippath) (leftside apath) (rightside apath)
+ -- reverse cliponce (rightside apath) (clippath)
+ -- cycle
+enddef;
+
+def fatcliptwice (expr apath, clippath) =
+ cliptwice (leftside apath) (clippath)
+ -- lastclipbetween (clippath) (leftside apath) (rightside apath)
+ -- cliptwice (rightside apath) (reverse clippath)
+ -- firstclipbetween (clippath) (rightside apath) (leftside apath)
+ -- cycle
+enddef;
+
+% BBCHAR.
+
+% bbchar (c) (l#, w#, r#) (t#, b#) begins a character at code c,
+% of width w# with l# gap at the left and r# gap at the right.
+% It's topmost point is at t# and its bottommost point at b#.
+% From these parameters we calculate Width (the width of the character
+% in whole pixels) and hardTop and hardBottom (the exact top and bottom
+% of the character). Top is then 1/2 pensize from the top of the character,
+% and Bottom is 1/2 pensize from the bottom. This means if we draw a line
+% through top, the top of it will exactly touch the top. We then calculate
+% Left, Middle, and Right in the same way, using calculateLeftetc.
+
+def bbchar
+ (expr code)
+ (expr sharphardLeft, sharpWidth, sharprightgap)
+ (expr sharphardTop, sharphardBottom) =
+
+ beginchar
+ (code)
+ (sharphardLeft + sharpWidth + sharprightgap)
+ (max (sharphardTop, 0pt#))
+ (max (-sharphardBottom, 0pt#));
+
+ save Top, Bottom, Horizon, hardTop, hardBottom,
+ Width, hardLeft, hardRight, Left, Right, Middle;
+
+ hardTop# = sharphardTop;
+ hardBottom# = sharphardBottom;
+ Width# = sharpWidth;
+ hardLeft# = sharphardLeft;
+ hardRight# = sharphardLeft + sharpWidth;
+
+ define_whole_pixels (Width);
+ define_whole_vertical_pixels (hardTop, hardBottom);
+ Top = topround hardTop;
+ Bottom = bottomround hardBottom;
+
+ Horizon = .5 [Top, Bottom];
+
+ calculateLeftetc;
+
+ pickup pencircle scaled pen_size;
+
+enddef;
+
+def calculateLeftetc =
+ hardLeft := floor (unsharp hardLeft#);
+ hardRight := hardLeft + Width;
+
+ Left := (hardLeft + 1/2pen_size);
+ Middle := (hardLeft + 1/2Width);
+ Right := (hardRight - 1/2pen_size);
+enddef;
+
+% bbcap is bbchar with the top at ATop# and the bottom at aBottom#.
+def bbcap (expr code, leftgap, width, rightgap) =
+ bbchar (code) (leftgap, width, rightgap) (ATop#, aBottom#);
+enddef;
+
+% bbnum is bbchar with the dimensions of a number hard-wired.
+def bbnum (expr code) =
+ bbchar (code) (medgap#, numeral#, medgap#) (oneTop#, aBottom#);
+enddef;
+
+% For characters such as < and > which appear a lot blacker than the
+% others, we can surround the character by beginblacker n ... endblacker,
+% which temporarily multiplies fatness by n.
+def beginblacker expr blackness =
+ begingroup
+ save oldfatness;
+ oldfatness# := fatness#;
+ save fatness;
+ fatness# := oldfatness# * blackness;
+ define_whole_pixels (fatness)
+enddef;
+
+let endblacker = endgroup;
+
+% SYMMETRY
+
+% To try to get characters symmetric, we need to round the width so there
+% are the same number of characters on the left of the central vertical
+% as there are on the right. So if we are symmetrical around a pen of
+% size 2n, we need to make the width even. If we are symmetrical around
+% a pen of size 2n+1 we need to make the width odd. This is done with
+% roundlike (x) y, which rounds y to be even iff x is even.
+
+def roundlike (expr x) expr y =
+ 2 * (round (x -+- y)) - x
+enddef;
+
+% To make the character symmetric, we round Width like pen_size.
+def symmetric =
+ Width := roundlike (pen_size) unsharp Width#;
+ calculateLeftetc
+enddef;
+
+% To make the character symmetric around a fat vertical, we round
+% Width like fatness + pen_size.
+def fatsymmetric =
+ Width := roundlike (fatness + pen_size) unsharp Width#;
+ calculateLeftetc
+enddef;
+
+% DRAWING THE CHARACTERS ON THE SCREEN
+
+% makebox and maketicks nicked from cmbase, adjusted for this job.
+
+def makebox(text rule) =
+ for y=0, hardBottom, hardTop:
+ rule((0,y)t_,(w,y)t_); endfor % horizontals
+ for x=0,hardLeft,hardRight,w:
+ rule((x,hardBottom)t_,(x,hardTop)t_); endfor % verticals
+enddef;
+
+def maketicks(text rule) =
+ for y=0, hardBottom, hardTop:
+ rule((-10,y)t_,(0,y)t_); % horizontals at left
+ rule((w,y)t_,(w+10,y)t_); % horizontals at right
+ endfor
+ for x=0,hardLeft,hardRight,w:
+ rule((x,hardBottom-10)t_,(x,hardBottom)t_); % verticals at bottom
+ rule((x,hardTop)t_,(x,hardTop+10)t_); % verticals at top
+ endfor % verticals at top
+enddef;
+
+% HACKS TO MAKE CMR WORK
+
+% Some parameters I never use, but are needed by the cmr parameter files.
+boolean
+ square_dots, hefty, serifs, monospace,
+ variant_g, low_asterisk, math_fitting;
+
+% And that's that.
+
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbgreekl.mf b/Master/texmf-dist/fonts/source/public/bbold/bbgreekl.mf
new file mode 100644
index 00000000000..a6b70be9e6a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbgreekl.mf
@@ -0,0 +1,684 @@
+% Blackboard bold lower case Greek, Alan Jeffrey, 15--18 Dec 1989.
+%
+% These characters occupy spaces oct "013" to oct "040", and oct "177".
+% This is because ! occupies oct "041" and I have to stick omega
+% somewhere.
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "013")
+ (smallgap#, medlower#, smallgap# + jut#)
+ (aTop#, aBottom#);
+
+ "Lowercase Greek alpha";
+
+ % The curve.
+ var (path) alphapath;
+
+ alphapath
+ = Top~(Right + jut) {down}
+ .. obelow Bottom~Middle {left}
+ .. Horizon~Left {up}
+ .. oabove Top~Middle {right}
+ .. Bottom~(Right + jut){right};
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (rightof obelow Bottom~Left -- rightof oabove Top~Left)
+ (alphapath);
+
+ % The curve.
+ draw alphapath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "014")
+ (medgap#, smalllower# + fatness#, smallgap#)
+ (bTop#, gBottom#);
+
+ "Lowercase Greek beta";
+
+ % The top curve.
+ var (path) betapath;
+
+ betapath
+ = aBottom~Left
+ --- aTop~Left
+ .. oabove rightof Top~Middle {right}
+ .. (Top -+- aTop)~Right {down}
+ .. rightof aTop~Middle {left};
+
+ % The emphasis
+ draw
+ fatcliponce
+ (rightof Bottom~Left -- rightof oabove Top~Left)
+ (betapath);
+
+ % The top curve.
+ draw betapath;
+
+ % The bottom curve.
+ draw
+ rightof aTop~Middle {right}
+ .. aMiddle~Right {down}
+ .. obelow rightof aBottom~Middle {left}
+ .. farrightof (aBottom + cCurl)~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "015")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, gBottom#);
+
+ "Lowercase Greek gamma";
+
+ % The curve.
+ var (path) gammapath;
+
+ gammapath
+ = Top~Left {right}
+ .. aBottom~Right {down}
+ .. obelow Bottom~Middle {left}
+ .. aBottom~Left {up}
+ .. Top~Right {right};
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- rightof Top~Left)
+ (subpath (1,infinity) of gammapath);
+
+ % The curve.
+ draw gammapath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "016")
+ (smallgap#, medlower#, smallgap#)
+ (bTop#, aBottom#);
+
+ "Lowercase Greek delta";
+
+ % The path.
+ var (path) deltapath;
+
+ deltapath
+ = aTop~Middle {left}
+ .. aMiddle~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. aMiddle~Right {up}
+ .. aTop~Middle
+ .. (aTop -+- Top)~Left {up}
+ .. oabove Top~Middle {right}
+ .. (Top - cCurl)~Right;
+
+ % The emphasis, clipped by the first bit of the curve (ie the bowl).
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- rightof Top~Left)
+ (subpath (0,4) of deltapath);
+
+ % The curve.
+ draw deltapath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "017")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, aBottom#);
+
+ "Lowercase Greek epsilon";
+
+ % The curve.
+ var (path) epsilonpath;
+
+ epsilonpath
+ = (Top - cCurl)~Right
+ .. oabove Top~Middle {left}
+ .. aMiddle~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. (Bottom + cCurl)~Right;
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- oabove rightof Top~Left)
+ (epsilonpath);
+
+ % The curve.
+ draw epsilonpath;
+
+ % The bar.
+ draw
+ farrightof eBar~Left
+ -- farrightof eBar~(Left + jut)
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "020")
+ (medgap#, smalllower#, smallgap#)
+ (bTop#, gBottom#);
+
+ "Lowercase Greek zeta";
+
+ % The curl.
+ var (path) zetapath;
+
+ zetapath
+ = Top~Right
+ .. aMiddle~Left {down}
+ .. aBottom~Middle
+ .. (aBottom -+- Bottom)~Right {down}
+ .. Bottom~(Right - jut) {left};
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (rightof Bottom~Left -- rightof Top~Left)
+ (zetapath);
+
+ % The curl.
+ draw zetapath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "021")
+ (medgap#, smalllower# + fatness#, medgap#)
+ (aTop#, gBottom#);
+
+ "Lowercase Greek eta";
+
+ % The emphasis.
+ draw
+ fatten
+ rightof aBottom~Left
+ -- rightof Top~Left;
+
+ % The curl.
+ draw
+ farrightof (Top - cCurl)~Left
+ .. oabove rightof Top~Middle {right}
+ .. (Top - hCurl)~Right
+ --- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "022")
+ (smallgap#, medlower#, smallgap#)
+ (bTop#, aBottom#);
+
+ "Lowercase Greek theta";
+
+ % The curve.
+ var (path) thetapath;
+
+ thetapath
+ = Horizon~Right {up}
+ .. oabove Top~Middle {left}
+ .. Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. cycle;
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (rightof obelow Bottom~Left -- oabove rightof Top~Left)
+ (thetapath);
+
+ % The curve.
+ draw thetapath;
+
+ % The bar.
+ draw
+ farrightof Horizon~Left
+ -- Horizon~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "023")
+ (medgap#, tiny#, medgap#)
+ (aTop#, aBottom#);
+
+ "Lowercase Greek iota";
+
+ % The vertical, clipped by a curve.
+ draw
+ fatcliponce
+ (Top~Middle -- Bottom~Middle)
+ (leftof (Bottom + hCurl)~Middle {down}
+ .. rightof Bottom~Middle {right})
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "024")
+ (medgap#, smalllower# + fatness#, smallgap#)
+ (aTop#, aBottom#);
+
+ "Lowercase Greek kappa";
+
+ % The vertical.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left;
+
+ % The top stroke.
+ draw
+ farrightof eBar~Left
+ -- Top~Right;
+
+ % The bottom stroke.
+ draw
+ farrightof eBar~Left {right}
+ .. Bottom~Right {right}
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "025")
+ (smallgap#, medlower#, smallgap#)
+ (bTop#, aBottom#);
+
+ "Lowercase Greek lambda";
+
+ % The SW diagonal.
+ draw
+ Horizon~Middle
+ -- Bottom~Left;
+
+ % The SE diagonal, fattened.
+ outline
+ fatten
+ rightof Top~Left
+ -- leftof Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "026")
+ (medgap#, smalllower# + fatness#, medgap#)
+ (aTop#, gBottom#);
+
+ "Lowercase Greek mu";
+
+ % The left vertical, fattened.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left;
+
+ % The curl.
+ draw
+ farrightof (aBottom + cCurl)~Left
+ .. obelow rightof aBottom~Middle {right}
+ .. (aBottom + hCurl)~Right
+ --- Top~Right;
+
+ % The right vertical.
+ draw
+ Top~Right
+ -- aBottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "027")
+ (medgap#, medlower#, smallgap#)
+ (aTop#, aBottom#);
+
+ "Lowercase Greek nu";
+
+ % The left vertical, clipped by the stroke.
+ draw
+ fatcliponce
+ (rightof Top~Left -- rightof Bottom~Left)
+ (Bottom~Left .. Top~Right {up});
+
+ % The stroke.
+ draw
+ Bottom~Left
+ .. Top~Right {up}
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "030")
+ (medgap#, smalllower#, smallgap#)
+ (bTop#, gBottom#);
+
+ "Lowercase Greek xi";
+
+ % The curls.
+ var (path) xitop, xibottom;
+
+ xibottom
+ = farrightof aTop~(Left + jut) {left}
+ .. aMiddle~Left {down}
+ .. aBottom~Middle
+ .. (aBottom -+- Bottom)~Right {down}
+ .. Bottom~(Right - jut) {left};
+
+ xitop
+ = Top~Right {left}
+ .. (Top -+- aTop)~Left {down}
+ .. farrightof aTop~(Left + jut) {right};
+
+ % The top emphasis.
+ draw
+ fatcliptwice
+ (rightof Bottom~Left -- rightof Top~Left)
+ (xitop);
+
+ % The top curl.
+ draw xitop;
+
+ % The bottom emphasis.
+ draw
+ fatcliptwice
+ (rightof Bottom~Left -- rightof Top~Left)
+ (xibottom);
+
+ % The bottom curl.
+ draw xibottom
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "031")
+ (smallgap#, smalllower# + fatness#, smallgap#)
+ (aTop#, aBottom#);
+
+ "Lowercase Greek pi";
+
+ % The top bar.
+ draw
+ Top~Left
+ --- Top~Right;
+
+ % The left vertical, fattened.
+ draw
+ fatten
+ rightof Bottom~(Left + jut)
+ -- rightof Top~(Left + jut);
+
+ % The right vertical.
+ draw
+ Bottom~(Right - jut)
+ -- Top~(Right - jut)
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "032")
+ (medgap#, medlower#, smallgap#)
+ (aTop#, gBottom#);
+
+ "Lowercase Greek rho";
+
+ % The bowl.
+ var (path) rhopath;
+
+ rhopath
+ = aMiddle~Left {up}
+ .. oabove aTop~Middle {right}
+ .. aMiddle~Right {down}
+ .. obelow aBottom~Middle {left}
+ .. cycle;
+
+ % The bowl.
+ draw rhopath;
+
+ % The emphasis, clipped by the beginning of the curve.
+ outline
+ fatcliponce
+ (rightof Bottom~Left -- rightof bracketTop~Left)
+ (subpath (0,2) of rhopath);
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "033")
+ (smallgap#, medlower#, smallgap# + jut#)
+ (aTop#, aBottom#);
+
+ "Lowercase Greek sigma";
+
+ % The bowl.
+ var (path) sigmapath;
+
+ sigmapath
+ = Horizon~Right {up}
+ .. Top~Middle {left}
+ .. Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. cycle;
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (rightof obelow Bottom~Left -- rightof Top~Left)
+ (sigmapath);
+
+ % The bowl.
+ draw sigmapath;
+
+ % The bar, jutting out to the right.
+ draw
+ Top~Middle
+ -- Top~(Right + jut)
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "034")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, aBottom#);
+
+ fatsymmetric;
+
+ "Lowercase Greek tau";
+
+ % The top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The vertical, clipped by a curve.
+ draw
+ fatcliponce
+ (Top~Middle -- Bottom~Middle)
+ (leftof (Bottom + hCurl)~Middle {down}
+ .. rightof Bottom~Middle {right})
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "035")
+ (medgap#, medlower#, medgap#)
+ (aTop#, aBottom#);
+
+ "Lowercase Greek upsilon";
+
+ % The curve.
+ var (path) upsilonpath;
+
+ upsilonpath
+ = Top~Left
+ --- (Bottom + hCurl)~Left
+ .. obelow Bottom~Middle {right}
+ .. (Bottom + hCurl)~Right
+ --- Top~Right;
+
+ % The emphasis.
+ draw
+ fatcliponce
+ (rightof Top~Left -- rightof obelow Bottom~Left)
+ (upsilonpath);
+
+ % The curve.
+ draw upsilonpath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "036")
+ (smallgap#, medlower#, smallgap#)
+ (bTop#, gBottom#);
+
+ fatsymmetric;
+
+ "Lowercase Greek phi";
+
+ % The bowl.
+ draw
+ Middle~Right {up}
+ .. aTop~Middle {left}
+ .. aMiddle~Left {down}
+ .. aBottom~Middle {right}
+ .. cycle;
+
+ % The vertical, fattened.
+ outline
+ fatten
+ Top~Middle
+ -- Bottom~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "037")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, gBottom#);
+
+ "Lowercase Greek chi";
+
+ % The SE diagonal.
+ draw
+ Top~Left
+ -- Bottom~Right;
+
+ % The SW diagonal, fattened.
+ outline
+ fatten
+ leftof Top~Right
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "040")
+ (medgap#, medlower#, medgap#)
+ (bTop#, gBottom#);
+
+ fatsymmetric;
+
+ "Lowercase Greek psi";
+
+ % The curve.
+ draw
+ aTop~Left
+ --- (aBottom + hCurl)~Left
+ .. aBottom~Middle {right}
+ .. (aBottom + hCurl)~Right
+ --- aTop~Right;
+
+ % The vertical, fattened.
+ outline
+ fatten
+ Top~Middle
+ -- Bottom~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "177")
+ (smallgap#, biglower#, smallgap#)
+ (aTop#, aBottom#);
+
+ symmetric;
+
+ "Lowercase Greek omega";
+
+ % The left curve.
+ var (path) omegapath;
+
+ omegapath
+ = farrightof Top~Left
+ .. Horizon~Left {down}
+ .. obelow Bottom~(Left -+- Middle) {right}
+ .. eBar~Middle {up};
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (rightof Top~Left -- obelow rightof Bottom~Left)
+ (omegapath);
+
+ % The left curve.
+ draw omegapath;
+
+ % The right curve.
+ draw
+ eBar~Middle {down}
+ .. obelow Bottom~(Right -+- Middle) {right}
+ .. Horizon~Right {up}
+ .. farleftof Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbgreeku.mf b/Master/texmf-dist/fonts/source/public/bbold/bbgreeku.mf
new file mode 100644
index 00000000000..802810a5286
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbgreeku.mf
@@ -0,0 +1,315 @@
+% Blackboard bold uppercase greek, Alan Jeffrey, 13--18 Dec 1989.
+%
+% These characters occupy the same space they do in cmr, ie oct "000"
+% to oct "012".
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "000")
+ (biggap#, smallcap#, smallgap#);
+
+ "Uppercase Greek Gamma";
+
+ % The vertical, fattened.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left;
+
+ % The horizontal.
+ draw
+ Top~Left
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "001")
+ (smallgap#, medcap#, smallgap#);
+
+ symmetric;
+
+ "Uppercase Greek Delta";
+
+ % Left diagonal, clipped by the right diagonal.
+ draw
+ fatcliponce
+ (rightof Bottom~Left -- rightof Top~Middle)
+ (Top~Middle -- Bottom~Right);
+
+ % Right diagonal.
+ draw
+ Top~Middle
+ -- Bottom~Right;
+
+ % Base.
+ draw
+ Bottom~Left
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "002")
+ (medgap#, medcap#, medgap#);
+
+ "Uppercase Greek Theta";
+
+ % The circle.
+ var (path) Thetapath;
+
+ Thetapath
+ = oabove Top~Middle {left}
+ .. Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. Horizon~Right {up}
+ .. cycle;
+
+ % The emphasis at the left.
+ draw
+ fatcliptwice
+ (rightof obelow Bottom~Left -- oabove rightof Top~Left)
+ (Thetapath);
+
+ % The circle.
+ draw Thetapath;
+
+ % The dash in the middle.
+ draw
+ farrightof Horizon~(Left + space)
+ -- Horizon~(Right - space)
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "003")
+ (smallgap#, medcap#, smallgap#);
+
+ symmetric;
+
+ "Uppercase Greek Lambda";
+
+ % Left diagonal, clipped by the right diagonal.
+ draw
+ fatcliponce
+ (rightof Bottom~Left -- rightof Top~Middle)
+ (Top~Middle -- Bottom~Right);
+
+ % Right diagonal.
+ draw
+ Top~Middle
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "004")
+ (medgap#, medcap#, medgap#);
+
+ symmetric;
+
+ "Uppercase Greek Xi";
+
+ % Top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % Middle line.
+ draw
+ Horizon~(Left + bigspace)
+ -- Horizon~(Right - bigspace);
+
+ % Bottom line.
+ draw
+ Bottom~Left
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "005")
+ (biggap#, smallcap#, biggap#);
+
+ "Uppercase Greek Pi";
+
+ % The right line.
+ draw
+ Top~Right
+ -- Bottom~Right;
+
+ % The bar.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The left line, fattened.
+ draw
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "006")
+ (medgap#, medcap#, medgap#);
+
+ "Uppercase Greek Sigma";
+
+ % The top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The bottom line.
+ draw
+ Bottom~Left
+ -- Bottom~Right;
+
+ % The diagonals.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- Horizon~Middle
+ -- rightof Top~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "007")
+ (smallgap#, medcap#, smallgap#);
+
+ fatsymmetric;
+
+ "Uppercase Greek Upsilon";
+
+ % The stem.
+ draw
+ fatten
+ Bottom~Middle
+ -- BBar~Middle;
+
+ % The left arc.
+ draw
+ leftof BBar~Middle
+ --- leftof (Top - CCurl)~Middle
+ .. oabove ((leftof Top~Left) -+- (Top~Middle)) {left}
+ .. (Top - CCurl)~Left {down};
+
+ % The right arc.
+ draw
+ rightof BBar~Middle {up}
+ --- rightof (Top - CCurl)~Middle
+ .. oabove ((rightof Top~Right) -+- (Top~Middle)) {right}
+ .. (Top - CCurl)~Right {down}
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "010")
+ (medgap#, medcap#, medgap#);
+
+ fatsymmetric;
+
+ "Uppercase Greek Phi";
+
+ % The circle.
+ draw
+ (Top - CCurl)~Middle {left}
+ .. Horizon~Left {down}
+ .. (Bottom + CCurl)~Middle {right}
+ .. Horizon~Right {up}
+ .. cycle;
+
+ % The vertical.
+ outline
+ fatten
+ Bottom~Middle
+ -- Top~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "011")
+ (smallgap#, medcap#, smallgap#);
+
+ fatsymmetric;
+
+ "Uppercase Greek Psi";
+
+ % The stroke.
+ draw
+ (Top - CCurl)~Left {right}
+ .. leftof Horizon~(Left -+- Middle) {down}
+ .. (Bottom + CCurl)~Middle {right}
+ .. rightof Horizon~(Right -+- Middle) {up}
+ .. (Top - CCurl)~Right {right};
+
+ % The vertical.
+ outline
+ fatten
+ Bottom~Middle
+ -- Top~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ (oct "012")
+ (medgap#, medcap#, medgap#);
+
+ "Uppercase Greek Omega";
+
+ % The curve.
+ var (path) Omegapath;
+
+ Omegapath
+ = farrightof Bottom~Left
+ .. Horizon~Left {up}
+ .. oabove Top~Middle {right}
+ .. Horizon~Right {down}
+ .. farleftof Bottom~Right ;
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (rightof Bottom~Left -- oabove rightof Top~Left)
+ (Omegapath);
+
+ % The curve.
+ draw Omegapath;
+
+ % The left foot.
+ draw
+ Bottom~Left
+ -- farrightof Bottom~Left;
+
+ % The right foot.
+ draw
+ Bottom~Right
+ -- farleftof Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbligs.mf b/Master/texmf-dist/fonts/source/public/bbold/bbligs.mf
new file mode 100644
index 00000000000..92a38e4775d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbligs.mf
@@ -0,0 +1,91 @@
+% Blackboard bold ligatures, Alan Jeffrey, 13--18 Dec 1989.
+%
+% Provides --, ---, `` and ''.
+% These are put in positions
+%
+% -- oct "173"
+% --- oct "175"
+% `` oct "176"
+% '' oct "042"
+
+ligtable "-": "-" =: oct "173";
+ligtable oct "173": "-" =: oct "175";
+ligtable "`": "`" =: oct "176";
+ligtable "'": "'" =: oct "042";
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "173")
+ (smallgap#, 0.5bigcap#, smallgap#)
+ (aTop#, aBottom#);
+
+ "En dash `--'";
+
+ % The line.
+ draw
+ dashMiddle~Left
+ -- dashMiddle~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "175")
+ (smallgap#, bigcap#, smallgap#)
+ (aTop#, aBottom#);
+
+ "Em dash `---'";
+
+ % The line.
+ draw
+ dashMiddle~Left
+ -- dashMiddle~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "176")
+ (medgap#, 2tiny# + space#, medgap#)
+ (bTop#, bTop# - tiny# - comma_depth#);
+
+ "Opening quotes ```'";
+
+ % The left quote.
+ draw
+ splodgel above rightof Bottom~Left
+ .. farrightof Top~Left;
+
+ % The right quote.
+ draw
+ splodgel above leftof Bottom~Right
+ .. Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (oct "042")
+ (medgap#, 2tiny# + space#, medgap#)
+ (bTop#, bTop# - tiny# - comma_depth#);
+
+ "Closing quotes `'''";
+
+ % The left quote
+ draw
+ splodger below rightof Top~Left
+ .. Bottom~Left;
+
+ % The right quote
+ draw
+ splodger below leftof Top~Right
+ .. farleftof Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bblower.mf b/Master/texmf-dist/fonts/source/public/bbold/bblower.mf
new file mode 100644
index 00000000000..9bbd5e7195a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bblower.mf
@@ -0,0 +1,760 @@
+% Blackboard bold lower case, Alan Jeffrey, 12--18 Dec 1989.
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("a")
+ (smallgap#, medlower#, medgap#)
+ (aTop#, aBottom#);
+
+ "The letter a";
+
+ % The curve.
+ var (path) apath;
+
+ apath
+ = (Top - cCurl)~Right
+ .. oabove Top~Middle {left}
+ .. Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. (Bottom + cCurl)~Right;
+
+ % The emphasis to the left, clipped by the curve.
+ draw
+ fatcliptwice
+ (oabove rightof Top~Left -- obelow rightof Bottom~Left)
+ (apath);
+
+ % The curve.
+ draw apath;
+
+ % The line at the right.
+ draw
+ Top~Right
+ -- Bottom~Right;
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("b")
+ (medgap#, medlower# + fatness#, smallgap#)
+ (bTop#, aBottom#);
+
+ "The letter b";
+
+ % The curve.
+ draw
+ farrightof (aTop - cCurl)~Left
+ .. oabove rightof aTop~Middle {right}
+ .. aMiddle~Right {down}
+ .. obelow rightof Bottom~Middle {left}
+ .. farrightof (Bottom + cCurl)~Left;
+
+ % The vertical, fattened.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left;
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("c")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, aBottom#);
+
+ "The letter c";
+
+ % The curve.
+ var (path) cpath;
+
+ cpath
+ = (Top - cCurl)~Right
+ .. oabove Top~Middle {left}
+ .. Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. (Bottom + cCurl)~Right;
+
+ % The emphasis to the left, clipped by the curve.
+ draw
+ fatcliptwice
+ (oabove rightof Top~Left -- obelow rightof Bottom~Left)
+ (cpath);
+
+ % The curve.
+ draw cpath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("d")
+ (smallgap#, medlower#, medgap#)
+ (bTop#, aBottom#);
+
+ "The letter d";
+
+ % The curve.
+ var (path) dpath;
+
+ dpath
+ = (aTop - cCurl)~Right
+ .. oabove aTop~Middle {left}
+ .. aMiddle~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. (Bottom + cCurl)~Right;
+
+ % The emphasis to the left, clipped by the curve.
+ draw
+ fatcliptwice
+ (oabove rightof aTop~Left -- obelow rightof Bottom~Left)
+ (dpath);
+
+ % The curve.
+ draw dpath;
+
+ % The line at the right.
+ draw
+ Bottom~Right
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("e")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, aBottom#);
+
+ "The letter e";
+
+ % The curve.
+ var (path) epath;
+
+ epath
+ = eBar~Right
+ .. oabove Top~Middle {left}
+ .. Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. (Bottom + cCurl)~Right;
+
+ % The bar.
+ draw
+ farrightof eBar~Left
+ -- eBar~Right;
+
+ % The emphasis to the left, clipped by the curve.
+ outline
+ fatcliptwice
+ (oabove rightof Top~Left -- obelow rightof Bottom~Left)
+ (epath);
+
+ % The curve.
+ draw epath;
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("f")
+ (medgap#, smalllower#, 0pt#)
+ (bTop#, aBottom#);
+
+ "The letter f";
+
+ % The curve.
+ var (path) fpath;
+
+ fpath
+ = (Top - hCurl)~Left {up}
+ .. oabove Top~Middle {right}
+ .. (Top - cCurl)~Right;
+
+ % The bar.
+ draw
+ aTop~Left
+ -- farrightof aTop~(Left + jut);
+
+ % The emphasis at the left of the curve.
+ outline
+ fatcliponce
+ (rightof Bottom~Left -- oabove rightof Top~Left)
+ (fpath);
+
+ % The curve.
+ draw fpath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("g")
+ (smallgap#, medlower#, medgap#)
+ (aTop#, gBottom#);
+
+ "The letter g";
+
+ % The bowl path.
+ var (path) gpath;
+
+ gpath
+ = (Top - cCurl)~Right
+ .. oabove Top~Middle {left}
+ .. aMiddle~Left {down}
+ .. obelow aBottom~Middle {right}
+ .. (aBottom + cCurl)~Right;
+
+ % Emphasis of the bowl.
+ draw
+ fatcliptwice
+ (obelow rightof aBottom~Left -- oabove rightof Top~Left)
+ (gpath);
+
+ % The bowl.
+ draw gpath;
+
+ % The tail.
+ draw
+ Top~Right
+ --- aBottom~Right
+ .. obelow Bottom~Middle {left}
+ .. (Bottom + gCurl)~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("h")
+ (medgap#, smalllower# + fatness#, medgap#)
+ (bTop#, aBottom#);
+
+ "The letter h";
+
+ % The curve.
+ draw
+ farrightof (aTop - cCurl)~Left
+ .. oabove rightof aTop~Middle {right}
+ .. (aTop - hCurl)~Right
+ --- Bottom~Right;
+
+ % The vertical, fattened.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("i")
+ (medgap#, tiny#, medgap#)
+ (iTop#, aBottom#);
+
+ fatsymmetric;
+
+ "The letter i";
+
+ % The vertical, fattened.
+ draw
+ fatten
+ Bottom~Middle
+ -- aTop~Middle;
+
+ % The dot.
+ draw
+ splodge
+ below Top~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("j")
+ (0pt#, smalllower#, medgap#)
+ (iTop#, gBottom#);
+
+ "The letter j";
+
+ % The curve.
+ var (path) jpath;
+
+ jpath
+ = aTop~Right
+ --- aBottom~Right
+ .. obelow Bottom~Middle {left}
+ .. (Bottom + gCurl)~Left;
+
+ % The emphasis.
+ draw
+ fatcliponce
+ (leftof aTop~Right -- obelow leftof Bottom~Right)
+ (jpath);
+
+ % The curve.
+ draw jpath;
+
+ % The dot.
+ draw
+ splodge
+ below leftof Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("k")
+ (medgap#, smalllower# + fatness#, smallgap#)
+ (bTop#, aBottom#);
+
+ "The letter k";
+
+ % The point at which the top diagonal hits the left side of the character.
+ % It is somewhere along the line from aTop~Right to eBar~Middle.
+
+ z1 = whatever[aTop~Right, eBar~Middle];
+ x1 = Left;
+
+ % The top diagonal.
+ draw
+ z1 -- aTop~Right;
+
+ % The bottom diagonal.
+ draw
+ eBar~Middle
+ -- Bottom~Right;
+
+ % The left edge, fattened.
+ outline
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("l")
+ (medgap#, tiny#, medgap#)
+ (bTop#, aBottom#);
+
+ "The letter l";
+
+ % The fattened vertical, clipped at the left by a curve.
+
+ draw
+ fatcliponce
+ (Top~Middle -- Bottom~Middle)
+ (leftof Horizon~Middle
+ --- leftof (Bottom + hCurl)~Middle
+ .. rightof Bottom~Middle {right})
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("m")
+ (medgap#, biglower#, medgap#)
+ (aTop#, aBottom#);
+
+ symmetric;
+
+ "The letter m";
+
+ % The vertical, fattened.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left;
+
+ % The first bump.
+ draw
+ farrightof (Top - cCurl)~Left
+ .. oabove (farrightof Top~Left -+- rightof Top~Middle) {right}
+ .. rightof (Top - hCurl)~Middle
+ --- rightof Bottom~Middle;
+
+ % The second bump.
+ draw
+ rightof (Top - hCurl)~Middle {up}
+ .. oabove (rightof Top~Middle -+- Top~Right) {right}
+ .. (Top - hCurl)~Right
+ --- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("n")
+ (medgap#, smalllower# + fatness#, medgap#)
+ (aTop#, aBottom#);
+
+ "The letter n";
+
+ % The vertical, fattened.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left;
+
+ % The bump.
+ draw
+ farrightof (Top - cCurl)~Left
+ .. oabove rightof Top~Middle {right}
+ .. (Top - hCurl)~Right
+ --- Bottom~Right;
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("o")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, aBottom#);
+
+ "The letter o";
+
+ % The circle;
+ var (path) opath;
+
+ opath
+ = oabove Top~Middle {right}
+ .. Horizon~Right {down}
+ .. obelow Bottom~Middle {left}
+ .. Horizon~Left {up}
+ .. cycle;
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- oabove rightof Top~Left)
+ (opath);
+
+ % The o.
+ draw opath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("p")
+ (medgap#, medlower# + fatness#, smallgap#)
+ (aTop#, gBottom#);
+
+ "The letter p";
+
+ % The curve.
+ draw
+ farrightof (Top - cCurl)~Left
+ .. oabove rightof Top~Middle {right}
+ .. aMiddle~Right {down}
+ .. obelow rightof aBottom~Middle {left}
+ .. farrightof (aBottom + cCurl)~Left;
+
+ % The vertical, fattened.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left;
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("q")
+ (smallgap#, medlower#, medgap#)
+ (aTop#, gBottom#);
+
+ "The letter q";
+
+ % The curve.
+ var (path) qpath;
+
+ qpath
+ = (Top - cCurl)~Right
+ .. oabove Top~Middle {left}
+ .. aMiddle~Left {down}
+ .. obelow aBottom~Middle {right}
+ .. (aBottom + cCurl)~Right;
+
+ % The emphasis to the left, clipped by the curve.
+ draw
+ fatcliptwice
+ (oabove rightof Top~Left -- obelow rightof Bottom~Left)
+ (qpath);
+
+ % The curve.
+ draw qpath;
+
+ % The line at the right.
+ draw
+ Bottom~Right
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("r")
+ (medgap#, smalllower# + fatness#, smallgap#)
+ (aTop#, aBottom#);
+
+ "The letter r";
+
+ % The vertical, fattened.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left;
+
+ % The bump.
+ draw
+ farrightof (Top - cCurl)~Left
+ .. oabove rightof Top~Middle {right}
+ .. (Top - cCurl)~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("s")
+ (smallgap#, smalllower#, smallgap#)
+ (aTop#, aBottom#);
+
+ "The letter s";
+
+ % The path of the S.
+ var (path) spath;
+
+ spath
+ = (Top - cCurl)~Right
+ .. oabove Top~Middle {left}
+ .. (Top -+- eBar)~Left {down}
+ .. eBar~Middle {right}
+ .. (eBar -+- Bottom)~Right {down}
+ .. obelow Bottom~Middle {left}
+ .. (Bottom + cCurl)~Left;
+
+ % The emphasis at the top left of the S.
+ draw
+ fatcliptwice
+ (oabove rightof Top~Left -- obelow rightof Bottom~Left)
+ (subpath (0, 4) of spath);
+
+ % The path of the S.
+ draw spath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("t")
+ (medgap#, smalllower#, smallgap#)
+ (bTop#, aBottom#);
+
+ "The letter t";
+
+ % The curve.
+ var (path) tpath;
+
+ tpath
+ = (Bottom + hCurl)~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. (Bottom + cCurl)~Right;
+
+ % The bar.
+ draw
+ aTop~Left
+ -- aTop~Right;
+
+ % The emphasis.
+ outline
+ fatcliponce
+ (rightof Top~Left -- obelow rightof Bottom~Left)
+ (tpath);
+
+ % The curve.
+ draw tpath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("u")
+ (medgap#, medlower#, medgap#)
+ (aTop#, aBottom#);
+
+ "The letter u";
+
+ % The curve of the u.
+ var (path) upath;
+
+ upath
+ = Top~Left
+ --- Horizon~Left
+ .. obelow Bottom~Middle {right}
+ .. {up} Horizon~Right;
+
+ % The emphasis.
+ draw
+ fatcliponce
+ (rightof Top~Left -- obelow rightof Bottom~Left)
+ (upath);
+
+ % The curve.
+ draw upath;
+
+ % The right line.
+ draw
+ Bottom~Right
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("v")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, aBottom#);
+
+ symmetric;
+
+ "The letter v";
+
+ % The left diagonal, clipped by the right.
+ draw
+ fatcliponce
+ (rightof Top~Left -- rightof Bottom~Middle)
+ (Bottom~Middle -- Top~Right);
+
+ % The right diagonal.
+ draw
+ Bottom~Middle
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("w")
+ (smallgap#, biglower#, smallgap#)
+ (aTop#, aBottom#);
+
+ symmetric;
+
+ "The letter w";
+
+ % The left diagonal, clipped by the rest.
+ draw
+ fatcliponce
+ (rightof Top~Left -- rightof Bottom~(Left -+- Middle))
+ (Bottom~(Left -+- Middle) -- eBar~Middle);
+
+ % The rest of the letter.
+ draw
+ Bottom~(Left -+- Middle)
+ -- eBar~Middle
+ -- Bottom~(Middle -+- Right)
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("x")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, aBottom#);
+
+ "The letter x";
+
+ % The SE diagonal.
+ draw
+ Top~Left
+ -- Bottom~Right;
+
+ % The SW diagonal, fattened.
+ outline
+ fatten
+ leftof Top~Right
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("y")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, gBottom#);
+
+ symmetric;
+
+ "The letter y";
+
+ % The left diagonal, fattened, and clipped by the right.
+ draw
+ fatcliponce
+ (rightof Top~Left -- rightof aBottom~Middle)
+ (Top~Right -- aBottom~Middle);
+
+ % The right diagonal and tail.
+ draw
+ Top~Right
+ --- aBottom~Middle
+ .. obelow Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("z")
+ (smallgap#, medlower#, smallgap#)
+ (aTop#, aBottom#);
+
+ "The letter z";
+
+ % The top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The diagonal, fattened.
+ draw
+ fatten
+ leftof Top~Right
+ -- rightof Bottom~Left;
+
+ % The bottom line.
+ draw
+ Bottom~Left
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbnum.mf b/Master/texmf-dist/fonts/source/public/bbold/bbnum.mf
new file mode 100644
index 00000000000..1be5023e1b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbnum.mf
@@ -0,0 +1,300 @@
+% Blackboard bold numerals, Alan Jeffrey, 12--18 Dec 1989.
+
+% -------------------------------------------------------------------
+
+bbnum ("0");
+ "The number 0";
+
+ % The curve.
+ var (path) zeropath;
+
+ zeropath
+ = oabove Top~Middle {left}
+ .. Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. Horizon~Right {up}
+ .. cycle;
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- oabove rightof Top~Left)
+ (zeropath);
+
+ % The curve.
+ draw zeropath;
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbnum ("1");
+
+ fatsymmetric;
+
+ "The number 1";
+
+ % The top serif.
+ draw
+ rightof Top~Middle
+ -- (Top - CCurl)~Left;
+
+ % The vertical, clipped by the top serif.
+ draw
+ fatcliponce
+ (Bottom~Middle -- Top~Middle)
+ (rightof Top~Middle -- (Top - CCurl)~Left);
+
+ % The bottom serif.
+ draw
+ Bottom~Left
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbnum ("2");
+ "The number 2";
+
+ % The outline.
+ var (path) twopath;
+
+ twopath
+ = (Top-CCurl)~Left
+ .. oabove Top~Middle {right}
+ .. (Top -+- threeBar)~Right {down}
+ .. Bottom~Left {down};
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (leftof Bottom~Right -- oabove leftof Top~Right)
+ (twopath);
+
+ % The curve.
+ draw twopath;
+
+ % The base line.
+ draw
+ Bottom~Left
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbnum ("3");
+ "The number 3";
+
+ % The curve.
+ var (path) threepath;
+
+ threepath
+ = (Top - CCurl)~Left
+ .. oabove Top~Middle {right}
+ .. (Top -+- threeBar)~Right {down}
+ .. threeBar~Middle {left}
+ & threeBar~Middle {right}
+ .. (threeBar -+- Bottom)~Right {down}
+ .. obelow Bottom~Middle {left}
+ .. (Bottom + CCurl)~Left;
+
+ % The top emphasis.
+ draw
+ fatcliptwice
+ (leftof threeBar~Right -- oabove leftof Top~Right)
+ (threepath);
+
+ % The bottom emphasis.
+ draw
+ fatcliptwice
+ (obelow leftof Bottom~Right -- leftof threeBar~Right)
+ (threepath);
+
+ % The curve.
+ draw threepath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbnum ("4");
+ "The number 4";
+
+ % The right of the vertical is jut away from the right of the character.
+ var (numeric) verticalRight;
+
+ verticalRight + jut = Right;
+
+ % The bar.
+ draw
+ ABar~Left
+ -- ABar~Right;
+
+ % The vertical, fattened and clipped by the diagonal.
+ outline
+ fatcliponce
+ (leftof Bottom~verticalRight -- leftof Top~verticalRight)
+ (Top~verticalRight -- ABar~Left);
+
+ % The diagonal.
+ draw
+ Top~verticalRight
+ -- ABar~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbnum ("5");
+ "The number 5";
+
+ % The top horizontal.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The vertical, fattened.
+ draw
+ fatten
+ rightof (Bottom + sixBowl)~Left
+ -- rightof Top~Left;
+
+ % The curve.
+ draw
+ (Bottom + sixBowl)~Left
+ --- (Bottom + sixBowl)~Middle
+ .. (Bottom + 1/2sixBowl)~Right {down}
+ .. obelow Bottom~Middle {left}
+ .. (Bottom + CCurl)~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbnum ("6");
+ "The number 6";
+
+ % The bowl.
+ var (path) sixpath;
+
+ sixpath
+ = (Bottom + 1/2sixBowl)~Right {up}
+ .. (Bottom + sixBowl)~Middle {left}
+ .. (Bottom + 1/2sixBowl)~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. cycle;
+
+ % The tail.
+ draw
+ (Bottom + 1/2sixBowl)~Left
+ --- (Bottom + sixBowl)~Left
+ .. oabove Top~Middle {right}
+ .. (Top - CCurl)~Right;
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- rightof (Bottom + sixBowl)~Left)
+ (sixpath);
+
+ % The bowl.
+ draw sixpath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbnum ("7");
+ "The number 7";
+
+ % The vertical.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The diagonal.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- leftof Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbnum ("8");
+ "The number 8";
+
+ % The bowls.
+ var (path) eighttop, eightbottom;
+
+ eighttop
+ = oabove Top~Middle {left}
+ .. (Top -+- threeBar)~Left {down}
+ .. threeBar~Middle {right}
+ .. (threeBar -+- Top)~Right {up}
+ .. cycle;
+
+ eightbottom
+ = threeBar~Middle {left}
+ .. (threeBar -+- Bottom)~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. (Bottom -+- threeBar)~Right {up}
+ .. cycle;
+
+ % The top emphasis.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- oabove rightof Top~Left)
+ (eighttop);
+
+ % The bottom emphasis.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- oabove rightof Top~Left)
+ (eightbottom);
+
+ % The top bowl.
+ draw eighttop;
+
+ % The bottom bowl.
+ draw eightbottom
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbnum ("9");
+ "The number 9";
+
+ % The bowl.
+ var (path) ninepath;
+
+ ninepath
+ = (Top - sixBowl)~Middle {left}
+ .. (Top - 1/2sixBowl)~Left {up}
+ .. oabove Top~Middle {right}
+ .. (Top - 1/2sixBowl)~Right {down}
+ .. cycle;
+
+ % The tail.
+ draw
+ (Top - 1/2sixBowl)~Right
+ --- (Top - sixBowl)~Right
+ .. obelow Bottom~Middle {left}
+ .. (Bottom + CCurl)~Left;
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (oabove rightof Top~Left -- rightof (Top - sixBowl)~Left)
+ (ninepath);
+
+ % The bowl.
+ draw ninepath
+
+endchar;
+
+% -------------------------------------------------------------------
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold.mf
new file mode 100644
index 00000000000..bf0f53e34c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbold.mf
@@ -0,0 +1,9 @@
+input bbparams;
+input bbgreeku;
+input bbgreekl;
+input bbnum;
+input bbupper;
+input bblower;
+input bbpunc;
+input bbligs;
+
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold10.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold10.mf
new file mode 100644
index 00000000000..f0a077a94c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbold10.mf
@@ -0,0 +1,19 @@
+% Blackboard bold 10pt. Alan Jeffrey, 18 Dec 1989.
+
+mode_setup;
+
+input bbbase;
+
+% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase.
+cmbase := 1;
+def generate suffix t = enddef;
+
+% Input the cmr parameters.
+input cmr10;
+
+font_identifier := "BBOLD";
+font_coding_scheme := "Blackboard bold";
+
+% Then generate blackboard bold.
+input bbold;
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold12.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold12.mf
new file mode 100644
index 00000000000..ecf09875891
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbold12.mf
@@ -0,0 +1,19 @@
+% Blackboard bold 12pt. Alan Jeffrey, 18 Dec 1989.
+
+mode_setup;
+
+input bbbase;
+
+% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase.
+cmbase := 1;
+def generate suffix t = enddef;
+
+% Input the cmr parameters.
+input cmr12;
+
+font_identifier := "BBOLD";
+font_coding_scheme := "Blackboard bold";
+
+% Then generate blackboard bold.
+input bbold;
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold17.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold17.mf
new file mode 100644
index 00000000000..69b43b69800
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbold17.mf
@@ -0,0 +1,19 @@
+% Blackboard bold 17pt. Alan Jeffrey, 18 Dec 1989.
+
+mode_setup;
+
+input bbbase;
+
+% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase.
+cmbase := 1;
+def generate suffix t = enddef;
+
+% Input the cmr parameters.
+input cmr17;
+
+font_identifier := "BBOLD";
+font_coding_scheme := "Blackboard bold";
+
+% Then generate blackboard bold.
+input bbold;
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold5.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold5.mf
new file mode 100644
index 00000000000..fa3bbbfbd70
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbold5.mf
@@ -0,0 +1,19 @@
+% Blackboard bold 5pt. Alan Jeffrey, 18 Dec 1989.
+
+mode_setup;
+
+input bbbase;
+
+% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase.
+cmbase := 1;
+def generate suffix t = enddef;
+
+% Input the cmr parameters.
+input cmr5;
+
+font_identifier := "BBOLD";
+font_coding_scheme := "Blackboard bold";
+
+% Then generate blackboard bold.
+input bbold;
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold6.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold6.mf
new file mode 100644
index 00000000000..8a65b013a80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbold6.mf
@@ -0,0 +1,19 @@
+% Blackboard bold 6pt. Alan Jeffrey, 18 Dec 1989.
+
+mode_setup;
+
+input bbbase;
+
+% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase.
+cmbase := 1;
+def generate suffix t = enddef;
+
+% Input the cmr parameters.
+input cmr6;
+
+font_identifier := "BBOLD";
+font_coding_scheme := "Blackboard bold";
+
+% Then generate blackboard bold.
+input bbold;
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold7.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold7.mf
new file mode 100644
index 00000000000..b4493e51f52
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbold7.mf
@@ -0,0 +1,19 @@
+% Blackboard bold 7pt. Alan Jeffrey, 18 Dec 1989.
+
+mode_setup;
+
+input bbbase;
+
+% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase.
+cmbase := 1;
+def generate suffix t = enddef;
+
+% Input the cmr parameters.
+input cmr7;
+
+font_identifier := "BBOLD";
+font_coding_scheme := "Blackboard bold";
+
+% Then generate blackboard bold.
+input bbold;
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold8.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold8.mf
new file mode 100644
index 00000000000..8fa4db16366
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbold8.mf
@@ -0,0 +1,19 @@
+% Blackboard bold 8pt. Alan Jeffrey, 18 Dec 1989.
+
+mode_setup;
+
+input bbbase;
+
+% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase.
+cmbase := 1;
+def generate suffix t = enddef;
+
+% Input the cmr parameters.
+input cmr8;
+
+font_identifier := "BBOLD";
+font_coding_scheme := "Blackboard bold";
+
+% Then generate blackboard bold.
+input bbold;
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbold9.mf b/Master/texmf-dist/fonts/source/public/bbold/bbold9.mf
new file mode 100644
index 00000000000..7e0cafe281c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbold9.mf
@@ -0,0 +1,19 @@
+% Blackboard bold 9pt. Alan Jeffrey, 18 Dec 1989.
+
+mode_setup;
+
+input bbbase;
+
+% Hacks to make sure cmr doesn't generate the font, and doesn't load cmbase.
+cmbase := 1;
+def generate suffix t = enddef;
+
+% Input the cmr parameters.
+input cmr9;
+
+font_identifier := "BBOLD";
+font_coding_scheme := "Blackboard bold";
+
+% Then generate blackboard bold.
+input bbold;
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbparams.mf b/Master/texmf-dist/fonts/source/public/bbold/bbparams.mf
new file mode 100644
index 00000000000..b344ccb1584
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbparams.mf
@@ -0,0 +1,205 @@
+% Blackboard bold parameters, Alan Jeffrey 14--18 Dec 1989.
+%
+% These parameters are deduced from those set in bboldNN.mf.
+%
+% The only horizontal parameter we take in is the unit u#,
+% from which we calculate all the horizontal distances.
+%
+% The distance between the two strokes in a fat line is fatness.
+
+fatness# := 2.3u#;
+
+% The size of a pen is rule_thickness.
+
+pen_size# := rule_thickness#;
+
+% Characters with space inside them (for example the
+% gap between the bar and the dot in a ! have either smallspace,
+% space# or bigspace# worth of space.
+
+smallspace# := u#;
+space# := 2u#;
+bigspace# := 3u#;
+
+% Characters with bits jutting out of them (for example the feet in
+% ] or the bar in f) have jut# worth of stick-outiness.
+
+jut# := 1.5u#;
+bigjut# := 2.5u#;
+
+% Some characters are exactly fatness# + pen_size# wide, as they are
+% drawn with just one vertical line.
+%
+% tiny --- I, i, l, |, ,, :, ;, ., `, ', !.
+%
+% Others have a small amount jutting out from the side, like the
+% top and bottom of a ].
+%
+% tiny+jut --- [, ], (, ).
+
+tiny# := fatness# + pen_size#;
+
+% Upper case characters come in three sizes:
+%
+% small --- B, E, F, J, K, L, P, R, S, Gamma, Pi, ?, $, /, \,
+%
+% medium --- A, C, D, G, H, M, N, O, Q, T, U, V, X, Y, Z,
+% Delta, Theta, Lamba, Xi, Sigma, Upsilon, Phi, Psi, Omega,
+%
+% big --- W.
+
+smallcap# := 9u#;
+medcap# := 10u#;
+bigcap# := 14u#;
+
+% Lower case characters come in three sizes:
+%
+% small --- f, j, s, t,
+%
+% small + fatness --- h, k, n, r,
+%
+% medium --- a, c, d, e, g, o, q, u, v, x, y, z,
+%
+% medium + fatness --- b, p,
+%
+% big --- m, w.
+%
+% The letters with verticals at the left have fatness added on
+% so that the curves are the same size as the other letters.
+
+smalllower# := 6u#;
+medlower# := 7.5u#;
+biglower# := 11u#;
+
+% Numerals are all the same size.
+
+numeral# := 8u#;
+
+% Arithmetic operators (in this case just +) are all the same size.
+
+arithmetic# := 12u#;
+
+% Characters have three kinds of space at the side:
+%
+% small --- for example around a T,
+%
+% medium --- for example around an O,
+%
+% large --- for example around an I.
+
+smallgap# := 1/2u#;
+medgap# := 1u#;
+biggap# := 1.5u#;
+
+% Whereas we've only got one horizontal measurement stolen from cmr,
+% there are lots of vertical ones. We can use these to work out
+% our measurements.
+%
+% Characters can have various top positions:
+%
+% ATop --- the top of all capitals, Greek, and some punctuation,
+%
+% aTop --- the top of lower case without ascenders,
+%
+% bTop --- the top of lower case with ascenders,
+%
+% iTop --- the top of i and j,
+%
+% oneTop --- the top of numerals,
+%
+% bracketTop --- the top of a bracket (also the top of the body size).
+
+ATop# := cap_height#;
+aTop# := x_height#;
+bTop# := asc_height#;
+oneTop# := fig_height#;
+bracketTop# := body_height#;
+iTop# := min(x_height# + space# + fatness#, asc_height#);
+
+% The bottoms of characters can be:
+%
+% aBottom --- the base line,
+%
+% gBottom --- the bottom of a descender,
+%
+% bracketBottom --- the bottom of a bracket (also the bottom of the body).
+
+aBottom# := 0pt#;
+gBottom# := -desc_depth#;
+.5 [bracketBottom#, bracketTop#] = math_axis#; % Brackets are centered.
+
+% Various characters such as A, B, G, e, and 3 have bars in them.
+
+ABar# := .25 [aBottom#, ATop#];
+BBar# := .52 [aBottom#, ATop#]; % number nicked from cmr.
+GBar# := .50 [aBottom#, ATop#];
+eBar# := bar_height#;
+threeBar# := .54[aBottom#, oneTop#]; % number nicked from cmr.
+
+% The top of a Q's tail is at QTailTop, and the bottom is at QTailBottom.
+
+QTailTop# := .28 [aBottom#, ATop#]; % number nicked from cmr.
+QTailBottom# := aBottom# - comma_depth#; % number nicked from cmr.
+
+% Various sorts of letters have various amounts of curl in them.
+%
+% CCurl --- the amount the end of a C curls,
+% cCurl --- the amount the end of a c curls,
+% gCurl --- the amount the tail of a g curls,
+% hCurl --- the distance from the bottom of an h to the point where
+% the right of the curve becomes vertical.
+
+CCurl# := .2 (ATop# - aBottom#);
+cCurl# := .2 (aTop# - aBottom#);
+gCurl# := .2 (aBottom# - gBottom#);
+hCurl# := .4 (aTop# - aBottom#);
+
+% The numbers five, six and eight have bowls, which are sixBowl# tall.
+
+sixBowl# := aTop# - aBottom#; % These bowls are as tall as an a.
+
+% A less than (and a greater than) is lessthan# tall.
+
+lessthan# := math_spread [5/4x_height#, 3/2x_height#]; % Numbers from cmr.
+
+% Right, I'll now turn these nice sharp measurements into grotty
+% approximate pixelly ones.
+
+define_corrected_pixels (o);
+
+define_whole_blacker_pixels
+ (pen_size);
+
+define_whole_pixels
+ (fatness, jut, bigjut, smallspace, space, bigspace);
+
+define_whole_vertical_pixels
+ (CCurl, cCurl, gCurl, hCurl, sixBowl);
+
+define_whole_top_pixels
+ (ATop, aTop, bTop, oneTop, bracketTop, QTailTop);
+
+define_whole_bottom_pixels
+ (QTailBottom, aBottom, gBottom, bracketBottom);
+
+pickup pencircle scaled pen_size;
+define_good_y_pixels
+ (ABar, BBar, GBar, eBar, threeBar);
+
+% And now some handy numbers, which I don't need sharp versions of.
+
+aMiddle := .5[aBottom, aTop];
+dashMiddle := .61803 [aBottom, aTop]; % Number stolen from cmr.
+
+% I can now set the font parameters for the TFM files, stolen from cmr.
+
+font_normal_space := 6u#;
+font_normal_stretch := 3u#;
+font_normal_shrink := 2u#;
+font_quad := 18u#;
+font_extra_space := 2u#;
+font_x_height := x_height#;
+
+% And that's that.
+
+
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbpunc.mf b/Master/texmf-dist/fonts/source/public/bbold/bbpunc.mf
new file mode 100644
index 00000000000..a539fe2f821
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbpunc.mf
@@ -0,0 +1,691 @@
+% Blackboard bold punctuation, Alan Jeffrey, 13--18 Dec 1989.
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("!")
+ (biggap#, tiny#, biggap#);
+
+ fatsymmetric;
+
+ "Exclamation mark `!'";
+
+ % The vertical.
+ draw
+ fatten
+ Top~Middle
+ -- (Bottom + space + fatness)~Middle;
+
+ % The dot.
+ draw
+ splodge
+ above Bottom~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("#")
+ (medgap#, arithmetic#, medgap#)
+ (ATop#, gBottom#);
+
+ "The hash sign `#'";
+
+ % The top line.
+ draw
+ (Horizon + space)~Left
+ -- (Horizon + space)~Right;
+
+ % The bottom line.
+ draw
+ (Horizon - space)~Left
+ -- (Horizon - space)~Right;
+
+ % The right vertical.
+ draw
+ rightof Top~(Middle + space)
+ -- rightof Bottom~(Middle + space);
+
+ % The left vertical.
+ outline
+ fatten
+ rightof Top~(Middle - space)
+ -- rightof Bottom~(Middle - space)
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("$")
+ (medgap#, smallcap#, medgap#)
+ (ATop# + jut#, aBottom# - jut#);
+
+ fatsymmetric;
+
+ "Dollar sign `$'";
+
+ % The path of the S.
+ draw
+ (Top - CCurl)~Right
+ .. ATop~Middle {left}
+ .. (ATop -+- BBar)~Left {down}
+ .. BBar~Middle {right}
+ .. (BBar -+- aBottom)~Right {down}
+ .. aBottom~Middle {left}
+ .. (Bottom + CCurl)~Left;
+
+ % The vertical.
+ outline
+ fatten
+ Bottom~Middle
+ -- Top~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("%")
+ (medgap#, smallcap#, medgap#)
+ (bracketTop#, aBottom# + aTop# - bracketTop#);
+
+ fatsymmetric;
+
+ "Per cent sign `%'";
+
+ % The dot at top left.
+ draw
+ splodge
+ below rightof Top~Left;
+
+ % The dot at bottom right.
+ draw
+ splodge
+ above leftof Bottom~Right;
+
+ % The diagonal.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- leftof Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("&")
+ (medgap#, arithmetic#, medgap#)
+ (ATop#, aBottom#);
+
+ "Ampersand `&'";
+
+ % z1 is the top point at which the curls cross. It is somewhere
+ % between the top point and the bottom point, and is at aTop.
+
+ z1 = whatever[leftof Top~Middle, Bottom~(Left -+- Middle)];
+ y1 = aTop;
+
+ % The curve.
+ var (path) ampersandpath;
+
+ ampersandpath
+ = (Bottom + cCurl)~Right
+ .. obelow Bottom~(Right - jut) {left}
+ ... z1
+ .. oabove leftof Top~Middle {right}
+ .. z1
+ .. aMiddle~Left {down}
+ .. obelow Bottom~(Left -+- Middle) {right}
+ .. aMiddle~(Right - space);
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- rightof Top~Left)
+ (ampersandpath);
+
+ % The curve.
+ draw ampersandpath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("'")
+ (medgap#, tiny#, medgap#)
+ (bTop#, bTop# - tiny# - comma_depth#);
+
+ fatsymmetric;
+
+ "Apostrophe `''";
+
+ % The dot and tail.
+ draw
+ splodger below Top~Middle
+ .. Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("(")
+ (biggap#, tiny# + jut#, smallgap#)
+ (bracketTop#, bracketBottom#);
+
+ "Left bracket `('";
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (rightof Bottom~Left -- rightof Top~Left)
+ (Bottom~Right {left} .. Horizon~Left .. Top~Right {right});
+
+ % The curve.
+ draw
+ Bottom~Right {left}
+ .. Horizon~Left
+ .. Top~Right {right}
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (")")
+ (smallgap#, tiny# + jut#, biggap#)
+ (bracketTop#, bracketBottom#);
+
+ "Right bracket `)'";
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (leftof Bottom~Right -- leftof Top~Right)
+ (Bottom~Left {right} .. Horizon~Right .. Top~Left {left});
+
+ % The curve.
+ draw
+ Bottom~Left {right}
+ .. Horizon~Right
+ .. Top~Left {left}
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("*")
+ (medgap#, (sqrt3)/2 * arithmetic#, medgap#)
+ (math_axis# + 1/2arithmetic#, math_axis# - 1/2arithmetic#)
+
+ fatsymmetric;
+
+ "Star `*'";
+
+ % The distance from the top of the character to the top of the diagonals.
+ var (numeric) adistance;
+ adistance = round ((Top - Horizon) / 2);
+
+ % The NW diagonal.
+ draw
+ (Bottom + adistance)~Right
+ -- (Top - adistance)~Left;
+
+ % The NE diagonal.
+ draw
+ (Bottom + adistance)~Left
+ -- (Top -adistance)~Right;
+
+ % The vertical, fattened.
+ outline
+ fatten
+ Bottom~Middle
+ -- Top~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("+")
+ (medgap#, arithmetic#, medgap#)
+ (math_axis# + 1/2arithmetic#, math_axis# - 1/2arithmetic#)
+
+ "Plus sign `+'";
+
+ % The horizontal line.
+ draw
+ Horizon~Left
+ -- Horizon~Right;
+
+ % The vertical, fattened.
+ outline
+ fatten
+ Bottom~Middle
+ -- Top~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (",")
+ (medgap#, tiny#, medgap#)
+ (aBottom# + tiny#, aBottom# - comma_depth#);
+
+ fatsymmetric;
+
+ "Comma `,'";
+
+ % The dot and tail.
+ draw
+ splodger above aBottom~Middle
+ .. Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("-")
+ (smallgap#, smalllower#, medgap#)
+ (aTop#, aBottom#);
+
+ "Hyphen `-'";
+
+ % The line.
+ draw
+ Horizon~Left
+ -- Horizon~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (".")
+ (medgap#, tiny#, medgap#)
+ (aBottom# + tiny#, aBottom#);
+
+ fatsymmetric;
+
+ "Full stop `.'";
+
+ % The dot.
+ draw
+ splodge
+ above Bottom~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("/")
+ (smallgap#, smallcap#, smallgap#)
+ (bracketTop#, bracketBottom#);
+
+ "Virgule (slash) `/'";
+
+ % The line.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- leftof Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (":")
+ (medgap#, tiny#, medgap#)
+ (aTop#, aBottom#);
+
+ fatsymmetric;
+
+ "Colon `:'";
+
+ % The top dot.
+ draw
+ splodge
+ below Top~Middle;
+
+ % The bottom dot.
+ draw
+ splodge
+ above Bottom~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ (";")
+ (medgap#, tiny#, medgap#)
+ (aTop#, aBottom# - comma_depth#);
+
+ fatsymmetric;
+
+ "Semicolon `;'";
+
+ % The upper dot.
+ draw
+ splodge
+ below Top~Middle;
+
+ % The lower dot and tail.
+ draw
+ splodger above aBottom~Middle
+ .. Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+beginblacker 1.5;
+bbchar
+ ("<")
+ (biggap#, arithmetic#, biggap#)
+ (math_axis# + 1/2lessthan#, math_axis# - 1/2lessthan#);
+
+ "Less than sign `<'";
+
+ % The top diagonal.
+ draw
+ Top~Right
+ --- Horizon~Left;
+
+ % The bottom diagonal, fattened, and clipped by the top.
+ % We need to carry on the diagonal past where it started,
+ % so we extend it up to the top of the character.
+ draw
+ fatcliponce
+ (leftof Bottom~Right
+ --- rightof Horizon~Left
+ .. farrightof Top~(2Left - Right))
+ (Top~Right -- Horizon~Left)
+
+endchar;
+endblacker;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("=")
+ (medgap#, tiny#, medgap#)
+ (math_axis# + 1/2tiny#, math_axis# - 1/2tiny#);
+
+ fatsymmetric;
+
+ "Centred dot";
+
+ % The dot.
+ draw
+ splodge
+ above Bottom~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+beginblacker 1.5;
+
+bbchar
+ (">")
+ (biggap#, arithmetic#, biggap#)
+ (math_axis# + 1/2lessthan#, math_axis# - 1/2lessthan#);
+
+ "Greater than sign `>'";
+
+ % The top diagonal.
+ draw
+ Top~Left
+ --- Horizon~Right;
+
+ % The bottom diagonal, fattened, and clipped by the top.
+ % We need to carry on the diagonal past where it started,
+ % so we extend it up to the top of the character.
+ draw
+ fatcliponce
+ (rightof Bottom~Left
+ --- leftof Horizon~Right
+ .. farleftof Top~(2Right - Left))
+ (Top~Left -- Horizon~Right)
+
+endchar;
+endblacker;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("?")
+ (medgap#, smallcap#, medgap#);
+
+ fatsymmetric;
+
+ "Question mark `?'";
+
+ % The height of the bottom of the curl.
+ var (numeric) curlBottom;
+
+ curlBottom = Bottom + fatness + space;
+
+ % The curl.
+ var (path) questionpath;
+
+ questionpath
+ = (Top - CCurl)~Left
+ .. oabove Top~Middle {right}
+ .. (1/3[Top, curlBottom])~Right {down}
+ .. rightof (2/3[Top, curlBottom])~Middle {left}
+ .. leftof curlBottom~Middle {down};
+
+ draw questionpath;
+
+ % The emphasis, clipped with the bottom bit of the question path.
+ draw
+ fatcliponce
+ (curlBottom~Middle -- oabove Top~Middle)
+ (subpath (2, infinity) of questionpath);
+
+ % The dot.
+ draw
+ splodge
+ above Bottom~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("@")
+ (medgap#, tiny# + 2fatness#, medgap#)
+ (ATop#, aBottom#);
+
+ "At sign `@'";
+
+ % The curl.
+ var (path) atpath;
+
+ atpath
+ = (Bottom + CCurl)~Right
+ .. obelow Bottom~Middle {left}
+ .. Horizon~Left {up}
+ .. oabove Top~Middle {right}
+ .. splodger leftof Horizon~Right;
+
+ % The emphasis.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- oabove rightof Top~Left)
+ (atpath);
+
+ % The curl.
+ draw atpath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("[")
+ (biggap#, tiny# + jut#, smallgap#)
+ (bracketTop#, bracketBottom#);
+
+ "Left square bracket `['";
+
+ % The vertical.
+ draw
+ fatten
+ rightof Bottom~Left
+ -- rightof Top~Left;
+
+ % The top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The bottom line.
+ draw
+ Bottom~Left
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("\")
+ (smallgap#, smallcap#, smallgap#)
+ (bracketTop#, bracketBottom#);
+
+ "Reverse slash `\'";
+
+ % The line.
+ draw
+ fatten
+ leftof Bottom~Right
+ -- rightof Top~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("]")
+ (smallgap#, tiny# + jut#, biggap#)
+ (bracketTop#, bracketBottom#);
+
+ "Right square bracket `]'";
+
+ % The vertical.
+ draw
+ fatten
+ leftof Bottom~Right
+ -- leftof Top~Right;
+
+ % The top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The bottom line.
+ draw
+ Bottom~Left
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+beginblacker 1.25;
+bbchar
+ ("^")
+ (biggap#, tiny# + jut#, smallgap#)
+ (bracketTop#, bracketBottom#);
+
+ "Left angle bracket";
+
+ % The emphasis, clipped by the bracket.
+ draw
+ fatcliptwice
+ (rightof Bottom~Left -- rightof Top~Left)
+ (Bottom~Right -- Horizon~Left -- Top~Right);
+
+ % The bracket.
+ draw
+ Bottom~Right
+ -- Horizon~Left
+ -- Top~Right
+
+endchar;
+endblacker;
+
+% -------------------------------------------------------------------
+
+beginblacker 1.25;
+bbchar
+ ("_")
+ (smallgap#, tiny# + jut#, biggap#)
+ (bracketTop#, bracketBottom#);
+
+ "Right angle bracket";
+
+ % The emphasis, clipped by the bracket.
+ draw
+ fatcliptwice
+ (leftof Bottom~Right -- leftof Top~Right)
+ (Bottom~Left -- Horizon~Right -- Top~Left);
+
+ % The bracket.
+ draw
+ Bottom~Left
+ -- Horizon~Right
+ -- Top~Left
+
+endchar;
+endblacker;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("`")
+ (medgap#, tiny#, medgap#)
+ (bTop#, bTop# - tiny# - comma_depth#);
+
+ fatsymmetric;
+
+ "Reverse apostrophe ``'";
+
+ % The dot and tail.
+ draw
+ splodgel above Bottom~Middle
+ .. Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("|")
+ (biggap#, tiny#, biggap#)
+ (bracketTop#, bracketBottom#);
+
+ "Vertical bar `|'";
+
+ % The line.
+ draw
+ fatten
+ Bottom~Middle
+ -- Top~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
diff --git a/Master/texmf-dist/fonts/source/public/bbold/bbupper.mf b/Master/texmf-dist/fonts/source/public/bbold/bbupper.mf
new file mode 100644
index 00000000000..c839abf2ed9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bbold/bbupper.mf
@@ -0,0 +1,698 @@
+% Blackboard bold capitals, Alan Jeffrey, 11--14 Dec 1989.
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("A")
+ (smallgap#, medcap#, smallgap#);
+
+ "The letter A";
+
+ % The bar, clipped by the wedge.
+ draw
+ cliptwice
+ (ABar~Left -- ABar~Right)
+ (Bottom~Left -- Top~Middle -- Bottom~Right);
+
+ % The left line, fattened, and clipped by the right line.
+ outline
+ fatcliponce
+ (rightof Bottom~Left -- rightof Top~Middle)
+ (Top~Middle -- Bottom~Right);
+
+ % The right line.
+ draw
+ Top~Middle
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("B")
+ (biggap#, smallcap#, medgap#);
+
+ "The letter B";
+
+ % The top arc.
+ draw
+ Top~Left
+ -- Top~Middle {right}
+ .. (Top -+- BBar)~Right
+ .. {left} BBar~Middle
+ -- BBar~Left;
+
+ % The bottom arc.
+ draw
+ BBar~Left
+ -- BBar~Middle {right}
+ .. (BBar -+- Bottom)~Right
+ .. {left} Bottom~Middle
+ -- Bottom~Left;
+
+ % The left line, fattened.
+ outline
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("C")
+ (medgap#, medcap#, medgap#);
+
+ "The letter C";
+
+ % The curve of the C.
+ var (path) Cpath;
+
+ Cpath
+ = (Top - CCurl)~Right
+ .. oabove Top~Middle {left}
+ .. Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. (Bottom + CCurl)~Right;
+
+ % The fat line emphasising the left side, clipped by the curve.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- oabove rightof Top~Left)
+ (Cpath);
+
+ % The curve.
+ draw Cpath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("D")
+ (biggap#, medcap#, medgap#);
+
+ "The letter D";
+
+ % The curve of the D.
+ draw
+ Top~Left
+ -- Top~Middle {right}
+ .. Horizon~Right {down}
+ .. {left} Bottom~Middle
+ -- Bottom~Left;
+
+ % The left line, fattened.
+ draw
+ fatten
+ rightof Top~Left
+ --- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("E")
+ (biggap#, smallcap#, smallgap#);
+
+ "The letter E";
+
+ % The top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The bar.
+ draw
+ BBar~Left
+ -- farrightof BBar~(Left + bigjut);
+
+ % The bottom line.
+ draw
+ Bottom~Left
+ -- Bottom~Right;
+
+ % The left line, fattened.
+ outline
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("F")
+ (biggap#, smallcap#, smallgap#);
+
+ "The letter F";
+
+ % The top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The bar.
+ draw
+ BBar~Left
+ -- farrightof BBar~(Left + bigjut);
+
+ % The left line, fattened.
+ outline
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("G")
+ (medgap#, medcap#, medgap#);
+
+ "The letter G";
+
+ % The curve of the G (which is the same as of a C).
+ var (path) Gpath;
+
+ Gpath
+ = (Top - CCurl)~Right
+ .. oabove Top~Middle {left}
+ .. Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. (Bottom + CCurl)~Right;
+
+ % The emphasis for the left of the curve.
+ draw
+ fatcliptwice
+ (rightof obelow Bottom~Left -- oabove rightof Top~Left)
+ (Gpath);
+
+ % The curve.
+ draw Gpath;
+
+ % The bar.
+ draw
+ (Bottom + CCurl)~Right
+ -- GBar~Right
+ -- GBar~(Right - bigjut)
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("H")
+ (biggap#, medcap#, biggap#);
+
+ "The letter H";
+
+ % The right line.
+ draw
+ Top~Right
+ -- Bottom~Right;
+
+ % The bar.
+ draw
+ BBar~Left
+ -- BBar~Right;
+
+ % The left line, fattened.
+ outline
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("I")
+ (biggap#, tiny#, biggap#);
+
+ "The letter I";
+
+ % The vertical, fattened.
+ draw
+ fatten
+ Top~Middle
+ -- Bottom~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("J")
+ (medgap#, smallcap#, biggap#);
+
+ "The letter J";
+
+ % The curve.
+ var (path) Jpath;
+
+ Jpath
+ = Top~Right
+ -- (Bottom -+- Top)~Right {down}
+ .. obelow Bottom~Middle {left}
+ .. (Bottom + CCurl)~Left;
+
+ % The emphasis on the J, clipped by the curve.
+ draw
+ fatcliponce
+ (leftof Top~Right -- obelow leftof Bottom~Right)
+ (Jpath);
+
+ % The curve.
+ draw Jpath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("K")
+ (biggap#, smallcap#, medgap#);
+
+ "The letter K";
+
+ % The point at which the top diagonal hits the left side of the character.
+ % It is somewhere along the line from the top right to BBar~Middle.
+
+ z1 = whatever[Top~Right, BBar~Middle];
+ x1 = Left;
+
+ % The top diagonal.
+ draw
+ z1 -- Top~Right;
+
+ % The bottom diagonal.
+ draw
+ BBar~Middle
+ -- Bottom~Right;
+
+ % The left edge, fattened.
+ outline
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("L")
+ (biggap#, smallcap#, smallgap#);
+
+ "The letter L";
+
+ % The bottom line.
+ draw
+ Bottom~Left
+ -- Bottom~Right;
+
+ % The left line, fattened.
+ draw
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("M")
+ (biggap#, medcap#, biggap#);
+
+ symmetric;
+
+ "The letter M";
+
+ % The left line, fattened and clipped by the left diagonal.
+
+ draw
+ fatcliponce
+ (rightof Bottom~Left -- rightof Top~Left)
+ (Top~Left -- BBar~Middle);
+
+ % The rest of the letter.
+ draw
+ Top~Left
+ -- BBar~Middle
+ -- Top~Right
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("N")
+ (biggap#, medcap#, biggap#);
+
+ "The letter N";
+
+ % The left line, fattened and clipped by the diagonal.
+
+ draw
+ fatcliponce
+ (rightof Bottom~Left -- rightof Top~Left)
+ (Top~Left -- Bottom~Right);
+
+ % The rest of the letter.
+ draw
+ Top~Left
+ -- Bottom~Right
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("O")
+ (medgap#, medcap#, medgap#);
+
+ "The letter O";
+
+ % The path of the O.
+ var (path) Opath;
+
+ Opath
+ = oabove Top~Middle
+ .. Horizon~Left
+ .. obelow Bottom~Middle
+ .. Horizon~Right
+ .. cycle;
+
+ % The emphasis at the left of the O, clipped by the O curve.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- oabove rightof Top~Left)
+ (Opath);
+
+ % The curve.
+ draw Opath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("P")
+ (biggap#, smallcap#, medgap#);
+
+ "The letter P";
+
+ % The arc.
+ draw
+ Top~Left
+ -- Top~Middle {right}
+ .. (Top -+- BBar)~Right
+ .. {left} BBar~Middle
+ -- BBar~Left;
+
+ % The left line, fattened.
+ outline
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbchar
+ ("Q")
+ (medgap#, medcap#, medgap#)
+ (ATop#, QTailBottom#);
+
+ "The letter Q";
+
+ % The path of the Q.
+ var (path) Qpath;
+
+ Qpath
+ = oabove Top~Middle
+ .. (Top -+- aBottom)~Left
+ .. obelow aBottom~Middle
+ .. (Top -+- aBottom)~Right
+ .. cycle;
+
+ % The emphasis at the left of the Q, clipped by the Q curve.
+ draw
+ fatcliptwice
+ (obelow rightof Bottom~Left -- oabove rightof Top~Left)
+ (Qpath);
+
+ % The curve.
+ draw Qpath;
+
+ % The tail.
+ draw
+ QTailTop~Middle
+ -- QTailBottom~Right
+
+endchar;
+
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("R")
+ (biggap#, smallcap#, medgap#);
+
+ "The letter R";
+
+ % The arc.
+ draw
+ Top~Left
+ -- Top~Middle {right}
+ .. (Top -+- BBar)~Right
+ .. {left} BBar~Middle
+ -- BBar~Left;
+
+ % The left line, fattened.
+ outline
+ fatten
+ rightof Top~Left
+ -- rightof Bottom~Left;
+
+ % The diagonal.
+ draw
+ BBar~Middle
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("S")
+ (medgap#, smallcap#, medgap#);
+
+ "The letter S";
+
+ % The path of the S.
+ var (path) Spath;
+
+ Spath
+ = (Top - CCurl)~Right
+ .. oabove Top~Middle {left}
+ .. (Top -+- BBar)~Left {down}
+ .. BBar~Middle {right}
+ .. (BBar -+- Bottom)~Right {down}
+ .. obelow Bottom~Middle {left}
+ .. (Bottom + CCurl)~Left;
+
+ % The emphasis at the top left of the S.
+ draw
+ fatcliptwice
+ (oabove rightof Top~Left -- rightof BBar~Left)
+ (subpath (0, 4) of Spath);
+
+ % The path of the S.
+ draw Spath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("T")
+ (smallgap#, medcap#, smallgap#);
+
+ fatsymmetric;
+
+ "The letter T";
+
+ % The top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The vertical, fattened.
+ draw
+ fatten
+ Top~Middle
+ -- Bottom~Middle
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("U")
+ (biggap#, medcap#, biggap#);
+
+ "The letter U";
+
+ % The path of the U.
+ var (path) Upath;
+
+ Upath
+ = Top~Left
+ -- Horizon~Left {down}
+ .. obelow Bottom~Middle {right}
+ .. {up} Horizon~Right
+ -- Top~Right;
+
+ % The emphasis of the U.
+ draw
+ fatcliponce
+ (rightof Top~Left -- obelow rightof Bottom~Left)
+ (Upath);
+
+ % The path of the U.
+ draw Upath
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("V")
+ (smallgap#, medcap#, smallgap#);
+
+ symmetric;
+
+ "The letter V";
+
+ % The left diagonal, clipped by the right.
+ draw
+ fatcliponce
+ (rightof Top~Left -- rightof Bottom~Middle)
+ (Bottom~Middle -- Top~Right);
+
+ % The right diagonal.
+ draw
+ Bottom~Middle
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("W")
+ (smallgap#, bigcap#, smallgap#);
+
+ symmetric;
+
+ "The letter W";
+
+ % The left diagonal, clipped by the rest.
+ draw
+ fatcliponce
+ (rightof Top~Left -- rightof Bottom~(Left -+- Middle))
+ (Bottom~(Left -+- Middle) -- BBar~Middle);
+
+ % The rest of the letter.
+ draw
+ Bottom~(Left -+- Middle)
+ -- BBar~Middle
+ -- Bottom~(Middle -+- Right)
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("X")
+ (medgap#, medcap#, medgap#);
+
+ "The letter X";
+
+ % The SE diagonal.
+ draw
+ Top~Left
+ -- Bottom~Right;
+
+ % The SW diagonal, fattened.
+ outline
+ fatten
+ leftof Top~Right
+ -- rightof Bottom~Left
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("Y")
+ (smallgap#, medcap#, smallgap#);
+
+ fatsymmetric;
+
+ "The letter Y";
+
+ % The fat stroke running top left to bottom.
+ draw
+ fatten
+ rightof Top~Left
+ -- BBar~Middle
+ -- Bottom~Middle;
+
+ % The right diagonal.
+ draw
+ rightof BBar~Middle
+ -- Top~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
+bbcap
+ ("Z")
+ (medgap#, medcap#, medgap#);
+
+ "The letter Z";
+
+ % The top line.
+ draw
+ Top~Left
+ -- Top~Right;
+
+ % The diagonal, fattened.
+ draw
+ fatten
+ leftof Top~Right
+ -- rightof Bottom~Left;
+
+ % The bottom line.
+ draw
+ Bottom~Left
+ -- Bottom~Right
+
+endchar;
+
+% -------------------------------------------------------------------
+
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bn.mf b/Master/texmf-dist/fonts/source/public/bengali/bn.mf
new file mode 100644
index 00000000000..89a96afef9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bn.mf
@@ -0,0 +1,17 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bn.mf: METAFONT file that calls the base files
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input bnswar;
+input bnkaar;
+input bnbanjon;
+input bndigit;
+input bnpunct;
+input bnlig;
+input bnmisc;
+input bnjuk;
+input bnligtbl;
+
+%% End of the file bn.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnbanjon.mf b/Master/texmf-dist/fonts/source/public/bengali/bnbanjon.mf
new file mode 100644
index 00000000000..d2fc9de15fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnbanjon.mf
@@ -0,0 +1,508 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnbanjon.mf: METAFONT file that defines the Bengali consonants
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("k",0.70stwd#,stht#,stdp#); "The letter ka";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (5/8w,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/8w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (5/8w,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (5/8w,3/4h);
+draw z3..z4;
+z8 = (7/8w,2/7h); z8r = z8 + (len/2,-len/2); z8l = z8 - (len/2,-len/2);
+penstroke z5e{right}..z8e;
+fill fullcircle scaled 1.1pt shifted (z8 - (0.44pt,-0.2pt));
+endchar;
+
+beginchar("K",0.62stwd#,stht#,stdp#); "The letter kha";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+rt z4 = (1/6w,14/25h); z5 = (1/2w,3/4h);
+z6 = (2/3w,3/5h); z7 = (1/4w,11/30h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z4{right}..{dir 30}z5{dir -45}..{down}z6{down}..{dir -165}z7;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z2l + (0.15pt,0) = z2r - (0.15pt,0) = z2 + (0,0.17pt);
+penstroke z7e{dir -10}..{dir -65}z2e;
+fill fullcircle scaled 1.3pt shifted (z4 + (0.15pt,0.39pt));
+endchar;
+
+beginchar("g",0.56stwd#,stht#,stdp#); "The letter ga";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+rt z4 = (5/6w,4/7h); top z5 = (9/20w,3/4h); rt z6 = (1/7w,11/21h);
+z7 = (1/2w,19/40h); z8 = (17/50w,4/15h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z4{dir 120}..{left}z5{left}..{down}z6{dir 30}..{down}z7{down}..{dir -125}z8;
+endchar;
+
+beginchar("G",0.56stwd#,stht#,stdp#); "The letter gha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+z5 = (1/5w,3/4h-0.05pt); z6 = (1/8w,14/23h);
+z7 = (14/25w,21/40h); z8 = (2/9w,3/10h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z5{dir -120}..{down}z6{down}..{dir 30}z7--z8;
+z8r + (0.25pt,-0.25pt) = z8l - (0.25pt,-0.25pt) = z8;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z8e{right}..tension 1.5 ..{dir -75}z4e;
+endchar;
+
+beginchar("q",0.62stwd#,stht#,stdp#); "The letter una";
+z1 = (1/5w,3/4h); z2 = (19/40w,19/31h); z3 = (23/29w,23/31h);
+z4 = (1/2w,3/4h); z5 = (4/9w,3/8h); z6 = (19/40w,16/45h);
+z7 = (4/5w,1/2h); lft z8 = (7/8w,5/16h); z9 = (23/40w,1/12h);
+z10 = (9/50w,1/3h); z11 = (1/10w,13/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1..tension 1.2..{right}z2{right}..tension 1.2..
+{up}z3{up}..{dir -130}z4{dir -130}..
+tension 2..z5--z6{dir 0}..{dir 60}z7{dir -60}..{down}z8{down}
+..{left}z9{left}..z10..z11;
+endchar;
+
+beginchar("c",0.48stwd#,stht#,stdp#); "The letter cha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top lft z3 = (1/6w,3/4h); lft z4 = (1/6w,1/4h);
+z5 = (2/5w,1/16h); z6 = (5/6w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6{dir 165}..{dir 100}z3;
+endchar;
+
+beginchar("C",0.55stwd#,stht#,stdp#); "The letter chha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top z3 = (1/6w,3/4h); z4 = (1/6w,5/12h); z5 = (1/5w,3/8h);
+z6 = (11/20w,9/16h); z7 = (13/20w,9/16h); z8 = (5/6w,4/9h);
+z9 = (1/5w,9/40h); z10 = (w,-1/3d);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3..z4{down}..{right}z5{right}..{dir 80}z6{left}..{up}z3;
+draw z6{right}..z7..{down}z8{down}..{left}z9;
+z9r + (0.2pt,-0.2pt) = z9l - (0.2pt,-0.2pt) = z9;
+z10l + (0,0.15pt) = z10r - (0,0.15pt) = z10;
+penstroke z9e{right}..{dir -45}z10e;
+endchar;
+
+beginchar("j",0.70stwd#,stht#,stdp#); "The letter ja";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (8/20w,3/4h); z4 = (5/21w,1/2h); z5 = (8/20w,9/24h);
+z6 = (21/36w,37/80h); z7 = (11/16w,3/10h); z8 = (1/2w,1/8h);
+rt z9 = (1/10w,5/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir -135}..{down}z4{down}..{right}z5{right}..{dir30}z6
+ {dir -60}..{down}z7{down}..{left}z8{left}..{up}z9;
+rt z11 = z11l + (0.2pt,-0.2pt) = z11r - (0.2pt,-0.2pt) = (11/12w,3/5h);
+z12 = z12l + (0.15pt,0) = z12r - (0.15pt,0) = (8/9w,0);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z3{dir -90}..{dir 15}z11;
+penstroke z11e{dir -120}..{dir -75}z12e;
+endchar;
+
+beginchar("J",0.68stwd#,stht#,stdp#); "The letter jha";
+z1 = (w-0.9pt,3/4h); z2 = (w-0.9pt,1/11h);
+z3 = (5/8w,3/4h); z4 = (5/8w,0); lft z5 = 4/7[z3,z4];
+pickup pencircle scaled penth#; draw (z1+(0,0.3pt))..z2; draw z3..z4;
+draw (0,3/4h)..z3; draw z1..(w,3/4h);
+draw z5{dir -45}..{dir -75}z2;
+rt z6 = (5/8w,13/20h); z7 = (1/7w,8/21h);
+pickup pencircle scaled 0.5pt;
+draw z6{z7-z6 rotated -8}..z7;
+z4 + (0,0.2pt) = z4l + (0.15pt,0) = z4r - (0.15pt,0);
+z7 = z7r + (0.2pt,-0.2pt) = z7l - (0.1pt,-0.27pt);
+penstroke z7e{right}.. tension 1.5 .. z4e;
+endchar;
+
+beginchar("Q",0.90stwd#,stht#,stdp#); "The letter ina";
+numeric wd; wd = 17/24w;
+z1 = (9/20wd,2/5h); z2 = (19/25wd,3/4h); z3 = (6/7wd,2/3h);
+z4 = (6/7wd,0); z5 = (1/2wd,1/6h);
+z6 = (1/5wd,1/5h); z7 = (1/8wd,3/8h); z8 = (1/6wd,1/2h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir 135}..tension 1.2..{right}z2{right}..z3{down}..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw (z4+(0,0.2pt)){up}...{left}z5{left}..z6..{up}z7{up}..z8;
+fill fullcircle scaled 1.4pt shifted (z1 + (0.47pt,0.38pt));
+z9 = 9/20[z3,z4] + (0,0.4pt); z13 = 11/20[z3,z4] + (0,0.4pt); z10 = (8/9w,13/24h) + (0,0.4pt);
+z11 = (5/6w,1/3h) + (0,0.4pt); z12 = (8/9w,3/24h) + (0,0.4pt);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated 60;
+draw z9{dir 75}..z10..z11;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -60;
+draw z13{dir -75}..z12..z11;
+fill fullcircle scaled 1.1pt shifted (z11 + (-0.1pt,0));
+endchar;
+
+beginchar("T",0.48stwd#,stht#,stdp#); "The letter Ta";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top lft z3 = (1/6w,3/4h); lft z4 = (1/6w,1/4h);
+z5 = (2/5w,1/16h); z6 = (5/6w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+z7 = (w-0.7pt,3/4h); z8 = (1/2w,31/32h); z9 = (-1/8w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7{dir 60}..{left}z8{left}...z9{dir 75};
+endchar;
+
+beginchar("Z",0.5stwd#,stht#,stdp#); "The letter Tha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (4/7w,3/4h); z4 = (1/6w,9/40h); z5 = (7/16w,1/16h);
+z6 = (5/6w,3/8h); z7 = (1/3w,9/8h); z8 = (2/5w,19/16h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3{dir -75}..{dir -150}z4{down}..{right}z5{right}..{up}z6{up}
+ ..{dir 120}z3..{up}z7{up}..{dir 45}z8;
+endchar;
+
+beginchar("D",0.60stwd#,stht#,stdp#); "The letter Da";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (1/2w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+endchar;
+
+beginchar("X",0.48stwd#,stht#,stdp#); "The letter Dha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top lft z3 = (1/6w,3/4h); lft z4 = (1/6w,1/4h);
+z5 = (2/5w,1/16h); z6 = (5/6w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+endchar;
+
+beginchar("N",0.52stwd#,stht#,stdp#); "The letter murdhanya Na";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+rt z4 = 1/4[z1,z2]; z5 = (7/16w,3/4h); rt z6 = (1/6w,9/16h); z7 = (3/8w,27/64h);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -30;
+draw z4{dir 130}..{left}z5{left}..{down}z6{down}...{dir 20}z7;
+fill fullcircle scaled 1.1pt shifted (z7+(0.08pt,0.37pt));
+endchar;
+
+beginchar("t",0.60stwd#,stht#,stdp#); "The letter ta";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (1/2w,5/9h); lft z4 = (6/7w,7/20h);
+z5 = (3/5w,1/12h); rt z6 = (1/10w,13/20h); z7 = (1/5w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 28}..{down}z4{down}..{left}z5{left}..z7..z6;
+fill fullcircle scaled 1.5pt shifted (z3 + (0.24pt,-0.44pt));
+endchar;
+
+beginchar("z",0.58stwd#,stht#,stdp#); "The letter tha";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+z4 = (1/7w,5/8h); z5 = (3/8w,3/4h);
+z6 = (3/5w,5/8h); z7 = (1/5w,3/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4{dir 90}...{right}z5{right}..{down}z6{down}..{dir -160}z7;
+z2l + (0.1pt,-0.4pt) = z2r - (0.1pt,0.4pt) = z2;
+z7r + (0.1pt,-0.24pt) = z7l - (0.1pt,-0.24pt) = z7;
+penstroke z7e{right}..tension1.2..{dir -75}z2e;
+fill fullcircle scaled 1pt shifted (z4 + (0.33pt,0pt));
+endchar;
+
+beginchar("d",0.47stwd#,stht#,stdp#); "The letter da";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (1/6w,3/4h); z4 = (1/6w,3/10h); draw z3..z4;
+z5 = (6/7w,4/7h); z4' = 1/2[z4,z5] + (0,0.25pt);
+pickup pencircle xscaled 0pt yscaled 0.5pt rotated 45;
+draw z4{z4'-z4}..z4'..{z5-z4'}z5;
+z6 = z6l + (0.17pt,0) = z6r - (0.17pt,0) = (3/4w,0);
+z5l + (0.2pt,-0.2pt) = z5r - (0.2pt,-0.2pt) = z5;
+penstroke z5e{dir -120}..{dir -75}z6e;
+endchar;
+
+beginchar("x",0.52stwd#,stht#,stdp#); "The letter dha";
+pickup pencircle scaled penth#;
+z1 = (w-0.9pt,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+z8 = 9/20[z5,z6] + (0,0.2pt); z9 = (1/4w,27/40h); bot z10 = (11/30w,3/4h);
+pickup pencircle scaled 0.3pt;
+draw z8{left}..{up}z9{up}..{right}z10;
+fill fullcircle scaled 1.0pt shifted (z10 + (0.1pt,-0.33pt));
+endchar;
+
+beginchar("n",0.52stwd#,stht#,stdp#); "The letter na";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0);
+draw z1..z2; draw z3..z4;
+z5 = (1/4w,5/12h); bot z6 = z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z5{dir 20}..{down}z6;
+fill fullcircle scaled 1.5pt shifted (z5 - (-0.14pt,0.485pt));
+endchar;
+
+beginchar("p",0.60stwd#,stht#,stdp#); "The letter pa";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+rt z4 = (5/6w,5/9h); top z5 = (8/19w,3/4h); rt z6 = (1/8w,17/28h);
+z7 = (2/7w,3/8h); z8 = (17/24w,5/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4--z8{z8-z4}..{left}z5{left}..{dir -140}z6{dir 30}..{dir -140}z7;
+pickup pencircle xscaled 0pt yscaled 0.6pt rotated 50;
+draw z7--z8;
+endchar;
+
+beginchar("f",0.67stwd#,stht#,stdp#); "The letter pha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (13/20w,3/5h); z4 = (13/20w,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (2/5w,43/80h); z7 = (1/6w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 1.5 ..{dir -75}z4e;
+lft z8 = (7/8w,4/9h); z9 = (5/6w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{right}..{down}z8{down}..z9;
+fill fullcircle scaled 1.2pt shifted (z9 + (-0.18pt,0.30pt));
+endchar;
+
+beginchar("b",0.52stwd#,stht#,stdp#); "The letter ba";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+endchar;
+
+beginchar("v",0.63stwd#,stht#,stdp#); "The letter bha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (2/5w,3/7h); z4 = (4/5w,1/2h); lft z5 = (7/8w,5/16h);
+z6 = (17/30w,1/12h); rt z7 = (1/10w,13/20h); z8 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 15;
+draw z3{dir -29}..{dir 60}z4{dir -50}..{down}z5{down}..{left}z6{left}..z8..z7;
+fill fullcircle scaled 1.65pt shifted (z3 + (0.36pt,0.48pt));
+endchar;
+
+beginchar("m",0.55stwd#,stht#,stdp#); "The letter ma";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0);
+draw z1..z2; draw z3..z4;
+z5 = (1/6w,3/4h-0.04pt); z6 = (7/16w,1/4h);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z5{dir -135}..z6{dir -142};
+z4l + (0.1pt,0) = z4r - (0.1pt,0) = z4;
+z6l + (0,0.23pt) = z6r - (0,0.23pt) = z6 + (0,0.27pt);
+penstroke z6e{right}..{down}z4e;
+fill fullcircle scaled 1.5pt shifted (z6 - (0.21pt,-0.03pt));
+endchar;
+
+beginchar("Y",0.55stwd#,stht#,stdp#); "The letter antashthya ja";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (1/2w,43/80h); z7 = (1/6w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 1.5 ..{dir -75}z4e;
+endchar;
+
+beginchar("r",0.52stwd#,stht#,stdp#); "The letter ra";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+fill fullcircle scaled 0.9pt shifted (9/20w,2/21h);
+endchar;
+
+beginchar("l",0.62stwd#,stht#,stdp#); "The letter la";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0);
+draw z1..z2; draw z3..z4;
+z5 = (5/6w,9/20h); z6 = (16/24w,5/9h); z7 = (9/16w,2/5h);
+z8 = (1/3w,5/9h); z9 = (1/8w,13/32h); z10 = (3/8w,4/15h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z5{dir 135}..{left}z6{left}..{dir -75}z7{dir 105}..{left}z8{left}
+ ..{down}z9{down}..{dir 14.5}z10;
+fill fullcircle scaled 1.2pt shifted (z10 + (-0.09pt,0.32pt));
+endchar;
+
+beginchar("S",0.56stwd#,stht#,stdp#); "The letter talabya sha";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+z4 = (0,3/4h); z5 = (5/16w,19/32h);
+top z6 = (14/25w,3/4h); z7 = 2/7[z1,z2];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z4{right}..{dir -60}z5{dir 60}..{right}z6{right}..{z7-z6}z7;
+fill fullcircle xscaled 1.4pt yscaled 2.5pt rotated -45 shifted (z5 + (-0.50pt,-0.62pt));
+fill fullcircle xscaled 1.4pt yscaled 2.5pt rotated 45 shifted (z5 + (0.50pt,-0.62pt));
+endchar;
+
+beginchar("F",0.55stwd#,stht#,stdp#); "The letter murdhanya sa";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (1/2w,43/80h); z7 = (1/6w,1/3h); rt z8 = (5/6w,8/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7; draw (z6+(0,0.1pt))--z8;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 2.5 ..{dir -75}z4e;
+endchar;
+
+beginchar("s",0.60stwd#,stht#,stdp#); "The letter danto sa";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0);
+draw z1..z2; draw z3..z4;
+top z5 = (1/9w,3/4h); rt z10 = (w-0.9pt,5/13h); z7 = (1/6w,1/3h); z8 = (1/4w,3/11h);
+z9 - z10 = 3/2(z7 - z8); rt z6 = 5/8[z8,z9];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z5{right}..{down}z6;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z7..z8..z9...{dir -45}z10;
+endchar;
+
+beginchar("h",0.5stwd#,stht#,stdp#); "The letter ha";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (3/10w,3/4h); z4 = (1/3w,3/5h); z5 = (5/6w,1/2h);
+lft z6 = (1/8w,5/16h); z7 = (w,-1/3d);
+z6l + (0.15pt,-0.3pt) = z6r - (0.15pt,-0.3pt) = z6;
+z7l - (0,0.15pt) = z7r + (0,0.15pt) = z7;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+penstroke z6e{dir -30}..{dir -45}z7e;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+endchar;
+
+beginchar("R",0.60stwd#,stht#,stdp#); "The letter Da-e bindu ra";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (1/2w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+fill fullcircle scaled 1.2pt shifted (23/40w,-2/5d);
+endchar;
+
+beginchar("V",0.48stwd#,stht#,stdp#); "The letter Dha-e bindu ra";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+top lft z3 = (1/6w,3/4h); lft z4 = (1/6w,1/4h);
+z5 = (2/5w,1/16h); z6 = (5/6w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+fill fullcircle scaled 1.2pt shifted (3/8w,-2/5d);
+endchar;
+
+beginchar("y",0.55stwd#,stht#,stdp#); "The letter antashthya ya";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (1/2w,43/80h); z7 = (1/6w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 1.5 ..{dir -75}z4e;
+fill fullcircle scaled 1.2pt shifted (11/25w,1/20h);
+endchar;
+
+beginchar("B",0.52stwd#,stht#,stdp#); "The letter khanda-ta";
+z1 = (17/60w,28/40h); z2 = (1/2w,4/7h); z3 = (2/3w,52/80h);
+z4 = (1/2w,3/4h); z5 = (1/7w,21/40h); z6 = (9/10w,0);
+pickup pencircle xscaled 0.5pt yscaled 0.3pt rotated 60;
+%pickup pencircle scaled 0.4pt;
+draw z1..{right}z2{right}..{up}z3{up}..{left}z4{left} ..z1..
+{down}z5{down}..{down}z6;
+endchar;
+
+beginchar("M",0.32stwd#,stht#,stdp#); "The letter anuswar";
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+z1 = (1/2w,3/4h); z2 = (1/2w,3/4h-11/20w); draw z1..z2..cycle;
+z3 = z3l - (0,0.30pt) = z3r + (0,0.30pt) = (1/5w,17/40h);
+z4 = z4l - (0,0.20pt) = z4r + (0,0.20pt) = (w,0);
+penstroke z3e{dir -45}...{dir -75}z4e;
+endchar;
+
+beginchar("H",0.27stwd#,stht#,stdp#); "The letter bisarga";
+z1 = (1/2w,3/4h); z4 = (1/2w,1/10h); z2 = (1/2w,3/4h-2/3w); z3 = (1/2w,1/10h+2/3w);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z1..z2..cycle; draw z3..z4..cycle;
+endchar;
+
+beginchar("w",0stwd#,stht#,stdp#); "chandrabindu";
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+z1 = (w-2.6pt,h); z2 = (w-1pt,3/4h+0.4pt); z3 = (w+0.6pt,h);
+draw z1..{right}z2{right}..z3;
+fill fullcircle scaled 1.1pt shifted (-1pt,h);
+endchar;
+
+%%% End of bnbanjon.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bndigit.mf b/Master/texmf-dist/fonts/source/public/bengali/bndigit.mf
new file mode 100644
index 00000000000..a77a226f27c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bndigit.mf
@@ -0,0 +1,86 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bndigit.mf: METAFONT file that defines the Bengali digits
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("0",0.48stwd#,stht#,stdp#); "The number 0";
+z1 = (1/2w,7/16h+19/50w); z2 = (1/2w,7/16h-19/50w);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1..z2..cycle;
+endchar;
+
+beginchar("1",0.52stwd#,stht#,stdp#); "The number 1";
+z1 = (1/5w,3/4h); z2 = (3/4w,3/8h); z3 = (5/6w,1/4h); z4 = (7/12w,1/15h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir -135}..z2..{down}z3{down}..{dir -160}z4;
+fill fullcircle xscaled 2.0pt yscaled 1.3pt rotated 20 shifted (z4 + (-0.12pt,0.35pt));
+endchar;
+
+beginchar("2",0.52stwd#,stht#,stdp#); "The number 2";
+z1 = (1/4w,3/4h); z2 = (5/9w,11/24h); z3 = (3/4w,21/41h);
+z4 = (1/5w,1/3h); z5 = (9/10w,-d/5);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt;
+draw z1{dir -135}..tension 2..{dir -45}z3{dir -45}..{dir 150}z4;
+z4l + (0.1pt,-0.35pt) = z4r - (0.1pt,-0.35pt) = z4 - (0.30pt,-0.04pt);
+z5l - (0.15pt,0) = z5r + (0.15pt,0) = z5;
+penstroke z4e{dir -30}..{dir -45}z5e;
+endchar;
+
+beginchar("3",0.60stwd#,stht#,stdp#); "The number 3";
+z3 = (1/2w,5/9h); lft z4 = (6/7w,7/20h);
+z5 = (3/5w,1/12h); rt z6 = (1/10w,13/20h); z7 = (1/5w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 28}..{down}z4{down}..{left}z5{left}..z7..z6;
+fill fullcircle scaled 1.5pt shifted (z3 + (0.24pt,-0.44pt));
+endchar;
+
+beginchar("4",0.54stwd#,stht#,stdp#); "The number 4";
+z1 = (1/2w,3/4h); z2 = (1/6w,9/16h); z3 = (1/2w,3/8h);
+z4 = (5/6w,3/16h); z5 = (1/2w,0); z6 = (1/6w,3/16h); z7 = (5/6w,9/16h);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated 45;
+draw z1..z2..z3..z4..z5..z6..z3..z7..cycle;
+endchar;
+
+beginchar("5",0.54stwd#,stht#,stdp#); "The number 5";
+z1 = (1/2w,3/4h); z2 = (1/5w,1/9h); z3 = (3/4w,0); z4 = (9/10w,11/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir -145}..{dir -50}z2{dir -50}..{right}z3{dir 150}..
+{dir 30}z4{left}..{up}z1;
+endchar;
+
+beginchar("6",0.59stwd#,stht#,stdp#); "The number 6";
+top z3 = (7/20w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir -10}..tension 1.2..{dir -70}z4{dir -60}..{dir -60}z5{dir 30}..{dir 60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+endchar;
+
+beginchar("7",0.48stwd#,stht#,stdp#); "The number 7";
+z1 = (3/4w,10/21h); z2 = (1/6w,1/2h); z3 = (1/2w,3/4h); z4 = (8/9w,0);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{left}..tension 1.4..{dir 135}z2{dir 135}..tension 1.4..
+{right}z3{right}..z1..tension 2.2..{dir -15}z4;
+endchar;
+
+beginchar("8",0.55stwd#,stht#,stdp#); "The number 8";
+z1 = (1/10w,3/4h); z2 = (1/6w,3/7h); z3 = (1/6w,1/6h);
+z4 = (1/4w,1/16h); z5 = (13/20w,17/42h); z6 = (9/10w,1/2h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z1{right}..tension 2.2..{down}z2--z3{down}..z4{right}..
+{up}z5{dir 135}..tension 2..{dir -135}z2;
+pickup pencircle xscaled 0 yscaled 0.5pt rotated 30;
+draw z5{dir 75}..{dir 75}z6;
+endchar;
+
+beginchar("9",0.55stwd#,stht#,stdp#); "The number 9";
+z1 = (1/6w,3/4h); z2 = (7/8w,1/5h); z3 = (2/3w,0);
+z4 = (23/60w,1/4h); z5 = (1/6w,1/10h);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated 45;
+draw z1{down}..{down}z2{down}..{dir -165}z3{up}..{left}z4{left}..{dir -75}z5;
+fill fullcircle scaled 1.2pt shifted (z5 + (0.39pt,-0.1pt));
+endchar;
+
+%%% End of bndigit.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnjuk.mf b/Master/texmf-dist/fonts/source/public/bengali/bnjuk.mf
new file mode 100644
index 00000000000..365448cac8d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnjuk.mf
@@ -0,0 +1,980 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnjuk.mf: METAFONT file that defines the Bengali conjunct consonants
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input bnmacro;
+
+newchar(128,0.70,"k + k");
+matra(w,h);
+ka_(1/7w,1/3h,6/7w-0.9pt,(3/4-1/3)*h,3/10);
+ka(4/17w,0,(6/7-4/17)*w-0.25pt,11/20h,3/10);
+endchar;
+
+newchar(129,0.55,"k + T");
+matra(w,h); tiki(w,h,0);
+ka(1/7w,11/40h,13/20w,(3/4-11/40)*h,3/8);
+_Dha(3/10w,0,7/10w-0.9pt,3/10h);
+endchar;
+
+newchar(130,0.75,"k + t");
+matra(w,h);
+tta(1/11w,0,(16/25-1/11)*w,3/4h-0.8pt);
+shnur(15/25w,3/8h,10/25w-0.4pt,11/60h);
+endchar;
+
+newchar(131,0.70,"k + b");
+matra(w,h);
+ka_(1/7w,1/3h,6/7w-0.9pt,(3/4-1/3)*h,1/10);
+ba(4/17w,0,(5/7-4/17)*w-0.6pt,11/20h);
+endchar;
+
+newchar(132,0.68,"k + m");
+matra(w,h);
+ka(1/10w,3/10h,15/26w,(3/4 - 3/10)*h,3/10);
+ma(29/50w,0,21/50w-0.9pt,1/3h,1.2,-0.5pt);
+endchar;
+
+newchar(133,0.84,"k + r");
+matra(w,h);
+tra(1/11w,0,(16/25-1/11)*w,2/3h);
+shnur(16/25w,3/8h,9/25w-0.4pt,11/60h);
+endchar;
+
+newchar(134,0.65,"k + l");
+matra(w,h);
+ka(1/4w,3/10h,3/4w-0.9pt,(3/4-3/10)*h,3/10);
+la(1/10w,0,(3/4-1/10)*w-0.6pt,3/10h,0);
+endchar;
+
+newchar(135,0.82,"k + s");
+matra(w,h);
+khiyo(1/10w,0,9/10w-0.9pt,3/4h);
+endchar;
+
+newchar(136,0.75,"k + s + n");
+matra(w,h);
+khiyo(1/9w,1/16h,8/9w-0.9pt,(3/4-1/16)*h);
+na(1/4w,-11/30d,5/12w-0.32pt,11/32h,0);
+endchar;
+
+newchar(137,0.85,"k + s + m");
+matra(w,h);
+khiyo(1/10w,1/16h,17/24w,(3/4-1/16)*h);
+ma(575/1000w,-3/4d,425/1000w-0.9pt,39/100h,1.35,0);
+endchar;
+
+newchar(138,0.67,"k + ss");
+matra(w,h); rtbar(w,h);
+ka(1/8w,3/11h,11/20w,(3/4-3/11)*h,3/8);
+_ds(1/5w,0,4/5w-0.9pt,3/5h);
+endchar;
+
+newchar(139,0.65,"g + dh");
+pickup dflt_pen;
+draw ((1/6+9/16)*w-0.18pt,3/4h)..(w,3/4h);
+ga(1/6w,3/8h,9/16w-0.18pt,3/8h,0);
+dha(3/8w,0,5/8w-0.9pt,3/7h);
+endchar;
+
+newchar(140,0.56,"g + n");
+pickup dflt_pen;
+draw (w-0.9pt,3/4h)..(w,3/4h);
+ga(1/6w,3/8h,5/6w-0.9pt,3/8h,0);
+na(1/4w,0,3/4w-0.9pt,3/8h,1/9);
+endchar;
+
+newchar(141,0.56,"g + b");
+pickup dflt_pen;
+draw (w-0.9pt,3/4h)..(w,3/4h);
+ga(1/6w,3/8h,5/6w-0.9pt,3/8h,0);
+ba(4/9w,0,5/9w-0.9pt,3/7h);
+endchar;
+
+newchar(142,0.70,"g + m");
+pickup dflt_pen;
+draw (2/3w,3/4h)..(w,3/4h);
+ga(1/9w,3/8h,5/9w,3/8h,0);
+ma(2/3w,0,1/3w-0.9pt,3/10h,1.4,(3/8-3/10)*h);
+endchar;
+
+newchar(143,0.59,"g + l");
+pickup dflt_pen;
+draw (w-0.9pt,3/4h)..(w,3/4h);
+ga(1/5w,3/8h,4/5w-0.9pt,3/8h,0);
+la(1/7w,0,6/7w-0.9pt,7/20h,1/9);
+endchar;
+
+newchar(144,0.52,"gh + n");
+matra(w,h);
+gha(1/6w,3/20h,5/6w-0.9pt,(3/4-3/20)*h);
+na(1/3w,-1/4d,2/3w-0.9pt,3/8h,0);
+endchar;
+
+newchar(145,0.60,"una + k");
+matra(w,h);
+na(1/7w,2/5h,31/61w,(3/4-3/7)*h,-1);
+ka(1/5w,0,4/5w-0.9pt,31/60h,3/10);
+z1 = (11/20w,3/4h); z3 = (19/20w,3/4h); z2 = 3/5[z1,z3] - (0,1/7h);
+pickup dflt_pen; draw z1{dir -45}..z2..z3;
+endchar;
+
+newchar(146,1.22,"una + k + s");
+una(1/14w,1/8h,(5/12-1/12)*w,(3/4-1/8)*h);
+khiyo(5/12w,0,7/12w-0.9pt,3/4h);
+pickup dflt_pen; draw (4/11w,3/4h)..(w,3/4h);
+endchar;
+
+newchar(147,0.80,"una + kh");
+una(1/9w,1/5h,(1/2-1/60)*w,(3/4-1/5)*h);
+rtbar(w,21/20h); matra(1/7w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+z1 = (29/50w,21/40h); z2 = (7/10w,18/50h); z3 = (29/50w,1/5h); z4 = (w-0.9pt,0);
+draw z1{dir -45}..{down}z2{down}..{dir -135}z3{dir -15}..z4;
+endchar;
+
+newchar(148,0.58,"una + g");
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (1/10w,3/4h); z4 = (1/6w,3/5h); z5 = (1/8w,17/80h);
+z6 = (1/5w,1/5h); z7 = 1/3[z6,z8];
+z8 = (8/9w,11/19h); z9 = (5/6w,0);
+pickup pencircle xscaled 0.2pt yscaled 0.6pt rotated 45;
+draw z4{dir 30}..z7..tension 2..z6..z5;
+draw z7..{dir 35}z8{dir -120}..{dir -75}z9;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+fill fullcircle scaled 1.2pt shifted (z4 + (0.19pt,-0.25pt));
+z1' = (9/20w,3/4h); z3' = (17/20w,3/4h); z2' = 3/5[z1',z3'] - (0,1/7h);
+pickup dflt_pen; draw z1'{dir -45}..z2'..z3';
+endchar;
+
+newchar(149,0.90,"una + gh");
+una(1/12w,1/8h,(1/2-1/18)*w,(3/4-1/8)*h);
+gha(1/2w,0,1/2w-0.9pt,3/4h);
+pickup dflt_pen; draw (9/19w,3/4h)..(w,3/4h);
+endchar;
+
+newchar(150,0.65,"una + m");
+una(1/9w,1/5h,(2/3-1/15)*w,(3/4-1/5)*h);
+ma(3/5w,0,2/5w-0.9pt,31/120h,1.8,-0.5pt);
+pickup dflt_pen; draw (19/30w,3/4h)..(w,3/4h);
+endchar;
+
+newchar(151,0.75,"ch + ch");
+matra(w,h);
+cha(1/8w,1/5h,(17/40-1/8)*w,(3/4-1/5)*h);
+cha(19/40w,0,21/40w-0.9pt,3/4h);
+endchar;
+
+newchar(152,0.75,"ch + chh");
+matra(w,h);
+cha(1/8w,1/5h,(17/40-1/8)*w,(3/4-1/5)*h);
+chha(19/40w,0,21/40w-0.9pt,3/4h);
+endchar;
+
+newchar(153,0.73,"ch + chh + b");
+matra(w,h);
+cha(1/8w,1/4h,(17/40-1/8)*w,(3/4-1/4)*h);
+chha(19/40w,1/15h,21/40w-0.9pt,(3/4-1/15)*h);
+ba(5/9w,-17/40d,1/4w,1/4h);
+endchar;
+
+newchar(154,0.65,"ch + ina");
+matra(w,h);
+cha(1/5w,3/9h,3/10w,(3/4-3/9)*h);
+ina(1/8w,0,7/8w-0.9pt,3/7h);
+endchar;
+
+newchar(155,0.95,"j + j");
+matra(w,h);
+ja(1/12w,11/50h,2/5w,(3/4-11/50)*h);
+ja(21/50w,0,23/50w,31/50h);
+jaleg(31/50w,0,19/50w-0.8pt,31/50h);
+top z1 = (12/50w,3/4h); z2 = (62/100w,31/50h);
+pickup pencircle xscaled 0.25pt yscaled 0.5pt;
+draw z1{dir -60}..{dir 15}z2;
+endchar;
+
+newchar(156,0.95,"j + j + b");
+matra(w,h);
+ja(1/12w,11/50h,2/5w,(3/4-11/50)*h);
+ja(21/50w,0,23/50w,31/50h);
+jaleg(31/50w,-1/30d,19/50w-0.6pt,1/30d + 31/50h);
+top z1 = (12/50w,3/4h); z2 = (62/100w,31/50h);
+pickup pencircle xscaled 0.25pt yscaled 0.5pt;
+draw z1{dir -60}..{dir 15}z2;
+z3 = (w-1.15pt,1/8h); z4 = (27/40w,-1/30h); z5 = (w-0.95pt,-3/5d);
+pickup dflt_pen;
+draw z3{z4-z3 rotated -3}..z4;
+draw z4{z5-z4 rotated -5}..{z5-z4 rotated 5}z5--z3;
+endchar;
+
+newchar(157,1.20,"j + jha");
+matra(79/100w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+ja(1/12w,0,(1/2-1/12)*w,3/4h);
+jaleg(13/50w,0,(1/2-1/4)*w,3/4h);
+jha(1/2w,0,1/2w-0.9pt,3/4h,1.05);
+endchar;
+
+newchar(158,0.75,"j + ina");
+matra(w,h);
+ja(1/10w,0,11/16w,3/4h);
+hump(59/100w,9/38h,2/5w-0.9pt,1/3h);
+top z1 = (2/5w,3/4h); z2 = (23/40w,4/9h);
+pickup dflt_pen; draw z1..z2;
+endchar;
+
+newchar(159,0.72,"j + b");
+matra(w,h);
+ja(1/10w,0,11/16w,3/4h);
+jaleg(2/5w,-3/8d,3/5w-0.7pt,3/8d + 3/4h);
+z1 = (w-1.5pt,1/5h); z2 = (1/2w,1/30h); z3 = (w-1.15pt,-1/2d);
+pickup dflt_pen; draw z1{z2-z1 rotated -4}..z2; draw z2{z3-z2 rotated -6}..z3;
+endchar;
+
+beginchar(160,0.80stwd#,stht#,stdp#); "ina + ch";
+numeric wd; wd = 11/20w+0.9pt;
+z1 = (wd-0.9pt,3/4h+0.3pt); z2 = (wd-0.9pt,0);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+z4 = (1/7wd,5/8h); z5 = (3/8wd,3/4h);
+z6 = (3/5wd,5/8h); z7 = (1/5wd,3/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4{dir 90}...{right}z5{right}..{down}z6{down}..{dir -160}z7;
+z2l + (0.1pt,-0.4pt) = z2r - (0.1pt,0.4pt) = z2;
+z7r + (0.1pt,-0.24pt) = z7l - (0.1pt,-0.24pt) = z7;
+penstroke z7e{right}..tension1.2..{dir -75}z2e;
+fill fullcircle scaled 1pt shifted (z4 + (0.33pt,0pt));
+hump(11/20w,1/4h,9/20w-1.1pt,9/20h);
+endchar;
+
+newchar(161,0.60,"ina + chh");
+z1 = (1/8w,13/20h); bot z2 = (3/10w,3/4h); z3 = (9/20w,13/20h);
+z4 = (1/8w,7/20h); z5 = (11/20w,8/20h); z5' = (26/40w,14/40h);
+z6 = (1/8w,1/8h); z7 = (w-0.5pt,-2/3d);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{up}..{right}z2{right}..{down}z3{down}..{down}z4{down}..{dir 60}z5
+ {dir -20}..z5'..{left}z6{right}..tension 1.5..z7;
+hump(9/20w,1/2h,11/20w-0.9pt,(3/4-1/2)*h);
+fill fullcircle scaled 1.1pt shifted (z1 + (0.34pt,0.06pt));
+endchar;
+
+newchar(162,0.69,"ina + j");
+ja(1/10w,0,13/17w,3/5h);
+hump(9/20w,1/2h,11/20w-0.9pt,(3/4-1/2)*h);
+z1 = (1/7w,12/19h); z2 = (1/3w,3/4h); z3 = (1/3w+0.48pt,3/5h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z1{up}..{right}z2{right}..{dir -135}z3;
+z4 = (5/6w,9/20h); z5 = (4/5w,0);
+pickup dflt_pen;
+draw z4{dir -120}..tension 1.8..z5;
+fill fullcircle scaled 1.1pt shifted (z1 + (0.45pt,-0.18pt));
+endchar;
+
+newchar(163,0.62,"ina + jh");
+ina(1/8w,3/8h,73/100w,3/8h);
+jha(1/5w,0,53/100w,3/7h,5/6);
+endchar;
+
+newchar(164,0.57,"T + T");
+matra(w,h);
+Dha(1/4w,1/15h,3/4w-0.9pt,(3/4-1/15)*h);
+tiki(w,h,0);
+z1 = (7/10w,1/5h); z2 = (1/2w,-1/3d); z3 = (1/8w,1/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z1{dir -30}..{left}z2{left}..{dir 125}z3;
+endchar;
+
+newchar(165,0.50,"T + b");
+matra(w,h);
+Dha(1/6w,1/10h,5/6w-0.9pt,(3/4-1/10)*h);
+tiki(w,h,-1/12);
+ba(6/13w,-1/2d,1/2w-0.9pt,3/10h);
+endchar;
+
+newchar(166,0.90,"D + D");
+matra(w,h);
+Da(1/11w,1/4h,(2/5-1/12)*w,(3/4-1/4)*h);
+Da(21/50w,0,29/50w-0.9pt,3/4h);
+endchar;
+
+newchar(167,0.78,"N + T");
+pickup dflt_pen; draw ((6/13+1/35)*w,3/4h)..(w,3/4h);
+mna(1/11w,3/8h,(6/13-1/16)*w,3/8h,0);
+Dha(6/13w,0,7/13w-0.9pt,3/4h); tiki(w,h,1/4);
+endchar;
+
+newchar(168,0.61,"N + Th");
+mna(1/7w,39/80h,41/100w,(3/4-35/80)*h,-1);
+Tha(1/4w,0,3/4w-0.9pt,3/4h);
+endchar;
+
+beginchar(169,0.63stwd#,stht#,stdp#); "N + D";
+z1 = (1/5w,61/100h); z1' = (39/100w,3/4h);
+z2' = (60/100w,3/5h); z2 = (74/100w,76/100h);
+z4 = (18/25w,8/20h); z5 = (7/8w,12/50h);
+z6 = (23/40w,1/18h); z8 = (1/10w,13/20h); z7 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir 100}..{right}z1'{right}..{dir -60}z2'{dir 60}..
+ {dir 45}z2{dir -35}..{dir -135}z4
+ {dir -30}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+fill fullcircle scaled 1.2pt shifted (z1 + (0.40pt,0.2pt));
+endchar;
+
+newchar(170,0.52,"N + N");
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+mna(1/6w,3/8h,5/6w-0.9pt,3/8h,1/9);
+mna(1/6w,0,5/6w-0.9pt,3/8h,0);
+endchar;
+
+newchar(171,0.65,"N + m");
+pickup dflt_pen; draw (5/8w,3/4h)..(w,3/4h);
+mna(1/8w,3/8h,1/2w,3/8h,1/9);
+ma(5/8w,0,3/8w-0.9pt,3/8h,1,0);
+endchar;
+
+newchar(172,0.57,"t + t");
+matra(w,h);
+tta(1/7w,0,6/7w-0.9pt,3/4h-0.8pt);
+endchar;
+
+newchar(173,0.55,"t + t + b");
+matra(w,h);
+tta(1/7w,1/9h,6/7w-0.9pt,(3/4-1/9)*h-0.7pt);
+ba(5/11w,-1/3d,1/3w,3/10h);
+endchar;
+
+beginchar(174,0.62stwd#,stht#,stdp#); "t + th";
+z1 = (w-0.9pt,3/4h+0.3pt); z1' = (w-0.9pt,3/4h); z2 = (w-0.9pt,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+z4 = (1/7w,3/5h); z4' = (7/25w,3/4h);
+z5 = (9/20w,3/5h); z5' = (11/20w,3/4h);
+z6 = (13/20w,5/8h); z7 = (1/4w,3/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4{dir 100}...{right}z4'{right}..{dir -60}z5{dir 60}..
+ {dir 45}z5'{dir -50}..{down}z6{down}..{dir -160}z7;
+z2l + (0.1pt,-0.4pt) = z2r - (0.1pt,0.4pt) = z2;
+z7r + (0.1pt,-0.24pt) = z7l - (0.1pt,-0.24pt) = z7;
+penstroke z7e{right}..tension1.2..{dir -75}z2e;
+fill fullcircle scaled 1pt shifted (z4 + (0.33pt,0.2pt));
+endchar;
+
+newchar(175,0.58,"t + n");
+matra(w,h);
+ta_(1/10w,1/3h,9/10w-0.9pt,(3/4-1/3)*h);
+na(7/24w,0,17/24w-1.2pt,29/80h,0);
+endchar;
+
+newchar(176,0.60,"t + b");
+matra(w,h);
+ta_(1/10w,3/10h,9/10w-0.9pt,(3/4-3/10)*h);
+ba(4/9w,0,1/2w-0.9pt,3/8h);
+endchar;
+
+newchar(177,0.74,"t + m");
+matra(w,h);
+ta_(1/12w,1/3h,3/5w,(3/4 - 1/3)*h);
+ma(3/5w,0,2/5w-0.9pt,1/3h,1.2,-0.5pt);
+endchar;
+
+newchar(178,0.66,"t + r");
+matra(w,h);
+tra(1/8w,0,7/8w-0.9pt,2/3h);
+endchar;
+
+newchar(179,0.80,"t + r + u");
+matra(w,h);
+tra(1/10w,0,11/20w,2/3h);
+z1' = (13/20w,2/5h); z2' = (w-0.4pt,47/100h); z3' = (17/20w,3/5h);
+pickup pencircle scaled penth#;
+draw z1'{dir -60}..{up}z2'{up}..{left}z3';
+fill fullcircle scaled 1.3pt shifted (z3' + (-0.1pt,-0.46pt));
+endchar;
+
+newchar(180,0.87,"d + g");
+matra(21/50w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+da(1/10w,0,(19/50-1/10)*w,3/4h,0);
+ga(23/50w,3/9h,27/50w-0.9pt,(3/4-3/9)*h,0.8);
+endchar;
+
+newchar(181,0.84,"d + gh");
+matra(w,h);
+da(1/10w,0,(19/50-1/11)*w,3/4h,0);
+gha(23/50w,0,27/50w-0.9pt,3/4h);
+endchar;
+
+newchar(182,0.58,"d + d");
+matra(w,h)
+da(1/8w,11/40h,(9/20-1/8)*w,(3/4-11/40)*h,0);
+da(9/20w+0.1pt,0,1/2w-1.0pt,(3/4-1/40)*h,-33/50);
+endchar;
+
+newchar(183,0.62,"d + dh");
+matra(w,h);
+da_(1/7w,3/8h,(2/3-1/7)*w-0.07pt,3/8h);
+dha(1/4w,0,3/4w-0.9pt,1/2h);
+endchar;
+
+newchar(184,0.53,"d + b");
+matra(w,h);
+da_(1/6w,3/8h,5/6w-0.9pt,3/8h);
+ba(1/3w,0,2/3w-0.9pt,1/2h);
+endchar;
+
+newchar(185,0.62,"d + bh");
+matra(w,h);
+da(1/6w,7/25h,1/3w,(3/4-7/25)*h,0);
+bha(1/8w,0,7/8w-0.9pt,8/19h);
+endchar;
+
+newchar(186,0.62,"d + bh + r");
+matra(w,h);
+da(1/6w,7/25h,1/3w,(3/4-7/25)*h,0);
+bhra(1/8w,0,7/8w-0.9pt,8/19h);
+endchar;
+
+newchar(187,0.56,"d + m");
+matra(w,h)
+da(1/8w,1/7h,(23/40-1/8)*w,(3/4-1/7)*h,0);
+ma(23/40w-0.1pt,0,17/40w-0.8pt,1/4h,2.0,0);
+endchar;
+
+newchar(188,0.50,"dh + n");
+dha_(9/40w,3/14h,31/40w-0.9pt,(3/4-3/14)*h);
+na(1/6w,-1/4d,5/6w-0.9pt,3/8h,0);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+endchar;
+
+newchar(189,0.92,"dh + b");
+dha_(1/11w,0,(1/2-1/10)*w,3/4h);
+ba(1/2w,0,1/2w-0.9pt,3/4h);
+pickup dflt_pen; draw (1/2w,3/4h)..(w,3/4h);
+endchar;
+
+newchar(190,0.78,"n + T");
+matra(w,h);
+na(1/8w,3/10h,(6/13-19/180)*w,3/8h,1/9);
+Dha(6/13w,0,7/13w-0.9pt,3/4h); tiki(w,h,1/4);
+endchar;
+
+newchar(191,0.63,"n + D");
+matra(w,h);
+na(1/10w,7/18h,(2/5-1/14)*h,1/3h,1/12);
+Da(1/8w,0,7/8w-0.9pt,3/4h);
+endchar;
+
+newchar(192,0.62,"n + t");
+matra(w,h);
+na_(1/5w,11/25h,4/5w-0.7pt,(3/4-11/25)*h);
+ta(1/10w,0,11/12w-0.9pt,3/8h,0.4);
+endchar;
+
+newchar(193,0.60,"n + t + u");
+matra(w,h);
+na_(1/10w,12/25h,4/5w-0.7pt,(3/4-12/25)*h);
+tta(1/5w,-11/20d,4/5w-0.9pt,4/7h);
+endchar;
+
+newchar(194,0.60,"n + t + b");
+matra(w,h);
+na_(1/5w,12/25h,4/5w-0.7pt,(3/4-12/25)*h);
+ta(1/10w,1/8h,11/12w-0.9pt,3/10h,0.4);
+ba(17/30w,-2/5d,1/4w,1/4h);
+endchar;
+
+newchar(195,0.62,"n + t + r");
+matra(w,h);
+na_(1/5w,12/25h,4/5w-0.7pt,(3/4-12/25)*h);
+tra(1/7w,-1/4d,6/7w-0.9pt,21/40h);
+endchar;
+
+newchar(196,0.60,"n + th");
+matra(w,h);
+na_(1/10w,12/25h,4/5w-0.7pt,(3/4-12/25)*h);
+ha(3/10w,-1/3d,7/10w-0.3pt,5/8h);
+endchar;
+
+newchar(197,0.68,"n + d");
+matra(w,h);
+na(1/10w,3/10h,(1/2-1/10)*w,3/8h,0.2);
+da(1/2w,0,1/2w-0.9pt,3/4h,0);
+endchar;
+
+newchar(198,0.62,"n + dh");
+matra(w,h);
+na(1/6w,3/9h,9/16w-0.38pt,3/8h,0.1);
+dha(5/17w,0,12/17w-0.9pt,19/39h);
+endchar;
+
+newchar(199,0.52,"n + n");
+matra(w,h);
+na(1/6w,3/10h,5/6w-0.9pt,3/8h,1/9);
+na(1/6w,0,5/6w-0.9pt,3/8h,1/9);
+endchar;
+
+newchar(200,0.55,"n + b");
+matra(w,h);
+na(1/7w,7/24h,6/7w-0.9pt,3/8h,1/6);
+ba(4/9w,0,5/9w-0.9pt,3/7h);
+endchar;
+
+newchar(201,0.65,"n + m");
+matra(w,h);
+na(1/8w,7/20h,1/2w,3/8h,1/15);
+ma(5/8w,0,3/8w-0.9pt,7/20h,1.1,0);
+endchar;
+
+newchar(202,0.70,"n + ss");
+matra(w,h);
+na(1/8w,9/28h,7/20w,3/12h,-1);
+ds(1/5w,0,4/5w-0.9pt,3/4h);
+endchar;
+
+newchar(203,0.80,"p + T");
+pickup dflt_pen; draw ((8/17+1/35)*w,3/4h)..(w,3/4h);
+pa(1/11w,9/20h,(8/17-1/16)*w,1/4*h,-1/10);
+Dha(8/17w,0,9/17w-0.9pt,3/4h); tiki(w,h,1/4);
+endchar;
+
+newchar(204,0.65,"p + t");
+pickup dflt_pen; draw ((4/5 + 1/7)*w-0.9pt,3/4h)..(w,3/4h);
+pa(1/7w,3/7h,4/5w-0.9pt,(3/4-3/7)*h,0.28);
+ta(1/11w,0,9/10w-0.9pt,3/8h,0.4);
+endchar;
+
+newchar(205,0.60,"p + n");
+pa(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.3);
+na(1/3w,0,2/3w-0.9pt,3/8h,0.3);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+endchar;
+
+newchar(206,0.60,"p + p");
+pa(1/7w,3/7h,6/7w-0.9pt,(3/4-3/7)*h,0.3);
+pa(1/7w,0,6/7w-0.9pt,(3/4-3/7)*h,0.05);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+endchar;
+
+newchar(207,0.60,"p + l");
+pa(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.3);
+la(1/5w,0,4/5w-0.9pt,3/8h,0.3);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+endchar;
+
+newchar(208,0.70,"p + ss");
+matra(w,h);
+pa(1/8w,23/60h,33/100w,1/5h,-1.15);
+ds(1/5w,0,4/5w-0.9pt,3/4h);
+endchar;
+
+newchar(209,0.68,"ph + l");
+matra(w,h);
+pha_(9/40w,1/5h,31/40w-0.9pt,(3/4-1/5)*h);
+la(1/8w,-1/5d,5/9w-0.05pt,1/3h,1/3);
+endchar;
+
+beginchar(210,0.69stwd#,stht#,stdp#); "b + j";
+matra(w,h);
+top z3 = (8/20w,3/4h); z5 = (8/20w,9/24h);
+z6 = (21/36w,37/80h); z7 = (11/16w,3/10h); z8 = (1/2w,1/8h);
+rt z9 = (1/10w,4/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3--z5{right}..{dir30}z6
+ {dir -60}..{down}z7{down}..{left}z8{left}..{up}z9;
+rt z11 = z11l + (0.2pt,-0.2pt) = z11r - (0.2pt,-0.2pt) = (11/12w,3/5h);
+z12 = z12l + (0.15pt,0) = z12r - (0.15pt,0) = (8/9w,0);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z3{dir -90}..{dir 15}z11;
+penstroke z11e{dir -120}..{dir -75}z12e;
+ba(1/8w,3/8h,(2/5-1/8)*w,3/8h);
+endchar;
+
+newchar(211,0.65,"b + d");
+matra(w,h);
+ba(1/10w,3/10h,(19/40-1/10)*w,3/7h);
+da(19/40w,0,21/40w-0.9pt,3/4h,0);
+endchar;
+
+newchar(212,0.65,"b + dh");
+matra(w,h);
+ba_(1/8w,3/8h,9/16w-0.22pt,3/8*h);
+dha(4/17w,0,13/17w-0.9pt,4/7h);
+endchar;
+
+newchar(213,0.54,"b + b");
+matra(w,h);
+ba_(1/7w,3/8h,6/7w-0.9pt,3/8*h);
+ba(4/17w,0,13/17w-0.9pt,4/7h);
+endchar;
+
+newchar(214,0.54,"b + l");
+matra(w,h);
+ba(1/4w,5/18h,3/4w-0.9pt,(3/4 - 5/18)*h);
+la(1/7w,0,6/7w-0.9pt,7/20h,1/9);
+endchar;
+
+newchar(215,0.70,"bh + r");
+matra(w,h);
+bhra(1/8w,0,7/8w-0.9pt,2/3h);
+endchar;
+
+newchar(216,0.60,"bh + l");
+matra(w,h);
+bha(1/8w,1/3h,7/8w-0.9pt,3/8h);
+la(4/25w,-1/5d,4/5w-0.9pt,3/9h,1/3);
+endchar;
+
+newchar(217,0.56,"m + n");
+matra(w,h);
+ma_(1/7w,11/25h,6/7w-0.7pt,(3/4-11/25)*h);
+na(1/5w,0,4/5w-0.9pt,3/8h,0.3);
+endchar;
+
+newchar(218,1.00,"m + p");
+ma_(1/12w,1/2h,(3/7-1/10)*w,(3/4-13/25)*h);
+pa(4/9w,3/8h,5/9w-0.9pt,3/8h,1);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(37/100w,3/4h);
+endchar;
+
+newchar(219,0.95,"m + ph");
+matra(w,h);
+ma_(1/11w,12/25h,(2/5-1/30)*w,(3/4-12/25)*h);
+pha(3/7w,0,4/7w-0.9pt,14/25h,0.38);
+endchar;
+
+newchar(220,0.56,"m + b");
+matra(w,h);
+ma_(1/7w,11/25h,6/7w-0.65pt,(3/4-11/25)*h);
+ba(1/3w,0,2/3w-0.9pt,29/60h);
+endchar;
+
+newchar(221,0.64,"m + bh");
+matra(w,h);
+ma_(1/6w,11/25h,5/6w-1.2pt,(3/4-11/25)*h);
+bha(1/8w,0,7/8w-0.9pt,8/17h);
+endchar;
+
+newchar(222,0.62,"m + bh + r");
+matra(w,h);
+ma_(1/6w,11/24h,5/6w-1.2pt,(3/4-11/24)*h);
+bhra(1/8w,0,7/8w-0.9pt,19/40h);
+endchar;
+
+newchar(223,0.70,"m + m");
+matra(w,h);
+ma_(1/9w,11/25h,18/30w,(3/4-11/25)*h);
+ma(2/3w,0,1/3w-0.9pt,3/8h,1,1/15h);
+endchar;
+
+newchar(224,0.58,"m + l");
+matra(w,h);
+ma_(1/7w,11/25h,6/7w-0.7pt,(3/4-11/25)*h);
+la(1/6w,0,5/6w-0.9pt,3/8h,0.3);
+endchar;
+
+newchar(225,0.65,"l + k");
+matra(w,h);
+la(1/10w,3/10h,(3/4-1/10)*w-0.6pt,3/8h,0.2);
+ka(1/4w,0,3/4w-0.9pt,1/2h,3/10);
+endchar;
+
+newchar(226,0.60,"l + g");
+matra(w,h);
+la(1/8w,3/10h,7/8w-0.9pt,3/8h,1/9);
+ga(1/4w,0,3/4w-0.9pt,3/8h,0);
+endchar;
+
+newchar(227,0.60,"l + g + u");
+matra(w,h);
+la(1/8w,1/3h,7/8w-1.2pt,3/8h,1/10);
+gu(1/10w,-1/2d,19/20w,2/3h);
+endchar;
+
+newchar(228,0.80,"l + T");
+matra(w,h);
+la(1/11w,3/10h,(8/17-1/14)*w,3/8h,1/9);
+Dha(8/17w,0,9/17w-0.9pt,3/4h); tiki(w,h,1/4);
+endchar;
+
+newchar(229,0.72,"l + D");
+matra(w,h);
+la(1/10w,7/18h,(1/2-1/14)*h,1/3h,1/12);
+Da(1/4w,0,3/4w-0.9pt,3/4h);
+endchar;
+
+newchar(230,0.60,"l + p");
+matra(w,h);
+la(1/6w,9/26h,5/6w-0.9pt,3/8h,0);
+pa(1/7w,1/25h,6/7w-0.9pt,(3/4-7/17-1/25)*h,0.13);
+endchar;
+
+newchar(231,0.60,"l + b");
+matra(w,h);
+la(1/8w,1/4h,7/8w-0.9pt,3/8h,1/4);
+ba(4/9w,0,5/9w-0.9pt,3/7h);
+endchar;
+
+newchar(232,0.70,"l + m");
+matra(w,h);
+la(1/9w,3/10h,5/9w,3/8h,1/9);
+ma(2/3w,0,1/3w-0.9pt,3/10h,1.4,0);
+endchar;
+
+newchar(233,0.62,"l + l");
+matra(w,h);
+la(1/8w,3/10h,7/8w-0.9pt,3/8h,1/9);
+la(1/8w,0,7/8w-0.9pt,3/8h,1/9);
+endchar;
+
+newchar(234,0.85,"sh + ch");
+pickup dflt_pen; draw (11/20w,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/10w,3/4h);
+sha(1/10w,7/17h,(21/40 - 1/10)*w,(3/4-7/17)*h,0);
+cha(21/40w,0,19/40w-0.9pt,3/4h);
+endchar;
+
+newchar(235,0.88,"sh + chh");
+pickup dflt_pen; draw (11/20w,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/10w,3/4h);
+sha(1/10w,7/17h,(11/20 - 1/10)*w,(3/4-7/17)*h,0);
+chha(11/20w,0,9/20w-0.9pt,3/4h);
+endchar;
+
+newchar(236,0.60,"sh + n");
+sha(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.3);
+na(1/3w,0,2/3w-0.9pt,3/8h,0.3);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/7w,3/4h);
+endchar;
+
+newchar(237,0.72,"sh + m");
+pickup dflt_pen;
+draw (2/3w,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/9w,3/4h);
+sha(1/9w,7/17h,(2/3 - 1/9)*w,(3/4-7/17)*h,0.38);
+ma(2/3w,0,1/3w-0.9pt,3/10h,1.4,0);
+endchar;
+
+newchar(238,0.60,"sh + l");
+sha(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.3);
+la(1/5w,0,4/5w-0.9pt,3/8h,0.3);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/7w,3/4h);
+endchar;
+
+newchar(239,0.60,"sh + b");
+pickup dflt_pen;
+draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(1/7w,3/4h);
+sha(1/7w,7/17h,6/7w-0.9pt,(3/4-7/17)*h,0.5);
+ba(4/9w,0,5/9w-0.9pt,3/7h);
+endchar;
+
+newchar(240,0.60,"s + k");
+matra(w,h);
+ms_(1/7w,3/7h,1/2w,(3/4-3/7)*h);
+ka(1/7w,0,6/7w-0.9pt,59/100h,2/5);
+endchar;
+
+newchar(241,0.82,"s + k + r");
+matra(w,h);
+ms_(1/9w,3/7h,(1/2-1/8)*w,(3/4-3/7)*h);
+tra(1/6w,-1/4d,(2/3-1/6)*w,23/40h);
+shnur(2/3w,1/4h,1/3w-0.3pt,1/9h);
+endchar;
+
+newchar(242,0.54,"s + T");
+matra(w,h); tiki(w,h,0);
+ms_(1/7w,3/8h,12/20w,(3/4-3/8)*h);
+_Dha(1/6w,0,5/6w-0.9pt,3/7h);
+endchar;
+
+newchar(243,0.61,"s + Th");
+matra(w,h);
+ms_(1/7w,31/80h,21/50w,(3/4-31/80)*h);
+Tha(1/4w,0,3/4w-0.9pt,3/4h);
+endchar;
+
+beginchar(244,0.80stwd#,stht#,stdp#); "s + N";
+pickup pencircle scaled penth#;
+numeric wd; wd = 11/20w + 0.9pt;
+z1 = (0,3/4h); z2=(wd-0.9pt,3/4h); draw z1..z2;
+top z3 = (wd-0.9pt,3/4h); z4 = (wd-0.9pt,0); draw z3..z4;
+top rt z5 = (1/10w,3/4h); z6 = (1/2wd,43/80h); z7 = (1/6wd,1/3h); rt z8 = (5/6wd,8/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7; draw (z6+(0,0.1pt))--z8;
+z7r + (0.25pt,-0.25pt) = z7l - (0.25pt,-0.25pt) = z7;
+z4l + (0.15pt,0) = z4r - (0.15pt,0) = z4;
+penstroke z7e{right}..tension 2.5 ..{dir -75}z4e;
+hump(11/20w,1/4h,9/20w-1.1pt,9/20h);
+endchar;
+
+newchar(245,0.88,"s + p");
+matra(3/10w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+ms_(1/11w,3/7h+0.19pt,(5/12-1/8)*w,(3/4-3/7)*h);
+pa(5/12w,3/8h,7/12w-0.9pt,(3/4-3/8)*h,1);
+endchar;
+
+newchar(246,0.82,"s + ph");
+matra(w,h)
+ms_(1/11w,3/7h,5/15w,(3/4-3/7)*h);
+pha(7/19w,0,12/19w-0.9pt,14/25h,0.38);
+endchar;
+
+newchar(247,0.60,"s + m");
+matra(w,h);
+ms_(1/7w,3/7h,1/2w,(3/4-3/7)*h);
+ma(21/40w,0,19/40w-0.9pt,2/5h,0.8,0.8pt);
+endchar;
+
+newchar(248,0.75,"ss + k");
+matra(w,h);
+ds_(1/10w,1/2h,2/3w,1/4h);
+ka(3/8w,0,5/8w-0.9pt,22/40h,3/10);
+endchar;
+
+newchar(249,0.84,"ss + k + r");
+matra(w,h);
+ds_(1/9w,13/25h,(2/3-1/9)*w,(3/4-13/25)*h);
+tra(1/6w,-1/4d,(2/3-1/6)*w,11/20h);
+shnur(2/3w,1/4h,1/3w-0.3pt,1/9h);
+endchar;
+
+newchar(250,0.75,"ss + k + l");
+matra(w,h);
+ds_(1/10w,1/2h,2/3w,1/4h);
+ka(2/5w,1/15h,3/5w-0.9pt,9/20h,3/10);
+la(9/41w,-13/20d,1/2w,1/3h,0);
+endchar;
+
+newchar(251,0.80,"ss + kh");
+matra(21/40w,h);
+ds_(1/10w,3/6h,19/40w,(3/4-3/6)*h);
+rtbar(w,21/20h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+z1 = (9/20w,3/10h); z2 = (3/5w,1/2h); z3 = (72/100w,18/50h);
+z4 = (27/50w,18/100h); z5 = (w-0.9pt,0);
+draw z1{right}..{up}z2{dir -45}..{down}z3{down}..{dir -135}z4{dir -15}..z5;
+fill fullcircle scaled 1.2pt shifted (z1 + (0,0.4pt));
+endchar;
+
+newchar(252,0.83,"ss + T");
+matra(w,h); tiki(w,h,1/4);
+ds(1/11w,1/6h,(11/20-1/11)*w,(3/4-1/6)*h);
+Dha(11/20w-0.25pt,0,9/20w-0.7pt,3/4h);
+endchar;
+
+newchar(253,0.68,"ss + t");
+matra(w,h);
+ds_(1/6w,9/19h,5/6w-0.6pt,(3/4-9/19)*h);
+ta(1/11w,0,10/11w-0.9pt,11/25h,0.2);
+endchar;
+
+newchar(254,0.60,"ss + t + u");
+matra(w,h);
+ds_(1/10w,12/25h,8/9w-0.9pt,(3/4-12/25)*h);
+tta(1/5w,-11/20d,4/5w-0.9pt,4/7h);
+endchar;
+
+newchar(255,0.65,"ss + t + r");
+matra(w,h);
+ds_(1/7w,13/25h,4/5w-0.5pt,(3/4-13/25)*h);
+tra(1/7w,-1/4d,6/7w-0.9pt,11/20h);
+endchar;
+
+newchar(16,0.60,"ss + th");
+matra(w,h);
+ds_(1/10w,12/25h,8/9w-0.9pt,(3/4-12/25)*h);
+ha(3/10w,-1/3d,7/10w-0.3pt,5/8h);
+endchar;
+
+newchar(17,0.63,"ss + n");
+matra(w,h);
+ds_(1/9w,9/19h,8/9w-0.6pt,(3/4-9/19)*h);
+na(1/4w,0,3/4w-0.9pt,3/8h,0.3);
+endchar;
+
+newchar(18,1.15,"ss + p");
+ds_(1/14w,10/20h,(9/20-1/15)*w,(3/4-10/20)*h);
+pa(1/2w,3/8h,1/2w-0.9pt,3/8h,1);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(41/100w,3/4h);
+endchar;
+
+newchar(19,1.15,"ss + p + l");
+ds_(1/14w,10/20h,(9/20-1/15)*w,(3/4-10/20)*h);
+pa(1/2w,3/8h,1/2w-0.9pt,3/8h,1);
+la(57/100w,0,43/100w-0.9pt,3/8h,0);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+draw (0,3/4h)..(41/100w,3/4h);
+endchar;
+
+newchar(20,1.02,"ss + ph");
+matra(w,h);
+pha(10/21w,0,11/21w-0.9pt,14/25h,0.38);
+ds_(1/11w,12/25h,2/5*w,(3/4-12/25)*h);
+endchar;
+
+newchar(21,0.63,"ss + b");
+matra(w,h);
+ds_(1/9w,9/19h,8/9w-0.6pt,(3/4-9/19)*h);
+ba(5/14w,0,9/14w-0.9pt,1/2h);
+endchar;
+
+newchar(22,0.77,"ss + m");
+matra(w,h);
+ds_(1/11w,9/19h,6/9w-0.2pt,(3/4-9/19)*h);
+ma(2/3w,0,1/3w-0.9pt,3/8h,1,(9/19-3/8)*h);
+endchar;
+
+newchar(23,0.63,"ss + l");
+matra(w,h);
+ds_(1/9w,9/19h,8/9w-0.6pt,(3/4-9/19)*h);
+la(1/5w,0,4/5w-0.9pt,3/8h,0.3);
+endchar;
+
+newchar(24,0.5,"h + N");
+matra(w,h);
+ha_(1/8w,1/8h,7/8w-0.4pt,(3/4-1/8)*h);
+mna(1/6w,-1/3d,5/6w-1.2pt,3/11h,0);
+endchar;
+
+newchar(31,0.65,"h + n");
+matra(w,h);
+ha_(1/12w,0,8/13*w,3/4h);
+shnur(18/30w,17/40h,12/30w-0.5pt,1/6h);
+endchar;
+
+newchar(32,0.75,"h + m");
+matra(w,h);
+ha_ma(1/10w,0,9/10w-0.9pt,3/4h);
+endchar;
+
+newchar(62,0.5,"h + b");
+matra(w,h);
+ha_(1/8w,1/8h,7/8w-0.4pt,(3/4-1/8)*h);
+ba(1/3w,-1/3d,3/7w,3/10h);
+endchar;
+
+newchar(125,0.5,"h + l");
+matra(w,h);
+ha_(1/8w,1/8h,7/8w-0.4pt,(3/4-1/8)*h);
+la(1/6w,-1/3d,5/6w-0.9pt,3/10h,-0.15);
+endchar;
+
+newchar(127,0.98,"rh + g");
+matra(11/20w,h);
+pickup dflt_pen; draw (w-0.9pt,3/4h)..(w,3/4h);
+Da(1/12w,0,(11/20-1/12)*w,3/4h);
+ga(21/40w,3/10h,19/40w-0.9pt,(3/4-3/10)*h,0.65);
+fill fullcircle scaled 1.2pt shifted (15/40w,-1/3d);
+endchar;
+
+%%% End of bnjuk.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnkaar.mf b/Master/texmf-dist/fonts/source/public/bengali/bnkaar.mf
new file mode 100644
index 00000000000..7fc2ac6e820
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnkaar.mf
@@ -0,0 +1,90 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnkaar.mf: METAFONT file that defines the Bengali vowel forms
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%
+% apandey 2002.03.27 commented out "a-kar" character; unneeded char
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%beginchar("a",0,stht#,stdp#); "a-kar";
+%endchar;
+
+beginchar("A",0.23stwd#,stht#,stdp#); "aa-kar";
+z1 = (1/2w,3/4h+0.3pt); z1' = (1/2w,3/4h); z2 = (1/2w,0); z3 = (w,3/4h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+pickup pencircle scaled 0.4pt; draw z1'..z3;
+z5 = (0,3/4h); lft z6 = (8/20w,19/32h); draw z5{dir -30}..{dir -60}z6;
+endchar;
+
+beginchar("i",0.22stwd#,stht#,stdp#); "hraswa i-kar";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (1/2w,3/4h); z4=(1/2w,0); draw z3..z4;
+z5 = (1/4w,7/8h); z6 = (1.3w,9/8h); z7 = (3w,7/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3..z5..{right}z6{right}..z7;
+endchar;
+
+beginchar("I",0.25stwd#,stht#,stdp#); "dirgha i-kar";
+z1 = (1/5w,3/4h); z2 = (w,3/4h); z3 = (3/5w,3/4h); z4 = (3/5w,0);
+z5 = (-3/4w,9/8h); z6 = (-9/5w,h); z7 = (-3/4w,7/8h); z8 = (-1/5w,3/4h);
+pickup pencircle scaled penth#;
+draw z1..z2; draw z3..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z3{up}..{left}z5{left}..{down}z6{down}..{right}z7{right}..{dir -120}z8;
+endchar;
+
+beginchar("u",0stwd#,stht#,stdp#); "hraswa-u-kar";
+z1 = (w-0.9pt,0); z2 = (w-0.9pt,-9/20d); z3 = (w-1.8pt,-4/5d);
+z4 = (w-2.8pt,-1/2d); z5 = (w-2.0pt,-1/5d); z6 = (w+1.2pt,-7/5d);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 30;
+draw z1{down}..z2..{left}z3{left}..{up}z4{up}..{right}z5{right}..z2..tension 2..z6;
+endchar;
+
+beginchar("U",0stwd#,stht#,stdp#); "dirgha-u-kar";
+z1 = (w-0.9pt,0); z2 = (w-2.6pt,-9/20d);
+z3 = (w-0.7pt,-2/3d); z4 = (w+1.5pt,-7/5d);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 30;
+draw z1{left}..{down}z2{down}..{dir 20}z3--z4;
+endchar;
+
+beginchar("W",0stwd#,stht#,stdp#); "ri-kar";
+z1 = (w-0.9pt,0); z2 = (w-2.1pt,-1/3d); z3 = (w,-d);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2--z3;
+endchar;
+
+beginchar("e",0.32stwd#,stht#,stdp#); "e-kar";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z4 = (1pt,3/8h); z3 = (w-0.4pt,3/4h); z5 = (w-0.1pt,0);
+draw z3..z4..{dir 15}z5;
+fill fullcircle scaled 1pt shifted (z5 + (-0.12pt,0.3pt));
+endchar;
+
+beginchar("E",0.32stwd#,stht#,stdp#); "oi-kar";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z4 = (1pt,3/8h); z3 = (w-0.4pt,3/4h); z5 = (w-0.1pt,0);
+draw z3..z4..{dir 15}z5;
+fill fullcircle scaled 1pt shifted (z5 + (-0.12pt,0.3pt));
+z6 = (1/8w,31/32h); z7 = (-1/3w,11/10h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z3{dir 60}..{left}z6{left}...z7{dir 75};
+endchar;
+
+beginchar("o",0,stht#,stdp#); "o-kar";
+endchar;
+
+beginchar("O",0.25stwd#,stht#,stdp#); "ou-kar";
+z1 = (1/5w,3/4h); z2 = (w,3/4h); z3 = (3/5w,3/4h); z4 = (3/5w,0);
+pickup pencircle scaled 0.4pt;
+draw z1..z2; draw z3..z4;
+z7' = (3/5w,3/4h); z8' = (-3/4w,31/32h); z9' = (-9/5w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7'{dir 60}..{left}z8'{left}...z9'{dir 75};
+endchar;
+
+%%% End of bnkaar.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnlig.mf b/Master/texmf-dist/fonts/source/public/bengali/bnlig.mf
new file mode 100644
index 00000000000..5e637f23463
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnlig.mf
@@ -0,0 +1,121 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnlig.mf: METAFONT file that defines some special ligatures
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(25,0.75stwd#,stht#,stdp#); "ra + u";
+numeric wd; wd = 12/20w + 0.9pt;
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (wd-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6wd,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (wd-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (wd-0.9pt,3/4h);
+draw z3..z4;
+fill fullcircle scaled 0.9pt shifted (9/20wd,2/21h);
+z1' = (12/20w,2/5h); z2' = (w-0.8pt,47/100h); z3' = (16/20w,3/5h);
+pickup pencircle scaled penth#;
+draw z1'{dir -60}..{up}z2'{up}..{left}z3';
+fill fullcircle scaled 1.3pt shifted (z3' + (-0.1pt,-0.46pt));
+endchar;
+
+beginchar(26,0.70stwd#,stht#,stdp#); "ra + U";
+numeric wd; wd = 13/20w + 0.9pt;
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (wd-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6wd,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (wd-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (wd-0.9pt,3/4h);
+draw z3..z4;
+fill fullcircle scaled 0.9pt shifted (9/20wd,2/21h);
+z1' = (13/20w,1/2h) + (0.02pt,0); z2' = (16/20w,11/20h);
+z3' = (w-0.9pt,1/2h); z4' = (w-0.8pt,1/20h);
+pickup pencircle xscaled 0.5pt yscaled 0.3pt rotated -30;
+draw z1'..tension 4..z2'..tension 4..z3'{down}..tension 4..{dir -30}z4';
+endchar;
+
+beginchar(27,0.56stwd#,stht#,stdp#); "ha + u";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (1/6w,1/2h); z3' = (37/100w,13/20h);
+z4 = (3/5w,1/2h); z4' = (74/100w,13/20h); z5 = (6/7w,1/2h);
+lft z6 = (1/7w,9/32h); z7 = (w,-1/3d);
+z6l + (0.15pt,-0.3pt) = z6r - (0.15pt,-0.3pt) = z6;
+z7l - (0,0.15pt) = z7r + (0,0.15pt) = z7;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z3{dir 100}..{right}z3'{right}..{dir -60}z4{dir 60}..
+ {dir 45}z4'{dir -35}..{down}z5{down}..{dir 160}z6;
+penstroke z6e{dir -22}..{dir -45}z7e;
+fill fullcircle scaled 1.3pt shifted (z3 + (0.43pt,0.05pt));
+endchar;
+
+beginchar(28,0.67stwd#,stht#,stdp#); "ha + ri-kar";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+numeric wd; wd = 14/18w;
+z3 = (3/10wd,3/4h); z4 = (1/3wd,3/5h); z5 = (5/6wd,1/2h);
+lft z6 = (1/8wd,5/16h); z7 = (wd,-1/3d);
+z6l + (0.15pt,-0.3pt) = z6r - (0.15pt,-0.3pt) = z6;
+z7l - (0,0.15pt) = z7r + (0,0.15pt) = z7;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+penstroke z6e{dir -30}..{dir -45}z7e;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+z1' = (13/20w,1/2h) + (0.02pt,0); z2' = (16/20w,11/20h);
+z3' = (w-0.9pt,1/2h); z4' = (w-0.8pt,0);
+pickup pencircle xscaled 0.5pt yscaled 0.3pt rotated -30;
+draw z1'..tension 4..z2'..tension 4..z3'{down}..tension 4..{dir -45}z4';
+endchar;
+
+beginchar(29,0.70stwd#,stht#,stdp#); "ga + u";
+z1 = (7/10w,3/5h); z2 = (74/100w,76/100h);
+z4 = (19/25w,8/20h); z5 = (7/8w,12/50h);
+z6 = (24/40w,1/18h); z8 = (1/10w,13/20h); z7 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2{dir -60}..{dir -135}z4
+ {dir -30}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+z2' = (9/20w,3/4h); z3' = (9/40w,12/20h);
+z4' = (18/40w,11/20h); z5' = (7/20w,8/20h);
+draw z1{dir 120}..{left}z2'{left}..{down}z3'{dir 30}..{down}z4'{down}..z5';
+endchar;
+
+beginchar(30,0.72stwd#,stht#,stdp#); "sha + u";
+z1 = (7/10w,3/5h); z2 = (74/100w,76/100h);
+z4 = (19/25w,8/20h); z5 = (7/8w,12/50h);
+z6 = (24/40w,1/18h); z8 = (1/10w,13/20h); z7 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2{dir -60}..{dir -135}z4
+ {dir -30}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+z4' = (1/10w,3/4h); z5' = (6/16w,20/31h);
+z6' = (13/25w,3/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z4'{right}..{dir -60}z5'{dir 60}..{right}z6'{right}..{dir -60}z1;
+fill fullcircle xscaled 1.2pt yscaled 2.0pt rotated -45 shifted (z5' + (-0.50pt,-0.62pt));
+fill fullcircle xscaled 1.2pt yscaled 2.0pt rotated 45 shifted (z5' + (0.50pt,-0.62pt));
+endchar;
+
+%%% End of bnlig.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnligtbl.mf b/Master/texmf-dist/fonts/source/public/bengali/bnligtbl.mf
new file mode 100644
index 00000000000..fe6f3b50e85
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnligtbl.mf
@@ -0,0 +1,36 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnligtbl.mf: METAFONT file that defines the ligature tables
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+% June 1998: Modifications by Jaijeet Roychowdhury, now useable with ITRANS
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ligtable "a": "a" =: "A"; %% a + a = A
+ligtable "e": "e" =: "I"; %% e + e = I
+ligtable "o": "o" =: "U", "i" =: "E", "u" =: "O";
+ %% o + o = U, o + i = E, o + u = O
+ligtable "`": "`" =: oct"134"; %% ` + ` = ``
+ligtable "'": "'" =: oct"42"; %% ' + ' = "
+ligtable "-": "-" =: oct"173"; %% - + - = endash
+% jaijeet: next line changed
+ligtable oct"173": "-" =: "."; %% endash + - = emdash
+ligtable "r": "u" =: oct"31", "U" =: oct"32"; %% r + u = ru, r + U = rU
+ligtable "h": "u" =: oct"33", "W" =: oct"34"; %% h + u = hu, h + W = hW
+ligtable "g": "u" =: oct"35"; %% g + u = gu
+ligtable "S": "u" =: oct"36"; %% S + u = Su
+%ligtable ".": "." =: oct"74"; %% . + . = ..
+ligtable "|": "|" =: oct"74"; %% | + | = ..
+ligtable "k": oct"17" =: oct"205"; %% k + \rafala = \kr
+ligtable "t": oct"17" =: oct"262"; %% t + \rafala = \tr
+ligtable oct"262": "u" =: oct"263"; %% \tr + u = \tru
+ligtable oct"300": "u" =: oct"301", %% \nt + u = \ntu
+ oct"17" =: oct"303"; %% \nt + \rafala = \ntr
+ligtable "v": oct"17" =: oct"327"; %% v + \rafala = \vr
+ligtable oct"335": oct"17" =: oct"336"; %% \mv + \rafala = \mvr
+ligtable oct"342": "u" =: oct"343"; %% \lg + u = \lgu
+ligtable oct"360": oct"17" =: oct"361"; %% \ssk + \rafala = \sskr
+ligtable oct"370": oct"17" =: oct"371"; %% \sk + \rafala = \skr
+ligtable oct"375": "u" =: oct"376", %% \st + u = \stu
+ oct"17" =: oct"377"; %% \st + \rafala = \str
+
+%%% End of bnligtbl.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnmacro.mf b/Master/texmf-dist/fonts/source/public/bengali/bnmacro.mf
new file mode 100644
index 00000000000..7ea26ae138b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnmacro.mf
@@ -0,0 +1,668 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnbanjon.mf: METAFONT file that defines various macros
+% for use in bnjuk.mf
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def newchar(expr code, char_width, char_descr) =
+beginchar(code,char_width*stwd#,stht#,stdp#); char_descr;
+enddef;
+
+def matra(expr w,h) =
+pickup dflt_pen;
+draw (0,3/4h)..(w,3/4h);
+enddef;
+
+def rtbar(expr w,h) =
+pickup dflt_pen;
+draw (w-0.9pt,0)..(w-0.9pt,3/4h);
+enddef;
+
+def na(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z; pair z[];
+z1 = (xoff + w, yoff + (overshoot + 1)*h); z2 = (xoff + w, yoff);
+z3 = (xoff + 0.040w, yoff + 2/3h);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 25}..{down}z2;
+fill fullcircle scaled 0.5h shifted (z3 + (0.062w,-0.152h));
+endgroup
+enddef;
+
+def na_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z2 = (1/5w,4/9h); z3 = (11/15w,0); top z4 = (15/16w,h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z2{right}..{right}z3{right}..{dir 105}z4;
+fill fullcircle scaled 1.4pt shifted (z2 + (-0.02w,-0.19h));
+endgroup
+enddef;
+
+def ma(expr xoff, yoff, w, h, overshoot, another) =
+begingroup
+save z; pair z[];
+z1 = (xoff + w, yoff + (overshoot + 1)*h); z2 = (xoff + w, yoff);
+z3 = (xoff - 0.25w, yoff + 4/5h); z4 = (xoff, yoff + h + another);
+pickup dflt_pen; draw z1..z2; draw z4{dir -80}..{dir -100}(z3 + (0.25w,0));
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{right}..{down}z2;
+fill fullcircle scaled 1.5pt shifted (z3 + (-0.02w,-0.152h));
+endgroup
+enddef;
+
+def la(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,(overshoot + 1)*h); z2 = (w,0);
+z3 = (w,1/2h); z4 = (3/4w,4/5h); z5 = (20/33w,11/20h);
+z6 = (7/24w,5/6h); z7 = (0,1/2h); z8 = (1/8w,4/15h);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle xscaled 0.3pt yscaled 0.5pt;
+draw z3{dir 135}..{left}z4{left}..{dir -75}z5{dir 105}..{left}z6{left}
+ ..{down}z7{down}..{dir -15}z8;
+fill fullcircle scaled 1.2pt shifted (z8 + (0.042w,0.110h));
+endgroup
+enddef;
+
+def ds_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (0,1/6h); z2 = (1/8w,0); z3 = (6/15w,h);
+z4 = (17/20w,0); z5 = (9/10w,h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 60;
+draw z1..{right}z2{right}..{dir 75}z3{dir -75}..{right}z4{right}..{dir 135}z5;
+endgroup
+enddef;
+
+def ga(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,h+0.3pt); z2 = (w,-overshoot*h);
+pickup dflt_pen; draw z1..z2;
+rt z4 = (w,4/7h); z5 = (9/20w,h); rt z6 = (0,5/9h);
+z7 = (17/40w,11/40h); z8 = (16/50w,1/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z4{dir 120}..{left}z5{left}..{down}z6{dir 30}
+ ..{down}z7{down}..{dir -135}z8;
+endgroup
+enddef;
+
+def ba(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (w,h); z2 = (w,0); z3 = 1/8[z1,z2] - (0.015w,0); z4 = (0,1/2h);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle scaled 0.5pt;
+draw z3{z4-z3 rotated -8}..z4;
+draw z4{right}.. tension 1.5 .. (z2 - (0.015w,0));
+endgroup
+enddef;
+
+def ba_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (w,h); z2 = (w,0); z3 = 1/8[z1,z2] - (0.015w,0);
+z4 = (0,8/24h); z5 = (1/3w,0);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle scaled 0.5pt;
+draw z3{z4-z3 rotated -8}..z4;
+draw z4..z5;
+endgroup
+enddef;
+
+def ma_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (1/7w,h); z2 = (1/5w,4/9h); z3 = (11/15w,0); top z4 = (15/16w,h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1..{dir -120}z2{right}..{right}z3{right}..{dir 135}z4;
+fill fullcircle scaled 1.4pt shifted (z2 + (-0.10w,-0.12h));
+endgroup
+enddef;
+
+def pa(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,h+0.3pt); z2 = (w, -h * overshoot);
+pickup pencircle scaled 0.4pt; draw z1..z2;
+rt z4 = (w,19/40h); z5 = (9/20w,h); rt z6 = (0,2/3h);
+z7 = (1/5w,0); z8 = (19/24w,3/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z4--z8{z8-z4}..{left}z5{left}..{dir -140}z6{dir 30}..{dir -140}z7;
+pickup pencircle xscaled 0pt yscaled 0.6pt rotated 50;
+draw z7--z8;
+endgroup
+enddef;
+
+def sha(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,h+0.3pt); z2 = (w,0); z3 = (w,-overshoot * h);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z3;
+top z4 = (0,h+0.13pt); z5 = (11/30w,16/24h);
+top z6 = (16/25w,h); z7 = 1/2[z1,z2];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z4{right}..{dir -60}z5{dir 60}..{right}z6{right}..{z7-z6}z7;
+fill fullcircle xscaled 1.3pt yscaled 2.3pt rotated -45 shifted (z5 + (-0.50pt,-0.62pt));
+fill fullcircle xscaled 1.3pt yscaled 2.3pt rotated 45 shifted (z5 + (0.50pt,-0.62pt));
+endgroup
+enddef;
+
+def cha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (0,h); z4 = (0,1/3h);
+z5 = (1/4w,1/16h); z6 = (w,16/27h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6{dir 165}..{dir 100}z3;
+endgroup
+enddef;
+
+def chha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (0,h); z4 = (0,5/9h); z5 = (1/8w,1/2h);
+z6 = (11/20w,3/4h); z7 = (26/40w,3/4h); z8 = (w,17/27h);
+z9 = (1/5w,1/3h); z10 = (w,0);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3..z4{down}..{right}z5{right}..{dir 80}z6{left}..{up}z3;
+draw z6{right}..z7..{down}z8{down}..{left}z9;
+draw z9{dir -25}..{dir -45}z10;
+endgroup
+enddef;
+
+def ta(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (2/3w,h); lft z4 = (w,7/15h);
+z5 = (3/4w,0); z6 = (1/4w,11/20h); z7 = (0,(1 + overshoot)*h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 28}..{down}z4{down}..{left}z5{left}..z6..z7;
+fill fullcircle scaled 1.5pt shifted (z3 + (0.24pt,-0.44pt));
+endgroup
+enddef;
+
+def ta_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (3/5w,4/5h); lft z4 = (w,7/15h);
+z5 = (3/4w,0); z6 = (1/6w,1/2h); top z7 = (0,7/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir 28}..{down}z4{down}..{left}z5{left}..z6..z7;
+fill fullcircle scaled 1.5pt shifted (z3 + (0.24pt,-0.44pt));
+endgroup
+enddef;
+
+def dha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba(xoff,yoff,2/3w,h);
+z1 = (2/3w,6/7h); z2 = (41/40w,5/6h); z3 = (w,1/25h);
+pickup pencircle xscaled 0.35pt yscaled 0.5pt;
+draw z1--z2{dir -95}..tension 1.5..{dir -85}z3;
+endgroup
+enddef;
+
+def ka(expr xoff, yoff, w, h, pos) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba(xoff,yoff,2/3w,h);
+z1 = (2/3w,4/5h); z2 = (w,pos * h);
+draw z1{right}..{dir -120}z2;
+fill fullcircle scaled 1.1pt shifted (z2 + (-0.25pt,0.16pt));
+endgroup
+enddef;
+
+def ka_(expr xoff, yoff, w, h, pos) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba_(xoff,yoff,2/3w,h);
+z1 = (2/3w,4/5h); z2 = (w,pos * h);
+draw z1{right}..{dir -120}z2;
+fill fullcircle scaled 1.1pt shifted (z2 + (-0.25pt,0.16pt));
+endgroup
+enddef;
+
+def da(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (0,(1 + overshoot)*h); z4 = (0,17/50h);
+pickup dflt_pen; draw z3..z4;
+z5 = (9/8w,3/4h); z2 = 1/2[z4,z5] + (0,0.25pt);
+z6 = (w,0);
+pickup pencircle xscaled 0pt yscaled 0.5pt rotated 45;
+draw z4{z2-z4}..z2..{z5-z2}z5;
+pickup dflt_pen; draw z5{dir -105}..{dir -80}z6;
+endgroup
+enddef;
+
+def da_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (0,h); z2 = (0,0); z3 = (7/8w,1/2h); z4 = (w,1/3h); z5 = (w,0);
+z6 = 1/2[z2,z3] + (0,0.35pt);
+pickup dflt_pen; draw z1--z2{z6-z2}..{z3-z6}z3--z4--z5;
+endgroup
+enddef;
+
+def tiki(expr w,h,offshoot) =
+begingroup
+save z; pair z[];
+z1 = (w-0.7pt,3/4h); z2 = ((1 + offshoot)/2*w,31/32h);
+z3 = (offshoot*w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z1{dir 60}..{left}z2{left}..z3;
+endgroup
+enddef;
+
+def shnur(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (0,1/2h); z2 = (1/2w,h); z3 = (5/6w,0);
+pickup dflt_pen;
+draw z1..{right}z2{right}..{dir -120}z3;
+fill fullcircle scaled (3/5w) shifted (z3 + (-0.17*w,0.11*h));
+endgroup
+enddef;
+
+def ha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z4 = (1/4w,4/5h); z5 = (5/6w,2/3h);
+z6 = (1/10w,11/24h); z7 = (w,0);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z6{dir -30}..{dir -45}z7;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+endgroup
+enddef;
+
+def ha_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (2/10w,h); z4 = (1/4w,4/5h); z5 = (5/6w,2/3h);
+z6 = (1/10w,11/24h); z7 = (w,0);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+draw z6{dir -30}..{dir -45}z7;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+endgroup
+enddef;
+
+def mna(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (w,(overshoot + 1)*h); z2 = (w,0);
+z4 = (8/16w,h); z3 = (0.040w,4/9h); rt z5 = (w,2/3h);
+pickup dflt_pen; draw z1..z2;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3{dir 100}..{right}z4{right}..{dir -55}z5;
+fill fullcircle scaled 0.4h shifted (z3 + (0.120w,0.050h));
+endgroup
+enddef;
+
+def tra(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (9/20w,8/15h); z2 = (4/5w,h); z3 = (w,8/9h);
+z4 = (w,0); z5 = (1/2w,1/7h);
+z6 = (1/6w,1/5h); z7 = (0,1/2h); z8 = (1/18w,5/7h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir 135}..tension 1.2..{right}z2{right}..z3{down}..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw (z4+(0,0.2pt)){up}...{left}z5{left}..z6..{up}z7{up}..z8;
+fill fullcircle scaled 0.263h shifted (z1 + (0.0887w,0.0713h));
+endgroup
+enddef;
+
+def Dha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top lft z3 = (0,h); lft z4 = (0,3/16h);
+z5 = (2/5w,1/20h); z6 = (w,16/27h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3--z4{down}..z5{dir 30}..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+endgroup
+enddef;
+
+def bha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (1/3w,5/8h); z4 = (6/7w,5/6h); z5 = (w,15/32h);
+z6 = (3/5w,0); z8 = (0,13/15h); z7 = (3/25w,7/16h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 15;
+draw z3{dir -29}..{dir 60}z4{dir -50}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z3 + (0.36pt,0.38pt));
+endgroup
+enddef;
+
+def Da(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (1/2w,h); z4 = (1/2w,6/11h); z5 = (11/20w,1/2h);
+z6 = (8/9w,7/10h); lft z7 = (w,5/12h);
+z8 = (23/40w,1/10h); z9 = (0,8/15h); z10 = (1/10w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+endgroup
+enddef;
+
+def ms_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (4/5w,h); z2 = (0,1/4h); z3 = (1/5w,0); z4 = (w,3/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.5pt rotated 45;
+draw z1{left}..{down}z2{down}..{right}z3{right}..{up}z4{up}..{left}z1;
+z5 = (1/3w,2/3h); z6 = (2/3w,3/10h); draw z5..z6;
+endgroup
+enddef;
+
+def pha_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (7/10w,4/5h); z4 = (7/10w,0); draw z3..z4;
+top rt z5 = (0,h); z6 = (1/3w,43/60h); z7 = (1/10w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+draw z7{right}..tension 1.5 ..{dir -75}(z4 - (0.08pt,0));
+lft z8 = (41/40w,14/27h); z9 = (w,1/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{right}..{down}z8{down}..z9;
+fill fullcircle scaled 1pt shifted (z9 + (-0.20pt,0.20pt));
+endgroup
+enddef;
+
+def pha(expr xoff, yoff, w, h, overshoot) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (7/10w,4/5*(1+overshoot)*h); z4 = (7/10w,0); draw z3..z4;
+top rt z5 = (1/7w,h); z6 = (11/40w,48/60h); z7 = (0w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+draw z5{right}.. tension 2 ..z6--z7;
+draw z7{right}..tension 1.5 ..{dir -75}(z4 - (0.08pt,0));
+lft z8 = (41/40w,(14/27+overshoot*3/4)*h); z9 = (w,(1/4+overshoot*3/4)*h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{right}..{down}z8{down}..z9;
+fill fullcircle scaled 1pt shifted (z9 + (-0.20pt,0.20pt));
+endgroup
+enddef;
+
+def ds(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+pickup dflt_pen;
+top z3 = (w,h); z4 = (w,0); draw z3..z4;
+top z5 = (1/20w,h); rt z10 = (w,3/7h);
+z7 = (0,2/5h); z8 = (1/7w,14/50h);
+z9 - z10 = (z7 - z8); rt bot z6 = 3/5[z8,z9];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z5{right}..{down}z6;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z7..z8..z9..tension 1.4..z10;
+endgroup
+enddef;
+
+def _ds(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+pickup dflt_pen;
+top z3 = (w,h); z4 = (w,0); draw z3..z4;
+top z5 = (1/20w,h); rt z10 = (w,3/7h);
+z7 = (0,2/5h); z8 = (1/7w,14/50h);
+z9 - z10 = (z7 - z8); rt bot z6 = 3/5[z8,z9];
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z7..z8..z9..tension 1.4..z10;
+endgroup
+enddef;
+
+def _Dha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top lft z3 = (2/5w,h); lft z4 = (0,3/6h);
+z5 = (1/2w,0); z6 = (w,20/27h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z3..tension 2..z4{down}..z5..{up}z6;
+fill fullcircle scaled 1.2pt shifted (z6 - (0.43pt,0.15pt));
+endgroup
+enddef;
+
+def Tha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (1/2w,h); z4 = (0,3/10h); z5 = (6/16w,1/12h);
+z6 = (w,1/2h); z7 = (3/8w,3/2h); z8 = (9/19w,19/12h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z3{dir -75}..{dir -150}z4{down}..{right}z5{right}..{up}z6{up}
+ ..{dir 120}z3..{up}z7{up}..{dir 45}z8;
+endgroup
+enddef;
+
+def tta(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (1/5w,3/4h); z2 = (3/4w,h);
+z3 = (w,64/75h); z4 = (4/5w,3/5h); z5 = (w,28/75h);
+z6 = (3/5w,1/9h); z8 = (0,13/15h); z7 = (3/25w,4/9h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir 75}..{right}z2{right}..{down}z3{down}..{dir -135}z4
+{dir -40}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.3pt shifted (z4 + (-0.37pt,0));
+fill fullcircle scaled 1.1pt shifted (z1 + (0.39pt,0));
+endgroup
+enddef;
+
+def gha(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (w,h); z4 = (w,0); pickup dflt_pen; draw z3..z4;
+z5 = (1/7w,h-0.05pt); z6 = (0,4/5h);
+z7 = (15/25w,7/10h); z8 = (1/9w,4/10h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z5{dir -120}..{down}z6{down}..{dir 30}z7--z8;
+draw z8{right}..tension 1.5 ..{dir -75}z4;
+endgroup
+enddef;
+
+def una(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (1/10w,h); z2 = (19/40w,76/93h); z3 = (25/29w,92/93h);
+z4 = (1/2w,h); z5 = (4/9w,1/2h); z6 = (19/40w,64/135h);
+z7 = (8/9w,2/3h); lft z8 = (w,11/25h); z9 = (23/40w,1/9h);
+z10 = (6/50w,4/9h); z11 = (0,13/15h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1..tension 1.2..{right}z2{right}..tension 1.2..
+{up}z3{up}..{dir -130}z4{dir -130}..
+tension 2..z5--z6{dir 0}..{dir 60}z7{dir -60}..{down}z8{down}
+..{left}z9{left}..z10..z11;
+endgroup
+enddef;
+
+def khiyo_base(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z1 = (1/15w,h); z2 = (1/7w,4/5h); z3 = (1/2w,2/5h);
+z4 = (w-0.01pt,0.2pt); z5 = (w,h); z6 = (w,0);
+pickup dflt_pen; draw z5..z6;
+pickup pencircle xscaled 0.3pt yscaled 0.55 pt rotated 45;
+draw z1..{down}z2{dir 20}..{dir -130}z3{right}..{down}z4;
+fill fullcircle scaled 1.4pt shifted (z2 + (-0.055w,-0.07h));
+fill fullcircle scaled 1.4pt shifted (z3 + (-0.07w,-0.04h));
+endgroup
+enddef;
+
+def khiyo(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+khiyo_base(xoff,yoff,2/3w,h);
+top z1 = (17/40w,h); z2 = (2/3w,29/40h); z3 = (w,9/20h);
+pickup pencircle xscaled 0.3pt yscaled 0.6 pt;
+draw z1{dir -120}..{dir 15}z2{dir 15}..{dir -120}z3;
+fill fullcircle scaled 1.3pt shifted (z3 + (-0.090w,-0.00h));
+endgroup
+enddef;
+
+def bhra(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z3 = (1/3w,9/15h); z4 = (6/7w,6/7h); z5 = (w,8/11h); z6 = (w,0);
+z8 = (w,0); z9 = (1/2w,1/6h);
+z10 = (11/30w,1/6h); z11 = (1/15w,6/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 15;
+draw z3{dir -29}..{dir 60}z4..tension 3.5..z5--z6;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z8{dir 90}..{left}z9..z10{left}..z11;
+fill fullcircle scaled 1.4pt shifted (z3 + (0.36pt,0.38pt));
+endgroup
+enddef;
+
+def ja(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (8/20w,h); z4 = (4/21w,2/3h); z5 = (8/20w,1/2h);
+z6 = (23/36w,35/60h); z7 = (12/16w,19/50h); z8 = (1/2w,1/6h);
+rt z9 = (0,3/4h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{dir -135}..{down}z4{down}..{right}z5{right}..{dir30}z6
+ {dir -60}..{down}z7{down}..{left}z8{left}..{up}z9;
+endgroup
+enddef;
+
+def jaleg(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+top z3 = (0,h);
+rt z11 = (w,3/4h);
+z12 = (7/8w,0);
+pickup pencircle xscaled 0.25pt yscaled 0.5pt;
+draw z3{dir -90}..{dir 15}z11;
+pickup pencircle xscaled 0.2pt yscaled 0.45pt rotated 45;
+draw z11{dir -120}..tension 1.8..z12;
+endgroup
+enddef;
+
+def hump(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z9 = (0,2/5h); z13 = (0,3/5h); z11 = (8/9w,1/2h);
+z10 = (w,0); z12 = (w,h);
+pickup pencircle xscaled 0.25pt yscaled 0.45pt;
+draw z9{dir -60}..z10..z11;
+pickup pencircle xscaled 0.25pt yscaled 0.45pt;
+draw z13{dir 60}..z12..z11;
+fill fullcircle scaled 1.0pt shifted (z11 + (-0.15pt,0));
+endgroup
+enddef;
+
+def ina(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+tra(xoff,yoff,3/5w,h);
+hump(xoff+3/5w,yoff+1/3h,2/5w,3/5h);
+endgroup
+enddef;
+
+def jha(expr xoff, yoff, w, h, fract) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba(xoff,yoff,7/10w,h);
+z1 = (7/10w,2/5h); z2 = (w,1/20h); z3 = (w,fract*h);
+pickup dflt_pen; draw z2..z3;
+draw z1{z2-z1 rotated -8}..z2;
+endgroup
+enddef;
+
+def dha_(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+ba(xoff,yoff,w,h);
+z8 = (1/2w,22/30h); z9 = (1/9w,9/10h); bot z10 = (9/30w,h);
+pickup pencircle scaled 0.35pt;
+draw z8{left}..{up}z9{up}..{right}z10;
+fill fullcircle scaled 1.0pt shifted (z10 + (0.1pt,-0.33pt));
+endgroup
+enddef;
+
+def gu(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[],z[]'; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+z1 = (7/10w,3/5h); z2 = (74/100w,76/100h);
+z4 = (19/25w,8/20h); z5 = (7/8w,12/50h);
+z6 = (24/40w,1/18h); z8 = (1/10w,13/20h); z7 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1--z2{dir -60}..{dir -135}z4
+ {dir -30}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+z2' = (9/20w,3/4h); z3' = (9/40w,12/20h);
+z4' = (18/40w,11/20h); z5' = (7/20w,8/20h);
+draw z1{dir 120}..{left}z2'{left}..{down}z3'{dir 30}..{down}z4'{down}..z5';
+endgroup
+enddef;
+
+def ha_ma(expr xoff, yoff, w, h) =
+begingroup
+save z, currenttransform; pair z[]; transform currenttransform;
+currenttransform = identity shifted (xoff,yoff) slanted slantval;
+khiyo_base(xoff,yoff,3/4w,h);
+z2 = (3/8w,3/4h); z3 = (3/4w,3/4h);
+z4 = (w,27/40h); z5 = (w,1/10h);
+pickup pencircle scaled 0.5pt;
+draw z2{dir -15}..{dir 15}z3{dir 15}..z4{dir -95}..{dir -85}z5;
+endgroup
+enddef;
+
+%%% End of bnmacro.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnmisc.mf b/Master/texmf-dist/fonts/source/public/bengali/bnmisc.mf
new file mode 100644
index 00000000000..1007b7e7d57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnmisc.mf
@@ -0,0 +1,33 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnmisc.mf: METAFONT file that defines some special symbols
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(12,0stwd#,stht#,stdp#); "hasanta";
+z1 = (w-0.9pt,-1/4d); z2 = (w+1pt,-5/4d);
+pickup pencircle scaled penth#; draw z1..z2;
+endchar;
+
+beginchar(13,0.25stwd#,stht#,stdp#); "ja-fala";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+z3 = (5/6w,3/4h); z4 = (4/9w,7/17h); lft z5 = (0,0);
+pickup pencircle xscaled 0.6pt yscaled 0.3pt;
+draw z3{dir -180}..tension 1.5 ..{dir -80}z4{dir -80}..{dir -170}z5;
+endchar;
+
+beginchar(14,0stwd#,stht#,stdp#); "ref";
+z1l + (0.4pt,0) = z1r - (0.4pt,0) = z1 = (-1.4pt,13/16h);
+z2l + (0.2pt,0) = z2r - (0.2pt,0) = z2 = (2.5pt,9/8h);
+penstroke z1e..z2e;
+endchar;
+
+beginchar(15,0stwd#,stht#,stdp#); "ra-fala";
+z1 = (w-0.9pt,1/10h); z2 = (w-0.9pt,-d/3); z3 = (w-2.5pt,-1/6d);
+z4 = (w-4.4pt,-1/6d); z5 = (w-5.6pt,1/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z1--z2{dir 135}..{left}z3..z4{left}..{up}z5;
+endchar;
+
+%%% End of bnmisc.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnpunct.mf b/Master/texmf-dist/fonts/source/public/bengali/bnpunct.mf
new file mode 100644
index 00000000000..2914f1a8c54
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnpunct.mf
@@ -0,0 +1,203 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnpunct.mf: METAFONT file that defines the Bengali punctuation symbols
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 20 1997
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(".",0.40stwd#,stht#,stdp#); "dnari (period)";
+z1 = (3/4w,3/4h); z2 = (3/4w,0);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45; draw z1..z2;
+endchar;
+
+beginchar(60,0.50stwd#,stht#,stdp#); "double dnari";
+z1 = (1/3w,3/4h); z2 = (1/3w,0);
+z3 = (2/3w,3/4h); z4 = (2/3w,0);
+pickup pencircle xscaled 0.56pt yscaled 0pt rotated -45;
+draw z1..z2; draw z3..z4;
+endchar;
+
+beginchar("!",0.3stwd#,stht#,stdp#); "exclamation mark (bang)";
+pickup pencircle scaled 0.4pt;
+z1 = (1/2w,3/4h); z2 = (1/2w,1/6h); z3 = (1/2w,0);
+z1l + (0.2pt,0.1pt) = z1r + (-0.2pt,0.1pt) = z1;
+z2l + (0.1pt,-0.1pt) = z2r + (-0.1pt,-0.1pt) = z2;
+filldraw z1l..tension 3..z2l..z2..z2r..tension 3..z1r..z1..cycle;
+fill fullcircle scaled 1.2pt shifted z3;
+endchar;
+
+beginchar(",",0.3stwd#,stht#,stdp#); "comma";
+pickup pencircle scaled 0.5pt;
+z1 = (2/3w,1/9h); z2 = (2/5w,-d);
+draw z1{dir -60}..{dir -130}z2;
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(";",0.3stwd#,stht#,stdp#); "semi colon";
+pickup pencircle scaled 0.5pt;
+z1 = (2/3w,1/9h); z2 = (2/5w,-d);
+draw z1{dir -60}..{dir -130}z2;
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,1.8pt));
+endchar;
+
+beginchar(":",0.3stwd#,stht#,stdp#); "colon";
+z1 = (1/2w,1/6h); z2 = (1/2w,(3/4-1/6)*h);
+fill fullcircle scaled 1.5pt shifted z1;
+fill fullcircle scaled 1.5pt shifted z2;
+endchar;
+
+beginchar("`",0.3stwd#,stht#,stdp#); "backquote";
+pickup pencircle scaled 0.5pt;
+z1 = (1/3w,(3/4-1/9)*h); z2 = (3/5w,h);
+draw z1{dir 120}..{dir 50}z2;
+fill fullcircle scaled 1.5pt shifted (z1 + (0.50pt,0.22pt));
+endchar;
+
+beginchar("'",0.3stwd#,stht#,stdp#); "quote";
+pickup pencircle scaled 0.5pt;
+z1 = (2/3w,24/25h); z2 = (2/5w,(3/4-1/9-1/25)*h);
+draw z1{dir -60}..{dir -130}z2;
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(34,0.45stwd#,stht#,stdp#); "double quote";
+pickup pencircle scaled 0.5pt;
+z1 = (2/5w,29/30h); z2 = (1/5w,(3/4-1/9-1/30)*h);
+z1' = (4/5w,29/30h); z2' = (3/5w,(3/4-1/9-1/30)*h);
+draw z1{dir -60}..{dir -130}z2;
+draw z1'{dir -60}..{dir -130}z2';
+fill fullcircle scaled 1.5pt shifted (z1 + (-0.50pt,-0.22pt));
+fill fullcircle scaled 1.5pt shifted (z1' + (-0.50pt,-0.22pt));
+endchar;
+
+beginchar(92,0.45stwd#,stht#,stdp#); "double backquote";
+pickup pencircle scaled 0.5pt;
+z1 = (1/5w,(3/4-1/9)*h); z2 = (2/5w,h);
+z1' = (3/5w,(3/4-1/9)*h); z2' = (4/5w,h);
+draw z1{dir 120}..{dir 50}z2;
+draw z1'{dir 120}..{dir 50}z2';
+fill fullcircle scaled 1.5pt shifted (z1 + (0.50pt,0.22pt));
+fill fullcircle scaled 1.5pt shifted (z1' + (0.50pt,0.22pt));
+endchar;
+
+beginchar("#",0.55stwd#,stht#,stdp#); "hash";
+pickup pencircle scaled 0.5pt;
+z1 = (1/2w,3/4h); z2 = (1/4w,-2/3d);
+z1' = (3/4w,3/4h); z2' = (1/2w,-2/3d);
+draw z1--z2; draw z1'--z2';
+z3 = (1/8w,(1/4-1/30)*h); z4 = (7/8w,(1/4-1/30)*h);
+z3' = (1/8w,(1/2-1/10)*h); z4' = (7/8w,(1/2-1/10)*h);
+draw z3--z4; draw z3'--z4';
+endchar;
+
+beginchar("/",0.3stwd#,stht#,stdp#); "forward slash";
+pickup pencircle scaled 0.5pt;
+z1 = (7/8w,3/4h); z2 = (1/8w,-2/3d);
+draw z1--z2;
+endchar;
+
+beginchar("=",0.5stwd#,stht#,stdp#); "equality sign";
+pickup pencircle scaled 0.5pt;
+z3 = (1/8w,(1/4-1/30)*h); z4 = (7/8w,(1/4-1/30)*h);
+z3' = (1/8w,(1/2-1/10)*h); z4' = (7/8w,(1/2-1/10)*h);
+draw z3--z4; draw z3'--z4';
+endchar;
+
+beginchar("[",0.20stwd#,stht#,stdp#); "left square bracket";
+pickup pencircle scaled 0.1pt;
+z1=(w,h); z2 = (1/3w,h); z3 = (1/3w,-d); z4 = (w,-d);
+z1 - z1' = (0,0.5pt); z2 - z2' = (-0.5pt,0.5pt);
+z4 - z4' = (0,-0.5pt); z3 - z3' = (-0.5pt,-0.5pt);
+filldraw z1--z2--z3--z4--z4'--z3'--z2'--z1'--cycle;
+endchar;
+
+beginchar("]",0.20stwd#,stht#,stdp#); "right square bracket";
+pickup pencircle scaled 0.1pt;
+z1=(0,h); z2 = (2/3w,h); z3 = (2/3w,-d); z4 = (0,-d);
+z1 - z1' = (0,0.5pt); z2 - z2' = (0.5pt,0.5pt);
+z4 - z4' = (0,-0.5pt); z3 - z3' = (0.5pt,-0.5pt);
+filldraw z1--z2--z3--z4--z4'--z3'--z2'--z1'--cycle;
+endchar;
+
+beginchar("(",0.28stwd#,stht#,stdp#); "left parenthesis";
+pickup pencircle scaled 0.1pt;
+z1 = (8/9w,h); z3 = (8/9w,-d);
+z2 = (1/4w,1/3h); z2' = z2 + (0.5pt,0);
+filldraw z2'{up}..{dir 60}z1{dir -130}..{down}z2{down}
+ ..{dir -50}z3{dir 120}..cycle;
+endchar;
+
+beginchar(")",0.28stwd#,stht#,stdp#); "right parenthesis";
+pickup pencircle scaled 0.1pt;
+z1 = (1/9w,h); z3 = (1/9w,-d);
+z2 = (3/4w,1/3h); z2' = z2 - (0.5pt,0);
+filldraw z2'{up}..{dir 120}z1{dir -50}..{down}z2{down}
+ ..{dir -130}z3{dir 60}..cycle;
+endchar;
+
+beginchar("*",0.48stwd#,stht#,stdp#); "asterisk";
+numeric frac; frac = 1/8h;
+z1 = (1/2w,h); z2 = (1/2w,3/7h);
+z3 = (1/6w,h-frac); z4 = (5/6w,3/7h + frac);
+z5 = (1/6w,3/7h+frac); z6 = (5/6w,h - frac);
+pickup pencircle scaled 0.5pt;
+draw z1--z2; draw z3--z4; draw z5--z6;
+endchar;
+
+beginchar("+",0.68stwd#,stht#,stdp#); "plus sign";
+z1 = (1/12w,3/8h); z2 = (11/12w,3/8h);
+z3 = (1/2w,3/4h); z4 = (1/2w,0);
+pickup pencircle scaled 0.5pt;
+draw z1--z2; draw z3--z4;
+endchar;
+
+beginchar("-",0.30stwd#,stht#,stdp#); "hyphen";
+z1 = (1/10w,3/8h); z2 = (9/10w,3/8h);
+z1 - z3 = (0,0.5pt); z2 - z4 = (0,0.5pt);
+pickup pencircle scaled 0.1pt;
+filldraw z1--z2--z4--z3--cycle;
+endchar;
+
+beginchar(123,0.60stwd#,stht#,stdp#); "endash";
+z1 = (0,3/8h); z2 = (w,3/8h);
+pickup pencircle scaled 0.25pt;
+draw z1--z2;
+endchar;
+
+beginchar(124,1.10stwd#,stht#,stdp#); "emdash";
+z1 = (0,3/8h); z2 = (w,3/8h);
+pickup pencircle scaled 0.25pt;
+draw z1--z2;
+endchar;
+
+beginchar("%",0.70stwd#,stht#,stdp#); "percent sign";
+z1 = (5/6w,h); z2 = (1/6w,-1/3d);
+pickup pencircle scaled 0.5pt;
+draw z1--z2;
+pickup pencircle xscaled 0.4pt yscaled 0.2pt;
+draw fullcircle xscaled 11/40w yscaled 1/2h shifted (1/4w,3/4h);
+draw fullcircle xscaled 11/40w yscaled 1/2h shifted (3/4w,-1/3d + 1/4h);
+z3 = (11/40w,h);
+pickup pencircle scaled 0.25pt;
+draw z3{dir -45}..{dir 45}z1;
+endchar;
+
+beginchar("?",0.45stwd#,stht#,stdp#); "Question mark";
+z1=(1/6w,3/5h); z2=(1/2w,3/4h); z3=(5/6w,3/5h);z4=(11/20w,11/30h);
+z5=(1/2w,1/7h);
+pickup pencircle xscaled 0.5pt yscaled 0.25pt rotated -25;
+draw z1{up}..{right}z2{right}..{down}z3{down}..{dir -135}z4..{down}z5;
+fill fullcircle scaled 1.1pt shifted (z5 - (0pt,1.3pt));
+fill fullcircle scaled 1.2pt shifted (z1 + (0.37pt,-0.00pt));
+endchar;
+
+beginchar("$",0.65stwd#,stht#,stdp#); "bucks";
+z1 = (4/7w,h); z2 = (1/7w,-1/3d);
+pickup pencircle scaled 0.5pt;
+draw z1--z2;
+z3 = (4/7w,3/7h); z4 = (8/9w,3/7h);
+draw z3--z4;
+endchar;
+
+%%% End of bnpunct.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnr10.mf b/Master/texmf-dist/fonts/source/public/bengali/bnr10.mf
new file mode 100644
index 00000000000..1160756b9b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnr10.mf
@@ -0,0 +1,29 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnr10.mf: METAFONT file that defines the Bengali alphabet (nonslanted)
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_size 10pt#;
+u# = 3/9pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 0;
+
+input bn;
+end;
+
+%%% End of bnr10.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnsl10.mf b/Master/texmf-dist/fonts/source/public/bengali/bnsl10.mf
new file mode 100644
index 00000000000..ab611e5acbf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnsl10.mf
@@ -0,0 +1,30 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnsl10.mf: METAFONT file that defines the Bengali alphabet (slanted)
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_size 10pt#;
+u# = 3/9pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+currenttransform := identity slanted 1/5;
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 1/5;
+
+input bn;
+end;
+
+%%% End of bnsl10.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/bnswar.mf b/Master/texmf-dist/fonts/source/public/bengali/bnswar.mf
new file mode 100644
index 00000000000..ae1faa11137
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/bnswar.mf
@@ -0,0 +1,162 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% bnswar.mf: METAFONT file that defines the Bengali vowels
+% Created by: Abhijit Das (Barda) IISc Bangalore
+% Last modified: Jun 19 1997
+%
+% apandey 1999.05.29 repositioned "the letter a" from ASC 0 to ASC 97
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%beginchar(0,0.80stwd#,stht#,stdp#); "The letter a";
+beginchar(97,0.80stwd#,stht#,stdp#); "The letter a";
+pickup pencircle scaled penth#;
+numeric wd; wd = 37/40w;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (w-0.9pt,3/4h); z4 = (w-0.9pt,0); draw z3..z4;
+z5 = (3/8wd,3/5h); z6 = (19/25wd,2/5h); z7 = (3/4wd,3/10h);
+z8 = (11/20wd,1/8h); z9 = (1/12wd,13/20h); top z10 = (3/10wd,3/4h);
+z11 = (6/25wd,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z5{dir 25}..{down}z6{down}..z7..{left}z8{left}..z11..z9;
+draw z7{dir -60}..{dir -75}z4;
+pickup pencircle scaled 0.3pt;
+draw z10{dir -30}..{dir -75}(z5 + (0.25pt,0.2pt));
+fill fullcircle scaled 1.5pt shifted (z5 + (0.20pt,-0.45pt));
+endchar;
+
+beginchar(2,0.5stwd#,stht#,stdp#); "The letter hraswa-i";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (3/10w,3/4h); z4 = (1/3w,3/5h); z5 = (5/6w,1/2h);
+lft z6 = (1/8w,5/16h); z7 = (w,-1/3d);
+z6l + (0.15pt,-0.3pt) = z6r - (0.15pt,-0.3pt) = z6;
+z7l - (0,0.15pt) = z7r + (0,0.15pt) = z7;
+pickup pencircle xscaled 0.6pt yscaled 0.3pt rotated -45;
+draw z4{dir 30}..{down}z5{down}..{dir 150}z6;
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+penstroke z6e{dir -30}..{dir -45}z7e;
+fill fullcircle xscaled 1.5pt yscaled 1pt rotated 30 shifted (z4 + (0,-0.20pt));
+z10 = (w-0.7pt,3/4h); z8 = (1/2w,31/32h); z9 = (-1/8w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z10{dir 60}..{left}z8{left}...z9{dir 75};
+endchar;
+
+beginchar(3,0.60stwd#,stht#,stdp#); "The letter dirgha-i";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z3 = (1/10w,3/4h); z4 = (1/6w,3/5h); z5 = (1/8w,17/80h);
+z6 = (1/5w,1/5h); z7 = 1/3[z6,z8];
+z8 = (8/9w,9/16h); z9 = (5/6w,0);
+pickup pencircle xscaled 0.2pt yscaled 0.6pt rotated 45;
+draw z4{dir 30}..z7..tension 2..z6..z5;
+draw z7..{dir 35}z8{dir -120}..{dir -75}z9;
+z7' = (w-0.7pt,3/4h); z8' = (5/9w,31/32h); z9' = (0,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7'{dir 60}..{left}z8'{left}...z9'{dir 75};
+pickup pencircle scaled 0.3pt;
+draw z3{dir -20}..{dir -75}(z4 + (0.5pt,0));
+fill fullcircle scaled 1.2pt shifted (z4 + (0.19pt,-0.25pt));
+endchar;
+
+beginchar(4,0.60stwd#,stht#,stdp#); "The letter hrashwa-u";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (1/2w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+z7' = (w-0.7pt,3/4h); z8' = (1/2w,31/32h); z9' = (-1/8w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7'{dir 60}..{left}z8'{left}...z9'{dir 75};
+endchar;
+
+beginchar(5,0.60stwd#,stht#,stdp#); "The letter dirgha-u";
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h); draw z1..z2;
+top z3 = (1/2w,3/4h); z4 = (1/2w,9/22h); z5 = (11/20w,3/8h);
+z6 = (41/50w,21/40h); lft z7 = (8/9w,5/16h);
+z8 = (23/40w,1/12h); z9 = (1/10w,13/20h); z10 = (9/50w,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z3{down}..{down}z4{dir -60}..{dir -60}z5{dir 30}..{dir60}z6{dir -60}
+ ..{down}z7{down}..{left}z8{left}..z10..z9;
+z10' = z10 + (0.6pt,0); z11 = z9 + (0.8pt,0);
+draw (z8+(0.3pt,0)){left}..z10'..z11;
+z7' = (w-0.7pt,3/4h); z8' = (1/2w,31/32h); z9' = (-1/8w,11/10h);
+pickup pencircle xscaled 0.2pt yscaled 0.4pt;
+draw z7'{dir 60}..{left}z8'{left}...z9'{dir 75};
+endchar;
+
+beginchar(6,0.67stwd#,stht#,stdp#); "The letter ri";
+z1 = (w-0.9pt,3/4h); z2 = (w-0.9pt,1/11h);
+z3 = (5/8w,3/4h); z4 = (5/8w,0); lft z5 = 4/7[z3,z4];
+pickup pencircle scaled penth#; draw z1..z2; draw z3..z4;
+draw z5{dir -45}..{dir -75}z2;
+rt z6 = (5/8w,13/20h); z7 = (1/6w,8/21h);
+pickup pencircle scaled 0.5pt;
+draw z6{z7-z6 rotated -8}..z7;
+z4 + (0,0.2pt) = z4l + (0.15pt,0) = z4r - (0.15pt,0);
+z7 = z7r + (0.2pt,-0.2pt) = z7l - (0.1pt,-0.27pt);
+penstroke z7e{right}.. tension 1.5 .. z4e;
+z8 = (1/2w-0.2pt,3/4h); z9 = (1/4w-0.1pt,31/50h); z10 = (1/10w,18/25h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw z6--z8{dir -150}..{left}z9{left}..{up}z10;
+fill fullcircle scaled 1.2pt shifted (z10 + (0.47pt,0));
+endchar;
+
+beginchar(8,0.65stwd#,stht#,stdp#); "The letter e";
+z1 = (9/20w,2/5h); z2 = (19/25w,3/4h); z3 = (6/7w,2/3h);
+z4 = (6/7w,0pt); z5 = (1/2w,1/6h);
+z6 = (1/5w,1/5h); z7 = (1/8w,3/8h); z8 = (1/6w,1/2h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir 135}..tension 1.2..{right}z2{right}..z3{down}..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw (z4+(0,0.2pt)){up}...{left}z5{left}..z6..{up}z7{up}..z8;
+fill fullcircle scaled 1.4pt shifted (z1 + (0.47pt,0.38pt));
+endchar;
+
+beginchar(9,0.76stwd#,stht#,stdp#); "The letter oi";
+numeric wd; wd = 21/25w;
+z1 = (9/20wd,2/5h); z2 = (19/25wd,3/4h); z3 = (6/7wd,2/3h);
+z4 = (6/7wd,0pt); z5 = (1/2wd,1/6h);
+z6 = (1/5wd,1/5h); z7 = (1/8wd,3/8h); z8 = (1/6wd,1/2h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 45;
+draw z1{dir 135}..tension 1.2..{right}z2{right}..z3{down}..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt;
+draw (z4+(0,0.2pt)){up}...{left}z5{left}..z6..{up}z7{up}..z8;
+fill fullcircle scaled 1.4pt shifted (z1 + (0.47pt,0.38pt));
+z9 = (9/10w,11/14h); z10 = (7/20w,17/16h); z11 = (2/5w,9/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated -30;
+draw 2/7[z3,z4]{right}..z9..{up}z10{up}..z11;
+endchar;
+
+beginchar(10,0.58stwd#,stht#,stdp#); "The letter o";
+numeric wd; wd = w; z1 = (3/10wd,29/50h); z2 = (2/3wd,3/4h);
+z3 = (7/8wd,16/25h); z4 = (18/25wd,9/20h); z5 = (7/8wd,7/25h);
+z6 = (23/40wd,1/12h); z8 = (1/10wd,13/20h); z7 = (9/50wd,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir 75}..{right}z2{right}..{down}z3{down}..{dir -135}z4
+{dir -40}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+fill fullcircle scaled 1.2pt shifted (z1 + (0.39pt,0));
+endchar;
+
+beginchar(11,0.67stwd#,stht#,stdp#); "The letter ou";
+numeric wd;
+wd = 22/25*w; z1 = (3/10wd,3/5h); z2 = (2/3wd,3/4h);
+z3 = (7/8wd,16/25h); z4 = (18/25wd,9/20h); z5 = (7/8wd,7/25h);
+z6 = (23/40wd,1/12h); z8 = (1/10wd,13/20h); z7 = (9/50wd,1/3h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 30;
+draw z1{dir 75}..{right}z2{right}..{down}z3{down}..{dir -135}z4
+{dir -40}..{down}z5{down}..{left}z6{left}..z7..z8;
+fill fullcircle scaled 1.4pt shifted (z4 + (-0.37pt,0));
+fill fullcircle scaled 1.2pt shifted (z1 + (0.39pt,0));
+z9 = (7/8w,4/5h); z10 = (7/20w,17/16h); z11 = (2/5w,9/8h);
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated -30;
+draw (z4 - (0,0.2pt)){dir 30}..z9..{up}z10{up}..z11;
+endchar;
+
+%%% End of bnswar.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/xbnr10.mf b/Master/texmf-dist/fonts/source/public/bengali/xbnr10.mf
new file mode 100644
index 00000000000..73d4aeeb010
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/xbnr10.mf
@@ -0,0 +1,29 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% xbnr10.mf: METAFONT supplemental characters for Bengali (nonslanted)
+% Created by: Anshuman Pandey <apandey@u.washington.edu>
+% Modified: Mar 27 2002
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_size 10pt#;
+u# = 3/9pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 0;
+
+input xbnsupp;
+end;
+
+%%% End of xbnr10.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/xbnsl10.mf b/Master/texmf-dist/fonts/source/public/bengali/xbnsl10.mf
new file mode 100644
index 00000000000..68d3f2e3f91
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/xbnsl10.mf
@@ -0,0 +1,30 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% xbnsl10.mf: METAFONT supplemental characters for Bengali (slanted)
+% Created by: Anshuman Pandey <apandey@u.washington.edu>
+% Modified: Mar 27 2002
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_size 10pt#;
+u# = 3/9pt#;
+s# = 1/3pt#;
+em# := 20pt#; cap# := 20pt#;
+thin# := 1/3pt#; thick# := 5/6pt#;
+o# := 1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+numeric stwd, stht, stdp, penth;
+stwd# = 10pt#; stht# = 8pt#; stdp# = 2pt#;
+penth# = 0.4pt; dflt_pen := savepen;
+currenttransform := identity slanted 1/5;
+font_quad 18u#+2s#;
+font_normal_space 9u#+3s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+numeric slantval; slantval = 1/5;
+
+input xbnsupp;
+end;
+
+%%% End of xbnsl10.mf
diff --git a/Master/texmf-dist/fonts/source/public/bengali/xbnsupp.mf b/Master/texmf-dist/fonts/source/public/bengali/xbnsupp.mf
new file mode 100644
index 00000000000..5d6198930fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bengali/xbnsupp.mf
@@ -0,0 +1,80 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% asextra.mf: METAFONT definitions for Assamese extension characters
+% Created by: Anshuman Pandey <apandey@u.washington.edu>
+% Last modified: Mar 27 2002
+%
+% apandey 2002.03.27 added "Assamese ra" at position 114 "r"
+% apandey 2002.03.27 added "Assamese va" at position 118 "v"
+% apandey 2002.03.27 added "Bengali lig thba" at position 76 "L"
+% apandey 2002.03.27 added "Bengali lig ndba" at position 80 "P"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input bnmacro;
+
+
+% th + ba
+newchar(76,0.48,"th + b");
+ha(1/10w,1/4h+0.2pt,2/3w+0.1pt,3/5h-0.1pt);
+pickup pencircle scaled 0.4pt;
+draw (5/6w,1/4h)..(5/6w,3/4h+0.2pt);
+draw(5/6w,3/4h)..(w,3/4h);
+ba(1/3w,-1/3d,1/2w,33/80h);
+endchar;
+
+
+% n + d + ba
+newchar(80,0.66,"n + d + b");
+matra(w,h);
+na(1/10w,(3/10+1/16)*h,(1/2-1/10)*w,5/16h,0.2);
+da(1/2w,1/5h,1/2w-0.9pt,3/7h,0);
+ba(21/40w+0.03pt,-1/4d,1/3w,8/20h);
+endchar;
+
+
+% Assamese ra
+beginchar(114,0.52stwd#,stht#,stdp#); "The letter Assamese ra"; % "r"
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+rt z8 = (5/6w,1/4h);
+z9 = (1/2w,43/80h);
+%draw (z9+(0,0.1pt))--z8;
+draw z8--z9;
+endchar;
+
+
+% Assamese va
+beginchar(118,0.52stwd#,stht#,stdp#); "The letter Assamese va"; % "v"
+pickup pencircle scaled penth#;
+z1 = (0,3/4h); z2=(w,3/4h);
+draw z1..z2;
+z5 = (w-0.9pt,13/20h);
+z5r = z5 + (0,penth#/2); z5l = z5 - (0,penth#/2);
+z6 = (1/6w,8/21h);
+numeric len; len = 1/2(penth#/(sqrt 2));
+z6l = z6 + (len,-len); z6r = z6 - (len,-len);
+penstroke z5e{z6-z5 rotated -8}..z6e;
+bot z4 = z4l + (0.1pt,0) = z4r - (0.1pt,0) = (w-0.9pt,0);
+z7 - z6 = (0.2pt,-0.2pt);
+z7l = z7 + (len, -len); z7r = z6r;
+penstroke z7e{z4-z7 rotated 120}.. tension 1.5 .. z4e;
+top z3 = (w-0.9pt,3/4h);
+draw z3..z4;
+pickup pencircle xscaled 0.3pt yscaled 0.6pt rotated 50;
+rt z8 = (2/3w,1/11h);
+z9 = (1/4w,1/4h);
+draw (z9+(0,0.1pt))--z8;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncl10.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncl10.mf
new file mode 100644
index 00000000000..da34949c6c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/auncl10.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `auncl10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% AUNCL10.MF Artificial Uncial at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AUNCL"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ asc_height#:=4/3x_height#;
+ desc_depth#:=2/3x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate auncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncl17.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncl17.mf
new file mode 100644
index 00000000000..3f31075350e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/auncl17.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `auncl17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% AUNCL17.MF Artificial Uncial at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AUNCL"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ asc_height#:=4/3x_height#;
+ desc_depth#:=2/3x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate auncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncl7.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncl7.mf
new file mode 100644
index 00000000000..100fe9bf7f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/auncl7.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `auncl7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% AUNCL7.MF Artificial Uncial at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AUNCL"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ asc_height#:=4/3x_height#;
+ desc_depth#:=2/3x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate auncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclb10.mf
new file mode 100644
index 00000000000..fcc1c307bb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclb10.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `aunclb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% AUNCLB10.MF Artificial Uncial Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AUNCLB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/3.5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ asc_height#:=4/3x_height#;
+ desc_depth#:=2/3x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate auncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclb17.mf
new file mode 100644
index 00000000000..ffefdbcdff9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclb17.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `aunclb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% AUNCLB17.MF Artificial Uncial Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AUNCLB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/3.5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ asc_height#:=4/3x_height#;
+ desc_depth#:=2/3x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate auncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclb7.mf
new file mode 100644
index 00000000000..51b47a74464
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclb7.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `aunclb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% AUNCLB7.MF Artificial Uncial Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="AUNCLB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/3.5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ asc_height#:=4/3x_height#;
+ desc_depth#:=2/3x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate auncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncldig.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncldig.mf
new file mode 100644
index 00000000000..fa85d203d38
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/auncldig.mf
@@ -0,0 +1,224 @@
+%%
+%% This is file `auncldig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "AUncial digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w/2;
+y1=h; bot y2=0;
+%%ductus:=true;
+draw_tlserif(1,2,srad);
+draw_tail(2,jut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "AUncial digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; y1=3/4h;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx; y3=3/4h;
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_fork(5,6,jut); % foot
+draw z1{up}..z2{right}..z3{down}..{down}z5; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "AUncial digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+lft x6=pcshiftx; x7=x6;
+y3=1/4h; y10=3/4h;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y4,y6];
+y8=0.5[y7,y9];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z3{down}..z4{right}..z5{up}...{left}z6; % bottom bowl
+draw z7{right}...z8{up}..z9{left}..{down}z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "AUncial digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-jut;
+y1=h; bot y2=0;
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % main stem
+draw_wave(3,4,thin); % crossbar
+draw z3wl--z1; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "AUncial digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx; y2=y1;
+x3=x2; y3=0.5h+thin;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=w/2; bot y6=0;
+lft x7=pcshiftx; bot y7=2thin;
+x8=w-pcshiftx; y8=h-0.5thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw_wave(2,1,thin); % top squiggle
+draw z2--z1; % top bar
+draw_rtriangle(8,3/4jut);
+draw z3{pdir}..z5{down}..z6{left}..z7; % curve
+draw z2--z3; % vertical
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "AUncial digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+x8=w-pcshiftx; y8=h-0.5thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6;
+draw_rtriangle(8,3/4jut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,8,100);
+endchar; % end "6"
+
+cmchar "AUncial digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x8=pcshiftx+3/8jut; y8=h-0.5thin;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % top bar
+draw_triangle(8,3/4jut);
+draw z2..z3..z4; % leg
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "7"
+
+cmchar "AUncial digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "AUncial digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "Uncial digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncll.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncll.mf
new file mode 100644
index 00000000000..132d2973fa0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/auncll.mf
@@ -0,0 +1,640 @@
+%%
+%% This is file `auncll.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "AUncial letter a";
+beginchar("a", 2u#+hstretch*(x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+2jut; rt x2=w-u-jut;
+top y1=h; bot y2=0;
+z3=3/4[z2,z1];
+x5=lft x3; y5=bot y3;
+z13=1/2[z2,z1];
+x15=lft x13; y15=bot y13;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % the stem
+pickup thickstylus; % for the bowl
+lft x4=pcshiftx; bot y4=0;
+z14=0.2[z4,z5];
+draw z14{pdir}...{z5-z4}z15; % bowl bottom
+draw z5--z4; % bowl top
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,15,100);
+endchar; % end "a"
+
+cmchar "AUncial letter b";
+beginchar("b", 2u#+hstretch*(x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+rt x4=w-pcshiftx; y4=1/3h;
+lft x5=rt x1+2thin; y5=2/3h;
+z6=z1;
+rt x7=0.67[x1,x4]; y7=y6;
+x9=rt x7-thin; y9=h-thin;
+x8=lft x5+thin; y8=bot y5+thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % the stem
+draw z2{right}..z4{up}..{left}z5; % bottom bowl
+draw z6--z7; % top bowl
+pickup stylus;
+draw z9--z8;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "AUncial letter c";
+beginchar("c", 2u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.1h;
+top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6;
+pickup stylus;
+rt x16=w-pcshiftx; top y16=y6';
+x17=x6; y17=y16-jut;
+lft x18=x6''; bot y18=y6'';
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6;
+pickup stylus;
+filldraw z17..z18--z16--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,16,17,18,100);
+endchar; % end "c"
+
+cmchar "AUncial letter d";
+beginchar("d", 2u#+hstretch*(4/3x_height#), 4/3x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx;
+x2=x4=w/2; top y2=3/4h; bot y4=0;
+y1=y3=0.5[y4,y2];
+lft x5=pcshiftx; top y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z2{-pdir}..z1{down}..z4{right}..z3{up}..z5;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "AUncial letter e";
+beginchar("e", 2u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.1h;
+top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6;
+pickup stylus;
+rt x16=w-pcshiftx; top y16=y6';
+x17=x6; y17=y16-jut;
+lft x18=x6''; bot y18=y6'';
+pickup quill;
+x7=x1; y7=y1;
+x8=w-pcshiftx; y8=y7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl
+pickup stylus;
+filldraw z17..z18--z16--cycle; % the serif
+draw_fork(7,8,jut); % the bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,100);
+endchar; % end "e"
+
+cmchar "AUncial letter f";
+beginchar("f", 2u#+hstretch*(x_height#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-d/2;
+x3=x4=x1; y3=y1; bot y4=0;
+rt x5= rt x6=w-pcshiftx; y5=y3; y6=y4;
+x15=x16=rt x5-1/2thin;
+y15=y5; y16=y6;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % stem
+draw_tail(2,jut);
+draw z3--z5; % top bar
+draw_rtriangle(15,jut);
+draw z4--z6; % bottom bar
+draw_rtriangle(16,jut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "f"
+
+cmchar "AUncial letter g";
+beginchar("g", 2u#+hstretch*(x_height#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.1h;
+top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6;
+pickup stylus;
+rt x16=w-pcshiftx; top y16=y6';
+x17=x6; y17=y16-jut;
+lft x18=x6''; bot y18=y6'';
+pickup quill;
+x7=rt x5-1/2thin; y7=top y5-1/2thin;
+pickup stylus;
+lft x8=w/2; bot y8=-d;
+pickup quill;
+pair vec[]; vec1:=z7-z8; vec2:=z8-z7;
+y21=y8+3/2thick; z21=whatever[z8,z7];
+y22=y8+ thick; z22=whatever[z8,z7];
+x23=x8-thick; y23=y8;
+x24=x23+1/2thick; y24=y23+1/2thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl
+pickup stylus;
+filldraw z17..z18--z16--cycle; % the serif
+draw z7--z22; % the stem
+filldraw z22{vec2}..{left}z23--z24{right}..{vec1}z21--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,16,17,18,21,22,23,24,100);
+endchar; % end "g"
+
+cmchar "AUncial letter h";
+beginchar("h", 2u#+hstretch*(x_height#+jut#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+rt x5=w-pcshiftx; y5=3/8h;
+lft x6=2/3w; bot y6=0;
+x4=0.5[x1,x5]; top y4=3/4h;
+x4'=0.5[x4,x1]; y4'=y4;
+z4''=z4' shifted (-w*pdir);
+z3'=whatever[z4',z4'']=whatever[z1,z2];
+x3=rt x3'; y3=y3';
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % stem
+draw z3{pdir}..z4{right}..z5{down}..z6; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "AUncial letter i";
+beginchar("i", 2u#+hstretch*(thick#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tlserif(1,2,srad);
+draw_tail(2,jut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "AUncial letter j";
+beginchar("j", 2u#+hstretch*(thick#+jut#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-1/2d;
+%%ductus:=true;
+draw_tlserif(1,2,srad);
+draw_tail(2,jut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "j"
+
+cmchar "AUncial letter k";
+beginchar("k", 2u#+hstretch*(4/3x_height#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+numeric rise,fall,fjut;
+x3=rt x1; y3=5/8h;
+rise:=1/6h; fall:=-rise/2; fjut:=1/2w;
+%%x4=x1; y4=y3;
+z4=z3;
+x5=w-pcshiftx-jut; y5=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % stem
+draw_tail(2,jut);
+draw_flick(3,rise,fall,fjut); % upper diag
+draw_tstem(4,5,srad); % lower diag
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "k"
+
+cmchar "AUncial letter l";
+beginchar("l", 2u#+hstretch*(x_height#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+z3=z2;
+x4=w-u; y4=0;
+%%ductus:=true;
+draw_tlserif(1,2,srad); % the stem
+draw_fork(3,4,jut); % the foot
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "AUncial letter m";
+beginchar("m", 2u#+hstretch*(2x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=1/4w; bot y1=0;
+lft x2= pcshiftx; y2=h/2;
+x4=w/2; y4=2/3h;
+x3=0.5[x2,x4]; top y3=h;
+x5=x4; y5=y1;
+z6=z4;
+x7=3/4w; top y7=h;
+rt x8=w-pcshiftx; y8=y2;
+lft x9=3/4w; y9=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{up}..z3{right}..{down}z4; % left half
+draw_tstem(4,5,srad); % middle stem
+draw z6..z7{right}..z8{down}..{-pdir}z9; % right half
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "m"
+
+cmchar "AUncial letter n";
+beginchar("n", 2u#+hstretch*(2jut#+x_height#), x_height#, 0.5desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+rt x4=w-pcshiftx-jut; y4=y1;
+x3=x4; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % left stem
+draw_tail(2,jut);
+draw_istem(4,3,srad); % right stem
+draw z1--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "n"
+
+cmchar "AUncial letter o";
+beginchar("o", 2u#+hstretch*(7/6x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "o"
+
+cmchar "AUncial letter p";
+beginchar("p", 2u#+hstretch*(7/6x_height#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=-1/2d;
+z3=z1;
+rt x5=w-pcshiftx; y5=1/2h;
+lft x7=rt x1; bot y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % stem
+draw_tail(2,jut);
+draw z3{pdir}..z5{down}..{-pdir}z7; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "p"
+
+cmchar "AUncial letter q";
+beginchar("q", 2u#+hstretch*(7/6x_height#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=rt x2=w-pcshiftx; top y1=h; bot y2=-1/2d;
+z3=z1;
+lft x5=pcshiftx; y5=1/2h;
+rt x7=lft x1; y7=0.1h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % right stem
+draw_tail(2,jut);
+draw z3{left}..z5{down}..{pdir}z7; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "q"
+
+cmchar "AUncial letter r";
+beginchar("r", 2u#+hstretch*(4/3x_height#), x_height#, 1/2desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=0;
+lft x3=rt x1-thin; y3=y1;
+rt x5=3/4w; y5=3/4h;
+lft x7=rt x1; bot y7=1/3h;
+z8=z7;
+rt x9=w-pcshiftx; bot y9=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % stem
+draw_tail(2,jut);
+draw z3{pdir}..z5{down}..{-pdir}z7; % bowl
+draw z8{-ppdir}..{right}z9; % leg
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "AUncial letter s";
+beginchar("s", 2u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-thin;
+x2=w/2; top y2=h;
+lft x3=pcshiftx; y3=0.75h;
+x4=w/2; y4=h/2;
+rt x5=w-pcshiftx; y5=0.25h;
+x6=w/2; bot y6=0;
+lft x7= pcshiftx; bot y7 = thin;
+path p[];
+p1=z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7;
+pair vec[];
+vec1= direction 0 of p1;
+vec2= direction (length p1) of p1;
+z11=z1 shifted vec1;
+z17=z7 shifted -vec2;
+y6'=top y1; y6''=bot y1; x6''=lft x1;
+pickup stylus;
+rt x26=w-pcshiftx; top y26=y6';
+x27=x1; y27=y26-0.75jut;
+lft x28=x6''; bot y28=y6'';
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw_serif(1,11,srad);
+%%draw_serif(7,17,srad);
+%%draw z1a..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7a;
+draw p1; % the curve
+pickup stylus;
+filldraw z27..z28--z26--cycle; % the serif
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100);
+endchar; % end "s"
+
+cmchar "AUncial letter t";
+beginchar("t", 2u#+hstretch*(4/3x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=0.5jut;
+pickup quill;
+x1=x2=w/2;
+top y1=h; bot y2=0;
+lft x3=pcshiftx; rt x4=w-pcshiftx; y3=y4=y1;
+x5=pcshiftx+alpha; y5=h-1/2thin;
+x6=w-pcshiftx-1/2thin; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z3--z4; % top bar
+draw_triangle(5,2alpha); draw_rtriangle(6,2alpha);
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "t"
+
+cmchar "AUncial letter u";
+beginchar("u", 2u#+hstretch*(4/3x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x6=pcshiftx+jut;
+top y6=h-2thin;
+lft x7=pcshiftx; y7=h/2;
+x8=0.5[x6,x1]; bot y8=0;
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=0;
+x5=0.5[x8,x1]; y5=y8;
+z5'=z5 shifted (w*pdir);
+path p[];
+p1=z5--z5';
+p2=z1--z2;
+z9= p2 intersectionpoint p1;
+pair vec[];
+p3=z6..z7{down}..{right}z8;
+vec3 = direction 0 of p3;
+z16=z6 shifted vec3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_serif(6,16,srad); % left half
+draw z6a..z7{down}..z8{right}..{pdir}z9;
+draw_istem(1,2,srad); % right stem
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "u"
+
+cmchar "AUncial letter v";
+beginchar("v", 2u#+hstretch*(7/6x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+numeric midx; midx:= pcshiftx;
+lft x1=midx+jut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-thick; y5=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad);
+draw z2{down}..z3{right}..z4{up}..z5;
+ductus:=false;
+penlabels(1,2,3,4,5,11,100);
+endchar; % end "v"
+
+cmchar "AUncial letter w";
+beginchar("w", 2u#+hstretch*(2x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+numeric midx; midx:= w/2-jut;
+lft x1=midx+jut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-thick; y5=y1;
+lft x6=pcshiftx+jut;
+top y6=h-2thin;
+lft x7=pcshiftx; y7=y2;
+x8=0.5[x7,x1]; y8=y3;
+x15=0.5[x8,x1]; y15=y8;
+z15'=z15 shifted (w*pdir);
+x2'=x2; y2'=y15;
+path p[];
+p1=z1--z2';
+p2=z15--z15';
+z9= p2 intersectionpoint p1;
+pair vec[];
+p3=z6..z7{down}..{right}z8;
+vec3 = direction 0 of p3;
+z16=z6 shifted vec3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % right half
+draw z2{down}..z3{right}..z4{up}..z5;
+draw_serif(6,16,srad); % left half
+draw z6a..z7{down}..z8{right}..z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "w"
+
+cmchar "AUncial letter x";
+beginchar("x", 2u#+hstretch*(4/3x_height#+jut#), x_height#, 1/2desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; rt x2=w-pcshiftx-jut;
+y1=h; y2=0;
+lft x3=pcshiftx; bot y3=-d;
+rt x5=w-pcshiftx; top y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % thick diagonal
+draw z3..{pdir}z5; % thin diagonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "x"
+
+cmchar "AUncial letter y";
+beginchar("y", 2u#+hstretch*(4/3x_height#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+rt x2=3/4w; top y2=0;
+pickup stylus;
+rt x3=w-pcshiftx; top y3=h;
+lft x4=pcshiftx; bot y4=-d;
+x5=x3-3thin; y5=y3;
+x7=x2-3/2thin; y7=y2;
+pickup quill;
+x8=w/2; y8=h+jut;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % left stroke
+draw_pdot(8,dot_size); % the dot
+pickup stylus;
+filldraw z3..z2..z4 & z4..z7..z5--cycle; % right stroke
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "AUncial letter z";
+beginchar("z", 2u#+hstretch*(7/6x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x4=pcshiftx; bot y4=0;
+x6=w-pcshiftx; y6=0;
+x1=x4; top y1=h;
+rt x3=6/7w; y3=y1;
+x11=pcshiftx+0.5jut; y11=h-thin/2; % y11=h-thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z3; % top stroke
+draw_triangle(11,jut);
+draw_fork(4,6,jut);
+draw z4--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncllig.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncllig.mf
new file mode 100644
index 00000000000..ce4509ce88c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/auncllig.mf
@@ -0,0 +1,133 @@
+%%
+%% This is file `auncllig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+
+cmchar "Uncial closing quotes";
+beginchar(oct"042",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Uncial opening quotes";
+beginchar(oct"134",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Uncial hyphen";
+beginchar("-",u#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+x11=lft x1+alpha/2; y11=top y1-0.5thin;
+x12=rt x2; y12=bot y1+0.5thin;
+draw z1--z2; % bar
+draw_triangle(11,alpha);
+draw_rutriangle(12,alpha);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "Uncial en dash";
+beginchar(oct"173",u#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+x11=lft x1+alpha/2; y11=top y1-0.5thin;
+x12=rt x2; y12=bot y1+0.5thin;
+draw z1--z2; % bar
+draw_triangle(11,alpha);
+draw_rutriangle(12,alpha);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Uncial em dash";
+beginchar(oct"174",u#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+x11=lft x1+alpha/2; y11=top y1-0.5thin;
+x12=rt x2; y12=bot y1+0.5thin;
+draw z1--z2; % bar
+draw_triangle(11,alpha);
+draw_rutriangle(12,alpha);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "Uncial ampersand";
+beginchar("&", 2u#+hstretch*(7/4x_height#), x_height#, 0.5desc_depth#);
+adjust_fit(0,0);
+pcshiftx:=u;
+numeric alpha; alpha:=4/7w-u;
+pickup quill;
+lft x1=pcshiftx; rt x3= alpha; y1=y3=h/2;
+x2=x4=alpha/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.1h;
+top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6;
+pickup stylus;
+rt x16=alpha; top y16=y6';
+x17=x6; y17=y16-jut;
+lft x18=x6''; bot y18=y6'';
+pickup quill;
+x7=x1; y7=y1;
+x8=w-pcshiftx; y8=y7;
+lft x31=alpha+2thin; y31=y8;
+x32=x31; bot y32=-d;
+x33=rt x8-0.5thin; y33=top y31-0.5thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl
+draw_tstem(31,32,srad); % t stem
+draw z7--z8; % the (top) bar
+draw_rtriangle(33,jut); % t bar serif
+pickup stylus;
+filldraw z17..z18--z16--cycle; % e serif
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,31,32,33);
+endchar; % end of "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclpunct.mf
new file mode 100644
index 00000000000..549f22c6c1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclpunct.mf
@@ -0,0 +1,78 @@
+%%
+%% This is file `aunclpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Uncial Comma";
+beginchar(",",2u#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h/2;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Uncial Period";
+beginchar(".",2u#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=u;
+x1=w/2; y1=h/2;
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Uncial Colon";
+beginchar(":",2u#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=u;
+x1=x2=w/2; y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Uncial Semicolon";
+beginchar(";",2u#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Uncial Apostrophe";
+beginchar("'",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Uncial Reverse apostrophe";
+beginchar("`",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/auncltitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/auncltitle.mf
new file mode 100644
index 00000000000..ea38860657e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/auncltitle.mf
@@ -0,0 +1,271 @@
+%%
+%% This is file `auncltitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def auncial_font_setup= % contains special stuff for auncial fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,cap_jut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of auncial_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+ draw_serif($$, $, fr); % the serif
+ draw z$--z$$a; % the stem
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$u--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+auncial_font_setup;
+
+
+input auncll; % minuscules (lower case)
+input aunclu; % majuscules (capitals)
+input aunclpunct; % punctuation
+input auncllig; % the several dashes
+input auncldig; % arabic digits
+%%%input aunclp; % ampersand and ?mark
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+%% ligtable "P": "T": "Y": "A" kern kk#;
+%% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi,
+%% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+%% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+%% "V" kern k#, "Y" kern k#;
+%% ligtable "A": if serifs: "R": fi
+%% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+%% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+%%ligtable "I": "I" kern -k#; % Richard III
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/aunclu.mf b/Master/texmf-dist/fonts/source/public/bookhands/aunclu.mf
new file mode 100644
index 00000000000..583283202ec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/aunclu.mf
@@ -0,0 +1,646 @@
+%%
+%% This is file `aunclu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% auncial.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "AUncial letter A";
+beginchar("A", 2u#+hstretch*caprat*(x_height#+jut#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+2jut; rt x2=w-u-jut;
+top y1=h; bot y2=0;
+z3=3/4[z2,z1];
+x5=lft x3; y5=bot y3;
+z13=1/2[z2,z1];
+x15=lft x13; y15=bot y13;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % the stem
+pickup thickstylus; % for the bowl
+lft x4=pcshiftx; bot y4=0;
+z14=0.2[z4,z5];
+draw z14{pdir}...{z5-z4}z15; % bowl bottom
+draw z5--z4; % bowl top
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,15,100);
+endchar; % end "A"
+
+cmchar "AUncial letter B";
+beginchar("B", 2u#+hstretch*caprat*(x_height#+jut#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+rt x4=w-pcshiftx; y4=1/3h;
+lft x5=rt x1+2thin; y5=2/3h;
+z6=z1;
+rt x7=0.67[x1,x4]; y7=y6;
+x9=rt x7-thin; y9=h-thin;
+x8=lft x5+thin; y8=bot y5+thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % the stem
+draw z2{right}..z4{up}..{left}z5; % bottom bowl
+draw z6--z7; % top bowl
+pickup stylus;
+draw z9--z8;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "B"
+
+cmchar "AUncial letter C";
+beginchar("C", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.1h;
+top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6;
+pickup stylus;
+rt x16=w-pcshiftx; top y16=y6';
+x17=x6; y17=y16-jut;
+lft x18=x6''; bot y18=y6'';
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6;
+pickup stylus;
+filldraw z17..z18--z16--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,16,17,18,100);
+endchar; % end "C"
+
+cmchar "AUncial letter D";
+beginchar("D", 2u#+hstretch*caprat*(4/3x_height#), caprat*(4/3x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx;
+x2=x4=w/2; top y2=3/4h; bot y4=0;
+y1=y3=0.5[y4,y2];
+lft x5=pcshiftx; top y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z2{-pdir}..z1{down}..z4{right}..z3{up}..z5;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "D"
+
+cmchar "AUncial letter E";
+beginchar("E", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.1h;
+top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6;
+pickup stylus;
+rt x16=w-pcshiftx; top y16=y6';
+x17=x6; y17=y16-jut;
+lft x18=x6''; bot y18=y6'';
+pickup quill;
+x7=x1; y7=y1;
+x8=w-pcshiftx; y8=y7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl
+pickup stylus;
+filldraw z17..z18--z16--cycle; % the serif
+draw_fork(7,8,jut); % the bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,100);
+endchar; % end "E"
+
+cmchar "AUncial letter F";
+beginchar("F", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#),
+ caprat*(desc_depth#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-d/2;
+x3=x4=x1; y3=y1; bot y4=0;
+rt x5= rt x6=w-pcshiftx; y5=y3; y6=y4;
+x15=x16=rt x5-1/2thin;
+y15=y5; y16=y6;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % stem
+draw_tail(2,jut);
+draw z3--z5; % top bar
+draw_rtriangle(15,jut);
+draw z4--z6; % bottom bar
+draw_rtriangle(16,jut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "F"
+
+cmchar "AUncial letter G";
+beginchar("G", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#),
+ caprat*(desc_depth#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.1h;
+top y6=0.95h; y6'=top y6; y6''=bot y6; x6''=lft x6;
+pickup stylus;
+rt x16=w-pcshiftx; top y16=y6';
+x17=x6; y17=y16-jut;
+lft x18=x6''; bot y18=y6'';
+pickup quill;
+x7=rt x5-1/2thin; y7=top y5-1/2thin;
+pickup stylus;
+lft x8=w/2; bot y8=-d;
+pickup quill;
+pair vec[]; vec1:=z7-z8; vec2:=z8-z7;
+y21=y8+3/2thick; z21=whatever[z8,z7];
+y22=y8+ thick; z22=whatever[z8,z7];
+x23=x8-thick; y23=y8;
+x24=x23+1/2thick; y24=y23+1/2thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl
+pickup stylus;
+filldraw z17..z18--z16--cycle; % the serif
+draw z7--z22; % the stem
+filldraw z22{vec2}..{left}z23--z24{right}..{vec1}z21--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,16,17,18,21,22,23,24,100);
+endchar; % end "G"
+
+cmchar "AUncial letter H";
+beginchar("H", 2u#+hstretch*caprat*(x_height#+jut#), caprat*(asc_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+rt x5=w-pcshiftx; y5=3/8h;
+lft x6=2/3w; bot y6=0;
+x4=0.5[x1,x5]; top y4=3/4h;
+x4'=0.5[x4,x1]; y4'=y4;
+z4''=z4' shifted (-w*pdir);
+z3'=whatever[z4',z4'']=whatever[z1,z2];
+x3=rt x3'; y3=y3';
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % stem
+draw z3{pdir}..z4{right}..z5{down}..z6; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "H"
+
+cmchar "AUncial letter I";
+beginchar("I", 2u#+hstretch*(thick#+jut#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tlserif(1,2,srad);
+draw_tail(2,jut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "I"
+
+cmchar "AUncial letter J";
+beginchar("J", 2u#+hstretch*(thick#+jut#), caprat*(x_height#),
+ caprat*(desc_depth#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-1/2d;
+%%ductus:=true;
+draw_tlserif(1,2,srad);
+draw_tail(2,jut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "J"
+
+cmchar "AUncial letter K";
+beginchar("K", 2u#+hstretch*caprat*(4/3x_height#), caprat*(asc_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+numeric rise,fall,fjut;
+x3=rt x1; y3=5/8h;
+rise:=1/6h; fall:=-rise/2; fjut:=1/2w;
+%%x4=x1; y4=y3;
+z4=z3;
+x5=w-pcshiftx-jut; y5=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % stem
+draw_tail(2,jut);
+draw_flick(3,rise,fall,fjut); % upper diag
+draw_tstem(4,5,srad); % lower diag
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "K"
+
+cmchar "AUncial letter L";
+beginchar("L", 2u#+hstretch*caprat*(x_height#), caprat*(asc_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+z3=z2;
+x4=w-u; y4=0;
+%%ductus:=true;
+draw_tlserif(1,2,srad); % the stem
+draw_fork(3,4,jut); % the foot
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "L"
+
+cmchar "AUncial letter M";
+beginchar("M", 2u#+hstretch*caprat*(2x_height#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=1/4w; bot y1=0;
+lft x2= pcshiftx; y2=h/2;
+x4=w/2; y4=2/3h;
+x3=0.5[x2,x4]; top y3=h;
+x5=x4; y5=y1;
+z6=z4;
+x7=3/4w; top y7=h;
+rt x8=w-pcshiftx; y8=y2;
+lft x9=3/4w; y9=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{up}..z3{right}..{down}z4; % left half
+draw_tstem(4,5,srad); % middle stem
+draw z6..z7{right}..z8{down}..{-pdir}z9; % right half
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "M"
+
+cmchar "AUncial letter N";
+beginchar("N", 2u#+hstretch*caprat*(2jut#+x_height#), caprat*(x_height#),
+ caprat*(0.5desc_depth#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+rt x4=w-pcshiftx-jut; y4=y1;
+x3=x4; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % left stem
+draw_tail(2,jut);
+draw_istem(4,3,srad); % right stem
+draw z1--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "N"
+
+cmchar "AUncial letter O";
+beginchar("O", 2u#+hstretch*caprat*(7/6x_height#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "O"
+
+cmchar "AUncial letter P";
+beginchar("P", 2u#+hstretch*caprat*(7/6x_height#), caprat*(x_height#),
+ caprat*(desc_depth#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=-1/2d;
+z3=z1;
+rt x5=w-pcshiftx; y5=1/2h;
+lft x7=rt x1; bot y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % stem
+draw_tail(2,jut);
+draw z3{pdir}..z5{down}..{-pdir}z7; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "P"
+
+cmchar "AUncial letter Q";
+beginchar("Q", 2u#+hstretch*caprat*(7/6x_height#), caprat*(x_height#),
+ caprat*(desc_depth#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=rt x2=w-pcshiftx; top y1=h; bot y2=-1/2d;
+z3=z1;
+lft x5=pcshiftx; y5=1/2h;
+rt x7=lft x1; y7=0.1h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % right stem
+draw_tail(2,jut);
+draw z3{left}..z5{down}..{pdir}z7; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "Q"
+
+cmchar "AUncial letter R";
+beginchar("R", 2u#+hstretch*caprat*(4/3x_height#), caprat*(x_height#),
+ caprat*(1/2desc_depth#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=0;
+lft x3=rt x1-thin; y3=y1;
+rt x5=3/4w; y5=3/4h;
+lft x7=rt x1; bot y7=1/3h;
+z8=z7;
+rt x9=w-pcshiftx; bot y9=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % stem
+draw_tail(2,jut);
+draw z3{pdir}..z5{down}..{-pdir}z7; % bowl
+draw z8{-ppdir}..{right}z9; % leg
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "R"
+
+cmchar "AUncial letter S";
+beginchar("S", 2u#+hstretch*caprat*(x_height#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-thin;
+x2=w/2; top y2=h;
+lft x3=pcshiftx; y3=0.75h;
+x4=w/2; y4=h/2;
+rt x5=w-pcshiftx; y5=0.25h;
+x6=w/2; bot y6=0;
+lft x7= pcshiftx; bot y7 = thin;
+path p[];
+p1=z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7;
+pair vec[];
+vec1= direction 0 of p1;
+vec2= direction (length p1) of p1;
+z11=z1 shifted vec1;
+z17=z7 shifted -vec2;
+y6'=top y1; y6''=bot y1; x6''=lft x1;
+pickup stylus;
+rt x26=w-pcshiftx; top y26=y6';
+x27=x1; y27=y26-0.75jut;
+lft x28=x6''; bot y28=y6'';
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw p1; % the curve
+pickup stylus;
+filldraw z27..z28--z26--cycle; % the serif
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100);
+endchar; % end "S"
+
+cmchar "AUncial letter T";
+beginchar("T", 2u#+hstretch*caprat*(4/3x_height#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=0.5jut;
+pickup quill;
+x1=x2=w/2;
+top y1=h; bot y2=0;
+lft x3=pcshiftx; rt x4=w-pcshiftx; y3=y4=y1;
+x5=pcshiftx+alpha; y5=h-1/2thin;
+x6=w-pcshiftx-1/2thin; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z3--z4; % top bar
+draw_triangle(5,2alpha); draw_rtriangle(6,2alpha);
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "T"
+
+cmchar "AUncial letter U";
+beginchar("U", 2u#+hstretch*caprat*(4/3x_height#+jut#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x6=pcshiftx+jut;
+top y6=h-2thin;
+lft x7=pcshiftx; y7=h/2;
+x8=0.5[x6,x1]; bot y8=0;
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=0;
+x5=0.5[x8,x1]; y5=y8;
+z5'=z5 shifted (w*pdir);
+path p[];
+p1=z5--z5';
+p2=z1--z2;
+z9= p2 intersectionpoint p1;
+pair vec[];
+p3=z6..z7{down}..{right}z8;
+vec3 = direction 0 of p3;
+z16=z6 shifted vec3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_serif(6,16,srad); % left half
+draw z6a..z7{down}..z8{right}..{pdir}z9;
+draw_istem(1,2,srad); % right stem
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "U"
+
+cmchar "AUncial letter V";
+beginchar("V", 2u#+hstretch*caprat*(7/6x_height#+jut#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+numeric midx; midx:= pcshiftx;
+lft x1=midx+jut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-thick; y5=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad);
+draw z2{down}..z3{right}..z4{up}..z5;
+ductus:=false;
+penlabels(1,2,3,4,5,11,100);
+endchar; % end "V"
+
+cmchar "AUncial letter W";
+beginchar("W", 2u#+hstretch*caprat*(2x_height#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+numeric midx; midx:= w/2-jut;
+lft x1=midx+jut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-thick; y5=y1;
+lft x6=pcshiftx+jut;
+top y6=h-2thin;
+lft x7=pcshiftx; y7=y2;
+x8=0.5[x7,x1]; y8=y3;
+x15=0.5[x8,x1]; y15=y8;
+z15'=z15 shifted (w*pdir);
+x2'=x2; y2'=y15;
+path p[];
+p1=z1--z2';
+p2=z15--z15';
+z9= p2 intersectionpoint p1;
+pair vec[];
+p3=z6..z7{down}..{right}z8;
+vec3 = direction 0 of p3;
+z16=z6 shifted vec3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % right half
+draw z2{down}..z3{right}..z4{up}..z5;
+draw_serif(6,16,srad); % left half
+draw z6a..z7{down}..z8{right}..z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "W"
+
+cmchar "AUncial letter X";
+beginchar("X", 2u#+hstretch*caprat*(4/3x_height#+jut#), caprat*(x_height#),
+ caprat*(1/2desc_depth#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; rt x2=w-pcshiftx-jut;
+y1=h; y2=0;
+lft x3=pcshiftx; bot y3=-d;
+rt x5=w-pcshiftx; top y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % thick diagonal
+draw z3..{pdir}z5; % thin diagonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "X"
+
+cmchar "AUncial letter Y";
+beginchar("Y", 2u#+hstretch*caprat*(4/3x_height#), caprat*(x_height#),
+ caprat*(desc_depth#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+rt x2=3/4w; top y2=0;
+pickup stylus;
+rt x3=w-pcshiftx; top y3=h;
+lft x4=pcshiftx; bot y4=-d;
+x5=x3-3thin; y5=y3;
+x7=x2-3/2thin; y7=y2;
+pickup quill;
+x8=w/2; y8=h+jut;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % left stroke
+draw_pdot(8,dot_size); % the dot
+pickup stylus;
+filldraw z3..z2..z4 & z4..z7..z5--cycle; % right stroke
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "AUncial letter Z";
+beginchar("Z", 2u#+hstretch*caprat*(7/6x_height#), caprat*(x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x4=pcshiftx; bot y4=0;
+x6=w-pcshiftx; y6=0;
+x1=x4; top y1=h;
+rt x3=6/7w; y3=y1;
+x11=pcshiftx+0.5jut; y11=h-thin/2; % y11=h-thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z3; % top stroke
+draw_triangle(11,jut);
+draw_fork(4,6,jut);
+draw z4--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cmin10.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmin10.mf
new file mode 100644
index 00000000000..700d4934f04
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cmin10.mf
@@ -0,0 +1,79 @@
+%%
+%% This is file `cmin10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% CMIN10.MF Carolingian Minuscule at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMIN"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=3/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate cmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cmin17.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmin17.mf
new file mode 100644
index 00000000000..e171160b114
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cmin17.mf
@@ -0,0 +1,79 @@
+%%
+%% This is file `cmin17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% CMIN17.MF Carolingian Minuscule at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMIN"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=3/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate cmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cmin7.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmin7.mf
new file mode 100644
index 00000000000..a188e5aa612
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cmin7.mf
@@ -0,0 +1,79 @@
+%%
+%% This is file `cmin7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% CMIN7.MF Carolingian Minuscule at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMIN"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=3/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate cmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminb10.mf
new file mode 100644
index 00000000000..04f6f3b27a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cminb10.mf
@@ -0,0 +1,79 @@
+%%
+%% This is file `cminb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% CMINB10.MF Carolingian Minuscule Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMINB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=3/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate cmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminb17.mf
new file mode 100644
index 00000000000..05588cd7599
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cminb17.mf
@@ -0,0 +1,79 @@
+%%
+%% This is file `cminb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% CMINB17.MF Carolingian Minuscule Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMINB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=3/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate cmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminb7.mf
new file mode 100644
index 00000000000..90a6dc48e8f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cminb7.mf
@@ -0,0 +1,79 @@
+%%
+%% This is file `cminb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% CMINB7.MF Carolingian Minuscule Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMINB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=3/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate cmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cmindig.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmindig.mf
new file mode 100644
index 00000000000..3219a982757
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cmindig.mf
@@ -0,0 +1,223 @@
+%%
+%% This is file `cmindig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "Carolingian digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "Carolingian digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+o; top y1=h-2thin;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx-o; y3=3/4h;
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(5,6,thin); % foot
+draw z1..z2{right}..z3{down}..{-pdir}z5wl; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "Carolingian digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+%%lft x6=pcshiftx+3thin; x7=x6;
+x6=1/2[x3,x9]; x7=x6;
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl
+draw z7{right}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "Carolingian digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-jut;
+y1=h; bot y2=0;
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % main stem
+draw_wave(3,4,thin); % crossbar
+draw z3wl--z1; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "Carolingian digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx; y2=y1;
+x3=x2; y3=0.5h+thin;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=w/2; bot y6=0;
+lft x7=pcshiftx; bot y7=2thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(2,1,thin); % top squiggle
+draw z3{pdir}..z5{down}..z6{left}..z7; % curve
+draw z2wl--z3; % vertical
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "Carolingian digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "6"
+
+cmchar "Carolingian digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,2,thin); % top bar
+draw z1wr..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "Carolingian digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "Carolingian digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "Carolingian digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminl.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminl.mf
new file mode 100644
index 00000000000..c19f9968f83
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cminl.mf
@@ -0,0 +1,787 @@
+%%
+%% This is file `cminl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "CMIN letter a";
+beginchar("a", 2sb#+hstretch*(3/4x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+n1 := w - 2pcshiftx -jut; % effective letter width
+x1 = pcshiftx + 6/8n1; top y1=h;
+rt x2 = pcshiftx + n1; bot y2=0;
+z16 = 1/6[z2,z1];
+rt x6 = x16; y6=y16;
+lft x4 = pcshiftx; y4 = 1/2h;
+pth1 := z1{down}..z2;
+pr1 := direction 1 of pth1;
+z20 = z2 shifted -10pr1;
+
+z11 = point 3/13 of pth1; z15 = point 10/13 of pth1;
+lft x13 = pcshiftx; y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+else:
+ % draw stem
+ draw pth1;
+ draw_roundserif(1,2,srad);
+ draw_roundserif(2,20,srad);
+ % draw bowl
+%% draw z1{-pdir}..z4{down}..z6{pdir};
+ draw z11{-pdir}..z13{down}..z15{pdir};
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+cmchar "CMIN letter b";
+beginchar("b", 2sb#+hstretch*(3/4x_height#+clubjut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx+clubjut; top y1=h;
+x3 = x1; y3=1/2n2;
+rt x5 = w-pcshiftx; y5=y3;
+x4 = 1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=n2;
+pth1 := z1..z3{down}..z4{right}.. z5{up};
+z98=(0,3/4n2); z99=(w,y98);
+pth2 := z98--z99;
+z7 = pth1 intersectionpoint pth2;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir};
+draw_clubserif(1,3,0.75);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "CMIN letter c";
+beginchar("c", 2sb#+hstretch*(5/8x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "CMIN letter d";
+beginchar("d", 2sb#+hstretch*(5/8x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio; % x-height
+rt x1=w-pcshiftx-jut; top y1=h;
+x2 = x1; bot y2=0;
+x3 = x1; y3 = 1/4n1;
+lft x5 = pcshiftx; y5=1/2n1;
+x4 = 1/2[x3,x5]; bot y4 = 0;
+x6=x4; top y6 = n1;
+x7=x3; y7=3/4n1;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+%%draw_flatserif(1,2,srad);
+draw_clubserif(1,2,0.25);
+draw_roundserif(2,1,srad);
+draw z3..z4{left}..z5{up}..z6{right}..z7;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "CMIN letter e";
+beginchar("e", sb#+hstretch*(8/8x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-pcshiftx; % actual letter width
+n2 := 6/8n1; % width of bowl
+x1 = pcshiftx + 5/8n2; top y1=h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = pcshiftx + 1/2n2; bot y3 = 0;
+rt x4 = pcshiftx + n2; y4 = 1/4h;
+%%z98=(0,3/8h); z99=(w,y98);
+z98=(0,2/8h); z99=(w,y98);
+pth1 := z98--z99;
+pth2 := z1{left}..z2{down}..z3{right};
+z7 = pth1 intersectionpoint pth2;
+rt x9 = w-pcshiftx; y9 = 3/4h;
+z8=1/2[z7,z9];
+
+z70 = z7 shifted 10pdir;
+z17 = whatever[z7,z70];
+%%x17 = w-pcshiftx;
+top y17 = h;
+
+rt x27=w-pcshiftx; top y27=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir};
+%%draw z7{pdir}..z8{right}..z9{pdir};
+%%draw z7--z17;
+draw z7--z27;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,70,100);
+endchar; % end "e"
+
+cmchar "CMIN letter f";
+beginchar("f", 2sb#+hstretch*(3/4x_height#+jut#),
+ (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+rt x6=w-pcshiftx; y6 = 2/3h;
+x5 = 2/3[x4,x6]; top y5=h;
+%% bar
+z14=1/2[z4,z1];
+rt x16 = w -pcshiftx; top y16 = 1/2[y14,y6];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z4{up}...z5{right}...z6; % top
+draw z14{right}..z16{pdir}; % bar
+ductus:=false;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,14,15,16,100);
+endchar; % end "f"
+
+cmchar "CMIN letter g";
+beginchar("g", 2sb#+hstretch*(5/4x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := 4/5w - 2pcshiftx; % width of top o
+%% top O
+x1 = x3 = pcshiftx + 1/2n1; top y1=h; bot y3=1/8h;
+lft x4 = pcshiftx; rt x2 = pcshiftx+n1; y2 = y4 = 1/2[y1,y3];
+
+%% top flick
+lft x11 = rt x1; y11=y1;
+rt x13 = w-pcshiftx; y13 = h;
+
+%% bottom
+z31=z3;
+x33 = w-pcshiftx; y33 = -1/2d;
+x35=x31; bot y35 = -d;
+rt x36 = lft x4; y36 = 1/2[y35,y33];
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle; % top O
+draw z11{right}..z13{pdir}; % flick
+draw z31{right}..z33{down}..z35{left}..z36;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "g"
+
+cmchar "CMIN letter h";
+beginchar("h", 2sb#+hstretch*(6/8x_height#+clubjut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=1/2[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h/ascratio;
+%%lft x6=x4; bot y6=0;
+x6=1/2[x4,x5];
+bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+%%draw_flatserif(1,2,srad);
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+draw z3{pdir}..z4..z5..z6{-pdir};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "CMIN letter i";
+beginchar("i", 2sb#+hstretch*(thick#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "CMIN letter j";
+beginchar("j", sb#+hstretch*(3/8x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z3{-pdir}; % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "CMIN letter k";
+beginchar("k", 2sb#+hstretch*(7/8x_height#+clubjut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% stem
+n1 = h/ascratio; % x-height
+lft x1=lft x2=pcshiftx+clubjut;
+y1=h; bot y2=0;
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 1/2n1;
+rt x5=5/8[x1,w-pcshiftx]; top y5=n1;
+x4=1/2[x3,x5]; top y4=n1;
+pth1 := z3{pdir}..z5{up};
+%% lower arm
+pth2 := (rt x1,0)--(rt x1,h);
+z13 = pth1 intersectionpoint pth2;
+pickup threequarterquill;
+lft x14 = x13; bot y14 = y13;
+rt x7=w-pcshiftx; bot y7=0;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+draw pth1; % upper arm
+pickup threequarterquill;
+%%draw z14{down}..z7{-ppdir}; % lower arm
+%%draw z14{down}..z7; % lower arm
+draw z14{-ppdir}..z7{right}; % lower arm
+pickup quill;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+cmchar "CMIN letter l";
+beginchar("l", 2sb#+hstretch*(thick#+clubjut#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx+clubjut; top y1=h;
+x2=x1; bot y2 =0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "CMIN letter m";
+beginchar("m", 2sb#+hstretch*(x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+%% start of bowl
+x13=x1; y13=3/4h;
+%% bottom of right and middle stems
+rt x6 = w -pcshiftx - jut; y6=y2;
+z4 = 1/2[z2,z6];
+%% top of middle and right stems
+x3=x4; y3=y1;
+x5=x6; y5=y13;
+%% top of bowls
+x14=2/3[x13,x3]; top y14 = h;
+x33=x4; y33=y13;
+x34=2/3[x33,x5]; y34 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z33{down}--z4;
+draw_roundserif(4,3,srad);
+draw z33{pdir}..z34{right}..z5{down}--z6;
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "CMIN letter n";
+beginchar("n", 2sb#+hstretch*(5/8x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+x13=x1; y13=3/4h;
+%% right stem
+rt x4 = w-pcshiftx-jut; y4=y2;
+x3 = x4; y3 = y13;
+x14 = 2/3[x13,x3]; top y14 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z3{down}--z4;
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+cmchar "CMIN letter o";
+beginchar("o", 2sb#+hstretch*(3/4x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+draw z1..z2..z3..z4..cycle;
+z5=(pcshiftx,-o);
+obowl(5, w-2pcshiftx, h+2o);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw obfirst; draw obsecond; draw obouter; draw obinner;
+else:
+%% fill obouter; unfill obinner;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "CMIN letter p";
+beginchar("p", 2sb#+hstretch*(3/4x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-d;
+%% bowl % from "d"
+z3=3/4[(x1,0),z1];
+rt x5 = w-pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; top y4 = h;
+x6=x4; bot y6=0;
+z7=1/4[(x1,0),z1];
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad)
+draw z3{pdir}..z4{right}..z5{down}..z6{left}..z7; % bowl (from d)
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "CMIN letter q";
+beginchar("q", 2sb#+hstretch*(3/4x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=-d;
+%% bowl
+z3=1/4[(x1,0),z1];
+lft x5=pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=h;
+z7=3/4[(x1,0),z1];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+%%draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "CMIN letter r";
+beginchar("r", 2sb#+hstretch*(7/8x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=3/4[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{pdir}..z4{right}..z5{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "CMIN letter s";
+beginchar("s", 2sb#+hstretch*(3/4x_height#+clubjut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+clubjut; top y1=n1; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+rt x6=w-pcshiftx; y6 = 2/3h;
+x5 = 2/3[x4,x6]; top y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+draw z4{up}...z5{right}...z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "s"
+
+cmchar "CMIN letter t";
+beginchar("t", 2sb#+hstretch*(x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+%%top y1 = y3-n3; bot y2=y3+n3;
+y1 = y3-n3; y2=y3;
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+x3=1/2[x1,x2];
+lft x4 = pcshiftx + 1/8n1; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{pdir}..z3..z2{pdir}; % bar
+draw z3..z4{down}..z5{right}..z6{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "CMIN letter u";
+beginchar("u", 2sb#+hstretch*(5/8x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,4,srad); % right stem
+draw_flatserif(3,4,srad);
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "CMIN letter v";
+beginchar("v", 2sb#+hstretch*(3/4x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+rt x23=w-pcshiftx; y23=3/4h;
+lft x26=x14; top y26=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}; % left stem
+draw_flatserif(1,13,srad);
+draw z14{pdir}..z23{up}..z26;
+
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "CMIN letter w";
+beginchar("w", 2sb#+hstretch*(x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x5=w-pcshiftx-jut; y5=y1;
+x6=x5; bot y6=0;
+z53=1/4[z6,z5]; % start of bowl
+z3 = 1/2[z1,z5];
+z33=(x3,y13);
+x14=1/3[x1,x3]; bot y14=0;
+x34=1/3[x3,x5]; y34=y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir}; % left
+draw_flatserif(1,13,srad);
+draw z3--z33{down}..z34{right}..z53{pdir}; % middle
+draw_flatserif(3,33,srad);
+draw_tstem(5,6,srad); % right stem
+draw_flatserif(5,6,srad);
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "CMIN letter x";
+beginchar("x", 2sb#+hstretch*(x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % total width
+n2 := thick; % triangle side
+%% diag top left to bottom right
+lft x1=pcshiftx; bot y1=2/3h;
+x2=pcshiftx+1/7n1; top y2=h;
+x5=pcshiftx+11/14n1; bot y5=-1/4d;
+rt x6=pcshiftx+n1; top y6=1/6h;
+z25 = 1/3[z2,z5];
+pth1 := z2{right}..z5{right};
+z251 = point 1/3 of pth1;
+z252 = point 2/3 of pth1;
+%% diag bottom left to top right
+lft x10 = -w + 2pcshiftx; bot y10=-d;
+x50=x5; top y50=h;
+rt x60 = w -pcshiftx; bot y60=2/3h;
+x40=pcshiftx+8/14n1; y40=h;
+
+x150=x2; bot y150 = 0;
+lft x160 = pcshiftx; top y160=1/3h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z5{right}..z6; % top left to bottom right
+%%draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right
+draw z251..z50{right}..z60; % middle to top right
+draw z252..z150{left}..z160; % middle to bottom left
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+cmchar "CMIN letter y";
+beginchar("y", 2sb#+hstretch*(7/8x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + jut; top y1 = h;
+bot y3 = 0;
+%% right stem
+rt x5=w-pcshiftx; top y5 = h;
+lft x9=-1/2w; bot y9 = -d;
+pth1 := z9{right}..z5{up};
+pth2 := (0,y3)--(w,y3);
+z99 = pth1 intersectionpoint pth2;
+x3 = x99;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z3; % left stem
+draw_flatserif(1,3,srad);
+draw pth1; % right stem
+draw_flatserif(5,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "CMIN letter z";
+beginchar("z", 2sb#+hstretch*(x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+%% bottom bar ends
+bot y34 = 0;
+x3=x1; x4=x2;
+%%y3=y34-n1; y4=y34+n1;
+y3=y34-n1; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+%% diagonal
+z5=z3;
+pth3 := z5--(3/4w,h+jut);
+z6 = pth3 intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2; % bars
+draw z5--z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminlig.mf
new file mode 100644
index 00000000000..78a4d48956d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cminlig.mf
@@ -0,0 +1,271 @@
+%%
+%% This is file `cminlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+ligtable "c": "t"=:oct"014";
+ligtable "s": "t"=:oct"015";
+
+
+cmchar "The ct ligature";
+beginchar(oct"014", 2sb#+hstretch*(6/4x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair vc[];
+pickup quill;
+%%%%%%%%%%% C
+
+n1:=1/2(w-2pcshiftx); % actual letter width
+n2 := h/ascratio; % x-height
+x1=pcshiftx + 1/2n1; top y1 = n2;
+lft x2 = pcshiftx; y2 = 1/2n2;
+x3 = x1; bot y3 = 0;
+rt x4 = n1; y4 = 1/4n2;
+x6 = x4;
+%%y6 = 3/4n2;
+top y6 = y1;
+pth1 := z6..z1{left}..z2{down}..z3{right}..z4{pdir};
+%%%%%%%%%%%%% T
+
+%% bar
+top y33=n2; n3 := n2 - top y33;
+%%lft x31 = n1+pcshiftx;
+lft x31 = n1;
+rt x32=w-pcshiftx;
+%%top y31 = y33-n3; bot y32=y33+n3;
+top y31 = y33-n3; y32=y33;
+x33=1/2[x31,x32];
+pth2 := z31{pdir}..z33..z32{pdir}; % T bar
+n31 := n1; % width of bowl
+%%lft x34 = pcshiftx + n1 + 1/8n31;
+lft x34 = n1 + 1/8n31;
+y34 = 1/2n2;
+x35=x33; bot y35 = 0;
+rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2;
+pth3 := z33..z34{down}..z35{right}..z36{pdir}; % T bowl
+
+%%%%%%%%%%%%%%%%% Ligature
+
+z51=z6;
+z55=z33;
+x53 = 1/2[x51,x55];
+top y53 = h;
+vc51 := direction 0 of pth1;
+vc55 := direction 0 of pth3;
+pth4 := z51{vc51}..z53{right}..z55{vc55}; % loop
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % C
+draw pth2; % T bar
+draw pth3; % T bowl
+draw pth4; % ligature loop
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100);
+endchar; % end of "ct"
+
+
+cmchar "The st ligature";
+beginchar(oct"015", 2sb#+hstretch*(9/8x_height#+clubjut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair vc[];
+pickup quill;
+%%%%%%%%%%% S
+
+n1:=3/7(w-2pcshiftx-clubjut); % actual letter width
+n2 := h/ascratio; % x-height
+
+%% stem
+lft x1=lft x2=pcshiftx+clubjut; top y1=n2; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+%%%%%%%%%%%%% T
+
+%% bar
+top y33=n2; n3 := n2 - top y33;
+%%lft x31 = n1+pcshiftx;
+lft x31 = n1;
+rt x32=w-pcshiftx;
+%%top y31 = y33-n3; bot y32=y33+n3;
+top y31 = y33-n3; y32=y33;
+x33=1/2[x31,x32];
+pth2 := z31{pdir}..z33..z32{pdir}; % T bar
+n31 := n1; % width of bowl
+%%lft x34 = pcshiftx + n1 + 1/8n31;
+lft x34 = n1 + 1/8n31;
+y34 = 1/2n2;
+x35=x33; bot y35 = 0;
+rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2;
+pth3 := z33..z34{down}..z35{right}..z36{pdir}; % T bowl
+
+%%%%%%%%%%%%%%%%% Ligature
+
+z51=z4;
+z55=z33;
+x53 = 5/8[x51,x55];
+top y53 = h;
+vc51 := up;
+vc55 := direction 0 of pth3;
+pth4 := z51{vc51}...z53{right}..z55{vc55}; % loop
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % S stem
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+draw pth2; % T bar
+draw pth3; % T bowl
+draw pth4; % ligature loop
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100);
+endchar; % end of "st"
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+%%pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+%%pickup thickstylus;
+pickup halfquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+%%pickup thickstylus;
+pickup halfquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+%%pickup thickstylus;
+pickup halfquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "CMIN ampersand";
+beginchar("&", 2sb#+hstretch*(5/4x_height#+2jut#), asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx:=sb;
+pickup quill;
+%% alpha looking part
+n1 := w-2pcshiftx-jut; % actual letter width
+n2 := h/ascratio; % x-height
+n3 := 16/16n2; % height of alpha
+x1 = w-pcshiftx; bot y1 = 0;
+x3 = pcshiftx + 12/16n1; y3 = 1/2n3; % 10/16 too small
+lft x5 = pcshiftx; y5=y3;
+x4 = x6 = 1/2[x5,x3];
+top y4 = n3; bot y6 = 0;
+rt x8 = w-pcshiftx-jut; top y8 = h;
+x9 = x8-2jut; x10 = x8+2jut;
+y9 = y10 = y8;
+pth1 := z1{left}..z3..z4{left}..z5{down}..z6{right}..z3..z8{up};
+%% loop
+z21 = z5;
+z25 = point 1.5 of pth1;
+x23 = 1/2[x21,x25];
+y23 = 6/8[y4,y8];
+pth2 := z21{up}..z23{right}..z25{down};
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw z9--z10; % alpha part
+draw pth2; % loop
+penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,19,21,22,23,24,25);
+endchar; % end of "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminpunct.mf
new file mode 100644
index 00000000000..df684b7fb4d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cminpunct.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `cminpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*(3/4x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x4 = x5; y4=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 2/3h;
+
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..z4{down};
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cmintitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/cmintitle.mf
new file mode 100644
index 00000000000..85845bd7959
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cmintitle.mf
@@ -0,0 +1,706 @@
+%%
+%% This is file `cmintitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def carolmin_font_setup= % contains special stuff for carolmin fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,clubjut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+
+ pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+ threequarterquill := savepen;
+
+ pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+ halfquill := savepen;
+
+ pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+ quarterquill := savepen;
+
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of carolmin_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr);
+ undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+%%% z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-jut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (jut*pdir);
+ fi
+ z$b = fr[z$,z$c];
+ draw z$a--z$;
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+%% beta=1-fr;
+ ajut=clubjut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+%% vec2=ajut*vec1;
+%% z$a=z$ shifted vec2;
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-clubjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (clubjut*pdir);
+ fi
+ z$a = fr[z$,z$$];
+ draw z$c..z$a{vec1};
+ labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu{down}..{left}z$uv--z$vu{right}..{up}z$sv--cycle;
+ labels($s,$t,$u,$v,$sv,$tu,$uv,$vu);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu{down}..{right}z$uv--z$vu{left}..{up}z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ path pth[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ penpos$wt(thick,pangle);
+ penpos$et(thick,pangle);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ penpos$nh(thick,pangle);
+ penpos$sh(thick,pangle);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ if pangle = 90:
+ z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+ else:
+ if pangle = 0:
+ z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+ else:
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ pt1 := z$minr - z$minl; % direction
+ pt2 := (- ypart pt1, xpart pt1); % perpendicular
+ pt3 := 1/2[z$minl, z$minr];
+ pt4 := pt3 shifted pt2;
+ pt5 := pt3 shifted -pt2;
+ pth1 := pt3--pt4;
+ pth2 := pt3--pt5;
+ z$maxr = pth1 intersectionpoint obfirst;
+ z$maxl = pth2 intersectionpoint obfirst;
+ \fi
+ \fi
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+carolmin_font_setup;
+
+
+input cminl; % lower case
+input cminu; % capitals
+input cminpunct; % punctuation
+input cminlig; % the several dashes
+input cmindig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space vstretch*9u#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space vstretch*6u#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+
+fi
+
+bye.
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/cminu.mf b/Master/texmf-dist/fonts/source/public/bookhands/cminu.mf
new file mode 100644
index 00000000000..805ffa88127
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/cminu.mf
@@ -0,0 +1,787 @@
+%%
+%% This is file `cminu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% carolmin.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "CMIN letter A";
+beginchar("A", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+n1 := w - 2pcshiftx -jut; % effective letter width
+x1 = pcshiftx + 6/8n1; top y1=h;
+rt x2 = pcshiftx + n1; bot y2=0;
+z16 = 1/6[z2,z1];
+rt x6 = x16; y6=y16;
+lft x4 = pcshiftx; y4 = 1/2h;
+pth1 := z1{down}..z2;
+pr1 := direction 1 of pth1;
+z20 = z2 shifted -10pr1;
+
+z11 = point 3/13 of pth1; z15 = point 10/13 of pth1;
+lft x13 = pcshiftx; y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+else:
+ % draw stem
+ draw pth1;
+ draw_roundserif(1,2,srad);
+ draw_roundserif(2,20,srad);
+ % draw bowl
+%% draw z1{-pdir}..z4{down}..z6{pdir};
+ draw z11{-pdir}..z13{down}..z15{pdir};
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "A"
+
+cmchar "CMIN letter B";
+beginchar("B", 2sb#+caprat*hstretch*(3/4x_height#+clubjut#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx+clubjut; top y1=h;
+x3 = x1; y3=1/2n2;
+rt x5 = w-pcshiftx; y5=y3;
+x4 = 1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=n2;
+pth1 := z1..z3{down}..z4{right}.. z5{up};
+z98=(0,3/4n2); z99=(w,y98);
+pth2 := z98--z99;
+z7 = pth1 intersectionpoint pth2;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir};
+draw_clubserif(1,3,0.75);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "B"
+
+cmchar "CMIN letter C";
+beginchar("C", 2sb#+caprat*hstretch*(5/8x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "C"
+
+cmchar "CMIN letter D";
+beginchar("D", 2sb#+caprat*hstretch*(5/8x_height#+jut#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio; % x-height
+rt x1=w-pcshiftx-jut; top y1=h;
+x2 = x1; bot y2=0;
+x3 = x1; y3 = 1/4n1;
+lft x5 = pcshiftx; y5=1/2n1;
+x4 = 1/2[x3,x5]; bot y4 = 0;
+x6=x4; top y6 = n1;
+x7=x3; y7=3/4n1;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+%%draw_flatserif(1,2,srad);
+draw_clubserif(1,2,0.25);
+draw_roundserif(2,1,srad);
+draw z3..z4{left}..z5{up}..z6{right}..z7;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "D"
+
+cmchar "CMIN letter E";
+beginchar("E", sb#+caprat*hstretch*(8/8x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-pcshiftx; % actual letter width
+n2 := 6/8n1; % width of bowl
+x1 = pcshiftx + 5/8n2; top y1=h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = pcshiftx + 1/2n2; bot y3 = 0;
+rt x4 = pcshiftx + n2; y4 = 1/4h;
+%%z98=(0,3/8h); z99=(w,y98);
+z98=(0,2/8h); z99=(w,y98);
+pth1 := z98--z99;
+pth2 := z1{left}..z2{down}..z3{right};
+z7 = pth1 intersectionpoint pth2;
+rt x9 = w-pcshiftx; y9 = 3/4h;
+z8=1/2[z7,z9];
+
+z70 = z7 shifted 10pdir;
+z17 = whatever[z7,z70];
+%%x17 = w-pcshiftx;
+top y17 = h;
+
+rt x27=w-pcshiftx; top y27=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir};
+%%draw z7{pdir}..z8{right}..z9{pdir};
+%%draw z7--z17;
+draw z7--z27;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,70,100);
+endchar; % end "E"
+
+cmchar "CMIN letter F";
+beginchar("F", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+rt x6=w-pcshiftx; y6 = 2/3h;
+x5 = 2/3[x4,x6]; top y5=h;
+%% bar
+z14=1/2[z4,z1];
+rt x16 = w -pcshiftx; top y16 = 1/2[y14,y6];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z4{up}...z5{right}...z6; % top
+draw z14{right}..z16{pdir}; % bar
+ductus:=false;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,14,15,16,100);
+endchar; % end "F"
+
+cmchar "CMIN letter G";
+beginchar("G", 2sb#+caprat*hstretch*(5/4x_height#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := 4/5w - 2pcshiftx; % width of top o
+%% top O
+x1 = x3 = pcshiftx + 1/2n1; top y1=h; bot y3=1/8h;
+lft x4 = pcshiftx; rt x2 = pcshiftx+n1; y2 = y4 = 1/2[y1,y3];
+
+%% top flick
+lft x11 = rt x1; y11=y1;
+rt x13 = w-pcshiftx; y13 = h;
+
+%% bottom
+z31=z3;
+x33 = w-pcshiftx; y33 = -1/2d;
+x35=x31; bot y35 = -d;
+rt x36 = lft x4; y36 = 1/2[y35,y33];
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle; % top O
+draw z11{right}..z13{pdir}; % flick
+draw z31{right}..z33{down}..z35{left}..z36;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "G"
+
+cmchar "CMIN letter H";
+beginchar("H", 2sb#+caprat*hstretch*(6/8x_height#+clubjut#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=1/2[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h/ascratio;
+%%lft x6=x4; bot y6=0;
+x6=1/2[x4,x5];
+bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+%%draw_flatserif(1,2,srad);
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+draw z3{pdir}..z4..z5..z6{-pdir};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "H"
+
+cmchar "CMIN letter I";
+beginchar("I", 2sb#+caprat*hstretch*(thick#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "I"
+
+cmchar "CMIN letter J";
+beginchar("J", sb#+caprat*hstretch*(3/8x_height#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z3{-pdir}; % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "J"
+
+cmchar "CMIN letter K";
+beginchar("K", 2sb#+caprat*hstretch*(7/8x_height#+clubjut#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% stem
+n1 = h/ascratio; % x-height
+lft x1=lft x2=pcshiftx+clubjut;
+y1=h; bot y2=0;
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 1/2n1;
+rt x5=5/8[x1,w-pcshiftx]; top y5=n1;
+x4=1/2[x3,x5]; top y4=n1;
+pth1 := z3{pdir}..z5{up};
+%% lower arm
+pth2 := (rt x1,0)--(rt x1,h);
+z13 = pth1 intersectionpoint pth2;
+pickup threequarterquill;
+lft x14 = x13; bot y14 = y13;
+rt x7=w-pcshiftx; bot y7=0;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+draw pth1; % upper arm
+pickup threequarterquill;
+%%draw z14{down}..z7{-ppdir}; % lower arm
+%%draw z14{down}..z7; % lower arm
+draw z14{-ppdir}..z7{right}; % lower arm
+pickup quill;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "K"
+
+cmchar "CMIN letter L";
+beginchar("L", 2sb#+caprat*hstretch*(thick#+clubjut#+jut#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx+clubjut; top y1=h;
+x2=x1; bot y2 =0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "L"
+
+cmchar "CMIN letter M";
+beginchar("M", 2sb#+caprat*hstretch*(x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+%% start of bowl
+x13=x1; y13=3/4h;
+%% bottom of right and middle stems
+rt x6 = w -pcshiftx - jut; y6=y2;
+z4 = 1/2[z2,z6];
+%% top of middle and right stems
+x3=x4; y3=y1;
+x5=x6; y5=y13;
+%% top of bowls
+x14=2/3[x13,x3]; top y14 = h;
+x33=x4; y33=y13;
+x34=2/3[x33,x5]; y34 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z33{down}--z4;
+draw_roundserif(4,3,srad);
+draw z33{pdir}..z34{right}..z5{down}--z6;
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "M"
+
+cmchar "CMIN letter N";
+beginchar("N", 2sb#+caprat*hstretch*(5/8x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+x13=x1; y13=3/4h;
+%% right stem
+rt x4 = w-pcshiftx-jut; y4=y2;
+x3 = x4; y3 = y13;
+x14 = 2/3[x13,x3]; top y14 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z3{down}--z4;
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "N"
+
+cmchar "CMIN letter O";
+beginchar("O", 2sb#+caprat*hstretch*(3/4x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+draw z1..z2..z3..z4..cycle;
+z5=(pcshiftx,-o);
+obowl(5, w-2pcshiftx, h+2o);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw obfirst; draw obsecond; draw obouter; draw obinner;
+else:
+%% fill obouter; unfill obinner;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "CMIN letter P";
+beginchar("P", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-d;
+%% bowl % from "d"
+z3=3/4[(x1,0),z1];
+rt x5 = w-pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; top y4 = h;
+x6=x4; bot y6=0;
+z7=1/4[(x1,0),z1];
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad)
+draw z3{pdir}..z4{right}..z5{down}..z6{left}..z7; % bowl (from d)
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "CMIN letter Q";
+beginchar("Q", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=-d;
+%% bowl
+z3=1/4[(x1,0),z1];
+lft x5=pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=h;
+z7=3/4[(x1,0),z1];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+%%draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "Q"
+
+cmchar "CMIN letter R";
+beginchar("R", 2sb#+caprat*hstretch*(7/8x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=3/4[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{pdir}..z4{right}..z5{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "R"
+
+cmchar "CMIN letter S";
+beginchar("S", 2sb#+caprat*hstretch*(3/4x_height#+clubjut#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+clubjut; top y1=n1; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+rt x6=w-pcshiftx; y6 = 2/3h;
+x5 = 2/3[x4,x6]; top y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+draw z4{up}...z5{right}...z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "S"
+
+cmchar "CMIN letter T";
+beginchar("T", 2sb#+caprat*hstretch*(x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+%%top y1 = y3-n3; bot y2=y3+n3;
+y1 = y3-n3; y2=y3;
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+x3=1/2[x1,x2];
+lft x4 = pcshiftx + 1/8n1; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{pdir}..z3..z2{pdir}; % bar
+draw z3..z4{down}..z5{right}..z6{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "T"
+
+cmchar "CMIN letter U";
+beginchar("U", 2sb#+caprat*hstretch*(5/8x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,4,srad); % right stem
+draw_flatserif(3,4,srad);
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "CMIN letter V";
+beginchar("V", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+rt x23=w-pcshiftx; y23=3/4h;
+lft x26=x14; top y26=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}; % left stem
+draw_flatserif(1,13,srad);
+draw z14{pdir}..z23{up}..z26;
+
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "CMIN letter W";
+beginchar("W", 2sb#+caprat*hstretch*(x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x5=w-pcshiftx-jut; y5=y1;
+x6=x5; bot y6=0;
+z53=1/4[z6,z5]; % start of bowl
+z3 = 1/2[z1,z5];
+z33=(x3,y13);
+x14=1/3[x1,x3]; bot y14=0;
+x34=1/3[x3,x5]; y34=y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir}; % left
+draw_flatserif(1,13,srad);
+draw z3--z33{down}..z34{right}..z53{pdir}; % middle
+draw_flatserif(3,33,srad);
+draw_tstem(5,6,srad); % right stem
+draw_flatserif(5,6,srad);
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "CMIN letter X";
+beginchar("X", 2sb#+caprat*hstretch*(x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % total width
+n2 := thick; % triangle side
+%% diag top left to bottom right
+lft x1=pcshiftx; bot y1=2/3h;
+x2=pcshiftx+1/7n1; top y2=h;
+x5=pcshiftx+11/14n1; bot y5=-1/4d;
+rt x6=pcshiftx+n1; top y6=1/6h;
+z25 = 1/3[z2,z5];
+pth1 := z2{right}..z5{right};
+z251 = point 1/3 of pth1;
+z252 = point 2/3 of pth1;
+%% diag bottom left to top right
+lft x10 = -w + 2pcshiftx; bot y10=-d;
+x50=x5; top y50=h;
+rt x60 = w -pcshiftx; bot y60=2/3h;
+x40=pcshiftx+8/14n1; y40=h;
+
+x150=x2; bot y150 = 0;
+lft x160 = pcshiftx; top y160=1/3h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z5{right}..z6; % top left to bottom right
+%%draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right
+draw z251..z50{right}..z60; % middle to top right
+draw z252..z150{left}..z160; % middle to bottom left
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "X"
+
+cmchar "CMIN letter Y";
+beginchar("Y", 2sb#+caprat*hstretch*(7/8x_height#+jut#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + jut; top y1 = h;
+bot y3 = 0;
+%% right stem
+rt x5=w-pcshiftx; top y5 = h;
+lft x9=-1/2w; bot y9 = -d;
+pth1 := z9{right}..z5{up};
+pth2 := (0,y3)--(w,y3);
+z99 = pth1 intersectionpoint pth2;
+x3 = x99;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z3; % left stem
+draw_flatserif(1,3,srad);
+draw pth1; % right stem
+draw_flatserif(5,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "CMIN letter Z";
+beginchar("Z", 2sb#+caprat*hstretch*(x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+%% bottom bar ends
+bot y34 = 0;
+x3=x1; x4=x2;
+%%y3=y34-n1; y4=y34+n1;
+y3=y34-n1; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+%% diagonal
+z5=z3;
+pth3 := z5--(3/4w,h+jut);
+z6 = pth3 intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2; % bars
+draw z5--z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egoth10.mf b/Master/texmf-dist/fonts/source/public/bookhands/egoth10.mf
new file mode 100644
index 00000000000..ef6904d2519
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egoth10.mf
@@ -0,0 +1,85 @@
+%%
+%% This is file `egoth10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% EGOTH10.MF Early Gothic at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EGOTH"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.27;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=3/8u#; % unit for side bearings
+
+ cap_sb#:=4/3sb#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+cappangle:=0; % pen angle
+cappangle := pangle;
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+sqrcjut# := 2cap_jutstretch*thin#;
+sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate egothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egoth17.mf b/Master/texmf-dist/fonts/source/public/bookhands/egoth17.mf
new file mode 100644
index 00000000000..e138702c1a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egoth17.mf
@@ -0,0 +1,85 @@
+%%
+%% This is file `egoth17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% EGOTH17.MF Early Gothic at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EGOTH"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.27;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=3/8u#; % unit for side bearings
+
+ cap_sb#:=4/3sb#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+cappangle:=0; % pen angle
+cappangle := pangle;
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+sqrcjut# := 2cap_jutstretch*thin#;
+sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate egothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egoth7.mf b/Master/texmf-dist/fonts/source/public/bookhands/egoth7.mf
new file mode 100644
index 00000000000..1a4a13e049c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egoth7.mf
@@ -0,0 +1,85 @@
+%%
+%% This is file `egoth7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% EGOTH7.MF Early Gothic at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EGOTH"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.27;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=3/8u#; % unit for side bearings
+
+ cap_sb#:=4/3sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+cappangle:=0; % pen angle
+cappangle := pangle;
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+sqrcjut# := 2cap_jutstretch*thin#;
+sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate egothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothb10.mf
new file mode 100644
index 00000000000..ff3c81a27c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egothb10.mf
@@ -0,0 +1,85 @@
+%%
+%% This is file `egothb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% EGOTHB10.MF Early Gothic Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EGOTHB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.27;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=3/8u#; % unit for side bearings
+
+ cap_sb#:=4/3sb#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+cappangle:=0; % pen angle
+cappangle := pangle;
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+sqrcjut# := 2cap_jutstretch*thin#;
+sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate egothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothb17.mf
new file mode 100644
index 00000000000..35946b27b35
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egothb17.mf
@@ -0,0 +1,85 @@
+%%
+%% This is file `egothb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% EGOTHB17.MF Early Gothic Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EGOTHB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.27;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=3/8u#; % unit for side bearings
+
+ cap_sb#:=4/3sb#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+cappangle:=0; % pen angle
+cappangle := pangle;
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+sqrcjut# := 2cap_jutstretch*thin#;
+sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate egothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothb7.mf
new file mode 100644
index 00000000000..f9b4f1bb0a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egothb7.mf
@@ -0,0 +1,85 @@
+%%
+%% This is file `egothb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% EGOTHB7.MF Early Gothic Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EGOTHB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.27;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=3/8u#; % unit for side bearings
+
+ cap_sb#:=4/3sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+cappangle:=0; % pen angle
+cappangle := pangle;
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+sqrcjut# := 2cap_jutstretch*thin#;
+sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate egothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothdig.mf
new file mode 100644
index 00000000000..30dd6b1e8df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egothdig.mf
@@ -0,0 +1,224 @@
+%%
+%% This is file `egothdig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "EGOTH digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_flatserif(2,1,srad);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "EGOTH digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+o; top y1=h-2thin;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx-o; y3=3/4h;
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(5,6,thin); % foot
+draw z1..z2{right}.. tension 0.75 ..z3{down}..{-pdir}z5wl; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "EGOTH digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+%%lft x6=pcshiftx+3thin; x7=x6;
+x6=1/2[x3,x9]; x7=x6;
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl
+draw z7{right}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "EGOTH digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-jut;
+y1=h; bot y2=0;
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % main stem
+draw_wave(3,4,thin); % crossbar
+draw z3wl--z1; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "EGOTH digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx; y2=y1;
+x3=x2; y3=0.5h+thin;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=w/2; bot y6=0;
+lft x7=pcshiftx; bot y7=2thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(2,1,thin); % top squiggle
+draw z3{pdir}..z5{down}..z6{left}..z7; % curve
+draw z2wl--z3; % vertical
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "EGOTH digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}.. tension 0.8 ..z3{down}.. tension 0.8 ..z4{right}..z5{up}.. tension 0.8 ..{-pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "6"
+
+cmchar "EGOTH digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,2,thin); % top bar
+draw z1wr..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "EGOTH digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1.. tension 0.8 ..z2.. tension 0.8 ..z3..z5..
+ z11.. tension 0.8 ..z4.. tension 0.8 ..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "EGOTH digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}.. tension 0.8 ..z3{up}.. tension 0.8 ..z4{left}..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "EGOTHIC digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1.. tension 0.8 ..z2.. tension 0.8 ..z3.. tension 0.8 ..z4.. tension 0.8 ..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothl.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothl.mf
new file mode 100644
index 00000000000..de79a5aa295
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egothl.mf
@@ -0,0 +1,798 @@
+%%
+%% This is file `egothl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "EGOTH letter a";
+beginchar("a", 2sb#+hstretch*(9/16x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+n1 := w - 2pcshiftx -jut; % effective letter width
+rt x1 = w-pcshiftx-jut; top y1=h;
+x2 = x1; bot y2=0;
+z16 = 1/6[z2,z1];
+rt x6 = x16; y6=y16;
+lft x4 = pcshiftx; y4 = 1/2h;
+pth1 := z1--z2;
+pr1 := direction 1 of pth1;
+z20 = z2 shifted -10pr1;
+
+z11 = point 3/13 of pth1; z15 = point 10/13 of pth1;
+lft x13 = pcshiftx; y13=1/4h;
+n2 := y13 - bot y13;
+z23 = (x13, y13+n2);
+z33 = (x13, y13-n2);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+else:
+ % draw stem
+ draw pth1;
+ draw_roundserif(1,2,srad);
+ draw_roundserif(2,1,srad);
+ % draw bowl
+%% draw z1{-pdir}..z4{down}..z6{pdir};
+ draw z11{-pdir}..z23{down}..z33..z15{pdir};
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+cmchar "EGOTH letter b";
+beginchar("b", 2sb#+hstretch*(11/16x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx+jut; top y1=h;
+x3 = x1; y3=2/8n2;
+rt x5 = w-pcshiftx; y5=y3;
+x4 = 1/2[x3,x5]; bot y4=0;
+x6=1/2[x4,x5]; top y6=n2;
+pth1 := z1..z3{down}..z4{right}.. z5{up};
+z98=(0,3/4n2); z99=(w,y98);
+pth2 := z98--z99;
+z7=(x1,6/8n2);
+if ductus:
+ pickup stylus;
+fi
+draw z1--z3{down}..z4{right}..z5{up}..z6;
+draw z6--z7;
+draw_flatserif(1,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "EGOTH letter c";
+beginchar("c", 2sb#+hstretch*(9/16x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24--z1{left}...z2{down}..z3{right}..z4{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "EGOTH letter d";
+beginchar("d", 2sb#+hstretch*(11/16x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio; % x-height
+rt x1=w-pcshiftx-jut; top y1=h;
+x2 = x1; bot y2=0;
+x3 = x1; y3 = 1/4n1;
+lft x5 = pcshiftx; y5=6/8n1;
+x4 = 3/8[x3,x5]; bot y4 = 0;
+x6=1/2[x4,x5]; top y6 = n1;
+x7=x3; top y7=n1;
+rt x8 = w-pcshiftx; y8=n1;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3..z4{left}..z5{up}..z6;
+draw z6..z7..z8;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "EGOTH letter e";
+beginchar("e", sb#+hstretch*(15/16x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-pcshiftx; % actual letter width
+n2 := 6/8n1; % width of bowl
+x1 = pcshiftx + 5/8n2; top y1=h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = pcshiftx + 1/2n2; bot y3 = 0;
+rt x4 = pcshiftx + n2; y4 = 1/4h;
+%%z98=(0,3/8h); z99=(w,y98);
+z98=(0,2/8h); z99=(w,y98);
+pth1 := z98--z99;
+pth2 := z1{left}..z2{down}..z3{right};
+z7 = pth1 intersectionpoint pth2;
+rt x9 = w-pcshiftx; y9 = 3/4h;
+z8=1/2[z7,z9];
+
+z70 = z7 shifted 10pdir;
+z17 = whatever[z7,z70];
+%%x17 = w-pcshiftx;
+top y17 = h;
+
+rt x27=w-pcshiftx; top y27=h;
+pth3 := z7--z27; % diagonal
+pth4 := z1--z9;
+
+z34 = pth3 intersectionpoint pth4;
+pth5 := z34--z1{left}...z2{down}..z3{right}..z4{pdir}; % bowl
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir};
+%%draw z7{pdir}..z8{right}..z9{pdir};
+%%draw z7--z17;
+draw pth5; % bowl
+draw pth3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100);
+endchar; % end "e"
+
+cmchar "EGOTH letter f";
+beginchar("f", 2sb#+hstretch*(9/16x_height#+jut#),
+ (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+jut; top y1=h; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+%%rt x6=w-pcshiftx; y6 = 2/3h;
+%%x5 = 2/3[x4,x6]; top y5=h;
+x6 = x1; y6=y1; rt x8 = w-pcshiftx; y8=h;
+%% bar
+z14=1/2[z4,z1];
+rt x16 = w -pcshiftx; bot y16 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z6{right}..z8{pdir}; % top
+draw z14{right}..z16{pdir}; % bar
+ductus:=false;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,14,15,16,100);
+endchar; % end "f"
+
+cmchar "EGOTH letter g";
+beginchar("g", 2sb#+hstretch*(12/16x_height#+2jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := 4/5w - 2pcshiftx; % width of top o
+%% S shape
+x1 = x3 = x5 = 1/2w;
+top y1 = h; bot y5 = -d; y3 = 1/2[y1,y5];
+lft x2 = pcshiftx + jut; rt x4 = w - pcshiftx - jut;
+y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5];
+%% bow
+z12 = (x4,y2);
+lft x16 = pcshiftx; bot y16=-d;
+pth2 := z16...z12{up}...z1;
+n2 := top y5;
+pth3 := (0, n2)--(w, n2);
+z6 = pth3 intersectionpoint pth2;
+%% top flick
+z11=z1;
+rt x13 = w-pcshiftx; y13 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{down}..z3..z4{down}..z5{left}..z6; % S
+draw pth2; % bow
+draw z11{right}..z13{pdir}; % flick
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "g"
+
+cmchar "EGOTH letter h";
+beginchar("h", 2sb#+hstretch*(11/16x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=1/2[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=9/16[x3,x5]; top y4 = h/ascratio;
+%%lft x6=x4; bot y6=0;
+x6=9/16[x4,x5];
+bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3--z4{right}...z5{down}...z6{-pdir};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "EGOTH letter i";
+beginchar("i", 2sb#+hstretch*(thick#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "EGOTH letter j";
+beginchar("j", sb#+hstretch*(3/8x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z3{-pdir}; % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "EGOTH letter k";
+beginchar("k", 2sb#+hstretch*(13/16x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% stem
+n1 = h/ascratio; % x-height
+lft x1=lft x2=pcshiftx+jut;
+y1=h; bot y2=0;
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 1/2n1;
+rt x5=5/8[x1,w-pcshiftx]; top y5=n1;
+x4=1/2[x3,x5]; top y4=n1;
+pth1 := z3{pdir}..z5{up};
+%% lower arm
+pth2 := (rt x1,0)--(rt x1,h);
+z13 = pth1 intersectionpoint pth2;
+pickup threequarterquill;
+lft x14 = x13; bot y14 = y13;
+rt x7=w-pcshiftx; bot y7=0;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw pth1; % upper arm
+pickup threequarterquill;
+%%draw z14{down}..z7{-ppdir}; % lower arm
+%%draw z14{down}..z7; % lower arm
+draw z14{-ppdir}..z7{right}; % lower arm
+pickup quill;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+cmchar "EGOTH letter l";
+beginchar("l", 2sb#+hstretch*(thick#+2jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2 =0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "EGOTH letter m";
+beginchar("m", 2sb#+hstretch*(15/16x_height#+2jut#), % 12/16 too narrow, 14 a bit
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+%% start of bowl
+x13=x1; y13=3/4h;
+%% bottom of right and middle stems
+rt x6 = w -pcshiftx - jut; y6=y2;
+z4 = 1/2[z2,z6];
+%% top of middle and right stems
+x3=x4; y3=y1;
+x5=x6; y5=y13;
+%% top of bowls
+x14=2/3[x13,x3]; top y14 = h;
+x33=x4; y33=y13;
+x34=2/3[x33,x5]; y34 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13--z14{right}..z33{down}--z4;
+draw_roundserif(4,3,srad);
+draw z33--z34{right}..z5{down}--z6;
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "EGOTH letter n";
+beginchar("n", 2sb#+hstretch*(9/16x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+x13=x1; y13=3/4h;
+%% right stem
+rt x4 = w-pcshiftx-jut; y4=y2;
+x3 = x4; y3 = y13;
+x14 = 2/3[x13,x3]; top y14 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13--z14{right}..z3{down}--z4;
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+cmchar "EGOTH letter o";
+beginchar("o", 2sb#+hstretch*(3/4x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+draw z1..z2..z3..z4..cycle;
+z5=(pcshiftx,-o);
+obowl(5, w-2pcshiftx, h+2o);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw obfirst; draw obsecond; draw obouter; draw obinner;
+else:
+%% fill obouter; unfill obinner;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "EGOTH letter p";
+beginchar("p", 2sb#+hstretch*(11/16x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-d;
+%% bowl % from "d"
+z3=3/4[(x1,0),z1];
+rt x5 = w-pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; top y4 = h;
+x6=x4; bot y6=0;
+z7=1/4[(x1,0),z1];
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad)
+draw z3--z4; draw z4..z5{down}..z6{left}..z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "EGOTH letter q";
+beginchar("q", 2sb#+hstretch*(3/4x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=-d;
+%% bowl
+z3=1/4[(x1,0),z1];
+lft x5=pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=h;
+%%z7=3/4[(x1,0),z1];
+z7=z1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+%%draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7{pdir};
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "EGOTH letter r";
+beginchar("r", 2sb#+hstretch*(13/16x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=3/4[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{pdir}..z4{right}..z5{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "EGOTH letter s";
+beginchar("s", 2sb#+hstretch*(11/16x_height#+jut#),
+ 5/6asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := (6/5h)/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+rt x6=w-pcshiftx; top y6 = h;
+x5 = 1/2[x4,x6];
+y5 = y6;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+%%draw z4--z5--z6;
+draw z1--z5--z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "s"
+
+cmchar "EGOTH letter t";
+beginchar("t", 2sb#+hstretch*(15/16x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+%%top y1 = y3-n3; bot y2=y3+n3;
+y1 = y3-n3; y2=y3;
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+x3=1/2[x1,x2];
+lft x4 = pcshiftx + 1/8n1; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{pdir}..z3..z2{pdir}; % bar
+draw z3..z4{down}..z5{right}..z6{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "EGOTH letter u";
+beginchar("u", 2sb#+hstretch*(9/16x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z1--z13{down}...z14{right}...z33{pdir};
+draw z1--z13--z14{right}...z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,4,srad); % right stem
+draw_flatserif(3,4,srad);
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "EGOTH letter v";
+beginchar("v", 2sb#+hstretch*(11/16x_height#+jut#), % 13/16 too wide
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+%% right stem
+rt x5=w-pcshiftx; top y5 = h;
+bot y3 = 0;
+x3 = 1/2[x1,x5];
+z51 = (x1,0); z55=(x5,0);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z3; % left stem
+draw_flatserif(1,51,srad);
+draw z5{down}..z3; % right stem
+draw_flatserif(5,55,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "EGOTH letter w";
+beginchar("w", 2sb#+hstretch*(15/16x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x5=w-pcshiftx-jut; y5=y1;
+x6=x5; bot y6=0;
+z53=1/4[z6,z5]; % start of bowl
+z3 = 1/2[z1,z5];
+z33=(x3,y13);
+x14=1/3[x1,x3]; bot y14=0;
+x34=1/3[x3,x5]; y34=y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13--z14{right}...z33{pdir}; % left
+draw_flatserif(1,13,srad);
+draw z3--z33--z34{right}...z53{pdir}; % middle
+draw_flatserif(3,33,srad);
+draw_tstem(5,6,srad); % right stem
+draw_flatserif(5,6,srad);
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "EGOTH letter x";
+beginchar("x", 2sb#+hstretch*(15/16x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % total width
+n2 := thick; % triangle side
+%% diag top left to bottom right
+lft x1=pcshiftx+jut; top y1=h;
+rt x2=w-pcshiftx-jut; bot y2=0;
+z251 = 7/16[z1,z2];
+%%z252 = 9/16[z1,z2];
+z252 = z251;
+%% diag middle to top right
+x60 = w-pcshiftx;
+top y50 = h;
+x50 = 1/2[x251,x60];
+top y60 = y50;
+%% diag bottom left to middle
+x10 = -1/3w; bot y10=-d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % top left to bottom right
+draw_flatserif(1,2,srad); draw_roundserif(2,1,srad);
+draw z251...z50{right}...z60; % middle to top right
+draw z10{right}..z252; % bottom left to middle
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+cmchar "EGOTH letter y";
+beginchar("y", 2sb#+hstretch*(11/16x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + jut; top y1 = h;
+bot y3 = 0;
+%% right stem
+rt x5=w-pcshiftx; top y5 = h;
+lft x9=-1/2w; bot y9 = -d;
+pth1 := z9{right}..z5{up};
+pth2 := (0,y3)--(w,y3);
+z99 = pth1 intersectionpoint pth2;
+x3 = x99;
+z51 = (x1,0); z55=(x5,0);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z3; % left stem
+draw_flatserif(1,51,srad);
+draw pth1; % right stem
+draw_flatserif(5,55,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "EGOTH letter z";
+beginchar("z", 2sb#+hstretch*(15/16x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+%% bottom bar ends
+bot y34 = 0;
+x3=x1; x4=x2;
+%%y3=y34-n1; y4=y34+n1;
+y3=y34-n1; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+%% diagonal
+z5=z3;
+pth3 := z5--(3/4w,h+jut);
+z6 = pth3 intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2; % bars
+draw z5--z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothlig.mf
new file mode 100644
index 00000000000..d35b2703d3e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egothlig.mf
@@ -0,0 +1,269 @@
+%%
+%% This is file `egothlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+ligtable "c": "t"=:oct"014";
+ligtable "s": "t"=:oct"015";
+
+
+cmchar "EGOTH ct ligature";
+beginchar(oct"014", 2sb#+hstretch*(6/4x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair vc[];
+pickup quill;
+%%%%%%%%%%% C
+
+n1:=1/2(w-2pcshiftx); % actual letter width
+n2 := h/ascratio; % x-height
+x1=pcshiftx + 1/2n1; top y1 = n2;
+lft x2 = pcshiftx; y2 = 1/2n2;
+x3 = x1; bot y3 = 0;
+rt x4 = n1; y4 = 1/4n2;
+x6 = x4;
+%%y6 = 3/4n2;
+top y6 = y1;
+pth1 := z6..z1{left}..z2{down}..z3{right}..z4{pdir};
+%%%%%%%%%%%%% T
+
+%% bar
+top y33=n2; n3 := n2 - top y33;
+%%lft x31 = n1+pcshiftx;
+lft x31 = n1;
+rt x32=w-pcshiftx;
+%%top y31 = y33-n3; bot y32=y33+n3;
+top y31 = y33-n3; y32=y33;
+x33=1/2[x31,x32];
+pth2 := z31{pdir}..z33..z32{pdir}; % T bar
+n31 := n1; % width of bowl
+%%lft x34 = pcshiftx + n1 + 1/8n31;
+lft x34 = n1 + 1/8n31;
+y34 = 1/2n2;
+x35=x33; bot y35 = 0;
+rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2;
+pth3 := z33..z34{down}..z35{right}..z36{pdir}; % T bowl
+
+%%%%%%%%%%%%%%%%% Ligature
+
+z51=z6;
+z55=z33;
+x53 = 1/2[x51,x55];
+top y53 = h;
+vc51 := direction 0 of pth1;
+vc55 := direction 0 of pth3;
+pth4 := z51{vc51}..z53{right}..z55{vc55}; % loop
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % C
+draw pth2; % T bar
+draw pth3; % T bowl
+draw pth4; % ligature loop
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100);
+endchar; % end of "ct"
+
+
+cmchar "EGOTH st ligature";
+beginchar(oct"015", 2sb#+hstretch*(9/8x_height#+clubjut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair vc[];
+pickup quill;
+%%%%%%%%%%% S
+
+n1:=3/7(w-2pcshiftx-clubjut); % actual letter width
+n2 := h/ascratio; % x-height
+
+%% stem
+lft x1=lft x2=pcshiftx+clubjut; top y1=n2; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+%%%%%%%%%%%%% T
+
+%% bar
+top y33=n2; n3 := n2 - top y33;
+%%lft x31 = n1+pcshiftx;
+lft x31 = n1;
+rt x32=w-pcshiftx;
+%%top y31 = y33-n3; bot y32=y33+n3;
+top y31 = y33-n3; y32=y33;
+x33=1/2[x31,x32];
+pth2 := z31{pdir}..z33..z32{pdir}; % T bar
+n31 := n1; % width of bowl
+%%lft x34 = pcshiftx + n1 + 1/8n31;
+lft x34 = n1 + 1/8n31;
+y34 = 1/2n2;
+x35=x33; bot y35 = 0;
+rt x36 = pcshiftx + n1 + 3/4n31; top y36 = 1/4n2;
+pth3 := z33..z34{down}..z35{right}..z36{pdir}; % T bowl
+
+%%%%%%%%%%%%%%%%% Ligature
+
+z51=z4;
+z55=z33;
+x53 = 5/8[x51,x55];
+top y53 = h;
+vc51 := up;
+vc55 := direction 0 of pth3;
+pth4 := z51{vc51}...z53{right}..z55{vc55}; % loop
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % S stem
+draw_clubserif(1,2,0.5);
+draw_roundserif(2,1,srad);
+draw pth2; % T bar
+draw pth3; % T bowl
+draw pth4; % ligature loop
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100);
+endchar; % end of "st"
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+%%numeric alpha; alpha:=w/8;
+%%pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+pickup halfquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+%%numeric alpha; alpha:=w/8;
+%%pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+pickup halfquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+%%numeric alpha; alpha:=w/8;
+%%pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+pickup halfquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "EGOTH ampersand";
+beginchar("&", 2sb#+hstretch*(5/4x_height#+2jut#), asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx:=sb;
+pickup quill;
+%% alpha looking part
+n1 := w-2pcshiftx-jut; % actual letter width
+n2 := h/ascratio; % x-height
+n3 := 16/16n2; % height of alpha
+x1 = w-pcshiftx; bot y1 = 0;
+x3 = pcshiftx + 12/16n1; y3 = 1/2n3;
+lft x5 = pcshiftx; y5 = y3;
+x4 = x6 = 1/2[x5,x3];
+top y4 = n3; bot y6 = 0;
+rt x8 = w-pcshiftx; top y8=h;
+x9 = x8-2jut; x10-x8 = x8-x9;
+y9=y10=y8;
+pth1 := z1{left}..z3..z4{left}..z5{down}..z6{right}..z3..z8{up};
+%% loop
+z21 = z5;
+z25 = point 1.5 of pth1;
+x23 = 1/2[x21,x25];
+y23 = 6/8[y4,y8];
+pth2 := z21{up}..z23{right}..z25{down};
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw z9--z8; % alpha
+draw pth2; % loop
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,19,21,22,23,24,25);
+endchar; % end of "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothpunct.mf
new file mode 100644
index 00000000000..277719599f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egothpunct.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `egothpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*(3/4x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x4 = x5; y4=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 2/3h;
+
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..z4{down};
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=3/4h; y2=1/4h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=3/4h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothtitle.mf
new file mode 100644
index 00000000000..7a0563ec551
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egothtitle.mf
@@ -0,0 +1,716 @@
+%%
+%% This is file `egothtitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def egothic_font_setup= % contains special stuff for egothic fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,clubjut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb,cap_sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ define_pixels(sqrcjut);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+
+ pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+ threequarterquill := savepen;
+
+ pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+ halfquill := savepen;
+
+ pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+ quarterquill := savepen;
+
+ pickup pencircle xscaled 3/8thick yscaled thin rotated pangle; %% 1/4 too small
+ thinquill := savepen;
+
+ pickup pencircle xscaled thick yscaled thin rotated cappangle;
+ capquill:=savepen;
+
+ pickup pencircle xscaled 3/8thick yscaled thin rotated cappangle; %% 1/4 too small
+ capthinquill := savepen;
+
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of egothic_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr);
+ undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+%%% z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-jut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (jut*pdir);
+ fi
+ z$b = fr[z$,z$c];
+ draw z$a--z$;
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+%% beta=1-fr;
+ ajut=clubjut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+%% vec2=ajut*vec1;
+%% z$a=z$ shifted vec2;
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-clubjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (clubjut*pdir);
+ fi
+ z$a = fr[z$,z$$];
+ draw z$c..z$a{vec1};
+ labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ path pth[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ penpos$wt(thick,pangle);
+ penpos$et(thick,pangle);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ penpos$nh(thick,pangle);
+ penpos$sh(thick,pangle);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ if pangle = 90:
+ z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+ else:
+ if pangle = 0:
+ z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+ else:
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ pt1 := z$minr - z$minl; % direction
+ pt2 := (- ypart pt1, xpart pt1); % perpendicular
+ pt3 := 1/2[z$minl, z$minr];
+ pt4 := pt3 shifted pt2;
+ pt5 := pt3 shifted -pt2;
+ pth1 := pt3--pt4;
+ pth2 := pt3--pt5;
+ z$maxr = pth1 intersectionpoint obfirst;
+ z$maxl = pth2 intersectionpoint obfirst;
+ \fi
+ \fi
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+egothic_font_setup;
+
+
+input egothl; % lower case
+input egothu; % capitals
+input egothpunct; % punctuation
+input egothlig; % the several dashes
+input egothdig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space vstretch*9u#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space vstretch*6u#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+
+fi
+
+bye.
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/egothu.mf b/Master/texmf-dist/fonts/source/public/bookhands/egothu.mf
new file mode 100644
index 00000000000..9c27fc157b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/egothu.mf
@@ -0,0 +1,836 @@
+%%
+%% This is file `egothu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% egothic.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "EGOTH letter A";
+beginchar("A", 2cap_sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% legs
+x1 = 6/16w; top y1=h;
+rt x3 = w-pcshiftx - n1; bot y3= 0;
+pickup capthinquill;
+lft x2 = pcshiftx; bot y2 = 0;
+x21 = x2 + n2; y21 = y2;
+y22 = y21+n2; z22 = whatever[z2,z1];
+pickup capquill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z3; draw (x1-n1,y1)--(x1,y1); draw (x3,y3)--(x3+n1,y3); %% right leg
+pickup capthinquill;
+draw z1--z2; %% left leg
+filldraw z2--z21{left}..{z1-z2}z22--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "A"
+
+cmchar "EGOTH letter B";
+beginchar("B", 2cap_sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := cap_sb;
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+%% stem
+lft x1 = pcshiftx + n1; top y1 = h;
+x2 = x1; bot y2 = 0;
+z12 = 1/2[z1,z2];
+%% bottom bowl
+lft x21 = pcshiftx; bot y21 = 0;
+z22=z2;
+lft x27 = rt x12; y27 = y12;
+rt x25 = w-pcshiftx; y25 = 1/2[y22,y27];
+pth1 := z21--z22{right}..z25{up}..{left}z27;
+%% top bowl
+z32 = z27; z37 = z1;
+x38 = x21; y38 = y37;
+rt x35 = x25; y35 = 1/2[y32,y37];
+pth2 := z38--z37{right}..z35{down}..{left}z27;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw pth1; draw pth2;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "B"
+
+cmchar "EGOTH letter C";
+beginchar("C", 2cap_sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := cap_sb;
+pickup capquill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{3pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "C"
+
+cmchar "EGOTH letter D";
+beginchar("D", 2cap_sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := cap_sb;
+pickup capquill;
+x100 = 0; n1 := rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx+sqrcjut; top y1=h;
+x2 = x1; bot y2 = 0;
+%% bowl
+lft x3 = pcshiftx; y3 = y1;
+z7 = (x3,y2);
+rt x5 = w-pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z1{right}..{down}z5..{left}z2--z7;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; %% stem
+draw pth1;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "D"
+
+cmchar "EGOTH letter E";
+beginchar("E", cap_sb#+caprat*hstretch*(9/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup capquill;
+x100 = 0;
+n1 = rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx+sqrcjut; top y1 = h;
+x2 = x1; bot y2=0;
+%% bars
+lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4=y3;
+x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5;
+x7 = x3; y7 = y2; x8 = x4; y8=y7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw z3--z4; draw z5--z6; draw z7--z8;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,70,100);
+endchar; % end "E"
+
+cmchar "EGOTH letter F";
+beginchar("F", 2cap_sb#+caprat*hstretch*(9/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := cap_sb;
+pickup capquill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stem
+lft x1=lft x2=pcshiftx+sqrcjut; bot y1=h; bot y2=0;
+%% bars
+lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4 = y3;
+x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw z3--z4; draw z5--z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,14,15,16,100);
+endchar; % end "F"
+
+cmchar "EGOTH letter G";
+beginchar("G", 2cap_sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+pcshiftx := cap_sb;
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+%% bar
+rt x52 = w - pcshiftx; y52 = 1/2h;
+x51 = x52 - 2n1; y51 = y52;
+z512 = 1/2[z51,z52];
+x54=x512; bot y54 = 0;
+%% bowl
+lft x2 = pcshiftx; y2 = 1/2h;
+x4 = x512; y4 = 1/4h;
+x3 = x1 = 1/2[x2,x4]; bot y3 = 0; top y1 = h;
+x24 = x512; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+%%draw z4--z512; draw z51--z52;
+draw z512--z54; draw (x512-n1,y512)--(x512,y512);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,24,31,32,33,34,35,36,51,52,512,100);
+endchar; % end "G"
+
+cmchar "EGOTH letter H";
+beginchar("H", 2cap_sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+pickup capquill;
+numeric n[];
+x100 = 0;
+n1 := sqrcjut;
+%% stems
+lft x1=lft x2=pcshiftx+sqrcjut;
+top y1=h; bot y2=0;
+rt x3 = w - pcshiftx - sqrcjut; x4 = x3; y3 = y1; y4 = y2;
+%% bar
+z12 = 7/16[z1,z2]; z34 = 7/16[z3,z4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4; draw z12--z34;
+%% serifs
+draw (x1-n1,y1)--(x1,y1); draw (x2,y2)--(x2+n1,y2);
+draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "H"
+
+cmchar "EGOTH letter I";
+beginchar("I", 2cap_sb#+caprat*hstretch*(thick#+2sqrcjut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+pickup capquill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+x1 = x2 = 1/2w;
+top y1=h; bot y2=0;
+%% serifs
+lft x111 = pcshiftx; rt x112 = w-pcshiftx;
+x211 = x111; x212 = x112;
+draw z1--z2;
+%% serifs
+draw (x111,y1)--(x112,y1);
+draw (x211,y2)--(x212,y2);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "I"
+
+cmchar "EGOTH letter J";
+beginchar("J", 2cap_sb#+caprat*hstretch*(2thick#+sqrcjut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2 = x1; y2 = 1/4h;
+%% hook
+lft x4 = pcshiftx; bot y4 = 0;
+pth1 := z4{pdir}..z2{up};
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2{down}..{-pdir}z4; % stem & hook
+draw (x1-n1,y1)--z1;
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "J"
+
+cmchar "EGOTH letter K";
+beginchar("K", 2cap_sb#+caprat*hstretch*(16/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+%% stem
+lft x1 = pcshiftx+n1; top y1 = h;
+x2 = x1; bot y2 = 0;
+z12 = 1/2[z1,z2];
+%% top arm
+x3 = rt x12; y3 = y12;
+x5 = 1/2[w - pcshiftx, x1]; y5 = y1;
+%%pth1 := z3{pdir}..{up}z5;
+pth1 := z3--z5;
+%% lower arm
+z7 = z3;
+rt x9 = w-pcshiftx; bot y9 = 0;
+pth2 := z7{-ppdir}..{right}z9;
+pickup capquill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1; draw pth2;
+draw (x1-n1,y1)--(x1,y1);
+draw (x2-n1,y2)--(x2+n1,y2);
+draw (x5,y5)--(x5+n1,y5);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "K"
+
+cmchar "EGOTH letter L";
+beginchar("L", 2cap_sb#+caprat*hstretch*(9/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+lft x1=pcshiftx+n1; bot y1=h;
+x2=x1; bot y2 =0;
+x3 = x2; rt x4 = w-pcshiftx; y3 = y4 = y2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4;
+draw (x1-n1,y1)--(x1,y1);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "L"
+
+cmchar "EGOTH letter M";
+beginchar("M", 2cap_sb#+caprat*hstretch*(19/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% thick stem tops
+lft x1=pcshiftx+n1; top y1=h;
+rt x3 = w - pcshiftx -2n1; y3 = y1;
+%% right stem bottom
+rt x4 = w - pcshiftx - n1; bot y4 = 0;
+%% the V
+x24 = 1/2w; bot y24 = 0;
+%% left stem top and bottom
+x81 = lft x1; y81 = top y1;
+pickup capthinquill;
+lft x11 = x81; top y11 = y81;
+lft x2 = pcshiftx; bot y2 = 0;
+x2a = x2+n2; y2a = y2;
+y2b = y2+n2; z2b = whatever[z2,z11];
+pickup capquill;
+%% thin middle top and bottom
+x83 = lft x3; y83 = top y3;
+x824 = rt x24; y824 = bot y24;
+pickup capthinquill;
+lft x13 = x83; top y13 = y83;
+rt x124 = x824; bot y124 = y824;
+pickup capquill;
+pth124 := z1{-ppdir}..z24;
+pth34 := z3{down}..z4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%% thick legs
+draw pth124; draw pth34;
+draw (x1-n1,y1)--(x1,y1); draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4);
+%% thin legs
+pickup capthinquill;
+draw z11--z2;
+filldraw z2--z2a{left}..{z11-z2}z2b--cycle;
+%%%%pickup quarterquill;
+ draw z13--z124;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "M"
+
+cmchar "EGOTH letter N";
+beginchar("N", 2cap_sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% diagonal
+lft x1=pcshiftx+n1; top y1=h;
+rt x4 = w -pcshiftx-n1; bot y4 = 0;
+x101 = lft x1;
+x104 = rt x4;
+pth1 := z1{-ppdir}..z4;
+%% stems
+pickup capthinquill;
+lft x21 = x101; top y21 =h;
+x22 = x21; bot y22 = 0;
+x22a = x22+n2; y22a=y22;
+x22b = x22; y22b=y22+n2;
+rt x24 = x104; bot y24 = 0;
+x23 = x24; top y23 = h;
+x23a = x23-n2; x23b = x23+n1; y23a = y23b = y23;
+x23c = x23; y23c = y23-n2;
+pickup capquill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%% diagonal
+draw pth1; draw (x1-n1,y1)--(x1,y1);
+%% stems
+pickup capthinquill;
+draw z21--z22;
+filldraw z22--z22a{left}..{up}z22b--cycle;
+draw z23--z24;
+filldraw z23--z23a{right}..{down}z23c{up}..{right}z23b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,23,23a,23b,23c,100);
+endchar; % end "N"
+
+cmchar "EGOTH letter O";
+beginchar("O", 2cap_sb#+caprat*hstretch*(17/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+pickup capquill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "EGOTH letter P";
+beginchar("P", 2cap_sb#+caprat*hstretch*(13/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+pickup capquill;
+x100 = 0;
+n1:= sqrcjut;
+%% stem
+lft x1=lft x2=pcshiftx+n1;
+top y1=h; bot y2=0;
+z12 = 1/2[z1,z2];
+%% bowl
+lft x3 = pcshiftx; y3 = y1;
+x7 = x12; top y7 = y12;
+rt x5 = w-pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z1{right}..z5{down}..{left}z7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1;
+%%draw (x2-n1,y2)--(x2+n1,y2);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "EGOTH letter Q";
+beginchar("Q", 2cap_sb#+caprat*hstretch*(17/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup capquill;
+%% bowl
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+pth1 := z1..z4..z3..z2..cycle;
+%% tail
+n1 := rt x1 - lft x1;
+pth2 := z1..z2..z3..z4;
+z5 = directionpoint pdir of pth1;
+x7 = x3 + 2n1; top y7 = -n1;
+pth3 := z5{-ppdir}..{pdir}z7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth3;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "Q"
+
+cmchar "EGOTH letter R";
+beginchar("R", 2cap_sb#+caprat*hstretch*(15/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup capquill;
+x100 = 0;
+n1:= sqrcjut;
+n3 := sqrcjutrat*sqrcjut;
+n2 := 11/15; %% P/R width ratio
+%% stem
+pickup capthinquill;
+lft x1=lft x2=pcshiftx+n1;
+top y1=h; bot y2=0;
+x2a = x2 + n3; y2a = y2;
+x2b = x2; y2b = y2+n3;
+z12 = 1/2[z1,z2];
+pickup capquill;
+%% bowl
+lft x3 = pcshiftx; top y3 = h; x13 = x1; y13 = y3;
+lft x7 = x12; top y7 = y12;
+rt x5 = w*n2 - pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z13{right}..z5{down}..{left}z7;
+%% leg
+z21 = z7;
+rt x23 = w-pcshiftx; bot y23 = 0;
+pth2 := z21{-ppdir}..{right}z23;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2;
+pickup capthinquill;
+draw z1--z2;
+filldraw z2--z2a{left}..{up}z2b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "R"
+
+cmchar "EGOTH letter S";
+beginchar("S", 2cap_sb#+caprat*hstretch*(15/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := cap_sb;
+pickup capquill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+x1 = x3 = x5 = 1/2w;
+top y1 = h; bot y5 = 0; y3 = 1/2[y1,y5];
+lft x2 = pcshiftx; rt x4 = w-pcshiftx;
+y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5];
+rt x101 = w-pcshiftx; top y101 = y1;
+lft x102 = pcshiftx; bot y102 = y5;
+pth1 := z101..z1..z2..z3..z4..z5..z102;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "S"
+
+cmchar "EGOTH letter T";
+beginchar("T", 2cap_sb#+caprat*hstretch*(10/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup capquill;
+%% bar
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+top y1 = top y2 = h;
+pth1 := z1{pdir}..{pdir}z2;
+%% stem
+z3 = 1/2[z1,z2];
+x4 = x3; bot y4 = 0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % bar
+draw z3--z4; % stem
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "T"
+
+cmchar "EGOTH letter U";
+beginchar("U", 2cap_sb#+caprat*hstretch*(15/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+%% left stem
+lft x1 = pcshiftx + n1; top y1 = h;
+lft x13=pcshiftx; y13=1/3h;
+rt x3=w-pcshiftx-n1; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+pth1 := z1..z13{down}..z14{right}..{pdir}z33;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw (x1-n1,y1)--(x1,y1);
+draw z3--z4;
+draw (x3-n1,y3)--(x3,y3);
+draw (x4,y4)--(x4+n1,y4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "EGOTH letter V";
+beginchar("V", 2cap_sb#+caprat*hstretch*(13/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% stem tops
+lft x1 = pcshiftx + n1; top y1 = h;
+pickup capthinquill;
+rt x3 = w - pcshiftx; top y3 = h;
+x3a = x3-n2; y3a=y3;
+x3b = x3; y3b = y3-n2;
+pickup capquill;
+%% bottom
+x13 = 10/16[x1,x3]; bot y13 = 0;
+x83 = rt x13; y83 = top y13;
+pth1 := z1{down}..z13;
+pth2 := z3{down}..z83;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw (x1-n1,y1)--(x1,y1);
+
+pickup capthinquill;
+draw pth2;
+filldraw z3--z3a{right}..{down}z3b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "EGOTH letter W";
+beginchar("W", 2cap_sb#+caprat*hstretch*(22/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% thick leg tops
+lft x1 = pcshiftx + n1; top y1 = h;
+x3 = 1/2w; y3 = y1;
+%% thin leg top
+pickup capthinquill;
+rt x5 = w-pcshiftx; top y5 = h;
+x5a = x5-n2; y5a = y5;
+x5b = x5; y5b = y5-n2;
+pickup capquill;
+%% V bottoms
+x13 = 1/2[x1,x3]; bot y13 = 0;
+x35 = 1/2[x3,x5]; bot y35 = 0;
+pth113 := z1{down}..z13;
+pth335 := z3{down}..z35;
+x83 = x3; y83 = top y3;
+x813 = rt x13; y813 = bot y13;
+x835 = rt x35; y835 = bot y35;
+%% thin legs
+pickup capthinquill;
+rt x113 = x813; bot y113 = y813;
+rt x135 = x835; bot y135 = y835;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+pickup capquill;
+draw pth113; draw pth335; draw (x1-n1,y1)--(x1,y1);
+pickup capthinquill;
+draw z113..{up}z3; draw z135..{up}z5;
+filldraw z5--z5a{right}..{down}z5b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "EGOTH letter X";
+beginchar("X", 2cap_sb#+caprat*hstretch*(17/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := cap_sb;
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% diag top left to bottom right
+lft x1=pcshiftx+n1; top y1 = h;
+rt x2 = w - pcshiftx - n1; bot y2 = 0;
+%% diag top right to bottom left
+pickup capthinquill;
+rt x3 = w - pcshiftx - n1; top y3 = h;
+lft x4 = pcshiftx; bot y4 = 0;
+x3a = x3-n2; x3b = x3+n1; y3a = y3b = y3;
+y3c = y3-n2; z3c = whatever[z3,z4];
+x4a = x4+n2; y4a = y4;
+y4b = y4+n2; z4b = whatever[z4,z3];
+pickup capquill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw (x1-n1,y1)--(x1,y1);
+draw (x2,y2)--(x2+n1,y2);
+pickup capthinquill;
+draw z3--z4;
+filldraw z3--z3a{right}..{z4-z3}z3c{z3-z4}..{right}z3b--cycle;
+filldraw z4--z4a{left}..{z3-z4}z4b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "X"
+
+cmchar "EGOTH letter Y";
+beginchar("Y", 2cap_sb#+caprat*hstretch*(13/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+pickup capquill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% upright
+x5 = 1/2w; y5 = 1/2h;
+x6 = x5; bot y6 = 0;
+%% left stem top
+lft x1 = pcshiftx + n1; top y1 = h;
+%% right stem
+x85 = rt x5; y85 = top y5;
+pickup capthinquill;
+rt x3=w-pcshiftx; top y3 = h;
+x4=x85; y4 = y85;
+x3a=x3-n2; y3a = y3;
+y3b = y3-n2; z3b = whatever[z3,z4];
+pickup capquill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5--z6; draw (x6-n1,y6)--(x6+n1,y6); % stem
+draw z1--z5; draw (x1-n1,y1)--(x1,y1); % left arm
+pickup capthinquill;
+draw z3--z4;
+filldraw z3--z3a{right}..{z4-z3}z3b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "EGOTH letter Z";
+beginchar("Z", 2cap_sb#+caprat*hstretch*(13/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+n1 := sqrcjutrat*sqrcjut;
+path pth[];
+pcshiftx := cap_sb;
+pickup capquill;
+%% top bar ends
+lft x1 = pcshiftx; rt x2 = w -pcshiftx; top y1 = top y2 = h;
+x101 = lft x1; y101 = top y1;
+%% bottom bar ends
+lft x3 = pcshiftx; rt x4 = w -pcshiftx; bot y3 = bot y4 = 0;
+x104 = rt x4; y104 = bot y4;
+pickup stylus;
+lft x11 = x101; top y11 = y101;
+x12 = x11; y12 = y11-n1;
+x13 = x11+n1; y13 = y11;
+rt x14 = x104; bot y14 = y104;
+x15 = x14; y15 = y14 + n1;
+x16 = x14 - n1; y16 = y14;
+pickup capquill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4;
+draw z2--z3;
+pickup stylus;
+filldraw z11--z12{up}..{right}z13--cycle;
+filldraw z14--z15{down}..{left}z16--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,14,14,16,20o,20i,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hmin10.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmin10.mf
new file mode 100644
index 00000000000..cb133dab348
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hmin10.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `hmin10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HMIN10.MF Humanist Miniscule at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HMIN"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=25; % pen angle
+ ascratio:=7/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+%%comma_width#:=5/4dot_size#;
+comma_width#:=4/4dot_size#;
+
+generate hmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hmin17.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmin17.mf
new file mode 100644
index 00000000000..bdff7bc0f15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hmin17.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `hmin17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HMIN17.MF Humanist Miniscule at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HMIN"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=25; % pen angle
+ ascratio:=7/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+%%comma_width#:=5/4dot_size#;
+comma_width#:=4/4dot_size#;
+
+generate hmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hmin7.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmin7.mf
new file mode 100644
index 00000000000..ab72e6094d5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hmin7.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `hmin7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HMIN7.MF Humanist Miniscule at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HMIN"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=25; % pen angle
+ ascratio:=7/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+%%comma_width#:=5/4dot_size#;
+comma_width#:=4/4dot_size#;
+
+generate hmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminb10.mf
new file mode 100644
index 00000000000..e4f0ae89b33
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hminb10.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `hminb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HMINB10.MF Humanist Miniscule Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HMINB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=25; % pen angle
+ ascratio:=7/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+%%comma_width#:=5/4dot_size#;
+comma_width#:=4/4dot_size#;
+
+generate hmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminb17.mf
new file mode 100644
index 00000000000..3f0bdd12541
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hminb17.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `hminb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HMINB17.MF Humanist Miniscule Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HMINB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=25; % pen angle
+ ascratio:=7/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+%%comma_width#:=5/4dot_size#;
+comma_width#:=4/4dot_size#;
+
+generate hmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminb7.mf
new file mode 100644
index 00000000000..f26b9d8ba96
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hminb7.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `hminb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HMINB7.MF Humanist Miniscule Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HMINB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.00;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=25; % pen angle
+ ascratio:=7/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+%%comma_width#:=5/4dot_size#;
+comma_width#:=4/4dot_size#;
+
+generate hmintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hmindig.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmindig.mf
new file mode 100644
index 00000000000..b1b9c4dd257
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hmindig.mf
@@ -0,0 +1,223 @@
+%%
+%% This is file `hmindig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "Uncial digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "Uncial digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+o; top y1=h-2thin;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx-o; y3=3/4h;
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(5,6,thin); % foot
+draw z1..z2{right}..z3{down}..{-pdir}z5wl; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "Uncial digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+%%lft x6=pcshiftx+3thin; x7=x6;
+x6=1/2[x3,x9]; x7=x6;
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl
+draw z7{right}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "Uncial digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-jut;
+y1=h; bot y2=0;
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % main stem
+draw_wave(3,4,thin); % crossbar
+draw z3wl--z1; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "Uncial digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx; y2=y1;
+x3=x2; y3=0.5h+thin;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=w/2; bot y6=0;
+lft x7=pcshiftx; bot y7=2thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(2,1,thin); % top squiggle
+draw z3{pdir}..z5{down}..z6{left}..z7; % curve
+draw z2wl--z3; % vertical
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "Uncial digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "6"
+
+cmchar "Uncial digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,2,thin); % top bar
+draw z1wr..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "Uncial digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "Uncial digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "Uncial digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminl.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminl.mf
new file mode 100644
index 00000000000..caf09f4498e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hminl.mf
@@ -0,0 +1,786 @@
+%%
+%% This is file `hminl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "HMIN letter a";
+beginchar("a", 2sb#+hstretch*(11/11x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+n1 := w - 2pcshiftx -jut; % effective letter width
+rt x1 = w-pcshiftx-jut; top y1=h;
+x2 = x1; bot y2=0;
+z16 = 1/6[z2,z1];
+rt x6 = x16; y6=y16;
+lft x4 = pcshiftx; y4 = 1/2h;
+pth1 := z1{down}..z2;
+pr1 := direction 1 of pth1;
+z20 = z2 shifted -10pr1;
+
+z11 = point 3/13 of pth1; z15 = point 10/13 of pth1;
+lft x13 = pcshiftx; y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+else:
+ % draw stem
+ draw pth1;
+ draw_roundserif(1,2,srad);
+ draw_roundserif(2,20,srad);
+ % draw bowl
+%% draw z1{-pdir}..z4{down}..z6{pdir};
+ draw z11{-pdir}..z13{down}..z15{pdir};
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+cmchar "HMIN letter b";
+beginchar("b", 2sb#+hstretch*(13/11x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+x12=x2; bot y12=y2;
+x3 = x1; y3=1/2n2;
+rt x5 = w-pcshiftx; y5=y3;
+x4 = 1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=n2;
+pth1 := z1..z3{down}..z4{right}.. z5{up};
+z98=(0,3/4n2); z99=(w,y98);
+pth2 := z98--z99;
+z7 = pth1 intersectionpoint pth2;
+if ductus:
+ pickup stylus;
+fi
+%%draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir};
+draw z1--z2;
+draw_flatserif(1,2,srad);
+draw z12..z4{right}..z5{up}..z6{left}..z7{-pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "HMIN letter c";
+beginchar("c", 2sb#+hstretch*(11/11x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "HMIN letter d";
+beginchar("d", 2sb#+hstretch*(13/11x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio; % x-height
+rt x1=w-pcshiftx-jut; top y1=h;
+x2 = x1; bot y2=0;
+x3 = x1; y3 = 1/4n1;
+lft x5 = pcshiftx; y5=1/2n1;
+x4 = 1/2[x3,x5]; bot y4 = 0;
+x6=x4; top y6 = n1;
+x7=x3; y7=3/4n1;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3..z4{left}..z5{up}..z6{right}..z7;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "CMIN letter e";
+beginchar("e", sb#+hstretch*(12/11x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-pcshiftx; % actual letter width
+n2 := 7/8n1; % width of bowl
+x1 = pcshiftx + 5/8n2; top y1=h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = pcshiftx + 1/2n2; bot y3 = 0;
+rt x4 = pcshiftx + n2; y4 = 1/4h;
+z98=(0,5/8h); z99=(2w,y98);
+pth1 := z98--z99;
+pth2 := z1{left}..z2{down}..z3{right};
+z7 = pth1 intersectionpoint pth2;
+rt x17 = w; y17=y7;
+rt x8 =pcshiftx+n2; y8=y2;
+pth3 := z1{right}..z8{down}..z3{left};
+z9 = pth1 intersectionpoint pth3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z9{up}..z1{left}..z2{down}..z3{right}..z4{pdir};
+draw z7--z17;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,70,100);
+endchar; % end "e"
+
+cmchar "HMIN letter f";
+beginchar("f", 2sb#+hstretch*(11/11x_height#+jut#),
+ (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+rt x6=w-pcshiftx; y6 = 2/3h;
+x5 = 2/3[x4,x6]; top y5=h;
+%% bar
+x14=pcshiftx; top y14=n1;
+rt x16 = w -pcshiftx; y16 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_roundserif(2,1,srad);
+draw z1{up}...z5{right}...z6; % top
+draw z14--z16; % bar
+ductus:=false;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,14,15,16,100);
+endchar; % end "f"
+
+cmchar "CMIN letter g";
+beginchar("g", 2sb#+hstretch*(16/11x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := 4/5w - 2pcshiftx; % width of top o
+%% top O
+x1 = x3 = pcshiftx + 1/2n1; top y1=h; bot y3=1/8h;
+lft x4 = pcshiftx; rt x2 = pcshiftx+n1; y2 = y4 = 1/2[y1,y3];
+
+%% top flick
+lft x11 = rt x1; y11=y1;
+rt x13 = w-pcshiftx; y13 = h;
+
+%% bottom O
+x31=x3; top y31= -1/8d;
+x33=x31; top y33 = -d;
+lft x32 = x2; y32 = 1/2[y31,y33];
+lft x34 = pcshiftx; y34=y32;
+
+%% link
+x44=1/2[x34,x31]; y44=1/2[y3,y31];
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle; % top O
+draw z11{right}..z13{pdir}; % flick
+draw z31{right}..z32{down}..z33{left}..{up}z34..cycle; % bottom O
+draw z3{left}..z44{down}..z31{right}; % link
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "g"
+
+cmchar "HMIN letter h";
+beginchar("h", 2sb#+hstretch*(13/11x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+n1 := h/ascratio; % x-height
+z3=(x1,6/8n1);
+rt x5 = w-pcshiftx; y5=1/2n1;
+x4=1/2[x3,x5]; top y4 = n1;
+%%lft x6=x4; bot y6=0;
+x6=1/2[x4,x5];
+bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3..z4{right}..z5{down}..z6{-pdir};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "CMIN letter i";
+beginchar("i", 2sb#+hstretch*(thick#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% dot
+x22 = x21=x1;
+bot y22 = 2h - bot y1;
+bot y21 = top y22;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z21--z22; %% dot
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "CMIN letter j";
+beginchar("j", sb#+hstretch*(3/8x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% dot
+x22 = x21=x1;
+bot y22 = 2h - bot y1;
+bot y21 = top y22;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw_flatserif(1,2,srad);
+draw z21--z22; % dot
+draw z2{down}..z3{-pdir}; % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "HMIN letter k";
+beginchar("k", 2sb#+hstretch*(14/11x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% stem
+n1 = h/ascratio; % x-height
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 1/2n1;
+rt x5=5/8[x1,w-pcshiftx]; top y5=n1;
+x4=1/2[x3,x5]; top y4=n1;
+pth1 := z3{pdir}..z5{up};
+
+x29=x1; top y29 = 7/8n1;
+rt x25=5/8[x1,w-pcshiftx]; y25=6/8[y3,y29];
+x27=1/2[x29,x25]; top y27=n1;
+pth1 := z3{pdir}..z25{up}..z27{left}..z29;
+pth1 := z3{pdir}..z25..z27{left}..z29;
+
+%% lower arm
+pth2 := (rt x1,0)--(rt x1,h);
+z13 = pth1 intersectionpoint pth2;
+pickup threequarterquill;
+lft x14 = x13; bot y14 = y13;
+rt x7=w-pcshiftx; bot y7=0;
+
+pth3 := z14{pdir}..z25..z27{left}..z29;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+%%draw pth1; % upper arm
+draw pth3; % upper arm
+pickup threequarterquill;
+%%draw z14{down}..z7{-ppdir}; % lower arm
+%%draw z14{down}..z7; % lower arm
+draw z14{-ppdir}..z7{right}; % lower arm
+pickup quill;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+cmchar "HMIN letter l";
+beginchar("l", 2sb#+hstretch*(9/11x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+n1 := top y1 - y1;
+x2=x1; bot y2 =3n1;
+rt x4 = w-pcshiftx; bot y4=n1;
+x3=1/2[x2,x4]; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2..z3{right}..z4;
+draw_flatserif(1,2,srad);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "HMIN letter m";
+beginchar("m", 2sb#+hstretch*(19/11x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+%% start of bowl
+x13=x1; y13=3/4h;
+%% bottom of right and middle stems
+rt x6 = w -pcshiftx - jut; y6=y2;
+z4 = 1/2[z2,z6];
+%% top of middle and right stems
+x3=x4; y3=y1;
+x5=x6; y5=y13;
+%% top of bowls
+x14=2/3[x13,x3]; top y14 = h;
+x33=x4; y33=y13;
+x34=2/3[x33,x5]; y34 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z33{down}--z4;
+draw_roundserif(4,3,srad);
+draw z33{pdir}..z34{right}..z5{down}--z6;
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "HMIN letter n";
+beginchar("n", 2sb#+hstretch*(12/11x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+x13=x1; y13=3/4h;
+%% right stem
+rt x4 = w-pcshiftx-jut; y4=y2;
+x3 = x4; y3 = y13;
+x14 = 2/3[x13,x3]; top y14 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z3{down}--z4;
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+cmchar "CMIN letter o";
+beginchar("o", 2sb#+hstretch*(15/11x_height#), % could be 15/11
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+draw z1..z2..z3..z4..cycle;
+z5=(pcshiftx,-o);
+obowl(5, w-2pcshiftx, h+2o);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw obfirst; draw obsecond; draw obouter; draw obinner;
+else:
+%% fill obouter; unfill obinner;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "CMIN letter p";
+beginchar("p", 2sb#+hstretch*(13/11x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-d;
+%% bowl % from "d"
+z3=3/4[(x1,0),z1];
+rt x5 = w-pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; top y4 = h;
+x6=x4; bot y6=0;
+z7=1/4[(x1,0),z1];
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad)
+draw z3{pdir}..z4{right}..z5{down}..z6{left}..z7; % bowl (from d)
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "CMIN letter q";
+beginchar("q", 2sb#+hstretch*(13/11x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=-d;
+%% bowl
+z3=1/4[(x1,0),z1];
+lft x5=pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=h;
+z7=3/4[(x1,0),z1];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+%%draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "CMIN letter r";
+beginchar("r", 2sb#+hstretch*(10/11x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=3/4[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{pdir}..z4{right}..z5{down};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "HMIN letter s";
+beginchar("s", 2sb#+hstretch*(11/11x_height#+jut#), % 13/11 seems too wide
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x2=x4=x6=1/2w;
+rt x1 = rt x5 = w-pcshiftx;
+lft x3 = lft x7 = pcshiftx;
+top y2=h; bot y6=0;
+y4 = 7/16[y6,y2];
+n1 := top y2 - y2;
+y3 = 1/2[y4,y2]; y5 = 1/2[y4,y6];
+y1 = y2-n1;
+y7 = y6+n1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "s"
+
+cmchar "CMIN letter t";
+beginchar("t", 2sb#+hstretch*(8/11x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+lft x11 = pcshiftx; rt x12=w-pcshiftx;
+top y11= top y12=h;
+n1 := top y11 - y11;
+%% stem
+lft x1=pcshiftx+jut; bot y1=h+n1;
+x2=x1; bot y2 = 2n1;
+rt x4 = w-pcshiftx; bot y4 = n1;
+x3 = 1/2[x2,x4]; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z11--z12; % bar
+draw z1--z2..z3..z4; % stem
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "CMIN letter u";
+beginchar("u", 2sb#+hstretch*(11/11x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,4,srad); % right stem
+draw_flatserif(3,4,srad);
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "CMIN letter v";
+beginchar("v", 2sb#+hstretch*(13/11x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + jut; top y1 = h;
+bot y3 = 0;
+%% right stem
+rt x5=w-pcshiftx; top y5 = h;
+x3=5/8[x1,x5];
+
+z11=(x1,0); z15=(x5,0);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z3; % left stem
+draw_flatserif(1,11,srad);
+draw z5{down}..z3; % right stem
+draw_flatserif(5,15,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "CMIN letter w";
+beginchar("w", 2sb#+hstretch*(21/11x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x5=w-pcshiftx-jut; y5=y1;
+x6=x5; bot y6=0;
+z53=1/4[z6,z5]; % start of bowl
+z3 = 1/2[z1,z5];
+z33=(x3,y13);
+x14=1/3[x1,x3]; bot y14=0;
+x34=1/3[x3,x5]; y34=y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir}; % left
+draw_flatserif(1,13,srad);
+draw z3--z33{down}..z34{right}..z53{pdir}; % middle
+draw_flatserif(3,33,srad);
+draw_tstem(5,6,srad); % right stem
+draw_flatserif(5,6,srad);
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "CMIN letter x";
+beginchar("x", 2sb#+hstretch*(13/11x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+
+lft x1 = pcshiftx + jut; y1=h;
+rt x2 = w - pcshiftx - jut; y2 =0;
+
+lft x21=pcshiftx; bot y21=0;
+rt x22=w-pcshiftx; top y22=h;
+z12=14/24[z1,z2];
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw_roundserif(1,2,srad);
+draw_roundserif(2,1,srad);
+
+draw z21..z12..z22{up};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+cmchar "CMIN letter y";
+beginchar("y", 2sb#+hstretch*(14/11x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + jut; top y1 = h;
+bot y3 = 0;
+%% right stem
+rt x5=w-pcshiftx; top y5 = h;
+lft x9=-1/2w; bot y9 = -d;
+pth1 := z9{right}..z5{up};
+pth2 := (0,y3)--(w,y3);
+z99 = pth1 intersectionpoint pth2;
+x3 = x99;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z3; % left stem
+draw_flatserif(1,3,srad);
+draw pth1; % right stem
+draw_flatserif(5,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "CMIN letter z";
+beginchar("z", 2sb#+hstretch*(12/11x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+top y1 = top y2 = h;
+%% bottom bar
+x3=x1; x5=x2; x4=1/2[x3,x5];
+bot y3 = bot y4 = 0;
+bot y5 = y4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % top bar
+draw z3--z4..z5; % bottom bar
+draw z2--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminlig.mf
new file mode 100644
index 00000000000..5c9b142b31c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hminlig.mf
@@ -0,0 +1,262 @@
+%%
+%% This is file `hminlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+ligtable "c": "t"=:oct"014";
+ligtable "s": "t"=:oct"015";
+
+
+cmchar "The ct ligature";
+beginchar(oct"014", 2sb#+hstretch*(20/11x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair vc[];
+pickup quill;
+
+%%%%%%%%%%% C
+
+n1:=1/2(w-2pcshiftx); % actual letter width
+n2 := h/ascratio; % x-height
+x1=pcshiftx + 1/2n1; top y1 = n2;
+lft x2 = pcshiftx; y2 = 1/2n2;
+x3 = x1; bot y3 = 0;
+rt x4 = n1; y4 = 1/4n2;
+x6 = x4;
+%%y6 = 3/4n2;
+top y6 = y1;
+pth1 := z6..z1{left}..z2{down}..z3{right}..z4{pdir};
+
+%%%%%%%%%%%%% T
+
+%% bar
+top y33=n2; n3 := n2 - top y33;
+%%lft x31 = n1+pcshiftx;
+lft x31 = n1;
+rt x32=w-pcshiftx;
+%%top y31 = y33-n3; bot y32=y33+n3;
+%%top y31 = y33-n3; y32=y33;
+y31 = y32 = y33;
+x33=1/2[x31,x32];
+pth2 := z31--z32; % T bar
+
+n4 := top y33 - y33;
+x34 = x33; bot y34 = 2n4;
+rt x36 = w - pcshiftx; bot y36 = n4;
+x35 = 1/2[x34,x36]; bot y35 = 0;
+pth3 := z33--z34..z35..z36; % T stem
+
+%%%%%%%%%%%%%%%%% Ligature
+
+z51=z6;
+z55=z33;
+x53 = 1/2[x51,x55];
+top y53 = h;
+vc51 := direction 0 of pth1;
+vc55 := direction 0 of pth3;
+pth4 := z51{vc51}..z53{right}..z55{vc55}; % loop
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % C
+draw pth2; % T bar
+draw pth3; % T bowl
+draw pth4; % ligature loop
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100);
+endchar; % end of "ct"
+
+
+cmchar "The st ligature";
+beginchar(oct"015", 2sb#+hstretch*(15/11x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair vc[];
+pickup quill;
+%%%%%%%%%%% S
+
+n1:=3/7(w-2pcshiftx-jut); % actual letter width
+n2 := h/ascratio; % x-height
+
+%% stem
+lft x1=lft x2=pcshiftx+jut; top y1=n2; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+%%%%%%%%%%%%% T
+
+%% bar
+top y33=n2; n3 := n2 - top y33;
+%%lft x31 = n1+pcshiftx;
+lft x31 = n1;
+rt x32=w-pcshiftx;
+%%top y31 = y33-n3; bot y32=y33+n3;
+%%top y31 = y33-n3; y32=y33;
+y31 = y32 = y33;
+x33=1/2[x31,x32];
+pth2 := z31--z32; % T bar
+
+n4 := top y33 - y33;
+x34 = x33; bot y34 = 2n4;
+rt x36 = w - pcshiftx; bot y36 = n4;
+x35 = 1/2[x34,x36]; bot y35 = 0;
+pth3 := z33--z34..z35..z36; % T stem
+
+%%%%%%%%%%%%%%%%% Ligature
+
+z51=z4;
+z55=z33;
+x53 = 5/8[x51,x55];
+top y53 = h;
+vc51 := up;
+vc55 := direction 0 of pth3;
+pth4 := z51{vc51}...z53{right}..z55{vc55}; % loop
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % S stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw pth2; % T bar
+draw pth3; % T bowl
+draw pth4; % ligature loop
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,31,32,33,34,35,36,100);
+endchar; % end of "st"
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),7/8asc_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),7/8asc_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup threequarterquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+z31 = z21 shifted (-jut*pdir);
+draw z21--z22;
+draw z31--z21;
+draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup threequarterquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+z31 = z21 shifted (-jut*pdir);
+draw z21--z22;
+%%draw_roundserif(21,22,srad);
+draw z31--z21;
+draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup threequarterquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+z31 = z21 shifted (-jut*pdir);
+draw z21--z22;
+%%draw_roundserif(21,22,srad);
+draw z31--z21;
+draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "HMIN ampersand";
+beginchar("&", 2sb#+hstretch*(15/11x_height#+2jut#), asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx:=sb;
+pickup quill;
+%% alpha looking part
+n1 := w-2pcshiftx-jut; % actual letter width
+n2 := h/ascratio; % x-height
+n3 := 16/16n2; % height of alpha
+rt x1 = w-pcshiftx; bot y1=0;
+
+x3 = pcshiftx + 12/16n1; y3 = 1/2n2;
+
+lft x5 = pcshiftx + thick; y5 = 1/2[n2,h];
+rt x7 = lft x5 + 1/2n1; y7 = y5;
+x6 = 1/2[x5,x7]; top y6 = h;
+
+lft x9 = pcshiftx; y9 = 1/2n2;
+rt x10 = pcshiftx + 1/2n1; bot y10 = 0;
+
+rt x12 = w - pcshiftx; y12 = y7;
+
+x4 = x6; y4 = 1/2[y9,y5];
+
+pth1 = z1..z4..z5{up}..z6{right}..z7{down}..z9{down}..z10{right}..{up}z12;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,16,17,18,19,21,22,23,24,25);
+endchar; % end of "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminpunct.mf
new file mode 100644
index 00000000000..aad6f0cae47
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hminpunct.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `hminpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*(11/11x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x4 = x5; y4=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 2/3h;
+
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..z4{down};
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=2/3h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),7/8asc_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),7/8asc_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hmintitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/hmintitle.mf
new file mode 100644
index 00000000000..967ff8b8cb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hmintitle.mf
@@ -0,0 +1,706 @@
+%%
+%% This is file `hmintitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def humanist_font_setup= % contains special stuff for humanist fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,clubjut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+
+ pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+ threequarterquill := savepen;
+
+ pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+ halfquill := savepen;
+
+ pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+ quarterquill := savepen;
+
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of humanist_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr);
+ undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+%%% z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-jut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (jut*pdir);
+ fi
+ z$b = fr[z$,z$c];
+ draw z$a--z$;
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+%% beta=1-fr;
+ ajut=clubjut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+%% vec2=ajut*vec1;
+%% z$a=z$ shifted vec2;
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-clubjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (clubjut*pdir);
+ fi
+ z$a = fr[z$,z$$];
+ draw z$c..z$a{vec1};
+ labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu{down}..{left}z$uv--z$vu{right}..{up}z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu{down}..{right}z$uv--z$vu{left}..{up}z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ path pth[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ penpos$wt(thick,pangle);
+ penpos$et(thick,pangle);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ penpos$nh(thick,pangle);
+ penpos$sh(thick,pangle);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ if pangle = 90:
+ z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+ else:
+ if pangle = 0:
+ z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+ else:
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ pt1 := z$minr - z$minl; % direction
+ pt2 := (- ypart pt1, xpart pt1); % perpendicular
+ pt3 := 1/2[z$minl, z$minr];
+ pt4 := pt3 shifted pt2;
+ pt5 := pt3 shifted -pt2;
+ pth1 := pt3--pt4;
+ pth2 := pt3--pt5;
+ z$maxr = pth1 intersectionpoint obfirst;
+ z$maxl = pth2 intersectionpoint obfirst;
+ \fi
+ \fi
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+humanist_font_setup;
+
+
+input hminl; % lower case
+input hminu; % capitals
+input hminpunct; % punctuation
+input hminlig; % the several dashes
+input hmindig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space vstretch*9u#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space vstretch*6u#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+
+fi
+
+bye.
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hminu.mf b/Master/texmf-dist/fonts/source/public/bookhands/hminu.mf
new file mode 100644
index 00000000000..a519672fe45
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hminu.mf
@@ -0,0 +1,765 @@
+%%
+%% This is file `hminu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% humanist.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "HMIN letter A";
+beginchar("A", 2sb#+caprat*hstretch*(20/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+x100 = 0;
+n2 := rt x100 - lft x100;
+n1 := w - 2pcshiftx - n2; % effective letter width
+%% legs
+x1 = pcshiftx + n1/2; top y1=h;
+lft x2 = pcshiftx; bot y2 = 0;
+rt x3 = pcshiftx + n1; y3=y2;
+rt x4 = w-pcshiftx; y4=y3;
+%% bar
+z12=10/16[z1,z2]; z83=10/16[z1,z3];
+z13 = (x83 - n2,y83);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z1--z3; draw z12--z13; %% legs and bar
+draw z3--z4; draw z2--(x2+n2,y2); draw (x1-n2,y1)--z1; %% serifs
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "A"
+
+cmchar "HMIN letter B";
+beginchar("B", 2sb#+caprat*hstretch*(14/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx + n1; top y1 = h;
+x2 = x1; bot y2 = 0;
+z12 = 1/2[z1,z2];
+%% bottom bowl
+lft x21 = pcshiftx; bot y21 = 0;
+z22=z2;
+lft x27 = rt x12; y27 = y12;
+rt x25 = w-pcshiftx; y25 = 1/2[y22,y27];
+pth1 := z21--z22{right}..z25{up}..{left}z27;
+%% top bowl
+z32 = z27; z37 = z1;
+x38 = x21; y38 = y37;
+rt x35 = x25; y35 = 1/2[y32,y37];
+pth2 := z38--z37{right}..z35{down}..{left}z27;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw pth1; draw pth2;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "B"
+
+cmchar "HMIN letter C";
+beginchar("C", 2sb#+caprat*hstretch*(16/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "C"
+
+cmchar "HMIN letter D";
+beginchar("D", 2sb#+caprat*hstretch*(18/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0; n1 := rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx+n1; top y1=h;
+x2 = x1; bot y2 = 0;
+%% bowl
+lft x3 = pcshiftx; y3=y1;
+x7 = x3; y7=y2;
+rt x5 = w-pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z1{right}..{down}z5..{left}z2--z7;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; %% stem
+draw pth1;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "D"
+
+cmchar "HMIN letter E";
+beginchar("E", sb#+caprat*hstretch*(14/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 = rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx+n1; top y1 = h;
+x2 = x1; bot y2=0;
+%% bars
+lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4=y3;
+x5=x1; y5 = 1/2[y1,y2]; x6 = x4; y6 = y5;
+x7 = x3; y7 = y2; x8 = x4; y8=y7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw z3--z4; draw z5--z6; draw z7--z8;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,70,100);
+endchar; % end "E"
+
+cmchar "HMIN letter F";
+beginchar("F", 2sb#+caprat*hstretch*(14/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stem
+lft x1=lft x2=pcshiftx+n1; top y1=h; bot y2=0;
+%% bars
+lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4 = y3;
+x5=x1; y5 = 1/2[y1,y2]; x6 = x4; y6 = y5;
+%% serif
+x211 = x2 - n1; y211 = y2;
+x212 = x2 + n1; y212 = y2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw z3--z4; draw z5--z6;
+draw z211--z212;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,14,15,16,100);
+endchar; % end "F"
+
+cmchar "HMIN letter G";
+beginchar("G", 2sb#+caprat*hstretch*(19/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% bar
+rt x52 = w - pcshiftx; y52 = 1/2h;
+x51 = x52 - 2n1; y51 = y52;
+z512 = 1/2[z51,z52];
+%% bowl
+lft x2 = pcshiftx; y2 = 1/2h;
+x4 = x512; y4 = 1/4h;
+x3 = x1 = 1/2[x2,x4]; bot y3 = 0; top y1 = h;
+x24 = x512; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw z4--z512; draw z51--z52;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "G"
+
+cmchar "HMIN letter H";
+beginchar("H", 2sb#+caprat*hstretch*(18/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stems
+lft x1=lft x2=pcshiftx+n1;
+top y1=h; bot y2=0;
+rt x3 = w - pcshiftx - n1; x4 = x3; y3 = y1; y4 = y2;
+%% bar
+z12 = 1/2[z1,z2]; z34 = 1/2[z3,z4];
+%% serifs
+rt x111 = lft x1; y111 = y1; lft x112 = rt x1; y112 = y111; % TL
+x211 = x111; x212 = x112; y211 = y212 = y2; % BL
+rt x311 = lft x3; y311 = y3; lft x312 = rt x3; y312 = y311; % TR
+x411 = x311; x412 = x4+n1; y411 = y412 = y4; % BR
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4; draw z12--z34;
+draw (x1-n1,y1)--(x1+n1,y1); draw (x2-n1,y2)--(x2+n1,y2);
+draw (x3-n1,y3)--(x3+n1,y3); draw (x4-n1,y4)--(x4+n1,y4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "H"
+
+cmchar "HMIN letter I";
+beginchar("I", 2sb#+caprat*hstretch*(thick#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+x1 = x2 = 1/2w;
+top y1=h; bot y2=0;
+%% serifs
+rt x111 = lft x1; lft x112 = rt x1; y111 = y112 = y1;
+x211 = x111; x212 = x112; y211 = y212 = y2;
+%%ductus:=true;
+draw z1--z2;
+draw z111--z112; draw z211--z212;
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "I"
+
+cmchar "HMIN letter J";
+beginchar("J", 2sb#+caprat*hstretch*(10/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stem serif
+rt x112 = w - pcshiftx; top y112 = h;
+x111 = x112 - n1; y111 = y112;
+%% stem
+z1 = 1/2[z111,z112];
+x2 = x1; y2 = 1/4h;
+%% hook
+lft x4 = pcshiftx; y4 = 1/2y2;
+x3 = 1/2[x2,x4]; bot y3 = 0;
+pth1 := z2{down}..z3{left}..z4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw z111--z112;
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "J"
+
+cmchar "HMIN letter K";
+beginchar("K", 2sb#+caprat*hstretch*(17/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx+n1; top y1 = h;
+x2 = x1; bot y2 = 0;
+z12 = 1/2[z1,z2];
+%% top arm
+x3 = rt x12; y3 = y12;
+rt x5 = w - pcshiftx - n1; y5 = y1;
+%%pth1 := z3{pdir}..{up}z5;
+pth1 := z3--z5;
+%% lower arm
+z7 = z3;
+rt x9 = w-pcshiftx; bot y9 = 0;
+pth2 := z7{-ppdir}..{right}z9;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1; draw pth2;
+draw (x1-n1,y1)--(x1+n1,y1);
+draw (x2-n1,y2)--(x2+n1,y2);
+draw (x5,y5)--(x5+n1,y5);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "K"
+
+cmchar "HMIN letter L";
+beginchar("L", 2sb#+caprat*hstretch*(12/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+x100 = 0; n1 := rt x100 - lft x100;
+lft x1=pcshiftx+n1; top y1=h;
+x2=x1; bot y2 =0;
+lft x3 = pcshiftx; rt x4 = w-pcshiftx; y3 = y4 = y2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4;
+draw (x1-n1,y1)--(x1+n1,y1);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "L"
+
+cmchar "HMIN letter M";
+beginchar("M", 2sb#+caprat*hstretch*(25/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% left stem
+lft x1=pcshiftx+n1; top y1=h;
+lft x2=pcshiftx; bot y2=0;
+%% right stem
+rt x4 = w - pcshiftx - n1; y4 = y2;
+x3 = x4 - n1; y3 = y1;
+%% the V
+z24 = 1/2[z2,z4];
+pth1 := z1{-ppdir}..{down}z24;
+pth2 := z3{down}..{down}z24;
+%% serifs
+x111 = x1 - n1; y111 = y1; % TL
+x212 = x2+n1; y212 = y2; % BL
+x311 = x3-n1; y311 = y3; % TR
+x412 = x4+n1; y412 = y4; % BR
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4; draw pth1; draw pth2;
+draw z111--z1; draw z2--z212;
+draw z311--z3; draw z4--z412;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "M"
+
+cmchar "HMIN letter N";
+beginchar("N", 2sb#+caprat*hstretch*(22/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stems
+lft x1=pcshiftx+n1; top y1=h; x2=x1; bot y2=0;
+rt x3 = w - pcshiftx - n1; x4 = x3; y3 = y1; y4 = y2;
+pth1 := z1{-ppdir}..{-ppdir}z4;
+%% serifs
+x111 = x1 - n1; x112 = x1 + n1; y111 = y112 = y1; % TL
+x211 = x111; x212 = x112; y211 = y212 = y2; % BL
+x311 = x3 - n1; x312 = x3 + n1; y311 = y312 = y3; % TR
+x411 = x311; x412 = x312; y411 = y412 = y4; % BR
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4; draw pth1;
+draw z111--z112; draw z211--z212;
+draw z311--z312; draw z411--z412;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "N"
+
+cmchar "HMIN letter O";
+beginchar("O", 2sb#+caprat*hstretch*(18/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "HMIN letter P";
+beginchar("P", 2sb#+caprat*hstretch*(14/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1:= rt x100 - lft x100;
+%% stem
+lft x1=lft x2=pcshiftx+n1;
+top y1=h; bot y2=0;
+z12 = 1/2[z1,z2];
+%% bowl
+z3 = (pcshiftx,y1);
+x7 = x12; top y7 = y12;
+rt x5 = w-pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z1{right}..z5{down}..{left}z7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1;
+draw (x2-n1,y2)--(x2+n1,y2);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "HMIN letter Q";
+beginchar("Q", 2sb#+caprat*hstretch*(18/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% bowl
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+pth1 := z1..z4..z3..z2..cycle;
+%% tail
+n1 := rt x1 - lft x1;
+pth2 := z1..z2..z3..z4;
+z5 = directionpoint pdir of pth1;
+x7 = x3 + 2n1; top y7 = -n1;
+pth3 := z5{-ppdir}..{pdir}z7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth3;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "Q"
+
+cmchar "HMIN letter R";
+beginchar("R", 2sb#+caprat*hstretch*(18/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1:= rt x100 - lft x100;
+n2 := 14/18; %% P/R width ratio
+%% stem
+lft x1=lft x2=pcshiftx+n1;
+top y1=h; bot y2=0;
+z12 = 1/2[z1,z2];
+%% bowl
+z3 = (pcshiftx,y1);
+x7 = x12; top y7 = y12;
+rt x5 = w*n2 - pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z1{right}..z5{down}..{left}z7;
+%% leg
+z21 = z7;
+x23 = w-pcshiftx; bot y23 = 0;
+pth2 := z21{-ppdir}..{right}z23;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1; draw pth2;
+draw (x2-n1,y2)--(x2+n1,y2);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "R"
+
+cmchar "HMIN letter S";
+beginchar("S", 2sb#+caprat*hstretch*(15/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+x1 = x3 = x5 = 1/2w;
+top y1 = h; bot y5 = 0; y3 = 1/2[y1,y5];
+lft x2 = pcshiftx; rt x4 = w-pcshiftx;
+y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5];
+rt x101 = w-pcshiftx; top y101 = y1;
+lft x102 = pcshiftx; bot y102 = y5;
+pth1 := z101..z1..z2..z3..z4..z5..z102;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "S"
+
+cmchar "HMIN letter T";
+beginchar("T", 2sb#+caprat*hstretch*(16/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+top y1 = top y2 = h;
+%% stem
+z3 = 1/2[z1,z2];
+x4 = x3; bot y4 = 0;
+%% foot
+n1 := rt x4 - lft x4;
+rt x5 = lft x4; x6 = x4 + n1; y5 = y6 = y4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % bar
+draw z3--z4; % stem
+draw z5--z6; % foot
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "T"
+
+cmchar "HMIN letter U";
+beginchar("U", 2sb#+caprat*hstretch*(20/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% left stem
+lft x1 = pcshiftx + n1; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-n1; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+pth1 := z1--z13{down}..z14{right}..{pdir}z33;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z3--z4; draw pth1;
+draw (x1-n1,y1)--(x1+n1,y1);
+draw (x3-n1,y3)--(x3+n1,y3);
+draw (x4,y4)--(x4+n1,y4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "HMIN letter V";
+beginchar("V", 2sb#+caprat*hstretch*(20/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stem tops
+lft x1 = pcshiftx + 2n1; top y1 = h;
+rt x3 = w - pcshiftx - 2n1; top y3 = h;
+%% bottom
+x13 = 1/2[x1,x3]; bot y13 = 0;
+pth1 := z1{-pdir}..{-ppdir}z13;
+pth2 := z13{pdir}..z3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2;
+draw (x1-2n1,y1)--(x1,y1);
+draw (x3,y3)--(x3+2n1,y3);
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "HMIN letter W";
+beginchar("W", 2sb#+caprat*hstretch*(26/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stem tops
+lft x1 = pcshiftx + 2n1; top y1 = h;
+rt x5 = w - pcshiftx - 2n1; top y5 = h;
+z93 = 1/2[z1,z5];
+x3 = rt x93; y3 = y93;
+%% V bottoms
+x13 = 1/2[x1,x3]; bot y13 = 0;
+x35 = 1/2[x3,x5]; bot y35 = 0;
+pth1 := z1{-pdir}..{-ppdir}z13;
+%%pth2 := z13{pdir}..z3;
+pth3 := z3{-pdir}..{-ppdir}z35;
+z335 = directionpoint down of pth3;
+%%pth2 := z13..{up}z3;
+%%pth3 := z3{down}..z35;
+pth2 := z13..{up}z335;
+pth4 := z35{pdir}..z5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw (x1-2n1,y1)--(x1,y1);
+draw pth2;
+draw (x3-n1,y3)--(x3,y3);
+draw pth3;
+draw pth4; draw (x5,y5)--(x5+2n1,y5);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "HMIN letter X";
+beginchar("X", 2sb#+caprat*hstretch*(18/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% diag top left to bottom right
+lft x1=pcshiftx+n1; top y1 = h;
+rt x2 = w - pcshiftx - n1; bot y2 = 0;
+%% diag top right to bottom left
+rt x3 = w - pcshiftx - n1; top y3 = h;
+lft x4 = pcshiftx; bot y4 = 0;
+pth1 := z4{pdir}..z3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1;
+draw (x1-n1,y1)--(x1+n1,y1);
+draw (x2-n1,y2)--(x2+n1,y2);
+draw (x3-n1,y3)--(x3+n1,y3);
+draw (x4,y4)--(x4+n1,y4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "X"
+
+cmchar "HMIN letter Y";
+beginchar("Y", 2sb#+caprat*hstretch*(15/18x_height#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% left stem top
+lft x1 = pcshiftx + n1; top y1 = h;
+%% upright
+x5 = 1/2w; y5 = 1/2y1;
+x6 = x5; bot y6 = 0;
+%% right stem
+rt x3=w-pcshiftx-n1; top y3 = h;
+pth1 := z5{ppdir}..{pdir}z1; % left
+pth2 := z5{pdir}..{left}z3; % right
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5--z6; draw (x6-n1,y6)--(x6+n1,y6); % stem
+draw pth1; draw (x1-n1,y1)--(x1,y1);
+draw pth2;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "HMIN letter Z";
+beginchar("Z", 2sb#+caprat*hstretch*(14/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+lft x1 = pcshiftx; rt x2 = w -pcshiftx; top y1 = top y2 = h;
+%% bottom bar ends
+lft x3 = pcshiftx; rt x4 = w -pcshiftx; bot y3 = bot y4 = 0;
+%% middle bar
+lft x5 = x1; rt x6 = x2; y5 = y6 = 1/2h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4; draw z5--z6;
+draw z2--z3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncl10.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncl10.mf
new file mode 100644
index 00000000000..f4dea1011ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/huncl10.mf
@@ -0,0 +1,75 @@
+%%
+%% This is file `huncl10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HUNCL10.MF Half Uncial at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HUNCL"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.07;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=20; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate huncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncl17.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncl17.mf
new file mode 100644
index 00000000000..edce56f870f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/huncl17.mf
@@ -0,0 +1,75 @@
+%%
+%% This is file `huncl17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HUNCL17.MF Half Uncial at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HUNCL"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.07;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=20; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate huncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncl7.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncl7.mf
new file mode 100644
index 00000000000..6d2e0caebcc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/huncl7.mf
@@ -0,0 +1,75 @@
+%%
+%% This is file `huncl7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HUNCL7.MF Half Uncial at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HUNCL"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.07;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=20; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate huncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclb10.mf
new file mode 100644
index 00000000000..fdea1a7e58d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclb10.mf
@@ -0,0 +1,75 @@
+%%
+%% This is file `hunclb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HUNCLB10.MF Half Uncial Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HUNCLB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.07;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/3.5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=20; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate huncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclb17.mf
new file mode 100644
index 00000000000..7d9a68a825c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclb17.mf
@@ -0,0 +1,75 @@
+%%
+%% This is file `hunclb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HUNCLB17.MF Half Uncial Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HUNCLB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.07;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/3.5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=20; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate huncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclb7.mf
new file mode 100644
index 00000000000..583f8a5c18d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclb7.mf
@@ -0,0 +1,75 @@
+%%
+%% This is file `hunclb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% HUNCLB7.MF Half Uncial Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="HUNCLB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.07;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/3.5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=20; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate huncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncldig.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncldig.mf
new file mode 100644
index 00000000000..d196ec881d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/huncldig.mf
@@ -0,0 +1,228 @@
+%%
+%% This is file `huncldig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "HUncial digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w/2;
+y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "HUncial digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+o; top y1=h-2thin;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx-o; y3=3/4h;
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..{-pdir}z5; % curve
+draw z5--z6; % foot
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "HUncial digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+lft x6=pcshiftx+3thin; x7=x6;
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+draw z7{pdir}...z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "HUncial digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-jut;
+y1=h; bot y2=0;
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+lft x5=pcshiftx+jut; y5=h;
+x6=x5; y6=y4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % main stem
+draw z3--z4; % crossbar
+draw z3{pdir}..{pdir}z1; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "HUncial digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx+trijut; y2=y1;
+x3=x2; y3=0.5h+thin;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=w/2; bot y6=0;
+lft x7=pcshiftx+trijut; bot y7=2thin;
+%%x8=w-pcshiftx; y8=h-0.5thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw_wave(2,1,thin); % top squiggle
+draw z2--z1; % top bar
+%%draw_rtriangle(8,3/4jut);
+draw z3{pdir}..z5{down}..z6{left}..z7; % curve
+draw z2--z3; % vertical
+draw_triserif(2,trijut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "HUncial digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+x8=w-pcshiftx; y8=h-0.5thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6;
+%%draw z1{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6;
+%%draw_rtriangle(8,3/4jut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,8,100);
+endchar; % end "6"
+
+cmchar "HUncial digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x8=pcshiftx+3/8jut; y8=h-0.5thin;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % top bar
+%%draw_triangle(8,3/4jut);
+draw z2..z3..z4; % leg
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "7"
+
+cmchar "HUncial digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "HUncial digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "Uncial digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncll.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncll.mf
new file mode 100644
index 00000000000..215b0ee1a40
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/huncll.mf
@@ -0,0 +1,611 @@
+%%
+%% This is file `huncll.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "HUncial letter a";
+beginchar("a", 2u#+hstretch*(x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+x2=x1; bot y2=0;
+x5=x1-jut; y5=0.5[y1,y2];
+path p[];
+p1=z1{-pdir}..z5{down}..{right}z2;
+lft x3=pcshiftx; y3=y5;
+x4=x6=0.5[x3,x5]; top y4=h; bot y6=0;
+x2'=0.5[x2,x5];
+bowl_stem(6,2');
+rt x7=x6i; top y7=y6i;
+rt x8=x1; y4-y8=y7-y6;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw p1; % the stem
+draw z8..z4{left}..z3{down}..z6{right}..{pdir}z7; % the bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "a"
+
+cmchar "HUncial letter b";
+beginchar("b", 2u#+hstretch*(x_height#+trijut#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h;
+rt x4=w-pcshiftx;
+x3=x5=0.5[x2,x4]; bot y3=0; top y5=h/ascratio;
+y2=y4=0.5[y3,y5];
+x11=rt x1; bowl_stem(5,11);
+lft x7=x5i; bot y7=y5i;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2{down}..z3{right}..z4{up}..z5{left}..{-pdir}z7;
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "HUncial letter c";
+beginchar("c", 2u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x3'=w-pcshiftx;
+bowl_stem(4,3');
+rt x5=x4i; top y5=y4i;
+x6=x5; y2-y6=y5-y4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,16,17,18,100);
+endchar; % end "c"
+
+cmchar "HUncial letter d";
+beginchar("d", 2u#+hstretch*(x_height#+thick#+jut#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=0;
+x1'=lft x1; y1'=h;
+lft x5=pcshiftx;
+top y4=h/ascratio; bot y6=0;
+x4=x6=0.5[x5,x1']; y5=0.5[y6,y4];
+bowl_stem(6,1');
+rt x7=x6i; top y7=y6i;
+x8=x7; y4-y8=y7-y6;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw z8..z4{left}..z5{down}..z6{right}..{pdir}z7; % bowl
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "HUncial letter e";
+beginchar("e", 2u#+hstretch*(x_height#+trijut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx-trijut; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x3'=w-pcshiftx-trijut;
+bowl_stem(4,3');
+rt x5=x4i; top y5=y4i;
+x7=x1; y7=y1;
+rt x8=w-pcshiftx; top y8=2/3h;
+path p[];
+p1=z7{right}..{pdir}z8;
+p2=z2{right}..z3{down}..{left}z4;
+z6 = p1 intersectionpoint p2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2{right}..z6; % the bowl
+draw p1; % the bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "e"
+
+cmchar "HUncial letter f";
+beginchar("f", 2u#+hstretch*(7/6x_height#+trijut#), (3/2x_height#), desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=2/3h; bot y2=-d;
+z3=z4=z1;
+rt x5= rt x6=w-pcshiftx; top y5=h; y6=y4;
+x7=0.5[x4,x6]; y7=y6-2thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_urswish(3,5); % top bar
+draw z4..z7{right}..{pdir}z6; % bottom bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "f"
+
+cmchar "HUncial letter g";
+beginchar("g", 2u#+hstretch*(4/3x_height#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=thin;
+pickup quill;
+lft x1=pcshiftx; top y1=h+alpha;
+rt x3=w-pcshiftx; top y3=h-alpha;
+rt x2=3/4w; top y2=h-alpha;
+x4=1/4w; y4=0;
+rt x6=w-pcshiftx; y6=-1/2d;
+x7=1/2w; bot y7=-d;
+lft x8=pcshiftx; top y8=-1/2d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,3,alpha); % top bar
+draw z2--z4; % diagonal
+draw z4{pdir}..z6{down}..z7{left}..z8; % the bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "g"
+
+cmchar "HUncial letter h";
+beginchar("h", 2u#+hstretch*(x_height#+trijut#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+rt x5=w-pcshiftx; y5=h/(2ascratio);
+lft x6=2/3w; bot y6=0;
+x4=0.5[x1,x5]; top y4=h/ascratio;
+x1'=rt x1;
+bowl_stem(4,1');
+lft x3=x4i; bot y3=y4i;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw z3{pdir}..z4{right}..z5{down}..z6; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "HUncial letter i";
+beginchar("i", 2u#+hstretch*(thick#+trijut#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "HUncial letter j";
+beginchar("j", 2u#+hstretch*(thick#+trijut#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=-1/2d;
+lft x3=pcshiftx; bot y3=-d;
+%%ductus:=true;
+draw z1--z2{down}..{-pdir}z3;
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "HUncial letter k";
+beginchar("k", 2u#+hstretch*(x_height#+trijut#+jut#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+numeric rise,fall,fjut;
+x3=rt x1; y3=(3/4)*(h/ascratio);
+rise:=1/6h; fall:=-rise/2; fjut:=1/2w;
+z4=z3;
+x5=w-pcshiftx-jut; y5=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_flick(3,rise,fall,fjut); % upper diag
+draw_tstem(4,5,srad); % lower diag
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "k"
+
+cmchar "HUncial letter l";
+beginchar("l", 2u#+hstretch*(7/6x_height#+trijut#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+z3=z2;
+rt x4=w-pcshiftx; bot y4=1/10h;
+%%ductus:=true;
+draw z1--z2;
+draw_triserif(1,trijut); % the stem
+draw z3{right}..{pdir}z4; % the foot
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "HUncial letter m";
+beginchar("m", 2u#+hstretch*(5/3x_height#+trijut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+trijut; top y1=h;
+x2=x1; bot y2=0;
+x4=w/2; y4=2/3h;
+x3=0.5[x2,x4]; top y3=h;
+x5=x4; y5=y2;
+z6=z4;
+x7=3/4w; top y7=h;
+rt x8=w-pcshiftx; y8=h/2;
+lft x9=3/4w; y9=y2;
+x14=x1; y14=y4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_triserif(1,trijut);
+draw z14..z3{right}..{down}z4;
+draw_tstem(4,5,srad); % middle stem
+draw z6..z7{right}..z8{down}..{-pdir}z9; % right half
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,14,100);
+endchar; % end "m"
+
+cmchar "HUncial letter n";
+beginchar("n", 2u#+hstretch*(x_height#+trijut#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+trijut; top y1=h;
+x2=x1; bot y2=0;
+x1'=rt x1;
+rt x5=w-pcshiftx-jut; y5=h/2;
+x6=x5; bot y6=0;
+x4=0.5[x1,x5]; top y4=h;
+bowl_stem(4,1');
+lft x3=x4i; bot y3=y4i;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_triserif(1,trijut);
+draw_tstem(5,6,srad); % right stem
+draw z3{pdir}..z4{right}..{down}z5; % the bowl top
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "n"
+
+cmchar "HUncial letter o";
+beginchar("o", 2u#+hstretch*(7/6x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "o"
+
+cmchar "HUncial letter p";
+beginchar("p", 2u#+hstretch*(7/6x_height#+trijut#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=-d;
+rt x4=w-pcshiftx;
+x3=x5=0.5[x2,x4]; bot y3=0; top y5=h;
+y4=0.5[y3,y5];
+x1'=rt x1;
+bowl_stem(5,1');
+lft x7=x5i; bot y7=y5i;
+lft x8=rt x1; bot y8=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw z8{right}..z4{up}..z5{left}..{-pdir}z7; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "HUncial letter q";
+beginchar("q", 2u#+hstretch*(7/6x_height#+jut#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=-d;
+lft x5=pcshiftx;
+top y4=h; bot y6=0;
+x4=x6=0.5[x5,x1']; y5=0.5[y6,y4];
+x1'=lft x1;
+bowl_stem(6,1');
+rt x7=x6i; top y7=y6i;
+z8=z1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z8{left}..z5{down}..z6{right}..{pdir}z7; % bowl
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "HUncial letter r";
+beginchar("r", 2u#+hstretch*(x_height#+trijut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=0;
+lft x3=rt x1; bot y3=7/8h;
+rt x5=w-pcshiftx; top y5=1/2h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw z3{pdir}..{pdir}z5; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "HUncial letter s";
+beginchar("s", 2u#+hstretch*(x_height#+trijut#), 3/2x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut; top y1=2/3h; bot y2=0;
+x5=w-pcshiftx; y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+%%draw z1{pdir}..{right}z5; % arm
+draw_urswish(1,5);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100);
+endchar; % end "s"
+
+cmchar "HUncial letter t";
+beginchar("t", 2u#+hstretch*(4/3x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+1/4w; rt x3=w-pcshiftx; y1=h/3; y3=h/2;
+x2=x4=0.5[x1,x3]; top y2=h; bot y4=0;
+x6=x3;
+x6'=w-pcshiftx;
+bowl_stem(4,6');
+rt x5=x4i; top y5=y4i;
+top y6=h;
+lft x12=pcshiftx; top y12=h;
+x11=0.5[x6,x12]; y11=y12-thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1{up}..{pdir}z6; % bowl
+draw z6..z11..z12; % top bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "HUncial letter u";
+beginchar("u", 2u#+hstretch*(x_height#+trijut#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x6=pcshiftx+trijut;
+top y6=h;
+x7=x6; y7=h/2;
+x8=0.5[x6,x1]; bot y8=0;
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=0;
+x1'=lft x1;
+bowl_stem(8,1');
+rt x9=x8i; top y9=y8i;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(6,trijut); % left half
+draw z6--z7{down}..z8{right}..{pdir}z9;
+draw_tstem(1,2,srad); % right stem
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "u"
+
+cmchar "HUncial letter v";
+beginchar("v", 2u#+hstretch*(x_height#+trijut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+numeric midx; midx:= pcshiftx;
+lft x1=midx+trijut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-trijut; y5=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(1,trijut);
+%%draw_triserif(5,trijut);
+draw z1--z2{down}..z3{right}..z4{up}..z5;
+ductus:=false;
+penlabels(1,2,3,4,5,11,100);
+endchar; % end "v"
+
+cmchar "HUncial letter w";
+beginchar("w", 2u#+hstretch*(5/3x_height#+trijut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+numeric midx; midx:= w/2-trijut;
+lft x1=midx+trijut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-trijut; y5=y1;
+lft x6=pcshiftx+trijut;
+top y6=h;
+%%lft x7=pcshiftx; y7=y2;
+x7=x6; y7=y2;
+x8=0.5[x7,x1]; y8=y3;
+x15=0.5[x8,x1]; y15=y8;
+z15'=z15 shifted (w*pdir);
+x2'=x2; y2'=y15;
+path p[];
+p1=z1--z2';
+p2=z15--z15';
+z9= p2 intersectionpoint p1;
+pair vec[];
+p3=z6..z7{down}..{right}z8;
+vec3 = direction 0 of p3;
+z16=z6 shifted vec3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(1,trijut); % right half
+draw z1--z2{down}..z3{right}..z4{up}..z5;
+draw_triserif(6,trijut); % left half
+draw z6--z7{down}..z8{right}..z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "w"
+
+cmchar "HUncial letter x";
+beginchar("x", 2u#+hstretch*(4/3x_height#+jut#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=1/4w; rt x2=w-pcshiftx-jut;
+y1=h; y2=0;
+rt x4=w-pcshiftx; top y4=h;
+z3=2/3[z2,z1];
+lft x6=pcshiftx; bot y6=-d;
+path p[];
+pair vec;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % thick diagonal
+draw_urswish(3,4); % top thin diagonal
+p1=z3..z4s1{pdir}..z4s2{down}; % bottom thin diagonal
+vec= direction 0 of p1;
+draw z3{-vec}..{down}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "x"
+
+cmchar "HUncial letter y";
+beginchar("y", 2u#+hstretch*(4/3x_height#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+lft x3=w/2; bot y3=-d;
+x2=lft x5; y2=bot y5;
+x5=w/2; y5=1/3h;
+x4=w-pcshiftx; top y4=h;
+x8=w/2; y8=h+jut;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3; % left stroke
+draw_urswish(2,4); % right stroke
+draw_pdot(8,dot_size); % the dot
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "HUncial letter z";
+beginchar("z", 2u#+hstretch*(5/3x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha, beta; alpha:=thin; beta:=2thin;
+pickup quill;
+lft x4=pcshiftx; bot y4=0; x14=x4; y14=y4+beta;
+rt x6=w-pcshiftx; bot y6=-beta;
+lft x1=1/5w; top y1=h+alpha;
+rt x3=4/5w; top y3=h; x13=x3; y13=y3-alpha;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,13,alpha); % top stroke
+draw_wave(14,6,beta); % bottom stroke
+draw z4--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncllig.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncllig.mf
new file mode 100644
index 00000000000..6f324c5d836
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/huncllig.mf
@@ -0,0 +1,155 @@
+%%
+%% This is file `huncllig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+ligtable "f": "i"=:oct"014";
+
+
+cmchar "Uncial closing quotes";
+beginchar(oct"042",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Uncial opening quotes";
+beginchar(oct"134",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Uncial hyphen";
+beginchar("-",u#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+x11=lft x1+alpha/2; y11=top y1-0.5thin;
+x12=rt x2; y12=bot y1+0.5thin;
+draw z1--z2; % bar
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "Uncial en dash";
+beginchar(oct"173",u#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+x11=lft x1+alpha/2; y11=top y1-0.5thin;
+x12=rt x2; y12=bot y1+0.5thin;
+draw z1--z2; % bar
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Uncial em dash";
+beginchar(oct"174",u#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+x11=lft x1+alpha/2; y11=top y1-0.5thin;
+x12=rt x2; y12=bot y1+0.5thin;
+draw z1--z2; % bar
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "HUncial ligature fi";
+beginchar(oct"014", 2u#+hstretch*(7/6x_height#+trijut#), (3/2x_height#), desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=2/3h; bot y2=-d;
+z3=z4=z1;
+rt x5=w-pcshiftx; top y5=h;
+rt x6=w-pcshiftx-jut; y6=y4;
+x7=x6; bot y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_urswish(3,5); % top bar
+draw z4--z6; % bottom bar
+draw_tstem(6,7,srad); % stem
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end of "fi"
+
+
+cmchar "HUncial ampersand";
+beginchar("&", 2u#+hstretch*(5/3x_height#), x_height#, 0.5desc_depth#);
+adjust_fit(0,0);
+pcshiftx:=u;
+numeric alpha; alpha:=3/5w-u;
+pickup quill;
+lft x1=pcshiftx; rt x3= alpha; y1=y3=h/2;
+x2=x4=alpha/2; top y2=h; bot y4=0;
+x3'=alpha;
+bowl_stem(4,3');
+rt x5=x4i; top y5=y4i;
+rt x6=x4i; y5-y4=y2-y6;
+x7=x1; y7=y1;
+rt x8=w-pcshiftx; y8=y7;
+lft x9=x5; y9=y5;
+x10=0.5[x9,x8]; bot y10=-d;
+x8'=x8;
+bowl_stem(10,8');
+x11=x10i; y11=y10i;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the E bowl
+draw z7--z8; % the (top) bar
+draw z8{left}..z9..z10{right}..{pdir}z11; % the T bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,31,32,33);
+endchar; % end of "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclpunct.mf
new file mode 100644
index 00000000000..8a3646a8907
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclpunct.mf
@@ -0,0 +1,78 @@
+%%
+%% This is file `hunclpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Uncial Comma";
+beginchar(",",2u#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h/2;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Uncial Period";
+beginchar(".",2u#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=u;
+x1=w/2; y1=h/2;
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Uncial Colon";
+beginchar(":",2u#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=u;
+x1=x2=w/2; y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Uncial Semicolon";
+beginchar(";",2u#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Uncial Apostrophe";
+beginchar("'",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Uncial Reverse apostrophe";
+beginchar("`",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf
new file mode 100644
index 00000000000..9122a5ad4e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/huncltitle.mf
@@ -0,0 +1,306 @@
+%%
+%% This is file `huncltitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def huncial_font_setup= % contains special stuff for huncial fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of huncial_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+ draw_serif($$, $, fr); % the serif
+ draw z$--z$$a; % the stem
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+%% filldraw z$s--z$t--z$u--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+%% filldraw z$s--z$t--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+huncial_font_setup;
+
+
+input huncll; % minuscules (lower case)
+input hunclu; % majuscules (capitals)
+input hunclpunct; % punctuation
+input huncllig; % the several dashes
+input huncldig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+%% ligtable "P": "T": "Y": "A" kern kk#;
+%% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi,
+%% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+%% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+%% "V" kern k#, "Y" kern k#;
+%% ligtable "A": if serifs: "R": fi
+%% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+%% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+%%ligtable "I": "I" kern -k#; % Richard III
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/hunclu.mf b/Master/texmf-dist/fonts/source/public/bookhands/hunclu.mf
new file mode 100644
index 00000000000..2ccc14dff11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/hunclu.mf
@@ -0,0 +1,617 @@
+%%
+%% This is file `hunclu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% huncial.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "HUncial letter A";
+beginchar("A", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+x2=x1; bot y2=0;
+x5=x1-jut; y5=0.5[y1,y2];
+path p[];
+p1=z1{-pdir}..z5{down}..{right}z2;
+lft x3=pcshiftx; y3=y5;
+x4=x6=0.5[x3,x5]; top y4=h; bot y6=0;
+x2'=0.5[x2,x5];
+bowl_stem(6,2');
+rt x7=x6i; top y7=y6i;
+rt x8=x1; y4-y8=y7-y6;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw p1; % the stem
+draw z8..z4{left}..z3{down}..z6{right}..{pdir}z7; % the bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "A"
+
+cmchar "HUncial letter B";
+beginchar("B", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h;
+rt x4=w-pcshiftx;
+x3=x5=0.5[x2,x4]; bot y3=0; top y5=h/ascratio;
+y2=y4=0.5[y3,y5];
+x11=rt x1; bowl_stem(5,11);
+lft x7=x5i; bot y7=y5i;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2{down}..z3{right}..z4{up}..z5{left}..{-pdir}z7;
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "B"
+
+cmchar "HUncial letter C";
+beginchar("C", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x3'=w-pcshiftx;
+bowl_stem(4,3');
+rt x5=x4i; top y5=y4i;
+x6=x5; y2-y6=y5-y4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,16,17,18,100);
+endchar; % end "C"
+
+cmchar "HUncial letter D";
+beginchar("D", 2u#+caprat*hstretch*(x_height#+thick#+jut#), caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=0;
+x1'=lft x1; y1'=h;
+lft x5=pcshiftx;
+top y4=h/ascratio; bot y6=0;
+x4=x6=0.5[x5,x1']; y5=0.5[y6,y4];
+bowl_stem(6,1');
+rt x7=x6i; top y7=y6i;
+x8=x7; y4-y8=y7-y6;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw z8..z4{left}..z5{down}..z6{right}..{pdir}z7; % bowl
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "D"
+
+cmchar "HUncial letter E";
+beginchar("E", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx-trijut; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x3'=w-pcshiftx-trijut;
+bowl_stem(4,3');
+rt x5=x4i; top y5=y4i;
+x7=x1; y7=y1;
+rt x8=w-pcshiftx; top y8=2/3h;
+path p[];
+p1=z7{right}..{pdir}z8;
+p2=z2{right}..z3{down}..{left}z4;
+z6 = p1 intersectionpoint p2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2{right}..z6; % the bowl
+draw p1; % the bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "E"
+
+cmchar "HUncial letter F";
+beginchar("F", 2u#+caprat*hstretch*(7/6x_height#+trijut#), caprat*(3/2x_height#),
+ caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=2/3h; bot y2=-d;
+z3=z4=z1;
+rt x5= rt x6=w-pcshiftx; top y5=h; y6=y4;
+x7=0.5[x4,x6]; y7=y6-2thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_urswish(3,5); % top bar
+draw z4..z7{right}..{pdir}z6; % bottom bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "F"
+
+cmchar "HUncial letter G";
+beginchar("G", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#,
+ caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=thin;
+pickup quill;
+lft x1=pcshiftx; top y1=h+alpha;
+rt x3=w-pcshiftx; top y3=h-alpha;
+rt x2=3/4w; top y2=h-alpha;
+x4=1/4w; y4=0;
+rt x6=w-pcshiftx; y6=-1/2d;
+x7=1/2w; bot y7=-d;
+lft x8=pcshiftx; top y8=-1/2d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,3,alpha); % top bar
+draw z2--z4; % diagonal
+draw z4{pdir}..z6{down}..z7{left}..z8; % the bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "G"
+
+cmchar "HUncial letter H";
+beginchar("H", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+rt x5=w-pcshiftx; y5=h/(2ascratio);
+lft x6=2/3w; bot y6=0;
+x4=0.5[x1,x5]; top y4=h/ascratio;
+x1'=rt x1;
+bowl_stem(4,1');
+lft x3=x4i; bot y3=y4i;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw z3{pdir}..z4{right}..z5{down}..z6; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "H"
+
+cmchar "HUncial letter I";
+beginchar("I", 2u#+hstretch*(thick#+trijut#+jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "I"
+
+cmchar "HUncial letter J";
+beginchar("J", 2u#+hstretch*(thick#+trijut#), caprat*x_height#, caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=-1/2d;
+lft x3=pcshiftx; bot y3=-d;
+%%ductus:=true;
+draw z1--z2{down}..{-pdir}z3;
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "J"
+
+cmchar "HUncial letter K";
+beginchar("K", 2u#+caprat*hstretch*(x_height#+trijut#+jut#), caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+numeric rise,fall,fjut;
+x3=rt x1; y3=(3/4)*(h/ascratio);
+rise:=1/6h; fall:=-rise/2; fjut:=1/2w;
+z4=z3;
+x5=w-pcshiftx-jut; y5=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_flick(3,rise,fall,fjut); % upper diag
+draw_tstem(4,5,srad); % lower diag
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "K"
+
+cmchar "HUncial letter L";
+beginchar("L", 2u#+caprat*hstretch*(7/6x_height#+trijut#), caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+z3=z2;
+rt x4=w-pcshiftx; bot y4=1/10h;
+%%ductus:=true;
+draw z1--z2;
+draw_triserif(1,trijut); % the stem
+draw z3{right}..{pdir}z4; % the foot
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "L"
+
+cmchar "HUncial letter M";
+beginchar("M", 2u#+caprat*hstretch*(5/3x_height#+trijut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+trijut; top y1=h;
+x2=x1; bot y2=0;
+x4=w/2; y4=2/3h;
+x3=0.5[x2,x4]; top y3=h;
+x5=x4; y5=y2;
+z6=z4;
+x7=3/4w; top y7=h;
+rt x8=w-pcshiftx; y8=h/2;
+lft x9=3/4w; y9=y2;
+x14=x1; y14=y4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_triserif(1,trijut);
+draw z14..z3{right}..{down}z4;
+draw_tstem(4,5,srad); % middle stem
+draw z6..z7{right}..z8{down}..{-pdir}z9; % right half
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,14,100);
+endchar; % end "M"
+
+cmchar "HUncial letter N";
+beginchar("N", 2u#+caprat*hstretch*(x_height#+trijut#+jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+trijut; top y1=h;
+x2=x1; bot y2=0;
+x1'=rt x1;
+rt x5=w-pcshiftx-jut; y5=h/2;
+x6=x5; bot y6=0;
+x4=0.5[x1,x5]; top y4=h;
+bowl_stem(4,1');
+lft x3=x4i; bot y3=y4i;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_triserif(1,trijut);
+draw_tstem(5,6,srad); % right stem
+draw z3{pdir}..z4{right}..{down}z5; % the bowl top
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "N"
+
+cmchar "HUncial letter O";
+beginchar("O", 2u#+caprat*hstretch*(7/6x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "O"
+
+cmchar "HUncial letter P";
+beginchar("P", 2u#+caprat*hstretch*(7/6x_height#+trijut#), caprat*x_height#,
+ caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=-d;
+rt x4=w-pcshiftx;
+x3=x5=0.5[x2,x4]; bot y3=0; top y5=h;
+y4=0.5[y3,y5];
+x1'=rt x1;
+bowl_stem(5,1');
+lft x7=x5i; bot y7=y5i;
+lft x8=rt x1; bot y8=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw z8{right}..z4{up}..z5{left}..{-pdir}z7; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "HUncial letter Q";
+beginchar("Q", 2u#+caprat*hstretch*(7/6x_height#+jut#), caprat*x_height#,
+ caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=-d;
+lft x5=pcshiftx;
+top y4=h; bot y6=0;
+x4=x6=0.5[x5,x1']; y5=0.5[y6,y4];
+x1'=lft x1;
+bowl_stem(6,1');
+rt x7=x6i; top y7=y6i;
+z8=z1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z8{left}..z5{down}..z6{right}..{pdir}z7; % bowl
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "Q"
+
+cmchar "HUncial letter R";
+beginchar("R", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=0;
+lft x3=rt x1; bot y3=7/8h;
+rt x5=w-pcshiftx; top y5=1/2h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw z3{pdir}..{pdir}z5; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "R"
+
+cmchar "HUncial letter S";
+beginchar("S", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*(3/2x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut; top y1=2/3h; bot y2=0;
+x5=w-pcshiftx; y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+%%draw z1{pdir}..{right}z5; % arm
+draw_urswish(1,5);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100);
+endchar; % end "S"
+
+cmchar "HUncial letter T";
+beginchar("T", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+1/4w; rt x3=w-pcshiftx; y1=h/3; y3=h/2;
+x2=x4=0.5[x1,x3]; top y2=h; bot y4=0;
+x6=x3;
+x6'=w-pcshiftx;
+bowl_stem(4,6');
+rt x5=x4i; top y5=y4i;
+top y6=h;
+lft x12=pcshiftx; top y12=h;
+x11=0.5[x6,x12]; y11=y12-thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1{up}..{pdir}z6; % bowl
+draw z6..z11..z12; % top bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "T"
+
+cmchar "HUncial letter U";
+beginchar("U", 2u#+caprat*hstretch*(x_height#+trijut#+jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x6=pcshiftx+trijut;
+top y6=h;
+x7=x6; y7=h/2;
+x8=0.5[x6,x1]; bot y8=0;
+rt x1=w-pcshiftx-jut; top y1=h;
+x2=x1; bot y2=0;
+x1'=lft x1;
+bowl_stem(8,1');
+rt x9=x8i; top y9=y8i;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(6,trijut); % left half
+draw z6--z7{down}..z8{right}..{pdir}z9;
+draw_tstem(1,2,srad); % right stem
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "U"
+
+cmchar "HUncial letter V";
+beginchar("V", 2u#+caprat*hstretch*(x_height#+trijut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+numeric midx; midx:= pcshiftx;
+lft x1=midx+trijut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-trijut; y5=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(1,trijut);
+%%draw_triserif(5,trijut);
+draw z1--z2{down}..z3{right}..z4{up}..z5;
+ductus:=false;
+penlabels(1,2,3,4,5,11,100);
+endchar; % end "V"
+
+cmchar "HUncial letter W";
+beginchar("W", 2u#+caprat*hstretch*(5/3x_height#+trijut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+numeric midx; midx:= w/2-trijut;
+lft x1=midx+trijut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-trijut; y5=y1;
+lft x6=pcshiftx+trijut;
+top y6=h;
+%%lft x7=pcshiftx; y7=y2;
+x7=x6; y7=y2;
+x8=0.5[x7,x1]; y8=y3;
+x15=0.5[x8,x1]; y15=y8;
+z15'=z15 shifted (w*pdir);
+x2'=x2; y2'=y15;
+path p[];
+p1=z1--z2';
+p2=z15--z15';
+z9= p2 intersectionpoint p1;
+pair vec[];
+p3=z6..z7{down}..{right}z8;
+vec3 = direction 0 of p3;
+z16=z6 shifted vec3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(1,trijut); % right half
+draw z1--z2{down}..z3{right}..z4{up}..z5;
+draw_triserif(6,trijut); % left half
+draw z6--z7{down}..z8{right}..z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "W"
+
+cmchar "HUncial letter X";
+beginchar("X", 2u#+caprat*hstretch*(4/3x_height#+jut#), caprat*x_height#,
+ caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=1/4w; rt x2=w-pcshiftx-jut;
+y1=h; y2=0;
+rt x4=w-pcshiftx; top y4=h;
+z3=2/3[z2,z1];
+lft x6=pcshiftx; bot y6=-d;
+path p[];
+pair vec;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % thick diagonal
+draw_urswish(3,4); % top thin diagonal
+p1=z3..z4s1{pdir}..z4s2{down}; % bottom thin diagonal
+vec= direction 0 of p1;
+draw z3{-vec}..{down}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "X"
+
+cmchar "HUncial letter Y";
+beginchar("Y", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#,
+ caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+lft x3=w/2; bot y3=-d;
+x2=lft x5; y2=bot y5;
+x5=w/2; y5=1/3h;
+x4=w-pcshiftx; top y4=h;
+x8=w/2; y8=h+jut;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3; % left stroke
+draw_urswish(2,4); % right stroke
+draw_pdot(8,dot_size); % the dot
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "HUncial letter Z";
+beginchar("Z", 2u#+caprat*hstretch*(5/3x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha, beta; alpha:=thin; beta:=2thin;
+pickup quill;
+lft x4=pcshiftx; bot y4=0; x14=x4; y14=y4+beta;
+rt x6=w-pcshiftx; bot y6=-beta;
+lft x1=1/5w; top y1=h+alpha;
+rt x3=4/5w; top y3=h; x13=x3; y13=y3-alpha;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,13,alpha); % top stroke
+draw_wave(14,6,beta); % bottom stroke
+draw z4--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imaj10.mf b/Master/texmf-dist/fonts/source/public/bookhands/imaj10.mf
new file mode 100644
index 00000000000..cbf50e23420
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imaj10.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `imaj10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMAJ10.MF Insular Majuscule at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMAJ"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=0; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=1.5/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imajtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imaj17.mf b/Master/texmf-dist/fonts/source/public/bookhands/imaj17.mf
new file mode 100644
index 00000000000..b495886d6ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imaj17.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `imaj17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMAJ17.MF Insular Majuscule at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMAJ"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=0; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=1.5/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imajtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imaj7.mf b/Master/texmf-dist/fonts/source/public/bookhands/imaj7.mf
new file mode 100644
index 00000000000..9894a1dddd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imaj7.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `imaj7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMAJ7.MF Insular Majuscule at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMAJ"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=0; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=1.5/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imajtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajb10.mf
new file mode 100644
index 00000000000..e8929abfa4d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imajb10.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `imajb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMAJB10.MF Insular Majuscule Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMAJB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=0; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=1.5/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imajtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajb17.mf
new file mode 100644
index 00000000000..f17708a23c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imajb17.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `imajb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMAJB17.MF Insular Majuscule Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMAJB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=0; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=1.5/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imajtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajb7.mf
new file mode 100644
index 00000000000..3f4d2f02889
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imajb7.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `imajb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMAJB7.MF Insular Majuscule Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMAJB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.4;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=0; % pen angle
+ ascratio:=5/3;
+ asc_height#:=ascratio*x_height#;
+ descratio:=1.5/3;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imajtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajdig.mf
new file mode 100644
index 00000000000..b9764b5051e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imajdig.mf
@@ -0,0 +1,300 @@
+%%
+%% This is file `imajdig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "IMAJ digit 1";
+beginchar("1", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=x2=w/2;
+y1=h; bot y2=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "IMAJ digit 2";
+beginchar("2", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=pcshiftx+o; top y1=h-2thin;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx-o; y3=3/4h;
+%% foot
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..{down}z5; % curve
+draw z5--z6; % foot
+draw_utriangle(6,thick);
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "IMAJ digit 3";
+beginchar("3", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% x values
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+lft x6=pcshiftx+3thin; x7=x6;
+%% y values
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+draw z7{pdir}...z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "IMAJ digit 4";
+beginchar("4", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% the stem
+x1=x2=w-pcshiftx-jut;
+y1=h; bot y2=0;
+%% the crossbar
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+%% the diagonal
+lft x5=pcshiftx+jut; y5=h;
+x6=x5; y6=y4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % main stem
+%%draw_clubbase(1, 2, 1/3, 0, clubjut);
+draw z3--z4; % crossbar
+draw z3{(1,1)}..{(1,1)}z1; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "IMAJ digit 5";
+beginchar("5", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% for the top
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx; y2=y1;
+z2'=(lft x2, top y2); z2''=(rt x2, y2');
+z0'=(x2', 0); z0''=(x2'', 0);
+%% bowl
+n1 := w-2pcshiftx+4/3thick; % width of bowl
+n2 := 2/3h; % height of bowl
+z3=(w-pcshiftx-n1, 0);
+obowl(3, n1, n2);
+z10o = (z2''--z0'') intersectionpoint subpath (3,4) of obouter;
+z10i = (z2'--z0') intersectionpoint subpath (3,4) of obinner;
+z10'=(x10i,y10o);
+z20o = (z2'--z0') intersectionpoint subpath (2,3) of obouter;
+z20i = (z2'--z0') intersectionpoint subpath (2,3) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw z2--z1; draw z2'--z0'; draw z2''--z0'';
+ draw obouter; draw obinner;
+else:
+ draw z2--z1; % top bar
+ draw_triangle(1,thick);
+ fill z2'--z10i--z10o--z2''--cycle; % stem
+ fill z10o..z3minlo{pdir}..z3maxro{-ppdir}..z3minro{-pdir}..z20o--
+ z20i..z3minri{pdir}..z3maxri{ppdir}..z3minli{-pdir}..z10i--
+ z10'--cycle;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "IMAJ digit 6";
+beginchar("6", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % width of character
+n2 := h; % height of character
+%% main bowl
+z3=(w-pcshiftx-n1,0);
+obowl(3, n1, n2);
+pth1 := obouter; pth2 := obinner;
+z0 = (0,0); z0'=(w,h);
+z10o' = (z0--z0') intersectionpoint subpath (0,1) of pth1;
+z10i' = (z0--z0') intersectionpoint subpath (0,1) of pth2;
+n0 := w-pcshiftx-x10o';
+z10o=(x10o'+n0, y10o');
+z10i=(x10i'+n0, y10i');
+%% bottom bowl
+n3 := 16/12n2; % width
+n4 := 2/3n2; % height
+z13=(w-pcshiftx-n3, 0);
+obowl(13, n3, n4);
+pth11 := obouter; pth12 := obinner;
+z20o = subpath (2,4) of pth2 intersectionpoint
+ (subpath (3,4) of pth11 & subpath (0,1) of pth11);
+z20i = subpath (2,4) of pth2 intersectionpoint
+ (subpath (3,4) of pth12 & subpath (0,1) of pth12);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw subpath (2,4) of pth2;
+ draw (subpath (3,4) of pth11 & subpath (0,1) of pth11);
+ draw (subpath (3,4) of pth12 & subpath (0,1) of pth12);
+else:
+ fill z10o..z3minlo{-pdir}..z3maxlo{-ppdir}..z3minro{pdir}..
+ z13maxro{ppdir}..{-pdir}z20o--z20i{pdir}..z13maxri{-ppdir}..
+ z3minri{-pdir}..z3maxli{ppdir}..z3minli{pdir}..z10i--
+ cycle;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,8,100);
+endchar; % end "6"
+
+cmchar "IMAJ digit 7";
+beginchar("7", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% top bar
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x8=pcshiftx+3/8jut; y8=h-0.5thin;
+%% bowed leg
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % top bar
+draw_triangle(1,thick);
+draw z2..z3..z4; % leg
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "7"
+
+cmchar "IMAJ digit 8";
+beginchar("8", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "IMAJ digit 9";
+beginchar("9", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % width of character
+n2 := h; % height of character
+%% main bowl
+z3=(w-pcshiftx-n1,0);
+obowl(3, n1, n2);
+pth1 := obouter; pth2 := obinner;
+z0=(0,0); z0'=(w,h);
+z20o' = (z0--z0') intersectionpoint subpath (2,3) of pth1;
+z20i' = (z0--z0') intersectionpoint subpath (2,3) of pth2;
+n0 := x20o'-pcshiftx;
+z20o=(x20o'-n0, y20o');
+z20i=(x20i'-n0, y20i');
+%% bottom bowl
+n3 := 16/12n2; % width
+n4 := 2/3n2; % height
+z13=(pcshiftx,h-n4);
+obowl(13, n3, n4);
+pth11 := obouter; pth12 := obinner;
+z10o = subpath (0,2) of pth2 intersectionpoint subpath (1,3) of pth11;
+z10i = subpath (0,2) of pth2 intersectionpoint subpath (1,3) of pth12;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw subpath (0,2) of pth2;
+ draw subpath (1,3) of pth11;
+ draw subpath (1,3) of pth12;
+else:
+ fill z20o..z3minro{pdir}..z3maxro{ppdir}..z3minlo{-pdir}..
+ z13maxlo{-ppdir}..{pdir}z10o--z10i{-pdir}..z13maxli{ppdir}..
+ z3minli{pdir}..z3maxri{-ppdir}..z3minri{-pdir}..z20i--
+ cycle;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "Uncial digit 0";
+beginchar("0", 2sb#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % bowl width
+n2 := h+2o; % bowl height
+z1=(pcshiftx,-o);
+obowl(1, n1, n2);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+fill obouter; unfill obinner;
+ductus:=false;
+%%%proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajl.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajl.mf
new file mode 100644
index 00000000000..f6746095bf3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imajl.mf
@@ -0,0 +1,842 @@
+%%
+%% This is file `imajl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "IMAJ letter a";
+beginchar("a", 2sb#+hstretch*(5/3x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left bowl
+n1 := w-2pcshiftx; % actual letter width
+n2 := 7/10n1; % width of left bowl
+z1=(pcshiftx,0);
+obowl(1, n2, h);
+pth1:=obouter; pth2:=obinner;
+pth10:=obfirst; pth20:=obsecond;
+%% right bowl
+n3:=x1+n2-16/12thick; % leftmost point of "stem"
+n4:=2(n1-n3); % total width of right stem bowl
+z2=(n3,0);
+offsetbowl(2, n4, h, 6/12, 1/2);
+pth3:=obouter; pth4:=obinner;
+pth30:=obfirst; pth40:=obsecond;
+%% intersect left bowl with outer of right bowl
+z1tout = (subpath (0,1) of pth1) intersectionpoint (subpath (4,2) of pth3);
+z1tinn = (subpath (0,1) of pth2) intersectionpoint (subpath (4,2) of pth3);
+z1lout = (subpath (1,2) of pth1) intersectionpoint (subpath (4,2) of pth3);
+z1linn = (subpath (1,2) of pth2) intersectionpoint (subpath (4,2) of pth3);
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ % draw the control paths
+ draw pth10; draw pth20;
+ draw pth30; draw pth40;
+else:
+ %% draw left bowl
+ fill z1lout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z1tout--
+ z1tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z1linn--
+ cycle;
+ %% draw right stem/bowl
+ fill z2minro{-pdir}..z2maxlo{ppdir}..{pdir}z2minlo--
+ z2minli{-pdir}..z2maxli{-ppdir}..{pdir}z2minri--cycle;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "a"
+
+cmchar "IMAJ letter b";
+beginchar("b", 2sb#+hstretch*(7/6x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+z1=(pcshiftx, -o);
+obowl(1, n1, n2+o);
+%% draw bowl
+fill obouter; unfill obinner;
+%% top of stem
+x2=x1wt+1/3n1; top y2=h;
+tangentpoint(2, subpath (3,4) of obsecond);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z2tan--z2;
+draw_triserif(2,trijut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "IMAJ letter c";
+beginchar("c", 2sb#+hstretch*(5/6x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+z1=(pcshiftx,0);
+obowl(1, n2, h);
+z3=(x1+n1, h); % top RH corner
+z4=(x1obc,1/6h); z5=(3/2w,y4); % for horizontal line
+%% top intersection points
+z10i = (z1obc--z3) intersectionpoint obinner;
+z10o = (z1obc--z3) intersectionpoint obouter;
+%% bottom intersection points
+z20i = (z4--z5) intersectionpoint obinner;
+z20o = (z4--z5) intersectionpoint obouter;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+fill z20o..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10o--
+ z10i..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20i--
+ cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,16,17,18,100);
+endchar; % end "c"
+
+cmchar "IMAJ letter d";
+beginchar("d", 2sb#+hstretch*(x_height#+1/2thick#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% bowl
+n1 := w-2pcshiftx; % actual letter width
+n2 := n1-1/2thick; % width of bowl
+n3 := h; % top of bowl
+z1=(w-pcshiftx-n2, 0);
+obowl(1, n2, n3);
+%% top bar
+lft x3=pcshiftx; y3=h;
+z3i=(pcshiftx, y3-1/2thin); z3o=(x3i,y3i+thin);
+z2i=(x1nh,y3i);
+z2o=(x2i,y3o);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+fill z1minlo{-pdir}..z1maxlo{-ppdir}..z1minro{pdir}..z1maxro{ppdir}..{left}z2o--
+ z3o--z3i--
+ z2i{right}..z1maxri{-ppdir}..z1minri{-pdir}..z1maxli{ppdir}..{pdir}z1minli--
+ cycle;
+draw_utriangle(3, thick);
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "IMAJ letter e";
+beginchar("e", sb#+hstretch*(x_height#+3/2thick#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+n1 := w-pcshiftx; % actual letter width
+n2 := n1-3/2thick; % width of bowl
+z1=(pcshiftx,0);
+obowl(1, n2, h);
+%% for crossbar
+z2=(0,2/3h); rt x3=w; y3=y2; z3'=(x1obc,y2);
+z4 = (z2--z3') intersectionpoint subpath (3,4) of obsecond;
+z10tout = (z3'--z3) intersectionpoint subpath (0,3) of obouter;
+z10tinn = (z3'--z3) intersectionpoint subpath (0,3) of obinner;
+%% bottom cutoff
+z5=(x1obc,1/6h); z6=(w,y5);
+z20bout = (z5--z6) intersectionpoint subpath (0,3) of obouter;
+z20binn = (z5--z6) intersectionpoint subpath (0,3) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+fill z20bout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10tout--
+ z10tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20binn--
+ cycle;
+draw z4--z3; % crossbar & decoration
+draw_triangle(3,thick);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "e"
+
+cmchar "IMAJ letter f";
+beginchar("f", 2sb#+hstretch*(x_height#+trijut#),
+ (x_height#), desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=-d;
+%% bottom bar
+z4=(rt x1,-thin); rt x6=w-pcshiftx; y6=y4+2thin; z5=1/2[z4,z6];
+%% top bar
+z7=(rt x1, bot y1);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+draw z4{dir(45)}..z5{right}..z6{dir(45)}; % bottom bar
+draw_flick(7, 2thin, thin, (w-pcshiftx-x7+1/2thick)); % top bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "f"
+
+cmchar "IMAJ letter g";
+beginchar("g", 2sb#+hstretch*(5/3x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+pcshiftx := sb;
+pickup quill;
+%% top bar
+lft x1=pcshiftx; y1=h; rt x2=w-pcshiftx; y2=h;
+%% curves
+z3=2/5[z1,z2];
+x5=4/5[x1,x2]; y5=-1/2d;
+x4=(x3-thick); y4=1/2[y5,y3];
+x7=1/2[x1,x4]; y7=y5;
+x6=2/3[x7,x5]; bot y6=-d;
+pth1 := z3..z4{down}..z5;
+pth2 := z5--z6{left}..z7;
+%% diagonal to close bottom bowl
+vec1 := direction 2 of pth2;
+vec2 := (z5-z6);
+z7'=(lft x7, bot y7); z7''=(rt x7, y7);
+pickup thickstylus;
+lft x8 = x7'; bot y8 = y7';
+z9' = z8 shifted 2vec2;
+z9 = (z8--z9') intersectionpoint pth1;
+z7''' = z7'' shifted 2vec1;
+z8' = whatever[z7'',z7'''] = whatever[z8,z9'];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw z1--z2; % top bar
+ draw pth1; draw pth2; % curves
+ draw rt z8--z9; % diagonal
+else:
+ pickup quill;
+ draw z1--z2; % top bar
+ draw_triangle(2,thick);
+ draw_utriangle(1,thick);
+ draw pth1; draw pth2; % curves
+ pickup thickstylus;
+ draw rt z8--z9; % diagonal
+ fill z7''--z8'--z8--cycle;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "g"
+
+cmchar "IMAJ letter h";
+beginchar("h", 2sb#+hstretch*(x_height#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+%% bowl
+rt x3 = lft x1; y3=0;
+n1 := w-pcshiftx-x3; % bowl width
+n2 := h/ascratio; % bowl height
+obowl(3, n1, n2);
+z1'=(rt x1, y1); z2'=(x1',y2); %% right hand side of stem
+z10tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter;
+z10tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner;
+z10toth = (x1, y10tinn); % avoids 180 turn in path
+z6 = directionpoint down of obsecond; % top of right leg
+z6i=(lft x6, bot y6); z6o=(rt x6, bot y6);
+z8=(x6,0);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+draw_tstem(6,8,srad); % right leg
+draw_clubbase(6, 8, 1/3, 0, 1/2clubjut);
+fill z6i{up}..z3minli{-pdir}..z10tinn--z10toth-- % top of bowl
+ z10tout..z3minlo{pdir}..{down}z6o--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "IMAJ letter i";
+beginchar("i", 2sb#+hstretch*(thick#+trijut#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "IMAJ letter j";
+beginchar("j", sb#+hstretch*(2/3x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+%% triangle
+n1 := thick; % side length
+z6=(lft x3, bot y3);
+x7=x6+n1; z7=whatever[z6,z2];
+z8=1/2[z6,z7];
+z9=(x8, y8+0.9n1);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw_triserif(1,trijut);
+draw z2--z3; % hook
+fill z6--z7--z9--cycle; % triangle
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "IMAJ letter k";
+beginchar("k", 2sb#+hstretch*(x_height#+trijut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=-d;
+%% top arm
+z3=(x1,5/6h);
+rt x5=w-pcshiftx; y5=2/3h;
+x4=1/2[x3,x5]; top y4=h;
+%% lower arm
+x7=x5; bot y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1,2,1/3, clubjut, clubjut);
+draw z3..z4{right}..z5; % upper arm
+draw z3..{right}z7; % lower arm
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "k"
+
+cmchar "IMAJ letter l";
+beginchar("l", 2sb#+hstretch*(7/6x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x2=pcshiftx; y2=1/5h;
+x1=x2+trijut; top y1=h;
+rt x4=w-pcshiftx; y4=1/5h;
+x3=1/2[x2,x4]; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z2..z3{right}..z4;
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "IMAJ letter m";
+beginchar("m", 2sb#+hstretch*(5/3x_height#+trijut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+trijut; top y1=h;
+x2=x1; bot y2=0;
+z1'=(rt x1, y1+h); z2'=(rt x2, y2-h);
+%% right stem
+rt x5=w-pcshiftx; y5=y1;
+z6=(x5,0);
+%% middle stem
+z3=1/2[z1,z5]; z4=1/2[z2,z6];
+z3'=(rt x3, y3); z4'=(rt x4, y4);
+n1 := x4-x2+3/2thick; % width of bowl
+n2 := 2/3h; % height of bowl
+%% left bowl
+z7=(rt x4 - n1, h-n2);
+obowl(7, n1, n2);
+pth1 := obouter; pth2 := obinner; pth3 := obsecond;
+z17tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter;
+z17tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner;
+z17toth = (x2, y17tinn);
+%% right bowl
+z8=(rt x6 - n1, y7);
+obowl(8, n1, n2);
+pth5 := obouter; pth6 := obinner; pth7 := obsecond;
+z18tout = pth5 intersectionpoint subpath (0,1) of pth1;
+z18tinn = pth6 intersectionpoint subpath (0,1) of pth1;
+z13 = directionpoint down of pth3;
+z15 = directionpoint down of pth7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+fill z17tout..z7minlo{pdir}..{down}(rt x13, y13)--
+ (lft x13, y13){up}..z7minli{-pdir}..z17tinn--z17toth--cycle;
+draw_tstem(13,4,srad); % right half
+fill z18tout..z8minlo{pdir}..{down}(rt x15, y15)--
+ (lft x15, y15){up}..z8minli{-pdir}..z18tinn--cycle;
+draw_tstem(15,6,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,14,100);
+endchar; % end "m"
+
+cmchar "IMAJ letter n";
+beginchar("n", 2sb#+hstretch*(7/6x_height#+trijut#),
+ x_height#, 1/2desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+trijut; top y1=h;
+x2=x1; bot y2=-d;
+%% right stem
+rt x3=w-pcshiftx; y3=y1;
+z4=(x3,0);
+%% bar
+z5=(x1,1/3h); z6=(x4,1/6h);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+draw_tstem(3,4,srad); % right stem
+draw_clubbase(3, 4, 1/3, clubjut, clubjut);
+draw z5--z6; % bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "n"
+
+cmchar "IMAJ letter o";
+beginchar("o", 2sb#+hstretch*(7/6x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%%draw z1..z2..z3..z4..cycle;
+z5=(pcshiftx,-o);
+obowl(5, w-2pcshiftx, h+2o);
+fill obouter; unfill obinner;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "IMAJ letter p";
+beginchar("p", 2sb#+hstretch*(8/6x_height#+trijut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut;
+top y1=1/3h; bot y2=-d;
+n1 := w - pcshiftx - lft x1; % width of bowl
+n2 := h+1/4d; % height of bowl
+z3=(lft x1, -1/4d);
+obowl(3, n1, n2);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, 0);
+fill lft z1{up}..z3minlo{pdir}..z3maxro{-ppdir}..{-pdir}z3minro--
+ z3minri{pdir}..z3maxri{ppdir}..z3minli{-pdir}..{down}rt z1--
+ cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "IMAJ letter q";
+beginchar("q", 2sb#+hstretch*(x_height#+1/2trijut#),
+ x_height#, 1/2desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1=w-pcshiftx-1/2trijut; top y1=h;
+x2=x1; bot y2=-d;
+z3=(pcshiftx,0);
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+obowl(3, n1, n2);
+z10o = (rt z1--rt z2) intersectionpoint subpath (0,1) of obouter;
+z10i = (lft z1--lft z2) intersectionpoint subpath (0,1) of obinner;
+z20o = (rt z1--rt z2) intersectionpoint subpath (1,2) of obouter;
+z20i = (lft z1--lft z2) intersectionpoint subpath (1,2) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, 0, clubjut);
+fill z10o..z3minlo{-pdir}..z3maxlo{-ppdir}..z3minro{right}..z20o--
+ z20i..z3minri{-pdir}..z3maxli{ppdir}..z3minli{pdir}..z10i--
+ cycle;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "IMAJ letter r";
+beginchar("r", sb#+hstretch*(11/6x_height#+trijut#),
+ x_height#, 1/2desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=-d;
+n1 := w-pcshiftx; % width of bowl
+n2 := 5/6h; % height of bowl
+z3=(x1-1/2n1, h-n2);
+obowl(3, n1, n2);
+z10o=(x1,h); z10i=(x1, y10o-thin);
+z20o=(x1,y3); z20i=(x20o, y20o+thin);
+%% arm
+x4=x1; bot y4=y3;
+x5=x3maxro; top y5=0;
+%%rt x6=w; y6=y4;
+rt x6=w; y6=y2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, 0);
+fill z10o{right}..z3maxro{-ppdir}..{left}z20o--
+ z20i{right}..z3maxri{ppdir}..{left}z10i--cycle;
+%%draw z4{right}..z5{right}..{right}z6; % arm
+draw z4{right}..{right}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "IMAJ letter s";
+beginchar("s", 2sb#+hstretch*(x_height#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut; top y1=h/ascratio; bot y2=0;
+n1 := w; % width of bowl
+n2 := 2(h-y1); % height of bowl
+z3=(lft x1, y1-1/2n2);
+obowl(3, n1, n2);
+z4=(2w,2h);
+z10o = (z3--z4) intersectionpoint subpath (0,1) of obouter;
+z10i = (z3--z4) intersectionpoint subpath (0,1) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+fill rt z1{up}..z3minli{pdir}..z10i--
+ z10o..z3minlo{-pdir}..{down}lft z1--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100);
+endchar; % end "s"
+
+cmchar "IMAJ letter t";
+beginchar("t", 2sb#+hstretch*(4/3x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+lft x1 = pcshiftx; y1=h; rt x2=w-pcshiftx; y2=y1;
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+z3=(pcshiftx+thick,0);
+obowl(3, n1, n2);
+z5=(x1+w, 0);
+z20o = (z1--z5) intersectionpoint subpath (1,2) of obouter;
+z20i = (z1--z5) intersectionpoint subpath (1,2) of obinner;
+z10o = (x3minlo, top y1);
+z10i = (x3minlo, bot y1);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % bar
+draw_utriangle(1, thick);
+draw_triangle(2, thick);
+fill z10o{left}..z3maxlo{-ppdir}..z3minro{pdir}..z20o--
+ z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i{right}--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "IMAJ letter u";
+beginchar("u", 2sb#+hstretch*(7/6x_height#+1/2trijut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1 = rt x2 = w-pcshiftx-1/2trijut;
+y1=h; y2=0;
+z1'=(x1-1/2thick,2h); z2'=(x1',-h);
+%% bowl
+n1 := w; % width of bowl
+n2 := 4/3h; % height of bowl
+z3=(pcshiftx,0);
+obowl(3, n1, n2);
+z4=(pcshiftx,h); z5=(w,y4);
+z10o = (z4--z5) intersectionpoint subpath (3,4) of obouter;
+z10i = (z4--z5) intersectionpoint subpath (3,4) of obinner;
+z10'=1/2[z10o,z10i];
+z10=(x10i,y1);
+z20o = (z1'--z2') intersectionpoint subpath (1,3) of obouter;
+z20i = (z1'--z2') intersectionpoint subpath (1,3) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, 0, clubjut);
+fill z10o..z3maxlo{-ppdir}..z3minro{pdir}..z20o--
+ z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i--cycle;
+draw_triserif(10,trijut); % serif on bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "u"
+
+cmchar "IMAJ letter v";
+beginchar("v", 2sb#+hstretch*(x_height#+trijut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric midx; midx:= pcshiftx;
+lft x1=midx+trijut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-trijut; y5=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(1,trijut);
+%%draw_triserif(5,trijut);
+draw z1--z2{down}..z3{right}..z4{up}..z5;
+ductus:=false;
+penlabels(1,2,3,4,5,11,100);
+endchar; % end "v"
+
+cmchar "IMAJ letter w";
+beginchar("w", 2sb#+hstretch*(5/3x_height#+trijut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric midx; midx:= w/2-trijut;
+lft x1=midx+trijut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-trijut; y5=y1;
+lft x6=pcshiftx+trijut;
+top y6=h;
+%%lft x7=pcshiftx; y7=y2;
+x7=x6; y7=y2;
+x8=0.5[x7,x1]; y8=y3;
+x15=0.5[x8,x1]; y15=y8;
+z15'=z15 shifted (w*pdir);
+x2'=x2; y2'=y15;
+path p[];
+p1=z1--z2';
+p2=z15--z15';
+z9= p2 intersectionpoint p1;
+pair vec[];
+p3=z6..z7{down}..{right}z8;
+vec3 = direction 0 of p3;
+z16=z6 shifted vec3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(1,trijut); % right half
+draw z1--z2{down}..z3{right}..z4{up}..z5;
+draw_triserif(6,trijut); % left half
+draw z6--z7{down}..z8{right}..z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "w"
+
+cmchar "IMAJ letter x";
+beginchar("x", 2sb#+hstretch*(16/6x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % total width
+n2 := thick; % triangle side
+%% diag top left to bottom right
+lft x1=pcshiftx; bot y1=2/3h;
+x2=pcshiftx+1/7n1; top y2=h;
+x5=pcshiftx+11/14n1; bot y5=-1/4d;
+rt x6=pcshiftx+n1; top y6=1/6h;
+%% diag bottom left to top right
+x10=x1; bot y10=-d;
+x50=pcshiftx+9/14n1; top y50=h;
+rt x60=x5; bot y60=2/3h;
+x40=pcshiftx+8/14n1; y40=h;
+%% triangle
+z100=(lft x10, bot y10);
+x101=x100+n2; z101=whatever[z100,z40];
+x102=x100; y102=1/2[y100,y101]+n2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z5{right}..z6; % top left to bottom right
+draw z10{z40-z10}..z50{right}..z60; % bottom left to top right
+fill z100--z101--z102--cycle; % triangle
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "x"
+
+cmchar "IMAJ letter y";
+beginchar("y", 2sb#+hstretch*(x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+%% main stroke
+rt x1=w-pcshiftx; top y1=h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x1; y4=0;
+x2=2/3[x3,x1]; bot y2=h;
+lft x5=1/2[x3,x4]; bot y5=-d;
+%% arm
+z101=1/2[z3,z4];
+z103=(x1,y3);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4{down}..z5; % main stroke
+draw z101..z103{right}; % arm
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "IMAJ letter z";
+beginchar("z", 2sb#+hstretch*(9/6x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% top bar
+n10 := w-2pcshiftx; % letter width
+lft x1=pcshiftx; y1=h;
+rt x2=pcshiftx+2/3n10; y2=y1;
+%% diagonal
+x3=x1; bot y3=0;
+%% bowl
+n1 := 2/3n10; % width of bowl
+n2 := 5/6h; % height of bowl
+z4=(w-pcshiftx-n1, 0);
+obowl(4, n1, n2);
+z5'=(0,1/4n2); z6'=(x4obc,y5');
+z20o = (z5'--z6') intersectionpoint obouter;
+z20i = (z5'--z6') intersectionpoint obinner;
+z7'=(0,2/3n2); z8'=(x6',y7');
+z10o = whatever[lft z3, lft z2] = whatever[z7',z8'];
+z10i = whatever[rt z3, rt z2] = whatever[z7',z8'];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % top bar
+draw_utriangle(1,thick);
+draw z2--z3; % diagonal
+fill z20o..z4minro{pdir}..z4maxro{ppdir}..z4minlo{-pdir}..{z3-z2}z10o--
+ z10i{z2-z3}..z4minli{pdir}..z4maxri{-ppdir}..z4minri{-pdir}..z20i--
+ cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajlig.mf
new file mode 100644
index 00000000000..190833a97b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imajlig.mf
@@ -0,0 +1,145 @@
+%%
+%% This is file `imajlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+%%%%ligtable "f": "i"=:oct"014";
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+x11=lft x1+alpha/2; y11=top y1-0.5thin;
+x12=rt x2; y12=bot y1+0.5thin;
+draw_triangle(11,alpha);
+draw_rutriangle(12,alpha);
+pickup thickstylus;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=y1;
+draw z21--z22;
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+x11=lft x1+alpha/2; y11=top y1-0.5thin;
+x12=rt x2; y12=bot y1+0.5thin;
+draw_triangle(11,alpha);
+draw_rutriangle(12,alpha);
+pickup thickstylus;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=y1;
+draw z21--z22;
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+x11=lft x1+alpha/2; y11=top y1-0.5thin;
+x12=rt x2; y12=bot y1+0.5thin;
+draw_triangle(11,alpha);
+draw_rutriangle(12,alpha);
+pickup thickstylus;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=y1;
+draw z21--z22;
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "IMAJ ampersand";
+beginchar("&", 2sb#+hstretch*(6/3x_height#), asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx:=sb;
+pickup quill;
+n10 := w-2pcshiftx; % width of character
+%% crossbar
+z1'=(0,h/ascratio);
+rt x2=w-pcshiftx; y2=y1';
+%% main bowl
+n1 := 4/6n10; % width of bowl
+n2 := h; % height of bowl
+z3=(pcshiftx,0);
+obowl(3, n1, n2);
+z2'=(x3obc,y1');
+z1 = (z1'--z2') intersectionpoint obinner;
+z10o = (z2'--z2) intersectionpoint obouter;
+z10i = (z2'--z2) intersectionpoint obinner;
+%% wave
+x4=x2; bot y4=0;
+pth1 := z1{right}..z4{right};
+%% wave/bowl
+z20o = pth1 intersectionpoint subpath (0,2) of obouter;
+z20i = pth1 intersectionpoint subpath (0,2) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+fill z10o..z3minlo{-pdir}..z3maxlo{-ppdir}..z3minro{pdir}..z20o--
+ z20i..z3minri{-pdir}..z3maxli{ppdir}..z3minli{pdir}..z10i--
+ cycle;
+draw z1--z2; % bar
+draw pth1; % wave
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,31,32,33);
+endchar; % end of "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajpunct.mf
new file mode 100644
index 00000000000..26413b9382f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imajpunct.mf
@@ -0,0 +1,138 @@
+%%
+%% This is file `imajpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+z1=(w/2,h);
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*(x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+%% top bowl
+z1=(pcshiftx, h-n2);
+obowl(1, n1, n2);
+pth1 := obouter;
+%% bottom bowl
+z2=(x1,y1-n3);
+obowl(2, n1, n3);
+pth2 := obouter;
+%% stem and dot
+lft x4 = x1 + 4/4thick;
+z5=(x4,1/2dot_size);
+y4=y5+3/2dot_size;
+z4o=(lft x4, y4); z4i=(rt x4, y4);
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+ draw pth1; draw pth2;
+ draw z2wt--z4;
+ draw_pdot(5, dot_size);
+else:
+ fill z1maxlo{ppdir}..z1minlo{pdir}..z1maxro{-ppdir}..
+%% z1minro..z2maxli{-ppdir}..
+ z2minli..
+ {down}z4i--z4o{up}..
+ z2minlo..
+%% z1minri..z1maxri{ppdir}..
+ z1maxri{ppdir}..z1minli{-pdir}..z1maxli{-ppdir}--cycle;
+ draw_pdot(5, dot_size);
+fi
+penlabels(1,2,3,4,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h/2;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=w/2; y1=h/2;
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imajtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/imajtitle.mf
new file mode 100644
index 00000000000..0a0da946797
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imajtitle.mf
@@ -0,0 +1,611 @@
+%%
+%% This is file `imajtitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def inslrmaj_font_setup= % contains special stuff for inslrmaj fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of inslrmaj_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+%% filldraw z$s--z$t--z$u--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+%% filldraw z$s--z$t--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$maxr = directionpoint -dir(pangle+90) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ z$maxl = directionpoint dir(pangle+90) of obfirst;
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo..z$maxro..z$minro..z$maxlo..cycle;
+%% obouter := z$minl.r..z$maxr.r..z$minr.l..z$maxl.l..cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli..z$maxri..z$minri..z$maxli..cycle;
+%% obinner := z$minl.l..z$maxr.l..z$minr.r..z$maxl.r..cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+inslrmaj_font_setup;
+
+
+input imajl; % lower case
+input imaju; % capitals
+input imajpunct; % punctuation
+input imajlig; % the several dashes
+input imajdig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space vstretch*9u#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space vstretch*6u#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imaju.mf b/Master/texmf-dist/fonts/source/public/bookhands/imaju.mf
new file mode 100644
index 00000000000..54152894c55
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imaju.mf
@@ -0,0 +1,840 @@
+%%
+%% This is file `imaju.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmaj.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "IMAJ letter A";
+beginchar("A", 2sb#+caprat*hstretch*(5/3x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left bowl
+n1 := w-2pcshiftx; % actual letter width
+n2 := 7/10n1; % width of left bowl
+z1=(pcshiftx,0);
+obowl(1, n2, h);
+pth1:=obouter; pth2:=obinner;
+pth10:=obfirst; pth20:=obsecond;
+%% right bowl
+n3:=x1+n2-16/12thick; % leftmost point of "stem"
+n4:=2(n1-n3); % total width of right stem bowl
+z2=(n3,0);
+offsetbowl(2, n4, h, 6/12, 1/2);
+pth3:=obouter; pth4:=obinner;
+pth30:=obfirst; pth40:=obsecond;
+%% intersect left bowl with outer of right bowl
+z1tout = (subpath (0,1) of pth1) intersectionpoint (subpath (4,2) of pth3);
+z1tinn = (subpath (0,1) of pth2) intersectionpoint (subpath (4,2) of pth3);
+z1lout = (subpath (1,2) of pth1) intersectionpoint (subpath (4,2) of pth3);
+z1linn = (subpath (1,2) of pth2) intersectionpoint (subpath (4,2) of pth3);
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ % draw the control paths
+ draw pth10; draw pth20;
+ draw pth30; draw pth40;
+else:
+ %% draw left bowl
+ fill z1lout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z1tout--
+ z1tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z1linn--
+ cycle;
+ %% draw right stem/bowl
+ fill z2minro{-pdir}..z2maxlo{ppdir}..{pdir}z2minlo--
+ z2minli{-pdir}..z2maxli{-ppdir}..{pdir}z2minri--cycle;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "A"
+
+cmchar "IMAJ letter B";
+beginchar("B", 2sb#+caprat*hstretch*(7/6x_height#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+z1=(pcshiftx, -o);
+obowl(1, n1, n2+o);
+%% draw bowl
+fill obouter; unfill obinner;
+%% top of stem
+x2=x1wt+1/3n1; top y2=h;
+tangentpoint(2, subpath (3,4) of obsecond);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z2tan--z2;
+draw_triserif(2,trijut);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "B"
+
+cmchar "IMAJ letter C";
+beginchar("C", 2sb#+caprat*hstretch*(5/6x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+z1=(pcshiftx,0);
+obowl(1, n2, h);
+z3=(x1+n1, h); % top RH corner
+z4=(x1obc,1/6h); z5=(3/2w,y4); % for horizontal line
+%% top intersection points
+z10i = (z1obc--z3) intersectionpoint obinner;
+z10o = (z1obc--z3) intersectionpoint obouter;
+%% bottom intersection points
+z20i = (z4--z5) intersectionpoint obinner;
+z20o = (z4--z5) intersectionpoint obouter;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+fill z20o..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10o--
+ z10i..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20i--
+ cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,16,17,18,100);
+endchar; % end "C"
+
+cmchar "IMAJ letter D";
+beginchar("D", 2sb#+caprat*hstretch*(x_height#+1/2thick#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% bowl
+n1 := w-2pcshiftx; % actual letter width
+n2 := n1-1/2thick; % width of bowl
+n3 := h; % top of bowl
+z1=(w-pcshiftx-n2, 0);
+obowl(1, n2, n3);
+%% top bar
+lft x3=pcshiftx; y3=h;
+z3i=(pcshiftx, y3-1/2thin); z3o=(x3i,y3i+thin);
+z2i=(x1nh,y3i);
+z2o=(x2i,y3o);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+fill z1minlo{-pdir}..z1maxlo{-ppdir}..z1minro{pdir}..z1maxro{ppdir}..{left}z2o--
+ z3o--z3i--
+ z2i{right}..z1maxri{-ppdir}..z1minri{-pdir}..z1maxli{ppdir}..{pdir}z1minli--
+ cycle;
+draw_utriangle(3, thick);
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "D"
+
+cmchar "IMAJ letter E";
+beginchar("E", sb#+caprat*hstretch*(x_height#+3/2thick#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+n1 := w-pcshiftx; % actual letter width
+n2 := n1-3/2thick; % width of bowl
+z1=(pcshiftx,0);
+obowl(1, n2, h);
+%% for crossbar
+z2=(0,2/3h); rt x3=w; y3=y2; z3'=(x1obc,y2);
+z4 = (z2--z3') intersectionpoint subpath (3,4) of obsecond;
+z10tout = (z3'--z3) intersectionpoint subpath (0,3) of obouter;
+z10tinn = (z3'--z3) intersectionpoint subpath (0,3) of obinner;
+%% bottom cutoff
+z5=(x1obc,1/6h); z6=(w,y5);
+z20bout = (z5--z6) intersectionpoint subpath (0,3) of obouter;
+z20binn = (z5--z6) intersectionpoint subpath (0,3) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+fill z20bout..z1minro{-pdir}..z1maxlo{ppdir}..z1minlo{pdir}..z10tout--
+ z10tinn..z1minli{-pdir}..z1maxli{-ppdir}..z1minri{pdir}..z20binn--
+ cycle;
+draw z4--z3; % crossbar & decoration
+draw_triangle(3,thick);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "E"
+
+cmchar "IMAJ letter F";
+beginchar("F", 2sb#+caprat*hstretch*(x_height#+trijut#),
+ caprat*(x_height#), caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=-d;
+%% bottom bar
+z4=(rt x1,-thin); rt x6=w-pcshiftx; y6=y4+2thin; z5=1/2[z4,z6];
+%% top bar
+z7=(rt x1, bot y1);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+draw z4{dir(45)}..z5{right}..z6{dir(45)}; % bottom bar
+draw_flick(7, 2thin, thin, (w-pcshiftx-x7+1/2thick)); % top bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "F"
+
+cmchar "IMAJ letter G";
+beginchar("G", 2sb#+caprat*hstretch*(5/3x_height#),
+ caprat*x_height#, caprat*desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+pcshiftx := sb;
+pickup quill;
+%% top bar
+lft x1=pcshiftx; y1=h; rt x2=w-pcshiftx; y2=h;
+%% curves
+z3=2/5[z1,z2];
+x5=4/5[x1,x2]; y5=-1/2d;
+x4=(x3-thick); y4=1/2[y5,y3];
+x7=1/2[x1,x4]; y7=y5;
+x6=2/3[x7,x5]; bot y6=-d;
+pth1 := z3..z4{down}..z5;
+pth2 := z5--z6{left}..z7;
+%% diagonal to close bottom bowl
+vec1 := direction 2 of pth2;
+vec2 := (z5-z6);
+z7'=(lft x7, bot y7); z7''=(rt x7, y7);
+pickup thickstylus;
+lft x8 = x7'; bot y8 = y7';
+z9' = z8 shifted 2vec2;
+z9 = (z8--z9') intersectionpoint pth1;
+z7''' = z7'' shifted 2vec1;
+z8' = whatever[z7'',z7'''] = whatever[z8,z9'];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw z1--z2; % top bar
+ draw pth1; draw pth2; % curves
+ draw rt z8--z9; % diagonal
+else:
+ pickup quill;
+ draw z1--z2; % top bar
+ draw_triangle(2,thick);
+ draw_utriangle(1,thick);
+ draw pth1; draw pth2; % curves
+ pickup thickstylus;
+ draw rt z8--z9; % diagonal
+ fill z7''--z8'--z8--cycle;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "G"
+
+cmchar "IMAJ letter H";
+beginchar("H", 2sb#+caprat*hstretch*(x_height#+trijut#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+%% bowl
+rt x3 = lft x1; y3=0;
+n1 := w-pcshiftx-x3; % bowl width
+n2 := h/ascratio; % bowl height
+obowl(3, n1, n2);
+z1'=(rt x1, y1); z2'=(x1',y2); %% right hand side of stem
+z10tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter;
+z10tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner;
+z10toth = (x1, y10tinn); % avoids 180 turn in path
+z6 = directionpoint down of obsecond; % top of right leg
+z6i=(lft x6, bot y6); z6o=(rt x6, bot y6);
+z8=(x6,0);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+draw_tstem(6,8,srad); % right leg
+draw_clubbase(6, 8, 1/3, 0, 1/2clubjut);
+fill z6i{up}..z3minli{-pdir}..z10tinn--z10toth-- % top of bowl
+ z10tout..z3minlo{pdir}..{down}z6o--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "H"
+
+cmchar "IMAJ letter I";
+beginchar("I", 2sb#+caprat*hstretch*(thick#+trijut#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "I"
+
+cmchar "IMAJ letter J";
+beginchar("J", sb#+caprat*hstretch*(2/3x_height#),
+ caprat*x_height#, caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+%% triangle
+n1 := thick; % side length
+z6=(lft x3, bot y3);
+x7=x6+n1; z7=whatever[z6,z2];
+z8=1/2[z6,z7];
+z9=(x8, y8+0.9n1);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw_triserif(1,trijut);
+draw z2--z3; % hook
+fill z6--z7--z9--cycle; % triangle
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "J"
+
+cmchar "IMAJ letter K";
+beginchar("K", 2sb#+caprat*hstretch*(x_height#+trijut#),
+ caprat*x_height#, caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut;
+top y1=h; bot y2=-d;
+%% top arm
+z3=(x1,5/6h);
+rt x5=w-pcshiftx; y5=2/3h;
+x4=1/2[x3,x5]; top y4=h;
+%% lower arm
+x7=x5; bot y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1,2,1/3, clubjut, clubjut);
+draw z3..z4{right}..z5; % upper arm
+draw z3..{right}z7; % lower arm
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "K"
+
+cmchar "IMAJ letter L";
+beginchar("L", 2sb#+caprat*hstretch*(7/6x_height#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x2=pcshiftx; y2=1/5h;
+x1=x2+trijut; top y1=h;
+rt x4=w-pcshiftx; y4=1/5h;
+x3=1/2[x2,x4]; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z2..z3{right}..z4;
+draw_triserif(1,trijut);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "L"
+
+cmchar "IMAJ letter M";
+beginchar("M", 2sb#+caprat*hstretch*(5/3x_height#+trijut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+trijut; top y1=h;
+x2=x1; bot y2=0;
+z1'=(rt x1, y1+h); z2'=(rt x2, y2-h);
+%% right stem
+rt x5=w-pcshiftx; y5=y1;
+z6=(x5,0);
+%% middle stem
+z3=1/2[z1,z5]; z4=1/2[z2,z6];
+z3'=(rt x3, y3); z4'=(rt x4, y4);
+n1 := x4-x2+3/2thick; % width of bowl
+n2 := 2/3h; % height of bowl
+%% left bowl
+z7=(rt x4 - n1, h-n2);
+obowl(7, n1, n2);
+pth1 := obouter; pth2 := obinner; pth3 := obsecond;
+z17tout = (z1'--z2') intersectionpoint subpath (3,4) of obouter;
+z17tinn = (z1'--z2') intersectionpoint subpath (3,4) of obinner;
+z17toth = (x2, y17tinn);
+%% right bowl
+z8=(rt x6 - n1, y7);
+obowl(8, n1, n2);
+pth5 := obouter; pth6 := obinner; pth7 := obsecond;
+z18tout = pth5 intersectionpoint subpath (0,1) of pth1;
+z18tinn = pth6 intersectionpoint subpath (0,1) of pth1;
+z13 = directionpoint down of pth3;
+z15 = directionpoint down of pth7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+fill z17tout..z7minlo{pdir}..{down}(rt x13, y13)--
+ (lft x13, y13){up}..z7minli{-pdir}..z17tinn--z17toth--cycle;
+draw_tstem(13,4,srad); % right half
+fill z18tout..z8minlo{pdir}..{down}(rt x15, y15)--
+ (lft x15, y15){up}..z8minli{-pdir}..z18tinn--cycle;
+draw_tstem(15,6,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,14,100);
+endchar; % end "M"
+
+cmchar "IMAJ letter N";
+beginchar("N", 2sb#+caprat*hstretch*(7/6x_height#+trijut#),
+ caprat*x_height#, caprat*(1/2desc_depth#));
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+trijut; top y1=h;
+x2=x1; bot y2=-d;
+%% right stem
+rt x3=w-pcshiftx; y3=y1;
+z4=(x3,0);
+%% bar
+z5=(x1,1/3h); z6=(x4,1/6h);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+draw_tstem(3,4,srad); % right stem
+draw_clubbase(3, 4, 1/3, clubjut, clubjut);
+draw z5--z6; % bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "N"
+
+cmchar "IMAJ letter O";
+beginchar("O", 2sb#+caprat*hstretch*(7/6x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+z5=(pcshiftx,-o);
+obowl(5, w-2pcshiftx, h+2o);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+fill obouter; unfill obinner;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "IMAJ letter P";
+beginchar("P", 2sb#+caprat*hstretch*(8/6x_height#+trijut#),
+ caprat*x_height#, caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut;
+top y1=1/3h; bot y2=-d;
+n1 := w - pcshiftx - lft x1; % width of bowl
+n2 := h+1/4d; % height of bowl
+z3=(lft x1, -1/4d);
+obowl(3, n1, n2);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, 0);
+fill lft z1{up}..z3minlo{pdir}..z3maxro{-ppdir}..{-pdir}z3minro--
+ z3minri{pdir}..z3maxri{ppdir}..z3minli{-pdir}..{down}rt z1--
+ cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "IMAJ letter Q";
+beginchar("Q", 2sb#+caprat*hstretch*(x_height#+1/2trijut#),
+ caprat*x_height#, caprat*(1/2desc_depth#));
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1=w-pcshiftx-1/2trijut; top y1=h;
+x2=x1; bot y2=-d;
+z3=(pcshiftx,0);
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+obowl(3, n1, n2);
+z10o = (rt z1--rt z2) intersectionpoint subpath (0,1) of obouter;
+z10i = (lft z1--lft z2) intersectionpoint subpath (0,1) of obinner;
+z20o = (rt z1--rt z2) intersectionpoint subpath (1,2) of obouter;
+z20i = (lft z1--lft z2) intersectionpoint subpath (1,2) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, 0, clubjut);
+fill z10o..z3minlo{-pdir}..z3maxlo{-ppdir}..z3minro{right}..z20o--
+ z20i..z3minri{-pdir}..z3maxli{ppdir}..z3minli{pdir}..z10i--
+ cycle;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "Q"
+
+cmchar "IMAJ letter R";
+beginchar("R", sb#+caprat*hstretch*(11/6x_height#+trijut#),
+ caprat*x_height#, caprat*(1/2desc_depth#));
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut; top y1=h; bot y2=-d;
+n1 := w-pcshiftx; % width of bowl
+n2 := 5/6h; % height of bowl
+z3=(x1-1/2n1, h-n2);
+obowl(3, n1, n2);
+z10o=(x1,h); z10i=(x1, y10o-thin);
+z20o=(x1,y3); z20i=(x20o, y20o+thin);
+%% arm
+x4=x1; bot y4=y3;
+x5=x3maxro; top y5=0;
+%%rt x6=w; y6=y4;
+rt x6=w; y6=y2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, 0);
+fill z10o{right}..z3maxro{-ppdir}..{left}z20o--
+ z20i{right}..z3maxri{ppdir}..{left}z10i--cycle;
+%%draw z4{right}..z5{right}..{right}z6; % arm
+draw z4{right}..{right}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "R"
+
+cmchar "IMAJ letter S";
+beginchar("S", 2sb#+caprat*hstretch*(x_height#+trijut#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+trijut; top y1=h/ascratio; bot y2=0;
+n1 := w; % width of bowl
+n2 := 2(h-y1); % height of bowl
+z3=(lft x1, y1-1/2n2);
+obowl(3, n1, n2);
+z4=(2w,2h);
+z10o = (z3--z4) intersectionpoint subpath (0,1) of obouter;
+z10i = (z3--z4) intersectionpoint subpath (0,1) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, clubjut, clubjut);
+fill rt z1{up}..z3minli{pdir}..z10i--
+ z10o..z3minlo{-pdir}..{down}lft z1--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,26,27,28,100);
+endchar; % end "S"
+
+cmchar "IMAJ letter T";
+beginchar("T", 2sb#+caprat*hstretch*(4/3x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+lft x1 = pcshiftx; y1=h; rt x2=w-pcshiftx; y2=y1;
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+z3=(pcshiftx+thick,0);
+obowl(3, n1, n2);
+z5=(x1+w, 0);
+z20o = (z1--z5) intersectionpoint subpath (1,2) of obouter;
+z20i = (z1--z5) intersectionpoint subpath (1,2) of obinner;
+z10o = (x3minlo, top y1);
+z10i = (x3minlo, bot y1);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % bar
+draw_utriangle(1, thick);
+draw_triangle(2, thick);
+fill z10o{left}..z3maxlo{-ppdir}..z3minro{pdir}..z20o--
+ z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i{right}--
+ cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "T"
+
+cmchar "IMAJ letter U";
+beginchar("U", 2sb#+caprat*hstretch*(7/6x_height#+1/2trijut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1 = rt x2 = w-pcshiftx-1/2trijut;
+y1=h; y2=0;
+z1'=(x1-1/2thick,2h); z2'=(x1',-h);
+%% bowl
+n1 := w; % width of bowl
+n2 := 4/3h; % height of bowl
+z3=(pcshiftx,0);
+obowl(3, n1, n2);
+z4=(pcshiftx,h); z5=(w,y4);
+z10o = (z4--z5) intersectionpoint subpath (3,4) of obouter;
+z10i = (z4--z5) intersectionpoint subpath (3,4) of obinner;
+z10'=1/2[z10o,z10i];
+z10=(x10i,y1);
+z20o = (z1'--z2') intersectionpoint subpath (1,3) of obouter;
+z20i = (z1'--z2') intersectionpoint subpath (1,3) of obinner;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_triserif(1,trijut);
+draw_clubbase(1, 2, 1/3, 0, clubjut);
+fill z10o..z3maxlo{-ppdir}..z3minro{pdir}..z20o--
+ z20i..z3minri{-pdir}..z3maxli{ppdir}..z10i--cycle;
+draw_triserif(10,trijut); % serif on bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "U"
+
+cmchar "IMAJ letter V";
+beginchar("V", 2sb#+caprat*hstretch*(x_height#+trijut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric midx; midx:= pcshiftx;
+lft x1=midx+trijut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-trijut; y5=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(1,trijut);
+%%draw_triserif(5,trijut);
+draw z1--z2{down}..z3{right}..z4{up}..z5;
+ductus:=false;
+penlabels(1,2,3,4,5,11,100);
+endchar; % end "V"
+
+cmchar "IMAJ letter W";
+beginchar("W", 2sb#+caprat*hstretch*(5/3x_height#+trijut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric midx; midx:= w/2-trijut;
+lft x1=midx+trijut; top y1=h;
+x2=x1; y2=h/2;
+rt x4=w-pcshiftx; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-trijut; y5=y1;
+lft x6=pcshiftx+trijut;
+top y6=h;
+%%lft x7=pcshiftx; y7=y2;
+x7=x6; y7=y2;
+x8=0.5[x7,x1]; y8=y3;
+x15=0.5[x8,x1]; y15=y8;
+z15'=z15 shifted (w*pdir);
+x2'=x2; y2'=y15;
+path p[];
+p1=z1--z2';
+p2=z15--z15';
+z9= p2 intersectionpoint p1;
+pair vec[];
+p3=z6..z7{down}..{right}z8;
+vec3 = direction 0 of p3;
+z16=z6 shifted vec3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_triserif(1,trijut); % right half
+draw z1--z2{down}..z3{right}..z4{up}..z5;
+draw_triserif(6,trijut); % left half
+draw z6--z7{down}..z8{right}..z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "W"
+
+cmchar "IMAJ letter X";
+beginchar("X", 2sb#+caprat*hstretch*(16/6x_height#),
+ caprat*x_height#, caprat*desc_depth#);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % total width
+n2 := thick; % triangle side
+%% diag top left to bottom right
+lft x1=pcshiftx; bot y1=2/3h;
+x2=pcshiftx+1/7n1; top y2=h;
+x5=pcshiftx+11/14n1; bot y5=-1/4d;
+rt x6=pcshiftx+n1; top y6=1/6h;
+%% diag bottom left to top right
+x10=x1; bot y10=-d;
+x50=pcshiftx+9/14n1; top y50=h;
+rt x60=x5; bot y60=2/3h;
+x40=pcshiftx+8/14n1; y40=h;
+%% triangle
+z100=(lft x10, bot y10);
+x101=x100+n2; z101=whatever[z100,z40];
+x102=x100; y102=1/2[y100,y101]+n2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z5{right}..z6; % top left to bottom right
+draw z10{z40-z10}..z50{right}..z60; % bottom left to top right
+fill z100--z101--z102--cycle; % triangle
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "X"
+
+cmchar "IMAJ letter Y";
+beginchar("Y", 2sb#+caprat*hstretch*(x_height#),
+ caprat*x_height#, caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+%% main stroke
+rt x1=w-pcshiftx; top y1=h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x1; y4=0;
+x2=2/3[x3,x1]; bot y2=h;
+lft x5=1/2[x3,x4]; bot y5=-d;
+%% arm
+z101=1/2[z3,z4];
+z103=(x1,y3);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4{down}..z5; % main stroke
+draw z101..z103{right}; % arm
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "IMAJ letter Z";
+beginchar("Z", 2sb#+caprat*hstretch*(9/6x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% top bar
+n10 := w-2pcshiftx; % letter width
+lft x1=pcshiftx; y1=h;
+rt x2=pcshiftx+2/3n10; y2=y1;
+%% diagonal
+x3=x1; bot y3=0;
+%% bowl
+n1 := 2/3n10; % width of bowl
+n2 := 5/6h; % height of bowl
+z4=(w-pcshiftx-n1, 0);
+obowl(4, n1, n2);
+z5'=(0,1/4n2); z6'=(x4obc,y5');
+z20o = (z5'--z6') intersectionpoint obouter;
+z20i = (z5'--z6') intersectionpoint obinner;
+z7'=(0,2/3n2); z8'=(x6',y7');
+z10o = whatever[lft z3, lft z2] = whatever[z7',z8'];
+z10i = whatever[rt z3, rt z2] = whatever[z7',z8'];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % top bar
+draw_utriangle(1,thick);
+draw z2--z3; % diagonal
+fill z20o..z4minro{pdir}..z4maxro{ppdir}..z4minlo{-pdir}..{z3-z2}z10o--
+ z10i{z2-z3}..z4minli{pdir}..z4maxri{-ppdir}..z4minri{-pdir}..z20i--
+ cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imin10.mf b/Master/texmf-dist/fonts/source/public/bookhands/imin10.mf
new file mode 100644
index 00000000000..db6dbe31e5b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imin10.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `imin10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMIN10.MF Insular Minuscule at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMIN"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=5/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+jutfudge:= 3/4;
+%%%%jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imin17.mf b/Master/texmf-dist/fonts/source/public/bookhands/imin17.mf
new file mode 100644
index 00000000000..d15f2e81c27
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imin17.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `imin17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMIN17.MF Insular Minuscule at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMIN"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=5/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+jutfudge:= 3/4;
+%%%%jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imin7.mf b/Master/texmf-dist/fonts/source/public/bookhands/imin7.mf
new file mode 100644
index 00000000000..b8513b104bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imin7.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `imin7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMIN7.MF Insular Minuscule at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMIN"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=5/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+jutfudge:= 3/4;
+%%%%jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminb10.mf
new file mode 100644
index 00000000000..a5f2549f6c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/iminb10.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `iminb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMINB10.MF Insular Minuscule Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMINB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=5/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+jutfudge:= 3/4;
+%%%%jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminb17.mf
new file mode 100644
index 00000000000..fd6e46e0346
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/iminb17.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `iminb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMINB17.MF Insular Minuscule Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMINB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=5/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+jutfudge:= 3/4;
+%%%%jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminb7.mf
new file mode 100644
index 00000000000..44eb260a67e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/iminb7.mf
@@ -0,0 +1,77 @@
+%%
+%% This is file `iminb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% IMINB7.MF Insular Minuscule Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IMINB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=5/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+jutfudge:= 3/4;
+%%%%jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjut:=5/12;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate imintitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imindig.mf b/Master/texmf-dist/fonts/source/public/bookhands/imindig.mf
new file mode 100644
index 00000000000..7dfce6b993a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imindig.mf
@@ -0,0 +1,223 @@
+%%
+%% This is file `imindig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "Uncial digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "Uncial digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+o; top y1=h-2thin;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx-o; y3=3/4h;
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(5,6,thin); % foot
+draw z1..z2{right}..z3{down}..{-pdir}z5wl; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "Uncial digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+%%lft x6=pcshiftx+3thin; x7=x6;
+x6=1/2[x3,x9]; x7=x6;
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl
+draw z7{right}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "Uncial digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-jut;
+y1=h; bot y2=0;
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % main stem
+draw_wave(3,4,thin); % crossbar
+draw z3wl--z1; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "Uncial digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx; y2=y1;
+x3=x2; y3=0.5h+thin;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=w/2; bot y6=0;
+lft x7=pcshiftx; bot y7=2thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(2,1,thin); % top squiggle
+draw z3{pdir}..z5{down}..z6{left}..z7; % curve
+draw z2wl--z3; % vertical
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "Uncial digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "6"
+
+cmchar "Uncial digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,2,thin); % top bar
+draw z1wr..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "Uncial digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "Uncial digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "Uncial digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminl.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminl.mf
new file mode 100644
index 00000000000..835ed13c020
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/iminl.mf
@@ -0,0 +1,729 @@
+%%
+%% This is file `iminl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "IMIN letter a";
+beginchar("a", 2sb#+hstretch*(3/4x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+n1 := w - 2pcshiftx -jut; % effective letter width
+x1 = pcshiftx + 2/3n1; top y1=h;
+rt x2 = pcshiftx + n1; bot y2=0;
+z16 = 1/6[z2,z1];
+rt x6 = x16; y6=y16;
+lft x4 = pcshiftx; y4 = 1/2h;
+pth1 := z1{down}..z2;
+pr1 := direction 1 of pth1;
+z20 = z2 shifted -10pr1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+else:
+ % draw stem
+ draw pth1;
+ draw_roundserif(2,20,srad);
+ % draw bowl
+ draw z1{-pdir}..z4{down}..z6{pdir};
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "a"
+
+cmchar "IMIN letter b";
+beginchar("b", 2sb#+hstretch*(3/4x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx+jut; top y1=h;
+lft x3 = pcshiftx; y3=1/2n2;
+rt x5 = w-pcshiftx; y5=y3;
+x4 = 1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=n2;
+pth1 := z1..z3{down}..z4{right}.. z5{up};
+z98=(0,3/4n2); z99=(w,y98);
+pth2 := z98--z99;
+z7 = pth1 intersectionpoint pth2;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir};
+draw_flatserif(1,7,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "IMIN letter c";
+beginchar("c", 2sb#+hstretch*(5/8x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "IMIN letter d";
+beginchar("d", 2sb#+hstretch*(3/4x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+rt x3 = w-pcshiftx; y3 = 1/2h/ascratio;
+x4 = 1/2[x1,x3]; bot y4 = 0;
+z5=(x1,y3);
+z98=(0,h/ascratio); z99=(w,y98); pth2 := z98--z99;
+pth1 := z1{-ppdir}..z3{down}..z4{left};
+z6 = pth1 intersectionpoint pth2;
+if ductus:
+ pickup stylus;
+fi
+draw z1{-ppdir}..z3{down}..z4{left}..z5{up}..z6{pdir};
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "IMIN letter e";
+beginchar("e", sb#+hstretch*(5/4x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-pcshiftx; % actual letter width
+n2 := 4/8n1; % width of bowl
+x1 = pcshiftx + 5/8n2; top y1=h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = pcshiftx + 1/2n2; bot y3 = 0;
+rt x4 = pcshiftx + n2; y4 = 1/4h;
+z98=(0,3/8h); z99=(w,y98);
+pth1 := z98--z99;
+pth2 := z1{left}..z2{down}..z3{right};
+z7 = pth1 intersectionpoint pth2;
+rt x9 = w-pcshiftx; y9 = 3/4h;
+z8=1/2[z7,z9];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir};
+draw z7{pdir}..z8{right}..z9{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "e"
+
+cmchar "IMIN letter f";
+beginchar("f", 2sb#+hstretch*(3/4x_height#+jut#),
+ (x_height#), desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; y2=-1/2d;
+lft x20=0; bot y20=-d;
+%% bottom bar
+z4=(rt x1,-thin); rt x6=w-pcshiftx; y6=y4+2thin; z5=1/2[z4,z6];
+%% top bar
+x7= x1; bot y7 = 1/2h;
+rt x9= w-pcshiftx; y9 = 1/2[y7,y1];
+x8 = 2/3[x7,x9]; top y8 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z2{down}..z20{-pdir};
+draw_flatserif(1,2,srad);
+draw z4{dir(45)}..z5{right}..z6{dir(45)}; % bottom bar
+%%draw_flick(7, 2thin, thin, (w-pcshiftx-x7+1/2thick)); % top bar
+draw z7..z8..z9; % top bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "f"
+
+cmchar "IMIN letter g";
+beginchar("g", 2sb#+hstretch*(x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+pcshiftx := sb;
+pickup quill;
+%% top bar
+lft x1=pcshiftx; top y1=h; rt x2=w-pcshiftx; top y2=h;
+x3=1/2[x1,x2]; bot y3=1/8h;
+rt x5 = w-pcshiftx; y5 = -1/2d;
+x6 = x3; bot y6 = -d;
+x7 = 1/2[x1,x3]; y7 = y5;
+x8=x3; y8 = -y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw z1--z2; % top bar
+ draw pth1; draw pth2; % curves
+ draw rt z8--z9; % diagonal
+else:
+ draw z1--z2;
+ draw z2--z3;
+ draw z3{pdir}..z5{down}..z6{left}..z7{up}..z8{pdir};
+ draw_roundserif(1,2,srad);
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "g"
+
+cmchar "IMIN letter h";
+beginchar("h", 2sb#+hstretch*(7/8x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=1/2[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h/ascratio;
+lft x6=x4; bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{pdir}..z4..z5..z6{-pdir};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "IMIN letter i";
+beginchar("i", 2sb#+hstretch*(thick#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "IMIN letter j";
+beginchar("j", sb#+hstretch*(3/8x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z3{-pdir}; % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "IMIN letter k";
+beginchar("k", 2sb#+hstretch*(x_height#+jut#),
+ asc_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; y2=-1/2d;
+lft x20=pcshiftx; bot y20=-d;
+%% top arm
+z3=(x1,1/2h/ascratio);
+rt x5=w-pcshiftx; y5=1/2[y3,y4];
+x4=1/2[x3,x5]; top y4=h/ascratio;
+%% lower arm
+x7=x5; bot y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z2{down}..z20{-pdir};
+draw_flatserif(1,2,srad);
+draw z3..z4{right}..z5; % upper arm
+draw z3..{right}z7; % lower arm
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "k"
+
+cmchar "IMIN letter l";
+beginchar("l", 2sb#+hstretch*(3/4x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x2=pcshiftx; y2=1/5h;
+x1=x2+jut; top y1=h;
+rt x4=w-pcshiftx; y4=1/5h;
+x3=1/2[x2,x4]; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z2..z3{right}..z4;
+draw_flatserif(1,2,srad);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "IMIN letter m";
+beginchar("m", 2sb#+hstretch*(x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+%% start of bowl
+x13=x1; y13=3/4h;
+%% bottom of right and middle stems
+rt x6 = w -pcshiftx - jut; y6=y2;
+z4 = 1/2[z2,z6];
+%% top of middle and right stems
+x3=x4; y3=y1;
+x5=x6; y5=y13;
+%% top of bowls
+x14=2/3[x13,x3]; top y14 = h;
+x33=x4; y33=y13;
+x34=2/3[x33,x5]; y34 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z33{down}--z4;
+draw_roundserif(4,3,srad);
+draw z33{pdir}..z34{right}..z5{down}--z6;
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "IMIN letter n";
+beginchar("n", 2sb#+hstretch*(5/8x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+x13=x1; y13=3/4h;
+%% right stem
+rt x4 = w-pcshiftx-jut; y4=y2;
+x3 = x4; y3 = y13;
+x14 = 2/3[x13,x3]; top y14 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z3{down}--z4;
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+cmchar "IMIN letter o";
+beginchar("o", 2sb#+hstretch*(3/4x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+draw z1..z2..z3..z4..cycle;
+z5=(pcshiftx,-o);
+obowl(5, w-2pcshiftx, h+2o);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw obfirst; draw obsecond; draw obouter; draw obinner;
+else:
+%% fill obouter; unfill obinner;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "IMIN letter p";
+beginchar("p", 2sb#+hstretch*(3/4x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-1/2d;
+lft x20 = pcshiftx; bot y20 = -d;
+%% bowl % from "h"
+z3=3/4[(x1,0),z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h;
+lft x6=x4; bot y6=0;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z20{-pdir};
+draw z3{pdir}..z4..z5..z6{-pdir}; % bowl (from h)
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "IMIN letter q";
+beginchar("q", 2sb#+hstretch*(3/4x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1=w-pcshiftx; top y1=h;
+x2=x1; bot y2=-1/2d;
+x20 = x1-jut; bot y20=-d;
+%% bowl
+z3=1/4[(x1,0),z1];
+lft x5=pcshiftx; y5=y3;
+x4=1/2[x3,x5]; bot y4=0;
+x6=x1-jut; top y6=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw z2{down}..z20{-pdir}; % stem
+draw_flatserif(1,2,srad);
+draw z3{-pdir}..z4{left}..z5{up}..z6{pdir};
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "IMIN letter r";
+beginchar("r", sb#+hstretch*(7/8x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-1/2d;
+lft x20 = pcshiftx; bot y20 = -d;
+%% bowl
+z3=3/4[(x1,0),z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z20{-pdir};
+
+draw z3{pdir}..z4{right}..z5{pdir};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "IMIN letter s";
+beginchar("s", 2sb#+hstretch*(3/4x_height#+jut#),
+ asc_height#, desc_depth#);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut; top y1=h/ascratio; bot y2=-1/2d;
+lft x20=pcshiftx; bot y20=-d;
+%% flick
+x4=x2; y4 = 1/2h/ascratio;
+rt x6=w-pcshiftx; y6 = 2/3h;
+x5 = 2/3[x4,x6]; top y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z2{down}..z20{-pdir};
+draw_flatserif(1,2,srad);
+draw z4{up}...z5{right}...z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "s"
+
+cmchar "IMIN letter t";
+beginchar("t", 2sb#+hstretch*(5/4x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+lft x1 = pcshiftx; top y1=h; rt x2=w-pcshiftx; bot y2=h;
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+z3=1/2[z1,z2];
+lft x4 = pcshiftx + 1/8n1; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{pdir}..z3..z2{pdir}; % bar
+draw z3..z4{down}..z5{right}..z6{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "IMIN letter u";
+beginchar("u", 2sb#+hstretch*(5/8x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,4,srad); % right stem
+draw_flatserif(3,4,srad);
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "IMIN letter v";
+beginchar("v", 2sb#+hstretch*(3/4x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+rt x23=w-pcshiftx; y23=3/4h;
+lft x26=x14; top y26=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}; % left stem
+draw_flatserif(1,13,srad);
+draw z14{pdir}..z23{up}..z26;
+
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "IMIN letter w";
+beginchar("w", 2sb#+hstretch*(x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x5=w-pcshiftx-jut; y5=y1;
+x6=x5; bot y6=0;
+z53=1/4[z6,z5]; % start of bowl
+z3 = 1/2[z1,z5];
+z33=(x3,y13);
+x14=1/3[x1,x3]; bot y14=0;
+x34=1/3[x3,x5]; y34=y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir}; % left
+draw_flatserif(1,13,srad);
+draw z3--z33{down}..z34{right}..z53{pdir}; % middle
+draw_flatserif(3,33,srad);
+draw_tstem(5,6,srad); % right stem
+draw_flatserif(5,6,srad);
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "IMIN letter x";
+beginchar("x", 2sb#+hstretch*(x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % total width
+n2 := thick; % triangle side
+%% diag top left to bottom right
+lft x1=pcshiftx; bot y1=2/3h;
+x2=pcshiftx+1/7n1; top y2=h;
+x5=pcshiftx+11/14n1; bot y5=-1/4d;
+rt x6=pcshiftx+n1; top y6=1/6h;
+z25 = 1/3[z2,z5];
+%% diag bottom left to top right
+lft x10 = -w + 2pcshiftx; bot y10=-d;
+x50=x5; top y50=h;
+rt x60 = w -pcshiftx; bot y60=2/3h;
+x40=pcshiftx+8/14n1; y40=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z5{right}..z6; % top left to bottom right
+draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,40,50,60,100);
+endchar; % end "x"
+
+cmchar "IMIN letter y";
+beginchar("y", 2sb#+hstretch*(5/8x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+z50=(x3,-1/2d);
+x60=x14; bot y60=-d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,50,srad); % right stem
+draw z50{down}..z60{-pdir};
+draw_flatserif(3,4,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "IMIN letter z";
+beginchar("z", 2sb#+hstretch*(x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% top bar
+n10 := w-2pcshiftx; % letter width
+lft x1=pcshiftx; top y1=h;
+rt x2= w-pcshiftx; bot y2=y1;
+%% diagonal
+x3=x1; bot y3=0;
+%% bowl
+x4=3/4[x1,x2]; top y4 = 1/2h;
+x6=x4; bot y6 = 0;
+rt x5 = w-pcshiftx; y5 = 1/2[y4,y6];
+x7=1/2[x3,x5]; y7 = 1/2[y6,y5];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{right}..z2{right}; % top bar
+draw_roundserif(1,2,srad);
+draw z2--z3; % diagonal
+draw z3..z4{right}..z5{down}..z6{left}..z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminlig.mf
new file mode 100644
index 00000000000..36288366e5c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/iminlig.mf
@@ -0,0 +1,148 @@
+%%
+%% This is file `iminlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+%%%%ligtable "f": "i"=:oct"014";
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+%%pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+pickup thickstylus;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+pickup thickstylus;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+pickup thickstylus;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "IMIN ampersand";
+beginchar("&", 2sb#+hstretch*(5/4x_height#), asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx:=sb;
+pickup quill;
+%% E part
+n1 := w-pcshiftx; % actual letter width
+n2 := 4/8n1; % width of bowl
+x1 = pcshiftx + 5/8n2; top y1=h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = pcshiftx + 1/2n2; bot y3 = 0;
+rt x4 = pcshiftx + n2; y4 = 1/4h;
+z98=(0,3/8h); z99=(w,y98);
+pth1 := z98--z99;
+pth2 := z1{left}..z2{down}..z3{right};
+z7 = pth1 intersectionpoint pth2;
+rt x9 = w-pcshiftx; y9 = 3/4h;
+z8=6/8[z7,z9];
+
+%% T part
+x18=x8; bot y18=0;
+x19=5/8[x18,x9];
+y19=1/8h;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%% E part
+draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{up}..z8{right};
+draw z7{pdir}..z8{right}..z9{pdir};
+%% T bowl
+draw z8{left}..z4{down}..z18{right}..z19{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,19,31,32,33);
+endchar; % end of "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminpunct.mf
new file mode 100644
index 00000000000..1adbda96726
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/iminpunct.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `iminpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*(3/4x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x4 = x5; y4=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 2/3h;
+
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..z4{down};
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/imintitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/imintitle.mf
new file mode 100644
index 00000000000..33839302602
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/imintitle.mf
@@ -0,0 +1,666 @@
+%%
+%% This is file `imintitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def inslrmin_font_setup= % contains special stuff for inslrmin fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of inslrmin_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr);
+ undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+%%% z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-jut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (jut*pdir);
+ fi
+ z$b = fr[z$,z$c];
+ draw z$a--z$;
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+%% filldraw z$s--z$t--z$u--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+%% filldraw z$s--z$t--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ path pth[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ penpos$wt(thick,pangle);
+ penpos$et(thick,pangle);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ penpos$nh(thick,pangle);
+ penpos$sh(thick,pangle);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ if pangle = 90:
+ z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+ else:
+ if pangle = 0:
+ z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+ else:
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ pt1 := z$minr - z$minl; % direction
+ pt2 := (- ypart pt1, xpart pt1); % perpendicular
+ pt3 := 1/2[z$minl, z$minr];
+ pt4 := pt3 shifted pt2;
+ pt5 := pt3 shifted -pt2;
+ pth1 := pt3--pt4;
+ pth2 := pt3--pt5;
+ z$maxr = pth1 intersectionpoint obfirst;
+ z$maxl = pth2 intersectionpoint obfirst;
+ \fi
+ \fi
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+inslrmin_font_setup;
+
+
+input iminl; % lower case
+input iminu; % capitals
+input iminpunct; % punctuation
+input iminlig; % the several dashes
+input imindig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space vstretch*9u#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space vstretch*6u#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+fi
+
+bye.
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/iminu.mf b/Master/texmf-dist/fonts/source/public/bookhands/iminu.mf
new file mode 100644
index 00000000000..039ba01916c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/iminu.mf
@@ -0,0 +1,738 @@
+%%
+%% This is file `iminu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% inslrmin.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "IMIN letter A";
+beginchar("A", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+n1 := w - 2pcshiftx -jut; % effective letter width
+x1 = pcshiftx + 2/3n1; top y1=h;
+rt x2 = pcshiftx + n1; bot y2=0;
+
+z16 = 1/6[z2,z1];
+rt x6 = x16; y6=y16;
+
+lft x4 = pcshiftx; y4 = 1/2h;
+
+pth1 := z1{down}..z2;
+pr1 := direction 1 of pth1;
+z20 = z2 shifted -10pr1;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+else:
+ % draw stem
+ draw pth1;
+ draw_roundserif(2,20,srad);
+ % draw bowl
+ draw z1{-pdir}..z4{down}..z6{pdir};
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "A"
+
+cmchar "IMIN letter B";
+beginchar("B", 2sb#+caprat*hstretch*(3/4x_height#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+lft x1 = pcshiftx+jut; top y1=h;
+lft x3 = pcshiftx; y3=1/2n2;
+rt x5 = w-pcshiftx; y5=y3;
+x4 = 1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=n2;
+pth1 := z1..z3{down}..z4{right}.. z5{up};
+z98=(0,3/4n2); z99=(w,y98);
+pth2 := z98--z99;
+z7 = pth1 intersectionpoint pth2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z3{down}..z4{right}..z5{up}..z6{left}..z7{-pdir};
+draw_flatserif(1,7,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "B"
+
+cmchar "IMIN letter C";
+beginchar("C", 2sb#+caprat*hstretch*(5/8x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "C"
+
+cmchar "IMIN letter D";
+beginchar("D", 2sb#+caprat*hstretch*(3/4x_height#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+rt x3 = w-pcshiftx; y3 = 1/2h/ascratio;
+x4 = 1/2[x1,x3]; bot y4 = 0;
+z5=(x1,y3);
+z98=(0,h/ascratio); z99=(w,y98); pth2 := z98--z99;
+pth1 := z1{-ppdir}..z3{down}..z4{left};
+z6 = pth1 intersectionpoint pth2;
+if ductus:
+ pickup stylus;
+fi
+draw z1{-ppdir}..z3{down}..z4{left}..z5{up}..z6{pdir};
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "D"
+
+cmchar "IMIN letter E";
+beginchar("E", sb#+caprat*hstretch*(5/4x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-pcshiftx; % actual letter width
+n2 := 4/8n1; % width of bowl
+x1 = pcshiftx + 5/8n2; top y1=h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = pcshiftx + 1/2n2; bot y3 = 0;
+rt x4 = pcshiftx + n2; y4 = 1/4h;
+z98=(0,3/8h); z99=(w,y98);
+pth1 := z98--z99;
+pth2 := z1{left}..z2{down}..z3{right};
+z7 = pth1 intersectionpoint pth2;
+rt x9 = w-pcshiftx; y9 = 3/4h;
+z8=1/2[z7,z9];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir};
+draw z7{pdir}..z8{right}..z9{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "e"
+
+cmchar "IMIN letter F";
+beginchar("F", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*(x_height#), desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; y2=-1/2d;
+lft x20=0; bot y20=-d;
+%% bottom bar
+z4=(rt x1,-thin); rt x6=w-pcshiftx; y6=y4+2thin; z5=1/2[z4,z6];
+%% top bar
+x7= x1; bot y7 = 1/2h;
+rt x9= w-pcshiftx; y9 = 1/2[y7,y1];
+x8 = 2/3[x7,x9]; top y8 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z2{down}..z20{-pdir};
+draw_flatserif(1,2,srad);
+draw z4{dir(45)}..z5{right}..z6{dir(45)}; % bottom bar
+draw z7..z8..z9; % top bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "F"
+
+cmchar "IMIN letter G";
+beginchar("G", 2sb#+caprat*hstretch*(x_height#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+pcshiftx := sb;
+pickup quill;
+%% top bar
+lft x1=pcshiftx; top y1=h; rt x2=w-pcshiftx; top y2=h;
+x3=1/2[x1,x2]; bot y3=1/8h;
+rt x5 = w-pcshiftx; y5 = -1/2d;
+x6 = x3; bot y6 = -d;
+x7 = 1/2[x1,x3]; y7 = y5;
+x8=x3; y8 = -y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw z1--z2; % top bar
+ draw pth1; draw pth2; % curves
+ draw rt z8--z9; % diagonal
+else:
+ draw z1--z2;
+ draw z2--z3;
+ draw z3{pdir}..z5{down}..z6{left}..z7{up}..z8{pdir};
+ draw_roundserif(1,2,srad);
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "G"
+
+cmchar "IMIN letter H";
+beginchar("H", 2sb#+caprat*hstretch*(7/8x_height#+jut#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=1/2[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h/ascratio;
+lft x6=x4; bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z3{pdir}..z4..z5..z6{-pdir};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "H"
+
+cmchar "IMIN letter I";
+beginchar("I", 2sb#+caprat*hstretch*(thick#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "IMIN letter J";
+beginchar("J", sb#+caprat*hstretch*(3/8x_height#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z3{-pdir}; % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "J"
+
+cmchar "IMIN letter K";
+beginchar("K", 2sb#+caprat*hstretch*(x_height#+jut#),
+ caprat*asc_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; y2=-1/2d;
+lft x20=pcshiftx; bot y20=-d;
+%% top arm
+z3=(x1,1/2h/ascratio);
+rt x5=w-pcshiftx; y5=1/2[y3,y4];
+x4=1/2[x3,x5]; top y4=h/ascratio;
+%% lower arm
+x7=x5; bot y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z2{down}..z20{-pdir};
+draw_flatserif(1,2,srad);
+draw z3..z4{right}..z5; % upper arm
+draw z3..{right}z7; % lower arm
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "K"
+
+cmchar "IMIN letter L";
+beginchar("L", 2sb#+caprat*hstretch*(3/4x_height#),
+ caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x2=pcshiftx; y2=1/5h;
+x1=x2+jut; top y1=h;
+rt x4=w-pcshiftx; y4=1/5h;
+x3=1/2[x2,x4]; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z2..z3{right}..z4;
+draw_flatserif(1,2,srad);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "L"
+
+cmchar "IMIN letter M";
+beginchar("M", 2sb#+caprat*hstretch*(x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+%% start of bowl
+x13=x1; y13=3/4h;
+%% bottom of right and middle stems
+rt x6 = w -pcshiftx - jut; y6=y2;
+z4 = 1/2[z2,z6];
+%% top of middle and right stems
+x3=x4; y3=y1;
+x5=x6; y5=y13;
+%% top of bowls
+x14=2/3[x13,x3]; top y14 = h;
+x33=x4; y33=y13;
+x34=2/3[x33,x5]; y34 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z33{down}--z4;
+draw_roundserif(4,3,srad);
+draw z33{pdir}..z34{right}..z5{down}--z6;
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "M"
+
+cmchar "IMIN letter N";
+beginchar("N", 2sb#+caprat*hstretch*(3/4x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+%% right stem
+rt x3=w-pcshiftx-jut; y3=y1;
+z4=(x3,y2);
+%% bar
+z5=3/8[lft z2, lft z1]; z6=2/8[rt z4,rt z3];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw_tstem(3,4,srad); % right stem
+draw_flatserif(3,4,srad);
+draw_roundserif(4,3,srad);
+draw z5{right}..z6{right}; % bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "N"
+
+cmchar "IMIN letter O";
+beginchar("O", 2sb#+caprat*hstretch*(3/4x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+draw z1..z2..z3..z4..cycle;
+z5=(pcshiftx,-o);
+obowl(5, w-2pcshiftx, h+2o);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw obfirst; draw obsecond; draw obouter; draw obinner;
+else:
+%% fill obouter; unfill obinner;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "IMIN letter P";
+beginchar("P", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-1/2d;
+lft x20 = pcshiftx; bot y20 = -d;
+%% bowl % from "h"
+z3=3/4[(x1,0),z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h;
+lft x6=x4; bot y6=0;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z20{-pdir};
+draw z3{pdir}..z4..z5..z6{-pdir}; % bowl (from h)
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "IMIN letter Q";
+beginchar("Q", 2sb#+caprat*hstretch*(3/4x_height#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1=w-pcshiftx; top y1=h;
+x2=x1; bot y2=-1/2d;
+x20 = x1-jut; bot y20=-d;
+%% bowl
+z3=1/4[(x1,0),z1];
+lft x5=pcshiftx; y5=y3;
+x4=1/2[x3,x5]; bot y4=0;
+x6=x1-jut; top y6=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw z2{down}..z20{-pdir}; % stem
+draw_flatserif(1,2,srad);
+draw z3{-pdir}..z4{left}..z5{up}..z6{pdir};
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "Q"
+
+cmchar "IMIN letter R";
+beginchar("R", sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-1/2d;
+lft x20 = pcshiftx; bot y20 = -d;
+%% bowl % almost a "p" bowl
+z3=3/4[(x1,0),z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h;
+x100=x1; bot y100 = 0;
+lft x6= rt x100; y6=y100;
+
+rt x26=w-pcshiftx; y26=-1/6d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z20{-pdir};
+draw z3{pdir}..z4..z5..z6{-pdir}; % bowl (from h)
+draw z6{-ppdir}..z26{pdir}; % leg
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "R"
+
+cmchar "IMIN letter S";
+beginchar("S", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*asc_height#, desc_depth#);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut; top y1=h/ascratio; bot y2=-1/2d;
+lft x20=pcshiftx; bot y20=-d;
+%% flick
+x4=x2; y4 = 1/2h/ascratio;
+rt x6=w-pcshiftx; y6 = 2/3h;
+x5 = 2/3[x4,x6]; top y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw z2{down}..z20{-pdir};
+draw_flatserif(1,2,srad);
+draw z4{up}...z5{right}...z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "S"
+
+cmchar "IMIN letter T";
+beginchar("T", 2sb#+caprat*hstretch*(5/4x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+lft x1 = pcshiftx; top y1=h; rt x2=w-pcshiftx; bot y2=h;
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+z3=1/2[z1,z2];
+lft x4 = pcshiftx + 1/8n1; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{pdir}..z3..z2{pdir}; % bar
+draw z3..z4{down}..z5{right}..z6{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "T"
+
+cmchar "IMIN letter U";
+beginchar("U", 2sb#+caprat*hstretch*(5/8x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,4,srad); % right stem
+draw_flatserif(3,4,srad);
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "IMIN letter V";
+beginchar("V", 2sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+rt x23=w-pcshiftx; y23=3/4h;
+lft x26=x14; top y26=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}; % left stem
+draw_flatserif(1,13,srad);
+draw z14{pdir}..z23{up}..z26;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "IMIN letter W";
+beginchar("W", 2sb#+caprat*hstretch*(x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x5=w-pcshiftx-jut; y5=y1;
+x6=x5; bot y6=0;
+z53=1/4[z6,z5]; % start of bowl
+z3 = 1/2[z1,z5];
+z33=(x3,y13);
+x14=1/3[x1,x3]; bot y14=0;
+x34=1/3[x3,x5]; y34=y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir}; % left
+draw_flatserif(1,13,srad);
+draw z3--z33{down}..z34{right}..z53{pdir}; % middle
+draw_flatserif(3,33,srad);
+draw_tstem(5,6,srad); % right stem
+draw_flatserif(5,6,srad);
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "IMIN letter X";
+beginchar("X", 2sb#+caprat*hstretch*(x_height#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % total width
+n2 := thick; % triangle side
+%% diag top left to bottom right
+lft x1=pcshiftx; bot y1=2/3h;
+x2=pcshiftx+1/7n1; top y2=h;
+x5=pcshiftx+11/14n1; bot y5=-1/4d;
+rt x6=pcshiftx+n1; top y6=1/6h;
+z25 = 1/3[z2,z5];
+%% diag bottom left to top right
+%%x10=x1; bot y10=-d;
+lft x10 = -w + 2pcshiftx; bot y10=-d;
+x50=x5; top y50=h;
+%%rt x60=x5; bot y60=2/3h;
+rt x60 = w -pcshiftx; bot y60=2/3h;
+x40=pcshiftx+8/14n1; y40=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z5{right}..z6; % top left to bottom right
+draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,40,50,60,100);
+endchar; % end "X"
+
+cmchar "IMIN letter Y";
+beginchar("Y", 2sb#+caprat*hstretch*(5/8x_height#+jut#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+z50=(x3,-1/2d);
+x60=x14; bot y60=-d;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,50,srad); % right stem
+draw z50{down}..z60{-pdir};
+draw_flatserif(3,4,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "IMIN letter Z";
+beginchar("Z", 2sb#+caprat*hstretch*(x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+%% top bar
+n10 := w-2pcshiftx; % letter width
+lft x1=pcshiftx; top y1=h;
+rt x2= w-pcshiftx; bot y2=y1;
+%% diagonal
+x3=x1; bot y3=0;
+%% bowl
+x4=3/4[x1,x2]; top y4 = 1/2h;
+x6=x4; bot y6 = 0;
+rt x5 = w-pcshiftx; y5 = 1/2[y4,y6];
+x7=1/2[x3,x5]; y7 = 1/2[y6,y5];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{right}..z2{right}; % top bar
+draw_roundserif(1,2,srad);
+draw z2--z3; % diagonal
+draw z3..z4{right}..z5{down}..z6{left}..z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgoth10.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgoth10.mf
new file mode 100644
index 00000000000..76f399e74ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgoth10.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `pgoth10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% PGOTH10.MF Gothic Textura Prescius at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="PGOTH"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate pgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgoth17.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgoth17.mf
new file mode 100644
index 00000000000..87f72b6c1cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgoth17.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `pgoth17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% PGOTH17.MF Gothic Textura Prescius at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="PGOTH"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate pgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgoth7.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgoth7.mf
new file mode 100644
index 00000000000..09d07506ad6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgoth7.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `pgoth7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% PGOTH7.MF Gothic Textura Prescius at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="PGOTH"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate pgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothb10.mf
new file mode 100644
index 00000000000..c57fb7a49ba
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothb10.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `pgothb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% PGOTHB10.MF Gothic Textura Prescius Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="PGOTHB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0; %% normally 1.2
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate pgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothb17.mf
new file mode 100644
index 00000000000..8ddd3edbb2c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothb17.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `pgothb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% PGOTHB17.MF Gothic Textura Prescius Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="PGOTHB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0; %% normally 1.2
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate pgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothb7.mf
new file mode 100644
index 00000000000..21f0b6ae750
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothb7.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `pgothb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% PGOTHB7.MF Gothic Textura Prescius Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="PGOTHB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0; %% normally 1.2
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate pgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothdig.mf
new file mode 100644
index 00000000000..b4e56a93ecf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothdig.mf
@@ -0,0 +1,245 @@
+%%
+%% This is file `pgothdig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "PGOTH digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw z12--z2; draw_flat_foot(2);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "PGOTH digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric st; st := stem_width;
+numeric n[];
+n1 := 1/2st;
+pickup quill;
+lft x1=pcshiftx+n1; top y1=h-2n1;
+rt x3=w-pcshiftx-n1; y3=3/4h;
+x2=1/2[x1,x3]; top y2= h;
+x5= lft x1; bot y5=0;
+x6= rt x3; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(5,6,thin); % foot
+draw z1--z2--z3--z5wl; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "PGOTH digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pcshiftx := u;
+pickup quill;
+%% top
+lft x1 = pcshiftx + n1; rt x3 = w - pcshiftx - n1;
+x2 = 1/2[x1,x3]; x4 = 1/2[x1,x2];
+top y2 = h; y3 = 12/16h;
+(z2-z1) = whatever*pdir;
+(z3-z4) = whatever*pdir;
+%% bottom
+x5 = 12/16[x4, rt x4]; x6 = x3; x7 = x2;
+x18 = x1-n1; x17 = x7;
+bot y7 = thin;
+y5 = 12/16[y4, top y4];
+(z5-z6) = whatever*(z2-z3);
+bot y18 = 0; bot y17 = 0;
+
+draw z1--z2--z3--z4; % top
+draw_wave(18,17,thin);
+draw z5--z6--z18wr; % bottom
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,17,18,100);
+endchar; % end "3"
+
+cmchar "PGOTH digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+numeric n[];
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-(wided+widedmin)*st;
+y1=h; y2=0;
+lft x3=pcshiftx; y3=7/16h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw_flat_foot(2);
+draw z3--z4; % horizontal
+draw z1--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "PGOTH digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx+n1; y2=y1;
+x3=x2; y3=0.5h;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=1/2[thick,y3];
+x6=w/2; bot y6=0;
+%%x16 = 12/16[x3,x5];
+x16 = lft x5;
+bot y16 = 0;
+lft x17=pcshiftx; bot y17=0;
+z167 = 1/2[z16,z17];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(2,1,thin); % top squiggle
+draw z2wl--z3; % vertical
+%%draw_wave(17,16,thin); % foot
+draw z17{pdir}..{pdir}z16; % foot
+draw z3{pdir}..z5{down}..z16; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "PGOTH digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h - thick; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+n2 = top y1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% head
+x11 = x5; top y11 = h;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x16 = x11; y16 = y11-thin;
+draw z6--z16;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "6"
+
+cmchar "PGOTH digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,2,thin); % top bar
+draw z1wr..z3..z4;
+draw_flat_foot(4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "PGOTH digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1= pcshiftx; rt x3=w-pcshiftx; top y1 = y3 = 3/4h;
+rt x2 = lft x4 = w/2; top y2=h; bot y4=0;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11 = bot y13 = 1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+draw z1--z2--z3--z11--z4--z13--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "PGOTH digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = thick;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% foot
+x11 = x5; bot y11 = 0;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x13 = x12; y13 = y12+thin;
+draw z3--z13;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "9"
+
+cmchar "PGOTH digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4h;
+y3 = y5 = 1/4h;
+
+draw z1--z2--z3--z4--z5--z6--cycle;
+
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothl.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothl.mf
new file mode 100644
index 00000000000..97dff9ff184
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothl.mf
@@ -0,0 +1,699 @@
+%%
+%% This is file `pgothl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "PGOTH letter a";
+beginchar("a", 2sb#+hstretch*((3+widedmin+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+%% left hand
+lft x1 = pcshiftx + widedmin*stem_width; y1 = 1/2h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% right stem
+rt x3 = w - pcshiftx - wided*stem_width; y3=h;
+x4=x3; bot y4=0;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,1.0,0.1,diawd,diang);
+draw z34--z4; draw_flat_foot(4);
+%% swirl
+x11=rt x1; y11 = top y1;
+pickup stylus;
+draw z3d--z3c..{-ppdir}z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+cmchar "PGOTH letter b";
+beginchar("b", 2sb#+hstretch*((3 + widedmin + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx + widedmin*st; y1=h;
+x2 = x1; y2=0;
+z3=1/2[z1,z2];
+draw_upforkstem(1,3);
+draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
+lft x6 = x2c; bot y6 = y2c;
+x4 = x6; y4=n2;
+draw_updiamondstem(4,6,narrowd,narrowdmin,diawd,diang);
+x7 = x1; z7 = whatever[z4d,z4c];
+pickup stylus;
+draw z4d--z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "PGOTH letter c";
+beginchar("c", 2sb#+hstretch*((3+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st;
+st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+z11-z2c = z2c - z2d;
+pickup stylus;
+draw z2d--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "PGOTH letter d";
+beginchar("d", 2sb#+hstretch*((3+widedmin+narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio; % x-height
+%% left
+n2 := st*(cosd diang);
+lft x1 = pcshiftx + widedmin*st; top y1 = 12/16n1;
+x2=x1; y2=0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd,diang);
+%% right
+rt x3 = w-pcshiftx-narrowdmin*st; y3=h;
+x4 = x3; bot y4 = y2c;
+draw_updiamondstem(3,4, 2.0, narrowdmin, diawd,diang);
+x31 = lft x1; y31 = bot y1;
+x32 = rt x1; y32 = top y1;
+z33 = whatever[z31,z32] = whatever[z3e,z3c];
+pickup stylus;
+draw z31--z33;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "PGOTH letter e";
+beginchar("e", 2sb#+hstretch*((3+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st;
+st := stem_width;
+path pth[];
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+x5 = x1;
+z4-z5 = whatever*pdir;
+pickup stylus;
+draw z4--z5;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100);
+endchar; % end "e"
+
+cmchar "PGOTH letter f";
+beginchar("f", 2sb#+hstretch*((3+widedmin)*stem_width#),
+ (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+widedmin*st; y2=0; top y1 = h - (top y2 - bot y2);
+draw z1--z2; draw_flat_foot(2);
+%% top bar
+lft x3 = rt x1; rt x5 = w-pcshiftx; bot y3 = top y1; y5=y3;
+draw z3--z5;
+%% middle bar
+lft x7 = pcshiftx; rt x9 = x5;
+y7 = y9 = 10/16h;
+draw z7--z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,14,15,16,100);
+endchar; % end "f"
+
+cmchar "PGOTH letter g";
+beginchar("g", 2sb#+hstretch*((4)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx;
+x2 = x1; bot y2 = 0; top y1 = h - (top y2 - bot y2);
+draw z1--z2;
+x3 = x4 = x1 + 2st; y4 = y2;
+lft x13 = rt x1; bot y13 = top y1;
+(z3-z13) = whatever*(dir -diang);
+draw z13--z3--z4;
+z34 = 1/2[z13,z3]; rt x37 = w-pcshiftx; top y37 = h;
+draw z34{right}..{pdir}z37;
+pickup stylus;
+bot y5 = -d;
+(z4-z5) = whatever*pdir;
+draw z4--z5;
+pickup quill;
+%% bottom loop
+z21 = z2;
+lft x25 = x5; bot y25=-d;
+x29 = 1/2[x3,x37];
+(z29-z21) = whatever*(dir -diang);
+x23 = x29; y23 = 1/2[y29,y25];
+draw z21{dir - diang}..z23{down}..{left}z25;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "g"
+
+cmchar "PGOTH letter h";
+beginchar("h", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+n1 = h/ascratio;
+%% stem
+lft x1=lft x2=pcshiftx + narrowdmin*stem_width;
+y1=h; bot y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw z12--z2;
+draw_flat_foot(2);
+%% bowl
+x3 = x1 + 2stem_width; x4 = x3;
+y3 = n1; bot y4=0;
+z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw z34--z4; draw_flat_foot(4);
+x7 = x1; z7 = whatever[z3d,z3c];
+pickup stylus;
+draw z3d--z7;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "PGOTH letter i";
+beginchar("i", 2sb#+hstretch*(2stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; bot y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw z12--z2; draw_flat_foot(2);
+x3= x1-thin; bot y3 = h + 1/2stem_width;
+z4 = (x3+3thin,y3);
+pickup halfquill;
+draw z3--z4;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "PGOTH letter j";
+beginchar("j", sb#+hstretch*(5/2stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx - 1/2stem_width; y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_updiamondstem(1,2,narrowd,narrowdmin,diawd,diang);
+draw z2{down}..z3{-pdir}; % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "PGOTH letter k";
+beginchar("k", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h/ascratio; % x-height
+lft x1=lft x2=pcshiftx + narrowdmin*st;
+y1=h; bot y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw z12--z2; draw_flat_foot(2);
+%% right leg
+x3 = x1 + 2st; y3 = 8/16n1;
+x4 = x3; bot y4 = 0;
+z34 = 1/2[z3,z4];
+draw z3--z4; draw_flat_foot(4);
+draw z3--z34;
+lft x5 = rt x1;
+(z3-z5) = whatever*(dir -diang);
+draw z5--z3;
+
+%% top arm
+x6 = 1/2[x3, rt x3];
+(z6-z5) = whatever*(pdir);
+rt x8 = lft x5; top y8 = bot y5+thick;
+(z7-z8) = whatever*(z6-z5);
+(z7-z6)=whatver*(z5-z3);
+draw z6--z7;
+pickup stylus;
+draw z5--z6--z7--z8;
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+cmchar "PGOTH letter l";
+beginchar("l", 2sb#+hstretch*((1 + widedmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+x1 = 1/2w; y1=h;
+x2=x1; bot y2 =0;
+z3 = 1/2[z1,z2];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_upforkstem(1,3);
+draw z3--z2; draw_flat_foot(2);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "PGOTH letter m";
+beginchar("m", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+wided*stem_width; y1 = y3 = y5 = h;
+x2=x1; bot y2 = 0; y2 = y4 = y6;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw z12--z2; draw_flat_foot(2);
+%% right stem
+rt x5 = rt x6 = w-pcshiftx-narrowd*stem_width;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56,wided,widedmin,diawd,diang);
+draw z56--z6; draw_flat_foot(6);
+%% middle stem
+z3=1/2[z1,z5]; z4 = 1/2[z2,z6]; z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw z34--z4; draw_flat_foot(4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "PGOTH letter n";
+beginchar("n", 2sb#+hstretch*((3+wided+narrowd)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + wided*stem_width; y1 = h;
+x2 = x1; bot y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw z12--z2; draw_flat_foot(2);
+%% right stem
+rt x3 = w-pcshiftx - narrowd*stem_width; y3=y1;
+x4=x3;y4=y2;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw z34--z4; draw_flat_foot(4);
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+cmchar "PGOTH letter o";
+beginchar("o", 2sb#+hstretch*((3 + narrowdmin + narrowdmin)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bottom left
+lft x12 = pcshiftx + narrowdmin*st; y12 = 1/2h;
+x2 = x12; y2 = 0;
+draw_downdiamondstem(12,2, 1.0, narrowdmin, diawd,diang);
+%% right
+rt x3 = w - pcshiftx - narrowdmin*st; x4=x3;
+y3 = h; bot y4 = y2c;
+draw_updiamondstem(3,4, 1.0, narrowdmin, diawd,diang);
+%% top left
+x1 = x12; top y1 = y3c;
+draw z1--z12;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "PGOTH letter p";
+beginchar("p", 2sb#+hstretch*((3 + wided + widedmin)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+wided*st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw z12--z2;
+%% bowl
+x3 = x4 = x1 + 2st;
+y3 = y1; bot y4 = 0;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+lft x5 = pcshiftx; y5 = y4;
+draw z5--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "PGOTH letter q";
+beginchar("q", 2sb#+hstretch*((3 + widedmin)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% left/bottom of bowl
+y99 = 0;
+lft x1 = pcshiftx +widedmin*st; top y1 = h - (top y99 - bot y99);
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin,diawd,diang);
+%% rest
+x3 = x1 + 2st; x4 = x3; y3 = y1; y4 = -d;
+lft x5 = rt x1; bot y5 = top y1;
+draw z3--z4;
+draw z5--z3;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "PGOTH letter r";
+beginchar("r", 2sb#+hstretch*((3+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx + wided*st;
+y1=h; bot y2=0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw z12--z2; draw_flat_foot(2);
+%% bar
+lft x3 = rt x1; rt x4 = w-pcshiftx; top y3 = top y4 = h;
+draw z3--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "PGOTH letter s";
+beginchar("s", 2sb#+hstretch*((4)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup stylus;
+%% the diagonal
+lft x2 = pcshiftx; bot y2 = 0;
+rt x1 = w-pcshiftx; top y1 = h;
+draw z1--z2;
+pickup quill;
+z211 = 13/32[z2,z1]; %% 10/32 too small, 16/32 too large
+z213 = 24/32[z2,z1]; %% 26/32 too large
+z212 = 1/2[z211,z213];
+%% bottom bowl
+lft x21 = x2; bot y21 = 0;
+rt x22 = w - pcshiftx; bot y22 = 0;
+x23 = x22; z24 = z212;
+(z24-z23) = whatever*(dir (180-diang));
+draw z21{pdir}..z22--z23--z24;
+%% top bowl
+z14 = z211; z11 = z213;
+lft x12 = lft x13 = pcshiftx;
+(z13-z14) = whatever*(dir (180-diang));
+(z12-z11) = whatever*(dir (180-diang));
+draw z11--z12--z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,100);
+endchar; % end "s"
+
+cmchar "PGOTH letter t";
+beginchar("t", 2sb#+hstretch*((2+1.0)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1;
+bot y2 = 0;
+draw z1--z2; draw_flat_foot(2);
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "PGOTH letter u";
+beginchar("u", 2sb#+hstretch*((3+narrowd+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+rt x3 = w - pcshiftx - wided*stem_width; y3=y1;
+x4=x3;
+bot y4 = 0;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw z34--z4; draw_flat_foot(4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "PGOTH letter v";
+beginchar("v", 2sb#+hstretch*((4 + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[]; numeric st;
+pcshiftx := sb;
+st := stem_width;
+n1 := h/ascratio; % x-height
+pickup quill;
+%% bottom left stem
+%% right and bottom left stems
+rt x23 = w - pcshiftx - narrowdmin*st; y23 = n1; x24=x23;
+x1 = x23 - 2st; y1 = 1/2n1;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd, diang);
+bot y24 = y2c;
+draw_updiamondstem(23, 24, narrowd, narrowdmin, diawd, diang);
+%% curly bit
+x11 = x1; y11 = n1;
+draw_updiamondstem(11,1,narrowd,narrowdmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "PGOTH letter w";
+beginchar("w", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = y3 = y5 = h;
+x2 = x1; y2 = y4 = 0; bot y6 = 0;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(12,2, wided, widedmin, diawd, diang);
+%% right stem
+rt x5 = w -pcshiftx-wided*stem_width; x6 = x5;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56, narrowd, narrowdmin, diawd, diang);
+draw z56--z6;
+%% middle stem
+z3 = 1/2[z1,z5];
+x4 = 1/2[x2,x6];
+z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(34,4, wided, widedmin, diawd, diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "PGOTH letter x";
+beginchar("x", 2sb#+hstretch*((4)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% upright
+x1 = 1/2w; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12, 1.5, widedmin,diawd,2/3diang);
+draw_downdiamondstem(12,2, 1.5, widedmin,diawd,2/3diang);
+%% top right bar
+lft x3 = rt x1; top y3 = h;
+rt x4 = w - pcshiftx; y4=y3;
+draw z3--z4;
+%% middle bar
+n1 := h-y3;
+lft x5 = pcshiftx; rt x6 = w - pcshiftx;
+y5 = 1/2h - n1; y6 = 1/2h;
+z56 = 1/2[z5,z6];
+draw z5{pdir}..z56..{pdir}z6;
+%% bottom left
+pickup stylus;
+lft x11 = pcshiftx; bot y11 = 0;
+draw z2e--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+cmchar "PGOTH letter y";
+beginchar("y", 2sb#+hstretch*((3 + narrowd+ narrowdmin)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st = stem_width;
+pickup quill;
+%% right side
+rt x3 = w - pcshiftx - narrowdmin*st; y3 = h;
+x33 = x3; y33 = 0;
+%%draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+%% left side
+x1 = x3 - 2st; y1 = y3;
+x2 = x1; y2 = 0;
+n1 := top y2 - y2;
+draw_updiamondstem(1,2,narrowd,narrowdmin, diawd,diang);
+%% tail
+x11 = rt x2; y11 = top y2;
+x12 = lft x2; y12 = bot y2;
+pickup stylus;
+lft x14 = x1 - 2st; y14 = -d + n1;
+x15 = x14+n1; bot y15 = -d;
+z4 = whatever[z11,z12] = whatever[z3,z33];
+x10=x4; bot y10 = y4;
+draw z10--z11--z12..{down}z14..{-ppdir}z15;
+pickup quill;
+draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,33,100);
+endchar; % end "y"
+
+cmchar "PGOTH letter z";
+beginchar("z", 2sb#+hstretch*(3stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+%% bottom bar ends
+bot y34 = 0;
+x3=x1; x4=x2;
+%%y3=y34-n1; y4=y34+n1;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+%% centre bar
+z5 = 1/2[z1,z3]; z6 = 1/2[z2,z4]; z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2; draw pth3; % bars
+draw z2--z3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothlig.mf
new file mode 100644
index 00000000000..44a50151446
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothlig.mf
@@ -0,0 +1,150 @@
+%%
+%% This is file `pgothlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+%%%%ligtable "c": "t"=:oct"014";
+ligtable "s": "t"=:oct"015";
+
+
+cmchar "PGOTH st ligature";
+beginchar(oct"015", 2sb#+hstretch*((1 + narrowd + 3)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := h/ascratio; % x-height
+pickup quill;
+%% the S (long)
+lft x1 = pcshiftx + narrowd*st;
+x2 = x1; y2 = 0; y1 = h - (top y2 - bot y2);
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd, 1/4narrowdmin, diawd, diang);
+draw z12--z2; draw_flat_foot(2);
+%% the T
+%% bar
+lft x23 = rt x1 + pcshiftx; top y23 = n1;
+rt x24 = w-pcshiftx; y24=y23;
+draw z23--z24;
+%% stem
+lft x21 = rt x23; top y21 = h;
+x22 = x21; y22 = 0;
+draw z21--z22; draw_flat_foot(22);
+%% the ligature
+x11=x1; top y11=h;
+draw z12--z11--z21;
+ductus:=false;
+penlabels(1,2,3,4,5,11,21,22,23,24,100);
+%% end "t"
+endchar; %% end st ligature
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*((2)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*((3)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*((6)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "PGOTH ampersand";
+beginchar("&", 2sb#+hstretch*((7/2)*stem_width#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1; y2 = 0;
+draw z1--z2; draw_flat_foot(2);
+%% E bars
+n1 = 1/2[y3,y2a] + 1/2angdec;
+pickup halfquill;
+lft x11 = pcshiftx; rt x12 = w-pcshiftx;
+y11 = y12 = 1/2h;
+x13 = x11; x14=x12; y13 = y14 = n1-angdec;
+draw z11--z12;
+%%draw z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,13,14,100);
+endchar; % end "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothpunct.mf
new file mode 100644
index 00000000000..acf2dade73b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothpunct.mf
@@ -0,0 +1,125 @@
+%%
+%% This is file `pgothpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*((3+wided+widedmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x45 = x5; y45=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 11/16h;
+
+x4 = x45;
+(z3-z4) = whatever*pdir;
+
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z1..z2{right}..z3{down}..z4{down};
+draw z1--z2--z3--z4--z45;
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,45,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=3/4h; y2=1/4h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=3/4h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothtitle.mf
new file mode 100644
index 00000000000..3d96eb64d18
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothtitle.mf
@@ -0,0 +1,870 @@
+%%
+%% This is file `pgothtitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def pgothic_font_setup= % contains special stuff for pgothic fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,clubjut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb,cap_sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ define_pixels(stem_width);
+ define_pixels(perpdec,angdec);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+
+ pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+ threequarterquill := savepen;
+
+ pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+ halfquill := savepen;
+
+ pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+ quarterquill := savepen;
+
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of pgothic_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_upforkstem(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ x$a=x$; top y$a = bot y$; % top of straight stem
+ draw z$a--z$$; % straight part
+ z$b = (rt x$, y$); z$c = (x$b, top y$a);
+ z$d = (lft x$, bot y$a); z$e = (x$d, y$);
+ pickup stylus;
+ rt x$cc = x$c; y$cc = y$c;
+ lft x$bb = x$b; y$bb = y$b;
+ lft x$dd = x$d; y$dd = y$d;
+ rt x$ee = x$e; y$ee = y$e;
+ filldraw z$a--z$bb..z$cc--cycle; % fork
+ filldraw z$a--z$dd..z$ee--cycle;
+ pickup oldpen;
+ labels($a,$b,$c,$d,$e);
+enddef; % end of draw_upforkstem
+
+
+def draw_downforkstem(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ x$$a=x$$; bot y$$a = top y$$; % bottom of straight stem
+ draw z$--z$$a; % straight part
+ z$$b = (rt x$$, y$$); z$$c = (x$$b, top y$$a);
+ z$$d = (lft x$$, bot y$$a); z$$e = (x$$d, y$$);
+ pickup stylus;
+ rt x$$cc = x$$c; y$$cc = y$$c;
+ lft x$$bb = x$$b; y$$bb = y$$b;
+ lft x$$dd = x$$d; y$$dd = y$$d;
+ rt x$$ee = x$$e; y$$ee = y$$e;
+ filldraw z$$a--z$$bb..z$$cc--cycle; % fork
+ filldraw z$$a--z$$dd..z$$ee--cycle;
+ pickup oldpen;
+ labels($$a,$$b,$$c,$$d,$$e);
+enddef; % end of draw_downforkstem
+
+
+def draw_upcurlstem(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ path curlp[]; numeric curln[];
+ x$a=x$; top y$a = y$; % top of straight stem
+ draw z$a--z$$; % straight part
+ curln1 := rt x$a - lft x$a; % stem width
+ x$b = x$a - 4/2curln1; y$b = y$a; % left jut
+ curlp1 := z$a{-pdir}..{left}z$b;
+ draw curlp1;
+
+ x$c = x$a-3curln1; top y$c = bot y$a-1/2curln1;
+ x$f = x$b; y$f = 1/3[y$c,y$b];
+ x$tb = rt x$b; y$tb = top y$b;
+ x$bb = lft x$b; y$bb = bot y$b;
+ curlp2 := z$tb--z$bb..{down}z$c..{ppdir}z$f;
+ pickup stylus;
+ draw curlp2;
+ pickup oldpen;
+ labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_upcurlstem
+
+
+def draw_updiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+ pen oldpen; oldpen:=currentpen;
+ numeric sj; sj := fr*stem_width; % jut distance
+ numeric sjr; sjr := minfr*stem_width; % right jut distance
+ numeric jw; jw := wd*stem_width; % jut width
+ %% $b is bottom left of jut, on LHS of stem
+ %% $c is leftmost point on jut
+ %% $d is topmost point on jut
+ %% $g is topmost point on stem
+ %% $e is on exprapolation of line from $d through $g
+ %% i.e., the rightmost point on jut
+ %% $f is on RHS of stem
+ pickup quill;
+ x$b = lft x$;
+ x$c = x$b - sj; y$c = y$ - jw*(cosd phi); % $c done
+ y$b = y$c - sj*(sind phi); % $b done
+ x$d = x$c + jw*(sind phi); y$d = y$; % $d done
+ x$g = x$f = rt x$;
+ y$g = y$ - (x$g-x$d)*(sind phi)/(cosd phi); % $g done
+ x$a = x$; top y$a = y$g; % $a done
+ x$e = x$g + sjr; z$e = whatever[z$d,z$g]; % $e done
+ z$f-z$e = whatever*(z$c-z$d); % $f done
+ x$h = x$b; y$h = bot y$a;
+ draw z$a--z$$; % straight part
+ pickup stylus;
+ lft x$cc = x$c; y$cc = y$c;
+ x$dd = x$d; top y$dd = y$d;
+ rt x$ee = x$e; bot y$ee=y$e;
+ filldraw z$b--z$cc--z$dd--z$ee--z$f--cycle; % diamond
+ if y$b > y$h:
+ lft x$hh = x$h; y$hh=y$h;
+ filldraw z$b--z$hh--z$g--cycle;
+ fi
+ pickup oldpen;
+ labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_updiamondstem
+
+
+def draw_downdiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+ pen oldpen; oldpen:=currentpen;
+ numeric sj; sj := fr*stem_width; % (left) jut distance
+ numeric sjr; sjr := minfr*stem_width;; % right jut distance
+ numeric jw; jw := wd*stem_width; % jut width
+ %% $$b is top right of jut, on RHS of stem
+ %% $$c is rightmost point on jut
+ %% $$d is bottommost point on jut
+ %% $$g is bottommost point on stem
+ %% $$e is on exprapolation of line from $d through $g
+ %% i.e., the leftmost point on jut
+ %% $$f is on LHS of stem
+ pickup quill;
+ x$$b = rt x$$;
+ x$$c = x$$b + sj; y$$c = y$$ + jw*(cosd phi); % $$c done
+ y$$b = y$$c + sj*(sind phi); % $$b done
+ x$$d = x$$c - jw*(sind phi); y$$d = y$$; % $$d done
+ x$$g = x$$f = lft x$$;
+ y$$g = y$$ + (x$$d-x$$g)*(sind phi)/(cosd phi); % $$g done
+ x$$a = x$$; bot y$$a = y$$g; % $$a done
+ x$$e = x$$g - sjr; z$$e = whatever[z$$d,z$$g]; % $$e done
+ z$$f-z$$e = whatever*(z$$c-z$$d); % $$f done
+ x$$h = x$$b; y$$h = top y$$a;
+ draw z$--z$$a; % straight part
+ pickup stylus;
+ rt x$$cc = x$$c; y$$cc=y$$c;
+ x$$dd = x$$d; bot y$$dd = y$$d;
+ lft x$$ee = x$$e; top y$$ee = y$$e;
+ filldraw z$$b--z$$cc--z$$dd--z$$ee--z$$f--cycle; % diamond
+ if y$$b < y$$h:
+ rt x$$hh = x$$h; y$$hh=y$$h;
+ filldraw z$$b--z$$hh--z$$g--cycle;
+ fi
+ pickup oldpen;
+ labels($$a,$$b,$$c,$$d,$$e,$$f);
+enddef; % end of draw_downdiamondstem
+
+
+def draw_flat_head(suffix $)=
+ pen oldpen; oldpen:=currentpen;
+%% pickup quill;
+ x$bl'' = lft x$; y$bl'' = bot y$;
+ x$tr'' = rt x$; y$tr'' = top y$;
+ pickup stylus;
+ lft x$blfh = x$bl''; y$blfh = y$bl'';
+ rt x$trfh = x$tr''; top y$trfh = y$tr'';
+ x$tlfh = x$blfh; y$tlfh = y$trfh;
+ filldraw z$blfh--z$tlfh--z$trfh--cycle;
+ pickup oldpen;
+ labels($tlfh);
+enddef; % end of draw_flat_head
+
+def draw_flat_foot(suffix $)=
+ pen oldpen; oldpen:=currentpen;
+%% pickup quill;
+ x$bl'' = lft x$; y$bl'' = bot y$;
+ x$tr'' = rt x$; y$tr'' = top y$;
+ pickup stylus;
+ lft x$blff = x$bl''; bot y$blff = y$bl'';
+ rt x$trff = x$tr''; y$trff = y$tr'';
+ x$brff = x$trff; y$brff = y$blff;
+ filldraw z$blff--z$trff--z$brff--cycle;
+ pickup oldpen;
+ labels($brff);
+enddef; % end of draw_flat_foot
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr);
+ undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+%%% z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-jut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (jut*pdir);
+ fi
+ z$b = fr[z$,z$c];
+ draw z$a--z$;
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+%% beta=1-fr;
+ ajut=clubjut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+%% vec2=ajut*vec1;
+%% z$a=z$ shifted vec2;
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-clubjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (clubjut*pdir);
+ fi
+ z$a = fr[z$,z$$];
+ draw z$c..z$a{vec1};
+ labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ path pth[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ penpos$wt(thick,pangle);
+ penpos$et(thick,pangle);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ penpos$nh(thick,pangle);
+ penpos$sh(thick,pangle);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ if pangle = 90:
+ z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+ else:
+ if pangle = 0:
+ z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+ else:
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ pt1 := z$minr - z$minl; % direction
+ pt2 := (- ypart pt1, xpart pt1); % perpendicular
+ pt3 := 1/2[z$minl, z$minr];
+ pt4 := pt3 shifted pt2;
+ pt5 := pt3 shifted -pt2;
+ pth1 := pt3--pt4;
+ pth2 := pt3--pt5;
+ z$maxr = pth1 intersectionpoint obfirst;
+ z$maxl = pth2 intersectionpoint obfirst;
+ \fi
+ \fi
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+pgothic_font_setup;
+
+
+input pgothl; % lower case
+input pgothu; % capitals
+input pgothpunct; % punctuation
+input pgothlig; % the several dashes
+input pgothdig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space 2vstretch*stem_width#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space 2vstretch*stem_width#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+
+fi
+
+bye.
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/pgothu.mf b/Master/texmf-dist/fonts/source/public/bookhands/pgothu.mf
new file mode 100644
index 00000000000..e3586395cec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/pgothu.mf
@@ -0,0 +1,1234 @@
+%%
+%% This is file `pgothu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pgothic.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "PGOTH letter A";
+beginchar("A", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pair pr[];
+pickup quill;
+%% stem
+rt x1 = w - pcshiftx - wided*st; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% leg
+x21 = x1; top y21 = h;
+lft x22 = pcshiftx + widedmin*st; bot y22 = 0;
+draw z21--z22;
+draw (x22-widedmin*st, y22)--(x22+wided*st, y22);
+%% bar
+z13 = z12;
+y16 = y13; z16 = whatever[z21,z22];
+x14 = 1/2[x13,x16]; (z13-z14) = whatever*pdir;
+pickup threequarterquill;
+draw z13--z14;
+draw z14{ppdir}..{left}z16;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "A"
+
+cmchar "PGOTH letter B";
+beginchar("B", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem
+lft x1 = pcshiftx; bot y1 = 0;
+n1 := top y1;
+lft x99 = 2/5w; bot y99 = 12/16h;
+rt x12 = lft x99; top y12 = bot y99;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,(h-n1/2)];
+pth1 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% stem decoration
+z101=z99;
+z181 = (x99,-h);
+z102 = (x101,y1);
+z112 = 1/2[z101,z102];
+lft x8 = x112; y8 = y112;
+%% lower bowl
+x113 = w-pcshiftx;
+(z113-z112) = whatever*(pdir);
+rt x5 = w-pcshiftx; y5 = 6/16y113;
+x3 = 10/16[x1,x5]; y3 = y1;
+z7 = 2/16[z8,z113];
+pth2 := z1{pdir}..{right}z3..{up}z5..{-pdir}z7--z8;
+
+%% upper bowl
+x10 = 1/2[x7,x5]; y10 = 1/2[y12,y99];
+x19 = 1/2[x99,x10]; top y19 = h;
+pth3 := z8--z7{pdir}..{up}z10..{left}z19..{-pdir}z99;
+%% angled decoration
+
+z105 = 1/4[z102,z112];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+
+z107 = 1/4[z112,z101];
+x187 = 2w;
+(z187-z107) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth3;
+
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth2;
+draw pth3;
+pickup stylus;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,99,100);
+endchar; % end "B"
+
+cmchar "PGOTH letter C";
+beginchar("C", 2cap_sb#+hstretch*((5)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; %% bowl
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,101,102,103,104,105,106,107,108,185);
+endchar; % end "C"
+
+cmchar "PGOTH letter D";
+beginchar("D", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+lft x1 = pcshiftx; bot y1 = 0;
+rt x5 = w-pcshiftx; y5 = 1/2h;
+x3 = 10/16[x1,x5]; y3 = y1;
+x7 = x3; top y7 = h;
+lft x9 = 2/5w; bot y9 = 12/16h;
+pth1 := z1{pdir}..{right}z3..{up}z5..{left}z7..{-pdir}z9;
+%% stem
+rt x12 = lft x9; top y12 = bot y9;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,y7];
+pth2 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% vertical decoration
+z101=z9;
+z181 = (x9,-h);
+z102 = ((x101,h/2)--z181) intersectionpoint pth1;
+z103a=(x101+perpdec,h); z103b=(x103a,h/2); z103c=(x103a,-h);
+z103 = (z103a--z103b) intersectionpoint pth1;
+z104 = (z103b--z103c) intersectionpoint pth1;
+%% angled decoration
+z106 = (lft x5, y5);
+x105 = x103; (z106-z105) = whatever*(pdir);
+z107 = (x105, y105+angdec);
+x108a = 2w; (z108a-z107) = whatever*(pdir);
+z108 = (z108a--z107) intersectionpoint pth1;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth2;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,100);
+endchar; % end "D"
+
+cmchar "PGOTH letter E";
+beginchar("E", 2cap_sb#+hstretch*((6)*stem_width#), %% (5) too small
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%% bar
+lft x31 = x103; top y31 = y105;
+rt x32 = w-pcshiftx; y32=y31;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; %% bowl
+draw z31--z32; %% bar
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,105,185,106);
+endchar; % end "E"
+
+cmchar "PGOTH letter F";
+beginchar("F", 2cap_sb#+hstretch*((5)*stem_width#),
+ 5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem (1--2) and top bar (21--22)
+lft x1=lft x2=pcshiftx+widedmin*st; y2 = 0;
+top y21 = top y22 = h - (top y2 - bot y2); x22 = w-pcshiftx-st;
+lft x21 = rt x1; top y1 = bot y21;
+z12 = 1/3[z1,z2];
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+draw z1--z12;
+draw z21--z22;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+x101 = x102; y101 = y21;
+%% bar
+lft x14 = x101; y14 = y12;
+rt x16 = w-pcshiftx; y16 = y14;
+draw z14--z16;
+z16tr = (rt x16, top y16);
+pickup stylus;
+draw z101--z102;
+%% Other decoration
+%% bottom bar
+rt x201 = x16tr; top y201 = y16tr;
+y202 = y201 - 2st; (z201-z202) = whatever*pdir;
+draw z201--z202;
+%% top bar
+pickup quill;
+z22tb = (rt x22, top y22);
+x22bb - x22 = x22 - x22tb; y22bb - y22 = y22 - y22tb;
+x22c = x22 + st; bot y22c = top y22 + 1/2st;
+x22f = x22; y22f = 1/3[y22c, y22];
+pickup stylus;
+x22br = x22bb; bot y22br = y22bb;
+pth3 := z22br--z22tb..{up}z22c..{-ppdir}z22f;
+draw pth3;
+
+penlabels(1,2,3,4,5,6,7,14,15,16,21,22,100);
+endchar; % end "F"
+
+cmchar "PGOTH letter G";
+beginchar("G", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+%%pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+%%pth2 := z2{-pdir}..z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+pth2 := z2--z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+%% fork
+z2tr = (rt x2, top y2);
+x2a = x2tr; y2a = y2tr + thin;
+x2b = x2a; y2b - y2 = y2 - y2a;
+x2d = x2 - thick; y2d = y2;
+pickup stylus;
+x2c = x2d = x2e;
+top y2e = y2tr; y2c - y2d = y2d - y2e;
+%%filldraw z2d--z2c{right}..z2b--cycle;
+%%filldraw z2d--z2a..{left}z2e--cycle;
+filldraw z2e--z2c{right}..z2b--cycle;
+filldraw z2c--z2a..{left}z2e--cycle;
+pth9 := (rt x2a,y2a)--(rt x2b,y2b)--(rt x2d,y2d)--cycle;
+unfill pth9;
+unfill pth9;
+unfill pth9;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw pth1; %% bar
+draw pth2; %% bowl
+ductus:=false;
+penlabels(1,2,2a,2b,2c,2d,2e,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "G"
+
+cmchar "PGOTH letter H";
+beginchar("H", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+n1 := 12/16h; %% take this as the top of the bowl
+x13=x1; y13=3/4n1;
+rt x3 = w-pcshiftx; y3 = 8/16n1;
+x14 = 8/16[x13,x3]; top y14 = n1;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "H"
+
+cmchar "PGOTH letter I";
+beginchar("I", 2cap_sb#+hstretch*((4+wided)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided, widedmin,diawd,diang);
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101=x102; top y101 = h;
+draw z101--z102;
+ductus:=false;
+penlabels(1,2,101,102,100);
+endchar; % end "I"
+
+cmchar "PGOTH letter J";
+beginchar("J", cap_sb#+hstretch*((4+wided)*stem_width#),
+ caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1 = pcshiftx+3st; y1 = h;
+x2=x1; y2=-d + (top y1 - bot y1);
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_upcurlstem(1,2);
+draw z2{ppdir}..{-pdir}z3;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201 + 2/3wided*st;
+pickup stylus;
+top y101 = h; y201=y101;
+z102=(x101,0);
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,101,102,100);
+endchar; % end "J"
+
+cmchar "PGOTH letter K";
+beginchar("K", 2cap_sb#+hstretch*((8+wided)*stem_width#),
+ 5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = 4/5h; % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5+st,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % upper bowl
+draw pth2; % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106;
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "K"
+
+cmchar "PGOTH letter L";
+beginchar("L", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; bot y2 =0;
+draw_upcurlstem(1,2);
+rt x4 = w-pcshiftx; bot y4 = 0;
+draw z2{right}..{pdir}z4;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201+2/3wided*st;
+pickup stylus;
+top y101 = h; y201 = y101;
+x102 = x101; bot y102=0;
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,4,101,102,201,100);
+endchar; % end "L"
+
+cmchar "PGOTH letter M";
+beginchar("M", 2cap_sb#+hstretch*((11)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%%% left part
+lft x301 = pcshiftx+3st; y301 = h;
+x302 = x301; y302 = 0;
+z312 = 1/2[z301,z302];
+draw_upcurlstem(301,312);
+draw_downdiamondstem(312,302,wided,widedmin,diawd,diang);
+
+%% left N stem (and N part)
+%%%lft x1=pcshiftx+3st; y1=h;
+x1 = x301 + 3st; y1 = h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+%%draw_upcurlstem(1,12);
+%%draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+pickup quill;
+%% finish off the left part
+x3011 = 1/2[x301,x1]; top y3011 = h;
+z3123 = (x301,3/4h); z123 = (x1,y3123);
+draw z3123--z3011--z123--z12;
+%% vertical decorations
+ %% left part
+z402 = 2/3[z302b,z302c];
+x401 = x402; z401 = whatever[z3123,z3011];
+ %% right part
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+%% angled decorations
+ %% left part
+z406 = z13;
+x405 = x402; (z406-z405) = whatever*pdir;
+z407 = (x405, y405-angdec); z408 = (x406, y406-angdec);
+ %% right part
+z105 = (x102,y405);
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z401--z402;
+draw z405--z406; draw z407--z408;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,101,102,105,106,107,108,301,302,100);
+endchar; % end "M"
+
+cmchar "PGOTH letter N";
+beginchar("N", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "N"
+
+cmchar "PGOTH letter O";
+beginchar("O", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "PGOTH letter P";
+beginchar("P", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% vertical decoration
+z1tr = (rt x1, top y1);
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+pickup quill;
+%% bowl
+lft x22 = x101; top y22 = h;
+x21 = x1; (z22-z21) = whatever*pdir;
+rt x24 = w - pcshiftx; y24 = 1/2h;
+x25 = 1/2[x22,x24]; bot y25 = 0;
+pth1 := z21--z22{down}..{down}z24..{-pdir}z25;
+z31 = z25;
+lft x33 = pcshiftx; bot y33 = 0;
+pth2 := z33{pdir}..{right}z31;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2;
+%% angled decoration
+x105 = x101; y105 = 1/3h;
+x185 = 2w;
+(z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105,y105-angdec);
+x187 = x185; y107 - y105 = y187 - y185;
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "PGOTH letter Q";
+beginchar("Q", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx-stem_width; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% tail
+pth2 := z1..z4..z3;
+z11 = directionpoint pdir of pth2;
+rt x13 = w-pcshiftx; bot y13 = 0;
+pth3 := z11{pdir}..{pdir}z13;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth3;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "Q"
+
+cmchar "PGOTH letter R";
+beginchar("R", 2cap_sb#+hstretch*((8+wided)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h; % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % upper bowl
+draw pth2; % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106;
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "R"
+
+cmchar "PGOTH letter S";
+beginchar("S", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+pickup threequarterquill;
+%% top
+n1 := 1;
+lft x1 = pcshiftx + n1*st; top y1 = h;
+rt x3 = w - pcshiftx; y3 = y1;
+x2 = 1/2[x1,x3]; top y2 = y1;
+pth1 := z1..z2..{pdir}z3;
+draw pth1;
+%% bottom
+lft x4 = pcshiftx; bot y4 = 0;
+rt x6 = w -pcshiftx - n1*st; y6 = y4;
+x5 = 1/2[x4,x6]; bot y5 = y4;
+pth2 := z4{pdir}..z5..z6;
+draw pth2;
+%% top path
+z100 = (1/2w, 1/2h);
+z11 = z1; z15 = z6;
+x13 = x100; y13 = y100 + st;
+pth3 := z11..{right}z13{right}..z15;
+draw pth3;
+%% bottom path
+z21 = z11; z25 = z6;
+x23 = x100; y100 - y23 = y13 - y100;
+pth4 := z21..{right}z23{right}..z25;
+draw pth4;
+%% decorations
+ %% top
+z101 = (x2+angdec,y2); y181 = 0; (z101-z181) = whatever*pdir;
+z102 = (z101--z181) intersectionpoint pth3;
+z103 = (x101-angdec, y101); x183-x181 = x103-x101; y183 = 0;
+z104 = (z103--z183) intersectionpoint pth3;
+ %% bottom
+z201 = (x5,y5); y281 = h; (z201-z281) = whatever*pdir;
+z202 = (z201--z281) intersectionpoint pth4;
+z203 = (x201-angdec, y201); x283-x281 = x203-x201; y283 = h;
+z204 = (z203--z283) intersectionpoint pth4;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z201--z202; draw z203--z204;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100,101,102,103,104,201,202,203,204);
+endchar; % end "S"
+
+cmchar "PGOTH letter T";
+beginchar("T", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%%pth2 := z3..z4{down}..z5{right}..z6{pdir};
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+%%z102 = z191--z181 intersectionpoint pth2; %%% ???? NO INTERSECTION!!!!!!
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; %% bar
+draw pth2; %% bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "T"
+
+cmchar "PGOTH letter U";
+beginchar("U", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+rt x9 = lft x3; bot y9 = 0;
+pth1 := z7{pdir}..{pdir}z9;
+draw pth1;
+%% stem bottoms
+z2 = (z1 -- (x1,-h)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y9;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "PGOTH letter V";
+beginchar("V", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + 3st; y1 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = w/2; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+z6 = z9;
+rt x5 = w - pcshiftx; top y5 = 3/4h;
+x3 = 1/2[rt x1, lft x5];
+x4 = 1/2[x3,x5]; top y4 = h;
+y3 = 1/2[y4,y5];
+pth2 := z6{pdir}..{up}z5..{left}z4..{-pdir}z3;
+draw pth2;
+pth3 := pth1 & pth2;
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth3;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec);
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "PGOTH letter W";
+beginchar("W", 2cap_sb#+hstretch*((12)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top of stems
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x999 = w - pcshiftx;
+x3 = 1/2[x1,x999]; y3 = h;
+%% bowl bottoms
+x21 = x1 - 3/2st; bot y21 = 0;
+rt x23 = lft x3; bot y23 = 0;
+pth1 := z21{pdir}..z23;
+draw pth1;
+lft x31 = rt x23; bot y31 = top y23;
+x33 = 1/2[x31,x999]; bot y33 = 0;
+pth2 := z31{pdir}..z33;
+draw pth2;
+%% bottom of stems
+z2 = (z1--(x1,0)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y23;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% right V stem
+z16 = z33;
+x15 = x999; top y15 = 3/4h;
+x13 = 1/2[rt x3, lft x15];
+x14 = 1/2[x13,x15]; top y14 = h;
+y13 = 1/2[y14,y15];
+pth3 = z16{pdir}..{up}z15..{left}z14..{-pdir}z13;
+draw pth3;
+%% decorations
+z1tr = (rt x1, top y1);
+z3tr = (rt x3, top y3);
+pickup stylus;
+%% for U
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%% for V
+
+x301 = x3tr+2/3wided*st; top y301 = y3e;
+z381 = (x301,-w);
+z302 = (z301--z381) intersectionpoint pth2;
+draw z3e--z301--z302;
+x305 = x301; y305 = 1/3[y302,y301];
+x385 = 2w; (z385-z305) = whatever*pdir;
+z306 = (z305--z385) intersectionpoint pth3;
+z307 = (x305, y305-angdec);
+x387 = x385; y387-y385 = y307-y305;
+z308 = (z307--z387) intersectionpoint pth3;
+draw z305--z306; draw z307--z308;
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "PGOTH letter X";
+beginchar("X", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := cap_sb;
+pickup quill;
+%% center stem
+lft x1 = lft x2 = pcshiftx + 3st;
+y1 = 3/4h; y2 = 1/4h;
+draw z1--z2;
+%% top right
+z21 = z1; top y22 = h; (z22-z21) = whatever*pdir;
+rt x24 = w-pcshiftx; y24 = y21;
+pth1 := z21--z22{-ppdir}..{pdir}z24;
+draw pth1;
+%% bottom right
+z31 = z2;
+rt x33 = w-pcshiftx; bot y33 = 0;
+pth2 := z31{-ppdir}..{pdir}z33;
+draw pth2;
+%% bottom left
+z41 = z2;
+bot y43 = -1/4h; (z41-z43) = whatever*pdir;
+x45 = x43 + st; y45=y43;
+pth3 := z41--z43{-pdir}..{pdir}z45;
+pickup stylus;
+draw pth3;
+pickup quill;
+%% top left
+x11 = x1; y11 = h;
+draw_upcurlstem(11,1);
+%% decoration
+x81 = rt x1;
+pickup stylus;
+x101 = x102 = x81 + 2/3wided*st;
+z101 = whatever[z1,z22];
+z102 = (z101--(x101,0)) intersectionpoint pth2;
+draw z101--z102;
+pickup quill;
+%% middle arms
+z120 = 1/2[z1,z2];
+z51 = z120;
+lft x53 = pcshiftx; top y53 = y51;
+x52 = 1/2[x51,x53]; y52 = y51;
+pth5 := z51--z52{left}..{-pdir}z53;
+draw pth5;
+lft x61 = x101; y61 = y120;
+rt x63 = w-pcshiftx; bot y63 = y61;
+x62 = 1/2[x61,x63]; y62 = y61;
+pth6 := z61--z62{right}..{pdir}z63;
+draw pth6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,51,52,53,61,62,63,101,102,150,60,160,100);
+endchar; % end "X"
+
+cmchar "PGOTH letter Y";
+beginchar("Y", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = 1/2[x1,x3]; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+x4 = x3; y4 = 0;
+x5 = x4; y5 = -1/4d;
+lft x6 = x9; bot y6 = -d;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+draw z6{pdir}..{up}z5--z4;
+z3cd = 1/2[z3c,z3d];
+pth2 = z5--z3a--z3cd;
+%% fill bowl bottom
+x91 = x3; (z91-z9) = whatever*pdir;
+draw z9--z91;
+
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth1;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec);
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100,101,102,181);
+endchar; % end "Y"
+
+cmchar "PGOTH letter Z";
+beginchar("Z", 2cap_sb#+hstretch*((5)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx-perpdec;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+x102 = rt x2; y102 = top y2; x202 = x102+perpdec; y202=y102;
+%% bottom bar ends
+bot y34 = 0;
+x3=x1+perpdec; rt x4= w-pcshiftx;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+x203 = lft x3; y203 = bot y3; x103 = x203-perpdec; y103=y203;
+%% centre bar
+z5 = (x1,1/2[y1,y3]); z6 = (x4,1/2[y2,y4]); z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2; % bars
+draw pth3;
+%% decorations
+pickup stylus;
+draw z102--z103; draw z202--z203;
+unfill z102--z103--z203--z202--cycle;
+draw z102--z103; draw z202--z203;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtnd10.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtnd10.mf
new file mode 100644
index 00000000000..65e6f5277ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtnd10.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `rtnd10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RTND10.MF Early Gothic at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RTND"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.1;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate rtndtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtnd17.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtnd17.mf
new file mode 100644
index 00000000000..d01fc13636d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtnd17.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `rtnd17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RTND17.MF Early Gothic at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RTND"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.1;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate rtndtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtnd7.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtnd7.mf
new file mode 100644
index 00000000000..e5aea87173b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtnd7.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `rtnd7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RTND7.MF Early Gothic at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RTND"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.1;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate rtndtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndb10.mf
new file mode 100644
index 00000000000..331cfc82c67
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndb10.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `rtndb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RTNDB10.MF Early Gothic Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RTNDB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.1;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate rtndtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndb17.mf
new file mode 100644
index 00000000000..d1d1267283b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndb17.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `rtndb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RTNDB17.MF Early Gothic Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RTNDB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.1;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate rtndtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndb7.mf
new file mode 100644
index 00000000000..8128e5865d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndb7.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `rtndb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RTNDB7.MF Early Gothic Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RTNDB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.1;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=35; % pen angle
+ ascratio:=6/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate rtndtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtnddig.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtnddig.mf
new file mode 100644
index 00000000000..6103a08747c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtnddig.mf
@@ -0,0 +1,228 @@
+%%
+%% This is file `rtnddig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "RTND digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw_flat_foot(2);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "RTND digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+o; top y1=h-2thin;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx-o; y3=3/4h;
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(5,6,thin); % foot
+draw z1..z2{right}.. tension 0.8 ..z3{down}..{-pdir}z5wl; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "RTND digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+%%lft x6=pcshiftx+3thin; x7=x6;
+x6=1/2[x3,x9]; x7=x6;
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl
+draw z7{right}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "RTND digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-jut;
+y1=h; bot y2=0;
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % main stem
+draw_flat_foot(2);
+draw_wave(3,4,thin); % crossbar
+draw z3wl--z1; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "RTND digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx; y2=y1;
+x3=x2; y3=0.5h+thin;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=w/2; bot y6=0;
+lft x7=pcshiftx; bot y7=2thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(2,1,thin); % top squiggle
+draw z3{pdir}..z5{down}.. tension 0.8 ..z6{left}..z7; % curve
+draw z2wl--z3; % vertical
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "RTND digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}.. tension 0.8 ..z3{down}.. tension 0.8 ..z4{right}.. tension 0.8
+ ..z5{up}..{-pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "6"
+
+cmchar "RTND digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,2,thin); % top bar
+draw z1wr..z3..z4;
+draw_flat_foot(4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "RTND digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1.. tension 0.8 ..z2.. tension 0.8 ..z3..z5..
+ z11.. tension 0.8 ..z4.. tension 0.8 ..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "RTND digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}.. tension 0.8 ..z3{up}.. tension 0.8 ..z4{left}..
+ tension 0.8 ..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "RTND digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1.. tension 0.8 ..z2.. tension 0.8 ..z3.. tension 0.8 ..z4.. tension 0.8 ..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndl.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndl.mf
new file mode 100644
index 00000000000..a4b10704d0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndl.mf
@@ -0,0 +1,787 @@
+%%
+%% This is file `rtndl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "RTND letter a";
+beginchar("a", 2sb#+hstretch*(9/16x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+n1 := w - 2pcshiftx -jut; % effective letter width
+x1=1/2w; top y1=h;
+rt x2 = w-pcshiftx-jut; top y2 = bot y1;
+x3 = x2; bot y3 = 0;
+z4 = z3 shifted (jut*pdir);
+pth1 := z1--z2--z3--z4;
+rt x6 = lft x3; bot y6 = 0;
+lft x5 = pcshiftx; bot y5 = 1/4h;
+
+z15 = (lft x5, bot y5); z25 = (rt x5, top y5);
+z7 = whatever[z15,z25] = whatever[z2,z3];
+x8 = x25; y8 = y25 + 1/2(y1-y7);
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+else:
+ % draw stem
+ draw pth1;
+ % draw bowl
+ draw z5--z6;
+ pickup stylus;
+ draw z5--z7;
+ draw z1{-pdir}..z8..z7{pdir};
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+cmchar "RTND letter b";
+beginchar("b", 2sb#+hstretch*(11/16x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx+jut; top y1=h;
+x3 = x1; bot y3= thick;
+rt x5 = w-pcshiftx; y5=1/2n2;
+x4 = 1/2[x3,x5]; bot y4=0;
+x6=1/2[x4,x5]; top y6=n2;
+pth1 := z1..z3{down}..z4{right}.. z5{up};
+z98=(0,3/4n2); z99=(w,y98);
+pth2 := z98--z99;
+z7=(x1,6/8n2);
+if ductus:
+ pickup stylus;
+fi
+draw z1--z3--z4;
+draw z4{pdir}..z5{up}..{-pdir}z7;
+draw_flat_head(1);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "RTND letter c";
+beginchar("c", 2sb#+hstretch*(9/16x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24--z1{left}...z2{down}..z3{right}..z4{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "RTND letter d";
+beginchar("d", 2sb#+hstretch*(11/16x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio; % x-height
+rt x1=w-pcshiftx-jut; top y1=h;
+x2 = x1; bot y2=0;
+x3 = x1; y3 = 1/4n1;
+lft x5 = pcshiftx; y5=6/8n1;
+x4 = 3/8[x3,x5]; bot y4 = 0;
+x6=1/2[x4,x5]; top y6 = n1;
+x7=x3; top y7=n1;
+rt x8 = w-pcshiftx; y8=n1;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw_flatserif(1,2,srad);
+draw_flat_foot(2);
+%%draw z3..z4{left}..z5{up}..z6;
+draw z3..z4{left}.. tension 0.8 ..z5{up}..z6;
+draw z6..z7..z8;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "RTND letter e";
+beginchar("e", sb#+hstretch*(15/16x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-pcshiftx; % actual letter width
+n2 := 6/8n1; % width of bowl
+x1 = pcshiftx + 5/8n2; top y1=h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = pcshiftx + 1/2n2; bot y3 = 0;
+rt x4 = pcshiftx + n2; y4 = 1/4h;
+%%z98=(0,3/8h); z99=(w,y98);
+z98=(0,2/8h); z99=(w,y98);
+pth1 := z98--z99;
+pth2 := z1{left}..z2{down}..z3{right};
+z7 = pth1 intersectionpoint pth2;
+rt x9 = w-pcshiftx; y9 = 3/4h;
+z8=1/2[z7,z9];
+
+z70 = z7 shifted 10pdir;
+z17 = whatever[z7,z70];
+%%x17 = w-pcshiftx;
+top y17 = h;
+
+rt x27=w-pcshiftx; top y27=h;
+pth3 := z7--z27; % diagonal
+pth4 := z1--z9;
+
+z34 = pth3 intersectionpoint pth4;
+pth5 := z34--z1{left}...z2{down}..z3{right}..z4{pdir}; % bowl
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z7{pdir}..z1{left}..z2{down}..z3{right}..z4{pdir};
+%%draw z7{pdir}..z8{right}..z9{pdir};
+%%draw z7--z17;
+draw pth5; % bowl
+%%draw pth3; % diagonal
+draw z34--z7; % daigonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100);
+endchar; % end "e"
+
+cmchar "RTND letter f";
+beginchar("f", 2sb#+hstretch*(9/16x_height#+jut#),
+ (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1 = lft x2 = pcshiftx+jut; bot y2=0;
+%% flick
+rt x4 = w-pcshiftx; top y4 = h-thick;
+top y3 = h;
+lft x3 = rt x1;
+top y1 = bot y3;
+%% bar
+lft x5 = pcshiftx; top y5 = n1;
+rt x6 = lft x4; y6 = y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw_flat_foot(2); % stem
+draw z3--z4; % top
+draw z5--z6; % bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,14,15,16,100);
+endchar; % end "f"
+
+cmchar "RTND letter g";
+beginchar("g", 2sb#+hstretch*(11/16x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%%n1 = h/ascratio; % x-height
+rt x1=w-pcshiftx-jut; top y1=h;
+rt x2 = x1; y2=1/2h;
+x3 = x1; y3 = 0;
+rt x4 = w-pcshiftx; y4 = -1/2d;
+x5 = 1/2w; bot y5 = -d;
+lft x6 = pcshiftx; y6 = top y5;
+x13 = x1; y13 = 1/4h;
+lft x15 = pcshiftx; y15=6/8h;
+x14 = 3/8[x13,x15]; bot y14 = 0;
+x16=1/2[x14,x15]; top y16 = h;
+x17=x13; top y17=h;
+rt x18 = w-pcshiftx; y18=h;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z13..z4{down}..z5{left}..z6;
+draw z6--z13;
+%% top bowl
+draw z13..z14{left}..z15{up}..z16;
+draw z16..z17..z18;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,13,14,15,16,17,18,100);
+endchar; % end "g"
+
+cmchar "RTND letter h";
+beginchar("h", 2sb#+hstretch*(11/16x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=1/2[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=9/16[x3,x5]; top y4 = h/ascratio;
+%%lft x6=x4; bot y6=0;
+x6=9/16[x4,x5];
+bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw_roundserif(2,1,srad);
+draw z1--z2;
+draw_flat_head(1); draw_flat_foot(2);
+draw z3--z4{right}...z5{down}...z6{-pdir};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "RTND letter i";
+beginchar("i", 2sb#+hstretch*(thick#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2= thick;
+bot y3 = 0; rt x3 = w-pcshiftx;
+x8 = x1; y8 = h + 3/2thick;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw z2--z3;
+draw_pdot(8, dot_size);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "RTND letter j";
+beginchar("j", sb#+hstretch*(3/8x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+x8 = x1; y8 = h + 3/2thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw_flatserif(1,2,srad);
+draw z2{down}..z3{-pdir}; % hook
+draw_pdot(8, dot_size);
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "RTND letter k";
+beginchar("k", 2sb#+hstretch*(13/16x_height#+jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% stem
+n1 = h/ascratio; % x-height
+lft x1=lft x2=pcshiftx+jut;
+y1=h; bot y2=0;
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 1/2n1;
+rt x5=5/8[x1,w-pcshiftx]; top y5=n1;
+x4=1/2[x3,x5]; top y4=n1;
+pth1 := z3{pdir}..z5{up};
+%% lower arm
+pth2 := (rt x1,0)--(rt x1,h);
+z13 = pth1 intersectionpoint pth2;
+pickup threequarterquill;
+lft x14 = x13; bot y14 = y13;
+rt x7=w-pcshiftx; bot y7=0;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_flat_foot(2);
+draw pth1; % upper arm
+pickup threequarterquill;
+%%draw z14{down}..z7{-ppdir}; % lower arm
+%%draw z14{down}..z7; % lower arm
+draw z14{-ppdir}..z7{right}; % lower arm
+pickup quill;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+cmchar "RTND letter l";
+beginchar("l", 2sb#+hstretch*(thick#+2jut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1;
+bot y2 = thick;
+rt x3 = w-pcshiftx; bot y3 = 0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw_flatserif(1,2,srad);
+draw z2--z3;
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "RTND letter m";
+beginchar("m", 2sb#+hstretch*(15/16x_height#+2jut#), % 12/16 too narrow, 14 a bit
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+%% start of bowl
+x13=x1; y13=3/4h;
+%% bottom of right and middle stems
+rt x6 = w -pcshiftx - jut; y6=y2;
+z4 = 1/2[z2,z6];
+%% top of middle and right stems
+x3=x4; y3=y1;
+x5=x6; y5=y13;
+%% top of bowls
+x14=2/3[x13,x3]; top y14 = h;
+x33=x4; y33=y13;
+x34=2/3[x33,x5]; y34 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left half
+draw_flatserif(1,2,srad);
+draw_flat_foot(2);
+draw z13--z14{right}..z33{down}--z4;
+draw_flat_foot(4);
+draw z33--z34{right}..z5{down}--z6;
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "RTND letter n";
+beginchar("n", 2sb#+hstretch*(9/16x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+x13=x1; y13=3/4h;
+%% right stem
+rt x4 = w-pcshiftx-jut; y4=y2;
+x3 = x4; y3 = y13;
+x14 = 2/3[x13,x3]; top y14 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_flatserif(1,2,srad);
+draw_flat_foot(2);
+draw z13--z14{right}..z3{down}--z4;
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+cmchar "RTND letter o";
+beginchar("o", 2sb#+hstretch*(7/8x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+draw z2..z3..z4{left}.. tension 0.8 ..{up}z1..cycle;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw obfirst; draw obsecond; draw obouter; draw obinner;
+else:
+%% fill obouter; unfill obinner;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "RTND letter p";
+beginchar("p", 2sb#+hstretch*(14/16x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=-d;
+%% bowl % from "d"
+z3=3/4[(x1,0),z1];
+rt x5 = w-pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; top y4 = h;
+x6=x4; bot y6=0;
+z7=1/4[(x1,0),z1];
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_flat_foot(2);
+draw z3--z4; draw z4..z5{down}..z6{left}..z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "RTND letter q";
+beginchar("q", 2sb#+hstretch*(7/8x_height#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% right stem
+rt x1=w-pcshiftx; top y1=h;
+x2=x1; bot y2=-d;
+%% bowl
+z3=1/4[(x1,0),z1];
+lft x5=pcshiftx; y5=1/2h;
+x4=1/2[x3,x5]; bot y4=0;
+x6=x4; top y6=h;
+%%z7=3/4[(x1,0),z1];
+z7=z1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+%%draw_flatserif(1,2,srad);
+%%draw_roundserif(2,1,srad);
+draw_flat_foot(2);
+draw z3{-pdir}..z4{left}..z5{up}..z6{right}..z7{pdir};
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "RTND letter r";
+beginchar("r", 2sb#+hstretch*(11/16x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+jut;
+top y1=h; bot y2=0;
+%% bowl
+z3=3/4[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_flat_foot(2);
+%%draw_roundserif(2,1,srad);
+draw z3{pdir}..z4{right}..z5{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "RTND letter s";
+beginchar("s", 2sb#+hstretch*(7/8x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+
+z50=(1/2w, 1/2h);
+x60 = w-pcshiftx; z60 = z50 shifted (whatever*pdir);
+x40 = pcshiftx; z40 = z50 shifted (whatever*pdir);
+rt x5 = x50; top y5 = y50;
+z54 = (lft x5, bot y5);
+lft x6 = x50; bot y6 = y50;
+z56 = (rt x6, top y6);
+
+z1 = 1/2[z56,z60];
+x3 = 1/2[x5,x1]; top y3 = h;
+
+z10 = 1/2[z54,z40];
+x8 = x56;
+bot y8 = 0;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{ppdir}..z3..z1{-ppdir};
+
+draw z6..z8{left}..z10{ppdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,17,20,26,27,28,40,50,54,56,60,100);
+endchar; % end "s"
+
+cmchar "RTND letter t";
+beginchar("t", 2sb#+hstretch*(10/16x_height#+jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% bar
+lft x1 = pcshiftx; top y1 = h;
+rt x2 = w - pcshiftx; y2 = y1;
+%% stem
+lft x3 = rt x1; bot y3 = top y1;
+rt x5 = x2; bot y5 = 0;
+x4 = x3; bot y4 = thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % bar
+draw z3--z4--z5; % stem
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "RTND letter u";
+beginchar("u", 2sb#+hstretch*(9/16x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z1--z13{down}...z14{right}...z33{pdir};
+draw z1--z13--z14{right}...z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,4,srad); % right stem
+draw_flatserif(3,4,srad);
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "RTND letter v";
+beginchar("v", 2sb#+hstretch*(11/16x_height#+jut#), % 13/16 too wide
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+%% right stem
+rt x5=w-pcshiftx; top y5 = h;
+bot y3 = 0;
+x3 = 1/2[x1,x5];
+z51 = (x1,0); z55=(x5,0);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z3; % left stem
+draw_flatserif(1,51,srad);
+draw z5{down}..z3; % right stem
+draw_flatserif(5,55,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "RTND letter w";
+beginchar("w", 2sb#+hstretch*(15/16x_height#+2jut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x5=w-pcshiftx-jut; y5=y1;
+x6=x5; bot y6=0;
+z53=1/4[z6,z5]; % start of bowl
+z3 = 1/2[z1,z5];
+z33=(x3,y13);
+x14=1/3[x1,x3]; bot y14=0;
+x34=1/3[x3,x5]; y34=y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13--z14{right}...z33{pdir}; % left
+draw_flatserif(1,13,srad);
+draw z3--z33--z34{right}...z53{pdir}; % middle
+draw_flatserif(3,33,srad);
+draw_tstem(5,6,srad); % right stem
+draw_flatserif(5,6,srad);
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "RTND letter x";
+beginchar("x", 2sb#+hstretch*(7/2thick#),
+ x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1 := w-2pcshiftx; % total width
+n2 := thick; % triangle side
+%% diag top left to bottom right
+lft x1 = pcshiftx; top y1 = h;
+rt x4 = w-pcshiftx; bot y4 = 0;
+x2 = x3 = 1/2w;
+top y5 = h; lft x5 = rt x2;
+top y2 = bot y5;
+rt x6 = w - pcshiftx; y6 = y2;
+y3 = h - y2;
+lft x8 = lft x1; bot y8 = 0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2--z3--z4; % top left to bottom right
+draw z5--z6; % top right
+draw z3--z8; % bottom left
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+cmchar "RTND letter y";
+beginchar("y", 2sb#+hstretch*(11/16x_height#+jut#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + jut; top y1 = h;
+bot y3 = 0;
+%% right stem
+rt x5=w-pcshiftx; top y5 = h;
+%%lft x9=-1/2w; bot y9 = -d;
+lft x9 = 0; bot y9 = -d;
+pth1 := z9{right}..z5{up};
+pth2 := (0,y3)--(w,y3);
+z99 = pth1 intersectionpoint pth2;
+x3 = x99;
+z51 = (x1,0); z55=(x5,0);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z3; % left stem
+draw_flatserif(1,51,srad);
+draw pth1; % right stem
+draw_flatserif(5,55,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "RTND letter z";
+beginchar("z", 2sb#+hstretch*(12/16x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+top y1 = top y2 = h;
+%% bottom bar ends
+lft x3 = pcshiftx; rt x4 = w-pcshiftx;
+bot y3 = bot y4 = 0;
+%% middle bar ends
+lft x5 = x1; rt x6 = x2;
+y5 = y6 = 1/2h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4; draw z5--z6; % bars
+draw z2--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndlig.mf
new file mode 100644
index 00000000000..f8c3b2b7d59
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndlig.mf
@@ -0,0 +1,148 @@
+%%
+%% This is file `rtndlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+%%%%ligtable "c": "t"=:oct"014";
+%%%%ligtable "s": "t"=:oct"015";
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+%%numeric alpha; alpha:=w/8;
+%%pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+pickup halfquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+%%numeric alpha; alpha:=w/8;
+%%pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+pickup halfquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+%%numeric alpha; alpha:=w/8;
+%%pickup quill;
+%%lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+%%x11=lft x1+alpha/2; y11=top y1-0.5thin;
+%%x12=rt x2; y12=bot y1+0.5thin;
+%%draw_triangle(11,alpha);
+%%draw_rutriangle(12,alpha);
+pickup halfquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+draw z21--z22;
+draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "RTND ampersand";
+beginchar("&", 2sb#+hstretch*(5/4x_height#+2jut#), asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx:=sb;
+pickup quill;
+%% alpha looking part
+n1 := w-2pcshiftx-jut; % actual letter width
+n2 := h/ascratio; % x-height
+n3 := 16/16n2; % height of alpha
+x1 = w-pcshiftx; bot y1 = 0;
+x3 = pcshiftx + 12/16n1; y3 = 1/2n3;
+lft x5 = pcshiftx; y5 = y3;
+x4 = x6 = 1/2[x5,x3];
+top y4 = n3; bot y6 = 0;
+rt x8 = w-pcshiftx-jut;
+top y8 = h - thick;
+x9 = x8-2jut; x10-x8 = x8-x9;
+y9=y10=y8;
+pth1 := z1{left}..z3..z4{left}.. tension 0.8 ..z5{down}..
+ tension 0.8 ..z6{right}..z3..z8{up};
+%% loop
+z21 = z5;
+z25 = point 1.5 of pth1;
+x23 = 1/2[x21,x25];
+top y23 = h;
+pth2 := z21{up}..z23{right}..z25{down};
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw z8--z10; % alpha
+draw pth2; % loop
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,16,17,18,19,21,22,23,24,25);
+endchar; % end of "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndpunct.mf
new file mode 100644
index 00000000000..4d3cdb63b8a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndpunct.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `rtndpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*(3/4x_height#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x4 = x5; y4=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 2/3h;
+
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..z4{down};
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=3/4h; y2=1/4h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=3/4h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndtitle.mf
new file mode 100644
index 00000000000..442d5ad2c11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndtitle.mf
@@ -0,0 +1,734 @@
+%%
+%% This is file `rtndtitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def rotunda_font_setup= % contains special stuff for rotunda fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,clubjut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb,cap_sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+
+ pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+ threequarterquill := savepen;
+
+ pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+ halfquill := savepen;
+
+ pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+ quarterquill := savepen;
+
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of rotunda_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr);
+ undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+%%% z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-jut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (jut*pdir);
+ fi
+ z$b = fr[z$,z$c];
+ draw z$a--z$;
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+%% beta=1-fr;
+ ajut=clubjut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+%% vec2=ajut*vec1;
+%% z$a=z$ shifted vec2;
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-clubjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (clubjut*pdir);
+ fi
+ z$a = fr[z$,z$$];
+ draw z$c..z$a{vec1};
+ labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_flat_head(suffix $)=
+ pen oldpen; oldpen:=currentpen;
+%% pickup quill;
+ x$bl'' = lft x$; y$bl'' = bot y$;
+ x$tr'' = rt x$; y$tr'' = top y$;
+ pickup stylus;
+ lft x$blfh = x$bl''; y$blfh = y$bl'';
+ rt x$trfh = x$tr''; top y$trfh = y$tr'';
+ x$tlfh = x$blfh; y$tlfh = y$trfh;
+ filldraw z$blfh--z$tlfh--z$trfh--cycle;
+ pickup oldpen;
+ labels($tlfh);
+enddef; % end of draw_flat_head
+
+def draw_flat_foot(suffix $)=
+ pen oldpen; oldpen:=currentpen;
+%% pickup quill;
+ x$bl'' = lft x$; y$bl'' = bot y$;
+ x$tr'' = rt x$; y$tr'' = top y$;
+ pickup stylus;
+ lft x$blff = x$bl''; bot y$blff = y$bl'';
+ rt x$trff = x$tr''; y$trff = y$tr'';
+ x$brff = x$trff; y$brff = y$blff;
+ filldraw z$blff--z$trff--z$brff--cycle;
+ pickup oldpen;
+ labels($brff);
+enddef; % end of draw_flat_foot
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ path pth[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ penpos$wt(thick,pangle);
+ penpos$et(thick,pangle);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ penpos$nh(thick,pangle);
+ penpos$sh(thick,pangle);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ if pangle = 90:
+ z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+ else:
+ if pangle = 0:
+ z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+ else:
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ pt1 := z$minr - z$minl; % direction
+ pt2 := (- ypart pt1, xpart pt1); % perpendicular
+ pt3 := 1/2[z$minl, z$minr];
+ pt4 := pt3 shifted pt2;
+ pt5 := pt3 shifted -pt2;
+ pth1 := pt3--pt4;
+ pth2 := pt3--pt5;
+ z$maxr = pth1 intersectionpoint obfirst;
+ z$maxl = pth2 intersectionpoint obfirst;
+ \fi
+ \fi
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+rotunda_font_setup;
+
+
+input rtndl; % lower case
+input rtndu; % capitals
+input rtndpunct; % punctuation
+input rtndlig; % the several dashes
+input rtnddig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space vstretch*9u#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space vstretch*6u#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+
+fi
+
+bye.
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rtndu.mf b/Master/texmf-dist/fonts/source/public/bookhands/rtndu.mf
new file mode 100644
index 00000000000..d71d50b3eb8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rtndu.mf
@@ -0,0 +1,833 @@
+%%
+%% This is file `rtndu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rotunda.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "RTND letter A";
+beginchar("A", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+n1 := w - 2pcshiftx -jut; % effective letter width
+x1 = pcshiftx + 6/8n1; top y1=h;
+rt x2 = pcshiftx + n1; bot y2=0;
+pth1 := z1{down}..z2;
+z20 = 7/8[z1,z2];
+
+rt x4 = lft x1; top y4 = y1;
+
+lft x8 = pcshiftx; top y8 = -thin;
+
+x6 = 3/8w; y6 = 1/2h;
+pth2 := z4..{down}z6..{-pdir}z8;
+
+lft x11 = pcshiftx; top y11 = h - thick;
+
+x14 = x1; y14 = y1;
+
+x13 = 1/2[x11,x14]; y13 = y14;
+pth3 := z11{pdir}.. z13..z14;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+else:
+ % draw stem
+ draw pth1;
+ draw_roundserif(2,20,srad);
+ % draw bowl
+ % left leg
+ draw pth2;
+ % top
+ draw pth3;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,20,100);
+endchar; % end "A"
+
+cmchar "RTND letter B";
+beginchar("B", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx+2jut; top y1=7/8h;
+lft x13 = pcshiftx; top y13 = y1;
+x2 = x1; bot y2 = 0;
+z3 = 9/16[z2,z1];
+pth1 := z1--z2; % stem
+
+rt x6 = w-pcshiftx; y6 = 2/3[y2,y3];
+
+pth2 := z2{right}..z6...{-pdir}z3; % bottom bowl
+
+rt x8 = lft x6; y8 = 13/16[y3,y1];
+
+pth3 := z3{pdir}...z8..{-pdir}z13; % top bowl
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth2;
+draw pth3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "B"
+
+cmchar "RTND letter C";
+beginchar("C", 2cap_sb#+caprat*hstretch*(5/8x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := cap_sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "C"
+
+cmchar "RTND letter D";
+beginchar("D", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+2jut;
+top y1=h; bot y2=0;
+%% bowl
+rt x5 = w-pcshiftx;
+x4=1/2[x1,x5]; top y4 = h;
+x6'=x4; bot y6' = 5/16h;
+y5=1/2[y4,y6'];
+x7 = x2; y7 = y2;
+x6 = 1/2[x6',x5]; y6 = 1/2[y6',y7];
+lft x3 = pcshiftx; top y3 = y1;
+pth1 := z3{pdir}..z4..{down}z5..z6..{-pdir}z7; % bowl
+z14 = point 0.75 of pth1;
+pth2 := z2{pdir}..{up}z14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth2;
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,4,5,6,6',7,8,100);
+endchar; % end "D"
+
+cmchar "RTND letter E";
+beginchar("E", 2cap_sb#+caprat*hstretch*(5/8x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% bowl
+n1 := w-2pcshiftx; % actual letter width
+n2 := 6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+x31 = x2; y31 = y2;
+x32 = x4; y32 = y31;
+pth2 = z31--z32;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth2;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,24,31,32,100);
+endchar; % end "E"
+
+cmchar "RTND letter F";
+beginchar("F", 2cap_sb#+caprat*hstretch*(10/16x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := cap_sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+jut; top y1=n1; bot y2=0;
+%% flick
+x4=x2; y4 = 1/2n1;
+rt x6=w-pcshiftx; y6 = 2/3h;
+x5 = 2/3[x4,x6]; top y5=h;
+%% bar
+z14=1/2[z4,z1];
+rt x16 = w -pcshiftx; top y16 = 1/2[y14,y6];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z4{up}...z5{right}...z6; % top
+draw z14{right}..z16{pdir}; % bar
+ductus:=false;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,14,15,16,100);
+endchar; % end "F"
+
+cmchar "RTND letter G";
+beginchar("G", 2cap_sb#+caprat*hstretch*(5/8x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% bowl
+n1 := w-2pcshiftx; % actual letter width
+n2 := 6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+x31 = x2; y31 = y2;
+x32 = x4; y32 = y31;
+pth2 = z31--z32;
+z41 = 5/8[z31,z32];
+z42 = z32;
+z43 = z4;
+lft x45 = x3; top y45 = - thick;
+pth3 := z41--z42--z43..{-pdir}z45;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,24,31,32,100);
+endchar; % end "G"
+
+cmchar "RTND letter H";
+beginchar("H", 2cap_sb#+caprat*hstretch*(5/8x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+numeric n[];
+%% stem
+lft x1=lft x2=pcshiftx+3jut;
+top y1=h; bot y2=0;
+lft x16 = pcshiftx; top y16 = h;
+x18 = x1; y18 = y1;
+pth1 := z16{pdir}..{pdir}z18;
+
+%% bowl
+z3=1/2[z2,z1];
+rt x5 = w-pcshiftx; y5=y3;
+x4=1/2[x3,x5]; top y4 = h/ascratio;
+%%lft x6=x4; bot y6=0;
+x6=1/2[x4,x5];
+top y6 = 0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+%%draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw pth1;
+draw z3{pdir}..z4..z5..z6{-pdir};
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "H"
+
+cmchar "RTND letter I";
+beginchar("I", 2cap_sb#+caprat*hstretch*(thick#+3jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+rt x1 = w - pcshiftx - jut;
+x2 = x1;
+top y1=h; bot y2=0;
+lft x6 = pcshiftx; top y6 = h;
+x8 = x1; y8 = y1;
+pth1 := z6{pdir}..{pdir}z8;
+draw_tstem(1,2,srad);
+%%draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "I"
+
+cmchar "RTND letter J";
+beginchar("J", cap_sb#+caprat*hstretch*(thick#+2jut#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = 0; bot y3 = -d;
+pth1 := z1--z2..z3{-pdir};
+lft x6 = pcshiftx; top y6 = h;
+x8 = x1; y8 = y1;
+pth2 := z6{pdir}..{pdir}z8;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % stem
+draw pth2; % bar
+ductus:=false;
+penlabels(1,2,3,6,7,8,100);
+endchar; % end "J"
+
+cmchar "RTND letter K";
+beginchar("K", 2cap_sb#+caprat*hstretch*(7/8x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% stem
+n1 = h; % x-height
+lft x1=lft x2=pcshiftx+2jut;
+top y1=h; bot y2=0;
+lft x26 = pcshiftx; top y26 = h;
+x28 = x1; y28 = y1;
+pth22 := z26{pdir}..{pdir}z28;
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 1/2n1;
+rt x5=5/8[x1,w-pcshiftx]; top y5=n1;
+x4=1/2[x3,x5]; top y4=n1;
+pth1 := z3{pdir}..z5{up};
+%% lower arm
+pth2 := (rt x1,0)--(rt x1,h);
+z13 = pth1 intersectionpoint pth2;
+pickup threequarterquill;
+lft x14 = x13; bot y14 = y13;
+rt x7=w-pcshiftx; bot y7=0;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % stem
+draw_roundserif(2,1,srad);
+draw pth22;
+draw pth1; % upper arm
+pickup threequarterquill;
+draw z14{-ppdir}..z7{right}; % lower arm
+pickup quill;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "K"
+
+cmchar "RTND letter L";
+beginchar("L", 2cap_sb#+caprat*hstretch*(thick#+5jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1= pcshiftx + 3jut; top y1=h;
+lft x2= pcshiftx; bot y2 =0;
+pth1 := z1{down}..{-pdir}z2;
+lft x6 = pcshiftx; top y6 = h;
+x8 = x1; y8 = y1;
+pth2 := z6{pdir}..{pdir}z8;
+x3 = x2; y3 = y2;
+rt x5 = w - pcshiftx; bot y5 = 0;
+pth3 := z3{pdir}..{pdir}z5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % stem
+draw pth2; % bar
+draw pth3; % foot
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "L"
+
+cmchar "RTND letter M";
+beginchar("M", 2cap_sb#+caprat*hstretch*(x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2'=x1; bot y2'=0;
+%% start of bowl
+x13=x1; y13=3/4h;
+%% bottom of left, right and middle stems
+rt x6' = w -pcshiftx - jut; y6'=y2';
+z4 = 1/2[z2',z6'];
+x6 = 1/2[x4,x6']; bot y6 = -thick;
+rt x2 = lft x4; bot y2 = 0;
+%% top of middle and right stems
+x3=x4; y3=y1;
+x5=x6'; y5=y13;
+%% top of bowls
+x14=2/3[x13,x3]; top y14 = h;
+x33=x4; y33=y13;
+x34=2/3[x33,x5]; y34 = y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z2..z13..{right}z14..z33{down}--z4;
+draw_roundserif(4,3,srad);
+%%draw z33{pdir}..z34{right}..z5{down}--z6;
+%%draw_roundserif(6,5,srad);
+draw z33{pdir}..z34{right}..z5{down}..{-pdir}z6; % rightmost
+ductus:=false;
+penlabels(1,2,2',3,4,5,6,6',7,8,9,13,14,33,34,100);
+endchar; % end "M"
+
+cmchar "RTND letter N";
+beginchar("N", 2cap_sb#+caprat*hstretch*(5/8x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+pickup quill;
+%% left stem
+lft x1=pcshiftx+jut; top y1=h;
+x2=x1; bot y2=0;
+x13=x1; y13=3/4h;
+%% right stem
+rt x4 = w-pcshiftx-jut; y4=y2;
+x3 = x4; y3 = y13;
+x14 = 2/3[x13,x3]; top y14 = h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % left stem
+draw_flatserif(1,2,srad);
+draw_roundserif(2,1,srad);
+draw z13{pdir}..z14{right}..z3{down}--z4;
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "N"
+
+cmchar "RTND letter O";
+beginchar("O", 2cap_sb#+caprat*hstretch*(7/8x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+pth1 := z2..z3..z4{left}.. tension 0.8 ..{up}z1..cycle;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "RTND letter P";
+beginchar("P", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+2jut;
+top y1=h; bot y2=0;
+%% bowl
+rt x5 = w-pcshiftx;
+x4=1/2[x1,x5]; top y4 = h;
+x6=x4; bot y6 = 5/16h;
+y5=1/2[y4,y6];
+x7 = x1; y7 = 1/2[y6,y5];
+lft x3 = pcshiftx; top y3 = y1;
+pth1 := z3{pdir}..z4..{down}z5..{left}z6..z7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw_roundserif(2,1,srad)
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "RTND letter Q";
+beginchar("Q", 2cap_sb#+caprat*hstretch*(7/8x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx-jut; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+pth1 := z2..z3..z4{left}.. tension 0.8 ..{up}z1..cycle;
+z5 = point 1.5 of pth1;
+rt x7 = w - pcshiftx; bot y7 = 0;
+pth2 := z5..{right}z7;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth2;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "Q"
+
+cmchar "RTND letter R";
+beginchar("R", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+2jut;
+top y1=h; bot y2=0;
+%% bowl
+rt x5 = w-pcshiftx;
+x4=1/2[x1,x5]; top y4 = h;
+x6=x4; bot y6 = 6/16h;
+y5=1/2[y4,y6];
+x7 = x1;
+y7 = y6;
+lft x3 = pcshiftx; top y3 = y1;
+pth1 := z3{pdir}..z4..{down}z5..{left}z6..z7;
+%% leg
+x16 = x6; y16 = y6;
+rt x18 = w - pcshiftx; bot y18 = 0;
+pth2 := z16..{right}z18;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw_roundserif(2,1,srad)
+draw pth1;
+draw pth2;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "R"
+
+
+cmchar "RTND letter S";
+beginchar("S", 2cap_sb#+caprat*hstretch*(7/8x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := cap_sb;
+pickup quill;
+
+z50=(1/2w, 1/2h);
+x60 = w-pcshiftx; z60 = z50 shifted (whatever*pdir);
+x40 = pcshiftx; z40 = z50 shifted (whatever*pdir);
+rt x5 = x50; top y5 = y50;
+z54 = (lft x5, bot y5);
+lft x6 = x50; bot y6 = y50;
+z56 = (rt x6, top y6);
+
+z1 = 1/2[z56,z60];
+x3 = 1/2[x5,x1]; top y3 = h;
+
+z10 = 1/2[z54,z40];
+x8 = x56;
+bot y8 = 0;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{ppdir}..z3..z1{-ppdir};
+
+draw z6..z8{left}..z10{ppdir};
+pickup stylus;
+draw z60--z10;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,17,20,26,27,28,40,50,54,56,60,100);
+endchar; % end "S"
+
+cmchar "RTND letter T";
+beginchar("T", 2cap_sb#+caprat*hstretch*(x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+%%top y1 = y3-n3; bot y2=y3+n3;
+y1 = y3-n3; y2=y3;
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+x3=1/2[x1,x2];
+lft x4 = pcshiftx + 1/8n1; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = pcshiftx + 3/4n1; top y6 = 1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{pdir}..z3..z2{pdir}; % bar
+draw z3--z5;
+draw_roundserif(5,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "T"
+
+cmchar "RTND letter U";
+beginchar("U", 2cap_sb#+caprat*hstretch*(5/8x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir};
+draw_flatserif(1,13,srad);
+draw_tstem(3,4,srad); % right stem
+draw_flatserif(3,4,srad);
+draw_roundserif(4,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "RTND letter V";
+beginchar("V", 2cap_sb#+caprat*hstretch*(3/4x_height#+jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x3=w-pcshiftx-jut; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+rt x23=w-pcshiftx; y23=3/4h;
+lft x26=x14; top y26=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}; % left stem
+draw_flatserif(1,13,srad);
+draw z14{pdir}..z23{up}..z26;
+
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "RTND letter W";
+beginchar("W", 2cap_sb#+caprat*hstretch*(x_height#+2jut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + jut; top y1 = h;
+x13=x1; y13=1/3h;
+rt x5=w-pcshiftx-jut; y5=y1;
+x6=x5; bot y6=0;
+z53=1/4[z6,z5]; % start of bowl
+z3 = 1/2[z1,z5];
+z33=(x3,y13);
+x14=1/3[x1,x3]; bot y14=0;
+x34=1/3[x3,x5]; y34=y14;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z13{down}..z14{right}..z33{pdir}; % left
+draw_flatserif(1,13,srad);
+draw z3--z33{down}..z34{right}..z53{pdir}; % middle
+draw_flatserif(3,33,srad);
+draw_tstem(5,6,srad); % right stem
+draw_flatserif(5,6,srad);
+draw_roundserif(6,5,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "RTND letter X";
+beginchar("X", 2cap_sb#+caprat*hstretch*(x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := cap_sb;
+pickup quill;
+n1 := w-2pcshiftx; % total width
+n2 := thick; % triangle side
+%% diag top left to bottom right
+lft x1=pcshiftx; bot y1=2/3h;
+x2=pcshiftx+1/7n1; top y2=h;
+x5=pcshiftx+11/14n1; bot y5=-1/4d;
+rt x6=pcshiftx+n1; top y6=1/6h;
+z25 = 1/3[z2,z5];
+pth1 := z2{right}..z5{right};
+z251 = point 1/3 of pth1;
+z252 = point 2/3 of pth1;
+%% diag bottom left to top right
+lft x10 = -w + 2pcshiftx; bot y10=-d;
+x50=x5; top y50=h;
+rt x60 = w -pcshiftx; bot y60=2/3h;
+x40=pcshiftx+8/14n1; y40=h;
+
+x150=x2; bot y150 = 0;
+lft x160 = pcshiftx; top y160=1/3h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z5{right}..z6; % top left to bottom right
+%%draw z10{1/2pdir}..z25..z50{right}..z60; % bottom left to top right
+draw z251..z50{right}..z60; % middle to top right
+draw z252..z150{left}..z160; % middle to bottom left
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "X"
+
+cmchar "RTND letter Y";
+beginchar("Y", 2cap_sb#+caprat*hstretch*(7/8x_height#),
+ caprat*x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + jut; top y1 = h;
+bot y3 = 0;
+%% right stem
+rt x5=w-pcshiftx; top y5 = h;
+lft x9=-1/2w; bot y9 = -d;
+pth1 := z9{right}..z5{up};
+pth2 := (0,y3)--(w,y3);
+z99 = pth1 intersectionpoint pth2;
+x3 = x99;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}..z3; % left stem
+draw_flatserif(1,3,srad);
+draw pth1; % right stem
+draw_flatserif(5,3,srad);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "RTND letter Z";
+beginchar("Z", 2cap_sb#+caprat*hstretch*(7/8x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+%%y1 = y12-n1; y2=y12+n1;
+top y1 = y12-n1; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+%% bottom bar ends
+bot y34 = 0;
+x3=x1; x4=x2;
+%%y3=y34-n1; y4=y34+n1;
+y3=y34-n1; bot y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+%% diagonal
+z5=z3;
+z6 = z2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2; % bars
+draw z5--z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,12,34,10o,10i,20o,20i,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rust10.mf b/Master/texmf-dist/fonts/source/public/bookhands/rust10.mf
new file mode 100644
index 00000000000..2f38518bb3a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rust10.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `rust10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RUST10.MF Roman Rustic at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RUST"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.2; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.9;
+
+ x_height#:=vstretch*carol_height#;
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ asc_height#:=6/5x_height#;
+ desc_depth#:=2/3thick#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(3/5x_height#);
+ cap_height#:=caprat*asc_height#; % height of caps
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+jutfudge:= 5/8;
+jut#:=jutstretch*jutfudge*thick#;
+hookjut#:=1/2jut#;
+footjut#:=2/20x_height#;
+extra_fhjut#:=1/3thick#;
+stem_offset#:=8/12thick#+thin#;
+srad:=0.5;
+wiggle:= 0.05;
+bowoff:= 0.05;
+ o#:=8/36pt#;
+
+pair thick_tltobr;
+thick_tltobr:=(-2,5);
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate rusttitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rust17.mf b/Master/texmf-dist/fonts/source/public/bookhands/rust17.mf
new file mode 100644
index 00000000000..0d89c5d900c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rust17.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `rust17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RUST17.MF Roman Rustic at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RUST"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.2; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.9;
+
+ x_height#:=vstretch*carol_height#;
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+ asc_height#:=6/5x_height#;
+ desc_depth#:=2/3thick#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(3/5x_height#);
+ cap_height#:=caprat*asc_height#; % height of caps
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+jutfudge:= 5/8;
+jut#:=jutstretch*jutfudge*thick#;
+hookjut#:=1/2jut#;
+footjut#:=2/20x_height#;
+extra_fhjut#:=1/3thick#;
+stem_offset#:=8/12thick#+thin#;
+srad:=0.5;
+wiggle:= 0.05;
+bowoff:= 0.05;
+ o#:=10/36pt#;
+
+pair thick_tltobr;
+thick_tltobr:=(-2,5);
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate rusttitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rust7.mf b/Master/texmf-dist/fonts/source/public/bookhands/rust7.mf
new file mode 100644
index 00000000000..be13d73f5d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rust7.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `rust7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RUST7.MF Roman Rustic at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RUST"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.2; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.9;
+
+ x_height#:=vstretch*carol_height#;
+ thickfudge:=1/6;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ asc_height#:=6/5x_height#;
+ desc_depth#:=2/3thick#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(3/5x_height#);
+ cap_height#:=caprat*asc_height#; % height of caps
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+jutfudge:= 5/8;
+jut#:=jutstretch*jutfudge*thick#;
+hookjut#:=1/2jut#;
+footjut#:=2/20x_height#;
+extra_fhjut#:=1/3thick#;
+stem_offset#:=8/12thick#+thin#;
+srad:=0.5;
+wiggle:= 0.05;
+bowoff:= 0.05;
+ o#:=5/36pt#;
+
+pair thick_tltobr;
+thick_tltobr:=(-2,5);
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate rusttitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustb10.mf
new file mode 100644
index 00000000000..ed47ef39767
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rustb10.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `rustb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RUSTB10.MF Roman Rustic Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RUSTB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.2; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.9;
+
+ x_height#:=vstretch*carol_height#;
+ thickfudge:=1/4.5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ asc_height#:=6/5x_height#;
+ desc_depth#:=2/3thick#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(3/5x_height#);
+ cap_height#:=caprat*asc_height#; % height of caps
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+jutfudge:= 5/8;
+jut#:=jutstretch*jutfudge*thick#;
+hookjut#:=1/2jut#;
+footjut#:=2/20x_height#;
+extra_fhjut#:=1/3thick#;
+stem_offset#:=8/12thick#+thin#;
+srad:=0.5;
+wiggle:= 0.05;
+bowoff:= 0.05;
+ o#:=8/36pt#;
+
+pair thick_tltobr;
+thick_tltobr:=(-2,5);
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate rusttitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustb17.mf
new file mode 100644
index 00000000000..b9e49188a56
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rustb17.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `rustb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RUSTB17.MF Roman Rustic Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RUSTB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.2; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.9;
+
+ x_height#:=vstretch*carol_height#;
+ thickfudge:=1/4.5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+ asc_height#:=6/5x_height#;
+ desc_depth#:=2/3thick#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(3/5x_height#);
+ cap_height#:=caprat*asc_height#; % height of caps
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+jutfudge:= 5/8;
+jut#:=jutstretch*jutfudge*thick#;
+hookjut#:=1/2jut#;
+footjut#:=2/20x_height#;
+extra_fhjut#:=1/3thick#;
+stem_offset#:=8/12thick#+thin#;
+srad:=0.5;
+wiggle:= 0.05;
+bowoff:= 0.05;
+ o#:=10/36pt#;
+
+pair thick_tltobr;
+thick_tltobr:=(-2,5);
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate rusttitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustb7.mf
new file mode 100644
index 00000000000..eee464aec59
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rustb7.mf
@@ -0,0 +1,80 @@
+%%
+%% This is file `rustb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% RUSTB7.MF Roman Rustic Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RUSTB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.2; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.9;
+
+ x_height#:=vstretch*carol_height#;
+ thickfudge:=1/4.5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ asc_height#:=6/5x_height#;
+ desc_depth#:=2/3thick#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(3/5x_height#);
+ cap_height#:=caprat*asc_height#; % height of caps
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+jutfudge:= 5/8;
+jut#:=jutstretch*jutfudge*thick#;
+hookjut#:=1/2jut#;
+footjut#:=2/20x_height#;
+extra_fhjut#:=1/3thick#;
+stem_offset#:=8/12thick#+thin#;
+srad:=0.5;
+wiggle:= 0.05;
+bowoff:= 0.05;
+ o#:=5/36pt#;
+
+pair thick_tltobr;
+thick_tltobr:=(-2,5);
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate rusttitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustdig.mf
new file mode 100644
index 00000000000..1df1062168f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rustdig.mf
@@ -0,0 +1,224 @@
+%%
+%% This is file `rustdig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "Rustic digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w/2;
+y1=h; y2=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem and foot
+draw_hserif(1,2,srad); % serif
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "1"
+
+cmchar "Rustic digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+rt x3=w-pcshiftx; y3=3/4h;
+x5=pcshiftx+extra_fhjut; bot y5=0;
+x6=w-pcshiftx-extra_fhjut; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..{-pdir}z5; % curve
+draw_squiggle(5,6,wiggle,srad); % foot
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "Rustic digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+lft x6=pcshiftx+extra_fhjut; x7=x6;
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw_rusticstem(1,2); % the stem
+draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "Rustic digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-footjut-extra_fhjut;
+y1=h; y2=0;
+x3=pcshiftx+extra_fhjut; y3=0.33h;
+x4=w-pcshiftx-extra_fhjut; y4=y3;
+x5=lft x3; y5=bot y3+thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem and foot
+%%draw_hserif(1,2,srad); % serif
+draw_squiggle(3,4,wiggle,srad); % squiggle
+pickup stylus;
+draw z5{pdir}..z1; % thin diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "Rustic digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x7=pcshiftx+extra_fhjut; bot y7=0;
+rt x1=w-pcshiftx-extra_fhjut; top y1=h;
+lft x2=pcshiftx+extra_fhjut; y2=y1;
+
+x3=x2; y3=0.5h;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=0.75w; bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_squiggle(2,1,wiggle,srad); % top squiggle
+draw z3{pdir}..z5{down}..{-pdir}z6; % curve
+draw_squiggle(7,6,wiggle,srad); % base
+pickup stylus;
+draw z2--z3; % vertical
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "Rustic digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "6"
+
+cmchar "Rustic digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=pcshiftx+extra_fhjut;
+x2=w-pcshiftx-extra_fhjut;
+top y1=top y2=h;
+rt x4=w-pcshiftx-3thin; bot y4=0;
+x3=0.5[x2,x4]-2thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_squiggle(1,2,wiggle,srad);
+draw z2..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "Rustic digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx-o; rt x3=w-pcshiftx; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2;
+x11=x1+o; x13=x3+o; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "Rustic digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "Rustic digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustl.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustl.mf
new file mode 100644
index 00000000000..516cd499189
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rustl.mf
@@ -0,0 +1,637 @@
+%%
+%% This is file `rustl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "Rustic letter a";
+beginchar("a", 2u#+hstretch*(4/5x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+z1-z2=whatever*thick_tltobr;
+top y1=h;
+rt x2=w-pcshiftx-jut; bot y2=0;
+z3=9/10[z2,z1];
+x4=pcshiftx+footjut+extra_fhjut; bot y4=0;
+x7=x4; y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % right leg
+draw_bow(3,4,bowoff); % left leg
+draw_foot(7); % left leg foot
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "a"
+
+cmchar "Rustic letter b";
+beginchar("b", 2u#+hstretch*(7/10x_height#), 11/10x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+hookjut+thin;
+pickup quill;
+x1=x2=pcshiftx;
+y1=h; y2=0;
+rt x3=x1; bot y3=thin;
+rt x5=w-u; y5 = 1/6h;
+x4=0.4[x2,x5]; y4=0;
+lft x6=x2; y6=2/3h;
+z7=z6;
+x8=0.25[x4,x5]; top y8=y1;
+x9=0.5[x1,x8]; bot y9=h;
+z10=z1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % the stem
+draw z3..z4{right}..z5..{dir(pangle+90)}z6; % bottom bowl
+draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "b"
+
+cmchar "Rustic letter c";
+beginchar("c", 2u#+hstretch*(3/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+rt x5= rt x6=w-pcshiftx;
+top y5=1/5h;
+top y6=4/5h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "c"
+
+cmchar "Rustic letter d";
+beginchar("d", 2u#+hstretch*(3/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+hookjut+thin;
+top y1=h; y2=0;
+rt x3=x1; bot y3=thin;
+rt x5=w-u; y5 = 2/5h;
+x4=0.4[x2,x5]; y4=0;
+x6=x1; top y6=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % stem
+draw z3..z4{right}..z5{up}..z6; % bowl
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,100);
+endchar; % end "d"
+
+cmchar "Rustic letter e";
+beginchar("e", 2u#+hstretch*(4/10x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+top y1=h; y2=0;
+rt x3=x1; x4=w-u;
+top y3=top y4=h;
+x5=x3; x6=x4;
+y5=y6=3/5h;
+x7=x3; x8=x4;
+bot y7= bot y8=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % stem
+draw_squiggle(3,4,wiggle,srad); % top bar
+draw_squiggle(5,6,wiggle,srad); % middle bar
+draw_squiggle(7,8,wiggle,srad); % bottom bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "e"
+
+cmchar "Rustic letter f";
+beginchar("f", 2u#+hstretch*(4/10x_height#), 6/5x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u +stem_offset;
+pickup quill;
+x1=x2=pcshiftx;
+top y1=h; y2=0;
+x3=x1; x4=w-u;
+top y3=top y4=h;
+x5=x3; x6=x4;
+y5=y6=2/3h;
+x7=x3; x8=x4;
+bot y7= bot y8=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem
+draw_squiggle(3,4,wiggle,srad); % top bar
+draw_squiggle(5,6,wiggle,srad); % middle bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "f"
+
+cmchar "Rustic letter g";
+beginchar("g", 2u#+hstretch*(3/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+rt x5= rt x6=w-pcshiftx;
+top y5=1/5h;
+top y6=4/5h;
+lft x7=w/2; y7=h/2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z7..z5{down}..{left}z4..z1..z2..z6; % the bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "g"
+
+cmchar "Rustic letter h";
+beginchar("h", 2u#+hstretch*(4/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = sqyside/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+y1=h; y2=0;
+y5=y6=7/10h;
+lft x5=pcshiftx; rt x6=w-pcshiftx;
+rt x7=w-pcshiftx; top y7=h;
+x8=x7; bot y8=0;
+x9=x8-2thin; y9=0.5[y8,y7];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % left stem
+draw_hserif(1,2,srad); % its serif
+draw_squiggle(5,6,wiggle,srad); % the bar
+draw z7..z9..z8; % right stem
+ductus:=false;
+penlabels(1,1',2,2',3,4,5,6,7,7',8,8',99,99',100);
+endchar; % end "h"
+
+cmchar "Rustic letter i";
+beginchar("i", 2u#+hstretch*(2footjut#+hookjut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+y1=h; y2=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem and foot
+draw_hserif(1,2,srad); % serif
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "i"
+
+cmchar "Rustic letter j";
+beginchar("j", 4u#+hstretch*(3/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := 3u;
+pickup quill;
+x1=x2=pcshiftx+2/3(w-4u);
+y1=h; y2=0;
+rt x4=w-u; top y4=h;
+x1-x3 = x4-x1; y3=y4;
+rt x5 = lft x3;
+top y5=2/5h;
+x7=x2; bot y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % stem
+draw_squiggle(3,4,wiggle,srad); % top bar
+draw z7{left}..{pdir}z5; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "j"
+
+cmchar "Rustic letter k";
+beginchar("k", 2u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+y1=h; y2=0;
+lft x13=pcshiftx; bot y13=0;
+x2-x13=x14-x2; y14=y13;
+x3=x1; y3=h/2;
+x4=x1+y3; top y4=h;
+x5=x4-jut; x6-x4=x4-x5;
+top y5=top y6=h;
+x24=x4; y24=h;
+lft x7=x3; bot y7=y3;
+rt x9=w-pcshiftx; bot y9=0;
+x8=0.5[x7,x9]; y8=0.7[y7,y9];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % the stem
+draw_hserif(1,2,srad); % its serif
+draw z3--z4; % upper diagonal
+draw_head(24);
+draw z7..z8..z9; % bottom leg
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "k"
+
+cmchar "Rustic letter l";
+beginchar("l", 2u#+hstretch*(1/2x_height#), 6/5x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+hookjut;
+pickup quill;
+x1=x2=pcshiftx+thin+hookjut;
+y1=h; y2=0;
+rt x3=x1; rt x4=w-u;
+bot y3= bot y4=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % stem
+draw_hserif(1,2,srad); % serif
+draw_squiggle(3,4,wiggle,srad); % foot
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "Rustic letter m";
+beginchar("m", 2u#+hstretch*(6/5x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+z11-z12=whatever*thick_tltobr;
+rt x12=w-pcshiftx-jut; bot y12=0;
+top y11=h;
+pickup bowpen;
+x4=pcshiftx+footjut+extra_fhjut; bot y4=thin;
+z3=9/10[z2,z1];
+pickup quill;
+x7=x4; y7=0; % for the foot
+z13=9/10[z12,z11];
+z3-z4=z13-z14; y4=y14;
+z1-z2=z11-z12; % y2=y12;
+x12-x2=1/3w;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % right leg
+draw_bow(3,4,bowoff); % left leg
+draw_foot(7); % left leg foot
+draw_istem(11,12,srad);
+draw_bow(13,14,bowoff);
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,13,14,100);
+endchar; % end "m"
+
+cmchar "Rustic letter n";
+beginchar("n", 2u#+hstretch*(9/10x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+y1=h; y2=0;
+x5=x6=w-u-hookjut-thin;
+y5=y1; y6=y2;
+x7=x1; y7=h;
+x9=x6; bot y9=0;
+x8=0.5[x7,x9]; y8=0.6[y7,y9];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % left stem
+draw_rusticstem(5,6); % right stem
+draw_hserif(5,6,srad); % its serif
+draw z7..z8..z9; % diagonal
+draw_serif(9,8,srad); % its bottom serif
+ductus:=false;
+penlabels(1,2,5,6,7,8,9,100);
+endchar; % end "n"
+
+cmchar "Rustic letter o";
+beginchar("o", 2u#+hstretch*(3/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "o"
+
+cmchar "Rustic letter p";
+beginchar("p", 2u#+hstretch*(5/10x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+top y1=h; y2=0;
+lft x7=x2; y7=1/2h; % y7=2/3h;
+rt x8=w-pcshiftx; top y8=y1;
+z10=z1;
+x9=0.5[x1,x8]; y9=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem
+draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,7,8,9,10,100);
+endchar; % end "p"
+
+cmchar "Rustic letter q";
+beginchar("q", 2u#+hstretch*(3/5x_height#), x_height#, 2/3thick#);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+path p;
+p = z4{right}..{up}z3;
+z5 = directionpoint pdir of p;
+x7= x4+w/2; top y7=0;
+x6=0.5[x5,x7]; y6=y7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle; % O shape
+draw z5..z6..z7; % the tail
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,6',7,100);
+endchar; % end "q"
+
+cmchar "Rustic letter r";
+beginchar("r", 2u#+hstretch*(4/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha, beta;
+alpha:=thin*(xpart pdir); beta:=thin*(ypart pdir);
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+top y1=h; y2=0;
+lft x7=x2; bot y7=1/2h;
+rt x8=5/8w; top y8=y1;
+z10=z1;
+x9=0.5[x1,x8]; y9=h;
+z11=z7 shifted (thin*pdir);
+rt x13=w-pcshiftx; bot y13=0;
+x12=0.5[x11,x13]; y12=0.7[y11,y13];
+x11l=lft x11 + alpha; y11l=bot y11 + beta;
+x11r= rt x11 - alpha; y11r=top y11 - beta;
+x12l=0.6[lft x12, x12]; y12l=0.6[bot y12, y12];
+x12r=0.6[rt x12, x12]; y12r=0.6[top y12, y12];
+x14=w-pcshiftx-thin; y14=thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem and foot
+draw z7{pdir}..z8{up}..z9{left}..z10; % bowl
+pickup stylus; % drawing the leg
+filldraw z11l..z12l..{right}z14 & z14{left}..z12r..z11r--cycle;
+ductus:=false;
+penlabels(1,2,7,8,9,10,11,12,14,100);
+endchar; % end "r"
+
+cmchar "Rustic letter s";
+beginchar("s", 2u#+hstretch*(3/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x7=pcshiftx+extra_fhjut; bot y7=0;
+rt x1=w-pcshiftx; top y1=h-thin;
+lft x3=pcshiftx+extra_fhjut; y3=0.75h;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+x2=x4; top y2=h;
+x5=x1; y5=0.3h;
+x6=0.75w; bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4..z5{down}..{-pdir}z6; % S curve
+draw_squiggle(7,6,wiggle,srad); % base
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "s"
+
+cmchar "Rustic letter t";
+beginchar("t", 2u#+hstretch*(2/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w/2;
+y1=h; y2=0;
+lft x3=pcshiftx; top y3=h;
+rt x4=w-pcshiftx; y4=y3;
+rt x5=x2; bot y5= bot y6=0;
+rt x6=w-pcshiftx;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % the stem
+draw_squiggle(3,4,wiggle,srad); % the top crossbar
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "t"
+
+cmchar "Rustic letter u";
+beginchar("u", 2u#+hstretch*(4/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x5=x6=w-pcshiftx-hookjut-thin; y5=h; y6=-thin;
+lft x1= lft x2=pcshiftx+jut;
+top y1=h; y2=2thick;
+x3=0.5[x1,x5]; bot y3=0;
+rt x4=x5; bot y4=0.25thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(5,6); % right stem
+draw_hserif(5,6,srad); % its serif
+draw_tlserif(1,2,srad); % left stem and serif
+draw z2{down}..z3{right}..{pdir}z4; % the bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "u"
+
+cmchar "Rustic letter v";
+beginchar("v", 2u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+z1-z2=whatever*thick_tltobr;
+lft x1=pcshiftx+jut; top y1=h;
+bot y2=0;
+pickup bowpen;
+x3=w-pcshiftx-footjut-extra_fhjut; top y3=h;
+pickup quill;
+x4=lft x2; y4=0;
+x5=x3; y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % left part
+draw_bow(3,4,bowoff); % right part
+draw_head(5); % and its head
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "v"
+
+cmchar "Rustic letter w";
+beginchar("w", 2u#+hstretch*(8/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+z1-z2=whatever*thick_tltobr;
+lft x1=pcshiftx+jut; top y1=h; bot y2=0;
+pickup bowpen;
+x13=w-pcshiftx-footjut-extra_fhjut; top y13=h-thin;
+x23=x13; y23=h; % for the head
+bot y14=thin;
+pickup quill;
+z11-z12=z1-z2;
+x12-x2=1/3w; y12=y2;
+z3-z4=z13-z14;
+x4=x2;
+x14=x12;
+y3=y13;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % left and right thick diags
+draw_istem(11,12,srad);
+draw_bow(3,4,bowoff); % left thin diag
+draw_bow(13,14,bowoff); % right thin diag
+draw_head(23); % its head
+ductus:=false;
+penlabels(1,2,3,4,11,12,13,14,23,100);
+endchar; % end "w"
+
+cmchar "Rustic letter x";
+beginchar("x", 2u#+hstretch*(9/10x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+rt x2= w-pcshiftx-jut; bot y2=0;
+pickup bowpen;
+x3=w-pcshiftx-footjut-extra_fhjut-thin; top y3=h;
+x4=pcshiftx+footjut+extra_fhjut+thin; bot y4=0;
+x7=x3; y7=h;
+x8=x4; y8=0;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % thick diagonal
+draw_bow(3,4,bowoff); % thin diagonal
+draw_head(7); % its head
+draw_foot(8); % its foot
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "x"
+
+cmchar "Rustic letter y";
+beginchar("y", 2u#+hstretch*(4/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+x2=1/2w; bot y2=1/3h;
+pickup bowpen;
+x3=w-pcshiftx-footjut-extra_fhjut; top y3=h;
+lft x4=x2; bot y4=y2;
+pickup quill;
+x5=x3; y5=h;
+x7=x2; y7=y2;
+x8=x7; y8=0;
+pickup bowpen;
+x10=lft x8; x11=rt x8;
+pickup stylus;
+bot y10= bot y11=thin;
+pickup quill;
+%% ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % left stroke
+draw_bow(3,4,bowoff); % right stroke
+draw_head(5); % its head
+draw_foot(8); % the foot
+pickup stylus; % the leg
+filldraw z7--z10--z11--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,7,8,9,100);
+endchar; % end "y"
+
+cmchar "Rustic letter z";
+beginchar("z", 2u#+hstretch*(4/5x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x4=pcshiftx; bot y4=0;
+rt x6=w-pcshiftx; y6=y4;
+x1=x4; top y1=h;
+rt x3 =7/8w-pcshiftx; y3=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_squiggle(1,3,1/2wiggle,srad); % top stroke
+draw_squiggle(4,6,1/2wiggle,srad); % bottom stroke
+pickup stylus;
+draw z4--z3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustlig.mf
new file mode 100644
index 00000000000..0ad33e231d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rustlig.mf
@@ -0,0 +1,82 @@
+%%
+%% This is file `rustlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+
+cmchar "Rustic closing quotes";
+beginchar(oct"042",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Rustic opening quotes";
+beginchar(oct"134",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Rustic hyphen";
+beginchar("-",u#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+draw z1--z2; % bar
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "Rustic en dash";
+beginchar(oct"173",u#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+draw z1--z2; % bar
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Rustic em dash";
+beginchar(oct"174",u#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+draw z1--z2; % bar
+penlabels(1,2);
+endchar; % end of "---"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustpunct.mf
new file mode 100644
index 00000000000..c63dea25016
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rustpunct.mf
@@ -0,0 +1,78 @@
+%%
+%% This is file `rustpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Rustic Comma";
+beginchar(",",2u#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h/2;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Rustic Period";
+beginchar(".",2u#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=u;
+x1=w/2; y1=h/2;
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Rustic Colon";
+beginchar(":",2u#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=u;
+x1=x2=w/2; y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Rustic Semicolon";
+beginchar(";",2u#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Rustic Apostrophe";
+beginchar("'",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Rustic Reverse apostrophe";
+beginchar("`",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rusttitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/rusttitle.mf
new file mode 100644
index 00000000000..bd19f4afd4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rusttitle.mf
@@ -0,0 +1,297 @@
+%%
+%% This is file `rusttitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def rustic_font_setup=
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,cap_jut);
+ define_pixels(hookjut,footjut,stem_offset,extra_fhjut,fig_width);
+ define_whole_pixels(letter_fit);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated ((1/2(pangle+90)));
+ bowpen:=savepen;
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of rustic_font_setup
+
+boolean ductus;
+ductus:=false;
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_rusticstem(suffix $, $$)=
+ numeric alpha, beta; alpha:=0.5thick;
+ beta:=60; % the ending angle
+ pair rustic[];
+ xpart rustic1=x$$; ypart rustic1=y$$+alpha*sind(beta);
+ z$a=1/2[z$,rustic1];
+ z$b=2/3[z$,rustic1];
+ z$c=5/6[z$,rustic1];
+ z$d=rustic1;
+ z$ar=z$a shifted (alpha*up); z$al=z$a shifted (alpha*down);
+
+ rustic2:=z$b shifted (alpha*right);
+ z$br=rustic2 rotatedaround(z$b,1/4[90,beta]); z$bl=z$br rotatedaround(z$b,180);
+
+ rustic2:=z$c shifted (alpha*right);
+ z$cr=rustic2 rotatedaround(z$c,1/2[90,beta]); z$cl=z$cr rotatedaround(z$c,180);
+
+ rustic2:=z$d shifted (alpha*right);
+%% z$dr=rustic2 rotatedaround(z$d,60); z$dl=z$dr rotatedaround(z$d,180);
+ rustic3=rustic2 rotatedaround(z$d,beta);
+ x$dr=xpart rustic3; y$dr=ypart rustic3 - thin;
+ z$dl=z$dr rotatedaround(z$d,180);
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ draw z$--z$al;
+%% filldraw z$ar..z$br..z$cr..z$dr--z$dl..z$cl..z$bl..z$al--cycle;
+ filldraw z$ar..z$br..z$cr..z$dr--z$dl..z$bl..z$al--cycle;
+ pickup oldpen;
+%% labels($a,$al,$ar,$b,$bl,$br,$c,$cl,$cr,$dl,$dr);
+ labels($a,$b,$c,$d,$dl,$dr);
+enddef; % end of draw_rusticstem
+
+
+def draw_hserif(suffix $, $$)(expr fr)=
+ pen oldpen; oldpen:=currentpen;
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair rustic;
+ numeric tn, ang; ang:=70;
+ tn:=(sind ang)/(cosd ang);
+ x$g=x$-hookjut; y$g=y$-(hookjut*tn); % the tip
+ x$f=x$; y$f=y$g; % on the stem
+ pickup stylus;
+%% filldraw z$g{dir(ang)}..{down}z$f--z$--cycle;
+ draw z$g--z$;
+ pickup oldpen;
+ labels($f,$g);
+enddef; % end of draw_hserif
+
+
+def draw_footstem(suffix $, $$)=
+ draw_rusticstem($, $$);
+ x$$fl=x$dl; bot y$$fl= y$$;
+ x$$fr=x$$fl+2footjut; y$$fr=y$$fl;
+ draw_squiggle($$fl,$$fr,wiggle,srad);
+ labels($$fl,$$fr);
+enddef; % end of draw_footstem
+
+
+def draw_foot(suffix $)=
+ x$fl=x$-footjut; bot y$fl= y$;
+ x$fr-x$=x$-x$fl; y$fr=y$fl;
+ draw_squiggle($fl,$fr,wiggle,srad);
+ labels($fl,$fr);
+enddef; % end of draw_foot
+
+
+def draw_head(suffix $)=
+ x$hl=x$-footjut; top y$hl= y$;
+ x$hr-x$=x$-x$hl; y$hr=y$hl;
+ draw_squiggle($hl,$hr,wiggle,srad);
+ labels($hl,$hr);
+enddef; % end of draw_head
+
+
+def draw_bow(suffix $, $$)(expr fr)=
+ pen oldpen; oldpen:=currentpen;
+ z$bm=1/2[z$,z$$];
+ l:=length(z$-z$$);
+ bdir:=angle(z$-z$$);
+%% z$bo=z$bm shifted (fr*l*dir(bdir+90));
+ z$bo=z$bm shifted (fr*l*dir(bdir-90));
+ pickup bowpen;
+ draw z$..z$bo..z$$;
+ pickup oldpen;
+ labels($bm,$bo);
+enddef; % end of draw_bow
+
+
+def draw_squiggle(suffix $, $$)(expr w, fr)=
+ z$si=1/4[z$,z$$]; z$sii=3/4[z$,z$$];
+ l:=length(z$-z$$);
+ bdir:=angle(z$-z$$);
+%% z$sio=z$si shifted (w*l*dir(bdir+90));
+%% z$siio=z$sii shifted (w*l*dir(bdir-90));
+ z$sio=z$si shifted (w*l*dir(bdir-90));
+ z$siio=z$sii shifted (w*l*dir(bdir+90));
+ draw z$..z$sio..z$siio..z$$; % the squiggle
+%% draw_serif($,$$,fr);
+%% draw_serif($$,$,fr);
+ labels($sio,$siio);
+enddef; % end of draw_squiggle
+
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ if y$=y$$:
+ if x$<x$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif := false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+rustic_font_setup;
+
+
+input rustl; % normal letters
+input rustu; % capital letters
+input rustdig; % arabic digits
+input rustpunct; % punctuation
+input rustlig; % the several dashes
+%%%%input rustp; % ampersand and ?mark
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+%% ligtable "P": "T": "Y": "A" kern kk#;
+%% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi,
+%% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+%% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+%% "V" kern k#, "Y" kern k#;
+%% ligtable "A": if serifs: "R": fi
+%% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+%% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+%%ligtable "I": "I" kern -k#; % Richard III
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/rustu.mf b/Master/texmf-dist/fonts/source/public/bookhands/rustu.mf
new file mode 100644
index 00000000000..d202b10c96d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/rustu.mf
@@ -0,0 +1,637 @@
+%%
+%% This is file `rustu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% rustic.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "Rustic letter A";
+beginchar("A", 2u#+caprat*hstretch*(4/5x_height#+jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+z1-z2=whatever*thick_tltobr;
+top y1=h;
+rt x2=w-pcshiftx-jut; bot y2=0;
+z3=9/10[z2,z1];
+x4=pcshiftx+footjut+extra_fhjut; bot y4=0;
+x7=x4; y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % right leg
+draw_bow(3,4,bowoff); % left leg
+draw_foot(7); % left leg foot
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "A"
+
+cmchar "Rustic letter B";
+beginchar("B", 2u#+caprat*hstretch*(7/10x_height#), caprat*(11/10x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u+hookjut+thin;
+pickup quill;
+x1=x2=pcshiftx;
+y1=h; y2=0;
+rt x3=x1; bot y3=thin;
+rt x5=w-u; y5 = 1/6h;
+x4=0.4[x2,x5]; y4=0;
+lft x6=x2; y6=2/3h;
+z7=z6;
+x8=0.25[x4,x5]; top y8=y1;
+x9=0.5[x1,x8]; bot y9=h;
+z10=z1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % the stem
+draw z3..z4{right}..z5..{dir(pangle+90)}z6; % bottom bowl
+draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "B"
+
+cmchar "Rustic letter C";
+beginchar("C", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+rt x5= rt x6=w-pcshiftx;
+top y5=1/5h;
+top y6=4/5h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "C"
+
+cmchar "Rustic letter D";
+beginchar("D", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+hookjut+thin;
+top y1=h; y2=0;
+rt x3=x1; bot y3=thin;
+rt x5=w-u; y5 = 2/5h;
+x4=0.4[x2,x5]; y4=0;
+x6=x1; top y6=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % stem
+draw z3..z4{right}..z5{up}..z6; % bowl
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,100);
+endchar; % end "D"
+
+cmchar "Rustic letter E";
+beginchar("E", 2u#+caprat*hstretch*(4/10x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+top y1=h; y2=0;
+rt x3=x1; x4=w-u;
+top y3=top y4=h;
+x5=x3; x6=x4;
+y5=y6=3/5h;
+x7=x3; x8=x4;
+bot y7= bot y8=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % stem
+draw_squiggle(3,4,wiggle,srad); % top bar
+draw_squiggle(5,6,wiggle,srad); % middle bar
+draw_squiggle(7,8,wiggle,srad); % bottom bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "E"
+
+cmchar "Rustic letter F";
+beginchar("F", 2u#+caprat*hstretch*(4/10x_height#), caprat*(6/5x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u +stem_offset;
+pickup quill;
+x1=x2=pcshiftx;
+top y1=h; y2=0;
+x3=x1; x4=w-u;
+top y3=top y4=h;
+x5=x3; x6=x4;
+y5=y6=2/3h;
+x7=x3; x8=x4;
+bot y7= bot y8=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem
+draw_squiggle(3,4,wiggle,srad); % top bar
+draw_squiggle(5,6,wiggle,srad); % middle bar
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "F"
+
+cmchar "Rustic letter G";
+beginchar("G", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+rt x5= rt x6=w-pcshiftx;
+top y5=1/5h;
+top y6=4/5h;
+lft x7=w/2; y7=h/2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z7..z5{down}..{left}z4..z1..z2..z6; % the bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "G"
+
+cmchar "Rustic letter H";
+beginchar("H", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = sqyside/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+y1=h; y2=0;
+y5=y6=7/10h;
+lft x5=pcshiftx; rt x6=w-pcshiftx;
+rt x7=w-pcshiftx; top y7=h;
+x8=x7; bot y8=0;
+x9=x8-2thin; y9=0.5[y8,y7];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % left stem
+draw_hserif(1,2,srad); % its serif
+draw_squiggle(5,6,wiggle,srad); % the bar
+draw z7..z9..z8; % right stem
+ductus:=false;
+penlabels(1,1',2,2',3,4,5,6,7,7',8,8',99,99',100);
+endchar; % end "H"
+
+cmchar "Rustic letter I";
+beginchar("I", 2u#+caprat*hstretch*(2footjut#+hookjut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+y1=h; y2=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem and foot
+draw_hserif(1,2,srad); % serif
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "I"
+
+cmchar "Rustic letter J";
+beginchar("J", 4u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := 3u;
+pickup quill;
+x1=x2=pcshiftx+2/3(w-4u);
+y1=h; y2=0;
+rt x4=w-u; top y4=h;
+x1-x3 = x4-x1; y3=y4;
+rt x5 = lft x3;
+top y5=2/5h;
+x7=x2; bot y7=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % stem
+draw_squiggle(3,4,wiggle,srad); % top bar
+draw z7{left}..{pdir}z5; % bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "J"
+
+cmchar "Rustic letter K";
+beginchar("K", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+y1=h; y2=0;
+lft x13=pcshiftx; bot y13=0;
+x2-x13=x14-x2; y14=y13;
+x3=x1; y3=h/2;
+x4=x1+y3; top y4=h;
+x5=x4-jut; x6-x4=x4-x5;
+top y5=top y6=h;
+x24=x4; y24=h;
+lft x7=x3; bot y7=y3;
+rt x9=w-pcshiftx; bot y9=0;
+x8=0.5[x7,x9]; y8=0.7[y7,y9];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % the stem
+draw_hserif(1,2,srad); % its serif
+draw z3--z4; % upper diagonal
+draw_head(24);
+draw z7..z8..z9; % bottom leg
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "K"
+
+cmchar "Rustic letter L";
+beginchar("L", 2u#+caprat*hstretch*(1/2x_height#), caprat*(6/5x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u+hookjut;
+pickup quill;
+x1=x2=pcshiftx+thin+hookjut;
+y1=h; y2=0;
+rt x3=x1; rt x4=w-u;
+bot y3= bot y4=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(1,2); % stem
+draw_hserif(1,2,srad); % serif
+draw_squiggle(3,4,wiggle,srad); % foot
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "L"
+
+cmchar "Rustic letter M";
+beginchar("M", 2u#+caprat*hstretch*(6/5x_height#+jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+z11-z12=whatever*thick_tltobr;
+rt x12=w-pcshiftx-jut; bot y12=0;
+top y11=h;
+pickup bowpen;
+x4=pcshiftx+footjut+extra_fhjut; bot y4=thin;
+z3=9/10[z2,z1];
+pickup quill;
+x7=x4; y7=0; % for the foot
+z13=9/10[z12,z11];
+z3-z4=z13-z14; y4=y14;
+z1-z2=z11-z12; % y2=y12;
+x12-x2=1/3w;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % right leg
+draw_bow(3,4,bowoff); % left leg
+draw_foot(7); % left leg foot
+draw_istem(11,12,srad);
+draw_bow(13,14,bowoff);
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,13,14,100);
+endchar; % end "M"
+
+cmchar "Rustic letter N";
+beginchar("N", 2u#+caprat*hstretch*(9/10x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+y1=h; y2=0;
+x5=x6=w-u-hookjut-thin;
+y5=y1; y6=y2;
+x7=x1; y7=h;
+x9=x6; bot y9=0;
+x8=0.5[x7,x9]; y8=0.6[y7,y9];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % left stem
+draw_rusticstem(5,6); % right stem
+draw_hserif(5,6,srad); % its serif
+draw z7..z8..z9; % diagonal
+draw_serif(9,8,srad); % its bottom serif
+ductus:=false;
+penlabels(1,2,5,6,7,8,9,100);
+endchar; % end "N"
+
+cmchar "Rustic letter O";
+beginchar("O", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "O"
+
+cmchar "Rustic letter P";
+beginchar("P", 2u#+caprat*hstretch*(5/10x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+top y1=h; y2=0;
+lft x7=x2; y7=1/2h; % y7=2/3h;
+rt x8=w-pcshiftx; top y8=y1;
+z10=z1;
+x9=0.5[x1,x8]; y9=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem
+draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,7,8,9,10,100);
+endchar; % end "P"
+
+cmchar "Rustic letter Q";
+beginchar("Q", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#,
+ caprat*(2/3thick#));
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+path p;
+p = z4{right}..{up}z3;
+z5 = directionpoint pdir of p;
+x7= x4+w/2; top y7=0;
+x6=0.5[x5,x7]; y6=y7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle; % O shape
+draw z5..z6..z7; % the tail
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,6',7,100);
+endchar; % end "Q"
+
+cmchar "Rustic letter R";
+beginchar("R", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha, beta;
+alpha:=thin*(xpart pdir); beta:=thin*(ypart pdir);
+pickup quill;
+x1=x2=pcshiftx+stem_offset;
+top y1=h; y2=0;
+lft x7=x2; bot y7=1/2h;
+rt x8=5/8w; top y8=y1;
+z10=z1;
+x9=0.5[x1,x8]; y9=h;
+z11=z7 shifted (thin*pdir);
+rt x13=w-pcshiftx; bot y13=0;
+x12=0.5[x11,x13]; y12=0.7[y11,y13];
+x11l=lft x11 + alpha; y11l=bot y11 + beta;
+x11r= rt x11 - alpha; y11r=top y11 - beta;
+x12l=0.6[lft x12, x12]; y12l=0.6[bot y12, y12];
+x12r=0.6[rt x12, x12]; y12r=0.6[top y12, y12];
+x14=w-pcshiftx-thin; y14=thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % stem and foot
+draw z7{pdir}..z8{up}..z9{left}..z10; % bowl
+pickup stylus; % drawing the leg
+filldraw z11l..z12l..{right}z14 & z14{left}..z12r..z11r--cycle;
+ductus:=false;
+penlabels(1,2,7,8,9,10,11,12,14,100);
+endchar; % end "R"
+
+cmchar "Rustic letter S";
+beginchar("S", 2u#+caprat*hstretch*(3/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x7=pcshiftx+extra_fhjut; bot y7=0;
+rt x1=w-pcshiftx; top y1=h-thin;
+lft x3=pcshiftx+extra_fhjut; y3=0.75h;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+x2=x4; top y2=h;
+x5=x1; y5=0.3h;
+x6=0.75w; bot y6=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4..z5{down}..{-pdir}z6; % S curve
+draw_squiggle(7,6,wiggle,srad); % base
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "S"
+
+cmchar "Rustic letter T";
+beginchar("T", 2u#+caprat*hstretch*(2/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w/2;
+y1=h; y2=0;
+lft x3=pcshiftx; top y3=h;
+rt x4=w-pcshiftx; y4=y3;
+rt x5=x2; bot y5= bot y6=0;
+rt x6=w-pcshiftx;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_footstem(1,2); % the stem
+draw_squiggle(3,4,wiggle,srad); % the top crossbar
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "T"
+
+cmchar "Rustic letter U";
+beginchar("U", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x5=x6=w-pcshiftx-hookjut-thin; y5=h; y6=-thin;
+lft x1= lft x2=pcshiftx+jut;
+top y1=h; y2=2thick;
+x3=0.5[x1,x5]; bot y3=0;
+rt x4=x5; bot y4=0.25thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_rusticstem(5,6); % right stem
+draw_hserif(5,6,srad); % its serif
+draw_tlserif(1,2,srad); % left stem and serif
+draw z2{down}..z3{right}..{pdir}z4; % the bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "U"
+
+cmchar "Rustic letter V";
+beginchar("V", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+z1-z2=whatever*thick_tltobr;
+lft x1=pcshiftx+jut; top y1=h;
+bot y2=0;
+pickup bowpen;
+x3=w-pcshiftx-footjut-extra_fhjut; top y3=h;
+pickup quill;
+x4=lft x2; y4=0;
+x5=x3; y5=h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % left part
+draw_bow(3,4,bowoff); % right part
+draw_head(5); % and its head
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "V"
+
+cmchar "Rustic letter W";
+beginchar("W", 2u#+caprat*hstretch*(8/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+z1-z2=whatever*thick_tltobr;
+lft x1=pcshiftx+jut; top y1=h; bot y2=0;
+pickup bowpen;
+x13=w-pcshiftx-footjut-extra_fhjut; top y13=h-thin;
+x23=x13; y23=h; % for the head
+bot y14=thin;
+pickup quill;
+z11-z12=z1-z2;
+x12-x2=1/3w; y12=y2;
+z3-z4=z13-z14;
+x4=x2;
+x14=x12;
+y3=y13;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % left and right thick diags
+draw_istem(11,12,srad);
+draw_bow(3,4,bowoff); % left thin diag
+draw_bow(13,14,bowoff); % right thin diag
+draw_head(23); % its head
+ductus:=false;
+penlabels(1,2,3,4,11,12,13,14,23,100);
+endchar; % end "W"
+
+cmchar "Rustic letter X";
+beginchar("X", 2u#+caprat*hstretch*(9/10x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+rt x2= w-pcshiftx-jut; bot y2=0;
+pickup bowpen;
+x3=w-pcshiftx-footjut-extra_fhjut-thin; top y3=h;
+x4=pcshiftx+footjut+extra_fhjut+thin; bot y4=0;
+x7=x3; y7=h;
+x8=x4; y8=0;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % thick diagonal
+draw_bow(3,4,bowoff); % thin diagonal
+draw_head(7); % its head
+draw_foot(8); % its foot
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "X"
+
+cmchar "Rustic letter Y";
+beginchar("Y", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+jut; top y1=h;
+x2=1/2w; bot y2=1/3h;
+pickup bowpen;
+x3=w-pcshiftx-footjut-extra_fhjut; top y3=h;
+lft x4=x2; bot y4=y2;
+pickup quill;
+x5=x3; y5=h;
+x7=x2; y7=y2;
+x8=x7; y8=0;
+pickup bowpen;
+x10=lft x8; x11=rt x8;
+pickup stylus;
+bot y10= bot y11=thin;
+pickup quill;
+%% ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % left stroke
+draw_bow(3,4,bowoff); % right stroke
+draw_head(5); % its head
+draw_foot(8); % the foot
+pickup stylus; % the leg
+filldraw z7--z10--z11--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,7,8,9,100);
+endchar; % end "Y"
+
+cmchar "Rustic letter Z";
+beginchar("Z", 2u#+caprat*hstretch*(4/5x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x4=pcshiftx; bot y4=0;
+rt x6=w-pcshiftx; y6=y4;
+x1=x4; top y1=h;
+rt x3 =7/8w-pcshiftx; y3=y1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_squiggle(1,3,1/2wiggle,srad); % top stroke
+draw_squiggle(4,6,1/2wiggle,srad); % bottom stroke
+pickup stylus;
+draw z4--z3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrc10.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrc10.mf
new file mode 100644
index 00000000000..350b7676912
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrc10.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `sqrc10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% SQRC10.MF Square Capitals at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="SQRC"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.3; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=5/3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ ascratio:=1.0;
+ asc_height#:=ascratio*x_height#;
+ descratio:=0;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+\sqrcjut# := 2cap_jutstretch*thin#;
+\sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate sqrctitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrc17.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrc17.mf
new file mode 100644
index 00000000000..532203686ab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrc17.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `sqrc17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% SQRC17.MF Square Capitals at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="SQRC"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.3; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=5/3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ ascratio:=1.0;
+ asc_height#:=ascratio*x_height#;
+ descratio:=0;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+\sqrcjut# := 2cap_jutstretch*thin#;
+\sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate sqrctitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrc7.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrc7.mf
new file mode 100644
index 00000000000..e3aec59e542
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrc7.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `sqrc7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% SQRC7.MF Square Capitals at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="SQRC"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.3; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=5/3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ ascratio:=1.0;
+ asc_height#:=ascratio*x_height#;
+ descratio:=0;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+\sqrcjut# := 2cap_jutstretch*thin#;
+\sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate sqrctitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb10.mf
new file mode 100644
index 00000000000..3f68b7376fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb10.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `sqrcb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% SQRCB10.MF Square Capitals Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="SQRCB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.3; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=5/3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ ascratio:=1.0;
+ asc_height#:=ascratio*x_height#;
+ descratio:=0;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+\sqrcjut# := 2cap_jutstretch*thin#;
+\sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate sqrctitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb17.mf
new file mode 100644
index 00000000000..6646fe34016
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb17.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `sqrcb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% SQRCB17.MF Square Capitals Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="SQRCB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.3; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.2;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=5/3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ ascratio:=1.0;
+ asc_height#:=ascratio*x_height#;
+ descratio:=0;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+\sqrcjut# := 2cap_jutstretch*thin#;
+\sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate sqrctitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb7.mf
new file mode 100644
index 00000000000..4636102d2de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcb7.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `sqrcb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% SQRCB7.MF Square Capitals Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="SQRCB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.3; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.2;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=5/3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/2u#; % unit for side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=10; % pen angle
+ ascratio:=1.0;
+ asc_height#:=ascratio*x_height#;
+ descratio:=0;
+ desc_depth#:=descratio*x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+\sqrcjut# := 2cap_jutstretch*thin#;
+\sqrcjutrat := 2;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate sqrctitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcdig.mf
new file mode 100644
index 00000000000..a252ff6bbfb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcdig.mf
@@ -0,0 +1,251 @@
+%%
+%% This is file `sqrcdig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "SQRC digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric n[];
+n1 := sqrcjut;
+pickup quill;
+x1=x2=w/2;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw z1--z2;
+draw (x1-n1,y1)--(x1,y1);
+draw (x2,y2)--(x2+n1,y2);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "SQRC digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+o; top y1=h-2thin;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx-o; y3=3/4h;
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+x6a = rt x6; y6a = y6;
+x6b = x6a; y6b = y6a+n2;
+x6c = x6a-n2; y6c=y6a;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..{-pdir}z5; % curve
+draw z5--z6; % foot
+pickup stylus;
+filldraw z6a--z6b{down}..{left}z6c--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "SQRC digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+%%lft x6=pcshiftx+3thin; x7=x6;
+x6=1/2[x3,x9]; x7=x6;
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+%%draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+draw z3..z4{right}..z5{up}...{left}z6; % bottom bowl
+draw z7{right}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "SQRC digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric n[];
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+pickup quill;
+rt x1= rt x2= w-pcshiftx-n1;
+top y1=h; bot y2=0;
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % vertical
+draw (x2,y2)--(x2+n1,y2);
+draw z3--z4; % horizontal
+draw z1--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "SQRC digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric n[];
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx; y2=y1;
+x3=x2; y3=0.5h+thin;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=w/2; bot y6=0;
+lft x7=pcshiftx; bot y7=2thin;
+x1a = rt x1; y1a = y1c = y1;
+x1b = x1a; y1b = y1a-n2;
+x1c = x1a-n2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % horizontal
+draw z2--z3; % vertical
+draw z3{pdir}..z5{down}..z6{left}..z7; % curve
+pickup stylus;
+%%filldraw z1a--z1b{up}..{left}z1c--cycle;
+filldraw z1a--z1c{right}..{down}z1b--cycle;
+ductus:=false;
+penlabels(1,1a,1b,1c,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "SQRC digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "6"
+
+cmchar "SQRC digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric n[];
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x1a = lft x1; y1a = y1c = y1;
+x1b = x1a; y1b = y1a-n2;
+x1c = x1a + n2;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % top bar
+draw z2..z3..z4;
+pickup stylus;
+filldraw z1a--z1b{up}..{right}z1c--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "SQRC digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "SQRC digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "SQRC digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcl.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcl.mf
new file mode 100644
index 00000000000..3136ef442eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcl.mf
@@ -0,0 +1,836 @@
+%%
+%% This is file `sqrcl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "SQRC letter a";
+beginchar("a", 2sb#+hstretch*(14/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% legs
+x1 = 6/16w; top y1=h;
+rt x3 = w-pcshiftx - n1; bot y3= 0;
+pickup thinquill;
+lft x2 = pcshiftx; bot y2 = 0;
+x21 = x2 + n2; y21 = y2;
+y22 = y21+n2; z22 = whatever[z2,z1];
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z3; draw (x1-n1,y1)--(x1,y1); draw (x3,y3)--(x3+n1,y3); %% right leg
+pickup thinquill;
+draw z1--z2; %% left leg
+filldraw z2--z21{left}..{z1-z2}z22--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+cmchar "SQRC letter b";
+beginchar("b", 2sb#+hstretch*(14/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% stem
+lft x1 = pcshiftx + n1; top y1 = h;
+x2 = x1; bot y2 = 0;
+z12 = 1/2[z1,z2];
+%% bottom bowl
+lft x21 = pcshiftx; bot y21 = 0;
+z22=z2;
+lft x27 = rt x12; y27 = y12;
+rt x25 = w-pcshiftx; y25 = 1/2[y22,y27];
+pth1 := z21--z22{right}..z25{up}..{left}z27;
+%% top bowl
+z32 = z27; z37 = z1;
+x38 = x21; y38 = y37;
+rt x35 = x25; y35 = 1/2[y32,y37];
+pth2 := z38--z37{right}..z35{down}..{left}z27;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw pth1; draw pth2;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "SQRC letter c";
+beginchar("c", 2sb#+hstretch*(14/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{3pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "SQRC letter d";
+beginchar("d", 2sb#+hstretch*(14/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0; n1 := rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx+sqrcjut; top y1=h;
+x2 = x1; bot y2 = 0;
+%% bowl
+lft x3 = pcshiftx; y3 = y1;
+z7 = (x3,y2);
+rt x5 = w-pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z1{right}..{down}z5..{left}z2--z7;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; %% stem
+draw pth1;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "SQRC letter e";
+beginchar("e", sb#+hstretch*(9/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 = rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx+sqrcjut; top y1 = h;
+x2 = x1; bot y2=0;
+%% bars
+lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4=y3;
+x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5;
+x7 = x3; y7 = y2; x8 = x4; y8=y7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw z3--z4; draw z5--z6; draw z7--z8;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,70,100);
+endchar; % end "e"
+
+cmchar "SQRC letter f";
+beginchar("f", 2sb#+hstretch*(9/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stem
+lft x1=lft x2=pcshiftx+sqrcjut; bot y1=h; bot y2=0;
+%% bars
+lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4 = y3;
+x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw z3--z4; draw z5--z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,14,15,16,100);
+endchar; % end "f"
+
+cmchar "SQRC letter g";
+beginchar("g", 2sb#+hstretch*(14/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% bar
+rt x52 = w - pcshiftx; y52 = 1/2h;
+x51 = x52 - 2n1; y51 = y52;
+z512 = 1/2[z51,z52];
+x54=x512; bot y54 = 0;
+%% bowl
+lft x2 = pcshiftx; y2 = 1/2h;
+x4 = x512; y4 = 1/4h;
+x3 = x1 = 1/2[x2,x4]; bot y3 = 0; top y1 = h;
+x24 = x512; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+%%draw z4--z512; draw z51--z52;
+draw z512--z54; draw (x512-n1,y512)--(x512,y512);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,24,31,32,33,34,35,36,51,52,512,100);
+endchar; % end "g"
+
+cmchar "SQRC letter h";
+beginchar("h", 2sb#+hstretch*(14/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+x100 = 0;
+n1 := sqrcjut;
+%% stems
+lft x1=lft x2=pcshiftx+sqrcjut;
+top y1=h; bot y2=0;
+rt x3 = w - pcshiftx - sqrcjut; x4 = x3; y3 = y1; y4 = y2;
+%% bar
+z12 = 7/16[z1,z2]; z34 = 7/16[z3,z4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4; draw z12--z34;
+%% serifs
+draw (x1-n1,y1)--(x1,y1); draw (x2,y2)--(x2+n1,y2);
+draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "SQRC letter i";
+beginchar("i", 2sb#+hstretch*(thick#+2sqrcjut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+x1 = x2 = 1/2w;
+top y1=h; bot y2=0;
+%% serifs
+lft x111 = pcshiftx; rt x112 = w-pcshiftx;
+x211 = x111; x212 = x112;
+draw z1--z2;
+%% serifs
+draw (x111,y1)--(x112,y1);
+draw (x211,y2)--(x212,y2);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "SQRC letter j";
+beginchar("j", 2sb#+hstretch*(2thick#+sqrcjut#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2 = x1; y2 = 1/4h;
+%% hook
+lft x4 = pcshiftx; bot y4 = 0;
+pth1 := z4{pdir}..z2{up};
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2{down}..{-pdir}z4; % stem & hook
+draw (x1-n1,y1)--z1;
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "SQRC letter k";
+beginchar("k", 2sb#+hstretch*(16/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% stem
+lft x1 = pcshiftx+n1; top y1 = h;
+x2 = x1; bot y2 = 0;
+z12 = 1/2[z1,z2];
+%% top arm
+x3 = rt x12; y3 = y12;
+x5 = 1/2[w - pcshiftx, x1]; y5 = y1;
+%%pth1 := z3{pdir}..{up}z5;
+pth1 := z3--z5;
+%% lower arm
+z7 = z3;
+rt x9 = w-pcshiftx; bot y9 = 0;
+pth2 := z7{-ppdir}..{right}z9;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1; draw pth2;
+draw (x1-n1,y1)--(x1,y1);
+draw (x2-n1,y2)--(x2+n1,y2);
+draw (x5,y5)--(x5+n1,y5);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+cmchar "SQRC letter l";
+beginchar("l", 2sb#+hstretch*(9/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+lft x1=pcshiftx+n1; bot y1=h;
+x2=x1; bot y2 =0;
+x3 = x2; rt x4 = w-pcshiftx; y3 = y4 = y2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4;
+draw (x1-n1,y1)--(x1,y1);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "SQRC letter m";
+beginchar("m", 2sb#+hstretch*(19/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% thick stem tops
+lft x1=pcshiftx+n1; top y1=h;
+rt x3 = w - pcshiftx -2n1; y3 = y1;
+%% right stem bottom
+rt x4 = w - pcshiftx - n1; bot y4 = 0;
+%% the V
+x24 = 1/2w; bot y24 = 0;
+%% left stem top and bottom
+x81 = lft x1; y81 = top y1;
+pickup thinquill;
+lft x11 = x81; top y11 = y81;
+lft x2 = pcshiftx; bot y2 = 0;
+x2a = x2+n2; y2a = y2;
+y2b = y2+n2; z2b = whatever[z2,z11];
+pickup quill;
+%% thin middle top and bottom
+x83 = lft x3; y83 = top y3;
+x824 = rt x24; y824 = bot y24;
+pickup thinquill;
+lft x13 = x83; top y13 = y83;
+rt x124 = x824; bot y124 = y824;
+pickup quill;
+pth124 := z1{-ppdir}..z24;
+pth34 := z3{down}..z4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%% thick legs
+draw pth124; draw pth34;
+draw (x1-n1,y1)--(x1,y1); draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4);
+%% thin legs
+pickup thinquill;
+draw z11--z2;
+filldraw z2--z2a{left}..{z11-z2}z2b--cycle;
+%%%%pickup quarterquill;
+ draw z13--z124;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "SQRC letter n";
+beginchar("n", 2sb#+hstretch*(14/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% diagonal
+lft x1=pcshiftx+n1; top y1=h;
+rt x4 = w -pcshiftx-n1; bot y4 = 0;
+x101 = lft x1;
+x104 = rt x4;
+pth1 := z1{-ppdir}..z4;
+%% stems
+pickup thinquill;
+lft x21 = x101; top y21 =h;
+x22 = x21; bot y22 = 0;
+x22a = x22+n2; y22a=y22;
+x22b = x22; y22b=y22+n2;
+rt x24 = x104; bot y24 = 0;
+x23 = x24; top y23 = h;
+x23a = x23-n2; x23b = x23+n1; y23a = y23b = y23;
+x23c = x23; y23c = y23-n2;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%% diagonal
+draw pth1; draw (x1-n1,y1)--(x1,y1);
+%% stems
+pickup thinquill;
+draw z21--z22;
+filldraw z22--z22a{left}..{up}z22b--cycle;
+draw z23--z24;
+filldraw z23--z23a{right}..{down}z23c{up}..{right}z23b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,23,23a,23b,23c,100);
+endchar; % end "n"
+
+cmchar "SQRC letter o";
+beginchar("o", 2sb#+hstretch*(17/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "SQRC letter p";
+beginchar("p", 2sb#+hstretch*(13/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1:= sqrcjut;
+%% stem
+lft x1=lft x2=pcshiftx+n1;
+top y1=h; bot y2=0;
+z12 = 1/2[z1,z2];
+%% bowl
+lft x3 = pcshiftx; y3 = y1;
+x7 = x12; top y7 = y12;
+rt x5 = w-pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z1{right}..z5{down}..{left}z7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1;
+%%draw (x2-n1,y2)--(x2+n1,y2);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "SQRC letter q";
+beginchar("q", 2sb#+hstretch*(17/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% bowl
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+pth1 := z1..z4..z3..z2..cycle;
+%% tail
+n1 := rt x1 - lft x1;
+pth2 := z1..z2..z3..z4;
+z5 = directionpoint pdir of pth1;
+x7 = x3 + 2n1; top y7 = -n1;
+pth3 := z5{-ppdir}..{pdir}z7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth3;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "SQRC letter r";
+beginchar("r", 2sb#+hstretch*(15/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1:= sqrcjut;
+n3 := sqrcjutrat*sqrcjut;
+n2 := 11/15; %% P/R width ratio
+%% stem
+pickup thinquill;
+lft x1=lft x2=pcshiftx+n1;
+top y1=h; bot y2=0;
+x2a = x2 + n3; y2a = y2;
+x2b = x2; y2b = y2+n3;
+z12 = 1/2[z1,z2];
+pickup quill;
+%% bowl
+lft x3 = pcshiftx; top y3 = h; x13 = x1; y13 = y3;
+lft x7 = x12; top y7 = y12;
+rt x5 = w*n2 - pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z13{right}..z5{down}..{left}z7;
+%% leg
+z21 = z7;
+rt x23 = w-pcshiftx; bot y23 = 0;
+pth2 := z21{-ppdir}..{right}z23;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2;
+pickup thinquill;
+draw z1--z2;
+filldraw z2--z2a{left}..{up}z2b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "SQRC letter s";
+beginchar("s", 2sb#+hstretch*(15/18x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+x1 = x3 = x5 = 1/2w;
+top y1 = h; bot y5 = 0; y3 = 1/2[y1,y5];
+lft x2 = pcshiftx; rt x4 = w-pcshiftx;
+y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5];
+rt x101 = w-pcshiftx; top y101 = y1;
+lft x102 = pcshiftx; bot y102 = y5;
+pth1 := z101..z1..z2..z3..z4..z5..z102;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "s"
+
+cmchar "SQRC letter t";
+beginchar("t", 2sb#+hstretch*(10/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% bar
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+top y1 = top y2 = h;
+pth1 := z1{pdir}..{pdir}z2;
+%% stem
+z3 = 1/2[z1,z2];
+x4 = x3; bot y4 = 0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % bar
+draw z3--z4; % stem
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "SQRC letter u";
+beginchar("u", 2sb#+hstretch*(15/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% left stem
+lft x1 = pcshiftx + n1; top y1 = h;
+lft x13=pcshiftx; y13=1/3h;
+rt x3=w-pcshiftx-n1; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+pth1 := z1..z13{down}..z14{right}..{pdir}z33;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw (x1-n1,y1)--(x1,y1);
+draw z3--z4;
+draw (x3-n1,y3)--(x3,y3);
+draw (x4,y4)--(x4+n1,y4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "SQRC letter v";
+beginchar("v", 2sb#+hstretch*(13/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% stem tops
+lft x1 = pcshiftx + n1; top y1 = h;
+pickup thinquill;
+rt x3 = w - pcshiftx; top y3 = h;
+x3a = x3-n2; y3a=y3;
+x3b = x3; y3b = y3-n2;
+pickup quill;
+%% bottom
+x13 = 10/16[x1,x3]; bot y13 = 0;
+x83 = rt x13; y83 = top y13;
+pth1 := z1{down}..z13;
+pth2 := z3{down}..z83;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw (x1-n1,y1)--(x1,y1);
+
+pickup thinquill;
+draw pth2;
+filldraw z3--z3a{right}..{down}z3b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "SQRC letter w";
+beginchar("w", 2sb#+hstretch*(22/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% thick leg tops
+lft x1 = pcshiftx + n1; top y1 = h;
+x3 = 1/2w; y3 = y1;
+%% thin leg top
+pickup thinquill;
+rt x5 = w-pcshiftx; top y5 = h;
+x5a = x5-n2; y5a = y5;
+x5b = x5; y5b = y5-n2;
+pickup quill;
+%% V bottoms
+x13 = 1/2[x1,x3]; bot y13 = 0;
+x35 = 1/2[x3,x5]; bot y35 = 0;
+pth113 := z1{down}..z13;
+pth335 := z3{down}..z35;
+x83 = x3; y83 = top y3;
+x813 = rt x13; y813 = bot y13;
+x835 = rt x35; y835 = bot y35;
+%% thin legs
+pickup thinquill;
+rt x113 = x813; bot y113 = y813;
+rt x135 = x835; bot y135 = y835;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+pickup quill;
+draw pth113; draw pth335; draw (x1-n1,y1)--(x1,y1);
+pickup thinquill;
+draw z113..{up}z3; draw z135..{up}z5;
+filldraw z5--z5a{right}..{down}z5b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "SQRC letter x";
+beginchar("x", 2sb#+hstretch*(17/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% diag top left to bottom right
+lft x1=pcshiftx+n1; top y1 = h;
+rt x2 = w - pcshiftx - n1; bot y2 = 0;
+%% diag top right to bottom left
+pickup thinquill;
+rt x3 = w - pcshiftx - n1; top y3 = h;
+lft x4 = pcshiftx; bot y4 = 0;
+x3a = x3-n2; x3b = x3+n1; y3a = y3b = y3;
+y3c = y3-n2; z3c = whatever[z3,z4];
+x4a = x4+n2; y4a = y4;
+y4b = y4+n2; z4b = whatever[z4,z3];
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw (x1-n1,y1)--(x1,y1);
+draw (x2,y2)--(x2+n1,y2);
+pickup thinquill;
+draw z3--z4;
+filldraw z3--z3a{right}..{z4-z3}z3c{z3-z4}..{right}z3b--cycle;
+filldraw z4--z4a{left}..{z3-z4}z4b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+cmchar "SQRC letter y";
+beginchar("y", 2sb#+hstretch*(13/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% upright
+x5 = 1/2w; y5 = 1/2h;
+x6 = x5; bot y6 = 0;
+%% left stem top
+lft x1 = pcshiftx + n1; top y1 = h;
+%% right stem
+x85 = rt x5; y85 = top y5;
+pickup thinquill;
+rt x3=w-pcshiftx; top y3 = h;
+x4=x85; y4 = y85;
+x3a=x3-n2; y3a = y3;
+y3b = y3-n2; z3b = whatever[z3,z4];
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5--z6; draw (x6-n1,y6)--(x6+n1,y6); % stem
+draw z1--z5; draw (x1-n1,y1)--(x1,y1); % left arm
+pickup thinquill;
+draw z3--z4;
+filldraw z3--z3a{right}..{z4-z3}z3b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "SQRC letter z";
+beginchar("z", 2sb#+hstretch*(13/13x_height#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+n1 := sqrcjutrat*sqrcjut;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+lft x1 = pcshiftx; rt x2 = w -pcshiftx; top y1 = top y2 = h;
+x101 = lft x1; y101 = top y1;
+%% bottom bar ends
+lft x3 = pcshiftx; rt x4 = w -pcshiftx; bot y3 = bot y4 = 0;
+x104 = rt x4; y104 = bot y4;
+pickup stylus;
+lft x11 = x101; top y11 = y101;
+x12 = x11; y12 = y11-n1;
+x13 = x11+n1; y13 = y11;
+rt x14 = x104; bot y14 = y104;
+x15 = x14; y15 = y14 + n1;
+x16 = x14 - n1; y16 = y14;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4;
+draw z2--z3;
+pickup stylus;
+filldraw z11--z12{up}..{right}z13--cycle;
+filldraw z14--z15{down}..{left}z16--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,14,14,16,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrclig.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrclig.mf
new file mode 100644
index 00000000000..8bafa316954
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrclig.mf
@@ -0,0 +1,142 @@
+%%
+%% This is file `sqrclig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),7/8asc_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),7/8asc_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*(8/13x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup threequarterquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+z31 = z21 shifted (-jut*pdir);
+draw z21--z22;
+draw z31--z21;
+draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*(10/13x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup threequarterquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+z31 = z21 shifted (-jut*pdir);
+draw z21--z22;
+%%draw_roundserif(21,22,srad);
+draw z31--z21;
+draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*(20/13x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+numeric alpha; alpha:=w/8;
+pickup threequarterquill;
+lft x21=pcshiftx+jut; rt x22=w-pcshiftx-jut; y21=y22=1/2h;
+z31 = z21 shifted (-jut*pdir);
+draw z21--z22;
+%%draw_roundserif(21,22,srad);
+draw z31--z21;
+draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "SQRC ampersand";
+beginchar("&", sb#+caprat*hstretch*(18/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 = sqrcjut;
+%%%% The E
+%% stem
+lft x1 = pcshiftx+n1; top y1 = h;
+x2 = x1; bot y2=0;
+%% bars
+lft x3 = pcshiftx; y3 = y1; rt x4 = 9/20w-pcshiftx; y4=y3;
+x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5;
+x7 = x3; y7 = y2; x8 = x4; y8=y7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw z3--z4; draw z5--z6; draw z7--z8;
+ductus:=false;
+%%%%%%%%% The T
+
+%% bar
+lft x11 = rt x4 + 2pcshiftx; rt x12=w-pcshiftx;
+top y11 = top y12 = h;
+pth1 := z11{pdir}..{pdir}z12;
+%% stem
+z13 = 1/2[z11,z12];
+x14 = x13; bot y14 = 0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % bar
+draw z13--z14; % stem
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,17,70,100);
+%%% end T
+endchar; % end "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcpunct.mf
new file mode 100644
index 00000000000..5c0faf14534
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcpunct.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `sqrcpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*(13/13x_height#),
+ 11/10x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x4 = x5; y4=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 2/3h;
+
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{down}..z4{down};
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=2/3h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),7/8asc_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),7/8asc_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrctitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrctitle.mf
new file mode 100644
index 00000000000..f9563229ad7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrctitle.mf
@@ -0,0 +1,710 @@
+%%
+%% This is file `sqrctitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def sqrcaps_font_setup= % contains special stuff for sqrcaps fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,clubjut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ define_pixels(sqrcjut);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+
+ pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+ threequarterquill := savepen;
+
+ pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+ halfquill := savepen;
+
+ pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+ quarterquill := savepen;
+
+ pickup pencircle xscaled 3/8thick yscaled thin rotated pangle; %% 1/4 too small
+ thinquill := savepen;
+
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of sqrcaps_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr);
+ undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+%%% z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-jut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (jut*pdir);
+ fi
+ z$b = fr[z$,z$c];
+ draw z$a--z$;
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+%% beta=1-fr;
+ ajut=clubjut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+%% vec2=ajut*vec1;
+%% z$a=z$ shifted vec2;
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-clubjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (clubjut*pdir);
+ fi
+ z$a = fr[z$,z$$];
+ draw z$c..z$a{vec1};
+ labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu{down}..{left}z$uv--z$vu{right}..{up}z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu{down}..{right}z$uv--z$vu{left}..{up}z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ path pth[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ penpos$wt(thick,pangle);
+ penpos$et(thick,pangle);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ penpos$nh(thick,pangle);
+ penpos$sh(thick,pangle);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ if pangle = 90:
+ z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+ else:
+ if pangle = 0:
+ z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+ else:
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ pt1 := z$minr - z$minl; % direction
+ pt2 := (- ypart pt1, xpart pt1); % perpendicular
+ pt3 := 1/2[z$minl, z$minr];
+ pt4 := pt3 shifted pt2;
+ pt5 := pt3 shifted -pt2;
+ pth1 := pt3--pt4;
+ pth2 := pt3--pt5;
+ z$maxr = pth1 intersectionpoint obfirst;
+ z$maxl = pth2 intersectionpoint obfirst;
+ \fi
+ \fi
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+sqrcaps_font_setup;
+
+
+input sqrcl; % lower case
+input sqrcu; % capitals
+input sqrcpunct; % punctuation
+input sqrclig; % the several dashes
+input sqrcdig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space vstretch*9u#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space vstretch*6u#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+
+fi
+
+bye.
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/sqrcu.mf b/Master/texmf-dist/fonts/source/public/bookhands/sqrcu.mf
new file mode 100644
index 00000000000..d74aaa40e0f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/sqrcu.mf
@@ -0,0 +1,836 @@
+%%
+%% This is file `sqrcu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% sqrcaps.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "SQRC letter A";
+beginchar("A", 2sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% legs
+x1 = 6/16w; top y1=h;
+rt x3 = w-pcshiftx - n1; bot y3= 0;
+pickup thinquill;
+lft x2 = pcshiftx; bot y2 = 0;
+x21 = x2 + n2; y21 = y2;
+y22 = y21+n2; z22 = whatever[z2,z1];
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z3; draw (x1-n1,y1)--(x1,y1); draw (x3,y3)--(x3+n1,y3); %% right leg
+pickup thinquill;
+draw z1--z2; %% left leg
+filldraw z2--z21{left}..{z1-z2}z22--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "A"
+
+cmchar "SQRC letter B";
+beginchar("B", 2sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% stem
+lft x1 = pcshiftx + n1; top y1 = h;
+x2 = x1; bot y2 = 0;
+z12 = 1/2[z1,z2];
+%% bottom bowl
+lft x21 = pcshiftx; bot y21 = 0;
+z22=z2;
+lft x27 = rt x12; y27 = y12;
+rt x25 = w-pcshiftx; y25 = 1/2[y22,y27];
+pth1 := z21--z22{right}..z25{up}..{left}z27;
+%% top bowl
+z32 = z27; z37 = z1;
+x38 = x21; y38 = y37;
+rt x35 = x25; y35 = 1/2[y32,y37];
+pth2 := z38--z37{right}..z35{down}..{left}z27;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw pth1; draw pth2;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "B"
+
+cmchar "SQRC letter C";
+beginchar("C", 2sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z24..z1{left}..z2{down}..z3{right}..z4{3pdir};
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "C"
+
+cmchar "SQRC letter D";
+beginchar("D", 2sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0; n1 := rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx+sqrcjut; top y1=h;
+x2 = x1; bot y2 = 0;
+%% bowl
+lft x3 = pcshiftx; y3 = y1;
+z7 = (x3,y2);
+rt x5 = w-pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z1{right}..{down}z5..{left}z2--z7;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; %% stem
+draw pth1;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "D"
+
+cmchar "SQRC letter E";
+beginchar("E", sb#+caprat*hstretch*(9/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 = rt x100 - lft x100;
+%% stem
+lft x1 = pcshiftx+sqrcjut; top y1 = h;
+x2 = x1; bot y2=0;
+%% bars
+lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4=y3;
+x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5;
+x7 = x3; y7 = y2; x8 = x4; y8=y7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; % stem
+draw z3--z4; draw z5--z6; draw z7--z8;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,70,100);
+endchar; % end "E"
+
+cmchar "SQRC letter F";
+beginchar("F", 2sb#+caprat*hstretch*(9/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+%% stem
+lft x1=lft x2=pcshiftx+sqrcjut; bot y1=h; bot y2=0;
+%% bars
+lft x3 = pcshiftx; y3 = y1; rt x4 = w-pcshiftx; y4 = y3;
+x5=x1; y5 = 6/16[y1,y2]; x6 = x4; y6 = y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw z3--z4; draw z5--z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,14,15,16,100);
+endchar; % end "F"
+
+cmchar "SQRC letter G";
+beginchar("G", 2sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% bar
+rt x52 = w - pcshiftx; y52 = 1/2h;
+x51 = x52 - 2n1; y51 = y52;
+z512 = 1/2[z51,z52];
+x54=x512; bot y54 = 0;
+%% bowl
+lft x2 = pcshiftx; y2 = 1/2h;
+x4 = x512; y4 = 1/4h;
+x3 = x1 = 1/2[x2,x4]; bot y3 = 0; top y1 = h;
+x24 = x512; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+%%draw z4--z512; draw z51--z52;
+draw z512--z54; draw (x512-n1,y512)--(x512,y512);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,24,31,32,33,34,35,36,51,52,512,100);
+endchar; % end "G"
+
+cmchar "SQRC letter H";
+beginchar("H", 2sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+x100 = 0;
+n1 := sqrcjut;
+%% stems
+lft x1=lft x2=pcshiftx+sqrcjut;
+top y1=h; bot y2=0;
+rt x3 = w - pcshiftx - sqrcjut; x4 = x3; y3 = y1; y4 = y2;
+%% bar
+z12 = 7/16[z1,z2]; z34 = 7/16[z3,z4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4; draw z12--z34;
+%% serifs
+draw (x1-n1,y1)--(x1,y1); draw (x2,y2)--(x2+n1,y2);
+draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "H"
+
+cmchar "SQRC letter I";
+beginchar("I", 2sb#+caprat*hstretch*(thick#+2sqrcjut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+x1 = x2 = 1/2w;
+top y1=h; bot y2=0;
+%% serifs
+lft x111 = pcshiftx; rt x112 = w-pcshiftx;
+x211 = x111; x212 = x112;
+draw z1--z2;
+%% serifs
+draw (x111,y1)--(x112,y1);
+draw (x211,y2)--(x212,y2);
+ductus:=false;
+penlabels(1,2,100);
+endchar; % end "I"
+
+cmchar "SQRC letter J";
+beginchar("J", 2sb#+caprat*hstretch*(2thick#+sqrcjut#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% stem
+rt x1 = w-pcshiftx; top y1 = h;
+x2 = x1; y2 = 1/4h;
+%% hook
+lft x4 = pcshiftx; bot y4 = 0;
+pth1 := z4{pdir}..z2{up};
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2{down}..{-pdir}z4; % stem & hook
+draw (x1-n1,y1)--z1;
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "J"
+
+cmchar "SQRC letter K";
+beginchar("K", 2sb#+caprat*hstretch*(16/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% stem
+lft x1 = pcshiftx+n1; top y1 = h;
+x2 = x1; bot y2 = 0;
+z12 = 1/2[z1,z2];
+%% top arm
+x3 = rt x12; y3 = y12;
+x5 = 1/2[w - pcshiftx, x1]; y5 = y1;
+%%pth1 := z3{pdir}..{up}z5;
+pth1 := z3--z5;
+%% lower arm
+z7 = z3;
+rt x9 = w-pcshiftx; bot y9 = 0;
+pth2 := z7{-ppdir}..{right}z9;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1; draw pth2;
+draw (x1-n1,y1)--(x1,y1);
+draw (x2-n1,y2)--(x2+n1,y2);
+draw (x5,y5)--(x5+n1,y5);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "K"
+
+cmchar "SQRC letter L";
+beginchar("L", 2sb#+caprat*hstretch*(9/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+lft x1=pcshiftx+n1; bot y1=h;
+x2=x1; bot y2 =0;
+x3 = x2; rt x4 = w-pcshiftx; y3 = y4 = y2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4;
+draw (x1-n1,y1)--(x1,y1);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "L"
+
+cmchar "SQRC letter M";
+beginchar("M", 2sb#+caprat*hstretch*(19/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% thick stem tops
+lft x1=pcshiftx+n1; top y1=h;
+rt x3 = w - pcshiftx -2n1; y3 = y1;
+%% right stem bottom
+rt x4 = w - pcshiftx - n1; bot y4 = 0;
+%% the V
+x24 = 1/2w; bot y24 = 0;
+%% left stem top and bottom
+x81 = lft x1; y81 = top y1;
+pickup thinquill;
+lft x11 = x81; top y11 = y81;
+lft x2 = pcshiftx; bot y2 = 0;
+x2a = x2+n2; y2a = y2;
+y2b = y2+n2; z2b = whatever[z2,z11];
+pickup quill;
+%% thin middle top and bottom
+x83 = lft x3; y83 = top y3;
+x824 = rt x24; y824 = bot y24;
+pickup thinquill;
+lft x13 = x83; top y13 = y83;
+rt x124 = x824; bot y124 = y824;
+pickup quill;
+pth124 := z1{-ppdir}..z24;
+pth34 := z3{down}..z4;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%% thick legs
+draw pth124; draw pth34;
+draw (x1-n1,y1)--(x1,y1); draw (x3-n1,y3)--(x3,y3); draw (x4,y4)--(x4+n1,y4);
+%% thin legs
+pickup thinquill;
+draw z11--z2;
+filldraw z2--z2a{left}..{z11-z2}z2b--cycle;
+%%%%pickup quarterquill;
+ draw z13--z124;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "M"
+
+cmchar "SQRC letter N";
+beginchar("N", 2sb#+caprat*hstretch*(14/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% diagonal
+lft x1=pcshiftx+n1; top y1=h;
+rt x4 = w -pcshiftx-n1; bot y4 = 0;
+x101 = lft x1;
+x104 = rt x4;
+pth1 := z1{-ppdir}..z4;
+%% stems
+pickup thinquill;
+lft x21 = x101; top y21 =h;
+x22 = x21; bot y22 = 0;
+x22a = x22+n2; y22a=y22;
+x22b = x22; y22b=y22+n2;
+rt x24 = x104; bot y24 = 0;
+x23 = x24; top y23 = h;
+x23a = x23-n2; x23b = x23+n1; y23a = y23b = y23;
+x23c = x23; y23c = y23-n2;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%% diagonal
+draw pth1; draw (x1-n1,y1)--(x1,y1);
+%% stems
+pickup thinquill;
+draw z21--z22;
+filldraw z22--z22a{left}..{up}z22b--cycle;
+draw z23--z24;
+filldraw z23--z23a{right}..{down}z23c{up}..{right}z23b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,23,23a,23b,23c,100);
+endchar; % end "N"
+
+cmchar "SQRC letter O";
+beginchar("O", 2sb#+caprat*hstretch*(17/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "SQRC letter P";
+beginchar("P", 2sb#+caprat*hstretch*(13/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1:= sqrcjut;
+%% stem
+lft x1=lft x2=pcshiftx+n1;
+top y1=h; bot y2=0;
+z12 = 1/2[z1,z2];
+%% bowl
+lft x3 = pcshiftx; y3 = y1;
+x7 = x12; top y7 = y12;
+rt x5 = w-pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z1{right}..z5{down}..{left}z7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw pth1;
+%%draw (x2-n1,y2)--(x2+n1,y2);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "SQRC letter Q";
+beginchar("Q", 2sb#+caprat*hstretch*(17/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% bowl
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+pth1 := z1..z4..z3..z2..cycle;
+%% tail
+n1 := rt x1 - lft x1;
+pth2 := z1..z2..z3..z4;
+z5 = directionpoint pdir of pth1;
+x7 = x3 + 2n1; top y7 = -n1;
+pth3 := z5{-ppdir}..{pdir}z7;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth3;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "Q"
+
+cmchar "SQRC letter R";
+beginchar("R", 2sb#+caprat*hstretch*(15/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1:= sqrcjut;
+n3 := sqrcjutrat*sqrcjut;
+n2 := 11/15; %% P/R width ratio
+%% stem
+pickup thinquill;
+lft x1=lft x2=pcshiftx+n1;
+top y1=h; bot y2=0;
+x2a = x2 + n3; y2a = y2;
+x2b = x2; y2b = y2+n3;
+z12 = 1/2[z1,z2];
+pickup quill;
+%% bowl
+lft x3 = pcshiftx; top y3 = h; x13 = x1; y13 = y3;
+lft x7 = x12; top y7 = y12;
+rt x5 = w*n2 - pcshiftx; y5 = 1/2[y3,y7];
+pth1 := z3--z13{right}..z5{down}..{left}z7;
+%% leg
+z21 = z7;
+rt x23 = w-pcshiftx; bot y23 = 0;
+pth2 := z21{-ppdir}..{right}z23;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2;
+pickup thinquill;
+draw z1--z2;
+filldraw z2--z2a{left}..{up}z2b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "R"
+
+cmchar "SQRC letter S";
+beginchar("S", 2sb#+caprat*hstretch*(15/18x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+path pth[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := rt x100 - lft x100;
+x1 = x3 = x5 = 1/2w;
+top y1 = h; bot y5 = 0; y3 = 1/2[y1,y5];
+lft x2 = pcshiftx; rt x4 = w-pcshiftx;
+y2 = 1/2[y1,y3]; y4 = 1/2[y3,y5];
+rt x101 = w-pcshiftx; top y101 = y1;
+lft x102 = pcshiftx; bot y102 = y5;
+pth1 := z101..z1..z2..z3..z4..z5..z102;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100);
+endchar; % end "S"
+
+cmchar "SQRC letter T";
+beginchar("T", 2sb#+caprat*hstretch*(10/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% bar
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+top y1 = top y2 = h;
+pth1 := z1{pdir}..{pdir}z2;
+%% stem
+z3 = 1/2[z1,z2];
+x4 = x3; bot y4 = 0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % bar
+draw z3--z4; % stem
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "T"
+
+cmchar "SQRC letter U";
+beginchar("U", 2sb#+caprat*hstretch*(15/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+%% left stem
+lft x1 = pcshiftx + n1; top y1 = h;
+lft x13=pcshiftx; y13=1/3h;
+rt x3=w-pcshiftx-n1; y3=y1;
+x4=x3; bot y4=0;
+z33=1/4[z4,z3]; % start of bowl
+x14=1/3[x1,x3]; bot y14=0;
+pth1 := z1..z13{down}..z14{right}..{pdir}z33;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw (x1-n1,y1)--(x1,y1);
+draw z3--z4;
+draw (x3-n1,y3)--(x3,y3);
+draw (x4,y4)--(x4+n1,y4);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "SQRC letter V";
+beginchar("V", 2sb#+caprat*hstretch*(13/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% stem tops
+lft x1 = pcshiftx + n1; top y1 = h;
+pickup thinquill;
+rt x3 = w - pcshiftx; top y3 = h;
+x3a = x3-n2; y3a=y3;
+x3b = x3; y3b = y3-n2;
+pickup quill;
+%% bottom
+x13 = 10/16[x1,x3]; bot y13 = 0;
+x83 = rt x13; y83 = top y13;
+pth1 := z1{down}..z13;
+pth2 := z3{down}..z83;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw (x1-n1,y1)--(x1,y1);
+
+pickup thinquill;
+draw pth2;
+filldraw z3--z3a{right}..{down}z3b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "SQRC letter W";
+beginchar("W", 2sb#+caprat*hstretch*(22/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% thick leg tops
+lft x1 = pcshiftx + n1; top y1 = h;
+x3 = 1/2w; y3 = y1;
+%% thin leg top
+pickup thinquill;
+rt x5 = w-pcshiftx; top y5 = h;
+x5a = x5-n2; y5a = y5;
+x5b = x5; y5b = y5-n2;
+pickup quill;
+%% V bottoms
+x13 = 1/2[x1,x3]; bot y13 = 0;
+x35 = 1/2[x3,x5]; bot y35 = 0;
+pth113 := z1{down}..z13;
+pth335 := z3{down}..z35;
+x83 = x3; y83 = top y3;
+x813 = rt x13; y813 = bot y13;
+x835 = rt x35; y835 = bot y35;
+%% thin legs
+pickup thinquill;
+rt x113 = x813; bot y113 = y813;
+rt x135 = x835; bot y135 = y835;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+pickup quill;
+draw pth113; draw pth335; draw (x1-n1,y1)--(x1,y1);
+pickup thinquill;
+draw z113..{up}z3; draw z135..{up}z5;
+filldraw z5--z5a{right}..{down}z5b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "SQRC letter X";
+beginchar("X", 2sb#+caprat*hstretch*(17/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+pcshiftx := sb;
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% diag top left to bottom right
+lft x1=pcshiftx+n1; top y1 = h;
+rt x2 = w - pcshiftx - n1; bot y2 = 0;
+%% diag top right to bottom left
+pickup thinquill;
+rt x3 = w - pcshiftx - n1; top y3 = h;
+lft x4 = pcshiftx; bot y4 = 0;
+x3a = x3-n2; x3b = x3+n1; y3a = y3b = y3;
+y3c = y3-n2; z3c = whatever[z3,z4];
+x4a = x4+n2; y4a = y4;
+y4b = y4+n2; z4b = whatever[z4,z3];
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2;
+draw (x1-n1,y1)--(x1,y1);
+draw (x2,y2)--(x2+n1,y2);
+pickup thinquill;
+draw z3--z4;
+filldraw z3--z3a{right}..{z4-z3}z3c{z3-z4}..{right}z3b--cycle;
+filldraw z4--z4a{left}..{z3-z4}z4b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "X"
+
+cmchar "SQRC letter Y";
+beginchar("Y", 2sb#+caprat*hstretch*(13/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+pickup quill;
+x100 = 0;
+n1 := sqrcjut;
+n2 := sqrcjutrat*sqrcjut;
+%% upright
+x5 = 1/2w; y5 = 1/2h;
+x6 = x5; bot y6 = 0;
+%% left stem top
+lft x1 = pcshiftx + n1; top y1 = h;
+%% right stem
+x85 = rt x5; y85 = top y5;
+pickup thinquill;
+rt x3=w-pcshiftx; top y3 = h;
+x4=x85; y4 = y85;
+x3a=x3-n2; y3a = y3;
+y3b = y3-n2; z3b = whatever[z3,z4];
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5--z6; draw (x6-n1,y6)--(x6+n1,y6); % stem
+draw z1--z5; draw (x1-n1,y1)--(x1,y1); % left arm
+pickup thinquill;
+draw z3--z4;
+filldraw z3--z3a{right}..{z4-z3}z3b--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "SQRC letter Z";
+beginchar("Z", 2sb#+caprat*hstretch*(13/13x_height#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+n1 := sqrcjutrat*sqrcjut;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+lft x1 = pcshiftx; rt x2 = w -pcshiftx; top y1 = top y2 = h;
+x101 = lft x1; y101 = top y1;
+%% bottom bar ends
+lft x3 = pcshiftx; rt x4 = w -pcshiftx; bot y3 = bot y4 = 0;
+x104 = rt x4; y104 = bot y4;
+pickup stylus;
+lft x11 = x101; top y11 = y101;
+x12 = x11; y12 = y11-n1;
+x13 = x11+n1; y13 = y11;
+rt x14 = x104; bot y14 = y104;
+x15 = x14; y15 = y14 + n1;
+x16 = x14 - n1; y16 = y14;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1--z2; draw z3--z4;
+draw z2--z3;
+pickup stylus;
+filldraw z11--z12{up}..{right}z13--cycle;
+filldraw z14--z15{down}..{left}z16--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,14,14,16,20o,20i,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgoth10.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgoth10.mf
new file mode 100644
index 00000000000..c2fe4a19f96
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgoth10.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgoth10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTH10.MF Gothic Textura Quadrata at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTH"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgoth17.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgoth17.mf
new file mode 100644
index 00000000000..8b5311f8b55
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgoth17.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgoth17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTH17.MF Gothic Textura Quadrata at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTH"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgoth7.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgoth7.mf
new file mode 100644
index 00000000000..50635efb9c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgoth7.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgoth7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTH7.MF Gothic Textura Quadrata at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTH"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf
new file mode 100644
index 00000000000..9c3bf6027a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothb10.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTHB10.MF Gothic Textura Quadrata Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTHB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0; %% normally 1.2
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf
new file mode 100644
index 00000000000..ec9bf3fce4d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothb17.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTHB17.MF Gothic Textura Quadrata Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTHB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0; %% normally 1.2
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf
new file mode 100644
index 00000000000..8643db5a04e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothb7.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `tgothb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% TGOTHB7.MF Gothic Textura Quadrata Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="TGOTHB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=7/5; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0; %% normally 1.2
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.3;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+ sb#:=1/4u#; % unit for side bearings
+
+ cap_sb#:=2sb#; % unit for uppercase side bearings
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=45; % pen angle
+stem_width#:= thick#*(cosd pangle);
+perpdec#:= 3thin#;
+angdec#:= perpdec#/(cosd pangle);
+ ascratio:=5/4;
+ asc_height#:=ascratio*x_height#;
+ descratio:=2/4;
+ desc_depth#:=descratio*x_height#;
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+%%%jutfudge:= 3/4;
+jutfudge:= 1/2;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.8; % was 0.5
+trijut#:=0.75jutstretch*thick#;
+clubjutfudge:=1/2;
+clubjut#:=jutstretch*clubjutfudge*thick#;
+wided:= 0.75;
+widedmin := 1.05 - wided;
+narrowd:= 0.5;
+narrowdmin := 0.7 - narrowd;
+diawd := 1.0;
+diang := 30;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(4+wided+widedmin)*stem_width#;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%%%%%%slant:= sind 10/cosd 10; %% 10 degree slant
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=5/4dot_size#;
+
+generate tgothtitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf
new file mode 100644
index 00000000000..74565d5117d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothdig.mf
@@ -0,0 +1,243 @@
+%%
+%% This is file `tgothdig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "TGOTH digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "TGOTH digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric st; st := stem_width;
+numeric n[];
+n1 := 1/2st;
+pickup quill;
+lft x1=pcshiftx+n1; top y1=h-2n1;
+rt x3=w-pcshiftx-n1; y3=3/4h;
+x2=1/2[x1,x3]; top y2= h;
+x5= lft x1; bot y5=0;
+x6= rt x3; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(5,6,thin); % foot
+draw z1--z2--z3--z5wl; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "TGOTH digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pcshiftx := u;
+pickup quill;
+%% top
+lft x1 = pcshiftx + n1; rt x3 = w - pcshiftx - n1;
+x2 = 1/2[x1,x3]; x4 = 1/2[x1,x2];
+top y2 = h; y3 = 12/16h;
+(z2-z1) = whatever*pdir;
+(z3-z4) = whatever*pdir;
+%% bottom
+x5 = 12/16[x4, rt x4]; x6 = x3; x7 = x2;
+x18 = x1-n1; x17 = x7;
+bot y7 = thin;
+y5 = 12/16[y4, top y4];
+(z5-z6) = whatever*(z2-z3);
+bot y18 = 0; bot y17 = 0;
+
+draw z1--z2--z3--z4; % top
+draw_wave(18,17,thin);
+draw z5--z6--z18wr; % bottom
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,17,18,100);
+endchar; % end "3"
+
+cmchar "TGOTH digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+numeric n[];
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-(wided+widedmin)*st;
+y1=h; y2=0;
+lft x3=pcshiftx; y3=7/16h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang); % stem
+draw z3--z4; % horizontal
+draw z1--z3; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "TGOTH digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric n[];
+numeric st; st := stem_width;
+n1 := st;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx+n1; y2=y1;
+x3=x2; y3=0.5h;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=1/2[thick,y3];
+x6=w/2; bot y6=0;
+%%x16 = 12/16[x3,x5];
+x16 = lft x5;
+bot y16 = 0;
+lft x17=pcshiftx; bot y17=0;
+z167 = 1/2[z16,z17];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(2,1,thin); % top squiggle
+draw z2wl--z3; % vertical
+%%draw_wave(17,16,thin); % foot
+draw z17{pdir}..{pdir}z16; % foot
+draw z3{pdir}..z5{down}..z16; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "TGOTH digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h - thick; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% head
+x11 = x5; top y11 = h;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x16 = x11; y16 = y11-thin;
+draw z6--z16;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "6"
+
+cmchar "TGOTH digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,2,thin); % top bar
+draw z1wr..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "TGOTH digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1= pcshiftx; rt x3=w-pcshiftx; top y1 = y3 = 3/4h;
+rt x2 = lft x4 = w/2; top y2=h; bot y4=0;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11 = bot y13 = 1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+draw z1--z2--z3--z11--z4--z13--cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "TGOTH digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = thick;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4[y4,y1];
+y3 = y5 = 1/4[y4,y1];
+%% bowl
+draw z1--z2--z3--z4--z5--z6--cycle;
+%% foot
+x11 = x5; bot y11 = 0;
+x12 = x2; y12 = y11;
+draw_wave(11,12,thin);
+x13 = x12; y13 = y12+thin;
+draw z3--z13;
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "9"
+
+cmchar "TGOTH digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := 24/16st;
+pickup quill;
+%% bottom left
+x1 = x4 = w/2; top y1 = h; bot y4 = 0;
+x2 = x3 = x1 + n1; x5 = x6 = x1 - n1;
+y2 = y6 = 3/4h;
+y3 = y5 = 1/4h;
+
+draw z1--z2--z3--z4--z5--z6--cycle;
+
+penlabels(1,2,3,4,5,6,12,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf
new file mode 100644
index 00000000000..957415d8f04
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothl.mf
@@ -0,0 +1,695 @@
+%%
+%% This is file `tgothl.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "TGOTH letter a";
+beginchar("a", 2sb#+hstretch*((3+widedmin+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pair pr[];
+pickup quill;
+%% left hand
+lft x1 = pcshiftx + widedmin*stem_width; y1 = 1/2h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% right stem
+rt x3 = w - pcshiftx - wided*stem_width; y3=h;
+x4=x3; y4=0;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,1.0,0.1,diawd,diang);
+draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
+%% swirl
+x11=rt x1; y11 = top y1;
+pickup stylus;
+draw z3d--z3c..{-ppdir}z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "a"
+
+cmchar "TGOTH letter b";
+beginchar("b", 2sb#+hstretch*((3 + widedmin + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1:=w-2pcshiftx; % actual letter width
+n2:=h/ascratio; % top of bowl
+%%ductus:=true;
+lft x1 = pcshiftx + widedmin*st; y1=h;
+x2 = x1; y2=0;
+z3=1/2[z1,z2];
+draw_upforkstem(1,3);
+draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
+lft x6 = x2c; bot y6 = y2c;
+x4 = x6; y4=n2;
+draw_updiamondstem(4,6,narrowd,narrowdmin,diawd,diang);
+x7 = x1; z7 = whatever[z4d,z4c];
+pickup stylus;
+draw z4d--z7;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "b"
+
+cmchar "TGOTH letter c";
+beginchar("c", 2sb#+hstretch*((3+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st;
+st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+z11-z2c = z2c - z2d;
+pickup stylus;
+draw z2d--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100);
+endchar; % end "c"
+
+cmchar "TGOTH letter d";
+beginchar("d", 2sb#+hstretch*((3+widedmin+narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+n1 = h/ascratio; % x-height
+%% left
+n2 := st*(cosd diang);
+lft x1 = pcshiftx + widedmin*st; top y1 = 12/16n1;
+x2=x1; y2=0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd,diang);
+%% right
+rt x3 = w-pcshiftx-narrowdmin*st; y3=h;
+x4 = x3; bot y4 = y2c;
+draw_updiamondstem(3,4, 2.0, narrowdmin, diawd,diang);
+x31 = lft x1; y31 = bot y1;
+x32 = rt x1; y32 = top y1;
+z33 = whatever[z31,z32] = whatever[z3e,z3c];
+pickup stylus;
+draw z31--z33;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "TGOTH letter e";
+beginchar("e", 2sb#+hstretch*((3+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st;
+st := stem_width;
+path pth[];
+pickup quill;
+%% left
+lft x1 = pcshiftx+wided*st; y1 = 3/4h;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top
+lft x3 = rt x1; bot y3 = top y1;
+rt x4 = w - pcshiftx;
+z3 - z4 = -whatever*ppdir;
+draw z3--z4;
+x5 = x1;
+z4-z5 = whatever*pdir;
+pickup stylus;
+draw z4--z5;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,17,27,34,70,100);
+endchar; % end "e"
+
+cmchar "TGOTH letter f";
+beginchar("f", 2sb#+hstretch*((3+widedmin)*stem_width#),
+ (asc_height#), 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+n1 := h/ascratio; % x-height
+%% stem
+lft x1=lft x2=pcshiftx+widedmin*st; y2=0; top y1 = h - (top y2 - bot y2);
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% top bar
+lft x3 = rt x1; rt x5 = w-pcshiftx; bot y3 = top y1; y5=y3;
+draw z3--z5;
+%% middle bar
+lft x7 = pcshiftx; rt x9 = x5;
+y7 = y9 = 10/16h;
+draw z7--z9;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,14,15,16,100);
+endchar; % end "f"
+
+cmchar "TGOTH letter g";
+beginchar("g", 2sb#+hstretch*((4)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+path pth[];
+pair vec[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% left
+lft x1 = pcshiftx;
+x2 = x1; bot y2 = 0; top y1 = h - (top y2 - bot y2);
+draw z1--z2;
+x3 = x4 = x1 + 2st; y4 = y2;
+lft x13 = rt x1; bot y13 = top y1;
+(z3-z13) = whatever*(dir -diang);
+draw z13--z3--z4;
+z34 = 1/2[z13,z3]; rt x37 = w-pcshiftx; top y37 = h;
+draw z34{right}..{pdir}z37;
+pickup stylus;
+bot y5 = -d;
+(z4-z5) = whatever*pdir;
+draw z4--z5;
+pickup quill;
+%% bottom loop
+z21 = z2;
+lft x25 = x5; bot y25=-d;
+x29 = 1/2[x3,x37];
+(z29-z21) = whatever*(dir -diang);
+x23 = x29; y23 = 1/2[y29,y25];
+draw z21{dir - diang}..z23{down}..{left}z25;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,31,32,33,34,35,36,100);
+endchar; % end "g"
+
+cmchar "TGOTH letter h";
+beginchar("h", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+numeric n[];
+n1 = h/ascratio;
+%% stem
+lft x1=lft x2=pcshiftx + narrowdmin*stem_width;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% bowl
+x3 = x1 + 2stem_width; x4 = x3;
+y3 = n1; y4=0;
+z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+x7 = x1; z7 = whatever[z3d,z3c];
+pickup stylus;
+draw z3d--z7;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "h"
+
+cmchar "TGOTH letter i";
+beginchar("i", 2sb#+hstretch*(2stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1 = x2 = 1/2w; y1 = h; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,1/2,1/2,diawd,diang);
+draw_downdiamondstem(12,2,1/2,1/2,diawd,diang);
+x3= x1-thin; bot y3 = h + 1/2stem_width;
+z4 = (x3+3thin,y3);
+pickup halfquill;
+draw z3--z4;
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "TGOTH letter j";
+beginchar("j", sb#+hstretch*(5/2stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% stem
+rt x1 = w-pcshiftx - 1/2stem_width; y1 = h;
+x2=x1; y2=-1/2d;
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_updiamondstem(1,2,narrowd,narrowdmin,diawd,diang);
+draw z2{down}..z3{-pdir}; % hook
+ductus:=false;
+penlabels(1,2,3,100);
+endchar; % end "j"
+
+cmchar "TGOTH letter k";
+beginchar("k", 2sb#+hstretch*((3 + narrowd + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h/ascratio; % x-height
+lft x1=lft x2=pcshiftx + narrowdmin*st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upforkstem(1,12);
+draw_downdiamondstem(12,2, narrowd, narrowdmin, diawd,diang);
+%% right leg
+x3 = x1 + 2st; y3 = 8/16n1;
+x4 = x3; y4 = 0;
+z34 = 1/2[z3,z4];
+draw_downdiamondstem(34,4, narrowd, narrowdmin, diawd,diang);
+draw z3--z34;
+lft x5 = rt x1;
+(z3-z5) = whatever*(dir -diang);
+draw z5--z3;
+
+%% top arm
+x6 = 1/2[x3, rt x3];
+(z6-z5) = whatever*(pdir);
+rt x8 = lft x5; top y8 = bot y5+thick;
+(z7-z8) = whatever*(z6-z5);
+(z7-z6)=whatver*(z5-z3);
+draw z6--z7;
+pickup stylus;
+draw z5--z6--z7--z8;
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,100);
+endchar; % end "k"
+
+cmchar "TGOTH letter l";
+beginchar("l", 2sb#+hstretch*((2 + widedmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+lft x1=pcshiftx + widedmin*st; y1=h;
+x2=x1; y2 =0;
+z3 = 1/2[z1,z2];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_upforkstem(1,3);
+draw_downdiamondstem(3,2,1.0,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "l"
+
+cmchar "TGOTH letter m";
+beginchar("m", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+wided*stem_width; y1 = y3 = y5 = h;
+x2=x1; y2=y4=y6=0;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% right stem
+rt x5 = rt x6 = w-pcshiftx-narrowd*stem_width;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56,wided,widedmin,diawd,diang);
+draw_downdiamondstem(56,6,narrowd,narrowdmin,diawd,diang);
+%% middle stem
+z3=1/2[z1,z5]; z4 = 1/2[z2,z6]; z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,33,34,100);
+endchar; % end "m"
+
+cmchar "TGOTH letter n";
+beginchar("n", 2sb#+hstretch*((3+wided+narrowd)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + wided*stem_width; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,narrowd,narrowdmin,diawd,diang);
+%% right stem
+rt x3 = w-pcshiftx - narrowd*stem_width; y3=y1;
+x4=x3;y4=y2;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,wided,widedmin,diawd,diang);
+draw_downdiamondstem(34,4,narrowd,narrowdmin,diawd,diang);
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "n"
+
+cmchar "TGOTH letter o";
+beginchar("o", 2sb#+hstretch*((3 + narrowdmin + narrowdmin)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bottom left
+lft x12 = pcshiftx + narrowdmin*st; y12 = 1/2h;
+x2 = x12; y2 = 0;
+draw_downdiamondstem(12,2, 1.0, narrowdmin, diawd,diang);
+%% right
+rt x3 = w - pcshiftx - narrowdmin*st; x4=x3;
+y3 = h; bot y4 = y2c;
+draw_updiamondstem(3,4, 1.0, narrowdmin, diawd,diang);
+%% top left
+x1 = x12; top y1 = y3c;
+draw z1--z12;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "o"
+
+cmchar "TGOTH letter p";
+beginchar("p", 2sb#+hstretch*((3 + wided + widedmin)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+wided*st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downforkstem(12,2);
+%% bowl
+x3 = x4 = x1 + 2st;
+y3 = y1; bot y4 = 0;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+lft x5 = pcshiftx; y5 = y4;
+draw z5--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "p"
+
+cmchar "TGOTH letter q";
+beginchar("q", 2sb#+hstretch*((3 + widedmin)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% left/bottom of bowl
+y99 = 0;
+lft x1 = pcshiftx +widedmin*st; top y1 = h - (top y99 - bot y99);
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin,diawd,diang);
+%% rest
+x3 = x1 + 2st; x4 = x3; y3 = y1; y4 = -d;
+lft x5 = rt x1; bot y5 = top y1;
+draw_downforkstem(3,4);
+draw z5--z3;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "q"
+
+cmchar "TGOTH letter r";
+beginchar("r", 2sb#+hstretch*((3+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx + wided*st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% bar
+lft x3 = rt x1; rt x4 = w-pcshiftx; top y3 = top y4 = h;
+draw z3--z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,100);
+endchar; % end "r"
+
+cmchar "TGOTH letter s";
+beginchar("s", 2sb#+hstretch*((4)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup stylus;
+%% the diagonal
+lft x2 = pcshiftx; bot y2 = 0;
+rt x1 = w-pcshiftx; top y1 = h;
+draw z1--z2;
+pickup quill;
+z211 = 13/32[z2,z1]; %% 10/32 too small, 16/32 too large
+z213 = 24/32[z2,z1]; %% 26/32 too large
+z212 = 1/2[z211,z213];
+%% bottom bowl
+lft x21 = x2; bot y21 = 0;
+rt x22 = w - pcshiftx; bot y22 = 0;
+x23 = x22; z24 = z212;
+(z24-z23) = whatever*(dir (180-diang));
+draw z21{pdir}..z22--z23--z24;
+%% top bowl
+z14 = z211; z11 = z213;
+lft x12 = lft x13 = pcshiftx;
+(z13-z14) = whatever*(dir (180-diang));
+(z12-z11) = whatever*(dir (180-diang));
+draw z11--z12--z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,12,13,14,15,16,17,20,21,22,23,24,25,26,27,28,100);
+endchar; % end "s"
+
+cmchar "TGOTH letter t";
+beginchar("t", 2sb#+hstretch*((2+1.0)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100);
+endchar; % end "t"
+
+cmchar "TGOTH letter u";
+beginchar("u", 2sb#+hstretch*((3+narrowd+wided)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+rt x3 = w - pcshiftx - wided*stem_width; y3=y1;
+x4=x3;y4=y2;
+z34=1/2[z3,z4];
+draw_updiamondstem(3,34,narrowd,narrowdmin,diawd,diang);
+draw_downdiamondstem(34,4,wided,widedmin,diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "u"
+
+cmchar "TGOTH letter v";
+beginchar("v", 2sb#+hstretch*((4 + narrowdmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+numeric n[]; numeric st;
+pcshiftx := sb;
+st := stem_width;
+n1 := h/ascratio; % x-height
+pickup quill;
+%% bottom left stem
+%% right and bottom left stems
+rt x23 = w - pcshiftx - narrowdmin*st; y23 = n1; x24=x23;
+x1 = x23 - 2st; y1 = 1/2n1;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2, 1.0, widedmin, diawd, diang);
+bot y24 = y2c;
+draw_updiamondstem(23, 24, narrowd, narrowdmin, diawd, diang);
+%% curly bit
+x11=x1; top y11 = h;
+lft x12 = pcshiftx; y12 = 1/2[y11,y1];
+draw z11{down}..z12{down}..{down}z1;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "v"
+
+cmchar "TGOTH letter w";
+beginchar("w", 2sb#+hstretch*((5+wided+narrowd)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+%% left stem
+lft x1 = pcshiftx + narrowd*stem_width; y1 = y3 = y5 = h;
+x2 = x1; y2 = y4 = y6 = 0;
+z12=1/2[z1,z2];
+draw_updiamondstem(1,12, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(12,2, wided, widedmin, diawd, diang);
+%% right stem
+rt x5 = w -pcshiftx-wided*stem_width; x6 = x5;
+z56 = 1/2[z5,z6];
+draw_updiamondstem(5,56, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(56,6, wided, widedmin, diawd, diang);
+%% middle stem
+z3 = 1/2[z1,z5]; z4 = 1/2[z2,z6]; z34 = 1/2[z3,z4];
+draw_updiamondstem(3,34, narrowd, narrowdmin, diawd, diang);
+draw_downdiamondstem(34,4, wided, widedmin, diawd, diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "w"
+
+cmchar "TGOTH letter x";
+beginchar("x", 2sb#+hstretch*((4)*stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := sb;
+pickup quill;
+%% upright
+x1 = 1/2w; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12, 1.5, widedmin,diawd,2/3diang);
+draw_downdiamondstem(12,2, 1.5, widedmin,diawd,2/3diang);
+%% top right bar
+lft x3 = rt x1; top y3 = h;
+rt x4 = w - pcshiftx; y4=y3;
+draw z3--z4;
+%% middle bar
+n1 := h-y3;
+lft x5 = pcshiftx; rt x6 = w - pcshiftx;
+y5 = 1/2h - n1; y6 = 1/2h;
+z56 = 1/2[z5,z6];
+draw z5{pdir}..z56..{pdir}z6;
+%% bottom left
+pickup stylus;
+lft x11 = pcshiftx; bot y11 = 0;
+draw z2e--z11;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,150,60,160,100);
+endchar; % end "x"
+
+cmchar "TGOTH letter y";
+beginchar("y", 2sb#+hstretch*((3 + narrowd+ narrowdmin)*stem_width#),
+ x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := sb;
+path pth[];
+numeric n[];
+numeric st; st = stem_width;
+pickup quill;
+%% right side
+rt x3 = w - pcshiftx - narrowdmin*st; y3 = h;
+x33 = x3; y33 = 0;
+%%draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+%% left side
+x1 = x3 - 2st; y1 = y3;
+x2 = x1; y2 = 0;
+n1 := top y2 - y2;
+draw_updiamondstem(1,2,narrowd,narrowdmin, diawd,diang);
+%% tail
+x11 = rt x2; y11 = top y2;
+x12 = lft x2; y12 = bot y2;
+pickup stylus;
+lft x14 = x1 - 2st; y14 = -d + n1;
+x15 = x14+n1; bot y15 = -d;
+z4 = whatever[z11,z12] = whatever[z3,z33];
+x10=x4; bot y10 = y4;
+draw z10--z11--z12..{down}z14..{-ppdir}z15;
+pickup quill;
+draw_updiamondstem(3,4,narrowd,narrowdmin, diawd,diang);
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,33,100);
+endchar; % end "y"
+
+cmchar "TGOTH letter z";
+beginchar("z", 2sb#+hstretch*(3stem_width#),
+ x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+%% bottom bar ends
+bot y34 = 0;
+x3=x1; x4=x2;
+%%y3=y34-n1; y4=y34+n1;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+%% centre bar
+z5 = 1/2[z1,z3]; z6 = 1/2[z2,z4]; z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2; draw pth3; % bars
+draw z2--z3;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf
new file mode 100644
index 00000000000..e377d6db054
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothlig.mf
@@ -0,0 +1,150 @@
+%%
+%% This is file `tgothlig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+%%%%ligtable "c": "t"=:oct"014";
+ligtable "s": "t"=:oct"015";
+
+
+cmchar "TGOTH st ligature";
+beginchar(oct"015", 2sb#+hstretch*((1 + narrowd + 3)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+n1 := h/ascratio; % x-height
+pickup quill;
+%% the S (long)
+lft x1 = pcshiftx + narrowd*st;
+x2 = x1; y2 = 0; y1 = h - (top y2 - bot y2);
+z12 = 1/2[z1,z2];
+draw_updiamondstem(1,12,narrowd, 1/4narrowdmin, diawd, diang);
+draw_downdiamondstem(12,2,narrowd, narrowdmin, diawd, diang);
+%% the T
+%% bar
+lft x23 = rt x1 + pcshiftx; top y23 = n1;
+rt x24 = w-pcshiftx; y24=y23;
+draw z23--z24;
+%% stem
+lft x21 = rt x23; top y21 = h;
+x22 = x21; y22 = 0;
+draw_downdiamondstem(21,22,narrowd,narrowdmin,diawd,diang);
+%% the ligature
+x11=x1; top y11=h;
+draw z12--z11--z21;
+ductus:=false;
+penlabels(1,2,3,4,5,11,21,22,23,24,100);
+%% end "t"
+endchar; %% end st ligature
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",2sb#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Hyphen";
+beginchar("-",sb#+hstretch*((2)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "En dash";
+beginchar(oct"173",sb#+hstretch*((3)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Em dash";
+beginchar(oct"174",sb#+hstretch*((6)*stem_width#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb/2;
+pickup threequarterquill;
+lft x21=pcshiftx; rt x22=w-pcshiftx; y21=y22=1/2h;
+draw z21--z22;
+%%draw_roundserif(21,22,srad); draw_flatserif(22,21,srad);
+penlabels(1,2);
+endchar; % end of "---"
+
+
+cmchar "TGOTH ampersand";
+beginchar("&", 2sb#+hstretch*((7/2)*stem_width#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% bar
+lft x3 = pcshiftx; top y1 = h;
+top y3 = bot y1;
+rt x4 = w-pcshiftx; y4=y3;
+draw z3--z4;
+%% stem
+lft x1 = rt x3;
+x2 = x1; y2 = 0;
+draw_downdiamondstem(1,2,wided,widedmin,diawd,diang);
+%% E bars
+n1 = 1/2[y3,y2a] + 1/2angdec;
+pickup halfquill;
+lft x11 = pcshiftx; rt x12 = w-pcshiftx;
+y11 = y12 = 1/2h;
+x13 = x11; x14=x12; y13 = y14 = n1-angdec;
+draw z11--z12;
+%%draw z13--z14;
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,13,14,100);
+endchar; % end "&"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf
new file mode 100644
index 00000000000..631c999abfc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothpunct.mf
@@ -0,0 +1,125 @@
+%%
+%% This is file `tgothpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation mark";
+beginchar("!", 2sb#+hstretch*(thick#+trijut#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+pickup quill;
+x1=w/2; top y1 = h;
+z3=(x1, 1/2dot_size);
+z2=(x1, y3+3/2dot_size);
+draw z1--z2;
+draw_pdot(3,dot_size);
+penlabels(1,2,3);
+
+endchar; % end of "!"
+
+
+cmchar "Question mark";
+beginchar("?", 2sb#+hstretch*((3+wided+widedmin)*stem_width#),
+ asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := sb;
+numeric n[];
+path pth[];
+pickup quill;
+n1 := w-2pcshiftx; % actual character width
+n2 := 1/3h; % height of top bowl
+n3 := n2; % height of bottom bowl
+z5=(1/2w,1/2dot_size);
+x45 = x5; y45=y5+3/2dot_size;
+lft x1 = pcshiftx; y1 = 3/4h;
+x2 = 1/2w; top y2 = h;
+rt x3 = w-pcshiftx; y3 = 11/16h;
+
+x4 = x45;
+(z3-z4) = whatever*pdir;
+
+%%ductus:= true;
+if ductus:
+ pickup stylus;
+fi
+%%draw z1..z2{right}..z3{down}..z4{down};
+draw z1--z2--z3--z4--z45;
+draw_pdot(5, dot_size);
+penlabels(1,2,3,4,45,5);
+endchar; % end of "?"
+
+
+cmchar "Comma";
+beginchar(",",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=1/2dot_size;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Period";
+beginchar(".",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+z1=(w/2, 1/2dot_size);
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Colon";
+beginchar(":",2sb#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=sb;
+x1=x2=w/2; y1=3/4h; y2=1/4h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Semicolon";
+beginchar(";",2sb#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=3/4h; y2=1/2dot_size;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Apostrophe";
+beginchar("'",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",2sb#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=sb;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf
new file mode 100644
index 00000000000..1aa2c111689
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothtitle.mf
@@ -0,0 +1,842 @@
+%%
+%% This is file `tgothtitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def tgothic_font_setup= % contains special stuff for tgothic fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,clubjut,cap_jut,trijut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit,sb,cap_sb);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ define_pixels(stem_width);
+ define_pixels(perpdec,angdec);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle scaled (1.5thin);
+ thickstylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+
+ pickup pencircle xscaled 3/4thick yscaled thin rotated pangle;
+ threequarterquill := savepen;
+
+ pickup pencircle xscaled 1/2thick yscaled thin rotated pangle;
+ halfquill := savepen;
+
+ pickup pencircle xscaled 1/4thick yscaled thin rotated pangle;
+ quarterquill := savepen;
+
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of tgothic_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_upforkstem(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ x$a=x$; top y$a = bot y$; % top of straight stem
+ draw z$a--z$$; % straight part
+ z$b = (rt x$, y$); z$c = (x$b, top y$a);
+ z$d = (lft x$, bot y$a); z$e = (x$d, y$);
+ pickup stylus;
+ rt x$cc = x$c; y$cc = y$c;
+ lft x$bb = x$b; y$bb = y$b;
+ lft x$dd = x$d; y$dd = y$d;
+ rt x$ee = x$e; y$ee = y$e;
+ filldraw z$a--z$bb..z$cc--cycle; % fork
+ filldraw z$a--z$dd..z$ee--cycle;
+ pickup oldpen;
+ labels($a,$b,$c,$d,$e);
+enddef; % end of draw_upforkstem
+
+
+def draw_downforkstem(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ x$$a=x$$; bot y$$a = top y$$; % bottom of straight stem
+ draw z$--z$$a; % straight part
+ z$$b = (rt x$$, y$$); z$$c = (x$$b, top y$$a);
+ z$$d = (lft x$$, bot y$$a); z$$e = (x$$d, y$$);
+ pickup stylus;
+ rt x$$cc = x$$c; y$$cc = y$$c;
+ lft x$$bb = x$$b; y$$bb = y$$b;
+ lft x$$dd = x$$d; y$$dd = y$$d;
+ rt x$$ee = x$$e; y$$ee = y$$e;
+ filldraw z$$a--z$$bb..z$$cc--cycle; % fork
+ filldraw z$$a--z$$dd..z$$ee--cycle;
+ pickup oldpen;
+ labels($$a,$$b,$$c,$$d,$$e);
+enddef; % end of draw_downforkstem
+
+
+def draw_upcurlstem(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ path curlp[]; numeric curln[];
+ x$a=x$; top y$a = y$; % top of straight stem
+ draw z$a--z$$; % straight part
+ curln1 := rt x$a - lft x$a; % stem width
+ x$b = x$a - 4/2curln1; y$b = y$a; % left jut
+ curlp1 := z$a{-pdir}..{left}z$b;
+ draw curlp1;
+
+ x$c = x$a-3curln1; top y$c = bot y$a-1/2curln1;
+ x$f = x$b; y$f = 1/3[y$c,y$b];
+ x$tb = rt x$b; y$tb = top y$b;
+ x$bb = lft x$b; y$bb = bot y$b;
+ curlp2 := z$tb--z$bb..{down}z$c..{ppdir}z$f;
+ pickup stylus;
+ draw curlp2;
+ pickup oldpen;
+ labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_upcurlstem
+
+
+def draw_updiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+ pen oldpen; oldpen:=currentpen;
+ numeric sj; sj := fr*stem_width; % jut distance
+ numeric sjr; sjr := minfr*stem_width; % right jut distance
+ numeric jw; jw := wd*stem_width; % jut width
+ %% $b is bottom left of jut, on LHS of stem
+ %% $c is leftmost point on jut
+ %% $d is topmost point on jut
+ %% $g is topmost point on stem
+ %% $e is on exprapolation of line from $d through $g
+ %% i.e., the rightmost point on jut
+ %% $f is on RHS of stem
+ pickup quill;
+ x$b = lft x$;
+ x$c = x$b - sj; y$c = y$ - jw*(cosd phi); % $c done
+ y$b = y$c - sj*(sind phi); % $b done
+ x$d = x$c + jw*(sind phi); y$d = y$; % $d done
+ x$g = x$f = rt x$;
+ y$g = y$ - (x$g-x$d)*(sind phi)/(cosd phi); % $g done
+ x$a = x$; top y$a = y$g; % $a done
+ x$e = x$g + sjr; z$e = whatever[z$d,z$g]; % $e done
+ z$f-z$e = whatever*(z$c-z$d); % $f done
+ x$h = x$b; y$h = bot y$a;
+ draw z$a--z$$; % straight part
+ pickup stylus;
+ lft x$cc = x$c; y$cc = y$c;
+ x$dd = x$d; top y$dd = y$d;
+ rt x$ee = x$e; bot y$ee=y$e;
+ filldraw z$b--z$cc--z$dd--z$ee--z$f--cycle; % diamond
+ if y$b > y$h:
+ lft x$hh = x$h; y$hh=y$h;
+ filldraw z$b--z$hh--z$g--cycle;
+ fi
+ pickup oldpen;
+ labels($a,$b,$c,$d,$e,$f);
+enddef; % end of draw_updiamondstem
+
+
+def draw_downdiamondstem(suffix $, $$)(expr fr, minfr, wd, phi)=
+ pen oldpen; oldpen:=currentpen;
+ numeric sj; sj := fr*stem_width; % (left) jut distance
+ numeric sjr; sjr := minfr*stem_width;; % right jut distance
+ numeric jw; jw := wd*stem_width; % jut width
+ %% $$b is top right of jut, on RHS of stem
+ %% $$c is rightmost point on jut
+ %% $$d is bottommost point on jut
+ %% $$g is bottommost point on stem
+ %% $$e is on exprapolation of line from $d through $g
+ %% i.e., the leftmost point on jut
+ %% $$f is on LHS of stem
+ pickup quill;
+ x$$b = rt x$$;
+ x$$c = x$$b + sj; y$$c = y$$ + jw*(cosd phi); % $$c done
+ y$$b = y$$c + sj*(sind phi); % $$b done
+ x$$d = x$$c - jw*(sind phi); y$$d = y$$; % $$d done
+ x$$g = x$$f = lft x$$;
+ y$$g = y$$ + (x$$d-x$$g)*(sind phi)/(cosd phi); % $$g done
+ x$$a = x$$; bot y$$a = y$$g; % $$a done
+ x$$e = x$$g - sjr; z$$e = whatever[z$$d,z$$g]; % $$e done
+ z$$f-z$$e = whatever*(z$$c-z$$d); % $$f done
+ x$$h = x$$b; y$$h = top y$$a;
+ draw z$--z$$a; % straight part
+ pickup stylus;
+ rt x$$cc = x$$c; y$$cc=y$$c;
+ x$$dd = x$$d; bot y$$dd = y$$d;
+ lft x$$ee = x$$e; top y$$ee = y$$e;
+ filldraw z$$b--z$$cc--z$$dd--z$$ee--z$$f--cycle; % diamond
+ if y$$b < y$$h:
+ rt x$$hh = x$$h; y$$hh=y$$h;
+ filldraw z$$b--z$$hh--z$$g--cycle;
+ fi
+ pickup oldpen;
+ labels($$a,$$b,$$c,$$d,$$e,$$f);
+enddef; % end of draw_downdiamondstem
+
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_roundserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr);
+ undraw z$--z$a;
+enddef; % end of draw_roundserif
+
+
+def draw_flatserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+%%% z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-jut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (jut*pdir);
+ fi
+ z$b = fr[z$,z$c];
+ draw z$a--z$;
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_flatserif
+
+
+def draw_clubserif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+%% beta=1-fr;
+ ajut=clubjut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+%% vec2=ajut*vec1;
+%% z$a=z$ shifted vec2;
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$ shifted (-clubjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$ shifted (clubjut*pdir);
+ fi
+ z$a = fr[z$,z$$];
+ draw z$c..z$a{vec1};
+ labels($a,$b,$c);
+enddef; % end of draw_clubserif
+
+
+def draw_triserif(suffix $)(expr tj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$ts1'=lft x$; y$ts1'=bot y$;
+ pickup stylus;
+ lft x$ts1=x$ts1'; bot y$ts1=y$ts1';
+ x$ts2=x$ts1-tj; z$ts2=whatever[z$,z$ts1];
+ x$ts3=x$ts1; y$ts3=y$ts2-tj;
+ pickup stylus;
+%% filldraw z$ts1--z$ts2--z$ts3--cycle;
+ filldraw z$--z$ts2--z$ts3--cycle;
+ pickup oldpen;
+ labels($ts1,$ts2,$ts3);
+enddef; % end of draw_triserif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+%% draw_serif($$, $, fr); % the serif
+%% draw z$--z$$a; % the stem
+ draw z$--z$$;
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x1+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_tail(suffix $)(expr fj)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$tl' = lft x$; y$tl=bot y$;
+ pickup stylus;
+ lft x$tl=x$tl';
+ x$tb=x$tl-fj; bot y$tb=y$tl-1/2desc_depth;
+ filldraw z${down}..{-pdir}z$tb & z$tb{pdir}..{up}z$tl--cycle;
+ pickup oldpen;
+ labels($tb,$tl);
+enddef; % end of draw_tail
+
+def draw_triangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$-0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_triangle
+
+def draw_utriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz/2; x$t3=x$+sz/2;
+ y$t1=y$t3=y$;
+ x$t2=x$; y$t2=y$+0.9sz; % approx sqrt(3)/2
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_utriangle
+
+def draw_rtriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$-sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rtriangle
+
+def draw_rutriangle(suffix $)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup stylus;
+ x$t1=x$-sz; rt x$t3=x$;
+ y$t1=y$t3=y$;
+ x$t2=x$t3; y$t2=y$+sz;
+ filldraw z$t1--z$t2--z$t3--cycle;
+ pickup oldpen;
+ labels($t1,$t2,$t3);
+enddef; % end of draw_rutriangle
+
+def draw_fork(suffix $, $$)(expr sz)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ x$f1'=lft x$; y$f1'=bot y$;
+ x$f3'=rt x$; y$f3'=top y$;
+ pickup stylus;
+ lft x$f1=x$f1'; bot y$f1=y$f1';
+ rt x$f3=x$f3'; y$f3-y$=2*(y$-y$f1);
+ rt x$f2=x$$-sz; bot y$f2=y$$;
+ rt x$f4= rt x$f5=x$$;
+ bot y$f5=y$$-sz; top y$f4=y$$+1/2sz;
+ filldraw z$f1--z$f2--z$f3--cycle; % the line
+ draw z$f2{right}..z$f4; % upper fork
+ draw z$f2{right}..z$f5; % lower fork
+ pickup oldpen;
+ labels($f1,$f2,$f3,$f4,$f5);
+enddef; % end of draw_fork
+
+def draw_urswish(suffix $, $$)=
+ pen oldpen; oldpen:=currentpen;
+ pickup quill;
+ rt x$$s1=x$$-thick; top y$$s1=y$$;
+ rt x$$s2=x$$;
+%% x$$s3=x$$-thick;
+ lft x$$s3=x$$s1;
+ bot y$$s3=y$$-thick; y$$s2=0.5[y$$s1,y$$s3];
+%% draw z$---z$$s1{right}..z$$s2{down}..{-pdir}z$$s3;
+ draw z$..z$$s1{pdir}..z$$s2{down};
+ labels($$s1,$$s2,$$s3);
+enddef; % end of draw_urswish
+
+def bowl_stem(suffix $, $$)=
+ x$'=0.5[x$,x$$]; y$'=y$; % the mid-point
+ z$''=z$' shifted (thick*pdir);
+ x$i=x$$; z$i=whatever[z$',z$''];
+ labels($',$i);
+enddef; % end of bowl_stem
+
+def draw_clubbase(suffix $, $$)(expr st, lft, rt)=
+ z$$l = z$$ shifted (lft*thick*(-pdir));
+ z$$r = z$$ shifted (rt*thick*(pdir));
+ z$$t = st[z$$,z$];
+ draw z$$t{z$$-z$}..z$$l--z$$r..{z$-z$$}z$$t;
+ labels($$t,$$l,$$r);
+enddef; % end of draw_clubbase
+
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-2ar;
+ z$u = z$v shifted (sz*right);
+ z$sv = (x$s, 1/3[y$s,y$v]);
+ z$tu = (x$t, y$sv);
+ z$uv = 1/3[z$u,z$v];
+ z$vu = 1/3[z$v,z$u];
+ pickup stylus;
+%% filldraw z$s--z$t--z$u--z$v--cycle;
+ filldraw z$s--z$t--z$tu--z$uv--z$vu--z$v--z$sv--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+path obouter, obinner, obfirst, obsecond;
+def offsetbowl(suffix $)(expr sx, sy, fx, fy)=
+ numeric inx, iny, cx, cy;
+ pair pt[];
+ path pth[];
+ inx := 1/2thick*cosd(pangle); iny := 1/2thick*sind(pangle);
+ cx := x$+fx*sx; cy := y$+fy*sy;
+ z$obc = (cx,cy);
+ if pangle = 90:
+ z$wt=(x$+1/2thin, cy);
+ z$et=(x$+sx-1/2thin, cy);
+ else:
+ z$wt=(x$+inx, cy);
+ z$et=(x$+sx-inx, cy);
+ penpos$wt(thick,pangle);
+ penpos$et(thick,pangle);
+ fi
+ if pangle = 0:
+ z$nh=(cx, y$+sy-1/2thin);
+ z$sh=(cx, y$+1/2thin);
+ else:
+ z$nh=(cx, y$+sy-iny);
+ z$sh=(cx, y$+iny);
+ penpos$nh(thick,pangle);
+ penpos$sh(thick,pangle);
+ fi
+ obfirst := z$nh{right}..z$et{down}..z$sh{left}..z$wt{up}..cycle;
+ if pangle = 90:
+ z$minl = z$wt; z$maxr = z$nh; z$minr = z$et; z$maxl = z$sh;
+ else:
+ if pangle = 0:
+ z$minl = z$nh; z$maxr = z$et; z$minr = z$sh; z$maxl = z$wt;
+ else:
+ z$minl = directionpoint dir(pangle) of obfirst;
+ z$minr = directionpoint -dir(pangle) of obfirst;
+ pt1 := z$minr - z$minl; % direction
+ pt2 := (- ypart pt1, xpart pt1); % perpendicular
+ pt3 := 1/2[z$minl, z$minr];
+ pt4 := pt3 shifted pt2;
+ pt5 := pt3 shifted -pt2;
+ pth1 := pt3--pt4;
+ pth2 := pt3--pt5;
+ z$maxr = pth1 intersectionpoint obfirst;
+ z$maxl = pth2 intersectionpoint obfirst;
+ \fi
+ \fi
+ penpos$minl(thin,pangle+90);
+ penpos$maxr(thick,pangle);
+ penpos$minr(thin,pangle+90);
+ penpos$maxl(thick,pangle);
+ obsecond := z$minl..z$maxr..z$minr..z$maxl..cycle;
+ z$minlo = z$minl.r; z$maxro = z$maxr.r;
+ z$minro = z$minr.l; z$maxlo = z$maxl.l;
+ obouter := z$minlo{dir(pangle)}...z$maxro...z$minro{-dir(pangle)}...z$maxlo...cycle;
+ z$minli = z$minl.l; z$maxri = z$maxr.l;
+ z$minri = z$minr.r; z$maxli = z$maxl.r;
+ obinner := z$minli...z$maxri...z$minri...z$maxli...cycle;
+ labels($obc, $nh, $et, $sh, $wt);
+ labels($minl, $maxr, $minr, $maxl);
+ labels($minlo, $maxro, $minro, $maxlo);
+ labels($minli, $maxri, $minri, $maxli);
+enddef;
+
+
+def obowl(suffix $)(expr sx, sy)=
+ offsetbowl($, sx, sy, 1/2, 1/2);
+enddef;
+
+
+primarydef v scalarprod w =
+ (xpart v * ypart w - ypart v * xpart w)
+enddef;
+
+
+def tangentpoint(suffix $)(expr pth)=
+ pair vecll, veclr, veclm; % "tangent" line directions
+ numeric pl, pr, pm; % path parameter values
+ pair vecpl, vecpr, vecpm; % path directions
+ pair ptl, ptr, ptm; % path points
+ numeric sl, sr, sm; % scalar products of path/line directions
+ numeric stpsize; % size of current binary step
+ numeric tantol; % tolerance
+ boolean wtest; % a boolean
+
+ tantol := eps;
+ pl:=0; pr:=length pth; pm:=0.5(pl+pr); stpsize:=pr-pl;
+ ptl := point pl of pth;
+ ptm := point pm of pth;
+ ptr := point pr of pth;
+ vecll := unitvector (z$-ptl);
+ veclm := unitvector (z$-ptm);
+ veclr := unitvector (z$-ptr);
+ vecpl := unitvector (direction pl of pth);
+ vecpm := unitvector (direction pm of pth);
+ vecpr := unitvector (direction pr of pth);
+ sl := vecll scalarprod vecpl;
+ sm := veclm scalarprod vecpm;
+ sr := veclr scalarprod vecpr;
+ wtest := (stpsize < tantol) or (sl*sr > 0) or
+ (abs sl < tantol) or (abs sm < tantol) or (abs sr < tantol);
+ if wtest:
+ if (stpsize < tantol):
+ z$tan=(0,0);
+ errmessage("No tangent; path too short");
+ else:
+ if (sl*sr > 0):
+ z$tan=(0,0);
+ errmessage("No tangent; end products have the same sign");
+ else:
+ if (abs sl < tantol):
+ z$tan=ptl;
+ else:
+ if (abs sm < tantol):
+ z$tan=ptm;
+ else:
+ z$tan=ptr;
+ fi
+ fi
+ fi
+ fi
+ else:
+ forever:
+ if (sl*sm < 0): % opposite signs, look between pl & pm
+ pr:=pm; pm:=0.5(pr+pl);
+ vecpr := vecpm; veclr := veclm; sr:=sm;
+ else:
+ pl:=pm; pm:=0.5(pr+pl);
+ vecpl:=vecpm; vecll:=veclm; sl:=sm;
+ fi
+ stpsize:=pr-pl;
+ ptm := point pm of pth;
+ veclm := unitvector (z$-ptm);
+ vecpm := unitvector (direction pm of pth);
+ sm := veclm scalarprod vecpm;
+ wtest := (stpsize < tantol) or (abs sm < tantol);
+ if wtest:
+ if (abs sm < tantol):
+ z$tan = ptm;
+ else:
+ z$tan = ptm;
+%%%%%% errmessage("Warning: tangent approximated");
+ fi
+ fi
+ exitif wtest;
+ endfor
+ fi
+enddef;
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+tgothic_font_setup;
+
+
+input tgothl; % lower case
+input tgothu; % capitals
+input tgothpunct; % punctuation
+input tgothlig; % the several dashes
+input tgothdig; % arabic digits
+
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space 2vstretch*stem_width#; % no stretching or shrinking
+ font_quad vstretch*18u#;
+ font_extra_space vstretch*9u#;
+else:
+ font_normal_space 2vstretch*stem_width#+2letter_fit#;
+ font_normal_stretch vstretch*3u#; font_normal_shrink vstretch*2u#;
+ font_quad vstretch*18u#+4letter_fit#;
+ font_extra_space vstretch*2u#;
+
+
+fi
+
+bye.
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ kks#:=-4u#; kkx#:=-1.5u#; kkj#:=-2u#; kkr#:=-5u#; kkrs#:=-2u#; kkrl#:=-8u#;
+ ligtable "s":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "S":
+ "a" kern kks#, "A" kern kks#,
+ "c" kern kks#, "C" kern kks#,
+ "d" kern kks#, "D" kern kks#,
+ "e" kern kks#, "E" kern kks#,
+ "f" kern kks#, "F" kern kks#,
+ "g" kern kks#, "G" kern kks#,
+ "i" kern kks#, "I" kern kks#,
+ "j" kern kks#, "J" kern kks#,
+ "k" kern kks#, "K" kern kks#,
+ "m" kern kks#, "M" kern kks#,
+ "n" kern kks#, "N" kern kks#,
+ "o" kern kks#, "O" kern kks#,
+ "p" kern kks#, "P" kern kks#,
+ "q" kern kks#, "Q" kern kks#,
+ "r" kern kks#, "R" kern kks#,
+ "t" kern kks#, "T" kern kks#,
+ "u" kern kks#, "U" kern kks#,
+ "v" kern kks#, "V" kern kks#,
+ "w" kern kks#, "W" kern kks#,
+ "x" kern kks#, "X" kern kks#,
+ "y" kern kks#, "Y" kern kks#,
+ "z" kern kks#, "Z" kern kks#;
+
+ ligtable "x":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "X":
+ "a" kern kkx#, "A" kern kkx#,
+ "b" kern kkx#, "B" kern kkx#,
+ "c" kern kkx#, "C" kern kkx#,
+ "d" kern kkx#, "D" kern kkx#,
+ "e" kern kkx#, "E" kern kkx#,
+ "g" kern kkx#, "G" kern kkx#,
+ "j" kern kkx#, "J" kern kkx#,
+ "l" kern kkx#, "L" kern kkx#,
+ "o" kern kkx#, "O" kern kkx#,
+ "q" kern kkx#, "Q" kern kkx#,
+ "t" kern kkx#, "T" kern kkx#,
+ "u" kern kkx#, "U" kern kkx#,
+ "v" kern kkx#, "V" kern kkx#,
+ "w" kern kkx#, "W" kern kkx#,
+ "y" kern kkx#, "Y" kern kkx#;
+
+ ligtable "a": "A":
+ "b": "B":
+ "c": "C":
+ "d": "D":
+ "e": "E":
+ "h": "H":
+ "i": "I":
+ "k": "K":
+ "l": "L":
+ "m": "M":
+ "n": "N":
+ "o": "O":
+ "p": "P":
+ "t": "T":
+ "u": "U":
+ "v": "V":
+ "w": "W":
+ "z": "Z":
+ "j" kern kkj#, "J" kern kkj#;
+
+ ligtable "r":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+ ligtable "R":
+ "a" kern kkr#, "A" kern kkr#,
+ "b" kern kkr#, "B" kern kkr#,
+ "c" kern kkr#, "C" kern kkr#,
+ "d" kern kkr#, "D" kern kkr#,
+ "e" kern kkr#, "E" kern kkr#,
+ "f" kern kkrs#, "F" kern kkrs#,
+ "g" kern kkrs#, "G" kern kkrs#,
+ "h" kern kkr#, "H" kern kkr#,
+ "i" kern kkr#, "I" kern kkr#,
+ "j" kern kkj#, "J" kern kkj#,
+ "k" kern kkrs#, "K" kern kkrs#,
+ "l" kern kkr#, "L" kern kkr#,
+ "m" kern kkr#, "M" kern kkr#,
+ "n" kern kkrs#, "N" kern kkrs#,
+ "o" kern kkr#, "O" kern kkr#,
+ "p" kern kkrs#, "P" kern kkrs#,
+ "q" kern kkr#, "Q" kern kkr#,
+ "r" kern kkrs#, "R" kern kkrs#,
+ "s" kern kkr#, "S" kern kkr#,
+ "t" kern kkr#, "T" kern kkr#,
+ "u" kern kkr#, "U" kern kkr#,
+ "v" kern kkr#, "V" kern kkr#,
+ "w" kern kkr#, "W" kern kkr#,
+ "x" kern kkx#, "X" kern kkx#,
+ "y" kern kkr#, "Y" kern kkr#,
+ "z" kern kkr#, "Z" kern kkr#;
+
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf b/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf
new file mode 100644
index 00000000000..3b86c999073
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/tgothu.mf
@@ -0,0 +1,1234 @@
+%%
+%% This is file `tgothu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% tgothic.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "TGOTH letter A";
+beginchar("A", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pair pr[];
+pickup quill;
+%% stem
+rt x1 = w - pcshiftx - wided*st; y1 = h;
+x2 = x1; y2 = 0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% leg
+x21 = x1; top y21 = h;
+lft x22 = pcshiftx + widedmin*st; bot y22 = 0;
+draw z21--z22;
+draw (x22-widedmin*st, y22)--(x22+wided*st, y22);
+%% bar
+z13 = z12;
+y16 = y13; z16 = whatever[z21,z22];
+x14 = 1/2[x13,x16]; (z13-z14) = whatever*pdir;
+pickup threequarterquill;
+draw z13--z14;
+draw z14{ppdir}..{left}z16;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,100);
+endchar; % end "A"
+
+cmchar "TGOTH letter B";
+beginchar("B", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem
+lft x1 = pcshiftx; bot y1 = 0;
+n1 := top y1;
+lft x99 = 2/5w; bot y99 = 12/16h;
+rt x12 = lft x99; top y12 = bot y99;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,(h-n1/2)];
+pth1 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% stem decoration
+z101=z99;
+z181 = (x99,-h);
+z102 = (x101,y1);
+z112 = 1/2[z101,z102];
+lft x8 = x112; y8 = y112;
+%% lower bowl
+x113 = w-pcshiftx;
+(z113-z112) = whatever*(pdir);
+rt x5 = w-pcshiftx; y5 = 6/16y113;
+x3 = 10/16[x1,x5]; y3 = y1;
+z7 = 2/16[z8,z113];
+pth2 := z1{pdir}..{right}z3..{up}z5..{-pdir}z7--z8;
+
+%% upper bowl
+x10 = 1/2[x7,x5]; y10 = 1/2[y12,y99];
+x19 = 1/2[x99,x10]; top y19 = h;
+pth3 := z8--z7{pdir}..{up}z10..{left}z19..{-pdir}z99;
+%% angled decoration
+
+z105 = 1/4[z102,z112];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+
+z107 = 1/4[z112,z101];
+x187 = 2w;
+(z187-z107) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth3;
+
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth2;
+draw pth3;
+pickup stylus;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,19,99,100);
+endchar; % end "B"
+
+cmchar "TGOTH letter C";
+beginchar("C", 2cap_sb#+hstretch*((5)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; %% bowl
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,101,102,103,104,105,106,107,108,185);
+endchar; % end "C"
+
+cmchar "TGOTH letter D";
+beginchar("D", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+lft x1 = pcshiftx; bot y1 = 0;
+rt x5 = w-pcshiftx; y5 = 1/2h;
+x3 = 10/16[x1,x5]; y3 = y1;
+x7 = x3; top y7 = h;
+lft x9 = 2/5w; bot y9 = 12/16h;
+pth1 := z1{pdir}..{right}z3..{up}z5..{left}z7..{-pdir}z9;
+%% stem
+rt x12 = lft x9; top y12 = bot y9;
+x14 = x1; y14 = y12;
+x13 = 1/2[x14,x12]; y13 = 1/2[y12,y7];
+pth2 := z1{pdir}..z12..{left}z13..{-pdir}z14;
+%% vertical decoration
+z101=z9;
+z181 = (x9,-h);
+z102 = ((x101,h/2)--z181) intersectionpoint pth1;
+z103a=(x101+perpdec,h); z103b=(x103a,h/2); z103c=(x103a,-h);
+z103 = (z103a--z103b) intersectionpoint pth1;
+z104 = (z103b--z103c) intersectionpoint pth1;
+%% angled decoration
+z106 = (lft x5, y5);
+x105 = x103; (z106-z105) = whatever*(pdir);
+z107 = (x105, y105+angdec);
+x108a = 2w; (z108a-z107) = whatever*(pdir);
+z108 = (z108a--z107) intersectionpoint pth1;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+draw pth2;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,100);
+endchar; % end "D"
+
+cmchar "TGOTH letter E";
+beginchar("E", 2cap_sb#+hstretch*((6)*stem_width#), %% (5) too small
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% bowl
+n1:=w-2pcshiftx; % actual letter width
+n2:=6/5w-2pcshiftx; % width of full bowl
+x1=pcshiftx + 1/2n1; top y1 = h;
+lft x2 = pcshiftx; y2 = 1/2h;
+x3 = x1; bot y3 = 0;
+rt x4 = w-pcshiftx; y4 = 1/4h;
+x24 = x4; y24 = 3/4h;
+pth1 := z24..z1{left}..z2{down}..z3{right}..z4{pdir};
+%% decoration
+z101 = (x1,y1); z102 = (x1,y3);
+z103 = (x1+perpdec, y1); z104 = (x103,y102+thin);
+z105 = 1/2[z101,z102]; z107 = (x105,y105+angdec);
+x185 = -w; (z105-z185) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+x187 = -w; (z107-z187) = whatever*(pdir);
+z108 = (z107--z187) intersectionpoint pth1;
+%% bar
+lft x31 = x103; top y31 = y105;
+rt x32 = w-pcshiftx; y32=y31;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; %% bowl
+draw z31--z32; %% bar
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,14,16,17,18,100,105,185,106);
+endchar; % end "E"
+
+cmchar "TGOTH letter F";
+beginchar("F", 2cap_sb#+hstretch*((5)*stem_width#),
+ 5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem (1--2) and top bar (21--22)
+lft x1=lft x2=pcshiftx+widedmin*st; y2 = 0;
+top y21 = top y22 = h - (top y2 - bot y2); x22 = w-pcshiftx-st;
+lft x21 = rt x1; top y1 = bot y21;
+z12 = 1/3[z1,z2];
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+draw z1--z12;
+draw z21--z22;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+x101 = x102; y101 = y21;
+%% bar
+lft x14 = x101; y14 = y12;
+rt x16 = w-pcshiftx; y16 = y14;
+draw z14--z16;
+z16tr = (rt x16, top y16);
+pickup stylus;
+draw z101--z102;
+%% Other decoration
+%% bottom bar
+rt x201 = x16tr; top y201 = y16tr;
+y202 = y201 - 2st; (z201-z202) = whatever*pdir;
+draw z201--z202;
+%% top bar
+pickup quill;
+z22tb = (rt x22, top y22);
+x22bb - x22 = x22 - x22tb; y22bb - y22 = y22 - y22tb;
+x22c = x22 + st; bot y22c = top y22 + 1/2st;
+x22f = x22; y22f = 1/3[y22c, y22];
+pickup stylus;
+x22br = x22bb; bot y22br = y22bb;
+pth3 := z22br--z22tb..{up}z22c..{-ppdir}z22f;
+draw pth3;
+
+penlabels(1,2,3,4,5,6,7,14,15,16,21,22,100);
+endchar; % end "F"
+
+cmchar "TGOTH letter G";
+beginchar("G", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+%%pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+%%pth2 := z2{-pdir}..z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+pth2 := z2--z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+%% fork
+z2tr = (rt x2, top y2);
+x2a = x2tr; y2a = y2tr + thin;
+x2b = x2a; y2b - y2 = y2 - y2a;
+x2d = x2 - thick; y2d = y2;
+pickup stylus;
+x2c = x2d = x2e;
+top y2e = y2tr; y2c - y2d = y2d - y2e;
+%%filldraw z2d--z2c{right}..z2b--cycle;
+%%filldraw z2d--z2a..{left}z2e--cycle;
+filldraw z2e--z2c{right}..z2b--cycle;
+filldraw z2c--z2a..{left}z2e--cycle;
+pth9 := (rt x2a,y2a)--(rt x2b,y2b)--(rt x2d,y2d)--cycle;
+unfill pth9;
+unfill pth9;
+unfill pth9;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw pth1; %% bar
+draw pth2; %% bowl
+ductus:=false;
+penlabels(1,2,2a,2b,2c,2d,2e,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "G"
+
+cmchar "TGOTH letter H";
+beginchar("H", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+numeric n[];
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+n1 := 12/16h; %% take this as the top of the bowl
+x13=x1; y13=3/4n1;
+rt x3 = w-pcshiftx; y3 = 8/16n1;
+x14 = 8/16[x13,x3]; top y14 = n1;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "H"
+
+cmchar "TGOTH letter I";
+beginchar("I", 2cap_sb#+hstretch*((4+wided)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided, widedmin,diawd,diang);
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101=x102; top y101 = h;
+draw z101--z102;
+ductus:=false;
+penlabels(1,2,101,102,100);
+endchar; % end "I"
+
+cmchar "TGOTH letter J";
+beginchar("J", cap_sb#+hstretch*((4+wided)*stem_width#),
+ caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1 = pcshiftx+3st; y1 = h;
+x2=x1; y2=-d + (top y1 - bot y1);
+%% bottom hook
+lft x3 = pcshiftx; bot y3 = -d;
+draw_upcurlstem(1,2);
+draw z2{ppdir}..{-pdir}z3;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201 + 2/3wided*st;
+pickup stylus;
+top y101 = h; y201=y101;
+z102=(x101,0);
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,101,102,100);
+endchar; % end "J"
+
+cmchar "TGOTH letter K";
+beginchar("K", 2cap_sb#+hstretch*((8+wided)*stem_width#),
+ 5/4caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = 4/5h; % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5+st,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % upper bowl
+draw pth2; % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106;
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "K"
+
+cmchar "TGOTH letter L";
+beginchar("L", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+pickup quill;
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; bot y2 =0;
+draw_upcurlstem(1,2);
+rt x4 = w-pcshiftx; bot y4 = 0;
+draw z2{right}..{pdir}z4;
+%% vertical decoration
+x201 = rt x1;
+x101 = x201+2/3wided*st;
+pickup stylus;
+top y101 = h; y201 = y101;
+x102 = x101; bot y102=0;
+draw z201--z101--z102;
+ductus:=false;
+penlabels(1,2,3,4,101,102,201,100);
+endchar; % end "L"
+
+cmchar "TGOTH letter M";
+beginchar("M", 2cap_sb#+hstretch*((11)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%%% left part
+lft x301 = pcshiftx+3st; y301 = h;
+x302 = x301; y302 = 0;
+z312 = 1/2[z301,z302];
+draw_upcurlstem(301,312);
+draw_downdiamondstem(312,302,wided,widedmin,diawd,diang);
+
+%% left N stem (and N part)
+%%%lft x1=pcshiftx+3st; y1=h;
+x1 = x301 + 3st; y1 = h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+%%draw_upcurlstem(1,12);
+%%draw_updiamondstem(1,12,wided,widedmin,diawd,diang);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+pickup quill;
+%% finish off the left part
+x3011 = 1/2[x301,x1]; top y3011 = h;
+z3123 = (x301,3/4h); z123 = (x1,y3123);
+draw z3123--z3011--z123--z12;
+%% vertical decorations
+ %% left part
+z402 = 2/3[z302b,z302c];
+x401 = x402; z401 = whatever[z3123,z3011];
+ %% right part
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+%% angled decorations
+ %% left part
+z406 = z13;
+x405 = x402; (z406-z405) = whatever*pdir;
+z407 = (x405, y405-angdec); z408 = (x406, y406-angdec);
+ %% right part
+z105 = (x102,y405);
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z401--z402;
+draw z405--z406; draw z407--z408;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,101,102,105,106,107,108,301,302,100);
+endchar; % end "M"
+
+cmchar "TGOTH letter N";
+beginchar("N", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% left stem
+lft x1=pcshiftx+3st; y1=h;
+x2=x1; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+x13=x1; y13=3/4h;
+rt x3 = w-pcshiftx; y3 = 8/16h;
+x14 = 8/16[x13,x3]; top y14 = h;
+x4 = 1/2[x14,x3]; bot y4=0;
+pth1 := z13{pdir}..{right}z14..{down}z3..{-pdir}z4;
+%% bottom curl
+z21 = z4;
+x24 = x3; top y24 = 0;
+x23 = 1/2[x21,x24]; top y23 = bot y24;
+pth2 := z21{-pdir}..z23..{ppdir}z24;
+%% vertical decoration
+z102 = 2/3[z2b,z2c];
+z182 = (x102,h);
+z101 = (z102--z182) intersectionpoint pth1;
+z105 = 1/2[z102,z101];
+x185 = 2w;
+(z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105, y105-angdec); z187 = (x185, y185-angdec);
+z108 = (z107--z187) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw pth2;
+draw z101--z102;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,13,14,100);
+endchar; % end "N"
+
+cmchar "TGOTH letter O";
+beginchar("O", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "O"
+
+cmchar "TGOTH letter P";
+beginchar("P", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=-d;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% vertical decoration
+z1tr = (rt x1, top y1);
+z102 = 2/3[z2b,z2c];
+pickup stylus;
+x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+pickup quill;
+%% bowl
+lft x22 = x101; top y22 = h;
+x21 = x1; (z22-z21) = whatever*pdir;
+rt x24 = w - pcshiftx; y24 = 1/2h;
+x25 = 1/2[x22,x24]; bot y25 = 0;
+pth1 := z21--z22{down}..{down}z24..{-pdir}z25;
+z31 = z25;
+lft x33 = pcshiftx; bot y33 = 0;
+pth2 := z33{pdir}..{right}z31;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth2;
+%% angled decoration
+x105 = x101; y105 = 1/3h;
+x185 = 2w;
+(z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+z107 = (x105,y105-angdec);
+x187 = x185; y107 - y105 = y187 - y185;
+z108 = (z107--z187) intersectionpoint pth1;
+pickup stylus;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "P"
+
+cmchar "TGOTH letter Q";
+beginchar("Q", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx-stem_width; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+pth1 := z1..z2..z3..z4..cycle;
+%% tail
+pth2 := z1..z4..z3;
+z11 = directionpoint pdir of pth2;
+rt x13 = w-pcshiftx; bot y13 = 0;
+pth3 := z11{pdir}..{pdir}z13;
+%% vertical decoration
+z101=z2; z102=z4;
+z103 = (x101-perpdec, y101); z104 = (x103,y102);
+%% angled decoration
+z108 = (lft x3,y3);
+x107 = x101; (z108-z107) = whatever*(pdir);
+z105 = (x107, y107+angdec);
+x106a = 2w; (z106a-z105) = whatever*(pdir);
+z106 = (z105--z106a) intersectionpoint pth1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; draw pth3;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,100);
+endchar; % end "Q"
+
+cmchar "TGOTH letter R";
+beginchar("R", 2cap_sb#+hstretch*((8+wided)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pickup quill;
+%% stem
+n1 = h; % x-height
+lft x1=lft x2=pcshiftx+3st;
+y1=h; y2=0;
+z12 = 1/2[z1,z2];
+draw_upcurlstem(1,12);
+draw_downdiamondstem(12,2,wided,widedmin,diawd,diang);
+%% top arm
+%%z3=(x1,1/2n1);
+x3 = x1; top y3 = 14/16n1;
+z7c = 1/2[z2,z3];
+top y3a = n1; (z3a-z3) = whatever*pdir;
+rt x7a = w - pcshiftx - 2st; (z7a-z7c) = whatever*pdir;
+x4 = 1/2[x3a,x7a]; y4 = y3a;
+x5 = x7a; y5 = 1/2[y3a, y7a];
+z7 = (rt x7c, y7c);
+pth1 := z3{pdir}..z4..z5..{-pdir}z7;
+%% lower arm
+z21=z7;
+z24=(x5,y2a);
+x23 = x24; y23 = 1/2[y21,y24];
+rt x25 = w-pcshiftx; bot y25 = 0;
+pth2 := z21{pdir}..{down}z23..z24..{pdir}z25;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; % upper bowl
+draw pth2; % lower half
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z102 = 2/3[z2b,z2c]; x101 = x102; top y101 = h;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/2[y7,y3];
+y185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth1;
+x107 = x105; y107 = y105-angdec;
+x187 = x185; y187-y185 = y107-y105;
+%%z108 = (z107--z187) intersectionpoint pth1;
+draw z105--z106;
+%%draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,13,14,21,22,23,24,25,100);
+endchar; % end "R"
+
+cmchar "TGOTH letter S";
+beginchar("S", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+pickup threequarterquill;
+%% top
+n1 := 1;
+lft x1 = pcshiftx + n1*st; top y1 = h;
+rt x3 = w - pcshiftx; y3 = y1;
+x2 = 1/2[x1,x3]; top y2 = y1;
+pth1 := z1..z2..{pdir}z3;
+draw pth1;
+%% bottom
+lft x4 = pcshiftx; bot y4 = 0;
+rt x6 = w -pcshiftx - n1*st; y6 = y4;
+x5 = 1/2[x4,x6]; bot y5 = y4;
+pth2 := z4{pdir}..z5..z6;
+draw pth2;
+%% top path
+z100 = (1/2w, 1/2h);
+z11 = z1; z15 = z6;
+x13 = x100; y13 = y100 + st;
+pth3 := z11..{right}z13{right}..z15;
+draw pth3;
+%% bottom path
+z21 = z11; z25 = z6;
+x23 = x100; y100 - y23 = y13 - y100;
+pth4 := z21..{right}z23{right}..z25;
+draw pth4;
+%% decorations
+ %% top
+z101 = (x2+angdec,y2); y181 = 0; (z101-z181) = whatever*pdir;
+z102 = (z101--z181) intersectionpoint pth3;
+z103 = (x101-angdec, y101); x183-x181 = x103-x101; y183 = 0;
+z104 = (z103--z183) intersectionpoint pth3;
+ %% bottom
+z201 = (x5,y5); y281 = h; (z201-z281) = whatever*pdir;
+z202 = (z201--z281) intersectionpoint pth4;
+z203 = (x201-angdec, y201); x283-x281 = x203-x201; y283 = h;
+z204 = (z203--z283) intersectionpoint pth4;
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z201--z202; draw z203--z204;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,11,17,20,26,27,28,100,101,102,103,104,201,202,203,204);
+endchar; % end "S"
+
+cmchar "TGOTH letter T";
+beginchar("T", 2cap_sb#+hstretch*((7)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% bar
+top y3=h; n3 := h - top y3;
+lft x1 = pcshiftx; rt x2=w-pcshiftx;
+y1 = y3-n3; y2=y3;
+x3=1/2[x1,x2];
+pth1 := z1{pdir}..z3..z2{pdir};
+%% bowl
+n1 := w; % width of bowl
+n2 := h; % height of bowl
+lft x4 = pcshiftx; y4 = 1/2h;
+x5=x3; bot y5 = 0;
+rt x6 = w-pcshiftx; y6 = 6/16h;
+%%pth2 := z3..z4{down}..z5{right}..z6{pdir};
+%% decoration
+x101 = lft x3; y101=y3;
+x181 = x101; y181=-h/4; z191 = 1/2[z101,z181];
+%%z102 = z191--z181 intersectionpoint pth2; %%% ???? NO INTERSECTION!!!!!!
+z102=(x101,y5);
+z103 = (x101+3thin, y101); z104 = (x103,y102);
+lft x7 = x104; y7 = 10/16[y104,y103];
+pth2 := z3..z4{down}..z5{right}..z6{up}..{-pdir}z7;
+z105 = (x104,y104+4thin); z107=(x105,y105+3thin);
+x185 = 2w; (z185-z105) = whatever*(pdir);
+z106 = (z105--z185) intersectionpoint pth2;
+z108 = (x106,y106+3thin);
+pickup stylus;
+draw z101--z102; draw z103--z104;
+draw z105--z106; draw z107--z108;
+pickup quill;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw pth1; %% bar
+draw pth2; %% bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,11,12,100,101,102,103,104,181,191);
+endchar; % end "T"
+
+cmchar "TGOTH letter U";
+beginchar("U", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := cap_sb;
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+rt x9 = lft x3; bot y9 = 0;
+pth1 := z7{pdir}..{pdir}z9;
+draw pth1;
+%% stem bottoms
+z2 = (z1 -- (x1,-h)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y9;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% decorations
+z1tr = (rt x1, top y1);
+pickup stylus;
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,16,33,100);
+endchar; % end "U"
+
+cmchar "TGOTH letter V";
+beginchar("V", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% left stem top
+lft x1 = pcshiftx + 3st; y1 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = w/2; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+z6 = z9;
+rt x5 = w - pcshiftx; top y5 = 3/4h;
+x3 = 1/2[rt x1, lft x5];
+x4 = 1/2[x3,x5]; top y4 = h;
+y3 = 1/2[y4,y5];
+pth2 := z6{pdir}..{up}z5..{left}z4..{-pdir}z3;
+draw pth2;
+pth3 := pth1 & pth2;
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth3;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec);
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,14,23,26,100);
+endchar; % end "V"
+
+cmchar "TGOTH letter W";
+beginchar("W", 2cap_sb#+hstretch*((12)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top of stems
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x999 = w - pcshiftx;
+x3 = 1/2[x1,x999]; y3 = h;
+%% bowl bottoms
+x21 = x1 - 3/2st; bot y21 = 0;
+rt x23 = lft x3; bot y23 = 0;
+pth1 := z21{pdir}..z23;
+draw pth1;
+lft x31 = rt x23; bot y31 = top y23;
+x33 = 1/2[x31,x999]; bot y33 = 0;
+pth2 := z31{pdir}..z33;
+draw pth2;
+%% bottom of stems
+z2 = (z1--(x1,0)) intersectionpoint pth1;
+x4 = x3; bot y4 = top y23;
+draw_upcurlstem(1,2);
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+%% right V stem
+z16 = z33;
+x15 = x999; top y15 = 3/4h;
+x13 = 1/2[rt x3, lft x15];
+x14 = 1/2[x13,x15]; top y14 = h;
+y13 = 1/2[y14,y15];
+pth3 = z16{pdir}..{up}z15..{left}z14..{-pdir}z13;
+draw pth3;
+%% decorations
+z1tr = (rt x1, top y1);
+z3tr = (rt x3, top y3);
+pickup stylus;
+%% for U
+z99 = 2/3[z3b,z3c];
+x101 - x1 = x3 - x99; top y101 = h;
+x102 = x101; y102 = y2;
+x103 = x1tr; y103 = y101;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3h;
+x106 = x3; (z106-z105) = whatever*pdir;
+z107 = (x105, y105-angdec); x108 = x106; y108-y106 = y107-y105;
+draw z105--z106; draw z107--z108;
+%% for V
+
+x301 = x3tr+2/3wided*st; top y301 = y3e;
+z381 = (x301,-w);
+z302 = (z301--z381) intersectionpoint pth2;
+draw z3e--z301--z302;
+x305 = x301; y305 = 1/3[y302,y301];
+x385 = 2w; (z385-z305) = whatever*pdir;
+z306 = (z305--z385) intersectionpoint pth3;
+z307 = (x305, y305-angdec);
+x387 = x385; y387-y385 = y307-y305;
+z308 = (z307--z387) intersectionpoint pth3;
+draw z305--z306; draw z307--z308;
+
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,11,13,14,33,34,53,16,100);
+endchar; % end "W"
+
+cmchar "TGOTH letter X";
+beginchar("X", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+path pth[];
+numeric n[];
+numeric st; st := stem_width;
+pcshiftx := cap_sb;
+pickup quill;
+%% center stem
+lft x1 = lft x2 = pcshiftx + 3st;
+y1 = 3/4h; y2 = 1/4h;
+draw z1--z2;
+%% top right
+z21 = z1; top y22 = h; (z22-z21) = whatever*pdir;
+rt x24 = w-pcshiftx; y24 = y21;
+pth1 := z21--z22{-ppdir}..{pdir}z24;
+draw pth1;
+%% bottom right
+z31 = z2;
+rt x33 = w-pcshiftx; bot y33 = 0;
+pth2 := z31{-ppdir}..{pdir}z33;
+draw pth2;
+%% bottom left
+z41 = z2;
+bot y43 = -1/4h; (z41-z43) = whatever*pdir;
+x45 = x43 + st; y45=y43;
+pth3 := z41--z43{-pdir}..{pdir}z45;
+pickup stylus;
+draw pth3;
+pickup quill;
+%% top left
+x11 = x1; y11 = h;
+draw_upcurlstem(11,1);
+%% decoration
+x81 = rt x1;
+pickup stylus;
+x101 = x102 = x81 + 2/3wided*st;
+z101 = whatever[z1,z22];
+z102 = (z101--(x101,0)) intersectionpoint pth2;
+draw z101--z102;
+pickup quill;
+%% middle arms
+z120 = 1/2[z1,z2];
+z51 = z120;
+lft x53 = pcshiftx; top y53 = y51;
+x52 = 1/2[x51,x53]; y52 = y51;
+pth5 := z51--z52{left}..{-pdir}z53;
+draw pth5;
+lft x61 = x101; y61 = y120;
+rt x63 = w-pcshiftx; bot y63 = y61;
+x62 = 1/2[x61,x63]; y62 = y61;
+pth6 := z61--z62{right}..{pdir}z63;
+draw pth6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,10,25,251,252,40,50,51,52,53,61,62,63,101,102,150,60,160,100);
+endchar; % end "X"
+
+cmchar "TGOTH letter Y";
+beginchar("Y", 2cap_sb#+hstretch*((8)*stem_width#),
+ caprat*x_height#, 1/2caprat*x_height#);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% stem tops
+lft x1 = pcshiftx + 3st; y1 = h;
+rt x3 = w - pcshiftx - widedmin*st; y3 = h;
+x7 = x1 - 3/2st; bot y7 = 0;
+x9 = 1/2[x1,x3]; bot y9 = 0;
+pth1 := z7{pdir}..{right}z9;
+draw pth1;
+%% left stem bottom
+x81 = x1; y81 = - h;
+z2 = (z1--z81) intersectionpoint pth1;
+draw_upcurlstem(1,2);
+%% right stem
+x4 = x3; y4 = 0;
+x5 = x4; y5 = -1/4d;
+lft x6 = x9; bot y6 = -d;
+draw_updiamondstem(3,4,wided,widedmin,diawd,diang);
+draw z6{pdir}..{up}z5--z4;
+z3cd = 1/2[z3c,z3d];
+pth2 = z5--z3a--z3cd;
+%% fill bowl bottom
+x91 = x3; (z91-z9) = whatever*pdir;
+draw z9--z91;
+
+%% decoration
+z1tr = (rt x1, top y1);
+x101 = x1tr + 2/3wided*st;
+pickup stylus;
+top y101 = h;
+z103 = (x1tr,y101);
+z181 = (x101,-w);
+z102 = (z101--z181) intersectionpoint pth1;
+draw z103--z101--z102;
+x105 = x101; y105 = 1/3[y102,y101];
+x185 = 2w; (z185-z105) = whatever*pdir;
+z106 = (z105--z185) intersectionpoint pth2;
+z107 = (x105, y105-angdec);
+x187 = x185; y187-y185 = y107-y105;
+z108 = (z107--z187) intersectionpoint pth2;
+draw z105--z106; draw z107--z108;
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100,101,102,181);
+endchar; % end "Y"
+
+cmchar "TGOTH letter Z";
+beginchar("Z", 2cap_sb#+hstretch*((5)*stem_width#),
+ caprat*x_height#, 0);
+adjust_fit(0,0);
+numeric n[];
+numeric st; st := stem_width;
+path pth[];
+pcshiftx := cap_sb;
+pickup quill;
+%% top bar ends
+top y12 = h;
+n1 := h - y12;
+lft x1 = pcshiftx; rt x2 = w-pcshiftx-perpdec;
+%%y1 = y12-n1; y2=y12+n1;
+y1 = y12-n1/2; y2=y12;
+x12 = 1/2[x1,x2];
+pth1 := z1{pdir}..z12{right}..z2{pdir};
+x102 = rt x2; y102 = top y2; x202 = x102+perpdec; y202=y102;
+%% bottom bar ends
+bot y34 = 0;
+x3=x1+perpdec; rt x4= w-pcshiftx;
+y3=y34-n1/2; y4=y34;
+x34 = 1/2[x3,x4];
+pth2 := z3{pdir}..z34{right}..z4{pdir};
+x203 = lft x3; y203 = bot y3; x103 = x203-perpdec; y103=y203;
+%% centre bar
+z5 = (x1,1/2[y1,y3]); z6 = (x4,1/2[y2,y4]); z56 = 1/2[z5,z6];
+pth3 := z5{pdir}..z56{right}..z6{pdir};
+draw pth1; draw pth2; % bars
+draw pth3;
+%% decorations
+pickup stylus;
+draw z102--z103; draw z202--z203;
+unfill z102--z103--z203--z202--cycle;
+draw z102--z103; draw z202--z203;
+ductus:=false;
+penlabels(1,2,3,4,5,6,10o,10i,20o,20i,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncl10.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncl10.mf
new file mode 100644
index 00000000000..b94914b9b68
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/uncl10.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `uncl10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `base10')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% UNCL10.MF Computer Uncial at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="UNCL"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=20/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=30; % pen angle
+ asc_height#:=2x_height#;
+ desc_depth#:=x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(9/10x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate uncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncl17.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncl17.mf
new file mode 100644
index 00000000000..8d89d9a9b02
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/uncl17.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `uncl17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `base17')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% UNCL17.MF Computer Uncial at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="UNCL"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.0;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=32.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=30; % pen angle
+ asc_height#:=2x_height#;
+ desc_depth#:=x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(9/10x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate uncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncl7.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncl7.mf
new file mode 100644
index 00000000000..10a530997d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/uncl7.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `uncl7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `base7')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% UNCL7.MF Computer Uncial at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="UNCL"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.0;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=15.5/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/5;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=30; % pen angle
+ asc_height#:=2x_height#;
+ desc_depth#:=x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(9/10x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate uncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclb10.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclb10.mf
new file mode 100644
index 00000000000..7e649a3d36d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/unclb10.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `unclb10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `base10b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% UNCLB10.MF Computer Uncial Bold at 10 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="UNCLB"; font_size 10pt#;
+
+ jutstretch:=1.152;
+ stemstretch:=1.31;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.2;
+ cap_stemstretch:=1.31;
+ bfudge:=1.15;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=155/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=23/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=246/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=30; % pen angle
+ asc_height#:=2x_height#;
+ desc_depth#:=x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(9/10x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.4pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=8/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate uncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclb17.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclb17.mf
new file mode 100644
index 00000000000..587a897e650
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/unclb17.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `unclb17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `base17b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% UNCLB17.MF Computer Uncial Bold at 17 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="UNCLB"; font_size 17.28pt#;
+
+ jutstretch:=1.0;
+ stemstretch:=1.0;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.0;
+ cap_stemstretch:=1.0;
+ bfudge:=1.15;
+ szfudge:=1.0;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=268/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=37/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+ cap_height#:=425/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=30; % pen angle
+ asc_height#:=2x_height#;
+ desc_depth#:=x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(9/10x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.6pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=10/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate uncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclb7.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclb7.mf
new file mode 100644
index 00000000000..f6761b16a4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/unclb7.mf
@@ -0,0 +1,71 @@
+%%
+%% This is file `unclb7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `base7b')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%% UNCLB7.MF Computer Uncial Bold at 7 point design size.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="UNCLB"; font_size 7pt#;
+
+ jutstretch:=1.19;
+ stemstretch:=1.50;
+ caprat:=1.25; % ratio of capital height to minuscule height
+ cap_jutstretch:=1.3;
+ cap_stemstretch:=1.45;
+ bfudge:=1.15;
+ szfudge:=1.18;
+ hstretch:=szfudge*bfudge;
+ carol_height#:=108.5/36pt#;
+ vstretch:=1.37;
+
+ x_height#:=vstretch*carol_height#;
+ u#:=17.9/36pt#;
+ width_adj#:=0pt#; % width adjustment for certain characters
+ serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+ cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+ letter_fit#:=0pt#; % extra space added to all sidebars
+
+ cap_height#:=172.2/36pt#; % height of caps
+ thickfudge:=1/4;
+thinfudge:=1/6;
+thick#:=stemstretch*thickfudge*x_height#; % max pen breadth
+thin#:=thinfudge*thick#;
+pangle:=30; % pen angle
+ asc_height#:=2x_height#;
+ desc_depth#:=x_height#;
+ fig_height#:=(0.5[1,caprat])*x_height#;
+ fig_width#:=hstretch*(9/10x_height#);
+ body_height#:=caprat*asc_height#;
+ body_depth#:=caprat*desc_depth#;
+ half_height#:=1/2x_height#; % half the height of x height letters
+
+side#:=x_height#;
+ rule_thickness#:=.34pt#;
+
+jutfudge:= 3/4;
+jut#:=jutstretch*jutfudge*thick#;
+srad:=0.5;
+ o#:=5/36pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+monospace:=false; % should all characters have the same width?
+
+dot_size#:=5thin#; % size of dots
+comma_width#:=2.5dot_size#;
+
+generate uncltitle %% switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncldig.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncldig.mf
new file mode 100644
index 00000000000..37029bebd60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/uncldig.mf
@@ -0,0 +1,218 @@
+%%
+%% This is file `uncldig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `dig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "Uncial digit 1";
+beginchar("1", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+y1=h; bot y2=0;
+%%ductus:=true;
+draw_tstem(1,2,srad);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "1"
+
+cmchar "Uncial digit 2";
+beginchar("2", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx+o; top y1=h-2thin;
+x2=1/2w; top y2= h+o;
+rt x3=w-pcshiftx-o; y3=3/4h;
+lft x5=pcshiftx; bot y5=0;
+rt x6=w-pcshiftx; y6=y5;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(5,6,thin); % foot
+draw z1..z2{right}..z3{down}..{-pdir}z5wl; % curve
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "2"
+
+cmchar "Uncial digit 3";
+beginchar("3", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x3=pcshiftx; x10=x3;
+rt x5=w-pcshiftx; x8=x5-3thin;
+x4=0.5[x3,x5];
+x9=0.5[x10,x8];
+lft x6=pcshiftx+3thin; x7=x6;
+bot y3=thin; top y10=h-2thin;
+y6=0.5[y3,y10]; y7=y6;
+bot y4=-thin; top y9=h+thin;
+y5=0.5[y3,y6];
+y8=11/12[y7,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z3..z4{right}..z5{up}...{-pdir}z6; % bottom bowl
+draw z7{pdir}..z8{up}..z9{left}..z10; % top bowl
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "3"
+
+cmchar "Uncial digit 4";
+beginchar("4", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+x1=x2=w-pcshiftx-jut;
+y1=h; bot y2=0;
+lft x3=pcshiftx; y3=0.33h;
+rt x4=w-pcshiftx; y4=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad); % main stem
+draw_wave(3,4,thin); % crossbar
+draw z3wl--z1; % diagonal
+ductus:=false;
+penlabels(1,2,3,4,100);
+endchar; % end "4"
+
+cmchar "Uncial digit 5";
+beginchar("5", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+lft x2=pcshiftx; y2=y1;
+x3=x2; y3=0.5h+thin;
+x4=0.5[x1,x3]; y4=0.5[y3,y5];
+rt x5=w-pcshiftx; y5=0.3h;
+x6=w/2; bot y6=0;
+lft x7=pcshiftx; bot y7=2thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(2,1,thin); % top squiggle
+draw z3{pdir}..z5{down}..z6{left}..z7; % curve
+draw z2wl--z3; % vertical
+ductus:=false;
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "5"
+
+cmchar "Uncial digit 6";
+beginchar("6", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-2thin;
+x2=1/2w; top y2= h;
+lft x3=pcshiftx; y3=1/2h;
+x4=x2; bot y4=0;
+rt x5=w-pcshiftx; y5=1/4h;
+lft x6=rt x3; bot y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{left}..z3{down}..z4{right}..z5{up}..{-pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "6"
+
+cmchar "Uncial digit 7";
+beginchar("7", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx;
+rt x2=w-pcshiftx;
+top y1=top y2=h;
+x4=w/2; bot y4=0;
+x3=0.5[x2,x4]-3thin; y3=0.5[y2,y4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_wave(1,2,thin); % top bar
+draw z1wr..z3..z4;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "7"
+
+cmchar "Uncial digit 8";
+beginchar("8", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+numeric alpha; alpha:=1;
+pickup quill;
+lft x1=alpha*pcshiftx+o; rt x3=w-alpha*pcshiftx-o; y1=y3=3/4h;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+x5=x2; y5=h/2+2o;
+lft x11=pcshiftx; rt x13=w-pcshiftx; y11=y13=1/4h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z5..z11..z4..z13..z5..cycle;
+ductus:=false;
+penlabels(1,2,3,4,5,11,13,100);
+endchar; % end "8"
+
+cmchar "Uncial digit 9";
+beginchar("9", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+pickup quill;
+lft x1=pcshiftx; bot y1=2thin;
+x2=1/2w; bot y2= 0;
+rt x3=w-pcshiftx; y3=1/2h;
+x4=x2; top y4=h;
+lft x5=pcshiftx; y5=3/4h;
+rt x6=lft x3; top y6=y3;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2{right}..z3{up}..z4{left}..z5{down}..{pdir}z6;
+ductus:=false;
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "9"
+
+cmchar "Uncial digit 0";
+beginchar("0", 2u#+fig_width#, fig_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "0"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncll.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncll.mf
new file mode 100644
index 00000000000..28299c68a09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/uncll.mf
@@ -0,0 +1,699 @@
+%%
+%% This is file `uncll.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `min')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "Uncial letter a";
+beginchar("a", 2u#+hstretch*(x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx+sqxside/3; rt x2=lft x1+2/3sqxside;
+y1=h; y2=0;
+z3=3/4[z2,z1];
+z5=3/16[z2,z1];
+y4=1/10[y5,y3];
+lft x4=pcshiftx;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % the stem
+draw z3{-pdir}..z4{down}..{pdir}z5;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar; % end "a"
+
+cmchar "Uncial letter b";
+beginchar("b", 2u#+hstretch*(x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut/2;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pair uncial; uncial=(qhor,0.5qvert);
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; y2=h/4;
+x3=pcshiftx+sqxside/2; bot y3=0;
+rt x4=pcshiftx+sqxside; y4=0.3h;
+lft x5=x1; bot y5=h/2;
+z5'=z5 + thick*uncial;
+x6=x4-thick; y6=0.85h;
+x7=x1; y7=0.9h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % the stem
+draw z2{down}..z3{right}..z4{up}..{-uncial}z5'--z5; % bottom bowl
+draw z5--z5'{uncial}..z6{up}..{-pdir}z7; % top bowl
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,5',6,7,8,100);
+endchar; % end "b"
+
+cmchar "Uncial letter c";
+beginchar("c", u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u/2;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.2h;
+y6=0.75h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "c"
+
+cmchar "Uncial letter d";
+beginchar("d", 2u#+hstretch*(x_height#), 5/4x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=4/5h; sqxside:=hstretch*sqyside;
+y100 = side/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=sqyside/2;
+x2=x4=w/2; top y2=sqyside; bot y4=0;
+x5=x6=x3;
+y5=0.2h;
+y6=0.75h;
+rt x0=pcshiftx+0.5sqxside; top y0=sqyside;
+lft x7=pcshiftx+0.5sqxside;
+bot y7=sqyside;
+lft x8=pcshiftx; y8=y7+thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z0{-pdir}..z1{down}..z4{right}..z3{up}..z7..z8;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "d"
+
+cmchar "Uncial letter e";
+beginchar("e", 2u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.2h;
+y6=0.75h;
+x7=x1; y7=y1;
+%%x8=x7+side+0.5thick; y8=y7;
+x8=w-pcshiftx; y8=y7;
+x10=x7; y10=y7+3thin;
+numeric alpha; alpha:=0.5; % dishing
+x9=0.5[x8,x10]; y9=(0.5alpha)[y8,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl
+pickup stylus;
+filldraw z7--z8..z9..z10--cycle; % the bar
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "e"
+
+cmchar "Uncial letter f";
+beginchar("f", 2u#+hstretch*(jut#+x_height#), x_height#, 2/3x_height#);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; bot y2=-d/2;
+x3=x4=x1; y3=h-thick; y4=0;
+numeric rise, fall, fjut;
+rise:=thick; fall:=0; fjut:=2/3sqxside;
+%%ductus:=true;
+draw_jstem(1,2,srad,d/2,d/2);
+draw_flick(3,rise,fall,fjut);
+draw_flick(4,rise,fall,fjut);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "f"
+
+cmchar "Uncial letter g";
+beginchar("g", u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u/2;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.2h;
+y6=0.75h;
+lft x7=x5-thick; bot y7=y5-3thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl
+draw z5{down}..{-pdir}z7; % the stem
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "g"
+
+cmchar "Uncial letter h";
+beginchar("h", 2u#+hstretch*(jut#+thick#+x_height#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h/2; % asc_height is 2x_height !!!
+sqxside:=hstretch*sqyside;
+y100 = sqyside/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; bot y2=0;
+x99=w/2; y99=sqyside/2;
+y3=y5=y99;
+lft x3= pcshiftx;
+%%rt x5=x99+w-pcshiftx;
+x5 = x99 + (x99-x3);
+x4=x6=x99; top y4=sqyside; bot y6 =0;
+path pcirc; pcirc=z6..z5..z4..z3..cycle;
+x1'=x2'=x1+0.5thick; y1'=h; y2'=0;
+z7' = (z1'--z2') intersectionpoint (subpath(2,3) of pcirc);
+x7=x1; y7=y7';
+z99'=z99 - 500ppdir;
+z8' = (z99--z99') intersectionpoint subpath(0,1) of pcirc;
+x8=x8'; bot y8=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw z1'--z2'; draw z99--z99'; draw pcirc;
+fi
+draw_istem(1,2,srad);
+draw z7{pdir}..z4{right}..z5{down}..{-pdir}z8;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,1',2,2',3,4,5,6,7,7',8,8',99,99',100);
+endchar; % end "h"
+
+cmchar "Uncial letter i";
+beginchar("i", 2u#+hstretch*(thick#+2jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_istem(1,2,srad);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "i"
+
+cmchar "Uncial letter j";
+beginchar("j", 2u#+hstretch*(thick#+2jut#), x_height#, desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h; sqxside:=sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_jstem(1,2,srad,2/3sqxside,desc_depth);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "j"
+
+cmchar "Uncial letter k";
+beginchar("k", 2u#+hstretch*(jut#+4/3x_height#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h/2; % asc_height = 2x_height !!!
+sqxside:=hstretch*sqyside;
+y100 = side/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; bot y2=0;
+numeric rise,fall,fjut;
+x3=x1; y3=2/3side;
+rise:=1/3sqyside; fall:=-rise/2; fjut:=sqxside; %% fjut:=2/3side;
+x4=x3+0.25thick; y4=y3+0.5thick;
+x5=x3+side; y5=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad);
+draw_flick(3,rise,fall,fjut);
+draw_tstem(4,5,srad);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar; % end "k"
+
+cmchar "Uncial letter l";
+beginchar("l", 2u#+hstretch*(x_height#+jut#), asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h/2; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; y2=h/4;
+x3=0.5[x1,x4]; bot y3=0;
+rt x4=w-u; y4=0.1h;
+%%ductus:=true;
+draw_tlserif(1,2,srad); % the stem
+draw z2{down}..z3{right}..{pdir}z4; % the bowl
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "l"
+
+cmchar "Uncial letter m";
+beginchar("m", 2u#+hstretch*(9/6x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=1/3sqxside; bot y1=0;
+lft x2= pcshiftx; y2=h/2;
+lft x4=pcshiftx+2/3sqxside; y4=2/3h;
+x3=0.5[x2,x4]; top y3=h;
+x5=x4; y5=y1;
+z6=z4;
+numeric rise,fall,mjut;
+rise=h-y6; fall=y6; mjut=w-pcshiftx-x6;
+%%ductus:=true;
+draw z1..z2{up}..z3{right}..{down}z4; % left half
+draw_tstem(4,5,srad); % middle stem
+draw_hbowl(6,rise,fall,mjut); % right half
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "m"
+
+cmchar "Uncial letter n";
+beginchar("n", 2u#+hstretch*(jut#+x_height#), x_height#, 0.5x_height#);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+x2=x1; y2=y1-thin;
+numeric jjut, jdepth;
+jjut=2jut; jdepth=y2+d-thin;
+rt x4=pcshiftx+sqxside; y4=y1;
+x3=x4; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_jcurve(1,srad,jjut,jdepth); % left stem
+draw_istem(4,3,srad); % right stem
+draw z1--z3; % diagonal
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "n"
+
+cmchar "Uncial letter o";
+beginchar("o", u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u/2;
+sqyside:=h;
+sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "o"
+
+cmchar "Uncial letter p";
+beginchar("p", 2u#+hstretch*(x_height#+jut#), x_height#, x_height#);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+numeric jjut, jdepth;
+jjut=1/3sqxside-thin; jdepth=h+d-thin;
+x2=x1; y2=3/4h; %% y2=2/3side;
+rt x4=w-u;
+lft x5=x1+thick; y5=0;
+y4=0.4[y3,y5];
+top y3=h; x3=0.5[x2,x4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_jcurve(1,srad,jjut,jdepth); % stem
+%%draw z2..z3{right}..z4{down}..{-pdir}z5; % bowl
+draw z1a..z3{right}..z4{down}..{-pdir}z5; % bowl
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar; % end "p"
+
+cmchar "Uncial letter q";
+beginchar("q", 2u#+hstretch*(x_height#), x_height#, x_height#);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+numeric jjut, jdepth;
+jjut=2jut; jdepth=h+d-thin;
+x2=x1-jjut; y2=y1-jdepth;
+numeric rad; rad := w/2;
+x0=w/2; y0=h/2;
+lft x4=pcshiftx; y4=y0;
+x3=x5=x0; top y3=h; bot y5=0;
+x7=x0+rad; y7=y0;
+path p[];
+p1=z1{down}..{-pdir}z2; % stem
+p2=z4{down}..z5{right}..{up}z7;
+z6'= p1 intersectionpoint p2;
+rt x6=x6'; y6=y6';
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}...{-pdir}z2; % right stem
+draw z1--z3..z4{down}..{right}z5..z6; % bowl
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,6',7,100);
+endchar; % end "q"
+
+cmchar "Uncial letter r";
+beginchar("r", 2u#+hstretch*(4/3x_height#), x_height#, 2/3x_height#);
+adjust_fit(0,0);
+sqyside:=h; sqxside:=hstretch*sqyside;
+pcshiftx := u+jut;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+numeric jjut, jdepth;
+jjut=1/5sqxside; jdepth=h+d-thin;
+x2=x1; y2=3/4h;
+rt x4=pcshiftx+3/4sqxside;
+lft x5=x1; bot y5=1/6h;
+y4=0.4[y3,y5];
+top y3=h; x3=0.5[x2,x4];
+rt x7=w-u; y7=-thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_jcurve(1,srad,jjut,jdepth); % stem
+draw z1a..z3{right}..z4{down}..{-pdir}z5; % bowl
+draw z5{-ppdir}..{right}z7; % leg
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "r"
+
+cmchar "Uncial letter s";
+beginchar("s", 2u#+hstretch*(5/6x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-thin;
+x2=w/2; top y2=h;
+lft x3=pcshiftx; y3=0.75h;
+x4=w/2; y4=h/2;
+rt x5=w-pcshiftx; y5=0.25h;
+x6=w/2; bot y6=0;
+lft x7= pcshiftx; bot y7 = thin;
+path p[];
+p1=z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7;
+pair vec[];
+vec1= direction 0 of p1;
+vec2= direction (length p1) of p1;
+z11=z1 shifted vec1;
+z17=z7 shifted -vec2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw_serif(1,11,srad);
+%%draw_serif(7,17,srad);
+%%draw z1a..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7a;
+draw p1;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,11,17,100);
+endchar; % end "s"
+
+cmchar "Uncial letter t";
+beginchar("t", u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u/2;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+top y1=h; bot y2=0;
+lft x3=pcshiftx; top y3=h-thin;
+x4=x2; top y4=h;
+rt x5=w-pcshiftx; top y5=h+thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw z3{pdir}..z4{right}..{pdir}z5;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar; % end "t"
+
+cmchar "Uncial letter u";
+beginchar("u", 2u#+hstretch*(x_height#+jut#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x6=pcshiftx+thick;
+top y6=h;
+lft x7=pcshiftx; y7=h/2;
+x8=pcshiftx+0.5sqxside; bot y8=0;
+rt x1=w-pcshiftx-jut; y1=h;
+x2=x1; bot y2=0;
+x5=x1+sqxside-thick; y5=y6;
+path p[];
+p1=z1--z2;
+p2=z6..z7{down}..z8{right}..z5;
+z9= p2 intersectionpoint p1;
+pair vec[];
+vec2 = direction 0 of p2;
+z16=z6 shifted vec2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_serif(6,16,srad); % left half
+draw z6a..z7{down}..z8{right}..z9;
+draw_istem(1,2,srad); % right stem
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "u"
+
+cmchar "Uncial letter v";
+beginchar("v", 2u#+hstretch*(x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+numeric midx; midx:= pcshiftx;
+lft x1=midx+jut; top y1=h;
+lft x2=midx; y2=h/2;
+rt x4=midx+sqxside; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-thick; y5=y1;
+path p[];
+p1=z1..z2{down}..z3{right}..z4{up}..z5;
+pair vec[];
+vec1 = direction 0 of p1;
+z11=z1 shifted vec1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_serif(1,11,srad); % right half
+draw z1a..z2{down}..z3{right}..z4{up}..z5;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,11,100);
+endchar; % end "v"
+
+cmchar "Uncial letter w";
+beginchar("w", 2u#+hstretch*(5/3x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+numeric midx; midx:= pcshiftx+2/3sqxside;
+lft x1=midx+jut; top y1=h;
+lft x2=midx; y2=h/2;
+rt x4=midx+sqxside; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-thick; y5=y1;
+path p[];
+p1=z1..z2{down}..z3{right}..z4{up}..z5;
+lft x6=pcshiftx+thick;
+y6=y1;
+lft x7=pcshiftx; y7=y2;
+x8=pcshiftx+0.5sqxside; y8=y3;
+p2=z6..z7{down}..z8{right}..(z5 shifted -pdir);
+z9= p2 intersectionpoint p1;
+pair vec[];
+vec1 = direction 0 of p1;
+vec2 = direction 0 of p2;
+z11=z1 shifted vec1;
+z16=z6 shifted vec2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_serif(1,11,srad); % right half
+draw z1a..z2{down}..z3{right}..z4{up}..z5;
+draw_serif(6,16,srad); % left half
+draw z6a..z7{down}..z8{right}..z9;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "w"
+
+cmchar "Uncial letter x";
+beginchar("x", u#+hstretch*(5/3x_height#), x_height#, 1/3x_height#);
+adjust_fit(0,0);
+pcshiftx := 0;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx+1/2sqxside; rt x2=w-jut;
+y1=h; y2=0;
+lft x3=pcshiftx; bot y3=-d;
+z4=z3 shifted (jut*right);
+z5=z4 shifted (jut*pdir);
+rt x8=w-pcshiftx; top y8=h;
+z7=z8 shifted (jut*left);
+z6=z7 shifted (-jut*pdir);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % thick diagonal
+draw z3---z4..z5---z6..z7---z8; % thin diagonal
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "x"
+
+cmchar "Uncial letter y";
+beginchar("y", 2u#+hstretch*(4/3x_height#), x_height#, 2/3x_height#);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; top y1=3/4h;
+lft x3=w/2; bot y3=-d;
+x2=0.8[x1,x3]; y2=0.5[y1,y3];
+rt x4=w-pcshiftx; y4=y1;
+x7=pcshiftx; y7=-d;
+path p[];
+p1=z1..z2..z3;
+z6= (z7--z4) intersectionpoint p1;
+x5=0.4[x6,x4]; y5=0.5[y6,y4];
+x8=x6; y8=h;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3; % left stroke
+draw z4{left}..z6; % right stroke
+draw_pdot(8,dot_size);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "y"
+
+cmchar "Uncial letter z";
+beginchar("z", 2u#+hstretch*(4/3x_height#), x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x4=pcshiftx; bot y4=0;
+rt x6=w-pcshiftx; y6=y4;
+x5=0.5[x4,x6]; y5=y4+thin;
+x1=x4; top y1=h;
+x3=pcshiftx+sqxside; y3=y1;
+x2=0.5[x1,x3]; top y2=h-thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3; % top stroke
+draw z4..z5..z6; % bottom stroke
+pickup stylus;
+draw z4--z3;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "z"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncllig.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncllig.mf
new file mode 100644
index 00000000000..8ae19d7182f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/uncllig.mf
@@ -0,0 +1,82 @@
+%%
+%% This is file `uncllig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042"; %% , "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+
+cmchar "Uncial closing quotes";
+beginchar(oct"042",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=y2=h;
+x2=x1-(2hstretch*dot_size);
+draw_pcomma(1,dot_size,comma_width); % right
+draw_pcomma(2,dot_size,comma_width); % left
+penlabels(1,2);
+endchar; % end of "''"
+
+
+cmchar "Uncial opening quotes";
+beginchar(oct"134",2u#+hstretch*(comma_width#+3dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=y2=h;
+x2=x1+(2hstretch*dot_size);
+draw_plq(1,dot_size,comma_width); % left
+draw_plq(2,dot_size,comma_width); % right
+penlabels(1,2);
+endchar; % end of "``"
+
+
+cmchar "Uncial hyphen";
+beginchar("-",u#+hstretch*(0.8x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+draw z1--z2; % bar
+penlabels(1,2);
+endchar; % end of "-"
+
+
+cmchar "Uncial en dash";
+beginchar(oct"173",u#+hstretch*(x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+draw z1--z2; % bar
+penlabels(1,2);
+endchar; % end of "--"
+
+
+cmchar "Uncial em dash";
+beginchar(oct"174",u#+hstretch*(2x_height#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u/2;
+pickup quill;
+lft x1 = pcshiftx; rt x2=w-pcshiftx; y1=y2=h/2;
+draw z1--z2; % bar
+penlabels(1,2);
+endchar; % end of "---"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclpunct.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclpunct.mf
new file mode 100644
index 00000000000..959d50f0878
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/unclpunct.mf
@@ -0,0 +1,78 @@
+%%
+%% This is file `unclpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Uncial Comma";
+beginchar(",",2u#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h/2;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of ","
+
+
+cmchar "Uncial Period";
+beginchar(".",2u#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=u;
+x1=w/2; y1=h/2;
+draw_pdot(1,dot_size);
+penlabels(1);
+endchar; % end of "."
+
+
+cmchar "Uncial Colon";
+beginchar(":",2u#+hstretch*(dot_size#),x_height#,0);
+pcshiftx:=u;
+x1=x2=w/2; y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pdot(2,dot_size);
+penlabels(1,2);
+endchar; % end ":"
+
+
+cmchar "Uncial Semicolon";
+beginchar(";",2u#+hstretch*(comma_width#+dot_size#),x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=x2=w-pcshiftx-(0.5hstretch*dot_size); y1=2/3h; y2=1/3h;
+draw_pdot(1,dot_size);
+draw_pcomma(2,dot_size,comma_width);
+penlabels(1,2);
+endchar; % end of ";"
+
+
+cmchar "Uncial Apostrophe";
+beginchar("'",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=w-pcshiftx-(0.5hstretch*dot_size); y1=h;
+draw_pcomma(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "'"
+
+
+cmchar "Uncial Reverse apostrophe";
+beginchar("`",2u#+hstretch*(comma_width#+dot_size#),4/3x_height#,0);
+adjust_fit(0,0);
+pcshiftx:=u;
+x1=pcshiftx+(0.5hstretch*dot_size); y1=h;
+draw_plq(1,dot_size,comma_width);
+penlabels(1);
+endchar; % end of "`"
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/uncltitle.mf b/Master/texmf-dist/fonts/source/public/bookhands/uncltitle.mf
new file mode 100644
index 00000000000..88d8bc1fdd8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/uncltitle.mf
@@ -0,0 +1,236 @@
+%%
+%% This is file `uncltitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+side, y$bl); % BRHC
+ z$tr = (x$bl+side, y$bl+side); % TRHC
+ z$tl = (x$bl, y$bl+side); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+def uncial_font_setup= % contains special stuff for uncial fonts
+ define_pixels(side,half_height,carol_height,comma_width);
+ define_pixels(u,dot_size,letter_size,cap_height,width_adj,serif_fit,
+ cap_serif_fit,jut,cap_jut);
+ define_pixels(fig_width);
+ define_whole_pixels(letter_fit);
+ define_whole_vertical_pixels(body_height,asc_height,cap_height,x_height,
+ desc_depth,body_depth,fig_height);
+ define_corrected_pixels(o);
+ define_blacker_pixels(thick,thin);
+ let adjust_fit = normal_adjust_fit;
+ pickup pencircle scaled thin;
+ stylus:=savepen;
+ pickup pencircle xscaled thick yscaled thin rotated pangle;
+ quill:=savepen;
+ numeric pcshiftx#; % x value of LHS of box wrt origin of char box
+ define_pixels(pcshiftx);
+ numeric sqxside#; % x size of the square
+ numeric sqyside#; % y size of the square
+ define_pixels(sqxside,sqyside);
+
+enddef; % end of uncial_font_setup
+
+boolean ductus;
+ductus:=false;
+numeric qhor, qvert;
+qhor:=cosd(pangle); qvert:=sind(pangle);
+pair pdir; pdir=dir(pangle);
+pair ppdir; ppdir=dir(pangle+90);
+
+def draw_serif(suffix $, $$)(expr fr)=
+ numeric beta, ajut, bjut;
+ beta=1-fr;
+ ajut=fr*jut; bjut=beta*jut;
+ pair vec[]; vec1=unitvector(z$$-z$);
+ vec2=ajut*vec1;
+ z$a=z$ shifted vec2;
+ z$b=z$a rotatedaround (z$,-90);
+ boolean top_serif;
+ if y$>y$$:
+ top_serif := true;
+ z$c=z$b shifted (-bjut*pdir);
+ else:
+ top_serif:=false;
+ z$c=z$b shifted (bjut*pdir);
+ fi
+ if top_serif:
+ draw z$c--z$b{pdir}..{z$$-z$}z$a; % the serif
+ else:
+ draw z$c--z$b{-pdir}..{z$$-z$}z$a;
+ fi
+ labels($a,$b,$c);
+enddef; % end of draw_serif
+
+
+def draw_istem(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % top serif
+ draw_serif($$, $, fr); % bottom serif
+ draw z$a--z$$a; % the stem
+enddef; % end of draw_istem
+
+
+def draw_tstem(suffix $, $$)(expr fr)=
+ draw_serif($$, $, fr); % the serif
+ draw z$--z$$a; % the stem
+enddef; % end of draw_tstem
+
+
+def draw_tlserif(suffix $, $$)(expr fr)=
+ draw_serif($, $$, fr); % the serif
+ draw z$a--z$$; % the stem
+enddef; % end of draw_tlserif
+
+
+def draw_jstem(suffix $, $$)(expr fr, jjut, jdepth)=
+ draw_serif($, $$, fr); % the serif
+ lft x$$a=x$$-jjut; bot y$$a=y$$-jdepth;
+ draw z$a--z$${down}..{-pdir}z$$a; % straight stem and curved ending
+ labels($$a);
+enddef; % end of draw_jstem
+
+
+def draw_jcurve(suffix $)(expr fr, jjut, jdepth)=
+ z$'= z$ shifted down;
+ draw_serif($, $', fr); % the serif
+ lft x$d=x$-jjut; bot y$d=y$-jdepth;
+ draw z$a{down}...{-pdir}z$d; % curved downwards stem
+ labels($d);
+enddef; % end of draw_jcurve
+
+
+def draw_flick(suffix $)(expr rise, fall, fjut)=
+ rt x$b = x$+fjut; top y$b=y$-fall;
+ x$a=0.5[x$,x$b]; top y$a=y$+rise;
+ draw z$..z$a..z$b;
+ labels($a,$b);
+enddef; % end of draw_flick
+
+
+def draw_hbowl(suffix $)(expr rise, fall, fjut)=
+ numeric rad; rad=0.5(rise+fall);
+ x$c=x$+fjut-rad; y$c=y$+rise-rad;
+ lft x$d=x$c-rad; rt x$f=x$c+rad; y$d=y$f=y$c;
+ x$e=x$g=x$c; top y$e=y$c+rad; bot y$g=y$c-rad;
+ z$k = z$c shifted (-rad*ppdir);
+ path p[];
+ p1 = z$e{right}..z$f{down}..{left}z$g;
+ z$i = (z$c--z$k) intersectionpoint p1;
+ x$j=x$i; bot y$j = y$c-rad;
+ draw z$..z$e{right}..z$f{down}..{-pdir}z$j;
+ labels($c,$d,$e,$f,$g,$i,$j,$k);
+enddef; % end of draw_hbowl
+
+
+def draw_wave(suffix $,$$)(expr f)=
+ x$wl=x$; y$wl=y$-f;
+ x$wr=x$$; y$wr=y$$+f;
+ z$wc=0.5[z$wl,z$wr];
+ draw z$wl{pdir}..z$wc{right}..{pdir}z$wr;
+ labels($wl,$wc,$wr);
+enddef; % end of draw_wave
+
+def draw_pdot(suffix $)(expr sz)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$ shifted (0.5sz*up);
+ z$u = z$s shifted (sz*right);
+ z$v = z$t shifted (sz*down);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pdot
+
+
+def draw_pcomma(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s-ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_pcomma
+
+
+def draw_plq(suffix $)(expr sz, ar)=
+ z$s = z$ shifted (0.5sz*left);
+ z$t = z$s shifted (sz*right);
+ x$v=x$s+ar; y$v=y$s-ar;
+ z$u = z$v shifted (sz*right);
+ pickup stylus;
+ filldraw z$s--z$t--z$u--z$v--cycle;
+ labels($s,$t,$u,$v);
+enddef; % end of draw_plq
+
+
+font_coding_scheme:="ASCII minuscules and punctuation";
+mode_setup;
+uncial_font_setup;
+
+
+input uncll; % minuscules (lower case)
+input unclu; % majuscules (capitals)
+input unclpunct; % punctuation
+input uncllig; % the several dashes
+input uncldig; % arabic digits
+%%%input unclp; % ampersand and ?mark
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+%% ligtable "P": "T": "Y": "A" kern kk#;
+%% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi,
+%% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+%% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+%% "V" kern k#, "Y" kern k#;
+%% ligtable "A": if serifs: "R": fi
+%% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+%% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+%%ligtable "I": "I" kern -k#; % Richard III
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/bookhands/unclu.mf b/Master/texmf-dist/fonts/source/public/bookhands/unclu.mf
new file mode 100644
index 00000000000..f92af839544
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/bookhands/unclu.mf
@@ -0,0 +1,705 @@
+%%
+%% This is file `unclu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uncial.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+cmchar "Uncial letter A";
+beginchar("A", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx+sqxside/3; rt x2=lft x1+2/3sqxside;
+y1=h; y2=0;
+z3=3/4[z2,z1];
+z5=3/16[z2,z1];
+y4=1/10[y5,y3];
+lft x4=pcshiftx;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % the stem
+draw z3{-pdir}..z4{down}..{pdir}z5;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar; % end "A"
+
+cmchar "Uncial letter B";
+beginchar("B", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pair uncial; uncial=(qhor,0.5qvert);
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; y2=h/4;
+x3=pcshiftx+sqxside/2; bot y3=0;
+rt x4=pcshiftx+sqxside; y4=0.3h;
+lft x5=x1; bot y5=h/2;
+z5'=z5 + thick*uncial;
+x6=x4-thick; y6=0.85h;
+x7=x1; y7=0.9h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tlserif(1,2,srad); % the stem
+draw z2{down}..z3{right}..z4{up}..{-uncial}z5'--z5; % bottom bowl
+draw z5--z5'{uncial}..z6{up}..{-pdir}z7; % top bowl
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,5',6,7,8,100);
+endchar; % end "B"
+
+cmchar "Uncial letter C";
+beginchar("C", u#+caprat*hstretch*(x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u/2;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.2h;
+y6=0.75h;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "C"
+
+cmchar "Uncial letter D";
+beginchar("D", 2u#+caprat*hstretch*(x_height#), caprat*(5/4x_height#), 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=4/5h; sqxside:=hstretch*sqyside;
+y100 = side/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=sqyside/2;
+x2=x4=w/2; top y2=sqyside; bot y4=0;
+x5=x6=x3;
+y5=0.2h;
+y6=0.75h;
+rt x0=pcshiftx+0.5sqxside; top y0=sqyside;
+lft x7=pcshiftx+0.5sqxside;
+bot y7=sqyside;
+lft x8=pcshiftx; y8=y7+thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z0{-pdir}..z1{down}..z4{right}..z3{up}..z7..z8;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,7,8,100);
+endchar; % end "D"
+
+cmchar "Uncial letter E";
+beginchar("E", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.2h;
+y6=0.75h;
+x7=x1; y7=y1;
+%%x8=x7+side+0.5thick; y8=y7;
+x8=w-pcshiftx; y8=y7;
+x10=x7; y10=y7+3thin;
+numeric alpha; alpha:=0.5; % dishing
+x9=0.5[x8,x10]; y9=(0.5alpha)[y8,y10];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl
+pickup stylus;
+filldraw z7--z8..z9..z10--cycle; % the bar
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "E"
+
+cmchar "Uncial letter F";
+beginchar("F", 2u#+caprat*hstretch*(jut#+x_height#), caprat*x_height#,
+ caprat*(2/3x_height#));
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; bot y2=-d/2;
+x3=x4=x1; y3=h-thick; y4=0;
+numeric rise, fall, fjut;
+rise:=thick; fall:=0; fjut:=2/3sqxside;
+%%ductus:=true;
+draw_jstem(1,2,srad,d/2,d/2);
+draw_flick(3,rise,fall,fjut);
+draw_flick(4,rise,fall,fjut);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "F"
+
+cmchar "Uncial letter G";
+beginchar("G", u#+caprat*hstretch*(x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u/2;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=pcshiftx+sqxside; y1=y3=h/2;
+x2=x4=w/2; top y2=h; bot y4=0;
+x5=x6=x3;
+y5=0.2h;
+y6=0.75h;
+lft x7=x5-thick; bot y7=y5-3thick;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z5{-pdir}..{left}z4..z1..z2..z6; % the bowl
+draw z5{down}..{-pdir}z7; % the stem
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "G"
+
+cmchar "Uncial letter H";
+beginchar("H", 2u#+caprat*hstretch*(jut#+thick#+x_height#), caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h/2; % asc_height is 2x_height !!!
+sqxside:=hstretch*sqyside;
+y100 = sqyside/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; bot y2=0;
+x99=w/2; y99=sqyside/2;
+y3=y5=y99;
+lft x3= pcshiftx;
+%%rt x5=x99+w-pcshiftx;
+x5 = x99 + (x99-x3);
+x4=x6=x99; top y4=sqyside; bot y6 =0;
+path pcirc; pcirc=z6..z5..z4..z3..cycle;
+x1'=x2'=x1+0.5thick; y1'=h; y2'=0;
+z7' = (z1'--z2') intersectionpoint (subpath(2,3) of pcirc);
+x7=x1; y7=y7';
+z99'=z99 - 500ppdir;
+z8' = (z99--z99') intersectionpoint subpath(0,1) of pcirc;
+x8=x8'; bot y8=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+ draw z1'--z2'; draw z99--z99'; draw pcirc;
+fi
+draw_istem(1,2,srad);
+draw z7{pdir}..z4{right}..z5{down}..{-pdir}z8;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,1',2,2',3,4,5,6,7,7',8,8',99,99',100);
+endchar; % end "H"
+
+cmchar "Uncial letter I";
+beginchar("I", 2u#+hstretch*(thick#+2jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_istem(1,2,srad);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "I"
+
+cmchar "Uncial letter J";
+beginchar("J", 2u#+caprat*hstretch*(thick#+2jut#), caprat*x_height#,
+ caprat*desc_depth#);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h; sqxside:=sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+top y1=h; bot y2=0;
+%%ductus:=true;
+draw_jstem(1,2,srad,2/3sqxside,desc_depth);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "J"
+
+cmchar "Uncial letter K";
+beginchar("K", 2u#+caprat*hstretch*(jut#+4/3x_height#), caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h/2; % asc_height = 2x_height !!!
+sqxside:=hstretch*sqyside;
+y100 = side/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; bot y2=0;
+numeric rise,fall,fjut;
+x3=x1; y3=2/3side;
+rise:=1/3sqyside; fall:=-rise/2; fjut:=sqxside; %% fjut:=2/3side;
+x4=x3+0.25thick; y4=y3+0.5thick;
+x5=x3+side; y5=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad);
+draw_flick(3,rise,fall,fjut);
+draw_tstem(4,5,srad);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar; % end "K"
+
+cmchar "Uncial letter L";
+beginchar("L", 2u#+caprat*hstretch*(x_height#+jut#), caprat*asc_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h/2; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=lft x2=pcshiftx;
+top y1=h; y2=h/4;
+x3=0.5[x1,x4]; bot y3=0;
+rt x4=w-u;
+y4=0.1h;
+%%ductus:=true;
+draw_tlserif(1,2,srad); % the stem
+draw z2{down}..z3{right}..{pdir}z4; % the bowl
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,100);
+endchar; % end "L"
+
+cmchar "Uncial letter M";
+beginchar("M", 2u#+caprat*hstretch*(9/6x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=1/3sqxside; bot y1=0;
+lft x2= pcshiftx; y2=h/2;
+lft x4=pcshiftx+2/3sqxside; y4=2/3h;
+x3=0.5[x2,x4]; top y3=h;
+x5=x4; y5=y1;
+z6=z4;
+numeric rise,fall,mjut;
+rise=h-y6; fall=y6; mjut=w-pcshiftx-x6;
+%%ductus:=true;
+draw z1..z2{up}..z3{right}..{down}z4; % left half
+draw_tstem(4,5,srad); % middle stem
+draw_hbowl(6,rise,fall,mjut); % right half
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "M"
+
+cmchar "Uncial letter N";
+beginchar("N", 2u#+caprat*hstretch*(jut#+x_height#), caprat*x_height#,
+ caprat*(0.5x_height#));
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+x2=x1; y2=y1-thin;
+numeric jjut, jdepth;
+jjut=2jut; jdepth=y2+d-thin;
+rt x4=pcshiftx+sqxside; y4=y1;
+x3=x4; bot y3=0;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_jcurve(1,srad,jjut,jdepth); % left stem
+draw_istem(4,3,srad); % right stem
+draw z1--z3; % diagonal
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "N"
+
+cmchar "Uncial letter O";
+beginchar("O", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; rt x3=w-pcshiftx; y1=y3=h/2;
+x2=x4=w/2; top y2=h+o; bot y4=-o;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3..z4..cycle;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,100);
+endchar; % end "O"
+
+cmchar "Uncial letter P";
+beginchar("P", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#,
+ caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := u+jut;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+numeric jjut, jdepth;
+jjut=1/3sqxside-thin; jdepth=h+d-thin;
+x2=x1; y2=3/4h; %% y2=2/3side;
+rt x4=w-u;
+lft x5=x1+thick; y5=0;
+y4=0.4[y3,y5];
+top y3=h; x3=0.5[x2,x4];
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_jcurve(1,srad,jjut,jdepth); % stem
+%%draw z2..z3{right}..z4{down}..{-pdir}z5; % bowl
+draw z1a..z3{right}..z4{down}..{-pdir}z5; % bowl
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar; % end "P"
+
+cmchar "Uncial letter Q";
+beginchar("Q", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+rt x1=w-pcshiftx; top y1=h;
+numeric jjut, jdepth;
+jjut=2jut; jdepth=h+d-thin;
+x2=x1-jjut; y2=y1-jdepth;
+numeric rad; rad := w/2;
+x0=w/2; y0=h/2;
+lft x4=pcshiftx; y4=y0;
+x3=x5=x0; top y3=h; bot y5=0;
+x7=x0+rad; y7=y0;
+path p[];
+p1=z1{down}..{-pdir}z2; % stem
+p2=z4{down}..z5{right}..{up}z7;
+z6'= p1 intersectionpoint p2;
+rt x6=x6'; y6=y6';
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1{down}...{-pdir}z2; % right stem
+draw z1--z3..z4{down}..{right}z5..z6; % bowl
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(0,1,2,3,4,5,6,6',7,100);
+endchar; % end "Q"
+
+cmchar "Uncial letter R";
+beginchar("R", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#,
+ caprat*(2/3x_height#));
+adjust_fit(0,0);
+sqyside:=h; sqxside:=hstretch*sqyside;
+pcshiftx := u+jut;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; top y1=h;
+numeric jjut, jdepth;
+jjut=1/5sqxside; jdepth=h+d-thin;
+x2=x1; y2=3/4h;
+rt x4=pcshiftx+3/4sqxside;
+lft x5=x1; bot y5=1/6h;
+y4=0.4[y3,y5];
+top y3=h; x3=0.5[x2,x4];
+rt x7=w-u; y7=-thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_jcurve(1,srad,jjut,jdepth); % stem
+draw z1a..z3{right}..z4{down}..{-pdir}z5; % bowl
+draw z5{-ppdir}..{right}z7; % leg
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,100);
+endchar; % end "R"
+
+cmchar "Uncial letter S";
+beginchar("S", 2u#+caprat*hstretch*(5/6x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+rt x1=w-pcshiftx; top y1=h-thin;
+x2=w/2; top y2=h;
+lft x3=pcshiftx; y3=0.75h;
+x4=w/2; y4=h/2;
+rt x5=w-pcshiftx; y5=0.25h;
+x6=w/2; bot y6=0;
+lft x7= pcshiftx; bot y7 = thin;
+path p[];
+p1=z1..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7;
+pair vec[];
+vec1= direction 0 of p1;
+vec2= direction (length p1) of p1;
+z11=z1 shifted vec1;
+z17=z7 shifted -vec2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+%%draw_serif(1,11,srad);
+%%draw_serif(7,17,srad);
+%%draw z1a..z2{left}..z3{down}..z4..z5{down}..z6{left}..z7a;
+draw p1;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,11,17,100);
+endchar; % end "S"
+
+cmchar "Uncial letter T";
+beginchar("T", u#+caprat*hstretch*(x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u/2;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+x1=x2=w/2;
+top y1=h; bot y2=0;
+lft x3=pcshiftx; top y3=h-thin;
+x4=x2; top y4=h;
+rt x5=w-pcshiftx; top y5=h+thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_tstem(1,2,srad);
+draw z3{pdir}..z4{right}..{pdir}z5;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,100);
+endchar; % end "T"
+
+cmchar "Uncial letter U";
+beginchar("U", 2u#+caprat*hstretch*(x_height#+jut#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x6=pcshiftx+thick;
+top y6=h;
+lft x7=pcshiftx; y7=h/2;
+x8=pcshiftx+0.5sqxside; bot y8=0;
+rt x1=w-pcshiftx-jut; y1=h;
+x2=x1; bot y2=0;
+x5=x1+sqxside-thick; y5=y6;
+path p[];
+p1=z1--z2;
+p2=z6..z7{down}..z8{right}..z5;
+z9= p2 intersectionpoint p1;
+pair vec[];
+vec2 = direction 0 of p2;
+z16=z6 shifted vec2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_serif(6,16,srad); % left half
+draw z6a..z7{down}..z8{right}..z9;
+draw_istem(1,2,srad); % right stem
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "U"
+
+cmchar "Uncial letter V";
+beginchar("V", 2u#+caprat*hstretch*(x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+numeric midx; midx:= pcshiftx;
+lft x1=midx+jut; top y1=h;
+lft x2=midx; y2=h/2;
+rt x4=midx+sqxside; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-thick; y5=y1;
+path p[];
+p1=z1..z2{down}..z3{right}..z4{up}..z5;
+pair vec[];
+vec1 = direction 0 of p1;
+z11=z1 shifted vec1;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_serif(1,11,srad); % right half
+draw z1a..z2{down}..z3{right}..z4{up}..z5;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,11,100);
+endchar; % end "V"
+
+cmchar "Uncial letter W";
+beginchar("W", 2u#+caprat*hstretch*(5/3x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+numeric midx; midx:= pcshiftx+2/3sqxside;
+lft x1=midx+jut; top y1=h;
+lft x2=midx; y2=h/2;
+rt x4=midx+sqxside; y4=y2;
+x3=0.5[x2,x4]; bot y3=0;
+x5=x4-thick; y5=y1;
+path p[];
+p1=z1..z2{down}..z3{right}..z4{up}..z5;
+lft x6=pcshiftx+thick;
+y6=y1;
+lft x7=pcshiftx; y7=y2;
+x8=pcshiftx+0.5sqxside; y8=y3;
+p2=z6..z7{down}..z8{right}..(z5 shifted -pdir);
+z9= p2 intersectionpoint p1;
+pair vec[];
+vec1 = direction 0 of p1;
+vec2 = direction 0 of p2;
+z11=z1 shifted vec1;
+z16=z6 shifted vec2;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_serif(1,11,srad); % right half
+draw z1a..z2{down}..z3{right}..z4{up}..z5;
+draw_serif(6,16,srad); % left half
+draw z6a..z7{down}..z8{right}..z9;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,11,16,100);
+endchar; % end "W"
+
+cmchar "Uncial letter X";
+beginchar("X", u#+caprat*hstretch*(5/3x_height#), caprat*x_height#,
+ caprat*(1/3x_height#));
+adjust_fit(0,0);
+pcshiftx := 0;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx+1/2sqxside; rt x2=w-jut;
+y1=h; y2=0;
+lft x3=pcshiftx; bot y3=-d;
+z4=z3 shifted (jut*right);
+z5=z4 shifted (jut*pdir);
+rt x8=w-pcshiftx; top y8=h;
+z7=z8 shifted (jut*left);
+z6=z7 shifted (-jut*pdir);
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw_istem(1,2,srad); % thick diagonal
+draw z3---z4..z5---z6..z7---z8; % thin diagonal
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,100);
+endchar; % end "X"
+
+cmchar "Uncial letter Y";
+beginchar("Y", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#, 2/3caprat*x_height#);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x1=pcshiftx; top y1=3/4h;
+lft x3=w/2; bot y3=-d;
+x2=0.8[x1,x3]; y2=0.5[y1,y3];
+rt x4=w-pcshiftx; y4=y1;
+x7=pcshiftx; y7=-d;
+path p[];
+p1=z1..z2..z3;
+z6= (z7--z4) intersectionpoint p1;
+x5=0.4[x6,x4]; y5=0.5[y6,y4];
+x8=x6; y8=h;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3; % left stroke
+draw z4{left}..z6; % right stroke
+draw_pdot(8,dot_size);
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,7,8,9,10,100);
+endchar; % end "Y"
+
+cmchar "Uncial letter Z";
+beginchar("Z", 2u#+caprat*hstretch*(4/3x_height#), caprat*x_height#, 0);
+adjust_fit(0,0);
+pcshiftx := u;
+sqyside:=h; sqxside:=hstretch*sqyside;
+y100 = h/2; x100 = pcshiftx+y100; % square center
+pickup quill;
+lft x4=pcshiftx; bot y4=0;
+rt x6=w-pcshiftx; y6=y4;
+x5=0.5[x4,x6]; y5=y4+thin;
+x1=x4; top y1=h;
+x3=pcshiftx+sqxside; y3=y1;
+x2=0.5[x1,x3]; top y2=h-thin;
+%%ductus:=true;
+if ductus:
+ pickup stylus;
+fi
+draw z1..z2..z3; % top stroke
+draw z4..z5..z6; % bottom stroke
+pickup stylus;
+draw z4--z3;
+ductus:=false;
+proofpcbb(100, y100, y100);
+penlabels(1,2,3,4,5,6,100);
+endchar; % end "Z"
+
diff --git a/Master/texmf-dist/fonts/source/public/calligra/callig15.mf b/Master/texmf-dist/fonts/source/public/calligra/callig15.mf
new file mode 100644
index 00000000000..707d4b0470a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/calligra/callig15.mf
@@ -0,0 +1,4 @@
+%
+FontSize := 15pt#;
+input calligra;
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/calligra/calligra.mf b/Master/texmf-dist/fonts/source/public/calligra/calligra.mf
new file mode 100644
index 00000000000..cb6c81ed55f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/calligra/calligra.mf
@@ -0,0 +1,12259 @@
+%% Changes made by S. Dachian ( Serguei.Dachian@univ-lemans.fr ) at 05/99
+%% to correct a bug in "W" letter, preventing the font from being correctly
+%% compiled by METAFONT. Also a hyphenation character added to the font.
+%%
+%% Original author of the font is unknown.
+%%
+mode_setup;
+smoothing := 0; autorounding := 0;
+FS#:=FontSize/1000;
+define_pixels(FS);
+
+beginchar (33,206*FS#,342*FS#,7*FS#);
+"exclam";
+path P[];
+P1 = ((42,28)
+.. controls (40,26) and (40,25)
+.. (40,23)
+.. controls (40,21) and (41,19)
+.. (42,18)
+-- (63,-3)
+.. controls (65,-5) and (66,-7)
+.. (68,-7)
+.. controls (71,-7) and (72,-5)
+.. (74,-3)
+-- (95,18)
+.. controls (96,19) and (96,21)
+.. (96,23)
+.. controls (96,25) and (97,26)
+.. (95,28)
+-- (74,50)
+.. controls (72,52) and (71,52)
+.. (69,52)
+.. controls (67,52) and (66,50)
+.. (64,49)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((95,59)
+.. controls (93,57) and (95,51)
+.. (99,51)
+.. controls (101,51) and (103,52)
+.. (104,53)
+-- (392,335)
+.. controls (393,336) and (393,338)
+.. (393,340)
+.. controls (393,343) and (390,342)
+.. (387,342)
+-- (347,342)
+.. controls (340,342) and (337,337)
+.. (336,335)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (34,193*FS#,667*FS#,0*FS#);
+"quotedbl";
+path P[];
+P1 = ((427,562)
+.. controls (427,560) and (428,559)
+.. (430,559)
+.. controls (442,559) and (454,578)
+.. (477,607)
+.. controls (491,626) and (495,631)
+.. (495,653)
+.. controls (495,661) and (487,667)
+.. (479,667)
+.. controls (452,667) and (454,652)
+.. (450,625)
+.. controls (445,590) and (427,570)
+.. (427,562)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((497,562)
+.. controls (497,560) and (498,559)
+.. (500,559)
+.. controls (512,559) and (524,578)
+.. (547,607)
+.. controls (561,626) and (565,631)
+.. (565,653)
+.. controls (565,661) and (557,667)
+.. (549,667)
+.. controls (522,667) and (524,652)
+.. (520,625)
+.. controls (515,590) and (497,570)
+.. (497,562)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (35,188*FS#,191*FS#,7*FS#);
+"numbersign";
+path P[];
+P1 = ((100,94)
+.. controls (87,81) and (68,50)
+.. (68,30)
+.. controls (68,7) and (78,-7)
+.. (98,-7)
+.. controls (138,-7) and (242,83)
+.. (242,93)
+.. controls (242,95) and (242,97)
+.. (240,97)
+.. controls (238,97) and (236,99)
+.. (234,97)
+.. controls (216,82) and (199,69)
+.. (194,63)
+.. controls (158,26) and (103,5)
+.. (99,5)
+.. controls (90,5) and (86,9)
+.. (86,18)
+.. controls (86,22) and (96,38)
+.. (105,47)
+-- (236,181)
+.. controls (238,183) and (238,185)
+.. (238,187)
+.. controls (238,189) and (235,191)
+.. (233,191)
+-- (195,191)
+.. controls (190,191) and (187,189)
+.. (185,187)
+-- (78,94)
+.. controls (76,93) and (74,92)
+.. (74,90)
+.. controls (74,86) and (76,84)
+.. (80,84)
+.. controls (82,84) and (83,85)
+.. (85,86)
+-- (128,123)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (36,559*FS#,669*FS#,83*FS#);
+"dollar";
+path P[];
+P1 = ((252,90)
+.. controls (225,113) and (196,176)
+.. (196,226)
+.. controls (196,251) and (211,286)
+.. (220,286)
+.. controls (224,286) and (228,285)
+.. (230,281)
+.. controls (234,275) and (240,274)
+.. (247,274)
+.. controls (266,274) and (280,287)
+.. (280,305)
+.. controls (280,325) and (266,334)
+.. (243,334)
+.. controls (219,334) and (183,304)
+.. (183,210)
+.. controls (183,175) and (204,121)
+.. (241,77)
+-- (153,-34)
+.. controls (152,-35) and (152,-36)
+.. (152,-37)
+.. controls (152,-43) and (157,-46)
+.. (162,-46)
+.. controls (164,-46) and (165,-44)
+.. (167,-42)
+-- (252,64)
+.. controls (256,59) and (279,39)
+.. (286,34)
+-- (204,-70)
+.. controls (203,-72) and (202,-74)
+.. (202,-76)
+.. controls (202,-81) and (209,-83)
+.. (213,-83)
+.. controls (216,-83) and (217,-81)
+.. (219,-79)
+-- (300,25)
+.. controls (335,6) and (370,-7)
+.. (403,-7)
+.. controls (503,-7) and (586,72)
+.. (586,187)
+.. controls (586,240) and (530,308)
+.. (530,320)
+.. controls (530,322) and (532,323)
+.. (533,325)
+-- (689,528)
+.. controls (726,486) and (744,451)
+.. (744,392)
+.. controls (744,382) and (740,368)
+.. (735,368)
+.. controls (731,368) and (728,368)
+.. (725,371)
+.. controls (719,377) and (713,376)
+.. (705,376)
+.. controls (688,376) and (675,361)
+.. (675,340)
+.. controls (675,324) and (691,313)
+.. (711,313)
+.. controls (734,313) and (762,346)
+.. (762,386)
+.. controls (762,454) and (733,500)
+.. (699,539)
+-- (759,618)
+.. controls (760,620) and (759,622)
+.. (759,624)
+.. controls (759,629) and (750,629)
+.. (747,625)
+-- (689,550)
+.. controls (679,557) and (665,568)
+.. (651,576)
+-- (713,657)
+.. controls (714,658) and (714,660)
+.. (714,662)
+.. controls (714,667) and (708,669)
+.. (704,669)
+.. controls (702,669) and (700,667)
+.. (699,665)
+-- (636,583)
+.. controls (611,596) and (585,606)
+.. (552,606)
+.. controls (468,606) and (396,544)
+.. (396,457)
+.. controls (396,414) and (412,371)
+.. (442,333)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((487,266)
+.. controls (516,230) and (524,208)
+.. (524,159)
+.. controls (524,105) and (461,23)
+.. (379,23)
+.. controls (355,23) and (332,28)
+.. (313,41)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((299,50)
+.. controls (287,53) and (273,67)
+.. (264,77)
+-- (451,320)
+-- (478,279)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((487,389)
+.. controls (469,414) and (458,440)
+.. (458,469)
+.. controls (458,495) and (468,519)
+.. (485,540)
+.. controls (514,575) and (540,580)
+.. (583,580)
+.. controls (599,580) and (612,577)
+.. (625,569)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((521,334)
+-- (494,374)
+-- (641,564)
+.. controls (655,557) and (667,546)
+.. (677,536)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (37,388*FS#,329*FS#,7*FS#);
+"percent";
+path P[];
+P1 = ((293,327)
+.. controls (253,327) and (150,267)
+.. (150,198)
+.. controls (150,174) and (166,158)
+.. (188,158)
+.. controls (235,158) and (333,236)
+.. (333,300)
+.. controls (333,317) and (315,327)
+.. (293,327)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((134,1)
+.. controls (133,0) and (133,-1)
+.. (133,-2)
+.. controls (133,-4) and (133,-6)
+.. (135,-6)
+.. controls (137,-6) and (140,-6)
+.. (143,-3)
+-- (461,320)
+.. controls (462,321) and (462,323)
+.. (462,325)
+.. controls (462,331) and (455,330)
+.. (451,326)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((420,162)
+.. controls (369,162) and (274,91)
+.. (274,35)
+.. controls (274,11) and (290,-7)
+.. (311,-7)
+.. controls (369,-7) and (455,87)
+.. (455,132)
+.. controls (455,149) and (440,162)
+.. (420,162)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((301,315)
+.. controls (313,315) and (320,308)
+.. (320,295)
+.. controls (320,254) and (236,170)
+.. (187,170)
+.. controls (179,170) and (171,176)
+.. (171,184)
+.. controls (171,222) and (270,315)
+.. (301,315)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((422,150)
+.. controls (437,150) and (442,140)
+.. (442,124)
+.. controls (442,89) and (359,5)
+.. (311,5)
+.. controls (304,5) and (295,7)
+.. (295,14)
+.. controls (295,61) and (395,150)
+.. (422,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (38,379*FS#,297*FS#,224*FS#);
+"ampersand";
+path P[];
+P1 = ((75,44)
+.. controls (75,25) and (94,-7)
+.. (143,-7)
+.. controls (178,-7) and (230,22)
+.. (268,62)
+.. controls (271,65) and (272,68)
+.. (276,68)
+.. controls (280,68) and (279,61)
+.. (279,57)
+.. controls (279,43) and (278,35)
+.. (276,21)
+.. controls (261,-78) and (132,-210)
+.. (26,-210)
+.. controls (-41,-210) and (-70,-185)
+.. (-70,-157)
+.. controls (-70,-129) and (-34,-90)
+.. (28,-90)
+.. controls (50,-90) and (71,-97)
+.. (77,-97)
+.. controls (79,-97) and (81,-96)
+.. (81,-94)
+.. controls (81,-86) and (59,-78)
+.. (28,-78)
+.. controls (-40,-78) and (-83,-121)
+.. (-83,-159)
+.. controls (-83,-193) and (-43,-224)
+.. (22,-224)
+.. controls (114,-224) and (195,-187)
+.. (246,-124)
+.. controls (282,-80) and (292,-38)
+.. (292,18)
+.. controls (292,46) and (286,69)
+.. (286,79)
+.. controls (286,83) and (373,193)
+.. (434,193)
+.. controls (439,193) and (445,194)
+.. (445,189)
+.. controls (445,185) and (441,186)
+.. (438,184)
+.. controls (432,180) and (431,174)
+.. (431,167)
+.. controls (431,155) and (442,146)
+.. (455,146)
+.. controls (468,146) and (475,158)
+.. (475,173)
+.. controls (475,196) and (436,216)
+.. (391,194)
+.. controls (345,171) and (286,105)
+.. (282,105)
+.. controls (282,105) and (272,137)
+.. (272,159)
+.. controls (272,167) and (271,168)
+.. (282,170)
+.. controls (301,173) and (312,178)
+.. (329,186)
+.. controls (377,208) and (404,229)
+.. (404,270)
+.. controls (404,289) and (387,297)
+.. (359,297)
+.. controls (318,297) and (263,248)
+.. (259,187)
+.. controls (258,175) and (257,174)
+.. (243,173)
+.. controls (181,168) and (123,140)
+.. (97,109)
+.. controls (76,84) and (75,66)
+.. (75,44)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((272,181)
+.. controls (268,181) and (271,186)
+.. (271,190)
+.. controls (271,231) and (319,285)
+.. (358,285)
+.. controls (377,285) and (391,281)
+.. (391,268)
+.. controls (391,217) and (297,181)
+.. (272,181)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((272,94)
+.. controls (272,86) and (194,3)
+.. (136,3)
+.. controls (119,3) and (103,15)
+.. (103,27)
+.. controls (103,90) and (206,163)
+.. (258,163)
+.. controls (260,163) and (261,145)
+.. (264,130)
+.. controls (266,117) and (272,100)
+.. (272,94)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (40,191*FS#,461*FS#,7*FS#);
+"parenleft";
+path P[];
+P1 = ((480,461)
+.. controls (474,461) and (443,439)
+.. (386,406)
+.. controls (322,369) and (265,330)
+.. (217,286)
+.. controls (118,194) and (57,44)
+.. (57,-1)
+.. controls (57,-4) and (58,-7)
+.. (61,-7)
+.. controls (67,-7) and (69,1)
+.. (70,5)
+.. controls (72,13) and (89,58)
+.. (117,104)
+.. controls (184,215) and (356,381)
+.. (479,449)
+.. controls (482,450) and (485,451)
+.. (485,454)
+.. controls (485,457) and (486,461)
+.. (480,461)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (41,193*FS#,459*FS#,7*FS#);
+"parenright";
+path P[];
+P1 = ((425,459)
+.. controls (420,459) and (418,451)
+.. (417,448)
+.. controls (403,398) and (303,231)
+.. (135,96)
+.. controls (75,48) and (30,18)
+.. (7,9)
+.. controls (-2,5) and (-2,3)
+.. (-2,-3)
+.. controls (-2,-6) and (0,-7)
+.. (3,-7)
+.. controls (4,-7) and (64,21)
+.. (156,78)
+.. controls (226,121) and (301,171)
+.. (363,282)
+.. controls (410,366) and (429,452)
+.. (429,456)
+.. controls (429,458) and (427,459)
+.. (425,459)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (42,239*FS#,668*FS#,0*FS#);
+"asterisk";
+path P[];
+P1 = ((483,568)
+.. controls (448,581) and (444,607)
+.. (425,607)
+.. controls (405,607) and (392,588)
+.. (392,584)
+.. controls (392,553) and (428,575)
+.. (472,556)
+.. controls (427,519) and (374,503)
+.. (374,480)
+.. controls (374,473) and (378,468)
+.. (385,468)
+.. controls (413,468) and (430,509)
+.. (479,548)
+.. controls (481,539) and (482,530)
+.. (482,523)
+.. controls (482,518) and (478,499)
+.. (478,478)
+.. controls (478,472) and (486,467)
+.. (492,467)
+.. controls (503,467) and (521,474)
+.. (521,503)
+.. controls (521,510) and (517,513)
+.. (512,518)
+.. controls (500,531) and (496,544)
+.. (493,556)
+.. controls (534,568) and (560,561)
+.. (576,566)
+.. controls (593,571) and (605,585)
+.. (605,592)
+.. controls (605,600) and (605,606)
+.. (592,606)
+.. controls (572,606) and (546,581)
+.. (496,568)
+.. controls (521,617) and (551,637)
+.. (551,658)
+.. controls (551,665) and (547,668)
+.. (540,668)
+.. controls (500,668) and (507,615)
+.. (483,568)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (44,129*FS#,60*FS#,25*FS#);
+"comma";
+path P[];
+P1 = ((97,60)
+.. controls (83,60) and (76,42)
+.. (68,29)
+.. controls (49,-2) and (21,-14)
+.. (21,-19)
+.. controls (21,-24) and (24,-25)
+.. (28,-25)
+.. controls (39,-25) and (119,13)
+.. (119,36)
+.. controls (119,51) and (112,60)
+.. (97,60)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (45,140*FS#,115*FS#,0*FS#);
+"hyphen";
+path P[];
+P1 = ((69,89)
+.. controls (68,88) and (68,87)
+.. (68,86)
+.. controls (68,82) and (72,80)
+.. (75,80)
+-- (164,80)
+.. controls (170,80) and (172,83)
+.. (174,86)
+-- (192,107)
+.. controls (195,111) and (190,115)
+.. (185,115)
+-- (96,115)
+.. controls (94,115) and (89,113)
+.. (87,111)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (127,140*FS#,115*FS#,0*FS#);
+"hyphenchar";
+path P[];
+P1 = ((69,89)
+.. controls (68,88) and (68,87)
+.. (68,86)
+.. controls (68,82) and (72,80)
+.. (75,80)
+-- (164,80)
+.. controls (170,80) and (172,83)
+.. (174,86)
+-- (192,107)
+.. controls (195,111) and (190,115)
+.. (185,115)
+-- (96,115)
+.. controls (94,115) and (89,113)
+.. (87,111)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (46,141*FS#,55*FS#,7*FS#);
+"period";
+path P[];
+P1 = ((42,30)
+.. controls (41,29) and (40,27)
+.. (40,25)
+.. controls (40,23) and (40,22)
+.. (42,20)
+-- (65,-4)
+.. controls (66,-5) and (68,-7)
+.. (70,-7)
+.. controls (73,-7) and (74,-6)
+.. (76,-4)
+-- (99,20)
+.. controls (101,22) and (101,23)
+.. (101,25)
+.. controls (101,27) and (100,29)
+.. (99,30)
+-- (76,54)
+.. controls (74,56) and (72,55)
+.. (70,55)
+.. controls (68,55) and (66,55)
+.. (65,54)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (47,149*FS#,330*FS#,7*FS#);
+"slash";
+path P[];
+P1 = ((14,4)
+.. controls (13,3) and (12,1)
+.. (12,-1)
+.. controls (12,-5) and (14,-7)
+.. (18,-7)
+.. controls (21,-7) and (23,-5)
+.. (25,-3)
+-- (349,321)
+.. controls (350,322) and (351,324)
+.. (351,326)
+.. controls (351,329) and (348,330)
+.. (345,330)
+.. controls (343,330) and (342,329)
+.. (340,327)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (48,298*FS#,324*FS#,7*FS#);
+"zero";
+path P[];
+P1 = ((396,324)
+.. controls (358,324) and (311,302)
+.. (253,264)
+.. controls (139,191) and (82,123)
+.. (82,52)
+.. controls (82,19) and (107,-7)
+.. (137,-7)
+.. controls (212,-7) and (441,189)
+.. (441,278)
+.. controls (441,305) and (421,324)
+.. (396,324)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((396,312)
+.. controls (421,312) and (428,296)
+.. (428,275)
+.. controls (428,265) and (403,203)
+.. (334,136)
+.. controls (246,51) and (170,5)
+.. (138,5)
+.. controls (119,5) and (103,16)
+.. (103,29)
+.. controls (103,68) and (150,124)
+.. (239,208)
+.. controls (311,276) and (356,312)
+.. (396,312)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (49,244*FS#,331*FS#,0*FS#);
+"one";
+path P[];
+P1 = ((82,9)
+.. controls (80,7) and (81,5)
+.. (81,3)
+.. controls (81,0) and (84,0)
+.. (87,0)
+.. controls (96,0) and (100,1)
+.. (109,1)
+-- (128,1)
+.. controls (144,1) and (138,1)
+.. (146,9)
+-- (438,321)
+.. controls (439,322) and (438,323)
+.. (438,325)
+.. controls (438,329) and (433,331)
+.. (430,331)
+.. controls (428,331) and (428,330)
+.. (426,329)
+-- (140,181)
+.. controls (134,178) and (133,169)
+.. (141,169)
+.. controls (143,169) and (144,170)
+.. (146,171)
+-- (379,290)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (50,318*FS#,327*FS#,9*FS#);
+"two";
+path P[];
+P1 = ((244,115)
+.. controls (346,174) and (400,226)
+.. (400,275)
+.. controls (400,311) and (385,327)
+.. (350,327)
+.. controls (315,327) and (254,306)
+.. (208,271)
+.. controls (180,249) and (165,227)
+.. (165,195)
+.. controls (165,176) and (180,163)
+.. (202,163)
+.. controls (245,163) and (361,262)
+.. (361,276)
+.. controls (361,278) and (360,280)
+.. (358,280)
+.. controls (349,280) and (342,271)
+.. (318,246)
+.. controls (288,215) and (219,175)
+.. (205,175)
+.. controls (194,175) and (183,178)
+.. (183,188)
+.. controls (183,216) and (300,315)
+.. (348,315)
+.. controls (361,315) and (382,315)
+.. (382,296)
+.. controls (382,280) and (311,189)
+.. (215,123)
+.. controls (90,37) and (30,4)
+.. (30,-3)
+.. controls (30,-6) and (33,-9)
+.. (36,-9)
+.. controls (42,-9) and (66,6)
+.. (98,26)
+.. controls (136,49) and (161,52)
+.. (172,55)
+.. controls (177,56) and (184,58)
+.. (184,53)
+.. controls (184,52) and (175,37)
+.. (169,28)
+.. controls (168,26) and (167,23)
+.. (167,21)
+.. controls (167,6) and (180,-7)
+.. (199,-7)
+.. controls (236,-7) and (336,64)
+.. (336,71)
+.. controls (336,75) and (335,78)
+.. (330,78)
+.. controls (329,78) and (307,65)
+.. (285,47)
+.. controls (264,30) and (233,13)
+.. (208,7)
+.. controls (204,6) and (198,5)
+.. (198,9)
+.. controls (198,11) and (206,24)
+.. (210,30)
+.. controls (212,33) and (212,35)
+.. (212,38)
+.. controls (212,56) and (198,66)
+.. (175,66)
+.. controls (167,66) and (162,64)
+.. (154,63)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (51,312*FS#,341*FS#,7*FS#);
+"three";
+path P[];
+P1 = ((336,192)
+.. controls (421,221) and (461,248)
+.. (461,289)
+.. controls (461,316) and (436,341)
+.. (407,341)
+.. controls (368,341) and (324,327)
+.. (292,305)
+.. controls (271,291) and (262,279)
+.. (262,254)
+.. controls (262,232) and (275,225)
+.. (300,225)
+.. controls (337,225) and (406,287)
+.. (406,300)
+.. controls (406,302) and (405,305)
+.. (403,305)
+.. controls (401,305) and (398,306)
+.. (397,304)
+.. controls (362,262) and (321,237)
+.. (301,237)
+.. controls (293,237) and (283,232)
+.. (283,240)
+.. controls (283,276) and (366,329)
+.. (399,329)
+.. controls (422,329) and (434,326)
+.. (434,307)
+.. controls (434,292) and (414,255)
+.. (375,229)
+.. controls (334,201) and (286,188)
+.. (249,177)
+.. controls (244,175) and (240,177)
+.. (240,169)
+.. controls (240,167) and (241,165)
+.. (243,165)
+.. controls (261,165) and (294,182)
+.. (319,182)
+.. controls (333,182) and (348,176)
+.. (348,167)
+.. controls (348,119) and (202,7)
+.. (125,7)
+.. controls (96,7) and (76,24)
+.. (76,40)
+.. controls (76,43) and (75,48)
+.. (78,48)
+.. controls (81,48) and (82,45)
+.. (84,43)
+.. controls (89,39) and (93,37)
+.. (99,37)
+.. controls (113,37) and (125,48)
+.. (125,61)
+.. controls (125,77) and (113,86)
+.. (95,86)
+.. controls (79,86) and (60,66)
+.. (60,44)
+.. controls (60,15) and (90,-7)
+.. (137,-7)
+.. controls (233,-7) and (369,64)
+.. (369,146)
+.. controls (369,167) and (357,183)
+.. (336,192)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (52,333*FS#,335*FS#,0*FS#);
+"four";
+path P[];
+P1 = ((367,335)
+.. controls (361,335) and (314,287)
+.. (194,184)
+.. controls (122,122) and (84,95)
+.. (84,92)
+.. controls (84,87) and (88,86)
+.. (92,86)
+.. controls (94,86) and (122,110)
+.. (177,110)
+.. controls (202,110) and (232,98)
+.. (232,97)
+.. controls (232,95) and (231,94)
+.. (229,92)
+-- (142,12)
+.. controls (140,10) and (140,8)
+.. (140,5)
+.. controls (140,2) and (145,2)
+.. (148,2)
+.. controls (166,2) and (183,0)
+.. (188,0)
+.. controls (194,0) and (198,5)
+.. (199,7)
+-- (268,81)
+.. controls (280,94) and (288,82)
+.. (306,85)
+.. controls (350,92) and (380,98)
+.. (380,111)
+.. controls (380,116) and (369,111)
+.. (366,110)
+.. controls (349,105) and (330,98)
+.. (318,98)
+.. controls (308,98) and (291,104)
+.. (291,105)
+.. controls (291,107) and (293,108)
+.. (294,109)
+-- (373,190)
+.. controls (375,192) and (376,192)
+.. (376,194)
+.. controls (376,196) and (375,198)
+.. (373,198)
+-- (348,198)
+.. controls (345,198) and (341,196)
+.. (340,195)
+-- (256,117)
+.. controls (255,116) and (254,115)
+.. (252,115)
+.. controls (243,115) and (222,122)
+.. (200,122)
+.. controls (184,122) and (163,122)
+.. (139,117)
+.. controls (169,144) and (238,184)
+.. (335,259)
+.. controls (389,301) and (421,326)
+.. (421,332)
+.. controls (421,334) and (418,335)
+.. (416,335)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (53,296*FS#,332*FS#,6*FS#);
+"five";
+path P[];
+P1 = ((324,297)
+.. controls (325,298) and (327,300)
+.. (329,300)
+.. controls (331,300) and (350,288)
+.. (375,288)
+.. controls (445,288) and (481,320)
+.. (481,325)
+.. controls (481,330) and (476,330)
+.. (473,330)
+.. controls (473,330) and (442,311)
+.. (407,311)
+.. controls (378,311) and (363,321)
+.. (348,330)
+.. controls (346,331) and (345,332)
+.. (342,332)
+.. controls (339,332) and (338,331)
+.. (336,329)
+-- (170,162)
+.. controls (169,161) and (169,159)
+.. (169,157)
+.. controls (169,155) and (170,154)
+.. (172,154)
+.. controls (174,154) and (176,153)
+.. (178,155)
+.. controls (224,194) and (267,221)
+.. (312,221)
+.. controls (326,221) and (339,210)
+.. (339,196)
+.. controls (339,125) and (181,6)
+.. (121,6)
+.. controls (93,6) and (72,19)
+.. (72,34)
+.. controls (72,47) and (74,44)
+.. (81,39)
+.. controls (85,35) and (88,34)
+.. (94,34)
+.. controls (110,34) and (121,45)
+.. (121,61)
+.. controls (121,74) and (110,82)
+.. (96,82)
+.. controls (74,82) and (58,63)
+.. (58,36)
+.. controls (58,10) and (85,-6)
+.. (129,-6)
+.. controls (225,-6) and (364,83)
+.. (364,173)
+.. controls (364,208) and (342,233)
+.. (310,233)
+.. controls (287,233) and (263,224)
+.. (243,216)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (54,279*FS#,336*FS#,7*FS#);
+"six";
+path P[];
+P1 = ((405,336)
+.. controls (338,336) and (80,181)
+.. (80,46)
+.. controls (80,16) and (98,-7)
+.. (124,-7)
+.. controls (146,-7) and (209,12)
+.. (257,47)
+.. controls (300,78) and (326,122)
+.. (326,153)
+.. controls (326,183) and (314,200)
+.. (290,200)
+.. controls (246,200) and (175,146)
+.. (175,139)
+.. controls (175,137) and (176,134)
+.. (178,134)
+.. controls (191,134) and (194,142)
+.. (200,147)
+.. controls (220,167) and (276,188)
+.. (281,188)
+.. controls (298,188) and (308,187)
+.. (308,170)
+.. controls (308,140) and (171,5)
+.. (127,5)
+.. controls (109,5) and (101,12)
+.. (101,29)
+.. controls (101,76) and (313,324)
+.. (410,324)
+.. controls (420,324) and (430,320)
+.. (430,310)
+.. controls (430,309) and (416,312)
+.. (411,312)
+.. controls (400,312) and (392,300)
+.. (392,287)
+.. controls (392,276) and (405,270)
+.. (418,270)
+.. controls (433,270) and (448,285)
+.. (448,300)
+.. controls (448,321) and (431,336)
+.. (405,336)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (55,302*FS#,332*FS#,0*FS#);
+"seven";
+path P[];
+P1 = ((284,322)
+.. controls (285,323) and (285,325)
+.. (285,326)
+.. controls (285,329) and (281,332)
+.. (278,332)
+.. controls (277,332) and (276,332)
+.. (275,331)
+-- (185,249)
+.. controls (183,248) and (184,246)
+.. (184,244)
+.. controls (184,242) and (185,240)
+.. (187,240)
+.. controls (189,240) and (191,239)
+.. (192,240)
+.. controls (236,278) and (272,301)
+.. (311,301)
+.. controls (328,301) and (343,290)
+.. (354,283)
+.. controls (370,273) and (386,272)
+.. (400,272)
+.. controls (405,272) and (407,272)
+.. (412,273)
+.. controls (407,269) and (404,267)
+.. (399,263)
+.. controls (200,130) and (89,11)
+.. (89,10)
+.. controls (89,5) and (89,1)
+.. (96,1)
+.. controls (106,1) and (111,2)
+.. (121,2)
+.. controls (128,2) and (131,1)
+.. (138,1)
+.. controls (154,1) and (180,52)
+.. (241,107)
+.. controls (307,166) and (369,224)
+.. (435,274)
+.. controls (464,296) and (485,315)
+.. (485,320)
+.. controls (485,334) and (472,322)
+.. (450,304)
+.. controls (432,289) and (422,291)
+.. (412,291)
+.. controls (405,291) and (388,306)
+.. (370,320)
+.. controls (361,327) and (352,329)
+.. (340,329)
+.. controls (316,329) and (293,318)
+.. (271,308)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (56,294*FS#,329*FS#,7*FS#);
+"eight";
+path P[];
+P1 = ((440,282)
+.. controls (440,309) and (413,329)
+.. (370,329)
+.. controls (334,329) and (300,313)
+.. (272,285)
+.. controls (248,262) and (243,245)
+.. (243,215)
+.. controls (243,200) and (255,183)
+.. (255,178)
+.. controls (255,174) and (249,176)
+.. (245,175)
+.. controls (220,172) and (207,168)
+.. (183,160)
+.. controls (113,136) and (78,109)
+.. (78,53)
+.. controls (78,24) and (112,-7)
+.. (154,-7)
+.. controls (221,-7) and (317,51)
+.. (317,133)
+.. controls (317,153) and (306,172)
+.. (306,180)
+.. controls (306,183) and (312,182)
+.. (315,183)
+.. controls (367,191) and (440,231)
+.. (440,282)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((260,165)
+.. controls (262,165) and (275,140)
+.. (275,112)
+.. controls (275,48) and (208,5)
+.. (153,5)
+.. controls (118,5) and (94,24)
+.. (94,52)
+.. controls (94,110) and (189,165)
+.. (260,165)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((303,192)
+.. controls (300,192) and (283,215)
+.. (283,237)
+.. controls (283,251) and (282,260)
+.. (288,273)
+.. controls (300,297) and (336,317)
+.. (374,317)
+.. controls (397,317) and (421,305)
+.. (426,293)
+.. controls (428,288) and (427,284)
+.. (427,278)
+.. controls (427,244) and (345,192)
+.. (303,192)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (57,269*FS#,329*FS#,7*FS#);
+"nine";
+path P[];
+P1 = ((359,329)
+.. controls (297,329) and (153,258)
+.. (153,168)
+.. controls (153,145) and (173,126)
+.. (198,126)
+.. controls (243,126) and (350,226)
+.. (350,236)
+.. controls (350,244) and (342,243)
+.. (335,232)
+.. controls (317,205) and (227,138)
+.. (196,138)
+.. controls (180,138) and (174,144)
+.. (174,159)
+.. controls (174,183) and (292,319)
+.. (360,319)
+.. controls (377,319) and (388,311)
+.. (388,296)
+.. controls (388,252) and (165,5)
+.. (80,5)
+.. controls (66,5) and (48,8)
+.. (40,8)
+.. controls (37,8) and (36,6)
+.. (36,3)
+.. controls (36,-5) and (50,-7)
+.. (62,-7)
+.. controls (185,-7) and (404,181)
+.. (404,273)
+.. controls (404,309) and (392,329)
+.. (359,329)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (58,142*FS#,176*FS#,7*FS#);
+"colon";
+path P[];
+P1 = ((157,151)
+.. controls (155,149) and (155,147)
+.. (155,144)
+.. controls (155,142) and (155,140)
+.. (157,139)
+-- (182,116)
+.. controls (183,115) and (184,113)
+.. (186,113)
+.. controls (189,113) and (191,115)
+.. (193,117)
+-- (214,139)
+.. controls (216,141) and (216,142)
+.. (216,145)
+.. controls (216,147) and (216,149)
+.. (214,151)
+-- (191,173)
+.. controls (189,175) and (188,176)
+.. (185,176)
+.. controls (183,176) and (181,175)
+.. (179,173)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((42,30)
+.. controls (41,29) and (40,27)
+.. (40,25)
+.. controls (40,23) and (40,22)
+.. (42,20)
+-- (65,-4)
+.. controls (66,-5) and (68,-7)
+.. (70,-7)
+.. controls (73,-7) and (74,-6)
+.. (76,-4)
+-- (99,20)
+.. controls (101,22) and (101,23)
+.. (101,25)
+.. controls (101,27) and (100,29)
+.. (99,30)
+-- (76,54)
+.. controls (74,56) and (72,55)
+.. (70,55)
+.. controls (68,55) and (66,55)
+.. (65,54)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (59,119*FS#,175*FS#,25*FS#);
+"semicolon";
+path P[];
+P1 = ((76,60)
+.. controls (62,60) and (55,42)
+.. (47,29)
+.. controls (28,-2) and (0,-14)
+.. (0,-19)
+.. controls (0,-24) and (3,-25)
+.. (7,-25)
+.. controls (18,-25) and (98,13)
+.. (98,36)
+.. controls (98,51) and (91,60)
+.. (76,60)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((130,150)
+.. controls (128,148) and (128,146)
+.. (128,143)
+.. controls (128,141) and (128,139)
+.. (130,138)
+-- (154,116)
+.. controls (156,114) and (157,114)
+.. (160,114)
+.. controls (163,114) and (164,116)
+.. (166,118)
+-- (187,138)
+.. controls (189,140) and (189,141)
+.. (189,144)
+.. controls (189,146) and (189,148)
+.. (187,150)
+-- (165,173)
+.. controls (163,175) and (161,175)
+.. (158,175)
+.. controls (156,175) and (155,175)
+.. (153,173)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (63,274*FS#,306*FS#,7*FS#);
+"question";
+path P[];
+P1 = ((342,306)
+.. controls (265,306) and (192,273)
+.. (192,222)
+.. controls (192,203) and (210,191)
+.. (237,191)
+.. controls (292,191) and (378,254)
+.. (378,262)
+.. controls (378,271) and (369,270)
+.. (359,259)
+.. controls (337,237) and (272,203)
+.. (229,203)
+.. controls (220,203) and (208,207)
+.. (208,215)
+.. controls (208,233) and (299,292)
+.. (361,292)
+.. controls (393,292) and (399,278)
+.. (399,259)
+.. controls (399,230) and (344,200)
+.. (253,164)
+.. controls (141,120) and (85,60)
+.. (85,59)
+.. controls (85,55) and (85,50)
+.. (91,50)
+.. controls (95,50) and (96,53)
+.. (99,56)
+.. controls (109,67) and (141,91)
+.. (178,109)
+.. controls (211,125) and (243,132)
+.. (272,137)
+.. controls (316,145) and (355,154)
+.. (385,183)
+.. controls (405,203) and (417,229)
+.. (417,252)
+.. controls (417,286) and (389,306)
+.. (342,306)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((29,31)
+.. controls (27,30) and (27,28)
+.. (27,26)
+.. controls (27,24) and (28,23)
+.. (29,21)
+-- (49,-4)
+.. controls (50,-6) and (52,-7)
+.. (54,-7)
+.. controls (56,-7) and (57,-5)
+.. (59,-4)
+-- (85,17)
+.. controls (87,18) and (88,19)
+.. (88,21)
+.. controls (88,23) and (86,24)
+.. (85,26)
+-- (64,51)
+.. controls (62,53) and (61,54)
+.. (59,54)
+.. controls (57,54) and (55,53)
+.. (53,51)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (65,789*FS#,669*FS#,6*FS#);
+"A";
+path P[];
+P1 = ((636,12)
+.. controls (635,10) and (635,9)
+.. (635,7)
+.. controls (635,4) and (638,3)
+.. (641,3)
+-- (684,0)
+.. controls (688,0) and (692,5)
+.. (693,6)
+-- (719,40)
+.. controls (809,47) and (856,86)
+.. (856,96)
+.. controls (856,98) and (856,100)
+.. (854,100)
+.. controls (848,100) and (840,92)
+.. (837,89)
+.. controls (819,73) and (780,60)
+.. (727,53)
+.. controls (742,79) and (808,162)
+.. (926,296)
+.. controls (980,357) and (1082,481)
+.. (1274,644)
+.. controls (1280,649) and (1291,652)
+.. (1291,663)
+.. controls (1291,667) and (1275,669)
+.. (1264,669)
+.. controls (1235,669) and (1113,634)
+.. (962,520)
+.. controls (844,431) and (772,355)
+.. (729,321)
+.. controls (689,436) and (618,500)
+.. (522,500)
+.. controls (459,500) and (399,430)
+.. (399,323)
+.. controls (399,250) and (438,173)
+.. (501,118)
+.. controls (446,65) and (339,8)
+.. (246,8)
+.. controls (154,8) and (98,55)
+.. (98,99)
+.. controls (98,108) and (103,116)
+.. (105,120)
+.. controls (111,99) and (123,87)
+.. (145,87)
+.. controls (163,87) and (176,104)
+.. (176,125)
+.. controls (176,147) and (157,161)
+.. (130,161)
+.. controls (102,161) and (85,137)
+.. (85,98)
+.. controls (85,47) and (153,-6)
+.. (247,-6)
+.. controls (331,-6) and (438,40)
+.. (511,109)
+.. controls (584,53) and (659,50)
+.. (659,45)
+.. controls (659,43) and (658,42)
+.. (657,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((721,294)
+.. controls (724,279) and (726,261)
+.. (726,244)
+.. controls (726,182) and (689,89)
+.. (667,57)
+.. controls (627,60) and (563,86)
+.. (523,117)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((513,125)
+.. controls (457,166) and (415,249)
+.. (415,323)
+.. controls (415,417) and (480,472)
+.. (537,472)
+.. controls (582,472) and (610,465)
+.. (645,432)
+.. controls (679,400) and (702,359)
+.. (717,310)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((706,107)
+.. controls (731,175) and (739,223)
+.. (739,231)
+.. controls (739,263) and (736,290)
+.. (733,295)
+.. controls (731,298) and (732,300)
+.. (732,304)
+.. controls (732,308) and (812,388)
+.. (972,511)
+.. controls (1085,598) and (1193,644)
+.. (1252,649)
+.. controls (1226,630) and (1153,586)
+.. (1044,482)
+.. controls (857,304) and (758,168)
+.. (706,107)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (66,884*FS#,677*FS#,7*FS#);
+"B";
+path P[];
+P1 = ((184,60)
+.. controls (190,58) and (193,56)
+.. (199,56)
+.. controls (217,56) and (230,70)
+.. (230,89)
+.. controls (230,108) and (217,120)
+.. (196,120)
+.. controls (177,120) and (161,102)
+.. (161,80)
+.. controls (161,32) and (218,-7)
+.. (320,-7)
+.. controls (475,-7) and (671,95)
+.. (798,288)
+.. controls (891,428) and (1051,560)
+.. (1061,560)
+.. controls (1066,560) and (1077,537)
+.. (1077,510)
+.. controls (1077,464) and (1041,401)
+.. (981,348)
+.. controls (953,324) and (917,312)
+.. (914,312)
+.. controls (909,312) and (907,315)
+.. (903,318)
+.. controls (890,331) and (867,331)
+.. (842,331)
+.. controls (833,331) and (827,322)
+.. (827,314)
+.. controls (827,298) and (850,295)
+.. (885,295)
+.. controls (891,295) and (905,298)
+.. (909,298)
+.. controls (917,298) and (932,264)
+.. (932,238)
+.. controls (932,218) and (891,132)
+.. (810,67)
+.. controls (763,29) and (717,11)
+.. (695,11)
+.. controls (674,11) and (659,19)
+.. (659,33)
+.. controls (659,81) and (721,143)
+.. (853,186)
+.. controls (856,187) and (859,189)
+.. (859,192)
+.. controls (859,201) and (832,198)
+.. (806,184)
+.. controls (782,172) and (741,156)
+.. (694,116)
+.. controls (663,90) and (646,66)
+.. (646,31)
+.. controls (646,9) and (667,-1)
+.. (702,-1)
+.. controls (741,-1) and (804,18)
+.. (846,46)
+.. controls (907,86) and (948,153)
+.. (948,226)
+.. controls (948,252) and (951,274)
+.. (931,291)
+.. controls (928,294) and (926,297)
+.. (926,301)
+.. controls (926,308) and (935,307)
+.. (942,307)
+.. controls (992,307) and (1104,377)
+.. (1104,475)
+.. controls (1104,517) and (1084,556)
+.. (1078,560)
+.. controls (1074,562) and (1073,565)
+.. (1073,569)
+.. controls (1073,575) and (1079,578)
+.. (1085,578)
+.. controls (1103,579) and (1133,616)
+.. (1182,637)
+.. controls (1183,638) and (1183,639)
+.. (1183,641)
+.. controls (1183,644) and (1182,646)
+.. (1178,646)
+.. controls (1169,646) and (1127,625)
+.. (1073,585)
+.. controls (1070,583) and (1068,580)
+.. (1064,580)
+.. controls (1059,580) and (1058,584)
+.. (1054,587)
+.. controls (1012,616) and (943,677)
+.. (780,677)
+.. controls (475,677) and (272,500)
+.. (272,355)
+.. controls (272,281) and (332,230)
+.. (454,230)
+.. controls (532,230) and (632,270)
+.. (706,339)
+.. controls (750,380) and (773,417)
+.. (773,468)
+.. controls (773,510) and (729,541)
+.. (659,541)
+.. controls (517,541) and (357,350)
+.. (357,322)
+.. controls (357,320) and (359,319)
+.. (361,319)
+.. controls (372,319) and (383,341)
+.. (409,376)
+.. controls (471,461) and (590,529)
+.. (666,529)
+.. controls (720,529) and (760,502)
+.. (760,467)
+.. controls (760,367) and (558,244)
+.. (414,244)
+.. controls (344,244) and (285,289)
+.. (285,351)
+.. controls (285,490) and (482,665)
+.. (775,665)
+.. controls (961,665) and (1051,579)
+.. (1051,572)
+.. controls (1051,566) and (982,524)
+.. (894,442)
+.. controls (665,229) and (569,7)
+.. (319,7)
+.. controls (245,7) and (194,26)
+.. (184,60)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((893,308)
+.. controls (870,303) and (840,306)
+.. (840,316)
+.. controls (840,320) and (847,320)
+.. (851,320)
+.. controls (864,320) and (880,316)
+.. (893,308)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (67,774*FS#,666*FS#,7*FS#);
+"C";
+path P[];
+P1 = ((584,309)
+.. controls (624,322) and (637,323)
+.. (712,334)
+.. controls (755,340) and (866,372)
+.. (954,414)
+.. controls (1066,467) and (1128,527)
+.. (1128,573)
+.. controls (1128,605) and (1098,623)
+.. (1048,623)
+.. controls (963,623) and (751,536)
+.. (543,335)
+.. controls (536,328) and (538,326)
+.. (521,326)
+.. controls (474,326) and (432,327)
+.. (390,354)
+.. controls (359,375) and (340,405)
+.. (340,434)
+.. controls (340,525) and (467,650)
+.. (641,650)
+.. controls (696,650) and (735,641)
+.. (735,654)
+.. controls (735,662) and (697,666)
+.. (630,666)
+.. controls (542,666) and (435,622)
+.. (384,576)
+.. controls (332,529) and (324,483)
+.. (324,436)
+.. controls (324,401) and (350,361)
+.. (393,338)
+.. controls (440,312) and (481,315)
+.. (521,314)
+.. controls (462,244) and (400,188)
+.. (400,94)
+.. controls (400,40) and (440,-7)
+.. (530,-7)
+.. controls (648,-7) and (829,90)
+.. (829,185)
+.. controls (829,221) and (800,244)
+.. (752,244)
+.. controls (701,244) and (646,221)
+.. (583,182)
+.. controls (505,134) and (462,69)
+.. (462,69)
+.. controls (462,65) and (460,60)
+.. (464,60)
+.. controls (479,60) and (492,77)
+.. (529,124)
+.. controls (560,164) and (689,232)
+.. (740,232)
+.. controls (785,232) and (816,222)
+.. (816,181)
+.. controls (816,107) and (646,5)
+.. (531,5)
+.. controls (459,5) and (421,34)
+.. (421,83)
+.. controls (421,107) and (461,185)
+.. (507,231)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((613,333)
+.. controls (648,370) and (683,397)
+.. (710,420)
+.. controls (853,544) and (967,611)
+.. (1057,611)
+.. controls (1088,611) and (1112,594)
+.. (1112,581)
+.. controls (1112,529) and (1035,458)
+.. (883,398)
+.. controls (767,353) and (654,334)
+.. (613,333)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (68,888*FS#,661*FS#,6*FS#);
+"D";
+path P[];
+P1 = ((342,-1)
+.. controls (426,-1) and (470,13)
+.. (475,13)
+.. controls (480,13) and (523,-6)
+.. (614,-6)
+.. controls (699,-6) and (795,27)
+.. (866,82)
+.. controls (978,169) and (1044,312)
+.. (1044,405)
+.. controls (1044,440) and (1036,466)
+.. (1036,472)
+.. controls (1036,472) and (1067,500)
+.. (1092,510)
+.. controls (1116,520) and (1132,521)
+.. (1132,541)
+.. controls (1132,545) and (1127,543)
+.. (1123,543)
+.. controls (1123,543) and (1057,510)
+.. (1039,493)
+.. controls (1036,490) and (1035,487)
+.. (1031,487)
+.. controls (1026,487) and (1026,494)
+.. (1025,498)
+.. controls (1002,573) and (899,661)
+.. (728,661)
+.. controls (464,661) and (285,517)
+.. (285,371)
+.. controls (285,275) and (371,221)
+.. (444,221)
+.. controls (482,221) and (541,219)
+.. (628,253)
+.. controls (746,299) and (819,376)
+.. (819,440)
+.. controls (819,491) and (775,524)
+.. (699,524)
+.. controls (560,524) and (380,335)
+.. (380,301)
+.. controls (380,292) and (381,293)
+.. (389,293)
+.. controls (395,293) and (396,300)
+.. (399,305)
+.. controls (406,317) and (454,380)
+.. (523,435)
+.. controls (586,485) and (663,512)
+.. (700,512)
+.. controls (773,512) and (806,482)
+.. (806,443)
+.. controls (806,345) and (629,233)
+.. (466,233)
+.. controls (368,233) and (310,285)
+.. (310,339)
+.. controls (310,385) and (332,422)
+.. (369,463)
+.. controls (477,585) and (603,647)
+.. (748,647)
+.. controls (927,647) and (1019,519)
+.. (1019,479)
+.. controls (1019,479) and (951,429)
+.. (888,368)
+.. controls (788,271) and (722,148)
+.. (613,76)
+.. controls (563,43) and (504,28)
+.. (488,28)
+.. controls (481,28) and (411,74)
+.. (266,74)
+.. controls (229,74) and (203,59)
+.. (203,41)
+.. controls (203,16) and (252,-1)
+.. (342,-1)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((450,22)
+.. controls (424,15) and (382,11)
+.. (348,11)
+.. controls (270,11) and (220,24)
+.. (220,41)
+.. controls (220,50) and (242,60)
+.. (270,60)
+.. controls (340,60) and (411,40)
+.. (450,22)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((517,21)
+.. controls (745,89) and (780,163)
+.. (838,246)
+.. controls (897,330) and (951,419)
+.. (1023,464)
+.. controls (1031,438) and (1031,418)
+.. (1031,402)
+.. controls (1031,364) and (1013,297)
+.. (977,232)
+.. controls (897,87) and (758,6)
+.. (603,6)
+.. controls (561,6) and (536,14)
+.. (517,21)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (69,723*FS#,706*FS#,7*FS#);
+"E";
+path P[];
+P1 = ((668,383)
+.. controls (668,380) and (662,381)
+.. (659,381)
+.. controls (620,379) and (518,348)
+.. (451,305)
+.. controls (374,255) and (338,182)
+.. (338,138)
+.. controls (338,40) and (383,-7)
+.. (495,-7)
+.. controls (600,-7) and (788,86)
+.. (788,200)
+.. controls (788,241) and (757,264)
+.. (703,264)
+.. controls (593,264) and (418,101)
+.. (418,69)
+.. controls (418,67) and (418,65)
+.. (420,65)
+.. controls (428,65) and (430,70)
+.. (433,75)
+.. controls (439,86) and (483,139)
+.. (550,188)
+.. controls (608,231) and (674,252)
+.. (703,252)
+.. controls (747,252) and (775,240)
+.. (775,197)
+.. controls (775,106) and (606,5)
+.. (481,5)
+.. controls (411,5) and (370,41)
+.. (370,77)
+.. controls (370,189) and (512,342)
+.. (645,367)
+.. controls (654,369) and (671,372)
+.. (677,372)
+.. controls (682,372) and (684,367)
+.. (688,363)
+.. controls (701,348) and (726,338)
+.. (749,338)
+.. controls (758,338) and (767,344)
+.. (767,353)
+.. controls (767,378) and (739,386)
+.. (691,386)
+.. controls (687,386) and (671,380)
+.. (671,413)
+.. controls (671,415) and (721,426)
+.. (813,460)
+.. controls (947,510) and (1031,589)
+.. (1031,649)
+.. controls (1031,679) and (1005,695)
+.. (958,695)
+.. controls (890,695) and (747,630)
+.. (684,551)
+.. controls (659,519) and (644,479)
+.. (644,457)
+.. controls (644,446) and (648,430)
+.. (648,423)
+.. controls (648,420) and (599,406)
+.. (510,406)
+.. controls (449,406) and (385,444)
+.. (385,504)
+.. controls (385,567) and (451,638)
+.. (554,673)
+.. controls (608,691) and (650,691)
+.. (678,693)
+.. controls (682,693) and (688,694)
+.. (688,700)
+.. controls (688,705) and (677,706)
+.. (673,706)
+.. controls (586,706) and (485,674)
+.. (425,626)
+.. controls (376,587) and (364,552)
+.. (364,503)
+.. controls (364,452) and (427,394)
+.. (507,394)
+.. controls (599,394) and (640,410)
+.. (652,410)
+.. controls (653,410) and (668,386)
+.. (668,383)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((674,428)
+.. controls (674,498) and (843,683)
+.. (969,683)
+.. controls (997,683) and (1018,669)
+.. (1018,646)
+.. controls (1018,614) and (987,575)
+.. (931,536)
+.. controls (836,470) and (746,451)
+.. (685,430)
+.. controls (680,428) and (674,423)
+.. (674,428)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((692,373)
+.. controls (696,374) and (699,374)
+.. (703,374)
+.. controls (726,374) and (755,367)
+.. (755,357)
+.. controls (755,345) and (709,353)
+.. (692,373)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (70,673*FS#,669*FS#,6*FS#);
+"F";
+path P[];
+P1 = ((1146,655)
+.. controls (1068,655) and (959,669)
+.. (820,669)
+.. controls (615,669) and (473,633)
+.. (376,534)
+.. controls (348,505) and (334,481)
+.. (334,443)
+.. controls (334,418) and (356,387)
+.. (390,374)
+.. controls (415,364) and (431,365)
+.. (458,365)
+.. controls (561,365) and (696,446)
+.. (696,512)
+.. controls (696,546) and (666,571)
+.. (625,571)
+.. controls (515,571) and (415,473)
+.. (415,465)
+.. controls (415,459) and (418,457)
+.. (423,457)
+.. controls (428,457) and (430,461)
+.. (433,465)
+.. controls (463,503) and (554,559)
+.. (626,559)
+.. controls (657,559) and (680,539)
+.. (680,519)
+.. controls (680,439) and (532,377)
+.. (463,377)
+.. controls (437,377) and (421,376)
+.. (397,386)
+.. controls (368,398) and (347,422)
+.. (347,441)
+.. controls (347,474) and (363,500)
+.. (390,527)
+.. controls (473,611) and (574,641)
+.. (705,641)
+.. controls (897,641) and (1037,611)
+.. (1103,611)
+.. controls (1202,611) and (1247,655)
+.. (1247,661)
+.. controls (1247,666) and (1243,666)
+.. (1240,666)
+.. controls (1240,666) and (1213,655)
+.. (1146,655)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((739,234)
+.. controls (747,234) and (750,250)
+.. (754,271)
+.. controls (758,292) and (773,321)
+.. (787,322)
+.. controls (823,323) and (876,363)
+.. (876,387)
+.. controls (876,407) and (858,405)
+.. (848,405)
+.. controls (831,405) and (803,373)
+.. (766,329)
+.. controls (766,329) and (743,323)
+.. (717,323)
+.. controls (714,323) and (712,324)
+.. (709,324)
+.. controls (733,367) and (770,420)
+.. (818,476)
+.. controls (897,569) and (954,598)
+.. (954,603)
+.. controls (954,608) and (956,611)
+.. (948,611)
+.. controls (943,611) and (787,498)
+.. (670,329)
+.. controls (669,327) and (666,320)
+.. (660,320)
+.. controls (657,320) and (643,325)
+.. (635,325)
+.. controls (629,325) and (511,308)
+.. (445,279)
+.. controls (438,276) and (429,276)
+.. (429,264)
+.. controls (429,260) and (434,260)
+.. (438,260)
+.. controls (457,260) and (546,309)
+.. (643,309)
+.. controls (648,309) and (650,309)
+.. (655,308)
+.. controls (593,205) and (488,96)
+.. (413,52)
+.. controls (358,20) and (286,6)
+.. (242,6)
+.. controls (185,6) and (144,12)
+.. (121,28)
+.. controls (102,42) and (88,64)
+.. (88,77)
+.. controls (88,81) and (87,85)
+.. (91,85)
+.. controls (94,85) and (96,83)
+.. (97,80)
+.. controls (100,73) and (107,71)
+.. (115,71)
+.. controls (138,71) and (153,83)
+.. (153,101)
+.. controls (153,120) and (139,135)
+.. (121,135)
+.. controls (97,135) and (72,118)
+.. (72,80)
+.. controls (72,31) and (122,-6)
+.. (225,-6)
+.. controls (322,-6) and (428,24)
+.. (515,86)
+.. controls (611,154) and (655,234)
+.. (696,303)
+.. controls (700,310) and (694,311)
+.. (753,314)
+.. controls (731,278) and (704,255)
+.. (704,238)
+.. controls (704,236) and (707,234)
+.. (709,234)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((788,335)
+.. controls (804,362) and (840,393)
+.. (854,393)
+.. controls (860,393) and (862,388)
+.. (862,383)
+.. controls (862,379) and (841,349)
+.. (788,335)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (71,943*FS#,672*FS#,211*FS#);
+"G";
+path P[];
+P1 = ((819,9)
+.. controls (833,32) and (851,54)
+.. (865,74)
+.. controls (954,196) and (1036,247)
+.. (1036,255)
+.. controls (1036,262) and (1035,265)
+.. (1027,265)
+.. controls (1026,265) and (1001,248)
+.. (967,219)
+.. controls (886,152) and (732,79)
+.. (623,79)
+.. controls (576,79) and (541,105)
+.. (541,143)
+.. controls (541,188) and (588,268)
+.. (593,269)
+.. controls (623,275) and (655,281)
+.. (686,286)
+.. controls (725,293) and (889,339)
+.. (1057,428)
+.. controls (1191,499) and (1260,545)
+.. (1260,611)
+.. controls (1260,643) and (1230,656)
+.. (1176,656)
+.. controls (1135,656) and (1009,631)
+.. (856,549)
+.. controls (795,516) and (710,471)
+.. (595,348)
+.. controls (551,300) and (555,276)
+.. (532,276)
+.. controls (477,276) and (415,270)
+.. (362,318)
+.. controls (332,345) and (328,366)
+.. (328,401)
+.. controls (328,455) and (386,541)
+.. (475,596)
+.. controls (530,630) and (615,655)
+.. (665,656)
+.. controls (727,657) and (756,659)
+.. (756,668)
+.. controls (756,672) and (752,672)
+.. (748,672)
+.. controls (481,672) and (307,555)
+.. (307,409)
+.. controls (307,325) and (374,264)
+.. (503,264)
+.. controls (512,264) and (527,264)
+.. (536,264)
+.. controls (523,231) and (511,200)
+.. (511,175)
+.. controls (511,110) and (558,67)
+.. (628,67)
+.. controls (668,67) and (712,78)
+.. (760,95)
+.. controls (856,129) and (909,167)
+.. (939,184)
+.. controls (889,133) and (839,95)
+.. (807,58)
+.. controls (768,13) and (754,-12)
+.. (736,-16)
+.. controls (583,-52) and (474,-73)
+.. (410,-121)
+.. controls (393,-134) and (382,-147)
+.. (382,-166)
+.. controls (382,-192) and (408,-211)
+.. (443,-211)
+.. controls (531,-211) and (620,-178)
+.. (691,-126)
+.. controls (755,-79) and (800,-18)
+.. (802,-13)
+.. controls (806,-4) and (815,-2)
+.. (823,-2)
+.. controls (881,-2) and (1007,82)
+.. (1007,96)
+.. controls (1007,98) and (1007,100)
+.. (1005,100)
+.. controls (999,100) and (991,92)
+.. (989,90)
+.. controls (957,61) and (877,19)
+.. (819,9)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((732,-28)
+.. controls (715,-54) and (671,-102)
+.. (624,-138)
+.. controls (568,-181) and (513,-199)
+.. (451,-199)
+.. controls (420,-199) and (398,-186)
+.. (398,-172)
+.. controls (398,-134) and (478,-88)
+.. (599,-60)
+.. controls (666,-44) and (710,-31)
+.. (732,-28)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((604,282)
+.. controls (632,324) and (726,424)
+.. (862,515)
+.. controls (997,606) and (1121,644)
+.. (1184,644)
+.. controls (1231,644) and (1244,630)
+.. (1244,606)
+.. controls (1244,580) and (1192,509)
+.. (1049,437)
+.. controls (807,315) and (640,284)
+.. (604,282)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (72,795*FS#,663*FS#,7*FS#);
+"H";
+path P[];
+P1 = ((640,153)
+.. controls (620,122) and (603,95)
+.. (603,46)
+.. controls (603,15) and (628,-7)
+.. (663,-7)
+.. controls (763,-7) and (862,89)
+.. (862,96)
+.. controls (862,98) and (861,100)
+.. (859,100)
+.. controls (853,100) and (846,92)
+.. (844,90)
+.. controls (783,36) and (722,7)
+.. (666,7)
+.. controls (641,7) and (624,20)
+.. (624,40)
+.. controls (624,47) and (643,93)
+.. (686,147)
+.. controls (771,252) and (826,322)
+.. (856,351)
+.. controls (860,355) and (864,353)
+.. (870,354)
+.. controls (1120,403) and (1309,533)
+.. (1309,606)
+.. controls (1309,635) and (1285,657)
+.. (1254,657)
+.. controls (1164,657) and (1043,586)
+.. (892,445)
+.. controls (873,427) and (862,417)
+.. (845,398)
+.. controls (822,372) and (808,353)
+.. (796,351)
+-- (739,340)
+.. controls (760,376) and (795,400)
+.. (795,412)
+.. controls (795,415) and (793,418)
+.. (790,418)
+.. controls (786,418) and (784,413)
+.. (783,412)
+-- (727,346)
+.. controls (723,341) and (720,339)
+.. (712,337)
+-- (663,328)
+.. controls (673,346) and (704,388)
+.. (750,452)
+.. controls (775,486) and (812,519)
+.. (849,554)
+.. controls (913,614) and (958,635)
+.. (958,642)
+.. controls (958,646) and (952,650)
+.. (948,650)
+.. controls (944,650) and (943,647)
+.. (939,644)
+.. controls (848,577) and (784,540)
+.. (751,540)
+.. controls (739,540) and (722,543)
+.. (722,549)
+.. controls (722,568) and (731,570)
+.. (731,592)
+.. controls (731,621) and (663,663)
+.. (575,663)
+.. controls (507,663) and (426,629)
+.. (387,585)
+.. controls (365,560) and (366,546)
+.. (366,523)
+.. controls (366,497) and (394,465)
+.. (435,455)
+.. controls (457,450) and (470,453)
+.. (492,453)
+.. controls (569,453) and (662,529)
+.. (662,536)
+.. controls (662,540) and (659,541)
+.. (656,541)
+.. controls (655,541) and (625,524)
+.. (582,494)
+.. controls (552,473) and (510,467)
+.. (459,467)
+.. controls (412,467) and (379,496)
+.. (379,522)
+.. controls (379,558) and (390,576)
+.. (423,600)
+.. controls (464,629) and (526,649)
+.. (583,649)
+.. controls (643,649) and (697,624)
+.. (697,611)
+.. controls (697,605) and (696,602)
+.. (693,597)
+.. controls (688,590) and (685,585)
+.. (685,577)
+.. controls (685,548) and (711,528)
+.. (750,528)
+.. controls (777,528) and (804,541)
+.. (830,557)
+.. controls (808,529) and (729,476)
+.. (611,325)
+.. controls (599,310) and (590,313)
+.. (575,311)
+.. controls (404,292) and (249,214)
+.. (180,149)
+.. controls (150,121) and (136,98)
+.. (136,55)
+.. controls (136,20) and (171,-7)
+.. (227,-7)
+.. controls (321,-7) and (517,95)
+.. (649,306)
+.. controls (650,308) and (651,314)
+.. (658,315)
+-- (705,323)
+-- (666,276)
+.. controls (664,274) and (664,273)
+.. (664,270)
+.. controls (664,268) and (667,266)
+.. (669,266)
+.. controls (679,266) and (697,269)
+.. (698,277)
+.. controls (699,280) and (722,326)
+.. (735,328)
+-- (789,337)
+.. controls (763,300) and (701,246)
+.. (640,153)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((871,367)
+.. controls (902,405) and (941,446)
+.. (986,489)
+.. controls (1092,591) and (1180,645)
+.. (1255,645)
+.. controls (1280,645) and (1293,634)
+.. (1293,609)
+.. controls (1293,567) and (1236,506)
+.. (1120,450)
+.. controls (1013,398) and (907,372)
+.. (871,367)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((591,303)
+.. controls (583,288) and (557,261)
+.. (523,217)
+.. controls (415,77) and (314,7)
+.. (220,7)
+.. controls (181,7) and (149,27)
+.. (149,54)
+.. controls (149,135) and (320,264)
+.. (591,303)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (73,599*FS#,653*FS#,7*FS#);
+"I";
+path P[];
+P1 = ((93,72)
+.. controls (99,68) and (108,64)
+.. (122,64)
+.. controls (138,64) and (152,81)
+.. (152,98)
+.. controls (152,117) and (135,132)
+.. (114,132)
+.. controls (92,132) and (71,112)
+.. (71,91)
+.. controls (71,27) and (127,-7)
+.. (231,-7)
+.. controls (301,-7) and (406,25)
+.. (487,78)
+.. controls (625,168) and (669,309)
+.. (696,309)
+.. controls (700,309) and (702,308)
+.. (706,308)
+.. controls (746,308) and (827,348)
+.. (883,424)
+.. controls (903,451) and (915,476)
+.. (915,479)
+.. controls (915,481) and (914,484)
+.. (912,484)
+.. controls (905,484) and (892,464)
+.. (870,429)
+.. controls (835,373) and (745,320)
+.. (705,320)
+-- (695,320)
+.. controls (697,323) and (698,325)
+.. (700,328)
+.. controls (739,389) and (786,458)
+.. (854,522)
+.. controls (950,613) and (1037,622)
+.. (1101,633)
+.. controls (1104,634) and (1106,638)
+.. (1106,641)
+.. controls (1106,647) and (1075,653)
+.. (1044,653)
+.. controls (877,653) and (726,604)
+.. (651,550)
+.. controls (586,503) and (554,449)
+.. (554,383)
+.. controls (554,350) and (578,322)
+.. (626,305)
+.. controls (627,305) and (627,305)
+.. (627,304)
+.. controls (627,300) and (624,297)
+.. (620,295)
+.. controls (605,287) and (459,5)
+.. (228,5)
+.. controls (142,5) and (93,39)
+.. (93,62)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1043,637)
+.. controls (1010,627) and (958,615)
+.. (888,571)
+.. controls (759,489) and (695,399)
+.. (641,327)
+.. controls (640,325) and (635,318)
+.. (631,318)
+.. controls (619,318) and (570,338)
+.. (570,385)
+.. controls (570,493) and (759,639)
+.. (1023,639)
+.. controls (1031,639) and (1035,638)
+.. (1043,637)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (74,365*FS#,653*FS#,258*FS#);
+"J";
+path P[];
+P1 = ((457,315)
+.. controls (474,349) and (496,376)
+.. (513,401)
+.. controls (632,577) and (762,610)
+.. (869,635)
+.. controls (872,636) and (873,640)
+.. (873,643)
+.. controls (873,651) and (843,653)
+.. (784,653)
+.. controls (537,653) and (318,526)
+.. (318,385)
+.. controls (318,348) and (354,312)
+.. (395,304)
+.. controls (386,289) and (328,203)
+.. (219,54)
+.. controls (172,-10) and (152,-38)
+.. (134,-41)
+.. controls (93,-48) and (71,-60)
+.. (33,-78)
+.. controls (-67,-125) and (-120,-174)
+.. (-120,-214)
+.. controls (-120,-239) and (-99,-258)
+.. (-77,-258)
+.. controls (-54,-258) and (-6,-234)
+.. (48,-186)
+.. controls (115,-126) and (160,-75)
+.. (193,-40)
+.. controls (207,-26) and (205,-30)
+.. (219,-26)
+.. controls (354,8) and (431,90)
+.. (431,96)
+.. controls (431,98) and (430,100)
+.. (428,100)
+.. controls (412,100) and (372,25)
+.. (218,-13)
+.. controls (257,36) and (323,115)
+.. (403,235)
+.. controls (451,308) and (441,298)
+.. (464,301)
+.. controls (585,316) and (680,456)
+.. (680,473)
+.. controls (680,476) and (678,480)
+.. (675,480)
+.. controls (666,480) and (663,468)
+.. (660,463)
+.. controls (605,369) and (511,315)
+.. (469,315)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((133,-56)
+.. controls (96,-99) and (53,-163)
+.. (-28,-223)
+.. controls (-41,-233) and (-56,-242)
+.. (-74,-242)
+.. controls (-100,-242) and (-104,-232)
+.. (-104,-206)
+.. controls (-104,-185) and (-41,-109)
+.. (133,-56)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((811,638)
+.. controls (781,628) and (750,616)
+.. (724,606)
+.. controls (694,595) and (634,562)
+.. (582,518)
+.. controls (523,469) and (469,400)
+.. (410,324)
+.. controls (409,323) and (404,316)
+.. (401,316)
+.. controls (397,316) and (339,335)
+.. (339,375)
+.. controls (339,420) and (352,446)
+.. (379,479)
+.. controls (456,573) and (614,639)
+.. (787,639)
+.. controls (796,639) and (802,639)
+.. (811,638)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (75,792*FS#,658*FS#,7*FS#);
+"K";
+path P[];
+P1 = ((831,533)
+.. controls (763,475) and (703,426)
+.. (658,373)
+.. controls (479,164) and (393,7)
+.. (227,7)
+.. controls (143,7) and (101,49)
+.. (101,81)
+.. controls (101,85) and (102,88)
+.. (103,92)
+.. controls (109,84) and (114,77)
+.. (128,77)
+.. controls (143,77) and (157,91)
+.. (157,106)
+.. controls (157,126) and (144,138)
+.. (123,138)
+.. controls (102,138) and (85,118)
+.. (85,74)
+.. controls (85,37) and (144,-7)
+.. (225,-7)
+.. controls (330,-7) and (467,65)
+.. (567,181)
+.. controls (627,251) and (674,333)
+.. (738,412)
+.. controls (855,559) and (962,612)
+.. (962,620)
+.. controls (962,625) and (958,630)
+.. (953,630)
+.. controls (952,630) and (933,617)
+.. (913,601)
+.. controls (852,552) and (776,523)
+.. (749,523)
+.. controls (732,523) and (714,520)
+.. (714,536)
+.. controls (714,541) and (715,544)
+.. (718,548)
+.. controls (725,558) and (724,566)
+.. (724,578)
+.. controls (724,600) and (678,658)
+.. (580,658)
+.. controls (488,658) and (399,611)
+.. (366,553)
+.. controls (352,527) and (352,511)
+.. (352,496)
+.. controls (352,462) and (399,423)
+.. (457,423)
+.. controls (578,423) and (664,523)
+.. (664,527)
+.. controls (664,530) and (663,534)
+.. (660,534)
+.. controls (651,534) and (645,526)
+.. (619,503)
+.. controls (566,455) and (504,443)
+.. (438,443)
+.. controls (401,443) and (368,471)
+.. (368,506)
+.. controls (368,579) and (488,644)
+.. (563,644)
+.. controls (643,644) and (685,624)
+.. (685,602)
+.. controls (685,598) and (669,579)
+.. (669,550)
+.. controls (669,536) and (689,509)
+.. (742,509)
+.. controls (763,509) and (794,519)
+.. (831,533)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1305,631)
+.. controls (1288,623) and (1284,615)
+.. (1284,596)
+.. controls (1284,582) and (1299,572)
+.. (1316,572)
+.. controls (1332,572) and (1344,588)
+.. (1344,609)
+.. controls (1344,632) and (1315,653)
+.. (1275,653)
+.. controls (1189,653) and (1071,579)
+.. (952,435)
+.. controls (905,378) and (813,327)
+.. (795,327)
+.. controls (790,327) and (788,331)
+.. (787,335)
+.. controls (785,346) and (757,361)
+.. (723,361)
+.. controls (707,361) and (703,352)
+.. (703,335)
+.. controls (703,323) and (724,309)
+.. (748,309)
+.. controls (791,309) and (793,321)
+.. (793,301)
+.. controls (793,276) and (752,240)
+.. (685,173)
+.. controls (642,130) and (617,101)
+.. (617,57)
+.. controls (617,15) and (643,-6)
+.. (676,-6)
+.. controls (772,-6) and (858,90)
+.. (858,96)
+.. controls (858,98) and (858,100)
+.. (856,100)
+.. controls (849,100) and (835,85)
+.. (814,66)
+.. controls (783,38) and (717,10)
+.. (682,10)
+.. controls (660,10) and (642,22)
+.. (642,37)
+.. controls (642,44) and (675,93)
+.. (737,144)
+.. controls (786,184) and (812,251)
+.. (812,274)
+.. controls (812,291) and (803,309)
+.. (803,315)
+.. controls (803,321) and (811,318)
+.. (817,320)
+.. controls (957,367) and (1014,452)
+.. (1088,513)
+.. controls (1120,539) and (1173,639)
+.. (1277,639)
+.. controls (1290,639) and (1298,634)
+.. (1305,631)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((781,325)
+.. controls (764,319) and (753,321)
+.. (745,321)
+.. controls (730,321) and (716,328)
+.. (716,339)
+.. controls (716,343) and (719,348)
+.. (723,348)
+.. controls (747,348) and (766,342)
+.. (781,325)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (76,736*FS#,674*FS#,6*FS#);
+"L";
+path P[];
+P1 = ((200,3)
+.. controls (310,3) and (363,22)
+.. (367,22)
+.. controls (380,22) and (438,-6)
+.. (551,-6)
+.. controls (700,-6) and (803,81)
+.. (803,96)
+.. controls (803,98) and (803,100)
+.. (801,100)
+.. controls (798,100) and (795,99)
+.. (793,97)
+.. controls (775,81) and (753,52)
+.. (679,29)
+.. controls (643,18) and (604,10)
+.. (564,10)
+.. controls (517,10) and (463,19)
+.. (415,35)
+.. controls (519,73) and (609,140)
+.. (645,188)
+.. controls (673,226) and (704,240)
+.. (717,286)
+.. controls (720,297) and (730,300)
+.. (741,300)
+.. controls (755,300) and (892,333)
+.. (1041,434)
+.. controls (1129,493) and (1171,538)
+.. (1171,593)
+.. controls (1171,620) and (1143,643)
+.. (1108,643)
+.. controls (1020,643) and (833,534)
+.. (718,369)
+-- (668,297)
+.. controls (624,284) and (581,280)
+.. (537,280)
+.. controls (396,280) and (326,325)
+.. (326,407)
+.. controls (326,460) and (372,527)
+.. (429,571)
+.. controls (492,619) and (616,660)
+.. (731,660)
+.. controls (762,660) and (780,657)
+.. (811,657)
+.. controls (815,657) and (822,657)
+.. (822,663)
+.. controls (822,671) and (790,674)
+.. (731,674)
+.. controls (676,674) and (583,660)
+.. (506,633)
+.. controls (378,588) and (310,504)
+.. (310,422)
+.. controls (310,359) and (355,300)
+.. (389,292)
+.. controls (440,280) and (486,268)
+.. (525,268)
+.. controls (558,268) and (604,273)
+.. (658,282)
+.. controls (539,96) and (417,41)
+.. (393,41)
+.. controls (374,41) and (290,77)
+.. (191,77)
+.. controls (109,77) and (83,66)
+.. (83,38)
+.. controls (83,14) and (124,3)
+.. (200,3)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((344,29)
+.. controls (300,18) and (250,15)
+.. (195,15)
+.. controls (134,15) and (98,23)
+.. (98,41)
+.. controls (98,51) and (123,63)
+.. (156,63)
+.. controls (189,63) and (249,62)
+.. (344,29)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((733,309)
+.. controls (876,530) and (1015,631)
+.. (1109,631)
+.. controls (1136,631) and (1155,614)
+.. (1155,594)
+.. controls (1155,510) and (935,349)
+.. (733,309)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (77,799*FS#,672*FS#,7*FS#);
+"M";
+path P[];
+P1 = ((681,392)
+.. controls (518,208) and (436,86)
+.. (436,27)
+.. controls (436,10) and (448,-4)
+.. (463,-4)
+.. controls (502,-4) and (561,80)
+.. (688,232)
+.. controls (839,412) and (971,564)
+.. (1143,644)
+.. controls (1097,603) and (1047,565)
+.. (1008,524)
+.. controls (791,297) and (661,148)
+.. (661,43)
+.. controls (661,16) and (680,-2)
+.. (704,-2)
+.. controls (763,-2) and (866,87)
+.. (866,96)
+.. controls (866,98) and (866,100)
+.. (864,100)
+.. controls (858,100) and (850,92)
+.. (848,90)
+.. controls (787,36) and (728,12)
+.. (712,12)
+.. controls (693,12) and (682,14)
+.. (682,32)
+.. controls (682,55) and (734,143)
+.. (838,271)
+.. controls (978,444) and (1085,564)
+.. (1157,629)
+.. controls (1173,643) and (1188,657)
+.. (1188,664)
+.. controls (1188,669) and (1184,672)
+.. (1180,672)
+.. controls (1167,672) and (1139,659)
+.. (1103,640)
+.. controls (943,555) and (791,375)
+.. (608,153)
+.. controls (526,53) and (488,8)
+.. (461,8)
+.. controls (457,8) and (460,14)
+.. (460,18)
+.. controls (460,18) and (492,84)
+.. (569,181)
+.. controls (671,308) and (794,480)
+.. (965,647)
+.. controls (968,650) and (977,659)
+.. (977,663)
+.. controls (977,669) and (971,667)
+.. (968,667)
+.. controls (968,667) and (895,646)
+.. (812,584)
+.. controls (608,431) and (489,242)
+.. (404,154)
+.. controls (308,55) and (224,5)
+.. (155,5)
+.. controls (104,5) and (79,30)
+.. (79,40)
+.. controls (79,43) and (79,45)
+.. (80,48)
+.. controls (85,47) and (87,45)
+.. (92,45)
+.. controls (113,45) and (128,53)
+.. (128,70)
+.. controls (128,92) and (116,107)
+.. (99,107)
+.. controls (68,107) and (55,89)
+.. (55,57)
+.. controls (55,30) and (86,-7)
+.. (156,-7)
+.. controls (242,-7) and (355,65)
+.. (475,216)
+.. controls (647,432) and (789,579)
+.. (934,640)
+.. controls (785,516) and (713,428)
+.. (681,392)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (78,933*FS#,658*FS#,6*FS#);
+"N";
+path P[];
+P1 = ((830,527)
+.. controls (817,494) and (786,440)
+.. (758,352)
+.. controls (721,236) and (720,110)
+.. (676,36)
+.. controls (670,25) and (659,22)
+.. (659,9)
+.. controls (659,3) and (663,0)
+.. (669,0)
+.. controls (679,0) and (759,132)
+.. (938,350)
+.. controls (1098,545) and (1241,644)
+.. (1364,644)
+.. controls (1418,644) and (1457,621)
+.. (1457,600)
+.. controls (1457,594) and (1447,598)
+.. (1442,601)
+.. controls (1440,602) and (1439,602)
+.. (1437,602)
+.. controls (1423,602) and (1417,588)
+.. (1417,569)
+.. controls (1417,554) and (1431,547)
+.. (1450,547)
+.. controls (1467,547) and (1480,564)
+.. (1480,587)
+.. controls (1480,618) and (1445,658)
+.. (1360,658)
+.. controls (1309,658) and (1236,634)
+.. (1162,583)
+.. controls (997,470) and (869,280)
+.. (715,83)
+.. controls (741,141) and (784,223)
+.. (811,353)
+.. controls (831,451) and (849,552)
+.. (901,620)
+.. controls (904,624) and (908,626)
+.. (908,631)
+.. controls (908,634) and (907,639)
+.. (904,639)
+.. controls (890,639) and (874,604)
+.. (811,524)
+.. controls (720,410) and (632,290)
+.. (531,190)
+.. controls (409,69) and (294,8)
+.. (185,8)
+.. controls (134,8) and (93,37)
+.. (93,78)
+.. controls (93,87) and (98,101)
+.. (102,101)
+.. controls (107,101) and (109,95)
+.. (110,90)
+.. controls (111,80) and (123,80)
+.. (133,80)
+.. controls (152,80) and (163,94)
+.. (163,115)
+.. controls (163,130) and (146,143)
+.. (124,143)
+.. controls (106,143) and (75,111)
+.. (75,89)
+.. controls (75,27) and (119,-6)
+.. (196,-6)
+.. controls (237,-6) and (302,10)
+.. (366,45)
+.. controls (528,134) and (662,310)
+.. (830,527)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (79,586*FS#,671*FS#,7*FS#);
+"O";
+path P[];
+P1 = ((800,671)
+.. controls (524,671) and (137,340)
+.. (137,126)
+.. controls (137,47) and (181,-7)
+.. (254,-7)
+.. controls (415,-7) and (789,331)
+.. (789,533)
+.. controls (789,585) and (759,619)
+.. (718,619)
+.. controls (587,619) and (472,481)
+.. (472,382)
+.. controls (472,343) and (492,319)
+.. (530,319)
+.. controls (598,319) and (691,393)
+.. (726,507)
+.. controls (733,529) and (739,541)
+.. (739,564)
+.. controls (739,569) and (739,581)
+.. (734,581)
+.. controls (728,581) and (726,571)
+.. (726,566)
+.. controls (724,542) and (709,485)
+.. (685,444)
+.. controls (645,375) and (573,331)
+.. (530,331)
+.. controls (502,331) and (485,349)
+.. (485,378)
+.. controls (485,420) and (511,461)
+.. (558,515)
+.. controls (609,574) and (658,605)
+.. (715,605)
+.. controls (749,605) and (776,576)
+.. (776,531)
+.. controls (776,341) and (412,7)
+.. (253,7)
+.. controls (209,7) and (167,35)
+.. (167,84)
+.. controls (167,143) and (211,226)
+.. (295,334)
+.. controls (464,551) and (641,659)
+.. (798,659)
+.. controls (878,659) and (925,621)
+.. (925,576)
+.. controls (925,526) and (870,493)
+.. (834,493)
+.. controls (818,493) and (802,496)
+.. (802,486)
+.. controls (802,480) and (820,479)
+.. (837,479)
+.. controls (872,479) and (938,511)
+.. (938,577)
+.. controls (938,630) and (890,671)
+.. (800,671)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (80,766*FS#,657*FS#,7*FS#);
+"P";
+path P[];
+P1 = ((158,82)
+.. controls (164,80) and (168,78)
+.. (174,78)
+.. controls (200,78) and (215,86)
+.. (215,108)
+.. controls (215,130) and (199,144)
+.. (174,144)
+.. controls (151,144) and (132,127)
+.. (132,104)
+.. controls (132,36) and (200,-7)
+.. (322,-7)
+.. controls (375,-7) and (454,10)
+.. (513,37)
+.. controls (595,74) and (676,144)
+.. (732,233)
+.. controls (784,316) and (815,360)
+.. (819,367)
+.. controls (851,425) and (948,511)
+.. (980,528)
+.. controls (985,530) and (984,520)
+.. (984,515)
+.. controls (984,491) and (991,468)
+.. (991,459)
+.. controls (991,407) and (910,310)
+.. (863,310)
+.. controls (849,310) and (840,315)
+.. (840,329)
+.. controls (840,362) and (897,402)
+.. (939,408)
+.. controls (970,413) and (970,415)
+.. (970,422)
+.. controls (970,426) and (963,424)
+.. (959,424)
+.. controls (903,421) and (827,380)
+.. (827,322)
+.. controls (827,301) and (849,290)
+.. (885,290)
+.. controls (947,290) and (1015,353)
+.. (1015,441)
+.. controls (1015,493) and (993,530)
+.. (993,537)
+.. controls (993,544) and (1000,544)
+.. (1006,547)
+.. controls (1041,568) and (1078,591)
+.. (1112,614)
+.. controls (1114,616) and (1113,618)
+.. (1113,621)
+.. controls (1113,625) and (1107,625)
+.. (1104,623)
+.. controls (1067,603) and (1031,580)
+.. (997,557)
+.. controls (993,554) and (991,550)
+.. (986,550)
+.. controls (982,550) and (981,554)
+.. (978,557)
+.. controls (926,622) and (838,657)
+.. (724,657)
+.. controls (461,657) and (261,464)
+.. (261,349)
+.. controls (261,274) and (321,226)
+.. (439,226)
+.. controls (586,226) and (739,371)
+.. (739,458)
+.. controls (739,502) and (702,537)
+.. (650,537)
+.. controls (538,537) and (485,484)
+.. (413,431)
+.. controls (386,409) and (392,409)
+.. (371,380)
+.. controls (354,363) and (346,347)
+.. (332,328)
+.. controls (332,325) and (334,321)
+.. (338,321)
+.. controls (343,321) and (360,341)
+.. (379,369)
+.. controls (396,395) and (410,407)
+.. (433,428)
+.. controls (504,494) and (578,525)
+.. (637,525)
+.. controls (687,525) and (723,496)
+.. (723,470)
+.. controls (723,456) and (723,448)
+.. (719,435)
+.. controls (695,364) and (541,240)
+.. (398,240)
+.. controls (337,240) and (277,283)
+.. (277,347)
+.. controls (277,467) and (482,645)
+.. (722,645)
+.. controls (897,645) and (973,551)
+.. (973,541)
+.. controls (973,536) and (923,509)
+.. (849,438)
+.. controls (644,242) and (571,5)
+.. (316,5)
+.. controls (224,5) and (164,32)
+.. (158,82)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (81,602*FS#,645*FS#,9*FS#);
+"Q";
+path P[];
+P1 = ((357,77)
+.. controls (360,67) and (368,52)
+.. (368,47)
+.. controls (368,41) and (296,7)
+.. (259,7)
+.. controls (193,7) and (157,48)
+.. (157,91)
+.. controls (157,144) and (196,221)
+.. (276,314)
+.. controls (449,516) and (605,631)
+.. (806,631)
+.. controls (853,631) and (889,622)
+.. (912,597)
+.. controls (934,573) and (932,554)
+.. (932,533)
+.. controls (932,502) and (889,468)
+.. (827,468)
+.. controls (823,468) and (816,470)
+.. (816,463)
+.. controls (816,457) and (827,456)
+.. (833,456)
+.. controls (899,456) and (953,490)
+.. (953,551)
+.. controls (953,599) and (901,645)
+.. (804,645)
+.. controls (697,645) and (557,602)
+.. (427,510)
+.. controls (235,374) and (136,238)
+.. (136,120)
+.. controls (136,37) and (189,-7)
+.. (248,-7)
+.. controls (282,-7) and (343,14)
+.. (365,29)
+.. controls (368,31) and (370,33)
+.. (374,33)
+.. controls (379,33) and (380,27)
+.. (383,23)
+.. controls (396,2) and (421,-9)
+.. (449,-9)
+.. controls (533,-9) and (573,11)
+.. (632,61)
+.. controls (651,77) and (668,91)
+.. (668,96)
+.. controls (668,98) and (667,100)
+.. (665,100)
+.. controls (659,100) and (652,92)
+.. (650,90)
+.. controls (599,42) and (547,17)
+.. (493,17)
+.. controls (435,17) and (413,49)
+.. (413,55)
+.. controls (413,61) and (419,62)
+.. (424,64)
+.. controls (460,80) and (570,151)
+.. (681,281)
+.. controls (755,368) and (798,443)
+.. (798,512)
+.. controls (798,550) and (775,581)
+.. (740,592)
+.. controls (724,597) and (715,595)
+.. (698,595)
+.. controls (670,595) and (589,561)
+.. (522,493)
+.. controls (429,398) and (375,261)
+.. (375,230)
+.. controls (375,225) and (378,217)
+.. (383,217)
+.. controls (389,217) and (393,229)
+.. (395,236)
+.. controls (431,396) and (620,583)
+.. (705,583)
+.. controls (758,583) and (785,557)
+.. (785,505)
+.. controls (785,437) and (722,329)
+.. (588,201)
+.. controls (493,110) and (406,67)
+.. (406,67)
+.. controls (403,67) and (402,72)
+.. (401,75)
+.. controls (384,117) and (357,143)
+.. (335,143)
+.. controls (294,143) and (210,104)
+.. (210,85)
+.. controls (210,80) and (216,78)
+.. (219,78)
+.. controls (225,78) and (228,83)
+.. (233,87)
+.. controls (252,106) and (292,121)
+.. (314,121)
+.. controls (341,121) and (348,106)
+.. (357,77)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (82,866*FS#,671*FS#,7*FS#);
+"R";
+path P[];
+P1 = ((750,126)
+.. controls (725,101) and (709,67)
+.. (709,48)
+.. controls (709,19) and (729,1)
+.. (761,1)
+.. controls (821,1) and (932,84)
+.. (932,96)
+.. controls (932,98) and (931,100)
+.. (929,100)
+.. controls (926,100) and (924,99)
+.. (922,97)
+.. controls (862,40) and (782,13)
+.. (762,13)
+.. controls (747,13) and (737,17)
+.. (737,31)
+.. controls (737,48) and (774,87)
+.. (846,163)
+.. controls (861,179) and (866,193)
+.. (866,215)
+.. controls (866,256) and (855,268)
+.. (855,274)
+.. controls (855,280) and (863,278)
+.. (869,278)
+.. controls (963,278) and (1087,367)
+.. (1087,452)
+.. controls (1087,517) and (1060,566)
+.. (1039,573)
+.. controls (1033,575) and (1027,579)
+.. (1027,586)
+.. controls (1027,594) and (1036,597)
+.. (1044,598)
+.. controls (1058,599) and (1083,627)
+.. (1122,642)
+.. controls (1126,643) and (1129,647)
+.. (1129,651)
+.. controls (1129,666) and (1098,653)
+.. (1070,630)
+.. controls (1053,617) and (1016,595)
+.. (1016,595)
+.. controls (1011,595) and (1010,598)
+.. (1006,601)
+.. controls (940,646) and (843,671)
+.. (745,671)
+.. controls (556,671) and (374,578)
+.. (292,446)
+.. controls (258,390) and (263,364)
+.. (263,339)
+.. controls (263,285) and (320,225)
+.. (444,225)
+.. controls (494,225) and (578,253)
+.. (644,302)
+.. controls (704,346) and (734,395)
+.. (734,455)
+.. controls (734,502) and (698,529)
+.. (626,529)
+.. controls (562,529) and (452,471)
+.. (403,406)
+.. controls (378,373) and (358,351)
+.. (358,339)
+.. controls (358,337) and (359,334)
+.. (361,334)
+.. controls (370,334) and (371,335)
+.. (409,390)
+.. controls (462,467) and (569,517)
+.. (631,517)
+.. controls (689,517) and (721,494)
+.. (721,455)
+.. controls (721,346) and (535,243)
+.. (411,243)
+.. controls (326,243) and (276,297)
+.. (276,339)
+.. controls (276,356) and (275,365)
+.. (279,381)
+.. controls (307,505) and (507,657)
+.. (739,657)
+.. controls (909,657) and (1004,592)
+.. (1004,588)
+.. controls (1004,579) and (876,493)
+.. (784,379)
+.. controls (609,162) and (508,5)
+.. (310,5)
+.. controls (250,5) and (181,36)
+.. (178,80)
+.. controls (185,68) and (192,61)
+.. (210,61)
+.. controls (231,61) and (236,72)
+.. (236,96)
+.. controls (236,112) and (221,121)
+.. (205,121)
+.. controls (179,121) and (163,107)
+.. (163,83)
+.. controls (163,37) and (216,-7)
+.. (341,-7)
+.. controls (402,-7) and (437,9)
+.. (492,35)
+.. controls (658,114) and (734,241)
+.. (819,365)
+.. controls (915,505) and (1013,576)
+.. (1015,576)
+.. controls (1020,576) and (1052,544)
+.. (1052,498)
+.. controls (1052,441) and (1012,409)
+.. (1001,383)
+.. controls (979,327) and (867,285)
+.. (846,285)
+.. controls (840,285) and (836,290)
+.. (834,296)
+.. controls (831,307) and (818,309)
+.. (806,309)
+.. controls (790,309) and (775,310)
+.. (775,295)
+.. controls (775,279) and (797,271)
+.. (831,271)
+.. controls (835,271) and (836,272)
+.. (840,272)
+.. controls (843,272) and (850,255)
+.. (850,243)
+.. controls (850,232) and (848,225)
+.. (841,217)
+.. controls (812,187) and (780,155)
+.. (750,126)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((828,285)
+.. controls (824,284) and (822,283)
+.. (818,283)
+.. controls (806,283) and (790,287)
+.. (790,293)
+.. controls (790,296) and (794,297)
+.. (797,297)
+.. controls (803,297) and (820,294)
+.. (828,285)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (83,704*FS#,670*FS#,7*FS#);
+"S";
+path P[];
+P1 = ((695,324)
+.. controls (642,233) and (556,133)
+.. (494,85)
+.. controls (418,27) and (325,7)
+.. (275,7)
+.. controls (186,7) and (140,31)
+.. (140,75)
+.. controls (140,88) and (145,96)
+.. (150,102)
+.. controls (155,85) and (162,75)
+.. (180,75)
+.. controls (200,75) and (213,88)
+.. (213,107)
+.. controls (213,123) and (196,136)
+.. (175,136)
+.. controls (147,136) and (122,110)
+.. (122,78)
+.. controls (122,30) and (172,-7)
+.. (251,-7)
+.. controls (382,-7) and (504,40)
+.. (600,132)
+.. controls (646,176) and (692,235)
+.. (717,276)
+.. controls (757,343) and (756,341)
+.. (776,347)
+.. controls (997,415) and (1130,521)
+.. (1130,594)
+.. controls (1130,625) and (1105,630)
+.. (1069,630)
+.. controls (1008,630) and (857,545)
+.. (770,427)
+.. controls (727,368) and (712,339)
+.. (695,338)
+.. controls (655,336) and (602,312)
+.. (540,312)
+.. controls (401,312) and (334,359)
+.. (334,430)
+.. controls (334,538) and (484,649)
+.. (680,649)
+.. controls (705,649) and (718,643)
+.. (743,643)
+.. controls (750,643) and (763,641)
+.. (763,649)
+.. controls (763,653) and (727,670)
+.. (671,670)
+.. controls (485,670) and (318,566)
+.. (318,435)
+.. controls (318,362) and (391,300)
+.. (506,300)
+.. controls (600,300) and (659,317)
+.. (695,324)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((770,360)
+.. controls (876,534) and (1007,618)
+.. (1077,618)
+.. controls (1095,618) and (1112,605)
+.. (1112,594)
+.. controls (1112,586) and (1113,582)
+.. (1110,574)
+.. controls (1093,527) and (954,411)
+.. (770,360)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (84,628*FS#,671*FS#,7*FS#);
+"T";
+path P[];
+P1 = ((1242,671)
+.. controls (1238,671) and (1236,669)
+.. (1233,666)
+.. controls (1218,653) and (1190,641)
+.. (1175,641)
+.. controls (1097,641) and (985,655)
+.. (854,655)
+.. controls (626,655) and (475,627)
+.. (383,541)
+.. controls (346,506) and (325,471)
+.. (325,435)
+.. controls (325,395) and (374,353)
+.. (433,353)
+.. controls (466,353) and (514,350)
+.. (591,391)
+.. controls (652,423) and (686,464)
+.. (686,503)
+.. controls (686,534) and (653,558)
+.. (604,558)
+.. controls (496,558) and (365,436)
+.. (365,426)
+.. controls (365,420) and (370,419)
+.. (375,419)
+.. controls (381,419) and (383,424)
+.. (386,429)
+.. controls (407,459) and (520,544)
+.. (601,544)
+.. controls (643,544) and (670,528)
+.. (670,507)
+.. controls (670,435) and (552,365)
+.. (449,365)
+.. controls (386,365) and (341,396)
+.. (341,437)
+.. controls (341,467) and (359,498)
+.. (389,527)
+.. controls (467,602) and (566,627)
+.. (705,627)
+.. controls (919,627) and (1049,594)
+.. (1090,594)
+.. controls (1167,594) and (1248,641)
+.. (1248,666)
+.. controls (1248,669) and (1245,671)
+.. (1242,671)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((94,76)
+.. controls (101,72) and (109,67)
+.. (124,67)
+.. controls (141,67) and (155,83)
+.. (155,101)
+.. controls (155,119) and (138,135)
+.. (120,135)
+.. controls (92,135) and (72,118)
+.. (72,80)
+.. controls (72,33) and (129,-7)
+.. (237,-7)
+.. controls (345,-7) and (463,40)
+.. (553,120)
+.. controls (628,186) and (674,271)
+.. (730,363)
+.. controls (823,515) and (942,565)
+.. (942,591)
+.. controls (942,596) and (942,603)
+.. (935,603)
+.. controls (925,603) and (906,587)
+.. (883,570)
+.. controls (792,502) and (713,405)
+.. (629,292)
+.. controls (537,168) and (467,80)
+.. (378,39)
+.. controls (334,19) and (275,7)
+.. (235,7)
+.. controls (148,7) and (95,33)
+.. (94,76)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (85,765*FS#,656*FS#,4*FS#);
+"U";
+path P[];
+P1 = ((1157,566)
+.. controls (1159,568) and (1159,569)
+.. (1159,571)
+.. controls (1159,574) and (1156,574)
+.. (1153,574)
+-- (1113,574)
+.. controls (1106,574) and (1102,567)
+.. (1101,566)
+-- (885,352)
+.. controls (836,304) and (751,235)
+.. (637,135)
+.. controls (544,53) and (449,8)
+.. (405,8)
+.. controls (382,8) and (366,18)
+.. (366,35)
+.. controls (366,60) and (416,122)
+.. (513,203)
+.. controls (585,263) and (655,327)
+.. (722,393)
+.. controls (766,437) and (796,505)
+.. (796,552)
+.. controls (796,618) and (745,656)
+.. (656,656)
+.. controls (476,656) and (317,546)
+.. (317,452)
+.. controls (317,411) and (362,383)
+.. (438,383)
+.. controls (585,383) and (729,538)
+.. (729,565)
+.. controls (729,567) and (727,568)
+.. (725,568)
+.. controls (714,568) and (698,544)
+.. (672,515)
+.. controls (627,465) and (491,397)
+.. (417,397)
+.. controls (366,397) and (333,424)
+.. (333,455)
+.. controls (333,530) and (480,644)
+.. (655,644)
+.. controls (734,644) and (780,612)
+.. (780,562)
+.. controls (780,497) and (674,405)
+.. (496,252)
+.. controls (398,168) and (345,101)
+.. (345,47)
+.. controls (345,17) and (366,-4)
+.. (403,-4)
+.. controls (459,-4) and (549,40)
+.. (655,133)
+.. controls (676,151) and (703,176)
+.. (737,203)
+.. controls (703,167) and (672,140)
+.. (655,118)
+.. controls (633,89) and (621,53)
+.. (621,42)
+.. controls (621,11) and (632,-4)
+.. (664,-4)
+.. controls (744,-4) and (831,93)
+.. (831,96)
+.. controls (831,98) and (831,100)
+.. (829,100)
+.. controls (826,100) and (823,99)
+.. (821,97)
+.. controls (761,42) and (724,8)
+.. (665,8)
+.. controls (650,8) and (638,11)
+.. (638,25)
+.. controls (638,39) and (661,71)
+.. (695,105)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (86,815*FS#,680*FS#,7*FS#);
+"V";
+path P[];
+P1 = ((747,472)
+.. controls (670,392) and (610,325)
+.. (574,271)
+.. controls (538,217) and (499,163)
+.. (460,113)
+.. controls (400,37) and (355,8)
+.. (355,5)
+.. controls (355,-2) and (354,-7)
+.. (367,-7)
+.. controls (368,-7) and (445,10)
+.. (517,54)
+.. controls (631,123) and (762,262)
+.. (931,439)
+.. controls (1074,589) and (1188,666)
+.. (1279,666)
+.. controls (1318,666) and (1347,647)
+.. (1347,631)
+-- (1347,620)
+.. controls (1343,622) and (1337,626)
+.. (1329,626)
+.. controls (1315,626) and (1301,614)
+.. (1301,604)
+.. controls (1301,582) and (1310,572)
+.. (1331,572)
+.. controls (1352,572) and (1368,591)
+.. (1368,618)
+.. controls (1368,653) and (1330,680)
+.. (1287,680)
+.. controls (1141,680) and (1006,537)
+.. (820,341)
+.. controls (646,158) and (510,39)
+.. (383,10)
+.. controls (418,46) and (518,121)
+.. (640,277)
+.. controls (726,387) and (800,511)
+.. (897,609)
+.. controls (929,642) and (943,652)
+.. (943,667)
+.. controls (943,670) and (937,668)
+.. (935,666)
+.. controls (852,589) and (783,541)
+.. (722,541)
+.. controls (706,541) and (697,544)
+.. (697,556)
+.. controls (697,557) and (704,573)
+.. (704,591)
+.. controls (704,612) and (665,663)
+.. (565,663)
+.. controls (461,663) and (359,594)
+.. (359,516)
+.. controls (359,463) and (410,424)
+.. (492,424)
+.. controls (553,424) and (651,504)
+.. (651,518)
+.. controls (651,520) and (651,524)
+.. (649,524)
+.. controls (633,524) and (622,509)
+.. (610,500)
+.. controls (567,468) and (511,446)
+.. (468,446)
+.. controls (412,446) and (375,476)
+.. (375,515)
+.. controls (375,575) and (455,649)
+.. (572,649)
+.. controls (634,649) and (666,624)
+.. (666,615)
+.. controls (666,609) and (665,606)
+.. (662,601)
+.. controls (657,594) and (654,588)
+.. (654,579)
+.. controls (654,551) and (680,529)
+.. (710,529)
+.. controls (762,529) and (802,546)
+.. (844,572)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (87,1025*FS#,661*FS#,10*FS#);
+"W";
+path P[];
+P1 = ((691,537)
+.. controls (691,551) and (707,565)
+.. (707,577)
+.. controls (707,606) and (658,661)
+.. (564,661)
+.. controls (456,661) and (356,589)
+.. (356,516)
+.. controls (356,464) and (409,426)
+.. (491,426)
+.. controls (565,426) and (651,501)
+.. (651,508)
+.. controls (651,516) and (646,515)
+.. (641,515)
+.. controls (635,515) and (634,510)
+.. (629,506)
+.. controls (584,468) and (529,448)
+.. (475,448)
+.. controls (410,448) and (372,478)
+.. (372,519)
+.. controls (372,574) and (460,645)
+.. (562,645)
+.. controls (621,645) and (665,618)
+.. (665,607)
+.. controls (665,602) and (666,597)
+.. (662,594)
+.. controls (654,587) and (647,577)
+.. (647,566)
+.. controls (647,539) and (676,518)
+.. (717,518)
+.. controls (749,518) and (792,533)
+.. (841,561)
+.. controls (811,525) and (782,501)
+.. (763,482)
+.. controls (601,325) and (512,167)
+.. (430,65)
+.. controls (396,23) and (369,10)
+.. (369,4)
+.. controls (369,-3) and (373,-10)
+.. (379,-10)
+.. controls (397,-10) and (526,48)
+.. (669,197)
+.. controls (827,362) and (950,495)
+.. (1066,580)
+.. controls (982,494) and (884,396)
+.. (790,262)
+.. controls (707,143) and (643,55)
+.. (575,2)
+.. controls (573,1) and (573,-1)
+.. (573,-4)
+.. controls (573,-6) and (574,-10)
+.. (577,-10)
+.. controls (723,3) and (887,186)
+.. (1174,469)
+.. controls (1295,589) and (1413,645)
+.. (1474,645)
+.. controls (1526,645) and (1556,628)
+.. (1554,600)
+.. controls (1547,604) and (1540,608)
+.. (1526,608)
+.. controls (1513,608) and (1504,593)
+.. (1504,575)
+.. controls (1504,559) and (1518,552)
+.. (1539,552)
+.. controls (1555,552) and (1572,575)
+.. (1572,602)
+.. controls (1572,630) and (1544,661)
+.. (1484,661)
+.. controls (1214,661) and (863,72)
+.. (608,11)
+.. controls (637,34) and (709,100)
+.. (793,194)
+.. controls (924,341) and (1008,519)
+.. (1162,648)
+.. controls (1165,650) and (1168,651)
+.. (1168,655)
+.. controls (1168,661) and (1163,661)
+.. (1159,661)
+.. controls (1156,661) and (1022,585)
+.. (827,382)
+.. controls (776,329) and (722,274)
+.. (668,216)
+.. controls (561,102) and (459,38)
+.. (409,21)
+.. controls (451,63) and (531,130)
+.. (627,251)
+.. controls (711,357) and (780,466)
+.. (865,559)
+.. controls (922,622) and (960,650)
+.. (960,652)
+.. controls (960,660) and (953,660)
+.. (948,660)
+.. controls (948,660) and (925,643)
+.. (894,615)
+.. controls (847,574) and (768,532)
+.. (705,532)
+.. controls (699,532) and (691,531)
+.. (691,537)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (88,664*FS#,665*FS#,6*FS#);
+"X";
+path P[];
+P1 = ((541,223)
+.. controls (499,160) and (466,122)
+.. (466,58)
+.. controls (466,26) and (498,-6)
+.. (539,-6)
+.. controls (637,-6) and (730,87)
+.. (730,96)
+.. controls (730,98) and (730,100)
+.. (728,100)
+.. controls (725,100) and (722,99)
+.. (720,97)
+.. controls (661,44) and (608,6)
+.. (547,6)
+.. controls (511,6) and (489,25)
+.. (489,50)
+.. controls (489,105) and (545,177)
+.. (627,278)
+.. controls (661,320) and (662,321)
+.. (683,325)
+.. controls (971,378) and (1185,515)
+.. (1185,609)
+.. controls (1185,643) and (1157,665)
+.. (1112,665)
+.. controls (1029,665) and (911,592)
+.. (757,448)
+.. controls (774,482) and (786,516)
+.. (786,551)
+.. controls (786,623) and (733,664)
+.. (651,664)
+.. controls (540,664) and (427,612)
+.. (358,539)
+.. controls (331,511) and (319,490)
+.. (319,448)
+.. controls (319,417) and (360,383)
+.. (425,383)
+.. controls (448,383) and (473,387)
+.. (501,396)
+.. controls (600,429) and (701,532)
+.. (701,561)
+.. controls (701,564) and (702,570)
+.. (699,570)
+.. controls (687,570) and (671,547)
+.. (637,507)
+.. controls (572,432) and (466,396)
+.. (423,396)
+.. controls (364,396) and (332,421)
+.. (332,456)
+.. controls (332,489) and (349,511)
+.. (376,536)
+.. controls (457,613) and (559,652)
+.. (656,652)
+.. controls (717,652) and (765,616)
+.. (765,569)
+.. controls (765,521) and (736,465)
+.. (708,432)
+-- (622,331)
+.. controls (612,320) and (577,315)
+.. (509,302)
+.. controls (225,246) and (62,132)
+.. (62,55)
+.. controls (62,20) and (92,-6)
+.. (137,-6)
+.. controls (230,-6) and (368,65)
+.. (541,223)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((599,308)
+.. controls (583,285) and (540,242)
+.. (475,186)
+.. controls (336,65) and (200,6)
+.. (138,6)
+.. controls (100,6) and (78,22)
+.. (78,53)
+.. controls (78,94) and (150,162)
+.. (284,221)
+.. controls (358,253) and (465,284)
+.. (599,308)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((681,338)
+.. controls (711,376) and (742,401)
+.. (762,421)
+.. controls (919,577) and (1041,653)
+.. (1111,653)
+.. controls (1152,653) and (1169,637)
+.. (1169,602)
+.. controls (1169,581) and (1133,522)
+.. (1044,469)
+.. controls (937,405) and (784,353)
+.. (681,338)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (89,692*FS#,647*FS#,7*FS#);
+"Y";
+path P[];
+P1 = ((628,133)
+.. controls (561,61) and (464,5)
+.. (377,5)
+.. controls (361,5) and (352,4)
+.. (336,7)
+.. controls (302,13) and (277,37)
+.. (277,59)
+.. controls (277,82) and (278,101)
+.. (288,101)
+.. controls (292,101) and (293,97)
+.. (293,93)
+.. controls (294,83) and (305,81)
+.. (315,81)
+.. controls (333,81) and (347,94)
+.. (347,111)
+.. controls (347,126) and (331,141)
+.. (316,141)
+.. controls (281,141) and (261,110)
+.. (261,74)
+.. controls (261,21) and (299,-7)
+.. (376,-7)
+.. controls (466,-7) and (572,35)
+.. (656,109)
+.. controls (720,165) and (794,259)
+.. (896,356)
+-- (1081,531)
+.. controls (1083,533) and (1084,535)
+.. (1084,538)
+.. controls (1084,541) and (1080,542)
+.. (1077,542)
+-- (1037,542)
+.. controls (1031,542) and (1027,537)
+.. (1025,535)
+-- (858,376)
+.. controls (858,376) and (808,333)
+.. (717,260)
+.. controls (630,190) and (556,160)
+.. (523,160)
+.. controls (487,160) and (467,171)
+.. (467,196)
+.. controls (467,205) and (468,210)
+.. (474,217)
+.. controls (513,260) and (560,302)
+.. (615,341)
+.. controls (714,411) and (761,475)
+.. (761,548)
+.. controls (761,589) and (735,623)
+.. (693,638)
+.. controls (666,647) and (649,647)
+.. (621,647)
+.. controls (529,647) and (400,586)
+.. (347,523)
+.. controls (322,494) and (318,476)
+.. (318,444)
+.. controls (318,414) and (353,387)
+.. (404,387)
+.. controls (593,387) and (708,549)
+.. (708,557)
+.. controls (708,560) and (708,563)
+.. (705,563)
+.. controls (703,563) and (700,565)
+.. (698,563)
+.. controls (667,529) and (631,481)
+.. (541,438)
+.. controls (493,415) and (446,401)
+.. (400,401)
+.. controls (360,401) and (331,421)
+.. (331,452)
+.. controls (331,531) and (498,635)
+.. (626,635)
+.. controls (704,635) and (743,606)
+.. (743,565)
+.. controls (743,494) and (693,459)
+.. (580,369)
+.. controls (514,317) and (451,267)
+.. (451,203)
+.. controls (451,166) and (476,148)
+.. (523,148)
+.. controls (581,148) and (658,199)
+.. (767,283)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (90,679*FS#,636*FS#,7*FS#);
+"Z";
+path P[];
+P1 = ((751,485)
+.. controls (683,435) and (607,365)
+.. (607,365)
+.. controls (603,365) and (601,366)
+.. (598,368)
+.. controls (586,377) and (575,375)
+.. (560,375)
+.. controls (518,375) and (466,328)
+.. (466,323)
+.. controls (466,320) and (471,316)
+.. (474,316)
+.. controls (478,316) and (481,318)
+.. (484,321)
+.. controls (492,331) and (527,350)
+.. (537,350)
+.. controls (561,350) and (568,345)
+.. (579,339)
+-- (372,138)
+.. controls (367,133) and (364,130)
+.. (357,127)
+.. controls (228,65) and (160,34)
+.. (160,14)
+.. controls (160,2) and (170,-4)
+.. (182,-4)
+.. controls (213,-4) and (264,39)
+.. (342,100)
+.. controls (373,124) and (514,180)
+.. (582,180)
+.. controls (602,180) and (620,172)
+.. (620,164)
+.. controls (620,152) and (618,146)
+.. (607,138)
+.. controls (555,101) and (525,70)
+.. (525,52)
+.. controls (525,12) and (547,-7)
+.. (583,-7)
+.. controls (651,-7) and (746,91)
+.. (746,96)
+.. controls (746,98) and (745,100)
+.. (743,100)
+.. controls (740,100) and (738,99)
+.. (736,97)
+.. controls (670,37) and (617,7)
+.. (581,7)
+.. controls (567,7) and (555,8)
+.. (555,19)
+.. controls (555,24) and (556,28)
+.. (560,31)
+.. controls (618,77) and (648,98)
+.. (648,128)
+.. controls (648,178) and (619,192)
+.. (569,192)
+.. controls (521,192) and (468,166)
+.. (405,146)
+.. controls (430,166) and (458,189)
+.. (485,209)
+.. controls (575,275) and (617,321)
+.. (620,321)
+.. controls (625,321) and (628,321)
+.. (632,318)
+.. controls (642,310) and (651,310)
+.. (664,310)
+.. controls (706,310) and (758,361)
+.. (758,368)
+.. controls (758,371) and (757,373)
+.. (754,373)
+.. controls (746,373) and (735,363)
+.. (713,346)
+.. controls (705,340) and (699,336)
+.. (689,336)
+.. controls (660,336) and (647,345)
+.. (647,348)
+.. controls (647,350) and (693,393)
+.. (769,480)
+.. controls (778,490) and (794,491)
+.. (804,493)
+.. controls (867,507) and (915,533)
+.. (960,558)
+.. controls (992,576) and (1013,593)
+.. (1013,615)
+.. controls (1013,631) and (998,636)
+.. (978,636)
+.. controls (959,636) and (926,618)
+.. (884,587)
+.. controls (820,539) and (785,510)
+.. (784,508)
+.. controls (776,497) and (754,497)
+.. (721,497)
+.. controls (706,497) and (691,500)
+.. (691,509)
+.. controls (691,511) and (701,533)
+.. (715,556)
+.. controls (716,558) and (717,560)
+.. (717,563)
+.. controls (717,576) and (696,594)
+.. (669,616)
+.. controls (639,640) and (612,636)
+.. (573,636)
+.. controls (447,636) and (341,567)
+.. (341,487)
+.. controls (341,461) and (372,429)
+.. (415,421)
+.. controls (432,418) and (442,421)
+.. (459,421)
+.. controls (531,421) and (628,492)
+.. (628,498)
+.. controls (628,504) and (623,505)
+.. (618,505)
+.. controls (611,505) and (609,500)
+.. (603,496)
+.. controls (562,470) and (517,433)
+.. (443,433)
+.. controls (389,433) and (354,457)
+.. (354,490)
+.. controls (354,544) and (439,624)
+.. (585,624)
+.. controls (635,624) and (674,604)
+.. (674,591)
+.. controls (674,580) and (662,566)
+.. (654,555)
+.. controls (648,547) and (647,540)
+.. (647,530)
+.. controls (647,510) and (674,485)
+.. (735,485)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((809,508)
+.. controls (865,566) and (966,623)
+.. (985,623)
+.. controls (991,623) and (997,621)
+.. (997,614)
+.. controls (997,591) and (895,528)
+.. (809,508)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (91,590*FS#,466*FS#,1*FS#);
+"bracketleft";
+path P[];
+P1 = ((475,456)
+.. controls (542,458) and (560,449)
+.. (560,463)
+.. controls (560,468) and (528,466)
+.. (471,466)
+.. controls (463,466) and (459,466)
+.. (453,459)
+-- (31,8)
+.. controls (30,7) and (30,6)
+.. (30,4)
+.. controls (30,2) and (31,-1)
+.. (33,-1)
+-- (172,-1)
+.. controls (174,-1) and (176,2)
+.. (176,4)
+.. controls (176,17) and (170,14)
+.. (91,22)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (93,623*FS#,469*FS#,1*FS#);
+"bracketright";
+path P[];
+P1 = ((126,21)
+.. controls (108,3) and (30,35)
+.. (30,4)
+.. controls (30,-2) and (73,-1)
+.. (152,-1)
+.. controls (165,-1) and (164,1)
+.. (169,7)
+-- (592,459)
+.. controls (593,460) and (593,461)
+.. (593,463)
+.. controls (593,467) and (587,469)
+.. (584,469)
+.. controls (582,469) and (582,468)
+.. (580,468)
+-- (474,466)
+.. controls (470,466) and (465,455)
+.. (475,455)
+.. controls (477,455) and (477,458)
+.. (479,458)
+-- (563,458)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (94,373*FS#,667*FS#,0*FS#);
+"asciicircum";
+path P[];
+P1 = ((90,450)
+-- (187,593)
+-- (283,450)
+-- (343,450)
+-- (193,667)
+-- (180,667)
+-- (30,450)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (95,1032*FS#,0*FS#,100*FS#);
+"underscore";
+path P[];
+P1 = ((0,-100)
+-- (1032,-100)
+-- (1032,-47)
+-- (0,-47)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (0,143*FS#,834*FS#,0*FS#);
+"grave";
+path P[];
+P1 = ((50,834)
+.. controls (37,834) and (30,827)
+.. (30,813)
+.. controls (30,795) and (87,747)
+.. (108,747)
+.. controls (110,747) and (113,747)
+.. (113,749)
+.. controls (113,757) and (100,765)
+.. (86,783)
+.. controls (63,813) and (71,834)
+.. (50,834)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (97,293*FS#,194*FS#,5*FS#);
+"a";
+path P[];
+P1 = ((199,64)
+.. controls (195,55) and (191,41)
+.. (191,29)
+.. controls (191,6) and (197,-5)
+.. (220,-5)
+.. controls (255,-5) and (359,88)
+.. (359,96)
+.. controls (359,98) and (359,100)
+.. (357,100)
+.. controls (354,100) and (351,99)
+.. (349,97)
+.. controls (285,39) and (242,7)
+.. (219,7)
+.. controls (213,7) and (207,11)
+.. (207,17)
+.. controls (207,24) and (215,36)
+.. (220,42)
+-- (350,183)
+.. controls (351,185) and (352,187)
+.. (352,189)
+.. controls (352,191) and (349,193)
+.. (347,193)
+-- (313,193)
+.. controls (310,193) and (306,191)
+.. (304,189)
+-- (280,164)
+.. controls (277,185) and (269,194)
+.. (247,194)
+.. controls (217,194) and (179,182)
+.. (131,152)
+.. controls (75,121) and (49,74)
+.. (45,35)
+.. controls (45,12) and (61,-5)
+.. (80,-5)
+.. controls (110,-5) and (149,26)
+.. (199,64)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((248,182)
+.. controls (264,182) and (267,176)
+.. (267,160)
+.. controls (267,132) and (125,7)
+.. (78,7)
+.. controls (65,7) and (64,15)
+.. (64,28)
+.. controls (64,44) and (191,182)
+.. (248,182)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (98,291*FS#,535*FS#,7*FS#);
+"b";
+path P[];
+P1 = ((126,129)
+.. controls (101,101) and (84,68)
+.. (84,39)
+.. controls (84,12) and (100,-7)
+.. (124,-7)
+.. controls (144,-7) and (199,19)
+.. (262,71)
+.. controls (268,57) and (279,50)
+.. (293,50)
+.. controls (320,50) and (357,87)
+.. (357,96)
+.. controls (357,98) and (356,100)
+.. (354,100)
+.. controls (351,100) and (349,99)
+.. (347,97)
+.. controls (327,75) and (315,62)
+.. (292,62)
+.. controls (281,62) and (276,67)
+.. (276,78)
+.. controls (276,81) and (292,101)
+.. (313,120)
+.. controls (328,133) and (349,165)
+.. (349,183)
+.. controls (349,188) and (346,192)
+.. (341,192)
+.. controls (337,192) and (333,193)
+.. (330,191)
+.. controls (310,178) and (280,138)
+.. (271,105)
+.. controls (262,75) and (148,7)
+.. (130,7)
+.. controls (116,7) and (102,11)
+.. (102,22)
+.. controls (102,32) and (113,52)
+.. (126,67)
+-- (266,229)
+.. controls (268,232) and (270,234)
+.. (273,235)
+.. controls (498,332) and (617,451)
+.. (617,508)
+.. controls (617,526) and (604,535)
+.. (583,535)
+.. controls (560,535) and (533,520)
+.. (504,499)
+.. controls (427,444) and (350,375)
+.. (296,317)
+-- (219,234)
+.. controls (205,219) and (186,213)
+.. (164,194)
+.. controls (98,137) and (62,108)
+.. (62,102)
+.. controls (62,100) and (63,98)
+.. (65,98)
+.. controls (74,98) and (98,129)
+.. (171,180)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((459,436)
+.. controls (514,492) and (558,523)
+.. (590,523)
+.. controls (596,523) and (601,519)
+.. (601,513)
+.. controls (601,462) and (493,345)
+.. (296,261)
+.. controls (319,294) and (351,326)
+.. (383,359)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (99,190*FS#,196*FS#,6*FS#);
+"c";
+path P[];
+P1 = ((87,-6)
+.. controls (146,-6) and (258,83)
+.. (258,96)
+.. controls (258,98) and (257,100)
+.. (255,100)
+.. controls (249,100) and (242,92)
+.. (240,90)
+.. controls (180,33) and (102,6)
+.. (87,6)
+.. controls (78,6) and (67,12)
+.. (67,20)
+.. controls (67,52) and (189,182)
+.. (223,182)
+.. controls (233,182) and (239,181)
+.. (239,166)
+.. controls (239,163) and (239,160)
+.. (236,160)
+.. controls (233,160) and (232,162)
+.. (230,164)
+.. controls (226,167) and (223,167)
+.. (218,167)
+.. controls (207,167) and (195,155)
+.. (195,144)
+.. controls (195,131) and (203,124)
+.. (216,124)
+.. controls (229,124) and (252,148)
+.. (252,168)
+.. controls (252,187) and (241,196)
+.. (221,196)
+.. controls (196,196) and (110,155)
+.. (72,108)
+.. controls (53,84) and (46,64)
+.. (46,34)
+.. controls (46,12) and (65,-6)
+.. (87,-6)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (100,299*FS#,454*FS#,7*FS#);
+"d";
+path P[];
+P1 = ((201,61)
+.. controls (196,51) and (190,38)
+.. (190,24)
+.. controls (190,4) and (196,-6)
+.. (215,-6)
+.. controls (269,-6) and (366,91)
+.. (366,96)
+.. controls (366,98) and (366,100)
+.. (364,100)
+.. controls (361,100) and (358,99)
+.. (356,97)
+.. controls (292,39) and (249,6)
+.. (219,6)
+.. controls (213,6) and (206,8)
+.. (206,15)
+.. controls (206,27) and (225,48)
+.. (250,74)
+-- (616,444)
+.. controls (618,446) and (617,448)
+.. (617,450)
+.. controls (617,453) and (614,454)
+.. (611,454)
+-- (577,454)
+.. controls (572,454) and (569,451)
+.. (567,449)
+-- (281,157)
+.. controls (281,180) and (265,192)
+.. (241,192)
+.. controls (214,192) and (120,161)
+.. (71,105)
+.. controls (48,79) and (42,60)
+.. (42,29)
+.. controls (42,8) and (57,-7)
+.. (78,-7)
+.. controls (111,-7) and (150,19)
+.. (201,61)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((266,167)
+.. controls (266,113) and (113,5)
+.. (81,5)
+.. controls (73,5) and (63,10)
+.. (63,16)
+.. controls (63,57) and (197,178)
+.. (247,178)
+.. controls (255,178) and (266,173)
+.. (266,167)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (101,195*FS#,192*FS#,7*FS#);
+"e";
+path P[];
+P1 = ((100,83)
+.. controls (106,90) and (128,93)
+.. (164,102)
+.. controls (195,110) and (250,148)
+.. (250,175)
+.. controls (250,188) and (239,192)
+.. (225,192)
+.. controls (204,192) and (122,161)
+.. (74,109)
+.. controls (51,85) and (41,66)
+.. (41,30)
+.. controls (41,9) and (60,-7)
+.. (84,-7)
+.. controls (151,-7) and (262,84)
+.. (262,96)
+.. controls (262,98) and (261,100)
+.. (259,100)
+.. controls (256,100) and (254,99)
+.. (252,97)
+.. controls (236,83) and (212,57)
+.. (160,32)
+.. controls (136,21) and (112,5)
+.. (84,5)
+.. controls (72,5) and (60,10)
+.. (60,21)
+.. controls (60,33) and (66,45)
+.. (74,53)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((175,152)
+.. controls (189,165) and (219,181)
+.. (227,181)
+.. controls (230,181) and (234,181)
+.. (234,178)
+.. controls (234,151) and (179,114)
+.. (119,103)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (102,216*FS#,525*FS#,232*FS#);
+"f";
+path P[];
+P1 = ((-180,-224)
+.. controls (-181,-225) and (-182,-227)
+.. (-182,-229)
+.. controls (-182,-231) and (-178,-232)
+.. (-176,-232)
+-- (-138,-232)
+.. controls (-133,-232) and (-128,-226)
+.. (-126,-224)
+-- (138,64)
+.. controls (147,59) and (162,52)
+.. (173,52)
+.. controls (226,52) and (257,91)
+.. (257,96)
+.. controls (257,98) and (256,100)
+.. (254,100)
+.. controls (248,100) and (241,92)
+.. (239,90)
+.. controls (222,75) and (203,64)
+.. (186,64)
+.. controls (174,64) and (163,63)
+.. (147,74)
+-- (284,228)
+.. controls (299,245) and (411,275)
+.. (542,378)
+.. controls (605,428) and (634,474)
+.. (634,494)
+.. controls (634,514) and (624,525)
+.. (604,525)
+.. controls (571,525) and (478,463)
+.. (354,341)
+-- (229,219)
+-- (162,174)
+.. controls (163,177) and (166,185)
+.. (166,192)
+.. controls (166,197) and (159,199)
+.. (155,199)
+.. controls (146,199) and (120,167)
+.. (114,141)
+.. controls (113,137) and (99,129)
+.. (89,122)
+.. controls (71,110) and (55,95)
+.. (55,90)
+.. controls (55,88) and (55,86)
+.. (57,86)
+.. controls (65,86) and (75,101)
+.. (100,113)
+.. controls (82,79) and (24,-5)
+.. (-24,-56)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((125,102)
+.. controls (124,104) and (121,109)
+.. (121,115)
+.. controls (121,123) and (125,134)
+.. (131,138)
+-- (203,187)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((443,399)
+.. controls (505,466) and (580,511)
+.. (600,511)
+.. controls (611,511) and (621,511)
+.. (621,498)
+.. controls (621,466) and (534,356)
+.. (309,255)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((109,103)
+-- (114,91)
+-- (72,45)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (103,296*FS#,198*FS#,230*FS#);
+"g";
+path P[];
+P1 = ((359,189)
+.. controls (361,191) and (360,193)
+.. (360,195)
+.. controls (360,197) and (358,198)
+.. (356,198)
+-- (324,198)
+.. controls (321,198) and (317,196)
+.. (315,194)
+-- (289,166)
+.. controls (287,189) and (277,197)
+.. (252,197)
+.. controls (199,197) and (41,126)
+.. (41,38)
+.. controls (41,13) and (59,-6)
+.. (80,-6)
+.. controls (107,-6) and (128,12)
+.. (157,27)
+-- (88,-48)
+.. controls (34,-67) and (-30,-84)
+.. (-98,-141)
+.. controls (-129,-168) and (-146,-187)
+.. (-146,-209)
+.. controls (-146,-222) and (-131,-230)
+.. (-113,-230)
+.. controls (-81,-230) and (-19,-198)
+.. (37,-141)
+-- (131,-45)
+.. controls (286,9) and (363,89)
+.. (363,96)
+.. controls (363,98) and (362,100)
+.. (360,100)
+.. controls (348,100) and (285,21)
+.. (153,-24)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((-25,-169)
+.. controls (-49,-195) and (-87,-218)
+.. (-121,-218)
+.. controls (-127,-218) and (-135,-214)
+.. (-135,-207)
+.. controls (-135,-178) and (-45,-97)
+.. (69,-67)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((251,185)
+.. controls (263,185) and (276,181)
+.. (276,172)
+.. controls (276,151) and (255,130)
+.. (209,85)
+.. controls (151,28) and (98,6)
+.. (79,6)
+.. controls (69,6) and (62,13)
+.. (62,23)
+.. controls (62,61) and (209,185)
+.. (251,185)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (104,352*FS#,522*FS#,6*FS#);
+"h";
+path P[];
+P1 = ((261,87)
+.. controls (240,69) and (227,51)
+.. (227,27)
+.. controls (227,9) and (242,-6)
+.. (258,-6)
+.. controls (314,-6) and (418,89)
+.. (418,96)
+.. controls (418,98) and (418,100)
+.. (416,100)
+.. controls (410,100) and (402,92)
+.. (400,90)
+.. controls (340,36) and (284,6)
+.. (259,6)
+.. controls (253,6) and (247,9)
+.. (247,15)
+.. controls (247,28) and (279,52)
+.. (325,91)
+.. controls (344,107) and (359,135)
+.. (359,152)
+.. controls (359,174) and (346,190)
+.. (326,190)
+.. controls (282,190) and (228,145)
+.. (150,83)
+-- (290,241)
+.. controls (338,264) and (418,294)
+.. (512,356)
+.. controls (596,412) and (638,465)
+.. (638,491)
+.. controls (638,513) and (627,522)
+.. (604,522)
+.. controls (537,522) and (423,427)
+.. (256,250)
+.. controls (226,218) and (168,192)
+.. (101,137)
+.. controls (81,121) and (63,108)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (76,98) and (125,150)
+.. (208,199)
+-- (30,11)
+.. controls (28,9) and (29,7)
+.. (29,4)
+.. controls (29,2) and (32,0)
+.. (34,0)
+-- (71,0)
+.. controls (82,0) and (96,19)
+.. (121,42)
+.. controls (228,141) and (302,180)
+.. (323,180)
+.. controls (332,180) and (341,172)
+.. (341,164)
+.. controls (341,155) and (312,130)
+.. (261,87)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((462,414)
+.. controls (477,429) and (499,461)
+.. (546,487)
+.. controls (570,501) and (596,510)
+.. (605,510)
+.. controls (614,510) and (625,503)
+.. (625,496)
+.. controls (625,473) and (581,415)
+.. (499,362)
+.. controls (433,319) and (362,283)
+.. (314,266)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (105,150*FS#,333*FS#,7*FS#);
+"i";
+path P[];
+P1 = ((289,315)
+.. controls (288,314) and (288,313)
+.. (288,311)
+.. controls (288,309) and (288,308)
+.. (289,307)
+-- (308,289)
+.. controls (309,288) and (310,288)
+.. (311,288)
+.. controls (313,288) and (314,288)
+.. (315,289)
+-- (331,308)
+.. controls (332,309) and (332,310)
+.. (332,312)
+.. controls (332,314) and (332,315)
+.. (331,316)
+-- (316,331)
+.. controls (315,332) and (314,333)
+.. (312,333)
+.. controls (310,333) and (308,332)
+.. (307,331)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((73,94)
+.. controls (60,81) and (41,50)
+.. (41,30)
+.. controls (41,7) and (51,-7)
+.. (71,-7)
+.. controls (113,-7) and (216,89)
+.. (216,96)
+.. controls (216,98) and (215,100)
+.. (213,100)
+.. controls (210,100) and (208,99)
+.. (206,97)
+.. controls (140,37) and (93,5)
+.. (72,5)
+.. controls (63,5) and (59,9)
+.. (59,18)
+.. controls (59,22) and (69,38)
+.. (78,47)
+-- (209,181)
+.. controls (211,183) and (211,185)
+.. (211,187)
+.. controls (211,189) and (208,191)
+.. (206,191)
+-- (168,191)
+.. controls (163,191) and (160,189)
+.. (158,187)
+-- (102,138)
+.. controls (80,119) and (63,106)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (74,98) and (84,113)
+.. (101,123)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (106,156*FS#,332*FS#,229*FS#);
+"j";
+path P[];
+P1 = ((278,317)
+.. controls (276,315) and (276,313)
+.. (276,311)
+.. controls (276,309) and (277,308)
+.. (278,307)
+-- (293,292)
+.. controls (294,290) and (296,289)
+.. (298,289)
+.. controls (300,289) and (301,291)
+.. (302,292)
+-- (316,307)
+.. controls (317,308) and (318,309)
+.. (318,311)
+.. controls (318,313) and (318,315)
+.. (316,317)
+-- (302,331)
+.. controls (301,332) and (299,332)
+.. (297,332)
+.. controls (295,332) and (294,332)
+.. (293,331)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((-39,-32)
+.. controls (-100,-65) and (-192,-83)
+.. (-268,-159)
+.. controls (-282,-173) and (-295,-188)
+.. (-295,-206)
+.. controls (-295,-219) and (-279,-229)
+.. (-260,-229)
+.. controls (-221,-229) and (-179,-202)
+.. (-127,-159)
+.. controls (-114,-148) and (-65,-115)
+.. (6,-28)
+.. controls (15,-18) and (17,-19)
+.. (26,-16)
+.. controls (152,25) and (223,87)
+.. (223,96)
+.. controls (223,98) and (222,100)
+.. (220,100)
+.. controls (210,100) and (160,41)
+.. (35,0)
+-- (204,179)
+.. controls (206,181) and (206,183)
+.. (206,185)
+.. controls (206,188) and (203,190)
+.. (200,190)
+-- (165,190)
+.. controls (160,190) and (157,187)
+.. (155,185)
+-- (80,120)
+.. controls (74,115) and (63,106)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (75,98) and (85,115)
+.. (108,128)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((-156,-156)
+.. controls (-187,-190) and (-232,-217)
+.. (-260,-217)
+.. controls (-271,-217) and (-281,-216)
+.. (-281,-205)
+.. controls (-281,-183) and (-232,-135)
+.. (-185,-112)
+.. controls (-143,-91) and (-104,-69)
+.. (-66,-58)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (107,315*FS#,536*FS#,0*FS#);
+"k";
+path P[];
+P1 = ((38,12)
+.. controls (36,10) and (37,8)
+.. (37,6)
+.. controls (37,0) and (54,3)
+.. (64,2)
+.. controls (69,2) and (70,0)
+.. (75,0)
+.. controls (80,0) and (83,6)
+.. (84,7)
+-- (303,253)
+.. controls (413,298) and (513,363)
+.. (585,427)
+.. controls (613,452) and (632,474)
+.. (632,503)
+.. controls (632,521) and (616,536)
+.. (597,536)
+.. controls (555,536) and (481,480)
+.. (377,375)
+-- (257,254)
+.. controls (181,216) and (64,110)
+.. (64,102)
+.. controls (64,100) and (65,98)
+.. (67,98)
+.. controls (78,98) and (117,149)
+.. (229,224)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((251,115)
+.. controls (299,125) and (320,154)
+.. (340,177)
+.. controls (346,183) and (356,192)
+.. (365,192)
+.. controls (367,192) and (371,191)
+.. (371,189)
+.. controls (371,186) and (367,185)
+.. (365,183)
+.. controls (362,180) and (363,178)
+.. (363,174)
+.. controls (363,167) and (371,162)
+.. (378,162)
+.. controls (388,162) and (393,172)
+.. (393,182)
+.. controls (393,196) and (381,201)
+.. (364,201)
+.. controls (346,201) and (311,187)
+.. (290,165)
+.. controls (249,122) and (255,123)
+.. (191,118)
+.. controls (188,118) and (182,117)
+.. (182,112)
+.. controls (182,110) and (183,108)
+.. (185,108)
+.. controls (211,108) and (239,116)
+.. (239,108)
+.. controls (239,98) and (238,95)
+.. (212,69)
+.. controls (202,59) and (200,45)
+.. (200,33)
+.. controls (200,19) and (217,3)
+.. (234,3)
+.. controls (279,3) and (309,27)
+.. (345,60)
+.. controls (364,77) and (381,91)
+.. (381,96)
+.. controls (381,98) and (381,100)
+.. (379,100)
+.. controls (376,100) and (373,99)
+.. (371,97)
+.. controls (308,40) and (279,15)
+.. (234,15)
+.. controls (229,15) and (222,17)
+.. (222,22)
+.. controls (222,33) and (237,41)
+.. (246,49)
+.. controls (257,59) and (264,73)
+.. (264,88)
+.. controls (264,101) and (258,108)
+.. (251,115)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((447,411)
+.. controls (513,482) and (570,524)
+.. (595,524)
+.. controls (608,524) and (619,513)
+.. (619,499)
+.. controls (619,470) and (555,406)
+.. (430,331)
+.. controls (395,310) and (360,289)
+.. (322,275)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (108,189*FS#,525*FS#,7*FS#);
+"l";
+path P[];
+P1 = ((260,236)
+.. controls (484,335) and (610,452)
+.. (610,494)
+.. controls (610,512) and (594,525)
+.. (573,525)
+.. controls (548,525) and (491,498)
+.. (433,450)
+.. controls (316,353) and (270,295)
+.. (267,292)
+-- (178,200)
+.. controls (104,148) and (64,107)
+.. (64,102)
+.. controls (64,100) and (65,98)
+.. (67,98)
+.. controls (76,98) and (92,122)
+.. (129,147)
+.. controls (95,103) and (67,68)
+.. (67,36)
+.. controls (67,9) and (76,-7)
+.. (98,-7)
+.. controls (149,-7) and (256,89)
+.. (256,96)
+.. controls (256,98) and (255,100)
+.. (253,100)
+.. controls (247,100) and (240,92)
+.. (238,90)
+.. controls (174,32) and (116,5)
+.. (97,5)
+.. controls (88,5) and (85,11)
+.. (85,19)
+.. controls (85,26) and (107,63)
+.. (147,108)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((404,395)
+.. controls (467,466) and (540,513)
+.. (573,513)
+.. controls (585,513) and (594,507)
+.. (594,495)
+.. controls (594,462) and (468,340)
+.. (279,255)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (109,525*FS#,197*FS#,0*FS#);
+"m";
+path P[];
+P1 = ((210,115)
+.. controls (220,129) and (231,144)
+.. (231,162)
+.. controls (231,183) and (219,197)
+.. (201,197)
+.. controls (154,197) and (63,109)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (69,98) and (71,99)
+.. (73,101)
+.. controls (134,156) and (178,185)
+.. (198,185)
+.. controls (203,185) and (207,181)
+.. (207,176)
+.. controls (207,166) and (201,157)
+.. (195,151)
+-- (59,9)
+.. controls (57,7) and (58,6)
+.. (58,4)
+.. controls (58,2) and (61,0)
+.. (63,0)
+-- (99,0)
+.. controls (104,0) and (125,20)
+.. (154,50)
+.. controls (230,127) and (322,184)
+.. (350,184)
+.. controls (356,184) and (363,182)
+.. (363,175)
+.. controls (363,167) and (356,154)
+.. (350,148)
+-- (218,9)
+.. controls (216,7) and (215,6)
+.. (215,3)
+.. controls (215,1) and (218,0)
+.. (220,0)
+-- (257,0)
+.. controls (264,0) and (280,19)
+.. (305,44)
+.. controls (400,139) and (469,183)
+.. (499,183)
+.. controls (510,183) and (517,180)
+.. (517,169)
+.. controls (517,159) and (490,137)
+.. (454,107)
+.. controls (426,84) and (409,59)
+.. (409,35)
+.. controls (409,15) and (422,1)
+.. (441,1)
+.. controls (495,1) and (591,87)
+.. (591,96)
+.. controls (591,98) and (591,100)
+.. (589,100)
+.. controls (586,100) and (583,99)
+.. (581,97)
+.. controls (519,41) and (469,13)
+.. (439,13)
+.. controls (432,13) and (426,17)
+.. (426,25)
+.. controls (426,33) and (447,53)
+.. (474,72)
+.. controls (508,96) and (535,133)
+.. (535,161)
+.. controls (535,184) and (523,195)
+.. (499,195)
+.. controls (463,195) and (424,163)
+.. (368,120)
+.. controls (376,133) and (386,151)
+.. (386,162)
+.. controls (386,182) and (375,196)
+.. (358,196)
+.. controls (310,196) and (275,161)
+.. (210,115)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (110,361*FS#,194*FS#,1*FS#);
+"n";
+path P[];
+P1 = ((61,11)
+.. controls (59,9) and (59,7)
+.. (59,4)
+.. controls (59,1) and (61,0)
+.. (64,0)
+-- (101,0)
+.. controls (120,0) and (272,181)
+.. (344,181)
+.. controls (353,181) and (362,178)
+.. (362,169)
+.. controls (362,166) and (343,145)
+.. (313,119)
+.. controls (274,85) and (251,65)
+.. (251,29)
+.. controls (251,12) and (265,-1)
+.. (282,-1)
+.. controls (329,-1) and (428,87)
+.. (428,96)
+.. controls (428,98) and (427,100)
+.. (425,100)
+.. controls (422,100) and (420,99)
+.. (418,97)
+.. controls (353,38) and (304,11)
+.. (281,11)
+.. controls (276,11) and (270,14)
+.. (270,19)
+.. controls (270,30) and (299,57)
+.. (354,107)
+.. controls (370,121) and (379,141)
+.. (379,162)
+.. controls (379,181) and (368,193)
+.. (348,193)
+.. controls (306,193) and (268,160)
+.. (213,115)
+.. controls (223,132) and (233,151)
+.. (233,166)
+.. controls (233,181) and (223,194)
+.. (210,194)
+.. controls (148,194) and (64,108)
+.. (64,102)
+.. controls (64,100) and (65,98)
+.. (67,98)
+.. controls (70,98) and (72,99)
+.. (74,101)
+.. controls (137,157) and (181,182)
+.. (201,182)
+.. controls (206,182) and (213,183)
+.. (213,178)
+.. controls (213,165) and (208,161)
+.. (202,155)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (111,218*FS#,192*FS#,7*FS#);
+"o";
+path P[];
+P1 = ((228,87)
+.. controls (252,115) and (269,139)
+.. (269,167)
+.. controls (269,181) and (253,192)
+.. (236,192)
+.. controls (176,192) and (41,126)
+.. (41,30)
+.. controls (41,11) and (58,-7)
+.. (78,-7)
+.. controls (109,-7) and (158,20)
+.. (218,76)
+.. controls (223,71) and (230,65)
+.. (239,65)
+.. controls (254,65) and (284,88)
+.. (284,97)
+.. controls (284,99) and (284,100)
+.. (282,100)
+.. controls (276,100) and (268,92)
+.. (266,90)
+.. controls (259,84) and (249,78)
+.. (239,78)
+.. controls (233,78) and (230,84)
+.. (228,87)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((82,5)
+.. controls (65,5) and (62,9)
+.. (62,25)
+.. controls (62,47) and (193,180)
+.. (231,180)
+.. controls (243,180) and (256,181)
+.. (256,164)
+.. controls (256,111) and (129,5)
+.. (82,5)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (112,332*FS#,323*FS#,226*FS#);
+"p";
+path P[];
+P1 = ((357,314)
+.. controls (358,316) and (359,317)
+.. (359,319)
+.. controls (359,321) and (356,323)
+.. (354,323)
+-- (332,323)
+.. controls (312,323) and (242,231)
+.. (99,138)
+.. controls (78,124) and (62,106)
+.. (62,102)
+.. controls (62,100) and (63,98)
+.. (65,98)
+.. controls (74,98) and (85,116)
+.. (107,130)
+.. controls (157,162) and (193,193)
+.. (221,215)
+-- (-206,-216)
+.. controls (-208,-218) and (-209,-220)
+.. (-209,-223)
+.. controls (-209,-225) and (-208,-226)
+.. (-206,-226)
+-- (-166,-226)
+.. controls (-162,-226) and (-157,-222)
+.. (-155,-220)
+-- (79,18)
+.. controls (91,30) and (98,36)
+.. (111,47)
+.. controls (223,143) and (294,191)
+.. (322,191)
+.. controls (332,191) and (338,188)
+.. (338,178)
+.. controls (338,164) and (309,141)
+.. (255,95)
+.. controls (232,76) and (219,55)
+.. (219,30)
+.. controls (219,10) and (233,-6)
+.. (251,-6)
+.. controls (299,-6) and (399,90)
+.. (399,96)
+.. controls (399,98) and (399,100)
+.. (397,100)
+.. controls (394,100) and (391,99)
+.. (389,97)
+.. controls (325,39) and (282,6)
+.. (254,6)
+.. controls (242,6) and (238,11)
+.. (238,22)
+.. controls (238,34) and (266,56)
+.. (318,99)
+.. controls (342,118) and (357,141)
+.. (357,159)
+.. controls (357,188) and (347,203)
+.. (323,203)
+.. controls (288,203) and (239,166)
+.. (169,112)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (113,284*FS#,194*FS#,218*FS#);
+"q";
+path P[];
+P1 = ((-81,-208)
+.. controls (-82,-210) and (-82,-212)
+.. (-82,-214)
+.. controls (-82,-216) and (-79,-218)
+.. (-77,-218)
+-- (-42,-218)
+.. controls (-39,-218) and (-32,-215)
+.. (-30,-213)
+-- (89,-90)
+.. controls (107,-79) and (162,-55)
+.. (245,6)
+.. controls (314,56) and (351,90)
+.. (351,96)
+.. controls (351,98) and (350,100)
+.. (348,100)
+.. controls (336,100) and (268,20)
+.. (123,-56)
+-- (357,185)
+.. controls (358,186) and (357,188)
+.. (357,190)
+.. controls (357,192) and (355,194)
+.. (353,194)
+-- (326,194)
+.. controls (323,194) and (319,192)
+.. (316,189)
+-- (289,162)
+.. controls (286,185) and (276,194)
+.. (252,194)
+.. controls (222,194) and (138,168)
+.. (83,117)
+.. controls (47,84) and (38,58)
+.. (38,25)
+.. controls (38,8) and (54,-7)
+.. (73,-7)
+.. controls (98,-7) and (124,13)
+.. (158,32)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((277,165)
+.. controls (277,127) and (119,5)
+.. (73,5)
+.. controls (63,5) and (56,10)
+.. (56,20)
+.. controls (56,53) and (216,182)
+.. (246,182)
+.. controls (256,182) and (277,183)
+.. (277,165)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (114,214*FS#,229*FS#,7*FS#);
+"r";
+path P[];
+P1 = ((133,107)
+.. controls (100,73) and (90,50)
+.. (90,25)
+.. controls (90,6) and (104,-7)
+.. (124,-7)
+.. controls (170,-7) and (280,80)
+.. (280,98)
+.. controls (280,100) and (278,103)
+.. (276,102)
+.. controls (265,97) and (247,82)
+.. (238,69)
+.. controls (225,51) and (148,8)
+.. (134,8)
+.. controls (123,8) and (113,3)
+.. (113,17)
+.. controls (113,22) and (128,47)
+.. (155,70)
+.. controls (206,113) and (237,153)
+.. (237,160)
+.. controls (237,162) and (236,164)
+.. (234,166)
+-- (213,187)
+.. controls (211,189) and (209,190)
+.. (206,190)
+.. controls (202,190) and (189,181)
+.. (159,181)
+.. controls (156,181) and (155,184)
+.. (152,185)
+.. controls (166,189) and (176,194)
+.. (176,209)
+.. controls (176,219) and (165,229)
+.. (153,229)
+.. controls (140,229) and (129,215)
+.. (129,199)
+.. controls (129,191) and (130,183)
+.. (137,181)
+.. controls (140,180) and (142,178)
+.. (142,175)
+.. controls (142,174) and (130,164)
+.. (125,160)
+.. controls (87,129) and (63,107)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (72,98) and (88,114)
+.. (107,132)
+.. controls (120,144) and (149,164)
+.. (157,168)
+.. controls (157,168) and (179,171)
+.. (195,172)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (115,165*FS#,244*FS#,7*FS#);
+"s";
+path P[];
+P1 = ((185,184)
+.. controls (185,97) and (99,5)
+.. (56,5)
+.. controls (43,5) and (29,9)
+.. (29,18)
+.. controls (29,21) and (34,19)
+.. (37,19)
+.. controls (47,19) and (58,30)
+.. (58,41)
+.. controls (58,54) and (48,60)
+.. (35,60)
+.. controls (21,60) and (12,45)
+.. (12,26)
+.. controls (12,8) and (31,-7)
+.. (55,-7)
+.. controls (104,-7) and (208,46)
+.. (208,126)
+.. controls (208,145) and (198,170)
+.. (198,192)
+.. controls (198,200) and (199,206)
+.. (205,212)
+.. controls (215,222) and (228,236)
+.. (228,236)
+.. controls (228,240) and (226,244)
+.. (221,244)
+.. controls (219,244) and (218,242)
+.. (217,241)
+-- (67,108)
+.. controls (65,106) and (64,105)
+.. (64,102)
+.. controls (64,100) and (64,98)
+.. (66,98)
+.. controls (72,98) and (80,106)
+.. (82,108)
+-- (185,195)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (116,186*FS#,336*FS#,6*FS#);
+"t";
+path P[];
+P1 = ((94,101)
+.. controls (74,79) and (60,50)
+.. (60,36)
+.. controls (60,9) and (69,-6)
+.. (89,-6)
+.. controls (140,-6) and (252,88)
+.. (252,96)
+.. controls (252,98) and (251,100)
+.. (249,100)
+.. controls (243,100) and (236,92)
+.. (234,90)
+.. controls (181,43) and (115,6)
+.. (91,6)
+.. controls (84,6) and (80,12)
+.. (80,19)
+.. controls (80,25) and (90,38)
+.. (97,46)
+-- (280,241)
+-- (346,241)
+.. controls (349,241) and (353,243)
+.. (353,247)
+.. controls (353,251) and (349,253)
+.. (346,253)
+-- (293,253)
+-- (360,328)
+.. controls (361,330) and (361,331)
+.. (361,333)
+.. controls (361,335) and (358,336)
+.. (356,336)
+-- (324,336)
+.. controls (320,336) and (315,333)
+.. (313,331)
+-- (239,253)
+-- (193,253)
+.. controls (190,253) and (187,248)
+.. (187,246)
+.. controls (187,244) and (191,241)
+.. (193,241)
+-- (221,241)
+.. controls (127,155) and (63,115)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (72,98) and (79,106)
+.. (81,108)
+.. controls (111,136) and (142,159)
+.. (170,182)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (117,310*FS#,191*FS#,7*FS#);
+"u";
+path P[];
+P1 = ((225,92)
+.. controls (209,70) and (195,53)
+.. (195,19)
+.. controls (195,3) and (208,-7)
+.. (223,-7)
+.. controls (270,-7) and (376,89)
+.. (376,96)
+.. controls (376,98) and (376,100)
+.. (374,100)
+.. controls (371,100) and (368,99)
+.. (366,97)
+.. controls (300,37) and (255,5)
+.. (227,5)
+.. controls (219,5) and (214,9)
+.. (214,17)
+.. controls (214,27) and (226,39)
+.. (235,48)
+-- (361,181)
+.. controls (363,183) and (363,185)
+.. (363,187)
+.. controls (363,190) and (360,191)
+.. (357,191)
+-- (317,191)
+.. controls (307,191) and (278,153)
+.. (186,74)
+.. controls (133,29) and (94,5)
+.. (81,5)
+.. controls (67,5) and (57,5)
+.. (57,19)
+.. controls (57,24) and (59,26)
+.. (62,29)
+-- (211,181)
+.. controls (212,182) and (212,184)
+.. (212,186)
+.. controls (212,188) and (210,191)
+.. (208,191)
+-- (171,191)
+.. controls (166,191) and (162,188)
+.. (160,186)
+-- (68,108)
+.. controls (66,106) and (65,105)
+.. (65,102)
+.. controls (65,100) and (65,98)
+.. (67,98)
+.. controls (73,98) and (85,110)
+.. (97,119)
+-- (62,80)
+.. controls (49,65) and (41,44)
+.. (41,25)
+.. controls (41,6) and (52,-7)
+.. (73,-7)
+.. controls (111,-7) and (159,34)
+.. (225,92)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (118,305*FS#,194*FS#,7*FS#);
+"v";
+path P[];
+P1 = ((288,73)
+.. controls (294,65) and (301,58)
+.. (313,58)
+.. controls (339,58) and (374,95)
+.. (374,100)
+.. controls (374,102) and (373,104)
+.. (371,104)
+.. controls (368,104) and (366,103)
+.. (364,101)
+.. controls (346,85) and (331,70)
+.. (311,70)
+.. controls (302,70) and (300,77)
+.. (300,84)
+.. controls (300,85) and (312,97)
+.. (318,102)
+.. controls (343,124) and (373,166)
+.. (373,187)
+.. controls (373,191) and (369,194)
+.. (365,194)
+.. controls (347,194) and (309,151)
+.. (287,90)
+.. controls (285,84) and (181,5)
+.. (131,5)
+.. controls (123,5) and (116,9)
+.. (116,18)
+.. controls (116,27) and (141,54)
+.. (179,85)
+.. controls (206,107) and (222,135)
+.. (222,158)
+.. controls (222,179) and (212,191)
+.. (192,191)
+.. controls (154,191) and (64,110)
+.. (64,102)
+.. controls (64,100) and (65,98)
+.. (67,98)
+.. controls (70,98) and (72,99)
+.. (74,101)
+.. controls (134,155) and (176,179)
+.. (190,179)
+.. controls (196,179) and (203,178)
+.. (203,170)
+.. controls (203,163) and (177,135)
+.. (139,103)
+.. controls (111,79) and (94,54)
+.. (94,30)
+.. controls (94,10) and (111,-7)
+.. (133,-7)
+.. controls (156,-7) and (220,18)
+.. (288,73)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (119,460*FS#,203*FS#,7*FS#);
+"w";
+path P[];
+P1 = ((414,189)
+.. controls (415,190) and (415,191)
+.. (415,192)
+.. controls (415,195) and (412,198)
+.. (410,198)
+-- (374,198)
+.. controls (370,198) and (364,194)
+.. (362,192)
+-- (280,114)
+.. controls (205,42) and (149,9)
+.. (132,9)
+.. controls (124,9) and (117,11)
+.. (117,20)
+.. controls (117,28) and (139,51)
+.. (173,80)
+.. controls (204,107) and (222,134)
+.. (222,162)
+.. controls (222,184) and (213,199)
+.. (195,199)
+.. controls (153,199) and (64,107)
+.. (64,102)
+.. controls (64,100) and (65,98)
+.. (67,98)
+.. controls (70,98) and (72,99)
+.. (74,101)
+.. controls (135,155) and (175,185)
+.. (190,185)
+.. controls (197,185) and (202,184)
+.. (202,175)
+.. controls (202,164) and (178,142)
+.. (143,110)
+.. controls (112,82) and (99,61)
+.. (99,29)
+.. controls (99,7) and (110,-7)
+.. (129,-7)
+.. controls (153,-7) and (210,31)
+.. (289,106)
+.. controls (272,81) and (255,62)
+.. (255,39)
+.. controls (255,13) and (271,-2)
+.. (294,-2)
+.. controls (327,-2) and (408,36)
+.. (453,84)
+.. controls (458,74) and (465,67)
+.. (479,67)
+.. controls (501,67) and (526,91)
+.. (526,96)
+.. controls (526,98) and (526,100)
+.. (524,100)
+.. controls (518,100) and (511,92)
+.. (509,90)
+.. controls (501,83) and (493,79)
+.. (482,79)
+.. controls (471,79) and (466,84)
+.. (466,95)
+.. controls (466,96) and (480,114)
+.. (498,133)
+.. controls (515,151) and (526,178)
+.. (526,187)
+.. controls (526,193) and (522,203)
+.. (517,203)
+.. controls (498,203) and (471,162)
+.. (452,101)
+.. controls (450,95) and (356,12)
+.. (289,12)
+.. controls (282,12) and (275,15)
+.. (275,22)
+.. controls (275,37) and (284,49)
+.. (293,58)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (120,274*FS#,196*FS#,7*FS#);
+"x";
+path P[];
+P1 = ((199,184)
+.. controls (206,184) and (216,180)
+.. (216,173)
+.. controls (216,136) and (106,5)
+.. (56,5)
+.. controls (51,5) and (43,10)
+.. (43,16)
+.. controls (43,24) and (44,24)
+.. (49,20)
+.. controls (52,18) and (53,16)
+.. (57,16)
+.. controls (66,16) and (81,25)
+.. (81,41)
+.. controls (81,49) and (71,55)
+.. (62,55)
+.. controls (46,55) and (30,37)
+.. (30,18)
+.. controls (30,3) and (44,-7)
+.. (61,-7)
+.. controls (90,-7) and (119,18)
+.. (151,48)
+.. controls (151,43) and (150,41)
+.. (150,36)
+.. controls (150,9) and (165,-6)
+.. (185,-6)
+.. controls (242,-6) and (340,90)
+.. (340,96)
+.. controls (340,98) and (339,100)
+.. (337,100)
+.. controls (334,100) and (332,99)
+.. (330,97)
+.. controls (267,40) and (223,6)
+.. (190,6)
+.. controls (181,6) and (171,9)
+.. (171,18)
+.. controls (171,39) and (202,87)
+.. (259,146)
+.. controls (281,168) and (295,184)
+.. (318,184)
+.. controls (321,184) and (323,182)
+.. (323,179)
+.. controls (323,177) and (319,179)
+.. (317,178)
+.. controls (298,173) and (294,171)
+.. (294,152)
+.. controls (294,145) and (305,142)
+.. (313,142)
+.. controls (323,142) and (338,158)
+.. (338,171)
+.. controls (338,185) and (330,195)
+.. (312,195)
+.. controls (285,195) and (262,167)
+.. (236,145)
+-- (236,156)
+.. controls (236,180) and (220,196)
+.. (198,196)
+.. controls (153,196) and (63,108)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (69,98) and (71,99)
+.. (73,101)
+.. controls (131,153) and (174,184)
+.. (199,184)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (121,351*FS#,191*FS#,223*FS#);
+"y";
+path P[];
+P1 = ((148,-40)
+.. controls (134,-56) and (47,-64)
+.. (-50,-142)
+.. controls (-74,-161) and (-89,-175)
+.. (-89,-204)
+.. controls (-89,-214) and (-72,-223)
+.. (-53,-223)
+.. controls (-13,-223) and (20,-193)
+.. (64,-164)
+.. controls (117,-129) and (157,-81)
+.. (197,-36)
+.. controls (351,15) and (417,90)
+.. (417,96)
+.. controls (417,98) and (417,100)
+.. (415,100)
+.. controls (401,100) and (366,37)
+.. (217,-17)
+-- (404,177)
+.. controls (406,179) and (405,181)
+.. (405,183)
+.. controls (405,185) and (402,186)
+.. (400,186)
+-- (360,186)
+.. controls (353,186) and (320,156)
+.. (261,100)
+.. controls (194,36) and (136,7)
+.. (127,7)
+.. controls (117,7) and (109,5)
+.. (109,17)
+.. controls (109,20) and (129,49)
+.. (167,78)
+.. controls (201,104) and (226,135)
+.. (226,165)
+.. controls (226,181) and (213,191)
+.. (195,191)
+.. controls (150,191) and (63,111)
+.. (63,102)
+.. controls (63,100) and (63,98)
+.. (65,98)
+.. controls (68,98) and (71,99)
+.. (73,101)
+.. controls (126,149) and (168,179)
+.. (195,179)
+.. controls (201,179) and (203,173)
+.. (203,168)
+.. controls (203,163) and (172,135)
+.. (118,88)
+.. controls (98,71) and (86,45)
+.. (86,21)
+.. controls (86,5) and (98,-7)
+.. (114,-7)
+.. controls (151,-7) and (204,34)
+.. (277,99)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((126,-64)
+.. controls (53,-158) and (-13,-211)
+.. (-59,-211)
+.. controls (-67,-211) and (-76,-209)
+.. (-76,-200)
+.. controls (-76,-170) and (12,-98)
+.. (126,-64)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (122,289*FS#,193*FS#,12*FS#);
+"z";
+path P[];
+P1 = ((148,59)
+.. controls (132,42) and (68,16)
+.. (68,-1)
+.. controls (68,-7) and (70,-12)
+.. (77,-12)
+.. controls (84,-12) and (110,6)
+.. (134,32)
+.. controls (155,55) and (205,76)
+.. (214,76)
+.. controls (217,76) and (223,77)
+.. (223,74)
+.. controls (223,67) and (208,58)
+.. (197,49)
+.. controls (191,44) and (186,39)
+.. (186,31)
+.. controls (186,9) and (191,-8)
+.. (212,-8)
+.. controls (251,-8) and (355,89)
+.. (355,96)
+.. controls (355,98) and (355,100)
+.. (353,100)
+.. controls (350,100) and (347,99)
+.. (345,97)
+.. controls (277,36) and (231,4)
+.. (214,4)
+.. controls (211,4) and (208,5)
+.. (208,8)
+.. controls (208,17) and (222,24)
+.. (230,30)
+.. controls (239,37) and (245,49)
+.. (245,60)
+.. controls (245,76) and (235,88)
+.. (219,88)
+.. controls (209,88) and (192,79)
+.. (178,73)
+-- (226,122)
+.. controls (263,147) and (308,166)
+.. (308,183)
+.. controls (308,193) and (292,191)
+.. (282,183)
+.. controls (270,173) and (255,159)
+.. (243,149)
+.. controls (218,127) and (193,118)
+.. (187,118)
+.. controls (181,118) and (182,123)
+.. (182,126)
+.. controls (182,134) and (191,135)
+.. (197,140)
+.. controls (207,149) and (208,154)
+.. (208,165)
+.. controls (208,179) and (195,193)
+.. (182,193)
+.. controls (153,193) and (64,108)
+.. (64,102)
+.. controls (64,100) and (65,98)
+.. (67,98)
+.. controls (74,98) and (88,113)
+.. (106,130)
+.. controls (138,160) and (165,179)
+.. (177,179)
+.. controls (180,179) and (185,178)
+.. (185,175)
+.. controls (185,166) and (175,162)
+.. (171,158)
+.. controls (159,148) and (158,140)
+.. (158,128)
+.. controls (158,118) and (171,109)
+.. (183,109)
+.. controls (188,109) and (191,110)
+.. (196,110)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (123,312*FS#,466*FS#,0*FS#);
+"braceleft";
+path P[];
+P1 = ((403,411)
+.. controls (429,441) and (457,460)
+.. (492,466)
+.. controls (445,466) and (401,460)
+.. (353,404)
+-- (285,325)
+.. controls (261,297) and (236,282)
+.. (200,274)
+.. controls (206,272) and (217,268)
+.. (217,261)
+.. controls (217,247) and (216,243)
+.. (199,223)
+-- (69,70)
+.. controls (53,51) and (40,32)
+.. (40,23)
+.. controls (40,2) and (60,0)
+.. (97,1)
+.. controls (90,3) and (81,8)
+.. (81,16)
+.. controls (81,30) and (90,43)
+.. (100,55)
+-- (233,212)
+.. controls (251,233) and (259,242)
+.. (259,261)
+.. controls (259,268) and (247,272)
+.. (242,274)
+.. controls (304,289) and (322,315)
+.. (355,354)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (125,532*FS#,463*FS#,1*FS#);
+"braceright";
+path P[];
+P1 = ((128,52)
+.. controls (102,21) and (73,6)
+.. (40,-1)
+.. controls (97,-2) and (134,8)
+.. (186,68)
+-- (319,223)
+.. controls (341,249) and (367,268)
+.. (404,274)
+.. controls (397,276) and (388,281)
+.. (388,290)
+.. controls (388,304) and (396,315)
+.. (405,325)
+-- (470,401)
+.. controls (481,415) and (492,429)
+.. (492,445)
+.. controls (492,461) and (466,463)
+.. (436,463)
+.. controls (445,461) and (452,456)
+.. (452,447)
+.. controls (452,435) and (441,420)
+.. (431,408)
+-- (386,354)
+.. controls (363,326) and (345,312)
+.. (345,288)
+.. controls (345,280) and (356,276)
+.. (362,274)
+.. controls (324,266) and (299,252)
+.. (264,212)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (126,402*FS#,308*FS#,0*FS#);
+"asciitilde";
+path P[];
+P1 = ((270,256)
+.. controls (235,256) and (191,296)
+.. (135,296)
+.. controls (90,296) and (58,268)
+.. (30,217)
+-- (75,193)
+.. controls (89,225) and (104,246)
+.. (131,246)
+.. controls (163,246) and (207,207)
+.. (262,207)
+.. controls (309,207) and (343,234)
+.. (372,286)
+-- (326,308)
+.. controls (311,276) and (299,256)
+.. (270,256)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (196,793*FS#,797*FS#,6*FS#);
+"Adieresis";
+path P[];
+P1 = ((1215,771)
+.. controls (1214,770) and (1214,769)
+.. (1214,767)
+.. controls (1214,766) and (1214,765)
+.. (1215,764)
+-- (1234,749)
+.. controls (1235,748) and (1235,747)
+.. (1237,747)
+.. controls (1239,747) and (1240,748)
+.. (1241,749)
+-- (1256,766)
+.. controls (1257,767) and (1259,768)
+.. (1259,770)
+.. controls (1259,772) and (1258,775)
+.. (1256,776)
+-- (1239,790)
+.. controls (1237,792) and (1236,794)
+.. (1233,794)
+.. controls (1231,794) and (1230,792)
+.. (1229,790)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1285,774)
+.. controls (1284,772) and (1282,771)
+.. (1282,769)
+.. controls (1282,767) and (1284,766)
+.. (1285,765)
+-- (1305,749)
+.. controls (1306,748) and (1308,747)
+.. (1310,747)
+.. controls (1312,747) and (1312,748)
+.. (1313,749)
+-- (1322,768)
+.. controls (1323,770) and (1324,771)
+.. (1324,773)
+.. controls (1324,775) and (1323,776)
+.. (1322,777)
+-- (1304,794)
+.. controls (1302,796) and (1301,797)
+.. (1299,797)
+.. controls (1297,797) and (1296,796)
+.. (1295,794)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((639,12)
+.. controls (638,10) and (638,9)
+.. (638,7)
+.. controls (638,4) and (641,3)
+.. (644,3)
+-- (687,0)
+.. controls (691,0) and (695,5)
+.. (696,6)
+-- (722,40)
+.. controls (812,47) and (859,86)
+.. (859,96)
+.. controls (859,98) and (859,100)
+.. (857,100)
+.. controls (851,100) and (843,92)
+.. (840,89)
+.. controls (822,73) and (783,60)
+.. (730,53)
+.. controls (745,79) and (811,162)
+.. (929,296)
+.. controls (983,357) and (1085,481)
+.. (1277,644)
+.. controls (1283,649) and (1294,652)
+.. (1294,663)
+.. controls (1294,667) and (1278,669)
+.. (1267,669)
+.. controls (1238,669) and (1116,634)
+.. (965,520)
+.. controls (847,431) and (775,355)
+.. (732,321)
+.. controls (692,436) and (621,500)
+.. (525,500)
+.. controls (462,500) and (402,430)
+.. (402,323)
+.. controls (402,250) and (441,173)
+.. (504,118)
+.. controls (449,65) and (342,8)
+.. (249,8)
+.. controls (157,8) and (101,55)
+.. (101,99)
+.. controls (101,108) and (106,116)
+.. (108,120)
+.. controls (114,99) and (126,87)
+.. (148,87)
+.. controls (166,87) and (179,104)
+.. (179,125)
+.. controls (179,147) and (160,161)
+.. (133,161)
+.. controls (105,161) and (88,137)
+.. (88,98)
+.. controls (88,47) and (156,-6)
+.. (250,-6)
+.. controls (334,-6) and (441,40)
+.. (514,109)
+.. controls (587,53) and (662,50)
+.. (662,45)
+.. controls (662,43) and (661,42)
+.. (660,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((724,294)
+.. controls (727,279) and (729,261)
+.. (729,244)
+.. controls (729,182) and (692,89)
+.. (670,57)
+.. controls (630,60) and (566,86)
+.. (526,117)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((516,125)
+.. controls (460,166) and (418,249)
+.. (418,323)
+.. controls (418,417) and (483,472)
+.. (540,472)
+.. controls (585,472) and (613,465)
+.. (648,432)
+.. controls (682,400) and (705,359)
+.. (720,310)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((709,107)
+.. controls (734,175) and (742,223)
+.. (742,231)
+.. controls (742,263) and (739,290)
+.. (736,295)
+.. controls (734,298) and (735,300)
+.. (735,304)
+.. controls (735,308) and (815,388)
+.. (975,511)
+.. controls (1088,598) and (1196,644)
+.. (1255,649)
+.. controls (1229,630) and (1156,586)
+.. (1047,482)
+.. controls (860,304) and (761,168)
+.. (709,107)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (197,792*FS#,842*FS#,6*FS#);
+"Aring";
+path P[];
+P1 = ((1294,842)
+.. controls (1261,842) and (1230,811)
+.. (1230,775)
+.. controls (1230,757) and (1244,747)
+.. (1264,747)
+.. controls (1293,747) and (1331,776)
+.. (1331,811)
+.. controls (1331,830) and (1316,842)
+.. (1294,842)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((637,12)
+.. controls (636,10) and (636,9)
+.. (636,7)
+.. controls (636,4) and (639,3)
+.. (642,3)
+-- (685,0)
+.. controls (689,0) and (693,5)
+.. (694,6)
+-- (720,40)
+.. controls (810,47) and (857,86)
+.. (857,96)
+.. controls (857,98) and (857,100)
+.. (855,100)
+.. controls (849,100) and (841,92)
+.. (838,89)
+.. controls (820,73) and (781,60)
+.. (728,53)
+.. controls (743,79) and (809,162)
+.. (927,296)
+.. controls (981,357) and (1083,481)
+.. (1275,644)
+.. controls (1281,649) and (1292,652)
+.. (1292,663)
+.. controls (1292,667) and (1276,669)
+.. (1265,669)
+.. controls (1236,669) and (1114,634)
+.. (963,520)
+.. controls (845,431) and (773,355)
+.. (730,321)
+.. controls (690,436) and (619,500)
+.. (523,500)
+.. controls (460,500) and (400,430)
+.. (400,323)
+.. controls (400,250) and (439,173)
+.. (502,118)
+.. controls (447,65) and (340,8)
+.. (247,8)
+.. controls (155,8) and (99,55)
+.. (99,99)
+.. controls (99,108) and (104,116)
+.. (106,120)
+.. controls (112,99) and (124,87)
+.. (146,87)
+.. controls (164,87) and (177,104)
+.. (177,125)
+.. controls (177,147) and (158,161)
+.. (131,161)
+.. controls (103,161) and (86,137)
+.. (86,98)
+.. controls (86,47) and (154,-6)
+.. (248,-6)
+.. controls (332,-6) and (439,40)
+.. (512,109)
+.. controls (585,53) and (660,50)
+.. (660,45)
+.. controls (660,43) and (659,42)
+.. (658,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((707,107)
+.. controls (732,175) and (740,223)
+.. (740,231)
+.. controls (740,263) and (737,290)
+.. (734,295)
+.. controls (732,298) and (733,300)
+.. (733,304)
+.. controls (733,308) and (813,388)
+.. (973,511)
+.. controls (1086,598) and (1194,644)
+.. (1253,649)
+.. controls (1227,630) and (1154,586)
+.. (1045,482)
+.. controls (858,304) and (759,168)
+.. (707,107)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((722,294)
+.. controls (725,279) and (727,261)
+.. (727,244)
+.. controls (727,182) and (690,89)
+.. (668,57)
+.. controls (628,60) and (564,86)
+.. (524,117)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((514,125)
+.. controls (458,166) and (416,249)
+.. (416,323)
+.. controls (416,417) and (481,472)
+.. (538,472)
+.. controls (583,472) and (611,465)
+.. (646,432)
+.. controls (680,400) and (703,359)
+.. (718,310)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((1262,757)
+.. controls (1252,757) and (1243,763)
+.. (1243,773)
+.. controls (1243,796) and (1278,828)
+.. (1300,828)
+.. controls (1313,828) and (1321,821)
+.. (1321,809)
+.. controls (1321,792) and (1291,757)
+.. (1262,757)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (199,780*FS#,666*FS#,115*FS#);
+"Ccedilla";
+path P[];
+P1 = ((376,-43)
+.. controls (375,-44) and (374,-46)
+.. (374,-48)
+.. controls (374,-51) and (375,-54)
+.. (379,-54)
+.. controls (385,-54) and (397,-42)
+.. (406,-35)
+.. controls (414,-29) and (428,-20)
+.. (436,-20)
+.. controls (439,-20) and (440,-23)
+.. (440,-26)
+.. controls (440,-45) and (406,-78)
+.. (320,-101)
+.. controls (316,-102) and (315,-106)
+.. (315,-110)
+.. controls (315,-116) and (323,-115)
+.. (327,-115)
+.. controls (337,-115) and (386,-106)
+.. (414,-96)
+.. controls (447,-83) and (470,-60)
+.. (470,-42)
+.. controls (470,-20) and (457,-9)
+.. (432,-10)
+-- (452,10)
+.. controls (475,0) and (502,-6)
+.. (525,-6)
+.. controls (599,-6) and (727,40)
+.. (791,105)
+.. controls (816,131) and (831,156)
+.. (831,188)
+.. controls (831,222) and (801,245)
+.. (753,245)
+.. controls (630,245) and (464,110)
+.. (464,71)
+.. controls (464,68) and (462,63)
+.. (465,63)
+.. controls (474,63) and (478,66)
+.. (497,93)
+.. controls (551,167) and (688,233)
+.. (740,233)
+.. controls (789,233) and (818,219)
+.. (818,185)
+.. controls (818,153) and (784,104)
+.. (715,65)
+.. controls (648,27) and (577,10)
+.. (547,10)
+.. controls (512,10) and (480,8)
+.. (453,26)
+.. controls (423,46) and (423,65)
+.. (423,94)
+.. controls (423,141) and (474,172)
+.. (497,216)
+-- (584,311)
+.. controls (601,324) and (610,321)
+.. (617,322)
+.. controls (742,333) and (897,378)
+.. (1010,440)
+.. controls (1092,485) and (1135,529)
+.. (1135,574)
+.. controls (1135,602) and (1104,622)
+.. (1057,622)
+.. controls (994,622) and (902,590)
+.. (787,522)
+.. controls (635,433) and (549,341)
+.. (549,341)
+.. controls (543,332) and (536,329)
+.. (526,329)
+.. controls (482,329) and (441,329)
+.. (398,355)
+.. controls (363,376) and (343,406)
+.. (343,439)
+.. controls (343,523) and (475,652)
+.. (634,652)
+.. controls (682,652) and (714,648)
+.. (725,648)
+.. controls (732,648) and (742,647)
+.. (742,655)
+.. controls (742,662) and (720,663)
+.. (687,664)
+.. controls (670,665) and (660,666)
+.. (643,666)
+.. controls (522,666) and (398,613)
+.. (349,531)
+.. controls (322,485) and (327,456)
+.. (327,439)
+.. controls (327,385) and (382,317)
+.. (509,317)
+-- (524,317)
+.. controls (470,253) and (400,186)
+.. (400,108)
+.. controls (400,83) and (409,54)
+.. (420,41)
+.. controls (428,31) and (440,18)
+.. (440,18)
+.. controls (440,16) and (440,15)
+.. (438,14)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((617,336)
+.. controls (809,516) and (955,608)
+.. (1064,608)
+.. controls (1095,608) and (1119,592)
+.. (1119,577)
+.. controls (1119,545) and (1078,494)
+.. (995,448)
+.. controls (882,386) and (714,341)
+.. (617,336)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (201,685*FS#,827*FS#,7*FS#);
+"Eacute";
+path P[];
+P1 = ((667,383)
+.. controls (667,380) and (661,381)
+.. (658,381)
+.. controls (619,379) and (517,348)
+.. (450,305)
+.. controls (373,255) and (337,182)
+.. (337,138)
+.. controls (337,40) and (382,-7)
+.. (494,-7)
+.. controls (599,-7) and (787,86)
+.. (787,200)
+.. controls (787,241) and (756,264)
+.. (702,264)
+.. controls (592,264) and (417,101)
+.. (417,69)
+.. controls (417,67) and (417,65)
+.. (419,65)
+.. controls (427,65) and (429,70)
+.. (432,75)
+.. controls (438,86) and (482,139)
+.. (549,188)
+.. controls (607,231) and (673,252)
+.. (702,252)
+.. controls (746,252) and (774,240)
+.. (774,197)
+.. controls (774,106) and (605,5)
+.. (480,5)
+.. controls (410,5) and (369,41)
+.. (369,77)
+.. controls (369,189) and (511,342)
+.. (644,367)
+.. controls (653,369) and (670,372)
+.. (676,372)
+.. controls (681,372) and (683,367)
+.. (687,363)
+.. controls (700,348) and (725,338)
+.. (748,338)
+.. controls (757,338) and (766,344)
+.. (766,353)
+.. controls (766,378) and (738,386)
+.. (690,386)
+.. controls (686,386) and (670,380)
+.. (670,413)
+.. controls (670,415) and (720,426)
+.. (812,460)
+.. controls (946,510) and (1030,589)
+.. (1030,649)
+.. controls (1030,679) and (1004,695)
+.. (957,695)
+.. controls (889,695) and (746,630)
+.. (683,551)
+.. controls (658,519) and (643,479)
+.. (643,457)
+.. controls (643,446) and (647,430)
+.. (647,423)
+.. controls (647,420) and (598,406)
+.. (509,406)
+.. controls (448,406) and (384,444)
+.. (384,504)
+.. controls (384,567) and (450,638)
+.. (553,673)
+.. controls (607,691) and (649,691)
+.. (677,693)
+.. controls (681,693) and (687,694)
+.. (687,700)
+.. controls (687,705) and (676,706)
+.. (672,706)
+.. controls (585,706) and (484,674)
+.. (424,626)
+.. controls (375,587) and (363,552)
+.. (363,503)
+.. controls (363,452) and (426,394)
+.. (506,394)
+.. controls (598,394) and (639,410)
+.. (651,410)
+.. controls (652,410) and (667,386)
+.. (667,383)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1011,827)
+.. controls (994,827) and (985,791)
+.. (966,772)
+.. controls (960,766) and (949,759)
+.. (949,749)
+.. controls (949,747) and (952,747)
+.. (954,747)
+.. controls (967,747) and (1033,780)
+.. (1033,806)
+.. controls (1033,818) and (1023,827)
+.. (1011,827)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((691,373)
+.. controls (695,374) and (698,374)
+.. (702,374)
+.. controls (725,374) and (754,367)
+.. (754,357)
+.. controls (754,345) and (708,353)
+.. (691,373)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((673,428)
+.. controls (673,498) and (842,683)
+.. (968,683)
+.. controls (996,683) and (1017,669)
+.. (1017,646)
+.. controls (1017,614) and (986,575)
+.. (930,536)
+.. controls (835,470) and (745,451)
+.. (684,430)
+.. controls (679,428) and (673,423)
+.. (673,428)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (209,1112*FS#,786*FS#,6*FS#);
+"Ntilde";
+path P[];
+P1 = ((1235,782)
+.. controls (1233,782) and (1231,781)
+.. (1229,780)
+.. controls (1223,777) and (1220,775)
+.. (1213,775)
+.. controls (1190,775) and (1172,786)
+.. (1151,786)
+.. controls (1129,786) and (1100,764)
+.. (1100,754)
+.. controls (1100,751) and (1103,750)
+.. (1106,750)
+.. controls (1111,750) and (1112,753)
+.. (1116,756)
+.. controls (1120,758) and (1122,758)
+.. (1126,758)
+.. controls (1139,758) and (1159,747)
+.. (1180,747)
+.. controls (1195,747) and (1238,764)
+.. (1238,780)
+.. controls (1238,782) and (1237,782)
+.. (1235,782)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((828,527)
+.. controls (815,494) and (784,440)
+.. (756,352)
+.. controls (719,236) and (718,110)
+.. (674,36)
+.. controls (668,25) and (657,22)
+.. (657,9)
+.. controls (657,3) and (661,0)
+.. (667,0)
+.. controls (677,0) and (757,132)
+.. (936,350)
+.. controls (1096,545) and (1239,644)
+.. (1362,644)
+.. controls (1416,644) and (1455,621)
+.. (1455,600)
+.. controls (1455,594) and (1445,598)
+.. (1440,601)
+.. controls (1438,602) and (1437,602)
+.. (1435,602)
+.. controls (1421,602) and (1415,588)
+.. (1415,569)
+.. controls (1415,554) and (1429,547)
+.. (1448,547)
+.. controls (1465,547) and (1478,564)
+.. (1478,587)
+.. controls (1478,618) and (1443,658)
+.. (1358,658)
+.. controls (1307,658) and (1234,634)
+.. (1160,583)
+.. controls (995,470) and (867,280)
+.. (713,83)
+.. controls (739,141) and (782,223)
+.. (809,353)
+.. controls (829,451) and (847,552)
+.. (899,620)
+.. controls (902,624) and (906,626)
+.. (906,631)
+.. controls (906,634) and (905,639)
+.. (902,639)
+.. controls (888,639) and (872,604)
+.. (809,524)
+.. controls (718,410) and (630,290)
+.. (529,190)
+.. controls (407,69) and (292,8)
+.. (183,8)
+.. controls (132,8) and (91,37)
+.. (91,78)
+.. controls (91,87) and (96,101)
+.. (100,101)
+.. controls (105,101) and (107,95)
+.. (108,90)
+.. controls (109,80) and (121,80)
+.. (131,80)
+.. controls (150,80) and (161,94)
+.. (161,115)
+.. controls (161,130) and (144,143)
+.. (122,143)
+.. controls (104,143) and (73,111)
+.. (73,89)
+.. controls (73,27) and (117,-6)
+.. (194,-6)
+.. controls (235,-6) and (300,10)
+.. (364,45)
+.. controls (526,134) and (660,310)
+.. (828,527)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (214,586*FS#,797*FS#,7*FS#);
+"Odieresis";
+path P[];
+P1 = ((749,771)
+.. controls (748,770) and (748,769)
+.. (748,767)
+.. controls (748,766) and (748,765)
+.. (749,764)
+-- (768,749)
+.. controls (769,748) and (769,747)
+.. (771,747)
+.. controls (773,747) and (774,748)
+.. (775,749)
+-- (790,766)
+.. controls (791,767) and (793,768)
+.. (793,770)
+.. controls (793,772) and (792,775)
+.. (790,776)
+-- (773,790)
+.. controls (771,792) and (770,794)
+.. (767,794)
+.. controls (765,794) and (764,792)
+.. (763,790)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((819,774)
+.. controls (818,772) and (816,771)
+.. (816,769)
+.. controls (816,767) and (818,766)
+.. (819,765)
+-- (839,749)
+.. controls (840,748) and (841,747)
+.. (843,747)
+.. controls (845,747) and (845,748)
+.. (846,749)
+-- (856,768)
+.. controls (857,770) and (858,771)
+.. (858,773)
+.. controls (858,775) and (857,776)
+.. (856,777)
+-- (838,794)
+.. controls (836,796) and (835,797)
+.. (833,797)
+.. controls (831,797) and (830,796)
+.. (829,794)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((799,671)
+.. controls (523,671) and (136,340)
+.. (136,126)
+.. controls (136,47) and (180,-7)
+.. (253,-7)
+.. controls (414,-7) and (788,331)
+.. (788,533)
+.. controls (788,585) and (758,619)
+.. (717,619)
+.. controls (586,619) and (471,481)
+.. (471,382)
+.. controls (471,343) and (491,319)
+.. (529,319)
+.. controls (597,319) and (690,393)
+.. (725,507)
+.. controls (732,529) and (738,541)
+.. (738,564)
+.. controls (738,569) and (738,581)
+.. (733,581)
+.. controls (727,581) and (725,571)
+.. (725,566)
+.. controls (723,542) and (708,485)
+.. (684,444)
+.. controls (644,375) and (572,331)
+.. (529,331)
+.. controls (501,331) and (484,349)
+.. (484,378)
+.. controls (484,420) and (510,461)
+.. (557,515)
+.. controls (608,574) and (657,605)
+.. (714,605)
+.. controls (748,605) and (775,576)
+.. (775,531)
+.. controls (775,341) and (411,7)
+.. (252,7)
+.. controls (208,7) and (166,35)
+.. (166,84)
+.. controls (166,143) and (210,226)
+.. (294,334)
+.. controls (463,551) and (640,659)
+.. (797,659)
+.. controls (877,659) and (924,621)
+.. (924,576)
+.. controls (924,526) and (869,493)
+.. (833,493)
+.. controls (817,493) and (801,496)
+.. (801,486)
+.. controls (801,480) and (819,479)
+.. (836,479)
+.. controls (871,479) and (937,511)
+.. (937,577)
+.. controls (937,630) and (889,671)
+.. (799,671)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (220,764*FS#,797*FS#,4*FS#);
+"Udieresis";
+path P[];
+P1 = ((988,771)
+.. controls (987,770) and (987,769)
+.. (987,767)
+.. controls (987,766) and (987,765)
+.. (988,764)
+-- (1006,749)
+.. controls (1007,748) and (1008,747)
+.. (1010,747)
+.. controls (1012,747) and (1012,748)
+.. (1013,749)
+-- (1029,766)
+.. controls (1030,767) and (1032,768)
+.. (1032,770)
+.. controls (1032,772) and (1031,775)
+.. (1029,776)
+-- (1012,790)
+.. controls (1010,792) and (1009,794)
+.. (1006,794)
+.. controls (1004,794) and (1003,792)
+.. (1002,790)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1058,774)
+.. controls (1057,772) and (1055,771)
+.. (1055,769)
+.. controls (1055,767) and (1057,766)
+.. (1058,765)
+-- (1078,749)
+.. controls (1079,748) and (1080,747)
+.. (1082,747)
+.. controls (1084,747) and (1084,748)
+.. (1085,749)
+-- (1095,768)
+.. controls (1096,770) and (1097,771)
+.. (1097,773)
+.. controls (1097,775) and (1096,776)
+.. (1095,777)
+-- (1077,794)
+.. controls (1075,796) and (1074,797)
+.. (1072,797)
+.. controls (1070,797) and (1069,796)
+.. (1068,794)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((1157,566)
+.. controls (1159,568) and (1159,569)
+.. (1159,571)
+.. controls (1159,574) and (1156,574)
+.. (1153,574)
+-- (1113,574)
+.. controls (1106,574) and (1102,567)
+.. (1101,566)
+-- (885,352)
+.. controls (836,304) and (751,235)
+.. (637,135)
+.. controls (544,53) and (449,8)
+.. (405,8)
+.. controls (382,8) and (366,18)
+.. (366,35)
+.. controls (366,60) and (416,122)
+.. (513,203)
+.. controls (585,263) and (655,327)
+.. (722,393)
+.. controls (766,437) and (796,505)
+.. (796,552)
+.. controls (796,618) and (745,656)
+.. (656,656)
+.. controls (476,656) and (317,546)
+.. (317,452)
+.. controls (317,411) and (362,383)
+.. (438,383)
+.. controls (585,383) and (729,538)
+.. (729,565)
+.. controls (729,567) and (727,568)
+.. (725,568)
+.. controls (714,568) and (698,544)
+.. (672,515)
+.. controls (627,465) and (491,397)
+.. (417,397)
+.. controls (366,397) and (333,424)
+.. (333,455)
+.. controls (333,530) and (480,644)
+.. (655,644)
+.. controls (734,644) and (780,612)
+.. (780,562)
+.. controls (780,497) and (674,405)
+.. (496,252)
+.. controls (398,168) and (345,101)
+.. (345,47)
+.. controls (345,17) and (366,-4)
+.. (403,-4)
+.. controls (459,-4) and (549,40)
+.. (655,133)
+.. controls (676,151) and (703,176)
+.. (737,203)
+.. controls (703,167) and (672,140)
+.. (655,118)
+.. controls (633,89) and (621,53)
+.. (621,42)
+.. controls (621,11) and (632,-4)
+.. (664,-4)
+.. controls (744,-4) and (831,93)
+.. (831,96)
+.. controls (831,98) and (831,100)
+.. (829,100)
+.. controls (826,100) and (823,99)
+.. (821,97)
+.. controls (761,42) and (724,8)
+.. (665,8)
+.. controls (650,8) and (638,11)
+.. (638,25)
+.. controls (638,39) and (661,71)
+.. (695,105)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (225,296*FS#,320*FS#,5*FS#);
+"aacute";
+path P[];
+P1 = ((340,320)
+.. controls (323,320) and (315,284)
+.. (296,265)
+.. controls (290,259) and (279,252)
+.. (279,242)
+.. controls (279,240) and (282,240)
+.. (284,240)
+.. controls (295,240) and (363,272)
+.. (363,299)
+.. controls (363,311) and (352,320)
+.. (340,320)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((202,64)
+.. controls (198,55) and (194,41)
+.. (194,29)
+.. controls (194,6) and (200,-5)
+.. (223,-5)
+.. controls (258,-5) and (362,88)
+.. (362,96)
+.. controls (362,98) and (362,100)
+.. (360,100)
+.. controls (357,100) and (354,99)
+.. (352,97)
+.. controls (288,39) and (245,5)
+.. (222,5)
+.. controls (216,5) and (210,11)
+.. (210,17)
+.. controls (210,24) and (218,36)
+.. (223,42)
+-- (353,183)
+.. controls (354,185) and (355,187)
+.. (355,189)
+.. controls (355,191) and (352,193)
+.. (350,193)
+-- (316,193)
+.. controls (313,193) and (309,191)
+.. (307,189)
+-- (283,164)
+.. controls (280,185) and (272,194)
+.. (250,194)
+.. controls (220,194) and (182,183)
+.. (134,151)
+.. controls (78,120) and (52,68)
+.. (48,35)
+.. controls (48,12) and (64,-5)
+.. (83,-5)
+.. controls (113,-5) and (152,26)
+.. (202,64)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((251,182)
+.. controls (267,182) and (270,176)
+.. (270,160)
+.. controls (270,132) and (128,5)
+.. (81,5)
+.. controls (68,5) and (67,15)
+.. (67,28)
+.. controls (67,44) and (194,182)
+.. (251,182)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (224,295*FS#,327*FS#,5*FS#);
+"agrave";
+path P[];
+P1 = ((261,327)
+.. controls (247,327) and (240,320)
+.. (240,306)
+.. controls (240,288) and (297,240)
+.. (318,240)
+.. controls (320,240) and (323,240)
+.. (323,242)
+.. controls (323,250) and (310,259)
+.. (296,277)
+.. controls (272,308) and (282,327)
+.. (261,327)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((201,64)
+.. controls (197,55) and (193,41)
+.. (193,29)
+.. controls (193,6) and (199,-5)
+.. (222,-5)
+.. controls (257,-5) and (361,88)
+.. (361,96)
+.. controls (361,98) and (361,100)
+.. (359,100)
+.. controls (356,100) and (353,99)
+.. (351,97)
+.. controls (287,39) and (244,5)
+.. (221,5)
+.. controls (215,5) and (209,11)
+.. (209,17)
+.. controls (209,24) and (217,36)
+.. (222,42)
+-- (352,183)
+.. controls (353,185) and (354,187)
+.. (354,189)
+.. controls (354,191) and (351,193)
+.. (349,193)
+-- (315,193)
+.. controls (312,193) and (308,191)
+.. (306,189)
+-- (282,164)
+.. controls (279,185) and (271,194)
+.. (249,194)
+.. controls (219,194) and (171,185)
+.. (133,152)
+.. controls (113,145) and (47,87)
+.. (47,35)
+.. controls (47,12) and (63,-5)
+.. (82,-5)
+.. controls (112,-5) and (151,26)
+.. (201,64)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((250,182)
+.. controls (266,182) and (269,176)
+.. (269,160)
+.. controls (269,132) and (127,5)
+.. (80,5)
+.. controls (67,5) and (66,15)
+.. (66,28)
+.. controls (66,44) and (193,182)
+.. (250,182)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (226,295*FS#,320*FS#,5*FS#);
+"acircumflex";
+path P[];
+P1 = ((302,280)
+.. controls (300,274) and (297,266)
+.. (297,256)
+.. controls (297,247) and (309,240)
+.. (320,240)
+.. controls (343,240) and (417,301)
+.. (417,308)
+.. controls (417,310) and (418,313)
+.. (416,313)
+.. controls (405,313) and (397,302)
+.. (390,296)
+.. controls (358,269) and (330,252)
+.. (326,252)
+.. controls (323,252) and (318,250)
+.. (318,253)
+.. controls (318,265) and (332,274)
+.. (355,286)
+.. controls (360,289) and (363,294)
+.. (363,300)
+.. controls (363,314) and (359,320)
+.. (345,320)
+.. controls (331,320) and (320,308)
+.. (311,301)
+.. controls (265,266) and (234,252)
+.. (234,247)
+.. controls (234,243) and (234,240)
+.. (240,240)
+.. controls (249,240) and (280,268)
+.. (302,280)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((201,64)
+.. controls (197,55) and (193,41)
+.. (193,29)
+.. controls (193,6) and (199,-5)
+.. (222,-5)
+.. controls (257,-5) and (361,88)
+.. (361,96)
+.. controls (361,98) and (361,100)
+.. (359,100)
+.. controls (356,100) and (353,99)
+.. (351,97)
+.. controls (287,39) and (244,5)
+.. (221,5)
+.. controls (215,5) and (209,11)
+.. (209,17)
+.. controls (209,24) and (217,36)
+.. (222,42)
+-- (352,183)
+.. controls (353,185) and (354,187)
+.. (354,189)
+.. controls (354,191) and (351,193)
+.. (349,193)
+-- (315,193)
+.. controls (312,193) and (308,191)
+.. (306,189)
+-- (282,164)
+.. controls (279,185) and (271,194)
+.. (249,194)
+.. controls (219,194) and (177,184)
+.. (133,152)
+.. controls (77,121) and (51,70)
+.. (47,35)
+.. controls (47,12) and (63,-5)
+.. (82,-5)
+.. controls (112,-5) and (151,26)
+.. (201,64)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((250,182)
+.. controls (266,182) and (269,176)
+.. (269,160)
+.. controls (269,132) and (127,5)
+.. (80,5)
+.. controls (67,5) and (66,15)
+.. (66,28)
+.. controls (66,44) and (193,182)
+.. (250,182)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (228,295*FS#,290*FS#,5*FS#);
+"adieresis";
+path P[];
+P1 = ((242,264)
+.. controls (241,263) and (240,262)
+.. (240,260)
+.. controls (240,259) and (240,259)
+.. (241,258)
+-- (260,242)
+.. controls (261,241) and (262,240)
+.. (264,240)
+.. controls (266,240) and (266,241)
+.. (267,242)
+-- (283,259)
+.. controls (284,260) and (285,262)
+.. (285,264)
+.. controls (285,266) and (285,268)
+.. (283,269)
+-- (266,284)
+.. controls (264,286) and (263,287)
+.. (260,287)
+.. controls (258,287) and (256,286)
+.. (255,284)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((311,268)
+.. controls (310,266) and (309,264)
+.. (309,262)
+.. controls (309,260) and (310,259)
+.. (311,258)
+-- (332,242)
+.. controls (333,241) and (334,240)
+.. (336,240)
+.. controls (338,240) and (338,242)
+.. (339,243)
+-- (349,262)
+.. controls (350,264) and (350,264)
+.. (350,266)
+.. controls (350,268) and (350,270)
+.. (349,271)
+-- (331,288)
+.. controls (329,290) and (328,290)
+.. (326,290)
+.. controls (324,290) and (322,290)
+.. (321,288)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((201,64)
+.. controls (197,55) and (193,41)
+.. (193,29)
+.. controls (193,6) and (199,-5)
+.. (222,-5)
+.. controls (257,-5) and (361,88)
+.. (361,96)
+.. controls (361,98) and (361,100)
+.. (359,100)
+.. controls (356,100) and (353,99)
+.. (351,97)
+.. controls (287,39) and (244,5)
+.. (221,5)
+.. controls (215,5) and (209,11)
+.. (209,17)
+.. controls (209,24) and (217,36)
+.. (222,42)
+-- (352,183)
+.. controls (353,185) and (354,187)
+.. (354,189)
+.. controls (354,191) and (351,193)
+.. (349,193)
+-- (315,193)
+.. controls (312,193) and (308,191)
+.. (306,189)
+-- (282,164)
+.. controls (279,185) and (271,194)
+.. (249,194)
+.. controls (219,194) and (177,183)
+.. (133,151)
+.. controls (77,120) and (49,72)
+.. (47,35)
+.. controls (47,12) and (63,-5)
+.. (82,-5)
+.. controls (112,-5) and (151,26)
+.. (201,64)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((250,182)
+.. controls (266,182) and (269,176)
+.. (269,160)
+.. controls (269,132) and (127,5)
+.. (80,5)
+.. controls (67,5) and (66,15)
+.. (66,28)
+.. controls (66,44) and (193,182)
+.. (250,182)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (227,295*FS#,279*FS#,5*FS#);
+"atilde";
+path P[];
+P1 = ((369,276)
+.. controls (367,276) and (366,275)
+.. (364,274)
+.. controls (358,271) and (354,269)
+.. (347,269)
+.. controls (325,269) and (306,279)
+.. (285,279)
+.. controls (263,279) and (234,257)
+.. (234,247)
+.. controls (234,244) and (237,243)
+.. (240,243)
+.. controls (245,243) and (246,246)
+.. (250,249)
+.. controls (254,251) and (257,252)
+.. (261,252)
+.. controls (274,252) and (293,240)
+.. (314,240)
+.. controls (329,240) and (373,257)
+.. (373,273)
+.. controls (373,275) and (371,276)
+.. (369,276)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((201,64)
+.. controls (197,55) and (193,41)
+.. (193,29)
+.. controls (193,6) and (199,-5)
+.. (222,-5)
+.. controls (257,-5) and (361,88)
+.. (361,96)
+.. controls (361,98) and (361,100)
+.. (359,100)
+.. controls (356,100) and (353,99)
+.. (351,97)
+.. controls (287,39) and (244,5)
+.. (221,5)
+.. controls (215,5) and (209,11)
+.. (209,17)
+.. controls (209,24) and (217,36)
+.. (222,42)
+-- (352,183)
+.. controls (353,185) and (354,187)
+.. (354,189)
+.. controls (354,191) and (351,193)
+.. (349,193)
+-- (315,193)
+.. controls (312,193) and (308,191)
+.. (306,189)
+-- (282,164)
+.. controls (279,185) and (271,194)
+.. (249,194)
+.. controls (219,194) and (173,179)
+.. (133,152)
+.. controls (77,121) and (51,79)
+.. (47,35)
+.. controls (47,12) and (63,-5)
+.. (82,-5)
+.. controls (112,-5) and (151,26)
+.. (201,64)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((250,182)
+.. controls (266,182) and (269,176)
+.. (269,160)
+.. controls (269,132) and (127,5)
+.. (80,5)
+.. controls (67,5) and (66,15)
+.. (66,28)
+.. controls (66,44) and (193,182)
+.. (250,182)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (229,296*FS#,336*FS#,5*FS#);
+"aring";
+path P[];
+P1 = ((332,336)
+.. controls (300,336) and (268,305)
+.. (268,269)
+.. controls (268,251) and (282,240)
+.. (302,240)
+.. controls (330,240) and (368,270)
+.. (368,304)
+.. controls (368,323) and (354,336)
+.. (332,336)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((201,64)
+.. controls (197,55) and (193,41)
+.. (193,29)
+.. controls (193,6) and (199,-5)
+.. (222,-5)
+.. controls (257,-5) and (361,88)
+.. (361,96)
+.. controls (361,98) and (361,100)
+.. (359,100)
+.. controls (356,100) and (353,99)
+.. (351,97)
+.. controls (287,39) and (244,5)
+.. (221,5)
+.. controls (215,5) and (209,11)
+.. (209,17)
+.. controls (209,24) and (217,36)
+.. (222,42)
+-- (352,183)
+.. controls (353,185) and (354,187)
+.. (354,189)
+.. controls (354,191) and (351,193)
+.. (349,193)
+-- (315,193)
+.. controls (312,193) and (308,191)
+.. (306,189)
+-- (282,164)
+.. controls (279,185) and (271,194)
+.. (249,194)
+.. controls (219,194) and (175,184)
+.. (133,153)
+.. controls (77,122) and (37,68)
+.. (47,35)
+.. controls (47,12) and (63,-5)
+.. (82,-5)
+.. controls (112,-5) and (151,26)
+.. (201,64)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((250,182)
+.. controls (266,182) and (269,176)
+.. (269,160)
+.. controls (269,132) and (127,5)
+.. (80,5)
+.. controls (67,5) and (66,15)
+.. (66,28)
+.. controls (66,44) and (193,182)
+.. (250,182)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((300,250)
+.. controls (290,250) and (281,256)
+.. (281,266)
+.. controls (281,289) and (316,322)
+.. (338,322)
+.. controls (351,322) and (358,314)
+.. (358,302)
+.. controls (358,285) and (329,250)
+.. (300,250)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (231,200*FS#,201*FS#,129*FS#);
+"ccedilla";
+path P[];
+P1 = ((71,-1)
+.. controls (83,-6) and (95,-7)
+.. (105,-7)
+.. controls (173,-7) and (266,92)
+.. (266,96)
+.. controls (266,98) and (266,100)
+.. (264,100)
+.. controls (261,100) and (258,99)
+.. (256,97)
+.. controls (198,45) and (158,9)
+.. (106,9)
+.. controls (87,9) and (73,12)
+.. (73,27)
+.. controls (73,40) and (93,70)
+.. (111,88)
+-- (178,153)
+.. controls (197,171) and (210,187)
+.. (236,187)
+.. controls (243,187) and (251,183)
+.. (251,176)
+.. controls (251,159) and (250,164)
+.. (239,170)
+.. controls (235,172) and (232,172)
+.. (227,172)
+.. controls (217,172) and (205,162)
+.. (205,153)
+.. controls (205,137) and (205,127)
+.. (225,127)
+.. controls (245,127) and (266,150)
+.. (266,176)
+.. controls (266,191) and (251,201)
+.. (231,201)
+.. controls (188,201) and (46,127)
+.. (46,39)
+.. controls (46,27) and (58,12)
+.. (58,8)
+.. controls (58,6) and (57,5)
+.. (56,4)
+-- (-6,-53)
+.. controls (-8,-55) and (-8,-56)
+.. (-8,-58)
+.. controls (-8,-61) and (-7,-63)
+.. (-4,-63)
+.. controls (-1,-63) and (1,-65)
+.. (3,-63)
+.. controls (18,-49) and (44,-35)
+.. (50,-35)
+.. controls (54,-35) and (62,-33)
+.. (62,-37)
+.. controls (62,-62) and (-3,-109)
+.. (-44,-112)
+.. controls (-53,-113) and (-64,-114)
+.. (-64,-123)
+.. controls (-64,-129) and (-53,-129)
+.. (-48,-129)
+.. controls (-42,-129) and (-11,-124)
+.. (23,-112)
+.. controls (68,-97) and (93,-77)
+.. (93,-46)
+.. controls (93,-34) and (77,-20)
+.. (65,-20)
+.. controls (59,-20) and (56,-20)
+.. (50,-21)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (233,199*FS#,320*FS#,7*FS#);
+"eacute";
+path P[];
+P1 = ((259,320)
+.. controls (242,320) and (234,284)
+.. (215,265)
+.. controls (209,259) and (197,252)
+.. (197,242)
+.. controls (197,240) and (200,240)
+.. (202,240)
+.. controls (213,240) and (281,272)
+.. (281,299)
+.. controls (281,311) and (271,320)
+.. (259,320)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((103,83)
+.. controls (109,90) and (131,93)
+.. (167,102)
+.. controls (198,110) and (253,148)
+.. (253,175)
+.. controls (253,188) and (242,192)
+.. (228,192)
+.. controls (207,192) and (125,161)
+.. (77,109)
+.. controls (54,85) and (44,66)
+.. (44,30)
+.. controls (44,9) and (63,-7)
+.. (87,-7)
+.. controls (154,-7) and (265,84)
+.. (265,96)
+.. controls (265,98) and (264,100)
+.. (262,100)
+.. controls (259,100) and (257,99)
+.. (255,97)
+.. controls (239,83) and (215,57)
+.. (163,32)
+.. controls (139,21) and (115,5)
+.. (87,5)
+.. controls (75,5) and (63,10)
+.. (63,21)
+.. controls (63,33) and (69,45)
+.. (77,53)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((178,152)
+.. controls (192,165) and (222,181)
+.. (230,181)
+.. controls (233,181) and (237,181)
+.. (237,178)
+.. controls (237,151) and (182,114)
+.. (122,103)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (232,198*FS#,327*FS#,7*FS#);
+"egrave";
+path P[];
+P1 = ((184,327)
+.. controls (170,327) and (163,320)
+.. (163,306)
+.. controls (163,288) and (221,240)
+.. (242,240)
+.. controls (244,240) and (246,240)
+.. (246,242)
+.. controls (246,250) and (233,259)
+.. (219,277)
+.. controls (196,307) and (205,327)
+.. (184,327)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((102,83)
+.. controls (108,90) and (130,93)
+.. (166,102)
+.. controls (197,110) and (252,148)
+.. (252,175)
+.. controls (252,188) and (241,192)
+.. (227,192)
+.. controls (206,192) and (124,161)
+.. (76,109)
+.. controls (53,85) and (43,66)
+.. (43,30)
+.. controls (43,9) and (62,-7)
+.. (86,-7)
+.. controls (153,-7) and (264,84)
+.. (264,96)
+.. controls (264,98) and (263,100)
+.. (261,100)
+.. controls (258,100) and (256,99)
+.. (254,97)
+.. controls (238,83) and (214,57)
+.. (162,32)
+.. controls (138,21) and (114,5)
+.. (86,5)
+.. controls (74,5) and (62,10)
+.. (62,21)
+.. controls (62,33) and (68,45)
+.. (76,53)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((177,152)
+.. controls (191,165) and (221,181)
+.. (229,181)
+.. controls (232,181) and (236,181)
+.. (236,178)
+.. controls (236,151) and (181,114)
+.. (121,103)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (234,198*FS#,320*FS#,7*FS#);
+"ecircumflex";
+path P[];
+P1 = ((218,280)
+.. controls (216,274) and (214,266)
+.. (214,256)
+.. controls (214,247) and (225,240)
+.. (236,240)
+.. controls (258,240) and (333,301)
+.. (333,308)
+.. controls (333,310) and (334,313)
+.. (332,313)
+.. controls (321,313) and (313,302)
+.. (306,296)
+.. controls (274,269) and (246,252)
+.. (242,252)
+.. controls (239,252) and (234,250)
+.. (234,253)
+.. controls (234,265) and (248,274)
+.. (271,286)
+.. controls (276,289) and (279,294)
+.. (279,300)
+.. controls (279,314) and (275,320)
+.. (261,320)
+.. controls (247,320) and (236,308)
+.. (227,301)
+.. controls (181,266) and (150,252)
+.. (150,247)
+.. controls (150,243) and (150,240)
+.. (156,240)
+.. controls (166,240) and (196,269)
+.. (218,280)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((102,83)
+.. controls (108,90) and (130,93)
+.. (166,102)
+.. controls (197,110) and (252,148)
+.. (252,175)
+.. controls (252,188) and (241,192)
+.. (227,192)
+.. controls (206,192) and (124,161)
+.. (76,109)
+.. controls (53,85) and (43,66)
+.. (43,30)
+.. controls (43,9) and (62,-7)
+.. (86,-7)
+.. controls (153,-7) and (264,84)
+.. (264,96)
+.. controls (264,98) and (263,100)
+.. (261,100)
+.. controls (258,100) and (256,99)
+.. (254,97)
+.. controls (238,83) and (214,57)
+.. (162,32)
+.. controls (138,21) and (114,5)
+.. (86,5)
+.. controls (74,5) and (62,10)
+.. (62,21)
+.. controls (62,33) and (68,45)
+.. (76,53)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((177,152)
+.. controls (191,165) and (221,181)
+.. (229,181)
+.. controls (232,181) and (236,181)
+.. (236,178)
+.. controls (236,151) and (181,114)
+.. (121,103)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (235,197*FS#,290*FS#,7*FS#);
+"edieresis";
+path P[];
+P1 = ((165,264)
+.. controls (164,263) and (164,262)
+.. (164,260)
+.. controls (164,259) and (164,259)
+.. (165,258)
+-- (184,242)
+.. controls (185,241) and (185,240)
+.. (187,240)
+.. controls (189,240) and (190,241)
+.. (191,242)
+-- (207,259)
+.. controls (208,260) and (209,262)
+.. (209,264)
+.. controls (209,266) and (209,268)
+.. (207,269)
+-- (189,284)
+.. controls (187,286) and (187,287)
+.. (184,287)
+.. controls (182,287) and (180,286)
+.. (179,284)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((235,268)
+.. controls (234,266) and (233,264)
+.. (233,262)
+.. controls (233,260) and (234,259)
+.. (235,258)
+-- (255,242)
+.. controls (256,241) and (258,240)
+.. (260,240)
+.. controls (262,240) and (262,242)
+.. (263,243)
+-- (272,262)
+.. controls (273,264) and (274,264)
+.. (274,266)
+.. controls (274,268) and (273,270)
+.. (272,271)
+-- (255,288)
+.. controls (253,290) and (251,290)
+.. (249,290)
+.. controls (247,290) and (246,290)
+.. (245,288)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((102,83)
+.. controls (108,90) and (130,93)
+.. (166,102)
+.. controls (197,110) and (252,148)
+.. (252,175)
+.. controls (252,188) and (241,192)
+.. (227,192)
+.. controls (206,192) and (124,161)
+.. (76,109)
+.. controls (53,85) and (43,66)
+.. (43,30)
+.. controls (43,9) and (62,-7)
+.. (86,-7)
+.. controls (153,-7) and (264,84)
+.. (264,96)
+.. controls (264,98) and (263,100)
+.. (261,100)
+.. controls (258,100) and (256,99)
+.. (254,97)
+.. controls (238,83) and (214,57)
+.. (162,32)
+.. controls (138,21) and (114,5)
+.. (86,5)
+.. controls (74,5) and (62,10)
+.. (62,21)
+.. controls (62,33) and (68,45)
+.. (76,53)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((177,152)
+.. controls (191,165) and (221,181)
+.. (229,181)
+.. controls (232,181) and (236,181)
+.. (236,178)
+.. controls (236,151) and (181,114)
+.. (121,103)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (237,150*FS#,320*FS#,7*FS#);
+"iacute";
+path P[];
+P1 = ((237,320)
+.. controls (220,320) and (212,284)
+.. (193,265)
+.. controls (187,259) and (175,252)
+.. (175,242)
+.. controls (175,240) and (178,240)
+.. (180,240)
+.. controls (192,240) and (260,273)
+.. (260,299)
+.. controls (260,311) and (249,320)
+.. (237,320)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((73,94)
+.. controls (60,81) and (41,50)
+.. (41,30)
+.. controls (41,7) and (51,-7)
+.. (71,-7)
+.. controls (113,-7) and (216,89)
+.. (216,96)
+.. controls (216,98) and (215,100)
+.. (213,100)
+.. controls (210,100) and (208,99)
+.. (206,97)
+.. controls (140,37) and (93,5)
+.. (72,5)
+.. controls (63,5) and (59,9)
+.. (59,18)
+.. controls (59,22) and (69,38)
+.. (78,47)
+-- (209,181)
+.. controls (211,183) and (211,185)
+.. (211,187)
+.. controls (211,189) and (208,191)
+.. (206,191)
+-- (168,191)
+.. controls (163,191) and (160,189)
+.. (158,187)
+-- (102,138)
+.. controls (80,119) and (63,106)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (74,98) and (84,113)
+.. (101,123)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (236,151*FS#,327*FS#,7*FS#);
+"igrave";
+path P[];
+P1 = ((160,327)
+.. controls (146,327) and (139,320)
+.. (139,306)
+.. controls (139,288) and (196,240)
+.. (217,240)
+.. controls (219,240) and (222,240)
+.. (222,242)
+.. controls (222,250) and (209,259)
+.. (195,277)
+.. controls (171,308) and (181,327)
+.. (160,327)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((74,94)
+.. controls (61,81) and (42,50)
+.. (42,30)
+.. controls (42,7) and (52,-7)
+.. (72,-7)
+.. controls (114,-7) and (217,89)
+.. (217,96)
+.. controls (217,98) and (216,100)
+.. (214,100)
+.. controls (211,100) and (209,99)
+.. (207,97)
+.. controls (141,37) and (94,5)
+.. (73,5)
+.. controls (64,5) and (60,9)
+.. (60,18)
+.. controls (60,22) and (70,38)
+.. (79,47)
+-- (210,181)
+.. controls (212,183) and (212,185)
+.. (212,187)
+.. controls (212,189) and (209,191)
+.. (207,191)
+-- (169,191)
+.. controls (164,191) and (161,189)
+.. (159,187)
+-- (103,138)
+.. controls (81,119) and (64,106)
+.. (64,102)
+.. controls (64,100) and (65,98)
+.. (67,98)
+.. controls (75,98) and (85,113)
+.. (102,123)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (238,150*FS#,320*FS#,7*FS#);
+"icircumflex";
+path P[];
+P1 = ((203,280)
+.. controls (201,274) and (198,266)
+.. (198,256)
+.. controls (198,247) and (210,240)
+.. (221,240)
+.. controls (243,240) and (318,301)
+.. (318,308)
+.. controls (318,310) and (319,313)
+.. (317,313)
+.. controls (306,313) and (298,302)
+.. (291,296)
+.. controls (259,269) and (231,252)
+.. (227,252)
+.. controls (224,252) and (219,250)
+.. (219,253)
+.. controls (219,265) and (234,274)
+.. (256,286)
+.. controls (261,289) and (264,294)
+.. (264,300)
+.. controls (264,314) and (260,320)
+.. (246,320)
+.. controls (232,320) and (221,308)
+.. (212,301)
+.. controls (166,266) and (135,252)
+.. (135,247)
+.. controls (135,243) and (135,240)
+.. (141,240)
+.. controls (151,240) and (181,269)
+.. (203,280)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((73,94)
+.. controls (60,81) and (41,50)
+.. (41,30)
+.. controls (41,7) and (51,-7)
+.. (71,-7)
+.. controls (113,-7) and (216,89)
+.. (216,96)
+.. controls (216,98) and (215,100)
+.. (213,100)
+.. controls (210,100) and (208,99)
+.. (206,97)
+.. controls (140,37) and (93,5)
+.. (72,5)
+.. controls (63,5) and (59,9)
+.. (59,18)
+.. controls (59,22) and (69,38)
+.. (78,47)
+-- (209,181)
+.. controls (211,183) and (211,185)
+.. (211,187)
+.. controls (211,189) and (208,191)
+.. (206,191)
+-- (168,191)
+.. controls (163,191) and (160,189)
+.. (158,187)
+-- (102,138)
+.. controls (80,119) and (63,106)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (74,98) and (84,113)
+.. (101,123)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (239,150*FS#,290*FS#,7*FS#);
+"idieresis";
+path P[];
+P1 = ((139,264)
+.. controls (138,263) and (137,262)
+.. (137,260)
+.. controls (137,259) and (137,259)
+.. (138,258)
+-- (157,242)
+.. controls (158,241) and (159,240)
+.. (161,240)
+.. controls (163,240) and (163,241)
+.. (164,242)
+-- (180,259)
+.. controls (181,260) and (182,262)
+.. (182,264)
+.. controls (182,266) and (182,268)
+.. (180,269)
+-- (163,284)
+.. controls (161,286) and (160,287)
+.. (157,287)
+.. controls (155,287) and (153,286)
+.. (152,284)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((208,268)
+.. controls (207,266) and (206,264)
+.. (206,262)
+.. controls (206,260) and (207,259)
+.. (208,258)
+-- (229,242)
+.. controls (230,241) and (231,240)
+.. (233,240)
+.. controls (235,240) and (235,242)
+.. (236,243)
+-- (246,262)
+.. controls (247,264) and (247,264)
+.. (247,266)
+.. controls (247,268) and (247,270)
+.. (246,271)
+-- (228,288)
+.. controls (226,290) and (225,290)
+.. (223,290)
+.. controls (221,290) and (219,290)
+.. (218,288)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((73,94)
+.. controls (60,81) and (41,50)
+.. (41,30)
+.. controls (41,7) and (51,-7)
+.. (71,-7)
+.. controls (113,-7) and (216,89)
+.. (216,96)
+.. controls (216,98) and (215,100)
+.. (213,100)
+.. controls (210,100) and (208,99)
+.. (206,97)
+.. controls (140,37) and (93,5)
+.. (72,5)
+.. controls (63,5) and (59,9)
+.. (59,18)
+.. controls (59,22) and (69,38)
+.. (78,47)
+-- (209,181)
+.. controls (211,183) and (211,185)
+.. (211,187)
+.. controls (211,189) and (208,191)
+.. (206,191)
+-- (168,191)
+.. controls (163,191) and (160,189)
+.. (158,187)
+-- (102,138)
+.. controls (80,119) and (63,106)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (74,98) and (84,113)
+.. (101,123)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (241,362*FS#,279*FS#,1*FS#);
+"ntilde";
+path P[];
+P1 = ((392,276)
+.. controls (390,276) and (389,275)
+.. (387,274)
+.. controls (381,271) and (377,269)
+.. (370,269)
+.. controls (348,269) and (329,279)
+.. (308,279)
+.. controls (286,279) and (257,257)
+.. (257,247)
+.. controls (257,244) and (260,243)
+.. (263,243)
+.. controls (268,243) and (269,246)
+.. (273,249)
+.. controls (276,251) and (280,252)
+.. (284,252)
+.. controls (297,252) and (316,240)
+.. (337,240)
+.. controls (352,240) and (396,257)
+.. (396,273)
+.. controls (396,275) and (394,276)
+.. (392,276)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((60,11)
+.. controls (58,9) and (58,7)
+.. (58,4)
+.. controls (58,1) and (60,0)
+.. (63,0)
+-- (100,0)
+.. controls (119,0) and (271,182)
+.. (343,182)
+.. controls (352,182) and (361,178)
+.. (361,169)
+.. controls (361,166) and (342,145)
+.. (312,119)
+.. controls (273,85) and (250,65)
+.. (250,29)
+.. controls (250,12) and (264,-1)
+.. (281,-1)
+.. controls (328,-1) and (427,87)
+.. (427,96)
+.. controls (427,98) and (426,100)
+.. (424,100)
+.. controls (421,100) and (419,99)
+.. (417,97)
+.. controls (352,38) and (303,11)
+.. (280,11)
+.. controls (275,11) and (269,14)
+.. (269,19)
+.. controls (269,30) and (298,57)
+.. (353,107)
+.. controls (369,121) and (378,141)
+.. (378,162)
+.. controls (378,181) and (367,193)
+.. (347,193)
+.. controls (305,193) and (267,160)
+.. (212,115)
+.. controls (222,132) and (232,151)
+.. (232,166)
+.. controls (232,181) and (222,195)
+.. (209,195)
+.. controls (147,195) and (63,108)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (69,98) and (71,99)
+.. (73,101)
+.. controls (136,157) and (180,182)
+.. (200,182)
+.. controls (205,182) and (212,183)
+.. (212,178)
+.. controls (212,165) and (207,161)
+.. (201,155)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (243,220*FS#,320*FS#,7*FS#);
+"oacute";
+path P[];
+P1 = ((267,320)
+.. controls (250,320) and (242,284)
+.. (223,265)
+.. controls (217,259) and (205,252)
+.. (205,242)
+.. controls (205,240) and (208,240)
+.. (210,240)
+.. controls (221,240) and (289,272)
+.. (289,299)
+.. controls (289,311) and (279,320)
+.. (267,320)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((230,87)
+.. controls (254,115) and (271,139)
+.. (271,167)
+.. controls (271,181) and (255,192)
+.. (238,192)
+.. controls (178,192) and (43,126)
+.. (43,30)
+.. controls (43,11) and (60,-7)
+.. (80,-7)
+.. controls (111,-7) and (160,20)
+.. (220,76)
+.. controls (225,71) and (232,65)
+.. (241,65)
+.. controls (256,65) and (286,88)
+.. (286,97)
+.. controls (286,99) and (286,100)
+.. (284,100)
+.. controls (278,100) and (270,92)
+.. (268,90)
+.. controls (261,84) and (251,78)
+.. (241,78)
+.. controls (235,78) and (232,84)
+.. (230,87)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((84,5)
+.. controls (67,5) and (64,9)
+.. (64,25)
+.. controls (64,47) and (195,180)
+.. (233,180)
+.. controls (245,180) and (258,181)
+.. (258,164)
+.. controls (258,111) and (131,5)
+.. (84,5)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (242,220*FS#,327*FS#,7*FS#);
+"ograve";
+path P[];
+P1 = ((193,327)
+.. controls (179,327) and (173,320)
+.. (173,306)
+.. controls (173,289) and (230,240)
+.. (251,240)
+.. controls (253,240) and (256,240)
+.. (256,242)
+.. controls (256,253) and (224,272)
+.. (214,303)
+.. controls (210,315) and (207,327)
+.. (193,327)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((230,87)
+.. controls (254,115) and (271,139)
+.. (271,167)
+.. controls (271,181) and (255,192)
+.. (238,192)
+.. controls (178,192) and (43,126)
+.. (43,30)
+.. controls (43,11) and (60,-7)
+.. (80,-7)
+.. controls (111,-7) and (160,20)
+.. (220,76)
+.. controls (225,71) and (232,65)
+.. (241,65)
+.. controls (256,65) and (286,88)
+.. (286,97)
+.. controls (286,99) and (286,100)
+.. (284,100)
+.. controls (278,100) and (270,92)
+.. (268,90)
+.. controls (261,84) and (251,78)
+.. (241,78)
+.. controls (235,78) and (232,84)
+.. (230,87)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((84,5)
+.. controls (67,5) and (64,9)
+.. (64,25)
+.. controls (64,47) and (195,180)
+.. (233,180)
+.. controls (245,180) and (258,181)
+.. (258,164)
+.. controls (258,111) and (131,5)
+.. (84,5)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (244,220*FS#,320*FS#,7*FS#);
+"ocircumflex";
+path P[];
+P1 = ((243,280)
+.. controls (241,274) and (239,266)
+.. (239,256)
+.. controls (239,247) and (251,240)
+.. (262,240)
+.. controls (284,240) and (359,301)
+.. (359,308)
+.. controls (359,310) and (360,313)
+.. (358,313)
+.. controls (347,313) and (339,302)
+.. (332,296)
+.. controls (300,269) and (272,252)
+.. (268,252)
+.. controls (265,252) and (259,250)
+.. (259,253)
+.. controls (259,265) and (274,274)
+.. (297,286)
+.. controls (302,289) and (305,294)
+.. (305,300)
+.. controls (305,314) and (301,320)
+.. (287,320)
+.. controls (273,320) and (262,308)
+.. (253,301)
+.. controls (207,266) and (176,252)
+.. (176,247)
+.. controls (176,243) and (176,240)
+.. (182,240)
+.. controls (192,240) and (221,269)
+.. (243,280)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((230,87)
+.. controls (254,115) and (271,139)
+.. (271,167)
+.. controls (271,181) and (255,192)
+.. (238,192)
+.. controls (178,192) and (43,126)
+.. (43,30)
+.. controls (43,11) and (60,-7)
+.. (80,-7)
+.. controls (111,-7) and (160,20)
+.. (220,76)
+.. controls (225,71) and (232,65)
+.. (241,65)
+.. controls (256,65) and (286,88)
+.. (286,97)
+.. controls (286,99) and (286,100)
+.. (284,100)
+.. controls (278,100) and (270,92)
+.. (268,90)
+.. controls (261,84) and (251,78)
+.. (241,78)
+.. controls (235,78) and (232,84)
+.. (230,87)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((84,5)
+.. controls (67,5) and (64,9)
+.. (64,25)
+.. controls (64,47) and (195,180)
+.. (233,180)
+.. controls (245,180) and (258,181)
+.. (258,164)
+.. controls (258,111) and (131,5)
+.. (84,5)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (246,220*FS#,290*FS#,7*FS#);
+"odieresis";
+path P[];
+P1 = ((185,264)
+.. controls (184,263) and (183,262)
+.. (183,260)
+.. controls (183,259) and (184,259)
+.. (185,258)
+-- (203,242)
+.. controls (204,241) and (205,240)
+.. (207,240)
+.. controls (209,240) and (209,241)
+.. (210,242)
+-- (226,259)
+.. controls (227,260) and (228,262)
+.. (228,264)
+.. controls (228,266) and (228,268)
+.. (226,269)
+-- (209,284)
+.. controls (207,286) and (206,287)
+.. (203,287)
+.. controls (201,287) and (199,286)
+.. (198,284)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((255,268)
+.. controls (254,266) and (252,264)
+.. (252,262)
+.. controls (252,260) and (254,259)
+.. (255,258)
+-- (275,242)
+.. controls (276,241) and (277,240)
+.. (279,240)
+.. controls (281,240) and (281,242)
+.. (282,243)
+-- (292,262)
+.. controls (293,264) and (293,264)
+.. (293,266)
+.. controls (293,268) and (293,270)
+.. (292,271)
+-- (274,288)
+.. controls (272,290) and (271,290)
+.. (269,290)
+.. controls (267,290) and (266,290)
+.. (265,288)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((230,87)
+.. controls (254,115) and (271,139)
+.. (271,167)
+.. controls (271,181) and (255,192)
+.. (238,192)
+.. controls (178,192) and (43,126)
+.. (43,30)
+.. controls (43,11) and (60,-7)
+.. (80,-7)
+.. controls (111,-7) and (160,20)
+.. (220,76)
+.. controls (225,71) and (232,65)
+.. (241,65)
+.. controls (256,65) and (286,88)
+.. (286,97)
+.. controls (286,99) and (286,100)
+.. (284,100)
+.. controls (278,100) and (270,92)
+.. (268,90)
+.. controls (261,84) and (251,78)
+.. (241,78)
+.. controls (235,78) and (232,84)
+.. (230,87)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((84,5)
+.. controls (67,5) and (64,9)
+.. (64,25)
+.. controls (64,47) and (195,180)
+.. (233,180)
+.. controls (245,180) and (258,181)
+.. (258,164)
+.. controls (258,111) and (131,5)
+.. (84,5)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (245,220*FS#,279*FS#,7*FS#);
+"otilde";
+path P[];
+P1 = ((293,276)
+.. controls (291,276) and (289,275)
+.. (287,274)
+.. controls (281,271) and (278,269)
+.. (271,269)
+.. controls (249,269) and (230,279)
+.. (209,279)
+.. controls (187,279) and (158,257)
+.. (158,247)
+.. controls (158,244) and (161,243)
+.. (164,243)
+.. controls (169,243) and (170,246)
+.. (174,249)
+.. controls (178,251) and (180,252)
+.. (184,252)
+.. controls (197,252) and (217,240)
+.. (238,240)
+.. controls (253,240) and (297,257)
+.. (297,273)
+.. controls (297,275) and (295,276)
+.. (293,276)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((230,87)
+.. controls (254,115) and (271,139)
+.. (271,167)
+.. controls (271,181) and (255,192)
+.. (238,192)
+.. controls (178,192) and (43,126)
+.. (43,30)
+.. controls (43,11) and (60,-7)
+.. (80,-7)
+.. controls (111,-7) and (160,20)
+.. (220,76)
+.. controls (225,71) and (232,65)
+.. (241,65)
+.. controls (256,65) and (286,88)
+.. (286,97)
+.. controls (286,99) and (286,100)
+.. (284,100)
+.. controls (278,100) and (270,92)
+.. (268,90)
+.. controls (261,84) and (251,78)
+.. (241,78)
+.. controls (235,78) and (232,84)
+.. (230,87)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((84,5)
+.. controls (67,5) and (64,9)
+.. (64,25)
+.. controls (64,47) and (195,180)
+.. (233,180)
+.. controls (245,180) and (258,181)
+.. (258,164)
+.. controls (258,111) and (131,5)
+.. (84,5)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (250,310*FS#,320*FS#,7*FS#);
+"uacute";
+path P[];
+P1 = ((327,320)
+.. controls (310,320) and (302,284)
+.. (283,265)
+.. controls (277,259) and (265,252)
+.. (265,242)
+.. controls (265,240) and (268,240)
+.. (270,240)
+.. controls (282,240) and (350,273)
+.. (350,299)
+.. controls (350,311) and (340,320)
+.. (327,320)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((225,92)
+.. controls (209,70) and (195,53)
+.. (195,19)
+.. controls (195,3) and (208,-7)
+.. (223,-7)
+.. controls (270,-7) and (376,89)
+.. (376,96)
+.. controls (376,98) and (376,100)
+.. (374,100)
+.. controls (371,100) and (368,99)
+.. (366,97)
+.. controls (300,37) and (255,5)
+.. (227,5)
+.. controls (219,5) and (214,9)
+.. (214,17)
+.. controls (214,27) and (226,39)
+.. (235,48)
+-- (361,181)
+.. controls (363,183) and (363,185)
+.. (363,187)
+.. controls (363,190) and (360,191)
+.. (357,191)
+-- (317,191)
+.. controls (307,191) and (278,153)
+.. (186,74)
+.. controls (133,29) and (94,5)
+.. (81,5)
+.. controls (67,5) and (57,5)
+.. (57,19)
+.. controls (57,24) and (59,26)
+.. (62,29)
+-- (211,181)
+.. controls (212,182) and (212,184)
+.. (212,186)
+.. controls (212,188) and (210,191)
+.. (208,191)
+-- (171,191)
+.. controls (166,191) and (162,188)
+.. (160,186)
+-- (68,108)
+.. controls (66,106) and (65,105)
+.. (65,102)
+.. controls (65,100) and (65,98)
+.. (67,98)
+.. controls (73,98) and (85,110)
+.. (97,119)
+-- (62,80)
+.. controls (49,65) and (41,44)
+.. (41,25)
+.. controls (41,6) and (52,-7)
+.. (73,-7)
+.. controls (111,-7) and (159,34)
+.. (225,92)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (249,309*FS#,327*FS#,7*FS#);
+"ugrave";
+path P[];
+P1 = ((258,327)
+.. controls (244,327) and (238,320)
+.. (238,306)
+.. controls (238,289) and (295,240)
+.. (316,240)
+.. controls (318,240) and (321,240)
+.. (321,242)
+.. controls (321,253) and (288,274)
+.. (279,303)
+.. controls (275,315) and (273,327)
+.. (258,327)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((224,92)
+.. controls (208,70) and (194,53)
+.. (194,19)
+.. controls (194,3) and (207,-7)
+.. (222,-7)
+.. controls (269,-7) and (375,89)
+.. (375,96)
+.. controls (375,98) and (375,100)
+.. (373,100)
+.. controls (370,100) and (367,99)
+.. (365,97)
+.. controls (299,37) and (254,5)
+.. (226,5)
+.. controls (218,5) and (213,9)
+.. (213,17)
+.. controls (213,27) and (225,39)
+.. (234,48)
+-- (360,181)
+.. controls (362,183) and (362,185)
+.. (362,187)
+.. controls (362,190) and (359,191)
+.. (356,191)
+-- (316,191)
+.. controls (306,191) and (277,153)
+.. (185,74)
+.. controls (132,29) and (93,5)
+.. (80,5)
+.. controls (66,5) and (56,5)
+.. (56,19)
+.. controls (56,24) and (58,26)
+.. (61,29)
+-- (210,181)
+.. controls (211,182) and (211,184)
+.. (211,186)
+.. controls (211,188) and (209,191)
+.. (207,191)
+-- (170,191)
+.. controls (165,191) and (161,188)
+.. (159,186)
+-- (67,108)
+.. controls (65,106) and (64,105)
+.. (64,102)
+.. controls (64,100) and (64,98)
+.. (66,98)
+.. controls (72,98) and (84,110)
+.. (96,119)
+-- (61,80)
+.. controls (48,65) and (40,44)
+.. (40,25)
+.. controls (40,6) and (51,-7)
+.. (72,-7)
+.. controls (110,-7) and (158,34)
+.. (224,92)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (251,309*FS#,320*FS#,7*FS#);
+"ucircumflex";
+path P[];
+P1 = ((292,280)
+.. controls (290,274) and (288,266)
+.. (288,256)
+.. controls (288,247) and (299,240)
+.. (310,240)
+.. controls (332,240) and (407,301)
+.. (407,308)
+.. controls (407,310) and (408,313)
+.. (406,313)
+.. controls (395,313) and (387,302)
+.. (380,296)
+.. controls (348,269) and (320,252)
+.. (316,252)
+.. controls (313,252) and (308,250)
+.. (308,253)
+.. controls (308,265) and (322,274)
+.. (345,286)
+.. controls (350,289) and (353,294)
+.. (353,300)
+.. controls (353,314) and (349,320)
+.. (335,320)
+.. controls (321,320) and (310,308)
+.. (301,301)
+.. controls (255,266) and (224,252)
+.. (224,247)
+.. controls (224,243) and (224,240)
+.. (230,240)
+.. controls (240,240) and (270,269)
+.. (292,280)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((225,92)
+.. controls (209,70) and (195,53)
+.. (195,19)
+.. controls (195,3) and (208,-7)
+.. (223,-7)
+.. controls (270,-7) and (376,89)
+.. (376,96)
+.. controls (376,98) and (376,100)
+.. (374,100)
+.. controls (371,100) and (368,99)
+.. (366,97)
+.. controls (300,37) and (255,5)
+.. (227,5)
+.. controls (219,5) and (214,9)
+.. (214,17)
+.. controls (214,27) and (226,39)
+.. (235,48)
+-- (361,181)
+.. controls (363,183) and (363,185)
+.. (363,187)
+.. controls (363,190) and (360,191)
+.. (357,191)
+-- (317,191)
+.. controls (307,191) and (278,153)
+.. (186,74)
+.. controls (133,29) and (94,5)
+.. (81,5)
+.. controls (67,5) and (57,5)
+.. (57,19)
+.. controls (57,24) and (59,26)
+.. (62,29)
+-- (211,181)
+.. controls (212,182) and (212,184)
+.. (212,186)
+.. controls (212,188) and (210,191)
+.. (208,191)
+-- (171,191)
+.. controls (166,191) and (162,188)
+.. (160,186)
+-- (68,108)
+.. controls (66,106) and (65,105)
+.. (65,102)
+.. controls (65,100) and (65,98)
+.. (67,98)
+.. controls (73,98) and (85,110)
+.. (97,119)
+-- (62,80)
+.. controls (49,65) and (41,44)
+.. (41,25)
+.. controls (41,6) and (52,-7)
+.. (73,-7)
+.. controls (111,-7) and (159,34)
+.. (225,92)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (252,308*FS#,290*FS#,7*FS#);
+"udieresis";
+path P[];
+P1 = ((236,264)
+.. controls (235,263) and (235,262)
+.. (235,260)
+.. controls (235,259) and (235,259)
+.. (236,258)
+-- (255,242)
+.. controls (256,241) and (256,240)
+.. (258,240)
+.. controls (260,240) and (261,241)
+.. (262,242)
+-- (277,259)
+.. controls (278,260) and (280,262)
+.. (280,264)
+.. controls (280,266) and (279,268)
+.. (277,269)
+-- (260,284)
+.. controls (258,286) and (257,287)
+.. (254,287)
+.. controls (252,287) and (251,286)
+.. (250,284)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((306,268)
+.. controls (305,266) and (303,264)
+.. (303,262)
+.. controls (303,260) and (305,259)
+.. (306,258)
+-- (326,242)
+.. controls (327,241) and (328,240)
+.. (330,240)
+.. controls (332,240) and (332,242)
+.. (333,243)
+-- (343,262)
+.. controls (344,264) and (345,264)
+.. (345,266)
+.. controls (345,268) and (344,270)
+.. (343,271)
+-- (325,288)
+.. controls (323,290) and (322,290)
+.. (320,290)
+.. controls (318,290) and (317,290)
+.. (316,288)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((224,92)
+.. controls (208,70) and (194,53)
+.. (194,19)
+.. controls (194,3) and (207,-7)
+.. (222,-7)
+.. controls (269,-7) and (375,89)
+.. (375,96)
+.. controls (375,98) and (375,100)
+.. (373,100)
+.. controls (370,100) and (367,99)
+.. (365,97)
+.. controls (299,37) and (254,5)
+.. (226,5)
+.. controls (218,5) and (213,9)
+.. (213,17)
+.. controls (213,27) and (225,39)
+.. (234,48)
+-- (360,181)
+.. controls (362,183) and (362,185)
+.. (362,187)
+.. controls (362,190) and (359,191)
+.. (356,191)
+-- (316,191)
+.. controls (306,191) and (277,153)
+.. (185,74)
+.. controls (132,29) and (93,5)
+.. (80,5)
+.. controls (66,5) and (56,5)
+.. (56,19)
+.. controls (56,24) and (58,26)
+.. (61,29)
+-- (210,181)
+.. controls (211,182) and (211,184)
+.. (211,186)
+.. controls (211,188) and (209,191)
+.. (207,191)
+-- (170,191)
+.. controls (165,191) and (161,188)
+.. (159,186)
+-- (67,108)
+.. controls (65,106) and (64,105)
+.. (64,102)
+.. controls (64,100) and (64,98)
+.. (66,98)
+.. controls (72,98) and (84,110)
+.. (96,119)
+-- (61,80)
+.. controls (48,65) and (40,44)
+.. (40,25)
+.. controls (40,6) and (51,-7)
+.. (72,-7)
+.. controls (110,-7) and (158,34)
+.. (224,92)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (191,773*FS#,482*FS#,10*FS#);
+"sterling";
+path P[];
+P1 = ((145,-10)
+.. controls (242,-10) and (324,35)
+.. (339,35)
+.. controls (366,35) and (442,-8)
+.. (509,-8)
+.. controls (626,-8) and (745,101)
+.. (745,111)
+.. controls (745,114) and (745,117)
+.. (742,117)
+.. controls (733,117) and (721,104)
+.. (700,85)
+.. controls (653,42) and (569,6)
+.. (517,6)
+.. controls (467,6) and (403,23)
+.. (356,43)
+.. controls (460,89) and (558,179)
+.. (575,206)
+-- (672,206)
+.. controls (677,206) and (679,210)
+.. (679,214)
+.. controls (679,218) and (675,220)
+.. (672,220)
+-- (588,220)
+-- (632,272)
+-- (729,272)
+.. controls (735,272) and (736,274)
+.. (736,279)
+.. controls (736,283) and (728,285)
+.. (726,285)
+-- (641,285)
+.. controls (668,328) and (721,389)
+.. (744,410)
+.. controls (784,446) and (840,470)
+.. (879,470)
+.. controls (948,470) and (991,436)
+.. (991,368)
+.. controls (991,334) and (955,298)
+.. (916,298)
+.. controls (876,298) and (849,322)
+.. (849,352)
+.. controls (849,363) and (853,378)
+.. (853,379)
+.. controls (853,381) and (851,384)
+.. (849,384)
+.. controls (837,384) and (833,367)
+.. (833,347)
+.. controls (833,316) and (870,284)
+.. (915,284)
+.. controls (968,284) and (1007,333)
+.. (1007,378)
+.. controls (1007,436) and (956,482)
+.. (877,482)
+.. controls (795,482) and (667,413)
+.. (611,338)
+.. controls (586,304) and (573,285)
+.. (562,285)
+-- (478,285)
+.. controls (475,285) and (469,284)
+.. (469,279)
+.. controls (469,276) and (475,272)
+.. (478,272)
+-- (556,272)
+-- (518,220)
+-- (427,220)
+.. controls (423,220) and (420,218)
+.. (420,213)
+.. controls (420,209) and (423,206)
+.. (427,206)
+-- (507,206)
+.. controls (496,185) and (478,166)
+.. (464,148)
+.. controls (411,80) and (341,49)
+.. (335,49)
+.. controls (311,49) and (245,80)
+.. (155,80)
+.. controls (113,80) and (67,62)
+.. (67,27)
+.. controls (67,1) and (96,-10)
+.. (145,-10)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((315,40)
+.. controls (283,23) and (192,2)
+.. (158,2)
+.. controls (110,2) and (83,8)
+.. (83,29)
+.. controls (83,49) and (114,68)
+.. (159,68)
+.. controls (216,68) and (277,54)
+.. (315,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (255,689*FS#,504*FS#,106*FS#);
+"germandbls";
+path P[];
+P1 = ((87,121)
+.. controls (111,139) and (170,191)
+.. (261,273)
+.. controls (259,270) and (258,268)
+.. (256,265)
+.. controls (108,100) and (32,7)
+.. (27,0)
+-- (82,0)
+.. controls (254,204) and (381,353)
+.. (475,440)
+.. controls (507,470) and (557,488)
+.. (578,488)
+.. controls (608,488) and (623,472)
+.. (623,440)
+.. controls (623,368) and (538,298)
+.. (527,298)
+.. controls (525,298) and (523,299)
+.. (521,301)
+.. controls (511,313) and (492,317)
+.. (473,317)
+.. controls (450,317) and (411,294)
+.. (411,276)
+.. controls (411,261) and (422,254)
+.. (439,254)
+.. controls (466,254) and (497,273)
+.. (512,273)
+.. controls (515,273) and (517,253)
+.. (517,232)
+.. controls (517,199) and (475,128)
+.. (473,128)
+.. controls (463,128) and (459,129)
+.. (449,129)
+.. controls (278,129) and (130,14)
+.. (130,-46)
+.. controls (130,-86) and (150,-106)
+.. (191,-106)
+.. controls (226,-106) and (246,-101)
+.. (279,-88)
+.. controls (388,-45) and (431,13)
+.. (462,43)
+.. controls (495,74) and (504,109)
+.. (509,109)
+.. controls (518,109) and (531,103)
+.. (542,100)
+-- (551,112)
+.. controls (540,120) and (518,121)
+.. (518,126)
+.. controls (518,137) and (547,188)
+.. (547,226)
+.. controls (547,244) and (538,279)
+.. (535,284)
+.. controls (534,286) and (534,287)
+.. (534,289)
+.. controls (534,292) and (537,294)
+.. (540,294)
+.. controls (550,294) and (658,365)
+.. (658,438)
+.. controls (658,479) and (623,504)
+.. (576,504)
+.. controls (469,504) and (350,364)
+.. (134,175)
+.. controls (117,160) and (97,144)
+.. (81,129)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((463,108)
+.. controls (463,90) and (305,-87)
+.. (195,-87)
+.. controls (166,-87) and (146,-71)
+.. (146,-55)
+.. controls (146,20) and (276,102)
+.. (437,112)
+.. controls (447,113) and (463,118)
+.. (463,108)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((504,284)
+.. controls (455,264) and (426,258)
+.. (426,275)
+.. controls (426,282) and (444,296)
+.. (459,296)
+.. controls (476,296) and (483,300)
+.. (504,284)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (1,144*FS#,320*FS#,0*FS#);
+"acute";
+path P[];
+P1 = ((92,320)
+.. controls (75,320) and (67,284)
+.. (48,265)
+.. controls (42,259) and (30,252)
+.. (30,242)
+.. controls (30,240) and (33,240)
+.. (35,240)
+.. controls (47,240) and (114,273)
+.. (114,299)
+.. controls (114,311) and (104,320)
+.. (92,320)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (4,170*FS#,290*FS#,0*FS#);
+"dieresis";
+path P[];
+P1 = ((32,264)
+.. controls (31,263) and (30,262)
+.. (30,260)
+.. controls (30,259) and (30,259)
+.. (31,258)
+-- (50,242)
+.. controls (51,241) and (52,240)
+.. (54,240)
+.. controls (56,240) and (56,241)
+.. (57,242)
+-- (73,259)
+.. controls (74,260) and (75,262)
+.. (75,264)
+.. controls (75,266) and (75,268)
+.. (73,269)
+-- (55,284)
+.. controls (53,286) and (53,287)
+.. (50,287)
+.. controls (48,287) and (46,286)
+.. (45,284)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((101,268)
+.. controls (100,266) and (99,264)
+.. (99,262)
+.. controls (99,260) and (100,259)
+.. (101,258)
+-- (122,242)
+.. controls (123,241) and (124,240)
+.. (126,240)
+.. controls (128,240) and (128,242)
+.. (129,243)
+-- (138,262)
+.. controls (139,264) and (140,264)
+.. (140,266)
+.. controls (140,268) and (139,270)
+.. (138,271)
+-- (121,288)
+.. controls (119,290) and (117,290)
+.. (115,290)
+.. controls (113,290) and (112,290)
+.. (111,288)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (198,1226*FS#,682*FS#,6*FS#);
+"AE";
+path P[];
+P1 = ((620,8)
+.. controls (618,6) and (619,3)
+.. (619,0)
+.. controls (619,-2) and (621,-4)
+.. (623,-4)
+-- (665,-4)
+.. controls (671,-4) and (672,-1)
+.. (674,2)
+-- (690,27)
+.. controls (697,38) and (715,36)
+.. (732,37)
+.. controls (798,42) and (837,71)
+.. (868,95)
+.. controls (877,102) and (884,108)
+.. (884,96)
+.. controls (884,92) and (881,81)
+.. (881,79)
+.. controls (881,70) and (901,35)
+.. (932,15)
+.. controls (962,-5) and (985,-6)
+.. (1021,-6)
+.. controls (1140,-6) and (1323,91)
+.. (1323,185)
+.. controls (1323,227) and (1294,256)
+.. (1241,256)
+.. controls (1117,256) and (949,82)
+.. (949,60)
+.. controls (949,57) and (949,54)
+.. (952,54)
+.. controls (962,54) and (970,68)
+.. (977,77)
+.. controls (1058,178) and (1174,244)
+.. (1248,244)
+.. controls (1284,244) and (1307,224)
+.. (1307,184)
+.. controls (1307,127) and (1174,8)
+.. (1018,8)
+.. controls (950,8) and (912,37)
+.. (912,86)
+.. controls (912,149) and (992,277)
+.. (1101,330)
+.. controls (1150,354) and (1213,369)
+.. (1219,355)
+.. controls (1226,339) and (1253,331)
+.. (1290,331)
+.. controls (1298,331) and (1303,337)
+.. (1303,345)
+.. controls (1303,370) and (1268,373)
+.. (1227,375)
+.. controls (1219,375) and (1208,372)
+.. (1208,409)
+.. controls (1208,414) and (1216,411)
+.. (1221,412)
+.. controls (1350,448) and (1448,495)
+.. (1524,566)
+.. controls (1547,588) and (1560,602)
+.. (1560,635)
+.. controls (1560,661) and (1532,682)
+.. (1490,682)
+.. controls (1363,682) and (1180,544)
+.. (1180,443)
+.. controls (1180,437) and (1182,433)
+.. (1182,427)
+.. controls (1182,418) and (1186,414)
+.. (1172,414)
+.. controls (1149,414) and (1113,401)
+.. (1069,401)
+.. controls (1057,401) and (1051,404)
+.. (1039,404)
+.. controls (1032,404) and (1021,406)
+.. (1021,398)
+.. controls (1021,390) and (1043,389)
+.. (1072,389)
+.. controls (1121,389) and (1175,404)
+.. (1180,404)
+.. controls (1187,404) and (1198,378)
+.. (1198,374)
+.. controls (1198,368) and (1184,373)
+.. (1180,373)
+.. controls (1180,373) and (1074,352)
+.. (1000,304)
+.. controls (914,249) and (889,191)
+.. (879,121)
+.. controls (878,116) and (792,47)
+.. (720,47)
+.. controls (718,47) and (712,48)
+.. (712,51)
+.. controls (712,56) and (716,59)
+.. (721,61)
+.. controls (743,71) and (832,222)
+.. (1034,419)
+.. controls (1034,419) and (1080,469)
+.. (1178,564)
+.. controls (1239,623) and (1266,637)
+.. (1266,652)
+.. controls (1266,655) and (1260,655)
+.. (1257,654)
+.. controls (1098,617) and (999,550)
+.. (885,454)
+.. controls (772,359) and (716,305)
+.. (712,305)
+.. controls (707,305) and (709,311)
+.. (708,315)
+.. controls (683,408) and (605,485)
+.. (510,485)
+.. controls (449,485) and (390,420)
+.. (390,327)
+.. controls (390,233) and (462,135)
+.. (480,127)
+.. controls (485,125) and (488,121)
+.. (488,116)
+.. controls (488,112) and (484,110)
+.. (480,109)
+.. controls (459,95) and (439,83)
+.. (419,70)
+.. controls (411,62) and (380,47)
+.. (344,34)
+.. controls (308,21) and (267,8)
+.. (230,8)
+.. controls (154,8) and (95,50)
+.. (95,85)
+.. controls (95,89) and (95,92)
+.. (96,96)
+.. controls (103,88) and (111,78)
+.. (126,78)
+.. controls (147,78) and (156,91)
+.. (156,115)
+.. controls (156,132) and (139,144)
+.. (115,144)
+.. controls (96,144) and (77,121)
+.. (77,95)
+.. controls (77,40) and (139,-6)
+.. (236,-6)
+.. controls (278,-6) and (302,2)
+.. (342,17)
+.. controls (428,49) and (468,85)
+.. (486,98)
+.. controls (491,102) and (493,106)
+.. (499,106)
+.. controls (504,106) and (506,101)
+.. (511,98)
+.. controls (590,45) and (650,45)
+.. (650,42)
+.. controls (650,41) and (650,41)
+.. (649,41)
+.. controls (647,41) and (645,41)
+.. (644,39)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((501,125)
+.. controls (487,125) and (406,222)
+.. (406,328)
+.. controls (406,409) and (473,462)
+.. (518,462)
+.. controls (558,462) and (588,456)
+.. (622,427)
+.. controls (665,391) and (701,315)
+.. (701,294)
+.. controls (701,292) and (665,258)
+.. (596,202)
+.. controls (536,153) and (502,125)
+.. (501,125)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((657,55)
+.. controls (598,55) and (511,110)
+.. (511,115)
+.. controls (511,117) and (550,140)
+.. (606,193)
+.. controls (666,250) and (703,277)
+.. (704,277)
+.. controls (706,277) and (710,256)
+.. (710,236)
+.. controls (710,165) and (664,55)
+.. (657,55)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((1227,633)
+.. controls (1213,620) and (1133,561)
+.. (999,431)
+.. controls (815,253) and (725,131)
+.. (693,99)
+.. controls (714,158) and (723,221)
+.. (723,253)
+.. controls (723,265) and (716,281)
+.. (716,287)
+.. controls (716,292) and (720,293)
+.. (724,296)
+.. controls (904,454) and (1054,596)
+.. (1227,633)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((1209,423)
+.. controls (1209,464) and (1324,625)
+.. (1445,660)
+.. controls (1466,666) and (1478,666)
+.. (1500,666)
+.. controls (1522,666) and (1542,653)
+.. (1542,642)
+.. controls (1542,576) and (1439,494)
+.. (1220,425)
+.. controls (1216,424) and (1209,419)
+.. (1209,423)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((1233,363)
+.. controls (1264,362) and (1287,356)
+.. (1287,348)
+.. controls (1287,339) and (1271,345)
+.. (1256,349)
+.. controls (1247,352) and (1240,356)
+.. (1233,363)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (216,608*FS#,702*FS#,7*FS#);
+"Oslash";
+path P[];
+P1 = ((863,694)
+.. controls (864,695) and (864,696)
+.. (864,697)
+.. controls (864,699) and (863,702)
+.. (861,702)
+.. controls (859,702) and (857,703)
+.. (855,701)
+-- (823,669)
+.. controls (817,663) and (810,665)
+.. (806,665)
+-- (790,665)
+.. controls (730,665) and (584,628)
+.. (437,527)
+.. controls (232,386) and (133,225)
+.. (133,128)
+.. controls (133,85) and (146,62)
+.. (160,39)
+.. controls (162,36) and (165,34)
+.. (165,31)
+.. controls (165,30) and (164,30)
+.. (163,29)
+-- (137,2)
+.. controls (135,0) and (138,-5)
+.. (141,-5)
+.. controls (143,-5) and (144,-5)
+.. (145,-4)
+-- (170,20)
+.. controls (171,21) and (172,22)
+.. (173,22)
+.. controls (177,22) and (179,18)
+.. (182,16)
+.. controls (196,7) and (211,-7)
+.. (253,-7)
+.. controls (314,-7) and (388,30)
+.. (479,96)
+.. controls (697,253) and (802,431)
+.. (802,521)
+.. controls (802,548) and (805,567)
+.. (780,595)
+.. controls (777,598) and (773,599)
+.. (773,603)
+.. controls (773,605) and (774,606)
+.. (775,607)
+-- (823,653)
+.. controls (824,654) and (825,656)
+.. (827,656)
+.. controls (900,656) and (945,616)
+.. (945,571)
+.. controls (945,526) and (907,489)
+.. (830,486)
+.. controls (826,486) and (817,487)
+.. (817,481)
+.. controls (817,476) and (831,475)
+.. (838,475)
+.. controls (900,475) and (958,513)
+.. (958,571)
+.. controls (958,622) and (918,658)
+.. (837,669)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((765,613)
+.. controls (764,611) and (763,610)
+.. (761,610)
+.. controls (760,610) and (742,617)
+.. (718,617)
+.. controls (612,617) and (477,485)
+.. (477,374)
+.. controls (477,366) and (486,351)
+.. (486,343)
+.. controls (486,341) and (484,340)
+.. (483,339)
+-- (181,45)
+.. controls (179,44) and (178,42)
+.. (176,42)
+.. controls (171,42) and (163,63)
+.. (163,86)
+.. controls (163,226) and (517,657)
+.. (795,657)
+.. controls (800,657) and (803,656)
+.. (807,656)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((501,357)
+.. controls (500,356) and (499,354)
+.. (497,354)
+.. controls (495,354) and (490,369)
+.. (490,376)
+.. controls (490,455) and (636,605)
+.. (712,605)
+.. controls (722,605) and (734,606)
+.. (749,599)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((489,329)
+.. controls (491,330) and (491,332)
+.. (493,332)
+.. controls (497,332) and (499,328)
+.. (503,326)
+.. controls (515,318) and (524,316)
+.. (538,316)
+.. controls (607,316) and (707,393)
+.. (744,516)
+.. controls (745,520) and (744,521)
+.. (744,525)
+.. controls (744,527) and (741,528)
+.. (739,528)
+.. controls (732,528) and (731,517)
+.. (717,482)
+.. controls (676,376) and (578,328)
+.. (549,328)
+.. controls (519,328) and (503,334)
+.. (503,342)
+.. controls (503,344) and (505,345)
+.. (507,347)
+-- (758,591)
+.. controls (759,592) and (760,593)
+.. (762,593)
+.. controls (766,593) and (792,572)
+.. (792,534)
+.. controls (792,430) and (680,255)
+.. (471,104)
+.. controls (384,41) and (314,5)
+.. (240,5)
+.. controls (213,5) and (184,30)
+.. (184,32)
+.. controls (184,34) and (187,35)
+.. (189,37)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (230,357*FS#,194*FS#,6*FS#);
+"ae";
+path P[];
+P1 = ((213,66)
+.. controls (208,53) and (207,46)
+.. (207,30)
+.. controls (207,19) and (220,-6)
+.. (247,-6)
+.. controls (312,-6) and (424,83)
+.. (424,96)
+.. controls (424,98) and (423,100)
+.. (421,100)
+.. controls (418,100) and (416,99)
+.. (414,97)
+.. controls (394,78) and (366,49)
+.. (310,25)
+.. controls (286,14) and (263,5)
+.. (251,5)
+.. controls (241,5) and (228,10)
+.. (228,17)
+.. controls (228,28) and (229,31)
+.. (237,41)
+-- (269,82)
+.. controls (274,88) and (281,87)
+.. (284,88)
+.. controls (371,108) and (424,147)
+.. (424,173)
+.. controls (424,187) and (418,193)
+.. (404,193)
+.. controls (386,193) and (362,177)
+.. (334,157)
+-- (358,185)
+.. controls (359,186) and (360,187)
+.. (360,189)
+.. controls (360,191) and (360,193)
+.. (358,193)
+-- (320,193)
+.. controls (316,193) and (313,190)
+.. (311,188)
+-- (287,160)
+.. controls (282,183) and (272,194)
+.. (249,194)
+.. controls (166,194) and (43,109)
+.. (43,39)
+.. controls (43,13) and (59,-6)
+.. (81,-6)
+.. controls (126,-6) and (172,36)
+.. (213,66)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((287,102)
+.. controls (315,136) and (393,181)
+.. (401,181)
+.. controls (415,181) and (412,178)
+.. (412,168)
+.. controls (412,153) and (336,106)
+.. (287,102)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((254,182)
+.. controls (272,182) and (274,169)
+.. (274,155)
+.. controls (274,132) and (138,5)
+.. (88,5)
+.. controls (76,5) and (63,7)
+.. (63,17)
+.. controls (63,33) and (81,52)
+.. (103,73)
+.. controls (164,130) and (210,182)
+.. (254,182)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (248,219*FS#,205*FS#,24*FS#);
+"oslash";
+path P[];
+P1 = ((37,-15)
+.. controls (36,-16) and (35,-18)
+.. (35,-19)
+.. controls (35,-22) and (41,-24)
+.. (43,-24)
+.. controls (44,-24) and (45,-23)
+.. (46,-22)
+-- (64,-7)
+.. controls (65,-6) and (65,-4)
+.. (67,-4)
+.. controls (68,-4) and (78,-7)
+.. (82,-7)
+.. controls (107,-7) and (188,39)
+.. (219,78)
+.. controls (223,74) and (232,67)
+.. (239,67)
+.. controls (257,67) and (284,85)
+.. (284,93)
+.. controls (284,103) and (274,94)
+.. (268,90)
+.. controls (261,85) and (252,79)
+.. (240,79)
+.. controls (233,79) and (231,85)
+.. (229,89)
+.. controls (254,118) and (271,147)
+.. (271,163)
+.. controls (271,165) and (268,175)
+.. (268,176)
+.. controls (268,178) and (270,179)
+.. (271,180)
+-- (288,197)
+.. controls (289,198) and (289,199)
+.. (289,200)
+.. controls (289,204) and (283,207)
+.. (279,204)
+-- (262,190)
+.. controls (261,189) and (260,188)
+.. (258,188)
+.. controls (258,188) and (249,193)
+.. (245,193)
+.. controls (157,193) and (42,109)
+.. (42,41)
+.. controls (42,31) and (41,19)
+.. (51,8)
+.. controls (53,6) and (55,6)
+.. (55,3)
+.. controls (55,2) and (55,1)
+.. (54,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((70,15)
+.. controls (69,14) and (68,12)
+.. (66,12)
+.. controls (62,12) and (63,16)
+.. (63,20)
+.. controls (63,51) and (194,181)
+.. (233,181)
+.. controls (236,181) and (248,180)
+.. (248,178)
+.. controls (248,176) and (247,175)
+.. (246,174)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((253,164)
+.. controls (254,165) and (255,167)
+.. (257,167)
+.. controls (260,167) and (258,163)
+.. (258,160)
+.. controls (258,115) and (131,5)
+.. (87,5)
+.. controls (84,5) and (82,6)
+.. (79,6)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (190,265*FS#,207*FS#,106*FS#);
+"questiondown";
+path P[];
+P1 = ((60,-106)
+.. controls (138,-106) and (210,-73)
+.. (210,-22)
+.. controls (210,-3) and (192,9)
+.. (165,9)
+.. controls (110,9) and (23,-54)
+.. (23,-62)
+.. controls (23,-71) and (32,-70)
+.. (43,-59)
+.. controls (65,-37) and (130,-3)
+.. (172,-3)
+.. controls (181,-3) and (193,-7)
+.. (193,-15)
+.. controls (193,-33) and (102,-92)
+.. (40,-92)
+.. controls (8,-92) and (3,-78)
+.. (3,-59)
+.. controls (3,-31) and (57,1)
+.. (148,37)
+.. controls (259,81) and (316,140)
+.. (316,141)
+.. controls (316,145) and (316,150)
+.. (310,150)
+.. controls (306,150) and (305,147)
+.. (302,144)
+.. controls (292,133) and (261,109)
+.. (224,91)
+.. controls (192,75) and (158,69)
+.. (129,63)
+.. controls (85,55) and (47,46)
+.. (17,17)
+.. controls (-3,-3) and (-15,-29)
+.. (-15,-52)
+.. controls (-15,-86) and (13,-106)
+.. (60,-106)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((372,169)
+.. controls (374,170) and (374,172)
+.. (374,174)
+.. controls (374,176) and (373,177)
+.. (372,179)
+-- (353,204)
+.. controls (352,206) and (350,207)
+.. (348,207)
+.. controls (346,207) and (345,205)
+.. (343,204)
+-- (316,184)
+.. controls (314,183) and (314,181)
+.. (314,179)
+.. controls (314,177) and (315,176)
+.. (316,174)
+-- (337,149)
+.. controls (339,147) and (341,146)
+.. (343,146)
+.. controls (345,146) and (347,147)
+.. (349,149)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (189,158*FS#,207*FS#,142*FS#);
+"exclamdown";
+path P[];
+P1 = ((265,172)
+.. controls (267,174) and (267,175)
+.. (267,177)
+.. controls (267,179) and (265,181)
+.. (264,182)
+-- (244,203)
+.. controls (242,205) and (241,207)
+.. (239,207)
+.. controls (236,207) and (235,205)
+.. (233,203)
+-- (212,182)
+.. controls (211,181) and (210,180)
+.. (210,178)
+.. controls (210,176) and (210,174)
+.. (212,172)
+-- (233,150)
+.. controls (235,148) and (236,148)
+.. (238,148)
+.. controls (240,148) and (241,150)
+.. (243,151)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((212,141)
+.. controls (214,143) and (211,149)
+.. (207,149)
+.. controls (205,149) and (204,148)
+.. (203,147)
+-- (-85,-135)
+.. controls (-86,-136) and (-86,-138)
+.. (-86,-140)
+.. controls (-86,-143) and (-83,-142)
+.. (-80,-142)
+-- (-40,-142)
+.. controls (-33,-142) and (-30,-137)
+.. (-29,-135)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (19,230*FS#,188*FS#,0*FS#);
+"guillemotleft";
+path P[];
+P1 = ((189,188)
+.. controls (181,188) and (151,150)
+.. (110,127)
+.. controls (89,115) and (69,106)
+.. (69,99)
+.. controls (69,94) and (83,78)
+.. (97,58)
+.. controls (117,29) and (124,0)
+.. (134,0)
+.. controls (137,0) and (136,6)
+.. (136,9)
+.. controls (136,13) and (121,58)
+.. (106,81)
+.. controls (104,84) and (103,86)
+.. (103,89)
+.. controls (103,91) and (195,167)
+.. (195,183)
+.. controls (195,186) and (192,188)
+.. (189,188)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((286,185)
+.. controls (279,185) and (261,166)
+.. (228,141)
+.. controls (189,112) and (162,106)
+.. (162,99)
+.. controls (162,91) and (184,73)
+.. (205,35)
+.. controls (214,19) and (222,2)
+.. (224,2)
+.. controls (229,2) and (230,0)
+.. (230,8)
+.. controls (230,27) and (198,81)
+.. (198,89)
+.. controls (198,91) and (217,104)
+.. (236,123)
+.. controls (267,154) and (290,175)
+.. (290,179)
+.. controls (290,182) and (289,185)
+.. (286,185)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (20,231*FS#,188*FS#,0*FS#);
+"guillemotright";
+path P[];
+P1 = ((164,0)
+.. controls (172,0) and (202,37)
+.. (243,61)
+.. controls (264,73) and (284,82)
+.. (284,89)
+.. controls (284,94) and (270,109)
+.. (256,130)
+.. controls (236,160) and (229,188)
+.. (219,188)
+.. controls (215,188) and (217,183)
+.. (217,179)
+.. controls (217,174) and (233,130)
+.. (247,107)
+.. controls (249,104) and (250,102)
+.. (250,99)
+.. controls (250,97) and (159,21)
+.. (159,5)
+.. controls (159,2) and (161,0)
+.. (164,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((67,3)
+.. controls (74,3) and (92,23)
+.. (125,47)
+.. controls (164,76) and (191,82)
+.. (191,89)
+.. controls (191,97) and (169,114)
+.. (148,152)
+.. controls (139,168) and (131,186)
+.. (129,186)
+.. controls (124,186) and (123,188)
+.. (123,180)
+.. controls (123,161) and (155,107)
+.. (155,99)
+.. controls (155,97) and (136,83)
+.. (117,65)
+.. controls (86,34) and (63,13)
+.. (63,9)
+.. controls (63,6) and (64,3)
+.. (67,3)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (192,787*FS#,829*FS#,6*FS#);
+"Agrave";
+path P[];
+P1 = ((1316,829)
+.. controls (1299,829) and (1291,793)
+.. (1272,774)
+.. controls (1266,768) and (1255,761)
+.. (1255,751)
+.. controls (1255,749) and (1257,747)
+.. (1259,747)
+.. controls (1265,747) and (1339,781)
+.. (1339,808)
+.. controls (1339,820) and (1329,829)
+.. (1316,829)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((634,12)
+.. controls (633,10) and (633,9)
+.. (633,7)
+.. controls (633,4) and (636,3)
+.. (639,3)
+-- (682,0)
+.. controls (686,0) and (690,5)
+.. (691,6)
+-- (717,40)
+.. controls (807,47) and (854,86)
+.. (854,96)
+.. controls (854,98) and (854,100)
+.. (852,100)
+.. controls (846,100) and (838,92)
+.. (835,89)
+.. controls (817,73) and (778,60)
+.. (725,53)
+.. controls (740,79) and (806,162)
+.. (924,296)
+.. controls (978,357) and (1080,481)
+.. (1272,644)
+.. controls (1278,649) and (1289,652)
+.. (1289,663)
+.. controls (1289,667) and (1273,669)
+.. (1262,669)
+.. controls (1233,669) and (1111,634)
+.. (960,520)
+.. controls (842,431) and (770,355)
+.. (727,321)
+.. controls (687,436) and (616,500)
+.. (520,500)
+.. controls (457,500) and (397,430)
+.. (397,323)
+.. controls (397,250) and (436,173)
+.. (499,118)
+.. controls (444,65) and (337,8)
+.. (244,8)
+.. controls (152,8) and (96,55)
+.. (96,99)
+.. controls (96,108) and (101,116)
+.. (103,120)
+.. controls (109,99) and (121,87)
+.. (143,87)
+.. controls (161,87) and (174,104)
+.. (174,125)
+.. controls (174,147) and (155,161)
+.. (128,161)
+.. controls (100,161) and (83,137)
+.. (83,98)
+.. controls (83,47) and (151,-6)
+.. (245,-6)
+.. controls (329,-6) and (436,40)
+.. (509,109)
+.. controls (582,53) and (657,50)
+.. (657,45)
+.. controls (657,43) and (656,42)
+.. (655,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((719,294)
+.. controls (722,279) and (724,261)
+.. (724,244)
+.. controls (724,182) and (687,89)
+.. (665,57)
+.. controls (625,60) and (561,86)
+.. (521,117)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((511,125)
+.. controls (455,166) and (413,249)
+.. (413,323)
+.. controls (413,417) and (478,472)
+.. (535,472)
+.. controls (580,472) and (608,465)
+.. (643,432)
+.. controls (677,400) and (700,359)
+.. (715,310)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((704,107)
+.. controls (729,175) and (737,223)
+.. (737,231)
+.. controls (737,263) and (734,290)
+.. (731,295)
+.. controls (729,298) and (730,300)
+.. (730,304)
+.. controls (730,308) and (810,388)
+.. (970,511)
+.. controls (1083,598) and (1191,644)
+.. (1250,649)
+.. controls (1224,630) and (1151,586)
+.. (1042,482)
+.. controls (855,304) and (756,168)
+.. (704,107)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (195,791*FS#,786*FS#,6*FS#);
+"Atilde";
+path P[];
+P1 = ((1319,782)
+.. controls (1317,782) and (1316,781)
+.. (1314,780)
+.. controls (1308,777) and (1304,775)
+.. (1297,775)
+.. controls (1274,775) and (1257,786)
+.. (1236,786)
+.. controls (1214,786) and (1185,764)
+.. (1185,754)
+.. controls (1185,751) and (1187,750)
+.. (1190,750)
+.. controls (1195,750) and (1197,753)
+.. (1201,756)
+.. controls (1205,758) and (1207,758)
+.. (1211,758)
+.. controls (1224,758) and (1244,747)
+.. (1265,747)
+.. controls (1281,747) and (1323,764)
+.. (1323,780)
+.. controls (1323,782) and (1321,782)
+.. (1319,782)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((637,12)
+.. controls (636,10) and (636,9)
+.. (636,7)
+.. controls (636,4) and (639,3)
+.. (642,3)
+-- (685,0)
+.. controls (689,0) and (693,5)
+.. (694,6)
+-- (720,40)
+.. controls (810,47) and (857,86)
+.. (857,96)
+.. controls (857,98) and (857,100)
+.. (855,100)
+.. controls (849,100) and (841,92)
+.. (838,89)
+.. controls (820,73) and (781,60)
+.. (728,53)
+.. controls (743,79) and (809,162)
+.. (927,296)
+.. controls (981,357) and (1083,481)
+.. (1275,644)
+.. controls (1281,649) and (1292,652)
+.. (1292,663)
+.. controls (1292,667) and (1276,669)
+.. (1265,669)
+.. controls (1236,669) and (1114,634)
+.. (963,520)
+.. controls (845,431) and (773,355)
+.. (730,321)
+.. controls (690,436) and (619,500)
+.. (523,500)
+.. controls (460,500) and (400,430)
+.. (400,323)
+.. controls (400,250) and (439,173)
+.. (502,118)
+.. controls (447,65) and (340,8)
+.. (247,8)
+.. controls (155,8) and (99,55)
+.. (99,99)
+.. controls (99,108) and (104,116)
+.. (106,120)
+.. controls (112,99) and (124,87)
+.. (146,87)
+.. controls (164,87) and (177,104)
+.. (177,125)
+.. controls (177,147) and (158,161)
+.. (131,161)
+.. controls (103,161) and (86,137)
+.. (86,98)
+.. controls (86,47) and (154,-6)
+.. (248,-6)
+.. controls (332,-6) and (439,40)
+.. (512,109)
+.. controls (585,53) and (660,50)
+.. (660,45)
+.. controls (660,43) and (659,42)
+.. (658,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((722,294)
+.. controls (725,279) and (727,261)
+.. (727,244)
+.. controls (727,182) and (690,89)
+.. (668,57)
+.. controls (628,60) and (564,86)
+.. (524,117)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((514,125)
+.. controls (458,166) and (416,249)
+.. (416,323)
+.. controls (416,417) and (481,472)
+.. (538,472)
+.. controls (583,472) and (611,465)
+.. (646,432)
+.. controls (680,400) and (703,359)
+.. (718,310)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((707,107)
+.. controls (732,175) and (740,223)
+.. (740,231)
+.. controls (740,263) and (737,290)
+.. (734,295)
+.. controls (732,298) and (733,300)
+.. (733,304)
+.. controls (733,308) and (813,388)
+.. (973,511)
+.. controls (1086,598) and (1194,644)
+.. (1253,649)
+.. controls (1227,630) and (1154,586)
+.. (1045,482)
+.. controls (858,304) and (759,168)
+.. (707,107)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (213,587*FS#,786*FS#,7*FS#);
+"Otilde";
+path P[];
+P1 = ((867,782)
+.. controls (865,782) and (863,781)
+.. (861,780)
+.. controls (855,777) and (852,775)
+.. (845,775)
+.. controls (822,775) and (804,786)
+.. (783,786)
+.. controls (761,786) and (732,764)
+.. (732,754)
+.. controls (732,751) and (734,750)
+.. (737,750)
+.. controls (742,750) and (744,753)
+.. (748,756)
+.. controls (752,758) and (754,758)
+.. (758,758)
+.. controls (771,758) and (791,747)
+.. (812,747)
+.. controls (828,747) and (870,764)
+.. (870,780)
+.. controls (870,782) and (869,782)
+.. (867,782)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((800,671)
+.. controls (524,671) and (137,340)
+.. (137,126)
+.. controls (137,47) and (181,-7)
+.. (254,-7)
+.. controls (415,-7) and (789,331)
+.. (789,533)
+.. controls (789,585) and (759,619)
+.. (718,619)
+.. controls (587,619) and (472,481)
+.. (472,382)
+.. controls (472,343) and (492,319)
+.. (530,319)
+.. controls (598,319) and (691,393)
+.. (726,507)
+.. controls (733,529) and (739,541)
+.. (739,564)
+.. controls (739,569) and (739,581)
+.. (734,581)
+.. controls (728,581) and (726,571)
+.. (726,566)
+.. controls (724,542) and (709,485)
+.. (685,444)
+.. controls (645,375) and (573,331)
+.. (530,331)
+.. controls (502,331) and (485,349)
+.. (485,378)
+.. controls (485,420) and (511,461)
+.. (558,515)
+.. controls (609,574) and (658,605)
+.. (715,605)
+.. controls (749,605) and (776,576)
+.. (776,531)
+.. controls (776,341) and (412,7)
+.. (253,7)
+.. controls (209,7) and (167,35)
+.. (167,84)
+.. controls (167,143) and (211,226)
+.. (295,334)
+.. controls (464,551) and (641,659)
+.. (798,659)
+.. controls (878,659) and (925,621)
+.. (925,576)
+.. controls (925,526) and (870,493)
+.. (834,493)
+.. controls (818,493) and (802,496)
+.. (802,486)
+.. controls (802,480) and (820,479)
+.. (837,479)
+.. controls (872,479) and (938,511)
+.. (938,577)
+.. controls (938,630) and (890,671)
+.. (800,671)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (215,1306*FS#,707*FS#,7*FS#);
+"OE";
+path P[];
+P1 = ((637,256)
+.. controls (603,213) and (585,156)
+.. (585,116)
+.. controls (585,88) and (593,74)
+.. (609,51)
+.. controls (637,10) and (668,-6)
+.. (718,-6)
+.. controls (834,-6) and (1023,113)
+.. (1023,204)
+.. controls (1023,243) and (993,274)
+.. (956,274)
+.. controls (798,274) and (663,78)
+.. (663,70)
+.. controls (663,67) and (662,63)
+.. (665,63)
+.. controls (675,63) and (678,69)
+.. (682,75)
+.. controls (751,183) and (867,262)
+.. (956,262)
+.. controls (982,262) and (1007,236)
+.. (1007,211)
+.. controls (1007,121) and (834,6)
+.. (720,6)
+.. controls (650,6) and (615,44)
+.. (615,93)
+.. controls (615,145) and (650,228)
+.. (722,289)
+.. controls (789,346) and (872,375)
+.. (895,375)
+.. controls (904,375) and (907,374)
+.. (915,369)
+.. controls (939,354) and (955,352)
+.. (974,352)
+.. controls (982,352) and (991,357)
+.. (991,365)
+.. controls (991,381) and (967,393)
+.. (933,393)
+.. controls (925,393) and (910,390)
+.. (908,391)
+.. controls (906,392) and (892,407)
+.. (892,420)
+.. controls (892,424) and (1063,460)
+.. (1182,566)
+.. controls (1218,598) and (1239,629)
+.. (1239,659)
+.. controls (1239,687) and (1213,707)
+.. (1175,707)
+.. controls (1129,707) and (1031,670)
+.. (960,612)
+.. controls (898,561) and (867,497)
+.. (867,464)
+.. controls (867,455) and (872,439)
+.. (872,429)
+.. controls (872,426) and (797,403)
+.. (684,403)
+.. controls (680,403) and (673,400)
+.. (673,404)
+.. controls (673,409) and (676,412)
+.. (679,416)
+.. controls (693,436) and (713,498)
+.. (713,543)
+.. controls (713,597) and (681,630)
+.. (631,630)
+.. controls (534,630) and (402,490)
+.. (402,396)
+.. controls (402,357) and (426,329)
+.. (453,329)
+.. controls (500,329) and (532,348)
+.. (568,387)
+.. controls (630,453) and (661,532)
+.. (661,576)
+.. controls (661,580) and (662,588)
+.. (655,588)
+.. controls (647,588) and (648,578)
+.. (648,573)
+.. controls (648,538) and (617,459)
+.. (566,404)
+.. controls (527,362) and (484,341)
+.. (469,341)
+.. controls (435,341) and (418,356)
+.. (418,387)
+.. controls (418,465) and (539,618)
+.. (630,618)
+.. controls (676,618) and (700,588)
+.. (700,548)
+.. controls (700,444) and (617,310)
+.. (455,161)
+.. controls (346,61) and (255,7)
+.. (174,7)
+.. controls (132,7) and (100,42)
+.. (100,90)
+.. controls (100,162) and (174,305)
+.. (344,477)
+.. controls (464,599) and (578,670)
+.. (732,670)
+.. controls (800,670) and (848,640)
+.. (848,584)
+.. controls (848,551) and (796,512)
+.. (752,511)
+.. controls (745,511) and (733,510)
+.. (733,503)
+.. controls (733,498) and (740,496)
+.. (743,496)
+.. controls (776,496) and (819,512)
+.. (840,536)
+.. controls (859,558) and (861,577)
+.. (861,599)
+.. controls (861,639) and (816,682)
+.. (718,682)
+.. controls (644,682) and (543,652)
+.. (432,582)
+.. controls (196,434) and (73,260)
+.. (73,111)
+.. controls (73,50) and (116,-7)
+.. (188,-7)
+.. controls (214,-7) and (273,10)
+.. (335,49)
+.. controls (444,117) and (599,273)
+.. (661,382)
+.. controls (663,385) and (665,391)
+.. (672,391)
+.. controls (675,391) and (692,389)
+.. (706,389)
+.. controls (732,389) and (747,393)
+.. (773,396)
+.. controls (835,403) and (871,416)
+.. (875,416)
+.. controls (877,416) and (893,391)
+.. (893,389)
+.. controls (893,386) and (889,387)
+.. (886,386)
+.. controls (769,361) and (683,314)
+.. (637,256)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((892,434)
+.. controls (892,478) and (965,595)
+.. (1056,652)
+.. controls (1103,682) and (1156,695)
+.. (1174,695)
+.. controls (1199,695) and (1221,681)
+.. (1221,661)
+.. controls (1221,619) and (1161,550)
+.. (1038,489)
+.. controls (973,457) and (926,445)
+.. (903,436)
+.. controls (899,434) and (892,430)
+.. (892,434)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((924,378)
+.. controls (924,382) and (976,379)
+.. (976,368)
+.. controls (976,363) and (970,364)
+.. (965,364)
+.. controls (949,364) and (924,376)
+.. (924,378)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (247,359*FS#,194*FS#,7*FS#);
+"oe";
+path P[];
+P1 = ((208,60)
+.. controls (207,56) and (207,54)
+.. (207,50)
+.. controls (207,40) and (205,33)
+.. (208,23)
+.. controls (214,5) and (230,-7)
+.. (250,-7)
+.. controls (319,-7) and (428,84)
+.. (428,96)
+.. controls (428,98) and (427,100)
+.. (425,100)
+.. controls (422,100) and (420,99)
+.. (418,97)
+.. controls (400,81) and (371,49)
+.. (299,20)
+.. controls (283,13) and (273,7)
+.. (256,7)
+.. controls (244,7) and (231,6)
+.. (231,17)
+.. controls (231,27) and (235,35)
+.. (241,42)
+-- (271,78)
+.. controls (272,79) and (272,81)
+.. (274,82)
+.. controls (309,94) and (345,103)
+.. (378,127)
+.. controls (401,143) and (421,155)
+.. (421,173)
+.. controls (421,187) and (409,194)
+.. (393,194)
+.. controls (368,194) and (330,176)
+.. (283,146)
+.. controls (284,150) and (285,153)
+.. (285,157)
+.. controls (285,181) and (273,192)
+.. (249,192)
+.. controls (172,192) and (41,109)
+.. (41,37)
+.. controls (41,11) and (59,-7)
+.. (84,-7)
+.. controls (110,-7) and (157,16)
+.. (208,60)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((292,101)
+.. controls (334,149) and (389,181)
+.. (402,181)
+.. controls (410,181) and (408,174)
+.. (408,170)
+.. controls (408,163) and (349,112)
+.. (292,101)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((251,180)
+.. controls (262,180) and (272,175)
+.. (272,165)
+.. controls (272,160) and (273,158)
+.. (272,153)
+.. controls (262,117) and (145,5)
+.. (82,5)
+.. controls (74,5) and (65,11)
+.. (65,18)
+.. controls (65,49) and (188,180)
+.. (251,180)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (22,1099*FS#,142*FS#,0*FS#);
+"emdash";
+path P[];
+P1 = ((58,90)
+-- (1157,90)
+-- (1191,142)
+-- (94,142)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (16,165*FS#,667*FS#,0*FS#);
+"quotedblleft";
+path P[];
+P1 = ((513,582)
+.. controls (527,582) and (534,600)
+.. (542,613)
+.. controls (561,644) and (589,656)
+.. (589,661)
+.. controls (589,666) and (586,667)
+.. (582,667)
+.. controls (571,667) and (491,629)
+.. (491,606)
+.. controls (491,591) and (498,582)
+.. (513,582)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((424,582)
+.. controls (438,582) and (446,601)
+.. (454,613)
+.. controls (473,644) and (500,656)
+.. (500,661)
+.. controls (500,666) and (497,667)
+.. (493,667)
+.. controls (482,667) and (402,629)
+.. (402,606)
+.. controls (402,591) and (409,582)
+.. (424,582)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (17,164*FS#,667*FS#,0*FS#);
+"quotedblright";
+path P[];
+P1 = ((464,667)
+.. controls (450,667) and (443,649)
+.. (435,636)
+.. controls (416,605) and (388,593)
+.. (388,588)
+.. controls (388,583) and (391,582)
+.. (395,582)
+.. controls (406,582) and (486,621)
+.. (486,644)
+.. controls (486,659) and (479,667)
+.. (464,667)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((553,667)
+.. controls (539,667) and (531,649)
+.. (523,636)
+.. controls (504,605) and (477,593)
+.. (477,588)
+.. controls (477,583) and (480,582)
+.. (484,582)
+.. controls (495,582) and (575,621)
+.. (575,644)
+.. controls (575,659) and (568,667)
+.. (553,667)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (96,76*FS#,667*FS#,0*FS#);
+"quoteleft";
+path P[];
+P1 = ((424,582)
+.. controls (438,582) and (446,600)
+.. (454,613)
+.. controls (473,644) and (500,656)
+.. (500,661)
+.. controls (500,666) and (497,667)
+.. (493,667)
+.. controls (482,667) and (402,629)
+.. (402,606)
+.. controls (402,591) and (409,582)
+.. (424,582)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (39,78*FS#,667*FS#,0*FS#);
+"quoteright";
+path P[];
+P1 = ((465,667)
+.. controls (451,667) and (444,649)
+.. (436,636)
+.. controls (417,605) and (389,593)
+.. (389,588)
+.. controls (389,583) and (392,582)
+.. (396,582)
+.. controls (407,582) and (487,621)
+.. (487,644)
+.. controls (487,659) and (480,667)
+.. (465,667)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (184,358*FS#,300*FS#,223*FS#);
+"ydieresis";
+path P[];
+P1 = ((284,274)
+.. controls (283,273) and (282,272)
+.. (282,270)
+.. controls (282,269) and (282,269)
+.. (283,268)
+-- (302,252)
+.. controls (303,251) and (304,250)
+.. (306,250)
+.. controls (308,250) and (308,251)
+.. (309,252)
+-- (325,269)
+.. controls (326,270) and (327,272)
+.. (327,274)
+.. controls (327,276) and (327,278)
+.. (325,279)
+-- (307,294)
+.. controls (305,296) and (305,297)
+.. (302,297)
+.. controls (300,297) and (298,296)
+.. (297,294)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((353,278)
+.. controls (352,276) and (351,274)
+.. (351,272)
+.. controls (351,270) and (352,269)
+.. (353,268)
+-- (374,252)
+.. controls (375,251) and (376,250)
+.. (378,250)
+.. controls (380,250) and (380,252)
+.. (381,253)
+-- (390,272)
+.. controls (391,274) and (392,274)
+.. (392,276)
+.. controls (392,278) and (391,280)
+.. (390,281)
+-- (373,298)
+.. controls (371,300) and (369,300)
+.. (367,300)
+.. controls (365,300) and (364,300)
+.. (363,298)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((411,177)
+.. controls (413,179) and (412,181)
+.. (412,183)
+.. controls (412,185) and (409,186)
+.. (407,186)
+-- (367,186)
+.. controls (360,186) and (327,156)
+.. (268,100)
+.. controls (201,36) and (143,7)
+.. (134,7)
+.. controls (124,7) and (116,5)
+.. (116,17)
+.. controls (116,20) and (136,49)
+.. (174,78)
+.. controls (208,104) and (233,135)
+.. (233,165)
+.. controls (233,183) and (221,189)
+.. (201,189)
+.. controls (166,189) and (55,99)
+.. (55,90)
+.. controls (55,88) and (54,85)
+.. (56,85)
+.. controls (64,85) and (79,100)
+.. (104,122)
+.. controls (143,156) and (192,178)
+.. (203,178)
+.. controls (210,178) and (208,172)
+.. (208,168)
+.. controls (208,168) and (179,133)
+.. (125,88)
+.. controls (106,72) and (93,44)
+.. (93,21)
+.. controls (93,5) and (105,-7)
+.. (121,-7)
+.. controls (158,-7) and (211,34)
+.. (284,99)
+-- (155,-40)
+.. controls (141,-56) and (54,-64)
+.. (-43,-142)
+.. controls (-67,-161) and (-82,-175)
+.. (-82,-204)
+.. controls (-82,-214) and (-65,-223)
+.. (-46,-223)
+.. controls (5,-223) and (64,-170)
+.. (142,-104)
+.. controls (179,-73) and (191,-37)
+.. (214,-33)
+.. controls (237,-30) and (319,2)
+.. (389,61)
+.. controls (408,77) and (425,91)
+.. (425,96)
+.. controls (425,98) and (424,100)
+.. (422,100)
+.. controls (408,100) and (376,39)
+.. (224,-17)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((133,-64)
+.. controls (60,-158) and (-6,-211)
+.. (-52,-211)
+.. controls (-60,-211) and (-69,-209)
+.. (-69,-200)
+.. controls (-69,-170) and (19,-98)
+.. (133,-64)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (152,740*FS#,797*FS#,7*FS#);
+"Ydieresis";
+path P[];
+P1 = ((628,133)
+.. controls (561,61) and (464,5)
+.. (377,5)
+.. controls (361,5) and (352,4)
+.. (336,7)
+.. controls (302,13) and (277,37)
+.. (277,59)
+.. controls (277,82) and (278,101)
+.. (288,101)
+.. controls (292,101) and (293,97)
+.. (293,93)
+.. controls (294,83) and (305,81)
+.. (315,81)
+.. controls (333,81) and (347,94)
+.. (347,111)
+.. controls (347,126) and (331,141)
+.. (316,141)
+.. controls (281,141) and (261,110)
+.. (261,74)
+.. controls (261,21) and (299,-7)
+.. (376,-7)
+.. controls (466,-7) and (572,35)
+.. (656,109)
+.. controls (720,165) and (794,259)
+.. (896,356)
+-- (1081,531)
+.. controls (1083,533) and (1084,535)
+.. (1084,538)
+.. controls (1084,541) and (1080,542)
+.. (1077,542)
+-- (1037,542)
+.. controls (1031,542) and (1027,537)
+.. (1025,535)
+-- (858,376)
+.. controls (858,376) and (808,333)
+.. (717,260)
+.. controls (630,190) and (556,160)
+.. (523,160)
+.. controls (487,160) and (467,171)
+.. (467,196)
+.. controls (467,205) and (468,210)
+.. (474,217)
+.. controls (513,260) and (560,302)
+.. (615,341)
+.. controls (714,411) and (761,475)
+.. (761,548)
+.. controls (761,589) and (735,623)
+.. (693,638)
+.. controls (666,647) and (649,647)
+.. (621,647)
+.. controls (529,647) and (400,586)
+.. (347,523)
+.. controls (322,494) and (318,476)
+.. (318,444)
+.. controls (318,414) and (353,387)
+.. (404,387)
+.. controls (593,387) and (708,549)
+.. (708,557)
+.. controls (708,560) and (708,563)
+.. (705,563)
+.. controls (703,563) and (700,565)
+.. (698,563)
+.. controls (667,529) and (631,481)
+.. (541,438)
+.. controls (493,415) and (446,401)
+.. (400,401)
+.. controls (360,401) and (331,421)
+.. (331,452)
+.. controls (331,531) and (498,635)
+.. (626,635)
+.. controls (704,635) and (743,606)
+.. (743,565)
+.. controls (743,494) and (693,459)
+.. (580,369)
+.. controls (514,317) and (451,267)
+.. (451,203)
+.. controls (451,166) and (476,148)
+.. (523,148)
+.. controls (581,148) and (658,199)
+.. (767,283)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((931,771)
+.. controls (930,770) and (930,769)
+.. (930,767)
+.. controls (930,766) and (930,765)
+.. (931,764)
+-- (949,749)
+.. controls (950,748) and (951,747)
+.. (953,747)
+.. controls (955,747) and (955,748)
+.. (956,749)
+-- (972,766)
+.. controls (973,767) and (975,768)
+.. (975,770)
+.. controls (975,772) and (974,775)
+.. (972,776)
+-- (955,790)
+.. controls (953,792) and (952,794)
+.. (949,794)
+.. controls (947,794) and (946,792)
+.. (945,790)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((1001,774)
+.. controls (1000,772) and (998,771)
+.. (998,769)
+.. controls (998,767) and (1000,766)
+.. (1001,765)
+-- (1021,749)
+.. controls (1022,748) and (1023,747)
+.. (1025,747)
+.. controls (1027,747) and (1027,748)
+.. (1028,749)
+-- (1038,768)
+.. controls (1039,770) and (1040,771)
+.. (1040,773)
+.. controls (1040,775) and (1039,776)
+.. (1038,777)
+-- (1020,794)
+.. controls (1018,796) and (1017,797)
+.. (1015,797)
+.. controls (1013,797) and (1012,796)
+.. (1011,794)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (14,142*FS#,188*FS#,0*FS#);
+"guilsinglleft";
+path P[];
+P1 = ((190,188)
+.. controls (182,188) and (152,150)
+.. (111,127)
+.. controls (90,115) and (70,106)
+.. (70,99)
+.. controls (70,94) and (84,78)
+.. (98,58)
+.. controls (118,29) and (125,0)
+.. (135,0)
+.. controls (138,0) and (137,6)
+.. (137,9)
+.. controls (137,13) and (122,58)
+.. (107,81)
+.. controls (105,84) and (104,86)
+.. (104,89)
+.. controls (104,91) and (196,167)
+.. (196,183)
+.. controls (196,186) and (193,188)
+.. (190,188)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (15,142*FS#,183*FS#,0*FS#);
+"guilsinglright";
+path P[];
+P1 = ((67,0)
+.. controls (74,0) and (93,20)
+.. (125,44)
+.. controls (164,73) and (191,79)
+.. (191,86)
+.. controls (191,94) and (169,112)
+.. (148,149)
+.. controls (139,165) and (131,183)
+.. (129,183)
+.. controls (124,183) and (123,185)
+.. (123,177)
+.. controls (123,158) and (155,103)
+.. (155,96)
+.. controls (155,94) and (136,80)
+.. (117,62)
+.. controls (86,31) and (63,10)
+.. (63,6)
+.. controls (63,3) and (64,0)
+.. (67,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (28,336*FS#,525*FS#,232*FS#);
+"fi";
+path P[];
+P1 = ((475,315)
+.. controls (474,314) and (473,313)
+.. (473,311)
+.. controls (473,309) and (474,308)
+.. (475,307)
+-- (493,289)
+.. controls (494,288) and (496,288)
+.. (497,288)
+.. controls (499,288) and (499,288)
+.. (500,289)
+-- (516,308)
+.. controls (517,309) and (518,310)
+.. (518,312)
+.. controls (518,314) and (517,315)
+.. (516,316)
+-- (501,331)
+.. controls (500,332) and (500,333)
+.. (498,333)
+.. controls (496,333) and (494,332)
+.. (493,331)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((259,94)
+.. controls (246,81) and (227,50)
+.. (227,30)
+.. controls (227,5) and (238,-8)
+.. (263,-8)
+.. controls (304,-8) and (403,90)
+.. (403,96)
+.. controls (403,98) and (403,101)
+.. (401,100)
+.. controls (387,92) and (371,79)
+.. (359,67)
+.. controls (320,27) and (284,5)
+.. (264,5)
+.. controls (255,5) and (246,9)
+.. (246,18)
+.. controls (246,25) and (256,39)
+.. (264,47)
+-- (394,181)
+.. controls (396,183) and (396,185)
+.. (396,187)
+.. controls (396,189) and (393,191)
+.. (391,191)
+-- (354,191)
+.. controls (349,191) and (346,189)
+.. (343,187)
+-- (237,93)
+.. controls (217,75) and (192,65)
+.. (180,65)
+.. controls (169,65) and (157,63)
+.. (141,74)
+-- (278,228)
+.. controls (293,245) and (405,275)
+.. (536,378)
+.. controls (599,428) and (628,474)
+.. (628,494)
+.. controls (628,514) and (618,525)
+.. (598,525)
+.. controls (565,525) and (472,463)
+.. (348,341)
+-- (223,219)
+-- (156,174)
+.. controls (157,177) and (160,185)
+.. (160,192)
+.. controls (160,197) and (153,199)
+.. (149,199)
+.. controls (142,199) and (124,181)
+.. (108,141)
+.. controls (106,136) and (101,134)
+.. (100,133)
+-- (70,110)
+.. controls (69,109) and (64,105)
+.. (64,102)
+.. controls (64,100) and (64,98)
+.. (66,98)
+.. controls (70,98) and (74,101)
+.. (76,102)
+-- (96,118)
+.. controls (89,102) and (32,10)
+.. (-30,-56)
+-- (-186,-224)
+.. controls (-187,-225) and (-188,-227)
+.. (-188,-229)
+.. controls (-188,-231) and (-184,-232)
+.. (-182,-232)
+-- (-144,-232)
+.. controls (-139,-232) and (-134,-226)
+.. (-132,-224)
+-- (134,64)
+.. controls (142,59) and (154,53)
+.. (166,53)
+.. controls (210,53) and (224,69)
+.. (244,86)
+-- (286,123)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((437,399)
+.. controls (499,466) and (574,511)
+.. (594,511)
+.. controls (605,511) and (615,511)
+.. (615,498)
+.. controls (615,466) and (528,356)
+.. (303,255)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((103,103)
+-- (108,91)
+-- (66,45)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((119,102)
+.. controls (114,111) and (115,117)
+.. (115,123)
+.. controls (115,128) and (122,136)
+.. (125,138)
+-- (197,187)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (29,394*FS#,525*FS#,232*FS#);
+"fl";
+path P[];
+P1 = ((535,378)
+.. controls (598,428) and (627,474)
+.. (627,494)
+.. controls (627,514) and (617,525)
+.. (597,525)
+.. controls (564,525) and (471,463)
+.. (347,341)
+-- (222,219)
+-- (155,174)
+.. controls (156,177) and (159,185)
+.. (159,192)
+.. controls (159,197) and (152,199)
+.. (148,199)
+.. controls (140,199) and (115,169)
+.. (111,152)
+.. controls (109,143) and (105,137)
+.. (99,133)
+-- (70,110)
+.. controls (69,109) and (63,105)
+.. (63,102)
+.. controls (63,100) and (64,98)
+.. (66,98)
+.. controls (70,98) and (74,102)
+.. (76,103)
+-- (94,117)
+.. controls (91,106) and (35,14)
+.. (-31,-56)
+-- (-187,-224)
+.. controls (-188,-225) and (-189,-227)
+.. (-189,-229)
+.. controls (-189,-231) and (-185,-232)
+.. (-183,-232)
+-- (-145,-232)
+.. controls (-140,-232) and (-135,-226)
+.. (-133,-224)
+-- (128,61)
+.. controls (129,63) and (131,64)
+.. (133,64)
+.. controls (136,64) and (151,53)
+.. (165,53)
+.. controls (226,53) and (284,108)
+.. (332,147)
+.. controls (298,103) and (270,68)
+.. (270,36)
+.. controls (270,8) and (280,-6)
+.. (304,-6)
+.. controls (370,-6) and (460,93)
+.. (460,96)
+.. controls (460,98) and (460,100)
+.. (458,100)
+.. controls (455,100) and (452,99)
+.. (450,97)
+.. controls (387,40) and (342,6)
+.. (311,6)
+.. controls (299,6) and (289,7)
+.. (289,20)
+.. controls (289,28) and (311,64)
+.. (350,108)
+-- (463,236)
+.. controls (684,333) and (814,451)
+.. (814,494)
+.. controls (814,512) and (797,525)
+.. (776,525)
+.. controls (751,525) and (694,498)
+.. (636,450)
+.. controls (519,353) and (472,294)
+.. (470,292)
+-- (416,238)
+.. controls (399,220) and (386,201)
+.. (369,191)
+.. controls (343,176) and (312,136)
+.. (259,102)
+.. controls (222,78) and (191,65)
+.. (179,65)
+.. controls (155,65) and (140,70)
+.. (140,74)
+.. controls (140,76) and (141,77)
+.. (142,78)
+-- (277,228)
+.. controls (292,245) and (404,275)
+.. (535,378)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((118,102)
+.. controls (116,105) and (114,110)
+.. (114,116)
+.. controls (114,131) and (119,135)
+.. (124,138)
+-- (196,187)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((436,399)
+.. controls (498,466) and (573,511)
+.. (593,511)
+.. controls (604,511) and (614,511)
+.. (614,498)
+.. controls (614,466) and (527,356)
+.. (302,255)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((607,395)
+.. controls (670,466) and (743,513)
+.. (776,513)
+.. controls (788,513) and (798,507)
+.. (798,495)
+.. controls (798,462) and (672,340)
+.. (482,255)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((102,103)
+-- (107,91)
+-- (65,45)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (18,170*FS#,40*FS#,46*FS#);
+"quotedblbase";
+path P[];
+P1 = ((59,40)
+.. controls (45,40) and (38,22)
+.. (30,9)
+.. controls (11,-22) and (-17,-34)
+.. (-17,-39)
+.. controls (-17,-44) and (-14,-46)
+.. (-10,-46)
+.. controls (1,-46) and (81,-7)
+.. (81,16)
+.. controls (81,31) and (74,40)
+.. (59,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((148,40)
+.. controls (134,40) and (126,22)
+.. (118,9)
+.. controls (99,-21) and (72,-34)
+.. (72,-39)
+.. controls (72,-44) and (75,-46)
+.. (79,-46)
+.. controls (90,-46) and (170,-7)
+.. (170,16)
+.. controls (170,31) and (163,40)
+.. (148,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (194,789*FS#,827*FS#,6*FS#);
+"Acircumflex";
+path P[];
+P1 = ((1246,786)
+.. controls (1244,780) and (1241,773)
+.. (1241,763)
+.. controls (1241,754) and (1253,747)
+.. (1264,747)
+.. controls (1286,747) and (1361,807)
+.. (1361,814)
+.. controls (1361,816) and (1362,820)
+.. (1360,820)
+.. controls (1349,820) and (1341,808)
+.. (1334,802)
+.. controls (1302,775) and (1274,759)
+.. (1270,759)
+.. controls (1267,759) and (1262,757)
+.. (1262,760)
+.. controls (1262,772) and (1277,781)
+.. (1299,793)
+.. controls (1304,796) and (1307,801)
+.. (1307,807)
+.. controls (1307,821) and (1303,827)
+.. (1289,827)
+.. controls (1275,827) and (1264,815)
+.. (1255,808)
+.. controls (1209,773) and (1178,758)
+.. (1178,753)
+.. controls (1178,749) and (1178,747)
+.. (1184,747)
+.. controls (1194,747) and (1224,774)
+.. (1246,786)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((636,12)
+.. controls (635,10) and (635,9)
+.. (635,7)
+.. controls (635,4) and (638,3)
+.. (641,3)
+-- (684,0)
+.. controls (688,0) and (692,5)
+.. (693,6)
+-- (719,40)
+.. controls (809,47) and (856,86)
+.. (856,96)
+.. controls (856,98) and (856,100)
+.. (854,100)
+.. controls (848,100) and (840,92)
+.. (837,89)
+.. controls (819,73) and (780,60)
+.. (727,53)
+.. controls (742,79) and (808,162)
+.. (926,296)
+.. controls (980,357) and (1082,481)
+.. (1274,644)
+.. controls (1280,649) and (1291,652)
+.. (1291,663)
+.. controls (1291,667) and (1275,669)
+.. (1264,669)
+.. controls (1235,669) and (1113,634)
+.. (962,520)
+.. controls (844,431) and (772,355)
+.. (729,321)
+.. controls (689,436) and (618,500)
+.. (522,500)
+.. controls (459,500) and (399,430)
+.. (399,323)
+.. controls (399,250) and (438,173)
+.. (501,118)
+.. controls (446,65) and (339,8)
+.. (246,8)
+.. controls (154,8) and (98,55)
+.. (98,99)
+.. controls (98,108) and (103,116)
+.. (105,120)
+.. controls (111,99) and (123,87)
+.. (145,87)
+.. controls (163,87) and (176,104)
+.. (176,125)
+.. controls (176,147) and (157,161)
+.. (130,161)
+.. controls (102,161) and (85,137)
+.. (85,98)
+.. controls (85,47) and (153,-6)
+.. (247,-6)
+.. controls (331,-6) and (438,40)
+.. (511,109)
+.. controls (584,53) and (659,50)
+.. (659,45)
+.. controls (659,43) and (658,42)
+.. (657,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((721,294)
+.. controls (724,279) and (726,261)
+.. (726,244)
+.. controls (726,182) and (689,89)
+.. (667,57)
+.. controls (627,60) and (563,86)
+.. (523,117)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((513,125)
+.. controls (457,166) and (415,249)
+.. (415,323)
+.. controls (415,417) and (480,472)
+.. (537,472)
+.. controls (582,472) and (610,465)
+.. (645,432)
+.. controls (679,400) and (702,359)
+.. (717,310)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((706,107)
+.. controls (731,175) and (739,223)
+.. (739,231)
+.. controls (739,263) and (736,290)
+.. (733,295)
+.. controls (731,298) and (732,300)
+.. (732,304)
+.. controls (732,308) and (812,388)
+.. (972,511)
+.. controls (1085,598) and (1193,644)
+.. (1252,649)
+.. controls (1226,630) and (1153,586)
+.. (1044,482)
+.. controls (857,304) and (758,168)
+.. (706,107)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (202,681*FS#,827*FS#,7*FS#);
+"Ecircumflex";
+path P[];
+P1 = ((665,383)
+.. controls (665,380) and (659,381)
+.. (656,381)
+.. controls (617,379) and (515,348)
+.. (448,305)
+.. controls (371,255) and (335,182)
+.. (335,138)
+.. controls (335,40) and (380,-7)
+.. (492,-7)
+.. controls (597,-7) and (785,86)
+.. (785,200)
+.. controls (785,241) and (754,264)
+.. (700,264)
+.. controls (590,264) and (415,101)
+.. (415,69)
+.. controls (415,67) and (415,65)
+.. (417,65)
+.. controls (425,65) and (427,70)
+.. (430,75)
+.. controls (436,86) and (480,139)
+.. (547,188)
+.. controls (605,231) and (671,252)
+.. (700,252)
+.. controls (744,252) and (772,240)
+.. (772,197)
+.. controls (772,106) and (603,5)
+.. (478,5)
+.. controls (408,5) and (367,41)
+.. (367,77)
+.. controls (367,189) and (509,342)
+.. (642,367)
+.. controls (651,369) and (668,372)
+.. (674,372)
+.. controls (679,372) and (681,367)
+.. (685,363)
+.. controls (698,348) and (723,338)
+.. (746,338)
+.. controls (755,338) and (764,344)
+.. (764,353)
+.. controls (764,378) and (736,386)
+.. (688,386)
+.. controls (684,386) and (668,380)
+.. (668,413)
+.. controls (668,415) and (718,426)
+.. (810,460)
+.. controls (944,510) and (1028,589)
+.. (1028,649)
+.. controls (1028,679) and (1002,695)
+.. (955,695)
+.. controls (887,695) and (744,630)
+.. (681,551)
+.. controls (656,519) and (641,479)
+.. (641,457)
+.. controls (641,446) and (645,430)
+.. (645,423)
+.. controls (645,420) and (596,406)
+.. (507,406)
+.. controls (446,406) and (382,444)
+.. (382,504)
+.. controls (382,567) and (448,638)
+.. (551,673)
+.. controls (605,691) and (647,691)
+.. (675,693)
+.. controls (679,693) and (685,694)
+.. (685,700)
+.. controls (685,705) and (674,706)
+.. (670,706)
+.. controls (583,706) and (482,674)
+.. (422,626)
+.. controls (373,587) and (361,552)
+.. (361,503)
+.. controls (361,452) and (424,394)
+.. (504,394)
+.. controls (596,394) and (637,410)
+.. (649,410)
+.. controls (650,410) and (665,386)
+.. (665,383)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((972,786)
+.. controls (970,780) and (968,773)
+.. (968,763)
+.. controls (968,754) and (980,747)
+.. (991,747)
+.. controls (1014,747) and (1088,807)
+.. (1088,814)
+.. controls (1088,816) and (1088,820)
+.. (1086,820)
+.. controls (1075,820) and (1067,808)
+.. (1060,802)
+.. controls (1028,775) and (1001,759)
+.. (997,759)
+.. controls (994,759) and (988,757)
+.. (988,760)
+.. controls (988,772) and (1003,781)
+.. (1025,793)
+.. controls (1030,796) and (1033,801)
+.. (1033,807)
+.. controls (1033,821) and (1029,827)
+.. (1015,827)
+.. controls (1001,827) and (990,815)
+.. (981,808)
+.. controls (935,773) and (905,758)
+.. (905,753)
+.. controls (905,749) and (905,747)
+.. (911,747)
+.. controls (921,747) and (950,774)
+.. (972,786)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((689,373)
+.. controls (693,374) and (696,374)
+.. (700,374)
+.. controls (723,374) and (752,367)
+.. (752,357)
+.. controls (752,345) and (706,353)
+.. (689,373)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((671,428)
+.. controls (671,498) and (840,683)
+.. (966,683)
+.. controls (994,683) and (1015,669)
+.. (1015,646)
+.. controls (1015,614) and (984,575)
+.. (928,536)
+.. controls (833,470) and (743,451)
+.. (682,430)
+.. controls (677,428) and (671,423)
+.. (671,428)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (193,792*FS#,827*FS#,6*FS#);
+"Aacute";
+path P[];
+P1 = ((1323,827)
+.. controls (1306,827) and (1298,791)
+.. (1279,772)
+.. controls (1273,766) and (1261,759)
+.. (1261,749)
+.. controls (1261,747) and (1264,747)
+.. (1266,747)
+.. controls (1279,747) and (1345,780)
+.. (1345,806)
+.. controls (1345,818) and (1335,827)
+.. (1323,827)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((639,12)
+.. controls (638,10) and (638,9)
+.. (638,7)
+.. controls (638,4) and (641,3)
+.. (644,3)
+-- (687,0)
+.. controls (691,0) and (695,5)
+.. (696,6)
+-- (722,40)
+.. controls (812,47) and (859,86)
+.. (859,96)
+.. controls (859,98) and (859,100)
+.. (857,100)
+.. controls (851,100) and (843,92)
+.. (840,89)
+.. controls (822,73) and (783,60)
+.. (730,53)
+.. controls (745,79) and (811,162)
+.. (929,296)
+.. controls (983,357) and (1085,481)
+.. (1277,644)
+.. controls (1283,649) and (1294,652)
+.. (1294,663)
+.. controls (1294,667) and (1278,669)
+.. (1267,669)
+.. controls (1238,669) and (1116,634)
+.. (965,520)
+.. controls (847,431) and (775,355)
+.. (732,321)
+.. controls (692,436) and (621,500)
+.. (525,500)
+.. controls (462,500) and (402,430)
+.. (402,323)
+.. controls (402,250) and (441,173)
+.. (504,118)
+.. controls (449,65) and (342,8)
+.. (249,8)
+.. controls (157,8) and (101,55)
+.. (101,99)
+.. controls (101,108) and (106,116)
+.. (108,120)
+.. controls (114,99) and (126,87)
+.. (148,87)
+.. controls (166,87) and (179,104)
+.. (179,125)
+.. controls (179,147) and (160,161)
+.. (133,161)
+.. controls (105,161) and (88,137)
+.. (88,98)
+.. controls (88,47) and (156,-6)
+.. (250,-6)
+.. controls (334,-6) and (441,40)
+.. (514,109)
+.. controls (587,53) and (662,50)
+.. (662,45)
+.. controls (662,43) and (661,42)
+.. (660,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((724,294)
+.. controls (727,279) and (729,261)
+.. (729,244)
+.. controls (729,182) and (692,89)
+.. (670,57)
+.. controls (630,60) and (566,86)
+.. (526,117)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((516,125)
+.. controls (460,166) and (418,249)
+.. (418,323)
+.. controls (418,417) and (483,472)
+.. (540,472)
+.. controls (585,472) and (613,465)
+.. (648,432)
+.. controls (682,400) and (705,359)
+.. (720,310)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((709,107)
+.. controls (734,175) and (742,223)
+.. (742,231)
+.. controls (742,263) and (739,290)
+.. (736,295)
+.. controls (734,298) and (735,300)
+.. (735,304)
+.. controls (735,308) and (815,388)
+.. (975,511)
+.. controls (1088,598) and (1196,644)
+.. (1255,649)
+.. controls (1229,630) and (1156,586)
+.. (1047,482)
+.. controls (860,304) and (761,168)
+.. (709,107)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (203,682*FS#,797*FS#,7*FS#);
+"Edieresis";
+path P[];
+P1 = ((666,383)
+.. controls (666,380) and (660,381)
+.. (657,381)
+.. controls (618,379) and (516,348)
+.. (449,305)
+.. controls (372,255) and (336,182)
+.. (336,138)
+.. controls (336,40) and (381,-7)
+.. (493,-7)
+.. controls (598,-7) and (786,86)
+.. (786,200)
+.. controls (786,241) and (755,264)
+.. (701,264)
+.. controls (591,264) and (416,101)
+.. (416,69)
+.. controls (416,67) and (416,65)
+.. (418,65)
+.. controls (426,65) and (428,70)
+.. (431,75)
+.. controls (437,86) and (481,139)
+.. (548,188)
+.. controls (606,231) and (672,252)
+.. (701,252)
+.. controls (745,252) and (773,240)
+.. (773,197)
+.. controls (773,106) and (604,5)
+.. (479,5)
+.. controls (409,5) and (368,41)
+.. (368,77)
+.. controls (368,189) and (510,342)
+.. (643,367)
+.. controls (652,369) and (669,372)
+.. (675,372)
+.. controls (680,372) and (682,367)
+.. (686,363)
+.. controls (699,348) and (724,338)
+.. (747,338)
+.. controls (756,338) and (765,344)
+.. (765,353)
+.. controls (765,378) and (737,386)
+.. (689,386)
+.. controls (685,386) and (669,380)
+.. (669,413)
+.. controls (669,415) and (719,426)
+.. (811,460)
+.. controls (945,510) and (1029,589)
+.. (1029,649)
+.. controls (1029,679) and (1003,695)
+.. (956,695)
+.. controls (888,695) and (745,630)
+.. (682,551)
+.. controls (657,519) and (642,479)
+.. (642,457)
+.. controls (642,446) and (646,430)
+.. (646,423)
+.. controls (646,420) and (597,406)
+.. (508,406)
+.. controls (447,406) and (383,444)
+.. (383,504)
+.. controls (383,567) and (449,638)
+.. (552,673)
+.. controls (606,691) and (648,691)
+.. (676,693)
+.. controls (680,693) and (686,694)
+.. (686,700)
+.. controls (686,705) and (675,706)
+.. (671,706)
+.. controls (584,706) and (483,674)
+.. (423,626)
+.. controls (374,587) and (362,552)
+.. (362,503)
+.. controls (362,452) and (425,394)
+.. (505,394)
+.. controls (597,394) and (638,410)
+.. (650,410)
+.. controls (651,410) and (666,386)
+.. (666,383)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((921,771)
+.. controls (920,770) and (919,769)
+.. (919,767)
+.. controls (919,766) and (919,765)
+.. (920,764)
+-- (939,749)
+.. controls (940,748) and (941,747)
+.. (943,747)
+.. controls (945,747) and (945,748)
+.. (946,749)
+-- (962,766)
+.. controls (963,767) and (964,768)
+.. (964,770)
+.. controls (964,772) and (964,775)
+.. (962,776)
+-- (945,790)
+.. controls (943,792) and (942,794)
+.. (939,794)
+.. controls (937,794) and (935,792)
+.. (934,790)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((990,774)
+.. controls (989,772) and (988,771)
+.. (988,769)
+.. controls (988,767) and (989,766)
+.. (990,765)
+-- (1011,749)
+.. controls (1012,748) and (1013,747)
+.. (1015,747)
+.. controls (1017,747) and (1017,748)
+.. (1018,749)
+-- (1028,768)
+.. controls (1029,770) and (1029,771)
+.. (1029,773)
+.. controls (1029,775) and (1029,776)
+.. (1028,777)
+-- (1010,794)
+.. controls (1008,796) and (1007,797)
+.. (1005,797)
+.. controls (1003,797) and (1001,796)
+.. (1000,794)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((672,428)
+.. controls (672,498) and (841,683)
+.. (967,683)
+.. controls (995,683) and (1016,669)
+.. (1016,646)
+.. controls (1016,614) and (985,575)
+.. (929,536)
+.. controls (834,470) and (744,451)
+.. (683,430)
+.. controls (678,428) and (672,423)
+.. (672,428)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((690,373)
+.. controls (694,374) and (697,374)
+.. (701,374)
+.. controls (724,374) and (753,367)
+.. (753,357)
+.. controls (753,345) and (707,353)
+.. (690,373)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (200,684*FS#,834*FS#,7*FS#);
+"Egrave";
+path P[];
+P1 = ((666,383)
+.. controls (666,380) and (660,381)
+.. (657,381)
+.. controls (618,379) and (516,348)
+.. (449,305)
+.. controls (372,255) and (336,182)
+.. (336,138)
+.. controls (336,40) and (381,-7)
+.. (493,-7)
+.. controls (598,-7) and (786,86)
+.. (786,200)
+.. controls (786,241) and (755,264)
+.. (701,264)
+.. controls (591,264) and (416,101)
+.. (416,69)
+.. controls (416,67) and (416,65)
+.. (418,65)
+.. controls (426,65) and (428,70)
+.. (431,75)
+.. controls (437,86) and (481,139)
+.. (548,188)
+.. controls (606,231) and (672,252)
+.. (701,252)
+.. controls (745,252) and (773,240)
+.. (773,197)
+.. controls (773,106) and (604,5)
+.. (479,5)
+.. controls (409,5) and (368,41)
+.. (368,77)
+.. controls (368,189) and (510,342)
+.. (643,367)
+.. controls (652,369) and (669,372)
+.. (675,372)
+.. controls (680,372) and (682,367)
+.. (686,363)
+.. controls (699,348) and (724,338)
+.. (747,338)
+.. controls (756,338) and (765,344)
+.. (765,353)
+.. controls (765,378) and (737,386)
+.. (689,386)
+.. controls (685,386) and (669,380)
+.. (669,413)
+.. controls (669,415) and (719,426)
+.. (811,460)
+.. controls (945,510) and (1029,589)
+.. (1029,649)
+.. controls (1029,679) and (1003,695)
+.. (956,695)
+.. controls (888,695) and (745,630)
+.. (682,551)
+.. controls (657,519) and (642,479)
+.. (642,457)
+.. controls (642,446) and (646,430)
+.. (646,423)
+.. controls (646,420) and (597,406)
+.. (508,406)
+.. controls (447,406) and (383,444)
+.. (383,504)
+.. controls (383,567) and (449,638)
+.. (552,673)
+.. controls (606,691) and (648,691)
+.. (676,693)
+.. controls (680,693) and (686,694)
+.. (686,700)
+.. controls (686,705) and (675,706)
+.. (671,706)
+.. controls (584,706) and (483,674)
+.. (423,626)
+.. controls (374,587) and (362,552)
+.. (362,503)
+.. controls (362,452) and (425,394)
+.. (505,394)
+.. controls (597,394) and (638,410)
+.. (650,410)
+.. controls (651,410) and (666,386)
+.. (666,383)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((928,834)
+.. controls (915,834) and (908,827)
+.. (908,813)
+.. controls (908,795) and (965,747)
+.. (986,747)
+.. controls (988,747) and (991,747)
+.. (991,749)
+.. controls (991,757) and (978,765)
+.. (964,783)
+.. controls (941,813) and (949,834)
+.. (928,834)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((690,373)
+.. controls (694,374) and (697,374)
+.. (701,374)
+.. controls (724,374) and (753,367)
+.. (753,357)
+.. controls (753,345) and (707,353)
+.. (690,373)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((672,428)
+.. controls (672,498) and (841,683)
+.. (967,683)
+.. controls (995,683) and (1016,669)
+.. (1016,646)
+.. controls (1016,614) and (985,575)
+.. (929,536)
+.. controls (834,470) and (744,451)
+.. (683,430)
+.. controls (678,428) and (672,423)
+.. (672,428)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (205,598*FS#,827*FS#,7*FS#);
+"Iacute";
+path P[];
+P1 = ((1051,827)
+.. controls (1034,827) and (1026,791)
+.. (1007,772)
+.. controls (1001,766) and (989,759)
+.. (989,749)
+.. controls (989,747) and (992,747)
+.. (994,747)
+.. controls (1007,747) and (1073,780)
+.. (1073,806)
+.. controls (1073,818) and (1063,827)
+.. (1051,827)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((91,72)
+.. controls (97,68) and (106,64)
+.. (120,64)
+.. controls (136,64) and (150,81)
+.. (150,98)
+.. controls (150,117) and (133,132)
+.. (112,132)
+.. controls (90,132) and (69,112)
+.. (69,91)
+.. controls (69,27) and (125,-7)
+.. (229,-7)
+.. controls (299,-7) and (404,25)
+.. (485,78)
+.. controls (623,168) and (667,309)
+.. (694,309)
+.. controls (698,309) and (700,308)
+.. (704,308)
+.. controls (744,308) and (825,348)
+.. (881,424)
+.. controls (901,451) and (913,476)
+.. (913,479)
+.. controls (913,481) and (912,484)
+.. (910,484)
+.. controls (903,484) and (890,464)
+.. (868,429)
+.. controls (833,373) and (743,320)
+.. (703,320)
+-- (693,320)
+.. controls (695,323) and (696,325)
+.. (698,328)
+.. controls (737,389) and (784,458)
+.. (852,522)
+.. controls (948,613) and (1035,622)
+.. (1099,633)
+.. controls (1102,634) and (1104,638)
+.. (1104,641)
+.. controls (1104,647) and (1073,653)
+.. (1042,653)
+.. controls (875,653) and (724,604)
+.. (649,550)
+.. controls (584,503) and (552,449)
+.. (552,383)
+.. controls (552,350) and (576,322)
+.. (624,305)
+.. controls (625,305) and (625,305)
+.. (625,304)
+.. controls (625,300) and (622,297)
+.. (618,295)
+.. controls (603,287) and (457,5)
+.. (226,5)
+.. controls (140,5) and (91,39)
+.. (91,62)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((1041,637)
+.. controls (1008,627) and (956,615)
+.. (886,571)
+.. controls (757,489) and (693,399)
+.. (639,327)
+.. controls (638,325) and (633,318)
+.. (629,318)
+.. controls (617,318) and (568,338)
+.. (568,385)
+.. controls (568,493) and (757,639)
+.. (1021,639)
+.. controls (1029,639) and (1033,638)
+.. (1041,637)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (206,597*FS#,827*FS#,7*FS#);
+"Icircumflex";
+path P[];
+P1 = ((1002,786)
+.. controls (1000,780) and (998,773)
+.. (998,763)
+.. controls (998,754) and (1009,747)
+.. (1020,747)
+.. controls (1043,747) and (1117,807)
+.. (1117,814)
+.. controls (1117,816) and (1118,820)
+.. (1116,820)
+.. controls (1105,820) and (1097,808)
+.. (1090,802)
+.. controls (1058,775) and (1030,759)
+.. (1026,759)
+.. controls (1023,759) and (1018,757)
+.. (1018,760)
+.. controls (1018,772) and (1033,781)
+.. (1055,793)
+.. controls (1060,796) and (1063,801)
+.. (1063,807)
+.. controls (1063,821) and (1059,827)
+.. (1045,827)
+.. controls (1031,827) and (1020,815)
+.. (1011,808)
+.. controls (965,773) and (934,758)
+.. (934,753)
+.. controls (934,749) and (935,747)
+.. (941,747)
+.. controls (951,747) and (980,774)
+.. (1002,786)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((90,72)
+.. controls (96,68) and (105,64)
+.. (119,64)
+.. controls (135,64) and (149,81)
+.. (149,98)
+.. controls (149,117) and (132,132)
+.. (111,132)
+.. controls (89,132) and (68,112)
+.. (68,91)
+.. controls (68,27) and (124,-7)
+.. (228,-7)
+.. controls (298,-7) and (403,25)
+.. (484,78)
+.. controls (622,168) and (666,309)
+.. (693,309)
+.. controls (697,309) and (699,308)
+.. (703,308)
+.. controls (743,308) and (824,348)
+.. (880,424)
+.. controls (900,451) and (912,476)
+.. (912,479)
+.. controls (912,481) and (911,484)
+.. (909,484)
+.. controls (902,484) and (889,464)
+.. (867,429)
+.. controls (832,373) and (742,320)
+.. (702,320)
+-- (692,320)
+.. controls (694,323) and (695,325)
+.. (697,328)
+.. controls (736,389) and (783,458)
+.. (851,522)
+.. controls (947,613) and (1034,622)
+.. (1098,633)
+.. controls (1101,634) and (1103,638)
+.. (1103,641)
+.. controls (1103,647) and (1072,653)
+.. (1041,653)
+.. controls (874,653) and (723,604)
+.. (648,550)
+.. controls (583,503) and (551,449)
+.. (551,383)
+.. controls (551,350) and (575,322)
+.. (623,305)
+.. controls (624,305) and (624,305)
+.. (624,304)
+.. controls (624,300) and (621,297)
+.. (617,295)
+.. controls (602,287) and (456,5)
+.. (225,5)
+.. controls (139,5) and (90,39)
+.. (90,62)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((1040,637)
+.. controls (1007,627) and (955,615)
+.. (885,571)
+.. controls (756,489) and (692,399)
+.. (638,327)
+.. controls (637,325) and (632,318)
+.. (628,318)
+.. controls (616,318) and (567,338)
+.. (567,385)
+.. controls (567,493) and (756,639)
+.. (1020,639)
+.. controls (1028,639) and (1032,638)
+.. (1040,637)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (207,597*FS#,797*FS#,7*FS#);
+"Idieresis";
+path P[];
+P1 = ((974,771)
+.. controls (973,770) and (972,769)
+.. (972,767)
+.. controls (972,766) and (972,765)
+.. (973,764)
+-- (992,749)
+.. controls (993,748) and (994,747)
+.. (996,747)
+.. controls (998,747) and (998,748)
+.. (999,749)
+-- (1015,766)
+.. controls (1016,767) and (1017,768)
+.. (1017,770)
+.. controls (1017,772) and (1017,775)
+.. (1015,776)
+-- (997,790)
+.. controls (995,792) and (995,794)
+.. (992,794)
+.. controls (990,794) and (988,792)
+.. (987,790)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1043,774)
+.. controls (1042,772) and (1041,771)
+.. (1041,769)
+.. controls (1041,767) and (1042,766)
+.. (1043,765)
+-- (1064,749)
+.. controls (1065,748) and (1066,747)
+.. (1068,747)
+.. controls (1070,747) and (1070,748)
+.. (1071,749)
+-- (1080,768)
+.. controls (1081,770) and (1082,771)
+.. (1082,773)
+.. controls (1082,775) and (1081,776)
+.. (1080,777)
+-- (1063,794)
+.. controls (1061,796) and (1059,797)
+.. (1057,797)
+.. controls (1055,797) and (1054,796)
+.. (1053,794)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((90,72)
+.. controls (96,68) and (105,64)
+.. (119,64)
+.. controls (135,64) and (149,81)
+.. (149,98)
+.. controls (149,117) and (132,132)
+.. (111,132)
+.. controls (89,132) and (68,112)
+.. (68,91)
+.. controls (68,27) and (124,-7)
+.. (228,-7)
+.. controls (298,-7) and (403,25)
+.. (484,78)
+.. controls (622,168) and (666,309)
+.. (693,309)
+.. controls (697,309) and (699,308)
+.. (703,308)
+.. controls (743,308) and (824,348)
+.. (880,424)
+.. controls (900,451) and (912,476)
+.. (912,479)
+.. controls (912,481) and (911,484)
+.. (909,484)
+.. controls (902,484) and (889,464)
+.. (867,429)
+.. controls (832,373) and (742,320)
+.. (702,320)
+-- (692,320)
+.. controls (694,323) and (695,325)
+.. (697,328)
+.. controls (736,389) and (783,458)
+.. (851,522)
+.. controls (947,613) and (1034,622)
+.. (1098,633)
+.. controls (1101,634) and (1103,638)
+.. (1103,641)
+.. controls (1103,647) and (1072,653)
+.. (1041,653)
+.. controls (874,653) and (723,604)
+.. (648,550)
+.. controls (583,503) and (551,449)
+.. (551,383)
+.. controls (551,350) and (575,322)
+.. (623,305)
+.. controls (624,305) and (624,305)
+.. (624,304)
+.. controls (624,300) and (621,297)
+.. (617,295)
+.. controls (602,287) and (456,5)
+.. (225,5)
+.. controls (139,5) and (90,39)
+.. (90,62)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((1040,637)
+.. controls (1007,627) and (955,615)
+.. (885,571)
+.. controls (756,489) and (692,399)
+.. (638,327)
+.. controls (637,325) and (632,318)
+.. (628,318)
+.. controls (616,318) and (567,338)
+.. (567,385)
+.. controls (567,493) and (756,639)
+.. (1020,639)
+.. controls (1028,639) and (1032,638)
+.. (1040,637)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (204,597*FS#,834*FS#,7*FS#);
+"Igrave";
+path P[];
+P1 = ((974,834)
+.. controls (961,834) and (953,827)
+.. (953,813)
+.. controls (953,796) and (1010,747)
+.. (1032,747)
+.. controls (1034,747) and (1036,747)
+.. (1036,749)
+.. controls (1036,760) and (1003,781)
+.. (994,810)
+.. controls (990,822) and (989,834)
+.. (974,834)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((90,72)
+.. controls (96,68) and (105,64)
+.. (119,64)
+.. controls (135,64) and (149,81)
+.. (149,98)
+.. controls (149,117) and (132,132)
+.. (111,132)
+.. controls (89,132) and (68,112)
+.. (68,91)
+.. controls (68,27) and (124,-7)
+.. (228,-7)
+.. controls (298,-7) and (403,25)
+.. (484,78)
+.. controls (622,168) and (666,309)
+.. (693,309)
+.. controls (697,309) and (699,308)
+.. (703,308)
+.. controls (743,308) and (824,348)
+.. (880,424)
+.. controls (900,451) and (912,476)
+.. (912,479)
+.. controls (912,481) and (911,484)
+.. (909,484)
+.. controls (902,484) and (889,464)
+.. (867,429)
+.. controls (832,373) and (742,320)
+.. (702,320)
+-- (692,320)
+.. controls (694,323) and (695,325)
+.. (697,328)
+.. controls (736,389) and (783,458)
+.. (851,522)
+.. controls (947,613) and (1034,622)
+.. (1098,633)
+.. controls (1101,634) and (1103,638)
+.. (1103,641)
+.. controls (1103,647) and (1072,653)
+.. (1041,653)
+.. controls (874,653) and (723,604)
+.. (648,550)
+.. controls (583,503) and (551,449)
+.. (551,383)
+.. controls (551,350) and (575,322)
+.. (623,305)
+.. controls (624,305) and (624,305)
+.. (624,304)
+.. controls (624,300) and (621,297)
+.. (617,295)
+.. controls (602,287) and (456,5)
+.. (225,5)
+.. controls (139,5) and (90,39)
+.. (90,62)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((1040,637)
+.. controls (1007,627) and (955,615)
+.. (885,571)
+.. controls (756,489) and (692,399)
+.. (638,327)
+.. controls (637,325) and (632,318)
+.. (628,318)
+.. controls (616,318) and (567,338)
+.. (567,385)
+.. controls (567,493) and (756,639)
+.. (1020,639)
+.. controls (1028,639) and (1032,638)
+.. (1040,637)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (211,586*FS#,827*FS#,7*FS#);
+"Oacute";
+path P[];
+P1 = ((859,827)
+.. controls (842,827) and (834,791)
+.. (815,772)
+.. controls (809,766) and (797,759)
+.. (797,749)
+.. controls (797,747) and (800,747)
+.. (802,747)
+.. controls (815,747) and (881,780)
+.. (881,806)
+.. controls (881,818) and (871,827)
+.. (859,827)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((800,671)
+.. controls (524,671) and (137,340)
+.. (137,126)
+.. controls (137,47) and (181,-7)
+.. (254,-7)
+.. controls (415,-7) and (789,331)
+.. (789,533)
+.. controls (789,585) and (759,619)
+.. (718,619)
+.. controls (587,619) and (472,481)
+.. (472,382)
+.. controls (472,343) and (492,319)
+.. (530,319)
+.. controls (598,319) and (691,393)
+.. (726,507)
+.. controls (733,529) and (739,541)
+.. (739,564)
+.. controls (739,569) and (739,581)
+.. (734,581)
+.. controls (728,581) and (726,571)
+.. (726,566)
+.. controls (724,542) and (709,485)
+.. (685,444)
+.. controls (645,375) and (573,331)
+.. (530,331)
+.. controls (502,331) and (485,349)
+.. (485,378)
+.. controls (485,420) and (511,461)
+.. (558,515)
+.. controls (609,574) and (658,605)
+.. (715,605)
+.. controls (749,605) and (776,576)
+.. (776,531)
+.. controls (776,341) and (412,7)
+.. (253,7)
+.. controls (209,7) and (167,35)
+.. (167,84)
+.. controls (167,143) and (211,226)
+.. (295,334)
+.. controls (464,551) and (641,659)
+.. (798,659)
+.. controls (878,659) and (925,621)
+.. (925,576)
+.. controls (925,526) and (870,493)
+.. (834,493)
+.. controls (818,493) and (802,496)
+.. (802,486)
+.. controls (802,480) and (820,479)
+.. (837,479)
+.. controls (872,479) and (938,511)
+.. (938,577)
+.. controls (938,630) and (890,671)
+.. (800,671)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (212,586*FS#,827*FS#,7*FS#);
+"Ocircumflex";
+path P[];
+P1 = ((824,786)
+.. controls (822,780) and (820,773)
+.. (820,763)
+.. controls (820,754) and (832,747)
+.. (843,747)
+.. controls (865,747) and (940,807)
+.. (940,814)
+.. controls (940,816) and (941,820)
+.. (939,820)
+.. controls (928,820) and (920,808)
+.. (913,802)
+.. controls (881,775) and (853,759)
+.. (849,759)
+.. controls (846,759) and (840,757)
+.. (840,760)
+.. controls (840,772) and (856,781)
+.. (878,793)
+.. controls (883,796) and (886,801)
+.. (886,807)
+.. controls (886,821) and (882,827)
+.. (868,827)
+.. controls (854,827) and (843,815)
+.. (834,808)
+.. controls (788,773) and (757,758)
+.. (757,753)
+.. controls (757,749) and (757,747)
+.. (763,747)
+.. controls (773,747) and (802,775)
+.. (824,786)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((800,671)
+.. controls (524,671) and (137,340)
+.. (137,126)
+.. controls (137,47) and (181,-7)
+.. (254,-7)
+.. controls (415,-7) and (789,331)
+.. (789,533)
+.. controls (789,585) and (759,619)
+.. (718,619)
+.. controls (587,619) and (472,481)
+.. (472,382)
+.. controls (472,343) and (492,319)
+.. (530,319)
+.. controls (598,319) and (691,393)
+.. (726,507)
+.. controls (733,529) and (739,541)
+.. (739,564)
+.. controls (739,569) and (739,581)
+.. (734,581)
+.. controls (728,581) and (726,571)
+.. (726,566)
+.. controls (724,542) and (709,485)
+.. (685,444)
+.. controls (645,375) and (573,331)
+.. (530,331)
+.. controls (502,331) and (485,349)
+.. (485,378)
+.. controls (485,420) and (511,461)
+.. (558,515)
+.. controls (609,574) and (658,605)
+.. (715,605)
+.. controls (749,605) and (776,576)
+.. (776,531)
+.. controls (776,341) and (412,7)
+.. (253,7)
+.. controls (209,7) and (167,35)
+.. (167,84)
+.. controls (167,143) and (211,226)
+.. (295,334)
+.. controls (464,551) and (641,659)
+.. (798,659)
+.. controls (878,659) and (925,621)
+.. (925,576)
+.. controls (925,526) and (870,493)
+.. (834,493)
+.. controls (818,493) and (802,496)
+.. (802,486)
+.. controls (802,480) and (820,479)
+.. (837,479)
+.. controls (872,479) and (938,511)
+.. (938,577)
+.. controls (938,630) and (890,671)
+.. (800,671)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (210,586*FS#,834*FS#,7*FS#);
+"Ograve";
+path P[];
+P1 = ((779,834)
+.. controls (766,834) and (758,827)
+.. (758,813)
+.. controls (758,795) and (816,747)
+.. (837,747)
+.. controls (839,747) and (841,747)
+.. (841,749)
+.. controls (841,757) and (828,765)
+.. (814,783)
+.. controls (791,813) and (800,834)
+.. (779,834)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((799,671)
+.. controls (523,671) and (136,340)
+.. (136,126)
+.. controls (136,47) and (180,-7)
+.. (253,-7)
+.. controls (414,-7) and (788,331)
+.. (788,533)
+.. controls (788,585) and (758,619)
+.. (717,619)
+.. controls (586,619) and (471,481)
+.. (471,382)
+.. controls (471,343) and (491,319)
+.. (529,319)
+.. controls (597,319) and (690,393)
+.. (725,507)
+.. controls (732,529) and (738,541)
+.. (738,564)
+.. controls (738,569) and (738,581)
+.. (733,581)
+.. controls (727,581) and (725,571)
+.. (725,566)
+.. controls (723,542) and (708,485)
+.. (684,444)
+.. controls (644,375) and (572,331)
+.. (529,331)
+.. controls (501,331) and (484,349)
+.. (484,378)
+.. controls (484,420) and (510,461)
+.. (557,515)
+.. controls (608,574) and (657,605)
+.. (714,605)
+.. controls (748,605) and (775,576)
+.. (775,531)
+.. controls (775,341) and (411,7)
+.. (252,7)
+.. controls (208,7) and (166,35)
+.. (166,84)
+.. controls (166,143) and (210,226)
+.. (294,334)
+.. controls (463,551) and (640,659)
+.. (797,659)
+.. controls (877,659) and (924,621)
+.. (924,576)
+.. controls (924,526) and (869,493)
+.. (833,493)
+.. controls (817,493) and (801,496)
+.. (801,486)
+.. controls (801,480) and (819,479)
+.. (836,479)
+.. controls (871,479) and (937,511)
+.. (937,577)
+.. controls (937,630) and (889,671)
+.. (799,671)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (218,765*FS#,827*FS#,4*FS#);
+"Uacute";
+path P[];
+P1 = ((1070,827)
+.. controls (1053,827) and (1045,791)
+.. (1026,772)
+.. controls (1020,766) and (1008,759)
+.. (1008,749)
+.. controls (1008,747) and (1011,747)
+.. (1013,747)
+.. controls (1025,747) and (1092,780)
+.. (1092,806)
+.. controls (1092,818) and (1083,827)
+.. (1070,827)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1157,566)
+.. controls (1159,568) and (1159,569)
+.. (1159,571)
+.. controls (1159,574) and (1156,574)
+.. (1153,574)
+-- (1113,574)
+.. controls (1106,574) and (1102,567)
+.. (1101,566)
+-- (885,352)
+.. controls (836,304) and (751,235)
+.. (637,135)
+.. controls (544,53) and (449,8)
+.. (405,8)
+.. controls (382,8) and (366,18)
+.. (366,35)
+.. controls (366,60) and (416,122)
+.. (513,203)
+.. controls (585,263) and (655,327)
+.. (722,393)
+.. controls (766,437) and (796,505)
+.. (796,552)
+.. controls (796,618) and (745,656)
+.. (656,656)
+.. controls (476,656) and (317,546)
+.. (317,452)
+.. controls (317,411) and (362,383)
+.. (438,383)
+.. controls (585,383) and (729,538)
+.. (729,565)
+.. controls (729,567) and (727,568)
+.. (725,568)
+.. controls (714,568) and (698,544)
+.. (672,515)
+.. controls (627,465) and (491,397)
+.. (417,397)
+.. controls (366,397) and (333,424)
+.. (333,455)
+.. controls (333,530) and (480,644)
+.. (655,644)
+.. controls (734,644) and (780,612)
+.. (780,562)
+.. controls (780,497) and (674,405)
+.. (496,252)
+.. controls (398,168) and (345,101)
+.. (345,47)
+.. controls (345,17) and (366,-4)
+.. (403,-4)
+.. controls (459,-4) and (549,40)
+.. (655,133)
+.. controls (676,151) and (703,176)
+.. (737,203)
+.. controls (703,167) and (672,140)
+.. (655,118)
+.. controls (633,89) and (621,53)
+.. (621,42)
+.. controls (621,11) and (632,-4)
+.. (664,-4)
+.. controls (744,-4) and (831,93)
+.. (831,96)
+.. controls (831,98) and (831,100)
+.. (829,100)
+.. controls (826,100) and (823,99)
+.. (821,97)
+.. controls (761,42) and (724,8)
+.. (665,8)
+.. controls (650,8) and (638,11)
+.. (638,25)
+.. controls (638,39) and (661,71)
+.. (695,105)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (219,764*FS#,827*FS#,4*FS#);
+"Ucircumflex";
+path P[];
+P1 = ((1041,786)
+.. controls (1039,780) and (1036,773)
+.. (1036,763)
+.. controls (1036,754) and (1048,747)
+.. (1059,747)
+.. controls (1081,747) and (1156,807)
+.. (1156,814)
+.. controls (1156,816) and (1157,820)
+.. (1155,820)
+.. controls (1144,820) and (1136,808)
+.. (1129,802)
+.. controls (1097,775) and (1069,759)
+.. (1065,759)
+.. controls (1062,759) and (1057,757)
+.. (1057,760)
+.. controls (1057,772) and (1072,781)
+.. (1094,793)
+.. controls (1099,796) and (1102,801)
+.. (1102,807)
+.. controls (1102,821) and (1098,827)
+.. (1084,827)
+.. controls (1070,827) and (1059,815)
+.. (1050,808)
+.. controls (1004,773) and (973,758)
+.. (973,753)
+.. controls (973,749) and (973,747)
+.. (979,747)
+.. controls (989,747) and (1019,775)
+.. (1041,786)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1157,566)
+.. controls (1159,568) and (1159,569)
+.. (1159,571)
+.. controls (1159,574) and (1156,574)
+.. (1153,574)
+-- (1113,574)
+.. controls (1106,574) and (1102,567)
+.. (1101,566)
+-- (885,352)
+.. controls (836,304) and (751,235)
+.. (637,135)
+.. controls (544,53) and (449,8)
+.. (405,8)
+.. controls (382,8) and (366,18)
+.. (366,35)
+.. controls (366,60) and (416,122)
+.. (513,203)
+.. controls (585,263) and (655,327)
+.. (722,393)
+.. controls (766,437) and (796,505)
+.. (796,552)
+.. controls (796,618) and (745,656)
+.. (656,656)
+.. controls (476,656) and (317,546)
+.. (317,452)
+.. controls (317,411) and (362,383)
+.. (438,383)
+.. controls (585,383) and (729,538)
+.. (729,565)
+.. controls (729,567) and (727,568)
+.. (725,568)
+.. controls (714,568) and (698,544)
+.. (672,515)
+.. controls (627,465) and (491,397)
+.. (417,397)
+.. controls (366,397) and (333,424)
+.. (333,455)
+.. controls (333,530) and (480,644)
+.. (655,644)
+.. controls (734,644) and (780,612)
+.. (780,562)
+.. controls (780,497) and (674,405)
+.. (496,252)
+.. controls (398,168) and (345,101)
+.. (345,47)
+.. controls (345,17) and (366,-4)
+.. (403,-4)
+.. controls (459,-4) and (549,40)
+.. (655,133)
+.. controls (676,151) and (703,176)
+.. (737,203)
+.. controls (703,167) and (672,140)
+.. (655,118)
+.. controls (633,89) and (621,53)
+.. (621,42)
+.. controls (621,11) and (632,-4)
+.. (664,-4)
+.. controls (744,-4) and (831,93)
+.. (831,96)
+.. controls (831,98) and (831,100)
+.. (829,100)
+.. controls (826,100) and (823,99)
+.. (821,97)
+.. controls (761,42) and (724,8)
+.. (665,8)
+.. controls (650,8) and (638,11)
+.. (638,25)
+.. controls (638,39) and (661,71)
+.. (695,105)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (217,764*FS#,834*FS#,4*FS#);
+"Ugrave";
+path P[];
+P1 = ((1028,834)
+.. controls (1015,834) and (1008,827)
+.. (1008,813)
+.. controls (1008,796) and (1064,747)
+.. (1086,747)
+.. controls (1088,747) and (1091,747)
+.. (1091,749)
+.. controls (1091,760) and (1058,781)
+.. (1049,810)
+.. controls (1045,822) and (1043,834)
+.. (1028,834)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1157,566)
+.. controls (1159,568) and (1159,569)
+.. (1159,571)
+.. controls (1159,574) and (1156,574)
+.. (1153,574)
+-- (1113,574)
+.. controls (1106,574) and (1102,567)
+.. (1101,566)
+-- (885,352)
+.. controls (836,304) and (751,235)
+.. (637,135)
+.. controls (544,53) and (449,8)
+.. (405,8)
+.. controls (382,8) and (366,18)
+.. (366,35)
+.. controls (366,60) and (416,122)
+.. (513,203)
+.. controls (585,263) and (655,327)
+.. (722,393)
+.. controls (766,437) and (796,505)
+.. (796,552)
+.. controls (796,618) and (745,656)
+.. (656,656)
+.. controls (476,656) and (317,546)
+.. (317,452)
+.. controls (317,411) and (362,383)
+.. (438,383)
+.. controls (585,383) and (729,538)
+.. (729,565)
+.. controls (729,567) and (727,568)
+.. (725,568)
+.. controls (714,568) and (698,544)
+.. (672,515)
+.. controls (627,465) and (491,397)
+.. (417,397)
+.. controls (366,397) and (333,424)
+.. (333,455)
+.. controls (333,530) and (480,644)
+.. (655,644)
+.. controls (734,644) and (780,612)
+.. (780,562)
+.. controls (780,497) and (674,405)
+.. (496,252)
+.. controls (398,168) and (345,101)
+.. (345,47)
+.. controls (345,17) and (366,-4)
+.. (403,-4)
+.. controls (459,-4) and (549,40)
+.. (655,133)
+.. controls (676,151) and (703,176)
+.. (737,203)
+.. controls (703,167) and (672,140)
+.. (655,118)
+.. controls (633,89) and (621,53)
+.. (621,42)
+.. controls (621,11) and (632,-4)
+.. (664,-4)
+.. controls (744,-4) and (831,93)
+.. (831,96)
+.. controls (831,98) and (831,100)
+.. (829,100)
+.. controls (826,100) and (823,99)
+.. (821,97)
+.. controls (761,42) and (724,8)
+.. (665,8)
+.. controls (650,8) and (638,11)
+.. (638,25)
+.. controls (638,39) and (661,71)
+.. (695,105)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (2,153*FS#,320*FS#,0*FS#);
+"circumflex";
+path P[];
+P1 = ((233,280)
+.. controls (231,274) and (228,266)
+.. (228,256)
+.. controls (228,247) and (240,240)
+.. (251,240)
+.. controls (274,240) and (348,301)
+.. (348,308)
+.. controls (348,310) and (349,313)
+.. (347,313)
+.. controls (336,313) and (328,302)
+.. (321,296)
+.. controls (289,269) and (261,252)
+.. (257,252)
+.. controls (254,252) and (249,250)
+.. (249,253)
+.. controls (249,265) and (263,274)
+.. (286,286)
+.. controls (291,289) and (294,294)
+.. (294,300)
+.. controls (294,314) and (290,320)
+.. (276,320)
+.. controls (262,320) and (251,308)
+.. (242,301)
+.. controls (196,266) and (165,252)
+.. (165,247)
+.. controls (165,243) and (165,240)
+.. (171,240)
+.. controls (180,240) and (211,268)
+.. (233,280)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (3,140*FS#,279*FS#,0*FS#);
+"tilde";
+path P[];
+P1 = ((303,276)
+.. controls (301,276) and (299,275)
+.. (297,274)
+.. controls (291,271) and (288,269)
+.. (281,269)
+.. controls (259,269) and (240,279)
+.. (219,279)
+.. controls (197,279) and (168,257)
+.. (168,247)
+.. controls (168,244) and (171,243)
+.. (174,243)
+.. controls (179,243) and (180,246)
+.. (184,249)
+.. controls (188,251) and (190,252)
+.. (194,252)
+.. controls (207,252) and (227,240)
+.. (248,240)
+.. controls (263,240) and (307,257)
+.. (307,273)
+.. controls (307,275) and (305,276)
+.. (303,276)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (8,158*FS#,331*FS#,0*FS#);
+"breve";
+path P[];
+P1 = ((293,291)
+.. controls (295,297) and (298,304)
+.. (298,314)
+.. controls (298,323) and (286,331)
+.. (275,331)
+.. controls (253,331) and (178,270)
+.. (178,263)
+.. controls (178,261) and (177,257)
+.. (179,257)
+.. controls (190,257) and (198,269)
+.. (205,275)
+.. controls (237,302) and (265,319)
+.. (269,319)
+.. controls (272,319) and (277,320)
+.. (277,317)
+.. controls (277,305) and (262,296)
+.. (240,284)
+.. controls (235,281) and (232,277)
+.. (232,271)
+.. controls (232,257) and (236,250)
+.. (250,250)
+.. controls (264,250) and (275,263)
+.. (284,270)
+.. controls (330,305) and (361,319)
+.. (361,324)
+.. controls (361,328) and (361,330)
+.. (355,330)
+.. controls (345,330) and (315,303)
+.. (293,291)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (10,59*FS#,333*FS#,0*FS#);
+"dotaccent";
+path P[];
+P1 = ((210,315)
+.. controls (209,314) and (209,313)
+.. (209,311)
+.. controls (209,309) and (210,308)
+.. (211,307)
+-- (229,289)
+.. controls (230,288) and (231,288)
+.. (232,288)
+.. controls (234,288) and (235,288)
+.. (236,289)
+-- (252,308)
+.. controls (253,309) and (254,310)
+.. (254,312)
+.. controls (254,314) and (253,315)
+.. (252,316)
+-- (237,331)
+.. controls (236,332) and (235,333)
+.. (233,333)
+.. controls (231,333) and (229,332)
+.. (228,331)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (6,118*FS#,336*FS#,0*FS#);
+"ring";
+path P[];
+P1 = ((260,336)
+.. controls (228,336) and (196,305)
+.. (196,269)
+.. controls (196,251) and (210,240)
+.. (230,240)
+.. controls (258,240) and (297,270)
+.. (297,304)
+.. controls (297,323) and (282,336)
+.. (260,336)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((228,250)
+.. controls (218,250) and (209,256)
+.. (209,266)
+.. controls (209,289) and (243,322)
+.. (266,322)
+.. controls (278,322) and (287,314)
+.. (287,302)
+.. controls (287,285) and (257,250)
+.. (228,250)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+ligtable 102:
+105 =: 28;
+ligtable 96:
+96 =: 16;
+ligtable 63:
+96 =: 190;
+ligtable 127:
+127 =: 0;
+ligtable 44:
+44 =: 18;
+ligtable 39:
+39 =: 17;
+ligtable 33:
+96 =: 189;
+font_slant:=0.00;
+font_normal_space:=333*FS#;
+font_normal_stretch:=166*FS#;
+font_normal_shrink:=110*FS#;
+font_x_height:=196*FS#;
+font_quad:=799*FS#;
+designsize:=FontSize;
+font_coding_scheme:="DC";
+font_identifier:="Calligra";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/casyl/casyll10.mf b/Master/texmf-dist/fonts/source/public/casyl/casyll10.mf
new file mode 100644
index 00000000000..2ec9114bb81
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/casyl/casyll10.mf
@@ -0,0 +1,601 @@
+% casyll10.mf: Cree/Inuktitut 10 point
+% (based on Julian Bradfield's teng10.mf)
+% 22 February 1999
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Ivan A Derzhanski
+% Department of Mathematical Linguistics
+% Institute for Mathematics and Computer Science
+% Bulgarian Academy of Sciences
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+designsize:=10pt#;
+% parameter settings
+em#:=10pt#; asc#:=8pt#; ex#:=16/3pt#; o#:=1/8pt#;
+
+font_normal_space(.4em#); font_x_height(ex#);
+font_quad(em#); font_normal_stretch(.2em#);
+font_normal_shrink(.1em#);
+
+penangle := 45;
+big_penwidth# := 1/10em#; penthickness# := 1/70em#;
+wee_penwidth# = .8big_penwidth#;
+straight_sidebar# = 1/12em#; curve_sidebar# = 1/18em#;
+fudge# := .05 ex#; % fudge for lowering calma luva
+letter_width# := .6em#;
+
+autorounding := 1;
+mode_setup;
+define_pixels(em,asc,ex);
+define_blacker_pixels(big_penwidth,wee_penwidth,penthickness);
+define_corrected_pixels(o);
+define_whole_pixels(straight_sidebar,curve_sidebar);
+
+define_pixels(fudge, letter_width);
+pickup pencircle xscaled big_penwidth yscaled penthickness rotated penangle;
+big_nib := savepen;
+pickup pencircle xscaled wee_penwidth yscaled penthickness rotated penangle;
+wee_nib := savepen;
+
+def draw_dot(suffix i) =
+ % calculate width of pen
+ numeric penwdth;
+ 1.1penwdth = (pen_rt - pen_lft) ++ (pen_top - pen_bot);
+ z.i.$ = z.i + 1/2penwdth*dir(penangle+90);
+ z.i.$$ = z.i + 1/2penwdth*dir(penangle-90);
+ draw z.i.$$ -- z.i.$; drawdot z.i.$$; drawdot z.i.$;
+enddef;
+
+def beginsyll (expr c, w_sharp) =
+begingroup
+charcode := if known c: byte c else: 0 fi;
+charwd := w_sharp; charht := ex#; chardp := 0;
+w := hround (charwd * hppp);
+h := vround (charht * hppp);
+d := 0;
+charic := 0; clearxy; clearpen;
+enddef;
+
+def endsyllao (expr p) =
+chardx := w;
+charcode := charcode + 32;
+clearit; draw p;
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode + 96;
+clearit; draw p reflectedabout ((.5w,0), (.5w,h));
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+endgroup
+enddef;
+
+def endsyllei (expr p) =
+chardx := w;
+charcode := charcode + 64;
+clearit; draw p;
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode + 32;
+clearit; draw p reflectedabout ((0,.5h), (w,.5h));
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+endgroup
+enddef;
+
+def endsyllxy (expr p) =
+chardx := w;
+charcode := charcode + 32;
+clearit; draw p;
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode + 32;
+clearit;
+draw p reflectedabout ((0,.5h), (w,.5h)) reflectedabout ((.5w,0), (.5w,h));
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode + 32;
+clearit; draw p reflectedabout ((0,.5h), (w,.5h));
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+charcode := charcode + 32;
+clearit; draw p reflectedabout ((.5w,0), (.5w,h));
+if proofing > 0: makebox (proofrule); fi
+shipit;
+if displaying > 0: makebox (screenrule); showit; fi
+endgroup
+enddef;
+
+% now make the fount
+
+beginchar(96,letter_width#,ex#,0); "big circle";
+ pickup big_nib;
+ top y1 = round(ex+o); x1 = .5w;
+ bot y3 = round(-o); x3 = x1;
+ rt x2 = w - curve_sidebar = w - lft x4;
+ y2 = y4 = .5h;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginsyll ("`", letter_width#); "a/o";
+ pickup big_nib;
+ x1 = x2 = w - straight_sidebar;
+ x3 = curve_sidebar;
+ y3 = .5h; y1 = 0; y2 = h;
+endsyllao (z1 -- z3 -- z2 -- z1);
+
+beginsyll ("`", letter_width#); "e/i";
+ pickup big_nib;
+ y1 = h; x1 = w - x2;
+ y2 = h; x2 = straight_sidebar;
+ x3 = .5[x1,x2]; bot y3 = round 0;
+endsyllei (z1 -- z3 -- z2 -- z1);
+
+beginsyll ("p", letter_width#); "pa/po";
+ pickup big_nib;
+ x2 = curve_sidebar = w - x1 = w - x3;
+ y2 = .5h; y1 = h; y3 = 0;
+endsyllao (z1 -- z2 -- z3);
+
+beginsyll ("p", letter_width#); "pe/pi";
+ pickup big_nib;
+ y1 = h; x1 = w - x2;
+ y2 = h; x2 = straight_sidebar;
+ x3 = .5[x1,x2]; bot y3 = round 0;
+endsyllei (z1 -- z3 -- z2);
+
+beginsyll ("t", letter_width#); "ta/to";
+ pickup big_nib;
+ rt x1 = rt x5 = w - lft x3 = w - curve_sidebar;
+ x2 = x4 = .4w;
+ bot y1 = bot y2 = 0; top y4 = top y5 = h;
+ y3 = .5h;
+endsyllao (z1 -- z2 .. z3 .. z4 -- z5);
+
+beginsyll ("t", letter_width#); "te/ti";
+ pickup big_nib;
+ w - rt x1 = w - rt x2 = lft x4 = lft x5 = straight_sidebar;
+ x3 = .5w;
+ top y1 = top y5 = h + o;
+ bot y3 = -o; y2 = y4 = .4h;
+endsyllei (z1 -- z2 .. z3 .. z4 -- z5);
+
+beginsyll ("c", letter_width#); "c@";
+ pickup big_nib;
+ rt x2 = w - curve_sidebar;
+ lft x4 = lft x5 = straight_sidebar;
+ x3 = .5[x2,x4];
+ top y5 = h + o; bot y3 = -o; y2 = y4 = .4h;
+endsyllxy (z2 .. z3 .. {up}z4 -- z5);
+
+beginsyll ("k", letter_width#); "k@";
+ pickup big_nib;
+ x1 = x3 = .5w;
+ bot y3 = round(-o); y1 = .6h;
+ rt x2 = w - curve_sidebar;
+ lft x4 = straight_sidebar;
+ y2 = y4 = .5[y1,y3];
+ top z5 = (x4, h+o);
+endsyllxy (z5 -- z4{down} .. z3 .. z2 .. z1{left} .. z4);
+
+beginsyll ("n", letter_width#); "n@";
+ pickup big_nib;
+ top y1 = round(ex+o); x1 = .5[x2,x4];
+ bot y3 = round(-o); x3 = x1;
+ x2 = .6w; lft x4 = curve_sidebar;
+ y2 = y4 = .5h;
+ rt z5 = (w - curve_sidebar, y3);
+endsyllxy (z5 -- z3{left} .. z4 .. z1 .. z2 .. z3);
+
+beginsyll ("m", letter_width#); "m@";
+ pickup big_nib;
+ lft x1 = straight_sidebar; top y1 = h;
+ rt x2 = w - curve_sidebar; bot y2 = 0;
+endsyllxy (z1 -- (x1,y2) -- z2);
+
+beginsyll ("s", letter_width#); "s@";
+ pickup big_nib;
+ y1 = .6h; x1 = x3 = .6w;
+ bot y3 = round(-o);
+ rt x2 = w - curve_sidebar;
+ y2 = .5[y1,y3];
+ top lft z5 = (straight_sidebar, ex+o);
+endsyllxy (z5 -- (x5,y1) .. z1 .. z2 .. {left}z3);
+
+beginsyll ("y", letter_width#); "y@";
+ pickup big_nib;
+ y1 = .6h; bot y3 = round(-o);
+ rt x1 = w - curve_sidebar; x3 = .4w;
+ top lft z5 = (straight_sidebar, ex+o);
+endsyllxy (z5 -- (x5,y1) .. z1 -- z3);
+
+beginsyll ("r", letter_width#); "ra/ro";
+ pickup big_nib;
+ rt x0 = rt x1 = w - straight_sidebar;
+ w - rt x5 = lft x3 = curve_sidebar;
+ x2 = x4 = .4w;
+ bot y0 = -o; y1 = y2 = .45h; top y4 = top y5 = h;
+ y3 = .5[y1,y5];
+endsyllao (z0 -- z1 -- z2{left} .. z3 .. {right}z4 -- z5);
+
+beginsyll ("r", letter_width#); "re/ri";
+ pickup big_nib;
+ rt x0 = w - curve_sidebar;
+ x1 = x2 = .55w;
+ lft x4 = lft x5 = straight_sidebar;
+ x3 = .5w;
+ top y0 = top y1 = h; top y5 = h + o;
+ bot y3 = -o; y2 = y4 = .4h;
+endsyllei (z0 -- z1 -- z2{down} .. z3 .. {up}z4 -- z5);
+
+beginsyll ("l", letter_width#); "l@";
+ pickup big_nib;
+ rt x1 = w - lft x3 = w - curve_sidebar;
+ x2 = x4 = .4w;
+ bot y1 = bot y2 = 0; top y4 = h;
+ y3 = .5h;
+endsyllxy (z1 -- z2 .. z3 .. {right}z4);
+
+beginsyll (123, letter_width#); "rh@";
+ pickup big_nib;
+ rt x2 = w - curve_sidebar;
+ lft x5 = straight_sidebar;
+ x3 = .3[x2,x5];
+ top y5 = h + o; bot y3 = -o; y2 = .4h;
+endsyllxy (z2 .. z3 .. tension 1.2 .. {up}z5 -- (x5,y3));
+
+beginsyll (124, letter_width#); "lh@";
+ pickup big_nib;
+ x0 = .5w; x2 = x4 = .4w;
+ rt x1 = w - straight_sidebar;
+ w - rt x5 = lft x3 = curve_sidebar;
+ bot y0 = -o; y1 = y2 = .45h; top y4 = h + o;
+ y3 = .5[y1,y4];
+endsyllxy (z0 -- z1 -- z2{left} .. z3 .. z4);
+
+beginsyll (125, letter_width#); "sha/sho";
+ pickup big_nib;
+ top y1 = top y6 = round(ex+o); x1 = x3 = .8[x5,x2];
+ bot y3 = bot y4 = round(-o); x4 = x6 = .2[x5,x2];
+ w - rt x2 = curve_sidebar = lft x5;
+ y2 = y5 = .5h;
+endsyllao (z3{right} .. z2 .. z1 .. .5[z5,z2] .. z4 .. z5 .. {right}z6);
+
+beginsyll (125, letter_width#); "she/shi";
+ pickup big_nib;
+ x0 = x3 = .5w; top y0 = ex+o; bot y3 = -o;
+ lft x4 = lft x5 = w - rt x1 = w - rt x2 = curve_sidebar;
+ y1 = y5 = .8[y3,y0]; y2 = y4 = .2[y3,y0];
+endsyllei (z2{down} .. z3 .. z4 .. .5[z3,z0] .. z1 .. z0 .. {down}z5);
+
+beginsyll (126, letter_width#); "tha/tho";
+ pickup big_nib;
+ top y0 = top y1 = h; y0 - y6 = x3 - x9 = .35h;
+ lft x2 = w - rt x3 = w - rt x5 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ x1 = x4 = .4w; bot y4 = bot y5 = 0; y2 = .5h;
+endsyllao (z0 .. z9 .. z6 .. z3 .. z0 -- z1 .. z2 .. z4 -- z5);
+
+beginsyll (126, letter_width#); "the/thi";
+ pickup big_nib;
+ top y0 = top y5 = h + o; y0 - y6 = x3 - x9 = .35h;
+ lft x1 = lft x9 = w - rt x4 = w - rt x5 = straight_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ y1 = y4 = .4h; x2 = .5w; bot y2 = -o;
+endsyllei (z9 .. z6 .. z3 .. z0 .. z9 -- z1 .. z2 .. z4 -- z5);
+
+beginsyll ("v", letter_width#); "va/vo";
+ pickup big_nib;
+ top y0 = h; y0 - y6 = x3 - x9 = .35h;
+ lft x1 = w - rt x3 = w - rt x2 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ y1 = .5h; bot y2 = -o;
+ path p; p = z0 .. z9 .. z6 .. z3 .. cycle;
+ numeric t;
+ t = xpart ((subpath (0,1) of p)
+ intersectiontimes (quartercircle
+ scaled (2 * ((x0-x1)++(y9-y1)+-+(x0-x9))) shifted z1));
+endsyllao (((subpath (t,4) of p) & (subpath (0,t) of p) --- z1 -- z2));
+
+beginsyll ("v", letter_width#); "ve/vi";
+ pickup big_nib;
+ top y0 = top y2 = h + o; y0 - y6 = x3 - x9 = .35h;
+ lft x9 = w - rt x2 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ x1 = .5w; bot y1 = -o;
+ path p; p = z9 .. z6 .. z3 .. z0 .. cycle;
+ numeric t;
+ t = xpart ((subpath (0,1) of p)
+ intersectiontimes (quartercircle rotated 90
+ scaled (2 * ((x6-x1)++(y9-y1)+-+(x6-x9))) shifted z1));
+endsyllei (((subpath (t,4) of p) & (subpath (0,t) of p) --- z1 -- z2));
+
+beginchar("h",.35em#,1.5ex#,0); "h";
+ pickup wee_nib;
+ y1 = y2 - vround .4ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- (x1,y2); draw (x2,y1) -- z2;
+endchar;
+
+beginchar("p",.4em#,1.5ex#,0); "p";
+ pickup wee_nib;
+ rt x1 = rt x5 = w - curve_sidebar;
+ lft x3 = curve_sidebar;
+ y1 = y5 + vround .45ex;
+ y3 = .5[y1,y5] = ex;
+ draw z5 -- z3 -- z1;
+endchar;
+
+beginchar("t",.4em#,1.5ex#,0); "t";
+ pickup wee_nib;
+ rt x1 = rt x5 = w - lft x3 = w - curve_sidebar;
+ x2 = x4 = .4[x3,x1]; y3 = .5[y1,y5] = ex;
+ y1 = y5 + vround .45ex; y1 = y2; y4 = y5;
+ draw z5 -- z4 .. z3 .. z2 -- z1;
+endchar;
+
+beginchar("c",.4em#,1.5ex#,0); "c";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4];
+ y0 = y3 + vround .45ex;
+ lft x0 = lft x2 = straight_sidebar;
+ w - rt x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3];
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- z2{down} .. z3 .. z4;
+endchar;
+
+beginchar("k",.4em#,1.5ex#,0); "k";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4];
+ y0 = y3 + vround .45ex;
+ lft x0 = lft x2 = straight_sidebar;
+ w - rt x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3];
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- z2;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar("m",.45em#,1.5ex#,0); "m";
+ pickup wee_nib;
+ y1 = y2 - vround .4ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- (x1,y2) -- z2;
+endchar;
+
+beginchar("n",.4em#,1.5ex#,0); "n";
+ pickup wee_nib;
+ x1 = x3 = .5[x2,x4]; x4 = .6[x2,x0];
+ y1 = y3 + vround .45ex; y0 = y3;
+ lft x2 = w - rt x0 = curve_sidebar;
+ y2 = y4 = .5[y1,y3] = ex;
+ draw z0 -- z3;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar("s",.4em#,1.5ex#,0); "s";
+ pickup wee_nib;
+ x1 = x3 = .5[x0,x4];
+ y0 = y3 + vround .45ex;
+ lft x0 = straight_sidebar;
+ w - rt x4 = curve_sidebar;
+ y4 = .5[y1,y3];
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- (x0,y1) .. z1 .. z4 .. z3;
+endchar;
+
+beginchar("y",.4em#,1.5ex#,0); "y";
+ pickup wee_nib;
+ x3 = .6[x0,x1];
+ y0 = y3 + vround .45ex;
+ lft x0 = straight_sidebar;
+ w - rt x1 = curve_sidebar;
+ .5[y0,y3] = ex; .4[y0,y3] = y1;
+ draw z0 -- (x0,y1) .. z1 -- z3;
+endchar;
+
+beginchar("r",.4em#,1.5ex#,0); "r";
+ pickup wee_nib;
+ w - rt x0 = lft x3 = curve_sidebar;
+ x0 = x1 = x5; x2 = x4 = .4[x3,x1]; y3 = .5[y1,y5];
+ y5 = .5[y1,y0] = ex;
+ y1 = y0 + vround .45ex; y1 = y2; y4 = y5;
+ draw z0 -- z5 -- z4{left} .. z3 .. {right}z2 -- z1;
+endchar;
+
+beginchar("l",.4em#,1.5ex#,0); "l";
+ pickup wee_nib;
+ rt x5 = w - curve_sidebar;
+ lft x3 = curve_sidebar; x2 = x4 = .4[x3,x5];
+ y2 = y5 + vround .45ex; y4 = y5;
+ y3 = .5[y2,y5] = ex;
+ draw z5 -- z4 .. z3 .. {right}z2;
+endchar;
+
+picture savedimage;
+
+beginchar (123,.4em#,1.5ex#,0); "rh";
+ pickup wee_nib;
+ rt x2 = w - curve_sidebar;
+ lft x5 = straight_sidebar;
+ x3 = .3[x2,x5];
+ y5 = y3 + vround .45ex; .5[y3,y5] = ex; y2 = .4[y3,y5];
+ draw z2 .. z3 .. tension 1.2 .. {up}z5 -- (x5,y3);
+ savedimage := currentpicture;
+endchar;
+
+beginchar(91,.4em#,1.5ex#,0); "rh";
+ currentpicture := savedimage;
+endchar;
+
+beginchar(124,.4em#,1.5ex#,0); "lh";
+ pickup wee_nib;
+ rt x5 = w - lft x3 = w - curve_sidebar;
+ x0 = x2 = x4 = .4[x3,x5]; y3 = .5[y2,y5];
+ y5 = .5[y2,y0] = ex;
+ y2 = y0 + vround .45ex; y4 = y5;
+ draw z0 -- z5 -- z4{left} .. z3 .. z2;
+ savedimage := currentpicture;
+endchar;
+
+beginchar(92,.4em#,1.5ex#,0); "lh";
+ currentpicture := savedimage;
+endchar;
+
+beginchar(125,.4em#,1.5ex#,0); "sh";
+ pickup wee_nib;
+ x1 = x3 = .75[x5,x2];
+ x4 = x6 = .25[x5,x2];
+ y1 = y3 + vround .45ex; y6 = y1; y4 = y3;
+ lft x5 = w - rt x2 = curve_sidebar;
+ y2 = y5 = .5[y1,y3] = ex;
+ draw z3{right} .. z2 .. z1 .. .5[z5,z2] .. z4 .. z5 .. {right}z6;
+endchar;
+
+beginchar(126,.4em#,1.5ex#,0); "th";
+ pickup wee_nib;
+ y0 = y1 = y5 + vround .45ex; y0 - y6 = x3 - x9 = .45(y0-y5);
+ lft x2 = w - rt x3 = w - rt x5 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ x1 = x4 = .4w; y4 = y5; y2 = .5[y0,y5] = ex;
+ draw z0 .. z9 .. z6 .. z3 .. z0 -- z1 .. z2 .. z4 -- z5;
+ savedimage := currentpicture;
+endchar;
+
+beginchar(94,.4em#,1.5ex#,0); "th";
+ currentpicture := savedimage;
+endchar;
+
+beginchar("v",.4em#,1.5ex#,0); "v";
+ pickup wee_nib;
+ y0 = y2 + vround .45ex; y0 - y6 = x3 - x9 = .45(y0-y2);
+ lft x1 = w - rt x3 = w - rt x2 = curve_sidebar;
+ x0 = x6 = .5[x9,x3]; y3 = y9 = .5[y0,y6];
+ y1 = .5[y0,y2] = ex;
+ path p; p = z0 .. z9 .. z6 .. z3 .. cycle;
+ numeric t;
+ t = xpart ((subpath (0,1) of p)
+ intersectiontimes (quartercircle
+ scaled (2 * ((x0-x1)++(y9-y1)+-+(x0-x9))) shifted z1));
+ draw (subpath (t,4) of p) & (subpath (0,t) of p) --- z1 -- z2;
+ savedimage := currentpicture;
+endchar;
+
+beginchar("V",.4em#,1.5ex#,0); "v";
+ currentpicture := savedimage;
+endchar;
+
+beginchar("P",.3em#,1.5ex#,0); "P";
+ pickup wee_nib;
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex;
+ x1 = x2 = .5w;
+ draw z1 -- z2;
+endchar;
+
+beginchar("T",.4em#,1.5ex#,0); "T";
+ pickup pencircle
+ xscaled wee_penwidth yscaled penthickness rotated (penangle+90);
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- z2;
+endchar;
+
+beginchar("C",.45em#,1.5ex#,0); "c";
+ pickup wee_nib;
+ y1 = y2 = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- z2;
+endchar;
+
+beginchar("K",.4em#,1.5ex#,0); "k";
+ pickup wee_nib;
+ y1 = y2 + vround .45ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw z1 -- z2;
+endchar;
+
+beginchar("M",.4em#,1.5ex#,0); "m";
+ pickup wee_nib;
+ rt x1 = rt x5 = w - curve_sidebar;
+ lft x3 = curve_sidebar;
+ y1 = y5 + vround .45ex;
+ y3 = .5[y1,y5] = ex;
+ draw z5{left} .. z3 .. {right}z1;
+endchar;
+
+beginchar("N",.4em#,1.5ex#,0); "n";
+ pickup wee_nib;
+ lft x1 = lft x3 = curve_sidebar;
+ rt x4 = w - curve_sidebar;
+ y1 = y3 + vround .45ex;
+ y4 = .5[y1,y3] = ex;
+ draw z3{right} .. z4 .. {left}z1;
+endchar;
+
+beginchar("S",.4em#,1.5ex#,0); "s";
+ pickup wee_nib;
+ x1 = good.x .5w; lft x2 = w - rt x4 = curve_sidebar;
+ y1 = y2 + vround .45ex; .5[y1,y2] = ex; y2 = y4;
+ draw z4{up} .. z1 .. {down}z2;
+endchar;
+
+beginchar("Y",.45em#,1.5ex#,0); "y";
+ pickup wee_nib;
+ y1 = y2 - vround .45ex; .5[y1,y2] = y3 = y4 = ex;
+ x1 = x2 = .5w;
+ lft x3 = straight_sidebar = w - rt x4;
+ draw z1 -- z2; draw z3 -- z4;
+endchar;
+
+beginchar("L",.45em#,1.5ex#,0); "l";
+ pickup wee_nib;
+ y3 = y4 = y2 + vround .45ex; .5[y3,y2] = ex;
+ x2 = .5w;
+ lft x3 = straight_sidebar = w - rt x4;
+ draw (x2,y3) -- z2; draw z3 -- z4;
+endchar;
+
+beginchar("R",.4em#,1.5ex#,0); "r";
+ pickup pencircle
+ xscaled wee_penwidth yscaled penthickness rotated (penangle+90);
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex;
+ lft x1 = straight_sidebar = w - rt x2;
+ draw (x2,y1) -- z1 -- z2 -- (x1,y2);
+endchar;
+
+beginchar(93,.4em#,1.5ex#,0); "sh";
+ pickup wee_nib;
+ x1 = good.x .5w; lft x2 = w - rt x4 = curve_sidebar;
+ y1 = y2 - vround .45ex; .5[y1,y2] = ex; y2 = y4;
+ draw z2{down} .. z1 .. {up}z4;
+endchar;
+
+beginchar("w",.4em#,1.5ex#,0); "w";
+ pickup wee_nib;
+ x1 = x3 = good.x .5w;
+ y1 = y3 + vround .45ex;
+ lft x2 = w - rt x4 = curve_sidebar;
+ y2 = y4 = .5[y1,y3] = ex;
+ draw z1 .. z2 .. z3 .. z4 .. cycle;
+endchar;
+
+beginchar("W",.4em#,ex#,0); "The w mark";
+ pickup big_nib;
+ x1 = good.x .5w; y1 = good.y .6h;
+ draw_dot(1);
+endchar;
+
+beginchar("'",letter_width#,1.3ex#,0); "The length mark";
+ pickup big_nib;
+ x1 = good.x (.5w); top y1 = h;
+ draw_dot(1);
+endchar;
+
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbaccent.mf b/Master/texmf-dist/fonts/source/public/cb/cbaccent.mf
new file mode 100644
index 00000000000..09ea74658c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbaccent.mf
@@ -0,0 +1,638 @@
+% Copyright (C) 1997, 1999, 2001, 2002 Claudio Beccari
+% file cbaccent.mf v.2.0f 2001/04/09
+% Added cap-cedilla and sloping sides of nexus 2001/02/25
+% modified circumflex for the cbleipzig fonts 2001/04/22
+%
+% The accent macros that follow are used by all the vowel macros for
+% generating the ligatures; they mostly come from Computer Modern.
+%
+% CB added the tests on boolean monotoniko whose value is set either by the
+% driver files or it is false by default. Fixed the currentbreadth problem,
+% and changed several dimensions so as to work well with different parameter
+% settings.
+%
+% Several accents were completely redesigned, in particular grave and acute
+% and their combinations with diaeresis or breaths are such that do not
+% change according to the letter they accompany; in a different way
+% also the circumflex and the diaeresis have been modified accordingly.
+%
+% Booleans monotoniko and toniko are remains of a previous test version
+% where the monotoniko accent was the single one for modern Greek designed as
+% a vertical stroke; thanks to Apostolos Syropoulos this feature has been
+% eliminated.
+% (1999) CB added definitions for adscript iota to be used with upper
+% case Alpha, Eta and Omega, and for the corresponding small cap variants.
+boolean toniko, squeeze;
+% minimum distance between vowel and accent
+def separator=max(1,vround(x_height/10)) enddef;
+def grave(expr center) =
+numeric acc_sgn,acc_displ; acc_displ:=center;
+if monotoniko:
+ acc_sgn:=0;
+else:
+ acc_sgn:=+1;
+fi
+generate_grave;
+enddef;
+def acute(expr center) =
+numeric acc_sgn,acc_displ; acc_displ:=center;
+if monotoniko:
+ acc_sgn:=0;
+else:
+ acc_sgn:=-1;
+fi
+generate_grave;
+enddef;
+% The next definition draws both the grave (as its name suggests) and the
+% acute accents, the difference being the value of acc_sgn, where
+% acc_sgn=+1 tilts the accent to the left (grave)
+% acc_sgn=-1 tilts the accent to the right (acute)
+% acc_sgn=0 does not tilt the accent (monotoniko)
+vardef generate_grave=
+ numeric accent_tilt, alto, basso; accent_tilt:=if cbleipzig or cbroman:20else:30fi;
+ alto:=h; basso:=vround .8[h,x_height];
+ 1/3[x22,x21]=acc_displ;
+if serifs: pickup crisp.nib;
+ accent_tilt:= acc_sgn*(accent_tilt+angle(alto-basso,.5currentbreadth));
+ pos22(max(stem/5,currentbreadth+eps),accent_tilt); pos21(stem,accent_tilt);
+ if monotoniko:
+ bot y22=basso; top y21=alto; x22-x21=(alto-basso)*sind accent_tilt;
+ else:
+ bot y22=basso; top y21+.5stem=alto;
+ z21-z22=whatever*dir(90+accent_tilt);
+ fi
+ filldraw circ_stroke z21e--z22e; % diagonal
+else: pickup fine.nib;
+ accent_tilt:= acc_sgn*accent_tilt;
+ pos21(stem,0); pos22(vair,0);
+ top y21=alto; bot y22=basso; x22-x21=(alto-basso)*sind accent_tilt;
+ filldraw stroke z21e--z22e; % diagonal
+fi
+penlabels(21,22);
+currentbreadth:=0;
+enddef;
+def circumflex(expr center)=
+if monotoniko:
+ grave(center);
+else:
+ generate_circumflex(center);
+fi
+enddef;
+def generate_circumflex(expr center)=
+numeric mid_width;
+if slitex: % for slides it looks like a cap
+ mid_width=vair;
+ pos21(vair,-180); pos23(vair,0); y21=y23;
+ lft x21r=hround(center-if monospace and (w<6u):1.5u else:max(3u,2w/5)fi);
+ .5[rt x23r,lft x21r]=center;
+ x22=center; pos22(mid_width,90);
+ bot y23=vround(max(h-2mid_width,x_height+mid_width));
+ top y22r=h+o;
+ if bot y23>=top y22r: bot y23:= top y22r-mid_width; fi
+ filldraw stroke z21e{up}...z22e...{down}z23e;
+elseif cbleipzig:
+ h':=if h=Circ_ht:h else:10/7x_height fi;
+ numeric theta; theta=angle(1/6(6u-vair),1/4(asc_height-x_height));
+ pickup crisp.nib;
+ mid_width=.4[vair,stem];
+ pos[21](vair,theta+90);
+ pos[22](vair,theta+90);
+ pos[23](vair,theta+90);
+ pos[24](vair,theta+90);
+ z[22]-z[21]= z[24]-z[23]=(mid_width-crisp)*dir theta;
+ lft x[21]r=hround(center-max(3u,w/2-2.5u));
+ rt x[24]l=hround(center+max(3u,w/2-2.5u));
+ top y[24]r=h';
+ pair delta;
+ ypart delta=3(y[23]l-y[21]l);
+ delta=whatever*dir theta;
+ numeric deltay; deltay=vround(Circ_ht-(y24r-y23r)-(.4(bot y[21]l-top y[21]r)+2/3[x_height,Circ_ht]));
+ bot y[21]l=y23l-deltay;
+ %if h=Circ_ht:
+ % vround(bot y[21]l-top y[21]r+min(2/3[x_height,Circ_ht],y[23]l-.25vair));
+ %else:
+ % vround(y[23]l-.5dot_size)
+ %fi;
+ filldraw z[21]l..controls(z[21]l+delta)and(z[23]l-delta)..z[23]l..z[24]l--z[24]r..
+ controls(z[24]r-delta)and(z[22]r+delta)..z[22]r..z[21]r--cycle; % stroke
+else:
+ mid_width:=if squeeze:.3 else: .5 fi [vair,stem];
+ pickup fine.nib;
+ pos21(hround(mid_width-eps),180);
+ pos22(vair,90);
+ pos23(mid_width,45);
+ pos24(vair,90);
+ pos25(hround(mid_width-eps),180);
+ lft x21r=hround(center-if monospace:
+ if(w<5u):1.5u else:max(3u,w/3)fi
+ else:
+ max(3u,w/3)
+ fi);
+ .5[rt x25l,lft x21r]=center;
+ (x22-x21)=x23-x22=x24-x23=(x25-x24);
+ if h=Circ_ht:
+ bot y21l=bot y24l=vround(.45[h,x_height+.5mid_width]);
+ else:
+ bot y21l=bot y24l=vround(max(.5[h,x_height],x_height if not SansSerif:+o fi+separator));
+ fi
+ top y22r=top y25r=h;
+ y23=.5[y22,y24];
+ filldraw stroke z21e{up}...z22e{right}..z23e..{right}z24e...{up}z25e; % stroke
+fi
+penlabels(21,22,23,24,25);
+currentbreadth:=0;
+enddef;
+vardef diaeresis(expr center)=
+ generate_diaeresis(center,dot_size,dot_size+1.75u,h,x_height+separator);
+enddef;
+vardef diaeresis_acute(expr center)=
+ acute(center);
+ generate_diaeresis(center,6/8dot_size,13/8dot_size if cbleipzig or SansSerif:+u fi,.5[h,x_height],x_height+separator);
+enddef;
+vardef diaeresis_grave(expr center)=
+ grave(center);
+ generate_diaeresis(center,6/8dot_size,13/8dot_size if cbleipzig or SansSerif:+u fi,.5[h,x_height],x_height+separator);
+enddef;
+vardef diaeresis_circumflex(expr center)=
+ if monotoniko:
+ grave(center);
+ generate_diaeresis(center,.9dot_size,-1,.5[h,x_height],x_height+separator);
+ else:
+ generate_circumflex(center);
+ numeric sp_bottom, sp_top;
+ if (not slitex):
+ sp_top=vround(.15[bot y21l,x_height]);
+ sp_top+sp_bottom=bot y21l+x_height;
+ else:
+ sp_top=vround(.5[bot y21l,bot y22l]-separator);
+ sp_bottom=vround(x_height+separator);
+ fi
+ generate_diaeresis(center,6/8dot_size,11/8dot_size if cbleipzig:+u fi,sp_top,sp_bottom);
+ fi
+enddef;
+vardef generate_diaeresis(expr center,target_dot_diam,sep,eff_h,base)=
+pickup tiny.nib; numeric dot_diam;
+dot_diam:=max(tiny.breadth,hround(target_dot_diam));
+pos31(dot_diam,0); pos32(dot_diam,90); x31=x32; top y32r=vround(eff_h);
+if bot y32l<base: y32l:=min(y32r-eps,base+.5currentbreadth); fi
+y31=.5[y32l,y32r];
+pos33(dot_diam,0); penpos34(y32r-y32l,90); y33=y34=y31; x33=x34;
+if sep>=0 :
+ center=.5[x31,x33]; x33-x31=sep;
+else:
+ y35l=y35r=.5[y31,y32]; z35l=whatever[z21l,z22l]; z35r=whatever[z21r,z22r];
+ rt x31r=hround((min(x35l,x35r)-.5currentbreadth)-.05w);
+ lft x33l=hround((max(x35l,x35r)+.5currentbreadth)+.05w);
+fi
+dot(31,32); dot(33,34);
+penlabels(31,32,33,34,35);
+currentbreadth:=0;
+enddef;
+def rough(suffix $,@)(expr dot_size,depth,shear) =
+ if (not monotoniko):
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots:
+ pos$'(dot_size,180); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,180); pos@1(comma_join_,180);
+ pos@2(comma_bot_,180); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; lft x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else:
+ tail_thick:=if cbleipzig:
+ max(.4dot_size,currentbreadth+eps);
+ elseif SansSerif:
+ max(dot_size/2,currentbreadth+eps);
+ else:
+ if (fine>.2dot_size):floor(min(fine.breadth,vair))
+ else:max(vair/2,currentbreadth+eps)fi
+ fi;
+ pos@1(tail_thick,90); pos@2(tail_thick,180); pos@3(tail_thick,-90);
+ z@1r=z$r; lft x@2r=hround(x$-.5depth+.5shear if (cbleipzig and (top y$r<Circ_ht)):-.2dot_size fi);
+ x@3+.5tail_thick=x$+.5dot_size+shear;
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ y_:=ypart((z@1{left}...z@2{down}...z@3)
+ intersectiontimes (z$l{left}..{right}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{right}..subpath (0,y_) of (z$l{left}..{right}z$r)--cycle; % dot
+ if monospace: % tail
+ draw z@1{left}...z@2{down}...{right}z@3;
+ else:
+ filldraw stroke z@1e{left}...z@2e{down}...{right}z@3e;
+ fi
+ fi
+ penlabels(@1,@2,@3,$);
+ fi
+ currentbreadth:=0;
+ enddef;
+def smooth(suffix $,@)(expr dot_size,depth,shear) =
+ if not monotoniko:
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots:
+ pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else:
+ tail_thick:=if cbleipzig:
+ max(.4dot_size,currentbreadth+eps);
+ elseif SansSerif:
+ max(dot_size/2,currentbreadth+eps);
+ else:
+ if (fine>.2dot_size):floor(min(fine.breadth,vair))
+ else:max(vair/2,currentbreadth+eps)fi
+ fi;
+ pos@1(tail_thick,90); pos@2(tail_thick,0); pos@3(tail_thick,-90);
+ z@1r=z$r; rt x@2r=hround(x$+.5depth+.5shear if (cbleipzig and (top y$r<Circ_ht)):+.3dot_size fi);
+ x@3-.5tail_thick=hround(x$-.5dot_size+shear);
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ if monospace: % tail
+ draw z@1{right}...z@2{down}...{left}z@3;
+ else:
+ filldraw stroke z@1e{right}...z@2e{down}...{left}z@3e;
+ fi
+ fi
+ penlabels(@1,@2,@3,$);
+ fi
+ currentbreadth:=0;
+ enddef;
+vardef spirit(expr center) text type=
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = if SansSerif:1else:3/4fi dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam);
+y31+.5dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+penlabels(31);
+enddef;
+vardef spirit_acute(expr center) text type =
+numeric sp_bottom, sp_height, sp_box;
+sp_box:=if cbleipzig:.95else:.8*fi(h-x_height);
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = if SansSerif:1else:3/4fi dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+if monotoniko:
+ grave(center);
+else:
+ acute(center+if slitex:6/20 else:4/20fi sp_box);
+ if 1type0:
+ x31=hround(lft x22l-if serifs:if cbleipzig:.51else:.5fi
+ elseif slitex: .2
+ else:.4
+ fi sp_box);% smooth acute
+ else:
+ x31+.5dot_diam=
+ hround(lft x22l if serifs:-1/20
+ elseif slitex: -2/20
+ else:+1/20
+ fi sp_box); % rough acute
+ fi
+ y31+.5dot_diam=h;
+ if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+fi
+enddef;
+vardef spirit_grave(expr center) text type =
+numeric sp_bottom, sp_height,sp_box;
+sp_box:=.8*(h-x_height);
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = if SansSerif:1else:3/4fi dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+if monotoniko:
+ grave(center);
+else:
+ grave(center+if serifs:if cbleipzig or cbroman:9else:11fi elseif slitex:10 else:9fi/20sp_box);
+ if 1type0:
+ x31=hround(lft x21l-.5sp_height if serifs:- 1/10sp_box fi); %smooth grave
+ else:
+ x31+.5dot_diam=hround(lft x21l if serifs or slitex:-3/20sp_box fi); % rough grave
+ fi
+ y31+.5dot_diam=h;
+ if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+fi
+enddef;
+vardef spirit_circumflex(expr center) text type=
+if monotoniko:
+ grave(center);
+else:
+ generate_circumflex(center);
+ numeric sp_bottom, sp_height, sp_top, box_top;
+ box_top=bot if slitex: y22l else: y23l if cbleipzig:-.5u fi fi;
+ sp_top=sp_bottom+sp_height=vround(.15[box_top,x_height]);
+ sp_bottom=x_height+separator;
+ numeric dot_diam#; dot_diam# = 5/8dot_size#;
+ define_whole_blacker_pixels(dot_diam);
+ pickup fine.nib;
+ dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height-eps)));
+ x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam);
+ y31+.5dot_diam=vround(sp_top);
+ if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+fi
+penlabels(31);
+enddef;
+def iota_sub(expr pos_stem) =
+if not monotoniko:
+ if known pic.iota:
+ addto currentpicture also pic.iota shifted (hround(pos_stem),0);
+ else:
+ picture temp_picture; temp_picture=currentpicture; clearit;
+ if cursive and serifs and not (monospace or small_caps):
+ pickup pencircle xscaled stem yscaled hair;
+ x51=0;
+ top y51=vround(-o-separator);
+ x52=x51;
+ bot y52=vround(-desc_depth);
+ draw z52--z51;
+ pickup pencircle scaled hair;
+ y53=y52+1/2hair;
+ lft x53=hround(x52+u);
+ draw z53--(z52+(.5u,0))--z52;
+ elseif cbleipzig or cbroman:
+ pos50(stem,0);x50=0;top y50+.5stem=vround(-o-.5separator);
+ pos51(stem,0) ; x51=x50; y51=y53;
+ x52r=.5[x51r,x53r];x52l=.5[x51l,x53l];
+ bot y52l=vround(-desc_depth); y52r-y52l=.3[hair,stem]; z52=.5[z52r,z52l];
+ pos53(hair,if cbroman:135else:180fi);
+ lft x53r=hround(x51r+3u/4);y53l=y52r+min(u/2,hair);
+ filldraw double_circ_stroke z50e---z51e{down}...{right}z52e...{up}z53e;
+ else:
+ if small_caps:
+ numeric iota_stem; iota_stem:=.5[vair,stem];
+ pickup tiny.nib; pos51(iota_stem,0); pos52(iota_stem,0);
+ lft x51l=lft x52l=hround(-.5iota_stem);
+ top y51 - bot y52= 1.2iota_dp;
+ .5[top y51,bot y52]=0;
+ filldraw stroke z51e--z52e; % stem
+ if serifs or slitex:
+ if monospace:
+ dish_serif(51,52,a,1/3,.3jut,b,1/3,.3jut); % upper serif
+ dish_serif(52,51,c,1/3,.3jut,d,1/3,.3jut); % lower serif
+ else:
+ numeric s_jut; s_jut :=if slitex: .5iota_stem else:.5jut fi;
+ dish_serif(51,52,a,1/3,s_jut,b,1/3,s_jut); % upper serif
+ dish_serif(52,51,c,1/3,s_jut,d,1/3,s_jut); % lower serif
+ fi
+ fi
+ else:
+ pickup fine.nib;
+ x51=0; pos51(stem,180); top y51=vround(-o-separator);
+ x52=x51; pos52(stem,180); bot y52=-iota_dp;
+ filldraw circ_stroke z52e--z51e;
+ fi
+ fi
+ if not working_hard : picture pic.iota; pic.iota=currentpicture; fi
+ currentpicture:=currentpicture shifted (hround(pos_stem),0);
+ addto currentpicture also temp_picture;
+ fi
+fi
+penlabels(51,52,53);
+currentbreadth:=0;
+enddef;
+def Iota_sub(expr pos_stem) =
+if not monotoniko:
+ if known pic.Iota:
+ addto currentpicture also pic.Iota shifted (hround(pos_stem),0);
+ else:
+ picture temp_picture; temp_picture=currentpicture; clearit;
+ numeric I_stem; I_stem:=.6[hair,stem];
+ pickup tiny.nib; pos51(I_stem,0); pos52(I_stem,0);
+ lft x51l=lft x52l=hround(-.5I_stem);
+ top y51 - bot y52=2(iota_dp-separator);.5[top y51,bot y52]=0;
+ filldraw stroke z51e--z52e; % stem
+ if serifs or slitex:
+ if monospace:
+ dish_serif(51,52,a,1/3,.3jut,b,1/3,.3jut); % upper serif
+ dish_serif(52,51,c,1/3,.3jut,d,1/3,.3jut); % lower serif
+ else:
+ dish_serif(51,52,a,1/3,.7jut,b,1/3,.7jut); % upper serif
+ dish_serif(52,51,c,1/3,.7jut,d,1/3,.7jut); % lower serif
+ fi
+ fi
+ picture pic.Iota; pic.Iota=currentpicture;
+ currentpicture:=currentpicture shifted (hround(pos_stem),0);
+ addto currentpicture also temp_picture;
+ fi % endfi " known pic.Iota"
+fi %endfi "not monotoniko"
+currentbreadth:=0;
+enddef;
+cmchar "Adscript Iota";
+beginchar(oct"010",if monospace:9else:4fi u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+Iota_sub(.5w); monotoniko:=toniko;
+endchar;% "Adscript Iota"
+numeric acc_width#; acc_width#:=if monotoniko: 4u# else:9u# fi;
+cmchar "Grave accent";
+beginchar("`",if monospace:9else:3fi u#,acc_ht#,0);
+adjust_fit(0,0);
+numeric center;
+numeric acc_sgn; acc_sgn:=+1;
+grave(if monospace:19/36else:2/3fi w);
+endchar;% "Grave accent"
+cmchar "Acute accent";
+beginchar("'",if monospace:9else:3fi u#,acc_ht#,0);
+adjust_fit(0,0);
+numeric center;
+numeric acc_sgn; acc_sgn:=-1;
+acute(if monospace:17/36else:1/3fi w);
+endchar;% "Acute accent"
+cmchar "Circumflex accent";
+beginchar("~",if monospace:9else:6fi u#,circ_ht#,0);
+adjust_fit(0,0);
+numeric center;
+numeric mid_width;
+squeeze:=false;
+generate_circumflex(w/2);
+penlabels(21,22,23,24,25);
+currentbreadth:=0;
+endchar;% "Circumflex accent"
+cmchar "Diaeresis";
+beginchar(oct"042",if monospace:9else:4fi u#,circ_ht#,0);
+adjust_fit(0,0);
+numeric dot_diam, center, sep;
+sep:=4u-tiny; center:=.5w;
+dot_diam:=max(tiny.breadth,hround(dot_size));
+pos31(dot_diam,0); pos32(dot_diam,90); x31=x32;
+y32=.5[x_height+separator,circ_ht];
+y31=.5[y32l,y32r];
+pos33(dot_diam,0); penpos34(y32r-y32l,90); y33=y34=y31; x33=x34;
+if sep>0 :
+ center=.5[x31,x33]; x33-x31=sep;
+else:
+ y35l=y35r=.5[y31,y32]; z35l=whatever[z21l,z22l]; z35r=whatever[z21r,z22r];
+ rt x31r=hround((min(x35l,x35r)-.5currentbreadth)-.05w);
+ lft x33l=hround((max(x35l,x35r)+.5currentbreadth)+.05w);
+fi
+dot(31,32); dot(33,34);
+penlabels(31,32,33,34,35);
+endchar;% "Diaeresis"
+cmchar "Rough breathing";
+beginchar("<",if monospace:9else:4fi u#,acc_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+spirit(.5w)<; monotoniko:=toniko;
+endchar;% "Rough breathing"
+cmchar "Smooth breathing";
+beginchar(">",if monospace:9else:4fi u#,acc_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+spirit(.5w)>; monotoniko:=toniko;
+endchar;% "Smooth breathing"
+cmchar "Rough breathing with acute";
+beginchar(oct"126",if monospace:9else:5fi u#,acc_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+spirit_acute(.5w)<; monotoniko:=toniko;
+endchar;% "Rough breathing with acute"
+cmchar "Rough breathing with grave";
+beginchar(oct"103",if monospace:9else:5fi u#,acc_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+spirit_grave(.5w)<; monotoniko:=toniko;
+endchar;% "Rough breathing with grave"
+cmchar "Rough breathing with circumflex";
+beginchar(oct"100",if monospace:9else:6fi u#,Circ_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+squeeze:=true;
+spirit_circumflex(.5w)<; monotoniko:=toniko;
+endchar;% "Rough breathing with circumflex"
+cmchar "Smooth breathing with acute";
+beginchar(oct"136",if monospace:9else:5fi u#,acc_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+spirit_acute(.5w)>; monotoniko:=toniko;
+endchar;% "Smooth breathing with acute"
+cmchar "Smooth breathing with grave";
+beginchar(oct"137",if monospace:9else:5fi u#,acc_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+spirit_grave(.5w)>; monotoniko:=toniko;
+endchar;% "Smooth breathing with grave"
+cmchar "Smooth breathing and circumflex";
+beginchar(oct"134",if monospace:9else:6fi u#,Circ_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+squeeze:=true;
+spirit_circumflex(.5w)>; monotoniko:=toniko;
+endchar;% "Smooth breathing and circumflex"
+cmchar "Diaeresis with acute";
+beginchar(oct"043",if monospace:9else:5fi u#,acc_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+diaeresis_acute(.5w); monotoniko:=toniko;
+endchar;% "Diaeresis with acute"
+cmchar "Diaeresis with grave";
+beginchar(oct"044",if monospace:9else:5fi u#,acc_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+diaeresis_grave(.5w); monotoniko:=toniko;
+endchar;% "Diaeresis with grave"
+cmchar "Diaeresis with circumflex";
+beginchar(oct"040",if monospace:9else:8fi u#,Circ_ht#,0);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+squeeze:=true;
+diaeresis_circumflex(.5w);
+monotoniko:=toniko;
+endchar;% "Diaeresis with circumflex"
+cmchar "Iota subscript";
+beginchar("|",if monospace:9else:2fi u#,0,.6desc_depth#);
+adjust_fit(0,0);
+toniko:=monotoniko; monotoniko:=false;
+iota_sub(.5w); monotoniko:=toniko;
+endchar;% "Iota subscript"
+cmchar "Breve accent";
+beginchar(oct"036",7u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=0;
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround (1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+currentbreadth:=0;
+endchar;% "Breve accent"
+cmchar"Wide breve accent";
+beginchar(oct"227",12u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=0;
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround (1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{(1,-1)}...z2e{right}...{1,1}z3e; % stroke
+currentbreadth:=0;
+penlabels(1,2,3,4,5);
+endchar;% "Wide breve accent"
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"037",7u#,.15[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+%top y1r=top y2r=h+o;
+lft x1=w-rt x2=0;
+bot y1l=bot y2l=vround (h+o);
+filldraw stroke z1e--z2e; % bar
+currentbreadth:=0;
+endchar;% "Macron (bar) accent"
+cmchar "Lowered cap to go under iota or upsilon";
+beginchar(oct"001",6u#,0,desc_depth#);
+adjust_fit(0,0);
+numeric mid_width;mid_width=1/3[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(vair,135); pos2(mid_width,90); pos3(vair,45);
+lft x1r=0; rt x3r=w; bot y1l=max(-d,-3mid_width)-separator=bot y3l;
+x2=.5[lft x1r,rt x3r]; top y2r=-separator;
+filldraw double_circ_stroke z1e..z2e..z3e;
+penlabels(1,2,3);
+currentbreadth:=0;
+endchar;% "Lowered cap to go under iota or upsilon"
+cmchar "Small tie to go under any letter";
+beginchar(oct"024",6u#,0,desc_depth#);
+adjust_fit(0,0);
+numeric mid_width;mid_width=1/3[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(vair,-135); pos2(mid_width,-90); pos3(vair,-45);
+lft x1r=0; rt x3r=w; top y1l=-separator=top y3l;
+x2=.5[lft x1r,rt x3r]; bot y2r=max(-d,-3mid_width)-separator;
+filldraw double_circ_stroke z1e..z2e..z3e;
+penlabels(1,2,3);
+currentbreadth:=0;
+endchar;% "Small tie to go under any letter"
+%endinput;
+% questi sono i due lati di un circonflesso ^ col vertice alla base
+cmchar "Left side of nexus";
+beginchar(oct"020",2.5u#,0,desc_depth#);
+adjust_fit(0,0);
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(hair,135); pos2(1.5u,angle((-slant,1)));
+lft x1r=0; bot y1l=-d; rt x2l=hround(w+eps); top y2r=h;
+filldraw circ_stroke z1e--z2e;
+penlabels(1,2);
+endchar;% "Left side of nexus"
+cmchar "Right side of nexus";
+beginchar(oct"021",3.5u#,0,desc_depth#);
+adjust_fit(0,0);
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos2(hair,45); pos1(1.5u,angle((-slant,1)));
+lft x1l=hround(0-eps); top y1r=h; rt x2r=w; bot y2l=-d;
+filldraw circ_stroke z2e--z1e;
+penlabels(1,2);
+endchar;% "Right side of nexus"
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbbase.mf b/Master/texmf-dist/fonts/source/public/cb/cbbase.mf
new file mode 100644
index 00000000000..c2b73b897ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbbase.mf
@@ -0,0 +1,318 @@
+% Copyright (C) 1997---2001, 2002 Claudio Beccari
+% version 2.2b 2002/02/23
+% The greatest part of this file was written by Silvio Levy; CB aknowledges
+% Silvio's work.
+% CB added some material at the end and "corrected" some definitions,
+% in particular those that produced overflows at high resolutions and
+% magnifications.
+% The file was renamed in order to distinguish it from Silvio's one.
+numeric cbbase; cbbase:=1; %don't read this file twice
+% make reference to file in subdirectories less painful
+def readfrom(expr filename) = scantokens ("input " & filename); enddef;
+% we start by defining a few more font parameters:
+boolean monowidth; %are the widths of all strokes roughly the same?
+boolean straight; %are certain strokes straight?
+let old_font_setup = font_setup;
+def font_setup =
+ define_whole_vertical_pixels(acc_ht,circ_ht,Circ_ht,iota_dp); %accent heights
+ old_font_setup;
+enddef;
+%Since many of our characters are composite (for instance, accent+vowel),
+%we avoid recomputing many pictures by saving them.
+%But if we're using various definitions for the same letter (as when
+%running 6test.mf) we can't use this trick, so we set working_hard:=true.
+boolean working_hard; %are we to recompute letters every time?
+working_hard:=false;
+def this_letter =
+ italcorr ital; adjust_fit(fit_params);
+ if known savedpicture: currentpicture:=savedpicture; else: gen_letter; fi
+ if not working_hard: picture savedpicture; savedpicture:=currentpicture; fi
+enddef;
+%The following routines are for use with double characters.
+boolean is_double; is_double:=false;
+let oldendchar=endchar;
+def begindoublechar(expr c,w_sharp,h_sharp,d_sharp) =
+ is_double:=true; beginchar(c,w_sharp,h_sharp,d_sharp);
+enddef;
+def doublecharkern(expr k_sharp) =
+ if not monospace: k:=hround(k_sharp*hppp); r:=r+k; charwd:=charwd+k_sharp; fi
+enddef;
+def middoublechar(expr w_sharp,h_sharp,d_sharp) =
+ scantokens extra_endchar;
+ forsuffixes e=r,l,w,charwd: numeric first.e; first.e:=e; endfor
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+ charwd:=w_sharp; charht:=max(charht,h_sharp); chardp:=max(chardp,d_sharp);
+ picture first.glyph; first.glyph=currentpicture;
+ clearxy;
+ clearit;
+ clearpen;
+enddef;
+def endchar =
+ if is_double :
+ charwd:=first.charwd+charwd;
+ picture second_glyph; second_glyph=currentpicture shifted (first.r-l,0);
+ currentpicture:= first.glyph; addto currentpicture also second_glyph;
+ scantokens extra_endchar;
+ w:=first.w+w; r:=first.r-l+r; l:=first.l;
+ chardx:=first.w+w; interim xoffset:= -l;
+ if proofing>0: makebox(proofrule); fi
+ shipit;
+ if displaying>0: makebox(screenrule); showit; fi
+ endgroup;
+ is_double:=false
+ else : oldendchar
+ fi
+enddef;
+% The new definition of endchar must be memorized so that
+% the macro `iff' keeps working
+let endchar_=endchar;
+%By convention, we reserve the name z1' for the direction at z1, and so on.
+%The direction at z1r is z1'r, or zdir1r.
+vardef zdir[]@#= z@'@# enddef;
+vardef assign_z@#(expr zz)= x@#:=xpart(zz); y@#:=ypart(zz) enddef;
+vardef sgn(expr x)= if (x>0): 1 elseif (x<0): -1 else: 0 fi enddef;
+vardef double_circ_stroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: errmessage "Beware: `stroke' isn't intended for cycles"; fi
+ path_.l .. reverse path_.r .. cycle enddef;
+vardef drawloop(suffix $,$$,@@,@)=
+ numeric temp[], sup;
+ sup=superness;
+ forsuffixes e=r,l:
+ path curv[]e; numeric S[]e;
+ curv1e=pulled_super_arc.e($,$$)(.5superpull);
+ curv2e=pulled_super_arc.e(@,@@)(.5superpull); endfor
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (temp1,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,temp2)=curv1l intersectiontimes curv2r;
+ for i=1 upto 9:
+ exitif (temp1>=S1r) and (temp2>=S2r);
+ begingroup
+ numeric S[]r, S[]l, temp[]; pair p;
+ interim superness:=(i/10)[sup,1];
+ message"change in superness required; increased to "; show superness;
+ curv1r:=pulled_super_arc.r($,$$)(0);
+ curv2r:=pulled_super_arc.r(@,@@)(0);
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (temp1,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,temp2)=curv1l intersectiontimes curv2r;
+ endgroup;
+ endfor;
+ if S1l=-1 : S1l:=2; fi
+ if S2l=-1 : S2l:=2; fi
+ filldraw stroke subpath(0,S1e+eps) of curv1e;
+ filldraw stroke subpath(0,S2e+eps) of curv2e;
+ filldraw subpath (S1r+eps,2) of curv1r...subpath(2,S2r+eps) of curv2r..cycle;
+enddef ;
+% helpful macro for deciding the quadrant in gr_arc.$ ($=r,l)
+vardef signum(expr x)=if x<0: -1 else: 1 fi enddef;
+vardef gr_arc.r(suffix $,$$,$$$)(expr min,max,tilt)=
+ pair center, corner;
+ if signum(y$$$r-y$r)*signum(x$$$r-x$r) < 0 : %first or third quadrant
+ center=(x$$$r,y$r); corner=(x$r,y$$$r);
+ else :
+ center=(x$r,y$$$r); corner=(x$$$r,y$r);
+ fi
+ z$r{corner-z$r}...superness[center,corner]{z$$$r-z$r}...
+ {z$$$r-corner}z$$$r
+enddef;
+vardef gr_arc.l(suffix $,$$,$$$)(expr min,max,tilt)=
+ save p,q,wdth;
+ pair center, corner, temp;
+ numeric wdth, t, s;
+ path p,q;
+ if signum(y$$$r-y$r)*signum(x$$$r-x$r) < 0 : %first or third quadrant
+ center=(x$$$r,y$r); corner=(x$r,y$$$r);
+ if tilt>=0 : wdth:=min; other_wdth:=max; t:=2(1-tilt);
+ else : wdth:=max; other_wdth:=min; t:=-2tilt; fi
+ else :
+ center=(x$r,y$$$r); corner=(x$$$r,y$r);
+ if tilt>=0 : wdth:=max; other_wdth:=min; t:=2(1-tilt);
+ else : wdth:=min; other_wdth:=max; t:=-2tilt; fi
+ fi
+ p:=z$r{corner-z$r}...superness[center,corner]{z$$$r-z$r}...
+ {z$$$r-corner}z$$$r;
+ pos$$(wdth,angle direction t of p - 90);
+ z$$r=point t of p;
+ assign_z$$'l(direction t of p);
+ assign_z$$'r(z$$'l);
+ if other_wdth<=currentbreadth: errmessage "bad pos"; fi
+ temp:=point (2-t) of p-
+ (other_wdth-currentbreadth,0) rotated (angle direction (2-t) of p - 90);
+ boolean k[]; k1:=false; k2:=false;
+ if unknown x$l:
+ k1:=true;
+ assign_z$l(temp);
+ assign_z$'l(direction(2-t) of p);
+ if signum(y$$$r-y$r)*signum(x$$$r-x$r) < 0 : %first or third quadrant
+ y$l:=2ypart center-y$l;
+ x$'l:=-x$'l;
+ else:
+ x$l:=2xpart center-x$l;
+ y$'l:=-y$'l;
+ fi
+ fi
+ if unknown x$$$l:
+ k2:=true;
+ assign_z$$$l(temp);
+ assign_z$$$'l(direction(2-t) of p);
+ if signum(y$$$r-y$r)*signum(x$$$r-x$r) < 0 : %first or third quadrant
+ x$$$l:=2xpart center-x$$$l;
+ y$$$'l:=-y$$$'l;
+ else:
+ y$$$l:=2ypart center-y$$$l;
+ x$$$'l:=-x$$$'l;
+ fi
+ fi
+ q:=z$l{z$'l}...z$$l{z$$'l}...z$$$l{z$$$'l};
+ if k1 :
+ t := xpart(q intersectiontimes (center---z$r));
+ if t=-1 : t:=0; fi
+ assign_z$l(point t of q);
+ assign_z$'l(direction t of q);
+ assign_z$'r(corner-z$r);
+ z$l+z$r=2z$;
+ else: t:=0;
+ fi
+ if k2 :
+ s := xpart(q intersectiontimes (center---z$$$r));
+ if s=-1 : s:=2; fi
+ assign_z$$$l(point s of q);
+ assign_z$$$'l(direction s of q);
+ assign_z$$$'r(z$$$r-corner);
+ z$$$l+z$$$r=2z$$$;
+ else: s:=2;
+ fi
+ subpath (t,s) of q
+enddef;
+vardef doodah(suffix $,$$,$$$)=
+ if known x$$:
+ vardef ward(expr gr)=
+ sgn(xpart direction 1 of (z${zdir$}..(x$$,gr)..{zdir$$$}z$$$)) <> sgn(x$-x$$)
+ enddef;
+ y$$=solve ward(y$,y$$$);
+ else:
+ vardef ward(expr gr)=
+ sgn(ypart direction 1 of (z${zdir$}..(gr,y$$)..{zdir$$$}z$$$)) <> sgn(y$-y$$)
+ enddef;
+ x$$=solve ward(x$,x$$$);
+ fi
+ (z${zdir$}..z$$..{zdir$$$}z$$$)
+enddef;
+forsuffixes e=r,l:
+ vardef club.e(suffix $,$$,$$$)= doodah($e,$$e,$$$e) enddef; endfor
+screen_rows:=600; screen_cols:=1000;
+vardef alpha_tail(suffix $,$$) =
+ pos$$(hair,180); top y$$=vround 4/3[bot y$l,top y$r]; %tip of hook
+ rt x$$l=hround(x$+(y$$-y$)+.5hair); %central arc is round
+enddef;
+vardef pi_bar =
+ pos3(vstem,-90); rt x3=hround(w-.75u); top y3l=x_height; %top right
+ pos2(vstem,-90); y2=y3; x2=.25w; %top left
+ x1 if SansSerif: +.25hair else:-.5hair fi =hround.75u; y1-.5hair=4/3[top y2l,bot y2r]; %tip of bar
+ numeric slope; slope=angle((z2-z1)yscaled 2); pos1(hair,slope-90);
+ forsuffixes e=l,r: z1'e=(z2e-z1e)yscaled 2; endfor
+ if SansSerif: %bar
+ filldraw stroke z1e{z1'e}...z2e---z3e;
+ else:
+ filldraw circ_stroke z1e{z1'e}...z2e---z3e;
+ fi
+enddef;
+vardef cblpi_bar =
+ pos2(vstem,-90); top y2l=x_height; x2=.3w; %top left
+ x1-.5hair=hround.75u; y1=y2r-u; %tip of bar
+ numeric slope; slope=angle((z2-z1)yscaled 2); pos1(hair,slope-90);
+ forsuffixes e=l,r: z1'e=(z2e-z1e)yscaled 2; endfor
+ pos3(vstem,-90); x2+x3=w+.8u; z3=z2+whatever*dir(-4); % Tilt adjusted after Dimitri Fillippou
+ pos11(hair,slope-90); x11=w-u; y11l=h; %right tip
+ forsuffixes e=l,r: z11'e=(z11e-z3e)yscaled 2; endfor
+ filldraw double_circ_stroke z1e{z1'e}...z2e---z3e...{z11'e}z11e; %bar
+enddef;
+%
+vardef cbltau_bar =
+ numeric cbtilt; cbtilt=angle(-slant,1)+180;
+ pos2(vstem,cbtilt); top y2l=x_height; x2=.25w; %top left
+ x1-.5hair=hround.75u; y1=bot y2r-.5u; %tip of bar
+ numeric slope; slope=angle((z2-z1)yscaled 2); pos1(hair,slope-90);
+ forsuffixes e=l,r: z1'e=(z2e-z1e)yscaled 2; endfor
+ pos3(vstem,cbtilt); x2+x3=w; z3=z2+whatever*dir(-4); % Tilt adjusted after Dimitri Fillippou
+ pos11(hair,slope-90); z11+z1=z2+z3; %right tip
+ forsuffixes e=l,r: z11'e=(z11e-z3e)yscaled 2; endfor
+ filldraw double_circ_stroke z1e{z1'e}...z2e---z3e...{z11'e}z11e; %bar
+enddef;
+%% Extension for font paramemeter calculations with splines
+% ---------------------------------------------------------------------------
+%
+%
+%
+% some extra font parameters
+%
+def font_cap_height expr x = fontdimen 8: x enddef;
+def font_asc_height expr x = fontdimen 9: x enddef;
+def font_acc_cap_height expr x = fontdimen 10: x enddef;
+def font_desc_depth expr x = fontdimen 11: x enddef;
+def font_max_height expr x = fontdimen 12: x enddef;
+def font_max_depth expr x = fontdimen 13: x enddef;
+def font_digit_width expr x = fontdimen 14: x enddef;
+def font_cap_stem expr x = fontdimen 15: x enddef;
+def font_baselineskip expr x = fontdimen 16: x enddef;
+% Some booleans
+boolean slitex, straight, monowidth, barebones, cursive,cbleipzig,cbroman;
+barebones:=false; cursive:=false; cbleipzig:=false; cbroman:=false;
+if unknown invisibile: boolean invisibile; invisibile:=false; fi
+extra_endchar:=extra_endchar&"if invisibile: clearit;fi";
+% For modern monotoniko spelling we need another boolean that might
+% have been already defined in another driver file
+if unknown monotoniko: boolean monotoniko; monotoniko:=false; fi
+boolean small_caps; small_caps:=false;
+numeric sclc; sclc:=1;
+boolean metrics; metrics:=false;
+boolean SansSerif; SansSerif:=false;
+% For ouline fonts
+% The body is the solution of exercise 13.23 of MFbook
+% Thanks to Don Hosek who added "minor" enhancements for writewhite
+% printers and high resolution printers
+if unknown outlining: boolean outlining; outlining:=false; fi
+% do outline only when explicitly told to do so by means of the declaration
+% outlining:=true;
+% in the font driver file
+ def outline =
+ cull currentpicture keeping (1,infinity);% start of solution of ex.13.23
+ picture v; v:=currentpicture;
+ cull currentpicture keeping (1,1) withweight 3;
+ addto currentpicture also v - v shifted right
+ -v shifted left - v shifted up - v shifted down;
+ cull currentpicture keeping (1,4);% end of solution of ex.13.23
+ % next code for high resolution typesetters
+ % replacing each pixel x with the following pattern of
+ % pixels in the currentpicture:
+ % X
+ % XxX
+ % X
+ % to create darker lines for outlines.
+ % Adjacent x pixels superimpose their X companions
+ if (pixels_per_inch >= 1200) :
+ v:=currentpicture;
+ addto currentpicture also v shifted right +
+ v shifted left + v shifted up + v shifted down;
+ cullit;
+ % and the next code is for medium resolution printers such
+ % as the Varityper(600dpi) and the APSu5(723dpi) or
+ % write-white laser printers such as the Xerox 8790
+ % replacing pixel x with:
+ % X
+ % Xx
+ % to create slightly darker lines for outlines.
+ % Adjacent x pixels (again) superimpose their X companions
+ elseif (pixels_per_inch >= 600)
+ or (write_white=1): % See below
+ addto currentpicture also currentpicture shifted left;
+ addto currentpicture also currentpicture shifted up;
+ fi
+ enddef;
+% Specify write_white:=1 in MF command line or define new modes that
+% include write_white:=1 among their parameters
+% otherwise the default holds true:
+if unknown write_white: write_white:=0; fi
+readfrom("cbspline");
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbdigits.mf b/Master/texmf-dist/fonts/source/public/cb/cbdigits.mf
new file mode 100644
index 00000000000..9398edaf6bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbdigits.mf
@@ -0,0 +1,1053 @@
+% file cbdigits.mf
+%
+% The first part of this file is the same as Computer Modern's romand.mf.
+% It contains the ten digits in so-called roman style.
+% Character codes '060 through '071 are generated.
+%
+% The rest is Copyright (C) 1997, 1999, 2000, 2001, 2002 Claudio Beccari
+% v.2.6 2002/04/09
+% The second part contains the `greek numerals' and special signs for such
+% numerals. The last part contains the 'Athenian numerals'.
+
+% All digits have the same height, width, depth, and italic correction.
+
+cmchar "The numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+currentbreadth:=0;
+
+cmchar "The numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+% CB statement added in order to overcome rounding errors with
+% small pixel densities
+if light_stem<=currentbreadth: light_stem:=currentbreadth+eps; fi
+%
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+currentbreadth:=0;
+
+cmchar "The numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+currentbreadth:=0;
+
+cmchar "The numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75h+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+currentbreadth:=0;
+
+cmchar "The numeral 4";
+beginchar("4",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab,h-light_stem]+1
+ else:.35(h-light_stem) fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=0;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+currentbreadth:=0;
+
+cmchar "The numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=vround .61803h+o;
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+currentbreadth:=0;
+
+cmchar "The numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+currentbreadth:=0;
+
+cmchar "The numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(eps,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3h; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+currentbreadth:=0;
+
+cmchar "The numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+currentbreadth:=0;
+
+cmchar "The numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+currentbreadth:=0;
+
+
+% Here we start with the greek numerals; the three numerals stigma, qoppa,
+% and sampi, are expressly designed with the suggestions of Apostolos
+% Styropoulos and taking into account the variant shapes that exist for
+% these glyphs.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+cmchar "The lowercase numeral stigma";
+beginchar(6,9u#,x_height#,0);
+adjust_fit(0,0);
+ if cursive:
+ if slitex or monospace: pickup fine.nib else: pickup crisp.nib fi;
+ pos1(hair,90); top y1r=h+oo; rt x1=w-u;
+ pos2(stem,180); lft x2r=u;
+ pos3(hair,-90); y3=.9bar_height; y2=.5[y1,y3];
+ rt x3=.5[rt x4,rt x1r];
+ pos4(.6[hair,stem],0); y4=y3;
+ pos5(.6[hair,stem],0); bot y5=0;
+ x5=x4=.5[x2,x1];
+ filldraw stroke z1e{left}..{down}z2e..{right}z3e;
+ filldraw stroke z5e--z4e;
+ elseif cbleipzig or cbroman:
+ pickup fine.nib; numeric slope;
+ pos4(hair,-180); y4=.5h; lft x4r=hround .75u; %left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); %bottom right
+ top y3r=h+oo; x3=x5; pos3(vstem,90);
+ pos10(vstem,90); y10=y3;x10=x3+2.5u; %top inflecton
+ pos5(vstem,-90); bot y5r=0; %bottom inflection
+ x5-x4l=.5(y3l-y5l);
+ pos7(hair,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+ pos9(hair,180); x9=x6; y9-y3=y5-y6;
+ bot y7l=-if not slitex:.5fi desc_depth;
+ pair za; za=.5[z3,z5]; slope=angle((0,h)-za);
+ pos1(.25[hair,stem],slope); pos2(.25[hair,stem],360-slope);
+ y4=.5[y1l,y2l]; x1l=x2l;
+ z1l=za+1.05*((z4l-za) rotated -(180-slope));
+ pos8(vstem,-90); y8=y5;x8=x5+2u;
+ filldraw double_circ_stroke
+ z7e{right}...z6e...z8e...z5e{left}..z2e..%
+ z4e{up}..z1e..z3e{right}...z10e..{up}z9e;
+ else:
+ if serifs: pickup crisp.nib; else: pickup fine.nib; fi
+ pos1(stem,90); top y1r=h+o; if serifs: if monospace:rt x1 = w-u+o;
+ else:rt x1 +.5stem =w-u+o;
+ fi
+ else: rt x1=w-u;
+ fi
+ pos6(.55[vair,stem],90); top y6r= top y1r;
+ pos2(vair,180); lft x2r=u if serifs: -o fi;
+ pos3(stem,-90); y3=.9bar_height; y2=.5[y1,y3];
+ x3=.5w+u if not serifs:+.5stem fi;
+ pos4(vair,0); y4=y3;
+ pos5(stem,0); if serifs: if monospace: bot y5=-o;
+ else: bot y5=.5stem -o;
+ fi
+ else: bot y5=0;
+ fi
+ x5=x4=.5[x2,x1]; x6=.5[x4,x3];
+ if serifs:
+ filldraw double_circ_stroke z1e..z6e..{down}z2e..{right}z3e;
+ filldraw circ_stroke z5e--z4e;
+ else:
+ filldraw stroke z1e..z6e..{down}z2e..{right}z3e;
+ filldraw stroke z5e--z4e;
+ fi
+ fi
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+currentbreadth:=0;
+
+cmchar "The lowercase variant stigma";
+beginchar(7,if cbroman:9else:10fi u#,%
+ if cbroman:x_height# else:body_height# fi,%
+ if cursive:desc_depth# elseif cbroman:0else:2cap_stem# fi);
+adjust_fit(0,0);
+ if cursive:
+ if slitex or monospace: pickup fine.nib else: pickup crisp.nib fi;
+ pos0(hair,90); pos3(stem,if serifs:60else:90fi);
+ pos4(cap_stem,180);
+ pos5(cap_stem,225); pos6(stem,180); pos7(hair,90);
+ w-rt x0r=3/4u=lft x4r; rt x0r=rt x6l;
+ top y0r=.3[h,x_height]; y4=x_height;
+ path curva,mediana; curva=z4r{up}..{right}z0r; mediana=(w/2,-d)--(w/2,h);
+ z3r=(curva intersectionpoint mediana);
+ %x3=w/2; top y3r=top y0r;
+ x5=w/2; y5=.5[y4,y6]; y6=.5[y5,y7];
+ bot y7l=-oo; x7=.3[x4,x5];
+ filldraw stroke z0e{left}..z3e..{down}z4e..z5e..{down}z6e..{left}z7e;
+ path curva; curva=z7{right}..{up}z6;
+ pair zA,zB;
+ zA= mediana intersectiontimes curva;
+ z8=.5[point xpart zA of mediana, point ypart zA of curva];
+ zB= direction ypart zA of curva;
+ pos8(stem,angle zB); pos9(stem,if serifs:45else:60fi); pos10(hair,90);
+ bot y9l=-d-oo; lft x9l=rt x8r; y10=top y9r; x9=.5[x8,x10];
+ filldraw stroke z8e{down}..{right}z9e..z10e;
+ path mediana, curva; pair zA,zB;
+ elseif cbroman: % No variant stigma (2000/07/23)
+ pickup fine.nib; numeric slope;
+ pos4(hair,-180); y4=.5h; lft x4r=hround .75u; %left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); %bottom right
+ top y3r=h+oo; x3=x5; pos3(vstem,90);
+ pos10(vstem,90); y10=y3;x10=x3+2.5u; %top inflecton
+ pos5(vstem,-90); bot y5r=0; %bottom inflection
+ x5-x4l=.5(y3l-y5l);
+ pos7(hair,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+ pos9(hair,180); x9=x6; y9-y3=y5-y6;
+ bot y7l=-if not slitex:.5fi desc_depth;
+ pair za; za=.5[z3,z5]; slope=angle((0,h)-za);
+ pos1(.25[hair,stem],slope); pos2(.25[hair,stem],360-slope);
+ y4=.5[y1l,y2l]; x1l=x2l;
+ z1l=za+1.05*((z4l-za) rotated -(180-slope));
+ pos8(vstem,-90); y8=y5;x8=x5+2u;
+ filldraw double_circ_stroke
+ z7e{right}...z6e...z8e...z5e{left}..z2e..%
+ z4e{up}..z1e..z3e{right}...z10e..{up}z9e;
+ else:
+ pickup fine.nib;
+ pos0(hair,-180); pos3(cap_stem,90);
+ pos4(hair,-180); pos5(cap_stem,-90);
+ pos6(hair,180); pos8(hair,90);
+ pos7(cap_stem,90); pos9(hair,-90);
+ pos10(hair,-180);pos11(hair,-90);
+ pos12(hair,-135); pos13(hair,-180); pos14(hair,-90);
+ z8=z10;
+ bot y9r=-2cap_stem; bot y8l=0; bot y7l=0; y5=y4-.5cap_stem;
+ y6=.5[y5r,y8r];
+ y4=math_axis+.7cap_stem;
+ y3l=x_height; y0=min(body_height,x_height+2cap_stem);
+ y11=min(.5[y4,y7],y7+2cap_stem); y12l=y14l=y13l=y9l;
+ x8=.5w; x9=x8+cap_stem; x7=.25w;
+ x6=.25[x0,x5];
+ x5=x8;
+ lft x4r=.5u;
+ x3=x5;
+ x11=x7;
+ rt x0l=w-u; x12l=x14l=x13l; x13=x8;
+ filldraw circ_stroke z0e{down}...z3e{left}...z4e{down};
+ filldraw double_circ_stroke z4e{down}...z11e{right}...z5e{right}...
+ z6e{down}...z8e{left};
+ filldraw circ_stroke z8e{left}...z7e{left};
+ filldraw circ_stroke z9e{left}---z14e...z12e...z13e---z10e{up};
+ fi
+penlabels(0,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+currentbreadth:=0;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+cmchar "The lowercase numeral qoppa";
+beginchar(18,if monospace:9else:7fi u#,%
+ if cbleipzig or cbroman:0else:0.5fi[asc_height#,x_height#],%
+ if cbleipzig or cbroman:desc_depth# else:0fi);
+ if cursive and not (slitex or monospace):
+ adjust_fit(.5u#,.5u#); pickup crisp.nib;
+ pos1(stem,180); pos2(stem,225);
+ pos4(stem,225); pos5(stem,180);
+ .5[z1,z5]=.5[z2,z4]=z3=(.5w,bar_height);
+ top y1r=h; lft x1r=u; x2r= x1; y2l=bar_height;
+ pos3(hair,angle(z4-z2)-90);
+ filldraw %stroke
+ z1r{down}..z2r{right}..z3r{z4-z2}..{down}z5r--
+ z5l{up}..z4l{left}..z3l{z2-z4}..{up}z1l--cycle;
+ elseif cbleipzig or cbroman:
+ adjust_fit(0,0); numeric qhair; qhair=.5[hair,stem];
+ pos1(qhair,0); x1l=u;y1=h;
+ pos6(qhair,0);x6r=w-u;y6=-d;
+ z0=.5[z1l,z6r]; z0=.5[z5r,z2l]; z0=.5[z6r,z1l];
+ pos2(qhair,0); x2l=.5u; y2l=y0-stem/2;
+ pos3(stem,angle(z1l-z2l)); z3l=z2l;
+ pos4(stem,angle(z5r-z6r)); z4r=z5r;
+ pos5(qhair,0);
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; filldraw stroke z5e--z6e;
+ else:
+ adjust_fit(0,0);
+ numeric q_sl, q_rad;
+ if serifs:
+ pickup crisp.nib;
+ else:
+ pickup fine.nib;
+ fi
+ q_rad=.8[vair,stem];
+ q_sl=if not monospace:1.414* fi(vair);
+ pos1(q_rad,180); pos4(q_rad,180);
+ pos5(q_sl,225);
+ pos7(q_sl,225);
+ lft x1r =lft x5r=u; top y1r=h;
+ top y5l=bar_height;
+ .5[z5,z7]= .5[z1,z4]=(.5w,bar_height);
+ if serifs:
+ filldraw double_circ_stroke
+ z1e{down}..{down}z5e--z7e{down}..{down}z4e;
+ else:
+ filldraw stroke
+ z1e{down}..{down}z5e--z7e{down}..{down}z4e;
+ fi
+ fi
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+currentbreadth:=0;
+
+
+cmchar "The lowercase variant numeral qoppa";
+beginchar(19,9u#,if cbleipzig or cbroman:1else:.5fi[body_height#,x_height#],
+if cursive:.2elseif cbleipzig or cbroman:1else:0fi desc_depth# );
+adjust_fit(0,0);
+ if cursive:
+ if slitex or monospace: pickup fine.nib else: pickup crisp.nib fi;
+ pos1(hair,90); pos2(stem,180); pos3(hair,270); pos4(stem,0);
+ lft x2r = w-rt x4r=u; y2=y4=.5[y1,y3]; x1=x3=w/2;
+ top y1r=h+oo; bot y3r=3/4bar_height;
+ filldraw stroke z1e{left}..z2e..z3e..z4e..{left}z1e;
+ pos5(if not monospace:.8fi stem,0); pos6(stem,0); z5=z3;
+ x6=x5; bot y6=-d;
+ filldraw stroke z5e--z6e;
+ elseif cbleipzig or cbroman:
+ if cbroman:pickup tiny.nib;fi
+ pos1(if cbleipzig:fine else:hair fi,90); pos2(stem,180);
+ pos3(if cbleipzig:fine else:hair fi,270); pos4(stem,0);
+ lft x2r = w-rt x4r=u; y2=y4=.5[y1,y3]; x1=x3=w/2;
+ top y1r=h+oo; bot y3r=-oo;
+ filldraw stroke z1e{left}..z2e..z3e..z4e..{left}z1e;
+ pos5(if cbroman:stem else:hair fi,0); pos6(stem,0); z5=z3;
+ x6=x5; bot y6=-d if cbleipzig:+.5stem fi;
+ if cbroman:
+ filldraw stroke z5e--z6e;
+ dish_serif(6,5,a,1/3,.8jut,b,1/3,.8jut);
+ else:
+ filldraw circ_stroke z6e--z5e;
+ fi
+ else:
+ pickup pencircle xscaled vstem yscaled .5vstem rotated 30;
+ x1=1.5u; x2=w-x1;
+ y1=y2=x_height-.3vstem;
+ draw z1..z2..cycle;
+ penpos3(hair,0); penpos4(stem,0);
+ y3=y1-.5(x2-x1);
+ x3=x4=.5w; y4=0;
+ filldraw circ_stroke z4e---z3e;
+ fi
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+currentbreadth:=0;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+cmchar "The lowercase numeral sanpi";
+beginchar(oct"033",if monospace:9else:13fi u#,asc_height#,0);
+ adjust_fit(0,0);
+ if cursive:
+ if slitex or monospace: pickup fine.nib else: pickup crisp.nib fi;
+ pos1(.3[hair,stem],90); pos2(stem,0);
+ lft x1r=w-rt x2r=u; top y1r=h+oo; bot y2r=0;
+ path p_san; p_san:= z1{right}..{down}z2;
+ filldraw stroke z1e{right}..{down}z2e;
+ pair zA,zB; z3= point 1/3 of p_san; z4=point 2/3 of p_san;
+ zA= direction 1/3 of p_san; zB=direction 2/3 of p_san;
+ pos3(hair,angle(zA)); pos4(hair,angle(zB));
+ z0=(x1,bar_height); numeric base_dir; base_dir=1/4angle(z2-z0);
+ z5=1/4[z0,z2]; z6=.5[z5,z2];
+ pos5(stem,base_dir); pos6(stem,base_dir);
+ filldraw stroke z5e{dir(90+base_dir)}..{zA zscaled(0,1)}z3e;
+ filldraw stroke z6e{dir(90+base_dir)}..{zB zscaled(0,1)}z4e;
+ elseif cbleipzig or cbroman:
+ if cbroman: pickup tiny.nib; fi
+ numeric s_width, S_width; s_width=.25[hair,stem]; S_width=.5[hair,stem];
+ pos1(S_width,90); pos2(stem,0);
+ lft x1r-s_width/2=w-rt x2r=u; top y1r=h+oo; bot y2r=s_width/2-oo;
+ path p_san; p_san:= z1{right}..{down}z2;
+ filldraw double_circ_stroke z1e{right}..{down}z2e;
+ pair zA,zB,zC; z3= point 2/5 of p_san; z4=point 3/5 of p_san;
+ zA= direction 2/5 of p_san; zB=direction 3/5 of p_san;
+ zC=direction 1/2 of p_san rotated -90;
+ pos3(s_width,angle(zA)); pos4(s_width,angle(zB));
+ z5=z3+5u*dir(angle(zC)); z6=z4+5u*dir(angle(zC));
+ pos5(s_width,angle(zC)+90); pos6(s_width,angle(zC)+90);
+ filldraw circ_stroke z5e..z3e;
+ filldraw circ_stroke z6e..z4e;
+ else:
+ if serifs: pickup crisp.nib; else: pickup fine.nib; fi
+ pos1(vstem,90);
+ pos2(stem,0);
+ rt x2r=hround(w-.75u);
+ if serifs:
+ bot y2-.5(stem-currentbreadth)=-o;
+ top y1r=h;
+ x1-.5(vstem-currentbreadth)+x2r=w;
+ filldraw double_circ_stroke z1e{right}..{down}z2e;
+ else:
+ y2=0;
+ top y1r=h;
+ lft x1+x2r=w;
+ filldraw stroke z1e{right}..{down}z2e;
+ fi
+ path p_san; p_san:= z1{right}..{down}z2;
+ numeric a_dir, b_dir; a_dir= 40; b_dir=60;
+ pos3(vair,-a_dir); pos4(stem,0);
+ pos5(vair,-b_dir); pos6(stem,0);
+ z3=directionpoint dir(-a_dir) of p_san;
+ z5=directionpoint dir(-b_dir) of p_san;
+ x4l=x1; y4=if slitex:.8 fi bar_height;
+ x6=.5w; y6=.5y4;
+ if serifs:
+ filldraw circ_stroke z4e{up}..{dir(90-a_dir)}z3e;
+ filldraw circ_stroke z6e{up}..{dir(90-b_dir)}z5e;
+ else:
+ filldraw stroke z4e{up}..{dir(90-a_dir)}z3e;
+ filldraw stroke z6e{up}..{dir(90-b_dir)}z5e;
+ fi
+ fi
+ path p_san; numeric a_dir,b_dir;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+currentbreadth:=0;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+cmchar "The greek numeral right apex anw tonos";
+ beginchar(oct"376",3.5u#,acc_ht#,0);
+ adjust_fit(0,0);
+ acute(2/5w);
+endchar;
+
+currentbreadth:=0;
+
+cmchar "The greek numeral left apex katw tonos";
+beginchar(oct"377",3.5u#,acc_ht#,desc_depth#);
+ adjust_fit(0,0);
+ numeric accent_tilt, alto, basso; accent_tilt:=-30;
+ alto:=-.8(acc_ht - x_height); basso:=0;
+ 2/3[x22,x21]=.5w;
+if serifs: pickup crisp.nib;
+ accent_tilt:= (accent_tilt+angle(alto-basso,.5currentbreadth));
+ pos22(max(stem/5,currentbreadth+eps),accent_tilt); pos21(stem,accent_tilt);
+ top y22=basso; bot y21-.5stem=alto;
+ z21-z22=whatever*dir(90+accent_tilt);
+ filldraw circ_stroke z21e--z22e; % diagonal
+else: pickup fine.nib;
+ accent_tilt:= accent_tilt;
+ pos21(stem,0); pos22(vair,0);
+ bot y21=alto; top y22=basso; x22-x21=(alto-basso)*sind accent_tilt;
+ filldraw stroke z21e--z22e; % diagonal
+fi
+penlabels(21,22);
+currentbreadth:=0;
+endchar;
+
+currentbreadth:=0;
+
+cmchar "The greek numeral centered dot";
+beginchar(oct"046",5u#,dot_size#,0);
+ adjust_fit(0,0); pickup fine.nib;
+ pos1(dot_diam,0); pos2(dot_diam,90);
+ lft x1l=hround(.5w-.5dot_diam); y2=0; z1=z2; dot(1,2); % dot
+ currentpicture:=currentpicture shifted (0,math_axis);
+endchar;
+
+currentbreadth:=0;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Capital Greek numerals
+
+
+cmchar "Capital Qoppa";
+beginchar(oct"025",9u#,cap_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+pos1(cap_stem,0); x1=w/2; y1=.65x_height;
+pos2(cap_stem,0); x2=x1; bot y2=0;
+filldraw stroke z1e--z2e;
+if serifs:
+ dish_serif(2,1,a,1/3,cap_jut,b,1/3,cap_jut); % serif
+fi
+pickup crisp.nib;
+z3=z7=z1; pos3(hair,-90); pos7(hair,-90);
+pos5(hair,90); x5=x3; top y5r=h+oo;
+pos4(cap_stem,0-angle((1,slant))); %y4=.5[y3,y5]; x1=.5[x6,x4];
+pos6(cap_stem,180-angle((1,slant))); %y6=y4; lft x6r=.6u;
+.5[z4,z6]=.5[z3,z5]; z4-z6=whatever*(1,-.25slant); lft x6r=.6u;
+filldraw stroke z3e{right}...z4e...z5e...z6e...{right}z7e;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+
+cmchar "Capital Stigma";
+beginchar(oct"026",14u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.6w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+if serifs:
+ arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+ serif(2,1,b,1/3,cap_jut); % bottom serif
+fi
+pickup crisp.nib;
+pos5(cap_stem,90);x5r=x1l-tiny/2; y5r=y3r;
+pos6(cap_stem,-90); x6r=x5r; y6r=y2r-tiny/2;
+pos7(cap_stem,180); lft x7r=w-x4r; y7=.5[y1,y2];
+pos8(hair,90); pos9(hair,-90); x8=x9=.55[x7l,x2l]; y9r=y2l-tiny/2; y8r=y3r;
+filldraw stroke z8e{left}..z7e..z9e{right};
+filldraw z5r--z8r--z8l{right}...{down}z5l--cycle;
+filldraw z6r--z9r--z9l{right}...{up}z6l--cycle;
+x10=x2;y10=y2-tiny/2; filldraw z10--z6r--z6--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+
+
+cmchar"Capital Sampi";
+beginchar(oct"027",12u#,cap_height#,0);
+adjust_fit(if serifs:-.2u#,2u# else:-u#,0.5 u# fi);
+pickup tiny.nib;
+z1r=(w/4,h); z2r=(w-tiny/2,tiny/2);
+pos2(cap_stem,0); z1l-z2l=whatever*(z1r-z2r); z1r-z1l=whatever*up; z1=.5[z1r,z1l];
+filldraw stroke z1e--z2e;
+z3=.2[z1l,z2l]; pos3(stem,angle(z1l-z2l));
+numeric angolo; angolo=angle((z1l-z2l)xscaled-.4);
+z4-z3=whatever*dir(angolo); y4=tiny/2;
+z4r-z3r=whatever*(z4-z3); y4r=tiny/2; z4=.5[z4r,z4l];
+filldraw stroke z3e--z4e;
+z5=.4[z3l,z2l];pos5(stem,angle(z1l-z2l));
+z6=z5+whatever*dir(angolo); y6=y4;
+z6r=z5r+whatever*(z5-z6); y6r=y6; z6=.5[z6r,z6l];
+filldraw stroke z5e--z6e;
+if serifs:
+dish_serif(2,1,a,1/3,cap_jut,b,1/3,.8cap_jut); % right serif
+dish_serif(4,3,c,1/3,jut,d,1/3,jut); % left serif
+dish_serif(6,5,e,1/3,jut,f,1/3,jut); % center serif
+fi
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Athenian digits; this is the subset that includes the multiples of 50
+
+
+
+cmchar "Athenian numeral pente-deka";
+beginchar(2,15u#,cap_height#,0);
+adjust_fit(0,0);
+numeric PIstem; PIstem:=fudged.cap_stem-3stem_corr;
+if monospace and (gensize < 10): % small typewriter sizes!
+ numeric penna; penna:= PIstem*(.5+gensize/20);
+ pickup pencircle scaled penna;
+ x1=u+PIstem+penna; .5[x1,x4]=.5w;
+ y1=y4=.5penna;
+ x2-x1=x4-x3; x3=x2+apex_corr;
+ y2=y3=h-PIstem-penna;
+ draw z1--z2--z3--z4--z1;
+else:
+ numeric left_stem,alpha;
+ left_stem=cap_hair if hefty: -3stem_corr fi;
+ x1l=w-x4r=u+1.5stem;
+ y1=y4=0;
+ x2-x1=x4-x3; x3r=x2r+apex_corr;
+ y2=y3=h-1.5PIstem;
+ alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+ penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+ penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+ fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ y5=y6=cap_vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+ if y0<y3-cap_notch_cut: y0:=y3-cap_notch_cut;
+ if gensize>7:
+ unfill z0+.5right...{z4-z3}z6--z5{z2-z1}...z0+.5left--cycle; % counter
+ else:
+ unfill z0--z5--z6--cycle;
+ fi
+ else:
+ unfill z0--z5--z6--cycle;
+ fi % counter
+fi
+%
+pickup if monospace:pencircle else:pensquare fi scaled PIstem slanted slant;
+lft x50=lft x51=u = w-rt x53; x53=x52;
+bot y50=bot y53=0; top y51=top y52=h;
+draw (z50)--(z51)--(z52)--(z53);
+penlabels(0,1,2,3,4,5,6,50,51,52,53);
+endchar;
+
+currentbreadth:=0;
+
+
+cmchar "Athenian numeral pente-hkaton";
+beginchar(3,15u#,cap_height#,0);
+italcorr cap_height#*slant-.5u;
+adjust_fit(0,0);
+numeric PIstem; PIstem:=fudged.cap_stem-3stem_corr;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+lft x1l=lft x2l=hround (u+1.5PIstem if serifs:+if monospace:.3else:.5fi cap_jut fi);
+x3=x4=w-x1;
+top y1=top y3=h-1.5PIstem; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(bar,90); penpos6(bar,90);
+x5=x1; x6=x3; y5=y6=.52y1;
+fill stroke z5e--z6e; % bar
+if serifs:
+ numeric inner_jut,outer_jut;
+ if monospace:
+ outer_jut=.4jut; inner_jut=.3jut;
+ else:
+ outer_jut=.7jut;inner_jut=.5stem;
+ fi
+ dish_serif(1,2,a,1/3,outer_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,outer_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,outer_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,outer_jut); % lower right serif
+fi
+%
+pickup if monospace:pencircle else:pensquare fi scaled PIstem slanted slant;
+lft x50=lft x51=u = w-rt x53; x53=x52;
+bot y50=bot y53=0; top y51=top y52=h;
+draw (z50)--(z51)--(z52)--(z53);
+penlabels(1,2,3,4,5,6);
+endchar;
+
+currentbreadth:=0;
+
+cmchar "Athenian numeral pente-qilioi";
+beginchar(4,15u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=if monospace:-.2else:.7fi jut ; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+numeric PIstem; PIstem:=fudged.cap_stem-3stem_corr;
+%
+lft x1l=u+1.5PIstem+outer_jut; % top left
+lft x3l=x1l+xjut; % bottom left
+%
+rt x2r=x4r-xjut; % top right
+rt x4r=w-u-1.5PIstem-outer_jut; % bottom right
+%
+top y1=top y2=h-1.5PIstem; bot y3= bot y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs and (not monospace):
+ pickup tiny.nib;
+ numeric inner_jut[];
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,h,2/3,inner_jut2+xjut)(dark); % lower left serif
+fi
+%
+pickup if monospace:pencircle else:pensquare fi scaled PIstem slanted slant;
+lft x50=lft x51=u = w-rt x53; x53=x52;
+bot y50=bot y53=0; top y51=top y52=h;
+draw (z50)--(z51)--(z52)--(z53);
+penlabels(0,1,2,3,4,12,13,24,34,50,51,52,53);
+endchar;
+
+currentbreadth:=0;
+
+cmchar "Athenian numeral pente-muria";
+beginchar(5,15u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib;
+numeric PIstem; PIstem:=fudged.cap_stem-3stem_corr;
+pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround (w-u-1.5PIstem if monospace:-.3else:-.7fi jut);
+top y1=top y3=h-1.5PIstem; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7;
+top y5=top y8=top y1 if serifs:+1/4slab elseif slitex:+.5tiny fi; y6=y7;
+if monospace:
+ y6=vround (1/2*(y1));
+ filldraw stroke z1--z6--z3;
+else:
+ if hefty: y6=o;
+ numeric upper_notch,lower_notch;
+ upper_notch=top y1-notch_cut; lower_notch=y6+notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+ else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+fi
+if serifs and(not monospace):
+ serif(1,2,a,1/3,-.7jut); % upper left serif
+ serif(3,4,d,1/3,.7jut); % upper right serif
+fi
+if serifs: numeric low_i_jut,low_o_jut;
+low_i_jut:=if monospace:.3else:.7fi jut;
+low_o_jut:=if monospace:.4else:.7fi jut;
+ dish_serif(2,1,b,1/2,low_o_jut,c,1/2,low_i_jut)(dark); % lower left serif
+ dish_serif(4,3,e,1/3,low_i_jut,f,1/3,low_o_jut); % lower right serif
+fi
+%
+pickup if monospace: pencircle else:pensquare fi scaled PIstem slanted slant;
+lft x50=lft x51=u = w-rt x53; x53=x52;
+bot y50=bot y53=0; top y51=top y52=h;
+draw (z50)--(z51)--(z52)--(z53);
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+currentbreadth:=0;
+
+
+
+endinput;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% The symbol Tao may be inserted for compatibility with the previous use
+% of the Greek fonts that relied on Yannis Haralambous' rgrsc10 font
+% which included this symbol. I redesigned it completely in order
+% to have it turn out acceptably with all shapes. It is not a digit, but
+% it is neither a punctuation mark nor a letter, so I leave it in this
+% file. (CB)
+
+
+cmchar "The symbol Tao";
+beginchar(1,18u# if slitex:-3u# fi,body_height#,desc_depth#);
+adjust_fit(0,0);
+% always draw this symbol unslanted
+transform t_tao; t_tao=currenttransform;
+currenttransform:=currenttransform slanted (-slant);
+numeric raggio; raggio=.5min(w,h+d);
+pickup pencircle scaled (raggio/18);
+y3=math_axis; x3=.5w;
+z1=z3+(0,raggio);
+z3=.5[z1,z2]=.5[z4,z7]=.5[z5,z6];
+z4=z3+(0,.7raggio);
+.5[z4,z5]=.5[z3,z1];
+path pa,pb,pc,pe,pf,pg;
+pa:=z2..z1..cycle; pg:= subpath (0,1) of pa;
+pb:=z1..z3..cycle; pe:= subpath (0,1) of pb;
+pc:=z2..z3..cycle; pf:= subpath (0,1) of pc;
+draw pa; % external circle
+fill pg & pe & reverse pf & cycle; % right black part
+unfill z4..z5..cycle; % right white circle
+fill z6..z7..cycle; % left black circle
+penlabels(1,2,3,4,5,6,7);numeric raggio;
+path pa,pb,pc,pe,pf,pg;
+currenttransform:=t_tao; transform t_tao;
+endchar;
+
+currentbreadth:=0;
+
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbgreek.mf b/Master/texmf-dist/fonts/source/public/cb/cbgreek.mf
new file mode 100644
index 00000000000..ad2d3791a6a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbgreek.mf
@@ -0,0 +1,60 @@
+% file cbgreek.mf version 2.0c 2002/02/03
+% Copyright 1997 --- 2002 Claudio Beccari
+% It extracts the design size from the font name and calls the suitable
+% general parameter file for the specified font
+%
+% If the specific font driver file defines the gensize and calls the suitable
+% paramenter file, this cbgreek.mf gets input just once (font files generated
+% by Apostolos Syropoulos tex facility); otherwise this file gets input twice,
+% but the second time, thanks to the trick of defining the number cbgreek, it
+% gets immediately closed. This improves version 1.x, where the file was input
+% and completely parsed both times.
+if known cbgreek: expandafter endinput fi;
+if unknown gensize:
+ message "Computing gensize from file name";
+ string f_name, f_size;
+ f_name:=substring(0,4) of jobname;
+ f_size:=substring(4,8) of jobname;
+ scantokens("gensize:="&substring(0,2)of f_size&"."&substring(2,4)of f_size);
+ numeric cbgreek; cbgreek:=1;
+ scantokens("input "&f_name);
+fi
+ message "Generating glyphs";
+ if not (serifs or slitex): SansSerif:=true fi;
+ mode_setup;
+ font_setup;
+ if metrics:
+ readfrom("cbmetre");
+ else:
+ readfrom("cbaccent");
+ readfrom("cbupper");
+ readfrom("cblower");
+ readfrom("cbdigits");
+ readfrom("cbpunct");
+ fi
+ boundarychar:=oct"375";
+ if not metrics:
+ if small_caps:
+ readfrom("cbligsc");
+ elseif monospace:
+ readfrom("cbligtt");
+ elseif SansSerif:
+ readfrom("cblig");
+ elseif cursive or cbleipzig:
+ readfrom("cbligit");
+ elseif cbroman:
+ readfrom("cbligrm");
+ else:
+ readfrom("cblig");
+ fi fi
+ font_slant slant; font_x_height x_height#;
+ if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ fi
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbgrk.mf b/Master/texmf-dist/fonts/source/public/cb/cbgrk.mf
new file mode 100644
index 00000000000..f4ffeabdb68
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbgrk.mf
@@ -0,0 +1,197 @@
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+boolean varepsilon; varepsilon:=false;
+%mode:=smoke;
+gensize:=10;
+%gensize:=100;
+%gensize:=30;
+%gensize:=9;
+%gensize:=8;
+%gensize:=12;
+%gensize:=14.4;
+%gensize:=20;
+%gensize:=5;
+%gensize:=6;
+%gensize:=7;
+
+let generate=gobble;
+
+%input grmn;
+%input grxn;
+%input gsmn;
+%input gsxn;
+%input glmn;
+%input glin; % invisibile !
+%input glxn;
+%input gttn;
+%
+%input grmc;
+%input grxc;
+%input gsmc;
+%input gsxc;
+%input glmc;
+%input glxc;
+%input gttc;
+%
+%input grmo;
+%input grxo;
+%input gsmo;
+%input gsxo;
+%input glmo;
+%input glxo;
+%input gtto;
+%
+%input grmi;
+%input grxi;
+%input gsmi
+%input gsxi;
+%input glmi;
+%input glxi;
+%input gtti;
+%
+%input grmu;
+%input grxu;
+%input gsmu
+%input gsxu;
+%input glmu;
+%input glxu;
+%input gttu;
+%
+input gsme;
+%input gsxe;
+%input gsma;
+%input gsxa;
+%
+%input gomn
+%input goxn
+%input gomc
+%input gomi
+%input gomu
+%input goxi
+%input goxu
+%
+%input gltn
+%input gltc
+%input glto
+%
+%input grml
+%input grbl
+%input grxl
+%
+%input gmmn
+%input gmxn
+%input gmmo
+%input gmxo
+
+%input gmtr
+
+% mode_def proof = % HPLJ 6L
+% proofing:=1;
+% fontmaking:=0;
+% tracingtitles:=1;
+% pixels_per_inch:=600;
+% blacker:=.75;
+% fillin:=0.3;cursive:=true;
+
+% o_correction:=1;
+% let makebox=maketicks;
+% enddef;
+
+% mode_def proof = % HPLJ 4 %
+% proofing:=1; % mode_param (pixels_per_inch, 600); %
+% fontmaking:=0; % mode_param (blacker, .25); %
+% tracingtitles:=1; % mode_param (fillin, 0); %
+% pixels_per_inch:=600; % mode_param (o_correction, 1); %
+% blacker:=.25; %
+% fillin:=0.; %
+% o_correction:=1; %
+% let makebox=maketicks; %
+% enddef; %
+
+
+% mode_def proof = % HPLJ IIP
+% proofing:=1;
+% fontmaking:=0;
+% tracingtitles:=1;
+% pixels_per_inch:=300;
+% blacker:=0;
+% fillin:=0.2;
+% o_correction:=.6;
+% let makebox=maketicks;
+% enddef;
+
+
+% mode_def proof = % linotzzh a 2540 dpi
+% proofing:=1;
+% fontmaking:=0;
+% tracingtitles:=1;
+% pixels_per_inch:=2540;
+% blacker:=0.2;
+% fillin:=0.2;
+% o_correction:=1;
+% enddef;
+
+
+% mode_def proof = % 9-pin Epson MX/FX (240x216dpi)
+% proofing:=2;
+% tracingtitles:=1;
+% fontmaking:=0;
+% pixels_per_inch:= 240;
+% aspect_ratio:= 216 / pixels_per_inch;
+% blacker:= 0;
+% fillin:= 0;
+% o_correction:= .2;
+% let makebox=maketicks;
+% enddef;
+
+
+mode_setup;
+font_setup;
+%grayfont gray;%
+if cbleipzig:
+slantfont slant15;
+else:
+slantfont slant12;
+fi
+
+% screenchars;% non funziona con mf di MiKTeX
+if not boolean toniko: boolean toniko; fi
+
+% minimum distance between vowel and accent
+def separator=max(1,vround(1/10x_height)) enddef;
+def m_width=.6[hair,stem] enddef; % definito anche in gmetre.mf
+dot_diam#=dot_size#;dot_diam=dot_size;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% non cancellare le righe precedenti !
+boolean squeeze;
+boolean SansSerif; if not (serifs or slitex): SansSerif:=true else: SansSerif:=false fi;
+%cursive:=true;
+%outlining:=true;
+%barebones:=true; proofing:=0; let makebox=maketicks;% per fare tutto l'alfabeto minuscolo senza accenti
+%input cbaccent;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+bye.
+
+endinput;
+
+
+
+
+
+
+
+
+bye.
+
+%input cbmetre
+
+%input cbupper;
+
+%input cblower;
+
+input cbdigits;
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/cblig.mf b/Master/texmf-dist/fonts/source/public/cb/cblig.mf
new file mode 100644
index 00000000000..7d59fa286ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cblig.mf
@@ -0,0 +1,201 @@
+% Copyright (C) 1997, 1999 Claudio Beccari v.2.0b (2000/08/03)
+% Ligature and kerning table
+% CB added kernings with initial capitals preceded by spirits with or
+% without accents 1997/03/10; accent-spirit ligatures added 1997/11/03
+% Ligatures with void char corrected 1999/04/07
+% Modified ligatures for group A"U
+%
+% Thanks to Andreas Schwab for spotting some bugs and suggesting
+% the corrections
+
+diaer=oct"042"; % diaeresis (double quote key)
+Idiaer=oct"333"; % Iota with diaeresis
+Udiaer=oct"337"; % Upsilon with diaeresis
+AUkern#:=2.5u#; % check definition in cbupper.mf
+%
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable oct"000": "-" =: oct"177"; % em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+
+ligtable "<": % rough breathing
+ "~" =: oct"100", "'" =: oct"126", "`" =: oct"103",
+ "a" =: oct"201", "e" =: oct"341", "h" =: oct"231", "r" =: oct"373",
+ "o" =: oct"345", "w" =: oct"261", "i" =: oct"311", "u" =: oct"315",
+ "A" kern-3u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable ">": % smooth breathing
+ "~" =: oct"134", "'" =: oct"136", "`" =: oct"137",
+ "a" =: oct"202", "e" =: oct"342", "h" =: oct"232", "r" =: oct"374",
+ "o" =: oct"346", "w" =: oct"262", "i" =: oct"312", "u" =: oct"316",
+ "A" kern-2.5u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable diaer: % diaeresis
+ "~" =: oct"040", "'" =: oct"043", "`" =: oct"044",
+ oct"375" =:| oct"035", % diaeresis at end of word becomes apostrophe
+ "i" =: oct"360", "u" =: oct"364",
+ "I" =: oct"333", "U" =: oct"337";
+
+ligtable oct"044": % diaeresis and grave
+ "i" =: oct"361", "u" =: oct"365";
+
+ligtable oct"043": % diaeresis and acute
+ "i" =: oct"362", "u" =: oct"366";
+
+ligtable oct"040": % diaeresis and circumflex
+ "i" =: oct"363", "u" =: oct"367";
+
+ligtable "`": % grave
+ diaer =: oct"044", "`" =: oct"034", "<"=: oct"103", ">"=: oct"137",
+ "a" =: oct"200", "h" =: oct"230", "w" =: oct"260",
+ "e" =: oct"340", "o" =: oct"344", "i" =: oct"310", "u" =: oct"314",
+ "A" kern-2u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable "'": % acute
+ diaer =: oct"043", "'" =: oct"035", "<"=: oct"126", ">"=: oct"136",
+ "a" =: oct"210", "h" =: oct"240", "w" =: oct"270",
+ "e" =: oct"350", "o" =: oct"354", "i" =: oct"320", "u" =: oct"324",
+ "A" kern-2u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable oct"126": % rough breathing and acute
+ "a" =: oct"211", "h" =: oct"241", "w" =: oct"271",
+ "e" =: oct"351", "o" =: oct"355", "i" =: oct"321", "u" =: oct"325",
+ "A" kern-1.5u#, "O" kern-.5u#;
+
+ligtable oct"136": % smooth breathing and acute
+ "a" =: oct"212", "h" =: oct"242", "w" =: oct"272",
+ "e" =: oct"352", "o" =: oct"356", "i" =: oct"322", "u" =: oct"326",
+ "A" kern-1.5u#, "O" kern-.5u#;
+
+ligtable oct"137": % smooth breathing and grave
+ "a" =: oct"213", "h" =: oct"253", "w" =: oct"273",
+ "e" =: oct"353", "o" =: oct"357", "i" =: oct"323", "u" =: oct"327",
+ "A" kern-1.5u#, "O" kern-.5u#;
+
+ligtable oct"103": % rough breathing and grave
+ "a" =: oct"203", "h" =: oct"243", "w" =: oct"263",
+ "e" =: oct"343", "o" =: oct"347", "i" =: oct"313", "u" =: oct"317",
+ "A" kern-1.5u#, "O" kern-.5u#;
+ligtable "~": % circumflex
+ diaer =: oct"040", "<"=: oct"100", ">"=: oct"134",
+ "a" =: oct"220", "h" =: oct"250", "w" =: oct"300",
+ "i" =: oct"330", "u" =: oct"334","A" kern-2u#;
+
+ligtable oct"100": % rough breathing and circumflex
+ "a" =: oct"221", "h" =: oct"251", "w" =: oct"301",
+ "i" =: oct"331", "u" =: oct"335", "A" kern-2u#;
+
+ligtable oct"134": % smooth breathing and circumflex
+ "a" =: oct"222", "h" =: oct"252", "w" =: oct"302",
+ "i" =: oct"332", "u" =: oct"336","A" kern-2u#;
+ % iota subscripts
+ligtable "a": "|" =: oct"370";
+ligtable "h": "|" =: oct"371";
+ligtable "w": "|" =: oct"372";
+ligtable oct"200": "|" =: oct"204";
+ligtable oct"201": "|" =: oct"205";
+ligtable oct"202": "|" =: oct"206";
+ligtable oct"203": "|" =: oct"207";
+ligtable oct"210": "|" =: oct"214";
+ligtable oct"211": "|" =: oct"215";
+ligtable oct"212": "|" =: oct"216";
+ligtable oct"213": "|" =: oct"217";
+ligtable oct"220": "|" =: oct"224";
+ligtable oct"221": "|" =: oct"225";
+ligtable oct"222": "|" =: oct"226";
+ligtable oct"230": "|" =: oct"234";
+ligtable oct"231": "|" =: oct"235";
+ligtable oct"232": "|" =: oct"236";
+ligtable oct"240": "|" =: oct"244";
+ligtable oct"241": "|" =: oct"245";
+ligtable oct"242": "|" =: oct"246";
+ligtable oct"243": "|" =: oct"247";
+ligtable oct"250": "|" =: oct"254";
+ligtable oct"251": "|" =: oct"255";
+ligtable oct"252": "|" =: oct"256";
+ligtable oct"253": "|" =: oct"257";
+ligtable oct"260": "|" =: oct"264";
+ligtable oct"261": "|" =: oct"265";
+ligtable oct"262": "|" =: oct"266";
+ligtable oct"263": "|" =: oct"267";
+ligtable oct"270": "|" =: oct"274";
+ligtable oct"271": "|" =: oct"275";
+ligtable oct"272": "|" =: oct"276";
+ligtable oct"273": "|" =: oct"277";
+ligtable oct"300": "|" =: oct"304";
+ligtable oct"301": "|" =: oct"305";
+ligtable oct"302": "|" =: oct"306";
+
+
+ % sigma ligatures
+% left sigma is replaced with final sigma, while right character is preserved
+
+ligtable "s":"." =:| "c", "," =:| "c", ";" =:| "c",
+ ":" =:| "c", "?" =:| "c", "!" =:| "c",
+ ")" =:| "c", "/" =:| "c", "]" =:| "c",
+ oct"375" =:| "c", oct"052" =:| "c", oct"035" =:| "c";
+
+ligtable "v": "v"=: "v", "A"=: "A", "B"=: "B", "G"=: "G", "D"=: "D",
+ "E"=: "E", "Z"=: "Z", "H"=: "H", "J"=: "J", "I"=: "I",
+ "K"=: "K", "L"=: "L", "M"=: "M", "N"=: "N", "X"=: "X",
+ "O"=: "O", "P"=: "P", "R"=: "R", "S"=: "S", "T"=: "T",
+ "U"=: "U", "F"=: "F", "Q"=: "Q", "Y"=: "Y", "W"=: "W";.
+
+ % kernings
+
+ligtable "i": oct"310": oct"311": oct"312": oct"320": oct"321": oct"322":
+ oct"330": oct"331": oct"332": oct"360": oct"361": oct"362": oct"363":
+"t" kern-.5u#, "n" kern-u#, "c" kern-.5u#, "s" kern-.5u#, "o" kern-.5u#,
+ "h" kern-.3u#, "g" kern-.5u#, "j" kern-.3u#, "q" kern-.5u#;
+ligtable "o": oct"344": oct"345": oct"346": oct"354": oct"355": oct"356":
+"l" kern-.5u#, "g" kern-.5u#, "n" kern-.4u#, "t" kern-.4u#, "q" kern-.5u#;
+ligtable "t": "a" kern-.5u#, oct"200" kern-.5u#, oct"201" kern-.5u#,
+ oct"202" kern-.5u#, oct"204" kern-.5u#, oct"205" kern-.5u#,
+ oct"206" kern-.5u#, oct"210" kern-.5u#, oct"211" kern-.5u#,
+ oct"212" kern-.5u#, oct"214" kern-.5u#, oct"215" kern-.5u#,
+ oct"216" kern-.5u#, oct"220" kern-.5u#, oct"221" kern-.5u#,
+ oct"222" kern-.5u#, oct"224" kern-.5u#, oct"225" kern-.5u#,
+ oct"226" kern-.5u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"261" kern-.5u#,
+ oct"262" kern-.5u#, oct"264" kern-.5u#, oct"265" kern-.5u#,
+ oct"266" kern-.5u#, oct"270" kern-.5u#, oct"271" kern-.5u#,
+ oct"272" kern-.5u#, oct"274" kern-.5u#, oct"275" kern-.5u#,
+ oct"276" kern-.5u#, oct"300" kern-.5u#, oct"301" kern-.5u#,
+ oct"302" kern-.5u#, oct"304" kern-.5u#, oct"305" kern-.5u#,
+ oct"306" kern-.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"345" kern-.5u#,
+ oct"346" kern-.5u#, oct"354" kern-.5u#, oct"355" kern-.5u#,
+ oct"356" kern-.5u#;
+%
+% oct"014"=A" is the same glyph as A, but is in a different position
+% oct"015" is a version of Udiaer preshifted by the amount AUkern to the left
+%
+ligtable oct"014": "U" |=: oct"015", % (A")+(U)-> (A")+(shifted Udiaer)
+ "I" |=: Idiaer, % (A")+(I)-> (A")+(Idiaer)
+ "~" |=: oct"040", % (A")+(')-> (A")+("~)
+ "`" |=: oct"044", % (A")+(')-> (A")+("`)
+ "'" |=: oct"043"; % (A")+(')-> (A")+("')
+ligtable "A": "|"=: oct"011",
+ diaer =: oct"014", % (A)+(") -> (A")
+ "U" kern-2.5u#, Udiaer kern-AUkern#,
+ "J" kern-1.5u#, "O" kern-1.5u#, "T" kern-1.5u#, "F" kern-1.5u#, "Y" kern-2.2u#;
+ligtable "H": "|"=: oct"012";
+ligtable "O": "A" kern-1.5u#, "S" kern-u#;
+ligtable "U": Udiaer: oct"015": "A" kern-AUkern#, "D" kern-2.5u#, "L" kern-2.5u#;
+ligtable "W": "|"=: oct"013", "'"=:"W", "`"=:"W", "<"=:"W", ">"=:"W", "~"=:"W";
+
+ligtable "G": "A" kern -2.4u#, "D" kern -2u#, "L" kern -2.2u#;
+ligtable "D": "U" kern-2.5u#, "O" kern-.6u#;
+ligtable "J": "A" kern-1.5u#;
+ligtable "K": "O" kern-1.5u#;
+ligtable "L": "U" kern-1.8u#, "O" kern-.6u#;
+ligtable "N": "A" kern -1.5u#;
+ligtable "R": "A" kern-3u#;
+ligtable "S": "A" kern-.5u#;
+ligtable "T": "A" kern-1.5u#;
+ligtable "F": "A" kern-1.5u#;
+ligtable "Y": "A" kern-2.2u#;
+
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbligit.mf b/Master/texmf-dist/fonts/source/public/cb/cbligit.mf
new file mode 100644
index 00000000000..7b88cbea320
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbligit.mf
@@ -0,0 +1,682 @@
+% Copyright (C) 1998, 2000, 2001 Claudio Beccari v.2.0f (2001/01/29)
+% Ligature and kerning table: italic/cursive/leipzig fonts
+% (CB modified ligatures and kerns for group A"U 2000/02/13)
+%
+% Thanks to Andreas Schwab for spotting some bugs and suggesting
+% the corrections
+% Ligatures with void char corrected 1999/04/07
+% ligatures between capital and iota adscript 1999/10/25
+% added ligatures for cbleipzig greek 2001/01/29
+
+diaer=oct"042"; % diaeresis (double quote key)
+Idiaer=oct"333"; % Iota with diaeresis
+Udiaer=oct"337"; % Upsilon with diaeresis
+AUkern#:=2.5u#; % check definition in cbupper.mf
+sampi=oct"33"; % with cbleipzig some kernings are needed when
+ % writing milesian numbers
+%
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable oct"000": "-" =: oct"177"; % em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+
+ligtable "<": % rough breathing
+ "~" =: oct"100", "'" =: oct"126", "`" =: oct"103",
+ "a" =: oct"201", "e" =: oct"341", "h" =: oct"231", "r" =: oct"373",
+ "o" =: oct"345", "w" =: oct"261", "i" =: oct"311", "u" =: oct"315",
+ "A" kern-3u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable ">": % smooth breathing
+ "~" =: oct"134", "'" =: oct"136", "`" =: oct"137",
+ "a" =: oct"202", "e" =: oct"342", "h" =: oct"232", "r" =: oct"374",
+ "o" =: oct"346", "w" =: oct"262", "i" =: oct"312", "u" =: oct"316",
+ "A" kern-2.5u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable diaer: % diaeresis
+ "~" =: oct"040", "'" =: oct"043", "`" =: oct"044",
+ oct"375" =:| oct"035", % diaeresis at end of word becomes apostrophe
+ "i" =: oct"360", "u" =: oct"364",
+ "I" =: oct"333", "U" =: oct"337";
+
+ligtable oct"044": % diaeresis and grave
+ "i" =: oct"361", "u" =: oct"365";
+
+ligtable oct"043": % diaeresis and acute
+ "i" =: oct"362", "u" =: oct"366";
+
+ligtable oct"040": % diaeresis and circumflex
+ "i" =: oct"363", "u" =: oct"367";
+
+ligtable "`": % grave
+ diaer =: oct"044", "`" =: oct"034", "<"=: oct"103", ">"=: oct"137",
+ "a" =: oct"200", "h" =: oct"230", "w" =: oct"260",
+ "e" =: oct"340", "o" =: oct"344", "i" =: oct"310", "u" =: oct"314",
+ "A" kern-2u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable "'": % acute
+ diaer =: oct"043", "'" =: oct"035", "<"=: oct"126", ">"=: oct"136",
+ "a" =: oct"210", "h" =: oct"240", "w" =: oct"270",
+ "e" =: oct"350", "o" =: oct"354", "i" =: oct"320", "u" =: oct"324",
+ "A" kern-2u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable oct"126": % rough breathing and acute
+ "a" =: oct"211", "h" =: oct"241", "w" =: oct"271",
+ "e" =: oct"351", "o" =: oct"355", "i" =: oct"321", "u" =: oct"325",
+ "A" kern-1.5u#, "O" kern-.5u#;
+
+ligtable oct"136": % smooth breathing and acute
+ "a" =: oct"212", "h" =: oct"242", "w" =: oct"272",
+ "e" =: oct"352", "o" =: oct"356", "i" =: oct"322", "u" =: oct"326",
+ "A" kern-1.5u#, "O" kern-.5u#;
+
+ligtable oct"137": % smooth breathing and grave
+ "a" =: oct"213", "h" =: oct"253", "w" =: oct"273",
+ "e" =: oct"353", "o" =: oct"357", "i" =: oct"323", "u" =: oct"327",
+ "A" kern-1.5u#, "O" kern-.5u#;
+
+ligtable oct"103": % rough breathing and grave
+ "a" =: oct"203", "h" =: oct"243", "w" =: oct"263",
+ "e" =: oct"343", "o" =: oct"347", "i" =: oct"313", "u" =: oct"317",
+ "A" kern-1.5u#, "O" kern-.5u#;
+ligtable "~": % circumflex
+ diaer =: oct"040", "<"=: oct"100", ">"=: oct"134",
+ "a" =: oct"220", "h" =: oct"250", "w" =: oct"300",
+ "i" =: oct"330", "u" =: oct"334","A" kern-2u#;
+
+ligtable oct"100": % rough breathing and circumflex
+ "a" =: oct"221", "h" =: oct"251", "w" =: oct"301",
+ "i" =: oct"331", "u" =: oct"335", "A" kern-2u#;
+
+ligtable oct"134": % smooth breathing and circumflex
+ "a" =: oct"222", "h" =: oct"252", "w" =: oct"302",
+ "i" =: oct"332", "u" =: oct"336","A" kern-2u#;
+ % iota subscripts
+ligtable "a": "|" =: oct"370",
+ oct"370":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ oct"334" kern-1.5u#, oct"316" kern-1.5u#, oct"325" kern-1.5u#,
+ oct"326" kern-1.5u#, oct"327" kern-1.5u#,
+ oct"334" kern-1.5u#, oct"335" kern-1.5u#, oct"336" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#,
+ sampi kern-4u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.7else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#,
+ "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#,
+ if not cbleipzig:"m" kern -u#,fi
+ "g" kern -1.5u#;
+ligtable oct"200": "|" =: oct"204",
+ oct"204":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"201": "|" =: oct"205",
+ oct"205":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"202": "|" =: oct"206",
+ oct"206":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"203": "|" =: oct"207",
+ oct"207":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"210": "|" =: oct"214",
+ oct"214":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"211": "|" =: oct"215",
+ oct"215":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern -.8u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"212": "|" =: oct"216",
+ oct"216":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"213": "|" =: oct"217",
+ oct"217":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"220": "|" =: oct"224",
+ oct"224":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"221": "|" =: oct"225",
+ oct"225":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+ligtable oct"222": "|" =: oct"226",
+ oct"226":
+ if cbleipzig:
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#, "j" kern-1.5u#,
+ else:
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ fi
+ "n" kern if cbleipzig:-1.5else:-.8fi u#, "t" kern if cbleipzig:-1.5else:-.8fi u#, "p" kern -.8u#, "q" kern -1.5u#,
+ "y" kern -.5u#, if not cbleipzig:"m" kern -u#,fi "g" kern -1.5u#;
+
+ligtable "h": "|" =: oct"371",
+ oct"371": if cbleipzig: sampi kern-3u#, fi
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"230": "|" =: oct"234",
+ oct"234":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"231": "|" =: oct"235",
+ oct"235":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"232": "|" =: oct"236",
+ oct"236":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"240": "|" =: oct"244",
+ oct"244":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"241": "|" =: oct"245",
+ oct"245":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"242": "|" =: oct"246",
+ oct"246":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"243": "|" =: oct"247",
+ oct"247":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"250": "|" =: oct"254",
+ oct"254":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"251": "|" =: oct"255",
+ oct"255":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"252": "|" =: oct"256",
+ oct"256":
+ if not cbleipzig:"g" kern-u#,fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"253": "|" =: oct"257",
+ oct"257":
+ if not cbleipzig:"g" kern-u#, fi "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+
+ligtable "w": "|" =: oct"372",
+ oct"372": "x" kern .5u#, if cbleipzig: sampi kern-3u#, fi
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"260": "|" =: oct"264",
+ oct"264": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"261": "|" =: oct"265",
+ oct"265": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"262": "|" =: oct"266",
+ oct"266": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"263": "|" =: oct"267",
+ oct"267": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"270": "|" =: oct"274",
+ oct"274": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"271": "|" =: oct"275",
+ oct"275": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"272": "|" =: oct"276",
+ oct"276": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"273": "|" =: oct"277",
+ oct"277": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"300": "|" =: oct"304",
+ oct"304": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"301": "|" =: oct"305",
+ oct"305": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+ligtable oct"302": "|" =: oct"306",
+ oct"306": "x" kern .5u#,
+ "g" kern-2u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -if cbleipzig:.5else:2fi u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ if cbleipzig: "t" kern -.85u#,fi
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+
+
+ % sigma ligatures
+ % left sigma is replaced with final sigma, while right character is preserved
+
+ligtable "s":"." =:| "c", "," =:| "c", ";" =:| "c",
+ ":" =:| "c", "?" =:| "c", "!" =:| "c",
+ ")" =:| "c", "/" =:| "c", "]" =:| "c",
+ oct"375" =:| "c", oct"052" =:| "c", oct"035" =:| "c",
+ "a" kern-.8u#, oct"200" kern-.8u#, oct"204" kern-.8u#,
+ oct"210" kern-.8u#, oct"214" kern-.8u#, oct"220" kern-.8u#,
+ oct"224" kern-.8u#, oct"370" kern-.8u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#,
+ if cbleipzig: sampi kern-3u#, fi
+ if not cbleipzig:"e" kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#,fi
+ "r" kern-.5u#, oct"373" kern-.5u#, oct"374" kern-.5u#;
+
+ligtable "v": "v"=: "v", "A"=: "A", "B"=: "B", "G"=: "G", "D"=: "D",
+ "E"=: "E", "Z"=: "Z", "H"=: "H", "J"=: "J", "I"=: "I",
+ "K"=: "K", "L"=: "L", "M"=: "M", "N"=: "N", "X"=: "X",
+ "O"=: "O", "P"=: "P", "R"=: "R", "S"=: "S", "T"=: "T",
+ "U"=: "U", "F"=: "F", "Q"=: "Q", "Y"=: "Y", "W"=: "W";.
+
+ % kernings
+
+ligtable "i": oct"310": oct"311": oct"312": oct"320": oct"321": oct"322":
+ oct"330": oct"331": oct"332": oct"360": oct"361": oct"362": oct"363":
+ "t" kern if cbleipzig:-1.5else:-1fi u#, "n" kern if cbleipzig:-1else:-.3fi u#,
+ "c" kern-.5u#, "s" kern-.5u#, if cbleipzig: sampi kern-3u#, fi
+ "h" kern-.3u#, "g" kern if cbleipzig: -1.25else:-2fi u# ,
+ "j" if cbleipzig:kern-.6u# else:kern-.3u# fi, "q" kern-1u#, "k" kern if cbleipzig:-1else:.5fi u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"345" kern-.5u#,
+ oct"346" kern-.5u#, oct"354" kern-.5u#, oct"355" kern-.5u#,
+ oct"356" kern-.5u#;
+
+ligtable "e": oct"340": oct"341": oct"342": oct"343": oct"350":
+ oct"351": oct"352": oct"353": if cbleipzig: sampi kern-3u#, fi
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#,
+ "d" kern-.5u#, "q" kern-if cbleipzig:.15else:1fi u#, "s" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable "o": oct"344": oct"345": oct"346": oct"347":
+ oct"354": oct"355": oct"356": oct"357": if cbleipzig: sampi kern-3u#, fi
+ "l" kern-.5u#, "g" kern-.5u#, "n" kern-.7u#, "t" kern-.6u#,
+ "q" kern-if cbleipzig:.5else:2fi u#, "m" kern if cbleipzig:-0.2else:-.7fi u#,
+ "u" kern-u#, oct"314" kern-u#, oct"324" kern-u#,
+ oct"334" kern-u#;
+
+ligtable "u": oct"314": oct"315": oct"316": oct"317": oct"324":
+ oct"325": oct"326": oct"327": oct"334": oct"335":
+ oct"336": oct"364": oct"365": oct"366": oct"367":
+ if not cbleipzig:"g" kern-u#, fi
+ if cbleipzig: sampi kern-3u#, "j" kern-.5u#, fi
+ if cbleipzig: "m" kern-.2u# else:"m" kern-.8u# fi,
+ "n" kern-.7u#,
+ "q" kern-.5u#,
+ "y" kern .5u#;
+
+ligtable "z":
+ "g" kern-2u#, "d" kern-u#, "j" kern-u#, "m" kern-u#, "n" kern-1.6u#,
+ "p" kern-1.5u#, "s" kern-1.5u#, "t" kern-1.5u#, "f" kern-1.5u#,
+ "q" kern-1.5u#,"y" kern-.5u#, if cbleipzig: sampi kern-u#, fi
+ "h" kern-1.5u#, oct"371" kern-1.5u#, oct"230" kern-1.5u#,
+ oct"234" kern-1.5u#, oct"240" kern-1.5u#, oct"244" kern-1.5u#,
+ oct"250" kern-1.5u#, oct"254" kern-1.5u#,
+ "u" kern-1.5u#, oct"314" kern-1.5u#, oct"324" kern-1.5u#,
+ oct"334" kern-1.5u#,
+ "a" kern-1.5u#, oct"200" kern-1.5u#, oct"204" kern-1.5u#,
+ oct"210" kern-1.5u#, oct"214" kern-1.5u#, oct"220" kern-1.5u#,
+ oct"224" kern-1.5u#, oct"370" kern-1.5u#,
+ "w" kern-1.5u#, oct"260" kern-1.5u#, oct"264" kern-1.5u#,
+ oct"270" kern-1.5u#, oct"274" kern-1.5u#, oct"300" kern-1.5u#,
+ oct"304" kern-1.5u#, oct"372" kern-1.5u#,
+ "o" kern-1.5u#, oct"344" kern-1.5u#, oct"354" kern-1.5u#,
+ "e" kern-1.5u#, oct"340" kern-1.5u#, oct"350" kern-1.5u#;
+
+ligtable "t": "q" kern -.5u#, if cbleipzig: sampi kern-3u#, fi
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#,
+ "e" kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#;
+
+ligtable "j": "y" kern .5u#, if cbleipzig: sampi kern-u#, fi
+ "i" kern .5u#, oct"310" kern .5u#, oct"320" kern .5u#,
+ oct"330" kern .5u#
+ if cbleipzig:, "e" kern.5u#, oct"340" kern.5u#, oct"350" kern.5u#fi;
+
+ligtable "k": "b" kern .5u#
+ if cbleipzig:, sampi kern-3u#, "n" kern-.5u# fi;
+
+ligtable "l": "g" kern-2.5u#, "m" kern if cbleipzig:.25else:-.5fi u#, "n" kern if cbleipzig:-1.5else:-.5fi u#,
+ "s" kern-.5u#, if cbleipzig: "j" kern-.8u#,fi
+ "t" kern-.5u#, "q" kern-u#, if cbleipzig: sampi kern-3u#, fi
+ "u" kern-u#, oct"314" kern-u#, oct"324" kern-u#,
+ oct"334" kern-u#,
+ if cbleipzig:
+ "a" kern-.25u#, oct"200" kern-.25u#, oct"204" kern-.25u#,
+ oct"210" kern-.25u#, oct"214" kern-.25u#, oct"220" kern-.25u#,
+ oct"224" kern-.25u#, oct"370" kern-.25u#
+ else:
+ "a" kern-u#, oct"200" kern-u#, oct"204" kern-u#,
+ oct"210" kern-u#, oct"214" kern-u#, oct"220" kern-u#,
+ oct"224" kern-u#, oct"370" kern-u#
+ fi
+ if cbleipzig:;else:,"e" kern-u#, oct"340" kern-u#, oct"350" kern-u#;fi
+
+ligtable "m":
+ "g" kern-1.5u#,
+ "n" if cbleipzig: kern-1.5u# else:kern-.5u# fi,
+ "s" kern-.5u#,
+ "f" kern-.5u#,
+ "q" kern-1.05u#,
+ "z" kern-.5u#,
+ "p" kern -.5u#,
+ if cbleipzig: "j" kern -1.1u#, fi
+ if not cbleipzig:
+ "i" kern-.5u#, oct"310" kern-.5u#, oct"320" kern-.5u#,
+ oct"330" kern-.5u#,fi if cbleipzig: sampi kern-4u#, fi
+ "u" kern-u#, oct"314" kern-u#, oct"324" kern-u#,
+ oct"334" kern-u#,
+ "a" kern-u#, oct"200" kern-u#, oct"204" kern-u#,
+ oct"210" kern-u#, oct"214" kern-u#, oct"220" kern-u#,
+ oct"224" kern-u#, oct"370" kern-u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#;
+
+ligtable "b": "y" kern u#, "t" kern .5u#, "f" kern .5u#, "q" kern -.5u#,
+ "i" kern .5u#, oct"310" kern .5u#, oct"320" kern .5u#,
+ oct"330" kern .5u#, if cbleipzig: sampi kern-u#,fi
+ "o" kern .5u#, oct"344" kern .5u#, oct"354" kern .5u#,
+ "e" kern .5u#, oct"340" kern .5u#, oct"350" kern .5u#;
+
+if cbleipzig:
+ ligtable "g": sampi kern-3u#, "q" kern.3u#;
+else:
+ ligtable "g": "m" kern-u#, "n" kern-u# ;
+fi
+
+ligtable "d": "m" kern-.8u#, "n" kern-.7u#, "g" kern-1.5u#, "p" kern-.5u#,
+ "q" if cbleipzig:kern-.3u# else:kern-1.5u# fi,
+ if cbleipzig: sampi kern-3u#, fi
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#;
+
+ligtable "n": if not cbleipzig:"m" kern-.5u#,fi
+ "n" kern-.5u#,
+ if not cbleipzig: "p" kern-.5u#, fi
+ "r" if cbleipzig: kern-.1u# else: kern-.5u# fi,
+ if cbleipzig: "l" kern-.8u#,fi
+ if not cbleipzig: "q" kern-u#, fi
+ if cbleipzig: sampi kern-3u#, fi
+ "a" kern if cbleipzig:-.4else:-.8fi u#, oct"200" kern if cbleipzig:-.4else:-.8fi u#, oct"204" kern if cbleipzig:-.4else:-.8fi u#,
+ oct"210" kern if cbleipzig:-.4else:-.8fi u#, oct"214" kern if cbleipzig:-.4else:-.8fi u#, oct"220" kern if cbleipzig:-.4else:-.8fi u#,
+ oct"224" kern if cbleipzig:-.4else:-.8fi u#, oct"370" kern if cbleipzig:-.4else:-.8fi u#,
+ if cbleipzig:
+ "w" kern .15u#, oct"260" kern .15u#, oct"264" kern .15u#,
+ oct"270" kern .15u#, oct"274" kern .15u#, oct"300" kern .15u#,
+ oct"304" kern .15u#, oct"372" kern .15u#,
+ else:
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ fi
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#
+ if not cbleipzig:,"e" kern-.7u#, oct"340" kern-.7u#, oct"350" kern-.7u# fi;
+
+ligtable "x": "g" kern-.7u#,"s" kern-u#, "t" kern-.5u#, "f" kern-.7u#,
+ "q" kern-.5u#, if cbleipzig: sampi kern-u#, "v" kern-.5u#,fi
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "a" kern if cbleipzig:-.5else:-1.5fi u#, oct"200" kern if cbleipzig:-.5else:-1.5fi u#, oct"204" kern if cbleipzig:-.5else:-1.5fi u#,
+ oct"210" kern if cbleipzig:-.5else:-1.5fi u#, oct"214" kern if cbleipzig:-.5else:-1.5fi u#, oct"220" kern if cbleipzig:-.5else:-1.5fi u#,
+ oct"224" kern if cbleipzig:-.5else:-1.5fi u#, oct"370" kern if cbleipzig:-.5else:-1.5fi u#,
+ "o" kern-u#, oct"344" kern-u#, oct"354" kern-u#,
+ "e" kern-u#, oct"340" kern-u#, oct"350" kern-u#;
+
+ligtable "p": "k" kern .5u#, "y" kern .5u#,
+ "i" kern .5u#, oct"310" kern .5u#, oct"320" kern .5u#,
+ oct"330" kern .5u#
+ if cbleipzig:,"o" kern-u#, oct"344" kern-u#, oct"354" kern-u#, sampi kern-3u#
+ fi;
+
+ligtable "r": oct"373": oct"374":
+ "g" kern -u#, "z" kern .5u#, "y" kern .3u#,
+ "q" if cbleipzig:kern-.2u# else:kern-.7u# fi,
+ "s" kern .5u#, if cbleipzig: sampi kern-3u#, "n" kern-.9u#, fi
+ "i" kern .5u#, oct"310" kern .5u#, oct"320" kern .5u#,
+ oct"330" kern .5u#,
+ "o" kern .5u#, oct"344" kern .5u#, oct"354" kern .5u#;
+
+ligtable "f": "g" kern -u#, "m" kern -.7u#, "n" kern -.7u#, "t" kern -.5u#,
+ "q" if cbleipzig:kern -.2u# else:kern -2u# fi,
+ if cbleipzig: sampi kern-3u#, fi
+ "h" kern-.5u#, oct"371" kern-.5u#, oct"230" kern-.5u#,
+ oct"234" kern-.5u#, oct"240" kern-.5u#, oct"244" kern-.5u#,
+ oct"250" kern-u#, oct"254" kern-u#,
+ "u" kern-u#, oct"314" kern-u#, oct"324" kern-u#,
+ oct"334" kern-u#;
+
+ligtable "q": "s" kern -.7u#,
+ if cbleipzig:
+ sampi kern-3u#, "j" kern-u#, "g" kern-.8u#, "d" kern-1.2u#,
+ "k" kern-u#, "l" kern-1.2u#,
+ "n" kern-1.5u#, "x" kern-.8u#, "p" kern-.8u#, "r" kern-.8u#,
+ "t" kern-.8u#, "f" kern -1.5u#, "y" kern-.5u#,
+ "a" kern-1.2u#, oct"200" kern-1.2u#, oct"204" kern-1.2u#,
+ oct"210" kern-1.2u#, oct"214" kern-1.2u#, oct"220" kern-1.2u#,
+ oct"224" kern-1.2u#, oct"370" kern-1.2u#,
+ "i" kern -.5u#, oct"310" kern -.5u#, oct"320" kern -.5u#,
+ oct"330" kern -.5u#,
+ "h" kern-1.05u#, oct"371" kern-1.05u#, oct"230" kern-1.05u#,
+ oct"234" kern-1.05u#, oct"240" kern-1.05u#, oct"244" kern-1.05u#,
+ oct"250" kern-1.05u#, oct"254" kern-1.05u#,
+ "u" kern-.8u#, oct"314" kern-.8u#, oct"324" kern-.8u#,
+ oct"334" kern-.8u#,
+ "w" kern-1.2u#, oct"260" kern-1.2u#, oct"264" kern-1.2u#,
+ oct"270" kern-1.2u#, oct"274" kern-1.2u#, oct"300" kern-1.2u#,
+ oct"304" kern-1.2u#, oct"372" kern-1.2u#,
+ else:
+ "f" kern -.5u#,
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ fi
+ "e" kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#,
+ "o" kern-1.5u#, oct"344" kern-1.5u#, oct"354" kern-1.5u#;
+
+
+ligtable "y": "g" kern-.7u#,
+ "q" if cbleipzig:kern-.1u# else:kern-.7u# fi,
+ if cbleipzig: sampi kern-3u#, fi
+ "u" kern-u#, oct"314" kern-u#, oct"324" kern-u#,
+ oct"334" kern-u#;
+
+if cbleipzig:
+ligtable oct"006": % stigma
+ oct"007": % varstigma
+ oct"022": % coppa
+ sampi: sampi kern-3u#;
+ligtable oct"023": % varcoppa
+ sampi kern-4u#;
+fi
+
+%
+% oct"014"=A" is the same glyph as A, but is in a different position
+% oct"015" is a version of Udiaer preshifted by the amount AUkern to the left
+%
+ligtable oct"014": "U" |=: oct"015", % (A")+(U)-> (A")+(shifted Udiaer)
+ "I" |=: Idiaer, % (A")+(I)-> (A")+(Idiaer)
+ "~" |=: oct"040", % (A")+(')-> (A")+("~)
+ "`" |=: oct"044", % (A")+(')-> (A")+("`)
+ "'" |=: oct"043"; % (A")+(')-> (A")+("')
+ligtable "A": "|"=: oct"011",
+ diaer =: oct"014", % (A)+(") -> (A")
+ "U" kern-2.5u#, Udiaer kern-AUkern#,
+ "J" kern-1.5u#, "O" kern-1.5u#, "T" kern-1.5u#, "F" kern-1.5u#, "Y" kern-2.2u#,
+ "n" if cbleipzig: kern-1.75u# else: kern-.25u# fi;
+ligtable "H": "|"=: oct"012";
+ligtable "O": "A" kern-1.5u#, "S" kern-u#;
+ligtable "U": Udiaer: oct"015": "A" kern-2.5u#, "D" kern-2.5u#, "L" kern-2.5u#;
+ligtable "W": "|"=: oct"013";
+
+ligtable "G": "A" kern -2.4u#, "D" kern -2u#, "L" kern -2.2u#;
+ligtable "D": "U" kern-2.5u#, "O" kern-.6u#;
+ligtable "J": "A" kern-1.5u#, "U" kern-1.5u#;
+ligtable "K": "O" kern-1.5u#;
+ligtable "L": "U" kern-1.8u#, "O" kern-.6u#;
+ligtable "N": "A" kern -1.5u#;
+ligtable "R": "A" kern-3u#;
+ligtable "S": "A" kern-.5u#;
+ligtable "T": "A" kern-1.5u#;
+ligtable "F": "A" kern-1.5u#;
+ligtable "Y": "A" kern-2.2u#;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbligrm.mf b/Master/texmf-dist/fonts/source/public/cb/cbligrm.mf
new file mode 100644
index 00000000000..5c90e24e495
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbligrm.mf
@@ -0,0 +1,491 @@
+% Copyright (C) 1998, 2000 Claudio Beccari v.2.0e (2000/08/03)
+% Ligature and kerning table: CB romanlike greek
+%
+% The starting point was cbligit where suitable corrections were made
+
+diaer=oct"042"; % diaeresis (double quote key)
+Idiaer=oct"333"; % Iota with diaeresis
+Udiaer=oct"337"; % Upsilon with diaeresis
+AUkern#:=2.5u#; % check definition in cbupper.mf
+%
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable oct"000": "-" =: oct"177"; % em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+
+ligtable oct"175": "," kern -3u#, "." kern -3u#, ";" kern -3u#, ":" kern -3u#; % close
+ % quotes and punctuation marks, except ? and !
+
+ligtable "<": % rough breathing
+ "~" =: oct"100", "'" =: oct"126", "`" =: oct"103",
+ "a" =: oct"201", "e" =: oct"341", "h" =: oct"231", "r" =: oct"373",
+ "o" =: oct"345", "w" =: oct"261", "i" =: oct"311", "u" =: oct"315",
+ "A" kern-3u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable ">": % smooth breathing
+ "~" =: oct"134", "'" =: oct"136", "`" =: oct"137",
+ "a" =: oct"202", "e" =: oct"342", "h" =: oct"232", "r" =: oct"374",
+ "o" =: oct"346", "w" =: oct"262", "i" =: oct"312", "u" =: oct"316",
+ "A" kern-2.5u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable diaer: % diaeresis
+ "~" =: oct"040", "'" =: oct"043", "`" =: oct"044",
+ oct"375" =:| oct"035", % diaeresis at end of word becomes apostrophe
+ "i" =: oct"360", "u" =: oct"364",
+ "I" =: oct"333", "U" =: oct"337";
+
+ligtable oct"044": % diaeresis and grave
+ "i" =: oct"361", "u" =: oct"365";
+
+ligtable oct"043": % diaeresis and acute
+ "i" =: oct"362", "u" =: oct"366";
+
+ligtable oct"040": % diaeresis and circumflex
+ "i" =: oct"363", "u" =: oct"367";
+
+ligtable "`": % grave
+ diaer =: oct"044", "`" =: oct"034", "<"=: oct"103", ">"=: oct"137",
+ "a" =: oct"200", "h" =: oct"230", "w" =: oct"260",
+ "e" =: oct"340", "o" =: oct"344", "i" =: oct"310", "u" =: oct"314",
+ "A" kern-2u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable "'": % acute
+ diaer =: oct"043", "'" =: oct"035", "<"=: oct"126", ">"=: oct"136",
+ "a" =: oct"210", "h" =: oct"240", "w" =: oct"270",
+ "e" =: oct"350", "o" =: oct"354", "i" =: oct"320", "u" =: oct"324",
+ "A" kern-2u#, "O" kern-u#, "W" kern-.5u#;
+
+ligtable oct"126": % rough breathing and acute
+ "a" =: oct"211", "h" =: oct"241", "w" =: oct"271",
+ "e" =: oct"351", "o" =: oct"355", "i" =: oct"321", "u" =: oct"325",
+ "A" kern-1.5u#, "O" kern-.5u#;
+
+ligtable oct"136": % smooth breathing and acute
+ "a" =: oct"212", "h" =: oct"242", "w" =: oct"272",
+ "e" =: oct"352", "o" =: oct"356", "i" =: oct"322", "u" =: oct"326",
+ "A" kern-1.5u#, "O" kern-.5u#;
+
+ligtable oct"137": % smooth breathing and grave
+ "a" =: oct"213", "h" =: oct"253", "w" =: oct"273",
+ "e" =: oct"353", "o" =: oct"357", "i" =: oct"323", "u" =: oct"327",
+ "A" kern-1.5u#, "O" kern-.5u#;
+
+ligtable oct"103": % rough breathing and grave
+ "a" =: oct"203", "h" =: oct"243", "w" =: oct"263",
+ "e" =: oct"343", "o" =: oct"347", "i" =: oct"313", "u" =: oct"317",
+ "A" kern-1.5u#, "O" kern-.5u#;
+ligtable "~": % circumflex
+ diaer =: oct"040", "<"=: oct"100", ">"=: oct"134",
+ "a" =: oct"220", "h" =: oct"250", "w" =: oct"300",
+ "i" =: oct"330", "u" =: oct"334","A" kern-2u#;
+
+ligtable oct"100": % rough breathing and circumflex
+ "a" =: oct"221", "h" =: oct"251", "w" =: oct"301",
+ "i" =: oct"331", "u" =: oct"335", "A" kern-2u#;
+
+ligtable oct"134": % smooth breathing and circumflex
+ "a" =: oct"222", "h" =: oct"252", "w" =: oct"302",
+ "i" =: oct"332", "u" =: oct"336","A" kern-2u#;
+ % iota subscripts
+ligtable "a": "|" =: oct"370",
+ oct"370":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"200": "|" =: oct"204",
+ oct"204":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"201": "|" =: oct"205",
+ oct"205":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"202": "|" =: oct"206",
+ oct"206":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"203": "|" =: oct"207",
+ oct"207":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"210": "|" =: oct"214",
+ oct"214":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"211": "|" =: oct"215",
+ oct"215":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"212": "|" =: oct"216",
+ oct"216":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"213": "|" =: oct"217",
+ oct"217":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"220": "|" =: oct"224",
+ oct"224":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"221": "|" =: oct"225",
+ oct"225":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+ligtable oct"222": "|" =: oct"226",
+ oct"226":
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "n" kern -.8u#, "t" kern -.8u#, "q" kern -.5u#,
+ "y" kern -.5u#, "m" kern -.5u#, "g" kern -.5u#;
+
+ligtable "h": "|" =: oct"371",
+ oct"371":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"230": "|" =: oct"234",
+ oct"234":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"231": "|" =: oct"235",
+ oct"235":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"232": "|" =: oct"236",
+ oct"236":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"240": "|" =: oct"244",
+ oct"244":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"241": "|" =: oct"245",
+ oct"245":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"242": "|" =: oct"246",
+ oct"246":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"243": "|" =: oct"247",
+ oct"247":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"250": "|" =: oct"254",
+ oct"254":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"251": "|" =: oct"255",
+ oct"255":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"252": "|" =: oct"256",
+ oct"256":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable oct"253": "|" =: oct"257",
+ oct"257":
+ "g" kern-u#, "n" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+
+ligtable "w": "|" =: oct"372",
+ oct"372": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"260": "|" =: oct"264",
+ oct"264": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"261": "|" =: oct"265",
+ oct"265": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"262": "|" =: oct"266",
+ oct"266": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"263": "|" =: oct"267",
+ oct"267": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"270": "|" =: oct"274",
+ oct"274": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"271": "|" =: oct"275",
+ oct"275": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"272": "|" =: oct"276",
+ oct"276": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"273": "|" =: oct"277",
+ oct"277": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"300": "|" =: oct"304",
+ oct"304": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"301": "|" =: oct"305",
+ oct"305": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+ligtable oct"302": "|" =: oct"306",
+ oct"306": "x" kern .5u#,
+ "g" kern-u#, "n" kern-.5u#, "m" kern -.5u#, "q" kern -u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+
+ % sigma ligatures
+ % left sigma is replaced with final sigma, while right character is preserved
+
+ligtable "s":"." =:| "c", "," =:| "c", ";" =:| "c",
+ ":" =:| "c", "?" =:| "c", "!" =:| "c",
+ ")" =:| "c", "/" =:| "c", "]" =:| "c",
+ oct"375" =:| "c", oct"052" =:| "c", oct"035" =:| "c",
+ "a" kern-.8u#, oct"200" kern-.8u#, oct"204" kern-.8u#,
+ oct"210" kern-.8u#, oct"214" kern-.8u#, oct"220" kern-.8u#,
+ oct"224" kern-.8u#, oct"370" kern-.8u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#,
+ "e" kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#,
+ "r" kern-.5u#, oct"373" kern-.5u#, oct"374" kern-.5u#;
+
+ligtable "v": "v"=: "v", "A"=: "A", "B"=: "B", "G"=: "G", "D"=: "D",% void character
+ "E"=: "E", "Z"=: "Z", "H"=: "H", "J"=: "J", "I"=: "I",
+ "K"=: "K", "L"=: "L", "M"=: "M", "N"=: "N", "X"=: "X",
+ "O"=: "O", "P"=: "P", "R"=: "R", "S"=: "S", "T"=: "T",
+ "U"=: "U", "F"=: "F", "Q"=: "Q", "Y"=: "Y", "W"=: "W";.
+
+ % kernings
+
+ligtable "i": oct"310": oct"311": oct"312": oct"320": oct"321": oct"322":
+ oct"330": oct"331": oct"332": oct"360": oct"361": oct"362": oct"363":
+ "t" kern-.5u#, "n" kern-.3u#, "c" kern-.5u#, "s" kern-.5u#,
+ "h" kern-.3u#, "g" kern-.5u#,
+ "j" kern-.3u#, "q" kern-.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"345" kern-.5u#,
+ oct"346" kern-.5u#, oct"354" kern-.5u#, oct"355" kern-.5u#,
+ oct"356" kern-.5u#;
+
+ligtable "e": oct"340": oct"341": oct"342": oct"343": oct"350":
+ oct"351": oct"352": oct"353":
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#,
+ "d" kern-.5u#, "q" kern-.5u#, "s" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable "o": oct"344": oct"345": oct"346": oct"347":
+ oct"354": oct"355": oct"356": oct"357":
+ "l" kern-.3u#, "g" kern-.3u#, "n" kern-.3u#, "t" kern-.3u#,
+ "q" kern-.3u#, "m" kern-.3u#,
+ "u" kern-.3u#, oct"314" kern-.3u#, oct"324" kern-.3u#,
+ oct"334" kern-.3u#;
+
+ligtable "u": oct"314": oct"315": oct"316": oct"317": oct"324":
+ oct"325": oct"326": oct"327": oct"334": oct"335":
+ oct"336": oct"364": oct"365": oct"366": oct"367":
+ "g" kern-.5u#,
+ "m" kern-.5u#,
+ "n" kern-.5u#, "q" kern-.5u#;
+
+ligtable "z":
+ "g" kern-1.5u#, "d" kern-.5u#, "j" kern-.5u#, "m" kern-.5u#, "n" kern-.5u#,
+ "p" kern-5u#, "s" kern-5u#, "t" kern-1u#, "f" kern-5u#,
+ "q" kern-1.5u#,"y" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "a" kern-u#, oct"200" kern-u#, oct"204" kern-u#,
+ oct"210" kern-u#, oct"214" kern-u#, oct"220" kern-u#,
+ oct"224" kern-u#, oct"370" kern-u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#,
+ "e" kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#;
+
+ligtable "t": "q" kern -.5u#,
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#,
+ "e" kern-.3u#, oct"340" kern-.3u#, oct"350" kern-.3u#;
+
+
+
+ligtable "l": "g" kern-2u#, "m" kern-.5u#, "n" kern-u#, "s" kern-.5u#,
+ "t" kern-u#, "q" kern-2u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#,
+ "e" kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#;
+
+ligtable "m":
+ "g" kern-.5u#, "n" kern-.5u#, "s" kern-.5u#,
+ "f" kern-.5u#, "q" kern-5u#, "z" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#;
+
+ligtable "b": "q" kern -.5u#;
+
+ligtable "d": "m" kern-.5u#, "n" kern-.5u#, "g" kern-5u#,
+ "q" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#;
+
+ligtable "n": "r" kern-.5u#, "x" kern-.7u#, "q" kern-.5u#,
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#,
+ "w" kern-u#, oct"260" kern-u#, oct"264" kern-u#,
+ oct"270" kern-u#, oct"274" kern-u#, oct"300" kern-u#,
+ oct"304" kern-u#, oct"372" kern-u#,
+ "o" kern-u#, oct"344" kern-u#, oct"354" kern-u#,
+ "e" kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#;
+
+ligtable "x": "g" kern-.3u#,"s" kern-.5u#, "t" kern-.5u#, "f" kern-.7u#,
+ "q" kern-.5u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#,
+ "a" kern-u#, oct"200" kern-u#, oct"204" kern-u#,
+ oct"210" kern-u#, oct"214" kern-u#, oct"220" kern-u#,
+ oct"224" kern-u#, oct"370" kern-u#,
+ "o" kern-u#, oct"344" kern-u#, oct"354" kern-u#,
+ "e" kern-u#, oct"340" kern-u#, oct"350" kern-u#;
+
+ligtable "p":
+ "o" kern-.5u#, oct"344" kern-.5u#, oct"354" kern-.5u#;
+
+ligtable "r": oct"373": oct"374":
+ "g" kern -.5u#, "z" kern .5u#, "y" kern .3u#, "q" kern-.7u#,
+ "s" kern .5u#,
+ "o" kern .5u#, oct"344" kern .5u#, oct"354" kern .5u#;
+
+ligtable "f": "g" kern -u#, "m" kern -.7u#, "n" kern -.7u#, "t" kern -.5u#,
+ "h" kern-.5u#, oct"371" kern-.5u#, oct"230" kern-.5u#,
+ oct"234" kern-.5u#, oct"240" kern-.5u#, oct"244" kern-.5u#,
+ oct"250" kern-u#, oct"254" kern-u#,
+ "u" kern-.5u#, oct"314" kern-.5u#, oct"324" kern-.5u#,
+ oct"334" kern-.5u#;
+
+ligtable "q": "s" kern -.7u#, "y" kern .3u#,
+ "a" kern-.5u#, oct"200" kern-.5u#, oct"204" kern-.5u#,
+ oct"210" kern-.5u#, oct"214" kern-.5u#, oct"220" kern-.5u#,
+ oct"224" kern-.5u#, oct"370" kern-.5u#,
+ "w" kern-.5u#, oct"260" kern-.5u#, oct"264" kern-.5u#,
+ oct"270" kern-.5u#, oct"274" kern-.5u#, oct"300" kern-.5u#,
+ oct"304" kern-.5u#, oct"372" kern-.5u#,
+ "e" kern-.5u#, oct"340" kern-.5u#, oct"350" kern-.5u#;
+
+ligtable "y": "g" kern-.7u#, "q" kern-.3u#;
+
+
+%
+% oct"014"=A" is the same glyph as A, but is in a different position
+% oct"015" is a version of Udiaer preshifted by the amount AUkern to the left
+%
+ligtable oct"014": "U" |=: oct"015", % (A")+(U)-> (A")+(shifted Udiaer)
+ "I" |=: Idiaer, % (A")+(I)-> (A")+(Idiaer)
+ "~" |=: oct"040", % (A")+(')-> (A")+("~)
+ "`" |=: oct"044", % (A")+(')-> (A")+("`)
+ "'" |=: oct"043"; % (A")+(')-> (A")+("')
+ligtable "A": "|"=: oct"011",
+ diaer =: oct"014", % (A)+(") -> (A")
+ "U" kern-2.5u#, Udiaer kern-AUkern#,
+ "J" kern-1.5u#, "O" kern-1.5u#, "T" kern-1.5u#, "F" kern-1.5u#, "Y" kern-2.2u#;
+ligtable "H": "|"=: oct"012";
+ligtable "O": "A" kern-1.5u#, "S" kern-u#;
+ligtable "U": Udiaer: oct"015": "A" kern-2.5u#, "D" kern-2.5u#, "L" kern-2.5u#;
+ligtable "W": "|"=: oct"013";
+
+ligtable "G": "A" kern -2.4u#, "D" kern -2u#, "L" kern -2.2u#;
+ligtable "D": "U" kern-2.5u#, "O" kern-.6u#;
+ligtable "J": "A" kern-1.5u#;
+ligtable "K": "O" kern-1.5u#;
+ligtable "L": "U" kern-1.8u#, "O" kern-.6u#;
+ligtable "N": "A" kern -1.5u#;
+ligtable "R": "A" kern-3u#;
+ligtable "S": "A" kern-.5u#;
+ligtable "T": "A" kern-1.5u#;
+ligtable "F": "A" kern-1.5u#;
+ligtable "Y": "A" kern-2.2u#;
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbligsc.mf b/Master/texmf-dist/fonts/source/public/cb/cbligsc.mf
new file mode 100644
index 00000000000..4f92157ca5e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbligsc.mf
@@ -0,0 +1,176 @@
+% Copyright (C) 1997, 1999, 2000 Claudio Beccari v.2.0a 2000/02/13
+% Ligature and kerning table for caps-and-small-caps Greek font
+% (CB 1997/05/26); accent-spirit ligatures added 1997/11/03
+% (CB 2000/01/29); accent-spirit ligatures completely modified
+% (CB 2000/02/13); added kerning specials between A,a and u,"u,U,"U
+% No diacritics except for diaeresis and iota adscript
+diaer=oct"042"; % double quote
+idiaer=oct"360"; % iota with diaeresis
+idiaerac=oct"362"; % iota with diaeresis and acute
+udiaer=oct"364"; % upsilon with diaeresis
+udiaerac=oct"366"; % upsilon with diaeresis and acute
+Idiaer=oct"333"; % Iota with diaeresis
+Udiaer=oct"337"; % Upsilon with diaeresis
+AUkern#:=2.5u#; % check definition in cbupper.mf
+aukern#:=1.5u#; % check definition in cblower.mf
+%
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable oct"000": "-" =: oct"177"; % em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+ligtable "<":
+ "~" =: "<", "'" =: "<", "`" =: "<",
+ "a" =: "a", "e" =: "e", "h" =: "h", "r" =: "r",
+ "o" =: "o", "w" =: "w", "i" =: "i", "u" =: "u",
+ "A" =:"A", "E" =:"E", "H" =:"H", "I" =:"I", "O" =:"O", "U" =:"U", "W" =:"W";
+ligtable ">":
+ "~" =: ">", "'" =: ">", "`" =: ">",
+ "a" =: "a", "e" =: "e", "h" =: "h", "r" =: "r",
+ "o" =: "o", "w" =: "w", "i" =: "i", "u" =: "u",
+ "A" =:"A", "E" =:"E", "H" =:"H", "I" =:"I", "O" =:"O", "U" =:"U", "W" =:"W";
+ligtable diaer: "~" =: diaer, "'" =: oct"043", "`" =: diaer,
+ oct"375" =:| oct"035", % diaeresis at end of word becomes apostrophe
+ "i" =: idiaer, "u" =: udiaer, "I" =:Idiaer, "U" =: Udiaer;
+ligtable oct"044": % diaeresis and grave
+ "i" =: idiaer, "u" =: udiaer;
+ligtable oct"043": % diaeresis and acute
+ "i" =: idiaerac, "u" =: udiaerac;
+ligtable oct"040": % diaeresis and circumflex
+ "i" =: idiaer, "u" =: udiaer;
+ligtable "`":
+ diaer =: diaer, "`" =: oct"034", "<"=: "<", ">"=: ">",
+ "a" =: "a", "h" =: "h", "w" =: "w",
+ "e" =: "e", "o" =: "o", "i" =: "i", "u" =: "u",
+ "A" =:"A", "E" =:"E", "H" =:"H", "I" =:"I", "O" =:"O", "U" =:"U", "W" =:"W";
+ligtable "'": diaer =: oct"043", "'" =: oct"035", "<"=: "<", ">"=: ">",
+ "a" =: "a", "h" =: "h", "w" =: "w",
+ "e" =: "e", "o" =: "o", "i" =: "i", "u" =: "u",
+ "A" =:"A", "E" =:"E", "H" =:"H", "I" =:"I", "O" =:"O", "U" =:"U", "W" =:"W";
+ligtable oct"126": % rough breathing and acute
+ "a" =: "a", "h" =: "h", "w" =: "w",
+ "e" =: "e", "o" =: "o", "i" =: "i", "u" =: "u",
+ "A" =:"A", "E" =:"E", "H" =:"H", "I" =:"I", "O" =:"O", "U" =:"U", "W" =:"W";
+ligtable oct"136": % smooth breathing and acute
+ "a" =: "a", "h" =: "h", "w" =: "w",
+ "e" =: "e", "o" =: "o", "i" =: "i", "u" =: "u",
+ "A" =:"A", "E" =:"E", "H" =:"H", "I" =:"I", "O" =:"O", "U" =:"U", "W" =:"W";
+ligtable oct"137": % smooth breathing and grave
+ "a" =: "a", "h" =: "h", "w" =: "w",
+ "e" =: "e", "o" =: "o", "i" =: "i", "u" =: "u",
+ "A" =:"A", "E" =:"E", "H" =:"H", "I" =:"I", "O" =:"O", "U" =:"U", "W" =:"W";
+ligtable oct"103": % rough breathing and grave
+ "a" =: "a", "h" =: "h", "w" =: "w",
+ "e" =: "e", "o" =: "o", "i" =: "i", "u" =: "u",
+ "A" =:"A", "E" =:"E", "H" =:"H", "I" =:"I", "O" =:"O", "U" =:"U", "W" =:"W";
+ligtable "~": diaer =: diaer, "<"=: "<", ">"=: ">",
+ "a" =: "a", "h" =: "h", "w" =: "w",
+ "i" =: "i", "u" =: "u",
+ "A" =:"A", "H" =:"H", "I" =:"I", "U" =:"U", "W" =:"W";
+ligtable oct"100": % rough breathing and circumflex
+ "a" =: "a", "h" =: "h", "w" =: "w",
+ "i" =: "i", "u" =: "u",
+ "A" =:"A", "H" =:"H", "I" =:"I", "U" =:"U", "W" =:"W";
+ligtable oct"134": % smooth breathing and circumflex
+ "a" =: "a", "h" =: "h", "w" =: "w",
+ "i" =: "i", "u" =: "u",
+ "A" =:"A", "H" =:"H", "I" =:"I", "U" =:"U", "W" =:"W";
+
+% iota subscript and other ligatures and kernings
+% oct"016"=a" is identical to the glyph a, but is in a different position
+% a" is used for the different kern-ligarures with "i or "u
+
+ligtable oct"016": "'" =: oct"016", % (a")+(') -> (a")
+ "`" =: oct"016", % (a")+(`) -> (a")
+ "~" =: oct"016", % (a")+(~) -> (a")
+ "u" |=: oct"017", % (a")+(u) -> (a")+(shifted udiaer)
+ "i" |=: idiaer; % (a")+(i) -> (a")+(idiaer)
+ligtable "a": "|" =: oct"370",
+ diaer =: oct"016", % (a)+(") -> (a")
+ "u" kern-1.5u#, udiaer kern-aukern#, udiaerac kern-aukern#, "j" kern-u#,
+ "o" kern-u#, "t" kern-u#, "f" kern-u#, "y" kern-1.5u#,
+ oct"035" kern-2u#, "'"=:"a", "`"=:"a", "<"=:"a", ">"=:"a", "~"=:"a";
+ligtable "h": "|" =: oct"371", "'"=:"h", "`"=:"h", "<"=:"h", ">"=:"h", "~"=:"h";
+ligtable "w": "|" =: oct"372", "'"=:"w", "`"=:"w", "<"=:"w", ">"=:"w", "~"=:"w";
+ligtable "e": "'"=:"e", "`"=:"e", "<"=:"e", ">"=:"e", "~"=:"e";
+ligtable "i": "'"=:"i", "`"=:"i", "<"=:"i", ">"=:"i", "~"=:"i";
+ligtable "o": "'"=:"o", "`"=:"o", "<"=:"o", ">"=:"o", "~"=:"o",
+ "a" kern-u#, "s" kern-.5u#, "c" kern-.5u#;
+ligtable "u": udiaer: udiaerac: oct"017": "a" kern-aukern#, "d" kern-1.5u#, "l" kern-1.5u#,
+ "'"=:"u", "`"=:"u", "<"=:"u", ">"=:"u", "~"=:"u";
+%ligtable udiaer: "a" kern-aukern#, "d" kern-1.5u#, "l" kern-1.5u#;
+%ligtable udiaerac: "a" kern-aukern#, "d" kern-1.5u#, "l" kern-1.5u#;
+ligtable "b": "'"=:"b", "`"=:"b", "<"=:"b", ">"=:"b", "~"=:"b";
+ligtable "g": "a" kern -2u#, "d" kern -1.5u#, "l" kern -1.8u#,
+ "'"=:"g", "`"=:"g", "<"=:"g", ">"=:"g", "~"=:"g";
+ligtable "d": "u" kern-1.5u#, "o" kern-.3u#,
+ oct"035" kern-2u#, "'"=:"d", "`"=:"d", "<"=:"d", ">"=:"d", "~"=:"d";
+ligtable "z": "'"=:"z", "`"=:"z", "<"=:"z", ">"=:"z", "~"=:"z";
+ligtable "j": "a" kern-u#, "'"=:"j", "`"=:"j", "<"=:"j", ">"=:"j", "~"=:"j";
+ligtable "k": "o" kern-u#, "'"=:"k", "`"=:"k", "<"=:"k", ">"=:"k", "~"=:"k";
+ligtable "l": "u" kern -1.5u#, "o" kern-.3u#,
+ oct"035" kern-2u#, "'"=:"l", "`"=:"l", "<"=:"l", ">"=:"l", "~"=:"l";
+ligtable "m": "'"=:"m", "`"=:"m", "<"=:"m", ">"=:"m", "~"=:"m";
+ligtable "n": "a" kern-1.5u#, "'"=:"n", "`"=:"n", "<"=:"n", ">"=:"n", "~"=:"n";
+ligtable "x": "`"=:"x", "<"=:"x", ">"=:"x", "~"=:"x";
+ligtable "p": "'"=:"p", "`"=:"p", "<"=:"p", ">"=:"p", "~"=:"p";
+ligtable "r": "a" kern-2u#, "'"=:"r", "`"=:"r", "<"=:"r", ">"=:"r", "~"=:"r";
+ligtable "s": "a" kern-.35u#, "." =:| "c", "," =:| "c", ";" =:| "c", ":" =:| "c",
+ "?" =:| "c", "!" =:| "c", ")" =:| "c", "/" =:| "c", "]" =:| "c",
+ oct"375" =:| "c", "'"=:"s", "`"=:"s", "<"=:"s", ">"=:"s", "~"=:"s";
+ligtable "c": "a" kern-.35u#;
+ligtable "t": "a" kern-u#, "'"=:"t", "`"=:"t", "<"=:"t", ">"=:"t", "~"=:"t";
+ligtable "f": "a" kern-u#, "'"=:"f", "`"=:"f", "<"=:"f", ">"=:"f", "~"=:"f";
+ligtable "q": "'"=:"q", "`"=:"q", "<"=:"q", ">"=:"q", "~"=:"q";
+ligtable "y": "a" kern-1.5u#, "'"=:"y", "`"=:"y", "<"=:"y", ">"=:"y", "~"=:"y";
+
+%
+% oct"014"=A" is the same glyph as A, but is in a different position
+% oct"015" is a version of Udiaer preshifted by the amount AUkern to the left
+%
+ligtable oct"014": "U" |=: oct"015", % (A")+(U)-> (A")+(shifted Udiaer)
+ "I" |=: Idiaer, % (A")+(I)-> (A")+(Idiaer)
+ "'" =: oct"014", % (A")+(')-> (A")
+ "i" |=: idiaer, % (A")+(i}-> (A")+(idiaer)
+ "u" |=: oct"017"; % (A")+(u)-> (A")+(shifted udiaer)
+ligtable "A": "|"=: oct"011",
+ diaer =: oct"014", % (A)+(") -> (A")
+ "U" kern-AUkern#, Udiaer kern-AUkern#,
+ "u" kern-aukern#, udiaer kern-aukern#, udiaerac kern-aukern#, "J" kern-1.5u#, "j" kern -u#,
+ "O" kern-1.5u#, "o" kern -u#, "T" kern-1.5u#, "t" kern-1.1u#,
+ "F" kern-1.5u#, "f" kern-1.1u#, "Y" kern-2.2u#, "y" kern-1.5u#,
+ "'"=:"A", "`"=:"A", "<"=:"A", ">"=:"A", "~"=:"A";
+ligtable "H": "|"=: oct"012", "'"=:"H", "`"=:"H", "<"=:"H", ">"=:"H", "~"=:"H";
+ligtable "E": "'"=:"E", "`"=:"E", "<"=:"E", ">"=:"E", "~"=:"E";
+ligtable "I": "'"=:"I", "`"=:"I", "<"=:"I", ">"=:"I", "~"=:"I";
+ligtable "O": "'"=:"O", "`"=:"O", "<"=:"O", ">"=:"O", "~"=:"O",
+ "A" kern-1.5u#, "a" kern-u#, "S" kern-u#;
+ligtable "U": Udiaer: oct"015": "A" kern-AUkern#, "D" kern-2.5u#, "L" kern-2.5u#,
+ "a" kern-1.5u#, "d" kern-1.5u#, "l" kern-1.5u#,
+ "'"=:"U", "`"=:"U", "<"=:"U", ">"=:"U", "~"=:"U";
+%ligtable Udiaer: "A" kern-AUkern#, "D" kern-2.5u#, "L" kern-2.5u#;
+ligtable "W": "|"=: oct"013", "'"=:"W", "`"=:"W", "<"=:"W", ">"=:"W", "~"=:"W";
+
+ligtable "B": "'"=:"B", "`"=:"B", "<"=:"B", ">"=:"B", "~"=:"B";
+ligtable "G": "A" kern -2.4u#, "D" kern -2u#, "L" kern -2.2u#,
+ "a" kern -2.5u#, "d" kern -1.9u#, "l" kern -2.2u#,
+ "'"=:"G", "`"=:"G", "<"=:"G", ">"=:"G", "~"=:"G";
+ligtable "D": "U" kern-2.5u#, "u" kern-1.5u#, "O" kern-.6u#, "o" kern-.4u#,
+ "'"=:"D", "`"=:"D", "<"=:"D", ">"=:"D", "~"=:"D";
+ligtable "Z": "'"=:"Z", "`"=:"Z", "<"=:"Z", ">"=:"Z", "~"=:"Z";
+ligtable "J": "A" kern-1.5u#, "a" kern-u#, "'"=:"J", "`"=:"J", "<"=:"J", ">"=:"J", "~"=:"J";
+ligtable "K": "O" kern-1.5u#, "o" kern-.5u#, "'"=:"K", "`"=:"K", "<"=:"K", ">"=:"K", "~"=:"K";
+ligtable "L": "U" kern-1.8u#, "u" kern-1.5u#, "O" kern-.6u#, "o" kern-.4u#,
+ "'"=:"L", "`"=:"L", "<"=:"L", ">"=:"L", "~"=:"L";
+ligtable "M": "'"=:"M", "`"=:"M", "<"=:"M", ">"=:"M", "~"=:"M";
+ligtable "N": "A" kern -1.5u#, "a" kern-.8u#, "'"=:"N", "`"=:"N", "<"=:"N", ">"=:"N", "~"=:"N";
+ligtable "X": "'"=:"X", "`"=:"X", "<"=:"X", ">"=:"X", "~"=:"X";
+ligtable "P": "'"=:"P", "`"=:"P", "<"=:"P", ">"=:"P", "~"=:"P";
+ligtable "R": "A" kern-3u#, "a" kern-2.5u#, "'"=:"R", "`"=:"R", "<"=:"R", ">"=:"R", "~"=:"R";
+ligtable "S": "A" kern-.5u#, "a" kern-.35u#, "'"=:"S", "`"=:"S", "<"=:"S", ">"=:"S", "~"=:"S";
+ligtable "T": "A" kern-1.5u#, "a" kern-1.1u#, "'"=:"T", "`"=:"T", "<"=:"T", ">"=:"T", "~"=:"T";
+ligtable "F": "A" kern-1.5u#, "a" kern-1.1u#, "'"=:"F", "`"=:"F", "<"=:"F", ">"=:"F", "~"=:"F";
+ligtable "Q": "'"=:"Q", "`"=:"Q", "<"=:"Q", ">"=:"Q", "~"=:"Q";
+ligtable "Y": "A" kern-2.2u#, "a" kern-1.5u#, "'"=:"Y", "`"=:"Y", "<"=:"Y", ">"=:"Y", "~"=:"Y";
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbligtt.mf b/Master/texmf-dist/fonts/source/public/cb/cbligtt.mf
new file mode 100644
index 00000000000..bc7dc8a0de0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbligtt.mf
@@ -0,0 +1,120 @@
+% Copyright (C) 1997, 1998, 1999 Claudio Beccari
+% v.2.0d 1999/11/07
+% Ligature for monospaced fonts; accent-spirit ligatures added 1997/11/03
+% Thanks to Andreas Schwab for spotting some bugs and suggesting
+% the corrections
+% Ligatures with void char corrected 1999/04/07
+% Ligatures with iota adscript added 1999/10/25
+%
+diaer=oct"042"; % double quote
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable oct"000": "-" =: oct"177"; % em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+ligtable "<":
+ "~" =: oct"100", "'" =: oct"126", "`" =: oct"103",
+ "a" =: oct"201", "e" =: oct"341", "h" =: oct"231", "r" =: oct"373",
+ "o" =: oct"345", "w" =: oct"261", "i" =: oct"311", "u" =: oct"315";
+ligtable ">":
+ "~" =: oct"134", "'" =: oct"136", "`" =: oct"137",
+ "a" =: oct"202", "e" =: oct"342", "h" =: oct"232", "r" =: oct"374",
+ "o" =: oct"346", "w" =: oct"262", "i" =: oct"312", "u" =: oct"316";
+ligtable diaer: "~" =: oct"040", "'" =: oct"043", "`" =: oct"044",
+ oct"375" =:| oct"035", % diaeresis at end of word becomes apostrophe
+ "i" =: oct"360", "u" =: oct"364",
+ "I" =: oct"333", "U" =: oct"337";
+ligtable oct"044": % diaeresis and grave
+ "i" =: oct"361", "u" =: oct"365";
+ligtable oct"043": % diaeresis and acute
+ "i" =: oct"362", "u" =: oct"366";
+ligtable oct"040": % diaeresis and circumflex
+ "i" =: oct"363", "u" =: oct"367";
+ligtable "`":
+ diaer =: oct"044", "`" =: oct"034", "<"=: oct"103", ">"=: oct"137",
+ "a" =: oct"200", "h" =: oct"230", "w" =: oct"260",
+ "e" =: oct"340", "o" =: oct"344", "i" =: oct"310", "u" =: oct"314";
+ligtable "'": diaer =: oct"043", "'" =: oct"035", "<"=: oct"126", ">"=: oct"136",
+ "a" =: oct"210", "h" =: oct"240", "w" =: oct"270",
+ "e" =: oct"350", "o" =: oct"354", "i" =: oct"320", "u" =: oct"324";
+ligtable oct"126": % rough breathing and acute
+ "a" =: oct"211", "h" =: oct"241", "w" =: oct"271",
+ "e" =: oct"351", "o" =: oct"355", "i" =: oct"321", "u" =: oct"325";
+ligtable oct"136": % smooth breathing and acute
+ "a" =: oct"212", "h" =: oct"242", "w" =: oct"272",
+ "e" =: oct"352", "o" =: oct"356", "i" =: oct"322", "u" =: oct"326";
+ligtable "~": diaer =: oct"040", "<"=: oct"100", ">"=: oct"134",
+ "a" =: oct"220", "h" =: oct"250", "w" =: oct"300",
+ "i" =: oct"330", "u" =: oct"334";
+ligtable oct"137": % smooth breathing and grave
+ "a" =: oct"213", "h" =: oct"253", "w" =: oct"273",
+ "e" =: oct"353", "o" =: oct"357", "i" =: oct"323", "u" =: oct"327",
+ "A" kern-1.5u#, "O" kern-.5u#;
+ligtable oct"103": % rough breathing and grave
+ "a" =: oct"203", "h" =: oct"243", "w" =: oct"263",
+ "e" =: oct"343", "o" =: oct"347", "i" =: oct"313", "u" =: oct"317",
+ "A" kern-1.5u#, "O" kern-.5u#;
+ligtable oct"100": % rough breathing and circumflex
+ "a" =: oct"221", "h" =: oct"251", "w" =: oct"301",
+ "i" =: oct"331", "u" =: oct"335";
+ligtable oct"134": % smooth breathing and circumflex
+ "a" =: oct"222", "h" =: oct"252", "w" =: oct"302",
+ "i" =: oct"332", "u" =: oct"336";
+ % iota subscripts
+ligtable "a": "|" =: oct"370";
+ligtable "h": "|" =: oct"371";
+ligtable "w": "|" =: oct"372";
+ligtable oct"200": "|" =: oct"204";
+ligtable oct"201": "|" =: oct"205";
+ligtable oct"202": "|" =: oct"206";
+ligtable oct"203": "|" =: oct"207";
+ligtable oct"210": "|" =: oct"214";
+ligtable oct"211": "|" =: oct"215";
+ligtable oct"212": "|" =: oct"216";
+ligtable oct"213": "|" =: oct"217";
+ligtable oct"220": "|" =: oct"224";
+ligtable oct"221": "|" =: oct"225";
+ligtable oct"222": "|" =: oct"226";
+ligtable oct"230": "|" =: oct"234";
+ligtable oct"231": "|" =: oct"235";
+ligtable oct"232": "|" =: oct"236";
+ligtable oct"240": "|" =: oct"244";
+ligtable oct"241": "|" =: oct"245";
+ligtable oct"242": "|" =: oct"246";
+ligtable oct"243": "|" =: oct"247";
+ligtable oct"250": "|" =: oct"254";
+ligtable oct"251": "|" =: oct"255";
+ligtable oct"252": "|" =: oct"256";
+ligtable oct"253": "|" =: oct"257";
+ligtable oct"260": "|" =: oct"264";
+ligtable oct"261": "|" =: oct"265";
+ligtable oct"262": "|" =: oct"266";
+ligtable oct"263": "|" =: oct"267";
+ligtable oct"270": "|" =: oct"274";
+ligtable oct"271": "|" =: oct"275";
+ligtable oct"272": "|" =: oct"276";
+ligtable oct"273": "|" =: oct"277";
+ligtable oct"300": "|" =: oct"304";
+ligtable oct"301": "|" =: oct"305";
+ligtable oct"302": "|" =: oct"306";
+
+
+ % sigma ligatures
+ % left sigma is replaced with final sigma, while right character is preserved
+
+ligtable "s":"." =:| "c", "," =:| "c", ";" =:| "c",
+ ":" =:| "c", "?" =:| "c", "!" =:| "c",
+ ")" =:| "c", "/" =:| "c", "]" =:| "c",
+ oct"375" =:| "c", oct"052" =:| "c", oct"035" =:| "c";
+
+ligtable "v": "v"=: "v", "A"=: "A", "B"=: "B", "G"=: "G", "D"=: "D",
+ "E"=: "E", "Z"=: "Z", "H"=: "H", "J"=: "J", "I"=: "I",
+ "K"=: "K", "L"=: "L", "M"=: "M", "N"=: "N", "X"=: "X",
+ "O"=: "O", "P"=: "P", "R"=: "R", "S"=: "S", "T"=: "T",
+ "U"=: "U", "F"=: "F", "Q"=: "Q", "Y"=: "Y", "W"=: "W";
+
+ligtable "A": "|"=: oct"011";
+ligtable "H": "|"=: oct"012";
+ligtable "W": "|"=: oct"013";
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/cblower.mf b/Master/texmf-dist/fonts/source/public/cb/cblower.mf
new file mode 100644
index 00000000000..f13e8a437cc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cblower.mf
@@ -0,0 +1,4581 @@
+% grlower.mf v.2.3k 2002/11/16
+% Copyright (C) 1997 --- 2002 Claudio Beccari
+% Corrected many glyphs in view of better ligatures in AllCaps
+% and CapsAndSmallCaps 2000/01/19
+% Added dummy glyphs for the ligatures A"U, A"u, a"u 2000/02/13
+% Added Leipzig Greek 2000/06/21; corrected 2000/08/03; corrected 2000/11/23; corrected 2001/01/28
+% Added CB roman 2000/07/20
+% Modified Leipzig theta with the open shape 2001/03/25
+% Added "roman" and cursive shwa 2001/07/29
+% Introduced SansSerif boolean and modified the sans serif font 2001/08/01, 2002/04/14
+% Corrected SS medial sigma that came out bad at small design sizes 2002/11/16
+%
+% Most of the following definitions come from Silvio Levy.
+% CB added the small caps variants and made some `corrections' in order to
+% work also with sans serif, bold, inclined, small caps,..., proportional
+% and monospaced, text and slides fonts.
+%
+% CB added also the cursive or italic variants; CB added also the "roman" variant,
+% a sort of greek script that strongly resembles roman latin characters with roman serifs
+% practically on every letter.
+%
+% Thanks to the sigma ligatures the layout of the accented letters are
+% different from Silvio's ones; the layout includes also the Greek numerals
+% (not included in this file; see cbdigits.mf)
+% lowercase and uppercase digamma, lower case iota and upsilon with diaeresis.
+%
+% The sigma ligatures are performed according to the new ligature commands
+% that were introduced in METAFONT (and in TeX) after 1988; they were not
+% available to Silvio; if they were, probably he'd had chosen the same
+% approach as I did.
+%
+% (1999/10/25) CB added the adscript iota for the small cap alpha, eta
+% and omega -- this was done on the explicit request of Apostolos Syropoulos
+% and his classicist friend Efthimios Maurogeorgiadis.
+
+% CB Leipzig Greek added on request and with great help of Dimitri Filippou; without
+% his constructive collaboration this font shape would have been very poor; thanks,
+% Dimitri, for the great help you gave me!
+
+
+ currentbreadth:=0;
+
+
+% alpha
+
+def width = if small_caps: 11 elseif cbleipzig: 10 else: 9 fi u enddef;
+def height = if small_caps: sclc* fi x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,if SansSerif:1.2u# else:0 fi enddef;
+
+def gen_letter =
+ if small_caps:
+ numeric left_stem,right_stem,outer_jut,alpha;
+ right_stem=stem-stem_corr;
+ left_stem=min(hair if hefty: -3stem_corr fi,right_stem);
+ outer_jut=.8jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+ x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+ alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+ penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+ penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+ penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+ penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+ if hefty: y5r else: y5 fi =5/12y0;
+ y5r-y5l=y6r-y6l=cap_band;
+ penstroke z5e--z6e; % bar line
+ if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+ numeric pos_stem; %iota reference
+ pos_stem=rt x4r if serifs or slitex: -.5slab + outer_jut fi +.5(tiny+.5[vair,stem])+u;
+ else:
+ if cursive:
+ %adjust_fit(0,0);
+ if slitex or monospace:pickup fine.nib; else: pickup pencircle; fi
+ pos1(stem,0); top y1=x_height+oo; x1l=x5l;
+ pos2(hair,-90); pos4(hair,90); x4=x2=.5[x3l,x5l];
+ bot y2r=-oo; top y4r=x_height+oo; %bottom and top bulges
+ pos3(vstem,-180); lft x3r=hround 3/4u; y3=.5[y2,y4]; %left bulge
+ pos6(vstem,90); x5=.55[x2,x6]; y6l=y2r; x6=w-2u; %bottom right
+ pos5(hair,0); y5=y3; pos8(.5[hair,stem],0); z8l=z5l;
+ alpha_tail(6,7); %hook
+ filldraw stroke z5e{down}..z2e{left}..z3e{up}..z4e{right}..{down}z5e;
+ filldraw stroke z1e{down}..z8e...z6e{right}...{up}z7e;
+ numeric x_baryctr; x_baryctr=.25[x4,x1]; %accent reference
+ numeric pos_stem; %iota reference
+ pos_stem=x5l;
+ elseif cbleipzig:
+ %adjust_fit(0,0);
+ pickup pencircle;
+ pos1(vstem,0); top y1=x_height+oo-.5vstem; x1l=x5l;
+ pos2(hair,-90); pos4(fine,90); x4=x2=.5[x3l,x5l];
+ bot y2r=-oo; top y4r=x_height+oo; %bottom and top bulges
+ pos3(vstem,-180); lft x3r=hround 3/4u; y3=.5[y2,y4]; %left bulge
+ pos6(vstem,90); x5=.55[x2,x6]; y6l=y2r; x6=w-2u; %bottom right
+ pos5(hair,0); y5=y3;pos7(fine,0); z7l=z5l;
+ pos8(.5[hair,stem],0); z8l=z5l;
+ filldraw stroke z5e{down}..z2e{left}..z3e{up}..z4e{right}..{down}z7e;
+ pos9(hair,135); rt x9l=w-lft x3r; bot y9l=min(2stem,bar_height/2);
+ x10l=.5[x5l,x9l]; y10l=y6l=y10r-.9stem; x10r=.5[x8r,x9r]; z10=.5[z10l,z10r];
+ filldraw double_circ_stroke z1e{down}..z8e...z10e{right}...{up}z9e;
+ numeric x_baryctr; x_baryctr=.25[x4,x1]; %accent reference
+ numeric pos_stem; %iota reference
+ pos_stem=x5l;
+ elseif cbroman:
+ %adjust_fit(0,0);
+ pos2(hair,90); pos3(stem,180); pos4(hair,-90); pos5(stem,0);
+ pos10(hair,0); z10l=z7l;
+ pos11(hair,0); z5l=.5[z11l,z10l];;
+ x2=x4=.5[x3,x5]; h-top y2r= bot y4r=-oo; lft x3r=w-u-rt x5r= 3/4u; y3=y5=h/2;
+ top y1r=top y2r; x1r=x5r; z1l=z1r+whatever*dir(45); x1l=x5l;
+ pos7(stem,0); x7r=x5r;y7=h/4;
+ pos8(.5[hair,stem],60); x8r=.5[x7r,x9r]; bot y8l= bot y4r;
+ pos9(hair,135); rt x9l= w-u/2; y9r=y8r+hair;
+ filldraw stroke z11e{up}...z2e{left}...{down}z3e...z4e{right}...z10e{up};
+ filldraw circ_stroke z9e{down}...z8e{left}...z7e{up}---z1e;
+ numeric x_baryctr; x_baryctr=.15[x4,x5]; %accent reference
+ numeric pos_stem; %iota reference
+ pos_stem=x5l;
+ else:
+ %adjust_fit(fit_params);
+ pickup fine.nib;
+ pos1(stem,0); top y1=x_height+oo; rt x1r=hround(w-.5u); %top right
+ pos2(vstem,-90); pos4(vstem,-270); x4=x2=.5w-u;
+ bot y2r=-oo; top y4r=x_height+oo; %bottom and top bulges
+ pos3(hair,-180); lft x3r=hround .75u; y3=.5[y2,y4]; %left bulge
+ pos6(vstem,90); x6=w-u; y6=y2; %bottom right
+ numeric theta; theta=angle((x4-x6),2.5(y4-y6))-90;
+ pos5(hair,theta); x5=.55[x4,x6]; y5=y3; %point of inflection
+ alpha_tail(6,7); %hook
+ filldraw stroke z1e{(x2-x1,2(y2-y1))}... %diagonal
+ pulled_arc.e(2,3) & pulled_arc.e(3,4) %bowl
+ ...z5e{(x6-x4,2.5(y6-y4))}...z6e{right}...{up}z7e; %diagonal and hook
+ numeric x_baryctr; x_baryctr=.25[x4,x1]; %accent reference
+ numeric pos_stem; pos_stem=x_baryctr; %iota reference
+ fi
+ fi
+enddef;
+
+
+
+cmchar "Lowercase alpha";
+beginchar("a",dims);
+adjust_fit(fit_params);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;% "Lowercase alpha"
+
+
+iff(not barebones):
+cmchar "Lowercase alpha with right diaeresis"; % for kerning purposes - see explanation
+beginchar(oct"016",dims); % after uppercase alpha in cbupper.mf
+adjust_fit(fit_params);
+this_letter; endchar;% "Lowercase alpha with right diaeresis"
+
+numeric aukern, aukern#; aukern:=1.5u; aukern#:=1.5u#; % for kerning between a and "u
+
+
+iff(not barebones):
+cmchar "Lowercase alpha with grave";
+beginchar(oct"200",width#,acc_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps: grave(x_baryctr); fi endchar;% "Lowercase alpha with grave"
+
+iff(not barebones):
+cmchar "Lowercase alpha with rough breathing";
+beginchar(oct"201",width#,acc_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps: spirit(x_baryctr)<; fi endchar;% "Lowercase alpha with rough breathing"
+
+iff(not barebones):
+cmchar "Lowercase alpha with smooth breathing";
+beginchar(oct"202",width#,acc_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps: spirit(x_baryctr)>; fi endchar;% "Lowercase alpha with smooth breathing"
+
+iff(not barebones):
+cmchar "Lowercase alpha with grave and iota subscript";
+beginchar(oct"204",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; grave(x_baryctr);
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with rough breathing and iota subscript";
+beginchar(oct"205",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; spirit(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with smooth breathing and iota subscript";
+beginchar(oct"206",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; spirit(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with acute";
+beginchar(oct"210",width#,acc_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps: acute(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with rough breathing and acute";
+beginchar(oct"211",width#,acc_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps: spirit_acute(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with smooth breathing and acute";
+beginchar(oct"212",width#,acc_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps: spirit_acute(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with rough breathing and grave";
+beginchar(oct"203",width#,acc_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps: spirit_grave(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with smooth breathing and grave";
+beginchar(oct"213",width#,acc_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps: spirit_grave(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with rough breathing and grave and iota subscript";
+beginchar(oct"207",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; spirit_grave(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with smooth breathing and grave and iota subscript";
+beginchar(oct"217",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; spirit_grave(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with acute and iota subscript";
+beginchar(oct"214",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; acute(x_baryctr);
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with rough breathing, acute and iota subscript";
+beginchar(oct"215",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; spirit_acute(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with smooth breathing and acute and iota subscript";
+beginchar(oct"216",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; spirit_acute(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with circumflex";
+beginchar(oct"220",width#,circ_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps:
+squeeze:=false; circumflex(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with rough breathing and circumflex";
+beginchar(oct"221",width#,Circ_ht#,0);
+adjust_fit(fit_params);
+this_letter; if not small_caps:
+squeeze:=true; spirit_circumflex(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with smooth breathing and circumflex";
+beginchar(oct"222",width#,Circ_ht#,0);
+this_letter; if not small_caps: squeeze:=true; spirit_circumflex(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with circumflex and iota subscript";
+beginchar(oct"224",width#,if small_caps:height#else:circ_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; squeeze:=false; circumflex(x_baryctr);
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with rough breathing, circumflex and iota subscript";
+beginchar(oct"225",width#,if small_caps:height#else:Circ_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter;squeeze:=true; spirit_circumflex(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with smooth breathing, circumflex and iota subscript";
+beginchar(oct"226",width#,if small_caps:height#else:Circ_ht#fi,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter; squeeze:=true; spirit_circumflex(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase alpha with iota subscript";
+beginchar(oct"370",width#,height#,iota_dp#);
+if small_caps:
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+
+ if serifs:.4jut#elseif not slitex: .5*(.5[vair#,stem#])fi
+ +if monospace:1.8elseif slitex:1.5else:.5fi tiny#+1.3u#);
+gen_letter;
+else:
+adjust_fit(fit_params);
+this_letter;
+fi
+iota_sub(pos_stem); endchar;
+
+%picture pic.iota;
+picture savedpicture; currentbreadth:=0;
+
+
+def dims = if small_caps: 10u#, sclc*x_height#,0 % lowercase beta
+ else: if cbleipzig: 8u#,asc_height#,desc_depth#
+ elseif cbroman:8u#,asc_height#,0
+ else:9u#,asc_height#,desc_depth#
+ fi
+ fi enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(serif_fit#-.5u#,-.5u#);
+ numeric left_stem,right_curve,middle_weight;
+ left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+ pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ penpos3(.7cap_band,90); penpos4(.7cap_band,90);
+ penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+ penpos8(middle_weight,90); penpos9(middle_weight,90);
+ penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+ penpos11(cap_band,-90); penpos12(cap_band,-90);
+ z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+ z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+ x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+ x5r=hround(w-1.5u); x10r=hround(w-u);
+ if serifs: right_curve=curve-stem_corr; x4=.5[x1,w-1.5u];
+ else: right_curve=curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+ x6l:=x6l-.5u; x11l:=x11l-.5u;
+ fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+ fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+ if serifs: if not monospace:dish_serif(1,2,a,1/3,jut,b,1/3,.5jut) % upper serif
+ else: serif(1,2,a,1/3,-jut) fi;
+ dish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+ math_fit(0,.5ic#);
+ else:
+ italcorr .8*asc_height#*slant-.5u#;
+ if (cursive or cbleipzig) and not SansSerif:
+ if monospace or slitex: pickup fine.nib; fi
+ numeric bstem; bstem=.7[hair,stem];
+ pos1(bstem,0); lft x1l=3/4u; bot y1=-d if cbleipzig:+.5bstem fi;
+ if cbleipzig:
+ pos3(bstem,45); x3r=x1r; y3l=.55[bar_height,h];
+ pos2(bstem,30);z2r=.7[z1r,z3r];
+ else:
+ pos2(bstem,0); x2r=x1r; y2=bar_height;
+ pos3(bstem,-45); x3r=x1r; y3r=if serifs:if monospace:.3 else:.55fi
+ else: if slitex:.4 else:.5fi fi[bar_height,h];
+ fi
+ pos5(hair,-90); x5=w/2; top y5l=h+oo;
+ pos7((2*(h-y9)/h)*stem,180);
+ x7l=w-7/5x1l;
+ if cbleipzig: y7=.5[y9,y5]; else: y7=3/4h; fi
+ pos8(hair,90); x8=x5; y8=y9;
+ pos9(max(hair,9/10bstem),90);
+ x9-.5bstem=rt x1r+.15u;
+ if cbleipzig: top y9r=x_height; else: y9=1/2h; fi
+ if cbleipzig:
+ filldraw circ_stroke z1e{up}..z2e..z3e..{right}z5e..{down}z7e..{left}z8e;
+ else:
+ filldraw stroke z1e{up}..z2e..z3e..{right}z5e..{down}z7e..{left}z8e;
+ fi
+ filldraw circ_stroke z9e..if not cbleipzig:{right}fi z8e;
+ pos12(stem,0); x12r=w-x1l; if cbleipzig: y12=.5[y14,y9];else:y12=1/4h;fi
+ pos14(fine+eps,-90); x14=x5; bot y14r=-oo;
+ pos15(bstem,-135); x15l=x1r; if cbleipzig: y15= bstem;else:y15=x_height-y9;fi
+ filldraw stroke z8e{right}..{down}z12e..{left}z14e..z15e;
+ numeric bstem;
+ elseif cbroman:
+ numeric bstem,slope; bstem=.7[hair,stem];
+ pos1(bstem,180); z1=z2;
+ pos2(bstem,0); lft x2l=3/4u; y2=.6[bar_height,x_height];
+ pos3(bstem,-30); x3r=x2r; y3r=.55[bar_height,h];
+ pos5(hair,-90); x5=.5[x3r,x7r]; top y5l=h+oo;
+ pos7(bstem,180); z7-(w,0)=whatever*((w/2+u,h)-(w,0)); y7=.45[x_height,h];
+ pos9(hair,135); z9r=z2l;
+ slope=angle((w,x_height)-z2);
+ filldraw stroke z9e{dir(slope)}..z7e{up}...z5e{left}...z3e---{down}z2e;
+ path cbp; cbp=z9{dir(slope)}..{up}z7;
+ pair za,zb; za=point .5 of cbp; zb=direction .5 of cbp;
+ pos8(hair,angle(zb)); z8=za;
+ pos12(stem,0); x12r=w-x2l; y12=.5[y8l,y14r];
+ pos14(hair,-90); x14=.5[x1l,x12l]; bot y14r=-oo;
+ filldraw stroke z1e{down}...{right}z14e...{up}z12e...{dir(180-slope)}z8e;
+ numeric bstem,slope; pair za,zb; path cbp;
+ elseif SansSerif:
+ pickup fine.nib;
+ numeric thin_stem,beta_hair;
+ beta_hair=.65hair;
+ thin_stem=.3[beta_hair,stem]; %for upper bowl
+ pos1(stem,180); y1-stem=-d-o; %bottom left
+ pos2(stem,180); y2=.9bar_height; %self-intersection (cf. z15)
+ x1=x2; lft x1r=hround(.75u); %i.e., lft x2r = .75u
+ pos3(stem,180);
+ x3r=x2r; y3r=.3[y10,y5]=.9y7r; %beginning of curve
+ x7r=x12r-.9u;
+ pos7(stem,0);
+ top y5r=h+oo; bot y14r=-oo;
+ x5r=.5[x3r,x7r]; x14r=w/2; %top and bottom bulges
+ pos5(.1 [beta_hair,hair],90);
+ y10=y9=.56[y14,y5]; x9r=x10r; %top and bottom of cusp
+ pos10(beta_hair,90); pos9(beta_hair,-90);
+ rt x12r=hround(w-.75u); %lower right bulge
+ y12r=y10/2;
+ pos12(stem,0);
+ x9r=hround(x5r-.5u-.5thin_stem);
+ pos14(thin_stem,-90);
+ z15l=z2l;
+ pos15(.5hair,180);
+ filldraw stroke z1e--z2e--z3e{up}..tension(.8)..z5e{right}..tension(.8)
+ ..z7e{down}...{left}z9e;
+ filldraw stroke z10e{right}..tension(.8)..z12e{down}..{left}z14e..{up}z15e;
+ else:
+ pickup fine.nib;
+ numeric thin_stem; thin_stem=.6[hair,stem]; %for upper bowl
+ numeric tilt; tilt=min(2*otilt,.5); %for both bowls
+ pos1(stem,180); y1-.5stem=-d-o; %bottom left
+ pos2(hair,180); y2=.5bar_height; %self-intersection (cf. z15)
+ x1=x2; lft x1r=hround(.75u+.5(hair-stem)); %i.e., lft x2r ~ .75u
+ x3r=x2r; %beginning of curve
+ top y5r=h+oo; bot y14r=-oo; x5r=x14r; %top and bottom bulges
+ if monospace or slitex:
+ top y10r=x_height; z9=z10;
+ pos9(stem,-90); pos10(stem,90);
+ else:
+ top y10r=vstem+bot y9r=x_height; x9r=x10r; %top and bottom of cusp
+ fi
+ rt x12r=hround(w-.75u); %lower right bulge
+ x5r=.5[lft x2r,rt x12r]; x9r-.5vstem=hround(x5r-.5u-.5vstem);
+ % we want to simulate the following relations, to make slopes consistent
+ % (where z7 is the upper right bulge):
+ % z5r-z3r=whatever*(z9r-z7r)=whatever*(z14r-z12r);
+ % z7r-z5r=whatever*(z12r-z10r)=whatever*(z5r-z3r) yscaled -1;
+ numeric slope;
+ slope=((y10r-y12r)+(y12r-y14r))/((x12r-x10r)+(x12r-x14r));
+ z7'r=z9r+whatever*(1,slope); z7'r=z5r+whatever*(1,-slope);
+ y7r=y7'r; rt x7r=hround rt x7'r;
+ z12r=z14r+whatever*(1,slope); z3r=z5r+whatever*(1,slope);
+ if monospace or slitex:
+ pos7(stem,0); pos5(stem,90); pos3(stem,180); %top and left
+ filldraw circ_stroke z1e--z2e..z3e{up}..{right}z5e...{down}z7e;
+ else:
+ filldraw double_circ_stroke gr_arc.e(7,6,5)(hair,thin_stem,tilt)..
+ gr_arc.e(5,4,3)(hair,thin_stem,tilt)..{down}z2e..z1e;
+ fi
+ z2=z15; pos15(hair,slope-90); %intersection pt
+ numeric slope;
+ slope=angle((z14r-z15)yscaled 2);
+ filldraw stroke z15e{dir slope}...gr_arc.e(14,13,12)(hair,stem,tilt); %bottom
+ if not (monospace or slitex):
+ forsuffixes e=r,l:
+ path curv[]e; numeric S[]e;
+ curv1e=reverse gr_arc.e(9,8,7)(hair,thin_stem,tilt); %cusp bottom
+ curv2e=gr_arc.e(12,11,10)(hair,stem,tilt); endfor %cusp top
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (whatever,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,whatever)=curv1l intersectiontimes curv2r;
+ if S1l=-1 : S1l:=2; fi
+ if S2l=-1 : S2l:=2; fi
+ filldraw stroke subpath(0,S1e+eps) of curv1e; %fill in cusp
+ filldraw stroke subpath(0,S2e+eps) of curv2e;
+ filldraw subpath (S1r+eps,2) of curv1r...subpath(2,S2r+eps) of curv2r..cycle;
+ else:
+ if slitex:
+ filldraw double_circ_stroke z12e{up}...{left}z10e;
+ else:
+ filldraw stroke z12e{up}...{left}z10e;
+ fi
+ filldraw stroke z9e{right}...{up}z7e;
+ fi
+ fi
+ fi
+enddef;
+
+cmchar "Lowercase beta";
+beginchar("b",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;% "Lowercase beta"
+
+picture savedpicture; currentbreadth:=0;
+
+
+
+def dims = if small_caps: 8.5u#, sclc*x_height#,0 % gamma
+ else:
+ if cbleipzig:8.5%
+ elseif cbroman:9%
+ else:10%
+ fi
+ u#,x_height#,desc_depth# fi enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+
+
+def gen_letter=
+ if small_caps: sc_beak_jut:=.7beak_jut; sc_beak:=.7beak; sc_jut:=.9jut;
+ italcorr height#*slant-beak_jut#-.25u#;
+ h:=vround(h-stem_corr);
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ lft x1l=lft x2l=hround 1.5u+sc_beak_jut; top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+ top y3r=h; x3=x1; rt x4r=hround(w-if serifs:.75fi u); y4=good.y(y3l-sc_beak)-eps;
+ arm(3,4,e,beak_darkness,sc_beak_jut); % arm and beak
+ if serifs: dish_serif(1,2,a,1/3,sc_jut,b,1/3,.5sc_jut); % upper serif
+ dish_serif(2,1,c,1/3,sc_jut,d,1/3,1.25sc_jut); fi % lower serif
+ math_fit(0,ic#-2.5u#);
+ else:
+ if cursive and serifs and not monospace:
+ adjust_fit(.5stem#,0);
+ pos1(hair,90); pos2(stem,45);
+ lft x1r=0; top y1=bot y2l; top y2r= h+oo; x2l-x1r=5/4u;
+ pos3(stem,0); x3l=x2r+2/3u; y3=3/4h;
+ pos4(hair,0); y4=-o; x4=w/2;
+ filldraw stroke z1e..z2e..z3e..{down}z4e;
+ pos7(hair,-45); z7=z4;
+ pos5(stem,0); bot y5-.5stem=-d-oo; z4-z5=whatever*dir(70);
+ filldraw z4r{down}..z5r...z5l{up}...{dir(45)}z7l--cycle;
+ numeric tilt; tilt=20;
+ pos6(stem,30); top y6=h+oo-.5stem; rt x6r=w-3/4u;
+ filldraw circ_stroke z6e{dir(tilt-90)}..{dir(225)}z7e;
+ numeric tilt;
+ elseif cbleipzig:
+ adjust_fit(.5u#,0);
+ pos1(fine,150); lft x1r=0; top y1=bot y2l-u;
+ top y2r= h+oo=y2l+stem; x2l=.5[x1l,x3l];x2r=.5[x1r,x3r]; z2=.5[z2l,z2r];
+ pos3(.5[hair,stem],30); x3l=x1l+2.5u; y3=3/4h;
+ pos4(.3[hair,stem],0); z4=(w,h)+whatever*(((w,h)-(0,-d))yscaled1.2); y4=o;
+ filldraw circ_stroke z1e{up}...z2e{right}...z3e..{down}z4e;
+ z5=z1 +whatever*(slant,-1); bot y5=-d;
+ numeric slope,pend; slope= angle(z4-z5); pend=slope-90;
+ pos5(.1[hair,stem],pend);
+ pos9(stem,pend); z9-z5=whatever*(z4-z5);y9=y5+.34stem*sind(slope);
+ pos7(.3[hair,stem],pend-30); z7=z4;
+ filldraw z4r{down}..z9r..z5r..z5l..z9l..{dir(pend+60)}z7l--cycle;
+ pos6(stem,0); top y6=h+oo-.5stem; rt x6r=w-3/4u;
+ pos8(.4[hair,stem],-15); y8=.7[y4,y6]; x8r=x6r;
+ filldraw circ_stroke z6e..z8e...{-dir(pend+60)}z7e;
+ elseif SansSerif:
+ pickup fine.nib; superness__:=superness;
+ begingroup
+ save t; t:=superness__;
+ superness:=.95t;
+ pos2(curve,90); top y2r=h+oo; %top of left branch
+ pos1(hair,180); bot y1=top y2r-4/3curve; %tip of hook
+ lft x1r=hround .5u; x2-x1=y2-y1; %central arc is round
+ pos5(curve,-270); top y5r=h+oo; x5=hround(w-.75u); %right branch
+ pos5'(curve,0); z5'=z5;
+ filldraw stroke z1e{up}...z2e{right};
+ x3-x4=abs(if (not monospace): 1.2stem-vair else: 0 fi);
+ pos3(hair,0); pos4(hair,-180);
+ y4=y3; .5[x3,x4]=.5w;
+ y3-.5stem=vround(-.8d);
+ drawloop(2,3,4,5); %hook and cusp
+ endgroup;
+ superness:=superness__;
+ elseif cbroman:
+ pickup tiny.nib;
+ pos1(stem,0);top y1=h; lft x1l=jut;
+ pos2(stem,0);y2=0; x2=w/2;
+ pos3(stem,0); bot y3=-d; x3=x2;
+ pos4(hair,0);z4r=z2r;
+ pos5(hair,0);y5=y1; rt x5r=w-jut;
+ filldraw stroke z1e--z2e--z3e;
+ filldraw stroke z4e--z5e;
+ dish_serif(3,2,a,1/3,.8jut,b,1/3,.8jut);
+ serif(1,2,c,1/3,-.8jut);
+ dish_serif(5,4,f,1/4,.8jut,g,1/4,.8jut);
+ else:
+ pickup fine.nib; superness__:=superness;
+ begingroup
+ save t; t:=superness__;
+ superness:=.95t;
+ pos2(curve,90); top y2r=h+oo; %top of left branch
+ pos1(hair,180); bot y1=top y2r-4/3curve; %tip of hook
+ lft x1r=hround .5u; x2-x1=y2-y1; %central arc is round
+ pos5(curve,-270); top y5r=h+oo; x5+.5curve=hround(w-.75u); %right branch
+ pos5'(curve,0); z5'=z5;
+ filldraw stroke z1e{up}...z2e{right};
+ if serifs and (not monospace):
+ rt x3r-lft x4r= stem; %bottom of cusp
+ else:
+ x3-x4=abs(if (not monospace): 1.2stem-vair else: 0 fi);
+ fi
+ pos3(hair,0); pos4(hair,-180);
+ y4=y3; .5[x3,x4]=.5w;
+ if monowidth:
+ y3=0 else: y3-.5stem=vround(-.8d)
+ fi;
+ drawloop(2,3,4,5); %hook and cusp
+ filldraw z5l{right}...z5'r{up}...z5r{left}--cycle; %right branch
+ if monowidth: %complete stem
+ x3'=x3r; x4'=x4r; y3'=y4'; y3'-.5stem=vround(-.8d);
+ filldraw z3r--z3'{down}...{up}z4'--z4r--cycle;
+ fi
+ endgroup;
+ superness:=superness__;
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase gamma";
+beginchar("g",dims);
+if small_caps: adjust_fit(.7serif_fit#,0)
+ elseif cbroman: adjust_fit(serif_fit#,serif_fit#)
+ else: adjust_fit(0,0)fi;
+this_letter; penlabels(1,2,3,3',4,4',5,6,7,8,9); endchar;% "Lowercase gamma"
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+def dims = if small_caps: 11u#, sclc*x_height#,0 % delta
+ elseif cbleipzig:
+ 8.4 u#,asc_height#,0
+ else: 8.5u#,asc_height#,0
+ fi enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+
+def gen_letter =
+ if small_caps:
+ numeric left_stem,alpha;
+ left_stem=hair if hefty: -3stem_corr fi;
+ x1l=w-x4r=.75u; y1=y4=0;
+ x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+ alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+ penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+ penpos3(alpha*stem,0); penpos4(alpha*stem,0);
+ fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ y5=y6=vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+ if y0<h-notch_cut: y0:=h-notch_cut;
+ unfill z0+.5right{down}...{z4-z3}z6--z5{z2-z1}
+ ...{up}z0+.5left--cycle; % counter
+ else: unfill z0--z5--z6--cycle; fi % counter
+ elseif cbleipzig: % cbleipzig
+ pos1(hair,-90);
+ pos2(stem,0); lft x2l=3/4u; y2=y1/2;
+ pos3(.2[fine,stem],90); bot y3l=-oo; x3=x1;
+ pos4(stem,180); y4=y2; x4l=w-x2l;
+ pair zd,ze,zf; zd=(-w,h-x_height);
+ pos5(stem-fine/2,angle(zd)+90);
+ z5r=z1; x5r=w/2; y1l=x_height+oo;
+ x6l-x6r=.6[hair,stem]; x6l=.2[x2r,x8l];
+ y6l=.7[y5l,y8l]; y6r=.8[y5r,y8r];z6=.5[z6r,z6l];
+ compl_slant_angle=angle((1,slant));
+ pos8(hair,90); y8r=h+oo; z8=z5+whatever*dir(90+compl_slant_angle);
+ pos9(.2[hair,stem],-compl_slant_angle);
+ y9l=y5l+2stem/3;z9l=z5l+whatever*dir(80);
+ path cbp; cbp=z4r{up}...z1r{left};
+ zf=point .7 of cbp; ze=direction .7 of cbp;
+ pos0(stem-fine/2,.5[angle(ze)+90,270]); z0r=zf;
+ path cbp; cbp= z4l..z0l..z6l{dir(80)};pair zf; zf=direction1.6of cbp;
+ pos7(.9length(z6r-z6l),angle(zf)+90); z7l=point1.6of cbp;
+ filldraw double_circ_stroke z4e{up}..z1e{left}..z2e..z3e..z4e..z0e..z7e..%
+ z6e{dir(80)}...{right}z8e..{dir(-compl_slant_angle-90)}z9e;
+ unfill z1r..z2r...z3r..z4r...cycle;
+ numeric compl_slant_angle;
+ elseif cbroman: % cbroman
+ pos1(hair,90); pos2(stem,180); pos3(hair,-90); pos4(stem,0);
+ y1r=x_height+oo; y3r=-oo; y2=y4=x_height/2; x1=x3=w/2; x2r=w-x4r=u/2; z5r=z1r; z5l=z1l;
+ filldraw stroke z1e{left}...z2e...z3e...z4e...{left}z5e;
+ pos6(1.414hair,45); pos7(stem,0); pos8(hair,-90); pos9(hair,-180);
+ z6=z1; x7l=u; y7=.5[x_height,h]; x8=x1;y8l=h+oo;
+ x9r=x4l; y9=y7;
+ filldraw stroke z6e{left}..{up}z7e...{right}z8e...{down}z9e;
+ pos10(stem,0);pos11(stem,90);z10=z11; z10r=z9l;
+ dot(10,11);
+ elseif monospace or slitex or SansSerif: % sanserif, typewriter, slides
+ pickup fine.nib;
+ top y1r=vround(if not monowidth:.95 fi x_height+oo); x1r=.5w; %top of loop
+ x5r=.5w; bot y5r=-oo; %bottom of ditto
+ lft x3r=w-rt x7r=hround(.75u); y3r=y7r=.5[y1r,y5r]; %left and right bulge
+ filldraw stroke gr_arc.e(1,2,3)(vair,stem,.5otilt) %four quadrants of loop
+ & gr_arc.e(3,4,5)(vair,stem,.5otilt) & gr_arc.e(5,6,7)(vair,stem,.5otilt)
+ & gr_arc.e(7,12,1)(vair,stem,.5otilt);
+ path cbp;
+ cbp= z7r...z12r...z1r; % external path of first quadrant
+ z8r=point if slitex:.90elseif monospace:.84else:.76fi of cbp; % find attachment point
+ z.a= direction if slitex:.90elseif monospace:.84else:.76fi of cbp; % tangent direction at attachment
+ numeric axis; axis=angle(z.a)-90; % normal to tangent
+ numeric thin_stem, raggio; thin_stem=top y1r - bot y1l; % thickness of arc
+ raggio=.5stem+thin_stem; % radius of arc
+ pos8(thin_stem,axis);
+ pos9(thin_stem,axis);
+ pos10(thin_stem,angle(z8l-z8r));
+ pos11(thin_stem,axis-180);
+ z10=z8+whatever*(z8l-z8r); % Start and end of delta arc are alligned along z8 direction
+ top y11l=if gensize<6: h-o else:min(h-o,x_height+3.3stem) fi;% top of delta arc
+ z0=.5[z8r,z10r]+whatever*dir(axis+90)=.5[z9r,z11r]; % center of delta arc defines median line
+ z9r-z8r=whatever*dir(axis+90)=z11r-z10r; % allignment of straight parts of the delta arc
+ x0=lft x3r+.5u+raggio; % center of delta arc
+ filldraw stroke z8e..z9e{dir(axis+90)}..{dir(axis-90)}z11e..z10e;% delta arc
+ else: % regular, outline and cursive
+ pos1(hair,-90); y1l=x_height+o; x1=w/2;
+ pos2(stem,0); lft x2l=3/4u; y2=y1/2;
+ pos3(hair,90); bot y3l=-oo; x3=x1;
+ pos4(stem,180); y4=y2; x4l=w-x2l;
+ pair zd,ze; zd=(-w,h-x_height);
+ ze=zd rotated -90;
+ pos5(stem,180); z5=z1;
+ pos6(hair,angle(zd));
+ z6-(w,x_height)=whatever*zd; x6r=.1[x2l,x1];
+ pos7(.5[hair,stem],90);
+ x7= x4; y7=.6[y5,y6];
+ filldraw stroke z1e{left}..z2e..z3e..z4e..z5e...z6e{ze}...{-zd}z7e;
+ fi
+enddef;
+
+
+cmchar "Lowercase delta";
+beginchar("d",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;% "Lowercase delta"
+
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+def width = if small_caps: 9 else: % epsilon
+ if cbleipzig:7%
+ elseif cbroman:7
+ else:7.75
+ fi
+ fi u enddef; % epsilon
+def height = if small_caps: sclc* fi x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ if small_caps:
+ sc_beak#:=.7beak#; sc_beak_jut#:=.7beak_jut#;
+ define_pixels(sc_beak,sc_beak_jut);
+ adjust_fit(.7serif_fit#,0);
+ italcorr slant*height#-sc_beak_jut#-.5u#;
+ h:=vround(h-stem_corr);
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ lft x1l=lft x2l=hround max(1.5u,2.5u-.5stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+ top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-sc_beak)-eps;
+ arm(3,4,e,beak_darkness,sc_beak_jut); % upper arm and beak
+ pos5(cap_bar,-90); pos6(hair,0);
+ top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+ pos0(cap_bar,90); pos7(hair,0);
+ z0=z5; x6=x7; y6-y5l=y0l-y7;
+ if serifs:
+ rt x6r=hround(.5[x3r,x4r+sc_beak_jut]);
+ y6=good.y(y5l+.6*sc_beak)+eps;
+ rt x9r=hround(w-.5u);
+ else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+ arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0);
+ % middle arm and serif
+ pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+ bot y8r=0; x8=x2; y9=good.y(y8l+7/6sc_beak)+eps;
+ arm(8,9,h,beak_darkness,1.5sc_beak_jut); % lower arm and beak
+ if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+ math_fit(0,.5ic#);
+ else:
+ adjust_fit(fit_params);
+ if cursive and not SansSerif:
+ if slitex or monospace: pickup fine.nib; fi
+ pos1(hair,90); pos2(stem,180); pos3(hair,270);
+ lft x2r=3/4u; rt x1=rt x3=w-u;
+ h-top y1r=bot y3r=-oo; y2=bar_height;
+ filldraw stroke z1e{left}..z2e..{right}z3e;
+ numeric ehair; ehair=.3[hair,stem];
+ pos4(ehair,90); pos5(hair,90);
+ x4=x2; x5=x1-min(hair,u); y4=y5=y2;
+ filldraw stroke z4e..z5e;
+ numeric x_baryctr; x_baryctr=w/2;
+ elseif cbleipzig:
+ pos1(.5[hair,stem],30); z1=whatever*(w,.9h); x1r=hround(w-.7u);
+ pos7(.5[fine,hair],90); y7r=h+oo;x7=w/2;
+ pos2(stem,180);x2r=.5u; y2=.5[bar_height,h];
+ pos4(.7[hair,vstem],-90);y4=bar_height;
+ pos5(stem,0);x5l=x2r; y5=.5bar_height;
+ pos6(hair,135); x6l+x5l=w; y6r=y5;
+ pos8(hair,90);x8=x7; y8l=-oo; x4l=x1l-.7stem;
+ pos9(hair,-90); x9=.9[x2l,x7]; y9=y4;
+ pair za,zb; zb=(z4l-z9l)yscaled1.2;za=zb yscaled-1;
+ filldraw z4l{left}...{-zb}z9l--z9r{za}...{right}z4r..cycle;
+ filldraw circ_stroke z1e..{left}z7e..z2e{down}..{za}z9e;
+ filldraw circ_stroke z6e{(z8-z6)yscaled 4}..z8e{left}..{up}z5e..{zb}z9e;
+ numeric x_baryctr; x_baryctr=x7; %accent reference
+ elseif cbroman:
+ pos1(hair,0); x1r=w-u; y1=y3;
+ pos2(hair,90); x2=w/2; top y2r=h+oo;
+ pos3(stem,180); x3r=u; y3=.5[y4,h];
+ pos4(hair,-90); y4=bar_height; z4=whatever*z1r;
+ pos5(hair,90); z5=z4;
+ pos6(stem,180);x6r=u/2; y6=y4/2;
+ pos7(hair,-90); x7=x2; bot y7r=-oo;
+ pos8(hair,-30);x8r=w-u/2; y8=y6;
+ pos9(stem,0);pos10(stem,90); z9=z10; z9r=z1r;
+ dot(9,10);
+ filldraw circ_stroke z4e{left}...z3e...{right}z2e...{down}z1e;
+ filldraw stroke z5e{left}...z6e...{right}z7e..{dir(60)}z8e;
+ numeric x_baryctr; x_baryctr=x2; %accent reference
+ elseif SansSerif:
+ pickup fine.nib;
+ numeric estem,evair;
+ estem=if gensize<6:.7fi stem;
+ evair=if gensize<6:max(.7vair,crisp.breadth+eps) else:vair fi;
+ pos2(estem,90); x2=.5w; top y2r=x_height+oo; %top point
+ pos7(estem,-90); x2=x7; bot y7r=-oo; %bottom point
+ pos1(estem,45);x2=.5[x3r,x1r]; y1r=y2l; %upper tip
+ pos3(estem,170); lft x3r=hround u; y3l=.5[y4l,y2l]; %top left bulge
+ pos6(estem,-170); x6r=hround .75u; .5[y6l,y3l]=bar_height; %bottom left bulge
+ pos4(evair,-90); y4=bar_height; x4=.35[x2,x1];
+ pos5(evair,90);z5=z4;
+ pos8(estem,-45);x8l=.5[x1,x1l];y8r=y7l;
+ filldraw stroke z1e{dir 135}..{left}z2e..{down}z3e..{right}z4e;
+ filldraw stroke z5e{left}..{down}z6e..{right}z7e..{dir 45}z8e;
+ numeric x_baryctr; x_baryctr=x2; %accent reference
+ else:
+ pickup fine.nib;
+ pos2(vstem,90); x2=.5w; top y2r=x_height+o; %top point
+ pos7(vstem,-90); x2=x7; bot y7r=-o; %bottom point
+ rt x1r=hround(w-.75u); bot y1l=.3[bot y2l,bar_height]; %top end
+ z1'=(x1r,y1l+.5(flare-currentbreadth)); %approximation to z1
+ numeric slope; slope=angle((z2-z1')yscaled 2); pos1(flare,slope-90);
+ bar_height=.5[y1,y8]; x8=x1; pos8(flare,slope+90); %bottom end
+ pos3(vstem,120); lft x3r=hround .75u; y3=.5[y4r,y2r]; %top left bulge
+ pos6(vstem,-120); x6=x3; .5[y6,y3]=bar_height; %bottom left bulge
+ y6:=y6r;y3:=y3r; %for the benefit of pulled_arc
+ y5-y4=abs(curve-min(hair,vair));
+ y5+y4=2bar_height; x5=x4=x2; %loop
+ pos4(vair,-90); pos5(vair,90);
+ filldraw stroke z1e{dir slope}...pulled_arc.e(2,3); %top
+ drawloop(3,4,5,6); %loop and bottom
+ forsuffixes e=l,r:
+ path foo.e; foo.e= z8e...pulled_arc.e(7,6);
+ if angle(direction 0 of foo.e) > angle(z8r-z8l):
+ foo.e:= z8e{z8r-z8l}...pulled_arc.e(7,6); fi
+ endfor;
+ filldraw stroke foo.e;
+ numeric x_baryctr; x_baryctr=x2; %accent reference
+ fi
+ fi
+enddef;
+
+cmchar "Lowercase epsilon";
+beginchar("e",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;% "Lowercase epsilon"
+
+
+iff(not barebones):
+cmchar "Lowercase epsilon with grave";
+beginchar(oct"340",width#,acc_ht#,0); this_letter;
+if not small_caps: grave(x_baryctr); fi
+endchar;
+
+
+iff(not barebones):
+cmchar "Lowercase epsilon with rough breathing";
+beginchar(oct"341",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit(x_baryctr)<; fi endchar;
+
+
+iff(not barebones):
+cmchar "Lowercase epsilon with smooth breathing";
+beginchar(oct"342",width#,acc_ht#,0);
+this_letter;
+if not small_caps:
+ if SansSerif:
+ spirit(x_baryctr)>;
+ else:
+ spirit(x_baryctr-u)>;
+ fi
+fi
+endchar;
+
+iff(not barebones):
+cmchar "Lowercase epsilon with acute";
+beginchar(oct"350",width#,acc_ht#,0);
+this_letter; if not small_caps: acute(x_baryctr); fi endchar;
+
+
+iff(not barebones):
+cmchar "Lowercase epsilon with rough breathing and acute";
+beginchar(oct"351",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_acute(x_baryctr)<; fi endchar;
+
+
+iff(not barebones):
+cmchar "Lowercase epsilon with smooth breathing and acute";
+beginchar(oct"352",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_acute(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase epsilon with rough breathing and grave";
+beginchar(oct"343",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase epsilon with smooth breathing and grave";
+beginchar(oct"353",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)>; fi endchar;
+
+picture savedpicture; currentbreadth:=0;
+
+
+
+def dims = if small_caps: % zeta
+ 9u#,sclc*x_height#,0
+ else:
+ if cbleipzig:7.5else:
+ 8.5fi
+ u#,asc_height#,desc_depth#
+ fi enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+
+def gen_letter=
+ if small_caps:
+ italcorr height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric arm_thickness[],z_stem;
+ if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,stem];
+ else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,stem]; fi
+ pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u/2;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+ arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+ arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+ math_fit(0,.5ic#);
+ else:
+ if cursive and serifs and not monospace:
+ pos4(stem,-180); y4=.8bar_height; lft x4r=hround(.75u); %left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); y6=-.5stem; %bottom right
+ y3+.5stem=h+o; x3+.5stem=hround(rt x6l-.25u); %top right
+ numeric slope; slope=angle((z3-z4)xscaled 2);
+ pos3(.5[hair,stem],slope+90);
+ pos5(stem,-135); bot y5r=0; x5=.5w; %inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+ filldraw double_circ_stroke %bowl and tail
+ z7e{right}...z6e{up}...z5e{left}...z4e{up}...z3e{dir slope};
+ pos2(hair,slope+90); z2r=z3r; %where handle attaches
+ pos0(hair,0); y0=h; x0=x1r;
+ pos1(stem,0); lft x1l=hround(lft x4r+.25u); y1+.5stem=h; %end of handle
+ filldraw stroke z0e..z1e{down}...z2e{dir slope};
+ elseif cbleipzig:
+ numeric tilt; tilt=10;
+ pos1(hair,90);y1r=h; x1l=.6[x2l,x3l];
+ y2r=.5[y3r,y1r];y2l=.5[y3l,y1l];x2r=.75[x3,x5r]=x2l-.5[hair,stem];
+ pos3(hair,-90-tilt);x3=w/2; y3l=.5[x_height,h];
+ pos4(hair,90+tilt); z3=z4;
+ pos5(hair,180); x5r=hround(.5u); y5=bar_height;
+ pos6(stem,-90); y6r=0;x6=2w/5;
+ pos7(stem,90); y7=y3; x7=w-x5r-stem; z8=z7+(.5stem,0);
+ pos9(stem,-90); y9=y6; x9=2w/3;
+ x10l=w-x5r=x10r+.5[hair,stem];
+ y10l=.5[y9l,y11l];y10r=.5[y9r,y11r];z10=.5[z10r,z10l];y10=-.25desc_depth;
+ pos11(hair,90);x11=x6;
+ filldraw circ_stroke z1e{left}...z2e..{dir(-tilt)}z3e; % hook
+ filldraw stroke z4e{dir(180+tilt)}...z5e{down}..{right}z6e; % left bulge
+ filldraw z3r{dir(-tilt)}...z7l..z8..z7r...{dir(180+tilt)}z4r..cycle; % top right
+ filldraw circ_stroke z11e{right}..z10e{up}..z9e{left}--z6e; % bottom
+ elseif cbroman:
+ pos10(hair,90);x10r=x2r; y10r=y11r=h;
+ pos11(hair,90);x11=w-u/2;
+ pos1(hair,angle(z11)-90); z1r=z11l;
+ pos2(stem,0); x2l=u/2; y2=.7bar_height;
+ pos3(stem,90); y3l=y4l=0; z3=z2+whatever*dir(-45);
+ pos4(stem,90);x4=w-x3;
+ pos5(.5[hair,stem],30); x5r=x11; y5l=.5[y4l,y6l];
+ pos6(hair,-90);x6=w/2; y6r=-(.5[y2r,d]);
+ filldraw stroke z10e--z11e;
+ filldraw circ_stroke z6e{(z5-z6)xscaled3}...z5e{up}...z4e---z3e{left}...%
+ z2e{up}...{(z1-z2)xscaled1.5}z1e;
+ else:
+ pickup fine.nib;
+ pos4(hair,-180); y4=bar_height; lft x4r=hround(.75u); %left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); y6=-.5stem; %bottom right
+ y3+.5stem=h+o;
+ if SansSerif:
+ x3+.35stem=x6l;
+ else: %top right
+ x3+.5stem=hround(rt x6l-.25u);
+ fi
+ numeric slope; slope=angle((z3-z4)xscaled 2); pos3(stem,slope+90);
+ pos5(stem,-90); bot y5r=0; x5=.5w; %inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r];
+ if SansSerif: %bowl and tail
+ x7=hround x5;
+ filldraw stroke
+ z3e{dir(180+slope)}...z4e{down}...z5e{right}...z6e{down}...{left}z7e;
+ % z7e{right}...z6e{up}...z5e{left}...z4e{up}...z3e{dir slope};
+ else:
+ x7-.5vstem=hround x5;
+ filldraw double_circ_stroke
+ z7e{right}...z6e{up}...z5e{left}...z4e{up}...z3e{dir slope};
+ fi
+ pos2(hair,slope+90); z2r=z3r; %where handle attaches
+ pos1(curve,0); lft x1l=hround(lft x4r+.25u); %end of handle
+ if SansSerif: y1=y3r; else: y1+.5curve=h+o; fi
+ if SansSerif:
+ filldraw stroke z1e{down}...z2e{dir slope};
+ else:
+ filldraw circ_stroke z1e{down}...z2e{dir slope};
+ fi
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase zeta";
+beginchar("z",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;% "Lowercase zeta"
+
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+def width = if small_caps: if serifs: 11 else: 9 fi % eta
+ elseif cursive and serifs and not monospace: 9.5
+ elseif cbleipzig: 8.8
+ else: 8.5
+ fi u enddef;
+def dims = width#,if small_caps:sclc* fi x_height#,%
+ desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = if small_caps: 0 else: if straight or SansSerif: .75 else: .5 fi u# fi,0 enddef;
+
+def gen_letter =
+ if small_caps:
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ pos3(stem,0); pos4(stem,0);
+ lft x1l=lft x2l=hround (.5u+jut); x3=x4=w-x1;
+ top y1=top y3=h; bot y2=bot y4=0;
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ penpos5(cap_bar,90); penpos6(cap_bar,90);
+ x5=x1; x6=x3; y5=y6=.52h;
+ fill stroke z5e--z6e; % bar
+ if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower left serif
+ math_fit(0,.5ic#);
+ numeric pos_stem;
+ pos_stem=rt x4r if serifs or slitex:+jut+if slitex:.7else:.9fi u fi + if slitex:1.2*fi.5[vair,stem]+.1u;
+ else:
+ if cursive and serifs and not monospace:
+ numeric cstem; cstem=stem;
+ pos1(hair,90); pos2(cstem,45); pos3(cstem,0);
+ x1=0; y1=y2l; y2r=x_height+oo; x2=.5[x1,x3]; y3=3/4y2r; x3l=x1+stem;
+ pos4(stem,0); x4r=x3r; y4=0;
+ filldraw stroke z1e..{right}z2e..{down}z3e..z4e;
+ pos5(hair,135); z5l=z3r;
+ pos6(stem,45); pos7(cstem,0); pos8(stem,0);
+ x7r=x8r=w-u; y7=3/5y2r;
+ y8=-d;
+ x6l=.5[x5l,x7l]; y6r=y2r;
+ filldraw stroke z5e..{right}z6e..{down}z7e..z8e;
+ numeric x_baryctr; x_baryctr=.4[x3,x7]; %accent reference
+ numeric pos_stem; pos_stem=x4; %iota reference
+ elseif cbleipzig:
+ numeric cstem; cstem=.6[hair,stem];
+ pos1(.2[hair,stem],160);
+ x1r=0; y1=3/4y2r;
+ top y2r=h+oo=top y2l+.2[hair,stem]; x2l=.5[x1l,x5l]; x2r=.5[x1r,x5r]; z2=.5[z2l,z2r];
+ pos5(stem,0); y5l=stem/2-oo/2; x5l=x1l+min(1.3stem,2u);
+ pos4(stem,0);x4=x5;y4=.5[bar_height,y1l];
+ filldraw double_circ_stroke z1e{(z2-z1)yscaled4}...z2e...{down}z4e--z5e;
+ pos3(hair,180);
+ z3l=.2[z4r,z5r];
+ pos6(.1[hair,stem],90); pos7(cstem,0); pos8(stem,0);
+ x7r=w-.75u; y7=.5y2r; x7l=x8l;
+ y8=-d +stem/2;
+ x6l=.77[x5l,x7l]; y6r=vround(h+oo);
+ filldraw circ_stroke z8e..{up}z7e...{left}z6e..tension1.1..{down}z3e;
+ numeric x_baryctr; x_baryctr=.5[x1,x7]; %accent reference
+ numeric pos_stem; pos_stem=x5; %iota reference
+ numeric cstem;
+ elseif cbroman:
+ pickup tiny.nib;
+ pos1(stem,0);x1l=.9jut; bot y1=0;
+ pos2(stem,0);x2l=x1l; top y2=h;
+ pos3(hair,135);rt x3l=rt x1r; y3l=2h/3;
+ pos4(.5[hair,stem],90); x4=.5[rt x3l,rt x5l]; top y4r=h+oo;
+ pos5(stem,0); x5r=x6r; y5= bot y4l-(lft x5l-rt x3l)/2;
+ pos6(stem,0); rt x6r=w-lft x1l;bot y6=-d;
+ filldraw stroke z1e--z2e;
+ filldraw stroke z3e{(z4-z3)yscaled 4}...{right}z4e...{down}z5e---z6e;
+ serif(2,1,a,1/3,-.8jut);
+ dish_serif(1,2,c,1/3,.8jut,d,1/3,.8jut);
+ dish_serif(6,5,f,1/3,.8jut,g,1/3,.8jut);
+ numeric x_baryctr; x_baryctr=x4; %accent reference
+ numeric pos_stem; pos_stem=x1; %iota reference
+ elseif SansSerif:
+ pickup fine.nib;
+ numeric hstem,hhair,hvstem;
+ if gensize<6:
+ hstem=.75stem;hhair=.75hair;hvstem=.75vstem;
+ else:
+ hstem=stem;hhair=hair;hvstem=vstem;
+ fi
+ y1r=-d; rt x1r= rt x2r; pos1(hstem,0); %bottom right
+ rt x2r=hround(w-.75u); y2r=.6x_height; pos2(hhair,0); %right bulge
+ y5=0; pos5(hstem,-180); %bottom left
+ top y4r=x_height+o; x4r=.5[rt x2r,lft x3r]; %top of arch
+ bot y4l=y4r-hstem; x4l=.5[lft x2l,rt x3l]; z4=.5[z4l,z4r];
+ pos6(hstem,180); y6=y2; x6=x5; x6r=x8r+.75u; %where handle attaches
+ pos3(.5hstem,180); z3l=z6l;
+ pos8(hvstem,0); lft x8l=-.25u; y8=y7r-.5hvstem; %end of handle
+ pos7(hvstem,-90); top y7l=x_height+o; x7=.5[x8r,x6r]; %top of handle
+ z2'l=z2'r=up;
+ filldraw stroke z1e{up}--z2e{up}...z4e{left}...{down}z3e; %right leg
+ filldraw stroke z8e{up}..z7e{right}...z6e{down}--z5e; %left leg with handle
+ numeric x_baryctr; x_baryctr=.1[x4,x7]; %accent reference
+ numeric pos_stem; pos_stem=x5; %iota reference
+ else:
+ pickup fine.nib;
+ y1r-.5stem=-d-o; pos1(stem,0); %bottom right
+ rt x2r=hround(w-.75u); y2r=.5x_height; pos2(hair,0); %right bulge
+ lft x5r=hround(1.5u); y5-.5stem=-o; pos5(stem,-180); %bottom left
+ top y4r=x_height+o; x4r=.5[lft x2l,rt x5l]; %top of arch
+ pos6(hair,180); y6=y2; %where handle attaches
+ if straight:
+ x1=x2; x5=x6; pos4(stem,90); %yawn...
+ filldraw double_circ_stroke z1e--pulled_arc.e(2,4)&pulled_arc.e(4,6)--z5e;
+ else:
+ if serifs: %%<< aggiunto questo if
+ rt x1r=hround (rt x2r-.25);
+ else:
+ rt x1r= rt x2r-u;
+ fi
+ z2'l=z2'r=up; %%<< e mossa questa assegn.
+ filldraw circ_stroke z1e{up}...gr_arc.e(2,3,4)(hair,stem,.8); %right leg
+ filldraw circ_stroke z5e{(z4-z5) yscaled 3}...z4e{-z4'e}; %left leg
+ z9=((0,y6)--(w,y6)) intersectionpoint (z5r{(z4-z5) yscaled 3}...z4r{-z4'r});
+ x6r=x9;
+ fi
+ pos8(vstem,0); rt x8r=hround(lft x6r-.75u); %end of handle
+ pos7(vstem,-90); top y7l=x_height+o; z8r=z7r; %top of handle
+ filldraw circ_stroke z8e{up}...z7e{right}...z6e{down};
+ numeric x_baryctr; x_baryctr=.1[x4,x7]; %accent reference
+ numeric pos_stem; pos_stem=x5; %iota reference
+ fi
+ fi
+enddef;
+
+
+
+cmchar "Lowercase eta";
+beginchar("h",dims);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if serifs: adjust_fit(.7serif_fit#,.7serif_fit#); fi
+fi
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;% "Lowercase eta"
+
+
+
+
+
+
+iff(not barebones):
+cmchar "Lowercase eta with grave";
+beginchar(oct"230",width#,acc_ht#,desc_depth#);
+this_letter; if not small_caps: grave(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with rough breathing";
+beginchar(oct"231",width#,acc_ht#,desc_depth#);
+this_letter; if not small_caps: spirit(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with smooth breathing";
+beginchar(oct"232",width#,acc_ht#,desc_depth#);
+this_letter; if not small_caps: spirit(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with grave and iota subscript";
+beginchar(oct"234",width#,if small_caps:height#else:acc_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+ gen_letter;
+else:
+ this_letter; grave(x_baryctr);
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with rough breathing and iota subscript";
+beginchar(oct"235",width#,if small_caps:height#else:acc_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; spirit(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with smooth breathing and iota subscript";
+beginchar(oct"236",width#,if small_caps:height#else:acc_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; spirit(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with acute";
+beginchar(oct"240",width#,acc_ht#,desc_depth#);
+this_letter; if not small_caps: acute(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with rough breathing and acute";
+beginchar(oct"241",width#,acc_ht#,desc_depth#);
+this_letter; if not small_caps: spirit_acute(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with smooth breathing and acute";
+beginchar(oct"242",width#,acc_ht#,desc_depth#);
+this_letter; if not small_caps: spirit_acute(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with acute and iota subscript";
+beginchar(oct"244",width#,if small_caps:height#else:acc_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; acute(x_baryctr);
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with rough breathing and grave";
+beginchar(oct"243",width#,acc_ht#,desc_depth#);
+this_letter; if not small_caps: spirit_grave(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with smooth breathing and grave";
+beginchar(oct"253",width#,acc_ht#,desc_depth#);
+this_letter; if not small_caps: spirit_grave(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with rough breathing and grave and iota subscript";
+beginchar(oct"247",width#,if small_caps:height#else:acc_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#);% +u#
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; spirit_grave(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with smooth breathing and grave and iota subscript";
+beginchar(oct"257",width#,if small_caps:height#else:acc_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; spirit_grave(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with rough breathing, acute and iota subscript";
+beginchar(oct"245",width#,if small_caps:height#else:acc_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; spirit_acute(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with smooth breathing and acute and iota subscript";
+beginchar(oct"246",width#,if small_caps:height#else:acc_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; spirit_acute(x_baryctr)>;
+fi
+iota_sub(pos_stem);
+endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with circumflex";
+beginchar(oct"250",width#,if small_caps:height#else:circ_ht#fi,desc_depth#);
+this_letter; if not small_caps:
+squeeze:=false; circumflex(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with rough breathing and circumflex";
+beginchar(oct"251",width#,Circ_ht#,desc_depth#);
+this_letter; if not small_caps:
+squeeze:=true; spirit_circumflex(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with smooth breathing and circumflex";
+beginchar(oct"252",width#,Circ_ht#,desc_depth#);
+this_letter; if not small_caps:
+squeeze:=true; spirit_circumflex(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with circumflex and iota subscript";
+beginchar(oct"254",width#,if small_caps:height#else:circ_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; squeeze:=false; circumflex(x_baryctr);
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with rough breathing, circumflex and iota subscript";
+beginchar(oct"255",width#,if small_caps:height#else:Circ_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; squeeze:=true; spirit_circumflex(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with smooth breathing, circumflex and iota subscript";
+beginchar(oct"256",width#,if small_caps:height#else:Circ_ht#fi,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter; squeeze:=true; spirit_circumflex(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase eta with iota subscript";
+beginchar(oct"371",width#,height#,desc_depth#);
+if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ if slitex:
+ adjust_fit(0,.5[vair#,stem#]+.7(.5[vair#,stem#])+.3tiny#+u#);
+ elseif serifs:
+ adjust_fit(.7serif_fit#,serif_fit#+.5[vair#,stem#]+.7(jut#+u#)if monospace:+tiny# fi+.5u#);
+ else:
+ adjust_fit(0,+.5[vair#,stem#]+.7u#);
+ fi
+gen_letter;
+else:
+this_letter;
+fi
+iota_sub(pos_stem); endchar;
+
+%picture pic.iota;
+picture savedpicture; currentbreadth:=0;
+
+
+if monospace: % theta
+def dims = 8.5u#,asc_height#,0 enddef;
+else:
+def dims = if cbroman:8
+ elseif cbleipzig:8
+ else:9
+ fi
+ u#,if small_caps: sclc*x_height# else: asc_height# fi,0 enddef;
+fi
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+
+def gen_letter=
+if small_caps:
+ italcorr .7*height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric light_curve; light_curve=hround(curve-2stem_corr);
+ penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+ penpos2(light_curve,180); penpos4(light_curve,0);
+ if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+ else: x2r=hround (u/2); fi
+ x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+ penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+ pickup crisp.nib; pos5(vstem,90); pos6(vstem,90);
+ lft x5=w-rt x6=hround(x2l+u)+1; y5=y6=.5[y1l,y3l];
+ filldraw stroke z5e--z6e; % bar
+ if serifs: pos7(hair,0); pos8(hair,0); pos9(hair,0); pos10(hair,0);
+ x7l=x8l=x5; x9r=x10r=x6;
+ y7-y5r=y9-y6r=y5l-y8=y6l-y10=vround .05h;
+ filldraw stroke z7e--z8e; % left serif
+ filldraw stroke z9e--z10e; fi % right serif
+ math_fit(-.3*height#*slant-.5u#,ic#-.5u#);
+else:
+ if (monospace or monotoniko or SansSerif):
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h; %left and right bulges
+ x2r=x6r=.5w; top y2r=h+oo; bot y6r=-oo; %top and bottom
+ pos4(stem,180); pos8(stem,0); pos2(stem,90); pos6(stem,-90);
+ filldraw stroke z6e{right}...z8e{up}...z2e{left}...z4e{down}...{right}z6e;
+ pos4`(bar,90); pos8`(bar,90); x4`=x4; x8`=x8; y4`=y8`=.05[y4,y2];
+ filldraw stroke z4`e--z8`e; %bar
+ else:
+ if cursive:
+ if slitex: pickup fine.nib; fi
+ pos0(hair,90); pos1(stem,45); pos2(stem,0);
+ lft x0=0; y0=y1l; x2l=stem; y2l=3/4x_height;
+ x1l=.5[x0,x2l];top y1r=x_height+oo;
+ pos3(stem,0); pos4(hair,90); pos5(stem,180);
+ x3=x2; y3=bar_height; x4=w/2=.5[x1l,x5l]; bot y4l=-oo; y5=y3;
+ pos6(stem,180); pos7(if not serifs: .7 fi hair,270);
+ pos8(stem,if (slitex or not serifs):-25 else:0 fi); pos9(hair,90);
+ x6=x5; h-y6=y5; x7=x4; top y7l=h+oo;
+ if slitex: x8l=x3r else: if serifs: x8=x3 else: x8=x3r fi fi;
+ y8=.5[y7l,y1r]; rt x9=w;
+ if (slitex or not serifs): y9r=y1l else: y9l=y1r fi;
+ filldraw stroke z0e..{right}z1e..{down}z2e..{down}z3e
+ ..{right}z4e..{up}z5e..{up}z6e..{left}z7e..{down}z8e..{right}z9e;
+ elseif cbleipzig:
+ adjust_fit(.5u#,.75u#); italcorr .9*height#*slant-.5u#;
+ pos0(hair,160);
+ pos2(stem,0);
+ lft x0r=0; y0l=.7[y1l,y2l]; x2l=stem; y2l=3/4x_height;
+ x1l=.5[x0l,x2l];x1r=.5[x0r,x2r];
+ top y1r=x_height=y1l+.5stem; z1=.5[z1l,z1r];
+ pos3(stem,0); x3=x2; y3=.8bar_height;
+ pos6(stem,180);x6=x5;y6=y3;
+ x4l=.5[x3l,x6l];bot y4l=-oo=y4r-hair;x4r=.5[x3r,x6r];z4=.5[z4r,z4l];
+ pos5(stem,180);
+ w/2=.5[x1l,x5l]; y5=h/2;
+ top y7l=h+oo=bot y7r+.7hair;x7l=.5[x8l,x5l];x7r=.5[x8r,x5r];z7=.5[z7r,z7l];
+ pos8(.6[stem,hair],0); pos9(hair,25);
+ x8l=x1r;
+ y8=.45[y7l,y1r]; rt x9r=w; y9r=.5[y11,y5];
+ pos11(hair,90); x11=.7[x1,x5];y11=x_height;
+ pos10(.1[hair,stem],0); x10l=x9; y10=.9[y6,y5];%y9-.5stem;
+ filldraw double_circ_stroke z0e{up}...z1e..{down}z2e..{down}z3e
+ ..{right}z4e..{up}z6e--z5e{up}...{left}z7e..{down}z8e..z11e..z9e...{(slant,-1)}z10e;
+ elseif cbroman:
+ pos1(hair,90); x1=w/2; top y1r=h+oo;
+ pos2(stem,180);x2r=u/2; y2=h/2;
+ pos3(hair,-90);x3=x1; bot y3r=-oo;
+ pos4(stem,0);x4r=w-x2r; y4=y2;
+ z5r=z1r;z5l=z1l;
+ filldraw stroke z1e{left}...z2e...z3e...z4e...{left}z5e;
+ pos6(.3[hair,stem],90); z6=z2;
+ pos7(.3[hair,stem],90); z7=z4;
+ filldraw stroke z6e--z7e;
+ else:
+ adjust_fit(if SansSerif:1.3else:.5fi u#,.75u#);
+ pickup fine.nib;
+ numeric light_curve; light_curve=hround .5[stem,curve];
+ x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+ pos2'(stem,-180); z2'=z2; pos3(stem,-180); pos4(vair,-90);
+ pos5(light_curve,0); pos6(vair,90); pos7(hair,180); pos8(vair,270);
+ x3=x2; x4=x6=.5[x3,x5]; rt x5r=hround(w-1.5u+.5light_curve);
+ lft x7r=hround(3.25u-.5hair); x8+.5vair=hround(w+.5vair-epsilon);
+ y3=.4x_height; bot y4r=-oo; y5=.5[y4,y6]; top y6r=h+oo;
+ y7=.5[x_height,h]; y8=.5[bar_height,x_height];
+ filldraw stroke z2'e..{{interim superness:=hein_super; super_arc.e(3,4)}}
+ & pulled_arc.e(4,5) & pulled_arc.e(5,6)
+ ...{down}z7e...{4(x8-x7),y8-y7}z8e; % bowl and loop
+ math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+ fi
+ fi
+fi
+enddef;
+
+cmchar "Lowercase theta";
+beginchar("j",dims);
+this_letter; penlabels(0,a,1,2,3,4,4`,5,6,7,8,8`,9,10,11);
+endchar;% "Lowercase theta"
+
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+% lowercase iota
+
+def width = if slitex and (not monospace): 6.3u
+ else: 4.5u fi enddef;
+def dims = width#,if small_caps:sclc*fi x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = if small_caps:
+ serif_fit#,serif_fit#
+ elseif SansSerif:
+ 0,.25u#
+ else:
+ 0,0
+ fi enddef; %
+
+def gen_letter=
+italcorr height#*slant-.25u#;
+ if small_caps:
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ if serifs:
+ dish_serif(1,2,a,1/3,1.05jut,b,1/3,1.05jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05jut,d,1/3,1.05jut); % lower serif
+ else:
+ if slitex:
+ dish_serif(1,2,a,1/3,.71u,b,1/3,.71u); % upper serif
+ dish_serif(2,1,c,1/3,.71u,d,1/3,.71u); % lower serif
+ fi
+ fi
+ math_fit(0,.5ic#);
+ numeric x_baryctr; x_baryctr=x1;
+ else:
+ if cursive and serifs and not monospace:
+ numeric angolo; angolo=angle((hair,stem));
+ pos1(hair,90); pos2(stem,angolo); pos3(stem,0);
+ x1=0; x2=x3l; x3=w/2;
+ y1=y2l; y2r=h+oo; y3=2/3h;
+ pos4(stem,0); x4=x3; y4=y3/2;
+ pos5(stem,angolo); x5=x4r; bot y5l=-oo;
+ pos6(hair,90); x6l=w; y6=y5r;
+ filldraw z1l...z2l..{down}z3l..{down}z4l..{right}z5l..z6l--%<>
+ z6r...z5r..z4r{up}..{up}z3r..{left}z2r..z1r--cycle;
+ numeric angolo;
+ numeric x_baryctr; x_baryctr=x3;
+ elseif cbleipzig:
+ pos1(stem,0); x1l=hround .75u; y1=h;
+ pos2(.3[stem,hair],0); x2l=x1l; y2=h/4;
+ x3r=.5[x2r,x4r]; x3l=.5[x2l,x4l];bot y3l=-oo=y3r-.4[hair,stem];z3=.5[z3r,z3l];
+ pos4(hair,180); x4=w-x1l; y4r=min(2stem,bar_height/2);
+ filldraw circ_stroke z4e{(z3-z4)yscaled3}..{left}z3e..z2e---z1e;
+ numeric x_baryctr; x_baryctr=.1[x1,x3];
+ elseif cbroman:
+ pickup tiny.nib;
+ pos1(stem,0); x1=w/2; top y1=h;
+ pos2(stem,0); x2=x1; bot y2=0;
+ filldraw stroke z1e--z2e;
+ dish_serif(2,1,c,1/3,.8jut,d,1/3,.8jut);
+ serif(1,2,a,1/3,-.8jut);
+ numeric x_baryctr; x_baryctr=x1;
+ elseif SansSerif:
+ pickup fine.nib;
+ pos1(stem,0); x1l=hround .75u; y1=h;
+ pos2(.3[stem,hair],0); x2l=x1l; y2=h/4;
+ x3r=.5[x2r,x4r]; x3l=.5[x2l,x4l];bot y3l=-oo=y3r-.8(.4[hair,stem]);z3=.5[z3r,z3l];
+ pos4(.7hair,180); x4=w-x1l; y4r=min(2stem,bar_height/2);
+ filldraw stroke z4e{down}..{left}z3e..z2e---z1e;
+ numeric x_baryctr; x_baryctr=.1[x1,x3];
+ else:
+ pickup fine.nib;
+ pos1(flare,180); lft x1r=hround u; top y1=x_height+oo; %top
+ numeric neck; neck=min(flare,.2[hair,stem]);
+ pos2(neck,180); %neck
+ .2[lft x2r,rt x2l]=.2[lft x1r,rt x1l];
+ if monowidth:
+ pos3(curve,-90); bot y3r=-oo; %bottom
+ y2r=2[bot y3r,top y3l];
+ lft x4l-rt x2l=u;
+ y4r+.5neck=vround y2r; x3=.5[x2,x4]; pos4(neck,0); %tip of hook
+ filldraw stroke z4e{down}...z3e...z2e---z1e;
+ elseif slitex:
+ pos3(curve,-90); bot y3r=-oo; %bottom
+ y2r=2/3math_axis;
+ x2+x4=w;
+ y4r=vround y2r; x3=.5[x2,x4]; pos4(neck,0); %tip of hook
+ filldraw stroke z4e{down}...z3e...z2e---z1e;
+ else:
+ bot y3r=-oo; top y3l=curve; %bottom
+ x3r=.5[x2r,x4r]; z3=.5[z3r,z3l];
+ y2r=1.5[bot y3r,top y3l];
+ z4l=z4r=z4; top y4r=y2r; x4r=w-x2r; x3l=.5[x2l,x4l];
+ path p.r, p.l;
+ forsuffixes e=r,l: p.e=z1e---z2e...z3e...z4e; endfor
+ rt x3.5r=hround(rt xpart directionpoint up of p.r);
+ z4'r=direction 3 of p.r; z3'r=direction 2 of p.r;
+ forever: %avoid bad vertical tangent between 2l and 3l
+ a_:=directiontime down of p.l;
+ exitif a_<0; % exit if vert. tang. does not exist
+ x2.5l:= rt xpart point a_ of p.l;
+ exitif abs(hround(x2.5l)-x2.5l)<.05;
+ x2l:=x2l+hround(x2.5l)-x2.5l; p.l:=(z1l---z2l...z3l...z4l);
+ endfor
+ p.r:=z1r---z2r...club.r(3,3.5,4);
+ %avoid bad vertical tangent between 3r and 4r
+ filldraw stroke p.e;
+ fi
+ if monospace: currentpicture:=currentpicture shifted (.5w-x3,0); fi
+ numeric x_baryctr; x_baryctr=x1 if monospace:+.5w-x3 fi;
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase iota";
+beginchar("i",dims);
+adjust_fit(fit_params);
+this_letter; penlabels(1,2,3,4,5,6); endchar;% "Lowercase iota"
+
+
+
+iff(not barebones):
+cmchar "Lowercase iota with grave";
+beginchar(oct"310",width#,acc_ht#,0);
+this_letter; if (not small_caps): grave(x_baryctr); fi endchar;
+
+
+iff(not barebones):
+cmchar "Lowercase iota with rough breathing";
+beginchar(oct"311",width#,acc_ht#,0);
+this_letter; if (not small_caps):
+spirit(x_baryctr if serifs: +.25u fi)<;fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with smooth breathing";
+beginchar(oct"312",width#,acc_ht#,0);
+this_letter; if (not small_caps):
+spirit(x_baryctr if serifs: -.25u fi)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with acute";
+beginchar(oct"320",width#,acc_ht#,0);
+this_letter; if (not small_caps): acute(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with rough breathing and acute";
+beginchar(oct"321",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit_acute(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with smooth breathing and acute";
+beginchar(oct"322",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit_acute(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with rough breathing and grave";
+beginchar(oct"313",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with smooth breathing and grave";
+beginchar(oct"323",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with circumflex";
+beginchar(oct"330",width#,circ_ht#,0);
+this_letter; if (not small_caps):
+squeeze:=false; circumflex(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with rough breathing and circumflex";
+beginchar(oct"331",width#,Circ_ht#,0);
+this_letter; if (not small_caps):
+squeeze:=true; spirit_circumflex(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with smooth breathing and circumflex";
+beginchar(oct"332",width#,Circ_ht#,0);
+this_letter; if (not small_caps):
+squeeze:=true; spirit_circumflex(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with diaeresis";
+beginchar(oct"360",width#,circ_ht#,0);
+this_letter; diaeresis(x_baryctr); endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with diaeresis and grave";
+beginchar(oct"361",width#,acc_ht#,0);
+this_letter;
+if (not small_caps):
+ diaeresis_grave(x_baryctr);
+else:
+ diaeresis(x_baryctr);
+fi
+endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with diaeresis and acute";
+beginchar(oct"362",width#,acc_ht#,0);
+this_letter;
+if (not small_caps):
+ diaeresis_acute(x_baryctr);
+else:
+ diaeresis(x_baryctr);
+fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase iota with diaeresis and circumflex";
+beginchar(oct"363",width#,Circ_ht#,0);
+this_letter;
+if (not small_caps):
+ squeeze:=true;
+ diaeresis_circumflex(x_baryctr);
+else:
+ diaeresis(x_baryctr);
+fi endchar;
+
+picture savedpicture; currentbreadth:=0;
+
+
+
+def dims = if small_caps: % kappa
+ 11u#,sclc*x_height#,0
+ elseif monotoniko:
+ 8.5u#,x_height#,0
+ %elseif cbleipzig:
+ %8.3u#,x_height#,0
+ elseif cbroman:
+ 8.7u#,x_height#,0
+ elseif SansSerif:
+ 8.7u#,x_height#,0
+ else:
+ 9.5u#,x_height#,0
+ fi enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ if small_caps: % maiuscoletto
+ italcorr height#*slant-.5u#;
+ adjust_fit(.7serif_fit#,.7serif_fit#);
+ numeric right_jut,stem[],alpha[];
+ if serifs: right_jut=.6jut;
+ else: right_jut=.4tiny; fi
+ pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0); % old: cap_stem
+ lft x1l=lft x2l=hround (max(2u,3u-.5fudged.stem)-.5u); top y1=h; bot y2=0;% idem
+ filldraw stroke z1e--z2e; % stem
+ stem2=max(tiny.breadth,fudged.stem-3stem_corr);% idem
+ stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+ top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+ bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+ x4=x1; y4=1/3h;
+ alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+ penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+ alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+ penpos6(alpha2*(stem2-tiny),0);
+ forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+ z5=.5[z5l,z5r];
+ z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+ % we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+ z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+ z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+ fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+ fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+ if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); % lower diagonal serif
+ fi
+ math_fit(0,.5ic#);
+ else: % minuscolo
+ adjust_fit(0,0);
+ if cursive and not SansSerif: % corsivo minuscolo escluso sans
+ if serifs and not monospace:% corsivo minuscolo normale
+ pos0(hair,90); pos1(stem,45); pos2(stem,0); pos3(1.2stem,0);
+ top y1r=h+oo; y3=0; y2l=5/6y1;
+ x1=x2l; x2r=x3r; lft x0=.5u; y0=y1l; x3l=min(x0+.8stem,1.5u);
+ filldraw stroke z0e{(z1r-z0l) yscaled 2}..{right}z1e..{z3-z2}z2e--z3e; % left bar
+ s_a:=85; s_c:=12;
+ pos4(vair,180); pos5(stem,90); pos8(hair,80);
+ x4l=x3r; bot y4=y3; rt x8r=w-x0; x5=.2[x8l,x1r];
+ top y5r=h; top y8r=.8*(top y5r);
+ filldraw stroke z8e...z5e{left}...{-dir s_a}z4e; % ascending stroke
+ s_b:=60; path gamba; gamba=z4{dir s_a}...{right}z5;
+ pos6(stem,s_b); pos7(.3stem,45); pos9(.5hair,70);
+ z6=directionpoint (dir s_b) of gamba; path gamba;
+ bot y7l=0; x7r=x9l-.3stem; rt x9r=w-x0; y9l=y7r;
+ pos10(stem,-15); y10r=y9; x10r=x7r-.3stem;
+ z11-z6=whatever*(z10l-z6); y11=0; z12=.5[z11,z7l]; z13=.5[z11,z10l];
+ filldraw z9r{(z7l-z9r) yscaled 2}..z7r{left}...z10r--z6r--z6l--z10l
+ ..controls z13 and z12..z7l{right}..{z9r-z9l}z9l--cycle; % descending stroke
+ else: % corsivo minuscolo monospace e slides
+ if monospace or slitex: % corsivo minuscolo monospace e slides
+ pickup fine.nib;
+ else: % corsivo minuscolo sans; ramo morto
+ pickup pencircle;
+ fi
+ pos1(1.2stem,180); pos2(stem,180); pos3(1.2stem,180);
+ top y1 = h = 2y2; bot y3=0;
+ lft x2r=u; x1l=x2l=x3l;
+ filldraw stroke z1e..z2e..z3e; % left bar
+ s_a:=90; s_c:=12;
+ pos4(vair,180); pos5(stem,90-s_c);
+ x4l=x3l; bot y4=bot y3; rt x5=w-x3r+o; top y5r=h;
+ filldraw stroke z5e{dir(180-s_c)}...{-dir s_a}z4e; % ascending stroke
+ s_b:=60; path gamba; gamba=z4{dir s_a}...{dir-s_c}z5;
+ pos6(if not monospace: 0.7fi stem,s_b); pos7(.5[vair,stem],90);
+ z6=directionpoint (dir s_b) of gamba; path gamba;
+ bot y7l=0; rt x7=w-x3r;
+ x10=.7[x4,x7l]; y10=0;
+ filldraw stroke z7e{left}...{z6-z10}z6e; % descending stroke
+ fi
+ elseif cbleipzig:
+ pickup fine.nib;
+ numeric barangle; barangle=22;
+ pos1(hair,135); lft x1r=u/2; top y1r+hair= bot y2l;
+ pos2(stem,80); top y2r=h+oo; x2l=.22w=.5[x1l,x3l];
+ pos3(.4[hair,stem],0); y3=2h/3;
+ pos4(stem,0);bot y4=-oo; z4l=z1l + whatever*(slant,-2);
+ filldraw circ_stroke z1e{(z2l-z1l)yscaled 4}...z2e{right}...z3e{down}..z4e;
+ z5r=z4l; z5l=z4r;
+ pos6(.4[hair,stem],135); z6=(w/2,h/2)-whatever*dir(barangle); rt x6l= rt x3r;
+ pos7(.4[hair,stem],135); (w/2,h/2)=.5[z6,z7];
+ filldraw stroke z5e{up}...z6e...z7e;
+ pos8(stem,135); top y8r=h+oo; z8l=z12+whatever*(-slant,2);
+ pos9(.4[hair,stem],180); z9r=z7r;
+ pos10(.4[hair,stem],180); x10r=x9r; y10=h/3;
+ bot y11r=-oo=top y11l-stem; x11l=.5[x10l,x12l]; x11r=.5[x10r,x12r];
+ pos12(stem/2,-60); x12r= w-lft x1r; y12l=y11l+stem;
+ pair za; path cbp; cbp= z8r{(z9r-z8r)xscaled2}...z9r; za=direction 1 of cbp;
+ filldraw z6l{dir(barangle)}..z8l{(z8l-z6l)yscaled3}...z8r{(z9r-z8r)xscaled2}...z9r--cycle;
+ filldraw circ_stroke z12e{down}...z11e{left}...z10e...{-za}z9e;
+ pair za; path cbp;
+ elseif cbroman:
+ pickup tiny.nib;
+ pos1(stem,0); lft x1l=1.1jut; top y1=h;
+ pos2(stem,0);x2l=x1l; bot y2=0;
+ pos3(hair,0); rt x3r=rt x1r; y3=h/3;
+ pos4(hair,0); rt x4r=w- lft x1l; top y4=top y1;
+ pos5(stem,angle(z4-z3)); z5=.4[z3,z4];
+ pos6(stem,0); rt x6r=rt x4r; bot y6=0;
+ filldraw stroke z1e--z2e;
+ filldraw stroke z3e--z4e;
+ filldraw stroke z6e--z5e;
+ dish_serif(2,1,a,1/3,.8jut,b,1/3,.8jut);
+ serif(1,2,c,1/3,-.8jut);
+ dish_serif(4,3,f,1/3,.7jut,g,1/3,.7jut);
+ dish_serif(6,5,i,1/3,.6jut,j,1/3,.8jut);
+ elseif SansSerif:
+ pickup fine.nib;
+ pos1(1stem,180); pos2(stem,180); pos3(stem,180);
+ y1=h;y2=.35h; y3=0;
+ lft x2r=u; x1l=x2l=x3l;
+ filldraw stroke z1e--z3e; % left bar
+ s_a:=90; s_c=12;
+ pos4(.9stem,135); pos5(1.414*.9*stem,180);
+ z4l=z2l; top y5r=h; z5=z4+whatever*dir(45);
+ pos8(.9stem,90);z5l=z8r;
+ pos9(.9stem,135); z9=.75[z4,.25[z5,z5l]];
+ filldraw stroke z4e--z9e{z9-z4}..{right}z8e;% ascending stroke
+ pos6(stem,45); pos7(1.414*stem,0);
+ z6=.20[z4,z5]; y7=0; z7=z6+whatever*dir(-45);
+ filldraw stroke z7e--z6e; % descending stroke
+ elseif slitex or monospace: % minuscolo regolare slides e typewriter
+ pos1(1.2stem,180); pos2(stem,180); pos3(1.2stem,180);
+ y1+(1.2stem)/2=h+o=2y2; y3-(1.2stem)/2=-o;
+ lft x2r=u; x1l=x2l=x3l;
+ filldraw double_circ_stroke z1e..z2e..z3e; % left bar
+ s_a:=90; s_c=12;
+ pos4(vair,180); pos5(stem,90-s_c);
+ x4l=x3l; bot y4=y3; x5+.5stem=w-x2r+o; top y5r=h;
+ filldraw circ_stroke z5e{dir(180-s_c)}...{-dir s_a}z4e; % ascending stroke
+ s_b:=70; path gamba; gamba=z4{dir s_a}...{dir-s_c}z5;
+ pos6(.7stem,s_b); pos7(.5[vair,stem],90);
+ z6=directionpoint (dir s_b) of gamba; path gamba;
+ bot y7l=0; rt x7+.5*(.5[vair,stem])=w-x3r;
+ filldraw circ_stroke z7e{left}..{dir(s_b+90)}z6e; % descending stroke
+ else: % minuscolo regolare
+ %% versione Didot
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1-.5stem=-o; %lower left
+ z1+z3=(w,h); z2=.5[z1,z3]; %upper right and middle
+ z1'=(z3-z1) if monowidth: xscaled 1/2 fi; %slope at 1 and 3
+ pos1(stem,angle z1'+90); pos2(.6[hair,stem],angle z1'+90);
+ pos3(stem,angle z1'+90);
+ filldraw double_circ_stroke z1e{z1'}..z2e..{z1'}z3e; %diagonal stroke
+ z4=if monowidth: z1 else: 1/4[z1,z3] fi; z4+z7=z3+z1; %handle attachments
+ z4'=if monowidth: z1' else: (z3-z1) xscaled .25 fi; %slope at 4 and 7
+ pos4(hair,angle z4'-90); pos7(hair,angle z4'+90);
+ pos5(vstem,90); top y5r=h+o; pos6(vstem,180); z6l=z5l;
+ lft x6r=hround(x1-.5stem-.25u);
+ filldraw circ_stroke z6e{up}...z5e{right}...z4e{-z4'}; %left handle
+ pos8(.5[vstem,stem],-90); bot y8r=-o; rt x9r=hround(x3+.5stem+.25u);
+ pos9(.5[vstem,stem],0); z9l=z8l;
+ filldraw circ_stroke z9e{down}...z8e{left}...z7e{z4'}; %right handle
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase kappa";
+beginchar("k",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;% "Lowercase kappa"
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+
+
+def dims = if small_caps: % lambda
+ 10u#,sclc*x_height#,0
+ elseif cbleipzig:
+ 8.6u#,asc_height#,0
+ elseif cbroman:
+ 8.5u#,asc_height#,0
+ else:
+ 9.5u#,asc_height#,0
+ fi enddef;
+def ital = 0 enddef;
+def fit_params = if cbroman:
+ 0,0
+ elseif small_caps:
+ serif_fit#,serif_fit#
+ else:
+ -.25u#,-.25u#
+ fi enddef;
+def krn = -.75u# enddef;
+
+
+def gen_letter=
+ if small_caps:
+ adjust_fit(fit_params);
+ numeric left_stem,outer_jut,alpha;
+ left_stem=hair if hefty: -3stem_corr fi;
+ outer_jut=.7jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+ x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+ alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+ penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+ penpos3(alpha*stem,0); penpos4(alpha*stem,0);
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+ if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+ else:
+ if cursive and serifs and not monospace:
+ adjust_fit(0,0);
+ pos1(hair,0); pos2(stem,0); pos3(stem,45); pos4(hair,90);
+ x1l=0; y1=h; x4=w; y4l=hair;
+ z2-z4=whatever*(z1l-z4l); y2=x_height;
+ x3r=x4l-stem/2-blacker; y3l=-oo;
+ filldraw stroke z1e..z2e...z3e{right};
+ filldraw z3l{right}..{1,1}z4l--z4r{-1,-1}...{left}z3r--cycle;
+ pos5(hair,0); z5l=z2l;
+ pos6(stem,0); x6l=x1l; y6=0;
+ filldraw stroke z6e{dir(80)}..z5e;
+ elseif cbleipzig:
+ numeric compl_slant_angle,prop,lstem;
+ compl_slant_angle=angle((1,slant));
+ prop=.4;
+ lstem=.15[hair,stem];
+ pos0(1.1hair,150);y0+y4=h; lft x0r=(stem+u)/2;
+ top y1r-bot y1l=stem; top y1r=h+oo; x1r=prop[x0r,x2r]; x1l=prop[x0l,x2l];z1=.5[z1r,z1l];
+ pos2(lstem,compl_slant_angle);y2=.3[x_height,h]; x2=w/2;
+ pos7(lstem,compl_slant_angle);y7+y2=h; z7-z2=whatever*dir(compl_slant_angle-90);
+ top y3r - bot y3l=stem; bot y3l=-oo; x3l=prop[x4l,x7l]; x3r=prop[x4r,x7r];
+ pos4(1.1hair,150);rt x4l=w-u/2; y4=min(1.5stem,.4bar_height);
+ z2'= dir(compl_slant_angle-90);
+ z1'=((z1-z0)yscaled3);
+ filldraw double_circ_stroke z0e{z1'}...{right}z1e...%
+ {z2'}z2e...{z2'}z7e...{right}z3e..{z1'}z4e;
+ path cbp,cbh; cbp=z1l{right}...{z2'}z2l...{z2'}z7l...{right}z3l;
+ cbh=(0,x_height)--(w,x_height);
+ z5l=(cbh)intersectionpoint(cbp);
+ pos6(stem,0); bot y6=0; lft x6l=u/2;
+ z5'=(z7l-z2l);
+ numeric lstem;
+ lstem=stem/(sind(angle(z5l-z6l)));
+ lstem:=lstem/(sind(angle(z5l-z6l)-angle(z5')-angle((1,slant))));
+ pos5(lstem,angle(z5'));
+ filldraw stroke z6e---z5e;
+ elseif cbroman:
+ pickup tiny.nib;
+ pos1(hair,0); lft x1l=jut; bot y1=0;
+ pos2(hair,0); x2=w/2; y2=x_height+stem/2;
+ pos3(stem,0); rt x3r=w-lft x1l; bot y3=0;
+ pos4(stem,0); z4=z3+whatever*(z2-z3); top y4=h;
+ filldraw stroke z1e--z2e;
+ filldraw stroke z3e--z4e;
+ dish_serif(1,2,a,1/3,.7jut,b,1/3,.7jut);
+ serif(4,3,c,1/3,-.8jut);
+ dish_serif(3,4,f,1/3,.8jut,g,1/3,.8jut);
+ elseif SansSerif:
+ pickup fine.nib;
+ x1r=hround .75u; y1r=h-.5stem; %top left
+ x0r=x1r+stem;y0r=h;
+ z1'=(z0r-z1r)yscaled 2; pos1(stem,100); %direction at z1
+ x3r+x1r=w; bot y3r=0; %bottom right
+ z2'=(z3r-z1r)yscaled 1.7; %direction at z2
+ y2r=x_height; z2r=z3r+whatever*z2'; %attachment
+ pos2(hair,angle z2'+90);
+ pos3(stem/sind(abs(angle z2')),0);
+ numeric t; t=(x0r-x1r)/(x2r-x1r);%pos0(stem,90);
+ x0l=t[x1l,x2l]; y0l=y0r-stem; z0=.5[z0r,z0l];
+ filldraw stroke z1e{z1'}...{right}z0e...{z2'}z2e--z3e; %diagonal
+ lft x4l=hround.75u; bot y4l=0; %bottom left
+ numeric stem'; stem'=stem-currentbreadth; numeric slope; %from z4 to z4
+ slope=angle(z2-z4l)+angle(length(z2-z4l)+-+.5stem',.5stem');
+ x4r=x4l+(stem'/sind slope); y4r=y4l; z4=.5[z4r,z4l];
+ path p; p=z1{right}...{z2'}z2--z3;
+ forsuffixes e=r,l: z5e=(z4e--(z4e+2(z2-z4))) intersectionpoint p; endfor
+ filldraw stroke z4e--z5e;
+ else:
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1+.5stem=h; %top left
+ z1'=(1,.2); pos1(stem,angle z1'+90); %direction at z1
+ x3+x1=w; y3-.5stem=-oo; pos3(stem,-angle z1'+90); %bottom right
+ y2=x_height; x2=.5[x1,x3]; %attachment
+ z2'=(z3-z1)yscaled 2; pos2(hair,angle z2'+90); %direction at z4
+ filldraw double_circ_stroke z1e{z1'}...
+ z2e{(z3-z1)yscaled 2}...{z1' yscaled -1}z3e; %diagonal
+ lft x4l=hround.75u; bot y4l=0; %bottom left
+ numeric stem'; stem'=stem-currentbreadth; numeric slope; %from z4 to z4
+ slope=angle(z2-z4l)+angle(length(z2-z4l)+-+.5stem',.5stem');
+ x4r=x4l+(stem'/sind slope); y4r=y4l; z4=.5[z4r,z4l];
+ path p; p=z1{z1'}...z2{(z3-z1)yscaled 2}...{z1' yscaled -1}z3;
+ forsuffixes e=r,l: z5e=(z4e--(z4e+2(z2-z4))) intersectionpoint p; endfor
+ filldraw stroke z4e{(z2-z4)if not monowidth: xscaled 1.2 fi}..z5e;
+ fi
+ fi
+enddef;
+
+cmchar "Lowercase lambda";
+beginchar("l",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7); endchar;% "Lowercase lambda"
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+def dims = if small_caps: % lowercase mu
+ 12u#,sclc*x_height#,0
+ elseif cursive:
+ 9u#,x_height#,desc_depth#
+ elseif cbleipzig:
+ 9u#,x_height#,desc_depth#% width=8.7u# ?
+ elseif cbroman:
+ 9u#,x_height#,desc_depth#
+ elseif SansSerif:
+ 10u#,x_height#,desc_depth#
+ else:
+ 8u#,x_height#,desc_depth#
+ fi enddef;
+def ital = 0 enddef;
+def fit_params = if small_caps:
+ .7serif_fit#,.7serif_fit#
+ elseif cursive:
+ .5stem#,.5stem#
+ elseif cbleipzig:
+ 0,0
+ elseif cbroman:
+ 0,.5u#
+ elseif SansSerif:
+ 0,0
+ else:
+ 0,.5stem#
+ fi enddef;
+
+def gen_letter=
+ if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ adjust_fit(fit_params);
+ numeric stem[]; % thicknesses of the four strokes
+ stem1=hround(fudged.hair+stem_corr);
+ stem2=hround(fudged.stem-4stem_corr);
+ stem3=hround(fudged.hair-stem_corr);
+ stem4=hround(fudged.stem-3stem_corr);
+ if stem4<stem1: stem4:=stem1; fi
+ pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+ pos3(stem4,0); pos4(stem4,0);
+ x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround (min(w-2u,w-3u+.5stem4)+.5u);
+ top y1=top y3=h; bot y2=bot y4=0;
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+ x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+ if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut; lower_notch=y6+notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+ else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+ if serifs: serif(1,2,a,1/3,-jut); % upper left serif
+ dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); % lower left serif
+ serif(3,4,d,1/3,jut); % upper right serif
+ dish_serif(4,3,e,1/3,jut,f,1/3,jut); fi % lower right serif
+ math_fit(0,max(.5ic#-.5u#,0));
+ else:
+ if cursive and serifs and not monospace:
+ adjust_fit(fit_params);
+ pos1(hair,90); pos2(stem,45); pos3(stem,0); pos4(stem,0); %left stroke
+ lft x1=0; y1=y2l; top y2r=h; x2l=5/4u; x2=x3l=x4l;
+ bot y4 =-d; y3=3/4h;
+ filldraw stroke z1e..z2e..z3e--z4e;
+ pos5(stem,0); pos6(stem,0); pos7(stem,45); pos8(hair,90); %right stroke
+ rt x8=w; y8=y7r; bot y7l=0; x7r=w-x2l; x7=x6r=x5r;
+ top y5=h; y6=1/4h;
+ filldraw stroke z8e..z7e..z6e--z5e;
+ pos9(vair,90); pos10(hair,0); pos11(.4[vair,stem],180); % bowl
+ x9=.5[x10r,x11r]; bot y9l=0;
+ x10r=x3r; x11r=x6l; y10=y11=4/10h;
+ filldraw stroke z10e{down}...z9e...{up}z11e;
+ elseif cbleipzig:
+ adjust_fit(fit_params);
+ pos3(stem,0); pos4(stem,0); %left stroke
+ x3l=x4l=.75u; y4 =(x6l-x3r)/2+.5[hair,stem]; top y3=h;
+ pos1(hair,90); x1r=.5[x3r,x6l]; bot y1l=-oo;
+ pos2(hair,180); x2r=x6l; y2r=y9l;
+ pos5(stem,0);
+ pos6(stem,0);
+ pos8(hair,135); %right stroke
+ pos9(hair,0);z9r=z4r;pos13(hair,0);z13r=z3r;
+ rt x8l=w-.5u; bot y7l=-oo=top y7r-.5[hair,stem]; x7r=.5[x6r,x8r]; x7l=.5[x6l,x8l];
+ top y5=h; y6=y4; y8=min(2stem,bar_height/2); x6r=x5r=x8r-min(1.3stem,1.5u);
+ pos10(stem-hair,0);z10l=z4l;
+ pos11(cap_stem,0); x11l=x4l; y11=-d+cap_stem/2;
+ pos12(.6[hair,stem],0); x12l=x4l; y12=.6[y10,y11];
+ filldraw stroke z3e--z4e;
+ filldraw stroke z9e{down}...z1e...{up}z2e;
+ filldraw circ_stroke z8e{(z7r-z8r)xscaled.3}..z7e{left}..{up}z6e..z5e;
+ filldraw circ_stroke z11e...z12e---z10e;
+ elseif cbroman:
+ adjust_fit(fit_params);
+ pickup tiny.nib;
+ pos1(stem,0); lft x1l=jut; bot y1=-d;
+ pos2(stem,0); x2l=x1l; top y2=h;
+ pos3(hair,30); x3r=x1r; y3r=1.5stem;
+ pos4(hair,90);x4=w/2; bot y4l=-oo;
+ pos5(hair,150); x4=.5[x3r,x5r]; y5r=y3r;
+ pos6(stem,0); x6l=x5r; y6=y2;
+ pos7(stem,0);x7l=x6l; y7l=y5r;
+ x8l=.5[x7l,x9l]; bot y8l=-oo; x8r=.5[x7r,x9r];y8r=y8l+.1[hair,stem];
+ pos9(hair,180); x9l=w; y9= min(y7,2u);
+ filldraw stroke z1e--z2e;
+ filldraw stroke z3e{down}...{right}z4e...{up}z5e;
+ filldraw stroke z6e---z7e...{right}z8e...{up}z9e;
+ serif(2,1,a,1/3,-.8jut);
+ dish_serif(1,2,c,1/3,.8jut,d,1/3,.8jut);
+ serif(6,7,f,1/3,-.8jut);
+ elseif SansSerif:
+ adjust_fit(fit_params);
+ pickup fine.nib;
+ pos6(stem,0); y6=h; %x6r=hround(w-1.5stem);
+ pos7(stem,0); y7=1.6[y8l,y8r]; x7=x6;
+ y8l=-oo; x8l=.5[x7l,x9l]; x8r=x7r+.4stem; y8r=.8stem; z8=.5[z8l,z8r];
+ pos9(.7hair,180); x9=w-x1r;
+ x8r=.5[x7r,x9r]; y9=y7;
+ pos1(stem,180);x1r=.75u; y1=h;
+ pos2(stem,180); x1=x2;y2=-d;
+ pos3(.5stem,180);y3=y5=.8bar_height; x3l=x1l;
+ pos4(stem,-90);y4r=-oo; x4=.5[x1l,x6l];
+ pos5(.5stem,0);x5l=x6l;
+ filldraw stroke z3e{down}..{right}z4e..{up}z5e;
+ filldraw stroke z1e--z2e;
+ filldraw stroke z9e...{left}z8e...{up}z7e--z6e;
+ else:
+ adjust_fit(fit_params);
+ pickup fine.nib;
+ y6+.5stem=h+o; pos6(stem,0); rt x6r=hround(w-vstem); %top right
+ x5r=.5[x1,x6]; bot y5r=-oo; %bottom of bowl
+ if straight:
+ lft x1r=hround .75 u; y1+.5stem=h+o; pos1(stem,180); %top left
+ x4=x1; x9=x6; y9=y4=.5x_height; pos4(stem,180); pos9(stem,0);
+ pos5(vstem, 270);
+ filldraw double_circ_stroke z1e..pulled_arc.e(4,5)&pulled_arc.e(5,9)..z6e;
+ y8-.5stem=-d-oo; x8=x1; pos8(stem,180); %end of handle
+ filldraw circ_stroke z8e..z4e;
+ else:
+ lft x2r=rt x2l-stem=hround .75u; %vertical tangents of left bulb
+ top y1r=h+o; x1r=.5[x2r,x2l]; z1=z1l=z1r; z1'r=-z1'l=left; %top left
+ y3r=.4[y1r,y5r];
+ lft x3r=max(x1r-.5hair,lft x2r+eps); %middle left
+ numeric tilt; tilt:=.6; path p.r, p.l;
+ p.l=gr_arc.l(3,4,5)(hair,.4[hair,stem],tilt)...{up}z6l;
+ p.r=subpath (2(1-tilt),2) of gr_arc.r(3,4,5)(fie,fo,fum)...{up}z6r;
+ z3.5r=z4r; z3.5'r=z4'r; z3.5l=z3l; z3.5'l=z3'l; %a hybrid
+ filldraw double_circ_stroke club.e(1,2,3.5) & p.e; %bowl
+ x8=lft x2r+stem; y8-.5stem=-d-oo; %end of handle
+ if serifs:
+ pos8(stem,angle(z4'l xscaled 2)-90); z8'r=z8'l=z4'l xscaled 2;
+ assign_z3'r(z3'l); %so club.r won't get confused
+ lft x7r=rt x7l-max(.2[hair,stem],2)=lft x2r; %vertical tangents of handle
+ filldraw double_circ_stroke club.e(3,7,8); %handle
+ else:
+ x3r:=x3r-1;
+ pos8(1.2vstem,angle(z4'l xscaled 2)-90); z8'=z4'l xscaled 2;
+ fill z3l{down}...{z8'}z8l...z8r{-z8'}...{up}z3r--cycle;
+ fi
+ y9r=max(y4r+epsilon,-oo+2vstem); %where hook attaches
+ x9r=xpart(((0,y9r)--(w,y9r)) intersectionpoint p.r); pos9(hair,0);
+ fi
+ pos10(vstem,90); y10l=y5r; x10-x9=vstem; %bottom of hook
+ pos11(hair,180); top y11=bot y10l+4/3vstem; %tip of hook
+ rt x11l=hround(x10+(y11-y10)+.5hair); %central arc is round
+ filldraw stroke z9e{down}..z10e{right}..{up}z11e; %hook
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase mu";
+beginchar("m",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;% "Lowercase mu"
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+def dims = if small_caps: % nu
+ 9.5u#,sclc*x_height#,0
+ elseif cbleipzig:
+ 7u#,x_height#,0
+ else:
+ 8.5u#,x_height#,0
+ fi enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+
+def gen_letter =
+ if small_caps:
+ adjust_fit(-.7serif_fit#,-.7serif_fit#);
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+ pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+ pos3(thin_stem,0); pos4(thin_stem,0);
+ pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+ x1=x2; x3=x4; x1l=w-x3r;
+ rt x3r=hround (min(w-2u,w-3u+.5fudged.stem)+.5u);
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ if hefty: penpos5(fudged.stem,0); penpos6(fudged.stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut; lower_notch=notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+ else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+ if serifs: if hefty: serif(1,2,a,1/3,-jut); % upper left serif
+ else: serif(5,6,a,1/3,-jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,jut,f,1/2,jut)(dark); fi % upper right serif
+ math_fit(0,max(.5ic#-.5u#,0));
+ else:
+ if cursive and serifs and not monospace:
+ adjust_fit(.5stem#,0);
+ pos1(hair,90); pos2(stem,45); pos3(stem,0); pos4(stem,45);
+ lft x1l=0; x2l=5/4u; x2=x3l=x4l;
+ y1= y2l; y2r=h; y3=3/4h; y4l=-o;
+ filldraw stroke z1e..z2e..z3e--z4e;
+ numeric nutop; nutop=if cbleipzig:.5else:1fi[hair,stem];
+ pos5(hair,135); pos6(nutop,180);
+ z5l=z4r; x6l=w-if cbleipzig:3u/4 else:x2l fi; y6+.5nutop=h+.5o;
+ filldraw circ_stroke z6e{down}..{dir(225)}z5e;
+ elseif cbleipzig:
+ adjust_fit(.5u#,0);
+ numeric compl_slant_angle; compl_slant_angle=angle(u,slant*u);
+ pos1(hair,180);
+ pos3(stem*cosd45,0);
+ pos4(stem,45);
+ lft x1r=0; x2l=.4[x1l,x3l];x2r=.4[x1r,x3r];
+ y2r=h+oo=y2l+.5[hair,stem*cosd45];z2=.5[z2r,z2l];
+ x3l=x1l+if stem<1.5u:1.6fi u; z4l=z1l+whatever*dir(compl_slant_angle-90);
+ y1l= y3l; y3=3/4h; y4l=-o;
+ z4'=dir(225)yscaled if stem>1.5u:8else:4fi;
+ filldraw circ_stroke z1e{(z2-z1)yscaled3}...z2e{right}..z3e...{z4'}z4e;
+ numeric nutop; nutop=.9[hair,stem];
+ pos5(fine,135); pos6(nutop,180); pos7(.4[hair,stem],175);
+ z5l=z4r; x6l=w-3u/4 ; y6+.5nutop=h+oo; y7=.6[y5,y6]; x7=x6;
+ filldraw circ_stroke z6e{down}..z7e..{dir(225)}z5e;
+ elseif cbroman:
+ pickup tiny.nib;
+ x0=w/2; bot y0=-oo;
+ pos1(stem,0); lft x1l= jut; top y1= h;
+ pos3(hair,0); rt x3r= w-jut; top y3=h;
+ z4r=z2l=z0;
+ z4l=z0+whatever*(z1l-z0)=z3l+whatever*(z3r-z0);
+ z2r=z0+whatever*(z3r-z0)=z1r+whatever*(z1l-z0);
+ z2 = .5[z2l,z2r]; z4=.5[z4l,z4r];
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e;
+ serif(1,2,a,1/3,-.8jut);
+ dish_serif(3,4,c,1/3,.8jut,d,1/3,.8jut);
+ elseif SansSerif:
+ adjust_fit(fit_params);
+ pickup fine.nib;
+ pos0(hair,0); pos3(hair,0);
+ top y0=h; bot y3=0;
+ x0l=0; x3=.5w;
+ z2=.8[z3,z0]+(.75u,0);
+ z2'=(z0-z3) rotated-90;
+ pos2(hair,angle(z2'));
+ z1'=z0l-z2;
+ pos1(hair/(cosd(angle(z0-z2)-90)),0);z1l=z0l;
+ pos4(hair,10); pos5(hair,0);
+ y5=y1; x5r+.25u=w-.5u=x4r; y4r=.8[y3,y5];
+ pos6(hair,angle((z4-z3)xscaled 1.25)-90); z6r=z3r;
+ filldraw stroke z3e--z2e{z2-z3}...{z1'}z1e;% left stroke
+ filldraw stroke z6e{(z4-z3)xscaled 1.25}..{up}z4e--z5e;% right stroke
+ else:
+ adjust_fit(fit_params);
+ pickup fine.nib;
+ rt x4r=hround(w-.75u); lft x4l-rt x4r=hround -.2[hair,stem]; %vert tangents
+ x5=lft x4l; y5 +.5hair -oo =h; z5'l=z5'r=(u,-.2h); %right tip
+ pos5(hair,angle z5'l+90);
+ pos3(whatever,-90); bot y3r=-oo; x3=.5w; z3'l=z3'r=z5'l xscaled -2; %bottom
+ z3l+whatever*z3'l=z3r+(stem-currentbreadth)*(dir(angle z3'l-90)); %width=stem
+ filldraw circ_stroke club.e(5,4,3);
+ y1+.5stem-oo=h; x1-.5stem=hround.75u; %left tip
+ z1'=(9u,-h); pos1(stem/abs((sind(angle z1'-90))),180);
+ z2r=z3r; z2l=z2r+(hair-currentbreadth)*(dir(angle z1'+90));
+ filldraw circ_stroke z1e{z1'}...{down}z2e;
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase nu";
+beginchar("n",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;% "Lowercase nu"
+
+
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+if small_caps: % xi
+ def dims = 9.5u#,sclc*x_height#,desc_depth# enddef;
+else:
+ def dims = if cbleipzig:7.5u#,asc_height#,desc_depth#else:
+ 8.5u#,asc_height#,desc_depth#
+ fi
+ enddef;
+fi
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+
+
+def gen_letter=
+ if small_caps:
+ italcorr height#*slant-.35u#;
+ adjust_fit(0,0);
+ h:=vround(h-2stem_corr);
+ numeric shaved_stem; shaved_stem=hround .9[vair,.85stem];
+ pickup crisp.nib; pos1(shaved_stem,90); pos2(hair,0);
+ top y1r=h; x1=.5w; rt x2r=hround(w-.5u-.3beak_jut); y2=good.y(y1l-4/9beak)-eps;
+ arm(1,2,a,.4beak_darkness,.3beak_jut); % upper right arm and beak
+ pos3(hair,180); x3=w-x2; y3=y2;
+ arm(1,3,b,.4beak_darkness,-.3beak_jut); % upper left arm and beak
+ pos4(shaved_stem,-90); pos5(hair,0);
+ bot y4r=0; x4=.5w; rt x5r=hround(w-.4u-.3beak_jut); y5=good.y(y4l+.5beak)+eps;
+ arm(4,5,c,.4beak_darkness,.3beak_jut); % lower right arm and beak
+ pos6(hair,180); x6=w-x5; y6=y5;
+ arm(4,6,d,.4beak_darkness,-.3beak_jut); % lower left arm and beak
+ pos7(shaved_stem,90); pos8(shaved_stem,90);
+ lft x7=w-rt x8=hround if serifs: 2.5 else: 2 fi\\ u;
+ top y7r=top y8r=vround(.52h+.5shaved_stem);
+ filldraw stroke z7e--z8e; % middle bar
+ if serifs: numeric xjut;
+ if bot y2>top y7r+.75jut:
+ xjut=.5jut;
+ else:
+ bot y2=top y7r+1.5xjut;
+ fi
+ pos11(hair,0); pos12(hair,0); y11=y12;
+ pos13(hair,0); pos14(hair,0); y13=y14;
+ lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u;
+ top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7;
+ filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; % middle serifs
+ fi
+ math_fit(0,.5ic#);
+ else:
+ if cursive and serifs and not monospace:
+ pos7(stem,180);
+ lft x7r=hround(.75u); y7=1/3x_height; %big bulge
+ pos8(stem,-135); bot y8r=0; x8=.5w; z8'r=z8'l=left; %inflection pt
+ pos9(hair,-180); rt x9l=hround(w-.75u); %bottom right
+ y6+.5hair=x_height+o; x6+.5hair=hround(rt x9l-.5u); %middle right
+ numeric slope; slope=angle(5(x6-x7),y6-y8); pos6(hair,slope+90);
+ z6'r=z6'l=dir slope;
+ pos10(.5[hair,stem],90); y10l=-d+oo; y9=.5[y10r,y8r]; x10=hround x8r;
+ filldraw double_circ_stroke %bowl and tail
+ z10e{right}..z9e{up}..{left}z8e..{up}z7e..{dir(slope)}z6e;
+ pos5(hair,1.5slope-90); z5=z6; %attachment
+ z4=.5[z3,z5]+whatever*dir slope; %small bulge
+ pos4(stem,-180); lft x4r=hround(lft x7r+.5u);
+ pos3(hair,slope+90); top y3r=h-o; rt x3r=hround(rt x9l-.5u); %top rt
+ filldraw double_circ_stroke z3e{-dir slope}..z4e{down}...z5e{dir 1.5slope};
+ pos2(hair,1.5slope+90); z2=z3; %where handle attaches
+ pos1(stem,slope); lft x1l=hround(lft x7r+.5u); y1r+hair=h; %end of handle
+ pos0(hair,0); x0=x1r; y0=h;
+ filldraw circ_stroke z2e{-dir9/8slope}...z1e{up}...z0e;
+ elseif cbleipzig:
+ numeric tilt[];
+ pos1(hair,90);y1r=h; x1l=.6[x2l,x3l];
+ y2r=.5[y3r,y1r];y2l=.5[y3l,y1l];x2r=hround(.5u)=x2l-.5[hair,stem];
+ pos3(hair,-90);x3=2w/5; y3l=.5[x_height,h];
+ pos4(hair,90); z3=z4;
+ pos5(hair,180); x5r=x16; y5=.5[y12,y7];
+ pos6(stem,-90); y6r=0;x6=2w/5;
+ pos7(.2[stem,hair],90); y7=y3=y8; x8=x7+.5stem; z8=(w-u/2,-d/4)+whatever*dir(98);
+ tilt1=angle((z7r-z4r) yscaled .7);
+ pos9(stem,-90); y9=y6; x9=2w/3;
+ x10l=w-x16r=x10r+.5[hair,stem];
+ y10l=.5[y9l,y11l];y10r=.5[y9r,y11r];z10=.5[z10r,z10l];y10=-.25desc_depth;
+ pos11(hair,90);x11=x6;
+ pos12(hair,-90); y14=y12; z12-.5[z6,z9]=whatever*(z3-.5[z6,z9]);
+ pos13(hair,90); z13=z12;
+ pos14(.2[stem,hair],90); y14=.55[y9l,y7l];
+ pos16(hair,180); x16r=hround(.5u); y16=.5[y14,y6];
+ z15=z14+(.5stem,0); z15=(w-u/2,-d/4)+whatever*dir(98);
+ tilt2=angle((z14r-z13r) yscaled .7);
+ filldraw circ_stroke z1e{left}...z2e...{dir(-tilt1)}z3e; % hook
+ filldraw stroke z4e{dir(180+tilt1)}..z5e{down}..{dir(-tilt2)}z12e; % top bulge
+ filldraw z3r{dir(-tilt1)}...z7l..z8..z7r...{dir(180+tilt1)}z4r..cycle; % top right
+ filldraw z12r{dir(-tilt2)}...z14l..z15..z14r...{dir(180+tilt2)}z13r..cycle; % middle right
+ filldraw stroke z13e{dir(180+tilt2)}..z16e{down}..{right}z6e; % bottom bulge
+ filldraw circ_stroke z11e{right}..{up}z10e..{left}z9e--z6e; % bottom
+ elseif cbroman:
+ pos11(hair,90);x11=x7r; y11r=h;
+ pos12(hair,90);x12=.7w; y12=y11;
+ pos9(.5[hair,stem],180); x9r=x11; y9=.5[x_height,h];
+ pos8(hair,-90);x8=x12; y8l=x_height;
+ pos7(.3[stem,hair],0); x7l=u/2; y7=bar_height;
+ pos6(stem,90);y6l=0; x6=w/2;
+ pos5(stem,90);y5l=y6l; x5=.5[x6,x4];
+ pos3(hair,-90); x3=w/2; y3=-(.5[.7bar_height,d]);
+ y4l=.5[y3l,y5l]; x4r=x4l+.3[hair,stem]=w-u/2; y4r=.5[y3r,y5r];z4=.5[z4r,z4l];
+ filldraw double_circ_stroke z11e--z12e;
+ filldraw circ_stroke z8e{left}...{up}z9e...{right}z12e;
+ filldraw circ_stroke z3e{(z4-z3)xscaled 3}...{up}z4e...z5e---z6e..{up}z7e...{right}z8e;
+ elseif SansSerif:
+ pickup fine.nib;
+ lft x7r=rt x7l- hair=hround(.75u); x7=.5[x7r,x7r]; %big bulge
+ pos8(stem,-90); bot y8r=0; x8=.5w; z8'r=z8'l=left; %inflection pt
+ pos9(hair,-180); rt x9l=hround(w-.75u); y9=-.5stem; %bottom right
+ y6+.5stem=x_height+o; x6=hround(x9r); %middle right
+ numeric slope; slope=angle(5(x6-x7),y6-y8); pos6(stem,90);
+ z6'r=z6'l=right;
+ pos10(vstem,-270);
+ %y9=.5[y10r,y8r];
+ bot y10l=max(2y9-top y8l,-desc_depth-oo);
+ x10-.5vstem=hround x8;
+ filldraw stroke z10e{right}...z9e{up}...club.e(8,7,6); %bowl and tail
+ pos5(hair,-90); z5r=z6l; %attachment
+ z4l=.4[z3l,z5l]+whatever*dir slope; %small bulge
+ pos4(vair,-180+slope);
+ lft x4r=hround(lft x7r+1.5u);
+ y3+.5stem=h+o; x3+.5stem=hround(rt x9l-.25u); pos3(stem,slope+90); %top rt
+ filldraw stroke z3e{-dir slope}..z4e{down rotated slope}...z5e{right};
+ pos2(hair,slope+90); z2r=z3r; %where handle attaches
+ pos1(curve,0); lft x1l=hround(lft x7r+.25u); y1r=y2r; %end of handle
+ filldraw stroke z1e{down}...z2e{dir slope};
+ else:
+ pickup fine.nib;
+ lft x7r=rt x7l- hair=hround(.75u); x7=.5[x7r,x7r]; %big bulge
+ pos8(stem,-90); bot y8r=0; x8=.5w; z8'r=z8'l=left; %inflection pt
+ pos9(hair,-180); rt x9l=hround(w-.75u); y9=-.5stem; %bottom right
+ y6+.5stem=x_height+o; x6+.5stem=hround(rt x9l-1.5u); %middle right
+ numeric slope; slope=angle(5(x6-x7),y6-y8); pos6(stem,slope+90);
+ z6'r=z6'l=dir slope;
+ pos10(vstem,-270); y9=.5[y10r,y8r]; x10-.5vstem=hround x8;
+ filldraw double_circ_stroke %bowl and tail
+ z10e{right}...z9e{up}...club.e(8,7,6);
+ pos5(hair,slope-90); z5l=z6r; %attachment
+ z4=.5[z3,z5]+whatever*dir slope; %small bulge
+ if serifs: pos4(vair,-180); else: pos4(.5vair,-180); fi lft x4r=hround(lft x7r+1.5u);
+ y3+.5stem=h+o; x3+.5stem=hround(rt x9l-.25u); pos3(stem,slope+90); %top rt
+ filldraw circ_stroke z3e{-dir slope}..z4e{down}...z5e{dir slope};
+ pos2(hair,slope+90); z2r=z3r; %where handle attaches
+ pos1(curve,0); lft x1l=hround(lft x7r+.25u); y1+.5curve=h+o; %end of handle
+ filldraw circ_stroke z1e{down}...z2e{dir slope};
+ fi
+ fi
+enddef;
+
+
+
+cmchar "Lowercase xi";
+beginchar("x",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;% "Lowercase xi"
+
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+
+if small_caps: % omicron
+ def width = 10u enddef;
+ def dims = width#,sclc*x_height#,0 enddef;
+else:
+ def width = if cursive:8.5
+ elseif cbleipzig or cbroman:8.5
+ else:9.5
+ fi u enddef;
+ def dims = width#,x_height#,0 enddef;
+fi
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ if small_caps:
+ italcorr .7*height#*slant-.5u#;
+ adjust_fit(0,0);
+ penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+ penpos2(curve,180); penpos4(curve,0);
+ if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+ else: x2r=.5hround u; fi
+ x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+ y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+ penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+ math_fit(-.3*height#*slant-.5u#,ic#-.5u#);
+ else:
+ if cursive or cbleipzig or cbroman or SansSerif:
+ pos1(if cbleipzig:fine else:hair fi,90);
+ pos2(stem,180);
+ pos3(if cbleipzig:fine else:hair fi,270);
+ pos4(stem,0);
+ x1=x3=w/2; lft x2r=w- rt x4r=.75u;
+ bot y3r = h-top y1r= -oo; y2=y4=h/2;
+ filldraw stroke z1e{left}..z2e..z3e..z4e..{left}z1e;
+ numeric x_baryctr; x_baryctr=x1;
+ elseif monospace:
+ spess:=max(hair,fine+eps);
+ pos1(spess,90); pos2(spess,180); pos3(spess,270); pos4(spess,0);
+ x1=x3=w/2; lft x2r=w- rt x4r=.75u;
+ bot y3r = h-top y1r= -oo; y2=y4=h/2;
+ filldraw stroke z1e{left}..z2e..z3e..z4e..{left}z1e;
+ numeric x_baryctr; x_baryctr=x1;
+ else:
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5x_height; %top and bottom
+ top y2r=x_height+oo; bot y6r=-oo; x2r=x6r=.5w; %right and left
+ filldraw stroke
+ gr_arc.e(8,1,2)(vair,curve,otilt) & gr_arc.e(2,3,4)(vair,curve,otilt) &
+ gr_arc.e(4,5,6)(vair,curve,otilt) & gr_arc.e(6,7,8)(vair,curve,otilt) ;
+ numeric x_baryctr; x_baryctr=x2; %accent reference
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase omicron";
+beginchar("o",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;% "Lowercase omicron"
+
+
+
+
+iff(not barebones):
+cmchar "Lowercase omicron with grave";
+beginchar(oct"344",width#,acc_ht#,0);
+this_letter; if (not small_caps): grave(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omicron with rough breathing";
+beginchar(oct"345",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omicron with smooth breathing";
+beginchar(oct"346",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omicron with acute";
+beginchar(oct"354",width#,acc_ht#,0);
+this_letter; if (not small_caps): acute(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omicron with rough breathing and acute";
+beginchar(oct"355",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit_acute(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omicron with smooth breathing and acute";
+beginchar(oct"356",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit_acute(x_baryctr)>; fi endchar;
+iff(not barebones):
+
+iff(not barebones):
+cmchar "Lowercase omicron with rough breathing and grave";
+beginchar(oct"347",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omicron with smooth breathing and grave";
+beginchar(oct"357",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)>; fi endchar;
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+def dims = if small_caps: % pi
+ 10.5u#,sclc*x_height#,0
+ else:
+ if cbroman:
+ 9
+ elseif SansSerif:
+ 10.5
+ elseif cbleipzig:
+ 10.5
+ else:
+ 9.5
+ fi
+ u#,x_height#,0
+ fi enddef;
+def ital = 0 enddef;
+def fit_params = if cbroman or SansSerif:0else:-.25fi u#,0 enddef;
+
+
+def gen_letter =
+ if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ adjust_fit(.7serif_fit#,.7serif_fit#); pickup tiny.nib;
+ h:=vround(h-stem_corr);
+ pos1(stem,0); pos2(stem,0); pos3(stem,0); pos4(stem,0);
+ lft x1l=lft x2l=hround (max(2u,3u-.5stem)-u/2); x3=x4=w-x1;
+ top y1=top y3=h; bot y2=bot y4=0;
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ penpos5(cap_bar,90); penpos6(cap_bar,90);
+ x5=x1; x6=x3; y5r=y6r=h;
+ fill stroke z5e--z6e; % bar
+ if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,eps); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,eps,f,1/3,jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+ math_fit(0,.5ic#);
+ else:
+ if cursive:
+ adjust_fit(fit_params);
+ if monospace or slitex: pickup fine.nib; fi
+ pi_bar; %bar
+ pos4(.5[stem,hair],0); pos7(hair,0); y4=y7=y2; %attachments
+ lft x4l-(x1-.5hair)=lft x7l-rt x4r=rt x3-rt x7r;
+ pos5(.5[stem,hair],0); pos8(hair,0); y5=y8=.5x_height; x5=x4; x8=x7; %midstems
+ z6=whatever[z4,z5];bot y6=0; pos6(.5[stem,hair],0);
+ filldraw stroke z6e...z5e---z4e;
+ x9=x7+1.5u; bot y9l=-oo; pos9(.8[hair,stem],90); alpha_tail(9,10); %right stem
+ filldraw stroke z10e...z9e{left}...z8e---z7e;
+ elseif cbleipzig:
+ cblpi_bar; %bar
+ pos7(stem,0); z7r=z3; %right stem
+ pos8(stem,0);
+ pos10(.5[hair,stem],110);
+ x8=x7-u/5; y8=2bar_height/3;
+ x9r=.5[x8r,x10r]; x9l=.5[x8l,x10l]; bot y9l=-oo=top y9r-.5[hair,stem];
+ x10l=w-u/4; y10r=min(2stem,bar_height/2);
+ filldraw circ_stroke z10e{(z9l-z10l) xscaled 0.2}...z9e{left}...z8e{up}...z7e; %right stem
+%
+ pos4(.4[hair,stem],0); y4=y2; z4=z5+whatever*((z7-z8)yscaled3); %left stem
+ pos5(.4[hair,stem],angle(z7-z8)-90); y5=2bar_height/3; x5l=x2+.1u;
+ pos12(.5[hair,stem],-120);
+ bot y6r=-oo=top y6l-.8[hair,stem];x6l=.5[x5l,x12l]; x6r=.5[x5r,x12r];
+ z12r-z1l=whatever*(-.5*slant,1); y12l=.5[y6l,y5];
+ filldraw circ_stroke z12e{(z6l-z12l)yscaled2}...{right}z6e...z5e{(z7-z8)}...z4e;
+ elseif cbroman:
+ pickup tiny.nib;
+ pos1(stem,0);lft x1l=jut; top y1=h;
+ pos2(stem,0); x2l=x1l; bot y2=0;
+ pos3(stem,0); rt x3r=w-lft x1l; y3=y1;
+ pos4(stem,0); x4r=x3r; y4=y2;
+ pos5(hair,90);x5=x1; top y5r=top y1;
+ pos6(hair,90);x6=x3; top y6r= top y1;
+ filldraw stroke z5e--z6e;
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e;
+ serif(1,2,a,1/3,-.8jut); serif(3,4,b,1/3,.8jut);
+ dish_serif(2,1,c,1/3,.8jut,d,1/3,.8jut);
+ dish_serif(4,3,e,1/3,.8jut,f,1/3,.8jut);
+ elseif SansSerif:
+ pickup fine.nib;
+ pi_bar; %bar
+ pos4(hair,0); pos7(hair,0); y4=y7=y2; %attachments
+ x4l=x2;lft x7l-rt x4r=rt x3-rt x7r;
+ pos5(hair,0); pos8(hair,0); y5=.5x_height; x5=x4; x8=x7;y8=1.6[y9l,y9r];
+ x6=x4; bot y6=0 if currentbreadth>0: -oo fi; %left stem
+ numeric slope; slope=angle((z5-z6)xscaled2); pos6(stem,slope-90);
+ filldraw stroke z6e--z4e;
+ y9r=.8stem; bot y9l=-oo; x9l=.5[x8l,x10l]; z9=.5[z9l,z9r];
+ pos10(.7hair,180); x10l=w-x1;
+ y10=y8; x9r=.5[x8r,x10r]; %right stem
+ filldraw stroke z10e{down}..z9e{left}..{up}z8e--z7e;
+ else:
+ pickup fine.nib;
+ pi_bar; %bar
+ pos4(hair,0); pos7(hair,0); y4=y7=y2; %attachments
+ lft x4l-(x1-.5hair)=lft x7l-rt x4r=rt x3-rt x7r;
+ pos5(hair,0); pos8(hair,0); y5=y8=.5x_height; x5=x4; x8=x7; %midstems
+ x6+.5stem=hround(rt x4r if not straight:-.25u fi); y6-.5stem=-oo; %left stem
+ numeric slope; slope=angle((z5-z6)xscaled2); pos6(stem,slope-90);
+ filldraw circ_stroke z6e...z5e---z4e;
+ x9=x7+1.5u; bot y9l=-oo; pos9(stem,90); alpha_tail(9,10); %right stem
+ filldraw stroke z10e...z9e{left}...z8e---z7e;
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase pi";
+beginchar("p",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;% "Lowercase pi"
+
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+
+if small_caps: % rho
+ def width = 9u enddef;
+ def height = sclc*x_height enddef;
+ def depth = 0 enddef;
+ def dims = width#,height#,depth# enddef;
+else:
+ def width =8.5u enddef;
+ def height = x_height enddef;
+ def depth = desc_depth enddef;
+ def dims = width#,height#,depth# enddef;
+fi
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+
+def gen_letter =
+ if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(.7serif_fit#,0);
+ pickup tiny.nib; penpos1(stem'-tiny,0); penpos2(stem-tiny,0);
+ pos0(stem',0); pos0'(stem,0);
+ lft x1l=hround (max(2u,3u-.5stem')-u/2); top y1=h; bot y2=0;
+ x1l=x2l=x0l=x0'l; y0=y0'=y7;
+ penpos3(cap_band,90); penpos4(cap_band,90);
+ penpos5(curve if hefty:-3stem_corr fi,0);
+ penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+ z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+ x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u/2);
+ x4l:=x6l:=x4-.25curve;
+ filldraw stroke z1e--z0e--z0'e--z2e; % stem
+ fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+ if serifs: dish_serif(1,0,a,1/3,jut,b,1/3,.5jut); % upper serif
+ dish_serif(2,0',c,1/3,jut,d,1/3,jut); fi % lower serif
+ math_fit(0,ic#-2.5u#);
+ else:
+ if (cursive or monospace) and not SansSerif:
+ if slitex or monospace: pickup fine.nib;spess:=max(hair,fine+eps);else: spess:=hair; fi
+ pos0(stem,0); pos1(stem,0); pos2(spess,-90); pos3(stem,180);
+ pos4(spess,90); pos5(spess,0);
+ lft x0l= lft x1l = w - rt x3l= 3/4u; x2=x4=w/2; rt x5r = rt x1r;
+ bot y0=-d; y1=y3=y5=bar_height; h-top y2l=bot y4l=-oo;
+ filldraw stroke z1e{up}..{right}z2e..z3e{down}..z4e{left}..{up}z5e;
+ filldraw z1l--z0l--z0r--z5--cycle;
+ elseif cbleipzig:
+ spess:=fine;
+ pos1(stem,0); pos2(spess,-90); pos3(stem,180);
+ pos4(spess,90); pos5(hair,0);
+ lft x1l = w - rt x3l= 3/4u; x2=x4=w/2; lft x5l = lft x1l;
+ y1=y3=y5=bar_height; h-top y2l=bot y4l=-oo;
+ filldraw stroke z1e{up}..{right}z2e..z3e{down}..z4e{left}..{up}z1e;
+ pos0(.9[hair,stem],90); if stem<1.5u:top y0r=-stem-hair else:bot y0l=-d+.7hair fi; x0=.5[x1,x3];
+ pos6(.9[hair,stem],90);y6=y0;x6=.5[x4,x3];
+ pos7(fine,45); bot y7l=-d; x7r=x3l;
+ filldraw double_circ_stroke z5e{down}...z0e---z6e..z7e;
+ elseif cbroman:
+ pickup tiny.nib;
+ pos1(stem,180); rt x1l=w-u/2; y1=h/2;
+ pos2(hair,-90); x2=.5[x1,x3]; top y2l=h+oo;
+ pos3(stem,0); lft x3l=u; y3=y1; pos0(hair,0); z3r=z0r;
+ pos4(hair,90); x4=x2; bot y4l=-oo;
+ pos5(stem,0); x5=x3; bot y5=-d;
+ filldraw stroke z5e---z3e{up}...{right}z2e...{down}z1e...{left}z4e...{up}z0e;
+ dish_serif(5,3,a,1/3,.8jut,b,1/3,.8jut);
+ elseif SansSerif:
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5h; %left and right
+ pos4(hair,180); pos8(hair,0);
+ top y2r=h+oo; bot y6r=-oo; x2r=x6r=.5w; %top and bottom
+ pos2(.8hair,90); pos6(.8hair,-90);
+ pos9(hair,180); bot y9=-d; x9r=x4r;
+ filldraw stroke z9e--z4e{up}...{right}z2e...{down}z8e...{left}z6e...{up}z4e;
+ else:
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5h; %left and right
+ top y2r=h+oo; bot y6r=-oo; x2r=x6r=.5w; %top and bottom
+ filldraw stroke
+ gr_arc.e(4,5,6)(curve,vair,-otilt) & gr_arc.e(6,7,8)(curve,vair,-otilt) &
+ gr_arc.e(8,1,2)(curve,vair,-otilt) & gr_arc.e(2,3,4)(curve,vair,-otilt);
+ if straight:
+ y9-.5stem=-d-oo; x9=x4; pos9(stem,180); %end of handle
+ filldraw circ_stroke z9e..z4e;
+ else:
+ y9-.5stem=-d-oo; x9=lft x4r+stem; %end of handle
+ if serifs:
+ pos9(stem,angle((z9-z4)xscaled3)-90); z9'r=z9'l=(z9-z4)xscaled3;
+ rt x10l=lft x10r+vair; %vertical tangents of handle
+ x10r=x4r-epsilon; assign_z4'r((-2eps,-1)); %so club.r won't get confused
+ filldraw double_circ_stroke club.e(4,10,9);
+ else:
+ pos9(1.2vstem,angle((z9-z4)xscaled3)-90); z9'=(z9-z4)xscaled3;
+ filldraw z4r{down}...{z9'}z9r...z9l{-z9'}...{up}z4l--cycle;
+ fi
+ fi
+ fi
+ numeric x_baryctr; x_baryctr=x2; %breathing placement
+ fi
+enddef;
+
+
+cmchar "Lowercase rho";
+beginchar("r",dims);
+adjust_fit(fit_params);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;% "Lowercase rho"
+
+
+iff(not barebones):
+cmchar "Lowercase rho with rough breathing";
+beginchar(oct"373",width#,acc_ht#,depth#);
+this_letter; if (not small_caps): spirit(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase rho with smooth breathing";
+beginchar(oct"374",width#,acc_ht#,depth#);
+this_letter; if (not small_caps): spirit(x_baryctr)>; fi endchar;
+
+picture savedpicture; currentbreadth:=0;
+
+
+def dims=if small_caps: 8.5u#,sclc*x_height#,0% % final sigma
+ elseif cbleipzig:
+ 7.5u#,x_height#,desc_depth#
+ else: 8u#,x_height#,desc_depth#%
+ fi
+enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ if small_caps: sc_beak_jut#:=.7beak_jut#; sc_beak#:=.7beak#;
+ define_pixels(sc_beak_jut,sc_beak);
+ italcorr height#*slant-sc_beak_jut#-.5u#;
+ numeric bot_arm_thickness;
+ bot_arm_thickness=Vround .25[slab,vstem];
+ pickup tiny.nib; lft x1l=hround u/2; x1l=x2l=x4l;
+ top y1=h; bot y2=h-slab; bot y4=0; x3l-x1l=4/11(w-u); y3=.5h;
+ numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+ penpos1(alpha1*(stem-tiny),0); penpos2(alpha1*(stem-tiny),0);
+ penpos3(alpha1*(stem-tiny),0);
+ alpha2=diag_ratio(1,hair-tiny,y3-y4,x3r-x4l);
+ penpos4(alpha2*(hair-tiny),0);
+ z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+ filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+ pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+ top y5r=h; x5=x1; rt x6r=hround(w-x1l); y6=good.y(y5l-sc_beak)-eps;
+ arm(5,6,a,beak_darkness,sc_beak_jut); % upper arm and beak
+ pos7(bot_arm_thickness,-90); pos8(hair,0);
+ bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6;
+ y8=good.y(y7l+sc_beak)+eps;
+ arm(7,8,b,beak_darkness,sc_beak_jut); % lower arm and beak
+ math_fit(0,.5ic#);
+ else:
+ if cursive and not SansSerif:
+ if slitex or monospace: pickup fine.nib; fi
+ pos1(stem,45); pos2(hair,90); pos3(stem,220); pos4(.8[hair,stem],220);
+ pos6(min(hair,.5d),90);
+ lft x3r=3/4u=w-rt x1r; x2=w/2; top y2r=h+oo; top y1r=h-if serifs:.7fi stem;
+ y3=bar_height; if slitex:bot y4r else: y4 fi=0; rt x4l=rt x1l;
+ bot y6l=-d; x6=3w/8;
+ path gobba; gobba= z2l{left}..tension .75..{down}z3l; pair zA,zB;
+ zB=point .5 of gobba; zA=direction .5 of gobba;
+ pos0(hair,angle(zA)-if serifs:90else:60fi);z0l=zB;
+ if monospace:
+ path gobba; pair zA; gobba=z4r{down}..tension .8..{left}z6r;
+ zA=direction .5 of gobba;
+ pos5(hair,angle(zA)-90); z5r=point .5 of gobba;
+ else:
+ pos5(hair,180); y5=.5[y4r,y6]; rt x5l=rt x1r;
+ fi
+ path gobba; gobba=z1{dir110}...{left}z2..z0..z3..z4..{if monospace:zA else: down fi}z5;
+ pair diag; diag=direction 3.5 of gobba;
+ pos7(stem,angle(diag)-90); if monospace:z7l else: z7 fi=point 3.5 of gobba;
+ path gobba; gobba=z5r{if monospace:zA else: down fi}..{left}z6r;
+ pair zB; zB=direction .5 of gobba; pos8(min(hair,.5d),angle(zB)-90); z8r=point .5 of gobba;
+ filldraw circ_stroke z1e{dir 110}...{left}z2e..z0e..z3e..z7e{diag}..z4e
+ ..{if monospace:zA else:down fi}z5e..z8e{zB}..{left}z6e;
+ path gobba; pair zA,zB,diag;
+ elseif cbleipzig:
+ pickup fine.nib; numeric slope;
+ pos4(hair,-180); y4=.5h; lft x4r=hround .75u; %left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); %y6=-.5stem; %bottom right
+ top z0r=(w/2,h+oo);pos0(.6[hair,stem],90);
+ z3r=z0r+whatever*dir(-15);z9=z3r+.5stem*down;
+ x3r+.5stem=rt x6l; pos3(stem,angle(z9-z0r)+90); %top right
+ pos5(vstem,-90); bot y5r=0; x5=.5w; %inflection pt
+ pos7(hair,90); y6=.5[y7r,y5r]; x7=hround x5;
+ top y7r=-.5desc_depth;
+ pair za; za=.5[z3,z5]; slope=angle((0,h)-za);
+ z10=z4+whatever*right=z0+whatever*down;
+ pos1(hair,slope); pos2(.4[hair,stem],360-slope);
+ numeric tensione[]; tensione1=1;tensione2=.85;
+ path cbp; cbp=z5{left}..tension tensione1..z4..tension tensione2..{right}z0;
+ z1=point 1.5 of cbp;
+ z2=point .5 of cbp;
+ pos8(vstem,-90); y8=y5;x8=x5+u;
+ filldraw double_circ_stroke %bowl and tail
+ z7e{right}...z6e...z8e...z5e{left}..z2e..z4e..z1e...z0e{right}...z3e;
+ path cbp; numeric tensione[];
+ elseif cbroman:
+ pos1(hair,0); z1=(w/2,h/2)+whatever*dir(45); y1=.5[bar_height,h];
+ pos10(stem,0); z10r=z1r; pos11(stem,90); z10=z11;
+ pos2(hair,90); x2=w/2;y2r=h+oo;
+ pos3(hair,180);x3r=u/2; y3=.75bar_height;
+ pos4(stem,-90); y4r=0; z4=z3+whatever*dir(-45);
+ pos5(stem,-90);y5r=y4r; x5=.5[x6,x4];
+ pos7(hair,90); y7l=-(.5[.7bar_height,d]); x7=x2;
+ x6l=x6r+.3[hair,stem]=w-u/2; y6r=.5[y5r,y7r]; y6l=.5[y5l,y7l]; z6=.5[z6r,z6l];
+ filldraw circ_stroke z7e{(z6-z7)xscaled 3}...z6e{up}...{left}z5e---z4e%
+ ...{up}z3e...{right}z2e...{down}z1e;
+ dot(10,11);
+ elseif SansSerif:
+ pickup fine.nib;
+ pos4(hair,-180); y4=.5[y3,y5]; lft x4r=hround .75u; %left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); %bottom right
+ top y3r=h; x3=rt x6l; pos3(stem,90); %top right
+ pos5(vstem,-90); bot y5r=0; x5=.5w; %inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r]; x7=hround (x5+.5u);
+ if y5r-u-vstem <-.5desc_depth: y7r=-u else:y7l=-.5desc_depth fi;
+ filldraw stroke %bowl and tail
+ z7e{right}...z6e...z5e{left}...z4e..tension.95..{right}z3e;
+ else:
+ pickup fine.nib;
+ pos4(hair,-180); y4=.5h; lft x4r=hround .75u; %left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); %bottom right
+ top y3r=h+oo; x3+.5stem=rt x6l; pos3(stem,90); %top right
+ pos5(vstem,-90); bot y5r=0; x5=.5w; %inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+ bot y7l=-if not slitex:.5fi desc_depth;
+ filldraw double_circ_stroke %bowl and tail
+ z7e{right}...z6e...z5e{left}...z4e...z3e{right};
+ fi
+ fi
+enddef;
+
+
+cmchar "Final lowercase sigma";
+beginchar("c",dims);
+adjust_fit(fit_params);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;% "Final lowercase sigma"
+
+
+
+iff small_caps: % For small caps the glyph of medial sigma is the same as the final one
+beginchar("s",dims);
+adjust_fit(fit_params);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture; currentbreadth:=0;
+
+% Initial and medial "sigma"
+def dim_sigma =
+ if cbroman:9.5else:
+ %elseif cbleipzig:8.5else:
+ 9.5fi
+ u#,x_height#,0 enddef;
+def ital_sigma = 0 enddef;
+def fit_params_sigma = 0,if cbleipzig:-.5u# elseif cbroman:0 else:.75u# fi enddef;
+
+def gen_mid_sigma =
+ numeric spess;
+ if (cursive or monospace) and not SansSerif:
+ if slitex or monospace: pickup fine.nib;spess:=max(hair,fine+eps);else: spess:=hair; fi
+ pos1(stem,75); pos2(spess,90); pos3(stem,180); pos4(spess,270);
+ pos5(stem,0);
+ rt x1r+.3stem=w; top y1r=h+oo;
+ x2=x4=.5[x3,x5]; bot y4r = h -top y2r = -oo;
+ y3=y5=bar_height; lft x3r=3/4u; w-3/2u=rt x5r;
+ filldraw circ_stroke z1e{dir 200}..z2e{left}..z3e..z4e..z5e..{left}z2e;
+ elseif cbleipzig:
+ spess:=.1[fine,stem];
+ pos0(hair,120);
+ pos1(stem,150);
+ pos2(.3[hair,stem],90);
+ pos3(stem,180);
+ pos4(spess,270);
+ pos5(stem,0);
+ top y0r=h+fine;.42[lft x3r,rt x0l]=x2;
+ z1r=z2r+whatever*dir(-4); x1r=.3[x0r,x2r];
+ .5[x2,x4]=.5[x3,x5]=w/2-.5u; x4-x2=.6u; bot y4r = h -top y2r = -oo;
+ y3=y5=bar_height; lft x3r=hround(3/4u);
+ filldraw circ_stroke z0e...z1e..z2e{left}..z3e..z4e..z5e..{left}z2e;
+ elseif cbroman:
+ spess:=hair;
+ pos1(stem,75); pos2(spess,90); pos3(stem,180); pos4(spess,270);
+ pos5(stem,0);
+ rt x1r+lft x3r=w;
+ top y1r=h+oo;
+ x2=x4=.5[x3,x5]=w/2-.5u; bot y4r = h -top y2r = -oo;
+ y3=y5=bar_height; lft x3r=hround(3/4u);
+ filldraw circ_stroke z1e{dir 200}..z2e{left}..z3e..z4e..z5e..{left}z2e;
+ elseif SansSerif:
+ pickup fine.nib;
+ lft x4r=hround .75u; rt x8r=w-lft x4r; %left and right bulge
+ pos4(hair,180); pos8(hair,0);
+ top y2r=h; bot y6r=-oo; x2r=x6r; %top and bottom
+ pos2(hair,90); pos6(hair,-90);
+ 2y4r=y2r+y6r=2y8r;
+ (x8r-x6r)/(y8r-y6r)=-(x4r-x6r)/(y4r-y6r); %determine x6r
+ y1r=y2r;rt x1=hround(rt x8r+u); pos1(stem,90); %tip
+ filldraw stroke z1e--z2e{left}...{down}z4e...{right}z6e...{up}z8e...{left}z2e;
+ else:
+ pickup fine.nib;
+ lft x4r=hround .75u; rt x8r=w-lft x4r; %left and right bulge
+ top y2r=h; bot y6r=-oo; x2r=x6r; %top and bottom
+ numeric fake; fake=y2r-(vstem-currentbreadth); %approx height of z2l
+ 2y4r=y2r+y6r; if serifs: 2y8r=fake+y6r else: y8r=y4r fi;
+ (x8r-x6r)/(y8r-y6r)=-(x4r-x6r)/(y4r-y6r); %determine x6r
+ y1r=y2r;rt x1=hround(rt x8r+u); pos1(stem,90); %tip
+ filldraw stroke z1e..gr_arc.e(2,3,4)(vstem,vstem,otilt)
+ & gr_arc.e(4,5,6)(vair,vstem,otilt) %top stroke and left bowl
+ & gr_arc.e(6,7,8)(vair,vstem,otilt); %bottom part of right bowl
+ z9l=z2l; pos9(vair,90);
+ filldraw stroke z8e{z8'e}..{z2'l}z9e; %top part of right bowl
+ fi
+enddef;
+
+
+
+iff (not small_caps):
+cmchar "Initial and medial lowercase sigma";
+beginchar("s",dim_sigma);
+adjust_fit(fit_params_sigma);
+gen_mid_sigma; penlabels(0,1,2,3,4,5,6,7,8,9); endchar;% "Initial and medial lowercase sigma"
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+if small_caps: % tau
+ def dims = 9.5u#,sclc*x_height#,0 enddef;
+else:
+ def dims = if cbroman:7.5
+ %elseif cbleipzig:8
+ else:
+ 8.5fi
+ u#,x_height#,0 enddef;
+fi
+def ital = 0 enddef;
+def fit_params = -.25u#,0 enddef;
+
+def gen_letter=
+ if small_caps:
+ italcorr height#*slant-beak_jut#-.25u#;
+ adjust_fit(fit_params);
+ h:=vround(h-2stem_corr);
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+ top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+ arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+ pos5(hair,180); x5=w-x4; y5=y4;
+ arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+ if serifs: dish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); % upper bracketing
+ dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ fi
+ math_fit(-.75*height#*slant,ic#-2.5u#);
+ else:
+ if cursive and not SansSerif:
+ if slitex or monospace: pickup fine.nib; fi
+ pos1(hair,90); pos2(stem,90); pos3(stem,90);
+ lft x1r= w- rt x3r=3/4u; lft x2=w/4;
+ top y2r=top y3r=h; top y1r =bot y2l-.4(stem-hair);
+ filldraw
+ z1l{dir 75}..{right}z2l--z3l--z3r--z2r{left}..{down}z1r--cycle;
+ pos4(if not monospace:.8fi stem,0); pos5(stem,0); pos6(.8[hair,stem],90);
+ y4=y2; x4=x5+(fine+stem)/4=.5[rt x1r,rt x3r]; y5=h/3; x6=.5[rt x5r,rt x3-hair]; bot y6l=-oo;
+ pos7(hair,180); top y7= y5; x7l=x3;
+ filldraw stroke z4e..{down}z5e...{right}z6e...{up}z7e;
+ elseif cbleipzig:
+ pickup fine.nib;
+ cbltau_bar; %bar
+ pos4(stem,0); y4=y2; x4=.5[x2,x3]; %attachment
+ pos5(stem,0); y5=.3x_height; x5=.4[x2,x3]; %midstems
+ x6r=.5[x5r,x7r]; bot y6l=-oo; pos6(.5[hair,stem],60); pos7(hair,120); %stem
+ y7r=min(2stem,bar_height/2); z7l=z11r+whatever*(z5-z4);
+ filldraw circ_stroke z7e{(z5-z4)}...z6e{left}...z5e---z4e;
+ elseif cbroman:
+ pos1(stem,90); x1=u/2+stem/2; y1r=h;
+ pos2(stem,90); x2=w-x1; y2r=y1r;
+ pos3(stem,0); x3=.4[x1,x2]; y3=y1;
+ pos4(stem,0); x4=x3; y4= (x6l-x4l)/2;
+ x5r=.5[x4r,x6r]; x5l=.5[x4l,x6l]; y5l=-oo; y5r=y5l+.3[hair,stem]; z5=.5[z5r,z5l];
+ pos6(hair,180); x6=x2; y6=y4;
+ filldraw double_circ_stroke z1e--z2e;
+ filldraw circ_stroke z6e{down}...z5e{left}...{up}z4e---z3e;
+ elseif SansSerif:
+ pickup fine.nib;
+ pi_bar; %bar
+ pos4(hair,0); y4=y2; x4=.5[x1,x3]-.15hair; %attachment
+ pos5(hair,0); y5=1.6[y6l,y6r]; x5=x4; %midstems
+ x6r=x4r+.5hair; bot y6l=-oo; y6r=.8hair; x6l=.5[x5l,x7l]; z6=.5[z6l,z6r]; %stem
+ pos7(.7hair,180);
+ x6r=.5[x5r,x7r]; y7=y5;
+ filldraw stroke z7e{down}..z6e{left}...z5e---z4e;
+ else:
+ pickup fine.nib;
+ pi_bar; %bar
+ pos4(hair,0); y4=y2; lft x4l-(x1-.5hair)=rt x3-rt x4r; %attachment
+ pos5(hair,0); y5=.5x_height; x5=x4; %midstems
+ x6=x4+1.5u; bot y6l=-oo; pos6(stem,90); alpha_tail(6,7); %stem
+ filldraw stroke z7e...z6e{left}...z5e---z4e;
+ fi
+ fi
+enddef;
+
+cmchar "Lowercase tau";
+beginchar("t",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,11); endchar;% "Lowercase tau"
+
+picture savedpicture; currentbreadth:=0;
+
+
+
+if small_caps: % lowercase upsilon
+ def width = 9u enddef;
+ def dims = width#,sclc*x_height#,0 enddef;
+else:
+ def width = %if cbleipzig:8else:
+ 9%fi
+ u enddef;
+ def dims = width#,x_height#,0 enddef;
+fi
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ if small_caps:% upsilon smal caps
+ italcorr .8*height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ lft x1l=lft x2l=hround(.5w-.5stem); y1=.5h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ penpos3(.6stem,0); penpos4(.75curve,90); penpos5(hair,180);
+ z3l=lft z1l; x5r=.5hround u; y5=bot .8h; x4=.61803[x3l,x5l]; y4r=h+o;
+ penpos5'(hair,180); x5'=x5; y5'=h;
+ fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up}
+ ...{right}z4l...{down}z3l--cycle; % left arc
+ penpos6(.6stem,0); penpos7(.75curve,-90); penpos8(hair,-180);
+ z6r=rt z1r; x8=w-x5; y8=y5; x7=w-x4; y7=y4;
+ penpos8'(hair,-180); x8'=x8; y8'=h;
+ fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up}
+ ...{left}z7l...{down}z6l--cycle; % right arc
+ if serifs: dish_serif(2,1,a,1/3,1.25jut,b,1/3,1.25jut); fi % serif
+ math_fit(-.8*height#*slant-.5u#,ic#-2.5u#);
+ numeric x_baryctr; x_baryctr=x1;
+ else:
+ if cursive and serifs and not monospace:% upsilon: oblique prportional
+ adjust_fit(.5stem#,0);% upsilon italic
+ pos1(hair,90); pos2(stem,45); pos3(stem,0);
+ pos4(stem,10); pos5(.5[hair,stem],90); pos6(hair,180);
+ numeric tip_slope; tip_slope=-70; pos7(stem,tip_slope-90);
+ x1l=0; x2l=4/3u; x2=x3l=x4l;
+ y1=y2l; y2r=h; y3=3/4h; y4l=max(1/3h,3/2stem);
+ x6l=w-3/4u; x7l=x6r; y7+.5stem=h+o; y6=4/10h;
+ y5l=-oo; x5=.5[x3l,x6l];
+ filldraw circ_stroke z7e{dir(tip_slope)}..{down}z6e..{left}z5e
+ ..{up}z4e..z3e..z2e..z1e;
+ numeric x_baryctr; x_baryctr=(w-u/3)/2; numeric tip_slope;
+ elseif cbleipzig:% upsilon Leipzig
+ adjust_fit(0,.3u#);
+ pickup fine.nib;
+ pos1(hair,180);
+ pos3(stem,0); %left tip
+ lft x1r=.5u; y1=y3;
+ top y2r=h+oo=bot y2l+.5[hair,stem]; x2l=.5[x1l,x3l]; x2r=.5[x1r,x3r];z2=.5[z2r,z2l];
+ y3=2h/3;lft x3l=rt x1l+if stem<1.5u:2u else:.7stem fi ;
+ pos4(stem,0); x4=x3;y4=h/3;
+ bot y5l=-oo=top y5r-hair; x5r=.5[x4r,x6r];x5l=.5[x4l,x6l]; z5=.5[z5r,z5l];
+ pos6(.5[hair,stem],180); y6=h/2; rt x6l+lft x1r=w;
+ pos7(.1[stem,hair],220); top y7l= h; x7=.4[x5,x6];
+ filldraw double_circ_stroke z1e{up}..{right}z2e..{down}z3e---z4e...%
+ {right}z5e..{up}z6e...z7e;
+ numeric x_baryctr; x_baryctr=.5[x2,x7];
+ elseif cbroman:% upsilon roman
+ pickup tiny.nib;
+ pos1(stem,0);lft x1l=jut; top y1=h;
+ pos2(stem,0); x2=x1; y2=(rt x5l -lft x1l)/2;
+ pos3(hair,90);x3=w/2;bot y3l=-oo;
+ pos4(stem,180);x4=x5; y4=y2; pos6(stem,0); z6=z4;
+ pos5(stem,180); x5=w-x1; y5=y1; pos7(stem,0); z7=z5;
+ filldraw stroke z1e---z2e{down}...{right}z3e...{up}z4e---z5e;
+ serif (1,2,a,1/3,-.8jut);
+ dish_serif(7,6,b,1/3,.8jut,c,1/3,.8jut);
+ numeric x_baryctr; x_baryctr=x3;
+ elseif SansSerif:% upsilon SansSerif
+ adjust_fit(0,0);
+ pickup fine.nib;
+ top y2r=x_height; x2r=hround.75u; % left tip
+ lft x4r=hround(x2r+.20stem+.75u); y4r=.5x_height; %left middle
+ pos4(hair,180);z4'r=z4'l=down;
+ y8r=y4r; rt x8r=hround(w-.75u); %right bulge
+ pos8(hair,0); z8'l=z8'r=up;
+ x6r=.5[x4r,x8r]; bot y6r=-oo; %bottom
+ pos6(hair,-90);
+ path cbp; cbp=z2r...{z4'r}z4r; z.a=direction 0 of cbp;
+ pos2(hair/(abs(cosd(angle(z.a)-90)))-currentbreadth,180);
+ y9=y2; x9=x8-u; %right tip
+ path cbp; cbp=z8{up}...z9; z.b=direction 1 of cbp;
+ pos9(hair/(abs(cosd(angle(z.b)+90))),0);
+ filldraw stroke z2e...{z4'e}z4e...{right}z6e...{z8'e}z8e...z9e;
+ numeric x_baryctr; x_baryctr=.6[x2,x9]-.15stem; % accent reference
+ else:% upsilon other shapes: didot and tt
+ adjust_fit(0,0);
+ pickup fine.nib;
+ y2+.5stem=x_height+o; x2-.5stem=hround.75u; %%%left tip
+ lft x4r=hround(x2-.5stem+.75u); y4r=.5x_height; %left middle
+ y8r=y4r; rt x8r=hround(w-.75u); %right bulge
+ x6r=.5[x4r,x8r]; bot y6r=-oo; %bottom
+ numeric tilt;
+ tilt:=min(2*otilt,.5);
+ if monospace:
+ pos4(stem,180); pos6(stem,-90); pos8(stem,0);
+ filldraw stroke z4e{down}...{right}z6e...{up}z8e;
+ else:
+ filldraw stroke gr_arc.e(6,7,8)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(4,5,6)(vair,.4[vair,stem],tilt);
+ fi
+ y9+.5hair=x_height+o; x9=x8-u;
+ pos9(hair,angle ((z8-z9) xscaled 2)+90);
+ pos2(stem,angle((z4-z2) xscaled 2)-90);
+ if monospace:
+ filldraw circ_stroke z9e...{down}z8e;
+ filldraw circ_stroke z2e...{down}z4e;
+ else:
+ filldraw circ_stroke z9e...{-z8'e}z8e;
+ filldraw circ_stroke z2e...{z4'e}z4e;
+ fi
+ numeric x_baryctr; x_baryctr=.5[x2,x9]-.15stem;
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase upsilon";
+beginchar("u",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;% "Lowercase upsilon"
+
+
+
+iff(not barebones):
+cmchar "Lowercase upsilon with grave";
+beginchar(oct"314",width#,acc_ht#,0);
+this_letter; if (not small_caps): grave(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with rough breathing";
+beginchar(oct"315",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with smooth breathing";
+beginchar(oct"316",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with acute";
+beginchar(oct"324",width#,acc_ht#,0);
+this_letter; if (not small_caps): acute(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with rough breathing and acute";
+beginchar(oct"325",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit_acute(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with smooth breathing and acute";
+beginchar(oct"326",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit_acute(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with rough breathing and grave";
+beginchar(oct"317",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with smooth breathing and grave";
+beginchar(oct"327",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)>; fi endchar;
+
+
+iff(not barebones):
+cmchar "Lowercase upsilon with circumflex";
+beginchar(oct"334",width#,circ_ht#,0);
+this_letter; if (not small_caps):
+squeeze:=false; circumflex(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with rough breathing and circumflex";
+beginchar(oct"335",width#,Circ_ht#,0);
+this_letter; if (not small_caps):
+squeeze:=true; spirit_circumflex(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with smooth breathing and circumflex";
+beginchar(oct"336",width#,Circ_ht#,0);
+this_letter; if (not small_caps):
+squeeze:=true; spirit_circumflex(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with diaeresis";
+beginchar(oct"364",width#,circ_ht#,0);
+this_letter; diaeresis(x_baryctr);
+picture savedUpicture; savedUpicture:=currentpicture;
+endchar;
+iff(not barebones):
+cmchar "shifted Lowercase upsilon with diaeresis"; % for kerning with A or a
+beginchar(oct"017",width#,circ_ht#,0);
+adjust_fit(0,-aukern#);
+currentpicture:=savedUpicture shifted(-aukern,0); endchar;
+picture savedUpicture;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with diaeresis and grave";
+beginchar(oct"365",width#,Circ_ht#,0); % Circ_ht is chosen on purpose
+this_letter;
+if (not small_caps):
+ diaeresis_grave(x_baryctr);
+else:
+ diaeresis(x_baryctr);
+fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with diaeresis and acute";
+beginchar(oct"366",width#,Circ_ht#,0); % Circ_ht is chosen on purpose
+this_letter;
+if (not small_caps):
+ diaeresis_acute(x_baryctr);
+else:
+ diaeresis(x_baryctr);
+fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase upsilon with diaeresis and circumflex";
+beginchar(oct"367",width#,Circ_ht#,0);
+this_letter;
+if (not small_caps):
+ squeeze:=true;
+ diaeresis_circumflex(x_baryctr);
+else:
+ diaeresis(x_baryctr);
+fi endchar;
+
+picture savedpicture; currentbreadth:=0;
+
+
+def dims = if small_caps: 9u#, sclc*x_height#,0 % phi
+ else:
+ if cbroman: 10
+ elseif cbleipzig:10.5else:
+ 10.5fi
+ u#,x_height#,desc_depth#
+ fi
+ enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+
+def gen_letter =
+ if small_caps:% phi small caps
+ italcorr .5*height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric shaved_stem,light_curve;
+ shaved_stem=stem-hround 2stem_corr;
+ light_curve=curve-hround stem_corr;
+ pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+ lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ penpos3(vair,90); penpos5(vair,-90);
+ penpos4(light_curve,180); penpos6(light_curve,0);
+ x4r=.5hround u; x6r=w-x4r; x3=x5=.5w;
+ y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5];
+ y5r=vround(.15h if serifs:+slab fi);
+ penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+ if serifs: dish_serif(1,2,a,1/3,1.25jut,b,1/3,1.25jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25jut,d,1/3,1.25jut); fi % lower serif
+ math_fit(-.5*height#*slant-.5u#,ic#);
+% phi Leipzig
+ elseif cbleipzig: % Dimitri Filippou suggested to have the crossing at point 6 at
+ lft x4r=w-rt x8r= hround .75u; ;y4r=y8r=bar_height; % right angles, but it does not
+ x6=.47[x4l,x8l]; bot y6r=-oo;% look good!
+ bot y10=-d+stem/2-oo; y11=y4r; x10=x11=x6;
+ top y2r=h+oo=bot y2l+.3[hair,stem];
+ x2l=.47[x12l,x4l]; x2r=.47[x12,x4r];z2=.5[z2r,z2l];
+ pos12(.5[hair,stem],0); y12l=y7l; .5[x12l,x7l]=x6;
+ pos4(stem,180); pos6(fine,-90); pos8(.2[hair,stem],0);
+ x9r=.47[x7l,x8r]; x9l=.47[x7l,x8l]; top y9r=h+oo=bot y9l+.3[hair,stem]; z9=.5[z9r,z9l];
+ pos10(stem,180); pos11(stem,180);
+ pos7(.6[hair,stem],135); x7l=x11l; y7=.7[h+oo,y11r];
+ pos13(.5[hair,stem],0); z13l=z11r;
+ filldraw double_circ_stroke z13e{up}--z12e{up}...z2e{left}..z4e{down}..%
+ z6e{right}..{up}z8e..{left}z9e...z7e{down}...z11e---z10e;
+ elseif cbroman:% phi roman
+ pickup tiny.nib;
+ lft x4r=w-rt x8r= hround u/2; ;y4r=y8r=.5h;
+ x6=.5[x4l,x8l]; bot y6r=-oo;
+ bot y10=-d; y11=y4r; x10=x11=x6;
+ top y2r=h+oo; .5[x2,x9]=x6;
+ pos2(hair,60); pos12(stem,0); z12=z10;
+ pos4(stem,180); pos6(hair,-90); pos8(stem,0); pos9(hair,120);
+ pos10(stem,180); pos13(stem,0); z13=z11;
+ pos11(stem,180); pos7(stem,135);
+ x9r=.47[x10r,x8r]; top y9r=h+oo; x7l=x11l; y7=.5[y9r,y11r];
+ filldraw stroke z2e{left}..z4e{down}..%
+ z6e{right}..{up}z8e..{left}z9e...z7e...{down}z11e---z10e;
+ dish_serif(12,13,a,1/3,.8jut,b,1/3,.8jut);
+ else:% phi other shapes
+ if cursive and serifs and not monospace: % phi regular, outline and cursive
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h;
+ x6=.5[x4r,x8r]; bot y6r=-oo;
+ y10=-d; y11=y4r; x10=x11=x6;
+ numeric raggio; raggio=x8r-x4r-stem;
+ y2=h; .4[x2,x9]=x6;
+ pos2(hair,180);
+ pos4(stem,180); pos6(hair,-90); pos8(stem,0); pos9(hair,120);
+ pos10(stem,180); pos11(stem,180); pos7(stem,135);
+ x9r=.41[x10r,x8r]; top y9r=h+oo; x7l=x11l; y7=.5[y9r,y11r];
+ filldraw stroke z2e..z4e{down}..z6e{right}..{up}z8e..{left}z9e...z7e
+ ..{down}z11e--z10e;
+ elseif SansSerif:% phi SansSerif
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h;
+ pos4(.8hair,180); z4'r=z4'l=down;
+ pos8(.8hair,0);z8'l=z8'r=up;
+ x6r=.5[x4r,x8r]; bot y6r=-oo; pos6(.8hair,-90);
+ numeric tilt; tilt:=min(2*otilt,.5);
+ top y2r=h; x2r=hround(x4r+u);
+ path cbp; cbp=z2r...{z4'r}z4r;
+ z.a=direction 0 of cbp;
+ pos2(stem/abs(cosd(angle(z.a)+90)),180);
+ pos10(stem,180); pos11(hair,180);
+ bot y10=-d; y11=.65h; x10=x11=x6;
+ x9r=.5[x10r,x8r]; top y9r=h+oo; pos9(.8hair,90); z9'l=z9'r=left;
+ filldraw stroke z2e...{z4'e}z4e...{right}z6e%
+ ...{z8'e}z8e...{z9'e}z9e...{down}z11e--z10e;
+ else: % typewriter, slides
+ if monospace:
+ if vair<=fine:
+ pickup pencircle scaled 1.05fine;
+ currentbreadth:=1.05fine;
+ else:
+ pickup fine.nib;
+ fi
+ else:
+ pickup fine.nib;
+ fi
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h;
+ x6r=.5[x4r,x8r]; bot y6r=-oo;
+ numeric tilt; tilt:=min(2*otilt,.5);
+ if monospace:
+ pos6(vair,-90); pos8(.4[vair,stem],0);
+ pos4(vair,180);
+ filldraw stroke z4e{down}..{right}z6e..{up}z8e;z8'l=(0,1);
+ else:
+ filldraw stroke gr_arc.e(6,7,8)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(4,5,6)(vair,.4[vair,stem],tilt) ;
+ fi
+ y2+.5stem=h+o; x2+.5stem=hround(x6-1.5u);
+ pos2(stem,angle((z2-z4)xscaled 2)+90);
+ filldraw circ_stroke z2e...if monospace:{down}else:{z4'e}fi z4e;
+ pos10(stem,180); pos11(hair,180);
+ y10-.5stem=-d-o; y11=.25h; x10=x11=x6;
+ x9r=.5[x10r,x8r]; top y9r=h+o;
+ filldraw stroke gr_arc.e(8,20,9)(vair,.4[vair,stem],.5tilt);
+ filldraw circ_stroke z10e..z11e{up}..{-z9'e}z9e;
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase phi";
+beginchar("f",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,20,21); endchar;% "Lowercase phi"
+
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+def ital = 0 enddef; % chi
+def fit_params = 0,0 enddef;
+if small_caps:
+ def dims = 10u#,sclc*x_height#,0 enddef;
+else:
+ def dims =
+ if cbroman:9
+ elseif cbleipzig:8.5
+ else:
+ 10fi
+ u#,x_height#,desc_depth# enddef;
+fi
+
+
+def gen_letter=
+ if small_caps:
+ italcorr height#*slant-.25u#;
+ adjust_fit(serif_fit#,serif_fit#);
+ numeric stem[],outer_jut,xjut,alpha[];
+ stem1=stem-2stem_corr; stem2=min(hair,stem1);
+ outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+ x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+ x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+ y1=y2=h; y3=y4=0;
+ alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+ alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+ penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+ penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+ if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+ else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+ if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+ math_fit(0,.5ic#);
+ else:
+ if cursive and serifs and not monospace:
+ adjust_fit(.5stem#,.5stem#);
+ x0=w/2; y0=.5[-d,h]; numeric diagon; diagon=angle(w-2u,h+d);
+ pos1(hair,90); pos2(stem,.5[90,diagon]); pos3(stem,diagon);
+ pos0(stem,diagon); pos4(stem,diagon); pos5(stem,.5[90,diagon]); pos6(hair,90);
+ z0=.5[z1,z6]=.5[z2,z5]=.5[z3,z4];
+ x1=0; x2l=u; x2r+.5
+ u=x3l; y1=y2l; y2r=h; y3=y2l;
+ filldraw stroke z1e..z2e..z3e--z4e..z5e..z6e;
+ pos7(.8stem,0); pos8(.5stem,-diagon); pos9(.8stem,0);
+ z0=z8=.5[z7,z9]; x7l=0; y7=-d;
+ filldraw stroke z7e{up}...{dir(diagon-10)}z8e...{up}z9e;
+ elseif cbleipzig:
+ x0=w/2; y0=.5[-d,h]; numeric diagon; diagon=angle(w-2u,h+d);
+ pos1(hair,180); x1r=.2u; y1=h-min(2stem,bar_height/2);
+ x2l=.5[x1l,x3l]; x2r=.5[x1r,x3r]; y2l+.5[hair,stem]=y2r=h+oo; z2=.5[z2r,z2l];
+ pos3(.5[hair,stem],0);x3l=x1l+if stem>1.5u:3stem/4 else:2u fi; y3l=y1l;
+ pos4(.5[hair,stem],0);
+ x5l=.5[x4l,x6l]; x5r=.5[x4r,x6r];
+ y5r-if stem>1.5u:.6else:1fi[hair,stem]=y5l=-d-oo; z5=.5[z5r,z5l];
+ pos6(hair,180);
+ z0=.5[z1,z6]=.5[z3,z4];
+ filldraw double_circ_stroke
+ z1e{up}..z2e{right}...z3e---z4e...z5e{right}..{up}z6e;
+ pos7(stem,0);
+ z0=.5[z7,z8]; x7l=u; y7=-d;
+ x8:=x8-u/2;% Dimitri Filippou indicated that the straight stroke shouls be a liitle
+ pos8(stem,0); % more vertical; shifting left the upper tip by u/2 looks OK
+ filldraw stroke z7e---z8e;
+ elseif cbroman:
+ pickup tiny.nib;
+ pos1(stem,0); lft x1l=jut; top y1=h;
+ pos2(stem,0); x2=w-x1; bot y2= -d;
+ filldraw stroke z1e---z2e;
+ pos3(hair,0); rt x3r = w-lft x1l; y3=y1;
+ pos4(hair,0); lft x4l=w- rt x2r; y4=y2;
+ serif (1,2,a,1/3,-.8jut);
+ dish_serif(2,1,b,1/3,.8jut,c,1/3,.8jut);
+ filldraw stroke z3e---z4e;
+ dish_serif(3,4,d,1/3,.8jut,e,1/3,.8jut);
+ dish_serif(4,3,f,1/3,.8jut,g,1/3,.8jut);
+ elseif SansSerif:
+ pickup fine.nib;
+ x1=hround .75u; y1+.5stem=h+oo; %top left
+ z1'=(1,.2); pos1(stem,90); %direction at z1
+ x3+x1=w; y3-.5stem=-d-oo; pos3(stem,90); %bottom right
+ z2=.5[z1,z3]; %attachment
+ z2'=(z3-z1)yscaled 2; pos2(hair,angle z2'+90); %direction at z4
+ filldraw stroke z1e{z1'}... z2e{(z3-z1)yscaled 2}...{z1'}z3e;
+ lft x7l=hround .75u; bot y7l=-d-oo; z2=.5[z7l,z8r]=.5[z7r,z8l];
+ numeric stem'; stem'=stem-currentbreadth;
+ numeric theta; theta=angle(z8r-z7l)+angle((x8r-x7l)++(y8r-y7l)+-+stem',stem');
+ x7r=x7l+(stem'/sind theta); y7r=y7l;
+ filldraw stroke z7e--z8e;
+ else:
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1+.5stem=h+oo; %top left
+ z1'=(1,.2); pos1(stem,angle z1'+90); %direction at z1
+ x3+x1=w; y3-.5stem=-d-oo; pos3(stem,angle z1'+90); %bottom right
+ z2=.5[z1,z3]; %attachment
+ z2'=(z3-z1)yscaled 2; pos2(hair,angle z2'+90); %direction at z4
+ filldraw double_circ_stroke z1e{z1'}... z2e{(z3-z1)yscaled 2}...{z1'}z3e;
+ lft x7l=hround .75u; bot y7l=-d-oo; z2=.5[z7l,z8r]=.5[z7r,z8l];
+ numeric stem'; stem'=stem-currentbreadth;
+ numeric theta; theta=angle(z8r-z7l)+angle((x8r-x7l)++(y8r-y7l)+-+stem',stem');
+ x7r=x7l+(stem'/sind theta); y7r=y7l;
+ filldraw stroke z7e..z8e;
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase chi";
+beginchar("q",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9); endchar;% "Lowercase chi"
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+
+if small_caps: % psi
+ def dims = 10.5u#,sclc*x_height#,0 enddef;
+else:
+ def dims = if cbleipzig:10
+ else:
+ 10.5
+ fi
+ u#,if cbleipzig or cbroman:x_height# else:asc_height# fi,desc_depth# enddef;
+fi
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ adjust_fit(fit_params);
+ if small_caps:
+ italcorr .8*height#*slant-.5u#;
+ numeric shaved_stem;
+ shaved_stem=stem-hround 2stem_corr;
+ pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+ lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pos3(shaved_stem,-180); pos4(shaved_stem,-180);
+ pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi);
+ pos6(shaved_stem,0); pos7(shaved_stem,0);
+ lft x3r=.5hround u; x7=w-x3; lft x4=hround(w/2-3u); x6=w-x4;
+ pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r;
+ y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3');
+ interim superness:=more_super;
+ filldraw z3'l{right}...z4r{down} & super_arc.r(4,5)
+ & super_arc.r(5,6) & z6r{up}...z7'l{right}
+ --z7r---z7l...z6l{down} & super_arc.l(6,5)
+ & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke
+ if serifs: dish_serif(1,2,a,1/3,1.25jut,b,1/3,1.25jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25jut,d,1/3,1.25jut); fi % lower serif
+ math_fit(-.8*height#*slant-.5u#,.4*height#*slant-1.25u#);
+ else:
+ if cursive and serifs and not monospace:
+ pos4(hair,270); pos6(stem,-20); pos5(stem,270);
+ lft x2r=w-rt x6r=.75u; y2=y6=.5[h,-d]; %left and right bulges
+ x4r=.5[x2r,x6r]; bot y4r=-oo; %bottom
+ pos7(stem,45);
+ top y7r=x_height+o; x7=x6-u; %right tip
+ filldraw circ_stroke z7e{dir(-45)}..{down}z6e;
+ pos10(stem,0); pos9(hair,0); pos8(stem,0); %vertical stroke
+ y10=-d; y9=y2; y8=h; x10=x9=x8=x4;
+ filldraw stroke z10e..z9e{up}..z8e;
+ z5-z9=(x6-x9)*dir(-45);
+ filldraw stroke z4e{right}..z5e..{up}z6e;
+ pos1(stem,220);pos2(stem,200); pos3(stem,270);
+ z3-z9=(x9-x2)*dir(225);
+ filldraw stroke z2e{down}..z3e..{right}z4e;
+ top y1l=x_height+o; %left tip
+ z2-z1=whatever*down;
+ pos0(hair,-90); y0=y1-.5hair; x0=0;
+ path gancio; gancio= z0l..z1l..{down}z2l;
+ pair za, zb;
+ za= direction 0 of gancio; zb=direction 1 of gancio;
+ filldraw z0r{za}..z1r{zb}..{down}z2r--z2l{-down}..z1l..z0l--cycle;
+ pair za, zb; path gancio;
+ elseif cbleipzig:
+ pickup fine.nib;% Dimitri Filippou suggested to have the crossing at pont 4 at
+ pos1(hair,180); %pos2(.5[hair,stem],60);% right angle, but it does not look good!
+ pos3(.9[hair,stem],0); pos7(stem,0);
+ top y2r=h+oo=bot y2l+.5[hair,stem]; x2l=.5[x1l,x3l]; x2r=.5[x1r,x3r];
+ x1r=u/2; x3l=x1l+1.5u; y7=.7bar_height; x7r=x3r;
+ y1l=y3l=y2l-min(1.5stem,bar_height/3);
+ pos4(hair,90); x4=.55w; bot y4l=-oo;
+ pos5(.8[hair,stem],180); pos6(stem,225); pos11(stem,90); z11=z6;
+ y5=bar_height; rt x5l=w-u/2; top y11r = top y2r; z6=z5+wherever*((.6w,asc_height)-z5);
+ filldraw double_circ_stroke
+ z1e{up}...{right}z2e...z3e..{down}z7e..{right}z4e..{up}z5e..z6e;
+ pos10(stem,0); pos9(.3[hair,stem],0); pos8(hair,0); %vertical stroke
+ bot y10-.5stem=-d-o; y9=.25x_height; top y8 + .35hair=h+oo; x10=x9=x8=x4;
+ filldraw double_circ_stroke z10e...z9e...z8e;
+ elseif cbroman:
+ pickup tiny.nib;
+ pos1(stem,0); lft x1l=jut; top y1=h;
+ pos2(stem,0);x1=x2; y2=(rt x4l- lft x2l)/2;
+ pos3(hair,90);x3=w/2; bot y3l=-oo;
+ pos4(stem,180); .5[x4,x2]=x3; y4=y2;pos6(stem,0);z6=z4;
+ pos5(stem,180); .5[x5,x1]=x3; y5=y1;pos7(stem,0);z7=z5;
+ pos8(stem,0);x8=x3; y8=y1;
+ pos9(stem,0);x9=x3; bot y9=-d;
+ filldraw stroke z1e---z2e...{right}z3e...z4e---z5e;
+ filldraw stroke z8e---z9e;
+ serif(1,2,a,1/3,-.8jut);
+ serif(7,6,b,1/3,.8jut);
+ dish_serif(8,9,c,1/3,.8jut,d,1/3,.8jut);
+ dish_serif(9,8,e,1/3,.8jut,f,1/3,.8jut);
+ elseif SansSerif:
+ pickup fine.nib;
+ lft x2r=w-rt x6r=.75u; y2r=y6r=.6x_height; %left and right bulges
+ x4r=.5[x2r,x6r]; bot y4r=-oo; %bottom
+ numeric tilt; tilt:=min(2*otilt,.5);
+ pos2(.8hair,180);pos6(.8hair,0);pos4(.8hair,-90);
+ z6'r=z6'l=up; z2'l=z2'r=down;
+ filldraw stroke z2e{z2'e}..{right}z4e..{z6'e}z6e;
+ top y7=x_height; x4=.5[x1,x7]; %right tip
+ pos7(hair,0);
+ y1=y7; x1-.5stem=hround(lft x2r+.5u); %left tip
+ pos1(stem,180);
+ filldraw stroke z7e...{-z6'e}z6e;
+ filldraw stroke z1e...{z2'e}z2e;
+ pos10(.9stem,0); pos8(.9stem,0); %vertical stroke
+ bot y10=-d; top y8=h; x10=x8=x4;
+ filldraw stroke z10e--z8e;
+ else:
+ pickup fine.nib;
+ lft x2r=w-rt x6r=.75u; y2r=y6r=.6x_height; %left and right bulges
+ x4r=.5[x2r,x6r]; bot y4r=-oo; %bottom
+ numeric tilt; tilt:=min(2*otilt,.5);
+ if monospace:
+ pos2(stem,180); pos4(stem,-90); pos6(stem,0);
+ filldraw stroke z2e{down}..z4e{right}..{up}z6e;
+ else:
+ filldraw stroke gr_arc.e(4,5,6)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(2,3,4)(vair,.4[vair,stem],tilt) ;
+ fi
+ y7+.5hair=x_height+o; x7+.5hair=hround(rt x6r-.75u); %right tip
+ pos7(hair,angle ((z6-z7) xscaled 2)+90);
+ if monospace:
+ filldraw circ_stroke z7e...{down}z6e;
+ else:
+ filldraw circ_stroke z7e...{-z6'e}z6e;
+ fi
+ y1+.5stem=x_height+o; x1-.5stem=hround(lft x2r+.5u); %left tip
+ pos1(stem,angle((z2-z1) xscaled 2)-90);
+ if monospace:
+ filldraw circ_stroke z1e...{down}z2e;
+ else:
+ filldraw circ_stroke z1e...{z2'e}z2e;
+ fi
+ pos10(stem,0); pos9(hair,0); pos8(stem,0); %vertical stroke
+ y10-.5stem=-d-o; y9=.25x_height; y8+.5stem=h+o; x10=x9=x8=x4;
+ filldraw double_circ_stroke z10e..z9e{up}..z8e;
+ fi
+ fi
+enddef;
+
+
+cmchar "Lowercase psi";
+beginchar("y",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;% "Lowercase psi"
+
+
+picture savedpicture; currentbreadth:=0;
+
+
+
+if small_caps: % omega
+ def width = 10u enddef;
+ def height = sclc*x_height enddef;
+else: % OK for all lowercase shapes including cbleipzig and cbroman
+ def width = 12u enddef;
+ def height = x_height enddef;
+fi
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ if small_caps:
+ pickup tiny.nib; pos1(vair,90); pos2(curve,180);
+ pos3(vair,180); pos4(curve,0); pos5(vair,0);
+ x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+ rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+ filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+ numeric arm_thickness; path p; p=z3{up}...{up}z2;
+ arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,vstem] fi);
+ pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+ bot y6r=0; x6=x3; lft x7r=hround .55u; y7=good.y(y6l+.5beak)+eps;
+ (x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+ arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+ pos8(arm_thickness,-90); pos9(fudged.hair,0);
+ y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+ arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+ math_fit(0,.5ic#);
+ numeric pos_stem; % iota sub position
+ pos_stem=rt x9r + if serifs:.5elseif slitex:.4else:.6fi(tiny+ .5[vair,stem])+u;
+ else:
+ if cursive and not SansSerif:
+ if slitex or monospace: pickup fine.nib; fi
+ pos2(stem,-180); pos8(stem,0); lft x2r=w-rt x8r=hround(u-o);
+ y2=y8+.3slant*(x8-x2)=.9bar_height; %left and right bulges
+ if serifs:
+ pos4(hair,0); pos6(hair,180); %left and right of loop
+ else:
+ pos4(.7vair,0); pos6(.7vair,180);
+ fi
+ y4=y6=.2[bar_height,h]; .5[x4,x6]=.5w;
+ x4r-x6r=stem; %.5[flare,vair];
+ bot y3r=bot y7r=-oo; x3=.5[x2,x4];
+ x7 =.5[x6,x8];
+ numeric ang; ang= if serifs:45 else:20 fi;
+ numeric omegaloop; omegaloop=if not serifs: .7 fi stem;
+ pos3(omegaloop,-90-ang); pos7(omegaloop,-90+ang); %left and right bottom
+ top y1r=x_height=top y9r; %left tip
+ x1=.6[x2,.5w]; pos1(hair,180); %left tip
+ x9=.6[x8,.5w]; pos9(hair,0); %right tip
+ filldraw stroke z1e{(z2-z1) xscaled 3}...z2e{down}...z3e{right};
+ filldraw stroke z7e{right}...{up}z8e...{(z9-z8) xscaled 3}z9e;
+ drawloop(3,4,6,7);
+ elseif cbleipzig:
+ pos2(stem,-180); pos8(stem,0); lft x2r=w-rt x8r=hround(u-o);
+ y2=.8bar_height; y8= .7bar_height; %left and right bulges
+ pos4(hair,0); pos6(hair,180); %left and right of loop
+ y4=y6=.8h-stem/2; x4+x6=w;
+ x4r-x6r=.9[hair,stem];
+ bot y3r=bot y7r=-oo; x3=.5[x2,x4];
+ x7 =.5[x6,x8];
+ numeric ang; ang= 10;
+ numeric omegaloop; omegaloop=.1[fine,stem];
+ pos3(omegaloop,-90-ang); pos7(omegaloop,-90+ang); %left and right bottom
+ top y1r=h; %left tip
+ top y9r=h-hair/2;
+ x1=.5[x2,.5w]; pos1(.9[stem,hair],180); %lft tip
+ x9=.5[x8,.5w]+hair/2; pos9(.9[stem,hair],if stem>1.5u:110else:120fi); %rt tip
+ filldraw stroke z1e{(z2-z1) xscaled 5}...z2e{down}...z3e{right};
+ filldraw circ_stroke z9e{(z8-z9) xscaled 4}...z8e{down}...{left}z7e;
+ drawloop(3,4,6,7);
+ elseif cbroman:
+ pos1(hair,90); x1=.5[x2l,x5]; y1r=h+oo;
+ pos2(stem,180);x2r=u/2; y2=h/2;
+ x3r=.5[x2r,x4r]; y3r=-oo=y3l-hair; x3l=.5[x2l,x4l]; z3=.5[z3r,z3l];
+ pos4(hair,0);x4r=x5; y4=.5[y5,y3];
+ pos5(stem,0); x5=w/2; y5=2h/3;
+ pos6(hair,180);
+ x7=w-x3; y7=y3; x7r=w-x3r; x7l=w-x3l; y7r=y3r; y7l=y3l;
+ pos8(stem,0); x8=w-x2; y8=y2;
+ pos9(hair,90);x9=w-x1; y9=y1;
+ z10l=z4l;z10r=z6l; z10=z4r=z6r=.5[z10l,z10r];
+ filldraw circ_stroke z5e---z10e;
+ filldraw circ_stroke z1e{left}...{down}z2e...{right}z3e...{up}z4e;
+ filldraw circ_stroke z9e{right}...z8e{down}...{left}z7e...{up}z6e;
+ elseif SansSerif:
+ pickup fine.nib;
+ pos2(stem,-180); pos8(stem,0); lft x2r=w-rt x8r=hround(u-o);
+ y2=y8=.8bar_height; %left and right bulges
+ pos4(.9stem,0); pos6(.9stem,180);
+ y4=y6=.8bar_height; .5[x4,x6]=.5w; x4l=x6l-.9stem;
+ bot y3r=bot y7r=-oo; x3=.5[x2,x4];
+ x7 =.5[x6,x8];
+ numeric omegaloop; omegaloop=.8stem;
+ pos3(omegaloop,-90); pos7(omegaloop,-90); %left and right bottom
+ top y1r=x_height=top y9r; %left tip
+ x1=.5[x2,.5w]; pos1(1.2stem,180); %lft tip
+ x9=.5[x8,.5w]; pos9(1.2stem,0); %rt tip
+ filldraw stroke z1e{(z2-z1) xscaled 2}...z2e{down}...z3e{right}...{up}z4e;
+ filldraw stroke z6e{down}...z7e{right}...{up}z8e...{(z9-z8) xscaled 2}z9e;
+ x10l=x4l; x10r=x6l; y10l=y10r; bar_height=.5[y10l,y4l];
+ filldraw z4l--z6l--z10r--z10l--cycle;
+ else:
+ pickup fine.nib;
+ pos2(stem,-180); pos8(stem,0); lft x2r=w-rt x8r=hround(u-o);
+ y2=y8=.8bar_height; %left and right bulges
+ if serifs:
+ pos4(hair,0); pos6(hair,180); %left and right of loop
+ else:
+ pos4(.7vair,0); pos6(.7vair,180);
+ fi
+ y4=y6=bar_height; .5[x4,x6]=.5w;
+ x4r-x6r=.5[flare,vair];
+ bot y3r=bot y7r=-oo; x3=.5[x2,x4];
+ x7 =.5[x6,x8];
+ numeric ang; ang= 60;
+ numeric omegaloop; omegaloop=if not serifs: .7 fi stem;
+ pos3(omegaloop,-90-ang); pos7(omegaloop,-90+ang); %left and right bottom
+ top y1r=x_height+o=top y9r; %left tip
+ x1=.5[x2,.5w]; pos1(.2[stem,hair],angle(-.5w,y2-x_height)-90); %lft tip
+ x9=.5[x8,.5w]; pos9(.8[stem,hair],angle(-.5w,x_height-y2)-90); %rt tip
+ filldraw stroke z1e{(z2-z1) xscaled 2}...z2e{down}...z3e{right};
+ filldraw stroke z7e{right}...{up}z8e...{(z9-z8) xscaled 2}z9e;
+ drawloop(3,4,6,7);
+ fi
+ numeric x_baryctr; x_baryctr=.5[x4,x6];
+ numeric pos_stem; pos_stem=x_baryctr; % iota sub position
+ fi
+enddef;
+
+
+cmchar "Lowercase omega";
+beginchar("w",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;% "Lowercase omega"
+
+
+
+iff(not barebones):
+cmchar "Lowercase omega with grave";
+beginchar(oct"260",width#,acc_ht#,0);
+this_letter; if (not small_caps): grave(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with rough breathing";
+beginchar(oct"261",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with smooth breathing";
+beginchar(oct"262",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with grave and iota subscript";
+beginchar(oct"264",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; grave(x_baryctr);fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with rough breathing and iota subscript";
+beginchar(oct"265",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; spirit(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with smooth breathing and iota subscript";
+beginchar(oct"266",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; spirit(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with acute";
+beginchar(oct"270",width#,acc_ht#,0);
+this_letter; if (not small_caps): acute(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with rough breathing and acute";
+beginchar(oct"271",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit_acute(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with smooth breathing and acute";
+beginchar(oct"272",width#,acc_ht#,0);
+this_letter; if (not small_caps): spirit_acute(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with rough breathing and grave";
+beginchar(oct"263",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with smooth breathing and grave";
+beginchar(oct"273",width#,acc_ht#,0);
+this_letter; if not small_caps: spirit_grave(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with rough breathing and grave and iota subscript";
+beginchar(oct"267",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; spirit_grave(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with smooth breathing and grave and iota subscript";
+beginchar(oct"277",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; spirit_grave(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with acute and iota subscript";
+beginchar(oct"274",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; acute(x_baryctr);
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with rough breathing, acute and iota subscript";
+beginchar(oct"275",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; spirit_acute(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with smooth breathing and acute and iota subscript";
+beginchar(oct"276",width#,if small_caps:height#else:acc_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; spirit_acute(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with circumflex";
+beginchar(oct"300",width#,circ_ht#,0);
+this_letter; if (not small_caps):
+squeeze:=false; circumflex(x_baryctr); fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with rough breathing and circumflex";
+beginchar(oct"301",width#,Circ_ht#,0);
+this_letter; if (not small_caps):
+squeeze:=true; spirit_circumflex(x_baryctr)<; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with smooth breathing and circumflex";
+beginchar(oct"302",width#,Circ_ht#,0);
+this_letter; if (not small_caps):
+squeeze:=true; spirit_circumflex(x_baryctr)>; fi endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with circumflex and iota subscript";
+beginchar(oct"304",width#,if small_caps:height#else:circ_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; squeeze:=false; circumflex(x_baryctr);
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with rough breathing, circumflex and iota subscript";
+beginchar(oct"305",width#,if small_caps:height#else:Circ_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; squeeze:=true; spirit_circumflex(x_baryctr)<;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with smooth breathing, circumflex and iota subscript";
+beginchar(oct"306",width#,if small_caps:height#else:Circ_ht#fi,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter; squeeze:=true; spirit_circumflex(x_baryctr)>;
+fi
+iota_sub(pos_stem); endchar;
+
+iff(not barebones):
+cmchar "Lowercase omega with iota subscript";
+beginchar(oct"372",width#,height#,iota_dp#);
+if small_caps:
+ italcorr .75*height#*slant-.5u#;
+ adjust_fit(0,serif_fit#+.5[vair#,stem#]+tiny#
+ if (slitex or (not serifs)):+.5*(.5[vair#,stem#])
+ else:+.7jut# fi+.7u#);
+gen_letter;
+else:
+this_letter;
+fi
+iota_sub(pos_stem); endchar;
+
+%picture pic.iota;
+picture savedpicture; currentbreadth:=0;
+
+
+% digamma
+def dims = if small_caps:
+ 10u#,sclc*x_height#,0
+ else:
+ if cbroman:9.5
+ %elseif cbleipzig:7.5
+ else:9
+ fi
+ u#,%
+ if cbleipzig:asc_height#
+ else:x_height#
+ fi,
+ if cbleipzig:0
+ else:desc_depth#
+ fi
+ fi enddef;
+def ital = 0 enddef;
+def fit_params = if small_caps: serif_fit#,0elseif cbroman: -.5u#,0 else:0,0 fi enddef;
+
+def gen_letter =
+ adjust_fit(fit_params);
+ if small_caps:
+ italcorr height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+ h:=vround(h-stem_corr);
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+ top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-0.6beak)-eps;
+ arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+ pos5(bar,-90); pos6(hair,0);
+ top y5l=vround(.5[y2,y1]+.5bar); x5=x1;
+ pos0(bar,90); pos7(hair,0);
+ z0=z5; x6=x7; y6-y5l=y0l-y7;
+ if serifs:
+ rt x6r=hround(w-4u+.5hair);
+ y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+ else:
+ rt x6r=hround(w-1.5u);
+ y6=y5l+eps;
+ rt x9r=hround(w-.75u);
+ fi
+ arm(5,6,f,beak_darkness,0);
+ arm(0,7,g,beak_darkness,0); % middle arm and serif
+ if serifs:
+ nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); % lower serif
+ fi
+ else:
+ if cursive:
+ if slitex or monospace: pickup fine.nib; fi
+ pos1(stem,0); bot y1=-d; lft x1l=u;
+ pos2(hair,-90); rt x2 + lft x1l=w; top y2l=h;
+ pos3(hair,-90);
+ x3=x1+stem;
+ y3= y2;
+ pos7(.3[hair,stem],0); rt x7r=rt x1r; z3-z7=whatever*(1,1);
+ pos5(hair,90); x5=.5[x1,x7]; pos6(hair,90);
+ y6=y5; top y6r=bar_height;
+ z6-z1=whatever*(z2-z1);
+ filldraw stroke z1e..z7e{up}..{right}z3e..z2e;
+ filldraw stroke z6e..z5e;
+ elseif cbleipzig:
+ italcorr asc_height#*slant-.5u#;
+ pos1(stem,-90); bot y1r=-d; lft x1l-.5stem=0;
+ pos2(.7[hair,stem],-60); z2l=z1l+.3u*dir(10);
+ pos3(hair,0); z3l=z1l+u*dir(45);
+ pos4(hair,0);x3=x4;
+ pos5(.7[hair,stem],-60); z5r=z6r-.3u*dir(10);
+ pos6(stem,-90); z6r=z4r+u*dir(45); top y6l=h;
+ pos7(stem,-90);y7=y6; rt x7l=w-.7u;
+ pos8(.7[hair,stem],90); z8-(w/2,-d)=whatever*(z7-(w/2,-d)); y8=y6-(x_height-4/5bar_height);
+ pos9(.7[hair,stem],90); y9=y8;x9=x3;
+ filldraw circ_stroke z1e{right}...z2e...{up}z3e...{up}z4e...z5e...{right}z6e---z7e;
+ filldraw circ_stroke z8e---z9e;
+ %currentpicture:=currentpicture shifted (slant*d,d);
+ elseif cbroman:
+ h:=vround(h-stem_corr);
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5stem); top y1=h; bot y2=-d;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+ top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-0.6beak)-eps;
+ arm(3,4,e,beak_darkness,.8beak_jut); % upper arm and beak
+ pos5(bar,-90); pos6(hair,0);
+ top y5l=vround(.5[y2,y1]+.5bar); x5=x1;
+ pos0(bar,90); pos7(hair,0);
+ z0=z5; x6=x7; y6-y5l=y0l-y7;
+ z10=z2+whatever*(z4-z2); y10=.5[y6,y7];x6=x10;
+ y6=good.y(y5l+.5beak)+eps;
+ rt x9r=hround(w-.5u);
+ arm(5,6,f,beak_darkness,0);
+ arm(0,7,g,beak_darkness,0); % middle arm and serif
+ serif(1,2,a,1/3,-.8jut); % upper serif
+ dish_serif(2,1,c,1/3,.8jut,d,1/3,jut); % lower serif
+ elseif SansSerif:
+ pickup fine.nib;
+ pos1(stem,0); bot y1=-d; lft x1l=u;
+ pos2(.2[stem,hair],-90); x2+ lft x1l=w; top y2l=h;
+ pos3(.2[hair,stem],-90); % x3=max(.5[x1,x2],x1+stem);
+ x3=x1+stem;
+ y3= y2;
+ pos7(.2[hair,stem],0); rt x7r=rt x1r; z3-z7=whatever*(1,1);
+ pos4(.2[hair,stem],0); pos5(hair,90); x5=x4; pos6(.2[stem,hair],90);
+ rt x4r=rt x1r; y4=.5[bot y6l,y1]; y6=y5; top y6r=bar_height;
+ z6-z1=whatever*(z2-z1);
+ filldraw stroke z1e..z4e{up}..z7e{up}..{right}z3e..z2e;
+ filldraw stroke z6e..{left}z5e;
+ else:
+ if serifs: pickup crisp.nib; else: pickup fine.nib; fi
+ pos1(stem,0); bot y1-.5(stem-currentbreadth)=-d; lft x1l=u;
+ pos2(.2[stem,hair],-90); x2+.5stem + lft x1l=w; top y2l=h;
+ pos3(.2[hair,stem],-90); % x3=max(.5[x1,x2],x1+stem);
+ x3=x1+stem;
+ y3= y2;
+ pos7(.2[hair,stem],0); rt x7r=rt x1r; z3-z7=whatever*(1,1);
+ pos4(.2[hair,stem],0); pos5(hair,90); x5=x4; pos6(.2[stem,hair],90);
+ rt x4r=rt x1r; y4=.5[bot y6l,y1]; y6=y5; top y6r=bar_height;
+ z6-z1=whatever*(z2-z1);
+ filldraw double_circ_stroke z1e..z4e{up}..z7e{up}..{right}z3e..z2e;
+ filldraw circ_stroke z6e..{left}z5e;
+ fi
+ fi
+enddef;
+
+cmchar "Lowercase digamma";
+beginchar(oct"223",dims);
+gen_letter;
+penlabels(0,1,2,3,4,5,6,7,8,9);
+endchar;
+
+currentbreadth:=0;
+
+cmchar "The letter sva"; % per la forma italica bisogna provvedere 19/07/01<<<<<<<<<<<<<<
+% "e" cloned from romanl.mf; added 180 deg. rotation about a suitably chosen z6 or z7 point
+% that takes care of non zero font slant -- strangely enough z6 is not in the center
+% of the original letter "e" if slant<>0
+beginchar(oct"032",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+if cursive or cbleipzig:
+ italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+ adjust_fit(0,0); pickup fine.nib;
+ numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+ pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+ pos3(curve,180); pos4(vair,270); pos5(hair,320);
+ x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+ lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+ y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+ top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+ filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+ z7=(.5[x3r,x5r]+slant[-u/4,3.5u],h/2);
+currentpicture:=currentpicture rotatedaround(z7,180);
+else:
+ numeric left_curve,right_curve;
+ left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+ if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+ if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+ pickup tiny.nib; pos1(right_curve,0);
+ pos2(vair,90); pos3(left_curve,180);
+ y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+ rt x1r=hround min(w-.5u,w-u+.5right_curve);
+ lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+ {{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+ y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+ if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+ else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+ path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+ y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+ forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+ fill stroke z0e--z1'e; % crossbar
+ y6=.5[y2,y4];z6-(w/2,0)=whatever*(slant,1);
+ currentpicture:=currentpicture rotatedaround(z6,180);
+fi
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+
+
+
+currentbreadth:=0;
+
+endinput;
+ÿ
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbmetre.mf b/Master/texmf-dist/fonts/source/public/cb/cbmetre.mf
new file mode 100644
index 00000000000..b33fff61a5b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbmetre.mf
@@ -0,0 +1,892 @@
+% File gmtr.mf
+% Copyright 2001 Claudio Beccari
+% version 1.0 (2001/03/24)
+% Metric symbols and other special signs for greek critical editions
+%
+def m_width=.6[hair,stem] enddef;
+def separator=max(1,vround(1/10x_height)) enddef;
+dot_diam#=dot_size#;dot_diam=dot_size;
+
+cmchar "English Opening quotes";
+beginchar(oct"20",3u#+max(2u#,dot_diam#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5dot_diam=hround(w-.6u+.5dot_diam); y1+.5dot_diam=h-comma_depth;
+x1=w-x2; y2=y1;
+ammoc(1,a,dot_diam,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2);currentbreadth:=0;
+ endchar;
+
+
+cmchar "English Closing quotes";
+beginchar(oct"021",3u#+max(2u#,dot_diam#),asc_height#,0);
+italcorr asc_height#*slant+dot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x1+.5dot_diam=hround(.6u+.5dot_diam); y2+.5dot_diam=h;
+x2=w-x1; y2=y1;
+comma(1,a,dot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2);currentbreadth:=0;
+ endchar;
+
+cmchar "German opening comma";
+beginchar(oct"015",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1);currentbreadth:=0;
+ endchar;
+
+
+cmchar "Reversed comma";
+beginchar(oct"016",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1+.5dot_diam=h-d;
+pickup fine.nib; pos1(dot_size,-90);
+pos21(vair,90); pos22(vair,180); pos23(vair,-135);
+ z21r=z1r; rt x22r=hround(x1+.5dot_size+u/4)+2eps; x23=x1-.5u;
+ y22=1/3[y21,y23]; top y23r=vround(h);
+ filldraw z1r{right}...z1l{left}...cycle; % dot
+ filldraw stroke z21e{right}...z22e{up}...z23e; % tail
+penlabels(1,21,22,23);
+currentbreadth:=0;
+endchar;
+
+
+
+
+cmchar "German closing comma";
+beginchar(oct"023",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1+.5dot_diam=h-comma_depth;
+if monospace: ammoc(1,a,dot_diam,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_diam,.25u,comma_depth); fi % normal ammoc
+penlabels(1); currentbreadth:=0;
+endchar;
+
+
+cmchar "German Opening quotes";
+beginchar(oct"022",3u#+max(2u#,dot_diam#),dot_diam#,comma_depth#);
+italcorr asc_height#*slant+dot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5dot_diam=hround(w-.6u+.5dot_diam); y2-.5dot_diam=0;
+x1=w-x2; y2=y1;
+comma(1,a,dot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+currentbreadth:=0;
+
+
+cmchar "corona";
+beginchar(20,12u#,x_height#,0);
+adjust_fit(0,0);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+bot y2l=-oo;lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+pos5(stem,90);
+pos6(stem,90);pos7(stem,0);
+z6=z7; x6=w/2; bot y6l=bot y2l;
+z5=z6+whatever*(z6r-z6l); top y5r= (rt x3r-lft x1r+.7[hair,stem])/2;
+filldraw z7r...z6r...z7l...z6l...cycle;
+filldraw double_circ_stroke z1e..z5e..z3e;
+penlabels(1,2,3,4,5,6,7,8);
+currentbreadth:=0;
+endchar;
+
+cmchar "corona inversa";
+beginchar(21,12u#,x_height#,0);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+.7[hair,stem])/2;
+pos5(stem,-90); x5=x6=w/2; bot y5r=-oo;
+pos6(stem,90);pos7(stem,0);
+z6=z7;top y6r=top y2r;
+filldraw z7r...z6r...z7l...z6l...cycle;
+filldraw double_circ_stroke z1e..z5e..z3e;
+penlabels(1,2,3,4,5,6,7,8);
+currentbreadth:=0;
+endchar;
+
+cmchar "longa";
+beginchar("l",12u#,x_height#,0);
+adjust_fit(0,0)
+pos1(stem,90); pos2(stem,90);
+bot y1l=-oo=bot y2l; lft x1-stem/2=.75u; rt x2=w-x1;
+filldraw double_circ_stroke z1e--z2e;
+penlabels(1,2);
+currentbreadth:=0;
+endchar;
+
+cmchar "brevis";
+beginchar("b",12u#,x_height#,0);
+adjust_fit(0,0)
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+penlabels(1,2,3,4,5);
+currentbreadth:=0;
+endchar;
+
+cmchar "dupla brevis";
+beginchar("c",12u#,x_height#,0);
+adjust_fit(0,10.5u#-.5[hair#,stem#]);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+picture savedpicture;
+savedpicture:=currentpicture;
+currentpicture:= currentpicture+savedpicture shifted (10.5u-.5[hair,stem],0);
+penlabels(1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+cmchar "brevis sublineata";
+beginchar("d",12u#,x_height#,0);
+adjust_fit(0,0)
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+currentpicture:=currentpicture shifted(0,2stem);
+pos11(stem,90); pos12(stem,90);
+bot y11l=-oo=bot y12l; lft x11-stem/2=.75u; rt x12=w-x11;
+filldraw double_circ_stroke z11e--z12e;
+penlabels(1,2,3,4,5,11,12);
+currentbreadth:=0;
+endchar;
+
+cmchar "longa dupla brevis";
+beginchar("e",12u#,x_height#,0);
+adjust_fit(0,10.35u#-.5[hair#,stem#]);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+picture savedpicture;
+savedpicture:=currentpicture;
+currentpicture:= currentpicture+savedpicture shifted (10.35u-.5[hair,stem],0);
+currentpicture:=currentpicture shifted(0,2stem);
+pos11(stem,90); pos12(stem,90);
+bot y11l=-oo=bot y12l; lft x11-stem/2=.75u; rt x12=w-x11+10.35u-.5[hair,stem];
+filldraw double_circ_stroke z11e--z12e;
+penlabels(1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "apicata longa dupla brevis";
+beginchar("f",12u#,x_height#,0);
+adjust_fit(0,14.5u#-.5[hair#,stem#]);
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+filldraw double_circ_stroke z1e..z5e..z3e;
+picture savedpicture;
+savedpicture:=currentpicture;
+currentpicture:= currentpicture+savedpicture shifted (14.5u-.5[hair,stem],0);
+pos21(.5[hair,stem],0); pos22(.5[hair,stem],0);
+bot y21=-oo+hair/2;
+bot y22r=x_height-2stem;
+x21=x22=.5[x3,x1+14.5u-.5[hair,stem]];
+filldraw double_circ_stroke z21e--z22e;
+currentpicture:=currentpicture shifted(0,2stem);
+pos11(stem,90); pos12(stem,90);
+bot y11l=-oo=bot y12l; lft x11-stem/2=.75u; rt x12=w-x11+14.5u-.5[hair,stem];
+filldraw double_circ_stroke z11e--z12e;
+penlabels(1,2,3,4,5,6,11,12,21,22);
+currentbreadth:=0;
+endchar;
+
+
+
+cmchar"Longa sublineata breve";
+beginchar(oct"153",12u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+pos1(stem,90); pos2(stem,90);
+bot y1l=-oo=bot y2l; lft x1-stem/2=.75u; rt x2=w-x1;
+filldraw double_circ_stroke z1e--z2e;
+pos3(.7[hair,stem],180);
+pos4(.7[hair,stem],90);
+z3=z4;
+top y4r=-separator;lft x3r=.75u;
+pos5(.7[hair,stem],0);
+pos6(.7[hair,stem],90);
+z5=z6;
+y6=y4; rt x5r=w-lft x3r;
+pos7(stem,-90); x7=w/2; top y7l=-d;
+filldraw double_circ_stroke z3e...z7e...z5e;
+penlabels(1,2,3,4,5,6,7);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "brevis superlineata";
+beginchar("i",12u#,x_height#,0);
+adjust_fit(0,0)
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+pos6(stem,90); pos7(stem,90);
+x6=x1r+stem/2;x5=.5[x6,x7]; y6=y7=y1+2stem;
+filldraw double_circ_stroke z1e..z5e..z3e;
+filldraw double_circ_stroke z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+currentbreadth:=0;
+endchar;
+
+cmchar "dupla brevis superlineata";
+beginchar("j",12u#,bar_height#+2stem#,0);
+adjust_fit(0,9.5u#)
+pos1(.7[hair,stem],180);
+pos2(.7[hair,stem],90);
+z1=z2;
+lft x1r=.75u;
+pos3(.7[hair,stem],0);
+pos4(.7[hair,stem],90);
+z3=z4;
+y4=y2; rt x3r=w-lft x1r;
+top y2r=(rt x3r-lft x1r+ .7[hair,stem])/2;
+pos5(stem,-90); x5=w/2; bot y5r=-oo;
+pos6(stem,90); pos7(stem,90);
+x6=x1r+stem/2;x4=.5[x6,x7]; y6=y7=y1+2stem;
+filldraw double_circ_stroke z1e..z5e..z3e;
+addto currentpicture also currentpicture shifted (z3-z1);
+filldraw double_circ_stroke z6e--z7e;
+penlabels(1,2,3,4,5,6,7);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "anceps";
+beginchar("X",9.5u#,x_height#,0);
+adjust_fit(0,0);
+numeric Xstem; Xstem=m_width;
+pos1(Xstem,135);pos2(Xstem,135);
+pos3(Xstem,45); pos4(Xstem,45);
+z0=.5[z1,z2]=.5[z3,z4];
+bot y1l=oo; lft x1r=u;
+y3=y1;x1+x3=w;
+z0=z1+whatever*dir(45)=z3+whatever*dir(135);
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+penlabels(0,1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+cmchar "anceps superlineata";
+beginchar("Y",9.5u#,asc_height#,0);
+adjust_fit(0,0);
+numeric Xstem; Xstem=m_width;
+pos1(Xstem,135);pos2(Xstem,135);
+pos3(Xstem,45); pos4(Xstem,45);
+z0=.5[z1,z2]=.5[z3,z4];
+bot y1l=oo; lft x1r=u;
+y3=y1;x1+x3=w;
+z0=z1+whatever*dir(45)=z3+whatever*dir(135);
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+pos5(Xstem,90); pos6(Xstem,90);
+x5=x4; x6=x2; y5l=y6l=y4r+stem;
+filldraw double_circ_stroke z5e--z6e;
+penlabels(0,1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+cmchar "anceps dupla breve supersignata";
+beginchar("Z",9.5u#,asc_height#,0);
+adjust_fit(0,0);
+numeric Xstem; Xstem=m_width;
+pos1(Xstem,135);pos2(Xstem,135);
+pos3(Xstem,45); pos4(Xstem,45);
+z0=.5[z1,z2]=.5[z3,z4];
+bot y1l=oo; lft x1r=u;
+y3=y1;x1+x3=w;
+z0=z1+whatever*dir(45)=z3+whatever*dir(135);
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+pos5(Xstem,0); pos6(Xstem,90); pos7(Xstem,180);
+pos8(Xstem,0); pos9(Xstem,90); pos10(Xstem,180);
+y5=y7=top y4r+.4(y4-y1)+Xstem/2; bot y6l=top y4r+Xstem/2;
+x5l=x4l; x7=x0; x6=.5[x5,x7];
+z8=z7=.5[z5,z10]; x0=.5[x6,x9]; y9=y6;
+filldraw double_circ_stroke z5e{down}...z6e...{up}z7e;
+filldraw double_circ_stroke z8e{down}...z9e...{up}z10e;
+penlabels(0,1,2,3,4,5,6,7,8,9,10);
+currentbreadth:=0;
+endchar;
+
+
+
+cmchar"catalepsis";
+beginchar("g", 10u#,0,desc_depth#);
+adjust_fit(0,0);
+pair za,zb; za=(w/2,0)-(0,-d);zb=za xscaled-1;
+numeric cat_width;cat_width=.6[hair,stem];
+pos1(cat_width,angle(za)+90);pos2(cat_width,angle(za)+90);
+pos3(cat_width,angle(zb)-90);pos4(cat_width,angle(zb)-90);
+lft x1r=.75u; rt x4r=w-lft x1r;
+bot y1l=-d-oo; bot y4l=bot y1l;
+z2=z3;x2=w/2;top y2r=h+oo;
+filldraw double_circ_stroke z1e--z2e; filldraw double_circ_stroke z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "ipercatalepsis";
+beginchar("h",8u#,asc_height#,0);
+adjust_fit(0,0);
+numeric ic_w,arm; ic_w=.6[hair,stem];arm=(3/4w-ic_w)/2;
+z0=(w/2,h-arm);
+pos1(ic_w,90); pos2(ic_w,90);
+y0=y1=y2; x1=x0-arm; x0=.5[x1,x2];
+pos3(ic_w,0); pos4(ic_w,0);
+x3=x4=x0;y0=.5[y3,y4]; y4=y0+arm;
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+penlabels(0,1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "sinafia";
+beginchar("s",6u#,asc_height#,0);
+adjust_fit(.5u#,.5u#);
+numeric sin_width,raggio;
+sin_width=.6[hair,stem];
+pos1(sin_width,0); pos2(sin_width,90);pos3(sin_width,180);
+pos4(sin_width,270);pos5(sin_width,0);
+top y2r=h+00;top y4l=x_height-oo; raggio=(y2-y4)/2; z0=(w/2,.5[y2,y4]);
+z5=z1=z0+(raggio,0); x2=x0=x4; z0=.5[z1,z3];
+pos6(sin_width,0); pos7(sin_width,0);
+z6=z4; x7=x6; y7=-oo-sin_width/2;
+filldraw stroke z1e{up}...z2e...z3e...z4e...{up}z5e;
+filldraw circ_stroke z7e--z6e;
+penlabels(0,1,2,3,4,5,6,7);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "uncinata clausa";
+beginchar(">",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric q_w,angolo; q_w=.5[hair,stem];angolo=55;
+pos1(q_w,0); x1r=w-.75u; y1r=.5[h,-d];
+pos2(q_w,90-angolo);
+z2=z1+whatever*dir(-angolo);x2l=.75u;
+pos3(q_w,-90+angolo); z3=z1+whatever*dir(angolo); x3l=x2l;
+filldraw stroke z2e--z1e--z3e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "uncinata aperta";
+beginchar("<",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric q_w,angolo; q_w=.5[hair,stem];angolo=55;
+pos1(q_w,180); x1r=.75u; y1r=.5[h,-d];
+pos2(q_w,angolo+90);
+z2=z1+whatever*dir(angolo);x2l=w-.75u;
+pos3(q_w,-90-angolo); z3=z1+whatever*dir(-angolo); x3l=x2l;
+filldraw stroke z2e--z1e--z3e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+
+cmchar "quadra aperta";
+beginchar("[",6u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric q_w; q_w=.6u;
+z1=.5[z1r,z1l]; z1l=z1r-(0,q_w);
+z2=.5[z2r,z2l]; z2l=(x2r+q_w,y2r-q_w);
+z3=.5[z3r,z3l]; z3l=(x3r+q_w,y3r+q_w);
+z4=.5[z4r,z4l]; z4l=z4r+(0,q_w);
+x1=x4=w-.75u; x2r=x3r=.75u;
+y1=y2=1.05h;y3r=y4r=-d;
+filldraw stroke z1e--z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "quadra clausa";
+beginchar("]",6u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric q_w; q_w=.6u;
+z1=.5[z1r,z1l]; z1l=z1r-(0,q_w);
+z2=.5[z2r,z2l]; z2l=z2r-(q_w,q_w);
+z3=.5[z3r,z3l]; z3l=z3r+(-q_w,q_w);
+z4=.5[z4r,z4l]; z4l=z4r+(0,q_w);
+x1=x4=.75u; x2r=x3r=w-.75u;
+y1=y2=1.05h;y3r=y4r=-d;
+filldraw stroke z1e--z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "media quadra aperta inferior";
+beginchar("!",4u#,bar_height#,desc_depth#+.6stem#);
+adjust_fit(0,0);
+numeric q_w; q_w=.4[hair,stem];
+pos2(q_w,180);
+z3=.5[z3r,z3l]; z3l=(x2l,y4l);
+pos4(q_w,-90);
+x4=4.5u+x2r; x2=x3=.65w;
+y2=h;y3r=y4r=-d;
+filldraw stroke z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+cmchar "media quadra aperta superior";
+beginchar("?",4u#,asc_height#+.75stem#,0);
+adjust_fit(0,0);
+numeric q_w; q_w=.4[hair,stem];
+pos2(q_w,180);
+z3=.5[z3r,z3l]; z3l=(x2l,y4l);
+pos4(q_w,90);
+x4=4.25u+x2; x2=x3=.65w;
+y2=bar_height;y3=y4=h;
+filldraw stroke z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "media quadra clausa inferior";
+beginchar(":",4u#,bar_height#,desc_depth#+.6stem#);
+adjust_fit(0,0);
+numeric q_w; q_w=.4[hair,stem];
+pos2(q_w,0);
+z3=.5[z3r,z3l]; z3l=(x2l,y4l);
+pos4(q_w,-90);
+x4=-4.5u+x2r; x2=x3=.65w;
+y2=h;y3r=y4r=-d;
+filldraw stroke z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+cmchar "media quadra clausa superior";
+beginchar(";",4u#,asc_height#+.75stem#,0);
+adjust_fit(0,0);
+numeric q_w; q_w=.4[hair,stem];
+pos2(q_w,0);
+z3=.5[z3r,z3l]; z3l=(x2l,y4l);
+pos4(q_w,90);
+x4=-4.5u+x2r; x2=x3=.65w;
+y2=bar_height;y3=y4=h;
+filldraw stroke z2e--z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Finis Carmen";
+beginchar("F", asc_height#+desc_depth#+1.5u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric raggio; raggio=(h+d)/2-m_width/2;
+z0=(w/2,.5[h,-d]);
+pos1(m_width,0);pos2(m_width,90);pos3(m_width,180);pos4(m_width,270);pos5(m_width,360);
+z0=.5[z1,z3]=.5[z2,z4]=.5[z6,z7]=.5[z8,z9]; z1=z5;
+z1=z0+(raggio,0); z2=z0+(0,raggio);
+pos6(m_width,135);pos7(m_width,135);
+z6=z0+(raggio,0)rotated45;
+pos8(m_width,45);pos9(m_width,45);
+z8=z0+(raggio,0)rotated-45;
+filldraw stroke z1e...z2e...z3e...z4e...z5e;
+filldraw stroke z6e--z7e;
+filldraw stroke z8e--z9e;
+penlabels(0,1,2,3,4,5,6,7,8,9);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "circumflexus latinus";
+beginchar("^",8u#,0,desc_depth#);
+adjust_fit(0,0);
+numeric chair; chair=.5[hair,stem];
+numeric angolo; angolo=angle((w/2,0)-(0,-d));
+pos1(chair,angolo+90);
+pos2(chair/(cosd angolo),90);
+pos3(chair,90-angolo);
+x2=w/2=.5[x1r,x3r]; top y2r=h; bot y1l=y3l=-d;
+lft x1r=.5u;
+filldraw double_circ_stroke z1e--z2e--z3e;
+penlabels(1,2,3);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(u#,-u#); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); currentbreadth:=0;
+currentbreadth:=0;
+endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,-u#); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3);currentbreadth:=0;
+currentbreadth:=0;
+endchar;
+
+currentbreadth:=0;
+
+cmchar "Crux";
+beginchar(oct"171",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+numeric bstem; bstem=1.3stem;
+pos1(bstem,0); pos2(thin_join,0); pos3(1.2bstem,0); pos4(hair,0); pos7(hair,0);
+pos5(bstem,90); pos2'(thin_join,90); pos6(bstem,90); z2'=z2;
+x1=x2=x3=x4=x7; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x5-.5stem=hround u; x6=w-x5;
+y1+.5stem=h+oo; y2=y5=y6; y3=.57y2; bot y4=-d+hair;
+y5+.5stem=floor(x_height+.5stem);y3=.5[y2,y7];
+filldraw circ_stroke z1e{down}..z2e{down}..z3e; % upper stem
+filldraw circ_stroke z4e--z7e{up}..z3e;% lower stem
+filldraw circ_stroke z5e{right}..{right}z2'e; % left bulb
+filldraw circ_stroke z6e{left}..{left}z2'e; % right bulb
+penlabels(1,2,3,4,5,6,7); currentbreadth:=0;
+endchar;
+
+
+
+% minimum distance between vowel and accent
+def separator=max(1,vround(x_height/10)) enddef;
+
+def grave(expr center) =
+numeric acc_sgn,acc_displ; acc_displ:=center;
+ acc_sgn:=+1;
+generate_grave;
+enddef;
+
+def acute(expr center) =
+numeric acc_sgn,acc_displ; acc_displ:=center;
+ acc_sgn:=-1;
+generate_grave;
+enddef;
+
+% The next definition draws both the grave (as its name suggests) and the
+% acute accents, the difference being the value of acc_sgn, where
+% acc_sgn=+1 tilts the accent to the left (grave)
+% acc_sgn=-1 tilts the accent to the right (acute)
+% acc_sgn=0 does not tilt the accent (monotoniko)
+
+vardef generate_grave=
+ numeric accent_tilt, alto, basso; accent_tilt:=30;
+ alto:=h; basso:=vround .8[h,x_height];
+ 1/3[x22,x21]=acc_displ;
+ accent_tilt:= acc_sgn*(accent_tilt+angle(alto-basso,.5currentbreadth));
+ pos22(max(stem/5,currentbreadth+eps),accent_tilt); pos21(stem,accent_tilt);
+ bot y22=basso; top y21+.5stem=alto;
+ z21-z22=whatever*dir(90+accent_tilt);
+ filldraw circ_stroke z21e--z22e; % diagonal
+penlabels(21,22);
+currentbreadth:=0;
+enddef;
+
+
+cmchar "Left apex";
+beginchar("`",4u#,acc_ht#,0);
+adjust_fit(0,0);
+numeric center;
+numeric acc_sgn; acc_sgn:=+1;
+grave(2/3w);
+currentbreadth:=0;
+endchar;
+
+cmchar "Right apex";
+beginchar("'",4u#,acc_ht#,0);
+adjust_fit(0,0);
+numeric center;
+numeric acc_sgn; acc_sgn:=-1;
+acute(2/3w);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Hyatus";
+beginchar("H",6u#,asc_height#,0);
+adjust_fit(0,0);
+numeric Hstem, Hd; Hstem=.5stem; Hd=.37h;
+pos1(Hstem,0);pos2(Hstem,0);pos3(Hstem,0);pos4(Hstem,0);pos5(Hstem,90);pos6(Hstem,90);
+top y1=top y3=h; bot y2=bot y4=Hd; y5=y6=.55[bot y2, top y1];
+lft x1l = lft x2l = x5= w-rt x3r=w-rt x4r= w-x6= .75u;
+filldraw stroke z1e--z2e;
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+currentpicture:=currentpicture shifted (0,.5bar_height);
+penlabels(1,2,3,4,5,6);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Ring";
+beginchar(oct"032",4u#,0,desc_depth#);
+adjust_fit(0,0);
+numeric raggio,rw ; raggio=(d/2-separator); rw=.25[fine,stem];
+pickup pencircle scaled rw;
+z0=(w/2,-separator-raggio-rw);
+.5[z1,z2]=z0;z1=z0+(0,1.05raggio);
+draw z1...z2...cycle;
+penlabels(0,1,2,3,4,5);
+currentbreadth:=0;
+endchar;
+
+
+cmchar "Dot";
+beginchar(oct"033",3u#,0,desc_depth#);
+adjust_fit(0,0);
+numeric raggio,rw ; raggio=stem; rw=.3stem;
+z0=(w/2,-separator-raggio);
+pos1(rw,0); pos2(rw,90 );pos3(rw,180); pos4(rw,-90 );
+z1r-z0=(raggio,0); z2r-z0=(0,raggio);
+z0=.5[z1,z3]=.5[z2,z4];
+filldraw z1r...z2r...z3r...z4r...cycle;
+penlabels(0,1,2,3,4,5);
+currentbreadth:=0;
+endchar;
+
+
+cmchar"Hemiobelion";
+beginchar("A",7.5u#,x_height#,0);
+adjust_fit(0,0);
+z0=(w/2+.75u,h/2);
+numeric raggio; raggio=h/2-m_width/2;
+pos1(m_width,60); pos2(m_width,-60); pos3(m_width,180);
+z1=z0+raggio*dir(60); z2=z0+raggio*dir(-60); z3=z0-(raggio,0);
+filldraw double_circ_stroke z1e...z3e...z2e;
+penlabels(0,1,2,3);
+currentbreadth:=0;
+endchar;
+
+cmchar"Tetartemorion";
+beginchar("B",7.5u#,x_height#,0);
+adjust_fit(0,0);
+z0=(w/2-.75u,h/2);
+numeric raggio; raggio=h/2-m_width/2;
+pos1(m_width,120); pos2(m_width,-120); pos3(m_width,0);
+z1=z0+raggio*dir(120); z2=z0+raggio*dir(-120); z3=z0+(raggio,0);
+filldraw double_circ_stroke z1e...z3e...z2e;
+penlabels(0,1,2,3);
+currentbreadth:=0;
+endchar;
+
+cmchar"Stater";
+beginchar("C",8u#,asc_height#,0);
+adjust_fit(0,0);
+z0=(w/2,h/2)=.5[z1,z4]=.5[z2,z3]; z.a=dir(-10); z.b=dir(40);
+pos2(m_width,angle(z.a)-90);pos3(m_width,angle(z.a)-90);
+pos22(m_width,angle(z.b)+90);pos33(m_width,angle(z.b)+90);
+z22=z2;z33=z3;
+z2=z0+whatever*z.a; x22r=.75u=x4r;
+pos1(m_width,angle(z.b)+90);pos4(m_width,angle(z.b)+90);
+z4=z3+whatever*z.b;
+filldraw double_circ_stroke z1e--z22e;
+filldraw double_circ_stroke z2e--z3e;
+filldraw double_circ_stroke z33e--z4e;
+penlabels(0,1,2,3,4,5,6,7,22,33);
+currentbreadth:=0;
+endchar;
+
+cmchar"Dracma";
+beginchar("D",10u#,cap_height#,0);
+adjust_fit(0,0);
+pos1(m_width,0);pos2(m_width,0);pos3(m_width,90);pos4(m_width,90);
+x1l=.75u=x2l=w-x4; y1=0;y2=h;
+filldraw stroke z1e--z2e;
+y3=y4=h/2; x3=x1;
+filldraw stroke z3e--z4e;
+penlabels(1,2,3,4,5);
+currentbreadth:=0;
+endchar;
+
+cmchar"Denarius";
+beginchar("E",14u#,asc_height#,0);
+adjust_fit(0,0);
+z0=(w/2,h/2)=.5[z1,z4]=.5[z2,z5]=.5[z3,z6];
+numeric raggio; raggio=max(w/2,h/(2cosd45))-m_width/2;
+z1=z0+raggio*dir(45); z2=z0+raggio*dir(135); z3=z0+whatever*dir(180); x3=x2;
+pos1(m_width,angle(z1-z0)+90);
+pos2(m_width,angle(z2-z0)+90);
+pos3(m_width,angle(z3-z0)+90);
+pos4(m_width,angle(z1-z0)+90);
+pos5(m_width,angle(z2-z0)+90);
+pos6(m_width,angle(z3-z0)+90);
+filldraw double_circ_stroke z1e--z4e;
+filldraw double_circ_stroke z2e--z5e;
+filldraw double_circ_stroke z3e--z6e;
+penlabels(0,1,2,3,4,5,6,7,8);
+currentbreadth:=0;
+endchar;
+
+
+cmchar"Etos";
+beginchar("G",11.75u#,x_height#,0);
+adjust_fit(0,0);
+pos1(m_width,0); pos2(m_width,0); pos3(m_width,90); pos4(m_width,90);
+z2=z3; x1l=x2l=.75u; y1=1.25h; y3l=y4l=0; x4-x3=y1-y2;
+filldraw double_circ_stroke z1e--z2e;
+filldraw double_circ_stroke z3e--z4e;
+penlabels(1,2,3,4);
+currentbreadth:=0;
+endchar;
+
+cmchar"slopingzeugma";
+beginchar(oct"170",17u#,asc_height#,0);
+adjust_fit(0,0);
+z1r=(.75u,.8[x_height,h]);
+z3r=(w-x1r,x_height);
+numeric angolo; angolo=angle((z3r-z1r));
+y2r=h;z2r=(w/2,x_height)+whatever*dir(90-2angolo);
+pos1(m_width,135+angolo);
+pos2(stem,90);
+pos3(m_width,45+angolo);
+filldraw double_circ_stroke z1e..z2e{right}..z3e;
+currentpicture:=currentpicture shifted (0,(h-x_height)/2);
+penlabels(0,1,2,3,4,5);
+endchar;
+
+cmchar"raisingzeugma";
+beginchar(oct"172",17u#,asc_height#,0);
+adjust_fit(0,0);
+z1r=(.75u,x_height);
+z3r=(w-x1r,.8[x_height,h]);
+numeric angolo; angolo=angle((z3r-z1r));
+y2r=h;z2r=(w/2,x_height)+whatever*dir(90-2angolo);
+pos1(m_width,135+angolo);
+pos2(stem,90);
+pos3(m_width,45+angolo);
+filldraw double_circ_stroke z1e..z2e{right}..z3e;
+currentpicture:=currentpicture shifted (0,(h-x_height)/2);
+penlabels(0,1,2,3,4,5);
+endchar;
+
+
+
+cmchar"Base eolica 2";
+beginchar(oct"111",14u#,x_height#,0);
+adjust_fit(0,0);
+pickup pencircle scaled m_width;
+.5[z0,z1]=(w/2,h/2); y0=h/2; x1-x0=w/2;
+numeric raggio; raggio=(x1-x0)/2-m_width;
+z0=.5[z2,z3];z1=.5[z4,z5];
+z2=z0+(0,raggio);z4=z1+(0,raggio);
+draw z2{right}...z3{left}...cycle;
+draw z4{right}...z5{left}...cycle;
+penlabels(0,1,2,3,4,5,6,7,8);
+currentbreadth:=o;
+endchar;
+
+cmchar"Base eolica 3";
+beginchar(oct"112",21u#,x_height#,0);
+adjust_fit(0,0);
+pickup pencircle scaled m_width;
+z10=(3.5u,h/2); z11=z10+(7u,0); z12=z11+(7u,0);
+numeric raggio; raggio=(x11-x10)/2-m_width;
+z10=.5[z2,z3];z11=.5[z4,z5];z12=.5[z6,z7];
+z2=z10+(0,raggio);z4=z11+(0,raggio);z6=z12+(0,raggio);
+draw z2{right}...z3{left}...cycle;
+draw z4{right}...z5{left}...cycle;
+draw z6{right}...z7{left}...cycle;
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12);
+currentbreadth:=o;
+endchar;
+
+cmchar"Base eolica 4";
+beginchar(oct"113",28u#,x_height#,0);
+adjust_fit(0,0);
+pickup pencircle scaled m_width;
+z10=(3.5u,h/2); z11=z10+(7u,0); z12=z11+(7u,0);z13=z12+(7u,0);
+numeric raggio; raggio=(x11-x10)/2-m_width;
+z10=.5[z2,z3];z11=.5[z4,z5];z12=.5[z6,z7];z13=.5[z8,z9];
+z2=z10+(0,raggio);z4=z11+(0,raggio);z6=z12+(0,raggio);z8=z13+(0,raggio);
+draw z2{right}...z3{left}...cycle;
+draw z4{right}...z5{left}...cycle;
+draw z6{right}...z7{left}...cycle;
+draw z8{right}...z9{left}...cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13);
+currentbreadth:=o;
+endchar;
+
+ligtable oct"111": oct"111"=:oct"112";
+ligtable oct"112": oct"111"=:oct"113";
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbpunct.mf b/Master/texmf-dist/fonts/source/public/cb/cbpunct.mf
new file mode 100644
index 00000000000..11f370b33a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbpunct.mf
@@ -0,0 +1,435 @@
+% cbpunct.mf
+% Copyright (C) 1997,1998,1999, 2000,2002 Claudio Beccari
+% version 2.3c 2002/11/24
+%
+% Most of these glyphs were designed by Silvio Levy; CB modified and
+% "corrected" most of them in order to be valid for all family, series, and
+% shapes; he added also the per mill and the euro signs, plus two invisible
+% characters. For the CB romanstyle Greek alphabet he modified the open and
+% closed quotes so as to look like the "English" raised quotes; may be this
+% is a little detail that breaks up with Greek typesetting tradition, but
+% this is what appears with no doubts from the printed pages of the magazine
+% Nemecis, where CB got the idea of the CB romanstyle Greek fonts.
+%
+%%% Punctuation marks
+
+cmchar "Open quotes (eisagwgik'a)";
+beginchar("{",if cbroman:7u#+max(2u#,dot_size#),asc_height#,0else:9u#,x_height#,0fi);
+ adjust_fit(0,0);
+ if cbroman:
+ italcorr asc_height#*slant-.1u#;
+ adjust_fit(0,0);
+ x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+ x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+else:
+ pickup fine.nib;
+ numeric centro, alto;
+ centro=if monospace: vair else: stem fi;
+ alto=vair;
+ pos0(alto,0); pos1(centro,0); pos2(alto,0);
+ pos3(alto,0); pos4(centro,0); pos5(alto,0);
+ top y0=h+o; bot y2=-o;
+ y0=y3;
+ y1=y4=.5[y0,y2];
+ y2=y5;
+ lft x1l =u;
+ rt x3r = w - u;
+ lft x4l- rt x1r=lft x3l - rt x0r = centro + .7fine;
+ x0=x2;
+ x3=x5;
+ filldraw stroke z0e--z1e--z2e;
+ filldraw stroke z3e--z4e--z5e;
+fi
+penlabels(0,1,2,3,4,5);
+endchar;
+
+cmchar "Close quotes (eisagwgik'a)";
+beginchar("}",if cbroman:7u#+max(2u#,dot_size#),asc_height#,0else:9u#,x_height#,0fi);
+ adjust_fit(0,0);
+ if cbroman:
+ italcorr asc_height#*slant+dot_size#-4.1u#;
+ adjust_fit(0,0);
+ x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+ x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+else:
+ pickup fine.nib;
+ numeric centro, alto;
+ centro=if monospace: vair else: stem fi;
+ alto=vair;
+ pos0(alto,0); pos1(centro,0); pos2(alto,0);
+ pos3(alto,0); pos4(centro,0); pos5(alto,0);
+ top y0=h+o; bot y2=-o;
+ y0=y3;
+ y1=y4=.5[y0,y2];
+ y2=y5;
+ lft x0l =u;
+ rt x4r = w - u;
+ lft x4l- rt x1r=lft x3l - rt x0r = centro + .7fine;
+ x0=x2;
+ x3=x5;
+ filldraw stroke z0e--z1e--z2e;
+ filldraw stroke z3e--z4e--z5e;
+fi
+penlabels(0,1,2,3,4,5);
+endchar;
+
+
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+cmchar"Euro";
+beginchar(24,if slitex:11 else:14fi u#,cap_height#,0); %Inizialmente ''12u#,body_height,0''
+adjust_fit(0,if monospace:0 else: -u# fi);
+italcorr slant*body_height#-.5u#;
+numeric spess,diagon,penspess;
+pair za, zb, zc, zd;
+numeric raggio; raggio=.5*(min(w,h)-stem);
+spess=.5[hair,stem]; if 2spess+fine > raggio: spess:=.6spess fi;
+ penspess:=fine; % Trick to cope with very small sizes, typically 5pt;
+ if spess<=fine:
+ penspess:=.9spess;
+ fi
+ currentbreadth:=penspess;
+ pickup pencircle scaled penspess;
+x0=7/12w=xpart zd; y0=if monospace: 1.2* fi raggio+.5stem;
+zb=z0+raggio*dir(45); xpart zc=x0-raggio; ypart zc=0=ypart zd; za=.9[zc,zd];
+diagon=angle(zb-za);
+pos1(spess,diagon); pos2(spess,diagon); pos3(spess,diagon); pos4(spess,diagon);
+pos9(stem,180); pos10(stem,90); pos11(stem,diagon);
+pos12(stem,-90); pos13(stem,-90);
+zc:= whatever[zb,za]; ypart zc=y0;
+z1-z3 = whatever*up;
+z2-z4=whatever*dir(diagon); .5[z2,z4]=zc;
+lft x1l=0;
+x11r=x13r; x12=x10;
+y2l-y4r=.5[if serifs:hair else: fine fi,stem]; y2=y1; y3=y4;
+x9=x0-raggio;
+y0=y9=.5[y12,y10]=.5[y11,y13];
+z11=z0+raggio*dir(45);
+z10=z0+if monospace: 1.2* fi raggio*dir(90);
+%bot y12r=-o;
+%
+filldraw stroke z1e--z2e; % upper stroke
+filldraw stroke z3e--z4e; % lower stroke
+filldraw stroke z11e..{left}z10e..z9e..z12e{right}..z13e; % arc
+numeric raggio,spess,diagon;
+pair za, zb, zc, zd;
+penlabels(0,1,2,3,4,9,10,11,12,13);
+endchar;
+
+
+cmchar "Per mill sign";
+beginchar(25,15u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr .4asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5(w-6u)-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+fill top z1r{left}...lft z2r...bot z3r{right}...rt z4r...cycle;
+unfill bot z1l{left}...rt z2l...top z3l{right}...lft z4l...cycle;
+picture p_zero; p_zero=currentpicture;
+numeric x_dev; x_dev:=(d+bot y3r)*slant;
+addto currentpicture also p_zero shifted (8u-x_dev,-d-bot y3r);
+addto currentpicture also p_zero shifted (14u-x_dev,-d-bot y3r);
+picture p_zero; numeric x_dev;
+%
+%
+pickup rule.nib; top y5=h; bot y6=-d;
+if hefty:
+ x5=good.x(x1+8u -eps); x6=good.x(x1+eps);
+ draw z5--z6; % diagonal
+else:
+ rt x5=hround(w-8.5u); lft x6=hround 2.5u; draw z5--z6; % diagonal
+ numeric deviat; deviat:=60; pickup fine.nib;
+ pos5(rule_thickness,angle(z5-z6)+deviat);
+ path p[]; p1= z1r{right}...{down}z4r; z9=point 1/3 of p1;
+ p2= z1l{right}...{down}z4l; z10=point 1/3 of p2; z7=.5[z9,z10];
+ pos7(max(length(z9-z10),currentbreadth+eps),angle(z9-z10));
+ pos8(vair,angle(z5-z6)+deviat); z8r=z5r;
+ filldraw stroke z7e{direction 1/3 of p1}...{z5-z6}z8e; % link
+ numeric deviat; path p[];
+fi
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+
+
+def dims = 5u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+enddef;
+
+cmchar "Apostrophe";
+beginchar(oct"035",dims);
+this_letter; penlabels(1); endchar;
+
+picture savedpicture;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "'Anw tele'ia";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+penlabels(1,2); endchar;
+
+cmchar "Question mark";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar("?",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Reverse apostrophe";
+beginchar(oct"034",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "En dash";
+beginchar(oct"000",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Em dash";
+beginchar(oct"177",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "void char - compound word marker";
+beginchar("v",eps*u#,x_height#,0);
+%adjust_fit(0,0);
+%charwd:=0; r:=l-shrink_fit;
+endchar;
+
+cmchar "null char";
+beginchar(159,eps*u#,0,0); % hexadecimal "9F
+%adjust_fit(0,0);
+%charwd:=0; r:=l-shrink_fit;
+endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbspline.mf b/Master/texmf-dist/fonts/source/public/cb/cbspline.mf
new file mode 100644
index 00000000000..8bdeff88bfb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbspline.mf
@@ -0,0 +1,112 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% The copyright holds only for the file that enucleates the spline macros,
+% not for the macros themselves that are copyright of J"orge Knappen.
+%
+% This file includes the spline macros for computing font paramenters
+% from a table. It includes all the macros written by J"orge Knappen for the
+% ec fonts. Thanks to J"orge for the good things these macros do, blame to me
+% for their misuse.
+
+
+vardef simple_gendef@#(text aa)(text t)=
+ string s[];
+ s1:="";
+ s2:=str @#;
+ index:=1;
+ forsuffixes $=t: ydata[index]:=$ if s1<>s2: *@# fi;
+ index:=index+1;
+ endfor;
+ if numpoints>(index-1): errmessage "Missing parameter"; message str aa; fi;
+ if numpoints<(index-1): errmessage "Too many parameters"; message str aa; fi;
+ aa:=ydata[merke];
+ if gencheck: message str aa fi;
+enddef;
+
+vardef extended_gendef@#(text aa)(text t)=
+ string s[];
+ s1:="";
+ s2:=str @#;
+ index:=1;
+ forsuffixes $=t: ydata[index]:=$ if s1<>s2: *@# fi;
+ index:=index+1;
+ endfor;
+ if numpoints>(index-1): errmessage "Missing parameter"; message str aa; fi;
+ if numpoints<(index-1): errmessage "Too many parameters"; message str aa; fi;
+ if gensize>basedata[numpoints]:
+ numeric hilf [];
+ hilf[1]:=(ydata[numpoints]-ydata[numpoints-1])/(basedata[numpoints]-basedata[numpoints-1]);
+ hilf[2]:=(ydata[numpoints]-ydata[numpoints-2])/(basedata[numpoints]-basedata[numpoints-2]);
+ hilf[3]:=ydata[numpoints]-hilf1*basedata[numpoints];
+ hilf[4]:=ydata[numpoints]-hilf2*basedata[numpoints];
+ spy:=(hilf[1]*gensize+hilf[3])/2+(hilf[2]*gensize+hilf[4])/2;
+ aa:=spy;
+ else:
+ for index = 1 upto numpoints-1:
+ interval[index]:=basedata[index+1]-basedata[index];
+ endfor;
+ for index=1 upto numpoints:
+ spline[1][index]:=ydata[index];
+ endfor;
+ for index=2 upto numpoints-1:
+ alpha[index]:=3*((spline[1][index+1]*interval[index-1])%
+ -(spline[1][index]*(basedata[index+1]-basedata[index-1]))%
+ +(spline[1][index-1]*interval[index]))%
+ /(interval[index-1]*interval[index]);
+ endfor;
+ spl[1]:=0;
+ spmu[1]:=0;
+ spz[1]:=0;
+ for index=2 upto numpoints-1:
+ spl[index]:=2*(basedata[index+1]-basedata[index-1])%
+ -interval[index-1]*spmu[index-1];
+ spmu[index]:=interval[index]/spl[index];
+ spz[index]:=(alpha[index]-interval[index-1]*spz[index-1])/spl[index];
+ endfor;
+ spline[3][numpoints]:=0;
+ for index=numpoints-1 downto 1:
+ spline[3][index]:=spz[index]-spmu[index]*spline[3][index+1];
+ endfor;
+ for index=numpoints -1 downto 1:
+ spline[2][index]:=(spline[1][index+1]-spline[1][index])/interval[index]%
+ -interval[index]*(spline[3][index+1]*spline[3][index])/3;
+ spline[4][index]:=(spline[3][index+1]-spline[3][index])/(3*interval[index]);
+ endfor;
+ location:=1;
+ for term=1 upto numpoints-1:
+ if gensize > basedata[term]: location:=term; fi
+ endfor;
+ spx:=gensize-basedata[location];
+ spy:=((spline[4][location]*spx+spline[3][location])*spx+spline[2][location])*spx+spline[1][location];
+ aa:=spy; fi;
+ if gencheck: message str aa fi;
+enddef;
+
+vardef basedef(text t)=
+ boolean basevalue; boolean gencheck;
+ numeric index; numeric ergbnis; numeric location; numeric term;
+ numeric numpoints; numeric spx; numeric spy;
+ numeric basedata[]; numeric interval[]; numeric alpha[];
+ numeric spl[]; numeric spmu[]; numeric spz[];
+ numeric ydata[]; numeric spline[][];
+ basevalue:=false; gencheck:=false;
+ index:=1;
+ forsuffixes $=t: basedata[index]:=$;
+ if $=gensize: basevalue:=true; merke:=index; fi;
+ index:=index+1;
+ endfor;
+ numpoints:=index-1;
+ if numpoints<3: errmessage "Not enough reference points"; fi
+ if basevalue: def gendef=simple_gendef enddef; else:
+ def gendef=extended_gendef enddef; fi
+enddef;
+
+def clear_extra_memory= % Release ressources hold by the extrapolation routine
+ numeric index; numeric ergbnis; numeric location; numeric term;
+ numeric numpoints; numeric spx; numeric spy;
+ numeric basedata[]; numeric interval[]; numeric alpha[];
+ numeric spl[]; numeric spmu[]; numeric spz[];
+ numeric ydata[]; numeric spline[][];
+ numeric hilf []; string s[];
+enddef;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/cbupper.mf b/Master/texmf-dist/fonts/source/public/cb/cbupper.mf
new file mode 100644
index 00000000000..f9b641add03
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/cbupper.mf
@@ -0,0 +1,858 @@
+% Copyright (C) 1997, 1999, 2000, 2001 Claudio Beccari
+% version 2.1c 2001/02/27
+% This file is a rearrangement of code in Computer Modern's romanu.mf
+% It contains definitions for Greek capitals.
+%
+% This rearrangement was done by Silvio Levy; I just controlled the validity
+% for all the family series and shapes and introduced those simple
+% "corrections" that proved necessary.
+%
+% Added adscript iota for capital letters A, H, W (1999/10/25 CB)
+% Added dummy glyphs for the ligatures A"U, A"u, a"u (2000/02/13 CB)
+% Modified capital Upsilon for Leipzig italics and CB roman (2000/07/06 CB)
+% Modified capital Theta and Omega for Leipzig italics (2001/02/27 CB)
+
+def gen_letter = % Capital Alpha
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+ numeric pos_stem; %Iota reference
+ pos_stem:=rt x4r if serifs:+outer_jut-.5slab fi+.5(tiny+stem)+u;
+enddef;
+
+cmchar "Uppercase alpha";
+beginchar("A",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+gen_letter;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase alpha with adscript iota";
+beginchar(oct"011",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#+stem#+.7jut#+1.2u#+.5tiny# if monospace:+1.3tiny# fi);
+gen_letter; Iota_sub(pos_stem);
+penlabels(0,1,2,3,4,5,6,51,52); endchar;
+
+cmchar "Uppercase alpha with right phantom diaeresis";% The diaeresis is not actually there
+beginchar(oct"014",13u#,cap_height#,0); % this glyph is just for kerning with
+adjust_fit(cap_serif_fit#,cap_serif_fit#); % uppercase upsilon with diaeresis
+gen_letter;
+endchar;
+
+% This is why we define here a variable AUkern that will be used also for left shifting
+% a copy of uppercase upsilon with diaersis to be used with the above Adiaeresis glyph;
+% the idea is that the ligkern table specifies the correct ammount of negative kern when
+% A is followed by Udiaeresis (which is possible only by inputting text with a Greek
+% keyboard and the iso-8859-7 input encoding), but fails when Greek text is input with
+% a Latin keyboard, because in this case the sequence A"U cannot operate; in facts the kern
+% between A and " cannot be inserted if it is still unknown if the next character will
+% be U or I. In order to deal with such situation it would be necessary a ligkern command
+% that involves three adiacent characters; up to now (2000/02/13) this command is missing
+% from METAFONT.
+
+numeric AUkern,AUkern#;
+if cbleipzig: AUkern:=2u; AUkern#:=2u#;
+else: AUkern:=2.5u; AUkern#:=2.5u#;
+fi
+
+cmchar "Uppercase beta";
+beginchar("B",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Uppercase epsilon";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+def gen_letter = % Capital Eta
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+ numeric pos_stem; %Iota reference
+ pos_stem:=rt x4r if serifs:+cap_jut fi+.5(stem+tiny)+u;
+enddef;
+
+
+
+cmchar "Uppercase eta";
+beginchar("H",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+gen_letter;
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase eta with adscript Iota";
+beginchar(oct"012",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#+stem#+.7jut#+1.2u# if monospace:+1.6tiny# fi);
+gen_letter; Iota_sub(pos_stem);
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,51,52); endchar;
+
+
+cmchar "Uppercase iota with diaeresis";
+beginchar(oct"333",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem);
+numeric iota_h; iota_h=cap_height;
+top y1=iota_h ; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); % lower serif
+elseif slitex:
+ dish_serif(1,2,a,1/3,1.05u,b,1/3,1.05u); % upper serif
+ dish_serif(2,1,c,1/3,1.05u,d,1/3,1.05u); % lower serif
+fi
+generate_diaeresis(.5w,dot_size,dot_size+4/5cap_stem,h+separator+dot_size,iota_h+separator);
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+
+
+
+
+cmchar "Uppercase iota";
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); % lower serif
+else:
+ if slitex:
+ dish_serif(1,2,a,1/3,1.05u,b,1/3,1.05u); % upper serif
+ dish_serif(2,1,c,1/3,1.05u,d,1/3,1.05u); % lower serif
+ fi
+fi
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+
+
+
+
+cmchar "Uppercase kappa";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase mu";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "Uppercase nu";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+cmchar "Uppercase omicron";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase rho";
+beginchar("R",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: dish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Uppercase tau";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper bracketing
+ dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); fi % lower serif
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase chi";
+beginchar("Q",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "Uppercase zeta";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase gamma";
+beginchar("G",11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase delta";
+beginchar("D",15u#,cap_height#,0);
+adjust_fit(0,0);
+numeric left_stem,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+x1l=w-x4r=.75u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+y5=y6=cap_vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ unfill z0+.5right{down}...{z4-z3}z6--z5{z2-z1}
+ ...{up}z0+.5left--cycle; % counter
+else: unfill z0--z5--z6--cycle; fi % counter
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase theta";
+beginchar("J",14u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=hround(cap_curve-2stem_corr);
+penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup crisp.nib; pos5(cap_vstem,90); pos6(cap_vstem,90);
+lft x5=w-rt x6=hround(x2l+if cbleipzig:1.5fi u)+1; y5=y6=.5[y1l,y3l];
+filldraw stroke z5e--z6e; % bar
+if serifs: pos7(hair,0); pos8(hair,0); pos9(hair,0); pos10(hair,0);
+ x7l=x8l=x5; x9r=x10r=x6;
+ y7-y5r=y9-y6r=y5l-y8=y6l-y10=vround .05h;
+ filldraw stroke z7e--z8e; % left serif
+ filldraw stroke z9e--z10e; fi % right serif
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Uppercase lambda";
+beginchar("L",12u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,outer_jut,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase xi";
+beginchar("X",12u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem];
+pickup crisp.nib; pos1(shaved_stem,90); pos2(hair,0);
+top y1r=h; x1=.5w; rt x2r=hround(w-.85u); y2=good.y(y1l-4/9beak)-eps;
+arm(1,2,a,.4beak_darkness,.3beak_jut); % upper right arm and beak
+pos3(hair,180); x3=w-x2; y3=y2;
+arm(1,3,b,.4beak_darkness,-.3beak_jut); % upper left arm and beak
+pos4(shaved_stem,-90); pos5(hair,0);
+bot y4r=0; x4=.5w; rt x5r=hround(w-.75u); y5=good.y(y4l+.5beak)+eps;
+arm(4,5,c,.4beak_darkness,.3beak_jut); % lower right arm and beak
+pos6(hair,180); x6=w-x5; y6=y5;
+arm(4,6,d,.4beak_darkness,-.3beak_jut); % lower left arm and beak
+pos7(shaved_stem,90); pos8(shaved_stem,90);
+lft x7=w-rt x8=hround if serifs: 2.5 else: 2 fi\\ u;
+top y7r=top y8r=vround(.52h+.5shaved_stem);
+filldraw stroke z7e--z8e; % middle bar
+if serifs: numeric xjut;
+ if bot y2>top y7r+.75cap_jut: xjut=.5cap_jut;
+ else: bot y2=top y7r+1.5xjut; fi
+ pos11(hair,0); pos12(hair,0); y11=y12;
+ pos13(hair,0); pos14(hair,0); y13=y14;
+ lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u;
+ top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7;
+ filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; fi % middle serifs
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,11,12,13,14); endchar;
+
+cmchar "Uppercase pi";
+beginchar("P",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib;
+h:=vround(h-stem_corr);
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5r=y6r=h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,eps); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,eps,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase sigma";
+beginchar("S",13u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(0,0);
+numeric bot_arm_thickness;
+bot_arm_thickness=Vround .25[slab,cap_vstem];
+pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l;
+top y1=h; bot y2=h-slab; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0);
+penpos3(alpha1*(cap_stem-tiny),0);
+alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(cap_hair-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
+arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase upsilon";
+beginchar("U",if cbleipzig or cbroman:12else:14fi u#,cap_height#,0);
+if cbleipzig or cbroman:
+ italcorr cap_height#*slant+.45u#;
+ adjust_fit(cap_serif_fit#,cap_serif_fit#);
+ numeric left_stem,right_stem,outer_jut,dy,alpha;
+ left_stem=cap_stem-stem_corr;
+ right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+ outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+ x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+ dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+ penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+ penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+ penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+ if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+ math_fit(.5u#-cap_height#*slant,ic#-4u#);
+else:
+ italcorr .8cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+ lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=.5h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ penpos3(.6cap_stem,0); penpos4(.75cap_curve,90); penpos5(cap_hair,180);
+ z3l=lft z1l; x5r=hround u; y5=bot .8h; x4=.61803[x3l,x5l]; y4r=h+o;
+ penpos5'(cap_hair,180); x5'=x5; y5'=h;
+ fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up}
+ ...{right}z4l...{down}z3l--cycle; % left arc
+ penpos6(.6cap_stem,0); penpos7(.75cap_curve,-90); penpos8(cap_hair,-180);
+ z6r=rt z1r; x8=w-x5; y8=y5; x7=w-x4; y7=y4;
+ penpos8'(cap_hair,-180); x8'=x8; y8'=h;
+ fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up}
+ ...{left}z7l...{down}z6l--cycle; % right arc
+ if serifs: dish_serif(2,1,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); fi % serif
+ math_fit(-.8cap_height#*slant-.5u#,ic#-2.5u#);
+fi
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "Uppercase Upsilon with diaeresis";
+beginchar(oct"337",if cbleipzig or cbroman:12else:14fi u#,cap_height#,0);
+if cbleipzig or cbroman:
+ italcorr cap_height#*slant+.45u#;
+ adjust_fit(cap_serif_fit#,cap_serif_fit#);
+ numeric left_stem,right_stem,outer_jut,dy,alpha;
+ left_stem=cap_stem-stem_corr;
+ right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+ outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+ x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+ dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+ penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+ penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+ penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+ if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+ math_fit(.5u#-cap_height#*slant,ic#-4u#);
+else:
+ italcorr .8cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+ lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=.5cap_height; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ penpos3(.6cap_stem,0); penpos4(.75cap_curve,90); penpos5(cap_hair,180);
+ z3l=lft z1l; x5r=hround u; y5=bot .8cap_height;
+ x4=.61803[x3l,x5l]; y4r=cap_height+o;
+ penpos5'(cap_hair,180); x5'=x5; y5'=cap_height;
+ fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up}
+ ...{right}z4l...{down}z3l--cycle; % left arc
+ penpos6(.6cap_stem,0); penpos7(.75cap_curve,-90); penpos8(cap_hair,-180);
+ z6r=rt z1r; x8=w-x5; y8=y5; x7=w-x4; y7=y4;
+ penpos8'(cap_hair,-180); x8'=x8; y8'=cap_height;
+ fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up}
+ ...{left}z7l...{down}z6l--cycle; % right arc
+ if serifs: dish_serif(2,1,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); fi % serif
+ math_fit(-.8cap_height#*slant-.5u#,ic#-2.5u#);
+fi
+generate_diaeresis(.5w,dot_size,dot_size+cap_stem,h+separator+dot_size,cap_height+separator);
+picture savedpicture; savedpicture:=currentpicture;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "shifted uppercase Upsilon with diaeresis";% for kerning with A
+beginchar(oct"15",if cbleipzig or cbroman:12else:14fi u#,cap_height#,0);
+adjust_fit(0,-AUkern#);
+currentpicture:=savedpicture shifted (-AUkern,0);
+endchar;
+picture savedpicture;
+
+cmchar "Uppercase phi";
+beginchar("F",13u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem,light_curve;
+shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5];
+y5r=vround(.15h if serifs:+slab fi);
+penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase psi";
+beginchar("Y",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+if cbroman:% This is CB romanstyle capital Psi
+ numeric shaved_stem;
+ shaved_stem=cap_stem-hround 2stem_corr;
+ pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+ lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pos3(shaved_stem,-180); pos4(shaved_stem,-180);
+ pos8(shaved_stem,0);z8=z3; pos9(shaved_stem,0);z9=z4;
+ pos5(vair,-90); x5=x1; bot y5r=vround(.15h +slab);
+ pos6(shaved_stem,0); pos7(shaved_stem,0);
+ lft x3r=hround u+jut; x7=w-x3; lft x4r=lft x3r; x6=w-x4;
+ y3=y7; y4=y6=.6h; y3=.84h -slab;
+ interim superness:=more_super;
+ filldraw z3r---z4r{down} & super_arc.r(4,5)
+ & super_arc.r(5,6) & z6r{up}---z7r
+ --z7l---z6l{down} & super_arc.l(6,5)
+ & super_arc.l(5,4) & z4l{up}---z3l--cycle; % stroke
+ dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); % lower serif
+ dish_serif(8,9,e,1/3,jut,f,1/3,jut); % left arm serif
+ dish_serif(7,6,g,1/3,jut,h,1/3,jut); % right arm serif
+else:%
+ numeric shaved_stem;
+ shaved_stem=cap_stem-hround 2stem_corr;
+ pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+ lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pos3(shaved_stem,-180); pos4(shaved_stem,-180);
+ pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi);
+ pos6(shaved_stem,0); pos7(shaved_stem,0);
+ lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4;
+ pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r;
+ y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3');
+ interim superness:=more_super;
+ filldraw z3'l{right}...z4r{down} & super_arc.r(4,5)
+ & super_arc.r(5,6) & z6r{up}...z7'l{right}
+ --z7r---z7l...z6l{down} & super_arc.l(6,5)
+ & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke
+ if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut);fi % lower serif
+
+ math_fit(-.8cap_height#*slant-.5u#,.4cap_height#*slant-1.25u#);
+fi
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+
+def gen_letter = % Capital Omega
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+if cbleipzig:2\else:.5fi u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+ numeric pos_stem; %Iota reference
+ pos_stem:=rt x9r +.5(stem+tiny) + 1.4u;
+enddef;
+
+
+cmchar "Uppercase omega";
+beginchar("W",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0); gen_letter;
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Uppercase omega with iota adscript";
+beginchar(oct"013",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,stem# + .5tiny# + .7jut# + 1.4u# if monospace:+1.3tiny# fi);
+gen_letter; Iota_sub(pos_stem);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+
+cmchar "Uppercase digamma";
+beginchar(oct"303",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glic.mf b/Master/texmf-dist/fonts/source/public/cb/glic.mf
new file mode 100644
index 00000000000..6228b6ea07c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glic.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%% file glic v.2.0
+%
+% creates the invisible slide font from glmc by defining a new boolean
+%
+boolean invisibile; invisibile:=true;
+input glmc;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glic1000.mf b/Master/texmf-dist/fonts/source/public/cb/glic1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glic1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glii.mf b/Master/texmf-dist/fonts/source/public/cb/glii.mf
new file mode 100644
index 00000000000..f8da44dfb14
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glii.mf
@@ -0,0 +1,8 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%% file glii v.2.0
+%
+% creates the invisible slide font from glmi by defining a new boolean
+%
+boolean invisibile; invisibile:=true;
+input glmi;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glii1000.mf b/Master/texmf-dist/fonts/source/public/cb/glii1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glii1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glin.mf b/Master/texmf-dist/fonts/source/public/cb/glin.mf
new file mode 100644
index 00000000000..f8620141f08
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glin.mf
@@ -0,0 +1,8 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%% file glin v.2.0
+%
+% creates the invisible slide font from glmn by defining a new boolean
+%
+boolean invisibile; invisibile:=true;
+input glmn;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glin1000.mf b/Master/texmf-dist/fonts/source/public/cb/glin1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glin1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glio.mf b/Master/texmf-dist/fonts/source/public/cb/glio.mf
new file mode 100644
index 00000000000..d50cd44f170
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glio.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%% file glio v.2.0
+%
+% creates the invisible slide font from glmo by defining a new boolean
+%
+boolean invisibile; invisibile:=true;
+input glmo;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glio1000.mf b/Master/texmf-dist/fonts/source/public/cb/glio1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glio1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gliu.mf b/Master/texmf-dist/fonts/source/public/cb/gliu.mf
new file mode 100644
index 00000000000..de584d518f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gliu.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%% file glii v.2.0
+%
+% creates the invisible slide font from glmu by defining a new boolean
+%
+boolean invisibile; invisibile:=true;
+input glmu;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gliu1000.mf b/Master/texmf-dist/fonts/source/public/cb/gliu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gliu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gljc.mf b/Master/texmf-dist/fonts/source/public/cb/gljc.mf
new file mode 100644
index 00000000000..5055564018a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gljc.mf
@@ -0,0 +1,10 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%% file gljc v.2.0
+%
+% creates the invisible slide font from gltc by defining a new boolean
+%
+boolean invisibile; invisibile:=true;
+input gltc;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gljc1000.mf b/Master/texmf-dist/fonts/source/public/cb/gljc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gljc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gljn.mf b/Master/texmf-dist/fonts/source/public/cb/gljn.mf
new file mode 100644
index 00000000000..f40abaad2ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gljn.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%% file gljn v.2.0
+%
+% creates the invisible slide font from gltn by defining a new boolean
+%
+boolean invisibile; invisibile:=true;
+input gltn;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gljn1000.mf b/Master/texmf-dist/fonts/source/public/cb/gljn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gljn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gljo.mf b/Master/texmf-dist/fonts/source/public/cb/gljo.mf
new file mode 100644
index 00000000000..fb0bac0c49e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gljo.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%% file gljo v.2.0
+%
+% creates the invisible slide font from glto by defining a new boolean
+%
+boolean invisibile; invisibile:=true;
+input glto;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gljo1000.mf b/Master/texmf-dist/fonts/source/public/cb/gljo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gljo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmc.mf b/Master/texmf-dist/fonts/source/public/cb/glmc.mf
new file mode 100644
index 00000000000..3817f5940db
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmc.mf
@@ -0,0 +1,85 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file glmc v.1.0a 1999/11/05
+% Content: 256 glyph greek upright caps and small caps font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLMC";
+small_caps:=true; sclc:=1;
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 20, 25, 34.55, 49.78, 71.65, 250);
+gendef [1/36pt#]( width_adj# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+gendef [1/36pt#]( serif_fit# )( [-10],[-12.5], [-17.28], [-24.89], [-35.83], [-125]);
+gendef [1/36pt#]( cap_serif_fit# )( [-14],[-17.5], [-24.19], [-34.84], [-50.16], [-175]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2463);
+gendef [1/36pt#]( fig_height# )( 190, 238, 328, 473, 681, 2375);
+gendef [1/36pt#]( x_height# )( 150, 188, 259, 373, 537, 1875);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 230, 275, 375, 530, 760, 2750);
+gendef [1/36pt#](circ_ht# )( 230, 275, 375, 530, 760, 2750);
+gendef [1/36pt#](Circ_ht# )( 230, 275, 375, 530, 760, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( stem# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( curve# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( ess# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( flare# )( 21, 26.3, 36.3, 52.3, 75.2, 262.5);
+gendef [1/36pt#]( dot_size# )( 28, 35, 48.4, 69.7, 100.3, 350);
+gendef [1/36pt#]( cap_hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_stem# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_curve# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_ess# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( rule_thickness#)( 20, 25, 34.55, 49.78, 71.65, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( bar# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( slab# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_bar# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_band# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( apex_corr# )( 4, 5, 6.91, 9.96, 14.33, 50);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .95, .95, .96, .98, .98, .98);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmc1000.mf b/Master/texmf-dist/fonts/source/public/cb/glmc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmi.mf b/Master/texmf-dist/fonts/source/public/cb/glmi.mf
new file mode 100644
index 00000000000..18b7465007f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmi.mf
@@ -0,0 +1,86 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+% file glmi v.1.0a 1999/11/05
+% Content: 256 glyph greek cursive medium font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GMLI";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 20, 25, 34.55, 49.78, 71.65, 250);
+gendef [1/36pt#]( width_adj# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+gendef [1/36pt#]( serif_fit# )( [-10],[-12.5], [-17.28], [-24.89], [-35.83], [-125]);
+gendef [1/36pt#]( cap_serif_fit# )( [-14],[-17.5], [-24.19], [-34.84], [-50.16], [-175]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2463);
+gendef [1/36pt#]( fig_height# )( 190, 238, 328, 473, 681, 2375);
+gendef [1/36pt#]( x_height# )( 150, 188, 259, 373, 537, 1875);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](circ_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](Circ_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( stem# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( curve# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( ess# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( flare# )( 21, 26.3, 36.3, 52.3, 75.2, 262.5);
+gendef [1/36pt#]( dot_size# )( 28, 35, 48.4, 69.7, 100.3, 350);
+gendef [1/36pt#]( cap_hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_stem# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_curve# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_ess# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [pt#]( rule_thickness#)( .55555, .69444, .95972, 1.38264, 1.99028, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( bar# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( slab# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_bar# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_band# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( apex_corr# )( 4, 5, 6.91, 9.96, 14.33, 50);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( .95, .95, .96, .98, .98, .98);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmi1000.mf b/Master/texmf-dist/fonts/source/public/cb/glmi1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmi1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmn.mf b/Master/texmf-dist/fonts/source/public/cb/glmn.mf
new file mode 100644
index 00000000000..e5ba77a184b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmn.mf
@@ -0,0 +1,83 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file glmn v.1.0a 1999/11/05
+% Content: 256 glyph greek upright normal font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLMN";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 20, 25, 34.55, 49.78, 71.65, 250);
+gendef [1/36pt#]( width_adj# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+gendef [1/36pt#]( serif_fit# )( [-10],[-12.5], [-17.28], [-24.89], [-35.83], [-125]);
+gendef [1/36pt#]( cap_serif_fit# )( [-14],[-17.5], [-24.19], [-34.84], [-50.16], [-175]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2463);
+gendef [1/36pt#]( fig_height# )( 190, 238, 328, 473, 681, 2375);
+gendef [1/36pt#]( x_height# )( 150, 188, 259, 373, 537, 1875);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](circ_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](Circ_ht# )( 230, 275, 375, 530, 760, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( stem# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( curve# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( ess# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( flare# )( 21, 26.3, 36.3, 52.3, 75.2, 262.5);
+gendef [1/36pt#]( dot_size# )( 28, 35, 48.4, 69.7, 100.3, 350);
+gendef [1/36pt#]( cap_hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_stem# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_curve# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_ess# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [pt#]( rule_thickness#)( .55555, .69444, .95972, 1.38264, 1.99028, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( bar# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( slab# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_bar# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_band# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( apex_corr# )( 4, 5, 6.91, 9.96, 14.33, 50);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .95, .95, .96, .98, .98, .98);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmn1000.mf b/Master/texmf-dist/fonts/source/public/cb/glmn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmo.mf b/Master/texmf-dist/fonts/source/public/cb/glmo.mf
new file mode 100644
index 00000000000..ea1a6dfaf62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmo.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file glmo v.1.0a 1999/11/05
+% Content: 256 glyph greek oblique medium font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GMLO";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 20, 25, 34.55, 49.78, 71.65, 250);
+gendef [1/36pt#]( width_adj# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+gendef [1/36pt#]( serif_fit# )( [-10],[-12.5], [-17.28], [-24.89], [-35.83], [-125]);
+gendef [1/36pt#]( cap_serif_fit# )( [-14],[-17.5], [-24.19], [-34.84], [-50.16], [-175]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2463);
+gendef [1/36pt#]( fig_height# )( 190, 238, 328, 473, 681, 2375);
+gendef [1/36pt#]( x_height# )( 150, 188, 259, 373, 537, 1875);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](circ_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](Circ_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( stem# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( curve# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( ess# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( flare# )( 21, 26.3, 36.3, 52.3, 75.2, 262.5);
+gendef [1/36pt#]( dot_size# )( 28, 35, 48.4, 69.7, 100.3, 350);
+gendef [1/36pt#]( cap_hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_stem# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_curve# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_ess# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [pt#]( rule_thickness#)( .55555, .69444, .95972, 1.38264, 1.99028, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( bar# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( slab# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_bar# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_band# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( apex_corr# )( 4, 5, 6.91, 9.96, 14.33, 50);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( .95, .95, .96, .98, .98, .98);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmo1000.mf b/Master/texmf-dist/fonts/source/public/cb/glmo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmu.mf b/Master/texmf-dist/fonts/source/public/cb/glmu.mf
new file mode 100644
index 00000000000..a6dd572d887
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmu.mf
@@ -0,0 +1,86 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+% file glmu v.1.0a 1999/11/05
+% 256 glyph greek upright cursive medium font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GMLU";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 20, 25, 34.55, 49.78, 71.65, 250);
+gendef [1/36pt#]( width_adj# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+gendef [1/36pt#]( serif_fit# )( [-10],[-12.5], [-17.28], [-24.89], [-35.83], [-125]);
+gendef [1/36pt#]( cap_serif_fit# )( [-14],[-17.5], [-24.19], [-34.84], [-50.16], [-175]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2463);
+gendef [1/36pt#]( fig_height# )( 190, 238, 328, 473, 681, 2375);
+gendef [1/36pt#]( x_height# )( 150, 188, 259, 373, 537, 1875);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](circ_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](Circ_ht# )( 210, 250, 346, 498, 717, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( stem# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( curve# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( ess# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( flare# )( 21, 26.3, 36.3, 52.3, 75.2, 262.5);
+gendef [1/36pt#]( dot_size# )( 28, 35, 48.4, 69.7, 100.3, 350);
+gendef [1/36pt#]( cap_hair# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_stem# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_curve# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [1/36pt#]( cap_ess# )( 27, 33.8, 46.6, 67.2, 96.7, 337.5);
+gendef [pt#]( rule_thickness#)( .55555, .69444, .95972, 1.38264, 1.99028, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( bar# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( slab# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_bar# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_band# )( 19, 23.8, 32.8, 47.3, 68.1, 237.5);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( apex_corr# )( 4, 5, 6.91, 9.96, 14.33, 50);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .95, .95, .96, .98, .98, .98);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/10;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glmu1000.mf b/Master/texmf-dist/fonts/source/public/cb/glmu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glmu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gltc.mf b/Master/texmf-dist/fonts/source/public/cb/gltc.mf
new file mode 100644
index 00000000000..e8b93691848
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gltc.mf
@@ -0,0 +1,86 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file gltc v.1.0a 1999/11/05
+% 256 glyph greek typewriter type caps and small caps font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLTC";
+small_caps:=true; sclc:=1.19;
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 17, 21, 29, 42, 60, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( asc_height# )( 180, 230, 318, 456, 659, 2300);
+gendef [1/36pt#]( cap_height# )( 180, 230, 318, 456, 659, 2300);
+gendef [1/36pt#]( fig_height# )( 180, 230, 318, 456, 669, 2300);
+gendef [1/36pt#]( x_height# )( 124, 155, 214, 307, 444, 1550);
+gendef [1/36pt#]( math_axis# )( 80, 110, 152, 219, 315, 1100);
+gendef [1/36pt#]( bar_height# )( 63, 79, 109, 157, 226, 790);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 64, 80, 111, 159, 229, 800);
+gendef [1/36pt#](acc_ht# )( 230, 270, 370, 530, 659, 2700);
+gendef [1/36pt#](circ_ht# )( 230, 270, 370, 530, 659, 2700);
+gendef [1/36pt#](Circ_ht# )( 230, 270, 370, 530, 659, 2700);
+gendef [1/36pt#](iota_dp# )( 57, 64, 88, 127, 183, 640);
+gendef [1/36pt#]( crisp# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( tiny# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( fine# )( 18, 21, 29.0, 42, 60, 210);
+gendef [1/36pt#]( thin_join# )( 18, 21, 29.0, 42, 60, 210);
+gendef [1/36pt#]( hair# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( stem# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( curve# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( ess# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( flare# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( dot_size# )( 31, 36, 49.8, 72, 103, 360);
+gendef [1/36pt#]( cap_hair# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( cap_stem# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( cap_curve# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( cap_ess# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( rule_thickness#)( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 34, 47, 68, 98, 340);
+gendef [1/36pt#]( cap_jut# )( 27, 34, 47, 68, 98, 340);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 34, 47, 68, 98, 340);
+gendef [1/36pt#]( vair# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( notch_cut# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( bar# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( slab# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( cap_bar# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( cap_band# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 10, 14, 20, 29, 100);
+gendef [1/36pt#]( o# )( 3, 4, 6, 8, 12, 40);
+gendef [1/36pt#]( apex_o# )( 3, 3, 4, 6, 9, 30);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .81, .81, .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1], [-1], [-1]);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=true;
+low_asterisk:=true;
+math_fitting:=false;
+slitex:=true;
+straight:=true;
+monowidth:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gltc1000.mf b/Master/texmf-dist/fonts/source/public/cb/gltc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gltc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gltn.mf b/Master/texmf-dist/fonts/source/public/cb/gltn.mf
new file mode 100644
index 00000000000..120cbca2f25
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gltn.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file gltn v.1.0a 1999/11/05
+% 256 glyph greek typewriter type normal font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLTN";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 17, 21, 29, 42, 60, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( asc_height# )( 180, 230, 318, 456, 659, 2300);
+gendef [1/36pt#]( cap_height# )( 180, 230, 318, 456, 659, 2300);
+gendef [1/36pt#]( fig_height# )( 180, 230, 318, 456, 669, 2300);
+gendef [1/36pt#]( x_height# )( 124, 155, 214, 307, 444, 1550);
+gendef [1/36pt#]( math_axis# )( 80, 110, 152, 219, 315, 1100);
+gendef [1/36pt#]( bar_height# )( 63, 79, 109, 157, 226, 790);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 64, 80, 111, 159, 229, 800);
+gendef [1/36pt#](acc_ht# )( 180, 230, 318, 456, 659, 2700);
+gendef [1/36pt#](circ_ht# )( 180, 230, 318, 456, 659, 2700);
+gendef [1/36pt#](Circ_ht# )( 230, 270, 370, 530, 770, 2700);
+gendef [1/36pt#](iota_dp# )( 57, 64, 88, 127, 183, 640);
+gendef [1/36pt#]( crisp# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( tiny# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( fine# )( 18, 21, 29.0, 42, 60, 210);
+gendef [1/36pt#]( thin_join# )( 18, 21, 29.0, 42, 60, 210);
+gendef [1/36pt#]( hair# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( stem# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( curve# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( ess# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( flare# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( dot_size# )( 31, 36, 49.8, 72, 103, 360);
+gendef [1/36pt#]( cap_hair# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( cap_stem# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( cap_curve# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( cap_ess# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( rule_thickness#)( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 34, 47, 68, 98, 340);
+gendef [1/36pt#]( cap_jut# )( 27, 34, 47, 68, 98, 340);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 34, 47, 68, 98, 340);
+gendef [1/36pt#]( vair# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( notch_cut# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( bar# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( slab# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( cap_bar# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( cap_band# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 10, 14, 20, 29, 100);
+gendef [1/36pt#]( o# )( 3, 4, 6, 8, 12, 40);
+gendef [1/36pt#]( apex_o# )( 3, 3, 4, 6, 9, 30);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .81, .81, .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1], [-1], [-1]);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=true;
+low_asterisk:=true;
+math_fitting:=false;
+slitex:=true;
+straight:=true;
+monowidth:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gltn1000.mf b/Master/texmf-dist/fonts/source/public/cb/gltn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gltn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glto.mf b/Master/texmf-dist/fonts/source/public/cb/glto.mf
new file mode 100644
index 00000000000..e0abcfd0757
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glto.mf
@@ -0,0 +1,85 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file glto v.1.0a 1999/11/05
+% 256 glyph greek typewriter type oblique font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLTO";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 17, 21, 29, 42, 60, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( asc_height# )( 180, 230, 318, 456, 659, 2300);
+gendef [1/36pt#]( cap_height# )( 180, 230, 318, 456, 659, 2300);
+gendef [1/36pt#]( fig_height# )( 180, 230, 318, 456, 669, 2300);
+gendef [1/36pt#]( x_height# )( 124, 155, 214, 307, 444, 1550);
+gendef [1/36pt#]( math_axis# )( 80, 110, 152, 219, 315, 1100);
+gendef [1/36pt#]( bar_height# )( 63, 79, 109, 157, 226, 790);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 64, 80, 111, 159, 229, 800);
+gendef [1/36pt#](acc_ht# )( 180, 230, 318, 456, 659, 2700);
+gendef [1/36pt#](circ_ht# )( 180, 230, 318, 456, 659, 2700);
+gendef [1/36pt#](Circ_ht# )( 210, 250, 346, 498, 717, 2700);
+gendef [1/36pt#](iota_dp# )( 57, 64, 88, 127, 183, 640);
+gendef [1/36pt#]( crisp# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( tiny# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( fine# )( 18, 21, 29.0, 42, 60, 210);
+gendef [1/36pt#]( thin_join# )( 18, 21, 29.0, 42, 60, 210);
+gendef [1/36pt#]( hair# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( stem# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( curve# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( ess# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( flare# )( 22, 24, 33.2, 48, 69, 240);
+gendef [1/36pt#]( dot_size# )( 31, 36, 49.8, 72, 103, 360);
+gendef [1/36pt#]( cap_hair# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( cap_stem# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( cap_curve# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( cap_ess# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( rule_thickness#)( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 27, 34, 47, 68, 98, 340);
+gendef [1/36pt#]( cap_jut# )( 27, 34, 47, 68, 98, 340);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 27, 34, 47, 68, 98, 340);
+gendef [1/36pt#]( vair# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( notch_cut# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( bar# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( slab# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( cap_bar# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( cap_band# )( 19, 22, 30.4, 44, 63, 220);
+gendef [1/36pt#]( cap_notch_cut# )( 22, 25, 34.6, 50, 72, 250);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 8, 10, 14, 20, 29, 100);
+gendef [1/36pt#]( o# )( 3, 4, 6, 8, 12, 40);
+gendef [1/36pt#]( apex_o# )( 3, 3, 4, 6, 9, 30);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( .81, .81, .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1], [-1], [-1]);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=true;
+low_asterisk:=true;
+math_fitting:=false;
+slitex:=true;
+straight:=true;
+monowidth:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glto1000.mf b/Master/texmf-dist/fonts/source/public/cb/glto1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glto1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwc.mf b/Master/texmf-dist/fonts/source/public/cb/glwc.mf
new file mode 100644
index 00000000000..4c31421fa68
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwc.mf
@@ -0,0 +1,10 @@
+% Copyright (C) 1997, 2000 Claudio Beccari
+%% file glwc v.1.1 2000/02/12
+%
+% creates the invisible slide font glxc by redefining extra_endchar
+%
+boolean invisibile; invisibile:=true;
+input glxc;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwc1000.mf b/Master/texmf-dist/fonts/source/public/cb/glwc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwi.mf b/Master/texmf-dist/fonts/source/public/cb/glwi.mf
new file mode 100644
index 00000000000..2eaff853c2f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwi.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 2000 Claudio Beccari
+%% file glwi v.1.1 2000/02/12
+%
+% creates the invisible slide font glxi by redefining extra_endchar
+%
+boolean invisibile; invisibile:=true;
+input glxi;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwi1000.mf b/Master/texmf-dist/fonts/source/public/cb/glwi1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwi1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwn.mf b/Master/texmf-dist/fonts/source/public/cb/glwn.mf
new file mode 100644
index 00000000000..410e4504eb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwn.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1997, 2000 Claudio Beccari
+%% file glwn v.1.1 2000/02/12
+%
+% creates the invisible slide font glxn by redefining extra_endchar
+%
+boolean invisibile; invisibile:=true;
+input glxn;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwn1000.mf b/Master/texmf-dist/fonts/source/public/cb/glwn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwo.mf b/Master/texmf-dist/fonts/source/public/cb/glwo.mf
new file mode 100644
index 00000000000..6cb06b3dd1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwo.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1997, 2000 Claudio Beccari
+%% file glwo v.1.1 2000/02/12
+%
+% creates the invisible slide font glxo by redefining extra_endchar
+%
+boolean invisibile; invisibile:=true;
+input glxo;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwo1000.mf b/Master/texmf-dist/fonts/source/public/cb/glwo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwu.mf b/Master/texmf-dist/fonts/source/public/cb/glwu.mf
new file mode 100644
index 00000000000..1dfd0e8597f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwu.mf
@@ -0,0 +1,10 @@
+% Copyright (C) 1998, 2000 Claudio Beccari
+%% file glwi v.1.1 2000/02/12
+%
+% creates the invisible slide font glxu by redefining extra_endchar
+%
+boolean invisibile; invisibile:=true;
+input glxu;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glwu1000.mf b/Master/texmf-dist/fonts/source/public/cb/glwu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glwu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxc.mf b/Master/texmf-dist/fonts/source/public/cb/glxc.mf
new file mode 100644
index 00000000000..d29622e940a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxc.mf
@@ -0,0 +1,86 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file glxc v.1.0a 1999/11/05
+% Content: 256 glyph greek upright bold caps and small caps font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLXC";
+small_caps:=true; sclc:=1;
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 22, 27, 38, 55, 78.82, 275);
+gendef [1/36pt#]( width_adj# )( 3, 3.75, 5.18, 7.47, 10.75, 37.5);
+gendef [1/36pt#]( serif_fit# )( [-12], [-15], [-20.73], [-29.87], [-43], [-150]);
+gendef [1/36pt#]( cap_serif_fit# )( [-15],[-18.8], [-25.91], [-37.33], [-54.74],[-187.5]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2462.5);
+gendef [1/36pt#]( fig_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( x_height# )( 155, 194, 268, 386, 555, 1937.5);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 85, 106, 147, 216, 305, 1062.5);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 230, 270, 370, 530, 770, 2500);
+gendef [1/36pt#](circ_ht# )( 230, 270, 370, 530, 770, 2500);
+gendef [1/36pt#](Circ_ht# )( 230, 270, 370, 530, 770, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( stem# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( curve# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( ess# )( 40, 50.0, 70.0, 100.0, 148.0, 500);
+gendef [1/36pt#]( flare# )( 36, 45.0, 62.2, 89.6, 130.0, 450);
+gendef [1/36pt#]( dot_size# )( 41, 51.3, 70.8, 102.0, 146.9, 512.5);
+gendef [1/36pt#]( cap_hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( cap_stem# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( cap_curve# )( 46, 57.5, 79.5, 114.5, 168.8, 575);
+gendef [1/36pt#]( cap_ess# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( rule_thickness#)( 26, 32.5, 44.9, 64.7, 93.1, 325);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( notch_cut# )( 48, 60.0, 82.9, 119.5, 172.0, 600);
+gendef [1/36pt#]( bar# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( slab# )( 24, 30.0, 41.5, 59.7, 86.0, 300);
+gendef [1/36pt#]( cap_bar# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_band# )( 30, 37.5, 51.8, 74.7, 107.5, 375);
+gendef [1/36pt#]( cap_notch_cut# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( 1, 1.25, 1.73, 2.49, 3.58, 12.5);
+gendef [1/36pt#]( apex_corr# )( 15, 18.8, 25.9, 37.36, 53.73, 187.5);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .85, .86, .87, .88, .89, .89);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/9;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxc1000.mf b/Master/texmf-dist/fonts/source/public/cb/glxc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxi.mf b/Master/texmf-dist/fonts/source/public/cb/glxi.mf
new file mode 100644
index 00000000000..6428fbf98ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxi.mf
@@ -0,0 +1,87 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+% file glxi v.1.0a 1999/11/05
+% Content: 256 glyph greek cursive bold font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLXI";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 22, 27, 38, 55, 78.82, 275);
+gendef [1/36pt#]( width_adj# )( 3, 3.75, 5.18, 7.47, 10.75, 37.5);
+gendef [1/36pt#]( serif_fit# )( [-12], [-15], [-20.73], [-29.87], [-43], [-150]);
+gendef [1/36pt#]( cap_serif_fit# )( [-15],[-18.8], [-25.91], [-37.33], [-54.74],[-187.5]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2462.5);
+gendef [1/36pt#]( fig_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( x_height# )( 155, 194, 268, 386, 555, 1937.5);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 85, 106, 147, 216, 305, 1062.5);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 210, 250, 346, 498, 717, 2500);
+gendef [1/36pt#](circ_ht# )( 210, 250, 346, 498, 717, 2500);
+gendef [1/36pt#](Circ_ht# )( 230, 270, 370, 530, 770, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( stem# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( curve# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( ess# )( 40, 50.0, 70.0, 100.0, 148.0, 500);
+gendef [1/36pt#]( flare# )( 36, 45.0, 62.2, 89.6, 130.0, 450);
+gendef [1/36pt#]( dot_size# )( 41, 51.3, 70.8, 102.0, 146.9, 512.5);
+gendef [1/36pt#]( cap_hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( cap_stem# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( cap_curve# )( 46, 57.5, 79.5, 114.5, 168.8, 575);
+gendef [1/36pt#]( cap_ess# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( rule_thickness#)( 26, 32.5, 44.9, 64.7, 93.1, 325);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( notch_cut# )( 48, 60.0, 82.9, 119.5, 172.0, 600);
+gendef [1/36pt#]( bar# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( slab# )( 24, 30.0, 41.5, 59.7, 86.0, 300);
+gendef [1/36pt#]( cap_bar# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_band# )( 30, 37.5, 51.8, 74.7, 107.5, 375);
+gendef [1/36pt#]( cap_notch_cut# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( 1, 1.25, 1.73, 2.49, 3.58, 12.5);
+gendef [1/36pt#]( apex_corr# )( 15, 18.8, 25.9, 37.36, 53.73, 187.5);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( .85, .86, .87, .88, .89, .89);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/9;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxi1000.mf b/Master/texmf-dist/fonts/source/public/cb/glxi1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxi1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxn.mf b/Master/texmf-dist/fonts/source/public/cb/glxn.mf
new file mode 100644
index 00000000000..47cbbb3609e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxn.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file glxn v.1.0a 1999/11/05
+% Content: 256 glyph greek upright bold font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLXN";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 22, 27, 38, 55, 78.82, 275);
+gendef [1/36pt#]( width_adj# )( 3, 3.75, 5.18, 7.47, 10.75, 37.5);
+gendef [1/36pt#]( serif_fit# )( [-12], [-15], [-20.73], [-29.87], [-43], [-150]);
+gendef [1/36pt#]( cap_serif_fit# )( [-15],[-18.8], [-25.91], [-37.33], [-54.74],[-187.5]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2462.5);
+gendef [1/36pt#]( fig_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( x_height# )( 155, 194, 268, 386, 555, 1937.5);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 85, 106, 147, 216, 305, 1062.5);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 210, 250, 346, 498, 717, 2500);
+gendef [1/36pt#](circ_ht# )( 210, 250, 346, 498, 717, 2500);
+gendef [1/36pt#](Circ_ht# )( 230, 270, 370, 530, 770, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( stem# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( curve# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( ess# )( 40, 50.0, 70.0, 100.0, 148.0, 500);
+gendef [1/36pt#]( flare# )( 36, 45.0, 62.2, 89.6, 130.0, 450);
+gendef [1/36pt#]( dot_size# )( 41, 51.3, 70.8, 102.0, 146.9, 512.5);
+gendef [1/36pt#]( cap_hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( cap_stem# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( cap_curve# )( 46, 57.5, 79.5, 114.5, 168.8, 575);
+gendef [1/36pt#]( cap_ess# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( rule_thickness#)( 26, 32.5, 44.9, 64.7, 93.1, 325);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( notch_cut# )( 48, 60.0, 82.9, 119.5, 172.0, 600);
+gendef [1/36pt#]( bar# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( slab# )( 24, 30.0, 41.5, 59.7, 86.0, 300);
+gendef [1/36pt#]( cap_bar# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_band# )( 30, 37.5, 51.8, 74.7, 107.5, 375);
+gendef [1/36pt#]( cap_notch_cut# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( 1, 1.25, 1.73, 2.49, 3.58, 12.5);
+gendef [1/36pt#]( apex_corr# )( 15, 18.8, 25.9, 37.36, 53.73, 187.5);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .85, .86, .87, .88, .89, .89);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/9;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxn1000.mf b/Master/texmf-dist/fonts/source/public/cb/glxn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxo.mf b/Master/texmf-dist/fonts/source/public/cb/glxo.mf
new file mode 100644
index 00000000000..da7a8236f73
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxo.mf
@@ -0,0 +1,85 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file glxo v.1.0a 1999/11/05
+% Content: 256 glyph greek oblique bold font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLXO";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 22, 27, 38, 55, 78.82, 275);
+gendef [1/36pt#]( width_adj# )( 3, 3.75, 5.18, 7.47, 10.75, 37.5);
+gendef [1/36pt#]( serif_fit# )( [-12], [-15], [-20.73], [-29.87], [-43], [-150]);
+gendef [1/36pt#]( cap_serif_fit# )( [-15],[-18.8], [-25.91], [-37.33], [-54.74],[-187.5]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2462.5);
+gendef [1/36pt#]( fig_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( x_height# )( 155, 194, 268, 386, 555, 1937.5);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 85, 106, 147, 216, 305, 1062.5);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 210, 250, 346, 498, 717, 2500);
+gendef [1/36pt#](circ_ht# )( 210, 250, 346, 498, 717, 2500);
+gendef [1/36pt#](Circ_ht# )( 230, 270, 370, 530, 770, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( stem# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( curve# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( ess# )( 40, 50.0, 70.0, 100.0, 148.0, 500);
+gendef [1/36pt#]( flare# )( 36, 45.0, 62.2, 89.6, 130.0, 450);
+gendef [1/36pt#]( dot_size# )( 41, 51.3, 70.8, 102.0, 146.9, 512.5);
+gendef [1/36pt#]( cap_hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( cap_stem# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( cap_curve# )( 46, 57.5, 79.5, 114.5, 168.8, 575);
+gendef [1/36pt#]( cap_ess# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( rule_thickness#)( 26, 32.5, 44.9, 64.7, 93.1, 325);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( notch_cut# )( 48, 60.0, 82.9, 119.5, 172.0, 600);
+gendef [1/36pt#]( bar# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( slab# )( 24, 30.0, 41.5, 59.7, 86.0, 300);
+gendef [1/36pt#]( cap_bar# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_band# )( 30, 37.5, 51.8, 74.7, 107.5, 375);
+gendef [1/36pt#]( cap_notch_cut# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( 1, 1.25, 1.73, 2.49, 3.58, 12.5);
+gendef [1/36pt#]( apex_corr# )( 15, 18.8, 25.9, 37.36, 53.73, 187.5);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( .85, .86, .87, .88, .89, .89);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/9;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxo1000.mf b/Master/texmf-dist/fonts/source/public/cb/glxo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxu.mf b/Master/texmf-dist/fonts/source/public/cb/glxu.mf
new file mode 100644
index 00000000000..101a7e0b2b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxu.mf
@@ -0,0 +1,87 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+% file glxu v.1.0a 1999/11/05
+% Content: 256 glyph greek upright cursive bold font for slides
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GLXU";
+font_size (gensize*pt#);
+basedef ( 8, 10, 13.82, 19.91, 28.66, 100);
+gendef [1/36pt#]( u# )( 22, 27, 38, 55, 78.82, 275);
+gendef [1/36pt#]( width_adj# )( 3, 3.75, 5.18, 7.47, 10.75, 37.5);
+gendef [1/36pt#]( serif_fit# )( [-12], [-15], [-20.73], [-29.87], [-43], [-150]);
+gendef [1/36pt#]( cap_serif_fit# )( [-15],[-18.8], [-25.91], [-37.33], [-54.74],[-187.5]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 220, 275, 380, 548, 788, 2750);
+gendef [1/36pt#]( asc_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( cap_height# )( 197, 246, 340, 490, 706, 2462.5);
+gendef [1/36pt#]( fig_height# )( 200, 250, 346, 498, 717, 2500);
+gendef [1/36pt#]( x_height# )( 155, 194, 268, 386, 555, 1937.5);
+gendef [1/36pt#]( math_axis# )( 80, 100, 138, 199, 287, 1000);
+gendef [1/36pt#]( bar_height# )( 85, 106, 147, 216, 305, 1062.5);
+gendef [1/36pt#]( comma_depth# )( 40, 50, 69, 100, 143, 500);
+gendef [1/36pt#]( desc_depth# )( 48, 60, 83, 120, 171, 600);
+gendef [1/36pt#](acc_ht# )( 210, 250, 346, 498, 717, 2500);
+gendef [1/36pt#](circ_ht# )( 210, 250, 346, 498, 717, 2500);
+gendef [1/36pt#](Circ_ht# )( 230, 270, 370, 530, 770, 2750);
+gendef [1/36pt#](iota_dp# )( 58, 72, 100, 144, 208, 725);
+gendef [1/36pt#]( crisp# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( tiny# )( 18, 22.5, 31.1, 44.8, 64.5, 225);
+gendef [1/36pt#]( fine# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( thin_join# )( 8, 10, 13.8, 19.9, 28.7, 100);
+gendef [1/36pt#]( hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( stem# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( curve# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( ess# )( 40, 50.0, 70.0, 100.0, 148.0, 500);
+gendef [1/36pt#]( flare# )( 36, 45.0, 62.2, 89.6, 130.0, 450);
+gendef [1/36pt#]( dot_size# )( 41, 51.3, 70.8, 102.0, 146.9, 512.5);
+gendef [1/36pt#]( cap_hair# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( cap_stem# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( cap_curve# )( 46, 57.5, 79.5, 114.5, 168.8, 575);
+gendef [1/36pt#]( cap_ess# )( 46, 57.5, 79.5, 114.5, 164.8, 575);
+gendef [1/36pt#]( rule_thickness#)( 26, 32.5, 44.9, 64.7, 93.1, 325);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( notch_cut# )( 48, 60.0, 82.9, 119.5, 172.0, 600);
+gendef [1/36pt#]( bar# )( 22, 27.5, 38.0, 54.7, 78.8, 275);
+gendef [1/36pt#]( slab# )( 24, 30.0, 41.5, 59.7, 86.0, 300);
+gendef [1/36pt#]( cap_bar# )( 23, 28.8, 39.7, 57.2, 82.4, 287.5);
+gendef [1/36pt#]( cap_band# )( 30, 37.5, 51.8, 74.7, 107.5, 375);
+gendef [1/36pt#]( cap_notch_cut# )( 42, 52.5, 72.6, 104.5, 150.5, 525);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( .5, .625, .864, 1.24, 1.79, 6.25);
+gendef [1/36pt#]( vair_corr# )( 1, 1.25, 1.73, 2.49, 3.58, 12.5);
+gendef [1/36pt#]( apex_corr# )( 15, 18.8, 25.9, 37.36, 53.73, 187.5);
+gendef [1/36pt#]( o# )( 6, 7.5, 10.36, 14.99, 21.5, 75);
+gendef [1/36pt#]( apex_o# )( 2, 2.5, 3.46, 4.98, 7.17, 25);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .85, .86, .87, .88, .89, .89);
+gendef ( math_spread )( 0, 0, 0, 0, 0, 0);
+otilt:=.2;
+superness:=(sqrt 2)/2;
+superpull:=1/9;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=true;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=true;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/glxu1000.mf b/Master/texmf-dist/fonts/source/public/cb/glxu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/glxu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmmn.mf b/Master/texmf-dist/fonts/source/public/cb/gmmn.mf
new file mode 100644
index 00000000000..63fc1e95dc4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmmn.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grmr v.1.0a 2000/07/06
+% 256 character upright greek roman font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:= "GRMN";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 13.13,17.85, 21, 24.68, 34.13, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 180, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 8, 8, 8, 8, 53);
+gendef [1/36pt#]( fine# )( 5, 7, 7, 7, 7, 47);
+gendef [1/36pt#]( thin_join# )( 5, 7, 7, 7.5, 9, 60);
+gendef [1/36pt#]( hair# )( 7, 8, 9, 9.5, 11, 70);
+gendef [1/36pt#]( stem# )( 15, 24, 27, 28, 33, 200);
+gendef [1/36pt#]( curve# )( 18, 25.5, 30, 33, 40, 220);
+gendef [1/36pt#]( ess# )( 12, 23, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 36, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 8, 9.5, 11, 11.5, 13, 80);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 6.6, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( slab# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_band# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=(sqrt2)/2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+if not boolean cbroman: boolean cbroman; fi cbroman:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmmn1000.mf b/Master/texmf-dist/fonts/source/public/cb/gmmn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmmn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmmo.mf b/Master/texmf-dist/fonts/source/public/cb/gmmo.mf
new file mode 100644
index 00000000000..af13b2fbc08
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmmo.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grmr v.1.0a 2000/07/06
+% 256 character upright greek roman font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:= "GRMN";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 13.13,17.85, 21, 24.68, 34.13, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 180, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 8, 8, 8, 8, 53);
+gendef [1/36pt#]( fine# )( 5, 7, 7, 7, 7, 47);
+gendef [1/36pt#]( thin_join# )( 5, 7, 7, 7.5, 9, 60);
+gendef [1/36pt#]( hair# )( 7, 8, 9, 9.5, 11, 70);
+gendef [1/36pt#]( stem# )( 15, 24, 27, 28, 33, 200);
+gendef [1/36pt#]( curve# )( 18, 25.5, 30, 33, 40, 220);
+gendef [1/36pt#]( ess# )( 12, 23, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 36, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 8, 9.5, 11, 11.5, 13, 80);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 6.6, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( slab# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_band# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=(sqrt2)/2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+if not boolean cbroman: boolean cbroman; fi cbroman:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmmo1000.mf b/Master/texmf-dist/fonts/source/public/cb/gmmo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmmo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmtr.mf b/Master/texmf-dist/fonts/source/public/cb/gmtr.mf
new file mode 100644
index 00000000000..d44047aeeb6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmtr.mf
@@ -0,0 +1,83 @@
+% Copyright (C) 2001 Claudio Beccari
+% file grmn v.1.0a 2001/02/25
+% Special signs for greek poem metrics
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:= "GMTR";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 180, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 8, 8, 8, 8, 53);
+gendef [1/36pt#]( fine# )( 5, 7, 7, 7, 7, 47);
+gendef [1/36pt#]( thin_join# )( 5, 7, 7, 7.5, 9, 60);
+gendef [1/36pt#]( hair# )( 7, 8, 9, 9.5, 11, 70);
+gendef [1/36pt#]( stem# )( 15, 24, 27, 28, 33, 200);
+gendef [1/36pt#]( curve# )( 18, 25.5, 30, 33, 40, 220);
+gendef [1/36pt#]( ess# )( 12, 23, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 36, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 8, 9.5, 11, 11.5, 13, 80);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 6.6, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( slab# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_band# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=(sqrt2)/2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+metrics:=true;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmtr1000.mf b/Master/texmf-dist/fonts/source/public/cb/gmtr1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmtr1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmxn.mf b/Master/texmf-dist/fonts/source/public/cb/gmxn.mf
new file mode 100644
index 00000000000..fcd529614df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmxn.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grxr v.1.0a 2000/07/06
+% 256 character bold greek roman font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRXR";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( u# )( 15.8, 21, 24.2, 28.4, 242);
+gendef [1/36pt#]( width_adj# )( 7, 9, 11, 13, 110);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 5.6, 7, 8, 70);
+gendef [1/36pt#]( letter_fit# )( 3, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 2500);
+gendef [1/36pt#]( cap_height# )( 123,197.6, 247, 296, 2470);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 160, 192, 1600);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 900);
+gendef [1/36pt#]( bar_height# )( 42, 68, 85, 102, 850);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 184, 230, 275, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 200, 250, 300, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 13, 13, 87);
+gendef [1/36pt#]( fine# )( 8, 10, 10, 10, 70);
+gendef [1/36pt#]( thin_join# )( 8, 10, 10, 10, 70);
+gendef [1/36pt#]( hair# )( 17, 18, 19, 20, 135);
+gendef [1/36pt#]( stem# )( 26, 33, 40, 47, 270);
+gendef [1/36pt#]( curve# )( 29, 35, 43, 52, 280);
+gendef [1/36pt#]( ess# )( 23, 33, 40, 44, 250);
+gendef [1/36pt#]( flare# )( 29, 35, 43, 51, 280);
+gendef [1/36pt#]( dot_size# )( 33, 46, 58, 62, 387);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 19, 20, 135);
+gendef [1/36pt#]( cap_stem# )( 28, 41, 51, 57, 340);
+gendef [1/36pt#]( cap_curve# )( 31, 44, 55, 61, 367);
+gendef [1/36pt#]( cap_ess# )( 24, 42.4, 53, 59, 353);
+gendef [1/36pt#]( rule_thickness#)( 15, 19.5, 22, 24, 220);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( jut# )( 13, 20, 25, 30, 250);
+gendef [1/36pt#]( cap_jut# )( 14, 32, 39, 46, 390);
+gendef [1/36pt#]( beak_jut# )( 7, 8.8, 11, 12, 110);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 700);
+gendef [1/36pt#]( vair# )( 10, 12, 13, 14, 87);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 3600);
+gendef [1/36pt#]( bar# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( slab# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( cap_bar# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( cap_band# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 3600);
+gendef [1/36pt#]( serif_drop# )( 1.5, 2.4, 3, 3.6, 30);
+gendef [1/36pt#]( stem_corr# )( 1.5, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 1, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3.2, 4, 5, 27);
+gendef [1/36pt#]( apex_o# )( 3, 2.4, 3, 4, 20);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, .9, .5, .5, .5);
+otilt:=.2;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+if not boolean cbroman: boolean cbroman; fi cbroman:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmxn1000.mf b/Master/texmf-dist/fonts/source/public/cb/gmxn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmxn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmxo.mf b/Master/texmf-dist/fonts/source/public/cb/gmxo.mf
new file mode 100644
index 00000000000..9ae6068bd2c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmxo.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grxr v.1.0a 2000/07/06
+% 256 character bold greek roman font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRXR";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( u# )( 15.8, 21, 24.2, 28.4, 242);
+gendef [1/36pt#]( width_adj# )( 7, 9, 11, 13, 110);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 5.6, 7, 8, 70);
+gendef [1/36pt#]( letter_fit# )( 3, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 2500);
+gendef [1/36pt#]( cap_height# )( 123,197.6, 247, 296, 2470);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 160, 192, 1600);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 900);
+gendef [1/36pt#]( bar_height# )( 42, 68, 85, 102, 850);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 184, 230, 275, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 200, 250, 300, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 13, 13, 87);
+gendef [1/36pt#]( fine# )( 8, 10, 10, 10, 70);
+gendef [1/36pt#]( thin_join# )( 8, 10, 10, 10, 70);
+gendef [1/36pt#]( hair# )( 17, 18, 19, 20, 135);
+gendef [1/36pt#]( stem# )( 26, 33, 40, 47, 270);
+gendef [1/36pt#]( curve# )( 29, 35, 43, 52, 280);
+gendef [1/36pt#]( ess# )( 23, 33, 40, 44, 250);
+gendef [1/36pt#]( flare# )( 29, 35, 43, 51, 280);
+gendef [1/36pt#]( dot_size# )( 33, 46, 58, 62, 387);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 19, 20, 135);
+gendef [1/36pt#]( cap_stem# )( 28, 41, 51, 57, 340);
+gendef [1/36pt#]( cap_curve# )( 31, 44, 55, 61, 367);
+gendef [1/36pt#]( cap_ess# )( 24, 42.4, 53, 59, 353);
+gendef [1/36pt#]( rule_thickness#)( 15, 19.5, 22, 24, 220);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( jut# )( 13, 20, 25, 30, 250);
+gendef [1/36pt#]( cap_jut# )( 14, 32, 39, 46, 390);
+gendef [1/36pt#]( beak_jut# )( 7, 8.8, 11, 12, 110);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 700);
+gendef [1/36pt#]( vair# )( 10, 12, 13, 14, 87);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 3600);
+gendef [1/36pt#]( bar# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( slab# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( cap_bar# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( cap_band# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 3600);
+gendef [1/36pt#]( serif_drop# )( 1.5, 2.4, 3, 3.6, 30);
+gendef [1/36pt#]( stem_corr# )( 1.5, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 1, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3.2, 4, 5, 27);
+gendef [1/36pt#]( apex_o# )( 3, 2.4, 3, 4, 20);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, .9, .5, .5, .5);
+otilt:=.2;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+if not boolean cbroman: boolean cbroman; fi cbroman:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gmxo1000.mf b/Master/texmf-dist/fonts/source/public/cb/gmxo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gmxo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomc.mf b/Master/texmf-dist/fonts/source/public/cb/gomc.mf
new file mode 100644
index 00000000000..ac112df4958
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomc.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+%
+% Outline font based on grmc
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grmc
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomc1000.mf b/Master/texmf-dist/fonts/source/public/cb/gomc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomi.mf b/Master/texmf-dist/fonts/source/public/cb/gomi.mf
new file mode 100644
index 00000000000..186029cf5f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomi.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%
+% Outline font based on grmi
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grmi
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomi1000.mf b/Master/texmf-dist/fonts/source/public/cb/gomi1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomi1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomn.mf b/Master/texmf-dist/fonts/source/public/cb/gomn.mf
new file mode 100644
index 00000000000..cd0cd48bf4b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomn.mf
@@ -0,0 +1,8 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+%
+% Outline font based on grmn
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grmn
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomn1000.mf b/Master/texmf-dist/fonts/source/public/cb/gomn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomo.mf b/Master/texmf-dist/fonts/source/public/cb/gomo.mf
new file mode 100644
index 00000000000..59c5679c198
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomo.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+%
+% Outline font based on grmo
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grmo
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomo1000.mf b/Master/texmf-dist/fonts/source/public/cb/gomo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomu.mf b/Master/texmf-dist/fonts/source/public/cb/gomu.mf
new file mode 100644
index 00000000000..fea9843b0fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomu.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%
+% Outline font based on grmu
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grmu
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gomu1000.mf b/Master/texmf-dist/fonts/source/public/cb/gomu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gomu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxc.mf b/Master/texmf-dist/fonts/source/public/cb/goxc.mf
new file mode 100644
index 00000000000..4acfd41d9a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxc.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+%
+% Outline font based on grxc
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grxc
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxc1000.mf b/Master/texmf-dist/fonts/source/public/cb/goxc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxi.mf b/Master/texmf-dist/fonts/source/public/cb/goxi.mf
new file mode 100644
index 00000000000..9ed92f1b9df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxi.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%
+% Outline font based on grxi
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grxi
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxi1000.mf b/Master/texmf-dist/fonts/source/public/cb/goxi1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxi1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxn.mf b/Master/texmf-dist/fonts/source/public/cb/goxn.mf
new file mode 100644
index 00000000000..9e88cb4f422
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxn.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+%
+% Outline font based on grxn
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grxn
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxn1000.mf b/Master/texmf-dist/fonts/source/public/cb/goxn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxo.mf b/Master/texmf-dist/fonts/source/public/cb/goxo.mf
new file mode 100644
index 00000000000..381baea695d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxo.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+%
+% Outline font based on grxo
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grxo
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxo1000.mf b/Master/texmf-dist/fonts/source/public/cb/goxo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxu.mf b/Master/texmf-dist/fonts/source/public/cb/goxu.mf
new file mode 100644
index 00000000000..7dc1d7e4389
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxu.mf
@@ -0,0 +1,9 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+%
+% Outline font based on grxu
+%
+boolean outlining;
+outlining:=true;
+extra_endchar:=extra_endchar & "outline;";
+input grxu
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/goxu1000.mf b/Master/texmf-dist/fonts/source/public/cb/goxu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/goxu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grbl.mf b/Master/texmf-dist/fonts/source/public/cb/grbl.mf
new file mode 100644
index 00000000000..18998363012
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grbl.mf
@@ -0,0 +1,85 @@
+% Copyright (C) 2000 Claudio Beccari
+% file grbl v.1.0 2000/11/25
+% 256 character slightly darker than normal Leipzig greek font
+
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:= "GRMBL";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 29.75, 47.6, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 29.75, 47.6, 76.5, 102, 144.5, 765);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 183, 229, 275, 395, 2290);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 260, 310, 450, 2600);
+gendef [1/36pt#](iota_dp# )( 27, 50.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 7, 9, 9, 9, 9, 9);
+gendef [1/36pt#]( fine# )( 6, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( thin_join# )( 6, 8, 8, 8.5, 10, 65);
+%gendef [1/36pt#]( hair# )( 8, 10, 11, 11.5, 13, 80);
+gendef [1/36pt#]( hair# )( 10, 12, 14, 15, 17, 85);
+gendef [1/36pt#]( stem# )( 16, 25, 28, 29, 34, 210);
+gendef [1/36pt#]( curve# )( 19, 26.5, 31, 34, 41, 230);
+gendef [1/36pt#]( ess# )( 13, 24, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 36, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 9, 10.5, 12, 12.5, 14, 88);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 6.6, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 9, 10.5, 12, 13.5, 17, 110);
+gendef [1/36pt#]( slab# )( 9, 10.5, 12, 13.5, 17, 110);
+gendef [1/36pt#]( cap_bar# )( 9, 10.5, 12, 13.5, 17, 110);
+gendef [1/36pt#]( cap_band# )( 9, 10.5, 12, 13.5, 17, 110);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+slant:=sind 15/cosd 15;
+%slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=(sqrt2)/2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+if not boolean cbleipzig: boolean cbleipzig fi; cbleipzig:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grbl1000.mf b/Master/texmf-dist/fonts/source/public/cb/grbl1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grbl1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmc.mf b/Master/texmf-dist/fonts/source/public/cb/grmc.mf
new file mode 100644
index 00000000000..908e57d5fbe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmc.mf
@@ -0,0 +1,85 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grmc v.1.0a 1999/11/05
+% 256 character small caps normal upright greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+small_caps:=true; sclc:=1.19;
+font_identifier:="GRMC" ;
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 130, 210, 250, 300, 432, 2250);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 8, 8, 8, 8, 53);
+gendef [1/36pt#]( fine# )( 5, 7, 7, 7, 7, 47);
+gendef [1/36pt#]( thin_join# )( 5, 7, 7, 7.5, 9, 60);
+gendef [1/36pt#]( hair# )( 7, 8, 9, 9.5, 11, 70);
+gendef [1/36pt#]( stem# )( 15, 24, 27, 28, 33, 200);
+gendef [1/36pt#]( curve# )( 18, 25.5, 30, 33, 40, 220);
+gendef [1/36pt#]( ess# )( 12, 23, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 36, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 8, 9.5, 11, 11.5, 13, 80);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 6.6, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( slab# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_band# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmc1000.mf b/Master/texmf-dist/fonts/source/public/cb/grmc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmi.mf b/Master/texmf-dist/fonts/source/public/cb/grmi.mf
new file mode 100644
index 00000000000..e4e23199158
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmi.mf
@@ -0,0 +1,86 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+% file grmi v.1.0a 1999/11/05
+% 256 character regular italic or cursive greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRMI";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 171, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 180, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 8, 8, 8, 8, 53);
+gendef [1/36pt#]( fine# )( 5, 7, 7, 7, 7, 47);
+gendef [1/36pt#]( thin_join# )( 5, 7, 7, 7.5, 9, 60);
+gendef [1/36pt#]( hair# )( 7, 8, 9, 9.5, 11, 70);
+gendef [1/36pt#]( stem# )( 15, 24, 27, 28.7, 33, 200);
+gendef [1/36pt#]( curve# )( 18, 25.5, 30, 33.5, 40, 220);
+gendef [1/36pt#]( ess# )( 12, 23, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 32, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 8, 9.5, 11, 11.5, 13, 80);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 7.5, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( slab# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_band# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=(sqrt2)/2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmi1000.mf b/Master/texmf-dist/fonts/source/public/cb/grmi1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmi1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grml.mf b/Master/texmf-dist/fonts/source/public/cb/grml.mf
new file mode 100644
index 00000000000..afea143bed6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grml.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grml v.1.0a 1999/11/05
+% 256 character regular Leipzig greek font
+
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:= "GRML";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 29.75, 47.6, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 29.75, 47.6, 76.5, 102, 144.5, 765);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 183, 229, 275, 395, 2290);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 260, 310, 450, 2600);
+gendef [1/36pt#](iota_dp# )( 27, 50.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 7, 7, 7.5, 9, 60);
+gendef [1/36pt#]( hair# )( 7, 8, 9, 9.5, 11, 70);
+gendef [1/36pt#]( stem# )( 15, 24, 27, 28, 33, 200);
+gendef [1/36pt#]( curve# )( 18, 25.5, 30, 33, 40, 220);
+gendef [1/36pt#]( ess# )( 12, 23, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 36, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 8, 9.5, 11, 11.5, 13, 80);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 6.6, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( slab# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_band# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+slant:=sind 15/cosd 15;
+%slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=(sqrt2)/2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+if not boolean cbleipzig: boolean cbleipzig fi; cbleipzig:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grml1000.mf b/Master/texmf-dist/fonts/source/public/cb/grml1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grml1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmn.mf b/Master/texmf-dist/fonts/source/public/cb/grmn.mf
new file mode 100644
index 00000000000..9cfad525309
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmn.mf
@@ -0,0 +1,83 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grmn v.1.0a 1999/11/05
+% 256 character regular upright greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:= "GRMN";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 180, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 8, 8, 8, 8, 53);
+gendef [1/36pt#]( fine# )( 5, 7, 7, 7, 7, 47);
+gendef [1/36pt#]( thin_join# )( 5, 7, 7, 7.5, 9, 60);
+gendef [1/36pt#]( hair# )( 7, 8, 9, 9.5, 11, 70);
+gendef [1/36pt#]( stem# )( 15, 24, 27, 28, 33, 200);
+gendef [1/36pt#]( curve# )( 18, 25.5, 30, 33, 40, 220);
+gendef [1/36pt#]( ess# )( 12, 23, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 36, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 8, 9.5, 11, 11.5, 13, 80);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 6.6, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( slab# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_band# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=(sqrt2)/2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmn1000.mf b/Master/texmf-dist/fonts/source/public/cb/grmn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmo.mf b/Master/texmf-dist/fonts/source/public/cb/grmo.mf
new file mode 100644
index 00000000000..abe1a2806aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmo.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grmo v.1.0a 1999/11/05
+% 256 character regular oblique greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRMO";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 171, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 180, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 8, 8, 8, 8, 53);
+gendef [1/36pt#]( fine# )( 5, 7, 7, 7, 7, 47);
+gendef [1/36pt#]( thin_join# )( 5, 7, 7, 7.5, 9, 60);
+gendef [1/36pt#]( hair# )( 7, 8, 9, 9.5, 11, 70);
+gendef [1/36pt#]( stem# )( 15, 24, 27, 28.7, 33, 200);
+gendef [1/36pt#]( curve# )( 18, 25.5, 30, 33.5, 40, 220);
+gendef [1/36pt#]( ess# )( 12, 23, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 32, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 8, 9.5, 11, 11.5, 13, 80);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 7.5, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( slab# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_band# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=(sqrt2)/2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmo1000.mf b/Master/texmf-dist/fonts/source/public/cb/grmo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmu.mf b/Master/texmf-dist/fonts/source/public/cb/grmu.mf
new file mode 100644
index 00000000000..de08a8bcef3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmu.mf
@@ -0,0 +1,86 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+% file grmu v.1.0a 1999/11/05
+% 256 character regular upright cursive greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRMU";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 4.1, 5, 5.8, 8, 50);
+gendef [1/36pt#]( letter_fit# )( 5, 0, 0, 0, [-0.1], [-1]);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 246, 295, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 268, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 45, 70, 82, 100, 140, 820);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 90, 120, 171, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 180, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 8, 8, 8, 8, 53);
+gendef [1/36pt#]( fine# )( 5, 7, 7, 7, 7, 47);
+gendef [1/36pt#]( thin_join# )( 5, 7, 7, 7.5, 9, 60);
+gendef [1/36pt#]( hair# )( 7, 8, 9, 9.5, 11, 70);
+gendef [1/36pt#]( stem# )( 15, 24, 27, 28.7, 33, 200);
+gendef [1/36pt#]( curve# )( 18, 25.5, 30, 33.5, 40, 220);
+gendef [1/36pt#]( ess# )( 12, 23, 27, 30, 35, 200);
+gendef [1/36pt#]( flare# )( 17, 23, 27, 32, 45, 220);
+gendef [1/36pt#]( dot_size# )( 22, 32, 38, 42, 51, 253);
+gendef [1/36pt#]( cap_hair# )( 8, 9.5, 11, 11.5, 13, 80);
+gendef [1/36pt#]( cap_stem# )( 19, 26.5, 32, 35, 41, 220);
+gendef [1/36pt#]( cap_curve# )( 21, 30, 37, 40, 47, 247);
+gendef [1/36pt#]( cap_ess# )( 18, 27, 35, 38, 43, 233);
+gendef [1/36pt#]( rule_thickness#)( 10, 13, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 10, 16, 20, 24, 34, 200);
+gendef [1/36pt#]( jut# )( 15, 22, 28, 33, 42, 280);
+gendef [1/36pt#]( cap_jut# )( 20, 29, 37, 41, 50, 370);
+gendef [1/36pt#]( beak_jut# )( 6, 8.4, 10, 11.4, 15, 100);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( vair# )( 6, 7.5, 8, 8.5, 10, 53);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( slab# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_bar# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_band# )( 8, 9.5, 11, 12.5, 16, 100);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 2, 3.2, 4, 4.8, 7, 40);
+gendef [1/36pt#]( stem_corr# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( .5, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 6, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 4, 6, 8, 9, 10, 53);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .4, 0, [-0.2], [-0.4], [-1]);
+otilt:=.2;
+superness:=(sqrt2)/2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/grmu1000.mf b/Master/texmf-dist/fonts/source/public/cb/grmu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grmu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxc.mf b/Master/texmf-dist/fonts/source/public/cb/grxc.mf
new file mode 100644
index 00000000000..1e256c07cb8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxc.mf
@@ -0,0 +1,86 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grxc v.1.0a 1999/11/05
+% 256 character small caps bold upright greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+small_caps:=true; sclc:=1.19;
+font_identifier:= "GRXC" ;
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 15, 20, 24, 28, 40.3, 230);
+gendef [1/36pt#]( width_adj# )( 7, 9.4, 11, 13, 18, 110);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 5.4, 7, 8, 9, 70);
+gendef [1/36pt#]( letter_fit# )( 5, 5, 5, 5, 5, 5);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 247, 296, 425, 2470);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 160, 192, 268, 1600);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 40, 67, 85, 102, 140, 850);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 40, 67, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 130, 210, 250, 300, 432, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 13, 13, 13, 87);
+gendef [1/36pt#]( fine# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( thin_join# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( hair# )( 15, 16, 17, 18, 18, 135);
+gendef [1/36pt#]( stem# )( 24, 35, 41, 47, 59, 270);
+gendef [1/36pt#]( curve# )( 27, 39, 46, 52, 64, 280);
+gendef [1/36pt#]( ess# )( 19, 32, 38, 44, 56, 250);
+gendef [1/36pt#]( flare# )( 27, 39, 45, 51, 62, 280);
+gendef [1/36pt#]( dot_size# )( 31, 46, 56, 62, 74, 387);
+gendef [1/36pt#]( cap_hair# )( 17, 19, 19, 20, 21, 135);
+gendef [1/36pt#]( cap_stem# )( 28, 43, 51, 57, 69, 340);
+gendef [1/36pt#]( cap_curve# )( 31, 46, 55, 61, 73, 367);
+gendef [1/36pt#]( cap_ess# )( 24, 42.4, 53, 59, 71, 353);
+gendef [1/36pt#]( rule_thickness#)( 15, 19.5, 22, 24, 25, 220);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 5, 8, 10, 12, 17, 100);
+gendef [1/36pt#]( jut# )( 13, 19, 25, 30, 42, 250);
+gendef [1/36pt#]( cap_jut# )( 19, 31, 39, 46, 56, 390);
+gendef [1/36pt#]( beak_jut# )( 7, 9.4, 11, 12, 14, 110);
+gendef [1/36pt#]( beak# )( 25, 55, 70, 84, 114, 700);
+gendef [1/36pt#]( vair# )( 10, 12, 13, 14, 14, 87);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( slab# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_band# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 1.5, 2.4, 3, 4, 5, 30);
+gendef [1/36pt#]( stem_corr# )( 1.5, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.5, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 4, 4, 5, 6, 27);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 5, 20);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, .9, .5, .5, .5, .5);
+otilt:=.2;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxc1000.mf b/Master/texmf-dist/fonts/source/public/cb/grxc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxi.mf b/Master/texmf-dist/fonts/source/public/cb/grxi.mf
new file mode 100644
index 00000000000..a88fa1f3512
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxi.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1998, 1999, 2002 Claudio Beccari
+% file grxi v.1.0b 2002/11/11
+% 256 character extended bold italic or cursive greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRXI";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 15, 20, 24, 28, 40.3, 230);
+gendef [1/36pt#]( width_adj# )( 7, 9.4, 11, 13, 18, 110);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 5.4, 7, 8, 9, 70);
+gendef [1/36pt#]( letter_fit# )( 5, 5, 5, 5, 5, 5);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 247, 296, 425, 2470);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 160, 192, 268, 1600);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 40, 67, 85, 102, 140, 850);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 40, 67, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 130, 210, 250, 300, 432, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 13, 13, 13, 87);
+gendef [1/36pt#]( fine# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( thin_join# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( hair# )( 15, 16, 17, 18, 18, 135);
+gendef [1/36pt#]( stem# )( 24, 35, 41, 47, 59, 270);
+gendef [1/36pt#]( curve# )( 27, 39, 46, 52, 64, 280);
+gendef [1/36pt#]( ess# )( 19, 32, 38, 44, 56, 250);
+gendef [1/36pt#]( flare# )( 27, 39, 45, 51, 62, 280);
+gendef [1/36pt#]( dot_size# )( 31, 46, 56, 62, 74, 387);
+gendef [1/36pt#]( cap_hair# )( 17, 19, 19, 20, 21, 135);
+gendef [1/36pt#]( cap_stem# )( 28, 43, 51, 57, 69, 340);
+gendef [1/36pt#]( cap_curve# )( 31, 46, 55, 61, 73, 367);
+gendef [1/36pt#]( cap_ess# )( 24, 42.4, 53, 59, 71, 353);
+gendef [1/36pt#]( rule_thickness#)( 15, 19.5, 22, 24, 25, 220);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 5, 8, 10, 12, 17, 100);
+gendef [1/36pt#]( jut# )( 13, 19, 25, 30, 42, 250);
+gendef [1/36pt#]( cap_jut# )( 19, 31, 39, 46, 56, 390);
+gendef [1/36pt#]( beak_jut# )( 7, 9.4, 11, 12, 14, 110);
+gendef [1/36pt#]( beak# )( 25, 55, 70, 84, 114, 700);
+gendef [1/36pt#]( vair# )( 10, 12, 13, 14, 14, 87);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( slab# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_band# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 1.5, 2.4, 3, 4, 5, 30);
+gendef [1/36pt#]( stem_corr# )( 1.5, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.5, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 4, 4, 5, 6, 27);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 5, 20);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, .9, .5, .5, .5, .5);
+otilt:=.2;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxi1000.mf b/Master/texmf-dist/fonts/source/public/cb/grxi1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxi1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxl.mf b/Master/texmf-dist/fonts/source/public/cb/grxl.mf
new file mode 100644
index 00000000000..823518b6f4e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxl.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file grxn v.1.0a 1999/11/05
+% 256 character regular bold greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRXN";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( u# )( 15, 20, 23, 27, 230);
+gendef [1/36pt#]( width_adj# )( 7, 9, 11, 13, 110);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 5.6, 7, 8, 70);
+gendef [1/36pt#]( letter_fit# )( 3, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 2500);
+gendef [1/36pt#]( cap_height# )( 123,197.6, 247, 296, 2470);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 160, 192, 1600);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 900);
+gendef [1/36pt#]( bar_height# )( 42, 68, 85, 102, 850);
+gendef [1/36pt#]( comma_depth# )( 29.75, 47.6, 70, 84, 700);
+gendef [1/36pt#]( desc_depth# )( 29.75, 47.6, 76.5, 102, 765);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 2500);
+gendef [1/36pt#](circ_ht# )( 114, 183, 229, 275, 2290);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 260, 310, 2600);
+gendef [1/36pt#](iota_dp# )( 27, 50.6, 72, 86.4, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 13, 13, 87);
+gendef [1/36pt#]( fine# )( 8, 10, 10, 10, 70);
+gendef [1/36pt#]( thin_join# )( 8, 10, 10, 10, 70);
+gendef [1/36pt#]( hair# )( 17, 18, 19, 20, 135);
+gendef [1/36pt#]( stem# )( 26, 33, 40, 47, 270);
+gendef [1/36pt#]( curve# )( 29, 35, 43, 52, 280);
+gendef [1/36pt#]( ess# )( 23, 33, 40, 44, 250);
+gendef [1/36pt#]( flare# )( 29, 35, 43, 51, 280);
+gendef [1/36pt#]( dot_size# )( 33, 46, 58, 62, 387);
+gendef [1/36pt#]( cap_hair# )( 17, 18, 19, 20, 135);
+gendef [1/36pt#]( cap_stem# )( 28, 41, 51, 57, 340);
+gendef [1/36pt#]( cap_curve# )( 31, 44, 55, 61, 367);
+gendef [1/36pt#]( cap_ess# )( 24, 42.4, 53, 59, 353);
+gendef [1/36pt#]( rule_thickness#)( 15, 19.5, 22, 24, 220);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( jut# )( 13, 20, 25, 30, 250);
+gendef [1/36pt#]( cap_jut# )( 14, 32, 39, 46, 390);
+gendef [1/36pt#]( beak_jut# )( 7, 8.8, 11, 12, 110);
+gendef [1/36pt#]( beak# )( 35, 56, 70, 84, 700);
+gendef [1/36pt#]( vair# )( 10, 12, 13, 14, 87);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 3600);
+gendef [1/36pt#]( bar# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( slab# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( cap_bar# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( cap_band# )( 8, 15.3, 17, 18, 170);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 3600);
+gendef [1/36pt#]( serif_drop# )( 1.5, 2.4, 3, 3.6, 30);
+gendef [1/36pt#]( stem_corr# )( 1.5, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 1, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 3.2, 4, 5, 27);
+gendef [1/36pt#]( apex_o# )( 3, 2.4, 3, 4, 20);
+slant:=sind 15/cosd 15;
+%slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, .9, .5, .5, .5);
+otilt:=.2;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+if not boolean cbleipzig: boolean cbleipzig fi; cbleipzig:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxl1000.mf b/Master/texmf-dist/fonts/source/public/cb/grxl1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxl1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxn.mf b/Master/texmf-dist/fonts/source/public/cb/grxn.mf
new file mode 100644
index 00000000000..c66155a7c74
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxn.mf
@@ -0,0 +1,83 @@
+% Copyright (C) 1997, 1999, 2002 Claudio Beccari
+% file grxn v.1.0b 2002/11/11
+% 256 character regular bold greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRXN";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 15, 20, 24, 28, 40.3, 230);
+gendef [1/36pt#]( width_adj# )( 7, 9.4, 11, 13, 18, 110);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 5.4, 7, 8, 9, 70);
+gendef [1/36pt#]( letter_fit# )( 5, 5, 5, 5, 5, 5);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 247, 296, 425, 2470);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 160, 192, 268, 1600);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 40, 67, 85, 102, 140, 850);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 40, 67, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 130, 210, 250, 300, 432, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 13, 13, 13, 87);
+gendef [1/36pt#]( fine# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( thin_join# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( hair# )( 15, 16, 17, 18, 18, 135);
+gendef [1/36pt#]( stem# )( 24, 35, 41, 47, 59, 270);
+gendef [1/36pt#]( curve# )( 27, 39, 46, 52, 64, 280);
+gendef [1/36pt#]( ess# )( 19, 32, 38, 44, 56, 250);
+gendef [1/36pt#]( flare# )( 27, 39, 45, 51, 62, 280);
+gendef [1/36pt#]( dot_size# )( 31, 46, 56, 62, 74, 387);
+gendef [1/36pt#]( cap_hair# )( 17, 19, 19, 20, 21, 135);
+gendef [1/36pt#]( cap_stem# )( 28, 43, 51, 57, 69, 340);
+gendef [1/36pt#]( cap_curve# )( 31, 46, 55, 61, 73, 367);
+gendef [1/36pt#]( cap_ess# )( 24, 42.4, 53, 59, 71, 353);
+gendef [1/36pt#]( rule_thickness#)( 15, 19.5, 22, 24, 25, 220);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 5, 8, 10, 12, 17, 100);
+gendef [1/36pt#]( jut# )( 13, 19, 25, 30, 42, 250);
+gendef [1/36pt#]( cap_jut# )( 19, 31, 39, 46, 56, 390);
+gendef [1/36pt#]( beak_jut# )( 7, 9.4, 11, 12, 14, 110);
+gendef [1/36pt#]( beak# )( 25, 55, 70, 84, 114, 700);
+gendef [1/36pt#]( vair# )( 10, 12, 13, 14, 14, 87);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( slab# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_band# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 1.5, 2.4, 3, 4, 5, 30);
+gendef [1/36pt#]( stem_corr# )( 1.5, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.5, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 4, 4, 5, 6, 27);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 5, 20);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, .9, .5, .5, .5, .5);
+otilt:=.2;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxn1000.mf b/Master/texmf-dist/fonts/source/public/cb/grxn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxo.mf b/Master/texmf-dist/fonts/source/public/cb/grxo.mf
new file mode 100644
index 00000000000..4207da779f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxo.mf
@@ -0,0 +1,83 @@
+% Copyright (C) 1997, 1999, 2002 Claudio Beccari
+% file grxo v.1.0b 2002/11/11
+% 256 character regular bold oblique greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRXO";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 15, 20, 24, 28, 40.3, 230);
+gendef [1/36pt#]( width_adj# )( 7, 9.4, 11, 13, 18, 110);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 5.4, 7, 8, 9, 70);
+gendef [1/36pt#]( letter_fit# )( 5, 5, 5, 5, 5, 5);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 247, 296, 425, 2470);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 160, 192, 268, 1600);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 40, 67, 85, 102, 140, 850);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 40, 67, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 130, 210, 250, 300, 432, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 13, 13, 13, 87);
+gendef [1/36pt#]( fine# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( thin_join# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( hair# )( 15, 16, 17, 18, 18, 135);
+gendef [1/36pt#]( stem# )( 24, 35, 41, 47, 59, 270);
+gendef [1/36pt#]( curve# )( 27, 39, 46, 52, 64, 280);
+gendef [1/36pt#]( ess# )( 19, 32, 38, 44, 56, 250);
+gendef [1/36pt#]( flare# )( 27, 39, 45, 51, 62, 280);
+gendef [1/36pt#]( dot_size# )( 31, 46, 56, 62, 74, 387);
+gendef [1/36pt#]( cap_hair# )( 17, 19, 19, 20, 21, 135);
+gendef [1/36pt#]( cap_stem# )( 28, 43, 51, 57, 69, 340);
+gendef [1/36pt#]( cap_curve# )( 31, 46, 55, 61, 73, 367);
+gendef [1/36pt#]( cap_ess# )( 24, 42.4, 53, 59, 71, 353);
+gendef [1/36pt#]( rule_thickness#)( 15, 19.5, 22, 24, 25, 220);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 5, 8, 10, 12, 17, 100);
+gendef [1/36pt#]( jut# )( 13, 19, 25, 30, 42, 250);
+gendef [1/36pt#]( cap_jut# )( 19, 31, 39, 46, 56, 390);
+gendef [1/36pt#]( beak_jut# )( 7, 9.4, 11, 12, 14, 110);
+gendef [1/36pt#]( beak# )( 25, 55, 70, 84, 114, 700);
+gendef [1/36pt#]( vair# )( 10, 12, 13, 14, 14, 87);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( slab# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_band# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 1.5, 2.4, 3, 4, 5, 30);
+gendef [1/36pt#]( stem_corr# )( 1.5, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.5, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 4, 4, 5, 6, 27);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 5, 20);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, .9, .5, .5, .5, .5);
+otilt:=.2;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxo1000.mf b/Master/texmf-dist/fonts/source/public/cb/grxo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxu.mf b/Master/texmf-dist/fonts/source/public/cb/grxu.mf
new file mode 100644
index 00000000000..c037fe493ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxu.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1998, 1999, 2002 Claudio Beccari
+% file grxu v.1.0b 2002/11/11
+% 256 character extended bold upright cursive greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GRXU";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 15, 20, 24, 28, 40.3, 230);
+gendef [1/36pt#]( width_adj# )( 7, 9.4, 11, 13, 18, 110);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 3, 5.4, 7, 8, 9, 70);
+gendef [1/36pt#]( letter_fit# )( 5, 5, 5, 5, 5, 5);
+gendef [1/36pt#]( body_height# )( 135, 216, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 125, 200, 250, 300, 432, 2500);
+gendef [1/36pt#]( cap_height# )( 123, 197, 247, 296, 425, 2470);
+gendef [1/36pt#]( fig_height# )( 116,185.6, 232, 278.4, 401, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 160, 192, 268, 1600);
+gendef [1/36pt#]( math_axis# )( 45, 72, 90, 108, 156, 900);
+gendef [1/36pt#]( bar_height# )( 40, 67, 85, 102, 140, 850);
+gendef [1/36pt#]( comma_depth# )( 35, 56, 70, 84, 121, 700);
+gendef [1/36pt#]( desc_depth# )( 40, 67, 90, 120, 170, 900);
+gendef [1/36pt#](acc_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 130, 210, 250, 300, 432, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 9, 10, 13, 13, 13, 87);
+gendef [1/36pt#]( fine# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( thin_join# )( 8, 10, 10, 10, 10, 70);
+gendef [1/36pt#]( hair# )( 15, 16, 17, 18, 18, 135);
+gendef [1/36pt#]( stem# )( 24, 35, 41, 47, 59, 270);
+gendef [1/36pt#]( curve# )( 27, 39, 46, 52, 64, 280);
+gendef [1/36pt#]( ess# )( 19, 32, 38, 44, 56, 250);
+gendef [1/36pt#]( flare# )( 27, 39, 45, 51, 62, 280);
+gendef [1/36pt#]( dot_size# )( 31, 46, 56, 62, 74, 387);
+gendef [1/36pt#]( cap_hair# )( 17, 19, 19, 20, 21, 135);
+gendef [1/36pt#]( cap_stem# )( 28, 43, 51, 57, 69, 340);
+gendef [1/36pt#]( cap_curve# )( 31, 46, 55, 61, 73, 367);
+gendef [1/36pt#]( cap_ess# )( 24, 42.4, 53, 59, 71, 353);
+gendef [1/36pt#]( rule_thickness#)( 15, 19.5, 22, 24, 25, 220);
+gendef [1/36pt#]( dish# )( .7, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( bracket# )( 5, 8, 10, 12, 17, 100);
+gendef [1/36pt#]( jut# )( 13, 19, 25, 30, 42, 250);
+gendef [1/36pt#]( cap_jut# )( 19, 31, 39, 46, 56, 390);
+gendef [1/36pt#]( beak_jut# )( 7, 9.4, 11, 12, 14, 110);
+gendef [1/36pt#]( beak# )( 25, 55, 70, 84, 114, 700);
+gendef [1/36pt#]( vair# )( 10, 12, 13, 14, 14, 87);
+gendef [1/36pt#]( notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( slab# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_bar# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_band# )( 12, 15.3, 17, 18, 18, 170);
+gendef [1/36pt#]( cap_notch_cut# )( 180, 288, 360, 432, 622, 3600);
+gendef [1/36pt#]( serif_drop# )( 1.5, 2.4, 3, 4, 5, 30);
+gendef [1/36pt#]( stem_corr# )( 1.5, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1.5, 1.5, 1.5, 1.5, 1.5);
+gendef [1/36pt#]( apex_corr# )( 9, 1, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 3, 4, 4, 5, 6, 27);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 5, 20);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1.5, .9, .5, .5, .5, .5);
+otilt:=.2;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/grxu1000.mf b/Master/texmf-dist/fonts/source/public/cb/grxu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/grxu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmc.mf b/Master/texmf-dist/fonts/source/public/cb/gsmc.mf
new file mode 100644
index 00000000000..ff8421f6074
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmc.mf
@@ -0,0 +1,85 @@
+% Copyright (C) 1997, 1999, 2002 Claudio Beccari
+% file gsmc v.1.0b 2002/04/14
+% 256 character sans serif upright greek caps and small caps font
+% mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSMC";
+small_caps:=true; sclc:=1.19;
+font_size (gensize*pt#);
+basedef ( 5, 8, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 13.5, 17, 18.5, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 9, 12, 13, 15, 17, 24, 130);
+gendef [1/36pt#]( serif_fit# )( [-4], [-6], [-6.5], [-7], [-9], [-12], [-70]);
+gendef [1/36pt#]( cap_serif_fit# )( [-6], [-8.5], [-9], [-10], [-13], [-17],[-100]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 216, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 130, 205, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )( 125, 200, 225, 250, 300, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 118, 189, 212, 236, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 144, 160, 192, 267.8, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 81, 90, 108, 155.5, 900);
+gendef [1/36pt#]( bar_height# )( 40, 63, 71, 79, 97, 136, 820);
+gendef [1/36pt#]( comma_depth# )( 23, 37, 41, 45, 54, 78, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 63, 70, 84, 121, 900);
+gendef [1/36pt#](acc_ht# )( 125, 200, 225, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 113, 180, 203, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 125, 210, 230, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 36, 57.6, 64.8, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 12, 15, 16, 17, 20, 24, 113);
+gendef [1/36pt#]( hair# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( stem# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( curve# )( 21, 25, 27, 28, 30, 33, 187);
+gendef [1/36pt#]( ess# )( 21, 25, 27, 28, 33, 37, 180);
+gendef [1/36pt#]( flare# )( 20, 22, 24, 25, 30, 33, 180);
+gendef [1/36pt#]( dot_size# )( 20, 26, 28, 30, 35, 40, 380);
+gendef [1/36pt#]( cap_hair# )( 21, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( cap_stem# )( 26, 29, 31, 32, 33, 39, 206);
+gendef [1/36pt#]( cap_curve# )( 26, 29, 31, 32, 37, 42, 247);
+gendef [1/36pt#]( cap_ess# )( 21, 28, 31, 32, 37, 42, 233);
+gendef [1/36pt#]( rule_thickness#)( 10.9, 13, 13.7, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( .3, .4, .5, .5, .6, .8, 5);
+gendef [1/36pt#]( vair# )( 15, 19, 21, 22, 26, 31, 147);
+gendef [1/36pt#]( notch_cut# )( 15, 16, 17, 18, 22, 32, 180);
+gendef [1/36pt#]( bar# )( 14, 18, 20, 21, 25, 30, 210);
+gendef [1/36pt#]( slab# )( 16, 20, 22, 23, 27, 32, 230);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 21, 22, 26, 31, 220);
+gendef [1/36pt#]( cap_band# )( 12, 17, 19, 20, 24, 30, 200);
+gendef [1/36pt#]( cap_notch_cut# )( 18, 22, 24, 25, 31, 36, 250);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 2.5, 4, 4.5, 5, 6, 7, 33);
+gendef [1/36pt#]( o# )( 3, 6, 7, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0, 0);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .9, .93, .95, .96, .98, .98, 1);
+gendef ( math_spread )( .8, .4, .2, 0, [-.2], [-.2], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=1/20;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false ;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmc1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsmc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmi.mf b/Master/texmf-dist/fonts/source/public/cb/gsmi.mf
new file mode 100644
index 00000000000..e36ffe8e6a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmi.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1998, 1999,2002 Claudio Beccari
+% file gsmi v.1.0b 2002/04/14
+% 256 character sans serif oblique greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSMI";
+font_size (gensize*pt#);
+basedef ( 5, 8, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 13.5, 17, 18.5, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 9, 12, 13, 15, 17, 24, 130);
+gendef [1/36pt#]( serif_fit# )( [-4], [-6], [-6.5], [-7], [-9], [-12], [-70]);
+gendef [1/36pt#]( cap_serif_fit# )( [-6], [-8.5], [-9], [-10], [-13], [-17],[-100]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 216, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 130, 205, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )( 125, 200, 225, 250, 300, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 118, 189, 212, 236, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 144, 160, 192, 267.8, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 81, 90, 108, 155.5, 900);
+gendef [1/36pt#]( bar_height# )( 40, 63, 71, 79, 97, 136, 820);
+gendef [1/36pt#]( comma_depth# )( 23, 37, 41, 45, 54, 78, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 63, 70, 84, 121, 900);
+gendef [1/36pt#](acc_ht# )( 125, 200, 225, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 113, 180, 203, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 125, 210, 230, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 36, 57.6, 64.8, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 12, 15, 16, 17, 20, 24, 113);
+gendef [1/36pt#]( hair# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( stem# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( curve# )( 21, 25, 27, 28, 30, 33, 187);
+gendef [1/36pt#]( ess# )( 21, 25, 27, 28, 33, 37, 180);
+gendef [1/36pt#]( flare# )( 20, 22, 24, 25, 30, 33, 180);
+gendef [1/36pt#]( dot_size# )( 20, 26, 28, 30, 35, 40, 380);
+gendef [1/36pt#]( cap_hair# )( 21, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( cap_stem# )( 26, 29, 31, 32, 33, 39, 206);
+gendef [1/36pt#]( cap_curve# )( 26, 29, 31, 32, 37, 42, 247);
+gendef [1/36pt#]( cap_ess# )( 21, 28, 31, 32, 37, 42, 233);
+gendef [1/36pt#]( rule_thickness#)( 10.9, 13, 13.7, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( .3, .4, .5, .5, .6, .8, 5);
+gendef [1/36pt#]( vair# )( 15, 19, 21, 22, 26, 31, 147);
+gendef [1/36pt#]( notch_cut# )( 15, 16, 17, 18, 22, 32, 180);
+gendef [1/36pt#]( bar# )( 14, 18, 20, 21, 25, 30, 210);
+gendef [1/36pt#]( slab# )( 16, 20, 22, 23, 27, 32, 230);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 21, 22, 26, 31, 220);
+gendef [1/36pt#]( cap_band# )( 12, 17, 19, 20, 24, 30, 200);
+gendef [1/36pt#]( cap_notch_cut# )( 18, 22, 24, 25, 31, 36, 250);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 2.5, 4, 4.5, 5, 6, 7, 33);
+gendef [1/36pt#]( o# )( 3, 6, 7, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0, 0);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( .9, .93, .95, .96, .98, .98, 1);
+gendef ( math_spread )( .8, .4, .2, 0, [-.2], [-.2], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=1/20;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false ;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmi1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsmi1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmi1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmn.mf b/Master/texmf-dist/fonts/source/public/cb/gsmn.mf
new file mode 100644
index 00000000000..66a0cd5a641
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmn.mf
@@ -0,0 +1,83 @@
+% Copyright (C) 1997, 1999, 2002 Claudio Beccari
+% file gsmn v.1.0b 2002/04/14
+% 256 character sans serif upright greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSMN";
+font_size (gensize*pt#);
+basedef ( 5, 8, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 13.5, 17, 18.5, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 9, 12, 13, 15, 17, 24, 130);
+gendef [1/36pt#]( serif_fit# )( [-4], [-6], [-6.5], [-7], [-9], [-12], [-70]);
+gendef [1/36pt#]( cap_serif_fit# )( [-6],[-8.5], [-9], [-10], [-13], [-17],[-100]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 216, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 130, 205, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )( 125, 200, 225, 250, 300, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 118, 189, 212, 236, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 144, 160, 192, 267.8, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 81, 90, 108, 155.5, 900);
+gendef [1/36pt#]( bar_height# )( 40, 63, 71, 79, 97, 136, 820);
+gendef [1/36pt#]( comma_depth# )( 23, 37, 41, 45, 54, 78, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 63, 70, 84, 121, 900);
+gendef [1/36pt#](acc_ht# )( 125, 200, 225, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 113, 180, 203, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 125, 210, 230, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 36, 57.6, 64.8, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 12, 15, 16, 17, 20, 24, 113);
+gendef [1/36pt#]( hair# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( stem# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( curve# )( 21, 25, 27, 28, 30, 33, 187);
+gendef [1/36pt#]( ess# )( 21, 25, 27, 28, 33, 37, 180);
+gendef [1/36pt#]( flare# )( 20, 22, 24, 25, 30, 33, 180);
+gendef [1/36pt#]( dot_size# )( 20, 26, 28, 30, 35, 40, 380);
+gendef [1/36pt#]( cap_hair# )( 21, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( cap_stem# )( 26, 29, 31, 32, 33, 39, 206);
+gendef [1/36pt#]( cap_curve# )( 26, 29, 31, 32, 37, 42, 247);
+gendef [1/36pt#]( cap_ess# )( 21, 28, 31, 32, 37, 42, 233);
+gendef [1/36pt#]( rule_thickness#)( 10.9, 13, 13.7, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( .3, .4, .5, .5, .6, .8, 5);
+gendef [1/36pt#]( vair# )( 15, 19, 21, 22, 26, 31, 147);
+gendef [1/36pt#]( notch_cut# )( 15, 16, 17, 18, 22, 32, 180);
+gendef [1/36pt#]( bar# )( 14, 18, 20, 21, 25, 30, 210);
+gendef [1/36pt#]( slab# )( 16, 20, 22, 23, 27, 32, 230);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 21, 22, 26, 31, 220);
+gendef [1/36pt#]( cap_band# )( 12, 17, 19, 20, 24, 30, 200);
+gendef [1/36pt#]( cap_notch_cut# )( 18, 22, 24, 25, 31, 36, 250);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 2.5, 4, 4.5, 5, 6, 7, 33);
+gendef [1/36pt#]( o# )( 3, 6, 7, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0, 0);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .9, .93, .95, .96, .98, .98, 1);
+gendef ( math_spread )( .8, .4, .2, 0, [-.2], [-.2], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=1/20;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false ;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmn1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsmn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmo.mf b/Master/texmf-dist/fonts/source/public/cb/gsmo.mf
new file mode 100644
index 00000000000..17db21bd7f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmo.mf
@@ -0,0 +1,83 @@
+% Copyright (C) 1997, 1999,2002 Claudio Beccari
+% file gsmo v.1.0b 2002/04/14
+% 256 character sans serif oblique greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSMO";
+font_size (gensize*pt#);
+basedef ( 5, 8, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 13.5, 17, 18.5, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 9, 12, 13, 15, 17, 24, 130);
+gendef [1/36pt#]( serif_fit# )( [-4], [-6], [-6.5], [-7], [-9], [-12], [-70]);
+gendef [1/36pt#]( cap_serif_fit# )( [-6], [-8.5], [-9], [-10], [-13], [-17],[-100]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 216, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 130, 205, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )( 125, 200, 225, 250, 300, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 118, 189, 212, 236, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 144, 160, 192, 267.8, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 81, 90, 108, 155.5, 900);
+gendef [1/36pt#]( bar_height# )( 40, 63, 71, 79, 97, 136, 820);
+gendef [1/36pt#]( comma_depth# )( 23, 37, 41, 45, 54, 78, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 63, 70, 84, 121, 900);
+gendef [1/36pt#](acc_ht# )( 125, 200, 225, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 113, 180, 203, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 125, 210, 230, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 36, 57.6, 64.8, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 12, 15, 16, 17, 20, 24, 113);
+gendef [1/36pt#]( hair# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( stem# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( curve# )( 21, 25, 27, 28, 30, 33, 187);
+gendef [1/36pt#]( ess# )( 21, 25, 27, 28, 33, 37, 180);
+gendef [1/36pt#]( flare# )( 20, 22, 24, 25, 30, 33, 180);
+gendef [1/36pt#]( dot_size# )( 20, 26, 28, 30, 35, 40, 380);
+gendef [1/36pt#]( cap_hair# )( 21, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( cap_stem# )( 26, 29, 31, 32, 33, 39, 206);
+gendef [1/36pt#]( cap_curve# )( 26, 29, 31, 32, 37, 42, 247);
+gendef [1/36pt#]( cap_ess# )( 21, 28, 31, 32, 37, 42, 233);
+gendef [1/36pt#]( rule_thickness#)( 10.9, 13, 13.7, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( .3, .4, .5, .5, .6, .8, 5);
+gendef [1/36pt#]( vair# )( 15, 19, 21, 22, 26, 31, 147);
+gendef [1/36pt#]( notch_cut# )( 15, 16, 17, 18, 22, 32, 180);
+gendef [1/36pt#]( bar# )( 14, 18, 20, 21, 25, 30, 210);
+gendef [1/36pt#]( slab# )( 16, 20, 22, 23, 27, 32, 230);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 21, 22, 26, 31, 220);
+gendef [1/36pt#]( cap_band# )( 12, 17, 19, 20, 24, 30, 200);
+gendef [1/36pt#]( cap_notch_cut# )( 18, 22, 24, 25, 31, 36, 250);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 2.5, 4, 4.5, 5, 6, 7, 33);
+gendef [1/36pt#]( o# )( 3, 6, 7, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0, 0);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( .9, .93, .95, .96, .98, .98, 1);
+gendef ( math_spread )( .8, .4, .2, 0, [-.2], [-.2], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=1/20;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false ;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmo1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsmo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmu.mf b/Master/texmf-dist/fonts/source/public/cb/gsmu.mf
new file mode 100644
index 00000000000..22f2b7d46c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmu.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1998, 1999, 2002 Claudio Beccari
+% file gsmu v.1.0b 2002/04/14
+% 256 character sans serif upright greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSMU";
+font_size (gensize*pt#);
+basedef ( 5, 8, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 13.5, 17, 18.5, 20, 23.5, 32.5, 200);
+gendef [1/36pt#]( width_adj# )( 9, 12, 13, 15, 17, 24, 130);
+gendef [1/36pt#]( serif_fit# )( [-4], [-6], [-6.5], [-7], [-9], [-12], [-70]);
+gendef [1/36pt#]( cap_serif_fit# )( [-6], [-8.5], [-9], [-10], [-13], [-17],[-100]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 135, 216, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )( 130, 205, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )( 125, 200, 225, 250, 300, 425, 2460);
+gendef [1/36pt#]( fig_height# )( 118, 189, 212, 236, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 80, 128, 144, 160, 192, 267.8, 1550);
+gendef [1/36pt#]( math_axis# )( 45, 72, 81, 90, 108, 155.5, 900);
+gendef [1/36pt#]( bar_height# )( 40, 63, 71, 79, 97, 136, 820);
+gendef [1/36pt#]( comma_depth# )( 23, 37, 41, 45, 54, 78, 700);
+gendef [1/36pt#]( desc_depth# )( 35, 56, 63, 70, 84, 121, 900);
+gendef [1/36pt#](acc_ht# )( 125, 210, 230, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )( 113, 180, 203, 225, 275, 395, 2250);
+gendef [1/36pt#](Circ_ht# )( 125, 210, 230, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 36, 57.6, 64.8, 72, 86.4, 125, 720);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( fine# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( thin_join# )( 12, 15, 16, 17, 20, 24, 113);
+gendef [1/36pt#]( hair# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( stem# )( 19, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( curve# )( 21, 25, 27, 28, 30, 33, 187);
+gendef [1/36pt#]( ess# )( 21, 25, 27, 28, 33, 37, 180);
+gendef [1/36pt#]( flare# )( 20, 22, 24, 25, 30, 33, 180);
+gendef [1/36pt#]( dot_size# )( 20, 26, 28, 30, 35, 40, 380);
+gendef [1/36pt#]( cap_hair# )( 21, 25, 27, 28, 33, 37, 187);
+gendef [1/36pt#]( cap_stem# )( 26, 29, 31, 32, 33, 39, 206);
+gendef [1/36pt#]( cap_curve# )( 26, 29, 31, 32, 37, 42, 247);
+gendef [1/36pt#]( cap_ess# )( 21, 28, 31, 32, 37, 42, 233);
+gendef [1/36pt#]( rule_thickness#)( 10.9, 13, 13.7, 14.4, 16, 22, 144);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( .3, .4, .5, .5, .6, .8, 5);
+gendef [1/36pt#]( vair# )( 15, 19, 21, 22, 26, 31, 147);
+gendef [1/36pt#]( notch_cut# )( 15, 16, 17, 18, 22, 32, 180);
+gendef [1/36pt#]( bar# )( 14, 18, 20, 21, 25, 30, 210);
+gendef [1/36pt#]( slab# )( 16, 20, 22, 23, 27, 32, 230);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 21, 22, 26, 31, 220);
+gendef [1/36pt#]( cap_band# )( 12, 17, 19, 20, 24, 30, 200);
+gendef [1/36pt#]( cap_notch_cut# )( 18, 22, 24, 25, 31, 36, 250);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( vair_corr# )( 1, 1, 1, 1, 1, 1, 2);
+gendef [1/36pt#]( apex_corr# )( 2.5, 4, 4.5, 5, 6, 7, 33);
+gendef [1/36pt#]( o# )( 3, 6, 7, 8, 9, 10, 53);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0, 0);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .9, .93, .95, .96, .98, .98, 1);
+gendef ( math_spread )( .8, .4, .2, 0, [-.2], [-.2], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=1/20;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false ;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsmu1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsmu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsmu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxc.mf b/Master/texmf-dist/fonts/source/public/cb/gsxc.mf
new file mode 100644
index 00000000000..edbcf343234
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxc.mf
@@ -0,0 +1,85 @@
+% Copyright (C) 1997, 1999, 2002 Claudio Beccari
+% file gsxc v.1.0b 2002/04/13
+% 256 character sans serif upright bold greek caps and small caps font
+% mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSXC";
+small_caps:=true; sclc:=1.19;
+font_size (gensize*pt#);
+basedef ( 5, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12, 19, 22, 27, 40, 220);
+gendef [1/36pt#]( width_adj# )( 12, 19, 22, 19, 27, 220);
+gendef [1/36pt#]( serif_fit# )([-5], [-8], [-9], [-10], [-14], [-90]);
+gendef [1/36pt#]( cap_serif_fit# )([-6], [-9], [-11], [-15], [-20], [-110]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )(135, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )(130, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )(125, 225, 250, 300, 425, 2470);
+gendef [1/36pt#]( fig_height# )(125, 212, 250, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 83, 149, 165, 198, 280, 1650);
+gendef [1/36pt#]( math_axis# )( 45, 80, 90, 108, 150, 900);
+gendef [1/36pt#]( bar_height# )( 45, 80, 90, 95, 135, 900);
+gendef [1/36pt#]( comma_depth# )( 19, 34, 38, 54, 75, 380);
+gendef [1/36pt#]( desc_depth# )( 35, 62, 70, 84, 120, 900);
+gendef [1/36pt#](acc_ht# )(120, 220, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )(114, 207, 230, 275, 397, 2300);
+gendef [1/36pt#](Circ_ht# )(130, 225, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 124.4, 720);
+gendef [1/36pt#]( crisp# )( 12, 25, 26, 26, 26, 0);
+gendef [1/36pt#]( tiny# )( 12, 24, 26, 26, 26, 0);
+gendef [1/36pt#]( fine# )( 5, 7, 9, 9, 9, 0);
+gendef [1/36pt#]( thin_join# )( 11, 18, 19, 21, 25, 126);
+gendef [1/36pt#]( hair# )( 25, 40, 49, 50, 67, 233);
+gendef [1/36pt#]( stem# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( curve# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( ess# )( 22, 35, 43, 44, 60, 227);
+gendef [1/36pt#]( flare# )( 20, 39, 40, 41, 58, 227);
+gendef [1/36pt#]( dot_size# )( 24, 40, 47, 48, 65, 410);
+gendef [1/36pt#]( cap_hair# )( 24, 41, 48, 50, 67, 280);
+gendef [1/36pt#]( cap_stem# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_curve# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_ess# )( 26, 43, 51, 52, 68, 300);
+gendef [1/36pt#]( rule_thickness#)( 16, 29, 30, 31, 36, 300);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )(.75, 1.1, 1.5, 1.8, 3.5, 2);
+gendef [1/36pt#]( vair# )( 15, 22, 26, 27, 35, 140);
+gendef [1/36pt#]( notch_cut# )( 25, 42, 49, 50, 57, 327);
+gendef [1/36pt#]( bar# )( 13, 26, 26, 27, 35, 173);
+gendef [1/36pt#]( slab# )( 18, 35, 36, 37, 45, 240);
+gendef [1/36pt#]( cap_bar# )( 17, 33, 34, 35, 42, 227);
+gendef [1/36pt#]( cap_band# )( 16, 30, 31, 32, 40, 207);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 44, 45, 46, 53, 300);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( apex_corr# )( 15, 17, 18, 19, 20, 25);
+gendef [1/36pt#]( o# )( 5, 7, 8, 9, 10, 80);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )(.88, .88, .88, .88, .88, .88);
+gendef ( math_spread )(.45, .45, .5, .5, .5, .5);
+otilt:=.2;
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxc1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsxc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxi.mf b/Master/texmf-dist/fonts/source/public/cb/gsxi.mf
new file mode 100644
index 00000000000..483ce62aca1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxi.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1998, 1999, 2002 Claudio Beccari
+% file gsxi v.1.0b 2002/04/13
+% 256 character sans serif bold cursive greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSXI";
+font_size (gensize*pt#);
+basedef ( 5, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12, 19, 22, 27, 40, 220);
+gendef [1/36pt#]( width_adj# )( 12, 19, 22, 19, 27, 220);
+gendef [1/36pt#]( serif_fit# )([-5], [-8], [-9], [-10], [-14], [-90]);
+gendef [1/36pt#]( cap_serif_fit# )([-6], [-9], [-11], [-15], [-20], [-110]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )(135, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )(130, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )(125, 225, 250, 300, 425, 2470);
+gendef [1/36pt#]( fig_height# )(125, 212, 250, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 83, 149, 165, 198, 280, 1650);
+gendef [1/36pt#]( math_axis# )( 45, 80, 90, 108, 150, 900);
+gendef [1/36pt#]( bar_height# )( 45, 80, 90, 95, 135, 900);
+gendef [1/36pt#]( comma_depth# )( 19, 34, 38, 54, 75, 380);
+gendef [1/36pt#]( desc_depth# )( 35, 62, 70, 84, 120, 900);
+gendef [1/36pt#](acc_ht# )(120, 220, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )(114, 207, 230, 275, 397, 2300);
+gendef [1/36pt#](Circ_ht# )(130, 225, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 124.4, 720);
+gendef [1/36pt#]( crisp# )( 12, 25, 26, 26, 26, 0);
+gendef [1/36pt#]( tiny# )( 12, 24, 26, 26, 26, 0);
+gendef [1/36pt#]( fine# )( 5, 7, 9, 9, 9, 0);
+gendef [1/36pt#]( thin_join# )( 11, 18, 19, 21, 25, 126);
+gendef [1/36pt#]( hair# )( 25, 40, 49, 50, 67, 233);
+gendef [1/36pt#]( stem# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( curve# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( ess# )( 22, 35, 43, 44, 60, 227);
+gendef [1/36pt#]( flare# )( 20, 39, 40, 41, 58, 227);
+gendef [1/36pt#]( dot_size# )( 24, 40, 47, 48, 65, 410);
+gendef [1/36pt#]( cap_hair# )( 24, 41, 48, 50, 67, 280);
+gendef [1/36pt#]( cap_stem# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_curve# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_ess# )( 26, 43, 51, 52, 68, 300);
+gendef [1/36pt#]( rule_thickness#)( 16, 29, 30, 31, 36, 300);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )(.75, 1.1, 1.5, 1.8, 3.5, 2);
+gendef [1/36pt#]( vair# )( 15, 22, 26, 27, 35, 140);
+gendef [1/36pt#]( notch_cut# )( 25, 42, 49, 50, 57, 327);
+gendef [1/36pt#]( bar# )( 13, 26, 26, 27, 35, 173);
+gendef [1/36pt#]( slab# )( 18, 35, 36, 37, 45, 240);
+gendef [1/36pt#]( cap_bar# )( 17, 33, 34, 35, 42, 227);
+gendef [1/36pt#]( cap_band# )( 16, 30, 31, 32, 40, 207);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 44, 45, 46, 53, 300);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( apex_corr# )( 15, 17, 18, 19, 20, 25);
+gendef [1/36pt#]( o# )( 5, 7, 8, 9, 10, 80);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )(.88, .88, .88, .88, .88, .88);
+gendef ( math_spread )(.45, .45, .5, .5, .5, .5);
+otilt:=.2;
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+generate cbgreek;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxi1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsxi1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxi1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxn.mf b/Master/texmf-dist/fonts/source/public/cb/gsxn.mf
new file mode 100644
index 00000000000..0bbae386782
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxn.mf
@@ -0,0 +1,83 @@
+% Copyright (C) 1997, 1999, 2001, 2002 Claudio Beccari
+% file gsxn v.1.0c 2002/04/13
+% 256 character sans serif upright bold greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSXN";
+font_size (gensize*pt#);
+basedef ( 5, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12, 19, 22, 27, 40, 220);
+gendef [1/36pt#]( width_adj# )( 12, 19, 22, 19, 27, 220);
+gendef [1/36pt#]( serif_fit# )([-5], [-8], [-9], [-10], [-14], [-90]);
+gendef [1/36pt#]( cap_serif_fit# )([-6], [-9], [-11], [-15], [-20], [-110]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )(135, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )(130, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )(125, 225, 250, 300, 425, 2470);
+gendef [1/36pt#]( fig_height# )(125, 212, 250, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 83, 149, 165, 198, 280, 1650);
+gendef [1/36pt#]( math_axis# )( 45, 80, 90, 108, 150, 900);
+gendef [1/36pt#]( bar_height# )( 45, 80, 90, 95, 135, 900);
+gendef [1/36pt#]( comma_depth# )( 19, 34, 38, 54, 75, 380);
+gendef [1/36pt#]( desc_depth# )( 35, 62, 70, 84, 120, 900);
+gendef [1/36pt#](acc_ht# )(120, 220, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )(114, 207, 230, 275, 397, 2300);
+gendef [1/36pt#](Circ_ht# )(130, 225, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 124.4, 720);
+gendef [1/36pt#]( crisp# )( 12, 25, 26, 26, 26, 26);
+gendef [1/36pt#]( tiny# )( 12, 24, 26, 26, 26, 26);
+gendef [1/36pt#]( fine# )( 5, 7, 9, 9, 9, 9);
+gendef [1/36pt#]( thin_join# )( 11, 18, 19, 21, 25, 126);
+gendef [1/36pt#]( hair# )( 25, 40, 49, 50, 67, 233);
+gendef [1/36pt#]( stem# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( curve# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( ess# )( 22, 35, 43, 44, 60, 227);
+gendef [1/36pt#]( flare# )( 20, 39, 40, 41, 58, 227);
+gendef [1/36pt#]( dot_size# )( 24, 40, 47, 48, 65, 410);
+gendef [1/36pt#]( cap_hair# )( 24, 41, 48, 50, 67, 280);
+gendef [1/36pt#]( cap_stem# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_curve# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_ess# )( 26, 43, 51, 52, 68, 300);
+gendef [1/36pt#]( rule_thickness#)( 16, 29, 30, 31, 36, 300);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )(.75, 1.1, 1.5, 1.8, 3.5, 2);
+gendef [1/36pt#]( vair# )( 15, 22, 26, 27, 35, 140);
+gendef [1/36pt#]( notch_cut# )( 25, 42, 49, 50, 57, 327);
+gendef [1/36pt#]( bar# )( 13, 26, 26, 27, 35, 173);
+gendef [1/36pt#]( slab# )( 18, 35, 36, 37, 45, 240);
+gendef [1/36pt#]( cap_bar# )( 17, 33, 34, 35, 42, 227);
+gendef [1/36pt#]( cap_band# )( 16, 30, 31, 32, 40, 207);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 44, 45, 46, 53, 300);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( apex_corr# )( 15, 17, 18, 19, 20, 25);
+gendef [1/36pt#]( o# )( 5, 7, 8, 9, 10, 80);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )(.88, .88, .88, .88, .88, .88);
+gendef ( math_spread )(.45, .45, .5, .5, .5, .5);
+otilt:=.2;
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+generate cbgreek;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxn1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsxn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxo.mf b/Master/texmf-dist/fonts/source/public/cb/gsxo.mf
new file mode 100644
index 00000000000..0cca8571542
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxo.mf
@@ -0,0 +1,83 @@
+% Copyright (C) 1997, 1999, 2002 Claudio Beccari
+% file gsxo v.1.0b 2002/04/13
+% 256 character sans serif bold oblique greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSXO";
+font_size (gensize*pt#);
+basedef ( 5, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12, 19, 22, 27, 40, 220);
+gendef [1/36pt#]( width_adj# )( 12, 19, 22, 19, 27, 220);
+gendef [1/36pt#]( serif_fit# )([-5], [-8], [-9], [-10], [-14], [-90]);
+gendef [1/36pt#]( cap_serif_fit# )([-6], [-9], [-11], [-15], [-20], [-110]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )(135, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )(130, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )(125, 225, 250, 300, 425, 2470);
+gendef [1/36pt#]( fig_height# )(125, 212, 250, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 83, 149, 165, 198, 280, 1650);
+gendef [1/36pt#]( math_axis# )( 45, 80, 90, 108, 150, 900);
+gendef [1/36pt#]( bar_height# )( 45, 80, 90, 95, 135, 900);
+gendef [1/36pt#]( comma_depth# )( 19, 34, 38, 54, 75, 380);
+gendef [1/36pt#]( desc_depth# )( 35, 62, 70, 84, 120, 900);
+gendef [1/36pt#](acc_ht# )(120, 220, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )(114, 207, 230, 275, 397, 2300);
+gendef [1/36pt#](Circ_ht# )(130, 225, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 124.4, 720);
+gendef [1/36pt#]( crisp# )( 12, 25, 26, 26, 26, 0);
+gendef [1/36pt#]( tiny# )( 12, 24, 26, 26, 26, 0);
+gendef [1/36pt#]( fine# )( 5, 7, 9, 9, 9, 0);
+gendef [1/36pt#]( thin_join# )( 11, 18, 19, 21, 25, 126);
+gendef [1/36pt#]( hair# )( 25, 40, 49, 50, 67, 233);
+gendef [1/36pt#]( stem# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( curve# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( ess# )( 22, 35, 43, 44, 60, 227);
+gendef [1/36pt#]( flare# )( 20, 39, 40, 41, 58, 227);
+gendef [1/36pt#]( dot_size# )( 24, 40, 47, 48, 65, 410);
+gendef [1/36pt#]( cap_hair# )( 24, 41, 48, 50, 67, 280);
+gendef [1/36pt#]( cap_stem# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_curve# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_ess# )( 26, 43, 51, 52, 68, 300);
+gendef [1/36pt#]( rule_thickness#)( 16, 29, 30, 31, 36, 300);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )(.75, 1.1, 1.5, 1.8, 3.5, 2);
+gendef [1/36pt#]( vair# )( 15, 22, 26, 27, 35, 140);
+gendef [1/36pt#]( notch_cut# )( 25, 42, 49, 50, 57, 327);
+gendef [1/36pt#]( bar# )( 13, 26, 26, 27, 35, 173);
+gendef [1/36pt#]( slab# )( 18, 35, 36, 37, 45, 240);
+gendef [1/36pt#]( cap_bar# )( 17, 33, 34, 35, 42, 227);
+gendef [1/36pt#]( cap_band# )( 16, 30, 31, 32, 40, 207);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 44, 45, 46, 53, 300);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( apex_corr# )( 15, 17, 18, 19, 20, 25);
+gendef [1/36pt#]( o# )( 5, 7, 8, 9, 10, 80);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )(.88, .88, .88, .88, .88, .88);
+gendef ( math_spread )(.45, .45, .5, .5, .5, .5);
+otilt:=.2;
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+clear_extra_memory;
+generate cbgreek;
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxo1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsxo1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxo1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxu.mf b/Master/texmf-dist/fonts/source/public/cb/gsxu.mf
new file mode 100644
index 00000000000..3f8de85795e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxu.mf
@@ -0,0 +1,84 @@
+% Copyright (C) 1998, 1999, 2002 Claudio Beccari
+% file gsxu v.1.0b 2002/04/13
+% 256 character sans serif bold upright cursive greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GSXU";
+font_size (gensize*pt#);
+basedef ( 5, 9, 10, 12, 17.28, 100);
+gendef [1/36pt#]( u# )( 12, 19, 22, 27, 40, 220);
+gendef [1/36pt#]( width_adj# )( 12, 19, 22, 19, 27, 220);
+gendef [1/36pt#]( serif_fit# )([-5], [-8], [-9], [-10], [-14], [-90]);
+gendef [1/36pt#]( cap_serif_fit# )([-6], [-9], [-11], [-15], [-20], [-110]);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )(135, 243, 270, 324, 466, 2700);
+gendef [1/36pt#]( asc_height# )(130, 235, 260, 315, 445, 2500);
+gendef [1/36pt#]( cap_height# )(125, 225, 250, 300, 425, 2470);
+gendef [1/36pt#]( fig_height# )(125, 212, 250, 283, 408, 2320);
+gendef [1/36pt#]( x_height# )( 83, 149, 165, 198, 280, 1650);
+gendef [1/36pt#]( math_axis# )( 45, 80, 90, 108, 150, 900);
+gendef [1/36pt#]( bar_height# )( 45, 80, 90, 95, 135, 900);
+gendef [1/36pt#]( comma_depth# )( 19, 34, 38, 54, 75, 380);
+gendef [1/36pt#]( desc_depth# )( 35, 62, 70, 84, 120, 900);
+gendef [1/36pt#](acc_ht# )(120, 220, 250, 300, 432, 2500);
+gendef [1/36pt#](circ_ht# )(114, 207, 230, 275, 397, 2300);
+gendef [1/36pt#](Circ_ht# )(130, 225, 250, 300, 432, 2500);
+gendef [1/36pt#](iota_dp# )( 37, 57.6, 72, 86.4, 124.4, 720);
+gendef [1/36pt#]( crisp# )( 12, 25, 26, 26, 26, 0);
+gendef [1/36pt#]( tiny# )( 12, 24, 26, 26, 26, 0);
+gendef [1/36pt#]( fine# )( 5, 7, 9, 9, 9, 0);
+gendef [1/36pt#]( thin_join# )( 11, 18, 19, 21, 25, 126);
+gendef [1/36pt#]( hair# )( 25, 40, 49, 50, 67, 233);
+gendef [1/36pt#]( stem# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( curve# )( 25, 41, 49, 50, 67, 233);
+gendef [1/36pt#]( ess# )( 22, 35, 43, 44, 60, 227);
+gendef [1/36pt#]( flare# )( 20, 39, 40, 41, 58, 227);
+gendef [1/36pt#]( dot_size# )( 24, 40, 47, 48, 65, 410);
+gendef [1/36pt#]( cap_hair# )( 24, 41, 48, 50, 67, 280);
+gendef [1/36pt#]( cap_stem# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_curve# )( 26, 43, 51, 54, 70, 300);
+gendef [1/36pt#]( cap_ess# )( 26, 43, 51, 52, 68, 300);
+gendef [1/36pt#]( rule_thickness#)( 16, 29, 30, 31, 36, 300);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )(.75, 1.1, 1.5, 1.8, 3.5, 2);
+gendef [1/36pt#]( vair# )( 15, 22, 26, 27, 35, 140);
+gendef [1/36pt#]( notch_cut# )( 25, 42, 49, 50, 57, 327);
+gendef [1/36pt#]( bar# )( 13, 26, 26, 27, 35, 173);
+gendef [1/36pt#]( slab# )( 18, 35, 36, 37, 45, 240);
+gendef [1/36pt#]( cap_bar# )( 17, 33, 34, 35, 42, 227);
+gendef [1/36pt#]( cap_band# )( 16, 30, 31, 32, 40, 207);
+gendef [1/36pt#]( cap_notch_cut# )( 23, 44, 45, 46, 53, 300);
+gendef [1/36pt#]( serif_drop# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( stem_corr# )( 1, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( 2, 2, 2, 2, 2, 2);
+gendef [1/36pt#]( apex_corr# )( 15, 17, 18, 19, 20, 25);
+gendef [1/36pt#]( o# )( 5, 7, 8, 9, 10, 80);
+gendef [1/36pt#]( apex_o# )( 0, 0, 0, 0, 0, 0);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )(.88, .88, .88, .88, .88, .88);
+gendef ( math_spread )(.45, .45, .5, .5, .5, .5);
+otilt:=.2;
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+slitex:=false;
+straight:=false;
+monowidth:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gsxu1000.mf b/Master/texmf-dist/fonts/source/public/cb/gsxu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gsxu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gttc.mf b/Master/texmf-dist/fonts/source/public/cb/gttc.mf
new file mode 100644
index 00000000000..e67bad67d17
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gttc.mf
@@ -0,0 +1,88 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file gttc v.1.1 1999/11/14
+% 256 character typewriter type upright greek caps and small caps font
+% mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GTTC";
+small_caps:=true; sclc:=1.19;
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 21, 24.7, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 125, 200, 250, 300, 2500);
+gendef [1/36pt#]( asc_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( cap_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( fig_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 1550);
+gendef [1/36pt#]( math_axis# )( 55, 88, 110, 132, 1100);
+gendef [1/36pt#]( bar_height# )( 39.5, 63, 79, 95, 790);
+gendef [1/36pt#]( comma_depth# )( 25, 40, 50, 60, 500);
+gendef [1/36pt#]( desc_depth# )( 25, 64, 80, 96, 800);
+gendef [1/36pt#](acc_ht# )( 110, 210, 250, 300, 2300);
+gendef [1/36pt#](circ_ht# )( 110, 210, 250, 300, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 2500);
+gendef [1/36pt#](iota_dp# )( 22.5, 57.6, 64, 77, 640);
+gendef [1/36pt#]( crisp# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( tiny# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( fine# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( thin_join# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( hair# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( stem# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( curve# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( ess# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( flare# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( dot_size# )( 23.5, 31, 36, 39, 360);
+gendef [1/36pt#]( cap_hair# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_stem# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_curve# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_ess# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( rule_thickness#)( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( cap_jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( vair# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( slab# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_band# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 0, 8, 10, 11, 70);
+gendef [1/36pt#]( o# )( 2, 3, 4, 5, 25);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 15);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .81, .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+straight:=true;
+monowidth:=true;
+slitex:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gttc1000.mf b/Master/texmf-dist/fonts/source/public/cb/gttc1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gttc1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gtti.mf b/Master/texmf-dist/fonts/source/public/cb/gtti.mf
new file mode 100644
index 00000000000..5a3adf8afb9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gtti.mf
@@ -0,0 +1,88 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+% file gtti v.1.1 1999/11/14
+% 256 character typewriter type cursive greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GTTI";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 21, 24.7, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 125, 200, 250, 300, 2500);
+gendef [1/36pt#]( asc_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( cap_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( fig_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 1550);
+gendef [1/36pt#]( math_axis# )( 55, 88, 110, 132, 1100);
+gendef [1/36pt#]( bar_height# )( 39.5, 63, 79, 95, 790);
+gendef [1/36pt#]( comma_depth# )( 25, 40, 50, 60, 500);
+gendef [1/36pt#]( desc_depth# )( 25, 64, 80, 96, 800);
+gendef [1/36pt#](acc_ht# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#](circ_ht# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 2500);
+gendef [1/36pt#](iota_dp# )( 22.5, 57.6, 64, 77, 640);
+gendef [1/36pt#]( crisp# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( tiny# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( fine# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( thin_join# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( hair# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( stem# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( curve# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( ess# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( flare# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( dot_size# )( 23.5, 31, 36, 39, 360);
+gendef [1/36pt#]( cap_hair# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_stem# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_curve# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_ess# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( rule_thickness#)( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( cap_jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( vair# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( slab# )( 15, 29, 22, 25, 220);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_band# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 0, 8, 10, 11, 70);
+gendef [1/36pt#]( o# )( 2, 3, 4, 5, 25);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 15);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( .81, .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+straight:=true;
+monowidth:=true;
+slitex:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gtti1000.mf b/Master/texmf-dist/fonts/source/public/cb/gtti1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gtti1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gttn.mf b/Master/texmf-dist/fonts/source/public/cb/gttn.mf
new file mode 100644
index 00000000000..66633e37534
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gttn.mf
@@ -0,0 +1,85 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file gttn v.1.1 1999/11/14
+% 256 character typewriter type upright greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GTTN";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 21, 24.7, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 125, 200, 250, 300, 2500);
+gendef [1/36pt#]( asc_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( cap_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( fig_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 1550);
+gendef [1/36pt#]( math_axis# )( 55, 88, 110, 132, 1100);
+gendef [1/36pt#]( bar_height# )( 39.5, 63, 79, 95, 790);
+gendef [1/36pt#]( comma_depth# )( 25, 40, 50, 60, 500);
+gendef [1/36pt#]( desc_depth# )( 25, 64, 80, 96, 800);
+gendef [1/36pt#](acc_ht# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#](circ_ht# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 2500);
+gendef [1/36pt#](iota_dp# )( 22.5, 57.6, 64, 77, 640);
+gendef [1/36pt#]( crisp# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( tiny# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( fine# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( thin_join# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( hair# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( stem# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( curve# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( ess# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( flare# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( dot_size# )( 23.5, 31, 36, 39, 360);
+gendef [1/36pt#]( cap_hair# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_stem# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_curve# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_ess# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( rule_thickness#)( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( cap_jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( vair# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( slab# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_band# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 0, 8, 10, 11, 70);
+gendef [1/36pt#]( o# )( 2, 3, 4, 5, 25);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 15);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .81, .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+straight:=true;
+monowidth:=true;
+slitex:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gttn1000.mf b/Master/texmf-dist/fonts/source/public/cb/gttn1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gttn1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gtto.mf b/Master/texmf-dist/fonts/source/public/cb/gtto.mf
new file mode 100644
index 00000000000..2925b07fc39
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gtto.mf
@@ -0,0 +1,86 @@
+% Copyright (C) 1997, 1999 Claudio Beccari
+% file gtto v.1.1 1999/11/14
+% 256 character typewriter type oblique greek font mainly after Silvio Levy
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GTTO";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 21, 24.7, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 125, 200, 250, 300, 2500);
+gendef [1/36pt#]( asc_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( cap_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( fig_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 1550);
+gendef [1/36pt#]( math_axis# )( 55, 88, 110, 132, 1100);
+gendef [1/36pt#]( bar_height# )( 39.5, 63, 79, 95, 790);
+gendef [1/36pt#]( comma_depth# )( 25, 40, 50, 60, 500);
+gendef [1/36pt#]( desc_depth# )( 25, 64, 80, 96, 800);
+gendef [1/36pt#](acc_ht# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#](circ_ht# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 2500);
+gendef [1/36pt#](iota_dp# )( 22.5, 57.6, 64, 77, 640);
+gendef [1/36pt#]( crisp# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( tiny# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( fine# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( thin_join# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( hair# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( stem# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( curve# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( ess# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( flare# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( dot_size# )( 23.5, 31, 36, 39, 360);
+gendef [1/36pt#]( cap_hair# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_stem# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_curve# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_ess# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( rule_thickness#)( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( cap_jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( vair# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( slab# )( 15, 29, 22, 25, 220);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_band# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 0, 8, 10, 11, 70);
+gendef [1/36pt#]( o# )( 2, 3, 4, 5, 25);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 15);
+slant:=sind 12/cosd 12;
+%slant:=0;
+gendef ( fudge )( .81, .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+straight:=true;
+monowidth:=true;
+slitex:=false;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gtto1000.mf b/Master/texmf-dist/fonts/source/public/cb/gtto1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gtto1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cb/gttu.mf b/Master/texmf-dist/fonts/source/public/cb/gttu.mf
new file mode 100644
index 00000000000..0d9eb8d1245
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gttu.mf
@@ -0,0 +1,88 @@
+% Copyright (C) 1998, 1999 Claudio Beccari
+% file gttu v.1.1 1999/11/14
+% 256 character typewriter type upright cursive greek font
+%
+if unknown cmbase: input cmbase fi;
+if unknown cbbase: input cbbase fi;
+font_identifier:="GTTU";
+font_size (gensize*pt#);
+basedef ( 5, 8, 10, 12, 100);
+gendef [1/36pt#]( u# )( 12.5, 17, 21, 24.7, 210);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( letter_fit# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( body_height# )( 125, 200, 250, 300, 2500);
+gendef [1/36pt#]( asc_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( cap_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( fig_height# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#]( x_height# )( 77.5, 124, 155, 186, 1550);
+gendef [1/36pt#]( math_axis# )( 55, 88, 110, 132, 1100);
+gendef [1/36pt#]( bar_height# )( 39.5, 63, 79, 95, 790);
+gendef [1/36pt#]( comma_depth# )( 25, 40, 50, 60, 500);
+gendef [1/36pt#]( desc_depth# )( 25, 64, 80, 96, 800);
+gendef [1/36pt#](acc_ht# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#](circ_ht# )( 110, 180, 230, 274, 2300);
+gendef [1/36pt#](Circ_ht# )( 130, 210, 250, 300, 2500);
+gendef [1/36pt#](iota_dp# )( 22.5, 57.6, 64, 77, 640);
+gendef [1/36pt#]( crisp# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( tiny# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( fine# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( thin_join# )( 14.5, 18, 21, 22, 183);
+gendef [1/36pt#]( hair# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( stem# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( curve# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( ess# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( flare# )( 19, 22, 24, 27, 225);
+gendef [1/36pt#]( dot_size# )( 23.5, 31, 36, 39, 360);
+gendef [1/36pt#]( cap_hair# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_stem# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_curve# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( cap_ess# )( 19, 22, 25, 28, 233);
+gendef [1/36pt#]( rule_thickness#)( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( dish# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( bracket# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( cap_jut# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( beak_jut# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( beak# )( 17, 27, 34, 39, 325);
+gendef [1/36pt#]( vair# )( 15, 19, 22, 25, 208);
+gendef [1/36pt#]( notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( slab# )( 15, 29, 22, 25, 220);
+gendef [1/36pt#]( cap_bar# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_band# )( 15, 19, 22, 25, 220);
+gendef [1/36pt#]( cap_notch_cut# )( 19, 22, 25, 28, 250);
+gendef [1/36pt#]( serif_drop# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( stem_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( vair_corr# )( 0, 0, 0, 0, 0);
+gendef [1/36pt#]( apex_corr# )( 0, 8, 10, 11, 70);
+gendef [1/36pt#]( o# )( 2, 3, 4, 5, 25);
+gendef [1/36pt#]( apex_o# )( 3, 3, 3, 4, 15);
+%slant:=sind 12/cosd 12;
+slant:=0;
+gendef ( fudge )( .81, .81, .81, .81, .81);
+gendef ( math_spread )( [-1], [-1], [-1], [-1], [-1]);
+otilt:=.2;
+superness:=1/sqrt 2;
+superpull:=0;
+beak_darkness:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+variant_g:=false;
+low_asterisk:=true;
+math_fitting:=false;
+straight:=true;
+monowidth:=true;
+slitex:=false;
+cursive:=true;
+clear_extra_memory;
+
+generate cbgreek;
+endinput;
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cb/gttu1000.mf b/Master/texmf-dist/fonts/source/public/cb/gttu1000.mf
new file mode 100644
index 00000000000..f7e5f7594fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cb/gttu1000.mf
@@ -0,0 +1,2 @@
+%Generated by mkcbfonts
+input cbgreek;
diff --git a/Master/texmf-dist/fonts/source/public/cbcoptic/coptbase.mf b/Master/texmf-dist/fonts/source/public/cbcoptic/coptbase.mf
new file mode 100644
index 00000000000..0a8976050f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cbcoptic/coptbase.mf
@@ -0,0 +1,285 @@
+% This file defines the Metafont macros for producing fonts copto and copti:
+%copto ir "ordinary Coptic" and copti is "inclined Coptic".
+%
+% {limn output Sep 24 17:59:49 1995 from imageto output Sep 24 16:54:15 1995}
+% Generated Tue Dec 31 14:44:16 1996.
+% The original files were prepared by S. Rosmorduc in 1995; the necessity of
+% making postscrip outlines (with mftrace and pfaedit) and of extending the set of glyphs
+% with new signs required some modifications and a reorganization of the orignial material.
+%
+% The modifications were made by Claudio Beccari on Aug 3, 2004; the font and file names
+% were changed according to the prescriptions of the GNU GPL; see below.
+%
+% The bundle contains the files copto.mf, copti.mf and coptbase.mf and
+% the derived files which are: copto.tfm, copto.pk, copti.tfm, copti.pk (or whatelse
+% the local METAFONT generating process calls the pk files, for example copto.600pk),
+% and copto.pfb, copti.pfb; there is also a LaTeXe font definition file lcopcoptic.fd where
+% the COP LaTeX encoding is defined and a coptic.sty extension package where some macros
+% are defined for using inline Coptic script as well as displayed Coptic text with
+% the facilities needed for some philological markup; such information was given by
+% Cristiano Pulone.
+%
+% There is no encoding file and the pfb fonts are usable only under (La)TeX and
+% pdf(la)tex and their drivers for producing postscript output or pdf output.
+%
+%
+% There is no maintainer
+%
+% This font is in the public domain under the conditions of the GNU General Public Licence.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Copyright (C) 1992 Free Software Foundation, Inc.
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% |true_design_size| is supposed to be the design size of the original font.
+% If the user does not set |designsize| on the command line, we default to the following.
+
+true_design_size# := 10.000pt#;
+default_design_size# := 10pt#;
+if designsize = 0: designsize := default_design_size#; fi;
+
+% Actually the font might be declared to be 12pt, but the inner workings set up
+% by S. Rosmorduc make it difficult to simply change the true_ and the default_
+% design sizes so as to produce a real 12pt font. I (CB) let it stand this way
+% because the blacker design and the larger x-heigh make the Coptic script stand
+% out in evidence both along the lines maily written in Latin characters
+% and as displayed material.
+
+% It's pointless to actually produce different TFM files for different
+% design sizes: we have only one set of outlines, after all. So we
+% adjust the resolution to account for different sizes, by setting
+% |mag|. Then we reset |designsize| to the default.
+
+if unknown mag: mag := 1; fi; mag := mag * designsize / default_design_size#;
+
+% So we can produce output at varying sizes, all our dimensions are
+% output in terms of the ad hoc parameter |u|.
+%
+u# := default_design_size# / true_design_size#;
+
+designsize := default_design_size#;
+
+% Macros from page 289 of {\sl The Metafontbook} for short-circuit evaluation.
+%
+def cand (text q) = startif true q else: false fi enddef;
+def cor (text q) = startif true true else: q fi enddef;
+tertiarydef p startif true = if p: enddef;
+
+% The proof resolution of 2601.72 pixels per inch established by plain
+% \MF\ does not always work, because the characters might be too large
+% (or small, for that matter) for the paper size. So, here we change
+% the proof resolution to fit the design size of the font into
+% |proof_size| inches. To do this, we must know the resolution of the
+% device the proof output will be printed on; we make |proof_resolution|
+% default to 300.
+%
+if unknown mode cor ((mode = proof) or (mode = smoke)):
+ % Given in inches:
+ if unknown proof_size: proof_size := 4.982; fi;% era 7, ma veniva una dimensione strana e diversa da 2602 che e' il valore di default.
+
+ % Given in pixels per inch:
+ if unknown proof_resolution: proof_resolution := 300; fi;
+
+ % Set up the new mode to be the same as the old one, except for the
+ % resolution.
+ original_mode := if known mode: mode else: proof fi;
+ mode_def bzr_proof_mode =
+ if original_mode = proof:
+ proof_;
+ else:
+ smoke_;
+ fi;
+ pixels_per_inch
+ := (proof_size * proof_resolution)
+ * (72.27 / proof_resolution)
+ * (72.27 / designsize);
+ proofing:=3;
+ let makebox=maketicks;
+ enddef;
+ mode := bzr_proof_mode;
+fi;
+
+% Set up the device values for this run. Since we allow a nonstandard
+% value of |proofing| (see below), we must save its value, if it has
+% already been assigned.
+%
+if (known proofing) cand (proofing > 2):
+ save_proofing := proofing;
+fi
+
+
+mode_setup;
+
+if known save_proofing:
+ proofing := save_proofing;
+fi;
+
+
+% We can't define the pixel-oriented version of |u| until after
+% |mode_setup| has been called.
+
+define_pixels (u);
+
+ascender_height:=9.45u; ascender_height#:=9.45u#;
+x_height:=5.6u; x_height#:=5.6u#;
+descender_depth:=2u; descender_depth#:=2u#;
+
+% Use a font that blends better with the \MF\ logo for the title line.
+%
+special "titlefont cmss8";
+
+% If we are doing smoke proofs, put the character at its actual size on
+% the output; if we're doing gray proofs, use a smaller font for the
+% labels.
+%
+
+% Produce a |makelabel| command for each |z| point in |point_list| and
+% each suffix in |suffixes|.
+%
+def general_label (text point_list, suffixes) =
+ forsuffixes point_suffix = ,suffixes:
+ forsuffixes point = point_list:
+ % Unfortunately, the way in which the |str| operator formats its
+ % argument (which is an arbitrary suffix) cannot be changed, so
+ % the proofsheets end up showing "0 0" for the variable |z[0][0]|.
+ makelabel (str point.point_suffix, z.point.point_suffix);
+ endfor
+ endfor
+enddef;
+
+% Define our labels for the proofsheets. The person running Metafont
+% can also see the control points on each spline, by setting
+% |proofing>2| at the beginning. (The {\tt plain.mf} macros only
+% distinguish between |proofing=0|, |proofing>0| and |proofing>1|, so we
+% are not disturbing them.)
+%
+def proof_labels (text t) =
+ % We need to delimit the arguments here, so \MF\ knows where the
+ % second |text| argument begins. Our output uses the suffix |"s"| for
+ % startpoints of segments, and the suffixes |"c1"| and |"c2"| for
+ % control points.
+ if proofing > 1: general_label (t) (s); fi;
+ if proofing > 2: general_label (t) (c1,c2); fi;
+enddef;
+
+
+% We define our characters as filled outlines; page 206 of {\sl The
+% Metafontbook} suggests disabling \MF's |autorounding| and
+% |smoothing| features in that case.
+%
+autorounding := 0; % 0 avant pour les deux!
+smoothing := 0;
+
+% Sometimes we want to fill our paths, other times unfill them,
+% depending on whether the winding number is positive or negative. We
+% could be absolutely safe here, and declare |temp_path| inside a group,
+% at every invocation of |fill_or_unfill|; but this would waste time and
+% space to no advantage, since we know exactly what kind of \MF\
+% programs we output, and the variable |temp_path| is not used in them.
+%
+% Incidentally, we need a variable in the first place only because it is more
+% efficient to avoid evaluating long paths more than once.
+%
+path temp_path;
+
+def fill_or_unfill expr p =
+ temp_path := p;
+ if turningnumber temp_path > 0: fill else: unfill fi temp_path;
+enddef;
+
+% Since we can assume the font fills all cycles counterclockwise
+% (because PostScript requires this), we want to disable the
+% |turningnumber| checking which generates the `Strange path' errors.
+% See p.112 and p.119 of the Metafontbook.
+%
+% (By the way, setting |turningcheck := 0| makes Metafont always use the
+% filling rule for positive turning number, i.e., always |fill| and
+% never |unfill|. When would this be useful?)
+%
+turningcheck := 1;
+
+% When we don't know the dimensions of the character we're defining
+% before we define it, we have to use these to begin it:
+def begin_no_dimen_char (expr c) =
+ begingroup
+ transform save_currenttransform;
+ save_currenttransform := currenttransform;
+ charcode:=if known c: byte c else: 0 fi;
+ charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
+enddef;
+
+def end_no_dimen_char =
+ currenttransform := save_currenttransform;
+ endchar;
+enddef;
+
+% When use the above to start a character, must call this before `endchar'.
+%
+def set_char_dimens (expr w_sharp,h_sharp,d_sharp) =
+ charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp;
+ w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp);
+enddef;
+
+% Move by shifting the current transform matrix.
+%
+def move (expr h_amount, v_amount) =
+ currenttransform := currenttransform shifted (h_amount, v_amount);
+enddef;
+
+def hmove (expr amount) = move (amount, 0); enddef;
+def vmove (expr amount) = move (0, amount); enddef;
+def depart= 0; enddef;
+
+
+transform modif; modif := identity;
+
+% Definizione della currenttransform in cmbase.mf
+% currenttransform:=identity slanted slant
+% yscaled aspect_ratio scaled granularity;
+
+
+
+%% Patch to get a better letter spacing.
+extra_space_after:=0.9u#;
+
+def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
+ begingroup
+ charcode:=c + depart;
+ charwd:=w_sharp + extra_space_after;
+ charht:=h_sharp; chardp:=d_sharp;
+ italcorr h_sharp-.5u#;
+ w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp);
+ charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
+ transform save_currenttransform;
+ save_currenttransform= currenttransform;
+ currenttransform:= currenttransform transformed modif;
+ enddef;
+
+def endchar =
+ scantokens extra_endchar;
+ if proofing>0: makebox(proofrule); fi
+ chardx:=w; % desired width of the character in pixels
+ shipit;
+ if displaying>0: makebox(screenrule); showit; fi
+ currenttransform:= save_currenttransform;
+ endgroup enddef;
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_coding_scheme := "# encoding for coptic font ";
+font_identifier := "copto";
diff --git a/Master/texmf-dist/fonts/source/public/cbcoptic/copti.mf b/Master/texmf-dist/fonts/source/public/cbcoptic/copti.mf
new file mode 100644
index 00000000000..1f964f43f41
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cbcoptic/copti.mf
@@ -0,0 +1,7 @@
+% % File copti.mf
+% For bundle and licence information see the accompanying file coptbase.mf
+%
+% This file is just a preamble to the file copto.mf in order to get slanted glyphs;
+
+slant:=sind 15/cosd 15; % slant angle 12 degrees
+input copto;
diff --git a/Master/texmf-dist/fonts/source/public/cbcoptic/copto.mf b/Master/texmf-dist/fonts/source/public/cbcoptic/copto.mf
new file mode 100644
index 00000000000..d6e7df9855a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cbcoptic/copto.mf
@@ -0,0 +1,5750 @@
+% File copto.mf
+% For bundle and licence information see the accompanying file coptbase.mf
+%
+% Claudio Beccari 2004 v.2.1b
+% inserita la correzione italica
+
+
+input coptbase;
+if unknown slant: slant:=0 fi;
+modif:= modif slanted slant;
+
+beginchar (oct"70", 6.790u#, x_height#, 0.000u#);
+"thida"; %ASCII 56, char="8"
+ italcorr .75*x_height#*slant-.5u#;
+ z42\0\0s = (0.000u,3.074u);
+ z42\0\0c1 = (0.124u,2.332u);
+ z42\0\0c2 = (0.446u,2.422u);
+ z42\0\0 = (0.801u,1.863u);
+ z42\0\1c1 = (1.052u,1.467u);
+ z42\0\1c2 = (1.168u,0.956u);
+ z42\0\1 = (1.512u,0.628u);
+ z42\0\2c1 = (2.342u,-0.163u);
+ z42\0\2c2 = (4.366u,-0.200u);
+ z42\0\2 = (5.267u,0.476u);
+ z42\0\3c1 = (5.609u,0.732u);
+ z42\0\3c2 = (5.861u,1.257u);
+ z42\0\3 = (6.069u,1.628u);
+ z42\0\4c1 = (6.224u,1.904u);
+ z42\0\4c2 = (6.791u,2.581u);
+ z42\0\4 = (6.790u,2.825u);
+ z42\0\5 = (5.920u,4.278u);
+ z42\0\6c1 = (5.444u,5.079u);
+ z42\0\6c2 = (4.804u,5.586u);
+ z42\0\6 = (3.854u,5.603u);
+ z42\0\7c1 = (0.589u,5.661u);
+ z42\0\7c2 = (1.577u,3.525u);
+ z42\1\0s = (4.707u,3.075u);
+ z42\1\0 = (2.892u,3.075u);
+ z42\1\1c1 = (1.431u,3.133u);
+ z42\1\1c2 = (2.556u,5.532u);
+ z42\1\1 = (4.090u,4.656u);
+ z42\1\2c1 = (4.405u,4.476u);
+ z42\1\2c2 = (4.617u,4.273u);
+ z42\1\2 = (4.707u,3.915u);
+ z42\1\3c1 = (4.800u,3.614u);
+ z42\1\3c2 = (4.744u,3.371u);
+ z42\2\0s = (2.547u,2.279u);
+ z42\2\0c1 = (5.471u,2.940u);
+ z42\2\0c2 = (5.084u,0.840u);
+ z42\2\0 = (3.734u,0.681u);
+ z42\2\1c1 = (2.960u,0.589u);
+ z42\2\1c2 = (1.700u,1.690u);
+ fill_or_unfill z42\0\0s
+ ..controls z42\0\0c1 and z42\0\0c2..z42\0\0
+ ..controls z42\0\1c1 and z42\0\1c2..z42\0\1
+ ..controls z42\0\2c1 and z42\0\2c2..z42\0\2
+ ..controls z42\0\3c1 and z42\0\3c2..z42\0\3
+ ..controls z42\0\4c1 and z42\0\4c2..z42\0\4
+ --z42\0\5
+ ..controls z42\0\6c1 and z42\0\6c2..z42\0\6
+ ..controls z42\0\7c1 and z42\0\7c2..cycle;
+ fill_or_unfill z42\1\0s
+ --z42\1\0
+ ..controls z42\1\1c1 and z42\1\1c2..z42\1\1
+ ..controls z42\1\2c1 and z42\1\2c2..z42\1\2
+ ..controls z42\1\3c1 and z42\1\3c2..cycle;
+ fill_or_unfill z42\2\0s
+ ..controls z42\2\0c1 and z42\2\0c2..z42\2\0
+ ..controls z42\2\1c1 and z42\2\1c2..cycle;
+ proof_labels (
+ 42\0\0,
+ 42\0\1,
+ 42\0\2,
+ 42\0\3,
+ 42\0\4,
+ 42\0\5,
+ 42\0\6,
+ 42\0\7,
+ 42\1\0,
+ 42\1\1,
+ 42\1\2,
+ 42\1\3,
+ 42\2\0,
+ 42\2\1,
+);
+endchar;
+
+beginchar (65, 10.436u#, ascender_height#, 0.000u#);
+ "Alpha";
+ z65\0\0s = (1.084u,2.409u);
+ z65\0\0c1 = (-0.088u,2.207u);
+ z65\0\0c2 = (-0.061u,0.110u);
+ z65\0\0 = (2.168u,0.120u);
+ z65\0\1c1 = (4.132u,0.130u);
+ z65\0\1c2 = (3.752u,1.214u);
+ z65\0\1 = (4.938u,1.566u);
+ z65\0\2 = (4.938u,0.843u);
+ z65\0\3c1 = (5.248u,0.658u);
+ z65\0\3c2 = (5.457u,0.321u);
+ z65\0\3 = (5.788u,0.192u);
+ z65\0\4c1 = (7.024u,-0.287u);
+ z65\0\4c2 = (8.007u,0.807u);
+ z65\0\4 = (8.190u,1.927u);
+ z65\0\5c1 = (8.399u,1.541u);
+ z65\0\5c2 = (10.274u,-0.973u);
+ z65\0\5 = (10.445u,0.607u);
+ z65\0\6c1 = (10.497u,1.082u);
+ z65\0\6c2 = (10.009u,1.494u);
+ z65\0\6 = (9.842u,1.928u);
+ z65\0\7c1 = (9.055u,3.974u);
+ z65\0\7c2 = (9.045u,5.731u);
+ z65\0\7 = (7.199u,7.271u);
+ z65\0\8c1 = (6.857u,7.556u);
+ z65\0\8c2 = (5.701u,8.237u);
+ z65\0\8 = (5.300u,8.367u);
+ z65\0\9c1 = (4.150u,8.742u);
+ z65\0\9c2 = (-0.332u,9.235u);
+ z65\0\9 = (0.027u,7.107u);
+ z65\0\10c1 = (0.092u,6.724u);
+ z65\0\10c2 = (0.466u,6.138u);
+ z65\0\10 = (0.926u,6.393u);
+ z65\0\11c1 = (1.411u,6.663u);
+ z65\0\11c2 = (0.988u,7.452u);
+ z65\0\11 = (1.483u,7.861u);
+ z65\0\12c1 = (1.691u,8.032u);
+ z65\0\12c2 = (2.027u,8.080u);
+ z65\0\12 = (2.289u,8.051u);
+ z65\0\13c1 = (3.734u,7.889u);
+ z65\0\13c2 = (4.427u,5.682u);
+ z65\0\13 = (4.455u,4.457u);
+ z65\0\14c1 = (4.519u,1.663u);
+ z65\0\14c2 = (1.795u,-0.259u);
+ z65\1\0s = (4.577u,7.588u);
+ z65\1\0c1 = (5.621u,7.112u);
+ z65\1\0c2 = (6.478u,6.509u);
+ z65\1\0 = (7.141u,5.551u);
+ z65\1\1c1 = (7.765u,4.648u);
+ z65\1\1c2 = (8.232u,2.390u);
+ z65\1\1 = (7.296u,1.570u);
+ z65\1\2c1 = (6.871u,1.198u);
+ z65\1\2c2 = (6.428u,1.207u);
+ z65\1\2 = (5.902u,1.204u);
+ z65\1\3 = (5.309u,5.059u);
+ fill_or_unfill z65\0\0s
+ ..controls z65\0\0c1 and z65\0\0c2..z65\0\0
+ ..controls z65\0\1c1 and z65\0\1c2..z65\0\1
+ --z65\0\2
+ ..controls z65\0\3c1 and z65\0\3c2..z65\0\3
+ ..controls z65\0\4c1 and z65\0\4c2..z65\0\4
+ ..controls z65\0\5c1 and z65\0\5c2..z65\0\5
+ ..controls z65\0\6c1 and z65\0\6c2..z65\0\6
+ ..controls z65\0\7c1 and z65\0\7c2..z65\0\7
+ ..controls z65\0\8c1 and z65\0\8c2..z65\0\8
+ ..controls z65\0\9c1 and z65\0\9c2..z65\0\9
+ ..controls z65\0\10c1 and z65\0\10c2..z65\0\10
+ ..controls z65\0\11c1 and z65\0\11c2..z65\0\11
+ ..controls z65\0\12c1 and z65\0\12c2..z65\0\12
+ ..controls z65\0\13c1 and z65\0\13c2..z65\0\13
+ ..controls z65\0\14c1 and z65\0\14c2..cycle;
+ fill_or_unfill z65\1\0s
+ ..controls z65\1\0c1 and z65\1\0c2..z65\1\0
+ ..controls z65\1\1c1 and z65\1\1c2..z65\1\1
+ ..controls z65\1\2c1 and z65\1\2c2..z65\1\2
+ --z65\1\3
+ --cycle;
+ proof_labels (
+ 65\0\0,
+ 65\0\1,
+ 65\0\2,
+ 65\0\3,
+ 65\0\4,
+ 65\0\5,
+ 65\0\6,
+ 65\0\7,
+ 65\0\8,
+ 65\0\9,
+ 65\0\10,
+ 65\0\11,
+ 65\0\12,
+ 65\0\13,
+ 65\0\14,
+ 65\1\0,
+ 65\1\1,
+ 65\1\2,
+ 65\1\3,
+ 65\1\4,
+);
+endchar;
+
+beginchar (66, 8.431u#, ascender_height#, 0.000u#);
+ "Vida";
+ italcorr .7*ascender_height#*slant-.5u#;
+ z66\0\0s = (0.723u,8.152u);
+ z66\0\0 = (1.204u,6.947u);
+ z66\0\1 = (0.961u,1.302u);
+ z66\0\2 = (0.000u,0.202u);
+ z66\0\3 = (3.613u,0.000u);
+ z66\0\4 = (5.420u,0.104u);
+ z66\0\5 = (8.431u,0.202u);
+ z66\0\6 = (7.347u,0.805u);
+ z66\0\7c1 = (8.120u,2.621u);
+ z66\0\7c2 = (7.582u,3.707u);
+ z66\0\7 = (6.022u,4.779u);
+ z66\0\8c1 = (7.676u,6.101u);
+ z66\0\8c2 = (8.478u,8.385u);
+ z66\0\8 = (5.541u,8.516u);
+ z66\0\9c1 = (5.101u,8.538u);
+ z66\0\9c2 = (4.775u,8.618u);
+ z66\0\9 = (4.336u,8.516u);
+ z66\0\10c1 = (2.794u,8.511u);
+ z66\0\10c2 = (2.839u,8.125u);
+ z66\0\10 = (5.087u,7.913u);
+ z66\0\11c1 = (5.354u,7.735u);
+ z66\0\11c2 = (5.601u,7.533u);
+ z66\0\11 = (5.720u,7.168u);
+ z66\0\12c1 = (6.163u,5.809u);
+ z66\0\12c2 = (3.943u,4.328u);
+ z66\0\12 = (3.063u,5.092u);
+ z66\0\13c1 = (2.724u,5.387u);
+ z66\0\13c2 = (2.698u,7.100u);
+ z66\0\13 = (2.831u,7.529u);
+ z66\0\14 = (3.371u,8.474u);
+ z66\0\15c1 = (2.609u,8.599u);
+ z66\0\15c2 = (1.125u,8.688u);
+ z66\1\0s = (2.760u,0.925u);
+ z66\1\0c1 = (2.720u,1.540u);
+ z66\1\0c2 = (2.691u,1.994u);
+ z66\1\0 = (2.760u,2.611u);
+ z66\1\1c1 = (2.787u,3.003u);
+ z66\1\1c2 = (2.705u,3.717u);
+ z66\1\1 = (2.893u,4.038u);
+ z66\1\2c1 = (3.088u,4.370u);
+ z66\1\2c2 = (3.410u,4.389u);
+ z66\1\2 = (3.754u,4.405u);
+ z66\1\3c1 = (6.365u,4.532u);
+ z66\1\3c2 = (6.603u,1.120u);
+ z66\1\3 = (4.095u,0.647u);
+ z66\1\4c1 = (3.610u,0.556u);
+ z66\1\4c2 = (3.209u,0.760u);
+ fill_or_unfill z66\0\0s
+ --z66\0\0
+ --z66\0\1
+ --z66\0\2
+ --z66\0\3
+ --z66\0\4
+ --z66\0\5
+ --z66\0\6
+ ..controls z66\0\7c1 and z66\0\7c2..z66\0\7
+ ..controls z66\0\8c1 and z66\0\8c2..z66\0\8
+ ..controls z66\0\9c1 and z66\0\9c2..z66\0\9
+ ..controls z66\0\10c1 and z66\0\10c2..z66\0\10
+ ..controls z66\0\11c1 and z66\0\11c2..z66\0\11
+ ..controls z66\0\12c1 and z66\0\12c2..z66\0\12
+ ..controls z66\0\13c1 and z66\0\13c2..z66\0\13
+ --z66\0\14
+ ..controls z66\0\15c1 and z66\0\15c2..cycle;
+ fill_or_unfill z66\1\0s
+ ..controls z66\1\0c1 and z66\1\0c2..z66\1\0
+ ..controls z66\1\1c1 and z66\1\1c2..z66\1\1
+ ..controls z66\1\2c1 and z66\1\2c2..z66\1\2
+ ..controls z66\1\3c1 and z66\1\3c2..z66\1\3
+ ..controls z66\1\4c1 and z66\1\4c2..cycle;
+ proof_labels (
+ 66\0\0,
+ 66\0\1,
+ 66\0\2,
+ 66\0\3,
+ 66\0\4,
+ 66\0\5,
+ 66\0\6,
+ 66\0\7,
+ 66\0\8,
+ 66\0\9,
+ 66\0\10,
+ 66\0\11,
+ 66\0\12,
+ 66\0\13,
+ 66\0\14,
+ 66\0\15,
+ 66\1\0,
+ 66\1\1,
+ 66\1\2,
+ 66\1\3,
+ 66\1\4,
+);
+endchar;
+
+beginchar (67, 6.754u#, ascender_height#, 0.000u#);
+ "Sima";
+ italcorr .85*ascender_height#*slant-.5u#;
+ z67\0\0s = (2.751u,8.497u);
+ z67\0\0c1 = (2.114u,8.229u);
+ z67\0\0c2 = (1.272u,7.744u);
+ z67\0\0 = (0.848u,7.189u);
+ z67\0\1c1 = (-0.306u,5.671u);
+ z67\0\1c2 = (-0.322u,2.632u);
+ z67\0\1 = (1.041u,1.241u);
+ z67\0\2c1 = (1.572u,0.701u);
+ z67\0\2c2 = (2.283u,0.399u);
+ z67\0\2 = (2.992u,0.177u);
+ z67\0\3c1 = (4.063u,-0.159u);
+ z67\0\3c2 = (4.975u,-0.027u);
+ z67\0\3 = (5.898u,0.657u);
+ z67\0\4c1 = (6.449u,1.064u);
+ z67\0\4c2 = (7.179u,2.263u);
+ z67\0\4 = (6.444u,2.811u);
+ z67\0\5c1 = (6.254u,2.953u);
+ z67\0\5c2 = (6.003u,3.030u);
+ z67\0\5 = (5.768u,2.979u);
+ z67\0\6c1 = (4.846u,2.779u);
+ z67\0\6c2 = (5.376u,1.439u);
+ z67\0\6 = (4.435u,1.078u);
+ z67\0\7c1 = (2.153u,0.200u);
+ z67\0\7c2 = (1.205u,4.134u);
+ z67\0\7 = (1.694u,5.703u);
+ z67\0\8c1 = (1.989u,6.649u);
+ z67\0\8c2 = (3.416u,8.919u);
+ z67\0\8 = (4.617u,7.787u);
+ z67\0\9c1 = (5.099u,7.333u);
+ z67\0\9c2 = (4.812u,6.321u);
+ z67\0\9 = (5.428u,5.902u);
+ z67\0\10c1 = (5.983u,5.526u);
+ z67\0\10c2 = (6.635u,6.197u);
+ z67\0\10 = (6.528u,6.788u);
+ z67\0\11c1 = (6.232u,8.439u);
+ z67\0\11c2 = (4.106u,8.838u);
+ fill_or_unfill z67\0\0s
+ ..controls z67\0\0c1 and z67\0\0c2..z67\0\0
+ ..controls z67\0\1c1 and z67\0\1c2..z67\0\1
+ ..controls z67\0\2c1 and z67\0\2c2..z67\0\2
+ ..controls z67\0\3c1 and z67\0\3c2..z67\0\3
+ ..controls z67\0\4c1 and z67\0\4c2..z67\0\4
+ ..controls z67\0\5c1 and z67\0\5c2..z67\0\5
+ ..controls z67\0\6c1 and z67\0\6c2..z67\0\6
+ ..controls z67\0\7c1 and z67\0\7c2..z67\0\7
+ ..controls z67\0\8c1 and z67\0\8c2..z67\0\8
+ ..controls z67\0\9c1 and z67\0\9c2..z67\0\9
+ ..controls z67\0\10c1 and z67\0\10c2..z67\0\10
+ ..controls z67\0\11c1 and z67\0\11c2..cycle;
+ proof_labels (
+ 67\0\0,
+ 67\0\1,
+ 67\0\2,
+ 67\0\3,
+ 67\0\4,
+ 67\0\5,
+ 67\0\6,
+ 67\0\7,
+ 67\0\8,
+ 67\0\9,
+ 67\0\10,
+ 67\0\11,
+);
+endchar;
+
+beginchar (68, 10.569u#, ascender_height#, 0.000u#);
+ "Dalda";
+ z68\0\0s = (10.473u,0.061u);
+ z68\0\0 = (10.569u,0.788u);
+ z68\0\1c1 = (7.319u,1.404u);
+ z68\0\1c2 = (6.651u,7.318u);
+ z68\0\1 = (4.730u,8.313u);
+ z68\0\2c1 = (3.594u,8.902u);
+ z68\0\2c2 = (2.132u,8.713u);
+ z68\0\2 = (0.898u,8.650u);
+ z68\0\3c1 = (0.163u,8.613u);
+ z68\0\3c2 = (-0.352u,7.966u);
+ z68\0\3 = (0.290u,7.376u);
+ z68\0\4c1 = (1.260u,6.485u);
+ z68\0\4c2 = (1.972u,9.458u);
+ z68\0\4 = (3.578u,7.640u);
+ z68\0\5c1 = (5.357u,5.629u);
+ z68\0\5c2 = (4.565u,4.557u);
+ z68\0\5 = (3.347u,2.589u);
+ z68\0\6c1 = (3.049u,2.106u);
+ z68\0\6c2 = (2.785u,1.448u);
+ z68\0\6 = (2.341u,1.089u);
+ z68\0\7c1 = (2.022u,0.831u);
+ z68\0\7c2 = (1.132u,0.718u);
+ z68\0\7 = (1.046u,0.432u);
+ z68\0\8c1 = (0.889u,-0.092u);
+ z68\0\8c2 = (1.768u,0.004u);
+ z68\0\8 = (2.039u,0.012u);
+ z68\0\9c1 = (4.825u,0.103u);
+ z68\0\9c2 = (7.707u,0.359u);
+ z68\1\0s = (7.792u,0.934u);
+ z68\1\0 = (3.217u,0.776u);
+ z68\1\1c1 = (3.277u,1.490u);
+ z68\1\1c2 = (3.920u,2.238u);
+ z68\1\1 = (4.290u,2.862u);
+ z68\1\2c1 = (4.498u,3.210u);
+ z68\1\2c2 = (5.047u,4.270u);
+ z68\1\2 = (5.415u,4.381u);
+ z68\1\3c1 = (5.961u,4.546u);
+ z68\1\3c2 = (7.623u,1.494u);
+ fill_or_unfill z68\0\0s
+ --z68\0\0
+ ..controls z68\0\1c1 and z68\0\1c2..z68\0\1
+ ..controls z68\0\2c1 and z68\0\2c2..z68\0\2
+ ..controls z68\0\3c1 and z68\0\3c2..z68\0\3
+ ..controls z68\0\4c1 and z68\0\4c2..z68\0\4
+ ..controls z68\0\5c1 and z68\0\5c2..z68\0\5
+ ..controls z68\0\6c1 and z68\0\6c2..z68\0\6
+ ..controls z68\0\7c1 and z68\0\7c2..z68\0\7
+ ..controls z68\0\8c1 and z68\0\8c2..z68\0\8
+ ..controls z68\0\9c1 and z68\0\9c2..cycle;
+ fill_or_unfill z68\1\0s
+ --z68\1\0
+ ..controls z68\1\1c1 and z68\1\1c2..z68\1\1
+ ..controls z68\1\2c1 and z68\1\2c2..z68\1\2
+ ..controls z68\1\3c1 and z68\1\3c2..cycle;
+ proof_labels (
+ 68\0\0,
+ 68\0\1,
+ 68\0\2,
+ 68\0\3,
+ 68\0\4,
+ 68\0\5,
+ 68\0\6,
+ 68\0\7,
+ 68\0\8,
+ 68\0\9,
+ 68\1\0,
+ 68\1\1,
+ 68\1\2,
+ 68\1\3,
+);
+endchar;
+
+beginchar (69, 7.347u#, ascender_height#, 0.000u#);
+ "Ei";
+ italcorr .8*ascender_height#*slant-.5u#;
+ z69\0\0s = (5.541u,2.650u);
+ z69\0\0c1 = (5.291u,1.428u);
+ z69\0\0c2 = (4.790u,0.848u);
+ z69\0\0 = (3.498u,0.834u);
+ z69\0\1c1 = (3.115u,0.830u);
+ z69\0\1c2 = (2.875u,0.791u);
+ z69\0\1 = (2.550u,1.049u);
+ z69\0\2c1 = (2.131u,1.379u);
+ z69\0\2c2 = (1.796u,2.141u);
+ z69\0\2 = (1.656u,2.649u);
+ z69\0\3c1 = (1.453u,3.388u);
+ z69\0\3c2 = (1.557u,4.293u);
+ z69\0\3 = (1.566u,5.059u);
+ z69\0\4c1 = (1.583u,6.441u);
+ z69\0\4c2 = (2.889u,9.138u);
+ z69\0\4 = (4.555u,7.651u);
+ z69\0\5c1 = (5.304u,6.982u);
+ z69\0\5c2 = (5.350u,6.059u);
+ z69\0\5 = (5.662u,5.730u);
+ z69\0\6c1 = (6.008u,5.365u);
+ z69\0\6c2 = (6.662u,5.551u);
+ z69\0\6 = (6.802u,6.028u);
+ z69\0\7c1 = (6.915u,6.413u);
+ z69\0\7c2 = (6.747u,6.794u);
+ z69\0\7 = (6.528u,7.105u);
+ z69\0\8c1 = (5.645u,8.359u);
+ z69\0\8c2 = (3.965u,8.788u);
+ z69\0\8 = (2.529u,8.386u);
+ z69\0\9c1 = (-1.263u,7.327u);
+ z69\0\9c2 = (-0.757u,0.177u);
+ z69\0\9 = (3.493u,0.149u);
+ z69\0\10c1 = (3.866u,0.116u);
+ z69\0\10c2 = (4.700u,0.080u);
+ z69\0\10 = (5.024u,0.149u);
+ z69\0\11c1 = (5.643u,0.360u);
+ z69\0\11c2 = (7.726u,2.001u);
+ z69\0\11 = (6.573u,2.581u);
+ z69\0\12c1 = (6.377u,2.679u);
+ z69\0\12c2 = (5.780u,2.650u);
+ z69\1\0s = (2.048u,4.457u);
+ z69\1\0c1 = (2.159u,4.285u);
+ z69\1\0c2 = (2.223u,4.136u);
+ z69\1\0 = (2.436u,4.067u);
+ z69\1\1 = (6.504u,3.915u);
+ z69\1\2c1 = (6.730u,3.911u);
+ z69\1\2c2 = (7.467u,3.943u);
+ z69\1\2 = (7.207u,4.387u);
+ z69\1\3c1 = (6.893u,4.922u);
+ z69\1\3c2 = (2.697u,4.718u);
+ fill_or_unfill z69\0\0s
+ ..controls z69\0\0c1 and z69\0\0c2..z69\0\0
+ ..controls z69\0\1c1 and z69\0\1c2..z69\0\1
+ ..controls z69\0\2c1 and z69\0\2c2..z69\0\2
+ ..controls z69\0\3c1 and z69\0\3c2..z69\0\3
+ ..controls z69\0\4c1 and z69\0\4c2..z69\0\4
+ ..controls z69\0\5c1 and z69\0\5c2..z69\0\5
+ ..controls z69\0\6c1 and z69\0\6c2..z69\0\6
+ ..controls z69\0\7c1 and z69\0\7c2..z69\0\7
+ ..controls z69\0\8c1 and z69\0\8c2..z69\0\8
+ ..controls z69\0\9c1 and z69\0\9c2..z69\0\9
+ ..controls z69\0\10c1 and z69\0\10c2..z69\0\10
+ ..controls z69\0\11c1 and z69\0\11c2..z69\0\11
+ ..controls z69\0\12c1 and z69\0\12c2..cycle;
+ fill_or_unfill z69\1\0s
+ ..controls z69\1\0c1 and z69\1\0c2..z69\1\0
+ --z69\1\1
+ ..controls z69\1\2c1 and z69\1\2c2..z69\1\2
+ ..controls z69\1\3c1 and z69\1\3c2..cycle;
+ proof_labels (
+ 69\0\0,
+ 69\0\1,
+ 69\0\2,
+ 69\0\3,
+ 69\0\4,
+ 69\0\5,
+ 69\0\6,
+ 69\0\7,
+ 69\0\8,
+ 69\0\9,
+ 69\0\10,
+ 69\0\11,
+ 69\0\12,
+ 69\1\0,
+ 69\1\1,
+ 69\1\2,
+ 69\1\3,
+);
+endchar;
+
+beginchar (70, 6.552u#, ascender_height#, 0.000u#);
+ "Fei";
+ italcorr .95*ascender_height#*slant-.1u#;
+ z70\0\0s = (2.903u,0.000u);
+ z70\0\0 = (6.552u,0.000u);
+ z70\0\1c1 = (6.552u,0.811u);
+ z70\0\1c2 = (5.336u,0.405u);
+ z70\0\1 = (5.336u,1.216u);
+ z70\0\2 = (5.336u,7.298u);
+ z70\0\3c1 = (5.336u,8.109u);
+ z70\0\3c2 = (6.552u,7.704u);
+ z70\0\3 = (6.552u,8.515u);
+ z70\0\4 = (2.903u,8.515u);
+ z70\0\5c1 = (2.903u,7.704u);
+ z70\0\5c2 = (4.119u,8.109u);
+ z70\0\5 = (4.119u,7.298u);
+ z70\0\6 = (4.119u,1.216u);
+ z70\0\7c1 = (4.119u,0.405u);
+ z70\0\7c2 = (2.903u,0.811u);
+ z70\1\0s = (4.483u,3.637u);
+ z70\1\0 = (4.274u,4.570u);
+ z70\1\1c1 = (3.439u,3.957u);
+ z70\1\1c2 = (1.534u,5.012u);
+ z70\1\1 = (1.010u,5.712u);
+ z70\1\2c1 = (0.719u,6.102u);
+ z70\1\2c2 = (0.036u,7.267u);
+ z70\1\2 = (0.726u,7.582u);
+ z70\1\3c1 = (1.084u,7.746u);
+ z70\1\3c2 = (1.891u,7.432u);
+ z70\1\3 = (2.074u,7.896u);
+ z70\1\4c1 = (2.431u,8.808u);
+ z70\1\4c2 = (-0.190u,8.994u);
+ z70\1\4 = (0.007u,6.655u);
+ z70\1\5c1 = (0.280u,3.412u);
+ z70\1\5c2 = (4.100u,4.389u);
+ fill_or_unfill z70\0\0s
+ --z70\0\0
+ ..controls z70\0\1c1 and z70\0\1c2..z70\0\1
+ --z70\0\2
+ ..controls z70\0\3c1 and z70\0\3c2..z70\0\3
+ --z70\0\4
+ ..controls z70\0\5c1 and z70\0\5c2..z70\0\5
+ --z70\0\6
+ ..controls z70\0\7c1 and z70\0\7c2..cycle;
+ fill_or_unfill z70\1\0s
+ --z70\1\0
+ ..controls z70\1\1c1 and z70\1\1c2..z70\1\1
+ ..controls z70\1\2c1 and z70\1\2c2..z70\1\2
+ ..controls z70\1\3c1 and z70\1\3c2..z70\1\3
+ ..controls z70\1\4c1 and z70\1\4c2..z70\1\4
+ ..controls z70\1\5c1 and z70\1\5c2..cycle;
+ proof_labels (
+ 70\0\0,
+ 70\0\1,
+ 70\0\2,
+ 70\0\3,
+ 70\0\4,
+ 70\0\5,
+ 70\0\6,
+ 70\0\7,
+ 70\1\0,
+ 70\1\1,
+ 70\1\2,
+ 70\1\3,
+ 70\1\4,
+ 70\1\5,
+);
+endchar;
+
+beginchar (71, 7.588u#, ascender_height#, 0.000u#);
+ "Gamma";
+ italcorr .95*ascender_height#*slant-.5u#;
+ z71\0\0s = (0.000u,8.432u);
+ z71\0\0 = (1.148u,6.139u);
+ z71\0\1 = (1.720u,3.493u);
+ z71\0\2c1 = (2.211u,1.648u);
+ z71\0\2c2 = (3.406u,0.093u);
+ z71\0\2 = (5.420u,0.000u);
+ z71\0\3 = (3.893u,1.928u);
+ z71\0\4 = (2.605u,5.541u);
+ z71\0\5 = (1.445u,8.070u);
+ z71\0\6 = (2.540u,8.230u);
+ z71\0\7 = (5.420u,8.070u);
+ z71\0\8c1 = (5.420u,6.742u);
+ z71\0\8c2 = (5.703u,4.862u);
+ z71\0\8 = (7.588u,5.541u);
+ z71\0\9c1 = (7.019u,6.538u);
+ z71\0\9c2 = (5.703u,7.205u);
+ z71\0\9 = (7.227u,8.191u);
+ z71\0\10 = (7.227u,8.432u);
+ z71\0\11c1 = (6.339u,8.687u);
+ z71\0\11c2 = (0.935u,8.660u);
+ fill_or_unfill z71\0\0s
+ --z71\0\0
+ --z71\0\1
+ ..controls z71\0\2c1 and z71\0\2c2..z71\0\2
+ --z71\0\3
+ --z71\0\4
+ --z71\0\5
+ --z71\0\6
+ --z71\0\7
+ ..controls z71\0\8c1 and z71\0\8c2..z71\0\8
+ ..controls z71\0\9c1 and z71\0\9c2..z71\0\9
+ --z71\0\10
+ ..controls z71\0\11c1 and z71\0\11c2..cycle;
+ proof_labels (
+ 71\0\0,
+ 71\0\1,
+ 71\0\2,
+ 71\0\3,
+ 71\0\4,
+ 71\0\5,
+ 71\0\6,
+ 71\0\7,
+ 71\0\8,
+ 71\0\9,
+ 71\0\10,
+ 71\0\11,
+);
+endchar;
+
+beginchar (72, 7.709u#, ascender_height#, 0.000u#);
+ "Hida";
+ italcorr .95*ascender_height#*slant-.1u#;
+ z72\0\0s = (0.775u,8.312u);
+ z72\0\0 = (0.792u,0.966u);
+ z72\0\1 = (0.000u,0.000u);
+ z72\0\2 = (3.372u,0.000u);
+ z72\0\3 = (2.601u,0.738u);
+ z72\0\4c1 = (2.221u,1.266u);
+ z72\0\4c2 = (2.080u,3.077u);
+ z72\0\4 = (2.700u,3.461u);
+ z72\0\5c1 = (3.015u,3.700u);
+ z72\0\5c2 = (4.812u,3.681u);
+ z72\0\5 = (5.102u,3.461u);
+ z72\0\6c1 = (5.349u,3.219u);
+ z72\0\6c2 = (5.307u,2.935u);
+ z72\0\6 = (5.303u,2.645u);
+ z72\0\7c1 = (5.297u,2.222u);
+ z72\0\7c2 = (5.382u,1.049u);
+ z72\0\7 = (5.218u,0.729u);
+ z72\0\8 = (4.577u,0.000u);
+ z72\0\9 = (6.986u,0.000u);
+ z72\0\10 = (6.732u,0.843u);
+ z72\0\11 = (6.935u,7.102u);
+ z72\0\12 = (7.709u,8.311u);
+ z72\0\13 = (4.457u,8.311u);
+ z72\0\14 = (5.298u,7.461u);
+ z72\0\15 = (5.298u,4.336u);
+ z72\0\16c1 = (4.875u,4.336u);
+ z72\0\16c2 = (3.069u,4.286u);
+ z72\0\16 = (2.797u,4.408u);
+ z72\0\17c1 = (2.256u,4.652u);
+ z72\0\17c2 = (2.289u,6.981u);
+ z72\0\17 = (2.550u,7.455u);
+ z72\0\18c1 = (2.742u,7.801u);
+ z72\0\18c2 = (3.138u,7.972u);
+ z72\0\18 = (3.372u,8.311u);
+ fill_or_unfill z72\0\0s
+ --z72\0\0
+ --z72\0\1
+ --z72\0\2
+ --z72\0\3
+ ..controls z72\0\4c1 and z72\0\4c2..z72\0\4
+ ..controls z72\0\5c1 and z72\0\5c2..z72\0\5
+ ..controls z72\0\6c1 and z72\0\6c2..z72\0\6
+ ..controls z72\0\7c1 and z72\0\7c2..z72\0\7
+ --z72\0\8
+ --z72\0\9
+ --z72\0\10
+ --z72\0\11
+ --z72\0\12
+ --z72\0\13
+ --z72\0\14
+ --z72\0\15
+ ..controls z72\0\16c1 and z72\0\16c2..z72\0\16
+ ..controls z72\0\17c1 and z72\0\17c2..z72\0\17
+ ..controls z72\0\18c1 and z72\0\18c2..z72\0\18
+ --cycle;
+ proof_labels (
+ 72\0\0,
+ 72\0\1,
+ 72\0\2,
+ 72\0\3,
+ 72\0\4,
+ 72\0\5,
+ 72\0\6,
+ 72\0\7,
+ 72\0\8,
+ 72\0\9,
+ 72\0\10,
+ 72\0\11,
+ 72\0\12,
+ 72\0\13,
+ 72\0\14,
+ 72\0\15,
+ 72\0\16,
+ 72\0\17,
+ 72\0\18,
+ 72\0\19,
+);
+endchar;
+
+beginchar (73, 3.734u#, ascender_height#, 0.000u#);
+ "Iauda";
+ italcorr .95*ascender_height#*slant-.2u#;
+ z73\0\0s = (0.241u,8.358u);
+ z73\0\0 = (0.241u,7.877u);
+ z73\0\1c1 = (0.604u,7.749u);
+ z73\0\1c2 = (0.822u,7.651u);
+ z73\0\1 = (0.977u,7.269u);
+ z73\0\2c1 = (1.179u,6.771u);
+ z73\0\2c2 = (1.134u,1.856u);
+ z73\0\2 = (0.899u,1.384u);
+ z73\0\3c1 = (0.718u,1.020u);
+ z73\0\3c2 = (0.361u,0.886u);
+ z73\0\3 = (0.000u,0.770u);
+ z73\0\4c1 = (0.311u,-0.253u);
+ z73\0\4c2 = (1.654u,0.032u);
+ z73\0\4 = (2.529u,0.048u);
+ z73\0\5c1 = (2.791u,0.053u);
+ z73\0\5c2 = (3.295u,0.036u);
+ z73\0\5 = (3.297u,0.416u);
+ z73\0\6c1 = (3.299u,0.755u);
+ z73\0\6c2 = (2.739u,1.056u);
+ z73\0\6 = (2.663u,1.734u);
+ z73\0\7c1 = (2.445u,3.663u);
+ z73\0\7c2 = (2.614u,5.702u);
+ z73\0\7 = (2.770u,7.636u);
+ z73\0\8 = (3.734u,7.997u);
+ z73\0\9c1 = (3.145u,8.784u);
+ z73\0\9c2 = (1.134u,8.366u);
+ fill_or_unfill z73\0\0s
+ --z73\0\0
+ ..controls z73\0\1c1 and z73\0\1c2..z73\0\1
+ ..controls z73\0\2c1 and z73\0\2c2..z73\0\2
+ ..controls z73\0\3c1 and z73\0\3c2..z73\0\3
+ ..controls z73\0\4c1 and z73\0\4c2..z73\0\4
+ ..controls z73\0\5c1 and z73\0\5c2..z73\0\5
+ ..controls z73\0\6c1 and z73\0\6c2..z73\0\6
+ ..controls z73\0\7c1 and z73\0\7c2..z73\0\7
+ --z73\0\8
+ ..controls z73\0\9c1 and z73\0\9c2..cycle;
+ proof_labels (
+ 73\0\0,
+ 73\0\1,
+ 73\0\2,
+ 73\0\3,
+ 73\0\4,
+ 73\0\5,
+ 73\0\6,
+ 73\0\7,
+ 73\0\8,
+ 73\0\9,
+);
+endchar;
+
+beginchar (74, 8.491u#, ascender_height#, descender_depth#);
+ "Hei";
+ italcorr .6*slant*x_height#-.5u#;
+ z74\0\0s = (2.949u,0.898u);
+ z74\0\0 = (2.799u,3.909u);
+ z74\0\1c1 = (2.985u,7.414u);
+ z74\0\1c2 = (7.115u,4.191u);
+ z74\0\1 = (6.501u,1.379u);
+ z74\0\2c1 = (6.373u,0.797u);
+ z74\0\2c2 = (6.174u,0.573u);
+ z74\0\2 = (5.803u,0.134u);
+ z74\0\3c1 = (3.990u,-2.010u);
+ z74\0\3c2 = (1.204u,0.027u);
+ z74\0\3 = (-0.144u,-1.335u);
+ z74\0\4c1 = (-0.345u,-1.538u);
+ z74\0\4c2 = (-0.450u,-1.814u);
+ z74\0\4 = (-0.383u,-2.099u);
+ z74\0\5c1 = (-0.224u,-2.774u);
+ z74\0\5c2 = (1.095u,-2.982u);
+ z74\0\5 = (1.143u,-1.633u);
+ z74\0\6c1 = (1.508u,-1.554u);
+ z74\0\6c2 = (1.886u,-1.376u);
+ z74\0\6 = (2.258u,-1.363u);
+ z74\0\7c1 = (2.650u,-1.350u);
+ z74\0\7c2 = (3.041u,-1.546u);
+ z74\0\7 = (3.431u,-1.595u);
+ z74\0\8c1 = (4.026u,-1.669u);
+ z74\0\8c2 = (5.485u,-1.417u);
+ z74\0\8 = (6.030u,-1.172u);
+ z74\0\9c1 = (9.662u,0.459u);
+ z74\0\9c2 = (8.412u,7.278u);
+ z74\0\9 = (3.070u,5.594u);
+ z74\0\10c1 = (2.804u,6.689u);
+ z74\0\10c2 = (2.865u,7.560u);
+ z74\0\10 = (3.913u,8.125u);
+ z74\0\11c1 = (3.521u,8.646u);
+ z74\0\11c2 = (2.707u,8.481u);
+ z74\0\11 = (2.106u,8.485u);
+ z74\0\12c1 = (1.789u,8.487u);
+ z74\0\12c2 = (1.112u,8.557u);
+ z74\0\12 = (0.950u,8.212u);
+ z74\0\13c1 = (0.822u,7.941u);
+ z74\0\13c2 = (1.458u,7.318u);
+ z74\0\13 = (1.498u,6.799u);
+ z74\0\14 = (1.394u,2.354u);
+ z74\0\15c1 = (1.401u,1.918u);
+ z74\0\15c2 = (1.345u,1.391u);
+ z74\0\15 = (0.986u,1.089u);
+ z74\0\16c1 = (0.782u,0.918u);
+ z74\0\16c2 = (0.104u,0.826u);
+ z74\0\16 = (0.234u,0.446u);
+ z74\0\17c1 = (0.389u,-0.008u);
+ z74\0\17c2 = (3.868u,0.083u);
+ z74\0\17 = (4.134u,0.580u);
+ z74\0\18c1 = (4.461u,1.192u);
+ z74\0\18c2 = (3.145u,0.932u);
+ fill_or_unfill z74\0\0s
+ --z74\0\0
+ ..controls z74\0\1c1 and z74\0\1c2..z74\0\1
+ ..controls z74\0\2c1 and z74\0\2c2..z74\0\2
+ ..controls z74\0\3c1 and z74\0\3c2..z74\0\3
+ ..controls z74\0\4c1 and z74\0\4c2..z74\0\4
+ ..controls z74\0\5c1 and z74\0\5c2..z74\0\5
+ ..controls z74\0\6c1 and z74\0\6c2..z74\0\6
+ ..controls z74\0\7c1 and z74\0\7c2..z74\0\7
+ ..controls z74\0\8c1 and z74\0\8c2..z74\0\8
+ ..controls z74\0\9c1 and z74\0\9c2..z74\0\9
+ ..controls z74\0\10c1 and z74\0\10c2..z74\0\10
+ ..controls z74\0\11c1 and z74\0\11c2..z74\0\11
+ ..controls z74\0\12c1 and z74\0\12c2..z74\0\12
+ ..controls z74\0\13c1 and z74\0\13c2..z74\0\13
+ --z74\0\14
+ ..controls z74\0\15c1 and z74\0\15c2..z74\0\15
+ ..controls z74\0\16c1 and z74\0\16c2..z74\0\16
+ ..controls z74\0\17c1 and z74\0\17c2..z74\0\17
+ ..controls z74\0\18c1 and z74\0\18c2..cycle;
+ proof_labels (
+ 74\0\0,
+ 74\0\1,
+ 74\0\2,
+ 74\0\3,
+ 74\0\4,
+ 74\0\5,
+ 74\0\6,
+ 74\0\7,
+ 74\0\8,
+ 74\0\9,
+ 74\0\10,
+ 74\0\11,
+ 74\0\12,
+ 74\0\13,
+ 74\0\14,
+ 74\0\15,
+ 74\0\16,
+ 74\0\17,
+ 74\0\18,
+);
+endchar;
+
+beginchar (75, 8.300u#, ascender_height#, 0.000u#);
+ "Kabba";
+ italcorr .75*slant*x_height#-.5u#;
+ z75\0\0s = (0.000u,8.388u);
+ z75\0\0c1 = (0.192u,8.098u);
+ z75\0\0c2 = (0.508u,7.858u);
+ z75\0\0 = (0.634u,7.538u);
+ z75\0\1 = (0.843u,2.486u);
+ z75\0\2c1 = (0.841u,2.086u);
+ z75\0\2c2 = (0.838u,1.666u);
+ z75\0\2 = (0.691u,1.288u);
+ z75\0\3c1 = (0.576u,0.992u);
+ z75\0\3c2 = (0.096u,0.609u);
+ z75\0\3 = (0.141u,0.347u);
+ z75\0\4c1 = (0.202u,-0.021u);
+ z75\0\4c2 = (0.951u,0.184u);
+ z75\0\4 = (1.204u,0.192u);
+ z75\0\5c1 = (2.060u,0.219u);
+ z75\0\5c2 = (3.113u,-0.348u);
+ z75\0\5 = (3.372u,0.800u);
+ z75\0\6c1 = (2.038u,1.084u);
+ z75\0\6c2 = (2.161u,1.994u);
+ z75\0\6 = (2.168u,3.088u);
+ z75\0\7c1 = (2.177u,4.346u);
+ z75\0\7c2 = (2.863u,4.665u);
+ z75\0\7 = (3.970u,4.142u);
+ z75\0\8c1 = (5.625u,3.361u);
+ z75\0\8c2 = (4.219u,0.886u);
+ z75\0\8 = (5.783u,0.216u);
+ z75\0\9c1 = (6.154u,0.024u);
+ z75\0\9c2 = (8.069u,-0.155u);
+ z75\0\9 = (8.263u,0.216u);
+ z75\0\10c1 = (8.551u,0.837u);
+ z75\0\10c2 = (7.191u,0.666u);
+ z75\0\10 = (6.778u,1.434u);
+ z75\0\11c1 = (6.194u,2.521u);
+ z75\0\11c2 = (7.006u,3.915u);
+ z75\0\11 = (5.179u,4.413u);
+ z75\0\12c1 = (5.584u,5.565u);
+ z75\0\12c2 = (6.789u,5.678u);
+ z75\0\12 = (6.612u,7.424u);
+ z75\0\13c1 = (6.484u,8.687u);
+ z75\0\13c2 = (4.834u,9.303u);
+ z75\0\13 = (4.216u,8.147u);
+ z75\0\14c1 = (6.698u,6.081u);
+ z75\0\14c2 = (3.249u,4.156u);
+ z75\0\14 = (2.350u,4.967u);
+ z75\0\15c1 = (2.030u,5.255u);
+ z75\0\15c2 = (2.050u,5.825u);
+ z75\0\15 = (2.048u,6.220u);
+ z75\0\16c1 = (2.046u,6.587u);
+ z75\0\16c2 = (2.005u,7.333u);
+ z75\0\16 = (2.117u,7.655u);
+ z75\0\17 = (2.529u,8.508u);
+ z75\0\18c1 = (1.751u,8.783u);
+ z75\0\18c2 = (0.770u,8.670u);
+ fill_or_unfill z75\0\0s
+ ..controls z75\0\0c1 and z75\0\0c2..z75\0\0
+ --z75\0\1
+ ..controls z75\0\2c1 and z75\0\2c2..z75\0\2
+ ..controls z75\0\3c1 and z75\0\3c2..z75\0\3
+ ..controls z75\0\4c1 and z75\0\4c2..z75\0\4
+ ..controls z75\0\5c1 and z75\0\5c2..z75\0\5
+ ..controls z75\0\6c1 and z75\0\6c2..z75\0\6
+ ..controls z75\0\7c1 and z75\0\7c2..z75\0\7
+ ..controls z75\0\8c1 and z75\0\8c2..z75\0\8
+ ..controls z75\0\9c1 and z75\0\9c2..z75\0\9
+ ..controls z75\0\10c1 and z75\0\10c2..z75\0\10
+ ..controls z75\0\11c1 and z75\0\11c2..z75\0\11
+ ..controls z75\0\12c1 and z75\0\12c2..z75\0\12
+ ..controls z75\0\13c1 and z75\0\13c2..z75\0\13
+ ..controls z75\0\14c1 and z75\0\14c2..z75\0\14
+ ..controls z75\0\15c1 and z75\0\15c2..z75\0\15
+ ..controls z75\0\16c1 and z75\0\16c2..z75\0\16
+ --z75\0\17
+ ..controls z75\0\18c1 and z75\0\18c2..cycle;
+ proof_labels (
+ 75\0\0,
+ 75\0\1,
+ 75\0\2,
+ 75\0\3,
+ 75\0\4,
+ 75\0\5,
+ 75\0\6,
+ 75\0\7,
+ 75\0\8,
+ 75\0\9,
+ 75\0\10,
+ 75\0\11,
+ 75\0\12,
+ 75\0\13,
+ 75\0\14,
+ 75\0\15,
+ 75\0\16,
+ 75\0\17,
+ 75\0\18,
+);
+endchar;
+
+beginchar (76, 9.875u#, ascender_height#, 0.000u#);
+ "Laula";
+ z76\0\0s = (1.443u,8.496u);
+ z76\0\0 = (1.443u,8.135u);
+ z76\0\1c1 = (2.369u,7.746u);
+ z76\0\1c2 = (2.702u,7.770u);
+ z76\0\1 = (3.180u,6.814u);
+ z76\0\2c1 = (3.897u,5.380u);
+ z76\0\2c2 = (1.349u,4.193u);
+ z76\0\2 = (0.580u,3.265u);
+ z76\0\3c1 = (0.168u,2.768u);
+ z76\0\3c2 = (-0.015u,2.145u);
+ z76\0\3 = (0.000u,1.510u);
+ z76\0\4c1 = (0.050u,-0.570u);
+ z76\0\4c2 = (3.221u,-0.059u);
+ z76\0\4 = (3.390u,0.444u);
+ z76\0\5c1 = (3.870u,1.874u);
+ z76\0\5c2 = (1.486u,0.972u);
+ z76\0\5 = (1.206u,1.068u);
+ z76\0\6c1 = (0.958u,1.151u);
+ z76\0\6c2 = (0.851u,1.389u);
+ z76\0\6 = (0.830u,1.631u);
+ z76\0\7c1 = (0.702u,3.064u);
+ z76\0\7c2 = (3.205u,4.011u);
+ z76\0\7 = (3.852u,5.244u);
+ z76\0\8 = (4.214u,5.244u);
+ z76\0\9c1 = (4.502u,4.347u);
+ z76\0\9c2 = (6.471u,0.835u);
+ z76\0\9 = (7.167u,0.358u);
+ z76\0\10c1 = (7.444u,0.167u);
+ z76\0\10c2 = (7.747u,0.187u);
+ z76\0\10 = (8.068u,0.185u);
+ z76\0\11c1 = (8.849u,0.181u);
+ z76\0\11c2 = (9.593u,0.006u);
+ z76\0\11 = (9.875u,0.909u);
+ z76\0\12 = (8.675u,1.133u);
+ z76\0\13 = (3.813u,8.393u);
+ z76\0\14 = (2.768u,8.616u);
+ fill_or_unfill z76\0\0s
+ --z76\0\0
+ ..controls z76\0\1c1 and z76\0\1c2..z76\0\1
+ ..controls z76\0\2c1 and z76\0\2c2..z76\0\2
+ ..controls z76\0\3c1 and z76\0\3c2..z76\0\3
+ ..controls z76\0\4c1 and z76\0\4c2..z76\0\4
+ ..controls z76\0\5c1 and z76\0\5c2..z76\0\5
+ ..controls z76\0\6c1 and z76\0\6c2..z76\0\6
+ ..controls z76\0\7c1 and z76\0\7c2..z76\0\7
+ --z76\0\8
+ ..controls z76\0\9c1 and z76\0\9c2..z76\0\9
+ ..controls z76\0\10c1 and z76\0\10c2..z76\0\10
+ ..controls z76\0\11c1 and z76\0\11c2..z76\0\11
+ --z76\0\12
+ --z76\0\13
+ --z76\0\14
+ --cycle;
+ proof_labels (
+ 76\0\0,
+ 76\0\1,
+ 76\0\2,
+ 76\0\3,
+ 76\0\4,
+ 76\0\5,
+ 76\0\6,
+ 76\0\7,
+ 76\0\8,
+ 76\0\9,
+ 76\0\10,
+ 76\0\11,
+ 76\0\12,
+ 76\0\13,
+ 76\0\14,
+ 76\0\15,
+);
+endchar;
+
+beginchar (77, 6.880u#, ascender_height#, 0.000u#);
+ "Mi";
+ italcorr slant*ascender_height#-.1u#;
+ z77\0\0s = (0.000u,9.449u);
+ z77\0\0c1 = (0.257u,8.562u);
+ z77\0\0c2 = (0.480u,8.771u);
+ z77\0\0 = (0.482u,7.642u);
+ z77\0\1 = (0.482u,2.222u);
+ z77\0\2c1 = (0.483u,1.767u);
+ z77\0\2c2 = (0.373u,1.239u);
+ z77\0\2 = (0.970u,1.213u);
+ z77\0\3c1 = (2.193u,1.162u);
+ z77\0\3c2 = (2.240u,-0.453u);
+ z77\0\3 = (3.954u,0.119u);
+ z77\0\4c1 = (4.581u,0.328u);
+ z77\0\4c2 = (4.777u,0.953u);
+ z77\0\4 = (5.091u,1.072u);
+ z77\0\5c1 = (5.748u,1.320u);
+ z77\0\5c2 = (6.380u,0.445u);
+ z77\0\5 = (6.384u,2.222u);
+ z77\0\6 = (6.384u,7.280u);
+ z77\0\7c1 = (6.384u,7.574u);
+ z77\0\7c2 = (6.368u,7.957u);
+ z77\0\7 = (6.452u,8.238u);
+ z77\0\8c1 = (6.532u,8.503u);
+ z77\0\8c2 = (6.916u,8.856u);
+ z77\0\8 = (6.877u,9.074u);
+ z77\0\9c1 = (6.822u,9.383u);
+ z77\0\9c2 = (6.372u,9.418u);
+ z77\0\9 = (6.127u,9.438u);
+ z77\0\10 = (4.216u,9.438u);
+ z77\0\11c1 = (4.309u,8.906u);
+ z77\0\11c2 = (4.409u,8.842u);
+ z77\0\11 = (4.938u,8.726u);
+ z77\0\12 = (4.818u,3.787u);
+ z77\0\13c1 = (4.803u,2.584u);
+ z77\0\13c2 = (4.525u,0.942u);
+ z77\0\13 = (2.891u,1.435u);
+ z77\0\14c1 = (2.531u,1.543u);
+ z77\0\14c2 = (2.260u,1.636u);
+ z77\0\14 = (2.069u,1.987u);
+ z77\0\15c1 = (1.794u,2.490u);
+ z77\0\15c2 = (1.784u,7.709u);
+ z77\0\15 = (1.964u,8.359u);
+ z77\0\16c1 = (2.106u,8.868u);
+ z77\0\16c2 = (2.587u,8.909u);
+ z77\0\16 = (2.770u,9.449u);
+ fill_or_unfill z77\0\0s
+ ..controls z77\0\0c1 and z77\0\0c2..z77\0\0
+ --z77\0\1
+ ..controls z77\0\2c1 and z77\0\2c2..z77\0\2
+ ..controls z77\0\3c1 and z77\0\3c2..z77\0\3
+ ..controls z77\0\4c1 and z77\0\4c2..z77\0\4
+ ..controls z77\0\5c1 and z77\0\5c2..z77\0\5
+ --z77\0\6
+ ..controls z77\0\7c1 and z77\0\7c2..z77\0\7
+ ..controls z77\0\8c1 and z77\0\8c2..z77\0\8
+ ..controls z77\0\9c1 and z77\0\9c2..z77\0\9
+ --z77\0\10
+ ..controls z77\0\11c1 and z77\0\11c2..z77\0\11
+ --z77\0\12
+ ..controls z77\0\13c1 and z77\0\13c2..z77\0\13
+ ..controls z77\0\14c1 and z77\0\14c2..z77\0\14
+ ..controls z77\0\15c1 and z77\0\15c2..z77\0\15
+ ..controls z77\0\16c1 and z77\0\16c2..z77\0\16
+ --cycle;
+ proof_labels (
+ 77\0\0,
+ 77\0\1,
+ 77\0\2,
+ 77\0\3,
+ 77\0\4,
+ 77\0\5,
+ 77\0\6,
+ 77\0\7,
+ 77\0\8,
+ 77\0\9,
+ 77\0\10,
+ 77\0\11,
+ 77\0\12,
+ 77\0\13,
+ 77\0\14,
+ 77\0\15,
+ 77\0\16,
+ 77\0\17,
+);
+endchar;
+
+beginchar (78, 7.114u#, ascender_height#, 0.000u#);
+ "Ni";
+ italcorr .95*slant*ascender_height#-.1u#;
+ z78\0\0s = (0.831u,7.986u);
+ z78\0\0 = (0.831u,5.216u);
+ z78\0\1c1 = (0.846u,3.961u);
+ z78\0\1c2 = (1.200u,2.575u);
+ z78\0\1 = (0.831u,1.364u);
+ z78\0\2c1 = (0.591u,0.771u);
+ z78\0\2c2 = (0.170u,0.792u);
+ z78\0\2 = (0.027u,0.490u);
+ z78\0\3c1 = (-0.281u,-0.163u);
+ z78\0\3c2 = (2.148u,0.013u);
+ z78\0\3 = (2.533u,0.043u);
+ z78\0\4c1 = (3.260u,0.099u);
+ z78\0\4c2 = (3.436u,0.726u);
+ z78\0\4 = (2.416u,0.759u);
+ z78\0\5 = (2.296u,2.205u);
+ z78\0\6c1 = (2.292u,2.604u);
+ z78\0\6c2 = (2.239u,3.804u);
+ z78\0\6 = (2.408u,4.105u);
+ z78\0\7c1 = (2.752u,4.718u);
+ z78\0\7c2 = (4.319u,3.237u);
+ z78\0\7 = (4.547u,2.871u);
+ z78\0\8c1 = (4.683u,2.652u);
+ z78\0\8c2 = (4.694u,2.454u);
+ z78\0\8 = (4.703u,2.204u);
+ z78\0\9c1 = (4.712u,1.951u);
+ z78\0\9c2 = (4.719u,1.601u);
+ z78\0\9 = (4.633u,1.363u);
+ z78\0\10c1 = (4.530u,1.076u);
+ z78\0\10c2 = (4.102u,0.713u);
+ z78\0\10 = (4.191u,0.420u);
+ z78\0\11c1 = (4.308u,0.036u);
+ z78\0\11c2 = (4.990u,0.041u);
+ z78\0\11 = (5.307u,0.037u);
+ z78\0\12 = (6.030u,0.037u);
+ z78\0\13c1 = (6.328u,0.042u);
+ z78\0\13c2 = (6.937u,0.051u);
+ z78\0\13 = (6.885u,0.504u);
+ z78\0\14c1 = (6.848u,0.831u);
+ z78\0\14c2 = (6.346u,1.055u);
+ z78\0\14 = (6.269u,1.556u);
+ z78\0\15c1 = (6.193u,2.003u);
+ z78\0\15c2 = (6.271u,2.586u);
+ z78\0\15 = (6.269u,3.048u);
+ z78\0\16 = (6.269u,6.541u);
+ z78\0\17c1 = (6.274u,8.364u);
+ z78\0\17c2 = (6.973u,7.525u);
+ z78\0\17 = (7.114u,8.690u);
+ z78\0\18 = (4.351u,8.690u);
+ z78\0\19c1 = (3.525u,8.442u);
+ z78\0\19c2 = (4.234u,8.025u);
+ z78\0\19 = (4.705u,7.986u);
+ z78\0\20 = (4.464u,4.252u);
+ z78\0\21c1 = (3.199u,4.892u);
+ z78\0\21c2 = (1.706u,6.104u);
+ z78\0\21 = (2.368u,7.730u);
+ z78\0\22c1 = (2.534u,8.138u);
+ z78\0\22c2 = (2.842u,8.146u);
+ z78\0\22 = (3.019u,8.709u);
+ z78\0\23c1 = (2.578u,8.709u);
+ z78\0\23c2 = (0.222u,8.820u);
+ z78\0\23 = (0.056u,8.525u);
+ z78\0\24c1 = (-0.187u,8.094u);
+ z78\0\24c2 = (0.624u,8.007u);
+ fill_or_unfill z78\0\0s
+ --z78\0\0
+ ..controls z78\0\1c1 and z78\0\1c2..z78\0\1
+ ..controls z78\0\2c1 and z78\0\2c2..z78\0\2
+ ..controls z78\0\3c1 and z78\0\3c2..z78\0\3
+ ..controls z78\0\4c1 and z78\0\4c2..z78\0\4
+ --z78\0\5
+ ..controls z78\0\6c1 and z78\0\6c2..z78\0\6
+ ..controls z78\0\7c1 and z78\0\7c2..z78\0\7
+ ..controls z78\0\8c1 and z78\0\8c2..z78\0\8
+ ..controls z78\0\9c1 and z78\0\9c2..z78\0\9
+ ..controls z78\0\10c1 and z78\0\10c2..z78\0\10
+ ..controls z78\0\11c1 and z78\0\11c2..z78\0\11
+ --z78\0\12
+ ..controls z78\0\13c1 and z78\0\13c2..z78\0\13
+ ..controls z78\0\14c1 and z78\0\14c2..z78\0\14
+ ..controls z78\0\15c1 and z78\0\15c2..z78\0\15
+ --z78\0\16
+ ..controls z78\0\17c1 and z78\0\17c2..z78\0\17
+ --z78\0\18
+ ..controls z78\0\19c1 and z78\0\19c2..z78\0\19
+ --z78\0\20
+ ..controls z78\0\21c1 and z78\0\21c2..z78\0\21
+ ..controls z78\0\22c1 and z78\0\22c2..z78\0\22
+ ..controls z78\0\23c1 and z78\0\23c2..z78\0\23
+ ..controls z78\0\24c1 and z78\0\24c2..cycle;
+ proof_labels (
+ 78\0\0,
+ 78\0\1,
+ 78\0\2,
+ 78\0\3,
+ 78\0\4,
+ 78\0\5,
+ 78\0\6,
+ 78\0\7,
+ 78\0\8,
+ 78\0\9,
+ 78\0\10,
+ 78\0\11,
+ 78\0\12,
+ 78\0\13,
+ 78\0\14,
+ 78\0\15,
+ 78\0\16,
+ 78\0\17,
+ 78\0\18,
+ 78\0\19,
+ 78\0\20,
+ 78\0\21,
+ 78\0\22,
+ 78\0\23,
+ 78\0\24,
+);
+endchar;
+
+beginchar (79, 7.829u#, ascender_height#, 0.000u#);
+ "Omicron";
+ italcorr 1.2*slant*x_height#-.5u#;
+ z79\0\0s = (3.252u,8.496u);
+ z79\0\0c1 = (-1.317u,7.527u);
+ z79\0\0c2 = (-1.054u,0.184u);
+ z79\0\0 = (3.734u,0.121u);
+ z79\0\1c1 = (9.460u,0.045u);
+ z79\0\1c2 = (9.022u,9.166u);
+ z79\1\0s = (3.614u,7.909u);
+ z79\1\0c1 = (6.980u,8.266u);
+ z79\1\0c2 = (7.039u,0.518u);
+ z79\1\0 = (3.854u,0.729u);
+ z79\1\1c1 = (0.922u,0.924u);
+ z79\1\1c2 = (0.857u,7.160u);
+ fill_or_unfill z79\0\0s
+ ..controls z79\0\0c1 and z79\0\0c2..z79\0\0
+ ..controls z79\0\1c1 and z79\0\1c2..cycle;
+ fill_or_unfill z79\1\0s
+ ..controls z79\1\0c1 and z79\1\0c2..z79\1\0
+ ..controls z79\1\1c1 and z79\1\1c2..cycle;
+ proof_labels (
+ 79\0\0,
+ 79\0\1,
+ 79\1\0,
+ 79\1\1,
+);
+endchar;
+
+beginchar (80, 8.672u#, ascender_height#, 0.000u#);
+ "Pi";
+ italcorr .95*slant*ascender_height#-.2u#;
+ z80\0\0s = (0.120u,8.311u);
+ z80\0\0 = (1.084u,7.949u);
+ z80\0\1 = (0.908u,2.770u);
+ z80\0\2 = (0.908u,1.211u);
+ z80\0\3 = (0.000u,0.000u);
+ z80\0\4 = (3.493u,0.000u);
+ z80\0\5c1 = (3.580u,1.331u);
+ z80\0\5c2 = (2.573u,0.078u);
+ z80\0\5 = (2.547u,1.686u);
+ z80\0\6 = (2.547u,7.949u);
+ z80\0\7 = (5.661u,7.949u);
+ z80\0\8 = (5.596u,3.613u);
+ z80\0\9 = (5.596u,1.327u);
+ z80\0\10 = (4.697u,0.000u);
+ z80\0\11 = (8.672u,0.000u);
+ z80\0\12 = (8.672u,0.361u);
+ z80\0\13 = (7.427u,1.101u);
+ z80\0\14 = (7.427u,7.571u);
+ z80\0\15 = (8.396u,8.638u);
+ z80\0\16 = (0.607u,8.594u);
+ fill_or_unfill z80\0\0s
+ --z80\0\0
+ --z80\0\1
+ --z80\0\2
+ --z80\0\3
+ --z80\0\4
+ ..controls z80\0\5c1 and z80\0\5c2..z80\0\5
+ --z80\0\6
+ --z80\0\7
+ --z80\0\8
+ --z80\0\9
+ --z80\0\10
+ --z80\0\11
+ --z80\0\12
+ --z80\0\13
+ --z80\0\14
+ --z80\0\15
+ --z80\0\16
+ --cycle;
+ proof_labels (
+ 80\0\0,
+ 80\0\1,
+ 80\0\2,
+ 80\0\3,
+ 80\0\4,
+ 80\0\5,
+ 80\0\6,
+ 80\0\7,
+ 80\0\8,
+ 80\0\9,
+ 80\0\10,
+ 80\0\11,
+ 80\0\12,
+ 80\0\13,
+ 80\0\14,
+ 80\0\15,
+ 80\0\16,
+ 80\0\17,
+);
+endchar;
+
+beginchar (81, 8.913u#, ascender_height#, 0.000u#);
+ "Scima";
+ italcorr slant*ascender_height#-.2u#;
+ z81\0\0s = (2.409u,0.120u);
+ z81\0\0c1 = (3.342u,0.392u);
+ z81\0\0c2 = (4.158u,0.195u);
+ z81\0\0 = (5.048u,0.775u);
+ z81\0\1c1 = (7.637u,2.464u);
+ z81\0\1c2 = (5.903u,7.583u);
+ z81\0\1 = (2.529u,6.625u);
+ z81\0\2 = (2.409u,6.986u);
+ z81\0\3c1 = (2.921u,7.218u);
+ z81\0\3c2 = (3.273u,7.404u);
+ z81\0\3 = (3.850u,7.463u);
+ z81\0\4c1 = (5.387u,7.622u);
+ z81\0\4c2 = (8.356u,6.880u);
+ z81\0\4 = (8.913u,8.913u);
+ z81\0\5c1 = (8.102u,9.078u);
+ z81\0\5c2 = (7.535u,8.833u);
+ z81\0\5 = (6.745u,8.805u);
+ z81\0\6c1 = (5.185u,8.748u);
+ z81\0\6c2 = (3.766u,9.184u);
+ z81\0\6 = (2.293u,8.335u);
+ z81\0\7c1 = (0.200u,7.128u);
+ z81\0\7c2 = (-0.569u,3.590u);
+ z81\0\7 = (0.699u,1.566u);
+ z81\0\8c1 = (1.199u,0.768u);
+ z81\0\8c2 = (1.712u,0.636u);
+ z81\1\0s = (2.771u,6.144u);
+ z81\1\0c1 = (5.109u,5.708u);
+ z81\1\0c2 = (5.443u,0.855u);
+ z81\1\0 = (3.372u,0.847u);
+ z81\1\1c1 = (1.006u,0.839u);
+ z81\1\1c2 = (0.636u,5.685u);
+ fill_or_unfill z81\0\0s
+ ..controls z81\0\0c1 and z81\0\0c2..z81\0\0
+ ..controls z81\0\1c1 and z81\0\1c2..z81\0\1
+ --z81\0\2
+ ..controls z81\0\3c1 and z81\0\3c2..z81\0\3
+ ..controls z81\0\4c1 and z81\0\4c2..z81\0\4
+ ..controls z81\0\5c1 and z81\0\5c2..z81\0\5
+ ..controls z81\0\6c1 and z81\0\6c2..z81\0\6
+ ..controls z81\0\7c1 and z81\0\7c2..z81\0\7
+ ..controls z81\0\8c1 and z81\0\8c2..cycle;
+ fill_or_unfill z81\1\0s
+ ..controls z81\1\0c1 and z81\1\0c2..z81\1\0
+ ..controls z81\1\1c1 and z81\1\1c2..cycle;
+ proof_labels (
+ 81\0\0,
+ 81\0\1,
+ 81\0\2,
+ 81\0\3,
+ 81\0\4,
+ 81\0\5,
+ 81\0\6,
+ 81\0\7,
+ 81\0\8,
+ 81\1\0,
+ 81\1\1,
+);
+endchar;
+
+beginchar (82, 6.716u#, ascender_height#, 0.000u#);
+ "Ro";
+ italcorr .95*slant*ascender_height#-.5u#;
+ z82\0\0s = (0.000u,0.071u);
+ z82\0\0c1 = (0.712u,-0.024u);
+ z82\0\0c2 = (3.083u,-0.114u);
+ z82\0\0 = (3.493u,0.432u);
+ z82\0\1c1 = (3.245u,0.524u);
+ z82\0\1c2 = (2.926u,0.596u);
+ z82\0\1 = (2.773u,0.831u);
+ z82\0\2c1 = (2.481u,1.277u);
+ z82\0\2c2 = (2.458u,3.079u);
+ z82\0\2 = (2.941u,3.461u);
+ z82\0\3c1 = (3.829u,4.165u);
+ z82\0\3c2 = (5.377u,2.908u);
+ z82\0\3 = (6.388u,4.650u);
+ z82\0\4c1 = (6.684u,5.160u);
+ z82\0\4c2 = (6.791u,5.759u);
+ z82\0\4 = (6.663u,6.334u);
+ z82\0\5c1 = (6.042u,9.135u);
+ z82\0\5c2 = (3.442u,8.748u);
+ z82\0\5 = (1.204u,8.743u);
+ z82\0\6c1 = (0.929u,8.743u);
+ z82\0\6c2 = (0.196u,8.815u);
+ z82\0\6 = (0.210u,8.380u);
+ z82\0\7c1 = (0.225u,7.919u);
+ z82\0\7c2 = (1.024u,8.058u);
+ z82\0\7 = (1.116u,7.297u);
+ z82\0\8 = (0.963u,5.130u);
+ z82\0\9c1 = (0.985u,3.997u);
+ z82\0\9c2 = (1.300u,2.630u);
+ z82\0\9 = (0.963u,1.518u);
+ z82\0\10c1 = (0.717u,0.822u);
+ z82\0\10c2 = (0.197u,0.973u);
+ z82\1\0s = (3.234u,8.188u);
+ z82\1\0c1 = (5.449u,8.433u);
+ z82\1\0c2 = (6.043u,5.284u);
+ z82\1\0 = (4.685u,4.530u);
+ z82\1\1c1 = (4.382u,4.362u);
+ z82\1\1c2 = (3.727u,4.402u);
+ z82\1\1 = (3.373u,4.407u);
+ z82\1\2c1 = (3.180u,4.411u);
+ z82\1\2c2 = (2.897u,4.399u);
+ z82\1\2 = (2.739u,4.527u);
+ z82\1\3c1 = (2.312u,4.871u);
+ z82\1\3c2 = (2.338u,7.258u);
+ z82\1\3 = (2.608u,7.751u);
+ z82\1\4c1 = (2.763u,8.035u);
+ z82\1\4c2 = (2.948u,8.090u);
+ fill_or_unfill z82\0\0s
+ ..controls z82\0\0c1 and z82\0\0c2..z82\0\0
+ ..controls z82\0\1c1 and z82\0\1c2..z82\0\1
+ ..controls z82\0\2c1 and z82\0\2c2..z82\0\2
+ ..controls z82\0\3c1 and z82\0\3c2..z82\0\3
+ ..controls z82\0\4c1 and z82\0\4c2..z82\0\4
+ ..controls z82\0\5c1 and z82\0\5c2..z82\0\5
+ ..controls z82\0\6c1 and z82\0\6c2..z82\0\6
+ ..controls z82\0\7c1 and z82\0\7c2..z82\0\7
+ --z82\0\8
+ ..controls z82\0\9c1 and z82\0\9c2..z82\0\9
+ ..controls z82\0\10c1 and z82\0\10c2..cycle;
+ fill_or_unfill z82\1\0s
+ ..controls z82\1\0c1 and z82\1\0c2..z82\1\0
+ ..controls z82\1\1c1 and z82\1\1c2..z82\1\1
+ ..controls z82\1\2c1 and z82\1\2c2..z82\1\2
+ ..controls z82\1\3c1 and z82\1\3c2..z82\1\3
+ ..controls z82\1\4c1 and z82\1\4c2..cycle;
+ proof_labels (
+ 82\0\0,
+ 82\0\1,
+ 82\0\2,
+ 82\0\3,
+ 82\0\4,
+ 82\0\5,
+ 82\0\6,
+ 82\0\7,
+ 82\0\8,
+ 82\0\9,
+ 82\0\10,
+ 82\1\0,
+ 82\1\1,
+ 82\1\2,
+ 82\1\3,
+ 82\1\4,
+);
+endchar;
+
+beginchar (84, 10.442u#, ascender_height#, 0.000u#);
+ "Dau";
+ italcorr .95*slant*ascender_height#-.5u#;
+ z84\0\0s = (3.339u,-0.049u);
+ z84\0\0 = (6.835u,0.023u);
+ z84\0\1c1 = (6.495u,0.990u);
+ z84\0\1c2 = (5.896u,0.493u);
+ z84\0\1 = (5.896u,1.843u);
+ z84\0\2 = (6.074u,5.936u);
+ z84\0\3c1 = (6.081u,6.334u);
+ z84\0\3c2 = (6.052u,6.784u);
+ z84\0\3 = (6.301u,7.123u);
+ z84\0\4c1 = (6.781u,7.775u);
+ z84\0\4c2 = (7.990u,7.531u);
+ z84\0\4 = (8.448u,6.974u);
+ z84\0\5c1 = (8.758u,6.597u);
+ z84\0\5c2 = (8.957u,5.774u);
+ z84\0\5 = (9.078u,5.291u);
+ z84\0\6c1 = (9.818u,5.223u);
+ z84\0\6c2 = (10.432u,4.995u);
+ z84\0\6 = (10.521u,5.994u);
+ z84\0\7c1 = (10.579u,6.630u);
+ z84\0\7c2 = (10.391u,7.505u);
+ z84\0\7 = (9.814u,7.862u);
+ z84\0\8c1 = (8.873u,8.444u);
+ z84\0\8c2 = (2.183u,8.436u);
+ z84\0\8 = (1.185u,7.885u);
+ z84\0\9c1 = (0.227u,7.356u);
+ z84\0\9c2 = (-0.629u,5.209u);
+ z84\0\9 = (1.003u,5.423u);
+ z84\0\10c1 = (1.971u,5.550u);
+ z84\0\10c2 = (1.571u,7.215u);
+ z84\0\10 = (2.965u,7.510u);
+ z84\0\11c1 = (3.322u,7.585u);
+ z84\0\11c2 = (4.043u,7.592u);
+ z84\0\11 = (4.280u,7.248u);
+ z84\0\12c1 = (4.560u,6.792u);
+ z84\0\12c2 = (4.414u,1.892u);
+ z84\0\12 = (4.195u,1.267u);
+ z84\0\13c1 = (3.969u,0.533u);
+ z84\0\13c2 = (3.546u,0.827u);
+ fill_or_unfill z84\0\0s
+ --z84\0\0
+ ..controls z84\0\1c1 and z84\0\1c2..z84\0\1
+ --z84\0\2
+ ..controls z84\0\3c1 and z84\0\3c2..z84\0\3
+ ..controls z84\0\4c1 and z84\0\4c2..z84\0\4
+ ..controls z84\0\5c1 and z84\0\5c2..z84\0\5
+ ..controls z84\0\6c1 and z84\0\6c2..z84\0\6
+ ..controls z84\0\7c1 and z84\0\7c2..z84\0\7
+ ..controls z84\0\8c1 and z84\0\8c2..z84\0\8
+ ..controls z84\0\9c1 and z84\0\9c2..z84\0\9
+ ..controls z84\0\10c1 and z84\0\10c2..z84\0\10
+ ..controls z84\0\11c1 and z84\0\11c2..z84\0\11
+ ..controls z84\0\12c1 and z84\0\12c2..z84\0\12
+ ..controls z84\0\13c1 and z84\0\13c2..cycle;
+ proof_labels (
+ 84\0\0,
+ 84\0\1,
+ 84\0\2,
+ 84\0\3,
+ 84\0\4,
+ 84\0\5,
+ 84\0\6,
+ 84\0\7,
+ 84\0\8,
+ 84\0\9,
+ 84\0\10,
+ 84\0\11,
+ 84\0\12,
+ 84\0\13,
+);
+endchar;
+
+beginchar (85, 8.291u#, ascender_height#, 0.000u#);
+ "Ue";
+ italcorr .95*slant*ascender_height#-.3u#;
+ z85\0\0s = (4.336u,4.005u);
+ z85\0\0c1 = (3.684u,5.220u);
+ z85\0\0c2 = (3.921u,6.562u);
+ z85\0\0 = (2.948u,7.732u);
+ z85\0\1c1 = (2.264u,8.555u);
+ z85\0\1c2 = (0.879u,8.795u);
+ z85\0\1 = (0.274u,7.732u);
+ z85\0\2c1 = (0.041u,7.323u);
+ z85\0\2c2 = (0.039u,6.868u);
+ z85\0\2 = (0.000u,6.414u);
+ z85\0\3c1 = (0.606u,5.847u);
+ z85\0\3c2 = (1.937u,4.969u);
+ z85\0\3 = (2.409u,6.173u);
+ z85\0\4c1 = (2.084u,6.313u);
+ z85\0\4c2 = (0.779u,6.591u);
+ z85\0\4 = (1.595u,7.162u);
+ z85\0\5c1 = (2.847u,8.037u);
+ z85\0\5c2 = (3.371u,4.553u);
+ z85\0\5 = (3.372u,3.884u);
+ z85\0\6c1 = (3.374u,3.248u);
+ z85\0\6c2 = (3.435u,1.687u);
+ z85\0\6 = (3.245u,1.150u);
+ z85\0\7c1 = (3.118u,0.793u);
+ z85\0\7c2 = (2.508u,0.535u);
+ z85\0\7 = (2.589u,0.000u);
+ z85\0\8 = (5.898u,0.000u);
+ z85\0\9c1 = (5.746u,0.641u);
+ z85\0\9c2 = (5.280u,0.639u);
+ z85\0\9 = (5.061u,1.011u);
+ z85\0\10c1 = (4.780u,1.490u);
+ z85\0\10c2 = (5.088u,5.086u);
+ z85\0\10 = (5.320u,5.691u);
+ z85\0\11c1 = (5.520u,6.214u);
+ z85\0\11c2 = (5.826u,7.663u);
+ z85\0\11 = (6.618u,7.402u);
+ z85\0\12c1 = (7.249u,7.194u);
+ z85\0\12c2 = (7.161u,6.385u);
+ z85\0\12 = (6.263u,6.414u);
+ z85\0\13c1 = (5.974u,5.042u);
+ z85\0\13c2 = (8.175u,5.800u);
+ z85\0\13 = (8.284u,7.016u);
+ z85\0\14c1 = (8.473u,9.134u);
+ z85\0\14c2 = (6.083u,8.794u);
+ z85\0\14 = (5.178u,7.373u);
+ z85\0\15c1 = (4.834u,6.833u);
+ z85\0\15c2 = (4.369u,4.676u);
+ fill_or_unfill z85\0\0s
+ ..controls z85\0\0c1 and z85\0\0c2..z85\0\0
+ ..controls z85\0\1c1 and z85\0\1c2..z85\0\1
+ ..controls z85\0\2c1 and z85\0\2c2..z85\0\2
+ ..controls z85\0\3c1 and z85\0\3c2..z85\0\3
+ ..controls z85\0\4c1 and z85\0\4c2..z85\0\4
+ ..controls z85\0\5c1 and z85\0\5c2..z85\0\5
+ ..controls z85\0\6c1 and z85\0\6c2..z85\0\6
+ ..controls z85\0\7c1 and z85\0\7c2..z85\0\7
+ --z85\0\8
+ ..controls z85\0\9c1 and z85\0\9c2..z85\0\9
+ ..controls z85\0\10c1 and z85\0\10c2..z85\0\10
+ ..controls z85\0\11c1 and z85\0\11c2..z85\0\11
+ ..controls z85\0\12c1 and z85\0\12c2..z85\0\12
+ ..controls z85\0\13c1 and z85\0\13c2..z85\0\13
+ ..controls z85\0\14c1 and z85\0\14c2..z85\0\14
+ ..controls z85\0\15c1 and z85\0\15c2..cycle;
+ proof_labels (
+ 85\0\0,
+ 85\0\1,
+ 85\0\2,
+ 85\0\3,
+ 85\0\4,
+ 85\0\5,
+ 85\0\6,
+ 85\0\7,
+ 85\0\8,
+ 85\0\9,
+ 85\0\10,
+ 85\0\11,
+ 85\0\12,
+ 85\0\13,
+ 85\0\14,
+ 85\0\15,
+);
+endchar;
+
+beginchar (87, 9.281u#, ascender_height#, 0.000u#);
+ "Omega";
+ italcorr slant*ascender_height#-.5u#;
+ z87\0\0s = (0.006u,8.469u);
+ z87\0\0 = (0.000u,8.107u);
+ z87\0\1 = (0.482u,8.099u);
+ z87\0\2c1 = (0.633u,6.777u);
+ z87\0\2c2 = (0.558u,5.453u);
+ z87\0\2 = (0.559u,4.123u);
+ z87\0\3c1 = (0.515u,3.094u);
+ z87\0\3c2 = (0.234u,2.049u);
+ z87\0\3 = (0.506u,1.027u);
+ z87\0\4c1 = (0.834u,-0.009u);
+ z87\0\4c2 = (2.738u,-0.262u);
+ z87\0\4 = (3.127u,0.826u);
+ z87\0\5c1 = (2.646u,0.935u);
+ z87\0\5c2 = (2.207u,1.051u);
+ z87\0\5 = (1.897u,1.471u);
+ z87\0\6c1 = (1.288u,2.296u);
+ z87\0\6c2 = (1.633u,5.294u);
+ z87\0\6 = (1.656u,6.392u);
+ z87\0\7c1 = (1.664u,6.718u);
+ z87\0\7c2 = (1.666u,7.043u);
+ z87\0\7 = (1.776u,7.353u);
+ z87\0\8c1 = (1.963u,7.882u);
+ z87\0\8c2 = (2.268u,7.939u);
+ z87\0\8 = (2.176u,8.551u);
+ z87\1\0s = (3.499u,8.409u);
+ z87\1\0c1 = (4.046u,6.955u);
+ z87\1\0c2 = (3.901u,3.822u);
+ z87\1\0 = (3.617u,2.263u);
+ z87\1\1 = (3.247u,0.824u);
+ z87\1\2 = (3.735u,1.177u);
+ z87\1\3c1 = (4.670u,-0.970u);
+ z87\1\3c2 = (5.933u,0.409u);
+ z87\1\3 = (7.342u,0.753u);
+ z87\1\4c1 = (7.670u,-0.630u);
+ z87\1\4c2 = (9.363u,0.690u);
+ z87\1\4 = (9.281u,1.442u);
+ z87\1\5c1 = (8.962u,1.425u);
+ z87\1\5c2 = (8.655u,1.426u);
+ z87\1\5 = (8.463u,1.734u);
+ z87\1\6c1 = (8.210u,2.144u);
+ z87\1\6c2 = (8.369u,6.941u);
+ z87\1\6 = (8.626u,7.470u);
+ z87\1\7c1 = (8.786u,7.799u);
+ z87\1\7c2 = (8.946u,7.852u);
+ z87\1\7 = (9.273u,7.947u);
+ z87\1\8c1 = (8.998u,8.690u);
+ z87\1\8c2 = (7.294u,8.460u);
+ z87\1\8 = (6.630u,8.355u);
+ z87\1\9 = (7.221u,7.017u);
+ z87\1\10 = (6.927u,1.610u);
+ z87\1\11 = (6.378u,0.770u);
+ z87\1\12 = (5.171u,1.639u);
+ z87\1\13 = (5.031u,6.455u);
+ z87\1\14 = (5.907u,8.367u);
+ fill_or_unfill z87\0\0s
+ --z87\0\0
+ --z87\0\1
+ ..controls z87\0\2c1 and z87\0\2c2..z87\0\2
+ ..controls z87\0\3c1 and z87\0\3c2..z87\0\3
+ ..controls z87\0\4c1 and z87\0\4c2..z87\0\4
+ ..controls z87\0\5c1 and z87\0\5c2..z87\0\5
+ ..controls z87\0\6c1 and z87\0\6c2..z87\0\6
+ ..controls z87\0\7c1 and z87\0\7c2..z87\0\7
+ ..controls z87\0\8c1 and z87\0\8c2..z87\0\8
+ --cycle;
+ fill_or_unfill z87\1\0s
+ ..controls z87\1\0c1 and z87\1\0c2..z87\1\0
+ --z87\1\1
+ --z87\1\2
+ ..controls z87\1\3c1 and z87\1\3c2..z87\1\3
+ ..controls z87\1\4c1 and z87\1\4c2..z87\1\4
+ ..controls z87\1\5c1 and z87\1\5c2..z87\1\5
+ ..controls z87\1\6c1 and z87\1\6c2..z87\1\6
+ ..controls z87\1\7c1 and z87\1\7c2..z87\1\7
+ ..controls z87\1\8c1 and z87\1\8c2..z87\1\8
+ --z87\1\9
+ --z87\1\10
+ ...z87\1\11
+ ...z87\1\12
+ --z87\1\13
+ --z87\1\14
+ --cycle;
+ proof_labels (
+ 87\0\0,
+ 87\0\1,
+ 87\0\2,
+ 87\0\3,
+ 87\0\4,
+ 87\0\5,
+ 87\0\6,
+ 87\0\7,
+ 87\0\8,
+ 87\0\9,
+ 87\1\0,
+ 87\1\1,
+ 87\1\2,
+ 87\1\3,
+ 87\1\4,
+ 87\1\5,
+ 87\1\6,
+ 87\1\7,
+ 87\1\8,
+ 87\1\9,
+ 87\1\10,
+ 87\1\11,
+ 87\1\12,
+ 87\1\13,
+ 87\1\14,
+ 87\1\15,
+);
+endchar;
+
+beginchar (88, 11.377u#, ascender_height#, 0.000u#);
+ "Chi";
+ italcorr .95*slant*ascender_height#-.5u#;
+ z88\0\0s = (2.112u,7.416u);
+ z88\0\0c1 = (2.848u,7.554u);
+ z88\0\0c2 = (3.220u,7.279u);
+ z88\0\0 = (3.759u,6.799u);
+ z88\0\1c1 = (4.207u,6.400u);
+ z88\0\1c2 = (4.976u,5.620u);
+ z88\0\1 = (5.020u,5.007u);
+ z88\0\2c1 = (5.113u,3.734u);
+ z88\0\2c2 = (2.662u,1.177u);
+ z88\0\2 = (1.389u,1.032u);
+ z88\0\3c1 = (1.730u,2.512u);
+ z88\0\3c2 = (0.373u,2.173u);
+ z88\0\3 = (0.102u,1.503u);
+ z88\0\4c1 = (-0.459u,0.118u);
+ z88\0\4c2 = (1.439u,0.106u);
+ z88\0\4 = (2.233u,0.269u);
+ z88\0\5c1 = (3.643u,0.559u);
+ z88\0\5c2 = (5.390u,1.999u);
+ z88\0\5 = (5.966u,3.321u);
+ z88\0\6c1 = (6.5u,2.8u); %(6.621u,2.976u);
+ z88\0\6c2 = (7.603u,1.489u);
+ z88\0\6 = (8.204u,1.038u);
+ z88\0\7c1 = (8.837u,0.563u);
+ z88\0\7c2 = (9.663u,-0.256u);
+ z88\0\7 = (10.782u,0.076u);
+ z88\0\8c1 = (11.498u,0.288u);
+ z88\0\8c2 = (11.571u,1.793u);
+ z88\0\8 = (10.994u,2.107u);
+ z88\0\9c1 = (10.348u,2.458u);
+ z88\0\9c2 = (10.368u,1.494u);
+ z88\0\9 = (10.423u,1.153u);
+ z88\0\10c1 = (9.160u,1.110u);
+ z88\0\10c2 = (9.257u,1.311u);
+ z88\0\10 = (8.442u,2.186u);
+ z88\0\11c1 = (8.105u,2.548u);
+ z88\0\11c2 = (7.170u,3.608u);
+ z88\0\11 = (7.059u,4.044u);
+ z88\0\12c1 = (6.828u,4.946u);
+ z88\0\12c2 = (8.616u,7.304u);
+ z88\0\12 = (9.578u,7.328u);
+ z88\0\13c1 = (10.001u,7.339u);
+ z88\0\13c2 = (10.365u,6.950u);
+ z88\0\13 = (10.664u,6.694u);
+ z88\0\14 = (11.146u,6.934u);
+ z88\0\15c1 = (10.768u,9.331u);
+ z88\0\15c2 = (8.321u,8.220u);
+ z88\0\15 = (7.103u,7.233u);
+ z88\0\16c1 = (6.538u,6.775u);
+ z88\0\16c2 = (6.325u,6.073u);
+ z88\0\16 = (5.9u,5.50u); %(5.605u,5.850u);
+ z88\0\17c1 = (5.430u,6.495u);
+ z88\0\17c2 = (4.897u,7.094u);
+ z88\0\17 = (4.395u,7.521u);
+ z88\0\18c1 = (1.794u,9.735u);
+ z88\0\18c2 = (0.185u,6.815u);
+ z88\0\18 = (1.415u,6.130u);
+ z88\0\19c1 = (2.489u,5.531u);
+ z88\0\19c2 = (2.321u,6.858u);
+ fill_or_unfill z88\0\0s
+ ..controls z88\0\0c1 and z88\0\0c2..z88\0\0
+ ..controls z88\0\1c1 and z88\0\1c2..z88\0\1
+ ..controls z88\0\2c1 and z88\0\2c2..z88\0\2
+ ..controls z88\0\3c1 and z88\0\3c2..z88\0\3
+ ..controls z88\0\4c1 and z88\0\4c2..z88\0\4
+ ..controls z88\0\5c1 and z88\0\5c2..z88\0\5
+ ..controls z88\0\6c1 and z88\0\6c2..z88\0\6
+ ..controls z88\0\7c1 and z88\0\7c2..z88\0\7
+ ..controls z88\0\8c1 and z88\0\8c2..z88\0\8
+ ..controls z88\0\9c1 and z88\0\9c2..z88\0\9
+ ..controls z88\0\10c1 and z88\0\10c2..z88\0\10
+ ..controls z88\0\11c1 and z88\0\11c2..z88\0\11
+ ..controls z88\0\12c1 and z88\0\12c2..z88\0\12
+ ..controls z88\0\13c1 and z88\0\13c2..z88\0\13
+ --z88\0\14
+ ..controls z88\0\15c1 and z88\0\15c2..z88\0\15
+ ..controls z88\0\16c1 and z88\0\16c2..z88\0\16
+ ..controls z88\0\17c1 and z88\0\17c2..z88\0\17
+ ..controls z88\0\18c1 and z88\0\18c2..z88\0\18
+ ..controls z88\0\19c1 and z88\0\19c2..cycle;
+ proof_labels (
+ 88\0\0,
+ 88\0\1,
+ 88\0\2,
+ 88\0\3,
+ 88\0\4,
+ 88\0\5,
+ 88\0\6,
+ 88\0\7,
+ 88\0\8,
+ 88\0\9,
+ 88\0\10,
+ 88\0\11,
+ 88\0\12,
+ 88\0\13,
+ 88\0\14,
+ 88\0\15,
+ 88\0\16,
+ 88\0\17,
+ 88\0\18,
+ 88\0\19,
+);
+endchar;
+
+
+beginchar (89, 9.997u#, ascender_height#, descender_depth#);
+ "Schei";
+ italcorr 1.1*slant*ascender_height#-.5u#;
+ z89\0\0s = (0.115u,8.248u);
+ z89\0\0 = (0.115u,7.887u);
+ z89\0\1c1 = (1.543u,7.463u);
+ z89\0\1c2 = (0.945u,5.982u);
+ z89\0\1 = (0.976u,4.875u);
+ z89\0\2 = (0.976u,3.309u);
+ z89\0\3c1 = (0.959u,2.139u);
+ z89\0\3c2 = (0.521u,0.493u);
+ z89\0\3 = (2.043u,0.068u);
+ z89\0\4c1 = (2.373u,-0.025u);
+ z89\0\4c2 = (2.792u,-0.098u);
+ z89\0\4 = (3.126u,0.004u);
+ z89\0\5c1 = (3.740u,0.190u);
+ z89\0\5c2 = (4.209u,0.762u);
+ z89\0\5 = (4.812u,1.021u);
+ z89\0\6c1 = (5.391u,-1.063u);
+ z89\0\6c2 = (7.418u,0.482u);
+ z89\0\6 = (8.546u,0.659u);
+ z89\0\7c1 = (8.552u,0.220u);
+ z89\0\7c2 = (8.645u,-0.383u);
+ z89\0\7 = (8.406u,-0.771u);
+ z89\0\8c1 = (7.259u,-2.636u);
+ z89\0\8c2 = (1.698u,0.252u);
+ z89\0\8 = (1.256u,-1.525u);
+ z89\0\9c1 = (1.136u,-2.006u);
+ z89\0\9c2 = (1.459u,-2.295u);
+ z89\0\9 = (1.922u,-2.254u);
+ z89\0\10c1 = (2.698u,-2.186u);
+ z89\0\10c2 = (2.547u,-1.540u);
+ z89\0\10 = (3.488u,-1.529u);
+ z89\0\11c1 = (5.291u,-1.459u);
+ z89\0\11c2 = (6.802u,-3.230u);
+ z89\0\11 = (8.628u,-1.529u);
+ z89\0\12c1 = (10.023u,-0.257u);
+ z89\0\12c2 = (9.748u,4.210u);
+ z89\0\12 = (9.751u,6.080u);
+ z89\0\13c1 = (9.752u,6.887u);
+ z89\0\13c2 = (10.014u,7.480u);
+ z89\0\13 = (10.112u,8.248u);
+ z89\0\14c1 = (9.765u,8.248u);
+ z89\0\14c2 = (8.485u,8.318u);
+ z89\0\14 = (8.262u,8.125u);
+ z89\0\15c1 = (7.962u,7.864u);
+ z89\0\15c2 = (8.391u,7.251u);
+ z89\0\15 = (8.431u,6.923u);
+ z89\0\16 = (8.431u,3.671u);
+ z89\0\17c1 = (8.424u,2.675u);
+ z89\0\17c2 = (8.458u,0.307u);
+ z89\0\17 = (6.761u,1.133u);
+ z89\0\18c1 = (5.674u,1.662u);
+ z89\0\18c2 = (5.801u,6.131u);
+ z89\0\18 = (6.165u,7.151u);
+ z89\0\19c1 = (6.342u,7.648u);
+ z89\0\19c2 = (6.697u,7.570u);
+ z89\0\19 = (6.840u,7.825u);
+ z89\0\20c1 = (7.167u,8.412u);
+ z89\0\20c2 = (5.306u,8.248u);
+ z89\0\20 = (5.053u,8.248u);
+ z89\0\21c1 = (4.775u,8.247u);
+ z89\0\21c2 = (4.058u,8.327u);
+ z89\0\21 = (4.091u,7.881u);
+ z89\0\22c1 = (4.109u,7.637u);
+ z89\0\22c2 = (4.456u,7.281u);
+ z89\0\22 = (4.530u,6.920u);
+ z89\0\23c1 = (4.740u,5.910u);
+ z89\0\23c2 = (4.635u,3.232u);
+ z89\0\23 = (4.371u,2.225u);
+ z89\0\24c1 = (3.861u,0.283u);
+ z89\0\24c2 = (2.290u,0.816u);
+ z89\0\24 = (2.174u,2.707u);
+ z89\0\25 = (2.309u,5.357u);
+ z89\0\26c1 = (2.288u,5.796u);
+ z89\0\26c2 = (2.232u,6.656u);
+ z89\0\26 = (2.309u,7.044u);
+ z89\0\27 = (2.885u,8.248u);
+ fill_or_unfill z89\0\0s
+ --z89\0\0
+ ..controls z89\0\1c1 and z89\0\1c2..z89\0\1
+ --z89\0\2
+ ..controls z89\0\3c1 and z89\0\3c2..z89\0\3
+ ..controls z89\0\4c1 and z89\0\4c2..z89\0\4
+ ..controls z89\0\5c1 and z89\0\5c2..z89\0\5
+ ..controls z89\0\6c1 and z89\0\6c2..z89\0\6
+ ..controls z89\0\7c1 and z89\0\7c2..z89\0\7
+ ..controls z89\0\8c1 and z89\0\8c2..z89\0\8
+ ..controls z89\0\9c1 and z89\0\9c2..z89\0\9
+ ..controls z89\0\10c1 and z89\0\10c2..z89\0\10
+ ..controls z89\0\11c1 and z89\0\11c2..z89\0\11
+ ..controls z89\0\12c1 and z89\0\12c2..z89\0\12
+ ..controls z89\0\13c1 and z89\0\13c2..z89\0\13
+ ..controls z89\0\14c1 and z89\0\14c2..z89\0\14
+ ..controls z89\0\15c1 and z89\0\15c2..z89\0\15
+ --z89\0\16
+ ..controls z89\0\17c1 and z89\0\17c2..z89\0\17
+ ..controls z89\0\18c1 and z89\0\18c2..z89\0\18
+ ..controls z89\0\19c1 and z89\0\19c2..z89\0\19
+ ..controls z89\0\20c1 and z89\0\20c2..z89\0\20
+ ..controls z89\0\21c1 and z89\0\21c2..z89\0\21
+ ..controls z89\0\22c1 and z89\0\22c2..z89\0\22
+ ..controls z89\0\23c1 and z89\0\23c2..z89\0\23
+ ..controls z89\0\24c1 and z89\0\24c2..z89\0\24
+ --z89\0\25
+ ..controls z89\0\26c1 and z89\0\26c2..z89\0\26
+ --z89\0\27
+ --cycle;
+ proof_labels (
+ 89\0\0,
+ 89\0\1,
+ 89\0\2,
+ 89\0\3,
+ 89\0\4,
+ 89\0\5,
+ 89\0\6,
+ 89\0\7,
+ 89\0\8,
+ 89\0\9,
+ 89\0\10,
+ 89\0\11,
+ 89\0\12,
+ 89\0\13,
+ 89\0\14,
+ 89\0\15,
+ 89\0\16,
+ 89\0\17,
+ 89\0\18,
+ 89\0\19,
+ 89\0\20,
+ 89\0\21,
+ 89\0\22,
+ 89\0\23,
+ 89\0\24,
+ 89\0\25,
+ 89\0\26,
+ 89\0\27,
+ 89\0\28,
+);
+endchar;
+
+
+beginchar (90, 7.274u#, ascender_height#, descender_depth#);
+ "Zida";
+ italcorr .95*slant*ascender_height#-.5u#;
+ z90\0\0s = (3.590u,-2.554u);
+ z90\0\0 = (5.276u,-2.720u);
+ z90\0\1 = (6.601u,-2.433u);
+ z90\0\2c1 = (6.815u,-2.000u);
+ z90\0\2c2 = (7.173u,-1.703u);
+ z90\0\2 = (7.303u,-1.224u);
+ z90\0\3c1 = (7.418u,-0.797u);
+ z90\0\3c2 = (7.381u,-0.459u);
+ z90\0\3 = (7.189u,-0.061u);
+ z90\0\4c1 = (6.289u,1.799u);
+ z90\0\4c2 = (2.083u,-0.027u);
+ z90\0\4 = (1.762u,1.548u);
+ z90\0\5c1 = (1.454u,3.055u);
+ z90\0\5c2 = (7.475u,6.234u);
+ z90\0\5 = (7.342u,6.841u);
+ z90\0\6c1 = (7.231u,7.341u);
+ z90\0\6c2 = (5.955u,7.675u);
+ z90\0\6 = (5.517u,7.796u);
+ z90\0\7c1 = (5.049u,7.923u);
+ z90\0\7c2 = (4.685u,8.040u);
+ z90\0\7 = (4.192u,8.046u);
+ z90\0\8c1 = (3.293u,8.058u);
+ z90\0\8c2 = (-0.838u,8.376u);
+ z90\0\8 = (0.286u,6.366u);
+ z90\0\9c1 = (0.687u,5.650u);
+ z90\0\9c2 = (2.626u,5.130u);
+ z90\0\9 = (2.482u,4.688u);
+ z90\0\10c1 = (2.240u,3.940u);
+ z90\0\10c2 = (0.218u,3.365u);
+ z90\0\10 = (0.218u,1.904u);
+ z90\0\11c1 = (0.218u,1.362u);
+ z90\0\11c2 = (0.278u,1.156u);
+ z90\0\11 = (0.687u,0.780u);
+ z90\0\12c1 = (1.999u,-0.420u);
+ z90\0\12c2 = (5.955u,0.710u);
+ z90\0\12 = (6.294u,-0.528u);
+ z90\0\13c1 = (6.360u,-0.769u);
+ z90\0\13c2 = (6.286u,-1.013u);
+ z90\0\13 = (6.171u,-1.227u);
+ z90\0\14c1 = (5.441u,-2.587u);
+ z90\0\14c2 = (4.184u,-1.597u);
+ z90\1\0s = (3.349u,7.269u);
+ z90\1\0c1 = (3.848u,7.336u);
+ z90\1\0c2 = (5.319u,7.377u);
+ z90\1\0 = (5.758u,7.269u);
+ z90\1\1c1 = (7.116u,6.848u);
+ z90\1\1c2 = (6.099u,6.169u);
+ z90\1\1 = (5.397u,5.869u);
+ z90\1\2c1 = (4.926u,5.668u);
+ z90\1\2c2 = (4.466u,5.388u);
+ z90\1\2 = (3.951u,5.316u);
+ z90\1\3c1 = (3.418u,5.242u);
+ z90\1\3c2 = (0.385u,6.046u);
+ z90\1\3 = (1.462u,6.841u);
+ z90\1\4c1 = (1.692u,7.010u);
+ z90\1\4c2 = (3.004u,7.236u);
+ fill_or_unfill z90\0\0s
+ --z90\0\0
+ --z90\0\1
+ ..controls z90\0\2c1 and z90\0\2c2..z90\0\2
+ ..controls z90\0\3c1 and z90\0\3c2..z90\0\3
+ ..controls z90\0\4c1 and z90\0\4c2..z90\0\4
+ ..controls z90\0\5c1 and z90\0\5c2..z90\0\5
+ ..controls z90\0\6c1 and z90\0\6c2..z90\0\6
+ ..controls z90\0\7c1 and z90\0\7c2..z90\0\7
+ ..controls z90\0\8c1 and z90\0\8c2..z90\0\8
+ ..controls z90\0\9c1 and z90\0\9c2..z90\0\9
+ ..controls z90\0\10c1 and z90\0\10c2..z90\0\10
+ ..controls z90\0\11c1 and z90\0\11c2..z90\0\11
+ ..controls z90\0\12c1 and z90\0\12c2..z90\0\12
+ ..controls z90\0\13c1 and z90\0\13c2..z90\0\13
+ ..controls z90\0\14c1 and z90\0\14c2..cycle;
+ fill_or_unfill z90\1\0s
+ ..controls z90\1\0c1 and z90\1\0c2..z90\1\0
+ ..controls z90\1\1c1 and z90\1\1c2..z90\1\1
+ ..controls z90\1\2c1 and z90\1\2c2..z90\1\2
+ ..controls z90\1\3c1 and z90\1\3c2..z90\1\3
+ ..controls z90\1\4c1 and z90\1\4c2..cycle;
+ proof_labels (
+ 90\0\0,
+ 90\0\1,
+ 90\0\2,
+ 90\0\3,
+ 90\0\4,
+ 90\0\5,
+ 90\0\6,
+ 90\0\7,
+ 90\0\8,
+ 90\0\9,
+ 90\0\10,
+ 90\0\11,
+ 90\0\12,
+ 90\0\13,
+ 90\0\14,
+ 90\1\0,
+ 90\1\1,
+ 90\1\2,
+ 90\1\3,
+ 90\1\4,
+);
+endchar;
+
+
+beginchar (97, 7.088u#, x_height#, 0.000u#);
+ "alpha";
+ z97\0\0s = (2.315u,3.585u);
+ z97\0\0c1 = (1.842u,3.433u);
+ z97\0\0c2 = (0.153u,1.879u);
+ z97\0\0 = (0.025u,1.417u);
+ z97\0\1c1 = (-0.063u,1.105u);
+ z97\0\1c2 = (0.090u,0.825u);
+ z97\0\1 = (0.309u,0.610u);
+ z97\0\2c1 = (1.294u,-0.364u);
+ z97\0\2c2 = (2.960u,0.054u);
+ z97\0\2 = (4.121u,0.329u);
+ z97\0\3c1 = (4.401u,0.395u);
+ z97\0\3c2 = (4.714u,0.573u);
+ z97\0\3 = (4.999u,0.539u);
+ z97\0\4c1 = (5.533u,0.544u);
+ z97\0\4c2 = (6.552u,-0.108u);
+ z97\0\4 = (6.974u,0.539u);
+ z97\0\5c1 = (7.189u,0.832u);
+ z97\0\5c2 = (7.093u,1.300u);
+ z97\0\5 = (6.744u,1.474u);
+ z97\0\6c1 = (6.339u,1.676u);
+ z97\0\6c2 = (5.959u,1.441u);
+ z97\0\6 = (5.588u,1.551u);
+ z97\0\7c1 = (5.184u,1.671u);
+ z97\0\7c2 = (3.768u,2.991u);
+ z97\0\7 = (3.808u,3.397u);
+ z97\0\8c1 = (3.842u,4.136u);
+ z97\0\8c2 = (4.641u,4.503u);
+ z97\0\8 = (3.808u,5.481u);
+ z97\0\9c1 = (3.317u,6.083u);
+ z97\0\9c2 = (1.986u,6.232u);
+ z97\0\9 = (1.852u,5.265u);
+ z97\0\10c1 = (1.770u,4.670u);
+ z97\0\10c2 = (2.122u,4.122u);
+ z97\1\0s = (2.697u,2.427u);
+ z97\1\0c1 = (3.511u,2.547u);
+ z97\1\0c2 = (4.555u,1.512u);
+ z97\1\0 = (3.843u,1.123u);
+ z97\1\1c1 = (2.823u,0.565u);
+ z97\1\1c2 = (0.744u,1.287u);
+ fill_or_unfill z97\0\0s
+ ..controls z97\0\0c1 and z97\0\0c2..z97\0\0
+ ..controls z97\0\1c1 and z97\0\1c2..z97\0\1
+ ..controls z97\0\2c1 and z97\0\2c2..z97\0\2
+ ..controls z97\0\3c1 and z97\0\3c2..z97\0\3
+ ..controls z97\0\4c1 and z97\0\4c2..z97\0\4
+ ..controls z97\0\5c1 and z97\0\5c2..z97\0\5
+ ..controls z97\0\6c1 and z97\0\6c2..z97\0\6
+ ..controls z97\0\7c1 and z97\0\7c2..z97\0\7
+ ..controls z97\0\8c1 and z97\0\8c2..z97\0\8
+ ..controls z97\0\9c1 and z97\0\9c2..z97\0\9
+ ..controls z97\0\10c1 and z97\0\10c2..cycle;
+ fill_or_unfill z97\1\0s
+ ..controls z97\1\0c1 and z97\1\0c2..z97\1\0
+ ..controls z97\1\1c1 and z97\1\1c2..cycle;
+ proof_labels (
+ 97\0\0,
+ 97\0\1,
+ 97\0\2,
+ 97\0\3,
+ 97\0\4,
+ 97\0\5,
+ 97\0\6,
+ 97\0\7,
+ 97\0\8,
+ 97\0\9,
+ 97\0\10,
+ 97\1\0,
+ 97\1\1,
+);
+endchar;
+
+beginchar (98, 5.901u#, 7.364u#, 0.000u#);
+ "vida";
+ italcorr .8*slant*x_height#-.5u#;
+ z98\0\0s = (1.086u,0.818u);
+ z98\0\0c1 = (-0.347u,0.786u);
+ z98\0\0c2 = (-0.386u,0.017u);
+ z98\0\0 = (1.086u,0.012u);
+ z98\0\1c1 = (1.714u,0.010u);
+ z98\0\1c2 = (5.659u,-0.085u);
+ z98\0\1 = (5.856u,0.282u);
+ z98\0\2c1 = (6.056u,0.653u);
+ z98\0\2c2 = (5.538u,0.777u);
+ z98\0\2 = (5.302u,0.818u);
+ z98\0\3c1 = (5.611u,4.664u);
+ z98\0\3c2 = (1.973u,3.375u);
+ z98\0\3 = (4.941u,5.515u);
+ z98\0\4c1 = (4.467u,8.852u);
+ z98\0\4c2 = (-0.203u,7.896u);
+ z98\1\0s = (2.995u,6.526u);
+ z98\1\0c1 = (4.091u,6.592u);
+ z98\1\0c2 = (3.809u,5.121u);
+ z98\1\0 = (2.995u,4.855u);
+ z98\1\1c1 = (1.868u,4.498u);
+ z98\1\1c2 = (2.030u,6.068u);
+ z98\2\0s = (2.050u,4.070u);
+ z98\2\0c1 = (3.419u,3.913u);
+ z98\2\0c2 = (5.262u,1.078u);
+ z98\2\0 = (3.611u,0.836u);
+ z98\2\1c1 = (2.258u,0.638u);
+ z98\2\1c2 = (1.878u,2.328u);
+ z98\2\1 = (1.941u,3.347u);
+ fill_or_unfill z98\0\0s
+ ..controls z98\0\0c1 and z98\0\0c2..z98\0\0
+ ..controls z98\0\1c1 and z98\0\1c2..z98\0\1
+ ..controls z98\0\2c1 and z98\0\2c2..z98\0\2
+ ..controls z98\0\3c1 and z98\0\3c2..z98\0\3
+ ..controls z98\0\4c1 and z98\0\4c2..cycle;
+ fill_or_unfill z98\1\0s
+ ..controls z98\1\0c1 and z98\1\0c2..z98\1\0
+ ..controls z98\1\1c1 and z98\1\1c2..cycle;
+ fill_or_unfill z98\2\0s
+ ..controls z98\2\0c1 and z98\2\0c2..z98\2\0
+ ..controls z98\2\1c1 and z98\2\1c2..z98\2\1
+ --cycle;
+ proof_labels (
+ 98\0\0,
+ 98\0\1,
+ 98\0\2,
+ 98\0\3,
+ 98\0\4,
+ 98\1\0,
+ 98\1\1,
+ 98\2\0,
+ 98\2\1,
+ 98\2\2,
+);
+endchar;
+
+beginchar (99, 4.861u#, x_height#, 0.000u#);
+ "sima";
+ italcorr .95*slant*x_height#-.5u#;
+ z99\0\0s = (4.658u,1.351u);
+ z99\0\0c1 = (3.839u,1.323u);
+ z99\0\0c2 = (3.210u,0.682u);
+ z99\0\0 = (2.371u,1.037u);
+ z99\0\1c1 = (1.052u,1.594u);
+ z99\0\1c2 = (0.815u,4.342u);
+ z99\0\1 = (2.250u,4.875u);
+ z99\0\2c1 = (3.411u,5.307u);
+ z99\0\2c2 = (3.493u,3.708u);
+ z99\0\2 = (4.405u,3.921u);
+ z99\0\3c1 = (5.604u,4.200u);
+ z99\0\3c2 = (4.147u,5.356u);
+ z99\0\3 = (3.454u,5.471u);
+ z99\0\4c1 = (0.722u,5.927u);
+ z99\0\4c2 = (-1.000u,3.061u);
+ z99\0\4 = (0.624u,0.855u);
+ z99\0\5c1 = (1.607u,-0.479u);
+ z99\0\5c2 = (4.082u,-0.212u);
+ fill_or_unfill z99\0\0s
+ ..controls z99\0\0c1 and z99\0\0c2..z99\0\0
+ ..controls z99\0\1c1 and z99\0\1c2..z99\0\1
+ ..controls z99\0\2c1 and z99\0\2c2..z99\0\2
+ ..controls z99\0\3c1 and z99\0\3c2..z99\0\3
+ ..controls z99\0\4c1 and z99\0\4c2..z99\0\4
+ ..controls z99\0\5c1 and z99\0\5c2..cycle;
+ proof_labels (
+ 99\0\0,
+ 99\0\1,
+ 99\0\2,
+ 99\0\3,
+ 99\0\4,
+ 99\0\5,
+);
+endchar;
+
+beginchar (100, 7.449u#, x_height#, 0.000u#);
+ "dalda";
+ z100\0\0s = (0.350u,5.654u);
+ z100\0\0c1 = (-0.278u,5.036u);
+ z100\0\0c2 = (-0.048u,4.232u);
+ z100\0\0 = (0.906u,4.349u);
+ z100\0\1c1 = (1.397u,4.409u);
+ z100\0\1c2 = (1.715u,4.757u);
+ z100\0\1 = (2.230u,4.714u);
+ z100\0\2c1 = (2.536u,4.689u);
+ z100\0\2c2 = (2.900u,4.543u);
+ z100\0\2 = (2.960u,4.204u);
+ z100\0\3c1 = (3.126u,3.281u);
+ z100\0\3c2 = (0.348u,0.992u);
+ z100\0\3 = (0.272u,0.710u);
+ z100\0\4c1 = (0.117u,0.128u);
+ z100\0\4c2 = (1.369u,0.137u);
+ z100\0\4 = (1.714u,0.137u);
+ z100\0\5 = (3.796u,0.000u);
+ z100\0\6 = (5.121u,0.077u);
+ z100\0\7c1 = (5.579u,0.045u);
+ z100\0\7c2 = (7.292u,-0.043u);
+ z100\0\7 = (7.441u,0.502u);
+ z100\0\8c1 = (7.546u,0.887u);
+ z100\0\8c2 = (6.582u,1.579u);
+ z100\0\8 = (6.310u,1.853u);
+ z100\0\9c1 = (5.204u,2.968u);
+ z100\0\9c2 = (4.495u,4.767u);
+ z100\0\9 = (3.069u,5.553u);
+ z100\0\10c1 = (2.509u,5.862u);
+ z100\0\10c2 = (0.943u,5.883u);
+ z100\1\0s = (4.399u,2.886u);
+ z100\1\0 = (5.483u,1.079u);
+ z100\1\1 = (2.833u,1.079u);
+ z100\1\2c1 = (3.006u,1.780u);
+ z100\1\2c2 = (3.652u,2.758u);
+ fill_or_unfill z100\0\0s
+ ..controls z100\0\0c1 and z100\0\0c2..z100\0\0
+ ..controls z100\0\1c1 and z100\0\1c2..z100\0\1
+ ..controls z100\0\2c1 and z100\0\2c2..z100\0\2
+ ..controls z100\0\3c1 and z100\0\3c2..z100\0\3
+ ..controls z100\0\4c1 and z100\0\4c2..z100\0\4
+ --z100\0\5
+ --z100\0\6
+ ..controls z100\0\7c1 and z100\0\7c2..z100\0\7
+ ..controls z100\0\8c1 and z100\0\8c2..z100\0\8
+ ..controls z100\0\9c1 and z100\0\9c2..z100\0\9
+ ..controls z100\0\10c1 and z100\0\10c2..cycle;
+ fill_or_unfill z100\1\0s
+ --z100\1\0
+ --z100\1\1
+ ..controls z100\1\2c1 and z100\1\2c2..cycle;
+ proof_labels (
+ 100\0\0,
+ 100\0\1,
+ 100\0\2,
+ 100\0\3,
+ 100\0\4,
+ 100\0\5,
+ 100\0\6,
+ 100\0\7,
+ 100\0\8,
+ 100\0\9,
+ 100\0\10,
+ 100\1\0,
+ 100\1\1,
+ 100\1\2,
+);
+endchar;
+
+beginchar (101, 4.897u#, x_height#, 0.000u#);
+ "ei";
+ italcorr .95*slant*x_height#-.5u#;
+ z101\0\0s = (4.897u,1.455u);
+ z101\0\0c1 = (4.197u,1.254u);
+ z101\0\0c2 = (3.751u,0.693u);
+ z101\0\0 = (2.972u,0.645u);
+ z101\0\1c1 = (2.188u,0.597u);
+ z101\0\1c2 = (1.031u,1.743u);
+ z101\0\1 = (1.688u,2.329u);
+ z101\0\2c1 = (2.118u,2.713u);
+ z101\0\2c2 = (3.442u,2.442u);
+ z101\0\2 = (4.054u,2.539u);
+ z101\0\3c1 = (3.809u,4.005u);
+ z101\0\3c2 = (1.592u,2.509u);
+ z101\0\3 = (1.479u,3.628u);
+ z101\0\4c1 = (1.443u,3.974u);
+ z101\0\4c2 = (1.683u,4.412u);
+ z101\0\4 = (1.927u,4.643u);
+ z101\0\5c1 = (3.098u,5.751u);
+ z101\0\5c2 = (3.476u,4.405u);
+ z101\0\5 = (4.199u,4.024u);
+ z101\0\6c1 = (4.744u,3.737u);
+ z101\0\6c2 = (4.980u,4.216u);
+ z101\0\6 = (4.845u,4.694u);
+ z101\0\7c1 = (4.475u,6.003u);
+ z101\0\7c2 = (0.014u,6.127u);
+ z101\0\7 = (0.000u,2.780u);
+ z101\0\8c1 = (-0.009u,0.792u);
+ z101\0\8c2 = (0.869u,0.076u);
+ z101\0\8 = (2.729u,0.005u);
+ z101\0\9c1 = (3.831u,-0.038u);
+ z101\0\9c2 = (4.795u,0.139u);
+ fill_or_unfill z101\0\0s
+ ..controls z101\0\0c1 and z101\0\0c2..z101\0\0
+ ..controls z101\0\1c1 and z101\0\1c2..z101\0\1
+ ..controls z101\0\2c1 and z101\0\2c2..z101\0\2
+ ..controls z101\0\3c1 and z101\0\3c2..z101\0\3
+ ..controls z101\0\4c1 and z101\0\4c2..z101\0\4
+ ..controls z101\0\5c1 and z101\0\5c2..z101\0\5
+ ..controls z101\0\6c1 and z101\0\6c2..z101\0\6
+ ..controls z101\0\7c1 and z101\0\7c2..z101\0\7
+ ..controls z101\0\8c1 and z101\0\8c2..z101\0\8
+ ..controls z101\0\9c1 and z101\0\9c2..cycle;
+ proof_labels (
+ 101\0\0,
+ 101\0\1,
+ 101\0\2,
+ 101\0\3,
+ 101\0\4,
+ 101\0\5,
+ 101\0\6,
+ 101\0\7,
+ 101\0\8,
+ 101\0\9,
+);
+endchar;
+
+beginchar (102, 4.317u#, x_height#, 0.000u#);
+ "fei";
+ italcorr 1.1*slant*x_height#-.5u#;
+ z102\0\0s = (2.431u,0.586u);
+ z102\0\0c1 = (2.460u,0.455u);
+ z102\0\0c2 = (2.473u,0.328u);
+ z102\0\0 = (2.574u,0.225u);
+ z102\0\1c1 = (2.783u,0.012u);
+ z102\0\1c2 = (3.775u,-0.173u);
+ z102\0\1 = (4.120u,0.286u);
+ z102\0\2 = (4.120u,1.427u);
+ z102\0\3c1 = (4.097u,2.020u);
+ z102\0\3c2 = (4.166u,4.393u);
+ z102\0\3 = (4.188u,4.689u);
+ z102\0\4c1 = (4.485u,4.438u);
+ z102\0\4c2 = (4.675u,4.623u);
+ z102\0\4 = (4.317u,5.013u);
+ z102\0\5c1 = (4.061u,5.292u);
+ z102\0\5c2 = (3.221u,5.885u);
+ z102\0\5 = (2.970u,5.388u);
+ z102\0\6c1 = (2.884u,5.218u);
+ z102\0\6c2 = (2.927u,3.610u);
+ z102\0\6 = (2.923u,3.292u);
+ z102\0\7c1 = (2.867u,2.276u);
+ z102\0\7c2 = (0.729u,2.825u);
+ z102\0\7 = (0.675u,3.708u);
+ z102\0\8c1 = (0.576u,4.331u);
+ z102\0\8c2 = (0.664u,4.554u);
+ z102\0\8 = (0.972u,4.598u);
+ z102\0\9c1 = (1.495u,4.792u);
+ z102\0\9c2 = (1.213u,4.413u);
+ z102\0\9 = (1.700u,4.303u);
+ z102\0\10c1 = (2.304u,4.166u);
+ z102\0\10c2 = (2.407u,4.981u);
+ z102\0\10 = (2.077u,5.316u);
+ z102\0\11c1 = (1.400u,6.004u);
+ z102\0\11c2 = (0.325u,5.358u);
+ z102\0\11 = (0.062u,4.602u);
+ z102\0\12c1 = (-0.224u,3.778u);
+ z102\0\12c2 = (0.451u,2.349u);
+ z102\0\12 = (1.284u,2.133u);
+ z102\0\13 = (2.758u,1.714u);
+ z102\0\14c1 = (3.002u,1.629u);
+ z102\0\14c2 = (3.000u,1.063u);
+ z102\0\14 = (2.860u,0.854u);
+ z102\0\15c1 = (2.760u,0.705u);
+ z102\0\15c2 = (2.588u,0.651u);
+ fill_or_unfill z102\0\0s
+ ..controls z102\0\0c1 and z102\0\0c2..z102\0\0
+ ..controls z102\0\1c1 and z102\0\1c2..z102\0\1
+ --z102\0\2
+ ..controls z102\0\3c1 and z102\0\3c2..z102\0\3
+ ..controls z102\0\4c1 and z102\0\4c2..z102\0\4
+ ..controls z102\0\5c1 and z102\0\5c2..z102\0\5
+ ..controls z102\0\6c1 and z102\0\6c2..z102\0\6
+ ..controls z102\0\7c1 and z102\0\7c2..z102\0\7
+ ..controls z102\0\8c1 and z102\0\8c2..z102\0\8
+ ..controls z102\0\9c1 and z102\0\9c2..z102\0\9
+ ..controls z102\0\10c1 and z102\0\10c2..z102\0\10
+ ..controls z102\0\11c1 and z102\0\11c2..z102\0\11
+ ..controls z102\0\12c1 and z102\0\12c2..z102\0\12
+ --z102\0\13
+ ..controls z102\0\14c1 and z102\0\14c2..z102\0\14
+ ..controls z102\0\15c1 and z102\0\15c2..cycle;
+ proof_labels (
+ 102\0\0,
+ 102\0\1,
+ 102\0\2,
+ 102\0\3,
+ 102\0\4,
+ 102\0\5,
+ 102\0\6,
+ 102\0\7,
+ 102\0\8,
+ 102\0\9,
+ 102\0\10,
+ 102\0\11,
+ 102\0\12,
+ 102\0\13,
+ 102\0\14,
+ 102\0\15,
+);
+endchar;
+
+beginchar (103, 6.528u#, x_height#, 0.000u#);
+ "gamma";
+ italcorr .95*x_height#*slant-.5u#;
+ z103\0\0s = (4.119u,0.000u);
+ z103\0\0 = (4.119u,0.481u);
+ z103\0\1 = (3.272u,1.109u);
+ z103\0\2 = (2.192u,5.179u);
+ z103\0\3c1 = (2.507u,5.179u);
+ z103\0\3c2 = (3.369u,5.216u);
+ z103\0\3 = (3.619u,5.107u);
+ z103\0\4c1 = (4.229u,4.843u);
+ z103\0\4c2 = (3.866u,3.570u);
+ z103\0\4 = (6.046u,3.372u);
+ z103\0\5 = (5.720u,4.801u);
+ z103\0\6 = (6.528u,5.902u);
+ z103\0\7 = (1.107u,5.902u);
+ z103\0\8c1 = (0.771u,5.901u);
+ z103\0\8c2 = (0.099u,5.965u);
+ z103\0\8 = (0.008u,5.523u);
+ z103\0\9c1 = (-0.089u,5.053u);
+ z103\0\9c2 = (0.705u,4.401u);
+ z103\0\9 = (0.920u,3.974u);
+ z103\0\10c1 = (1.880u,2.067u);
+ z103\0\10c2 = (1.119u,-0.127u);
+ fill_or_unfill z103\0\0s
+ --z103\0\0
+ --z103\0\1
+ --z103\0\2
+ ..controls z103\0\3c1 and z103\0\3c2..z103\0\3
+ ..controls z103\0\4c1 and z103\0\4c2..z103\0\4
+ --z103\0\5
+ --z103\0\6
+ --z103\0\7
+ ..controls z103\0\8c1 and z103\0\8c2..z103\0\8
+ ..controls z103\0\9c1 and z103\0\9c2..z103\0\9
+ ..controls z103\0\10c1 and z103\0\10c2..cycle;
+ proof_labels (
+ 103\0\0,
+ 103\0\1,
+ 103\0\2,
+ 103\0\3,
+ 103\0\4,
+ 103\0\5,
+ 103\0\6,
+ 103\0\7,
+ 103\0\8,
+ 103\0\9,
+ 103\0\10,
+);
+endchar;
+
+beginchar (104, 5.400u#, x_height#, 0.000u#);
+ "hida";
+ italcorr .55*slant*x_height#-.5u#;
+ z104\0\0s = (0.220u,5.722u);
+ z104\0\0c1 = (-0.137u,4.253u);
+ z104\0\0c2 = (0.776u,1.994u);
+ z104\0\0 = (0.568u,1.334u);
+ z104\0\1c1 = (0.473u,1.033u);
+ z104\0\1c2 = (0.133u,1.060u);
+ z104\0\1 = (0.027u,0.839u);
+ z104\0\2c1 = (-0.219u,0.326u);
+ z104\0\2c2 = (1.108u,-0.184u);
+ z104\0\2 = (1.493u,0.065u);
+ z104\0\3c1 = (1.973u,0.376u);
+ z104\0\3c2 = (1.666u,1.919u);
+ z104\0\3 = (1.666u,2.454u);
+ z104\0\4c1 = (1.968u,2.476u);
+ z104\0\4c2 = (2.589u,2.573u);
+ z104\0\4 = (2.837u,2.454u);
+ z104\0\5c1 = (3.636u,2.004u);
+ z104\0\5c2 = (2.839u,-0.313u);
+ z104\0\5 = (5.400u,0.302u);
+ z104\0\6c1 = (5.268u,0.817u);
+ z104\0\6c2 = (5.213u,0.934u);
+ z104\0\6 = (4.677u,1.024u);
+ z104\0\7 = (4.278u,4.250u);
+ z104\0\8 = (4.677u,4.638u);
+ z104\0\9c1 = (4.494u,5.472u);
+ z104\0\9c2 = (3.904u,5.695u);
+ z104\0\9 = (3.111u,5.722u);
+ z104\0\10c1 = (3.049u,4.957u);
+ z104\0\10c2 = (3.271u,3.436u);
+ z104\0\10 = (2.302u,3.295u);
+ z104\0\11c1 = (2.054u,3.258u);
+ z104\0\11c2 = (1.822u,3.268u);
+ z104\0\11 = (1.656u,3.480u);
+ z104\0\12c1 = (1.086u,4.208u);
+ z104\0\12c2 = (1.867u,4.720u);
+ z104\0\12 = (1.797u,5.087u);
+ z104\0\13c1 = (1.730u,5.441u);
+ z104\0\13c2 = (0.539u,5.676u);
+ fill_or_unfill z104\0\0s
+ ..controls z104\0\0c1 and z104\0\0c2..z104\0\0
+ ..controls z104\0\1c1 and z104\0\1c2..z104\0\1
+ ..controls z104\0\2c1 and z104\0\2c2..z104\0\2
+ ..controls z104\0\3c1 and z104\0\3c2..z104\0\3
+ ..controls z104\0\4c1 and z104\0\4c2..z104\0\4
+ ..controls z104\0\5c1 and z104\0\5c2..z104\0\5
+ ..controls z104\0\6c1 and z104\0\6c2..z104\0\6
+ --z104\0\7
+ --z104\0\8
+ ..controls z104\0\9c1 and z104\0\9c2..z104\0\9
+ ..controls z104\0\10c1 and z104\0\10c2..z104\0\10
+ ..controls z104\0\11c1 and z104\0\11c2..z104\0\11
+ ..controls z104\0\12c1 and z104\0\12c2..z104\0\12
+ ..controls z104\0\13c1 and z104\0\13c2..cycle;
+ proof_labels (
+ 104\0\0,
+ 104\0\1,
+ 104\0\2,
+ 104\0\3,
+ 104\0\4,
+ 104\0\5,
+ 104\0\6,
+ 104\0\7,
+ 104\0\8,
+ 104\0\9,
+ 104\0\10,
+ 104\0\11,
+ 104\0\12,
+ 104\0\13,
+);
+endchar;
+
+beginchar (105, 2.095u#, x_height#, 0.000u#);
+ "iauda";
+ italcorr .95*slant*x_height#-.4u#;
+ z105\0\0s = (0.120u,5.596u);
+ z105\0\0 = (0.723u,1.018u);
+ z105\0\1 = (0.000u,1.018u);
+ z105\0\2c1 = (0.027u,0.790u);
+ z105\0\2c2 = (0.033u,0.568u);
+ z105\0\2 = (0.209u,0.395u);
+ z105\0\3c1 = (0.500u,0.109u);
+ z105\0\3c2 = (1.742u,-0.230u);
+ z105\0\3 = (2.025u,0.213u);
+ z105\0\4c1 = (2.344u,0.713u);
+ z105\0\4c2 = (1.482u,3.181u);
+ z105\0\4 = (1.524u,4.027u);
+ z105\0\5c1 = (1.554u,4.634u);
+ z105\0\5c2 = (2.287u,4.738u);
+ z105\0\5 = (1.946u,5.169u);
+ z105\0\6c1 = (1.638u,5.558u);
+ z105\0\6c2 = (0.582u,5.594u);
+ fill_or_unfill z105\0\0s
+ --z105\0\0
+ --z105\0\1
+ ..controls z105\0\2c1 and z105\0\2c2..z105\0\2
+ ..controls z105\0\3c1 and z105\0\3c2..z105\0\3
+ ..controls z105\0\4c1 and z105\0\4c2..z105\0\4
+ ..controls z105\0\5c1 and z105\0\5c2..z105\0\5
+ ..controls z105\0\6c1 and z105\0\6c2..cycle;
+ proof_labels (
+ 105\0\0,
+ 105\0\1,
+ 105\0\2,
+ 105\0\3,
+ 105\0\4,
+ 105\0\5,
+ 105\0\6,
+);
+endchar;
+
+beginchar (57, 2.095u#, x_height#, 0.000u#);
+ "iauda diaeresis";
+ italcorr 1.05*slant*ascender_height#-.5u#;
+ z105\0\0s = (0.120u,5.596u);
+ z105\0\0 = (0.723u,1.018u);
+ z105\0\1 = (0.000u,1.018u);
+ z105\0\2c1 = (0.027u,0.790u);
+ z105\0\2c2 = (0.033u,0.568u);
+ z105\0\2 = (0.209u,0.395u);
+ z105\0\3c1 = (0.500u,0.109u);
+ z105\0\3c2 = (1.742u,-0.230u);
+ z105\0\3 = (2.025u,0.213u);
+ z105\0\4c1 = (2.344u,0.713u);
+ z105\0\4c2 = (1.482u,3.181u);
+ z105\0\4 = (1.524u,4.027u);
+ z105\0\5c1 = (1.554u,4.634u);
+ z105\0\5c2 = (2.287u,4.738u);
+ z105\0\5 = (1.946u,5.169u);
+ z105\0\6c1 = (1.638u,5.558u);
+ z105\0\6c2 = (0.582u,5.594u);
+ fill_or_unfill z105\0\0s
+ --z105\0\0
+ --z105\0\1
+ ..controls z105\0\2c1 and z105\0\2c2..z105\0\2
+ ..controls z105\0\3c1 and z105\0\3c2..z105\0\3
+ ..controls z105\0\4c1 and z105\0\4c2..z105\0\4
+ ..controls z105\0\5c1 and z105\0\5c2..z105\0\5
+ ..controls z105\0\6c1 and z105\0\6c2..cycle;
+ stemd:=1.5u;
+ pickup pencircle scaled stemd;
+ z105\1\0=(x105\0\0s-.2u,h+1stemd);
+ z105\2\0=(x105\0\5+.2u,h+1stemd);
+ draw z105\1\0; draw z105\2\0;
+ proof_labels (
+ 105\0\0,
+ 105\0\1,
+ 105\0\2,
+ 105\0\3,
+ 105\0\4,
+ 105\0\5,
+ 105\0\6,
+ 105\1\0,
+ 105\2\0,
+);
+endchar;
+
+
+beginchar (106, 8.473u#, 6.202u#, descender_depth#);
+ "khei";
+ italcorr .85*slant*x_height#-.5u#;
+ z106\0\0s = (1.354u,0.019u);
+ z106\0\0c1 = (2.612u,0.009u);
+ z106\0\0c2 = (3.758u,0.587u);
+ z106\0\0 = (4.809u,2.364u);
+ z106\0\1c1 = (6.000u,2.203u);
+ z106\0\1c2 = (7.361u,2.286u);
+ z106\0\1 = (7.352u,1.334u);
+ z106\0\2c1 = (7.343u,0.409u);
+ z106\0\2c2 = (6.157u,0.575u);
+ z106\0\2 = (4.712u,0.465u);
+ z106\0\3c1 = (3.464u,0.370u);
+ z106\0\3c2 = (1.632u,-0.741u);
+ z106\0\3 = (0.983u,-1.352u);
+ z106\0\4c1 = (3.501u,-0.087u);
+ z106\0\4c2 = (4.278u,-0.731u);
+ z106\0\4 = (5.541u,-0.777u);
+ z106\0\5c1 = (7.644u,-0.854u);
+ z106\0\5c2 = (8.005u,-0.010u);
+ z106\0\5 = (8.171u,0.315u);
+ z106\0\6c1 = (8.840u,1.622u);
+ z106\0\6c2 = (8.237u,2.502u);
+ z106\0\6 = (7.854u,2.907u);
+ z106\0\7c1 = (7.207u,3.593u);
+ z106\0\7c2 = (6.481u,3.515u);
+ z106\0\7 = (5.453u,3.652u);
+ z106\0\8 = (6.501u,5.238u);
+ z106\0\9 = (7.294u,5.706u);
+ z106\0\10 = (4.341u,6.202u);
+ z106\0\11 = (4.614u,5.467u);
+ z106\0\12 = (3.836u,3.872u);
+ z106\0\13c1 = (-0.266u,4.030u);
+ z106\0\13c2 = (-1.063u,0.113u);
+ z106\1\0s = (2.212u,1.443u);
+ z106\1\0c1 = (0.656u,0.642u);
+ z106\1\0c2 = (1.102u,2.822u);
+ z106\1\0 = (3.135u,2.654u);
+ fill_or_unfill z106\0\0s
+ ..controls z106\0\0c1 and z106\0\0c2..z106\0\0
+ ..controls z106\0\1c1 and z106\0\1c2..z106\0\1
+ ..controls z106\0\2c1 and z106\0\2c2..z106\0\2
+ ..controls z106\0\3c1 and z106\0\3c2..z106\0\3
+ ..controls z106\0\4c1 and z106\0\4c2..z106\0\4
+ ..controls z106\0\5c1 and z106\0\5c2..z106\0\5
+ ..controls z106\0\6c1 and z106\0\6c2..z106\0\6
+ ..controls z106\0\7c1 and z106\0\7c2..z106\0\7
+ --z106\0\8
+ --z106\0\9
+ --z106\0\10
+ --z106\0\11
+ --z106\0\12
+ ..controls z106\0\13c1 and z106\0\13c2..cycle;
+ fill_or_unfill z106\1\0s
+ ..controls z106\1\0c1 and z106\1\0c2..z106\1\0
+ --cycle;
+ proof_labels (
+ 106\0\0,
+ 106\0\1,
+ 106\0\2,
+ 106\0\3,
+ 106\0\4,
+ 106\0\5,
+ 106\0\6,
+ 106\0\7,
+ 106\0\8,
+ 106\0\9,
+ 106\0\10,
+ 106\0\11,
+ 106\0\12,
+ 106\0\13,
+ 106\1\0,
+ 106\1\1,
+);
+endchar;
+
+beginchar (107, 5.195u#, x_height#, 0.000u#);
+ "kabba";
+ italcorr 1.05*slant*x_height#-.5u#;
+ z107\0\0s = (1.702u,3.091u);
+ z107\0\0c1 = (1.546u,3.959u);
+ z107\0\0c2 = (1.334u,4.625u);
+ z107\0\0 = (2.304u,5.019u);
+ z107\0\1 = (2.304u,5.500u);
+ z107\0\2c1 = (1.806u,5.577u);
+ z107\0\2c2 = (1.242u,5.788u);
+ z107\0\2 = (0.734u,5.716u);
+ z107\0\3c1 = (-0.271u,5.574u);
+ z107\0\3c2 = (0.539u,2.633u);
+ z107\0\3 = (0.544u,1.887u);
+ z107\0\4c1 = (0.548u,1.066u);
+ z107\0\4c2 = (-0.167u,1.049u);
+ z107\0\4 = (0.036u,0.569u);
+ z107\0\5c1 = (0.149u,0.300u);
+ z107\0\5c2 = (0.476u,0.150u);
+ z107\0\5 = (0.738u,0.073u);
+ z107\0\6c1 = (2.103u,-0.330u);
+ z107\0\6c2 = (1.822u,1.026u);
+ z107\0\6 = (1.822u,1.887u);
+ z107\0\7c1 = (2.400u,1.380u);
+ z107\0\7c2 = (5.046u,-0.980u);
+ z107\0\7 = (5.195u,0.803u);
+ z107\0\8c1 = (4.794u,0.930u);
+ z107\0\8c2 = (4.473u,1.117u);
+ z107\0\8 = (4.111u,1.327u);
+ z107\0\9 = (3.388u,1.786u);
+ z107\0\10c1 = (1.227u,3.375u);
+ z107\0\10c2 = (5.028u,3.887u);
+ z107\0\10 = (4.887u,5.393u);
+ z107\0\11c1 = (4.831u,5.994u);
+ z107\0\11c2 = (4.104u,5.846u);
+ z107\0\11 = (3.760u,5.619u);
+ z107\0\12c1 = (2.950u,5.084u);
+ z107\0\12c2 = (2.377u,3.832u);
+ fill_or_unfill z107\0\0s
+ ..controls z107\0\0c1 and z107\0\0c2..z107\0\0
+ --z107\0\1
+ ..controls z107\0\2c1 and z107\0\2c2..z107\0\2
+ ..controls z107\0\3c1 and z107\0\3c2..z107\0\3
+ ..controls z107\0\4c1 and z107\0\4c2..z107\0\4
+ ..controls z107\0\5c1 and z107\0\5c2..z107\0\5
+ ..controls z107\0\6c1 and z107\0\6c2..z107\0\6
+ ..controls z107\0\7c1 and z107\0\7c2..z107\0\7
+ ..controls z107\0\8c1 and z107\0\8c2..z107\0\8
+ --z107\0\9
+ ..controls z107\0\10c1 and z107\0\10c2..z107\0\10
+ ..controls z107\0\11c1 and z107\0\11c2..z107\0\11
+ ..controls z107\0\12c1 and z107\0\12c2..cycle;
+ proof_labels (
+ 107\0\0,
+ 107\0\1,
+ 107\0\2,
+ 107\0\3,
+ 107\0\4,
+ 107\0\5,
+ 107\0\6,
+ 107\0\7,
+ 107\0\8,
+ 107\0\9,
+ 107\0\10,
+ 107\0\11,
+ 107\0\12,
+);
+endchar;
+
+beginchar (108, 6.585u#, 6.507u#, 0.000u#);
+ "laula";
+ z108\0\0s = (1.651u,0.000u);
+ z108\0\0 = (1.651u,0.843u);
+ z108\0\1 = (3.602u,3.373u);
+ z108\0\2 = (4.256u,2.403u);
+ z108\0\3c1 = (4.659u,1.753u);
+ z108\0\3c2 = (5.227u,0.203u);
+ z108\0\3 = (6.020u,0.038u);
+ z108\0\4c1 = (6.272u,-0.014u);
+ z108\0\4c2 = (6.633u,0.036u);
+ z108\0\4 = (6.579u,0.377u);
+ z108\0\5 = (2.387u,5.978u);
+ z108\0\6c1 = (1.924u,6.359u);
+ z108\0\6c2 = (1.315u,6.579u);
+ z108\0\6 = (0.712u,6.487u);
+ z108\0\7c1 = (0.299u,6.424u);
+ z108\0\7c2 = (-0.233u,5.947u);
+ z108\0\7 = (0.109u,5.509u);
+ z108\0\8c1 = (0.503u,5.008u);
+ z108\0\8c2 = (2.275u,5.955u);
+ z108\0\8 = (2.518u,4.693u);
+ z108\0\9c1 = (2.719u,3.653u);
+ z108\0\9c2 = (-0.737u,1.450u);
+ z108\0\9 = (0.527u,0.433u);
+ z108\0\10c1 = (0.905u,0.129u);
+ z108\0\10c2 = (1.201u,0.037u);
+ fill_or_unfill z108\0\0s
+ --z108\0\0
+ --z108\0\1
+ --z108\0\2
+ ..controls z108\0\3c1 and z108\0\3c2..z108\0\3
+ ..controls z108\0\4c1 and z108\0\4c2..z108\0\4
+ --z108\0\5
+ ..controls z108\0\6c1 and z108\0\6c2..z108\0\6
+ ..controls z108\0\7c1 and z108\0\7c2..z108\0\7
+ ..controls z108\0\8c1 and z108\0\8c2..z108\0\8
+ ..controls z108\0\9c1 and z108\0\9c2..z108\0\9
+ ..controls z108\0\10c1 and z108\0\10c2..cycle;
+ proof_labels (
+ 108\0\0,
+ 108\0\1,
+ 108\0\2,
+ 108\0\3,
+ 108\0\4,
+ 108\0\5,
+ 108\0\6,
+ 108\0\7,
+ 108\0\8,
+ 108\0\9,
+ 108\0\10,
+);
+endchar;
+
+beginchar (109, 12.221u#, x_height#, 0.000u#);
+ "mi";
+ z109\0\0s = (3.822u,1.319u);
+ z109\0\0c1 = (4.033u,2.331u);
+ z109\0\0c2 = (4.842u,2.633u);
+ z109\0\0 = (4.769u,3.969u);
+ z109\0\1c1 = (4.649u,6.143u);
+ z109\0\1c2 = (1.676u,6.202u);
+ z109\0\1 = (1.454u,3.969u);
+ z109\0\2c1 = (1.389u,3.316u);
+ z109\0\2c2 = (1.908u,2.548u);
+ z109\0\2 = (1.694u,2.057u);
+ z109\0\3c1 = (1.364u,1.301u);
+ z109\0\3c2 = (-0.381u,1.571u);
+ z109\0\3 = (0.075u,0.503u);
+ z109\0\4c1 = (0.496u,-0.487u);
+ z109\0\4c2 = (2.441u,0.738u);
+ z109\0\4 = (2.979u,0.765u);
+ z109\0\5c1 = (3.342u,0.783u);
+ z109\0\5c2 = (4.457u,-0.037u);
+ z109\0\5 = (5.624u,0.000u);
+ z109\0\6c1 = (6.082u,0.015u);
+ z109\0\6c2 = (6.976u,0.173u);
+ z109\0\6 = (7.366u,0.390u);
+ z109\0\7c1 = (7.651u,0.549u);
+ z109\0\7c2 = (8.134u,0.971u);
+ z109\0\7 = (8.399u,1.046u);
+ z109\0\8c1 = (8.805u,1.160u);
+ z109\0\8c2 = (9.990u,0.246u);
+ z109\0\8 = (10.929u,0.235u);
+ z109\0\9c1 = (11.482u,0.228u);
+ z109\0\9c2 = (12.241u,0.156u);
+ z109\0\9 = (12.221u,0.953u);
+ z109\0\10c1 = (12.215u,1.143u);
+ z109\0\10c2 = (12.146u,1.309u);
+ z109\0\10 = (11.975u,1.407u);
+ z109\0\11c1 = (11.563u,1.644u);
+ z109\0\11c2 = (9.215u,0.904u);
+ z109\0\11 = (9.534u,2.284u);
+ z109\0\12c1 = (9.658u,2.824u);
+ z109\0\12c2 = (10.033u,3.063u);
+ z109\0\12 = (10.079u,3.728u);
+ z109\0\13c1 = (10.290u,6.772u);
+ z109\0\13c2 = (6.398u,6.313u);
+ z109\0\13 = (6.615u,3.728u);
+ z109\0\14 = (7.067u,2.042u);
+ z109\0\15c1 = (6.977u,1.337u);
+ z109\0\15c2 = (5.516u,0.888u);
+ z109\0\15 = (4.906u,0.984u);
+ fill_or_unfill z109\0\0s
+ ..controls z109\0\0c1 and z109\0\0c2..z109\0\0
+ ..controls z109\0\1c1 and z109\0\1c2..z109\0\1
+ ..controls z109\0\2c1 and z109\0\2c2..z109\0\2
+ ..controls z109\0\3c1 and z109\0\3c2..z109\0\3
+ ..controls z109\0\4c1 and z109\0\4c2..z109\0\4
+ ..controls z109\0\5c1 and z109\0\5c2..z109\0\5
+ ..controls z109\0\6c1 and z109\0\6c2..z109\0\6
+ ..controls z109\0\7c1 and z109\0\7c2..z109\0\7
+ ..controls z109\0\8c1 and z109\0\8c2..z109\0\8
+ ..controls z109\0\9c1 and z109\0\9c2..z109\0\9
+ ..controls z109\0\10c1 and z109\0\10c2..z109\0\10
+ ..controls z109\0\11c1 and z109\0\11c2..z109\0\11
+ ..controls z109\0\12c1 and z109\0\12c2..z109\0\12
+ ..controls z109\0\13c1 and z109\0\13c2..z109\0\13
+ --z109\0\14
+ ..controls z109\0\15c1 and z109\0\15c2..z109\0\15
+ --cycle;
+ proof_labels (
+ 109\0\0,
+ 109\0\1,
+ 109\0\2,
+ 109\0\3,
+ 109\0\4,
+ 109\0\5,
+ 109\0\6,
+ 109\0\7,
+ 109\0\8,
+ 109\0\9,
+ 109\0\10,
+ 109\0\11,
+ 109\0\12,
+ 109\0\13,
+ 109\0\14,
+ 109\0\15,
+ 109\0\16,
+);
+endchar;
+
+
+beginchar (62, 12.221u#, x_height#, 0.000u#);
+ "mi grave";
+ z109\0\0s = (3.822u,1.319u);
+ z109\0\0c1 = (4.033u,2.331u);
+ z109\0\0c2 = (4.842u,2.633u);
+ z109\0\0 = (4.769u,3.969u);
+ z109\0\1c1 = (4.649u,6.143u);
+ z109\0\1c2 = (1.676u,6.202u);
+ z109\0\1 = (1.454u,3.969u);
+ z109\0\2c1 = (1.389u,3.316u);
+ z109\0\2c2 = (1.908u,2.548u);
+ z109\0\2 = (1.694u,2.057u);
+ z109\0\3c1 = (1.364u,1.301u);
+ z109\0\3c2 = (-0.381u,1.571u);
+ z109\0\3 = (0.075u,0.503u);
+ z109\0\4c1 = (0.496u,-0.487u);
+ z109\0\4c2 = (2.441u,0.738u);
+ z109\0\4 = (2.979u,0.765u);
+ z109\0\5c1 = (3.342u,0.783u);
+ z109\0\5c2 = (4.457u,-0.037u);
+ z109\0\5 = (5.624u,0.000u);
+ z109\0\6c1 = (6.082u,0.015u);
+ z109\0\6c2 = (6.976u,0.173u);
+ z109\0\6 = (7.366u,0.390u);
+ z109\0\7c1 = (7.651u,0.549u);
+ z109\0\7c2 = (8.134u,0.971u);
+ z109\0\7 = (8.399u,1.046u);
+ z109\0\8c1 = (8.805u,1.160u);
+ z109\0\8c2 = (9.990u,0.246u);
+ z109\0\8 = (10.929u,0.235u);
+ z109\0\9c1 = (11.482u,0.228u);
+ z109\0\9c2 = (12.241u,0.156u);
+ z109\0\9 = (12.221u,0.953u);
+ z109\0\10c1 = (12.215u,1.143u);
+ z109\0\10c2 = (12.146u,1.309u);
+ z109\0\10 = (11.975u,1.407u);
+ z109\0\11c1 = (11.563u,1.644u);
+ z109\0\11c2 = (9.215u,0.904u);
+ z109\0\11 = (9.534u,2.284u);
+ z109\0\12c1 = (9.658u,2.824u);
+ z109\0\12c2 = (10.033u,3.063u);
+ z109\0\12 = (10.079u,3.728u);
+ z109\0\13c1 = (10.290u,6.772u);
+ z109\0\13c2 = (6.398u,6.313u);
+ z109\0\13 = (6.615u,3.728u);
+ z109\0\14 = (7.067u,2.042u);
+ z109\0\15c1 = (6.977u,1.337u);
+ z109\0\15c2 = (5.516u,0.888u);
+ z109\0\15 = (4.906u,0.984u);
+ fill_or_unfill z109\0\0s
+ ..controls z109\0\0c1 and z109\0\0c2..z109\0\0
+ ..controls z109\0\1c1 and z109\0\1c2..z109\0\1
+ ..controls z109\0\2c1 and z109\0\2c2..z109\0\2
+ ..controls z109\0\3c1 and z109\0\3c2..z109\0\3
+ ..controls z109\0\4c1 and z109\0\4c2..z109\0\4
+ ..controls z109\0\5c1 and z109\0\5c2..z109\0\5
+ ..controls z109\0\6c1 and z109\0\6c2..z109\0\6
+ ..controls z109\0\7c1 and z109\0\7c2..z109\0\7
+ ..controls z109\0\8c1 and z109\0\8c2..z109\0\8
+ ..controls z109\0\9c1 and z109\0\9c2..z109\0\9
+ ..controls z109\0\10c1 and z109\0\10c2..z109\0\10
+ ..controls z109\0\11c1 and z109\0\11c2..z109\0\11
+ ..controls z109\0\12c1 and z109\0\12c2..z109\0\12
+ ..controls z109\0\13c1 and z109\0\13c2..z109\0\13
+ --z109\0\14
+ ..controls z109\0\15c1 and z109\0\15c2..z109\0\15
+ --cycle;
+numeric acc_tilt, stemu, stemd, stemp, xref_point, yref_point;
+ acc_tilt:=55; stemu:=1.4u; stemd:=.3u; stemp:=03u;
+ z109\1\0-z109\1\1=stemu*dir(acc_tilt+180);
+ xref_point=x109\0\3++0.65u;yref_point=h+stemu;
+ x109\1\0=xref_point; y109\1\0=yref_point;
+ z109\1\2-z109\1\3=stemd*dir(acc_tilt+180);
+ z109\1\2=(xref_point+2u,yref_point-stemu+2stemd);
+ z109\1\1c1=stemu*dir(angle(z109\1\0-z109\1\2))+z109\1\0;
+ z109\1\1c2=stemu*dir(angle(z109\1\1-z109\1\3))+z109\1\1;
+ fill_or_unfill z109\1\0--z109\1\2--z109\1\3--z109\1\1
+ ..controls z109\1\1c2 and z109\1\1c1..cycle;
+ proof_labels (
+ 109\0\0,
+ 109\0\1,
+ 109\0\2,
+ 109\0\3,
+ 109\0\4,
+ 109\0\5,
+ 109\0\6,
+ 109\0\7,
+ 109\0\8,
+ 109\0\9,
+ 109\0\10,
+ 109\0\11,
+ 109\0\12,
+ 109\0\13,
+ 109\0\14,
+ 109\0\15,
+ 109\0\16,
+ 109\1\0,
+ 109\1\1,
+ 109\1\2,
+ 109\1\3,
+);
+endchar;
+
+beginchar (110, 6.049u#, x_height#, 0.000u#);
+ "ni";
+ italcorr .95*slant*x_height#-.5u#;
+ z110\0\0s = (3.252u,5.085u);
+ z110\0\0c1 = (2.619u,5.203u);
+ z110\0\0c2 = (1.295u,5.762u);
+ z110\0\0 = (0.724u,5.725u);
+ z110\0\1c1 = (-0.436u,5.650u);
+ z110\0\1c2 = (0.617u,1.893u);
+ z110\0\1 = (0.724u,1.110u);
+ z110\0\2 = (0.000u,1.110u);
+ z110\0\3c1 = (0.109u,-0.209u);
+ z110\0\3c2 = (1.979u,-0.180u);
+ z110\0\3 = (2.195u,0.302u);
+ z110\0\4 = (1.686u,4.724u);
+ z110\0\5 = (2.048u,4.362u);
+ z110\0\6c1 = (4.460u,4.447u);
+ z110\0\6c2 = (3.141u,1.906u);
+ z110\0\6 = (3.976u,0.763u);
+ z110\0\7c1 = (4.293u,0.365u);
+ z110\0\7c2 = (6.408u,-0.319u);
+ z110\0\7 = (6.003u,0.763u);
+ z110\0\8c1 = (5.896u,1.014u);
+ z110\0\8c2 = (5.523u,1.171u);
+ z110\0\8 = (5.348u,1.598u);
+ z110\0\9c1 = (5.141u,2.103u);
+ z110\0\9c2 = (4.847u,4.461u);
+ z110\0\9 = (4.818u,5.085u);
+ z110\0\10c1 = (7.347u,5.118u);
+ z110\0\10c2 = (3.591u,7.093u);
+ fill_or_unfill z110\0\0s
+ ..controls z110\0\0c1 and z110\0\0c2..z110\0\0
+ ..controls z110\0\1c1 and z110\0\1c2..z110\0\1
+ --z110\0\2
+ ..controls z110\0\3c1 and z110\0\3c2..z110\0\3
+ --z110\0\4
+ --z110\0\5
+ ..controls z110\0\6c1 and z110\0\6c2..z110\0\6
+ ..controls z110\0\7c1 and z110\0\7c2..z110\0\7
+ ..controls z110\0\8c1 and z110\0\8c2..z110\0\8
+ ..controls z110\0\9c1 and z110\0\9c2..z110\0\9
+ ..controls z110\0\10c1 and z110\0\10c2..cycle;
+ proof_labels (
+ 110\0\0,
+ 110\0\1,
+ 110\0\2,
+ 110\0\3,
+ 110\0\4,
+ 110\0\5,
+ 110\0\6,
+ 110\0\7,
+ 110\0\8,
+ 110\0\9,
+ 110\0\10,
+);
+endchar;
+
+beginchar (63, 6.049u#, x_height#, 0.000u#);
+ "ni grave";
+ italcorr .95*slant*x_height#-.5u#;
+ z110\0\0s = (3.252u,5.085u);
+ z110\0\0c1 = (2.619u,5.203u);
+ z110\0\0c2 = (1.295u,5.762u);
+ z110\0\0 = (0.724u,5.725u);
+ z110\0\1c1 = (-0.436u,5.650u);
+ z110\0\1c2 = (0.617u,1.893u);
+ z110\0\1 = (0.724u,1.110u);
+ z110\0\2 = (0.000u,1.110u);
+ z110\0\3c1 = (0.109u,-0.209u);
+ z110\0\3c2 = (1.979u,-0.180u);
+ z110\0\3 = (2.195u,0.302u);
+ z110\0\4 = (1.686u,4.724u);
+ z110\0\5 = (2.048u,4.362u);
+ z110\0\6c1 = (4.460u,4.447u);
+ z110\0\6c2 = (3.141u,1.906u);
+ z110\0\6 = (3.976u,0.763u);
+ z110\0\7c1 = (4.293u,0.365u);
+ z110\0\7c2 = (6.408u,-0.319u);
+ z110\0\7 = (6.003u,0.763u);
+ z110\0\8c1 = (5.896u,1.014u);
+ z110\0\8c2 = (5.523u,1.171u);
+ z110\0\8 = (5.348u,1.598u);
+ z110\0\9c1 = (5.141u,2.103u);
+ z110\0\9c2 = (4.847u,4.461u);
+ z110\0\9 = (4.818u,5.085u);
+ z110\0\10c1 = (7.347u,5.118u);
+ z110\0\10c2 = (3.591u,7.093u);
+ fill_or_unfill z110\0\0s
+ ..controls z110\0\0c1 and z110\0\0c2..z110\0\0
+ ..controls z110\0\1c1 and z110\0\1c2..z110\0\1
+ --z110\0\2
+ ..controls z110\0\3c1 and z110\0\3c2..z110\0\3
+ --z110\0\4
+ ...z110\0\5
+ ..controls z110\0\6c1 and z110\0\6c2..z110\0\6
+ ..controls z110\0\7c1 and z110\0\7c2..z110\0\7
+ ..controls z110\0\8c1 and z110\0\8c2..z110\0\8
+ ..controls z110\0\9c1 and z110\0\9c2..z110\0\9
+ ..controls z110\0\10c1 and z110\0\10c2..cycle;
+ numeric acc_tilt,stemu,stemd,stemp;
+ numeric acc_tilt, stemu, stemd, stemp, xref_point, yref_point;
+ acc_tilt:=55; stemu:=1.4u; stemd:=.3u; stemp:=03u;
+ z110\1\0-z110\1\1=stemu*dir(acc_tilt+180);
+ xref_point=x110\0\2+.65u;yref_point=h+stemu;
+ x110\1\0=xref_point; y110\1\0=yref_point;
+ z110\1\2-z110\1\3=stemd*dir(acc_tilt+180);
+ z110\1\2=(xref_point+2u,yref_point-stemu+2stemd);
+ z110\1\1c1=stemu*dir(angle(z110\1\0-z110\1\2))+z110\1\0;
+ z110\1\1c2=stemu*dir(angle(z110\1\1-z110\1\3))+z110\1\1;
+ fill_or_unfill z110\1\0--z110\1\2--z110\1\3--z110\1\1
+ ..controls z110\1\1c2 and z110\1\1c1..cycle;
+ proof_labels (
+ 110\0\0,
+ 110\0\1,
+ 110\0\2,
+ 110\0\3,
+ 110\0\4,
+ 110\0\5,
+ 110\0\6,
+ 110\0\7,
+ 110\0\8,
+ 110\0\9,
+ 110\0\10,
+ 110\1\0,
+ 110\1\1,
+ 110\1\2,
+ 110\1\3,
+);
+endchar;
+
+beginchar (111, 5.279u#, x_height#, 0.000u#);
+ "omicron";
+ italcorr .75*slant*x_height#-.5u#;
+ z111\0\0s = (2.067u,5.256u);
+ z111\0\0c1 = (-0.891u,4.788u);
+ z111\0\0c2 = (-0.849u,-0.542u);
+ z111\0\0 = (3.305u,0.044u);
+ z111\0\1c1 = (6.010u,0.426u);
+ z111\0\1c2 = (6.243u,5.792u);
+ z111\1\0s = (1.986u,4.768u);
+ z111\1\0c1 = (4.674u,5.348u);
+ z111\1\0c2 = (4.559u,1.137u);
+ z111\1\0 = (3.183u,0.592u);
+ z111\1\1c1 = (1.220u,-0.184u);
+ z111\1\1c2 = (0.197u,3.733u);
+ fill_or_unfill z111\0\0s
+ ..controls z111\0\0c1 and z111\0\0c2..z111\0\0
+ ..controls z111\0\1c1 and z111\0\1c2..cycle;
+ fill_or_unfill z111\1\0s
+ ..controls z111\1\0c1 and z111\1\0c2..z111\1\0
+ ..controls z111\1\1c1 and z111\1\1c2..cycle;
+ proof_labels (
+ 111\0\0,
+ 111\0\1,
+ 111\1\0,
+ 111\1\1,
+);
+endchar;
+
+beginchar (112, 6.388u#, x_height#, 0.000u#);
+ "pi";
+ italcorr .95*slant*x_height#-.5u#;
+ z112\0\0s = (0.607u,0.361u);
+ z112\0\0 = (2.293u,0.000u);
+ z112\0\1 = (1.811u,5.059u);
+ z112\0\2 = (3.256u,5.059u);
+ z112\0\3 = (3.618u,4.697u);
+ z112\0\4c1 = (3.655u,3.884u);
+ z112\0\4c2 = (3.900u,1.115u);
+ z112\0\4 = (4.258u,0.499u);
+ z112\0\5c1 = (4.482u,0.114u);
+ z112\0\5c2 = (5.827u,-0.162u);
+ z112\0\5 = (6.179u,0.119u);
+ z112\0\6c1 = (6.362u,0.266u);
+ z112\0\6c2 = (6.363u,0.512u);
+ z112\0\6 = (6.388u,0.722u);
+ z112\0\7 = (5.628u,1.244u);
+ z112\0\8 = (5.081u,4.854u);
+ z112\0\9 = (5.786u,5.420u);
+ z112\0\10 = (5.407u,5.915u);
+ z112\0\11 = (0.968u,5.781u);
+ z112\0\12 = (0.000u,5.511u);
+ z112\0\13 = (0.601u,4.211u);
+ z112\0\14 = (0.890u,1.445u);
+ fill_or_unfill z112\0\0s
+ --z112\0\0
+ --z112\0\1
+ --z112\0\2
+ --z112\0\3
+ ..controls z112\0\4c1 and z112\0\4c2..z112\0\4
+ ..controls z112\0\5c1 and z112\0\5c2..z112\0\5
+ ..controls z112\0\6c1 and z112\0\6c2..z112\0\6
+ --z112\0\7
+ --z112\0\8
+ --z112\0\9
+ --z112\0\10
+ --z112\0\11
+ --z112\0\12
+ --z112\0\13
+ --z112\0\14
+ --cycle;
+ proof_labels (
+ 112\0\0,
+ 112\0\1,
+ 112\0\2,
+ 112\0\3,
+ 112\0\4,
+ 112\0\5,
+ 112\0\6,
+ 112\0\7,
+ 112\0\8,
+ 112\0\9,
+ 112\0\10,
+ 112\0\11,
+ 112\0\12,
+ 112\0\13,
+ 112\0\14,
+ 112\0\15,
+);
+endchar;
+
+beginchar (113, 5.035u#, 7.971u#, 0.000u#);
+ "scima";
+ italcorr 5.2*slant*x_height#-.5u#;
+% percorso esterno
+ z113\0\0s = (2.383u,-0.138u);
+ z113\0\0c1 = (3.043u,0.175u);
+ z113\0\0c2 = (3.671u,0.126u);
+ z113\0\0 = (4.262u,0.661u);
+ z113\0\1c1 = (5.981u,2.221u);
+ z113\0\1c2 = (4.086u,5.810u);
+ z113\0\1 = (1.699u,4.698u);
+ z113\0\2 = (1.57u,5u); %(1.567u,4.952u);
+ z113\0\3c1 = (1.45u,5.5u); %(1.919u,5.185u);
+ z113\0\3c2 = (2.00u,6.37u); %(2.158u,5.365u);
+ z113\0\3 = (2.58u,6.48u); %(2.579u,5.477u);
+ z113\0\4c1 = (9.04u,7.71u); %(9.037u,6.707u);
+ z113\0\4c2 = (10.09u,8.42u); %(10.092u,7.421u);
+ z113\0\4 = (9.99u,9.2u); %(9.990u,8.203u);
+ z113\0\5c1 = (6.95u,8.32u); %(7.949u,7.319u);
+ z113\0\5c2 = (4.15u,7.9u); %(5.148u,6.931u);
+ z113\0\5 = (3.6u,7.9u); %(4.566u,6.815u);
+ z113\0\6c1 = (2.42u,7.6u); %(3.416u,6.588u);
+ z113\0\6c2 = (1.32u,7.74u); %(2.312u,6.743u);
+ z113\0\6 = (0.52u,6.33u); %(1.321u,5.939u);
+ z113\0\7c1 = (-0.087u,4.795u);
+ z113\0\7c2 = (-0.237u,2.080u);
+ z113\0\7 = (0.944u,0.731u);
+ z113\0\8c1 = (1.409u,0.199u);
+ z113\0\8c2 = (1.805u,0.162u);
+% buco dell'anello
+ z113\1\0s = (1.936u,4.371u);
+ z113\1\0c1 = (3.721u,4.326u);
+ z113\1\0c2 = (4.545u,0.768u);
+ z113\1\0 = (3.011u,0.516u);
+ z113\1\1c1 = (1.258u,0.228u);
+ z113\1\1c2 = (0.408u,3.777u);
+ fill_or_unfill z113\0\0s
+ ..controls z113\0\0c1 and z113\0\0c2..z113\0\0
+ ..controls z113\0\1c1 and z113\0\1c2..z113\0\1
+ --z113\0\2
+ ..controls z113\0\3c1 and z113\0\3c2..z113\0\3
+ ..controls z113\0\4c1 and z113\0\4c2..z113\0\4
+ ..controls z113\0\5c1 and z113\0\5c2..z113\0\5
+ ..controls z113\0\6c1 and z113\0\6c2..z113\0\6
+ ..controls z113\0\7c1 and z113\0\7c2..z113\0\7
+ ..controls z113\0\8c1 and z113\0\8c2..cycle;
+ fill_or_unfill z113\1\0s
+ ..controls z113\1\0c1 and z113\1\0c2..z113\1\0
+ ..controls z113\1\1c1 and z113\1\1c2..cycle;
+ proof_labels (
+ 113\0\0,
+ 113\0\1,
+ 113\0\2,
+ 113\0\3,
+ 113\0\4,
+ 113\0\5,
+ 113\0\6,
+ 113\0\7,
+ 113\0\8,
+ 113\1\0,
+ 113\1\1,
+);
+endchar;
+
+beginchar (114, 5.090u#, x_height#, descender_depth#);
+ "ro";
+ italcorr .9*slant*x_height#-.5u#;
+ z114\0\0s = (1.838u,-2.897u);
+ z114\0\0c1 = (1.954u,-2.218u);
+ z114\0\0c2 = (1.647u,-0.784u);
+ z114\0\0 = (1.980u,-0.285u);
+ z114\0\1c1 = (2.454u,0.426u);
+ z114\0\1c2 = (5.135u,-0.964u);
+ z114\0\1 = (5.090u,2.884u);
+ z114\0\2c1 = (5.074u,4.222u);
+ z114\0\2c2 = (3.834u,5.462u);
+ z114\0\2 = (2.440u,5.396u);
+ z114\0\3c1 = (2.046u,5.377u);
+ z114\0\3c2 = (1.735u,5.144u);
+ z114\0\3 = (1.356u,5.059u);
+ z114\0\4c1 = (1.004u,5.039u);
+ z114\0\4c2 = (0.508u,5.238u);
+ z114\0\4 = (0.208u,5.059u);
+ z114\0\5c1 = (-0.031u,4.863u);
+ z114\0\5c2 = (0.005u,4.583u);
+ z114\0\5 = (0.017u,4.329u);
+ z114\0\6 = (0.484u,-0.368u);
+ z114\0\7c1 = (0.516u,-0.673u);
+ z114\0\7c2 = (0.583u,-1.189u);
+ z114\0\7 = (0.484u,-1.457u);
+ z114\0\8c1 = (0.314u,-1.748u);
+ z114\0\8c2 = (-0.166u,-1.987u);
+ z114\0\8 = (0.059u,-2.356u);
+ z114\0\9c1 = (0.370u,-2.864u);
+ z114\0\9c2 = (1.322u,-2.897u);
+ z114\1\0s = (2.201u,4.614u);
+ z114\1\0c1 = (3.898u,4.803u);
+ z114\1\0c2 = (4.389u,1.279u);
+ z114\1\0 = (2.801u,0.803u);
+ z114\1\1c1 = (1.354u,0.368u);
+ z114\1\1c2 = (0.906u,3.921u);
+ fill_or_unfill z114\0\0s
+ ..controls z114\0\0c1 and z114\0\0c2..z114\0\0
+ ..controls z114\0\1c1 and z114\0\1c2..z114\0\1
+ ..controls z114\0\2c1 and z114\0\2c2..z114\0\2
+ ..controls z114\0\3c1 and z114\0\3c2..z114\0\3
+ ..controls z114\0\4c1 and z114\0\4c2..z114\0\4
+ ..controls z114\0\5c1 and z114\0\5c2..z114\0\5
+ --z114\0\6
+ ..controls z114\0\7c1 and z114\0\7c2..z114\0\7
+ ..controls z114\0\8c1 and z114\0\8c2..z114\0\8
+ ..controls z114\0\9c1 and z114\0\9c2..cycle;
+ fill_or_unfill z114\1\0s
+ ..controls z114\1\0c1 and z114\1\0c2..z114\1\0
+ ..controls z114\1\1c1 and z114\1\1c2..cycle;
+ proof_labels (
+ 114\0\0,
+ 114\0\1,
+ 114\0\2,
+ 114\0\3,
+ 114\0\4,
+ 114\0\5,
+ 114\0\6,
+ 114\0\7,
+ 114\0\8,
+ 114\0\9,
+ 114\1\0,
+ 114\1\1,
+);
+endchar;
+
+beginchar (116, 8.683u#, x_height#, 0.000u#);
+ "dau";
+ italcorr 1.15*slant*x_height#-.5u#;
+% sposto in basso in modo da portare la parte alta della sbarra esattamante all'altezza di x-height
+ numeric Dy; Dy:=-0.294u; % questo valore e' x_height - y116\0\9
+ z116\0\0s = (1.096u,3.847u+Dy);
+ z116\0\0c1 = (1.158u,4.091u+Dy);
+ z116\0\0c2 = (1.174u,4.578u+Dy);
+ z116\0\0 = (1.309u,4.759u+Dy);
+ z116\0\1c1 = (1.617u,5.169u+Dy);
+ z116\0\1c2 = (3.446u,4.972u+Dy);
+ z116\0\1 = (3.778u,4.620u+Dy);
+ z116\0\2c1 = (4.038u,4.344u+Dy);
+ z116\0\2c2 = (3.992u,3.724u+Dy);
+ z116\0\2 = (3.987u,3.365u+Dy);
+ z116\0\3c1 = (3.970u,2.083u+Dy);
+ z116\0\3c2 = (2.862u,1.876u+Dy);
+ z116\0\3 = (3.182u,0.956u+Dy);
+ z116\0\4c1 = (3.713u,-0.572u+Dy);
+ z116\0\4c2 = (5.729u,-0.142u+Dy);
+ z116\0\4 = (5.912u,1.317u+Dy);
+ z116\0\5c1 = (5.978u,1.848u+Dy);
+ z116\0\5c2 = (5.392u,2.353u+Dy);
+ z116\0\5 = (5.237u,2.883u+Dy);
+ z116\0\6c1 = (5.066u,3.471u+Dy);
+ z116\0\6c2 = (5.000u,4.200u+Dy);
+ z116\0\6 = (4.951u,4.810u+Dy);
+ z116\0\7 = (6.638u,4.906u+Dy);
+ z116\0\8c1 = (7.001u,4.931u+Dy);
+ z116\0\8c2 = (8.497u,5.042u+Dy);
+ z116\0\8 = (8.637u,5.342u+Dy);
+ z116\0\9c1 = (8.909u,5.926u+Dy);
+ z116\0\9c2 = (7.891u,5.894u+Dy);
+ z116\0\9 = (7.601u,5.894u+Dy);
+ z116\0\10 = (0.976u,5.894u+Dy);
+ z116\0\11c1 = (-0.741u,5.865u+Dy);
+ z116\0\11c2 = (0.138u,4.348u+Dy);
+ fill_or_unfill z116\0\0s
+ ..controls z116\0\0c1 and z116\0\0c2..z116\0\0
+ ..controls z116\0\1c1 and z116\0\1c2..z116\0\1
+ ..controls z116\0\2c1 and z116\0\2c2..z116\0\2
+ ..controls z116\0\3c1 and z116\0\3c2..z116\0\3
+ ..controls z116\0\4c1 and z116\0\4c2..z116\0\4
+ ..controls z116\0\5c1 and z116\0\5c2..z116\0\5
+ ..controls z116\0\6c1 and z116\0\6c2..z116\0\6
+ --z116\0\7
+ ..controls z116\0\8c1 and z116\0\8c2..z116\0\8
+ ..controls z116\0\9c1 and z116\0\9c2..z116\0\9
+ --z116\0\10
+ ..controls z116\0\11c1 and z116\0\11c2..cycle;
+ proof_labels (
+ 116\0\0,
+ 116\0\1,
+ 116\0\2,
+ 116\0\3,
+ 116\0\4,
+ 116\0\5,
+ 116\0\6,
+ 116\0\7,
+ 116\0\8,
+ 116\0\9,
+ 116\0\10,
+ 116\0\11,
+);
+endchar;
+
+beginchar (117, 6.723u#, x_height#, 0.000u#);
+ "ue";
+ italcorr .95*slant*x_height#-.5u#;
+ z117\0\0s = (0.942u,5.776u);
+ z117\0\0c1 = (0.522u,5.439u);
+ z117\0\0c2 = (-0.283u,5.009u);
+ z117\0\0 = (0.101u,4.348u);
+ z117\0\1c1 = (0.884u,3.002u);
+ z117\0\1c2 = (1.774u,5.425u);
+ z117\0\1 = (2.807u,4.283u);
+ z117\0\2c1 = (3.388u,3.641u);
+ z117\0\2c2 = (1.264u,2.288u);
+ z117\0\2 = (3.056u,0.528u);
+ z117\0\3c1 = (3.436u,0.154u);
+ z117\0\3c2 = (3.763u,-0.045u);
+ z117\0\3 = (4.313u,0.008u);
+ z117\0\4c1 = (6.383u,0.206u);
+ z117\0\4c2 = (4.367u,3.380u);
+ z117\0\4 = (5.412u,3.958u);
+ z117\0\5c1 = (5.753u,4.132u);
+ z117\0\5c2 = (6.336u,3.987u);
+ z117\0\5 = (6.723u,3.958u);
+ z117\0\6c1 = (6.631u,4.525u);
+ z117\0\6c2 = (6.474u,4.889u);
+ z117\0\6 = (5.998u,5.233u);
+ z117\0\7c1 = (4.911u,6.019u);
+ z117\0\7c2 = (4.410u,4.772u);
+ z117\0\7 = (3.712u,4.764u);
+ fill_or_unfill z117\0\0s
+ ..controls z117\0\0c1 and z117\0\0c2..z117\0\0
+ ..controls z117\0\1c1 and z117\0\1c2..z117\0\1
+ ..controls z117\0\2c1 and z117\0\2c2..z117\0\2
+ ..controls z117\0\3c1 and z117\0\3c2..z117\0\3
+ ..controls z117\0\4c1 and z117\0\4c2..z117\0\4
+ ..controls z117\0\5c1 and z117\0\5c2..z117\0\5
+ ..controls z117\0\6c1 and z117\0\6c2..z117\0\6
+ ..controls z117\0\7c1 and z117\0\7c2..z117\0\7
+ --cycle;
+ proof_labels (
+ 117\0\0,
+ 117\0\1,
+ 117\0\2,
+ 117\0\3,
+ 117\0\4,
+ 117\0\5,
+ 117\0\6,
+ 117\0\7,
+ 117\0\8,
+);
+endchar;
+
+beginchar (118, 6.723u#, x_height#, 0.000u#);
+ "ue diaeresis";
+ italcorr 1.1*slant*x_height#-.5u#;
+ z118\0\0s = (0.942u,5.776u);
+ z118\0\0c1 = (0.522u,5.439u);
+ z118\0\0c2 = (-0.283u,5.009u);
+ z118\0\0 = (0.101u,4.348u);
+ z118\0\1c1 = (0.884u,3.002u);
+ z118\0\1c2 = (1.774u,5.425u);
+ z118\0\1 = (2.807u,4.283u);
+ z118\0\2c1 = (3.388u,3.641u);
+ z118\0\2c2 = (1.264u,2.288u);
+ z118\0\2 = (3.056u,0.528u);
+ z118\0\3c1 = (3.436u,0.154u);
+ z118\0\3c2 = (3.763u,-0.045u);
+ z118\0\3 = (4.313u,0.008u);
+ z118\0\4c1 = (6.383u,0.206u);
+ z118\0\4c2 = (4.367u,3.380u);
+ z118\0\4 = (5.412u,3.958u);
+ z118\0\5c1 = (5.753u,4.132u);
+ z118\0\5c2 = (6.336u,3.987u);
+ z118\0\5 = (6.723u,3.958u);
+ z118\0\6c1 = (6.631u,4.525u);
+ z118\0\6c2 = (6.474u,4.889u);
+ z118\0\6 = (5.998u,5.233u);
+ z118\0\7c1 = (4.911u,6.019u);
+ z118\0\7c2 = (4.410u,4.772u);
+ z118\0\7 = (3.712u,4.764u);
+ fill_or_unfill z118\0\0s
+ ..controls z118\0\0c1 and z118\0\0c2..z118\0\0
+ ..controls z118\0\1c1 and z118\0\1c2..z118\0\1
+ ..controls z118\0\2c1 and z118\0\2c2..z118\0\2
+ ..controls z118\0\3c1 and z118\0\3c2..z118\0\3
+ ..controls z118\0\4c1 and z118\0\4c2..z118\0\4
+ ..controls z118\0\5c1 and z118\0\5c2..z118\0\5
+ ..controls z118\0\6c1 and z118\0\6c2..z118\0\6
+ ..controls z118\0\7c1 and z118\0\7c2..z118\0\7
+ --cycle;
+ stemd:=1.5u;
+ pickup pencircle scaled stemd;
+ .5[x118\1\0,x118\2\0]=.6[x118\0\2,x118\0\3];
+ z118\2\0-z118\1\0=(3u,0); y118\1\0=h+1stemd;
+ draw z118\1\0; draw z118\2\0;
+%
+ proof_labels (
+ 118\0\0,
+ 118\0\1,
+ 118\0\2,
+ 118\0\3,
+ 118\0\4,
+ 118\0\5,
+ 118\0\6,
+ 118\0\7,
+ 118\0\8,
+);
+endchar;
+
+beginchar (119, 8.428u#, x_height#, 0.000u#);
+ "omega";
+ italcorr .95*slant*x_height#-.5u#;
+ z119\0\0s = (1.807u,5.178u);
+ z119\0\0c1 = (0.279u,5.326u);
+ z119\0\0c2 = (0.015u,4.310u);
+ z119\0\0 = (0.000u,3.009u);
+ z119\0\1c1 = (-0.019u,1.279u);
+ z119\0\1c2 = (0.963u,-0.562u);
+ z119\0\1 = (3.011u,0.207u);
+ z119\0\2c1 = (3.347u,0.333u);
+ z119\0\2c2 = (3.733u,0.766u);
+ z119\0\2 = (4.075u,0.736u);
+ z119\0\3c1 = (4.333u,0.714u);
+ z119\0\3c2 = (4.858u,0.201u);
+ z119\0\3 = (5.300u,0.085u);
+ z119\0\4c1 = (7.124u,-0.396u);
+ z119\0\4c2 = (8.362u,1.248u);
+ z119\0\4 = (8.427u,2.889u);
+ z119\0\5c1 = (8.462u,3.780u);
+ z119\0\5c2 = (8.052u,5.412u);
+ z119\0\5 = (6.867u,5.266u);
+ z119\0\6c1 = (6.624u,5.236u);
+ z119\0\6c2 = (6.412u,5.125u);
+ z119\0\6 = (6.300u,4.909u);
+ z119\0\7c1 = (6.125u,4.638u);
+ z119\0\7c2 = (6.177u,4.360u);
+ z119\0\7 = (6.300u,4.094u);
+ z119\0\8c1 = (6.740u,3.279u);
+ z119\0\8c2 = (8.203u,2.123u);
+ z119\0\8 = (6.854u,1.202u);
+ z119\0\9c1 = (6.544u,1.023u);
+ z119\0\9c2 = (6.125u,1.025u);
+ z119\0\9 = (5.792u,1.202u);
+ z119\0\10c1 = (3.931u,2.011u);
+ z119\0\10c2 = (5.665u,4.731u);
+ z119\0\10 = (4.194u,5.219u);
+ z119\0\11c1 = (3.699u,5.383u);
+ z119\0\11c2 = (3.412u,4.847u);
+ z119\0\11 = (3.316u,4.455u);
+ z119\0\12c1 = (3.106u,3.596u);
+ z119\0\12c2 = (3.648u,2.109u);
+ z119\0\12 = (3.247u,1.464u);
+ z119\0\13c1 = (2.495u,0.256u);
+ z119\0\13c2 = (0.897u,0.826u);
+ z119\0\13 = (0.968u,2.407u);
+ z119\0\14c1 = (1.017u,3.481u);
+ z119\0\14c2 = (1.770u,3.720u);
+ fill_or_unfill z119\0\0s
+ ..controls z119\0\0c1 and z119\0\0c2..z119\0\0
+ ..controls z119\0\1c1 and z119\0\1c2..z119\0\1
+ ..controls z119\0\2c1 and z119\0\2c2..z119\0\2
+ ..controls z119\0\3c1 and z119\0\3c2..z119\0\3
+ ..controls z119\0\4c1 and z119\0\4c2..z119\0\4
+ ..controls z119\0\5c1 and z119\0\5c2..z119\0\5
+ ..controls z119\0\6c1 and z119\0\6c2..z119\0\6
+ ..controls z119\0\7c1 and z119\0\7c2..z119\0\7
+ ..controls z119\0\8c1 and z119\0\8c2..z119\0\8
+ ..controls z119\0\9c1 and z119\0\9c2..z119\0\9
+ ..controls z119\0\10c1 and z119\0\10c2..z119\0\10
+ ..controls z119\0\11c1 and z119\0\11c2..z119\0\11
+ ..controls z119\0\12c1 and z119\0\12c2..z119\0\12
+ ..controls z119\0\13c1 and z119\0\13c2..z119\0\13
+ ..controls z119\0\14c1 and z119\0\14c2..cycle;
+ proof_labels (
+ 119\0\0,
+ 119\0\1,
+ 119\0\2,
+ 119\0\3,
+ 119\0\4,
+ 119\0\5,
+ 119\0\6,
+ 119\0\7,
+ 119\0\8,
+ 119\0\9,
+ 119\0\10,
+ 119\0\11,
+ 119\0\12,
+ 119\0\13,
+ 119\0\14,
+);
+endchar;
+
+beginchar (120, 7.417u#, x_height#, descender_depth#);
+ "chi";
+ italcorr 1.15*slant*x_height#-.5u#;
+% sposto tutto in basso per avere il massimo all'altezza di x_height
+numeric Dy; Dy:=-0.310u; % questo valore e' ottenuto sperimentalmente
+ z120\0\0s = (7.120u,-0.300u+Dy);% (7.120u,1.700u);
+ z120\0\0c1 = (5.800u,-1.549u+Dy);% (5.800u,1.551u);
+ z120\0\0c2 = (2.661u,5.437u+Dy);
+ z120\0\0 = (2.263u,5.835u+Dy);
+ z120\0\1c1 = (1.521u,5.966u+Dy);
+ z120\0\1c2 = (0.419u,6.085u+Dy);
+ z120\0\1 = (0.419u,5.138u+Dy);
+ z120\0\2c1 = (0.444u,4.042u+Dy);
+ z120\0\2c2 = (1.615u,4.989u+Dy);
+ z120\0\2 = (4.654u,-1.122u+Dy);% (4.654u,0.878u);
+ z120\0\3c1 = (6.662u,-2.456u+Dy);%(6.662u,-1.456u);
+ z120\0\3c2 = (7.957u,-0.192u+Dy);% (7.957u,1.808u);
+ z120\1\0s = (6.248u,4.341u+Dy);
+ z120\1\0c1 = (7.394u,3.668u+Dy);
+ z120\1\0c2 = (7.743u,5.910u+Dy);
+ z120\1\0 = (7.095u,5.885u+Dy);
+ z120\1\1c1 = (6.821u,5.935u+Dy);
+ z120\1\1c2 = (6.024u,6.035u+Dy);
+ z120\1\1 = (5.625u,5.536u+Dy);
+ z120\1\2c1 = (5.027u,5.063u+Dy);
+ z120\1\2c2 = (2.337u,0.873u+Dy);% (2.337u,2.373u);
+ z120\1\2 = (1.191u,0.375u+Dy);% (1.191u,1.875u);
+ z120\1\3c1 = (0.345u,1.047u+Dy);% (0.345u,2.547u);
+ z120\1\3c2 = (-0.328u,-0.348u+Dy);% (-0.328u,1.152u);
+ z120\1\3 = (0.170u,-1.269u+Dy);% (0.170u,0.231u);
+ z120\1\4c1 = (0.494u,-1.618u+Dy);% (0.494u,-0.118u);
+ z120\1\4c2 = (1.291u,-1.618u+Dy);% (1.291u,-0.118u);
+ z120\1\4 = (1.889u,-0.945u+Dy);% (1.889u,0.555u);
+ z120\1\5c1 = (2.854u,-0.317u+Dy);% (2.854u,1.183u);
+ z120\1\5c2 = (4.978u,3.867u+Dy);
+ fill_or_unfill z120\0\0s
+ ..controls z120\0\0c1 and z120\0\0c2..z120\0\0
+ ..controls z120\0\1c1 and z120\0\1c2..z120\0\1
+ ..controls z120\0\2c1 and z120\0\2c2..z120\0\2
+ ..controls z120\0\3c1 and z120\0\3c2..cycle;
+ fill_or_unfill z120\1\0s
+ ..controls z120\1\0c1 and z120\1\0c2..z120\1\0
+ ..controls z120\1\1c1 and z120\1\1c2..z120\1\1
+ ..controls z120\1\2c1 and z120\1\2c2..z120\1\2
+ ..controls z120\1\3c1 and z120\1\3c2..z120\1\3
+ ..controls z120\1\4c1 and z120\1\4c2..z120\1\4
+ ..controls z120\1\5c1 and z120\1\5c2..cycle;
+ proof_labels (
+ 120\0\0,
+ 120\0\1,
+ 120\0\2,
+ 120\0\3,
+ 120\1\0,
+ 120\1\1,
+ 120\1\2,
+ 120\1\3,
+ 120\1\4,
+ 120\1\5,
+);
+endchar;
+
+beginchar (121, 9.058u#, x_height#, descender_depth#);
+ "schei";
+ italcorr 1.15*slant*x_height#-.5u#;
+ z121\0\0s = (1.807u,5.178u);
+ z121\0\0c1 = (0.279u,5.326u);
+ z121\0\0c2 = (0.015u,4.310u);
+ z121\0\0 = (0.000u,3.009u);
+ z121\0\1c1 = (-0.019u,1.279u);
+ z121\0\1c2 = (0.963u,-0.562u);
+ z121\0\1 = (3.011u,0.207u);
+ z121\0\2c1 = (3.347u,0.333u);
+ z121\0\2c2 = (3.733u,0.766u);
+ z121\0\2 = (4.075u,0.736u);
+ z121\0\3c1 = (4.333u,0.714u);
+ z121\0\3c2 = (4.858u,0.201u);
+ z121\0\3 = (5.300u,0.085u);
+ z121\0\4c1 = (5.870u,-0.197u);
+ z121\0\4c2 = (7.769u,0.253u);
+ z121\0\4 = (7.848u,1.154u);
+ z121\0\5 = (7.417u,1.585u);
+ z121\0\6c1 = (6.544u,1.023u);
+ z121\0\6c2 = (6.125u,1.025u);
+ z121\0\6 = (5.792u,1.202u);
+ z121\0\7c1 = (3.931u,2.011u);
+ z121\0\7c2 = (5.665u,4.731u);
+ z121\0\7 = (4.194u,5.219u);
+ z121\0\8c1 = (3.699u,5.383u);
+ z121\0\8c2 = (3.412u,4.847u);
+ z121\0\8 = (3.316u,4.455u);
+ z121\0\9c1 = (3.106u,3.596u);
+ z121\0\9c2 = (3.648u,2.109u);
+ z121\0\9 = (3.247u,1.464u);
+ z121\0\10c1 = (2.495u,0.256u);
+ z121\0\10c2 = (0.897u,0.826u);
+ z121\0\10 = (0.968u,2.407u);
+ z121\0\11c1 = (1.017u,3.481u);
+ z121\0\11c2 = (1.770u,3.720u);
+ z121\1\0s = (7.344u,5.258u);
+ z121\1\0 = (7.259u,0.980u);
+ z121\1\1c1 = (7.234u,-1.747u);
+ z121\1\1c2 = (5.049u,-0.468u);
+ z121\1\1 = (4.181u,-0.377u);
+ z121\1\2c1 = (2.837u,-0.235u);
+ z121\1\2c2 = (1.084u,-0.838u);
+ z121\1\2 = (1.086u,-2.540u);
+ z121\1\3c1 = (2.151u,-1.524u);
+ z121\1\3c2 = (3.316u,-1.383u);
+ z121\1\3 = (4.556u,-1.449u);
+ z121\1\4c1 = (5.622u,-1.506u);
+ z121\1\4c2 = (8.530u,-2.219u);
+ z121\1\4 = (8.492u,1.012u);
+ z121\1\5 = (8.563u,4.665u);
+ z121\1\6 = (9.058u,5.258u);
+ fill_or_unfill z121\0\0s
+ ..controls z121\0\0c1 and z121\0\0c2..z121\0\0
+ ..controls z121\0\1c1 and z121\0\1c2..z121\0\1
+ ..controls z121\0\2c1 and z121\0\2c2..z121\0\2
+ ..controls z121\0\3c1 and z121\0\3c2..z121\0\3
+ ..controls z121\0\4c1 and z121\0\4c2..z121\0\4
+ --z121\0\5
+ ..controls z121\0\6c1 and z121\0\6c2..z121\0\6
+ ..controls z121\0\7c1 and z121\0\7c2..z121\0\7
+ ..controls z121\0\8c1 and z121\0\8c2..z121\0\8
+ ..controls z121\0\9c1 and z121\0\9c2..z121\0\9
+ ..controls z121\0\10c1 and z121\0\10c2..z121\0\10
+ ..controls z121\0\11c1 and z121\0\11c2..cycle;
+ fill_or_unfill z121\1\0s
+ --z121\1\0
+ ..controls z121\1\1c1 and z121\1\1c2..z121\1\1
+ ..controls z121\1\2c1 and z121\1\2c2..z121\1\2
+ ..controls z121\1\3c1 and z121\1\3c2..z121\1\3
+ ..controls z121\1\4c1 and z121\1\4c2..z121\1\4
+ --z121\1\5
+ --z121\1\6
+ --cycle;
+ proof_labels (
+ 121\0\0,
+ 121\0\1,
+ 121\0\2,
+ 121\0\3,
+ 121\0\4,
+ 121\0\5,
+ 121\0\6,
+ 121\0\7,
+ 121\0\8,
+ 121\0\9,
+ 121\0\10,
+ 121\0\11,
+ 121\1\0,
+ 121\1\1,
+ 121\1\2,
+ 121\1\3,
+ 121\1\4,
+ 121\1\5,
+ 121\1\6,
+ 121\1\7,
+);
+endchar;
+
+beginchar (122, 5.344u#, 6.000u#, descender_depth#);
+ "zida";
+ italcorr 1.2*slant*x_height#-.5u#;
+ z122\0\0s = (4.020u,5.154u);
+ z122\0\0c1 = (2.817u,4.378u);
+ z122\0\0c2 = (0.238u,3.144u);
+ z122\0\0 = (0.200u,1.540u);
+ z122\0\1c1 = (0.190u,1.132u);
+ z122\0\1c2 = (0.417u,0.725u);
+ z122\0\1 = (0.527u,0.336u);
+ z122\0\2 = (2.574u,-0.348u);
+ z122\0\3c1 = (2.894u,-0.443u);
+ z122\0\3c2 = (3.293u,-0.430u);
+ z122\0\3 = (3.583u,-0.588u);
+ z122\0\4c1 = (4.814u,-1.260u);
+ z122\0\4c2 = (3.167u,-1.469u);
+ z122\0\4 = (2.695u,-1.471u);
+ z122\0\5c1 = (2.675u,-2.550u);
+ z122\0\5c2 = (4.154u,-2.324u);
+ z122\0\5 = (4.676u,-1.774u);
+ z122\0\6c1 = (6.789u,0.451u);
+ z122\0\6c2 = (2.375u,0.867u);
+ z122\0\6 = (1.129u,1.058u);
+ z122\0\7c1 = (1.765u,3.342u);
+ z122\0\7c2 = (5.033u,4.672u);
+ z122\0\7 = (5.337u,5.305u);
+ z122\0\8c1 = (5.713u,6.088u);
+ z122\0\8c2 = (4.413u,5.997u);
+ z122\0\8 = (4.020u,5.997u);
+ z122\0\9 = (0.433u,5.731u);
+ z122\0\10c1 = (-0.136u,5.520u);
+ z122\0\10c2 = (-0.023u,4.510u);
+ z122\0\10 = (0.557u,4.391u);
+ z122\0\11c1 = (0.935u,4.313u);
+ z122\0\11c2 = (1.161u,4.825u);
+ z122\0\11 = (1.503u,4.961u);
+ fill_or_unfill z122\0\0s
+ ..controls z122\0\0c1 and z122\0\0c2..z122\0\0
+ ..controls z122\0\1c1 and z122\0\1c2..z122\0\1
+ ..tension 3 ..z122\0\2%--z122\0\2
+ ...z122\0\3%..controls z122\0\3c1 and z122\0\3c2..z122\0\3
+ ..controls z122\0\4c1 and z122\0\4c2..z122\0\4
+ ..controls z122\0\5c1 and z122\0\5c2..z122\0\5
+ ..controls z122\0\6c1 and z122\0\6c2..z122\0\6
+ ..controls z122\0\7c1 and z122\0\7c2..z122\0\7
+ ..controls z122\0\8c1 and z122\0\8c2..z122\0\8
+ --z122\0\9
+ ..controls z122\0\10c1 and z122\0\10c2..z122\0\10
+ ..controls z122\0\11c1 and z122\0\11c2..z122\0\11
+ --cycle;
+ proof_labels (
+ 122\0\0,
+ 122\0\1,
+ 122\0\2,
+ 122\0\3,
+ 122\0\4,
+ 122\0\5,
+ 122\0\6,
+ 122\0\7,
+ 122\0\8,
+ 122\0\9,
+ 122\0\10,
+ 122\0\11,
+ 122\0\12,
+);
+endchar;
+
+beginchar (40, 7.163u#, ascender_height#, 0.000u#);
+ "Thida";
+ italcorr .8*slant*ascender_height#-.5u#;
+ z200\0\0s = (2.293u,8.220u);
+ z200\0\0c1 = (-1.042u,6.806u);
+ z200\0\0c2 = (-0.782u,0.112u);
+ z200\0\0 = (3.327u,0.010u);
+ z200\0\1c1 = (3.821u,-0.003u);
+ z200\0\1c2 = (4.291u,-0.031u);
+ z200\0\1 = (4.768u,0.137u);
+ z200\0\2c1 = (8.517u,1.462u);
+ z200\0\2c2 = (7.993u,9.591u);
+ z200\1\0s = (2.908u,7.897u);
+ z200\1\0c1 = (5.370u,8.433u);
+ z200\1\0c2 = (6.168u,5.268u);
+ z200\1\0 = (5.415u,4.631u);
+ z200\1\1c1 = (5.119u,4.379u);
+ z200\1\1c2 = (4.615u,4.403u);
+ z200\1\1 = (4.246u,4.393u);
+ z200\1\2c1 = (3.638u,4.377u);
+ z200\1\2c2 = (1.582u,4.329u);
+ z200\1\2 = (1.431u,5.023u);
+ z200\1\3c1 = (1.208u,6.053u);
+ z200\1\3c2 = (1.990u,7.468u);
+ z200\2\0s = (1.384u,3.562u);
+ z200\2\0c1 = (1.990u,3.843u);
+ z200\2\0c2 = (3.103u,3.881u);
+ z200\2\0 = (3.784u,3.855u);
+ z200\2\1c1 = (4.170u,3.840u);
+ z200\2\1c2 = (5.236u,3.797u);
+ z200\2\1 = (5.515u,3.531u);
+ z200\2\2c1 = (5.772u,3.244u);
+ z200\2\2c2 = (5.655u,2.853u);
+ z200\2\2 = (5.553u,2.515u);
+ z200\2\3c1 = (5.046u,0.393u);
+ z200\2\3c2 = (2.926u,-0.353u);
+ z200\2\3 = (1.793u,1.770u);
+ z200\2\4c1 = (1.492u,2.336u);
+ z200\2\4c2 = (1.453u,2.941u);
+ fill_or_unfill z200\0\0s
+ ..controls z200\0\0c1 and z200\0\0c2..z200\0\0
+ ..controls z200\0\1c1 and z200\0\1c2..z200\0\1
+ ..controls z200\0\2c1 and z200\0\2c2..cycle;
+ fill_or_unfill z200\1\0s
+ ..controls z200\1\0c1 and z200\1\0c2..z200\1\0
+ ..controls z200\1\1c1 and z200\1\1c2..z200\1\1
+ ..controls z200\1\2c1 and z200\1\2c2..z200\1\2
+ ..controls z200\1\3c1 and z200\1\3c2..cycle;
+ fill_or_unfill z200\2\0s
+ ..controls z200\2\0c1 and z200\2\0c2..z200\2\0
+ ..controls z200\2\1c1 and z200\2\1c2..z200\2\1
+ ..controls z200\2\2c1 and z200\2\2c2..z200\2\2
+ ..controls z200\2\3c1 and z200\2\3c2..z200\2\3
+ ..controls z200\2\4c1 and z200\2\4c2..cycle;
+ proof_labels (
+ 200\0\0,
+ 200\0\1,
+ 200\0\2,
+ 200\1\0,
+ 200\1\1,
+ 200\1\2,
+ 200\1\3,
+ 200\2\0,
+ 200\2\1,
+ 200\2\2,
+ 200\2\3,
+ 200\2\4,
+);
+endchar;
+
+beginchar (41, 7.340u#, 1.1x_height#, descender_depth#);
+ "exi";
+ pair zexishift; zexishift=(0,u);
+ z201\0\0s = (2.410u,2.701u) shifted zexishift;
+ z201\0\0 = (1.567u,1.978u) shifted zexishift;
+ z201\0\1c1 = (1.753u,1.244u) shifted zexishift;
+ z201\0\1c2 = (2.245u,0.975u) shifted zexishift;
+ z201\0\1 = (2.892u,0.653u) shifted zexishift;
+ z201\0\2c1 = (2.258u,-0.157u) shifted zexishift;
+ z201\0\2c2 = (1.512u,-0.298u) shifted zexishift;
+ z201\0\2 = (0.725u,-0.872u) shifted zexishift;
+ z201\0\3c1 = (-0.574u,-1.820u) shifted zexishift;
+ z201\0\3c2 = (-0.532u,-3.273u) shifted zexishift;
+ z201\0\3 = (1.205u,-3.569u) shifted zexishift;
+ z201\0\4c1 = (3.088u,-3.888u) shifted zexishift;
+ z201\0\4c2 = (4.161u,-2.641u) shifted zexishift;
+ z201\0\4 = (5.627u,-2.636u) shifted zexishift;
+ z201\0\5c1 = (6.123u,-2.634u) shifted zexishift;
+ z201\0\5c2 = (6.469u,-3.089u) shifted zexishift;
+ z201\0\5 = (6.746u,-3.442u) shifted zexishift;
+ z201\0\6 = (6.987u,-3.442u) shifted zexishift;
+ z201\0\7c1 = (7.574u,-2.173u) shifted zexishift;
+ z201\0\7c2 = (6.597u,-1.550u) shifted zexishift;
+ z201\0\7 = (5.426u,-1.426u) shifted zexishift;
+ z201\0\8c1 = (4.156u,-1.291u) shifted zexishift;
+ z201\0\8c2 = (2.826u,-2.700u) shifted zexishift;
+ z201\0\8 = (1.446u,-2.719u) shifted zexishift;
+ z201\0\9 = (0.724u,-2.719u) shifted zexishift;
+ z201\0\10c1 = (1.102u,-1.307u) shifted zexishift;
+ z201\0\10c2 = (3.829u,-0.708u) shifted zexishift;
+ z201\0\10 = (5.060u,-0.190u) shifted zexishift;
+ z201\0\11 = (5.060u,0.171u) shifted zexishift;
+ z201\0\12 = (3.253u,1.376u) shifted zexishift;
+ z201\0\13c1 = (3.826u,2.163u) shifted zexishift;
+ z201\0\13c2 = (6.182u,3.358u) shifted zexishift;
+ z201\0\13 = (6.279u,3.908u) shifted zexishift;
+ z201\0\14c1 = (6.394u,4.554u) shifted zexishift;
+ z201\0\14c2 = (5.137u,4.698u) shifted zexishift;
+ z201\0\14 = (4.698u,4.764u) shifted zexishift;
+ z201\0\15c1 = (3.888u,4.886u) shifted zexishift;
+ z201\0\15c2 = (1.797u,5.013u) shifted zexishift;
+ z201\0\15 = (1.099u,4.638u) shifted zexishift;
+ z201\0\16c1 = (-0.366u,3.850u) shifted zexishift;
+ z201\0\16c2 = (1.490u,2.754u) shifted zexishift;
+ z201\1\0s = (4.457u,4.146u) shifted zexishift;
+ z201\1\0c1 = (4.198u,3.117u) shifted zexishift;
+ z201\1\0c2 = (3.193u,3.334u) shifted zexishift;
+ z201\1\0 = (2.410u,3.664u) shifted zexishift;
+ z201\1\1c1 = (2.976u,4.327u) shifted zexishift;
+ z201\1\1c2 = (3.661u,4.146u) shifted zexishift;
+ fill_or_unfill z201\0\0s
+ --z201\0\0
+ ..controls z201\0\1c1 and z201\0\1c2..z201\0\1
+ ..controls z201\0\2c1 and z201\0\2c2..z201\0\2
+ ..controls z201\0\3c1 and z201\0\3c2..z201\0\3
+ ..controls z201\0\4c1 and z201\0\4c2..z201\0\4
+ ..controls z201\0\5c1 and z201\0\5c2..z201\0\5
+ --z201\0\6
+ ..controls z201\0\7c1 and z201\0\7c2..z201\0\7
+ ..controls z201\0\8c1 and z201\0\8c2..z201\0\8
+ --z201\0\9
+ ..controls z201\0\10c1 and z201\0\10c2..z201\0\10
+ --z201\0\11
+ --z201\0\12
+ ..controls z201\0\13c1 and z201\0\13c2..z201\0\13
+ ..controls z201\0\14c1 and z201\0\14c2..z201\0\14
+ ..controls z201\0\15c1 and z201\0\15c2..z201\0\15
+ ..controls z201\0\16c1 and z201\0\16c2..cycle;
+ fill_or_unfill z201\1\0s
+ ..controls z201\1\0c1 and z201\1\0c2..z201\1\0
+ ..controls z201\1\1c1 and z201\1\1c2..cycle;
+ proof_labels (
+ 201\0\0,
+ 201\0\1,
+ 201\0\2,
+ 201\0\3,
+ 201\0\4,
+ 201\0\5,
+ 201\0\6,
+ 201\0\7,
+ 201\0\8,
+ 201\0\9,
+ 201\0\10,
+ 201\0\11,
+ 201\0\12,
+ 201\0\13,
+ 201\0\14,
+ 201\0\15,
+ 201\0\16,
+ 201\1\0,
+ 201\1\1,
+);
+endchar;
+
+beginchar (42, 9.181u#, 1.2x_height#, descender_depth#);
+ "Exi";
+ pair zExishift; zExishift=(0,1.3u);
+ italcorr .85*slant*x_height#-.5u#;
+ z202\0\0s = (3.168u,4.332u) shifted zExishift;
+ z202\0\0 = (4.613u,4.706u) shifted zExishift;
+ z202\0\1c1 = (4.882u,4.743u) shifted zExishift;
+ z202\0\1c2 = (7.362u,4.895u) shifted zExishift;
+ z202\0\1 = (6.718u,4.158u) shifted zExishift;
+ z202\0\2c1 = (6.156u,3.515u) shifted zExishift;
+ z202\0\2c2 = (1.537u,2.511u) shifted zExishift;
+ z202\0\2 = (0.638u,1.078u) shifted zExishift;
+ z202\0\3 = (4.733u,0.357u) shifted zExishift;
+ z202\0\4c1 = (3.443u,-0.595u) shifted zExishift;
+ z202\0\4c2 = (1.615u,-0.586u) shifted zExishift;
+ z202\0\4 = (0.464u,-1.868u) shifted zExishift;
+ z202\0\5c1 = (-0.816u,-3.295u) shifted zExishift;
+ z202\0\5c2 = (0.801u,-4.368u) shifted zExishift;
+ z202\0\5 = (2.084u,-4.682u) shifted zExishift;
+ z202\0\6c1 = (3.928u,-5.133u) shifted zExishift;
+ z202\0\6c2 = (6.717u,-3.102u) shifted zExishift;
+ z202\0\6 = (7.486u,-3.506u) shifted zExishift;
+ z202\0\7c1 = (7.972u,-3.762u) shifted zExishift;
+ z202\0\7c2 = (7.768u,-4.345u) shifted zExishift;
+ z202\0\7 = (8.074u,-4.583u) shifted zExishift;
+ z202\0\8c1 = (8.363u,-4.807u) shifted zExishift;
+ z202\0\8c2 = (8.781u,-4.590u) shifted zExishift;
+ z202\0\8 = (8.951u,-4.324u) shifted zExishift;
+ z202\0\9c1 = (9.638u,-3.251u) shifted zExishift;
+ z202\0\9c2 = (8.652u,-2.819u) shifted zExishift;
+ z202\0\9 = (7.745u,-2.781u) shifted zExishift;
+ z202\0\10c1 = (7.253u,-2.760u) shifted zExishift;
+ z202\0\10c2 = (5.905u,-2.850u) shifted zExishift;
+ z202\0\10 = (5.456u,-2.987u) shifted zExishift;
+ z202\0\11c1 = (4.498u,-3.280u) shifted zExishift;
+ z202\0\11c2 = (3.460u,-3.913u) shifted zExishift;
+ z202\0\11 = (2.445u,-3.966u) shifted zExishift;
+ z202\0\12c1 = (1.797u,-3.999u) shifted zExishift;
+ z202\0\12c2 = (0.867u,-3.404u) shifted zExishift;
+ z202\0\12 = (1.433u,-2.711u) shifted zExishift;
+ z202\0\13c1 = (1.830u,-2.224u) shifted zExishift;
+ z202\0\13c2 = (2.935u,-2.029u) shifted zExishift;
+ z202\0\13 = (3.529u,-1.805u) shifted zExishift;
+ z202\0\14 = (5.577u,-1.002u) shifted zExishift;
+ z202\0\15c1 = (6.541u,-0.605u) shifted zExishift;
+ z202\0\15c2 = (7.460u,-0.273u) shifted zExishift;
+ z202\0\15 = (8.467u,-0.006u) shifted zExishift;
+ z202\0\16 = (8.467u,0.357u) shifted zExishift;
+ z202\0\17c1 = (7.461u,0.540u) shifted zExishift;
+ z202\0\17c2 = (4.392u,0.860u) shifted zExishift;
+ z202\0\17 = (3.770u,1.441u) shifted zExishift;
+ z202\0\18c1 = (4.511u,1.734u) shifted zExishift;
+ z202\0\18c2 = (5.251u,2.120u) shifted zExishift;
+ z202\0\18 = (5.938u,2.525u) shifted zExishift;
+ z202\0\19c1 = (6.488u,2.850u) shifted zExishift;
+ z202\0\19c2 = (8.359u,3.654u) shifted zExishift;
+ z202\0\19 = (8.631u,4.026u) shifted zExishift;
+ z202\0\20c1 = (9.206u,4.815u) shifted zExishift;
+ z202\0\20c2 = (7.571u,5.072u) shifted zExishift;
+ z202\0\20 = (7.142u,5.175u) shifted zExishift;
+ z202\0\21c1 = (6.306u,5.375u) shifted zExishift;
+ z202\0\21c2 = (1.204u,5.684u) shifted zExishift;
+ z202\0\21 = (0.813u,4.866u) shifted zExishift;
+ z202\0\22c1 = (0.634u,4.494u) shifted zExishift;
+ z202\0\22c2 = (2.824u,2.281u) shifted zExishift;
+ fill_or_unfill z202\0\0s
+ --z202\0\0
+ ..controls z202\0\1c1 and z202\0\1c2..z202\0\1
+ ..controls z202\0\2c1 and z202\0\2c2..z202\0\2
+ --z202\0\3
+ ..controls z202\0\4c1 and z202\0\4c2..z202\0\4
+ ..controls z202\0\5c1 and z202\0\5c2..z202\0\5
+ ..controls z202\0\6c1 and z202\0\6c2..z202\0\6
+ ..controls z202\0\7c1 and z202\0\7c2..z202\0\7
+ ..controls z202\0\8c1 and z202\0\8c2..z202\0\8
+ ..controls z202\0\9c1 and z202\0\9c2..z202\0\9
+ ..controls z202\0\10c1 and z202\0\10c2..z202\0\10
+ ..controls z202\0\11c1 and z202\0\11c2..z202\0\11
+ ..controls z202\0\12c1 and z202\0\12c2..z202\0\12
+ ..controls z202\0\13c1 and z202\0\13c2..z202\0\13
+ --z202\0\14
+ ..controls z202\0\15c1 and z202\0\15c2..z202\0\15
+ --z202\0\16
+ ..controls z202\0\17c1 and z202\0\17c2..z202\0\17
+ ..controls z202\0\18c1 and z202\0\18c2..z202\0\18
+ ..controls z202\0\19c1 and z202\0\19c2..z202\0\19
+ ..controls z202\0\20c1 and z202\0\20c2..z202\0\20
+ ..controls z202\0\21c1 and z202\0\21c2..z202\0\21
+ ..controls z202\0\22c1 and z202\0\22c2..cycle;
+ proof_labels (
+ 202\0\0,
+ 202\0\1,
+ 202\0\2,
+ 202\0\3,
+ 202\0\4,
+ 202\0\5,
+ 202\0\6,
+ 202\0\7,
+ 202\0\8,
+ 202\0\9,
+ 202\0\10,
+ 202\0\11,
+ 202\0\12,
+ 202\0\13,
+ 202\0\14,
+ 202\0\15,
+ 202\0\16,
+ 202\0\17,
+ 202\0\18,
+ 202\0\19,
+ 202\0\20,
+ 202\0\21,
+ 202\0\22,
+);
+endchar;
+
+
+beginchar (43, 6.720u#, 7.463u#, descender_depth#);
+ "phi";
+ italcorr .95*slant*x_height#-.5u#;
+ z203\0\0s = (2.248u,7.463u);
+ z203\0\0 = (2.679u,5.776u);
+ z203\0\1 = (2.679u,4.572u);
+ z203\0\2 = (2.809u,3.488u);
+ z203\0\3 = (2.729u,1.681u);
+ z203\0\4c1 = (1.944u,1.727u);
+ z203\0\4c2 = (0.615u,2.598u);
+ z203\0\4 = (1.092u,3.522u);
+ z203\0\5c1 = (1.246u,3.821u);
+ z203\0\5c2 = (1.617u,3.811u);
+ z203\0\5 = (1.870u,3.970u);
+ z203\0\6c1 = (2.318u,4.252u);
+ z203\0\6c2 = (2.506u,5.210u);
+ z203\0\6 = (1.870u,5.352u);
+ z203\0\7c1 = (0.476u,5.664u);
+ z203\0\7c2 = (-0.273u,3.857u);
+ z203\0\7 = (0.092u,2.765u);
+ z203\0\8c1 = (0.639u,1.131u);
+ z203\0\8c2 = (1.319u,1.551u);
+ z203\0\8 = (2.471u,0.837u);
+ z203\0\9c1 = (2.998u,0.512u);
+ z203\0\9c2 = (2.756u,0.162u);
+ z203\0\9 = (3.572u,-0.125u);
+ z203\0\10 = (2.850u,-0.849u);
+ z203\0\11c1 = (4.583u,-1.794u);
+ z203\0\11c2 = (6.337u,0.348u);
+ z203\0\11 = (4.174u,0.838u);
+ z203\0\12c1 = (4.848u,1.220u);
+ z203\0\12c2 = (5.617u,1.497u);
+ z203\0\12 = (6.136u,2.098u);
+ z203\0\13c1 = (7.644u,3.844u);
+ z203\0\13c2 = (5.998u,5.608u);
+ z203\0\13 = (4.053u,5.656u);
+ z203\0\14c1 = (4.473u,4.923u);
+ z203\0\14c2 = (5.507u,4.419u);
+ z203\0\14 = (5.399u,3.488u);
+ z203\0\15c1 = (5.377u,3.298u);
+ z203\0\15c2 = (5.285u,2.774u);
+ z203\0\15 = (5.205u,2.612u);
+ z203\0\16c1 = (4.985u,2.165u);
+ z203\0\16c2 = (4.189u,1.613u);
+ z203\0\16 = (3.922u,2.359u);
+ z203\0\17c1 = (3.821u,2.761u);
+ z203\0\17c2 = (3.815u,6.018u);
+ z203\0\17 = (3.922u,6.499u);
+ z203\0\18 = (4.174u,7.463u);
+ fill_or_unfill z203\0\0s
+ --z203\0\0
+ --z203\0\1
+ --z203\0\2
+ --z203\0\3
+ ..controls z203\0\4c1 and z203\0\4c2..z203\0\4
+ ..controls z203\0\5c1 and z203\0\5c2..z203\0\5
+ ..controls z203\0\6c1 and z203\0\6c2..z203\0\6
+ ..controls z203\0\7c1 and z203\0\7c2..z203\0\7
+ ..controls z203\0\8c1 and z203\0\8c2..z203\0\8
+ ..controls z203\0\9c1 and z203\0\9c2..z203\0\9
+ --z203\0\10
+ ..controls z203\0\11c1 and z203\0\11c2..z203\0\11
+ ..controls z203\0\12c1 and z203\0\12c2..z203\0\12
+ ..controls z203\0\13c1 and z203\0\13c2..z203\0\13
+ ..controls z203\0\14c1 and z203\0\14c2..z203\0\14
+ ..controls z203\0\15c1 and z203\0\15c2..z203\0\15
+ ..controls z203\0\16c1 and z203\0\16c2..z203\0\16
+ ..controls z203\0\17c1 and z203\0\17c2..z203\0\17
+ --z203\0\18
+ --cycle;
+ proof_labels (
+ 203\0\0,
+ 203\0\1,
+ 203\0\2,
+ 203\0\3,
+ 203\0\4,
+ 203\0\5,
+ 203\0\6,
+ 203\0\7,
+ 203\0\8,
+ 203\0\9,
+ 203\0\10,
+ 203\0\11,
+ 203\0\12,
+ 203\0\13,
+ 203\0\14,
+ 203\0\15,
+ 203\0\16,
+ 203\0\17,
+ 203\0\18,
+ 203\0\19,
+);
+endchar;
+
+beginchar (44, 9.516u#, ascender_height#, 0.000u#);
+ "Phi";
+ italcorr .6*slant*ascender_height#-.5u#;
+ z204\0\0s = (2.770u,8.793u);
+ z204\0\0c1 = (3.109u,7.823u);
+ z204\0\0c2 = (3.847u,8.812u);
+ z204\0\0 = (3.854u,6.986u);
+ z204\0\1c1 = (3.066u,6.981u);
+ z204\0\1c2 = (2.146u,6.881u);
+ z204\0\1 = (1.459u,6.453u);
+ z204\0\2c1 = (1.118u,6.241u);
+ z204\0\2c2 = (1.016u,5.959u);
+ z204\0\2 = (0.777u,5.666u);
+ z204\0\3c1 = (0.236u,5.003u);
+ z204\0\3c2 = (-0.626u,4.179u);
+ z204\0\3 = (0.843u,3.734u);
+ z204\0\4c1 = (1.062u,1.688u);
+ z204\0\4c2 = (2.755u,2.647u);
+ z204\0\4 = (3.596u,2.147u);
+ z204\0\5c1 = (4.536u,1.588u);
+ z204\0\5c2 = (3.465u,0.809u);
+ z204\0\5 = (2.891u,0.602u);
+ z204\0\6 = (2.887u,0.017u);
+ z204\0\7 = (6.270u,0.017u);
+ z204\0\8 = (6.270u,0.700u);
+ z204\0\9c1 = (5.585u,0.897u);
+ z204\0\9c2 = (5.423u,1.065u);
+ z204\0\9 = (5.386u,1.325u);
+ z204\0\10c1 = (5.261u,2.191u);
+ z204\0\10c2 = (7.328u,2.040u);
+ z204\0\10 = (7.884u,2.459u);
+ z204\0\11c1 = (8.638u,3.027u);
+ z204\0\11c2 = (7.873u,3.502u);
+ z204\0\11 = (9.516u,4.095u);
+ z204\0\12c1 = (9.339u,5.141u);
+ z204\0\12c2 = (9.038u,4.738u);
+ z204\0\12 = (8.483u,5.341u);
+ z204\0\13c1 = (8.123u,5.732u);
+ z204\0\13c2 = (8.211u,6.174u);
+ z204\0\13 = (7.696u,6.488u);
+ z204\0\14c1 = (7.167u,6.810u);
+ z204\0\14c2 = (4.156u,6.640u);
+ z204\0\14 = (5.694u,8.153u);
+ z204\0\15c1 = (5.977u,8.432u);
+ z204\0\15c2 = (6.244u,8.440u);
+ z204\0\15 = (6.504u,8.793u);
+ z204\1\0s = (3.466u,6.497u);
+ z204\1\0c1 = (3.950u,6.221u);
+ z204\1\0c2 = (4.149u,3.586u);
+ z204\1\0 = (3.903u,3.038u);
+ z204\1\1c1 = (3.798u,2.806u);
+ z204\1\1c2 = (3.612u,2.717u);
+ z204\1\1 = (3.370u,2.679u);
+ z204\1\2c1 = (1.099u,2.321u);
+ z204\1\2c2 = (0.998u,6.545u);
+ z204\2\0s = (7.347u,5.902u);
+ z204\2\0c1 = (7.440u,5.406u);
+ z204\2\0c2 = (7.681u,4.964u);
+ z204\2\0 = (7.703u,4.457u);
+ z204\2\1c1 = (7.766u,3.002u);
+ z204\2\1c2 = (5.328u,1.357u);
+ z204\2\1 = (5.300u,3.372u);
+ z204\2\2c1 = (5.272u,5.411u);
+ z204\2\2c2 = (4.696u,6.944u);
+ fill_or_unfill z204\0\0s
+ ..controls z204\0\0c1 and z204\0\0c2..z204\0\0
+ ..controls z204\0\1c1 and z204\0\1c2..z204\0\1
+ ..controls z204\0\2c1 and z204\0\2c2..z204\0\2
+ ..controls z204\0\3c1 and z204\0\3c2..z204\0\3
+ ..controls z204\0\4c1 and z204\0\4c2..z204\0\4
+ ..controls z204\0\5c1 and z204\0\5c2..z204\0\5
+ --z204\0\6
+ --z204\0\7
+ --z204\0\8
+ ..controls z204\0\9c1 and z204\0\9c2..z204\0\9
+ ..controls z204\0\10c1 and z204\0\10c2..z204\0\10
+ ..controls z204\0\11c1 and z204\0\11c2..z204\0\11
+ ..controls z204\0\12c1 and z204\0\12c2..z204\0\12
+ ..controls z204\0\13c1 and z204\0\13c2..z204\0\13
+ ..controls z204\0\14c1 and z204\0\14c2..z204\0\14
+ ..controls z204\0\15c1 and z204\0\15c2..z204\0\15
+ --cycle;
+ fill_or_unfill z204\1\0s
+ ..controls z204\1\0c1 and z204\1\0c2..z204\1\0
+ ..controls z204\1\1c1 and z204\1\1c2..z204\1\1
+ ..controls z204\1\2c1 and z204\1\2c2..cycle;
+ fill_or_unfill z204\2\0s
+ ..controls z204\2\0c1 and z204\2\0c2..z204\2\0
+ ..controls z204\2\1c1 and z204\2\1c2..z204\2\1
+ ..controls z204\2\2c1 and z204\2\2c2..cycle;
+ proof_labels (
+ 204\0\0,
+ 204\0\1,
+ 204\0\2,
+ 204\0\3,
+ 204\0\4,
+ 204\0\5,
+ 204\0\6,
+ 204\0\7,
+ 204\0\8,
+ 204\0\9,
+ 204\0\10,
+ 204\0\11,
+ 204\0\12,
+ 204\0\13,
+ 204\0\14,
+ 204\0\15,
+ 204\0\16,
+ 204\1\0,
+ 204\1\1,
+ 204\1\2,
+ 204\2\0,
+ 204\2\1,
+ 204\2\2,
+);
+endchar;
+
+beginchar (35, 7.831u#, ascender_height#, descender_depth#);
+ "epsi";
+ italcorr .75*slant*ascender_height#-.5u#;
+ z205\0\0s = (2.722u,8.426u);
+ z205\0\0c1 = (2.267u,7.365u);
+ z205\0\0c2 = (3.101u,7.610u);
+ z205\0\0 = (3.253u,6.738u);
+ z205\0\1 = (3.445u,1.922u);
+ z205\0\2c1 = (1.244u,2.289u);
+ z205\0\2c2 = (2.938u,4.388u);
+ z205\0\2 = (1.692u,5.447u);
+ z205\0\3c1 = (0.355u,6.583u);
+ z205\0\3c2 = (-0.693u,4.246u);
+ z205\0\3 = (0.559u,4.523u);
+ z205\0\4 = (1.277u,4.813u);
+ z205\0\5c1 = (1.273u,3.647u);
+ z205\0\5c2 = (0.725u,2.229u);
+ z205\0\5 = (1.890u,1.454u);
+ z205\0\6 = (3.119u,0.883u);
+ z205\0\7c1 = (3.651u,0.506u);
+ z205\0\7c2 = (3.393u,0.119u);
+ z205\0\7 = (4.168u,-0.126u);
+ z205\0\8c1 = (2.120u,-1.351u);
+ z205\0\8c2 = (5.543u,-1.573u);
+ z205\0\8 = (5.516u,-0.245u);
+ z205\0\9c1 = (5.506u,0.251u);
+ z205\0\9c2 = (4.919u,0.685u);
+ z205\0\9 = (4.770u,1.199u);
+ z205\0\10c1 = (7.378u,1.232u);
+ z205\0\10c2 = (6.582u,3.116u);
+ z205\0\10 = (6.577u,4.813u);
+ z205\0\11c1 = (9.154u,4.612u);
+ z205\0\11c2 = (7.141u,6.599u);
+ z205\0\11 = (6.021u,5.569u);
+ z205\0\12c1 = (4.950u,4.583u);
+ z205\0\12c2 = (6.347u,2.319u);
+ z205\0\12 = (4.542u,1.922u);
+ z205\0\13 = (4.542u,6.621u);
+ z205\0\14 = (5.153u,8.027u);
+ z205\0\15 = (4.288u,8.306u);
+ fill_or_unfill z205\0\0s
+ ..controls z205\0\0c1 and z205\0\0c2..z205\0\0
+ --z205\0\1
+ ..controls z205\0\2c1 and z205\0\2c2..z205\0\2
+ ..controls z205\0\3c1 and z205\0\3c2..z205\0\3
+ --z205\0\4
+ ..controls z205\0\5c1 and z205\0\5c2..z205\0\5
+ --z205\0\6
+ ..controls z205\0\7c1 and z205\0\7c2..z205\0\7
+ ..controls z205\0\8c1 and z205\0\8c2..z205\0\8
+ ..controls z205\0\9c1 and z205\0\9c2..z205\0\9
+ ..controls z205\0\10c1 and z205\0\10c2..z205\0\10
+ ..controls z205\0\11c1 and z205\0\11c2..z205\0\11
+ ..controls z205\0\12c1 and z205\0\12c2..z205\0\12
+ --z205\0\13
+ --z205\0\14
+ --z205\0\15
+ --cycle;
+ proof_labels (
+ 205\0\0,
+ 205\0\1,
+ 205\0\2,
+ 205\0\3,
+ 205\0\4,
+ 205\0\5,
+ 205\0\6,
+ 205\0\7,
+ 205\0\8,
+ 205\0\9,
+ 205\0\10,
+ 205\0\11,
+ 205\0\12,
+ 205\0\13,
+ 205\0\14,
+ 205\0\15,
+ 205\0\16,
+);
+endchar;
+
+beginchar (36, 8.120u#, ascender_height#, 0.000u#);
+ "Epsi";
+ italcorr .95*slant*ascender_height#-.5u#;
+ z206\0\0s = (2.550u,8.338u);
+ z206\0\0c1 = (2.852u,8.123u);
+ z206\0\0c2 = (3.157u,7.970u);
+ z206\0\0 = (3.335u,7.626u);
+ z206\0\1c1 = (3.675u,6.973u);
+ z206\0\1c2 = (3.538u,3.342u);
+ z206\0\1 = (3.313u,2.575u);
+ z206\0\2c1 = (2.899u,2.741u);
+ z206\0\2c2 = (2.454u,2.905u);
+ z206\0\2 = (2.177u,3.279u);
+ z206\0\3c1 = (1.509u,4.181u);
+ z206\0\3c2 = (2.226u,7.738u);
+ z206\0\3 = (0.638u,7.817u);
+ z206\0\4c1 = (0.222u,7.839u);
+ z206\0\4c2 = (-0.091u,7.324u);
+ z206\0\4 = (0.023u,6.948u);
+ z206\0\5c1 = (0.165u,6.483u);
+ z206\0\5c2 = (1.104u,6.171u);
+ z206\0\5 = (1.272u,5.399u);
+ z206\0\6c1 = (1.516u,4.273u);
+ z206\0\6c2 = (-0.929u,1.734u);
+ z206\0\6 = (3.574u,1.860u);
+ z206\0\7c1 = (3.733u,0.291u);
+ z206\0\7c2 = (2.747u,1.208u);
+ z206\0\7 = (2.421u,0.020u);
+ z206\0\8 = (6.036u,0.000u);
+ z206\0\9 = (6.143u,0.485u);
+ z206\0\10c1 = (5.705u,0.647u);
+ z206\0\10c2 = (4.381u,1.156u);
+ z206\0\10 = (5.301u,1.785u);
+ z206\0\11c1 = (5.823u,2.143u);
+ z206\0\11c2 = (7.241u,1.666u);
+ z206\0\11 = (7.675u,3.059u);
+ z206\0\12c1 = (8.004u,4.118u);
+ z206\0\12c2 = (7.025u,4.626u);
+ z206\0\12 = (7.009u,5.570u);
+ z206\0\13c1 = (6.998u,6.338u);
+ z206\0\13c2 = (8.919u,7.793u);
+ z206\0\13 = (7.734u,7.979u);
+ z206\0\14c1 = (7.498u,8.015u);
+ z206\0\14c2 = (7.235u,7.878u);
+ z206\0\14 = (7.058u,7.732u);
+ z206\0\15c1 = (5.692u,6.611u);
+ z206\0\15c2 = (8.103u,2.558u);
+ z206\0\15 = (4.879u,2.619u);
+ z206\0\16 = (4.768u,6.592u);
+ z206\0\17 = (5.078u,8.409u);
+ fill_or_unfill z206\0\0s
+ ..controls z206\0\0c1 and z206\0\0c2..z206\0\0
+ ..controls z206\0\1c1 and z206\0\1c2..z206\0\1
+ ..controls z206\0\2c1 and z206\0\2c2..z206\0\2
+ ..controls z206\0\3c1 and z206\0\3c2..z206\0\3
+ ..controls z206\0\4c1 and z206\0\4c2..z206\0\4
+ ..controls z206\0\5c1 and z206\0\5c2..z206\0\5
+ ..controls z206\0\6c1 and z206\0\6c2..z206\0\6
+ ..controls z206\0\7c1 and z206\0\7c2..z206\0\7
+ --z206\0\8
+ --z206\0\9
+ ..controls z206\0\10c1 and z206\0\10c2..z206\0\10
+ ..controls z206\0\11c1 and z206\0\11c2..z206\0\11
+ ..controls z206\0\12c1 and z206\0\12c2..z206\0\12
+ ..controls z206\0\13c1 and z206\0\13c2..z206\0\13
+ ..controls z206\0\14c1 and z206\0\14c2..z206\0\14
+ ..controls z206\0\15c1 and z206\0\15c2..z206\0\15
+ --z206\0\16
+ --z206\0\17
+ --cycle;
+ proof_labels (
+ 206\0\0,
+ 206\0\1,
+ 206\0\2,
+ 206\0\3,
+ 206\0\4,
+ 206\0\5,
+ 206\0\6,
+ 206\0\7,
+ 206\0\8,
+ 206\0\9,
+ 206\0\10,
+ 206\0\11,
+ 206\0\12,
+ 206\0\13,
+ 206\0\14,
+ 206\0\15,
+ 206\0\16,
+ 206\0\17,
+ 206\0\18,
+);
+endchar;
+
+beginchar (47, 7.402u#, 5.869u#, descender_depth#);
+ "hori";
+ z207\0\0s = (2.590u,5.869u);
+ z207\0\0c1 = (2.200u,5.834u);
+ z207\0\0c2 = (1.195u,5.752u);
+ z207\0\0 = (0.892u,5.570u);
+ z207\0\1c1 = (0.267u,5.192u);
+ z207\0\1c2 = (-0.439u,3.463u);
+ z207\0\1 = (0.473u,3.129u);
+ z207\0\2c1 = (1.050u,2.916u);
+ z207\0\2c2 = (1.931u,3.189u);
+ z207\0\2 = (1.544u,4.536u);
+ z207\0\3c1 = (2.790u,5.248u);
+ z207\0\3c2 = (4.191u,4.475u);
+ z207\0\3 = (3.650u,3.617u);
+ z207\0\4c1 = (3.226u,2.944u);
+ z207\0\4c2 = (2.612u,2.549u);
+ z207\0\4 = (1.737u,2.391u);
+ z207\0\5c1 = (1.159u,2.164u);
+ z207\0\5c2 = (0.652u,1.763u);
+ z207\0\5 = (0.340u,1.340u);
+ z207\0\6c1 = (-0.062u,0.796u);
+ z207\0\6c2 = (-0.160u,0.285u);
+ z207\0\6 = (0.019u,-0.367u);
+ z207\0\7c1 = (0.599u,-2.486u);
+ z207\0\7c2 = (4.114u,-3.625u);
+ z207\0\7 = (6.300u,-2.457u);
+ z207\0\8c1 = (6.971u,-2.098u);
+ z207\0\8c2 = (7.483u,-1.000u);
+ z207\0\8 = (7.298u,0.295u);
+ z207\0\9c1 = (7.193u,1.029u);
+ z207\0\9c2 = (6.245u,1.904u);
+ z207\0\9 = (5.459u,1.422u);
+ z207\0\10c1 = (5.074u,1.422u);
+ z207\0\10c2 = (4.510u,-0.120u);
+ z207\0\10 = (6.308u,-0.052u);
+ z207\0\11c1 = (6.646u,-0.180u);
+ z207\0\11c2 = (6.687u,-0.880u);
+ z207\0\11 = (6.052u,-1.752u);
+ z207\0\12c1 = (5.731u,-2.194u);
+ z207\0\12c2 = (4.206u,-2.344u);
+ z207\0\12 = (3.205u,-1.870u);
+ z207\0\13c1 = (2.460u,-1.518u);
+ z207\0\13c2 = (1.670u,-0.896u);
+ z207\0\13 = (1.514u,0.028u);
+ z207\0\14c1 = (1.272u,1.468u);
+ z207\0\14c2 = (3.179u,0.664u);
+ z207\0\14 = (4.688u,2.994u);
+ z207\0\15c1 = (5.400u,4.094u);
+ z207\0\15c2 = (4.480u,5.963u);
+ fill_or_unfill z207\0\0s
+ ..controls z207\0\0c1 and z207\0\0c2..z207\0\0
+ ..controls z207\0\1c1 and z207\0\1c2..z207\0\1
+ ..controls z207\0\2c1 and z207\0\2c2..z207\0\2
+ ..controls z207\0\3c1 and z207\0\3c2..z207\0\3
+ ..controls z207\0\4c1 and z207\0\4c2..z207\0\4
+ ..controls z207\0\5c1 and z207\0\5c2..z207\0\5
+ ..controls z207\0\6c1 and z207\0\6c2..z207\0\6
+ ..controls z207\0\7c1 and z207\0\7c2..z207\0\7
+ ..controls z207\0\8c1 and z207\0\8c2..z207\0\8
+ ..controls z207\0\9c1 and z207\0\9c2..z207\0\9
+ ..controls z207\0\10c1 and z207\0\10c2..z207\0\10
+ ..controls z207\0\11c1 and z207\0\11c2..z207\0\11
+ ..controls z207\0\12c1 and z207\0\12c2..z207\0\12
+ ..controls z207\0\13c1 and z207\0\13c2..z207\0\13
+ ..controls z207\0\14c1 and z207\0\14c2..z207\0\14
+ ..controls z207\0\15c1 and z207\0\15c2..cycle;
+ proof_labels (
+ 207\0\0,
+ 207\0\1,
+ 207\0\2,
+ 207\0\3,
+ 207\0\4,
+ 207\0\5,
+ 207\0\6,
+ 207\0\7,
+ 207\0\8,
+ 207\0\9,
+ 207\0\10,
+ 207\0\11,
+ 207\0\12,
+ 207\0\13,
+ 207\0\14,
+ 207\0\15,
+);
+endchar;
+
+beginchar (48, 8.416u#, 1.1x_height#, 4.226u#);
+ "Hori";
+ pair zkhorishift; zkhorishift=(0,1.1u);
+ z208\0\0s = (3.011u,5.158u) shifted zkhorishift;
+ z208\0\0c1 = (2.572u,5.118u) shifted zkhorishift;
+ z208\0\0c2 = (1.438u,5.026u) shifted zkhorishift;
+ z208\0\0 = (1.097u,4.820u) shifted zkhorishift;
+ z208\0\1c1 = (0.392u,4.394u) shifted zkhorishift;
+ z208\0\1c2 = (-0.019u,2.471u) shifted zkhorishift;
+ z208\0\1 = (0.981u,2.175u) shifted zkhorishift;
+ z208\0\2c1 = (1.319u,2.075u) shifted zkhorishift;
+ z208\0\2c2 = (1.542u,2.306u) shifted zkhorishift;
+ z208\0\2 = (1.676u,2.589u) shifted zkhorishift;
+ z208\0\3c1 = (1.905u,3.071u) shifted zkhorishift;
+ z208\0\3c2 = (1.767u,3.512u) shifted zkhorishift;
+ z208\0\3 = (2.150u,4.003u) shifted zkhorishift;
+ z208\0\4c1 = (2.923u,4.993u) shifted zkhorishift;
+ z208\0\4c2 = (4.406u,4.249u) shifted zkhorishift;
+ z208\0\4 = (4.639u,3.185u) shifted zkhorishift;
+ z208\0\5c1 = (4.954u,1.743u) shifted zkhorishift;
+ z208\0\5c2 = (2.931u,1.607u) shifted zkhorishift;
+ z208\0\5 = (2.049u,1.236u) shifted zkhorishift;
+ z208\0\6c1 = (1.501u,1.006u) shifted zkhorishift;
+ z208\0\6c2 = (0.826u,0.528u) shifted zkhorishift;
+ z208\0\6 = (0.474u,0.051u) shifted zkhorishift;
+ z208\0\7c1 = (0.021u,-0.564u) shifted zkhorishift;
+ z208\0\7c2 = (-0.089u,-1.140u) shifted zkhorishift;
+ z208\0\7 = (0.112u,-1.874u) shifted zkhorishift;
+ z208\0\8c1 = (0.766u,-4.263u) shifted zkhorishift;
+ z208\0\8c2 = (4.393u,-4.544u) shifted zkhorishift;
+ z208\0\8 = (6.384u,-3.978u) shifted zkhorishift;
+ z208\0\9c1 = (8.127u,-3.481u) shifted zkhorishift;
+ z208\0\9c2 = (8.806u,-2.793u) shifted zkhorishift;
+ z208\0\9 = (8.234u,-1.031u) shifted zkhorishift;
+ z208\0\10c1 = (8.020u,-0.372u) shifted zkhorishift;
+ z208\0\10c2 = (8.034u,0.436u) shifted zkhorishift;
+ z208\0\10 = (7.106u,0.351u) shifted zkhorishift;
+ z208\0\11c1 = (6.666u,0.310u) shifted zkhorishift;
+ z208\0\11c2 = (6.211u,0.079u) shifted zkhorishift;
+ z208\0\11 = (6.223u,-0.428u) shifted zkhorishift;
+ z208\0\12c1 = (6.241u,-1.169u) shifted zkhorishift;
+ z208\0\12c2 = (7.301u,-1.413u) shifted zkhorishift;
+ z208\0\12 = (7.017u,-2.225u) shifted zkhorishift;
+ z208\0\13c1 = (6.330u,-4.194u) shifted zkhorishift;
+ z208\0\13c2 = (2.406u,-4.032u) shifted zkhorishift;
+ z208\0\13 = (1.352u,-2.542u) shifted zkhorishift;
+ z208\0\14c1 = (0.852u,-1.834u) shifted zkhorishift;
+ z208\0\14c2 = (1.180u,-1.135u) shifted zkhorishift;
+ z208\0\14 = (1.817u,-0.668u) shifted zkhorishift;
+ z208\0\15c1 = (2.598u,-0.096u) shifted zkhorishift;
+ z208\0\15c2 = (5.066u,0.348u) shifted zkhorishift;
+ z208\0\15 = (5.565u,0.840u) shifted zkhorishift;
+ z208\0\16c1 = (7.341u,2.592u) shifted zkhorishift;
+ z208\0\16c2 = (5.142u,5.263u) shifted zkhorishift;
+ fill_or_unfill z208\0\0s
+ ..controls z208\0\0c1 and z208\0\0c2..z208\0\0
+ ..controls z208\0\1c1 and z208\0\1c2..z208\0\1
+ ..controls z208\0\2c1 and z208\0\2c2..z208\0\2
+ ..controls z208\0\3c1 and z208\0\3c2..z208\0\3
+ ..controls z208\0\4c1 and z208\0\4c2..z208\0\4
+ ..controls z208\0\5c1 and z208\0\5c2..z208\0\5
+ ..controls z208\0\6c1 and z208\0\6c2..z208\0\6
+ ..controls z208\0\7c1 and z208\0\7c2..z208\0\7
+ ..controls z208\0\8c1 and z208\0\8c2..z208\0\8
+ ..controls z208\0\9c1 and z208\0\9c2..z208\0\9
+ ..controls z208\0\10c1 and z208\0\10c2..z208\0\10
+ ..controls z208\0\11c1 and z208\0\11c2..z208\0\11
+ ..controls z208\0\12c1 and z208\0\12c2..z208\0\12
+ ..controls z208\0\13c1 and z208\0\13c2..z208\0\13
+ ..controls z208\0\14c1 and z208\0\14c2..z208\0\14
+ ..controls z208\0\15c1 and z208\0\15c2..z208\0\15
+ ..controls z208\0\16c1 and z208\0\16c2..cycle;
+ proof_labels (
+ 208\0\0,
+ 208\0\1,
+ 208\0\2,
+ 208\0\3,
+ 208\0\4,
+ 208\0\5,
+ 208\0\6,
+ 208\0\7,
+ 208\0\8,
+ 208\0\9,
+ 208\0\10,
+ 208\0\11,
+ 208\0\12,
+ 208\0\13,
+ 208\0\14,
+ 208\0\15,
+ 208\0\16,
+);
+endchar;
+
+
+
+beginchar (50, 9.402u#, x_height#, descender_depth#);
+ "hori akhmimica";
+ numeric khorishift; khorishift=2u;
+ z50\0\0s = (2.590u+khorishift,5.869u);
+ z50\0\0c1 = (2.200u+khorishift,5.834u);
+ z50\0\0c2 = (1.195u+khorishift,5.752u);
+ z50\0\0 = (0.892u+khorishift,5.570u);
+ z50\0\1c1 = (0.267u+khorishift,5.192u);
+ z50\0\1c2 = (-0.439u+khorishift,3.463u);
+ z50\0\1 = (0.473u+khorishift,3.129u);
+ z50\0\2c1 = (1.050u+khorishift,2.916u);
+ z50\0\2c2 = (1.931u+khorishift,3.189u);
+ z50\0\2 = (1.544u+khorishift,4.536u);
+ z50\0\3c1 = (2.790u+khorishift,5.248u);
+ z50\0\3c2 = (4.191u+khorishift,4.475u);
+ z50\0\3 = (3.650u+khorishift,3.617u);
+ z50\0\4c1 = (3.226u+khorishift,2.944u);
+ z50\0\4c2 = (2.612u+khorishift,2.549u);
+ z50\0\4 = (1.737u+khorishift,2.391u);
+ z50\0\5c1 = (1.159u+khorishift,2.164u);
+ z50\0\5c2 = (0.652u+khorishift,1.763u);
+ z50\0\5 = (0.340u+khorishift,1.340u);
+ z50\0\6c1 = (-0.062u+khorishift,0.796u);
+ z50\0\6c2 = (-0.160u+khorishift,0.285u);
+ z50\0\6 = (0.019u+khorishift,-0.367u);
+ z50\0\7c1 = (0.599u+khorishift,-2.486u);
+ z50\0\7c2 = (4.114u+khorishift,-3.625u);
+ z50\0\7 = (6.300u+khorishift,-2.457u);
+ z50\0\8c1 = (6.971u+khorishift,-2.098u);
+ z50\0\8c2 = (7.483u+khorishift,-1.000u);
+ z50\0\8 = (7.298u+khorishift,0.295u);
+ z50\0\9c1 = (7.193u+khorishift,1.029u);
+ z50\0\9c2 = (6.245u+khorishift,1.904u);
+ z50\0\9 = (5.459u+khorishift,1.422u);
+ z50\0\10c1 = (5.074u+khorishift,1.422u);
+ z50\0\10c2 = (4.510u+khorishift,-0.120u);
+ z50\0\10 = (6.308u+khorishift,-0.052u);
+ z50\0\11c1 = (6.646u+khorishift,-0.180u);
+ z50\0\11c2 = (6.687u+khorishift,-0.880u);
+ z50\0\11 = (6.052u+khorishift,-1.752u);
+ z50\0\12c1 = (5.731u+khorishift,-2.194u);
+ z50\0\12c2 = (4.206u+khorishift,-2.344u);
+ z50\0\12 = (3.205u+khorishift,-1.870u);
+ z50\0\13c1 = (2.460u+khorishift,-1.518u);
+ z50\0\13c2 = (1.670u+khorishift,-0.896u);
+ z50\0\13 = (1.514u+khorishift,0.028u);
+ z50\0\14c1 = (1.272u+khorishift,1.468u);
+ z50\0\14c2 = (3.179u+khorishift,0.664u);
+ z50\0\14 = (4.688u+khorishift,2.994u);
+ z50\0\15c1 = (5.400u+khorishift,4.094u);
+ z50\0\15c2 = (4.480u+khorishift,5.963u);
+ fill_or_unfill z50\0\0s
+ ..controls z50\0\0c1 and z50\0\0c2..z50\0\0
+ ..controls z50\0\1c1 and z50\0\1c2..z50\0\1
+ ..controls z50\0\2c1 and z50\0\2c2..z50\0\2
+ ..controls z50\0\3c1 and z50\0\3c2..z50\0\3
+ ..controls z50\0\4c1 and z50\0\4c2..z50\0\4
+ ..controls z50\0\5c1 and z50\0\5c2..z50\0\5
+ ..controls z50\0\6c1 and z50\0\6c2..z50\0\6
+ ..controls z50\0\7c1 and z50\0\7c2..z50\0\7
+ ..controls z50\0\8c1 and z50\0\8c2..z50\0\8
+ ..controls z50\0\9c1 and z50\0\9c2..z50\0\9
+ ..controls z50\0\10c1 and z50\0\10c2..z50\0\10
+ ..controls z50\0\11c1 and z50\0\11c2..z50\0\11
+ ..controls z50\0\12c1 and z50\0\12c2..z50\0\12
+ ..controls z50\0\13c1 and z50\0\13c2..z50\0\13
+ ..controls z50\0\14c1 and z50\0\14c2..z50\0\14
+ ..controls z50\0\15c1 and z50\0\15c2..cycle;
+ numeric ybar,xbar,barslope;
+ barslope=-7.5;
+ pickup pencircle xscaled .2u yscaled .8u rotated barslope;
+ xbar=.9x50\0\14c1;
+ ybar=.8y50\0\14c2;
+ (xbar,ybar)=.5[z50\1\0,z50\1\1];
+ z50\1\1-z50\1\0=whatever*dir(barslope);
+ x50\1\1-x50\1\0=5.5u;
+ draw z50\1\0--z50\1\1;
+ proof_labels (
+ 50\0\0,
+ 50\0\1,
+ 50\0\2,
+ 50\0\3,
+ 50\0\4,
+ 50\0\5,
+ 50\0\6,
+ 50\0\7,
+ 50\0\8,
+ 50\0\9,
+ 50\0\10,
+ 50\0\11,
+ 50\0\12,
+ 50\0\13,
+ 50\0\14,
+ 50\0\15,
+ 50\1\0,
+ 50\1\1,
+);
+endchar;
+
+beginchar (54, 10.616u#, 1.1x_height#, descender_depth#);
+ "Hori akhmimica";
+ pair zkhorishift; zkhorishift=(2.2u,1.1u);
+ z54\0\0s = (3.011u,5.158u) shifted zkhorishift;
+ z54\0\0c1 = (2.572u,5.118u) shifted zkhorishift;
+ z54\0\0c2 = (1.438u,5.026u) shifted zkhorishift;
+ z54\0\0 = (1.097u,4.820u) shifted zkhorishift;
+ z54\0\1c1 = (0.392u,4.394u) shifted zkhorishift;
+ z54\0\1c2 = (-0.019u,2.471u) shifted zkhorishift;
+ z54\0\1 = (0.981u,2.175u) shifted zkhorishift;
+ z54\0\2c1 = (1.319u,2.075u) shifted zkhorishift;
+ z54\0\2c2 = (1.542u,2.306u) shifted zkhorishift;
+ z54\0\2 = (1.676u,2.589u) shifted zkhorishift;
+ z54\0\3c1 = (1.905u,3.071u) shifted zkhorishift;
+ z54\0\3c2 = (1.767u,3.512u) shifted zkhorishift;
+ z54\0\3 = (2.150u,4.003u) shifted zkhorishift;
+ z54\0\4c1 = (2.923u,4.993u) shifted zkhorishift;
+ z54\0\4c2 = (4.406u,4.249u) shifted zkhorishift;
+ z54\0\4 = (4.639u,3.185u) shifted zkhorishift;
+ z54\0\5c1 = (4.954u,1.743u) shifted zkhorishift;
+ z54\0\5c2 = (2.931u,1.607u) shifted zkhorishift;
+ z54\0\5 = (2.049u,1.236u) shifted zkhorishift;
+ z54\0\6c1 = (1.501u,1.006u) shifted zkhorishift;
+ z54\0\6c2 = (0.826u,0.528u) shifted zkhorishift;
+ z54\0\6 = (0.474u,0.051u) shifted zkhorishift;
+ z54\0\7c1 = (0.021u,-0.564u) shifted zkhorishift;
+ z54\0\7c2 = (-0.089u,-1.140u) shifted zkhorishift;
+ z54\0\7 = (0.112u,-1.874u) shifted zkhorishift;
+ z54\0\8c1 = (0.766u,-4.263u) shifted zkhorishift;
+ z54\0\8c2 = (4.393u,-4.544u) shifted zkhorishift;
+ z54\0\8 = (6.384u,-3.978u) shifted zkhorishift;
+ z54\0\9c1 = (8.127u,-3.481u) shifted zkhorishift;
+ z54\0\9c2 = (8.806u,-2.793u) shifted zkhorishift;
+ z54\0\9 = (8.234u,-1.031u) shifted zkhorishift;
+ z54\0\10c1 = (8.020u,-0.372u) shifted zkhorishift;
+ z54\0\10c2 = (8.034u,0.436u) shifted zkhorishift;
+ z54\0\10 = (7.106u,0.351u) shifted zkhorishift;
+ z54\0\11c1 = (6.666u,0.310u) shifted zkhorishift;
+ z54\0\11c2 = (6.211u,0.079u) shifted zkhorishift;
+ z54\0\11 = (6.223u,-0.428u) shifted zkhorishift;
+ z54\0\12c1 = (6.241u,-1.169u) shifted zkhorishift;
+ z54\0\12c2 = (7.301u,-1.413u) shifted zkhorishift;
+ z54\0\12 = (7.017u,-2.225u) shifted zkhorishift;
+ z54\0\13c1 = (6.330u,-4.194u) shifted zkhorishift;
+ z54\0\13c2 = (2.406u,-4.032u) shifted zkhorishift;
+ z54\0\13 = (1.352u,-2.542u) shifted zkhorishift;
+ z54\0\14c1 = (0.852u,-1.834u) shifted zkhorishift;
+ z54\0\14c2 = (1.180u,-1.135u) shifted zkhorishift;
+ z54\0\14 = (1.817u,-0.668u) shifted zkhorishift;
+ z54\0\15c1 = (2.598u,-0.096u) shifted zkhorishift;
+ z54\0\15c2 = (5.066u,0.348u) shifted zkhorishift;
+ z54\0\15 = (5.565u,0.840u) shifted zkhorishift;
+ z54\0\16c1 = (7.341u,2.592u) shifted zkhorishift;
+ z54\0\16c2 = (5.142u,5.263u) shifted zkhorishift;
+ fill_or_unfill z54\0\0s
+ ..controls z54\0\0c1 and z54\0\0c2..z54\0\0
+ ..controls z54\0\1c1 and z54\0\1c2..z54\0\1
+ ..controls z54\0\2c1 and z54\0\2c2..z54\0\2
+ ..controls z54\0\3c1 and z54\0\3c2..z54\0\3
+ ..controls z54\0\4c1 and z54\0\4c2..z54\0\4
+ ..controls z54\0\5c1 and z54\0\5c2..z54\0\5
+ ..controls z54\0\6c1 and z54\0\6c2..z54\0\6
+ ..controls z54\0\7c1 and z54\0\7c2..z54\0\7
+ ..controls z54\0\8c1 and z54\0\8c2..z54\0\8
+ ..controls z54\0\9c1 and z54\0\9c2..z54\0\9
+ ..controls z54\0\10c1 and z54\0\10c2..z54\0\10
+ ..controls z54\0\11c1 and z54\0\11c2..z54\0\11
+ ..controls z54\0\12c1 and z54\0\12c2..z54\0\12
+ ..controls z54\0\13c1 and z54\0\13c2..z54\0\13
+ ..controls z54\0\14c1 and z54\0\14c2..z54\0\14
+ ..controls z54\0\15c1 and z54\0\15c2..z54\0\15
+ ..controls z54\0\16c1 and z54\0\16c2..cycle;
+ numeric ybar,xbar,barslope;
+ barslope=-7.5;
+ pickup pencircle xscaled .2u yscaled .8u rotated barslope;
+ xbar=.9x54\0\14c1;
+ ybar=.8y54\0\14c2;
+ (xbar,ybar)=.45[z54\1\0,z54\1\1];
+ z54\1\1-z54\1\0=whatever*dir(barslope);
+ x54\1\1-x54\1\0=5.5u;
+ draw z54\1\0--z54\1\1;
+ proof_labels (
+ 54\0\0,
+ 54\0\1,
+ 54\0\2,
+ 54\0\3,
+ 54\0\4,
+ 54\0\5,
+ 54\0\6,
+ 54\0\7,
+ 54\0\8,
+ 54\0\9,
+ 54\0\10,
+ 54\0\11,
+ 54\0\12,
+ 54\0\13,
+ 54\0\14,
+ 54\0\15,
+ 54\0\16,
+ 54\1\0,
+ 54\1\1,
+);
+endchar;
+
+
+
+
+beginchar (59, 7.042u#, x_height#, 0.000u#);
+ "djandja";
+ italcorr 1.15*slant*x_height#-.5u#;
+ z209\0\0s = (3.694u,4.261u);
+ z209\0\0c1 = (3.047u,4.296u);
+ z209\0\0c2 = (2.954u,5.690u);
+ z209\0\0 = (1.343u,5.732u);
+ z209\0\1c1 = (0.473u,5.780u);
+ z209\0\1c2 = (-0.162u,5.685u);
+ z209\0\1 = (0.036u,5.254u);
+ z209\0\2c1 = (0.175u,5.145u);
+ z209\0\2c2 = (0.757u,4.576u);
+ z209\0\2 = (1.106u,4.838u);
+ z209\0\3c1 = (1.561u,4.820u);
+ z209\0\3c2 = (2.715u,3.544u);
+ z209\0\3 = (2.820u,2.880u);
+ z209\0\4c1 = (2.680u,2.251u);
+ z209\0\4c2 = (1.772u,1.176u);
+ z209\0\4 = (1.349u,0.880u);
+ z209\0\5c1 = (1.123u,0.723u);
+ z209\0\5c2 = (0.363u,0.499u);
+ z209\0\5 = (0.265u,0.306u);
+ z209\0\6c1 = (0.063u,-0.094u);
+ z209\0\6c2 = (1.234u,0.013u);
+ z209\0\6 = (1.435u,0.012u);
+ z209\0\7 = (6.699u,0.058u);
+ z209\0\8c1 = (6.889u,0.142u);
+ z209\0\8c2 = (6.913u,0.303u);
+ z209\0\8 = (6.953u,0.484u);
+ z209\0\9c1 = (5.957u,0.755u);
+ z209\0\9c2 = (5.410u,1.835u);
+ z209\0\9 = (4.863u,2.613u);
+ z209\0\10 = (4.534u,3.128u);
+ z209\0\11c1 = (4.868u,4.176u);
+ z209\0\11c2 = (5.689u,4.602u);
+ z209\0\11 = (6.079u,4.895u);
+ z209\0\12c1 = (6.469u,4.229u);
+ z209\0\12c2 = (7.042u,5.132u);
+ z209\0\12 = (7.042u,5.597u);
+ z209\0\13c1 = (6.650u,5.989u);
+ z209\0\13c2 = (5.719u,5.916u);
+ z209\0\13 = (4.753u,5.316u);
+ z209\0\14c1 = (4.385u,5.052u);
+ z209\0\14c2 = (4.069u,4.715u);
+ z209\1\0s = (3.638u,2.051u);
+ z209\1\0c1 = (3.763u,1.920u);
+ z209\1\0c2 = (4.390u,1.237u);
+ z209\1\0 = (4.085u,1.098u);
+ z209\1\1c1 = (3.991u,1.055u);
+ z209\1\1c2 = (3.436u,1.067u);
+ z209\1\1 = (3.298u,1.070u);
+ z209\1\2c1 = (3.224u,1.071u);
+ z209\1\2c2 = (3.080u,1.067u);
+ z209\1\2 = (3.051u,1.157u);
+ z209\1\3c1 = (3.003u,1.307u);
+ z209\1\3c2 = (3.505u,1.954u);
+ fill_or_unfill z209\0\0s
+ ..controls z209\0\0c1 and z209\0\0c2..z209\0\0
+ ..controls z209\0\1c1 and z209\0\1c2..z209\0\1
+ ..controls z209\0\2c1 and z209\0\2c2..z209\0\2
+ ..controls z209\0\3c1 and z209\0\3c2..z209\0\3
+ ..controls z209\0\4c1 and z209\0\4c2..z209\0\4
+ ..controls z209\0\5c1 and z209\0\5c2..z209\0\5
+ ..controls z209\0\6c1 and z209\0\6c2..z209\0\6
+ --z209\0\7
+ ..controls z209\0\8c1 and z209\0\8c2..z209\0\8
+ ..controls z209\0\9c1 and z209\0\9c2..z209\0\9
+ --z209\0\10
+ ..controls z209\0\11c1 and z209\0\11c2..z209\0\11
+ ..controls z209\0\12c1 and z209\0\12c2..z209\0\12
+ ..controls z209\0\13c1 and z209\0\13c2..z209\0\13
+ ..controls z209\0\14c1 and z209\0\14c2..cycle;
+ fill_or_unfill z209\1\0s
+ ..controls z209\1\0c1 and z209\1\0c2..z209\1\0
+ ..controls z209\1\1c1 and z209\1\1c2..z209\1\1
+ ..controls z209\1\2c1 and z209\1\2c2..z209\1\2
+ ..controls z209\1\3c1 and z209\1\3c2..cycle;
+ proof_labels (
+ 209\0\0,
+ 209\0\1,
+ 209\0\2,
+ 209\0\3,
+ 209\0\4,
+ 209\0\5,
+ 209\0\6,
+ 209\0\7,
+ 209\0\8,
+ 209\0\9,
+ 209\0\10,
+ 209\0\11,
+ 209\0\12,
+ 209\0\13,
+ 209\0\14,
+ 209\1\0,
+ 209\1\1,
+ 209\1\2,
+ 209\1\3,
+);
+endchar;
+
+beginchar (60, 10.840u#, ascender_height#, 0.000u#);
+ "Djandja";
+ italcorr .95*slant*ascender_height#-.5u#;
+ z210\0\0s = (6.022u,6.625u);
+ z210\0\0c1 = (4.550u,6.874u);
+ z210\0\0c2 = (4.490u,8.797u);
+ z210\0\0 = (2.048u,8.793u);
+ z210\0\1c1 = (-0.732u,8.788u);
+ z210\0\1c2 = (-0.440u,5.648u);
+ z210\0\1 = (1.434u,5.919u);
+ z210\0\2c1 = (2.429u,6.062u);
+ z210\0\2c2 = (1.969u,7.162u);
+ z210\0\2 = (1.686u,7.709u);
+ z210\0\3c1 = (2.543u,7.534u);
+ z210\0\3c2 = (4.378u,5.840u);
+ z210\0\3 = (4.324u,4.938u);
+ z210\0\4c1 = (4.278u,4.158u);
+ z210\0\4c2 = (2.683u,1.900u);
+ z210\0\4 = (2.037u,1.448u);
+ z210\0\5c1 = (1.692u,1.207u);
+ z210\0\5c2 = (0.530u,0.865u);
+ z210\0\5 = (0.381u,0.572u);
+ z210\0\6c1 = (0.072u,-0.040u);
+ z210\0\6c2 = (1.861u,0.124u);
+ z210\0\6 = (2.168u,0.121u);
+ z210\0\7 = (10.211u,0.193u);
+ z210\0\8c1 = (10.501u,0.321u);
+ z210\0\8c2 = (10.539u,0.567u);
+ z210\0\8 = (10.600u,0.843u);
+ z210\0\9c1 = (9.077u,1.257u);
+ z210\0\9c2 = (8.242u,2.906u);
+ z210\0\9 = (7.406u,4.095u);
+ z210\0\10c1 = (7.095u,4.538u);
+ z210\0\10c2 = (6.516u,5.075u);
+ z210\0\10 = (6.630u,5.661u);
+ z210\0\11c1 = (6.712u,6.080u);
+ z210\0\11c2 = (7.112u,6.617u);
+ z210\0\11 = (7.337u,6.986u);
+ z210\0\12c1 = (7.771u,7.699u);
+ z210\0\12c2 = (7.891u,8.000u);
+ z210\0\12 = (8.793u,8.070u);
+ z210\0\13c1 = (8.169u,6.398u);
+ z210\0\13c2 = (9.703u,5.816u);
+ z210\0\13 = (10.480u,6.891u);
+ z210\0\14c1 = (11.511u,8.315u);
+ z210\0\14c2 = (9.611u,9.935u);
+ z210\0\14 = (7.238u,8.226u);
+ z210\0\15c1 = (6.676u,7.822u);
+ z210\0\15c2 = (6.193u,7.306u);
+ z210\1\0s = (5.300u,3.975u);
+ z210\1\0c1 = (5.698u,3.556u);
+ z210\1\0c2 = (7.699u,1.377u);
+ z210\1\0 = (6.727u,0.932u);
+ z210\1\1c1 = (6.426u,0.794u);
+ z210\1\1c2 = (4.655u,0.836u);
+ z210\1\1 = (4.216u,0.844u);
+ z210\1\2c1 = (3.977u,0.848u);
+ z210\1\2c2 = (3.518u,0.834u);
+ z210\1\2 = (3.427u,1.122u);
+ z210\1\3c1 = (3.273u,1.602u);
+ z210\1\3c2 = (4.876u,3.664u);
+ fill_or_unfill z210\0\0s
+ ..controls z210\0\0c1 and z210\0\0c2..z210\0\0
+ ..controls z210\0\1c1 and z210\0\1c2..z210\0\1
+ ..controls z210\0\2c1 and z210\0\2c2..z210\0\2
+ ..controls z210\0\3c1 and z210\0\3c2..z210\0\3
+ ..controls z210\0\4c1 and z210\0\4c2..z210\0\4
+ ..controls z210\0\5c1 and z210\0\5c2..z210\0\5
+ ..controls z210\0\6c1 and z210\0\6c2..z210\0\6
+ --z210\0\7
+ ..controls z210\0\8c1 and z210\0\8c2..z210\0\8
+ ..controls z210\0\9c1 and z210\0\9c2..z210\0\9
+ ..controls z210\0\10c1 and z210\0\10c2..z210\0\10
+ ..controls z210\0\11c1 and z210\0\11c2..z210\0\11
+ ..controls z210\0\12c1 and z210\0\12c2..z210\0\12
+ ..controls z210\0\13c1 and z210\0\13c2..z210\0\13
+ ..controls z210\0\14c1 and z210\0\14c2..z210\0\14
+ ..controls z210\0\15c1 and z210\0\15c2..cycle;
+ fill_or_unfill z210\1\0s
+ ..controls z210\1\0c1 and z210\1\0c2..z210\1\0
+ ..controls z210\1\1c1 and z210\1\1c2..z210\1\1
+ ..controls z210\1\2c1 and z210\1\2c2..z210\1\2
+ ..controls z210\1\3c1 and z210\1\3c2..cycle;
+ proof_labels (
+ 210\0\0,
+ 210\0\1,
+ 210\0\2,
+ 210\0\3,
+ 210\0\4,
+ 210\0\5,
+ 210\0\6,
+ 210\0\7,
+ 210\0\8,
+ 210\0\9,
+ 210\0\10,
+ 210\0\11,
+ 210\0\12,
+ 210\0\13,
+ 210\0\14,
+ 210\0\15,
+ 210\1\0,
+ 210\1\1,
+ 210\1\2,
+ 210\1\3,
+);
+endchar;
+
+beginchar (51, 6.906u#, 8.208u#, 0.000u#);
+ "ti";
+ italcorr .8*slant*ascender_height#-.5u#;
+ z211\0\0s = (2.990u,6.522u);
+ z211\0\0c1 = (2.212u,6.505u);
+ z211\0\0c2 = (-0.244u,6.410u);
+ z211\0\0 = (0.019u,5.199u);
+ z211\0\1c1 = (0.107u,4.796u);
+ z211\0\1c2 = (0.348u,4.702u);
+ z211\0\1 = (0.702u,4.595u);
+ z211\0\2c1 = (1.095u,5.687u);
+ z211\0\2c2 = (2.032u,5.558u);
+ z211\0\2 = (2.972u,5.558u);
+ z211\0\3 = (2.972u,1.358u);
+ z211\0\4 = (2.268u,0.861u);
+ z211\0\5c1 = (2.310u,0.668u);
+ z211\0\5c2 = (2.329u,0.481u);
+ z211\0\5 = (2.477u,0.331u);
+ z211\0\6c1 = (2.784u,0.018u);
+ z211\0\6c2 = (4.242u,-0.254u);
+ z211\0\6 = (4.396u,0.401u);
+ z211\0\7 = (4.195u,5.679u);
+ z211\0\8 = (6.845u,5.197u);
+ z211\0\9c1 = (7.290u,7.034u);
+ z211\0\9c2 = (5.289u,6.522u);
+ z211\0\9 = (4.074u,6.522u);
+ z211\0\10 = (5.038u,7.365u);
+ z211\0\11c1 = (4.737u,7.832u);
+ z211\0\11c2 = (3.428u,8.646u);
+ z211\0\11 = (3.059u,7.916u);
+ z211\0\12c1 = (2.955u,7.708u);
+ z211\0\12c2 = (2.990u,6.801u);
+ fill_or_unfill z211\0\0s
+ ..controls z211\0\0c1 and z211\0\0c2..z211\0\0
+ ..controls z211\0\1c1 and z211\0\1c2..z211\0\1
+ ..controls z211\0\2c1 and z211\0\2c2..z211\0\2
+ --z211\0\3
+ --z211\0\4
+ ..controls z211\0\5c1 and z211\0\5c2..z211\0\5
+ ..controls z211\0\6c1 and z211\0\6c2..z211\0\6
+ --z211\0\7
+ --z211\0\8
+ ..controls z211\0\9c1 and z211\0\9c2..z211\0\9
+ --z211\0\10
+ ..controls z211\0\11c1 and z211\0\11c2..z211\0\11
+ ..controls z211\0\12c1 and z211\0\12c2..cycle;
+ proof_labels (
+ 211\0\0,
+ 211\0\1,
+ 211\0\2,
+ 211\0\3,
+ 211\0\4,
+ 211\0\5,
+ 211\0\6,
+ 211\0\7,
+ 211\0\8,
+ 211\0\9,
+ 211\0\10,
+ 211\0\11,
+ 211\0\12,
+);
+endchar;
+
+beginchar (52, 6.487u#, ascender_height#, 0.000u#);
+ "Ti";
+ italcorr .8*slant*ascender_height#-.5u#;
+ z212\0\0s = (6.487u,4.730u);
+ z212\0\0c1 = (6.487u,7.163u);
+ z212\0\0c2 = (0.000u,7.163u);
+ z212\0\0 = (0.000u,4.730u);
+ z212\0\1c1 = (0.000u,4.325u);
+ z212\0\1c2 = (0.405u,4.122u);
+ z212\0\1 = (0.811u,4.325u);
+ z212\0\2c1 = (1.216u,4.730u);
+ z212\0\2c2 = (1.216u,5.947u);
+ z212\0\2 = (3.244u,5.947u);
+ z212\0\3c1 = (5.271u,5.947u);
+ z212\0\3c2 = (5.271u,4.730u);
+ z212\0\3 = (5.677u,4.325u);
+ z212\0\4c1 = (6.082u,4.122u);
+ z212\0\4c2 = (6.487u,4.325u);
+ z212\1\0s = (1.480u,0.000u);
+ z212\1\0 = (5.130u,0.000u);
+ z212\1\1c1 = (5.130u,0.811u);
+ z212\1\1c2 = (3.913u,0.405u);
+ z212\1\1 = (3.913u,1.216u);
+ z212\1\2 = (3.913u,7.298u);
+ z212\1\3c1 = (3.913u,8.109u);
+ z212\1\3c2 = (5.130u,7.704u);
+ z212\1\3 = (5.130u,8.515u);
+ z212\1\4 = (1.480u,8.515u);
+ z212\1\5c1 = (1.480u,7.704u);
+ z212\1\5c2 = (2.697u,8.109u);
+ z212\1\5 = (2.697u,7.298u);
+ z212\1\6 = (2.697u,1.216u);
+ z212\1\7c1 = (2.697u,0.405u);
+ z212\1\7c2 = (1.480u,0.811u);
+ fill_or_unfill z212\0\0s
+ ..controls z212\0\0c1 and z212\0\0c2..z212\0\0
+ ..controls z212\0\1c1 and z212\0\1c2..z212\0\1
+ ..controls z212\0\2c1 and z212\0\2c2..z212\0\2
+ ..controls z212\0\3c1 and z212\0\3c2..z212\0\3
+ ..controls z212\0\4c1 and z212\0\4c2..cycle;
+ fill_or_unfill z212\1\0s
+ --z212\1\0
+ ..controls z212\1\1c1 and z212\1\1c2..z212\1\1
+ --z212\1\2
+ ..controls z212\1\3c1 and z212\1\3c2..z212\1\3
+ --z212\1\4
+ ..controls z212\1\5c1 and z212\1\5c2..z212\1\5
+ --z212\1\6
+ ..controls z212\1\7c1 and z212\1\7c2..cycle;
+ proof_labels (
+ 212\0\0,
+ 212\0\1,
+ 212\0\2,
+ 212\0\3,
+ 212\0\4,
+ 212\1\0,
+ 212\1\1,
+ 212\1\2,
+ 212\1\3,
+ 212\1\4,
+ 212\1\5,
+ 212\1\6,
+ 212\1\7,
+);
+endchar;
+
+
+beginchar (53, 8.216u#, ascender_height#, descender_depth#);% w era pari a 6.716u#; ora e' aumentata di rightshift
+ "Crux";
+ italcorr .95*slant*ascender_height#-.5u#;
+ numeric upshift,downshift,rightshift;
+ upshift:=.8u; downshift:=d; rightshift=1.5u;
+ %
+ z53\0\0s = (0.000u+rightshift,0.071u-d);
+ z53\0\0c1 = (0.712u+rightshift,-0.024u-d);
+ z53\0\0c2 = (3.083u+rightshift,-0.114u-d);
+ z53\0\0 = (3.493u+rightshift,0.432u-d);
+ z53\0\1c1 = (3.245u+rightshift,0.524u-d);
+ z53\0\1c2 = (2.926u+rightshift,0.596u-d);
+ z53\0\1 = (2.773u+rightshift,0.831u-d);
+ z53\0\2c1 = (2.481u+rightshift,1.277u-d);
+ z53\0\2c2 = (2.458u+rightshift,3.079u+upshift);
+ z53\0\2 = (2.941u+rightshift,3.461u+upshift);
+ z53\0\3c1 = (3.829u+rightshift,4.165u+upshift);
+ z53\0\3c2 = (5.377u+rightshift,2.908u+upshift);
+ z53\0\3 = (6.388u+rightshift,4.650u+upshift);
+ z53\0\4c1 = (6.684u+rightshift,5.160u+upshift);
+ z53\0\4c2 = (6.791u+rightshift,5.759u+upshift);
+ z53\0\4 = (6.663u+rightshift,6.334u+upshift);
+ z53\0\5c1 = (6.042u+rightshift,9.135u+upshift);
+ z53\0\5c2 = (3.442u+rightshift,8.748u+upshift);
+ z53\0\5 = (1.204u+rightshift,8.743u+upshift);
+ z53\0\6c1 = (0.929u+rightshift,8.743u+upshift);
+ z53\0\6c2 = (0.196u+rightshift,8.815u+upshift);
+ z53\0\6 = (0.210u+rightshift,8.380u+upshift);
+ z53\0\7c1 = (0.225u+rightshift,7.919u+upshift);
+ z53\0\7c2 = (1.024u+rightshift,8.058u+upshift);
+ z53\0\7 = (1.116u+rightshift,7.297u+upshift);
+ z53\0\8 = (0.963u+rightshift,5.130u+upshift);
+ z53\0\9c1 = (0.985u+rightshift,3.997u+upshift);
+ z53\0\9c2 = (1.300u+rightshift,2.630u+upshift);
+ z53\0\9 = (0.963u+rightshift,1.518u-d);
+ z53\0\10c1 = (0.717u+rightshift,0.822u-d);
+ z53\0\10c2 = (0.197u+rightshift,0.973u-d);
+ z53\1\0s = (3.234u+rightshift,8.188u+upshift);
+ z53\1\0c1 = (5.449u+rightshift,8.433u+upshift);
+ z53\1\0c2 = (6.043u+rightshift,5.284u+upshift);
+ z53\1\0 = (4.685u+rightshift,4.530u+upshift);
+ z53\1\1c1 = (4.382u+rightshift,4.362u+upshift);
+ z53\1\1c2 = (3.727u+rightshift,4.402u+upshift);
+ z53\1\1 = (3.373u+rightshift,4.407u+upshift);
+ z53\1\2c1 = (3.180u+rightshift,4.411u+upshift);
+ z53\1\2c2 = (2.897u+rightshift,4.399u+upshift);
+ z53\1\2 = (2.739u+rightshift,4.527u+upshift);
+ z53\1\3c1 = (2.312u+rightshift,4.871u+upshift);
+ z53\1\3c2 = (2.338u+rightshift,7.258u+upshift);
+ z53\1\3 = (2.608u+rightshift,7.751u+upshift);
+ z53\1\4c1 = (2.763u+rightshift,8.035u+upshift);
+ z53\1\4c2 = (2.948u+rightshift,8.090u+upshift);
+ fill_or_unfill z53\0\0s
+ ..controls z53\0\0c1 and z53\0\0c2..z53\0\0
+ ..controls z53\0\1c1 and z53\0\1c2..z53\0\1
+ ..controls z53\0\2c1 and z53\0\2c2..z53\0\2
+ ..controls z53\0\3c1 and z53\0\3c2..z53\0\3
+ ..controls z53\0\4c1 and z53\0\4c2..z53\0\4
+ ..controls z53\0\5c1 and z53\0\5c2..z53\0\5
+ ..controls z53\0\6c1 and z53\0\6c2..z53\0\6
+ ..controls z53\0\7c1 and z53\0\7c2..z53\0\7
+ --z53\0\8
+ ..controls z53\0\9c1 and z53\0\9c2..z53\0\9
+ ..controls z53\0\10c1 and z53\0\10c2..cycle;
+ fill_or_unfill z53\1\0s
+ ..controls z53\1\0c1 and z53\1\0c2..z53\1\0
+ ..controls z53\1\1c1 and z53\1\1c2..z53\1\1
+ ..controls z53\1\2c1 and z53\1\2c2..z53\1\2
+ ..controls z53\1\3c1 and z53\1\3c2..z53\1\3
+ ..controls z53\1\4c1 and z53\1\4c2..cycle;
+ pickup pencircle yscaled 1.5u xscaled .2u rotated -20;
+ numeric barheight,barcenter;
+ barheight= .45x_height; barcenter=.55[x53\0\0s,x53\0\0];
+ z53\2\0=(barcenter-rightshift-1.3u,barheight-.2u);
+ z53\2\1=(barcenter-rightshift-0.4u,barheight);
+ z53\2\2=(barcenter+rightshift+0.4u,barheight);
+ z53\2\3=(barcenter+rightshift+1.3u,barheight+.2u);
+ draw z53\2\0--z53\2\1--z53\2\2--z53\2\3;
+ proof_labels (
+ 53\0\0,
+ 53\0\1,
+ 53\0\2,
+ 53\0\3,
+ 53\0\4,
+ 53\0\5,
+ 53\0\6,
+ 53\0\7,
+ 53\0\8,
+ 53\0\9,
+ 53\0\10,
+ 53\1\0,
+ 53\1\1,
+ 53\1\2,
+ 53\1\3,
+ 53\1\4,
+ 53\2\0,
+ 53\2\1,
+ 53\2\2,
+ 53\2\3,
+);
+endchar;
+
+
+beginchar(86, ascender_height#, ascender_height#, 0);
+ italcorr .95*slant*(x_height#+2u#)-.5u#;
+ numeric a, b, c;
+ a=.2u; b=15; c=1.5u;
+ z0=(w-u,w-u)/2=.5[z1,z3]=.5[z2,z4];
+ z3=(a,y0-.5c);z4=(x0+.5c,a);
+ pickup pencircle xscaled c yscaled a rotated b;
+ draw z2{right}...z0{dir(-90-b/2)}...{right}z4;
+ pickup pencircle xscaled a yscaled c rotated b;
+ draw z3{up}...z0{dir(-b/2)}...{up}z1;
+ proof_labels(
+ 0,
+ 1,
+ 2,
+ 3,
+ 4,
+ );
+ numeric a, b, c;
+endchar;
+
+
+
+% beginchar (86, 8.183u#, x_height#+2u#, 0.000u#);
+% "crucicula";
+% italcorr .95*slant*(x_height#+2u#)-.5u#;
+% % sposto in basso in modo da portare la parte alta della sbarra esattamante all'altezza di x-height
+% numeric Dy; Dy:=-0.294u; % questo valore e' x_height - y86\0\9
+% z86\0\0s = (1.096u,3.847u+Dy);
+% z86\0\0c1 = (1.158u,4.091u+Dy);
+% z86\0\0c2 = (1.174u,4.578u+Dy);
+% z86\0\0 = (1.309u,4.759u+Dy);
+% z86\0\1c1 = (1.617u,5.169u+Dy);
+% z86\0\1c2 = .6[z86\0\1,z86\1\0]; % (3.446u,4.972u+Dy);
+% z86\0\1 = (3.778u,4.620u+Dy);
+% z86\0\2c1 = (4.038u,4.344u+Dy);
+% z86\0\2c2 = (3.992u,3.724u+Dy);
+% z86\0\2 = (3.987u,3.365u+Dy);
+% z86\0\3c1 = (3.970u,2.083u+Dy);
+% z86\0\3c2 = (2.862u,1.876u+Dy);
+% z86\0\3 = (3.182u,0.956u+Dy);
+% z86\0\4c1 = (3.713u,-0.572u+Dy);
+% z86\0\4c2 = (5.729u,-0.142u+Dy);
+% z86\0\4 = (5.912u,1.317u+Dy);
+% z86\0\5c1 = (5.978u,1.848u+Dy);
+% z86\0\5c2 = (5.392u,2.353u+Dy);
+% z86\0\5 = (5.237u,2.883u+Dy);
+% z86\0\6c1 = (5.066u,3.471u+Dy);
+% z86\0\6c2 = (5.000u,4.200u+Dy);
+% z86\0\6 = (4.951u,4.810u+Dy+.25u);
+% z86\0\7 = (6.638u,4.906u+Dy+.25u);
+% z86\0\8c1 = (7.001u-.5u,4.931u+Dy+.25u);
+% z86\0\8c2 = (8.497u-.5u,5.042u+Dy);
+% z86\0\8 = (8.637u-.5u,5.342u+Dy);
+% z86\0\9c1 = (8.909u-.5u,5.926u+Dy);
+% z86\0\9c2 = (7.891u-.5u,5.894u+Dy);
+% z86\0\9 = (7.601u-.5u,5.894u+Dy);
+% z86\0\10 = (0.976u,5.894u+Dy);
+% z86\0\11c1 = (-0.741u,5.865u+Dy);
+% z86\0\11c2 = (0.138u,4.348u+Dy);
+% %
+% z86\1\0=z86\0\1+whatever*(z86\0\1-z86\0\2); y86\1\0=y86\0\9;
+% z86\1\1=z86\0\5+whatever*(z86\0\5-z86\0\6); y86\1\1=y86\1\0;
+% z86\1\3=z86\1\0+whatever*(z86\0\1-z86\0\2); y86\1\3=y86\1\2;
+% z86\1\2=z86\1\1+whatever*(z86\0\5-z86\0\6); y86\1\3=y86\1\0+x86\1\1-x86\1\0;
+% z86\1\3c1=z86\1\2+whatever*(z86\0\5-z86\0\6);
+% z86\1\3c2=z86\1\3+whatever*(z86\0\1-z86\0\2);y86\1\3c1=y86\1\3c2=y86\1\3+3/4(x86\1\1-x86\1\0);
+% fill_or_unfill z86\0\0s
+% ..controls z86\0\0c1 and z86\0\0c2..z86\0\0
+% ..controls z86\0\1c1 and z86\0\1c2..z86\0\1
+% --z86\0\2
+% ..controls z86\0\3c1 and z86\0\3c2..z86\0\3
+% ..controls z86\0\4c1 and z86\0\4c2..z86\0\4
+% ..controls z86\0\5c1 and z86\0\5c2..z86\0\5
+% ..controls z86\0\6c1 and z86\0\6c2..z86\0\6
+% --z86\0\7
+% ..controls z86\0\8c1 and z86\0\8c2..z86\0\8
+% ..controls z86\0\9c1 and z86\0\9c2..z86\0\9
+% --z86\1\1
+% --z86\1\2
+% ..controls z86\1\3c1 and z86\1\3c2..z86\1\3
+% --z86\1\0
+% --z86\0\10
+% ..controls z86\0\11c1 and z86\0\11c2..cycle;
+% proof_labels (
+% 86\0\0,
+% 86\0\1,
+% 86\0\2,
+% 86\0\3,
+% 86\0\4,
+% 86\0\5,
+% 86\0\6,
+% 86\0\7,
+% 86\0\8,
+% 86\0\9,
+% 86\0\10,
+% 86\0\11,
+% 86\1\0,
+% 86\1\1,
+% 86\1\2,
+% 86\1\3,
+% );
+% endchar;
+%
+
+
+
+%input coptelig; % le inserisco direttamente, anche perche' sono legature per modo di dire
+
+%% Ligatures for Coptic fonts
+
+
+beginchar (115, 0u#, 0u#, 0.0u#); % carattere invisibile per le legature ks e ps
+ "s";
+ z163\0\0 = (6.487u,4.730u);
+ z163\0\1 = (2.477u,0.331u);
+ draw z163\0\0..z163\0\1;
+ proof_labels (
+);
+endchar;
+
+beginchar (83, 0u#, 0u#, 0.0u#);% carattere invisibile per le legature KS e PS
+ "S";
+ z123\0\0 = (6.487u,4.730u);
+ z123\0\1 = (2.477u,0.331u);
+ draw z123\0\0..z123\0\1;
+ proof_labels (
+);
+endchar;
+
+
+beginchar (49, 0u#, 0u#, 0.0u#);% carattere invisibile per la legatura thita1-->Thita
+ "1";
+ z163\0\0 = (6.487u,4.730u);
+ z163\0\1 = (2.477u,0.331u);
+ draw z163\0\0..z163\0\1;
+ proof_labels (
+);
+endchar;
+
+autorounding := 1; % 0 avant pour les deux!
+smoothing := 1;
+
+%mode_setup; %%% ????? chissa' perche' c'era questa nuova dichiarazione di mode_setup;
+ %%% il risultato era che metafont della versione teTeX di cygwin andava in errore
+
+beginchar(45, 5u#, 6u#, 0.000u#);
+"hyphen";
+italcorr .95*slant*x_height#-.5u#;
+pickup pencircle scaled 1u;
+stemh:=0.5h;
+z1= (0.2w,stemh) ; z2= (0.8w,stemh);
+draw z1..z2;
+endchar;
+
+beginchar(58,2u#,.55x_height#,0#); % ":" dell'encoding latino
+"very short dash";
+italcorr .7*slant*x_height#-.5u#;
+stemh:=0.8u;
+pickup pencircle scaled stemh;
+z1=(.5stemh,h-.5stemh); z2=(w-1.5stemh,h-.5stemh);
+draw z1--z2;
+endchar;
+
+beginchar(61, 3.5u#, x_height#, 0.000u#);
+"equal";
+italcorr .9*slant*x_height#-.5u#;
+stemd:=.7u;
+pickup pencircle scaled stemd;
+% ha:=0.65h;
+% hb:=0.35h;
+h/2=.5[ha,hb];
+ha-hb=2stemd;
+z1= (0.1w,ha-u/2) ; z2= (0.7w,ha+u/2);
+z3= (0.2w,hb-u/2) ; z4= (0.8w,hb+u/2);
+draw z1..z2;
+draw z3..z4;
+endchar;
+
+beginchar(46,4u#,x_height#,0#); % "." dell'encoding latino
+"litera omissa";
+stemh:=1.1u;
+pickup pencircle scaled stemh;
+z1=(w/2,.5stemh); ;
+draw z1;
+endchar;
+
+
+beginchar(91,3u#,ascender_height#,descender_depth#);
+"quadra aperta";
+italcorr 1.5*slant*ascender_height#-.5u#;
+numeric q_w; q_w=.9u;
+pickup pencircle scaled q_w;
+z1=(w-.75u,h-q_w/2);
+z2=(q_w/2,h-q_w/2);
+z3=(q_w/2,q_w/2-d);
+z4=(w-.75u,q_w/2-d);
+draw z1--z2--z3--z4;
+penlabels(1,2,3,4);
+endchar;
+
+
+beginchar(93,3u#,ascender_height#,descender_depth#);
+"quadra clausa";
+italcorr 1.5*slant*ascender_height#-.5u#;
+numeric q_w; q_w=.9u;
+pickup pencircle scaled q_w;
+z1=(.75u,h-q_w/2);
+z2=(w-q_w/2,h-q_w/2);
+z3=(w-q_w/2,q_w/2-d);
+z4=(.75u,q_w/2-d);
+draw z1--z2--z3--z4;
+penlabels(1,2,3,4);
+endchar;
+
+
+beginchar(33,.75x_height#,x_height#,0u#);
+"tre punti verso sinistra";
+italcorr 1.75*slant*x_height#-.5u#;
+numeric dstem; dstem:=1.5u;
+x1=x2=w-dstem/2;
+y1=h-y2=dstem/2;
+z3=z1+whatever*dir(-30)=z2+whatever*dir(+30);
+pickup pencircle scaled dstem;
+draw z1; draw z2; draw z3;
+proof_labels(
+ 1,
+ 2,
+ 3,
+);
+endchar;
+
+beginchar(34,.75x_height#,x_height#,0u#);
+"tre punti verso destra";
+italcorr 1.75*slant*x_height#-.5u#;
+numeric dstem; dstem:=1.5u;
+x1=x2=+dstem/2;
+y1=h-y2=dstem/2;
+z3=z1+whatever*dir(+30)=z2+whatever*dir(-30);
+pickup pencircle scaled dstem;
+draw z1; draw z2; draw z3;
+proof_labels(
+ 1,
+ 2,
+ 3,
+);
+endchar;
+
+
+beginchar(22, 5u#, 1.3u#, 0u#);
+"macron accent";
+pickup pencircle scaled 1u;
+z1= (u/2,h-u/2) ; z2= (w-u/2,h-u/2);
+draw z1--z2;
+endchar;
+
+beginchar(21, 1.8u#, 7u#, 0u#);
+"diaeresis accent";
+italcorr 1.15*slant*ascender_height#-.5u#;
+pickup pencircle scaled u;
+z1= (u/2,h-u/2) ; z2= (w-u/2,h-u/2);
+draw z1; draw z2;
+endchar;
+
+beginchar(96,2u#,8.1u#,0u#);
+"grave accent";
+numeric acc_tilt, stemu, stemd, stemp, xref_point, yref_point;
+ acc_tilt:=55; stemu:=1.4u; stemd:=.3u; stemp:=03u;
+ z96\1\0-z96\1\1=stemu*dir(acc_tilt+180);
+ x96\1\0=0.65u; y96\1\0=h-stemu;
+ z96\1\2-z96\1\3=stemd*dir(acc_tilt+180);
+ xref_point=x96\1\0;yref_point=y96\1\0;
+ z96\1\2=(xref_point+2u,yref_point-stemu+2stemd);
+ z96\1\1c1=stemu*dir(angle(z96\1\0-z96\1\2))+z96\1\0;
+ z96\1\1c2=stemu*dir(angle(z96\1\1-z96\1\3))+z96\1\1;
+ fill_or_unfill z96\1\0--z96\1\2--z96\1\3--z96\1\1
+ ..controls z96\1\1c2 and z96\1\1c1..cycle;
+ proof_labels(z96\0\2,
+ z96\0\2,
+ z96\0\1,
+ z96\0\1,
+ );
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ligtable "8": "1"=:40; % Thida
+ligtable "k": "s"=:41; % exi
+ligtable "K": "S"=:42, "s"=:42; % Exi
+ligtable "p": "1"=:43, "s"=:35; % phi, epsi
+ligtable "P": "1"=:44, "S"=:36, "s"=:36; % Phi, Epsi
+ligtable "d": "j"=:59, "1"=:59; % djandja
+ligtable "D": "J"=:60, "j"=:60, "1"=:60; % Djandja
+ligtable "h": "1"=:47, "j"=:106, "2"=:"2"; % hori, hei, khori
+ligtable "H": "1"=:48, "J"=:74, "j"=:74, "2"=:54; % Hori, Hei, Khori
+ligtable "t": "j"=:51, "a" kern -0.5u#; % ti
+ligtable "T": "J"=:52, "j"=:52; % Ti
+
+font_quad 10u#;
+font_normal_space 4u#;
+font_normal_stretch 2u#;
+font_normal_shrink 2u#;
+font_extra_space 1u#;
+font_x_height x_height#;
+font_slant slant;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/fic_mic.mf b/Master/texmf-dist/fonts/source/public/cc-pl/fic_mic.mf
new file mode 100644
index 00000000000..92738b31a27
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/fic_mic.mf
@@ -0,0 +1,80 @@
+% ---------------------------------------------------------------------------
+%%% input use_driver
+% This is an auxiliary file which prepares reading a CC parameter file using
+% a sneaky-tricky method. Every PC parameter file (such as PCR10, PLCSC10,
+% ..., etc.) inputs this file, optionally changes some parameters, and
+% then calls the macro |use_driver|.
+% ---------------------------------------------------------------------------
+% AUTHORS: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% In particular, only the authors are entitled to modify this file.
+%
+% For details see MeXINFO.ENG.
+% ---------------------------------------------------------------------------
+% HISTORY:
+% 7 Jul 1992: version 1.0
+% 18 Dec 1992: version 1.01
+% possibility of arbitrary rescaling added: the value of |basic_unit#| can
+% be used to override default |pt#| basic unit (suggestion of M. \L{}akomy);
+% cf. the sample file DCR10.MF producing a |10dd#| roman font
+% ---------------------------------------------------------------------------
+if unknown cmbase: input cmbase fi;
+
+string driver_name,ss; numeric ii;
+
+vardef generate @# = driver_name:=str @#; endgroup enddef;
+
+vardef use_driver @# =
+% |@#| either is empty or is equal to the pt-size of a respective
+% CM parametric file
+ if unknown param_base:
+% in sophisticated applications a user may wish to specify
+% |param_base| prior to calling |use_driver|:
+ string param_base; param_base=jobname;
+ fi
+ ii:=0;
+ forever:
+ ii:=ii+1;
+ ss:=substring(length(param_base)-ii,length(param_base)-ii+1) of param_base;
+ exitif (ss<"0") or (ss>"9");
+ endfor;
+ ii:=ii-1;
+ if unknown basic_unit#: basic_unit#=pt#; fi % i.e., |basic_unit#:=1|
+ numeric scale;
+ if str@# <> "":
+ scale=basic_unit#*scantokens(
+ substring(length(param_base)-ii,length(param_base)) of param_base)/@#;
+ ss:="input cc"&(substring(2,length(param_base)-ii) of param_base)&str @#;
+ else:
+ scale:=basic_unit#;
+ ss:="input cc"&(substring(2,length(param_base)) of param_base);
+ fi
+
+% |ogonek_pen#| is the only sharp extra PL parameter;
+% it must be rescaled separately:
+ if known ogonek_pen#: ogonek_pen#:=scale*ogonek_pen#; fi
+% input the original driver, possibly rescaling:
+ numeric true_pt#; true_pt#=pt#;
+ pt#:=scale*true_pt#; scantokens(ss); pt#:=true_pt#;
+
+ if (basic_unit#<>pt#):
+ message "Actual font size is " & decimal(designsize) & "pt#";
+ message "";
+ fi
+
+ font_identifier:=substring(0,length(param_base)-ii) of param_base;
+ scantokens("input "&
+ if driver_name="roman": "polan"
+ elseif driver_name="textit": "polkur"
+ elseif driver_name="mathsy": "polmat"
+ elseif driver_name="title": "poltyt"
+ elseif driver_name="csc": "polkap"
+ else: driver_name fi);
+
+enddef;
+
+endinput;
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/g300pc.mfj b/Master/texmf-dist/fonts/source/public/cc-pl/g300pc.mfj
new file mode 100644
index 00000000000..e1ce3d7f9d4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/g300pc.mfj
@@ -0,0 +1,14 @@
+%
+% generating PC fonts (example for MFjob)
+% for 300dpi HP laser printer (BJ & MR)
+%
+input [modes];
+{
+fonts=pccsc# % concrete caps and small caps
+ pcr# % concrete roman
+ pcti# % concrete text italic
+ pcsl# % concrete slanted
+ pcslc#; % concrete slanted condensed
+lj;
+{mag=s0;}
+}
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/g600pc.mfj b/Master/texmf-dist/fonts/source/public/cc-pl/g600pc.mfj
new file mode 100644
index 00000000000..830a0ca3f73
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/g600pc.mfj
@@ -0,0 +1,14 @@
+%
+% generating PC fonts (example for MFjob)
+% for 600dpi HP laser printer (BJ & MR)
+%
+input [modes];
+{
+fonts=pccsc# % concrete caps and small caps
+ pcr# % concrete roman
+ pcti# % concrete text italic
+ pcsl# % concrete slanted
+ pcslc#; % concrete slanted condensed
+ljh;
+{mag=s0;}
+}
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pccsc10.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pccsc10.mf
new file mode 100644
index 00000000000..60ed40f2b44
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pccsc10.mf
@@ -0,0 +1,10 @@
+%%% input use_driver
+%%% fine lower
+% see the respective CC file
+input fic_mic;
+ogonek_pen#:=10/36pt#;
+top_breadth_corr:=1.1;
+post_lightness:=.64;
+pre_lightness:=.9;
+lower.cap_flat:=0;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcmi10.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcmi10.mf
new file mode 100644
index 00000000000..9e801ee015e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcmi10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcr10.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcr10.mf
new file mode 100644
index 00000000000..eb0a83a1c64
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcr10.mf
@@ -0,0 +1,8 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic;
+ogonek_pen#:=10/36pt#;
+top_breadth_corr:=1.1;
+post_lightness:=.64;
+pre_lightness:=.9;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcr5.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcr5.mf
new file mode 100644
index 00000000000..99c38e99e48
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcr5.mf
@@ -0,0 +1,9 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic;
+depth_corr:=1.2;
+ogonek_pen#:=5/36pt#;
+top_breadth_corr:=1.1;
+post_lightness:=.64;
+pre_lightness:=.9;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcr6.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcr6.mf
new file mode 100644
index 00000000000..2ae465362df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcr6.mf
@@ -0,0 +1,9 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic;
+depth_corr:=1.15;
+ogonek_pen#:=6/36pt#;
+top_breadth_corr:=1.1;
+post_lightness:=.64;
+pre_lightness:=.9;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcr7.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcr7.mf
new file mode 100644
index 00000000000..09161e8d20a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcr7.mf
@@ -0,0 +1,9 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic;
+depth_corr:=1.1;
+ogonek_pen#:=7/36pt#;
+top_breadth_corr:=1.1;
+post_lightness:=.64;
+pre_lightness:=.9;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcr8.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcr8.mf
new file mode 100644
index 00000000000..64918856e46
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcr8.mf
@@ -0,0 +1,9 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic;
+depth_corr:=1.05;
+ogonek_pen#:=8/36pt#;
+top_breadth_corr:=1.1;
+post_lightness:=.64;
+pre_lightness:=.9;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcr9.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcr9.mf
new file mode 100644
index 00000000000..8f21a3ba26a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcr9.mf
@@ -0,0 +1,8 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic;
+ogonek_pen#:=9/36pt#;
+top_breadth_corr:=1.1;
+post_lightness:=.64;
+pre_lightness:=.9;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcsl10.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcsl10.mf
new file mode 100644
index 00000000000..b917b368a24
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcsl10.mf
@@ -0,0 +1,8 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic;
+ogonek_pen#:=9/36pt#;
+top_breadth_corr:=1.1;
+post_lightness:=.72;
+pre_lightness:=.92;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcslc9.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcslc9.mf
new file mode 100644
index 00000000000..b917b368a24
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcslc9.mf
@@ -0,0 +1,8 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic;
+ogonek_pen#:=9/36pt#;
+top_breadth_corr:=1.1;
+post_lightness:=.72;
+pre_lightness:=.92;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cc-pl/pcti10.mf b/Master/texmf-dist/fonts/source/public/cc-pl/pcti10.mf
new file mode 100644
index 00000000000..de600e86b7c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cc-pl/pcti10.mf
@@ -0,0 +1,11 @@
+%%% input use_driver
+% see the respective CC file
+input fic_mic;
+ogonek_pen#:=5/36pt#;
+post_lightness:=.6;
+pre_lightness:=.88;
+left_corr:=0.8;
+tip_ycorr:=1.1;
+tip_breadth_corr:=.94;
+post_angle:=62;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cchess/cchess46.mf b/Master/texmf-dist/fonts/source/public/cchess/cchess46.mf
new file mode 100644
index 00000000000..e974fe02319
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cchess/cchess46.mf
@@ -0,0 +1,3 @@
+FontSize := 46pt#;
+font_identifier:="cchess46";
+input ccpieces; end.
diff --git a/Master/texmf-dist/fonts/source/public/cchess/ccpieces.mf b/Master/texmf-dist/fonts/source/public/cchess/ccpieces.mf
new file mode 100644
index 00000000000..0b6a78d881e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cchess/ccpieces.mf
@@ -0,0 +1,1173 @@
+mode_setup;
+message "pixels_per_inch="; show pixels_per_inch; message " ";
+showvariable FontSize; message " ";
+smoothing:=1;
+
+FS#:=FontSize/400; % unite employee sur le papier graphique de depart
+max_rayon#:=220FS#; % rayon du plus grand cercle entrant dans la boite de caractere
+max_diametre#:=2*max_rayon#;
+define_pixels(FS,max_rayon,max_diametre);
+SF:=1/FS; % = number of drawing units per pixel
+ % in our particular coordinate system, if we want to
+ % move by 1 pixel, we must move by this quantity.
+pair piece_center; piece_center=(max_rayon,0); % center of each piece:
+pickup pencircle scaled 5FS; normal_pen := savepen;
+pickup pencircle scaled 1; fine_pen := savepen;
+transform basic_transform;
+basic_transform = identity scaled FS shifted piece_center;
+diametre=0.985*max_diametre#/FS#;
+epaisseur_de_la_bordure=0.033*max_diametre#/FS#;
+
+def BaseBlanche =
+ currenttransform := basic_transform;
+ % apres currenttransform:=... on ne specifie plus les unites. FS est sous-entendu
+ fill fullcircle scaled diametre;
+ unfill fullcircle scaled (diametre-epaisseur_de_la_bordure);
+% fill fullcircle scaled 435; unfill fullcircle scaled 425;
+ pickup normal_pen;
+enddef;
+
+def BaseNoire =
+ currenttransform := basic_transform;
+ fill fullcircle scaled diametre;
+ unfill fullcircle scaled (diametre-epaisseur_de_la_bordure);
+ fill fullcircle scaled (diametre-2 epaisseur_de_la_bordure);
+% fill fullcircle scaled 435; unfill fullcircle scaled 425;
+% fill fullcircle scaled 415;
+ pickup normal_pen;
+enddef;
+
+def BaseNoireBlanche =
+ currenttransform := basic_transform;
+ fill fullcircle scaled diametre;
+ unfill fullcircle scaled (diametre-1.2 epaisseur_de_la_bordure);
+ fill fullcircle scaled (diametre-2 epaisseur_de_la_bordure);
+ unfill fullcircle scaled (diametre-3.2 epaisseur_de_la_bordure);
+% fill fullcircle scaled 435; unfill fullcircle scaled 422;
+% fill fullcircle scaled 415; unfill fullcircle scaled 402;
+ pickup normal_pen;
+enddef;
+
+%---------------------------
+
+beginchar ("J",max_diametre#,max_rayon#,max_rayon#); "sig"; % "Jacques Richer";
+ BaseNoire;
+ pickup fine_pen;
+ undraw (-2SF,1SF)..(-2SF,0)..(0,0)---(0,4SF)---(2SF,4SF)..(2SF,2SF)---(0,2SF);
+ undraw (1SF,2SF)..(3SF,-0.7SF);
+endchar;
+
+beginchar ("0",max_diametre#,max_rayon#,max_rayon#); "Masque noir/black mask";
+ currenttransform := basic_transform;
+ fill fullcircle scaled 437;
+endchar;
+
+
+beginchar ("K",max_diametre#,max_rayon#,max_rayon#); "General noir/black king";
+ BaseNoire;
+% Correction: le dessin doit etre tourne de 90 degres vers la droite!
+ currenttransform := currenttransform rotatedaround (piece_center,-90);
+% base (jambes)
+ unfilldraw (82,-45)..(97,-34)..(95,-25)..tension 2
+ ..(90,-16){left}..(82,-17)..(70,-18)--(13,-18)
+ ..(-40,-17)..(-66,-14)..(-77,0)..(-80,41)
+ ..(-82,68)..(-90,97)..(-103,105){left}
+ ..(-113,100)..(-114,88)..(-108,71)
+ ..{down}(-100,23)..{down}(-115,-27)
+ ..{right}(-100,-43)..{right}(-76,-41)
+ ..(-57,-44){dir -45}
+ ..{down}(-51,-56) % left leg
+ ..(-56,-62) % left foot
+ --(-78,-63)..tension 1.5
+ ..{down}(-92,-80)..(-75,-100){right}..(-51,-93)
+ ..(-27,-84) % {dir 45}
+ ..(-23,-72){up}..(-28,-56){up}..(-16,-42){right}
+ ..(-7,-50)..(-1,-68){down}..(-2,-80){down}..tension 2
+ ..(12,-89)--(49,-100)..(72,-106){right}..(86,-93){up}
+ ..(81,-77){dir 135}..(67,-71)--(26,-66)..(19,-52){up}
+ ..(27,-44)--(66,-44)
+ ..cycle;
+% axe vertical central et arc en haut a droite
+ unfilldraw (70,-7)..tension 1.5
+ ..(100,0)..tension 1.5..(103,41){up}..(96,73)
+ ..(73,98)..(50,106)
+ ..{curl0}(14,110){up}..(16,126){up}
+ ..(12,139)..(1,146){left}
+ ..(-10,140)..(-12,130){down}..{curl0}(-11,110){curl0}
+ ..(-27,103)..(-39,93){down}..tension 1.5..(-27,76)
+ ..(-14,69)..(-9,48)..(-8,20)
+ ..{curl0}(-10,1)--(21,-2) % remontee axe central
+ ..(16,5)..(10,28){up}
+ ..{curl 0.5}(11,71){curl 1.5}..(22,78)..(37,79){right}
+ ..(67,68){dir -45}..(79,36){down}..(77,16)
+ ..{curl0}cycle;
+ unfilldraw (-31,120){curl 0.5} % tache gauche en haut
+ ..(-34,130)..(-42,133){left}
+ ..(-54,130)..(-70,112)..(-72,100)
+ ..(-63,92){right}..tension 1.3..(-54,96)..tension 1.5
+ ..cycle;
+ unfilldraw (-43,41){curl1.3} % tache gauche du milieu
+ ..(-37,60){up}..tension 2
+ ..(-46,83)..tension 2..(-54,76)..(-66,57)
+ ..(-68,50){down}..(-59,42)..(-44,41){right}
+ ..cycle;
+ unfilldraw (-21,1){curl0.5} % tache gauche en bas
+ ..(-35,23)..(-50,31){left}..(-59,29)..tension 2
+ ..(-62,-2){curl 0.1}..(-46,-5){right}
+ ..{curl0.3}cycle;
+ unfilldraw (32,11){right}
+ ..(43,19)..tension 1.3 ..(48,34)..tension 1.3
+ ..(55,50)..{curl0.7}(58,65){curl0.7}
+ ..(37,55)..tension 1.5..(18,35)..tension 2
+ ..cycle;
+endchar;
+
+beginchar ("k",max_diametre#,max_rayon#,max_rayon#); "General rouge/red king";
+ BaseBlanche; % j'ai code le dessin a l'envers!
+ currenttransform := currenttransform rotatedaround (piece_center,180);
+ filldraw (-50,-126)..(-42,-100){up}..{curl0}(-43,-81){dir -4}
+ ..(-24,-84)..{curl0}(-11,-91){curl0}..(0,-81)..(7,-66){up}
+ ..(1,-34){up}..(5,-10)..(12,7)--(-5,23)..(-15,14)
+ ..(-20,-1)..{curl0.8}(-23,-48)
+ ..{curl0.2}(-43,-62){curl0.2} % monte tronc principal
+ ..tension 2.5..(-46,69)..(-53,86){left}..(-79,71)--(-80,-50)
+ ..(-84,-60)..(-101,-56)..(-108,-37)..(-107,18){up}..(-122,30){left}
+ ..(-139,13){down}..(-137,-20)..{curl0}(-128,-56){curl0}..(-143,-60)
+ --(-129,-85){curl0.2}..(-110,-82)..(-90,-81)..(-81,-86)
+ --(-81,-107)--cycle;
+ filldraw (100,-107){curl0.5} % structure de droite
+ ..tension2..(112,-76)..tension3..(100,66)
+ ..{curl0.2}(101,75){curl0.2}..tension 3..(82,88){curl0.3}
+ ..(79,84)..(73,78)--(27,57){dir -100}..(23,46)..(21,29)
+ ..{curl0.5}(21,2)--(32,-3){dir 40}..tension 1.5..(50,3)
+ ..{curl0.3}(77,8){curl0.3}..(77,-6)
+ --(40,-18){curl0}..tension 2..(28,-22)..tension 2..(22,-32)
+ ..tension 2..(22,-60)..tension 2..(40,-68)--(82,-63)
+ --(80,-79)..(42,-82)..(28,-88)..tension2..(22,-98){curl0}
+ --(73,-97)..tension 1.2
+ ..{curl0.2}cycle;
+ pickup fine_pen;
+ unfilldraw (76,33)..tension 3..(72,49)..tension 3 % trou du haut
+ ..(47,43)..tension 3..(46,24)..tension 3
+ ..cycle;
+ unfilldraw (78,-33){up}..tension 0.8 % trou du bas
+ ..(72,-28)..tension 3
+ ..(52,-33)..tension 0.8..(46,-42)..tension 0.8
+ ..(51,-47)..tension 3..(73,-40)
+ ..cycle;
+endchar;
+
+beginchar ("S",max_diametre#,max_rayon#,max_rayon#); "General noir/black king sur fond blanc";
+ BaseNoireBlanche;
+% Correction: le dessin doit etre tourne de 90 degres vers la droite!
+ currenttransform := identity rotated -90 scaled FS shifted ( piece_center - (8FS,0));
+% base (jambes)
+ filldraw (82,-45)..(97,-34)..(95,-25)..tension 2
+ ..(90,-16){left}..(82,-17)..(70,-18)--(13,-18)
+ ..(-40,-17)..(-66,-14)..(-77,0)..(-80,41)
+ ..(-82,68)..(-90,97)..(-103,105){left}
+ ..(-113,100)..(-114,88)..(-108,71)
+ ..{down}(-100,23)..{down}(-115,-27)
+ ..{right}(-100,-43)..{right}(-76,-41)
+ ..(-57,-44){dir -45}
+ ..{down}(-51,-56) % left leg
+ ..(-56,-62) % left foot
+ --(-78,-63)..tension 1.5
+ ..{down}(-92,-80)..(-75,-100){right}..(-51,-93)
+ ..(-27,-84) % {dir 45}
+ ..(-23,-72){up}..(-28,-56){up}..(-16,-42){right}
+ ..(-7,-50)..(-1,-68){down}..(-2,-80){down}..tension 2
+ ..(12,-89)--(49,-100)..(72,-106){right}..(86,-93){up}
+ ..(81,-77){dir 135}..(67,-71)--(26,-66)..(19,-52){up}
+ ..(27,-44)--(66,-44)
+ ..cycle;
+% axe vertical central et arc en haut a droite
+ filldraw (70,-7)..tension 1.5
+ ..(100,0)..tension 1.5..(103,41){up}..(96,73)
+ ..(73,98)..(50,106)
+ ..{curl0}(14,110){up}..(16,126){up}
+ ..(12,139)..(1,146){left}
+ ..(-10,140)..(-12,130){down}..{curl0}(-11,110){curl0}
+ ..(-27,103)..(-39,93){down}..tension 1.5..(-27,76)
+ ..(-14,69)..(-9,48)..(-8,20)
+ ..{curl0}(-10,1)--(21,-2) % remontee axe central
+ ..(16,5)..(10,28){up}
+ ..{curl 0.5}(11,71){curl 1.5}..(22,78)..(37,79){right}
+ ..(67,68){dir -45}..(79,36){down}..(77,16)
+ ..{curl0}cycle;
+ filldraw (-31,120){curl 0.5} % tache gauche en haut
+ ..(-34,130)..(-42,133){left}
+ ..(-54,130)..(-70,112)..(-72,100)
+ ..(-63,92){right}..tension 1.3..(-54,96)..tension 1.5
+ ..cycle;
+ filldraw (-43,41){curl1.3} % tache gauche du milieu
+ ..(-37,60){up}..tension 2
+ ..(-46,83)..tension 2..(-54,76)..(-66,57)
+ ..(-68,50){down}..(-59,42)..(-44,41){right}
+ ..cycle;
+ filldraw (-21,1){curl0.5} % tache gauche en bas
+ ..(-35,23)..(-50,31){left}..(-59,29)..tension 2
+ ..(-62,-2){curl 0.1}..(-46,-5){right}
+ ..{curl0.3}cycle;
+ filldraw (32,11){right}
+ ..(43,19)..tension 1.3 ..(48,34)..tension 1.3
+ ..(55,50)..{curl0.7}(58,65){curl0.7}
+ ..(37,55)..tension 1.5..(18,35)..tension 2
+ ..cycle;
+endchar;
+
+beginchar ("G",max_diametre#,max_rayon#,max_rayon#); "Lettre noir/black guard";
+ BaseNoire;
+ z1=(112,22);
+ unfilldraw z1{curl 0.1}..controls(115,41)
+ ..{curl 0.2}(127,60){curl 0.2}
+ ..(84,60){dir 182}
+ ..(27,63)
+ ...(17,121) % 3
+ ...(-20,121) ..tension 1.5
+ ..(-33,53) ..tension 1.5 %5
+ ..(-70,53) ..tension 2 %5.5
+ ..(-96,60) %6
+ ...(-112,42)..tension 2
+ ..(-133,10)..tension 2 %8
+ ..(-105,13)..tension 2 %8.5
+ ..(-80,20)..tension 2
+ ..(-33,17)..tension 2
+ ..(-30,-34)..tension 2
+ ..(-78,-37)
+ ...(-95,-40) ..tension 2
+ ..(-120,-60){curl0} ..controls (-107,-66)
+ ..{curl 0.3}(-96,-81){curl 0.3} .. controls (-63,-70) and (-40,-67)
+ ..(-2,-66)..controls(63,-68)
+ ..(80,-77)
+ ...(93,-59)
+ ...{curl 0.05}(100,-38){curl 0.05}
+ ...(67,-34)
+ ...(29,-31)..tension 1.5
+ ..(28,26){curl 0.4} .. tension 1.7
+ ..(92,27)
+ .. cycle;
+endchar;
+
+beginchar ("g",max_diametre#,max_rayon#,max_rayon#); "Lettre rouge/red guard";
+ BaseBlanche;
+ filldraw (121,24){curl 0.2}..controls(128,34)
+ ..(140,42) %2
+ ..(140,52) %3
+ ..(127,52) ..tension 1.4 %4
+ ..(100,53) ..tension 1.4 %5
+ ..(74,52) %6
+ ..(66,79) ..tension 1.3 %7
+ ..(42,94) ..tension 1.2 %8
+ ..(14,77) %9
+ ..(13,62) %10
+ ..(2,51) ..tension 2 %11
+ ..(-31,52) ..tension 0.8 %12
+ ..(-40,70)..controls (-42,86) %13
+ ..(-56,92) %14
+ ..(-84,96) %15
+ ..(-100,93) % 15.2
+ ..(-117,81) % 15.4
+ ..(-122,66) %16
+ ..(-112,62) %17
+ ..(-85,56) %18
+ ..(-80,39) ..tension 1.5 %19
+ ..(-81,-60) ..tension 1.5 %20
+ ..(-81,-76) ..tension 2 %21
+ ..{curl 0.1}(-62,-98){curl 0.1} %22 bas du cmax_rayon
+ ..{curl 0.5}(-48,-87){curl 0.5} %23
+ ..{curl 0.1}(-44,-65){curl 0.1} %24
+ ..{curl 0.3}(-32,-71){curl 0.5} %25
+ ..(0,-60) ..tension 2 %26
+ ..(67,-60) %27
+ ..{curl 0.1}(101,-68) %28 bas du pied droit
+ ..(113,-56)
+ ..(122,-38) %30
+ ..(103,-33)..tension 1.5
+ ..{left}(66,-39) %32
+ ..(59,-37) % 32.5
+ ..(60,-28)..tension 2 %33
+ ..(62,10) %34
+ ..(78,28)..tension 1.5
+ ..(112,29)
+ ..cycle;
+ unfilldraw (15,20)..tension 1.5
+ ..(16,28)..tension 1.5
+ ..(9,29)..tension 1.5
+ ..(-15,23)
+ ..(-32,16)
+ ..(-40,6)..tension 2
+ ..(-45,-37)
+ ..{curl 0.5}(-43,-47){curl 0.5}
+ ..{curl 0.5}(-33,-37){curl 0}
+ ..(-22,-38)..tension 1.5
+ ..(-1,-39)..tension 0.8
+ ..(14,-27)..tension 2
+ ..(13,0)..tension 2
+ ..cycle;
+endchar;
+
+beginchar ("T",max_diametre#,max_rayon#,max_rayon#); "Lettre noir/black guard sur fond blanc";
+ BaseNoireBlanche;
+ z1=(112,22);
+ filldraw z1{curl 0.1}..controls(115,41)
+ ..{curl 0.2}(127,60){curl 0.2}
+ ..(84,60){dir 182}
+ ..(27,63)
+ ...(17,121) % 3
+ ...(-20,121) ..tension 1.5
+ ..(-33,53) ..tension 1.5 %5
+ ..(-70,53) ..tension 2 %5.5
+ ..(-96,60) %6
+ ...(-112,42)..tension 2
+ ..(-133,10)..tension 2 %8
+ ..(-105,13)..tension 2 %8.5
+ ..(-80,20)..tension 2
+ ..(-33,17)..tension 2
+ ..(-30,-34)..tension 2
+ ..(-78,-37)
+ ...(-95,-40) ..tension 2
+ ..(-120,-60){curl0} ..controls (-107,-66)
+ ..{curl 0.3}(-96,-81){curl 0.3} .. controls (-63,-70) and (-40,-67)
+ ..(-2,-66)..controls(63,-68)
+ ..(80,-77)
+ ...(93,-59)
+ ...{curl 0.05}(100,-38){curl 0.05}
+ ...(67,-34)
+ ...(29,-31)..tension 1.5
+ ..(28,26){curl 0.4} .. tension 1.7
+ ..(92,27)
+ .. cycle;
+endchar;
+
+beginchar ("B",max_diametre#,max_rayon#,max_rayon#); "Elephant noir/black bishop";
+ BaseNoire;
+ unfilldraw (101,-61){curl 0.8}..tension 1.5..(128,-50)
+ ..(135,-42) % extremite de la grande queue de droite
+ ..(126,-32)..tension 1.5..(91,-28)..tension 1.5..(58,-20)
+ ..(51,-14){curl 0.7}..(60,-6)..(72,13)..{curl 3}(72,29)
+ --(61,28) % haut de la petite queue de droite
+ ..tension 1.5 ..(56,20)..(50,7)..(39,-8){curl 0.5}..tension 1.5
+ ..(27,8)..tension 1.5..(10,36)..tension 0.8..(13,39)
+ ---(66,40)..tension 0.8..(73,47)..tension 1.5
+ ..(73,65)..tension 1.5..(72,86)..tension 0.8
+ ..(68,89)---(30,92)
+ & (30,92){curl 0.8}..tension 1.5..(50,113)..tension 0.8
+ ..(48,122)..tension 1.5..(16,125)..tension 1.5..(-10,128)
+ ..(-25,126)..tension 1.5..(-51,110)---(-75,96)..(-88,88)
+ ..(-89,80)..tension 0.8 % extremite de la trompe
+ ..(-82,73)..{curl 0.8}(-68,78)
+ & (-68,78)..{curl 0.5}(-72,41){curl 2}..tension 1.2
+ ..(-60,36)..tension 2..(-40,37)..tension 2..(-12,39)
+ &(-12,39)..tension 2 % patte du haut
+ ..(-43,16)..controls(-51,13)..(-63,13)..controls(-70,12)
+ ..(-78,9)..(-80,-4)..tension 1.2..(-67,-8)..tension 1.2
+ ..(-40,-1)..tension 2..(-13,13)..tension 0.8
+ ..(-4,12)..tension 2..(13,-18)..tension 0.8
+ ..(13,-28)..tension 1.5..(0,-55)..(-26,-72)..(-46,-78)
+ ..(-67,-76)..tension 1.5..(-85,-70)..tension 0.8
+ ..(-88,-74)..tension 1.5..(-70,-98)..tension 1.2
+ ..(-44,-105)..(8,-92)..(26,-77)..(42,-32)
+ & (42,-32)..controls (75,-46)..cycle;
+ filldraw (53,63) % oeil droit
+ ..(52,69)..tension 0.8..(46,73)..tension 1.5
+ ..(33,73)..tension 1.5..(17,73)..tension 0.8
+ ..(14,69)..tension 1.5..(16,61)..tension 0.8
+ ..(23,56)..tension 1.5..(34,56)..tension 1.5
+ ..(48,56)..tension 0.8..cycle;
+ filldraw (-12,62) % oeil gauche
+ ..(-13,68)..(-21,72)..tension 1.5..(-40,70){curl 2}..tension 0.8
+ ..(-47,61)..tension 0.8..{curl 2}(-44,52)..tension 3
+ ..(-25,53)..tension 3..(-14,53)..tension 0.8..(-11,56)
+ ..cycle;
+ filldraw (7,93)..tension 1.5 % interieur de la trompe
+ ..(16,103)..tension 0.8..(16,109)..tension 2
+ ..(-4,111)..tension 1.5..(-16,110)..tension 1.5
+ ..(-20,108)..tension 1.5..(-28,103)..tension 1.5
+ ..{curl 0.8}(-50,90){curl 0.8}..tension 2
+ ..(-20,91)..tension 1.2..(0,91)..tension 0.8..cycle;
+ unfilldraw (-8,-10)..tension 0.8 % pattes de gauche
+ ..(-22,-8)..(-33,-12)..(-60,-18)..{curl 0.5}(-84,-18)..tension 2
+ ..(-90,-28) ..tension 1.5..(-83,-36)..controls(-72,-35)
+ ..(-61,-32)..tension 2..(-34,-25)..tension 2
+ ..(-17,-22)..tension 0.8..(-14,-28)..tension 1.5
+ ..(-36,-38)..tension 1.5..(-50,-43)..controls(-72,-48)
+ ..(-90,-47)..tension 1.5..{curl 0.5}(-113,-46)..tension 2
+ ..(-120,-57)..tension 0.76..(-118,-62)..tension 1.5
+ ..(-107,-68)..(-98,-70){curl 2}..tension 2
+ ..(-50,-55)..tension 2..(-5,-38)..tension 0.8
+ ..(1,-30)..tension 0.8..(-2,-20)..tension 1.5..cycle;
+endchar;
+
+beginchar ("b",max_diametre#,max_rayon#,max_rayon#); "Elephant rouge/red bishop";
+ BaseBlanche;
+ filldraw (108,-65)..tension 2..(121,-48)..tension 3
+ ..(122,50)..(128,77) &
+ (128,77)..tension 2..(110,95)..tension 0.8
+ ..(99,97)..controls (85,94)..(62,93)..tension 3
+ ..(15,91)..tension 3..(0,69)..controls(6,60)and(7,45)
+ ..(8,32){down}..tension 2..(7,-35)..(1,-57) &
+ (1,-57)..tension 2..(13,-71)..(25,-75)..tension 1.3
+ ..(48,-65)..tension 2..{curl 1}(88,-58)..tension 1
+ ..(86,-50)..(83,-44) &
+ (83,-44)..tension 3..(37,-43)..tension 0.8
+ ..(32,-37)..controls(34,15)..(32,68)..tension 0.8
+ ..(40,73)..tension 2..(94,74)..tension 0.8
+ ..(98,68)---(101,-20)..controls (100,-32) and (98,-40)
+ ..(94,-46)..tension 3..cycle;
+ filldraw (25,-18)---(80,-11)..tension 2
+ ..(85,-5)..tension 2..(75,4)..tension 3..(25,6)--cycle;
+ filldraw (25,28)---(74,32)..tension 1.5
+ ..{curl 1.5}(84,49)---(25,50)--cycle;
+
+ % partie de gauche:
+ filldraw (-43,-86)..tension 2..(-30,-68)..tension 3
+ ..(-27,80)..(-44,92){left} ..(-53,89){dir 220} ..(-63,78) &
+ (-63,78)..(-58,70)..(-57,48)---(-55,-67)..tension 3..cycle;
+ filldraw (-124,-47)..tension 3..(-113,-56)..tension 1.5
+ ..(-88,-43)..(-57,3)..(-39,35) &
+ (-39,35)..(-13,4)..(16,-20)--(16,0)..(-10,29)..(-41,71) &
+ (-41,71)..tension 1.2..(-78,10)..(-99,-16)
+ ..{curl 0.9}(-121,-27)..tension 3..cycle;
+ filldraw (-104,50)..tension 1.5..(-98,40)..(-92,38)..tension 2
+ ..(-40,47)..tension 2..(0,50)..tension 2..(10,67) &
+ (10,67)..tension 2..(-40,66)..tension 2..(-75,69)
+ ..(-84,73)..{curl 0.8}(-90,73)..tension 3..cycle;
+endchar;
+
+beginchar ("U",max_diametre#,max_rayon#,max_rayon#); "Elephant noir/black bishop sur fond blanc";
+ BaseNoireBlanche;
+ filldraw (101,-61){curl 0.8}..tension 1.5..(128,-50)
+ ..(135,-42) % extremite de la grande queue de droite
+ ..(126,-32)..tension 1.5..(91,-28)..tension 1.5..(58,-20)
+ ..(51,-14){curl 0.7}..(60,-6)..(72,13)..{curl 3}(72,29)
+ --(61,28) % haut de la petite queue de droite
+ ..tension 1.5 ..(56,20)..(50,7)..(39,-8){curl 0.5}..tension 1.5
+ ..(27,8)..tension 1.5..(10,36)..tension 0.8..(13,39)
+ ---(66,40)..tension 0.8..(73,47)..tension 1.5
+ ..(73,65)..tension 1.5..(72,86)..tension 0.8
+ ..(68,89)---(30,92)
+ & (30,92){curl 0.8}..tension 1.5..(50,113)..tension 0.8
+ ..(48,122)..tension 1.5..(16,125)..tension 1.5..(-10,128)
+ ..(-25,126)..tension 1.5..(-51,110)---(-75,96)..(-88,88)
+ ..(-89,80)..tension 0.8 % extremite de la trompe
+ ..(-82,73)..{curl 0.8}(-68,78)
+ & (-68,78)..{curl 0.5}(-72,41){curl 2}..tension 1.2
+ ..(-60,36)..tension 2..(-40,37)..tension 2..(-12,39)
+ &(-12,39)..tension 2 % patte du haut
+ ..(-43,16)..controls(-51,13)..(-63,13)..controls(-70,12)
+ ..(-78,9)..(-80,-4)..tension 1.2..(-67,-8)..tension 1.2
+ ..(-40,-1)..tension 2..(-13,13)..tension 0.8
+ ..(-4,12)..tension 2..(13,-18)..tension 0.8
+ ..(13,-28)..tension 1.5..(0,-55)..(-26,-72)..(-46,-78)
+ ..(-67,-76)..tension 1.5..(-85,-70)..tension 0.8
+ ..(-88,-74)..tension 1.5..(-70,-98)..tension 1.2
+ ..(-44,-105)..(8,-92)..(26,-77)..(42,-32)
+ & (42,-32)..controls (75,-46)..cycle;
+ unfilldraw (53,63) % oeil droit
+ ..(52,69)..tension 0.8..(46,73)..tension 1.5
+ ..(33,73)..tension 1.5..(17,73)..tension 0.8
+ ..(14,69)..tension 1.5..(16,61)..tension 0.8
+ ..(23,56)..tension 1.5..(34,56)..tension 1.5
+ ..(48,56)..tension 0.8..cycle;
+ unfilldraw (-12,62) % oeil gauche
+ ..(-13,68)..(-21,72)..tension 1.5..(-40,70){curl 2}..tension 0.8
+ ..(-47,61)..tension 0.8..{curl 2}(-44,52)..tension 3
+ ..(-25,53)..tension 3..(-14,53)..tension 0.8..(-11,56)
+ ..cycle;
+ unfilldraw (7,93)..tension 1.5 % interieur de la trompe
+ ..(16,103)..tension 0.8..(16,109)..tension 2
+ ..(-4,111)..tension 1.5..(-16,110)..tension 1.5
+ ..(-20,108)..tension 1.5..(-28,103)..tension 1.5
+ ..{curl 0.8}(-50,90){curl 0.8}..tension 2
+ ..(-20,91)..tension 1.2..(0,91)..tension 0.8..cycle;
+ filldraw (-8,-10)..tension 0.8 % pattes de gauche
+ ..(-22,-8)..(-33,-12)..(-60,-18)..{curl 0.5}(-84,-18)..tension 2
+ ..(-90,-28) ..tension 1.5..(-83,-36)..controls(-72,-35)
+ ..(-61,-32)..tension 2..(-34,-25)..tension 2
+ ..(-17,-22)..tension 0.8..(-14,-28)..tension 1.5
+ ..(-36,-38)..tension 1.5..(-50,-43)..controls(-72,-48)
+ ..(-90,-47)..tension 1.5..{curl 0.5}(-113,-46)..tension 2
+ ..(-120,-57)..tension 0.76..(-118,-62)..tension 1.5
+ ..(-107,-68)..(-98,-70){curl 2}..tension 2
+ ..(-50,-55)..tension 2..(-5,-38)..tension 0.8
+ ..(1,-30)..tension 0.8..(-2,-20)..tension 1.5..cycle;
+endchar;
+
+beginchar ("N",max_diametre#,max_rayon#,max_rayon#); "cavalier noir/black knight";
+ BaseNoire;
+ unfilldraw (92,123)..tension 1.5
+ ..{curl 0.5}(83,136){curl 0.5}..tension 1.2
+ ..(38,132){left}..tension 1.2..(-47,142)
+ ..(-68,138)..tension 1.2..{curl 1.2}(-83,126){curl 1.2}
+ ..(-80,112)..(-72,58){down} % milieu du cote gauche
+ ..(-73,22)..(-74,13)..tension 1.3
+ ..{curl 0.7}(-56,3){curl 0.7}..tension 1.2
+ ..(3,10){right}..tension 1.5..(62,6)..(77,-12)..(72,-37)
+ ..(53,-60)..(10,-70){left} % bas du "5"
+ ..(-26,-67)..(-38,-61)..{curl 0.9}(-50,-52){curl 0.9}
+ ..(-58,-56)--(-65,-62)..tension 0.8..(-65,-72)..tension 1.5
+ ..(-34,-86)..(0,-93){right}..(22,-92)..tension 2..(78,-83)
+ ..(96,-66)..tension 1.2..(102,-37)..tension 1.2..(118,-1)
+ ..(119,8)..tension 2..(111,28)..(100,32)..(66,28)..tension 2
+ ..(35,28)..tension 0.8..(29,36)..tension 0.8
+ ..(37,45) % dent de droite en bas
+ --(71,46){curl0} ..tension 1.1..(82,53){up}..tension 1.1
+ ..{curl0}(70,60) --(36,60)..tension 0.8..(28,67)..tension 0.8
+ ..(38,75)--(74,75){curl0}..tension 1.1..(85,81)..tension 1.1
+ ..{curl0}(75,90)--(37,91)..tension 0.8..(29,101)..tension 0.8
+ ..(40,108)..tension 1.5..(84,111){curl 0.2}
+ ..tension1.5..cycle;
+ filldraw (-15,112)..tension 2.5..(-42,112)..tension 0.8
+ ..(-49,104)..tension 0.8..(-43,98)..tension 2
+ ..(-13,97)..tension 0.8..(-9,104)..tension 0.8
+ ..cycle;
+ filldraw (-14,78)..tension 2..(-43,79)..tension 0.8
+ ..(-48,73){down}..tension 0.8..(-43,63)..tension 2
+ ..(-14,63)..tension 0.8..(-11,71)..tension 0.8
+ ..cycle;
+ filldraw (-14,44)..tension 2..(-42,46)..tension 0.8
+ ..(-49,38)..tension 0.8..(-42,29)..tension 2
+ ..(-15,30)..tension 0.8..(-10,37)..tension 0.8
+ ..cycle;
+ % premiere patte (de droite a gauche)
+ unfilldraw (66,-43){curl 0.95}..tension 1.5
+ ..(53,-13)..tension 1.5..(41,-6)..tension 0.9
+ ..(36,-7)..tension 1.5..(42,-27)..tension 1.5
+ ..{curl 0.95}cycle;
+ % deuxieme patte
+ unfilldraw (30,-40){curl 0.9}..tension 1.7
+ ..(28,-20) ..tension 0.8..(20,-10)..tension 1.4
+ ..{curl 0.9}(2,-7){curl 0.9}..(1,-20)..tension 1.7
+ ..{curl 0.9}cycle;
+ % troisieme patte
+ unfilldraw (-42,-46){curl 0.8}..tension 2..(-8,-21)
+ ..tension 1.7..(-10,-8)..tension 1.7..(-30,-7)..tension 2
+ ..{curl 0.8}cycle;
+ % quatrieme patte (a gauche)
+ unfilldraw (-54,-12){curl0.7}..tension 1.5..(-74,-8)
+ ..tension 1.6..(-102,-33)..tension 1.7..(-143,-60)
+ ..(-149,-70)..(-140,-72)..tension 2.3..(-57,-34)..tension 1.2
+ ..{curl0.9}cycle;
+endchar;
+
+beginchar ("n",max_diametre#,max_rayon#,max_rayon#); "cavalier rouge/red knight";
+ BaseBlanche;
+ filldraw (92,123)..tension 1.5
+ ..{curl 0.5}(83,136){curl 0.5}..tension 1.2
+ ..(38,132){left}..tension 1.2..(-47,142)
+ ..(-68,138)..tension 1.2..{curl 1.2}(-83,126){curl 1.2}
+ ..(-80,112)..(-72,58){down} % milieu du cote gauche
+ ..(-73,22)..(-74,13)..tension 1.3
+ ..{curl 0.7}(-56,3){curl 0.7}..tension 1.2
+ ..(3,10){right}..tension 1.5..(62,6)..(77,-12)..(72,-37)
+ ..(53,-60)..(10,-70){left} % bas du "5"
+ ..(-26,-67)..(-38,-61)..{curl 0.9}(-50,-52){curl 0.9}
+ ..(-58,-56)--(-65,-62)..tension 0.8..(-65,-72)..tension 1.5
+ ..(-34,-86)..(0,-93){right}..(22,-92)..tension 2..(78,-83)
+ ..(96,-66)..tension 1.2..(102,-37)..tension 1.2..(118,-1)
+ ..(119,8)..tension 2..(111,28)..(100,32)..(66,28)..tension 2
+ ..(35,28)..tension 0.8..(29,36)..tension 0.8
+ ..(37,45) % dent de droite en bas
+ --(71,46){curl0} ..tension 1.1..(82,53){up}..tension 1.1
+ ..{curl0}(70,60) --(36,60)..tension 0.8..(28,67)..tension 0.8
+ ..(38,75)--(74,75){curl0}..tension 1.1..(85,81)..tension 1.1
+ ..{curl0}(75,90)--(37,91)..tension 0.8..(29,101)..tension 0.8
+ ..(40,108)..tension 1.5..(84,111){curl 0.2}
+ ..tension1.5..cycle;
+ unfilldraw (-15,112)..tension 2.5..(-42,112)..tension 0.8
+ ..(-49,104)..tension 0.8..(-43,98)..tension 2
+ ..(-13,97)..tension 0.8..(-9,104)..tension 0.8
+ ..cycle;
+ unfilldraw (-14,78)..tension 2..(-43,79)..tension 0.8
+ ..(-48,73){down}..tension 0.8..(-43,63)..tension 2
+ ..(-14,63)..tension 0.8..(-11,71)..tension 0.8
+ ..cycle;
+ unfilldraw (-14,44)..tension 2..(-42,46)..tension 0.8
+ ..(-49,38)..tension 0.8..(-42,29)..tension 2
+ ..(-15,30)..tension 0.8..(-10,37)..tension 0.8
+ ..cycle;
+ % premiere patte (de droite a gauche)
+ filldraw (66,-43){curl 0.95}..tension 1.5
+ ..(53,-13)..tension 1.5..(41,-6)..tension 0.9
+ ..(36,-7)..tension 1.5..(42,-27)..tension 1.5
+ ..{curl 0.95}cycle;
+ % deuxieme patte
+ filldraw (30,-40){curl 0.9}..tension 1.7
+ ..(28,-20) ..tension 0.8..(20,-10)..tension 1.4
+ ..{curl 0.9}(2,-7){curl 0.9}..(1,-20)..tension 1.7
+ ..{curl 0.9}cycle;
+ % troisieme patte
+ filldraw (-42,-46){curl 0.8}..tension 2..(-8,-21)
+ ..tension 1.7..(-10,-8)..tension 1.7..(-30,-7)..tension 2
+ ..{curl 0.8}cycle;
+ % quatrieme patte (a gauche)
+ filldraw (-54,-12){curl0.7}..tension 1.5..(-74,-8)
+ ..tension 1.6..(-102,-33)..tension 1.7..(-143,-60)
+ ..(-149,-70)..(-140,-72)..tension 2.3..(-57,-34)..tension 1.2
+ ..{curl0.9}cycle;
+endchar;
+
+beginchar ("V",max_diametre#,max_rayon#,max_rayon#); "cavalier noir/black knight sur fond blanc";
+% Pour l'instant, pratiquement identique au cavalier blanc.
+% Seule la patte de gauche est un peu plus longue, pour differencier.
+ BaseNoireBlanche;
+ filldraw (92,123)..tension 1.5
+ ..{curl 0.5}(83,136){curl 0.5}..tension 1.2
+ ..(38,132){left}..tension 1.2..(-47,142)
+ ..(-68,138)..tension 1.2..{curl 1.2}(-83,126){curl 1.2}
+ ..(-80,112)..(-72,58){down} % milieu du cote gauche
+ ..(-73,22)..(-74,13)..tension 1.3
+ ..{curl 0.7}(-56,3){curl 0.7}..tension 1.2
+ ..(3,10){right}..tension 1.5..(62,6)..(77,-12)..(72,-37)
+ ..(53,-60)..(10,-70){left} % bas du "5"
+ ..(-26,-67)..(-38,-61)..{curl 0.9}(-50,-52){curl 0.9}
+ ..(-58,-56)--(-65,-62)..tension 0.8..(-65,-72)..tension 1.5
+ ..(-34,-86)..(0,-93){right}..(22,-92)..tension 2..(78,-83)
+ ..(96,-66)..tension 1.2..(102,-37)..tension 1.2..(118,-1)
+ ..(119,8)..tension 2..(111,28)..(100,32)..(66,28)..tension 2
+ ..(35,28)..tension 0.8..(29,36)..tension 0.8
+ ..(37,45) % dent de droite en bas
+ --(71,46){curl0} ..tension 1.1..(82,53){up}..tension 1.1
+ ..{curl0}(70,60) --(36,60)..tension 0.8..(28,67)..tension 0.8
+ ..(38,75)--(74,75){curl0}..tension 1.1..(85,81)..tension 1.1
+ ..{curl0}(75,90)--(37,91)..tension 0.8..(29,101)..tension 0.8
+ ..(40,108)..tension 1.5..(84,111){curl 0.2}
+ ..tension1.5..cycle;
+ unfilldraw (-15,112)..tension 2.5..(-42,112)..tension 0.8
+ ..(-49,104)..tension 0.8..(-43,98)..tension 2
+ ..(-13,97)..tension 0.8..(-9,104)..tension 0.8
+ ..cycle;
+ unfilldraw (-14,78)..tension 2..(-43,79)..tension 0.8
+ ..(-48,73){down}..tension 0.8..(-43,63)..tension 2
+ ..(-14,63)..tension 0.8..(-11,71)..tension 0.8
+ ..cycle;
+ unfilldraw (-14,44)..tension 2..(-42,46)..tension 0.8
+ ..(-49,38)..tension 0.8..(-42,29)..tension 2
+ ..(-15,30)..tension 0.8..(-10,37)..tension 0.8
+ ..cycle;
+ % premiere patte (de droite a gauche)
+ filldraw (66,-43){curl 0.95}..tension 1.5
+ ..(53,-13)..tension 1.5..(41,-6)..tension 0.9
+ ..(36,-7)..tension 1.5..(42,-27)..tension 1.5
+ ..{curl 0.95}cycle;
+ % deuxieme patte
+ filldraw (30,-40){curl 0.9}..tension 1.7
+ ..(28,-20) ..tension 0.8..(20,-10)..tension 1.4
+ ..{curl 0.9}(2,-7){curl 0.9}..(1,-20)..tension 1.7
+ ..{curl 0.9}cycle;
+ % troisieme patte
+ filldraw (-42,-46){curl 0.8}..tension 2..(-8,-21)
+ ..tension 1.7..(-10,-8)..tension 1.7..(-30,-7)..tension 2
+ ..{curl 0.8}cycle;
+ % quatrieme patte (a gauche)
+ filldraw (-54,-12){curl0.7}..tension 1.5..(-74,-8)
+ ..tension 1.6..(-102,-33)..tension 1.7..(-153,-60)
+ ..(-159,-70)..(-150,-72)..tension 2.3..(-57,-34)..tension 1.2
+ ..{curl0.9}cycle;
+endchar;
+
+beginchar ("R",max_diametre#,max_rayon#,max_rayon#); "char noir/black rook";
+ BaseNoire;
+ currenttransform := currenttransform shifted (4FS,0);
+ unfilldraw (4,-113)..tension 2..(12,-100)--(15,-70)
+ ..controls(13,-58) and (14,-55)
+ ..(25,-55)..(60,-55)..controls(80,-56)
+ ..(95,-59){curl0.5}..controls(102,-52)
+ ..(112,-47)..(115,-39){curl0.5} % right tip of lower hor-bar
+ ..(53,-40){left}..controls(13,-39)..(13,-22)..controls(13,-11)
+ ..(32,-11)..tension 1.5..(51,-12)..tension 1.5
+ ..(68,-12)..tension 0.8..(72,-8)..tension 1.5 % bot right of box
+ ..(71,-1)..tension 2..(72,43)..tension 3
+ ..(75,51)..tension 3 % top right of box
+ ..(60,70)..tension 3..(42,63)..tension 2..(21,61)..controls(15,61)
+ ..(15,75)..{curl 0.2}(16,83){curl 0.2}
+ ..(25,84)..(72,81){curl0.7}..tension 2..(86,100)..tension 1.5
+ ..(82,107){curl0.2}..tension 0.8..(78,108){curl0.2}..tension 2
+ ..(50,103)..{curl0}(20,101)..(15,102){curl0.3}..tension 0.8
+ ..(13,110)..(6,124)..(-4,127){left}..(-15,123)
+ ..(-19,111)..(-21,104){curl 0.8}..(-26,102)..tension 1.5
+ ..(-50,102)..tension 1.5..(-66,109)..tension 2.5
+ ..(-95,92)..tension 0.8..(-92,82)..controls(-50,83)
+ ..(-25,83)..tension 0.8 ..(-20,78)..tension 1.5
+ ..(-21,65)..tension 0.8..(-25,61)..tension 2
+ ..(-55,60)..tension 1.7..(-70,65)..tension 2 % top left of box
+ ..(-85,51)..tension 2..(-83,43)..tension 2
+ ..(-84,-1)..(-74,-15)..tension 1.5..(-46,-13)..tension 2
+ ..(-24,-13)..tension 0.8..(-20,-20)..tension 1.8
+ ..(-20,-36)..tension 0.8..(-25,-40)..tension 1.5
+ ..(-76,-38)..{curl 0.9}(-100,-30)..tension 0.8
+ ..(-102,-30)..tension 2..(-128,-57)..tension 0.8
+ ..(-127,-62){curl 0.8} % left lower bar
+ ..(-115,-65)..(-96,-60)..tension 2..(-56,-54)..tension 2
+ ..(-26,-54)..tension 0.8..(-20,-57)..tension 3
+ ..(-20,-82)--(-21,-100)..tension 3..(0,-111)..tension 2
+ ..cycle;
+ filldraw (47,41)..tension 0.8..(45,46)--(16,45)..tension 0.8
+ ..(14,40)..tension 0.8..(16,32)--(45,32)..tension 0.8..cycle;
+ filldraw (47,10)..tension 0.8..(45,18)--(16,18)..tension 0.8
+ ..(14,12)..tension 0.8..(16,2)--(46,2)..tension 0.8..cycle;
+ filldraw (-21,37)..tension 0.8..(-23,45)--(-54,46)..tension 0.8
+ ..(-58,38)..tension 0.8..(-56,31)--(-22,32)..tension 0.8..cycle;
+ filldraw (-22,13)..tension 0.8..(-24,18)--(-57,18)..tension 0.8
+ ..(-58,13)..tension 0.8..(-55,2)--(-23,3)..tension 0.8..cycle;
+endchar;
+
+beginchar ("r",max_diametre#,max_rayon#,max_rayon#); "char rouge/red rook";
+ BaseBlanche;
+ currenttransform := currenttransform shifted (4FS,0);
+ filldraw (4,-113)..tension 2..(12,-100)--(15,-70)
+ ..controls(13,-58) and (14,-55)
+ ..(25,-55)..(60,-55)..controls(80,-56)
+ ..(95,-59){curl0.5}..controls(102,-52)
+ ..(112,-47)..(115,-39){curl0.5} % right tip of lower hor-bar
+ ..(53,-40){left}..controls(13,-39)..(13,-22)..controls(13,-11)
+ ..(32,-11)..tension 1.5..(51,-12)..tension 1.5
+ ..(68,-12)..tension 0.8..(72,-8)..tension 1.5 % bot right of box
+ ..(71,-1)..tension 2..(72,43)..tension 3
+ ..(75,51)..tension 3 % top right of box
+ ..(60,70)..tension 3..(42,63)..tension 2..(21,61)..controls(15,61)
+ ..(15,75)..{curl 0.2}(16,83){curl 0.2}
+ ..(25,84)..(72,81){curl0.7}..tension 2..(86,100)..tension 1.5
+ ..(82,107){curl0.2}..tension 0.8..(78,108){curl0.2}..tension 2
+ ..(50,103)..{curl0}(20,101)..(15,102){curl0.3}..tension 0.8
+ ..(13,110)..(6,124)..(-4,127){left}..(-15,123)
+ ..(-19,111)..(-21,104){curl 0.8}..(-26,102)..tension 1.5
+ ..(-50,102)..tension 1.5..(-66,109)..tension 2.5
+ ..(-95,92)..tension 0.8..(-92,82)..controls(-50,83)
+ ..(-25,83)..tension 0.8 ..(-20,78)..tension 1.5
+ ..(-21,65)..tension 0.8..(-25,61)..tension 2
+ ..(-55,60)..tension 1.7..(-70,65)..tension 2 % top left of box
+ ..(-85,51)..tension 2..(-83,43)..tension 2
+ ..(-84,-1)..(-74,-15)..tension 1.5..(-46,-13)..tension 2
+ ..(-24,-13)..tension 0.8..(-20,-20)..tension 1.8
+ ..(-20,-36)..tension 0.8..(-25,-40)..tension 1.5
+ ..(-76,-38)..{curl 0.9}(-100,-30)..tension 0.8
+ ..(-102,-30)..tension 2..(-128,-57)..tension 0.8
+ ..(-127,-62){curl 0.8} % left lower bar
+ ..(-115,-65)..(-96,-60)..tension 2..(-56,-54)..tension 2
+ ..(-26,-54)..tension 0.8..(-20,-57)..tension 3
+ ..(-20,-82)--(-21,-100)..tension 3..(0,-111)..tension 2
+ ..cycle;
+ unfilldraw (47,41)..tension 0.8..(45,46)--(16,45)..tension 0.8
+ ..(14,40)..tension 0.8..(16,32)--(45,32)..tension 0.8..cycle;
+ unfilldraw (47,10)..tension 0.8..(45,18)--(16,18)..tension 0.8
+ ..(14,12)..tension 0.8..(16,2)--(46,2)..tension 0.8..cycle;
+ unfilldraw (-21,37)..tension 0.8..(-23,45)--(-54,46)..tension 0.8
+ ..(-58,38)..tension 0.8..(-56,31)--(-22,32)..tension 0.8..cycle;
+ unfilldraw (-22,13)..tension 0.8..(-24,18)--(-57,18)..tension 0.8
+ ..(-58,13)..tension 0.8..(-55,2)--(-23,3)..tension 0.8..cycle;
+endchar;
+
+beginchar ("W",max_diametre#,max_rayon#,max_rayon#); "char noir/black rook sur fond blanc";
+ BaseNoireBlanche;
+ currenttransform := currenttransform shifted (4FS,0);
+ filldraw (4,-113)..tension 2..(12,-100)--(15,-70)
+ ..controls(13,-58) and (14,-55)
+ ..(25,-55)..(60,-55)..controls(80,-56)
+ ..(95,-59){curl0.5}..controls(102,-52)
+ ..(112,-47)..(115,-39){curl0.5} % right tip of lower hor-bar
+ ..(53,-40){left}..controls(13,-39)..(13,-22)..controls(13,-11)
+ ..(32,-11)..tension 1.5..(51,-12)..tension 1.5
+ ..(68,-12)..tension 0.8..(72,-8)..tension 1.5 % bot right of box
+ ..(71,-1)..tension 2..(72,43)..tension 3
+ ..(75,51)..tension 3 % top right of box
+ ..(60,70)..tension 3..(42,63)..tension 2..(21,61)..controls(15,61)
+ ..(15,75)..{curl 0.2}(16,83){curl 0.2}
+ ..(25,84)..(72,81){curl0.7}..tension 2..(86,100)..tension 1.5
+ ..(82,107){curl0.2}..tension 0.8..(78,108){curl0.2}..tension 2
+ ..(50,103)..{curl0}(20,101)..(15,102){curl0.3}..tension 0.8
+ ..(13,110)..(6,124)..(-4,127){left}..(-15,123)
+ ..(-19,111)..(-21,104){curl 0.8}..(-26,102)..tension 1.5
+ ..(-50,102)..tension 1.5..(-66,109)..tension 2.5
+ ..(-95,92)..tension 0.8..(-92,82)..controls(-50,83)
+ ..(-25,83)..tension 0.8 ..(-20,78)..tension 1.5
+ ..(-21,65)..tension 0.8..(-25,61)..tension 2
+ ..(-55,60)..tension 1.7..(-70,65)..tension 2 % top left of box
+ ..(-85,51)..tension 2..(-83,43)..tension 2
+ ..(-84,-1)..(-74,-15)..tension 1.5..(-46,-13)..tension 2
+ ..(-24,-13)..tension 0.8..(-20,-20)..tension 1.8
+ ..(-20,-36)..tension 0.8..(-25,-40)..tension 1.5
+ ..(-76,-38)..{curl 0.9}(-100,-30)..tension 0.8
+ ..(-102,-30)..tension 2..(-128,-57)..tension 0.8
+ ..(-127,-62){curl 0.8} % left lower bar
+ ..(-115,-65)..(-96,-60)..tension 2..(-56,-54)..tension 2
+ ..(-26,-54)..tension 0.8..(-20,-57)..tension 3
+ ..(-20,-82)--(-21,-100)..tension 3..(0,-111)..tension 2
+ ..cycle;
+ unfilldraw (47,41)..tension 0.8..(45,46)--(16,45)..tension 0.8
+ ..(14,40)..tension 0.8..(16,32)--(45,32)..tension 0.8..cycle;
+ unfilldraw (47,10)..tension 0.8..(45,18)--(16,18)..tension 0.8
+ ..(14,12)..tension 0.8..(16,2)--(46,2)..tension 0.8..cycle;
+ unfilldraw (-21,37)..tension 0.8..(-23,45)--(-54,46)..tension 0.8
+ ..(-58,38)..tension 0.8..(-56,31)--(-22,32)..tension 0.8..cycle;
+ unfilldraw (-22,13)..tension 0.8..(-24,18)--(-57,18)..tension 0.8
+ ..(-58,13)..tension 0.8..(-55,2)--(-23,3)..tension 0.8..cycle;
+endchar;
+
+beginchar ("C",max_diametre#,max_rayon#,max_rayon#); "canon noir/black cannon";
+ BaseNoire;
+ unfilldraw (-16,-24){curl0.2}..(-12,-10)..tension 1.3 ..(-10,20)..tension 1.3
+ ..(-9,28)..tension 1.5..(0,45)..tension 1.5..(10,56)..tension 1.2
+ ..(19,60)..tension 1.2..(50,64)..tension 1.2..(72,63)..tension 0.8
+ ..(77,54)..tension 1.2..(79,30)..tension 1.2..{curl 0.1}(81,-16){curl 0.1}
+ ..{curl 0.1}(92,-19){curl 0.7}..tension 1.5..(105,-6)..(109,9)..tension 1.5
+ ..(110,50)..tension 1.2..{up}(112,70){curl 0.5}..tension 1.2
+ ..(105,94)..tension 0.8..(100,99){left}..tension 0.8..(92,96)
+ ..(77,87)..tension 1.2..(40,81){left}..tension 0.8..(30,90)
+ --(30,109)..tension 1.1..(25,125)..(16,129)..(2,122)..tension 1.1
+ ..(0,110)..(-3,84)..(-6,66)..tension 0.8..(-17,61)..(-26,63)..(-35,60)..tension 1.2
+ ..(-39,43){down}..(-37,36) ..(-33,20)..(-31,0)..(-32,-12){curl 0.2}..tension 1.5
+ ..{curl 0.7}cycle;
+ unfilldraw (138,-10)..tension 1.1..(100,-46)..(81,-57)..(70,-60)
+ ..(60,-58)..(33,-51)..(20,-40)..(17,-27){curl 0.8}..tension 1.5
+ ..(58,-18)..tension 0.8..(62,-15){curl 0.9}..tension 1.1
+ ..(62,14)..tension 1.5..(61,37)..tension 0.8..(56,43)..tension 1.6
+ ..(34,43)..tension 1.6..{curl 0.8}(12,38)..tension 1.5
+ ..{curl 0.8}(2,28)..tension 1.8..(-1,-40)..tension 1.1..(10,-66)..tension 1.1
+ ..(50,-87)..tension 1.1..(81,-90){right}..tension 1.1..(110,-86)..tension 0.8
+ ..(122,-76)..tension 1.1..(135,-50)..tension 0.8
+ ..{curl 0.9}cycle;
+ filldraw (18,-3)..tension 4..(43,2)..tension 4..(42,21)..tension 4..(20,18)..tension 4
+ ..cycle;
+ unfilldraw (-50,24){up}..(-48,56)..(-46,82)..(-44,98){up} ..(-49,114)..tension 0.9
+ ..(-56,123)..tension 0.8..(-64,122)..tension 1.5..(-75,112)..tension 1.5
+ ..(-81,98){down}..tension 1.3..(-77,88)..(-72,65)..(-69,21){down}
+ ..(-70,0)..(-75,-17)..tension 1.5..(-88,-40)..tension 1.5..(-112,-60)..tension 0.8
+ ..(-117,-73)..tension 0.8..(-106,-88)..(-87,-85)..tension 1.5
+ ..(-70,-70)..(-65,-58)..{curl 0.9}(-58,-36)..tension 2..(-44,-55)..tension 2
+ ..{curl 0.9}(-32,-76)--(-16,-72)..(-15,-61)..(-23,-44)..tension 1.5
+ ..(-43,-13)..(-49,4)
+ ..cycle;
+ unfilldraw (-85,34)..tension 1.7..(-95,65)..tension 0.8..(-106,65)..tension 1.8
+ ..(-114,55)..tension 0.8..(-113,46)..tension 1.5..(-106,20)..tension 1.5
+ ..(-109,-8)..tension 0.8..(-107,-16)..tension 1.5..(-101,-27)..tension 0.8
+ ..(-94,-26)..(-90,-16)..(-88,10)..(-85,23)..tension 0.8
+ ..cycle;
+endchar;
+
+beginchar ("c",max_diametre#,max_rayon#,max_rayon#); "canon rouge/red cannon";
+ BaseBlanche;
+ filldraw (-16,-24){curl0.2}..(-12,-10)..tension 1.3 ..(-10,20)..tension 1.3
+ ..(-9,28)..tension 1.5..(0,45)..tension 1.5..(10,56)..tension 1.2
+ ..(19,60)..tension 1.2..(50,64)..tension 1.2..(72,63)..tension 0.8
+ ..(77,54)..tension 1.2..(79,30)..tension 1.2..{curl 0.1}(81,-16){curl 0.1}
+ ..{curl 0.1}(92,-19){curl 0.7}..tension 1.5..(105,-6)..(109,9)..tension 1.5
+ ..(110,50)..tension 1.2..{up}(112,70){curl 0.5}..tension 1.2
+ ..(105,94)..tension 0.8..(100,99){left}..tension 0.8..(92,96)
+ ..(77,87)..tension 1.2..(40,81){left}..tension 0.8..(30,90)
+ --(30,109)..tension 1.1..(25,125)..(16,129)..(2,122)..tension 1.1
+ ..(0,110)..(-3,84)..(-6,66)..tension 0.8..(-17,61)..(-26,63)..(-35,60)..tension 1.2
+ ..(-39,43){down}..(-37,36) ..(-33,20)..(-31,0)..(-32,-12){curl 0.2}..tension 1.5
+ ..{curl 0.7}cycle;
+ filldraw (138,-10)..tension 1.1..(100,-46)..(81,-57)..(70,-60)
+ ..(60,-58)..(33,-51)..(20,-40)..(17,-27){curl 0.8}..tension 1.5
+ ..(58,-18)..tension 0.8..(62,-15){curl 0.9}..tension 1.1
+ ..(62,14)..tension 1.5..(61,37)..tension 0.8..(56,43)..tension 1.6
+ ..(34,43)..tension 1.6..{curl 0.8}(12,38)..tension 1.5
+ ..{curl 0.8}(2,28)..tension 1.8..(-1,-40)..tension 1.1..(10,-66)..tension 1.1
+ ..(50,-87)..tension 1.1..(81,-90){right}..tension 1.1..(110,-86)..tension 0.8
+ ..(122,-76)..tension 1.1..(135,-50)..tension 0.8
+ ..{curl 0.9}cycle;
+ unfilldraw (18,-3)..tension 4..(43,2)..tension 4..(42,21)..tension 4..(20,18)..tension 4
+ ..cycle;
+ filldraw (-50,24){up}..(-48,56)..(-46,82)..(-44,98){up} ..(-49,114)..tension 0.9
+ ..(-56,123)..tension 0.8..(-64,122)..tension 1.5..(-75,112)..tension 1.5
+ ..(-81,98){down}..tension 1.3..(-77,88)..(-72,65)..(-69,21){down}
+ ..(-70,0)..(-75,-17)..tension 1.5..(-88,-40)..tension 1.5..(-112,-60)..tension 0.8
+ ..(-117,-73)..tension 0.8..(-106,-88)..(-87,-85)..tension 1.5
+ ..(-70,-70)..(-65,-58)..{curl 0.9}(-58,-36)..tension 2..(-44,-55)..tension 2
+ ..{curl 0.9}(-32,-76)--(-16,-72)..(-15,-61)..(-23,-44)..tension 1.5
+ ..(-43,-13)..(-49,4)
+ ..cycle;
+ filldraw (-85,34)..tension 1.7..(-95,65)..tension 0.8..(-106,65)..tension 1.8
+ ..(-114,55)..tension 0.8..(-113,46)..tension 1.5..(-106,20)..tension 1.5
+ ..(-109,-8)..tension 0.8..(-107,-16)..tension 1.5..(-101,-27)..tension 0.8
+ ..(-94,-26)..(-90,-16)..(-88,10)..(-85,23)..tension 0.8
+ ..cycle;
+endchar;
+
+beginchar ("X",max_diametre#,max_rayon#,max_rayon#); "canon noir/black cannon sur fond blanc";
+ BaseNoireBlanche;
+ filldraw (-16,-24){curl0.2}..(-12,-10)..tension 1.3 ..(-10,20)..tension 1.3
+ ..(-9,28)..tension 1.5..(0,45)..tension 1.5..(10,56)..tension 1.2
+ ..(19,60)..tension 1.2..(50,64)..tension 1.2..(72,63)..tension 0.8
+ ..(77,54)..tension 1.2..(79,30)..tension 1.2..{curl 0.1}(81,-16){curl 0.1}
+ ..{curl 0.1}(92,-19){curl 0.7}..tension 1.5..(105,-6)..(109,9)..tension 1.5
+ ..(110,50)..tension 1.2..{up}(112,70){curl 0.5}..tension 1.2
+ ..(105,94)..tension 0.8..(100,99){left}..tension 0.8..(92,96)
+ ..(77,87)..tension 1.2..(40,81){left}..tension 0.8..(30,90)
+ --(30,109)..tension 1.1..(25,125)..(16,129)..(2,122)..tension 1.1
+ ..(0,110)..(-3,84)..(-6,66)..tension 0.8..(-17,61)..(-26,63)..(-35,60)..tension 1.2
+ ..(-39,43){down}..(-37,36) ..(-33,20)..(-31,0)..(-32,-12){curl 0.2}..tension 1.5
+ ..{curl 0.7}cycle;
+ filldraw (138,-10)..tension 1.1..(100,-46)..(81,-57)..(70,-60)
+ ..(60,-58)..(33,-51)..(20,-40)..(17,-27){curl 0.8}..tension 1.5
+ ..(58,-18)..tension 0.8..(62,-15){curl 0.9}..tension 1.1
+ ..(62,14)..tension 1.5..(61,37)..tension 0.8..(56,43)..tension 1.6
+ ..(34,43)..tension 1.6..{curl 0.8}(12,38)..tension 1.5
+ ..{curl 0.8}(2,28)..tension 1.8..(-1,-40)..tension 1.1..(10,-66)..tension 1.1
+ ..(50,-87)..tension 1.1..(81,-90){right}..tension 1.1..(110,-86)..tension 0.8
+ ..(122,-76)..tension 1.1..(135,-50)..tension 0.8
+ ..{curl 0.9}cycle;
+ unfilldraw (18,-3)..tension 4..(43,2)..tension 4..(42,21)..tension 4..(20,18)..tension 4
+ ..cycle;
+ filldraw (-50,24){up}..(-48,56)..(-46,82)..(-44,98){up} ..(-49,114)..tension 0.9
+ ..(-56,123)..tension 0.8..(-64,122)..tension 1.5..(-75,112)..tension 1.5
+ ..(-81,98){down}..tension 1.3..(-77,88)..(-72,65)..(-69,21){down}
+ ..(-70,0)..(-75,-17)..tension 1.5..(-88,-40)..tension 1.5..(-112,-60)..tension 0.8
+ ..(-117,-73)..tension 0.8..(-106,-88)..(-87,-85)..tension 1.5
+ ..(-70,-70)..(-65,-58)..{curl 0.9}(-58,-36)..tension 2..(-44,-55)..tension 2
+ ..{curl 0.9}(-32,-76)--(-16,-72)..(-15,-61)..(-23,-44)..tension 1.5
+ ..(-43,-13)..(-49,4)
+ ..cycle;
+ filldraw (-85,34)..tension 1.7..(-95,65)..tension 0.8..(-106,65)..tension 1.8
+ ..(-114,55)..tension 0.8..(-113,46)..tension 1.5..(-106,20)..tension 1.5
+ ..(-109,-8)..tension 0.8..(-107,-16)..tension 1.5..(-101,-27)..tension 0.8
+ ..(-94,-26)..(-90,-16)..(-88,10)..(-85,23)..tension 0.8
+ ..cycle;
+endchar;
+
+beginchar ("P",max_diametre#,max_rayon#,max_rayon#) "pion noir/black pawn";
+ BaseNoire;
+ unfilldraw (-12,-117)..tension 3
+ ..(10,-105)
+ ..(16,-96)
+ ..(21,-78)..tension 3
+ ..(23,-41)..tension 0.8
+ ..(40,-30)..tension 2
+ ..(85,-33)..tension 2
+ ..(112,-38)..tension 4
+ ..(139,-9)
+ ..{left}(115,-4)
+ ..(65,-7){left}..tension 2
+ ..(-50,-10)..tension 2
+ ..(-80,-9)..controls(-102,-7)
+ ..(-112,-2)..tension 10
+ ..(-131,-40){dir -5}%..tension 2
+ ..(-100,-35)..tension 2
+ ..(-37,-32)..tension 0.8
+ ..(-24,-43)..tension 2
+ ..(-24,-75)
+ ..{curl 2}cycle;
+ unfilldraw (-2,16){dir -125}
+ ..(-41,-17)
+ --(37,-17)
+ ..{curl 0}cycle;
+% fin de la croix du bas
+
+% debut du chapeau du haut
+ unfilldraw (90,70)
+ --(110,95)..tension0.8
+ ..(103,102)..tension 2
+ ..(87,92)..tension 2
+ ..(45,96)..tension0.8
+ ..(38,100)
+ ---(20,126)..controls(3,120.5)
+ ..(-10,118)
+ --(-18,102)..tension 2
+ ..(-35,99.5){left}..tension 2
+ ..(-74,103){curl 2}..tension 3
+ ..(-92,79)..tension 0.8
+ ..(-90,75)..tension 3
+ ..(-60,78)..tension 2
+ ..(-33,79)..tension 2
+ ..(25,78)
+ ..cycle; % fin du chapeau
+
+% petit morceau de droite
+ unfilldraw (93,10)
+ ---(111,12)
+ ---(113,30)
+ ---(80,48)
+ ---(50,65)
+ ---(42,63)
+ ---(42,61)..tension 10
+ ..(31,48)..tension 10
+ ..(5,24)
+ ---(17,18)
+ ..(28,19)
+ ---(52,42)..tension 3
+ ..(75,26)..tension 3
+ ..cycle;
+
+% petit morceau de gauche
+ unfilldraw (-5,33)
+ ---(-34,54)
+ ---(-46,66)..tension 2.5
+ ..flex((-68,64),(-57,50),(-28,26),(-20,19))
+ ..tension 3..cycle;
+ unfilldraw (-40,40)
+ ---(-55,53)---(-90,30)..tension 3
+ ..(-106,20)..tension 0.8
+ ..(-110,10)..controls(-97,5)
+ ..(-88,7)..controls(-64,24)
+ ..cycle;
+endchar;
+
+beginchar ("p",max_diametre#,max_rayon#,max_rayon#); "pion rouge/red pawn";
+ BaseBlanche;
+% Grande barre horizontale
+ filldraw (107,-17)..tension 2
+ ..(120,-3)..tension 1.1..(117,7)
+ &flex((117,7),(46,2),
+ (-1,10),(-67,8),(-103,14))
+ ..tension 0.8..(-112,13)
+ ---(-127,-8)..(-124,-17)..(-111,-22)
+ &flex((-111,-22),(-15,-11),
+ (95,-20))..tension 0.8
+ ..cycle;
+
+% Section gauche et du haut
+ filldraw (-50,0)..tension 1.5
+ ..(-45,43)..tension 1.5
+ ..(-43,76)..tension 0.9
+ ..(-37,83)..tension 1.8
+ ..(10,88)..tension 1.8
+ ..(53,87)%..controls(60,86)
+ ..(70,89)
+ ..(81,99)..tension 0.8
+ ..(81,104)..tension 1.1
+ ..(72,110)..tension 0.8
+ ..(64,110)%..tension 1.1
+ ..(37,106)
+ ..{left}(-6,104)
+ ..{curl 1.2}(-50,109)..tension 4
+ ..(-71,92)..tension 3
+ ..(-70,42){down}
+ ..(-78,0)
+ --cycle;
+
+% Petite barre horizontale centrale
+ filldraw (-60,40)..tension 1.5
+ ..{right}(-2,47)..tension 1.5
+ ..(52,42)..tension 0.9
+ ..(67,44)..tension 1.5
+ ..(82,62)..tension 0.8
+ ..(77,67)..tension 1.5
+ ..(42,64)..(0,64)
+ ..(-58,65)
+ --cycle;
+
+% Petite barre verticale centrale
+ filldraw (27,0)
+ --(25,54)--(-3,54)
+ ..controls(2,24)..(0,0)
+ --cycle;
+
+% patte de gauche
+ filldraw (-56,-28)..tension 3
+ ..(-80,-50)..tension 3
+ ..(-110,-72)..(-116,-84)
+ ..(-104,-86)..tension 2.5
+ ..(-37,-52)..(-31,-46)
+ ..(-28,-38)..tension 0.9
+ ..(-30,-30)..tension 1.6
+ ..(-46,-24)..tension 0.8
+ ..cycle;
+
+% patte de droite
+ filldraw (100,-66)
+ ..controls(92,-60)
+ ..(72,-46)..tension 3
+ ..(48,-29)
+ ..(35,-27)
+ ..(18,-31)
+ ..(15,-40)
+ ..(20,-51){curl 1}..tension 1.5
+ ..(62,-63)..tension 1.5
+ ..(93,-76)..tension 0.8
+ ..cycle;
+endchar;
+
+beginchar ("Y",max_diametre#,max_rayon#,max_rayon#); "pion noir/black pawn sur fond blanc";
+ BaseNoireBlanche;
+ filldraw (-12,-117)..tension 3
+ ..(10,-105)
+ ..(16,-96)
+ ..(21,-78)..tension 3
+ ..(23,-41)..tension 0.8
+ ..(40,-30)..tension 2
+ ..(85,-33)..tension 2
+ ..(112,-38)..tension 4
+ ..(139,-9)
+ ..{left}(115,-4)
+ ..(65,-7){left}..tension 2
+ ..(-50,-10)..tension 2
+ ..(-80,-9)..controls(-102,-7)
+ ..(-112,-2)..tension 10
+ ..(-131,-40){dir -5}%..tension 2
+ ..(-100,-35)..tension 2
+ ..(-37,-32)..tension 0.8
+ ..(-24,-43)..tension 2
+ ..(-24,-75)
+ ..{curl 2}cycle;
+ filldraw (-2,16){dir -125}
+ ..(-41,-17)
+ --(37,-17)
+ ..{curl 0}cycle;
+% fin de la croix du bas
+
+% debut du chapeau du haut
+ filldraw (90,70)
+ --(110,95)..tension0.8
+ ..(103,102)..tension 2
+ ..(87,92)..tension 2
+ ..(45,96)..tension0.8
+ ..(38,100)
+ ---(20,126)..controls(3,120.5)
+ ..(-10,118)
+ --(-18,102)..tension 2
+ ..(-35,99.5){left}..tension 2
+ ..(-74,103){curl 2}..tension 3
+ ..(-92,79)..tension 0.8
+ ..(-90,75)..tension 3
+ ..(-60,78)..tension 2
+ ..(-33,79)..tension 2
+ ..(25,78)
+ ..cycle; % fin du chapeau
+
+% petit morceau de droite
+ filldraw (93,10)
+ ---(111,12)
+ ---(113,30)
+ ---(80,48)
+ ---(50,65)
+ ---(42,63)
+ ---(42,61)..tension 10
+ ..(31,48)..tension 10
+ ..(5,24)
+ ---(17,18)
+ ..(28,19)
+ ---(52,42)..tension 3
+ ..(75,26)..tension 3
+ ..cycle;
+
+% petit morceau de gauche
+ filldraw (-5,33)
+ ---(-34,54)
+ ---(-46,66)..tension 2.5
+ ..flex((-68,64),(-57,50),(-28,26),(-20,19))
+ ..tension 3..cycle;
+ filldraw (-40,40)
+ ---(-55,53)---(-90,30)..tension 3
+ ..(-106,20)..tension 0.8
+ ..(-110,10)..controls(-97,5)
+ ..(-88,7)..controls(-64,24)
+ ..cycle;
+endchar;
+
+%----------------------------------------------------------
+designsize:=FontSize;
+font_coding_scheme:="Special graphics";
+font_size=FontSize;
+font_slant:=0.00;
+font_normal_space:=max_diametre#;
+font_quad:=max_diametre#;
+font_normal_stretch:=max_rayon#;
+font_normal_shrink:=0.7*max_rayon#;
+font_x_height max_rayon#; % l'usager pourra utiliser cette valeur
+ % pour positionner les caracteres.
+ % elle donne la position du centre par rapport au
+ % coin inferieur gauche.
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/chemarrow/arrow.mf b/Master/texmf-dist/fonts/source/public/chemarrow/arrow.mf
new file mode 100644
index 00000000000..170ad773fcd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chemarrow/arrow.mf
@@ -0,0 +1,90 @@
+%
+% arrow.mf produces new arrow heads e.g. for chemical reaction schemes
+%
+% Author: Thomas Schroeder schroeder@ictw.chemie.uni-karlsruhe.de
+%
+% Version: 0.5 February 1 2001
+%
+% arrow.mf is inspired by and based on cryst.mf version 1.0 by Ulrich Mueller
+%
+
+
+
+mode_setup; font_size 10pt#;
+font_identifier:="arrow"; font_coding_scheme:="UNSPECIFIED";
+ff:=0.82;
+u#:=ff*0.10pt#;
+br#:=108u#; ho#:=100u#; ul#:=32u#; % Breite, Hoehe, Unterlaenge
+define_pixels(u,br,ho,ul);
+
+
+beginchar(65,120u#,68u#,0);
+"right arrow";
+z1=(0u,33.2u); z2=(88u,33.2u); z3=(88u,27.7u); z4=(0,27.7u);
+z5=(116u,30.7u); z6=(63u,7.2u); z7=(62u,9.2u);
+z8=(76u,30.7u); z9=(62u,51.2u); z10=(63u,53.2u);
+fill z10{dir -28}..{dir -15}z5..z5{dir -165}..{dir -152}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 10);
+endchar;
+
+
+beginchar(66,120u#,68u#,0);
+"up right harpoon";
+z1=(0u,33.2u); z2=(88u,33.2u); z3=(88u,27.7u); z4=(0,27.7u);
+z5=(116u,27.7u); z6=(63u,55u); z7=(62u,53u); z8=(74u,27.7u);
+fill z6{dir -32}..{dir -22}z5--z8--z7--z6..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(67,120u#,68u#,0);
+"down right harpoon";
+z1=(0u,33.2u); z2=(88u,33.2u); z3=(88u,27.7u); z4=(0,27.7u);
+z5=(116u,33.2u); z6=(63u,5u); z7=(62u,7u); z8=(76u,33.2u);
+fill z6{dir 32}..{dir 22}z5--z8--z7--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 8);
+endchar;
+
+
+beginchar(68,120u#,68u#,0);
+"left arrow";
+z1=(120u,33.2u); z2=(32u,33.2u); z3=(32u,27.7u); z4=(120u,27.7u);
+z5=(4u,30.7u); z6=(57u,7.2u); z7=(58u,9.2u);
+z8=(42u,30.7u); z9=(58u,51.2u); z10=(57u,53.2u);
+fill z10{dir -152}..{dir -165}z5..z5{dir -15}..{dir -28}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 10);
+endchar;
+
+beginchar(69,120u#,68u#,0);
+"up left harpoon";
+z1=(120u,33.2u); z2=(31u,33.2u); z3=(31u,27.7u); z4=(120u,27.7u);
+z5=(4u,27.7u); z6=(57u,55u); z7=(58u,53u); z8=(46u,27.7u);
+fill z5{dir 22}..{dir 32}z6--z7--z8--z5..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 8);
+endchar;
+
+
+beginchar(70,120u#,68u#,0);
+"down left harpoon";
+z1=(120u,33.2u); z2=(31u,33.2u); z3=(31u,27.7u); z4=(120u,27.7u);
+z5=(4u,33.2u); z6=(57u,5u); z7=(58u,7u); z8=(40u,33.2u);
+%fill z5{dir 22}..{dir 32}z6--z7--z8--z5..cycle;
+fill z5{dir -15}..{dir -28}z6--z7--z8--z5..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(71,74u#,68u#,0);
+"new minus sign";
+% z1=(2u,33.2u); z2=(72u,33.2u); z3=(72u,27.7u); z4=(2u,27.7u); z5=(0u,30.7u); z6=(74u,30.7u);
+z2=(2u,33.2u); z3=(72u,33.2u); z5=(72u,27.7u); z6=(2u,27.7u); z1=(0u,30.7u); z4=(74u,30.7u);
+% fill z2--z3--z5--z6--cycle;
+fill z6..z1..z2--z3..z4..z5--z6--cycle;
+labels(range 1 thru 6);
+endchar;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cherokee/cherokee.mf b/Master/texmf-dist/fonts/source/public/cherokee/cherokee.mf
new file mode 100644
index 00000000000..9c3d08f46a1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cherokee/cherokee.mf
@@ -0,0 +1,636 @@
+% cherokee.mf
+% This font was designed by Alan M Stanier ( alan@essex.ac.uk ),
+% at Essex University Computer Service, Colchester, Essex CO4 3EA. England.
+%
+% If you make significant additions or improvements to the font, please email me an updated version
+%
+%
+% The cherokee script was designed in 1821 by Segwoya
+%
+% The alphabet is essentially syllabic, only 6 characters (a e i o s u)
+% corresponding to roman letters: these have been encoded to the
+% corresponding roman letter. The remaining 79 characters have been
+% arbitrarily encoded in the range 38 - 122: cherokee.sty provides
+% macros for mapping syllables to the appropriate character.
+% eg \Cse\Cgwo\Cya
+%
+%
+mg:=1.0; % CHANGE THIS TO GET DIFFERENT SIZES OF FONT (font size = 10*mg pt)
+
+mode_setup;
+tracingtitles := 1;
+xpensize#:=mg*0.8pt;
+ypensize#:=mg*0.2pt;
+bigpensize#:=mg*1pt;
+height#:=mg*9.6pt#;
+fullwidth#:=mg*7.5pt#;
+narrowwidth#:=mg*5.5pt#;
+widewidth#:=mg*10pt#;
+define_pixels(height,fullwidth,halfwidth,widewidth);
+def getpen = pickup pencircle xscaled xpensize# yscaled ypensize# rotated 30 enddef;
+def getbigpen = pickup pencircle scaled bigpensize# enddef;
+
+
+beginchar(38,fullwidth#,height#,0); "soo";
+getpen;
+draw flex((mg*25,mg*20),(mg*20,mg*30),(mg*5,mg*20)) .. (mg*5,mg*20) .. (0,mg*25){up} .. (mg*5,mg*30){right}
+ .. (mg*10,mg*10){down} .. (mg*15,0){right} .. (mg*10,mg*10){left};
+endchar;
+
+
+beginchar(39,narrowwidth#,height#,0); "ga";
+getpen;
+draw (mg*10,mg*28) .. (mg*7.5,mg*30){left} .. (mg*2.5,mg*27.5){down} .. (mg*7.5,mg*15)
+ .. (mg*12.5,mg*2.5){down} .. (mg*7.5,0){left} .. (mg*5,mg*2);
+draw (0,mg*15) -- (mg*15,mg*15);
+endchar;
+
+beginchar(40,fullwidth#,height#,0); "ha";
+getpen;
+draw (0,mg*15){down} .. (mg*7.5,0){right} .. (mg*15,mg*15){up} .. (mg*7.5,mg*30){left}
+ .. (0,mg*15){down};
+draw (mg*14,mg*20) -- (mg*25,mg*20) -- (mg*20,mg*12.5) -- (mg*20,mg*30);
+endchar;
+
+beginchar(41,fullwidth#,height#,0); "la";
+getpen;
+draw (0,mg*30) -- (mg,mg*30) -- (mg*6,0) -- (mg*11,mg*30) -- (mg*16,0) -- (mg*21,mg*20) -- (mg*25,mg*30);
+endchar;
+
+beginchar(42,fullwidth#,height#,0); "ma";
+getpen;
+draw (mg*5,mg*30) -- (mg*10,mg*30) -- (mg*10,mg*17.5) -- (mg*2.5,mg*5) &
+ flex((mg*2.5,mg*5),(mg*12.5,mg*2),(mg*8,mg*12)) & flex((mg*8,mg*12),(mg,mg*13),(mg*2.5,mg*5));
+draw flex((mg*10,mg*17.5),(mg*15,mg*15),(mg*20,mg*30)) .. (mg*20,mg*30) -- (mg*25,mg*30)
+ -- (mg*25,mg*25) .. (mg*23,mg*23);
+endchar;
+
+beginchar(43,fullwidth#,height#,0); "na";
+getpen;
+draw (0,mg*15){down} .. (mg*12.5,0){right} .. (mg*25,mg*15){up} ..
+ (mg*12.5,mg*30){left} .. (0,mg*15){down};
+draw (0,mg*15) -- (mg*25,mg*15);
+endchar;
+
+beginchar(44,fullwidth#,height#,0); "gwa";
+getpen;
+draw (0,mg*27.5) -- (mg*2.5,mg*30) -- (mg*22.5,mg*30) -- (mg*25,mg*27.5);
+draw (mg*12.5,mg*30) -- (mg*12.5,0);
+draw (mg*5,0) -- (mg*20,0);
+endchar;
+
+beginchar(45,fullwidth#,height#,0); "sa";
+getpen;
+draw (0,mg*30) -- (mg*5,mg*30);
+draw (mg*20,mg*30) -- (mg*25,mg*30);
+draw (mg*2.5,mg*30) -- (mg*2.5,mg*15){down} & flex((mg*2.5,mg*15),(mg*12.5,0),(mg*22.5,mg*15))
+ .. (mg*22.5,mg*15){up} .. (mg*22.5,mg*30);;
+draw (mg*2.5,mg*20) -- (mg*22.5,mg*20);
+endchar;
+
+beginchar(46,narrowwidth#,height#,0); "da";
+getpen;
+draw (0,mg*30) -- (0,mg*10) & flex((0,mg*10),(mg*7.5,0),(mg*14,mg*8)) .. (mg*14,mg*8)
+ .. (mg*13,mg*15){left} .. (mg*12,mg*12){down} .. (mg*14,mg*8);
+endchar;
+
+beginchar(47,fullwidth#,height#,0); "dla";
+getpen;
+draw (mg*5,mg*10) .. (mg*5,0){left} .. (mg*5,mg*10) .. (mg*12.5,mg*20) .. (mg*12.5,mg*30){left}
+ .. (mg*12.5,mg*20) .. (mg*20,mg*10) .. (mg*20,0){left} .. (mg*20,mg*10);
+endchar;
+
+beginchar(48,fullwidth#,height#,0); "dza";
+getpen;
+draw (mg*20,mg*22) -- (mg*25,mg*20) .. (mg*12.5,mg*30){left} .. (0,mg*15){down} ..
+ (mg*12.5,0){right} .. (mg*22.5,mg*2) .. (mg*25,mg*5){up} .. (mg*22.5,mg*10){left}
+ .. (mg*22.5,mg*2);
+endchar;
+
+beginchar(49,fullwidth#,height#,0); "wa";
+getpen;
+draw (mg*20,mg*22.5) .. (mg*15,mg*30){left} .. (0,mg*15){down} .. (mg*15,0){right}
+ .. (mg*20,mg*10){up} & flex((mg*20,mg*10),(mg*22,mg),(mg*25,mg*5));
+draw (mg*15,mg*10) -- (mg*25,mg*10);
+endchar;
+
+beginchar(50,fullwidth#,height#,0); "ya";
+getpen;
+draw (mg*7.5,mg*30) .. (0,mg*15){down} .. (mg*10,0){right} .. (mg*15,mg*15);
+draw (mg*17.5,mg*30) .. (mg*25,mg*15){down} .. (mg*15,0){left} .. (mg*10,mg*15);
+endchar;
+
+beginchar(51,fullwidth#,height#,0); "woo";
+getpen;
+draw (0,mg*15) .. (mg*12.5,0){right} .. (mg*25,mg*15){up} .. (mg*20,mg*30){left} .. (mg*25,mg*15);
+endchar;
+
+beginchar(52,fullwidth#,height#,0); "ge";
+getpen;
+draw (0,0) -- (mg*5,0);
+draw (mg*2.5,0) -- (mg*2.5,mg*30);
+draw (mg*2.5,mg*15) -- (mg*15,mg*25) & flex((mg*15,mg*25),(mg*20,mg*17),(mg*25,mg*15));
+endchar;
+
+beginchar(53,narrowwidth#,height#,0); "he";
+getpen;
+draw (0,0) -- (mg*10,0);
+draw (mg*5,0) -- (mg*5,mg*10) & flex((mg*5,mg*10),(mg*15,mg*20),(mg*5,mg*30));
+endchar;
+
+beginchar(54,fullwidth#,height#,0); "le";
+getpen;
+draw (mg*13,mg*10) .. (0,mg*5){down} .. (mg*4,0){right} .. (mg*17.5,mg*25)
+ .. (mg*21,mg*30){right} .. (mg*25,mg*27.5){down} .. (mg*17.5,mg*25);
+endchar;
+
+beginchar(55,fullwidth#,height#,0); "me";
+getpen;
+draw (0,mg*15){down} .. (mg*7.5,0){right} .. (mg*15,mg*15){up} .. (mg*7.5,mg*30){left}
+ .. (0,mg*15){down};
+draw (mg*15,mg*15) -- (mg*25,mg*15);
+draw (mg*25,0) -- (mg*25,mg*30);
+endchar;
+
+beginchar(56,fullwidth#,height#,0); "ne";
+getpen;
+draw (mg*20,0) -- (mg*25,0);
+draw (mg*22.5,0) -- (mg*22.5,mg*20) .. (mg*17.5,mg*30){left} .. (mg*5,0){left} .. (0,mg*5);
+endchar;
+
+beginchar(57,fullwidth#,height#,0); "gwe";
+getpen;
+draw (0,mg*10) .. (mg*6.25,0){right} .. (mg*12.5,mg*10){right} .. (mg*18.75,0){right}
+ .. (mg*25,mg*10){up} .. (mg*12.5,mg*30);
+endchar;
+
+beginchar(58,fullwidth#,height#,0); "se";
+getpen;
+draw (mg*17.5,0) -- (mg*22.5,0);
+draw (mg*20,0) -- (mg*20,mg*30) -- (0,mg*10) -- (mg*25,mg*10);
+endchar;
+
+beginchar(59,narrowwidth#,height#,0); "de";
+getpen;
+draw (mg*10,mg*28) .. (mg*7.5,mg*30){left} .. (mg*2.5,mg*27.5){down} .. (mg*7.5,mg*15)
+ .. (mg*12.5,mg*2.5){down} .. (mg*7.5,0){left} .. (mg*5,mg*2);
+draw (mg*7.5,mg*15) -- (mg*15,mg*15);
+draw (mg*7.5,mg*28) -- (mg*12.5,mg*28);
+endchar;
+
+beginchar(60,fullwidth#,height#,0); "dle";
+getpen;
+draw (0,mg*30) -- (mg*2.5,mg*27.5) -- (mg*2.5,mg*2.5) -- (0,0);
+draw (mg*2.5,mg*2.5) -- (mg*25,mg*2.5);
+draw (mg*25,0) -- (mg*25,mg*5);
+endchar;
+
+beginchar(61,fullwidth#,height#,0); "dze";
+getpen;
+draw (0,mg*20) -- (mg*5,mg*20) -- (mg*15,0) -- (mg*25,mg*15) .. (mg*22.5,mg*25) -- (mg*20,mg*30);
+endchar;
+
+beginchar(62,fullwidth#,height#,0); "we";
+getpen;
+draw (0,mg*5) .. (mg*5,0){right} .. (mg*15,mg*20){up} .. (mg*12.5,mg*30){left}
+ .. (mg*10,mg*20){down} .. (mg*20,0){right} .. (mg*25,mg*15){up} ..
+ (mg*22.5,mg*25){left} .. (mg*20,mg*15){down} .. (mg*24,mg*12);
+endchar;
+
+beginchar(63,fullwidth#,height#,0); "ye";
+getpen;
+draw (mg*5,0) -- (mg*5,mg*15) .. (mg*15,mg*30){right} & flex((mg*15,mg*30),(mg*25,mg*25),(mg*15,mg*20))
+ & flex((mg*15,mg*20),(mg*25,mg*15),(mg*15,mg*10)) & flex((mg*15,mg*10),(mg*2.5,mg*5),(mg*2,mg*15));
+endchar;
+
+beginchar(64,fullwidth#,height#,0); "hu";
+getpen;
+draw (0,mg*10) .. (mg*4,0){right} .. (mg*12,mg*20){up} .. (mg*10,mg*30){left}
+ .. (mg*8,mg*20){down} .. (mg*16,0){right} .. (mg*18,mg*15){up} --
+ (mg*25,mg*15);
+endchar;
+
+beginchar(65,fullwidth#,height#,0); "gi";
+getpen;
+draw (0,mg*30) -- (mg*5,mg*30);
+draw (mg*2.5,mg*30) -- (mg*15,mg*10);
+draw (mg*25,mg*30) -- (mg*15,mg*10) .. (mg*5,0){left} .. (0,mg*10){up};
+endchar;
+
+beginchar(66,fullwidth#,height#,0); "hi";
+getpen;
+draw (0,mg*5) .. (mg*5,0){right} .. (mg*12.5,mg*15){up} .. (mg*10,mg*30) &
+ flex((mg*10,mg*30),(mg*20,mg*15),(mg*25,0));
+draw flex((mg*12.5,mg*15),(mg*16,mg*13),(mg*20,mg*15));
+endchar;
+
+beginchar(67,fullwidth#,height#,0); "li";
+getpen;
+draw (0,mg*30) -- (mg*5,mg*25) -- (mg*5,0);
+draw (mg*5,mg*25) .. (mg*15,mg*30){right} .. (mg*25,mg*20){down} .. (mg*15,mg*20);
+endchar;
+
+beginchar(68,fullwidth#,height#,0); "mi";
+getpen;
+draw (0,mg*30) .. (mg*2.5,mg*30){right} & flex((mg*2.5,mg*30),(mg*5,mg*15),(mg*2.5,0))
+ .. (mg*2.5,0){left} .. (0,0);
+draw (mg*25,mg*30) .. (mg*22.5,mg*30){left} & flex((mg*22.5,mg*30),(mg*20,mg*15),(mg*22.5,0))
+ .. (mg*22.5,0){right} .. (mg*25,0);
+draw (mg*5,mg*15) -- (mg*20,mg*15);
+endchar;
+
+beginchar(69,fullwidth#,height#,0); "ni";
+getpen;
+draw (0,0) -- (mg*2.5,0) -- (mg*2.5,mg*25) & flex((mg*2.5,mg*25),(mg*22.5,mg*30),(mg*25,mg*27.5));
+draw (mg*2.5,mg*15) .. (mg*12.5,mg*20) .. (mg*22.5,mg*15) .. (mg*25,0);
+endchar;
+
+beginchar(70,fullwidth#,height#,0); "gwi";
+getpen;
+draw (mg*5,mg*20) .. (0,mg*25){up} .. (mg*5,mg*30){right} .. (mg*20,mg*15){down}
+ .. (mg*12.5,0){left} .. (mg*5,mg*15){up} ..(mg*20,mg*30){right}
+ .. (mg*25,mg*25){down} .. (mg*20,mg*20);
+endchar;
+
+beginchar(71,fullwidth#,height#,0); "si";
+getpen;
+draw (0,mg*30) -- (mg*5,mg*30);
+draw (mg*2.5,mg*30) -- (mg*2.5,0);
+draw flex((mg*2.5,mg*2.5),(mg*25,mg*10),(mg*2.5,mg*15));
+endchar;
+
+beginchar(72,fullwidth#,height#,0); "di";
+getpen;
+draw (mg*20,mg*30) -- (mg*25,mg*30);
+draw (mg*20,0) -- (mg*25,0);
+draw (mg*22.5,0) -- (mg*22.5,mg*30);
+draw (0,mg*5) -- (0,0) -- (mg*22.5,mg*15);
+endchar;
+
+beginchar(73,fullwidth#,height#,0); "dli";
+getpen;
+draw flex((mg*22.5,mg*30),(0,mg*15),(mg*22.5,0)) &
+ flex((mg*22.5,0),(mg*20,mg*5),(mg*25,mg*15),(mg*22.5,mg*20));
+endchar;
+
+beginchar(74,fullwidth#,height#,0); "dzi";
+getpen;
+draw (0,0) -- (mg*5,0);
+draw (mg*2.5,0) -- (mg*2.5,mg*30);
+draw flex((mg*2.5,mg*15),(mg*10,mg*17.5),(mg*17.5,mg*15)) .. (mg*17.5,mg*15) ..
+ (mg*20,0){down};
+draw flex((mg*17.5,mg*15),(mg*20,mg*20),(mg*22.5,mg*15)) .. (mg*22.5,mg*15) ..
+ (mg*25,mg*10){down};
+endchar;
+
+beginchar(75,fullwidth#,height#,0); "wi";
+getpen;
+draw (0,mg*15){down} .. (mg*12.5,0){right} .. (mg*25,mg*15){up} ..
+ (mg*12.5,mg*30){left} .. (0,mg*15){down};
+draw flex((mg*2.5,mg*20),(mg*12.5,mg*20),(mg*17.5,mg*10),(mg*22.5,mg*10));
+endchar;
+
+beginchar(76,fullwidth#,height#,0); "yi";
+getpen;
+draw (0,mg*15) -- (mg*5,mg*10) -- (mg*12.5,mg*25) .. (mg*15,mg*25){up} ..
+ (mg*12.5,mg*30){left} .. (mg*10,mg*25){down} .. (mg*12.5,mg*20) ..
+ (mg*22.5,mg*10) .. (mg*25,mg*5){down} .. (mg*22.5,0){left} ..
+ (mg*20,mg*5){up} .. (mg*22.5,mg*10);
+endchar;
+
+beginchar(77,fullwidth#,height#,0); "dlu";
+getpen;
+draw (0,0) -- (mg*10,0);
+draw (mg*5,0) -- (mg*5,mg*25);
+draw flex((0,mg*25),(mg*25,mg*22.5),(mg*5,mg*15));
+endchar;
+
+beginchar(78,fullwidth#,height#,0); "go";
+getpen;
+draw (0,0) -- (mg*5,0);
+draw (mg*20,0) -- (mg*25,0);
+draw (mg*2.5,0) -- (mg*12.5,mg*30) -- (mg*22.5,0);
+draw (mg*7.5,mg*15) -- (mg*17.5,mg*15);
+endchar;
+
+beginchar(79,narrowwidth#,height#,0); "ho";
+getpen;
+draw (0,0) -- (mg*5,0);
+draw (0,mg*30) -- (mg*5,mg*30);
+draw (mg*2.5,0) -- (mg*2.5,mg*30);
+draw (mg*2.5,mg*15) -- (mg*15,mg*15);
+draw (mg*15,mg*10) -- (mg*15,mg*20);
+endchar;
+
+beginchar(80,fullwidth#,height#,0); "lo";
+getpen;
+draw (mg*25,mg*25) -- (mg*25,mg*30);
+draw (mg*25,mg*27.5) .. (mg*15,mg*30){left} .. (0,mg*15){down} .. (mg*15,0){right}
+ .. (mg*25,mg*7.5){up} .. (mg*15,mg*15){left};
+draw (mg*15,mg*10) -- (mg*15,mg*20);
+endchar;
+
+beginchar(81,fullwidth#,height#,0); "mo";
+getpen;
+draw (0,mg*30) -- (mg*25,mg*30) -- (mg*15,mg*15) .. (mg*25,mg*7.5){down}
+ .. (mg*12.5,0){left} .. (0,mg*7.5){up} .. (mg*2.5,mg*10);
+endchar;
+
+beginchar(82,fullwidth#,height#,0); "no";
+getpen;
+draw (0,mg*27.5) -- (mg*2.5,mg*30) -- (mg*25,mg*30) -- (0,0) -- (mg*22.5,0) -- (mg*25,mg*2.5);
+endchar;
+
+beginchar(83,widewidth#,height#,0); "gwo";
+getpen;
+draw (mg*5,mg*10) .. (0,mg*5){down} .. (mg*5,0){right} .. (mg*10,mg*30){up};
+draw (mg*10,mg*30) -- (mg*25,0) -- (mg*25,mg*30) &
+ flex((mg*25,mg*30),(mg*29,mg*25),(mg*33,mg*30),(mg*37,mg*25)) .. (mg*37,mg*25) -- (mg*37.5,mg*20);
+endchar;
+
+beginchar(84,fullwidth#,height#,0); "so";
+getpen;
+draw (mg*10,mg*30) -- (mg*15,mg*30);
+draw (mg*10,0) -- (mg*15,0);
+draw (mg*12.5,0) -- (mg*12.5,mg*30);
+draw (mg*12.5,mg*10) .. (0,mg*15){up} .. (mg*5,mg*20);
+draw (mg*12.5,mg*20) .. (mg*25,mg*15){down} .. (mg*20,mg*10);
+endchar;
+
+beginchar(85,fullwidth#,height#,0); "do";
+getpen;
+draw (0,0) -- (mg*5,0);
+draw (mg*20,0) -- (mg*25,0);
+draw (mg*2.5,0) -- (mg*12.5,mg*30) -- (mg*27.5,0);
+endchar;
+
+beginchar(86,fullwidth#,height#,0); "dlo";
+getpen;
+draw (mg*20,mg*30) -- (mg*20,mg*15) &
+ flex((mg*20,mg*15),(mg*15,0),(mg*10,mg*15)) .. (mg*10,mg*15) ..
+ (mg*10,mg*25){up} .. (mg*5,mg*30){left} .. (0,mg*25){down}
+ .. (mg*5,mg*13);
+draw (0,mg*11) -- (mg*10,mg*15) -- (mg*25,mg*15);
+draw (0,mg*30) -- (mg*3,mg*27);
+endchar;
+
+beginchar(87,fullwidth#,height#,0); "dzo";
+getpen;
+draw (0,0) -- (mg*5,0);
+draw (mg*20,0) -- (mg*25,0);
+draw (0,mg*30) -- (mg*5,mg*30);
+draw (mg*20,mg*30) -- (mg*25,mg*30);
+draw (mg*2.5,0) -- (mg*2.5,mg*30);
+draw (mg*22.5,0) -- (mg*2.5,mg*15) -- (mg*22.5,mg*30);
+endchar;
+
+beginchar(88,fullwidth#,height#,0); "wo";
+getpen;
+draw (0,mg*15) .. (mg*8,mg*21) .. (mg*3,mg*25){left} .. (0,mg*15){down}
+ .. (mg*12.5,0){right} .. (mg*25,mg*15){up} .. (mg*20,mg*30);
+endchar;
+
+beginchar(89,fullwidth#,height#,0); "yo";
+getpen;
+draw (0,0) -- (mg*5,0);
+draw (mg*2.5,0) -- (mg*2.5,mg*20) & flex((mg*2.5,mg*20),(mg*13.75,mg*30),(mg*25,mg*20));
+draw flex((mg*2.5,mg*15),(mg*12.5,mg*12.5),(mg*20,mg*2.5),(mg*25,0));
+endchar;
+
+beginchar(90,fullwidth#,height#,0); "oo";
+getpen;
+draw (0,mg*15){down} .. (mg*7.5,0){right} .. (mg*15,mg*15){up} .. (mg*7.5,mg*30){left}
+ .. (0,mg*15){down};
+draw (mg*15,mg*15) .. (mg*25,mg*20){up} .. (mg*22.5,mg*22.5);
+endchar;
+
+beginchar(91,narrowwidth#,height#,0); "goo";
+getpen;
+draw (mg*7.5,mg*30) -- (mg*15,mg*30);
+draw (mg*11.25,mg*30) -- (mg*11.25,mg*5) .. (mg*5,0){left}
+ .. (0,mg*5){up} .. (mg*2.5,mg*7.5);
+endchar;
+
+beginchar(92,fullwidth#,height#,0); "hoo";
+getpen;
+draw (0,0) -- (mg*5,0);
+draw (mg*2.5,0) -- (mg*2.5,mg*30);
+draw (0,mg*30) -- (mg*25,mg*30) -- (mg*25,mg*25);
+endchar;
+
+beginchar(93,fullwidth#,height#,0); "loo";
+getpen;
+draw (mg*2.5,0) -- (mg*2.5,mg*30);
+draw (mg*22.5,0) -- (mg*22.5,mg*30);
+draw (0,mg*30) -- (mg*5,mg*30) -- (mg*12.5,mg*15) -- (mg*20,mg*30) -- (mg*25,mg*30);
+endchar;
+
+beginchar(94,fullwidth#,height#,0); "moo";
+getpen;
+draw (mg*10,mg*30) -- (mg*14,mg*30);
+draw (mg*12,mg*30) -- (mg*18,mg*10);
+draw (mg*25,mg*30) -- (mg*18,mg*10) & flex((mg*18,mg*10),(mg*12,0),(mg*6,mg*15),(0,mg*10));
+endchar;
+
+beginchar(95,fullwidth#,height#,0); "noo";
+getpen;
+draw (0,mg*22.5) -- (mg*5,mg*22.5);
+draw flex((mg*2.5,mg*22.5),(mg*12.5,mg*30),(mg*22.5,mg*22.5)) .. (mg*22.5,mg*22.5) -- (mg*22.5,0);
+draw (mg*20,0) -- (mg*25,0);
+draw (mg*22.5,mg*15) -- (mg*10,mg*5) .. (mg*2.5,mg*15){up};
+draw (0,mg*15) -- (mg*5,mg*15);
+endchar;
+
+beginchar(96,fullwidth#,height#,0); "gwoo";
+getpen;
+draw (mg*5,mg*15) .. (0,mg*7.5){down} .. (mg*7.5,0){right} .. (mg*12.5,mg*10){up};
+draw (mg*12.5,mg*10){down} .. (mg*17.5,0){right} .. (mg*25,mg*7.5){up}
+ .. (mg*12.5,mg*30){left} .. (mg*7.5,mg*27);
+endchar;
+
+beginchar(97,fullwidth#,height#,0); "a";
+getpen;
+draw (0,0) .. (mg*5,mg*5) .. (mg*15,mg*3) .. (mg*25,mg*17.5){up} .. (mg*5,mg*30){left} -- (0,mg*30);
+draw (mg*5,mg*30) -- (mg*5,mg*5);
+endchar;
+
+beginchar(98,fullwidth#,height#,0); "doo";
+getpen;
+draw (mg*20,mg*20) -- (mg*25,mg*25);
+draw (0,0) -- (mg*5,mg*5);
+draw (mg*22.5,mg*22.5) .. (mg*12.5,mg*30){left} .. (0,mg*22.5){down}
+ .. (mg*12.5,mg*15) .. (mg*25,mg*7.5){down} .. (mg*12.5,0){left}
+ .. (mg*2.5,mg*2.5);
+endchar;
+
+beginchar(99,fullwidth#,height#,0); "dloo";
+getpen;
+draw (mg*2.5,mg*25){up} .. (mg*5,mg*30){right} .. (mg*20,mg*15){down}
+ .. (mg*12.5,0){left} .. (mg*5,mg*15){up} .. (mg*20,mg*30){right}
+ .. (mg*25,mg*25){down};
+endchar;
+
+beginchar(100,narrowwidth#,height#,0); "dzoo";
+getpen;
+draw (mg*7.5,mg*30) -- (mg*15,mg*30);
+draw (mg*11.25,mg*30) -- (mg*11.25,mg*5) .. (mg*5,0){left}
+ .. (0,mg*5){up} .. (mg*10,mg*10);
+endchar;
+
+beginchar(101,fullwidth#,height#,0); "e";
+getpen;
+draw (mg*2.5,0) -- (mg*2.5,mg*30);
+draw (0,mg*30) -- (mg*5,mg*30) & flex((mg*5,mg*30),(mg*25,mg*22.5),(mg*5,mg*15));
+draw (mg*17,mg*12) -- (mg*25,0);
+endchar;
+
+beginchar(102,widewidth#,height#,0); "yoo";
+getpen;
+draw (mg*20,mg*10) -- (mg*25,mg*10) -- (mg*25,0);
+draw (mg*25,mg*10) .. (mg*12.5,0){left} .. (0,mg*15){up} .. (mg*12.5,mg*30){right}
+ .. (mg*20,mg*25){right} .. (mg*26,mg*30){right} .. (mg*32,mg*25){right}
+ .. (mg*37.5,mg*30);
+endchar;
+
+beginchar(103,fullwidth#,height#,0); "nah";
+getpen;
+draw (mg*25,mg*25) .. (mg*15,mg*30){left} .. (0,mg*15){down} .. (mg*15,0){right}
+ .. (mg*25,mg*10) -- (mg*20,mg*10);
+endchar;
+
+beginchar(104,fullwidth#,height#,0); "gu";
+getpen;
+draw (mg*25,mg*25) -- (mg*25,mg*30) -- (0,mg*30) -- (0,0) -- (mg*25,0) -- (mg*25,mg*5);
+draw (0,mg*15) -- (mg*10,mg*15);
+draw (mg*10,mg*12.5) -- (mg*10,mg*17.5);
+endchar;
+
+beginchar(105,fullwidth#,height#,0); "i";
+getpen;
+draw (0,mg*27.5) -- (mg*2.5,mg*30) -- (mg*25,mg*30);
+draw (mg*10,mg*30) -- (mg*10,0);
+endchar;
+
+beginchar(106,fullwidth#,height#,0); "lu";
+getpen;
+draw (mg*5,mg*25) .. (mg*13.75,mg*30){right} .. (mg*22.5,mg*25) -- (mg*22.5,0);
+draw (mg*20,0) -- (mg*25,0);
+draw (0,mg*10) -- (0,mg*20);
+draw (0,mg*15) -- (mg*15,mg*15) & flex((mg*15,mg*15),(mg*18.85,mg*11),(mg*22.5,mg*10));
+endchar;
+
+beginchar(107,fullwidth#,height#,0); "nu";
+getpen;
+draw (0,mg*15){down} .. (mg*7.5,0){right} .. (mg*15,mg*15){up} .. (mg*7.5,mg*30){left}
+ .. (0,mg*15){down};
+draw flex((mg*15,mg*15),(mg*17,mg*17),(mg*20,mg*10),(mg*25,mg*15));
+endchar;
+
+beginchar(108,fullwidth#,height#,0); "gwu";
+getpen;
+draw (mg*25,mg*30){left} .. (mg*5,mg*25){down} .. (mg*20,mg*20){right};
+draw (mg*20,mg*20){left} .. (0,mg*7.5){down} .. (mg*15,0){right}
+ .. (mg*25,mg*5){up} .. (mg*15,0);
+endchar;
+
+beginchar(109,fullwidth#,height#,0); "su";
+getpen;
+draw (mg*2.5,0) -- (mg*2.5,mg*30);
+draw (0,mg*30) -- (mg*5,mg*30) & flex((mg*5,mg*30),(mg*25,mg*22.5),(mg*5,mg*15));
+draw (mg*17,mg*12) -- (mg*22.25,mg*2.5);
+draw (mg*20,0) -- (mg*25,mg*5);
+endchar;
+
+beginchar(110,widewidth#,height#,0); "du";
+getpen;
+draw (mg*5,mg*25) .. (mg*10,mg*15){down} .. (mg*5,0){left} .. (0,mg*15){up} .. (mg*5,mg*25)
+ .. (mg*15,mg*30){right} .. (mg*22.5,mg*20){down} &
+ flex((mg*22.5,mg*20),(mg*33,mg*22),(mg*25.5,mg*15),(mg*37.5,mg*15));
+endchar;
+
+beginchar(111,fullwidth#,height#,0); "o";
+getpen;
+draw (mg*2.5,mg*10){left} .. (0,mg*5){down} .. (mg*2.5,0){right} .. (mg*5,mg*5){up}
+ .. (mg*2.5,mg*10){left} & flex((mg*2.5,mg*10),(mg*12.5,mg*15),(mg*25,mg*10)) ..
+ (mg*25,mg*10){down} .. (mg*20,0);
+draw (mg*12.5,mg*15) -- (mg*12.5,mg*30);
+draw (mg*7.5,mg*30) -- (mg*17.5,mg*30);
+endchar;
+
+beginchar(112,fullwidth#,height#,0); "dzu";
+getpen;
+draw flex((mg*25,mg*22.5),(mg*22.5,mg*25),(mg*20,mg*22.5),(mg*17.5,mg*25),(mg*15,mg*22.5));
+draw (mg*15,mg*22.5) .. (mg*7.5,mg*30){left} .. (0,mg*15){down} .. (mg*7.5,0){right}
+ .. (mg*15,mg*7.5) & flex((mg*15,mg*7.5),(mg*17.5,mg*5),(mg*20,mg*7.5),(mg*22.5,mg*5),(mg*25,mg*7.5));
+endchar;
+
+beginchar(113,fullwidth#,height#,0); "wu";
+getpen;
+draw (mg*25,mg*20) -- (mg*15,mg*25);
+draw (mg*20,mg*22.5){up} .. (mg*15,mg*30){left} .. (0,mg*15){down} ..
+ (mg*15,0){right} .. (mg*20,mg*5){up} .. (0,mg*15);
+endchar;
+
+beginchar(114,fullwidth#,height#,0); "yu";
+getpen;
+draw (0,0) -- (mg*2.5,0) -- (mg*2.5,mg*30) -- (0,mg*30);
+draw (mg*2.5,0){right} .. (mg*25,mg*7.5){up} .. (mg*2.5,mg*15){left} ..
+ (mg*2.5,mg*15){right} .. (mg*20,mg*22.5){up} .. (mg*2.5,mg*30){left};
+endchar;
+
+beginchar(115,fullwidth#,height#,0); "s";
+getpen;
+draw flex((mg*8,mg*10),(mg*4,0),(0,mg*10)) .. (0,mg*10) -- (mg*15,mg*10) &
+ flex((mg*15,mg*10),(mg*20,0),(mg*25,mg*10)) .. (mg*25,mg*10) ..
+ (mg*25,mg*12){up} .. (mg*5,mg*30){left};
+endchar;
+
+beginchar(116,fullwidth#,height#,0); "hna";
+getpen;
+draw (0,mg*20) -- (mg*10,mg*20);
+draw (mg*5,mg*30) -- (mg*5,mg*10) & flex((mg*5,mg*10),(mg*12.5,0),(mg*20,mg*10)) ..
+ (mg*20,mg*10) -- (mg*25,mg*10);
+endchar;
+
+beginchar(117,narrowwidth#,height#,0); "u";
+getpen;
+draw (0,0) .. (mg*5,mg*5) .. (mg*7.5,mg*20);
+draw (mg*15,0) .. (mg*10,mg*5) .. (mg*7.5,mg*20);
+getbigpen;
+drawdot(mg*7.5,mg*29);
+endchar;
+
+beginchar(118,narrowwidth#,height#,0); "ka";
+getpen;
+draw (0,mg*30){right} .. (mg*15,mg*15){down} .. (mg*7.5,0){left} ..
+ (0,mg*7.5){up} .. (mg*15,mg*15);
+endchar;
+
+beginchar(119,fullwidth#,height#,0); "ta";
+getpen;
+draw (0,mg*30) -- (mg*7.5,0) -- (mg*15,mg*30) -- (mg*18,mg*30);
+draw (mg*7,mg*30) -- (mg*14.5,0) -- (mg*22,mg*30) -- (mg*25,mg*30);
+endchar;
+
+beginchar(120,fullwidth#,height#,0); "ti";
+getpen;
+draw (0,mg*25) -- (mg*5,mg*30);
+draw (mg*2.5,mg*27.5) -- (mg*25,mg*27.5) -- (mg*25,0);
+draw (mg*25,mg*22.5){down} .. (mg*10,0){left} .. (0,mg*7.5);
+endchar;
+
+beginchar(121,fullwidth#,height#,0); "tla";
+getpen;
+draw (0,0) -- (mg*25,0) -- (mg*25,mg*5);
+draw (mg*10,0) -- (mg*10,mg*20) & flex ((mg*10,mg*20),(mg*20,mg*30),(mg*25,mg*20));
+endchar;
+
+beginchar(122,fullwidth#,height#,0); "te";
+getpen;
+draw (0,mg*25) -- (0,mg*30) -- (mg*25,mg*30);
+draw (mg*12.5,mg*30) -- (mg*12.5,mg*10) .. (mg*18.75,0){right} ..
+ (mg*25,mg*10){up} .. (mg*12.5,mg*15){left};
+endchar;
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/chess/chess10.mf b/Master/texmf-dist/fonts/source/public/chess/chess10.mf
new file mode 100644
index 00000000000..50edaa81d37
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chess/chess10.mf
@@ -0,0 +1,21 @@
+% This is `chess10.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 10 points chess font.
+% A complete chess diagram is 80 X 80 points.
+
+mode_setup;
+input chessbase;
+
+M=1; % number of squares
+d#:=10pt#/M; % size per square
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input chesspieces;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/chess/chess20.mf b/Master/texmf-dist/fonts/source/public/chess/chess20.mf
new file mode 100644
index 00000000000..8e5894a6709
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chess/chess20.mf
@@ -0,0 +1,21 @@
+% This is `chess20.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 20 points chess font.
+% A complete chess diagram is 160 X 160 points.
+
+mode_setup;
+input chessbase;
+
+M=1; % number of squares
+d#:=20pt#/M; % size per square
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input chesspieces;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/chess/chess30.mf b/Master/texmf-dist/fonts/source/public/chess/chess30.mf
new file mode 100644
index 00000000000..21c227ce08b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chess/chess30.mf
@@ -0,0 +1,21 @@
+% This is `chess30.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 30 points chess font.
+% A complete chess diagram is 240 X 240 points.
+
+mode_setup;
+input chessbase;
+
+M=1; % number of squares
+d#:=30pt#/M; % size per square
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input chesspieces;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/chess/chessbase.mf b/Master/texmf-dist/fonts/source/public/chess/chessbase.mf
new file mode 100644
index 00000000000..9aaa7f8674e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chess/chessbase.mf
@@ -0,0 +1,285 @@
+% This is `chessbase.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% In this file all pieces are defined.
+% The points defining a piece are all in the unitsquare
+% (0,0)--(0,1)--(1,1)--cycle.
+
+def dark_square(expr D) =
+ clearit; L:=min(D/4, 9); delta:=1/L;
+ pickup fine_pen;
+ for i=1 upto min(D/4,9):
+ draw (0,delta*i*D)--(D-delta*i*D,D);
+ draw (delta*i*D,0)--(D,D-delta*i*D);
+ endfor;
+ draw (0,0)--(D,D);
+ enddef;
+
+def erase_square(expr D, col, row) =
+ currentpicture:=board;
+ erase fill (0,0)--(0,1)--(1,1)--(1,0)--cycle scaled D shifted(col*D, row*D);
+ board:=currentpicture;
+ enddef;
+
+def empty_board(expr D) =
+ picture board; path border;
+ border = ((0,0)--(1,0)--(1,1)--(0,1)--cycle);
+ dark_square(D); board:=nullpicture;
+ for i=0 upto M-1:
+ for j=0 upto M-1:
+ if not odd(i+j): addto board also currentpicture shifted (D*i,D*j) fi;
+ endfor
+ endfor;
+ clearit;
+ pickup border_pen;
+ draw border scaled (M*D);
+ addto board also currentpicture;
+ currentpicture:=board;
+ enddef;
+
+def reflect(text t) =
+ forsuffixes $=t: z$'=z$ reflectedabout (z1,z2); endfor;
+ enddef;
+
+def opr(suffix $) = (x$+thick#/d#, y$) enddef; % one point right
+def opl(suffix $) = (x$-thick#/d#, y$) enddef; % one point left
+def opu(suffix $) = (x$, y$+thick#/d#) enddef; % one point up
+def opd(suffix $) = (x$, y$-thick#/d#) enddef; % one point down
+
+vardef K(expr D, col, row) =
+ clearxy;
+ path cross_bar, crown, crown_top, crown_left, crown_right, crown_lower,
+ crown_top_inner, crown_left_inner, crown_right_inner;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thick_pen;
+% draw cross
+ z1=(.5,.96); z2=(.5,.8); z11=(.42,.9); reflect(11);
+ cutdraw (z1--z2) moved; cutdraw (z11--z11') moved;
+% top part of crown
+ z3=(.5,.38); z21=(.475,.5); z22=(.45,.575); z23=(.45,.775);
+ reflect(21,22,23);
+ crown_top= ((z3..z21..z22..z23..z2..z23'..z22'..z21'..z3) & cycle);
+% left and right part
+ z31=z21; z32=z22; z33=(.32,.67); z34=(.13,.69); z35=(.07,.55);
+ z36=(.13,.45); z37=(.2,.34);
+ reflect(31, 32, 33, 34, 35, 36, 37);
+ crown_left=(z3..z31..z33..z34..z35..z36..z37);
+ crown_right=(z37'..z36'..z35'..z34'..z33'..z31'..z3);
+% lower part of the crown
+ z6=(.5,.095); z61=(.27,.12); z62=(.2,.15); z63=(.21,.23);
+ reflect(61, 62, 63);
+ crown_lower= ((z37--z63) & (z63--z62) & (z62..z61..z6..z61'..z62') &
+ (z62'--z63') & (z63'--z37') & (z37'..z3..z37) & cycle);
+% draw contour of crown
+ pickup thin_pen;
+ crown= crown_left & z37..z3..z37' & crown_right & cycle;
+ if background=dark: erase fill crown moved;
+ erase fill crown_top moved;
+ erase fill crown_lower moved;fi;
+ draw crown moved; draw crown_top moved;
+ if color=black:
+ z121=(.5,.5); z123=(.45,.675); z102=(.5,.77);
+ reflect(123);
+ crown_top_inner = (z121{curl 0}..z123..z102..z123'..{curl 0}z121 & cycle);
+ z131=(.45,.5); z133=(.32,.64); z134=(.13,.66); z135=(.10,.55);
+ z136=(.16,.45); z137=(.22,.36); z103=(.475,.4);
+ crown_left_inner= ((z103..z131..z133..z134..z135..z136..z137)
+ & (z137..{right}z103) & cycle);
+ crown_right_inner=crown_left_inner reflectedabout (z1,z2);
+ fill crown_top_inner moved;
+ fill crown_left_inner moved;
+ fill crown_right_inner moved;
+ fill crown_lower moved;
+ else: draw crown_lower moved;
+ fi;
+% draw inner parts
+ z4=(.5,.28); z5=(.5,.21);
+ if color=white:
+ draw (z37..z3..z37') moved;
+ draw (z63..z4..z63') moved;
+ draw (z62..z5..z62') moved;
+ else: pickup thick_pen;
+ erase draw (opr(37)..z3..opl(37')) moved;
+ erase draw (opr(63)..z4..opl(63')) moved;
+ erase draw (opr(62)..z5..opl(62')) moved;
+ fi;
+ enddef;
+
+vardef Q(expr D, col, row) =
+ clearxy;
+ path crown_top, crown, crown_lower;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% top part of crown
+ z1=(.5,.92); z2=(.5,.5); z11=(.42,.46); z12=(.275,.88);
+ z13=(.25,.44); z14=(.075,.8); z15=(.125,.4);
+ reflect(11,12,13,14,15);
+ crown_top = (z15'--z14'--z13'--z12'--z11'--z1--z11--z12--z13--z14--z15);
+% lower part of the crown
+ z6=(.5,.0775); z61=(.25,.1); z62=(.2,.125); z63=(.24,y62+1/3(y15-y62));
+ z64=(.2,y62+2/3(y15-y62));
+ reflect(61,62,63,64);
+ crown_lower= ((z15--z64) & (z64--z63) & (z63--z62) &
+ (z62..z61..z6..z61'..z62') & (z62'--z63') & (z63'--z64') &
+ (z64'--z15'));
+% draw contour of crown
+ crown= (crown_top & crown_lower & cycle);
+ if background=dark:
+ if color=white: erase fill crown moved; fi; fi;
+ if color=white: draw crown moved;
+ forsuffixes $:=1,12,12',14,14':
+ erase fill (fullcircle scaled .1 shifted z$) moved;
+ draw (fullcircle scaled .1 shifted z$) moved; endfor;
+ else: fill crown moved;
+ forsuffixes $:=1,12,12',14,14':
+ fill (fullcircle scaled .1 shifted z$) moved; endfor; fi;
+% draw inner parts
+ z3=(.5,y5+(y64-y62)); z4=(.5,y5+(y63-y62)); z5=(.5,.18);
+ if color=white: draw (z64..z3..z64') moved; draw (z63..z4..z63') moved;
+ draw (z62..z5..z62') moved;
+ z21=z11; z22=(.325,.475); z23=z13; z24=(.175,.44); z25=z15;
+ reflect(21,22,23,24,25);
+ draw ((z2..z21..z22) & (z22..z23..z24) & (z24--z25)) moved;
+ draw ((z2..z21'..z22') & (z22'..z23'..z24') & (z24'--z25')) moved;
+ else: pickup thick_pen;
+ erase draw (opr(64)..z3..opl(64')) moved;
+ erase draw (opr(63)..z4..opl(63')) moved;
+ erase draw (opr(62)..z5..opl(62')) moved;
+ fi;
+ enddef;
+
+vardef R(expr D, col, row) =
+ clearxy;
+ path rook;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% top part of rook
+ z1=(.5,.86); y15=y14=y11=y1; x15=x16=.21; x19=x20=.225; y13=y12=.8;
+ y16=.725; y17=.65; y18=.35; y19=.26; y20=y21=.175; y22=.1;
+ x22=x21=.175; x17=x18=.31; x13=x14=.325; x11=x12=.43; z2=(.5,.1);
+ reflect(11,12,13,14,15,16,17,18,19,20,21,22);
+ rook = (z11--z12--z13--z14--z15--z16--z17--z18--z19--z20--z21--z22--z22'
+ --z21'--z20'--z19'--z18'--z17'--z16'--z15'--z14'--z13'--z12'--z11'--cycle);
+% draw contour of rook
+ if background=dark:
+ if color=white: erase fill rook moved; fi; fi;
+ if color=white: draw rook moved; else: fill rook moved; fi;
+% draw inner parts
+ if color=white: draw (z16--z16') moved; draw (z17--z17') moved;
+ draw (z18--z18') moved; draw (z19--z19') moved;
+ draw (z20--z20') moved;
+ else: pickup thick_pen;
+ erase draw (opr(16)--opl(16')) moved;
+ erase draw (opr(17)--opl(17')) moved;
+ erase draw (opr(18)--opl(18')) moved;
+ erase draw (opr(19)--opl(19')) moved;
+ erase draw (opr(20)--opl(20')) moved; fi;
+ enddef;
+
+vardef N(expr D, col, row) =
+ clearxy;
+ path knight, ear, eye, nose, mouth, neck;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the knight's contour
+ z1=(.5,.82); z2=(.5,.075); z11=(.45,.93); z12=(.375,.85); z13=(.25,.925);
+ z14=(.26,.8); z15=(.22,.75); z16=(.18,.7); z17=(.18,.66); z18=(.07,.42);
+ z19=(.07,.36); z20=(.14,.3); z21=(.17,.3); z22=(.175,.275); z23=(.225,.28);
+ z24=(.29,.38); z25=(.41,.46); z26=(.49,.51); z27=(.435,.295); z28=(.32,.165);
+ z29=(.31,y2); z30=(.93,y2); z31=(.87,.5); z32=(.7,.78);
+ knight = ((z1--z11--z12--z13--z14) &
+ (z14..z15..z16..z17..z18..z19..z20..z21) &
+ (z21..z22..z23..z24..z25..z26) &
+ (z26..z27..z28..z29) & (z29--z30) &
+ (z30..z31..z32..z1) &cycle);
+% draw contour of knight
+ if color=white: erase fill knight moved;
+ draw knight moved;
+ else: fill knight moved; fi;
+% draw inner parts
+ z4=(.22,.62); z41=(.25,.67); z42=(.29,.705); z43=(.31,.7); z44=(.3,.68);
+ eye = (z4..z41..z42..z43 & z43..z44..z4 & cycle);
+ z5=(.1,.36); z51=(.1,.39); z52=(.135,.43); z53=(.15,.4); z54=(.13,.38);
+ nose = (z5..z51..z52..z53..z54..z5 &cycle);
+ if color=white: z21'=(.2,.34); draw (z21'--z21) moved; %mouth
+ z26'=(.54,.63); draw (z26'..z26{z24-z26}) moved; %neck
+ draw (z12--z14) moved; % ear
+ fill eye moved; fill nose moved;
+ else: erase fill eye moved; erase fill nose moved; fi;
+ z30'=z30 + (-thick#/d#,thick#/d#); pickup thick_pen
+ erase draw (opd(1)..opd(32)..opl(31)..z30') moved; % mane
+ enddef;
+
+vardef B(expr D, col, row) =
+ clearxy;
+ path top, hat, brim, mitre, stole;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the top circle
+ z1=(.5,.85); z2=(.5,.8);
+ top = (fullcircle scaled .1 shifted z1);
+ if color=white: erase fill top moved; draw top moved;
+ else: fill top moved; fi;
+% the hat
+ z3=(.5,.43); z21=(.27,.57); z31=(.35,.4); reflect(21,31);
+ hat = (z31'..z21'..z2{(-1,1)}) & (z2{(-1,-1)}..z21..z31);
+% the brim
+ z4=(.5,.33); z5=(.5,.23);
+ z41=(.32,.28); reflect(41);
+ brim = ((z31--z41) & (z41..z5..z41') & (z41'--z31'));
+% the stole
+ z6=(.5,.15); z7=(.5,.3); z61=(.44,.12); z62=(.25,.1); z63=(.15,.05);
+ z64=(.09,.11); z65=(.25,.18); z66=(.44,.2);
+ reflect(61,62,63,64,65,66);
+ stole = ((z7..z66..z65..z64) & (z64--z63) & (z63..z62..z61..z6) &
+ (z6..z61'..z62'..z63') & (z63'--z64') & (z64'..z65'..z66'..z7) &cycle);
+% the mitre
+ mitre = (hat & brim & cycle);
+ if background=dark:
+ if color=white: erase fill mitre moved;
+ erase fill stole moved; fi; fi;
+ if color=black: fill mitre moved; fill stole moved;
+ else: draw mitre moved; draw stole moved;
+ erase fill mitre moved; draw mitre moved; fi;
+
+% inner parts of mitre
+ center:=.59; width:=.065;
+ if color=white: draw (z31..z3..z31') moved; draw (z41..z4..z41') moved;
+ draw ((.5,center-width)--(.5,center+width)) moved;
+ draw ((.5-width,center)--(.5+width,center)) moved;
+ else: pickup thick_pen;
+ erase cutdraw (opr(31)..z3..opl(31')) moved;
+ erase cutdraw (opr(41)..z4..opl(41')) moved;
+ erase cutdraw ((.5,center-width)--(.5,center+width)) moved;
+ erase cutdraw ((.5-width,center)--(.5+width,center)) moved;
+ fi;
+ enddef;
+
+vardef p(expr D, col, row) =
+ clearxy;
+ path pawn;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the pawn's contour
+ z1=(.5,.9); z2=(.5,.1); z11=(.41,.85); z12=(.46,.73); z13=(.32,.6);
+ z14=(.41,.46); z15=(.3,.4); z16=(.2,.1);
+ reflect(11,12,13,14,15,16);
+ pawn = ((z12'..z11'..z1..z11..z12) &
+ (z12..z13..z14) &
+ (z14..z15..z16) &
+ (z16--z16') &
+ (z16'..z15'..z14') &
+ (z14'..z13'..z12') & cycle);
+
+% draw contour of pawn
+ if background=dark:
+ if color=white: erase fill pawn moved; fi; fi;
+ if color=black: fill pawn moved;
+ else: draw pawn moved; fi;
+ enddef;
diff --git a/Master/texmf-dist/fonts/source/public/chess/chessdiag.mf b/Master/texmf-dist/fonts/source/public/chess/chessdiag.mf
new file mode 100644
index 00000000000..2d1cb3eeeb0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chess/chessdiag.mf
@@ -0,0 +1,56 @@
+% This is `chessdiag.mf' version 1.1 as of 11/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% file generates a complete chess diagram
+
+% most versions of METAFONT have memorylimits so generating a complete
+% diagram of 160 X 160 points for a 300 DPI printer is not possible
+
+mode_setup;
+input chessbase;
+
+def draw_pieces(text piece_list) =
+ string piece, location;
+ for p=piece_list:
+ l:=length p;
+ exitunless (l=2) or (l=3);
+ if l=2: piece:="p"; i:=0;
+ else: piece:=substring(0,1) of p; i:=1; fi;
+ column:=ASCII substring(i,i+1) of p - ASCII "a";
+ row:=ASCII substring(i+1,i+2) of p - ASCII "1";
+ if not odd(column+row): background:=dark; else: background:=light; fi;
+ scantokens piece(d, column,row);
+ endfor;
+ enddef;
+
+def w(text piece_list) =
+ color:=white;
+ empty_board(d); draw_pieces(piece_list);
+ enddef;
+
+def b(text piece_list) =
+ color:=black;
+ draw_pieces(piece_list);
+ enddef;
+
+M=8; % number of squares
+d#:=100pt#/M; % size per square
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+define_whole_pixels(d);
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+% put here the wanted diagram (ex.: mate in three problem)
+
+w("Kc2","Nb4","Bf8","b3","g7");
+b("Ka3","b6");
+showit;
+
+message("White mates in three moves. Do you see how?");
+StopMe;
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/chess/chessf10.mf b/Master/texmf-dist/fonts/source/public/chess/chessf10.mf
new file mode 100644
index 00000000000..2a4c826954a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chess/chessf10.mf
@@ -0,0 +1,33 @@
+% This is `chessf10.mf' version 1.2 as of 6/91
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% generates a font consisting of chess figurines
+
+mode_setup;
+input chessbase;
+
+def figurine(expr code) =
+ beginchar(code, d#, .8d#, .2d#);
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+M=1; % number of squares
+d#:=10pt#/M; % size per square
+thin#:=1/3pt#; thick#:=5/6pt#; define_blacker_pixels(thin, thick);
+light=0; dark=1; white=0; black=1;
+background:=light; color:=white;
+
+figurine("K");
+figurine("Q");
+figurine("R");
+figurine("B");
+figurine("N");
+figurine("p");
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/chess/chessfig10.mf b/Master/texmf-dist/fonts/source/public/chess/chessfig10.mf
new file mode 100644
index 00000000000..f9e09a1fc28
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chess/chessfig10.mf
@@ -0,0 +1,35 @@
+% This is `chessfig10.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (uucp: rcpt@urc.tue.nl)
+% (If the filename is too long for your computer rename the file `chessf10.mf'
+% and adapt chess.sty accordingly.)
+
+% generates a font consisting of chess figurines
+
+mode_setup;
+input chessbase;
+
+def figurine(expr code) =
+ beginchar(code, d#, .8d#, .2d#);
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+M=1; % number of squares
+d#:=10pt#/M; % size per square
+thin#:=1/3pt#; thick#:=5/6pt#; define_blacker_pixels(thin, thick);
+light=0; dark=1; white=0; black=1;
+background:=light; color:=white;
+
+figurine("K");
+figurine("Q");
+figurine("R");
+figurine("B");
+figurine("N");
+figurine("p");
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/chess/chesspieces.mf b/Master/texmf-dist/fonts/source/public/chess/chesspieces.mf
new file mode 100644
index 00000000000..31ccf6d6770
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chess/chesspieces.mf
@@ -0,0 +1,197 @@
+% This is `chesspieces.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% this file generates the final chess font
+
+background:=light; color:=white;
+
+beginchar("0", d#, d#, 0); "0: light square";
+endchar;
+
+background:=dark;
+
+beginchar("Z", d#, d#, 0); "Z: dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("K", d#, d#, 0); "K: white king on light square";
+ define_whole_pixels(d);
+ K(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("k", d#, d#, 0); "k: black king on light square";
+ define_whole_pixels(d);
+ K(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("J", d#, d#, 0); "J: white king on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ K(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("j", d#, d#, 0); "j: black king on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ K(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("Q", d#, d#, 0); "Q: white queen on light square";
+ define_whole_pixels(d);
+ Q(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("q", d#, d#, 0); "q: black queen on light square";
+ define_whole_pixels(d);
+ Q(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("L", d#, d#, 0); "L: white queen on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ Q(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("l", d#, d#, 0); "l: black queen on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ Q(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("R", d#, d#, 0); "R: white rook on light square";
+ define_whole_pixels(d);
+ R(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("r", d#, d#, 0); "r: black rook on light square";
+ define_whole_pixels(d);
+ R(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("S", d#, d#, 0); "S: white rook on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ R(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("s", d#, d#, 0); "s: black rook on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ R(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("B", d#, d#, 0); "B: white bishop on light square";
+ define_whole_pixels(d);
+ B(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("b", d#, d#, 0); "b: black bishop on light square";
+ define_whole_pixels(d);
+ B(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("A", d#, d#, 0); "A: white bishop on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ B(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("a", d#, d#, 0); "a: black bishop on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ B(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("N", d#, d#, 0); "N: white knight on light square";
+ define_whole_pixels(d);
+ N(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("n", d#, d#, 0); "n: black knight on light square";
+ define_whole_pixels(d);
+ N(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("M", d#, d#, 0); "M: white knight on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ N(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("m", d#, d#, 0); "m: black knight on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ N(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("P", d#, d#, 0); "P: white pawn on light square";
+ define_whole_pixels(d);
+ p(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("p", d#, d#, 0); "p: black pawn on light square";
+ define_whole_pixels(d);
+ p(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("O", d#, d#, 0); "O: white pawn on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ p(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("o", d#, d#, 0); "o: black pawn on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ p(d, 0, 0);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/chess/empty.mf b/Master/texmf-dist/fonts/source/public/chess/empty.mf
new file mode 100644
index 00000000000..747b495eb2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/chess/empty.mf
@@ -0,0 +1,11 @@
+% font with empty `a' to test if mode_def exists
+
+font_identifier:="NOTHING"; font_size 10pt#;
+
+mode_setup; % font_setup;
+
+beginchar("a",10pt#,10pt#,0);
+show pixels_per_inch;
+endchar;
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/china2e/china10.mf b/Master/texmf-dist/fonts/source/public/china2e/china10.mf
new file mode 100644
index 00000000000..57cfdfbeed0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/china2e/china10.mf
@@ -0,0 +1,80 @@
+%% This file is part of the CHINASYM package,
+%% a PACKAGE for writing CHINESE CALENDAR SYMBOLS
+%% with LaTeX version 2e.
+%%
+%% -- Copyright 1997 by Udo Heyl, Eisenach. All rights reserved. --
+%%
+%% Copying of this file is authorized only if either
+%% (1) you make absolutely no changes to your copy, including name, or
+%% (2) if you do make changes, you name it something other than
+%% CHINASYM.ADD, CHINASYM.ALF, CHINASYM.ELE,
+%% CHINASYM.NUM, CHINASYM.SBL, CHINASYM.STA,
+%% CHINA10.MF or CHINA2E.STY !!!
+%% This restriction helps ensure that all styles developed for
+%% DANTE e.V. (the users group of german speaking TeX users)
+%% remain identical.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT
+%% ALLOWED to take money for the distribution or use of either this
+%% file or a changed version, except for some nominal charge for
+%% copying etc.
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% Udo Heyl
+%% Stregdaer Allee 7
+%% 99817 Eisenach
+%% Federal Republic of Germany
+%%
+%% or
+%% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
+%% Postfach 10 18 40
+%% 69008 Heidelberg
+%% Federal Republic of Germany
+%% Email: german@dante.de
+%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% CHINA10.MF : (Version 1.00, June 1, 1997) %%
+%% Udo Heyl, Stregdaer Allee, 99817 Eisenach %%
+%% to be used under LaTeX.2E and LaTeX.209 - %%
+%% supported by CHINA2E.STY or CHINA209.STY. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_coding_scheme = "Gala Design: Chinese Calendar Symbols";
+font_identifier = "china10";
+
+pen bold_pen, thick_pen, mean_pen, thin_pen, tiny_pen, syma_pen, symb_pen;
+U# := 9pt#; u# := (1/1024)*U#; define_pixels(U,u);
+
+bold_pen := pencircle xscaled 1pt yscaled .6pt;
+thick_pen := pencircle xscaled .7pt yscaled .2625pt rotated 25;
+mean_pen := pencircle xscaled .6pt yscaled .225pt rotated 25;
+thin_pen := pencircle xscaled .4pt yscaled .15pt rotated 25;
+tiny_pen := pencircle scaled .1pt;
+syma_pen := pencircle xscaled .6pt yscaled .5pt;
+symb_pen := pencircle xscaled .2pt yscaled .5pt;
+
+o:=0;
+input chinasym.add; input chinasym.ele; input chinasym.num;
+input chinasym.sta; input chinasym.alf; input chinasym.sbl;
+
+thick_pen := pencircle xscaled .35pt yscaled .1313pt rotated 25;
+mean_pen := pencircle xscaled .3pt yscaled .1125pt rotated 25;
+thin_pen := pencircle xscaled .2pt yscaled .075pt rotated 25;
+
+o:=128;
+input chinasym.ele; input chinasym.num;
+input chinasym.sta;
+
+font_size 10pt#;
+font_normal_space 6pt#;
+font_normal_stretch 1.5pt#;
+font_normal_shrink 1pt#;
+
+bye
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of CHINA10.MF %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/china2e/chinasym.add b/Master/texmf-dist/fonts/source/public/china2e/chinasym.add
new file mode 100644
index 00000000000..86516d1203b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/china2e/chinasym.add
@@ -0,0 +1,330 @@
+%% This file is part of the CHINASYM package,
+%% a PACKAGE for writing CHINESE CALENDAR SYMBOLS
+%% with LaTeX version 2e.
+%%
+%% -- Copyright 1997 by Udo Heyl, Eisenach. All rights reserved. --
+%%
+%% Copying of this file is authorized only if either
+%% (1) you make absolutely no changes to your copy, including name, or
+%% (2) if you do make changes, you name it something other than
+%% CHINASYM.ADD, CHINASYM.ALF, CHINASYM.ELE,
+%% CHINASYM.NUM, CHINASYM.SBL, CHINASYM.STA,
+%% CHINA10.MF or CHINA2E.STY !!!
+%% This restriction helps ensure that all styles developed for
+%% DANTE e.V. (the users group of german speaking TeX users)
+%% remain identical.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT
+%% ALLOWED to take money for the distribution or use of either this
+%% file or a changed version, except for some nominal charge for
+%% copying etc.
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% Udo Heyl
+%% Stregdaer Allee 7
+%% 99817 Eisenach
+%% Federal Republic of Germany
+%%
+%% or
+%% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
+%% Postfach 10 18 40
+%% 69008 Heidelberg
+%% Federal Republic of Germany
+%% Email: german@dante.de
+%%
+
+%%% This File contains ADDITIONAL SYMBOLS %%
+
+%% The Euro Symbol %%
+beginchar(255,U#,U#,0); "euro"; pickup thick_pen; a=.1w; b=.1h;
+ z1=(8a,6b); z2=(8a,1.5b); z3=(5.5a,7.5b); z4=(x3,0); z5=(3a,y1);
+ z6=(x5,y2); z7=1/3[z1,z6]; z8=2/3[z1,z6]; x9=x10=a; y9=y7; y10=y8;
+ draw z1..z3..z5..z6..z4..z2; draw z9--z7; draw z10--z8;
+endchar;
+
+%% Moon Phases %%
+
+beginchar(123,U#,U#,0); "The New Moon"; pickup tiny_pen;
+ z1=(4.5a,4b); z2=(3a,5b); z3=(6a,5b);
+ z4=(3.5a,3.5b); z5=(5.5a,3.5b); z6=(2.5a,2b); z7=(6.5a,2b);
+ fill fullcircle scaled 8pt shifted z1;
+ unfill fullcircle scaled 1.3pt shifted z2;
+ unfill fullcircle scaled 1.3pt shifted z3;
+ unfill z4{dir30}..{dir-30}z5{dir210}..{dir150}z4..cycle;
+ unfill z6{dir-10}..{dir10}z7{dir230}..{dir130}z6..cycle;
+endchar;
+
+beginchar(124,U#,U#,0); "The first Quarter"; pickup tiny_pen;
+ z1=(2.5a,0); z2=(6.5a,4b); z3=(2.5a,8b); z4=(3a,5b); z5=(a,4b);
+ z6=(3a,3.5b); z7=(2.5a,2.7b); z8=(5a,3b); z9=(3a,1.8b); z10=(4.5a,5b);
+ fill z1{right}..{up}z2..{left}z3{dir-60}..z4--z5--z6--z7--z8--z9%%%
+ ..{dir-120}z1..cycle; unfill fullcircle scaled 1.3pt shifted z10;
+endchar;
+
+beginchar(125,U#,U#,0); "The Full Moon"; pickup thick_pen;
+ z1=(4.5a,4b); z2=(3a,5b); z3=(6a,5b);
+ z4=(4a,3.5b); z5=(5a,3.5b); z6=(3a,2b); z7=(6a,2b);
+ draw fullcircle scaled 8pt shifted z1; pickup thin_pen;
+ draw fullcircle scaled 1pt shifted z2;
+ draw fullcircle scaled 1pt shifted z3;
+ draw z4{dir30}..{dir-30}z5{dir210}..{dir150}z4..cycle;
+ draw z6{dir-10}..{dir10}z7{dir220}..{dir140}z6..cycle;
+endchar;
+
+beginchar(126,U#,U#,0); "The third Quarter"; pickup thick_pen;
+ z1=(6.5a,0); z2=(2.5a,4b); z3=(6.5a,8b); z4=(6a,5b); z5=(8a,4b);
+ z6=(6a,3.5b); z7=(6.5a,2.5b); z8=(4a,3b); z9=(6a,2b); z10=(4.5a,5b);
+ draw z9..{dir-60}z1{left}..{up}z2..{right}z3{dir-120}..z4--z5--z6--z7;
+ pickup thin_pen; draw fullcircle scaled 1pt shifted z10; draw z7--z8--z9;
+endchar;
+
+%% Der gruene Punkt %%
+
+beginchar(127,U#,U#,0); "DER GRUENE PUNKT"; pickup tiny_pen;
+ z1=(5a,8b); z2=(5a,7.5b); z3=(5a,6.5b); z4=(5a,4.5b); z5=(5a,3.5b);
+ z6=(5a,1.5b); z7=(5a,.5b); z8=(5a,0); z9=(2.8a,2.5b); z10=(7.2a,5.5b);
+ z11=(a,4b); z12=(9a,4b); z13=(2.17a,6.83b); z14=(2.17a,1.17b);
+ z15=(7.83a,1.17b); z16=(7.83a,6.83b); z17=(2.7a,5.55b); z18=(2.7a,.95b);
+ z19=(7.3a,2.45b); z20=(7.3a,7.05b); z21=(1.75a,3.25b); z22=(8.25a,4.75b);
+ fill z1{right}..z20{dir-45}..z22{down}..z19{dir-135}..{left}z6%%
+ --z7{dir160}..{dir110}z9{dir70}..{dir20}z4--z5{dir20}..{dir70}%%
+ z10{dir110}..{dir160}z2--z3{left}..z17{dir-135}..z21{down}%%
+ ..z18{dir-45}..z8{right}..z15{dir45}..z12{up}..z16{dir135}%%
+ ..{left}z1..cycle;
+ draw fullcircle scaled 7pt shifted 1/2[z1,z8];
+endchar;
+
+%% Additional Chinese Calendarical and Chronological Symbols %%
+
+beginchar(161,U#,U#,0); "hua - the Flower"; pickup mean_pen;
+%% part of the Cycle of 60 years ** hua-kia-tse ** %%
+ z1=(a,b); z2=(4a,5b); z3=(3.5a,3b); z4=(3.5a,0); z5=(5a,5b); z6=(4.9a,3b);
+ z7=(5a,1.3b); z8=(8a,1.3b); z9=(7.2a,2b); z10=(4.1a,2.4b);
+ z11=(6.1a,5b); z12=(2.5a,6.5b); z13=(7a,6.5b); z14=(4a,6b);
+ z15=(5.5a,6b); z16=(3.5a,7.4b); z17=(6a,8b); z18=(6a,b);
+ draw z1--z2; draw z3--z4;
+ draw z5..z6{z7-z5}..z7{z8-z5}..{z8-z18}z18--z8;
+ draw z8..{up}z9; draw z12--z13; draw z14{up}..z16;
+ draw z15..{up}z17; draw z10..{up}z11;
+endchar;
+
+beginchar(162,U#,U#,0); "nien - the year"; pickup thick_pen;
+ z1=(a,2.5b); z2=(3.5a,2.5b); z3=(8a,2.5b); z4=(7.6a,2.8b);
+ z5=(3a,4.5b); z6=(3.5a,4.5b); z7=(7a,4.5b); z8=(6.6a,4.8b);
+ z9=(3.2a,6.5b); z10=(7.5a,6.5b); z11=(7.1a,6.8b); z12=(5a,6.5b);
+ z13=(5a,0); z14=(a,3.5b); z15=(3.5a,8b);
+ draw z1--z3--z4; draw z5--z7--z8; draw z9--z10--z11; draw z2--z6;
+ draw z12--z13; draw z14{dir45}..z9{z15-z14}..{up}z15;
+endchar;
+
+beginchar(163,U#,U#,0); "jih - the day"; pickup thick_pen;
+ for i=7,8,9,10,11 : x[i]=a; x[i+5]=8a; endfor;
+ y7=y12=0; y11=y16=8b; y8=y13=.5b; y10=y15=7.5b; y9=y14=1/2[y8,y10];
+ draw z7--z11; draw z12--z16; draw z8--z13; draw z9--z14; draw z10--z15;
+endchar;
+
+%% Chinese Numeric Symbols %%
+
+beginchar(164,U#,U#,0); "tsien = 1000"; pickup thick_pen;
+ z1=(4.5a,0); z2=(a,3.5b); z3=(8a,3.5b); z4=(7.6a,3.8b);
+ z5=(2a,6.5b); z7=(7a,8b); z6=(1/2[x5,x7],1/5[y5,y7]);
+ draw z1--z6; draw z2--z3--z4; draw z5..z6{z7-z5}..z7;
+endchar;
+
+beginchar(165,U#,U#,0); "pai = 100"; pickup thick_pen;
+ z1=(2a,0); z2=(2a,5.9b); z3=(7.2a,6.3b); z4=(7a,5.9b); z5=(7a,0);
+ z6=(6.3a,.4b); z7=(2a,b); z8=(7a,b); z9=1/2[z2,z7]; z10=1/2[z4,z8];
+ z11=(a,8b); z12=(8a,8b); z13=(3.5a,6.3b); z14=(4.5a,7.8b);
+ draw z1--z2--z4--z5--z6; draw z7--z8; draw z9--z10; draw z4{up}..z3;
+ draw z11--z12; draw z13{up}..z14;
+endchar;
+
+beginchar(166,U#,U#,0); "ling = 0"; pickup thick_pen;
+ z1=(a,2b); z2=(4.5a,5b); z3=(8a,2b); z4=(4.5a,8b); z5=(2.5a,8b);
+ z6=(7a,8b); z7=(6.6a,8.3b); z8=(a,5.5b); z9=(2a,7b); z10=(8a,7b);
+ z11=(7.5a,6b); z12=(2.8a,6b); z15=(6.2a,6b); z16=(2.8a,5b); z19=(6.2a,5b);
+ z13=1/4[z12,z15]; z14=3/4[z12,z15]; z17=1/4[z16,z19]; z18=3/4[z16,z19];
+ z20=(4a,3.1b); z21=(4.6a,2.5b); z22=(2.5a,2b); z23=(6a,2b);
+ z25=(3.5a,b); z26=(5.6a,0); z24=(1/2[x25,x26],1/2[y25,y26]+.3b);
+ draw z1{dir20}..{dir60}z2{dir-60}..{dir-20}z3; draw z2--z4;
+ draw z5--z6--z7; draw z8{dir30}..{up}z9--z10{dir-150}..{down}z11;
+ draw z12--z13; draw z14--z15; draw z16--z17; draw z18--z19;
+ draw z20..{down}z21; draw z22--z23; draw z24{dir80}..{dir30}z23;
+ draw z25{dir-10}..{dir-50}z26;
+endchar;
+
+beginchar(167,U#,U#,0); "xin - NEW"; pickup mean_pen;
+%% part of NEW Year, NEW Moon etc. pp. %%
+ z1=(a,7b); z2=(4.5a,7b); z3=(4.1a,7.3b); z4=(a,5b); z5=(4.5a,5b);
+ z6=(4.1a,5.3b); z7=(1.5a,3b); z8=(4a,3b); z9=(3.6a,3.3b); z10=(a,0);
+ z11=(2a,2.5b); z12=(3.5a,2.5b); z13=(4a,b); z14=(2.75a,5b); z15=(4a,6.7b);
+ z17=(1.5a,6.5b); z16=.9[z17,z14]; z18=.65[z1,z3]; z19=(2a,8b);
+ z20=(5.5a,7.5b); z21=(5.5a,7b); z22=(7.5a,8b); z23=(5.5a,4.5b);
+ z24=(7a,4.5b); z25=(8a,4.5b); z26=(7.6a,4.8b); z27=(7a,0); z28=(4a,0);
+ z29=(2.75a,0); z30=(2.3a,.5b); z31=(5.5a,3b);
+ draw z30--z29--z14--z15; draw z1--z2--z3; draw z4--z5--z6;
+ draw z7--z8--z9; draw z24--z27; draw z20--z31{down}..z28;
+ draw z23--z25--z26; draw z10{dir80}..z11; draw z12{dir-30}..z13;
+ draw z14--z15; draw z16{dir110}..z17; draw z18{dir110}..z19;
+ pickup thick_pen; draw z21--z22;
+endchar;
+
+beginchar(168,U#,U#,0); "shu - book"; pickup thick_pen;
+%% part of QIAN NIAN SHU - the Book of thousand Years (Chinese Calendar) **
+ z1=(4.5a,0); z2=(4.5a,8b); x3=x4=x1; y3=1/3[y1,y2]; y4=2/3[y1,y2];
+ y7=y3=y8=y9; y5=y4=y6; x6=x8=6.3a; x5=2.5a; x7=a; x9=8a; z10=(6a,b);
+ z11=(6a,7b); z12=(8a,5b); z13=(8a,2b); draw z11{dir-10}..{dir-80}z12;
+ draw z1--z2; draw z7--z9; draw z5--z6{dir-120}..z8;
+ draw z9--z13..{dir130}z10;
+endchar;
+
+beginchar(169,U#,U#,0); "siu - constellation"; pickup thick_pen;
+ z1=(1.5a,5b); z2=(3a,6.3b); z3=1/2[z1,z2]; z4=(x3,0); z5=(a,y2);
+ z6=(x1,7b); z7=(8a,y6); z8=(7.6a,7.3b); z9=(3.5a,8b); z10=(5a,y8);
+ z11=(x9,y3); z12=(x7,y3); z13=(x8,y3+.3b); x16=x18=x20=4a; x15=x10;
+ x17=x19=x21=7.5a; y16=y17=y15=4.5b; y20=y21=0; y18=y19=2.25b;
+ z14=2/3[z11,z12]; draw z1--z2; draw z3--z4; draw z5..{up}z6--z7--z8;
+ draw z9{right}..{dir-60}z10; draw z11--z12--z13; draw z14{left}..z15;
+ draw z18--z19--z17--z16--z20--z21--z19;
+endchar;
+
+beginchar(170,U#,U#,0); "tsie - the 1st Half Month"; pickup mean_pen;
+ for i=1,2,3,4,5,6 : x[i]=1.5a; endfor; x7=a; x8=2.5a; x9=x10=x11=4.5a;
+ x12=x17=x16=3a; x13=x14=4a; x15=x19=x18=3.6a; x20=x8-.3a; y1=y21=0;
+ y2=y13=y30=2b; y3=y12=y22=3b; y4=y11=4b; y5=y10=5b;
+ y6=y17=y9=y23=y24=y25=6b; y7=y6-.3b; y20=y16=y14=y26=y28=y29=7b;
+ y8=y27=8b; y18=1/2[y14,y17]; y15=y14+.3b; y19=y13+.3b;
+ for i=21,22,23 : x[i]=5.5a; endfor; x24=6.5a; x26=x27=1/2[x23,x24];
+ x29=7.6a; x25=x28=x30=8a;
+ draw z1--z6; draw z7..z6..z20..z8; draw z20--z14--z15; draw z16--z18--z17;
+ draw z6--z9--z11--z4; draw z5--z10; draw z2--z13--z19; draw z3--z12;
+ draw z21--z23--z25--z30{dir120}..{left}z22; draw z23..{up}z26--z28--z29;
+ draw z27--z26..{down}z24;
+endchar;
+
+beginchar(171,U#,U#,0); "ki - the 2nd Half Month"; pickup mean_pen;
+ z1=(a,0); x2=x8=3.2a; x3=x5=4.5a; y2=y3=3b; y5=y8=4b; z7=(2a,5b);
+ z4=(6a,0); z6=(x4,y7); z9=(a,3.5b); z10=(6a,3.5b); z11=(4a,0);
+ z12=(4a,5b); z13=(2a,5.5b); z14=(7a,y13); z15=(8a,0); z16=(8a,b);
+ z17=(a,y13); z18=(2.5a,8b); z19=.44[z17,z18]; z20=.88[z17,z18];
+ z21=(x14,y19); z22=(x15,y20); z23=(x21-.4b,y21+.3b); z24=(x22-.4b,y22+.3b);
+ draw z9--z10; draw z11--z12; draw z1{dir20}..z2; draw z4..{up}z3;
+ draw z8..{left}z7; draw z5..{right}z6; draw z13--z14{dir-100}..{right}%%
+ z15{dir120}..z16; draw z19--z21--z23; draw z20--z22--z24; draw z17--z18;
+endchar;
+
+beginchar(172,U#,U#,0); "li - the calendar"; pickup mean_pen;
+ z1=(a,0); z2=(2.5a,8b); z3=(8a,8b); z4=(7.6a,8.3b); z5=(5.5a,7b);
+ z6=(5.3a,4.5b); z7=(2a,0); z8=(3.5a,4.5b); z9=(8a,4.5b);
+ z11=(5a,b); z12=(6a,0);
+ draw z1{dir50}..{up}z2--z3--z4; draw z5..z6..{dir200}z7;
+ draw z8-- z9{dir-100}..{left}z12..{dir120}z11;
+endchar;
+
+beginchar(173,U#,U#,0); "yang - male / positive / solar"; pickup mean_pen;
+ z1=(a,0); z2=(a,8b); z3=(3a,8b); z4=(2.5a,5.5b); z5=(3a,3.5b);
+ z6=(2a,2b); draw z1--z2{dir-30}..{dir30}z3; draw z3..z4..z5..{left}z6;
+ for i=7,8,9,10,11 : x[i]=4.5a; x[i+5]=8a; endfor;
+ y7=y12=0; y11=y16=8b; y8=y13=.5b; y10=y15=7.5b; y9=y14=1/2[y8,y10];
+ draw z7--z11; draw z12--z16; draw z8--z13; draw z9--z14; draw z10--z15;
+endchar;
+
+beginchar(174,U#,U#,0); "yin - female / negative / lunar"; pickup mean_pen;
+ z1=(a,0); z2=(a,8b); z3=(3a,8b); z4=(2.5a,5.5b); z5=(3a,3.5b);
+ z6=(2a,2b); draw z1--z2{dir-30}..{dir30}z3; draw z3..z4..z5..{left}z6;
+ for i=7,8,9,10,11 : x[i]=4.5a; x[i+5]=8a; endfor;
+ z17=(8a,1.3b); z18=(6.5a,.3b); z19=(3.5a,0);
+ y7=y12=0; y11=y16=8b; y8=y13=3b; y10=y15=7.5b; y9=y14=1/2[y8,y10];
+ draw z19..{up}z8--z11; draw z8--z13; draw z9--z14; draw z10--z15;
+ draw z16--z14{down}..z17{down}..{dir150}z18;
+endchar;
+
+beginchar(175,U#,U#,0); "jie - moment"; pickup thick_pen;
+ z1=(4a,0); z2=(1.5a,4.5b); z14=(x1,y2); z3=(7.5a,y2); z4=(x3,2b);
+ z5=(6.5a,b); z6=(5.5a,1.5b); z7=(a,6.5b); z8=(8a,y7); z9=(7.6a,6.5b);
+ z10=(3a,5.5b); z11=(x10+.5a,8b); z12=(6a,y10); z13=(x12+.5a,y11);
+ draw z2--z3--z4{down}..{left}z5..z6; draw z1--z14;
+ draw z7--z8--z9; draw z10--z11; draw z12--z13;
+endchar;
+
+beginchar(176,U#,U#,0); "yuan - beginning"; pickup thick_pen;
+ z1=(a,6b); z2=(8a,y1); z3=(7.6a,y1+.3b); z4=(2a,8b); z5=(7a,8b);
+ z6=(6.6a,8.3b); z7=(a,0); z8=(3a,3b); z9=(3a,y1); z10=(5a,y1);
+ z11=(5a,b); z12=(6a,0); z13=(8a,0); z14=(8a,1.5b);
+ draw z1--z2--z3; draw z4--z5--z6; draw z7..{up}z8--z9;
+ draw z10--z11{down}..{right}z12--z13{dir120}..{dir60}z14;
+endchar;
+
+beginchar(177,U#,U#,0); "dan - the morning"; pickup thick_pen;
+ z1=(a,0); z2=(8a,0); z3=(7.6a,.3b); draw z1--z2--z3;
+ for i=7,8,9,10,11 : x[i]=2a; x[i+5]=7a; endfor;
+ y7=y12=2b; y11=y16=8b; y8=y13=2.3b; y10=y15=7.7b; y9=y14=1/2[y8,y10];
+ draw z7--z11; draw z12--z16; draw z8--z13; draw z9--z14; draw z10--z15;
+endchar;
+
+beginchar(178,U#,U#,0); "di - earthly"; pickup mean_pen;
+ z1=(a,0); z3=(3a,b); z2=1/2[z1,z3]; z5=(x2,7.5b); z4=(x1,6b);
+ z6=(x3,y4); z7=(7a,6b); x8=x3; (y7-y8)*(x3-x1)=(y3-y1)*(x7-x8);
+ z9=(4a,8b); z10=(x9,2b); z11=(6a,0); z12=(8a,0); z13=(8a,1.5b);
+ z14=(4/7[x8,x7],7b); z15=(x14,2b); z16=(x7,2.5b); z17=(x7-.3a,2b);
+ z18=(x7-.6a,2.2b); draw z4--z6; draw z2--z5; draw z8--z7;
+ draw z9--z10{down}..{right}z11--z12{dir120}..z13; draw z14--z15;
+ draw z7--z16{down}..{left}z17..z18; pickup thick_pen; draw z1--z3;
+endchar;
+
+beginchar(179,U#,U#,0); "zhi - branch"; pickup thick_pen;
+ z1=(a,0); for i=2,3,4: z[i]=((12-2.5*i)*a,4b); endfor; z5=(8a,0);
+ z6=(x3,8b); z7=(a,6b); z8=(8a,y7); z9=(x8-.4a,y8+.3a);
+ draw z1{right}..{dir60}z2--z4{dir-60}..{right}z5;
+ draw z3--z6; draw z7--z8--z9;
+endchar;
+
+beginchar(180,U#,U#,0); "tian - heaven"; pickup thick_pen;
+ z1=(a,0); z2=(8a,0); z3=(4.5a,8b); z4=(a,4.5b); z5=(8a,y4);
+ z6=(x5-.4a,y5+.3b); z7=(2a,8b); z8=(7a,y7); z9=(x8-.4a,y8+.3b);
+ draw z1{right}..{up}z3{down}..{right}z2; draw z4--z5--z6;
+ draw z7--z8--z9;
+endchar;
+
+beginchar(181,U#,U#,0); "gan - branch"; pickup thick_pen;
+ z1=(4.3a,0.4b); z2=(4.5a,0); z3=(4.5a,8b); z4=(a,4.5b); z5=(8a,y4);
+ z6=(x5-.4a,y5+.3b); z7=(2a,8b); z8=(7a,y7); z9=(x8-.4a,y8+.3b);
+ draw z1--z2--z3; draw z4--z5--z6; draw z7--z8--z9;
+endchar;
+
+beginchar(182,U#,U#,0); "mu - WOOD"; pickup thick_pen;
+ z1=(4.5a,0); z2=(x1,5b); z3=(x1,8b); z4=(a,y2); z5=(8a,y2);
+ z6=(x4,2b); z7=(x5,y6); draw z1--z3; draw z4--z5;
+ draw z6{dir20}..z2; draw z7{dir160}..z2;
+endchar;
+
+beginchar(183,U#,U#,0); "huo - FIRE"; pickup thick_pen;
+ z1=(a,0); z2=(4.5a,8b); z3=(8a,0); z4=(5a,4b); z5=(7a,7b); z6=(2a,4b);
+ z7=(3a,6b); draw z1{dir20}..{up}z2{down}..{dir-20}z3; draw z4--z5;
+ draw z6..{up}z7;
+endchar;
+
+beginchar(184,U#,U#,0); "tu - EARTH"; pickup thick_pen;
+ z1=(4.3a,7.6b); z2=(4.5a,8b); z3=(4.5a,0); z4=(a,0); z5=(8a,y4);
+ z6=(x5-.4a,y5+.3b); z7=(2a,4b); z8=(7a,y7); z9=(x8-.4a,y8+.3b);
+ draw z1--z2--z3; draw z4--z5--z6; draw z7--z8--z9;
+endchar;
+
+beginchar(185,U#,U#,0); "jin - METAL"; pickup thick_pen;
+ z1=(a,0); z2=(8a,y1); z3=(x2-.4a,y2+.3b); z11=1/2[z1,z2];
+ z4=(2a,3b); z5=(7a,y4); z6=(x5-.4a,y5+.3b);
+ z7=(3a,4.5b); z8=(6a,y7); z9=(x8-.4a,y8+.3b); z10=1/2[z7,z8];
+ z12=(5a,0); z13=(7a,2.2b); z14=(2a,2b); z15=(3.5a,.8b);
+ z16=(a,4b); z17=(4.5a,8b); z18=(8a,y16);
+ draw z1--z2--z3; draw z4--z5--z6; draw z7--z8--z9;
+ draw z14{dir-20}..z15; draw z12{dir60}..z13; draw z11--z10;
+ draw z16..{dir60}z17{dir-60}..z18;
+endchar;
+
+beginchar(186,U#,U#,0); "shui - WATER"; pickup thick_pen;
+ z1=(4.5a,8b); z2=(x1,b); z3=(4.2a,0); z4=(3.9a,.5b); z5=(a,2b);
+ z6=(3.5a,5.5b); z7=(1.5a,5b); z8=(7a,6.5b); z9=(5a,5.6b); z10=(8a,2b);
+ draw z1--z2{down}..{left}z3..z4; draw z5{dir30}..{up}z6;
+ draw z6..{left}z7; draw z8..{left}z9; draw z9..{dir-30}z10;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/china2e/chinasym.alf b/Master/texmf-dist/fonts/source/public/china2e/chinasym.alf
new file mode 100644
index 00000000000..fb3a4801e5d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/china2e/chinasym.alf
@@ -0,0 +1,443 @@
+%% This file is part of the CHINASYM package,
+%% a PACKAGE for writing CHINESE CALENDAR SYMBOLS
+%% with LaTeX version 2e.
+%%
+%% -- Copyright 1997 by Udo Heyl, Eisenach. All rights reserved. --
+%%
+%% Copying of this file is authorized only if either
+%% (1) you make absolutely no changes to your copy, including name, or
+%% (2) if you do make changes, you name it something other than
+%% CHINASYM.ADD, CHINASYM.ALF, CHINASYM.ELE,
+%% CHINASYM.NUM, CHINASYM.SBL, CHINASYM.STA,
+%% CHINA10.MF or CHINA2E.STY !!!
+%% This restriction helps ensure that all styles developed for
+%% DANTE e.V. (the users group of german speaking TeX users)
+%% remain identical.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT
+%% ALLOWED to take money for the distribution or use of either this
+%% file or a changed version, except for some nominal charge for
+%% copying etc.
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% Udo Heyl
+%% Stregdaer Allee 7
+%% 99817 Eisenach
+%% Federal Republic of Germany
+%%
+%% or
+%% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
+%% Postfach 10 18 40
+%% 69008 Heidelberg
+%% Federal Republic of Germany
+%% Email: german@dante.de
+%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% This file contains the alphabetic and numeric signs %%
+%% of the european languages (UPPER-CASE only) for use %%
+%% in CHINESE mode without switch back to COMMON mode! %%
+%% written by Udo Heyl, Eisenach (Vers.1.0) 97/05/15. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% The stops
+
+beginchar(33,.6U#,U#,0); "exclamation mark"; pickup thick_pen;
+ z1=(3.1a,2b); z2=(2.5a,7b); z3=(5a,7b); fill z1--z2--z3..cycle;
+ fill fullcircle scaled 1pt shifted (3a,.5b);
+endchar;
+
+beginchar(34,.4U#,U#,0); "doublequote"; pickup thin_pen;
+ z1=(a,6.5b); z2=(2.5a,6.5b);
+ fill fullcircle scaled 1pt shifted z1;
+ draw (x1+.3a,y1+.2b){dir-60}..{dir-160}(x1,y1-1.6b);
+ fill fullcircle scaled 1pt shifted z2;
+ draw (x2+.3a,y2+.2b){dir-60}..{dir-160}(x2,y2-1.6b);
+endchar;
+
+beginchar(35,U#,U#,0); "address mark"; pickup thick_pen;
+ z1=(a,0); z2=(a,5b); z3=(8a,5b); z4=(8a,0); z5=1/2[z1,z3];
+ z6=1/4[z5,z2]; z7=1/4[z5,z3]; draw z2--z5--z3--z4--z1--z2--z3;
+ pickup thin_pen; draw z1--z6; draw z4--z7;
+endchar;
+
+beginchar(36,.6U#,U#,0); "dollar"; pickup thick_pen;
+ z1=(5a,7b); z2=(5a,5.5b); z3=(3a,7b); z4=(a,5.25b); z5=(3a,3.5b);
+ z6=(5a,1.75b); z7=(3a,0); z8=(a,1.5b); z9=(a,0); z10=(2a,6.7b);
+ z11=(2a,3.8b); z12=(4a,3.2b); z13=(4a,.3b); z14=(2.5a,8b);
+ z15=(3.5a,8b); z16=(2.5a,-b); z17=(3.5a,-b);
+ draw z1{dir-120}..z2; draw z9{dir60}..z8; draw z2..{left}z3..z10%%
+ ..{down}z4..z11..{right}z5..z12..{down}z6..z13..{left}z7..z8;
+ pickup thin_pen; draw z14--z16; draw z15--z17;
+endchar;
+
+beginchar(37,.6U#,U#,0); "percent"; pickup thick_pen;
+ z1=(2a,6b); z2=(3a,b); draw (a,0)--(4a,7b);
+ draw fullcircle xscaled 2pt yscaled 1pt rotated 50 shifted z1;
+ draw fullcircle xscaled 2pt yscaled 1pt rotated 50 shifted z2;
+endchar;
+
+beginchar(38,.6U#,U#,0); "and"; pickup thick_pen;
+ z1=(5a,5b); z2=(1.9a,4b); z3=(4.8a,3b); z4=(1.7a,2b); z5=(4.6a,b);
+ z6=(3.6a,6b); z7=(3a,0);
+ draw z1{dir190}..{dir-100}z2{dir-80}..{dir-10}z3{dir190}..%%
+ {dir-100}z4{dir-80}..{dir-10}z5; pickup thin_pen; draw z6--z7;
+endchar;
+
+beginchar(39,.2U#,U#,0); "quote"; pickup thin_pen;
+ z1=(a,6.5b);
+ fill fullcircle scaled 1pt shifted z1;
+ draw (x1+.3a,y1+.2b){dir-60}..{dir-160}(x1,y1-1.6b);
+endchar;
+
+beginchar(40,.4U#,U#,0); "bracket on"; pickup thick_pen;
+ z1=(2a,0); z2=(3a,7b); z3=(1.5a,3.5b);
+ draw z1..{z2-z1}z3..z2;
+endchar;
+
+beginchar(41,.4U#,U#,0); "bracket off"; pickup thick_pen;
+ z1=(a,0); z2=(2a,7b); z3=(2.5a,3.5b);
+ draw z1..{z2-z1}z3..z2;
+endchar;
+
+beginchar(42,U#,U#,0); "asterix"; pickup thick_pen;
+ z1=(a,2b); z2=(4a,0); z3=(7a,2b); z4=(8a,5b); z5=(5a,7b); z6=(2a,5b);
+ z7=2/5[z2,z4]; z8=.775[z5,z3]; z9=2/5[z5,z3]; z10=2/5[z5,z1];
+ z11=.3625[z1,z5]; z12=2/5[z2,z6]; z13=1/6[z7,z10]; z14=1/6[z8,z11];
+ z15=1/6[z9,z12]; z16=1/6[z10,z7]; z17=1/6[z11,z8]; z18=1/6[z12,z9];
+ draw z2--z13--z3--z14--z4--z15--z5--z16--z6--z17--z1--z18--z2;
+endchar;
+
+beginchar(43,.6U#,U#,0); "plus"; pickup thick_pen;
+ z1=(a,3b); z2=(5a,3b); z3=(2.6a,0); z4=(3.4a,6b);
+ draw z1--z2; draw z3--z4;
+endchar;
+
+beginchar(44,.2U#,U#,0); "comma"; pickup thin_pen;
+ z1=(a,b);
+ fill fullcircle scaled 1pt shifted z1; pickup thin_pen;
+ draw (x1+.3a,y1+.2b){dir-60}..{dir-160}(x1,y1-1.6b);
+endchar;
+
+beginchar(45,.6U#,U#,0); "minus"; pickup thick_pen;
+ z1=(a,3b); z2=(5a,3b); draw z1--z2;
+endchar;
+
+beginchar(46,.2U#,U#,0); "point"; pickup thick_pen;
+ fill fullcircle scaled 1pt shifted (a,.5b);
+endchar;
+
+beginchar(47,.6U#,U#,0); "slash"; pickup thick_pen;
+ draw (a,0)--(4a,7b);
+endchar;
+
+beginchar(58,.4U#,U#,0); "double point"; pickup thick_pen;
+ fill fullcircle scaled 1pt shifted (1.5a,.5b);
+ fill fullcircle scaled 1pt shifted (2.1a,4.5b);
+endchar;
+
+beginchar(59,.4U#,U#,0); "semicolon"; pickup thick_pen;
+ z1=(1.5a,b);
+ fill fullcircle scaled 1pt shifted z1; pickup thin_pen;
+ draw (x1+.3a,y1+.2b){dir-60}..{dir-160}(x1,y1-1.6b);
+ fill fullcircle scaled 1pt shifted (2.1a,4.5b);
+endchar;
+
+beginchar(60,U#,U#,0); "info"; pickup thick_pen;
+ z1=(a,0); z2=(8a,0); z3=(8a,8b); z4=(a,8b); z5=(3a,1.5b); z6=(6a,1.5b);
+ z7=1/2[z5,z6]; z9=(4.5a,6b); z8=5/8[z7,z9]; z10=(3.8a,3.7b);
+ draw z5--z6; draw z7--z8--z10; fill fullcircle scaled 1.5pt shifted z9;
+ pickup tiny_pen; draw z1--z2--z3--z4--z1;
+endchar;
+
+beginchar(61,.7U#,U#,0); "equal"; pickup thick_pen;
+ z1=(a,2.75b); z2=(5.6a,2.75b); z3=(1.4a,4.75b); z4=(6a,4.75b);
+ draw z1--z2; draw z3--z4;
+endchar;
+
+beginchar(62,U#,U#,0); "quest"; pickup thick_pen;
+ z1=(a,0); z2=(8a,0); z3=(8a,8b); z4=(a,8b); z5=(4.5a,3.5b);
+ z6=(6.5a,5.5b); z7=(4.5a,7b); z9=(4.5a,2b); z8=(2.5a,5.5b);
+ draw z5{up}..z6{up}..z7{left}..{down}z8;
+ fill fullcircle scaled 1.5pt shifted z9;
+ pickup tiny_pen; draw z1--z2--z3--z4--z1;
+endchar;
+
+beginchar(63,.7U#,U#,0); "question mark"; pickup thick_pen;
+ z2=(2.8a,2b); z3=(6a,5b); z4=(4a,7.5b); z5=(a,6b); z1=14/11[z4,z2];
+ draw z2{z4-z2}..z3{z4-z2}..z4{left}..{z2-z4}z5;
+ fill fullcircle scaled 1pt shifted z1;
+endchar;
+
+beginchar(64,U#,U#,0); "telephone"; pickup syma_pen;
+ z1=(a,0); z2=(2a,2b); z3=(4.5a,1.4b); z4=(7a,2b); z5=(8a,0);
+ z6=(4.5a,3.86b); z7=(a,5b); z8=(3a,6b); z9=(4.5a,7b);
+ z11=(6a,6b); z12=(8a,5b); z13=(6a,8b); z14=(3a,8b);
+ fill z1{up}..{dir45}z2{dir-30}..{right}z3{right}..{dir30}z4{dir-45}%%
+ ..{down}z5{left}--z1..cycle; fill z7{dir45}..{dir20}z8{up}..z9..{down}%%
+ z11{dir-20}..{dir-45}z12{up}..{left}z13--z14{left}..{down}z7..cycle;
+ draw fullcircle xscaled 5pt yscaled 3pt shifted z6;
+ fill fullcircle xscaled 2pt yscaled 1.2pt shifted z6;
+endchar;
+
+beginchar("A",.7U#,U#,0); "A"; pickup thick_pen;
+ z1=(a,0); z2=(2a,5b); z3=(4.8a,7.5b); z4=(6a,5b); z5=(5a,0); z7=(a,4b);
+ z6=.4[z4,z5]; draw z1--z2{z2-z1}..{right}z3..{z1-z2}z4--z5;
+ draw z6{left}..{dir135}z7;
+endchar;
+
+beginchar("B",.7U#,U#,0); "B"; pickup thick_pen;
+ z1=(1.5a,0); z3=(3a,7.5b); z2=8/15[z1,z3]; z4=(a,6.5b); z5=(5a,5.5b);
+ z6=(5.5a,2b); z7=(4a,0); z8=(a,0);
+ draw z1--z3; draw z4{dir45}..{right}z3..{z1-z3}z5..{left}z2{right}%%
+ ..{z1-z3}z6..{left}z7--z8;
+endchar;
+
+beginchar("C",.7U#,U#,0); "C"; pickup thick_pen;
+ z1=(6a,6.5b); z2=(5a,7.5b); z3=(3.5a,7b); z4=(a,3b); z5=(2.5a,0);
+ z6=(4.5a,0); z7=(6a,b);
+ draw z1..{left}z2..z3..z4..{right}z5--z6{right}..z7;
+endchar;
+
+beginchar("D",.7U#,U#,0); "D"; pickup thick_pen;
+ z1=(a,6.5b); z2=(3a,7.5b); z3=(5.5a,5.5b); z4=(5.5a,2b); z5=(4a,0);
+ z6=(1.5a,0); z7=(a,0); draw z2--z6;
+ draw z1..{right}z2..z3..z4..{left}z5--z7;
+endchar;
+
+beginchar("E",.7U#,U#,0); "E"; pickup thick_pen;
+ z1=(a,0); z2=(2.5a,7.5b); z3=(a,7b); z4=(a,4b); z5=(6a,7.5b); z6=(4a,4b);
+ z7=(4a,0); z8=(6a,b);
+ draw z1--z2; draw z4{dir30}..{dir30}z6; draw z3..z2{right}..{dir30}z5;
+ draw z1--z7{right}..{up}z8;
+endchar;
+
+beginchar("F",.7U#,U#,0); "F"; pickup thick_pen;
+ z1=(a,0); z2=(2.5a,7.5b); z3=(a,7b); z4=(a,4b); z5=(6a,7.5b); z6=(4a,4b);
+ draw z1--z2; draw z4{dir30}..{dir30}z6; draw z3..z2{right}..{dir30}z5;
+endchar;
+
+beginchar("G",.7U#,U#,0); "G"; pickup thick_pen;
+ z1=(6a,6.5b); z2=(5a,7.5b); z3=(3.5a,7b); z4=(a,3b); z5=(2.5a,0);
+ z6=(4.5a,0); z7=(5.5a,2b); z8=(5a,4b); z9=(4a,4b); z10=(6a,4.5b);
+ draw z1..{left}z2..z3..z4..{right}z5--z6{right}..z7{z2-z5}..z8;
+ draw z9..z8..z10;
+endchar;
+
+beginchar("H",.7U#,U#,0); "H"; pickup thick_pen;
+ z1=(a,0); z2=(2.5a,7.5b); z3=(4.5a,0); z4=(6a,7.5b); z5=8/15[z3,z4];
+ z6=(a,5b); draw z1--z2; draw z3--z4; draw z6{dir-45}..{right}z5;
+endchar;
+
+beginchar("I",.6U#,U#,0); "I"; pickup thick_pen;
+ z1=(a,0); z2=(3a,0); z3=(5a,0); z5=(2a,6b);
+ z6=(4.5a,7.5b); z7=6/7[z2,z6]; draw fullcircle scaled .4pt shifted z6;
+ draw z1--z3; draw z2--z7; draw z5{right}..{dir60}z7;
+endchar;
+
+beginchar("J",.7U#,U#,0); "J"; pickup thick_pen;
+ z1=(a,2b); z2=(3a,7.5b); z3=(1.5a,7b); z4=(2a,0); z5=(6a,7.5b);
+ z6=(3.5a,0); z7=(5a,2.5b);
+ draw z3..z2{right}..{dir30}z5--z7{z7-z5}..{left}z6--z4{left}..z1;
+endchar;
+
+beginchar("K",.7U#,U#,0); "K"; pickup thick_pen;
+ z1=(a,0); z2=(2.5a,7.5b); z3=(a,6.5b); z4=8/15[z1,z2]; z5=(5a,7b);
+ z6=(4.5a,0); z7=(6a,b);
+ draw z1--z2; draw z3{right}..z2; draw z4{right}..z5;
+ draw z4{right}..{right}z6..z7;
+endchar;
+
+beginchar("L",.7U#,U#,0); "L"; pickup thick_pen;
+ z3=(5a,6.5b); z4=(4a,7.5b); z5=(2a,5b); z6=(a,0); z7=(4a,0); z8=(6a,b);
+ draw z3{up}..z4{left}..{down}z5..{dir-112}z6--z7{right}..z8;
+endchar;
+
+beginchar("M",.8U#,U#,0); "M"; pickup thick_pen;
+ z1=(a,0); z2=(2a,5b); z3=(3.75a,7.5b); z4=(4.3a,4b); z5=(6.75a,7.5b);
+ z6=(7a,5b); z7=(6a,0); draw z1--z2{z2-z1}..{right}z3..{down}z4{dir68}%%
+ ..{right}z5..{z1-z2}z6--z7;
+endchar;
+
+beginchar("N",.7U#,U#,0); "N"; pickup thick_pen;
+ z1=(a,0); z2=(2a,2.5b); z3=(3a,7.5b); z4=(4.5a,0); z5=(6a,7.5b);
+ draw z1..{z3-z2}z2--z3--z4--z5;
+endchar;
+
+beginchar("O",.7U#,U#,0); "O"; pickup thick_pen;
+ z1=(6a,5b); z2=(5a,7.5b); z3=(3.5a,7b); z4=(a,3b); z5=(2.5a,0);
+ z6=(3.5a,0);
+ draw z2{left}..z3..z4..{right}z5--z6{right}..z1..{left}z2;
+endchar;
+
+beginchar("P",.7U#,U#,0); "P"; pickup thick_pen;
+ z1=(1.5a,0); z3=(3a,7.5b); z2=8/15[z1,z3]; z4=(a,6.5b); z5=(6a,5.5b);
+ draw z1--z3; draw z4{dir45}..{right}z3..{z1-z3}z5..{left}z2;
+endchar;
+
+beginchar("Q",.7U#,U#,0); "Q"; pickup thick_pen;
+ z1=(6a,5b); z2=(5a,7.5b); z3=(3.5a,7b); z4=(a,3b); z5=(2.5a,0);
+ z6=(3.5a,0); z7=(3a,2b); z8=(6.4a,-.5b); draw z8{left}..{left}z7;
+ draw z2{left}..z3..z4..{right}z5--z6{right}..z1..{left}z2;
+endchar;
+
+beginchar("R",.7U#,U#,0); "R"; pickup thick_pen;
+ z1=(1.5a,0); z3=(3a,7.5b); z2=8/15[z1,z3]; z4=(a,6.5b); z5=(5a,5.5b);
+ z6=(6a,0); draw z2{right}..{right}z6;
+ draw z1--z3; draw z4{dir45}..{right}z3..{z1-z3}z5..{left}z2;
+endchar;
+
+beginchar("S",.7U#,U#,0); "S"; pickup thick_pen;
+ z1=(6a,6.5b); z2=(5a,7.5b); z3=(3.5a,7b); z4=(a,2b); z5=(2a,0);
+ z6=(3.5a,0); z7=(6a,2b); z8=(4a,4b);
+ draw z1..{left}z2..z3..z8{dir-20}..z7..{left}z6--z5{left}..z4;
+endchar;
+
+beginchar("T",.7U#,U#,0); "T"; pickup thick_pen;
+ z1=(2.3a,1.5b); z2=(3.5a,7.5b); z3=(a,6b); z4=(6a,7.5b); z5=(4a,0);
+ draw z2--z1{z1-z2}..{right}z5; draw z3{dir60}..z2{right}..{dir30}z4;
+endchar;
+
+beginchar("U",.7U#,U#,0); "U"; pickup thick_pen;
+ z1=(6a,7.5b); z2=(5a,2.5b); z3=(3a,0); z4=(2a,0); z5=(a,2.5b);
+ z6=(1.8a,6.5b); z7=(1.5a,7.5b); z8=(a,7b); z9=(6a,0);
+ draw z1--z2{z2-z1}..{left}z3--z4{left}..{z1-z2}z5--z6{z1-z2}..{left}z7%%
+ ..z8; draw z2{z2-z1}..z9;
+endchar;
+
+beginchar("V",.7U#,U#,0); "V"; pickup thick_pen;
+ z1=(a,7.5b); z2=(2a,0); z3=(6a,7.5b);
+ draw z1{dir-45}..{down}z2{dir68}..{up}z3;
+endchar;
+
+beginchar("W",.9U#,U#,0); "W"; pickup thick_pen;
+ z1=(a,7.5b); z2=(1.5a,0); z3=(8a,7.5b); z4=(3.8a,4b); z5=(4.5a,0);
+ draw z1{dir-45}..{down}z2{dir68}..{dir45}z4{dir-80}..{down}z5{dir68}%%
+ ..{up}z3;
+endchar;
+
+beginchar("X",.7U#,U#,0); "X"; pickup thick_pen;
+ z1=(a,0); z2=(6a,7.5b); z3=1/2[z1,z2]; z4=(4.5a,0); z5=2[z4,z3];
+ z7=(a,6b);
+ draw z1{dir71.5}..{dir41.5}z3..{dir71.5}z2;
+ draw z4{up}..{dir120}z3..{up}z5; draw z7{right}..z5;
+endchar;
+
+beginchar("Y",.65U#,U#,0); "Y"; pickup thick_pen;
+ z1=(2a,0); z2=(a,7.5b); z3=(6a,7.5b); z4=1/2[1/2[z2,z3],z1];
+ draw z1--z4; draw z2{z1-z4}..z4; draw z3{z1-z4}..z4;
+endchar;
+
+beginchar("Z",.7U#,U#,0); "Z"; pickup thick_pen;
+ z1=(2a,6b); z2=(3a,7.5b); z3=(6a,7.5b); z4=(a,0); z5=(4.5a,0);
+ z6=(6a,b); z7=(2a,4.25b); z8=(5a,3.25b); z9=(4.5a,7.1b);
+ draw z1..{right}z2..z9..z3--z4--z5{right}..z6; draw z7..{right}z8;
+endchar;
+
+beginchar(91,.4U#,U#,0); "sqare bracket on"; pickup thick_pen;
+ z1=(2a,0); z2=(a,0); z3=(2a,7b); z4=(3a,7b); draw z1--z2--z3--z4;
+endchar;
+
+beginchar(92,.6U#,U#,0); "backslash"; pickup thick_pen;
+ draw (4a,0)--(a,7b);
+endchar;
+
+beginchar(93,.4U#,U#,0); "sqare bracket off"; pickup thick_pen;
+ z1=(a,0); z2=(2a,0); z3=(3a,7b); z4=(2a,7b); draw z1--z2--z3--z4;
+endchar;
+
+%%% The numbers from 0 to 9 %%%
+
+beginchar("0",.6U#,U#,0); "zero"; pickup thick_pen;
+ z1=(2.5a,0); z2=(4a,0); z3=(5a,2.5b); z4=(3a,4b); z5=(2a,3.5b);
+ draw z1--z2{right}..z3..z4..z5..{right}z1..cycle;
+endchar;
+
+beginchar("1",.6U#,U#,0); "one"; pickup thick_pen;
+ z1=(a,0); z2=(5a,0); z3=(3a,0); z4=(4a,7b); z5=(2a,5b);
+ draw z1--z2; draw z3--z4..{left}z5;
+endchar;
+
+beginchar("2",.6U#,U#,0); "two"; pickup thick_pen;
+ z1=(5a,b); z2=(4.5a,0); z3=(a,0); z4=(5a,4b); z5=(3.5a,7b);
+ z6=(2.5a,6b); draw z1..{left}z2--z3{(1,7)}..z4{dir45}..{left}z5..z6;
+endchar;
+
+beginchar("3",.6U#,U#,0); "three"; pickup thick_pen;
+ z1=(a,b); z2=(2.5a,0); z3=(4a,0); z4=(5a,2.5b); z5=(3a,4b);
+ z6=(3.5a,7b); z7=(2.5a,6b); draw z1..{right}z2--z3{right}..{up}z4%%
+ ..{left}z5{dir20}..{left}z6..z7;
+endchar;
+
+beginchar("4",.6U#,U#,0); "four"; pickup thick_pen;
+ z1=(4a,0); z2=(5a,7b); z3=(4.5a,4b); z4=(a,4b); z5=(3a,7b);
+ draw z1--z2; draw z3--z4{dir45}..z5;
+endchar;
+
+beginchar("5",.6U#,U#,0); "five"; pickup thick_pen;
+ z1=(a,b); z2=(2.5a,0); z3=(4a,0); z4=(5a,2.5b); z5=(3a,4b);
+ z6=(2a,3.5b); z7=(2.5a,7b); z8=(5a,7b); draw z1..{right}z2--z3{right}%%
+ ..{up}z4..{left}z5..z6--z7--z8
+endchar;
+
+beginchar("6",.6U#,U#,0); "six"; pickup thick_pen;
+ z1=(a,b); z2=(2.5a,0); z3=(4a,0); z4=(5a,2.5b); z5=(3a,4b);
+ z6=(2a,3.5b); z7=(5a,7b); draw z1..{right}z2--z3{right}%%
+ ..{up}z4..{left}z5..z6..z1..cycle; draw z6{dir60}..z7;
+endchar;
+
+beginchar("7",.6U#,U#,0); "seven"; pickup thick_pen;
+ z1=(a,0); z2=(5.5a,7b); z3=(1.5a,7b); z4=(2a,4b); z5=(4a,4b);
+ draw z1..{dir45}z2--z3; draw z4--z5;
+endchar;
+
+beginchar("8",.6U#,U#,0); "eight"; pickup thick_pen;
+ z1=(2.5a,0); z2=(4a,0); z3=(5a,2.5b); z4=(3a,4b); z5=(2a,3.5b);
+ draw fullcircle xscaled 3pt yscaled 2pt rotated 40 shifted (3.7a,5.5b);
+ draw z1--z2{right}..z3..z4..z5..{right}z1..cycle;
+endchar;
+
+beginchar("9",.6U#,U#,0); "nine"; pickup thick_pen;
+ z1=(5.2a,6.2b); z2=(a,0); z3=(2.5a,0); z4=(4.7a,2b);
+ draw z1{(-1,-7)}..z4..{left}z3--z2;
+ draw fullcircle xscaled 3pt yscaled 2pt rotated 40 shifted (3.7a,5.5b);
+endchar;
+
+beginchar(251,.7U#,U#,0); "AE"; pickup thick_pen;
+ z1=(a,0); z2=(2a,5b); z3=(4.3a,6.5b); z4=(6a,5b); z5=(5a,0); z7=(a,4b);
+ z6=.4[z4,z5]; z20=(3.5a,7.5b); z21=(6a,7.5b);
+ draw z1--z2{z2-z1}..{right}z3..{z1-z2}z4--z5;
+ draw z6{left}..{dir135}z7;
+ draw fullcircle xscaled .3pt yscaled .6pt rotated -11 shifted z20;
+ draw fullcircle xscaled .3pt yscaled .6pt rotated -11 shifted z21;
+endchar;
+
+beginchar(252,.7U#,U#,0); "OE"; pickup thick_pen;
+ z1=(6a,4.3b); z2=(5a,6.5b); z3=(3.5a,6.05b); z4=(a,2.6b); z5=(2.5a,0);
+ z6=(3.5a,0); z20=(3.5a,7.5b); z21=(6a,7.5b);
+ draw z2{left}..z3..z4..{right}z5--z6{right}..z1..{left}z2;
+ draw fullcircle xscaled .3pt yscaled .6pt rotated -11 shifted z20;
+ draw fullcircle xscaled .3pt yscaled .6pt rotated -11 shifted z21;
+endchar;
+
+beginchar(253,.7U#,U#,0); "UE"; pickup thick_pen;
+ z1=(5.8a,6.5b); z2=(5a,2.5b); z3=(3a,0); z4=(2a,0); z5=(a,2.5b);
+ z6=(1.6a,5.5b); z7=(1.3a,6.5b); z8=(a,6b); z9=(6a,0); z20=(2.75a,7.5b);
+ z21=(5.25a,7.5b); draw z1--z2{z2-z1}..{left}z3--z4{left}..{z1-z2}z5--z6%%
+ {z1-z2}..{left}z7..z8; draw z2{z2-z1}..z9;
+ draw fullcircle xscaled .3pt yscaled .6pt rotated -11 shifted z20;
+ draw fullcircle xscaled .3pt yscaled .6pt rotated -11 shifted z21;
+endchar;
+
+beginchar(254,U#,U#,0); "pound"; pickup thick_pen;
+ z1=(4a,6b); z2=(3a,2.5b); z3=(4a,0); z4=(6a,3b); z5=(7a,6b);
+ z6=(6.5a,0); z7=(8a,2b); z8=1/3[z4,z5]; z9=(3a,5b); z10=(a,3b);
+ z11=(8a,4.5b);
+ draw z1..{down}z2..{right}z3..z4..z5;
+ draw z5..z4..{right}z6..{up}z7..z8..{left}z9..{down}z10..{right}z2..z11;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of file chinasym.alf %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/china2e/chinasym.ele b/Master/texmf-dist/fonts/source/public/china2e/chinasym.ele
new file mode 100644
index 00000000000..edab282c706
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/china2e/chinasym.ele
@@ -0,0 +1,250 @@
+%% This file is part of the CHINASYM package,
+%% a PACKAGE for writing CHINESE CALENDAR SYMBOLS
+%% with LaTeX version 2e.
+%%
+%% -- Copyright 1997 by Udo Heyl, Eisenach. All rights reserved. --
+%%
+%% Copying of this file is authorized only if either
+%% (1) you make absolutely no changes to your copy, including name, or
+%% (2) if you do make changes, you name it something other than
+%% CHINASYM.ADD, CHINASYM.ALF, CHINASYM.ELE,
+%% CHINASYM.NUM, CHINASYM.SBL, CHINASYM.STA,
+%% CHINA10.MF or CHINA2E.STY !!!
+%% This restriction helps ensure that all styles developed for
+%% DANTE e.V. (the users group of german speaking TeX users)
+%% remain identical.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT
+%% ALLOWED to take money for the distribution or use of either this
+%% file or a changed version, except for some nominal charge for
+%% copying etc.
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% Udo Heyl
+%% Stregdaer Allee 7
+%% 99817 Eisenach
+%% Federal Republic of Germany
+%%
+%% or
+%% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
+%% Postfach 10 18 40
+%% 69008 Heidelberg
+%% Federal Republic of Germany
+%% Email: german@dante.de
+%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% This file contains the SIGNs of the Chinese Years, %%
+%% also called the HEAVENLY & EARTHLY ELEMENTS of the %%
+%% returning CHINESE SEXAGESIMAL CYCLE (hua-kia-tse). %%
+%% written by Udo Heyl, Eisenach (Vers.1.0) 97/05/15. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%% The 12 Earthly Elements %%%
+
+beginchar(0+o,U#,U#,0); "tse - the RAT";%% also used for "little son"%%
+ pickup thick_pen;
+ z1=(4.2a,.7b); z2=(4.7a,0); z3=(5.05a,.8b); z5=(4.35a,5.6b);
+ z7=(a,8b); z8=(5a,8b); z9=(6.6a,7.4b); z10=(6.5a,6.5b); z11=(a,4.2b);
+ z12=(1.3a,4b); z13=(8a,4b); z14=(7.6a,3.7b);
+ draw z1..z2..z3{dir90}..{dir110}z5;
+ draw z5{dir15}..z9{z8-z10}..{left}z8--z7; draw z11--z12--z13--z14;
+endchar;
+
+beginchar(1+o,U#,U#,0); "tscheu - the OX";
+ pickup thick_pen;
+ z10=(2.5a,0); z11=(3a,0); z12=(5.5a,0); z13=(7.5a,0);
+ z2=(a,4b); z3=(8a,4b);
+ z20=(2a,8b); z21=(4.6a,8b); z22=(7.1a,8b); z23=(7.3a,8b);
+ draw z10..z13; draw z11..z21; draw z12..z22; draw z20..z23; draw z2..z3;
+endchar;
+
+beginchar(2+o,U#,U#,0); "yin - the TIGER";
+ pickup thick_pen;
+ z1=(a,0); z2=(3.5a,1.2b); z3=(5a,1.5b); z4=(8a,0);
+ z5=(2.5a,1.8b); z6=(4.5a,1.8b); z7=(6.5a,1.8b);
+ z8=(2.5a,3.2b); z10=(6.5a,3.2b); z9=(2.5a,.5b); z12=(6.5a,b);
+ z11=(2.5a,4.4b); z13=(6.5a,4.4b);
+ z14=(2.5a,5.9b); z15=(4.5a,5.9b); z16=(6.5a,5.9b);
+ z17=(1.5a,6.4b); z18=(2.2a,7.5b); z19=(7.5a,6.2b); z20=(7.3a,7.2b);
+ z21=(2a,7b); z22=(4.5a,7b); z23=(7.3a,7b); z24=(4.5a,8b);
+ draw z1..z9..z2; draw z3..z12..z4; draw z5--z14; draw z6--z15;
+ draw z7--z16; draw z17--z18; draw z19--z20; draw z22--z24;
+ pickup thin_pen; draw z21--z23;
+ draw z5--z7; draw z8--z10; draw z11--z13; draw z14--z16;
+endchar;
+
+beginchar(3+o,U#,U#,0); "mao - the RABBIT";
+ pickup thick_pen;
+ z1=(1a,0); z2=(2.5a,b); z3=(3.5a,3b); z4=(4a,6b); z5=(1a,2b);
+ z6=(1.5a,6b); z7=(1.5a,7b); z8=(3.5a,8b); z9=(5a,0);
+ z10=(5a,8b); z11=(8a,8b); z12=(8a,3b); z13=(6a,1.5b);
+ draw z1..z2..z3..z4; draw z5..z6..z7; draw z6..z8;
+ draw z9..z10; draw z11..{dir-90}z12..z13;
+ pickup thin_pen;
+ draw z10{dir-30}..z11; draw z3..z5;
+endchar;
+
+beginchar(4+o,U#,U#,0); "tchen - the DRAKE";
+ pickup thick_pen;
+ z1=(a,0); z3=(2.5a,4b); z4=(2.5a,5.7b); z5=(2.5a,7.5b);
+ z6=(2.5a,8b); z8=(6a,7.5b); z9=(7a,8b);
+ z10=(4a,5.7b); z11=(6a,5.7b); z12=(5a,7b);
+ z13=(4a,4b); z14=(5.5a,4b); z15=(7a,4b); z16=(7.5a,4b); z17=(8a,4.5b);
+ z18=(7.5a,3.5b); z19=(8a,1b); z20=(6.5a,2.8b); z21=(4a,1.5b);
+ z22=(3a,1b); z23=(5.1a,2b);
+ draw z1{dir50}..{dir90}z3; draw z3--z6; draw z5..z8{right}..z9;
+ draw z4..z10..z11; draw z3..z13..z14..z15..z16..z17;
+ draw z22..z21..z13; draw z14..z20..z19;
+ draw z22..z21..z23..z20..z18..z15;
+ pickup thin_pen; draw z11..z12;
+endchar;
+
+beginchar(5+o,U#,U#,0); "sze - the SNAKE";
+ pickup thick_pen;
+ z1=(a,0); z2=(2a,5b); z3=(1.5a,8b); z4=(6a,8b); z5=(6a,5b);
+ z6=(6.05a,4b); z7=(8a,2b); z8=(7.5a,0);
+ draw z1..z2..z3; draw z3..z4; draw z2..z5; draw z4..z5..z6;
+ draw z1{dir15}..z8; draw z8..z7;
+endchar;
+
+beginchar(6+o,U#,U#,0); "ngu - the HORSE";
+ pickup thick_pen;
+ z1=(a,3.5b); z3=(2.8a,6.5b); z4=(3a,8b); z5=(4.5a,6.5b);
+ z6=(6.2a,6.5b); z7=(6a,7b); z8=(4.5a,0); z9=(8a,3.5b); z10=(7.5a,4b);
+ draw z1..z3..{up}z4; draw z5..z8; draw z3..z6; draw z6..z7;
+ draw z1..z9; draw z9..z10;
+endchar;
+
+beginchar(7+o,U#,U#,0); "wei - the SHEEP";
+ pickup thick_pen;
+ z1=(a,3.5b); z2=(a,0); z3=(2.8a,5.5b); z4=(4.5a,3.5b); z5=(4.5a,8b);
+ z6=(6.2a,5.5b); z7=(6a,6b); z8=(4.5a,0); z9=(8a,3.5b); z10=(7.5a,4b);
+ z11=(3a,1.2b); z12=(5.5a,1.5b); z13=(7a,.5b);
+ draw z5..z8; draw z3..z6; draw z6..z7;
+ draw z1..z9; draw z9..z10; draw z2..z11..z4; draw z4..z12..z13;
+endchar;
+
+beginchar(8+o,U#,U#,0); "shin - the MONKEY"; pickup thick_pen;
+ z1=(a,3.5b); z2=(a,5b); z3=(a,6.5b); z4=(8a,3.5b); z5=(8a,5b);
+ z6=(8a,6.5b); z7=(4.5a,8b); z8=(4.5a,0); z9=(a,3b); z10=(a,7b);
+ z11=(8a,3b); z12=(8a,7b); draw z9--z10; draw z7--z8; draw z11--z12;
+ pickup mean_pen; draw z1--z4; draw z2--z5; draw z3--z6;
+endchar;
+
+beginchar(9+o,U#,U#,0); "yeu - the COCK"; pickup thick_pen;
+ z1=(2a,0); z2=(2a,6b); z3=(7.5a,0); z4=(7.5a,6b);
+ z5=(2a,.5b); z6=(2a,2b); z7=(2a,5.5b); z19=(4a,5.5b);
+ z8=(7.5a,.5b); z9=(7.5a,2b); z10=(7.5a,3b); z11=(7.5a,5.5b);
+ z12=(5.5a,3b); z13=(5.5a,8b); z14=(4a,4.5b); z15=(4a,8b);
+ z16=(a,8b); z17=(8a,8b); z18=(7.3a,8.2b); z20=(3a,2.5b);
+ z21=(3.5a,3.5b); z22=(3.9a,4b); z23=(3.95a,4.5b);
+ draw z15--z19--z11; draw z6..z20..z23..z19;
+ draw z1--z2; draw z3--z4; draw z10--z12--z13; draw z16--z17--z18;
+ pickup thin_pen; draw z5--z8; draw z6--z9; draw z7--z11;
+endchar;
+
+beginchar(10+o,U#,U#,0); "siu - the DOG"; pickup thick_pen;
+ z1=(a,.8b); z2=(2a,3.5b); z3=(2a,6b); z4=(6.5a,6b); z5=(4a,8b);
+ z6=(4.5a,3.5b); z7=(5a,2.5b); z8=(6.8a,.8b); z9=(8a,0); z10=(7.5a,2.5b);
+ z11=(5.6a,6.5b); z12=(5.1a,7.7b); z13=(3a,.5b); z14=(6a,5b);
+ draw z5..z6..z9; draw z1..z2..z3; draw z13..z7..z14; draw z3--z4;
+ pickup thin_pen; draw z2--z6; draw z11--z12; draw z8--z10;
+endchar;
+
+beginchar(11+o,U#,U#,0); "hai - the PIG"; pickup thick_pen;
+ z1=(a,0); z2=(7.5a,4.9b); z3=(2a,2b); z4=(6.4a,5.8b); z5=(3a,5.5b);
+ z6=(4a,3.5b); z7=(4.5a,3.5b); z8=(6a,3b); z9=(6.5a,2.5b);
+ z10=(7.5a,1.5b); z11=(3.8a,5b); z12=(4.5a,6b); z13=(4.5a,8b);
+ z14=(a,6b); z15=(8a,6b); z16=(7.6a,6.4b);
+ draw z1..z8..z2; draw z3..z7..z4; draw z9--z10; draw z5--z6;
+ draw z11--z12--z13; draw z14--z15; draw z15--z16;
+endchar;
+
+%%% The 10 Heavenly Elements %%%
+
+beginchar(12+o,U#,U#,0); "kia - the WILD WOOD"; pickup thick_pen;
+ z1=(a,5b); z2=(a,6.5b); z3=(a,8b); z4=(8a,5b); z5=(8a,6.5b); z6=(8a,8b);
+ z7=(4.5a,8b); z8=(4.5a,0); z9=(a,4.5b); z10=(a,8.2b); z11=(8a,4.5b);
+ z12=(8a,8.2b); draw z9--z10; draw z7--z8; draw z11--z12; pickup mean_pen;
+ draw z1--z4; draw z2--z5; draw z3--z6;
+endchar;
+
+beginchar(13+o,U#,U#,0); "yi - the TAME WOOD"; pickup thick_pen;
+ z1=(a,7.5b); z2=(4.8a,7.5b); z3=(5.2a,8b); z4=(1.3a,4b); z5=(.6a,3b);
+ z6=(.5a,b); z7=(2.3a,0); z8=(5a,0); z9=(8a,0); z10=(7.5a,1.5b);
+ z11=(8a,3b); draw z3..z2..z4..z5..z6..z7{right}..z8..z9; pickup thin_pen;
+ draw z9..z10..z11; draw z1--z2;
+endchar;
+
+beginchar(14+o,U#,U#,0); "ping - the WILD FIRE"; pickup thick_pen;
+ z1=(a,0); z2=(a,5.5b); z3=(a,6b); z4=(7a,.5b); z5=(7.5a,0);
+ z6=(8a,.5b); z7=(8a,5.5b); z8=(8a,6b); z9=(2a,1.5b); z10=(7a,2b);
+ z11=(4a,4b); z12=(4.5a,8b); z13=(a,8b); z14=(8a,8b); z15=(7.5a,8.5b);
+ draw z1--z3; draw z4..z5..z6; draw z6--z8; draw z9--z11; draw z10--z11;
+ draw z11--z12; draw z13--z14--z15; pickup thin_pen; draw z2--z7;
+endchar;
+
+beginchar(15+o,U#,U#,0); "ting - the TAME FIRE"; pickup thick_pen;
+ z1=(3.5a,.5b); z2=(4a,0); z3=(4.5a,.5b); z4=(4.5a,8b); z5=(a,8b);
+ z6=(8a,8b); z7=(7.3a,7.7b); draw z1..z2..z3; draw z3--z4; draw z5--z6--z7;
+endchar;
+
+beginchar(16+o,U#,U#,0); "wu - the WILD ERTH"; pickup thick_pen;
+ z1=(a,0); z2=(5.6a,2.9b); z3=(7.4a,6.1b); z4=(2a,b); z5=(2.3a,2b);
+ z6=(2.5a,3b); z7=(2.5a,6.5b); z8=(2.5a,7b); z9=(5a,8b); z10=(8a,0);
+ z11=(7.7a,b); z12=(8a,2b); z13=(8a,6.5b); z14=(6.9a,6.8b);
+ z15=(6.6a,7.3b); z16=(6.1a,7.8b);
+ draw z1..z2..z3; draw z1..z4..z5..z6; draw z6--z8; draw z9..z2..z10;
+ draw z14..z15..z16; pickup thin_pen; draw z7--z13; draw z10..z11..z12;
+endchar;
+
+beginchar(17+o,U#,U#,0); "ki - the TAME ERTH"; pickup thick_pen;
+ z1=(a,8b); z2=(6.5a,8b); z3=(6.5a,4.8b); z4=(6.5a,4b); z5=(a,4.9b);
+ z6=(a,4.8b); z7=(a,0); z8=(8a,0); z9=(7.5a,0); z10=(8a,2.8b);
+ draw z2--z4; draw z5--z7--z8; pickup thin_pen; draw z1--z2;
+ draw z3--z6; draw z9{up}..z10;
+endchar;
+
+beginchar(18+o,U#,U#,0); "keng - the WILD METAL"; pickup thick_pen;
+ z1=(a,0); z7=(4.5a,4b); z8=(4.5a,8b); z9=(a,.3b); z10=(1.75a,1.8b);
+ z11=(2a,3b); z12=(2a,7b); z13=(5.2a,3.2b); z14=(6.1a,1.5b); z15=(8a,.2b);
+ z16=(2.3a,3.5b); z17=(6.8a,3.5b); z18=(2.3a,4.5b); z19=(7.1a,4.5b);
+ z20=(2a,5.5b); z21=(6.8a,5.5b); z23=(2a,6.5b); z24=(7.5a,6.5b);
+ z25=(7.2a,6.8b); draw z1{dir20}..{up}z7--z8; draw z13..z14..z15;
+ draw z9..z10..z11; draw z11--z12; draw z17--z21; pickup thin_pen;
+ draw z23--z24--z25; draw z20--z21; draw z18--z19; draw z16--z17;
+endchar;
+
+beginchar(19+o,U#,U#,0); "sin - the TAME METAL"; pickup thick_pen;
+ z1=(4.5a,0); z2=(2a,2.2b); z3=(7a,2.2b); z4=(6.7a,2.4b);
+ z5=(a,4b); z6=(4.5a,4b); z7=(8a,4b); z8=(7.7a,4.2b);
+ z9=(3.9a,4.2b); z10=(2.8a,6.1b); z11=(4.7a,4.2b); z12=(6.5a,6.1b);
+ z13=(2a,6.5b); z14=(7a,6.5b); z15=(6.7a,6.7b); z16=(4.5a,6.5b);
+ z17=(4.5a,8b);
+ draw z1--z6; draw z9--z10; draw z11--z12; draw z16--z17;
+ pickup thin_pen; draw z2--z3--z4; draw z5--z7--z8; draw z13--z14--z15;
+endchar;
+
+beginchar(20+o,U#,U#,0); "jin - the WILD WATER"; pickup thick_pen;
+ z1=(2a,0); z2=(7a,0); z3=(6.7a,.3b); z4=(4.5a,.1); z5=(4.5a,7.5b);
+ z6=(2a,7b); z7=(7a,8b); z8=(a,3.8b); z9=(8a,3.8b); z10=(7.7a,4.1b);
+ draw z4--z5; draw z6..z7; draw z1--z2--z3; draw z8--z9--z10;
+endchar;
+
+beginchar(21+o,U#,U#,0); "kuei - the TAME WATER"; pickup thick_pen;
+ z1=(2a,0); z2=(3.3a,1.9b); z3=(4.1a,4.1b); z4=(4.5a,3.4b);
+ z5=(5.2a,1.8b); z6=(6.7a,.6b); z7=(a,3b); z8=(8a,3b);
+ z9=(2.4a,4.6b); z10=(6.2a,4.6b); z11=(2a,6b); z12=(3.2a,6b);
+ z13=(5.6a,6b); z14=(7a,6b); z15=(2a,7.5b); z16=(3.8a,7.5b);
+ z17=(5.4a,7.5b); z18=(7a,7.5b); z19=(4a,8b); z20=(5.4a,8b);
+ draw z1..z2..z3; draw z4..z5..z6; draw z7..z12..z19; draw z8..z13..z20;
+ pickup mean_pen; draw z9--z10; draw z11--z12; draw z13--z14;
+ draw z15--z16; draw z17--z18; draw z7--z8;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%END OF FILE CHINASYM.ELE%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Master/texmf-dist/fonts/source/public/china2e/chinasym.num b/Master/texmf-dist/fonts/source/public/china2e/chinasym.num
new file mode 100644
index 00000000000..2df87795215
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/china2e/chinasym.num
@@ -0,0 +1,137 @@
+%% This file is part of the CHINASYM package,
+%% a PACKAGE for writing CHINESE CALENDAR SYMBOLS
+%% with LaTeX version 2e.
+%%
+%% -- Copyright 1997 by Udo Heyl, Eisenach. All rights reserved. --
+%%
+%% Copying of this file is authorized only if either
+%% (1) you make absolutely no changes to your copy, including name, or
+%% (2) if you do make changes, you name it something other than
+%% CHINASYM.ADD, CHINASYM.ALF, CHINASYM.ELE,
+%% CHINASYM.NUM, CHINASYM.SBL, CHINASYM.STA,
+%% CHINA10.MF or CHINA2E.STY !!!
+%% This restriction helps ensure that all styles developed for
+%% DANTE e.V. (the users group of german speaking TeX users)
+%% remain identical.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT
+%% ALLOWED to take money for the distribution or use of either this
+%% file or a changed version, except for some nominal charge for
+%% copying etc.
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% Udo Heyl
+%% Stregdaer Allee 7
+%% 99817 Eisenach
+%% Federal Republic of Germany
+%%
+%% or
+%% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
+%% Postfach 10 18 40
+%% 69008 Heidelberg
+%% Federal Republic of Germany
+%% Email: german@dante.de
+%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% This file contains the names of the chinese months, %%
+%% which are the FIRST, SECOND, THIRD... and so on. -- %%
+%% The 12 SIGNs of these NUMBERS and the SIGN of MONTH %%
+%% written by Udo Heyl, Eisenach (Vers.1.0) 97/05/15. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(22+o,U#,U#,0); "yi - the 1st (modified)";
+ pickup thick_pen;
+ z1=(a,4b); z2=(7a,4b); z3=(6.6a,4.3b); draw z1--z2--z3;
+endchar;
+
+beginchar(23+o,U#,U#,0); "tching - the 1st";
+ pickup thick_pen;
+ z1=(a,0); z2=(2.75a,.1b); z3=(4.5a,.1b); z4=(8a,0); z5=(7.6a,0.3b);
+ z6=(4.5a,4b); z7=(8a,4b); z71=(7.6a,4.3b); z8=(a,8b);
+ z9=(4.5a,7.9b); z10=(8a,8b); z11=(7.6a,8.3b); z12=(2.75a,6b);
+ draw z2--z12; draw z3--z9; draw z1--z4--z5;
+ draw z6--z7--z71; draw z8--z10--z11;
+endchar;
+
+beginchar(24+o,U#,U#,0); "urh - the 2nd";
+ pickup thick_pen;
+ z1=(a,2b); z2=(8a,2b); z3=(7.6a,2.3b);
+ z4=(a,6b); z5=(7a,6b); z6=(6.6a,6.3b);
+ draw z1--z2--z3; draw z4--z5--z6;
+endchar;
+
+beginchar(25+o,U#,U#,0); "san - the 3rd";
+ pickup thick_pen;
+ z1=(a,b); z2=(8a,b); z3=(7.6a,1.3b);
+ z4=(a,7b); z5=(8a,7b); z6=(7.6a,7.3b);
+ z7=(a,4b); z8=(7a,4b); z9=(6.6a,4.3b);
+ draw z1--z2--z3; draw z4--z5--z6; draw z7--z8--z9;
+endchar;
+
+beginchar(26+o,U#,U#,0); "sze -the 4th";
+ pickup thick_pen;
+ z1=(a,0); z2=(a,2b); z3=(a,8b); z4=(3a,8b); z5=(a,2.8b); z6=(5a,8b);
+ z7=(5a,4.4b); z8=(7a,4.4b); z9=(8a,8b); z10=(8a,2b); z11=(8a,0);
+ z12=(3a,5b); draw z1--z3--z9--z11; draw z5{dir60}..{up}z12..z4;
+ draw z6..z7{down}..{dir60}z8; draw z2--z10;
+endchar;
+
+beginchar(27+o,U#,U#,0); "yu - the 5th";
+ pickup thick_pen;
+ z1=(a,0); z2=(2a,0); z3=(5.5a,0); z4=(8a,0); z5=(7.6a,.3b);
+ z6=(5.75a,2b); z7=(4.5a,4b); z9=(1.5a,4b); z10=(2a,8b);
+ z11=(3a,8b); z12=(8a,8b); z13=(7.6a,8.3b);
+ draw z1--z4--z5; draw z2--z11; draw z10--z12--z13;
+ draw z3{(1,8)}..z6..z7{left}..z9;
+endchar;
+
+beginchar(28+o,U#,U#,0); "lu - the 6th";
+ pickup thick_pen;
+ z1=(a,0); z2=(4a,3.6b); z3=(5a,3.6b); z4=(6a,3.1b); z5=(8a,0);
+ z6=(a,4.5b); z7=(8a,4.5b); z8=(7.6a,4.8b); z9=(4.5a,4.6b); z10=(4.5a,8b);
+ draw z1{dir30}..{dir60}z2; draw z3..{(2,-1)}z4..z5;
+ draw z6--z7--z8; draw z9--z10;
+endchar;
+
+beginchar(29+o,U#,U#,0); "tsi - the 7th";
+ pickup thick_pen;
+ z1=(4a,8b); z2=(4a,b); z3=(5a,.3b); z4=(8a,1.3b); z5=(7.7a,2.3b);
+ z6=(a,4b); z7=(8a,6.33b); z8=(7.4a,6.5b);
+ draw z1..{down}z2..z3{(3,1)}..{(3,1)}z4{dir150}..z5; draw z6--z7--z8;
+endchar;
+
+beginchar(30+o,U#,U#,0); "pa - the 8th";
+ pickup thick_pen;
+ z1=(a,0); z2=(3.5a,7b); z3=(2.5a,7.8b); z4=(5a,8b); z5=(5a,7.8b);
+ z6=(8a,b);
+ draw z1{dir40}..z2; draw z4..{down}z5..{dir-30}z6;
+ pickup thin_pen; draw z3--z5;
+endchar;
+
+beginchar(31+o,U#,U#,0); "kieu - the 9th";
+ pickup thick_pen;
+ z1=(3a,0); z2=(4.5a,3b); z3=(4.5a,8b); z4=(a,4b); z5=(8a,4b);
+ z6=(7.5a,3b); z7=(8a,b); draw z1..{up}z2..z3;
+ draw z4--z5--z6{(-1,-2)}..{right}z7;
+endchar;
+
+beginchar(32+o,U#,U#,0); "shi - the 10th";
+ pickup thick_pen;
+ z1=(4.5a,0); z2=(4.5a,8b); z3=(a,4.5b); z4=(8a,4.5b); z5=(7.6a,4.8b);
+ draw z1--z2; draw z3--z4--z5;
+endchar;
+
+beginchar(94+o,U#,U#,0); "yue - the MONTH";
+ pickup thick_pen;
+ z1=(a,0); z2=(2.5a,2b); z3=(3a,4b); z4=(3.1a,5.8b); z5=(3.1a,7.5b);
+ z6=(3.1a,8b); z7=(7a,8b); z8=(7a,7.5b); z9=(7a,5.8b); z10=(7a,4b);
+ z11=(7a,0); z12=(6a,.8b); z13=(5.5a,.9b);
+ draw z1..z2..z3..z4..z5..z6; draw z3..z10; draw z4..z9; draw z7..z11;
+ draw z5..z8; draw z11..z12..z13;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% END OF CHINASYM.NUM %%
+%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/china2e/chinasym.sbl b/Master/texmf-dist/fonts/source/public/china2e/chinasym.sbl
new file mode 100644
index 00000000000..06ffabdc8a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/china2e/chinasym.sbl
@@ -0,0 +1,295 @@
+%% This file is part of the CHINASYM package,
+%% a PACKAGE for writing CHINESE CALENDAR SYMBOLS
+%% with LaTeX version 2e.
+%%
+%% -- Copyright 1997 by Udo Heyl, Eisenach. All rights reserved. --
+%%
+%% Copying of this file is authorized only if either
+%% (1) you make absolutely no changes to your copy, including name, or
+%% (2) if you do make changes, you name it something other than
+%% CHINASYM.ADD, CHINASYM.ALF, CHINASYM.ELE,
+%% CHINASYM.NUM, CHINASYM.SBL, CHINASYM.STA,
+%% CHINA10.MF or CHINA2E.STY !!!
+%% This restriction helps ensure that all styles developed for
+%% DANTE e.V. (the users group of german speaking TeX users)
+%% remain identical.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT
+%% ALLOWED to take money for the distribution or use of either this
+%% file or a changed version, except for some nominal charge for
+%% copying etc.
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% Udo Heyl
+%% Stregdaer Allee 7
+%% 99817 Eisenach
+%% Federal Republic of Germany
+%%
+%% or
+%% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
+%% Postfach 10 18 40
+%% 69008 Heidelberg
+%% Federal Republic of Germany
+%% Email: german@dante.de
+%%
+
+%% The symbolic letters
+
+beginchar(192,U#,U#,0); "jun - Leap (Month, Year, Day)"; pickup mean_pen;
+ z1=(a,0); z2=(a,7b); z3=(3.1a,8b); z4=(8a,8b); z5=(8a,b); z6=(7.5a,0);
+ z7=(7a,.5b); z8=(1.5a,8.3b); z9=(2.1a,7.8b);
+ z10=(2a,2b); z11=(7a,y10); z12=(x11-.4a,y11+.3b);
+ z13=(2.5a,4b); z14=(6.5a,y13); z15=(x14-.4a,y14+.3b);
+ z16=(2a,6b); z17=(7a,y16); z18=(x17-.4a,y17+.3b);
+ z19=.5[z10,z11]; z20=.5[z16,z17]; draw z19--z20;
+ draw z10--z11--z12; draw z13--z14--z15; draw z16--z17--z18;
+ draw z1--z2; draw z8..{down}z9; draw z3--z4--z5{down}..{left}z6..z7;
+endchar;
+
+beginchar(187,.7U#,U#,0); "bold Complex"; pickup bold_pen;
+ z1=(6a,7.5b); z2=(6a,5.5b); z3=(3.5a,7.5b); z4=(a,3.5b); z5=(3.5a,0);
+ z6=(6a,1.5b); z7=(6a,0); z8=(2.5a,7.2b); z9=(2.5a,.3b);
+ draw z1{dir-120}..{dir-60}z2; draw z6{dir-120}..{dir-60}z7;
+ draw z2..{left}z3..z8..{down}z4..z9..{right}z5..z6;
+ pickup tiny_pen; draw z8--z9;
+endchar;
+
+beginchar(188,.7U#,U#,0); "bold Natural"; pickup bold_pen;
+ z1=(a,0); z2=(a,7.5b); z3=(6a,0); z4=(6a,7.5b); z5=(2.5a,5.5b);
+ z6=(2.5a,0); draw z1--z2--z3--z4; pickup tiny_pen; draw z5--z6--z1;
+endchar;
+
+beginchar(189,.7U#,U#,0); "bold Integer"; pickup bold_pen;
+ z1=(6a,3.75b); z2=(3.5a,7.5b); z3=(a,3.75b); z4=(3.5a,0); z5=(4a,1.6b);
+ z6=(6a,0); z7=(2.5a,7.1b); z8=(2.5a,.55b);
+ draw superellipse (z1,z2,z3,z4,.77); draw z5{right}..{right}z6;
+ pickup tiny_pen; draw z7--z8;
+endchar;
+
+beginchar(190,.8U#,U#,0); "bold Real"; pickup bold_pen;
+ z1=(a,0); z2=(a,3.75b); z3=(a,7.5b); z4=(3.5a,7.5b); z5=(6a,5.6b);
+ z6=(3.5a,3.75b); z7=(7a,0); z8=(2.5a,0); z9=(2.5a,7.5b); z10=(3.5a,3.75b);
+ draw z1--z3--z4{right}..z5..{left}z6--z2; draw z10{right}..{right}z7;
+ pickup tiny_pen; draw z1--z8--z9;
+endchar;
+
+beginchar(191,.7U#,U#,0); "bold Integer"; pickup bold_pen;
+ z1=(a,6.5b); z2=(a,7.5b); z3=(4.5a,7.5b); z4=(a,0); z5=(6a,0);
+ z6=(6a,b); z7=(2.5a,3.75b); z8=(5a,3.75b); z9=(2.5a,0); z10=(4.5a,7.5b);
+ z11=(6a,7.5b);
+ draw z1{dir60}..z2--z3; draw z10--z4--z5..{dir60}z6; draw z7--z8;
+ pickup tiny_pen; draw z9--z11--z3;
+endchar;
+
+beginchar(193,.7U#,U#,0); "symbol A"; pickup syma_pen;
+ z1=(a,0); z3=(2.75a,7.5b); z6=(4.25a,7.5b); z8=(6a,0); z4=(2.5a,0);
+ z2=1/3[z1,z3]; z7=1/3[z8,z6]; draw z1--z3--z6--z8; draw z2--z7;
+ pickup symb_pen; draw z1--z4--z6;
+endchar;
+
+beginchar(194,.7U#,U#,0); "symbol B"; pickup syma_pen;
+ z1=(a,0); z2=(a,4b); z3=(a,7.5b); z4=(3.5a,7.5b); z5=(5.5a,5.5b);
+ z6=(3.5a,4b); z10=(6a,2b); z11=(3.5a,0); z8=(2.5a,0); z9=(2.5a,7.5b);
+ draw z1--z3--z4..z5..z6--z2; draw z1--z11{right}..z10{up}..{left}z6;
+ pickup symb_pen; draw z1--z8--z9;
+endchar;
+
+beginchar(195,.7U#,U#,0); "symbol C"; pickup syma_pen;
+ z1=(6a,7.5b); z2=(6a,5.5b); z3=(3.5a,7.5b); z4=(a,3.5b); z5=(3.5a,0);
+ z6=(6a,1.5b); z7=(6a,0); z8=(2.5a,7.2b); z9=(2.5a,.3b);
+ draw z1{dir-120}..{dir-60}z2; draw z6{dir-120}..{dir-60}z7;
+ draw z2..{left}z3..z8..{down}z4..z9..{right}z5..z6;
+ pickup symb_pen; draw z8--z9;
+endchar;
+
+beginchar(196,.7U#,U#,0); "symbol D"; pickup syma_pen;
+ z1=(a,0); z2=(2.5a,0); z3=(6a,3.75b); z4=(2.5a,7.5b); z5=(a,7.5b);
+ draw z1--z2..{up}z3..z4--z5; draw z1--z5; pickup symb_pen; draw z2--z4;
+endchar;
+
+beginchar(197,.7U#,U#,0); "symbol E"; pickup syma_pen;
+ z1=(a,0); z2=(2.5a,0); z3=(6a,0); z4=(6a,b); z5=(a,3.75b); z6=(4.5a,3.75b);
+ z7=(a,7.5b); z8=(2.5a,7.5b); z9=(5.5a,7.5b); z10=(5.5a,6.5b);
+ z11=(4.5a,3.25b); z12=(4.5a,4.25b);
+ draw z10{dir120}..z9--z7--z1--z3..{dir60}z4; draw z5--z6; draw z11--z12;
+ pickup symb_pen; draw z2--z8;
+endchar;
+
+beginchar(198,.6U#,U#,0); "symbol F"; pickup syma_pen;
+ z1=(a,0); z2=(2.5a,0); z5=(a,3.75b); z6=(5a,3.75b);
+ z7=(a,7.5b); z8=(2.5a,7.5b); z9=(6a,7.5b); z10=(6a,6.5b);
+ z11=(5a,3.25b); z12=(5a,4.25b);
+ draw z10{dir120}..z9--z7--z1; draw z5--z6; draw z11--z12;
+ pickup symb_pen; draw z1--z2--z8;
+endchar;
+
+beginchar(199,.7U#,U#,0); "symbol G"; pickup syma_pen;
+ z1=(5.5a,7.5b); z2=(5.5a,6.5b); z3=(3.5a,7.5b); z4=(2.5a,7.2b);
+ z5=(a,3.75b); z6=(2.5a,.3b); z7=(3.5a,0); z8=(5a,.3b); z9=(6a,3.75b);
+ z10=(3.5a,3.75b);
+ draw z1{dir-120}..{dir-60}z2{dir120}..{left}z3..z4..{down}z5%%
+ ..z6..{right}z7..z8..{up}z9--z10; pickup symb_pen;
+ draw z4--z6;
+endchar;
+
+beginchar(200,.7U#,U#,0); "symbol H"; pickup syma_pen;
+ z1=(a,0); z2=(a,3.75b); z3=(a,7.5b); z4=(2.5a,0); z5=(2.5a,7.5b);
+ z6=(6a,0); z7=(6a,3.75b); z8=(6a,7.5b); draw z1--z3; draw z6--z8;
+ draw z2--z7; pickup symb_pen; draw z1--z4--z5--z3;
+endchar;
+
+beginchar(201,.6U#,U#,0); "symbol I"; pickup syma_pen;
+ z1=(a,0); z2=(2.5a,0); z3=(4a,0); z4=(5a,0); z5=(a,7.5b); z6=(2.5a,7.5b);
+ z7=(4a,7.5b); z8=(5a,7.5b); draw z1--z4; draw z5--z8; draw z2--z6;
+ pickup symb_pen; draw z3--z7;
+endchar;
+
+beginchar(202,.7U#,U#,0); "symbol J"; pickup syma_pen;
+ z1=(a,7.5b); z2=(4.5a,7.5b); z3=(6a,7.5b); z4=(4.5a,2b); z5=(6a,2b);
+ z6=(3a,0); z7=(a,1.5b); z8=(a,6.5b);
+ draw z8{dir60}..z1--z2--z4{down}..{left}z6..{up}z7;
+ pickup symb_pen; draw z2--z3--z5{down}..{left}z6;
+endchar;
+
+beginchar(203,.8U#,U#,0); "symbol K"; pickup syma_pen;
+ z1=(a,0); z2=(a,3.75b); z3=(a,7.5b); z4=(2.5a,0); z5=(2.5a,7.5b);
+ z6=(3a,3.75b); z7=(6a,7.5b); z8=(7a,0);
+ draw z1--z3; draw z2--z6{right}..{right}z8; draw z6{dir30}..z7;
+ pickup symb_pen; draw z1--z4--z5--z3;
+endchar;
+
+beginchar(204,.7U#,U#,0); "symbol L"; pickup syma_pen;
+ z1=(a,0); z2=(a,7.5b); z3=(2.5a,7.5b); z4=(2.5a,0); z5=(6a,0); z6=(6a,b);
+ draw z2--z1--z5{dir120}..z6; pickup symb_pen; draw z2--z3--z4;
+endchar;
+
+beginchar(205,.9U#,U#,0); "symbol M"; pickup syma_pen;
+ z1=(a,0); z2=(a,7.5b); z3=(2.5a,0); z5=(4.5a,3.75b); z4=3/7[z2,z5];
+ z6=(8a,7.5b); z7=(8a,0); draw z1--z2--z5--z6--z7; pickup symb_pen;
+ draw z1--z3--z4;
+endchar;
+
+beginchar(206,.7U#,U#,0); "symbol N"; pickup syma_pen;
+ z1=(a,0); z2=(a,7.5b); z3=(6a,0); z4=(6a,7.5b); z5=(2.5a,5.5b);
+ z6=(2.5a,0); draw z1--z2--z3--z4; pickup symb_pen; draw z5--z6--z1;
+endchar;
+
+beginchar(207,.7U#,U#,0); "symbol O"; pickup syma_pen;
+ z1=(6a,3.75b); z2=(3.5a,7.5b); z3=(a,3.75b); z4=(3.5a,0); z7=(2.5a,7b);
+ z8=(2.5a,.5b); draw superellipse (z1,z2,z3,z4,.77);
+ pickup symb_pen; draw z7--z8;
+endchar;
+
+beginchar(208,.7U#,U#,0); "symbol P"; pickup syma_pen;
+ z1=(a,0); z2=(a,3.75b); z3=(a,7.5b); z4=(3a,7.5b); z5=(6a,5.6b);
+ z6=(3a,3.75b); z8=(2.5a,0); z9=(2.5a,7.5b);
+ draw z1--z3--z4{right}..z5..{left}z6--z2;
+ pickup symb_pen; draw z1--z8--z9;
+endchar;
+
+beginchar(209,.7U#,U#,0); "symbol Q"; pickup syma_pen;
+ z1=(6a,3.75b); z2=(3.5a,7.5b); z3=(a,3.75b); z4=(3.5a,0); z5=(4a,1.6b);
+ z6=(6a,0); z7=(2.5a,7.1b); z8=(2.5a,.55b);
+ draw superellipse (z1,z2,z3,z4,.77); draw z5{right}..{right}z6;
+ pickup symb_pen; draw z7--z8;
+endchar;
+
+beginchar(210,.8U#,U#,0); "symbol R"; pickup syma_pen;
+ z1=(a,0); z2=(a,3.75b); z3=(a,7.5b); z4=(3.5a,7.5b); z5=(6a,5.6b);
+ z6=(3.5a,3.75b); z7=(7a,0); z8=(2.5a,0); z9=(2.5a,7.5b); z10=(3.5a,3.75b);
+ draw z1--z3--z4{right}..z5..{left}z6--z2; draw z10{right}..{right}z7;
+ pickup symb_pen; draw z1--z8--z9;
+endchar;
+
+beginchar(211,.7U#,U#,0); "symbol S"; pickup syma_pen;
+ z1=(6a,7.5b); z2=(6a,6.5b); z3=(3.5a,7.5b); z4=(a,5.625b); z5=(3.5a,3.75b);
+ z6=(6a,1.875b); z7=(3.5a,0); z8=(a,b); z9=(a,0); z10=(2.5a,7.3b);
+ z11=(2.5a,3.95b); z12=(4.5a,3.55b); z13=(4.5a,.2b);
+ draw z1{dir-120}..z2; draw z9{dir60}..z8; draw z2..{left}z3..z10%%
+ ..{down}z4..z11..{right}z5..z12..{down}z6..z13..{left}z7..z8;
+ pickup symb_pen; draw z10--z11; draw z12--z13;
+endchar;
+
+beginchar(212,.7U#,U#,0); "symbol T"; pickup syma_pen;
+ z1=(a,6.5b); z2=(a,7.5b); z3=(2.75a,7.5b); z4=(4.25a,7.5b); z5=(6a,7.5b);
+ z6=(6a,6.5b); z7=(2.75a,0); z8=(4.25a,0); draw z1..{dir120}z2--z5{dir-120}..z6;
+ draw z3--z7; pickup symb_pen; draw z7--z8--z4;
+endchar;
+
+beginchar(213,.7U#,U#,0); "symbol U"; pickup syma_pen;
+ z1=(a,7.5b); z2=(a,3b); z3=(2.5a,.2b); z4=(3.5a,0); z5=(4.5a,.2b);
+ z6=(6a,3b); z7=(6a,7.5b); z8=(2.5a,7.5b);
+ draw z1--z2{down}..z3..{right}z4..z5..{up}z6--z7;
+ pickup symb_pen; draw z1--z8--z3;
+endchar;
+
+beginchar(214,.7U#,U#,0); "symbol V"; pickup syma_pen;
+ z1=(a,7.5b); z2=(2.5a,7.5b); z3=(6a,7.5b); z4=(2.75a,0); z5=(4.25a,0);
+ draw z1--z4--z5--z3; pickup symb_pen; draw z1--z2--z5;
+endchar;
+
+beginchar(215,.8U#,U#,0); "symbol W"; pickup syma_pen;
+ z1=(a,7.5b); z2=(2.5a,7.5b); z3=(7a,7.5b); z4=(4a,4b);
+ z5=(121/38a,45/19b); z6=(2a,0); z7=(6a,0); draw z1--z6--z4--z7--z3;
+ pickup symb_pen; draw z1--z2--z5;
+endchar;
+
+beginchar(216,.7U#,U#,0); "symbol X"; pickup syma_pen;
+ z1=(a,7.5b); z2=(6a,0); z3=(6a,7.5b); z4=(a,0);
+ z5=(2.5a,0); z6=(6a,5.25b);
+ draw z1--z2; draw z3--z4; pickup symb_pen; draw z4--z5--z6--z3;
+endchar;
+
+beginchar(217,.7U#,U#,0); "symbol Y"; pickup syma_pen;
+ z1=(a,7.5b); z2=(6a,0); z3=( 6a,7.5b); z4=(a,0);
+ z5=(2.5a,0); z6=(6a,5.25b); z7=.5[z1,z2];
+ draw z1--z7; draw z3--z4; pickup symb_pen; draw z3--z6--z5--z4;
+endchar;
+
+beginchar(218,.7U#,U#,0); "symbol Z"; pickup syma_pen;
+ z1=(a,6.5b); z2=(a,7.5b); z3=(4.5a,7.5b); z4=(a,0); z5=(6a,0);
+ z6=(6a,b); z7=(2.5a,3.75b); z8=(5a,3.75b); z9=(2.5a,0); z10=(4.5a,7.5b);
+ z11=(6a,7.5b);
+ draw z1{dir60}..z2--z3; draw z10--z4--z5..{dir60}z6; draw z7--z8;
+ pickup symb_pen; draw z9--z11--z3;
+endchar;
+
+beginchar(219,.7U#,U#,0); "symbol AE"; pickup syma_pen;
+ z1=(a,0); z3=(2.75a,6b); z6=(4.25a,6b); z8=(6a,0); z4=(2.5a,0);
+ z2=1/3[z1,z3]; z7=1/3[z8,z6];
+ draw z1--z3--z6--z8; draw z2--z7;
+ pickup symb_pen; draw z1--z4--z6;
+ z20=(2.5a,7b); z21=(4.5a,7b);
+ fill fullcircle scaled 1.5pt shifted z20;
+ unfill fullcircle scaled .7pt shifted z20;
+ fill fullcircle scaled 1.5pt shifted z21;
+ unfill fullcircle scaled .7pt shifted z21;
+endchar;
+
+beginchar(220,.7U#,U#,0); "symbol OE"; pickup syma_pen;
+ z1=(6a,3b); z2=(3.5a,6b); z3=(a,3b); z4=(3.5a,0); z7=(2.5a,5.6b);
+ z8=(2.5a,.4b); draw superellipse (z1,z2,z3,z4,.77);
+ pickup symb_pen; draw z7--z8;
+ z20=(2.5a,7b); z21=(4.5a,7b);
+ fill fullcircle scaled 1.5pt shifted z20;
+ unfill fullcircle scaled .7pt shifted z20;
+ fill fullcircle scaled 1.5pt shifted z21;
+ unfill fullcircle scaled .7pt shifted z21;
+endchar;
+
+beginchar(221,.7U#,U#,0); "symbol UE"; pickup syma_pen;
+ z1=(a,6b); z2=(a,2.4b); z3=(2.5a,.16b); z4=(3.5a,0); z5=(4.5a,.16b);
+ z6=(6a,2.4b); z7=(6a,6b); z8=(2.5a,6b);
+ draw z1--z2{down}..z3..{right}z4..z5..{up}z6--z7;
+ pickup symb_pen; draw z1--z8--z3;
+ z20=(2.5a,7b); z21=(4.5a,7b);
+ fill fullcircle scaled 1.5pt shifted z20;
+ unfill fullcircle scaled .7pt shifted z20;
+ fill fullcircle scaled 1.5pt shifted z21;
+ unfill fullcircle scaled .7pt shifted z21;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% END OF CHINASYM.SBL %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/china2e/chinasym.sta b/Master/texmf-dist/fonts/source/public/china2e/chinasym.sta
new file mode 100644
index 00000000000..3268b7c786a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/china2e/chinasym.sta
@@ -0,0 +1,346 @@
+%% This file is part of the CHINASYM package,
+%% a PACKAGE for writing CHINESE CALENDAR SYMBOLS
+%% with LaTeX version 2e.
+%%
+%% -- Copyright 1997 by Udo Heyl, Eisenach. All rights reserved. --
+%%
+%% Copying of this file is authorized only if either
+%% (1) you make absolutely no changes to your copy, including name, or
+%% (2) if you do make changes, you name it something other than
+%% CHINASYM.ADD, CHINASYM.ALF, CHINASYM.ELE,
+%% CHINASYM.NUM, CHINASYM.SBL, CHINASYM.STA,
+%% CHINA10.MF or CHINA2E.STY !!!
+%% This restriction helps ensure that all styles developed for
+%% DANTE e.V. (the users group of german speaking TeX users)
+%% remain identical.
+%%
+%% You are NOT ALLOWED to distribute this file alone. You are NOT
+%% ALLOWED to take money for the distribution or use of either this
+%% file or a changed version, except for some nominal charge for
+%% copying etc.
+%%
+%% Error Reports in case of UNCHANGED versions to
+%%
+%% Udo Heyl
+%% Stregdaer Allee 7
+%% 99817 Eisenach
+%% Federal Republic of Germany
+%%
+%% or
+%% DANTE, Deutschsprachige Anwendervereinigung TeX e.V.
+%% Postfach 10 18 40
+%% 69008 Heidelberg
+%% Federal Republic of Germany
+%% Email: german@dante.de
+%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% This file contains the moon-symbols and the so called %%
+%% STATIONs of the Moon (or Moon-Houses), to be used in %%
+%% China for the names of the days of the 28-days-week!! %%
+%% written by Udo Heyl, Eisenach (Version 1.0) 97/05/15. %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(95+o,U#,U#,0); "wei - the ridge"; pickup thick_pen;
+ z1=(a,0); z2=(2.5a,2b); z3=(2.5a,5b); z4=(a,4.5b); z5=(1.7a,5b);
+ z6=(3.5a,7b); z7=(4.5a,8b); z8=(5a,4.5b); z9=(5.5a,7b); z10=(6.5a,8b);
+ z11=(8a,5b); z12=(7.6a,5.3b); z13=(6a,3b); z14=(5a,4b); z15=(4a,3b);
+ z16=(4a,1.5b); z17=(5.5a,0); z18=(8a,0); z19=(8a,2b);
+ draw z1{dir45}..{up}z2--z3; draw z4--z7; draw z5--z11--z12;
+ draw z6--z9; draw z8{up}..{dir45}z10; draw z13{up}..{left}%%%
+ z14..{down}z15--z16{down}..{right}z17--z18{dir130}..z19;
+endchar;
+
+beginchar(96+o,U#,U#,0); "shi - the place of sacrifice"; pickup thick_pen;
+ z1=(a,0); z2=(8a,0); z3=(1.5a,1.5b); z4=(7.5a,1.5b); z5=(2a,3b);
+ z6=(5.5a,3.75b); z7=(7.2a,2.25b); z8=(7a,3b); z9=(4.5a,3b); z10=(4.5a,0);
+ z11=(2.5a,4.5b); z12=(6.5a,4.5b); z13=(6.1a,4.8b); z14=(a,5b);
+ z15=(2a,7b); z16=(8a,5b); z17=(7a,7b); z18=(1.5a,6b); z19=(7.5a,6b);
+ z20=(4.5a,6b); z21=(4.5a,8b); draw z9--z10; draw z11--z12--z13;
+ draw z14--z15; draw z16--z17; draw z18--z19; draw z20--z21;
+ draw z1--z2; draw z3--z4; draw z8--z5{right}..{right}z6..{down}z7;
+endchar;
+
+beginchar(97+o,U#,U#,0); "pi - the wall"; pickup mean_pen;
+ z1=(a,0); z2=(4.5a,0); z3=(8a,0); z4=(7.6a,.3b); z5=(1.5a,1.5b);
+ z7=(7.5a,1.5b); z8=(7.1a,1.8b); z9=(2a,2.5b);
+ z10=(2a,3b); z11=(4a,3b); z12=(4.5a,3b); z14=(6.2a,2.3b);
+ z15=(8a,3b); z16=(7.6a,3.3b); z17=(4a,4.5b); z18=(2a,4.5b);
+ z19=(a,3.5b); z20=(2a,6.5b); z21=(4a,6.5b); z22=(4a,8b);
+ z23=(2a,8b); z25=(5.2a,4.5b); z26=(5.6a,4.5b); z27=(6.2a,4.5b);
+ z28=(8a,4.5b); z29=(7.6a,4.8b); z30=(5a,7b); z31=(6.5a,7b);
+ z32=(8a,7b); z33=(6.5a,8b); z34=(7.5a,7b);
+ draw z1--z3--z4; draw z5--z7--z8; draw z10--z15--z16; draw z2--z12;
+ draw z9--z18--z10--z15--z16; draw z25--z28--z29; draw z19..{up}z18--z23;
+ draw z31--z33; draw z30--z32; draw z23--z22--z21--z20;
+ draw z26{up}..{dir150}z30; draw z14--z27{up}..z34; draw z11--z17--z18;
+endchar;
+
+beginchar(98+o,U#,U#,0); "kuei - the sandal"; pickup thick_pen;
+ z1=(a,0); z2=(4.5a,0); z3=(8a,0); z4=(7.6a,.3b); z5=(2a,1.5b);
+ z7=(7a,1.5b); z8=(6.6a,1.8b); z9=(1.5a,3b); z11=(7.5a,3b);
+ z12=(7.1a,3.3b); z13=(3a,4.5b); z15=(6a,4.5b); z16=(4.5a,5.5b);
+ z17=(a,4b); z18=(2a,7b); z19=(4.5a,8b); z20=(5.5a,7b);
+ z21=(8a,4b); z22=(8a,7b); z23=(7.6a,7.3b); draw z1--z3--z4;
+ draw z5--z7--z8; draw z9--z11--z12; draw z13--z15; draw z2--z16;
+ draw z18--z22--z23; draw z17{dir30}..z19; draw z20..{dir-30}z21;
+endchar;
+
+beginchar(99+o,U#,U#,0); "lou - the reaping maid"; pickup thick_pen;
+ z1=(2.1a,2.5b); z2=(2.5a,3b); z3=(2.5a,4b); z4=(6.5a,4b); z5=(6.5a,3b);
+ z6=(2.1a,5.5b); z7=(2.5a,6b); z8=(2.5a,7b); z9=(6.5a,7b); z10=(6.5a,6b);
+ z11=(4.5a,8b); z12=(4.5a,3.5b); z13=(3a,b); z14=(2a,0); z15=(6a,2b);
+ z16=(3.9a,1.4b); z17=(6.5a,0); z18=(a,2b); z19=(8a,2b); z20=(7.6a,2.3b);
+ draw z1..{up}z2--z3--z4--z5--z2; draw z6..{up}z7--z8--z9--z10--z7;
+ draw z11--z12{down}..z13; draw z14{right}..z15; draw z18--z19--z20;
+ draw z16{dir-20}..{dir-60}z17; draw (1.5a,5b)--(7.5a,5b);
+endchar;
+
+beginchar(100+o,U#,U#,0); "wey - the corn guard"; pickup thick_pen;
+ z1=(2a,0); z2=(2a,2b); z3=(2a,3b); z4=(2a,4b); z5=(5.2a,b); z6=(7a,2b);
+ z7=(7a,3b); z8=(7a,4b); z9=(7.5a,4b); z10=(8a,5b); z11=(8a,6.5b);
+ z12=(8a,8b); z13=(4.5a,5b); z14=(4.5a,8b); z15=(a,5b); z16=(a,6.5b);
+ z17=(a,8b); z18=(6.3a,0); draw z16--z11;
+ draw z1--z4--z8--z6{down}..{left}z18..{dir105}z5; draw z2--z6;
+ draw z3--z7; draw z9..{up}z10--z12--z17--z15--z10; draw z13--z14;
+endchar;
+
+beginchar(101+o,U#,U#,0); "mao - the setting sun"; pickup thick_pen;
+ z1=(2a,0); z2=(4a,3b); z3=(4a,4.2b); z4=(3a,2b); z6=(a,b); z5=.5[z4,z6];
+ z7=(2a,4.5b); z8=(2a,4b); z9=(4a,5b); z10=(5.5a,0); z11=(5.5a,4b);
+ z12=(5.5a,4.5b); z13=(8a,4.5b); z14=(8a,1.5b); z15=(7a,.5b);
+ z16=(2.5a,5b); z17=(2.5a,8b); z18=(6.5a,5b); z19=(6.5a,8b);
+ z20=(2.5a,5.5b); z21=(6.5a,5.5b); z22=(2.5a,6.5b); z23=(6.5a,6.5b);
+ z24=(2.5a,7.5b); z25=(6.5a,7.5b); z26=(7.4a,2.5b);
+ draw z1{right}..{up}z2--z3; draw z4--z6; draw z5--z7; draw z8--z9;
+ draw z10--z12; draw z11{dir-20}..{dir20}z13{dir-160}..z26..{down}z14..z15;
+ draw z16--z17; draw z18--z19; draw z20--z21; draw z22--z23; draw z24--z25;
+endchar;
+
+beginchar(102+o,U#,U#,0); "py - the net"; pickup thick_pen;
+ z1=(4.5a,0); z2=(1.6a,4b); z3=(4.5a,8b); z4=(6.8a,8b); z5=(6.8a,5.3b);
+ z6=(2.2a,5.3b); z7=(2.2a,8b); z8=(2.2a,6.7b); z9=(6.8a,6.7b);
+ z10=(7.4a,4b); z11=(7a,4.3b); z12=(a,2.7b); z13=(8a,2.7b);
+ z14=(7.6a,3b); z15=(2a,1.3b); z16=(7a,1.3b); z17=(6.6a,1.6b);
+ z20=(3a,2.7b); z21=(3a,4.8b); z22=(6a,2.7b); z23=(6a,4.8b);
+ draw z1--z3--z4--z5--z6--z7--z3; draw z8--z9; draw z2--z10--z11;
+ draw z12--z13--z14; draw z15--z16--z17; draw z20--z21; draw z22--z23;
+endchar;
+
+beginchar(103+o,U#,U#,0); "tsui - the mouth"; pickup mean_pen;
+ z1=(3a,0); z2=(4a,2b); z3=(5.5a,2b); z4=(7a,2b); z5=(4a,3b); z6=(7a,b);
+ z7=(7a,3b); z8=(4a,4b); z9=(5.5a,4b); z10=(7a,4b); z11=(6.2a,0);
+ z12=(5.5a,.4b); z13=(a,2b); z14=(a,3b); z15=(a,6.5b); z16=(2.5a,3b);
+ z17=(2.5a,4.5b); z18=(2.5a,6.5b); z19=(5a,5b); z20=(6.3a,5b);
+ z21=(8a,6b); z22=(7.5a,5b); z23=(6a,5b); z24=(6a,7b); z25=(6a,8b);
+ z26=(4.5a,7b); z27=(4.5a,8b); z28=(3.7a,5.4b); z29=(3.7a,7b);
+ z30=(4.5a,6b); z31=(7a,7b);
+ draw z1..{up}z2--z8--z10--z6{down}..{left}z11..z12; draw z2--z4;
+ draw z5--z7; draw z3--z9; draw z13--z15{dir-20}..{dir20}z18--z16;
+ draw z14--z16{right}..z8--z19--z9--z20; draw z28--z29; draw z24--z26;
+ draw z17{right}..z28--z30--z27; draw z25--z23--z22{right}..{dir60}z21;
+ pickup thin_pen draw z30{dir20}..z31;
+endchar;
+
+beginchar(104+o,U#,U#,0); "tsan - the grandeur"; pickup thick_pen;
+ z1=(a,2.5b); z2=(4.5a,6.5b); z3=(8a,1.5b); z4=(5a,8b); z5=(3.2a,7b);
+ z6=(1.5a,5b); z7=(7.5a,5b); z8=(7.1a,5.3b); z9=(2a,7b); z10=(7a,7b);
+ z11=(6.6a,7.3b); z12=(2a,2b); z13=(4.5a,4b); z14=(1.5a,b); z15=(5a,3b);
+ z16=(a,0); z17=(5.5a,2b); z18=(4.7a,5.5b);
+ draw z1{dir30}..{up}z2{dir-70}..{dir-30}z3; draw z9--z10--z11;
+ draw z8--z7--z6{right}..z5..{right}z4; pickup mean_pen;
+ draw z12{dir20}..z13; draw z14{dir10}..z15; draw z16{right}..z17;
+ draw z18{right}..z10;
+endchar;
+
+beginchar(105+o,U#,U#,0); "tsyng - the fountain"; pickup thick_pen;
+ z1=(a,0); z2=(3a,2.5b); z3=(3a,7b); z4=(6a,0); z5=(6a,8b); z6=(a,2.5b);
+ z7=(8a,2.5b); z8=(7.6a,2.8b); z9=(a,5.5b); z10=(7.5a,5.5b);
+ z11=(7.1a,5.8b); z12=(2.5a,7.5b); draw z1..{up}z2--z3--z12;
+ draw z4--z5; draw z6--z7--z8; draw z9--z10--z11;
+endchar;
+
+beginchar(106+o,U#,U#,0); "kwei - the maanan"; pickup thick_pen;
+ z1=(a,.5); z2=(3.5a,2.5b); z3=(4.5a,3b); z4=(4.5a,0); z5=(8a,0);
+ z6=(7.6a,.3b); z7=(7a,1.5b); z8=(6a,2.5b); z9=(2a,3b); z10=(4a,3.5b);
+ z11=(6a,3.5b); z12=(2a,5b); z13=(6a,5b); z14=(2a,7b); z15=(3.5a,8b);
+ z16=(6.5a,7b); draw z1{dir20}..z2; draw z3--z4--z5--z6; draw z4--z7;
+ draw z4--z8; draw z15..{left}z14--z9{dir30}..{right}z10--z11--z13{up}%%
+ ..{dir60}z16--z14; draw z12--z13; draw z10--(4a,7b);
+endchar;
+
+beginchar(107+o,U#,U#,0); "liu - the willow"; pickup mean_pen;
+ z1=(2.5a,0); z2=(2.5a,4.5b); z3=(2.5a,5.5b); z4=(2.5a,8b); z5=(a,2.5b);
+ z6=(a,5.5b); z7=(4a,5.5b); z8=(3.2a,2.5b); z10=(5.05a,3.2b); z9=(4a,3b);
+ z11=(3.5a,0); z12=(5.05a,6.5b); z13=(4a,7b); z14=(4a,7.5b); z15=(5a,8b);
+ z16=(6a,0); z17=(6a,7b); z18=(8a,7b); z19=(8a,3.5b); z20=(6.7a,1.5b);
+ draw z1--z4; draw z5..{up}z3; draw z6--z7; draw z9--z14; draw z13--z15;
+ draw z8--z10; draw z11..{up}z10--z12; draw z2--(4a,3.5b);
+ draw z16--z17{dir-30}..{dir30}z18--z19{down}..z20;
+endchar;
+
+beginchar(108+o,U#,U#,0); "sing - the star"; pickup thick_pen;
+ z1=(a,0); z3=(8a,0); z4=(7.6a,.3b); z8=(3.3a,3.2b); z9=(7a,3.2b);
+ z10=(6.6a,3.5b); z2=.5[z1,z3]; z20=.5[z1,z10]; z5=.15[.5[z1,z8],z20];
+ z6=.2[.5[z3,z9],z20]; z7=.2[.5[z4,z10],z20]; z11=(a,b);
+ z12=(2.5a,4.5b); z13=(2.5a,5.4b); z14=(6.5a,5.4b); z15=(2.5a,8b);
+ z16=(6.5a,8b); z17=.5[z13,z14]; z18=.5[z13,z15]; z19=.5[z14,z16];
+ draw z2--z17--z14--z16--z15--z13--z17; draw z18--z19; draw z1--z3--z4;
+ draw z5--z6--z7; draw z8--z9--z10; draw z11{dir60}..{up}z12;
+endchar;
+
+beginchar(109+o,U#,U#,0); "tchang - the net"; pickup thick_pen;
+ z1=(a,0); z2=(2.5a,2b); z3=(3a,4b); z4=(1.5a,3b); z5=(1.5a,6.5b);
+ z6=(3a,6b); z7=(3a,8b); z8=(3a,7.5b); z9=(a,7.5b); z10=(4a,3.4b);
+ z11=(8a,3.4b); z12=(7.6a,3.7b); z13=(4.5a,4.8b); z14=(7.3a,4.8b);
+ z15=(6.9a,5.1b); z16=(4.5a,6.2b); z17=(6.8a,6.2b); z18=(6.4a,6.5b);
+ z19=(4.5a,7.7b); z20=(8a,7.7b); z21=(7.6a,8b); z22=(5a,3.4b);
+ z23=(8a,0); z24=(4a,2b); z25=(3a,.8b); z26=(7.4a,2.5b); z27=(6.8a,3.4b);
+ draw z1..z2{z3-z2}..z3; draw z4..z3{z3-z4}..{down}z10..z24{down}..z25;
+ draw z4--z5--z6--z7; draw z8--z9; draw z25{dir20}..z26--z27;
+ draw z10{dir45}..{up}z13--z19--z20--z21; draw z16--z17--z18;
+ draw z13--z14--z15; draw z10--z11--z12; z28=(5.6a,1.8b);
+ draw z28{z23-z22}..z23; pickup thin_pen; draw z28{z22-z23}..z22;
+endchar;
+
+beginchar(110+o,U#,U#,0); "yih - the wing"; pickup thick_pen;
+ z1=(1.5a,0); z2=(3.1a,3b); z3=(6a,3b); z4=(7a,0); z5=(a,2b); z6=(1.5a,3b);
+ z7=(1.7a,4b); z8=(1.5a,5b); z9=(a,6b); z10=(7a,3b); z11=(6.7a,4b);
+ z12=(7.3a,5.4b); z13=(a,b); z14=(3.1a,1.5b); z15=(8a,b); z16=(7.6a,1.3b);
+ z17=(7.4a,2b); z18=(7a,2.3b); z19=(4.5a,3b); z20=(4.5a,5b); z21=(a,6b);
+ z22=(4a,6b); z23=(5a,6b); z24=(8a,6b); z25=(a,7b); z26=(4a,7b);
+ z27=(5a,7b); z28=(8a,7b); z29=(a,8b); z30=(4a,8b); z31=(5a,8b);
+ z32=(8a,8b); draw z1{dir30}..z14{up}..z2; draw z3{dir-150}..{dir-30}z4;
+ draw z5..z6..z7..z8..z9; draw z10..z11..z12; draw z19--z20; draw z25--z26;
+ draw z27--z28; draw z13--z15--z16; draw z5--z17--z18; draw z6--z10;
+ draw z7--z11; draw z8--(7a,5b); draw z21--z22--z30--z29; draw z23--z24%%
+ --z32--z31;
+endchar;
+
+beginchar(111+o,U#,U#,0); "tschen - the wagon"; pickup thick_pen;
+ z1=(2.5a,0); z2=(2.5a,8b); z3=(a,2b); z4=(4a,2b); z5=(3.6a,2.3b);
+ z6=(a,7b); z7=(4a,7b); z8=(3.6a,7.3b); z9=.25[z3,z6]; z10=.5[z3,z6];
+ z11=.75[z3,z6]; z12=.25[z4,z7]; z13=.5[z4,z7]; z14=.75[z4,z7];
+ z15=(4.4a,5b); z16=(6.2a,8b); z17=(8a,5b); z18=(4.9a,3.8b);
+ z19=(6.4a,5.7b); z20=(4.9a,2b); z21=(6.8a,4b); z22=(4a,0);
+ z23=(8a,2.5b); draw z1--z2; draw z3--z4--z5; draw z6--z7--z8;
+ draw z13--z10--z11--z14--z12--z9--z10; draw z20{dir15}..z21;
+ draw z15{dir20}..{dir60}z16{dir-70}..z17; draw z18{dir15}..z19;
+ draw z22{right}..z23;
+endchar;
+
+beginchar(112+o,U#,U#,0); "kio - the horn"; pickup thick_pen;
+ z1=(a,0); z2=(2.7a,2b); z3=(3a,3.5b); z4=(3a,5.5b); z5=(5.5a,2b);
+ z6=(5.5a,5b); z7=(6a,.5b); z8=(7.2a,0); z9=(8a,b); z10=(8a,2b);
+ z11=(8a,3.5b); z12=(8a,5.5b); z13=(5.5a,5.5b); z14=(6.6a,7.2b);
+ z15=(7a,8b); z16=(a,4.5b); z17=(4a,7.2b); z18=(4.6a,8b);
+ draw z1{dir45}..z2..{up}z3--z4; draw z4..z6..z12; draw z3--z11;
+ draw z2--z10; draw z12--z9{down}..{left}z8..z7; draw z5--z6;
+ draw z13--z15; draw z16{dir20}..{z18-z17}z17--z18; draw z17--z14;
+endchar;
+
+beginchar(113+o,U#,U#,0); "kang - the neck"; pickup thick_pen;
+ z1=(a,0); z2=(3a,2.5b); z3=(3a,5.5b); z4=(3a,6b); z5=(5.7a,6b);
+ z6=(5.4a,5.5b); z7=(5a,4b); z8=(5a,1.5b); z9=(6a,0); z10=(8a,0);
+ z11=(8a,2.5b); z12=(a,7b); z13=(4a,7b); z14=(8a,7b); z15=(7.6a,7.3b);
+ z16=(4a,8b); draw z1{dir30}..{up}z2--z4; draw z12--z14--z15;
+ draw z5..{z6-z5}z6..{down}z7--z8{down}..{right}z9--z10;
+ draw z3--z6; draw z13--z16; pickup mean_pen; draw z10{dir110}..z11;
+endchar;
+
+beginchar(114+o,U#,U#,0); "ti - the foundation"; pickup thick_pen;
+ z1=(a,0); z3=(4a,1.5b); z2=.5[z1,z3]; z4=(4.2a,0); z14=.9[z1,z3];
+ z5=(2.5a,4.5b); z6=(2.5a,7b); z7=(2.5a,7.5b); z9=(7a,8b);
+ z8=1/2[z6,z9]; z10=(7a,0); z11=(8a,2b); z12=(7.5a,4.5b); z13=(7.1a,4.8b);
+ draw z1--z3; draw z2--z7; draw z6--z9; draw z5--z12--z13;
+ draw z8{down}..{dir-40}z10; pickup thin_pen;
+ draw z10{dir80}..{dir60}z11; draw z14{dir-40}..z4;
+endchar;
+
+beginchar(115+o,U#,U#,0); "fang - the chamber"; pickup thick_pen;
+ z1=(a,0); z2=(2.5a,3b); z3=(2.5a,5.7b); z4=(2.4a,6.8b); z5=(2.2a,8b);
+ z6=(a,8b); z7=(8a,8b); z8=(7.6a,8.3b); z9=(7a,6.8b); z10=(7a,5.7b);
+ z11=(4.7a,5.7b); z12=(4.7a,4.5b); z13=(4a,4.5b); z14=(2a,0);
+ z15=(8a,4.5b); z16=(7.6a,4.8b); z17=(7a,3.5b); z19=(6a,b);
+ z18=.2[z17,z19]; z20=(5a,0); z21=(4a,.5b); z22=(a,4.5b); z23=(4a,3b);
+ draw z1..{up}z2--z3{up}..z5; draw z6--z7--z8; draw z4--z9;
+ draw z3--z10; draw (7.1a,7b){dir-100}..{dir-80}(7.1a,5.5b);
+ draw z11--z12; draw z22--z15--z16; draw z23--z18; draw z13..z23{down}%%
+ ..z14; draw z17--z19{z19-z17}..{left}z20..z21;
+endchar;
+
+beginchar(116+o,U#,U#,0); "sin - the heart"; pickup thick_pen;
+ z1=(a,1.5b); z2=(1.5a,3b); z3=(1.6a,5b); z4=(2.5a,6b); z5=(3a,2b);
+ z6=(4.5a,.3b); z7=(7.5a,0); z8=(6.5a,3b); z9=(3a,8b); z10=(4.5a,5b);
+ z11=(6.5a,8b); z12=(6.7a,7b); z13=(8a,3b);
+ draw z4--z5{z5-z4}..{z7-z6}z6--z7; draw z7..{up}z8; draw z12..{down}z13;
+ draw z9..{dir-70}z10{dir70}..z11; pickup mean_pen;
+ draw z3--z2{z2-z3}..z1;
+endchar;
+
+beginchar(117+o,U#,U#,0); "wi - the tail"; pickup thick_pen;
+ z1=(a,0); z2=(2.5a,2.5b); z3=(2.8a,4b); z4=(3a,5.5b); z5=(3a,6.5b);
+ z6=(3a,8b); z7=(7.5a,5.5b); z8=(7.1a,5.8b); z9=(7.2a,6.5b);
+ z10=(7.2a,8b); z12=(8a,2.5b); (x11,y11)=(1/2[x8,x12],4b); z13=(5a,5.5b);
+ z14=(5a,b); z15=(6a,0); z16=(8a,0); z17=(7.5a,2b);
+ draw z1{dir60}..{up}z4--z6--z10{dir-110}..{dir-70}z9--z5; draw z2--z12;
+ draw z4--z7--z8; draw z13--z14{down}..{right}z15--z16; draw z3--z11;
+ pickup thin_pen; draw z16{dir160}..z17; draw z8--z12;
+endchar;
+
+beginchar(118+o,U#,U#,0); "ki - the dungbasket"; pickup thick_pen;
+ z1=(1.5a,0); z2=(3.5a,1.5b); z3=(6a,1.5b); z4=(8a,0); z5=(a,2b);
+ z6=(3a,2b); z7=(6a,2b); z8=(8a,2b); z9=(7.6a,2.3b); z10=(3a,6b);
+ z11=(6a,6b); z12=(a,5b); z13=(8a,5b); z14=(7.6a,5.3b); z15=1/4[z6,z10];
+ z16=1/4[z7,z11]; z17=.5[z6,z10]; z18=.5[z7,z11]; z19=(1.5a,5.5b);
+ z20=(3.5a,8b); z21=(4.5a,5.5b); z22=(6.5a,8b); z23=(5a,7b); z24=(8a,7b);
+ z25=(4.2a,6b); z26=(7.2a,6b); z27=2/3[z19,z20]; z28=2/3[z21,z22];
+ draw z1{dir30}..z2; draw z3{dir-30}..z4; draw z5--z8--z9; draw z15--z16;
+ draw z17--z18; draw z12--z13--z14; draw z6--z10; draw z7--z11;
+ draw z19{dir40}..z20; draw z21{dir40}..z22; draw z27{dir-10}..z23;
+ draw z28{dir-10}..z24; draw z27{right}..z25; draw z28{right}..z26;
+endchar;
+
+beginchar(119+o,U#,U#,0); "tou - the bushel"; pickup thick_pen;
+ z1=(a,2.7b); z2=(8a,5b); z3=(7.6a,5.2b); z4=(5a,0); z5=(5a,8b);
+ z6=(2.3a,4.3b); z7=(1.5a,6b); z8=(3.5a,6b); z9=(2.5a,7.5b);
+ draw z1--z2--z3; draw z4--z5; pickup mean_pen;
+ fill fullcircle xscaled .8pt yscaled .5pt rotated 150 shifted z6;
+ draw z6{dir60}..z7;
+ fill fullcircle xscaled .8pt yscaled .5pt rotated 150 shifted z8;
+ draw z8{dir60}..z9;
+endchar;
+
+beginchar(120+o,U#,U#,0); "niu - the cattle"; pickup thick_pen;
+ z1=(a,3.5b); z3=(2.8a,5.5b); z4=(3a,7b); z5=(4.5a,8b);
+ z6=(6.2a,5.5b); z7=(6a,6b); z8=(4.5a,0); z9=(8a,3.5b); z10=(7.5a,4b);
+ draw z1..z3..{up}z4; draw z5..z8; draw z3..z6; draw z6..z7;
+ draw z1..z9; draw z9..z10;
+endchar;
+
+beginchar(121+o,U#,U#,0); "nue - the virgin"; pickup thick_pen;
+ z1=(a,0); z2=(5a,1.5b); z3=(6a,5b); z4=(3a,2b); z5=(5.5a,8b);
+ z6=(a,5b); z7=(8a,5b); z8=(7.6a,5.3b); z9=1/6[z4,z5]; z10=(8a,0);
+ draw z1{dir10}..z2{z3-z1}..{dir80}z3; draw z9{right}..z10;
+ draw z4--z5; draw z6--z7--z8;
+endchar;
+
+beginchar(122+o,U#,U#,0); "hue - the mound"; pickup mean_pen;
+ z1=(a,0); z2=(2a,3b); z3=(2a,5b); z4=(2a,6b); z5=(1.5a,7b); z6=(2.5a,0);
+ z7=(3a,1.5b); z8=(2.5a,2.8b); z9=(3.8a,0); z10=(3.8a,1.5b);
+ z11=(3.8a,3.5b); z12=(4.5a,4.05b); z15=(4.5a,7b); z16=(4.5a,8b);
+ z17=(6.5a,7b); z18=(6.1a,7.3b); z19=(8a,6b); z20=(7.1a,5.5b);
+ z21=(6.5a,5.6b); z22=(7a,5b); z23=(6.7a,4.4b); z24=(5.2a,3.5b);
+ z25=(5a,3b); z26=(6.7a,2.6b); z27=(6.5a,2b); z28=(6.5a,b); z29=(5.2a,2b);
+ z30=(5.2a,0); z31=(8a,0); z32=(7.6a,.3b);
+ draw z1{dir50}..{up}z2--z4{dir140}..z5; draw z15--z17--z18; draw z3--z22;
+ draw z4--z19{down}..{left}z20; draw z7--z10;
+ draw z16--z12--z24--z30--z28--z26{up}..{z25-z26}z24; draw z29--z27;
+ draw z2..z8..{down}z7..{dir-120}z6--z31--z32; draw z7--z10;
+ draw z9--z11{up}..{right}z23{dir140}..{up}z21;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%END OF FILE CHINASYM.STA%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Master/texmf-dist/fonts/source/public/china2e/readme.txt b/Master/texmf-dist/fonts/source/public/china2e/readme.txt
new file mode 100644
index 00000000000..892ca05de84
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/china2e/readme.txt
@@ -0,0 +1,65 @@
+================================================
+####### China2e -- a short font report #######
+================================================
+
+(Chinese calendar symbols - by UDO HEYL, July 14th, 1997
+
+Error Reports in case of UNCHANGED versions to
+ Udo Heyl,
+ Stregdaer Allee 7,
+ 99817 Eisenach,
+ Federal Republic of Germany
+or
+ DANTE, Deutschsprachige Anwendervereinigung TeX e.V.,
+ Postfach 10 18 40,
+ 69008 Heidelberg,
+ Federal Republic of Germany,
+ Email: dante@dante.de
+
+What is China2e ?
+_________________
+
+It is a LaTeX2e - package to produce Chinese calendar symbols
+of the old Chinese lunisolar calendar. In addition you can use
+a new fontshape {\BLOCK}, symbolic letters
+\symA ... \symZ , the phases of the Moon
+\MoonPha{1}\MoonPha{2}\MoonPha{3}\MoonPha{4}
+and some special symbols (\Greenpoint\Telephone...).
+
+How to use the China2e package?
+_______________________________
+
+First and foremost you've got to copy the following files
+
+--- china10.mf, chinasym.add, chinasym.alf, chinasym.ele,
+ chinasym.num, chinasym.sbl and chinasym.sta
+ into your Metafont-directory (\EMTEX\MFINPUT\CHINA)
+
+--- china2e.sty into your Style-directory (\EMTEX\TEXINPUT\CHINA)
+
+--- china10.tfm into your Tfm-directory (\EMTEX\TFM\CHINA
+
+Note, however, that the paths may be different in your
+ LaTeX2e implementation
+ (EmTeX for MS-DOS, web2c for UNIX etc.).
+
+LaTeX2e is absolutely required, if you want to use China2e,
+which doesn't run with the ANCIENT LaTeX209.
+
+Now you can call this package like seen in the example:
+
+ \documentclass[12pt]{article}
+ \usepackage{china2e} %%% to include china2e.sty
+ \begin{document} ... \end{document}
+
+Chinese characters and symbols will appear now in the current size
+and won't change the current shape. Of course you can input
+
+ {\Huge Chinese symbol}
+
+to manage a greater Chinese calendar symbol.
+
+!!!!! Please consult CHINADOC.TEX or CHINADOC.PS for further infos !!!!!
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/circ/cibimos.mf b/Master/texmf-dist/fonts/source/public/circ/cibimos.mf
new file mode 100644
index 00000000000..e4a6d4c9ada
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cibimos.mf
@@ -0,0 +1,261 @@
+%%
+%% This is file `cibimos.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csybimos')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+font_identifier:="cibimos";
+
+string optionname; optionname:="";
+
+input defcirc.mf;
+
+input csym;
+designsize:=1lLE#;
+
+def mosfet = % ok
+ z0=(0,0);
+ x1=x2=x3=x4;
+ y2-y1=mos_SD;
+ y4-y3=mos_sd;
+ .5[z2,z1]=.5[z4,z3];
+ y6=y4; y7=y3;
+ x4-x6=x3-x7;
+ .5[z8,z9]=.5[z6,z7]=z5;
+ x9=x8;
+ y8-y6=mos_soSD;
+ x10=x11;
+ x0+mos_Gsub=x10+mos_ox=x7;
+ x1-x0=mos_GSx;
+ y0=y10=y1+mos_GSy;
+ y6-y11=y10-y7;
+ z12=.5[z1,z2];
+ z6=.5[z13,z8];
+ z7=.5[z14,z9];
+ z15-z16=z8-z13;
+ z5=.5[z15,z16];
+ pickup pencircle scaled mos_rad;
+ drawdot round(z3);
+ pickup pensquare scaled normalline;
+ draw z1--z3--z7;
+ draw z2--z4--z6;
+ draw z0--z10--z11;
+ draw z5--z12--z3;
+ pickup pensquare scaled thickline;
+enddef;
+
+def mosfet_V = % ok
+ mosfet;
+ draw z8--z9;
+enddef;
+
+def mosfet_A = % ok
+ mosfet;
+ draw z8--z13;
+ draw z9--z14;
+ draw z15--z16;
+enddef;
+
+def fet = % ok
+ z0=(0,0);
+ z1=z0+(fet_Gsub,0);
+ y2=y1;
+ x2=x3=x4=x0+fet_GSx;
+ y3=y2-fet_GSy;
+ z2-z3=z4-z5;
+ y4-y3=fet_SD;
+ y6=y5;
+ x1=x6;
+ x8=x7;
+ y8=y1-fet_soSD;
+ .5[z4,z3]=.5[z5,z2];
+ .5[z7,z8]=.5[z1,z6];
+ z9=z1-(fet_sarr+tri_lt,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z3;
+ draw z6--z5--z4;
+ pickup pensquare scaled thickline;
+ draw z7--z8;
+enddef;
+
+def transistor_without_basis = % "uberarbeiten
+ numeric pl;
+ pl:=.5(tst_ht-tst_iht);
+ z1-z2=(0,tst_iht);
+ z0=.5[z1,z2];
+ z3=tst_fac[z0,z1];
+ z4=tst_fac[z0,z2];
+ z5=z1+(tst_wd,0);
+ z6=z2+(tst_wd,0);
+ z7=z5+(0,pl);
+ z8=z6+(0,-pl);
+ z9=tst_dis[z4,z6];
+ pickup pensquare scaled normalline;
+ draw z1--z2;
+ draw z3--z5--z7;
+ draw z4--z6--z8;
+ pickup pencircle scaled thinline;
+ triangle(z9,tst_rad,tri_phi,angle(z6-z4));
+enddef;
+
+def npn_no_basis = % "uberarbeiten
+ numeric tst_rad,tst_dis;
+ tst_rad:=-tri_lt;
+ tst_dis:=npn_dis;
+ z0=(0,0);
+ transistor_without_basis;
+enddef;
+
+def npn_photo = % "uberarbeiten
+numeric pl;
+ z0=(0,0);
+ pl:=.5(tst_ht-tst_iht);
+ y0=y1=y2=y3;
+ x1=x0+tst_ht;
+ x2-x0=x1-x3=pl;
+ y5=y4=y6=y7=y8=y0+tst_wd;
+ x5-x6=tst_iht;
+ x4=.5[x5,x6]=.5[x0,x1];
+ x7=tst_fac[x4,x5];
+ x8=tst_fac[x4,x6];
+ z9=tst_dis[z2,z8];
+ pickup pensquare scaled normalline;
+ draw z0--z2--z8--z7--z3--z1;
+ draw z5--z6;
+ pickup pencircle scaled thinline;
+ triangle(z9,tst_rad,tri_phi,angle(z8-z2));
+enddef;
+
+def pnp_no_basis = % "uberarbeiten
+ numeric tst_rad,tst_dis;
+ tst_rad:=tri_lt;
+ tst_dis:=pnp_dis;
+ z0=(0,0);
+ transistor_without_basis;
+enddef;
+
+def npn = % "uberarbeiten
+ numeric tst_rad,tst_dis;
+ tst_rad:=-tri_lt;
+ tst_dis:=npn_dis;
+ z0=(tst_wd,0);
+ z20=(0,0);
+ transistor_without_basis;
+ pickup pensquare scaled normalline;
+ draw z20--z0;
+enddef;
+
+def pnp = % "uberarbeiten
+ numeric tst_rad,tst_dis;
+ tst_rad:=tri_lt;
+ tst_dis:=pnp_dis;
+ z0=(tst_wd,0);
+ z20=(0,0);
+ transistor_without_basis;
+ pickup pensquare scaled normalline;
+ draw z20--z0;
+enddef;
+
+"Transistor NPN ohne Basis";
+eightchars(0)
+ (npn_no_basis)
+ (tst_wd#,.5tst_ht#,.5tst_ht#,0);
+
+"Transistor PNP ohne Basis";
+eightchars(8)
+ (pnp_no_basis)
+ (tst_wd#,.5tst_ht#,.5tst_ht#,0);
+
+"Transistor NPN";
+eightchars(16)
+ (npn)
+ (tst_wd#+tst_wd#,.5tst_ht#,.5tst_ht#,0);
+
+"Transistor PNP";
+eightchars(24)
+ (pnp)
+ (tst_wd#+tst_wd#,.5tst_ht#,.5tst_ht#,0);
+
+"FET n-Kanal";
+eightchars(32)
+ (fet;
+ pickup pencircle scaled thinline;
+ triangle(z1,tri_lt,tri_phi,180);
+ )
+ (fet_GSx#,fet_GSy#,fet_SD#-fet_GSy#,0);
+
+"FET p-Kanal";
+eightchars(40)
+ (fet;
+ pickup pencircle scaled thinline;
+ triangle(z9,tri_lt,tri_phi,0);
+ )
+ (fet_GSx#,fet_GSy#,fet_SD#-fet_GSy#,0);
+
+"MOSFET n-Kanal V";
+eightchars(48)
+ (mosfet_V;
+ pickup pencircle scaled thinline;
+ triangle(z5,tri_lt,tri_phi,0);
+ )
+ (mos_GSx#,mos_GSy#,mos_SD#-mos_GSy#,0);
+
+"MOSFET p-Kanal V";
+eightchars(56)
+ (mosfet_V;
+ pickup pencircle scaled thinline;
+ triangle(z12,tri_lt,tri_phi,180);
+ )
+ (mos_GSx#,mos_GSy#,mos_SD#-mos_GSy#,0);
+
+"MOSFET n-Kanal A";
+eightchars(64)
+ (mosfet_A;
+ pickup pencircle scaled thinline;
+ triangle(z5,tri_lt,tri_phi,0);
+ )
+ (mos_GSx#,mos_GSy#,mos_SD#-mos_GSy#,0);
+
+"MOSFET p-Kanal A";
+eightchars(72)
+ (mosfet_A;
+ pickup pencircle scaled thinline;
+ triangle(z12,tri_lt,tri_phi,180);
+ )
+ (mos_GSx#,mos_GSy#,mos_SD#-mos_GSy#,0);
+
+current_char_code:=80;
+
+twopincharfourfour("npnPH")("T")("E")("C")("photo transistor")
+ (tst_ht#,tst_wd#+1.6lLE#,0)
+(
+shiftpoint:=z1;
+npn_photo;
+lightarrows(z4+(.8lLE,1.7lLE),240);
+)
+
+end;
+%%
+%%
+%% End of file `cibimos.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cicirc.mf b/Master/texmf-dist/fonts/source/public/circ/cicirc.mf
new file mode 100644
index 00000000000..71631021f0e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cicirc.mf
@@ -0,0 +1,439 @@
+%%
+%% This is file `cicirc.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csycirc')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+
+designsize:=2lLE#;
+
+fontdimen10: .4gat_ht#;
+fontdimen11: .65gat_lt#;
+
+fontdimen12: .5pin_lt#;
+fontdimen13: pin_spc#;
+fontdimen14: .5ios_wd#+.5pin_lt#;
+fontdimen15: mid_wd#+ios_wd#;
+fontdimen16: ios_wd#;
+fontdimen17: out_spc#;
+
+
+def defcircleabout(expr p, rad)=
+ z[p]=.5[z[p+1],z[p+3]]=.5[z[p+2],z[p+4]];
+ y[p+1]=y[p+3];
+ x[p+2]=x[p+4];
+ x[p]=lft(x[p+1])-rad;
+ y[p]=top(y[p+4])+rad;
+enddef;
+
+def gate=
+ charic:=.5pin_spc#;
+ z0=(0,0);
+ x20=x15=x1=x6=x7= x0+pin_lt;
+ y8=y6=-y7= y0+.5gat_ht;
+ x8=x9=x10= x1+gat_lt-2pin_lt;
+ y15=-y20= y0+.5pin_spc;
+ x25-x0= gat_lt;
+
+ y9=y7; y25=y10=y1=y0;
+ x0=x26=x27;
+ y26=y15; y27=y20;
+
+ pickup pencircle scaled thickline;
+ defcircleabout(1,inv_rad);
+ defcircleabout(10,inv_rad);
+ defcircleabout(15,inv_rad);
+ defcircleabout(20,inv_rad);
+enddef;
+
+def segment =
+ z0=(0,0);
+ x1-x0=pin_lt; y0=y1;
+ defcircleabout(1,inv_rad); % z2 z3 z4 z5 defined
+ z1=.5[z6,z7]; x6=x7=x8;
+ y7-y6=pin_spc;
+ y8-y1=out_spc;
+ x9-x8=ios_wd; y8=y9;
+enddef;
+
+def topbotsegs(expr fc, myht, mydp) =
+ beginchar(fc+0,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8--z9;
+ endchar;
+ beginchar(fc+1,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8--z9;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ endchar;
+ beginchar(fc+2,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z5;
+ draw z3--z8--z9;
+ pickup pencircle scaled normalline;
+ draw fullcircle scaled 2inv_rad shifted z1;
+ pickup pensquare scaled normalline;
+ draw z0--z4;
+ endchar;
+ beginchar(fc+3,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8--z9;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ pickup pencircle scaled normalline;
+ draw z3--z2--z5;
+ endchar;
+enddef;
+
+def midsegs(expr fc, myht, mydp) =
+ beginchar(fc+0,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8;
+ endchar;
+ beginchar(fc+1,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ endchar;
+ beginchar(fc+2,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z5;
+ draw z3--z8;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2inv_rad shifted z1;
+ pickup pensquare scaled normalline;
+ draw z0--z4;
+ endchar;
+ beginchar(fc+3,pin_lt#+ios_wd#,myht,mydp);
+ pickup pensquare scaled thickline;
+ segment
+ draw z6--z8;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ pickup pencircle scaled normalline;
+ draw z3--z2--z5;
+ endchar;
+enddef;
+
+"obere Segmente Eing"&ditto&"ange";
+topbotsegs(0,out_spc#,.5pin_spc#);
+
+"obere Segmente Ausg"&ditto&"ange";
+{{
+ addTF(reflectedabout((.5(ios_wd+pin_lt),0),(.5(ios_wd+pin_lt),1)));
+ topbotsegs(16,out_spc#,.5pin_spc#);
+}}
+
+"mittlere Segmente Eing"&ditto&"ange";
+midsegs(32,.5pin_spc#,.5pin_spc#);
+
+"mittlere Segmente Eing"&ditto&"ange";
+{{
+ addTF(reflectedabout((.5(ios_wd+pin_lt),0),(.5(ios_wd+pin_lt),1)));
+ midsegs(48,.5pin_spc#,.5pin_spc#);
+}}
+
+"untere Segmente Eing"&ditto&"ange";
+{{
+ addTF(reflectedabout(left,right));
+ topbotsegs(64,.5pin_spc#,out_spc#);
+}}
+
+"untere Segmente Ausg"&ditto&"ange";
+{{
+ addTF(reflectedabout(left,right));
+ addTF(reflectedabout((.5(ios_wd+pin_lt),0),(.5(ios_wd+pin_lt),1)));
+ topbotsegs(80,.5pin_spc#,out_spc#);
+}}
+
+"oberes Zwischensegment";
+beginchar(96,mid_wd#,out_spc#,.5pin_spc#);
+ pickup pensquare scaled thickline;
+ draw (0,out_spc)--(mid_wd,out_spc);
+endchar;
+
+"Zwischensegment";
+beginchar(97,mid_wd#,.5pin_spc#,.5pin_spc#);
+endchar;
+
+"unteres Zwischensegment";
+beginchar(98,mid_wd#,.5pin_spc#,out_spc#);
+ pickup pensquare scaled thickline;
+ draw (0,-out_spc)--(mid_wd,-out_spc);
+endchar;
+
+"Gatter: Eingang, Ausgang";
+beginchar(128,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z6--z8--z9--z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z10--z25;
+endchar;
+
+"Gatter: Eingang negiert, Ausgang";
+beginchar(129,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z3--z6--z8--z9--z7--z5;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2inv_rad shifted z1;
+ pickup pensquare scaled normalline;
+ draw z0--z4;
+ draw z10--z25;
+endchar;
+
+"Gatter: Eingang, Ausgang negiert";
+beginchar(130,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z14--z9--z7--z6--z8--z12;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2inv_rad shifted z10;
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z11--z25;
+endchar;
+
+"Gatter: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(131,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z6--z8--z9--z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z10--z25;
+endchar;
+
+"Gatter: zwei Eing"&ditto&"ange, Ausgang negiert";
+beginchar(132,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z14--z9--z7--z6--z8--z12;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2inv_rad shifted z10;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z11--z25;
+endchar;
+
+"Gatter alt AND: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(133,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z10--z25;
+endchar;
+
+"Gatter alt NAND: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(134,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z10--z25;
+ pickup pencircle scaled 2inv_rad;
+ drawdot z10;
+endchar;
+
+"Gatter alt OR: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(135,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ z30=5[z26,z15];
+ z31=5[z27,z20];
+ z32= (z26--z30) intersectionpoint (z6{right}..{down}z10);
+ z33= (z27--z31) intersectionpoint (z10{down}..{left}z7);
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z26--z32;
+ draw z27--z33;
+ draw z10--z25;
+endchar;
+
+"Gatter alt NOR: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(136,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ z30=5[z26,z15];
+ z31=5[z27,z20];
+ z32= (z26--z30) intersectionpoint (z6{right}..{down}z10);
+ z33= (z27--z31) intersectionpoint (z10{down}..{left}z7);
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z26--z32;
+ draw z27--z33;
+ draw z10--z25;
+ pickup pencircle scaled 2inv_rad;
+ drawdot z10;
+endchar;
+
+"Gatter alt EQ: zwei Eing"&ditto&"ange, Ausgang";
+beginchar(137,gat_lt#,.5gat_ht#,.5gat_ht#);
+ gate;
+ pickup pensquare scaled thickline;
+ draw z1--z6{right}..z10{down}..{left}z7--cycle;
+ pickup pensquare scaled normalline;
+ draw z15--z26;
+ draw z20--z27;
+ draw z10--z25;
+ x30=x31=x34=.2[x2,x13];
+ y30=.7[y16,y2]; y30=y32;
+ y31=.7[y21,y2]; y31=y33;
+ x32=x33=x35=.8[x2,x13];
+ y35=y34=y2;
+ pickup pencircle scaled normalline;
+ draw z30--z32;
+ draw z31--z33;
+ draw z34--z35;
+endchar;
+
+"box symbol empty";
+beginchar(250,box_wd#,.5box_wd#,.5box_wd#);
+ z0=(0,0);
+ x0=x1=x2; x3=x4;
+ y0=.5[y2,y1];
+ y1=y3; y2=y4;
+ y2-y1=x3-x1=box_wd;
+ pickup pensquare scaled thickline;
+ draw z1--z2--z4--z3--cycle;
+endchar;
+
+"box symbol cutted by line";
+beginchar(251,box_wd#,.5box_wd#,.5box_wd#);
+ z0=(0,0);
+ x0=x1=x2; x3=x4;
+ y0=.5[y2,y1];
+ y1=y3; y2=y4;
+ y2-y1=x3-x1=box_wd;
+ pickup pensquare scaled thickline;
+ draw z1--z2--z4--z3--cycle;
+ pickup pencircle scaled normalline;
+ draw z1--z4;
+endchar;
+
+"Black Box analog";
+beginchar(252,bba_wd#,.5bba_ht#,.5bba_ht#);
+ z0=(0,0); x1=x0=x2;
+ z0=.5[z1,z2];
+ y1-y2=y3-y4=bba_ht; y1=y3;
+ x3=x4=x0+bba_wd;
+ pickup pensquare scaled thickline;
+ draw z1--z2--z4--z3--cycle;
+endchar;
+
+"Black Box digital";
+beginchar(253,bbd_wd#,.5bbd_ht#,.5bbd_ht#);
+ z0=(0,0); x1=x0=x2;
+ z0=.5[z1,z2];
+ y1-y2=y3-y4=bbd_ht; y1=y3;
+ x3=x4=x0+bbd_wd;
+ pickup pensquare scaled thickline;
+ draw z1--z2--z4--z3--cycle;
+endchar;
+
+"OPV";
+beginchar(254,opv_lt#,opv_ht#,opv_ht#);
+ charic:=opv_dis#;
+ numeric pl;
+ pl:=pin_lt;
+ z0=(0,0);
+ z1=z0+(pl,opv_dis);
+ z2=z0+(pl,opv_ht);
+ z3=z0+(pl+opv_frc*2opv_ht,0);
+ x4=x2; y4=-y2;
+ x5=x1; y5=-y1;
+ z6=z1-(pl,0);
+ z7=z5-(pl,0);
+ z8=z0+(opv_lt,0);
+ z9=z5+(3pt,0);
+ z10=z9+(4pt,0);
+ z11=z1+(3pt,0);
+ z12=z11+(4pt,0);
+ z13=z11+(2pt,2pt);
+ z14=z11+(2pt,-2pt);
+ pickup pensquare scaled thickline;
+ draw z2--z3--z4--cycle;
+ pickup pensquare scaled normalline;
+ draw z9--z10;
+ draw z11--z12;
+ draw z13--z14;
+ draw z6--z1;
+ draw z7--z5;
+ draw z3--z8;
+endchar;
+
+"OPV";
+beginchar(255,opv_lt#,opv_ht#,opv_ht#);
+ charic:=opv_dis#;
+ numeric pl;
+ pl:=pin_lt;
+ z0=(0,0);
+ z1=z0+(pl,opv_dis);
+ z2=z0+(pl,opv_ht);
+ z3=z0+(pl+opv_frc*2opv_ht,0);
+ x4=x2; y4=-y2;
+ x5=x1; y5=-y1;
+ z6=z1-(pl,0);
+ z7=z5-(pl,0);
+ z8=z0+(opv_lt,0);
+ z9=z1+(3pt,0);
+ z10=z9+(4pt,0);
+ z11=z5+(3pt,0);
+ z12=z11+(4pt,0);
+ z13=z11+(2pt,2pt);
+ z14=z11+(2pt,-2pt);
+ pickup pensquare scaled thickline;
+ draw z2--z3--z4--cycle;
+ pickup pensquare scaled normalline;
+ draw z9--z10;
+ draw z11--z12;
+ draw z13--z14;
+ draw z6--z1;
+ draw z7--z5;
+ draw z3--z8;
+endchar;
+
+end;
+%%
+%%
+%% End of file `cicirc.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cidiod.mf b/Master/texmf-dist/fonts/source/public/circ/cidiod.mf
new file mode 100644
index 00000000000..9027a14038b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cidiod.mf
@@ -0,0 +1,108 @@
+%%
+%% This is file `cidiod.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csydiod')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+designsize:=1lLE#;
+
+def diode = % "uberarbeiten
+ numeric pl;
+ pl:=.5(did_lt-did_wd);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(did_wd,0);
+ z3=z2+(pl,0);
+ z4-z5=z6-z7=(0,did_ht);
+ z1=.5[z4,z5];
+ z2=.5[z6,z7];
+ z8=z4+(did_zlt,0);
+ z9=z0+(0,thy_ht);
+
+ z10=.35[z5,z7];
+ z11=z10-(.5Dcap_spc,0);
+ z12=z10+(.5Dcap_spc,0);
+ y13=y15; y14=y16;
+ x13=x14; x15=x16;
+ y13-y14=Dcap_ht;
+ z11=.5[z13,z14];
+ z12=.5[z15,z16];
+ z17=z11-(Dcap_wd,0);
+ z18=z12+(Dcap_wd,0);
+
+ pickup pensquare scaled normalline;
+ draw z0--z3;
+ draw z4--z5;
+ draw z1--z6--z7--cycle;
+enddef;
+
+def Dcap =
+ pickup pensquare scaled normalline;
+ draw z17--z11;
+ draw z13--z14;
+ draw z15--z16;
+ draw z12--z18;
+enddef;
+
+def led_arrows = % "uberarbeiten
+ numeric pl;
+ numeric x[],y[];
+ transform arr_a,arr_b;
+ pickup pencircle scaled thickline;
+ pl:=.5(did_lt-did_wd);
+ z0=(0,0);
+ z4=z0+(pl,0);
+ z1=z0+(led_lt,0);
+ (z1-z2)=(led_wd,0) rotated led_phi;
+ (z1-z3)=(led_wd,0) rotated -led_phi;
+ arr_a:=identity rotated led_psi shifted
+ (z4+(led_spx+.5led_spc*cosd(led_psi),led_spy-.5led_spc*sind(led_psi)));
+ arr_b:=identity rotated led_psi shifted
+ (z4+(led_spx-.5led_spc*cosd(led_psi),led_spy+.5led_spc*sind(led_psi)));
+ draw (z0--z1) transformed arr_a;
+ draw (z0--z1) transformed arr_b;
+ fill (z2--z1--z3--cycle) transformed arr_a;
+ fill (z2--z1--z3--cycle) transformed arr_b;
+enddef;
+
+"Diode";
+fourchars(0)(diode)(z3)(.5did_ht#,did_lt#,.5did_ht#);
+
+"Z-Diode";
+fourchars(4)(diode; draw z4--z8)(z3)(.5did_ht#,did_lt#,.5did_ht#);
+
+"LED";
+fourfourchars(8)(diode; lightarrows(.5[z1,z6]+(0,.5lLE),120))(z3)
+(.5did_ht#+.5led_spy#+led_lt#*sind(led_psi),did_lt#,.5did_ht#);
+
+"Kapazit"&ditto&"atsdiode";
+fourchars(16)(diode; Dcap)(z3)(.5did_ht#,did_lt#,.65did_ht#);
+
+"Thyristor";
+
+end;
+%%
+%%
+%% End of file `cidiod.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cioptic.mf b/Master/texmf-dist/fonts/source/public/circ/cioptic.mf
new file mode 100644
index 00000000000..01425b55449
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cioptic.mf
@@ -0,0 +1,539 @@
+%%
+%% This is file `cioptic.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `optic')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+
+string optionname; optionname="optics";
+
+font_identifier="cioptic";
+
+input defcirc;
+
+hsoa:=.128CIu;
+
+slens_ht# := 2CIu#;
+slens_lt# := 2CIu#;
+slens_phi := 60;
+slens_spc := .55CIu;
+define_pixels(slens_lt,slens_ht);
+
+blens_ht# := 2CIu#;
+blens_lt# := 2CIu#;
+blens_phi := 45;
+blens_spc := .88CIu;
+define_pixels(blens_lt,blens_ht);
+
+sklens_ht# := 2CIu#;
+sklens_lt# := 2CIu#;
+sklens_phi := 60;
+sklens_spc := .58CIu;
+sklens_bt := 1CIu; % Breite Bottom und Top
+define_pixels(sklens_lt,sklens_ht);
+
+mir_ht# := 2CIu#;
+mir_lt# := 2CIu#;
+mir_wd := .5CIu; % Schraffurl"ange
+define_pixels(mir_ht,mir_lt);
+
+omb_wd# := 3CIu#;
+omb_ht# := 2CIu#;
+lab_wd# := 4CIu#;
+lab_ht# := 2CIu#;
+define_pixels(omb_wd,omb_ht,lab_wd,lab_ht);
+
+pol_ht# := 2CIu#;
+pol_lt# := 2CIu#;
+pol_spc := .2CIu;
+define_pixels(pol_ht,pol_lt);
+
+pin_ht# := 2CIu#;
+pin_lt# := 2CIu#;
+pin_spx := .16CIu;
+pin_spy := .08CIu;
+pin_spz := .5CIu;
+define_pixels(pin_ht,pin_lt);
+
+cam_ht# := 2CIu#;
+cam_lt# := 3CIu#;
+cam_spx := 2CIu;
+cam_spy := 1CIu;
+define_pixels(cam_ht,cam_lt);
+
+scr_ht# := 4CIu#;
+scr_lt# := 2CIu#;
+scr_spx := 1CIu;
+scr_spy := 1CIu;
+define_pixels(scr_ht,scr_lt);
+
+def rectangle(expr width, height, xs, ys) =
+ draw (xs,.5height+ys)--(width+xs,.5height+ys)--(width+xs,-.5height+ys)--
+ (xs,-.5height+ys)--cycle;
+enddef;
+
+def small_lens =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(slens_lt-slens_spc);
+ z0=(.5slens_lt,-.5slens_ht);
+ z1=(.5slens_lt,.5slens_ht);
+ z2=(.5CIu,0); z3=z2+(hsoa,0);
+ z4=(slens_lt-.5CIu,0); z5=z4-(hsoa,0);
+ draw z0{dir slens_phi}..z1;
+ draw z0{dir (180-slens_phi)}..z1;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def half_small_lens =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(slens_lt-slens_spc);
+ z0=(.5slens_lt,-.5slens_ht);
+ z1=(.5slens_lt,.5slens_ht);
+ z4=(slens_lt-.5CIu,0); z5=z4-(hsoa,0);
+ draw z0{dir slens_phi}..z1;
+ draw z1--z0;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def bold_lens =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(blens_lt-blens_spc);
+ z0=(.5blens_lt,-.5blens_ht);
+ z1=(.5blens_lt,.5blens_ht);
+ draw z0{dir blens_phi}..z1;
+ draw z0{dir (180-blens_phi)}..z1;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def half_bold_lens =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(blens_lt-blens_spc);
+ z0=(.5blens_lt,-.5blens_ht);
+ z1=(.5blens_lt,.5blens_ht);
+ draw z0{dir blens_phi}..z1;
+ draw z1--z0;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def small_konkav_lens =
+ pickup pensquare scaled normalline;
+ numeric pl, ql;
+ pl:=.5(sklens_lt-sklens_spc);
+ ql:=.5(sklens_lt-sklens_bt);
+ z0=(ql,-.5sklens_ht);
+ z1=(sklens_lt-ql,-.5sklens_ht);
+ z2=(ql,.5sklens_ht);
+ z3=(sklens_lt-ql,.5sklens_ht);
+ z4=(.5CIu,0); z5=z4+(hsoa,0);
+ z6=(sklens_lt-.5CIu,0); z7=z6-(hsoa,0);
+ draw z0{dir sklens_phi}..z2--z3{dir (180+sklens_phi)}..z1--z0;
+ draw z4--z5; draw z6--z7;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def half_small_konkav_lens =
+ pickup pensquare scaled normalline;
+ numeric pl, ql;
+ pl:=.5(sklens_lt-sklens_spc);
+ ql:=.5(sklens_lt+sklens_bt);
+ z0=(.5sklens_lt,-.5sklens_ht);
+ z1=(ql,-.5sklens_ht);
+ z2=(.5sklens_lt,.5sklens_ht);
+ z3=(ql,.5sklens_ht);
+ draw z0--z2--z3{dir (180+sklens_phi)}..z1--z0;
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def mirror =
+ pickup pensquare scaled normalline;
+ opticalaxis(normalline)(0);
+ opticalaxisdown(normalline)(.5mir_lt,0);
+ halfmirror;
+ pickup pensquare scaled thinline;
+ for i=.125 step .125 until .875:
+ draw (i*mir_lt,(.5-i)*mir_ht)--(mir_wd+i*mir_lt,mir_wd+(.5-i)*mir_ht);
+ endfor
+enddef;
+
+def halfmirror =
+ pickup pensquare scaled thickline;
+ draw (.5mir_wd,.5(mir_ht-mir_wd))--(mir_lt-.5mir_wd,.5(mir_wd-mir_ht));
+enddef;
+
+def halfmirrorline =
+ pickup pensquare scaled normalline;
+ opticalaxis(normalline)(0);
+ opticalaxisdown(normalline)(.5mir_lt,.5mir_ht);
+ opticalaxisdown(normalline)(.5mir_lt,0);
+enddef;
+
+def polarizer =
+ pickup pensquare scaled thinline;
+ numeric pl;
+ pl:=.5(pol_lt-pol_spc);
+ z0=(pl,.5pol_ht);
+ z1=z0+(0,-pol_ht);
+ z2=z1+(pol_spc,0);
+ z3=z0+(pol_spc,0);
+ draw z0--z1--z2--z3--cycle;
+ % optical axis
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def pinhole =
+ pickup pensquare scaled thinline;
+ numeric pl;
+ pl:=.5(pin_lt-pin_spx);
+ fill (.5pin_lt,.5pin_spy)--(pl,.5pin_spz)--(pl,.5pin_ht)--
+ (pl+pin_spx,.5pin_ht)--(pl+pin_spx,.5pin_spz)--cycle;
+ fill (.5pin_lt,-.5pin_spy)--(pl,-.5pin_spz)--(pl,-.5pin_ht)--
+ (pl+pin_spx,-.5pin_ht)--(pl+pin_spx,-.5pin_spz)--cycle;
+ % optical axis
+ opticalaxis(normalline)(0);
+ opticalaxis(normalline)(1CIu);
+enddef;
+
+def screenleft (expr gray) =
+ pickup pensquare scaled normalline;
+ path a, b;
+ numeric pl;
+ pl:=.5(scr_lt-scr_spx);
+ z0=(pl,.5scr_ht);
+ z1=(pl+scr_spx,scr_spy);
+ z2=(pl+scr_spx,-.5scr_ht);
+ z3=(pl,-scr_spy);
+ draw z0--z1--z2--z3--cycle;
+ a:=z0--z1;
+ b:=z2--z3;
+ vshade(b, a, gray, unitsquare);
+enddef;
+
+def screenright (expr gray) =
+ pickup pensquare scaled normalline;
+ path a, b;
+ numeric pl;
+ pl:=.5(scr_lt-scr_spx);
+ z0=(pl,-.5scr_ht);
+ z1=(pl,scr_spy);
+ z2=(pl+scr_spx,.5scr_ht);
+ z3=(pl+scr_spx,-scr_spy);
+ draw z0--z1--z2--z3--cycle;
+ a:=z1--z2;
+ b:=z3--z0;
+ vshade(b, a, gray, unitsquare);
+enddef;
+
+def opticalaxis(expr linethickness)(expr offset) =
+ pickup pensquare scaled linethickness;
+ draw (offset,0)--(offset+hsoa,0);
+ draw (offset+3hsoa,0)--(offset+5hsoa,0);
+ draw (offset+7hsoa,0)--(offset+1CIu,0);
+enddef;
+
+def halfopticalaxis(expr linethickness)(expr offset) =
+ pickup pensquare scaled linethickness;
+ draw (offset,0)--(offset+hsoa,0);
+ draw (offset+3hsoa,0)--(offset+.5CIu,0);
+enddef;
+
+def opticalaxisdown(expr linethickness)(expr xoffset, yoffset) =
+ pickup pensquare scaled linethickness;
+ draw (xoffset,yoffset)--(xoffset,yoffset-hsoa);
+ draw (xoffset,yoffset-3hsoa)--(xoffset,yoffset-5hsoa);
+ draw (xoffset,yoffset-7hsoa)--(xoffset,yoffset-1CIu);
+enddef;
+
+def halfopticalaxisdown(expr linethickness)(expr xoffset, yoffset) =
+ pickup pensquare scaled linethickness;
+ draw (xoffset,yoffset)--(xoffset,yoffset-hsoa);
+ draw (xoffset,yoffset-3hsoa)--(xoffset,yoffset-.5CIu);
+enddef;
+
+def camera =
+ pickup pensquare scaled thickline;
+ numeric pl;
+ pl:=cam_lt-cam_spx;
+ draw (pl,.25cam_spy)--(0,.5cam_spy)--(0,-.5cam_spy)--(pl,-.25cam_spy);
+ draw (pl,.5cam_ht)--(pl,-.5cam_ht)--(cam_lt,-.5cam_ht)--(cam_lt,.5cam_ht)--cycle;
+enddef;
+
+"SmalCIuns";
+twochars(0)(small_lens)(.5slens_ht#,slens_lt#,.5slens_ht#);
+
+"HalfSmalCIuns";
+fourchars(2)(half_small_lens)((slens_lt,0))(.5slens_ht#,slens_lt#,.5slens_ht#);
+
+"BoldLens";
+twochars(6)(bold_lens)(.5blens_ht#,blens_lt#,.5blens_ht#);
+
+"HalfBoldLens";
+fourchars(8)(half_bold_lens)((blens_lt,0))(.5blens_ht#,blens_lt#,.5blens_ht#);
+
+"SmallKonkavLens";
+twochars(12)(small_konkav_lens)(.5sklens_ht#,sklens_lt#,.5sklens_ht#);
+
+"HalfSmallKonkavLens";
+fourchars(14)(half_small_konkav_lens)((sklens_lt,0))(.5sklens_ht#,sklens_lt#,.5sklens_ht#);
+
+"Mirror";
+eightchars(85)(mirror)(.5mir_lt#,.5mir_ht#,.5mir_ht#,.5mir_lt#);
+
+"BeamSplitter";
+eightchars(36)(halfmirror;halfmirrorline)(.5mir_lt#,.5mir_ht#,.5mir_ht#,.5mir_lt#);
+
+"Polarizer";
+twochars(44)(polarizer)(.5pol_ht#,pol_lt#,.5pol_ht#);
+
+"Pinhole";
+twochars(46)(pinhole)(.5pin_ht#,pin_lt#,.5pin_ht#);
+
+"Camera";
+fourchars(66)(camera)((cam_lt,0))(.5cam_ht#,cam_lt#,.5cam_ht#);
+
+"ScreenLeft";
+twochars(72)(screenleft(2);opticalaxis(normalline)(0))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"ScreenRight";
+twochars(74)(screenright(2);opticalaxis(normalline)(1CIu))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"ScreenLeftBehind";
+twochars(76)(screenleft(2);halfopticalaxis(normalline)(1.5CIu))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"ScreenRightBehind";
+twochars(78)(screenright(2);halfopticalaxis(normalline)(0))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"VScreenLeft";
+twochars(80)(screenleft(4);opticalaxis(normalline)(0);halfopticalaxis(normalline)(1.5CIu))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"VScreenRight";
+twochars(82)(screenright(4);opticalaxis(normalline)(1CIu);halfopticalaxis(normalline)(0))(.5scr_ht#,scr_lt#,.5scr_ht#);
+
+"horizontal dashed half line to the right";
+beginchar(128,.5CIu#,0pt,0pt);
+ halfopticalaxis(normalline)(0);
+endchar;
+
+"horizontal dashed long line to the right";
+beginchar(129,1CIu#,0pt,0pt);
+ opticalaxis(normalline)(0);
+endchar;
+
+"horizontal dashed half line to the left";
+beginchar(130,.5CIu#,0pt,0pt);
+ halfopticalaxis(normalline)(-.5CIu);
+endchar;
+
+"horizontal dashed half line up";
+beginchar(131,0pt,.5CIu#,0pt);
+ halfopticalaxisdown(normalline)(0,.5CIu);
+endchar;
+
+"horizontal dashed long line up";
+beginchar(132,0pt,1CIu#,0pt);
+ opticalaxisdown(normalline)(0,1CIu);
+endchar;
+
+"horizontal dashed half line down";
+beginchar(133,0pt,0pt,.5CIu#);
+ halfopticalaxisdown(normalline)(0,0);
+endchar;
+
+"bold horizontal dashed half line to the right";
+beginchar(136,.5CIu#,0pt,0pt);
+ halfopticalaxis(2normalline)(0);
+endchar;
+
+"bold horizontal dashed long line to the right";
+beginchar(137,1CIu#,0pt,0pt);
+ opticalaxis(2normalline)(0);
+endchar;
+
+"bold horizontal dashed half line to the left";
+beginchar(138,.5CIu#,0pt,0pt);
+ halfopticalaxis(2normalline)(-.5CIu);
+endchar;
+
+"bold horizontal dashed half line up";
+beginchar(139,0pt,.5CIu#,0pt);
+ halfopticalaxisdown(2normalline)(0,.5CIu);
+endchar;
+
+"bold horizontal dashed long line up";
+beginchar(140,0pt,1CIu#,0pt);
+ opticalaxisdown(2normalline)(0,1CIu);
+endchar;
+
+"bold horizontal dashed half line down";
+beginchar(141,0pt,0pt,.5CIu#);
+ halfopticalaxisdown(2normalline)(0,0);
+endchar;
+
+if unknown cmbase: input cmbase fi
+
+tracingstats:=1;
+picture r[];
+
+def put_text(expr ts,xstart,ystart,rot,justification) =
+ begingroup
+ text_width:=0;text_height:=0;
+ for ind:=0 step 1 until length(ts)-1:
+ dec_num:=ASCII substring (ind,ind+1) of ts;
+ if unknown r[dec_num]: dec_num:=32; fi
+ if dec_num=32:
+ text_width:=text_width+wd[65];
+ text_height:=max(text_height,ht[65]+dp[65]);
+ elseif dec_num>=0:
+ text_width:=text_width+wd[dec_num];
+ text_height:=max(text_height,ht[dec_num]+dp[dec_num]);
+ fi
+ endfor
+ if rot=90:
+ if justification=1: ynext:=ystart;
+ elseif justification=2: ynext:=round(ystart-text_width/2);
+ else: ynext:=round(ystart-text_width);
+ fi
+ xnext:=xstart+text_height/2;
+ else:
+ if justification=1: xnext:=xstart;
+ elseif justification=2: xnext:=round(xstart-text_width/2);
+ else: xnext:=round(xstart-text_width);
+ fi
+ ynext:=ystart-text_height/2;
+ fi
+ for ind:=0 step 1 until length(ts)-1:
+ dec_num:=ASCII substring (ind,ind+1) of ts;
+ if unknown r[dec_num]: dec_num:=32; fi
+ if dec_num=32:
+ xnext:=xnext+wd[65]*cosd rot;
+ ynext:=ynext+wd[65]*sind rot;
+ elseif dec_num>=0:
+ currentpicture:=currentpicture+r[dec_num] shifted(xnext,ynext)
+ rotatedaround ((xnext,ynext),rot);
+ xnext:=xnext+wd[dec_num]*cosd rot;
+ ynext:=ynext+wd[dec_num]*sind rot;
+ fi
+ endfor
+ endgroup
+enddef;
+
+def endchar =
+ r[charcode]:=currentpicture;
+ wd[charcode]:=w;ht[charcode]:=h;dp[charcode]:=d;
+ endgroup;
+enddef;
+let endchar_ = endchar;
+let generate = relax;
+let roman = relax;
+input cmss10.mf
+if ligs>1: font_coding_scheme:="TeX text";
+else: font_coding_scheme:=
+ if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+fi
+font_setup;
+input romanu.mf %Roman uppercase.
+input romanl.mf %Roman lowerrcase.
+
+def endchar =
+ % Next line should probably be removed if CM base is used
+ %Include the next two lines if you want to
+ %rotate the picture 90 deg.(Portrait to Landscape)
+ %currentpicture:=currentpicture rotated 90 shifted (h,0);
+ %tmp:=charht; charht:=charwd; charwd:=tmp;
+ scantokens extra_endchar;
+ if proofing>0: makebox(proofrule); fi
+ chardx:=w;
+ shipit;
+ if displaying>0: makebox(screenrule); showit; fi
+ endgroup
+enddef;
+let endchar_ = saveendchar;
+let generate = input;
+let roman = roman;
+def t_ = transformed currenttransform enddef;
+
+"Laser Box horizontal";
+beginchar(160,lab_wd#,.5lab_ht#,.5lab_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(lab_wd,lab_ht,0,0);
+ pickup pencircle scaled normalline;
+ put_text("Laser",.5lab_wd,0,0,2);
+endchar;
+
+"Laser Box vertical";
+beginchar(161,.5lab_ht#,lab_wd#,.5lab_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(lab_ht,lab_wd,-.5lab_ht,.5lab_wd);
+ pickup pencircle scaled normalline;
+ put_text("Laser",0,.5lab_wd,90,2);
+endchar;
+
+"Photometer Box horizontal";
+beginchar(162,omb_wd#,.5omb_ht#,.5omb_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(omb_wd,omb_ht,0,0);
+ pickup pencircle scaled normalline;
+ put_text("PM",.5omb_wd,0,0,2);
+endchar;
+
+"Photometer Box vertical";
+beginchar(163,.5omb_ht#,omb_wd#,.5omb_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(omb_ht,omb_wd,-.5omb_ht,.5omb_wd);
+ pickup pencircle scaled normalline;
+ put_text("PM",0,.5omb_wd,90,2);
+endchar;
+
+"Optical Modulator Box horizontal";
+beginchar(164,omb_wd#,.5omb_ht#,.5omb_ht#);
+ pickup pensquare scaled thickline;
+ rectangle(omb_wd,omb_ht,0,0);
+ pickup pensquare scaled normalline;
+ put_text("OM",.5omb_wd,0,0,2);
+endchar;
+
+"Optical Modulator Box vertical";
+beginchar(165,omb_ht#,.5omb_wd#,.5omb_wd#);
+ pickup pensquare scaled thickline;
+ rectangle(omb_ht,omb_wd,0,0); %-.5omb_ht,.5omb_wd);
+ pickup pensquare scaled normalline;
+ put_text("OM",.5omb_ht,0,90,2);
+endchar;
+
+end;
+%%
+%%
+%% End of file `cioptic.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/ciphysic.mf b/Master/texmf-dist/fonts/source/public/circ/ciphysic.mf
new file mode 100644
index 00000000000..a1d28d887cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/ciphysic.mf
@@ -0,0 +1,237 @@
+%%
+%% This is file `ciphysic.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `ciphysicmf')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+font_identifier:="ciphysic";
+
+string optionname; optionname:="physics";
+
+input defcirc.mf;
+
+%% SPRING
+
+spring_lt#= 5CIu#;
+lspring_lt#= 7CIu#;
+spring_th#= 1CIu#;
+define_whole_pixels(lspring_lt,spring_lt,spring_th);
+spring_gap= .6CIu;
+spring_n=11;
+spring_swd=(spring_lt-2spring_gap)/spring_n;
+lspring_swd=(lspring_lt-2spring_gap)/spring_n;
+
+twopinchar("spring")("k")("spring")
+ (spring_lt#, .5spring_th#, .5spring_th#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ shiftpoint:=z0+(spring_lt,0);
+ z1=z0+(spring_gap,0);
+ draw z0--z1;
+ pickup pencircle scaled normalline;
+ for i:=1 upto spring_n:
+ x[i+1]=x[i]+spring_swd; y[i+1]=y[0]+if odd(i): 1 else: -1 fi*.5spring_th;
+ if i=spring_n: y[i+1]:=y[i+1]-if odd(i): 1 else: -1 fi*.5spring_th fi;
+ draw z[i]--z[i+1];
+ endfor;
+ z[spring_n+2]=z0+(spring_lt,0);
+ pickup pensquare scaled normalline;
+ z[spring_n+2]=z0+(spring_lt,0);
+ draw z[spring_n+1]--z[spring_n+2];
+)
+
+twopinchar("lspring")("k")("long spring")
+ (lspring_lt#, .5spring_th#, .5spring_th#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ shiftpoint:=z0+(lspring_lt,0);
+ z1=z0+(spring_gap,0);
+ draw z0--z1;
+ pickup pencircle scaled normalline;
+ for i:=1 upto spring_n:
+ x[i+1]=x[i]+lspring_swd; y[i+1]=y[0]+if odd(i): 1 else: -1 fi*.5spring_th;
+ if i=spring_n: y[i+1]:=y[i+1]-if odd(i): 1 else: -1 fi*.5spring_th fi;
+ draw z[i]--z[i+1];
+ endfor;
+ z[spring_n+2]=z0+(lspring_lt,0);
+ pickup pensquare scaled normalline;
+ draw z[spring_n+1]--z[spring_n+2];
+)
+
+%% MASS single/double
+
+dmass_lt#= 2CIu#;
+mass_r#= 1.5CIu#;
+define_whole_pixels(dmass_lt,mass_r);
+
+twopinchar("fdmass")("m")("mass with two forces; full drawn")
+ (dmass_lt#, .5mass_r#, .5mass_r#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(dmass_lt,0);
+ shiftpoint:=z1;
+ draw z0--z1;
+ z2=.5[z0,z1];
+ pickup pencircle scaled mass_r;
+ drawdot z2;
+)
+
+twopinchar("dmass")("m")("mass with two forces; outlined")
+ (dmass_lt#, .5mass_r#, .5mass_r#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(.5(dmass_lt-mass_r),0);
+ draw z0--z1;
+ z3=z0+(dmass_lt,0);
+ shiftpoint:=z3;
+ z4=z3-(.5(dmass_lt-mass_r),0);
+ draw z3--z4;
+ z2=.5[z0,z3];
+ pickup pencircle scaled normalline;
+ draw fullcircle scaled mass_r shifted z2;
+)
+
+twopincharfour("fmass")("m")(".")("*")("mass; full drawn")
+ (dmass_lt#, .5mass_r#, .5mass_r#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(dmass_lt,0);
+ z2=.5[z0,z1];
+ draw z0--z2;
+ pickup pencircle scaled mass_r;
+ drawdot z2;
+
+ shiftpoint:=z1;
+)
+
+twopincharfour("mass")("m")(".")("*")("mass; outlined")
+ (dmass_lt#, .5mass_r#, .5mass_r#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(.5(dmass_lt-mass_r),0);
+ draw z0--z1;
+ z3=z0+(dmass_lt,0);
+ z2=.5[z0,z3];
+ pickup pencircle scaled normalline;
+ draw fullcircle scaled mass_r shifted z2;
+
+ shiftpoint:=z3;
+)
+
+%% WALL
+
+wall_lt#= 1.5CIu#;
+wall_ht#= 2.5CIu#;
+define_whole_pixels(wall_ht, wall_lt);
+wall_f=1/3;
+wall_n=6;
+wall_alpha=40;
+
+twopincharfour("wall")("{}")(".")("|")("wall")
+ (wall_lt#,.5wall_ht#
+ +wall_lt#*(1-wall_f)*sind(wall_alpha),.5wall_ht#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(wall_f*wall_lt,0);
+ draw z0--z1;
+ z1=.5[z2,z3]; y3-y2=wall_ht; x3=x2;
+ pickup pensquare scaled verythickline;
+ draw z2--z3;
+ path a;
+ a=(0,0)--(1-wall_f)*wall_lt*dir(wall_alpha);
+ pickup pencircle scaled normalline;
+ for i:=0 upto wall_n: draw a shifted (i/wall_n)[z2,z3]; endfor
+
+ shiftpoint:=z0+(wall_lt,0);
+)
+
+tile_lt#= 2CIu#;
+tile_ht#= .4CIu#;
+tile_f=0.1;
+
+define_whole_pixels(tile_lt,tile_ht);
+
+twopincharfour("tile")("{}")(".")("*")("tile")
+ (wall_lt#,.5tile_ht#,.5tile_ht#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(tile_lt,0);
+ z2=tile_f[z0,z1];
+ draw z0--z1;
+ pickup pensquare scaled verythickline;
+ draw z1--z2;
+ shiftpoint:=z1;
+)
+
+spin_lt#= 2CIu#;
+spin_r#= .7CIu#;
+spin_ht#= 2CIu#;
+spin_alt= .5CIu;
+spin_awd= .1CIu;
+define_whole_pixels(spin_lt,spin_r, spin_ht);
+
+twopinchar("spinu")("S")("spin up")
+ (spin_lt#, .6spin_ht#, .6spin_ht#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(spin_lt,0);
+ draw z0--z1;
+ z2=.5[z0,z1];
+ y3-y4=spin_ht;
+ x3=x4=x2;
+ y2=.6[y3,y4];
+ y5=y6=y3-spin_alt;
+ x5=x2-spin_awd;
+ x6=x2+spin_awd;
+ draw z3--z4;
+ filldraw z5--z3--z6--cycle;
+ pickup pencircle scaled spin_r;
+ drawdot z2;
+ shiftpoint:=z1;
+)
+
+twopinchar("spind")("S")("spin down")
+ (spin_lt#, .6spin_ht#, .6spin_ht#)
+( pickup pensquare scaled normalline;
+ z0=(0,0);
+ z1=z0+(spin_lt,0);
+ draw z0--z1;
+ z2=.5[z0,z1];
+ y3-y4=-spin_ht;
+ x3=x4=x2;
+ y2=.6[y3,y4];
+ y5=y6=y3+spin_alt;
+ x5=x2-spin_awd;
+ x6=x2+spin_awd;
+ draw z3--z4;
+ filldraw z5--z3--z6--cycle;
+ pickup pencircle scaled spin_r;
+ drawdot z2;
+ shiftpoint:=z1;
+)
+
+endCIRCfont
+%%
+%%
+%% End of file `ciphysic.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cirest.mf b/Master/texmf-dist/fonts/source/public/circ/cirest.mf
new file mode 100644
index 00000000000..a08e44db056
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cirest.mf
@@ -0,0 +1,740 @@
+%%
+%% This is file `cirest.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csyrest')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+designsize:=.5lLE#;
+
+def gaslamp =
+ z0=(0,0);
+ z4=z0+(.5,0)*lLE;
+ y4=y3;
+ x2=x1;
+ x3=x4+3lLE;
+ y2=y1+2lLE;
+ y4=.5[y1,y2];
+ x1=.5[x4,x3];
+
+ x5=x0+1.1lLE;
+ y5=y0;
+ x7=x6=x5; y7-y6=.5lLE;
+ .5[y7,y6]=y0;
+
+ y8=y9=y0;
+ x8=x0+4lLE;
+
+ x9=x8-1.1lLE;
+
+ pickup pencircle scaled normalline;
+ draw superellipse(z3,z2,z4,z1,.75);
+ draw z0--z5;
+ draw z6--z7;
+ draw z8--z9;
+ pickup pencircle scaled .3lLE;
+ drawdot z9;
+enddef;
+
+def switch = %"uberarbeiten
+ numeric pl;
+ pl:=swt_lt*swt_dis;
+ sl:=(1-2swt_dis)*swt_lt;
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+((sl,0) rotated swt_phi);
+ z3=z1+(swt_ind*sl,0);
+ z4=z0+(swt_lt,0);
+ z5=z3+(0,swt_slt);
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2;
+ draw z3--z4;
+ draw z3--z5;
+enddef;
+
+def dswitch =
+ z0=(0,0);
+ z1=dsw_t[z0,z0+(dsw_wd,0)];
+ x2=x3=x4=x5=x0+((1-dsw_c)*dsw_wd);
+ y0=.5[y2,y3]=.5[y4,y5];
+ y2-y3=dsw_ht;
+ y2-y4=dsw_cc*dsw_ht;
+ y2=y6; y3=y7;
+ x6-x3=x7-x3=dsw_c*dsw_wd;
+ x8=x1+dsw_ov+((1-dsw_c-dsw_t)*dsw_wd);
+ y8=sind(dsw_phi)*x8/cosd(dsw_phi);
+ pickup pensquare scaled normalline;
+ draw z0--z1--z8;
+ draw z4--z2--z6;
+ draw z5--z3--z7;
+enddef;
+
+def circle = % "uberarbeiten
+ numeric pl;
+ pl:=.5cir_lt-cir_ht;
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z0+(.5cir_lt,0);
+ z3=z1+(2cir_ht,0);
+ z4=z3+(pl,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z3--z4;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled 2cir_ht shifted z2;
+enddef;
+
+def lamp =
+ circle
+ z10-z11=(2cir_ht,0) rotated 45;
+ z12-z13=(2cir_ht,0) rotated -45;
+ .5[z10,z11]=z2=.5[z12,z13];
+ pickup pencircle scaled normalline;
+ draw z10--z11;
+ draw z12--z13;
+enddef;
+
+def circle_var =
+ circle;
+ pickup pencircle scaled thinline;
+ noarrowTF;
+ arrow(z2,cir_ara,cir_arb,cir_phi,arr_lt,arr_phi)();
+enddef;
+
+def usource = %"uberarbeiten
+ numeric pl;
+ pl:=.5(uso_lt-uso_spc);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(uso_spc,0);
+ z3=z2+(pl,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z2--z3;
+ z1=.5[z4,z5]; x4-x5=0; y5-y4=uso_pls;
+ z2=.5[z6,z7]; x6-x7=0; y7-y6=uso_min;
+ pickup pensquare scaled thickline;
+ draw z4--z5;
+ draw z6--z7;
+enddef;
+
+def usource_var =
+ usource;
+ noarrowTF;
+ pickup pencircle scaled thinline;
+ arrow(.5[z1,z2],uso_ara,cir_arb,uso_phi,arr_lt,arr_phi)();
+enddef;
+
+def isource = %"uberarbeiten
+ numeric pl;
+ pl:=.5(iso_lt-(4-iso_dis)*iso_rad);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(iso_rad,0);
+ z3=z2+((2-iso_dis)*iso_rad,0);
+ z4=z3+(iso_rad,0);
+ z5=z4+(pl,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z4--z5;
+ pickup pencircle scaled thickline;
+ draw fullcircle scaled (2*iso_rad) shifted z2;
+ draw fullcircle scaled (2*iso_rad) shifted z3;
+enddef;
+
+def isource_var =
+ isource;
+ noarrowTF;
+ pickup pencircle scaled thinline;
+ arrow(.5[z2,z3],iso_ara,iso_arb,iso_phi,arr_lt,arr_phi)();
+enddef;
+
+def value = % "uberarbeiten
+ z0=(0,0);
+ z1=z0+(val_lt,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ z2=val_lft[z0,z1];
+ z3=val_rht[z0,z1];
+ triangle(z2,abs(z3-z2),val_phi,0);
+enddef;
+
+def coil = %"uberarbeiten
+ numeric pl;
+ pl:=.5(coi_lt-2coi_num*coi_rad);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(coi_rad,0);
+ for m=1 upto coi_num-1: z[m+2]=z[m+1]+(2coi_rad,0); endfor;
+ z[2+coi_num]=z[1+coi_num]+(coi_rad,0);
+ z[3+coi_num]=z[2+coi_num]+(pl,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z[2+coi_num]--z[3+coi_num];
+ pickup pencircle scaled normalline;
+ for m=1 upto coi_num: draw halfcircle scaled 2coi_rad shifted z[m+1]; endfor;
+enddef;
+
+def crystal = %"uberarbeiten
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(cry_lt-2cry_spc-cry_wd);
+ z0=(0,0); z1=z0+(pl,0);
+ z2=z1+(cry_spc,0);
+ z3=z2+(cry_wd,0);
+ z4=z3+(cry_spc,0);
+ z5=z4+(pl,0);
+ z6-z7=z8-z9=z10-z11=z12-z13=(0,cry_ht);
+ z2=.5[z6,z7]; z3=.5[z8,z9]; z1=.5[z10,z11]; z4=.5[z12,z13];
+ draw z0--z1; draw z4--z5; draw z10--z11; draw z12--z13;
+ draw z7--z9--z8--z6--cycle;
+enddef;
+
+def inout = % "uberarbeiten
+ z0=(ioc_lt,0);
+ pickup pensquare scaled normalline;
+ z2=z0+(ioc_lt,0);
+ lft(z1)=z0+(.5ioc_dia,0);
+ draw z1--z2;
+enddef;
+
+def minout =
+ z0=(0,0);
+ z1=z0+(ioc_lt,0);
+ pickup pensquare scaled normalline;
+ arrow(z0,0,ioc_lt,180,ioc_arr,ioc_phi)(pickup pencircle scaled normalline);
+enddef;
+
+def ground = % Masse z0 z11
+ z0=(0,0); x1=x0=x2=x3;
+ y0-y1=gnd_ht;
+ y1-y2=y2-y3=gnd_spc;
+ y4=y1=y10; y2=y6; y3=y8;
+ z1=.5[z4,z5]; x5-x4=gnd_wd;
+ z1=.5[z10,z11]; x11-x10=GND_wd;
+ z2=.5[z6,z7]; x7-x6=gnd_wd*gnd_q;
+ z3=.5[z8,z9]; x9-x8=gnd_wd*gnd_q*gnd_q*gnd_q;
+enddef;
+
+"Spule";
+fourchars(0)(coil)(z[3+coi_num])(coi_ht#,coi_lt#,0);
+
+"Quarz";
+twochars(4)(crystal)(.5cry_ht#,cry_lt#,.5cry_ht#);
+
+"Lampe";
+twochars(6)(lamp)(cir_ht#,cir_lt#,cir_ht#);
+
+"Kreise mit Anschl"&ditto&"ussen";
+twochars(8)(circle)(cir_ht#,cir_lt#,cir_ht#);
+
+"Kreise mit Anschl"&ditto&"ussen variabel";
+twochars(10)(circle_var)(cir_ht#,cir_lt#,cir_ht#);
+
+"Stromquelle";
+twochars(12)(isource)(iso_ht#,iso_lt#,iso_ht#);
+
+"Stromquelle variabel";
+twochars(14)(isource_var)(iso_ht#,iso_lt#,iso_ht#);
+
+"Spannungsquelle";
+fourchars(16)(usource)(z3)(uso_ht#,uso_lt#,uso_ht#);
+
+"Spannungsquelle variabel";
+fourchars(20)(usource_var)(z3)(uso_ht#,uso_lt#,uso_ht#);
+
+"Schalter";
+twochars(24)(switch)(swt_ht#,swt_lt#,0);
+
+"Umschalter";
+eightchars(32)(dswitch)(dsw_wd#,.5dsw_ht#,.5dsw_ht#,0);
+
+"Stromquelle variante";
+twochars(44)(circle;
+ pickup pencircle scaled normalline;
+ draw z1--z3;)(cir_ht#,cir_lt#,cir_ht#);
+
+"Spannungsquelle variante";
+twochars(46)(circle;
+ pickup pencircle scaled normalline;
+ draw (z1--z3) rotatedaround (z2,90);)(cir_ht#,cir_lt#,cir_ht#);
+
+"Gas-Lamp";
+fourchars(40)(gaslamp)(z0)(1.5lLE#,4lLE#,1.5lLE#);
+
+"Stromquelle variante";
+twochars(44)(circle;
+ pickup pencircle scaled normalline;
+ draw z1--z3;)(cir_ht#,cir_lt#,cir_ht#);
+
+"Spannungsquelle variante";
+twochars(46)(circle;
+ pickup pencircle scaled normalline;
+ draw (z1--z3) rotatedaround (z2,90);)(cir_ht#,cir_lt#,cir_ht#);
+
+"Anschl"&ditto&"usse Pfeil";
+fourchars(232)
+ (minout;)(z1)(.5ioc_ht#,2ioc_lt#,.5ioc_ht#);
+
+"Anschl"&ditto&"usse leer";
+fourchars(240)
+ (inout;
+ pickup pencircle scaled thinline;
+ draw fullcircle scaled ioc_dia shifted z0;
+ )(z2)(.5ioc_ht#,2ioc_lt#,.5ioc_ht#);
+
+"Anschl"&ditto&"usse voll";
+fourchars(244)
+ (inout;
+ pickup pencircle scaled ioc_dia;
+ draw z0;
+ )(z2)(.5ioc_ht#,2ioc_lt#,.5ioc_ht#);
+
+"Str"&ditto&"ome";
+fourchars(248)(value;)(z1)(val_ht#,val_lt#,val_ht#);
+
+"wwire half R";
+beginchar(112,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ y4-y3=y2-y1=ww_spc;
+ x3-x1=.5lLE;
+ x0=x1=x2;
+ x3=x4;
+ y0=.5[y1,y2]=.5[y3,y4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire R";
+beginchar(113,1lLE#,0pt,0pt);
+ z0=(0,0);
+ y4-y3=y2-y1=ww_spc;
+ x3-x1=1lLE;
+ x0=x1=x2;
+ x3=x4;
+ y0=.5[y1,y2]=.5[y3,y4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire half L";
+beginchar(114,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ y4-y3=y2-y1=ww_spc;
+ x3-x1=.5lLE;
+ x0=x3=x4;
+ x1=x2;
+ y0=.5[y1,y2]=.5[y3,y4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire half U";
+beginchar(115,0pt,.5lLE#,0pt);
+ z0=(0,0);
+ x4-x3=x2-x1=ww_spc;
+ y3-y1=.5lLE;
+ y0=y1=y2;
+ y3=y4;
+ x0=.5[x1,x2]=.5[x3,x4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire U";
+beginchar(116,0pt,1lLE#,0pt);
+ z0=(0,0);
+ x4-x3=x2-x1=ww_spc;
+ y3-y1=1lLE;
+ y0=y1=y2;
+ y3=y4;
+ x0=.5[x1,x2]=.5[x3,x4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"wwire half D";
+beginchar(117,0pt,0pt,.5lLE#);
+ z0=(0,0);
+ x4-x3=x2-x1=ww_spc;
+ y3-y1=.5lLE;
+ y0=y3=y4;
+ y1=y2;
+ x0=.5[x1,x2]=.5[x3,x4];
+ pickup pensquare scaled normalline;
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+"dashed halfline R";
+beginchar(120,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(.25lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"dashed line R";
+beginchar(121,1lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(1lLE,0);
+ z2=.25[z0,z1];
+ z3=.75[z0,z1];
+ pickup pensquare scaled normalline;
+ draw z2--z3;
+endchar;
+
+"dashed halfline L";
+beginchar(122,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0-(.25lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"dashed halfline U";
+beginchar(123,0pt,.5lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,.25lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"dashed line U";
+beginchar(124,0pt,1lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,1lLE);
+ z2=.25[z0,z1];
+ z3=.75[z0,z1];
+ pickup pensquare scaled normalline;
+ draw z2--z3;
+endchar;
+
+"dashed halfline D";
+beginchar(125,0pt,0pt,.5lLE#);
+ z0=(0,0);
+ z1=z0-(0,.25lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie horizontal halb R";
+beginchar(128,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(.5lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie horizontal R";
+beginchar(129,1lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(1lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie horizontal halb L";
+beginchar(130,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0-(.5lLE,0);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie vertikal halb U";
+beginchar(131,0pt,.5lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,.5lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie vertikal U";
+beginchar(132,0pt,1lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,1lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"Linie vertikal halb D";
+beginchar(133,0pt,0pt,.5lLE#);
+ z0=(0,0);
+ z1=z0-(0,.5lLE);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+endchar;
+
+"B"&ditto&"undel horizontal";
+beginchar(134,0,.8bnd_lt#,0pt);
+ z0=(0,0);
+ z0=.5[z2,z3];
+ z3-z2=(bnd_lt,0) rotated bnd_phi;
+ pickup pencircle scaled thinline;
+ draw z2--z3;
+endchar;
+
+"B"&ditto&"undel vertikal";
+beginchar(135,.8bnd_lt#,0pt,0pt);
+ z0=(0,0);
+ z0=.5[z2,z3];
+ z3-z2=(bnd_lt,0) rotated (90-bnd_phi);
+ pickup pencircle scaled thinline;
+ draw z2--z3;
+endchar;
+
+"Linie fett horizontal R";
+beginchar(136,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(.5lLE,0);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett horizontal R";
+beginchar(137,1lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0+(1lLE,0);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett horizontal halb L";
+beginchar(138,.5lLE#,0pt,0pt);
+ z0=(0,0);
+ z1=z0-(.5lLE,0);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett vertikal halb U";
+beginchar(139,0pt,.5lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,.5lLE);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett vertikal U";
+beginchar(140,0pt,1lLE#,0pt);
+ z0=(0,0);
+ z1=z0+(0,1lLE);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Linie fett vertikal halb D";
+beginchar(141,0pt,0pt,.5lLE#);
+ z0=(0,0);
+ z1=z0-(0,.5lLE);
+ pickup pensquare scaled 2normalline;
+ draw z0--z1;
+endchar;
+
+"Oscillograph";
+beginchar(142,osc_dia#,.5osc_dia#,.5osc_dia#);
+ z0=(0,0);
+ z1=z0;
+ z5=.5[z1,z3]=.5[z2,z4];
+ x2=x4;
+ y1=y3;
+ x3-x1=y4-y2=osc_dia;
+ .5osc_gt+osc_spc+osc_stm=.5osc_dia;
+ osc_stm=osc_t*osc_gt;
+ z6=z1+(osc_stm,0);
+ z7=z2+(0,osc_stm);
+ z8=z3+(-osc_stm,0);
+ z9=z4+(0,-osc_stm);
+ z6=.5[z10,z11]; x10=x11; x16-x17=y14-y15=x12-x13=y11-y10=osc_gt;
+ z7=.5[z12,z13]; y12=y13;
+ z8=.5[z14,z15]; x14=x15;
+ z9=.5[z16,z17]; y16=y17;
+ pickup pensquare scaled normalline; %drawing style by Andreas Tille
+ draw z1--z6; %code rewritten by SeTa
+ draw z2--z7;
+ draw z3--z8;
+ draw z4--z9;
+ pickup pencircle scaled normalline;
+ draw fullcircle scaled osc_dia shifted z5;
+ pickup pensquare scaled thickline;
+ draw z10--z11;
+ draw z12--z13;
+ draw z14--z15;
+ draw z16--z17;
+endchar;
+
+"a small grey elephant: Thanks to Andreas Tille.";
+LE#:=.03mm#;
+define_pixels(LE);
+numeric nPnt;
+def p(expr px,py) = x[nPnt]:=px*LE; y[nPnt]:=py*LE; nPnt:=nPnt+1 enddef;
+
+beginchar(252,540LE#,265LE#,274LE#);
+ pickup pencircle scaled 0.4pt;
+ path a, b;
+ picture cutpic;
+ nPnt:=0;
+
+p( 0, 0); % copyright by Sebastian Tannert
+p( 0, 18); % Please think of the hard work!
+p( -2, 46);p( -3, 92);p( 8,117);p( 28,152);
+p( 38,171);p( 71,195);p(107,218);p(138,240);p(159,255);p(181,261);
+p(193,264);p(211,268);p(231,263);p(249,264);p(273,259);p(292,255);
+p(311,249);p(336,240);p(380,222);p(414,208);p(437,198);p(449,193);
+p(461,190);p(473,185);p(490,173);p(506,157);p(519,125);p(526, 91);
+p(530, 56);p(530, 35);p(523, 17);p(518, 1);p(509,-22);p(511,-46);
+p(515,-71);p(514,-96);p(512,-112);p(511,-135);p(507,-150);p(498,-171);
+p(485,-184);p(465,-197);p(448,-200);p(429,-194);p(418,-177);p(414,-168);
+p(420,-159);p(427,-157);p(435,-163);p(439,-171);p(449,-164);p(461,-165);
+p(470,-152);p(476,-139);p(476,-118);p(475,-97);p(465,-76);p(450,-62);
+p(442,-50);p(427,-36);p(417,-29);p(409,-27);p(392,-12);p(383,-10);
+p(374,-18);p(370,-34);p(363,-58);p(347,-92);p(343,-106);p(341,-126);
+p(330,-162);p(323,-196);p(322,-210);p(317,-237);p(327,-257);p(325,-268);
+p(310,-270);p(301,-272);p(284,-266);p(269,-258);p(268,-236);p(270,-210);
+p(282,-185);p(300,-151);p(315,-119);p(322,-93);p(325,-79);p(326,-63);
+p(315,-75);p(303,-101);p(292,-134);p(281,-164);p(269,-189);p(258,-220);
+p(259,-250);p(260,-266);p(252,-269);p(235,-260);p(221,-266);p(203,-261);
+p(194,-242);p(201,-227);p(206,-213);p(207,-190);p(215,-162);p(222,-147);
+p(225,-123);p(229,-96);p(234,-77);p(234,-65);p(236,-47);p(236,-30);
+p(236,-12);p(240,6);p(248,19);p(264,37);p(146,41);p(158,24);
+p(176,-3);p(188,-29);p(193,-53);p(185,-80);p(175,-106);p(165,-137);
+p(152,-173);p(143,-202);p(142,-222);p(136,-232);p(141,-253);p(132,-255);
+p(125,-255);p(105,-240);p(91,-239);p(75,-228);p(68,-205);p(70,-178);
+p(85,-156);p(96,-127);p(100,-112);p(95,-88);p(79,-62);p(60,-38);
+p(48,-16);p(36,18);p(28,63);p(24,41);p(28,17);p(29,-6);p(31,-32);
+p(26,-43);p(17,-65);p(15,-83);p(12,-106);p(7,-126);p(0,-141);
+p(-9,-147);p(-16,-131);p(-24,-110);p(-22,-94);p(-17,-75);p(-6,-55);
+p(-2,-34);p(2,-19);p(190,-63);p(209,-75);p(234,-69);p(31,-32);
+p(31,-44);p(26,-67);p(37,-95);p(45,-117);p(43,-158);p(38,-193);
+p(25,-224);p(29,-249);p(52,-266);p(71,-264);p(88,-266);p(113,-273);
+p(133,-273);p(138,-268);p(132,-255);p(457,48);p(462,30);p(481,21);
+p(477,40);p(449,32);p(456,11);p(478,5);p(464,60);p(486,61);
+p(499,37);p(363,93);p(352,110);p(348,129);p(358,149);p(386,162);
+p(414,173);p(427,178);p(443,167);p(456,157);p(461,142);p(450,126);
+p(436,110);p(419,74);p(409,53);p(396,40);p(372,51);p(365,67);
+p(358,148);p(375,139);p(387,124);p(401,128);p(411,146);p(418,163);
+p(427,168);p(443,167);p(444,161);p(434,152);p(432,135);p(440,124);
+p(451,128);p(460,141);p(455,157);p(350,138);p(459,138);p(-30,276);
+p(539,-283);p(539,276);p(-30,-283);p(427,-41);p(436,-54);
+
+draw for i:=0 upto 109: z[i]..endfor
+z110{up}..z167{curl.7}..z166..z165{curl.7}..z123{down}..
+for i:=124 upto 144: z[i]..endfor z145---z146..z147{down}..
+for i:=148 upto 164: z[i]..endfor z0;
+
+draw for i:=110 upto 116: z[i].. endfor z117;
+draw for i:=118 upto 122: z[i].. endfor z123{down};
+
+draw for i:=168 upto 182: z[i].. endfor z183;
+
+draw for i:=194 upto 210: z[i].. endfor cycle;
+
+draw for i:=211 upto 217: z[i].. endfor z218;
+
+a:= z226..z197..z198..z199..z200..z201..z202..z203..z227;
+b:= z226--z227;
+vshade(b,a,4,unitsquare scaled 1.8);
+
+a:= z227..z206..z207..z208..z209..z210..z194..
+ z195..z196..z226;
+b:= z227--z226;
+vshade(b,a,4,unitsquare scaled 1.8);
+
+a:= z228--z230;
+b:= z231--z229;
+vshade(a,b,4,unitsquare);
+
+cutpic=nullpicture;
+
+addto cutpic contour(z228+(0,10)--z230+(10,10)--z229--z231--cycle);
+
+pickup pencircle scaled 0.7pt
+
+addto cutpic contour (for i:=0 upto 109: z[i].. endfor
+ z110{up}..z167{curl.7}..z166..z165{curl.7}..z123{down}..
+ for i:=124 upto 144: z[i].. endfor z145---z146..z147{down}..
+ for i:=148 upto 164: z[i].. endfor cycle) withweight -1;
+
+addto cutpic doublepath
+ (for i:=0 upto 109: z[i].. endfor
+ z110{up}..z167{curl.7}..z166..z165{curl.7}..z123{down}..
+ for i:=124 upto 144: z[i].. endfor z145---z146..z147{down}..
+ for i:=148 upto 164: z[i].. endfor z0) withpen currentpen
+ withweight -1;
+
+addto cutpic doublepath z232..z233 withpen currentpen withweight -1;
+
+addto cutpic contour (for i:=168 upto 182: z[i].. endfor z183..z146..cycle)
+ withpen currentpen withweight -1;
+
+cull cutpic keeping (1,infinity) withweight -3;
+
+addto currentpicture also cutpic;
+
+pickup pencircle scaled .7pt;
+draw z184..z185{z186-z184}..z186;
+draw z186..z187{z184-z186}..z184;
+
+draw z188..z189..z190;
+draw z191..z192..z193;
+draw z232..z233;
+
+endchar;
+
+"Masse";
+beginchar(253,.5gnd_wd#,0,gnd_ht#+gnd_spc#+gnd_spc#);
+ ground
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z4--z5;
+ draw z6--z7;
+ draw z8--z9;
+endchar;
+
+"MASSE";
+beginchar(254,.5GND_wd#,0,gnd_ht#);
+ ground
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ pickup pensquare scaled verythickline;
+ draw z10--z11;
+endchar;
+
+"Verbindungspunkt";
+beginchar(255,cdt_lt#,.5cdt_ht#,.5cdt_ht#);
+ pickup pencircle scaled cdt_dia;
+ z0=(0,0);
+ drawdot z0;
+endchar;
+
+end;
+%%
+%%
+%% End of file `cirest.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/cisym.mf b/Master/texmf-dist/fonts/source/public/circ/cisym.mf
new file mode 100644
index 00000000000..b6dd9e5994a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/cisym.mf
@@ -0,0 +1,181 @@
+%%
+%% This is file `cisym.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csysym')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+designsize:=.5lLE#;
+
+def eqtriangle(expr l)=
+ x1=x2=x0=x3-l;
+ y3=y0;
+ z1-z2=(z3-z2) rotated 60;
+enddef;
+
+def sinus(expr A, k, s) =
+ j:=0;
+ for i:=0 step s until 360:
+ z[j]=(k*i,A*sind(i));
+ j:=j+1;
+ endfor
+ draw for i:=0 upto floor(360/s)-1: z[i].. endfor z[floor(360/s)];
+enddef;
+
+def disarrow =
+ z0=(0,0);
+ x0=x1=x2;
+ y1-y2=darr_ht;
+ .5[z1,z2]=z0;
+ y0=y3;
+ x3-x0=darr_lt;
+ pickup pensquare scaled normalline;
+ draw z0--z3;
+ draw z1--z2;
+ triangle(z0,darr_rad,darr_phi,0);
+enddef;
+
+def trigger =
+ z0=(0,0);
+ x1=x2; x3=x4;
+ y2=y4=y5; y0=y1=y3;
+ x3-x1=.17sym;
+ x1-x0=x5-x4=.3sym;
+ y2-y1=sym;
+enddef;
+
+def impuls =
+ z0=(0,0);
+ y0=y1=y4=y5=y7=y8=y9;
+ x1-x0=x3-x2=x5-x4=x8-x7=.6sym;
+ x9-x0=x6-x2=.2sym;
+ x1=x2; x3=x4; x6=x7;
+ y2-y1=y3-y4=y6-y7=sym;
+ x10=x0; y11=y10=y2;
+ x11=x8;
+enddef;
+
+ "Rechteckimpuls";
+ beginchar(1,1.9sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z3--z4--z5;
+ endchar;
+
+ "positive Flanke";
+ beginchar(2,1.3sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z3;
+ endchar;
+
+ "negative Flanke";
+ beginchar(3,1.3sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw (z2--z3--z4--z5) shifted (x0-x1,0);
+ endchar;
+
+ "Nadelimpuls";
+ beginchar(4,1.5sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw (z0--z1--z2--z6--z7--z8);
+ endchar;
+
+ "inverser Nadelimpuls";
+ beginchar(12,1.5sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw (z10--z2--z1--z7--z6--z11);
+ endchar;
+
+ "Rechteckspannung";
+ beginchar(5,3.1sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z3--z4--z5;
+ draw (z0--z1--z2--z3--z4--z5) shifted z4;
+ endchar;
+
+ "Rechteckimpulse";
+ beginchar(13,2.6sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z6--z7--z8;
+ draw (z0--z1--z2--z6--z7--z8) shifted z4;
+
+ endchar;
+
+ "S"&ditto&"agezahn";
+ beginchar(6,1.9sym#,sym#,0);
+ impuls
+ pickup pensquare scaled normalline;
+ draw z0--z9--z3--z4--z5;
+ endchar;
+
+ "Trigger";
+ beginchar(7,.87sym#,sym#,0);
+ trigger
+ pickup pensquare scaled normalline;
+ draw z0--z1--z2--z5;
+ draw z1--z3--z4;
+ endchar;
+
+ "Abstandsst"&ditto&"uck";
+ fourchars(8)(disarrow)(z0)(.5darr_ht#,darr_lt#,.5darr_ht#);
+
+"sinus wave";
+beginchar(16,1.6sym#,9/35*sym#,9/35*sym#);
+ pickup pencircle scaled normalline;
+ sinus(9/35*sym,1.6sym/360,45);
+endchar;
+
+"variable sinus wave";
+beginchar(17,1.6sym#,9/35*sym#,9/35*sym#);
+ pickup pencircle scaled normalline;
+ sinus(9/35*sym,1.6sym/360,45);
+ fillarrow((.8*sym,0),20/35*sym,15/35*sym,45,15/35*sym,15)();
+endchar;
+
+"symbol of amplifier";
+beginchar(24,cosd(30)*1.9sym#,.95sym#,.95sym#);
+ z0=(0,0);
+ eqtriangle(1.9sym);
+ pickup pencircle scaled normalline;
+ draw z1--z2--z3--cycle;
+endchar;
+
+"symbol of buffer";
+beginchar(25,cosd(30)*1sym#,.5sym#,.5sym#);
+ z0=(0,0);
+ eqtriangle(1sym);
+ pickup pencircle scaled normalline;
+ draw z1--z2--z3--cycle;
+endchar;
+
+bye;
+%%
+%%
+%% End of file `cisym.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/ciwidko.mf b/Master/texmf-dist/fonts/source/public/circ/ciwidko.mf
new file mode 100644
index 00000000000..d82dd1770a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/ciwidko.mf
@@ -0,0 +1,160 @@
+%%
+%% This is file `ciwidko.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csywidko')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+input csym;
+designsize:=.5lLE#;
+
+def resistor =
+ numeric pl;
+ pl:=.5(res_lt-res_wd);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(res_wd,0);
+ z3=z2+(pl,0);
+ z4-z5=z6-z7=(0,res_ht);
+ z1=.5[z4,z5];
+ z2=.5[z6,z7];
+ z8=z0+(res_x,-res_y);
+ pickup pensquare scaled normalline;
+ draw z0--z1;
+ draw z2--z3;
+ draw z4--z6--z7--z5--cycle;
+enddef;
+
+usR_iwd# = 3lLE#;
+usR_iht# = 1lLE#;
+usR_wd# = 4lLE#;
+usR_f = .25;
+define_pixels(usR_iwd, usR_iht, usR_wd);
+
+vardef usR =
+ z0=(0,0);
+ z1=z0;
+ y1=y2=y3=y4;
+ x2-x1=usR_wd;
+ x4-x3=usR_iwd;
+ .5[x1,x2]=.5[x3,x4];
+ y5=y7=y9;
+ y6=y8=y10;
+ y5-y6=usR_iht;
+ .5[y5,y6]=y1;
+ x7-x5=x9-x7=x11-x9=x8-x6=x10-x8;
+ x6=.5[x5,x7];
+ x8-x6=(usR_wd-usR_iwd);
+ x5-x3=usR_f*(x8-x6);
+ pickup pensquare scaled normalline;
+ draw z1--z3--z5--z6--z7--z8--z9--z10--z4--z2;
+enddef;
+
+vardef usR_var =
+ {{
+ addxTF(shifted -z6 rotated -90);
+ usR;
+ pickup pensquare scaled normalline;
+ arrow(z6,.8res_ara,.5usR_iht,res_phi,arr_lt,arr_phi)
+ (pickup pencircle scaled normalline);
+ }}
+enddef;
+
+def resistor_var =
+ {{
+ addxTF(shifted -z8 rotated -90);
+ resistor;
+ pickup pensquare scaled normalline;
+ arrow(z8,res_ara,0,res_phi,arr_lt,arr_phi)
+ (pickup pencircle scaled normalline);
+ }}
+enddef;
+
+def capacitor =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(cap_lt-cap_spc);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(cap_spc,0);
+ z3=z2+(pl,0);
+ z4-z5=z6-z7=(0,cap_ht);
+ z1=.5[z4,z5];
+ z2=.5[z6,z7];
+ draw z0--z1;
+ draw z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+enddef;
+
+def capacitor_var =
+ capacitor;
+ noarrowTF;
+ pickup pencircle scaled thinline;
+ arrow(.5[z1,z2],cap_ara,cap_arb,cap_phi,arr_lt,arr_phi)();
+enddef;
+
+def electrolytic_capacitor =
+ pickup pensquare scaled normalline;
+ numeric pl;
+ pl:=.5(cap_lt-cap_spc-cap_wd);
+ z0=(0,0);
+ z1=z0+(pl,0);
+ z2=z1+(cap_spc,0);
+ z3=z2+(cap_wd,0);
+ z4=z3+(pl,0);
+ z5-z6=z7-z8=z9-z10=(0,cap_ht);
+ z1=.5[z5,z6];
+ z2=.5[z7,z8];
+ z3=.5[z9,z10];
+ draw z0--z1;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z9--z10--z8--cycle;
+enddef;
+
+"Widerstand";
+twochars(0)(resistor)(.5res_ht#,res_lt#,.5res_ht#);
+
+"US Widerstand";
+twochars(24)(usR)(.5res_ht#,res_lt#,.5res_ht#);
+
+"Widerstand variabel";
+eightchars(8)(resistor_var)(res_y#,res_lt#-res_x#,res_x#,res_o#);
+
+"US Widerstand variabel";
+eightchars(32)(usR_var)(res_y#,res_lt#-res_x#,res_x#,res_o#);
+
+"Kondensator";
+twochars(128)(capacitor)(.5cap_ht#,cap_lt#,.5cap_ht#);
+
+"Kondensator variabel";
+twochars(130)(capacitor_var)(.5cap_ht#,cap_lt#,.5cap_ht#);
+
+"Elektrolyt-Kondensator";
+fourchars(136)(electrolytic_capacitor)(z4)(.5cap_ht#,cap_lt#,.5cap_ht#);
+
+end;
+%%
+%%
+%% End of file `ciwidko.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/csym.mf b/Master/texmf-dist/fonts/source/public/circ/csym.mf
new file mode 100644
index 00000000000..8656865f7eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/csym.mf
@@ -0,0 +1,499 @@
+%%
+%% This is file `csym.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `csym')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+mode_setup;
+
+lLE# :=7pt#;
+define_whole_pixels(lLE);
+
+linethickness#:= 0.45pt#;
+thinline# := 0.5linethickness#;
+normalline# := 1.0linethickness#;
+thickline# := 1.5linethickness#;
+verythickline#:= 2.5linethickness#;
+define_whole_blacker_pixels(normalline,thinline,thickline,verythickline);
+
+fontdimen6: 1lLE#;
+
+
+
+box_wd# := 4lLE#;
+define_pixels(box_wd);
+
+osc_dia# := 3lLE#;
+osc_t := .75; % settings from Andreas Tille
+osc_spc := .5lLE;
+define_pixels(osc_dia);
+
+ww_spc := .25lLE;
+
+darr_ht# := 1.3lLE#;
+darr_lt# := 1lLE#;
+darr_phi := 10;
+darr_rad := 1lLE;
+define_pixels(darr_ht,darr_lt);
+
+bnd_lt# := 1lLE#;
+bnd_phi := 60;
+define_pixels(bnd_lt);
+
+dsw_wd# := 4lLE#;
+dsw_ht# := 2lLE#;
+dsw_ov := .2lLE;
+dsw_t := .2;
+dsw_cc := .35;
+dsw_c := .3;
+dsw_phi := 12;
+define_pixels(dsw_wd,dsw_ht);
+
+tri_lt := 0.8lLE;
+tri_phi := 18;
+
+arr_lt := 0.8lLE;
+arr_phi := 10;
+
+cap_wd := .4lLE; %only for electrolytic capacitor
+cap_spx := .32lLE; %only for electrolytic capacitor
+cap_spy := .5lLE; %only for electrolytic capacitor
+cap_rad := .4lLE;
+cap_spc := .32lLE;
+cap_ht# := 2lLE#;
+cap_lt# := 2lLE#;
+cap_phi := 45;
+cap_ara := 1.4lLE;
+cap_arb := 1.2lLE;
+define_pixels(cap_lt,cap_ht);
+
+res_wd := 3lLE;
+res_ht# := 1lLE#;
+res_lt# := 4lLE#;
+res_ara# := 3.3lLE#;
+res_phi := 45;
+res_x# := 1lLE#;
+res_y# := 1lLE#;
+res_o# := res_ara#*cosd(res_phi)-res_y#;
+define_pixels(res_lt,res_ht,res_x,res_y,res_o,res_ara);
+
+did_wd := 1.5lLE;
+did_ht# := 1.5lLE#;
+did_lt# := 3lLE#;
+did_zlt := .4lLE;
+Dcap_ht := .5lLE;
+Dcap_spc := .15lLE;
+Dcap_wd := .35lLE;
+define_pixels(did_lt,did_ht);
+
+thy_ht# := 1lLE#;
+define_pixels(thy_ht);
+
+led_lt# := 1.5lLE#;
+led_wd := .8lLE;
+led_phi := 10; %aperture-angle of arrows
+led_psi := 50; %angle of arrows from baseline
+led_spc := .4lLE; %space between arrows
+led_spx := .4lLE;
+led_spy# := .8lLE#;
+define_pixels(led_spy, led_lt);
+
+pnp_dis := 0.18;
+npn_dis := (1-pnp_dis);
+tst_fac := 0.23333;
+tst_phi := 20;
+tst_iht := 3lLE;
+tst_wd# := 1lLE#;
+tst_lt# := 2lLE#;
+tst_ht# := 4lLE#;
+define_pixels(tst_ht,tst_lt,tst_wd);
+
+cry_wd := .8lLE;
+cry_spc := .32lLE;
+cry_ht# := 2lLE#;
+cry_lt# := 4lLE#;
+define_pixels(cry_lt,cry_ht);
+
+ioc_dia := .5lLE;
+ioc_ht# := .5lLE#;
+ioc_lt# := 1lLE#;
+ioc_arr := 0.7lLE;
+ioc_phi := 12;
+define_pixels(ioc_ht,ioc_lt);
+
+cdt_dia := .4lLE;
+cdt_ht# := .4lLE#;
+cdt_lt# := .2lLE#;
+define_pixels(cdt_ht,cdt_lt);
+
+GND_wd# := 1.4res_ht#;
+gnd_wd# := 1.8lLE#;
+gnd_ht# := 1lLE#;
+gnd_spc# := .2lLE#;
+gnd_q := .7;
+define_pixels(gnd_ht,gnd_spc,gnd_wd,GND_wd);
+
+inv_rad := .36lLE;
+gat_ht# := 5lLE#;
+gat_lt# := 7lLE#;
+define_pixels(gat_lt,gat_ht);
+
+bbd_wd# := 6lLE#;
+bbd_ht# := 10lLE#;
+bba_wd# := 8lLE#;
+bba_ht# := 4lLE#;
+define_pixels(bbd_wd,bbd_ht,bba_wd,bba_ht);
+
+pin_lt# := 2lLE#; % pin length
+ios_wd# := 2.5lLE#; % in out space
+mid_wd# := 0lLE#; % middle width
+pin_spc# := 2lLE#; % pin space
+out_spc# := 1lLE#; % outer space between pin and box
+
+define_pixels(pin_lt,ios_wd,mid_wd,pin_spc,pin_wht,out_spc);
+
+val_lt# := 2lLE#;
+val_phi := 7;
+val_lft := 0;
+val_rht := 0.9;
+val_ht# := .2lLE#;
+define_pixels(val_lt,val_ht);
+
+cir_ht# := 1.2lLE#;
+cir_lt# := 4lLE#;
+cir_phi := 45;
+cir_ara := 2.2lLE;
+cir_arb := 1.8lLE;
+define_pixels(cir_ht,cir_lt);
+
+uso_ht# := 1.5lLE#;
+uso_lt# := 4lLE#;
+uso_min := 1lLE;
+uso_pls := 3lLE;
+uso_spc := .5lLE;
+uso_rad := 3lLE;
+uso_dis := 0.2;
+uso_phi := 45;
+uso_ara := 1.6lLE;
+uso_arb := .8lLE;
+define_pixels(uso_ht,uso_lt);
+
+iso_ht# := 1.2lLE#;
+iso_lt# := 4lLE#;
+iso_dis := 0.7;
+iso_rad := .8lLE;
+iso_phi := 45;
+iso_ara := 2.2lLE;
+iso_arb := 1.8lLE;
+define_pixels(iso_ht,iso_lt);
+
+coi_ht# := .35lLE#;
+coi_lt# := 4lLE#;
+define_pixels(coi_ht,coi_lt);
+coi_rad := coi_ht;
+coi_num := 4;
+
+swt_lt# := 4lLE#;
+swt_phi := 30;
+swt_dis := 0.3;
+swt_ind := 0.8;
+swt_slt := 0.4lLE;
+swt_ht# := (1-2swt_dis)*sind(swt_phi)*swt_lt#;
+define_pixels(swt_ht,swt_lt);
+
+opv_ht# := 4.5lLE#;
+opv_lt# := 14lLE#;
+opv_dis# := 3lLE#;
+opv_frc := 1.1;
+define_pixels(opv_lt,opv_ht,opv_dis);
+
+fet_SD# := 4lLE#; % Source--Drain
+fet_GSx# := 2lLE#; % Gate--Source, x
+fet_GSy# := 1lLE#; % Gate--Source, y
+fet_Gsub := 1lLE; % Gate--Substrat
+fet_soSD := 0.3lLE; % Substrat "uber Source und Drain
+fet_sarr := 0.2lLE; % Substrat--Pfeil
+define_pixels(fet_SD,fet_GSx,fet_GSy);
+
+mos_SD# := fet_SD#;
+mos_GSx# := fet_GSx#;
+mos_GSy# := fet_GSy#;
+
+mos_sd := 2.3lLE;
+mos_Gsub := fet_Gsub;
+mos_ox := 0.3lLE;
+mos_soSD := fet_soSD;
+mos_rad := 0.2lLE;
+define_pixels(mos_SD,mos_GSx,mos_GSy);
+
+sym# := 232/36pt#;
+define_pixels(sym);
+
+
+extra_endchar:=extra_endchar & "labels(range 0 thru 30);";
+
+def {{ =
+ begingroup
+ save T; transform T;
+ T:=currenttransform;
+ save currenttransform;
+ transform currenttransform;
+ currenttransform:=T;
+enddef;
+
+def }} = endgroup; enddef;
+
+def noarrowTF =
+ transform _aT;
+ numeric _x[],_y[];
+ _aT:=currenttransform;
+ for $=1 upto 20 : _x[$]:=x[$]; _y[$]:=y[$]; endfor;
+ endgroup;
+ for $=1 upto 20 : x[$]:=_x[$]; y[$]:=_y[$]; endfor;
+ {{
+enddef;
+
+def addTF(text t) = currenttransform:=currenttransform t; enddef;
+def addxTF(text t) = currenttransform:=(identity t) transformed
+ currenttransform; enddef;
+
+def triangle(expr p, l, alpha, phi) =
+ pair iz[];
+ iz0=(0,0);
+ iz1=iz0+((l,0) rotated (alpha+phi));
+ iz2=iz0+((l,0) rotated (-alpha+phi));
+ fill ((iz0--iz1--iz2--cycle) shifted round(p));
+enddef;
+
+def arrow(expr p, a, b, phi, l, alpha)(text doother) =
+ pair iz[];
+ iz0=(0,0);
+ iz1=iz0-((l,0) rotated (alpha+phi));
+ iz2=iz0-((l,0) rotated (-alpha+phi));
+ iz3=p transformed if known _aT : _aT; else: identity; fi;
+ iz3-iz4=(b,0) rotated phi;
+ iz5-iz3=(a,0) rotated phi;
+ iz6-iz3=(a-3*rt(0),0) rotated phi;
+ draw iz4--iz6;
+ doother;
+ draw ((iz1--iz0--iz2) shifted round(iz5));
+ transform _aT; %Transformation l"oschen
+enddef;
+
+def fillarrow(expr p, a, b, phi, l, alpha)(text doother) =
+ pair iz[];
+ iz0=(0,0);
+ iz1=iz0-((l,0) rotated (alpha+phi));
+ iz2=iz0-((l,0) rotated (-alpha+phi));
+ iz3=p transformed if known _aT : _aT; else: identity; fi;
+ iz3-iz4=(b,0) rotated phi;
+ iz5-iz3=(a,0) rotated phi;
+ iz6-iz3=(a-3*rt(0),0) rotated phi;
+ draw iz4--iz6;
+ doother;
+ fill ((iz1--iz0--iz2--cycle) shifted round(iz5));
+ transform _aT; %Transformation l"oschen
+enddef;
+
+lightarr_spc#=.5lLE#;
+lightarr_lt#=1.5lLE#;
+lightarr_alt=round(.7lLE);
+lightarr_awd=round(.2lLE);
+define_pixels(lightarr_spc,lightarr_lt);
+def lightarrows(expr zpoint,lightarr_psi) =
+ z100=zpoint;
+ x100=x103=x105;
+ x101=x104=x106=x100+lightarr_lt;
+ y103=y104=y100+.5lightarr_spc;
+ y105=y106=y100-.5lightarr_spc;
+ x107=x108=x109=x110=x104-lightarr_alt;
+ y107-y108=y109-y110=good.y(lightarr_awd);
+ .5[y107,y108]=y104;
+ .5[y109,y110]=y106;
+ pickup pensquare scaled normalline rotated lightarr_psi;
+ draw (z107--z104--z108--cycle) rotatedaround(z100,lightarr_psi);
+ draw (z109--z106--z110--cycle) rotatedaround(z100,lightarr_psi);
+ draw (z103--z104) rotatedaround(z100,lightarr_psi);
+ draw (z105--z106) rotatedaround(z100,lightarr_psi);
+
+enddef;
+
+def eightchars(expr cfchar) % erster Zeichenkode
+ (text dochar) % Zeichenkommandos
+ (expr x, yf, ys, o) = % Abst"ande
+
+ beginchar(cfchar,x,ys,yf); charic:=o;
+ dochar;
+ endchar;
+ beginchar(cfchar+1,x,ys,yf); charic:=o;
+ {{addTF(reflectedabout(up,down)); dochar;}}
+ endchar;
+ beginchar(cfchar+2,yf,x,o+x); charic:=ys;
+ {{addTF(rotated 270); dochar;}}
+ endchar;
+ beginchar(cfchar+3,yf,x+o,x); charic:=ys;
+ {{addTF(rotated 270); addTF(reflectedabout(left,right)); dochar;}}
+ endchar;
+ beginchar(cfchar+4,x,yf,ys); charic:=o;
+ {{addTF(reflectedabout(left,right)); dochar;}}
+ endchar;
+ beginchar(cfchar+5,x,yf,ys); charic:=o;
+ {{addTF(rotated 180); dochar;}}
+ endchar;
+ beginchar(cfchar+6,ys,x,x+o); charic:=yf;
+ {{addTF(rotated 270); addTF(reflectedabout(up,down)); dochar;}}
+ endchar;
+ beginchar(cfchar+7,ys,x+o,x); charic:=yf;
+ {{addTF(rotated 90); dochar;}}
+ endchar;
+enddef;
+
+def twochars(expr cfchar)(text dochar)(expr ht, wd, dp) =
+ beginchar(cfchar,wd,ht,dp);
+ dochar;
+ endchar;
+ beginchar(cfchar+1,dp,wd,ht);
+ {{addTF(rotated 90); dochar;}}
+ endchar;
+enddef;
+
+def fourchars(expr cfchar)(text dochar)(text op)(expr ht, wd, dp) =
+ beginchar(cfchar,wd,ht,dp);
+ dochar;
+ endchar;
+ beginchar(cfchar+1,dp,wd,ht);
+ {{addTF(rotated 90); dochar;}}
+ endchar;
+ beginchar(cfchar+2,wd,dp,ht);
+ {{addTF(shifted -op rotated 180); dochar;}}
+ endchar;
+ beginchar(cfchar+3,ht,wd,dp);
+ {{addTF(shifted -op rotated -90); dochar;}}
+ endchar;
+enddef;
+
+def fourfourchars(expr cfchar)(text dochar)(text op)(expr ht, wd, dp) =
+ beginchar(cfchar,wd,ht,dp);
+ dochar;
+ endchar;
+ beginchar(cfchar+1,dp,wd,ht);
+ {{addTF(rotated 90); dochar;}}
+ endchar;
+ beginchar(cfchar+2,wd,dp,ht);
+ {{addTF(shifted -op rotated 180); dochar;}}
+ endchar;
+ beginchar(cfchar+3,ht,wd,dp);
+ {{addTF(shifted -op rotated -90); dochar;}}
+ endchar;
+ beginchar(cfchar+4,wd,dp,ht);
+ {{addTF(reflectedabout(left,right)); dochar;}}
+ endchar;
+ beginchar(cfchar+5,ht,wd,dp);
+ {{addTF(reflectedabout(left,right) rotated 90); dochar;}}
+ endchar;
+ beginchar(cfchar+6,wd,ht,dp);
+ {{addTF(reflectedabout (left,right) shifted -op rotated 180); dochar;}}
+ endchar;
+ beginchar(cfchar+7,dp,wd,ht);
+ {{addTF(reflectedabout(left,right) shifted -op rotated -90); dochar;}}
+ endchar;
+enddef;
+
+
+primarydef x gridmod y = if x>0: (x mod y) else: -(-x mod y) fi enddef;
+
+def vshade(suffix pa, pb)(expr di, patternpath) = begingroup
+ path vl;
+ boolean ifshift;
+
+ if not cycle patternpath:
+ errmessage "patternpath has to be a cyclic path!" fi;
+
+ interim smoothing:=0; %change local only
+ interim autorounding:=0;
+
+ ifshift:=true;
+ ydi:=round(1.41di); % round against pattern in
+ xdi:=round(di); % pattern
+ if xdi<2: errmessage "di to small! di>=2" fi;
+ xs:=xpart(point 0 of pa);
+ xe:=xpart(point infinity of pa);
+ if xs>xe: ye:=xe; xe:=xs; xs:=ye; fi %force xs<xe
+ xs:=xs+((xe-xs) mod xdi) / 2; %adjust grid horizontally
+ vl:=(xs,infinity)--(xs,-infinity);
+ oys:=ypart(pa intersectionpoint vl);
+ oys:=oys-.5ydi; %adjust grid vertically
+ for xs:=xs step xdi until xe:
+ vl:=(xs,infinity)--(xs,-infinity); % new cut line
+ ys:=ypart(pa intersectionpoint vl);
+ ye:=ypart(pb intersectionpoint vl);
+ ifshift:=not(ifshift); %shift periodically
+ sy:=ydi-((ys-oys) gridmod ydi);
+ ys:=ys+sy if ifshift: if sy-.5ydi<0:+else:-fi .5ydi fi;
+ for ys:=ys step if ys>ye:-fi ydi until ye:
+ fill patternpath shifted (xs,ys);
+ endfor
+ endfor;
+ endgroup
+enddef;
+
+def hshade(suffix pa, pb)(expr di, patternpath) = begingroup
+ path hl;
+ boolean ifshift;
+
+ if not cycle patternpath:
+ errmessage "patternpath has to be a cyclic path!" fi;
+
+ interim smoothing:=0; %change local only
+ interim autorounding:=0;
+
+ ifshift:=true;
+ xdi:=round(1.41di); % round against pattern in
+ ydi:=round(di); % pattern
+ if ydi<2: errmessage "di to small! di>=2" fi;
+ ys:=ypart(point 0 of pa);
+ ye:=ypart(point infinity of pa);
+ if ys>ye: xe:=ye; ye:=ys; ys:=xe; fi %force ys<ye
+ ys:=ys+((ye-ys) mod ydi) / 2; %adjust grid vertically
+ hl:=(infinity,ys)--(-infinity,ys);
+ oxs:=xpart(pa intersectionpoint hl);
+ oxs:=oxs-.5ydi; %adjust grid horizontally
+ for ys:=ys step ydi until ye:
+ hl:=(infinity,ys)--(-infinity,ys); % new cut line
+ xs:=xpart(pa intersectionpoint hl);
+ xe:=xpart(pb intersectionpoint hl);
+ ifshift:=not(ifshift); %shift periodically
+ sx:=xdi-((xs-oxs) gridmod xdi);
+ xs:=xs+sx if ifshift: if sx-.5xdi<0:+else:-fi .5xdi fi;
+ for xs:=xs step if xs>xe:-fi xdi until xe:
+ fill patternpath shifted (xs,ys);
+ endfor
+ endfor;
+ endgroup
+enddef;
+
+endinput;
+%%
+%%
+%% End of file `csym.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/circ/defcirc.mf b/Master/texmf-dist/fonts/source/public/circ/defcirc.mf
new file mode 100644
index 00000000000..34c990935ac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/circ/defcirc.mf
@@ -0,0 +1,160 @@
+%%
+%% This is file `defcirc.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% circ.dtx (with options: `defcircmf')
+%% CIRC is a LaTeX package to typeset circuit and optics diagrams.
+%% Copyright (C) 1997,1998,2003 Sebastian Tannert and Andreas Tille
+%%
+%% This program is free software; you can redistribute it and/or modify
+%% it under the terms of the GNU General Public License as published by
+%% the Free Software Foundation; either version 2 of the License, or
+%% (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, write to the Free Software
+%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+%%
+%% For error reports concerning UNCHANGED versions of this file no
+%% more than one year old, see CIRC.DVI after installation.
+%% If installation fails search thru this file for 'bug'.
+mode_setup;
+font_coding_scheme:="CIRC symbols";
+
+message("CIRC %<*"&font_identifier_&">");
+message("CIRC \freecirc");
+message("CIRC \addCIRCfont "&font_identifier_);
+message("CIRC %</"&font_identifier_&">");
+message("CIRC %<+doc> \optionline "&optionname);
+message("CIRC %<*"&font_identifier_&",doc>");
+message("");
+
+def endCIRCfont =
+ message("CIRC %</"&font_identifier_&",doc>");
+ message("CIRC %<*"&font_identifier_&">");
+ message("CIRC \protectcirc");
+ message("CIRC %</"&font_identifier_&">");
+ message("");
+ bye;
+enddef;
+
+CIu#:=7pt#; define_whole_pixels(CIu);
+
+current_char_code:=0;
+
+pair shiftpoint;
+
+linethickness#:= 0.45pt#;
+thinline# := 0.5linethickness#;
+normalline# := 1.0linethickness#;
+thickline# := 1.5linethickness#;
+verythickline#:= 2.5linethickness#;
+define_whole_blacker_pixels(normalline,thinline,thickline,verythickline);
+
+fontdimen6: 1CIu#;
+
+extra_endchar:=extra_endchar & "labels(range 0 thru 100);";
+
+def {{ =
+ begingroup
+ save T; transform T;
+ T:=currenttransform;
+ save currenttransform;
+ transform currenttransform;
+ currenttransform:=T;
+enddef;
+
+def }} = endgroup; enddef;
+
+def addTF(text t) = currenttransform:=currenttransform t; enddef;
+
+def twopinchar(text name, lab, doc)(expr wd, ht, dp)(text body) =
+ message("CIRC \cdef "&name&" "&lab&" \CIRC"&
+ font_identifier_&" "&decimal(current_char_code));
+ message("CIRC %<+doc> {"&doc&"}");
+ message("");
+ beginchar(current_char_code, wd, ht, dp);
+ body;
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,dp,wd,ht);
+ {{addTF(shifted -shiftpoint rotated -90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+enddef;
+
+def twopincharfour(text name, lab, pini, pinii, doc)
+ (expr wd, ht, dp)(text body) =
+ message("CIRC \cdefiv "&name&" "&lab&" \CIRC"&
+ font_identifier_&" "&decimal(current_char_code)&" "&
+ pini&" "&pinii);
+ message("CIRC %<+doc> {"&doc&"}");
+ message("");
+ beginchar(current_char_code,wd,ht,dp);
+ body;
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,dp,wd,ht);
+ {{addTF(rotated 90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,wd,dp,ht);
+ {{addTF(shifted -shiftpoint rotated 180); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,ht,wd,dp);
+ {{addTF(shifted -shiftpoint rotated -90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+enddef;
+
+def twopincharfourfour(text name, lab, pini, pinii, doc)
+ (expr wd, ht, dp)(text body) =
+ message("CIRC \cdefiviv "&name&" "&lab&" \CIRC"&
+ font_identifier_&" "&decimal(current_char_code)&" "&
+ pini&" "&pinii);
+ message("CIRC %<+doc> {"&doc&"}");
+ message("");
+ beginchar(current_char_code,wd,ht,dp);
+ body;
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,dp,wd,ht);
+ {{addTF(rotated 90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,wd,dp,ht);
+ {{addTF(shifted -shiftpoint rotated 180); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,ht,wd,dp);
+ {{addTF(shifted -shiftpoint rotated -90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,wd,dp,ht);
+ {{addTF(reflectedabout(left,right)); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,ht,wd,dp);
+ {{addTF(reflectedabout(left,right) rotated 90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,wd,ht,dp);
+ {{addTF(reflectedabout (left,right) shifted -shiftpoint rotated 180); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+ beginchar(current_char_code,dp,wd,ht);
+ {{addTF(reflectedabout(left,right) shifted -shiftpoint rotated -90); body;}}
+ endchar;
+ current_char_code:=current_char_code+1;
+enddef;
+%%
+%%
+%% End of file `defcirc.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/cirth/cirbf.mf b/Master/texmf-dist/fonts/source/public/cirth/cirbf.mf
new file mode 100644
index 00000000000..196286273a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cirth/cirbf.mf
@@ -0,0 +1,65 @@
+% Copyright 1992 Jo Grant jaymin@maths.tcd.ie
+% c/o 44 Bancroft Avenue, Tallaght, Dublin 24, Ireland.
+% Everyone is granted permission to copy, and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party and not used for
+% monetary gain. To use them in a commercially related environment
+% you must first acquire a liscence from Jo Grant at the
+% above address.
+
+
+mode_def testing=
+ pixels_per_inch:=300*4;
+ blacker:=.1;
+ o_correction:=1;
+ fillin:=.01;
+ proofing:=2;
+ fontmaking:=0;
+ tracingtitles:=1;
+ enddef;
+if unknown mode:
+mode:=testing; fi
+mode_setup;
+
+if mode=testing: screenstrokes; fi
+
+% parameters that control what things looks like.
+u# = 1/384in#;
+pw# := 4u#; % normal pen width
+runew# := 1.2*4pw#; % normal width of a rune
+runeh# := 10pw#; % normal height of a rune
+letter_fit# := 1.2pw#; % normal space to left and right of a rune
+serwid#:= 1.2*.5pw#; % serif width
+dotwid#:= 1.2*.75pw#; % dot radius
+
+pen_xthick# := 1.5pw#; % pen proportions
+pen_ythick# := 1.5*.5pw#; %
+dotpen_xthick# := .75pw#; % dot pen proportions
+dotpen_ythick# := .375pw#; %
+
+ASC:= 1.20;
+HH := 1.00;
+H := 0.75;
+M := 0.50;
+L := 0.25;
+LL := 0.00;
+DSC:= -.20;
+
+boolean serifs;
+serifs := true;
+
+define_pixels(pw, runew, runeh, pen_xthick, pen_ythick, letter_fit, serwid)
+define_pixels(dotwid, dotpen_xthick, dotpen_ythick)
+
+input macros;
+input runes;
+input ligs;
+
+font_normal_space 2runew#;
+font_normal_stretch 2runew#/3;
+font_normal_shrink 4runew#/3;
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/cirth/cirsl.mf b/Master/texmf-dist/fonts/source/public/cirth/cirsl.mf
new file mode 100644
index 00000000000..9f5d3ae89c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cirth/cirsl.mf
@@ -0,0 +1,67 @@
+% Copyright 1992 Jo Grant jaymin@maths.tcd.ie
+% c/o 44 Bancroft Avenue, Tallaght, Dublin 24, Ireland.
+% Everyone is granted permission to copy, and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party and not used for
+% monetary gain. To use them in a commercially related environment
+% you must first acquire a liscence from Jo Grant at the
+% above address.
+
+
+mode_def testing=
+ pixels_per_inch:=300*4;
+ blacker:=.1;
+ o_correction:=1;
+ fillin:=.01;
+ proofing:=2;
+ fontmaking:=0;
+ tracingtitles:=1;
+ enddef;
+if unknown mode:
+mode:=testing; fi
+mode_setup;
+
+if mode=testing: screenstrokes; fi
+
+% parameters that control what things looks like.
+u# = 1/384in#;
+pw# := 4u#; % normal pen width
+runew# := 4pw#; % normal width of a rune
+runeh# := 10pw#; % normal height of a rune
+letter_fit# := 1.2pw#; % normal space to left and right of a rune
+serwid#:= .5pw#; % serief width
+dotwid#:= .75pw#; % dot radius
+
+pen_xthick# := pw#; % pen proportions
+pen_ythick# := .5pw#; %
+dotpen_xthick# := .75pw#; % dot pen proportions
+dotpen_ythick# := .375pw#; %
+
+ASC:= 1.20;
+HH := 1.00;
+H := 0.75;
+M := 0.50;
+L := 0.25;
+LL := 0.00;
+DSC:= -.20;
+
+boolean serifs;
+serifs := true;
+
+currenttransform := identity slanted 1/4;
+
+define_pixels(pw, runew, runeh, pen_xthick, pen_ythick, letter_fit, serwid)
+define_pixels(dotwid, dotpen_xthick, dotpen_ythick)
+
+input macros;
+input runes;
+input ligs;
+
+font_normal_space 2runew#;
+font_normal_stretch 2runew#/3;
+font_normal_shrink 4runew#/3;
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/cirth/cirss.mf b/Master/texmf-dist/fonts/source/public/cirth/cirss.mf
new file mode 100644
index 00000000000..f9e9a3fa001
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cirth/cirss.mf
@@ -0,0 +1,64 @@
+% Copyright 1992 Jo Grant jaymin@maths.tcd.ie
+% c/o 44 Bancroft Avenue, Tallaght, Dublin 24, Ireland.
+% Everyone is granted permission to copy, and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party and not used for
+% monetary gain. To use them in a commercially related environment
+% you must first acquire a liscence from Jo Grant at the
+% above address.
+
+mode_def testing=
+ pixels_per_inch:=300*4;
+ blacker:=.1;
+ o_correction:=1;
+ fillin:=.01;
+ proofing:=2;
+ fontmaking:=0;
+ tracingtitles:=1;
+ enddef;
+if unknown mode:
+mode:=testing; fi
+mode_setup;
+
+if mode=testing: screenstrokes; fi
+
+% parameters that control what things looks like.
+u# = 1/384in#;
+pw# := 4u#; % normal pen width
+runew# := 4pw#; % normal width of a rune
+runeh# := 10pw#; % normal height of a rune
+letter_fit# := 1.2pw#; % normal space to left and right of a rune
+serwid#:= .5pw#; % serif width
+dotwid#:= .75pw#; % dot radius
+
+pen_xthick# := .9pw#; % pen proportions
+pen_ythick# := .9pw#; %
+dotpen_xthick# := .5pw#; % dot pen proportions
+dotpen_ythick# := .5pw#; %
+
+ASC:= 1.20;
+HH := 1.00;
+H := 0.75;
+M := 0.50;
+L := 0.25;
+LL := 0.00;
+DSC:= -.20;
+
+boolean serifs;
+serifs := false;
+
+define_pixels(pw, runew, runeh, pen_xthick, pen_ythick, letter_fit, serwid)
+define_pixels(dotwid, dotpen_xthick, dotpen_ythick)
+
+input macros;
+input runes;
+input ligs;
+
+font_normal_space 2runew#;
+font_normal_stretch 2runew#/3;
+font_normal_shrink 4runew#/3;
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/cirth/cirth.mf b/Master/texmf-dist/fonts/source/public/cirth/cirth.mf
new file mode 100644
index 00000000000..f3dff984d34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cirth/cirth.mf
@@ -0,0 +1,65 @@
+% Copyright 1992 Jo Grant jaymin@maths.tcd.ie
+% c/o 44 Bancroft Avenue, Tallaght, Dublin 24, Ireland.
+% Everyone is granted permission to copy, and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party and not used for
+% monetary gain. To use them in a commercially related environment
+% you must first acquire a liscence from Jo Grant at the
+% above address.
+
+
+mode_def testing=
+ pixels_per_inch:=300*4;
+ blacker:=.1;
+ o_correction:=1;
+ fillin:=.01;
+ proofing:=2;
+ fontmaking:=0;
+ tracingtitles:=1;
+ enddef;
+if unknown mode:
+mode:=testing; fi
+mode_setup;
+
+if mode=testing: screenstrokes; fi
+
+% parameters that control what things looks like.
+u# = 1/384in#;
+pw# := 4u#; % normal pen width
+runew# := 4pw#; % normal width of a rune
+runeh# := 10pw#; % normal height of a rune
+letter_fit# := 1.2pw#; % normal space to left and right of a rune
+serwid#:= .5pw#; % serif width
+dotwid#:= .75pw#; % dot radius
+
+pen_xthick# := pw#; % pen proportions
+pen_ythick# := .5pw#; %
+dotpen_xthick# := .75pw#; % dot pen proportions
+dotpen_ythick# := .375pw#; %
+
+ASC:= 1.20;
+HH := 1.00;
+H := 0.75;
+M := 0.50;
+L := 0.25;
+LL := 0.00;
+DSC:= -.20;
+
+boolean serifs;
+serifs := true;
+
+define_pixels(pw, runew, runeh, pen_xthick, pen_ythick, letter_fit, serwid)
+define_pixels(dotwid, dotpen_xthick, dotpen_ythick)
+
+input macros;
+input runes;
+input ligs;
+
+font_normal_space 2runew#;
+font_normal_stretch 2runew#/3;
+font_normal_shrink 4runew#/3;
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/cirth/ligs.mf b/Master/texmf-dist/fonts/source/public/cirth/ligs.mf
new file mode 100644
index 00000000000..cb215f58cfa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cirth/ligs.mf
@@ -0,0 +1,35 @@
+% Copyright 1992 Jo Grant jaymin@maths.tcd.ie
+% c/o 44 Bancroft Avenue, Tallaght, Dublin 24, Ireland.
+% Everyone is granted permission to copy, and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party and not used for
+% monetary gain. To use them in a commercially related environment
+% you must first acquire a liscence from Jo Grant at the
+% above address.
+
+% the ligatures
+ligtable "c": "h" =: char 4;
+ligtable "d": "h" =: char 3;
+ligtable "g": "w" =: char 11, "h" =: char 9;
+ligtable char 9: "w" =: char 13;
+ligtable "h": "w" =: char 0, "y" =: char 22;
+ligtable "k": "w" =: char 10, "h" =: char 8;
+ligtable char 8: "w" =: char 12;
+ligtable "l": "h" =: char 17;
+ligtable "m": "b" =: char 1;
+ligtable "n": "j" =: char 7, "w" =: char 15, "d" =: char 20, "g" =: char 120;
+ligtable char 120: "w" =: char 14, "o" =: char 19;
+%ligtable "n": "g" =: char 19;
+ligtable "p": "s" =: char 30;
+ligtable "r": "h" =: char 16;
+ligtable "s": "h" =: char 5;
+ligtable "t": "h" =: char 2, "s" =: char 31;
+ligtable "z": "h" =: char 6;
+ligtable "e": "r" =: char 28, "l" =: char 29;
+ligtable "u": "u" =: char 23;
+ligtable "U": "U" =: char 24;
+ligtable "o": "o" =: char 26;
+ligtable "O": "O" =: char 27;
diff --git a/Master/texmf-dist/fonts/source/public/cirth/macros.mf b/Master/texmf-dist/fonts/source/public/cirth/macros.mf
new file mode 100644
index 00000000000..7ae00442a24
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cirth/macros.mf
@@ -0,0 +1,69 @@
+% Copyright 1992 Jo Grant jaymin@maths.tcd.ie
+% c/o 44 Bancroft Avenue, Tallaght, Dublin 24, Ireland.
+% Everyone is granted permission to copy, and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party and not used for
+% monetary gain. To use them in a commercially related environment
+% you must first acquire a liscence from Jo Grant at the
+% above address.
+
+def runepen =
+ pickup pencircle xscaled pen_xthick yscaled pen_ythick rotated 40;
+ enddef;
+def dotpen =
+ pickup pencircle xscaled dotpen_xthick yscaled dotpen_ythick rotated 40;
+ enddef;
+def runedot (expr p) =
+ dotpen;
+ draw (p + (dotwid, 0)){up}..{left}(p + (0, dotwid))..
+ {down}(p + (-dotwid, 0))..{right}(p + (0, -dotwid))..cycle;
+ enddef;
+def filldot (expr p) =
+ dotpen;
+ filldraw (p + (dotwid, 0)){up}..{left}(p + (0, dotwid))..
+ {down}(p + (-dotwid, 0))..{right}(p + (0, -dotwid))..cycle;
+ enddef;
+def serif (expr p) =
+ if serifs:
+ runepen;
+ draw (p - (serwid, 0))--(p + (serwid, 0));
+ fi;
+ enddef;
+def leftserif (expr p) =
+ if serifs:
+ runepen;
+ draw (p - (serwid, 0))--p;
+ fi;
+ enddef;
+def rightserif (expr p) =
+ if serifs:
+ runepen;
+ draw p--(p + (serwid, 0));
+ fi;
+ enddef;
+
+def adjust_fit(expr left_adj, right_adj) =
+ l := -hround(left_adj*hppp)-letter_fit;
+ interim xoffset := -l;
+ charwd := charwd+2letter_fit# + left_adj + right_adj;
+ r := l+hround(charwd*hppp);
+ w := r-hround(right_adj*hppp) - letter_fit;
+ enddef;
+
+extra_beginchar := extra_beginchar & "runepen;adjust_fit(0,0);";
+
+def makebox(text r) =
+ r((-letter_fit,0), (w+letter_fit,0));
+ r((-letter_fit,h), (w+letter_fit,h));
+ r((-letter_fit,0), (-letter_fit,h));
+ r((w+letter_fit,0), (w+letter_fit,h));
+ r((0,0), (0,h));
+ r((w,0), (w,h));
+ if charic<>0:
+ r((w+charic*hppp,h.o_),(w+charic*hppp,.5h.o_));
+ fi
+ enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/cirth/runes.mf b/Master/texmf-dist/fonts/source/public/cirth/runes.mf
new file mode 100644
index 00000000000..355f1655e53
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cirth/runes.mf
@@ -0,0 +1,927 @@
+% Version 2.0 Copyright 2004 Martin Habets mhabets@users.sourceforge.net
+% Version 1.0 Copyright 1992 Jo Grant jaymin@maths.tcd.ie
+% c/o 44 Bancroft Avenue, Tallaght, Dublin 24, Ireland.
+%
+% Everyone is granted permission to copy, and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party and not used for
+% monetary gain. To use them in a commercially related environment
+% you must first acquire a liscence from Jo Grant at the
+% above address.
+
+beginchar("&",runew#,runeh#,0); "&";
+z1 = (w, L*h);
+z2 = (w/2, LL*h);
+z3 = (w/2, HH*h);
+z4 = (0, H*h);
+draw z1--z2--z3--z4;
+rightserif(z1);
+leftserif(z4);
+endchar;
+
+beginchar(".",.5runew#,runeh#,0); ".";
+z1 = (w/2, M*h);
+filldot(z1);
+endchar;
+
+beginchar(":",.5runew#,runeh#,0); ":";
+z1 = (w/2, .33*h);
+z2 = (w/2, .66*h);
+filldot(z1);
+filldot(z2);
+endchar;
+
+beginchar(",",.5runew#,runeh#,0); ",";
+z1 = (w/2, .2*h);
+z2 = (w/2, M*h);
+z3 = (w/2, .8*h);
+filldot(z1);
+filldot(z2);
+filldot(z3);
+endchar;
+
+beginchar(";",.5runew#,runeh#,0); ";";
+z1 = (w/2, LL*h+dotwid#);
+z2 = (w/2, .33*h+dotwid#);
+z3 = (w/2, .66*h-dotwid#);
+z4 = (w/2, HH*h-dotwid#);
+filldot(z1);
+filldot(z2);
+filldot(z3);
+filldot(z4);
+endchar;
+
+% we place this in the "c" position so that ligatures work
+beginchar("c",2pw#,runeh#,0); "+h";
+z1 = (w/2, LL*h);
+z2 = (w/2, M*h);
+draw z1--z2;
+serif(z1);
+serif(z2);
+endchar;
+
+beginchar(31,runew#,runeh#,0); "58";
+%ts
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (w, H*h);
+z4 = (0, M*h);
+z5 = (w, L*h);
+draw z1--z2;
+draw z3--z4--z5;
+serif(z1);
+serif(z2);
+endchar;
+
+beginchar(30,runew#,runeh#,0); "57";
+%ps
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (0, H*h);
+z4 = (w, M*h);
+z5 = (0, L*h);
+draw z1--z2;
+draw z3--z4--z5;
+serif(z1);
+serif(z2);
+endchar;
+
+beginchar("'",.5runew#,runeh#,0); "56b";
+z5 = (w-.5runew, .5[M,L]*h);
+z6 = (w, .5[H,M]*h);
+%draw z5{right}..{right}z6;
+draw z5..z6;
+endchar;
+
+beginchar(29,.5runew#,runeh#,0); "56";
+z1 = (.5runew, LL*h);
+z2 = (.5runew, HH*h);
+z3 = (.5runew, .5[H,M]*h);
+z4 = (0, .5[M,L]*h);
+z7 = (.25runew, DSC*h);
+z8 = (.75runew, DSC*h);
+draw z1--z2;
+draw z3--z4;
+serif(z1);
+serif(z2);
+leftserif(z4);
+runedot(z7);
+runedot(z8);
+endchar;
+
+beginchar("`",.5runew#,runeh#,0); "55b";
+z5 = (w-.5runew, .5[H,M]*h);
+z6 = (w, .5[M,L]*h);
+%draw z5{right}..{right}z6;
+draw z5..z6;
+endchar;
+
+beginchar(28,.5runew#,runeh#,0); "55";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (0, .5[H,M]*h);
+z4 = (.5runew, .5[M,L]*h);
+draw z1--z2;
+draw z3--z4;
+serif(z1);
+serif(z2);
+rightserif(z4);
+endchar;
+
+beginchar("h",1.5runew#,runeh#,0); "54";
+z1 = (0, LL*h);
+z2 = (w/2, M*h);
+z3 = (w, LL*h);
+z4 = (w/2, HH*h);
+draw z1--z2--z3;
+draw z2--z4;
+leftserif(z1);
+serif(z4);
+rightserif(z3);
+endchar;
+
+beginchar("Y",1.5runew#,runeh#,0); "53";
+z1 = (0, HH*h);
+z2 = (w/2, M*h);
+z3 = (w, HH*h);
+z4 = (w/2, LL*h);
+x6 - x5 = runew/2; .5[x5, x6] = w/2;
+y5 = y6 = ASC*h;
+draw z1--z2--z3;
+draw z2--z4;
+leftserif(z1);
+serif(z4);
+rightserif(z3);
+runedot(z5);
+runedot(z6);
+endchar;
+
+beginchar(27,1.5runew#,runeh#,0); "52b";
+z1 = (0, LL*h);
+z2 = (w/2, HH*h);
+z3 = (w, LL*h);
+z4 = (w/2, M*h);
+z5 = (w/2, LL*h);
+draw z1--z2--z3;
+draw z5--z4;
+leftserif(z1);
+serif(z2);
+rightserif(z3);
+endchar;
+
+beginchar(26,1.5runew#,runeh#,0); "52a";
+z1 = (0, LL*h);
+z2 = (w/2, HH*h);
+z3 = (w, LL*h);
+z4 = (w/2, LL*h);
+draw z1--z2--z3;
+draw z2--z4;
+leftserif(z1);
+serif(z2);
+serif(z4);
+rightserif(z3);
+endchar;
+
+beginchar(25,1.4runew#,runeh#,0); "51b";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (w/2, LL*h);
+z4 = (w, HH*h);
+z5 = (w, LL*h);
+draw z1--z2--z3--z4--z5;
+leftserif(z1);
+serif(z2);
+serif(z3);
+serif(z4);
+rightserif(z5);
+endchar;
+
+beginchar("O",1.6runew#,runeh#,0); "51a";
+z1 = (0, LL*h);
+z2 = (.5runew, HH*h);
+z3 = (runew, LL*h);
+z4 = (w-runew, LL*h);
+z5 = (w-.5runew, HH*h);
+z6 = (w, LL*h);
+draw z1--z2--z3;
+draw z4--z5--z6;
+leftserif(z1);
+serif(z2);
+rightserif(z3);
+leftserif(z4);
+serif(z5);
+rightserif(z6);
+endchar;
+
+beginchar("o",1.2runew#,runeh#,0); "50";
+z1 = (0, LL*h);
+z2 = (w/2, HH*h);
+z3 = (w, LL*h);
+draw z1--z2--z3;
+leftserif(z1);
+serif(z2);
+rightserif(z3);
+endchar;
+
+beginchar("A",runew#,runeh#,0); "49";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (w, H*h);
+z4 = (w, LL*h);
+z5 = (0, H*h);
+z6 = (w, M*h);
+draw z1--z2--z3--z4;
+draw z5--z6;
+serif(z1);
+serif(z2);
+serif(z4);
+endchar;
+
+beginchar("a",runew#,runeh#,0); "48";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (w, H*h);
+z4 = (w, LL*h);
+draw z1--z2--z3--z4;
+serif(z1);
+serif(z2);
+serif(z4);
+endchar;
+
+beginchar("E",runew#,runeh#,0); "47";
+z1 = (0, HH*h);
+z2 = (0, LL*h);
+z3 = (w, HH*h);
+z4 = (w, LL*h);
+z5 = (0, H*h);
+z6 = (w, M*h);
+z7 = (0, M*h);
+z8 = (w, L*h);
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+draw z7--z8;
+serif(z1);
+serif(z2);
+serif(z3);
+serif(z4);
+endchar;
+
+beginchar("e",runew#,runeh#,0); "46";
+z1 = (0, HH*h);
+z2 = (0, LL*h);
+z3 = (w, HH*h);
+z4 = (w, LL*h);
+z5 = (0, H*h);
+z6 = (w, M*h);
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+serif(z1);
+serif(z2);
+serif(z3);
+serif(z4);
+endchar;
+
+beginchar(24,runew#,runeh#,0); "45b";
+% u"
+z1 = (w/2, LL*h);
+z2 = (w/2, M*h);
+z3 = (0, H*h);
+z4 = (w/2, HH*h);
+z5 = (w, H*h);
+z6 = (0, M*h);
+z7 = (w, M*h);
+draw z1--z4;
+draw z2--z3--z4--z5--z2;
+draw z6--z7;
+serif(z1);
+endchar;
+
+beginchar(23,runew#,runeh#,0); "45a";
+% u"
+z1 = (w/2, LL*h);
+z2 = (w/2, M*h);
+z3 = (0, H*h);
+z4 = (w/2, HH*h);
+z5 = (w, H*h);
+z6 = (0, M*h);
+z7 = (w, M*h);
+draw z1--z2--z3--z4--z5--z2;
+draw z6--z7;
+serif(z1);
+endchar;
+
+beginchar("w",1.2runew#,runeh#,0); "44";
+z1 = (w/2, LL*h);
+z2 = (w/2, M*h);
+z3 = (0, H*h);
+z4 = (w/2, HH*h);
+z5 = (w, H*h);
+draw z1--z2--z3--z4--z5--z2;
+serif(z1);
+endchar;
+
+beginchar("U",1.2runew#,runeh#,0); "43";
+z1 = (0, HH*h);
+z2 = (w, M*h);
+z3 = (0, LL*h);
+z4 = (w, HH*h);
+z5 = (0, M*h);
+z6 = (w, LL*h);
+draw z1--z2--z3;
+draw z4--z5--z6;
+leftserif(z1);
+leftserif(z3);
+rightserif(z4);
+rightserif(z6);
+endchar;
+
+beginchar("u",runew#,runeh#,0); "42";
+z1 = (0, LL*h);
+z2 = (w, .33*h);
+z3 = (w/2, HH*h);
+z4 = (0, .33M*h);
+z5 = (w, LL*h);
+draw z1--z2--z3--z4--z5;
+serif(z1);
+serif(z5);
+endchar;
+
+beginchar(22,.75runew#,runeh#,0); "41";
+z1 = (w, HH*h);
+z2 = (w, L*h);
+z3 = (0, H*h);
+z4 = (0, LL*h);
+draw z1--z2--z3--z4;
+serif(z1);
+serif(z4);
+endchar;
+
+beginchar("y",.75runew#,runeh#,0); "40";
+z1 = (0, HH*h);
+z2 = (0, L*h);
+z3 = (w, H*h);
+z4 = (w, LL*h);
+draw z1--z2--z3--z4;
+serif(z1);
+serif(z4);
+endchar;
+
+beginchar("i",.5runew#,runeh#,0); "39";
+z1 = (0, HH*h);
+z2 = (0, LL*h);
+z3 = (0, ASC*h);
+z4 = (w, ASC*h);
+draw z1--z2;
+serif(z1);
+serif(z2);
+runedot(z3);
+runedot(z4);
+endchar;
+
+beginchar("M",1.2runew#,runeh#,0); "38b";
+% nd version 2
+z1 = (0, HH*h);
+z2 = (w, LL*h);
+z3 = (w, HH*h);
+z4 = (0, LL*h);
+z5 = (w, M*h);
+z6 = (0, M*h);
+draw z4--z1--z5;
+draw z2--z3--z6;
+serif(z4);
+serif(z2);
+endchar;
+
+beginchar(20,2runew#,runeh#,0); "38a";
+% nd version 1
+z1 = (0, HH*h);
+z2 = (w, LL*h);
+z3 = (w, HH*h);
+z4 = (0, LL*h);
+draw z1--z2--z3--z4--cycle;
+endchar;
+
+beginchar(19,1.6runew#,runeh#,0); "37";
+% ng
+z1 = (0, HH*h);
+z2 = (w, LL*h);
+z3 = (w, HH*h);
+z4 = (0, LL*h);
+z5 = (w/2, H*h);
+z6 = (w, M*h);
+z7 = (w/2, L*h);
+z8 = (0, M*h);
+draw z1--z2;
+draw z3--z4;
+draw z5--z6--z7--z8--cycle;
+leftserif(z1);
+rightserif(z2);
+rightserif(z3);
+leftserif(z4);
+endchar;
+
+beginchar("z",2runew#,runeh#,0); "36";
+z1 = (0, HH*h);
+z2 = (w, LL*h);
+z3 = (w, HH*h);
+z4 = (0, LL*h);
+draw z1--z2;
+draw z3--z4;
+leftserif(z1);
+rightserif(z2);
+rightserif(z3);
+leftserif(z4);
+endchar;
+
+beginchar("S",1.2runew#,runeh#,0); "35";
+z1 = (w, HH*h);
+z2 = (0, M*h);
+z3 = (w, LL*h);
+draw z1--z2--z3;
+serif(z1);
+serif(z3);
+endchar;
+
+beginchar("s",1.2runew#,runeh#,0); "34";
+z1 = (0, HH*h);
+z2 = (w, M*h);
+z3 = (0, LL*h);
+z4 = (0, ASC*h);
+z5 = (.5runew, ASC*h);
+draw z1--z2--z3;
+serif(z1);
+serif(z3);
+runedot(z4);
+runedot(z5);
+endchar;
+
+beginchar("x",1.5runew#,runeh#,0); "33";
+% ng
+z1 = (w/2, HH*h);
+z2 = (w/2, LL*h);
+z3 = (0, HH*h);
+z4 = (w, LL*h);
+z5 = (0, LL*h);
+z6 = (w, HH*h);
+draw z1--z2;
+draw z3{down}..{down}z4;
+draw z5{up}..{up}z6;
+serif(z1);
+serif(z2);
+serif(z3);
+serif(z4);
+serif(z5);
+serif(z6);
+endchar;
+
+beginchar(17,runew#,runeh#,0); "32";
+% lh
+z1 = (w/2, HH*h);
+z2 = (w/2, LL*h);
+z3 = (0, .5[H,HH]*h);
+z4 = (w, .5[L,LL]*h);
+draw z1--z2;
+draw z3{down}..{down}z4;
+serif(z1);
+serif(z2);
+serif(z3);
+serif(z4);
+endchar;
+
+beginchar("l",runew#,runeh#,0); "31";
+z1 = (w/2, HH*h);
+z2 = (w/2, LL*h);
+z3 = (0, .5[L,LL]*h);
+z4 = (w, .5[H,HH]*h);
+draw z1--z2;
+draw z3{up}..{up}z4;
+serif(z1);
+serif(z2);
+serif(z3);
+serif(z4);
+endchar;
+
+beginchar(16,runew#,runeh#,0); "30";
+% rh
+z1 = (w, HH*h);
+z2 = (w, LL*h);
+z3 = (0, HH*h);
+z4 = (w, M*h);
+z5 = (0, LL*h);
+draw z1--z2;
+draw z3{down}..{right}z4;
+draw z5{up}..{right}z4;
+serif(z1);
+serif(z2);
+leftserif(z3);
+leftserif(z5);
+endchar;
+
+beginchar("r",runew#,runeh#,0); "29";
+z1 = (0, HH*h);
+z2 = (0, LL*h);
+z3 = (w, HH*h);
+z4 = (0, M*h);
+z5 = (w, LL*h);
+draw z1--z2;
+draw z3{down}..{left}z4;
+draw z5{up}..{left}z4;
+serif(z1);
+serif(z2);
+rightserif(z3);
+rightserif(z5);
+endchar;
+
+beginchar(15,1.5runew#,runeh#,0); "28";
+% ngw
+z1 = (w, HH*h);
+z2 = (w/2, H*h);
+z3 = (0, HH*h);
+z4 = (0, LL*h);
+z5 = (w/2, L*h);
+z6 = (w, LL*h);
+z7 = (.5[x4,x5], DSC*h);
+z8 = (.5[x5,x6], DSC*h);
+draw z1--z2--z3--z4--z5--z6;
+runedot(z7);
+runedot(z8);
+endchar;
+
+beginchar(14,2runew#,runeh#,0); "27";
+% ngw
+z1 = (w/2, LL*h);
+z2 = (w/2, HH*h);
+z3 = (0,HH*h);
+z4 = (.5runew, H*h);
+z5 = (w-.5runew, H*h);
+z6 = (w, HH*h);
+draw z1--z2;
+draw z3--z4--z2--z5--z6;
+serif(z1);
+leftserif(z3);
+rightserif(z6);
+endchar;
+
+beginchar(13,1.5runew#,runeh#,0); "26";
+% ghw
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (w/2,H*h);
+z4 = (0, HH*h);
+z5 = (w, M*h);
+z6 = (w/2,L*h);
+z7 = (0, M*h);
+draw z1--z2--z3--z4;
+draw z5--z6--z7;
+serif(z1);
+leftserif(z4);
+leftserif(z7);
+rightserif(z2);
+endchar;
+
+beginchar(12,1.5runew#,runeh#,0); "25";
+% khw
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (w/2,H*h);
+z4 = (0, HH*h);
+draw z1--z2--z3--z4;
+serif(z1);
+leftserif(z4);
+rightserif(z2);
+endchar;
+
+beginchar(11,1.5runew#,runeh#,0); "24";
+% gw
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (w/2,H*h);
+z4 = (w, HH*h);
+z5 = (0, M*h);
+z6 = (w/2,L*h);
+z7 = (w, M*h);
+draw z1--z2--z3--z4;
+draw z5--z6--z7;
+serif(z1);
+rightserif(z4);
+rightserif(z7);
+leftserif(z2);
+endchar;
+
+beginchar(10,1.5runew#,runeh#,0); "23";
+% kw
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (w/2,M*h);
+z4 = (w, HH*h);
+z5 = (0, ASC*h);
+z6 = (.5runew, ASC*h);
+draw z1--z2--z3--z4;
+serif(z1);
+rightserif(z4);
+leftserif(z2);
+runedot(z5);
+runedot(z6);
+endchar;
+
+beginchar("N",1.5runew#,runeh#,0); "22";
+% ligatured nj
+z1 = (w/2, LL*h);
+z2 = (w/2, HH*h);
+z3 = (0,HH*h);
+z4 = (w/2, M*h);
+z5 = (w, HH*h);
+draw z1--z2;
+draw z3{down}..z4{right}..{up}z5;
+serif(z1);
+serif(z2);
+serif(z3);
+serif(z5);
+endchar;
+
+beginchar(9,runew#,runeh#,0); "21";
+% gh
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (w,M*h);
+z4 = (0, HH*h);
+z5 = (w,H*h);
+z6 = (w/2, HH*h);
+draw z1--z2;
+draw z3{left}..{up}z4;
+draw z5{left}..{up}z6;
+serif(z1);
+serif(z2);
+serif(z4);
+serif(z6);
+endchar;
+
+beginchar(8,.9runew#,runeh#,0); "20";
+% kh
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (w,M*h);
+z4 = (0, HH*h);
+draw z1--z2;
+draw z3{left}..{up}z4;
+serif(z1);
+serif(z2);
+serif(z4);
+endchar;
+
+beginchar("g",runew#,runeh#,0); "19";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (0,M*h);
+z4 = (w, HH*h);
+z5 = (0,H*h);
+z6 = (w/2, HH*h);
+draw z1--z2;
+draw z3{right}..{up}z4;
+draw z5{right}..{up}z6;
+serif(z1);
+serif(z2);
+serif(z4);
+serif(z6);
+endchar;
+
+beginchar("k",.9runew#,runeh#,0); "18";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (0,M*h);
+z4 = (w, HH*h);
+z5 = (0, ASC*h);
+z6 = (w/2, ASC*h);
+draw z1--z2;
+draw z3{right}..{up}z4;
+serif(z1);
+serif(z2);
+serif(z4);
+runedot(z5);
+runedot(z6);
+endchar;
+
+beginchar(7,1.5runew#,runeh#,0); "17";
+% nj
+z1 = (w/2, LL*h);
+z2 = (w/2, HH*h);
+z3 = (0,LL*h);
+z4 = (w/2, M*h);
+z5 = (w, LL*h);
+draw z1--z2;
+draw z3--z4--z5;
+serif(z1);
+rightserif(z5);
+leftserif(z3);
+endchar;
+
+beginchar(6,1.2runew#,runeh#,0); "16";
+% zh
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (w,M*h);
+z4 = (0, LL*h);
+z5 = (w, L*h);
+z6 = (w/2, LL*h);
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+serif(z1);
+serif(z2);
+leftserif(z4);
+leftserif(z6);
+endchar;
+
+beginchar(5,1.2runew#,runeh#,0); "15";
+% zh
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (w,M*h);
+z4 = (0, LL*h);
+draw z1--z2;
+draw z3--z4;
+serif(z1);
+serif(z2);
+leftserif(z4);
+endchar;
+
+beginchar("j",1.2runew#,runeh#,0); "14";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (0,M*h);
+z4 = (w, LL*h);
+z5 = (0, L*h);
+z6 = (w/2, LL*h);
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+serif(z1);
+serif(z2);
+rightserif(z4);
+rightserif(z6);
+endchar;
+
+beginchar(4,1.2runew#,runeh#,0); "13";
+% ch
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (0,M*h);
+z4 = (w, LL*h);
+z5 = (0, ASC*h);
+z6 = (w/2, ASC*h);
+draw z1--z2;
+draw z3--z4;
+serif(z1);
+serif(z2);
+rightserif(z4);
+runedot(z5);
+runedot(z6);
+endchar;
+
+beginchar("n",1.5runew#,runeh#,0); "12";
+z1 = (w/2, LL*h);
+z2 = (w/2, HH*h);
+z3 = (0,.5[M,H]*h);
+z4 = (w,.5[M,H]*h);
+draw z1--z2;
+draw z3--z2--z4;
+serif(z1);
+rightserif(z4);
+leftserif(z3);
+endchar;
+
+beginchar(3,runew#,runeh#,0); "11";
+% dh
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (0,H*h);
+z4 = (w, M*h);
+z5 = (0,L*h);
+draw z1--z2--z3;
+draw z4--z5;
+serif(z1);
+rightserif(z2);
+leftserif(z3);
+leftserif(z5);
+endchar;
+
+beginchar(2,runew#,runeh#,0); "10";
+% th
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (0,M*h);
+draw z1--z2--z3;
+serif(z1);
+rightserif(z3);
+endchar;
+
+beginchar("d",runew#,runeh#,0); "9";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (w,H*h);
+z4 = (0, M*h);
+z5 = (w,L*h);
+draw z1--z2--z3;
+draw z4--z5;
+serif(z1);
+leftserif(z2);
+rightserif(z3);
+rightserif(z5);
+endchar;
+
+beginchar("t",runew#,runeh#,0); "8";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (w,M*h);
+z4 = (w/2, ASC*h);
+z5 = (w,ASC*h);
+draw z1--z2--z3;
+serif(z1);
+leftserif(z2);
+rightserif(z3);
+runedot(z4);
+runedot(z5);
+endchar;
+
+beginchar(1,runew#,runeh#,0); "7";
+% mb
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (0,H*h);
+z4 = (w, M*h);
+z5 = (0,L*h);
+draw z1--z2--z3--z4--z5--z1;
+rightserif(z1);
+rightserif(z2);
+endchar;
+
+beginchar("m",runew#,runeh#,0); "6";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (w,H*h);
+z4 = (0, M*h);
+z5 = (w,L*h);
+draw z1--z2--z3--z4--z5--z1;
+leftserif(z1);
+leftserif(z2);
+endchar;
+
+beginchar(0,1.5runew#,runeh#,0); "5";
+% hw
+z1 = (w/2, LL*h);
+z2 = (w/2, HH*h);
+z3 = (w,H*h);
+z4 = (w/2, M*h);
+z5 = (0,H*h);
+draw z1--z2--z3--z4--z5--z2;
+serif(z1);
+endchar;
+
+beginchar("v",1.2runew#,runeh#,0); "4";
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (w-.9runew,H*h);
+z4 = (w, M*h);
+z5 = (w-1.2runew,.5[L,LL]*h);
+draw z1--z2--z3--z4--z5;
+serif(z1);
+rightserif(z2);
+leftserif(z5);
+endchar;
+
+beginchar("f",runew#,runeh#,0); "3";
+z1 = (w, LL*h);
+z2 = (w, HH*h);
+z3 = (0,H*h);
+z4 = (w, M*h);
+draw z1--z2--z3--z4;
+serif(z1);
+rightserif(z2);
+endchar;
+
+beginchar("b",1.2runew#,runeh#,0); "2";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (.9runew,H*h);
+z4 = (0, M*h);
+z5 = (1.2runew,.5[L,LL]*h);
+draw z1--z2--z3--z4--z5;
+serif(z1);
+leftserif(z2);
+rightserif(z5);
+endchar;
+
+beginchar("p",runew#,runeh#,0); "1";
+z1 = (0, LL*h);
+z2 = (0, HH*h);
+z3 = (w,H*h);
+z4 = (0, M*h);
+draw z1--z2--z3--z4;
+serif(z1);
+leftserif(z2);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/clock/clock.mf b/Master/texmf-dist/fonts/source/public/clock/clock.mf
new file mode 100644
index 00000000000..5438012337a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/clock/clock.mf
@@ -0,0 +1,137 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: clock.mf
+% Date: April 10, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Beijing, Berlin
+%
+% A metafont for providing the clock to LaTeX-users.
+%
+% Usage: see package clock
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% This font contains characters for hands and dials. %%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+ mg:=4/4;
+ thin#:=mg*1pt#;
+ width#:=mg*16pt#;
+ height#:=mg*12pt#;
+ depth#:=mg*4pt#;
+ margin#:=mg*1.05pt#;
+
+ define_pixels(width,height,depth,thin,margin);
+
+ font_size = 10pt#;
+
+ font_x_height = 16pt#;
+ % font_quad = 16pt#;
+ font_normal_space = 0pt#;
+ font_extra_space = 0pt#;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% All sorts of clock parts
+%
+def MinuteHand (expr minutes) = % Minutenzeiger
+ z1=(w/2,1/2(h-d));
+ z2=(w/2,27/36h-margin);
+ pickup pencircle scaled 1/2thin; % rotated (-minutes*6);
+ draw (z1--z2) rotatedabout (z1,-minutes*6);
+enddef;
+
+def HourHand (expr minutes) = % Stundenzeiger
+ z1=(w/2,1/2(h-d));
+ z2=(w/2,24/36h-margin);
+ pickup pencircle scaled 9/16thin; % rotated (-minutes*6);
+ draw (z1--z2) rotatedabout (z1,-minutes*6);
+enddef;
+
+def Hands (expr minutes) = % Beide Zeiger
+ %
+ beginchar(minutes+64,width#,height#,depth#);
+ MinuteHand(minutes);
+ endchar;
+ %
+ beginchar(minutes+128,width#,height#,depth#);
+ HourHand(minutes);
+ endchar;
+enddef;
+
+def NESW =
+ % This routine places ticks at 12, 3, 6 and 9 o'clock
+ for l = 0,3,6,9:
+ top z5=(w/2,h-margin);
+ z7=(w/2,1/2(h-d));
+ z6=6/36[z5,z7];
+ draw (z5--z6) rotatedabout (z7,-l*30);
+ endfor;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% All sorts of dials
+%
+beginchar("0",width#,height#,depth#);
+ top z1=(0.5w,h-margin); % 12 Uhr
+ rt z2=(w-margin,0.5(h-d)); % 3 Uhr
+ bot z3=(x1,-d+margin); % 6 Uhr
+ lft z4=(0+margin,y2); % 9 Uhr
+
+ pickup pencircle scaled 1/2thin;
+ draw z1...z2...z3...z4...cycle;
+endchar;
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+beginchar("1",width#,height#,depth#);
+ %
+ % "Standard", or "Classical" dial
+ % with indications for every hour
+ %
+ pickup pencircle scaled 5/8thin;
+ NESW;
+
+ pickup pencircle scaled 2/4thin;
+ for l = 1,2,4,5,7,8,10,11:
+ numeric x[];
+ numeric y[];
+ top z5=(w/2,h-margin);
+ z7=(w/2,1/2(h-d));
+ z6=3/36[z5,z7];
+ draw (z5--z6) rotatedabout (z7,-l*30);
+ endfor;
+endchar;
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+beginchar("2",width#,height#,depth#);
+ %
+ % A rather minimalist dial, with
+ % just a dot marking each hour
+ %
+ pickup pencircle scaled 2/4thin;
+ for l = 0 step 1 until 11:
+ top z2=(w/2,h-margin-6/8thin);
+ z1=(w/2,1/2(h-d));
+ drawdot(z2) rotatedabout (z1,-l*30);
+ endfor;
+endchar;
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+beginchar("3",width#,height#,depth#);
+ % A radically minimalist dial
+ pickup pencircle scaled 5/8thin;
+ NESW;
+endchar;
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The true center of activity:
+% create both hands at the same time
+%
+for minutes = 0 step 1 until 59:
+ Hands(minutes);
+endfor;
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/cm/accent.mf b/Master/texmf-dist/fonts/source/public/cm/accent.mf
new file mode 100644
index 00000000000..08382e02c32
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/accent.mf
@@ -0,0 +1,214 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE accent.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains accents common to text roman and italic fonts.
+% Character codes \0022--\0030, \0040, \0136--\0137, \0175--\0177 are generated.
+
+% (Actually the accents in positions \0040, \0137, and \0175 are not generated
+% unless |ligs>0|, since other symbols are substituted
+% for those accents in non-ligature fonts.)
+
+cmchar "Grave accent";
+beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Acute accent";
+beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Hachek (check) accent";
+beginchar(oct"024",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Breve accent";
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=Vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Scandinavian circle accent";
+beginchar(oct"027",13u#+4/3(asc_height#-x_height#)*slant,asc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Cedilla accent";
+beginchar(oct"030",8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+x1=.5w+.5u;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); endchar;
+
+iff ligs>0: cmchar "Cross for Polish l and L";
+if unknown l_width#:
+ l_width#:=5u#+2serif_fit#; fi % nominal width of `l'
+if unknown L_stem#:
+ L_stem#:=cap_serif_fit#+max(2u#+.5cap_stem#,3u#); fi % center of `L' stem
+ligtable oct"040": "l" kern -l_width#-2letter_fit#,
+ "L" kern -.5l_width#-L_stem#-2letter_fit#;
+beginchar(oct"040",l_width#,x_height#,0);
+adjust_fit(stem_shift#,-stem_shift#);
+pickup crisp.nib; x2-x1=max(4u,2.8u+stem); .5[x1,x2]=.5w;
+y1-.5bar=.2[bar_height,x_height]; y2+.5bar=.8[bar_height,x_height];
+numeric theta; theta=angle(z2-z1)+90;
+pos1(bar,theta); pos2(bar,theta);
+filldraw stroke z1e--z2e; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Circumflex (hat) accent";
+beginchar(oct"136",9u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff ligs>0: cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+iff ligs>0: cmchar "Long Hungarian umlaut accent";
+beginchar(oct"175",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+cmchar "Tilde (squiggle) accent";
+beginchar(oct"176",9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Umlaut (double dot) accent";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"177",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/bigacc.mf b/Master/texmf-dist/fonts/source/public/cm/bigacc.mf
new file mode 100644
index 00000000000..987e70f42f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/bigacc.mf
@@ -0,0 +1,35 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE bigacc.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains series of large accents for math extension fonts.
+
+% The sizes are `wide' (|10u#|), `wider' (|18u#|), and `widest' (|26u#|).
+
+% Character codes \0142--\0147 are generated.
+
+charlist oct"142": oct"143": oct"144"; % circumflexes
+charlist oct"145": oct"146": oct"147"; % tildes
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"142",10u#,.5[asc_height#,body_height#],0);
+big_hat; endchar;
+
+cmchar "Wider circumflex (hat) accent";
+beginchar(oct"143",18u#,body_height#,0);
+big_hat; endchar;
+
+cmchar "Widest circumflex (hat) accent";
+beginchar(oct"144",26u#,body_height#,0);
+big_hat; endchar;
+
+cmchar "Wide tilde (squiggle) accent";
+beginchar(oct"145",10u#,.5[asc_height#,body_height#],0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"146",18u#,body_height#,0);
+big_tilde; endchar;
+
+cmchar "Widest tilde (squiggle) accent";
+beginchar(oct"147",26u#,body_height#,0);
+big_tilde; endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/bigdel.mf b/Master/texmf-dist/fonts/source/public/cm/bigdel.mf
new file mode 100644
index 00000000000..0e7ab76423d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/bigdel.mf
@@ -0,0 +1,700 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE bigdel.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains series of large delimiters for math extension fonts.
+
+% The sizes are `{\tt\char`\\big}' (|2dh#|), `{\tt\char`\\Big}' (|3dh#|),
+% `{\tt\char`\\bigg}' (|4dh#|), and `{\tt\char`\\Bigg}' (|5dh#|),
+% followed in most cases by an extensible character that can grow
+% arbitrarily large in |dh#| steps,
+% where |dh#| is 60\% of the font design size.
+% (For example, a 10-point font will have large delimiters in sizes
+% 12$\,$pt, 18$\,$pt, 24$\,$pt, 30$\,$pt, 36$\,$pt, 42$\,$pt, etc.)
+
+% Character codes \0000--\0105 and \0150--\0177 are generated.
+
+charlist oct"000": oct"020": oct"022": oct"040": oct"060"; % left parentheses
+charlist oct"001": oct"021": oct"023": oct"041": oct"061"; % right parentheses
+charlist oct"002": oct"150": oct"024": oct"042": oct"062"; % left brackets
+charlist oct"003": oct"151": oct"025": oct"043": oct"063"; % right brackets
+charlist oct"004": oct"152": oct"026": oct"044": oct"064"; % left floors
+charlist oct"005": oct"153": oct"027": oct"045": oct"065"; % right floors
+charlist oct"006": oct"154": oct"030": oct"046": oct"066"; % left ceilings
+charlist oct"007": oct"155": oct"031": oct"047": oct"067"; % right ceilings
+charlist oct"010": oct"156": oct"032": oct"050": oct"070"; % left braces
+charlist oct"011": oct"157": oct"033": oct"051": oct"071"; % right braces
+charlist oct"012": oct"104": oct"034": oct"052"; % left angle brackets
+charlist oct"013": oct"105": oct"035": oct"053"; % right angle brackets
+charlist oct"016": oct"056": oct"036": oct"054"; % slashes
+charlist oct"017": oct"057": oct"037": oct"055"; % backslashes
+charlist oct"160": oct"161": oct"162": oct"163": oct"164"; % radical signs
+
+extensible oct"014": 0,0,0,oct"014"; % vertical line
+extensible oct"015": 0,0,0,oct"015"; % double vertical line
+extensible oct"060": oct"060",0,oct"100",oct"102"; % left parenthesis
+extensible oct"061": oct"061",0,oct"101",oct"103"; % right parenthesis
+extensible oct"062": oct"062",0,oct"064",oct"066"; % left bracket
+extensible oct"063": oct"063",0,oct"065",oct"067"; % right bracket
+extensible oct"064": 0,0,oct"064",oct"066"; % left floor bracket
+extensible oct"065": 0,0,oct"065",oct"067"; % right floor bracket
+extensible oct"066": oct"062",0,0,oct"066"; % left ceiling bracket
+extensible oct"067": oct"063",0,0,oct"067"; % right ceiling bracket
+extensible oct"070": oct"070",oct"074",oct"072",oct"076"; % left brace
+extensible oct"071": oct"071",oct"075",oct"073",oct"076"; % right brace
+extensible oct"072": oct"070",0,oct"072",oct"076"; % sharp left parenthesis
+extensible oct"073": oct"071",0,oct"073",oct"076"; % sharp right parenthesis
+extensible oct"074": 0,0,0,oct"077"; % arrow extension modules only
+extensible oct"075": 0,0,0,oct"167"; % double arrow extension modules only
+extensible oct"076": 0,0,0,oct"076"; % brace extension modules only
+extensible oct"077": oct"170",0,oct"171",oct"077"; % updownarrow
+extensible oct"100": oct"070",0,oct"073",oct"076"; % left moustache
+extensible oct"101": oct"071",0,oct"072",oct"076"; % right moustache
+extensible oct"102": 0,0,0,oct"102"; % left parenthesis extension modules only
+extensible oct"103": 0,0,0,oct"103"; % right parenthesis extension modules only
+extensible oct"164": oct"166",0,oct"164",oct"165"; % radical sign
+extensible oct"167": oct"176",0,oct"177",oct"167"; % double updownarrow
+extensible oct"170": oct"170",0,0,oct"077"; % uparrow
+extensible oct"171": 0,0,oct"171",oct"077"; % downarrow
+extensible oct"176": oct"176",0,0,oct"167"; % double uparrow
+extensible oct"177": 0,0,oct"177",oct"167"; % double downarrow
+
+cmchar "\big left parenthesis";
+beginchar(oct"000",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(1.5u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\Big left parenthesis";
+beginchar(oct"020",9u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(2u#,-.25u#); left_paren(rule_thickness,.5[stem,bold]); endchar;
+
+cmchar "\bigg left parenthesis";
+beginchar(oct"022",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(2.5u#,-.25u#); left_paren(rule_thickness+.2dw,bold); endchar;
+
+cmchar "\Bigg left parenthesis";
+beginchar(oct"040",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,-.25u#); left_paren(rule_thickness+.4dw,bold+dw); endchar;
+
+cmchar "Extensible left parenthesis---top";
+beginchar(oct"060",12u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,-.25u#); pickup fine.nib;
+numeric min_breadth,max_breadth;
+min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
+pos1(hround min_breadth,0); pos2(hround max_breadth,0);
+rt x1r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u;
+top y1=h-1; y2=-d-eps;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...{down}z2e; % upper arc
+penlabels(1,2); endchar;
+
+cmchar "Extensible left parenthesis---bottom";
+beginchar(oct"100",12u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,-.25u#); pickup fine.nib;
+numeric min_breadth,max_breadth;
+min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
+pos3(hround min_breadth,0); pos2(hround max_breadth,0);
+rt x3r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u;
+bot y3=1-d; y2=h+eps;
+filldraw stroke z3e{3(x2e-x3e),y2-y3}...{up}z2e; % lower arc
+penlabels(2,3); endchar;
+
+cmchar "Extensible left parenthesis---extension module";
+beginchar(oct"102",12u#,0,dh#);
+adjust_fit(4u#,-.25u#); pickup fine.nib;
+numeric max_breadth; max_breadth=bold+2dw;
+pos2(hround max_breadth,0); pos2'(hround max_breadth,0);
+lft x2l=lft x2'l=hround 1.25u; y2=h+eps; y2'=-d-eps;
+filldraw stroke z2e--z2'e; % link
+penlabels(2,2'); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"001",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(-.25u#,1.5u#); right_paren(hair,stem); endchar;
+
+cmchar "\Big right parenthesis";
+beginchar(oct"021",9u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(-.25u#,2u#); right_paren(rule_thickness,.5[stem,bold]); endchar;
+
+cmchar "\bigg right parenthesis";
+beginchar(oct"023",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(-.25u#,2.5u#); right_paren(rule_thickness+.2dw,bold); endchar;
+
+cmchar "\Bigg right parenthesis";
+beginchar(oct"041",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(-.25u#,3u#); right_paren(rule_thickness+.4dw,bold+dw); endchar;
+
+cmchar "Extensible right parenthesis---top";
+beginchar(oct"061",12u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(-.25u#,4u#); pickup fine.nib;
+numeric min_breadth,max_breadth;
+min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
+pos1(hround min_breadth,0); pos2(hround max_breadth,0);
+lft x1l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u);
+top y1=h-1; y2=-d-eps;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...{down}z2e; % upper arc
+penlabels(1,2); endchar;
+
+cmchar "Extensible right parenthesis---bottom";
+beginchar(oct"101",12u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(-.25u#,4u#); pickup fine.nib;
+numeric min_breadth,max_breadth;
+min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
+pos3(hround min_breadth,0); pos2(hround max_breadth,0);
+lft x3l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u);
+bot y3=1-d; y2=h+eps;
+filldraw stroke z3e{3(x2e-x3e),y2-y3}...{up}z2e; % lower arc
+penlabels(2,3); endchar;
+
+cmchar "Extensible right parenthesis---extension module";
+beginchar(oct"103",12u#,0,dh#);
+adjust_fit(-.25u#,4u#); pickup fine.nib;
+numeric max_breadth; max_breadth=bold+2dw;
+pos2(hround max_breadth,0); pos2'(hround max_breadth,0);
+rt x2r=rt x2'r=hround(w-1.25u); y2=h+eps; y2'=-d-eps;
+filldraw stroke z2e--z2'e; % link
+penlabels(2,2'); endchar;
+
+cmchar "\big left bracket";
+beginchar(oct"002",6u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(1.5u#,0); left_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\Big left bracket";
+beginchar(oct"150",6.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],true,true); endchar;
+
+cmchar "\bigg left bracket";
+beginchar(oct"024",7u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],true,true); endchar;
+
+cmchar "\Bigg left bracket";
+beginchar(oct"042",7.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],true,true); endchar;
+
+cmchar "Extensible left bracket---top";
+beginchar(oct"062",8u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,0); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+top y1=h-1; y2=-d-eps; lft x1l=lft x2l=hround(2.5u-.5stem);
+filldraw stroke z1e--z2e; % stem
+pos3(stem,90); pos4(stem,90);
+x3=x1l; rt x4=hround(w-.75u+.5stem); y3r=y4r=y1;
+filldraw stroke z3e--z4e; % upper bar
+penlabels(1,2,3,4); endchar;
+
+cmchar "Extensible left bracket---bottom";
+beginchar(oct"064",8u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,0); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+eps; bot y2=1-d; lft x1l=lft x2l=hround(2.5u-.5stem);
+filldraw stroke z1e--z2e; % stem
+pos5(stem,90); pos6(stem,90);
+x5=x1l; rt x6=hround(w-.75u+.5stem); y5l=y6l=y2;
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,5,6); endchar;
+
+cmchar "Extensible left bracket---extension module";
+beginchar(oct"066",8u#,0,dh#);
+adjust_fit(4u#,0); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+1+eps; bot y2=-d-1-eps; lft x1l=lft x2l=hround(2.5u-.5stem);
+filldraw stroke z1e--z2e; % stem
+penlabels(1,2); endchar;
+
+cmchar "\big right bracket";
+beginchar(oct"003",6u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(0,1.5u#); right_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\Big right bracket";
+beginchar(oct"151",6.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,2u#); right_bracket(.25[rule_thickness,stem],true,true); endchar;
+
+cmchar "\bigg right bracket";
+beginchar(oct"025",7u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(0,2.5u#); right_bracket(.5[rule_thickness,stem],true,true); endchar;
+
+cmchar "\Bigg right bracket";
+beginchar(oct"043",7.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(0,3u#); right_bracket(.75[rule_thickness,stem],true,true); endchar;
+
+cmchar "Extensible right bracket---top";
+beginchar(oct"063",8u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,4u#); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+top y1=h-1; y2=-d-eps; rt x1r=rt x2r=hround(w-2.5u+.5stem);
+filldraw stroke z1e--z2e; % stem
+pos3(stem,90); pos4(stem,90);
+x3=x1r; lft x4=hround(.75u-.5stem); y3r=y4r=y1;
+filldraw stroke z3e--z4e; % upper bar
+penlabels(1,2,3,4); endchar;
+
+cmchar "Extensible right bracket---bottom";
+beginchar(oct"065",8u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,4u#); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+eps; bot y2=1-d; rt x1r=rt x2r=hround(w-2.5u+.5stem);
+filldraw stroke z1e--z2e; % stem
+pos5(stem,90); pos6(stem,90);
+x5=x1r; lft x6=hround(.75u-.5stem); y5l=y6l=y2;
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,5,6); endchar;
+
+cmchar "Extensible right bracket---extension module";
+beginchar(oct"067",8u#,0,dh#);
+adjust_fit(0,4u#); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+1+eps; bot y2=-d-1-eps; rt x1r=rt x2r=hround(w-2.5u+.5stem);
+filldraw stroke z1e--z2e; % stem
+penlabels(1,2); endchar;
+
+cmchar "\big left floor bracket";
+beginchar(oct"004",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(1.5u#,0); left_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\Big left floor bracket";
+beginchar(oct"152",7.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],false,true); endchar;
+
+cmchar "\bigg left floor bracket";
+beginchar(oct"026",8u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],false,true); endchar;
+
+cmchar "\Bigg left floor bracket";
+beginchar(oct"044",8.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],false,true); endchar;
+
+cmchar "\big right floor bracket";
+beginchar(oct"005",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(0,1.5u#); right_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\Big right floor bracket";
+beginchar(oct"153",7.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,2u#); right_bracket(.25[rule_thickness,stem],false,true); endchar;
+
+cmchar "\bigg right floor bracket";
+beginchar(oct"027",8u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(0,2.5u#); right_bracket(.5[rule_thickness,stem],false,true); endchar;
+
+cmchar "\Bigg right floor bracket";
+beginchar(oct"045",8.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(0,3u#); right_bracket(.75[rule_thickness,stem],false,true); endchar;
+
+cmchar "\big left ceiling bracket";
+beginchar(oct"006",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(1.5u#,0); left_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\Big left ceiling bracket";
+beginchar(oct"154",7.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],true,false); endchar;
+
+cmchar "\bigg left ceiling bracket";
+beginchar(oct"030",8u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],true,false); endchar;
+
+cmchar "\Bigg left ceiling bracket";
+beginchar(oct"046",8.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],true,false); endchar;
+
+cmchar "\big right ceiling bracket";
+beginchar(oct"007",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(0,1.5u#); right_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\Big right ceiling bracket";
+beginchar(oct"155",7.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,2u#); right_bracket(.25[rule_thickness,stem],true,false); endchar;
+
+cmchar "\bigg right ceiling bracket";
+beginchar(oct"031",8u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(0,2.5u#); right_bracket(.5[rule_thickness,stem],true,false); endchar;
+
+cmchar "\Bigg right ceiling bracket";
+beginchar(oct"047",8.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(0,3u#); right_bracket(.75[rule_thickness,stem],true,false); endchar;
+
+cmchar "\big left curly brace";
+beginchar(oct"010",9u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); left_curly(hair,stem); endchar;
+
+cmchar "\Big left curly brace";
+beginchar(oct"156",10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); left_curly(rule_thickness,.5[stem,bold]); endchar;
+
+cmchar "\bigg left curly brace";
+beginchar(oct"032",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); left_curly(rule_thickness+.2dw,bold); endchar;
+
+cmchar "\Bigg left curly brace";
+beginchar(oct"050",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); left_curly(rule_thickness+.4dw,bold+dw); endchar;
+
+cmchar "Extensible left curly brace---top";
+beginchar(oct"070",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos1(min_breadth,0); pos1'(min_breadth,0);
+pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0);
+rt x1r=rt x1'r=hround(w-1.5u+.5min_breadth);
+lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness);
+top y1=h-1; y3=-d-eps; y2=.5[y1,y3]; y1-y1'=min_breadth-fine;
+filldraw z1l{3(x2l-x1l),y2-y1}...z2l---z3l
+ --z3r---z2r...{3(x1r-x2r),y1'-y2}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Extensible left curly brace---bottom";
+beginchar(oct"072",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos7(min_breadth,0); pos7'(min_breadth,0);
+pos5(heavy_rule_thickness,0); pos6(heavy_rule_thickness,0);
+rt x7r=rt x7'r=hround(w-1.5u+.5min_breadth);
+lft x5l=lft x6l=hround(.5w-.5heavy_rule_thickness);
+y5=h+eps; bot y7=1-d; y6=.5[y5,y7]; y7'-y7=min_breadth-fine;
+filldraw z5l---z6l...{3(x7l-x6l),y7-y6}z7l
+ --z7r--z7'r{3(x6r-x7r),y6-y7'}...z6r---z5r--cycle; % stroke
+penlabels(5,6,7); endchar;
+
+cmchar "Extensible left curly brace---middle";
+beginchar(oct"074",12u#,0,3dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos4(min_breadth,0); pos4'(min_breadth,0);
+forsuffixes $=2,3,5,6: pos$(heavy_rule_thickness,0); endfor
+lft x4l=lft x4'l=hround(1.5u-.5min_breadth);
+x2=x3=x5=x6; lft x2l=hround(.5w-.5heavy_rule_thickness);
+y2=h+eps; y6=-d-eps; .5[y4,y4']=.5[y2,y6]=.5[y3,y5];
+y3-y4=(y2-y6)/4; y4-y4'=min_breadth-fine;
+filldraw z2l---z3l...{3(x4l-x3l),y4-y3}z4l
+ --z4'l{3(x5l-x4l),y5-y4'}...z5l---z6l--z6r---z5r
+ ...{3(x4r-x5r),.5[y4,y4']-y5}.5[z4r,z4'r]{3(x3r-x4r),y3-.5[y4,y4']}
+ ...z3r---z2r--cycle; % stroke
+penlabels(2,3,4,5,6); endchar;
+
+cmchar "Extensible curly brace---extension module";
+beginchar(oct"076",12u#,0,.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0);
+lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness); y2=h+eps; y3=-d-eps;
+filldraw stroke z2e--z3e; % stem
+penlabels(2,3); endchar;
+
+cmchar "\big right curly brace";
+beginchar(oct"011",9u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); right_curly(hair,stem); endchar;
+
+cmchar "\Big right curly brace";
+beginchar(oct"157",10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); right_curly(rule_thickness,.5[stem,bold]); endchar;
+
+cmchar "\bigg right curly brace";
+beginchar(oct"033",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); right_curly(rule_thickness+.2dw,bold); endchar;
+
+cmchar "\Bigg right curly brace";
+beginchar(oct"051",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); right_curly(rule_thickness+.4dw,bold+dw); endchar;
+
+cmchar "Extensible right curly brace---top";
+beginchar(oct"071",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos1(min_breadth,0); pos1'(min_breadth,0);
+pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0);
+lft x1l=lft x1'l=hround(1.5u-.5min_breadth);
+lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness);
+top y1=h-1; y3=-d-eps; y2=.5[y1,y3]; y1-y1'=min_breadth-fine;
+filldraw z1r{3(x2r-x1r),y2-y1}...z2r---z3r
+ --z3l---z2l...{3(x1l-x2l),y1'-y2}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Extensible right curly brace---bottom";
+beginchar(oct"073",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos7(min_breadth,0); pos7'(min_breadth,0);
+pos5(heavy_rule_thickness,0); pos6(heavy_rule_thickness,0);
+lft x7l=lft x7'l=hround(1.5u-.5min_breadth);
+lft x5l=lft x6l=hround(.5w-.5heavy_rule_thickness);
+y5=h+eps; bot y7=1-d; y6=.5[y5,y7]; y7'-y7=min_breadth-fine;
+filldraw z5r---z6r...{3(x7r-x6r),y7-y6}z7r
+ --z7l--z7'l{3(x6l-x7l),y6-y7'}...z6l---z5l--cycle; % stroke
+penlabels(5,6,7); endchar;
+
+cmchar "Extensible right curly brace---middle";
+beginchar(oct"075",12u#,0,3dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos4(min_breadth,0); pos4'(min_breadth,0);
+forsuffixes $=2,3,5,6: pos$(heavy_rule_thickness,0); endfor
+rt x4r=rt x4'r=hround(w-1.5u+.5min_breadth);
+x2=x3=x5=x6; lft x2l=hround(.5w-.5heavy_rule_thickness);
+y2=h+eps; y6=-d-eps; .5[y4,y4']=.5[y2,y6]=.5[y3,y5];
+y3-y4=(y2-y6)/4; y4-y4'=min_breadth-fine;
+filldraw z2r---z3r...{3(x4r-x3r),y4-y3}z4r
+ --z4'r{3(x5r-x4r),y5-y4'}...z5r---z6r--z6l---z5l
+ ...{3(x4l-x5l),.5[y4,y4']-y5}.5[z4l,z4'l]{3(x3l-x4l),y3-.5[y4,y4']}
+ ...z3l---z2l--cycle; % stroke
+penlabels(2,3,4,5,6); endchar;
+
+cmchar "Horizontal curly brace tip---down and left";
+beginchar(oct"172",.75dh#,3rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth);
+.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine;
+filldraw z1r{x2-x1,3(y2r-y1r)}...{right}z2r
+ --z2l{left}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Horizontal curly brace tip---down and right";
+beginchar(oct"173",.75dh#,3rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth);
+.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine;
+filldraw z1r{x2-x1,3(y2r-y1r)}...{left}z2r
+ --z2l{right}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Horizontal curly brace tip---up and left";
+beginchar(oct"174",.75dh#,3rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth);
+.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine;
+filldraw z1l{x2-x1,3(y2l-y1l)}...{right}z2l
+ --z2r{left}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Horizontal curly brace tip---up and right";
+beginchar(oct"175",.75dh#,3rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth);
+.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine;
+filldraw z1l{x2-x1,3(y2l-y1l)}...{left}z2l
+ --z2r{right}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"012",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\Big left angle bracket";
+beginchar(oct"104",9u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); left_angle(.25[rule_thickness,stem]); endchar;
+
+cmchar "\bigg left angle bracket";
+beginchar(oct"034",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); left_angle(.5[rule_thickness,stem]); endchar;
+
+cmchar "\Bigg left angle bracket";
+beginchar(oct"052",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); left_angle(.75[rule_thickness,stem]); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"013",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\Big right angle bracket";
+beginchar(oct"105",9u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); right_angle(.25[rule_thickness,stem]); endchar;
+
+cmchar "\bigg right angle bracket";
+beginchar(oct"035",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); right_angle(.5[rule_thickness,stem]); endchar;
+
+cmchar "\Bigg right angle bracket";
+beginchar(oct"053",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); right_angle(.75[rule_thickness,stem]); endchar;
+
+cmchar "\big slash";
+beginchar(oct"016",10.4u#,rule_thickness#,2dh#-rule_thickness#);
+big_slash(rule_thickness+.2dw); endchar;
+
+cmchar "\Big slash";
+beginchar(oct"056",14.6u#,rule_thickness#,3dh#-rule_thickness#);
+big_slash(rule_thickness+.6dw); endchar;
+
+cmchar "\bigg slash";
+beginchar(oct"036",18.8u#,rule_thickness#,4dh#-rule_thickness#);
+big_slash(rule_thickness+dw); endchar;
+
+cmchar "\Bigg slash";
+beginchar(oct"054",23u#,rule_thickness#,5dh#-rule_thickness#);
+big_slash(rule_thickness+1.5dw); endchar;
+
+cmchar "\big backslash";
+beginchar(oct"017",10.4u#,rule_thickness#,2dh#-rule_thickness#);
+big_blash(rule_thickness+.2dw); endchar;
+
+cmchar "\Big backslash";
+beginchar(oct"057",14.6u#,rule_thickness#,3dh#-rule_thickness#);
+big_blash(rule_thickness+.6dw); endchar;
+
+cmchar "\bigg backslash";
+beginchar(oct"037",18.8u#,rule_thickness#,4dh#-rule_thickness#);
+big_blash(rule_thickness+dw); endchar;
+
+cmchar "\Bigg backslash";
+beginchar(oct"055",23u#,rule_thickness#,5dh#-rule_thickness#);
+big_blash(rule_thickness+1.5dw); endchar;
+
+cmchar "Extensible vertical line---extension module";
+beginchar(oct"014",6u#,0,dh#);
+adjust_fit(0,0); pickup pencircle scaled(rule_thickness+.2dw);
+x1=x2=good.x .5w; y1=eps; y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+cmchar "Extensible double vertical line---extension module";
+beginchar(oct"015",10u#,0,dh#);
+adjust_fit(0,0); pickup pencircle scaled(rule_thickness+.2dw);
+x1=x2=good.x .3w; x3=x4=w-x1; y1=y3=eps; y2=y4=-d-eps;
+draw z1--z2; draw z3--z4; % stems
+labels(1,2,3,4); endchar;
+
+cmchar "Extensible vertical arrow--top";
+beginchar(oct"170",12u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness,barr;
+thickness=hround(rule_thickness+.2dw); barr=Vround .6[bar,thickness];
+pos1(thickness,0); pos2(thickness,0); pos3(barr,90); pos4(barr,90);
+lft x1l=hround(.5w-.5thickness); y1=-d-eps;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=4u+eps;
+y3=y4=y0-.29asc_height-eps;
+pos5(barr,angle(z4-z0)); z5l=z0;
+pos6(barr,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z1r--z1l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Extensible vertical arrow--bottom";
+beginchar(oct"171",12u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness,barr;
+thickness=hround(rule_thickness+.2dw); barr=Vround .6[bar,thickness];
+pos1(thickness,0); pos2(thickness,0); pos3(barr,90); pos4(barr,90);
+lft x1l=hround(.5w-.5thickness); y1=h+eps;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=4u+eps;
+y3=y4=y0+.29asc_height+eps;
+pos5(barr,angle(z4-z0)); z5l=z0;
+pos6(barr,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z1r--z1l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Extensible vertical arrow--extension module";
+beginchar(oct"077",12u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness; thickness=hround(rule_thickness+.2dw);
+pos1(thickness,0); pos2(thickness,0);
+lft x1l=hround(.5w-.5thickness); x2=x1; y1=h+1+eps; y2=-d-1-eps;
+filldraw stroke z1e--z2e; % stem
+penlabels(1,2); endchar;
+
+cmchar "Extensible double vertical arrow--top";
+beginchar(oct"176",14u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness; thickness=Vround(rule_thickness+.2dw);
+pos1(thickness,0); pos2(thickness,0); pos7(thickness,0); pos8(thickness,0);
+y1=y2=-d-eps; y7=y8=h; top y0=h+eps; x1=x7; x2=x8;
+rt x1r=hround(.5w+2u+.5thickness); .5[x1,x2]=x0=good.x .5w;
+filldraw stroke z1e--z7e; filldraw stroke z2e--z8e; % bars
+pos3(thickness,90); pos4(thickness,90);
+x2-x3=x4-x1=4u+eps; y3=y4=y0-.48asc_height-eps;
+pos5(thickness,angle(z4-z0)); z5l=z0;
+pos6(thickness,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,h)
+ --(x4,h)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Extensible double vertical arrow--bottom";
+beginchar(oct"177",14u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness; thickness=Vround(rule_thickness+.2dw);
+pos1(thickness,0); pos2(thickness,0); pos7(thickness,0); pos8(thickness,0);
+y1=y2=h+eps; y7=y8=-d; bot y0=-d-eps; x1=x7; x2=x8;
+rt x1r=hround(.5w+2u+.5thickness); .5[x1,x2]=x0=good.x .5w;
+filldraw stroke z1e--z7e; filldraw stroke z2e--z8e; % bars
+pos3(thickness,90); pos4(thickness,90);
+x2-x3=x4-x1=4u+eps; y3=y4=y0+.48asc_height-eps;
+pos5(thickness,angle(z4-z0)); z5l=z0;
+pos6(thickness,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,-d)
+ --(x4,-d)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Extensible double vertical arrow--extension module";
+beginchar(oct"167",14u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness; thickness=Vround(rule_thickness+.2dw);
+pos1(thickness,0); pos2(thickness,0); pos7(thickness,0); pos8(thickness,0);
+y1=y2=h+1+eps; y7=y8=-d-1-eps; x1=x7; x2=x8;
+rt x1r=hround(.5w+2u+.5thickness); .5[x1,x2]=good.x .5w;
+filldraw stroke z1e--z7e; filldraw stroke z2e--z8e; % bars
+penlabels(1,2,7,8); endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"160",18u#,rule_thickness#,2dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\Big radical sign";
+beginchar(oct"161",18u#,rule_thickness#,3dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\bigg radical sign";
+beginchar(oct"162",18u#,rule_thickness#,4dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\Bigg radical sign";
+beginchar(oct"163",18u#,rule_thickness#,5dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "Extensible radical sign---bottom";
+beginchar(oct"164",19u#,0,3dh#);
+adjust_fit(0,-letter_fit#); pickup rule.nib;
+x1=x2=good.x(w-6u); bot y1=1-d; y2=h+eps;
+draw z1--z2; % diagonal
+pickup crisp.nib; pos3(max(curve,rule_thickness),0);
+x3l=good.x 3u; y3=.9[y1,y2];
+pos4(rule_thickness,0); x4=x1; bot y4=-d;
+pos5(vair,-45); x5l=good.x(x3l-u); z5l=whatever[z3r,(x2,body_height)];
+z6=z5r+whatever*((x2,body_height)-z3r)=whatever[z3l,z4l];
+z7=whatever[z1,z2]=z3r+whatever*(z4l-z3l);
+filldraw z5r--z6--z4l--z4--z7--z3r--z5l--cycle; % left diagonal and serif
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Extensible radical sign---extension module";
+beginchar(oct"165",19u#,0,dh#);
+adjust_fit(0,-letter_fit#); pickup rule.nib;
+x1=x2=good.x(w-6u); y1=-d-eps; y2=h+eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+cmchar "Extensible radical sign---top";
+beginchar(oct"166",19u#,rule_thickness#,dh#-rule_thickness#);
+adjust_fit(0,-letter_fit#); pickup rule.nib;
+x1=x2=good.x(w-6u); x3=good.x(w+.5); y1=-d-eps; bot y2=bot y3=0;
+draw z1--z2--z3; % stem and link
+labels(1,2,3); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/bigop.mf b/Master/texmf-dist/fonts/source/public/cm/bigop.mf
new file mode 100644
index 00000000000..61d0d5768f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/bigop.mf
@@ -0,0 +1,389 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE bigop.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains pairs of large operators for math extension fonts.
+
+% Each operator has a `{\tt\char`\\textstyle}' form, for math in text,
+% and a `{\tt\char`\\displaystyle}' form, for displayed formulas.
+
+% Character codes \0106--\0141 are generated.
+
+charlist oct"106": oct"107"; % square union signs
+charlist oct"110": oct"111"; % contour integral signs
+charlist oct"112": oct"113"; % circle-dot operators
+charlist oct"114": oct"115"; % circle-plus operators
+charlist oct"116": oct"117"; % circle-times operators
+charlist oct"120": oct"130"; % summation signs
+charlist oct"121": oct"131"; % product signs
+charlist oct"122": oct"132"; % integral signs
+charlist oct"123": oct"133"; % union signs
+charlist oct"124": oct"134"; % intersection signs
+charlist oct"125": oct"135"; % multiset union signs
+charlist oct"126": oct"136"; % lattice infimum signs
+charlist oct"127": oct"137"; % lattice supremum signs
+charlist oct"140": oct"141"; % coproduct signs
+
+cmchar "\textstyle square set union sign";
+beginchar(oct"106",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z1---z2---z4---z5; % stems and bar
+labels(1,2,4,5); endchar;
+
+cmchar "\displaystyle square set union sign";
+beginchar(oct"107",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z1---z2---z4---z5; % stems and bar
+labels(1,2,4,5); endchar;
+
+cmchar "\textstyle circle-dot operator";
+beginchar(oct"112",20u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+fill fullcircle scaled(bold+4dw+eps) shifted(.5[z4,z8]); % dot
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\displaystyle circle-dot operator";
+beginchar(oct"113",27.2u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+fill fullcircle scaled(bold+6dw+eps) shifted(.5[z4,z8]); % dot
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\textstyle circle-plus operator";
+beginchar(oct"114",20u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+draw z2--z6; draw z4--z8; % plus
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\displaystyle circle-plus operator";
+beginchar(oct"115",27.2u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+draw z2--z6; draw z4--z8; % plus
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\textstyle circle-times operator";
+beginchar(oct"116",20u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+draw z1--z5; draw z3--z7; % times
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\displaystyle circle-times operator";
+beginchar(oct"117",27.2u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x6=hround u; x2=w-x6; top y8=0; bot y4=-d;
+circle_points; draw_circle; % circle
+draw z1--z5; draw z3--z7; % times
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\textstyle summation sign";
+beginchar(oct"120",19u#,0,10/6dh#);
+adjust_fit(0,0); pickup tiny.nib;
+numeric top_arm_thickness, bot_arm_thickness;
+top_arm_thickness=Vround rule_thickness;
+bot_arm_thickness=Vround .9(.5[rule_thickness,curve]);
+lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
+top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(curve-tiny),0); penpos2(alpha1*(curve-tiny),0);
+penpos3(alpha1*(curve-tiny),0);
+alpha2=diag_ratio(1,rule_thickness-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(rule_thickness-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
+top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
+arm(5,6,a,.45,17/11u); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
+arm(7,8,b,.45,17/11u); % lower arm and beak
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\displaystyle summation sign";
+beginchar(oct"130",26u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric top_arm_thickness, bot_arm_thickness, thick_stem, thin_stem;
+thick_stem=bold+4dw; thin_stem=rule_thickness+dw;
+top_arm_thickness=Vround .9thin_stem;
+bot_arm_thickness=Vround .9(.5[thin_stem,thick_stem]);
+lft x1l=hround u; x1l=x2l=x4l; x3l-x1l=4/11(w-2u);
+top y1=0; bot y2=-top_arm_thickness-eps; bot y4=-d; y3=-.5d;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(thick_stem-tiny),0); penpos2(alpha1*(thick_stem-tiny),0);
+penpos3(alpha1*(thick_stem-tiny),0);
+alpha2=diag_ratio(1,thin_stem-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(thin_stem-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(top_arm_thickness,90); pos6(hair,0);
+top y5r=0; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-1.2beak)-eps;
+arm(5,6,a,.45,24/11u); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=-d; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,.45,24/11u); % lower arm and beak
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "\textstyle product sign";
+beginchar(oct"121",17u#,0,10/6dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+dw); light_stem=rule_thickness;
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
+lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut;
+x1=x1'=x2=x2';
+top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
+y11l-y1'=y2'-y12r=1.2bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
+x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\displaystyle product sign";
+beginchar(oct"131",23u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw);
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,90); pos12(light_stem,90); pos22(light_stem,90);
+lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut;
+x1=x1'=x2=x2';
+top y1=0; bot y2=-d; y11r=y1; y12l=y22l=y2;
+y11l-y1'=y2'-y12r=1.8bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,90); pos14(light_stem,90); pos24(light_stem,90);
+x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\textstyle coproduct sign";
+beginchar(oct"140",17u#,0,10/6dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+dw); light_stem=rule_thickness;
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
+lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround cap_jut;
+x1=x1'=x2=x2';
+bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
+y1'-y11l=y12r-y2'=1.2bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
+x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\displaystyle coproduct sign";
+beginchar(oct"141",23u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup crisp.nib;
+numeric heavy_stem,light_stem;
+heavy_stem=hround(bold+5dw); light_stem=Vround(rule_thickness+dw);
+pos1(heavy_stem,0);pos2(heavy_stem,0); pos1'(heavy_stem,0);pos2'(heavy_stem,0);
+pos11(light_stem,-90); pos12(light_stem,-90); pos22(light_stem,-90);
+lft x11=hround u; x1l-x11=x2l-x12=x22-x2r=hround 1.6cap_jut;
+x1=x1'=x2=x2';
+bot y1=-d; top y2=0; y11r=y1; y12l=y22l=y2;
+y1'-y11l=y12r-y2'=1.8bracket;
+filldraw z1r--z11r--serif_arc(11l,1'l)--reverse serif_arc(12r,2'l)
+ --z12l--z22l--serif_arc(22r,2'r)--cycle; % left stem and serifs
+pos3(heavy_stem,0);pos4(heavy_stem,0); pos3'(heavy_stem,0);pos4'(heavy_stem,0);
+pos13(light_stem,-90); pos14(light_stem,-90); pos24(light_stem,-90);
+x3=x3'=x4=x4'=w-x1; x13=x14=w-x11; x24=w-x22;
+y3=y13r=y1; y3'=y1'; y4'=y2'; y4=y14l=y24l=y2;
+filldraw z3l--z13r--serif_arc(13l,3'r)--reverse serif_arc(14r,4'r)
+ --z14l--z24l--serif_arc(24r,4'l)--cycle; % right stem and serifs
+filldraw stroke z11e--z13e; % bar
+penlabels(1,1',2,2',3,3',4,4',11,12,13,14,22,24); endchar;
+
+cmchar "\textstyle integral sign";
+beginchar(oct"122",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle integral sign";
+beginchar(oct"132",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle contour integral sign";
+beginchar(oct"110",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .5w shifted z5; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle contour integral sign";
+beginchar(oct"111",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .5w shifted z5; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle set union sign";
+beginchar(oct"123",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+labels(1,2,3,4,5); endchar;
+
+cmchar "\displaystyle set union sign";
+beginchar(oct"133",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+labels(1,2,3,4,5); endchar;
+
+cmchar "\textstyle set intersection sign";
+beginchar(oct"124",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+labels(1,2,3,4,5); endchar;
+
+cmchar "\displaystyle set intersection sign";
+beginchar(oct"134",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+labels(1,2,3,4,5); endchar;
+
+cmchar "\textstyle multiset union sign";
+beginchar(oct"125",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+y8=y9=.47[y1,y3]; x8=w-x9=x1+2stem+eps; x6=x7=x3;
+.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7; % enclosed `$+$'
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle multiset union sign";
+beginchar(oct"135",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y1=eps; bot y3=-d; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+y8=y9=.47[y1,y3]; x8=w-x9=x1+2curve+eps; x6=x7=x3;
+.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7; % enclosed `$+$'
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle lattice infimum sign";
+beginchar(oct"126",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y3=0; bot y1=-d-eps; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+cmchar "\displaystyle lattice infimum sign";
+beginchar(oct"136",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y3=0; bot y1=-d-eps; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+cmchar "\textstyle lattice supremum sign";
+beginchar(oct"127",15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y1=eps; bot y3=-d; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+cmchar "\displaystyle lattice supremum sign";
+beginchar(oct"137",20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y1=eps; bot y3=-d; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/calu.mf b/Master/texmf-dist/fonts/source/public/cm/calu.mf
new file mode 100644
index 00000000000..06657b8874c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/calu.mf
@@ -0,0 +1,397 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE calu.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Calligraphic capitals with `fixed' pens, by N. N. Billawala (1985).
+
+% These letters are intended for math, hence |math_fitting| is assumed.
+
+% Character codes \0101 through \0132 are generated.
+
+cmchar "Calligraphic A";
+beginchar("A",14.4u#,cap_height#,0);
+italcorr .5u#;
+adjust_fit(-.05w#,0); pickup cal.nib;
+lft x5=.54w; x7=.9w;
+top y5=h+.4cap_curve; bot y7=bot_flourish_line;
+z6=.3[z7,z5]-bend;
+pickup tilted.nib;
+lft x1=.05w; x2=.2w; rt x4=x5;
+y1=y2+.1h; bot y2=bot_flourish_line; top y4=h+.4cap_curve;
+y3=y6; z3=whatever[z2,z4]+2bend;
+draw\\(z1..tension 1.2..{right}z2) softjoin flex(z2,z3,z4); % left diagonal
+pickup cal.nib;
+erase fill\\(0,bot y5)--(w,bot y5)--(w,top y5)--(0,top y5)--cycle;
+draw flex(z5,z6,z7) softjoin (z7--z7+cal.extension); % right diagonal
+draw rt z3--z6; % bar
+math_fit(.5u#-.1cap_height#*slant,ic#); labels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Calligraphic B";
+beginchar("B",9.9u#,cap_height#,0);
+italcorr max(.8h#*slant-.1w#,.3h#*slant)+.5u#;
+adjust_fit(0,0); pickup cal.nib;
+lft x1=lft x3=0; x4=.6[x2,x5]; rt x5=.9w; x6=.4w; rt x7=w;
+x8=.4[x9,x7]; lft x9=rt x3;
+top y1=h+o; bot y3=-o; z2=.3[z3,z1]+bend;
+y4=y1; y5=.6[y6,y4]; y6=.55h; y7=.45[y8,y6]; bot y8=-o; y9=.1h;
+draw z1-cal.extension--flex(z1,z2,z3); % stem
+draw z2{up}...z4...z5{down}...{dir 200}z6{dir 10}
+ ...z7{down}...z8{left}...z9; % lobes
+math_fit(.5u#,.3h#*slant+.5u#); labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Calligraphic C";
+beginchar("C",9.4u#,cap_height#,0);
+italcorr max(h#*slant-.15w#,.2h#*slant)+.5u#;
+adjust_fit(0,0); pickup cal.nib;
+x0=.7[x2,x1]; rt x1=.85w; x2=.6w; lft x3=0; x4=.5w; rt x5=w;
+y0=.7h; y1=.8[y0,y2]; top y2=h+o; y3=.5h; bot y4=-o; y5=.2h;
+draw\\(z0{2(x1-x0),y1-y0}...z1)
+ softjoin (z1...z2{left}....z3{down}...z4...z5); % stroke
+math_fit(.5u#-.5h#*slant,.2h#*slant+.5u#); labels(0,1,2,3,4,5); endchar;
+
+cmchar "Calligraphic D";
+beginchar("D",10u#,cap_height#,0);
+italcorr .6h#*slant+.5u#;
+adjust_fit(4u#,0); pickup cal.nib;
+lft x1=lft x3=0; x4=.2[x1,x5]; rt x5=w; x6=.2w; x7=0;
+top y1=top y4=h; bot y3=0; z2=.5[z3,z1]+bend;
+y5=.51[y6,y4]; bot y6=bot y7=0;
+draw flex(z1,z2,z3); % stem
+draw z1---z4....z5{down}...z6---z7; % lobe
+draw z1{left}...{down}z1-flourish_change; % swash
+math_fit(.5u#-.8h#*slant,ic#-.5u#); labels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Calligraphic E";
+beginchar("E",8.5u#,cap_height#,0);
+italcorr max(h#*slant-.1w#,.2h#*slant)+.5u#;
+adjust_fit(0,0); pickup cal.nib;
+x1=.9[x3,x2]; rt x2=.9w; x3=.6[x4,x2]; lft x4=.05w;
+x5=.7[x6,x2]; lft x6=0; x7=.5[x6,x8]; rt x8=w;
+y1=y2-.1h; y2=.9h+o; top y3=h+o; y4=.5[y5,y3];
+y5=.55h; y6=.6[y5,y7]; bot y7=-o; y8=.2h;
+draw\\(z1{2(x2-x1),y2-y1}...z2)
+ softjoin (z2...z3{left}...z4{down}...{right}z5); % upper arc
+draw z5{left}...z6{down}...z7{right}...z8; % lower arc
+math_fit(.5u#-.2h#*slant,.2h#*slant+.5u#);
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Calligraphic F";
+beginchar("F",13.5u#,cap_height#,0);
+italcorr h#*slant+.5u#;
+adjust_fit(-.1w#,-u#); pickup cal.nib;
+x1=.5w; x3=.4w; lft x4=.1w; x5=x2+.35w; x6=.7[x1,x7]; rt x7=w;
+top y1=top y6=h; z2=.5[z3,z1]+1.2bend;
+bot y3=-o; y4=.1h; y5=y2; y7=.9h;
+draw flex(z1,z2,z3) softjoin (z3...{x4-x3,5(y4-y3)}z4); % stem
+draw z1-flourish_change{up}...(z1-(u,0))---z6...{down}z7; % upper bar
+draw z2--z5--z5-(0,.1cap_curve); % middle bar
+math_fit(0,.5ic#); labels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Calligraphic G";
+beginchar("G",9.4u#,cap_height#,.5desc_depth#);
+italcorr max(h#*slant-.05w#,.5h#*slant)+.5u#;
+adjust_fit(0,0); pickup cal.nib;
+x0=.7[x2,x1]; rt x1=.95w; x2=.6w; lft x3=0; x4=.5w;
+rt x5=w; x6=.5[x7,x5]; lft x7=.2w;
+y0=.7h+o; y1=.8[y0,y2]; top y2=h+o; y3=.5[y4,y2]; bot y4=.1h;
+y5=.5h; bot y6=-d-o; y7=-.5d;
+draw\\(z0{2(x1-x0),y1-y0}...z1)
+ softjoin (z1...z2{left}....z3{down}...z4...{up}z5); % arc
+draw z5{down}...z6{left}...z7; % tail
+math_fit(.5u#-.4h#*slant,.5h#*slant+.5u#);
+labels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Calligraphic H";
+beginchar("H",12.2u#,cap_height#,0);
+italcorr max(h#*slant-.2w#,.15h#*slant)+.5u#;
+adjust_fit(4u#,0); pickup cal.nib;
+lft x1=lft x3=.5u; rt x4=rt x6=.8w-.6u; rt x9=w;
+top y1=top y4=h; bot y3=-.06h; bot y6=bot_flourish_line; y9=y6+.1h;
+z2=.6[z3,z1]+bend; z5=.4[z6,z4]-bend;
+path p[]; p1=flex(z1,z2,z3); p2=flex(z4,z5,z6);
+p3=(-w,.45h)--(2w,.45h);
+rt z7+2bend=p3 intersectionpoint p1; rt z8=p3 intersectionpoint p2;
+draw (z1-flourish_change-bend{curl2}....z1-(u,0)---z1) softjoin p1; % left stem
+draw p2 softjoin (z6{right}...{up}z9); % right stem
+draw z7--z8; % bar
+math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Calligraphic I";
+beginchar("I",10.8u#,cap_height#,0);
+italcorr max(h#*slant+.5cap_curve#-.2w#,.15h#*slant)+.5u#;
+adjust_fit(0,0); pickup cal.nib;
+lft x0=0; x1=.9w; x2=x4=.5w; x5=.2w; x6=.8w; rt x7=1.05w;
+y0=.8h; top y1=top y2=h; z3=.5[z4,z2]+bend;
+bot y4=bot y5=bot y6=0; y7=.15h;
+draw z0{up}...z2---z1; % upper bar
+z8=.5[z2,z1];
+draw z8{left}...z3{down}...{left}.5[z4,z5]; % stem
+draw z5---z6...{up}z7; % lower bar
+math_fit(.5u#-.8h#*slant,.15h#*slant+.5u#);
+labels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Calligraphic J";
+beginchar("J",11.7u#,cap_height#,.5desc_depth#);
+italcorr h#*slant+.25u#;
+adjust_fit(0,0); pickup cal.nib;
+x0=.6w; rt x1=w; rt x2=.75w; x3=.5[x4,x2]; lft x4=0;
+top y0=top y1=h; y2=.2h; bot y3=-d-o; y4=d;
+draw z1---z0...{down}z0-(4u,2/7h); % upper bar
+draw z1{left}...z2{down}...z3{left}...{up}z4; % stem and tail
+math_fit(.5u#,0); labels(0,1,2,3,4); endchar;
+
+cmchar "Calligraphic K";
+beginchar("K",11u#,cap_height#,0);
+italcorr max(h#*slant-.2w#,.2h#*slant)+.5u#;
+adjust_fit(0,.1w#); pickup cal.nib;
+lft x1=lft x3=0; top y1=h+o; bot y3=-o; z2=.6[z3,z1]+bend;
+draw z1-cal.extension--flex(z1,z2,z3); % stem
+pickup light_cal.nib;
+rt x4=.9w; x5=x4-.1w; x7=.8w; rt x8=1.1w;
+y4=.9h; top y5=h+o; bot y7=-o; y8=.2h-o;
+(lft z6)t_=z2.t_+penoffset up of pen_[cal.nib];
+draw z4{up}...{left}z5..tension atleast 2..{down}z6
+ ..tension atleast 3 and atleast 2..z7{right}...{up}z8; % diagonals
+math_fit(.5u#,.2h#*slant+.5u#); labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Calligraphic L";
+beginchar("L",10.8u#,cap_height#,0);
+italcorr .2h#*slant+.5u#;
+adjust_fit(0,0); pickup heavy_cal.nib;
+x1=.2w; x2=x1+.3w; rt x3=x2+.25w; lft x4=0;
+x5=.8[x4,x6]; rt x6=w; x7=.2[x4,x5];
+y1=.4h-o; top y2=h+o; y3=.8h; bot y4=bot y5=-o;
+y6=.2h-o; y7=9/70h-o;
+path p; p=z4...z7{right}..{right}z5...{up}z6; draw p; % arm
+draw z4{dir .75angle(direction 0 of p)}
+ ...z1{up}...z2{right}...{down}z3; % stem and flourish
+math_fit(.5u#,ic#); labels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Calligraphic M";
+beginchar("M",19.8u#,cap_height#,0);
+italcorr max(h#*slant-u#,.75cap_curve#)+.5cap_curve#+.5u#;
+adjust_fit(-.1w#,0); pickup med_cal.nib;
+(z20)t_=(z5)t_+penoffset down of currentpen
+ =(z4)t_+penoffset down of pen_[tilted.nib];
+z6=.3[z7,z5]-bend; z9=.3[z8,z10]+.5bend; z12=.3[z13,z11]-bend;
+x7=.5[x2,x13]; bot y7=.05h; top y5=h+o;
+(z0)t_=(z7)t_+penoffset right of currentpen
+ =(z8)t_+penoffset right of pen_[tilted.nib];
+pickup cal.nib;
+(z30)t_=(z11)t_+penoffset up of currentpen
+ =(z10)t_+penoffset up of pen_[tilted.nib];
+x13=w; bot y13=bot_flourish_line;
+pickup tilted.nib;
+lft x1=.1w; x2=.2w; x4=.2[x2,x7]; x10=.8[x7,x13];
+y1=.05h+y2; bot y2=bot_flourish_line; top y10=h+o;
+z3=whatever[z2,z4]+2bend; y3=y6;
+draw\\(z1..tension1.2..{right}z2) softjoin flex(z2,z3,z4); % left stem
+erase fill z20--(.5w,y20)--(.5w,top y4)--(x20-4u,top y4)--cycle;
+pickup med_cal.nib;
+draw flex(z5,z6,z7); % left diagonal
+pickup cal.nib;
+draw flex(z11,z12,z13) softjoin (z13--z13+cal.extension); % right stem
+pickup tilted.nib;
+path p; p=flex(z8,z9,z10);
+erase fill z0--(x0,y0-.5h)--(x9,y0-.5h)--subpath(1,0) of p--cycle;
+erase fill z30--(x30,y30+.5h)--(x9,y30+.5h)--subpath(1,2) of p--cycle;
+draw p; % right diagonal
+math_fit(.5u#-.05h#*slant,ic#);
+labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,20,30); endchar;
+
+cmchar "Calligraphic N";
+beginchar("N",9u#,cap_height#,0);
+italcorr h#*slant+.5u#;
+adjust_fit(2u#,2.5u#); pickup med_cal.nib;
+(z0)t_=(z5)t_+penoffset down of currentpen
+ =(z4)t_+penoffset down of pen_[tilted.nib];
+(z20)t_=(z7)t_+penoffset up of currentpen
+ =(z8)t_+penoffset up of pen_[tilted.nib];
+z6=.3[z7,z5]-bend; rt z7=(w,0); top y5=h+o;
+pickup tilted.nib;
+lft x1=x2-2u; x2=-u; x4=0; x10=w; rt x11=w+3u;
+y1=y2+.05h; bot y2=bot_flourish_line;
+y3=y6; z3=whatever[z2,z4]+2bend;
+y10=h; z9=.7[z8,z10]-.5bend; bot y11=h;
+draw\\(z1..tension1.2..{right}z2) softjoin flex(z2,z3,z4); % left stem
+draw flex(z8,z9,z10)...{right}z11; % right stem
+pickup med_cal.nib;
+erase fill z0--(.5w,y0)--(.5w,1.5h)--(x0-4u,1.5h)--cycle;
+erase fill z20--(.5w,y20)--(.5w,-.5h)--(x20+4u,-.5h)--cycle;
+draw flex(z5,z6,z7); % diagonal
+math_fit(.5u#-.05h#*slant,.3h#*slant);
+labels(0,1,2,3,4,5,6,7,8,9,10,11,20); endchar;
+
+cmchar "Calligraphic O";
+beginchar("O",12.6u#,cap_height#,0);
+italcorr .7h#*slant+.5u#;
+adjust_fit(0,0); pickup cal.nib;
+x1=.3w; lft x2=0; x3=.5w; rt x4=w; x5=.6w; lft x6=.27w;
+top y1=top y5=h+o; y2=.55h; bot y3=-o; y4=.5h; y6=y2;
+path p; p=z1...z2{down}...z3{right}...z4{up}...z5{left}...{down}z6;
+draw subpath(0,4.8) of p; % bowl
+math_fit(.5u#-.3h#*slant,ic#-.5u#);
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Calligraphic P";
+beginchar("P",9u#,cap_height#,0);
+italcorr .8h#*slant+.5u#;
+adjust_fit(4u#,0); pickup cal.nib;
+lft x1=lft x3=0; x4=x6=.3[x1,x5]; rt x5=w;
+top y1=top y4=h; y3=-o; y5=.55[y6,y4]; bot y6=.3h;
+z2=.5[z3,z1]+bend;
+draw flex(z1,z2,z3); % stem
+draw z1{left}...{down}z1-flourish_change; % swash
+draw z1---z4...z5{down}...{left}z6; % lobe
+math_fit(.5u#-.8h#*slant,.5ic#); labels(1,2,3,4,5,6); endchar;
+
+cmchar "Calligraphic Q";
+beginchar("Q",11.7u#,cap_height#,.5desc_depth#);
+italcorr max(0,.6h#*slant-2u#)+.5u#;
+adjust_fit(0,2u#); pickup cal.nib;
+x0=.6w; x1=.4w; lft x2=0; x3=.5w; rt x4=w; x5=.6w; lft x6=0;
+x7=.23w; rt x8=w; x9=x8+2u;
+y0=.25h; bot y1=.15h; y2=.45[y1,y3]; top y3=h+o; y4=.5h; bot y5=0;
+y6=y7=y9=0; y8=-d;
+draw z0...z1{left}...z2{up}...z3{right}
+ ...z4{down}...z5...{left}z7; % bowl
+draw z7{right}...z8{right}...{up}z9; % tail
+math_fit(.5u#,ic#); labels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Calligraphic R";
+beginchar("R",12.6u#,cap_height#,0);
+italcorr .2h#*slant;
+adjust_fit(4u#,0); pickup cal.nib;
+lft x1=lft x3=0; x4=1/4[x1,x5]; rt x5=.7w;
+x6=.4[x1,x5]; rt x7=.8w; rt x8=w;
+top y1=top y4=h; bot y3=bot y7=-o; y5=.55[y6,y4]; bot y6=.4h; y8=.15h;
+z2=.5[z3,z1]+bend;
+draw flex(z1,z2,z3); % stem
+draw z1{left}...{down}z1-flourish_change; % swash
+draw z1---z4....z5{down}...{left}z6; % lobe
+draw z6{right}..tension atleast 1.5..z7{right}..z8; % tail
+math_fit(.5u#-.8h#*slant,ic#); labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Calligraphic S";
+beginchar("S",9.9u#,cap_height#,0);
+italcorr max(.9h#*slant-.05w#,.3h#*slant)+.5u#;
+adjust_fit(0,0); pickup cal.nib;
+rt x0=rt x1=.95w; x2=.5[x3,x1]; lft x3=.15w; x4=.5[x6,x2];
+rt x5=w; x6=.5w; lft x7=0; lft x8=.075w;
+y0=.8h; y1=.9h; top y2=h+o; y3=.55[y4,y2]; y4=.55[y6,y2];
+y5=.45[y6,y4]; bot y6=-o; y7=.2h; y8=.35h;
+draw\\(z0--z1) softjoin (z1...z2{left}...z3{down}...z4...z5{down}
+ ...z6{left}...z7) softjoin (z7{up}...{right}z8); % stroke
+math_fit(.5u#-.3h#*slant,.3h#*slant+.5u#);
+labels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Calligraphic T";
+beginchar("T",13u#,cap_height#,0);
+italcorr h#*slant+.5u#;
+adjust_fit(0,-.5u#); pickup heavy_cal.nib;
+x1=.47w; x3=.5w; lft x4=0; x5=.25w; x6=.85w; rt x7=1.05w;
+top y1=h; bot y3=-.1h; y4=3/4h; top y5=top y6=h; top y7=1.05h;
+z2=.3[z3,z1]+bend;
+top y0=y1; x0=x2;
+z8=(2u,.2h);
+draw z0---z2...z3; % stem
+draw z4{curl 2}...z5{right}...z6{right}...{up}z7; % arms
+math_fit(.5u#-5/7h#*slant,-u#); labels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Calligraphic U";
+beginchar("U",11u#,cap_height#,0);
+italcorr h#*slant+.5u#;
+adjust_fit(0,0); pickup cal.nib;
+x1=x2-.15w; lft x2=.05w; x3=x2; x4=.25[x3,x6]; rt x6=rt x8=w;
+y1=y2-.05h; top y2=h; y3=.3w; bot y4=-o;
+top y6=h; bot y8=bot_flourish_line;
+z7=.3[z8,z6]-bend;
+draw z1...z2{right}..tension 2 and 1..z3{down}
+ ...{right}z4..tension atleast 1.5..{up}z6; % left stem and arc
+draw flex(z6,z7,z8) softjoin (z8--z8+cal.extension); % right stem
+math_fit(.5u#-min(.3h#*slant+.1w#,.95h#*slant),.5ic#);
+labels(1,2,3,4,6,7,8); endchar;
+
+cmchar "Calligraphic V";
+beginchar("V",11.25u#,cap_height#,0);
+italcorr .8h#*slant+.5u#;
+adjust_fit(0,0); pickup med_cal.nib;
+x1=0; top y1=h; z3=(.48w,0);
+z0.t_=z2.t_+penoffset down of currentpen
+ =z3.t_+penoffset down of pen_[tilted.nib];
+draw z1{right}..tension atleast 1 and infinity..z2; % left diagonal
+pickup tilted.nib; rt x4=w; x5=x4-.2w; top y4=.8h; top y5=h;
+path p; p=z3..tension atleast 3 and 1..{up}z4;
+erase fill z0--(x0,y0-.5h)--(x4,y0-.5h)--(x4+eps,y4)--reverse p--cycle;
+draw p...{left}z5; % right diagonal
+math_fit(.5u#+.5cap_curve#-h#*slant,.5ic#); labels(0,1,2,3,4,5); endchar;
+
+cmchar "Calligraphic W";
+beginchar("W",18u#,cap_height#,0);
+italcorr .8h#*slant+.5u#;
+adjust_fit(0,0); pickup med_cal.nib;
+x1=0; x3=.5[x1,x6]; x6=.52w; x9=.58[x6,x10]; y3=y9=0; top y1=top y6=h;
+z7=.5[z8,z6]+bend; z4=.5[z3,z5]+bend;
+(z0)t_=(z2)t_+penoffset down of currentpen
+ =(z3)t_+penoffset down of pen_[tilted.nib];
+(z20)t_=(z8)t_+penoffset down of currentpen
+ =(z9)t_+penoffset down of pen_[tilted.nib];
+draw z1{right}..tension atleast 1 and infinity..z2; % first diagonal
+pickup tilted.nib;
+x5=x6; rt x10=w; x11=x10-.1w; top y5=h; top y10=.8h; top y11=h;
+erase fill z0--(x0,y0-.5h)--(x5,y0-.5h)--z5..z4..z3--cycle;
+draw z3..z4..z5; % second diagonal
+pickup med_cal.nib;
+erase fill\\(.3w,bot y6)--(w,bot y6)--(w,top y6)--(.3w,top y6)--cycle;
+draw z6..z7..z8; % third diagonal
+pickup tilted.nib; path p; p=z9..tension atleast 3 and 1..{up}z10;
+erase fill z20--(x20,y20-.5h)--(x10,y20-.5h)--(x10+eps,y10)
+ --reverse p--cycle;
+draw p..{left}z11; % fourth diagonal
+math_fit(.5u#+.5cap_curve#-h#*slant,.5ic#);
+labels(0,1,2,3,4,5,6,7,8,9,10,11,20); endchar;
+
+cmchar "Calligraphic X";
+beginchar("X",11.4u#,cap_height#,0);
+italcorr h#*slant+.5u#;
+adjust_fit(0,0); pickup cal.nib;
+lft x1=.08w; lft x2=.2w; x4-x3=x2-x1; rt x4=w;
+h-y1=y4=1/9h; top y2=h; bot y3=0;
+draw z1{up}....z2{right}
+ ... .2[z2+(.1w,0),z3-(.1w,0)]---.8[z2+(.1w,0),z3-(.1w,0)]
+ ...{right}z3....{up}z4; % left diagonal
+x5=x6-u; rt x6=w; lft x7=0; x8=x7+u;
+top y5=h; y6=.85h; y7=h-y6; bot y8=0;
+draw z5{right}...z6{down}
+ ..tension atleast 3..{down}z7...{right}z8; % right diagonal
+math_fit(.5u#,1/7h#*slant+.5u#); labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Calligraphic Y";
+beginchar("Y",11.75u#,cap_height#,.5desc_depth#);
+italcorr .8h#*slant+.5u#;
+adjust_fit(0,0); pickup med_tilted.nib;
+rt x5=w; x6=x5-2.2u; top y5=.8h; top y6=h;
+x4=.4w; lft x3=.15w; y3=good.y 0; y4=good.y -d;
+path p; p=z3..z4{right}..tension atleast 3 and 1..z5{up}...{left}z6;
+pickup med_cal.nib; x1=x2-u; y1=y2-.05h; lft x2=.6u; top y2=h;
+draw z1...z2{right}..tension atleast 1 and infinity
+ ..rt point 4/3 of p; % left diagonal
+erase fill subpath(2,1) of p--(x5,y4)--(x5+eps,y5)--cycle;
+pickup med_tilted.nib; draw p; % right diagonal
+math_fit(max(-1.2u#,.9u#-.95h#*slant),.5ic#); labels(1,2,3,4,5,6); endchar;
+
+cmchar "Calligraphic Z";
+beginchar("Z",10.4u#,cap_height#,0);
+italcorr h#*slant+.5u#;
+adjust_fit(0,0); pickup heavy_cal.nib;
+lft x1=.05w; x2=.4w; rt x3=w; lft x7=0; x8=.8[x7,x9]; rt x9=1.1w;
+top y1=58/70h; top y2=top y3=h; bot y7=bot y8=0; bot y9=15/70h;
+z5=.55[z7,z3]+bend;
+x10=x5-2.5u; x11=x5+2u; x12=.2[x3,x2]; x13=.2[x7,x8];
+y10=y5; bot y11=y10-6/70h; y12=64/70h; y13=6/70h;
+draw z1{up}...z2{right}...{right}z12...z3; % upper arm
+draw flex(z3,z5,z7); % diagonal
+draw z7...z13{right}...{right}z8...{up}z9; % lower arm
+pickup light_cal.nib;
+draw z10...z5{right}...{down}z11; % bar
+math_fit(.5u#,.6ic#); labels(1,2,3,5,7,8,9,10,11,12,13); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmb10.mf b/Master/texmf-dist/fonts/source/public/cm/cmb10.mf
new file mode 100644
index 00000000000..f6ce11d4f3a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmb10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmb10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMB"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=10/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbase.mf b/Master/texmf-dist/fonts/source/public/cm/cmbase.mf
new file mode 100644
index 00000000000..ad4c58b878f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbase.mf
@@ -0,0 +1,704 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbase.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% The base file for Computer Modern (a supplement to {\tt plain.mf})
+
+cmbase:=1; % when |cmbase| is known, this file has been input
+
+let cmchar=\; % `|cmchar|' should precede each character
+let generate=input; % `|generate|' should follow the parameters
+
+autorounding:=0; smoothing:=0; % we do our own rounding
+def autorounded = interim autorounding:=2 enddef;
+
+newinternal slant,fudge,math_spread,superness,superpull,beak_darkness,ligs;
+boolean square_dots,hefty,serifs,
+ monospace,variant_g,low_asterisk,math_fitting;
+
+boolean dark,dark.dark,skewed,skewed.skewed; % for fast option testing
+dark=skewed=false; dark.dark=skewed.skewed=true;
+
+vardef Vround primary y = y_:=vround y;
+ if y_<min_Vround: min_Vround else: y_ fi enddef;
+newinternal y_,min_Vround;
+
+vardef serif(suffix $,$$,@) % serif at |z$| for stroke from |z$$|
+ (expr darkness,jut) suffix modifier =
+ pickup crisp.nib; numeric bracket_height; pair downward;
+ bracket_height=if dark.modifier: 1.5 fi\\ bracket;
+ if y$<y$$: y@2=min(y$+bracket_height,y$$);
+ top y@1-slab=bot y@0+eps=tiny.bot y$; downward=z$-z$$;
+ if y@1>y@2: y@2:=y@1; fi
+ else: y@2=max(y$-bracket_height,y$$);
+ bot y@1+slab=top y@0-eps=tiny.top y$; downward=z$$-z$;
+ if y@1<y@2: y@2:=y@1; fi fi
+ y@3=y@2; z@3=whatever[z$,z$$];
+ if jut<0: z@2+penoffset downward of currentpen =
+ z$l+penoffset downward of pen_[tiny.nib]+whatever*downward;
+ lft x@0=lft x@1=tiny.lft x$l+jut;
+ if x@3<x@2+eps: x@3:=x@2+eps; fi
+ else: z@2-penoffset downward of currentpen =
+ z$r-penoffset downward of pen_[tiny.nib]+whatever*downward;
+ rt x@0=rt x@1=tiny.rt x$r+jut;
+ if x@3>x@2-eps: x@3:=x@2-eps; fi fi
+ pair corner; ypart corner=y@1; corner=z@2+whatever*downward;
+ filldraw z@2{z$-z$$}
+ ...darkness[corner,.5[z@1,z@2] ]{z@1-z@2}
+ ...{jut,0}z@1--z@0--(x$,y@0)--z@3--cycle; % the serif
+ labels (@1,@2); enddef;
+
+def dish_serif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ serif($,$$,@,left_darkness,-left_jut) modifier;
+ serif($,$$,@@,right_darkness,right_jut) modifier;
+ if dish>0: pickup tiny.nib; numeric dish_out,dish_in;
+ if y$<y$$: dish_out=bot y$; dish_in=dish_out+dish; let rev_=reverse;
+ else: dish_out=top y$; dish_in=dish_out-dish; let rev_=relax; fi
+ erase fill rev_
+ ((x@1,dish_out)..(x$,dish_in){right}..(x@@1,dish_out)--cycle);
+ fi enddef;
+
+def nodish_serif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ serif($,$$,@,left_darkness,-left_jut) modifier;
+ serif($,$$,@@,right_darkness,right_jut) modifier; enddef;
+
+vardef sloped_serif.l(suffix $,$$,@)(expr darkness,jut,drop) =
+ pickup crisp.nib; pos@2(slab,90);
+ lft x@0=tiny.lft x$l; rt x@1=tiny.rt x$r; top y@1=tiny.top y$r;
+ lft x@2=lft x@0-jut; y@2r=y@1-drop;
+ y@0=y@2l-bracket-eps;
+ if drop>0: erase fill z@1--top z@1
+ --(x@2r,top y@1)--z@2r--cycle; fi % erase excess at top
+ filldraw z@1--z@2r--z@2l{right}
+ ...darkness[(x@0,y@2l),.5[z@2l,z@0] ]{z@0-z@2l}
+ ...{down}z@0--(x@1,y@0)--cycle; % sloped serif
+ labels(@0,@1,@2); enddef;
+
+vardef sloped_serif.r(suffix $,$$,@)(expr darkness,jut,drop) =
+ pickup crisp.nib; pos@2(slab,-90);
+ rt x@0=tiny.rt x$r; lft x@1=tiny.lft x$l; bot y@1=tiny.bot y$l;
+ rt x@2=rt x@0+jut; y@2r=y@1+drop;
+ y@0=y@2l+bracket+eps;
+if drop>0: erase fill z@1--bot z@1
+ --(x@2r,bot y@1)--z@2r--cycle; fi % erase excess at bottom
+ filldraw z@1--z@2r--z@2l{left}
+ ...darkness[(x@0,y@2l),.5[z@2l,z@0] ]{z@0-z@2l}
+ ...{up}z@0--(x@1,y@0)--cycle; % sloped serif
+ labels(@0,@1,@2); enddef;
+
+vardef term.l(suffix $,$$)(expr d,t,s)= % ``robust'' sans-serif terminal
+ path p_; p_=z$l{d}..tension t..z$$l;
+ pair d_; d_=(x$$l-x$l,s*(y$$l-y$l));
+ if (abs angle direction 1 of p_ < abs angle d_)<>(x$l<x$$l):
+ p_:=z$l{d}..tension atleast t..{d_}z$$l; fi
+ p_ enddef;
+vardef term.r(suffix $,$$)(expr d,t,s)=
+ path p_; p_=z$r{d}..tension t..z$$r;
+ pair d_; d_=(x$$r-x$r,s*(y$$r-y$r));
+ if (abs angle direction 1 of p_ < abs angle d_)<>(x$r<x$$r):
+ p_:=z$r{d}..tension atleast t..{d_}z$$r; fi
+ p_ enddef;
+def rterm=reverse term enddef;
+
+vardef arm(suffix $,$$,@)(expr darkness,jut) = % arm from |z$| to |z$$|
+ x@0=good.x(x$$r-jut); y@0=y$r;
+ if serifs: y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0);
+ z@2=.5[z$l,z@1];
+ path p_; p_= z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ]...z@2
+ ---z$l--z$r--z@0--z$$r--cycle;
+ if (y$$>y$) <> (ypart precontrol 1 of p_ > ypart postcontrol 1 of p_):
+ p_:=z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ]
+ ---z$l--z$r--z@0--z$$r--cycle; fi
+ filldraw p_; % arm and beak
+ else: filldraw z$l--z$r--z@0--z$$r--cycle; fi % sans-serif arm
+ penlabels(@0,@1,@2); enddef;
+
+def pi_stroke = pickup fine.nib;
+ pos1(hair,0); pos2(vstem,-90); pos3(vstem,-90);
+ x1-.5hair=hround -.5hair; x2=2u; x3=w-1.5u;
+ y1=x_height-x_height/3.141592653589793; y2=y3; top y3l=x_height;
+ filldraw circ_stroke z3e---z2e...{x1-x2,3.14159(y1-y2)}z1e enddef;
+
+def bulb(suffix $,$$,$$$) =
+ z$$$r=z$$r;
+ path_.l:=z$l{x$$r-x$r,0}...{0,y$$r-y$r}z$$l;
+ filldraw path_.l--z$$r{0,y$r-y$$r}...{x$r-x$$r,0}z$r--cycle; % link
+ path_.r:=z$$$l{0,y$r-y$$r}..z$$$r{0,y$$r-y$r}; % near-circle
+ filldraw subpath(0,xpart(path_.r intersectiontimes path_.l)) of path_.r
+ --z$$r{0,y$$r-y$r}..cycle; % bulb
+ enddef;
+
+def v_bulb(suffix $,$$)= % |pos$| is known
+ y$$+.5curve=x_height+oo; x$$+.5curve=w-u;
+ numeric theta; theta=angle(4(x$-x$$),y$-y$$); pos$$(curve,theta+90);
+ filldraw z$$l{dir theta}..tension atleast 1 and 1..{down}z$l
+ --z$r{up}...{-dir theta}z$$r..cycle; % bulb
+ enddef;
+
+def dot(suffix $,$$) =
+ filldraw if square_dots: (x$l,y$$l)--(x$r,y$$l)
+ --(x$r,y$$r)--(x$l,y$$r)--cycle % squarish dot
+ else: z$l...z$$l...z$r...z$$r...cycle fi % roundish dot
+ enddef;
+
+def comma(suffix $,@)(expr dot_size,jut,depth) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1-depth;
+ x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-45);
+ z@1r=z$r; rt x@2r=hround(x$+.5dot_size+jut)+2eps; x@3=x$-.5u;
+ y@2=1/3[y@1,y@3]; bot y@3r=vround(y$-.5dot_size-depth);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ filldraw stroke z@1e{right}...z@2e{down}...z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+def ammoc(suffix $,@)(expr dot_size,jut,depth) = % reversed comma
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_top_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_top_,0); y@0=y$; y@1=y$r; y@2=y@1+depth;
+ x@0l=x@1l=x$'l; lft x@2l=good.x(x$+eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-45);
+ z@1l=z$l; lft x@2l=hround(x$-.5dot_size-jut)-2eps; x@3=x$+.5u;
+ y@2=1/3[y@1,y@3]; top y@3l=vround(y$+.5dot_size+depth);
+ y_:=ypart((z@1{left}...z@2{up}...z@3)
+ intersectiontimes (z$r{left}..{right}z$l)); if y_<0: y_:=1; fi
+ filldraw z$l{right}..subpath (0,y_) of (z$r{left}..{right}z$l)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{up}...z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+%%% @ from to %%%% temporary formatting change
+vardef diag_in(suffix from,$)(expr sharpness)(suffix $$) =
+ pickup tiny.nib; save from_x,y_;
+ if y.from>y$: bot else: top fi\\ y_=y$;
+ (from_x,y_)=whatever[z.from,z$];
+ sharpness[z$,(from_x,y_)]{z$-z.from}
+ ...{z$$-z$}z$+sharpness*length(z$-(from_x,y_))*unitvector(z$$-z$) enddef;
+
+vardef diag_out(suffix $)(expr sharpness)(suffix $$,to) =
+ pickup tiny.nib; save to_x,y_;
+ if y.to>y$: bot else: top fi\\ y_=y$;
+ (to_x,y_)=whatever[z$$,z.to];
+ z$$-sharpness*length(z$$-(to_x,y_))*unitvector(z$$-z$){z$$-z$}
+ ...{z.to-z$$}sharpness[z$$,(to_x,y_)] enddef;
+
+vardef diag_end(suffix from,$)(expr sharpness_in,sharpness_out)(suffix $$,to)=
+ save from_x,to_x,y_,x_,xx_;
+ if y.from>y$: tiny.bot else: tiny.top fi\\ y_=y$; % we assume that |y$=y$$|
+ (from_x,y_)=whatever[z.from,z$]; (to_x,y_)=whatever[z$$,z.to];
+ if x$$>x$: x_=x$+sharpness_in*length(z$-(from_x,y_));
+ xx_=x$$-sharpness_out*length(z$$-(to_x,y_));
+ if xx_<x_: xx_:=x_:=.5[xx_,x_]; fi
+ else: x_=x$-sharpness_in*length(z$-(from_x,y_));
+ xx_=x$$+sharpness_out*length(z$$-(to_x,y_));
+ if xx_>x_: xx_:=x_:=.5[xx_,x_]; fi fi
+ sharpness_in[z$,(from_x,y_)]{z$-z.from}
+ ...{z$$-z$}(x_,y$)..(xx_,y$){z$$-z$}
+ ...{z.to-z$$}sharpness_out[z$$,(to_x,y_)] enddef;
+%%% at from to %%%% restore normal formatting
+
+vardef special_diag_end(suffix $$,$,@,@@) = % for top middle of w's
+ if x@r<=x$r: diag_end($$r,$r,1,1,@l,@@l)
+ else: z0=whatever[z$$l,z$l]=whatever[z@l,z@@l];
+ diag_end($$r,$r,1,1,$l,0)--z0 fi enddef;
+
+def prime_points_inside(suffix $,$$) =
+ theta_:=angle(z$r-z$l);
+ penpos$'(whatever,theta_);
+ if y$$>y$: z$'=(0,pen_top) rotated theta_ + whatever[z$l,z$r];
+ theta_:=angle(z$$-z$)-90;
+ else: z$'=(0,pen_bot) rotated theta_ + whatever[z$l,z$r];
+ theta_:=angle(z$$-z$)+90; fi
+ z$'l+(pen_lft,0) rotated theta_=z$l+whatever*(z$-z$$);
+ z$'r+(pen_rt,0) rotated theta_=z$r+whatever*(z$-z$$);
+ enddef;
+
+def ellipse_set(suffix $,@,@@,$$) = % given |z$,x@,z$$|, find |y@| and |z@@|
+% such that the path |z${x@-x$,0}..z@{0,y@-y$}..{z$$-z@@}z@@|
+% is consistent with an ellipse
+% and such that the line |z@@--z$$| has a given |slope|
+ alpha_:=slope*(x@-x$); beta_:=y$$-y$-slope*(x$$-x$);
+ gamma_:=alpha_/beta_;
+ y@-y$=.5(beta_-alpha_*gamma_);
+ x@@-x$=-2gamma_*(x@-x$)/(1+gamma_*gamma_);
+ y@@-y$$=slope*(x@@-x$$) enddef;
+
+vardef diag_ratio(expr a,b,y,c) = % assuming that $a>\vert b/y\vert$,
+% compute the value $\alpha=(x\6{++}y)/y$ such that $ax+b\alpha=c$
+ numeric aa_,bb_,cc_; bb_=b/y; cc_=c/y; aa_=a*a-bb_*bb_;
+ (a*(cc_++sqrt aa_)-bb_*cc_)/aa_ enddef;
+
+def f_stroke(suffix $,$$,@,left_serif,right_serif)(expr left_jut,right_jut)=
+ pickup tiny.nib; bot y$=0;
+ penpos@0(x$r-x$l,0); x@0l=x$l; top y@0=x_height;
+ filldraw stroke z$e--z@0e; % stem
+ pickup fine.nib; pos@0'(x$r-x$l-(hround stem_corr)+tiny,180);
+ y@0'=y@0; lft x@0'r=tiny.lft x$l;
+ penpos@1(x@0'l-x@0'r,180); x@1=x@0'; y@1+.5vair=.5[x_height,h];
+ pos@2(vair,90); top y@2r=h+oo;
+ if serifs: x@2=.6[x@1,x$$r]; (x@,y@2r)=whatever[z@2l,z@1l];
+ x@2r:=min(x@,.5[x@2,x$$r]); pos@3(hair,0); bulb(@2,@3,$$); % bulb
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2); % arc
+ dish_serif($,@0,left_serif,1/3,left_jut,right_serif,1/3,right_jut); % serif
+ else: x@2=.6[x@1,x$$]; y@1l:=1/3[y@1l,y@2l];
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2)
+ & term.e(@2,$$,right,.9,4); fi % arc and terminal
+ penlabels(@0,@1,@2); enddef;
+
+def h_stroke(suffix $,@,@@,$$) =
+ penpos$$(x@@r-x@@l,0); x$$=x@@; bot y$$=0;
+ y@@=1/3[bar_height,x_height];
+ penpos$''(x$r-x$l,0); x$''=x$; y$''=1/8[bar_height,x_height];
+ filldraw stroke z$''e--z$e; % thicken the lower left stem
+ penpos@0(min(rt x$r-lft x$l,thin_join)-fine,180); pickup fine.nib;
+ rt x@0l=tiny.rt x$r; y@0=y$'';
+ pos@1(vair,90); pos@@'(x@@r-x@@l+tiny,0); z@@'=z@@;
+ x@1=.5[rt x@0l,rt x@@'r]; top y@1r=x_height+oo;
+ (x@,y@1l)=whatever[z@1r,z@0l]; x@1l:=x@;
+ filldraw stroke z@0e{up}...{right}z@1e
+ &{{interim superness:=hein_super; super_arc.e(@1,@@')}}; % arch
+ pickup tiny.nib; filldraw stroke z@@e--z$$e; % right stem
+ labels(@0); penlabels(@1); enddef;
+
+def hook_out(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ pos$(stem,0); pos$$(vair,90);
+ x$$$:=hround(x$$$+.5hair-eps)-.5hair; pos$$$(hair,180);
+ y$=1/4x_height; bot y$$l=-oo; y$$$=1/3x_height;
+ if skewed.modifier: x$$=x$+1.25u;
+ filldraw stroke z$e{-u,-x_height}...z$$e{right}...{up}z$$$e; % hook
+ else: x$$=x$+1.5u;
+ filldraw stroke z$e{down}...z$$e{right}
+ ...{x$$$-(x$+2.5u),x_height}z$$$e; fi enddef; % hook
+
+def hook_in(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ x$:=hround(x$-.5hair)+.5hair; pos$(hair,180);
+ pos$$(vair,90); pos$$$(stem,0);
+ y$=2/3x_height; top y$$r=x_height+oo; y$$$=3/4x_height;
+ if skewed.modifier: x$$=x$$$-1.25u;
+ filldraw stroke z$e{up}...z$$e{right}...{-u,-x_height}z$$$e; % hook
+ else: x$$=x$$$-1.5u;
+ filldraw stroke z$e{x$$$-2.5u-x$,x_height}
+ ...z$$e{right}...{down}z$$$e; fi enddef; % hook
+
+def ital_arch(suffix $,$$,$$$) = % |z$| and |z$$$| (only) are known
+ pos$'(hair,180); z$'=z$;
+ pos$$(vair,90); pos$$$(stem,0);
+ {{interim superness := more_super; x$$=.6[x$,x$$$];
+ top y$$r=x_height+oo; y$$$=.65x_height;
+ filldraw stroke z$'e{up}...super_arc.e($$,$$$);}} enddef; % stroke
+
+def compute_spread(expr normal_spread,big_spread)=
+ spread#:=math_spread[normal_spread,big_spread];
+ spread:=2ceiling(spread#*hppp/2)+eps; enddef;
+
+def v_center(expr h_sharp) =
+ .5h_sharp+math_axis#, .5h_sharp-math_axis# enddef;
+
+def circle_points =
+ x4=x8=.5[x2,x6]; x1=x3=superness[x4,x2]; x5=x7=superness[x4,x6];
+ y2=y6=.5[y4,y8]; y1=y7=superness[y2,y8]; y3=y5=superness[y2,y4];
+ enddef;
+def draw_circle =
+ draw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle enddef;
+
+def left_paren(expr min_breadth, max_breadth) =
+ pickup fine.nib; pos1(hround min_breadth,0);
+ pos2(hround max_breadth,0); pos3(hround min_breadth,0);
+ rt x1r=rt x3r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u;
+ top y1=h; y2=.5[y1,y3]; bot y3=1-d;
+ filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+ penlabels(1,2,3); enddef;
+
+def right_paren(expr min_breadth, max_breadth) =
+ pickup fine.nib; pos1(hround min_breadth,0);
+ pos2(hround max_breadth,0); pos3(hround min_breadth,0);
+ lft x1l=lft x3l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u);
+ top y1=h; y2=.5[y1,y3]; bot y3=1-d;
+ filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+ penlabels(1,2,3); enddef;
+
+def left_bracket(expr breadth,do_top,do_bot) =
+ pickup crisp.nib;
+ numeric thickness; thickness=hround breadth;
+ pos1(thickness,0); pos2(thickness,0);
+ top y1=h; bot y2=1-d; lft x1l=lft x2l=hround(2.5u-.5thickness);
+ filldraw stroke z1e--z2e; % stem
+ pos3(thickness,90); pos4(thickness,90);
+ pos5(thickness,90); pos6(thickness,90);
+ x3=x5=x1l; rt x4=rt x6=hround(w-.75u+.5thickness);
+ y3r=y4r=y1; y5l=y6l=y2;
+ if do_top: filldraw stroke z3e--z4e; fi % upper bar
+ if do_bot: filldraw stroke z5e--z6e; fi % lower bar
+ penlabels(1,2,3,4,5,6); enddef;
+
+def right_bracket(expr breadth,do_top,do_bot) =
+ pickup crisp.nib;
+ numeric thickness; thickness=hround breadth;
+ pos1(thickness,0); pos2(thickness,0);
+ top y1=h; bot y2=1-d; rt x1r=rt x2r=hround(w-2.5u+.5thickness);
+ filldraw stroke z1e--z2e; % stem
+ pos3(thickness,90); pos4(thickness,90);
+ pos5(thickness,90); pos6(thickness,90);
+ x3=x5=x1r; lft x4=lft x6=hround(.75u-.5thickness);
+ y3r=y4r=y1; y5l=y6l=y2;
+ if do_top: filldraw stroke z3e--z4e; fi % upper bar
+ if do_bot: filldraw stroke z5e--z6e; fi % lower bar
+ penlabels(1,2,3,4,5,6); enddef;
+
+def left_curly(expr min_breadth, max_breadth) =
+ pickup fine.nib;
+ forsuffixes $=1,1',4,4',7,7': pos$(hround min_breadth,0); endfor
+ forsuffixes $=2,3,5,6: pos$(hround max_breadth,0); endfor
+ x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+ lft x4l=hround(1.5u-.5min_breadth); lft x2l=hround(.5w-.5max_breadth);
+ top y1=h; bot y7=1-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+ y1-y2=y3-y4=(y1-y4)/4;
+ y1-y1'=y4-y4'=y7'-y7=vround(min_breadth-fine);
+ filldraw z1l{3(x2l-x1l),y2-y1}...z2l---z3l...{3(x4l-x3l),y4-y3}z4l
+ --z4'l{3(x5l-x4l),y5-y4'}...z5l---z6l...{3(x7l-x6l),y7-y6}z7l
+ --z7r--z7'r{3(x6r-x7r),y6-y7'}...z6r---z5r
+ ...{3(x4r-x5r),.5[y4,y4']-y5}.5[z4r,z4'r]{3(x3r-x4r),y3-.5[y4,y4']}
+ ...z3r---z2r...{3(x1r-x2r),y1'-y2}z1'r--z1r--cycle; % stroke
+ penlabels(1,2,3,4,5,6,7); enddef;
+
+def right_curly(expr min_breadth, max_breadth) =
+ pickup fine.nib;
+ forsuffixes $=1,1',4,4',7,7': pos$(hround min_breadth,0); endfor
+ forsuffixes $=2,3,5,6: pos$(hround max_breadth,0); endfor
+ x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+ lft x1l=hround(1.5u-.5min_breadth); lft x2l=hround(.5w-.5max_breadth);
+ top y1=h; bot y7=1-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+ y1-y2=y3-y4=(y1-y4)/4;
+ y1-y1'=y4-y4'=y7'-y7=vround(min_breadth-fine);
+ filldraw z1r{3(x2r-x1r),y2-y1}...z2r---z3r...{3(x4r-x3r),y4-y3}z4r
+ --z4'r{3(x5r-x4r),y5-y4'}...z5r---z6r...{3(x7r-x6r),y7-y6}z7r
+ --z7l--z7'l{3(x6l-x7l),y6-y7'}...z6l---z5l
+ ...{3(x4l-x5l),.5[y4,y4']-y5}.5[z4l,z4'l]{3(x3l-x4l),y3-.5[y4,y4']}
+ ...z3l---z2l...{3(x1l-x2l),y1'-y2}z1'l--z1l--cycle; % stroke
+ penlabels(1,2,3,4,5,6,7); enddef;
+
+def left_angle(expr breadth) =
+ pickup pencircle scaled breadth;
+ x1=x3=good.x(w-u)+eps; lft x2=hround u-eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+ labels(1,2,3); enddef;
+
+def right_angle(expr breadth) =
+ pickup pencircle scaled breadth;
+ x1=x3=good.x u-eps; rt x2=hround(w-u)+eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+ labels(1,2,3); enddef;
+
+def big_slash(expr breadth) =
+ adjust_fit(-letter_fit#,-letter_fit#); pickup pencircle scaled breadth;
+ rt x1=hround(w-u); lft x2=hround u; top y1=h+eps; bot y2=1-d-eps;
+ draw z1--z2; % diagonal
+ labels(1,2); enddef;
+
+def big_blash(expr breadth) =
+ adjust_fit(-letter_fit#,-letter_fit#); pickup pencircle scaled breadth;
+ lft x1=hround u; rt x2=hround(w-u); top y1=h+eps; bot y2=1-d-eps;
+ draw z1--z2; % diagonal
+ labels(1,2); enddef;
+
+def big_sqrt =
+ adjust_fit(0,-letter_fit#); pickup rule.nib;
+ x1=good.x 4/9w; x2=good.x(w+.5); bot y1=-d; bot y2=0;
+ draw z1--z2; % diagonal
+ pickup crisp.nib; pos3(max(curve,rule_thickness),0);
+ x3l=1.5[x2,x1]; y3=.5[y1,y2];
+ pos4(rule_thickness,0); x4=x1; bot y4=-d;
+ pos5(vair,-45); x5l=good.x(x3l-u); z5l=whatever[z3r,z2];
+ z6=z5r+whatever*(z2-z3r)=whatever[z3l,z4l];
+ z7=whatever[z1,z2]=z3r+whatever*(z4l-z3l);
+ filldraw z5r--z6--z4l--z4--z7--z3r--z5l--cycle; % left diagonal and serif
+ penlabels(1,2,3,4,5,6,7); enddef;
+
+def big_hat =
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.6[vair,curve],90); top y2r=h+o; x2=.5w;
+ x1=w-x3=good.x -eps; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+ penlabels(1,2,3); enddef;
+
+def big_tilde =
+ adjust_fit(0,0); pickup crisp.nib;
+ numeric theta; theta=angle(1/6(w-vair),1/4(h-x_height));
+ numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=0; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+ penlabels(1,2,3,4); enddef;
+
+def beginarithchar(expr c) = % ensure consistent dimensions for $+$, $-$, etc.
+ if monospace: beginchar(c,14u#,27/7u#+math_axis#,27/7u#-math_axis#);
+ else: beginchar(c,14u#,6u#+math_axis#,6u#-math_axis#); fi
+ italcorr math_axis#*slant-.5u#;
+ adjust_fit(0,0); enddef;
+
+newinternal l,r,shrink_fit; % adjustments to spacing
+
+def do_expansion(expr expansion_factor) =
+ forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
+ $:=$.#*expansion_factor*hppp; endfor
+enddef;
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric charwd_in; charwd_in=charwd;
+ l:=-hround(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-letter_fit;
+ do_expansion(w/(charwd_in*hppp));
+ enddef;
+
+def mono_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric charwd_in; charwd_in=charwd;
+ numeric expansion_factor;
+ mono_charwd#=2letter_fit#
+ +expansion_factor*(charwd+left_adjustment+right_adjustment);
+ l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
+ interim xoffset:=-l;
+ r:=l+mono_charwd-shrink_fit;
+ w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
+ charwd:=mono_charwd#; charic:=mono_charic#;
+ do_expansion(w/(charwd_in*hppp));
+ enddef;
+
+extra_endchar:=extra_endchar&"r:=r+shrink_fit;w:=r-l;";
+
+def ignore_math_fit(expr left_adjustment,right_adjustment) = enddef;
+def do_math_fit(expr left_adjustment,right_adjustment) =
+ l:=l-hround(left_adjustment*hppp); interim xoffset:=-l;
+ charwd:=charwd+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ charic:=charic-right_adjustment;
+ if charic<0: charic:=0; fi enddef;
+def zero_width = charwd:=0; r:=l-shrink_fit enddef;
+def change_width = if not monospace: % change width by $\pm1$
+ if r+shrink_fit-l=floor(charwd*hppp): w:=w+1; r:=r+1;
+ else: w:=w-1; r:=r-1; fi fi enddef;
+def center_on(expr x) = if not monospace: % change width for symmetric fit
+ r:=r+2x-w; w:=2x; fi enddef;
+def padded expr del_sharp =
+ charht:=charht+del_sharp; chardp:=chardp+del_sharp enddef;
+
+def font_setup =
+ if monospace: let adjust_fit=mono_adjust_fit;
+ def mfudged=fudged enddef;
+ mono_charic#:=body_height#*slant;
+ if mono_charic#<0: mono_charic#:=0; fi
+ mono_charwd#:=9u#; define_whole_pixels(mono_charwd);
+ else: let adjust_fit=normal_adjust_fit;
+ def mfudged= enddef; fi
+ if math_fitting: let math_fit=do_math_fit
+ else: let math_fit=ignore_math_fit fi;
+ define_pixels(u,width_adj,serif_fit,cap_serif_fit,jut,cap_jut,beak,
+ bar_height,dish,bracket,beak_jut,stem_corr,vair_corr,apex_corr);
+ define_blacker_pixels(notch_cut,cap_notch_cut);
+ forsuffixes $=notch_cut,cap_notch_cut: if $<3: $:=3; fi endfor
+ define_whole_pixels(letter_fit,fine,crisp,tiny);
+ define_whole_vertical_pixels(body_height,asc_height,
+ cap_height,fig_height,x_height,comma_depth,desc_depth,serif_drop);
+ define_whole_blacker_pixels(thin_join,hair,stem,curve,flare,
+ dot_size,cap_hair,cap_stem,cap_curve);
+ define_whole_vertical_blacker_pixels(vair,bar,slab,cap_bar,cap_band);
+ define_corrected_pixels(o,apex_o);
+ forsuffixes $=hair,stem,cap_stem:
+ fudged$.#:=fudge*$.#; fudged$:=hround(fudged$.#*hppp+blacker);
+ forever: exitif fudged$>.9fudge*$; fudged$:=fudged$+1; endfor endfor
+ rule_thickness:=ceiling(rule_thickness#*hppp);
+ heavy_rule_thickness:=ceiling(3rule_thickness#*hppp);
+ oo:=vround(.5o#*hppp*o_correction)+eps;
+ apex_oo:=vround(.5apex_o#*hppp*o_correction)+eps;
+ lowres_fix(stem,curve,flare) 1.3;
+ lowres_fix(stem,curve) 1.2;
+ lowres_fix(cap_stem,cap_curve) 1.2;
+ lowres_fix(hair,cap_hair) 1.2;
+ lowres_fix(cap_band,cap_bar,bar,slab) 1.2;
+ stem':=hround(stem-stem_corr); cap_stem':=hround(cap_stem-stem_corr);
+ vair':=vround(vair+vair_corr);
+ vstem:=vround .8[vair,stem]; cap_vstem:=vround .8[vair,cap_stem];
+ ess:=(ess#/stem#)*stem; cap_ess:=(cap_ess#/cap_stem#)*cap_stem;
+ dw:=(curve#-stem#)*hppp; bold:=curve#*hppp+blacker;
+ dh#:=.6designsize;
+ stem_shift#:=if serifs: 2stem_corr# else: 0 fi;
+ more_super:=max(superness,sqrt .77superness);
+ hein_super:=max(superness,sqrt .81225258superness); % that's $2^{-.3}$
+ clear_pen_memory;
+ if fine=0: fine:=1; fi
+ forsuffixes $=fine,crisp,tiny:
+%%% fine $ %%%% temporary formatting convention for MFT
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor endfor
+%%% @ $ %%%% restore ordinary formatting for $
+ min_Vround:=max(fine.breadth,crisp.breadth,tiny.breadth);
+ if min_Vround<vround min_Vround: min_Vround:=vround min_Vround; fi
+ if flare<vround flare: flare:=vround flare; fi
+ forsuffixes $=vair,bar,slab,cap_bar,cap_band,vair',vstem,cap_vstem,bold:
+ if $<min_Vround: $:=min_Vround; fi endfor
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ math_axis:=good.y(math_axis#*hppp);
+ pickup pencircle scaled if hefty:(.6[vair,fudged.hair]) else:fudged.hair fi;
+ light_rule.nib:=savepen;
+ pickup pencircle xscaled cap_curve yscaled cap_hair rotated 30;
+ cal.nib:=savepen;
+ pair cal.extension; cal.extension:=(.75cap_curve,0) rotated 30;
+ pickup pencircle xscaled cap_curve yscaled cap_hair rotated 70;
+ tilted.nib:=savepen;
+ pickup pencircle xscaled curve yscaled cap_hair rotated 70;
+ med_tilted.nib:=savepen;
+ pickup pencircle xscaled cap_stem yscaled cap_hair rotated 30;
+ med_cal.nib:=savepen;
+ pickup pencircle xscaled stem yscaled cap_hair rotated 30;
+ light_cal.nib:=savepen;
+ pickup pencircle xscaled(cap_curve+dw) yscaled cap_hair rotated 30;
+ heavy_cal.nib:=savepen;
+ bot_flourish_line:=-.5u-o;
+ pair bend; bend=(.5u,0);
+ pair flourish_change; flourish_change=(4u,.2asc_height);
+ join_radius:=u;
+ currenttransform:=identity slanted slant
+ yscaled aspect_ratio scaled granularity;
+ if currenttransform=identity: let t_=relax
+ else: def t_ = transformed currenttransform enddef fi;
+ numeric paren_depth#; .5[body_height#,-paren_depth#]=math_axis#;
+ numeric asc_depth#; .5[asc_height#,-asc_depth#]=math_axis#;
+ body_depth:=desc_depth+body_height-asc_height;
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode: if mode<=smoke: shrink_fit:=0; fi fi
+ enddef;
+
+def shiftdef(suffix $)(expr delta) =
+ vardef $ primary x = x+delta enddef enddef;
+
+def makebox(text rule) =
+ for y=0,asc_height,body_height,x_height,bar_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(l/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+ enddef;
+def maketicks(text rule) =
+ for y=0,h.o_,-d.o_:
+ rule((l,y),(l+10,y)); rule((r-10,y),(r,y)); endfor % horizontals
+ for x=l,r:
+ rule((x,10-d.o_),(x,-d.o_)); rule((x,h.o_-10),(x,h.o_)); endfor % verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_-10),(r+charic*pt,h.o_)); fi % italic correction
+ enddef;
+rulepen:=pensquare;
+
+vardef stroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l:
+ errmessage "Beware: `stroke' isn't intended for cycles"; fi
+ path_.l -- reverse path_.r -- cycle enddef;
+
+vardef circ_stroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l:
+ errmessage "Beware: `stroke' isn't intended for cycles"; fi
+ path_.l -- reverse path_.r .. cycle enddef;
+
+vardef super_arc.r(suffix $,$$) = % outside of super-ellipse
+ pair center,corner;
+ if y$=y$r: center=(x$$r,y$r); corner=(x$r,y$$r);
+ else: center=(x$r,y$$r); corner=(x$$r,y$r); fi
+ z$.r{corner-z$.r}...superness[center,corner]{z$$.r-z$.r}
+ ...{z$$.r-corner}z$$.r enddef;
+
+vardef super_arc.l(suffix $,$$) = % inside of super-ellipse
+ pair center,corner;
+ if y$=y$r: center=(x$$l,y$l); corner=(x$l,y$$l);
+ else: center=(x$l,y$$l); corner=(x$$l,y$l); fi
+ z$l{corner-z$l}...superness[center,corner]{z$$l-z$l}
+ ...{z$$l-corner}z$$l enddef;
+
+vardef pulled_super_arc.r(suffix $,$$)(expr superpull) =
+ pair center,corner;
+ if y$=y$r: center=(x$$r,y$r); corner=(x$r,y$$r);
+ else: center=(x$r,y$$r); corner=(x$$r,y$r); fi
+ z$r{corner-z$r}...superness[center,corner]{z$$r-z$r}
+ ...{z$$r-corner}z$$r enddef;
+
+vardef pulled_super_arc.l(suffix $,$$)(expr superpull) =
+ pair center,corner,outer_point;
+ if y$=y$r: center=(x$$l,y$l); corner=(x$l,y$$l);
+ outer_point=superness[(x$$r,y$r),(x$r,y$$r)];
+ else: center=(x$l,y$$l); corner=(x$$l,y$l);
+ outer_point=superness[(x$r,y$$r),(x$$r,y$r)]; fi
+ z$l{corner-z$l}
+ ...superpull[superness[center,corner],outer_point]{z$$l-z$l}
+ ...{z$$l-corner}z$$l enddef;
+
+vardef pulled_arc@#(suffix $,$$) =
+ pulled_super_arc@#($,$$)(superpull) enddef;
+
+vardef serif_arc(suffix $,$$) =
+ z${x$$-x$,0}...(.75[x$,x$$],.25[y$,y$$]){z$$-z$}...{0,y$$-y$}z$$ enddef;
+
+vardef penpos@#(expr b,d) =
+ if known b: if b<=0: errmessage "bad penpos"; fi fi
+ (x@#r-x@#l,y@#r-y@#l)=(b,0) rotated d;
+ x@#=.5(x@#l+x@#r); y@#=.5(y@#l+y@#r) enddef;
+
+newinternal currentbreadth;
+vardef pos@#(expr b,d) =
+ if known b: if b<=currentbreadth: errmessage "bad pos"; fi fi
+ (x@#r-x@#l,y@#r-y@#l)=(b-currentbreadth,0) rotated d;
+ x@#=.5(x@#l+x@#r); y@#=.5(y@#l+y@#r) enddef;
+def numeric_pickup_ primary q =
+ currentpen:=pen_[q];
+ pen_lft:=pen_lft_[q]; pen_rt:=pen_rt_[q];
+ pen_top:=pen_top_[q]; pen_bot:=pen_bot_[q];
+ currentpen_path:=pen_path_[q];
+ if known breadth_[q]: currentbreadth:=breadth_[q]; fi enddef;
+
+vardef ic# = charic enddef;
+vardef h# = charht enddef;
+vardef w# = charwd enddef;
+vardef d# = chardp enddef;
+
+let {{=begingroup; let }}=endgroup;
+def .... = .. tension atleast .9 .. enddef;
+def less_tense = save ...; let ...=.... enddef;
+def ?? = hide(showvariable x,y) enddef;
+
+let semi_ =;; let colon_ = :; let endchar_ = endchar;
+def iff expr b = if b:let next_=use_it else:let next_=lose_it fi; next_ enddef;
+def use_it = let : = restore_colon; enddef;
+def restore_colon = let : = colon_; enddef;
+def lose_it = let endchar=fi; inner cmchar; let ;=fix_ semi_ if false enddef;
+def fix_=let ;=semi_; let endchar=endchar_; outer cmchar; enddef;
+def always_iff = let : = endgroup; killboolean enddef;
+def killboolean text t = use_it enddef;
+outer cmchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbcsc10.mf b/Master/texmf-dist/fonts/source/public/cm/cmbcsc10.mf
new file mode 100644
index 00000000000..22bf1c9747c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbcsc10.mf
@@ -0,0 +1,112 @@
+% This is CMBCSC10.MF in text format (RUM/KR)
+% This is CMCSC10.MF in text format, as of May 5, 1986.
+% Computer Modern Roman Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(*Delta x/*Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=0.4; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=120/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=64/36pt#; % height of crossbar in lower case e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=34/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=16.2/36pt#; % uppercase hairline breadth
+lower.stem#:=34/36pt#; % lowercase stem breadth
+lower.cap_stem#:=42/36pt#; % uppercase stem breadth
+lower.cap_curve#:=48/36pt#; % uppercase curve breadth
+lower.cap_ess#:=47/36pt#; % breadth in middle of uppercases
+
+lower.cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=8/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=14/36pt#; % serif and arm thickness
+lower.cap_bar#:=14/36pt#; % uppercase bar thickness
+lower.cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=2.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2.5/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbsy10.mf b/Master/texmf-dist/fonts/source/public/cm/cmbsy10.mf
new file mode 100644
index 00000000000..5e82330a048
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbsy10.mf
@@ -0,0 +1,97 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbsy10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Math Symbols 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBSY"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=45/36pt#; % lowercase curve breadth
+ess#:=36/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=50/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rule_thickness#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rule_thickness#+30/36pt#, % num2
+ math_axis#+1.51rule_thickness#+48/36pt#, % num3
+ -(math_axis#-3.51rule_thickness#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rule_thickness#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rule_thickness#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbtex10.mf b/Master/texmf-dist/fonts/source/public/cm/cmbtex10.mf
new file mode 100644
index 00000000000..5098fe395f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbtex10.mf
@@ -0,0 +1,78 @@
+% Dies ist CMBTEX10.MF vom 1.5.89 Ar (W. Kaspar; kaspar@uni-muenster.de)
+% Entstanden aus CMTEX10.MF
+% Computer Modern TeX extended ASCII characters for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBTEX"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=77/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=35/36pt#; % diameter of rounded corners
+fine#:=32/36pt#; % diameter of sharply rounded corners
+thin_join#:=34/36pt#; % width of extrafine details
+hair#:=34/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=44/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=53/36pt#; % diameter of dots
+cap_hair#:=42/36pt#; % uppercase hairline breadth
+cap_stem#:=42/36pt#; % uppercase stem breadth
+cap_curve#:=42/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=42/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=31/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=35/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=34/36pt#; % lowercase bar thickness
+slab#:=34/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=34/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=2/36pt#; % amount of overshoot for curves
+apex_o#:=1/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate texset % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbtt10.mf b/Master/texmf-dist/fonts/source/public/cm/cmbtt10.mf
new file mode 100644
index 00000000000..0323a17e6dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbtt10.mf
@@ -0,0 +1,78 @@
+% Dies ist CMBTT10.MF vom 1.5.89 Ar (W. Kaspar; kaspar@uni-muenster.de)
+% Entstanden aus CMTT10.MF
+% Computer Modern Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=77/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=35/36pt#; % diameter of rounded corners
+fine#:=32/36pt#; % diameter of sharply rounded corners
+thin_join#:=34/36pt#; % width of extrafine details
+hair#:=34/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=44/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=53/36pt#; % diameter of dots
+cap_hair#:=42/36pt#; % uppercase hairline breadth
+cap_stem#:=42/36pt#; % uppercase stem breadth
+cap_curve#:=42/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=42/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=31/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=35/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=34/36pt#; % lowercase bar thickness
+slab#:=34/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=34/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=2/36pt#; % amount of overshoot for curves
+apex_o#:=1/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbtt8.mf b/Master/texmf-dist/fonts/source/public/cm/cmbtt8.mf
new file mode 100644
index 00000000000..f71004239bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbtt8.mf
@@ -0,0 +1,78 @@
+% Dies ist CMBTT8.MF vom 1.5.89 Ar (W. Kaspar; kaspar@uni-muenster.de)
+% Entstanden aus CMTT8.MF
+% Computer Modern Typewriter Text for use with 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTT"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=200/36pt#; % height of tallest characters
+asc_height#:=176/36pt#; % height of lowercase ascenders
+cap_height#:=176/36pt#; % height of caps
+fig_height#:=176/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=88/36pt#; % axis of symmetry for math symbols
+bar_height#:=61/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=64/36pt#; % depth of lowercase descenders
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=32/36pt#; % diameter of rounded corners
+fine#:=29/36pt#; % diameter of sharply rounded corners
+thin_join#:=31/36pt#; % width of extrafine details
+hair#:=31/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=36/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=39/36pt#; % uppercase hairline breadth
+cap_stem#:=39/36pt#; % uppercase stem breadth
+cap_curve#:=39/36pt#; % uppercase curve breadth
+cap_ess#:=39/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=39/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=25/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=27/36pt#; % vertical protrusion of beak serifs
+vair#:=31/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=30/36pt#; % lowercase bar thickness
+slab#:=30/36pt#; % serif and arm thickness
+cap_bar#:=30/36pt#; % uppercase bar thickness
+cap_band#:=30/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=1.5/36pt#; % amount of overshoot for curves
+apex_o#:=1/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbtt9.mf b/Master/texmf-dist/fonts/source/public/cm/cmbtt9.mf
new file mode 100644
index 00000000000..883979214d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbtt9.mf
@@ -0,0 +1,78 @@
+% Dies ist CMBTT9.MF vom 1.5.89 Ar (W. Kaspar; kaspar@uni-muenster.de)
+% Entstanden aus CMTT9.MF
+% Computer Modern Typewriter Text for use with 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTT"; font_size 9pt#;
+
+u#:=18.9/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=225/36pt#; % height of tallest characters
+asc_height#:=198/36pt#; % height of lowercase ascenders
+cap_height#:=198/36pt#; % height of caps
+fig_height#:=198/36pt#; % height of numerals
+x_height#:=142/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=69/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=72/36pt#; % depth of lowercase descenders
+
+crisp#:=21/36pt#; % diameter of serif corners
+tiny#:=34/36pt#; % diameter of rounded corners
+fine#:=31/36pt#; % diameter of sharply rounded corners
+thin_join#:=33/36pt#; % width of extrafine details
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=38/36pt#; % lowercase curve breadth
+ess#:=31/36pt#; % breadth in middle of lowercase s
+flare#:=41/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=48/36pt#; % diameter of dots
+cap_hair#:=41/36pt#; % uppercase hairline breadth
+cap_stem#:=41/36pt#; % uppercase stem breadth
+cap_curve#:=41/36pt#; % uppercase curve breadth
+cap_ess#:=41/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=41/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=28/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=31/36pt#; % vertical protrusion of beak serifs
+vair#:=32/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=33/36pt#; % lowercase bar thickness
+slab#:=33/36pt#; % serif and arm thickness
+cap_bar#:=33/36pt#; % uppercase bar thickness
+cap_band#:=33/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=1.8/36pt#; % amount of overshoot for curves
+apex_o#:=1/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbx10.mf b/Master/texmf-dist/fonts/source/public/cm/cmbx10.mf
new file mode 100644
index 00000000000..8aec99faafa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbx10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbx10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBX"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbx12.mf b/Master/texmf-dist/fonts/source/public/cm/cmbx12.mf
new file mode 100644
index 00000000000..b92037cee7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbx12.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbx12.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBX"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=18.3/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbx5.mf b/Master/texmf-dist/fonts/source/public/cm/cmbx5.mf
new file mode 100644
index 00000000000..0f83a5b2a66
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbx5.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbx5.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Roman 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBX"; font_size 5pt#;
+
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123.5/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=80/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=40/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=13/36pt#; % protrusion of lowercase serifs
+cap_jut#:=19/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbx6.mf b/Master/texmf-dist/fonts/source/public/cm/cmbx6.mf
new file mode 100644
index 00000000000..b2ae33f1cf0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbx6.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbx6.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Roman 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBX"; font_size 6pt#;
+
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=96/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=49/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=36/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbx7.mf b/Master/texmf-dist/fonts/source/public/cm/cmbx7.mf
new file mode 100644
index 00000000000..41ccc45abb0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbx7.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbx7.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBX"; font_size 7pt#;
+
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=1/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=32/36pt#; % lowercase stem breadth
+curve#:=35/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=38/36pt#; % uppercase stem breadth
+cap_curve#:=41/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbx8.mf b/Master/texmf-dist/fonts/source/public/cm/cmbx8.mf
new file mode 100644
index 00000000000..707a0176990
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbx8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbx8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBX"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbx9.mf b/Master/texmf-dist/fonts/source/public/cm/cmbx9.mf
new file mode 100644
index 00000000000..2edcf267b60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbx9.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbx9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBX"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbxsl10.mf b/Master/texmf-dist/fonts/source/public/cm/cmbxsl10.mf
new file mode 100644
index 00000000000..a28a073be21
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbxsl10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbxsl10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Slanted Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBXSL"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmbxti10.mf b/Master/texmf-dist/fonts/source/public/cm/cmbxti10.mf
new file mode 100644
index 00000000000..382358e3afa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmbxti10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmbxti10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Bold Extended Text Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBXTI"; font_size 10pt#;
+
+u#:=21.2/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=11/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=53/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=49/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=50/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmcsc10.mf b/Master/texmf-dist/fonts/source/public/cm/cmcsc10.mf
new file mode 100644
index 00000000000..930a46172df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmcsc10.mf
@@ -0,0 +1,113 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmcsc10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmdunh10.mf b/Master/texmf-dist/fonts/source/public/cm/cmdunh10.mf
new file mode 100644
index 00000000000..113a22b7c1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmdunh10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmdunh10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Dunhill Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMDUNH"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=370/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=346/36pt#; % height of caps
+fig_height#:=332/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmex10.mf b/Master/texmf-dist/fonts/source/public/cm/cmex10.mf
new file mode 100644
index 00000000000..e69fc03effb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmex10.mf
@@ -0,0 +1,87 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmex10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Extension 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMEX"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 40/36pt#, % big\_op\_spacing1
+ 60/36pt#, % big\_op\_spacing2
+ 72/36pt#, % big\_op\_spacing3
+ 216/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmexb10.mf b/Master/texmf-dist/fonts/source/public/cm/cmexb10.mf
new file mode 100644
index 00000000000..a1edddffe1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmexb10.mf
@@ -0,0 +1,85 @@
+% Computer Modern Math Extension Bold 10 point
+% Modification of cmex10 by Sami Sozuer. August 10 1994.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMEXB"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width, must be the same as cmex10 (circle stuff)
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9.5/36pt#; % width of extrafine details
+hair#:=13.5/36pt#; % lowercase hairline breadth
+stem#:=37/36pt#; % lowercase stem breadth
+curve#:=42/36pt#; % lowercase curve breadth
+ess#:=40/36pt#; % breadth in middle of lowercase s
+flare#:=46/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=48/36pt#; % diameter of dots
+cap_hair#:=16/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=50/36pt#; % uppercase curve breadth
+cap_ess#:=47/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.58pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=10.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=15pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=16pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 40/36pt#, % big\_op\_spacing1
+ 60/36pt#, % big\_op\_spacing2
+ 72/36pt#, % big\_op\_spacing3
+ 216/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmff10.mf b/Master/texmf-dist/fonts/source/public/cm/cmff10.mf
new file mode 100644
index 00000000000..b3a6c408588
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmff10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmff10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Funny Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMFF"; font_size 10pt#;
+
+u#:=16/36pt#; % unit width
+width_adj#:=-16/36pt#; % width adjustment for certain characters
+serif_fit#:=-3/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=240/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=210/36pt#; % height of numerals
+x_height#:=190/36pt#; % height of lowercase without ascenders
+math_axis#:=55/36pt#; % axis of symmetry for math symbols
+bar_height#:=60/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=100/36pt#; % depth of lowercase descenders
+
+crisp#:=10/36pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=14/36pt#; % width of extrafine details
+hair#:=12/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=16/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=26/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.5pt#; % thickness of lines in math symbols
+
+dish#:=5/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=3/36pt#; % protrusion of lowercase serifs
+cap_jut#:=4/36pt#; % protrusion of uppercase serifs
+beak_jut#:=-8/36pt#; % horizontal protrusion of beak serifs
+beak#:=10/36pt#; % vertical protrusion of beak serifs
+vair#:=14/36pt#; % vertical diameter of hairlines
+notch_cut#:=2/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=3/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=-10/36pt#; % vertical drop of sloped serifs
+stem_corr#:=-1/36pt#; % for small refinements of stem breadth
+vair_corr#:=-1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=-.1; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=2/3; % parameter for superellipses
+superpull:=-1/8; % extra openness inside bowls
+beak_darkness:=.5; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmfi10.mf b/Master/texmf-dist/fonts/source/public/cm/cmfi10.mf
new file mode 100644
index 00000000000..e4a3fffe45e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmfi10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmfi10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Funny Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMFI"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=-16/36pt#; % width adjustment for certain characters
+serif_fit#:=-3/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=240/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=210/36pt#; % height of numerals
+x_height#:=190/36pt#; % height of lowercase without ascenders
+math_axis#:=55/36pt#; % axis of symmetry for math symbols
+bar_height#:=60/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=100/36pt#; % depth of lowercase descenders
+
+crisp#:=11/36pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=14/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=17/36pt#; % lowercase stem breadth
+curve#:=21/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=15/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=29/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.5pt#; % thickness of lines in math symbols
+
+dish#:=5/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=3/36pt#; % protrusion of lowercase serifs
+cap_jut#:=4/36pt#; % protrusion of uppercase serifs
+beak_jut#:=-8/36pt#; % horizontal protrusion of beak serifs
+beak#:=10/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=2/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=23/36pt#; % uppercase bar thickness
+cap_band#:=18/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=3/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=-10/36pt#; % vertical drop of sloped serifs
+stem_corr#:=-1/36pt#; % for small refinements of stem breadth
+vair_corr#:=-1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=+.1; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=2/3; % parameter for superellipses
+superpull:=-1/8; % extra openness inside bowls
+beak_darkness:=.5; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmfib8.mf b/Master/texmf-dist/fonts/source/public/cm/cmfib8.mf
new file mode 100644
index 00000000000..2241fba8205
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmfib8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmfib8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman Fibonacci Font
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMFIB"; font_size 8pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=-2/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=233/36pt#; % height of tallest characters
+asc_height#:=233/36pt#; % height of lowercase ascenders
+cap_height#:=233/36pt#; % height of caps
+fig_height#:=233/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=89/36pt#; % axis of symmetry for math symbols
+bar_height#:=89/36pt#; % height of crossbar in lowercase e
+comma_depth#:=55/36pt#; % depth of comma below baseline
+desc_depth#:=55/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=13/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=34/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=34/36pt#; % breadth in middle of lowercase s
+flare#:=34/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=34/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=34/36pt#; % uppercase stem breadth
+cap_curve#:=39/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=21/36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=21/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=21/36pt#; % protrusion of uppercase serifs
+beak_jut#:=13/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=3/8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/13; % extra openness inside bowls
+beak_darkness:=5/13; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cminch.mf b/Master/texmf-dist/fonts/source/public/cm/cminch.mf
new file mode 100644
index 00000000000..8fcd86b2b95
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cminch.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cminch.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Inch-High Sans Serif Bold Extended Caps and Digits
+if unknown cmbase: input cmbase fi
+numeric Pt#; 250/36Pt#=1in#;
+font_identifier:="CMINCH"; font_size 10Pt#;
+
+u#:=22/36Pt#; % unit width
+width_adj#:=22/36Pt#; % width adjustment for certain characters
+serif_fit#:=-9/36Pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36Pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0Pt#; % extra space added to all sidebars
+
+body_height#:=270/36Pt#; % height of tallest characters
+asc_height#:=250/36Pt#; % height of lowercase ascenders
+cap_height#:=250/36Pt#; % height of caps
+fig_height#:=250/36Pt#; % height of numerals
+x_height#:=165/36Pt#; % height of lowercase without ascenders
+math_axis#:=90/36Pt#; % axis of symmetry for math symbols
+bar_height#:=90/36Pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36Pt#; % depth of comma below baseline
+desc_depth#:=70/36Pt#; % depth of lowercase descenders
+
+crisp#:=26/36Pt#; % diameter of serif corners
+tiny#:=26/36Pt#; % diameter of rounded corners
+fine#:=9/36Pt#; % diameter of sharply rounded corners
+thin_join#:=9/36Pt#; % width of extrafine details
+hair#:=49/36Pt#; % lowercase hairline breadth
+stem#:=49/36Pt#; % lowercase stem breadth
+curve#:=49/36Pt#; % lowercase curve breadth
+ess#:=43/36Pt#; % breadth in middle of lowercase s
+flare#:=40/36Pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36Pt#; % diameter of dots
+cap_hair#:=49/36Pt#; % uppercase hairline breadth
+cap_stem#:=53/36Pt#; % uppercase stem breadth
+cap_curve#:=53/36Pt#; % uppercase curve breadth
+cap_ess#:=51/36Pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36Pt#; % thickness of lines in math symbols
+
+dish#:=0Pt#; % amount erased at top or bottom of serifs
+bracket#:=0Pt#; % vertical distance from serif base to tangent
+jut#:=0Pt#; % protrusion of lowercase serifs
+cap_jut#:=0Pt#; % protrusion of uppercase serifs
+beak_jut#:=0Pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36Pt#; % vertical protrusion of beak serifs
+vair#:=26/36Pt#; % vertical diameter of hairlines
+notch_cut#:=49/36Pt#; % maximum breadth above or below notches
+bar#:=26/36Pt#; % lowercase bar thickness
+slab#:=36/36Pt#; % serif and arm thickness
+cap_bar#:=34/36Pt#; % uppercase bar thickness
+cap_band#:=31/36Pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36Pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36Pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36Pt#; % for small refinements of stem breadth
+vair_corr#:=2/36Pt#; % for small refinements of hairline height
+apex_corr#:=18/36Pt#; % extra width at diagonal junctions
+
+o#:=8/36Pt#; % amount of overshoot for curves
+apex_o#:=0Pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate title % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmitt10.mf b/Master/texmf-dist/fonts/source/public/cm/cmitt10.mf
new file mode 100644
index 00000000000..2256c805ba5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmitt10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmitt10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Italic Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMITT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=15/36pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=40/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmmi10.mf b/Master/texmf-dist/fonts/source/public/cm/cmmi10.mf
new file mode 100644
index 00000000000..e322c4b0620
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmmi10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmmi10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMI"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmmi12.mf b/Master/texmf-dist/fonts/source/public/cm/cmmi12.mf
new file mode 100644
index 00000000000..029d49610c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmmi12.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmmi12.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Italic 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMI"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=32/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=38/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmmi5.mf b/Master/texmf-dist/fonts/source/public/cm/cmmi5.mf
new file mode 100644
index 00000000000..1f27cfa114d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmmi5.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmmi5.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Italic 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMI"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=6/36pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=15.5/36pt#; % lowercase stem breadth
+curve#:=17.5/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=18.5/36pt#; % uppercase stem breadth
+cap_curve#:=20.5/36pt#; % uppercase curve breadth
+cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmmi6.mf b/Master/texmf-dist/fonts/source/public/cm/cmmi6.mf
new file mode 100644
index 00000000000..3f711200ae9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmmi6.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmmi6.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Italic 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMI"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=6.5/36pt#; % diameter of serif corners
+tiny#:=6.5/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=17.5/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21/36pt#; % uppercase stem breadth
+cap_curve#:=23.5/36pt#; % uppercase curve breadth
+cap_ess#:=18.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmmi7.mf b/Master/texmf-dist/fonts/source/public/cm/cmmi7.mf
new file mode 100644
index 00000000000..10c8d431b97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmmi7.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmmi7.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Italic 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMI"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=19.5/36pt#; % lowercase stem breadth
+curve#:=22.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=26.5/36pt#; % uppercase curve breadth
+cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmmi8.mf b/Master/texmf-dist/fonts/source/public/cm/cmmi8.mf
new file mode 100644
index 00000000000..fe8cfadaeef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmmi8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmmi8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Italic 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMI"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmmi9.mf b/Master/texmf-dist/fonts/source/public/cm/cmmi9.mf
new file mode 100644
index 00000000000..c10e6275126
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmmi9.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmmi9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Italic 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMI"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmmib10.mf b/Master/texmf-dist/fonts/source/public/cm/cmmib10.mf
new file mode 100644
index 00000000000..78e423d2167
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmmib10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmmib10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Italic Bold 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMIB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=45/36pt#; % lowercase curve breadth
+ess#:=36/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=50/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmplain.mf b/Master/texmf-dist/fonts/source/public/cm/cmplain.mf
new file mode 100644
index 00000000000..bd29e534904
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmplain.mf
@@ -0,0 +1,6 @@
+% This file creates `cmplain.base'. Run it as inimf cmplain
+% then arrange it by alias or script that the command cmmf <mf_stuff>
+% produces virmf '&cmplain' <mf_stuff>
+input plain
+input U_Wash
+input cmbase; dump.
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmr10.mf b/Master/texmf-dist/fonts/source/public/cm/cmr10.mf
new file mode 100644
index 00000000000..1adb40480d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmr10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmr10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMR"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmr12.mf b/Master/texmf-dist/fonts/source/public/cm/cmr12.mf
new file mode 100644
index 00000000000..944cde4a1a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmr12.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmr12.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMR"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmr17.mf b/Master/texmf-dist/fonts/source/public/cm/cmr17.mf
new file mode 100644
index 00000000000..c8628bbf6bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmr17.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmr17.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman 17 point (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMR"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=425/36pt#; % height of caps
+fig_height#:=401/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=150/36pt#; % height of crossbar in lowercase e
+comma_depth#:=121/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=13/36pt#; % uppercase hairline breadth
+cap_stem#:=41/36pt#; % uppercase stem breadth
+cap_curve#:=47/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=34/36pt#; % vertical distance from serif base to tangent
+jut#:=42/36pt#; % protrusion of lowercase serifs
+cap_jut#:=50/36pt#; % protrusion of uppercase serifs
+beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs
+beak#:=121/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=17pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches
+serif_drop#:=7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmr5.mf b/Master/texmf-dist/fonts/source/public/cm/cmr5.mf
new file mode 100644
index 00000000000..c9f0b30a6c0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmr5.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmr5.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMR"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=18/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmr6.mf b/Master/texmf-dist/fonts/source/public/cm/cmr6.mf
new file mode 100644
index 00000000000..731dff0b6ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmr6.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmr6.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMR"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmr7.mf b/Master/texmf-dist/fonts/source/public/cm/cmr7.mf
new file mode 100644
index 00000000000..3229e89c493
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmr7.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmr7.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMR"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmr8.mf b/Master/texmf-dist/fonts/source/public/cm/cmr8.mf
new file mode 100644
index 00000000000..4f9ee398be2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmr8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmr8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMR"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmr9.mf b/Master/texmf-dist/fonts/source/public/cm/cmr9.mf
new file mode 100644
index 00000000000..e8fdd67c291
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmr9.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmr9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMR"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsl10.mf b/Master/texmf-dist/fonts/source/public/cm/cmsl10.mf
new file mode 100644
index 00000000000..483c6b166a1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsl10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsl10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsl12.mf b/Master/texmf-dist/fonts/source/public/cm/cmsl12.mf
new file mode 100644
index 00000000000..6bb836ddb05
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsl12.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsl12.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSL"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsl8.mf b/Master/texmf-dist/fonts/source/public/cm/cmsl8.mf
new file mode 100644
index 00000000000..c4ce6c564cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsl8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsl8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSL"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsl9.mf b/Master/texmf-dist/fonts/source/public/cm/cmsl9.mf
new file mode 100644
index 00000000000..b34bd6ac2c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsl9.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsl9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSL"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsltt10.mf b/Master/texmf-dist/fonts/source/public/cm/cmsltt10.mf
new file mode 100644
index 00000000000..25e2ce6367a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsltt10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsltt10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSLTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmss10.mf b/Master/texmf-dist/fonts/source/public/cm/cmss10.mf
new file mode 100644
index 00000000000..e7b1aaf55c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmss10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmss10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Sans Serif 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmss12.mf b/Master/texmf-dist/fonts/source/public/cm/cmss12.mf
new file mode 100644
index 00000000000..1aaa0f6126e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmss12.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmss12.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Sans Serif 12 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSS"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmss17.mf b/Master/texmf-dist/fonts/source/public/cm/cmss17.mf
new file mode 100644
index 00000000000..1ee20e13108
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmss17.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmss17.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Sans Serif 17 pt (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSS"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=24/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=432/36pt#; % height of caps
+fig_height#:=408/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=136/36pt#; % height of crossbar in lowercase e
+comma_depth#:=78/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=47/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=47/36pt#; % lowercase curve breadth
+ess#:=47/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50/36pt#; % diameter of dots
+cap_hair#:=47/36pt#; % uppercase hairline breadth
+cap_stem#:=52/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=52/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.8/36pt#; % vertical protrusion of beak serifs
+vair#:=38/36pt#; % vertical diameter of hairlines
+notch_cut#:=32/36pt#; % maximum breadth above or below notches
+bar#:=36/36pt#; % lowercase bar thickness
+slab#:=40/36pt#; % serif and arm thickness
+cap_bar#:=38/36pt#; % uppercase bar thickness
+cap_band#:=35/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=7/36pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmss8.mf b/Master/texmf-dist/fonts/source/public/cm/cmss8.mf
new file mode 100644
index 00000000000..8917e92ce78
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmss8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmss8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Sans Serif 8 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSS"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmss9.mf b/Master/texmf-dist/fonts/source/public/cm/cmss9.mf
new file mode 100644
index 00000000000..785016bf65b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmss9.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmss9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Sans Serif 9 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSS"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=212/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=16/36pt#; % width of extrafine details
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmssbx10.mf b/Master/texmf-dist/fonts/source/public/cm/cmssbx10.mf
new file mode 100644
index 00000000000..a8c98dedf3d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmssbx10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmssbx10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Sans Serif Bold Extended 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSBX"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=22/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=26/36pt#; % diameter of serif corners
+tiny#:=26/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=49/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=43/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=49/36pt#; % uppercase hairline breadth
+cap_stem#:=53/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=49/36pt#; % maximum breadth above or below notches
+bar#:=26/36pt#; % lowercase bar thickness
+slab#:=36/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=31/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=18/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmssdc10.mf b/Master/texmf-dist/fonts/source/public/cm/cmssdc10.mf
new file mode 100644
index 00000000000..00e71edf605
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmssdc10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmssdc10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Sans Serif Demibold Condensed 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSDC"; font_size 10pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-8/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+crisp#:=23/36pt#; % diameter of serif corners
+tiny#:=23/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=40/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=37/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=44/36pt#; % uppercase stem breadth
+cap_curve#:=44/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=23/36pt#; % vertical diameter of hairlines
+notch_cut#:=40/36pt#; % maximum breadth above or below notches
+bar#:=23/36pt#; % lowercase bar thickness
+slab#:=31/36pt#; % serif and arm thickness
+cap_bar#:=29/36pt#; % uppercase bar thickness
+cap_band#:=27/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=37/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=14/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.91; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.74; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmssi10.mf b/Master/texmf-dist/fonts/source/public/cm/cmssi10.mf
new file mode 100644
index 00000000000..2fcd64f9c64
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmssi10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmssi10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Sans Serif 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSI"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmssi12.mf b/Master/texmf-dist/fonts/source/public/cm/cmssi12.mf
new file mode 100644
index 00000000000..50f909e33fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmssi12.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmssi12.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Sans Serif 12 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSI"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmssi17.mf b/Master/texmf-dist/fonts/source/public/cm/cmssi17.mf
new file mode 100644
index 00000000000..6008e9de82b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmssi17.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmssi17.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Sans Serif 17 pt (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSI"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=24/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=432/36pt#; % height of caps
+fig_height#:=408/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=136/36pt#; % height of crossbar in lowercase e
+comma_depth#:=78/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=47/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=47/36pt#; % lowercase curve breadth
+ess#:=47/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50/36pt#; % diameter of dots
+cap_hair#:=47/36pt#; % uppercase hairline breadth
+cap_stem#:=52/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=52/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.8/36pt#; % vertical protrusion of beak serifs
+vair#:=38/36pt#; % vertical diameter of hairlines
+notch_cut#:=32/36pt#; % maximum breadth above or below notches
+bar#:=36/36pt#; % lowercase bar thickness
+slab#:=40/36pt#; % serif and arm thickness
+cap_bar#:=38/36pt#; % uppercase bar thickness
+cap_band#:=35/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=7/36pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmssi8.mf b/Master/texmf-dist/fonts/source/public/cm/cmssi8.mf
new file mode 100644
index 00000000000..a442b3646ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmssi8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmssi8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Sans Serif 8 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSI"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmssi9.mf b/Master/texmf-dist/fonts/source/public/cm/cmssi9.mf
new file mode 100644
index 00000000000..63c32e9ab43
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmssi9.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmssi9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Slanted Sans Serif 9 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSI"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=212/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=16/36pt#; % width of extrafine details
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmssq8.mf b/Master/texmf-dist/fonts/source/public/cm/cmssq8.mf
new file mode 100644
index 00000000000..5d6d673ac8d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmssq8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmssq8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Sans Serif Quotation Style 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSQ"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmssqi8.mf b/Master/texmf-dist/fonts/source/public/cm/cmssqi8.mf
new file mode 100644
index 00000000000..487d72997de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmssqi8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmssqi8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Sans Serif Quotation Style Slanted 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSQI"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsy10.mf b/Master/texmf-dist/fonts/source/public/cm/cmsy10.mf
new file mode 100644
index 00000000000..5c8d021f758
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsy10.mf
@@ -0,0 +1,98 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsy10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Symbols 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSY"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsy5.mf b/Master/texmf-dist/fonts/source/public/cm/cmsy5.mf
new file mode 100644
index 00000000000..0b2de373695
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsy5.mf
@@ -0,0 +1,98 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsy5.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Symbols 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSY"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=6/36pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=15.5/36pt#; % lowercase stem breadth
+curve#:=17.5/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=18.5/36pt#; % uppercase stem breadth
+cap_curve#:=20.5/36pt#; % uppercase curve breadth
+cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/5; % subscripts to 5pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+3/36pt#, % num2
+ math_axis#+1.51rth#+24/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-63/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-3/36pt#), % denom2
+ 5.99pt#-subs*asc_height#, % sup1
+ 5.49pt#-subs*asc_height#, % sup2
+ 53/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 9.9pt#, % delim1
+ 7.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsy6.mf b/Master/texmf-dist/fonts/source/public/cm/cmsy6.mf
new file mode 100644
index 00000000000..5a6011b9e2a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsy6.mf
@@ -0,0 +1,98 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsy6.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Symbols 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSY"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=6.5/36pt#; % diameter of serif corners
+tiny#:=6.5/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=17.5/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21/36pt#; % uppercase stem breadth
+cap_curve#:=23.5/36pt#; % uppercase curve breadth
+cap_ess#:=18.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/6; % subscripts to 6pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+9/36pt#, % num2
+ math_axis#+1.51rth#+29/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-74/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-9/36pt#), % denom2
+ 6.49pt#-subs*asc_height#, % sup1
+ 5.99pt#-subs*asc_height#, % sup2
+ 62/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsy7.mf b/Master/texmf-dist/fonts/source/public/cm/cmsy7.mf
new file mode 100644
index 00000000000..c905274866c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsy7.mf
@@ -0,0 +1,98 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsy7.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Symbols 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSY"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=19.5/36pt#; % lowercase stem breadth
+curve#:=22.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=26.5/36pt#; % uppercase curve breadth
+cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsy8.mf b/Master/texmf-dist/fonts/source/public/cm/cmsy8.mf
new file mode 100644
index 00000000000..f1232d6f79e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsy8.mf
@@ -0,0 +1,98 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsy8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Symbols 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSY"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmsy9.mf b/Master/texmf-dist/fonts/source/public/cm/cmsy9.mf
new file mode 100644
index 00000000000..42a06280e64
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmsy9.mf
@@ -0,0 +1,98 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmsy9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Math Symbols 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSY"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmtcsc10.mf b/Master/texmf-dist/fonts/source/public/cm/cmtcsc10.mf
new file mode 100644
index 00000000000..f4518d3c39b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmtcsc10.mf
@@ -0,0 +1,113 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmtcsc10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Typewriter Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=21/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=190/36pt#; % height of tallest characters
+lower.cap_height#:=170/36pt#; % height of caps
+lower.x_height#:=120/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=62/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=38/36pt#; % depth of comma below baseline
+
+lower.flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=25/36pt#; % uppercase hairline breadth
+lower.stem#:=25/36pt#; % lowercase stem breadth
+lower.cap_stem#:=25/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+lower.beak#:=26/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=22/36pt#; % serif and arm thickness
+lower.cap_bar#:=22/36pt#; % uppercase bar thickness
+lower.cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=0.85; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmtex10.mf b/Master/texmf-dist/fonts/source/public/cm/cmtex10.mf
new file mode 100644
index 00000000000..bce0c1ba776
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmtex10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmtex10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern TeX extended ASCII characters for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTEX"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate texset % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmtex8.mf b/Master/texmf-dist/fonts/source/public/cm/cmtex8.mf
new file mode 100644
index 00000000000..785c09716f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmtex8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmtex8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern TeX extended ASCII characters for use with 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTEX"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=200/36pt#; % height of tallest characters
+asc_height#:=176/36pt#; % height of lowercase ascenders
+cap_height#:=176/36pt#; % height of caps
+fig_height#:=176/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=88/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=64/36pt#; % depth of lowercase descenders
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=27/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate texset % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmtex9.mf b/Master/texmf-dist/fonts/source/public/cm/cmtex9.mf
new file mode 100644
index 00000000000..fa05cd64dd7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmtex9.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmtex9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern TeX extended ASCII characters for use with 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTEX"; font_size 9pt#;
+
+u#:=18.9/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=225/36pt#; % height of tallest characters
+asc_height#:=198/36pt#; % height of lowercase ascenders
+cap_height#:=198/36pt#; % height of caps
+fig_height#:=198/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=72/36pt#; % depth of lowercase descenders
+
+crisp#:=21/36pt#; % diameter of serif corners
+tiny#:=21/36pt#; % diameter of rounded corners
+fine#:=20/36pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=24/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=33/36pt#; % diameter of dots
+cap_hair#:=24/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=24/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=31/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=31/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3.5/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate texset % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmti10.mf b/Master/texmf-dist/fonts/source/public/cm/cmti10.mf
new file mode 100644
index 00000000000..7a05a0bb980
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmti10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmti10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Text Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTI"; font_size 10pt#;
+
+u#:=18.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmti12.mf b/Master/texmf-dist/fonts/source/public/cm/cmti12.mf
new file mode 100644
index 00000000000..f90555e4f1a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmti12.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmti12.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Text Italic 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTI"; font_size 12pt#;
+
+u#:=21.6/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10.8/36pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=12/36pt#; % lowercase hairline breadth
+stem#:=26/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=38/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmti7.mf b/Master/texmf-dist/fonts/source/public/cm/cmti7.mf
new file mode 100644
index 00000000000..aa48913f7c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmti7.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmti7.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Text Italic 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTI"; font_size 7pt#;
+
+u#:=14.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=10.5/36pt#; % lowercase hairline breadth
+stem#:=18.5/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=10.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24.5/36pt#; % uppercase curve breadth
+cap_ess#:=21/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmti8.mf b/Master/texmf-dist/fonts/source/public/cm/cmti8.mf
new file mode 100644
index 00000000000..dab2cce738d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmti8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmti8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Text Italic 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTI"; font_size 8pt#;
+
+u#:=15.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=7.9/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmti9.mf b/Master/texmf-dist/fonts/source/public/cm/cmti9.mf
new file mode 100644
index 00000000000..3e77570223f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmti9.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmti9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Text Italic 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTI"; font_size 9pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=8.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=30.5/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.5/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmtt10.mf b/Master/texmf-dist/fonts/source/public/cm/cmtt10.mf
new file mode 100644
index 00000000000..3ef52fb61f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmtt10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmtt10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmtt12.mf b/Master/texmf-dist/fonts/source/public/cm/cmtt12.mf
new file mode 100644
index 00000000000..0a87f12ff14
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmtt12.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmtt12.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Typewriter Text for use with 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTT"; font_size 12pt#;
+
+u#:=24.7/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=300/36pt#; % height of tallest characters
+asc_height#:=264/36pt#; % height of lowercase ascenders
+cap_height#:=264/36pt#; % height of caps
+fig_height#:=264/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=132/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=60/36pt#; % depth of comma below baseline
+desc_depth#:=96/36pt#; % depth of lowercase descenders
+
+crisp#:=25/36pt#; % diameter of serif corners
+tiny#:=25/36pt#; % diameter of rounded corners
+fine#:=22/36pt#; % diameter of sharply rounded corners
+thin_join#:=22/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=39/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=28/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=39/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=39/36pt#; % vertical protrusion of beak serifs
+vair#:=25/36pt#; % vertical diameter of hairlines
+notch_cut#:=28/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=25/36pt#; % serif and arm thickness
+cap_bar#:=25/36pt#; % uppercase bar thickness
+cap_band#:=25/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=28/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=11/36pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.86; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmtt8.mf b/Master/texmf-dist/fonts/source/public/cm/cmtt8.mf
new file mode 100644
index 00000000000..85090c91053
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmtt8.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmtt8.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Typewriter Text for use with 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTT"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=200/36pt#; % height of tallest characters
+asc_height#:=176/36pt#; % height of lowercase ascenders
+cap_height#:=176/36pt#; % height of caps
+fig_height#:=176/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=88/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=64/36pt#; % depth of lowercase descenders
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=27/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmtt9.mf b/Master/texmf-dist/fonts/source/public/cm/cmtt9.mf
new file mode 100644
index 00000000000..70baec4f25e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmtt9.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmtt9.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Typewriter Text for use with 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTT"; font_size 9pt#;
+
+u#:=18.9/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=225/36pt#; % height of tallest characters
+asc_height#:=198/36pt#; % height of lowercase ascenders
+cap_height#:=198/36pt#; % height of caps
+fig_height#:=198/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=72/36pt#; % depth of lowercase descenders
+
+crisp#:=21/36pt#; % diameter of serif corners
+tiny#:=21/36pt#; % diameter of rounded corners
+fine#:=20/36pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=24/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=33/36pt#; % diameter of dots
+cap_hair#:=24/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=24/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=31/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=31/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3.5/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmttb10.mf b/Master/texmf-dist/fonts/source/public/cm/cmttb10.mf
new file mode 100644
index 00000000000..dd13a076b86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmttb10.mf
@@ -0,0 +1,77 @@
+% Computer Modern Typewriter Text Bold for use with 10 point
+% Adopted from cmtt10 with ascender heights comparable to cmr10.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="XXBTT"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width (extend slightly)
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=77/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=29/36pt#; % width of extrafine details
+hair#:=34/36pt#; % lowercase hairline breadth
+stem#:=34/36pt#; % lowercase stem breadth
+curve#:=34/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=49/36pt#; % diameter of dots
+cap_hair#:=34/36pt#; % uppercase hairline breadth
+cap_stem#:=34/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=34/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=32/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=30/36pt#; % vertical diameter of hairlines
+notch_cut#:=40/36pt#; % maximum breadth above or below notches
+bar#:=30/36pt#; % lowercase bar thickness
+slab#:=30/36pt#; % serif and arm thickness
+cap_bar#:=30/36pt#; % uppercase bar thickness
+cap_band#:=30/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=55/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=11/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmu10.mf b/Master/texmf-dist/fonts/source/public/cm/cmu10.mf
new file mode 100644
index 00000000000..85e4112a5a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmu10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmu10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Unslanted Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMU"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/cmvtt10.mf b/Master/texmf-dist/fonts/source/public/cm/cmvtt10.mf
new file mode 100644
index 00000000000..06d961c7c08
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cmvtt10.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cmvt10.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Variable-Width Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMVTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cm/comlig.mf b/Master/texmf-dist/fonts/source/public/cm/comlig.mf
new file mode 100644
index 00000000000..c2877e94ea0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/comlig.mf
@@ -0,0 +1,62 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE comlig.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file defines characters common to roman and italic text fonts
+% that appear only when |ligs>0|.
+
+% Character codes \0042, \0055, \0134, \0173, and \0174 are generated.
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042", "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+cmchar "Closing quotes";
+beginchar(oct"042",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Opening quotes";
+beginchar(oct"134",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+cmchar "En dash";
+beginchar(oct"173",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Em dash";
+beginchar(oct"174",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/csc.mf b/Master/texmf-dist/fonts/source/public/cm/csc.mf
new file mode 100644
index 00000000000..3ef06337b0d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/csc.mf
@@ -0,0 +1,73 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE csc.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Caps and Small Caps in Computer Modern Roman
+
+font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+spanish_shriek=oct"016"; spanish_query=oct"017";
+
+mode_setup; font_setup;
+input romanu; % upper case (majuscules)
+input greeku; % upper case greek letters
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to all roman and italic
+input accent; % accents common to roman and italic text
+input romsub; % substitutes for ligatures
+if ligs>0: input comlig; fi % ligatures common with italic
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "P": "T": "Y": "a" kern kk#, "A" kern kk#;
+ ligtable "F": "V": "W": if serifs: "a" kern kkk#, "A" kern kkk#,
+ else: "a" kern kk#, "A" kern kk#, fi
+ "K": "X": "o" kern k#, "O" kern k#, "c" kern k#, "C" kern k#,
+ "g" kern k#, "G" kern k#, "q" kern k#, "Q" kern k#;
+ ligtable "O": "D": "x" kern k#, "X" kern k#, "w" kern k#, "W" kern k#,
+ "a" kern k#, "A" kern k#, "v" kern k#, "V" kern k#, "y" kern k#, "Y" kern k#;
+ ligtable "A": if serifs: "R": fi "c" kern k#, "C" kern k#,
+ "o" kern k#, "O" kern k#, "g" kern k#, "G" kern k#,
+ "u" kern k#, "U" kern k#, "q" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, "t" kern kk#, "Y" kern kk#, "y" kern kk#,
+ "V" kern kkk#, "v" kern kkk#, "W" kern kkk#, "w" kern kkk#;
+ ligtable "I": "I" kern -k#; fi % Richard III
+% ligature programs for |"-"|, |"`"|, and |"'"| are in the {\tt comlig} file
+
+%%% fine lower
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+font_setup; % now try again with |lower| settings
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset;";
+code_offset:=ASCII"a" - ASCII"A";
+input romanu; % majuscules (in lowercase positions)
+code_offset:=-3;
+input romspu; % \AE, \OE, \O\ (in positions of \ae, \oe, \o)
+code_offset:=0;
+input cscspu; % substitutes for the remaining characters of romspl
+if not monospace:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "p": "t": "y": "a" kern kk#;
+ ligtable "f": "v": "w": "a" kern if serifs: kkk# else: kk#\\fi,
+ "k": "x": "o" kern k#, "c" kern k#, "g" kern k#, "q" kern k#;
+ ligtable "o": "d": "x" kern k#, "w" kern k#, "a" kern k#,
+ "v" kern k#, "y" kern k#;
+ ligtable "a": if serifs: "r": fi "c" kern k#, "o" kern k#,
+ "g" kern k#, "u" kern k#, "q" kern k#,
+ "l": "'" kern kk#, "t" kern kk#, "y" kern kk#, "v" kern kkk#, "w" kern kkk#;
+ ligtable "i": "i" kern -k#; fi % skiing
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cm/cscspu.mf b/Master/texmf-dist/fonts/source/public/cm/cscspu.mf
new file mode 100644
index 00000000000..82c9ea7bd3b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/cscspu.mf
@@ -0,0 +1,78 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE cscspu.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file puts characters into code positions \0020, \0021, and \0031
+% to take the place of dotless i, dotless j, and sharp s
+% in caps-and-small-caps fonts
+
+cmchar "The letter I"; % in code position \0020
+beginchar(oct"020",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+ dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "The letter J"; % in code position \0021
+beginchar(oct"021",9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+cmchar "Two letters S";
+beginchar(oct"031",10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+r:=r+w+shrink_fit; charwd:=2charwd;
+addto currentpicture also currentpicture shifted (w+shrink_fit,0);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/greekl.mf b/Master/texmf-dist/fonts/source/public/cm/greekl.mf
new file mode 100644
index 00000000000..c8c11585ac5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/greekl.mf
@@ -0,0 +1,494 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE greekl.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This lowercase Greek alphabet was prepared by D. E. Knuth in December, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% (It has been designed for math formulas, not Greek texts.)
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Character codes \0013--\0047 are generated.
+
+cmchar "Lowercase Greek alpha";
+beginchar(oct"013",11u#,x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.5u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,-90); pos2(curve,-180); pos3(vair,-270);
+z4=(w-3.25u,9/16h); z5=(w-2.75u,.5[vair,y4]);
+numeric theta; theta=angle(z4-z5)-90;
+pos4(stem,theta); pos5(stem,theta);
+pos6(vair,90); pos7(hair,180);
+rt x0r=hround(w-u); x1=x3=.5w-u; lft x2r=hround(1.5u-.5curve);
+x6=w-u; x7+.5hair=hround(w+.5hair-epsilon);
+top y0=vround .8[bar_height,h]; bot y1r=bot y6l=-oo;
+y2=.5[y1,y3]; top y3r=h+oo; y7=1/4bar_height;
+filldraw stroke z0e{down}...pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ ...z4e---z5e...z6e{right}...{up}z7e; % diagonal, bowl, and hook
+math_fit(-.3x_height#*slant+.5curve#-u#,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase Greek beta";
+beginchar(oct"014",9.5u#,asc_height#,desc_depth#);
+italcorr .5[x_height#,asc_height#]*slant-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(hair,180); pos2(vair,90);
+pos3(.8[hair,stem],0); pos4(vair,-90); pos5(hair,-180);
+pos6(vair,-270); pos7(stem,-360); pos8(vair,-450); pos9(hair,-540);
+x0=x1=x9; lft x0l=hround(1.5u-.5hair); x2=x4=x6=x8=.5w-.25u;
+rt x3r=hround(w-1.75u); rt x7r=hround(w-u); rt x5l=hround(x4-u);
+bot y0=-d; y1=top y6r=x_height; top y2r=h+oo; y3=.5[y2,y4];
+y5=.5[y4,y6]; top y6r-bot y4r=vstem+eps; bot y8=-oo; y7=y9=.55[y6,y8];
+if y6l<y4l: y6l:=y4l:=y5; fi
+filldraw stroke z0e---z1e...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{up}z5e; % stem and upper bowl
+filldraw stroke z5e{up}...pulled_arc.e(6,7)
+ & pulled_arc.e(7,8)...{up}z9e; % lower bowl
+math_fit(desc_depth#*slant+.5hair#-u#,.7x_height#*slant+.5curve#-1.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lowercase Greek gamma";
+beginchar(oct"015",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,180); pos2(vstem+dw,90);
+pos4(hair,0); pos5(vair,-90); pos6(hair,-180); pos7(hair,-180);
+bot y1=.5772156649h; top y2r=h+oo; y4=y6=-.5d;
+bot y5r=-d-o; top y7=h;
+lft x1r=hround(.5u-.5hair); x2=3u; rt x4r=hround(w-2u); x5=.5[x4,x6];
+rt x4r-lft x6r=hround 1/3[hair,stem]+eps; rt x7l=hround(w-u);
+if x4l<x6l: x4l:=x6l:=x5; fi
+pos3(hair,angle(z4-z2)+90); x3=superness[x2,x4]; y3=superness[y4,y2];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4-z2}
+ ...z4e{down}...{left}z5e; % arc
+filldraw stroke z5e{left}...z6e{up}..{2(x7-x6),y7-y6}z7e; % stem
+math_fit(-.5772156649x_height#*slant,ic#-u#);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase Greek delta";
+beginchar(oct"016",8u#,asc_height#,0);
+italcorr .9asc_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=-u; y0=1.1h;
+numeric light_flare; light_flare=2/3[vair,flare];
+x1=w-2u-.5light_flare; y1=h-.5light_flare;
+numeric theta; theta=angle (z1-z0);
+pos1(light_flare,theta-90); pos2(.2[vair,light_flare],-90); pos3(vair,theta);
+x2=x3+u; y2=h;
+x4=x6=.5w+.5u; top y8r=x_height+oo; z4=z8;
+pos6(vair,-90); pos7(stem,-180); pos8(vair,-270);
+pos4(stem,angle(z4-z0)+90); pos5(stem,30);
+z3=.5[.5[z1,z4],z0];
+y5+.1x_height=y7=.5[y6,y8]; bot y6=-oo;
+lft x7r=hround(1.4u-.5stem); rt x5r=hround(w-u);
+filldraw stroke z1e{z0-z1e}....z2e....z3e{(z0-z1)rotated 90}
+ ...z4e{z4e-.8[z4,z0]}
+ ....z5e{down}...pulled_arc.e(6,7) & pulled_arc.e(7,8); % hook and bowl
+filldraw z1r{z1r-z0}...z1l{z0-z1l}--cycle; % bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,.7x_height#*slant-.5u#);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lowercase Greek epsilon";
+beginchar(oct"017",8u#,x_height#,0);
+italcorr x_height#*slant+.5hair#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(bar,90); pos1(bar,90); pos2(curve,180);
+pos3(vair,270); pos4(hair,300); pos6(bar,90); pos7(bar,90);
+x1=.5w+.5u; x0=x1+u; lft x2r=hround(1.5u-.5curve); x3=.5[x0,x1];
+x4r=good.x(w-u); x5=w+.5u; x6=x0; z7=z2l;
+top y0r=top y1r=h; y2=y5=y6=bar_height; bot y3r=-oo;
+path p; p=z3r{right}...{up}z5;
+numeric t; t=ypart(((x4r,y3r)--(x4r,y5))intersectiontimes p);
+y4r=ypart point t of p;
+filldraw circ_stroke z0e..pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ ...z4e{direction t of p}; % arc
+filldraw circ_stroke z6e--z7e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase Greek zeta";
+beginchar(oct"020",9u#,asc_height#,desc_depth#);
+italcorr .75[x_height#,asc_height#]*slant-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90);
+numeric theta; theta=90-angle(25u,x_height); slope:=-x_height/25u;
+pos6(stem,theta); pos7(vair,-90); pos8(vair,-135);
+lft x0l=hround 3.5u; x1=x3=.5[x0,x2]; rt x2l=hround max(rt x0r,w-2u)+eps;
+top y0=h; top y3l=bot y1l+vstem+eps=vround(y0-.25(h-x_height)); y2=.5[y1,y3];
+if y1r>y3r: y1r:=y3r:=y2; fi
+lft x4l=hround u; x4r-x4l=(hround .6[vair,stem])-fine;
+x6+.5u=x7=w-2u; x8=.5w+.75u;
+y6=-.1d; y8=-3/4d-oo; bot y7r=-d-oo;
+ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r);
+y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r];
+filldraw circ_stroke z0e{down}...z1e{right}...{up}z2e; % opening hook
+filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}
+ ...z6e---z5e....{up}z4e
+ ..tension 1 and atleast1.5..{right}z3e...{down}z2e; % main stroke
+math_fit(-.2asc_height#*slant-.5u#,0);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lowercase Greek eta";
+beginchar(oct"021",9u#,x_height#,desc_depth#);
+italcorr .8x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-1.5u+.5stem); ital_arch(2,3,4); % arch
+pos5(stem,0); x5=x4; y5-.5stem=-d-o;
+filldraw circ_stroke z5e--z4e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,a,1,2,3,4,5); endchar;
+
+cmchar "Lowercase Greek theta";
+beginchar(oct"022",8.25u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l;
+filldraw stroke z2'e--z4'e; % bar
+math_fit(-.3asc_height#*slant-u#+.5curve#,ic#-.5u#);
+penlabels(1,2,3,4); endchar;
+
+cmchar "Lowercase Greek iota";
+beginchar(oct"023",5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo;
+x2=x1-.25u; x4=w; hook_out(2,3,4)(skewed); % closing hook
+filldraw circ_stroke z1e{down}...{-u,-x_height}z2e; % stem
+math_fit(0,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Lowercase Greek kappa";
+beginchar(oct"024",9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos2(stem,0); pos3(vair,90); pos4(vair,90); pos5(flare,90);
+x1=x2=x3; lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; y2-.5stem=-oo;
+filldraw z1l---z2l..z2r---z1r..cycle; % stem
+y3=bar_height; top y4r=h; x4+.5flare=hround(w-1.5u); z5r=z4r;
+path p,q; p=z3l{right}..{right}z4l; q=z5r{right}..z5l{left}...cycle;
+numeric t; t=ypart(p intersectiontimes q);
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+filldraw subpath(0,t) of q--cycle; % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-epsilon); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,ic#); penlabels(1,2,3,4,5,7,8,9); endchar;
+
+cmchar "Lowercase Greek lambda";
+beginchar(oct"025",10.5u#,asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e; % short diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase Greek mu";
+beginchar(oct"026",9u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem);
+y1+.5stem=h+oo; y2-.5stem=-d-o;
+filldraw z1r---z2r..z2l---z1l..cycle; % left stem
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lowercase Greek nu";
+beginchar(oct"027",8.5u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos3(vair,-90); pos4(stem,0); bot y3r=0; y4+.5stem=h+oo;
+x3-.5stem=hround(1.5u-.5stem); x4+.5stem=hround(w-1.5u+.5stem);
+filldraw circ_stroke z4e{down}...{-36u,-h}z3e; % diagonal
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+top y1=h+min(oo,serif_drop); bot y2=0; x1=x2=x3;
+z=((z4{down}...{-36u,-h}z3)intersectionpoint((x2r,0)--(x2r,h)));
+filldraw z1l--z2l--z--z1r--cycle; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+math_fit(0,ic#-1/3x_height#*slant-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Lowercase Greek xi";
+beginchar(oct"030",9u#,asc_height#,desc_depth#);
+italcorr .75[x_height#,asc_height#]*slant-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos10(hair,-720); pos11(vair,-630); pos12(hair,-540); pos13(vair,-450);
+lft x10l=hround 1/3w; x11=x13=.5[x10,x12]; rt x12l=hround(w-2.5u);
+top y10=h; top y13l=bot y11l+vstem+eps=vround(y10-.25(h-x_height));
+y12=.5[y11,y13]; if y11r>y13r: y11r:=y13r:=y12; fi
+pos0(curve,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90);
+numeric theta; theta=90-angle(22u,x_height); slope:=-x_height/22u;
+pos6(stem,theta); pos7(vair,-90); pos8(vair,-135);
+lft x0l=hround u; x1=x3=x11; x2=x12;
+y0=.5[y13,y1]; top y3l=vround .5h=bot y1l+vstem+eps; y2=.5[y1,y3];
+if y1r>y3r: y1r:=y3r:=y2; fi
+lft x4l=hround u; x4r-x4l=hround .5[vair,stem]-fine;
+x6=x7=w-2u; x8=.5w+.5u; y6=-.3d; bot y7r=-d-oo; y8=max(-3/4d-oo,y7l);
+ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r);
+y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r];
+filldraw circ_stroke z10e{down}...z11e{right}...{up}z12e; % opening hook
+filldraw stroke z12e{up}...z13e{left}...z0e{down}
+ ...z1e{right}...{up}z2e; % upper arc
+filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e
+ ---z5e...{up}z4e...{right}z3e...{down}z2e; % main stroke
+math_fit(-.2asc_height#*slant-.5u#,0);
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13); endchar;
+
+cmchar "Lowercase Greek pi";
+beginchar(oct"031",10u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pi_stroke; % hook and bar
+pos4(hair,0); pos6(hair,0); x4=3.5u; x6=w-4u; y4=y6=y2;
+x5=3u; x7=w-2.5u; y5=y7=.5stem-oo;
+pair v[]; v1=(z4-z5) xscaled 3.14159; v2=(z6-z7) xscaled 3.14159;
+pos5(stem,angle v1-90); pos7(stem,angle v2-90);
+filldraw circ_stroke z5e{v1}...{up}z4e; % left stem
+filldraw circ_stroke z7e{v2}...{up}z6e; % right stem
+math_fit(-.7x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase Greek rho";
+beginchar(oct"032",8.25u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,180); pos2(stem,180); pos3(vair,90);
+pos4(curve,0); pos5(vair,-90); pos6(hair,-180);
+lft x2r=hround(1.5u-.5stem); x1=x2=x6; x3=x5=.5[x2,x4];
+rt x4r=hround(w-1.5u+.5curve);
+y1-.5stem=-d-o; y2=y4=y6=.5[y3,y5]; top y3r=h+oo; bot y5r=-oo;
+filldraw circ_stroke z1e..pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & pulled_arc.e(5,6); % stem and bowl
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase Greek sigma";
+beginchar(oct"033",10.25u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vstem,90); pos2(stem,0); pos3(vair,-90);
+pos4(stem,-180); pos5(vstem,-270); pos6(vstem,-270);
+x1=x3=x5=.5[x2,x4]; rt x2r=hround(w-2.5u);
+lft x4r=hround(1.5u-.5curve);x6=w-1.5u;
+top y1r=h; y2=y4=.5[y1,y3]; bot y3r=-oo; y5=y6=y1;
+filldraw circ_stroke z6e..pulled_arc.e(5,4) & pulled_arc.e(4,3)
+ & pulled_arc.e(3,2) & pulled_arc.e(2,1); % ear and bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase Greek tau";
+beginchar(oct"034",9u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pi_stroke; % hook and bar
+pos4(hair,0); pos5(stem,0);
+x4=x5; x5-.5stem=hround(.5w-.5u-.5stem); y4=y2; y5-.5stem=-oo;
+filldraw circ_stroke z5e--z4e; % stem
+math_fit(-.7x_height#*slant+.5hair#+.5u#,-.5u#);
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Lowercase Greek upsilon";
+beginchar(oct"035",9u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase Greek phi";
+beginchar(oct"036",11u#,asc_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric light_curve; light_curve=hround(.5[stem,curve]-2stem_corr);
+pos1(vair,90); pos2(light_curve,180); pos3(vair,270); pos4(light_curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5light_curve); x4=w-x2;
+top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos5(hair,0); pos6(hair,0); x5=x6=.5w; top y5=h; bot y6=-d-oo;
+filldraw stroke z5e--z6e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase Greek chi";
+beginchar(oct"037",11u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180);
+x1-.5hair=hround-.5hair; x6=w-x1; x2=w-x5=u;
+y1=y2l-h/8; top y2r=h+oo; bot y5l=-d-oo; y6=y5r+h/8;
+z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0);
+numeric theta; theta=angle(z5'-z2')+90;
+pos3(stem,theta); pos4(stem,theta);
+y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5'];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l}
+ ..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks
+x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d;
+numeric theta; theta=angle(z7-z8)-90;
+pos7(hair,theta); pos8(hair,theta);
+filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal
+math_fit((desc_depth#-x_height#)*slant+ic#,ic#);
+penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar;
+
+cmchar "Lowercase Greek psi";
+beginchar(oct"040",11u#,asc_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+pos7(hair,0); pos8(hair,0); x7=x8=.5w+.5u; top y7=h; bot y8=-d-oo;
+filldraw stroke z7e--z8e; % stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lowercase Greek omega";
+beginchar(oct"041",11u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height;
+y1+.5hair=h; x1=x2+.75u; pos1(hair+dw,angle(2(x1-x2),y1-y2)+90);
+pos3(vstem+dw,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vstem+dw,270); pos8(hair,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair);
+x3=.5[x2,x4]; x7-.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5w+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw circ_stroke z1e{2(x2-x1),y2-y1}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}...{up}z8e; % right arc
+v_bulb(8,9); % closing bulb
+math_fit(-bar_height#*slant,2/3ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Variant lowercase Greek epsilon";
+beginchar(oct"042",8u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric light_vstem; light_vstem=Vround 2/3[vair,vstem];
+pos2(light_vstem,90); x2=x8=.5w+.5u; top y2r=h+o;
+x1+.5light_vstem=hround(w-u); y1=.2[y2,bar_height];
+pos1(light_vstem,angle(x1-x2,2(y1-y2))+90); pos3(hair,180); pos4(vair,270);
+pos5(hair,360); pos6(vair,450); pos7(hair,540); pos8(light_vstem,630);
+lft x3r=hround u; x4=x6=.5w; rt x5r=hround(w-2.5u); x7=x3;
+y3=.5[y2,y4]; y5=bar_height=.5[y4,y6]; y7=.5[y6,y8]; bot y8r=-o;
+top y6r-bot y4r=vstem+eps; if y6l<y4l: y6l:=y4l:=y5; fi
+x9+.5vair=hround(w-.5u); y9=1/3[y8,bar_height];
+pos9(vair,angle(x8-x9,2(y8-y9))+90);
+filldraw circ_stroke z1e{x2-x1,2(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & super_arc.e(3,4)...{up}z5e; % upper arc
+filldraw circ_stroke z9e{x8-x9,8(y8-y9)}...pulled_arc.e(8,7)
+ & super_arc.e(7,6)...{down}z5e; % lower arc
+math_fit(-.5bar_height#*slant-.5u#,ic#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Variant lowercase Greek theta";
+beginchar(oct"043",9u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5vair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric light_curve; light_curve=hround .5[stem,curve];
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos2'(stem,-180); z2'=z2; pos3(stem,-180); pos4(vair,-90);
+pos5(light_curve,0); pos6(vair,90); pos7(hair,180); pos8(vair,270);
+x3=x2; x4=x6=.5[x3,x5]; rt x5r=hround(w-1.5u+.5light_curve);
+lft x7r=hround(3.25u-.5hair); x8+.5vair=hround(w+.5vair-epsilon);
+y3=.4x_height; bot y4r=-oo; y5=.5[y4,y6]; top y6r=h+oo;
+y7=.5[x_height,h]; y8=.5[bar_height,x_height];
+filldraw stroke z2'e..{{interim superness:=hein_super; super_arc.e(3,4)}}
+ & pulled_arc.e(4,5) & pulled_arc.e(5,6)
+ ...{down}z7e...{4(x8-x7),y8-y7}z8e; % bowl and loop
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Variant lowercase Greek pi";
+beginchar(oct"044",14.5u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pi_stroke; % hook and bar
+pos4(hair,-180); pos5(hair,-180); pos6(vstem,-90);
+pos7(hair,0); pos7'(hair,-180); z7'=z7;
+pos8(vstem,-90); pos9(hair,0); pos0(hair,0);
+x4=x5+1.5u; lft x5r=hround 2u; x6=x4+.5u; lft x7l=hround(.5w+.25u-.5hair);
+x8=w-4.5u; rt x9r=hround(w-1.5u); x0=x9-1.25u;
+top y4=top y0=h; y5+.1h=y7-.1h=y9=bar_height; bot y6r=bot y8r=-oo;
+filldraw stroke z4e{2(x5-x4),y5-y4}...z5e{down}
+ ...z6e{right}...z7e{up}; % left bowl
+filldraw stroke z0e{2(x9-x0),y9-y0}...z9e{down}
+ ...z8e{left}...z7'e{up}; % right bowl
+math_fit(-.7x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Variant lowercase Greek rho";
+beginchar(oct"045",8.25u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos2(stem,180); pos3(vair,90); pos4(curve,0); pos5(vair,-90); pos6(stem,-180);
+lft x2r=hround(1.5u-.5stem); x2=x6; x3=x5=.5[x2,x4];
+rt x4r=hround(w-1.5u+.5curve);
+y2=y4=y6=.5[y3,y5]; top y3r=h+oo; bot y5r=-oo;
+filldraw circ_stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & pulled_arc.e(5,6); % bowl
+pos2'(hair,-180); z2'r=z2r; pos1(vstem,-90); pos1'(vstem,90); z1'=z1;
+pos0(hair,0); rt x0r=hround(w-u); bot y0=-d; bot y1r=vround-.9d; x1=x5;
+interim superness:=sqrt superness;
+filldraw stroke pulled_arc.e(0,1'); filldraw stroke pulled_arc.e(1,2'); % tail
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Variant lowercase Greek sigma";
+beginchar(oct"046",8u#,x_height#,.5min(desc_depth#,.5x_height#));
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_vair; heavy_vair=.25[vair,vstem];
+pos1(heavy_vair,-110); pos2(vair,-90);
+x1+.5heavy_vair=hround(w-u); y1=.1[y2r,bar_height];
+x2=min(.5w+u,x1r-eps); top y2l=h+oo;
+filldraw circ_stroke z1e{x2-x1,2(y2-y1)}...{left}z2e; % upper bulb
+numeric theta; theta=90-angle(16u,x_height); slope:=-x_height/16u;
+pos6(stem,theta); pos7(vair,-90); pos8(vair,-135);
+lft x4l=hround u; x4r-x4l=(hround .5[vair,stem])-fine;
+x6=x7=w-2u; x8=.5w+u; y6=.25[y8,y2]; y8=y7+1/8d; bot y7r=-d-oo;
+ellipse_set(2l,4l,5l,6l); ellipse_set(2r,4r,5r,6r); y4=y4r;
+filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e
+ ---z5e...{up}z4e...{right}z2e; % main stroke
+math_fit(-.5x_height#*slant-.5u#,0); penlabels(1,2,4,5,6,7,8); endchar;
+
+cmchar "Variant lowercase Greek phi";
+beginchar(oct"047",11u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,-180); x1=x2+.75u; top y1=h;
+pos2(hair,-180); lft x2r=hround .5u; y2=bar_height;
+pos3(vstem,-90); x3=.5(w+u); bot y3r=-oo;
+pos4(hair,0); rt x4r=hround(w-.5u); y4=y2;
+pos5(vstem,90); x5=.52[x6,x4]; top y5r=h+oo;
+pos6(hair,180); x6=x7; y6=1/3h;
+pos7(stem,180); lft x7r=hround(.5w-.5u-.5stem); y7-.5stem=-d-o;
+filldraw circ_stroke z7e---z6e...{right}z5e...{down}z4e...{left}z3e
+ ...{up}z2e...{3(x1-x2),y1-y2}z1e; % bowl and stem
+math_fit(-.3x_height#*slant,ic#); penlabels(1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/greeku.mf b/Master/texmf-dist/fonts/source/public/cm/greeku.mf
new file mode 100644
index 00000000000..279b86d34a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/greeku.mf
@@ -0,0 +1,258 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE greeku.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Greek caps, analogous to the uppercase Roman letters.
+
+% Character codes \0000 through \0012 are generated,
+% using plain \TeX's standard text font layout conventions.
+
+cmchar "Uppercase Greek Gamma";
+beginchar(oct"000",11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase Greek Delta";
+beginchar(oct"001",15u#,cap_height#,0);
+adjust_fit(0,0);
+numeric left_stem,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+x1l=w-x4r=.75u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+y5=y6=cap_vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ unfill z0+.5right{down}...{z4-z3}z6--z5{z2-z1}
+ ...{up}z0+.5left--cycle; % counter
+else: unfill z0--z5--z6--cycle; fi % counter
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase Greek Theta";
+beginchar(oct"002",14u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=hround(cap_curve-2stem_corr);
+penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup crisp.nib; pos5(cap_vstem,90); pos6(cap_vstem,90);
+lft x5=w-rt x6=hround(x2l+u)+1; y5=y6=.5[y1l,y3l];
+filldraw stroke z5e--z6e; % bar
+if serifs: pos7(hair,0); pos8(hair,0); pos9(hair,0); pos10(hair,0);
+ x7l=x8l=x5; x9r=x10r=x6;
+ y7-y5r=y9-y6r=y5l-y8=y6l-y10=vround .05h;
+ filldraw stroke z7e--z8e; % left serif
+ filldraw stroke z9e--z10e; fi % right serif
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Uppercase Greek Lambda";
+beginchar(oct"003",12u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,outer_jut,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase Greek Xi";
+beginchar(oct"004",12u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem];
+if shaved_stem<crisp.breadth: shaved_stem:=crisp.breadth; fi
+pickup crisp.nib; pos1(shaved_stem,90); pos2(hair,0);
+top y1r=h; x1=.5w; rt x2r=hround(w-.85u); y2=good.y(y1l-4/9beak)-eps;
+arm(1,2,a,.4beak_darkness,.3beak_jut); % upper right arm and beak
+pos3(hair,180); x3=w-x2; y3=y2;
+arm(1,3,b,.4beak_darkness,-.3beak_jut); % upper left arm and beak
+pos4(shaved_stem,-90); pos5(hair,0);
+bot y4r=0; x4=.5w; rt x5r=hround(w-.75u); y5=good.y(y4l+.5beak)+eps;
+arm(4,5,c,.4beak_darkness,.3beak_jut); % lower right arm and beak
+pos6(hair,180); x6=w-x5; y6=y5;
+arm(4,6,d,.4beak_darkness,-.3beak_jut); % lower left arm and beak
+pos7(shaved_stem,90); pos8(shaved_stem,90);
+lft x7=w-rt x8=hround if serifs: 2.5 else: 2 fi\\ u;
+top y7r=top y8r=vround(.52h+.5shaved_stem);
+filldraw stroke z7e--z8e; % middle bar
+if serifs: numeric xjut;
+ if bot y2>top y7r+.75cap_jut: xjut=.5cap_jut;
+ else: bot y2=top y7r+1.5xjut; fi
+ pos11(hair,0); pos12(hair,0); y11=y12;
+ pos13(hair,0); pos14(hair,0); y13=y14;
+ lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u;
+ top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7;
+ filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; fi % middle serifs
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,11,12,13,14); endchar;
+
+cmchar "Uppercase Greek Pi";
+beginchar(oct"005",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib;
+h:=vround(h-stem_corr);
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5r=y6r=h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,eps); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(3,4,e,1/3,eps,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase Greek Sigma";
+beginchar(oct"006",13u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(0,0);
+numeric bot_arm_thickness;
+bot_arm_thickness=Vround .25[slab,cap_vstem];
+pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l;
+top y1=h; bot y2=h-slab-eps; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0);
+penpos3(alpha1*(cap_stem-tiny),0);
+alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(cap_hair-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
+arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase Greek Upsilon";
+beginchar(oct"007",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=.5h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(.6cap_stem,0); penpos4(.75cap_curve,90); penpos5(cap_hair,180);
+z3l=lft z1l; x5r=hround u; y5=bot .8h; x4=.61803[x3l,x5l]; y4r=h+o;
+penpos5'(cap_hair,180); x5'=x5; y5'=h;
+fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up}
+ ...{right}z4l...{down}z3l--cycle; % left arc
+penpos6(.6cap_stem,0); penpos7(.75cap_curve,-90); penpos8(cap_hair,-180);
+z6r=rt z1r; x8=w-x5; y8=y5; x7=w-x4; y7=y4;
+penpos8'(cap_hair,-180); x8'=x8; y8'=h;
+fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up}
+ ...{left}z7l...{down}z6l--cycle; % right arc
+if serifs: dish_serif(2,1,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); fi % serif
+math_fit(-.8cap_height#*slant-.5u#,ic#-2.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase Greek Phi";
+beginchar(oct"010",13u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem,light_curve;
+shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5shaved_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5];
+y5r=vround(.15h if serifs:+slab fi);
+penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase Greek Psi";
+beginchar(oct"011",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem;
+shaved_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5shaved_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(shaved_stem,-180); pos4(shaved_stem,-180);
+pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi);
+pos6(shaved_stem,0); pos7(shaved_stem,0);
+lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4;
+pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r;
+y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3');
+interim superness:=more_super;
+filldraw z3'l{right}...z4r{down} & super_arc.r(4,5)
+ & super_arc.r(5,6) & z6r{up}...z7'l{right}
+ --z7r---z7l...z6l{down} & super_arc.l(6,5)
+ & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.8cap_height#*slant-.5u#,.4cap_height#*slant-1.25u#);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Uppercase Greek Omega";
+beginchar(oct"012",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/itald.mf b/Master/texmf-dist/fonts/source/public/cm/itald.mf
new file mode 100644
index 00000000000..de9ef217be0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/itald.mf
@@ -0,0 +1,262 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE itald.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains the ten digits in so-called italic style.
+% Character codes \0060 through \0071 are generated.
+
+% The characters all have the same italic correction.
+
+cmchar "Italic numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround(1.5u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Italic numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=.8h+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u); tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..{left}z4e; % point
+penlabels(1,2,3,4); endchar;
+
+cmchar "Italic numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(curve,-360); pos7(hair,-405); pos8(hair,-360);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair);
+x3=.6[x2,x4]; lft x4r=hround(u-.5hair);
+x5=x7=.5w-.5u; rt x6r=hround(w-u); lft x8l=hround(1.5u-.5hair);
+y1=.5[x_height,h]; y2=1/3[y1,y3]; y4=x_height; bot y3r=vround .78y4;
+top y5r=h+o; y6=.5[y5,y7]; y7=.52y4; bot y8=-o;
+filldraw stroke if not hefty:z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6)
+ ...z7e{2(x7-x6),y7-y6}...{down}z8e; % main stroke
+pos9(vair,-90); pos10(vstem+curve-stem,-90); pos11(hair,0);
+x9=w-x10=2.5u; rt x11r=hround(w-.5u+.5hair);
+y9=.25[y10,y7]; bot y10r=-o; y11=.38x_height;
+filldraw stroke z8e{up}...z9e{right}..{right}z10e...{up}z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Italic numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(stem,-360); pos7(bar,-450); pos8(bar,-450);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
+x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
+y1=.5[x_height,h]; y2=.5[y1,y3]; y7=y8=.52h; bot y3r=vround 1/4[y7,h];
+y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
+filldraw stroke if not hefty: z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
+pos7'(vair,90); z7'l=z7r;
+pos9(curve,0); pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
+y9=.25h; bot y10r=-o; y11=1/3x_height; bulb(10,11,12); % bulb
+filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Italic numeral 4";
+beginchar("4",9u#,fig_height#,desc_depth#);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos6(stem,0); pos7(stem,0);
+pos2(bar,-45); pos3(bar,-90); pos4(bar,-90); pos5(bar,-45);
+rt x1r=hround(.5w+.5u+.5stem); lft x2l=hround .25u;
+x3=2.75u; x4=w-2u; rt x5r=hround(w-.25u);
+rt x6r=rt x7r=hround(2/3w+.5stem);
+y1+.5stem=h+o; bot y2r=0; bot y3r=vround(.08h-.5bar);
+bot y4r=vround-.5bar; bot y5r=vround(.03h-.5bar);
+y6+.5stem=bar_height; y7-.5stem=-d;
+filldraw circ_stroke z1e{down}...{3(x2-x1),y2-y1}z2e; % diagonal
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{x5-x4,2(y5-y4)}z5e; % bar
+filldraw z6l---z7l..z7r---z6r..cycle; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic numeral 7";
+beginchar("7",9u#,fig_height#,desc_depth#);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric fat_curve; fat_curve=1.4[stem,curve];
+pos1(hair,0); pos2(hair,0); pos3(vstem+curve-stem,-90);
+pos4(vair,-90); pos5(hair,0); pos6(fat_curve,0);
+top y1=h+o; y2=x_height; y3l=y5=y1;
+bot y4r=vround(.5[y2,h]-.5vair); y6-.5fat_curve=-o;
+lft x2l=hround(.5u-.5hair); x3=.5w-.5u; x4=2/3w;
+rt x5r=hround(w-.75u+.5hair); rt x6r=hround(.5w+u+.5fat_curve);
+z1=z2+whatever*(z5-z6); filldraw stroke z1e--z2e; % serif
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{2(x5-x6),y5-y6}z5e; % bar
+filldraw circ_stroke z6e{up}...{2(x5-x6),y5-y6}z5e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Italic numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ if lower_side>1.2upper_side: upper_side:=lower_side; fi
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/italig.mf b/Master/texmf-dist/fonts/source/public/cm/italig.mf
new file mode 100644
index 00000000000..c443aebe97b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/italig.mf
@@ -0,0 +1,201 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE italig.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file describes five italic ligatures that begin with `f'
+% and puts them in code positions \0013--\0017.
+
+numeric itc; % modified italic correction on `f' and `ff'
+itc=(asc_height#-x_height#)*slant+.75u#;
+
+ligtable "f": "i"=:oct"014", "f"=:oct"013", "l"=:oct"015",
+ "'" kern itc, "?" kern itc, "!" kern itc, ")" kern itc, "]" kern itc;
+ligtable oct"013": "i"=:oct"016", "l"=:oct"017",
+ "'" kern itc, "?" kern itc, "!" kern itc, ")" kern itc, "]" kern itc;
+
+cmchar "Italic ligature ff";
+beginchar(oct"013",5u#+max(1.5u#,stem#)+max(3.5u#,2flare#)+2letter_fit#,
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(4.8u+2letter_fit,0);
+.5[x88,x99]=.5w-.1u; x89-x88=u; y98=h; y99=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(.5w+1.25u); lft x8r=hround-.35u; x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % left bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower left arc
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90); pos16(.5[hair,stem],0);
+pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
+rt x11r=hround(w+.25u); lft x18r=hround(.5w-1.25u);
+x12=.6[x11,x14]; x17=.5[x18,x15];
+x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
+y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
+bulb(12,11,10); bulb(17,18,19); % right bulbs
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % right stem
+filldraw stroke z15e{z99-z98}...z16e...{left}z17e; % lower middle arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x14l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 20,21,88,89,98,99); endchar;
+
+cmchar "Italic ligature fi";
+beginchar(oct"014",6.5u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-4u-2letter_fit); x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+pos11(stem,0); rt x11r=hround(w-2.5u+.5stem);
+x12=x11; x14=w; hook_out(12,13,14); % closing hook
+x1r=x11r; lft x8r=hround-.35u; x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround-.85d; bot y7r=-d-oo;
+y0+.5flare=vround(.85[x_height,h]); top y2r=h+oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+top y11=x_height; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x11;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;
+
+cmchar "Italic ligature fl";
+beginchar(oct"015",7u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-4.5u-2letter_fit); x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+pos11(stem,0); rt x11r=hround(w-2.5u+.5stem); rt x1r=lft x11l;
+x12=x11; x14=w; hook_out(12,13,14); % closing hook
+lft x8r=hround-.35u; x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+top y11=h; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x11;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,88,89); endchar;
+
+cmchar "Italic ligature ffi";
+beginchar(oct"016",11.75u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +4letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(5u+2letter_fit,0);
+numeric theta,mid_f;
+mid_f=.5[x88,x99]=.5(w-4.25u-2letter_fit); x89-x88=u;
+y98=h; y99=-d; theta=angle(z88-z89);
+pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
+x22=x21; x24=w; hook_out(22,23,24); % closing hook
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(mid_f+1.75u); lft x8r=hround-.35u;
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % left bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower left arc
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90); pos16(.5[hair,stem],0);
+pos17(vair,-90); pos18(hair,-180); pos19(flare,-180);
+x11r=x21r; lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
+x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
+y10+.5flare=vround .85[x_height,h];
+y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
+bulb(12,11,10); bulb(17,18,19); % right bulbs
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % middle stem
+filldraw stroke z15e{z99-z98}...z16e...{left}z17e; % lower middle arc
+top y21=x_height; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; pos30(bar,90); pos31(bar,90);
+top y30r=top y31r=x_height;
+lft x30=lft x4r-.5stem-u; x31=x21;
+filldraw stroke z30e--z31e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,30,31,88,89,98,99); endchar;
+
+cmchar "Italic ligature ffl";
+beginchar(oct"017",12u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +4letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+z98-z88=z99-z89=z14-z4=z15-z5=(5u+2letter_fit,0);
+numeric theta,mid_f;
+mid_f=.5[x88,x99]=.5(w-4.5u-2letter_fit); x89-x88=u;
+y98=h; y99=-d; theta=angle(z88-z89);
+pos21(stem,0); rt x21r=hround(w-2.5u+.5stem);
+x22=x21; x24=w; hook_out(22,23,24); % closing hook
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(mid_f+1.25u); lft x8r=hround-.35u;
+x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % left bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper middle arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower left arc
+pos10(flare,0); pos11(hair,0); pos12(vair,90);
+pos13(.5[hair,stem],180); pos14(stem,theta+90);
+pos15(stem,theta-90); pos16(.5[hair,stem],0);
+pos17(vair,-90); pos18(hair,-180); pos19(flare,-180); rt x11r=lft x21l;
+lft x18r=hround(mid_f-1.25u); x12=.5[x11,x14]; x17=.5[x18,x15];
+x13=.8[x12+x14-x98,x98]; x16=.8[x17+x15-x99,x99];
+y0=y10; y2=y12; y3=y13; y6=y16; y7=y17; y9=y19;
+bulb(12,11,10); bulb(17,18,19); % right bulbs
+filldraw stroke z12e{left}...z13e...{z99-z98}z14e; % upper right arc
+filldraw z14r--z15l--z15r--z14l--cycle; % middle stem
+filldraw stroke z15e{z99-z98}...z16e...{left}z17e; % lower middle arc
+top y21=h; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; pos30(bar,90); pos31(bar,90);
+top y30r=top y31r=x_height;
+lft x30=lft x4r-.5stem-u; x31=x21;
+filldraw stroke z30e--z31e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,
+ 20,21,22,23,24,30,31,88,89,98,99); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/itall.mf b/Master/texmf-dist/fonts/source/public/cm/itall.mf
new file mode 100644
index 00000000000..7c8c717f52c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/itall.mf
@@ -0,0 +1,462 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE itall.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Italic lower case:
+% This lowercase italic alphabet was prepared by D. E. Knuth in December, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Character codes \0141 through \0172 are generated.
+
+cmchar "Italic letter a";
+beginchar("a",9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter b";
+beginchar("b",8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Italic letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter d";
+beginchar("d",9u#,asc_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter e";
+beginchar("e",8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter f";
+beginchar("f",max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+
+cmchar "Italic letter g";
+beginchar("g",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem);
+top y1r=h+oo; bot y3r=0; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pos4(stem,0); y4+.5stem=vround .98h;
+pos5(stem,0); x5=x4; y5=-1/3d;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=vround -.9d;
+lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
+filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
+math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
+ ic#-1/3x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Italic letter h";
+beginchar("h",9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter i";
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+cmchar "Italic letter j";
+beginchar("j",5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr h#*slant+.5stem#-u#;
+adjust_fit(if monospace:2u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-1.5u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+pos8(flare,0); pos9(flare,90);
+rt x8r=rt x2r if not monospace:-.6(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r]; dot(8,9); % dot
+math_fit(desc_depth#*slant,x_height#*slant+.5stem#-u#);
+penlabels(0,1,2,3,4,5,6,8,9); endchar;
+
+cmchar "Italic letter k";
+beginchar("k",8u#,asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic letter l";
+beginchar("l",4u#,asc_height#,0); l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=h; x1=x2; filldraw stroke z1e--z2'e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Italic letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Italic letter p";
+beginchar("p",9u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter q";
+beginchar("q",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem)+eps;
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pickup tiny.nib; pos4(stem,0); pos5(stem,0);
+x4=x5; x6=x5r; top y6=h+oo; bot y4=-d;
+y5=ypart(((x4l,0)--(x4l,y6))intersectionpoint super_arc.r(0,1));
+filldraw z6{2(x5l-x6),y5-y6}...z5l---z4l--z4r--cycle; % stem
+dish_serif(4,5,a,1/3,jut,b,1/3,jut); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Italic letter r";
+beginchar("r",5.5u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+hook_in(0,1,2); % opening hook
+filldraw circ_stroke z3e--z2e; % left stem
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=h+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter s";
+beginchar("s",5.25u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter t";
+beginchar("t",5.5u#,min(asc_height#,10/7x_height#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+filldraw circ_stroke z1e--z2e; % stem
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter u";
+beginchar("u",9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic letter v";
+beginchar("v",8u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter w";
+beginchar("w",12u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:-1.5u#,-u# else: 0,0 fi);
+pickup fine.nib; interim superness:=more_super; begingroup
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if monospace: pos1(vair,90); x1=good.x .5[x0,x2]; top y1r=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z1e{right}...{-u,-x_height}z2e;
+else: hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0);
+x4=.6[x2,x5]; x5=x6=x7; pos6(stem,-180); pos7(stem,-180);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+rt x6l=hround(rt x6l+.5w+.75u-x6); y6+.5stem=h; y7=y3;
+pos8(vair,-90); pos9(hair,0);
+x8=w-2.75u; rt x9r=hround(w-.5u); bot y8r=-oo; y9=y5;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e..super_arc.e(7,8)...{up}z9e; % middle stem and arc
+v_bulb(9,10); % closing bulb
+endgroup; math_fit(-2/3x_height#*slant+.5hair#+.5u#,3/4ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter x";
+beginchar("x",6.5u#+max(1.5u#,flare#),x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90);
+pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19); endchar;
+
+cmchar "Italic letter y";
+beginchar("y",8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic letter z";
+beginchar("z",5.5u#+max(1.5u#,stem#),x_height#,0);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/italms.mf b/Master/texmf-dist/fonts/source/public/cm/italms.mf
new file mode 100644
index 00000000000..b686fceb363
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/italms.mf
@@ -0,0 +1,118 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE italms.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains miscellaneous symbols of math italic fonts.
+% The character codes are \0100, \0140, and \0173--\0177.
+
+cmchar "Partial differential sign";
+beginchar(oct"100",10u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-1.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,90);
+pos3(side_thickness,0); pos4(bot_thickness,-90);
+pos5(side_thickness,-180); pos6(vair,-270);
+lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6+.1u=x2+u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,0); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+pos1(hair,180); pos0(flare,180);
+lft x0r=min(lft x2-eps,hround 1.2u);
+y0=vround min(.85h-.5flare,.8h+.5flare)+o;
+{{less_tense; bulb(2,1,0)}}; % arc and bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase italic script l";
+beginchar(oct"140",4.5u#+max(1.5u#,stem#),asc_height#,0);
+italcorr .8asc_height#*slant-u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,-45); pos2(hair,0); pos3(vair,90);
+pos4(stem,180); pos5(vair,270); pos6(hair,315);
+lft x1l=hround(lft x1l-x1); rt x2r=hround(w-1.5u); x3=.5w;
+lft x4r=hround .5u; x5=x3+.75u; x6=x1+w+1;
+y1=y6=.125h; y2=.8h; top y3r=h+oo; y4=.5[y3,y5]; bot y5=-oo;
+filldraw stroke z1e{10u,asc_height}...z2e{up}...pulled_arc.e(3,4)
+ & pulled_arc.e(4,5)...z6e{10u,asc_height}; % bowl and hook
+math_fit(0,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Dotless italic letter i";
+beginchar(oct"173",5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Dotless italic letter j";
+beginchar(oct"174",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-2u#;
+adjust_fit(if monospace:2u# else: 0 fi, 0); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-2u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+math_fit(desc_depth#*slant,ic#); penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Weierstrass p";
+beginchar(oct"175",11u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5stem#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(8u,h); slope:=-h/8u; % angle at middle
+pos2(vair,-90); pos1(vstem,theta); pos7(vair,-90);
+x2+.5u=x1=x7-.5u=3u; top y2l=h+o; bot y7r=-d-o; y1=.4[-d,h];
+lft x3l=hround .5u; rt x6r=hround max(rt x7+.5,.5w-.25u);
+x3r-x3l=x6r-x6l=(hround .5[vair,vstem])-fine;
+ellipse_set(2l,3l,4l,1l); ellipse_set(2r,3r,4r,1r); y3=y3r;
+ellipse_set(7l,6l,5l,1l); ellipse_set(7r,6r,5r,1r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % flourish
+pos8(hair,180); pos9(vair,90); pos10(stem,0);
+pos11(vair,-90); pos12(hair,-180); pos13(.3[hair,flare],-180);
+rt x10r=hround(w-1.5u+.5stem); lft x12r=hround(.5w-.5u);
+rt x8l=hround 2.25u; x9=x11=max(x12l+eps,.5w+1.5u);
+y8=0; top y9r=vround(.9h+o); y10=.5[y9,y11]; bot y11r=-oo;
+filldraw stroke z7e{left}...z8e{up}...pulled_arc.e(9,10)
+ & pulled_arc.e(10,11); % stem and bowl
+y13-.5(.6[hair,flare])=.15h; bulb(11,12,13); % bulb
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Arrow (vector) accent";
+beginchar(oct"176",9u#,asc_height#+.5rule_thickness#,0);
+italcorr .7[x_height#,asc_height#]*slant;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround .5u; x2=w-x1; y1=y2=good.y .7[x_height,asc_height];
+draw z1--z2; % bar
+rt x3=rt x4=hround(x2-u);
+y3=y2+.3(asc_height-x_height); y4=y2-.3(asc_height-x_height);
+draw z3{x2-x3,2(y2-y3)}...{2(x2-x3),y2-y3}z2; % upper point
+draw z4{x2-x4,2(y2-y4)}...{2(x2-x4),y2-y4}z2; % lower point
+labels(1,2,3,4); endchar;
+
+cmchar "Tie accent";
+beginchar(oct"177",5u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90); pos3(hair,0);
+lft x1r=hround(.5w-.5hair); x2=.5[x1,x3];
+rt x3r=hround(w+4u+2letter_fit+.5hair);
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/italp.mf b/Master/texmf-dist/fonts/source/public/cm/italp.mf
new file mode 100644
index 00000000000..cdca1286294
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/italp.mf
@@ -0,0 +1,100 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE italp.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains `\$' and `\&' and `?' in the so-called italic style.
+
+% Codes \0044, \0046, and \0077 are generated, as well as code |spanish_query|
+% (for a Spanish question mark) if that code value is known.
+
+cmchar "Sterling sign";
+beginchar("$",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9l=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Italic ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr asc_height#*slant-1.5u#;
+adjust_fit(if monospace:-u#,-2u# else: 0,0 fi); pickup fine.nib;
+pos1(flare,0); pos2(hair,0); pos3(vair,90);
+rt x2r=hround.5w; x3=1/3(w-u);
+top y3r=h+o; y2=.5[x_height,h]; bulb(3,2,1); % left bulb
+pos4(stem,180); pos5(vair,270); pos6(hair,360); pos7(vair,450);
+pos8(curve,540); pos9(vair,630); pos10(hair,720);
+lft x4r=hround 1.25u; x5=x7=x3+1/6u; rt x6r=hround(x5+1.5u);
+lft x8r=hround u; x9=.5w; rt x10r=hround(w-1.5u);
+y4=.5[y3,y5]; top y5l=vround .77x_height; y6=.5[y5,y7];
+y7l=good.y 1/3[y5,y3]; y8=.5[y7,y9]; bot y9r=-o; y10=bar_height;
+pos12(hair,0); pos13(curve,0); pos14(hair,0); pos15(vair,90); pos16(curve,90);
+rt x12r=rt x13r=hround(w-2u); lft x14l=hround(.5w+.5u);
+x15=x16=rt x14r+u;
+y12=y13=h-.5curve; y14=.5[bar_height,x_height];
+bot y15l=bot y16l=vround y10;
+numeric theta; theta=angle((z12-z14)xscaled 2);
+pos11(hair,theta); x11=w-4u; y11=.5[y13,y16];
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & pulled_arc.e(7,8) & pulled_arc.e(8,9)
+ & {{interim superness:=more_super; pulled_arc.e(9,10)}}
+ ..tension .9 and 1..{dir(theta+100)}z11e; % bowls, loop, and stem
+pos11'(hair,theta-90); z11'=z11;
+forsuffixes $=l,r: path p$;
+ p$=z12${down}..z11'${-dir theta}..{down}z14$...{right}z15$; endfor
+filldraw p.l--reverse p.r--cycle; % arms
+path q[]; q1=z13r{up}..z13l{down}..cycle;
+q2=z16l{right}..z16r{left}..cycle;
+filldraw subpath(0,ypart(p.l intersectiontimes q1)) of q1--cycle; % upper bulb
+filldraw subpath(0,ypart(p.r intersectiontimes q2)) of q2--cycle; % lower bulb
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+cmchar "Italic question mark";
+beginchar("?",9u#,asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); bot y11l=0; z10=z11; dot(10,11); % dot
+pickup fine.nib; pos1(flare,180); pos2(hair,180); pos3(vair,90);
+lft x1r=hround u; x3=.5w;
+y1-.5flare=x_height; top y3r=h+o; bulb(3,2,1); % bulb
+pos8(vair,-90); x8=.5w; bot y8r=.25[top y11r,x_height]+1;
+numeric theta; theta=90+angle(10u,y3-y8); slope:=(y3-y8)/10u;
+pos3'(vair,-90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+rt x4l=hround(w-1.5u); lft x7r=hround 1/3w;
+x4l-x4r=x7l-x7r=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,0); rt x9r=hround(2/3w+.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{down}
+ ..z5e---z6e..z7e{down} & super_arc.e(7,8)...{up}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff known spanish_query: cmchar "Spanish open italic question mark";
+beginchar(spanish_query,9u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); top y11r=h; z10=z11; dot(10,11); % dot
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,-90);
+rt x1r=hround(w-u); x3=.5w; y1+.5flare=asc_height-x_height-d;
+bot y3r=-d-o; bulb(3,2,1); % bulb
+pos8(vair,90); x8=.5w; top y8r=.25[bot y11l,y1+.5flare]-1;
+numeric theta; theta=angle(10u,y8-y3)-90; slope:=(y8-y3)/10u;
+pos3'(vair,90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+lft x4l=hround 1.5u; rt x7r=hround 2/3w;
+x4r-x4l=x7r-x7l=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,180); lft x9r=hround(1/3w-.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{up}
+ ..z5e---z6e..z7e{up} & super_arc.e(7,8)...{down}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/italsp.mf b/Master/texmf-dist/fonts/source/public/cm/italsp.mf
new file mode 100644
index 00000000000..a4784a49365
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/italsp.mf
@@ -0,0 +1,128 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE italsp.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains special letters and letter combinations,
+% compatible with the alphabet `{\tt itall}'.
+
+% Codes \0020--\0021 and \0031--\0034 are generated.
+
+cmchar "Dotless italic letter i";
+beginchar(oct"020",5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Dotless italic letter j";
+beginchar(oct"021",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-2u#;
+adjust_fit(if monospace:2u# else: 0 fi, 0); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-2u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic German letter es-zet (sharp s)";
+beginchar(oct"031",4.5u#+max(1.5u#,stem#)+max(3.5u#,2flare#),
+ asc_height#,desc_depth#);
+italcorr .9asc_height#*slant-u#;
+adjust_fit(if monospace: u# else: 0 fi,0); pickup fine.nib;
+z88=(.5w-2.75u,h); z89=(.5w-1.75u,-d);
+numeric theta; theta=angle(z88-z89);
+pos1(stem,0); pos2(vair,90); pos3(.5[hair,stem],180);
+pos4(stem,theta+90); pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w-1.5u); lft x8r=hround-.25u; x2=.5[x1,x4]; x7=.5[x8,x5];
+y9-.5flare=vround -.85d; bot y7r=-d-oo; y1=.5[x_height,h]; top y2r=h+oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(7,8,9); % left bulb
+filldraw stroke z1e{up}...z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pos11(.1[hair,curve],-30); x11l=2/3[x12l,x1l]; y11=2/3[y1,y12];
+pos12(.3[hair,curve],0); rt x12r=hround(w-3u); y12=.5h;
+pos13(.8[hair,curve],30); x13=.5[x12,x14]; y13=.5[y12,y14];
+pos14(curve,0); rt x14r=hround(w-.5u); y14=.2h;
+pos15(vair,-90); x15=.5[x14,x16]; bot y15r=-oo;
+pos16(hair,-180); pos17(.6[hair,flare],-180);
+lft x16r=hround(rt x5r+.75u); y17-.5(.6[hair,flare])=.07h;
+filldraw stroke z1e{down}...z11e{1.5(x12e-x11e),y12e-y11e}
+ ...{down}z12e...{2(x13-x12),y13-y12}z13e
+ ...{down}z14e...{left}z15e; % stroke
+bulb(15,16,17); % inner bulb
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; z21=whatever[z4,z5];
+filldraw stroke z20e--z21e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,20,21,88,89); endchar;
+
+cmchar "Italic ligature ae";
+beginchar(oct"032",13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos7(light_stem,0); pos8(light_stem,0);
+x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
+pos7'(vair,-225); pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x12=.5[x11,x3];
+y11=.3[y12,y7]; bot y12r=-oo;
+filldraw stroke z7'e{3(x11-x7),y11-y7}...pulled_arc.e(11,12)
+ & pulled_arc.e(12,3'); % bowl of a
+filldraw z7l---z8l..z8r---z7r..cycle; % stem
+penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
+
+cmchar "Italic ligature oe";
+beginchar(oct"033",13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos11(vair,90); pos12(curve,180); pos13(vair,270); pos14(stem,360);
+x11=x13=.5[x12,x14]; lft x12r=hround(1.5u-.5curve); x14=x3;
+top y11=h+oo; y12=y14=.5[y11,y13]; bot y13=-oo;
+filldraw stroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
+ & pulled_arc.e(13,14) & pulled_arc.e(14,11); % bowl
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic Scandinavian letter o/slash";
+beginchar(oct"034",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr h#*slant-u#+.5vair#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(fudged.stem,180);
+pos3(vair,270); pos4(fudged.stem,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5fudged.stem); x4=w-x2;
+top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+x5=x4; x6=x2; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/mathex.mf b/Master/texmf-dist/fonts/source/public/cm/mathex.mf
new file mode 100644
index 00000000000..e751ca57ba5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/mathex.mf
@@ -0,0 +1,16 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE mathex.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% The Computer Modern Math-Extension family (by D. E. Knuth, 1979--1985)
+
+font_coding_scheme:="TeX math extension";
+mode_setup; font_setup;
+
+input bigdel; % large delimiters
+input bigop; % large operators
+input bigacc; % large accents
+
+font_x_height x_height#;
+font_quad 18u#+4letter_fit#;
+% (The calling file should give the other math extension font parameters.)
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cm/mathit.mf b/Master/texmf-dist/fonts/source/public/cm/mathit.mf
new file mode 100644
index 00000000000..2975b821fb6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/mathit.mf
@@ -0,0 +1,65 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE mathit.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% The Computer Modern Math Italic family (by D. E. Knuth, 1979--1985)
+
+font_coding_scheme:="TeX math italic";
+mode_setup; font_setup;
+
+input romanu; % upper case (majuscules)
+input itall; % lower case (minuscules)
+input greeku; % upper case greek letters
+input greekl; % lower case Greek letters
+input italms; % special symbols for math italic
+font_slant slant; font_x_height x_height#;
+font_quad 18u#+4letter_fit#;
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input olddig; % oldstyle numerals
+input romms; % roman math specials
+
+skewchar=oct"177"; skew#=.5u#;
+save comma;
+period=oct"72"; comma=oct"73"; slash=oct"75"; % non-ASCII positions
+ligtable "h": skewchar kern -skew#;
+ligtable oct"027":oct"034": comma kern -u#, period kern -u#, % $\nu:\tau:$
+ "L":"g":"u":"v":"x": oct"013": oct"026": % $L:g:u:v:x:\alpha:\mu:$
+ oct"035":oct"173": skewchar kern skew#; % $\upsilon:\imath:$
+ligtable "U": comma kern-2u#, period kern-2u#, % $U:$
+ slash kern-u#, skewchar kern skew#;
+ligtable "K":oct"011": slash kern-u#, % $K:\it\Psi:$
+ oct"016":"r": comma kern-u#, period kern-u#, % $\delta:r:$
+ "D":"c":"e":"o":"s":"y":"z":oct"017": % $D:c:e:o:s:y:z:\epsilon:$
+ oct"021":oct"023":oct"037": skewchar kern 2skew#; % $\eta:\iota:\chi:$
+ligtable oct"007": slash kern-u#, % $\it\Upsilon:$
+ comma kern-2u#, period kern-2u#, skewchar kern 2skew#;
+ligtable oct"005":"H": slash kern-u#, % $\it\Pi:H:$
+ comma kern-u#, period kern-u#, skewchar kern 2skew#;
+ligtable "N":"X": slash kern -1.5u#, % $N:X:$
+ "C":"T": slash kern -.5u#, comma kern -u#, period kern -u#, % $C:T:$
+ "B":"E":"G":"O":"Q":"R":oct"174": % $B:E:G:O:Q:R:\jmath:$
+ "l":"p":"q":"t":"w":oct"002":oct"004": % $l:p:q:t:w:\it\Theta:\Xi:$
+ oct"006":oct"010":oct"012":oct"014": % $\it\Sigma:\Phi:\Omega:\beta:$
+ oct"020":oct"022":oct"032":oct"036": % $\zeta:\theta:\rho:\phi:$
+ oct"042":oct"043":oct"045": % $\varepsilon:\vartheta:\varrho:$
+ oct"046":oct"047":oct"100": % $\varsigma:\varphi:\partial:$
+ skewchar kern 3skew#;
+ligtable "M":"S":"Z": slash kern-u#, % $M:S:Z:$
+ comma kern-u#, period kern-u#, skewchar kern 3skew#;
+ligtable oct"000":"F":"P": slash kern -u#, % $\it\Gamma:F:P:$
+ comma kern-2u#, period kern-2u#, skewchar kern 3skew#;
+ligtable "I":oct"030":oct"040":oct"140":oct"175": % $I:\xi:\psi:\ell:\wp:$
+ skewchar kern 4skew#;
+ligtable "A": skewchar kern 5skew#; % $A:$
+ligtable "d": "Y" kern u#, "Z" kern-u#, "j" kern-2u#, "f" kern-3u#, % $d:$
+ oct"001":oct"003": skewchar kern 6skew#; % $\it\Delta:\Lambda:$
+ligtable "f": comma kern-u#, period kern-u#, skewchar kern 6skew#; % $f:$
+ligtable "J": slash kern-u#, % $J:$
+ comma kern-2u#, period kern-2u#, skewchar kern 6skew#;
+ligtable "j":oct"033": comma kern -u#, period kern -u#; % $j:\sigma:$
+ligtable "V":"W":"Y":comma kern-3u#, period kern-3u#, % $V:W:Y:$
+ slash kern-2u#;
+ligtable slash: oct"001" kern -u#, "A" kern -u#, "M" kern -u#, % $/:$
+ "N" kern -u#, "Y" kern +u#, "Z" kern -u#;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cm/mathsy.mf b/Master/texmf-dist/fonts/source/public/cm/mathsy.mf
new file mode 100644
index 00000000000..6bb656d721c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/mathsy.mf
@@ -0,0 +1,32 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE mathsy.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% The Computer Modern Symbols family (by D. E. Knuth, 1979--1985)
+
+font_coding_scheme:="TeX math symbols";
+mode_setup; font_setup;
+
+autorounding:=hair;
+input calu; % upper case calligraphic alphabet
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input symbol; % the symbols
+
+if not monospace:
+ skewchar=oct"060"; skew#=.5u#;
+ ligtable "I": "T": "V": skewchar kern skew#;
+ ligtable "K": skewchar kern 2skew#;
+ ligtable "D": "N": "P": "R": "U": "W": "Y": skewchar kern 3skew#;
+ ligtable "E": "F": "G": "H": "O": "Q": skewchar kern 4skew#;
+ ligtable "B": "C": "L": "M": "S": "X": "Z": skewchar kern 5skew#;
+ ligtable "J": skewchar kern 6skew#;
+ ligtable "A": skewchar kern 7skew#;
+fi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cm/olddig.mf b/Master/texmf-dist/fonts/source/public/cm/olddig.mf
new file mode 100644
index 00000000000..fb1dad6e6c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/olddig.mf
@@ -0,0 +1,317 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE olddig.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains the ten digits in so-called old style.
+% Character codes \0060 through \0071 are generated.
+
+cmchar "Oldstyle numeral 0";
+beginchar("0",9u#,x_height#,0);
+italcorr .7x_height#*slant-max(.2u#,.95u#-.5curve#);
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Oldstyle numeral 1";
+beginchar("1",9u#,x_height#,0);
+italcorr x_height#*slant+.5cap_stem#-4.25u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=if monospace: .8 else: .9 fi\\ h+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+cmchar "Oldstyle numeral 2";
+beginchar("2",9u#,x_height#,0);
+italcorr .8x_height#*slant-.4u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[vair,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .8u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/3)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround .8[hair,flare];
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}..{z5e-z4e}z4e--z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Oldstyle numeral 3";
+beginchar("3",9u#,x_height#,desc_depth#);
+italcorr .8x_height#*slant-.4u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6);
+pos8(bot_thickness,-90); bot y8r=-d-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54[-d,h]+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h+d);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9[-d,h]-.5bulb_diam1,.75[-d,h]+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1[-d,h]+.5bulb_diam2,.3[-d,h]-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h+d)); lft x1r=hround u;
+ bot y1l=(vround .75[-d,h])+o; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h-d));
+ lft x9r=hround .75u; top y9l=(vround .25[-d,h])-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Oldstyle numeral 4";
+beginchar("4",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-2.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u); bot y5l=0;
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); pos2'(light_stem,0); x2'=x7;
+rt x7r=x1r; bot y7=-d if not serifs:-o fi;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Oldstyle numeral 5";
+beginchar("5",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant-u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53[-d,h]-vair);
+top y6r=max((vround .61803[-d,h])+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-d-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5[-d,y5]; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h-d));
+ lft x9r=hround .9u; bot y9r=(vround .15[-d,h])-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u);
+ y2=y1l-eps; arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=(vround .95[-d,h])+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Oldstyle numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Oldstyle numeral 7";
+beginchar("7",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(2epsilon,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-d-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-d-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3[-d,h]; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Oldstyle numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ if lower_side>1.2upper_side: upper_side:=lower_side; fi
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Oldstyle numeral 9";
+beginchar("9",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant-u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-d-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=(vround 3/8[-d,h])-o;
+path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1[-d,h]+.5flare,.15[-d,h]-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=(vround .07[-d,h])-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/punct.mf b/Master/texmf-dist/fonts/source/public/cm/punct.mf
new file mode 100644
index 00000000000..51fa8e166d4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/punct.mf
@@ -0,0 +1,287 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE punct.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains punctuation marks common to roman and italic styles.
+
+% Codes \0041, \0043, \0045, \0047--\0054,\ %
+%% \0056, \0057, \0072, \0073, \0075, \0100,\par
+% \0133, \0135, and \0140 are generated, as well as code |spanish_shriek|
+% (for a Spanish exclamation point) if that code value is known.
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff known spanish_shriek: cmchar "Spanish open exclamation point";
+beginchar(spanish_shriek,5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Hash mark (number sign)";
+if monospace: compute_spread(.6x_height#,.7x_height#);
+else: compute_spread(.45x_height#,.55x_height#); fi
+beginchar("#",15u#,asc_height#,asc_depth#);
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+adjust_fit(0,0);
+pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); endchar;
+
+cmchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Semicolon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+cmchar "At sign";
+beginchar("@",14u#,asc_height#,0);
+italcorr .7asc_height#*slant-.5u#;
+adjust_fit(0,if hefty or monospace:-2u# else: 0 fi);
+pickup fine.nib; pos0(fudged.hair,0); pos1(vair,90);
+pos2(fudged.stem,180); pos3(vair,270);
+pos4(fudged.stem,-180); pos5(fudged.stem,-180);
+pos6(vair,-90); pos7(fudged.hair,0);
+pos8(vair,90); pos9(fudged.hair,180);
+pos10(vair,270); pos11(.5[vair,flare],360);
+x1=x3=.5[x0,x2]; y0=y2=.5[y1,y3];
+x8=x10=.5w; y7=y9=.5[y8,y10];
+lft x9r=hround u; x7=w-x9; top y8r=h+oo; bot y10r=-oo;
+top y1r=vround(.8[y10,y8]+.5vair); bot y3r=vround(.2[y10,y8]-.5vair);
+x6l=1/3[x5l,x7l]; y6=y3; y11=good.y(.1[y10,y8]-.5);
+x0=x4=x5; y4=.8[y3,y1]; y5=2/3[y7,y6];
+if hefty or monospace: lft x2r=hround(5u-.5fudged.stem);
+ rt x0r=hround(w-3u); x11r=x0r;
+else: lft x2r=hround 3.4u; x0=w-x2; x11r=x7r; fi
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % left inner bowl
+filldraw stroke super_arc.e(3,0) & super_arc.e(0,1); % right inner bowl
+filldraw stroke super_arc.e(8,9) & super_arc.e(9,10)
+ & term.e(10,11,right,1,4); % left outer bowl and terminal
+if hefty or monospace: {{interim superness:=hein_super;
+ filldraw stroke super_arc.e(0,8)}}; % link
+else: (x,y6r)=whatever[z6l,z7l]; x6r:=x;
+ filldraw stroke z4e---z5e...z6e{right}...{up}z7e
+ & super_arc.e(7,8); fi % stem and link
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/roman.mf b/Master/texmf-dist/fonts/source/public/cm/roman.mf
new file mode 100644
index 00000000000..38fb3b7f0fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/roman.mf
@@ -0,0 +1,67 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE roman.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% The Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+
+if ligs>1: font_coding_scheme:="TeX text";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+mode_setup; font_setup;
+
+input romanu; % upper case (majuscules)
+input romanl; % lower case (minuscules)
+input greeku; % upper case Greek letters
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to roman and italic text
+input accent; % accents common to roman and italic text
+if ligs>1: input romlig; fi % letter ligatures
+if ligs>0: input comlig; fi % ligatures common with italic text
+if ligs<=1: input romsub; fi % substitutes for ligatures
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "k": if serifs: "v": "a" kern -u#, fi\\"w": "e" kern k#,
+ "a" kern k#, "o" kern k#, "c" kern k#;
+ ligtable "P": "A" kern kk#,
+ "y": "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, "," kern kk#;
+ ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#, "u" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ else: "o" kern k#, "e" kern k#, "u" kern k#,
+ "r" kern k#, "a" kern k#, "A" kern kk#, fi
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": "y" kern if serifs: k# else: kk# fi,
+ "Y": "e" kern kk#, "o" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ if serifs: ligtable "h": "m": "n":
+ "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#;
+ ligtable "c": "h" kern k#, "k" kern k#; fi
+ ligtable "o": "b": "p": "e" kern -k#, "o" kern -k#, "x" kern k#,
+ "d" kern -k#, "c" kern -k#, "q" kern -k#,
+ "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "t": "y" kern k#,
+ "u": "w" kern k#;
+ ligtable "A": if serifs: "R": fi\\ "t" kern k#,
+ "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#;
+ ligtable "g": "j" kern -k#; % logjam
+ ligtable "I": "I" kern -k#; fi % Richard III
+ % there are ligature/kern programs for |"f"| in the {\tt romlig} file
+ % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cm/romand.mf b/Master/texmf-dist/fonts/source/public/cm/romand.mf
new file mode 100644
index 00000000000..de91054d2df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/romand.mf
@@ -0,0 +1,321 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romand.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman digits:
+% This file contains the ten digits in so-called roman style.
+% Character codes \0060 through \0071 are generated.
+
+% All digits have the same height, width, depth, and italic correction.
+
+cmchar "The numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+cmchar "The numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}..{z5e-z4e}z4e--z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(15u,.1h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75h+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 4";
+beginchar("4",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab,h-light_stem]+1
+ else:.35(h-light_stem) fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=0;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(eps,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3h; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ if lower_side>1.2upper_side: upper_side:=lower_side; fi
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/romanl.mf b/Master/texmf-dist/fonts/source/public/cm/romanl.mf
new file mode 100644
index 00000000000..64f4dede4d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/romanl.mf
@@ -0,0 +1,823 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romanl.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman lower case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Character codes \0141 through \0172 are generated.
+
+cmchar "The letter a";
+beginchar("a",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The letter b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter d";
+beginchar("d",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter f";
+beginchar("f",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+iff not variant_g: cmchar "The letter g";
+beginchar("g",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=if serifs: Vround .77[vair,fudged.stem] else: vair fi;
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: cmchar "Variant letter g";
+beginchar("g",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The letter h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter i";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,hround(x1+.5dot_diam-.2jut)-.5tiny)
+else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter j";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("j",5.5u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+cmchar "The letter l";
+beginchar("l",5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2); endchar;
+
+cmchar "The letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; % stem, sic
+lft x3l=hround(.5w-.5mfudged.stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)+r-w; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter p";
+beginchar("p",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter q";
+beginchar("q",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter s";
+beginchar("s",7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter t";
+beginchar("t",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter u";
+beginchar("u",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+cmchar "The letter v";
+beginchar("v",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "The letter w";
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter x";
+beginchar("x",if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The letter y";
+beginchar("y",if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter z";
+beginchar("z",8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/romanp.mf b/Master/texmf-dist/fonts/source/public/cm/romanp.mf
new file mode 100644
index 00000000000..ce20bef287b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/romanp.mf
@@ -0,0 +1,122 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romanp.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains `\$' and `\&' and `?' in the so-called roman style.
+
+% Codes \0044, \0046, and \0077 are generated, as well as code |spanish_query|
+% (for a Spanish question mark) if that code value is known.
+
+cmchar "Dollar sign";
+beginchar("$",9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o;
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(fudged.hair,0);
+ rt x0r+jut=hround(w-.9u); top y0=x_height;
+ pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)];
+ y1=max(y0-1.5bracket-.2x_height,2/3x_height);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u);
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(vair,theta); y5=.5h;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=w-3.5u; bot y10l=-o;
+pos9(fudged.stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height;
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[slab,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .07bar_height-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff known spanish_query: cmchar "Spanish open question mark";
+beginchar(spanish_query,8.5u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); top y8r=h; z7=z8; dot(7,8); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(top_width,180); pos6(top_width,180);
+x2=x4=x5=x6=x7; lft x3r=hround u; top y6=.25[bot y8l,h-x_height]-1;
+bot y2r=-d-oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],-70);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,bot y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/romanu.mf b/Master/texmf-dist/fonts/source/public/cm/romanu.mf
new file mode 100644
index 00000000000..9d471221eb8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/romanu.mf
@@ -0,0 +1,741 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romanu.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Computer Modern Roman upper case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Character codes \0101 through \0132 are generated.
+
+cmchar "The letter A";
+beginchar("A",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter B";
+beginchar("B",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The letter C";
+if serifs: beginchar("C",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar("C",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+oo; top y2r=h+oo; y3=.5h;
+ bot y4r=-oo; bot y5r=vround .08h-oo; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The letter D";
+beginchar("D",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter E";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter F";
+beginchar("F",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter G";
+if serifs: beginchar("G",14u#,cap_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar("G",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+oo; top y2r=h+oo; y3=.5h;
+ bot y4r=-oo; bot y5r=vround .07h-oo;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter H";
+beginchar("H",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter I";
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "The letter J";
+beginchar("J",9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter K";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter L";
+beginchar("L",11u#-width_adj#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The letter M";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "The letter N";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+cmchar "The letter O";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The letter P";
+beginchar("P",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter Q";
+beginchar("Q",14u#-width_adj#,cap_height#,comma_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=cap_curve-hround stem_corr;
+penpos1(vair',90); penpos3(vair',-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"Q"| like |"O"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup tiny.nib;
+if hefty: penpos5(1.2(.5[cap_bar,light_curve]),0); penpos6(1.2light_curve,0);
+ x5=.5w; x6r=hround(w-1.5u);
+ y5=vround .28h; y6=-d;
+ fill diag_end(6r,5r,.25,1,5l,6l)--diag_end(5l,6l,.5,1,6r,5r)--cycle; % tail
+else: pos3'(vair,270); pos5(vair,180); pos6(vair,90);
+ pos7(cap_curve,85); penpos8(eps,180);
+ z3'=z3; x6=x3; top y6r=vround(.2h+.5vair);
+ lft x5r=hround(.5w-1.25u-.5vair); y5=.5[y3,y6];
+ bot y7l=-d; x7l=2/3[x6,x8]; y8=0; rt x8=hround(x4r+.1u);
+ filldraw stroke z3'e{left}...z5e{up}...z6e{right}
+ ..z7e{right}...z8e{up}; fi % tail
+math_fit(-.3cap_height#*slant-.5u#,ic#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter R";
+beginchar("R",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter S";
+beginchar("S",10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter T";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter U";
+beginchar("U",13u#+.5width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter V";
+beginchar("V",13u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+math_fit(.75u#-cap_height#*slant,ic#-4u#); penlabels(0,1,2,3,4); endchar;
+
+cmchar "The letter W";
+beginchar("W",18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter X";
+beginchar("X",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The letter Y";
+beginchar("Y",13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter Z";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/romlig.mf b/Master/texmf-dist/fonts/source/public/cm/romlig.mf
new file mode 100644
index 00000000000..b837ac2e059
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/romlig.mf
@@ -0,0 +1,166 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romlig.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file describes five roman ligatures that begin with `f'
+% and puts them in code positions \0013--\0017.
+
+numeric itc#; % modified italic correction on `f' and `ff'
+itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi;
+
+ligtable "f": "i"=:oct"014", "f"=:oct"013", "l"=:oct"015",
+ "'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#;
+ligtable oct"013": "i"=:oct"016", "l"=:oct"017",
+ "'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#;
+
+cmchar "The ligature ff";
+beginchar(oct"013",10.5u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-3u+.5stem');
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); pos12(bulb_diam,0);
+ rt x2r=hround(rt x11r-stem_corr); lft x12l=hround(w-.75u+.5);
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 6.25u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(w+.75u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,1.25jut); % right stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-1/3u);
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+cmchar "The ligature fi";
+beginchar(oct"014",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x12r;
+ y2+.5bulb_diam=.8[x_height,h+oo]; top y11=x_height+min(oo,serif_drop);
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(6/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u;
+ pickup tiny.nib; pos13(bulb_diam,0); pos14(bulb_diam,90);
+ x13=x11-.5; top y14r=min(10/7x_height+.5bulb_diam,h)+1; top y11=x_height;
+ if bot y14l-x_height<tiny: y14l:=min(y14r-eps,y11+2tiny); fi
+ x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+fi; % this is the ligature we're drawing
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup tiny.nib; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11; % bar will overlap upper right serif
+ sloped_serif.l(11,12,d,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "The ligature fl";
+beginchar(oct"015",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0; top y11=h;
+filldraw stroke z11e--z12e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ y2+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(11,12,d,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u; fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11;
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+cmchar "The ligature ffi";
+beginchar(oct"016",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r;
+ top y21=x_height+min(oo,serif_drop);
+ y2+.5bulb_diam=.8[x_height,h+oo]; y12=y2;
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(6/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u);
+ pickup tiny.nib; pos23(bulb_diam,0); pos24(bulb_diam,90);
+ x23=x21-.5; top y24r=min(10/7x_height+.5bulb_diam,h)+1; top y21=x_height;
+ if bot y24l-x_height<tiny: y24l:=min(y24r-eps,y21+2tiny); fi
+ x23=x24; y23=.5[y24l,y24r]; dot(23,24); fi % dot
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup tiny.nib; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x21; % bar will overlap upper right serif
+ sloped_serif.l(21,22,g,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+else: rt x4=hround(.5w+2.8u); fi
+pickup crisp.nib;
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22,23,24); endchar;
+
+cmchar "The ligature ffl";
+beginchar(oct"017",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0; top y21=h;
+filldraw stroke z21e--z22e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r-stem_corr;
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(21,22,g,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+ pickup crisp.nib; x4=x21;
+else: rt x4=hround(.5w+2.8u); fi
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/romms.mf b/Master/texmf-dist/fonts/source/public/cm/romms.mf
new file mode 100644
index 00000000000..4716a4d2650
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/romms.mf
@@ -0,0 +1,244 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romms.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains special characters of ``math italic'' fonts
+% that actually are not supposed to be slanted.
+% Codes \0050--\0057, \0072--\0077, and \0133--\0137 are generated.
+
+% The italic corrections are zero in all of these characters.
+
+cmchar "Leftward top half arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"050",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0+4u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0--(x0,y2l)--z1l{right}..{left}z1r
+ --subpath (t,0) of\\(z3r..{2(x0-x3),y0-y3}z5r)
+ --z3l..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Leftward bottom half arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"051",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0+4u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0{2(x4-x0),y4-y0}..z4l
+ --subpath (0,t) of\\(z4r..{2(x0-x4),y0-y4}z6r)
+ --z1l{right}..{left}z1r--(x0,y2r)--cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward top half arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"052",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0-4u-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0--(x0,y2l)--z1l{left}..{right}z1r
+ --subpath (t,0) of\\(z3l..{2(x0-x3),y0-y3}z5r)
+ --z3r..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward bottom half arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"053",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0-4u-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0{2(x4-x0),y4-y0}..z4r
+ --subpath (0,t) of\\(z4l..{2(x0-x4),y0-y4}z6r)
+ --z1l{left}..{right}z1r--(x0,y2r)--cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Left hook";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"054",5u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
+draw z1{left}...z2{down}...z3{right}; % hook
+labels(1,2,3); endchar;
+
+cmchar "Right hook";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"055",5u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+rt x2=hround(w-u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
+draw z1{right}...z2{down}...z3{left}; % hook
+labels(1,2,3); endchar;
+
+cmchar "Triangle pointing right";
+beginchar(oct"056",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup rule.nib;
+numeric a,b; a=sqrt(3.14159\\ /sqrt3); % triangle area $=$ circle area
+b=.5w-(rt hround u); .5[x1',x2']=.5w; x2'-x1'=a*b*sqrt3;
+x1=x3=good.x x1'; x2=good.x x2';
+y2=.5[y1,y3]=math_axis; y1=good.y(y2+a*b);
+draw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+cmchar "Triangle pointing left";
+beginchar(oct"057",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup rule.nib;
+numeric a,b; a=sqrt(3.14159\\ /sqrt3); % triangle area $=$ circle area
+b=.5w-(rt hround u); .5[x1',x2']=.5w; x1'-x2'=a*b*sqrt3;
+x1=x3=good.x x1'; x2=good.x x2';
+y2=.5[y1,y3]=math_axis; y1=good.y(y2+a*b);
+draw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(oct"072",5u#,dot_diam#,0); % non-ASCII position
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(oct"073",5u#,dot_diam#,comma_depth#); % non-ASCII position
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar("<",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Virgule (slash)";
+beginchar(oct"075",9u#,body_height#,paren_depth#); % non-ASCII position
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(">",14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Five-pointed star";
+beginchar(oct"077",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric theta; theta=360/5; % degrees between points
+pos0(curve,0); pos1(rule_thickness,90); x0=x1=good.x .5w;
+top y1r=vround(math_axis+.5x_height+.5rule_thickness);
+ypart(.5[z1,z0+(z1-z2) rotated 2theta])=math_axis;
+pos2(curve,theta); pos3(rule_thickness,90+theta);
+z2=z0; z3-z0=(z1-z0) rotated theta;
+z4=whatever[z0l,z1r]=whatever[z2r,z3r];
+filldraw for n=0 upto 4:
+ z0+(z1r-z0)rotated(n*theta)--z0+(z4-z0)rotated(n*theta)--endfor
+ cycle; % star
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Musical flat sign";
+beginchar(oct"133",7u#,body_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+numeric light_hair; light_hair=if hefty: vair else: hair fi;
+pos1(light_hair,0); pos2(light_hair,180); pos3(light_hair,0); x1=x2=x3;
+pos4(.25[light_hair,curve],60); pos5(curve,0);
+lft x1l=hround u; x4=.5w; rt x5r=hround(w-u);
+top y1=h; bot y3=-o; top y4=x_height+o;
+y2=y4-.2x_height; y5=3/4x_height;
+filldraw stroke z1e--z3e; % stem
+filldraw stroke z2e{up}...z4e{right}...z5e{down}
+ ...{2(x3-x5e),y3-y5e}z3e; % bowl
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Musical natural sign";
+beginchar(oct"134",7u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric light_hair; light_hair=if hefty: vair else: hair fi;
+pos1(light_hair,0); pos2(curve,90); pos3(curve,90);
+pos4(curve,90); pos5(curve,90); pos6(light_hair,0);
+rt x1r=hround 15/8u; x2=x4=x1l; x3=x5=x6r=w-x2;
+y1=h+o; top y2r=0; .5[y2,y3]=0; y4-y2=y5-y3=x_height; bot y6=-d-o;
+x2'=x1r; z2'=whatever[z2r,z3r]; x5'=x6l; z5'=whatever[z4l,z5l];
+(x1r,y)=z1l+whatever*(z5-z4); y6l:=y6l-(y-y1r); y1r:=y;
+filldraw z1l--z2l--z3l--z3r--z2'--z1r--cycle; % left stem and lower bar
+filldraw z6r--z5r--z4r--z4l--z5'--z6l--cycle; % right stem and upper bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Musical sharp sign";
+beginchar(oct"135",7u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric light_hair; light_hair=if hefty: vair else: hair fi;
+pos1(curve,90); pos2(curve,90); pos3(curve,90); pos4(curve,90);
+lft x1=lft x3=hround u; x2=x4=w-x1;
+top y3r=0; .5[y3,y4]=0; y1-y3=y2-y4=x_height;
+filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; % bars
+numeric theta,hstem; theta=angle(z2-z1);
+(hstem-crisp)*cosd theta=light_hair-crisp;
+pos5(hstem,theta); pos6(hstem,theta); pos7(hstem,theta); pos8(hstem,theta);
+lft x5l=lft x6l=hround(2u-.5light_hair); x7=x8=w-x6;
+top y7l=h+o; bot y6r=-d-o; z7-z5=z8-z6=(whatever,0) rotated theta;
+filldraw stroke z5e--z6e; filldraw stroke z7e--z8e; % stems
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Slur below (smile)";
+beginchar(oct"136",18u#,v_center(.5x_height#));
+adjust_fit(0,0); pickup fine.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+x1-.5hair=hround u; y1+.5hair=vround(h+.5hair); x3=w-x1; y3=y1;
+pos2(light_stem,90); x2=.5w; y2l=good.y -d;
+numeric theta; theta=angle((z2-z1)yscaled 3);
+pos1(hair,90+theta); pos3(hair,90-theta);
+filldraw z1l{dir theta}...z2l...{dir-theta}z3l
+ ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Slur above (frown)";
+beginchar(oct"137",18u#,v_center(.5x_height#));
+adjust_fit(0,0); pickup fine.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+x1-.5hair=hround u; y1-.5hair=vround(-d-.5hair); x3=w-x1; y3=y1;
+pos2(light_stem,90); x2=.5w; y2=good.y h;
+numeric theta; theta=angle((z2-z1)yscaled 3);
+pos1(hair,90+theta); pos3(hair,90-theta);
+filldraw z1l{dir theta}...z2l...{dir-theta}z3l
+ ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle; % arc
+penlabels(1,2,3); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/romspl.mf b/Master/texmf-dist/fonts/source/public/cm/romspl.mf
new file mode 100644
index 00000000000..5a67e2edc2f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/romspl.mf
@@ -0,0 +1,188 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romspl.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains special letters and letter combinations,
+% compatible with the alphabet `{\tt romanl}'.
+
+% Codes \0020--\0021 and \0031--\0034 are generated.
+
+cmchar "Dotless letter i";
+beginchar(oct"020",5u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2); endchar;
+
+cmchar "Dotless letter j";
+beginchar(oct"021",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+penlabels(1,2,5,6,7); endchar;
+
+cmchar "German letter es-zet (sharp s)";
+beginchar(oct"031",4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
+penpos3(vair-fine,90); fine.top y3r=h+oo;
+filldraw stroke z1e--z2e; % stem
+numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
+pickup fine.nib; pos4(curve',0); pos5(vair,-90);
+pos2'(stem',180); z2'=z2; x3=.5[x2,x4]; rt x4r=hround(w-u);
+top y5l=x_height; lft x5=min(lft x4l,hround(stem_edge+u));
+filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull); % upper bowl
+pos5'(vair,90); z5'=z5; pos6(curve',0); pos7(vair,-90);
+rt x6r=hround(w-.5u)+3eps; y6=.4x_height; bot y7r=-oo;
+if serifs: pos8(hair,-180) else: pos8(vair,-110) fi;
+lft x8r=min(hround(stem_edge+.5u+1),lft x8r+x6r-2eps-x8l);
+x7=max(x8l+eps,.4[lft x8r,x6]);
+filldraw stroke pulled_super_arc.e(5',6)(.5superpull)
+ & pulled_super_arc.e(6,7)(.5superpull); % lower bowl
+if serifs: pos9(5/7[vair,flare],-180);
+ y9-(x9-lft x9r)=vround .07x_height; bulb(7,8,9); % bulb
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % bar
+ dish_serif(1,2,b,1/3,jut,c,0,epsilon); % serif
+else: bot y8r=vround .01h; x8l:=good.x x8l; y8l:=good.y(y8l+.5);
+ filldraw stroke term.e(7,8,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The ligature ae";
+beginchar(oct"032",13u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % right terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(mfudged.hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=4u;
+ y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=4.3u; top y1r=vround .82[bar_height,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % left terminal
+pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
+pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
+filldraw stroke super_arc.e(3,4)&z4e--z5e; % arc and stem
+pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
+pos7(left_curve,180);
+lft x7r=hround max(.5u,1.5u-.5left_curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=3.75u; bot y8r=-oo;
+pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
+(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if y9<y5: filldraw stroke z5e{down}..{down}z9e; fi % link (usually hidden)
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+cmchar "The ligature oe";
+beginchar(oct"033",14u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(fine.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5(w+u)-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; pos1(vair,90); pos3(vair,-90);
+pos2(left_curve,180); pos4(mfudged.stem,0);
+lft x2r=hround max(.5u,1.25u-.5curve);
+z4=z13; x1=x3=.5[x2,x4]; top y1r=h+vround 1.5oo; bot y3r=-oo;
+y2=y4; y2l:=y4l:=.52h;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of left bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of left bowl
+penlabels(1,2,3,4,10,11,12,13,14,15); endchar;
+
+cmchar "Scandinavian letter o/slash";
+beginchar(oct"034",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr h#*slant-u#-max(.5fudge*stem#,.75u#)+.5vair#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90);
+penpos2(fudged.stem,180); penpos4(fudged.stem,0);
+x2r=hround max(.5u,1.25u-.5fudged.stem);
+x4r=w-x2r; x1=x3=.5w;
+y1r=x_height+vround 1.5oo; y2=y4=.5x_height-vair_corr; y3r=-oo;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+x5=x4; x6=x2; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/romspu.mf b/Master/texmf-dist/fonts/source/public/cm/romspu.mf
new file mode 100644
index 00000000000..0a102b87b9b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/romspu.mf
@@ -0,0 +1,110 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romspu.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file contains special letters and letter combinations,
+% compatible with the alphabet `{\tt romanu}'.
+
+% Codes \0035--\0037 are generated.
+
+cmchar "The ligature AE";
+beginchar(oct"035",16u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,mid_stem,outer_jut,alpha;
+mid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(mid_stem,0); pos2(mid_stem,0);
+lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0); x5=x1;
+top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.65u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,.5cap_jut); fi % lower middle serif
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+cmchar "The ligature OE";
+beginchar(oct"036",18u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric light_stem;
+light_stem=max(tiny.breadth,hround .8[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround .5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.4u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+penpos11(vair,90); penpos13(vair,-90);
+if monospace: penpos12(fudged.cap_stem,180);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: penpos12(hround(cap_curve-stem_corr),180); fi
+x11=x13=.5w-2u; y11r=h+o; y13r=-o; y12=.5h-vair_corr; x12r=hround u;
+x14=x15=.5w; y14=2/3h; y15=1/3h; y12l:=.52h;
+penstroke super_arc.e(11,12) & super_arc.e(12,13); % left half of bowl
+fill z13r{right}..{right}(x2,0)--(x1,h){left}..{left}z11r
+ --z11l{right}...{z14-z11l}(.82[x11l,x14],.82[y14,y11l])
+ ...z14---z15...{z13l-z15}(.82[x13l,x15],.82[y15,y13l])
+ ...{left}z13l--cycle; % right half of bowl
+if serifs: serif(1,2,a,1/3,.5cap_jut); % upper serif
+ serif(2,1,b,1/3,.5cap_jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15); endchar;
+
+cmchar "Scandinavian letter O/slash";
+beginchar(oct"037",14u#,cap_height#+.25desc_depth#,.25desc_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90);
+penpos2(fudged.cap_stem,180); penpos4(fudged.cap_stem,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"| not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w;
+y1r=cap_height+o; y2=y4=.5cap_height-vair_corr; y3r=-o;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+x5=x4-vair; x6=x2+vair; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair',theta); pos6(vair',theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/romsub.mf b/Master/texmf-dist/fonts/source/public/cm/romsub.mf
new file mode 100644
index 00000000000..b7ea6fa2613
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/romsub.mf
@@ -0,0 +1,41 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE romsub.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file defines characters that go into a text font when |ligs<=1|.
+
+% Character codes \0013--\0015, \0074, and \0076 are generated when |ligs=1|;
+% in addition, codes \0040, \0042, \0055, \0134, \0137, and \0173--\0175
+% are generated, if |ligs=0|.
+
+up_arrow=oct"013"; down_arrow=oct"014";
+less=ASCII"<"; greater=ASCII">";
+if ligs=0: straight_quotes=oct"042"; minus=ASCII"-";
+ backslash=ASCII"\"; underbar=ASCII"_";
+ left_brace=ASCII"{"; vertical=ASCII"|"; right_brace=ASCII"}"; fi
+
+input sym;
+
+cmchar "Straight single quote";
+beginchar(oct"015",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+adjust_fit(0,0);
+x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; fi % stem
+penlabels(1,2); endchar;
+
+iff ligs=0: cmchar "Blank-space sign";
+beginchar(oct"040",9u#,bar_height#,.5desc_depth#);
+italcorr bar_height#*slant-.25u#;
+adjust_fit(0,0);
+numeric thin_vair#; thin_vair#=.7vair#;
+define_whole_blacker_pixels(thin_vair);
+forsuffixes $=1,2,3,4: penpos$(thin_vair,0); endfor
+penpos0(thin_vair,90); x0=.5w; y0l=vround(-d-.5thin_vair);
+x1=x2; x3=x4=w-x1; lft x1l=hround .75u;
+y1=y4=h; y2=y3=y0;
+fill z1l---z2l...(x2,y0l)---(x3,y0l)...z3r---z4r
+ ..z4l---(x3l,y0r)--(x2r,y0r)---z1r..cycle; % the stroke
+penlabels(0,1,2,3,4); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/sym.mf b/Master/texmf-dist/fonts/source/public/cm/sym.mf
new file mode 100644
index 00000000000..96c5602cd2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/sym.mf
@@ -0,0 +1,461 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE sym.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file generates the following characters when their codes are known:
+% |minus|, |plus_minus|, |o_plus|, |o_times|,
+% |cup|, |cap|, |meet|, |join|,
+% |down_arrow|, |up_arrow|,
+% |left_arrow|, |right_arrow|, |double_arrow|,
+% |subset|, |superset|, |elt|,
+% |for_all|, |there_exists|, |false_that|,
+% |less|, |greater|, |underbar|,
+% |neq|, |leq|, |geq|, |eqv|,
+% |backslash|, |vertical|,
+% |cdot|, |diamond|,
+% |left_brace|, |right_brace|,
+% |straight_quotes|, |infty|, |integral|.
+
+iff known minus: cmchar "Minus sign";
+beginarithchar(minus); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+iff known plus_minus: cmchar "Plus-or-minus sign";
+beginarithchar(plus_minus); pickup rule.nib;
+numeric shiftup; shiftup=vround 1.5u;
+x1=x2=.5w; lft x3=lft x5=hround u-eps; x4=x6=w-x3;
+.5[y1,y2]=y3=y4=math_axis+shiftup; top y1=h+shiftup; y5=y6=y2;
+draw z1--z2; % stem
+draw z3--z4; % plus bar
+draw z5--z6; % minus bar
+labels(1,2,3,4,5,6); endchar;
+
+iff known o_plus: cmchar "Circle-plus operator";
+beginarithchar(o_plus); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z2--z6; draw z4--z8; % bar and stem
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known o_times: cmchar "Circle-times operator";
+beginarithchar(o_times); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z1--z5; draw z3--z7; % diagonals
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known cup: cmchar "Set union sign";
+beginchar(cup,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y1=good.y h+o; bot y3=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+labels(1,2,3,4,5); endchar;
+
+iff known cap: cmchar "Set intersection sign";
+beginchar(cap,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y3=good.y h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+labels(1,2,3,4,5); endchar;
+
+iff known meet: cmchar "Lattice infimum (logical and) sign";
+beginchar(meet,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+y3=good.y h+o; bot y1=-o; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+iff known join: cmchar "Lattice supremum (logical or) sign";
+beginchar(join,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+y1=good.y h+o; bot y3=-o; y5=y1;
+draw z1--z3--z5; % diagonals
+labels(1,3,5); endchar;
+
+iff known down_arrow: cmchar "Downward arrow";
+beginchar(down_arrow,9u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0+if monospace:.24 else:.36 fi asc_height+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ ---z1r..z1l---subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known up_arrow: cmchar "Upward arrow";
+beginchar(up_arrow,9u#,asc_height#,asc_depth#);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0-if monospace:.24 else:.36 fi asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ ---z1r..z1l---subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known left_arrow: cmchar "Leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(left_arrow,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;
+x3=x4=x0+if monospace:3u else:4u fi+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ ---z1l..z1r---subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known right_arrow: cmchar "Rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(right_arrow,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;
+x3=x4=x0-if monospace:3u else:4u fi-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ ---z1l..z1r---subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known double_arrow: cmchar "Left-and-right arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(double_arrow,18u#,
+ v_center(if monospace:.6asc_height#+fi spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis if monospace:+vround.3asc_height fi; lft x0=hround u;
+if monospace: x1+.5rule_thickness=hround(w-u) else: x1=.5w fi;
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;
+x3=x4=x0+if monospace:3u else:4u fi+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ ---z1l..z1r---subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead and stem
+pos11(rule_thickness,90); pos12(rule_thickness,90);
+pos13(rule_thickness,0); pos14(rule_thickness,0);
+y10=y11=y12=math_axis if monospace:-vround.3asc_height fi;
+rt x10=hround(w-u);
+if monospace: x11-.5rule_thickness=hround u else: x11=.5w fi;
+y13-y10=y10-y14=if monospace:.24 else:.36 fi asc_height+eps;
+x13=x14=x10-if monospace:3u else:4u fi-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.2[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y12l)--(w,y12l))); x12=xpart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ ---z11l..z11r---subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar;
+
+iff known subset: cmchar "Proper subset sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(subset,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+labels(1,2,3,4,5); endchar;
+
+iff known superset: cmchar "Proper superset sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(superset,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+labels(1,2,3,4,5); endchar;
+
+iff known elt: cmchar "Element sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(elt,12u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=x6=w-x2;
+y1-y3=spread; y2=y6=.5[y1,y3]=math_axis;
+x4=x5=.5w+u; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+draw z2--z6; % middle bar
+labels(1,2,3,4,5,6); endchar;
+
+iff known for_all: cmchar "Universal quantifier";
+beginchar(for_all,10u#,asc_height#,0);
+italcorr asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+x2=good.x .5w; center_on(x2);
+lft x1=0; x3=w-x1;
+top y1=h; bot y2=-o; y3=y1; y4=y5=good.y x_height;
+z4=whatever[z1,z2]; z5=whatever[z2,z3];
+draw z1--z2--z3; % diagonals
+draw z4--z5; % bar
+labels(1,2,3,4,5); endchar;
+
+iff known there_exists: cmchar "Existential quantifier";
+beginchar(there_exists,10u#,asc_height#,0);
+italcorr asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x3=x5=w-x1; x4=x6-.25u=x1;
+top y1=h; bot y4=0; y2=y1; y5=y6=.5[y1,y3]; y3=y4;
+draw z1--z2--z3--z4; % upper bar, stem, lower bar
+draw z5--z6; % middle bar
+labels(1,2,3,4,5,6); endchar;
+
+iff known false_that: cmchar "Logical not sign";
+beginchar(false_that,12u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x3=w-x1;
+y1=y2=good.y .5[bar_height,h]; y2-y3=1.2(h-bar_height);
+draw z1--z2--z3; % bar and stem
+labels(1,2,3); endchar;
+
+iff known less: cmchar "Less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(less,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+iff known greater: cmchar "Greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(greater,14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+iff known underbar: cmchar "Underbar suitable for < and >";
+compute_spread((5/8+.45)*x_height#,(3/4+.55)*x_height#);
+beginchar(underbar,14u#,0,spread#-math_axis#+.5rule_thickness#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; bot y1=bot y2=-d;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+iff known neq: cmchar "Unequals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(neq,14u#,v_center(4spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; draw z3--z4; % bars
+lft x6=hround 3.5u-eps; x5=w-x6; top y5=h+o; bot y6=-d-o;
+draw z5--z6; % diagonal
+labels(1,2,3,4,5,6); endchar;
+
+iff known leq: cmchar "Less than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(leq,14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+iff known geq: cmchar "Greater than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(geq,14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+iff known eqv: cmchar "Equivalence or congruence sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(eqv,14u#,v_center(2spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x5=x1; x2=x4=x6=w-x1;
+y1=y2; y3=y4=math_axis; y5=y6; y1-y3=y3-y5=spread;
+draw z1--z2; % upper bar
+draw z3--z4; % middle bar
+draw z5--z6; % lower bar
+labels(1,2,3,4,5,6); endchar;
+
+iff known backslash: cmchar "Reverse slash (backslash)";
+beginchar(backslash,9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; top y1=h+eps;
+rt x2=hround(w-u)+eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+labels(1,2); endchar;
+
+iff known vertical: cmchar "Vertical line";
+beginchar(vertical,5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+iff known cdot: cmchar "Period raised to axis height";
+beginchar(cdot,5u#,v_center(7u#));
+adjust_fit(0,0); pickup fine.nib;
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); y1+.5dot_diam=vround(math_axis+.5dot_diam);
+z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+iff known diamond: cmchar "Diamond operator";
+beginchar(diamond,9u#,v_center(7u#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=(lft 3.5u)*sqrt(3.14159/2); % an attempt to match circle area
+x4=x8=good.x .5w; center_on(x4); x2=w-x6=good.x(x4+a);
+y2=y6=.5[y4,y8]=math_axis; y8=good.y(y2+a);
+draw z2--z4--z6--z8--cycle; % bowl
+labels(2,4,6,8); endchar;
+
+iff known left_brace: cmchar "Left curly brace";
+beginchar(left_brace,9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+iff known right_brace: cmchar "Right curly brace";
+beginchar(right_brace,9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+iff known straight_quotes: cmchar "Straight double quotes";
+beginchar(straight_quotes,9u#,asc_height#,0);
+numeric top_width#,spread#; top_width#=if serifs: flare# else: stem# fi;
+spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+italcorr asc_height#*slant+.5top_width#+.5spread#-4u#;
+adjust_fit(0,0);
+x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ pos3(flare,0); pos4(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % left stem and bulb
+ filldraw circ_stroke z3e--z4e; % right stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; fi % right stem
+penlabels(1,2,3,4); endchar;
+
+iff known infty: cmchar "Infinity";
+beginchar(infty,18u#,x_height#,0);
+italcorr .7x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta,phi;
+if monospace: phi=-theta=90;
+else: phi=angle(4u,h); theta=angle(6u,-h); fi
+pos1(vair,180); pos2(.5[vair,curve],90+.5theta); pos3(curve,90+theta);
+pos4(curve,90+theta); pos5(.5[vair,curve],90+.5theta);
+pos6(vair,180); pos7(.2[vair,curve],270+.5phi);
+pos8(.3[vair,curve],270+phi); pos9(.2[vair,curve],270+.5phi);
+lft x1r=w-rt x6l=hround u; x2=x9=.4[x1,x8]; x5=x7=.6[x8,x6];
+if monospace: x2l:=x2r; x5r:=x5l; x7r:=x7l; x9l:=x9r; fi
+y1=y6=.5h; top y2r=top y7l=h+oo; bot y5l=bot y9r=-oo;
+x8=.5[x3,x4]=.5w; y8=.5[y3,y4]=.5h;
+y3-y4=h/3; z3-z4=whatever*dir theta;
+filldraw stroke z1e{up}...z2e{right}...z3e---z4e...z5e{right}
+ ...z6e{up}...z7e{left}...{-dir phi}z8e...{left}z9e...z1e{up}; % bowls
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+iff known integral: cmchar "Integral sign";
+beginchar(integral,5.25u#+max(1.25u#,stem#)+2max(1.5u#,curve#),
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(.6[hair,stem],180);
+pos5(stem,180); pos5'(stem,0); z5'=z5; pos6(.6[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+x7=w-x3=2.4u; rt x1r=max(rt x3+eps,hround(w-u)); x9=w-x1;
+x5=.5[x4,x6]; x4-x6=1.5u; lft x5r=hround(.5w-.5stem);
+y9-.5curve=vround(-.9d-o+vair); y3-y1=y9-y7;
+top y3r=h+o; bot y7r=-d-o; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=2/3(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+math_fit(0,-2u#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/symbol.mf b/Master/texmf-dist/fonts/source/public/cm/symbol.mf
new file mode 100644
index 00000000000..7a778624069
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/symbol.mf
@@ -0,0 +1,1043 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE symbol.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This file defines the symbols of a \TeX\ math symbol font.
+% Character codes \0000--\0100 and \0133--\0177 are generated.
+
+% (Improvements to the author's original characters were worked out in 1982
+% by Ronald F. Whitney and other members of
+% the American Mathematical Society.)
+
+% Italic corrections have not been computed for most of these characters,
+% since they are generally not slanted.
+
+minus=oct"000"; cdot=oct"001"; diamond=oct"005";
+plus_minus=oct"006"; o_plus=oct"010"; o_times=oct"012";
+eqv=oct"021"; leq=oct"024"; geq=oct"025";
+subset=oct"032"; superset=oct"033";
+left_arrow=oct"040"; right_arrow=oct"041";
+up_arrow=oct"042"; down_arrow=oct"043"; double_arrow=oct"044";
+infty=oct"061"; elt=oct"062";
+for_all=oct"070"; there_exists=oct"071"; false_that=oct"072";
+cup=oct"133"; cap=oct"134"; meet=oct"136"; join=oct"137";
+left_brace=oct"146"; right_brace=oct"147"; vertical=oct"152";
+backslash=oct"156"; integral=oct"163";
+
+input sym; % symbols common to other fonts
+
+cmchar "Times operator";
+beginarithchar(oct"002"); pickup rule.nib;
+x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+labels(1,2,3,4); endchar;
+
+cmchar "Asterisk at the axis";
+beginchar(oct"003",9u#,v_center(x_height#));
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Elementary division operator";
+beginarithchar(oct"004"); pickup fine.nib; pickup rule.nib;
+numeric del; del=dot_size-currentbreadth; % currentbreadth=fine
+x3-.5del=good.x(.5w-.5del); center_on(x3);
+y3+.5del=good.y(math_axis+math_spread[.5x_height,.6x_height]+.5del);
+lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Minus-or-plus sign";
+beginarithchar(oct"007"); pickup rule.nib;
+numeric shiftup; shiftup=-vround 1.5u;
+x1=x2=.5w; lft x3=lft x5=hround u-eps; x4=x6=w-x3;
+.5[y1,y2]=y3=y4=math_axis+shiftup; top y1=h+shiftup; y5=y6=y1;
+draw z1--z2; % stem
+draw z3--z4; % plus bar
+draw z5--z6; % minus bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Circle-minus operator";
+beginarithchar(oct"011"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z2--z6; % bar
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Circle-divide operator";
+beginarithchar(oct"013"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z1--z5; % diagonal
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Circle-dot operator";
+beginarithchar(oct"014"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+fill fullcircle scaled(1.3dot_size+eps) shifted(.5[z4,z8]); % dot
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Circle for copyright, etc.";
+beginchar(oct"015",18u#,asc_height#,desc_depth#); autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Circle operator";
+beginchar(oct"016",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; top y8=h; y8-y4=x2-x6;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Bullet";
+beginchar(oct"017",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; top y8=h; y8-y4=x2-x6; circle_points;
+filldraw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle; % circle and interior
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Hardy's asymptotic equivalence sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"020",14u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; x5=x6=.5w;
+y1=y2=good.y h; y3=y4; .5[y1,y3]=.5[y5,y6]=math_axis;
+y5=good.y .3[y1,y3];
+draw z1{x5-x1,2(y5-y1)}...z5{right}...z2{x2-x5,2(y2-y5)}; % upper bar
+draw z3{x6-x3,2(y6-y3)}...z6{right}...z4{x4-x6,2(y4-y6)}; % lower bar
+labels(1,2,3,4); endchar;
+
+cmchar "Subset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"022",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Superset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"023",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Precedes or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"026",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{-u,-spread}...{left}z2; % upper diagonal
+draw z3{-u,spread}...{left}z2; % lower diagonal
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+cmchar "Follows or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"027",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{u,-spread}...{right}z2; % upper diagonal
+draw z3{u,spread}...{right}z2; % lower diagonal
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+cmchar "Similarity sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"030",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+bot y1=bot y3=-d; top y2=top y4=h;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+labels(1,2,3,4); endchar;
+
+cmchar "Approximate equality sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54x_height#,.66x_height#);
+beginchar(oct"031",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+y1=y3; top y2=top y4=h; top y2-bot y1=spread';
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread);
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Much less sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"034",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x2=hround u-epsilon; x1=x3=hround 12.5u-x2;
+y1-y3=ceiling 1.1spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % left diagonals
+z4-z1=z5-z2=z6-z3; x4=w-x2; y4=y1;
+draw z4--z5--z6; % right diagonals
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Much greater sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"035",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x1=hround u-epsilon; x2=hround 12.5u-x1; x3=x1;
+y1-y3=ceiling 1.1spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % left diagonals
+z4-z1=z5-z2=z6-z3; x4=w-x2; y4=y1;
+draw z4--z5--z6; % right diagonals
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Precedes sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"036",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-epsilon; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{-u,-spread}...{left}z2; % upper diagonal
+draw z3{-u,spread}...{left}z2; % lower diagonal
+labels(1,2,3); endchar;
+
+cmchar "Follows sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"037",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-epsilon; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{u,-spread}...{right}z2; % upper diagonal
+draw z3{u,spread}...{right}z2; % lower diagonal
+labels(1,2,3); endchar;
+
+cmchar "Northeast arrow";
+beginchar(oct"045",18u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y1-.5rule_thickness=-d; top y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(rule_thickness,90+theta);
+pos3(rule_thickness,theta); pos4(rule_thickness,theta);
+z3-z0=(-4u,.36asc_height) rotated theta;
+z4-z0=(-4u,-.36asc_height) rotated theta;
+pos5(rule_thickness,-90); z5l=z0; pos6(rule_thickness,-180); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ ---z1l..z1r---subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Southeast arrow";
+beginchar(oct"046",18u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y1+.5rule_thickness=h; bot y0=-d;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta+45)<2.5: theta:=-45; y1:=y0+x0-x1; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(rule_thickness,90+theta);
+pos3(rule_thickness,theta); pos4(rule_thickness,theta);
+z3-z0=(-4u,.36asc_height) rotated theta;
+z4-z0=(-4u,-.36asc_height) rotated theta;
+pos5(rule_thickness,180); z5l=z0; pos6(rule_thickness,90); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ ---z1l..z1r---subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Similar or equal sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"047",14u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+bot y1=bot y3=floor math_axis; top y2=top y4=h;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+pickup rule.nib; lft x5=hround u-eps; x6=w-x5; y5=y6=math_axis-spread;
+draw z5--z6; % bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Double leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"050",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; lft x0=hround u-eps; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+6u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Double rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"051",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x1; x7=x8=w-x1;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; rt x0=hround(w-u)+eps; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0-6u-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(w,y3)
+ --(w,y4)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Double upward arrow";
+beginchar(oct"052",11u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+bot y1=bot y2=-d-eps; top y7=h; y8=y7;
+x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; top y0=h+eps; x0=good.x .5w;
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+x2-x3=x4-x1=3u+eps; y3=y4=y0-.48asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,h)
+ --(x4,h)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Double downward arrow";
+beginchar(oct"053",11u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+top y1=top y2=h+eps; bot y7=-d; y8=y7;
+x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; bot y0=-d-eps; x0=good.x .5w;
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+x2-x3=x4-x1=3u+eps; y3=y4=y0+.48asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,-d)
+ --(x4,-d)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Double left-and-right arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"054",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace: -u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; lft x0=hround u-o; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+5u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess at left
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead
+rt x10=hround(w-u)+o; y10=good.y math_axis;
+pos13(rule_thickness,0); pos14(rule_thickness,0);
+y13=y3; y14=y4; x13=x14=x10-5u-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+erase filldraw z10..{z13-z19}z13--(w,y13)
+ --(w,y14)--z14{z19-z14}..z10 & cycle; % erase excess at right
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y10)--(w,y10)));
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,19); endchar;
+
+cmchar "Northwest arrow";
+beginchar(oct"055",18u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y1-.5rule_thickness=-d; top y0=h;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta+45)<2.5: theta:=-45; y1:=y0+x0-x1; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta); pos2(rule_thickness,-90+theta);
+pos3(rule_thickness,-180+theta); pos4(rule_thickness,-180+theta);
+z4-z0=(4u,.36asc_height) rotated theta;
+z3-z0=(4u,-.36asc_height) rotated theta;
+pos5(rule_thickness,0); z5l=z0; pos6(rule_thickness,-90); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ ---z1l..z1r---subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Southwest arrow";
+beginchar(oct"056",18u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y1+.5rule_thickness=h; bot y0=-d;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta); pos2(rule_thickness,-90+theta);
+pos3(rule_thickness,-180+theta); pos4(rule_thickness,-180+theta);
+z4-z0=(4u,.36asc_height) rotated theta;
+z3-z0=(4u,-.36asc_height) rotated theta;
+pos5(rule_thickness,90); z5l=z0; pos6(rule_thickness,0); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ ---z1l..z1r---subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Proportionality sign";
+beginchar(oct"057",16.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,-2.5u#); pickup fine.nib;
+numeric theta,phi; phi=angle(3u,h); theta=angle(5u,-h);
+pos1(vair,180); pos2(.5[vair,stem],90+.5theta); pos3(stem,90+theta);
+pos4(stem,90+theta); pos5(.5[vair,stem],90+.5theta);
+pos6(vair,180); pos7(.2[vair,stem],270+.5phi);
+pos8(.3[vair,stem],270+phi); pos9(.2[vair,stem],270+.5phi);
+lft x1r=w-rt x6l=hround u; x2=x9=.4[x1,x8]; x5=x7=.6[x8,x6];
+if monospace: x2l:=x2r; x5r:=x5l; x7r:=x7l; x9l:=x9r; fi
+y1=y6=.5h; top y2r=top y7l=h+oo; bot y5l=bot y9r=-oo;
+x8=.5[x3,x4]=.5w; y8=.5[y3,y4]=.5h;
+y3-y4=h/3; z3-z4=whatever*dir theta;
+filldraw stroke z1e{up}...z2e{right}...z3e---z4e...z5e{right}...z6e{up}
+ ...z7e{left}...{-dir phi}z8e...{left}z9e...z1e{up}; % `infinity' bowls
+erase fill (w-3.5u,h+o)--(w,h+o)
+ --(w,-o)--(w-3.5u,-o)--cycle; % erase excess
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Prime symbol (intended as superscript only)";
+beginchar(oct"060",3u#+max(1.75u#,curve#+2(curve#-stem#)),
+ .8asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric light_stem,heavy_stem;
+light_stem=hround .5[vair,stem]; heavy_stem=hround(bold+2dw);
+x1+.5heavy_stem=hround(w-.25u); y1+.5heavy_stem=h;
+x2-.5light_stem=hround .5u; y2=1/12asc_height;
+numeric theta; theta=angle(z1-z2)-90;
+pos1(heavy_stem,theta); pos2(light_stem,theta);
+filldraw circ_stroke z1e--z2e; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Ownership sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"063",12u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3=x6=w-x2;
+y1-y3=spread; y2=y6=.5[y1,y3]=math_axis;
+x4=x5=.5w-u; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+draw z2--z6; % middle bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Large triangle";
+beginchar(oct"064",16u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+bot y1=0; y2=y1; top y3=h+o;
+.5[x1,x2]=x3=good.x .5w; center_on(x3); lft x1=hround(.5w-u*sqrt48);
+draw z1--z2--z3--cycle; % stroke
+labels(1,2,3); endchar;
+
+cmchar "Large inverted triangle";
+beginchar(oct"065",16u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+top y1=h-d; y2=y1; bot y3=-d-o;
+.5[x1,x2]=x3=good.x .5w; center_on(x3); lft x1=hround(.5w-u*sqrt48);
+draw z1--z2--z3--cycle; % stroke
+labels(1,2,3); endchar;
+
+cmchar "Zero-width slash to negate a relation";
+beginchar(oct"066",14u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt x5=hround(w-2.5u)-eps; lft x6=hround 2.5u+eps;
+top y5=h+o; .5[y5,y6]=math_axis;
+draw z5--z6; % diagonal
+labels(5,6); zero_width; endchar;
+
+cmchar "Maps-to relation";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"067",14u#,v_center(spread#+rule_thickness#));
+% this character should be followed immediately by minus or rightarrow
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; x2=x1+.5u; x3=x4=x1;
+y1=y2=math_axis; y1-y3=y4-y1=.24asc_height+eps;
+draw z3--z4; % stem
+draw z1--z2; % bar stub
+labels(1,2,3,4); zero_width; endchar;
+
+cmchar "Empty set symbol";
+beginchar(oct"073",9u#,body_height#,body_height#-asc_height#);
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(stem,180); penpos4(stem,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5stem);
+x4r=w-x2r; x1=x3=.5w; y1r=asc_height+o; y3r=-o;
+y2=y4=.5asc_height-vair_corr; y2l:=y4l:=.52asc_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+pickup rule.nib; lft x6=hround 2u-eps; x5=w-x6; top y5=h+o; bot y6=-d-o;
+draw z5--z6; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase Fraktur R";
+beginchar(oct"074",13u#,asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,0); pos2(vair,90); pos3(1/6[hair,stem],190);
+pos4(1/4[hair,stem],210); pos5(1/8[hair,stem],190);
+pos6(vair,90); pos7(cap_stem,0); pos8(cap_stem,0);
+pos9(vair,-90); pos10(hair,-135); pos11(hair,-135);
+pos12(vair,135); pos13(vair,135);
+lft x1l=lft x5r=hround u; x2=.4[x1,x3]; rt x3l=hround 3.5u; x4=.6[x3,x5];
+x6=3u; lft x7=hround(6u-.5cap_stem); x8=x7;
+x9=3.5u; x10=5/3u; x11=4/3u; x12=u; x13=2u;
+y1=.47h; bot y2l=vround.35h; y3=1/3[y2,y6]; y5=3/4[y2,y6]; y4=.6[y3,y5];
+top y6r=h+oo; y7=.64h; y8=.57y7; bot y9r=-o;
+y10=1/6y7; y12=1/5y7; y13=1/4y7;
+z11-z10=whatever*(z13-z12) rotated 90;
+filldraw stroke z1e{down}...z2e{right}...z3e{up}..z4e..z5e{up}
+ ...pulled_arc.e(6,7)..pulled_arc.e(8,9)
+ ...z10e---z11e; % flourish and left stem
+filldraw stroke z12e--z13e; % cross
+pos20(cap_bar,180); pos21(cap_bar,90);
+x20=x7; y20=.75h; rt x21=hround(w-3.5u+.5cap_stem); top y21r=h+o;
+filldraw stroke z20e{up}...{right}z21e; % top of bowl
+rt x22r=hround(w-.1u); y22r=good.y .64h;
+numeric theta; theta=angle(z21r-z22r);
+pos22(cap_stem,theta-90); pos23(cap_bar,theta); z22l=z23l;
+path p; p=z20{up}...(z21--(w,y21));
+z=p intersectionpoint(z22l--z22l+(h,0) rotated theta);
+filldraw z--z21r--z22r--z22l--cycle; % diagonal of bowl
+pos24(cap_bar,90); pos25(cap_bar,90); x24=w-4u; x25=x7;
+y24=y25; top y24r=vround(.52h+.5cap_bar);
+filldraw stroke z23e{dir(theta+90)}...z24e---z25e; % bottom of bowl
+pos26(cap_stem,0); pos27(cap_stem,0); pos28(cap_stem,0);
+x26=x24; x27=x26+.25u; x28l=w-2.5u; y26=y24r; y27=1/3y26; bot y28=-o;
+filldraw stroke z26e--z27e...{right}z28e; % lower diagonal
+pos29(cap_bar,0); pos30(cap_bar,-30); z29l=z28l;
+x30r=good.x(w-.5u); y30r=good.y .09h;
+erase filldraw z29r--z28r--z30r--cycle; % erase excess
+filldraw stroke z29e--z30e; % serif of lower diagonal
+%% \begingroup\thinmuskip=3mu
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,20,21,22,23,24,25,26,27,28,29,30);
+%% \endgroup
+endchar;
+
+cmchar "Uppercase Fraktur I";
+beginchar(oct"075",13u#,asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,270); pos2(cap_hair,180); pos3(vair,90);
+pos4(cap_stem,0); pos5(vair,90); pos6(cap_hair,180);
+x1=5u; lft x2r=hround u; x3=.5[x2,x4l]; x4r=x5-.75u;
+x5=.5[x4l,x6l]; rt x6l=hround(w-.5u);
+top y1l=vround.5h; y2=.5[y1,y3]; top y3r=h+oo;
+y4=.2[y5,y3]; y6=.3[y5,y3]; bot y5l=ceiling(1/6[x_height,h]);
+filldraw stroke z1e{left}...z2e{up}...z3e{right}
+ ..z4e..z5e{right}...{up}z6e; % upper stroke
+pos7(vair,90); pos8(cap_stem,0); pos9(cap_stem,0);
+lft x7=hround u; z7r=z8l; x9=.5w+u; y8=good.y .25h; bot y9=-oo;
+filldraw z8l---z8r..{right}z9r+(0,eps)
+ --z9r---z9l..{left}z7l--cycle; % lower left stroke
+pos10(cap_stem,0); pos11(cap_stem,0); pos12(vair,-90); pos13(cap_hair,-180);
+x10=w-2.5u; x11r=x12-u; x12=x5; x13=x6;
+y10=1/3y12; y11=3/4y12; top y12l=x_height; y13=4/5y12;
+filldraw z9l+(0,eps){right}...{up}z10l
+ --z10r{down}...z9r---z9l--cycle; % lower link
+filldraw stroke z10e{up}...z11e{up}
+ ...z12e{right}...{down}z13e; % lower right stroke
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Lattice top";
+beginchar(oct"076",14u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; center_on(x1); lft x3=hround u; x4=w-x3;
+bot y1=0; y2-y1=x4-x3;
+if top y2>h: y2:=bot h; fi
+y3=y4=y2;
+draw z1--z2; % stem
+draw z3--z4; % bar
+labels(1,2,3,4); endchar;
+
+cmchar "Perpendicular sign or lattice bottom";
+beginchar(oct"077",14u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; center_on(x1); lft x3=hround u; x4=w-x3;
+bot y1=0; y2-y1=x4-x3;
+if top y2>h: y2:=bot h; fi
+y3=y4=y1;
+draw z1--z2; % stem
+draw z3--z4; % bar
+labels(1,2,3,4); endchar;
+
+cmchar "Hebrew letter aleph";
+beginchar(oct"100",11u#,asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_stem,75); pos2(cap_stem,90); pos3(cap_stem,90); pos4(cap_stem,75);
+lft x1l=hround u-eps; x2=2.5u=w-x3; rt x4r=hround(w-u)+eps;
+top y1r=h; bot y4l=0; z2=whatever[z1l,z4r]; z3=whatever[z1l,z4r];
+filldraw z1r{4(x1l-x1r),y1l-y1r}...{down}z1l...z2l
+ ---z3l...{down}z4l{4(x4r-x4l),y4r-y4l}...{up}z4r...z3r
+ ---z2r...{up}cycle; % long diagonal
+pos5(cap_stem,75); pos6(cap_stem,90); pos7(cap_stem,75);
+lft x5l=hround(w-4u)-eps; x6=.5[x5,x7]; x7=x4;
+y5=y1; bot y7l=x_height-o; z6=whatever[z5l,z7r];
+filldraw z5r{4(x5l-x5r),y5l-y5r}...{down}z5l
+ ...z6l{z7r-z5l}...{down}z7l{4(x7r-x7l),y7r-y7l}...{up}z7r
+ ...z6r{z5l-z7l}...{up}cycle; % short diagonal
+pos8(cap_hair,0); pos9(cap_hair,0); z8=z6; x9=x8-.75u; z9=whatever[z2,z3];
+filldraw stroke z8e{down}..{down}z9e; % right stem
+pos10(cap_hair,-30); pos11(stem,0);
+pos12(cap_curve,0); pos13(cap_curve,0); pos14(vair,90);
+lft x11l=hround 1.5u; x10=x12=.4[x11,.5w]; z10=whatever[z2,z3];
+lft x13l=hround u; z13l=z14l; y11=.5y10; y12=.2[y14r,y11]; bot y13=0;
+filldraw stroke z10e{2(x11-x10),y11-y10}
+ ...z11e{down}..{down}z12e; % left stem
+filldraw z12r{down}...z13r---z13l--z14r{right}...{up}z12l--cycle; % flourish
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+cmchar "Multiset union sign";
+beginchar(oct"135",12u#,.8asc_height#,0); autorounded;
+adjust_fit(if monospace:-.5u#,-.5u# else: 0,0 fi); pickup rule.nib;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y1=good.y h+o; bot y3=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+y8=y9=.47[y1,y3]; x8=w-x9=x1+2rule_thickness+eps;
+x6=x7=x3; .5[y6,y7]=y8; y7-y6=x9-x8;
+draw z8--z9; draw z6--z7; % enclosed plus sign
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Left turnstile";
+beginchar(oct"140",11u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+.5[y1,y2]=y3=y4; x1=x2=x3;
+lft x3=hround u; x4=w-x3; top y1=h; bot y2=0;
+draw z1--z2; % stem
+draw z3--z4; % bar
+labels(1,2,3,4); endchar;
+
+cmchar "Right turnstile";
+beginchar(oct"141",11u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+.5[y1,y2]=y3=y4; x1=x2=x4;
+lft x3=hround u; x4=w-x3; top y1=h; bot y2=0;
+draw z1--z2; % stem
+draw z3--z4; % bar
+labels(1,2,3,4); endchar;
+
+cmchar "Left floor bracket";
+beginchar(oct"142",8u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x 3.5u; x3=x1+3.75u+eps;
+top y1=h; .5[y1,y2]=math_axis; y3=y2;
+draw z1--z2--z3; % stem and bar
+labels(1,2,3); endchar;
+
+cmchar "Right floor bracket";
+beginchar(oct"143",8u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x(w-3.5u); x3=x1-3.75u-eps;
+top y1=h; .5[y1,y2]=math_axis; y3=y2;
+draw z1--z2--z3; % stem and bar
+labels(1,2,3); endchar;
+
+cmchar "Left ceiling bracket";
+beginchar(oct"144",8u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x 3.5u; x3=x1+3.75u+eps;
+top y1=h; .5[y1,y2]=math_axis; y3=y1;
+draw z3--z1--z2; % stem and bar
+labels(1,2,3); endchar;
+
+cmchar "Right ceiling bracket";
+beginchar(oct"145",8u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x(w-3.5u); x3=x1-3.75u-eps;
+top y1=h; .5[y1,y2]=math_axis; y3=y1;
+draw z3--z1--z2; % stem and bar
+labels(1,2,3); endchar;
+
+cmchar "Left angle bracket";
+beginchar(oct"150",7u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; x1=x3; lft x2=hround 2u-1-eps;
+top y1=h+eps; .5[y1,y3]=y2=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Right angle bracket";
+beginchar(oct"151",7u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt(w-x1)=hround(w-u)+eps; x1=x3; lft(w-x2)=hround 2u-1-eps;
+top y1=h+eps; .5[y1,y3]=y2=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Double vertical line (norm or cardinality)";
+beginchar(oct"153",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2; top y1=h; .5[y1,y2]=math_axis;
+x3=x4=w-x1; y3=y1; y4=y2;
+compute_spread(.45x_height#,.55x_height#); x3-x1=spread;
+draw z1--z2; draw z3--z4; % stems
+labels(1,2,3,4); endchar;
+
+cmchar "Up-and-down arrow";
+beginchar(oct"154",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1=.5[-d,h];
+x0=x1=x2; bot y0=-d-o; x0-x3=x4-x0=4u+eps;
+y3=y4=y0+.36asc_height+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ ---z1r..z1l---subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % lower arrowhead and stem
+pos11(rule_thickness,0); pos12(rule_thickness,0); z11=z1;
+pos13(rule_thickness,90); pos14(rule_thickness,90);
+x10=x11=x12; top y10=h+o; x10-x13=x14-x10=4u+eps;
+y13=y14=y10-.36asc_height-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.2[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((x12r,-d)--(x12r,h))); y12=ypart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ ---z11r..z11l---subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % upper arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar;
+
+cmchar "Double up-and-down arrow";
+beginchar(oct"155",11u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+bot y1=bot y2=-d-eps; top y7=h; y8=y7;
+x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; top y0=h+o; x0=good.x .5w;
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+x2-x3=x4-x1=3u+eps; y3=y4=y0-.4asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,h)
+ --(x4,h)--z4{z9-z4}..z0 & cycle; % erase excess at top
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % top arrowhead
+bot y10=-d-o; x10=good.x .5w;
+pos13(rule_thickness,90); pos14(rule_thickness,90);
+x13=x3; x14=x4; y13=y14=y10+.4asc_height-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+erase filldraw z10..{z13-z19}z13--(x13,-d)
+ --(x14,-d)--z14{z19-z14}..z10 & cycle; % erase excess at bottom
+numeric t; path p; p=z14r{z19-z14}..z16r;
+t=xpart(p intersectiontimes((x10,-d)--(x10,h)));
+filldraw z10..{z14-z19}z14l--subpath (0,t) of\\(z14r{z19-z14}..z16r)
+ --subpath (t,0) of\\(z13r{z19-z13}..z15r)
+ --z13l{z19-z13}..z10 & cycle; % bottom arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9,13,14,15,16,19); endchar;
+
+cmchar "Wreath product";
+beginchar(oct"157",5u#,asc_height#,asc_depth#);
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup pencircle yscaled .7rule_thickness xscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=lft x3=hround u; x2=x4=w-x1;
+top y1=vround .75[math_axis,h];
+.5[y1,y4]=.5[y2,y3]=math_axis; y1-y2=1/4(y1-y4);
+draw z1{right}...z2{down}..{down}z3...{right}z4; % stroke
+labels(1,2,3,4); endchar;
+
+cmchar "Radical sign";
+beginchar(oct"160",15u#,rule_thickness#,
+ body_height#+paren_depth#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "Amalgamation symbol or coproduct symbol";
+beginchar(oct"161",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6; y5l=0;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+u+2<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+u+2=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,eps); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ nodish_serif(4,3,g,1/3,eps,h,1/3,cap_jut); fi % lower right serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Nabla or backwards-difference operator";
+beginchar(oct"162",15u#,cap_height#,0);
+adjust_fit(0,0);
+numeric right_stem,alpha;
+right_stem=cap_hair if hefty: -3stem_corr fi;
+x1l=w-x4r=.75u; y1=y4=h;
+x2-x1=x4-x3; x3l=x2l+apex_corr; y2=y3=-apex_o-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*cap_stem,0); penpos2(alpha*cap_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+y5=y6=h-cap_vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ unfill z0+.5right{up}...{z4-z3}z6--z5{z2-z1}
+ ...{down}z0+.5left--cycle; % counter
+else: unfill z0--z5--z6--cycle; fi % counter
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Square set union sign (Scott lub)";
+beginchar(oct"164",12u#,.8asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.1u; x2=x1; x4=x5=w-x1;
+y1=good.y h+o; bot y2=0; y4=y2; y5=y1;
+draw z1---z2---z4---z5; % stems and bar
+labels(1,2,4,5); endchar;
+
+cmchar "Square set intersection sign (Scott glb)";
+beginchar(oct"165",12u#,.8asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.1u; x2=x1; x4=x5=w-x1;
+y2=good.y h+o; bot y1=0; y4=y2; y5=y1;
+draw z1---z2---z4---z5; % stems and bar
+labels(1,2,4,5); endchar;
+
+cmchar "Square subset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"166",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround(1.5u+oo); x1=x4=hround(w-1.5u)+eps; x3=x2;
+y1-y4=spread; y2=y1; y3=y4; top y1=h;
+draw z1--z2--z3--z4; % bars and stem
+x8=x1; x9=x2-oo-eps; y8=y9; y4-y9=spread';
+draw z8--z9; % lower bar
+labels(1,2,3,4,8,9); endchar;
+
+cmchar "Square superset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"167",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=x4=hround 1.5u-eps; rt x2=hround(w-1.5u-oo); x3=x2;
+y1-y4=spread; y2=y1; y3=y4; top y1=h;
+draw z1--z2--z3--z4; % bars and stem
+x8=x1; x9=x2+oo+eps; y8=y9; y4-y9=spread';
+draw z8--z9; % lower bar
+labels(1,2,3,4,8,9); endchar;
+
+cmchar "Section sign";
+beginchar(oct"170",6.5u#+max(1.5u#,stem#),asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+numeric sstem; sstem=hround .75[hair,stem];
+pos0(stem,0); pos1(hair,0); pos2(vair,90); pos3(sstem,180); pos4(vair,270);
+pos5'(sstem,0); pos5(sstem,180);
+pos6(vair,90); pos7(sstem,0); pos8(vair,-90); pos9(hair,-180); pos10(stem,-180);
+top y2r=h+oo; bot y8r=-d-oo; y2-y1=y9-y8=(y2-y8)/8;
+y3=.52[y4,y2]; y5=.52[y4,y6]; y7=.52[y6,y8]; y5'=.52[y6,y4];
+y2-y4=y4-y6=y6-y8;
+rt x1r=hround(w-1.5u); lft x3r=hround 1.25u;
+x2=x4=x6=x8=.5w; x5=x7=w-x3; x5'=x3; x9=w-x1;
+bulb(2,1,0); bulb(8,9,10); % bulbs
+filldraw stroke z2e{left}...z3e{down}...z4e{3(x5-x3),y5-y3}
+ ...z5e{down}...{left}z6e; % upper stroke
+filldraw stroke z4e{left}...z5'e{down}...z6e{3(x7-x5'),y7-y5'}
+ ...z7e{down}...{left}z8e; % upper stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Dagger mark";
+beginchar(oct"171",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos2(thin_join,0); pos3(stem,0); pos4(hair,0);
+pos5(stem,90); pos2'(thin_join,90); pos6(stem,90); z2'=z2;
+x1=x2=x3=x4; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x5-.5stem=hround u; x6=w-x5;
+y1+.5stem=h+oo; y2=y5=y6; y3=.57y2; bot y4=-d-o;
+y5+.5stem=floor(x_height+.5stem);
+filldraw circ_stroke z1e{down}..z2e{down}..z3e{down}..z4e; % stem
+filldraw circ_stroke z5e{right}..{right}z2'e; % left bulb
+filldraw circ_stroke z6e{left}..{left}z2'e; % right bulb
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Double dagger mark";
+beginchar(oct"172",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos2(thin_join,0); pos3(stem,0);
+pos4(stem,90); pos2'(thin_join,90); pos5(stem,90); z2'=z2;
+x1=x2=x3; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x4-.5stem=hround u; x5=w-x4;
+y1+.5stem=h+oo; y2=y4=y5=.5[y1,y3]; y3-.5stem=ceiling(.5[-d,h]);
+filldraw circ_stroke z1e{down}..{down}z2e; % top stem
+filldraw circ_stroke z3e{up}..{up}z2e; % upper middle stem
+filldraw circ_stroke z4e{right}..{right}z2'e; % top left bulb
+filldraw circ_stroke z5e{left}..{left}z2'e; % top right bulb
+pos6(stem,0); pos7(thin_join,0); pos8(stem,0);
+pos9(stem,90); pos7'(thin_join,90); pos0(stem,90); z7'=z7;
+x6=x7=x8=x1; x9=x4; x0=x5;
+y6=y3-stem-1; y7=y9=y0=.5[y6,y8]; y8-.5stem=-d-oo;
+filldraw circ_stroke z6e{down}..{down}z7e; % lower middle stem
+filldraw circ_stroke z8e{up}..{up}z7e; % bottom stem
+filldraw circ_stroke z9e{right}..{right}z7'e; % bottom left bulb
+filldraw circ_stroke z0e{left}..{left}z7'e; % bottom right bulb
+penlabels(1,2,3,4,5,6,7,8,9,0); endchar;
+
+cmchar "Paragraph mark";
+beginchar(oct"173",11u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+top y1=h; bot y6=-d-eps; y4=y7=y9=y1;
+y8=y6; y3=y5=good.y .5[y1,y6];
+x7-x4=ceiling(rule_thickness+1.25u);
+lft x2=hround u; y2=.5[y1,y3]; x4=x5=x6; rt x9=hround(w-.5u);
+x7=x8=good.x(x9-1.5u); x1=x3=min(.5w,x4);
+filldraw z4..z1{left}...z2{down}...{right}z5--cycle; % filled bowl
+draw z9--z4--z6; % left stem and upper serif
+draw z7--z8; % right stem
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Club suit";
+beginchar(oct"174",14u#,asc_height#,2/3desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+x1=x4=x30=x33=good.x .5w; center_on(x1);
+x2=good.x(x1-.5u)-eps; lft x1-rt x10=hround .5pt; lft x12=hround .5u;
+x11=.6[x12,x10]; x13=.5[x12,x10]=x5; x32-x31=x1-.5u-x12;
+x2+x3=x5+x6=x10+x20=x11+x21=x12+x22=x13+x23=x31+x32=2x1;
+top y30=h+o+oo; bot y11=bot y21=-o; top y13=top y23=vround .53h;
+y30-y33=y13-y11; y31=y32=y4=.5[y30,y33]; y12=y22=.5[y11,y13];
+y1=y10=y20=good.y .1h; bot y5=bot y6=y1+.75; bot y2=bot y3=-d;
+filldraw z30{left}...z31{down}...z33{right}...z32{up}...cycle; % top bowl
+filldraw z13{left}...z12{down}...z11{right}...z10{up}...cycle; % left bowl
+filldraw z23{left}...z20{down}...z21{right}...z22{up}...cycle; % right bowl
+filldraw z1{down}...{2(x2-x1),y2-y1}z2--z3{2(x1-x3),y1-y3}
+ ...{up}cycle; % stem
+filldraw z4--z5--z6--cycle; % filling
+labels(1,2,3,4,5,6,10,11,12,13,20,21,22,23,30,31,32,33); endchar;
+
+cmchar "Diamond suit";
+beginchar(oct"175",14u#,asc_height#,2/3desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+x1=x4=good.x .5w; center_on(x1);
+lft x2=hround u; x3=w-x2;
+top y1=h+o+oo; bot y4=-d-o-oo; y2=y3=.5[y1,y4];
+draw z1{x3-x1,1.5(y3-y1)}...z3{1.5(x3-x1),y3-y1}; % upper right diagonal
+draw z1{x2-x1,1.5(y2-y1)}...z2{1.5(x2-x1),y2-y1}; % upper left diagonal
+draw z4{x2-x4,1.5(y2-y4)}...z2{1.5(x2-x4),y2-y4}; % lower left diagonal
+draw z4{x3-x4,1.5(y3-y4)}...z3{1.5(x3-x4),y3-y4}; % lower right diagonal
+labels(1,2,3,4); endchar;
+
+cmchar "Heart suit";
+beginchar(oct"176",14u#,asc_height#,2/3desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+x1=x5=good.x .5w; center_on(x1);
+lft x7=hround u; x8=4u; x2+x8=x3+x7=x4+x6=w;
+y1=good.y .77h; top y2=h+o; y3=.7h; y4=.2h; bot y5=-o-oo;
+y2=y8; y3=y7; y4=y6; z4=whatever[z3,z5];
+x0=x9=w; y0=1.5h; y9=.6h;
+draw z1{x2-x1,8(y2-y1)}...z2{right}....z3{down}...{z4-z9}z4
+ ...{z5-z0}z5; % right half bowl
+draw z1{x8-x1,8(y8-y1)}...z8{left}....z7{down}...{(z4-z9)xscaled-1}z6
+ ...{(z5-z0)xscaled-1}z5; % left half bowl
+labels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Spade suit";
+beginchar(oct"177",14u#,asc_height#,2/3desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+x1=x10=good.x .5w; center_on(x1);
+x2=good.x(x1-.5u)-eps; lft x1-rt x6=hround .5pt; x5=x6;
+x7=.5[x8,x6]; lft x8=hround u;
+x2+x3=x5+x15=x6+x14=x7+x13=x8+x12=x9+x11=2x10;
+top y10=h+o+oo; y9=y11=.7h; y8=y12=.3h;
+y1=y6=y14=good.y .1h; bot y5=bot y15=y1+.75;
+bot y7=bot y13=-o; bot y2=bot y3=-d; z9=whatever[z8,z10];
+filldraw z10{-w,-3h}...z9{-w,-h}...z8{down}...z7{right}...z6---z5
+ --z15---z14...{right}z13...{up}z12...{-w,h}z11
+ ...{-w,3h}cycle; % filled bowl
+filldraw z1{down}...{2(x2-x1),y2-y1}z2--z3{2(x1-x3),y1-y3}
+ ...{up}cycle; % stem
+labels(1,2,3,5,6,7,8,9,10,11,12,13,14,15); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/texset.mf b/Master/texmf-dist/fonts/source/public/cm/texset.mf
new file mode 100644
index 00000000000..4530e0460ba
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/texset.mf
@@ -0,0 +1,58 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE texset.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Special version of Computer Modern for \TeX's extended ASCII character set
+
+font_coding_scheme:="TeX extended ASCII";
+
+mode_setup; font_setup; mono_charic#:=0;
+
+input tsetsl; % special symbols to be slanted
+slant:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+input romanu; % upper case (majuscules)
+input romanl; % lower case (minuscules)
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input punct; % punctuation symbols common to roman and italic text
+input tset; % remaining special symbols of extended ASCII
+
+font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "k": if serifs: "v": "a" kern -u#, fi\\"w": "e" kern k#,
+ "a" kern k#, "o" kern k#, "c" kern k#;
+ ligtable "P": "A" kern kk#,
+ "y": "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, "," kern kk#;
+ ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#, "u" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ else: "o" kern k#, "e" kern k#, "u" kern k#,
+ "r" kern k#, "a" kern k#, "A" kern kk#, fi
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": "y" kern if serifs: k# else: kk# fi,
+ "Y": "e" kern kk#, "o" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ if serifs: ligtable "h": "m": "n":
+ "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#;
+ ligtable "c": "h" kern k#, "k" kern k#; fi
+ ligtable "o": "b": "p": "e" kern -k#, "o" kern -k#, "x" kern k#,
+ "d" kern -k#, "c" kern -k#, "q" kern -k#,
+ "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "t": "y" kern k#,
+ "u": "w" kern k#;
+ ligtable "A": if serifs: "R": fi\\ "t" kern k#,
+ "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#;
+ ligtable "g": "j" kern -k#; % logjam
+ ligtable "I": "I" kern -k#; % Richard III
+fi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cm/textit.mf b/Master/texmf-dist/fonts/source/public/cm/textit.mf
new file mode 100644
index 00000000000..78699fc06ab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/textit.mf
@@ -0,0 +1,60 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE textit.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% The Computer Modern Text Italic family (by D. E. Knuth, 1979--1985)
+
+mode_setup; font_setup;
+
+input itall; % lower case (minuscules)
+input italsp; % lowercase specials (dotless \i, ligature \ae, etc.)
+if ligs>1: font_coding_scheme:="TeX text";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+ input italig; % letter ligatures
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+
+input romanu; % upper case (majuscules)
+input greeku; % upper case greek letters
+input itald; % numerals
+input italp; % ampersand, question marks, currency sign
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to roman and italic text
+input accent; % accents common to roman and italic text
+if ligs>0: input comlig; fi % ligatures common with roman text
+if ligs<=1: input romsub; fi % substitutes for ligatures
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+
+if not monospace:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "d": "w": "l": "l" kern +u#;
+ ligtable "F": "V": "o" kern kk#, "e" kern kk#,
+ "u" kern kk#, "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": "y" kern kk#,
+ "Y": "e" kern kk#, "o" kern kk#, "r" kern kk#, "a" kern kk#, "u" kern kk#,
+ "P": "W": "A" kern kk#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ ligtable "A": "R": "n" kern k#, "l" kern k#, "r" kern k#, "u" kern k#,
+ "m" kern k#, "t" kern k#, "i" kern k#, "C" kern k#, "O" kern k#, "G" kern k#,
+ "h" kern k#, "b" kern k#, "U" kern k#, "k" kern k#, "v" kern k#, "w" kern k#,
+ "Q" kern k#, "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#,
+ "b": "c": "e": "o": "p": "r": "e" kern -u#, "a" kern -u#, "o" kern -u#,
+ "d" kern -u#, "c" kern -u#, "g" kern -u#, "q" kern -u#;
+ ligtable "n": "'" kern kkk#; fi
+% there are ligature/kern programs for |"f"| in the {\tt italig} file
+% and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cm/title.mf b/Master/texmf-dist/fonts/source/public/cm/title.mf
new file mode 100644
index 00000000000..d639e2d7cb9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/title.mf
@@ -0,0 +1,31 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE title.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% This makes a short font (caps and digits only)
+
+font_coding_scheme:="ASCII caps and digits";
+
+mode_setup; font_setup;
+
+input romanu; % upper case (majuscules)
+input romand; % numerals
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "P": "T": "Y": "A" kern kk#;
+ ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#\\fi,
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ ligtable "A": if serifs: "R": fi
+ "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+ ligtable "I": "I" kern -k#; fi % Richard III
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cm/tset.mf b/Master/texmf-dist/fonts/source/public/cm/tset.mf
new file mode 100644
index 00000000000..ac13ced1f1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/tset.mf
@@ -0,0 +1,90 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE tset.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Special characters for ``extended ASCII character set'' fonts
+
+% Two accents have been copied from {\tt accent.mf}
+% and there's also a (genuinely) blank space.
+
+% Codes \0040, \0136, and \0176 are generated, in addition to the following:
+cdot=oct"000";
+down_arrow=oct"001";
+meet=oct"004";
+false_that=oct"005";
+elt=oct"006";
+up_arrow=oct"013";
+plus_minus=oct"014";
+o_plus=oct"015";
+infty=oct"016";
+subset=oct"020";
+superset=oct"021";
+cap=oct"022";
+cup=oct"023";
+for_all=oct"024";
+there_exists=oct"025";
+o_times=oct"026";
+double_arrow=oct"027";
+left_arrow=oct"030";
+right_arrow=oct"031";
+neq=oct"032";
+diamond=oct"033";
+leq=oct"034";
+geq=oct"035";
+eqv=oct"036";
+join=oct"037";
+straight_quotes=oct"042";
+minus=oct"055";
+less=oct"074";
+greater=oct"076";
+backslash=oct"134";
+underbar=oct"137";
+left_brace=oct"173";
+vertical=oct"174";
+right_brace=oct"175";
+integral=oct"177";
+
+input sym;
+
+cmchar "Blank space";
+beginchar(oct"040",6u#,0,0);
+adjust_fit(0,0); endchar;
+
+cmchar "Circumflex (hat) accent";
+beginchar(oct"136",9u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Tilde (squiggle) accent";
+beginchar(oct"176",9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/tsetsl.mf b/Master/texmf-dist/fonts/source/public/cm/tsetsl.mf
new file mode 100644
index 00000000000..74850bc45ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/tsetsl.mf
@@ -0,0 +1,140 @@
+% THIS IS THE OFFICIAL COMPUTER MODERN SOURCE FILE tsetsl.mf BY D E KNUTH.
+% IT MUST NOT BE MODIFIED IN ANY WAY UNLESS THE FILE NAME IS CHANGED!
+
+% Special slanted characters for ``extended ASCII character set'' fonts
+
+% These characters were copied from {\tt greekl.mf} and {\tt italms.mf}
+% with character positions changed and italic corrections added to the width.
+
+% Codes \0002--\0003, \0007--\0012, and \0017 are generated.
+
+cmchar "Lowercase Greek alpha for extended ASCII";
+beginchar(oct"002",11u#,x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.5u#);
+adjust_fit(0,ic#); pickup fine.nib;
+pos0(hair,0); pos1(vair,-90); pos2(curve,-180); pos3(vair,-270);
+z4=(w-3.25u,9/16h); z5=(w-2.75u,.5[vair,y4]);
+numeric theta; theta=angle(z4-z5)-90;
+pos4(stem,theta); pos5(stem,theta);
+pos6(vair,90); pos7(hair,180);
+rt x0r=hround(w-u); x1=x3=.5w-u; lft x2r=hround(1.5u-.5curve);
+x6=w-u; x7+.5hair=hround(w+.5hair-eps);
+top y0=vround .8[bar_height,h]; bot y1r=bot y6l=-oo;
+y2=.5[y1,y3]; top y3r=h+oo; y7=1/4bar_height;
+filldraw stroke z0e{down}...pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ ...z4e---z5e...z6e{right}...{up}z7e; % diagonal, bowl, and hook
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase Greek beta for extended ASCII";
+beginchar(oct"003",9.5u#,asc_height#,desc_depth#);
+italcorr .5[x_height#,asc_height#]*slant-u#;
+adjust_fit(0,ic#); pickup fine.nib;
+pos0(hair,180); pos1(hair,180); pos2(vair,90);
+pos3(.8[hair,stem],0); pos4(vair,-90); pos5(hair,-180);
+pos6(vair,-270); pos7(stem,-360); pos8(vair,-450); pos9(hair,-540);
+x0=x1=x9; lft x0l=hround(1.5u-.5hair); x2=x4=x6=x8=.5w-.25u;
+rt x3r=hround(w-1.75u); rt x7r=hround(w-u); rt x5l=hround(x4-u);
+bot y0=-d; y1=top y6r=x_height; top y2r=h+oo; y3=.5[y2,y4];
+y5=.5[y4,y6]; top y6r-bot y4r=vstem+eps; bot y8=-oo; y7=y9=.55[y6,y8];
+if y6l<y4l: y6l:=y4l:=y5; fi
+filldraw stroke z0e---z1e...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{up}z5e; % stem and upper bowl
+filldraw stroke z5e{up}...pulled_arc.e(6,7)
+ & pulled_arc.e(7,8)...{up}z9e; % lower bowl
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lowercase Greek pi for extended ASCII";
+beginchar(oct"007",10u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,ic#); pi_stroke; % hook and bar
+pos4(hair,0); pos6(hair,0); x4=3.5u; x6=w-4u; y4=y6=y2;
+x5=3u; x7=w-2.5u; y5=y7=.5stem-oo;
+pair v[]; v1=(z4-z5) xscaled 3.14159; v2=(z6-z7) xscaled 3.14159;
+pos5(stem,angle v1-90); pos7(stem,angle v2-90);
+filldraw circ_stroke z5e{v1}...{up}z4e; % left stem
+filldraw circ_stroke z7e{v2}...{up}z6e; % right stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase Greek lambda for extended ASCII";
+beginchar(oct"010",10.5u#,asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e; % short diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase Greek gamma for extended ASCII";
+beginchar(oct"011",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,ic#); pickup fine.nib;
+pos1(hair,180); pos2(vstem+dw,90);
+pos4(hair,0); pos5(vair,-90); pos6(hair,-180); pos7(hair,-180);
+bot y1=.5772156649h; top y2r=h+oo; y4=y6=-.5d;
+bot y5r=-d-o; top y7=h;
+lft x1r=hround(.5u-.5hair); x2=3u; rt x4r=hround(w-2u); x5=.5[x4,x6];
+rt x4r-lft x6r=hround 1/3[hair,stem]+eps; rt x7l=hround(w-u);
+if x4l<x6l: x4l:=x6l:=x5; fi
+pos3(hair,angle(z4-z2)+90); x3=superness[x2,x4]; y3=superness[y4,y2];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4-z2}
+ ...z4e{down}...{left}z5e; % arc
+filldraw stroke z5e{left}...z6e{up}..{2(x7-x6),y7-y6}z7e; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase Greek delta for extended ASCII";
+beginchar(oct"012",8u#,asc_height#,0);
+italcorr .9asc_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,ic#); pickup fine.nib;
+x0=-u; y0=1.05h;
+numeric light_flare; light_flare=2/3[vair,flare];
+x1=w-2u-.5light_flare; y1=h-.5light_flare;
+numeric theta; theta=angle (z1-z0);
+pos1(light_flare,theta-90); pos2(.2[vair,light_flare],-90); pos3(vair,theta);
+x2=x3+u; y2=h;
+x4=x6=.5w+.5u; top y8r=x_height+oo; z4=z8;
+pos6(vair,-90); pos7(stem,-180); pos8(vair,-270);
+pos4(stem,angle(z4-z0)+90); pos5(stem,30);
+z3=.5[.5[z1,z4],z0];
+y5+.1x_height=y7=.5[y6,y8]; bot y6=-oo;
+lft x7r=hround(1.4u-.5stem); rt x5r=hround(w-u);
+filldraw stroke z1e{z0-z1e}....z2e....z3e{(z0-z1)rotated 90}
+ ...z4e{z4e-.8[z4,z0]}
+ ....z5e{down}...pulled_arc.e(6,7) & pulled_arc.e(7,8); % hook and bowl
+filldraw z1r{z1r-z0}...z1l{z0-z1l}--cycle; % bulb
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Partial differential sign for extended ASCII";
+beginchar(oct"017",10u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-1.5u#;
+adjust_fit(0,ic#);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,90);
+pos3(side_thickness,0); pos4(bot_thickness,-90);
+pos5(side_thickness,-180); pos6(vair,-270);
+lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6+.1u=x2+u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,0); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+pos1(hair,180); pos0(flare,180);
+lft x0r=min(lft x2-eps,hround 1.2u);
+y0=vround min(.85h-.5flare,.8h+.5flare)+o;
+{{less_tense; bulb(2,1,0)}}; % arc and bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cm/white_setup.mf b/Master/texmf-dist/fonts/source/public/cm/white_setup.mf
new file mode 100644
index 00000000000..01f63d5055f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cm/white_setup.mf
@@ -0,0 +1,96 @@
+% The basic correction for write-white fonts occurs in the definition
+% font_setup. This can be used to overwrite the write-black
+% definition in cmbase.mf
+%
+def white_setup =
+ if monospace: let adjust_fit=mono_adjust_fit;
+ def mfudged=fudged enddef;
+ mono_charic#:=body_height#*slant;
+ if mono_charic#<0: mono_charic#:=0; fi
+ mono_charwd#:=9u#; define_whole_pixels(mono_charwd);
+ else: let adjust_fit=normal_adjust_fit;
+ def mfudged= enddef; fi
+ if math_fitting: let math_fit=do_math_fit
+ else: let math_fit=ignore_math_fit fi;
+ define_pixels(u,width_adj,serif_fit,cap_serif_fit,jut,cap_jut,beak,
+ bar_height,dish,bracket,beak_jut,stem_corr,vair_corr,apex_corr);
+ define_blacker_pixels(notch_cut,cap_notch_cut);
+ forsuffixes $=notch_cut,cap_notch_cut: if $<3: $:=3; fi endfor
+ define_whole_pixels(letter_fit,fine,crisp,tiny);
+ define_whole_vertical_pixels(body_height,asc_height,
+ cap_height,fig_height,x_height,comma_depth,desc_depth,serif_drop);
+ define_whole_blacker_pixels(thin_join,hair,stem,curve,flare,
+ dot_size,cap_hair,cap_stem,cap_curve);
+ define_whole_vertical_blacker_pixels(vair,bar,slab,cap_bar,cap_band);
+ define_corrected_pixels(o,apex_o);
+ forsuffixes $=hair,stem,cap_stem:
+ fudged$.#:=fudge*$.#; fudged$:=hround(fudged$.#*hppp+blacker);
+ forever: exitif fudged$>.9fudge*$; fudged$:=fudged$+1; endfor endfor
+ rule_thickness:=ceiling(rule_thickness#*hppp);
+ heavy_rule_thickness:=ceiling(3rule_thickness#*hppp);
+ oo:=vround(.5o#*hppp*o_correction)+eps;
+ apex_oo:=vround(.5apex_o#*hppp*o_correction)+eps;
+ lowres_fix(stem,curve,flare) 1.3;
+ lowres_fix(stem,curve) 1.2;
+ lowres_fix(cap_stem,cap_curve) 1.2;
+ lowres_fix(hair,cap_hair) 1.2;
+ lowres_fix(cap_band,cap_bar,bar,slab) 1.2;
+ stem':=hround(stem-stem_corr); cap_stem':=hround(cap_stem-stem_corr);
+ vair':=vround(vair+vair_corr);
+ vstem:=vround .8[vair,stem]; cap_vstem:=vround .8[vair,cap_stem];
+ ess:=(ess#/stem#)*stem; cap_ess:=(cap_ess#/cap_stem#)*cap_stem;
+ dw:=(curve#-stem#)*hppp; bold:=curve#*hppp+blacker;
+ dh#:=.6designsize;
+ stem_shift#:=if serifs: 2stem_corr# else: 0 fi;
+ more_super:=max(superness,sqrt .77superness);
+ hein_super:=max(superness,sqrt .81225258superness); % that's $2^{-.3}$
+ clear_pen_memory;
+ if fine=0: fine:=1; fi
+ forsuffixes $=fine,crisp,tiny:
+%%% fine $ %%%% temporary formatting convention for MFT
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor endfor
+%%% @ $ %%%% restore ordinary formatting for $
+ min_Vround:=max(fine.breadth,crisp.breadth,tiny.breadth,2); % "WRITE WHITE" ONLY!
+ if min_Vround<vround min_Vround: min_Vround:=vround min_Vround; fi
+ if flare<vround flare: flare:=vround flare; fi
+ forsuffixes $=vair,bar,slab,cap_bar,cap_band,vair',vstem,cap_vstem,bold:
+ if $<min_Vround: $:=min_Vround; fi endfor
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ math_axis:=good.y(math_axis#*hppp);
+ pickup pencircle scaled if hefty:(.6[vair,fudged.hair]) else:fudged.hair fi;
+ light_rule.nib:=savepen;
+ pickup pencircle xscaled cap_curve yscaled cap_hair rotated 30;
+ cal.nib:=savepen;
+ pair cal.extension; cal.extension:=(.75cap_curve,0) rotated 30;
+ pickup pencircle xscaled cap_curve yscaled cap_hair rotated 70;
+ tilted.nib:=savepen;
+ pickup pencircle xscaled curve yscaled cap_hair rotated 70;
+ med_tilted.nib:=savepen;
+ pickup pencircle xscaled cap_stem yscaled cap_hair rotated 30;
+ med_cal.nib:=savepen;
+ pickup pencircle xscaled stem yscaled cap_hair rotated 30;
+ light_cal.nib:=savepen;
+ pickup pencircle xscaled(cap_curve+dw) yscaled cap_hair rotated 30;
+ heavy_cal.nib:=savepen;
+ bot_flourish_line:=-.5u-o;
+ pair bend; bend=(.5u,0);
+ pair flourish_change; flourish_change=(4u,.2asc_height);
+ join_radius:=u;
+ currenttransform:=identity slanted slant
+ yscaled aspect_ratio scaled granularity;
+ if currenttransform=identity: let t_=relax
+ else: def t_ = transformed currenttransform enddef fi;
+ numeric paren_depth#; .5[body_height#,-paren_depth#]=math_axis#;
+ numeric asc_depth#; .5[asc_height#,-asc_depth#]=math_axis#;
+ body_depth:=desc_depth+body_height-asc_height;
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode: if mode<=smoke: shrink_fit:=0; fi fi
+forsuffixes $=thin_join,hair,curve,flare,dot_size,cap_hair,cap_curve,
+ vair,bar,slab,cap_bar,cap_band,stem',cap_stem',vair',fudged.hair,
+ fudged.stem,fudged.cap_stem: $:=max($,2); endfor % "WRITE WHITE" ONLY!
+ enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/cmastro/cmastro10.mf b/Master/texmf-dist/fonts/source/public/cmastro/cmastro10.mf
new file mode 100644
index 00000000000..dbc43dbb41d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmastro/cmastro10.mf
@@ -0,0 +1,97 @@
+
+% Computer Modern Astro Symbols 10 point (wmo)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMASTRO"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate symbols % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cmastro/cmastro5.mf b/Master/texmf-dist/fonts/source/public/cmastro/cmastro5.mf
new file mode 100644
index 00000000000..f021d87459c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmastro/cmastro5.mf
@@ -0,0 +1,97 @@
+
+% Computer Modern Astro Symbols 5 point (wmo)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMASTRO"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=6/36pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=15.5/36pt#; % lowercase stem breadth
+curve#:=17.5/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=18.5/36pt#; % uppercase stem breadth
+cap_curve#:=20.5/36pt#; % uppercase curve breadth
+cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/5; % subscripts to 5pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+3/36pt#, % num2
+ math_axis#+1.51rth#+24/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-63/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-3/36pt#), % denom2
+ 5.99pt#-subs*asc_height#, % sup1
+ 5.49pt#-subs*asc_height#, % sup2
+ 53/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 9.9pt#, % delim1
+ 7.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate symbols % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cmastro/cmastro6.mf b/Master/texmf-dist/fonts/source/public/cmastro/cmastro6.mf
new file mode 100644
index 00000000000..245318d3f88
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmastro/cmastro6.mf
@@ -0,0 +1,97 @@
+
+% Computer Modern Astro Symbols 6 point (wmo)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMASTRO"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=6.5/36pt#; % diameter of serif corners
+tiny#:=6.5/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=17.5/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21/36pt#; % uppercase stem breadth
+cap_curve#:=23.5/36pt#; % uppercase curve breadth
+cap_ess#:=18.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/6; % subscripts to 6pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+9/36pt#, % num2
+ math_axis#+1.51rth#+29/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-74/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-9/36pt#), % denom2
+ 6.49pt#-subs*asc_height#, % sup1
+ 5.99pt#-subs*asc_height#, % sup2
+ 62/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate symbols % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cmastro/cmastro7.mf b/Master/texmf-dist/fonts/source/public/cmastro/cmastro7.mf
new file mode 100644
index 00000000000..d0e85573f0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmastro/cmastro7.mf
@@ -0,0 +1,97 @@
+
+% Computer Modern Astro Symbols 7 point (wmo)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMASTRO"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=19.5/36pt#; % lowercase stem breadth
+curve#:=22.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=26.5/36pt#; % uppercase curve breadth
+cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate symbols % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cmastro/cmastro8.mf b/Master/texmf-dist/fonts/source/public/cmastro/cmastro8.mf
new file mode 100644
index 00000000000..aadd47eedea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmastro/cmastro8.mf
@@ -0,0 +1,97 @@
+
+% Computer Modern Astro Symbols 8 point (wmo)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMASTRO"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate symbols % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cmastro/cmastro9.mf b/Master/texmf-dist/fonts/source/public/cmastro/cmastro9.mf
new file mode 100644
index 00000000000..cb532c26a36
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmastro/cmastro9.mf
@@ -0,0 +1,97 @@
+
+% Computer Modern Astro Symbols 9 point (wmo)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMASTRO"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate symbols % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/cmastro/symbols.mf b/Master/texmf-dist/fonts/source/public/cmastro/symbols.mf
new file mode 100644
index 00000000000..6da5cb4dff0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmastro/symbols.mf
@@ -0,0 +1,303 @@
+
+% The Computer Modern Symbols family (by D. E. Knuth, 1979--1985)
+
+font_coding_scheme:="TeX math symbols";
+mode_setup; font_setup;
+
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+% The Sun symbol
+
+cmchar "Sun symbol (S)";
+beginarithchar("S"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y8=x2-x6; y2=.5y8;
+circle_points; draw_circle; % circle
+fill fullcircle scaled(1.1dot_size+eps) shifted(.5[z4,z8]); % dot
+labels(1,2,3,4,5,6,7,8); endchar;
+
+% The Mercury symbol
+
+cmchar "Mercury symbol (1)";
+beginchar("1",11u#,6u#+math_axis#,6u#-math_axis#);
+ italcorr math_axis#*slant-.5u#;
+ adjust_fit(0,0);
+pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; bot y2=2.25u+.5(x2-x6); y8-y2=.5(x2-x6);
+circle_points; draw_circle;
+% now for the cross underneath
+x9=x4; y9=-2.25u; x10=x4-2.25u; x11=x4+2.25u; y10=y11=0;
+draw z4--z9; draw z10--z11;
+% now for the horns
+z0 = .5[z6,z2]; % center of the circle
+z12 = z0 + (z8-z0) rotated 30;
+z14 = z0 + (z8-z0) rotated -30;
+bot y13 = bot y15 = top y8 + (y8-y12);
+rt x13 = 0.5(x6+x7); x15 = w-x13;
+draw z12{left}..{z7-z4}z13;
+draw z14{right}..{z1-z4}z15;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+% The Venus (female) symbol
+
+cmchar "Venus symbol (2)";
+beginchar("2",12u#,6u#+math_axis#,6u#-math_axis#);
+ italcorr math_axis#*slant-.5u#;
+ adjust_fit(0,0);
+pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; bot y2=2.5u+.5(x2-x6); y8-y2=.5(x2-x6);
+circle_points; draw_circle; % 10u in diameter
+% now for the cross underneath
+x9=x4; y9=-2.5u; x10=x4-2.5u; x11=x4+2.5u; y10=y11=0;
+draw z4--z9; draw z10--z11;
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+% The Earth symbol
+
+cmchar "Earth symbol (3)";
+beginarithchar("3"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y8=x2-x6; y2=.5y8;
+circle_points; draw_circle; % circle
+draw z2--z6; draw z4--z8; % bar and stem
+labels(1,2,3,4,5,6,7,8); endchar;
+
+% The Mars (male) symbol
+
+cmchar "Mars symbol (4)";
+beginchar("4",12u#,6u#+math_axis#,6u#-math_axis#);
+ italcorr 2u#;
+ adjust_fit(0,0);
+pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y8=x2-x6; y2=.5y8;
+circle_points; draw_circle; % circle
+% now for the arrow
+z0 = .5[z6,z2]; % center of the circle
+z9 = 2[z0,z1];
+y10 = y9; x11 = x9;
+lft x10 = x1; bot y11 = y1;
+draw z1--z9; draw z9--z10; draw z9--z11;
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+% The Jupiter symbol
+
+cmchar "Jupiter symbol (5)";
+beginchar("5",13u#,6u#+math_axis#,6u#-math_axis#);
+adjust_fit(0,0);
+pickup light_rule.nib; autorounded;
+penpos1(cap_hair,90); penpos2(.4cap_curve,90);
+penpos3(.8cap_curve,0); penpos4(cap_hair,0);
+penpos5(1.414214cap_hair,45); penpos6(cap_hair,90);
+penpos7(1.1cap_hair,0); penpos8(1.1cap_hair,0);
+x1=hround u; y1r=0.5(asc_height+x_height);
+x2=5u; top y2=vround asc_height;
+x3 = 8u; y3=x_height;
+x5l=hround 2u; y5l=0;
+z4l=z5r;
+x5r := x4r; y5r := y4r; % redefine so we can leave out z4
+y6l=y5l; x6l=w-x1;
+x7r=x6; y7=x_height;
+x8=x3; y8=-desc_depth;
+penstroke z1e..z2e{right}..z3e{down}..{z5l-z4l}z5e--z6e;
+penstroke z7e--z8e;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+% The Saturn symbol
+
+cmchar "Saturn symbol (6)";
+beginchar("6",11u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,90); pos4(cap_hair,90); pos5(stem,0);
+pos6(0.75stem,0); pos7(cap_hair,45);
+lft x1l=hround(2.5u-.5stem); x1l=x2l;
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+if serifs: nodish_serif(1,2,a,1/3,jut,b,1/3,jut); fi % upper serif
+x3=x2r; y3=y5=math_axis;
+x5=w-x1;
+x4=0.5(x3r+x5r); y4=x_height;
+x6r=x5l; y6=vround u;
+rt x7r = hround(w-u); y7r=-0.5desc_depth;
+filldraw stroke z3e{up}..z4e{right}..z5e{down}..z6e{down}..z7e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+% The Uranus symbol
+
+cmchar "Uranus symbol (7)";
+beginchar("7",10u#,6u#+math_axis#,6u#-math_axis#);
+ italcorr math_axis#*slant-.5u#;
+ adjust_fit(0,0);
+pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; bot y2=.5(x2-x6); y8-y2=.5(x2-x6);
+circle_points; draw_circle; % 8u in diameter
+z0 = .5[z4,z8];
+fill fullcircle scaled(.8dot_size+eps) shifted z0; % dot
+% now for the arrow on top
+z9 = 2[z0,z8]; y10=y11 = .5(y8+y9); x10-x8 = x8-x11 = .5(y9-y8);
+draw z8--z9; draw z9--z10; draw z9--z11;
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+% The Neptune symbol
+
+cmchar "Neptune symbol (8)";
+beginchar("8",14u#,6u#+math_axis#,6u#-math_axis#);
+ italcorr math_axis#*slant-.5u#;
+ adjust_fit(0,0);
+pickup light_rule.nib; autorounded;
+lft x6=hround 2u; x2=w-x6; bot y2=2.5u+.5(x2-x6); y8-y2=.5(x2-x6);
+circle_points;
+draw z6{down}..z5{z4-z6}..z4{right}..z3{z2-z4}..{up}z2; % semicircle
+% now for the cross underneath
+x9=x4; y9=-2.5u; x10=x4-3.5u; x11=x4+3.5u; y10=y11=0;
+draw z4--z9; draw z10--z11;
+% and the three arrows
+x12=x6; x13=x4; x14=x2; y12=y13=y14=y7; % tips of arrows
+y15=y16=y17=y18=y19=y20=y7-1u;
+x15=x12-1u; x16=x12+1u; x17=x13-1u; x18=x13+1u; x19=x14-1u; x20=x14+1u;
+draw z6--z12; draw z4--z13; draw z2--z14;
+draw z12--z15; draw z12--z16;
+draw z13--z17; draw z13--z18;
+draw z14--z19; draw z14--z20;
+labels(2,3,4,5,6,9,10,11,12,13,14,17,18); endchar;
+
+% The Pluto symbol
+
+cmchar "Pluto symbol (9)";
+beginchar("9",12u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,-1u#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos8(slab,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=y8l+beak+eps; rt x9r=hround(w-.75u);
+arm(8,9,e,1.2beak_darkness,beak_jut); % lower arm and beak (of L)
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+math_fit(0,u#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+% The crescent moon symbol. We have to be careful here because this
+% is to be half width (7u instead of 14u) -- so don't use beginarithchar!
+
+cmchar "Moon symbol (M)";
+beginchar("M",7u#,6u#+math_axis#,6u#-math_axis#);
+ italcorr math_axis#*slant-.5u#;
+ adjust_fit(0,1u#); % add back the 1u# of space that SHOULD be at the right
+pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=2w-x6; y8=x2-x6; y2=.5y8;
+circle_points;
+% "limb" is a semicircle drawn directly
+draw z8{left}..z7{z6-z8}..z6{down}..z5{z4-z6}..{right}z4;
+% "terminator" is halfway between limb and vertical line
+z9 = .25[z7,z1]; z10 = .25[z6,z2]; z11 = .25[z5,z3];
+draw z8{left}..z9..z10{down}..z11..{right}z4;
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+% The ascending node symbol ("dragon's head")
+
+cmchar "Ascending node symbol (N)";
+beginchar("N",14u#,cap_height#,0);
+adjust_fit(0,0);
+pickup light_rule.nib; autorounded;
+numeric diameter, rad;
+diameter = 3u; rad = 1/2diameter;
+lft x1 = 1u+rad; x5 = w - x1; top y1 = top y5 = rad;
+z2 = z1 + (rad,0) rotated 30;
+z4 = z5 + (rad,0) rotated 150;
+x3 = 1/2(x1+x5); top y3 = h;
+penpos3(.75cap_curve,-90); penpos2(.86cap_hair,30);
+penpos4(.86cap_hair,-210);
+draw fullcircle scaled diameter shifted z1;
+draw fullcircle scaled diameter shifted z5;
+penstroke z2e{(z2-z1) rotated 90}..z3e{right}..{(z4-z5) rotated 90}z4e;
+penlabels(1,2,3,4,5); endchar;
+
+% The descending node symbol ("dragon's tail")
+
+cmchar "Descending node symbol (D)";
+beginchar("D",14u#,cap_height#,0);
+adjust_fit(0,0);
+pickup light_rule.nib; autorounded;
+numeric diameter, rad;
+diameter = 3u; rad = 1/2diameter;
+lft x1 = 1u+rad; x5 = w - x1; bot y1 = bot y5 = h - rad;
+z2 = z1 + (rad,0) rotated -30;
+z4 = z5 + (rad,0) rotated -150;
+x3 = 1/2(x1+x5); bot y3 = 0;
+penpos3(.75cap_curve,-90); penpos2(.86cap_hair,150);
+penpos4(.86cap_hair,30);
+draw fullcircle scaled diameter shifted z1;
+draw fullcircle scaled diameter shifted z5;
+penstroke z2e{(z2-z1) rotated -90}..z3e{right}..{(z4-z5) rotated -90}z4e;
+penlabels(1,2,3,4,5); endchar;
+
+% The vernal equinox symbol (Aries or ram's horn)
+
+cmchar "Vernal Equinox (V)";
+beginchar("V",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(.75cap_stem,0); pos2(.75cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.375cap_stem); y1=.5h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(.45cap_stem,0); penpos4(.6cap_curve,90);
+penpos5(.4cap_curve,180); penpos6(cap_hair,270);
+z3l=lft z1l; x5r=hround u; y5=bot .8h; x4=x6=.61803[x3l,x5l]; y4r=h+o;
+y5-y6=y4l-y5;
+penstroke z3e{up}..z4e{left}..z5e{down}..{right}z6e; % left arc
+%fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up}
+% ...{right}z4l...{down}z3l--cycle; % left arc
+penpos7(.45cap_stem,0); penpos8(.6cap_curve,-90);
+penpos9(.4cap_curve,-180); penpos10(cap_hair,-270);
+z7r=rt z1r; x9=w-x5; y9=y5; x8=w-x4; y8=y4;
+x10=w-x6; y10=y6;
+penstroke z7e{up}..z8e{right}..z9e{down}..{left}z10e; % right arc
+%fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up}
+% ...{left}z7l...{down}z6l--cycle; % right arc
+math_fit(-.8cap_height#*slant-.5u#,ic#-2.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+% The autumnal equinox symbol (Libra or scales)
+
+cmchar "Autumnal Equinox (L)";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("L",14u#,v_center(2spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+numeric diameter;
+lft x1=hround u; x3=x1; x2=x7=w-x1; x5=.5(x3+x7);
+x4=.5(x3+x5); x6=.5(x5+x7);
+y1=y2; y3=y4=y5=y6=y7=math_axis; y3-y1=spread;
+draw z1--z2; % lower bar
+draw z3--z4; % left of top bar
+draw z6--z7; % right of top bar
+diameter = x6-x4;
+draw halfcircle scaled diameter shifted (x5,y5); % semicircle at top
+labels(1,2,3,4,5,6,7); endchar;
+
+% small circle, refined from symbol.cm---guaranteed to be circular!
+
+cmchar "Circle operator";
+beginchar(oct"016",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; y8-y2=.5(x2-x6);
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ams10pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/ams10pt.mf
new file mode 100644
index 00000000000..85ab8312227
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ams10pt.mf
@@ -0,0 +1,70 @@
+% Parameters for ams fonts, 10pt
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% end of ams10pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ams8pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/ams8pt.mf
new file mode 100644
index 00000000000..7e193a620b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ams8pt.mf
@@ -0,0 +1,70 @@
+% Parameters for ams fonts, 8pt
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=76/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% end of ams8pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ams9pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/ams9pt.mf
new file mode 100644
index 00000000000..c40b84b710d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ams9pt.mf
@@ -0,0 +1,70 @@
+% Parameters for ams fonts, 9pt
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=85.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% end of ams9pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/baccent.mf b/Master/texmf-dist/fonts/source/public/cmbright/baccent.mf
new file mode 100644
index 00000000000..81e54a3e2b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/baccent.mf
@@ -0,0 +1,213 @@
+% This file contains accents common to text roman and italic fonts.
+% Modified by WaS for the CM Bright fonts [1995/10/15 v0.998].
+% Character codes \0022--\0030, \0040, \0136--\0137, \0175--\0177 are generated.
+% (Actually the accents in positions \0040, \0137, and \0175 are not generated
+% unless |ligs>0|, since other symbols are substituted
+% for those accents in non-ligature fonts.)
+
+cmchar "Grave accent";
+beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Acute accent";
+beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Hachek (check) accent";
+beginchar(oct"024",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Breve accent";
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Scandinavian circle accent";
+beginchar(oct"027",13u#+4/3(asc_height#-x_height#)*slant,asc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Cedilla accent";
+beginchar(oct"030",8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+x1=.5w+.5u;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); endchar;
+
+iff ligs>0: cmchar "Cross for Polish l and L";
+if unknown l_width#:
+ l_width#:=5u#+2serif_fit#; fi % nominal width of `l'
+if unknown L_stem#:
+ L_stem#:=cap_serif_fit#+max(2u#+.5cap_stem#,3u#); fi % center of `L' stem
+ligtable oct"040": "l" kern -l_width#-2letter_fit#,
+ "L" kern -.5l_width#-L_stem#-2letter_fit#;
+beginchar(oct"040",l_width#,x_height#,0);
+adjust_fit(stem_shift#,-stem_shift#);
+pickup crisp.nib; x2-x1=max(4u,2.8u+stem); .5[x1,x2]=.5w;
+y1-.5bar=.2[bar_height,x_height]; y2+.5bar=.8[bar_height,x_height];
+numeric theta; theta=angle(z2-z1)+90;
+pos1(bar,theta); pos2(bar,theta);
+filldraw stroke z1e--z2e; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Circumflex (hat) accent";
+beginchar(oct"136",9u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+iff ligs>0: cmchar "Dot accent"; % (WaS)
+% numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+dot_diam#:=min(dot_size#,stem'/hppp);
+beginchar(oct"137",5u#,min(asc_height#,1.3x_height#+.5dot_diam#),0);
+% define_whole_blacker_pixels(dot_diam);
+dot_diam:=min(stem',dot_size);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+iff ligs>0: cmchar "Long Hungarian umlaut accent";
+beginchar(oct"175",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+cmchar "Tilde (squiggle) accent";
+beginchar(oct"176",9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Umlaut (double dot) accent"; % (WaS)
+dot_diam#:=min(dot_size#,stem'/hppp);
+%beginchar(oct"177",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+beginchar(oct"177",9u#,min(asc_height#,1.3x_height#+.5dot_diam#),0);
+dot_diam:=min(stem',hround(dot_size-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/bgreeku.mf b/Master/texmf-dist/fonts/source/public/cmbright/bgreeku.mf
new file mode 100644
index 00000000000..4659c3319a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/bgreeku.mf
@@ -0,0 +1,257 @@
+% Computer Modern Greek caps, analogous to the uppercase Roman letters.
+% changed for CM Bright [1995/10/01 v0.997 WaS]
+
+% Character codes \0000 through \0012 are generated,
+% using plain \TeX's standard text font layout conventions.
+
+cmchar "Uppercase Greek Gamma";
+beginchar(oct"000",11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase Greek Delta";
+%beginchar(oct"001",15u#,cap_height#,0);
+beginchar(oct"001",12u#,cap_height#,0);% (WaS)
+adjust_fit(0,0);
+numeric left_stem,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+x1l=w-x4r=.75u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+y5=y6=cap_vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ unfill z0+.5right{down}...{z4-z3}z6--z5{z2-z1}
+ ...{up}z0+.5left--cycle; % counter
+else: unfill z0--z5--z6--cycle; fi % counter
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase Greek Theta";
+beginchar(oct"002",14u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=hround(cap_curve-2stem_corr);
+penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup crisp.nib; pos5(cap_vstem,90); pos6(cap_vstem,90);
+lft x5=w-rt x6=hround(x2l+u)+1; y5=y6=.5[y1l,y3l];
+filldraw stroke z5e--z6e; % bar
+if serifs: pos7(hair,0); pos8(hair,0); pos9(hair,0); pos10(hair,0);
+ x7l=x8l=x5; x9r=x10r=x6;
+ y7-y5r=y9-y6r=y5l-y8=y6l-y10=vround .05h;
+ filldraw stroke z7e--z8e; % left serif
+ filldraw stroke z9e--z10e; fi % right serif
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Uppercase Greek Lambda";
+beginchar(oct"003",12u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,outer_jut,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase Greek Xi";
+beginchar(oct"004",12u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem];
+if shaved_stem<crisp.breadth: shaved_stem:=crisp.breadth; fi
+pickup crisp.nib; pos1(shaved_stem,90); pos2(hair,0);
+top y1r=h; x1=.5w; rt x2r=hround(w-.85u); y2=good.y(y1l-4/9beak)-eps;
+arm(1,2,a,.4beak_darkness,.3beak_jut); % upper right arm and beak
+pos3(hair,180); x3=w-x2; y3=y2;
+arm(1,3,b,.4beak_darkness,-.3beak_jut); % upper left arm and beak
+pos4(shaved_stem,-90); pos5(hair,0);
+bot y4r=0; x4=.5w; rt x5r=hround(w-.75u); y5=good.y(y4l+.5beak)+eps;
+arm(4,5,c,.4beak_darkness,.3beak_jut); % lower right arm and beak
+pos6(hair,180); x6=w-x5; y6=y5;
+arm(4,6,d,.4beak_darkness,-.3beak_jut); % lower left arm and beak
+pos7(shaved_stem,90); pos8(shaved_stem,90);
+lft x7=w-rt x8=hround if serifs: 2.5 else: 2 fi\\ u;
+top y7r=top y8r=vround(.52h+.5shaved_stem);
+filldraw stroke z7e--z8e; % middle bar
+if serifs: numeric xjut;
+ if bot y2>top y7r+.75cap_jut: xjut=.5cap_jut;
+ else: bot y2=top y7r+1.5xjut; fi
+ pos11(hair,0); pos12(hair,0); y11=y12;
+ pos13(hair,0); pos14(hair,0); y13=y14;
+ lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u;
+ top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7;
+ filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; fi % middle serifs
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,11,12,13,14); endchar;
+
+cmchar "Uppercase Greek Pi";
+beginchar(oct"005",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib;
+h:=vround(h-stem_corr);
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5r=y6r=h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,eps); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(3,4,e,1/3,eps,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase Greek Sigma";
+beginchar(oct"006",13u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(0,0);
+numeric bot_arm_thickness;
+bot_arm_thickness=Vround .25[slab,cap_vstem];
+pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l;
+top y1=h; bot y2=h-slab-eps; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0);
+penpos3(alpha1*(cap_stem-tiny),0);
+alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(cap_hair-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
+arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase Greek Upsilon";
+beginchar(oct"007",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=.5h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(.6cap_stem,0); penpos4(.75cap_curve,90); penpos5(cap_hair,180);
+z3l=lft z1l; x5r=hround u; y5=bot .8h; x4=.61803[x3l,x5l]; y4r=h+o;
+penpos5'(cap_hair,180); x5'=x5; y5'=h;
+fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up}
+ ...{right}z4l...{down}z3l--cycle; % left arc
+penpos6(.6cap_stem,0); penpos7(.75cap_curve,-90); penpos8(cap_hair,-180);
+z6r=rt z1r; x8=w-x5; y8=y5; x7=w-x4; y7=y4;
+penpos8'(cap_hair,-180); x8'=x8; y8'=h;
+fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up}
+ ...{left}z7l...{down}z6l--cycle; % right arc
+if serifs: dish_serif(2,1,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); fi % serif
+math_fit(-.8cap_height#*slant-.5u#,ic#-2.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase Greek Phi";
+beginchar(oct"010",13u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem,light_curve;
+shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5shaved_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5];
+y5r=vround(.15h if serifs:+slab fi);
+penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase Greek Psi";
+beginchar(oct"011",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem;
+shaved_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5shaved_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(shaved_stem,-180); pos4(shaved_stem,-180);
+pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi);
+pos6(shaved_stem,0); pos7(shaved_stem,0);
+lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4;
+pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r;
+y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3');
+interim superness:=more_super;
+filldraw z3'l{right}...z4r{down} & super_arc.r(4,5)
+ & super_arc.r(5,6) & z6r{up}...z7'l{right}
+ --z7r---z7l...z6l{down} & super_arc.l(6,5)
+ & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.8cap_height#*slant-.5u#,.4cap_height#*slant-1.25u#);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Uppercase Greek Omega";
+beginchar(oct"012",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/bitalms.mf b/Master/texmf-dist/fonts/source/public/cmbright/bitalms.mf
new file mode 100644
index 00000000000..d53d62f7440
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/bitalms.mf
@@ -0,0 +1,133 @@
+% This file contains miscellaneous symbols of math italic fonts.
+% The character codes are \0100, \0140, and \0173--\0177.
+% Changed for the CM Bright fonts [1995/10/18 v0.998 WaS];
+% changes are marked by (CMBR).
+
+cmchar "Partial differential sign";
+beginchar(oct"100",10u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-1.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,90);
+pos3(side_thickness,0); pos4(bot_thickness,-90);
+pos5(side_thickness,-180); pos6(vair,-270);
+lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6+.1u=x2+u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; {{interim superness:=more_super; p=pulled_super_arc.l(3,4)(pull)}};
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,0); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+pos1(hair,180); pos0(flare,180);
+lft x0r=min(lft x2-eps,hround 1.2u);
+y0=vround min(.85h-.5flare,.8h+.5flare)+o;
+{{less_tense; bulb(2,1,0)}}; % arc and bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase italic script l";
+beginchar(oct"140",4.5u#+max(1.5u#,stem#),asc_height#,0);
+italcorr .8asc_height#*slant-u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,-45); pos2(hair,0); pos3(vair,90);
+pos4(stem,180); pos5(vair,270); pos6(hair,315);
+lft x1l=hround(lft x1l-x1); rt x2r=hround(w-1.5u); x3=.5w;
+lft x4r=hround .5u; x5=x3+.75u; x6=x1+w+1;
+y1=y6=.125h; y2=.8h; top y3r=h+oo; y4=.5[y3,y5]; bot y5=-oo;
+filldraw stroke z1e{10u,asc_height}...z2e{up}...pulled_arc.e(3,4)
+ & pulled_arc.e(4,5)...z6e{10u,asc_height}; % bowl and hook
+math_fit(0,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Dotless letter i"; % (CMBR)
+beginchar(oct"173",5u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2); endchar;
+
+cmchar "Dotless letter j"; % (CMBR)
+beginchar(oct"174",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+penlabels(1,2,5,6,7); endchar;
+
+cmchar "Weierstrass p";
+beginchar(oct"175",11u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5stem#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(8u,h); slope:=-h/8u; % angle at middle
+pos2(vair,-90); pos1(vstem,theta); pos7(vair,-90);
+x2+.5u=x1=x7-.5u=3u; top y2l=h+o; bot y7r=-d-o; y1=.4[-d,h];
+lft x3l=hround .5u; rt x6r=hround max(rt x7+.5,.5w-.25u);
+x3r-x3l=x6r-x6l=(hround .5[vair,vstem])-fine;
+ellipse_set(2l,3l,4l,1l); ellipse_set(2r,3r,4r,1r); y3=y3r;
+ellipse_set(7l,6l,5l,1l); ellipse_set(7r,6r,5r,1r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % flourish
+pos8(hair,180); pos9(vair,90); pos10(stem,0);
+pos11(vair,-90); pos12(hair,-180); pos13(.3[hair,flare],-180);
+rt x10r=hround(w-1.5u+.5stem); lft x12r=hround(.5w-.5u);
+rt x8l=hround 2.25u; x9=x11=max(x12l+eps,.5w+1.5u);
+y8=0; top y9r=vround(.9h+o); y10=.5[y9,y11]; bot y11r=-oo;
+filldraw stroke z7e{left}...z8e{up}...pulled_arc.e(9,10)
+ & pulled_arc.e(10,11); % stem and bowl
+y13-.5(.6[hair,flare])=.15h; bulb(11,12,13); % bulb
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Arrow (vector) accent";
+beginchar(oct"176",9u#,asc_height#+.5rule_thickness#,0);
+italcorr .7[x_height#,asc_height#]*slant;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround .5u; x2=w-x1; y1=y2=good.x .7[x_height,asc_height];
+draw z1--z2; % bar
+rt x3=rt x4=hround(x2-u);
+y3=y2+.3(asc_height-x_height); y4=y2-.3(asc_height-x_height);
+draw z3{x2-x3,2(y2-y3)}...{2(x2-x3),y2-y3}z2; % upper point
+draw z4{x2-x4,2(y2-y4)}...{2(x2-x4),y2-y4}z2; % lower point
+labels(1,2,3,4); endchar;
+
+cmchar "Tie accent";
+beginchar(oct"177",5u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90); pos3(hair,0);
+lft x1r=hround(.5w-.5hair); x2=.5[x1,x3];
+rt x3r=hround(w+4u+2letter_fit+.5hair);
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/bpunct.mf b/Master/texmf-dist/fonts/source/public/cmbright/bpunct.mf
new file mode 100644
index 00000000000..bcb2df9cb18
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/bpunct.mf
@@ -0,0 +1,290 @@
+% This file contains punctuation marks common to roman and italic styles.
+% Modified for the CM Bright fonts [1995/10/23 v0.999 WaS]
+
+% Codes \0041, \0043, \0045, \0047--\0054,\ %
+%% \0056, \0057, \0072, \0073, \0075, \0100,\par
+% \0133, \0135, and \0140 are generated, as well as code |spanish_shriek|
+% (for a Spanish exclamation point) if that code value is known.
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff known spanish_shriek: cmchar "Spanish open exclamation point";
+beginchar(spanish_shriek,5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Hash mark (number sign)";
+if monospace: compute_spread(.6x_height#,.7x_height#);
+else: compute_spread(.45x_height#,.55x_height#); fi
+beginchar("#",15u#,asc_height#,asc_depth#);
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+adjust_fit(0,0);
+pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); endchar;
+
+cmchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150:
+ z[d]=z0+.5dir d xscaled 7.5sym_u yscaled sym_height; % (CMBR)
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Plus sign";
+%beginarithchar("+");
+beginchar("+",14sym_u#,6sym_u#+math_axis#,6sym_u#-math_axis#);
+italcorr math_axis#*slant-.5sym_u#;
+adjust_fit(0,0);
+pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround sym_u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Semicolon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+cmchar "Equals sign";
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar("=",14sym_u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5sym_u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround sym_u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+cmchar "At sign";
+beginchar("@",14u#,asc_height#,0);
+italcorr .7asc_height#*slant-.5u#;
+adjust_fit(0,if hefty or monospace:-2u# else: 0 fi);
+pickup fine.nib; pos0(fudged.hair,0); pos1(vair,90);
+pos2(fudged.stem,180); pos3(vair,270);
+pos4(fudged.stem,-180); pos5(fudged.stem,-180);
+pos6(vair,-90); pos7(fudged.hair,0);
+pos8(vair,90); pos9(fudged.hair,180);
+pos10(vair,270); pos11(.5[vair,flare],360);
+x1=x3=.5[x0,x2]; y0=y2=.5[y1,y3];
+x8=x10=.5w; y7=y9=.5[y8,y10];
+lft x9r=hround u; x7=w-x9; top y8r=h+oo; bot y10r=-oo;
+top y1r=vround(.8[y10,y8]+.5vair); bot y3r=vround(.2[y10,y8]-.5vair);
+x6l=1/3[x5l,x7l]; y6=y3; y11=good.y(.1[y10,y8]-.5);
+x0=x4=x5; y4=.8[y3,y1]; y5=2/3[y7,y6];
+if hefty or monospace: lft x2r=hround(5u-.5fudged.stem);
+ rt x0r=hround(w-3u); x11r=x0r;
+else: lft x2r=hround 3.4u; x0=w-x2; x11r=x7r; fi
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % left inner bowl
+filldraw stroke super_arc.e(3,0) & super_arc.e(0,1); % right inner bowl
+filldraw stroke super_arc.e(8,9) & super_arc.e(9,10)
+ & term.e(10,11,right,1,4); % left outer bowl and terminal
+if hefty or monospace: {{interim superness:=hein_super;
+ filldraw stroke super_arc.e(0,8)}}; % link
+else: (x,y6r)=whatever[z6l,z7l]; x6r:=x;
+ filldraw stroke z4e---z5e...z6e{right}...{up}z7e
+ & super_arc.e(7,8); fi % stem and link
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/br10pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/br10pt.mf
new file mode 100644
index 00000000000..e94ae1feab4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/br10pt.mf
@@ -0,0 +1,70 @@
+% Dimensions for Computer Modern Bright at 10pt [1996/07/02 v1.0 (WaS)]
+
+u#:=21/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+sym_u#:=20/36pt#; % unit of width for math symbols
+sym_height#:=155/36pt#; % unit of height for math symbols
+
+% end of br10pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/br17pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/br17pt.mf
new file mode 100644
index 00000000000..4270bb8bc2e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/br17pt.mf
@@ -0,0 +1,72 @@
+% Dimensions for Computer Modern Bright 17pt [1997/05/14 v1.0b (WaS)]
+
+numeric Pt#;
+1Pt#=1.728pt#;
+
+u#:=21/36Pt#; % unit width
+width_adj#:=15/36Pt#; % width adjustment for certain characters
+serif_fit#:=-15/36Pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-18.75/36Pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-3/36Pt#; % extra space added to all sidebars
+
+body_height#:=270/36Pt#; % height of tallest characters
+asc_height#:=250/36Pt#; % height of lowercase ascenders
+cap_height#:=250/36Pt#; % height of caps
+fig_height#:=236/36Pt#; % height of numerals
+x_height#:=170/36Pt#; % height of lowercase without ascenders
+math_axis#:=95/36Pt#; % axis of symmetry for math symbols
+bar_height#:=90/36Pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=40/36Pt#; % depth of comma below baseline
+desc_depth#:=60/36Pt#; % depth of lowercase descenders
+
+crisp#:=0Pt#; % diameter of serif corners
+tiny#:=0Pt#; % diameter of rounded corners
+fine#:=0Pt#; % diameter of sharply rounded corners
+thin_join#:=8/36Pt#; % width of extrafine details
+hair#:=23/36Pt#; % lowercase hairline breadth
+stem#:=23/36Pt#; % lowercase stem breadth
+curve#:=23/36Pt#; % lowercase curve breadth
+ess#:=23/36Pt#; % breadth in middle of lowercase s
+flare#:=21/36Pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36Pt#; % diameter of dots
+cap_hair#:=23/36Pt#; % uppercase hairline breadth
+cap_stem#:=25/36Pt#; % uppercase stem breadth
+cap_curve#:=25/36Pt#; % uppercase curve breadth
+cap_ess#:=25/36Pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4Pt#; % thickness of lines in math symbols
+
+dish#:=0Pt#; % amount erased at top or bottom of serifs
+bracket#:=0Pt#; % vertical distance from serif base to tangent
+jut#:=0Pt#; % protrusion of lowercase serifs
+cap_jut#:=0Pt#; % protrusion of uppercase serifs
+beak_jut#:=0Pt#; % horizontal protrusion of beak serifs
+beak#:=0Pt#; % vertical protrusion of beak serifs
+vair#:=18/36Pt#; % vertical diameter of hairlines
+notch_cut#:=23/36Pt#; % maximum breadth above or below notches
+bar#:=18/36Pt#; % lowercase bar thickness
+slab#:=19/36Pt#; % serif and arm thickness
+cap_bar#:=19/36Pt#; % uppercase bar thickness
+cap_band#:=19/36Pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36Pt#; % max breadth above/below uppercase notches
+serif_drop#:=0Pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36Pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36Pt#; % for small refinements of hairline height
+apex_corr#:=4/36Pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves (v1.0b)
+apex_o#:=2.5/36pt#; % amount of overshoot for diagonal junctions (v1.0b)
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+sym_u#:=20/36Pt#; % unit of width for math symbols
+sym_height#:=155/36Pt#; % unit of height for math symbols
+
+% end of br17pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/br8pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/br8pt.mf
new file mode 100644
index 00000000000..3246a0937e4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/br8pt.mf
@@ -0,0 +1,69 @@
+% Dimensions for Computer Modern Bright at 8pt [1996/07/02 v1.0 (WaS)]
+
+u#:=17.8/36pt#; % unit width
+width_adj#:=9.6/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=136/36pt#; % height of lowercase without ascenders
+math_axis#:=76/36pt#; % axis of symmetry for math symbols
+bar_height#:=72/36pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=32/36pt#; % depth of comma below baseline
+desc_depth#:=48/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=21/36pt#; % lowercase stem breadth
+curve#:=21/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=24/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=21.75/36pt#; % uppercase stem breadth
+cap_curve#:=21.75/36pt#; % uppercase curve breadth
+cap_ess#:=21/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=16/36pt#; % vertical diameter of hairlines
+notch_cut#:=21/36pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=21/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=1.9/36pt#; % amount of overshoot for diagonal junctions
+fudge:=.92; % factor applied to weights of heavy characters
+math_spread:=0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+sym_u#:=17/36pt#;
+sym_height#:=124/36pt#; % unit of height for math symbols
+
+% end of br8pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/br9pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/br9pt.mf
new file mode 100644
index 00000000000..7ade091c6a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/br9pt.mf
@@ -0,0 +1,69 @@
+% Dimensions for Computer Modern Bright at 9pt [1996/07/02 v1.0 (WaS)]
+
+u#:=19.4/36pt#; % unit width
+width_adj#:=10.8/36pt#; % width adjustment for certain characters
+serif_fit#:=-11/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=212/36pt#; % height of numerals
+x_height#:=153/36pt#; % height of lowercase without ascenders
+math_axis#:=85.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=81/36pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=36/36pt#; % depth of comma below baseline
+desc_depth#:=54/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22.75/36pt#; % uppercase stem breadth
+cap_curve#:=22.75/36pt#; % uppercase curve breadth
+cap_ess#:=22.75/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=17/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=18/36pt#; % serif and arm thickness
+cap_bar#:=18/36pt#; % uppercase bar thickness
+cap_band#:=18/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=3.6/36pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=1.95/36pt#; % amount of overshoot for diagonal junctions
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+sym_u#:=18.5/36pt#;
+sym_height#:=139.5/36pt#;
+
+% end of br9pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/brmsa.mf b/Master/texmf-dist/fonts/source/public/cmbright/brmsa.mf
new file mode 100644
index 00000000000..50698c17c37
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/brmsa.mf
@@ -0,0 +1,111 @@
+% MSA symbols, bright style [1996/07/02 v1.0 (WaS)]
+
+numeric circ_w#; %
+circ_w#=2u#+body_height#+max(paren_depth#,desc_depth#);
+
+cmchar "Yen symbol";
+% Change (jk): Use correct pen for horizontal bars
+compute_spread(.45x_height#, .55x_height#);
+beginchar(oct"125",13u#,cap_height#,0); %% adapted from "Y"
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric
+left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr; right_stem=min(cap_hair if
+hefty:-2stem_corr fi,left_stem); outer_jut=.75cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=.4h; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l]; if
+y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+--diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals & stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut:
+inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+pickup pencircle scaled min(hair,vair);
+x7=x9=x1l; x8=x10=x4r; y9=y10;
+top y7=bar_height; y7=y8; draw z7--z8;
+y9-y7=spread; draw z9--z10; % crossing bars
+penlabels(0,1,2,3,4,5,6,1',2',3',4',5',6',7,8,9,10); endchar;
+
+% the next characters have been taken from Joerg Knappen's TC fonts:
+
+cmchar"Registered";
+beginchar(oct"162",circ_w#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+6u);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=ll+hround max(2u,3u-.5cap_stem'); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5hh+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(rr-2.25u);
+else: x4=.5w+.5u; x5r=hround(rr-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(rr-.25u); y10=1/3[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(rr-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar"circledS";
+beginchar(oct"163",circ_w#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-5u);
+rr=hround(.5w+5u);
+numeric theta; theta=90-angle(50u,hh); slope:=-hh/50u; % angle at middle
+numeric s_slab; s_slab=vround .2[slab,cap_stem];
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=0; top y2l=hh+o; bot y7r=-o;
+y0=.52hh; lft x3l=ll+hround u; rt x6r=hround(rr-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+rr-1.75u-rt x1); lft x8r=ll+hround .8u;
+ top y1l=vround .93hh+o; bot y8r=vround .1hh-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); % lower arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/brmsb.mf b/Master/texmf-dist/fonts/source/public/cmbright/brmsb.mf
new file mode 100644
index 00000000000..081e4acaf38
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/brmsb.mf
@@ -0,0 +1,171 @@
+% MSB symbols, bright style [1996/07/02 v1.0 (WaS)]
+
+cmchar "Lowercase variation of Greek kappa";
+% will use same dimensions as standard Greek lowercase kappa
+% see vol E, p 155.
+beginchar(oct"173", 12u#, x_height#, 0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup rule.nib;
+pos1(stem,0); pos2(stem,0);x1l=hround(2u-.5stem); x2r=w-x1l;
+top y2+.3stem=h+oo; bot y1-.3stem=-oo;
+filldraw z1l---z2l...z2r---z1r...cycle;
+pickup crisp.nib;
+pos3(hair,180); x3=lft x1l; y3=3/4h; pos4(stem,90);
+top y4r+.15stem=h+oo; x4-x3=.05[x1,x2];
+pos4'(hair,0); y4'=y3; x4'=1/4[x1,x2];
+pos5(hair,90); z5=z1;
+filldraw super_arc.r(3,4)&super_arc.r(4,4')...{z1-z2}z5&z5{z2-z1}
+...super_arc.l(4',4)&super_arc.l(4,3)---cycle; % left arm
+pos8(hair,-90); pos6(hair,0);
+z8=z2; pos7(stem, -90); bot y7r-.15stem=-oo; x6-x7=x4-x3;
+x6=w-x3;
+pos7'(hair,180); y7'=y6; x7'=w-x4';
+y6=h-y3;
+filldraw super_arc.r(6,7)&super_arc.r(7,7')...{z2-z1}z8&z8{z1-z2}
+...super_arc.l(7',7)&super_arc.l(7,6)---cycle; % right arm
+%filldraw z8{z1-z2}..z7l...{up}z6r---z6l{-u,-2u}...z7r..{z2-z1}z8---cycle; %right arm
+penlabels(range 1 thru 8,4'); endchar;
+
+cmchar "H-bar symbol, slanted bar";
+beginchar(oct"175",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos5(macron_breadth,90); pos6(macron_breadth,90);
+y5=0.7h; y6=7/8h;
+lft x5=w-2.5u-rt x6=hround 0.5u;
+filldraw stroke z5e--z6e; % bar
+
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "H-bar symbol, vertical bar";
+beginchar(oct"176",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos5(macron_breadth,90); pos6(macron_breadth,90);
+top y5r=top y6r=0.81h; %h+o;
+lft x5=w-2.5u-rt x6=hround 0.5u;
+filldraw stroke z5e--z6e; % bar
+
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Reversed, reflected, lowercase Greek epsilon";
+beginchar(oct"177",8u#,x_height#,0);
+italcorr x_height#*slant+.5hair#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(bar,90); pos1(bar,90); pos2(curve,180);
+pos3(vair,270); pos4(hair,300); pos6(bar,90); pos7(bar,90);
+x1=.5w+.5u; x0=x1+u; lft x2r=hround(1.5u-.5curve); x3=.5[x0,x1];
+x4r=good.x(w-u); x5=w+.5u; x6=x0; z7=z2l;
+top y0r=top y1r=h; y2=y5=y6=bar_height; bot y3r=-oo;
+path p; p=z3r{right}...{up}z5;
+numeric t; t=ypart(((x4r,y3r)--(x4r,y5))intersectiontimes p);
+y4r=ypart point t of p;
+filldraw circ_stroke z0e..pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ ...z4e{direction t of p}; % arc
+filldraw circ_stroke z6e--z7e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+picture v;
+v:=currentpicture;
+v:=v reflectedabout((0,h*aspect_ratio/2),(w,h*aspect_ratio/2));
+v:=v reflectedabout((w/2,-d),(w/2,h));
+currentpicture:=v shifted (2u,0);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+cmchar "Upsidedown, uppercase Greek Omega";
+beginchar(oct"146",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+%math_fit(0,.5ic#);
+picture v; v:=currentpicture;
+numeric t; t=h-d;
+v:=v reflectedabout((0,0),(w,0));
+currentpicture:=v shifted(0,aspect_ratio*cap_height);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter Edh (Old English rune, like thorn)";
+% adapted from cm partial differential sign, vol E, p 233.
+beginchar(oct"147",10u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-1.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,90);
+pos3(side_thickness,0); pos4(bot_thickness,-90);
+pos5(side_thickness,-180); pos6(vair,-270);
+lft x5r=w-rt x3r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6+.1u=x2+u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,0); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+x2:=x5; x2l:=x2r:=x2;
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+%pos1(hair,180); pos0(flare,180); % commenting out the arc and bulb
+%lft x0r=min(lft x2-eps,hround 1.2u);
+%y0=vround min(.85h-.5flare,.8h+.5flare)+o;
+%{{less_tense; bulb(2,1,0)}}; % arc and bulb
+%math_fit(-.3x_height#*slant+.5curve#-u#,ic#-u#);
+pickup pencircle xscaled 1.4rule_thickness yscaled .5rule_thickness;
+x10=x11=x5; x12=x13=w-x10; y10=y13;
+y10-y11=y12-y13=cap_stem; .5[y11,y10]=.5[y6,y2];
+draw z10--z11--z12--z13; % cross piece
+penlabels(2,3,4,5,6,7,10,11,12,,13); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/broman.mf b/Master/texmf-dist/fonts/source/public/cmbright/broman.mf
new file mode 100644
index 00000000000..3471aeb3262
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/broman.mf
@@ -0,0 +1,71 @@
+% The Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+% Modified for the CM Bright fonts [1995/10/04 v0.997 WaS]
+if ligs>1: font_coding_scheme:="TeX text";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+mode_setup; font_setup;
+define_pixels(sym_u);define_whole_vertical_pixels(sym_height);
+% lowres_fix(stem,cap_stem)1.12;
+
+input romanu; % upper case (majuscules)
+input bromanl; % lower case (minuscules)
+input bgreeku; % upper case Greek letters
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+input romspu; % uppercase specials (\AE, \OE, \O)
+input bpunct; % punctuation symbols common to roman and italic text
+input baccent; % accents common to roman and italic text
+if ligs>1: input bromlig; fi % letter ligatures
+if ligs>0: input comlig; fi % ligatures common with italic text
+if ligs<=1: input romsub; fi % substitutes for ligatures
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 5.7u#+2letter_fit#;
+ font_normal_stretch 2.85u#; font_normal_shrink 1.9u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 1.9u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "k": if serifs: "v": "a" kern -u#, fi\\"w": "e" kern k#,
+ "a" kern k#, "o" kern k#, "c" kern k#;
+ ligtable "P": "A" kern kk#,
+ "y": "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, "," kern kk#;
+ ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#, "u" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ else: "o" kern k#, "e" kern k#, "u" kern k#,
+ "r" kern k#, "a" kern k#, "A" kern kk#, fi
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": "y" kern if serifs: k# else: kk# fi,
+ "Y": "e" kern kk#, "o" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ if serifs: ligtable "h": "m": "n":
+ "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#;
+ ligtable "c": "h" kern k#, "k" kern k#; fi
+ ligtable "o": "b": "p":
+if known bx_kerning:
+ "e" kern -k#, "o" kern -k#,
+ "d" kern -k#,
+ "c" kern -k#, "q" kern -k#,
+fi
+ "x" kern k#,
+ "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "t": "y" kern k#,
+ "u": "w" kern k#;
+ ligtable "A": if serifs: "R": fi\\ "t" kern k#,
+ "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#;
+ ligtable "g": "j" kern -k#; % logjam
+ ligtable "I": "I" kern -k#; fi % Richard III
+ % there are ligature/kern programs for |"f"| in the {\tt romlig} file
+ % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/bromanl.mf b/Master/texmf-dist/fonts/source/public/cmbright/bromanl.mf
new file mode 100644
index 00000000000..24d46426e15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/bromanl.mf
@@ -0,0 +1,832 @@
+% Computer Modern Roman lower case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+% Modified by WaS for the CM Bright fonts in 1995.
+% Character codes \0141 through \0172 are generated.
+
+cmchar "The letter a";
+beginchar("a",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The letter b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter d";
+beginchar("d",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter f";
+beginchar("f",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+iff not variant_g: cmchar "The letter g";
+beginchar("g",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: cmchar "Variant letter g";
+beginchar("g",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The letter h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter i";
+numeric dot_diam#;
+% diameter of dot = stem width;
+% do the same trick later once more with the unsharped dimension:
+% dot_diam#=max(dot_size#,cap_curve#);
+dot_diam#=stem'/hppp;
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+%define_whole_blacker_pixels(dot_diam);
+dot_diam:=stem';
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,hround(x1+.5dot_diam-.2jut)-.5tiny)
+else: x3=x1-.5 fi;
+%top y4r=h+1;
+top y4r=h;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter j";
+numeric dot_diam#;
+% diameter of dot = stem width;
+% do the same trick later once more with the unsharped dimension:
+%dot_diam#=max(dot_size#,cap_curve#);
+dot_diam#=stem'/hppp;
+beginchar("j",5.5u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+%define_whole_blacker_pixels(dot_diam);
+dot_diam:=stem';
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r;% top y4r=h+1;
+top y4r=h;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+cmchar "The letter l";
+beginchar("l",5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2); endchar;
+
+cmchar "The letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; % stem, sic
+lft x3l=hround(.5w-.5mfudged.stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)+r-w; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter p";
+beginchar("p",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter q";
+beginchar("q",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter s";
+beginchar("s",7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter t";
+beginchar("t",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter u";
+beginchar("u",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+cmchar "The letter v";
+beginchar("v",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "The letter w";
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter x";
+beginchar("x",if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The letter y";
+beginchar("y",if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter z";
+beginchar("z",8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/bromlig.mf b/Master/texmf-dist/fonts/source/public/cmbright/bromlig.mf
new file mode 100644
index 00000000000..fdb142d9c9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/bromlig.mf
@@ -0,0 +1,170 @@
+% This file describes five roman ligatures that begin with `f'
+% and puts them in code positions \0013--\0017.
+% Modified by WaS for the CM Bright fonts in 1995.
+numeric itc#; % modified italic correction on `f' and `ff'
+itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi;
+
+ligtable "f": "i"=:oct"014", "f"=:oct"013", "l"=:oct"015",
+ "'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#;
+ligtable oct"013": "i"=:oct"016", "l"=:oct"017",
+ "'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#;
+
+cmchar "The ligature ff";
+beginchar(oct"013",10.5u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-3u+.5stem');
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); pos12(bulb_diam,0);
+ rt x2r=hround(rt x11r-stem_corr); lft x12l=hround(w-.75u+.5);
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 6.25u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(w+.75u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,1.25jut); % right stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-1/3u);
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+cmchar "The ligature fi";
+beginchar(oct"014",10u#+2letter_fit#,asc_height#,0);
+numeric dot_diam#;
+% diameter of dot = stem width of `i'
+dot_diam#=stem'/hppp;
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_diam# fi-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x12r;
+ y2+.5bulb_diam=.8[x_height,h+oo]; top y11=x_height+min(oo,serif_drop);
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=stem';
+ pos2(6/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u;
+ pickup tiny.nib; pos13(bulb_diam,0); pos14(bulb_diam,90);
+ x13=x11-.5; top y14r=min(2x_height,h+1); top y11=x_height;
+ if bot y14l-x_height<tiny: y14l:=min(y14r-eps,y11+2tiny); fi
+ x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+fi; % this is the ligature we're drawing
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup tiny.nib; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11; % bar will overlap upper right serif
+ sloped_serif.l(11,12,d,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "The ligature fl";
+beginchar(oct"015",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0; top y11=h;
+filldraw stroke z11e--z12e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ y2+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(11,12,d,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u; fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11;
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+cmchar "The ligature ffi";
+beginchar(oct"016",15u#+4letter_fit#,asc_height#,0);
+numeric dot_diam#;
+% diameter of dot = stem width of `i', if we don't make serifs;
+% do the same trick later once more with the unsharped dimension:
+if serifs: dot_diam#=dot_size# else: dot_diam#=stem'/hppp fi;
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_diam# fi-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r;
+ top y21=x_height+min(oo,serif_drop);
+ y2+.5bulb_diam=.8[x_height,h+oo]; y12=y2;
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=stem';
+ pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(6/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u);
+ pickup tiny.nib; pos23(bulb_diam,0); pos24(bulb_diam,90);
+ x23=x21-.5; top y24r=min(2x_height,h+1); top y21=x_height;
+ if bot y24l-x_height<tiny: y24l:=min(y24r-eps,y21+2tiny); fi
+ x23=x24; y23=.5[y24l,y24r]; dot(23,24); fi % dot
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup tiny.nib; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x21; % bar will overlap upper right serif
+ sloped_serif.l(21,22,g,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+else: rt x4=hround(.5w+2.8u); fi
+pickup crisp.nib;
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22,23,24); endchar;
+
+cmchar "The ligature ffl";
+beginchar(oct"017",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0; top y21=h;
+filldraw stroke z21e--z22e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r-stem_corr;
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(21,22,g,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+ pickup crisp.nib; x4=x21;
+else: rt x4=hround(.5w+2.8u); fi
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/bromms.mf b/Master/texmf-dist/fonts/source/public/cmbright/bromms.mf
new file mode 100644
index 00000000000..9987a9c8aa5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/bromms.mf
@@ -0,0 +1,243 @@
+% This file contains special characters of ``math italic'' fonts
+% that actually are not supposed to be slanted.
+% Changed for the CM Bright fonts [1995/09/23 v0.997 WaS]
+
+% Codes \0050--\0057, \0072--\0077, and \0133--\0137 are generated.
+
+% The italic corrections are zero in all of these characters.
+
+cmchar "Leftward top half arrow";
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar(oct"050",18sym_u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-sym_u); lft x0=hround sym_u;
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0+4sym_u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0--(x0,y2l)---z1l..z1r---z2r
+ ..subpath (t,0) of\\(z3r..{2(x0-x3),y0-y3}z5r)
+ --z3l..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Leftward bottom half arrow";
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar(oct"051",18sym_u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-sym_u); lft x0=hround sym_u;
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0+4sym_u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0{2(x4-x0),y4-y0}..z4l
+ --subpath (0,t) of\\(z4r..{2(x0-x4),y0-y4}z6r)
+ ..z2l---z1l..z1r---(x0,y2r)--cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward top half arrow";
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar(oct"052",18sym_u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround sym_u; rt x0=hround(w-sym_u);
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0-4sym_u-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0--(x0,y2l)---z1l..z1r---z2r
+ ..subpath (t,0) of\\(z3l..{2(x0-x3),y0-y3}z5r)
+ --z3r..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward bottom half arrow";
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar(oct"053",18sym_u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround sym_u; rt x0=hround(w-sym_u);
+y3-y0=y0-y4=.36asc_height+eps; x3=x4=x0-4sym_u-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0{2(x4-x0),y4-y0}..z4r
+ --subpath (0,t) of\\(z4l..{2(x0-x4),y0-y4}z6r)
+ ..z2l---z1l..z1r---(x0,y2r)--cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Left hook";
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar(oct"054",5sym_u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround sym_u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
+draw z1{left}...z2{down}...z3{right}; % hook
+labels(1,2,3); endchar;
+
+cmchar "Right hook";
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar(oct"055",5sym_u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+rt x2=hround(w-sym_u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
+draw z1{right}...z2{down}...z3{left}; % hook
+labels(1,2,3); endchar;
+
+cmchar "Triangle pointing right";
+beginchar(oct"056",9sym_u#,v_center(sym_height#));
+adjust_fit(0,0); pickup rule.nib;
+numeric a,b; a=sqrt(3.14159\\ /sqrt3); % triangle area $=$ circle area
+b=.5w-(rt hround sym_u); .5[x1',x2']=.5w; x2'-x1'=a*b*sqrt3;
+x1=x3=good.x x1'; x2=good.x x2';
+y2=.5[y1,y3]=math_axis; y1=good.y(y2+a*b);
+draw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+cmchar "Triangle pointing left";
+beginchar(oct"057",9sym_u#,v_center(sym_height#));
+adjust_fit(0,0); pickup rule.nib;
+numeric a,b; a=sqrt(3.14159\\ /sqrt3); % triangle area $=$ circle area
+b=.5w-(rt hround sym_u); .5[x1',x2']=.5w; x1'-x2'=a*b*sqrt3;
+x1=x3=good.x x1'; x2=good.x x2';
+y2=.5[y1,y3]=math_axis; y1=good.y(y2+a*b);
+draw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(oct"072",5u#,dot_diam#,0); % non-ASCII position
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(oct"073",5u#,dot_diam#,comma_depth#); % non-ASCII position
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Less than sign";
+compute_spread(5/4sym_height#,3/2sym_height#);
+beginchar("<",14sym_u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-sym_u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Virgule (slash)";
+beginchar(oct"075",9sym_u#,body_height#,paren_depth#); % non-ASCII position
+italcorr body_height#*slant-.5sym_u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-sym_u)+eps; top y1=h+eps;
+lft x2=hround sym_u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Greater than sign";
+compute_spread(5/4sym_height#,3/2sym_height#);
+beginchar(">",14sym_u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-sym_u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5sym_u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Five-pointed star";
+beginchar(oct"077",9sym_u#,v_center(sym_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric theta; theta=360/5; % degrees between points
+pos0(curve,0); pos1(rule_thickness,90); x0=x1=good.x .5w;
+top y1r=vround(math_axis+.5x_height+.5rule_thickness);
+ypart(.5[z1,z0+(z1-z2) rotated 2theta])=math_axis;
+pos2(curve,theta); pos3(rule_thickness,90+theta);
+z2=z0; z3-z0=(z1-z0) rotated theta;
+z4=whatever[z0l,z1r]=whatever[z2r,z3r];
+filldraw for n=0 upto 4:
+ z0+(z1r-z0)rotated(n*theta)--z0+(z4-z0)rotated(n*theta)--endfor
+ cycle; % star
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Musical flat sign";
+beginchar(oct"133",7u#,body_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+numeric light_hair; light_hair=if hefty: vair else: hair fi;
+pos1(light_hair,0); pos2(light_hair,180); pos3(light_hair,0); x1=x2=x3;
+pos4(.25[light_hair,curve],60); pos5(curve,0);
+lft x1l=hround u; x4=.5w; rt x5r=hround(w-u);
+top y1=h; bot y3=-o; top y4=x_height+o;
+y2=y4-.2x_height; y5=3/4x_height;
+filldraw stroke z1e--z3e; % stem
+filldraw stroke z2e{up}...z4e{right}...z5e{down}
+ ...{2(x3-x5e),y3-y5e}z3e; % bowl
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Musical natural sign";
+beginchar(oct"134",7u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric light_hair; light_hair=if hefty: vair else: hair fi;
+pos1(light_hair,0); pos2(curve,90); pos3(curve,90);
+pos4(curve,90); pos5(curve,90); pos6(light_hair,0);
+rt x1r=hround 15/8u; x2=x4=x1l; x3=x5=x6r=w-x2;
+y1=h+o; top y2r=0; .5[y2,y3]=0; y4-y2=y5-y3=x_height; bot y6=-d-o;
+x2'=x1r; z2'=whatever[z2r,z3r]; x5'=x6l; z5'=whatever[z4l,z5l];
+(x1r,y)=z1l+whatever*(z5-z4); y6l:=y6l-(y-y1r); y1r:=y;
+filldraw z1l--z2l--z3l--z3r--z2'--z1r--cycle; % left stem and lower bar
+filldraw z6r--z5r--z4r--z4l--z5'--z6l--cycle; % right stem and upper bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Musical sharp sign";
+beginchar(oct"135",7u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric light_hair; light_hair=if hefty: vair else: hair fi;
+pos1(curve,90); pos2(curve,90); pos3(curve,90); pos4(curve,90);
+lft x1=lft x3=hround u; x2=x4=w-x1;
+top y3r=0; .5[y3,y4]=0; y1-y3=y2-y4=x_height;
+filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; % bars
+numeric theta,hstem; theta=angle(z2-z1);
+(hstem-crisp)*cosd theta=light_hair-crisp;
+pos5(hstem,theta); pos6(hstem,theta); pos7(hstem,theta); pos8(hstem,theta);
+lft x5l=lft x6l=hround(2u-.5light_hair); x7=x8=w-x6;
+top y7l=h+o; bot y6r=-d-o; z7-z5=z8-z6=(whatever,0) rotated theta;
+filldraw stroke z5e--z6e; filldraw stroke z7e--z8e; % stems
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Slur below (smile)";
+beginchar(oct"136",18sym_u#,v_center(.5sym_height#));
+adjust_fit(0,0); pickup fine.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+x1-.5hair=hround sym_u; y1+.5hair=vround(h+.5hair); x3=w-x1; y3=y1;
+pos2(light_stem,90); x2=.5w; y2l=good.y -d;
+numeric theta; theta=angle((z2-z1)yscaled 3);
+pos1(hair,90+theta); pos3(hair,90-theta);
+filldraw z1l{dir theta}...z2l...{dir-theta}z3l
+ ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Slur above (frown)";
+beginchar(oct"137",18sym_u#,v_center(.5sym_height#));
+adjust_fit(0,0); pickup fine.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+x1-.5hair=hround sym_u; y1-.5hair=vround(-d-.5hair); x3=w-x1; y3=y1;
+pos2(light_stem,90); x2=.5w; y2=good.y h;
+numeric theta; theta=angle((z2-z1)yscaled 3);
+pos1(hair,90+theta); pos3(hair,90-theta);
+filldraw z1l{dir theta}...z2l...{dir-theta}z3l
+ ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle; % arc
+penlabels(1,2,3); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/brs10pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/brs10pt.mf
new file mode 100644
index 00000000000..88c2c1f7392
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/brs10pt.mf
@@ -0,0 +1,74 @@
+% Dimensions for Computer Modern Bright semibold 10pt [1997/04/25 v1.0 (WaS)]
+
+numeric spt#;
+1spt#=1.5pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=8/36spt#; % width of extrafine details
+hair#:=23/36spt#; % lowercase hairline breadth
+stem#:=23/36spt#; % lowercase stem breadth
+curve#:=23/36spt#; % lowercase curve breadth
+ess#:=23/36spt#; % breadth in middle of lowercase s
+flare#:=21/36spt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36spt#; % diameter of dots
+cap_hair#:=23/36spt#; % uppercase hairline breadth
+cap_stem#:=25/36spt#; % uppercase stem breadth
+cap_curve#:=25/36spt#; % uppercase curve breadth
+cap_ess#:=25/36spt#; % breadth in middle of uppercase s
+%rule_thickness#:=.4spt#; % thickness of lines in math symbols
+rule_thickness#:=.49pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36spt#; % vertical diameter of hairlines
+notch_cut#:=23/36spt#; % maximum breadth above or below notches
+bar#:=18/36spt#; % lowercase bar thickness
+slab#:=19/36spt#; % serif and arm thickness
+cap_bar#:=19/36spt#; % uppercase bar thickness
+cap_band#:=19/36spt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36spt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36spt#; % for small refinements of stem breadth
+vair_corr#:=.5/36spt#; % for small refinements of hairline height
+apex_corr#:=4/36spt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+sym_u#:=20/36pt#; % unit of width for math symbols
+sym_height#:=155/36pt#; % unit of height for math symbols
+
+% end of br10pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/brs17pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/brs17pt.mf
new file mode 100644
index 00000000000..9316517f94f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/brs17pt.mf
@@ -0,0 +1,75 @@
+% Dimensions for Computer Modern Bright semibold 17pt [1997/05/26 v1.0c (WaS)]
+
+numeric Pt#;
+1Pt#=1.728pt#;
+numeric sPt#;
+1sPt#=1.5Pt#;
+
+u#:=21/36Pt#; % unit width
+width_adj#:=12/36Pt#; % width adjustment for certain characters
+serif_fit#:=-15/36Pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-15/36Pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0Pt#; % extra space added to all sidebars
+
+body_height#:=270/36Pt#; % height of tallest characters
+asc_height#:=250/36Pt#; % height of lowercase ascenders
+cap_height#:=250/36Pt#; % height of caps
+fig_height#:=236/36Pt#; % height of numerals
+x_height#:=170/36Pt#; % height of lowercase without ascenders
+math_axis#:=95/36Pt#; % axis of symmetry for math symbols
+bar_height#:=90/36Pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=40/36Pt#; % depth of comma below baseline
+desc_depth#:=60/36Pt#; % depth of lowercase descenders
+
+crisp#:=0Pt#; % diameter of serif corners
+tiny#:=0Pt#; % diameter of rounded corners
+fine#:=0Pt#; % diameter of sharply rounded corners
+thin_join#:=8/36sPt#; % width of extrafine details
+hair#:=23/36sPt#; % lowercase hairline breadth
+stem#:=23/36sPt#; % lowercase stem breadth
+curve#:=23/36sPt#; % lowercase curve breadth
+ess#:=23/36sPt#; % breadth in middle of lowercase s
+flare#:=21/36sPt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36sPt#; % diameter of dots
+cap_hair#:=23/36sPt#; % uppercase hairline breadth
+cap_stem#:=25/36sPt#; % uppercase stem breadth
+cap_curve#:=25/36sPt#; % uppercase curve breadth
+cap_ess#:=25/36sPt#; % breadth in middle of uppercase s
+%rule_thickness#:=.4sPt#; % thickness of lines in math symbols
+rule_thickness#:=.49Pt#; % thickness of lines in math symbols
+
+dish#:=0Pt#; % amount erased at top or bottom of serifs
+bracket#:=0Pt#; % vertical distance from serif base to tangent
+jut#:=0Pt#; % protrusion of lowercase serifs
+cap_jut#:=0Pt#; % protrusion of uppercase serifs
+beak_jut#:=0Pt#; % horizontal protrusion of beak serifs
+beak#:=0Pt#; % vertical protrusion of beak serifs
+vair#:=18/36sPt#; % vertical diameter of hairlines
+notch_cut#:=23/36sPt#; % maximum breadth above or below notches
+bar#:=18/36sPt#; % lowercase bar thickness
+slab#:=19/36sPt#; % serif and arm thickness
+cap_bar#:=19/36sPt#; % uppercase bar thickness
+cap_band#:=19/36sPt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36sPt#; % max breadth above/below uppercase notches
+serif_drop#:=0Pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36sPt#; % for small refinements of stem breadth
+vair_corr#:=.5/36sPt#; % for small refinements of hairline height
+apex_corr#:=4/36sPt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=2.5/36pt#; % amount of overshoot for diagonal junctions
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+sym_u#:=20/36Pt#; % unit of width for math symbols
+sym_height#:=155/36Pt#; % unit of height for math symbols
+
+% end of brs17pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/brs8pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/brs8pt.mf
new file mode 100644
index 00000000000..d9ea980be97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/brs8pt.mf
@@ -0,0 +1,73 @@
+% Dimensions for Computer Modern Bright semibold 8pt [1997/05/26 v1.0c (WaS)]
+
+numeric spt#;
+1spt#=1.5pt#;
+
+u#:=17.8/36pt#; % unit width
+width_adj#:=9.6/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=136/36pt#; % height of lowercase without ascenders
+math_axis#:=76/36pt#; % axis of symmetry for math symbols
+bar_height#:=72/36pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=32/36pt#; % depth of comma below baseline
+desc_depth#:=48/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=7/36spt#; % width of extrafine details
+hair#:=21/36spt#; % lowercase hairline breadth
+stem#:=21/36spt#; % lowercase stem breadth
+curve#:=21/36spt#; % lowercase curve breadth
+ess#:=21/36spt#; % breadth in middle of lowercase s
+flare#:=19/36spt#; % diameter of bulbs or breadth of terminals
+dot_size#:=24/36spt#; % diameter of dots
+cap_hair#:=21/36spt#; % uppercase hairline breadth
+cap_stem#:=21.75/36spt#; % uppercase stem breadth
+cap_curve#:=21.75/36spt#; % uppercase curve breadth
+cap_ess#:=21/36spt#; % breadth in middle of uppercase s
+%rule_thickness#:=.36spt#; % thickness of lines in math symbols
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=16/36spt#; % vertical diameter of hairlines
+notch_cut#:=21/36spt#; % maximum breadth above or below notches
+bar#:=16/36spt#; % lowercase bar thickness
+slab#:=17/36spt#; % serif and arm thickness
+cap_bar#:=17/36spt#; % uppercase bar thickness
+cap_band#:=17/36spt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=21/36spt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36spt#; % for small refinements of stem breadth
+vair_corr#:=.5/36spt#; % for small refinements of hairline height
+apex_corr#:=2/36spt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=1.9/36pt#; % amount of overshoot for diagonal junctions
+fudge:=.92; % factor applied to weights of heavy characters
+math_spread:=0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+sym_u#:=17/36pt#;
+sym_height#:=124/36pt#; % unit of height for math symbols
+
+% end of brs8pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/brs9pt.mf b/Master/texmf-dist/fonts/source/public/cmbright/brs9pt.mf
new file mode 100644
index 00000000000..a99e2ac2b09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/brs9pt.mf
@@ -0,0 +1,73 @@
+% Dimensions for Computer Modern Bright semibold 9pt [1997/05/26 v1.0c (WaS)]
+
+numeric spt#;
+1spt#=1.5pt#;
+
+u#:=19.4/36pt#; % unit width
+width_adj#:=10.8/36pt#; % width adjustment for certain characters
+serif_fit#:=-11/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=212/36pt#; % height of numerals
+x_height#:=153/36pt#; % height of lowercase without ascenders
+math_axis#:=85.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=81/36pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=36/36pt#; % depth of comma below baseline
+desc_depth#:=54/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36spt#; % width of extrafine details
+hair#:=22/36spt#; % lowercase hairline breadth
+stem#:=22/36spt#; % lowercase stem breadth
+curve#:=22/36spt#; % lowercase curve breadth
+ess#:=22/36spt#; % breadth in middle of lowercase s
+flare#:=20/36spt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36spt#; % diameter of dots
+cap_hair#:=22/36spt#; % uppercase hairline breadth
+cap_stem#:=22.75/36spt#; % uppercase stem breadth
+cap_curve#:=22.75/36spt#; % uppercase curve breadth
+cap_ess#:=22.75/36spt#; % breadth in middle of uppercase s
+%rule_thickness#:=.38spt#; % thickness of lines in math symbols
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=17/36spt#; % vertical diameter of hairlines
+notch_cut#:=22/36spt#; % maximum breadth above or below notches
+bar#:=17/36spt#; % lowercase bar thickness
+slab#:=18/36spt#; % serif and arm thickness
+cap_bar#:=18/36spt#; % uppercase bar thickness
+cap_band#:=18/36spt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36spt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36spt#; % for small refinements of stem breadth
+vair_corr#:=.5/36spt#; % for small refinements of hairline height
+apex_corr#:=3.6/36spt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=1.95/36pt#; % amount of overshoot for diagonal junctions
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+sym_u#:=18.5/36pt#;
+sym_height#:=139.5/36pt#;
+
+% end of br9pt.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbr10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbr10.mf
new file mode 100644
index 00000000000..30cafd0c741
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbr10.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright 10 point [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBR"; font_size 10pt#;
+input br10pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+ligs:=2;
+
+generate broman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbr17.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbr17.mf
new file mode 100644
index 00000000000..8d00ec53ab6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbr17.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright 17 point [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBR"; font_size 17.28pt#;
+input br17pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate broman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbr8.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbr8.mf
new file mode 100644
index 00000000000..eb3ccf32f0f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbr8.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright 8 point [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBR"; font_size 8pt#;
+input br8pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate broman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbr9.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbr9.mf
new file mode 100644
index 00000000000..ab8c8d2bb91
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbr9.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright 9 point [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBR"; font_size 9pt#;
+input br9pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate broman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbras10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbras10.mf
new file mode 100644
index 00000000000..49543db0060
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbras10.mf
@@ -0,0 +1,31 @@
+% Computer Modern Bright MSA symbols 10pt [1996/05/01 v1.0 (WaS)]
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRAS"; font_size 10pt#;
+
+input ams10pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+mode_setup; font_setup;
+
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+
+
+input msa; % the symbols, roman style
+
+% the remaining characters are to be generated with the parameters
+% of cmbrmi10
+input br10pt;
+
+font_setup;
+input brmsa; % the symbols, bright style
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbras8.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbras8.mf
new file mode 100644
index 00000000000..170b72c5ace
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbras8.mf
@@ -0,0 +1,30 @@
+% Computer Modern Bright MSA symbols 8pt [1996/05/01 v1.0 (WaS)]
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRAS"; font_size 8pt#;
+
+input ams8pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+mode_setup; font_setup;
+
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+
+
+input msa; % the symbols, roman style
+
+% the remaining characters are to be generated with the parameters
+% of cmbrmi10
+input br8pt;
+
+font_setup;
+input brmsa; % the symbols, bright style
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbras9.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbras9.mf
new file mode 100644
index 00000000000..1c50a36ffb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbras9.mf
@@ -0,0 +1,31 @@
+% Computer Modern Bright MSA symbols 9pt [1996/05/01 v1.0 (WaS)]
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRAS"; font_size 9pt#;
+
+input ams9pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+
+mode_setup; font_setup;
+
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+
+
+input msa; % the symbols, roman style
+
+% the remaining characters are to be generated with the parameters
+% of cmbrmi10
+input br9pt;
+
+font_setup;
+input brmsa; % the symbols, bright style
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrbs10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrbs10.mf
new file mode 100644
index 00000000000..e2ea0039f78
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrbs10.mf
@@ -0,0 +1,31 @@
+% Computer Modern Bright MSB symbols [1996/05/01 v1.0 (WaS)]
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRBS"; font_size 10pt#;
+
+input ams10pt;
+slant:=sind 12/ cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+
+mode_setup; font_setup;
+
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the next characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input msb; % symbols, roman style
+
+% the remaining characters are to be generated with the parameters
+% of cmbrmi10
+input br10pt;
+slant:=sind12/ cosd 12;
+font_setup;
+input brmsb; % symbols, bright style
+input xbbold; % blackboard bold
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrbs8.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrbs8.mf
new file mode 100644
index 00000000000..f5b1863ee65
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrbs8.mf
@@ -0,0 +1,31 @@
+% Computer Modern Bright MSB symbols 8pt [1996/05/01 v1.0 (WaS)]
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRBS"; font_size 8pt#;
+
+input ams8pt;
+slant:=sind 12/ cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+
+mode_setup; font_setup;
+
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the next characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input msb; % symbols, roman style
+
+% the remaining characters are to be generated with the parameters
+% of cmbrmi10
+input br8pt;
+slant:=sind12/ cosd 12;
+font_setup;
+input brmsb; % symbols, bright style
+input xbbold; % blackboard bold
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrbs9.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrbs9.mf
new file mode 100644
index 00000000000..77b21a41d1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrbs9.mf
@@ -0,0 +1,31 @@
+% Computer Modern Bright MSB symbols 9pt [1996/05/01 v1.0 (WaS)]
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRBS"; font_size 9pt#;
+
+input ams9pt;
+slant:=sind 12/ cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+
+mode_setup; font_setup;
+
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the next characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input msb; % symbols, roman style
+
+% the remaining characters are to be generated with the parameters
+% of cmbrmi10
+input br9pt;
+slant:=sind12/ cosd 12;
+font_setup;
+input brmsb; % symbols, bright style
+input xbbold; % blackboard bold
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrbx10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrbx10.mf
new file mode 100644
index 00000000000..1c40cbf9713
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrbx10.mf
@@ -0,0 +1,79 @@
+% Computer Modern Bright Bold Extended 10 pt [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRBX"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=22/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=49/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=43/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=49/36pt#; % uppercase hairline breadth
+cap_stem#:=53/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=49/36pt#; % maximum breadth above or below notches
+bar#:=26/36pt#; % lowercase bar thickness
+slab#:=36/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=31/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=18/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+bx_kerning:=1; % different kerning for bold extended fonts
+sym_u#:=u#; % unit of width for math symbols
+sym_height#:=x_height#; % unit of height for math symbols
+
+generate broman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrmb10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrmb10.mf
new file mode 100644
index 00000000000..9f65ad197b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrmb10.mf
@@ -0,0 +1,78 @@
+% Computer Modern Bright Math Slanted Bold 10 pt [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRMB"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-8/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=40/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=37/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=44/36pt#; % uppercase stem breadth
+cap_curve#:=44/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=23/36pt#; % vertical diameter of hairlines
+notch_cut#:=40/36pt#; % maximum breadth above or below notches
+bar#:=23/36pt#; % lowercase bar thickness
+slab#:=31/36pt#; % serif and arm thickness
+cap_bar#:=29/36pt#; % uppercase bar thickness
+cap_band#:=27/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=37/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=14/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.91; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.74; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+sym_u#:=20/36pt#; % unit of width for math symbols
+sym_height#:=155/36pt#; % unit of height for math symbols
+
+generate mathsl % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrmi10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrmi10.mf
new file mode 100644
index 00000000000..cb946aa81dc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrmi10.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright Math Slanted 10 point [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRMI"; font_size 10pt#;
+input br10pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+ligs:=2;
+
+generate mathsl % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrmi8.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrmi8.mf
new file mode 100644
index 00000000000..2771a55b7f7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrmi8.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright Math Slanted 8 point [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRMI"; font_size 8pt#;
+input br8pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathsl % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrmi9.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrmi9.mf
new file mode 100644
index 00000000000..c4b1f1c2736
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrmi9.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright Math Slanted 9 point [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRMI"; font_size 9pt#;
+input br9pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathsl % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl10.mf
new file mode 100644
index 00000000000..6510888c869
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl10.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright Slanted 10 point [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRSL"; font_size 10pt#;
+input br10pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+ligs:=2;
+
+generate broman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl17.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl17.mf
new file mode 100644
index 00000000000..8012bfdc1c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl17.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright Slanted 17 point [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRSL"; font_size 17.28pt#;
+input br17pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate broman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl8.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl8.mf
new file mode 100644
index 00000000000..876753ef2e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl8.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright Slanted 8 point [1996/07/02 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRSL"; font_size 8pt#;
+input br8pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate broman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl9.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl9.mf
new file mode 100644
index 00000000000..12eba4c3ca4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsl9.mf
@@ -0,0 +1,13 @@
+% Computer Modern Bright 9 point slanted [1996/05/01 v1.0 (WaS)]
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRSL"; font_size 9pt#;
+input br9pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate broman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrsy10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsy10.mf
new file mode 100644
index 00000000000..9dbcd3e13a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsy10.mf
@@ -0,0 +1,97 @@
+% Computer Modern Bright Math Symbols 10 point [1996/05/01 v1.0 (WaS)]
+% (identical to cmsy10, except math_axis)
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRSY"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrsy8.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsy8.mf
new file mode 100644
index 00000000000..2d73cce34ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsy8.mf
@@ -0,0 +1,97 @@
+% Computer Modern Bright Math Symbols 8 point [1996/05/01 v1.0 (WaS)]
+% (identical to cmsy8, except math_axis)
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRSY"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=76/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmbrsy9.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsy9.mf
new file mode 100644
index 00000000000..b08e0ff1d9f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmbrsy9.mf
@@ -0,0 +1,97 @@
+% Computer Modern Bright Math Symbols 9 point [1996/05/01 v1.0 (WaS)]
+% (identical to cmsy9, except math_axis)
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBRSY"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=85.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmsltl10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmsltl10.mf
new file mode 100644
index 00000000000..82e6e04cbdd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmsltl10.mf
@@ -0,0 +1,80 @@
+% CM Typewriter Light Slanted 10 point [1996/05/01 v1.0 (WaS)]
+
+% This is a slanted 10 pt typewriter font with all stroke widths
+% taken from cmtt8, so that it looks lighter than cmsltt10 and
+% may be used together with the CM Bright fonts.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSLTL"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/cmtl10.mf b/Master/texmf-dist/fonts/source/public/cmbright/cmtl10.mf
new file mode 100644
index 00000000000..c9354a66fb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/cmtl10.mf
@@ -0,0 +1,80 @@
+% CM Typewriter Light 10 point [1996/05/01 v1.0 (WaS)]
+
+% This is a 10 pt typewriter font with all stroke widths
+% taken from cmtt8, so that it looks lighter than cmtt10
+% and may be used together with the CM Bright fonts.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTL"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebaccess.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebaccess.mf
new file mode 100644
index 00000000000..32c88b4f753
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebaccess.mf
@@ -0,0 +1,893 @@
+% ebaccess.mf
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Accessories and special definitions for polish letters
+% Adapted to the ec fonts by J\"org Knappen
+% Adapted to the cm bright fonts by Walter Schmidt, see (CMBR)
+%
+% Copyright (c) 1992 Bogus\l{}aw Jackowski \& Marek Ry\'cko
+% Copyright (c) 1995, 1996, 1997 J\"org Knappen
+% ---------------------------------------------------------------------------
+% This was PL_DOD.MF ({\bif{}dodatkowy}, i.e., additional file for the Polish
+% extension of CM family) in text format.
+% ---------------------------------------------------------------------------
+%%{\let\:\sl
+%\: This file provides accessories for making Polish diacritical characters:
+%\: acute accent for |"C"|, |"N"|, |"L"|, |"S"|, |"Z"|, dot accent for |"Z"|,
+%\: cross for |"L"| and ogonek for |"A"| and |"E"|. In order to avoid extra
+%\: parameters (62 should be enough) the macros do a lot of ``clever'' stuff,
+%\: trying to figure out needed dimensions. This is not always a trivial
+%\: task and in some cases such extra parameters may prove to be unavoidable.
+%\: Several additional parameters may be assigned a value, prior to reading
+%\: the driver file, in order to override the default behaviour.
+
+%\: One of them is
+%\: --- the factor controlling the slope of accents over majuscules,
+%\: |cap_flat|; if the default slope is, say, $\beta$, the resulting
+%\: slope is equal to |(1-cap_flat)*|$\beta$; this parameter is used
+%\: in the sources of the following fonts:
+%\ PLCSC10, PLDUNH10, PLTCSC10
+
+%\: Unexpectedly difficult to program turned out to be ogoneks. We decided
+%\: that the best looking are ogoneks such that a single B\`ezier segment
+%\: describes each of ogonek's edges. This necessitated introducing many
+%\: parameters controlling the positions of control points (for more details
+%\: see comments in the section ``OGONEK ACCESSORIES''). All these
+%\: (optional) parameters may be splitted into three groups of importance:
+%\: primary, secondary and tertiary. The primary parameters are intended
+%\: to be ``normally'' accessible to users, the secondary ones---only in
+%\: case of emergency, the tertiary ones---rather not at all.
+
+%\: The primary parameters are:
+
+%\: --- the factor controlling the depth of ogoneks, |depth_corr|; the
+%\: resulting depth is equal to |depth_corr*desc_depth#| if the value
+%\: of |depth_corr| is known, |desc_depth#| otherwise
+%\: --- the factor controlling the leftmost and tip positions
+%\: of an ogonek, |left_corr|, |tip_xcorr| and |tip_ycorr|;
+%\: the default distances are scaled using the values of the
+%\: corresponding parameters
+%\: --- the scaling factor for the top and tip breadths of an ogonek,
+%\: |top_breadth_corr|, |tip_breadth_corr|
+
+%\: Some of the primary parameters are used in the sources of the following
+%\: fonts:
+% PLB10, PLBX5, PLBX6, PLBX7, PLBX8, PLFI10, PLITT10, PLR5, PLR6, PLR7,
+% PLR8, PLR9, PLR12, PLR17, PLSL8, PLSL9, PLSL12, PLSSQ8, PLSSQI8, PLTI7,
+% PLTI8, PLTI12, PLVTT10
+
+%\: The following four parameters we regard as of a secondary importance:
+
+%\: --- the pen ogoneks are to be filled with, |ogonek_pen#| (this is
+%\: the only sharp ogonek parameter and is used in the sources of
+%\: the {\commfont{}PLFF10} and {\commfont{}PLFI10} fonts)
+%\: --- the darkness of ogoneks may be controlled using two parameters,
+%\: |0<pre_lightness<1| and |0<post_lightness<1|, referring to the top
+%\: and tip of an ogonek, respectively; used in {\commfont{}PLB10.MF}
+%\: --- next two parameters, |pre_deflexion| and |post_deflexion|, control
+%\: a rather small deflexion angle (in degrees) of the inner ogonek
+%\: outline as compared to the outer one; they refere to the top and
+%\: tip of an ogonek, respectively
+
+%\: The complete list of `ogonek' parameters can be found in the section
+%\: ``OGONEK ACCESSORIES.''
+
+%\: There is one more (rather unimportant) parameter, |is_smoke|. If this
+%\: variable is assigned a known value, `smoked' proofs will not contain
+%\: a rule marking the height of accented letters.
+%%}
+% ---------------------------------------------------------------------------
+% HISTORY
+% 7 Feb 1992: version 1.00
+% 11 Feb 1992: version 1.01
+% (no changes; the new version number due to changes in \MeX{} format)
+% 25 May 1992: version 1.02
+% The following two erroneous assignments:
+%| z_a:=(x_down+the_left_pos,.5penkind); %| starting point
+%| z_d:=(xpart(z_a)-.5penkind,y_right+.5penkind)+the_tip_pos; %| ending point
+% changed to the following ones:
+%| z_a:=(x_down+the_left_pos,ypart(ogonek_pos)); %| starting point
+%| z_d:=(xpart(z_a)-.5penkind,y_right+ypart(ogonek_pos))+|
+%| the_tip_pos; %| ending point
+% Some comments changed.
+% 18 Dec 1992: version 1.03
+% (no changes; the new version number due to changes in FIK_MIK.MF
+% and some cosmetic changes in CMBX11.MF, CMR11.MF, CMTI11.MF, CMSL11.MF,
+% CMSSBI10.MF, and POLAN.MF)
+% 21 Apr 1995: Adaption for dxbase and dcfonts:
+% Deleted character code (those are fixed by the Cork standard)
+% Deleted |improve_kerns|
+% Avoid double rounding in the definition of |fisp| by defining |fisp#|
+% Made |the_ogonek_depth| explicitly sharp (|the_ogonek_depth#|)
+% Changed definition of |is_cap|
+% Replaced all occurences of |ogonked_a| and |ogonked_e| with the
+% Cork code values |oct"241"| and |oct"246"| respectively
+% Replaced |dotted_Z| and |dotted_z| with |oct"233"| and |oct"273"|
+% respectively
+% Renamed |expansion_factor| to |expansion_faktor| because of
+% conflicting definition
+% 7 May 1995 Appended material from czechoslovak fonts (csaccent.mf)
+% 18 May 1995 Changed |put_accent| because I want to use it twice in
+% one character. To achieve this, the variables |z.top| and |z.right|
+% were renamed |z[jj].top| and |z[jj].right| respectively
+% Changed |is_cap| again (included |168| for l with acute)
+% 29 May 1995 Added accessories for the grave accent
+% Changes one comment to point to dxcsc.mf instead of polkap.mf
+% 18 Jun 1995 Made provision in |put_cross| for the blank symbol
+% Made provision in |put_dot| for turkish dotted `I'
+% 10 Jul 1995 Changed condition in |put_dot| to refer to |is_cap|. Needed
+% with the tc fonts.
+% 11 Jul 1995 Added another proviso to |put_dot| to produce floating dot
+% 23 Jul 1995 Added proviso in |put_cross| for recipe sign
+% 17 Aug 1995 Tuned height of accent again, added |hi.x_height@#+acc_height@#|
+% to the minimum condition
+% 14 Apr 1996 Buildt in Bogus\l{}aw Jackowski's fixes to avoid resolution
+% dependent font metrics.
+% I did not apply the change to the |put_dot| macro, because there is
+% no chance to keep it consistent for the floating dot accent
+% Macros for processing characters twice put to |exbase.mf|
+% 26 Apr 1996 Put in version checking
+% Moved last minute font setup to |expseudo.mf|
+% 10-MAY-1996 Corrected |corrital| to make use of the canonical sharp mode
+% Added |version_check|
+% 22-DEC-1996 Moved definition of |is_small_cap| and |hi.| to |exbase.mf|
+% Changed the documentation to know about ec fonts instead of dc fonts.
+% ---------------------------------------------------------------------------
+% VERSION CHECKING
+% ---------------------------------------------------------------------------
+version_check(1,0); % |version_check| was introduced in dc1.3
+% ---------------------------------------------------------------------------
+% LAYOUT SETUP:
+% (A MIXTURE OF EXTENDED CM, EXTENDED ASCII, AND ``LOCAL'')
+% ---------------------------------------------------------------------------
+% [deleted]
+% ---------------------------------------------------------------------------
+% EXTRA PARAMETERS
+% ---------------------------------------------------------------------------
+% [deleted and/or moved]
+%
+% The variable |limit_dist| is set to |5/4u| in PL_DL.MF, PL_ML.MF and
+% PL_MLK.MF, and used in |put_accent| and |put_cross|. It was introduced
+% because of some funny (although troublesome) fonts. The value of |u| is
+% changed by |mono_adjust|, hence it is set outside |beginchar| ... |endchar|
+% rather than inside.
+numeric limit_dist;
+% ---------------------------------------------------------------------------
+% GENERAL PURPOSE ACCESSORIES
+% ---------------------------------------------------------------------------
+vardef is_egyptian =
+% |false| for most of the CM fonts, except funny fonts;
+% |true| for the CC fonts
+ serifs and (1.4max(fine#,crisp#, tiny#)<slab#) and (1.6slab#>stem#)
+enddef;
+
+vardef is_bold = if serifs: (hair#+.5stem#)>1.5u# else: stem#>2u# fi\\ enddef;
+
+vardef is_cap =
+ (((127 < charcode) and (charcode < 158)) or\\
+ ((191 < charcode) and (charcode < 224))) or\\
+ (charcode = 168) % true for l with acute
+enddef;
+
+%%% top is_known
+%%% top fix_virgin
+vardef is_known z suffix $ =
+% an auxiliary macro for |fix_virgin z|, used also while constructing ogoneks
+ (known x$) or (known x$l) or (known x$r)\\ or
+ (known y$) or (known y$l) or (known y$r)
+enddef;
+
+vardef fix_virgin z = % find a pair of virgin pairs
+ numeric ii,jj; jj:=1;
+ forever:
+ if is_known z[jj] or is_known z[jj+1]: % unknown gaps may occur
+ jj:=incr jj else: jj=ii fi; exitif known ii;
+ endfor;
+ jj:=ii+1;
+% now |ii| and |jj| are such that |z[ii]| and |z[jj]| are ``untouched''
+enddef;
+
+%%% italcorr corrital
+% correction of italic correction (cf. D. E. Knuth, The \MF{}book, p. 105):
+vardef corrital z suffix $ =
+% |z$| is the rightmost position of a pen (in accent path)
+ if known sharp_calc:
+ if not monospace:
+ save charic_; charic_=(rt(x$)-r)/hppp+slant*y$/vppp+.5u#;
+ if charic_>charic: charic:=charic_; fi
+ fi
+%| else: %| |charic=mono_charic#|, do nothing
+ fi
+enddef;
+
+%%% top prepare_pen
+def prepare_pen suffix $ =
+%%% fine $ %%%% temporary MFT convention
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor
+%%% qq $ %%%% ordinary MFT convention
+enddef;
+
+% The proportion of |vair/stem| depends drastically on resolution;
+% e.g., for 300 dpi cmbx10 |vair=1| and |stem=5|, for 746 dpi cmbx10
+% (300 dpi, magstep 5) |vair=4| and |stem=12|, while, sharply speaking,
+% |stem#/vair#=3.15381|; hence a new variable |xvair| has been introduced
+% to be used in some crucial places instead of |vair|.
+vardef xvair = stem*vair#/stem# enddef;
+% ---------------------------------------------------------------------------
+% ACCENT ACCESSORIES
+% ---------------------------------------------------------------------------
+% |the_cap_flat| is a factor controlling the flatness of accents over
+% majuscules; a default value may be overriden by assigning a value to the
+% variable |cap_flat| (cf. also |the_|... macros in ogonek accessories).
+vardef the_cap_flat =
+ if known cap_flat: cap_flat elseif serifs and hefty: 1/5 else: 1/3 fi
+enddef;
+% ---------------------------------------------------------------------------
+% The |hpos_corr| variable is an optional parameter to |put_ogonek|, meant
+% to be set locally inside |beginchar| ... |endchar|, if a horizontal
+% correction of the accent position is needed:
+numeric hpos_corr;
+% ---------------------------------------------------------------------------
+%%%% temporary MFT convention:
+%%% top x_height diam a_wd a_ht i_ht u asc_height cap_A_wd
+% width of the acute accent:
+vardef a_wd@# = 9hi.u@# enddef;
+% height of the acute accent:
+vardef a_ht@# =
+ min(asc_height@#,2hi.x_height@#,hi.x_height@#+acc_height@#) enddef;
+% height of the letter `i':
+vardef i_ht@#(suffix diam) =
+ if is_small_cap: a_ht@# % usually there is no dot over a small cap `i'
+ else: min(asc_height@#, 10/7hi.x_height@#+.5diam@#) fi
+enddef;
+% width of the letter `A' (used in |put_ogonek|):
+vardef cap_A_wd@# = 13u@# enddef;
+%%%% ordinary MFT convention:
+%%% qq x_height diam a_wd a_ht i_ht u asc_height cap_A_wd
+
+def mark_height(expr sharp_h)=
+% |sharp_h| is the height of an accented minuscule
+ if known sharp_calc:
+ charht:=if is_cap: h/vppp else: sharp_h fi;
+ if\\ (proofing>0) and is_cap:
+% BJ likes to have proofs vertically aligned (somehow):
+ proofoffset(0,h-charht*vppp-1mm);
+ fi
+ fi
+% say earlier, e.g., |is_smoke=1| if you're making `smoked' proofs
+% and you don't like to have a rule marking the height
+ if unknown is_smoke:
+ if proofing>0: proofrule((l+w/2,charht*hppp)t_,(r+u,charht*hppp)t_); fi
+ if displaying>0: screenrule((l+w/2,charht*hppp)t_,(r+u,charht*hppp)t_); fi
+ fi
+enddef;
+
+def fix_acc_pairs =
+ fix_virgin z;
+ begingroup
+% excerpt from |beginchar|:
+ save w,h; w=round(a_wd); h=round(a_ht);
+% excerpt from |mono_adjust|:
+ if monospace:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_faktor;
+ mono_charwd#=2 hi.letter_fit#+expansion_faktor*a_wd#;
+ hi.u:=u#*expansion_faktor*hppp;
+ w:=mono_charwd-shrink_fit-2 hi.letter_fit;
+ fi
+% end of the excerpts
+ numeric accent_gap,mid_stem; mid_stem=2/3[stem,hi.stem];
+ if serifs:
+ pickup crisp.nib;
+ x[jj]'=hround(w-2hi.u)-.5mid_stem; x[jj]':=x[jj]'-2/3[x[jj]',w-x[jj]'];
+ y[jj]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[jj]'+.5mid_stem)-hi.x_height;
+ bot z[ii]=round(accent_hpos,
+ accent_gap+if is_cap: cap_height else: hi.x_height fi);
+ z[jj]=z[ii]+(z[jj]'
+ if is_cap: rotated (-the_cap_flat*angle(z[jj]')) fi);
+ numeric theta; theta=angle(z[ii]-z[jj])+90;
+ pos[jj](mid_stem,theta); pos[ii](hair,theta);
+ else:
+ pickup fine.nib;
+ rt x[jj]'r=hround(.5w-1.25hi.u);
+ top y[jj]'=h-vround(2/3[h,hi.x_height]);
+ z[ii]'=origin; pos[jj]'(mid_stem,0); pos[ii]'(vair,0);
+ accent_gap=a_ht-y[jj]'-hi.x_height;
+ if is_cap:
+ numeric beta; beta=-the_cap_flat*angle(z[jj]'-z[ii]');
+ z[ii]=round(accent_hpos,accent_gap+cap_height);
+ z[jj]=z[ii]+(z[jj]' rotated beta);
+ y[jj]r=y[jj]l=y[jj]; y[ii]r=y[ii]l=y[ii];
+ for xx:=jj,ii: forsuffixes $:=l,r:
+ (z[xx]$-z[ii]) rotated -beta=whatever[z[jj]'$,z[ii]'$];
+ endfor\\ endfor
+ else:
+ for xx:=jj,ii: forsuffixes $:=r, ,l:
+ z[xx]$=z[xx]'$+round(accent_hpos,
+ accent_gap+if is_small_cap: cap_height else: x_height fi);
+ endfor\\ endfor
+ fi
+ fi
+ endgroup;
+enddef;
+
+def put_accent=
+ numeric accent_hpos;
+ accent_hpos=.5w - if is_cap: .75 else: .5 fi\\ u
+ if known hpos_corr: +hpos_corr fi;
+ fix_acc_pairs; % |fix_acc_pairs| uses private values of |w|, |h| \& |u|
+ numeric hpos_corr; % |hpos_corr| is local: forget its value
+% draw the diagonal:
+ if serifs:
+ pickup crisp.nib; filldraw circ_stroke (z[jj]e--z[ii]e);
+ z[jj].right=directionpoint up of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ z[jj].top=directionpoint left of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ else:
+ pickup fine.nib; filldraw stroke (z[jj]e--z[ii]e);
+ z[jj].right=z[jj].top=z[jj]r;
+ fi
+ corrital z[jj].right; % correct italic correction
+% adjust and save height (it is used in the program for the dotted `Z'):
+ h:=if is_cap: y[jj].top else: a_ht fi;
+ if known sharp_calc: saved_height:=h; fi
+ mark_height(a_ht#);
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% GRAVE ACCENT ACCESSORIES
+% ---------------------------------------------------------------------------
+% This section borrows heavily from the (acute) accent accessories
+def fix_grav_pairs =
+ fix_virgin z;
+ begingroup
+% excerpt from |beginchar|:
+ save w,h; w=round(a_wd); h=round(a_ht);
+% excerpt from |mono_adjust|:
+ if monospace:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_faktor;
+ mono_charwd#=2 hi.letter_fit#+expansion_faktor*a_wd#;
+ hi.u:=u#*expansion_faktor*hppp;
+ w:=mono_charwd-shrink_fit-2 hi.letter_fit;
+ fi
+% end of the excerpts
+ numeric accent_gap,mid_stem; mid_stem=2/3[stem,hi.stem];
+ if serifs:
+ pickup crisp.nib;
+ x[jj]'=hround(w-2hi.u)-.5mid_stem; x[jj]':= -x[jj]'+ 2/3[x[jj]',w-x[jj]'];
+ y[jj]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[jj]'+.5mid_stem)-hi.x_height;
+ bot z[ii]=round(accent_hpos,
+ accent_gap+if is_cap: cap_height else: hi.x_height fi);
+ z[jj]=z[ii]+(z[jj]'
+ if is_cap: rotated (-the_cap_flat*(angle(z[jj]')-180)) fi);
+ numeric theta; theta=angle(z[ii]-z[jj])+90;
+ pos[jj](mid_stem,theta); pos[ii](hair,theta);
+ else:
+ pickup fine.nib;
+ lft x[jj]'l=-hround(.5w-1.25hi.u);
+ top y[jj]'=h-vround(2/3[h,hi.x_height]);
+ z[ii]'=origin; pos[jj]'(mid_stem,0); pos[ii]'(vair,0);
+ accent_gap=a_ht-y[jj]'-hi.x_height;
+ if is_cap:
+ numeric beta; beta=-the_cap_flat*(angle(z[jj]'-z[ii]')-180);
+ z[ii]=round(accent_hpos,accent_gap+cap_height);
+ z[jj]=z[ii]+(z[jj]' rotated beta);
+ y[jj]r=y[jj]l=y[jj]; y[ii]r=y[ii]l=y[ii];
+ for xx:=jj,ii: forsuffixes $:=l,r:
+ (z[xx]$-z[ii]) rotated -beta=whatever[z[jj]'$,z[ii]'$];
+ endfor\\ endfor
+ else:
+ for xx:=jj,ii: forsuffixes $:=r, ,l:
+ z[xx]$=z[xx]'$+round(accent_hpos,
+ accent_gap+if is_small_cap: cap_height else: x_height fi);
+ endfor\\ endfor
+ fi
+ fi
+ endgroup;
+enddef;
+
+def put_gravis=
+ numeric accent_hpos;
+ accent_hpos=.5w + if is_cap: .75 else: .5 fi\\ u
+ if known hpos_corr: +hpos_corr fi;
+ fix_grav_pairs; % |fix_grav_pairs| uses private values of |w|, |h| \& |u|
+ numeric hpos_corr; % |hpos_corr| is local: forget its value
+% draw the diagonal:
+ if serifs:
+ pickup crisp.nib; filldraw circ_stroke (z[jj]e--z[ii]e);
+ z[jj].right=directionpoint down of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ z[jj].top=directionpoint left of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ else:
+ pickup fine.nib; filldraw stroke (z[jj]e--z[ii]e);
+ z[jj].right=z[jj].top=z[jj]r;
+ fi
+% adjust and save height (tho the height is never needed):
+ h:=if is_cap: y[jj].top else: a_ht fi;
+ if known sharp_calc: saved_height:=h; fi
+ mark_height(a_ht#);
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% DOT ACCENT ACCESSORIES
+% ---------------------------------------------------------------------------
+%%% good penkind
+def put_dot (suffix penkind) (expr dd_) = % dot of the lowercase letter `i'
+ fix_virgin z;
+ numeric dd#; % sharp dot diameter
+ dd#=dd_; define_whole_blacker_pixels(dd);
+% adjust height temporarily:
+ h:=vround(if is_cap: (cap_height#+1.5u#+dd#)
+ elseif (charcode=oct"273") or (charcode=oct"012"): i_ht#(dd)
+ fi\\ *hppp);
+ pickup penkind.nib; pos[jj](dd,90); pos[ii](dd,0);
+ x[jj]=x[ii]=good.x(.5w+if charcode=oct"233": .5 else: if charcode=oct"235": 0
+ else: .25 fi\\fi\\ u);
+ top y[jj]r=h+1; y[ii]=.5[y[jj]l,y[jj]r];
+% draw the dot:
+ dot([ii],[jj]);
+% dotted `Z' inherits the recently saved height (if known; usually the height
+% of the accented `Z') which allows to decrease by one the number of different
+% heights in a font; dotted `z' has the height of a lowercase `i' (exception:
+% caps and small caps)
+ if known saved_height: h:=saved_height; fi\\ mark_height(i_ht#(dd));
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% L's CROSS ACCESSORIES
+% ---------------------------------------------------------------------------
+def put_cross(expr l_jut,r_jut) =
+ fix_virgin z;
+ numeric dd; dd=if is_cap: cap_bar else: bar fi;
+ numeric theta; theta=angle(11u#,.3[x_height#,cap_height#]);
+ pickup crisp.nib; pos[ii](dd,theta+90); pos[jj](dd,theta+90);
+ lft x[ii]r = hround(x1-l_jut)-eps;
+ rt x[jj]l = hround(x1+r_jut)+eps;
+ z[ii]-z[jj]=whatever*dir theta;
+% |.52| is one of CM (Computer Magic) numbers appearing in many CM programs,
+% among others in the programs for B, F, and H:
+ whatever[z[ii],z[jj]]=if not is_cap and hefty: top fi\\
+ (x1,if charcode=32: .3[x_height,asc_height-serif_drop] % tc blank sign
+ elseif charcode=147: .3x_height % tc recipe sign
+ else: .52cap_height fi\\);
+% before drawing the stroke improve discretization:
+ save eps_;
+ eps_:=y[ii]l-good.y(y[ii]l);
+ forsuffixes $:=l, ,r: y[ii]$:=y[ii]$-eps_; endfor
+ eps_:=y[jj]r-good.y(y[jj]r);
+ forsuffixes $:=l, ,r: y[jj]$:=y[jj]$-eps_; endfor
+ filldraw stroke z[ii]e--z[jj]e; % now draw the stroke
+ corrital z[jj]l; % correct italic correction
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% OGONEK ACCESSORIES
+% ---------------------------------------------------------------------------
+% This part is admittedly sophisticated, however, a wide spectrum of
+% different ogonek shapes is in fact to be programmed: one shape is needed
+% for caps, another for `a' with ogonek, yet another for `e' with ogonek,
+% as they all have different joins. Moreover, a sansserif ogonek differs
+% significantly from a serif one, a bold ogonek from a non-bold, an ogonek
+% for hefty fonts should still be different. And if you take into account
+% that the basic font unit |u| may change during one session of font
+% generation (monospace and caps-small-caps) and that a few different
+% pens may be used to draw a single letter, you'll understand why so many
+% |if| ... |else:| ... |fi| commands are used in the following code.
+%
+% Outer and inner edges of an ogonek (suffixed with |l| and |r|, resp.)
+% are single B\`ezier segments; the outer one, a path
+% |p=z_a..controls z_b and z_c ..z_d|
+% is constructed as follows: given pairs |z_a|, |z_d|, angles |alpha_a|,
+% |alpha_d| and two numbers |x_down|, |y_right|, find pairs |z_b| and |z_c|
+% such that the path |p| has the following properties:
+% (a) |direction p(z_a)=alpha_a|
+% (b) |direction p(z_d)=alpha_d-180|
+% (c) |direction p(x_down,some_y)=down|
+% (d) |direction p(some_x,y_right)=right|
+% The problem is solved using a ``double'' bisection method, provided
+% that appropriate limits |z_b'|, |z_b''| and |z_c'|, |z_c''| for |z_b|
+% and |z_c|, respectively, are given; more precisely,
+% |z_b=|$\lambda_b$|[z_b',zb'']| and |z_c=|$\lambda_c$|[z_c',zc'']|
+% is supposed to hold for given |z_b'|, |z_b''|, |z_c'|, |z_c''| and
+% some $0<\lambda_b,\lambda_c<1$.
+%
+% The inner edge is constructed by a careful modification of the outer one.
+%
+% If a default behaviour of our program is not satisfying, the user may
+% assign a value to the following ``emergency'' parameters (provided E knows
+% what E is doing):
+% |depth_corr|, |left_corr|, |top_breadth_corr|, |tip_breadth_corr|,
+% |tip_xcorr|, |tip_ycorr|, |pre_angle|, |post_angle|,
+% |pre_limit|, |post_limit|, |pre_lightness|, |post_lightness|,
+% |pre_deflexion|, and |post_deflexion|.
+% Any of these parameters, if known while generating a font, is used instead
+% of a default setting. The parameters are accessed only via macros:
+% |the_ogonek_depth#|, |the_left_pos|, |the_top_breadth_corr|,
+% |the_tip_breadth_corr|, |the_tip_pos|,
+% |the_pre_angle|, |the_post_angle|, |the_pre_limit|, |the_post_limit|,
+% |the_pre_lightness|, |the_post_lightness|,
+% |the_pre_deflexion|, and |the_post_deflexion|.
+% There is one sharp ogonek parameter, |ogonek_pen#|; a respective pen is
+% defined at the end of this file (and once again in POLKAP.MF after
+% |font_setup|) and used in the files PL_DL.MF, PL_ML.MF, PL_MLK.MF.
+% Any parameter may have its |lower| variant (see the file POLKAP.MF).
+% ---------------------------------------------------------------------------
+% two handy macros:
+vardef cross_point(expr a,b) (expr c,d) =
+ save z_; pair z_; z_=whatever[a,b]; z_=whatever[c,d]; z_
+% the crossing point of lines (not segments) |a--b| and |c--d| is returned
+enddef;
+
+vardef touch_time(expr p,q) = % a variant of |intersectionpoint|
+ save x_,y_; (x_,y_)=p intersectiontimes q; if x_<0: 0 else: y_ fi
+enddef;
+% ---------------------------------------------------------------------------
+% the kernel routine for the ogonek:
+numeric x_down,x_down',y_right,y_right',alpha_a,alpha_d;
+pair z_a,z_b,z_b',z_b'',z_c,z_c',z_c'',z_d;
+
+pair nz_,pz_;
+% with plain's |solve| embeded calls are not allowed, hence a bit tricky
+% variation:
+%%% known zsolve
+vardef zsolve@#(suffix z_)=
+% |@#| is the name of a real monotonic function; it is assumed that
+% |@#(z_')<=0|, |@#(z_'')>0| holds for given |z_'| and |z_''|
+ save nz_,pz_; pair nz_,pz_; % recursive calls are possible
+ nz_:=z_'; pz_:=z_'';
+ forever:
+ z_:=.5[nz_,pz_]; exitif abs(nz_-pz_)<=tolerance; % by default |tolerance=.1|
+ if @#(z_)<=0: nz_ else: pz_ fi :=z_;
+ endfor
+% on exit |z_| is (hopefully) near the point where |@#| changes from
+% negative to positive
+enddef;
+
+vardef down_dir(expr z_b)=
+ zsolve right_dir(z_c); % here |z_c| is computed
+ lft(xpart(directionpoint down of (z_a..controls z_b and z_c..z_d)))-x_down
+enddef;
+
+vardef right_dir(expr z_c)=
+ bot(ypart(directionpoint right of (z_a..controls z_b and z_c..z_d)))-y_right
+enddef;
+% ---------------------------------------------------------------------------
+% ogonek defaults:
+vardef the_ogonek_depth# = % sharp value
+ if known depth_corr: depth_corr* fi\\ desc_depth#
+enddef;
+
+vardef the_left_pos =
+ if known left_corr: left_corr* fi
+ if monospace: 3.75 elseif serifs:
+ if hefty: 2.3 elseif is_bold: 1.7 else: 1.9 fi
+ else: % sansserif
+ if is_bold: 1.65 else: 1.55 fi\\ fi\\ hi.u
+enddef;
+
+vardef the_tip_pos =
+ (if monospace: 1.9 elseif serifs: if hefty: 1.85
+ elseif is_bold: 1.75 else: 2 fi\\ else: % sansserif
+ if is_bold: 2.1 else: 1.95 fi\\ fi\\ hi.u,
+ if serifs:
+ if monospace: 1.25 elseif hefty: 1 elseif is_bold: .75 else: 1.45 fi
+ else: % sansserif
+ .45 fi\\ hi.u)
+ if known tip_xcorr: xscaled\\ tip_xcorr fi
+ if known tip_ycorr: yscaled\\ tip_ycorr fi
+enddef;
+
+vardef the_top_breadth_corr =
+ if known top_breadth_corr: top_breadth_corr else:
+ if serifs: 1 elseif is_bold: 1.12 elseif is_cap: 1.06 else: .96 fi\\ fi
+enddef;
+
+vardef the_tip_breadth_corr =
+ if known tip_breadth_corr: tip_breadth_corr else: 1 fi
+enddef;
+
+vardef the_pre_angle = % refers to the outer edge
+ if known pre_angle: pre_angle else:
+ if serifs: if hefty: 208 elseif is_bold: 211 else: 214 fi\\ else: 211 fi
+ fi
+enddef;
+
+vardef the_post_angle = % refers to the outer edge
+ if known post_angle: post_angle else:
+ if serifs: if monospace: 60 elseif hefty: 66 elseif is_bold: 55 else: 74 fi
+ else: 25 fi\\ fi
+enddef;
+
+vardef the_pre_limit = % refers to the outer edge
+ if known pre_limit: pre_limit else: x_down-3.5hi.u fi
+enddef;
+
+vardef the_post_limit = % refers to the outer edge
+ if known post_limit: post_limit else: x_down-2hi.u fi
+enddef;
+
+vardef the_pre_lightness = % refers to the inner edge
+ if known pre_lightness: pre_lightness else:
+ if serifs and hefty: .97 elseif not serifs and is_bold: .6
+ elseif is_bold: .66 else: .78 fi\\ fi
+enddef;
+
+vardef the_post_lightness = % refers to the inner edge
+ if known post_lightness: post_lightness else:
+ if serifs:
+ if hefty: .95 elseif is_bold: .66 else: .82 fi
+ else: % sansserif
+ .75 fi\\ fi
+enddef;
+
+vardef the_post_deflexion = % refers to the inner edge
+ if known post_deflexion: post_deflexion elseif serifs and hefty: 0
+ else: -5 fi
+enddef;
+
+vardef the_pre_deflexion = % refers to the inner edge
+ if known pre_deflexion: pre_deflexion
+ elseif known join_angle and not serifs:
+ if is_bold: -4 else: -2 fi\\
+ elseif not serifs: if is_bold: -8 else: -4 fi\\ else: 0 fi
+enddef;
+% ---------------------------------------------------------------------------
+%%% fine lo
+vardef lo suffix z = % in a way |lo| is a counterpart to |hi|
+ if is_small_cap: z_a+((z-z_a) scaled sqrt(body_height#/higher.body_height#))
+ else: z fi
+enddef;
+% ---------------------------------------------------------------------------
+% parameters to |put_ogonek|:
+numeric join_angle; % starting (inner) ogonek direction, if known
+numeric ogonek_breadth; % ogonek breadth at the tip
+% starting (inner for `e' with ogonek, otherwise outer) ogonek position:
+pair ogonek_pos;
+% ---------------------------------------------------------------------------
+def put_ogonek(suffix penkind) =
+ begingroup
+ if monospace:
+% excerpt from |mono_adjust|:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_faktor;
+ mono_charwd#=2hi.letter_fit#+expansion_faktor*cap_A_wd#; % cap_A_wd=13u
+ hi.u:=u#*expansion_faktor*hppp;
+% now |u| is like in the letter `A'
+ fi
+
+ fix_virgin z; pickup penkind.nib;
+
+% `a' with ogonek attached to the hook deserves a special treatment:
+ if\\ (not is_small_cap) and (charcode=oct"241") and serifs and not is_bold:
+ if ypart(ogonek_pos)>.5penkind:
+ z[ii]~l=ogonek_pos;
+ pos[ii]~(max(the_top_breadth_corr*ogonek_breadth,penkind+epsilon),0);
+ ogonek_pos:=cross_point((0,.5penkind),(1,.5penkind))
+ (z[ii]~l,z[ii]~l+dir(the_pre_angle));
+ fi
+ fi
+
+% similarly, `e' with ogonek deserves a special treatment:
+ if\\ (not is_small_cap) and (charcode=oct"246"):
+ if ypart(ogonek_pos)>.5penkind:
+ z[ii]~r=ogonek_pos;
+ pos[ii]~(max(the_top_breadth_corr*ogonek_breadth,penkind+epsilon),0);
+ ogonek_pos:=cross_point((0,.5penkind),(1,.5penkind))
+ (z[ii]~l,z[ii]~l+dir(join_angle));
+ fi
+ fi
+
+% invariant: |ypart(ogonek_pos)|$\le$|.5penkind|;
+% moreover, for `A' and `E': |ypart(ogonek_pos)=.5penkind|
+
+% OUTER EDGE:
+ alpha_a:=the_pre_angle; % starting direction
+ alpha_d:=180+the_post_angle; % ending direction
+ x_down:=if serifs: hround else: ceiling fi
+ (xpart(ogonek_pos)-the_left_pos); % left bound
+ y_right:=-vround(d+hi.o); % bottom bound
+ z_a:=(x_down+the_left_pos,ypart(ogonek_pos)); % starting point
+ z_d:=(xpart(z_a)-.5penkind,y_right+ypart(ogonek_pos))+
+ the_tip_pos; % ending point
+% guess the boundaries for control points:
+ z_b':=cross_point (z_a,z_a+dir alpha_a)
+ ((the_pre_limit,0),(the_pre_limit,1));
+ z_b'':=cross_point (z_b',z_a)\\ ((x_down,0),(x_down,1));
+ z_c':=cross_point (z_d,z_d+dir alpha_d)
+ ((the_post_limit,0),(the_post_limit,1));
+ z_c'':=cross_point (z_c',z_d)\\ ((0,y_right),(1,y_right));
+% THE PIVOT STEP OF THE OGONEK PROCEDURE, i.e.,
+% determine the control points (|z_b| and |z_c|) of the outer path:
+ zsolve down_dir(z_b); % |down_dir| calls `|zsolve right_dir(z_c)|'
+ x_down':=xpart(lft(directionpoint down of
+ (z_a..controls z_b and z_c..z_d)));
+ y_right':=ypart(bot(directionpoint right of
+ (z_a..controls z_b and z_c..z_d)));
+ if abs(x_down'-x_down,y_right'-y_right)>sqrt2:
+ message "ERROR: `ogonek' iteration hasn't converged! Final values:";
+ message "x_down="&decimal x_down'&" (should be "&decimal x_down&")";
+ message "y_right="&decimal y_right'&" (should be "&decimal y_right&")";
+ errhelp "Maybe Jackowski knows how to change them...";
+ errmessage "Probably, you have to change somehow the boundary values";
+ fi
+
+% small caps have ogoneks a bit smaller:
+ z[ii]l=z_a; z[ii]'l=lo.z_b; z[jj]'l=lo.z_c; z[jj]l=lo.z_d;
+
+% INNER EDGE:
+ pos[ii](max(the_top_breadth_corr*ogonek_breadth,penkind+epsilon),0);
+ pos[jj](max(the_tip_breadth_corr*ogonek_breadth,penkind+epsilon),
+ angle(direction 1 of (z_a..controls z_b and z_c..z_d))+
+ if serifs: 90 else: 80 fi);
+
+ z[ii]'r=z[ii]r+((z[ii]'l-z[ii]l) scaled the_pre_lightness
+ rotated the_pre_deflexion);
+ z[jj]'r=z[jj]r+((z[jj]'l-z[jj]l) scaled the_post_lightness
+ rotated the_post_deflexion);
+
+% trim the top of the ogonek, if necessary:
+ path ogonek.l, ogonek.r; numeric tt.r, tt.l;
+
+ ogonek.l=if is_known z[ii]~: % minuscule with ogonek
+ z[ii]~l{dir if charcode=oct"241": the_pre_angle else: join_angle fi}..fi
+ z[ii]l..controls z[ii]'l and z[jj]'l..z[jj]l;
+ ogonek.r=if is_known z[ii]~: % ditto
+ z[ii]~r{dir if charcode=oct"241": the_pre_angle else: join_angle fi}..fi
+ z[ii]r..controls z[ii]'r and z[jj]'r..z[jj]r;
+
+ tt.r=if serifs and (not is_small_cap) and (charcode=oct"241"):
+ touch_time(p.l,ogonek.r) else: 0 fi;
+ tt.l=if\\ (not is_small_cap) and (charcode=oct"246"):
+ touch_time(p.r,ogonek.l) else: 0 fi;
+% at last, draw the ogonek:
+ if ogonek_breadth>.5:
+ interim turningcheck:=0; filldraw
+ if\\ (not is_small_cap) and (charcode=oct"246"):
+ (point tt.r of ogonek.r){direction tt.r of ogonek.r}..{curl 1} fi
+ subpath (tt.l,length ogonek.l) of ogonek.l--
+ reverse(subpath (tt.r,length ogonek.r) of ogonek.r)
+ if is_small_cap or (charcode<>oct"246"): -- else: & fi\\ cycle;
+% the |draw| command covers with ink unwanted breaks:
+ pickup pensquare scaled (.5*sqrt2) rotated 45;
+ draw .5[z[ii]l,z[ii]r]..controls .5[z[ii]'l,z[ii]'r] and
+ .5[z[jj]'l,z[jj]'r].. .5[z[jj]l,z[jj]r];
+ else: % poor resolution:
+ pickup pensquare scaled (.5*sqrt2) rotated 45;
+ draw z[ii]l..controls z[ii]'l and z[jj]'l..z[jj]l;
+ fi
+
+ numeric join_angle, ogonek_breadth; pair ogonek_pos; % all they are local
+
+ penlabels([ii],[jj]);
+
+ endgroup
+enddef;
+%*******************************************************************************
+%
+% This was csaccent.mf in text format, as of 89/05/08
+% written by P. Novak, Prague
+% Czech and Slovak letters with accents
+% Changed paths for acute and hachek accent added 26/04/92, 11/08/92
+% Accent definitions |lc_circle_accent| modified
+% |uc_Circle_accent| added for Duerer font
+%
+% 7 May 1995 did whole sale surgery to this part. Moved parameters to
+% dxpseudo.mf to be able to manipulate them from there. The Acute
+% accent is done the polish way, therefore removed all acute related
+% macros. Pseudoparametrised all kinds of |dot_diam|.
+% 17 Jun 1995 adjusted hachek height parameters to blend better with acute
+% parameters. Removed lots of stuff not used by the dc and tc fonts.
+% 17 Jul 1995 corrected uppercase hachek height for sans serif case
+% Removed many macros, which aren't used anymore
+% 23 Aug 1996 Adjusted |lc_hachek_accent| for dcsx font
+% 23 Dec 1996 Done provisions for small caps fonts, consequently
+% applied |hi.|, replaced |curve| by |cap_curve| for |uc_hachek_accent|,
+% adjusted numeric factors to the usually higher value of |cap_curve|.
+% 19 Jan 1997 The |uc_hacheck_accent| comes out too high, because of
+% unwanted white space above it. Changed appropriately.
+% 26 May 1997 Adjusted |lc_hachek_accent| for CM Bright (CMBR).
+%===============================================================================
+
+def lc_hachek_accent(expr ref) =
+ if serifs:
+ pickup crisp.nib;
+ pos52'(0.75[vair,curve],90);
+ pos52(0.75[vair,curve],90);
+ x52=good.x ref;
+ x52-x51=x53-x52=good.x if hach_sharp:2.5 else:3 fi
+ accent_u-accent_thin;
+ top y52' = top y51 = top y53 = lc_hachek_height;
+ if hach_sharp:
+ y52=max(2/3[h,hi.x_height],hi.x_height+o+hair); % lower point
+ pos51(1.5stem,0); pos53(accent_thin,180);
+ else:
+ 0.5[y52,y52r] = 0.5[hi.x_height,y52'];
+ pos51(accent_thin,angle(z52-z51)+90);
+ pos53(accent_thin,angle(z53-z52)+90);
+ fi
+ filldraw stroke z51e -- z52e -- z53e;
+ else:
+ pickup fine.nib;
+ pos51(vair,0);
+ pos53(vair,0);
+ x52=good.x ref;
+ x52-lft x51=rt x53-x52= hround(1.25accent_u + vair);
+ pos52(stem,0);
+ bot y52=vround(0.33[x_height,lc_hachek_height]);% (CMBR)
+% bot y52=vround(max(2/3[h,hi.x_height],hi.x_height+o+hair));
+ top y51 = top y53 = lc_hachek_height;
+ z50 = whatever[z51r,z52r] = whatever[z52l,z53l];
+ y54l=y54r=y52;
+ x54l=good.x .2[x52l,x52];
+ x54r-x52 = x52-x54l;
+ filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle;
+ fi
+ penlabels(50,51,52,52',53,54);
+enddef;
+
+def dtl_hachek(text x_ref,y_ref) =
+pickup fine.nib;
+ pickup fine.nib;
+ x51=hround(x_ref); y51=vround(y_ref);
+ comma(51,q,pdot_diam,.25accent_u,2/3comma_depth);
+ penlabels(51);
+enddef;
+
+def uc_hachek_accent(expr ref) =
+ if serifs:
+ pickup crisp.nib;
+ pos52'(0.5[vair,cap_curve],90);
+ pos52(0.5[vair,cap_curve],90);
+ x52=good.x ref;
+ x52-x51=x53-x52=good.x 3accent_u-accent_thin;
+ top y52' = top y51 = top y53 = % upper points
+ uc_acc_height-.5[vair,cap_curve]+eps
+ -max(2/3[uc_acc_height,hi.x_height],hi.x_height+o+hair)+cap_height;
+ if hach_sharp:
+ y52=max(2/3[uc_acc_height,hi.x_height],hi.x_height+o+hair)
+ -hi.x_height+cap_height; % lower point
+ pos51(cap_stem,0); pos53(2accent_thin,180);
+ else:
+ 0.5[y52,y52r] =
+ if not hefty:
+ max(2/3[uc_acc_height,hi.x_height],hi.x_height+o+hair)
+ -hi.x_height+cap_height;
+ else:
+ max(2/3[uc_acc_height,hi.x_height],hi.x_height+o)
+ -hi.x_height+cap_height-hair;
+ fi
+ pos51(accent_thin,angle(z52-z51)+90);
+ pos53(accent_thin,angle(z53-z52)+90);
+ fi
+ filldraw stroke z51e -- z52e -- z53e;
+ else:
+ pickup fine.nib;
+ pos51(vair,0);
+ pos53(vair,0);
+ x52=good.x ref;
+ x52-x51=x53-x52= 1.75accent_u + .5vair;
+ pos52(cap_stem,0);
+ bot y52= cap_height + .5 accent_gap;
+ top y51 = top y53 = cap_height + acc_height;
+ z50 = whatever[z51r,z52r] = whatever[z52l,z53l];
+ y54l=y54r=y52;
+ x54l=good.x .2[x52l,x52];
+ x54r-x52 = x52-x54l;
+ filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle;
+ fi
+penlabels(50,51,52,52',53,54);
+enddef;
+
+endinput;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebbase.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebbase.mf
new file mode 100644
index 00000000000..aaab6280ab1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebbase.mf
@@ -0,0 +1,1347 @@
+% ebbase.mf
+% [=exbase.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of EC Bright v1.0
+%
+% Content:
+%
+% The base file needed for generation of the EC Bright fonts
+
+ebbase:=1; % if |ebbase| is known, this file has been input
+
+ec_maj_version:=1; ec_min_version:=0; % version identification
+
+def version_check(expr e,f)=
+ if e=ec_maj_version:
+ if f=ec_min_version:
+ message " Ok";
+ elseif: f>ec_min_version:
+ message "ec font warning: Obsolete base";
+ elseif: f<ec_min_version:
+ message "ec font warning: File from old release found";
+ fi
+ elseif: e>ec_maj_version:
+ message "ec font warning: Obsolete base";
+ elseif: e<ec_maj_version:
+ message "ec font warning: File from old release found";
+ fi
+enddef;
+
+let stop_eventually=relax;
+
+% The following checks require, that |bye| is an |inner| command.
+% This is usually set by |local.mf| or |modes.mf|, however we cannot
+% rely on this feature, therefore we do it here again.
+
+inner bye;
+
+% Check for existence of |boundarychar|
+if unknown boundarychar:
+ message "You are using out-of-date METAFONT 1.*,";
+ message "please update to METFONT 2.718 or newer.";
+ let stop_eventually=bye;
+fi
+
+% Check for old version of |plain.mf| (2.0 or older)
+if known begingroup killtext whatever endgroup:
+ relax;
+else:
+ message "You are using plain.mf 2.0 or older";
+ message "please update to plain.mf 2.71 or newer";
+ let stop_eventually=bye;
+fi
+
+% Check for |cmbase|
+if known cmbase:
+ message "You are using METAFONT with cmbase preloaded,";
+ message "please use only plain METAFONT to generate the ec fonts.";
+ let stop_eventually=bye;
+fi
+
+stop_eventually;
+
+boolean slitex; slitex := false; % |true| simulates behaviour of |sroman|
+boolean one_serif; one_serif:=true; % |false| suppresses base serif on `1'
+boolean classic_serif; classic_serif := false;
+boolean suppress_i_dot; suppress_i_dot :=false;
+boolean hach_sharp; hach_sharp:=false;
+boolean classic_sharp_s; classic_sharp_s:=true; % (CMBR)
+boolean true_mono; true_mono:=false; % |true| forces ligatures to monowidth
+boolean knuthian_ae; knuthian_ae:=false; % |true| reproduces cm italic \ae
+boolean fancy_thorn; fancy_thorn:=false; % |true| produces \th with fancier bulb
+boolean is_small_cap; is_small_cap:=false;
+tracingstats:=1; % Print statistics at the end of run
+
+let ecchar=\; % `|ecchar|' should precede each character
+let generate=input; % `|generate|' should follow the parameters
+
+autorounding:=0; smoothing:=0; % we do our own rounding
+def autorounded = interim autorounding:=2 enddef;
+
+newinternal slant,fudge,math_spread,superness,superpull,beak_darkness;
+boolean square_dots,hefty,serifs,
+ monospace,variant_g,low_asterisk,math_fitting;
+
+boolean dark,dark.dark,skewed,skewed.skewed; % for fast option testing
+dark=skewed=false; dark.dark=skewed.skewed=true;
+
+vardef Vround primary y = y_:=vround y;
+ if y_<min_Vround: min_Vround else: y_ fi enddef;
+newinternal y_,min_Vround;
+
+vardef serif(suffix $,$$,@) % serif at |z$| for stroke from |z$$|
+ (expr darkness,jut) suffix modifier =
+ pickup crisp.nib; numeric bracket_height; pair downward;
+ bracket_height=if dark.modifier: 1.5 fi\\ bracket;
+ if y$<y$$: y@2=min(y$+bracket_height,y$$);
+ top y@1-slab=bot y@0+eps=tiny.bot y$; downward=z$-z$$;
+ if y@1>y@2: y@2:=y@1; fi
+ else: y@2=max(y$-bracket_height,y$$);
+ bot y@1+slab=top y@0-eps=tiny.top y$; downward=z$$-z$;
+ if y@1<y@2: y@2:=y@1; fi fi
+ y@3=y@2; z@3=whatever[z$,z$$];
+ if jut<0: z@2+penoffset downward of currentpen =
+ z$l+penoffset downward of pen_[tiny.nib]+whatever*downward;
+ lft x@0=lft x@1=tiny.lft x$l+jut;
+ if x@3<x@2+eps: x@3:=x@2+eps; fi
+ else: z@2-penoffset downward of currentpen =
+ z$r-penoffset downward of pen_[tiny.nib]+whatever*downward;
+ rt x@0=rt x@1=tiny.rt x$r+jut;
+ if x@3>x@2-eps: x@3:=x@2-eps; fi fi
+ pair corner; ypart corner=y@1; corner=z@2+whatever*downward;
+ filldraw z@2{z$-z$$}
+ ...darkness[corner,.5[z@1,z@2] ]{z@1-z@2}
+ ...{jut,0}z@1--z@0--(x$,y@0)--z@3--cycle; % the serif
+ labels (@1,@2); enddef;
+
+def dish_serif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ serif($,$$,@,left_darkness,-left_jut) modifier;
+ serif($,$$,@@,right_darkness,right_jut) modifier;
+ if dish>0: pickup tiny.nib; numeric dish_out,dish_in;
+ if y$<y$$: dish_out=bot y$; dish_in=dish_out+dish; let rev_=reverse;
+ else: dish_out=top y$; dish_in=dish_out-dish; let rev_=relax; fi
+ erase fill rev_
+ ((x@1,dish_out)..(x$,dish_in){right}..(x@@1,dish_out)--cycle);
+ fi enddef;
+
+def nodish_serif(suffix $,$$,@)(expr left_darkness,left_jut)
+ (suffix @@)(expr right_darkness,right_jut) suffix modifier =
+ serif($,$$,@,left_darkness,-left_jut) modifier;
+ serif($,$$,@@,right_darkness,right_jut) modifier; enddef;
+
+vardef sloped_serif.l(suffix $,$$,@)(expr darkness,jut,drop) =
+ pickup crisp.nib; pos@2(slab,90);
+ lft x@0=tiny.lft x$l; rt x@1=tiny.rt x$r; top y@1=tiny.top y$r;
+ lft x@2=lft x@0-jut; y@2r=y@1-drop;
+ y@0=max(y@2l-bracket,y$$)-eps;
+ if drop>0: erase fill z@1--top z@1
+ --(x@2r,top y@1)--z@2r--cycle; fi % erase excess at top
+ filldraw z@1--z@2r--z@2l{right}
+ ...darkness[(x@0,y@2l),.5[z@2l,z@0] ]{z@0-z@2l}
+ ...{down}z@0--(x@1,y@0)--cycle; % sloped serif
+ labels(@0,@1,@2); enddef;
+
+vardef sloped_serif.r(suffix $,$$,@)(expr darkness,jut,drop) =
+ pickup crisp.nib; pos@2(slab,-90);
+ rt x@0=tiny.rt x$r; lft x@1=tiny.lft x$l; bot y@1=tiny.bot y$l;
+ rt x@2=rt x@0+jut; y@2r=y@1+drop;
+ y@0=min(y@2l+bracket,y$$)+eps;
+if drop>0: erase fill z@1--bot z@1
+ --(x@2r,bot y@1)--z@2r--cycle; fi % erase excess at bottom
+ filldraw z@1--z@2r--z@2l{left}
+ ...darkness[(x@0,y@2l),.5[z@2l,z@0] ]{z@0-z@2l}
+ ...{up}z@0--(x@1,y@0)--cycle; % sloped serif
+ labels(@0,@1,@2); enddef;
+
+vardef term.l(suffix $,$$)(expr d,t,s)= % ``robust'' sans-serif terminal
+ path p_; p_=z$l{d}..tension t..z$$l;
+ pair d_; d_=(x$$l-x$l,s*(y$$l-y$l));
+ if (abs angle direction 1 of p_ < abs angle d_)<>(x$l<x$$l):
+ p_:=z$l{d}..tension atleast t..{d_}z$$l; fi
+ p_ enddef;
+vardef term.r(suffix $,$$)(expr d,t,s)=
+ path p_; p_=z$r{d}..tension t..z$$r;
+ pair d_; d_=(x$$r-x$r,s*(y$$r-y$r));
+ if (abs angle direction 1 of p_ < abs angle d_)<>(x$r<x$$r):
+ p_:=z$r{d}..tension atleast t..{d_}z$$r; fi
+ p_ enddef;
+def rterm=reverse term enddef;
+
+vardef arm(suffix $,$$,@)(expr darkness,jut) = % arm from |z$| to |z$$|
+ x@0=good.x(x$$r-jut); y@0=y$r;
+ if serifs: y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0);
+ z@2=.5[z$l,z@1];
+ filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ]...z@2
+ ---z$l--z$r--z@0--z$$r--cycle; % arm and beak
+ else: filldraw z$l--z$r--z@0--z$$r--cycle; fi % sans-serif arm
+ penlabels(@0,@1,@2); enddef;
+
+def bulb(suffix $,$$,$$$) =
+ z$$$r=z$$r;
+ path_.l:=z$l{x$$r-x$r,0}...{0,y$$r-y$r}z$$l;
+ filldraw path_.l--z$$r{0,y$r-y$$r}...{x$r-x$$r,0}z$r--cycle; % link
+ path_.r:=z$$$l{0,y$r-y$$r}..z$$$r{0,y$$r-y$r}; % near-circle
+ filldraw subpath(0,xpart(path_.r intersectiontimes path_.l)) of path_.r
+ --z$$r{0,y$$r-y$r}..cycle; % bulb
+ enddef;
+
+def v_bulb(suffix $,$$)= % |pos$| is known
+ y$$+.5curve=x_height+oo; x$$+.5curve=w-u;
+ numeric theta; theta=angle(4(x$-x$$),y$-y$$); pos$$(curve,theta+90);
+ filldraw z$$l{dir theta}..tension atleast 1 and 1..{down}z$l
+ --z$r{up}...{-dir theta}z$$r..cycle; % bulb
+ enddef;
+
+def dot(suffix $,$$) =
+ filldraw if square_dots: (x$l,y$$l)--(x$r,y$$l)
+ --(x$r,y$$r)--(x$l,y$$r)--cycle % squarish dot
+ else: z$l...z$$l...z$r...z$$r...cycle fi % roundish dot
+ enddef;
+
+def comma(suffix $,@)(expr dot_size,jut,depth) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1-depth;
+ x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-45);
+ z@1r=z$r; rt x@2r=hround(x$+.5dot_size+jut)+2eps; x@3=x$-.5u;
+ y@2=1/3[y@1,y@3]; bot y@3r=vround(y$-.5dot_size-depth);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ filldraw stroke z@1e{right}...z@2e{down}...z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+def ammoc(suffix $,@)(expr dot_size,jut,depth) = % reversed comma
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_top_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_top_,0); y@0=y$; y@1=y$r; y@2=y@1+depth;
+ x@0l=x@1l=x$'l; lft x@2l=good.x(x$+eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-45);
+ z@1l=z$l; lft x@2l=hround(x$-.5dot_size-jut)-2eps; x@3=x$+.5u;
+ y@2=1/3[y@1,y@3]; top y@3l=vround(y$+.5dot_size+depth);
+ y_:=ypart((z@1{left}...z@2{up}...z@3)
+ intersectiontimes (z$r{left}..{right}z$l)); if y_<0: y_:=1; fi
+ filldraw z$l{right}..subpath (0,y_) of (z$r{left}..{right}z$l)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{up}...z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+%%% @ from to %%%% temporary formatting change
+vardef diag_in(suffix from,$)(expr sharpness)(suffix $$) =
+ pickup tiny.nib; save from_x,y_;
+ if y.from>y$: bot else: top fi\\ y_=y$;
+ (from_x,y_)=whatever[z.from,z$];
+ sharpness[z$,(from_x,y_)]{z$-z.from}
+ ...{z$$-z$}z$+sharpness*length(z$-(from_x,y_))*unitvector(z$$-z$) enddef;
+
+vardef diag_out(suffix $)(expr sharpness)(suffix $$,to) =
+ pickup tiny.nib; save to_x,y_;
+ if y.to>y$: bot else: top fi\\ y_=y$;
+ (to_x,y_)=whatever[z$$,z.to];
+ z$$-sharpness*length(z$$-(to_x,y_))*unitvector(z$$-z$){z$$-z$}
+ ...{z.to-z$$}sharpness[z$$,(to_x,y_)] enddef;
+
+vardef diag_end(suffix from,$)(expr sharpness_in,sharpness_out)(suffix $$,to)=
+ save from_x,to_x,y_,x_,xx_;
+ if y.from>y$: tiny.bot else: tiny.top fi\\ y_=y$; % we assume that |y$=y$$|
+ (from_x,y_)=whatever[z.from,z$]; (to_x,y_)=whatever[z$$,z.to];
+ if x$$>x$: x_=x$+sharpness_in*length(z$-(from_x,y_));
+ xx_=x$$-sharpness_out*length(z$$-(to_x,y_));
+ if xx_<x_: xx_:=x_:=.5[xx_,x_]; fi
+ else: x_=x$-sharpness_in*length(z$-(from_x,y_));
+ xx_=x$$+sharpness_out*length(z$$-(to_x,y_));
+ if xx_>x_: xx_:=x_:=.5[xx_,x_]; fi fi
+ sharpness_in[z$,(from_x,y_)]{z$-z.from}
+ ...{z$$-z$}(x_,y$)..(xx_,y$){z$$-z$}
+ ...{z.to-z$$}sharpness_out[z$$,(to_x,y_)] enddef;
+%%% at from to %%%% restore normal formatting
+
+vardef special_diag_end(suffix $$,$,@,@@) = % for top middle of w's
+ if x@r<=x$r: diag_end($$r,$r,1,1,@l,@@l)
+ else: z0=whatever[z$$l,z$l]=whatever[z@l,z@@l];
+ diag_end($$r,$r,1,1,$l,0)--z0 fi enddef;
+
+def prime_points_inside(suffix $,$$) =
+ theta_:=angle(z$r-z$l);
+ penpos$'(whatever,theta_);
+ if y$$>y$: z$'=(0,pen_top) rotated theta_ + whatever[z$l,z$r];
+ theta_:=angle(z$$-z$)-90;
+ else: z$'=(0,pen_bot) rotated theta_ + whatever[z$l,z$r];
+ theta_:=angle(z$$-z$)+90; fi
+ z$'l+(pen_lft,0) rotated theta_=z$l+whatever*(z$-z$$);
+ z$'r+(pen_rt,0) rotated theta_=z$r+whatever*(z$-z$$);
+ enddef;
+
+def ellipse_set(suffix $,@,@@,$$) = % given |z$,x@,z$$|, find |y@| and |z@@|
+% such that the path |z${x@-x$,0}..z@{0,y@-y$}..{z$$-z@@}z@@|
+% is consistent with an ellipse
+% and such that the line |z@@--z$$| has a given |slope|
+ alpha_:=slope*(x@-x$); beta_:=y$$-y$-slope*(x$$-x$);
+ gamma_:=alpha_/beta_;
+ y@-y$=.5(beta_-alpha_*gamma_);
+ x@@-x$=-2gamma_*(x@-x$)/(1+gamma_*gamma_);
+ y@@-y$$=slope*(x@@-x$$) enddef;
+
+vardef diag_ratio(expr a,b,y,c) = % assuming that $a>\vert b/y\vert$,
+% compute the value $\alpha=(x\6{++}y)/y$ such that $ax+b\alpha=c$
+ numeric a_,b_; b_=b/y; a_=a*a-b_*b_;
+ (a*(c++y*sqrt a_)-b_*c)/a_/y enddef;
+
+def f_stroke(suffix $,$$,@,left_serif,right_serif)(expr left_jut,right_jut)=
+ pickup tiny.nib; bot y$=0;
+ penpos@0(x$r-x$l,0); x@0l=x$l; top y@0=x_height;
+ filldraw stroke z$e--z@0e; % stem
+ pickup fine.nib; pos@0'(x$r-x$l-(hround stem_corr)+tiny,180);
+ y@0'=y@0; lft x@0'r=tiny.lft x$l;
+ penpos@1(x@0'l-x@0'r,180); x@1=x@0'; y@1+.5vair=.5[x_height,h];
+ pos@2(vair,90); top y@2r=h+oo;
+ if serifs: x@2=.6[x@1,x$$r]; (x@,y@2r)=whatever[z@2l,z@1l];
+ x@2r:=min(x@,.5[x@2,x$$r]); pos@3(hair,0); bulb(@2,@3,$$); % bulb
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2); % arc
+ dish_serif($,@0,left_serif,1/3,left_jut,right_serif,1/3,right_jut); % serif
+ else: x@2=.6[x@1,x$$]; y@1l:=1/3[y@1l,y@2l];
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2)
+ & term.e(@2,$$,right,.9,4); fi % arc and terminal
+ penlabels(@0,@1,@2); enddef;
+
+def h_stroke(suffix $,@,@@,$$) =
+ penpos$$(x@@r-x@@l,0); x$$=x@@; bot y$$=0;
+ y@@=1/3[bar_height,x_height];
+ penpos$''(x$r-x$l,0); x$''=x$; y$''=1/8[bar_height,x_height];
+ filldraw stroke z$''e--z$e; % thicken the lower left stem
+ penpos@0(min(rt x$r-lft x$l,thin_join)-fine,180); pickup fine.nib;
+ rt x@0l=tiny.rt x$r; y@0=y$'';
+ pos@1(vair,90); pos@@'(x@@r-x@@l+tiny,0); z@@'=z@@;
+ x@1=.5[rt x@0l,rt x@@'r]; top y@1r=x_height+oo;
+ (x@,y@1l)=whatever[z@1r,z@0l]; x@1l:=x@;
+ filldraw stroke z@0e{up}...{right}z@1e
+ &{{interim superness:=hein_super; super_arc.e(@1,@@')}}; % arch
+ pickup tiny.nib; filldraw stroke z@@e--z$$e; % right stem
+ labels(@0); penlabels(@1); enddef;
+
+def hook_out(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ pos$(stem,0); pos$$(vair,90);
+ x$$$:=hround(x$$$+.5hair-eps)-.5hair; pos$$$(hair,180);
+ y$=1/4x_height; bot y$$l=-oo; y$$$=1/3x_height;
+ if skewed.modifier: x$$=x$+1.25u;
+ filldraw stroke z$e{-u,-x_height}...z$$e{right}...{up}z$$$e; % hook
+ else: x$$=x$+1.5u;
+ filldraw stroke z$e{down}...z$$e{right}
+ ...{x$$$-(x$+2.5u),x_height}z$$$e; fi enddef; % hook
+
+def empty_hook_out(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ pos$(stem,0); pos$$(vair,90);
+ x$$$:=hround(x$$$+.5hair-eps)-.5hair; pos$$$(hair,180);
+ y$=1/4x_height; bot y$$l=-oo; y$$$=1/3x_height;
+ if skewed.modifier: x$$=x$+1.25u;
+% filldraw stroke z$e{-u,-x_height}...z$$e{right}...{up}z$$$e; % hook
+ else: x$$=x$+1.5u;
+% filldraw stroke z$e{down}...z$$e{right}
+% ...{x$$$-(x$+2.5u),x_height}z$$$e;
+fi enddef; % empty_hook_out
+
+def hook_in(suffix $,$$,$$$)suffix modifier= % |x$| and |x$$$| (only) are known
+ x$:=hround(x$-.5hair)+.5hair; pos$(hair,180);
+ pos$$(vair,90); pos$$$(stem,0);
+ y$=2/3x_height; top y$$r=x_height+oo; y$$$=3/4x_height;
+ if skewed.modifier: x$$=x$$$-1.25u;
+ filldraw stroke z$e{up}...z$$e{right}...{-u,-x_height}z$$$e; % hook
+ else: x$$=x$$$-1.5u;
+ filldraw stroke z$e{x$$$-2.5u-x$,x_height}
+ ...z$$e{right}...{down}z$$$e; fi enddef; % hook
+
+def ital_arch(suffix $,$$,$$$) = % |z$| and |z$$$| (only) are known
+ pos$'(hair,180); z$'=z$;
+ pos$$(vair,90); pos$$$(stem,0);
+ {{interim superness := more_super; x$$=.6[x$,x$$$];
+ top y$$r=x_height+oo; y$$$=.65x_height;
+ filldraw stroke z$'e{up}...super_arc.e($$,$$$);}} enddef; % stroke
+
+def compute_spread(expr normal_spread,big_spread)=
+ spread#:=math_spread[normal_spread,big_spread];
+ spread:=ceiling(spread#*hppp)+eps; enddef;
+
+def v_center(expr h_sharp) =
+ .5h_sharp+math_axis#, .5h_sharp-math_axis# enddef;
+
+def circle_points =
+ x4=x8=.5[x2,x6]; x1=x3=superness[x4,x2]; x5=x7=superness[x4,x6];
+ y2=y6=.5[y4,y8]; y1=y7=superness[y2,y8]; y3=y5=superness[y2,y4];
+ enddef;
+def draw_circle =
+ draw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle enddef;
+
+def left_paren(expr min_breadth, max_breadth) =
+ pickup fine.nib; pos1(hround min_breadth,0);
+ pos2(hround max_breadth,0); pos3(hround min_breadth,0);
+ rt x1r=rt x3r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u;
+ top y1=h; y2=.5[y1,y3]; bot y3=1-d;
+ filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+ penlabels(1,2,3); enddef;
+
+def right_paren(expr min_breadth, max_breadth) =
+ pickup fine.nib; pos1(hround min_breadth,0);
+ pos2(hround max_breadth,0); pos3(hround min_breadth,0);
+ lft x1l=lft x3l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u);
+ top y1=h; y2=.5[y1,y3]; bot y3=1-d;
+ filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+ penlabels(1,2,3); enddef;
+
+def left_bracket(expr breadth,do_top,do_bot) =
+ pickup crisp.nib;
+ numeric thickness; thickness=hround breadth;
+ pos1(thickness,0); pos2(thickness,0);
+ top y1=h; bot y2=1-d; lft x1l=lft x2l=hround(2.5u-.5thickness);
+ filldraw stroke z1e--z2e; % stem
+ pos3(thickness,90); pos4(thickness,90);
+ pos5(thickness,90); pos6(thickness,90);
+ x3=x5=x1l; rt x4=rt x6=hround(w-.75u+.5thickness);
+ y3r=y4r=y1; y5l=y6l=y2;
+ if do_top: filldraw stroke z3e--z4e; fi % upper bar
+ if do_bot: filldraw stroke z5e--z6e; fi % lower bar
+ penlabels(1,2,3,4,5,6); enddef;
+
+def right_bracket(expr breadth,do_top,do_bot) =
+ pickup crisp.nib;
+ numeric thickness; thickness=hround breadth;
+ pos1(thickness,0); pos2(thickness,0);
+ top y1=h; bot y2=1-d; rt x1r=rt x2r=hround(w-2.5u+.5thickness);
+ filldraw stroke z1e--z2e; % stem
+ pos3(thickness,90); pos4(thickness,90);
+ pos5(thickness,90); pos6(thickness,90);
+ x3=x5=x1r; lft x4=lft x6=hround(.75u-.5thickness);
+ y3r=y4r=y1; y5l=y6l=y2;
+ if do_top: filldraw stroke z3e--z4e; fi % upper bar
+ if do_bot: filldraw stroke z5e--z6e; fi % lower bar
+ penlabels(1,2,3,4,5,6); enddef;
+
+def left_curly(expr min_breadth, max_breadth) =
+ pickup fine.nib;
+ forsuffixes $=1,1',4,4',7,7': pos$(hround min_breadth,0); endfor
+ forsuffixes $=2,3,5,6: pos$(hround max_breadth,0); endfor
+ x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+ lft x4l=hround(1.5u-.5min_breadth); lft x2l=hround(.5w-.5max_breadth);
+ top y1=h; bot y7=1-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+ y1-y2=y3-y4=(y1-y4)/4;
+ y1-y1'=y4-y4'=y7'-y7=vround(min_breadth-fine);
+ filldraw z1l{3(x2l-x1l),y2-y1}...z2l---z3l...{3(x4l-x3l),y4-y3}z4l
+ --z4'l{3(x5l-x4l),y5-y4'}...z5l---z6l...{3(x7l-x6l),y7-y6}z7l
+ --z7r--z7'r{3(x6r-x7r),y6-y7'}...z6r---z5r
+ ...{3(x4r-x5r),.5[y4,y4']-y5}.5[z4r,z4'r]{3(x3r-x4r),y3-.5[y4,y4']}
+ ...z3r---z2r...{3(x1r-x2r),y1'-y2}z1'r--z1r--cycle; % stroke
+ penlabels(1,2,3,4,5,6,7); enddef;
+
+def right_curly(expr min_breadth, max_breadth) =
+ pickup fine.nib;
+ forsuffixes $=1,1',4,4',7,7': pos$(hround min_breadth,0); endfor
+ forsuffixes $=2,3,5,6: pos$(hround max_breadth,0); endfor
+ x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+ lft x1l=hround(1.5u-.5min_breadth); lft x2l=hround(.5w-.5max_breadth);
+ top y1=h; bot y7=1-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+ y1-y2=y3-y4=(y1-y4)/4;
+ y1-y1'=y4-y4'=y7'-y7=vround(min_breadth-fine);
+ filldraw z1r{3(x2r-x1r),y2-y1}...z2r---z3r...{3(x4r-x3r),y4-y3}z4r
+ --z4'r{3(x5r-x4r),y5-y4'}...z5r---z6r...{3(x7r-x6r),y7-y6}z7r
+ --z7l--z7'l{3(x6l-x7l),y6-y7'}...z6l---z5l
+ ...{3(x4l-x5l),.5[y4,y4']-y5}.5[z4l,z4'l]{3(x3l-x4l),y3-.5[y4,y4']}
+ ...z3l---z2l...{3(x1l-x2l),y1'-y2}z1'l--z1l--cycle; % stroke
+ penlabels(1,2,3,4,5,6,7); enddef;
+
+def left_angle(expr breadth) =
+ pickup pencircle scaled breadth;
+ x1=x3=good.x(w-u)+eps; lft x2=hround u-eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+ labels(1,2,3); enddef;
+
+def right_angle(expr breadth) =
+ pickup pencircle scaled breadth;
+ x1=x3=good.x u-eps; rt x2=hround(w-u)+eps;
+ top y1=h+eps; .5[y1,y3]=y2=good.y .5[-d+eps,h];
+ draw z1--z2--z3; % diagonals
+ labels(1,2,3); enddef;
+
+% (CMBR)
+def beginarithchar(expr c) = % ensure consistent dimensions for $+$, $-$, etc.
+ if monospace: beginchar(c,14u#,27/7u#+math_axis#,27/7u#-math_axis#);
+% else: beginchar(c,14sym_u#,6sym_u#+math_axis#,6sym_u#-math_axis#); fi
+else: beginchar(c,11u#,4.5u#+math_axis#,4.5u#-math_axis#); fi% (CMBR)
+ italcorr math_axis#*slant-.5u#;
+ adjust_fit(0,0); enddef;
+
+def center_on(expr x) = if not monospace: % change width for symmetric fit
+ r:=r+2x-w; w:=2x; fi enddef;
+
+def super_crescent(suffix i,j,k) =
+ draw z.i{x.j-x.i,0}
+ ... (.8[x.i,x.j],.8[y.j,y.i]){z.j-z.i}
+ ... z.j{0,y.k-y.i}
+ ... (.8[x.k,x.j],.8[y.j,y.k]){z.k-z.j}
+ ... z.k{x.k-x.j,0} enddef;
+
+newinternal l,r,shrink_fit; % adjustments to spacing
+
+def do_expansion(expr expansion_factor) =
+ forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
+ $:=$.#*expansion_factor*hppp; endfor
+enddef;
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric charwd_in; charwd_in=charwd;
+ l:=-hround(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-letter_fit;
+ do_expansion(w/(charwd_in*hppp));
+ enddef;
+
+def mono_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric charwd_in; charwd_in=charwd;
+ numeric expansion_factor;
+ mono_charwd#=2letter_fit#
+ +expansion_factor*(charwd+left_adjustment+right_adjustment);
+ l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
+ interim xoffset:=-l;
+ r:=l+mono_charwd-shrink_fit;
+ w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
+ charwd:=mono_charwd#; charic:=mono_charic#;
+ do_expansion(w/(charwd_in*hppp));
+ enddef;
+
+extra_endchar:=extra_endchar&"r:=r+shrink_fit;w:=r-l;";
+
+def ignore_math_fit(expr left_adjustment,right_adjustment) = enddef;
+def do_math_fit(expr left_adjustment,right_adjustment) =
+ l:=l-hround(left_adjustment*hppp); interim xoffset:=-l;
+ charwd:=charwd+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ charic:=charic-right_adjustment;
+ if charic<0: charic:=0; fi enddef;
+def zero_width = charwd:=0; r:=l-shrink_fit enddef;
+def change_width = if not monospace: % change width by $\pm1$
+ if r+shrink_fit-l=floor(charwd*hppp): w:=w+1; r:=r+1;
+ else: w:=w-1; r:=r-1; fi fi enddef;
+def padded expr del_sharp =
+ charht:=charht+del_sharp; chardp:=chardp+del_sharp enddef;
+
+def font_setup =
+ if monospace: let adjust_fit=mono_adjust_fit;
+ if true_mono: let normal_adjust_fit=mono_adjust_fit; fi
+ def mfudged=fudged enddef;
+ mono_charic#:=body_height#*slant;
+ if mono_charic#<0: mono_charic#:=0; fi
+ mono_charwd#:=9u#; define_whole_pixels(mono_charwd);
+ else: let adjust_fit=normal_adjust_fit;
+ def mfudged= enddef; fi
+ if math_fitting: let math_fit=do_math_fit
+ else: let math_fit=ignore_math_fit fi;
+ define_pixels(u,width_adj,serif_fit,cap_serif_fit,jut,cap_jut,beak,
+ bar_height,dish,bracket,beak_jut,stem_corr,vair_corr,apex_corr,sym_u);%(CMBR)
+ define_blacker_pixels(notch_cut,cap_notch_cut);
+ forsuffixes $=notch_cut,cap_notch_cut: if $<3: $:=3; fi endfor
+ define_whole_pixels(letter_fit,fine,crisp,tiny);
+ define_whole_vertical_pixels(body_height,asc_height,
+ cap_height,acc_height,fig_height,x_height,comma_depth,desc_depth,serif_drop,
+ sym_height);% (CMBR)
+ define_whole_blacker_pixels(thin_join,hair,stem,curve,flare,
+ dot_size,cap_hair,cap_stem,cap_curve);
+ define_whole_vertical_blacker_pixels(vair,bar,slab,cap_bar,cap_band);
+ define_corrected_pixels(o,apex_o);
+ forsuffixes $=hair,stem,cap_stem:
+ fudged$.#:=fudge*$.#; fudged$:=hround(fudged$.#*hppp+blacker);
+ forever: exitif fudged$>.9fudge*$; fudged$:=fudged$+1; endfor endfor
+ rule_thickness:=ceiling(rule_thickness#*hppp);
+ heavy_rule_thickness:=ceiling(3rule_thickness#*hppp);
+ oo:=vround(.5o#*hppp*o_correction)+eps;
+ apex_oo:=vround(.5apex_o#*hppp*o_correction)+eps;
+ lowres_fix(stem,curve,flare) 1.3;
+ lowres_fix(stem,curve) 1.2;
+ lowres_fix(cap_stem,cap_curve) 1.2;
+ lowres_fix(hair,cap_hair) 1.2;
+ lowres_fix(cap_band,cap_bar,bar,slab) 1.2;
+ stem':=hround(stem-stem_corr); cap_stem':=hround(cap_stem-stem_corr);
+ vair':=vround(vair+vair_corr);
+ vstem:=vround .8[vair,stem]; cap_vstem:=vround .8[vair,cap_stem];
+ ess:=(ess#/stem#)*stem; cap_ess:=(cap_ess#/cap_stem#)*cap_stem;
+ dw:=(curve#-stem#)*hppp; bold:=curve#*hppp+blacker;
+ dh#:=.6designsize;
+ stem_shift#:=if serifs: 2stem_corr# else: 0 fi;
+ more_super:=max(superness,sqrt .77superness);
+ hein_super:=max(superness,sqrt .81225258superness); % that's $2^{-.3}$
+ clear_pen_memory;
+ if fine=0: fine:=1; fi
+ forsuffixes $=fine,crisp,tiny:
+%%% fine $ %%%% temporary formatting convention for MFT
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor endfor
+%%% @ $ %%%% restore ordinary formatting for $
+ min_Vround:=max(fine.breadth,crisp.breadth,tiny.breadth);
+ if min_Vround<vround min_Vround: min_Vround:=vround min_Vround; fi
+ if flare<vround flare: flare:=vround flare; fi
+ forsuffixes $=vair,bar,slab,cap_bar,cap_band,vair',vstem,cap_vstem,bold:
+ if $<min_Vround: $:=min_Vround; fi endfor
+ pickup pencircle scaled min(hair,vair); extra_rule.nib :=savepen;
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ math_axis:=good.y(math_axis#*hppp);
+ pickup pencircle scaled if hefty:(.6[vair,fudged.hair]) else:fudged.hair fi;
+ light_rule.nib:=savepen;
+ currenttransform:=identity slanted slant
+ yscaled aspect_ratio scaled granularity;
+ if currenttransform=identity: let t_=relax
+ else: def t_ = transformed currenttransform enddef fi;
+ numeric paren_depth#; .5[body_height#,-paren_depth#]=math_axis#;
+ numeric asc_depth#; .5[asc_height#,-asc_depth#]=math_axis#;
+ body_depth:=desc_depth+body_height-asc_height;
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode: if mode<=smoke: shrink_fit:=0; fi fi
+ enddef;
+
+def shiftdef(suffix $)(expr delta) =
+ vardef $ primary x = x+delta enddef enddef;
+
+def makebox(text rule) =
+ for y=0,(cap_height+acc_height),
+ asc_height,body_height,x_height,bar_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+
+ for y=-3.5pt,8.5pt,(x_height+acc_height):
+ rule((l-4pt,y)t_,(l-2pt,y)t_); endfor
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(l/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+
+ for x=0.5w:
+ rule((x,-body_depth-1pt)t_,(x,-body_depth-1.5pt)t_);
+ rule((x,cap_height+acc_height+1pt)t_,(x,cap_height+acc_height+1.5pt)t_);
+ endfor
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+ enddef;
+def maketicks(text rule) =
+ for y=0,h.o_,-d.o_:
+ rule((l,y),(l+10,y)); rule((r-10,y),(r,y)); endfor % horizontals
+ for x=l,r:
+ rule((x,10-d.o_),(x,-d.o_)); rule((x,h.o_-10),(x,h.o_)); endfor % verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_-10),(r+charic*pt,h.o_)); fi % italic correction
+ enddef;
+rulepen:=pensquare;
+
+vardef stroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l:
+ errmessage "Beware: `stroke' isn't intended for cycles"; fi
+ path_.l -- reverse path_.r -- cycle enddef;
+
+vardef circ_stroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l:
+ errmessage "Beware: `stroke' isn't intended for cycles"; fi
+ path_.l -- reverse path_.r .. cycle enddef;
+
+vardef super_arc.r(suffix $,$$) = % outside of super-ellipse
+ pair center,corner;
+ if y$=y$r: center=(x$$r,y$r); corner=(x$r,y$$r);
+ else: center=(x$r,y$$r); corner=(x$$r,y$r); fi
+ z$.r{corner-z$.r}...superness[center,corner]{z$$.r-z$.r}
+ ...{z$$.r-corner}z$$.r enddef;
+
+vardef super_arc.l(suffix $,$$) = % inside of super-ellipse
+ pair center,corner;
+ if y$=y$r: center=(x$$l,y$l); corner=(x$l,y$$l);
+ else: center=(x$l,y$$l); corner=(x$$l,y$l); fi
+ z$l{corner-z$l}...superness[center,corner]{z$$l-z$l}
+ ...{z$$l-corner}z$$l enddef;
+
+vardef pulled_super_arc.r(suffix $,$$)(expr superpull) =
+ pair center,corner;
+ if y$=y$r: center=(x$$r,y$r); corner=(x$r,y$$r);
+ else: center=(x$r,y$$r); corner=(x$$r,y$r); fi
+ z$r{corner-z$r}...superness[center,corner]{z$$r-z$r}
+ ...{z$$r-corner}z$$r enddef;
+
+vardef pulled_super_arc.l(suffix $,$$)(expr superpull) =
+ pair center,corner,outer_point;
+ if y$=y$r: center=(x$$l,y$l); corner=(x$l,y$$l);
+ outer_point=superness[(x$$r,y$r),(x$r,y$$r)];
+ else: center=(x$l,y$$l); corner=(x$$l,y$l);
+ outer_point=superness[(x$r,y$$r),(x$$r,y$r)]; fi
+ z$l{corner-z$l}
+ ...superpull[superness[center,corner],outer_point]{z$$l-z$l}
+ ...{z$$l-corner}z$$l enddef;
+
+vardef pulled_arc@#(suffix $,$$) =
+ pulled_super_arc@#($,$$)(superpull) enddef;
+
+vardef serif_arc(suffix $,$$) =
+ z${x$$-x$,0}...(.75[x$,x$$],.25[y$,y$$]){z$$-z$}...{0,y$$-y$}z$$ enddef;
+
+vardef penpos@#(expr b,d) =
+ if known b: if b<=0:
+ errmessage "bad penpos (width is negative)"; fi fi
+ (x@#r-x@#l,y@#r-y@#l)=(b,0) rotated d;
+ x@#=.5(x@#l+x@#r); y@#=.5(y@#l+y@#r) enddef;
+
+newinternal currentbreadth;
+vardef pos@#(expr b,d) =
+ if known b: if b<=currentbreadth:
+ errmessage "bad pos (breadth of current pen wider than pos width)"; fi fi
+ (x@#r-x@#l,y@#r-y@#l)=(b-currentbreadth,0) rotated d;
+ x@#=.5(x@#l+x@#r); y@#=.5(y@#l+y@#r) enddef;
+def numeric_pickup_ primary q =
+ currentpen:=pen_[q];
+ pen_lft:=pen_lft_[q]; pen_rt:=pen_rt_[q];
+ pen_top:=pen_top_[q]; pen_bot:=pen_bot_[q];
+ currentpen_path:=pen_path_[q];
+ if known breadth_[q]: currentbreadth:=breadth_[q]; fi enddef;
+
+vardef ic# = charic enddef;
+vardef h# = charht enddef;
+vardef w# = charwd enddef;
+vardef d# = chardp enddef;
+
+let {{=begingroup; let }}=endgroup;
+def .... = .. tension atleast .9 .. enddef;
+def less_tense = save ...; let ...=.... enddef;
+def ?? = hide(showvariable x,y) enddef;
+
+let semi_ =;; let colon_ = :; let endchar_ = endchar;
+def iff expr b = if b:let next_=use_it else:let next_=lose_it fi; next_ enddef;
+def use_it = let : = restore_colon; enddef;
+def restore_colon = let : = colon_; enddef;
+def lose_it = let endchar=fi; inner ecchar; let ;=fix_ semi_ if false enddef;
+def fix_=let ;=semi_; let endchar=endchar_; outer ecchar; enddef;
+def always_iff = let : = endgroup; killboolean enddef;
+def killboolean text t = use_it enddef;
+outer ecchar;
+
+%%% fine hi higher
+% |higher| is a counterpart to |lower| (see the file excsc.mf),
+% |hi| facilitates using higher values (which are reference points in
+% the floating world of CM fonts)
+def hi = if is_small_cap: higher fi\\ enddef;
+
+%
+% special routines for accenting
+%
+vardef uppercase_hat
+ (expr x_center,y_move,hat_zero,hat_one,hat_two,hat_three,hat_four) =
+if serifs:
+ pickup crisp.nib;
+ pos[hat_two](.5[vair,curve],90);
+ top y[hat_two]r=cap_accent_height+oo;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+% |accent_gap| is defined by the acute accent, it is known when needed
+ y[hat_one]=y[hat_three] = accent_gap + cap_height;
+ pos[hat_one](hair,angle(z[hat_two]-z[hat_one])+90);
+ pos[hat_three](hair,angle(z[hat_three]-z[hat_two])+90);
+ filldraw stroke z[hat_one]e--z[hat_two]e--z[hat_three]e; % diagonals
+else:
+ pickup fine.nib;
+ pos[hat_one](vair,0);
+ pos[hat_three](vair,0);
+ pos[hat_two](stem,0);
+ top y[hat_two]=cap_accent_height+oo;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+% |accent_gap| is defined by the acute accent, it is known when needed
+ bot y[hat_one]=bot y[hat_three]=.5accent_gap + cap_height;
+ z[hat_zero]=whatever[z[hat_one]r,z[hat_two]r]=
+ whatever[z[hat_two]l,z[hat_three]l];
+ y[hat_four]l=y[hat_four]r=y[hat_two];
+ x[hat_four]l=good.x .2[x[hat_two]l,x[hat_two]];
+ x[hat_four]r=w-x[hat_four]l;
+ filldraw z[hat_four]l--z[hat_one]l--z[hat_one]r--
+ z[hat_zero]--z[hat_three]l--
+ z[hat_three]r--z[hat_four]r--cycle; fi % diagonals
+enddef;
+%
+vardef lowercase_hat
+ (expr x_center,y_move,hat_zero,hat_one,hat_two,hat_three,hat_four) =
+if serifs:
+ pickup crisp.nib;
+ pos[hat_two](.5[vair,curve],90);
+ top y[hat_two]r=h+y_move;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+ y[hat_one]=y[hat_three] =
+ max(y[hat_two]-0.5(min(asc_height,2x_height)-x_height),
+ 1/6[x_height,h]);
+ pos[hat_one](hair,angle(z[hat_two]-z[hat_one])+90);
+ pos[hat_three](hair,angle(z[hat_three]-z[hat_two])+90);
+ filldraw stroke z[hat_one]e--z[hat_two]e--z[hat_three]e; % diagonals
+else:
+ pickup fine.nib;
+ pos[hat_one](vair,0);
+ pos[hat_three](vair,0);
+ pos[hat_two](stem,0);
+ top y[hat_two]=h+y_move;
+ x[hat_two]=good.x x_center; % optically centered
+ x[hat_one]=good.x x[hat_two]-2.25u if monospace: /expansion_factor fi ;
+ x[hat_three]=2x[hat_two]-x[hat_one];
+ bot y[hat_one]=bot y[hat_three]=vround (2/3[h,x_height]-eps);
+ % same slope as in the acute accent
+ z[hat_zero]=whatever[z[hat_one]r,z[hat_two]r]=
+ whatever[z[hat_two]l,z[hat_three]l];
+ y[hat_four]l=y[hat_four]r=y[hat_two];
+ x[hat_four]l=good.x .2[x[hat_two]l,x[hat_two]];
+ x[hat_four]r=w-x[hat_four]l;
+ filldraw z[hat_four]l--z[hat_one]l--z[hat_one]r--
+ z[hat_zero]--z[hat_three]l--
+ z[hat_three]r--z[hat_four]r--cycle; fi % diagonals
+enddef;
+%
+%
+vardef lowercase_tilde(expr x_move,y_move,tilde_one,tilde_two,tilde_three,
+ tilde_four,tilde_five)=
+h':=min(asc_height,10/7x_height+.5dot_size);
+if serifs: numeric theta;
+ theta=angle(1/6(
+ 6u if monospace: /expansion_factor fi-vair),
+ 1/4(h'-x_height));
+ pickup crisp.nib;
+ numeric mid_width; mid_width=.4[vair,stem];
+ pos[tilde_one](vair,theta+90);
+ pos[tilde_two](vair,theta+90);
+ pos[tilde_three](vair,theta+90);
+ pos[tilde_four](vair,theta+90);
+ z[tilde_two]-z[tilde_one]=
+ z[tilde_four]-z[tilde_three]=(mid_width-crisp)*dir theta;
+ lft x[tilde_one]r=hround(x_move+0.5w-3u if monospace: /expansion_factor fi);
+ rt x[tilde_four]l=hround(x_move+0.5w+3u if monospace: /expansion_factor fi);
+ top y[tilde_four]r=h';
+ pair delta;
+ ypart delta=3(y[tilde_three]l-y[tilde_one]l);
+ delta=whatever*dir theta;
+ bot y[tilde_one]l=vround(bot y[tilde_one]l+
+ min(2/3[x_height,h'],y[tilde_three]l-.25vair)-top y[tilde_one]r);
+ filldraw z[tilde_one]l..
+ controls(z[tilde_one]l+
+ delta)and(z[tilde_three]l-delta)..z[tilde_three]l..z[tilde_four]l
+ --z[tilde_four]r..
+ controls(z[tilde_four]r-delta)and(z[tilde_two]r+delta)..
+ z[tilde_two]r..z[tilde_one]r--cycle; % stroke
+else:
+ pickup fine.nib;
+ pos[tilde_one](vair,180);
+ pos[tilde_two](vair,90);
+ pos[tilde_three](.5[vair,slab],90);
+ pos[tilde_four](vair,90);
+ pos[tilde_five](vair,180);
+ lft x[tilde_one]r=hround (x_move + 0.5w-3u);
+ rt x[tilde_five]l=hround (x_move + 0.5w+3u);
+ x[tilde_two]-x[tilde_one]=
+ x[tilde_three]-x[tilde_two]=
+ x[tilde_four]-x[tilde_three]=x[tilde_five]-x[tilde_four];
+ bot y[tilde_one]=bot y[tilde_four]l=y_move+vround(.75[x_height,h]-vair);
+ top y[tilde_two]r=top y[tilde_five]=h+y_move;
+ y[tilde_three]=.5[y[tilde_two],y[tilde_four]];
+ filldraw stroke
+ z[tilde_one]e{up}...
+ z[tilde_two]e{right}..
+ z[tilde_three]e..
+ {right}z[tilde_four]e...{up}z[tilde_five]e; fi % stroke
+enddef;
+
+%
+vardef uppercase_tilde(expr x_move,y_move,tilde_one,tilde_two,tilde_three,
+ tilde_four,tilde_five)=
+if serifs: numeric theta;
+ theta=angle(1/8(7u if monospace: /expansion_factor fi-vair),1/4acc_height);
+ pickup crisp.nib;
+ numeric mid_width; mid_width=.4[vair,stem];
+ pos[tilde_one](vair,theta+90);
+ pos[tilde_two](vair,theta+90);
+ pos[tilde_three](vair,theta+90);
+ pos[tilde_four](vair,theta+90);
+ z[tilde_two]-z[tilde_one]=
+ z[tilde_four]-z[tilde_three]=(mid_width-crisp)*dir theta;
+ lft x[tilde_one]r=hround(x_move+0.5w-3.5u if monospace: /expansion_factor fi);
+ rt x[tilde_four]l=hround(x_move+0.5w+3.5u if monospace: /expansion_factor fi);
+ top y[tilde_four]r=h;
+% |accent_gap| is defined by the acute accent, it is known when needed
+% bot y[tilde_one]l=accent_gap+cap_height;
+ bot y[tilde_one]l=vround(bot y[tilde_one]l
+ +min(2/3[cap_height,cap_accent_height],y[tilde_three]l-.25vair)
+ -top y[tilde_one]r);
+ pair delta;
+ ypart delta=3(y[tilde_three]l-y[tilde_one]l);
+ delta=whatever*dir theta;
+ filldraw z[tilde_one]l..
+ controls(z[tilde_one]l+
+ delta)and(z[tilde_three]l-delta)..z[tilde_three]l..z[tilde_four]l
+ --z[tilde_four]r..
+ controls(z[tilde_four]r-delta)and(z[tilde_two]r+delta)..
+ z[tilde_two]r..z[tilde_one]r--cycle; % stroke
+else:
+ pickup fine.nib;
+ pos[tilde_one](vair,180);
+ pos[tilde_two](vair,90);
+ pos[tilde_three](.5[vair,slab],90);
+ pos[tilde_four](vair,90);
+ pos[tilde_five](vair,180);
+ lft x[tilde_one]r=w-rt x[tilde_five]l=hround 1.5u+0.5(w-9u);
+ x[tilde_two]-x[tilde_one]=
+ x[tilde_three]-x[tilde_two]=
+ x[tilde_four]-x[tilde_three]=x[tilde_five]-x[tilde_four];
+% |accent_gap| is defined by the acute accent, it is known when needed
+ bot y[tilde_one]=bot y[tilde_four]l=cap_height+.5accent_gap;
+ top y[tilde_two]r=top y[tilde_five]=h;
+ y[tilde_three]=.5[y[tilde_two],y[tilde_four]];
+ filldraw stroke
+ z[tilde_one]e{up}...
+ z[tilde_two]e{right}..
+ z[tilde_three]e..
+ {right}z[tilde_four]e...{up}z[tilde_five]e; fi % stroke
+enddef;
+%
+%
+%
+vardef lowercase_umlaut(expr x_move,y_move,umlaut_one,umlaut_two,
+ umlaut_three,umlaut_four) =
+% do not accumulate rounding errors and use always the same value:
+numeric dot_dist; dot_dist:=round(3.5u); % (CMBR)
+pickup tiny.nib;
+pos[umlaut_one](udot_diam,0);
+pos[umlaut_two](udot_diam,90);
+x[umlaut_one]=x[umlaut_two]=x_move+.5w-0.5dot_dist %(CMBR)
+ if monospace:/expansion_factor fi ;
+top y[umlaut_two]r=lc_trema_height;
+y[umlaut_one]=y_move+.5[y[umlaut_two]l,y[umlaut_two]r];
+dot([umlaut_one],[umlaut_two]); % left dot
+pos[umlaut_three](udot_diam,0);
+penpos[umlaut_four](y[umlaut_two]r-y[umlaut_two]l,90);
+y[umlaut_three]=y[umlaut_four]=y[umlaut_one];
+x[umlaut_three]=x[umlaut_four]=x[umlaut_one]
+% +3.5u if monospace: /expansion_factor fi ;
+ +dot_dist if monospace: /expansion_factor fi ; % (CMBR)
+dot([umlaut_three],[umlaut_four]); % right dot
+enddef;
+%
+vardef uppercase_umlaut(expr x_move,y_move,umlaut_one,umlaut_two,
+ umlaut_three,umlaut_four) =
+numeric dot_dist; dot_dist:=round(3.5u); %(CMBR)
+pickup tiny.nib;
+pos[umlaut_one](udot_diam,0);
+pos[umlaut_two](udot_diam,90);
+x[umlaut_one]=x[umlaut_two]=x_move+.5w-0.5dot_dist %(CMBR)
+ if monospace:/expansion_factor fi ;
+top y[umlaut_two]r=vround(cap_height+dot_height#*hppp);
+y[umlaut_one]=y_move+.5[y[umlaut_two]l,y[umlaut_two]r];
+dot([umlaut_one],[umlaut_two]); % left dot
+pos[umlaut_three](udot_diam,0);
+penpos[umlaut_four](y[umlaut_two]r-y[umlaut_two]l,90);
+y[umlaut_three]=y[umlaut_four]=y[umlaut_one];
+x[umlaut_three]=x[umlaut_four]=x[umlaut_one]
+% +3.5u if monospace: /expansion_factor fi ;
+ +dot_dist if monospace: /expansion_factor fi ; % (CMBR)
+dot([umlaut_three],[umlaut_four]); % right dot
+enddef;
+%
+%
+vardef lowercase_circle(expr
+ x_center,y_bottom,circ_one,circ_two,circ_three,circ_four)=
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u if monospace: /expansion_factor fi +.5);
+circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos[circ_one](circ_vair,90); penpos[circ_three](circ_vair,-90);
+penpos[circ_two](circ_hair,180); penpos[circ_four](circ_hair,0);
+x[circ_one]=x[circ_three]=x_center; %
+x[circ_two]r=hround(x[circ_one]-1.5u-.5circ_hair);
+x[circ_four]r=hround(x[circ_one]+1.5u+.5circ_hair);
+y[circ_one]r=h+apex_o;
+y[circ_two]=y[circ_four]=.5[y[circ_one],y[circ_three]];
+y[circ_three]l=vround y_bottom; % (1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e([circ_one],[circ_two])
+ & pulled_arc.e([circ_two],[circ_three])
+ & pulled_arc.e([circ_three],[circ_four])
+ & pulled_arc.e([circ_four],[circ_one]) & cycle; % bowl
+enddef;
+%
+vardef uppercase_circle(expr
+ x_center,y_bottom,circ_one,circ_two,circ_three,circ_four)=
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u if monospace: /expansion_factor fi +.5);
+circ_vair=vround vair; % min(vair,(h-x_height)/6+.5);
+penpos[circ_one](circ_vair,90); penpos[circ_three](circ_vair,-90);
+penpos[circ_two](circ_hair,180); penpos[circ_four](circ_hair,0);
+x[circ_one]=x[circ_three]=x_center; % .5w;
+x[circ_two]r
+ = hround(x[circ_one]-1.5u if monospace: /expansion_factor fi -.5circ_hair);
+x[circ_four]r
+ = hround(x[circ_one]+1.5u if monospace: /expansion_factor fi +.5circ_hair);
+y[circ_one]r=cap_height + acc_height+apex_o;
+y[circ_two]=y[circ_four]=.5[y[circ_one],y[circ_three]];
+y[circ_three]l=vround y_bottom; % (1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e([circ_one],[circ_two])
+ & pulled_arc.e([circ_two],[circ_three])
+ & pulled_arc.e([circ_three],[circ_four])
+ & pulled_arc.e([circ_four],[circ_one]) & cycle; % bowl
+enddef;
+%
+%
+vardef lowercase_cedilla (expr x_center,y_move,
+ cedi_one,cedi_two,cedi_three,cedi_four,cedi_five) =
+x[cedi_one]=x_center; % .5w+.5u;
+if serifs:
+ pickup crisp.nib;
+ pos[cedi_one](stem,0);
+ pos[cedi_two](stem,0);
+ pos[cedi_three](vair,90);
+ pos[cedi_four](stem,0);
+ pos[cedi_five](vair,-90);
+ x[cedi_one]=x[cedi_two];
+ z[cedi_three]l=z[cedi_two]l;
+ x[cedi_four]=x[cedi_two]+1.5u;
+ x[cedi_five]=x[cedi_three]-1.5u;
+ bot y[cedi_one]=0;
+ bot y[cedi_two]=-vround 2/7d-o;
+ y[cedi_four]=.5[y[cedi_three],y[cedi_five]];
+ bot y[cedi_five]=-d-o;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; % stem
+ filldraw stroke z[cedi_three]e{right}...
+ z[cedi_four]e{down}...{left}z[cedi_five]e; % hook
+else: pickup fine.nib; pos[cedi_one](vair,0); top y[cedi_one]=-o-2;
+ pos[cedi_two](.5[vair,stem],0);
+ bot y[cedi_two]=-d-o; x[cedi_two]=x[cedi_one]-1.25u;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; fi % diagonal
+enddef;
+%
+vardef uppercase_cedilla(expr x_center,y_move,
+ cedi_one,cedi_two,cedi_three,cedi_four,cedi_five) =
+x[cedi_one]=x_center;;
+if serifs:
+ pickup crisp.nib;
+ pos[cedi_one](stem,0);
+ pos[cedi_two](stem,0);
+ pos[cedi_three](vair,90);
+ pos[cedi_four](stem,0);
+ pos[cedi_five](vair,-90);
+ x[cedi_one]=x[cedi_two];
+ z[cedi_three]l=z[cedi_two]l;
+ x[cedi_four]=x[cedi_two]+1.5u if monospace: /expansion_factor fi;
+ x[cedi_five]=x[cedi_three]-1.5u if monospace: /expansion_factor fi;
+ top y[cedi_one]=y_move;
+ bot y[cedi_two]=-vround 2/7d-o;
+ y[cedi_four]=.5[y[cedi_three],y[cedi_five]];
+ bot y[cedi_five]=-d-o;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; % stem
+ filldraw stroke z[cedi_three]e{right}...
+ z[cedi_four]e{down}...{left}z[cedi_five]e; % hook
+else: pickup fine.nib; pos[cedi_one](vair,0);
+ top y[cedi_one]=-o-2;
+ pos[cedi_two](.5[vair,stem],0);
+ bot y[cedi_two]=-d-o; x[cedi_two] =
+ x[cedi_one]-1.25u if monospace: /expansion_factor fi;
+ filldraw stroke z[cedi_one]e--z[cedi_two]e; fi % diagonal
+enddef;
+%
+%
+vardef lowercase_breve(expr x_center,y_move,breve_one,breve_two,breve_three)=
+pickup crisp.nib; pos[breve_one](vair,-180);
+pos[breve_three](vair,0);
+top y[breve_one]=top y[breve_three]=h;
+x[breve_two]=x_center;
+lft x[breve_one]r=hround(x[breve_two]-2.5u
+ if monospace: /expansion_factor fi -0.5vair);
+rt x[breve_three]r=hround(x[breve_two]+2.5u
+ if monospace: /expansion_factor fi +0.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos[breve_two](mid_thickness,-90);
+bot y[breve_two]r=
+ vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z[breve_one]e{down}...
+ z[breve_two]e{right}...{up}z[breve_three]e; % stroke
+enddef;
+%
+vardef uppercase_breve (expr x_center,y_move,breve_one,
+ breve_two,breve_three)=
+pickup crisp.nib; pos[breve_one](vair,-180);
+pos[breve_three](vair,0);
+top y[breve_one]=top y[breve_three]=cap_height + acc_height;
+x[breve_two]=hround x_center;
+x[breve_two]-rt x[breve_one]l
+ =(lft x[breve_three]l)-x[breve_two]
+ =hround (2.5u if monospace: /expansion_factor fi -.5vair);
+numeric mid_thickness;
+mid_thickness=vround min(1/3[vair,stem],.5acc_height);
+pos[breve_two](mid_thickness,-90);
+% |accent_gap| is defined by the acute accent, it is known when needed
+bot y[breve_two]r=cap_height + if hefty: .5 fi accent_gap;
+filldraw stroke z[breve_one]e{down}...z[breve_two]e{right}...
+ {up}z[breve_three]e; % stroke
+enddef;
+
+%
+vardef lowercase_ogonek(expr x_move,y_move,ogon_one,ogon_two,ogon_three) =
+x[ogon_one]r=x_move;
+ pickup crisp.nib;
+ pos[ogon_one](
+ if currentbreadth<0.9vair: 0.9vair else: currentbreadth+eps fi,-60);
+ pos[ogon_two](stem,0);
+ pos[ogon_three](vair,145);
+ x[ogon_two]=x[ogon_one]-2.5u if monospace: / expansion_factor fi ;
+ x[ogon_three]=x[ogon_one]+0.5u if monospace: / expansion_factor fi ;
+ bot y[ogon_one]r = y_move;
+ bot y[ogon_three]=0.5(-d-o)+y_move; %0.4
+ bot y[ogon_two]=0.5(-d-o)+y_move;
+ filldraw stroke z[ogon_one]e{dir 225}...
+ z[ogon_two]e{dir -110}...{dir 60}z[ogon_three]e; % hook
+enddef;
+
+% ---------------------------------------------------------------------------
+% MACROS FOR PROCESSING CHARS TWICE:
+% PASS 1: COLLECTING TFM (SHARP) INFORMATION
+% PASS 2: CREATING THE GLYPH
+% ---------------------------------------------------------------------------
+%%% define_pixels prepare_pen
+%%% beginchar beginchar_twice
+%%% endfor repeat_once
+
+% A special provision is necessary if one uses |modes.mf|:
+% This file assumes, that one never wants to use more than one mode
+% in the same font, but we will do so.
+%
+% Make sure, that you never input |modes.mf| after this file, otherwise
+% unpleasant surprises wait for you.
+
+def clear_mode_guards =
+ forsuffixes $=proofing,fontmaking,tracingtitles,pixels_per_inch,
+ blacker,fillin,o_correction,blacker_min,aspect_ratio:
+ numeric mode_guard_$;
+ endfor
+enddef;
+
+let ori_draw:=draw;
+let ori_fill:=fill;
+let ori_filldraw:=filldraw;
+let ori_erase:=erase;
+let ori_penstroke:=penstroke;
+let ori_special:=special;
+let ori_numspecial:=numspecial;
+
+mode_def canonical_sharp_mode = % nearly |proof| mode
+ proofing:=0; % no, we aren't making full proofs
+ fontmaking:=0; % yes, we are making a font
+ tracingtitles:=0; % don't show titles online
+ pixels_per_inch:=2601.72; % that's 36 pixels per pt
+ blacker:=0; % no additional blackness
+ blacker_min:=0; % no write_white provision
+ fillin:=0; % no compensation for fillin
+ o_correction:=1; % no reduction in overshoot
+enddef;
+
+def beginchar_twice(expr c,w_sharp,h_sharp,d_sharp) =
+ begingroup
+ if string mode: string prev_mode; prev_mode:=mode;
+ else: numeric prev_mode; prev_mode:=mode;
+ fi
+ for sharp_calc_:=1,whatever:
+% |sharp_calc| is checked in |corrital|, |mark_height|, and |put_accent|
+ sharp_calc:=sharp_calc_;
+ if known sharp_calc: % carry out ``sharp'' calculations
+ begingroup save mode,mag; mode:=canonical_sharp_mode;
+ clear_mode_guards; mode_setup; font_setup; pseudo_setup;
+ if is_small_cap: % excerpt from |font_setup|
+ define_pixels(higher.u,higher.bar_height);
+ define_corrected_pixels(higher.o);
+ define_whole_pixels(higher.letter_fit);
+ define_whole_vertical_pixels(higher.x_height,higher.body_height);
+ define_whole_blacker_pixels(higher.stem);
+ fi
+ endgroup;
+ def draw expr e=enddef;
+ let fill:=draw;
+ let filldraw:=draw;
+ let erase:=killtext; % |killtext| was absent from earlier versions of plain
+ let penstroke:=killtext;
+ def special primary t = enddef;
+ def numspecial primary t = enddef;
+ charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp; charic:=0;
+ else: % carry out ``discrete'' calculations
+ mode:=prev_mode;
+ clear_mode_guards; mode_setup; font_setup; pseudo_setup;
+ if is_small_cap: % excerpt from |font_setup|
+ define_pixels(higher.u,higher.bar_height);
+ define_corrected_pixels(higher.o);
+ define_whole_pixels(higher.letter_fit);
+ define_whole_vertical_pixels(higher.x_height,higher.body_height);
+ define_whole_blacker_pixels(higher.stem);
+ fi
+ let draw:=ori_draw;
+ let fill:=ori_fill;
+ let filldraw:=ori_filldraw;
+ let erase:=ori_erase;
+ let penstroke:=ori_penstroke;
+ let special:=ori_special;
+ let numspecial:=ori_numspecial;
+ charwd:=w_sharp;
+ fi
+ charcode:=if known c: byte c else: 0 fi;
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+ clearxy; clearit; clearpen; scantokens extra_beginchar;
+enddef;
+
+let repeat_once = endfor;
+
+% ---------------------------------------------------------------------------
+%
+%
+%
+% some extra font parameters
+%
+def font_cap_height expr x = fontdimen 8: x enddef;
+def font_asc_height expr x = fontdimen 9: x enddef;
+def font_acc_cap_height expr x = fontdimen 10: x enddef;
+def font_desc_depth expr x = fontdimen 11: x enddef;
+def font_max_height expr x = fontdimen 12: x enddef;
+def font_max_depth expr x = fontdimen 13: x enddef;
+def font_digit_width expr x = fontdimen 14: x enddef;
+def font_cap_stem expr x = fontdimen 15: x enddef;
+def font_baselineskip expr x = fontdimen 16: x enddef;
+
+
+
+%
+% XXXXXXX The following routines generate the parameter
+% X X sets by extrapolation
+% X X
+% X X
+% X X
+% XXXX XXXX
+% X X
+% X X
+% X X
+% X X
+% X X
+% X
+%
+%
+% needed variables
+%
+
+vardef simple_gendef@#(text aa)(text t)=
+ string s[];
+ s1:="";
+ s2:=str @#;
+ index:=1;
+ forsuffixes $=t: ydata[index]:=$ if s1<>s2: *@# fi;
+ index:=index+1;
+ endfor;
+ if numpoints>(index-1): errmessage "Missing parameter"; message str aa; fi;
+ if numpoints<(index-1): errmessage "Too many parameters"; message str aa; fi;
+ aa:=ydata[merke];
+ if gencheck: message str aa fi;
+enddef;
+
+vardef extended_gendef@#(text aa)(text t)=
+ string s[];
+ s1:="";
+ s2:=str @#;
+ index:=1;
+ forsuffixes $=t: ydata[index]:=$ if s1<>s2: *@# fi;
+ index:=index+1;
+ endfor;
+ if numpoints>(index-1): errmessage "Missing parameter"; message str aa; fi;
+ if numpoints<(index-1): errmessage "Too many parameters"; message str aa; fi;
+ if gensize>basedata[numpoints]:
+ numeric hilf [];
+ hilf[1]:=(ydata[numpoints]-ydata[numpoints-1])/(basedata[numpoints]-basedata[numpoints-1]);
+ hilf[2]:=(ydata[numpoints]-ydata[numpoints-2])/(basedata[numpoints]-basedata[numpoints-2]);
+ hilf[3]:=ydata[numpoints]-hilf1*basedata[numpoints];
+ hilf[4]:=ydata[numpoints]-hilf2*basedata[numpoints];
+ spy:=(hilf[1]*gensize+hilf[3])/2+(hilf[2]*gensize+hilf[4])/2;
+ aa:=spy;
+ else:
+ for index = 1 upto numpoints-1:
+ interval[index]:=basedata[index+1]-basedata[index];
+ endfor;
+ for index=1 upto numpoints:
+ spline[1][index]:=ydata[index];
+ endfor;
+ for index=2 upto numpoints-1:
+ alpha[index]:=3*((spline[1][index+1]*interval[index-1])%
+ -(spline[1][index]*(basedata[index+1]-basedata[index-1]))%
+ +(spline[1][index-1]*interval[index]))%
+ /(interval[index-1]*interval[index]);
+ endfor;
+ spl[1]:=0;
+ spmu[1]:=0;
+ spz[1]:=0;
+ for index=2 upto numpoints-1:
+ spl[index]:=2*(basedata[index+1]-basedata[index-1])%
+ -interval[index-1]*spmu[index-1];
+ spmu[index]:=interval[index]/spl[index];
+ spz[index]:=(alpha[index]-interval[index-1]*spz[index-1])/spl[index];
+ endfor;
+ spline[3][numpoints]:=0;
+ for index=numpoints-1 downto 1:
+ spline[3][index]:=spz[index]-spmu[index]*spline[3][index+1];
+ endfor;
+ for index=numpoints -1 downto 1:
+ spline[2][index]:=(spline[1][index+1]-spline[1][index])/interval[index]%
+ -interval[index]*(spline[3][index+1]*spline[3][index])/3;
+ spline[4][index]:=(spline[3][index+1]-spline[3][index])/(3*interval[index]);
+ endfor;
+ location:=1;
+ for term=1 upto numpoints-1:
+ if gensize > basedata[term]: location:=term; fi
+ endfor;
+ spx:=gensize-basedata[location];
+ spy:=((spline[4][location]*spx+spline[3][location])*spx+spline[2][location])*spx+spline[1][location];
+ aa:=spy; fi;
+ if gencheck: message str aa fi;
+enddef;
+
+vardef basedef(text t)=
+ boolean basevalue; boolean gencheck;
+ numeric index; numeric ergbnis; numeric location; numeric term;
+ numeric numpoints; numeric spx; numeric spy;
+ numeric basedata[]; numeric interval[]; numeric alpha[];
+ numeric spl[]; numeric spmu[]; numeric spz[];
+ numeric ydata[]; numeric spline[][];
+ basevalue:=false; gencheck:=false;
+ index:=1;
+ forsuffixes $=t: basedata[index]:=$;
+ if $=gensize: basevalue:=true; merke:=index; fi;
+ index:=index+1;
+ endfor;
+ numpoints:=index-1;
+ if numpoints<3: errmessage "Not enough reference points"; fi
+ if basevalue: def gendef=simple_gendef enddef; else:
+ def gendef=extended_gendef enddef; fi
+enddef;
+
+def clear_extra_memory= % Release ressources hold by the extrapolation routine
+ numeric index; numeric ergbnis; numeric location; numeric term;
+ numeric numpoints; numeric spx; numeric spy;
+ numeric basedata[]; numeric interval[]; numeric alpha[];
+ numeric spl[]; numeric spmu[]; numeric spz[];
+ numeric ydata[]; numeric spline[][];
+ numeric hilf []; string s[];
+enddef;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebbraces.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebbraces.mf
new file mode 100644
index 00000000000..1218add3654
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebbraces.mf
@@ -0,0 +1,267 @@
+% ebbraces.mf
+% [= exbraces.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of the EC Bright fonts version 1.0 Patchlevel 3
+%
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% Content:
+%
+% braces and some special characters
+%
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Circumflex (hat)";
+beginchar(oct"136",11u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=.75[x_height,h]; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.25[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=2/3[x_height,h]; x2=.5w; bot y1=bot y3=vround x_height-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+
+
+ecchar "Tilde (squiggle)";
+beginchar(oct"176",11u#,min(asc_height#,
+ 10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+ecchar "Compound word mark";
+beginchar(oct"027",0,x_height#,0);
+zero_width;
+endchar;
+
+ecchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+ecchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+ecchar "Less than sign";% (CMBR)
+compute_spread(5/4sym_height#,3/2sym_height#);
+beginchar("<",11u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar "Vertical line";
+beginchar(oct"174",5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+
+ecchar "Greater than sign";% (CMBR)
+compute_spread(5/4sym_height#,3/2sym_height#);
+beginchar(">",11u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+% if hefty:
+ top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-stem_corr);
+% else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+%if hefty:
+ top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-stem_corr);
+% else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+ecchar "Reverse slash (backslash)";
+beginchar(oct"134",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup extra_rule.nib;
+lft x1=hround u-eps; top y1=h+eps;
+rt x2=hround(w-u)+eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+labels(1,2); endchar;
+
+ecchar "Left curly brace";
+beginchar(oct"173",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Right curly brace";
+beginchar(oct"175",9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+
+
+ecchar "Underbar";
+compute_spread((5/8+.45)*x_height#,(3/4+.55)*x_height#);
+beginchar(oct"137",14u#,0,spread#-math_axis#+.5rule_thickness#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; bot y1=bot y2=-d;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+iff not monospace:
+ecchar "Hyphenchar";
+beginchar(oct"177",3u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(2w-u)+eps;
+lft x1=hround .2u-eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff monospace:
+ecchar "Hyphenchar";
+beginchar(oct"177",3u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+x2=w-x1;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff hefty: % Sans or typewriter
+ecchar "Blank-space sign";
+beginchar(oct"040",9u#,x_height#,.5desc_depth#);
+italcorr bar_height#*slant-.25u#;
+adjust_fit(0,0);
+numeric thin_vair#; thin_vair#=.7vair#;
+define_whole_blacker_pixels(thin_vair);
+h:=bar_height;
+forsuffixes $=1,2,3,4: penpos$(thin_vair,0); endfor
+penpos0(thin_vair,90); x0=.5w; y0l=vround(-d-.5thin_vair);
+x1=x2; x3=x4=w-x1; lft x1l=hround .75u;
+y1=y4=h; y2=y3=y0;
+fill z1l---z2l...(x2,y0l)---(x3,y0l)...z3r---z4r
+ ..z4l---(x3l,y0r)--(x2r,y0r)---z1r..cycle; % the stroke
+penlabels(0,1,2,3,4); endchar;
+
+iff not hefty: % Other than the above mentioned
+ecchar "Blank-space sign"; % jk
+beginchar(oct"040",9u#,x_height#,.5desc_depth#);
+italcorr bar_height#*slant-.25u#;
+adjust_fit(0,0);
+numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem];
+if shaved_stem<crisp.breadth: shaved_stem:=crisp.breadth; fi
+pickup crisp.nib;
+pos1(shaved_stem,-90); pos2(hair,0);
+bot y1r=-d; x1=.5w; rt x2r=hround(w-.75u); y2=good.y(y1l+.5beak)+eps;
+arm(1,2,a,beak_darkness,2beak_jut); % lower right arm and beak
+pos3(hair,180); x3=w-x2; y3=y2;
+arm(1,3,b,beak_darkness,-2beak_jut); % lower left arm and beak
+math_fit(0,.5ic#);
+penlabels(1,2,3); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebbx10.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebbx10.mf
new file mode 100644
index 00000000000..8d40958803e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebbx10.mf
@@ -0,0 +1,88 @@
+% European Computer Modern Bright
+% boldface (regular) extended 10 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBBX"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=22/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+acc_height#:=75/36pt#; % ?
+%dot_height#:=75/36pt#;
+%ldot_height#:=75/36pt#;
+dot_height#:=74/36pt#;
+ldot_height#:=74/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=49/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=43/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=49/36pt#; % uppercase hairline breadth
+cap_stem#:=53/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=49/36pt#; % maximum breadth above or below notches
+bar#:=26/36pt#; % lowercase bar thickness
+slab#:=36/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=31/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=18/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+bx_kerning:=1; % different kerning for bold extended fonts
+sym_u#:=u#; % unit of width for math symbols
+sym_height#:=x_height#; % unit of height for math symbols
+
+gensize:=10;
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebmo10.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebmo10.mf
new file mode 100644
index 00000000000..8cd14bd0f49
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebmo10.mf
@@ -0,0 +1,19 @@
+% European Computer Modern Bright
+% medium oblique 10 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBMO"; font_size 10pt#;
+input br10pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+%ligs:=2;
+acc_height#:=70/36pt#; % ?
+dot_height#:=66.5/36pt#;
+ldot_height#:=66.5/36pt#; % ok
+
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebmo17.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebmo17.mf
new file mode 100644
index 00000000000..e1e7654fb59
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebmo17.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% medium oblique 17 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBMO"; font_size 17.28pt#;
+input br17pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+;ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=70/36Pt#; % ?
+dot_height#:=66.5/36Pt#; % ok
+ldot_height#:=66.5/36Pt#; % ok
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebmo8.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebmo8.mf
new file mode 100644
index 00000000000..cf889ec85aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebmo8.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% medium oblique 8 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBMO"; font_size 8pt#;
+input br8pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=60/36pt#; % ?
+dot_height#:=54.5/36pt#; % ok?
+ldot_height#:=54.5/36pt#; % ok?
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebmo9.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebmo9.mf
new file mode 100644
index 00000000000..030dc596f64
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebmo9.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% medium oblique 9 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBMO"; font_size 9pt#;
+input br9pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=65/36pt#; % ?
+dot_height#:=60.48/36pt#; % ok?
+ldot_height#:=60.48/36pt#; % ok ?
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebmr10.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebmr10.mf
new file mode 100644
index 00000000000..17bd9b74f48
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebmr10.mf
@@ -0,0 +1,19 @@
+% European Computer Modern Bright
+% medium regular 10 point [1997/04/03 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBMR"; font_size 10pt#;
+input br10pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+%ligs:=2;
+acc_height#:=70/36pt#; % ?
+dot_height#:=66.5/36pt#;
+ldot_height#:=66.5/36pt#; % ok
+
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebmr17.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebmr17.mf
new file mode 100644
index 00000000000..d11b0b19492
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebmr17.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% medium regular 17 point [1997/04/09 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBMR"; font_size 17.28pt#;
+input br17pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+;ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=70/36Pt#; % ?
+dot_height#:=66.5/36Pt#; % ok
+ldot_height#:=66.5/36Pt#; % ok
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebmr8.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebmr8.mf
new file mode 100644
index 00000000000..2a6c1a1f980
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebmr8.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% medium regular 8 point [1997/04/09 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBMR"; font_size 8pt#;
+input br8pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=60/36pt#; % ?
+dot_height#:=54.5/36pt#; % ok?
+ldot_height#:=54.5/36pt#; % ok?
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebmr9.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebmr9.mf
new file mode 100644
index 00000000000..0320b2aa019
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebmr9.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% medium regular 9 point [1997/04/09 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBMR"; font_size 9pt#;
+input br9pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=65/36pt#; % ?
+dot_height#:=60.48/36pt#; % ok?
+ldot_height#:=60.48/36pt#; % ok ?
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebpseudo.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebpseudo.mf
new file mode 100644
index 00000000000..6e50a325589
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebpseudo.mf
@@ -0,0 +1,93 @@
+% ebpseudo.mf
+% [= expseudo.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% This file contains pseudoparameters which are not entered in the
+% parameter files, but are computed from the initial parameter set.
+% There are also ad hoc parameters needed only once, and scratch
+% parameters with different values at each occuerence (like |theta|).
+%
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+% Diameters of dots
+
+numeric idot_diam#,udot_diam#,pdot_diam#;
+% (CMBR)
+% |idot_diam#| for dots on i and j, must fit stem width
+% |udot_diam#| for the umlaut dots
+ pdot_diam#:=if monospace: 5/4 fi\\ dot_size#; % punctuation dots
+
+
+% |heavy_hair| occurs in italic lowercase `e'. Since there are many
+% accented versions of it, it is declared once here
+
+vardef heavy_hair=hround .2[hair,stem] enddef;
+
+% |qvair| (quotes vair) for the french quotes
+
+vardef qvair=max(round(xvair),fine+epsilon) enddef;
+
+% |limit_dist| is used in |put_accent| and |put_cross|
+% (the value of |u| is changed by |mono_adjust|, hence the global setting)
+
+vardef limit_dist=5/4u enddef;
+
+% (CMBR)
+% Don't compute lc_trema_height from x_height; leave it
+% to the designer to specify ldot_height,
+% then compute lc_trema_height:=x_height+ldot_height, but not > cap_height.
+% Just the same way as dot_height must be given for uppercase letters!
+numeric lc_trema_height#;
+lc_trema_height# = min(cap_height#,x_height#+ldot_height#);
+
+
+% More parametrisations for accents from csaccent.mf (csfonts):
+
+numeric uc_acc_height, uc_acc_height#,
+ lc_acute_height, lc_acute_height#,
+ lc_hachek_height, lc_hachek_height#,
+ accent_u, accent_u#,
+ accent_thin,
+ uc_acc_shift, asc_acc_shift;
+if unknown circ_weight: circ_weight:=1; fi
+
+%uc_acc_height# = cap_height#+asc_height#-x_height#;
+uc_acc_height# = cap_height#+acc_height#;
+lc_acute_height# = asc_height#;
+lc_hachek_height# = hi.x_height#+acc_height#;
+accent_u# = u#; % unexpanded dimension unit
+
+vardef accent_thin = if thin_join > crisp: thin_join else: crisp+eps fi enddef;
+
+vardef uc_acc_shift = cap_height - x_height enddef;
+vardef asc_acc_shift = asc_height - x_height enddef;
+
+numeric cap_accent_height, cap_accent_height#;
+%cap_accent_height# = uc_acc_height#;
+cap_accent_height# = cap_height# + acc_height#;
+
+% (CMBR)
+def pseudo_setup =
+ idot_diam:=stem';
+ idot_diam#:=stem'/hppp;
+ udot_diam:=min(stem', hround(.85dot_size));
+ udot_diam#:=udot_diam/hppp;
+ define_whole_blacker_pixels(pdot_diam);
+ define_whole_vertical_pixels(lc_trema_height);
+ define_whole_vertical_pixels(uc_acc_height,lc_acute_height,
+ lc_hachek_height);
+ define_pixels(accent_u);
+ define_whole_vertical_pixels(cap_accent_height);
+% LAST MINUTE EXTRA FONT SETUP
+%%% define_pixels prepare_pen
+if not serifs: fisp#:=1/3[fine#,crisp#]; define_whole_pixels(fisp);
+ prepare_pen fisp; fi
+if known ogonek_pen#:
+ define_whole_pixels(ogonek_pen); prepare_pen ogonek_pen;
+fi
+enddef;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebpunct.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebpunct.mf
new file mode 100644
index 00000000000..a057a36b44f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebpunct.mf
@@ -0,0 +1,340 @@
+% ebpunct.mf
+% [= expunct.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% Content:
+%
+% punctuation
+
+%%% italcorr corrital
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Single left guillemet"; % jk % (CMBR)
+beginchar(oct"016",7u#,2bar_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+ pickup fine.nib;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ rt x1r=rt x3r=w-2u-eps;
+ lft x2l=hround(if not monospace: 2 fi\\ u)-eps;
+ bot y3=vair; y2=.5[y1,y3]=bar_height;
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ fi
+ penlabels(1,2,3);
+endchar;
+
+ecchar "Single right guillemet"; % jk % (CMBR)
+beginchar(oct"017",7u#,2bar_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+ pickup fine.nib;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ lft x1l=lft x3l=2u+eps;
+ rt x2r=w-hround(if not monospace: 2 fi\\ u)+eps;
+ bot y3=vair; y2=.5[y1,y3]=bar_height;
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ fi
+penlabels(1,2,3); endchar;
+
+ecchar "French opening quotes"; % from pl_cud (plfonts) % (CMBR)
+beginchar_twice(oct"023",9u#,2bar_height#,0);
+adjust_fit(0,0);
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ rt x1r=rt x3r=hround(.6w-shift_corr)-eps;
+ lft x2l=hround(if not monospace: 2 fi\\ u-shift_corr)-eps;
+ bot y3=vair; y2=.5[y1,y3]=bar_height;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*right; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z1'r;
+ penlabels(1,2,3,1',2',3');
+repeat_once;
+endchar;
+
+ecchar "French closing quotes"; % from pl_cud (plfonts) % (CMBR)
+beginchar_twice(oct"024",9u#,2bar_height#,0);
+adjust_fit(0,0)
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ lft x1l=lft x3l=w-hround(.6w-shift_corr)+eps;
+ rt x2r=w-hround(if not monospace: 2 fi\\ u-shift_corr)+eps;
+ bot y3=vair; y2=.5[y1,y3]=bar_height;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*left; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z2r;
+ penlabels(1,2,3,1',2',3');
+repeat_once;
+endchar;
+
+ecchar "German opening comma";
+beginchar(oct"015",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+ecchar "German Opening quotes"; % (CMBR)
+beginchar(oct"022",3u#+pdot_diam#,pdot_diam#,comma_depth#);
+italcorr asc_height#*slant+pdot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5pdot_diam=hround(w-.6u+.5pdot_diam); y2-.5pdot_diam=0;
+x1=w-x2; y2=y1;
+comma(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+ecchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5pdot_diam#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(pdot_diam,0); pos4(pdot_diam,90);
+lft x3l=hround(.5w-.5pdot_diam); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8pdot_diam,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(pdot_diam,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5pdot_diam=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+
+ecchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1+.5pdot_diam=h;
+if monospace: comma(1,a,pdot_diam,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,pdot_diam,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+
+ecchar "Asterisk"; % (CMBR)
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5sym_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5sym_height;
+for d=-150 step 60 until 150:
+ z[d]=z0+.5dir d xscaled 7.5sym_u yscaled sym_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+ecchar "Plus sign"; % (CMBR)
+beginarithchar("+"); pickup extra_rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+ecchar "Comma";
+beginchar(",",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+ecchar "Period";
+beginchar(".",5u#,pdot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+ecchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+ecchar "Colon";
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(pdot_diam,0); pos4(pdot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+ecchar "Semicolon";
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5pdot_diam=hround(.5w-.5pdot_diam); y3-.5pdot_diam=0;
+comma(3,a,pdot_diam,.2u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+ecchar "Equals sign"; % (CMBR)
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar("=",11u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup extra_rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+
+
+ecchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5pdot_diam#-2u#;
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1+.5pdot_diam=h-comma_depth;
+if monospace: ammoc(1,a,pdot_diam,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,pdot_diam,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+
+ecchar "Spanish open exclamation point";
+beginchar(oct"275",5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5pdot_diam#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(pdot_diam,0); pos4(pdot_diam,90);
+lft x3l=hround(.5w-.5pdot_diam); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8pdot_diam,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(pdot_diam,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5pdot_diam=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+ecchar "Closing quotes";% (CMBR)
+beginchar(oct"021",3u#+pdot_diam#,asc_height#,0);
+italcorr asc_height#*slant+pdot_diam#-4.1u#;
+adjust_fit(.5u#,.5u#);
+x1+.5pdot_diam=hround(.6u+.5pdot_diam); y2+.5pdot_diam=h;
+x2=w-x1; y2=y1;
+comma(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+comma(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+ecchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar "Opening quotes";% (CMBR)
+beginchar(oct"20",3u#+pdot_diam#,asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(.5u#,.5u#);
+x2+.5pdot_diam=hround(w-.6u+.5pdot_diam); y1+.5pdot_diam=h-comma_depth;
+x1=w-x2; y2=y1;
+ammoc(1,a,pdot_diam,.25u,comma_depth); % left dot and tail
+ammoc(2,b,pdot_diam,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+iff not monospace:
+ecchar "En dash";
+beginchar(oct"025",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+
+iff monospace:
+ecchar "Hyphen";
+beginchar(oct"025",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff not monospace:
+ecchar "Em dash";
+beginchar(oct"026",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+iff monospace:
+ecchar "Hyphen";
+beginchar(oct"026",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebrleast.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebrleast.mf
new file mode 100644
index 00000000000..39d383a0632
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebrleast.mf
@@ -0,0 +1,1126 @@
+% ebrleast.mf
+% [= exrleast.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% Content:
+%
+% accented lowercase letters ("eastern part")
+%
+% oct"236", oct"240" .. oct"274"
+%
+% oct"236" d with bar
+%
+% oct"240" a with breve
+% oct"241" a with ogonek
+% oct"242" c with acute
+% oct"243" c with hacek
+% oct"244" d with comma
+% oct"245" e with hacek
+% oct"246" e with ogonek
+% oct"247" g with breve
+%
+% oct"250" l with acute
+% oct"251" l with komma
+% oct"252" l with (polnisches L)
+% oct"253" n with acute
+% oct"254" n with hacek
+% oct"255" the letter eng
+% oct"256" o with ungarian umlauts
+% oct"257" r with acute
+%
+% oct"260" r with hacek
+% oct"261" s with acute
+% oct"262" s with hacek
+% oct"263" s with cedille
+% oct"264" t with comma
+% oct"265" t with cedille
+% oct"266" u with hungarian umlauts
+% oct"267" u with circ
+%
+% oct"270" y with umlauts
+% oct"271" z with acute
+% oct"272" z with hacek
+% oct"273" z with dot
+% oct"274" ij
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter bar d";
+beginchar(oct"236",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo if monospace: -hair fi;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height if monospace: -.5hair fi ;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+%
+ pos8(bar,90); pos9(bar,90);
+ x8=.5[x4,x5];
+ if serifs: x9=x2r+jut; else: x9=w; fi
+ if serifs: y8=y9=.5[y.a2-.5slab,y4+.5vair];
+ else: y8=y9=.5[x_height,asc_height-serif_drop]; fi
+ filldraw stroke z8e--z9e;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+
+%%%%%%
+
+
+ecchar "The letter a with breve";
+beginchar(oct"240",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+lowercase_breve(.5w,0,14,15,16);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+ecchar "The letter a with ogonek"; % from pl_ml (plfonts)
+beginchar(oct"241",9u#,x_height#,the_ogonek_depth#);
+ bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+ italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+ adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+ pickup fine.nib; top y3r=h+vround 1.5oo;
+ if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+ else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+ pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+ pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+ filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+ pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+ pos7(hround(curve-2stem_corr),180);
+ lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+ pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+ pos9(thin_join,360); z9l=z5l;
+ (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+ {{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+ if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if is_bold: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+ else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; % base of stem
+ fi;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+ if serifs: path p.l; p.l=z5'l---z10l...z11l{right}; fi
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+ ogonek_pos=if serifs: (point if is_bold: 1.75 of p.l) else: 1.85 of p.l)+
+ .5the_pen*up fi\\ else: (x10l,.5the_pen) fi;
+ put_ogonek(the_pen);
+endchar;
+
+ecchar "The letter c with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"242",8u#,x_height#,0);
+ italcorr x_height#*slant-.2u#;
+ adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+ pickup fine.nib; pos2(vair',90); pos4(vair',270);
+ x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+ pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+ if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+ penlabels(0,1,2,3,4,5);
+ hpos_corr=-.25u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "The letter c with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"243",8u#,lc_hachek_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5);
+lc_hachek_accent(if serifs: 0.5[0.5[x3l,x3],x0r] else: x2 fi);
+endchar; %% changed from ..[x3r,x3]..
+
+
+ecchar "The letter d with hachek"; % from csotherl.mf (csfonts)
+beginchar(oct"244",10u#+serif_fit#,lc_acute_height#,0);
+italcorr lc_acute_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0, if monospace: 2u# else: dot_size#+0.25u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7);
+dtl_hachek(x0r+u+.5pdot_diam)(y1);
+endchar;
+
+ecchar "The letter e with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"245",7.25u#+max(.75u#,.5curve#),lc_hachek_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5);
+lc_hachek_accent(x2);
+endchar;
+
+
+ecchar "The letter e with ogonek"; % from pl_ml (plfonts)
+beginchar(oct"246",7.25u#+max(.75u#,.5curve#),x_height#,the_ogonek_depth#);
+ italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+ adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+ numeric left_curve,right_curve;
+ left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+ if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+ if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+ pickup tiny.nib; pos1(right_curve,0);
+ pos2(vair,90); pos3(left_curve,180);
+ y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+ rt x1r=hround min(w-.5u,w-u+.5right_curve);
+ lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+ {{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+ y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+ if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+ else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+ path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+ y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+ forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+ fill stroke z0e--z1'e; % crossbar
+ penlabels(0,1,2,3,4,5);
+ path p.r;
+ p.r=if serifs: pulled_arc.r(3,4)...{x5-x4,5(y5-y4)}z5r
+ else: term.r(4',5,right,1,4) fi;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if serifs: if hefty: 2.6 else: 2.5 fi else: % sansserif
+ if is_bold: .6 else: .8 fi\\ fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+ ogonek_pos=(point tt of p.r)+.5(the_pen-if serifs: tiny else: fine fi)*
+ unitvector((direction tt of p.r) rotated 90);
+ put_ogonek(the_pen);
+endchar;
+
+iff not variant_g: ecchar "The letter g with breve";
+beginchar(oct"247",9u#,x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=x_height+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=x_height+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,x_height]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=x_height+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+% the accent
+lowercase_breve(.5w,0,15,16,17);
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: ecchar "Variant letter g with breve";
+beginchar(oct"247",10u#+serif_fit#,
+ max(x_height#+acc_height#,min(asc_height#,2x_height#)),desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,x_height)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=x_height+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+% the accent
+lowercase_breve(.5w,0,12,13,14);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+ecchar "The letter l with acute"; % jk
+beginchar_twice(oct"250",5u#,asc_height#,0);
+l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=asc_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+put_accent;
+repeat_once;
+penlabels(1,2); endchar;
+
+ecchar "The letter l with hachek"; % from csotherl.mf (csfonts)
+beginchar(oct"251",5u#,lc_acute_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr lc_acute_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,
+ if monospace: 0 else: dot_size#+0.25u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=asc_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+fi
+if serifs:
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2);
+dtl_hachek(x1r+u+.5pdot_diam)(y1);
+endchar;
+
+ecchar "The letter crossed l"; % from pl_ml (plfonts)
+beginchar_twice(oct"252",5u#,asc_height#,0);
+ italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+ charwd_:=charwd;
+ adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+ pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+ if odd(w-stem'): change_width; fi
+ lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ fi
+ if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+ penlabels(1,2);
+ numeric unbalance;
+ unbalance=if monospace: 1 else: 1.1 fi;
+ if not monospace:
+ numeric cross_fit#;
+ cross_fit#=serif_fit#+if not serifs: if is_bold: 1 else: .75 fi\\ else:
+ .5 fi\\ u#;
+ charwd:=charwd_;
+ adjust_fit(cross_fit#+stem_shift#,unbalance*cross_fit#-stem_shift#);
+ fi
+ numeric l_jut;
+% some funny fonts have an extremally small |jut|:
+ l_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+ put_cross(l_jut,unbalance*l_jut);
+repeat_once;
+endchar;
+
+ecchar "The letter n with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"253",10u#,x_height#,0);
+ italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+ adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+ pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+ lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+ top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+ filldraw stroke z1'e--z2'e; % left stem
+ h_stroke(2,a,3,4); % arch and right stem
+ if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter n with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"254",10u#,lc_hachek_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=x_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4);
+lc_hachek_accent(1/2[x1r,x.a1]);
+endchar;
+
+
+ecchar "The letter eng";
+beginchar(oct"255",10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+% j stroke
+ pickup tiny.nib; pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+ x7=.5[x4,x8r]; bot y7r=-d-oo; y8-.5flare=-.88d;
+ if monospace:
+ lft x8r=hround(x3r-3u+0.5stem);
+ else:
+ z8r=z9r; rt x9l=hround(x3r-3u+0.5stem); % floor .75u
+ fi;
+ (x,y7r)=whatever[z7l,z4l]; x7r:=max(x,.5[x8r,x7]);
+ filldraw stroke z4e{down}...z7e{left}; bulb(7,8,9); % arc and bulb
+else: pickup fine.nib; pos4'(stem',0); z4'=z4;
+ pos8(.2[vair,stem'],-90); pos9(vair,-90);
+ lft x9r=hround -.75u+x3r-3u-0.5stem;
+ bot y9r=vround 5/6(-d-oo);
+ (x,y9l)=whatever[z9r,z3];
+ x9l:=x;
+ z7r=z4'r;
+ (x4'l,y7l)=whatever[z9l,z7r]; x7l=x4'l; y7=y7r;
+ x8r=.5[x9r,x7r]; x8l:=.5[x9l,x7l]; bot y8r=-d-oo;
+ filldraw stroke z4'e..{down}z7e
+ & super_arc.e(7,8)
+ & z8e{left}..z9e;
+fi % arc and terminal
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter o with double acute";
+beginchar_twice(oct"256",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+ecchar "The letter r with acute";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+beginchar_twice(oct"257",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,
+ x_height#+acc_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+define_whole_blacker_pixels(r_flare); % must come after |beginchar_twice|
+pickup fine.nib; top y4r=x_height+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,x_height]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=x_height+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+% the accent
+hpos_corr=-.25u; put_accent;
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+ecchar "The letter r with hachek"; % from cshachel.mf (csfonts)
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"260",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,
+ lc_hachek_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=x_height+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,x_height]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=x_height+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6);
+lc_hachek_accent(0.5[x1,x4]);
+endchar;
+
+ecchar "The letter s with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"261",7.1u#,x_height#,0);
+ italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+ adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+ numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+ numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+ numeric ess'; ess'=max(fine.breadth,ess);
+ pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+ pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+ top y2l=h+vround 1.5oo; bot y7r=-oo;
+ y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+ lft x3l=hround .6u; rt x6r=hround(w-.6u);
+ x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+ interim superness:=more_super;
+ filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+ if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+ else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+ penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "The letter s with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"262",7.1u#,lc_hachek_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-x_height/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=x_height+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,x_height]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93x_height+1.5oo); bot y8r=vround .1x_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+lc_hachek_accent(0.5[x3l,x1l]);
+endchar;
+
+ecchar "The letter cedilla s";
+beginchar(oct"263",7.1u#,x_height#,0.875desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-x_height/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=x_height+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,x_height]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93x_height+1.5oo); bot y8r=vround .1x_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+% the accent
+lowercase_cedilla(x7,0,11,12,13,14,15);
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+ecchar "The letter t with hachek"; % from csotherl.mf (csfonts)
+%beginchar(oct"264",6u#+max(u#,.5stem#),
+% min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+beginchar(oct"264",6u#+max(u#,.5stem#),lc_acute_height#,0);
+numeric hh';
+hh' = min(asc_height,if hefty:9/7 else:10/7 fi\\ x_height);
+italcorr lc_acute_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=hh';
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=hh';
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8);
+dtl_hachek(x8)(y1+.5pdot_diam);
+endchar;
+
+ecchar "The letter cedilla t";
+beginchar(oct"265",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0.875desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+% the accent
+lowercase_cedilla(x4,0,9,10,11,12,13);
+penlabels(1,2,3,4,5,6,7,8,9,10,1,12,13); endchar;
+
+ecchar "The letter u with double acute";
+beginchar_twice(oct"266",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+if monospace: hpos_corr=-2u; put_accent; hpos_corr=2u; put_accent;
+else: hpos_corr=-1.5u; put_accent; hpos_corr=1.5u; put_accent; fi
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "The letter circle u";
+beginchar(oct"267",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% the accent
+lowercase_circle(.5w,(1/3[x_height,h]+apex_o),7,8,9,10);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "The letter y with umlaut";
+beginchar(oct"270",if serifs:9.5u# else:9u# fi,lc_trema_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=x_height; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+% the accent
+lowercase_umlaut(0,0,10,11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "The letter z with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"271",8u#,x_height#,0);
+ italcorr x_height#*slant-.5serif_fit#-.3u#;
+ adjust_fit(0,.5serif_fit#);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+ else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+ pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha;
+ alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+ arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+ arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ hpos_corr=-.5u; put_accent;
+repeat_once;
+endchar;
+
+ecchar "The z with hachek"; % from cshachel.mf (csfonts)
+beginchar(oct"272",8u#,lc_hachek_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=x_height; y2=min(y1,x_height-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=x_height; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8);
+lc_hachek_accent(1/2[x6r,x1r]);
+endchar;
+
+ecchar "The letter z with dot above"; % from pl_ml (plfonts)
+beginchar_twice(oct"273",8u#,x_height#,0);
+ italcorr x_height#*slant-.5serif_fit#-.3u#;
+ adjust_fit(0,.5serif_fit#);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+ else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+ pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha;
+ alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+ arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+ arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ put_dot(tiny,max(dot_size#,cap_curve#));
+repeat_once;
+endchar;
+
+ecchar "The letter ij";
+beginchar(oct"274",10.5u#,min(asc_height#,10/7x_height#+.5idot_diam#),desc_depth#);
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;
+% adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.25w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(idot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+top y4r=h; % (CMBR)
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+%
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos11(stem',0); pos12(stem',0);
+rt x11r=hround(.75w+.25u+.5stem'); x11=x12;
+top y11=x_height if serifs: +min(oo,serif_drop) fi; bot y12=-1/3d;
+filldraw stroke z11e--z12e; % stem
+pos13(idot_diam,0); pos14(idot_diam,90);
+x13r=x11r; top y14r=h; % (CMBR)
+if bot y14l-top y11<slab: y14l:=min(y14r-eps,y11+tiny+slab); fi
+x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+if serifs: sloped_serif.l(11,12,aa,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x12,x16r]; bot y15r=-d-oo; y16-.5flare=-.88d;
+ if monospace: lft x16r=.5w else: z16r=z17r; rt x17l=.5w+floor .75u fi;
+ (x,y15r)=whatever[z15l,z12l]; x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke z12e{down}...z15e{left}; bulb(15,16,17); % arc and bulb
+else: pickup fine.nib; pos12'(stem',0); z12'=z12;
+ pos16(.2[vair,stem'],-90); pos17(vair,-90);
+ lft x17r=hround .5w-.75u; bot y17r=vround 5/6(-d-oo);
+ (x,y17l)=whatever[z17r,z13]; x17l:=x;
+ z15r=z12'r; (x12'l,y15l)=whatever[z17l,z15r]; x15l=x12'l; y15=y15r;
+ x16r=.5[x17r,x15r]; x16l:=.5[x17l,x15l]; bot y16r=-d-oo;
+ filldraw stroke z12'e..{down}z15e & super_arc.e(15,16)
+ & z16e{left}..z17e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,11,12,13,14,15,16,17); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebrlig.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebrlig.mf
new file mode 100644
index 00000000000..978f5a79532
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebrlig.mf
@@ -0,0 +1,217 @@
+% ebrlig.mf
+% [= exrlig.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% Content:
+%
+% roman style ligature characters
+% dotless i,j; ligatures fi, ff, fl, ffi, ffl
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "Dotless letter i";
+beginchar(oct"031",5u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2); endchar;
+
+ecchar "Dotless letter j";
+beginchar(oct"032",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+penlabels(1,2,5,6,7); endchar;
+
+
+numeric itc#; % modified italic correction on `f' and `ff'
+itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi;
+
+
+ecchar "The ligature fi"; %(CMBR)
+beginchar(oct"034",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:idot_diam# fi-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x12r;
+ y2+.5bulb_diam=.8[x_height,h+oo]; top y11=x_height+min(oo,serif_drop);
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=stem';
+ pos2(6/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u;
+ pickup tiny.nib; pos13(bulb_diam,0); pos14(bulb_diam,90);
+ x13=x11-.5; top y14r=min(2x_height,h+1); top y11=x_height;
+ if bot y14l-x_height<tiny: y14l:=min(y14r-eps,y11+2tiny); fi
+ x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+fi; % this is the ligature we're drawing
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup tiny.nib; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11; % bar will overlap upper right serif
+ sloped_serif.l(11,12,d,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+
+ecchar "The ligature ff";
+beginchar(oct"033",10.5u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+normal_adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-3u+.5stem');
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); pos12(bulb_diam,0);
+ rt x2r=hround(rt x11r-stem_corr); lft x12l=hround(w-.75u+.5);
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 6.25u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(w+.75u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,1.25jut); % right stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-1/3u);
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+
+ecchar "The ligature fl";
+beginchar(oct"035",10u#+2letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=0; top y11=h;
+filldraw stroke z11e--z12e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ y2+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(11,12,d,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u; fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11;
+ dish_serif(12,11,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+else: rt x4= hround 5.3u; fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12); endchar;
+
+ecchar "The ligature ffi";% (CMBR)
+beginchar(oct"036",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:idot_diam# fi-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r;
+ top y21=x_height+min(oo,serif_drop);
+ y2+.5bulb_diam=.8[x_height,h+oo]; y12=y2;
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=stem';
+ pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(6/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u);
+ pickup tiny.nib; pos23(bulb_diam,0); pos24(bulb_diam,90);
+ x23=x21-.5; top y24r=min(2x_height,h+1); top y21=x_height;
+ if bot y24l-x_height<tiny: y24l:=min(y24r-eps,y21+2tiny); fi
+ x23=x24; y23=.5[y24l,y24r]; dot(23,24); fi % dot
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup tiny.nib; filldraw stroke z21e--z22e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x21; % bar will overlap upper right serif
+ sloped_serif.l(21,22,g,1/3,jut,min(oo,serif_drop)); % upper right serif
+ dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+else: rt x4=hround(.5w+2.8u); fi
+pickup crisp.nib;
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22,23,24); endchar;
+
+ecchar "The ligature ffl";
+beginchar(oct"037",15u#+4letter_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+normal_adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); lft x11l=hround(.5w-.5stem');
+pos21(stem',0); rt x21r=hround(w-2.5u+.5stem');
+pos22(stem',0); x21=x22; bot y22=0; top y21=h;
+filldraw stroke z21e--z22e; % right stem
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); x2r=x11r-stem_corr;
+ pos12(bulb_diam,0); x12r=x21r-stem_corr;
+ y2+.5bulb_diam=.85[x_height,h+oo]; y12+.5bulb_diam=.9[x_height,h+oo];
+ sloped_serif.l(21,22,g,1/3,eps,max(serif_drop,oo)); % erase excess at top
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: pos2(5/7[vair,flare],90); top y2r=h; rt x2=hround 5.75u;
+ pos12(5/7[vair,flare],90); y12=y2; rt x12=hround(.5w+2.8u); fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+f_stroke(11,12,d,e,f,inner_jut,inner_jut); % middle ditto
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround.5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: dish_serif(22,21,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+ pickup crisp.nib; x4=x21;
+else: rt x4=hround(.5w+2.8u); fi
+if hefty: pos3'(bar,90); x3'-x1=x4-x11; y3'=y3;
+ pos4'(bar,90); x4'=x11; y4'=y4;
+ filldraw stroke z3e--z3'e; filldraw stroke z4'e--z4e; % bars
+else: filldraw stroke z3e--z4e; fi % bar
+penlabels(1,2,3,4,11,12,21,22); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebrligtb.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebrligtb.mf
new file mode 100644
index 00000000000..5bfd6413252
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebrligtb.mf
@@ -0,0 +1,340 @@
+% ebrligtb.mf
+% [= exrligtb.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% Content:
+%
+% ligtable and kerning programs for roman style fonts
+%
+% This file should not be called for monospaced fonts !
+%
+% The following ligatures are integrated:
+%
+% fi
+% fl
+% ff
+% ffi
+% ffl
+%
+% --
+% ---
+% -<hyphenchar>
+% >>
+% <<
+% ``
+% ''
+% ,,
+% !` and ?`
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ligtable
+ "f": "i"=:oct"034",
+ "f"=:oct"033",
+ "l"=:oct"035",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ oct"033": % ff
+ "i"=:oct"036",
+ "l"=:oct"037",
+ "'" kern itc#,
+ "`" kern itc#,
+ oct"020" kern itc#,
+ oct"021" kern itc#,
+ "?" kern itc#,
+ "!" kern itc#,
+ ")" kern itc#,
+ "]" kern itc#;
+ligtable
+ "`": "`"=:oct"020",
+ oct"020" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "'": "'"=:oct"021",
+ oct"021" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "-": "-" =: oct"025",
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+
+ligtable
+ oct"025": "-"=:oct"026"; % "---" => emdash
+
+ligtable "<": "<" =: oct"023"; % "<<"
+ligtable ">": ">" =: oct"024"; % ">>"
+ligtable ",": "," =: oct"022"; % ",,"
+ligtable "!": "`" =: oct"275"; % spanish shriek
+ligtable "?": "`" =: oct"276"; % spanish query
+
+
+def lig_o_table (expr k) =
+ "o" kern k, oct"256" kern k, oct"362" kern k, oct"363" kern k,
+ oct"364" kern k, oct"365" kern k, oct"366" kern k,
+ oct"367" kern k, oct"370" kern k
+enddef;
+
+def lig_a_table (expr k) =
+ "a" kern k, oct"240" kern k, oct"241" kern k, oct"340" kern k,
+ oct"341" kern k, oct"342" kern k, oct"342" kern k,
+ oct"343" kern k, oct"344" kern k, oct"345" kern k,
+ oct"346" kern k
+enddef;
+
+def lig_c_table (expr k) =
+ "c" kern k, oct"242" kern k, oct"243" kern k, oct"347" kern k
+enddef;
+
+def lig_e_table (expr k)=
+ "e" kern k, oct"245" kern k, oct"246" kern k, oct"350" kern k,
+ oct"351" kern k, oct"352" kern k, oct"353" kern k
+enddef;
+
+def lig_u_table (expr k)=
+ "u" kern k, oct"266" kern k, oct"267" kern k, oct"371" kern k,
+ oct"372" kern k, oct"373" kern k, oct"374" kern k
+enddef;
+
+def lig_A_table (expr k)=
+ "A" kern k, oct"200" kern k, oct"201" kern k, oct"300" kern k,
+ oct"301" kern k, oct"302" kern k, oct"303" kern k,
+ oct"304" kern k, oct"305" kern k, oct"306" kern k
+enddef;
+
+def lig_O_table (expr k)=
+ "O" kern k, oct"216" kern k, oct"322" kern k, oct"323" kern k,
+ oct"324" kern k, oct"325" kern k, oct"326" kern k,
+ oct"327" kern k, oct"330" kern k
+enddef;
+
+def lig_CGQ_table (expr k)=
+ "C" kern k, "G" kern k, oct"202" kern k, oct"203" kern k,
+ oct"207" kern k, oct"307" kern k, "Q" kern k
+enddef;
+
+def lig_U_table (expr k)=
+ "U" kern k, oct"226" kern k, oct"227" kern k, oct"331" kern k,
+ oct"332" kern k, oct"333" kern k, oct"334" kern k
+enddef;
+
+def lig_cA_table =
+ "A": oct"200": oct"300": oct"301": oct"302":
+ oct"303": oct"304": oct"305":
+enddef;
+
+k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning
+
+ligtable boundarychar:
+ oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#,
+ oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#;
+
+ligtable oct"022":
+ oct"015" kern 2u#, "," kern 2u#,
+ oct"015":
+ oct"022" kern 2u#,
+ "j" kern -kkk#, oct"032" kern -kkk#, "g" kern -ku#, oct"247" kern -ku#,
+ "y" kern -ku#, oct"270" kern -ku#, oct"375" kern -ku#,
+ "v" kern kk#, "w" kern ku#, "V" kern kkk#, "W" kern kk#,
+ "Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
+ lig_O_table(k#), lig_CGQ_table(k#),
+ boundarychar kern -kk#;
+
+ligtable oct"020":
+ oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"021":
+ oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"024": % ">>"
+ "." kern kk#, "," kern kk#;
+
+ligtable
+ "k": "W" kern kk#, "V" kern kk#,
+ if serifs: "v": lig_a_table(-u#), fi
+ "w": lig_e_table(k#),
+ lig_a_table(k#),
+ lig_o_table(k#),
+ lig_c_table(k#);
+
+ligtable
+ "P": lig_A_table(kk#),
+ "y": oct"270": oct"375": % \"y, \'y
+ lig_o_table(k#),
+ lig_e_table(k#),
+ lig_a_table(k#),
+ "." kern kk#,
+ "," kern kk#;
+ligtable
+ "F":"V": "W":
+ if serifs:
+ "o" kern kk#,
+ "a" kern kk#,
+ "e" kern kk#,
+ "y" kern kk#,
+ "u" kern kk#,
+ "r" kern kk#,
+ "v" kern kk#,
+ "s" kern kk#,
+ "c" kern kk#,
+ "d" kern kk#,
+ "g" kern kk#,
+ "m" kern kk#,
+ "n" kern kk#,
+ "p" kern kk#,
+ "w" kern kk#,
+ "z" kern kk#,
+ oct"346" kern kk#,
+ oct"370" kern kk#,
+ lig_A_table(kkk#),
+ else:
+ "o" kern k#,
+ "a" kern k#,
+ "e" kern k#,
+ "y" kern k#,
+ "u" kern k#,
+ "r" kern k#,
+ "v" kern k#,
+ "s" kern k#,
+ "c" kern k#,
+ "d" kern k#,
+ "g" kern k#,
+ "m" kern k#,
+ "n" kern k#,
+ "p" kern k#,
+ "w" kern k#,
+ "z" kern k#,
+ oct"346" kern k#,
+ oct"370" kern k#,
+ lig_A_table(kk#),
+ fi
+ "X": lig_O_table(k#),
+ lig_CGQ_table(k#);
+
+ligtable "K": if serifs:
+ "v" kern kk#,
+ "w" kern k#,
+ else:
+ "v" kern k#,
+ fi
+ lig_o_table(k#),
+ lig_CGQ_table(k#);
+
+ligtable
+ "T": oct"224": oct"225": % \v{T}, \c{T}
+ "y" kern if serifs: k# else: kk# fi,
+ "Y": oct"230": oct"335": % \"Y, \'Y
+ "e" kern kk#,
+ "o" kern kk#,
+ "r" kern kk#,
+ "a" kern kk#,
+ "u" kern kk#,
+ "n" kern kk#,
+ oct"031" kern kk#, % \i
+ "c" kern kk#,
+ "d" kern kk#,
+ "g" kern kk#,
+ "p" kern kk#,
+ "s" kern kk#,
+ "v" kern kk#,
+ "w" kern kk#,
+ "x" kern kk#,
+ "z" kern kk#,
+ lig_A_table(kk#);
+ligtable
+ "O": oct"216": oct"322": oct"323": oct"324": oct"325": oct"326": oct"330":
+ "D": oct"204": oct"320":
+ "X" kern k#,
+ "W" kern k#,
+ lig_A_table(k#),
+ "V" kern k#,
+ "Y" kern k#, oct"230" kern k#, oct"335" kern k#;
+if serifs:
+ligtable
+ "m": "n": "h":
+ "W" kern kk#, "V" kern kk#,
+ oct"253": oct"254": oct"255": oct"361": % \'n, \v{n}, \ng, \~n
+ "t" kern k#,
+ lig_u_table(k#),
+ "b" kern k#,
+ "y" kern k#,
+ "v" kern k#,
+ "w" kern k#;
+ligtable
+ "c": oct"242": oct"243": oct"347": % \'c, \v{c}, \c{c}
+ "h" kern k#,
+ "k" kern k#;
+fi
+ligtable
+ "o": oct"256": oct"362": oct"363": oct"364": oct"365": oct"366": oct"370":
+ "b": "p":
+if known bx_kerning: % (CMBR)
+ lig_e_table(-k#),
+ lig_o_table(-k#),
+ "d" kern -k#,
+ lig_c_table(-k#),
+ "q" kern -k#,
+fi
+ "x" kern k#,
+ "a": oct"240": oct"340": oct"341": oct"342": oct"343": oct"344": oct"345":
+ if serifs:
+ "v" kern k#,
+ "j" kern u#,
+ else:
+ "r" kern k#,
+ fi
+ "t": oct"264": oct"265":
+ "y" kern k#, oct"270" kern k#, oct"375" kern k#,
+ "u": oct"266": oct"267": oct"371": oct"372": oct"373": oct"374":
+ "w" kern k#;
+ligtable
+ lig_cA_table
+ "y" kern if serifs: kk# else: k# fi,
+ oct"270" kern if serifs: kk# else: k# fi,
+ oct"375" kern if serifs: kk# else: k# fi,
+ oct"202": %\k{A}
+ "v" kern if serifs: kkk# else: k# fi,
+ "w" kern if serifs: kk# else: k# fi,
+ lig_c_table(k#),
+ "d" kern k#, oct"244" kern k#,
+ oct"236" kern k#, oct"360" kern k#,
+ lig_e_table(k#),
+ lig_o_table(k#),
+ "q" kern k#,
+ if serifs: "R": oct"217": fi
+ "t" kern k#, oct"264" kern k#, oct"265" kern k#,
+ lig_CGQ_table(k#),
+ lig_O_table(k#),
+ lig_U_table(k#),
+ "L": oct"210": oct"211": oct"212":
+ "T" kern kk#, oct"224" kern kk#, oct"225" kern kk#,
+ "Y" kern kk#, oct"230" kern kk#, oct"335" kern kk#,
+ "V" kern kkk#,
+ "W" kern kkk#;
+ligtable "g": "j" kern -k#; % logjam
+ligtable "I": "I" kern -k#; % Richard III
+ligtable "e": "V" kern kk#; % eV
+ligtable oct"241": % \k{a}
+ if serifs: "g" kern -k# , "p" kern -k#, fi\\ "w" kern k#;
+ligtable oct"252": % \l
+ "'" kern -k#
+ if not serifs: ,
+ "a" kern k#, oct"241" kern k#, "c" kern k#, oct"242" kern k#,
+ "d" kern k#, "e" kern k#, oct"246" kern k#, "g" kern k#,
+ "o" kern k#, oct"363" kern k#, "s" kern k#, oct"261" kern k#
+ fi;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebrllett.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebrllett.mf
new file mode 100644
index 00000000000..e17100bfc6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebrllett.mf
@@ -0,0 +1,829 @@
+% ebrllett.mf
+% [= exrllett.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% Content:
+%
+% roman lowercase letters a to z
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter a";
+beginchar("a",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "The letter b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The letter c";
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "The letter d";
+beginchar("d",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+ecchar "The letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "The letter f";
+beginchar("f",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+iff not variant_g: ecchar "The letter g";
+beginchar("g",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+iff variant_g: ecchar "Variant letter g";
+beginchar("g",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "The letter h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter i";% (CMBR)
+beginchar("i",5u#,min(asc_height#,10/7x_height#+.5idot_diam#),0);
+italcorr h#*slant-serif_fit# + .5idot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);
+if serifs: x3r=max(x1r,hround(x1+.5idot_diam-.2jut)-.5tiny)
+else: x3=x1-.5 fi;
+top y4r=h;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter j";% (CMBR)
+beginchar("j",5.5u#,min(asc_height#,10/7x_height#+.5idot_diam#),desc_depth#);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(idot_diam,0); pos4(idot_diam,90);
+x3r=x1r; top y4r=h;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "The letter k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+ecchar "The letter l";
+beginchar("l",5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2); endchar;
+
+ecchar "The letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; % stem, sic
+lft x3l=hround(.5w-.5mfudged.stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)+r-w; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter n";
+beginchar("n",10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+ecchar "The letter p";
+beginchar("p",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The letter q";
+beginchar("q",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The letter r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter s";
+beginchar("s",7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+ecchar "The letter t";
+beginchar("t",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The letter u";
+beginchar("u",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+ecchar "The letter v";
+beginchar("v",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4); endchar;
+
+ecchar "The letter w";
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+ecchar "The letter x";
+beginchar("x",if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+ecchar "The letter y";
+beginchar("y",if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter z";
+beginchar("z",8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebrlwest.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebrlwest.mf
new file mode 100644
index 00000000000..cee82db50f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebrlwest.mf
@@ -0,0 +1,1163 @@
+% ebrlwest.mf
+% [= exrlwest.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% Content:
+%
+% lowercase accented letters ("western part")
+%
+% oct"340" .. oct"377"
+%
+% oct"340" a with gravis
+% oct"341" a with acute
+% oct"342" a with circumflex
+% oct"343" a with tilde
+% oct"344" a with umlaut
+% oct"345" a with ring
+% oct"346" ae
+% oct"347" c with cedilla
+%
+% oct"350" e with gravis
+% oct"351" e with acute
+% oct"352" e with circumflex
+% oct"353" e with umlaut
+% oct"354" i with gravis
+% oct"355" i with acute
+% oct"356" i with circumflex
+% oct"357" i with umlaut
+%
+% oct"360" edh (icelandic)
+% oct"361" n with tilde
+% oct"362" o with gravis
+% oct"363" o with acute
+% oct"364" o with circumflex
+% oct"365" o with tilde
+% oct"366" o with umlaut
+% oct"367" oe
+%
+% oct"370" o with /
+% oct"371" u with gravis
+% oct"372" u with acute
+% oct"373" u with circumflex
+% oct"374" u with umlaut
+% oct"375" y with acute
+% oct"376" thorn
+% oct"377" sharp s
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar "The letter a with gravis";
+beginchar_twice(oct"340",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+hpos_corr=u; put_gravis;
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "The letter a with acute";
+beginchar_twice(oct"341",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+hpos_corr=-u; put_accent;
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar "The letter a with circumflex";
+beginchar(oct"342",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+lowercase_hat(x3,oo,14,15,16,17,18);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18); endchar;
+
+
+ecchar "The letter a with tilde";
+beginchar(oct"343",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+lowercase_tilde(0,0,14,15,16,17,18);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18); endchar;
+
+
+
+ecchar "The letter a with umlaut";
+beginchar(oct"344",9u#,lc_trema_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+% lowercase_umlaut(0,0,14,15,16,17);
+lowercase_umlaut(-.3u,0,14,15,16,17); % (CMBR)
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17); endchar;
+
+ecchar "The letter a with ring";
+beginchar(oct"345",9u#,x_height#+acc_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% the accent
+lowercase_circle(x3,(1/3[x_height,h]+apex_o),14,15,16,17);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17); endchar;
+
+
+
+ecchar "The ligature ae";
+beginchar(oct"346",13u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
+right_curve=max(tiny.breadth,hround(curve-if serifs:6
+else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y
+ y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % right terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l;
+ x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(mfudged.hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=4u;
+ y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=4.3u; top y1r=vround .82[bar_height,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % left terminal
+pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
+pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
+filldraw stroke super_arc.e(3,4)&z4e--z5e; % arc and stem
+pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
+pos7(left_curve,180);
+lft x7r=hround max(.5u,1.5u-.5left_curve);
+y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=3.75u; bot y8r=-oo;
+pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
+(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if y9<y5:
+filldraw stroke z5e{down}..{down}z9e;
+fi % link (usually hidden)
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+
+ecchar "The letter cedilla c";
+beginchar(oct"347",8u#,x_height#,0.875desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+% the accent
+lowercase_cedilla(x4,0,6,7,8,9,10);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "The letter e with gravis";
+beginchar_twice(oct"350",7.25u#+max(.75u#,.5curve#),x_height#+acc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+hpos_corr=1.5u; put_gravis;
+repeat_once;
+penlabels(0,1,2,3,4,5,7,8); endchar;
+
+
+ecchar "The letter e with acute";
+beginchar_twice(oct"351",7.25u#+max(.75u#,.5curve#),x_height#+acc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+hpos_corr=-u; put_accent;
+repeat_once;
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "The letter circumflex e";
+beginchar(oct"352",7.25u#+max(.75u#,.5curve#),x_height#+acc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+% the accent
+lowercase_hat(.5w,oo,7,8,9,10,11);
+penlabels(0,1,2,3,4,5,7,8); endchar;
+
+
+ecchar "The letter e with umlaut";
+beginchar(oct"353",7.25u#+max(.75u#,.5curve#),lc_trema_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+% the accent
+lowercase_umlaut(0,0,7,8,9,10);
+penlabels(0,1,2,3,4,5,7,8,9,10); endchar;
+
+ecchar "The letter i with gravis";
+beginchar_twice(oct"354",5u#,x_height#+acc_height#,0);
+italcorr (x_height#+acc_height#)*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#
+ if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+put_gravis;
+repeat_once;
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "The letter i with acute";
+beginchar_twice(oct"355",5u#,x_height#+acc_height#,0);
+italcorr (x_height#+acc_height#)*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#
+ if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+% the accent
+if not monospace: hpos_corr = -.5u; fi
+put_accent;
+repeat_once;
+penlabels(1,2); endchar;
+
+
+ecchar "The letter circumflex i";
+beginchar(oct"356",5u#,x_height#+acc_height#,0);
+italcorr (x_height#+acc_height#)*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#
+ if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+% the accent
+lowercase_hat(x1,oo,3,4,5,6,7);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+ecchar "The letter i with umlaut";
+beginchar(oct"357",5u#,lc_trema_height#,0);
+italcorr (x_height#+acc_height#)*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0.5u#+serif_fit#+stem_shift#
+ if monospace:+.25u#fi,0.5u#+serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs or monospace:
+ sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+fi
+if serifs: dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+% the accent
+lowercase_umlaut(0,0,3,4,5,6);
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar"The letter edh";
+% Corrected version by Yannis
+beginchar(oct"360",9u#,asc_height#,0);
+italcorr .x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+oh := x_height;
+pickup fine.nib;
+pos1(vair,90); pos3(vair',-90);
+pos2(curve,180); pos4(curve,0); pos4'(hair,0) ;
+lft x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; top y1r=oh + vround 1.5oo; bot y3r=-oo;
+y2=y4=.5oh-vair_corr; y2l:=y4l:=.52oh;
+x4'l = x4l ; y4 = y4' ;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) -- pulled_arc.e(4',1); % bowl
+pos5(.5[vair,hair],40) ;
+x5l = x2 ; top y5r = h ; x7r = x4r; y7 = .95[x4,x1];
+pos7(curve,0);
+filldraw stroke z5e .. tension 1.1 and 1 .. z7e{down} .. z4e ;
+path p ; p = z5 .. tension 1.1 and 1 .. z7{down} ;
+z6 = ((0,if monospace:.6 else: .7 fi[x_height,asc_height]) --
+ (w,.6[x_height,asc_height]))
+ intersectionpoint p ;
+pos6'(.5[vair,hair],-60) ; pos 6''(.5[vair,hair],-60) ;
+top y6''l = h ; z6'' = z6 + whatever*dir30;
+z6 = .5[z6',z6''] ; filldraw stroke z6'e -- z6''e ;
+penlabels(1,2,3,4,5,6,6',6''); endchar;
+
+ecchar "The letter n with tilde";
+beginchar(oct"361",10u#,x_height#+acc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=x_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+% the accent
+lowercase_tilde(0,0,5,6,7,8,9);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+ecchar "The letter o with gravis";
+beginchar_twice(oct"362",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+hpos_corr=u; put_gravis;
+repeat_once;
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "The letter o with acute"; % from pl_ml (plfonts)
+beginchar_twice(oct"363",9u#,x_height#,0);
+ italcorr .7x_height#*slant;
+ adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+ penpos1(vair,90); penpos3(vair',-90);
+ penpos2(curve,180); penpos4(curve,0);
+ x2r=hround max(.5u,1.25u-.5curve);
+ x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+ y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+ penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+ penlabels(1,2,3,4);
+if serifs: hpos_corr=-u; fi put_accent;
+repeat_once;
+endchar;
+
+
+ecchar "The letter o with circumflex";
+beginchar(oct"364",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% the accent
+lowercase_hat(x1,oo,5,6,7,8,9);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "The letter o with tilde";
+beginchar(oct"365",9u#,x_height#+acc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% the accent
+lowercase_tilde(0,0,5,6,7,8,9);
+penlabels(1,2,3,4,5,6,7,8,9);endchar;
+
+ecchar "The letter o with umlaut";
+beginchar(oct"366",9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% the accent
+lowercase_umlaut(0,0,5,6,7,8);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar "The ligature oe";
+beginchar(oct"367",14u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(fine.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5(w+u)-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; pos1(vair,90); pos3(vair,-90);
+pos2(left_curve,180); pos4(mfudged.stem,0);
+lft x2r=hround max(.5u,1.25u-.5curve);
+z4=z13; x1=x3=.5[x2,x4]; top y1r=h+vround 1.5oo; bot y3r=-oo;
+y2=y4; y2l:=y4l:=.52h;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of left bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of left bowl
+penlabels(1,2,3,4,10,11,12,13,14,15); endchar;
+
+ecchar "Scandinavian letter o/slash";
+beginchar(oct"370",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr h#*slant-u#-max(.5fudge*stem#,.75u#)+.5vair#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90);
+penpos2(fudged.stem,180); penpos4(fudged.stem,0);
+x2r=hround max(.5u,1.25u-.5fudged.stem);
+x4r=w-x2r; x1=x3=.5w;
+y1r=x_height+vround 1.5oo; y2=y4=.5x_height-vair_corr; y3r=-oo;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+x5=x4; x6=x2; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter u with gravis";
+beginchar_twice(oct"371",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+hpos_corr=0.75u; put_gravis;
+repeat_once;
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "The letter u with acute";
+beginchar_twice(oct"372",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% the accent
+hpos_corr=-u; put_accent;
+repeat_once;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "The letter u with circumflex";
+beginchar(oct"373",10u#,x_height#+acc_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% the accent
+lowercase_hat(.5[x1,x3],oo,7,8,9,10,11);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+ecchar "The letter u with umlaut";
+beginchar(oct"374",10u#,lc_trema_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% the accent
+lowercase_umlaut(0,0,7,8,9,10);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "The letter y with acute";
+beginchar_twice(oct"375",if serifs:9.5u# else:9u# fi,
+ x_height#+acc_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=x_height; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+% the accent
+put_accent;
+repeat_once;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff fancy_thorn:
+ecchar "The letter thorn"; % from cmman
+beginchar(oct"376",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6=x3; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+iff not fancy_thorn:
+ecchar "The letter thorn"; % jk: Bowl as in `p' or `b'
+beginchar(oct"376",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff classic_sharp_s:
+ecchar "German letter sharp s";
+beginchar(oct"377",4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
+penpos3(vair-fine,90); fine.top y3r=h+oo;
+filldraw stroke z1e--z2e; % stem
+numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
+pickup fine.nib; pos4(curve',0); pos5(vair,-90);
+pos2'(stem',180); z2'=z2; x3=.5[x2,x4]; rt x4r=hround(w-u);
+top y5l=x_height; lft x5=min(lft x4l,hround(stem_edge+u));
+filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull); % upper bowl
+pos5'(vair,90); z5'=z5; pos6(curve',0); pos7(vair,-90);
+rt x6r=hround(w-.5u)+3eps; y6=.4x_height; bot y7r=-oo;
+if serifs: pos8(hair,-180) else: pos8(vair,-110) fi;
+lft x8r=min(hround(stem_edge+.5u+1),lft x8r+x6r-2eps-x8l);
+x7=max(x8l+eps,.4[lft x8r,x6]);
+filldraw stroke pulled_super_arc.e(5',6)(.5superpull)
+ & pulled_super_arc.e(6,7)(.5superpull); % lower bowl
+if serifs: pos9(5/7[vair,flare],-180);
+ y9-(x9-lft x9r)=vround .07x_height; bulb(7,8,9); % bulb
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % bar
+ dish_serif(1,2,b,1/3,jut,c,0,epsilon); % serif
+else: bot y8r=vround .01h; x8l:=good.x x8l; y8l:=good.y(y8l+.5);
+ filldraw stroke term.e(7,8,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+iff not classic_sharp_s:
+ecchar "German letter scharfes s";
+% completely remade to exhibit the long s-short s ligature % jk
+beginchar(oct"377",4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
+penpos3(vair-fine,90); fine.top y3r=h+oo;
+filldraw stroke z1e--z2e; % stem
+numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos4(hair,0);
+pos2'(stem',180); z2'=z2; x3=.5[x2,x4];
+rt x4r=hround(w-if not hefty: 2 fi\\u);
+numeric xx; xx=min(x3, hround(stem_edge+u));
+numeric theta;
+theta=90-angle(40u,x_height); slope:=-x_height/40u; % angle at middle
+pos5(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos22(ess',theta); pos10(s_slab,-90);
+x5l=hround(.5[xx,w-u]);
+%if x5l+1<x4l: x5l:=x4l-1; fi
+x5l=x22=x10;
+top y5l=x_height+vround 1.5oo; bot y10r=-oo;
+y22-.5ess'=y10l+if serifs:.54 else: .52 fi\\(y5r-y10l-ess');
+lft x6l=xx; rt x9r=hround(w-.6u);
+x6r-x6l=x9r-x9l=hround .5[s_slab,ess']-fine;
+ellipse_set(5l,6l,7l,22l); ellipse_set(5r,6r,7r,22r); y6=y6r;
+ellipse_set(10l,9l,8l,22l); ellipse_set(10r,9r,8r,22r); y9=y9r;
+interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull) % upper bowl
+ ..super_arc.e(5,6) & z6e{down}
+ ..z7e---z8e..z9e{down} & super_arc.e(9,10); % main s stroke
+if serifs: pos21(hair,180); pos11(hair,180);
+ rt x21l=hround(w-1.05u); lft x11r=xx;
+ bot y21=min(bot y5r,vround 1/5[top y8r,x_height]);
+ top y11=max(top y10l,vround 5/6 bot y7l);
+ filldraw stroke z10e{left}....{x11-x10,5(y11-y10)}z11e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z21{up}....{left}z5; lower_arc=z10{left}....{x11-x10,5(y11-y10)}z11;
+ pos20(.3[fine.breadth,cap_hair],0); pos12(.3[fine.breadth,cap_hair],0);
+ x20r=x21l; top y20=top y5l; x12l=x11r; bot y12=bot y10r;
+ x21l-x21'=x11'-x11r=1.6cap_curve-fine; y21'=y21; y11'=y11;
+ t:=xpart(lower_arc intersectiontimes(z12r--z11'));
+ filldraw z11r--z12l--z12r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos21(4/7[s_slab,flare],-100); pos11(flare,-100);
+ x21l=good.x(x21l+w-u-rt x21); lft x11r=xx;
+ top y21l=vround(.93x_height+1.5oo); bot y11r=vround .1x_height-oo;
+ filldraw stroke term.e(10,11,left,1,4); fi % lower arc and terminal
+if serifs:
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % bar
+ dish_serif(1,2,b,1/3,jut,c,0,epsilon); % serif
+fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10.11.11',12,20,21,21',22); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebroman.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebroman.mf
new file mode 100644
index 00000000000..8a7b9b9a162
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebroman.mf
@@ -0,0 +1,68 @@
+% ebroman.mf
+% [= exroman.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% Content:
+%
+% driver file, called by parameter files with roman style fonts
+
+%
+% dx r l west
+% i u east
+% : : :
+% : : west '3xx / east '2xx
+% : uppercase/lowercase
+% roman / italic
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input ebaccess; % accessories for pl/cz special letters (CMBR)
+input ebpseudo; % pseudoparameters (CMBR)
+
+mode_setup; font_setup; pseudo_setup;
+
+input exruwest;
+input ebrlwest; % (CMBR)
+input exrueast;
+input ebrleast; % (CMBR)
+%
+input ebbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040) % (CMBR)
+input ebpunct; % < << > >> ! ` ' * + , . / = ; : (spanish !) % (CMBR)
+%
+input exaccent; %
+input exsign; % zero for mille, " # $ % @ pound sign
+%
+input ebrlig; % dotless i,j; letter ligatures ff fi fl ffi ffl % (CMBR)
+%
+input exromp; % (roman punctuation) & ? (spanish ?)
+%
+input exrulett; % upper case (majuscules)
+input ebrllett; % lower case (minuscules) % (CMBR)
+input exrdigit; % roman digits
+%
+% Fontparameter
+%
+font_coding_scheme:="Extended TeX Font Encoding - Latin";
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (cap_height#+acc_height#);
+font_desc_depth desc_depth#;
+font_max_height (max(asc_height#,body_height#,
+ cap_height#+acc_height#));
+font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+font_baselineskip max(1.25*designsize,body_height#+paren_depth#);% (CMBR)
+ font_normal_space 5.7u#+2letter_fit#; % (CMBR)
+ font_normal_stretch 2.85u#; font_normal_shrink 1.9u#; %(CMBR)
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 1.9u#; % (CMBR)
+ input ebrligtb; % do the ligature programs %(CMBR)
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebso10.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebso10.mf
new file mode 100644
index 00000000000..974f161fc88
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebso10.mf
@@ -0,0 +1,20 @@
+% European Computer Modern Bright
+% semibold oblique 10 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBSO"; font_size 10pt#;
+input brs10pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+%ligs:=2;
+acc_height#:=70/36pt#; % ?
+dot_height#:=70/36pt#; % 66.5
+ldot_height#:=70/36pt#; % 66.5
+%bx_kerning:=1;
+
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebso17.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebso17.mf
new file mode 100644
index 00000000000..aa59c9cda9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebso17.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% semibold oblique 17 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBSO"; font_size 17.28pt#;
+input brs17pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+;ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=70/36Pt#; % ok
+dot_height#:=70/36Pt#; % 66.5
+ldot_height#:=70/36Pt#; % 66.5
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebso8.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebso8.mf
new file mode 100644
index 00000000000..ff23ef2bd60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebso8.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% semibold oblique 8 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBSO"; font_size 8pt#;
+input brs8pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=60/36pt#; % ?
+dot_height#:=60/36pt#; % 54.5
+ldot_height#:=60/36pt#; % 54.5
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebso9.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebso9.mf
new file mode 100644
index 00000000000..4aa7f7216dc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebso9.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% semibold oblique 9 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBSO"; font_size 9pt#;
+input brs9pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=65/36pt#; % ?
+dot_height#:=65/36pt#; % 60.48
+ldot_height#:=65/36pt#; % 60.48
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebsr10.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebsr10.mf
new file mode 100644
index 00000000000..53b39c08633
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebsr10.mf
@@ -0,0 +1,20 @@
+% European Computer Modern Bright
+% semibold regular 10 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBSR"; font_size 10pt#;
+input brs10pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+%ligs:=2;
+acc_height#:=70/36pt#; % ?
+dot_height#:=70/36pt#; % 66.5
+ldot_height#:=70/36pt#; % 66.5
+%bx_kerning:=1;
+
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebsr17.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebsr17.mf
new file mode 100644
index 00000000000..d8de95277ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebsr17.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% semibold regular 17 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBSR"; font_size 17.28pt#;
+input brs17pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+;ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=70/36Pt#; % ok
+dot_height#:=70/36Pt#; % 66.5
+ldot_height#:=70/36Pt#; % 66.5
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebsr8.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebsr8.mf
new file mode 100644
index 00000000000..b8a2b3da58e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebsr8.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% semibold regular 8 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBSR"; font_size 8pt#;
+input brs8pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=60/36pt#; % ?
+dot_height#:=60/36pt#; % 54.5
+ldot_height#:=60/36pt#; % 54.5
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebsr9.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebsr9.mf
new file mode 100644
index 00000000000..830b51b1468
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebsr9.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright
+% semibold regular 9 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="EBSR"; font_size 9pt#;
+input brs9pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=65/36pt#; % ?
+dot_height#:=65/36pt#; % 60.48
+ldot_height#:=65/36pt#; % 60.48
+
+generate ebroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebtl10.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebtl10.mf
new file mode 100644
index 00000000000..8f459cb5f21
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebtl10.mf
@@ -0,0 +1,85 @@
+% EC Typewriter Light 10 point [1997/05/14 v1.0 (WaS)]
+
+% This is a 10 pt typewriter font with all stroke widths
+% taken from cmtt8, so that it looks lighter than cmtt10
+% and may be used together with the CM Bright fonts.
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EBTL"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+acc_height#:=75/36pt#;
+dot_height#:=75/36pt#;
+udot_height#:=59/36pt;
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+true_mono:=true;
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ebto10.mf b/Master/texmf-dist/fonts/source/public/cmbright/ebto10.mf
new file mode 100644
index 00000000000..63bde0bb856
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ebto10.mf
@@ -0,0 +1,85 @@
+% EC Typewriter Light oblique 10 point [1997/05/14 v1.0 (WaS)]
+
+% This is a 10 pt typewriter font with all stroke widths
+% taken from cmtt8, so that it looks lighter than cmtt10
+% and may be used together with the CM Bright fonts.
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EBTO"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+acc_height#:=75/36pt#;
+dot_height#:=75/36pt#;
+udot_height#:=59/36pt;
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+true_mono:=true;
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/manifest.txt b/Master/texmf-dist/fonts/source/public/cmbright/manifest.txt
new file mode 100644
index 00000000000..86e500b67b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/manifest.txt
@@ -0,0 +1,107 @@
+The below file contitute the sources of the
+Computer Modern Bright fonts and mist be disttributed
+as a whole:
+
+ 3525 Thu May 22 00:00:00 1997 ams10pt.mf
+ 3917 Thu May 22 00:00:00 1997 ams8pt.mf
+ 3917 Thu May 22 00:00:00 1997 ams9pt.mf
+ 9153 Thu May 22 00:00:00 1997 baccent.mf
+ 11886 Thu May 22 00:00:00 1997 bgreeku.mf
+ 6263 Thu May 22 00:00:00 1997 bitalms.mf
+ 12183 Thu May 22 00:00:00 1997 bpunct.mf
+ 3438 Thu May 22 00:00:00 1997 br10pt.mf
+ 3491 Thu May 22 00:00:00 1997 br17pt.mf
+ 3413 Thu May 22 00:00:00 1997 br8pt.mf
+ 3390 Thu May 22 00:00:00 1997 br9pt.mf
+ 5107 Thu May 22 00:00:00 1997 brmsa.mf
+ 7329 Thu May 22 00:00:00 1997 brmsb.mf
+ 3122 Thu May 22 00:00:00 1997 broman.mf
+ 40147 Thu May 22 00:00:00 1997 bromanl.mf
+ 8146 Thu May 22 00:00:00 1997 bromlig.mf
+ 10159 Thu May 22 00:00:00 1997 bromms.mf
+ 3561 Mon May 26 00:00:00 1997 brs10pt.mf
+ 3594 Mon May 26 00:00:00 1997 brs17pt.mf
+ 3538 Mon May 26 00:00:00 1997 brs8pt.mf
+ 3514 Mon May 26 00:00:00 1997 brs9pt.mf
+ 447 Thu May 22 00:00:00 1997 cmbr10.mf
+ 491 Thu May 22 00:00:00 1997 cmbr17.mf
+ 485 Thu May 22 00:00:00 1997 cmbr8.mf
+ 485 Thu May 22 00:00:00 1997 cmbr9.mf
+ 700 Thu May 22 00:00:00 1997 cmbras10.mf
+ 695 Thu May 22 00:00:00 1997 cmbras8.mf
+ 696 Thu May 22 00:00:00 1997 cmbras9.mf
+ 891 Thu Jan 22 01:00:00 1998 cmbrbs10.mf
+ 892 Thu May 22 00:00:00 1997 cmbrbs8.mf
+ 892 Thu May 22 00:00:00 1997 cmbrbs9.mf
+ 3889 Thu May 22 00:00:00 1997 cmbrbx10.mf
+ 3833 Thu May 22 00:00:00 1997 cmbrmb10.mf
+ 475 Thu May 22 00:00:00 1997 cmbrmi10.mf
+ 513 Thu May 22 00:00:00 1997 cmbrmi8.mf
+ 513 Thu May 22 00:00:00 1997 cmbrmi9.mf
+ 471 Thu May 22 00:00:00 1997 cmbrsl10.mf
+ 515 Thu May 22 00:00:00 1997 cmbrsl17.mf
+ 509 Thu May 22 00:00:00 1997 cmbrsl8.mf
+ 509 Thu May 22 00:00:00 1997 cmbrsl9.mf
+ 4715 Thu May 22 00:00:00 1997 cmbrsy10.mf
+ 4695 Thu May 22 00:00:00 1997 cmbrsy8.mf
+ 4715 Thu May 22 00:00:00 1997 cmbrsy9.mf
+ 3872 Thu May 22 00:00:00 1997 cmsltl10.mf
+ 3850 Thu May 22 00:00:00 1997 cmtl10.mf
+ 709 Thu May 9 01:19:24 2002 copyrite.txt
+ 37672 Mon May 26 00:00:00 1997 ebaccess.mf
+ 52473 Fri May 30 00:00:00 1997 ebbase.mf
+ 9789 Thu May 22 00:00:00 1997 ebbraces.mf
+ 4055 Thu May 22 00:00:00 1997 ebbx10.mf
+ 576 Thu May 22 00:00:00 1997 ebmo10.mf
+ 623 Thu May 22 00:00:00 1997 ebmo17.mf
+ 620 Thu May 22 00:00:00 1997 ebmo8.mf
+ 622 Thu May 22 00:00:00 1997 ebmo9.mf
+ 562 Thu May 22 00:00:00 1997 ebmr10.mf
+ 609 Thu May 22 00:00:00 1997 ebmr17.mf
+ 606 Thu May 22 00:00:00 1997 ebmr8.mf
+ 608 Thu May 22 00:00:00 1997 ebmr9.mf
+ 3064 Thu May 22 00:00:00 1997 ebpseudo.mf
+ 11420 Thu May 22 00:00:00 1997 ebpunct.mf
+ 51964 Thu May 22 00:00:00 1997 ebrleast.mf
+ 9734 Thu May 22 00:00:00 1997 ebrlig.mf
+ 10087 Thu May 22 00:00:00 1997 ebrligtb.mf
+ 39644 Thu May 22 00:00:00 1997 ebrllett.mf
+ 52059 Thu May 22 00:00:00 1997 ebrlwest.mf
+ 2101 Mon May 26 00:00:00 1997 ebroman.mf
+ 599 Thu May 22 00:00:00 1997 ebso10.mf
+ 627 Thu May 22 00:00:00 1997 ebso17.mf
+ 620 Thu May 22 00:00:00 1997 ebso8.mf
+ 622 Thu May 22 00:00:00 1997 ebso9.mf
+ 585 Thu May 22 00:00:00 1997 ebsr10.mf
+ 613 Thu May 22 00:00:00 1997 ebsr17.mf
+ 606 Thu May 22 00:00:00 1997 ebsr8.mf
+ 608 Thu May 22 00:00:00 1997 ebsr9.mf
+ 3939 Thu May 22 00:00:00 1997 ebtl10.mf
+ 3949 Thu May 22 00:00:00 1997 ebto10.mf
+ 3476 Thu May 22 00:00:00 1997 mathsl.mf
+ 67170 Thu May 22 00:00:00 1997 msa.mf
+ 58281 Thu May 22 00:00:00 1997 msb.mf
+ 4079 Thu May 22 00:00:00 1997 tbbx10.mf
+ 600 Thu May 22 00:00:00 1997 tbmo10.mf
+ 647 Thu May 22 00:00:00 1997 tbmo17.mf
+ 644 Thu May 22 00:00:00 1997 tbmo8.mf
+ 646 Thu May 22 00:00:00 1997 tbmo9.mf
+ 553 Thu May 22 00:00:00 1997 tbmr10.mf
+ 603 Thu May 22 00:00:00 1997 tbmr17.mf
+ 599 Thu May 22 00:00:00 1997 tbmr8.mf
+ 601 Thu May 22 00:00:00 1997 tbmr9.mf
+ 2222 Mon May 26 00:00:00 1997 tbpseudo.mf
+ 607 Thu May 22 00:00:00 1997 tbso10.mf
+ 651 Thu May 22 00:00:00 1997 tbso17.mf
+ 644 Thu May 22 00:00:00 1997 tbso8.mf
+ 646 Thu May 22 00:00:00 1997 tbso9.mf
+ 592 Thu May 22 00:00:00 1997 tbsr10.mf
+ 634 Thu May 22 00:00:00 1997 tbsr17.mf
+ 630 Thu May 22 00:00:00 1997 tbsr8.mf
+ 632 Thu May 22 00:00:00 1997 tbsr9.mf
+ 1917 Sat May 25 00:00:52 2002 tbsymb.mf
+ 94014 Wed Feb 9 01:00:00 2000 tbsymbol.mf
+ 3959 Wed Feb 9 01:00:00 2000 tbtl10.mf
+ 3972 Wed Feb 9 01:00:00 2000 tbto10.mf
+ 1984 Wed Feb 9 01:00:00 2000 ttsymb.mf
+ 94356 Wed Feb 9 01:00:00 2000 ttsymbol.mf
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/mathsl.mf b/Master/texmf-dist/fonts/source/public/cmbright/mathsl.mf
new file mode 100644
index 00000000000..aea03f7c6b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/mathsl.mf
@@ -0,0 +1,72 @@
+% Computer Modern Math Italic driver file, (D.E.K. 1979--1985).
+% Modified for CM Bright Math Slanted [1995/10/27 v0.999 WaS]
+
+font_coding_scheme:="TeX math italic";
+mode_setup; font_setup;
+define_pixels(sym_u);define_whole_vertical_pixels(sym_height);
+
+input romanu; % upper case (majuscules)
+input bromanl; % lower case (minuscules)
+input bgreeku; % upper case greek letters
+input greekl; % lower case Greek letters
+input bitalms; % special symbols for math italic
+font_slant slant; font_x_height x_height#;
+font_quad 18u#+4letter_fit#;
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input olddig; % oldstyle numerals
+input bromms; % roman math specials
+% The kerning table has been updated for the use of slanted
+% letters instaed of italic ones; the (original) comments are partially
+% wrong now.
+skewchar=oct"177"; skew#=.5u#;
+save comma;
+period=oct"72"; comma=oct"73"; slash=oct"75"; % non-ASCII positions
+ligtable "h": skewchar kern skew#;
+ligtable oct"027":oct"034": comma kern -u#, period kern -u#, % $\nu:\tau:$
+ "L":"g":"v":"x": oct"013": oct"026": % $L:g:u:v:x:\alpha:\mu:$
+ oct"035": skewchar kern skew#; % $\upsilon:\imath:$
+ligtable "U": comma kern-2u#, period kern-2u#, % $U:$
+ slash kern-u#, skewchar kern 3skew#;
+ligtable "K":oct"011": slash kern-u#, % $K:\it\Psi:$
+ oct"016":"r": comma kern-u#, period kern-u#, % $\delta:r:$
+ "D":"c":"e":"o":"s":"y":"z":oct"017": % $D:c:e:o:s:y:z:\epsilon:$
+ oct"021":oct"023":oct"037": skewchar kern 2skew#; % $\eta:\iota:\chi:$
+ligtable oct"007": slash kern-u#, % $\it\Upsilon:$
+ comma kern-2u#, period kern-2u#, skewchar kern 2skew#;
+ligtable oct"005":"H": slash kern-u#, % $\it\Pi:H:$
+ comma kern-u#, period kern-u#, skewchar kern 4skew#;
+ligtable oct"173": "l": "m": "n": skewchar kern 2skew#;
+ligtable "N":"X": slash kern -1.5u#, % $N:X:$
+ "C": slash kern -.5u#, comma kern -u#, period kern -u#, % $C:T:$
+ "B":"E":"G":"O":"Q":"R":oct"174": % $B:E:G:O:Q:R:\jmath:$
+ "p":"q":"t":"w":oct"002":oct"004": % $l:p:q:t:w:\it\Theta:\Xi:$
+ oct"006":oct"010":oct"012":oct"014": % $\it\Sigma:\Phi:\Omega:\beta:$
+ oct"020":oct"022":oct"032":oct"036": % $\zeta:\theta:\rho:\phi:$
+ oct"042":oct"043":oct"045": % $\varepsilon:\vartheta:\varrho:$
+ oct"046":oct"047":oct"100": "a": "u": % $\varsigma:\varphi:\partial:$
+ skewchar kern 3skew#;
+ligtable "T": slash kern -.5u#, comma kern -u#, period kern -u#,
+ skewchar kern skew#;
+ligtable "M":"S":"Z": slash kern-u#, % $M:S:Z:$
+ comma kern-u#, period kern-u#, skewchar kern 3skew#;
+ligtable oct"000":"F":"P": slash kern -u#, % $\it\Gamma:F:P:$
+ comma kern-2u#, period kern-2u#, skewchar kern 3skew#;
+ligtable "I":oct"030":oct"040":oct"140":oct"175": % $I:\xi:\psi:\ell:\wp:$
+ skewchar kern 4skew#;
+ligtable "A": skewchar kern 5skew#; % $A:$
+ligtable "d": "Y" kern u#, "Z" kern-u#, "j" kern-2u#, "f" kern-u#,
+ skewchar kern 5skew#; % $d:$
+ligtable oct"001":oct"003": skewchar kern 6skew#; % $\it\Delta:\Lambda:$ (WaS)
+ligtable "f": comma kern-u#, period kern-u#, skewchar kern 4skew#; % $f:$
+ligtable "J": slash kern-u#, % $J:$
+ comma kern-2u#, period kern-2u#,
+% skewchar kern 6skew#;
+ skewchar kern 7skew#;
+ligtable "j":oct"033": comma kern -u#, period kern -u#; % $j:\sigma:$
+ligtable "V":"W":"Y":comma kern-3u#, period kern-3u#, % $V:W:Y:$
+ slash kern-2u#;
+ligtable slash: oct"001" kern -u#, "A" kern -u#, "M" kern -u#, % $/:$
+ "N" kern -u#, "Y" kern +u#, "Z" kern -u#;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/msa.mf b/Master/texmf-dist/fonts/source/public/cmbright/msa.mf
new file mode 100644
index 00000000000..6998274877a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/msa.mf
@@ -0,0 +1,1762 @@
+% MSA symbols, roman style [1996/07/02 v1.0 (WaS)]
+
+def makesquare (suffix i,j,k,l) =
+%% z.j, z.k are the lower left and right corners
+%% assumed on baseline; ie, y.k=y.j=0
+%% z.i, z.l are upper left and right corners
+%% that is, start labeling with upper left corner, and
+%% proceed to the successive corners counter-clockwise.
+y.i-y.j=x.k-x.j; y.i:=good.y y.i+o; y.l=y.i
+%% user must draw the square him/herself.
+enddef;
+
+
+cmchar "Square with dot";
+beginchar(oct"000",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x4=x5=w-x1;
+bot y2=0; y4=y2;
+makesquare (1,2,4,5);
+y3=good.y .5[y1,y2]; x3=good.x .5[x1,x5];
+draw z1---z2---z4---z5---cycle; % square
+fill fullcircle scaled dot_size shifted z3; % dot
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Square plus";
+beginchar(oct"001",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x4=x5=w-x1;
+bot y2=0; y4=y2; makesquare(1,2,4,5);
+draw z1---z2---z4---z5---cycle; % square
+x6=x1; x7=x4; y6=.5[y1,y2]; y7=y6; % cross strut
+y8=y1; y9=y2; x8=.5[x1, x5]; x9=x8; % vertical strut
+draw z6---z7; draw z8---z9; % plus
+penlabels(1,2,4,5,6,7,8,9); endchar;
+
+cmchar "Square times";
+beginchar(oct"002",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x4=x5=w-x1;
+bot y2=0; y4=y2; makesquare(1,2,4,5);
+draw z1---z2---z4---z5---cycle; % square
+draw z1---z4; draw z2---z5; % diagonals
+penlabels(1,2,4,5); endchar;
+
+cmchar "Square";
+beginchar(oct"003",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1;
+x4=x5=w-x1;
+bot y2=0; y4=y2; makesquare(1,2,4,5);
+draw z1---z2---z4---z5---cycle; % square
+penlabels(1,2,4,5); endchar;
+
+cmchar "Filled square";
+beginchar(oct"004",14u#,12u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x4=x5=w-x1;
+bot y2=0; y4=y2; makesquare(1,2,4,5);
+filldraw z1---z2---z4---z5---cycle; % square
+penlabels(1,2,4,5); endchar;
+
+cmchar "Small filled square";
+beginchar(oct"005",5u#,.8asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.0u; x2=x1; x3=x4=w-x1;
+bot y2=0; y3=y2; makesquare(1,2,3,4);
+filldraw z1---z2---z3---z4---cycle; % draw and fill square
+penlabels(1,2,3,4); endchar;
+
+
+cmchar "Diamond";
+beginchar(oct"006",12u#,asc_height#,2u#);
+adjust_fit(0,0); pickup rule.nib;
+%% z1, z2 are left & right vertices
+%% z3, z4 are top and bottom points
+lft x1=hround u; x2=w-x1; y1=y2;
+x3=x4=.5[x1, x2]; bot y4=-d-o; top y3= good.y h+o;
+y1=.5[y4,y3];
+draw z1---z3---z2---z4---cycle; % draw diamond
+penlabels(1,2,3,4); endchar;
+
+cmchar "Filled Diamond";
+beginchar(oct"007",12u#,asc_height#,2u#);
+adjust_fit(0,0); pickup rule.nib;
+%% z1, z2 are left & right vertices
+%% z3, z4 are top and bottom points
+lft x1=hround u; x2=w-x1; y1=y2;
+x3=x4=.5[x1, x2]; bot y4=-d-o; top y3= good.y h+o;
+y1=.5[y4,y3];
+filldraw z1---z3---z2---z4---cycle; % draw diamond
+penlabels(1,2,3,4); endchar;
+
+% do char "011 before char "010.
+cmchar "Counter-clockwise-circle indicator";
+beginarithchar(oct"011"); pickup light_rule.nib;
+autorounded; lft x6=hround u; x2=w-x6;
+y2=math_axis; top y8=h;
+circle_points; % define points on circumference
+%% see page 487 of vol E
+path p; numeric t;
+p=z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle;
+t=xpart(p intersectiontimes ((4.5u,0)--(4.5u,y8)));
+draw subpath (0,t) of p; % circle with gap
+z0=.5[z5,z1]; % the origin of the circle
+%% Now prepare for left arrowhead--see pg E465
+pickup crisp.nib;
+pos12(rule_thickness,90); pos13(bar,0); pos14(bar,0);
+y10=y12=y8; lft x10=hround x8;
+y13-y10=y10-y14=.19asc_height+eps; x13=x14=x10+3u+eps;
+pos15(bar,angle(z14-z10)); z15l=z10;
+pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.38[.5[z13,z14],z10];
+numeric t; path p; % re-use t, p
+p=z14r{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y12l)--(w,y12l)));
+x12=xpart point t of p;
+path p;
+p=z10..{z14-z19}z14l--subpath(0,t) of
+(z14r{z19-z14}..z16r)--z12l--z12r
+--subpath(t,0) of (z13r{z19-z13}..z15r)
+--z13l{z19-z13}..z10&cycle; % arrowhead
+p:=p shifted -z8; % move back to origin
+p:=p rotated -16; % rotate down a bit
+p:=p shifted z8; % move back to tip of circle
+filldraw p;
+penlabels(0,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,19);
+picture v; v:=currentpicture; endchar;
+
+cmchar "Clockwise-circle indicator";
+beginarithchar(oct"010");
+currentpicture:=v reflectedabout ((w/2,0),(w/2,h));
+penlabels(0,1,2,3,5,6,7,8,9,10); endchar;
+
+cmchar "Left-Right Harpoons";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"013",18u#,v_center(spread#+.48asc_height#));
+path topleft; % for top left half arrow (harpoon)
+adjust_fit(0,0);
+pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+x2=xpart point t of p;
+topleft=z0--(x0,y2l)---z1l..z1r---z2r
+ ..subpath (t,0) of\\(z3r..{2(x0-x3),y0-y3}z5r)
+ --z3l..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+topleft:=
+topleft shifted (0,.5spread); % shift above math_axis
+path botright; % for bottom right half arrow
+botright:=topleft reflectedabout ((w/2,0),(w/2,h));
+botright:=botright reflectedabout
+((0,math_axis+eps),(w,math_axis+eps));
+filldraw topleft; filldraw botright;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Right-Left Harpoons";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"012",18u#,v_center(spread#+.48asc_height#));
+path topright, botleft;
+adjust_fit(0,0);
+pickup crisp.nib;
+topright:=topleft reflectedabout((w/2,0),(w/2,h));
+botleft:=botright reflectedabout((w/2,0),(w/2,h));
+filldraw topright; filldraw botleft; endchar;
+
+cmchar "Square minus";
+beginchar(oct"014",14u#,12u#,0); adjust_fit(0,0);
+pickup rule.nib; lft x1=hround 1.0u; x2=x1; x4=x5=w-x1; bot
+y2=0; y4=y2; makesquare(1,2,4,5);
+draw z1---z2---z4---z5---cycle; % square
+x6=x1; x7=x4; y6=.5[y1,y2]; y7=y6; % cross strut
+draw z6---z7; % minus
+penlabels(1,2,4,5,6,7); endchar;
+
+cmchar "Forces";
+beginchar(oct"015",13u#,asc_height#,0);
+adjust_fit(0,0);; pickup rule.nib;
+top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2;
+lft x5=hround u; x4=w-x5;
+compute_spread(.45x_height#,.55x_height#);
+x1=x5+spread; x1=x2=x3; x6=x5;
+draw z6--z5; draw z2--z1; draw z3--z4;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Forces with extra bar";
+beginchar(oct"016",16u#, asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.42x_height#,.52x_height#);
+top y1=h; bot y2=0; y3=y4=good.y .5h;
+y5=y7=y1; y6=y8=y2; lft x7=hround u; x4=w-x7;
+x5=good.x x7+spread; x1=good.x x5+spread;
+x1=x2=x3; x6=x5; x7=x8;
+draw z7--z8; draw z5--z6; draw z1--z2; % verticals
+draw z3--z4; % horizontal piece
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Satisfies";
+beginchar(oct"017",11u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+top y1=h; bot y2=0; y0=good.y .5[y1,y2];
+y3=vround y0+.5spread;
+y5=vround y0- .5spread; y4=y3; y6=y5;
+lft x1=hround u; x4=w-x1;
+x1=x2=x3=x5; x4=x6; x0=x1;
+draw z1--z2; % vertical line
+draw z3--z4; % draw top horizontal piece
+draw z5--z6; % draw bottom horizontal piece
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward double arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"020",18u#,v_center(spread#+.48asc_height#)); adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis; x1-.5rule_thickness=hround u;
+rt x0=hround(w-u); y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0]; numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p; path p;
+p=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l--z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p shifted (x3l-x0,0);
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward double arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"021",18u#,v_center(spread#+.48asc_height#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p;
+p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+x2=xpart point t of p;
+path p; p=z0..{z4-z9}z4l--subpath (0,t)
+of\\(z4r{z9-z4}..z6r)
+ --z2l--z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % second arrowhead
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p shifted (x3r-x0,0);
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward double arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"022",18u#,v_center(spread#+.96asc_height#));
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft
+x0=hround u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t; path p;
+p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p; % re-use p
+p=z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (0,y2-y4+eps); filldraw p; % top arrow
+p:= p shifted (0,y4-y3-eps); filldraw p; % bottom arrow
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Rightward double arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"023",18u#,v_center(spread#+.96asc_height#));
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt
+x0=hround(w-u); y3-y0=y0-y4=.24asc_height+eps;
+x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p; p=z0..{z4-z9}z4r--subpath (0,t)
+of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (0,y2-y4+eps); filldraw p; % top
+p:=p shifted (0,y4-y3-eps); filldraw p; %bottom
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Double upward arrow";
+beginchar(oct"024",15u#,asc_height#,asc_depth#); italcorr
+.76asc_height#*slant+.5crisp#-u#; adjust_fit(0,0); pickup
+crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90); lft
+x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=3u+eps;
+y3=y4=y0-.24asc_height-eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of
+p;
+path p; p=z0..{z4-z9}z4r--subpath (0,t)
+of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (x0-x4-eps,0); filldraw p; % left arrow
+p:=p shifted (x4-x3+eps,0); filldraw p;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Double downward arrow";
+beginchar(oct"025",15u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,0);
+pos2(rule_thickness,0); pos3(bar,90); pos4(bar,90); lft
+x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of
+p;
+path p; p=z0..{z4-z9}z4l--subpath (0,t)
+of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (x0-x4-eps,0); filldraw p; % left arrow
+p:=p shifted (x4-x3+eps,0); filldraw p;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+%%
+cmchar "Upward rightward harpoon";
+beginchar(oct"026",7.5u#,asc_height#, asc_depth#);
+%% see page E431
+adjust_fit(0,0); pickup crisp.nib;
+x0=x1=x2; lft x1l=hround(.5w-.5rule_thickness);
+y1-.5rule_thickness=-d; pos1(rule_thickness,0);
+pos2(rule_thickness,0); pos3(bar,-90); pos4(bar,-90);
+top y0=vround h;
+x3-x0=x0-x4=.24asc_height+eps; y3=y4=y0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p;
+p=z4r..{y0-y4,2(x0-x4)}z6r;
+t=xpart (p intersectiontimes ((x2l,0)--(x2l,h)));
+y2=ypart point t of p;
+filldraw z0--(x2l,y0)---z1l..z1r---z2r
+ ..subpath(t,0) of (z3r..{x0-x3,2(y0-y3)}z5r)
+ --z3l..{x0-x3,2(y0-y3)}cycle;
+picture v; v:=currentpicture;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Downward rightward harpoon";
+beginchar(oct"027",7.5u#,asc_height#,asc_depth#);
+adjust_fit(0,0);
+currentpicture:=v
+reflectedabout((0,.5(h-d)*aspect_ratio+eps),(w,.5(h-d)*aspect_ratio+eps));
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Upward leftward harpoon";
+beginchar(oct"030",7.5u#,asc_height#, asc_depth#);
+adjust_fit(0,0);
+currentpicture:=
+v reflectedabout((w/2+eps,-d),(w/2+eps,h));
+picture v; v:=currentpicture;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Downward leftward harpoon";
+beginchar(oct"031",7.5u#,asc_height#,asc_depth#);
+adjust_fit(0,0);
+currentpicture:=v
+reflectedabout((0,.5(h-d)*aspect_ratio+eps),(w,.5(h-d)*aspect_ratio+eps));
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Rightward arrow with tail";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"032",20u#,v_center(spread#+.48asc_height#));
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround 1.5u; rt
+x0=hround(w-3u); y3-y0=y0-y4=.24asc_height+eps;
+x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p;
+p=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+path arrow;
+arrow=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle;
+p:=p shifted (2u,0); filldraw p;
+arrow:=arrow shifted (-13u+bar,0); filldraw arrow;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward arrow with tail";
+beginchar(oct"033",20u#,v_center(spread#+.48asc_height#));
+adjust_fit(0,0); pickup crisp.nib;
+p:= p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+arrow:= arrow reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+filldraw p; filldraw arrow;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward-rightward parallel arrows";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"034",18u#,v_center(spread#+.96asc_height#));
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft
+x0=hround u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0]; numeric t; path p;
+p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p, q; % re-use p
+p=z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (0,.5[y3,y4]+eps); filldraw p; % top arrow
+p:= p shifted (0,y4-y3);
+q:= p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+p:=p shifted (0,y3-y4+eps); % restore p's position
+filldraw q; % bottom arrow
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Rightward-leftward parallel arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"035",18u#,v_center(spread#+.96asc_height#));
+adjust_fit(0,0); pickup crisp.nib;
+p:=p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+q:=q reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+filldraw p; filldraw q;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Leftward shift";
+beginchar(oct"036",9u#,asc_height#, 0);
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=.8h; x1+.5rule_thickness=hround(w-u); lft x0=hround
+u; y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0];
+z10=z1; x11=x10; y11-.5rule_thickness =vround -d;
+pos10(rule_thickness,0); pos11(rule_thickness,0);
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+x2=xpart point t of p;
+path p;
+p=z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+--z2l---(x10l,y1l)--z11l..z11r---{up}z10r..{left}z1r---z2r--subpath
+(t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and bent stem
+filldraw p;
+penlabels(0,1,2,3,4,5,6,9,10); endchar;
+
+cmchar "Rightward shift";
+beginchar(oct"037",9u#,asc_height#, 0);
+adjust_fit(0,0); pickup crisp.nib;
+p:=p reflectedabout((w/2+eps,-d),(w/2+eps,h));
+filldraw p;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+compute_spread(.45x_height#,.55x_height#);
+cmchar "Rightward squiggly arrow";
+beginchar(oct"040",18u#,v_center(spread# +
+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1-.5rule_thickness=hround 11u; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p;
+p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p;
+p=z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p;
+%% now for squiggle
+x12-x11=x13-x12=x14-x13=x15-x14=x16-x15=x1-x16;
+x1-x11=hround (w-2u-x0+x1-.5rule_thickness);
+y11=y13=y15=y0; y12=y16=.5[y0,y3];
+y14=.5[y4,y0];
+pickup pencircle scaled rule_thickness;
+draw z11---z12---z14---z16---z1;
+penlabels(0,1,2,3,4,5,6,9,11,12,13,14,15,16); endchar;
+
+compute_spread(.45x_height#,.55x_height#);
+cmchar "Leftward rightward squiggly arrow";
+beginchar(oct"041",25u#,v_center(spread# +
+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+arrow_length=4.5u+eps;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1+.5rule_thickness=hround(u+arrow_length);
+lft x0=hround u; y3-y0=y0-y4=.24asc_height+eps;
+x3=x4=x0+3u+eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p; p=z0..{z4-z9}z4l--subpath (0,t)
+of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p; % left arrow
+p:=p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+filldraw p; % right arrow
+z10=z1 reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+y11=y15=y19=.5[y0,y3]; y13=y17=.5[y4,y0];
+y12=y14=y16=y18=y10;
+x11-x1=x12-x11=x13-x12=x14-x13=x15-x14=x16-x15=x17-x16=x18-x17=
+x19-x18=x10-x19;
+pickup pencircle scaled rule_thickness;
+draw z1---z11---z13---z15---z17---z19---z10;
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+cmchar "Leftward curly arrow";
+beginchar(oct"042",18u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric arrow_length; arrow_length=.66*(w-2u+eps);
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0); y0=y1=y2=math_axis;
+x1+.5rule_thickness=hround(u+arrow_length);
+lft x0=hround u; y3-y0=y0-y4=.24asc_height+eps;
+x3=x4=x0+3u+eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p; p=z0..{z4-z9}z4l--subpath (0,t)
+of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+filldraw p; % left arrow
+z10=z1; x13=x14=hround(u+arrow_length+eps); y13=y1; y14=-o;
+x12=.5[x11,x13]; y12=h; rt x11=hround(w-u); y11=.5[y10,y12];
+pickup pencircle scaled rule_thickness;
+path q;
+q=z10{right}..tension0.8..{up}z11..tension0.8..{left}z12
+..tension0.8..{down}z13--z14;
+draw q;
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14); endchar;
+
+cmchar "Rightward curly arrow";
+beginchar(oct"043",18u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+p:=p reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+filldraw p;
+pickup pencircle scaled rule_thickness;
+q:=q reflectedabout ((w/2+eps,-d),(w/2+eps,h));
+draw q; endchar;
+
+numeric circ_diam; % diameter of little circle
+circ_diam=2.5u;
+cmchar "Equals circle sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"044",14u#,v_center(4spread#+rule_thickness#+2.5u#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis; draw z1--z2; % upper bar
+draw z3--z4; % lower bar %
+penpos11(rule_thickness,90); penpos13(rule_thickness,-90);
+penpos12(rule_thickness,180); penpos14(rule_thickness,0);
+x12r=hround(.5w-.5circ_diam-rule_thickness); %
+x14r=w-x12r; x11=x13=.5w; y11l=y13l+circ_diam;
+y12=y14=.5[y11,y13]; y13r=vround(y1+.8spread); %
+penstroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
+ & pulled_arc.e(13,14) & pulled_arc.e(14,11) & cycle; %
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+
+
+cmchar "Follows or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % spread of similarity sign
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % spread between symbols
+compute_spread(5/4 x_height#,3/2 x_height#); % spread of follows sign
+beginchar(oct"045",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{u,-spread}...{right}z2; %upper `diagonal'
+draw z3{u,spread}...{right}z2; % lower diagonal
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+penlabels(1,2,3,11,12,13,14); endchar;
+
+cmchar "Greater than or similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"046",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Greater than or approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread; % spread between similarities
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"047",14u#,v_center(spread#+2spread#''+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread';
+bot y3- top y13 = spread'';
+path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
+draw p; draw p shifted (0,-spread'');
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Multimap symbol";
+beginchar(oct"050",20u#,.8asc_height#,0#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+numeric circ_diam; circ_diam=5u;
+y2=math_axis; y8=y2+.5circ_diam; rt x2=w-u;
+x6=x2-circ_diam;
+circle_points; draw_circle;
+x9=u+.5rule_thickness; y9=y10=y2; x10=x6-.5rule_thickness;
+draw z9---z10;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Therefore";
+beginchar(oct"051",12u#,asc_height#,0);
+adjust_fit(0,0);
+lft x1=hround 1.5u; x2=w-x1; bot y1=-o; y2=y1;
+z3-z1=(z2-z1)rotated60;
+fill fullcircle scaled dot_size shifted z1;
+% left bottom dot
+fill fullcircle scaled dot_size shifted z2;
+% rigth bottom
+fill fullcircle scaled dot_size shifted z3; % top dot
+penlabels(1,2,3); endchar;
+
+
+cmchar "Because";
+beginchar(oct"052",12u#,asc_height#,0);
+adjust_fit(0,0);
+lft x1=hround 1.5u; x2=w-x1; y2=y1;
+x3=w/2; y3=-o;
+z3-z1=(z2-z1)rotated-60;
+fill fullcircle scaled dot_size shifted z1; % top left dot
+fill fullcircle scaled dot_size shifted z2;
+% top right dot
+fill fullcircle scaled dot_size shifted z3; % bottom dot
+penlabels(1,2,3); endchar;
+
+cmchar "Equals-and-dots sign";
+beginarithchar(oct"053");
+compute_spread(.45x_height#,.55x_height#);
+pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; draw z3--z4; % draw bars
+pickup light_rule.nib;
+x5=x6=x7=x8=hround w/2+eps; z5=z6; z7=z8;
+penpos5(.8dot_size,0); penpos6(.8dot_size,90);
+penpos7(.8dot_size,0); penpos8(.8dot_size,90);
+y5-y1=y3-y7=spread;
+dot(5,6); dot(7,8); % draw dots
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Equals sign with triangle";
+beginchar(oct"054", 14u#,12u#+math_axis# ,6u#-math_axis#);
+compute_spread(.45x_height#,.55x_height#);
+pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; draw z3--z4; % draw bars
+numeric tri_side; % length of equilateral triangle
+tri_side=7u;
+x6-x5=tri_side; .5[x5,x6]=w/2; y5=y6; y5-y1=.8spread;
+%top y7=body_height;x7=w/2;
+z7-z5=(z6-z5) rotated 60;
+draw z5--z6--z7--cycle;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+cmchar "Precedes or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.55x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"055",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{-u,-spread}...{left}z2; %upper `diagonal'
+draw z3{-u,spread}...{left}z2; % lower diagonal
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+penlabels(1,2,3,11,12,13,14); endchar;
+
+cmchar "Less than or similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.55x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"056",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Less than or approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread; % spread between similarities
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"057",14u#,v_center(spread#+2spread#''+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread';
+bot y3- top y13 = spread'';
+path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
+draw p; draw p shifted (0,-spread'');
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Equal or less than sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"060",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; y8-y1=y9-y2=spread'; top y8=h;
+x2=x9; x1=x8;
+draw z1--z2--z3; % diagonals
+draw z8--z9; % equal sign
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Equal or greater than sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"061",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x9; x1=x8;
+y2=.5[y1,y3]; y8-y1=y9-y2=spread'; top y8=h;
+draw z1--z2--z3; % diagonals
+draw z8--z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Less than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"066",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h;
+x2=x9; x1=x8;
+draw z1--z2--z3; % diagonals
+draw z8--z9; % equal sign
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Greater than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"076",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x9; x1=x8;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h;
+draw z1--z2--z3; % diagonals
+draw z8--z9;
+penlabels(1,2,3,8,9); endchar;
+cmchar "Less than or greater than sign";
+compute_spread(.4x_height#,.5x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"067",14u#,v_center(2spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround w-1.5u+eps; x1=x3=x5; x2=x4=x6=w-x1;
+y1-y3=spread; top y1=h; y2-y4=spread'; y4-y6=spread;
+y2=.5[y1,y3]; y5=.5[y4,y6];
+draw z1--z2--z3; draw z4--z5--z6;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Greater than or less than sign";
+compute_spread(.4x_height#,.5x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(1.111 x_height#,1.333x_height#);
+beginchar(oct"077",14u#,v_center(2spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3=x5; x2=x4=x6=w-x1;
+y1-y3=spread; top y1=h; y2-y4=spread'; y4-y6=spread;
+y2=.5[y1,y3]; y5=.5[y4,y6];
+draw z1--z2--z3; draw z4--z5--z6;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Equals or precedes sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"062",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround(1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y8-bot y1=top y9-bot y2=spread'; bot y3=0;
+x2=x9;x8=x1-2u;
+draw z1{-u,-spread}...{left}z2;
+draw z3{-u, spread}...{left}z2;
+draw z8{-u,-spread}...{left}z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Equals or follows sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"063",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y8-bot y1=top y9-bot y2=spread'; bot y3=0;% top y8=h;
+x2=x9;x8=x1+2u;
+draw z1{u,-spread}...{right}z2;
+draw z3{u, spread}...{right}z2;
+draw z8{u,-spread}...{right}z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Precedes or curvy equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"064",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround(1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y3-bot y8=top y2-bot y9=spread'; bot y3=0;
+x2=x9;x8=x1-2u;
+%for i=1 upto 3: %lower entire character
+%y[i]:=y[i]-spread'; endfor
+%for i=8 upto 9:
+%y[i]:=y[i]-spread'; endfor
+draw z1{-u,-spread}...{left}z2;
+draw z3{-u, spread}...{left}z2;
+draw z8{-u, spread}...{left}z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Follows or curvy equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"074",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y3-bot y8=top y2-bot y9=spread'; bot y3=0;
+x2=x9;x8=x1+2u;
+%for i=1 upto 3: %lower entire character
+%y[i]:=y[i]-spread'; endfor
+%for i=8 upto 9:
+%y[i]:=y[i]-spread'; endfor
+draw z1{u,-spread}...{right}z2;
+draw z3{u, spread}...{right}z2;
+draw z8{u, spread}...{right}z9;
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Less than or (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"065",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9; % equal sign
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Greater than or (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"075",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
+y7-y9=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9;
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Reverse prime symbol (superscript only)";
+beginchar(oct"070",3u#+max(1.75u#,curve#+2(curve#-stem#)),
+ .8asc_height#,0); adjust_fit(0,0); pickup fine.nib; numeric
+light_stem,heavy_stem; light_stem=hround .5[vair,stem];
+heavy_stem=hround(bold+2dw); x1-.5heavy_stem=hround(.25u);
+y1+.5heavy_stem=h; x2+.5light_stem=hround (w-.5u);
+y2=1/12asc_height;
+numeric theta; theta=angle(z1-z2)-90;
+pos1(heavy_stem,theta); pos2(light_stem,theta);
+filldraw circ_stroke z1e--z2e; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "short axis line";
+beginchar(oct"071",9u#,27/7u#+math_axis#,27/7u#-math_axis#); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2;
+labels(1,2); endchar;
+
+cmchar "Dotted (right-left) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"072",14u#,v_center(3spread#+2rule_thickness#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis; draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+pickup tiny.nib;
+x6=x5=x2; y6=y5=y1+spread;
+pos5(dot_size,0); pos6(dot_size,90);
+x7=x8=x3; y7=y8=y4-spread;
+pos7(dot_size,0); pos8(dot_size,90);
+dot(5,6); dot(7,8);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Dotted (left-right) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"073",14u#,v_center(3spread#+2rule_thickness#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+pickup tiny.nib;
+x6=x5=x1; y6=y5=y1+spread;
+pos5(dot_size,0); pos6(dot_size,90);
+x7=x8=x4; y7=y8=y4-spread;
+pos7(dot_size,0); pos8(dot_size,90);
+dot(5,6); dot(7,8);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Square subset sign"; % taken from vol E, p533
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"100",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x1=x4=hround(w-x2)+eps; x3=x2; y1-y4=spread; y2=y1; y3=y4;
+top y1=h; draw z1--z2--z3--z4; % bars and stem x8=x1;
+penlabels(1,2,3,4); endchar;
+
+cmchar "Square superset sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"101",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x2=hround(w-1.5u); x1=x4=hround w-x2-eps; x3=x2;
+y1-y4=spread; y2=y1; y3=y4; top y1=h; draw z1--z2--z3--z4;
+% bars and stem
+penlabels(1,2,3,4); endchar;
+
+cmchar "Rightward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"102",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+draw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Leftward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"103",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+draw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Rightward isosceles triangle with lower bar";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"104",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+x4=x2; x5=x1; y3-y4=spread'; y5=y4;
+draw z1--z2--z3--cycle; draw z4--z5;
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Leftward isosceles triangle with lower bar";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"105",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+x4=x2; x5=x1; y3-y4=spread'; y5=y4;
+draw z1--z2--z3--cycle; draw z4--z5;
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Large, filled, 5-pointed star";
+beginchar(oct"106",asc_height#+desc_depth#,asc_height#,desc_depth#);
+adjust_fit(.5u#, .5u#); pickup tiny.nib;
+numeric theta; theta=360/5;
+x0=good.x .5w; y0=good.y .5[h, -d]; x1=x0; top y1=h;
+for n=2 upto 5: z[n]=z0+(z1-z0) rotated((n-1)*theta); endfor
+% z0 is the `origin'
+% z1 thru z5 are the points; z1 at the top going
+% counterclockwise
+z6=(z1--z3)intersectionpoint(z2--z5);
+for n=7 upto10: z[n]=z0+(z6-z0)rotated((n-1)*theta); endfor
+filldraw z1--z6--z2--z7--z3--z8--z4--z9--z5--z10--cycle;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Vertical overlapping slurs";
+beginchar(oct"107",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup fine.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+y2=.5[h,-d]; x2r=hround w-1.5u; pos2(light_stem,0);
+x1-.5hair=hround w-x2; x3=x1; y1+.5hair=h; y3-.5hair=-d;
+numeric theta; theta= angle((z2-z1)xscaled3);
+numeric theta'; theta'=angle((z3-z2)xscaled3);
+pos1(hair, theta+90); pos3(hair, theta'+90);
+path p;
+p=z1l{dir theta}...z2l...{dir theta'}z3l
+ ..z3r{-dir theta'}...z2r...{-dir theta}z1r..cycle;
+filldraw p;
+p:=p reflectedabout((.5w,-d),(.5w,h)); filldraw p;
+penlabels(1,2,3); endchar;
+
+cmchar "Filled rightward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"111",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+filldraw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Filled leftward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"112",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h; y2-y3=spread; y1=.5[y2,y3];
+filldraw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+ cmchar "short axis right arrow";
+beginchar(oct"113",9u#,27/7u#+math_axis#,27/7u#-math_axis#);
+pickup rule.nib;
+penpos1(.25rule_thickness,90); penpos2(.25rule_thickness,90); penpos3(bar,0);
+penpos4(bar,0);
+y0=y1=y2=math_axis;
+x1=hround 1.5u-eps;
+rt x0=w-x1;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+penpos5(bar,angle(z4-z0)); z5l=z0; penpos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "short axis left arrow";
+beginchar(oct"114",9u#,27/7u#+math_axis#,27/7u#-math_axis#);
+pickup rule.nib;
+penpos1(.25rule_thickness,90); penpos2(.25rule_thickness,90); penpos3(bar,0);
+penpos4(bar,0);
+y0=y1=y2=math_axis; x0=hround 1.5u-eps;
+rt x1=w-x0;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+penpos5(bar,angle(z4-z0)); z5l=z0; penpos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+
+cmchar "Filled downward triangle";
+beginchar(oct"110",.8asc_height#+3u#,.8asc_height#,0pt#);
+adjust_fit(0,0); pickup rule.nib;
+y2=0; lft x1=1.5u;
+x3=hround w-x1;
+y1=y3=vround h-y2; x2=.5[x1,x3];
+filldraw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Downward triangle";
+beginchar(oct"117",.8asc_height#+3u#,.8asc_height#,0pt#);
+adjust_fit(0,0); pickup rule.nib;
+y2=0; lft x1=1.5u;
+x3=hround w-x1;
+y1=y3=vround h-y2; x2=.5[x1,x3];
+draw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Upward triangle";
+beginchar(oct"115",.8asc_height#+3u#,.8asc_height#,0pt#);
+adjust_fit(0,0); pickup rule.nib;
+y2=h; lft x1=1.5u;
+x3=hround w-x1;
+y1=y3=vround h-y2; x2=.5[x1,x3];
+draw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Filled upward triangle";
+beginchar(oct"116",.8asc_height#+3u#,.8asc_height#,0pt#);
+adjust_fit(0,0); pickup rule.nib;
+y2=h; lft x1=1.5u;
+x3=hround w-x1;
+y1=y3=vround h-y2; x2=.5[x1,x3];
+filldraw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Egg sandwich";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"120",14u#,asc_height#,0);
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4;
+y1-y3=spread;
+.5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+pickup tiny.nib;
+x5=x6=hround w/2; bot y5=bot y1; top y6=top y3;
+y7=y8=math_axis;x8-x7=y5-y6;
+x6=.5[x7,x8];
+draw z5{right}..z8..z6{left}..z7..cycle;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Stacked symbols: <, bar, >";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.98 x_height#,1.176 x_height#);
+beginchar(oct"121",14u#,v_center(2spread#'+2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+y1=y2; lft x1=hround 1.5u-eps; rt x2=w-x1;
+x4=x6=x8=x1; x3=x5=x7=x2;
+y5-y1=y1-y6=spread';top y3=h; y3-y5=spread;
+y6-y8=spread;
+y7=.5[y6,y8]; y4=.5[y3,y5];
+draw z3--z4--z5; draw z6--z7--z8; draw z1--z2;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Stacked symbls: greater than, bar, less than";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.98 x_height#,1.176 x_height#);
+beginchar(oct"122",14u#,v_center(2spread#'+2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+y1=y2; lft x2=hround 1.5u-eps; rt x1=w-x2;
+x4=x6=x8=x1; x3=x5=x7=x2;
+y5-y1=y1-y6=spread';top y3=h; y3-y5=spread;
+y6-y8=spread;
+y7=.5[y6,y8]; y4=.5[y3,y5];
+draw z3--z4--z5; draw z6--z7--z8; draw z1--z2;
+numeric bar_ht; bar_ht=y1; %save height of bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Stacked symbls: less than, =, greater than";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.98 x_height#,1.176 x_height#);
+beginchar(oct"123",14u#,v_center(3spread#'+2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1;
+x1'=x1; x2=x2'; x4=x6=x8=x1;
+x3=x5=x7=x2;
+y1=y2; y1'=y2'; y2-y2'=spread'; bot y2=math_axis+.5spread';
+draw z1--z2; draw z1'--z2';
+y3-y5=y6-y8=spread;
+y5-y2=y2'-y6=spread';
+y7=.5[y6,y8]; y4=.5[y3,y5];
+draw z3--z4--z5; draw z6--z7--z8;
+penlabels(1,1',2,2',3,4,5,6,7,8); endchar;
+
+cmchar "Stacked symbols: greater than, =, less than";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.98 x_height#,1.176 x_height#);
+beginchar(oct"124",14u#,v_center(3spread#'+2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=w-x2;
+x1'=x1; x2=x2'; x4=x6=x8=x1;
+x3=x5=x7=x2;
+y1=y2; y1'=y2'; y2-y2'=spread'; bot y2=math_axis+.5spread';
+draw z1--z2; draw z1'--z2';
+y3-y5=y6-y8=spread;
+y5-y2=y2'-y6=spread';
+y7=.5[y6,y8]; y4=.5[y3,y5];
+draw z3--z4--z5; draw z6--z7--z8;
+penlabels(1,1',2,2',3,4,5,6,7,8); endchar;
+
+cmchar "Triple rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"126",18u#,v_center(2spread#+.5asc_height#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; penpos1(rule_thickness,90);
+penpos2(rule_thickness,90); penpos3(1.5bar,0); penpos4(1.5bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=u;
+rt x0=hround (w-u); x0'=x0''=x0; x1'=x1''=x1;
+y1'=y1+spread;y1''=y1-spread; y0'=y1'; y0''=y1'';
+draw z0'--z1'; draw z0''--z1''; % draw bars
+pickup crisp.nib;
+y3-y0'=y0''-y4=.24asc_height+eps; x3=x4=x0-6u-eps;
+penpos5(bar,angle(z0-z4)); z5r=z0; penpos6(bar,angle(z0-z3));
+z6r=z0; z9=.381966[.5[z3,z4],z0]; erase filldraw
+z0..{z3-z9}z3--(w,y3)--(w,y4)--z4{z9-z4}..z0& cycle;
+numeric t; path p;
+p=z4l{z9-z4}..z6l; t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6l)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5l)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,0',0'',1',1''); endchar;
+
+
+cmchar "Triple leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"127",18u#,v_center(2spread#+.5asc_height#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; penpos1(rule_thickness,90);
+penpos2(rule_thickness,90); penpos3(1.5bar,0); penpos4(1.5bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft
+x0=hround u; x0'=x0''=x0; x1'=x1''=x1;
+y1'=y1+spread;y1''=y1-spread; y0'=y1'; y0''=y1''; draw
+z0'--z1'; draw z0''--z1''; % draw bars
+pickup crisp.nib;
+y3-y0'=y0''-y4=.24asc_height+eps; x3=x4=x0+6u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0));
+z6l=z0; z9=.381966[.5[z3,z4],z0]; erase filldraw
+z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0& cycle; numeric t; path p;
+p=z4r{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,0',0'',1',1''); endchar;
+
+cmchar "Check mark"; beginchar(oct"130",15u#,asc_height#,
+0); adjust_fit(0,0); pickup cal.nib;
+lft x1=hround(1.5u);y1=math_axis; y2=0; x2=hround(w/3);
+x3=w-x1; y3=asc_height-o;
+x4=w-1.5x2; y4=asc_height;
+draw z1--z2{z4-z2}..z3;
+penlabels(1,2,3,4);
+endchar;
+
+cmchar "Vee on bar";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"131",11u#,asc_height#, desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=lft x4=hround u; x3=x5=w-x1; x2=hround(w/2);
+bot y4=bot y5=0; y2=y4+spread; top y1=top y3=h+o;
+draw z1--z2--z3; draw z4--z5;
+penlabels(1,2,3,4,5);
+endchar;
+
+cmchar "Bar on mountain";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"132",11u#,asc_height#, desc_depth#); adjust_fit(0,0);
+pickup rule.nib;
+lft x1=lft x4=hround u; x3=x5=w-x1; x2=hround(w/2);
+top y4=top y5=h+o; y2=y4-spread; bot y1=bot y3=0;
+draw z1--z2--z3; draw z4--z5;
+numeric t; % t is used in char"133, = on mountain
+t=y2-y3;
+penlabels(1,2,3,4,5);
+endchar;
+
+cmchar "Equal sign on mountain";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"133",11u#,body_height#, desc_depth#); adjust_fit(0,0);
+pickup rule.nib;
+lft x1=lft x4=lft x6=hround u; x3=x5=x7=w-x1; x2=hround(w/2);
+y4=y5; y6=y7; y6-y4=y4-y2=spread; top y4=asc_height+o-.5spread;
+y2-y1=t; % t is defined in char "132
+y1=y3;
+draw z1--z2--z3; draw z4--z5; draw z6--z7;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+cmchar "Angle sign (simple)";
+beginchar(oct"134",13u#,asc_height#, 0);
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround u; x1=x3=w-x2;
+bot y2=bot y3=0; top y1=h;
+draw z1--z2--z3;
+penlabels(1,2,3);
+endchar;
+
+cmchar "Angle sign (with small arc)";
+beginchar(oct"135",13u#,asc_height#, 0);
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround u; x1=x3=w-x2;
+bot y2=bot y3=0; y1=h;
+draw z1--z2--z3;
+path p; p=quartercircle scaled 15u;
+numeric t; t= xpart(p intersectiontimes (z1--z2));
+draw subpath (0,t) of p;
+penlabels(1,2,3);
+endchar;
+
+cmchar "Eye-like angle sign (with small arc)";
+beginchar(oct"136",13u#,v_center(.75body_height#));
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround u; x1=x3=w-x2;
+y2=math_axis; y2=.5[y1,y3]; y1-y3=.75body_height;
+draw z1--z2--z3;
+path p; p=quartercircle scaled 17u;
+numeric t; t= xpart(p intersectiontimes ((z1--z2)shifted
+-z2));
+draw subpath (0,t) of p shifted z2;
+draw subpath (0,t) of p shifted z2
+reflectedabout(z2,(w,y2));
+penlabels(1,2,3);
+endchar;
+
+cmchar "Proportional sign made of circles";
+beginchar(oct"137",14u#,asc_height#,0);
+adjust_fit(0,0); pickup pencircle scaled rule_thickness;
+numeric radius; radius:=w-2u; radius:=radius/3;
+radius:=radius-.5rule_thickness;
+x2=hround w-u; x1=w-x2+radius;
+y1=y2=math_axis;
+pair m; m=(rule_thickness,0);
+draw fullcircle scaled 2radius shifted (z1+.5m);
+draw (halfcircle scaled 2radius rotated 90) shifted
+(z2-.5m);
+penlabels(1,2);
+endchar;
+
+cmchar "Simple slur below (smile)";
+beginchar(oct"140",14u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; y1=vround(math_axis+.25x_height);
+x3=w-x1; y3=y1; penpos2(rule_thickness,90); x2=.5w;
+y2l=good.y -(.25x_height-math_axis);
+numeric theta; theta=angle((z2-z1)yscaled 3);
+penpos1(rule_thickness,90+theta);
+penpos3(rule_thickness,90-theta);
+draw z1{dir theta}...z2...{dir-theta}z3;
+penlabels(1,2,3); endchar;
+
+cmchar "Simple slur above (frown)";
+beginchar(oct"141",14u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; y1=vround(math_axis-.25x_height);
+x3=w-x1; y3=y1;
+penpos2(rule_thickness,90); x2=.5w; y2=good.y(.25x_height+math_axis);
+numeric theta; theta=angle((z2-z1)yscaled 3);
+penpos1(rule_thickness,90+theta);
+penpos3(rule_thickness,90-theta);
+draw z1{dir theta}...z2...{dir-theta}z3; penlabels(1,2,3);
+endchar;
+
+cmchar "Very proper subset sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+spread':=spread'-rule_thickness;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"142",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+autorounded; lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis; x4=x5=.5w; y4=y1;
+y5=y3; draw z1---z4...z2{down}...z5---z3; % arc and bars
+x1'=x3'=x1; y1-y1'=y3'-y3=spread';
+x4'=x5'=x4; y4-y4'=y5'-y5=spread';
+y2'=y2; x2'-x2=spread';
+draw z1'--z4'..z2'{down}..z5'--z3';
+penlabels(1,2,3,4,5,1',2',3',4',5'); endchar;
+
+cmchar "Very proper superset sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+spread':=spread'-rule_thickness;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"143",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+autorounded; lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]=math_axis; x4=x5=.5w; y4=y1;
+y5=y3; draw z1---z4...z2{down}...z5---z3; % arc and bars
+x1'=x3'=x1; y1-y1'=y3'-y3=spread';
+x4'=x5'=x4; y4-y4'=y5'-y5=spread';
+y2'=y2; x2-x2'=spread';
+draw z1'--z4'..z2'..z5'--z3';
+penlabels(1,2,3,4,5,1',2',3',4',5'); endchar;
+
+cmchar "Parallel set union sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+spread':=spread'-rule_thickness;
+beginchar(oct"144",12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y1=good.y h+o; bot y3=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cup
+y1'=y5'=y1; x1'-x1=x5-x5'=spread';
+y2'=y4'=y2+u; x2'-x2=x4-x4'=spread';
+x3'=x3; y3'-y3=spread';
+draw z1'..{down}z2'..z3'{right}..z4'{up}..z5';
+penlabels(1,2,3,4,5,1',2',3',4',5'); endchar;
+
+cmchar "Parallel set intersection sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+spread':=spread'-rule_thickness;
+beginchar(oct"145",12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#; adjust_fit(0,0);
+pickup rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y3=good.y h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+y1'=y5'=y1; x1'-x1=x5-x5'=spread';
+y2'=y4'=y2-u; x2'-x2=x4-x4'=spread';
+x3'=x3; y3-y3'=spread';
+draw z1'..{up}z2'..z3'{right}..z4'{down}..z5';
+penlabels(1,2,3,4,5,1',2',3',4',5'); endchar;
+
+cmchar "Subset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"152",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
+% arc and bars
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+penlabels(1,2,3,4,5,8,9,8',9'); endchar;
+
+cmchar "Superset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"153",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
+z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1;
+x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Christmas tree symbol";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"146",spread#+4u#,.8asc_height#,0);
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+autorounded;
+lft x1=1.5u; x3=w-x1; x2=.5[x1,x3];
+bot y1=-d-o; y3=y1; top y2=h+o;
+draw z1{spread,u}...{up}z2;
+draw z3{-spread,u}...{up}z2;
+penlabels(1,2,3); endchar;
+
+cmchar "Inverted Christmas tree symbol";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"147",spread#+4u#,.8asc_height#,0);
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+autorounded;
+lft x1=1.5u; x3=w-x1; x2=.5[x1,x3];
+top y1=h+o; y3=y1; bot y2=-d-o;
+draw z1{spread,-u}...{down}z2;
+draw z3{-spread,-u}...{down}z2;
+penlabels(1,2,3); endchar;
+
+cmchar "Stylized lambda symbol";
+beginchar(oct"150",14u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=u; top y1=h;
+rt x2=w-u; bot y2=-o;
+draw z1--z2;
+z3=.5[z1,z2];
+x4=x1; y4=y2; draw z3--z4;
+penlabels(1,2,3,4); endchar;
+
+cmchar "Reflected stylized lambda symbol";
+beginchar(oct"151",14u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=u; bot y1=-o;
+rt x2=w-u; top y2=h;
+draw z1--z2;
+z3=.5[z1,z2];
+x4=x2; y4=y1; draw z3--z4;
+penlabels(1,2,3,4); endchar;
+
+cmchar "Sunrise symbol";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct "154",14u#,v_center(3spread#+rule_thickness#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis;
+y5=y6=y1; x7=.5[x1,x2]; x5=.3[x1,x2];
+x2-x6=x5-x1;
+y7-y1=.5(x6-x5);
+draw z1--z5{up}...z7...{down}z6--z2; % upper bar
+draw z3--z4; % lower bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Sunrise-over-water symbol";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct "155",14u#,v_center(3spread#+rule_thickness#));
+italcorr h#*slant-.5u#; adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1; y1=y2; y3=y4;
+y1-y3=spread; .5[y1,y3]=math_axis;
+y5=y6=y1; x7=.5[x1,x2]; x5=.3[x1,x2];
+x2-x6=x5-x1;
+y7-y1=.5(x6-x5);
+x5'=x5; x7'=x7; x6'=x6; y5'=y6'=y3; y3-y7'=y7-y1;
+draw z1--z5{up}...z7...{down}z6--z2; % upper bar
+draw z3--z5'{down}...z7'...{up}z6'--z4; % lower bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Much, much less sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"156",24u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup
+rule.nib; lft x2=hround u-epsilon; x1=x3=hround 12.5u-x2;
+y1-y3=ceiling 1.1spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % left diagonals
+z4-z1=z5-z2=z6-z3=z7-z4=z8-z5=z9-z6;
+x7=w-x2; y4=y1;
+draw z4--z5--z6; % middle diagonals
+draw z7--z8--z9; % right diagonals
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Much, much greater sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"157",24u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup
+rule.nib;
+lft x1=hround u-epsilon; x2=hround 12.5u-u; x1=x3;
+y1-y3=ceiling 1.1spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % left diagonals
+z4-z1=z5-z2=z6-z3=z7-z4=z8-z5=z9-z6;
+x8=w-x1; y4=y1;
+draw z4--z5--z6; % middle diagonals
+draw z7--z8--z9; % right diagonals
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Northwest right angle symbol";
+beginchar(oct"160",9u#, asc_height#, 0);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2; lft x1=u; x3=w-x1; y2=y3; top y2=h;
+y2-y1=x3-x2;
+draw z1--z2--z3;
+penlabels(1,2,3); endchar;
+
+cmchar "Northeast right angle symbol";
+beginchar(oct"161",9u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x3=u; x2=w-x3; top y3=h; y3=y2; x1=x2; x2-x3=y2-y1;
+draw z1--z2--z3;
+penlabels(1,2,3); endchar;
+
+cmchar "Southwest right angle symbol";
+beginchar(oct"170", 9u#, 7u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x2=u; x3=w-x2; x1=x2; bot y2=-o; y3=y2;
+y1-y2=x3-x2;
+draw z1--z2--z3;
+penlabels(1,2,3); endchar;
+
+cmchar "Southeast right angle symbol";
+beginchar(oct"171", 9u#, 7u#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x3=u; x2=w-x3; x1=x2; bot y2=-o; y3=y2;
+y1-y2=x2-x3;
+draw z1--z2--z3;
+penlabels(1,2,3); endchar;
+
+
+cmchar "Pitchfork symbol";
+beginchar(oct"164",12u#,asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y3=good.y .7h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+x6=x7=good.x w/2; y6=y1; y7=h+o;
+draw z6--z7; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Dotted plus sign";
+beginchar(oct"165",14u#,8u#+math_axis#,6u#-math_axis#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h-2.5rule_thickness+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+x5=x1; y5=h+o;
+pickup pencircle scaled 2.5rule_thickness; drawdot z5;
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Inverted similarity sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"166",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround(u); x2=4u; x3=w-x2; x4=w-x1;
+bot y2=bot y4=-d; top y1=top y3=h;
+draw z1{down}...z2{right}..{right}z3...{down}z4; % stroke
+labels(1,2,3,4); endchar;
+
+cmchar "Inverted similar or equal sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"167",14u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround(u); x2=4u; x3=w-x2; x4=w-x1;
+bot y2=bot y4=floor math_axis; top y1=top y3=h;
+draw z1{down}...z2{right}..{right}z3...{down}z4; % stroke
+pickup rule.nib; lft x5=hround u-eps; x6=w-x5; y5=y6=math_axis-spread;
+draw z5--z6; % bar
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Iron cross";
+beginchar(oct"172",15u#,asc_height#,0); adjust_fit(0,0);
+pickup pencircle scaled .5rule_thickness;
+numeric cross_tension; cross_tension=.9;
+numeric cross_foot; cross_foot=4u;
+y0=.5[y1,y2]; x0=hround w/2;
+x1=x2=x0; bot y1=-o; lft x1l=3.5u; x1r=w-x1l; y1l=y1r=y1;
+top y2=h+o; x2r=x1l; x2l=x1r; y2l=y2r=y2;
+y3=y4=y0; x3=x0+eps; x4+x3=2x0;
+path p; p=z1l--z1r..tension cross_tension..z3..tension cross_tension
+ ..z2l--z2r..tension cross_tension..z4..tension cross_tension..
+ z1l..cycle;
+filldraw p;
+p:=p shifted -z0; p:=p rotated 90; p:=p shifted z0;
+filldraw p;
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Bourbaki C symbol";
+beginchar(oct"173",9u#, 1.1body_height#, 0);
+adjust_fit(0,0); pickup pencircle scaled 2rule_thickness;
+lft x4=lft x5=u; x1=x2=x8=x7=w-x4; x3=x6=hround
+w/2;
+bot y6=-o; top y3=h+o; y2=y4=y3-1.8u; y5=y7=y6+1.8u;
+y1=y2-2u; y8=y7+2u;
+draw z1--z2{up}..{left}z3..{down}z4--z5{down}..z6{right}..{up}z7--z8;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Bourbaki T symbol";
+beginchar(oct "174", 10u#, x_height#, desc_depth#);
+adjust_fit(0,0); pickup pencircle scaled 2rule_thickness;
+lft x1=u; x2=w-x1; top y1=top y2=h; x3=x4=hround w/2; y3=y1;
+bot y4=-1.1d;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+cmchar "Circle-in-a-circle operator";
+beginarithchar(oct"175"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+pickup rule.nib;
+numeric x[],y[];
+lft x6=hround 4.5u; x2=w-x6; y2=math_axis;
+top y8=y2+.5(rt x2-lft x6); circle_points; draw_circle;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Asterisk-in-a-circle";
+beginarithchar(oct"176");
+pickup light_rule.nib; autorounded;
+y2=math_axis; top y8=6u+math_axis;
+lft x6=hround w/2 - 6u; x2=w-x6;
+circle_points; draw_circle; % circle
+numeric x[], y[];
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=math_axis; for d=-150 step 60 until 150:
+z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Bar-in-a-circle operator";
+beginarithchar(oct"177"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+y9=y10=y2; x9=x6+3u; x10=w-x9;
+draw z9--z10;
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/msb.mf b/Master/texmf-dist/fonts/source/public/cmbright/msb.mf
new file mode 100644
index 00000000000..a553af8b3c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/msb.mf
@@ -0,0 +1,1461 @@
+% MSB symbols, roman style [1996/07/02 v1.0 (WaS)]
+
+def char_negate(suffix c,t,b) = %c is center point; t is top point; b is bottom
+pickup rule.nib;
+w-x.t=x.b; y.t-y.c=y.c-y.b; draw z.t--z.b;
+penlabels(t,c,b); enddef;
+def char_center(suffix c) = % find center of type character
+x.c=w/2; y.c=.5[-d,h]; enddef;
+
+cmchar "Less than or not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"000",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9; % equal sign
+z.c=.5[z7,z8]; x.t=x.c; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Greater than or not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"001",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
+y7-y9=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9;
+z.c=.5[z7,z8]; x.t=x.c; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Not less than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"002",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,8,9,99,100); endchar;
+
+cmchar "Not greater than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"003",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,8,9,99,100); endchar;
+
+cmchar "Not less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"004",14u#,v_center(spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3); endchar;
+
+cmchar "Not greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"005",14u#,v_center(spread#+rule_thickness#+6u#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,99,100); endchar;
+
+cmchar "Not precedes sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"006",14u#,v_center(spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-epsilon; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1{-u,-spread}...{left}z2; % upper diagonal
+draw z3{-u,spread}...{left}z2; % lower diagonal
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,99,100); endchar;
+
+cmchar "Not follows sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"007",14u#,v_center(spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-epsilon; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1{u,-spread}...{right}z2; % upper diagonal
+draw z3{u,spread}...{right}z2; % lower diagonal
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,99,100); endchar;
+
+cmchar "Less than or slanted not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"010",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9; % equal sign
+z.c=.5[z7,z8]; x.t=2/3[x.c, x3]; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Greater than or slanted not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"011",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
+y7-y9=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9;
+z.c=.5[z7,z8]; x.t=2/3[x.c, w-x3]; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Not less than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"012",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u;
+x2=x9; x1=x8;
+draw z1--z2--z3; % diagonals
+draw z8--z9; % equal sign
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Not greater than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"13",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x9; x1=x8;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u;
+draw z1--z2--z3; % diagonals
+draw z8--z9;
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,8,9); endchar;
+
+cmchar "Less than or not equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"014",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft
+x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3];
+top y1=h; draw z1--z2--z3; % diagonals
+x8=x1; x9=x2; y8=y9;
+y3-y9=spread'; draw z8--z9; % bar
+x100=w/2; y100=y8; % center point
+y101=.5[y8,y3]; x101-x100=y101-y100;
+char_negate(100,101,102);
+labels(1,2,3,8,9); endchar;
+
+cmchar "Greater than or not equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"015",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib; lft
+x1=hround 1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h; draw z1--z2--z3; % diagonals
+x8=x1;
+x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+x100=w/2; y100=y8; % center point
+y101=.5[y8,y3]; x101-x100=y101-y100;
+char_negate(100,101,102);
+labels(1,2,3,8,9); endchar;
+
+cmchar "Not precedes or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"016",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+draw z1{-u,-spread}...{left}z2; % upper diagonal
+draw z3{-u,spread}...{left}z2; % lower diagonal
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,8,9,99,100); endchar;
+
+cmchar "Not follows or equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"017",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h-3u; draw z1{u,-spread}...{right}z2; % upper diagonal
+draw z3{u,spread}...{right}z2; % lower diagonal
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,8,9,99,100); endchar;
+
+cmchar "Precedes or not approximately equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.55x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"020",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{-u,-spread}...{left}z2; %upper `diagonal'
+draw z3{-u,spread}...{left}z2; % lower diagonal
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,11,12,13,14); endchar;
+
+cmchar "Follows or not equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % spread of similarity sign
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % spread between symbols
+compute_spread(5/4 x_height#,3/2 x_height#); % spread of follows sign
+beginchar(oct"021",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1{u,-spread}...{right}z2; %upper `diagonal'
+draw z3{u,spread}...{right}z2; % lower diagonal
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,11,12,13,14); endchar;
+
+
+
+cmchar "Less than or not similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.55x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"022",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+x.c=w/2; y.c=.5[y12,y13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+
+
+cmchar "Greater than or not similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread;
+compute_spread(5/4 x_height#,3/2 x_height#);
+beginchar(oct"023",14u#,v_center(spread#'+spread#+spread#''));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread'';
+ y3-y14=spread';
+draw z11{up}...z12{right}..{right}z13...{up}z14;
+z.c=.5[z12,z13]; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+
+cmchar "Negated less than or (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"024",14u#,v_center(2spread#'+spread#+2rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h-3u;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9; % equal sign
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Negated greater than or (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"025",14u#,v_center(2spread#'+spread#+2rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h-3u;
+y7-y9=spread';
+draw z1--z2--z3; % diagonals
+draw z6--z7; draw z8--z9;
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Precedes or slanted not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"026",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; top y1=h;
+x2=x9=x7; x1=x8=x6; y7=y6; y8=y9;
+y7-y9=spread'; top y3-bot y6=spread';
+draw z1{-u,-spread}..{left}z2; % diagonals
+draw z3{-u, spread}..{left}z2;
+draw z6--z7; draw z8--z9; % equal sign
+z.c=.5[z7,z8]; x.t=2/3[x.c, x3]; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Follows or slanted not (double) equals sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"027",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x7=x9; x1=x6=x8; y6=y7; y8=y9;
+y2=.5[y1,y3]; top y3-bot y6=spread'; top y1=h;
+y7-y9=spread';
+draw z1{u,-spread}..{right}z2; % diagonals
+draw z3{u,spread}..{right}z2;
+draw z6--z7; draw z8--z9;
+z.c=.5[z7,z8]; x.t=2/3[x.c, w-x3]; y.t=2/3[y6,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,6,7,8,9); endchar;
+
+cmchar "Precedes with not approximate equality sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"030",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0);
+% now for precedes sign, using z9 (top), z10 (vertex), & z11 (bot)
+pickup rule.nib;
+lft x10= hround 1.5u-eps; x9=x11=w-x10;
+y9-y11=spread; y10=.5[y9,y11]; top y9=h;
+draw z9{-u,-spread}...{left}z10;
+draw z11{-u,spread}...{left}z10;
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread';
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+z.c=.5[z2,z7]; x.t=3/8[x.c,x4]; y.t=1/3[y2,y11];
+char_negate(c,t,b);
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+cmchar "Follows with not approximate equality sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"031",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0);
+% now for follow sign, using z9 (top), z10 (vertex), & z11 (bot)
+pickup rule.nib;
+lft x9 = hround 1.5u-eps; x10=w-x9; x11=x9;
+y9-y11=spread; y10=.5[y9,y11]; top y9=h;
+draw z9{u,-spread}...{right}z10;
+draw z11{u,spread}...{right}z10;
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread';
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+z.c=.5[z2,z7]; x.t=3/8[x.c,x4]; y.t=1/3[y2,y11];
+char_negate(c,t,b);
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+cmchar "Less than or not approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"032",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+top y13=top y11=bot y3-spread''; top y12=top y14=bot y11+spread';
+path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
+draw p; draw p shifted (0,-spread'');
+x.c=w/2; y.c=.5[y12, y13-spread'']; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Greater than or not approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"033",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3;
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi
+lft x11=hround u; x12=4u; x13=w-x12; x14=w-x11;
+bot y11=bot y13; top y12=top y14;
+top y12-bot y11=spread';
+bot y3- spread''=top y11;
+path p; p=z11{up}...z12{right}..{right}z13...{up}z14;
+draw p; draw p shifted (0,-spread'');
+x.c=w/2; y.c=.5[y12,y13-spread'']; x.t=3/8[x.c,x14]; y.t=2/3[y12,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,11,12,13,14); endchar;
+
+cmchar "Thick not similar to sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"034",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup pencircle xscaled .8rule_thickness
+yscaled 1.87rule_thickness; if vair#>.8curve#: pickup
+rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+bot y1=bot y3=-d; top y2=top y4=h;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+char_center(100); x101=w-4u; y101=y1+5u;
+char_negate(100,101,102);
+labels(1,2,3,4,99,100); endchar;
+
+
+cmchar "Not approximately equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"035",14u#,v_center(3spread#+2rule_thickness#+8u#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled
+1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi %
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+y1=y3; top y2=top y4=h-4u; top y2-bot y1=spread;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+pickup rule.nib;
+lft x5=lft x7=hround u-eps; x6=x8=w-x5;
+y5=y6=y1-spread; y7=y8=y5-spread;
+draw z5--z6; draw z7--z8; % double equal sign
+char_center(100); x101=w-3u; y101=y1+4u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,6,7,8,99,100); endchar;
+
+cmchar "45 degree angle line";
+beginchar(oct"036",16u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+bot y1 =-d-eps; .5[y1,y2]=math_axis;
+lft x1 = 0+eps =x0; % rt x2=;
+z0-z1=(z2-z1) rotated 45;
+draw z1--z2;
+labels(0,1,2); endchar;
+
+cmchar "135 degree angle line";
+beginchar(oct"037",16u#,body_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+bot y1 =-d-eps; .5[y1,y2]=math_axis;
+lft x2 = 0+eps= x0; % rt x2=;
+z0-z2=(z1-z2) rotated -45;
+draw z1--z2;
+labels(0,1,2); endchar;
+
+cmchar "Negated subset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"040",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x100=w/2; y100=.5[y3,y8]; x101=x3-2u; y101=y3+2u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Negated superset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"041",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x100=x3+2.5u; y100=.5[y8,y3]; x101=x100+2.5u; y101=y3+2u;
+y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102;
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Negated subset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"042",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
+% arc and bars
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+char_center(c); x.t=w-2.5u; y.t=h+u; char_negate(c,t,b);
+penlabels(1,2,3,4,5,8,9,8',9'); endchar;
+
+cmchar "Negated superset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"043",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
+z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1;
+x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+char_center(c); x.t=w-2.5u; y.t=h+u; char_negate(c,t,b);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Subset or not (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"044",14u#,v_center(2.33spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
+% arc and bars
+x8=x1; x9=x2;
+y8=y9; y3-y9=1.33spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+x.c=w/2; y.c=.5[y9,y9']; x.t=1/2[x.c,w]; y.t=.5[y8,y3];
+char_negate(c,t,b);
+penlabels(1,2,3,4,5,8,9,8',9'); endchar;
+
+cmchar "Superset or not (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"045",14u#,v_center(2.33spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
+z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1;
+x9=x2;
+y8=y9; y3-y9=1.33spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+x.c=w/2; y.c=.5[y9,y9']; x.t=1/2[x.c,w]; y.t=.5[y8,y3];
+char_negate(c,t,b);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Another not subset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"046",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x2=hround
+1.5u-eps; x1=x3=w-x2; y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3; draw z1---z4...z2{down}...z5---z3;
+% arc and bars
+x8=x1; x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+x.t=w-2.5u; y.t=y3+2u; x.b=.5[x2,x5]; y.b=y9'-2u; z.c=.5[z.b,z.t];
+draw z.b--z.t; labels(c,b,t);
+penlabels(1,2,3,4,5,8,9,8',9'); endchar;
+
+cmchar "Another superset or (double) equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"047",14u#,v_center(2spread#'+spread#+2rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded; lft x1=hround
+1.5u-eps; x2=w-x1; x3=x1; y1-y3=spread; y2=.5[y1,y3]; top
+y1=h; x4=x5=.5w; y4=y1; y5=y3; draw
+z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1;
+x9=x2;
+y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x9'=x9; x8'=x8; y9'=y8'; y9-y9'=spread'; draw z8'--z9';
+x.t=x5; y.t=y3+2u; x.b=2.5u; y.b=y9'-2u; z.c=.5[z.b,z.t];
+draw z.b--z.t; labels(c,b,t);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Subset or not equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"050",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+z100=.5[z8,z9]; y101=.5[y8,y3];x101-x100=y101-y100;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Superset or not equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"051",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+z100=.5[z8,z9]; y101=.5[y8,y3];x101-x100=y101-y100;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Not subset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"052",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+char_center(100); y101=y1+3u; x101=w-3u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Not superset or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"053",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h-3u;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+char_center(100); y101=y1+3u; x101=w-3u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,8,9); endchar;
+
+cmchar "Negated double vertical line (norm or cardinality)";
+beginchar(oct"054",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2; top y1=h; .5[y1,y2]=math_axis;
+x3=x4=w-x1; y3=y1; y4=y2;
+compute_spread(.45x_height#,.55x_height#); x3-x1=spread;
+draw z1--z2; draw z3--z4; % stems
+char_center(c); x.t=w; y.t=2/3h;
+char_negate(c,t,b);
+labels(1,2,3,4); endchar;
+
+cmchar "Negated vertical line";
+beginchar(oct"055",5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+x.t=w; x.b=w-x.t; y.t=2/3h; y.b=1/3h;
+draw z.b--z.t;
+labels(1,2,b,t); endchar;
+
+cmchar "Negated cute vertical bar";
+beginchar(oct"056",4u#,6u#+math_axis#,6u#-math_axis#);
+italcorr math_axis#*slant - .5u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=hround(w/2); top y1=x_height; bot y2=-o;
+draw z1--z2;
+char_center(c); x.t=w; y.t=5/8h;
+char_negate(c,t,b);
+labels(1,2); endchar;
+
+cmchar "Negated pair of cute vertical bars";
+beginchar(oct"057",7u#,6u#+math_axis#,6u#-math_axis#);
+italcorr math_axis#*slant - .5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=u; x2=x1; top y1=x_height; bot y2=-o;
+x3=w-x1; x4=x3; y3=y1; y4=y2;
+draw z1--z2; draw z3--z4;
+char_center(c); x.t=w; y.t=5/8h;
+char_negate(c,t,b);
+labels(1,2,3,4); endchar;
+
+cmchar "Negated left turnstile";
+beginchar(oct"060",11u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+.5[y1,y2]=y3=y4; x1=x2=x3;
+lft x3=hround u; x4=w-x3; top y1=h; bot y2=0;
+draw z1--z2; % stem
+draw z3--z4; % bar
+top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
+labels(1,2,3,4,b,t); endchar;
+
+cmchar "Negated forces symbol";
+beginchar(oct"061",13u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2;
+lft x5=hround u; x4=w-x5;
+compute_spread(.45x_height#,.55x_height#);
+x1=x5+spread; x1=x2=x3; x6=x5;
+draw z6--z5; draw z2--z1; draw z3--z4;
+top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
+penlabels(1,2,3,4,5,6,b,t); endchar;
+
+cmchar "Negated satisfies symbol";
+beginchar(oct"062",11u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+top y1=h; bot y2=0; y0=good.y .5[y1,y2];
+y3=vround y0+.5spread;
+y5=vround y0- .5spread; y4=y3; y6=y5;
+lft x1=hround u; x4=w-x1;
+x1=x2=x3=x5; x4=x6; x0=x1;
+draw z1--z2; % vertical line
+draw z3--z4; % draw top horizontal piece
+draw z5--z6; % draw bottom horizontal piece
+top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
+penlabels(0,1,2,3,4,5,6,b,t); endchar;
+
+cmchar "Negated forces symbol with extra bar";
+beginchar(oct"063",13u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+top y1=h; bot y2=0; y3=y4=good.y .5h; y5=y1; y6=y2;
+lft x5=hround u; x4=w-x5;
+compute_spread(.45x_height#,.55x_height#);
+x1=x5+spread; x1=x2=x3; x6=x5;
+x3'=x3; x4'=x4; y3:=y3+.5spread; y4:=y3;
+y3'=y4'=y3-spread;
+draw z6--z5; draw z2--z1; draw z3--z4;
+draw z3'--z4'; % extra bar
+top rt z.t=(w-u,h); bot lft z.b=(-u,0); draw z.t--z.b;
+penlabels(1,2,3,4,5,6,b,t); endchar;
+
+
+cmchar "Negated rightward isosceles triangle with lower bar";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"064",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
+x4=x2; x5=x1; y3-y4=spread'; y5=y4;
+draw z1--z2--z3--cycle; draw z4--z5;
+char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Negated leftward isosceles triangle with lower bar";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"065",14u#,v_center(spread#'+spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
+x4=x2; x5=x1; y3-y4=spread'; y5=y4;
+draw z1--z2--z3--cycle; draw z4--z5;
+char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Negated leftward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"066",14u#,v_center(spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; rt x2=hround(w-1.5u-eps);
+x3=x2; x1=hround(w-x2);
+top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
+draw z1--z2--z3--cycle;
+char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
+char_negate(c,t,b);
+penlabels(1,2,3); endchar;
+
+cmchar "Negated rightward pointing isosceles triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"067",14u#,v_center(spread#+rule_thickness#+6u#));
+adjust_fit(0,0); pickup rule.nib; lft x2=hround(1.5u);
+x3=x2; x1=hround(w-x2);
+top y2=h-3u; y2-y3=spread; y1=.5[y2,y3];
+draw z1--z2--z3--cycle;
+char_center(c); x.t=1/2[x.c,w]; y.t=y2+3u;
+char_negate(c,t,b);
+penlabels(1,2,3); endchar;
+
+cmchar "Negated leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"070",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+char_center(100); top y101=top y3; x101=x100+2u;
+char_negate(100,101,102);
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Negated rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"071",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+char_center(100); top y101=top y3; x101=x100+2u;
+char_negate(100,101,102);
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Negated left-and-right arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"075",18u#,
+ v_center(if monospace:.6asc_height#+fi spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis if monospace:+vround.3asc_height fi; lft x0=hround u;
+if monospace: x1+.5rule_thickness=hround(w-u) else: x1=.5w fi;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead and stem
+pos11(rule_thickness,90); pos12(rule_thickness,90); pos13(bar,0); pos14(bar,0);
+y10=y11=y12=math_axis if monospace:-vround.3asc_height fi;
+rt x10=hround(w-u);
+if monospace: x11-.5rule_thickness=hround u else: x11=.5w fi;
+y13-y10=y10-y14=.24asc_height+eps; x13=x14=x10-3u-eps;
+pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y12l)--(w,y12l))); x12=xpart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z12l---z11l..z11r---z12r--subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead and stem
+char_center(100); top y101=top y3; x101=x100+2u;
+char_negate(100,101,102);
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar;
+
+cmchar "Negated double leftward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"072",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; lft x0=hround u-eps; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+6u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead
+pickup rule.nib; x100=.5[x9,x1]; y100=y9; x101=x100+2u; top y101=top y3;
+y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Negated double rightward arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"073",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x1; x7=x8=w-x1;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; rt x0=hround(w-u)+eps; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0-6u-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(w,y3)
+ --(w,y4)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead
+pickup rule.nib; x100=.5[x9,x1]; y100=y9; x101=x100+2u; top y101=top y3;
+y101-y100=y100-y102; x101-x100=x100-x102; draw z101--z102;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Negated double left-and-right arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"074",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(if monospace: -u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x7=hround u-eps; x8=x7; x1=x2=w-x7;
+y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+draw z1--z7; draw z2--z8; % bars
+pickup crisp.nib; lft x0=hround u-o; y0=good.y math_axis;
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+5u+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(0,y3)
+ --(0,y4)--z4{z9-z4}..z0 & cycle; % erase excess at left
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y0)--(w,y0)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead
+rt x10=hround(w-u)+o; y10=good.y math_axis;
+pos13(rule_thickness,0); pos14(rule_thickness,0);
+y13=y3; y14=y4; x13=x14=x10-5u-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+erase filldraw z10..{z13-z19}z13--(w,y13)
+ --(w,y14)--z14{z19-z14}..z10 & cycle; % erase excess at right
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y10)--(w,y10)));
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead
+char_center(100); top y101=top y13; x101=x100+1.5u; char_negate(100,101,102);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,13,14,15,16,19); endchar;
+
+cmchar "Times-division symbol";
+beginarithchar(oct"076");
+pickup rule.nib;
+x11=good.x(1/sqrt2)[.5w,rt u]; y11=good.y(1/sqrt2)[math_axis,bot h];
+x12=x13=w-x11; x14=x11; .5[y11,y12]=.5[y13,y14]=math_axis; y12=y14;
+draw z11--z12; draw z13--z14; % diagonals
+x3-.5dot_size=hround(.5w-.5dot_size); %center_on(x3);
+y3+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]+.5dot_size);
+lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6,11,12,13,14); endchar;
+
+cmchar "Null set symbol";
+beginarithchar(oct"077");
+pickup rule.nib;
+z0=(w/2,h/2); % center of circle
+rt x1-lft x0=hround(h/2 + o); y1=y0;
+numeric theta; theta=45;
+for i=2 upto 8: z[i]-z0=(z1-z0) rotated ((i-1)*theta); endfor
+draw z8...z1 for i=2 upto 8: ...z[i] endfor;
+lft x9=u; x10=w-x9; bot y9=bot y7; top y10=top y3; draw z9--z10;
+labels(range 0 thru 10); endchar;
+
+cmchar "Negated existential quantifier";
+beginchar(oct"100",10u#,asc_height#,0);
+italcorr asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x3=x5=w-x1; x4=x6-.25u=x1;
+top y1=h; bot y4=0; y2=y1; y5=y6=.5[y1,y3]; y3=y4;
+draw z1--z2--z3--z4; % upper bar, stem, lower bar
+draw z5--z6; % middle bar
+char_center(100); x101=w-3u; y101=y1+3u;
+char_negate(100,101,102);
+labels(1,2,3,4,5,6); endchar;
+
+charlist oct"133": oct"134";
+charlist oct"135": oct"136";
+
+cmchar"Wider than widest circumflex (hat) accent";
+beginchar(oct"133",34u#,1.1body_height#,0);
+adjust_fit(0,0);
+pickup crisp.nib;
+pos2(.7[vair,curve],90); top y2r=h+o; x2=.5w;
+x1=w-x3=good.x-eps; y1=y3=.45[x_height,y2];
+pos1(1.2hair,angle(z2-z1)+90); pos3(1.2hair,angle(z3-z2)+90);
+filldraw stroke z1e--z2e--z3e;
+penlabels(1,2,3);
+%big_hat;
+endchar;
+
+cmchar"Very Widest circumflex (hat) accent";
+beginchar(oct"134",42u#,1.1body_height#,0);
+adjust_fit(0,0);
+pickup crisp.nib;
+pos2(.7[vair,curve],90); top y2r=h+o; x2=.5w;
+x1=w-x3=good.x-eps; y1=y3=.45[x_height,y2];
+pos1(1.2hair,angle(z2-z1)+90); pos3(1.2hair,angle(z3-z2)+90);
+filldraw stroke z1e--z2e--z3e;
+penlabels(1,2,3);
+%big_hat;
+endchar;
+
+cmchar"Even wider tilde (squiggle) accent";
+beginchar(oct"135",34u#,1.1body_height#,0);
+%big_tilde;
+adjust_fit(0,0); pickup crisp.nib;
+numeric theta; theta=angle(1/6(w-vair),1/4(h-x_height));
+numeric mid_width; mid_width=.4[vair,stem];
+pos1(1.5vair,theta+80); pos2(2vair,theta+80);
+pos3(2vair,theta+80); pos4(1.5vair,theta+80);
+z2-z1=z4-z3 = (mid_width-crisp)*dir theta;
+lft x1r=w-rt x4l=0; top y4r=h;
+bot y1l=vround(bot y1l+min(.6[x_height,h],y3l-.25vair)-top y1r);
+pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+--z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+cmchar"Very widest tilde (squiggle) accent";
+beginchar(oct"136",42u#,1.2body_height#,0);
+%big_tilde;
+adjust_fit(0,0); pickup crisp.nib;
+numeric theta; theta=angle(1/6(w-vair),1/4(h-x_height));
+numeric mid_width; mid_width=.4[vair,stem];
+pos1(1.5vair,theta+80); pos2(2vair,theta+80);
+pos3(2vair,theta+80); pos4(1.5vair,theta+80);
+z2-z1=z4-z3 = (mid_width-crisp)*dir theta;
+lft x1r=w-rt x4l=0; top y4r=h;
+bot y1l=vround(bot y1l+min(.6[x_height,h],y3l-.25vair)-top y1r);
+pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+--z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+cmchar "Reversed turned F";
+beginchar(oct"140",10u#,asc_height#,0);
+italcorr asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+lft x4=hround u-eps; x2=x3=x5=w-x4; x6=x4+.27w;
+top y2=h; bot y4=0; y5=y6=.5[y2,y3]; y3=y4;
+draw z2--z3--z4; % upper bar, stem, lower bar
+draw z5--z6; % middle bar
+labels(2,3,4,5,6); endchar;
+
+cmchar "The Reversed inverted letter G";
+beginchar(oct"141",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#; adjust_fit(0,0);
+ pickup rule.nib;
+ rt x1=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3=hround max(u,2u-.5cap_curve); rt x5=hround(w-1.2u);
+ top y1=vround .93h+o; top y2=h+o; y3=.5h;
+ bot y4=-o; bot y5=vround .07h-o;
+ draw z1...{left}z2...{down}z3{down}...{right}z4...{up}z5;
+ z7=z5; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ draw z0--z7; % stem
+ z0=z9; y8=y9; lft x8=hround x4;
+ draw z8--z9; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+picture rvchar;
+ rvchar=currentpicture reflectedabout((.5w,0),(.5w,h));
+currentpicture:= rvchar;
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Equal or similar symbol";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"150",14u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+bot y1=bot y3=-d; top y2=top y4=y1+spread;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+pickup rule.nib;
+lft x5=hround u-eps; x6=w-x5; top y5=top y6=h;
+draw z5--z6;
+labels(1,2,3,4,5,6); endchar;
+
+
+%% parameters for Hebrew letters Beth, Gimel, Dalet
+numeric theta; theta=45;
+cmchar "Hebrew letter Beth";
+beginchar(oct"151", 12u#, asc_height#, 0);
+%currenttransform:=identity rotated -45 shifted (.75h, 0);
+adjust_fit(0,0);
+pickup rule.nib;
+top y0=1.1h; lft x0=u;
+pos1(cap_curve,90); x1=2.5u; y1r=h;
+pos2(cap_curve,90); x2=w-x1; y2r=y1r;
+rt x3=w-u; y2l-y3=y0-y1r;
+x4=x3;
+% now for the base.
+pos12(cap_curve/cosd theta, theta); pos11(cap_curve/cosd theta, theta);
+y11r=y12r=y4; y11l=0;
+x12=u; x11=w-x12;
+filldraw z0{down}..tension.8..z1l{right}..{right}z2l..{down}z3&
+z3{up}..tension.8..z2r{left}..{left}z1r..z0..cycle; % top
+pickup rule.nib; draw z3..z4; % down stroke at right of letter
+filldraw stroke z11e{left}..{left}z12e;
+penlabels(0,1,2,3,4,11,12);
+endchar;
+
+cmchar "Hebrew letter Gimel";
+beginchar(oct"152", 8u#, asc_height#, 0);
+%currenttransform:=identity rotated -45 shifted (.75h, 0);
+adjust_fit(0,0);
+pickup rule.nib;
+top y0=1.1h; lft x0=u;
+pos1(cap_curve,90); x1=2.5u; y1r=h;
+pos2(cap_curve,90); x2=w-x1+.5u; y2r=y1r;
+filldraw z0{down}..tension.8..z1l{right}..{right}z2l..tension.8..{left}z2r
+ ..{left}z1r..z0..cycle; % top slab
+z3=z2l;x4=x3+.2stem; y4=-o; x5=x4+.3stem; y5=y3c;
+x3a=x3b=x3c=x3; y3a=.8h; y3b=.5h; y3c=cap_curve;
+y5:=.5y5; % reset y5
+path p, q; p=(z3---z3c..z4); q=(z4{1,1}..z5..{-.005,1}z3); % vertical
+filldraw p&q&cycle;
+% now for the base.
+pos12(cap_curve/cosd theta, theta); pos11(cap_curve/cosd theta, theta);
+pos13(cap_curve/cosd theta, theta); y13=y12; x13=w;
+ % z13 is a dummy point for getting intersection
+y11r=y12r; y11l=0;
+x12=u;
+z10=p intersectionpoint (z12r--z13r); z11r=z10;
+filldraw stroke z11e{left}..{left}z12e;
+penlabels(0,1,2,3,3c,4,5,11,12);
+endchar;
+
+cmchar "Hebrew letter Daleth";
+beginchar(oct"153", 12u#, asc_height#, 0);
+%currenttransform:=identity rotated -45 shifted (.75h, 0);
+adjust_fit(0,0);
+pickup rule.nib;
+top y0=1.1h; lft x0=u;
+pos1(cap_curve,90); x1=2.5u; y1r=h;
+pos2(cap_curve,90); x2=w-x1+.5u; y2r=y1r;
+filldraw z0{down}..tension.8..z1l{right}..{right}z2l..tension.8..{left}z2r
+ ..{left}z1r..z0..cycle; % top slab
+z3=z2l;x4=x3+.2stem; y4=-o; x5=x4+.3stem; y5=y3c;
+x3a=x3b=x3c=x3; y3a=.8h; y3b=.5h; y3c=cap_curve;
+y5:=.5y5; % reset y5
+path p, q; p=(z3---z3c..z4); q=(z4{1,1}..z5..{-.005,1}z3); % vertical
+filldraw p&q&cycle;
+penlabels(0,1,2,3,3c,4,5);
+endchar;
+
+cmchar "Dotted less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"154",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+y4=y2; x4=.75[x2, x1]; z5=z4;
+pos4(dot_size,0); pos5(dot_size,90); dot(4,5);
+labels(1,2,3,4,5); endchar;
+
+cmchar "Dotted greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"155",14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+y4=y2; x4=.75[x2, x1]; z5=z4;
+pos4(dot_size,0); pos5(dot_size,90); dot(4,5);
+labels(1,2,3,4,5); endchar;
+
+cmchar "Times operator with left vertical";
+beginarithchar(oct"156"); pickup rule.nib;
+x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+draw z1--z4;
+labels(1,2,3,4); endchar;
+
+cmchar "Times operator with right vertical";
+beginarithchar(oct"157"); pickup rule.nib;
+x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+draw z2--z3;
+labels(1,2,3,4); endchar;
+
+cmchar "Cute vertical bar";
+beginchar(oct"160",4u#,6u#+math_axis#,6u#-math_axis#);
+italcorr math_axis#*slant - .5u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=hround(w/2); top y1=x_height; bot y2=-o;
+draw z1--z2;
+labels(1,2); endchar;
+
+cmchar "Two cute vertical bars";
+beginchar(oct"161",7u#,6u#+math_axis#,6u#-math_axis#);
+italcorr math_axis#*slant - .5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=u; x2=x1; top y1=x_height; bot y2=-o;
+x3=w-x1; x4=x3; y3=y1; y4=y2;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+cmchar "Integer division (reverse quotient) symbol";
+beginarithchar(oct"162"); pickup rule.nib;
+x1=2u; top y1=x_height;%
+x2=x3=w-x1; x4=x1; bot y2=-o;
+draw z1--z2; % diagonal
+labels(1,2,3,4); endchar;
+
+
+cmchar "Thick similarity sign";% taken from symbol.mf
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"163",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .8rule_thickness yscaled 1.87rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+bot y1=bot y3=-d; top y2=top y4=h;
+draw z1{up}...z2{right}..{right}z3...{up}z4; % stroke
+labels(1,2,3,4); endchar;
+
+
+cmchar "Approximate equality sign"; % taken fron symbol.mf
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54x_height#,.66x_height#);
+beginchar(oct"164",14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .8rule_thickness yscaled 1.87rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+y1=y3; top y2=top y4=h; top y2-bot y1=spread';
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread);
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Approximate equality plus lower bar sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54x_height#,.66x_height#);
+beginchar(oct"165",14u#,v_center(2spread#'+spread#+rule_thickness#));
+adjust_fit(0,0);
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+y1=y3; top y2=top y4=h; top y2-bot y1=spread';
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread);
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+y9=y10; x9=x1; x10=x8; y5-y9=spread';
+pickup rule.nib; draw z9--z10;
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+cmchar "Follows with approximate equality sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54 x_height#,.66 x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"166",14u#,v_center(2spread#''+spread#+2rule_thickness#));
+adjust_fit(0,0);
+% now for follow sign, using z9 (top), z10 (vertex), & z11 (bot)
+pickup rule.nib;
+lft x9 = hround 1.5u-eps; x10=w-x9; x11=x9;
+y9-y11=spread; top y9=h; y10=.5[y11, y9];
+draw z9{u,-spread}...{right}z10;
+draw z11{u,spread}...{right}z10;
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+top y1=top y3=bot y11-spread''; top y2=top y4=bot y1+spread';
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Precedes with approximate equality sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(.54x_height#,.66x_height#);
+spread#'':=spread#; spread'':=spread; % the spread of `$=$'
+compute_spread(1.111 x_height#,1.333 x_height#);
+beginchar(oct"167",14u#,v_center(spread#+2spread#''+2rule_thickness#));
+adjust_fit(0,0);
+% now for precedes sign, using z9 (top), z10 (vertex), & z11 (bot)
+pickup rule.nib;
+x9=x11=w-x10; lft x10=hround 1.5u-eps;
+y9-y11=spread; top y9=h; y10=.5[y11, y9];
+draw z9{-u,-spread}...{left}z10;
+draw z11{-u,spread}...{left}z10;
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+lft x1=hround u; x2=4u; x3=w-x2; x4=w-x1;
+top y3=top y1=bot y11-spread''; top y2=top y4=bot y1+spread';
+z1-z5=z2-z6=z3-z7=z4-z8=(0,spread'');
+draw z1{up}...z2{right}..{right}z3...{up}z4; % upper stroke
+draw z5{up}...z6{right}..{right}z7...{up}z8; % lower stroke
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Arch with left downward arrowhead";
+beginchar(oct"170",18u#,x_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+for i=0 upto 6: x[i]:=x[i]-5.5u; x[i]l:=x[i]l-5.5u; x[i]r:=x[i]r-5.5u; endfor
+x9:=x9-5.5u;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead
+% arch represented by z2, z11 (top) z12
+rt x12=w-1u; bot y12=y0; top y11=h+o; x11=.5[x2, x12];
+pickup rule.nib; draw z2{up}...{right}z11...{down}z12;
+penlabels(0,1,2,3,4,5,6,9,11,12); endchar;
+
+cmchar "Arch with right downward arrowhead";
+beginchar(oct"171",18u#,x_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+for i=0 upto 6: x[i]:=x[i]+5.5u; x[i]l:=x[i]l+5.5u; x[i]r:=x[i]r+5.5u; endfor
+x9:=x9+5.5u;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead
+% arch represented by z2, z11 (top) z12 (right)
+lft x12=u; bot y12=y0; top y11=h+o; x11=.5[x2, x12];
+pickup rule.nib; draw z2{up}...{left}z11...{down}z12;
+penlabels(0,1,2,3,4,5,6,9,11,12); endchar;
+
+cmchar "Stylized F";
+beginarithchar(oct"172");
+pickup pencircle xscaled 2.5rule_thickness yscaled .5rule_thickness;
+bot y1=-d; top y2=top y3=h+o; y4=y5=.5[y1, y2]; lft x1=u; x3=w-x1;
+numeric t; t=4; % t=slope of thck stem
+y2-y1=t*(x2-x1);
+z4=whatever[z1, z2]; x5-x4=.6(x3-x2);
+draw z1--z2--z3; draw z4--z5;
+penlabels(1,2,3,4,5); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbbx10.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbbx10.mf
new file mode 100644
index 00000000000..a62b95dcb52
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbbx10.mf
@@ -0,0 +1,88 @@
+% European Computer Modern Bright text companion font
+% boldface (regular) extended 10 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBBX"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=22/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e (.53 x_height)
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+acc_height#:=75/36pt#; % ?
+%dot_height#:=75/36pt#;
+%ldot_height#:=75/36pt#;
+dot_height#:=74/36pt#;
+ldot_height#:=74/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=49/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=43/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=49/36pt#; % uppercase hairline breadth
+cap_stem#:=53/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=49/36pt#; % maximum breadth above or below notches
+bar#:=26/36pt#; % lowercase bar thickness
+slab#:=36/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=31/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=18/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+bx_kerning:=1; % different kerning for bold extended fonts
+sym_u#:=u#; % unit of width for math symbols
+sym_height#:=x_height#; % unit of height for math symbols
+
+gensize:=10;
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbmo10.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbmo10.mf
new file mode 100644
index 00000000000..fad9fbd23b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbmo10.mf
@@ -0,0 +1,19 @@
+% European Computer Modern Bright text companion font
+% medium oblique 10 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBMO"; font_size 10pt#;
+input br10pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+%ligs:=2;
+acc_height#:=70/36pt#; % ?
+dot_height#:=66.5/36pt#;
+ldot_height#:=66.5/36pt#; % ok
+
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbmo17.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbmo17.mf
new file mode 100644
index 00000000000..05e42ea584e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbmo17.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% medium oblique 17 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBMO"; font_size 17.28pt#;
+input br17pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+;ligs:=2; % level of ligatures to be included
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=70/36Pt#; % ?
+dot_height#:=66.5/36Pt#; % ok
+ldot_height#:=66.5/36Pt#; % ok
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbmo8.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbmo8.mf
new file mode 100644
index 00000000000..2c1e5ceb5a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbmo8.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% medium oblique 8 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBMO"; font_size 8pt#;
+input br8pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=60/36pt#; % ?
+dot_height#:=54.5/36pt#; % ok?
+ldot_height#:=54.5/36pt#; % ok?
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbmo9.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbmo9.mf
new file mode 100644
index 00000000000..87a63664824
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbmo9.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% medium oblique 9 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBMO"; font_size 9pt#;
+input br9pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=65/36pt#; % ?
+dot_height#:=60.48/36pt#; % ok?
+ldot_height#:=60.48/36pt#; % ok ?
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbmr10.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbmr10.mf
new file mode 100644
index 00000000000..709762591a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbmr10.mf
@@ -0,0 +1,19 @@
+% EC Bright text companion font
+% 10pt medium roman [1997/04/03 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBMR"; font_size 10pt#;
+input br10pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=false; % we are not making an italic font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+%ligs:=2;
+acc_height#:=70/36pt#; % ?
+dot_height#:=66.5/36pt#;
+ldot_height#:=66.5/36pt#; % ok
+
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbmr17.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbmr17.mf
new file mode 100644
index 00000000000..92cd011a8d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbmr17.mf
@@ -0,0 +1,18 @@
+% EC Modern Bright text companion font
+% 17pt medium roman [1997/04/09 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBMR"; font_size 17.28pt#;
+input br17pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+;ligs:=2; % level of ligatures to be included
+variant_g:=false; % we don't make an italic font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=70/36Pt#; % ?
+dot_height#:=66.5/36Pt#; % ok
+ldot_height#:=66.5/36Pt#; % ok
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbmr8.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbmr8.mf
new file mode 100644
index 00000000000..7fc16a67d0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbmr8.mf
@@ -0,0 +1,18 @@
+% EC Modern Bright text companion font
+% 8pt medium roman [1997/04/09 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBMR"; font_size 8pt#;
+input br8pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=false; % we don't make an italic font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=60/36pt#; % ?
+dot_height#:=54.5/36pt#; % ok?
+ldot_height#:=54.5/36pt#; % ok?
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbmr9.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbmr9.mf
new file mode 100644
index 00000000000..834c58b0c11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbmr9.mf
@@ -0,0 +1,18 @@
+% EC Modern Bright text companion font
+% 9pt medium roman [1997/04/09 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBMR"; font_size 9pt#;
+input br9pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=false; % we don't make an italic font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=65/36pt#; % ?
+dot_height#:=60.48/36pt#; % ok?
+ldot_height#:=60.48/36pt#; % ok ?
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbpseudo.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbpseudo.mf
new file mode 100644
index 00000000000..f8f5325b5b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbpseudo.mf
@@ -0,0 +1,70 @@
+% tbpseudo.mf
+% [= txpseudo.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of the EC Bright fonts version 1.0
+%
+% This file contains pseudoparameters which are not entered in the
+% parameter files, but are computed from the initial parameter set.
+% There are also ad hoc parameters needed only once, and scratch
+% parameters with different values at each occuerence (like |theta|).
+%
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+% (CMBR)
+% width of circles for copyright etc., ensures real circles!
+numeric circ_w#;
+circ_w#:=18.7u#;
+
+% Diameters of dots
+
+% (CMBR)
+numeric idot_diam#,udot_diam#,pdot_diam#;
+ pdot_diam#=if monospace: 5/4 fi\\ dot_size#; % punctuation dots
+
+% |limit_dist| is used in |put_cross|
+% (the value of |u| is changed by |mono_adjust|, hence the global setting)
+
+vardef limit_dist=5/4u enddef;
+
+% More parametrisations for accents from csaccent.mf (csfonts):
+
+numeric uc_acc_height, uc_acc_height#,
+ lc_acute_height, lc_acute_height#,
+ lc_hachek_height, lc_hachek_height#,
+ accent_u, accent_u#,
+ accent_thin,
+ uc_acc_shift, asc_acc_shift;
+if unknown circ_weight: circ_weight:=1; fi
+
+uc_acc_height# = cap_height#+asc_height#-hi.x_height#;
+lc_acute_height# = asc_height#;
+lc_hachek_height# = hi.x_height#+acc_height#;
+accent_u# = u#; % unexpanded dimension unit
+
+vardef accent_thin = if thin_join > crisp: thin_join else: crisp+eps fi enddef;
+
+vardef uc_acc_shift = cap_height - hi.x_height enddef;
+vardef asc_acc_shift = asc_height - hi.x_height enddef;
+
+% Height of floating accents for capitals (note, that TeX raises them
+% by |uc_acc_shift|)
+
+numeric cap_accent_height, cap_accent_height#;
+cap_accent_height# = acc_height# + hi.x_height#;
+
+% (CMBR)
+def pseudo_setup=
+ idot_diam#:=stem'/hppp; % dots on i and j, must fit stem width!
+ idot_diam:=stem';
+ udot_diam:=min(stem', hround(.85dot_size)); % umlaut dots
+ udot_diam#:=udot_diam/hppp;
+ define_whole_blacker_pixels(pdot_diam);
+ define_whole_vertical_pixels(uc_acc_height,lc_acute_height,
+ lc_hachek_height);
+ define_pixels(accent_u);
+ define_whole_vertical_pixels(cap_accent_height);
+enddef;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbso10.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbso10.mf
new file mode 100644
index 00000000000..969fb021164
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbso10.mf
@@ -0,0 +1,19 @@
+% European Computer Modern Bright text companion font
+% semibold oblique 10 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBSO"; font_size 10pt#;
+input brs10pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+%ligs:=2;
+acc_height#:=70/36pt#; % ?
+dot_height#:=70/36pt#; % 66.5
+ldot_height#:=70/36pt#; % 66.5
+
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbso17.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbso17.mf
new file mode 100644
index 00000000000..775598c7cab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbso17.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% semibold oblique 17 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBSO"; font_size 17.28pt#;
+input brs17pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+;ligs:=2; % level of ligatures to be included
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=70/36Pt#; % ok
+dot_height#:=70/36Pt#; % 66.5
+ldot_height#:=70/36Pt#; % 66.5
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbso8.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbso8.mf
new file mode 100644
index 00000000000..ad5e51fc4c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbso8.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% semibold oblique 8 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBSO"; font_size 8pt#;
+input brs8pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=60/36pt#; % ?
+dot_height#:=60/36pt#; % 54.5
+ldot_height#:=60/36pt#; % 54.5
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbso9.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbso9.mf
new file mode 100644
index 00000000000..a5cda976804
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbso9.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% semibold oblique 9 point [1997/05/13 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBSO"; font_size 9pt#;
+input brs9pt;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=65/36pt#; % ?
+dot_height#:=65/36pt#; % 60.48
+ldot_height#:=65/36pt#; % 60.48
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbsr10.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbsr10.mf
new file mode 100644
index 00000000000..2fe8a2fbfa9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbsr10.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% semibold regular 10 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBSR"; font_size 10pt#;
+input brs10pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+%ligs:=2;
+acc_height#:=70/36pt#; % ?
+dot_height#:=70/36pt#; % 66.5
+ldot_height#:=70/36pt#; % 66.5
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbsr17.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbsr17.mf
new file mode 100644
index 00000000000..59ae503dd78
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbsr17.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% semibold regular 17 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBSR"; font_size 17.28pt#;
+input brs17pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+;ligs:=2; % level of ligatures to be included
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=70/36Pt#; % ok
+dot_height#:=70/36Pt#; % 66.5
+ldot_height#:=70/36Pt#; % 66.5
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbsr8.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbsr8.mf
new file mode 100644
index 00000000000..77c3164d565
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbsr8.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% semibold regular 8 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBSR"; font_size 8pt#;
+input brs8pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=60/36pt#; % ?
+dot_height#:=60/36pt#; % 54.5
+ldot_height#:=60/36pt#; % 54.5
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbsr9.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbsr9.mf
new file mode 100644
index 00000000000..1a5aa16c2f7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbsr9.mf
@@ -0,0 +1,18 @@
+% European Computer Modern Bright text companion font
+% semibold regular 9 point [1997/04/25 v1.0 (WaS)]
+
+if unknown ebbase: input ebbase fi
+
+font_identifier:="TBSR"; font_size 9pt#;
+input brs9pt;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+%ligs:=2; % level of ligatures to be included
+variant_g:=false; % we are not making an italic style font
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+acc_height#:=65/36pt#; % ?
+dot_height#:=65/36pt#; % 60.48
+ldot_height#:=65/36pt#; % 60.48
+
+generate tbsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbsymb.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbsymb.mf
new file mode 100644
index 00000000000..c9e0fd14ce0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbsymb.mf
@@ -0,0 +1,58 @@
+% tbsymb.mf
+% [= txsymb.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+%
+% This file is part of Ec Bright version 1.0g
+%
+% Driver file for the tb fonts
+%
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input ebaccess; % accent accessories %(CMBR)
+input tbpseudo; % pseudoparameters %(CMBR)
+
+mode_setup; font_setup; pseudo_setup;
+
+input txaccent; % flat accents for capital letters
+input txgen; % genealogical symbols (by DEK)
+input tbsymbol; % misc. symbols % (CMBR)
+if variant_g: % italics?
+ input txitlod; % old style digits (by GJL)
+ input txisuper; % superscript 1,2,3
+ input txifract; % fractions 1/4, 1/2, 3/4
+else: % roman
+ input txromod; % old style digits (by DEK)
+ input txrsuper; % superscript 1,2,3
+ input txrfract; % fractions 1/4, 1/2, 3/4
+fi;
+
+% Ligtable
+
+if not monospace:
+ ligtable "-": oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+fi
+
+% Fontparameter
+%
+font_coding_scheme:="TeX text companion symbols 1---TS1";
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (cap_height#+acc_height#);
+font_desc_depth desc_depth#;
+font_max_height(max(asc_height#,body_height#,
+ cap_height#+acc_height#));
+font_max_depth(max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+font_cap_stem cap_stem#; % No letter capital I in the symbols
+font_baselineskip max(1.25*designsize,body_height#+paren_depth#);% (CMBR)
+ font_normal_space 5.7u#+2letter_fit#; % (CMBR)
+ font_normal_stretch 2.85u#; font_normal_shrink 1.9u#; %(CMBR)
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 1.9u#; % (CMBR)
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbsymbol.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbsymbol.mf
new file mode 100644
index 00000000000..3b24870ea8f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbsymbol.mf
@@ -0,0 +1,2197 @@
+% tbsymbol.mf
+% [= txsymbol.mf, changed by Walter Schmidt, see (CMBR)]
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 2000 J"org Knappen, Walter Schmidt
+%
+% This file is part of EC Bright fonts version 1.0f
+%
+% Miscellaneous symbols for the TS1 encoding,
+% to be used for making the CM Bright typefaces.
+%
+% Heavily borrowing from existent fonts, like Computer Modern, AMS symbols
+% and wasy symbols
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar"Single straight base quote"; % jk
+beginchar(oct"015",7u#,asc_height#,0);
+ numeric shifth_down;
+ adjust_fit(0,0);
+ x1=x2=.5w;
+ y2=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift;
+ if serifs:
+ y1=flare/2; the_shift=h-.5stem-y1;
+ pickup crisp.nib;
+ pos1(flare,0); pos2(vair,0);
+ filldraw circ_stroke (z1e--z2e); % stem and bulb
+ else:
+ top y1=stem; the_shift=h-y1;
+ pickup fine.nib;
+ pos1(stem,0); pos2(vair,0);
+ filldraw stroke z1e--z2e; % stem
+ fi
+ charht:=dot_size#; chardp:=desc_depth#;
+ penlabels(1,2,3,4);
+endchar;
+
+ecchar"Double straight base quotes"; % from pl_cud (plfonts)
+beginchar(oct"022",9u#,asc_height#,0);
+ numeric top_width#,spread#,shifth_down;
+ top_width#=if serifs: flare# else: stem# fi;
+ spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+ adjust_fit(0,0);
+ numeric the_shift;
+ x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+ y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift;
+ if serifs:
+ y1=flare/2; the_shift=h-.5stem-y1;
+ pickup crisp.nib;
+ pos1(flare,0); pos2(vair,0); pos3(flare,0); pos4(vair,0);
+ filldraw circ_stroke (z1e--z2e); % left stem and bulb
+ filldraw circ_stroke (z3e--z4e); % right stem and bulb
+ else:
+ top y1=stem; the_shift=h-y1;
+ pickup fine.nib;
+ pos1(stem,0); pos2(vair,0); pos3(stem,0); pos4(vair,0);
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ fi
+ charht:=dot_size#; chardp:=desc_depth#;
+ penlabels(1,2,3,4);
+endchar;
+
+ecchar "twelve u dash";
+beginchar(oct"025",12u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar "three quarters em dash";
+beginchar(oct"026",13.5u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar "Capital compound word mark";
+beginchar(oct"027",0,cap_height#,0);
+zero_width;
+endchar;
+
+ecchar "Leftward arrow"; % from sym.mf (cmfonts)
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"030",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;
+x3=x4=x0+if monospace:3u else:4u fi+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar "Rightward arrow"; % from sym.mf (cmfonts)
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"031",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;
+x3=x4=x0-if monospace:3u else:4u fi-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar"Tie accent"; % from italms (cmfonts)
+beginchar(oct"032",5u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=hround(.5w-.5hair); x2=.5[x1,x3];
+rt x3r=hround(w+4u+2letter_fit+.5hair);
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+ecchar"New tie accent"; % centered
+beginchar(oct"034",9u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=w-rt x3r=hround(2u-.5vair); x2=.5w;
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+ecchar "Ascender height compound word mark";
+beginchar(oct"037",0,asc_height#,0);
+zero_width;
+endchar;
+
+iff not variant_g: % not italic
+ecchar"Blank symbol"; % jk
+beginchar(oct"040",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+put_cross(.5stem+if serifs: .9max(limit_dist,jut) else: 1.8u fi,.5stem+3u);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff variant_g: % italic
+ecchar"Blank symbol"; % jk
+beginchar(oct"040",8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+put_cross(.5stem+if serifs: .9max(limit_dist,jut) else: 1.8u fi,.5stem+3u);
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar"Dollar sign"; % from romanp (cm)
+beginchar("$",9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+ecchar "Straight single quote"; % from romsub (cm)
+beginchar(oct"047",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+adjust_fit(0,0);
+x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; fi % stem
+penlabels(1,2); endchar;
+
+ecchar "Comma";
+beginchar(",",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+ecchar "Double hyphen or short equals sign"; % jk % (CMBR)
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar(oct"055",6u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+pos3(thickness,90); pos4(thickness,90);
+y1=y2; y3=y4;
+top y1=vround .5h+.5thickness+.5spread;
+top y3=vround .5h+.5thickness-.5spread;
+rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+x3=x1; x4=x2;
+filldraw stroke z1e--z2e; % upper bar
+filldraw stroke z3e--z4e; % lower bar
+penlabels(1,2,3,4); endchar;
+
+ecchar "Period";
+beginchar(".",5u#,pdot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+ecchar "Asterisk at the axis"; % from mathsy % (CMBR)
+beginchar(oct"052",9u#,v_center(sym_height#));
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5sym_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5sym_u yscaled sym_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+ecchar "Fraction"; % from punct (cm)" Virgule (slash)"
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+ecchar "Left angle bracket";
+beginchar(oct"074",7u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; x1=x3; lft x2=hround 2u-1-eps;
+top y1=h+eps; .5[y1,y3]=y2=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar "Minus sign";
+beginarithchar("="); pickup extra_rule.nib;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+ecchar "Right angle bracket";
+beginchar(oct"076",7u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt(w-x1)=hround(w-u)+eps; x1=x3; lft(w-x2)=hround 2u-1-eps;
+top y1=h+eps; .5[y1,y3]=y2=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar"Mho sign (turned Omega)"; % from lasy
+beginchar(oct"115",13u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#; %italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,-90); pos2(cap_curve,0);
+pos3(vair,0); pos4(cap_curve,180); pos5(vair,180);
+x1=.5w; bot y1r=0-o; lft x4r=hround u; y2=y4=1/3h; x2=w-x4;
+rt x5l=hround(1/3(w+.5u)+.5hair); top y3=top y5=h; x3=w-x5;
+filldraw stroke z3e{down}...{down}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{up}...{up}z5e; % bowl
+numeric arm_thickness; path p; p=z3{down}...{down}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,90); pos7(fudged.hair,0);
+top y6r=h; x6=x3; rt x7r=hround (w-.8u); y7=good.y(y6l-.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w+h,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,1.2beak_jut); % right arm and beak
+pos8(arm_thickness,90); pos9(fudged.hair,180);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,-1.2beak_jut); % left arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar"Big circle for copyright, etc";% (CMBR)
+%beginchar("O",20u#,body_height#,max(paren_depth#,desc_depth#)); autorounded;
+beginchar("O",circ_w#,body_height#,max(paren_depth#,desc_depth#)); autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Ohm sign (ISO 6937)"; % from greeku (cmfonts)
+beginchar(oct"127",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar"Musical note (one eigth note)"; % jk
+beginchar("n",11u#,asc_height#,0);
+pickup rule.nib;
+x1=3/5w; x2=x1; top y1=h; bot y2=.5bar_height;
+lft x3=u; x5= x2; x4=x6=.5[x3,x5];
+y3=y5=vround(.5bar_height); y4=y6-bar_height=-oo;
+x7=x1; rt x9=w-u; x8=.5[x7,x9];
+y7=y1; bot y9=vround(.5bar_height); y8=.5[y7,y9];
+draw z1--z2; % stem
+filldraw z3{down}...z4{right}...z5{up}...z6{left}...cycle; % body
+draw z7{down}...z8...{down}z9; % flag
+endchar;
+
+ecchar "Left semantic bracket"; % [[ from stmaryrd
+beginchar(oct"133",7.25u#,body_height#,paren_depth#);
+adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5rule_thickness)-1-eps;
+filldraw stroke z1e--z2e; % left stem
+pos7(rule_thickness,0); pos8(rule_thickness,0);
+top y7=h; bot y8=-d; lft x7l=lft x8l=hround(4.75u-.5rule_thickness)-1-eps;
+filldraw stroke z7e--z8e; % right stem
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+pos5(rule_thickness,90); pos6(rule_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+ecchar "Right semantic bracket"; % ]] from stmaryrd
+beginchar(oct"135",7.25u#,body_height#,paren_depth#);
+adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5rule_thickness)+1+eps;
+filldraw stroke z1e--z2e; % left stem
+pos7(rule_thickness,0); pos8(rule_thickness,0);
+top y7=h; bot y8=-d; rt x7r=rt x8r=hround(w-4.75u+.5rule_thickness)+1+eps;
+filldraw stroke z7e--z8e; % right stem
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+pos5(rule_thickness,90); pos6(rule_thickness,90);
+x3=x5=x1l; lft x4=lft x6=ceiling(.4u)-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Upward arrow"; % from sym
+beginchar(oct"136",9u#,asc_height#,asc_depth#);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0-if monospace:.24 else:.36 fi asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+%numeric t; path p; p=z4l{z9-z4}..z6r;
+numeric t; path p; p=z4l{z9-z4}..z6l;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar "Downward arrow"; % from sym
+beginchar(oct"137",9u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0+if monospace:.24 else:.36 fi asc_height+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+%t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+t=xpart(p intersectiontimes((x2l,-d)--(x2l,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar"Backwards tick mark"; % from accent (cmfonts, grave accent)
+beginchar(oct"140",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+ecchar "Low lying tilde (squiggle)";
+beginchar(oct"176",11u#,min(bar_height#,2/7x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta;
+ theta=angle(1/8(7u if monospace: /expansion_factor fi-vair),1/4acc_height);
+% theta=angle(1/6(6u-vair),1/4h);
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=0;
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=0;
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff not monospace:
+ecchar "Double hyphen-hyphenchar"; % jk % (CMBR)
+compute_spread(.45sym_height#,.55sym_height#);
+beginchar(oct"177",3u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+pos3(thickness,90); pos4(thickness,90);
+y1=y2; y3=y4;
+top y1=vround .5h+.5thickness+.5spread;
+top y3=vround .5h+.5thickness-.5spread;
+rt x2=hround(2w-u)+eps;
+lft x1=hround .2u-eps;
+x3=x1; x4=x2;
+filldraw stroke z1e--z2e; % upper bar
+filldraw stroke z3e--z4e; % lower bar
+penlabels(1,2,3,4); endchar;
+
+iff monospace:
+ecchar "Double hyphen-hyphenchar"; % jk
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"177",6u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+pos3(thickness,90); pos4(thickness,90);
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+x3=x1; x4=x2;
+filldraw stroke z1e--z2e; % upper bar
+filldraw stroke z3e--z4e; % lower bar
+penlabels(1,2,3,4); endchar;
+
+ecchar"Breve";
+beginchar(oct"200",11u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+ecchar "Hachek (Caron)";
+beginchar(oct"201",11u#,min(asc_height#,2x_height#),0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+ecchar"Double tick mark (inch sign)"; % from accent (hungarian long umlaut)
+beginchar(oct"202",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+ecchar"Double backwards tick mark"; % jk
+beginchar(oct"203",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x1-.5stem=hround 1.5u; x2=3.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w-u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "Dagger mark"; % from mathsy
+beginchar(oct"204",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos2(thin_join,0); pos3(stem,0); pos4(hair,0);
+pos5(stem,90); pos2'(thin_join,90); pos6(stem,90); z2'=z2;
+x1=x2=x3=x4; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x5-.5stem=hround u; x6=w-x5;
+y1+.5stem=h+oo; y2=y5=y6; y3=.57y2; bot y4=-d-o;
+y5+.5stem=floor(x_height+.5stem);
+filldraw circ_stroke z1e{down}..z2e{down}..z3e{down}..z4e; % stem
+filldraw circ_stroke z5e{right}..{right}z2'e; % left bulb
+filldraw circ_stroke z6e{left}..{left}z2'e; % right bulb
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Double dagger mark"; % from mathsy
+beginchar(oct"205",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos2(thin_join,0); pos3(stem,0);
+pos4(stem,90); pos2'(thin_join,90); pos5(stem,90); z2'=z2;
+x1=x2=x3; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x4-.5stem=hround u; x5=w-x4;
+y1+.5stem=h+oo; y2=y4=y5=.5[y1,y3]; y3-.5stem=ceiling(.5[-d,h]);
+filldraw circ_stroke z1e{down}..{down}z2e; % top stem
+filldraw circ_stroke z3e{up}..{up}z2e; % upper middle stem
+filldraw circ_stroke z4e{right}..{right}z2'e; % top left bulb
+filldraw circ_stroke z5e{left}..{left}z2'e; % top right bulb
+pos6(stem,0); pos7(thin_join,0); pos8(stem,0);
+pos9(stem,90); pos7'(thin_join,90); pos0(stem,90); z7'=z7;
+x6=x7=x8=x1; x9=x4; x0=x5;
+y6=y3-stem-1; y7=y9=y0=.5[y6,y8]; y8-.5stem=-d-oo;
+filldraw circ_stroke z6e{down}..{down}z7e; % lower middle stem
+filldraw circ_stroke z8e{up}..{up}z7e; % bottom stem
+filldraw circ_stroke z9e{right}..{right}z7'e; % bottom left bulb
+filldraw circ_stroke z0e{left}..{left}z7'e; % bottom right bulb
+penlabels(1,2,3,4,5,6,7,8,9,0); endchar;
+
+ecchar "Double vertical line (norm or cardinality)"; % from mathsy
+% Change (jk): Made the two lines as close as in \P
+beginchar(oct"206",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2; top y1=h; .5[y1,y2]=math_axis;
+x3=x4=w-x1; y3=y1; y4=y2;
+x3-x1=ceiling(rule_thickness+1.25u);
+draw z1--z2; draw z3--z4; % stems
+labels(1,2,3,4); endchar;
+
+ecchar "Per mill sign"; % by Emma Pease
+beginchar(oct"207",15u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5(w-6u)-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+%
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-7u); lft x6r=hround(.5(w-6u)+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+%
+pos13(vair,90); pos14(left_curve,180); pos15(vair,270);
+pos16(right_curve,360);
+bot y15r=-d; rt x16r=hround(w-u); lft x14r=hround(.5(w-6u)+1.5u+6u);
+top y13r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x13=x15=.5[x14,x16]; y14=y16=.5[y13,y15];
+filldraw stroke pulled_super_arc.e(13,14)(superpull)
+ & pulled_super_arc.e(14,15)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(15,16) & super_arc.e(16,13); % right half of lower bowl
+%
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-6u-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+ecchar "Bullet"; % from mathsy
+beginchar(oct"210",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h; y2=math_axis; circle_points;
+filldraw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle; % circle and interior
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Centigrade sign";
+if serifs: beginchar(oct"211",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(4u#,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(oct"211",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(4u#,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+penlabels(1,1',2,3,4,5,6);
+clearxy;
+pickup rule.nib; autorounded;
+lft x6=-4u; rt x2=0; top y8=h; y8-y2=x2-x8;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+endchar;
+
+ecchar "Oldstyle dollar sign"; % based on romanp (cm)
+beginchar(oct"212",11u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0); pos13(bar,0); pos14(bar,0);
+x11=x12; x13=x14=w-x11; x13-x11=ceiling(rule_thickness+1.25u);
+top y12=top y14=h; bot y11=bot y13=-d;
+filldraw stroke z12e--z11e; % left vertical crossbar
+filldraw stroke z14e--z13e; %right vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+ecchar "Oldstyle cent sign"; % jk, based on cm `c'
+beginchar(oct"213",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(0,0);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+pickup crisp.nib;
+x7=x3; x6=w-x7; y6=h; y7=-d;
+numeric theta; theta=angle(z7-z6)-90;
+pos6(vair,theta); pos7(vair,theta);
+filldraw stroke z6e--z7e; % diagonal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff variant_g: % I use this as marker for italic fonts
+ecchar "Italic florin sign (italic letter f)"; % from itall (cm)
+beginchar(oct"214",max(1.5u#,stem#)+max(3.5u#,2flare#),
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+
+
+iff not variant_g:
+ecchar "Florin sign (The letter f)"; % from romanl (cm)
+beginchar(oct"214",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+ecchar"Colon sign or Cedi sign"; % Panamese or Ghanese currency
+if serifs: beginchar(oct"215",13u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ numeric hh; hh=cap_height;
+ top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(hh-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+else: beginchar(oct"215",11.5u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ numeric hh; hh=cap_height;
+ top y1r=vround .95hh+o; top y2r=hh+o; y3=.5hh;
+ bot y4r=-o; bot y5r=vround .08hh-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+fi
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6,11,12); endchar;
+
+ecchar"Won sign"; % Korean currency
+beginchar(oct"216",18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6);
+prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)
+ --.5[z5l,z6l]--.5[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+pickup extra_rule.nib;
+x9=x11=x1l; x10=x12=x8r; y9=y10;
+top y9=bar_height; y11=y12; draw z9--z10;
+y11-y9=spread; draw z11--z12; % crossing bars
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,23,45,67); endchar;
+
+ecchar"Naira sign"; % Nigerian currency
+beginchar(oct"217",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+
+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#+.25u#,cap_serif_fit#+.25u#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+pickup extra_rule.nib;
+x8=x10=0; x9=x11=w; y10=y11;
+top y8=bar_height; y8=y9; draw z8--z9;
+y10-y8=spread; draw z10--z11; % crossing bars
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,1',2,3,4,4',5,6,7,8,9,10,11); endchar;
+
+ecchar"Guarani sign"; % Currency of Paraguay
+if serifs: beginchar(oct"220",14u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ numeric hh; hh=cap_height;
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar(oct"220",14u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric hh; hh=cap_height;
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93hh+o; top y2r=hh+o; y3=.5hh;
+ bot y4r=-o; bot y5r=vround .07hh-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9,11,12); endchar;
+
+ecchar"Peso sign";
+beginchar(oct"221",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#+.25u#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+pickup extra_rule.nib;
+x8=0; x9=.5[x1r,x5r]; top y8=bar_height; y8=y9; draw z8--z9;
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); labels(8,9);
+endchar;
+
+ecchar "Lira sign"; %
+compute_spread(.35x_height#,.45x_height#);
+beginchar(oct"222",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9l=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pickup extra_rule.nib;
+x10=3u; x11=w-4.5u; x12=3u; x13=w-4.5u;
+top y12=bar_height;
+y11=y10; y13=y12; y10-y12=spread;
+draw z10--z11; % upper bar
+draw z12--z13; % lower bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar"Recipe sign";
+beginchar(oct"223",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+x1:=x8;
+put_cross(.5cap_stem+if serifs: .9max(limit_dist,cap_jut) else: .8u fi,
+ .5cap_stem+if serifs: 3u else: 4u fi);
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff not variant_g: % not italic
+ecchar"Interrobang";
+beginchar(oct"224",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; % dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=hround .9h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff not variant_g: % not italic
+ecchar"Gnaborretni";
+beginchar(oct"225",8.5u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); top y8r=h; z7=z8; % dot(7,8); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(top_width,180); pos6(top_width,180);
+x2=x4=x5=x6=x7; lft x3r=hround u; top y6=.25[bot y8l,h-x_height]-1;
+bot y2r=hround .1asc_height-d-oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],-70);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,bot y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff variant_g: % italic
+ecchar"Interrobang";
+beginchar(oct"224",9u#,asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(0,0);
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); bot y11l=0; z10=z11; % dot(10,11); % dot
+pickup fine.nib; pos1(flare,180); pos2(hair,180); pos3(vair,90);
+lft x1r=hround u; x3=.5w;
+y1-.5flare=x_height; top y3r=hround .9h+o; bulb(3,2,1); % bulb
+pos8(vair,-90); x8=.5w; bot y8r=.25[top y11r,x_height]+1;
+numeric theta; theta=90+angle(10u,y3-y8); slope:=(y3-y8)/10u;
+pos3'(vair,-90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+rt x4l=hround(w-1.5u); lft x7r=hround 1/3w;
+x4l-x4r=x7l-x7r=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,0); rt x9r=hround(2/3w+.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{down}
+ ..z5e---z6e..z7e{down} & super_arc.e(7,8)...{up}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff variant_g: % italic
+ecchar"Gnaborretni";
+beginchar(oct"225",9u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); top y11r=h; z10=z11; % dot(10,11); % dot
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,-90);
+rt x1r=hround(w-u); x3=.5w; y1+.5flare=asc_height-x_height-d;
+bot y3r=hround .1asc_height-d-o; bulb(3,2,1); % bulb
+pos8(vair,90); x8=.5w; top y8r=.25[bot y11l,y1+.5flare]-1;
+numeric theta; theta=angle(10u,y8-y3)-90; slope:=(y8-y3)/10u;
+pos3'(vair,90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+lft x4l=hround 1.5u; rt x7r=hround 2/3w;
+x4r-x4l=x7r-x7l=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,180); lft x9r=hround(1/3w-.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{up}
+ ..z5e---z6e..z7e{up} & super_arc.e(7,8)...{down}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff not variant_g: % not italic
+ecchar"Dong sign"; % Vietnamese currency
+beginchar(oct"226",10u#+serif_fit#,body_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+numeric hh; hh=asc_height;
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=hh;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo if monospace: -hair fi;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height if monospace: -.5hair fi;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+%
+ pos8(bar,90); pos9(bar,90);
+ x8=.5[x4,x5];
+ if serifs: x9=x2r+jut; else: x9=w; fi
+ if serifs: y8=y9=.5[y.a2-.5slab,y4+.5vair];
+ else: y8=y9=.5[x_height,asc_height-serif_drop]; fi
+ filldraw stroke z8e--z9e;
+currentpicture:=currentpicture shifted (0,body_height-asc_height);
+pickup rule.nib;
+x10=x5; x11=x9; top y10=0; y10=y11;
+draw z10--z11;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff variant_g: %italic
+ecchar"Italic Dong sign"; % Vietnamese currency
+beginchar(oct"226",9u#,body_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the bar
+ pos8(bar,90); pos9(bar,90);
+ x8=x1; % .5[x1,x4];
+ x9=x6;
+ y8=y9=.5[y.a2-.5slab,y1+.5vair];
+ filldraw stroke z8e--z9e;
+currentpicture:=currentpicture shifted (0,body_height-asc_height);
+pickup rule.nib;
+x10=x2; x11=x9; top y10=0; y10=y11;
+draw z10--z11;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar"Trademark"; % jk, design based on logo font
+beginchar(oct"227",12u#,body_height#,0);
+italcorr .7body_height#;
+adjust_fit(0,0);
+numeric ww, hh; ww=.5w; hh=vround .5body_height;
+pickup pencircle xscaled hair yscaled vair;
+lft x1=-eps; x2=ww-x1; x3=x4=.5ww;
+y1=y2=y3; top y1=hh; bot y4=-o;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4);
+clearxy;
+x1=x2=hround(ww+u); x4=x5=hround(w-u); x3=hround .5[x1,x4];
+y1=y5; y2=y4; bot y1=-o;
+top y2=hh+o; y3=vround (y1+.5bar_height);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+currentpicture:=currentpicture shifted (0,hh);
+endchar;
+
+ecchar"Per ten thousand sign"; % Yannis, Unicode Computer Modern
+beginchar(oct"230",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,
+ 2*(.5*(9u#+max(6u#,2fudge*(hair#+stem#)))
+ -2.5u#+5/6[fudged.hair#,fudged.stem#]));
+pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+hihi:=(.5*(9u#+max(6u#,2fudge*(hair#+stem#)))
+ -2.5u#+5/6[fudged.hair#,fudged.stem#])
+if monospace: *expansion_factor fi *hppp;
+picture petit_zero; petit_zero := currentpicture;
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+pickup fine.nib;
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+addto currentpicture also (petit_zero shifted (hihi,0));
+addto currentpicture also (petit_zero shifted (2hihi,0));
+picture petit_zero; % Release resources allocated to the picture variable
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar "Alternate pilcrow sign"; % one vertical bar only
+beginchar(oct"231",8.5u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+top y1=h; bot y6=-d-eps; y4=y9=y1;
+y3=y5=good.y .5[y1,y6];
+lft x2=hround u; y2=.5[y1,y3]; rt x9=hround(w-.5u); x4=x5=x6=good.x(x9-1.5u);
+x1=x3=min(.5w,x4);
+filldraw z4..z1{left}...z2{down}...{right}z5--cycle; % filled bowl
+draw z9--z4--z6; % left stem and upper serif
+if serifs:
+ x11=x9; x10-x6=x4-x9;
+ bot y10=-d-eps; y10=y11;
+ draw z10--z11; % lower serif
+fi
+labels(1,2,3,4,5,6,9,10,11); endchar;
+
+ecchar"Baht sign"; % currency of Thailand
+beginchar(oct"232",12.5u#,body_height#,body_height#-asc_height#);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric hh; hh=cap_height;
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52hh;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pickup crisp.nib; pos13(bar,0); pos14(bar,0);
+rt x13r=rt x14r=rt x4; top y13=h; bot y14=-d;
+filldraw stroke z13e--z14e; % vertical crossbar
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar"Numero sign"; % from wncyr
+beginchar(oct"233",15u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant
+ -cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#
+ if serifs: +.5(flare#+(cap_stem#-stem#)) fi ,cap_serif_fit#);
+w:=if serifs: 10u else: 11u fi;
+numeric thin_stem;
+thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib;
+pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+top y1=h;
+if serifs: top y3=.79h; bot y2=.21h;
+else: top y3=h; bot y2=0; fi
+bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+x91=x2-.75flare; bot y91r=-oo; x92=w-x91;
+top y92l=h+oo;
+pos91(thin_stem,-90); pos92(thin_stem,-90);
+if serifs:
+ filldraw stroke z1e--z2e & pulled_arc.e(2,91); % left stem
+ filldraw stroke z4e--z3e & pulled_arc.e(3,92); % right stem
+else:
+ filldraw stroke z1e--z2e; filldraw stroke z4e--z3e; % stems
+fi
+if hefty:
+ penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut;
+ lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l;
+ z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else:
+ penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e--z6e; % diagonal
+fi
+if serifs:
+ if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+fi
+pickup tiny.nib;
+if serifs:
+ x93=x2-1.5flare;
+ y93=.75flare;
+ pos95(flare+(cap_stem-stem),-180);
+ x94=x3+1.5flare;
+ y94=h-y93;
+ pos96(flare+(cap_stem-stem),0);
+ pos92'(thin_stem,90);
+ z92'=z92;
+ pos93(cap_hair,-180);
+ pos94(cap_hair,0);
+ bulb(91,93,95); bulb(92',94,96);
+fi
+w:=15u;
+penpos71(vair,90); penpos73(vair',-90); penpos72(.8curve,180);
+penpos74(.8curve,0); x72r=hround max(.5u,1.25u-.4curve)+9.5u;
+x74r=w-x72r+9u; x71=x73=12u; y71r=h-3u+vround 1.5oo; y73r=x_height-3u-oo;
+y72=y74=.5[h,x_height]-3u-vair_corr; y72l:=y74l:=.52[h,x_height]-3u;
+penstroke pulled_arc.e(71,72) & pulled_arc.e(72,73) & pulled_arc.e(73,74) &
+pulled_arc.e(74,71) & cycle;
+x81=max(lft x72r,x73-(lft w-x73));
+x82=min(rt x74r,lft w); y81=y82=.8x_height-3u;
+pos81(bar,90); pos82(bar,90);
+filldraw stroke z81e--z82e;
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+ecchar "Abzueglich sign"; % jk
+beginchar(oct"234",9u#,body_height#,0);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-eps;
+draw z1--z2; % diagonal
+x3=w-x5=good.x (lft x1 - .5dot_size);
+bot y4 = good.y .5dot_size;
+top y6 = good.y h-.5dot_size;
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar"Aestimated sign (large e)"; % jk
+beginchar(oct"235",(11.25u#+max(.75u#,.5cap_curve#)),cap_height#,0);
+italcorr .76cap_height#*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+3stem_corr=cap_curve if not serifs: -1.5stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib;
+pos1(right_curve,0); pos2(vair,90); pos3(left_curve,180);
+y1=good.y .52h; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "Open bullet"; % derived from Circle operator
+beginchar(oct"236",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h; y2=math_axis;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Servicemark"; % jk, design based on logo font
+beginchar(oct"237",12u#,body_height#,0);
+italcorr .7body_height#;
+adjust_fit(0,0);
+numeric ww, hh; ww=.5w; hh=vround .5body_height;
+pickup pencircle xscaled hair yscaled vair;
+x3=x8= u;
+x2=x4=.382[x3,ww-x3];
+x1=ww-x3;
+x5=x7=.618[x3,ww-x3];
+x6=.5[ww-x3,lft ww];
+top y1=hh; y4=good.y .55hh; bot y8=0;
+y1=y2; y3=.5[y2,y4]; y4=y5; y6=.5[y5,y7]; y7=y8;
+draw z1--z2; draw z4--z5; draw z7--z8;
+super_crescent(2,3,4);
+super_crescent(5,6,7);
+labels(1,2,3,4,5,6,7,8);
+clearxy;
+x1=x2=hround(ww+u); x4=x5=hround(w-u); x3=hround .5[x1,x4];
+y1=y5; y2=y4; bot y1=-o;
+top y2=hh+o; y3=vround (y1+.5bar_height);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+currentpicture:=currentpicture shifted (0,hh);
+endchar;
+
+ecchar "Left square bracket with quill"; % from Haralambous/Plaice
+beginchar(oct"240",9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(if monospace: -1.5u#,u# else: -2.5u#,0 fi);
+pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7',11,11',17,17':
+ pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4;
+y1-y1'=y4-y4'=y7'-y7=y11-y11'=y17-y17'=vair-fine;
+x11=x11'=x17=x17'; x11-x2=x2-x1; y11=y1; y17=y7;
+filldraw z11'l{left}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{right}z17l
+ --z17r--z17'r{left}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{right}z11r--z11'r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Right square bracket with quill"; % from Haralambous/Plaice
+beginchar(oct"241",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(if monospace: u#,-1.5u# else: 0,-2.5u# fi);
+pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7',11,11',17,17':
+ pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+x11=x11'; x17=x17';
+y11=y1; y17=y7;
+x1-x2=x2-x11; x17=x11; y11-y11'=y17'-y17=vair-fine;
+filldraw z11'r{right}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{left}z17'r
+--z17'l--z17l{right}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{left}z11l--z11'l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Cent sign"; % from wasychr (wasy)
+% Modified height and depth (jk)
+% Modified: Bar instead of broken bar
+beginchar(oct"242",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(0,0);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+pickup crisp.nib;
+x6=x7=x8=x9=x2; y7=y2; y8=y4; bot y9=-d; y6-y7 = y8-y9;
+pos6(bar,0); pos7(bar,0);
+pos8(bar,0); pos9(bar,0);
+filldraw stroke z6e--z9e; % bar
+%filldraw stroke z6e--z7e; % upper bar
+%filldraw stroke z8e--z9e; % lower bar
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Sterling sign"; % from italp (cm)
+% already contains bug fix found by Yannis Haralambous
+beginchar(oct"243",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9l=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Currency sign"; % from rsym (wasy)
+beginchar(oct"244",1.13 min(asc_height#,9/7x_height#)+2u#,
+ min(asc_height#,9/7x_height#),0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo;
+circle_points;
+z9 = 1.30[z5,z1];
+z10 = 1.30[z7,z3];
+z11 = 1.30[z1,z5];
+z12 = 1.30[z3,z7];
+draw_circle;
+draw z1--z9;
+draw z3--z10;
+draw z5--z11;
+draw z7--z12;
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+ecchar "Yen symbol"; % from asymbols (msam)
+% Change (jk): Use correct pen for horizontal bars
+compute_spread(.45x_height#, .55x_height#);
+beginchar(oct"245",13u#,cap_height#,0); %% adapted from "Y"
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric
+left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr; right_stem=min(cap_hair if
+hefty:-2stem_corr fi,left_stem); outer_jut=.75cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=.4h; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l]; if
+y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+--diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals & stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut:
+inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+pickup extra_rule.nib;
+x7=x9=x1l; x8=x10=x4r; y9=y10;
+top y7=bar_height; y7=y8; draw z7--z8;
+y9-y7=spread; draw z9--z10; % crossing bars
+penlabels(0,1,2,3,4,5,6,1',2',3',4',5',6',7,8,9,10); endchar;
+
+ecchar "Broken vertical bar"; % jk
+beginchar(oct"246",3u#,body_height#,paren_depth#);
+italcorr body_height#*slant - u#;
+adjust_fit(0,0); pickup rule.nib;
+top y1=h; .5[y1,y4]=math_axis;
+compute_spread(.45x_height#,.55x_height#); y2-y3=spread;
+.5[y2,y3]=math_axis;
+x1=x2=x3=x4=good.x .5w;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+ecchar "Section sign"; % from mathsy, renovated (jk)
+beginchar(oct"247",6.5u#+max(1.5u#,stem#),asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+numeric sstem; sstem=hround .5[s_slab,ess']-fine;
+if sstem < fine.breadth: sstem:=fine.breadth; fi
+pos2(vair,90); pos3(sstem,180);
+pos4(ess',270); pos4'(vair,270);
+pos5'(sstem,0); pos5(sstem,180);
+pos6(ess',90); pos6'(vair,90); pos7(sstem,0);
+pos8(vair,-90);
+top y2r=h+oo; bot y8r=-d-oo;
+y3=.52[y4,y2]; y5=.52[y4,y6]; y7=.52[y6,y8]; y5'=.52[y6,y4];
+y2-y4=y4-y6=y6-y8;
+bot z4'=bot z4; top z6'=top z6;
+lft x3r=hround 1.25u;
+x2=x4=x6=x8=.5w; x5=x7=w-x3; x5'=x3;
+if serifs:
+ pos0(stem,0); pos1(hair,0); pos9(hair,-180); pos10(stem,-180);
+ rt x1r=hround(w-1.5u); x9=w-x1; y2-y1=y9-y8=(y2-y8)/8;
+ bulb(2,1,0); bulb(8,9,10); % bulbs
+else:
+ pos1(.6[slab,flare],-100); pos9(flare,-100); pos2'(vair,-90);
+ rt x1l=hround(w-1.3u); lft x9r=hround .8u; z2'=z2;
+ top y1l=vround .92asc_height+oo; bot y9r=vround .1asc_height-d-oo;
+ filldraw stroke term.e(2',1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(8,9,left,.9,4); % lower arc and terminal
+fi
+filldraw stroke z2e{left}...z3e{down}...z4e{3(x5-x3),y5-y3}
+ ...z5e{down}...{left}z6'e; % upper stroke
+filldraw stroke z4'e{left}...z5'e{down}...z6e{3(x7-x5'),y7-y5'}
+ ...z7e{down}...{left}z8e; % upper stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Umlaut (double dot) accent"; % from accent (cm)
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"250",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+ecchar"Copyright";% (CMBR)
+%beginchar(oct"251",20u#,body_height#,max(paren_depth#,desc_depth#));
+beginchar(oct"251",circ_w#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+5u);
+if serifs:
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(rr-u); lft x3r=hround(ll+u); x2=x4=.55[x3,x1];
+ top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,.7x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(hh-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(rr-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=ll+hround max(u,2u-.5cap_curve); rt x5r=hround(rr-.9u);
+ top y1r=vround .95hh+o; top y2r=hh+o; y3=.5hh;
+ bot y4r=-o; bot y5r=vround .08hh-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+penlabels(1,1',2,3,4,5,6); endchar;
+
+ecchar"Copyleft";% (CMBR)
+%beginchar(oct"253",20u#,body_height#,max(paren_depth#,desc_depth#));
+beginchar(oct"253",circ_w#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-5u);
+rr=hround(.5w+6u);
+if serifs:
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,-90);
+ pos3(cap_curve,-180); pos4(cap_band,-270); pos5(hair,-360);
+ lft x1l=lft x5l=hround(ll+u); rt x3l=hround(rr-u); x2=x4=.55[x3,x1];
+ top y2l=hh+o; bot y4l=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,.7x_height-.5vair),bot y2r-eps);
+ y5=max(good.y .95(hh-y1),y4r+eps);
+ (x2r',y2r)=whatever[z2l,z1r]; x2r:=min(x2r',x2r+.5u);
+ (x4r',y4r)=whatever[z4l,z5r]; x4r:=min(x4r',x4r+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6l=x1l; top y6=hh+o;
+ x1l-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6r--z1'));
+ filldraw z1l--z6l--z6r--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pickup fine.nib; pos1(1.2flare,-80); pos2(slab,-90);
+ pos3(cap_curve,-180); pos4(slab,-270); pos5(flare,-275);
+ lft x1l=hround(ll+1.1u); x2=x4=.5w-1.25u;
+ rt x3l=rr-hround max(u,2u-.5cap_curve); lft x5l=hround(ll+.9u);
+ top y1l=vround .95hh+o; top y2l=hh+o; y3=.5hh;
+ bot y4l=-o; bot y5l=vround .08hh-o; y5r:=good.y y5r; x5r:=good.x x5r;
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4); fi % arc and terminals
+penlabels(1,1',2,3,4,5,6); endchar;
+
+ecchar "Logical not sign"; % from sym % (CMBR)
+beginchar(oct"254",11u#,sym_height#,0);
+italcorr sym_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x3=w-x1;
+y1=y2=good.y .5[bar_height,h]; y2-y3=1.2(h-bar_height);
+draw z1--z2--z3; % bar and stem
+labels(1,2,3); endchar;
+
+ecchar"Circled P"; % Sound recording copyright sign % jk (CMBR)
+%beginchar(oct"255",20u#,body_height#,max(paren_depth#,desc_depth#));
+beginchar(oct"255",circ_w#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+6u);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=ll+hround max(2u,3u-.5cap_stem'); top y1=hh; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5hh); x4=x6=.5w+.75u; x5r=hround(rr-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+fi
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar"Registered"; % jk (CMBR)
+%beginchar(oct"256",20u#,body_height#,max(paren_depth#,desc_depth#));
+beginchar(oct"256",circ_w#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+6u);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=ll+hround max(2u,3u-.5cap_stem'); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5hh+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(rr-2.25u);
+else: x4=.5w+.5u; x5r=hround(rr-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(rr-.25u); y10=1/3[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(rr-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar"High bar (Macron)"; % jk
+beginchar(oct"257",14u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; top y1=top y2=h;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+ecchar "Plus-or-minus sign"; % from sym
+beginarithchar(oct"261"); pickup rule.nib;
+numeric shiftup; shiftup=vround 1.5u;
+x1=x2=.5w; lft x3=lft x5=hround u-eps; x4=x6=w-x3;
+.5[y1,y2]=y3=y4=math_axis+shiftup; top y1=h+shiftup; y5=y6=y2;
+draw z1--z2; % stem
+draw z3--z4; % plus bar
+draw z5--z6; % minus bar
+labels(1,2,3,4,5,6); endchar;
+
+ecchar"Degree sign"; % Yannis, Unicode Computer Modern
+beginchar(oct"260",4u#,cap_height#,0);
+adjust_fit(if monospace: 1.5u#,1.5u# else: u#,u# fi);
+pickup rule.nib; autorounded;
+if .5w <> good.x .5w: change_width; fi
+lft x6=0; x2=w-x6; top y8=h; y8-y2=x2-x8;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Tick mark"; % from accent (cmfonts, acute accent)
+beginchar(oct"264",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff not variant_g:
+ecchar"Micro sign"; % jk, based on cm `u'
+beginchar(oct"265",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos7(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2=x7; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0);
+x0=x3; x0'=x4; y0=y0'; bot y7=-d;
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z7e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); % lower right serif
+ pickup crisp.nib;
+ dish_serif(7,1,d,1/3,jut,e,1/3,jut); fi % lower left serif
+penlabels(1,2,3,4,5,7); labels(6); endchar;
+
+iff variant_g: % This triggers italics
+ecchar "Micro sign"; % from greekl (cm)
+beginchar(oct"265",9u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem);
+y1+.5stem=h+oo; y2-.5stem=-d-o;
+filldraw z1r---z2r..z2l---z1l..cycle; % left stem
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Paragraph mark"; % from mathsy
+beginchar(oct"266",11u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+top y1=h; bot y6=-d-eps; y4=y7=y9=y1;
+y8=y6; y3=y5=good.y .5[y1,y6];
+x7-x4=ceiling(rule_thickness+1.25u);
+lft x2=hround u; y2=.5[y1,y3]; x4=x5=x6; rt x9=hround(w-.5u);
+x7=x8=good.x(x9-1.5u); x1=x3=min(.5w,x4);
+filldraw z4..z1{left}...z2{down}...{right}z5--cycle; % filled bowl
+draw z9--z4--z6; % left stem and upper serif
+draw z7--z8; % right stem
+if serifs:
+ x11=x9; x10-x8=x4-x9;
+ bot y10=-d-eps; y10=y11;
+ draw z10--z11; % lower serif
+fi
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Centered dot"; % reengineered for catalan l.l
+beginchar(oct"267",(11u#-width_adj#-2max(2u#+.5cap_stem#,3u#)),
+ x_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+pos1(udot_diam,0); pos2(udot_diam,90);
+lft x1l=hround(.5w-.5udot_diam); y1+.5udot_diam=vround(bar_height+.5udot_diam);
+z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+ecchar "Reference mark"; % From Haralambous/Plaice %(CMBR)
+beginchar(oct"270",1/3[sym_height#,asc_height#],
+ 1/3[sym_height#,asc_height#],0);
+italcorr .5sym_height#*slant-.5u#;
+adjust_fit(if monospace:
+ -1/3[sym_height#,asc_height#] + mono_charwd#,
+ -1/3[sym_height#,asc_height#] + mono_charwd#
+ else: u#,u# fi);
+pickup rule.nib;
+Dot_size:=min(dot_size,max(1,.25h-rule_thickness));
+lft x1=0; top y1=h;
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=.5h; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+top z1'=.5[top z1,top z3]-(0,.5Dot_size);
+rt z3'=.5[rt z3,rt z2]-(.5Dot_size,0);
+bot z2'=.5[bot z2,bot z4]+(0,.5Dot_size);
+lft z4'=.5[lft z4,lft z1]+(.5Dot_size,0);
+z1'=z1''; z2'=z2''; z3'=z3''; z4'=z4'';
+penpos1'(Dot_size,0);
+penpos1''(Dot_size,90); dot(1',1'');
+penpos2'(Dot_size,0);
+penpos2''(Dot_size,90); dot(2',2'');
+penpos3'(Dot_size,0);
+penpos3''(Dot_size,90); dot(3',3'');
+penpos4'(Dot_size,0);
+penpos4''(Dot_size,90); dot(4',4'');
+labels(1,2,3,4,1',2',3',4',1'',2'',3'',4'',1'r,1'l,1''r,1''l);
+endchar;
+
+ecchar"Root sign"; % textsurd, from wnri (CMBR)
+beginchar(oct"273",8.5u#,body_height#,paren_depth#-rule_thickness#);
+italcorr body_height#*slant;
+adjust_fit(0,-letter_fit#);
+pickup rule.nib;
+ w':=7u;
+ x1=good.x (1/9w'+2.5u); x2=good.x (.65w'+2.5u);
+ bot y1=-.5d; bot y2=asc_height;
+ draw z1--z2; % diagonal
+ pickup crisp.nib;
+% pos3(if hefty: else: .7 fi max(curve,rule_thickness),0);
+ pos3(1.25 vair,0);
+ x3l=1.5[x2,x1]; y3=.5[y1,y2];
+ pos4(rule_thickness,0); x4=x1; bot y4=-.5d;
+ pos5(vair,-45); x5l=good.x(x3l-u); z5l=whatever[z3r,z2];
+ z6=z5r+whatever*(z2-z3r)=whatever[z3l,z4l];
+ z7=whatever[z1,z2]=z3r+whatever*(z4l-z3l);
+ filldraw z5r--z6--z4l--z4--z7--z3r--z5l--cycle; % left diagonal and serif
+x8=x2+2u; y8=y2;
+pickup rule.nib;
+draw z2--z8;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+ecchar "Euro currency sign"; % improved (CMBR)
+% sans serif variant only!
+beginchar(oct"277",14u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,69); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270); % 281
+ rt x1r=hround(w-u); x2=x4=hround(x1-3u);
+ lft x3r=hround (max(u,2u-.5cap_curve)+u); rt x5r=hround(w-1.4u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+% middle bars:
+ pos7(slab,69); pos8(slab,69);
+ pos9(slab,69); pos10(slab,69);
+ % Unterkante oberer Balken:
+ bot y7l=vround(y3+if hefty: .5vair else: min(vair, .06h) fi +eps);
+ % Oberkante unterer Balken:
+ top y9r=vround(y3-if hefty: .5vair else: min(vair, .06h) fi);
+ y8=y7;
+ y10=y9;
+ x7=x9=hround u;
+ rt x8r=hround(w - if serifs: 3 else: 2.5 fi u);
+ rt x10r = rt x8r -
+ ((slab + if hefty: vair else: 2min(vair, .06h) fi) * sind 21);
+ filldraw stroke z7e--z8e; % upper bar
+ filldraw stroke z9e--z10e;% lower bar
+
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+
+penlabels(1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "Times operator"; % from mathsy
+beginarithchar(oct"326"); pickup rule.nib;
+x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+labels(1,2,3,4); endchar;
+
+ecchar "Elementary division operator"; % from mathsy % (CMBR)
+beginarithchar(oct"366"); pickup rule.nib;
+numeric del; del=dot_size-currentbreadth;
+x3-.5del=good.x(.5w-.5del); center_on(x3);
+y3+.5del=good.y(math_axis+math_spread[.5sym_height,.6sym_height]+.5del);
+lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbtl10.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbtl10.mf
new file mode 100644
index 00000000000..becdc573665
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbtl10.mf
@@ -0,0 +1,85 @@
+% EC Typewriter Light 10 point text companion font [2000/02/09 v1.0f (WaS)]
+
+% This is a 10 pt typewriter font with all stroke widths
+% taken from cmtt8, so that it looks lighter than cmtt10
+% and may be used together with the CM Bright fonts.
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TBTL"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+acc_height#:=75/36pt#;
+dot_height#:=75/36pt#;
+udot_height#:=59/36pt;
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+true_mono:=true;
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ttsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/tbto10.mf b/Master/texmf-dist/fonts/source/public/cmbright/tbto10.mf
new file mode 100644
index 00000000000..bdea927d01d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/tbto10.mf
@@ -0,0 +1,86 @@
+% EC Typewriter Light oblique 10 point
+% text companion font [2000/02/09 v1.0f (WaS)]
+
+% This is a 10 pt typewriter font with all stroke widths
+% taken from cmtt8, so that it looks lighter than cmtt10
+% and may be used together with the CM Bright fonts.
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TBTO"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+acc_height#:=75/36pt#;
+dot_height#:=75/36pt#;
+udot_height#:=59/36pt;
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+true_mono:=true;
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ttsymb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ttsymb.mf b/Master/texmf-dist/fonts/source/public/cmbright/ttsymb.mf
new file mode 100644
index 00000000000..9a5e5ff1ecb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ttsymb.mf
@@ -0,0 +1,64 @@
+% ttsymb.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 2000 J"org Knappen, Walter Schmidt
+%
+% This file is part of the CM Bright fonts v1.0f
+%
+% Driver file for the tc fonts,
+% to be used for the Typewriter Light typefaces.
+%
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input exaccess; % accent accessories
+input txpseudo; % pseudoparameters
+
+mode_setup; font_setup; pseudo_setup;
+
+input txaccent; % flat accents for capital letters
+input txgen; % genealogical symbols (by DEK)
+input ttsymbol; % misc. symbols % <-----------------
+if variant_g: % italics?
+ input txitlod; % old style digits (by GJL)
+ input txisuper; % superscript 1,2,3
+ input txifract; % fractions 1/4, 1/2, 3/4
+else: % roman
+ input txromod; % old style digits (by DEK)
+ input txrsuper; % superscript 1,2,3
+ input txrfract; % fractions 1/4, 1/2, 3/4
+fi;
+
+% Ligtable
+
+if not monospace:
+ ligtable "-": oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+fi
+
+% Fontparameter
+%
+font_coding_scheme:="TeX text companion symbols 1---TS1";
+boundarychar:=oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (cap_height#+acc_height#);
+font_desc_depth desc_depth#;
+font_max_height(max(asc_height#,body_height#,
+ cap_height#+acc_height#));
+font_max_depth(max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+font_cap_stem cap_stem#; % No letter capital I in the symbols
+font_baselineskip max(1.2*designsize,body_height#+paren_depth#);
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmbright/ttsymbol.mf b/Master/texmf-dist/fonts/source/public/cmbright/ttsymbol.mf
new file mode 100644
index 00000000000..f1ac0285936
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmbright/ttsymbol.mf
@@ -0,0 +1,2208 @@
+% ttsymbol.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 2000 J"org Knappen, Walter Schmidt
+%
+% This file is part of the CM bright fonts v1.0f
+%
+% Miscellaneous symbols for the TS1 encoding,
+% to be used for the `Typewriter Light' typefaces.
+%
+% Heavily borrowing from existent fonts, like Computer Modern, AMS symbols
+% and wasy symbols
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+ecchar"Single straight base quote"; % jk
+beginchar(oct"015",7u#,asc_height#,0);
+ numeric shifth_down;
+ adjust_fit(0,0);
+ x1=x2=.5w;
+ y2=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift;
+ if serifs:
+ y1=flare/2; the_shift=h-.5stem-y1;
+ pickup crisp.nib;
+ pos1(flare,0); pos2(vair,0);
+ filldraw circ_stroke (z1e--z2e); % stem and bulb
+ else:
+ top y1=stem; the_shift=h-y1;
+ pickup fine.nib;
+ pos1(stem,0); pos2(vair,0);
+ filldraw stroke z1e--z2e; % stem
+ fi
+ charht:=dot_size#; chardp:=desc_depth#;
+ penlabels(1,2,3,4);
+endchar;
+
+ecchar"Double straight base quotes"; % from pl_cud (plfonts)
+beginchar(oct"022",9u#,asc_height#,0);
+ numeric top_width#,spread#,shifth_down;
+ top_width#=if serifs: flare# else: stem# fi;
+ spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+ adjust_fit(0,0);
+ numeric the_shift;
+ x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+ y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift;
+ if serifs:
+ y1=flare/2; the_shift=h-.5stem-y1;
+ pickup crisp.nib;
+ pos1(flare,0); pos2(vair,0); pos3(flare,0); pos4(vair,0);
+ filldraw circ_stroke (z1e--z2e); % left stem and bulb
+ filldraw circ_stroke (z3e--z4e); % right stem and bulb
+ else:
+ top y1=stem; the_shift=h-y1;
+ pickup fine.nib;
+ pos1(stem,0); pos2(vair,0); pos3(stem,0); pos4(vair,0);
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ fi
+ charht:=dot_size#; chardp:=desc_depth#;
+ penlabels(1,2,3,4);
+endchar;
+
+ecchar "twelve u dash";
+beginchar(oct"025",12u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar "three quarters em dash";
+beginchar(oct"026",13.5u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+ecchar "Capital compound word mark";
+beginchar(oct"027",0,cap_height#,0);
+zero_width;
+endchar;
+
+ecchar "Leftward arrow"; % from sym.mf (cmfonts)
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"030",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;
+x3=x4=x0+if monospace:3u else:4u fi+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar "Rightward arrow"; % from sym.mf (cmfonts)
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"031",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;
+x3=x4=x0-if monospace:3u else:4u fi-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar"Tie accent"; % from italms (cmfonts)
+beginchar(oct"032",5u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=hround(.5w-.5hair); x2=.5[x1,x3];
+rt x3r=hround(w+4u+2letter_fit+.5hair);
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+ecchar"New tie accent"; % centered
+beginchar(oct"034",9u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90);
+pos3(hair,0);
+lft x1r=w-rt x3r=hround(2u-.5vair); x2=.5w;
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
+
+ecchar "Ascender height compound word mark";
+beginchar(oct"037",0,asc_height#,0);
+zero_width;
+endchar;
+
+iff not variant_g: % not italic
+ecchar"Blank symbol"; % jk
+beginchar(oct"040",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+put_cross(.5stem+if serifs: .9max(limit_dist,jut) else: 1.8u fi,.5stem+3u);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+iff variant_g: % italic
+ecchar"Blank symbol"; % jk
+beginchar(oct"040",8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+put_cross(.5stem+if serifs: .9max(limit_dist,jut) else: 1.8u fi,.5stem+3u);
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar"Dollar sign"; % from romanp (cm)
+beginchar("$",9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+ecchar "Straight single quote"; % from romsub (cm)
+beginchar(oct"047",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+adjust_fit(0,0);
+x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; fi % stem
+penlabels(1,2); endchar;
+
+ecchar "Comma";
+beginchar(",",5u#,pdot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5pdot_diam=hround(.5w-.5pdot_diam); y1-.5pdot_diam=0;
+comma(1,a,pdot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+ecchar "Double hyphen or short equals sign"; % jk
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"055",6u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+pos3(thickness,90); pos4(thickness,90);
+y1=y2; y3=y4;
+top y1=vround .5h+.5thickness+.5spread;
+top y3=vround .5h+.5thickness-.5spread;
+rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+x3=x1; x4=x2;
+filldraw stroke z1e--z2e; % upper bar
+filldraw stroke z3e--z4e; % lower bar
+penlabels(1,2,3,4); endchar;
+
+ecchar "Period";
+beginchar(".",5u#,pdot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(pdot_diam,0); pos2(pdot_diam,90);
+lft x1l=hround(.5w-.5pdot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+ecchar "Asterisk at the axis"; % from mathsy
+beginchar(oct"052",9u#,v_center(x_height#));
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+ecchar "Fraction"; % from punct (cm)" Virgule (slash)"
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+ecchar "Left angle bracket";
+beginchar(oct"074",7u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; x1=x3; lft x2=hround 2u-1-eps;
+top y1=h+eps; .5[y1,y3]=y2=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar "Minus sign";
+beginarithchar("="); pickup extra_rule.nib;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+ecchar "Right angle bracket";
+beginchar(oct"076",7u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt(w-x1)=hround(w-u)+eps; x1=x3; lft(w-x2)=hround 2u-1-eps;
+top y1=h+eps; .5[y1,y3]=y2=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+ecchar"Mho sign (turned Omega)"; % from lasy
+beginchar(oct"115",13u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#; %italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,-90); pos2(cap_curve,0);
+pos3(vair,0); pos4(cap_curve,180); pos5(vair,180);
+x1=.5w; bot y1r=0-o; lft x4r=hround u; y2=y4=1/3h; x2=w-x4;
+rt x5l=hround(1/3(w+.5u)+.5hair); top y3=top y5=h; x3=w-x5;
+filldraw stroke z3e{down}...{down}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{up}...{up}z5e; % bowl
+numeric arm_thickness; path p; p=z3{down}...{down}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,90); pos7(fudged.hair,0);
+top y6r=h; x6=x3; rt x7r=hround (w-.8u); y7=good.y(y6l-.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w+h,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,1.2beak_jut); % right arm and beak
+pos8(arm_thickness,90); pos9(fudged.hair,180);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,-1.2beak_jut); % left arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar"Big circle for copyright, etc";
+beginchar("O",20u#,body_height#,max(paren_depth#,desc_depth#)); autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Ohm sign (ISO 6937)"; % from greeku (cmfonts)
+beginchar(oct"127",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar"Musical note (one eigth note)"; % jk
+beginchar("n",11u#,asc_height#,0);
+pickup rule.nib;
+x1=3/5w; x2=x1; top y1=h; bot y2=.5bar_height;
+lft x3=u; x5= x2; x4=x6=.5[x3,x5];
+y3=y5=vround(.5bar_height); y4=y6-bar_height=-oo;
+x7=x1; rt x9=w-u; x8=.5[x7,x9];
+y7=y1; bot y9=vround(.5bar_height); y8=.5[y7,y9];
+draw z1--z2; % stem
+filldraw z3{down}...z4{right}...z5{up}...z6{left}...cycle; % body
+draw z7{down}...z8...{down}z9; % flag
+endchar;
+
+ecchar "Left semantic bracket"; % [[ from stmaryrd
+beginchar(oct"133",7.25u#,body_height#,paren_depth#);
+adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5rule_thickness)-1-eps;
+filldraw stroke z1e--z2e; % left stem
+pos7(rule_thickness,0); pos8(rule_thickness,0);
+top y7=h; bot y8=-d; lft x7l=lft x8l=hround(4.75u-.5rule_thickness)-1-eps;
+filldraw stroke z7e--z8e; % right stem
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+pos5(rule_thickness,90); pos6(rule_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+ecchar "Right semantic bracket"; % ]] from stmaryrd
+beginchar(oct"135",7.25u#,body_height#,paren_depth#);
+adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5rule_thickness)+1+eps;
+filldraw stroke z1e--z2e; % left stem
+pos7(rule_thickness,0); pos8(rule_thickness,0);
+top y7=h; bot y8=-d; rt x7r=rt x8r=hround(w-4.75u+.5rule_thickness)+1+eps;
+filldraw stroke z7e--z8e; % right stem
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+pos5(rule_thickness,90); pos6(rule_thickness,90);
+x3=x5=x1l; lft x4=lft x6=ceiling(.4u)-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar "Upward arrow"; % from sym
+beginchar(oct"136",9u#,asc_height#,asc_depth#);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0-if monospace:.24 else:.36 fi asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+%numeric t; path p; p=z4l{z9-z4}..z6r;
+numeric t; path p; p=z4l{z9-z4}..z6l;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar "Downward arrow"; % from sym
+beginchar(oct"137",9u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=if monospace:3u else:4u fi+eps;
+y3=y4=y0+if monospace:.24 else:.36 fi asc_height+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+%t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+t=xpart(p intersectiontimes((x2l,-d)--(x2l,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+ecchar"Backwards tick mark"; % from accent (cmfonts, grave accent)
+beginchar(oct"140",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+ecchar "Low lying tilde (squiggle)";
+beginchar(oct"176",11u#,min(bar_height#,2/7x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta;
+ theta=angle(1/8(7u if monospace: /expansion_factor fi-vair),1/4acc_height);
+% theta=angle(1/6(6u-vair),1/4h);
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=0;
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=0;
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+iff not monospace:
+ecchar "Double hyphen-hyphenchar"; % jk
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"177",3u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+pos3(thickness,90); pos4(thickness,90);
+y1=y2; y3=y4;
+top y1=vround .5h+.5thickness+.5spread;
+top y3=vround .5h+.5thickness-.5spread;
+rt x2=hround(2w-u)+eps;
+lft x1=hround .2u-eps;
+x3=x1; x4=x2;
+filldraw stroke z1e--z2e; % upper bar
+filldraw stroke z3e--z4e; % lower bar
+penlabels(1,2,3,4); endchar;
+
+iff monospace:
+ecchar "Double hyphen-hyphenchar"; % jk
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"177",6u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+pos3(thickness,90); pos4(thickness,90);
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+x3=x1; x4=x2;
+filldraw stroke z1e--z2e; % upper bar
+filldraw stroke z3e--z4e; % lower bar
+penlabels(1,2,3,4); endchar;
+
+ecchar"Breve";
+beginchar(oct"200",11u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+ecchar "Hachek (Caron)";
+beginchar(oct"201",11u#,min(asc_height#,2x_height#),0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+ecchar"Double tick mark (inch sign)"; % from accent (hungarian long umlaut)
+beginchar(oct"202",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+ecchar"Double backwards tick mark"; % jk
+beginchar(oct"203",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x1-.5stem=hround 1.5u; x2=3.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w-u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+
+ecchar "Dagger mark"; % from mathsy
+beginchar(oct"204",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos2(thin_join,0); pos3(stem,0); pos4(hair,0);
+pos5(stem,90); pos2'(thin_join,90); pos6(stem,90); z2'=z2;
+x1=x2=x3=x4; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x5-.5stem=hround u; x6=w-x5;
+y1+.5stem=h+oo; y2=y5=y6; y3=.57y2; bot y4=-d-o;
+y5+.5stem=floor(x_height+.5stem);
+filldraw circ_stroke z1e{down}..z2e{down}..z3e{down}..z4e; % stem
+filldraw circ_stroke z5e{right}..{right}z2'e; % left bulb
+filldraw circ_stroke z6e{left}..{left}z2'e; % right bulb
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar "Double dagger mark"; % from mathsy
+beginchar(oct"205",8u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos2(thin_join,0); pos3(stem,0);
+pos4(stem,90); pos2'(thin_join,90); pos5(stem,90); z2'=z2;
+x1=x2=x3; x1-.5stem=hround(.5w-.5stem); center_on(x1);
+x4-.5stem=hround u; x5=w-x4;
+y1+.5stem=h+oo; y2=y4=y5=.5[y1,y3]; y3-.5stem=ceiling(.5[-d,h]);
+filldraw circ_stroke z1e{down}..{down}z2e; % top stem
+filldraw circ_stroke z3e{up}..{up}z2e; % upper middle stem
+filldraw circ_stroke z4e{right}..{right}z2'e; % top left bulb
+filldraw circ_stroke z5e{left}..{left}z2'e; % top right bulb
+pos6(stem,0); pos7(thin_join,0); pos8(stem,0);
+pos9(stem,90); pos7'(thin_join,90); pos0(stem,90); z7'=z7;
+x6=x7=x8=x1; x9=x4; x0=x5;
+y6=y3-stem-1; y7=y9=y0=.5[y6,y8]; y8-.5stem=-d-oo;
+filldraw circ_stroke z6e{down}..{down}z7e; % lower middle stem
+filldraw circ_stroke z8e{up}..{up}z7e; % bottom stem
+filldraw circ_stroke z9e{right}..{right}z7'e; % bottom left bulb
+filldraw circ_stroke z0e{left}..{left}z7'e; % bottom right bulb
+penlabels(1,2,3,4,5,6,7,8,9,0); endchar;
+
+ecchar "Double vertical line (norm or cardinality)"; % from mathsy
+% Change (jk): Made the two lines as close as in \P
+beginchar(oct"206",9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2; top y1=h; .5[y1,y2]=math_axis;
+x3=x4=w-x1; y3=y1; y4=y2;
+x3-x1=ceiling(rule_thickness+1.25u);
+draw z1--z2; draw z3--z4; % stems
+labels(1,2,3,4); endchar;
+
+ecchar "Per mill sign"; % by Emma Pease
+beginchar(oct"207",15u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5(w-6u)-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+%
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-7u); lft x6r=hround(.5(w-6u)+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+%
+pos13(vair,90); pos14(left_curve,180); pos15(vair,270);
+pos16(right_curve,360);
+bot y15r=-d; rt x16r=hround(w-u); lft x14r=hround(.5(w-6u)+1.5u+6u);
+top y13r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x13=x15=.5[x14,x16]; y14=y16=.5[y13,y15];
+filldraw stroke pulled_super_arc.e(13,14)(superpull)
+ & pulled_super_arc.e(14,15)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(15,16) & super_arc.e(16,13); % right half of lower bowl
+%
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-6u-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+ecchar "Bullet"; % from mathsy
+beginchar(oct"210",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h; y2=math_axis; circle_points;
+filldraw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle; % circle and interior
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Centigrade sign";
+if serifs: beginchar(oct"211",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(4u#,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(oct"211",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(4u#,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+penlabels(1,1',2,3,4,5,6);
+clearxy;
+pickup rule.nib; autorounded;
+lft x6=-4u; rt x2=0; top y8=h; y8-y2=x2-x8;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+endchar;
+
+ecchar "Oldstyle dollar sign"; % based on romanp (cm)
+beginchar(oct"212",11u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0); pos13(bar,0); pos14(bar,0);
+x11=x12; x13=x14=w-x11; x13-x11=ceiling(rule_thickness+1.25u);
+top y12=top y14=h; bot y11=bot y13=-d;
+filldraw stroke z12e--z11e; % left vertical crossbar
+filldraw stroke z14e--z13e; %right vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+ecchar "Oldstyle cent sign"; % jk, based on cm `c'
+beginchar(oct"213",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(0,0);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+pickup crisp.nib;
+x7=x3; x6=w-x7; y6=h; y7=-d;
+numeric theta; theta=angle(z7-z6)-90;
+pos6(vair,theta); pos7(vair,theta);
+filldraw stroke z6e--z7e; % diagonal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+iff variant_g: % I use this as marker for italic fonts
+ecchar "Italic florin sign (italic letter f)"; % from itall (cm)
+beginchar(oct"214",max(1.5u#,stem#)+max(3.5u#,2flare#),
+ asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+
+
+iff not variant_g:
+ecchar "Florin sign (The letter f)"; % from romanl (cm)
+beginchar(oct"214",5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+ecchar"Colon sign or Cedi sign"; % Panamese or Ghanese currency
+if serifs: beginchar(oct"215",13u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ numeric hh; hh=cap_height;
+ top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(hh-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+else: beginchar(oct"215",11.5u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ numeric hh; hh=cap_height;
+ top y1r=vround .95hh+o; top y2r=hh+o; y3=.5hh;
+ bot y4r=-o; bot y5r=vround .08hh-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+fi
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6,11,12); endchar;
+
+ecchar"Won sign"; % Korean currency
+beginchar(oct"216",18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6);
+prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)
+ --.5[z5l,z6l]--.5[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+pickup extra_rule.nib;
+x9=x11=x1l; x10=x12=x8r; y9=y10;
+top y9=bar_height; y11=y12; draw z9--z10;
+y11-y9=spread; draw z11--z12; % crossing bars
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,23,45,67); endchar;
+
+ecchar"Naira sign"; % Nigerian currency
+beginchar(oct"217",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+
+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#+.25u#,cap_serif_fit#+.25u#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+pickup extra_rule.nib;
+x8=x10=0; x9=x11=w; y10=y11;
+top y8=bar_height; y8=y9; draw z8--z9;
+y10-y8=spread; draw z10--z11; % crossing bars
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,1',2,3,4,4',5,6,7,8,9,10,11); endchar;
+
+ecchar"Guarani sign"; % Currency of Paraguay
+if serifs: beginchar(oct"220",14u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ numeric hh; hh=cap_height;
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar(oct"220",14u#,body_height#,body_height#-asc_height#);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric hh; hh=cap_height;
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93hh+o; top y2r=hh+o; y3=.5hh;
+ bot y4r=-o; bot y5r=vround .07hh-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+ lft x12l=lft x11l=hround(x2-.5bar); top y12=h; bot y11=-d;
+ filldraw stroke z12e--z11e; % vertical crossbar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9,11,12); endchar;
+
+ecchar"Peso sign";
+beginchar(oct"221",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#+.25u#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+pickup extra_rule.nib;
+x8=0; x9=.5[x1r,x5r]; top y8=bar_height; y8=y9; draw z8--z9;
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); labels(8,9);
+endchar;
+
+ecchar "Lira sign"; %
+compute_spread(.35x_height#,.45x_height#);
+beginchar(oct"222",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9l=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pickup extra_rule.nib;
+x10=3u; x11=w-4.5u; x12=3u; x13=w-4.5u;
+top y12=bar_height;
+y11=y10; y13=y12; y10-y12=spread;
+draw z10--z11; % upper bar
+draw z12--z13; % lower bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+ecchar"Recipe sign";
+beginchar(oct"223",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+x1:=x8;
+put_cross(.5cap_stem+if serifs: .9max(limit_dist,cap_jut) else: .8u fi,
+ .5cap_stem+if serifs: 3u else: 4u fi);
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+iff not variant_g: % not italic
+ecchar"Interrobang";
+beginchar(oct"224",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; % dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=hround .9h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff not variant_g: % not italic
+ecchar"Gnaborretni";
+beginchar(oct"225",8.5u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); top y8r=h; z7=z8; % dot(7,8); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(top_width,180); pos6(top_width,180);
+x2=x4=x5=x6=x7; lft x3r=hround u; top y6=.25[bot y8l,h-x_height]-1;
+bot y2r=hround .1asc_height-d-oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],-70);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,bot y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff variant_g: % italic
+ecchar"Interrobang";
+beginchar(oct"224",9u#,asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(0,0);
+adjust_fit(0,0); pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); bot y11l=0; z10=z11; % dot(10,11); % dot
+pickup fine.nib; pos1(flare,180); pos2(hair,180); pos3(vair,90);
+lft x1r=hround u; x3=.5w;
+y1-.5flare=x_height; top y3r=hround .9h+o; bulb(3,2,1); % bulb
+pos8(vair,-90); x8=.5w; bot y8r=.25[top y11r,x_height]+1;
+numeric theta; theta=90+angle(10u,y3-y8); slope:=(y3-y8)/10u;
+pos3'(vair,-90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+rt x4l=hround(w-1.5u); lft x7r=hround 1/3w;
+x4l-x4r=x7l-x7r=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,0); rt x9r=hround(2/3w+.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{down}
+ ..z5e---z6e..z7e{down} & super_arc.e(7,8)...{up}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff variant_g: % italic
+ecchar"Gnaborretni";
+beginchar(oct"225",9u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos10(dot_size,0); pos11(dot_size,90);
+lft x10l=hround(.5w-.5dot_size); top y11r=h; z10=z11; % dot(10,11); % dot
+pickup fine.nib; pos1(flare,0); pos2(hair,0); pos3(vair,-90);
+rt x1r=hround(w-u); x3=.5w; y1+.5flare=asc_height-x_height-d;
+bot y3r=hround .1asc_height-d-o; bulb(3,2,1); % bulb
+pos8(vair,90); x8=.5w; top y8r=.25[bot y11l,y1+.5flare]-1;
+numeric theta; theta=angle(10u,y8-y3)-90; slope:=(y8-y3)/10u;
+pos3'(vair,90); z3'=z3; pos0(vstem,theta); x0=x3; y0=1/3[y8,y3];
+lft x4l=hround 1.5u; rt x7r=hround 2/3w;
+x4r-x4l=x7r-x7l=hround .5[vair,vstem]-fine;
+ellipse_set(3'l,4l,5l,0l); ellipse_set(3'r,4r,5r,0r); y4=y4r;
+ellipse_set(8l,7l,6l,0l); ellipse_set(8r,7r,6r,0r); y7=y7r;
+pos9(hair,180); lft x9r=hround(1/3w-.5hair); y9=good.y .5[y8,y0];
+filldraw stroke super_arc.e(3',4) & z4e{up}
+ ..z5e---z6e..z7e{up} & super_arc.e(7,8)...{down}z9e; % main stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11);
+clearxy;
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+iff not variant_g: % not italic
+ecchar"Dong sign"; % Vietnamese currency
+beginchar(oct"226",10u#+serif_fit#,body_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+numeric hh; hh=asc_height;
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=hh;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo if monospace: -hair fi;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height if monospace: -.5hair fi;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+%
+ pos8(bar,90); pos9(bar,90);
+ x8=.5[x4,x5];
+ if serifs: x9=x2r+jut; else: x9=w; fi
+ if serifs: y8=y9=.5[y.a2-.5slab,y4+.5vair];
+ else: y8=y9=.5[x_height,asc_height-serif_drop]; fi
+ filldraw stroke z8e--z9e;
+currentpicture:=currentpicture shifted (0,body_height-asc_height);
+pickup rule.nib;
+x10=x5; x11=x9; top y10=0; y10=y11;
+draw z10--z11;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+iff variant_g: %italic
+ecchar"Italic Dong sign"; % Vietnamese currency
+beginchar(oct"226",9u#,body_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% the bar
+ pos8(bar,90); pos9(bar,90);
+ x8=x1; % .5[x1,x4];
+ x9=x6;
+ y8=y9=.5[y.a2-.5slab,y1+.5vair];
+ filldraw stroke z8e--z9e;
+currentpicture:=currentpicture shifted (0,body_height-asc_height);
+pickup rule.nib;
+x10=x2; x11=x9; top y10=0; y10=y11;
+draw z10--z11;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar"Trademark"; % jk, design based on logo font
+beginchar(oct"227",12u#,body_height#,0);
+italcorr .7body_height#;
+adjust_fit(0,0);
+numeric ww, hh; ww=.5w; hh=vround .5body_height;
+pickup pencircle xscaled hair yscaled vair;
+lft x1=-eps; x2=ww-x1; x3=x4=.5ww;
+y1=y2=y3; top y1=hh; bot y4=-o;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4);
+clearxy;
+x1=x2=hround(ww+u); x4=x5=hround(w-u); x3=hround .5[x1,x4];
+y1=y5; y2=y4; bot y1=-o;
+top y2=hh+o; y3=vround (y1+.5bar_height);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+currentpicture:=currentpicture shifted (0,hh);
+endchar;
+
+ecchar"Per ten thousand sign"; % Yannis, Unicode Computer Modern
+beginchar(oct"230",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,
+ 2*(.5*(9u#+max(6u#,2fudge*(hair#+stem#)))
+ -2.5u#+5/6[fudged.hair#,fudged.stem#]));
+pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+hihi:=(.5*(9u#+max(6u#,2fudge*(hair#+stem#)))
+ -2.5u#+5/6[fudged.hair#,fudged.stem#])
+if monospace: *expansion_factor fi *hppp;
+picture petit_zero; petit_zero := currentpicture;
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+pickup fine.nib;
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+addto currentpicture also (petit_zero shifted (hihi,0));
+addto currentpicture also (petit_zero shifted (2hihi,0));
+picture petit_zero; % Release resources allocated to the picture variable
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar "Alternate pilcrow sign"; % one vertical bar only
+beginchar(oct"231",8.5u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+top y1=h; bot y6=-d-eps; y4=y9=y1;
+y3=y5=good.y .5[y1,y6];
+lft x2=hround u; y2=.5[y1,y3]; rt x9=hround(w-.5u); x4=x5=x6=good.x(x9-1.5u);
+x1=x3=min(.5w,x4);
+filldraw z4..z1{left}...z2{down}...{right}z5--cycle; % filled bowl
+draw z9--z4--z6; % left stem and upper serif
+if serifs:
+ x11=x9; x10-x6=x4-x9;
+ bot y10=-d-eps; y10=y11;
+ draw z10--z11; % lower serif
+fi
+labels(1,2,3,4,5,6,9,10,11); endchar;
+
+ecchar"Baht sign"; % currency of Thailand
+beginchar(oct"232",12.5u#,body_height#,body_height#-asc_height#);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric hh; hh=cap_height;
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52hh;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pickup crisp.nib; pos13(bar,0); pos14(bar,0);
+rt x13r=rt x14r=rt x4; top y13=h; bot y14=-d;
+filldraw stroke z13e--z14e; % vertical crossbar
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+ecchar"Numero sign"; % from wncyr
+beginchar(oct"233",15u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant
+ -cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#
+ if serifs: +.5(flare#+(cap_stem#-stem#)) fi ,cap_serif_fit#);
+w:=if serifs: 10u else: 11u fi;
+numeric thin_stem;
+thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib;
+pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+top y1=h;
+if serifs: top y3=.79h; bot y2=.21h;
+else: top y3=h; bot y2=0; fi
+bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+x91=x2-.75flare; bot y91r=-oo; x92=w-x91;
+top y92l=h+oo;
+pos91(thin_stem,-90); pos92(thin_stem,-90);
+if serifs:
+ filldraw stroke z1e--z2e & pulled_arc.e(2,91); % left stem
+ filldraw stroke z4e--z3e & pulled_arc.e(3,92); % right stem
+else:
+ filldraw stroke z1e--z2e; filldraw stroke z4e--z3e; % stems
+fi
+if hefty:
+ penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut;
+ lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l;
+ z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else:
+ penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e--z6e; % diagonal
+fi
+if serifs:
+ if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+fi
+pickup tiny.nib;
+if serifs:
+ x93=x2-1.5flare;
+ y93=.75flare;
+ pos95(flare+(cap_stem-stem),-180);
+ x94=x3+1.5flare;
+ y94=h-y93;
+ pos96(flare+(cap_stem-stem),0);
+ pos92'(thin_stem,90);
+ z92'=z92;
+ pos93(cap_hair,-180);
+ pos94(cap_hair,0);
+ bulb(91,93,95); bulb(92',94,96);
+fi
+w:=15u;
+penpos71(vair,90); penpos73(vair',-90); penpos72(.8curve,180);
+penpos74(.8curve,0); x72r=hround max(.5u,1.25u-.4curve)+9.5u;
+x74r=w-x72r+9u; x71=x73=12u; y71r=h-3u+vround 1.5oo; y73r=x_height-3u-oo;
+y72=y74=.5[h,x_height]-3u-vair_corr; y72l:=y74l:=.52[h,x_height]-3u;
+penstroke pulled_arc.e(71,72) & pulled_arc.e(72,73) & pulled_arc.e(73,74) &
+pulled_arc.e(74,71) & cycle;
+x81=max(lft x72r,x73-(lft w-x73));
+x82=min(rt x74r,lft w); y81=y82=.8x_height-3u;
+pos81(bar,90); pos82(bar,90);
+filldraw stroke z81e--z82e;
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+ecchar "Abzueglich sign"; % jk
+beginchar(oct"234",9u#,body_height#,0);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-eps;
+draw z1--z2; % diagonal
+x3=w-x5=good.x (lft x1 - .5dot_size);
+bot y4 = good.y .5dot_size;
+top y6 = good.y h-.5dot_size;
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6); endchar;
+
+ecchar"Aestimated sign (large e)"; % jk
+beginchar(oct"235",(11.25u#+max(.75u#,.5cap_curve#)),cap_height#,0);
+italcorr .76cap_height#*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+3stem_corr=cap_curve if not serifs: -1.5stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib;
+pos1(right_curve,0); pos2(vair,90); pos3(left_curve,180);
+y1=good.y .52h; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+ecchar "Open bullet"; % derived from Circle operator
+beginchar(oct"236",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h; y2=math_axis;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Servicemark"; % jk, design based on logo font
+beginchar(oct"237",12u#,body_height#,0);
+italcorr .7body_height#;
+adjust_fit(0,0);
+numeric ww, hh; ww=.5w; hh=vround .5body_height;
+pickup pencircle xscaled hair yscaled vair;
+x3=x8= u;
+x2=x4=.382[x3,ww-x3];
+x1=ww-x3;
+x5=x7=.618[x3,ww-x3];
+x6=.5[ww-x3,lft ww];
+top y1=hh; y4=good.y .55hh; bot y8=0;
+y1=y2; y3=.5[y2,y4]; y4=y5; y6=.5[y5,y7]; y7=y8;
+draw z1--z2; draw z4--z5; draw z7--z8;
+super_crescent(2,3,4);
+super_crescent(5,6,7);
+labels(1,2,3,4,5,6,7,8);
+clearxy;
+x1=x2=hround(ww+u); x4=x5=hround(w-u); x3=hround .5[x1,x4];
+y1=y5; y2=y4; bot y1=-o;
+top y2=hh+o; y3=vround (y1+.5bar_height);
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+currentpicture:=currentpicture shifted (0,hh);
+endchar;
+
+ecchar "Left square bracket with quill"; % from Haralambous/Plaice
+beginchar(oct"240",9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(if monospace: -1.5u#,u# else: -2.5u#,0 fi);
+pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7',11,11',17,17':
+ pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4;
+y1-y1'=y4-y4'=y7'-y7=y11-y11'=y17-y17'=vair-fine;
+x11=x11'=x17=x17'; x11-x2=x2-x1; y11=y1; y17=y7;
+filldraw z11'l{left}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{right}z17l
+ --z17r--z17'r{left}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{right}z11r--z11'r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Right square bracket with quill"; % from Haralambous/Plaice
+beginchar(oct"241",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(if monospace: u#,-1.5u# else: 0,-2.5u# fi);
+pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7',11,11',17,17':
+ pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+x11=x11'; x17=x17';
+y11=y1; y17=y7;
+x1-x2=x2-x11; x17=x11; y11-y11'=y17'-y17=vair-fine;
+filldraw z11'r{right}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{left}z17'r
+--z17'l--z17l{right}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{left}z11l--z11'l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+ecchar "Cent sign"; % from wasychr (wasy)
+% Modified height and depth (jk)
+% Modified: Bar instead of broken bar
+beginchar(oct"242",9u#,x_height#+.5desc_depth#,.5desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(0,0);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+pickup crisp.nib;
+x6=x7=x8=x9=x2; y7=y2; y8=y4; bot y9=-d; y6-y7 = y8-y9;
+pos6(bar,0); pos7(bar,0);
+pos8(bar,0); pos9(bar,0);
+filldraw stroke z6e--z9e; % bar
+%filldraw stroke z6e--z7e; % upper bar
+%filldraw stroke z8e--z9e; % lower bar
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Sterling sign"; % from italp (cm)
+% already contains bug fix found by Yannis Haralambous
+beginchar(oct"243",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9l=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Currency sign"; % from rsym (wasy)
+beginchar(oct"244",1.13 min(asc_height#,9/7x_height#)+2u#,
+ min(asc_height#,9/7x_height#),0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo;
+circle_points;
+z9 = 1.30[z5,z1];
+z10 = 1.30[z7,z3];
+z11 = 1.30[z1,z5];
+z12 = 1.30[z3,z7];
+draw_circle;
+draw z1--z9;
+draw z3--z10;
+draw z5--z11;
+draw z7--z12;
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+ecchar "Yen symbol"; % from asymbols (msam)
+% Change (jk): Use correct pen for horizontal bars
+compute_spread(.45x_height#, .55x_height#);
+beginchar(oct"245",13u#,cap_height#,0); %% adapted from "Y"
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#); numeric
+left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr; right_stem=min(cap_hair if
+hefty:-2stem_corr fi,left_stem); outer_jut=.75cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h;
+y2=y3=y5=.4h; dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l]; if
+y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+--diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals & stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut:
+inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+pickup extra_rule.nib;
+x7=x9=x1l; x8=x10=x4r; y9=y10;
+top y7=bar_height; y7=y8; draw z7--z8;
+y9-y7=spread; draw z9--z10; % crossing bars
+penlabels(0,1,2,3,4,5,6,1',2',3',4',5',6',7,8,9,10); endchar;
+
+ecchar "Broken vertical bar"; % jk
+beginchar(oct"246",3u#,body_height#,paren_depth#);
+italcorr body_height#*slant - u#;
+adjust_fit(0,0); pickup rule.nib;
+top y1=h; .5[y1,y4]=math_axis;
+compute_spread(.45x_height#,.55x_height#); y2-y3=spread;
+.5[y2,y3]=math_axis;
+x1=x2=x3=x4=good.x .5w;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+ecchar "Section sign"; % from mathsy, renovated (jk)
+beginchar(oct"247",6.5u#+max(1.5u#,stem#),asc_height#,desc_depth#);
+adjust_fit(0,0); pickup fine.nib;
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+numeric sstem; sstem=hround .5[s_slab,ess']-fine;
+if sstem < fine.breadth: sstem:=fine.breadth; fi
+pos2(vair,90); pos3(sstem,180);
+pos4(ess',270); pos4'(vair,270);
+pos5'(sstem,0); pos5(sstem,180);
+pos6(ess',90); pos6'(vair,90); pos7(sstem,0);
+pos8(vair,-90);
+top y2r=h+oo; bot y8r=-d-oo;
+y3=.52[y4,y2]; y5=.52[y4,y6]; y7=.52[y6,y8]; y5'=.52[y6,y4];
+y2-y4=y4-y6=y6-y8;
+bot z4'=bot z4; top z6'=top z6;
+lft x3r=hround 1.25u;
+x2=x4=x6=x8=.5w; x5=x7=w-x3; x5'=x3;
+if serifs:
+ pos0(stem,0); pos1(hair,0); pos9(hair,-180); pos10(stem,-180);
+ rt x1r=hround(w-1.5u); x9=w-x1; y2-y1=y9-y8=(y2-y8)/8;
+ bulb(2,1,0); bulb(8,9,10); % bulbs
+else:
+ pos1(.6[slab,flare],-100); pos9(flare,-100); pos2'(vair,-90);
+ rt x1l=hround(w-1.3u); lft x9r=hround .8u; z2'=z2;
+ top y1l=vround .92asc_height+oo; bot y9r=vround .1asc_height-d-oo;
+ filldraw stroke term.e(2',1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(8,9,left,.9,4); % lower arc and terminal
+fi
+filldraw stroke z2e{left}...z3e{down}...z4e{3(x5-x3),y5-y3}
+ ...z5e{down}...{left}z6'e; % upper stroke
+filldraw stroke z4'e{left}...z5'e{down}...z6e{3(x7-x5'),y7-y5'}
+ ...z7e{down}...{left}z8e; % upper stroke
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar "Umlaut (double dot) accent"; % from accent (cm)
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"250",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+ecchar"Copyright";
+beginchar(oct"251",20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+5u);
+if serifs:
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(rr-u); lft x3r=hround(ll+u); x2=x4=.55[x3,x1];
+ top y2r=hh+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,.7x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(hh-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=hh+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(rr-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=ll+hround max(u,2u-.5cap_curve); rt x5r=hround(rr-.9u);
+ top y1r=vround .95hh+o; top y2r=hh+o; y3=.5hh;
+ bot y4r=-o; bot y5r=vround .08hh-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+penlabels(1,1',2,3,4,5,6); endchar;
+
+ecchar"Copyleft";
+beginchar(oct"253",20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-5u);
+rr=hround(.5w+6u);
+if serifs:
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,-90);
+ pos3(cap_curve,-180); pos4(cap_band,-270); pos5(hair,-360);
+ lft x1l=lft x5l=hround(ll+u); rt x3l=hround(rr-u); x2=x4=.55[x3,x1];
+ top y2l=hh+o; bot y4l=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6hh,.7x_height-.5vair),bot y2r-eps);
+ y5=max(good.y .95(hh-y1),y4r+eps);
+ (x2r',y2r)=whatever[z2l,z1r]; x2r:=min(x2r',x2r+.5u);
+ (x4r',y4r)=whatever[z4l,z5r]; x4r:=min(x4r',x4r+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6l=x1l; top y6=hh+o;
+ x1l-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6r--z1'));
+ filldraw z1l--z6l--z6r--subpath(t,0) of upper_arc--cycle; % barb
+else:
+ pickup fine.nib; pos1(1.2flare,-80); pos2(slab,-90);
+ pos3(cap_curve,-180); pos4(slab,-270); pos5(flare,-275);
+ lft x1l=hround(ll+1.1u); x2=x4=.5w-1.25u;
+ rt x3l=rr-hround max(u,2u-.5cap_curve); lft x5l=hround(ll+.9u);
+ top y1l=vround .95hh+o; top y2l=hh+o; y3=.5hh;
+ bot y4l=-o; bot y5l=vround .08hh-o; y5r:=good.y y5r; x5r:=good.x x5r;
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4); fi % arc and terminals
+penlabels(1,1',2,3,4,5,6); endchar;
+
+ecchar "Logical not sign"; % from sym
+beginchar(oct"254",12u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x3=w-x1;
+y1=y2=good.y .5[bar_height,h]; y2-y3=1.2(h-bar_height);
+draw z1--z2--z3; % bar and stem
+labels(1,2,3); endchar;
+
+ecchar"Circled P"; % Sound recording copyright sign % jk
+beginchar(oct"255",20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+6u);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=ll+hround max(2u,3u-.5cap_stem'); top y1=hh; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5hh); x4=x6=.5w+.75u; x5r=hround(rr-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs:
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+fi
+penlabels(0,1,2,3,4,5,6); endchar;
+
+ecchar"Registered"; % jk
+beginchar(oct"256",20u#,body_height#,max(paren_depth#,desc_depth#));
+autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8);
+clearxy; autorounding:=0;
+numeric hh,ll,rr; hh=vround .7cap_height; ll=hround(.5w-6u);
+rr=hround(.5w+6u);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=ll+hround max(2u,3u-.5cap_stem'); top y1=hh; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5hh+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(rr-2.25u);
+else: x4=.5w+.5u; x5r=hround(rr-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(rr-.25u); y10=1/3[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(rr-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+ecchar"High bar (Macron)"; % jk
+beginchar(oct"257",14u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; top y1=top y2=h;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+ecchar "Plus-or-minus sign"; % from sym
+beginarithchar(oct"261"); pickup rule.nib;
+numeric shiftup; shiftup=vround 1.5u;
+x1=x2=.5w; lft x3=lft x5=hround u-eps; x4=x6=w-x3;
+.5[y1,y2]=y3=y4=math_axis+shiftup; top y1=h+shiftup; y5=y6=y2;
+draw z1--z2; % stem
+draw z3--z4; % plus bar
+draw z5--z6; % minus bar
+labels(1,2,3,4,5,6); endchar;
+
+ecchar"Degree sign"; % Yannis, Unicode Computer Modern
+beginchar(oct"260",4u#,cap_height#,0);
+adjust_fit(if monospace: 1.5u#,1.5u# else: u#,u# fi);
+pickup rule.nib; autorounded;
+if .5w <> good.x .5w: change_width; fi
+lft x6=0; x2=w-x6; top y8=h; y8-y2=x2-x8;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+ecchar"Tick mark"; % from accent (cmfonts, acute accent)
+beginchar(oct"264",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+iff not variant_g:
+ecchar"Micro sign"; % jk, based on cm `u'
+beginchar(oct"265",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos7(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2=x7; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0);
+x0=x3; x0'=x4; y0=y0'; bot y7=-d;
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z7e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); % lower right serif
+ pickup crisp.nib;
+ dish_serif(7,1,d,1/3,jut,e,1/3,jut); fi % lower left serif
+penlabels(1,2,3,4,5,7); labels(6); endchar;
+
+iff variant_g: % This triggers italics
+ecchar "Micro sign"; % from greekl (cm)
+beginchar(oct"265",9u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem);
+y1+.5stem=h+oo; y2-.5stem=-d-o;
+filldraw z1r---z2r..z2l---z1l..cycle; % left stem
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+ecchar "Paragraph mark"; % from mathsy
+beginchar(oct"266",11u#,asc_height#,desc_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+top y1=h; bot y6=-d-eps; y4=y7=y9=y1;
+y8=y6; y3=y5=good.y .5[y1,y6];
+x7-x4=ceiling(rule_thickness+1.25u);
+lft x2=hround u; y2=.5[y1,y3]; x4=x5=x6; rt x9=hround(w-.5u);
+x7=x8=good.x(x9-1.5u); x1=x3=min(.5w,x4);
+filldraw z4..z1{left}...z2{down}...{right}z5--cycle; % filled bowl
+draw z9--z4--z6; % left stem and upper serif
+draw z7--z8; % right stem
+if serifs:
+ x11=x9; x10-x8=x4-x9;
+ bot y10=-d-eps; y10=y11;
+ draw z10--z11; % lower serif
+fi
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+ecchar "Centered dot"; % reengineered for catalan l.l
+beginchar(oct"267",(11u#-width_adj#-2max(2u#+.5cap_stem#,3u#)),
+ x_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+pos1(udot_diam,0); pos2(udot_diam,90);
+lft x1l=hround(.5w-.5udot_diam); y1+.5udot_diam=vround(bar_height+.5udot_diam);
+z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+ecchar "Reference mark"; % From Haralambous/Plaice
+beginchar(oct"270",1/3[x_height#,asc_height#],
+ 1/3[x_height#,asc_height#],0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(if monospace:
+ -1/3[x_height#,asc_height#] + mono_charwd#,
+ -1/3[x_height#,asc_height#] + mono_charwd#
+ else: u#,u# fi);
+pickup rule.nib;
+Dot_size:=min(dot_size,max(1,.25h-rule_thickness));
+lft x1=0; top y1=h;
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=.5h; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+top z1'=.5[top z1,top z3]-(0,.5Dot_size);
+rt z3'=.5[rt z3,rt z2]-(.5Dot_size,0);
+bot z2'=.5[bot z2,bot z4]+(0,.5Dot_size);
+lft z4'=.5[lft z4,lft z1]+(.5Dot_size,0);
+z1'=z1''; z2'=z2''; z3'=z3''; z4'=z4'';
+penpos1'(Dot_size,0);
+penpos1''(Dot_size,90); dot(1',1'');
+penpos2'(Dot_size,0);
+penpos2''(Dot_size,90); dot(2',2'');
+penpos3'(Dot_size,0);
+penpos3''(Dot_size,90); dot(3',3'');
+penpos4'(Dot_size,0);
+penpos4''(Dot_size,90); dot(4',4'');
+labels(1,2,3,4,1',2',3',4',1'',2'',3'',4'',1'r,1'l,1''r,1''l);
+endchar;
+
+ecchar"Root sign"; % textsurd, from wnri
+beginchar(oct"273",8.5u#,body_height#,paren_depth#-rule_thickness#);
+italcorr body_height#*slant;
+adjust_fit(0,-letter_fit#);
+pickup rule.nib;
+ w':=7u;
+ x1=good.x (1/9w'+2.5u); x2=good.x (.65w'+2.5u);
+ bot y1=-.5d; bot y2=asc_height;
+ draw z1--z2; % diagonal
+ pickup crisp.nib;
+ pos3(if hefty: else: .7 fi max(curve,rule_thickness),0);
+ x3l=1.5[x2,x1]; y3=.5[y1,y2];
+ pos4(rule_thickness,0); x4=x1; bot y4=-.5d;
+ pos5(vair,-45); x5l=good.x(x3l-u); z5l=whatever[z3r,z2];
+ z6=z5r+whatever*(z2-z3r)=whatever[z3l,z4l];
+ z7=whatever[z1,z2]=z3r+whatever*(z4l-z3l);
+ filldraw z5r--z6--z4l--z4--z7--z3r--z5l--cycle; % left diagonal and serif
+x8=x2+2u; y8=y2;
+pickup rule.nib;
+draw z2--z8;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+ecchar "Euro currency sign"; % derived from the letter C (WaS)
+if serifs: beginchar(oct"277",14u#,cap_height#,0); % 1u# wider than C
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround 2u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(oct"277",12.5u#,cap_height#,0); % 1u# wider than C
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-.9u); x2=x4=.5w+1.25u;
+ lft x3r=hround (max(u,2u-.5cap_curve)+u); rt x5r=hround(w-1.1u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+fi
+% middle bars:
+ pos7(slab,69); pos8(slab,69);
+ pos9(slab,69); pos10(slab,69);
+ % Unterkante oberer Balken:
+ bot y7l=vround(y3+if hefty: .5vair else: min(vair, .06h) fi +eps);
+ % Oberkante unterer Balken:
+ top y9r=vround(y3-if hefty: .5vair else: min(vair, .06h) fi);
+ y8=y7;
+ y10=y9;
+ x7=x9=hround u;
+ rt x8r=hround(w - if serifs: 3 else: 2.5 fi u);
+ rt x10r = rt x8r -
+ ((slab + if hefty: vair else: 2min(vair, .06h) fi) * sind 21);
+ filldraw stroke z7e--z8e; % upper bar
+ filldraw stroke z9e--z10e;% lower bar
+
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+
+penlabels(1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+
+ecchar "Times operator"; % from mathsy
+beginarithchar(oct"326"); pickup rule.nib;
+x1=good.x(1/sqrt2)[.5w,rt u]; y1=good.y(1/sqrt2)[math_axis,bot h];
+x2=x3=w-x1; x4=x1; .5[y1,y2]=.5[y3,y4]=math_axis; y2=y4;
+draw z1--z2; draw z3--z4; % diagonals
+labels(1,2,3,4); endchar;
+
+ecchar "Elementary division operator"; % from mathsy
+beginarithchar(oct"366"); pickup rule.nib;
+numeric del; del=dot_size-currentbreadth;
+x3-.5del=good.x(.5w-.5del); center_on(x3);
+y3+.5del=good.y(math_axis+math_spread[.5x_height,.6x_height]+.5del);
+lft x1=hround u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+pos3(dot_size,0); pos4(dot_size,90); z3=z4;
+pos5(dot_size,0); pos6(dot_size,90); z5=z6; x5=x3; .5[y3,y5]=math_axis;
+dot(3,4); dot(5,6); % dots
+penlabels(1,2,3,4,5,6); endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/ccsc.mf b/Master/texmf-dist/fonts/source/public/cmcyr/ccsc.mf
new file mode 100644
index 00000000000..e04d0e2b10a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/ccsc.mf
@@ -0,0 +1,42 @@
+% Caps and Small Caps in Computer Modern Cyrillic
+
+let cmchar=message; % `|cmchar|' should precede each character
+
+font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+spanish_shriek=oct"016"; spanish_query=oct"017";
+
+input coding;
+
+mode_setup; font_setup;
+input cyru; % upper case (majuscules)
+%input romsub; % substitutes for ligatures
+%if ligs>0: input comlig; fi % ligatures common with italic
+
+%ligtable "!": "`" =: spanish_shriek;
+%ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+%%% fine lower
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+font_setup; % now try again with |lower| settings
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+code_offset:= ASCII"A" - ASCII"a";
+input cyru; % majuscules (in lowercase positions)
+%code_offset:=-3;
+%input romspu; % \AE, \OE, \O\ (in positions of \ae, \oe, \o)
+%code_offset:=0;
+%input cscspu; % substitutes for the remaining characters of romspl
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/citall.mf b/Master/texmf-dist/fonts/source/public/cmcyr/citall.mf
new file mode 100644
index 00000000000..2f86b3379cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/citall.mf
@@ -0,0 +1,660 @@
+% Computer Modern Cyrillic Italic lower case:
+
+cmchar "Cyrillic italic letter a";
+beginchar(CYR_a,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter be";
+beginchar(CYR_be,9u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos2'(hair,180); z2'r=z2r; pos5(vstem,90); pos5'(vstem,-90); z5'=z5;
+pos6(hair,0); rt x6r=hround(w-u); top y6=h; top y5r=vround .9h; x5=x1;
+filldraw stroke pulled_arc.e(6,5'); filldraw stroke pulled_arc.e(5,2');
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Cyrillic italic letter ve";
+beginchar(CYR_ve,9u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(curve,0); pos6(vair,180);
+x0=rt x3l; rt x1r=hround(w-2.5u+.5heavy_hair); x2=x4=.5w;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-u-eps); x6=x2;
+y0=y3=y6-.1u=bar_height; y1=.5[y0,y2];
+top y2r=h+oo; bot y4r=-oo; y5=vround .5bar_height;
+filldraw stroke z0e{right}...z1e{up}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4) &
+ {{surerness:=hein_super; pulled_arc.e(4,5) & pulled_arc.e(5,6)}};
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter ghe";
+beginchar(CYR_ghe,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos2(hair,140); pos3(vair,90); pos4(curve,0);
+pos5(vair,-90); pos5'(vair,90); pos6(curve,180);
+pos7(vair,270); pos8(hair,320);
+x7=w-x3=.5(w+u); x5=.52w; y5=.52h; z5'=z5;
+lft x6r=w-rt x4r-.5u=hround(1.5u-.5curve); x8r=w-x2=good.x(w-eps);
+x9=x8; x1=x2; top y3=h+oo; y4=.5[y5,y3]; bot y7r=-oo; y6=.5[y5,y7];
+top y8l=h-bot y2l=vround .5bar_height; y9=h-y1=bar_height;
+path p[]; p1=z3{left}..z2..z1; p2=z7{right}..z8..z9;
+filldraw stroke pulled_arc.e(5,4)
+ & pulled_arc.e(4,3)...{direction 1 of p1}z2e;
+filldraw stroke pulled_arc.e(5',6)
+ & pulled_arc.e(6,7)...{direction 1 of p2}z8e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter de";
+beginchar(CYR_de,9u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,150); pos2(vair,90); pos3(curve,0);
+pos4(vair,270); pos5(curve,180); pos6(vair,90);
+x1=x5l; x2=.5w-u; y1=h-.25u; top y2r=h+o; y3=.5[y2,y4];
+x6=x4=.5w; lft x5r=w-rt x3r=hround(1.5u-.5curve);
+top y6r=x_height+oo; y5=.5[y6,y4]; bot y4r=-oo;
+path p; p=pulled_super_arc.l(3,4)(superpull);
+numeric t; t=xpart(p intersectiontimes((x4,y5)--(x3r,y5)));
+pos7(thin_join,0); z7l=point t of p;
+filldraw stroke z1e...pulled_super_arc.e(2,3)(superpull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(superpull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(superpull)}}
+ & pulled_super_arc.e(5,6)(superpull)
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter ie";
+beginchar(CYR_ie,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter zhe";
+beginchar(CYR_zhe,17u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric arc_width; arc_width=7u;
+pos0(flare,180); pos1(hair,180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+pos7(flare,0); pos8(hair,0); pos9(vair,90);
+pos10(curve,180); pos11(vair,270); pos12(hair,320);
+x2=x4=w-x9=.5(arc_width-u); x11=x9;
+lft x1r=w-rt x8r=min(lft x2,hround u)-eps;
+rt x3r=w-lft x10r=hround(arc_width-1.5u+.5curve);
+x5r=w-x12r=good.x(eps); x6=x5; x13=x12;
+y8=h-y1=.5[bar_height,h]; bot y2r=-oo; top y9r=h+oo;
+top y4r=h+oo; bot y11r=-oo; y3=h-y10=.5[y2,y4];
+bot y5l=h-top y12l=vround h-.5bar_height; y13=h-y6=bar_height;
+path p[]; p1=z4{left}..z5..z6; p2=z11{right}..z12..z13;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p1}z5e; % left arc
+filldraw stroke pulled_arc.e(9,10)
+ & pulled_arc.e(10,11)...{direction 1 of p2}z12e; % right arc
+bulb(2,1,0); bulb(9,8,7); % left and right bulb
+pos14(stem,0); pos15(stem,0); x14=x15=.5w; top y14=h; bot y15=0;
+filldraw stroke z14e--z15e; % stem
+penpos3'(bar,90); penpos10'(bar,90); z3'=z3; z10'=z10;
+fill stroke z3'e--z10'e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+cmchar "Cyrillic italic letter ze";
+beginchar(CYR_ze,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,140); pos2(cap_band,90); pos4(vair,-90);
+x1r=good.x(eps); x0=x1; top y2r=h+o;
+bot y1l=vround h-.5bar_height; y0=h-bar_height;
+pos3(max(fine.breadth,curve-stem_corr),0);
+pos7(vair,-90); pos8(vair,-90); pos9(vair,90);
+x2=.45[2u,x10]; rt x3r=hround(w-u); x4=.45[x1,x10];
+pos10(curve,0); rt x10r=hround(w-.5u); lft x8=.5w-u;
+y3=.35[top y7l,bot y2l]; top y8l=vround(.54h+.5vair); z8r=z9l;
+x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+pos5'(hair,-180); pos5(flare,-180);
+bot y4r=0; rt x5l=hround 2u; z5r=z5'r;
+y10=.45[bot y8r,top y4l]; y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+path p; p=z0..z1..{right}z2;
+filldraw stroke z1e{direction 1 of p}
+ ...pulled_arc.e(2,3)
+ & z3e{down}...z7e---z8e; % upper bowl
+filldraw stroke z9e---pulled_arc.e(9,10)
+ & pulled_super_arc.e(10,4)(.5superpull); % lower bowl
+bulb(4,5',5); %bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,7,8,9,10,11,12,13); endchar;
+
+cmchar "Cyrillic italic letter i";
+beginchar(CYR_i,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter short i";
+beginchar(CYR_short_i,9.5u#,x_height#+3.5u#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+penpos10(hair-fine,-90); penpos11(hair-fine,-180); penpos12(.5flare,-180);
+penpos13(hair-fine,-90); penpos14(hair-fine,0); penpos15(.5flare,0);
+x10=.5[x11,x14]; x11=.5w-2u; x14=w-x11;
+y10=y13=x_height+u; y11=y14=h-.5u; z13=z10;
+bulb(10,11,12); bulb(13,14,15); % bulbs
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Cyrillic italic letter ka";
+beginchar(CYR_ka,9.5u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter el";
+beginchar(CYR_el,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x6=x7; x9=w; hook_out(7,8,9); % closing hook
+top y6=top y0=h; x0=lft x6r;
+filldraw stroke z6e--z7e; % right stem
+pickup tiny.nib; pos0(hair,-90); pos1(hair,0); pos2(hair,0);
+y1=.5h; rt x1r=hround(w-5.25u); x2=x1; y2=.21h;
+pos3(vair,-90); pos4(hair,-180); pos5(flare,-180);
+bot y3r=0; x3=.5[x4,x2]; y5=.25h; rt x5l=hround 2u; z5r=z4r;
+filldraw stroke pulled_arc.e(0,1) & z1e--z2e & super_arc.e(2,3); % arc
+bulb(3,4,5); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter em";
+beginchar(CYR_em,12u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.stem-4stem_corr);
+stem2=hround(fudged.hair-stem_corr);
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); top y6=h;
+x6=x7; x9=w; hook_out(7,8,9); % closing hook
+filldraw stroke z6e--z7e; % right stem
+pickup tiny.nib; pos1(hair,0); pos2(hair,0);
+top y1=h; rt x1r=hround(w-8.25u); x2=x1; y2=.21h;
+pos3(vair,-90); pos4(hair,-180); pos5(flare,-180);
+bot y3r=0; x3=.5[x4,x2]; y5=.25h; rt x5l=hround 2u; z5r=z4r;
+filldraw stroke z1e--z2e & super_arc.e(2,3); % left stem and arc
+bulb(3,4,5); % bulb
+penpos10(stem1,0); penpos11(stem1,0); penpos12(stem2,0); penpos13(stem2,0);
+x10l=x1; x11l=x12l; x13=lft x6l; x11-x10=x13-x12; y10=y13=h; y11=y12;
+y11=0; z0=whatever[z10r,z11r]=whatever[z12l,z13l];
+fill z10l..{z11-z10}diag_in(10l,11l,1,11r)
+ ..diag_out(12l,1,12r,13r){z13-z12}
+ ..z13r--diag_out(13r,1,13l,12l){z12-z13}..{z12-z13}z0{z10-z11}
+ ..{z10-z11}diag_in(11r,10r,1,10l)--cycle; % diagonals
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Cyrillic italic letter en";
+beginchar(CYR_en,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); y6+.5stem=h;
+x6=x7; x9=w; hook_out(7,8,9); % closing hook
+filldraw circ_stroke z6e--z7e; % right stem
+penpos10(bar,90); penpos11(bar,90); x10=x1; x11=x6; y10=y11=.5h;
+fill stroke z10e--z11e; % bar
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Cyrillic italic letter o";
+beginchar(CYR_o,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Cyrillic italic letter pe";
+beginchar(CYR_pe,10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter er";
+beginchar(CYR_er,9u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter es";
+beginchar(CYR_es,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter te";
+beginchar(CYR_te,15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter ef";
+beginchar(CYR_ef,12u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w-2u); lft x8r=hround 2u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.15[x_height,h]; y5=.4[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+penpos10(hair,180); penpos11(vair,90); penpos12(curve,0);
+penpos13(vair,-90); penpos14(hair,0); penpos15(vair,90);
+penpos16(curve,180); penpos17(vair,270);
+x10=x14=.5w; y11r=y15r=x_height+o; y12=y16=.5[y11l,y13l]; y13r=y17r=-o;
+y10=y14=.5x_height; x11r=x13r=w-x15r=w-x17r=.5w+1.75u;
+x12r=w-x16r=hround(w-.5u);
+fill stroke super_arc.e(10,11) & pulled_arc.e(11,12)
+ & pulled_arc.e(12,13) & super_arc.e(13,10);
+fill stroke super_arc.e(14,15) & pulled_arc.e(15,16)
+ & pulled_arc.e(16,17) & super_arc.e(17,14);
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,88,89); endchar;
+
+cmchar "Cyrillic italic letter u";
+beginchar(CYR_u,8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Cyrillic italic letter ha";
+beginchar(CYR_ha,6.5u#+max(1.5u#,flare#),x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90);
+pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19); endchar;
+
+cmchar "Cyrillic italic letter tse";
+beginchar(CYR_tse,9.5u#,x_height#,desc_depth#-u#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w;
+pos7(stem,0); pos8(vair,90);
+x9:=hround(x9+.5hair-eps)-.5hair; pos9(hair,180);
+y7=1/4x_height; bot y8l=-oo; y9=1/3x_height; x8=x7+1.5u;
+path p,p.l,p.r;
+forsuffixes $=r,l: p.$=z7${down}...z8${right}
+ ...{x9-(x7+2.5u),x_height}z9$; endfor;
+p=p.r--reverse p.l--cycle;
+filldraw p; % closing hook;
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+pos10(stem,-140); pos11(stem,-150);
+x11r=x10; x10r=.9[x7,x8]; x12=x8;
+y11=.5[y12,y10]; y10=-.25d; bot y12=-d;
+filldraw stroke (subpath (1.5,3.5) of p)..z10e..z11e..z12;
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Cyrillic italic letter che";
+beginchar(CYR_che,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.2u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=.325h; y5=.7h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter sha";
+beginchar(CYR_sha,14.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); pos6(stem,-180); pos7(stem,-180);
+pos8(vair,-90); pos9(hair,0); pos10(stem,0);
+x4=.5[x3,x5]; x6=.5w; x8=.5[x5,x9]; rt x10r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=x10=x11; x13=w; hook_out(11,12,13); % closing hook
+y3=.7[y4,y5]; bot y4r=bot y8r=-oo; y5=y9=.57h; y7=y11;
+y6+.5stem=h; y10=y6;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e
+ ...super_arc.e(7,8)...{up}z9e; % middle stem and arc
+filldraw circ_stroke z10e--z11e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Cyrillic italic letter shcha";
+beginchar(CYR_shcha,14.5u#,x_height#,desc_depth#-u#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); pos6(stem,-180); pos7(stem,-180);
+pos8(vair,-90); pos9(hair,0); pos10(stem,0);
+x4=.5[x3,x5]; x6=.5w; x8=.5[x5,x9]; rt x10r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=x10=x11; x13=w;
+pos11(stem,0); pos12(vair,90);
+x13:=hround(x13+.5hair-eps)-.5hair; pos13(hair,180);
+y11=1/4x_height; bot y12l=-oo; y13=1/3x_height; x12=x11+1.5u;
+path p,p.l,p.r;
+forsuffixes $=r,l: p.$=z11${down}...z12${right}
+ ...{x13-(x11+2.5u),x_height}z13$; endfor;
+p=p.r--reverse p.l--cycle;
+filldraw p; % closing hook;
+y3=.7[y4,y5]; bot y4r=bot y8r=-oo; y5=y9=.57h; y7=y11;
+y6+.5stem=h; y10=y6;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e
+ ...super_arc.e(7,8)...{up}z9e; % middle stem and arc
+filldraw circ_stroke z10e--z11e; % right stem
+pos14(stem,-140); pos15(stem,-150);
+x15r=x14; x14r=.9[x11,x12]; x16=x12;
+y15=.5[y16,y14]; y14=-.25d; bot y16=-d;
+filldraw stroke (subpath (1.5,3.5) of p)..z14e..z15e..z16;
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+cmchar "Cyrillic italic letter soft_sign";
+beginchar(CYR_soft_sign,8u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+numeric x_bowl; x_bowl=2/3h;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_bowl;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(8u-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_bowl+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Cyrillic italic letter hard_sign";
+beginchar(CYR_hard_sign,12u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+numeric x_bowl; x_bowl=.52h;
+pos1(vair,0); pos2(stem,0); x1=x2;
+lft x1l=hround(5.5u-.5stem); top y1=h+oo; y2=.5x_bowl;
+filldraw stroke z1e--z2e; % stem
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_bowl+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+pos1'(vair,0); pos6(vstem,-90); pos6'(vstem,90); pos7(vair,180);
+z1'=z1; x6=.5[x7,x1]; top y6l=h+oo; z6'=z6; lft x7r=0; y7=h-1.75u;
+filldraw stroke pulled_arc.e(1',6);
+filldraw stroke pulled_arc.e(6',7);
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter yeru";
+beginchar(CYR_yeru,12u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+numeric x_bowl; x_bowl=2/3h;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1r=h+oo; y2=.5x_bowl;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(8u-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_bowl+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+pickup fine.nib; x7-.5stem=hround(9.5u-.5stem); x9=w;
+hook_out(7,8,9); % closing hook
+pickup tiny.nib; pos6(stem,0); pos7'(stem,0); z7'=z7;
+top y6=h; x6=x7; filldraw stroke z6e--z7e; % stem
+sloped_serif.l(6,7,b,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter e";
+beginchar(CYR_e,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,180); pos1(hair,180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x2=x4=.5(w-u); lft x1r=.25u;
+rt x3r=hround(w-1.5u+.5curve); x5r=good.x(eps); x6=x5;
+y1=.52[0,h-bar_height]; bot y2r=-oo; bulb(2,1,0); % bulb
+top y4r=h+oo; y3=.5[y2,y4]; bot y5l=vround h-.5bar_height; y6=h-bar_height;
+path p; p=z4{left}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+penpos7(bar,90); penpos8(bar,90);
+x7=x3; y7=.52h; y8=y7; x8=.5w-hround(u);
+fill stroke z7e--z8e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter yu";
+beginchar(CYR_yu,13u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+pos3(vair,90); pos4(curve,180); pos5(vair,270); pos6(curve,360);
+x3=x5=w-4.5u; rt x6r=hround(w-1.5u+.5curve); x4=w-(x6-4u);
+top y3r=h+oo; y4=y6=.5[y3,y5]; bot y5r=-oo;
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3); % bowl
+penpos4'(bar,90); penpos7(bar,90); z4'=z4; x7=x1; y7=y4';
+fill stroke z4'e--z7e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(1,2,3,4,4',5,6,7); endchar;
+
+cmchar "Cyrillic italic letter ya";
+beginchar(CYR_ya,8u#+.5max(2u#,curve#),x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=rt x2r=w-hround(2.5u-.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(curve if hefty:-3stem_corr fi,180);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7=.5h; x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround(1.5u);
+else: x4=.5w-.5u; x5l=hround(.75u); fi
+x4l:=x6l:=x4+.125curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+pos6'(vair,-90); pos0(stem,0);
+pos8(curve,0); pos9(vair,-90); pos10(hair,180);
+z6'=z6; rt x0r=rt x8r=hround(x5+2/3u+.5curve);
+y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+bot y9l=0; lft x10r=hround(.05u); y10=1/4[y2,y7];
+filldraw stroke z6'e{left}..z0e---z8e....z9e{left}..z10e{up}; % tail
+nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
+dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcb10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcb10.mf
new file mode 100644
index 00000000000..9a6d9754306
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcb10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCB"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=10/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx10.mf
new file mode 100644
index 00000000000..a8defd5280c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Extended 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCBX"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx12.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx12.mf
new file mode 100644
index 00000000000..87db272dcad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx12.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Extended Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCBX"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=18.3/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx5.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx5.mf
new file mode 100644
index 00000000000..419684ea0da
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx5.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Extended Roman 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCBX"; font_size 5pt#;
+
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123.5/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=80/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=40/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=13/36pt#; % protrusion of lowercase serifs
+cap_jut#:=19/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx6.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx6.mf
new file mode 100644
index 00000000000..9c3916a9a7e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx6.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Extended Roman 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCBX"; font_size 6pt#;
+
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=96/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=49/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=36/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx7.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx7.mf
new file mode 100644
index 00000000000..32a9beb88bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx7.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Extended Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCBX"; font_size 7pt#;
+
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=1/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=32/36pt#; % lowercase stem breadth
+curve#:=35/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=38/36pt#; % uppercase stem breadth
+cap_curve#:=41/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx8.mf
new file mode 100644
index 00000000000..60e5f58849f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Extended Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCBX"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx9.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx9.mf
new file mode 100644
index 00000000000..d49d6ad1f05
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbx9.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Extended Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCBX"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcbxsl1.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbxsl1.mf
new file mode 100644
index 00000000000..f65fb1f3436
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbxsl1.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Extended Slanted 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCBXSL"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcbxti1.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbxti1.mf
new file mode 100644
index 00000000000..a2dcfd90488
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcbxti1.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Bold Extended Text Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCBXTI"; font_size 10pt#;
+
+u#:=21.2/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=11/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=53/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=49/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=50/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmccsc10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmccsc10.mf
new file mode 100644
index 00000000000..fd02da53beb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmccsc10.mf
@@ -0,0 +1,110 @@
+% Computer Modern Cyrillic Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate ccsc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmccsc8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmccsc8.mf
new file mode 100644
index 00000000000..c65ab1de89b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmccsc8.mf
@@ -0,0 +1,116 @@
+% CMCSC8.MF June 1990
+% This Metafont file is part of AMSFonts 2.0.
+% Copyright (C) 1990, American Mathematical Society.
+% All rights reserved. Copying of this file is authorized only if either:
+% (1) you make absolutely no changes to your copy including filename; OR
+% (2) if you do make changes, you first rename it to some other filename.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Cyrillic Caps and Small Caps 8 point
+% Computer Modern Roman Cap and Small Cap 8 point; created at AMS
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCCSC"; font_size 8pt#;
+
+u#:=18/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2.5/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=13/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.7/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=146/36pt#; % height of tallest characters
+lower.cap_height#:=145.8/36pt#; % height of caps
+lower.x_height#:=85/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=47.6/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=38/36pt#; % depth of comma below baseline
+
+lower.flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.1/36pt#; % uppercase hairline breadth
+lower.stem#:=17/36pt#; % lowercase stem breadth
+lower.cap_stem#:=21/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=20/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.4/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=38/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate ccsc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmccsc9.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmccsc9.mf
new file mode 100644
index 00000000000..90620bbdfa3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmccsc9.mf
@@ -0,0 +1,116 @@
+% CMCSC9.MF June 1990
+% This Metafont file is part of AMSFonts 2.0.
+% Copyright (C) 1990, American Mathematical Society.
+% All rights reserved. Copying of this file is authorized only if either:
+% (1) you make absolutely no changes to your copy including filename; OR
+% (2) if you do make changes, you first rename it to some other filename.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Cyrillic Caps and Small Caps 9 point; base on
+% Computer Modern Roman Caps and Small Caps 9 point; created at AMS
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCCSC"; font_size 9pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=14.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=173/36pt#; % height of tallest characters
+lower.cap_height#:=170.4/36pt#; % height of caps
+lower.x_height#:=100.5/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=56.3/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=45/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.6/36pt#; % uppercase hairline breadth
+lower.stem#:=19/36pt#; % lowercase stem breadth
+lower.cap_stem#:=23.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=28/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=6.2/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=45/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate ccsc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcinch.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcinch.mf
new file mode 100644
index 00000000000..77d17a40cf1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcinch.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Inch-High Sans Serif Bold Extended Caps and Digits
+if unknown cmbase: input cmbase fi
+numeric Pt#; 250/36Pt#=1in#;
+font_identifier:="CMCINCH"; font_size 10Pt#;
+
+u#:=22/36Pt#; % unit width
+width_adj#:=22/36Pt#; % width adjustment for certain characters
+serif_fit#:=-9/36Pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36Pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0Pt#; % extra space added to all sidebars
+
+body_height#:=270/36Pt#; % height of tallest characters
+asc_height#:=250/36Pt#; % height of lowercase ascenders
+cap_height#:=250/36Pt#; % height of caps
+fig_height#:=250/36Pt#; % height of numerals
+x_height#:=165/36Pt#; % height of lowercase without ascenders
+math_axis#:=90/36Pt#; % axis of symmetry for math symbols
+bar_height#:=90/36Pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36Pt#; % depth of comma below baseline
+desc_depth#:=70/36Pt#; % depth of lowercase descenders
+
+crisp#:=26/36Pt#; % diameter of serif corners
+tiny#:=26/36Pt#; % diameter of rounded corners
+fine#:=9/36Pt#; % diameter of sharply rounded corners
+thin_join#:=9/36Pt#; % width of extrafine details
+hair#:=49/36Pt#; % lowercase hairline breadth
+stem#:=49/36Pt#; % lowercase stem breadth
+curve#:=49/36Pt#; % lowercase curve breadth
+ess#:=43/36Pt#; % breadth in middle of lowercase s
+flare#:=40/36Pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36Pt#; % diameter of dots
+cap_hair#:=49/36Pt#; % uppercase hairline breadth
+cap_stem#:=53/36Pt#; % uppercase stem breadth
+cap_curve#:=53/36Pt#; % uppercase curve breadth
+cap_ess#:=51/36Pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36Pt#; % thickness of lines in math symbols
+
+dish#:=0Pt#; % amount erased at top or bottom of serifs
+bracket#:=0Pt#; % vertical distance from serif base to tangent
+jut#:=0Pt#; % protrusion of lowercase serifs
+cap_jut#:=0Pt#; % protrusion of uppercase serifs
+beak_jut#:=0Pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36Pt#; % vertical protrusion of beak serifs
+vair#:=26/36Pt#; % vertical diameter of hairlines
+notch_cut#:=49/36Pt#; % maximum breadth above or below notches
+bar#:=26/36Pt#; % lowercase bar thickness
+slab#:=36/36Pt#; % serif and arm thickness
+cap_bar#:=34/36Pt#; % uppercase bar thickness
+cap_band#:=31/36Pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36Pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36Pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36Pt#; % for small refinements of stem breadth
+vair_corr#:=2/36Pt#; % for small refinements of hairline height
+apex_corr#:=18/36Pt#; % extra width at diagonal junctions
+
+o#:=8/36Pt#; % amount of overshoot for curves
+apex_o#:=0Pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytitle % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcitt10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcitt10.mf
new file mode 100644
index 00000000000..17abe2b1eee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcitt10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Italic Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCITT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=15/36pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=40/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc11.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc11.mf
new file mode 100644
index 00000000000..c4bf1617e9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc11.mf
@@ -0,0 +1,109 @@
+% This is CMCSC11.MF in text format, as of Aug 26, 1986.
+% Computer Modern Caps and Small Caps 11 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC"; font_size 11pt#;
+
+u#:=21.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=270.6/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=170.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=95.7/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=25.67/36pt#; % lowercase stem breadth
+curve#:=30.25/36pt#; % lowercase curve breadth
+ess#:=27.5/36pt#; % breadth in middle of lowercase s
+flare#:=34.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38.5/36pt#; % diameter of dots
+cap_hair#:=11.15/36pt#; % uppercase hairline breadth
+cap_stem#:=32.1/36pt#; % uppercase stem breadth
+cap_curve#:=38.4/36pt#; % uppercase curve breadth
+cap_ess#:=39.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.41pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=22/36pt#; % vertical distance from serif base to tangent
+jut#:=30.25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37.58/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.45/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=8.2/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=11.46/36pt#; % lowercase bar thickness
+slab#:=11.46/36pt#; % serif and arm thickness
+cap_bar#:=11.46/36pt#; % uppercase bar thickness
+cap_band#:=11.46/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8.25/36pt#; % amount of overshoot for curves
+apex_o#:=8.25/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.08; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=17/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4.3/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.6/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=219/36pt#; % height of tallest characters
+lower.cap_height#:=203/36pt#; % height of caps
+lower.x_height#:=127/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=71/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=57/36pt#; % depth of comma below baseline
+
+lower.flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.2/36pt#; % uppercase hairline breadth
+lower.stem#:=21.56/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=32/36pt#; % uppercase curve breadth
+lower.cap_ess#:=31.6/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26.3/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7.3/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=56/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.4/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.4/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.4/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5.15/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4.12/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc12.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc12.mf
new file mode 100644
index 00000000000..0f3bde54155
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc12.mf
@@ -0,0 +1,109 @@
+% This is CMCSC12.MF in text format, as of August 26, 1986.
+% Computer Modern Caps and Small Caps 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=18.8/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.88/36pt#; %extra space added to all sidebars
+
+lower.body_height#:=239/36pt#; % height of tallest characters
+lower.cap_height#:=222/36pt#; % height of caps
+lower.x_height#:=139/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=78/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=62/36pt#; % depth of comma below baseline
+
+lower.flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+lower.stem#:=23.5/36pt#; % lowercase stem breadth
+lower.cap_stem#:=28/36pt#; % uppercase stem breadth
+lower.cap_curve#:=33/36pt#; % uppercase curve breadth
+lower.cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=28.7/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7.98/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=62/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=10.3/36pt#; % serif and arm thickness
+lower.cap_bar#:=10.3/36pt#; % uppercase bar thickness
+lower.cap_band#:=10.3/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5.6/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc14.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc14.mf
new file mode 100644
index 00000000000..c69e2a2474b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc14.mf
@@ -0,0 +1,109 @@
+% This is CMCSC14.MF in text format, as of August 26, 1986.
+% Computer Modern Caps and Small Caps 14 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC"; font_size 14pt#;
+
+u#:=27.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.77/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=378/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=344.4/36pt#; % height of caps
+fig_height#:=324.8/36pt#; % height of numerals
+x_height#:=217/36pt#; % height of lowercase without ascenders
+math_axis#:=126/36pt#; % axis of symmetry for math symbols
+bar_height#:=121.8/36pt#; % height of crossbar in lowercase e
+comma_depth#:=98/36pt#; % depth of comma below baseline
+desc_depth#:=98/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=8.75/36pt#; % width of extrafine details
+hair#:=11.08/36pt#; % lowercase hairline breadth
+stem#:=32.66/36pt#; % lowercase stem breadth
+curve#:=38.5/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=45/36pt#; % diameter of dots
+cap_hair#:=13.4/36pt#; % uppercase hairline breadth
+cap_stem#:=40.8/36pt#; % uppercase stem breadth
+cap_curve#:=46.66/36pt#; % uppercase curve breadth
+cap_ess#:=44.33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=28/36pt#; % vertical distance from serif base to tangent
+jut#:=38.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=47.8/36pt#; % protrusion of uppercase serifs
+beak_jut#:=13.3/36pt#; % horizontal protrusion of beak serifs
+beak#:=98/36pt#; % vertical protrusion of beak serifs
+vair#:=9.9/36pt#; % vertical diameter of hairlines
+notch_cut#:=14pt#; % maximum breadth above or below notches
+bar#:=14.58/36pt#; % lowercase bar thickness
+slab#:=14.58/36pt#; % serif and arm thickness
+cap_bar#:=14.58/36pt#; % uppercase bar thickness
+cap_band#:=14.58/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10.5/36pt#; % amount of overshoot for curves
+apex_o#:=10.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=21.9/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=3.3/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=279/36pt#; % height of tallest characters
+lower.cap_height#:=259/36pt#; % height of caps
+lower.x_height#:=162/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=91/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=72.79/36pt#; % depth of comma below baseline
+
+lower.flare#:=31.8/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=11/36pt#; % up percase hairline breadth
+lower.stem#:=27/36pt#; % lowercase stem breadth
+lower.cap_stem#:=33/36pt#; % uppercase stem breadth
+lower.cap_curve#:=39/36pt#; % uppercase curve breadth
+lower.cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=9.3/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=72/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=12/36pt#; % seri f and arm thickness
+lower.cap_bar#:=12/36pt#; % upp ercase bar thickness
+lower.cap_band#:=12/36pt#; % up percase thickness above/below lobes
+lower.cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+
+lower.o#:=6.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=5.25/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc18.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc18.mf
new file mode 100644
index 00000000000..549f8f26bb8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc18.mf
@@ -0,0 +1,109 @@
+% This is CMCSC18.MF in text format, as of August 26, 1986.
+% Computer Modern Caps and Small Caps 18 point (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC"; font_size 18pt#;
+
+u#:=35.25/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8.7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.12pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=443/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=279/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=156.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.7/36pt#; % width of extrafine details
+hair#:=14.25/36pt#; % lowercase hairline breadth
+stem#:=42/36pt#; % lowercase stem breadth
+curve#:=49.5/36pt#; % lowercase curve breadth
+ess#:=45/36pt#; % breadth in middle of lowercase s
+flare#:=54/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=63/36pt#; % diameter of dots
+cap_hair#:=17.25/36pt#; % uppercase hairline breadth
+cap_stem#:=52.5/36pt#; % uppercase stem breadth
+cap_curve#:=60/36pt#; % uppercase curve breadth
+cap_ess#:=57/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=36/36pt#; % vertical distance from serif base to tangent
+jut#:=49.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=61.5/36pt#; % protrusion of uppercase serifs
+beak_jut#:=17/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=12.75/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=18.75/36pt#; % lowercase bar thickness
+slab#:=18.75/36pt#; % serif and arm thickness
+cap_bar#:=18.75/36pt#; % uppercase bar thickness
+cap_band#:=18.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=7.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=13.5/36pt#; % amount of overshoot for curves
+apex_o#:=13.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=28/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=6.96/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4.3/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=359.6/36pt#; % height of tallest characters
+lower.cap_height#:=333/36pt#; % height of caps
+lower.x_height#:=208.6/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=116.9/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=93.59/36pt#; % depth of comma below baseline
+
+lower.flare#:=40.9/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=14/36pt#; % up percase hairline breadth
+lower.stem#:=44/36pt#; % lowercase stem breadth
+lower.cap_stem#:=42.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=50/36pt#; % uppercase curve breadth
+lower.cap_ess#:=45.6/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=43/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=11.9/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=93/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=15.5/36pt#; % seri f and arm thickness
+lower.cap_bar#:=15.5/36pt#; % upp ercase bar thickness
+lower.cap_band#:=15.5/36pt#; % up percase thickness above/below lobes
+lower.cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+
+lower.o#:=8.43/36pt#; % amount of overshoot for curves
+lower.apex_o#:=6.75/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc24.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc24.mf
new file mode 100644
index 00000000000..111a78647c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc24.mf
@@ -0,0 +1,109 @@
+% This is CMCSC24.MF in text format, as of August 26, 1986.
+% Computer Modern Caps and Small Caps 24 point (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC"; font_size 24pt#;
+
+u#:=47/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=11.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.12pt#; % extra space added to all sidebars
+
+body_height#:=648/36pt#; % height of tallest characters
+asc_height#:=600/36pt#; % height of lowercase ascenders
+cap_height#:=590.4/36pt#; % height of caps
+fig_height#:=556.8/36pt#; % height of numerals
+x_height#:=372/36pt#; % height of lowercase without ascenders
+math_axis#:=216/36pt#; % axis of symmetry for math symbols
+bar_height#:=208.8/36pt#; % height of crossbar in lowercase e
+comma_depth#:=168/36pt#; % depth of comma below baseline
+desc_depth#:=168/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=19/36pt#; % lowercase hairline breadth
+stem#:=56/36pt#; % lowercase stem breadth
+curve#:=66/36pt#; % lowercase curve breadth
+ess#:=60/36pt#; % breadth in middle of lowercase s
+flare#:=72/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=84/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=70/36pt#; % uppercase stem breadth
+cap_curve#:=80/36pt#; % uppercase curve breadth
+cap_ess#:=76/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.88pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=48/36pt#; % vertical distance from serif base to tangent
+jut#:=66/36pt#; % protrusion of lowercase serifs
+cap_jut#:=82/36pt#; % protrusion of uppercase serifs
+beak_jut#:=22.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=168/36pt#; % vertical protrusion of beak serifs
+vair#:=17/36pt#; % vertical diameter of hairlines
+notch_cut#:=24pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=25/36pt#; % serif and arm thickness
+cap_bar#:=25/36pt#; % uppercase bar thickness
+cap_band#:=25/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+serif_drop#:=9.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=18/36pt#; % amount of overshoot for curves
+apex_o#:=18/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-1.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=37.6/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=9/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=5.7/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=479/36pt#; % height of tallest characters
+lower.cap_height#:=443.9/36pt#; % height of caps
+lower.x_height#:=278/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=155.9/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=124.7/36pt#; % depth of comma below baseline
+
+lower.flare#:=54.5/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=19/36pt#; % up percase hairline breadth
+lower.stem#:=47/36pt#; % lowercase stem breadth
+lower.cap_stem#:=56.7/36pt#; % uppercase stem breadth
+lower.cap_curve#:=66.9/36pt#; % uppercase curve breadth
+lower.cap_ess#:=60.8/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=57/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=15.96/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=124/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=20.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=20.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=20.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+
+lower.o#:=11.25/36pt#; % amount of overshoot for curves
+lower.apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc36.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc36.mf
new file mode 100644
index 00000000000..cda54cc9c11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsc36.mf
@@ -0,0 +1,109 @@
+% This is CMCSC36.MF in text format, as of August 26, 1986.
+% Computer Modern Caps and Small Caps 36 point (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC"; font_size 36pt#;
+
+u#:=64.1/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=15.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=972/36pt#; % height of tallest characters
+asc_height#:=900/36pt#; % height of lowercase ascenders
+cap_height#:=885.6/36pt#; % height of caps
+fig_height#:=835.2/36pt#; % height of numerals
+x_height#:=558/36pt#; % height of lowercase without ascenders
+math_axis#:=324/36pt#; % axis of symmetry for math symbols
+bar_height#:=313.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=252/36pt#; % depth of comma below baseline
+desc_depth#:=252/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=20.45/36pt#; % width of extrafine details
+hair#:=25.9/36pt#; % lowercase hairline breadth
+stem#:=76.36/36pt#; % lowercase stem breadth
+curve#:=90/36pt#; % lowercase curve breadth
+ess#:=81.8/36pt#; % breadth in middle of lowercase s
+flare#:=98/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=114.5/36pt#; % diameter of dots
+cap_hair#:=31.36/36pt#; % uppercase hairline breadth
+cap_stem#:=95.45/36pt#; % uppercase stem breadth
+cap_curve#:=109/36pt#; % uppercase curve breadth
+cap_ess#:=103.6/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.2pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=72/36pt#; % vertical distance from serif base to tangent
+jut#:=90/36pt#; % protrusion of lowercase serifs
+cap_jut#:=111.8/36pt#; % protrusion of uppercase serifs
+beak_jut#:=31/36pt#; % horizontal protrusion of beak serifs
+beak#:=252/36pt#; % vertical protrusion of beak serifs
+vair#:=23/36pt#; % vertical diameter of hairlines
+notch_cut#:=36pt#; % maximum breadth above or below notches
+bar#:=34/36pt#; % lowercase bar thickness
+slab#:=34/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=34/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+serif_drop#:=14.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=24.5/36pt#; % amount of overshoot for curves
+apex_o#:=24.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-2.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=51.28/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=12.6/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=8.6/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=719/36pt#; % height of tallest characters
+lower.cap_height#:=665.9/36pt#; % height of caps
+lower.x_height#:=417/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=233.9/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=187/36pt#; % depth of comma below baseline
+
+lower.flare#:=74/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=25.9/36pt#; % uppercase hairline breadth
+lower.stem#:=80/36pt#; % lowercase stem breadth
+lower.cap_stem#:=77/36pt#; % uppercase stem breadth
+lower.cap_curve#:=91/36pt#; % uppercase curve breadth
+lower.cap_ess#:=82.88/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=78/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=21/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=186/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=28/36pt#; % seri f and arm thickness
+lower.cap_bar#:=28/36pt#; % upp ercase bar thickness
+lower.cap_band#:=28/36pt#; % up percase thickness above/below lobes
+lower.cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+
+lower.o#:=15.3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=12.25/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcscsl1.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcscsl1.mf
new file mode 100644
index 00000000000..72c35f4a1e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcscsl1.mf
@@ -0,0 +1,110 @@
+% Computer Modern Roman Caps and Small Caps Slanted 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSCSL"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl10.mf
new file mode 100644
index 00000000000..a1642bf8327
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl10.mf
@@ -0,0 +1,76 @@
+% Computer Modern Cyrillic Slanted 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl12.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl12.mf
new file mode 100644
index 00000000000..b0bdc89b6d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl12.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Slanted Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSL"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl8.mf
new file mode 100644
index 00000000000..3a7786b83ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Slanted Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSL"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl9.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl9.mf
new file mode 100644
index 00000000000..0b7943f5f51
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsl9.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Slanted Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSL"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcsltt1.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsltt1.mf
new file mode 100644
index 00000000000..7a78d2da49f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcsltt1.mf
@@ -0,0 +1,75 @@
+% Computer Modern Slanted Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSLTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcss10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss10.mf
new file mode 100644
index 00000000000..46e67290ab5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Sans Serif 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcss12.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss12.mf
new file mode 100644
index 00000000000..44ef72a99c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss12.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Sans Serif 12 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSS"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcss17.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss17.mf
new file mode 100644
index 00000000000..ca5a4a5a88e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss17.mf
@@ -0,0 +1,75 @@
+% Computer Modern Sans Serif 17 pt (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSS"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=24/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=432/36pt#; % height of caps
+fig_height#:=408/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=136/36pt#; % height of crossbar in lowercase e
+comma_depth#:=78/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=47/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=47/36pt#; % lowercase curve breadth
+ess#:=47/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50/36pt#; % diameter of dots
+cap_hair#:=47/36pt#; % uppercase hairline breadth
+cap_stem#:=52/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=52/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.8/36pt#; % vertical protrusion of beak serifs
+vair#:=38/36pt#; % vertical diameter of hairlines
+notch_cut#:=32/36pt#; % maximum breadth above or below notches
+bar#:=36/36pt#; % lowercase bar thickness
+slab#:=40/36pt#; % serif and arm thickness
+cap_bar#:=38/36pt#; % uppercase bar thickness
+cap_band#:=35/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=7/36pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcss8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss8.mf
new file mode 100644
index 00000000000..9421bcad473
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Sans Serif 8 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSS"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcss9.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss9.mf
new file mode 100644
index 00000000000..5a729d920bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcss9.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Sans Serif 9 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSS"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=16/36pt#; % width of extrafine details
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcssbx1.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssbx1.mf
new file mode 100644
index 00000000000..e08c03533c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssbx1.mf
@@ -0,0 +1,75 @@
+% Computer Modern Sans Serif Bold Extended 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSSBX"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=22/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=26/36pt#; % diameter of serif corners
+tiny#:=26/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=49/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=43/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=49/36pt#; % uppercase hairline breadth
+cap_stem#:=53/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=49/36pt#; % maximum breadth above or below notches
+bar#:=26/36pt#; % lowercase bar thickness
+slab#:=36/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=31/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=18/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcssdc1.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssdc1.mf
new file mode 100644
index 00000000000..f2bcb097ebd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssdc1.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Sans Serif Demibold Condensed 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSSDC"; font_size 10pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-8/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+crisp#:=23/36pt#; % diameter of serif corners
+tiny#:=23/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=40/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=37/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=44/36pt#; % uppercase stem breadth
+cap_curve#:=44/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=23/36pt#; % vertical diameter of hairlines
+notch_cut#:=40/36pt#; % maximum breadth above or below notches
+bar#:=23/36pt#; % lowercase bar thickness
+slab#:=31/36pt#; % serif and arm thickness
+cap_bar#:=29/36pt#; % uppercase bar thickness
+cap_band#:=27/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=37/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=14/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.91; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.74; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi10.mf
new file mode 100644
index 00000000000..69a36bf35fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Slanted Sans Serif 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSSI"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi12.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi12.mf
new file mode 100644
index 00000000000..6055fef435e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi12.mf
@@ -0,0 +1,75 @@
+% Computer Modern Slanted Sans Serif 12 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSSI"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi17.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi17.mf
new file mode 100644
index 00000000000..04aef08adb5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi17.mf
@@ -0,0 +1,75 @@
+% Computer Modern Slanted Sans Serif 17 pt (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSSI"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=24/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=432/36pt#; % height of caps
+fig_height#:=408/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=136/36pt#; % height of crossbar in lowercase e
+comma_depth#:=78/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=47/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=47/36pt#; % lowercase curve breadth
+ess#:=47/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50/36pt#; % diameter of dots
+cap_hair#:=47/36pt#; % uppercase hairline breadth
+cap_stem#:=52/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=52/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.8/36pt#; % vertical protrusion of beak serifs
+vair#:=38/36pt#; % vertical diameter of hairlines
+notch_cut#:=32/36pt#; % maximum breadth above or below notches
+bar#:=36/36pt#; % lowercase bar thickness
+slab#:=40/36pt#; % serif and arm thickness
+cap_bar#:=38/36pt#; % uppercase bar thickness
+cap_band#:=35/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=7/36pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi8.mf
new file mode 100644
index 00000000000..ba508b26a65
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Slanted Sans Serif 8 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSSI"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi9.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi9.mf
new file mode 100644
index 00000000000..a8285eb43ab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssi9.mf
@@ -0,0 +1,75 @@
+% Computer Modern Slanted Sans Serif 9 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSSI"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=16/36pt#; % width of extrafine details
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcssq8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssq8.mf
new file mode 100644
index 00000000000..288e03b6d5c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssq8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Sans Serif Quotation Style 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSQ"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcssqi8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssqi8.mf
new file mode 100644
index 00000000000..0bdcff574c0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcssqi8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Sans Serif Quotation Style Slanted 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSSQI"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcti10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti10.mf
new file mode 100644
index 00000000000..0518eb58835
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Text Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCTI"; font_size 10pt#;
+
+u#:=18.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcti12.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti12.mf
new file mode 100644
index 00000000000..ac8ed9f4747
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti12.mf
@@ -0,0 +1,75 @@
+% Computer Modern Text Italic 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCTI"; font_size 12pt#;
+
+u#:=21.6/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10.8/36pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=12/36pt#; % lowercase hairline breadth
+stem#:=26/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=38/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcti7.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti7.mf
new file mode 100644
index 00000000000..6f8c98e9f0b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti7.mf
@@ -0,0 +1,75 @@
+% Computer Modern Text Italic 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCTI"; font_size 7pt#;
+
+u#:=14.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=10.5/36pt#; % lowercase hairline breadth
+stem#:=18.5/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=10.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24.5/36pt#; % uppercase curve breadth
+cap_ess#:=21/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcti8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti8.mf
new file mode 100644
index 00000000000..38d01fe3255
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Text Italic 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCTI"; font_size 8pt#;
+
+u#:=15.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=7.9/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcti9.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti9.mf
new file mode 100644
index 00000000000..0e65e8ceeb3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcti9.mf
@@ -0,0 +1,75 @@
+% Computer Modern Text Italic 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCTI"; font_size 9pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=8.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=30.5/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.5/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmctitle.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmctitle.mf
new file mode 100644
index 00000000000..2bbc08c01e9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmctitle.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Sans Serif Demibold Condensed 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCtitle"; font_size 10pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-8/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+crisp#:=23/36pt#; % diameter of serif corners
+tiny#:=23/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=40/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=37/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=44/36pt#; % uppercase stem breadth
+cap_curve#:=44/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=23/36pt#; % vertical diameter of hairlines
+notch_cut#:=40/36pt#; % maximum breadth above or below notches
+bar#:=23/36pt#; % lowercase bar thickness
+slab#:=31/36pt#; % serif and arm thickness
+cap_bar#:=29/36pt#; % uppercase bar thickness
+cap_band#:=27/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=37/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=14/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.91; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.74; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytitle; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmctt10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmctt10.mf
new file mode 100644
index 00000000000..59c4a5f9ad6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmctt10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmctt12.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmctt12.mf
new file mode 100644
index 00000000000..8c897e53632
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmctt12.mf
@@ -0,0 +1,75 @@
+% Computer Modern Typewriter Text for use with 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCTT"; font_size 12pt#;
+
+u#:=24.7/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=300/36pt#; % height of tallest characters
+asc_height#:=264/36pt#; % height of lowercase ascenders
+cap_height#:=264/36pt#; % height of caps
+fig_height#:=264/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=132/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=60/36pt#; % depth of comma below baseline
+desc_depth#:=96/36pt#; % depth of lowercase descenders
+
+crisp#:=25/36pt#; % diameter of serif corners
+tiny#:=25/36pt#; % diameter of rounded corners
+fine#:=22/36pt#; % diameter of sharply rounded corners
+thin_join#:=22/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=39/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=28/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=39/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=39/36pt#; % vertical protrusion of beak serifs
+vair#:=25/36pt#; % vertical diameter of hairlines
+notch_cut#:=28/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=25/36pt#; % serif and arm thickness
+cap_bar#:=25/36pt#; % uppercase bar thickness
+cap_band#:=25/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=28/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=11/36pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.86; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmctt8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmctt8.mf
new file mode 100644
index 00000000000..39fa39be750
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmctt8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Typewriter Text for use with 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCTT"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=200/36pt#; % height of tallest characters
+asc_height#:=176/36pt#; % height of lowercase ascenders
+cap_height#:=176/36pt#; % height of caps
+fig_height#:=176/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=88/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=64/36pt#; % depth of lowercase descenders
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=27/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmctt9.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmctt9.mf
new file mode 100644
index 00000000000..3c2b7aa521e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmctt9.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Typewriter Text for use with 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCTT"; font_size 9pt#;
+
+u#:=18.9/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=225/36pt#; % height of tallest characters
+asc_height#:=198/36pt#; % height of lowercase ascenders
+cap_height#:=198/36pt#; % height of caps
+fig_height#:=198/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=72/36pt#; % depth of lowercase descenders
+
+crisp#:=21/36pt#; % diameter of serif corners
+tiny#:=21/36pt#; % diameter of rounded corners
+fine#:=20/36pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=24/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=33/36pt#; % diameter of dots
+cap_hair#:=24/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=24/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=31/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=31/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3.5/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcu10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcu10.mf
new file mode 100644
index 00000000000..1d196d505c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcu10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Unslanted Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCU"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cytextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr10.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr10.mf
new file mode 100644
index 00000000000..c4668ae1e3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCYR"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr12.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr12.mf
new file mode 100644
index 00000000000..ea46935523f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr12.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCYR"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr17.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr17.mf
new file mode 100644
index 00000000000..e4f6a805bee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr17.mf
@@ -0,0 +1,75 @@
+% Computer Modern Roman 17 point (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCYR"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=425/36pt#; % height of caps
+fig_height#:=401/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=150/36pt#; % height of crossbar in lowercase e
+comma_depth#:=121/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=41/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=13/36pt#; % uppercase hairline breadth
+cap_stem#:=40/36pt#; % uppercase stem breadth
+cap_curve#:=48/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=34/36pt#; % vertical distance from serif base to tangent
+jut#:=42/36pt#; % protrusion of lowercase serifs
+cap_jut#:=50/36pt#; % protrusion of uppercase serifs
+beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs
+beak#:=121/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=17pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches
+serif_drop#:=17/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr5.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr5.mf
new file mode 100644
index 00000000000..8379a51d221
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr5.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCYR"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=18/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr6.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr6.mf
new file mode 100644
index 00000000000..ebc07e907b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr6.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCYR"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr7.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr7.mf
new file mode 100644
index 00000000000..4de418a91b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr7.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCYR"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr8.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr8.mf
new file mode 100644
index 00000000000..5d122530823
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCYR"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr9.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr9.mf
new file mode 100644
index 00000000000..18fc3271e91
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cmcyr9.mf
@@ -0,0 +1,75 @@
+% Computer Modern Cyrillic Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCYR"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate cyrillic % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/coding.bak b/Master/texmf-dist/fonts/source/public/cmcyr/coding.bak
new file mode 100644
index 00000000000..7ce9c009ffd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/coding.bak
@@ -0,0 +1,69 @@
+% that coding is KOI-8
+
+CYR_a := oct"101";
+CYR_be := oct"102";
+CYR_ve := oct"127";
+CYR_ghe := oct"107";
+CYR_de := oct"104";
+CYR_ie := oct"105";
+CYR_yo := oct"74";
+CYR_zhe := oct"126";
+CYR_ze := oct"132";
+CYR_i := oct"111";
+CYR_short_i := oct"112";
+CYR_ka := oct"113";
+CYR_el := oct"114";
+CYR_em := oct"115";
+CYR_en := oct"116";
+CYR_o := oct"117";
+CYR_pe := oct"120";
+CYR_er := oct"122";
+CYR_es := oct"123";
+CYR_te := oct"124";
+CYR_u := oct"125";
+CYR_ef := oct"106";
+CYR_ha := oct"110";
+CYR_tse := oct"103";
+CYR_che := oct"136";
+CYR_sha := oct"133";
+CYR_shcha := oct"135";
+CYR_hard_sign := oct"137";
+CYR_yeru := oct"131";
+CYR_soft_sign := oct"130";
+CYR_e := oct"134";
+CYR_yu := oct"100";
+CYR_ya := oct"121";
+
+CYR_A := oct"141";
+CYR_BE := oct"142";
+CYR_VE := oct"167";
+CYR_GHE := oct"147";
+CYR_DE := oct"144";
+CYR_IE := oct"145";
+CYR_YO := oct"76";
+CYR_ZHE := oct"166";
+CYR_ZE := oct"172";
+CYR_I := oct"151";
+CYR_SHORT_I := oct"152";
+CYR_KA := oct"153";
+CYR_EL := oct"154";
+CYR_EM := oct"155";
+CYR_EN := oct"156";
+CYR_O := oct"157";
+CYR_PE := oct"160";
+CYR_ER := oct"162";
+CYR_ES := oct"163";
+CYR_TE := oct"164";
+CYR_U := oct"165";
+CYR_EF := oct"146";
+CYR_HA := oct"150";
+CYR_TSE := oct"143";
+CYR_CHE := oct"176";
+CYR_SHA := oct"173";
+CYR_SHCHA := oct"175";
+CYR_HARD_SIGN := oct"177";
+CYR_YERU := oct"171";
+CYR_SOFT_SIGN := oct"170";
+CYR_E := oct"174";
+CYR_YU := oct"140";
+CYR_YA := oct"161";
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/coding.mf b/Master/texmf-dist/fonts/source/public/cmcyr/coding.mf
new file mode 100644
index 00000000000..65513e3ce53
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/coding.mf
@@ -0,0 +1,69 @@
+% that coding is KOI-7
+
+CYR_a := oct"101";
+CYR_be := oct"102";
+CYR_ve := oct"127";
+CYR_ghe := oct"107";
+CYR_de := oct"104";
+CYR_ie := oct"105";
+CYR_yo := oct"74";
+CYR_zhe := oct"126";
+CYR_ze := oct"132";
+CYR_i := oct"111";
+CYR_short_i := oct"112";
+CYR_ka := oct"113";
+CYR_el := oct"114";
+CYR_em := oct"115";
+CYR_en := oct"116";
+CYR_o := oct"117";
+CYR_pe := oct"120";
+CYR_er := oct"122";
+CYR_es := oct"123";
+CYR_te := oct"124";
+CYR_u := oct"125";
+CYR_ef := oct"106";
+CYR_ha := oct"110";
+CYR_tse := oct"103";
+CYR_che := oct"136";
+CYR_sha := oct"133";
+CYR_shcha := oct"135";
+CYR_hard_sign := oct"137";
+CYR_yeru := oct"131";
+CYR_soft_sign := oct"130";
+CYR_e := oct"134";
+CYR_yu := oct"100";
+CYR_ya := oct"121";
+
+CYR_A := oct"141";
+CYR_BE := oct"142";
+CYR_VE := oct"167";
+CYR_GHE := oct"147";
+CYR_DE := oct"144";
+CYR_IE := oct"145";
+CYR_YO := oct"76";
+CYR_ZHE := oct"166";
+CYR_ZE := oct"172";
+CYR_I := oct"151";
+CYR_SHORT_I := oct"152";
+CYR_KA := oct"153";
+CYR_EL := oct"154";
+CYR_EM := oct"155";
+CYR_EN := oct"156";
+CYR_O := oct"157";
+CYR_PE := oct"160";
+CYR_ER := oct"162";
+CYR_ES := oct"163";
+CYR_TE := oct"164";
+CYR_U := oct"165";
+CYR_EF := oct"146";
+CYR_HA := oct"150";
+CYR_TSE := oct"143";
+CYR_CHE := oct"176";
+CYR_SHA := oct"173";
+CYR_SHCHA := oct"175";
+CYR_HARD_SIGN := oct"177";
+CYR_YERU := oct"171";
+CYR_SOFT_SIGN := oct"170";
+CYR_E := oct"174";
+CYR_YU := oct"140";
+CYR_YA := oct"161";
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cyrillic.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cyrillic.mf
new file mode 100644
index 00000000000..9af2e2d87a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cyrillic.mf
@@ -0,0 +1,276 @@
+% The Computer Modern Cyrillic family of fonts (by N.Glonti)
+
+let cmchar=message; % `|cmchar|' should precede each character
+
+font_coding_scheme:="TeX text";
+input coding;
+
+mode_setup; font_setup;
+
+
+input cyru; % upper case (majuscules)
+input cyrl; % lower case (minuscules)
+input cyrsymb; % three additional char
+
+font_slant slant;
+font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+
+% k#:=.5u#; kk#:=.75u#; kkk#:=1.5u#; kkkk#:=-2u#;
+
+ k#:=.25u#; kk#:=.5u#; kkk#:=0.75u#; kkkk#:=-1.25
+u#;
+
+%k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+%k#:=2u#; kk#:=u#; kkk#:=3u#; kkkk#:=-5u#;
+ ligtable CYR_a: % a
+ CYR_ya kern -kk#, % ya
+ CYR_u kern -kk#, % u
+ CYR_de kern k#, % d
+ CYR_che kern -kk#; % ch
+
+ ligtable CYR_be: % b
+ CYR_ve kern -k#, % ve
+ CYR_ghe kern -k#, % ghe
+ CYR_ie kern k#, % e
+ CYR_zhe kern -k#, % zhe
+ CYR_i kern -k#, % i
+ CYR_ka kern -k#, % ka
+ CYR_em kern -k#, % em
+ CYR_en kern -k#, % en
+ CYR_pe kern -k#, % pe
+ CYR_er kern -k#, % er
+% CYR_ef kern -k#, % (was -kk# AS) f
+ CYR_ha kern -k#, % x
+% CYR_o kern -k#, % o (-kkkk -> -kkk AS)
+ CYR_es kern -k#, % s (-kkkk -> -kkk AS)
+ CYR_u kern -k#, % u
+ CYR_soft_sign kern -k#, % soft_sign
+ CYR_yeru kern -k#, % yeru
+ CYR_shcha kern -k#, % shcha
+ CYR_tse kern -k#; % tse
+
+ ligtable CYR_tse: CYR_sha: CYR_shcha:
+ CYR_en: CYR_em: CYR_pe:
+ CYR_be kern -k#, % be
+ CYR_o kern -k#, % o
+ CYR_ie kern -k#, % es
+ CYR_ef kern -k#, % ef
+ CYR_es kern -k#, % ie
+ CYR_de kern k#; % d
+
+ ligtable CYR_de: % d
+ CYR_be kern -kkk#, % be
+ CYR_o kern -kkk#, % o
+ CYR_ie kern -kkk#, % es
+ CYR_ef kern -kk#, % ef
+ CYR_es kern -kkk#, % ie
+ CYR_de kern kk#; % d
+
+ ligtable CYR_ie: % e
+ CYR_be kern kkk#, % b
+ CYR_de kern -kk#, % d
+% CYR_ie kern -k#, % e
+ CYR_zhe kern -kk#, % e
+% CYR_ef kern -k#, % f
+ CYR_ha kern -kk#, % x
+% CYR_o kern -k#, % o
+% CYR_es kern -k#, % s
+% CYR_te kern -k#, % t
+ CYR_u kern -k#; % u
+
+ ligtable CYR_ef: % f
+ CYR_ie kern k#, % e
+ CYR_ha kern -kk#, % x
+ CYR_i kern -kk#, % i
+ CYR_en kern -k#, %
+ CYR_pe kern -k#, %
+ CYR_er kern -k#, %
+ CYR_o kern k#, % o
+ CYR_es kern k#, % s
+ CYR_te kern -k#; % t
+
+ ligtable CYR_ghe: % g
+ CYR_be kern -k#, % b
+ CYR_ie kern -kkk#, % e
+ CYR_o kern -kkk#, % o
+ CYR_es kern -kkk#; % s
+
+ ligtable CYR_ha: % kh
+ CYR_ie kern -kk#, % e
+ CYR_o kern -kk#, % o
+ CYR_ef kern -kk#, %
+ CYR_es kern -kk#; % s
+
+ ligtable CYR_ka: % k
+ CYR_ie kern -kk#, % e
+ CYR_ef kern -kk#, % f
+ CYR_o kern -kk#, % o
+ CYR_es kern -kk#, % s
+ CYR_u kern -k#; % u
+
+ ligtable CYR_el: % l
+ CYR_ie kern -kk#, % e
+ CYR_ef kern -kk#, % f
+ CYR_o kern -kk#, % o
+ CYR_es kern -kk#; % s
+
+ ligtable CYR_o: % o
+% CYR_be kern -k#, % b (was kkkk AS)
+ CYR_ve kern -kk#, % ve
+ CYR_de kern -kkk#, % de
+% CYR_ie kern -k#, % e (was kkkk AS)
+ CYR_ha kern -kk#, % x
+% CYR_o kern -k#, % o (was kkkk AS)
+% CYR_es kern -kk#, % s (was kkkk AS)
+ CYR_em kern -kk#, %
+ CYR_en kern -kk#, %
+ CYR_pe kern -kk#, %
+ CYR_i kern -kk#, %
+ CYR_short_i kern -kk#, %
+ CYR_ka kern -kk#, %
+ CYR_er kern -kk#, %
+ CYR_sha kern -kk#, %
+ CYR_shcha kern -kk#, %
+ CYR_che kern -kkk#, %
+ CYR_zhe kern -kk#; % zh
+
+ ligtable CYR_er: % p
+% CYR_be kern -k#, % b (kkkk -> -kkk AS)
+% CYR_ie kern -k#, % e(kkkk -> -kkk AS)
+ CYR_ha kern -kk#, % x
+% CYR_o kern -k#, % o (kkkk -> -kkk AS)
+% CYR_es kern -kk#, % s (kkkk -> -kkk AS)
+ CYR_te kern -k#; % t
+
+%ligtable CYR_es: % s
+% CYR_be kern -k#, % b
+% CYR_ie kern -k#, % e
+% CYR_ef kern -k#, % f
+% CYR_o kern -k#, % o
+% CYR_es kern -k#; % s
+ ligtable CYR_te: % t
+ CYR_en kern -k#, %
+ CYR_es kern -k#, %
+ CYR_ie kern -k#, % e
+ CYR_o kern -k#; % o
+ ligtable CYR_u: % u
+ CYR_de kern -k#, % d
+ CYR_el kern -kk#, %
+ CYR_a kern -k#; % s
+ ligtable CYR_zhe: % zh
+ CYR_be kern -kk#, % b
+ CYR_ie kern -kk#, %
+ CYR_ef kern -kk#, %
+ CYR_o kern -kk#, % o
+ CYR_es kern -kk#; % s
+
+ ligtable CYR_ve: % w
+ CYR_te kern -k#; % d
+
+%ligtable CYR_ze: % z
+% CYR_be kern -k#, % b
+% CYR_ie kern -k#, % e
+% CYR_o kern -k#, % o
+% CYR_es kern -k#; % s
+
+ ligtable CYR_A: % A
+ CYR_u kern -kk#, %
+ CYR_CHE kern -kkk#; % ch
+
+ ligtable CYR_BE: % B
+ CYR_O kern -k#, % o
+ CYR_ES kern -k#, % s
+ CYR_U kern -kk#; % u
+
+ ligtable CYR_GHE: CYR_U: % G U
+ CYR_A kern -kk#, % a
+% CYR_ve kern -kk#, % w
+% CYR_GHE kern -kk#, % g
+ CYR_DE kern -kk#, % d
+% CYR_IE kern -kk#, % e
+ CYR_EF kern -kk#, % f
+ CYR_HA kern -kk#, % kh
+% CYR_I kern -kk#, % i
+% CYR_SHORT_I kern -kk#, % j
+% CYR_KA kern -kk#, % k
+ CYR_EL kern -kk#, % l
+% CYR_EM kern -kk#, % m
+% CYR_EN kern -kk#, % n
+% CYR_O kern -kk#, % o
+% CYR_PE kern -kk#, % p
+ CYR_YA kern -kk#, % ya
+% CYR_ER kern -kk#, % r
+ CYR_ES kern -kk#, % s
+ CYR_TE kern -kk#, % t
+ CYR_U kern -kk#; % u
+% CYR_VE kern -kk#, % w
+% CYR_SOFT_SIGN kern -kk#, % '
+% CYR_YERU kern -kk#, % y
+% CYR_ZE kern -kk#, % z
+% CYR_SHA kern -kk#, % sh
+% CYR_SHCHA kern -kk#, % shch
+% CYR_CHE kern -kk#; % ch
+% CYR_HARD_SIGN kern -k#; % ''
+
+ ligtable CYR_O: CYR_ES: CYR_EF:
+ CYR_de kern -kkk#, %
+ CYR_A kern -kkk#, %
+ CYR_VE kern -kkk#, %
+ CYR_GHE kern -kkk#, %
+ CYR_ER kern -kkk#, %
+ CYR_PE kern -kkk#, %
+ CYR_EN kern -kkk#, %
+ CYR_E kern -kkk#, %
+ CYR_HA kern -kkk#, %
+ CYR_I kern -kkk#, %
+ CYR_KA kern -kkk#, %
+ CYR_EM kern -kkk#, %
+ CYR_SHA kern -kkk#, %
+ CYR_SHCHA kern -kkk#, %
+ CYR_SHORT_I kern -kkk#; % j
+
+ ligtable CYR_EN: CYR_EM: CYR_ER: CYR_PE:
+ CYR_ZHE: CYR_KA: CYR_DE: CYR_HA:
+ CYR_O kern -kkk#, %
+ CYR_ES kern -kkk#, %
+ CYR_EF kern -kkk#; %
+
+ ligtable CYR_TE: % T
+ CYR_A kern -kkk#, % a
+% CYR_VE kern -kkk#, % w
+% CYR_GHE kern -kkk#, % g
+ CYR_DE kern -kkk#, % d
+ CYR_IE kern -kkk#, % e
+ CYR_EF kern -kkk#, % f
+ CYR_HA kern -kkk#, % kh
+ CYR_I kern -kkk#, % i
+ CYR_SHORT_I kern -kkk#, % j
+ CYR_KA kern -kkk#, % k
+ CYR_EL kern -kkk#, % l
+% CYR_EM kern -kkk#, % m
+% CYR_EN kern -kkk#, % n
+ CYR_O kern -kkk#, % o
+% CYR_PE kern -kkk#, % p
+ CYR_YA kern -kkk#, % ya
+% CYR_ER kern -kkk#, % r
+ CYR_ES kern -kkk#, % s
+ CYR_TE kern -kkk#, % t
+ CYR_U kern -kkk#, % u
+% CYR_VE kern -kkk#, %
+% CYR_SOFT_SIGN kern -kkk#, %
+% CYR_YERU kern -kkk#, % y
+ CYR_ZE kern -kkk#; % z
+% CYR_SHA kern -kk#, % sh
+% CYR_SHCHA kern -kk#, % shch
+% CYR_CHE kern -kk#, % ch
+% CYR_HARD_SIGN kern -kk#; %
+fi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cyrl.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cyrl.mf
new file mode 100644
index 00000000000..a9e9f908658
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cyrl.mf
@@ -0,0 +1,1061 @@
+cmchar "The cyrillic letter a";
+beginchar(CYR_a,9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The cyrillic letter be";
+beginchar(CYR_be,9u#,fig_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos2'(hair,180); lft x2'r=x2r; y2'=y2r;
+penpos5(.8curve,90); penpos6(.8curve,90);
+penpos6'(.8curve,-90); x6=.5[x5,x7]; y6=y5; z6'=z6;
+penpos7(thin_join,0); rt x7r=rt x4r;
+top y7=h; top y5r=.97h; x5=x1;
+fill stroke z2'e{up}...{right}z5e..z6e;
+fill circ_stroke pulled_arc.e(7,6');
+penlabels(1,2,2',3,4,5,6',6,7); endchar;
+
+cmchar "The cyrillic letter ve";
+beginchar(CYR_ve,9u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-u); x10r=hround(w-.5u);
+if serifs: right_curve=curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The cyrillic letter ghe";
+beginchar(CYR_ghe,8.5u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter de";
+beginchar(CYR_de,10u#,x_height#,comma_depth#);
+italcorr x_height#*slant-serif_fit#
+ +.75jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; numeric thin_stem;
+thin_stem=if monospace: stem-tiny
+ else: min(hair,stem-1.3tiny) fi;
+if serifs: penpos1(thin_stem,0); penpos2(thin_stem,0); x2=.5[hround .5u,x1];
+else: penpos1(thin_stem,0); penpos2(thin_stem,0); x2=.5u+stem; fi
+pos3(stem,0); pos4(stem,0);
+x1l=x0l=.33w; top y1=h; bot y2=0;
+rt x3r=rt x4r=hround(w-2u); top y3=h; bot y4=0;
+filldraw stroke z3e--z4e;
+filldraw stroke z1e{down}..z2e; % stem and arc
+if serifs: pickup crisp.nib; numeric inner_jut,newbracket;
+ newbracket:=max(1.5,bracket); inner_jut:=.5(x3l-x1r);
+ path p[]; p1=z1{down}...z2;
+ p12=(0,y1-newbracket)--(w,y1-newbracket);
+ p21=(0,y2+newbracket)--(w,y2+newbracket);
+ z12=p1 intersectionpoint p12; z21=p1 intersectionpoint p21;
+ nodish_serif(1,12,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,c,1/3,inner_jut,d,1/3,jut); % upper right serif
+ inner_jut:=.5(x4l-x2r);
+ nodish_serif(2,21,e,1/3,jut,f,1/3,inner_jut); % middle left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % middle right serif
+ pickup crisp.nib;
+ pos5(slab,90); pos6(hair,180); pos7(hair,0);
+ x5=.5[x2,x4]; bot y5l=0;
+ rt x7r=tiny.rt x4r+jut; lft x6r=tiny.lft x2l-jut;
+ y6=y7=good.y(y5l-.5beak)-eps;
+ arm(5,6,m,1.25beak_darkness,0); % left beak
+ arm(5,7,n,1.25beak_darkness,0); % right beak
+else:
+ pos1'(slab,90); pos3'(slab,90);
+ pos6(slab,90); pos7(slab,90);
+ pos6'(slab,0); pos7'(slab,0);
+ pos8(slab,0); pos9(slab,0);
+ lft x1'=lft x1l; rt x3'=rt x3r; top y1'r=top y3'r=h;
+ lft x6=lft x6'l=lft x8l=.5u; rt x7=rt x7'r=rt x9r=w-.5u;
+ bot y6l=bot y7l=0; y6'=y7'=y6; bot y8=bot y9=-.75d;
+ filldraw stroke z1'e--z3'e; % upper bar
+ filldraw stroke z6e--z7e; % lower bar
+ filldraw stroke z6'e--z8e; % left beak
+ filldraw stroke z7'e--z9e; % right beak
+fi
+penlabels(1,1',2,3,3',4,5,6,7,8,9,12,21); endchar;
+
+cmchar "The cyrillic letter ie";
+beginchar(CYR_ie,7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter yo";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(CYR_yo,7.25u#+max(.75u#,.5curve#),1.4x_height#,0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve,letter_h; letter_h=x_height;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=letter_h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+pos6(dot_diam,0); pos7(dot_diam,90);
+x6=x7=2.5u; top y7r=h+1;
+if bot y7l<letter_h+o+slab: y7l:=min(y7r-eps,letter_h+o+slab+.5tiny); fi
+y6=.5[y7l,y7r]; dot(6,7); % left dot
+pos8(dot_diam,0); penpos9(y7r-y7l,90); y8=y9=y6; x8=x9=w-x6;
+dot(8,9); % right dot
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter zhe";
+beginchar(CYR_zhe,14u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+x1=x2=.5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=w-lft x7l=hround(r-letter_fit-.9u-right_jut);
+rt x6r=w-lft x9l=hround(r-letter_fit-.5u-right_jut);
+top y3=top y7=h; bot y6=bot y9=0; x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+penpos7(alpha1*(stem1-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0); penpos9(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=y7'$=h; y6'$=y9'$=0;
+ z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4];
+ x8$=w-x5$; y8$=y5$; endfor
+z5=.5[z5l,z5r]; z8=.5[z8l,z8r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+x7'r=w-x3'r; x7'l=w-x3'l; x9'r=w-x6'r; x9'l=w-x6'l;
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % right upper diagonal
+fill z4r--diag_end(4r,7'r,1,.5,7'l,4l)--z4l--cycle; % left upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % right lower diagonal
+fill z8l--diag_end(8l,9'l,.5,1,9'r,8r)--z8r--cycle; % left lower diagonal
+if serifs: numeric inner_jut,mon_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ mon_jut=if monospace: inner_jut else: jut fi;
+ dish_serif(1,2,a,1/3,mon_jut,b,1/3,mon_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower stem serif
+ dish_serif(3,4,e,2/3,right_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(7,4,i,1/2,right_jut,j,2/3,right_jut)(dark); % upper diagonal serif
+ dish_serif(9,8,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi %lower diagonal seri
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter ze";
+beginchar(CYR_ze,7.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup fine.nib;
+if serifs: pos1(hair,180); pos2(cap_band,90);
+ pos3(max(fine.breadth,curve-stem_corr),0); pos4(vair',270);
+ lft x1r=u; top y2r=h+oo;
+ bot y1=min(vround .7h,bot y2l-eps); rt x3r=hround(w-u);
+ pos7(vair,-90); pos8(vair,-90);
+ pos9(max(fine.breadth,vround 2/3vair),90); pos10(curve,0);
+ x9=.5w-u; x2=x4=.5w-.5u; bot y4r=-oo;
+ rt x10r=w-.5u; lft x8=min(hround 5u,lft x9)-eps;
+ y3=.5[top y7l,bot y2l]; y10=.5[bot y9l,top y4l];
+ top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ pos5(hair,180); lft x5r=hround(.5u);
+ y5=max(good.y(.3bar_height),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ interim superness:=more_super;
+ filldraw stroke z1e{up}
+ ... pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z7e---z8e; % upper bowl
+ filldraw z8r--z9l--z9r--z8l---cycle; % middle tip
+ filldraw stroke pulled_super_arc.e(9,10)(.5superpull)
+ & pulled_super_arc.e(10,4)(.5superpull)
+ ..z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=1.5curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x1-x2,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: pos1(1.2flare,100); pos2(slab,90);
+ pos3(curve,0); pos4(slab,-90); pos5(flare,-95);
+ rt x1r=hround(1.1u); x2=.5w; x4=.45[x1,x10]; x9=.5w-u;
+ rt x3r=hround w-max(u,2u-.5curve); rt x5r=hround(.9u);
+ top y1r=vround .9h+oo; top y2r=h+oo; y3=.5[y7,y2];
+ bot y4r=-oo; bot y5r=vround .15h-oo; y5l:=good.y y5l; x5l:=good.x x5l;
+ pos7(vair,-90); pos8(vair,-90);
+ pos9(max(fine.breadth,vround 2/3vair),90); pos10(curve,0);
+ rt x10r=hround(w-.75u); lft x8=min(hround 5u,lft x9)-eps;
+ y10=.5[y9,y4]; top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & pulled_arc.e(3,8); % upper bowl
+ filldraw stroke pulled_arc.e(9,10)
+ & super_arc.e(10,4) & term.e(4,5,left,.8,4); fi % lower bowl
+penlabels(1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The cyrillic letter i";
+beginchar(CYR_i,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround(w-2.5u+.5fudged.stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: y5=h-y6=.12h;
+ else: bot y5l=h-top y6r=0; fi
+x5=rt x2r; x6=lft x3l;
+if hefty: numeric upper_notch,lower_notch,alpha;
+ alpha=if monospace: 100 else: 90 fi;
+ upper_notch=h-notch_cut; lower_notch=notch_cut;
+ penpos5(1.5stem,alpha); penpos6(1.5stem,alpha);
+ x2'=rt x2r; z2'=whatever[z6r,z5r]; x3'=lft x3l; z3'=whatever[z5l,z6l];
+ fill z5l..
+ if y2'<lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'>upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,90); penpos6(whatever,90);
+ z7=z6l-(max(eps,hair-tiny),0) rotated (angle(z5-z6)-90);
+ z5r=z7+whatever*(z5-z6); z6r=z7+whatever*(z5-z6);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+penlabels(1,2,2',3,3',4,4',5,6); endchar;
+
+cmchar "The cyrillic letter short_i";
+beginchar(CYR_short_i,10u#,if serifs: 1.5x_height#
+ else: 1.4x_height# fi,0);
+italcorr 1.5x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+top y1=top y3=x_height; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround(w-2.5u+.5fudged.stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: y5=x_height-y6=.12x_height;
+ else: bot y5l=x_height-top y6r=0; fi
+x5=rt x2r; x6=lft x3l;
+if hefty: numeric upper_notch,lower_notch,alpha;
+ alpha=if monospace: 100 else: 90 fi;
+ upper_notch=x_height-notch_cut; lower_notch=notch_cut;
+ penpos5(1.5stem,alpha); penpos6(1.5stem,alpha);
+ x2'=rt x2r; z2'=whatever[z6r,z5r]; x3'=lft x3l; z3'=whatever[z5l,z6l];
+ fill z5l..
+ if y2'<lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'>upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,90); penpos6(whatever,90);
+ z6'=z6l-(max(eps,hair-tiny),0) rotated (angle(z5-z6)-90);
+ z5r=z6'+whatever*(z5-z6); z6r=z6'+whatever*(z5-z6);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower left serif
+ if monospace: penpos7(.25vair,-90);
+ else: penpos7(vair,-90); fi
+ penpos8(.7vair,-180); penpos9(.5flare,-180);
+ penpos10(.7vair,0); penpos11(.5flare,0);
+ x7=.5[x8,x10]; bot y7r=.8h;
+ x8=.5w-2u; x10=w-x8; y8=y11=.95h;
+ bulb(7,8,9); % left bulb
+ bulb(7,10,11); % right bulb
+else: pickup fine.nib; penpos7(.75vair,-90);
+ penpos8(.75vair,-180); penpos10(.75vair,0);
+ x7=.5[x8,x10]; y7=.85h;
+ x8r=x1r; x10r=x3l; top y8=top y10=h;
+ filldraw stroke z8e...z7e...z10e;
+fi
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The cyrillic letter ka";
+beginchar(CYR_ka,9.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-.75u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.5u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower stem serif
+ dish_serif(3,4,e,2/3,right_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter el";
+beginchar(CYR_el,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#
+ +.75jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; numeric thin_stem;
+thin_stem=min(1.2hair,stem);
+if serifs: pos1(thin_stem,0); pos12(thin_stem,0);
+else: pos1(hair,0); pos12(hair,0); fi
+pos5(stem,0); pos6(stem,0);
+x1=.33w; top y1=h; x12=x1; y12=.5h;
+rt x5r=rt x6r=hround(w-2.5u+.5stem); top y5=h; bot y6=0;
+filldraw stroke z5e--z6e; % right stem
+if serifs:
+ numeric light_bulb,inner_jut;
+ inner_jut:=.5(x5l-x1r); light_bulb=hround 7/8[hair,flare];
+ pos2(thin_stem,-90); pos3(thin_stem,-180);
+ pos4(light_bulb,-180);
+ bot y2r=-oo; x2=.3[x4,x1];
+ y4=.2h; rt x4l=hround 2u; z4r=z3r;
+ bulb(2,3,4); % bulb
+ filldraw stroke z2e{right}...{up}z12e--z1e; % left stem and arc
+ nodish_serif(1,12,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(5,6,g,1/3,inner_jut,h,1/3,jut); % upper right serif
+ dish_serif(6,5,e,1/3,jut,f,1/3,jut); % lower right serif
+else: pos1'(slab,90); pos5'(slab,90);
+ pos2(hair,-90); pos3(hair,-90);
+ x2=.5u; x3=x2+u; bot y2r=0; bot y3r=-oo;
+ lft x1'=lft x1l; rt x5'=rt x5r; top y1'r=top y5'r=h;
+ filldraw stroke z1'e--z5'e; % upper bar
+ filldraw stroke z2e...z3e{right}...{up}z12e--z1e; % stem and arc
+fi
+penlabels(1,1',2,3,4,5,5',6,7); endchar;
+
+cmchar "The cyrillic letter em";
+beginchar(CYR_em,12u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround(w-2.5u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut; lower_notch=y6+notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-jut); % upper left serif
+ dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); % lower left serif
+ serif(3,4,d,1/3,jut); % upper right serif
+ dish_serif(4,3,e,1/3,jut,f,1/3,jut); fi % lower right serif
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter en";
+beginchar(CYR_en,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(bar,90); penpos6(bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower left serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter o";
+beginchar(CYR_o,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter pe";
+beginchar(CYR_pe,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower left serif
+ inner_jut:=inner_jut+u;
+ nodish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper left serif
+else: pos5(slab,90); pos6(slab,90);
+ lft x5=x1l; rt x6=x3r; y5r=y6r=y3;
+ filldraw stroke z5e--z6e; fi % upper bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter er";
+beginchar(CYR_er,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter es";
+beginchar(CYR_es,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter te";
+beginchar(CYR_te,10u#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+if odd(w-stem): change_width; fi
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter u";
+beginchar(CYR_u,if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter ef";
+beginchar(CYR_ef,12u#,x_height#+desc_depth#,desc_depth#);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+if odd(w-stem): change_width; fi
+top y1=h if serifs: +min(oo,serif_drop) fi;
+x1=x2=.5w; bot y2=-d;
+penpos3(cap_band,180);penpos3'(cap_band,0);
+penpos4(cap_band,90); penpos5(curve,0);
+penpos6(.5[vair,cap_band],-90);
+penpos7(.5[vair,cap_band],180); penpos7'(.5[vair,cap_band],0);
+penpos8(cap_band,90); penpos9(curve,180);
+penpos10(.5[vair,cap_band],270);
+x3l=x7l=rt x1r; x3'l=x7'l=lft x1l;
+y4r=y8r=x_height+oo; y5=y9=.5[y4l,y6l];
+x4r=x6r=.5[x1,x5]; x8r=x10r=.5[x9,x1];
+x5r=w-x9r=w-.5u;
+y7=y7'=.25x_height; y3=y3'=x_height-y7; y6r=y10r=-oo;
+filldraw stroke z1e--z2e; % stem
+fill stroke z3e{up}..pulled_arc.e(4,5) & pulled_arc.e(5,6)..{up}z7e;
+fill stroke z3'e{up}..pulled_arc.e(8,9) & pulled_arc.e(9,10)..{up}z7'e; % lobe
+if serifs:
+ sloped_serif.l(1,2,a,1/3,jut,.1h); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,3',4,5,6,7,7',8,9,10); endchar;
+
+cmchar "The cyrillic letter ha";
+beginchar(CYR_ha,if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The cyrillic letter tse";
+beginchar(CYR_tse,10u#,x_height#,comma_depth#);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,c,1/3, jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+ pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+ x5=.5[x2,x4]; bot y5l=0;
+ rt x6r=tiny.rt x4r+jut; y6=good.y(y5l-.5beak)-eps;
+ arm(5,6,m,1.25beak_darkness,0); % beak
+else: pos2'(slab,90); pos4'(slab,90);
+ pos5(slab,0); pos6(slab,0);
+ lft x2'=lft x2l; rt x4'=rt x5r=rt x6r=w-.5u;
+ bot y2'l=bot y4'l=0; y5=y4; bot y6=-.75d;
+ filldraw stroke z2'e--z4'e; % lower bar
+ filldraw stroke z5e--z6e; % right beak
+fi
+penlabels(1,2,2',3,4,4',5,6); endchar;
+
+cmchar "The cyrillic letter che";
+beginchar(CYR_che,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+numeric light_vair; light_vair=vair-fine;
+lft x1l=hround(2.5u-.5stem); x1=x2; x3l=w-x1r; x3r=x4r;
+top y1=h; bot y4=0;
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.65h;
+penpos5(light_vair,-90); penpos6(light_vair,0);
+y6=.5h; lft x6l=lft x3l; if rt x6r>rt x3r: x6r:=x3r; fi
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+pickup fine.nib; bot y5r=y6-vair-.05h; x5=.5w;
+filldraw stroke {{interim superness:=hein_super;
+ pulled_super_arc.e(2',5)(.01superpull)}}
+ & z5e{right}...z6e; % arc
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(4,3,g,1/3,jut,h,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter sha";
+beginchar(CYR_sha,15u#,x_height#,0);
+italcorr x_height#*slant-.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+pos3(stem',0); pos4(stem',0);
+pos5(stem',0); pos6(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=lft x2l=hround(2.5u-.5stem);
+x3=x4=.5w; x5=x6=w-x1;
+top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
+z3=.5[z1,z5]; z4=.5[z2,z6];
+filldraw stroke z1e--z2e; % right stem
+filldraw stroke z3e--z4e; % middle stem
+filldraw stroke z5e--z6e; % left stem
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
+ dish_serif(5,6,e,1/3,inner_jut,f,1/3, jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,g,1/3, jut,h,1/3, inner_jut); % lower left serif
+ nodish_serif(4,3,i,1/3,inner_jut, j,1/3,inner_jut); % lower middle serif
+ nodish_serif(6,5,k,1/3,inner_jut, l,1/3,jut); % lower right serif
+else: pos2'(slab,90); pos6'(slab,90);
+ lft x2'=lft x1l; rt x6'=rt x6r; bot y2'l=bot y6'l=0;
+ filldraw stroke z2'e--z6'e; % lower bar
+fi
+penlabels(1,2,2',3,4,5,6,6'); endchar;
+
+
+cmchar "The cyrillic letter shcha";
+beginchar(CYR_shcha,15u#,x_height#,comma_depth#);
+italcorr x_height#*slant-.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+pos3(stem',0); pos4(stem',0);
+pos5(stem',0); pos6(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=lft x2l=hround (2.25u-.5stem);
+x3=x4=.5w; x5=x6=w-x1;
+top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
+z3=.5[z1,z5]; z4=.5[z2,z6];
+filldraw stroke z1e--z2e; % right stem
+filldraw stroke z3e--z4e; % middle stem
+filldraw stroke z5e--z6e; % left stem
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
+ dish_serif(5,6,e,1/3,inner_jut,f,1/3, jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,g,1/3, jut,h,1/3, inner_jut); % lower left serif
+ nodish_serif(4,3,i,1/3,inner_jut, j,1/3,inner_jut); % lower middle serif
+ nodish_serif(6,5,k,1/3,inner_jut, l,1/3,jut); % lower right serif
+ pickup crisp.nib; pos7(slab,90); pos8(hair,0);
+ x7=.5[x4,x6]; bot y7l=0;
+ rt x8r=tiny.rt x6r+jut; y8=good.y(y7l-.5beak)-eps;
+ arm(7,8,m,1.25beak_darkness,0); % beak
+else: pos2'(slab,90); pos6'(slab,90);
+ pos7(slab,0); pos8(slab,0);
+ lft x2'=lft x1l; rt x6'=rt x7r=rt x8r=w-.5u;
+ bot y2'l=bot y6'l=0; y7=y6; bot y8=-.75d;
+ filldraw stroke z2'e--z6'e; % lower bar
+ filldraw stroke z7e--z8e; % right beak
+fi
+penlabels(1,2,2',3,4,5,6,6',7,8); endchar;
+
+cmchar "The cyrillic letter hard_sign";
+beginchar(CYR_hard_sign,10.5u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(4u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-.5u); x8l:=x8l-.5u;
+if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-u];
+else: right_curve=curve-3stem_corr; x6=.5[x1,w-1.2u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+pickup crisp.nib; pos3(slab,90); pos4(hair,180);
+top y3r=h; x3=x1; lft x4r=hround(.5u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,-.7beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,0,jut,b,1/3,jut); % upper serif
+nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter yeru";
+beginchar(CYR_yeru,13u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+pos3(stem,0); pos4(stem,0); x3=x4=w-x1; top y3=h; bot y4=0;
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6ltop
+:=x6-.25u; x8l:=x8l-.5u;
+x7r=if serifs: tiny.lft x3l-jut; else: 8.5u; fi
+if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-4.5u];
+else: right_curve=curve-3stem_corr; x6=.5[x1,w-5.2u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+filldraw stroke z3e--z4e; % right stem
+if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper left serif
+nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); % lower left serif
+dish_serif(3,4,e,1/3,1.05jut,f,1/3,1.05jut); % upper right serif
+dish_serif(4,3,g,1/3,1.05jut,h,1/3,1.05jut); fi % lower right serif
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter soft_sign";
+beginchar(CYR_soft_sign,9u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-.5u); x8l:=x8l-.5u;
+if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-u];
+else: right_curve=curve-3stem_corr; x6=.5[x1,w-1.2u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter e";
+beginchar(CYR_e,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib;
+pos2(cap_band,90); pos4(vair',270); pos3(curve,0);
+x2=x4=.5(w-u); top y2r=h+oo; bot y4r=-oo;
+rt x3r=w-hround min(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,180);
+ lft x1r=u; bot y1=min(vround .7h,bot y2l-eps);
+ pos5(hair,180); lft x5r=hround(.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ filldraw stroke z1e{up}
+ ..pulled_super_arc.e(2,3)(superpull)%(.7superpull)
+ & pulled_super_arc.e(3,4)(superpull)%(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=1.5curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x1-x2,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: pos1(4/7[vair',flare],110);
+ lft x1r=hround(.6u);
+ top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ pos5(.6[vair',flare],265); lft x5r=hround(.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e<105:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 105}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.7superpull) & p.e; fi % arc and lower terminal
+penpos7(bar,90); penpos8(bar,90);
+x7=lft x3l; x8=.5w-1.5u;
+y7=y8=.5h;
+fill stroke z7e--z8e; % bar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter yu";
+beginchar(CYR_yu,13.5u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,if monospace: .5u# else: 0 fi);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+penpos5(vair,90); penpos7(vair',-90);
+penpos6(curve,180); penpos8(curve,0);
+x5=x7=.5[x6,x8]; y5r=h+oo; y7r=-oo;
+x8r=hround(w-.5u); x6r=hround(w-8.5u);
+y6=y8=.5h-vair_corr; y6l:=y8l:=.52h;
+penstroke pulled_arc.e(5,6) & pulled_arc.e(6,7)
+ & pulled_arc.e(7,8) & pulled_arc.e(8,5) & cycle; % bowl
+penpos3(bar,90); penpos4(bar,90); x3=x1; x4=x6; y3=y4=.52h;
+fill stroke z3e--z4e; % bar
+if serifs: numeric inner_jut; inner_jut=jut;
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); fi % lower left serif
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter ya";
+beginchar(CYR_ya,8u#+.5max(2u#,curve#),x_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=rt x2r=w-hround(2.5u-.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(curve if hefty:-3stem_corr fi,180);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7; x7=x2; y7=.5h; x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround(1.5u);
+else: x4=.5w-.5u; x5r=hround(.75u); fi
+x4l:=x6l:=x4+.125curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+pos6'(curve,0); pos8(curve,0); x6'r=x6l; y6'=y6;
+tiny.lft x8l=.5u+.5jut; bot y8=0;
+filldraw stroke z6'e--z8e; % diagonal stem
+if serifs: numeric inner_jut;
+ if rt x8r+u+1<=lft x2l-jut: inner_jut=jut;
+ else: lft x2l-u-1=rt x8r+inner_jut; fi
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
+ dish_serif(2,1,c,1/3,inner_jut,d,1/3,jut); % lower serif
+ serif(8,6',e,1/3,-.5jut); fi % lower diagonal serif
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cyrlc.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cyrlc.mf
new file mode 100644
index 00000000000..d63e637a925
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cyrlc.mf
@@ -0,0 +1,1179 @@
+ "Lowercase Softened N ligature";
+call charbegin('010,pvbli+.5pwi/pu+pvbls+phbls+.5pwii/pu+phbli,px,0,.33.px.slant);
+hpen; lft1x1=round(pvbli.u); x2=x1; x3=good1(x1+pvbls.u); x4=x3;
+top1y1=m; y1=y3; bot1y2=0; y2=y4;
+w1 draw 1..2; % left stem
+w1 draw 3..4; % right stem
+if lcs0: call `a serif(1,1,2,-lcs);
+ call `b serif(1,1,2,lcs); % upper left serif
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,lcs); % lower left serif
+ call `e serif(3,1,4,-lcs);
+ call `f serif(3,1,4,lcs);
+ call `g serif(4,1,3,-lcs);
+ call `h serif(4,1,3,.5lcs); % lower right serif
+fi;
+x5=x1; x6=x3; y5=y6; y5=.52m;
+w0 draw 5..6; % bar
+x25=x3; x26=.5[x25,x27];
+y25=y26=lb; x28=x26; bot0y28=0;
+rt2x27=round(r-phbli.u); y27=.5[y25,y4];
+lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
+call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns); % bowl
+w0 draw 25..26; % connections to stem
+w0 draw 4..28.
+ "Lowercase Softened L ligature";
+call charbegin('011,plli+.4pwiii/pu+llwidth+phbls+.5pwii/pu+phbli,px,0,.33px.slant);
+hpen; x1=good1((plli+llwidth).u+.4w3); x2=x1; bot0y1=0; top0y2=m; y3=y2; x4=x3;
+cpen;
+if ssflag=0: x6=(plli+1.5).u; x3=good0(x6+1.75u); y4=y3-s;
+new w99; w99=.8w3;
+lft99x8=lft0x7=round(plli.u); y8=y7=.12m;
+else: x7=plli.u; y7=y6; x7=x6-.75u; x3=good0(x6+.75u); y4=y3; fi;
+bot0y6=-oo;
+hpen;
+w1 draw 1..2; % vertical stroke
+w0 draw 2..3; % upper bar
+if lcs0: call `a serif(1,1,2,.5lcs); % all the serifs
+ call `b serif(1,1,2,-lcs);
+ call `c serif(2,1,1,lcs);
+ call `d serif(2,1,1,-lcs);
+ call `e dserif(3,0,4,lcs);
+ call `f dserif(3,0,4,-lcs);
+fi;
+cpen;
+if ssflag=0:
+w0 draw 4{0,-1}..6{-1,0}..7{0,1};
+w99 draw 8; % bulb
+else:
+w0 draw 4{0,-1}..6{-1,0}..7;
+fi;
+x25=x1; x26=.5[x25,x27];
+y25=y26=lb; x28=x26; bot0y28=0;
+rt2x27=round(r-phbli.u); y27=.5[y25,y1];
+lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
+call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns); % bowl
+w0 draw 25..26; % connections to stem
+w0 draw 1..28.
+ "Serbian dzh";
+call charbegin('012,2.pvbli+pwi/pu+pvbls,px,.4pd,px.slant);
+hpen; lft1x1=round(pvbli.u); x2=x1; rt1x3=round(r-pvbli.u); x4=x3;
+top1y1=m; y1=y3; bot1y2=0; y2=y4;
+w1 draw 1..2; % left stem
+w1 draw 3..4; % right stem
+if lcs0: call `a serif(1,1,2,-lcs);
+ call `b serif(1,1,2,lcs); % upper left serif
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,.5lcs); % lower left serif
+ call `e serif(3,1,4,-lcs);
+ call `f serif(3,1,4,lcs); % upper right serif
+ call `g serif(4,1,3,-.5lcs);
+ call `h serif(4,4,3,lcs); % lower right serif
+fi;
+w0 draw 2..4; % bar
+new w99; w99=.85w1;
+rt99x5=.5[x2,x4]=lft99x6; y5=0=y6;
+x7=.2[x5,x6]; x8=.8[x5,x6]; y7=-.4d=y8;
+ddraw 7..5,8..6. % middle spur
+ "The letter i (for Ukrainian)";
+call charbegin('014,2.pvbli+pw1/pu,ph,0,ph.slant);
+hpen; x1=x2=good1 .5r; top1y1=m+ssdoo; bot1y2=0;
+w1 draw 1..2; % stem
+cpen; top3y3=h-ssd; rt3x3=rt1x1; w3 draw 3; % dot
+if lcs0: call `a sserif(1,1,2,-lcs); % upper serif
+ call `b serif(2,1,1,-lcs);
+ call `c serif(2,1,1,lcs); % lower serif
+fi.
+ "Ukrainian ebar";
+call charbegin('015,poli+qza.(.5pwii/pu)+lepwidth+.5pw/pu+plzi,px,0,px.slant);
+cpen; rt0x901=round(r-plzi.u);
+if ssflag=0: y901=.12m; x1=.44[x901,x3];
+else: y901=.15m; x1=.36[x901,x3]; fi;
+x1=x2; top0y1=m+oo; bot0y2=-oo;
+new w99; w99=qza.w2;
+lft99x3=round(poli.u); y3=.5[y1,y2];
+lft0x13=lft99x3; rt0x23=rt99x3;
+y13=y23=y3;
+call lune(1,2,23,13,.42rdns,.42rdns,.42rdns,.42rdns); % bowl
+if ssflag=0:
+x903=x901+.3u; y903=y901+(1.5+qyg).w0;
+x101=good0(x901-.2u); y101=.9m;
+x103=x101+.1u; y103=y101-(1.5+qyg).w0;
+new tailex; tailex=1.2; new tailmid; tailmid=.6;
+call arcpoint(2,901,902,1,0,tailex,1,.5,.5);
+call arcpoint(2,903,904,1,0,tailmid,1,.55,.5);
+call arcpoint(1,101,102,1,0,tailex,-1,.5,.5);
+call arcpoint(1,103,104,1,0,tailmid,-1,.55,.5);
+
+w0 ddraw 2{1,0}..902{x901-x2,y901-y2}..901{tailex,1},
+ 2{1,0}..904{x903-x2,y903-y2}..903{tailmid,1};
+
+w0 ddraw 1{1,0}..102{x101-x1,y101-y1}..101{tailex,-1},
+ 1{1,0}..104{x103-x1,y103-y1}..103{tailmid,-1};
+else:
+new slp; slp=1.2;
+x101=x901; y101=.85m;
+call arcpoint(1,101,102,1,0,slp,-1,.5,.5);
+call arcpoint(2,901,902,1,0,slp,1,.5,.5);
+w0 draw 1{1,0}..102{x101-x1,y101-y1}..101{slp,-1};
+ draw 2{1,0}..902{x901-x2,y901-y2}..901{slp,1};
+fi;
+cpen;
+if ssflag=0:
+y509=y510=y511=round .51m; x509=round(rt0x901-(1.2+qyh).u);
+x510=.5[x509,x511];
+y515-y509=.1(m-e); y509-y516=.1(m-e);
+x515=.4[x509,x510]; x516=.6[x510,x511];
+new hgt,bdth,theta,sintheta,costheta,acoef,bcoef,ccoef;
+hgt=w0; bdth=qzb.(1.75w0); theta=-30; sintheta=sind theta; costheta=cosd theta;
+x511-.5bdth.costheta=rt99x3+.25u;
+acoef=4.((costheta.costheta)/(bdth.bdth)+(sintheta.sintheta)/(hgt.hgt));
+bcoef=8.sintheta.costheta(1/(bdth.bdth)-1/(hgt.hgt));
+ccoef=4.((sintheta.sintheta)/(bdth.bdth)+(costheta.costheta)/(hgt.hgt));
+spen(acoef,bcoef,ccoef,0,0,0,0);
+draw 509..515..510{-2,-1}..516..511; % center tilde
+else:
+x800=1[x3,x1]; y800=y3;
+w0 draw 800..3;
+fi.
+ "Serbian dbar";
+call charbegin('016,2.pvbli+pwi/pu+pvbls,ph,0,.5px.slant);
+hpen; lft1x1=round(pvbli.u); x2=x1; top1y1=h; bot1y2=0;
+w1 draw 1..2; %left vertical stem
+if lcs>0: call `a serif(2,1,1,-lcs); %bot lft. lft. serif
+ call `b sserif(1,1,2,-lcs); %top lft. lft. serif
+ call `c serif(2,1,1,.75lcs); %bot inside lft. serif
+fi;
+x4=.5[x2,x7]; y4=-d;
+rt0x5=rt1x1; y5=1/4[e,m]; %point near middle of left stem
+x6=.5[x2,x7]; top0y6=m+oo; %top of curve
+rt1x7=round(r-pvbli.u); y7=.5[y6,y4];
+cpen; w0 draw 5{0,1}..6{1,0}; %shoulder
+call `e arc(6,7,w1); %right bowl
+call `f arc(4,7,w1); %right bowl
+cpen;
+lft0x8=lft1x1-lcs.u; rt0x9=x6; y8=y9=.5[m,h];
+w0 draw 8..9. % top bar
+ "Serbian cprime";
+call charbegin('017,2.pvbli+pwi/pu+pvbls,ph,0,.9px.slant);
+hpen; lft1x1=round(pvbli.u); x2=x1; top1y1=h; bot1y2=0;
+w1 draw 1..2; %left vertical stem
+rt1x7=round(r-pvbli.u); y7=1/3[e,m]; x8=x7; bot1y8=0;
+rt0x3=rt1x2; y3=1/4[e,m];
+x4=.5[x2,x7]; top3y4=m+oo;
+rt0x6=rt1x7; lft0x5=lft1x7;
+new stwo; stwo = sqrt 1.23114413sqrttwo; % the constant is $2^{3/10}$
+x9=1/stwo[x4,x5]; x10=1/stwo[x4,x6];
+y5=y6=y7; y9=y10=1/stwo[y7,y4];
+w0 draw 3{0,1}..4{1,0}; % link
+ddraw 4{1,0}..10{x6-x4,y6-y4}..6{0,-1},
+ 4{1,0}..9{x5-x4,y5-y4}..5{0,-1}; % shoulder
+w1 draw 7..8; % stem
+if lcs>0: call `a serif(2,1,1,-lcs); %bot lft. lft. serif
+ call `b sserif(1,1,2,-lcs); %top lft. lft. serif
+ call `c serif(2,1,1,.75lcs); %bot inside lft. serif
+ call `e serif(8,1,7,-.75lcs); %bot inside rt serif
+ call `f serif(8,1,7,lcs); %bot rt rt serif
+fi;
+cpen;
+lft0x15=lft1x1-lcs.u; rt0x17=.6[x2,x8]; y15=y17=.5[m,h];
+w0 draw 15..17. % top bar
+ "The letter s";
+call charbegin('036,7,px,0,px.slant-.5pu);
+hpen; top0y1=m+oo; bot0y5=-oo;
+x3=.5r; (y3-w6-.5w8)=(m-2w6-w8).(e/m); % white space ratio
+lft11x2=round u;
+if lcs=0: x1=x5=x3; lft0x6=round 2/3u; rt0x7=round(r-u); rt11x4=round(r-.75u);
+ y6=1/3[top0 0,y3]; y7=1/4[bot0m,y3];
+ w0 draw 6{x5-x6,3(y5-y6)}..5{1,0}; % lower left stroke
+ draw 7{x1-x7,2(y1-y7)}..1{-1,0}; % upper right stroke
+else: if w0=w1: x1=x5=x3; x6=x2; x7=x4; rt11x4=round(r-u);
+ y6=1/3[top0 0,y3]; y7=1/4[bot0m,y3];
+ w0 draw 6{x5-x6,3(y5-y6)}..5{1,0}; % lower left stroke
+ draw 7{x1-x7,2(y1-y7)}..1{-1,0}; % upper right stroke
+ x8=x9=x6; y9=y6+.5lcs.aspect.u+eps; bot0y8=0;
+ x10=x11=x7; y11=y7-.5lcs.aspect.u-eps; top0y10=m;
+ w0 draw 8..9; % lower serif
+ draw 10..11; % upper serif
+ else: x1=x3-.5u; x5=x3+.5u; lft0x6=round u; rt0x7=round(r-u);
+ rt11x4=round(r-.5u);
+ y6=good6(5/7 y3)-1; y7=good6(2/7[y3,m+oo])+1;
+ bot0y8=0; y9=y6; x8=x6; rt1x6=rt0x9;
+ top0y10=m+oo; y11=y7; x10=x7; lft1x7=lft0x11;
+ w0 ddraw 6..8, 9..8; % lower serif
+ ddraw 7..10, 11..10; % upper serif
+ rpen#; w1 draw 6{0,-1}..5{1,0}; % erase excess
+ lpen#; w1 draw 7{0,1}..1{-1,0}; % ditto
+ hpen; w0 draw 6{0,-1}..5{1,0}; % lower left stroke
+ draw 7{0,1}..1{-1,0}; % upper right stroke
+ fi;
+fi;
+new aa;
+if m+oo-e>e: aa=m+oo-e;
+else: aa=e;
+fi;
+call `a sdraw(1,2,3,4,5,w11,w8,-aa/(12u)); % middle stroke
+if ptsize>18:
+ if mode=2: call snip(pa);
+ fi;
+fi.
+ "Cyrillic letter ja";
+call charbegin('037,plki+.5pw/pu+ljawidth+.5pwi/pu+pvbli,px,0,px.slant);
+hpen; rt1x1=rt1x2=round(r-pvbli.u); top1y1=m; bot1y2=0;
+w1 draw 1..2; %stem
+if lcs>0: call `a serif(1,1,2,lcs); %upper serif
+ call `b serif(2,1,1,lcs);
+ call `c serif(2,1,1,-lcs); %lower serifs
+fi;
+x3=x1; y3=.5m;
+x25=good2(x1-(pvbls-.75).u); y25=.5[y1,y3];
+rt0x26=rt2x25; lft0x27=lft2x25; y26=y27=1[y3,y25];
+x29=.5[x1,x25]; top0y29=m;
+x28=.5[x3,x25]; y28=y3;
+call `e lune(29,28,26,27,.48rdns,.48rdns,.48rdns,.48rdns); % upper bowl
+cpen; w0 draw 29..1; % connections to stem
+ draw 28..3;
+
+bot0y460=-oo;
+if ssflag=0:
+x450=lft1x3-0u; y450=y3;
+x460=(plki+1).u;
+x454=(.52+qya)[x450,x460]; y454=.5[y450,y460];
+x455=.82[x450,x460]; y455=.8[y450,y460];
+
+new dirml,dirmr; dirml=.45+qyb; dirmr=.3+qyc;
+
+
+call arcpoint(450,454,452,-1,0,dirml(x460-x450),y460-y450,.55,.3);
+call arcpoint(454,460,458,dirml(x460-x450),y460-y450,-1,0,.6,.5);
+call arcpoint(450,455,451,-1,0,dirmr(x460-x450),y460-y450,.5,.5);
+call arcpoint(455,460,459,dirmr(x460-x450),y460-y450,-1,0,.5,.4);
+
+call arcpoint(450,451,421,-1,0,x455-x450,y455-y450,.4,.6);
+call arcpoint(450,452,422,-1,0,x454-x450,y454-y450,.4,.5);
+call arcpoint(451,455,425,x455-x450,y455-y450,dirmr(x460-x450),y460-y450,.5,.5);
+call arcpoint(452,454,424,x454-x450,y454-y450,dirml(x460-x450),y460-y450,.6,.3);
+
+w0 ddraw 450{-1,0}..422{x452-x450,y452-y450}.. % leg
+ 452{x454-x450,y454-y450}..424{x454-x452,y454-y452}..
+ 454{dirml(x460-x450),y460-y450}..458{x460-x454,y460-y454}..
+ 460{-1,0},
+ 450{-1,0}..421{x451-x450,y451-y450}..
+ 451{x455-x450,y455-y450}..425{x455-x451,y455-y451}..
+ 455{dirmr(x460-x450),y460-y450}..459{x460-x455,y460-y455}..
+ 460{-1,0};
+w0 draw 3..450;
+
+lft0x469=round(plki.u); y469=.25y450;
+x465=.7[x460,x469]; y465=.3[y460,y469];
+w0 draw 460{-1,0}..465..469{0,1}; % foot
+else:
+hpen; lft2x460=plki.u;
+w2 draw 28..460;
+fi.
+ "Cyrillic letter ju";
+call charbegin('030,pvbli+.5pwi/pu+(4+qyi)+(lowidth-.75)+.5pwii/pu+poli,px,0,.5.px.slant);
+hpen; lft1x1=round (pvbli.u); x2=x1; top1y1=m; bot1y2=0;
+w1 draw 1..2; %left stem
+if lcs>0: call `a serif(1,1,2,-lcs);
+ call `b serif(1,1,2,lcs); %upper serifs
+ call `c serif(2,1,1,-lcs);
+ call `d serif (2,1,1,lcs); %lower serifs
+fi;
+x3=x1; y3=.5m; y4=y3; x4=good2(x1+(4+qyi).u);
+w0 draw 3..4; %horizontal bar
+rt2x6=round(r-poli.u); x5=.5(x4+x6)=x7; top0y5=m+o; bot0y7=-o; y6=y4;
+lft0x24=lft2x4; rt0x34=rt2x4; y24=y34=y4; lft0x26=lft2x6;
+rt0x36=rt2x6; y26=y36=y6;
+call lune(5,7,26,36,.42rdns,.42rdns,.42rdns,.42rdns); % bowl
+call lune(5,7,34,24,.42rdns,.42rdns,.42rdns,.42rdns).
+ "Cyrillic letter zh";
+call charbegin('031,2.plki+pw/pu+2.lkwidth,px,0,px.slant);
+hpen; x1=good1 .5r; x3=x2=x1;
+top1y1=m; bot1y2=0;
+w1 draw 1..2; % stem
+if lcs>0: call `a serif(1,1,2,-lcs); % serifs on stem
+ call `b serif(1,1,2,lcs);
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,lcs);
+fi;
+cpen;
+new w99; w99=.8w3;
+y3=good6 .5m; rt99x118=round(r-(plki+.5).u); top99y118=m;
+y150=y3;
+if ssflag=0: x150=rt1x3; x160=x118-.25w99; top0y160=m+oo;
+else: x150=rt1x3+u; rt0x160=r-(plki+.5).u; top0y160=m+oo; fi;
+rt0x161=rt99x118; y161=y118;
+x154=.6[x150,x160]; y154=.55[y150,y160];
+x155=.73[x150,x160]; y155=.75[y150,y160];
+
+lft99x318=round((plki+.5).u); top99y318=m;
+y350=y3;
+if ssflag=0: x350=lft1x3; x360=x318+.25w99; top0y360=m+oo;
+else: x350=lft1x3-u; lft0x360=(plki+.5).u; top0y360=m+oo; fi;
+lft0x361=lft99x318; y361=y318;
+x354=.6[x350,x360]; y354=.55[y350,y360];
+x355=.73[x350,x360]; y355=.75[y350,y360];
+
+new dirml,dirmr; dirml=.5; dirmr=.25;
+
+call arcpoint(150,154,152,1,0,dirml(x160-x150),y160-y150,.6,.4);
+call arcpoint(154,160,158,dirml(x160-x150),y160-y150,1,0,.68,.5);
+call arcpoint(150,155,151,1,0,dirmr(x160-x150),y160-y150,.4,.6);
+call arcpoint(155,160,159,dirmr(x160-x150),y160-y150,1,0,.55,.5);
+
+call arcpoint(150,151,121,1,0,x155-x150,y155-y150,.78,.5);
+call arcpoint(151,155,125,x155-x150,y155-y150,dirmr(x160-x150),y160-y150,.5,.5);
+call arcpoint(150,152,122,1,0,x154-x150,y154-y150,.5,.5);
+call arcpoint(152,154,124,x154-x150,y154-y150,dirml(x160-x150),y160-y150,.5,.5);
+
+call arcpoint(350,354,352,-1,0,dirml(x360-x350),y360-y350,.6,.4);
+call arcpoint(354,360,358,dirml(x360-x350),y360-y350,-1,0,.68,.5);
+call arcpoint(350,355,351,-1,0,dirmr(x360-x350),y360-y350,.4,.6);
+call arcpoint(355,360,359,dirmr(x360-x350),y360-y350,-1,0,.55,.5);
+
+call arcpoint(350,351,321,-1,0,x355-x350,y355-y350,.78,.5);
+call arcpoint(351,355,325,x355-x350,y355-y350,dirmr(x360-x350),y360-y350,.5,.5);
+call arcpoint(350,352,322,-1,0,x354-x350,y354-y350,.5,.5);
+call arcpoint(352,354,324,x354-x350,y354-y350,dirml(x360-x350),y360-y350,.5,.5);
+
+if ssflag=0:
+w0 ddraw 150{1,0}..122{x152-x150,y152-y150}.. % upper right arm
+ 152{x154-x150,y154-y150}..124{x154-x152,y154-y152}..
+ 154{dirml(x160-x150),y160-y150}..158{x160-x154,y160-y154}..
+ 160..161{0,-1},
+ 150{1,0}..121{x151-x150,y151-y150}..
+ 151{x155-x150,y155-y150}..125{x155-x151,y155-y151}..
+ 155{dirmr(x160-x150),y160-y150}..159{x160-x155,y160-y155}..
+ 160..161{0,-1};
+w99 draw 118; % right bulb
+
+w0 ddraw 350{-1,0}..322{x352-x350,y352-y350}.. % upper left arm
+ 352{x354-x350,y354-y350}..324{x354-x352,y354-y352}..
+ 354{dirml(x360-x350),y360-y350}..358{x360-x354,y360-y354}..
+ 360..361{0,-1},
+ 350{-1,0}..321{x351-x350,y351-y350}..
+ 351{x355-x350,y355-y350}..325{x355-x351,y355-y351}..
+ 355{dirmr(x360-x350),y360-y350}..359{x360-x355,y360-y355}..
+ 360..361{0,-1};
+w99 draw 318; % left bulb
+else:
+x170=x160+.3u; y170=y160;
+w0 draw 150{1,0}..122{x152-x150,y152-y150}.. % upper right arm
+ 152{x154-x150,y154-y150}..124{x154-x152,y154-y152}..
+ 154{dirml(x160-x150),y160-y150}..158{x160-x154,y160-y154}..
+ 160{1,0}..170;
+x370=x360-.3u; y370=y360;
+w0 draw 350{-1,0}..322{x352-x350,y352-y350}.. % upper left arm
+ 352{x354-x350,y354-y350}..324{x354-x352,y354-y352}..
+ 354{dirml(x360-x350),y360-y350}..358{x360-x354,y360-y354}..
+ 360{-1,0}..370;
+fi;
+
+y250=y3;
+if ssflag=0: x250=rt1x3+.5u; x260=r-(plki+1.5).u; bot0y260=-oo;
+else: x250=rt1x3+1.5u; rt0x260=r-plki.u; bot0y260=-oo; fi;
+x254=(.55+qyd)[x250,x260]; y254=.5[y250,y260];
+x255=.84[x250,x260]; y255=.8[y250,y260];
+
+y450=y3;
+if ssflag=0: x450=lft1x3-.5u; x460=(plki+1.5).u; bot0y460=-oo;
+else: x450=lft1x3-1.5u; lft0x460=plki.u; bot0y460=-oo; fi;
+x454=(.55+qyd)[x450,x460]; y454=.5[y450,y460];
+x455=.84[x450,x460]; y455=.8[y450,y460];
+
+new dirml,dirmr; dirml=.37+qye; dirmr=.15+qyf;
+
+call arcpoint(250,254,252,1,0,dirml(x260-x250),y260-y250,.55,.3);
+call arcpoint(254,260,258,dirml(x260-x250),y260-y250,1,0,.6,.5);
+call arcpoint(250,255,251,1,0,dirmr(x260-x250),y260-y250,.5,.5);
+call arcpoint(255,260,259,dirmr(x260-x250),y260-y250,1,0,.5,.4);
+
+call arcpoint(250,251,221,1,0,x255-x250,y255-y250,.4,.6);
+call arcpoint(250,252,222,1,0,x254-x250,y254-y250,.4,.5);
+call arcpoint(251,255,225,x255-x250,y255-y250,dirmr(x260-x250),y260-y250,.5,.5);
+call arcpoint(252,254,224,x254-x250,y254-y250,dirml(x260-x250),y260-y250,.6,.3);
+
+call arcpoint(450,454,452,-1,0,dirml(x460-x450),y460-y450,.55,.3);
+call arcpoint(454,460,458,dirml(x460-x450),y460-y450,-1,0,.6,.5);
+call arcpoint(450,455,451,-1,0,dirmr(x460-x450),y460-y450,.5,.5);
+call arcpoint(455,460,459,dirmr(x460-x450),y460-y450,-1,0,.5,.4);
+
+call arcpoint(450,451,421,-1,0,x455-x450,y455-y450,.4,.6);
+call arcpoint(450,452,422,-1,0,x454-x450,y454-y450,.4,.5);
+call arcpoint(451,455,425,x455-x450,y455-y450,dirmr(x460-x450),y460-y450,.5,.5);
+call arcpoint(452,454,424,x454-x450,y454-y450,dirml(x460-x450),y460-y450,.6,.3);
+
+if ssflag=0:
+w0 ddraw 250{1,0}..222{x252-x250,y252-y250}.. % left leg
+ 252{x254-x250,y254-y250}..224{x254-x252,y254-y252}..
+ 254{dirml(x260-x250),y260-y250}..258{x260-x254,y260-y254}..
+ 260{1,0},
+ 250{1,0}..221{x251-x250,y251-y250}..
+ 251{x255-x250,y255-y250}..225{x255-x251,y255-y251}..
+ 255{dirmr(x260-x250),y260-y250}..259{x260-x255,y260-y255}..
+ 260{1,0};
+
+w0 ddraw 450{-1,0}..422{x452-x450,y452-y450}.. % left leg
+ 452{x454-x450,y454-y450}..424{x454-x452,y454-y452}..
+ 454{dirml(x460-x450),y460-y450}..458{x460-x454,y460-y454}..
+ 460{-1,0},
+ 450{-1,0}..421{x451-x450,y451-y450}..
+ 451{x455-x450,y455-y450}..425{x455-x451,y455-y451}..
+ 455{dirmr(x460-x450),y460-y450}..459{x460-x455,y460-y455}..
+ 460{-1,0};
+else:
+x270=x260; bot0y270=-oo;
+w0 draw 250{1,0}..222{x252-x250,y252-y250}.. % left leg
+ 252{x254-x250,y254-y250}..224{x254-x252,y254-y252}..
+ 254{dirml(x260-x250),y260-y250}..258{x260-x254,y260-y254}..
+ 260..270{1,0};
+x470=x460; bot0y470=-oo;
+w0 draw 450{-1,0}..422{x452-x450,y452-y450}.. % left leg
+ 452{x454-x450,y454-y450}..424{x454-x452,y454-y452}..
+ 454{dirml(x460-x450),y460-y450}..458{x460-x454,y460-y454}..
+ 460..470{-1,0};
+fi;
+cpen;
+w0 draw 3..250; % connections to stem
+ draw 3..450;
+
+if ssflag=0:
+rt0x269=round(r-plki.u); y269=.25y250;
+x265=.7[x260,x269]; y265=.3[y260,y269];
+w0 draw 260{1,0}..265..269{0,1}; % foot on right leg
+
+lft0x469=round(plki.u); y469=.25y450;
+x465=.7[x460,x469]; y465=.3[y460,y469];
+w0 draw 460{-1,0}..465..469{0,1}; % foot on left leg
+fi.
+ "Dotless letter i (for Ukrainian)";
+call charbegin('075,2.pvbli+pw1/pu,px,0,px.slant);
+hpen; x1=x2=good1 .5r; top1y1=m+ssdoo; bot1y2=0;
+w1 draw 1..2; % stem
+if lcs0: call `a sserif(1,1,2,-lcs); % upper serif
+ call `b serif(2,1,1,-lcs);
+ call `c serif(2,1,1,lcs); % lower serif
+fi.
+ "Lowercase Cyrillic soft sign";
+call charbegin('176,pvbli+.5pwi/pu+phbls+.5pwii/pu+phbli,px,0,.33.px.slant);
+hpen; lft1x1=lft1x2=round(pvbli.u);
+top1y1=m; bot1y2=0;
+w1 draw 1..2; % stem
+if lcs  0:
+ call `a serif(1,1,2, -lcs); % upper stem serif
+ call `b serif(1,1,2, lcs);
+ call `c serif(2,1,1, -lcs); % lower stem serif
+ call `d serif(2,1,1,.25lcs);
+fi;
+x25=x1; x26=.5[x25,x27];
+y25=y26=lb; x28=x26; bot0y28=0;
+rt2x27=round(r-phbli.u); y27=.5[y25,y2];
+lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
+call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns); % bowl
+w0 draw 25..26; % connections to stem
+w0 draw 2..28.
+ "Lowercase Cyrillic hard sign";
+call charbegin('177,plai+.5pw/pu+(plal-1)+phbls+.5pwii/pu+phbli,px,0,1/3px.slant);
+hpen; x1=good1((plai+plal-1).u+.5w0); x2=x1; top1y1 = m; bot1y2 = 0;
+w1 draw 1..2; % stem
+if lcs  0:
+ call `a serif(1,1,2,-.5lcs); % upper stem serif
+ call `b serif(1,1,2, lcs);
+ call `c serif(2,1,1, -lcs); % lower stem serif
+ call `d serif(2,1,1,.5lcs);
+fi;
+lft0x3=round(plai.u); y3=y1; % upper arm and serif
+ x4= good0(x3-.5u); y4 = y3-sas;
+call `e arm(1,3,4,sas);
+x25= x1; x26=.4[x25,x27];
+y25= y26=lb+oo; x28=x26; bot0y28=0;
+rt2x27=round(r-phbli.u); y27=.5[y25,y2];
+lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
+call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns); % bowl
+x44=x25; y44=.2[y25,y27];
+w0 draw 44{0,1}..26{1,0}; % connections to stem
+w0 draw 2..28.
+ "Cyrillic letter eprime";
+call charbegin('013,plzi+.5pw/pu+lepwidth+qza.(.5pwii/pu)+poli,px,0,.5.px.slant);
+cpen; lft0x901=round(plzi.u);
+if ssflag=0: y901=.12m; x1=.44[x901,x3];
+else: y901=.15m; x1=.36[x901,x3]; fi;
+x1=x2; top0y1=m+oo; bot0y2=-oo;
+new w99; w99=qza.w2;
+rt99x3=round(r-poli.u); y3=.5[y1,y2];
+rt0x13=rt99x3; lft0x23=lft99x3;
+y13=y23=y3;
+call lune(1,2,23,13,.42rdns,.42rdns,.42rdns,.42rdns); % bowl
+if ssflag=0:
+x903=x901-.3u; y903=y901+(1.5+qyg).w0;
+lft0x101=round(lft0x901+.2u); y101=.9m;
+x103=x101-.1u; y103=y101-(1.5+qyg).w0;
+new tailex; tailex=-1.2; new tailmid; tailmid=-.6;
+call arcpoint(2,901,902,-1,0,tailex,1,.5,.5);
+call arcpoint(2,903,904,-1,0,tailmid,1,.55,.5);
+call arcpoint(1,101,102,-1,0,tailex,-1,.5,.5);
+call arcpoint(1,103,104,-1,0,tailmid,-1,.55,.5);
+
+w0 ddraw 2{-1,0}..902{x901-x2,y901-y2}..901{tailex,1},
+ 2{-1,0}..904{x903-x2,y903-y2}..903{tailmid,1};
+
+w0 ddraw 1{-1,0}..102{x101-x1,y101-y1}..101{tailex,-1},
+ 1{-1,0}..104{x103-x1,y103-y1}..103{tailmid,-1};
+else:
+new slp; slp=-1.2;
+x101=x901; y101=.85m;
+call arcpoint(1,101,102,-1,0,slp,-1,.5,.5);
+
+call arcpoint(2,901,902,-1,0,slp,1,.5,.5);
+w0 draw 1{-1,0}..102{x101-x1,y101-y1}..101{slp,-1};
+ draw 2{-1,0}..902{x901-x2,y901-y2}..901{slp,1};
+fi;
+
+cpen;
+if ssflag=0:
+y509=y510=y511=round .51m; x509=round(lft0x901+(1.2+qyh).u); x510=.5[x509,x511];
+y515-y509=.1(m-e); y509-y516=.1(m-e);
+x515=.4[x509,x510]; x516=.6[x510,x511];
+new hgt,bdth,theta,sintheta,costheta,acoef,bcoef,ccoef;
+hgt=w0; bdth=qzb.(1.75w0); theta=30; sintheta=sind theta; costheta=cosd theta;
+x511+.5bdth.costheta=lft99x3-.25u;
+acoef=4.((costheta.costheta)/(bdth.bdth)+(sintheta.sintheta)/(hgt.hgt));
+bcoef=8.sintheta.costheta(1/(bdth.bdth)-1/(hgt.hgt));
+ccoef=4.((sintheta.sintheta)/(bdth.bdth)+(costheta.costheta)/(hgt.hgt));
+spen(acoef,bcoef,ccoef,0,0,0,0);
+draw 509..515..510{2,-1}..516..511; % center tilde
+else:
+x800=1[x3,x1]; y800=y3;
+w0 draw 800..3;
+fi.
+
+ "Cyrillic letter a";
+call charbegin(`a,plcali+.5pwii/pu+lawidth+.5pwi/pu+plcari,px,0,1/3[pe,px].slant);
+cpen; lft3x1=round((plcali+.8).u);
+if top3(top3top6e+2)>.9[e,m]: top3y1=.9[e,m];
+else: y1=top3top6e+2;
+fi;
+w3 draw 1; % bulb
+hpen; lft0x2=lft3x1; y2=y1; x3=4u; top0y3=m+oo;
+rt1x4=rt1x5=round(r-plcari.u); y4=1/3[e,m];
+w0 draw 2{0,1}..3{1,0}; call `a arc(3,4,w1); % shoulder
+if lcs=0: bot1y5=0; w1 draw 4..5; % stem
+else: rt0x7=round(r-(plcari-1.5).u); y5=.2[top1 0,e];
+ w1 draw 4..5; % stem
+ if rt1x5+.75ulft0x7: rt0x6=.5[rt1x5,rt0x7];
+ bot0y6=0; y7=.5e;
+ draw |w1#|5{0,-1}..
+ |w0#|6{1,0}..7{0,1}; % hook
+ else: rt1x6=round(r-.5u); bot1y6=0;
+ w1 draw 5{0,-1}..6{1,0}; % foot
+ fi;
+fi;
+x8=x9+1.5u; y8=e; x9=x4; y9=e;
+lft2x11=round(plcali.u); y11=.2[w6,y9];
+x12=.23[x11,x8]; bot0y12=-oo; x13=.38[x11,x8]; y13=.015[y12,y9];
+x10=x9; y10=.3[y12,y9];
+call arc(9,11,w2); % upper part of bowl
+draw |w2#|11{0,-1}..
+ |.7[w0,w2]|12{1,0}..|w0#|13..10(..8). % lower part of bowl
+ "Cyrillic letter b";
+call charbegin(`b,2.poli+pwii/pu+lowidth-.25,ph,0,ph.slant-.25pu);
+hpen; x1=.5[x2,x3]; lft2x2=round(poli.u); rt2x3=round(r-poli.u);
+top0y1=m+oo; bot0y2=-oo; y3=y2;
+call `a darc(1,2,w2); call `b darc(1,3,w2); % bowl
+lft0x4=lft2x2; y4=.5[y1,y2];
+x5=x2+2u; x6=x3-2u; y5=.6[m,h]; y6=2/3[m,h];
+x7=x8=x5; x9=x10=x6; rt0x11=rt2x3; top0y11=h+oo;
+vpen; w7 draw 5..6; % bar
+top7y5=top6y7; top7y6=top6y9; bot7y5=bot6y8; bot7y6=bot6y10;
+hpen; w0 ddraw 4{0,1}..7{x6-x5,y6-y5}, 4{0,1}..8{x6-x5,y6-y5}; % link
+ddraw 9{x6-x5,y6-y5}..11{0,1}, 10{x6-x5,y6-y5}..11{0,1}. % hook
+ "Cyrillic letter ts";
+call charbegin(`c,pvbli+.5pwi/pu+pvbls+plstla+.5pw/pu+plali,px,psas,px.slant);
+hpen; lft1x1=round(pvbli.u); x2=x1; x3=good1(r-.5w0-(plali+plstla).u);
+x4=x3; x5=.5[x1,x3];
+top0y1=m; bot0y2=0; y3=y1; y2=y5=y4=y6;
+rt0x6=round(r-plali.u); x7=good0(x6+.5u); y7=y6-sas;
+if lcs0:call `a serif(1,1,2,-lcs);
+ call `b serif(1,1,2,lcs);
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,.5lcs);
+ call `e serif(3,1,4,-lcs);
+ call `f serif(3,1,4,lcs);
+ call `g serif(4,1,3,-.5lcs);
+ new tmp; tmp=crisp; new crisp; crisp=0;
+ rt0x12=rt1x4;
+ call `h serif(4,1,3,(x6-x12)/u);
+ new crisp; crisp=tmp;
+fi;
+w1 draw 1..2; % left stem
+w1 draw 3..4; % right stem
+w0 draw 2..4; % bar
+call `i carm(5,6,7,sas). % lower arm
+ "Cyrillic letter d";
+call charbegin(`d,2.plali+pw/pu+ldwidth+plstla,px,psas,px.slant);
+hpen; lft0x9=lft0x8-.5u; lft0x8=round(plali.u);
+x5=.5[x1,x3]; rt0x6=round(r-plali.u); rt0x7=rt0x6+.5u;
+x1=good0(x8+2u); x2=x8+u; x3=good1(r-(plali+plstla).u-.5w0); x4=x3;
+top0y1=m; bot0y2=0; y3=y1; y8=y2=y5=y4=y6; y7=y9=y6-sas;
+y10=y1-s; y11=y2+s;
+x10=x1;
+(x11-x2)/(y11-y2)=(.3(x1+x3)-x2)/(.3(y1+y3)-y2);
+if lcs0: call `a dserif(1,0,10,-lcs);
+ call `b dserif(1,0,10,lcs); % upper left serif
+ call `c serif(3,1,4,-.5lcs);
+ call `d serif(3,1,4,lcs); % upper right serif
+ new tmp; tmp=crisp; new crisp; crisp=0;
+ call `e serif(2,0,11,(x8-x2)/u);% lower left serif
+ rt0x12=rt1x4;
+ call `j serif(4,1,3,(x6-x12)/u);% lower right serif
+ new crisp; crisp=tmp;
+ call `f serif(2,0,11,lcs); % lower left serif
+ call `i serif(4,1,3,-.5lcs); % lower right serif
+fi;
+w1 draw 3..4; % right stem
+w0 draw 10{0,-1}..11{x2-x11,y2-y11}; % diagonal
+draw 1..3; % upper bar
+call `g carm(5,8,9,sas); % left arm
+call `h carm(5,6,7,sas). % right arm
+ "Cyrillic letter e";
+call charbegin(`e,2.poli+pwii/pu+(lowidth-1.25),px,0,pe.slant);
+hpen; x3=.5r; top0y3=m+oo; y1=e; y2=.5[y5,y3];
+lft2x2=round(fixwidth[poli.u,(poli+.25).u]); rt2x1=round(r-fixwidth[poli.u,(poli+.25).u]);
+fi;
+bot0y5=-oo; x5=x3+.5u;
+new save; save=sqrttwo; new sqrttwo; sqrttwo=sqrt 1.3save;
+call `a arc(3,1,w1); % bowl
+new sqrttwo; sqrttwo=save;
+call `b arc(3,2,w2); call `c arc(5,2,w2); % stroke
+new aa; y1=y4=aa[y2,y3]; x4-1=(sqrt(1-aa.aa))[x3,x2];
+w0 draw 4..1; % bar
+if w0=w1: x6=x1; x7-x5=x1-x3; y7=y2;
+ new aa; x6=aa[x5,x7]; y6=(sqrt(1-aa.aa))[y7,y5];
+else: rt0x6=rt2x1; x7=x6; y6=.5e-1; y7=e;
+fi;
+w0 draw 5{1,0}..6(..7). % point
+ "Cyrillic letter f";
+call charbegin(`f,2.poli+pwi/pu+lfwidth,ph,pd,.6px.slant);
+hpen; x1=x2=good1 .5r; top1y1=h; bot1y2=-d;
+w1 draw 1..2; % stem
+if lcs0: call `a sserif(1,1,2,-lcs); % upper serif
+ call `b serif(2,1,1,-lcs);
+ call `c serif(2,1,1,lcs); % lower serif
+fi;
+lft1x7=round(poli.u); rt0x5=rt1x1;
+x3=.6[x5,x7];
+x3+x4=x5+x6=x7+x8=r; y3=y4; y5=y6; y7=y8; % symmetry
+top0y3=m+oo; bot0y5=-oo; y5=y7;
+x10+x3=2x1; y9=y7; x9+x4=2x1; y10=y8;
+x11=x1; 2y11=y3+y10;
+call `d darc(4,8,w1); % right bowl
+call `e darc(3,7,w1); % left bowl
+call `f arc(4,11,w0); call `g arc(10,11,w0); % right innards
+call `h arc(3,11,w0); call `i arc(9,11,w0). % left innards
+ "Cyrillic letter g";
+call charbegin(`g,pvbli+.5pwi/pu+plal+.5pw/pu+plai,px,0,px.slant);
+hpen; lft1x1=round(pvbli.u); x2=x1; top1y1=m; bot1y2=0;
+w1 draw 1..2; % stem
+if lcs0:
+ call `a serif(1,1,2,-lcs);
+ call `b serif(1,1,2,.5lcs); % upper stem serif
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,lcs); % lower stem serif
+fi;
+rt0x3=round(r-plai.u); x4=good0(x3+.5u); y3=y1; y4=y3-sas;
+call `e arm(1,3,4,sas). % upper arm and serif
+ "Cyrillic letter kh";
+call charbegin(`h,2.pvbli+pwii/pu+lkhwidth,px,0,px.slant);
+hpen; lft2x1=round(pvbli.u); rt2x4=round(r-pvbli.u); x3=x1; x2=good0(x4-.25u);
+top2y1=m; bot2y4=0; y2=y1; y3=y4;
+w2 draw 1..4; % upper left to lower right diagonal
+w0 draw 3..2; % lower left to upper right diagonal
+if lcs0: call `a serif(1,2,4,-lcs);
+ call `b serif(1,2,4,lcs); % upper left serif
+ call `c serif(4,2,1,-lcs);
+ call `d serif(4,2,1,lcs); % lower right serif
+ new ss; ss=.5(w2-w0)/u; % correction to \\{lcs} makes $w0$ like $w2$
+ call `e dserif(2,0,3,-lcs-ss);
+ call `f dserif(2,0,3,lcs+ss); % upper right serif
+ call `g dserif(3,0,2,-lcs-ss);
+ call `h dserif(3,0,2,lcs+ss); % lower left serif
+fi.
+ "Cyrillic letter i";
+call charbegin(`i,2.pvbli+pwi/pu+pvbls,px,0,px.slant);
+hpen; lft1x1=lft1x2=round(pvbli.u);
+rt1x3=rt1x4=round(r-pvbli.u);
+top1y1=m; y1=y3;
+bot1y2=0; y2=y4;
+w1 draw 1..2; % stems
+ draw 3..4;
+if lcs  0:
+ call `a serif(1,1,2,-lcs); % upper left serif
+ call `b serif(1,1,2, lcs);
+ call `c serif(2,1,1,-lcs); % lower left serif
+ call `d serif(2,1,1, lcs);
+ call `e serif(3,1,4,-lcs); % upper right serif
+ call `f serif(3,1,4, lcs);
+ call `g serif(4,1,3,-lcs); % lower right serif
+ call `h serif(4,1,3, lcs);
+fi;
+new w99; w99=.8w0;
+w99 draw 3..2. % bar
+ "The letter j";
+call charbegin(`j,6,ph,pd,ph.slant+.5pwi-2pu);
+hpen; x1=x2=good1(r-2.5u);
+if fixwidth=0: rt3x4=round 1.25u;
+else: lft3x4=round u;
+fi;
+cpen; top3y3=h-ssd; rt3x3=rt1x1; w3 draw 3; % dot
+bot3y4=-.9d; w3 draw 4; % bulb
+hpen; top1y1=m+ssdoo; bot1y2=-1/3 d;
+bot0y5=-d-oo; y4=y6; lft0x6=lft3x4; x5=.5[x2,x6];
+draw |w1|1..|w1#|2{0,-1}..|w0#|5{-1,0}..6{0,1}; % stem and tail
+if lcs0: call `a sserif(1,1,2,-lcs); % serif
+fi;
+if ptsize>14:
+ if mode=2: call snip(pa); call snip(px+po); call snip(0);
+ fi;
+fi.
+ "Cyrillic letter k";
+call charbegin(`k,pvbli+.5pwi/pu+lkwidth+.5pw/pu+plki,px,0,px.slant);
+hpen; lft1x1=round(pvbli.u); x3=x2=x1; top1y1=m; bot1y2=0;
+w1 draw 1..2; % stem
+if lcs>0: call `a serif(1,1,2,-lcs); % serifs on stem
+ call `b serif(1,1,2,lcs);
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,lcs);
+fi;
+cpen;
+new w99; w99=.8w3;
+y3=good6 .5m; rt99x118=round(r-(plki+.5).u); top99y118=m;
+y150=y3;
+if ssflag=0: x150=rt1x3; x160=x118-.25w99; top0y160=m+oo;
+else: x150=rt1x3+u; rt0x160=r-(plki+.5).u; top0y160=m+oo; fi;
+rt0x161=rt99x118; y161=y118;
+x154=.6[x150,x160]; y154=.55[y150,y160];
+x155=.73[x150,x160]; y155=.75[y150,y160];
+
+new dirml,dirmr; dirml=.5; dirmr=.25;
+
+call arcpoint(150,154,152,1,0,dirml(x160-x150),y160-y150,.6,.4);
+call arcpoint(154,160,158,dirml(x160-x150),y160-y150,1,0,.68,.5);
+call arcpoint(150,155,151,1,0,dirmr(x160-x150),y160-y150,.4,.6);
+call arcpoint(155,160,159,dirmr(x160-x150),y160-y150,1,0,.55,.5);
+
+call arcpoint(150,151,121,1,0,x155-x150,y155-y150,.78,.5);
+call arcpoint(151,155,125,x155-x150,y155-y150,dirmr(x160-x150),y160-y150,.5,.5);
+call arcpoint(150,152,122,1,0,x154-x150,y154-y150,.5,.5);
+call arcpoint(152,154,124,x154-x150,y154-y150,dirml(x160-x150),y160-y150,.5,.5);
+
+if ssflag=0:
+w0 ddraw 150{1,0}..122{x152-x150,y152-y150}.. % upper arm
+ 152{x154-x150,y154-y150}..124{x154-x152,y154-y152}..
+ 154{dirml(x160-x150),y160-y150}..158{x160-x154,y160-y154}..
+ 160..161{0,-1},
+ 150{1,0}..121{x151-x150,y151-y150}..
+ 151{x155-x150,y155-y150}..125{x155-x151,y155-y151}..
+ 155{dirmr(x160-x150),y160-y150}..159{x160-x155,y160-y155}..
+ 160..161{0,-1};
+w99 draw 118; % bulb
+else:
+x170=x160+.3u; y170=y160;
+w0 draw 150{1,0}..122{x152-x150,y152-y150}.. % upper arm
+ 152{x154-x150,y154-y150}..124{x154-x152,y154-y152}..
+ 154{dirml(x160-x150),y160-y150}..158{x160-x154,y160-y154}..
+ 160{1,0}..170{1,0};
+fi;
+
+y250=y3;
+if ssflag=0: x250=rt1x3+.5u; x260=r-(plki+1.5).u; bot0y260=-oo;
+else: x250=rt1x3+1.5u; rt0x260=r-plki.u; bot0y260=-oo; fi;
+x254=(.55+qyd)[x250,x260]; y254=.5[y250,y260];
+x255=.84[x250,x260]; y255=.8[y250,y260];
+new dirml,dirmr; dirml=.37+qye; dirmr=.15+qyf;
+
+call arcpoint(250,254,252,1,0,dirml(x260-x250),y260-y250,.55,.3);
+call arcpoint(254,260,258,dirml(x260-x250),y260-y250,1,0,.6,.5);
+call arcpoint(250,255,251,1,0,dirmr(x260-x250),y260-y250,.5,.5);
+call arcpoint(255,260,259,dirmr(x260-x250),y260-y250,1,0,.5,.4);
+
+call arcpoint(250,251,221,1,0,x255-x250,y255-y250,.4,.6);
+call arcpoint(250,252,222,1,0,x254-x250,y254-y250,.4,.5);
+call arcpoint(251,255,225,x255-x250,y255-y250,dirmr(x260-x250),y260-y250,.5,.5);
+call arcpoint(252,254,224,x254-x250,y254-y250,dirml(x260-x250),y260-y250,.6,.3);
+
+if ssflag=0:
+w0 ddraw 250{1,0}..222{x252-x250,y252-y250}.. % leg
+ 252{x254-x250,y254-y250}..224{x254-x252,y254-y252}..
+ 254{dirml(x260-x250),y260-y250}..258{x260-x254,y260-y254}..
+ 260{1,0},
+ 250{1,0}..221{x251-x250,y251-y250}..
+ 251{x255-x250,y255-y250}..225{x255-x251,y255-y251}..
+ 255{dirmr(x260-x250),y260-y250}..259{x260-x255,y260-y255}..
+ 260{1,0};
+else:
+x270=x260; bot0y270=-oo;
+w0 draw 250{1,0}..222{x252-x250,y252-y250}.. % leg
+ 252{x254-x250,y254-y250}..224{x254-x252,y254-y252}..
+ 254{dirml(x260-x250),y260-y250}..258{x260-x254,y260-y254}..
+ 260..270{1,0};
+fi;
+cpen;
+w0 draw 3..250; % connection to stem
+if ssflag=0:
+rt0x269=round(r-plki.u); y269=.25y250;
+x265=.7[x260,x269]; y265=.3[y260,y269];
+w0 draw 260{1,0}..265..269{0,1}; % foot on leg
+fi.
+ "Cyrillic letter l";
+call charbegin(`l,plli+.4pwiii/pu+llwidth+.5pwi/pu+pvbli,px,0,px.slant);
+hpen; rt1x1=round(r-pvbli.u); x2=x1; bot0y1=0; top0y2=m; y3=y2; x4=x3;
+cpen;
+if ssflag=0: x6=(plli+1.5).u; x3=good0(x6+1.75u); y4=y3-s;
+new w99; w99=.8w3;
+lft99x8=lft0x7=round(plli.u); y8=y7=.12m;
+else: x7=plli.u; y7=y6; x7=x6-.75u; x3=good0(x6+.75u); y4=y3; fi;
+bot0y6=-oo;
+hpen;
+w1 draw 1..2; % vertical stroke
+w0 draw 2..3; % upper bar
+if lcs0: call `a serif(1,1,2,lcs); % serifs
+ call `b serif(1,1,2,-lcs);
+ call `c serif(2,1,1,lcs);
+ call `d serif(2,1,1,-lcs);
+ call `e dserif(3,0,4,lcs);
+ call `f dserif(3,0,4,-lcs);
+fi;
+cpen;
+if ssflag=0:
+w0 draw 4{0,-1}..6{-1,0}..7{0,1};
+w99 draw 8; % bulb
+else:
+w0 draw 4{0,-1}..6{-1,0}..7;
+fi.
+ "Cyrillic letter m";
+call charbegin(`m,2.pvbli+.5(pw+pwi)/pu+lmwidth,px,0,px.slant);
+if fudge1: new w0,w1; % lines will be thinner in fudged styles
+ w0=round(fudge.pixels.pw+blacker); w1=round(fudge.pixels.pwi+blacker);
+fi;
+hpen; lft0x1=round(pvbli.u); x1=x2; top0y1=m; bot0y2=0;
+new w99; w99=round .8[w0,w1];
+rt99x3=round(r-pvbli.u); x3=x4; top99y3=m; bot99y4=0;
+lft99x5=lft0x1+del; lft0x6=lft99x3-del; y1=y5; y6=y3;
+x7-x5=x6-x8; lft99x7=lft0x8; bot4y7=0; y8=y7;
+w0 draw 5..1..1..2; % left stem
+w99 draw 5..7; % left diagonal
+rpen#; w1 draw 8..6; % erase excess at lower right
+hpen; w0 draw 8..6..6..3; % right diagonal
+w1 draw 3..4; % right stem
+if ucs0: call `a dserif(2,0,1,-lcs);
+ call `b dserif(2,0,1,lcs); % lower left serif
+ call `c serif(5,4,7,-lcs-del/u); % upper left serif
+ call `d serif(3,99,4,lcs); % upper right serif
+ call `e serif(4,99,3,-lcs);
+ call `f serif(4,99,3,lcs); % lower right serif
+fi;
+if fudge1: new w0,w1; % restore normal sizes in fudged styles
+ w0=round(pixels.pw+blacker); w1=round(pixels.pwi+blacker);
+fi.
+ "Cyrillic letter n";
+call charbegin(`n,2.pvbli+pwi/pu+pvbls,px,0,px.slant);
+hpen; lft1x1=round(pvbli.u); x2=x1;
+rt1x3=round(r-pvbli.u); x4=x3;
+top1y1=m; y1=y3;
+bot1y2=0; y2=y4;
+w1 draw 1..2; % left stem
+w1 draw 3..4; % right stem
+if lcs0: call `a serif(1,1,2,-lcs);
+ call `b serif(1,1,2,lcs); % upper left serif
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,lcs); % lower left serif
+ call `e serif(3,1,4,-lcs);
+ call `f serif(3,1,4,lcs); % upper right serif
+ call `g serif(4,1,3,-lcs);
+ call `h serif(4,1,3,lcs); % lower right serif
+fi;
+x5=x1; x6=x3; y5=y6; y5=(px/phh).ub;
+w0 draw 5..6. % bar
+ "Cyrillic letter o";
+call charbegin(`o,2.poli+pwii/pu+lowidth,px,0,.5px.slant);
+hpen;
+if fixwidth0: new save; save=sqrttwo;
+ new sqrttwo; sqrttwo=sqrt save; % super-superellipse
+ lft2x2=round 1.5u;
+else: lft2x2=round(poli.u);
+fi;
+x1=r-x1; % axis of left-right symmetry
+top0y1=m+oo;
+bot0y2=-oo; y3=y2; x3=r-x2;
+%call `a darc(1,2,w5); % left part of bowl
+%call `b darc(1,3,w5); % right part of bowl
+lft0x112=lft2x2; good0 x112=x12;
+rt0x122=rt2x2; good0 x122=x22; y12=y22=.5[y1,y2];
+lft0x113=lft2x3; good0 x113=x13;
+rt0x123=rt2x3; good0x123=x23; y13=y23=y12;
+x5=x1; bot0y5=-o;
+call lune(1,5,22,12,.42rdns,.42rdns,.42rdns,.42rdns);
+call lune(1,5,13,23,.42rdns,.42rdns,.42rdns,.42rdns);
+
+if fixwidth0: new sqrttwo; sqrttwo=save;
+fi.
+ "Cyrillic letter p";
+call charbegin(`p,2.pvbli+pwi/pu+pvbls,px,0,px.slant);
+hpen; lft1x1=round(pvbli.u); x2=x1;
+rt1x3=round(r-pvbli.u); x4=x3;
+top1y1=m; y1=y3;
+bot1y2=0; y2=y4;
+w1 draw 1..2; % left stem
+w1 draw 3..4; % right stem
+if lcs0: call `a serif(1,1,2,-lcs);
+ call `b serif(1,1,2,.5lcs); % upper left serif
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,lcs); % lower left serif
+ call `e serif(3,1,4,-.5lcs);
+ call `f serif(3,1,4,lcs); % upper right serif
+ call `g serif(4,1,3,-lcs);
+ call `h serif(4,1,3,lcs); % lower right serif
+fi;
+w0 draw 1..3. % bar
+ "Cyrillic letter ch";
+call charbegin(`q,2.pvbli+pwi/pu+pvbls-.25,px,0,px.slant);
+hpen; rt1x1=round(r-pvbli.u); x2=x1; bot1y1=0; top1y2=m;
+y4=y2; lft1x4=round(pvbli.u);
+w1 draw 1..2; %right vertical stem
+x3=x4; lft0x6=lft1x1; x5=.5[x3,x6];
+new vfr; vfr=.9px/phh;
+top1y2-bot1y5=vfr.(m+oo); top1y4-y3=vfr.(1/3[e,m]); top1y2-y6=vfr.(.25[e,m]);
+new stwo; stwo=1.37; x7=1/stwo[x5,x3]; y7=1/stwo[y3,y5];
+rt0x31=rt1x3; lft0x32=lft1x3; y31=y32=y3;
+x71=1/stwo[x5,x31]; x72=1/stwo[x5,x32];
+y71=1/stwo[y31,y5]; y72=1/stwo[y32,y5];
+w1 draw 4..3; %left vertical
+w0 draw 5{1,0}..6{0,1}; %hump
+ ddraw 31{0,-1}..71{x5-x31,y5-y31}..5{1,0},
+ 32{0,-1}..72{x5-x32,y5-y32}..5{1,0};
+if lcs>0: call `a serif(2,4,1,lcs); %top rt. rt. serif
+ call `b serif(1,4,2,lcs); %bot rt. rt. serif
+ call `c serif(2,4,1,-.5lcs); %top inside rt. serif
+ call `d serif(1,4,2,-lcs); %bot left serif
+ call `e serif(4,4,3,.5lcs); %top inside lft serif
+ call `f serif(4,4,3,-lcs); %top lft lft serif
+fi.
+ "Cyrillic letter r";
+call charbegin(`r,pvbli+.5pwi/pu+(lowidth-.75)+.5pwii/pu+poli,px,pd,.5px.slant);
+hpen; lft1x1=lft1x2=lft1x3=round(pvbli.u); x4=x5=.55[x1,x6];
+rt2x6=round(r-poli.u);
+top1y1=m+ssdoo; bot1y2=-d; top0y4=m+oo; bot0y5=-oo;
+y3=.5[y4,y5]; y6=y5;
+w1 draw 1..2; % stem
+w0 draw 5{-1,0}..3{0,1}..4{1,0}; % left part of bowl
+call `a darc(4,6,w2); % right part of bowl
+if lcs0: call `b sserif(1,1,2,-lcs); % upper serif
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,lcs); % lower serif
+fi.
+ "Cyrillic letter s";
+call charbegin(`s,poli+.5pwii/pu+lswidth+.5pwiii/pu+plsi,px,0,px.slant-pu);
+cpen; rt3x1=round(r-plsi.u);
+if top3(top3top6e+2)>.9[e,m]: top3y1=.9[e,m];
+else: y1=top3top6e+2;
+fi;
+if ssflag=0: w3 draw 1; fi; % bulb
+hpen; rt0x2=rt3x1; y2=y1; x3=x5=.6[x4,x1]; top0y3=m+oo;
+lft2x4=round(poli.u); y4=y5; bot0y5=-oo;
+call `a darc(3,4,w2); % stroke
+if w0=w1: x6=x2; x7-x5=x5-x4; y7=.5[y3,y5];
+ new aa; x6=aa[x5,x7]; y6=(sqrt(1-aa.aa))[y7,y5];
+else: lft0x6=x2; y6=.45e; x7=x6; y7=e;
+fi;
+if ssflag=0: w0 draw 2{0,1}..3{-1,0}; % shoulder
+else: x12=x6; y3-y12=y6-y5;
+x8=x7; y12-y8=y7-y6; w0 draw 3{1,0}..12(..8);
+fi;
+w0 draw 5{1,0}..6(..7); % point
+if ptsize>18:
+ if mode=2: call snip(pa);
+ fi;
+fi.
+ "Cyrillic letter t";
+call charbegin(`t,2.plali+pw/pu+2.(plal-1),px,0,px.slant);
+hpen; x1=good1 .5r; x2=x1; top1y1=m; bot1y2=0;
+w1 draw 1..2; % stem
+if lcs0: call `a serif(1,1,2,-.5lcs);
+ call `b serif(1,1,2,.5lcs); % upper bracketing
+ call `c serif(2,1,1,-1.25lcs);
+ call `d serif(2,1,1,1.25lcs); % lower serif
+fi;
+lft0x5=round(plai.u); x6=good0(x5-.5u); y3=y1; y4=y3-sas;
+x5+x3=x6+x4=x1+x1; y5=y1; y6=y4; % left-right symmetry
+call `e arm(1,3,4,sas); % upper right arm and serif
+call `f arm(1,5,6,sas). % upper left arm and serif
+ "Cyrillic letter u";
+call charbegin(`u,pllui+.5pwi/pu+luwidth+.5pw/pu+prlui,px,pd,px.slant);
+hpen; lft1x1=round(pllui.u); rt0x4=round(r-prlui.u);
+x2-x1=x4-x3; lft0x3=lft1x2+.5del;
+top1y1=m; y4=y1; bot1y2=-o;y3=y2;
+w1 draw 1..2; w0 draw 2..3; % left diagonal stroke
+rpen#; w1 draw 3..4; % erase excess at lower right
+
+if ssflag=0: cpen; lft3x8=lft0x7=round((pllui-1).u); bot3y8=-.9d; y7=y8;
+hpen; x6=x8+u; bot0y5=-.5d;
+else: x6=x5; x7=x6-u; hpen; bot0y7=bot0y6=bot0y5;
+fi;
+bot0y6=-d-oo;
+new aa; x5=aa[x3,x4]; y5=aa[y3,y4];
+cpen;
+if ssflag=0:
+w0 draw 4..3{x3-x4,y3-y4}..6{-1,0}..7{0,1}; % right diagonal and tail
+w3 draw 8; % bulb
+else:
+w0 draw 4..3{x3-x4,y3-y4}..6{-1,0}..7;
+fi;
+if lcs0: call `a serif(1,1,2,-lcs);
+ call `b serif(1,1,2,lcs); % left serif
+ call `c dserif(4,0,3,-lcs);
+ call `d dserif(4,0,3,lcs); % right serif
+fi.
+ "Cyrillic letter v";
+call charbegin(`v,pvbli+.5pwi/pu+phbls+.5pwii/pu+phbli,px,0,.75px.slant);
+hpen; lft1x1=lft1x2=round(pvbli.u); top1y1=m; bot1y2=0;
+w1 draw1..2; % stem
+if lcs0:
+ call `a serif(1,1,2,-lcs);
+ call `b serif(1,1,2,.5lcs); % upper serif
+ call `c serif(2,1,1,-lcs);
+ call `d serif(2,1,1,.5lcs); % lower serif
+fi;
+x3=x1; y3=.52m;
+rt1x25=round(r-(phbli+.5).u); y25=.5[y1,y3];
+lft0x26=lft1x25; rt0x27=rt1x25; y26=y27=1[y3,y25];
+x29=.5[x1,x25]; top0y29=m;
+x28=.5[x3,x25]; y28=y3;
+call `e lune(29,28,26,27,.48rdns,.48rdns,.48rdns,.48rdns); % upper bowl
+hpen; w0 draw 29..1; % connection to stem
+ draw 28..3;
+rt2x41=round(r-phbli.u); y41=.55[y2,y3];
+lft0x42=lft2x41; rt0x43=rt2x41; y42=y43=.55[y2,y3];
+x45=.5[x2,x41]; bot0y45=0;
+call `f lune(28,45,42,43,.48rdns,.48rdns,.48rdns,.48rdns); % lower bowl
+hpen; w0 draw 45..2. % connection to stem
+ "Cyrillic letter shch";
+call charbegin(`w,pvbli+.5pwi/pu+2.pvblshs+plstla+.5pw/pu+plali,px,psas,px.slant);
+hpen; lft1x1=lft1x2=round(pvbli.u); x3=good1(x1+pvblshs.u)=x4;
+x5=x6=good1(r-.5w0-(plali+plstla).u);;
+top1y1=m; y1=y3=y5; bot1y2=0; y2=y4=y6=y7;
+rt0x7=round(r-plali.u); rt0x8=r; y8=y7-sas;
+w1 draw 1..2; % stems
+ draw 3..4;
+ draw 5..6;
+if lcs  0:
+ if 4lcs.u+2w1>x5-x1-2u: new aa; 4aa.u+2w1=x5-x1-2u;
+ else: new aa; aa=lcs;
+ fi;
+ call `a serif(1,1,2,- lcs); % upper left serif
+ call `b serif(1,1,2, aa);
+ call `c serif(2,1,1,- lcs); % lower left serif
+ call `d serif(2,1,1, .5lcs);
+ call `e serif(3,1,4,- aa); % upper middle serif
+ call `f serif(3,1,4, aa);
+ call `g serif(4,1,3,-.5lcs); % lower middle serif
+ call `h serif(4,1,3, .5lcs);
+ call `i serif(5,1,6,- aa); % upper right serif
+ call `j serif(5,1,6, lcs);
+ call `k serif(6,1,5,-.5lcs); % lower right serif
+ new tmp; tmp=crisp; new crisp; crisp=0;
+ rt0x12=rt1x6;
+ call `l serif(6,1,5,(x7-x12)/u);
+ new crisp; crisp=tmp;
+fi;
+w0 draw 2..6; % bottom bar
+call `m carm(4,7,8,sas).
+ "Cyrillic letter sh";
+call charbegin(`x,2.pvbli+pwi/pu+2.pvblshs,px,0,px.slant);
+hpen; lft1x1=lft1x2=round(pvbli.u);
+x3=good1 .5r; rt1x5=round(r-pvbli.u); x4=x3; x6=x5;
+top1y1=m; y1=y3=y5;
+bot1y2=0; y2=y4=y6;
+w1 draw 1..2; % stems
+ draw 3..4;
+ draw 5..6;
+if lcs  0:
+ if 4lcs.u+2w1>x5-x1-2u: new aa; 4aa.u+2w1=x5-x1-2u;
+ else: new aa; aa=lcs;
+ fi;
+ call `a serif(1,1,2,- lcs); % upper left serif
+ call `b serif(1,1,2, aa);
+ call `c serif(2,1,1,- lcs); % lower left serif
+ call `d serif(2,1,1, .5lcs);
+ call `e serif(3,1,4,- aa); % upper middle serif
+ call `f serif(3,1,4, aa);
+ call `g serif(4,1,3,-.5lcs); % lower middle serif
+ call `h serif(4,1,3, .5lcs);
+ call `i serif(5,1,6,- aa); % upper right serif
+ call `j serif(5,1,6, lcs);
+ call `k serif(6,1,5,-.5lcs); % lower right serif
+ call `l serif(6,1,5, lcs);
+fi;
+w0 draw 2..6. % bottom bar
+ "Cyrillic letter y";
+call charbegin(`y,2.pvbli+pwi/pu+phbls+(3.5+qyi),px,0,px.slant);
+hpen; lft1x1=lft1x2=round(pvbli.u); rt1x3=rt1x4=round(r-pvbli.u);
+top1y1=top1y3=m; bot1y2=bot1y4=0;
+w1 draw 1..2; % stems
+ draw 3..4;
+if lcs  0:
+ call `a serif(1,1,2, -lcs); % upper left serif
+ call `b serif(1,1,2, lcs);
+ call `c serif(2,1,1, -lcs); % lower left serif
+ call `d serif(2,1,1,.5lcs);
+ call `e serif(3,1,4, -lcs); % upper right serif
+ call `f serif(3,1,4, lcs);
+ call `g serif(4,1,3, -lcs); % lower right serif
+ call `h serif(4,1,3, lcs);
+fi;
+x25=x1; x26=.5[x25,x27];
+y25=y26=lb; x28=x26; bot0y28=0;
+x27=good1(x1+phbls.u); y27=.5[y25,y2];
+lft0x29=lft2x27; rt0x30=rt2x27; y29=y30=y27;
+call `f lune(26,28,29,30,.48.rdns,.48.rdns,.48.rdns,.48.rdns); % bowl
+w0 draw 25..26; % connections to stem
+w0 draw 2..28.
+ "Cyrillic letter z";
+call charbegin(`z,plzi+.5pw/pu+lzwidth+.5pwii/pu+phbli,px,0,px.slant);
+cpen;
+if ssflag=0: lft0x901=round(plzi.u); y901=.08m; x1=.45[x901,x7];
+else: lft0x901=round(plzi.u); y901=.15m; x1=.4[x901,x7];
+fi;
+top0y1=m+oo;
+y5=(px/phh).ub; x5=x1;
+bot0y9=-oo; x9=x1;
+rt1x3=round(r-(phbli+.5).u); y3=.5[y1,y5];
+rt0x4=rt1x3; lft0x2=lft1x3; y2=y3=y4;
+rt2x7=round(r-phbli.u); y7=.5[y5,y9];
+rt0x8=rt2x7; lft0x6=lft2x7; y6=y7=y8;
+call exlune(1,5,2,4,.45rdns,.45rdns,.45rdns,.45rdns,0,.3); % bowls
+call exlune(5,9,6,8,.45rdns,.47rdns,.45rdns,.45rdns,.25,0);
+if ssflag=0: x15=x5-1.15u; else: x15=x5; fi;
+y15=y5;
+w0 draw 5..15; % center line
+if ssflag=0:
+x903=x901-.1u; y903=y901+(1.5+qyg).w0;
+lft0x101=round((plzi+.2).u); y101=.92m;
+x103=x101-.1u; y103=y101-(1.5+qyg).w0;
+new tailex; tailex=-1.2; new tailmid; tailmid=-.6;
+call arcpoint(9,901,902,-1,0,tailex,1,.5,.5);
+call arcpoint(9,903,904,-1,0,tailmid,1,.55,.5);
+call arcpoint(1,101,102,-1,0,tailex,-1,.5,.5);
+call arcpoint(1,103,104,-1,0,tailmid,-1,.55,.5);
+w0 ddraw 1{-1,0}..102{x101-x1,y101-y1}..101{tailex,-1},
+ 1{-1,0}..104{x103-x1,y103-y1}..103{tailmid,-1};
+w0 ddraw 9{-1,0}..902{x901-x9,y901-y9}..901{tailex,1},
+ 9{-1,0}..904{x903-x9,y903-y9}..903{tailmid,1};
+else:
+lft0x101=round((plzi+.1).u); y101=.85m;
+new tail; tail=-1.2;
+call arcpoint(1,101,102,-1,0,tail,-1,.5,.5);
+call arcpoint(9,901,902,-1,0,tail,1,.5,.5);
+w0 draw 1{-1,0}..102{x101-x1,y101-y1}..101{tail,-1};
+ draw 9{-1,0}..902{x901-x9,y901-y9}..901{tail,1};
+fi.
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cyrsymb.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cyrsymb.mf
new file mode 100644
index 00000000000..6bb49ba643c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cyrsymb.mf
@@ -0,0 +1,92 @@
+cmchar "open cyrillic quote (looks like <<)";
+beginchar(oct"035",10u#,x_height#,0);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x2=hround u-epsilon; x1=x3=.55w;
+y1=h; y3=0; y2=.5[y1,y3];
+draw z1--z2--z3; % left diagonals
+x4=w-x2; y4=.9[y3,y1]; y6=.1[y3,y1];
+x5-x2=x6-x3=x4-x1; y5=y2;
+draw z4--z5--z6; % right diagonals
+z2'=z2; x2':=x2-.625rule_thickness;
+z5'=z5; x5':=x5+.625rule_thickness;
+draw z1--z2'--z3; % left diagonals
+draw z4--z5'--z6; % right diagonals
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "close cyrillic quote (looks like >>)";
+beginchar(oct"036",10u#,x_height#,0);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x2=.55w; x1=x3=hround u-epsilon;
+y1=.9h; y3=.1h; y2=.5[y1,y3];
+y4=h; y6=0; y5=.5[y4,y6];
+draw z1--z2--z3; % left diagonals
+x4=w-x2;
+x5-x2=x6-x3=x4-x1;
+draw z4--z5--z6; % right diagonals
+z2'=z2; x2':=x2-.625rule_thickness;
+z5'=z5; x5':=x5+.625rule_thickness;
+draw z1--z2'--z3; % left diagonals
+draw z4--z5'--z6; % right diagonals
+labels(1,2,3,4,5,6);
+endchar;
+
+cmchar "The number mark";
+beginchar(oct"031",17u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem,letter_w,light_bulb; letter_w=14u;
+thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+top y1=h; bot y4=0;
+if serifs: top y3=h-bot y2=.9h; else: top y3=h; bot y2=0; fi
+x1=x2; x3=x4; x1l=letter_w-x3r;
+rt x3r=hround min(letter_w-3u,letter_w-4u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: serif(5,6,a,1/3,-cap_jut); % upper left serif
+ light_bulb=hround 7/8[cap_hair,flare];
+ z2'r=(tiny.rt x2r,y2); z2'l=(tiny.lft x2l,y2);
+ z3'l=(tiny.rt x3r,y3); z3'r=(tiny.lft x3l,y3);
+ penpos8(vair,-90); penpos9(cap_hair,-180); penpos10(light_bulb,-180);
+ penpos11(vair,90); penpos12(cap_hair,0); penpos13(light_bulb,0);
+ x8=x1-1.25u; x11=letter_w-x8;
+ x10r=hround .5u; x13r=hround(letter_w-.5u);
+ if monospace: y10=u; y11=h-y8=h;
+ else: y10=2u-min(.5light_bulb,.5u); top y11r=h+o; bot y8r=-o; fi
+ y13=h-y10;
+ fill stroke z2'e{down}...{left}z8e;
+ fill stroke z3'e{up}...{right}z11e; % upper and lower arcs
+ clearpen;
+ bulb(8,9,10); bulb(11,12,13); fi % upper and lower bulbs
+numeric thick_hair; thick_hair=max(hair,.75stem);
+penpos14(vair,90); penpos16(vair,-90);
+penpos15(thick_hair,180); penpos17(thick_hair,0);
+interim superness:=sqrt(more_super*hein_super);
+if monospace: x15=hround(w-4.5u); rt x17r=hround(w-.5u);
+ else: x15=hround(w-4u); rt x17r=hround(w-.5u); fi
+x14=x16=.5[x15,x17]; y14r=h-y16r=.7h; y15=y17=.5[y14,y16];
+if x17l<=x15l+10: x15l:=x15r+vair; x17l:=x17r-vair; fi
+penstroke pulled_arc.e(14,15) & pulled_arc.e(15,16)
+ & pulled_arc.e(16,17) & pulled_arc.e(17,14) & cycle; % bowl
+pickup crisp.nib; pos18(thick_hair,90); pos19(thick_hair,90);
+bot y18l=bot y19l=.075h; rt x19=x17r; lft x18=x15r;
+filldraw stroke z18e--z19e; % bar
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,1',2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cyrt.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cyrt.mf
new file mode 100644
index 00000000000..77237050199
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cyrt.mf
@@ -0,0 +1,1024 @@
+cmchar "The cyrillic letter a";
+beginchar(CYR_a,9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The cyrillic letter be";
+beginchar(CYR_be,9u#,fig_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos2'(vair,180); lft x2'r=x2r; y2'=y2r;
+penpos5(.8curve,90); penpos6(.8curve,90);
+penpos6'(.8curve,-90); x6=.5[x5,x7]; y6=y5; z6'=z6;
+penpos7(thin_join,0); rt x7r=rt x4r;
+top y7=h; top y5r=.97h; x5=x1;
+fill stroke z2'e{up}...{right}z5e..z6e;
+fill circ_stroke pulled_arc.e(7,6');
+penlabels(1,2,2',3,4,5,6',6,7); endchar;
+
+cmchar "The cyrillic letter ve";
+beginchar(CYR_ve,9u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.75vair;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(.75vair,90); penpos4(.75vair,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(.75vair,-90); penpos12(.75vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; bot y11=bot y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-u); x10r=hround(w-.5u);
+if serifs: right_curve=curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The cyrillic letter ghe";
+beginchar(CYR_ghe,8.5u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); % lower serif
+penlabels(1,2,3,4); endchar;
+
+def ellipse_set(suffix $,@,@@,$$) = % given |z$,x@,z$$|, find |y@| and |z@@|
+% such that the path |z${x@-x$,0}..z@{0,y@-y$}..{z$$-z@@}z@@|
+% is consistent with an ellipse
+% and such that the line |z@@--z$$| has a given |slope|
+ alpha_:=slope*(x$-x@); beta_:=y$$-y$-slope*(x$-x$$);
+ gamma_:=alpha_/beta_;
+ y@-y$=.5(beta_-alpha_*gamma_);
+ x$-x@@=-2gamma_*(x$-x@)/(1+gamma_*gamma_);
+ y@@-y$$=slope*(x$$-x@@) enddef;
+
+cmchar "The cyrillic letter ghe";
+beginchar(CYR_ghe,7.1u#,x_height#,0);
+italcorr x_height#*slant-.3u#;
+adjust_fit(if monospace: .5u#,.4u# else: 0,-.2u# fi);
+numeric theta; theta=90+angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-80);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+.52(y2r-y7l-ess');
+rt x3l=hround(w-.6u); lft x6r=hround .6u;
+x3l-x3r=x6l-x6r=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(4/7[s_slab,flare],-80); pos8(flare,-80);
+x1l=good.x(x1l+u-lft x1); rt x8r=hround(w-.5u);
+top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+filldraw stroke term.e(2,1,left,.9,4); % upper arc and terminal
+filldraw stroke term.e(7,8,right,1,4); % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The cyrillic letter de";
+beginchar(CYR_de,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The cyrillic letter ie";
+beginchar(CYR_ie,7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter ye";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(CYR_ye,7.25u#+max(.75u#,.5curve#),1.4x_height#,0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve,letter_h; letter_h=x_height;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=letter_h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+pos6(dot_diam,0); pos7(dot_diam,90);
+x6=x7=2.5u; top y7r=h+1;
+if bot y7l<letter_h+o+slab: y7l:=min(y7r-eps,letter_h+o+slab+.5tiny); fi
+y6=.5[y7l,y7r]; dot(6,7); % left dot
+pos8(dot_diam,0); penpos9(y7r-y7l,90); y8=y9=y6; x8=x9=w-x6;
+dot(8,9); % right dot
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter zhe";
+beginchar(CYR_zhe,15.5u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric arc_width; arc_width=7u;
+pos2(vair,-90); pos3(.8curve,0); pos4(vair,90); % NG
+pos9(vair,90); pos10(.8curve,180); pos11(vair,270); % NG
+x2=x4=w-x9=.5(arc_width-2u); x11=x9;
+rt x3r=w-lft x10r=hround(arc_width-2.5u+.5curve); % NG
+x6=x5; bot y2r=-oo; top y9r=h+oo;
+top y4r=h+oo; bot y11r=-oo; y3=h-y10=.5[y2,y4];
+pos5(4/7[vair',flare],110); pos8(4/7[vair',flare],80);
+rt x8r=w-lft x5r=hround(w-.6u); top y8r=top y5r=vround .82[bar_height,top y9r];
+filldraw stroke term.e(4,5,left,.8,4); % left upper terminal
+filldraw stroke term.e(9,8,right,.8,-4); % right upper terminal
+pos1(.6[vair',flare],265); pos12(.6[vair',flare],275);
+rt x12r=w-lft x1r=hround(w-.5u);
+y1r=good.y(y1r+1/3bar_height-y1); y1l:=good.y y1l; x1l:=good.x x1l;
+y12r=good.y(y12r+1/3bar_height-y12); y12l:=good.y y12l; x12l:=good.x x12l;
+forsuffixes e=l,r: path p.e,q.e;
+p.e=z2e{left}..tension .9 and 1..z1e;
+q.e=z11e{right}..tension .9 and 1..z12e;
+if angle direction 1 of p.e>75:
+ p.e:=z2e{left}..tension atleast.9 and 1..{dir 115}z1e;
+ q.e:=z11e{right}..tension atleast.9 and 1..{dir 75}z12e; fi endfor
+filldraw stroke pulled_super_arc.e(4,3)(.7superpull)
+ & pulled_super_arc.e(3,2)(.5superpull) & p.e; % left arc and lower terminal
+filldraw stroke pulled_super_arc.e(9,10)(.7superpull)
+ & pulled_super_arc.e(10,11)(.5superpull) & q.e; % right arc and terminal
+pos14(.9stem,0); pos15(.9stem,0); % NG
+x14=x15=.5w; top y14=h; bot y15=0;
+filldraw stroke z14e--z15e; % stem
+penpos3'(bar,90); penpos10'(bar,90); z3'=z3; z10'=z10;
+fill stroke z3'e--z10'e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+cmchar "The cyrillic letter ze";
+beginchar(CYR_ze,7.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup fine.nib;
+pos1(1.2flare,100); pos2(slab,90);
+pos3(flare,0); pos4(slab,-90); pos5(flare,-95);
+rt x1r=hround(1.1u); x2=.5w; x4=.45[x1,x10]; x9=.5w-u;
+rt x3r=hround w-max(u,2u-.5curve); rt x5r=hround(.9u);
+top y1r=vround .9h+oo; top y2r=h+oo; y3=.5[y7,y2];
+bot y4r=-oo; bot y5r=vround .15h-oo; y5l:=good.y y5l; x5l:=good.x x5l;
+pos7(vair,-90); pos8(vair,-90);
+pos9(max(fine.breadth,vround 2/3vair),90); pos10(flare,0);
+rt x10r=hround(w-.75u); lft x8=min(hround 5u,lft x9)-eps;
+y10=.5[y9,y4]; top y8l=vround(.54h+.5vair); y8r=y9l;
+x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+& pulled_arc.e(3,8); % upper bowl
+filldraw stroke pulled_arc.e(9,10)
+ & super_arc.e(10,4) & term.e(4,5,left,.8,4); % lower bowl
+penlabels(1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The cyrillic letter i";
+beginchar(CYR_i,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+cmchar "The cyrillic letter short_i";
+beginchar(CYR_short_i,10u#,if serifs: 1.5x_height#
+ else: 1.4x_height# fi,0);
+italcorr 1.5x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+pickup fine.nib; penpos7(.75vair,-90);
+penpos8(.75vair,-180); penpos10(.75vair,0);
+x7=.5[x8,x10]; y7=.85h;
+x8r=x1r; x10r=x3l; top y8=top y10=h;
+filldraw stroke z8e...z7e...z10e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The cyrillic letter ka";
+beginchar(CYR_ka,9.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-.75u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.5u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower stem serif
+ dish_serif(3,4,e,2/3,right_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter el";
+beginchar(CYR_el,9.5u#,x_height#,0);
+italcorr x_height#*slant-.5u;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib;
+numeric light_stem; light_stem=.9stem;
+pos1(light_stem,0); pos2(light_stem,0); pos3(light_stem,0);
+lft x1l=.5u; rt x3r=w-.5u; bot y1=bot y3=0;
+x2=.5[x1,x3]; top y2=h;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z2e--z3e; % right stem
+penlabels(1,2,3); endchar;
+
+%cmchar "The cyrillic letter el";
+%beginchar(CYR_el,10u#,x_height#,0);
+%italcorr x_height#*slant-serif_fit#
+% +.75jut#-2.5u#+min(.5stem#,u#);
+%adjust_fit(0,serif_fit#);
+%pickup tiny.nib;
+%pos1(hair,90); pos2(hair,90); pos3(hair,180);
+%pos4(stem,0); pos4'(slab,90); pos5(stem,0);
+%x3=.33w; rt x4r=rt x5r=hround(w-2.5u+.5stem);
+%top y4=h; bot y5=0; y3=.52h;
+%filldraw stroke z4e--z5e; % right stem
+%x1=u; x2=x1+.75u; bot y1l=0; bot y2l=0;
+%rt x4'=rt x4r; top y4'r=h;
+%filldraw stroke z1e..z2e{right}...{up}z3e{up}..{right}z4'e; % stem and arc
+%penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter em";
+beginchar(CYR_em,12u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround(w-2.5u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+y6=1/3h;
+if hefty:
+%y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut; lower_notch=y6+notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else:
+%y6=0;
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-jut); % upper left serif
+ dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); % lower left serif
+ serif(3,4,d,1/3,jut); % upper right serif
+ dish_serif(4,3,e,1/3,jut,f,1/3,jut); fi % lower right serif
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter en";
+beginchar(CYR_en,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(bar,90); penpos6(bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower left serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter o";
+beginchar(CYR_o,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter pe";
+beginchar(CYR_pe,10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter er";
+beginchar(CYR_er,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter es";
+beginchar(CYR_es,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter te";
+beginchar(CYR_te,10u#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+if odd(w-stem): change_width; fi
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter te";
+beginchar(oct"040",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter u";
+beginchar(CYR_u,if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter ef";
+beginchar(CYR_ef,12u#,x_height#+desc_depth#,desc_depth#);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+if odd(w-stem): change_width; fi
+top y1=h if serifs: +min(oo,serif_drop) fi;
+x1=x2=.5w; bot y2=-d;
+penpos3(.75vair,180);penpos3'(.75vair,0);
+penpos4(.75vair,90); penpos5(curve,0);
+penpos6(.5[vair,.75vair],-90);
+penpos7(.75vair,180); penpos7'(.75vair,0);
+penpos8(.75vair,90); penpos9(curve,180);
+penpos10(.75vair,270);
+x3l=x7l=rt x1r; x3'l=x7'l=lft x1l;
+y4r=y8r=x_height+oo; y5=y9=.5[y4l,y6l];
+x4r=x6r=.5[x1,x5]; x8r=x10r=.5[x9,x1];
+x5r=w-x9r=w-.5u;
+y7=y7'=.25x_height; y3=y3'=x_height-y7; y6r=y10r=-oo;
+filldraw stroke z1e--z2e; % stem
+fill stroke z3e{up}..pulled_arc.e(4,5) & pulled_arc.e(5,6)..{up}z7e;
+fill stroke z3'e{up}..pulled_arc.e(8,9) & pulled_arc.e(9,10)..{up}z7'e; % lobe
+if serifs:
+ sloped_serif.l(1,2,a,1/3,jut,.1h); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,3',4,5,6,7,7',8,9,10); endchar;
+
+cmchar "The cyrillic letter ha";
+beginchar(CYR_ha,if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The cyrillic letter tse";
+beginchar(CYR_tse,11u#,x_height#,comma_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair,letter_w; letter_w=10u;
+light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=letter_w-x1; x3r=x4r;
+top y1=h; bot y4=.12h;
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+z4'l=lft z4l; z4'r=rt z4r;
+penpos7(stem,40); penpos8(stem,-35);
+rt x7r=w-.5u; y7=0; x8l=x4l; y8=-d;
+(z8l-z9)=whatever*(z8r-z7r); y9=.5[y7l,y7r];
+fill stroke z4'e{down}..z7e; % lower arc
+fill z8l--z8r--z7r--z9--cycle; % appendix
+pickup fine.nib; bot y5r=-oo; x5l=.5letter_w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+penlabels(1,2,3,4,5,7,8,9); labels(6); endchar;
+
+cmchar "The cyrillic letter che";
+beginchar(CYR_che,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+numeric light_vair; light_vair=vair-fine;
+lft x1l=hround(2.5u-.5stem); x1=x2; x3l=w-x1r; x3r=x4r;
+top y1=h; bot y4=0;
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.65h;
+penpos5(light_vair,-90); penpos6(light_vair,0);
+y6=.5h; lft x6l=lft x3l; if rt x6r>rt x3r: x6r:=x3r; fi
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+pickup fine.nib; bot y5r=y6-vair-.05h; x5=.5w;
+filldraw stroke {{interim superness:=hein_super;
+ pulled_super_arc.e(2',5)(.01superpull)}}
+ & z5e{right}...z6e; % arc
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(4,3,g,1/3,jut,h,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+ def i_stroke(suffix $,@,@@,$$) =
+ penpos$$(x@@l-x@@r,180); x$$=x@@; top y$$=h;
+ y@@=h-1/3[bar_height,x_height];
+ penpos$''(x$l-x$r,180); x$''=x$; y$''=h-1/8[bar_height,x_height];
+ filldraw stroke z$''e--z$e; % thicken the lower left stem
+ penpos@0(min(rt x$l-lft x$r,thin_join)-fine,0); pickup fine.nib;
+ lft x@0l=tiny.lft x$r; y@0=y$'';
+ pos@1(vair,-90); pos@@'(x@@l-x@@r+tiny,180); z@@'=z@@;
+ x@1=.5[lft x@@'r,lft x@0l]; bot y@1r=-oo;
+ (x@,y@1l)=whatever[z@0l,z@1r]; x@1l:=x@;
+ filldraw stroke z@0e{down}...{left}z@1e
+ &{{interim superness:=hein_super; super_arc.e(@1,@@')}}; % arch
+ pickup tiny.nib; filldraw stroke z@@e--z$$e; % right stem
+ labels(@0); penlabels(@0,@1); enddef;
+
+cmchar "The cyrillic letter sha";
+beginchar(CYR_sha,15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,180); pos2(mfudged.stem,180);
+pos1'(shaved_stem,180); pos2'(shaved_stem,180);
+pos3(mfudged.stem,180); pos5(mfudged.stem,180);
+rt x1l=hround(w-2.5u+.5stem); x1l=x1'l=x2l=x2'l;
+rt x3l=hround(.5w+.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x1+x5)-l; fi % change width for better fit
+bot y1=-min(oo,serif_drop); top y2=h; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+i_stroke(2,a,3,4); % left arch and middle stem
+i_stroke(4,b,5,6); % right arch and right stem
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter shcha";
+beginchar(CYR_shcha,16u#,x_height#,comma_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem,letter_w; letter_w=15u;
+shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,180); pos2(mfudged.stem,180);
+pos1'(shaved_stem,180); pos2'(shaved_stem,180);
+pos3(mfudged.stem,180); pos5(mfudged.stem,180);
+rt x1l=hround(letter_w-2.5u+.5stem); x1l=x1'l=x2l=x2'l;
+rt x3l=hround(.5letter_w+.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x1+x5+u)-l; fi % change width for better fit
+bot y1=.12h; top y2=h; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+i_stroke(2,a,3,4); % left arch and middle stem
+i_stroke(4,b,5,6); % right arch and right stem
+z6'l=lft z1r; z6'r=rt z1l;
+penpos7(stem,40); penpos8(stem,-35);
+rt x7r=w-.5u; y7=0; x8l=x1r; y8=-d;
+(z8l-z9)=whatever*(z8r-z7r); y9=.5[y7l,y7r];
+fill stroke z6'e{down}..z7e; % lower arc
+fill z8l--z8r--z7r--z9--cycle; % appendix
+penlabels(1,2,3,4,5,6,6',7,8,9); endchar;
+
+cmchar "The cyrillic letter hard_sign";
+beginchar(CYR_hard_sign,10.5u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(4u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(.75vair,90); penpos6(.75vair,90); penpos7(right_curve,0);
+penpos8(.75vair,-90); penpos9(.75vair,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-.5u); x8l:=x8l-.5u;
+if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-u];
+else: right_curve=curve-3stem_corr; x6=.5[x1,w-1.2u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+pickup crisp.nib; pos3(slab,90); pos4(hair,180);
+top y3r=h; x3=x1; lft x4r=hround(.5u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,-.7beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,0,jut,b,1/3,jut); % upper serif
+nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter yeru";
+beginchar(CYR_yeru,13u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+pos3(stem,0); pos4(stem,0); x3=x4=w-x1; top y3=h; bot y4=0;
+penpos5(.75vair,90); penpos6(.75vair,90); penpos7(right_curve,0);
+penpos8(.75vair,-90); penpos9(.75vair,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6ltop:=x6-.25u; x8l:=x8l-.5u;
+x7r=if serifs: tiny.lft x3l-jut; else: 8.5u; fi
+if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-4.5u];
+else: right_curve=curve-3stem_corr; x6=.5[x1,w-5.2u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+filldraw stroke z3e--z4e; % right stem
+if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper left serif
+nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); % lower left serif
+dish_serif(3,4,e,1/3,1.05jut,f,1/3,1.05jut); % upper right serif
+dish_serif(4,3,g,1/3,1.05jut,h,1/3,1.05jut); fi % lower right serif
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter soft_sign";
+beginchar(CYR_soft_sign,9u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(.75vair,90); penpos6(.75vair,90); penpos7(right_curve,0);
+penpos8(.75vair,-90); penpos9(.75vair,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-.5u); x8l:=x8l-.5u;
+if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-u];
+else: right_curve=curve-3stem_corr; x6=.5[x1,w-1.2u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter e";
+beginchar(CYR_e,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib;
+pos2(cap_band,90); pos4(vair',270); pos3(curve,0);
+x2=x4=.5(w-u); top y2r=h+oo; bot y4r=-oo;
+rt x3r=w-hround min(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,180);
+ lft x1r=u; bot y1=min(vround .7h,bot y2l-eps);
+ pos5(hair,180); lft x5r=hround(.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ filldraw stroke z1e{up}
+ ..pulled_super_arc.e(2,3)(superpull)%(.7superpull)
+ & pulled_super_arc.e(3,4)(superpull)%(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=1.5curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x1-x2,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: pos1(4/7[vair',flare],110);
+ lft x1r=hround(.6u);
+ top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ pos5(.6[vair',flare],265); lft x5r=hround(.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e<105:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 105}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.7superpull) & p.e; fi % arc and lower terminal
+penpos7(bar,90); penpos8(bar,90);
+x7=lft x3l; x8=.5w-1.5u;
+y7=y8=.5h;
+fill stroke z7e--z8e; % bar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter yu";
+beginchar(CYR_yu,13.5u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,if monospace: .5u# else: 0 fi);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+penpos5(vair,90); penpos7(vair',-90);
+penpos6(curve,180); penpos8(curve,0);
+x5=x7=.5[x6,x8]; y5r=h+oo; y7r=-oo;
+x8r=hround(w-.5u); x6r=hround(w-8.5u);
+y6=y8=.5h-vair_corr; y6l:=y8l:=.52h;
+penstroke pulled_arc.e(5,6) & pulled_arc.e(6,7)
+ & pulled_arc.e(7,8) & pulled_arc.e(8,5) & cycle; % bowl
+penpos3(bar,90); penpos4(bar,90); x3=x1; x4=x6; y3=y4=.52h;
+fill stroke z3e--z4e; % bar
+if serifs: numeric inner_jut; inner_jut=jut;
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); fi % lower left serif
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter ya";
+beginchar(CYR_ya,8u#+.5max(2u#,curve#),x_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=rt x2r=w-hround(2.5u-.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(.75vair,90); penpos4(.75vair,90);
+penpos5(curve if hefty:-3stem_corr fi,180);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7; x7=x2; y7=.5h; x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround(1.5u);
+else: x4=.5w; x5r=hround(.75u); fi
+x4l:=x6l:=x4+.125curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+pos6'(curve,0); pos8(curve,0); x6'r=x6l; y6'=y6;
+tiny.lft x8l=.5u+.5jut; bot y8=0;
+filldraw stroke z6'e--z8e; % diagonal stem
+if serifs: numeric inner_jut;
+ if rt x8r+u+1<=lft x2l-jut: inner_jut=jut;
+ else: lft x2l-u-1=rt x8r+inner_jut; fi
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
+ dish_serif(2,1,c,1/3,inner_jut,d,1/3,jut); % lower serif
+ serif(8,6',e,1/3,-.5jut); fi % lower diagonal serif
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cyru.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cyru.mf
new file mode 100644
index 00000000000..b26fd5aa32b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cyru.mf
@@ -0,0 +1,1027 @@
+cmchar "The cyrillic letter A";
+beginchar(CYR_A,13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter BE";
+beginchar(CYR_BE,12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve;
+left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x8=x6; x5=x1; x6l:=x6-.25u; x7r=hround(w-u); x8l:=x8l-.5u;
+if serifs: right_curve=cap_curve-stem_corr; x6=.5[x1,w-1.8u];
+else: right_curve=cap_curve-3stem_corr; x6=.5[x1,w-1.5u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-2u); y4=good.y(y3l-.8beak)-eps;
+arm(3,4,e,beak_darkness,.9beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter VE";
+beginchar(CYR_VE,12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The cyrillic letter GHE";
+beginchar(CYR_GHE,11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter DE";
+beginchar(CYR_DE,13u#,cap_height#,comma_depth#);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; numeric thin_stem;
+thin_stem=if monospace: cap_stem-tiny
+ else: min(cap_hair,cap_stem-1.5tiny) fi;
+if serifs: penpos1(thin_stem,0); penpos2(thin_stem,0);
+penpos0(thin_stem,0); x2=.5[hround .5u,x1];
+else: penpos1(thin_stem,0); penpos2(thin_stem,0);
+penpos0(thin_stem,0); x2=.5u+cap_stem; fi
+pos3(cap_stem,0); pos4(cap_stem,0);
+x1l=x0l=.33w; top y1=h; y0=.75h; bot y2=0;
+rt x3r=rt x4r=hround(w-2u); top y3=h; bot y4=0;
+filldraw stroke z3e--z4e;
+filldraw stroke z1e--z0e{down}..z2e; % stem and arc
+if serifs: pickup crisp.nib; numeric inner_jut, newbracket;
+ newbracket:=max(1.5,bracket); inner_jut:=.5(x3l-x1r);
+ path p[]; p1=z1{down}...z2;
+ p12=(0,y1-newbracket)--(w,y1-newbracket);
+ p21=(0,y2+newbracket)--(w,y2+newbracket);
+ z12=p1 intersectionpoint p12; z21=p1 intersectionpoint p21;
+ nodish_serif(1,12,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,c,1/3,inner_jut,d,1/3,cap_jut); % upper right serif
+ inner_jut:=.5(x4l-x2r);
+ nodish_serif(2,21,e,1/3,cap_jut,f,1/3,inner_jut); % middle left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % middle right serif
+ pickup crisp.nib;
+ pos5(slab,90); pos6(cap_hair,180); pos7(cap_hair,0);
+ x5=.5[x2,x4]; bot y5l=0;
+ rt x7r=tiny.rt x4r+cap_jut; lft x6r=tiny.lft x2l-cap_jut;
+ y6=y7=good.y(y5l-.5beak)-eps;
+ arm(5,6,m,1.25beak_darkness,0); % left beak
+ arm(5,7,n,1.25beak_darkness,0); % right beak
+else:
+ pos1'(slab,90); pos3'(slab,90);
+ pos6(slab,90); pos7(slab,90);
+ pos6'(stem,0); pos7'(stem,0);
+ pos8(stem,0); pos9(stem,0);
+ lft x1'=lft x1l; rt x3'=rt x3r; top y1'r=top y3'r=h;
+ lft x6=lft x6'l=lft x8l=.5u; rt x7=rt x7'r=rt x9r=w-.5u;
+ bot y6l=bot y7l=0; y6'=y7'=y6; bot y8=bot y9=-.8d;
+ filldraw stroke z1'e--z3'e; % upper bar
+ filldraw stroke z6e--z7e; % lower bar
+ filldraw stroke z6'e--z8e; % left beak
+ filldraw stroke z7'e--z9e; % right beak
+fi
+math_fit(0,.5ic#-.5u#);
+penlabels(0,1,1',2,3,3',4,5,6,7,8,9,12,21); endchar;
+
+cmchar "The cyrillic letter IE";
+beginchar(CYR_IE,12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter YO";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(CYR_YO,12u#-width_adj#,1.3cap_height#,0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric letter_h; letter_h=cap_height;
+letter_h:=vround(letter_h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=letter_h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=letter_h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pos10(dot_diam,0); pos11(dot_diam,90);
+x10=x11=3.5u; top y11r=h+1;
+if bot y11l<letter_h+o+slab: y11l:=min(y11r-eps,letter_h+o+slab+.5tiny); fi
+y10=.5[y11l,y11r]; dot(10,11); % left dot
+pos12(dot_diam,0); penpos13(y11r-y11l,90); y12=y13=y10; x12=x13=w-x10;
+dot(12,13); % right dot
+math_fit(0,.5ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The cyrillic letter ZHE";
+beginchar(CYR_ZHE,21u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+x1=x2=.5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+rt x3r=w-lft x7l=hround(r-letter_fit-u-right_jut);
+rt x6r=w-lft x9l=hround(r-letter_fit-.75u-right_jut);
+top y3=top y7=h; bot y6=bot y9=0; x4=x4'=x1; y4=y4'=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+penpos7(alpha1*(stem1-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0); penpos9(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=y7'$=h; y6'$=y9'$=0;
+ z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4];
+ x8$=w-x5$; y8$=y5$; endfor
+z5=.5[z5l,z5r]; z8=.5[z8l,z8r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+x7'r=w-x3'r; x7'l=w-x3'l; x9'r=w-x6'r; x9'l=w-x6'l;
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % right upper diagonal
+fill z4r--diag_end(4r,7'r,1,.5,7'l,4l)--z4l--cycle; % left upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % right lower diagonal
+fill z8l--diag_end(8l,9'l,.5,1,9'r,8r)--z8r--cycle; % left lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(7,4,i,1/2,right_jut,j,2/3,1.2cap_jut)(dark); % upper diagonal seri
+ dish_serif(9,8,k,1/3,right_jut,l,1/2,inner_jut)(dark);fi % lower diagonal seri
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter ZE";
+beginchar(CYR_ZE,11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);pickup fine.nib;
+if serifs: pos1(cap_hair,180); pos2(cap_band,90);
+ pos3(max(fine.breadth,cap_curve-stem_corr),0); pos4(vair',270);
+ lft x1r=1.5u; top y2r=h+o;
+ bot y1=min(vround .7h,bot y2l-eps); rt x3r=hround(w-u);
+ pos7(cap_bar,-90); pos8(cap_bar,-90);
+ pos9(max(fine.breadth,vround 2/3cap_bar),90); pos10(cap_curve,0);
+ x9=.5w-.75u; x2=x4=.5w; bot y4r=-o;
+ rt x10r=w-.5u; lft x8=min(hround 5u,lft x9)-eps;
+ y3=.5[top y7l,bot y2l]; y10=.5[bot y9l,top y4l];
+ top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ pos5(cap_hair,180); lft x5r=hround(u);
+ y5=max(good.y(.6bar_height),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ interim superness:=more_super;
+ filldraw stroke z1e{up}
+ ... pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z7e---z8e; % upper bowl
+% filldraw z8r--z9l--z9r--z8l---cycle; % middle tip
+ filldraw stroke pulled_super_arc.e(9,10)(.5superpull)
+ & pulled_super_arc.e(10,4)(.5superpull)
+ ..z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=1.5cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x1-x2,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: pos1(1.2flare,100); pos2(slab,90);
+ pos3(cap_curve,0); pos4(slab,-90); pos5(flare,-95);
+ rt x1r=hround(1.1u); x2=.5w; x4=.45[x1,x10]; x9=.5w-u;
+ rt x3r=hround w-max(u,2u-.5cap_curve); rt x5r=hround(.9u);
+ top y1r=vround .9h+o; top y2r=h+o; y3=.5[y7,y2];
+ bot y4r=-o; bot y5r=vround .15h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ pos7(vair,-90); pos8(vair,-90);
+ pos9(max(fine.breadth,vround 2/3vair),90); pos10(cap_curve,0);
+ rt x10r=hround(w-.75u); lft x8=min(hround 5u,lft x9)-eps;
+ y10=.5[y9,y4]; top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & pulled_arc.e(3,8); % upper bowl
+ filldraw stroke pulled_arc.e(9,10)
+ & super_arc.e(10,4) & term.e(4,5,left,.8,4); fi % lower bowl
+penlabels(1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The cyrillic letter I";
+beginchar(CYR_I,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: y5=h-y6=.1h;
+ else: bot y5l=h-top y6r=0; fi
+x5=rt x2r; x6=lft x3l;
+if hefty: numeric upper_notch,lower_notch,alpha;
+ alpha=if monospace: 100 else: 90 fi;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ penpos5(1.5cap_stem,alpha); penpos6(1.5cap_stem,alpha);
+ x2'=rt x2r; z2'=whatever[z6r,z5r]; x3'=lft x3l; z3'=whatever[z5l,z6l];
+ fill z5l..
+ if y2'<lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'>upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,90); penpos6(whatever,90);
+ z7=z6l-(cap_hair,0) rotated (angle(z5-z6)-90);
+ z5r=z7+whatever*(z5-z6); z6r=z7+whatever*(z5-z6);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,2,2',3,3',4,5,6,7); endchar;
+
+cmchar "The cyrillic letter SHORT I";
+beginchar(CYR_SHORT_I,13u#+width_adj#,1.3cap_height#,0);
+italcorr 1.3cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos3(cap_stem',0); pos4(cap_stem',0);
+pickup tiny.nib; top y1=top y3=cap_height; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: y5=cap_height-y6=.12cap_height;
+ else: bot y5l=cap_height-top y6r=0; fi
+x5=rt x2r; x6=lft x3l;
+if hefty: numeric upper_notch,lower_notch,alpha;
+ alpha=if monospace: 100 else: 90 fi;
+ upper_notch=cap_height-cap_notch_cut; lower_notch=cap_notch_cut;
+ penpos5(1.5cap_stem,alpha); penpos6(1.5cap_stem,alpha);
+ x2'=rt x2r; z2'=whatever[z6r,z5r]; x3'=lft x3l; z3'=whatever[z5l,z6l];
+ fill z5l..
+ if y2'<lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'>upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,90); penpos6(whatever,90);
+ z6'=z6l-(cap_hair,0) rotated (angle(z5-z6)-90);
+ z5r=z6'+whatever*(z5-z6); z6r=z6'+whatever*(z5-z6);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+ if monospace: penpos7(.25vair,-90);
+ else: penpos7(vair,-90); fi
+ penpos8(.7vair,-180); penpos9(.75flare,-180);
+ penpos10(.7vair,0); penpos11(.75flare,0);
+ x7=.5[x8,x10]; bot y7r=.85h;
+ x8=.5w-2u; x10=w-x8; y8=y11=.95h;
+ bulb(7,8,9); % left bulb
+ bulb(7,10,11); % right bulb
+else: pickup fine.nib; penpos7(.75vair,-90);
+ penpos8(.75vair,-180); penpos10(.75vair,0);
+ x7=.5[x8,x10]; y7=.9h;
+ x8r=x1r; x10r=x3l; top y8=top y10=h;
+ filldraw stroke z8e...z7e...z10e;
+fi
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The cyrillic letter KA";
+beginchar(CYR_KA,13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter EL";
+beginchar(CYR_EL,13u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; numeric thin_stem;
+thin_stem=min(1.5cap_hair,cap_stem);
+if serifs: pos1(thin_stem,0); pos12(thin_stem,0);
+else: pos1(cap_hair,0); pos12(cap_hair,0); fi
+pos5(cap_stem,0); pos6(cap_stem,0);
+x1=.33w; top y1=h; x12=x1; y12=.5h;
+rt x5r=rt x6r=hround(w-3u+.5cap_stem); top y5=h; bot y6=0;
+filldraw stroke z5e--z6e; % right stem
+if serifs: numeric inner_jut;
+ inner_jut:=.5(x5l-x1r);
+ pos2(thin_stem,-90); pos3(thin_stem,-180);
+ pos4(1.2flare,-180);
+ bot y2r=-o; x2=.38[x4,x1]; y4=.15h; rt x4l=hround 2.5u; z4r=z3r;
+ bulb(2,3,4); % bulb
+ filldraw stroke z2e{right}...{up}z12e--z1e; % left stem and arc
+ nodish_serif(1,12,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(5,6,g,1/3,inner_jut,h,1/3,cap_jut); % upper right serif
+ dish_serif(6,5,e,1/3,cap_jut,f,1/3,cap_jut); % lower right serif
+else: pos1'(slab,90); pos5'(slab,90);
+ pos2(cap_hair,-90); pos3(cap_hair,-90);
+ x2=.5u; x3=x2+u; bot y2r=0; bot y3r=-o;
+ lft x1'=lft x1l; rt x5'=rt x5r; top y1'r=top y5'r=h;
+ filldraw stroke z1'e--z5'e; % upper bar
+ filldraw stroke z2e...z3e{right}...{up}z12e--z1e; % stem and arc
+fi
+math_fit(0,.5ic#-.5u#);
+penlabels(1,1',2,3,4,5,5',6,7); endchar;
+
+cmchar "The cyrillic letter EM";
+beginchar(CYR_EM,16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+
+cmchar "The cyrillic letter EN";
+beginchar(CYR_EN,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter O";
+beginchar(CYR_O,14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter PE";
+beginchar(CYR_PE,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower left serif
+ inner_jut:=inner_jut+2u;
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+else: pos5(slab,90); pos6(slab,90);
+ lft x5=x1l; rt x6=x3r; y5r=y6r=y3;
+ filldraw stroke z5e--z6e; fi % upper bar
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter ER";
+beginchar(CYR_ER,12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The cyrillic letter ES";
+if serifs: beginchar(CYR_ES,13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(CYR_ES,11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter TE";
+beginchar(CYR_TE,13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter U";
+beginchar(CYR_U,13u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.cap_stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else: .5[vair,bot_stem] fi);
+outer_jut=.75cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=3.5u; x2l=x3l;
+numeric alpha,alpha[]; x9=5u; y9=bot_vair-o;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+penpos5(alpha*right_stem,0); z5r=whatever[z3r,z4r]; y5=.5[y3,y9];
+if serifs: numeric light_bulb;
+ light_bulb=hround 7/8[cap_hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(cap_hair,-180); penpos8(light_bulb,-180);
+ x6=4u; y6r=-o; y8+.5light_bulb=3u; x8r=hround 1.5u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(right_stem,-90); x6=4.75u; y6r=-o;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(right_stem,-90); z6'=z6;
+ pos7(2/3[bot_stem,flare],-85);
+ lft x7l=hround 3.5u; bot y7r=.02h-o; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter EF";
+beginchar(CYR_EF,14u#-width_adj#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+x1=x2=.5w; top y1=h; bot y2=0;
+penpos3(cap_band,90); penpos4(cap_band,90); penpos5(curve,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+penpos8(cap_band,90); penpos9(curve,180);
+penpos10(.5[vair,cap_band],270);
+x3=x1; y3=y4=y8=vround .8h; y5=y9=.5[y4l,y6l];
+x7=x2; y7=vround .2h; x4r=x6r=w-x8r=w-x10r=.5w+1.75u;
+x5r=w-x9r=hround(w-.5u); y6=y10=y7;
+filldraw stroke z1e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e;
+fill stroke z3e..pulled_arc.e(8,9) & pulled_arc.e(9,10)..z7e; % lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The cyrillic letter HA";
+beginchar(CYR_HA,13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The cyrillic letter TSE";
+beginchar(CYR_TSE,13u#+width_adj#,cap_height#,comma_depth#);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,c,1/3, cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+ pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+ x5=.5[x2,x4]; bot y5l=0;
+ rt x6r=tiny.rt x4r+cap_jut; y6=good.y(y5l-.75beak)-eps;
+ arm(5,6,m,1.25beak_darkness,0); % beak
+else: pos2'(slab,90); pos4'(slab,90);
+ pos5(stem,0); pos6(stem,0);
+ lft x2'=lft x2l; rt x4'=rt x5r=rt x6r=w-.5u;
+ bot y2'l=bot y4'l=0; y5=y4; bot y6=-.8d;
+ filldraw stroke z2'e--z4'e; % lower bar
+ filldraw stroke z5e--z6e; % right beak
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter CHE";
+beginchar(CYR_CHE,13u#,cap_height#,0); % [AS]
+italcorr cap_height#*slant-serif_fit#+.5cap_stem#-2u#;
+adjust_fit(cap_serif_fit#+stem_shift#,cap_serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=hround(2.5u-.5cap_stem); x1=x2; x3l=w-x1r; x3r=x4r;
+top y1=h; bot y4=0;
+penpos2'(cap_stem-fine,-180); z2'=z2; y3=y1; y2=.65h;
+if monospace: penpos5(.5vair,-90); penpos6(.5vair,-90);
+else: penpos5(vair,-90); penpos6(vair,-25); fi
+y6=.52h; lft x6l=lft x3l;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+pickup fine.nib; bot y5r=y6-vair-.1h; x5=.5w;
+filldraw stroke {{interim superness:=hein_super;
+ pulled_super_arc.e(2',5)(.01superpull)}}
+ & z5e{right}...z6e; % arc
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(4,3,g,1/3,jut,h,1/3,jut); fi % lower right serif
+penlabels(1,2,2',3,4,5,6); endchar;
+
+cmchar "The cyrillic letter SHA";
+beginchar(CYR_SHA,18u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos3(cap_stem',0); pos4(cap_stem',0);
+pos5(cap_stem',0); pos6(cap_stem',0);
+if odd(w-cap_stem'): change_width; fi
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem);
+x3=x4=.5w; x5=x6=w-x1;
+top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
+filldraw stroke z1e--z2e; % right stem
+filldraw stroke z3e--z4e; % middle stem
+filldraw stroke z5e--z6e; % left stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
+ dish_serif(5,6,e,1/3,inner_jut,f,1/3, cap_jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,g,1/3,cap_jut,h,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,i,1/3,inner_jut,j,1/3,inner_jut); % lower middle serif
+ nodish_serif(6,5,k,1/3,inner_jut,l,1/3,cap_jut); % lower right serif
+else: pos2'(slab,90); pos6'(slab,90);
+ lft x2'=lft x1l; rt x6'=rt x6r; bot y2'l=bot y6'l=0;
+ filldraw stroke z2'e--z6'e; % lower bar
+fi
+math_fit(0,.5ic#); penlabels(1,2,2',3,4,5,6,6'); endchar;
+
+cmchar "The cyrillic letter SHCHA";
+beginchar(CYR_SHCHA,18u#,cap_height#,comma_depth#);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos3(cap_stem',0); pos4(cap_stem',0);
+pos5(cap_stem',0); pos6(cap_stem',0);
+if odd(w-cap_stem'): change_width; fi
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem);
+x3=x4=.5w; x5=x6=w-x1;
+top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
+filldraw stroke z1e--z2e; % right stem
+filldraw stroke z3e--z4e; % middle stem
+filldraw stroke z5e--z6e; % left stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
+ dish_serif(5,6,e,1/3,inner_jut,f,1/3, cap_jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,g,1/3, cap_jut,h,1/3, inner_jut); % lower left serif
+ nodish_serif(4,3,i,1/3,inner_jut, j,1/3,inner_jut); % lower middle serif
+ nodish_serif(6,5,k,1/3,inner_jut, l,1/3, cap_jut); % lower right serif
+ pickup crisp.nib; pos7(slab,90); pos8(hair,0);
+ x7=.5[x4,x6]; bot y7l=0;
+ rt x8r=tiny.rt x6r+cap_jut; y8=good.y(y7l-.75beak)-eps;
+ arm(7,8,m,1.25beak_darkness,0); % beak
+else: pos2'(slab,90); pos6'(slab,90);
+ pos7(stem,0); pos8(stem,0);
+ lft x2'=lft x1l; rt x6'=rt x7r=rt x8r=w-.5u;
+ bot y2'l=bot y6'l=0; y7=y6; bot y8=-.8d;
+ filldraw stroke z2'e--z6'e; % lower bar
+ filldraw stroke z7e--z8e; % right beak
+fi
+math_fit(0,.5ic#); penlabels(1,2,2',3,4,5,6,6',7,8); endchar;
+
+cmchar "The cyrillic letter HARD_SIGN";
+beginchar(CYR_HARD_SIGN,16u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(5.5u,6.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x8=x6; x5=x1; x6l:=x6-.25u; x7r=hround(w-u); x8l:=x8l-.5u;
+if serifs: right_curve=cap_curve-stem_corr; x6=.5[x1,w-1.8u];
+else: right_curve=cap_curve-3stem_corr; x6=.5[x1,w-1.5u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+pickup crisp.nib; pos3(slab,90); pos4(cap_hair,180);
+top y3r=h; x3=x1; lft x4r=hround(.5u); y4=good.y(y3l-.75beak)-eps;
+arm(3,4,e,beak_darkness,-.7beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,0,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter YERU";
+beginchar(CYR_YERU,17.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+pos3(cap_stem,0); pos4(cap_stem,0);
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+x3=x4=w-x1; top y3=h; bot y4=0;
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x8l:=x8l-.5u;
+rt x7r=if serifs: tiny.lft x3l-cap_jut; else: 11.5u; fi
+if serifs: right_curve=cap_curve-stem_corr; x6=.5[x1,w-6.8u];
+else: right_curve=cap_curve-3stem_corr; x6=.5[x1,w-7.5u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+filldraw stroke z3e--z4e; % right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper left serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); % lower left serif
+ dish_serif(3,4,e,1/3,1.05cap_jut,f,1/3,1.05cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,1.05cap_jut,h,1/3,1.05cap_jut); fi % lower right serif
+labels(1,2,3,4,5,6,7,8,9);
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter SOFT_SIGN";
+beginchar(CYR_SOFT_SIGN,12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-u); x8l:=x8l-.5u;
+if serifs: right_curve=cap_curve-stem_corr; x6=.5[x1,w-1.8u];
+else: right_curve=cap_curve-3stem_corr; x6=.5[x1,w-1.5u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter E";
+if serifs: beginchar(CYR_E,13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,180); pos2(cap_band,90);
+ pos3(cap_curve,0); pos4(cap_band,270); pos5(hair,180);
+ lft x1r=lft x5r=hround u; rt x3r=hround (w-u); x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(CYR_E,11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,110); pos2(slab,90);
+ pos3(cap_curve,0); pos4(slab,270); pos5(flare,265);
+ lft x1r=hround 1.1u; x2=x4=.5w-1.25u;
+ rt x3r=w-hround max(u,2u-.5cap_curve); lft x5r=hround .9u;
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4); fi % arc and terminals
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+x7=lft x3l; x8=.5w-1.5u;
+%if serifs: y7l=y8l else:
+y7=y8=.5h;
+fill stroke z7e--z8e; % bar
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter YU";
+beginchar(CYR_YU,20u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+penpos5(vair',90); penpos7(vround(vair+1.5vair_corr),-90);
+penpos6(cap_curve,180); penpos8(cap_curve,0);
+if monospace: x8r=hround(w-1.5u); x6r=hround(w-12.5u);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x8r=hround(w-u); x6r=hround(w-13u); fi
+x5=x7=.5[x8,x6]; y5r=h+o; y7r=-o; y6=y8=.5h-vair_corr; y6l:=y8l:=.52h;
+penstroke pulled_super_arc.e(5,6)(.5superpull)
+ & pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull)
+ & pulled_super_arc.e(8,5)(.5superpull) & cycle; % bowl
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+x3=x1; x4=x6; y3=y4=.52h;
+fill stroke z3e--z4e; % bar
+if serifs: numeric inner_jut; inner_jut=cap_jut;
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); fi % lower left serif
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter YA";
+beginchar(CYR_YA,12u#+.5max(2u#,cap_curve#),cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+rt x1r=rt x2r=w-hround(3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,180);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7; x7=x2; y7=.5h; x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround(1.5u);
+else: x4=.5w-.5u; x5r=hround u; fi
+x4l:=x6l:=x4+.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+pos6'(cap_curve,0); x6'r=x6l+.5u; y6'=y6;
+pos8(cap_curve,0); tiny.lft x8l=.5u+.5cap_jut; bot y8=0;
+filldraw stroke z6'e--z8e; % diagonal stem
+if serifs:
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+ serif(8,6',e,1/3,-.5cap_jut); fi % lower diagonal serif
+math_fit(0,.75ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cytextit.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cytextit.mf
new file mode 100644
index 00000000000..bf0f1302365
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cytextit.mf
@@ -0,0 +1,29 @@
+% The Computer Modern Cyrillic Text Italic family
+
+let cmchar=message; % `|cmchar|' should precede each character
+
+mode_setup; font_setup;
+input coding;
+font_coding_scheme:="TeX text";
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+
+input cyru; % upper case (majuscules)
+input citall; % lower case (minuscules)
+input cyrsymb; % three additional char
+%if ligs>0: input comlig; fi % ligatures common with roman text
+%if ligs<=1: input romsub; fi % substitutes for ligatures
+
+
+if not monospace:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmcyr/cytitle.mf b/Master/texmf-dist/fonts/source/public/cmcyr/cytitle.mf
new file mode 100644
index 00000000000..8cbe7305448
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmcyr/cytitle.mf
@@ -0,0 +1,280 @@
+% The Computer Modern Cyrillic family of fonts (by N.Glonti)
+
+let cmchar=message; % `|cmchar|' should precede each character
+
+font_coding_scheme:="TeX text";
+input coding;
+
+mode_setup; font_setup;
+
+%input romand; % numerals
+%input romanp; % ampersand, question marks, currency sign
+%input punct; % punctuation symbols common to roman and italic text
+%input ruslig; % simple ligatures
+
+input cyru; % upper case (majuscules)
+input cyrt; % lower case (minuscules)
+%input cyrsymb; % number mark, cyrillic quotes
+
+font_slant slant;
+font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+
+% k#:=.5u#; kk#:=.75u#; kkk#:=1.5u#; kkkk#:=-2u#;
+
+ k#:=.25u#; kk#:=.5u#; kkk#:=0.75u#; kkkk#:=-1.25
+u#;
+
+%k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+%k#:=2u#; kk#:=u#; kkk#:=3u#; kkkk#:=-5u#;
+ ligtable CYR_a: % a
+ CYR_ya kern -kk#, % ya
+ CYR_u kern -kk#, % u
+ CYR_de kern k#, % d
+ CYR_che kern -kk#; % ch
+
+ ligtable CYR_be: % b
+ CYR_ve kern -k#, % ve
+ CYR_ghe kern -k#, % ghe
+ CYR_ie kern k#, % e
+ CYR_zhe kern -k#, % zhe
+ CYR_i kern -k#, % i
+ CYR_ka kern -k#, % ka
+ CYR_em kern -k#, % em
+ CYR_en kern -k#, % en
+ CYR_pe kern -k#, % pe
+ CYR_er kern -k#, % er
+% CYR_ef kern -k#, % (was -kk# AS) f
+ CYR_ha kern -k#, % x
+% CYR_o kern -k#, % o (-kkkk -> -kkk AS)
+ CYR_es kern -k#, % s (-kkkk -> -kkk AS)
+ CYR_u kern -k#, % u
+ CYR_soft_sign kern -k#, % soft_sign
+ CYR_yeru kern -k#, % yeru
+ CYR_shcha kern -k#, % shcha
+ CYR_tse kern -k#; % tse
+
+ ligtable CYR_tse: CYR_sha: CYR_shcha:
+ CYR_en: CYR_em: CYR_pe:
+ CYR_be kern -k#, % be
+ CYR_o kern -k#, % o
+ CYR_ie kern -k#, % es
+ CYR_ef kern -k#, % ef
+ CYR_es kern -k#, % ie
+ CYR_de kern k#; % d
+
+ ligtable CYR_de: % d
+ CYR_be kern -kkk#, % be
+ CYR_o kern -kkk#, % o
+ CYR_ie kern -kkk#, % es
+ CYR_ef kern -kk#, % ef
+ CYR_es kern -kkk#, % ie
+ CYR_de kern kk#; % d
+
+ ligtable CYR_ie: % e
+ CYR_be kern kkk#, % b
+ CYR_de kern -kk#, % d
+% CYR_ie kern -k#, % e
+ CYR_zhe kern -kk#, % e
+% CYR_ef kern -k#, % f
+ CYR_ha kern -kk#, % x
+% CYR_o kern -k#, % o
+% CYR_es kern -k#, % s
+% CYR_te kern -k#, % t
+ CYR_u kern -k#; % u
+
+ ligtable CYR_ef: % f
+ CYR_ie kern k#, % e
+ CYR_ha kern -kk#, % x
+ CYR_i kern -kk#, % i
+ CYR_en kern -k#, %
+ CYR_pe kern -k#, %
+ CYR_er kern -k#, %
+ CYR_o kern k#, % o
+ CYR_es kern k#, % s
+ CYR_te kern -k#; % t
+
+ ligtable CYR_ghe: % g
+ CYR_be kern -k#, % b
+ CYR_ie kern -kkk#, % e
+ CYR_o kern -kkk#, % o
+ CYR_es kern -kkk#; % s
+
+ ligtable CYR_ha: % kh
+ CYR_ie kern -kk#, % e
+ CYR_o kern -kk#, % o
+ CYR_ef kern -kk#, %
+ CYR_es kern -kk#; % s
+
+ ligtable CYR_ka: % k
+ CYR_ie kern -kk#, % e
+ CYR_ef kern -kk#, % f
+ CYR_o kern -kk#, % o
+ CYR_es kern -kk#, % s
+ CYR_u kern -k#; % u
+
+ ligtable CYR_el: % l
+ CYR_ie kern -kk#, % e
+ CYR_ef kern -kk#, % f
+ CYR_o kern -kk#, % o
+ CYR_es kern -kk#; % s
+
+ ligtable CYR_o: % o
+% CYR_be kern -k#, % b (was kkkk AS)
+ CYR_ve kern -kk#, % ve
+ CYR_de kern -kkk#, % de
+% CYR_ie kern -k#, % e (was kkkk AS)
+ CYR_ha kern -kk#, % x
+% CYR_o kern -k#, % o (was kkkk AS)
+% CYR_es kern -kk#, % s (was kkkk AS)
+ CYR_em kern -kk#, %
+ CYR_en kern -kk#, %
+ CYR_pe kern -kk#, %
+ CYR_i kern -kk#, %
+ CYR_short_i kern -kk#, %
+ CYR_ka kern -kk#, %
+ CYR_er kern -kk#, %
+ CYR_sha kern -kk#, %
+ CYR_shcha kern -kk#, %
+ CYR_che kern -kkk#, %
+ CYR_zhe kern -kk#; % zh
+
+ ligtable CYR_er: % p
+% CYR_be kern -k#, % b (kkkk -> -kkk AS)
+% CYR_ie kern -k#, % e(kkkk -> -kkk AS)
+ CYR_ha kern -kk#, % x
+% CYR_o kern -k#, % o (kkkk -> -kkk AS)
+% CYR_es kern -kk#, % s (kkkk -> -kkk AS)
+ CYR_te kern -k#; % t
+
+%ligtable CYR_es: % s
+% CYR_be kern -k#, % b
+% CYR_ie kern -k#, % e
+% CYR_ef kern -k#, % f
+% CYR_o kern -k#, % o
+% CYR_es kern -k#; % s
+ ligtable CYR_te: % t
+ CYR_en kern -k#, %
+ CYR_es kern -k#, %
+ CYR_ie kern -k#, % e
+ CYR_o kern -k#; % o
+ ligtable CYR_u: % u
+ CYR_de kern -k#, % d
+ CYR_el kern -kk#, %
+ CYR_a kern -k#; % s
+ ligtable CYR_zhe: % zh
+ CYR_be kern -kk#, % b
+ CYR_ie kern -kk#, %
+ CYR_ef kern -kk#, %
+ CYR_o kern -kk#, % o
+ CYR_es kern -kk#; % s
+
+ ligtable CYR_ve: % w
+ CYR_te kern -k#; % d
+
+%ligtable CYR_ze: % z
+% CYR_be kern -k#, % b
+% CYR_ie kern -k#, % e
+% CYR_o kern -k#, % o
+% CYR_es kern -k#; % s
+
+ ligtable CYR_A: % A
+ CYR_u kern -kk#, %
+ CYR_CHE kern -kkk#; % ch
+
+ ligtable CYR_BE: % B
+ CYR_O kern -k#, % o
+ CYR_ES kern -k#, % s
+ CYR_U kern -kk#; % u
+
+ ligtable CYR_GHE: CYR_U: % G U
+ CYR_A kern -kk#, % a
+% CYR_ve kern -kk#, % w
+% CYR_GHE kern -kk#, % g
+ CYR_DE kern -kk#, % d
+% CYR_IE kern -kk#, % e
+ CYR_EF kern -kk#, % f
+ CYR_HA kern -kk#, % kh
+% CYR_I kern -kk#, % i
+% CYR_SHORT_I kern -kk#, % j
+% CYR_KA kern -kk#, % k
+ CYR_EL kern -kk#, % l
+% CYR_EM kern -kk#, % m
+% CYR_EN kern -kk#, % n
+% CYR_O kern -kk#, % o
+% CYR_PE kern -kk#, % p
+ CYR_YA kern -kk#, % ya
+% CYR_ER kern -kk#, % r
+ CYR_ES kern -kk#, % s
+ CYR_TE kern -kk#, % t
+ CYR_U kern -kk#; % u
+% CYR_VE kern -kk#, % w
+% CYR_SOFT_SIGN kern -kk#, % '
+% CYR_YERU kern -kk#, % y
+% CYR_ZE kern -kk#, % z
+% CYR_SHA kern -kk#, % sh
+% CYR_SHCHA kern -kk#, % shch
+% CYR_CHE kern -kk#; % ch
+% CYR_HARD_SIGN kern -k#; % ''
+
+ ligtable CYR_O: CYR_ES: CYR_EF:
+ CYR_de kern -kkk#, %
+ CYR_A kern -kkk#, %
+ CYR_VE kern -kkk#, %
+ CYR_GHE kern -kkk#, %
+ CYR_ER kern -kkk#, %
+ CYR_PE kern -kkk#, %
+ CYR_EN kern -kkk#, %
+ CYR_E kern -kkk#, %
+ CYR_HA kern -kkk#, %
+ CYR_I kern -kkk#, %
+ CYR_KA kern -kkk#, %
+ CYR_EM kern -kkk#, %
+ CYR_SHA kern -kkk#, %
+ CYR_SHCHA kern -kkk#, %
+ CYR_SHORT_I kern -kkk#; % j
+
+ ligtable CYR_EN: CYR_EM: CYR_ER: CYR_PE:
+ CYR_ZHE: CYR_KA: CYR_DE: CYR_HA:
+ CYR_O kern -kkk#, %
+ CYR_ES kern -kkk#, %
+ CYR_EF kern -kkk#; %
+
+ ligtable CYR_TE: % T
+ CYR_A kern -kkk#, % a
+% CYR_VE kern -kkk#, % w
+% CYR_GHE kern -kkk#, % g
+ CYR_DE kern -kkk#, % d
+ CYR_IE kern -kkk#, % e
+ CYR_EF kern -kkk#, % f
+ CYR_HA kern -kkk#, % kh
+ CYR_I kern -kkk#, % i
+ CYR_SHORT_I kern -kkk#, % j
+ CYR_KA kern -kkk#, % k
+ CYR_EL kern -kkk#, % l
+% CYR_EM kern -kkk#, % m
+% CYR_EN kern -kkk#, % n
+ CYR_O kern -kkk#, % o
+% CYR_PE kern -kkk#, % p
+ CYR_YA kern -kkk#, % ya
+% CYR_ER kern -kkk#, % r
+ CYR_ES kern -kkk#, % s
+ CYR_TE kern -kkk#, % t
+ CYR_U kern -kkk#, % u
+% CYR_VE kern -kkk#, %
+% CYR_SOFT_SIGN kern -kkk#, %
+% CYR_YERU kern -kkk#, % y
+ CYR_ZE kern -kkk#; % z
+% CYR_SHA kern -kk#, % sh
+% CYR_SHCHA kern -kk#, % shch
+% CYR_CHE kern -kk#, % ch
+% CYR_HARD_SIGN kern -kk#; %
+fi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmbxcd10.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmbxcd10.mf
new file mode 100644
index 00000000000..cd1f0f0b0ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmbxcd10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Bold Extended Roman 10 point, Caps and Digits Only
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBXCD"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate title % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmbxti12.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmbxti12.mf
new file mode 100644
index 00000000000..299c83ad67f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmbxti12.mf
@@ -0,0 +1,75 @@
+% Computer Modern Bold Extended Text Italic 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBXTI"; font_size 12pt#;
+
+u#:=24.9/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=12.5/36pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.8/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=21.5/36pt#; % lowercase hairline breadth
+stem#:=44/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=41/36pt#; % breadth in middle of lowercase s
+flare#:=48/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=59/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=55/36pt#; % uppercase stem breadth
+cap_curve#:=59/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=32/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.3/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmbxti7.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmbxti7.mf
new file mode 100644
index 00000000000..984c903eed1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmbxti7.mf
@@ -0,0 +1,75 @@
+% Computer Modern Bold Extended Text Italic 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBXTI"; font_size 7pt#;
+
+u#:=16.5/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=11/36pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=17.8/36pt#; % lowercase hairline breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=39/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=36/36pt#; % uppercase stem breadth
+cap_curve#:=39/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.7/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmcscsl10.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmcscsl10.mf
new file mode 100644
index 00000000000..8c6280bb677
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmcscsl10.mf
@@ -0,0 +1,110 @@
+% Computer Modern Roman Caps and Small Caps Slanted 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSCSL"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmfibs8.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmfibs8.mf
new file mode 100644
index 00000000000..f4b9c09ba24
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmfibs8.mf
@@ -0,0 +1,75 @@
+% Computer Modern Roman Fibonacci Slanted Font
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMFIBS"; font_size 8pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=-2/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=233/36pt#; % height of tallest characters
+asc_height#:=233/36pt#; % height of lowercase ascenders
+cap_height#:=233/36pt#; % height of caps
+fig_height#:=233/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=89/36pt#; % axis of symmetry for math symbols
+bar_height#:=89/36pt#; % height of crossbar in lowercase e
+comma_depth#:=55/36pt#; % depth of comma below baseline
+desc_depth#:=55/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=13/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=34/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=34/36pt#; % breadth in middle of lowercase s
+flare#:=34/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=34/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=34/36pt#; % uppercase stem breadth
+cap_curve#:=39/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=21/36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=21/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=21/36pt#; % protrusion of uppercase serifs
+beak_jut#:=13/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=sqrt5-2; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=3/8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/13; % extra openness inside bowls
+beak_darkness:=5/13; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmitt12.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmitt12.mf
new file mode 100644
index 00000000000..44a3841c0d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmitt12.mf
@@ -0,0 +1,75 @@
+% Computer Modern Italic Typewriter Text for use with 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMITT"; font_size 12pt#;
+
+u#:=24.7/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=18/36pt#; % extra space added to all sidebars
+
+body_height#:=300/36pt#; % height of tallest characters
+asc_height#:=264/36pt#; % height of lowercase ascenders
+cap_height#:=264/36pt#; % height of caps
+fig_height#:=264/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=132/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=60/36pt#; % depth of comma below baseline
+desc_depth#:=96/36pt#; % depth of lowercase descenders
+
+crisp#:=25/36pt#; % diameter of serif corners
+tiny#:=25/36pt#; % diameter of rounded corners
+fine#:=22/36pt#; % diameter of sharply rounded corners
+thin_join#:=22/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=39/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=28/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=46/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=39/36pt#; % vertical protrusion of beak serifs
+vair#:=25/36pt#; % vertical diameter of hairlines
+notch_cut#:=28/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=25/36pt#; % serif and arm thickness
+cap_bar#:=25/36pt#; % uppercase bar thickness
+cap_band#:=25/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=28/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=1.5pt#; % for small refinements of hairline height
+apex_corr#:=11/36pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.86; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmitt9.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmitt9.mf
new file mode 100644
index 00000000000..fdcd1698937
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmitt9.mf
@@ -0,0 +1,75 @@
+% Computer Modern Italic Typewriter Text for use with 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMITT"; font_size 9pt#;
+
+u#:=18.9/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=14/36pt#; % extra space added to all sidebars
+
+body_height#:=225/36pt#; % height of tallest characters
+asc_height#:=198/36pt#; % height of lowercase ascenders
+cap_height#:=198/36pt#; % height of caps
+fig_height#:=198/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=72/36pt#; % depth of lowercase descenders
+
+crisp#:=21/36pt#; % diameter of serif corners
+tiny#:=21/36pt#; % diameter of rounded corners
+fine#:=20/36pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=24/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=33/36pt#; % diameter of dots
+cap_hair#:=24/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=24/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=36/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=31/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3.5/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmsl6.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmsl6.mf
new file mode 100644
index 00000000000..73227738d2d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmsl6.mf
@@ -0,0 +1,75 @@
+% Computer Modern Slanted Roman 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSL"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmsltt9.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmsltt9.mf
new file mode 100644
index 00000000000..324d8029d36
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmsltt9.mf
@@ -0,0 +1,75 @@
+% Computer Modern Slanted Typewriter Text for use with 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSLTT"; font_size 9pt#;
+
+u#:=18.9/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=225/36pt#; % height of tallest characters
+asc_height#:=198/36pt#; % height of lowercase ascenders
+cap_height#:=198/36pt#; % height of caps
+fig_height#:=198/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=72/36pt#; % depth of lowercase descenders
+
+crisp#:=21/36pt#; % diameter of serif corners
+tiny#:=21/36pt#; % diameter of rounded corners
+fine#:=20/36pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=24/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=33/36pt#; % diameter of dots
+cap_hair#:=24/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=24/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=31/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=31/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3.5/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmssbxo10.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmssbxo10.mf
new file mode 100644
index 00000000000..d7d7345fe1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmssbxo10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Slanted Sans Serif Bold Extended 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSBXO"; font_size 10pt#; % "O" is for "oblique"
+
+u#:=22/36pt#; % unit width
+width_adj#:=22/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=26/36pt#; % diameter of serif corners
+tiny#:=26/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=49/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=43/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=49/36pt#; % uppercase hairline breadth
+cap_stem#:=53/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=49/36pt#; % maximum breadth above or below notches
+bar#:=26/36pt#; % lowercase bar thickness
+slab#:=36/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=31/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=18/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmsslu30.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmsslu30.mf
new file mode 100644
index 00000000000..9e5ec2a0313
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmsslu30.mf
@@ -0,0 +1,75 @@
+% Computer Modern Sans Serif Light UltraCondensed for C+T title pages
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSLU"; font_size 30pt#;
+
+u#:=30/36pt#; % unit width
+width_adj#:=20/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=750/36pt#; % height of tallest characters
+asc_height#:=750/36pt#; % height of lowercase ascenders
+cap_height#:=750/36pt#; % height of caps
+fig_height#:=750/36pt#; % height of numerals
+x_height#:=510/36pt#; % height of lowercase without ascenders
+math_axis#:=.5cap_height#; % axis of symmetry for math symbols
+bar_height#:=285/36pt#; % height of crossbar in lowercase e
+comma_depth#:=120/36pt#; % depth of comma below baseline
+desc_depth#:=180/36pt#; % depth of lowercase descenders
+
+crisp#:=23/36pt#; % diameter of serif corners
+tiny#:=23/36pt#; % diameter of rounded corners
+fine#:=23/36pt#; % diameter of sharply rounded corners
+thin_join#:=23/36pt#; % width of extrafine details
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=23/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=23/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=27/36pt#; % uppercase bar thickness
+cap_band#:=27/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=27/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=0/36pt#; % for small refinements of stem breadth
+vair_corr#:=0/36pt#; % for small refinements of hairline height
+apex_corr#:=0/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.75; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmssu30.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmssu30.mf
new file mode 100644
index 00000000000..7288820cd28
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmssu30.mf
@@ -0,0 +1,75 @@
+% Computer Modern Sans Serif UltraCondensed for C+T boards
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSU"; font_size 30pt#;
+
+u#:=30/36pt#; % unit width
+width_adj#:=20/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=750/36pt#; % height of tallest characters
+asc_height#:=750/36pt#; % height of lowercase ascenders
+cap_height#:=750/36pt#; % height of caps
+fig_height#:=750/36pt#; % height of numerals
+x_height#:=510/36pt#; % height of lowercase without ascenders
+math_axis#:=.5cap_height#; % axis of symmetry for math symbols
+bar_height#:=285/36pt#; % height of crossbar in lowercase e
+comma_depth#:=120/36pt#; % depth of comma below baseline
+desc_depth#:=180/36pt#; % depth of lowercase descenders
+
+crisp#:=23/36pt#; % diameter of serif corners
+tiny#:=23/36pt#; % diameter of rounded corners
+fine#:=23/36pt#; % diameter of sharply rounded corners
+thin_join#:=46/36pt#; % width of extrafine details
+hair#:=54/36pt#; % lowercase hairline breadth
+stem#:=54/36pt#; % lowercase stem breadth
+curve#:=54/36pt#; % lowercase curve breadth
+ess#:=54/36pt#; % breadth in middle of lowercase s
+flare#:=58/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=60/36pt#; % diameter of dots
+cap_hair#:=54/36pt#; % uppercase hairline breadth
+cap_stem#:=54/36pt#; % uppercase stem breadth
+cap_curve#:=54/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=50/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=50/36pt#; % vertical diameter of hairlines
+notch_cut#:=54/36pt#; % maximum breadth above or below notches
+bar#:=48/36pt#; % lowercase bar thickness
+slab#:=54/36pt#; % serif and arm thickness
+cap_bar#:=54/36pt#; % uppercase bar thickness
+cap_band#:=54/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=54/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=0/36pt#; % for small refinements of stem breadth
+vair_corr#:=0/36pt#; % for small refinements of hairline height
+apex_corr#:=0/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.75; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmextra/cmvtti10.mf b/Master/texmf-dist/fonts/source/public/cmextra/cmvtti10.mf
new file mode 100644
index 00000000000..535f4d87b23
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmextra/cmvtti10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Variable-Width Typewriter Text Italic for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMVTTI"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=15/36pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=40/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmpica/cmpica.mf b/Master/texmf-dist/fonts/source/public/cmpica/cmpica.mf
new file mode 100644
index 00000000000..724dbd7a1c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmpica/cmpica.mf
@@ -0,0 +1,76 @@
+% This is CMPICA.MF in text format, as of Jun 22, 1988.
+% Based on {\tt cmtt10.mf}
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPICA"; font_size 10pt#;
+
+u#:=29/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=275/36pt#; % height of tallest characters
+asc_height#:=242/36pt#; % height of lowercase ascenders
+cap_height#:=242/36pt#; % height of caps
+fig_height#:=242/36pt#; % height of numerals
+x_height#:=171/36pt#; % height of lowercase without ascenders
+math_axis#:=121/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate pica % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmpica/cmpicab.mf b/Master/texmf-dist/fonts/source/public/cmpica/cmpicab.mf
new file mode 100644
index 00000000000..29b9a7a498e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmpica/cmpicab.mf
@@ -0,0 +1,96 @@
+% This is CMPICAB.MF in text format, as of Jul 14, 1988.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPICAB"; font_size 10pt#;
+
+u#:=29/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=275/36pt#; % height of tallest characters
+asc_height#:=242/36pt#; % height of lowercase ascenders
+cap_height#:=242/36pt#; % height of caps
+fig_height#:=242/36pt#; % height of numerals
+x_height#:=171/36pt#; % height of lowercase without ascenders
+math_axis#:=121/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the remainder of the code here tells \MF\ to draw a squiggly line
+% under all characters except the diacriticals; this an archaic
+% typesetters' convention for indicating boldface text.
+
+extra_endchar:=extra_endchar&"undersquiggle;";
+
+def undersquiggle =
+ if (charcode<oct"022") or ((charcode>oct"030") and (charcode<oct"056"))
+ or ((charcode<oct"136") and (charcode>oct"057"))
+ or ((charcode>oct"137") and (charcode<oct"176")):
+ pickup pencircle scaled 0.6pt;
+ draw squiggle;
+ fi;
+ enddef;
+
+def squiggle=(0,-100/36pt){right}..(1/8w,-85/36pt)..
+ {right}(2/8w,-100/36pt){right}..(3/8w,-115/36pt)..
+ {right}(4/8w,-100/36pt){right}..(5/8w,-85/36pt)..
+ {right}(6/8w,-100/36pt){right}..(7/8w,-115/36pt)..{right}(w,-100/36pt)
+ enddef;
+
+generate pica % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmpica/cmpicati.mf b/Master/texmf-dist/fonts/source/public/cmpica/cmpicati.mf
new file mode 100644
index 00000000000..985ebb9fa1d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmpica/cmpicati.mf
@@ -0,0 +1,90 @@
+% This is CMPICATI.MF in text format, as of Jun 22, 1988.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPICATI"; font_size 10pt#;
+
+u#:=29/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=275/36pt#; % height of tallest characters
+asc_height#:=242/36pt#; % height of lowercase ascenders
+cap_height#:=242/36pt#; % height of caps
+fig_height#:=242/36pt#; % height of numerals
+x_height#:=171/36pt#; % height of lowercase without ascenders
+math_axis#:=121/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the remainder of the code here tells \MF\ to draw a straight line
+% under all characters except the diacriticals; this an archaic
+% typesetters' convention for indicating italic text.
+
+extra_endchar:=extra_endchar&"underlineit;";
+
+def underlineit =
+ if (charcode<oct"022") or ((charcode>oct"030") and (charcode<oct"056"))
+ or ((charcode<oct"136") and (charcode>oct"057"))
+ or ((charcode>oct"137") and (charcode<oct"176")):
+ pickup pencircle scaled 0.4pt;
+ draw (0,-90/36pt)--(w,-90/36pt);
+ fi;
+ enddef;
+
+generate pica % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/cmpica/pcpunct.mf b/Master/texmf-dist/fonts/source/public/cmpica/pcpunct.mf
new file mode 100644
index 00000000000..3999413e003
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmpica/pcpunct.mf
@@ -0,0 +1,291 @@
+% This is PCPUNCT.MF in text format, as of June 22, 1986.
+% based on PUNCT.MF
+% This file contains punctuation marks common to roman and italic styles.
+% {\tt'} and {\tt`} have been replaced with {\pc'}
+
+% Codes \0041, \0043, \0045, \0047--\0054,\ %
+%% \0056, \0057, \0072, \0073, \0075, \0100,\par
+% \0133, \0135, and \0140 are generated, as well as code |spanish_shriek|
+% (for a Spanish exclamation point) if that code value is known.
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Spanish open exclamation point";
+beginchar(spanish_shriek,5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Hash mark (number sign)";
+compute_spread(.6x_height#,.7x_height#);
+beginchar("#",15u#,asc_height#,asc_depth#);
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+adjust_fit(0,0);
+pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); endchar;
+
+cmchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Straight single quote";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+adjust_fit(0,0);
+x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; fi % stem
+penlabels(1,2); endchar;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Semicolon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+cmchar "At sign";
+beginchar("@",14u#,asc_height#,0);
+italcorr .7asc_height#*slant-.5u#;
+adjust_fit(0,if hefty or monospace:-2u# else: 0 fi);
+pickup fine.nib; pos0(fudged.hair,0); pos1(vair,90);
+pos2(fudged.stem,180); pos3(vair,270);
+pos4(fudged.stem,-180); pos5(fudged.stem,-180);
+pos6(vair,-90); pos7(fudged.hair,0);
+pos8(vair,90); pos9(fudged.hair,180);
+pos10(vair,270); pos11(.5[vair,flare],360);
+x1=x3=.5[x0,x2]; y0=y2=.5[y1,y3];
+x8=x10=.5w; y7=y9=.5[y8,y10];
+lft x9r=hround u; x7=w-x9; top y8r=h+oo; bot y10r=-oo;
+top y1r=vround(.8[y10,y8]+.5vair); bot y3r=vround(.2[y10,y8]-.5vair);
+x6l=1/3[x5l,x7l]; y6=y3; y11=good.y(.1[y10,y8]-.5);
+x0=x4=x5; y4=.8[y3,y1]; y5=2/3[y7,y6];
+if hefty or monospace: lft x2r=hround(5u-.5fudged.stem);
+ rt x0r=hround(w-3u); x11r=x0r;
+else: lft x2r=hround 3.4u; x0=w-x2; x11r=x7r; fi
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % left inner bowl
+filldraw stroke super_arc.e(3,0) & super_arc.e(0,1); % right inner bowl
+filldraw stroke super_arc.e(8,9) & super_arc.e(9,10)
+ & term.e(10,11,right,1,4); % left outer bowl and terminal
+if hefty or monospace: {{interim superness:=hein_super;
+ filldraw stroke super_arc.e(0,8)}}; % link
+else: (x,y6r)=whatever[z6l,z7l]; x6r:=x;
+ filldraw stroke z4e---z5e...z6e{right}...{up}z7e
+ & super_arc.e(7,8); fi % stem and link
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Straight single quote";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+adjust_fit(0,0);
+x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; fi % stem
+penlabels(1,2); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/cmpica/pica.mf b/Master/texmf-dist/fonts/source/public/cmpica/pica.mf
new file mode 100644
index 00000000000..80ea0fa2036
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cmpica/pica.mf
@@ -0,0 +1,61 @@
+%% \font\pc=cmpica
+% This is PICA.MF in text format, as of June 22, 1988.
+% adapted from {\tt roman.mf}
+% The Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+
+font_coding_scheme:="Modified TeX typewriter text";
+ spanish_shriek=oct"016"; spanish_query=oct"017";
+
+mode_setup; font_setup;
+
+input romanu; % upper case (majuscules)
+input romanl; % lower case (minuscules)
+input greeku; % upper case Greek letters
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+input romspu; % uppercase specials (\AE, \OE, \O)
+input pcpunct; % punctuation symbols adapted for pica
+input accent; % accents common to roman and italic text
+
+% Character codes \0013--\0015, \0074, and \0076 are generated when |ligs=1|;
+% in addition, codes \0040, \0042, \0055, \0134, \0137, and \0173--\0175
+% are generated, if |ligs=0|.
+
+up_arrow=oct"013"; down_arrow=oct"014";
+less=ASCII"<"; greater=ASCII">";
+if ligs=0: straight_quotes=oct"042"; minus=ASCII"-";
+ backslash=ASCII"\"; underbar=ASCII"_";
+ left_brace=ASCII"{"; vertical=ASCII"|"; right_brace=ASCII"}"; fi
+
+input sym;
+
+cmchar "Straight single quote";
+beginchar(oct"015",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5 if serifs: flare# else: stem# fi -2u#;
+adjust_fit(0,0);
+x1=x2=.5w; y2=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; fi % stem
+penlabels(1,2); endchar;
+
+cmchar "Another hyphen";
+beginarithchar(oct"040"); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; y1=y2=math_axis;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+ligtable "-": "-" =: oct"040"; % this points to |"another hyphen"| so that
+ % {\tt---} will be typeset as {\pc---}
+ligtable "`": "`" =: oct"042"; % {\tt``} and {\tt''} should become {\pc``}
+ligtable "'": "'" =: oct"042"; % and {\pc''}
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+font_normal_space 9u#;
+font_normal_stretch 4u#;
+font_quad 18u#;
+font_extra_space 9u#;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccam10.mf b/Master/texmf-dist/fonts/source/public/concmath/xccam10.mf
new file mode 100644
index 00000000000..a7332c9b727
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccam10.mf
@@ -0,0 +1,139 @@
+% Concrete version of msam10, the first extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCAM"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% include these parameters to shrink R and S so they fit inside a circle
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=21/36pt#; % uppercase hairline breadth
+lower.stem#:=23/36pt#; % lowercase stem breadth
+lower.cap_stem#:=24/36pt#; % uppercase stem breadth
+lower.cap_curve#:=26/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=21/36pt#; % serif and arm thickness
+lower.cap_bar#:=21/36pt#; % uppercase bar thickness
+lower.cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=.93; % factor applied to weights of heavy characters
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccam5.mf b/Master/texmf-dist/fonts/source/public/concmath/xccam5.mf
new file mode 100644
index 00000000000..d9dd1e36894
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccam5.mf
@@ -0,0 +1,140 @@
+% Concrete version of msam5, the first extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCAM"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=82.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=11/36pt#; % width of extrafine details
+hair#:=14/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=17/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=14/36pt#; % uppercase hairline breadth
+cap_stem#:=17/36pt#; % uppercase stem breadth
+cap_curve#:=18/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=18/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=14/36pt#; % vertical diameter of hairlines
+notch_cut#:=15/36pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% include these parameters to shrink R and S so they fit inside a circle
+% (parameters taken from msam5 without further tuning for Concrete)
+
+lower.u#:=8.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=1.5/36pt#;% extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=98/36pt#; % height of tallest characters
+lower.cap_height#:=98/36pt#; % height of caps
+lower.x_height#:=45/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=23/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=17/36pt#; % depth of comma below baseline
+
+lower.flare#:=17/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=6.6/36pt#; % uppercase hairline breadth
+lower.stem#:=11/36pt#; % lowercase stem breadth
+lower.cap_stem#:=13.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=16/36pt#; % uppercase curve breadth
+lower.cap_ess#:=12/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=14/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=3/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=17/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=6.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=6.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=6.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+
+lower.o#:=2.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/5; % subscripts to 5pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+3/36pt#, % num2
+ math_axis#+1.51rth#+24/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-63/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-3/36pt#), % denom2
+ 5.99pt#-subs*asc_height#, % sup1
+ 5.49pt#-subs*asc_height#, % sup2
+ 53/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 9.9pt#, % delim1
+ 7.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccam6.mf b/Master/texmf-dist/fonts/source/public/concmath/xccam6.mf
new file mode 100644
index 00000000000..816ab5cbd06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccam6.mf
@@ -0,0 +1,140 @@
+% Concrete version of msam6, the first extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCAM"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=99/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=12/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=19/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=15/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=20/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% include these parameters to shrink R and S so they fit inside a circle
+% (parameters taken from msam6 without further tuning for Concrete)
+
+lower.u#:=10/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=1.5/36pt#;% extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=105/36pt#; % height of tallest characters
+lower.cap_height#:=105/36pt#; % height of caps
+lower.x_height#:=58/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=31/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=24/36pt#; % depth of comma below baseline
+
+lower.flare#:=18/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7.1/36pt#; % uppercase hairline breadth
+lower.stem#:=13/36pt#; % lowercase stem breadth
+lower.cap_stem#:=16/36pt#; % uppercase stem breadth
+lower.cap_curve#:=19/36pt#; % uppercase curve breadth
+lower.cap_ess#:=12/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=14/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=3.8/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=24/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=7.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=7.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=7.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3.0/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/6; % subscripts to 6pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+9/36pt#, % num2
+ math_axis#+1.51rth#+29/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-74/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-9/36pt#), % denom2
+ 6.49pt#-subs*asc_height#, % sup1
+ 5.99pt#-subs*asc_height#, % sup2
+ 62/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccam7.mf b/Master/texmf-dist/fonts/source/public/concmath/xccam7.mf
new file mode 100644
index 00000000000..f581305ff86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccam7.mf
@@ -0,0 +1,140 @@
+% Concrete version of msam7, the first extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCAM"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=115.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=20/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=22.5/36pt#; % uppercase curve breadth
+cap_ess#:=21.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=17/36pt#; % vertical diameter of hairlines
+notch_cut#:=21/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% include these parameters to shrink R and S so they fit inside a circle
+% (parameters taken from msam7 without further tuning for Concrete)
+
+lower.u#:=11.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.0/36pt#;% extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=120/36pt#; % height of tallest characters
+lower.cap_height#:=119/36pt#; % height of caps
+lower.x_height#:=71/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=39/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=31/36pt#; % depth of comma below baseline
+
+lower.flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7.6/36pt#; % uppercase hairline breadth
+lower.stem#:=15/36pt#; % lowercase stem breadth
+lower.cap_stem#:=18.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=22/36pt#; % uppercase curve breadth
+lower.cap_ess#:=16/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=17/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=4.6/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=31/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=7.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=7.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=7.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccam8.mf b/Master/texmf-dist/fonts/source/public/concmath/xccam8.mf
new file mode 100644
index 00000000000..a6ed81ee19a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccam8.mf
@@ -0,0 +1,140 @@
+% Concrete version of msam8, the first extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCAM"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=132/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=19/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% include these parameters to shrink R and S so they fit inside a circle
+% (parameters taken from msam8 without further tuning for Concrete)
+
+lower.u#:=13/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.7/36pt#;% extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=146/36pt#; % height of tallest characters
+lower.cap_height#:=145.8/36pt#; % height of caps
+lower.x_height#:=85/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=47.6/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=38/36pt#; % depth of comma below baseline
+
+lower.flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.1/36pt#; % uppercase hairline breadth
+lower.stem#:=17/36pt#; % lowercase stem breadth
+lower.cap_stem#:=21/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=20/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.4/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=38/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccam9.mf b/Master/texmf-dist/fonts/source/public/concmath/xccam9.mf
new file mode 100644
index 00000000000..1b434fb31d7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccam9.mf
@@ -0,0 +1,140 @@
+% Concrete version of msam9, the first extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCAM"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=20/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=20/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% include these parameters to shrink R and S so they fit inside a circle
+% (parameters taken from msam9 without further tuning for Concrete)
+
+lower.u#:=14.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.4/36pt#;% extra sidebar near uppercase serifs
+lower.letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=173/36pt#; % height of tallest characters
+lower.cap_height#:=170.4/36pt#; % height of caps
+lower.x_height#:=100.5/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=56.3/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=45/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.6/36pt#; % uppercase hairline breadth
+lower.stem#:=19/36pt#; % lowercase stem breadth
+lower.cap_stem#:=23.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=28/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=6.2/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=45/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsya % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccbm10.mf b/Master/texmf-dist/fonts/source/public/concmath/xccbm10.mf
new file mode 100644
index 00000000000..85dda8e0622
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccbm10.mf
@@ -0,0 +1,106 @@
+% Concrete version of msbm10, the second extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCBM"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccbm5.mf b/Master/texmf-dist/fonts/source/public/concmath/xccbm5.mf
new file mode 100644
index 00000000000..7c1b08ea0cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccbm5.mf
@@ -0,0 +1,106 @@
+% Concrete version of msbm5, the second extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCBM"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=82.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=11/36pt#; % width of extrafine details
+hair#:=14/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=17/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=14/36pt#; % uppercase hairline breadth
+cap_stem#:=17/36pt#; % uppercase stem breadth
+cap_curve#:=18/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=18/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=14/36pt#; % vertical diameter of hairlines
+notch_cut#:=15/36pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/5; % subscripts to 5pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+3/36pt#, % num2
+ math_axis#+1.51rth#+24/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-63/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-3/36pt#), % denom2
+ 5.99pt#-subs*asc_height#, % sup1
+ 5.49pt#-subs*asc_height#, % sup2
+ 53/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 9.9pt#, % delim1
+ 7.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccbm6.mf b/Master/texmf-dist/fonts/source/public/concmath/xccbm6.mf
new file mode 100644
index 00000000000..62053d37a4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccbm6.mf
@@ -0,0 +1,106 @@
+% Concrete version of msbm6, the second extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCBM"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=99/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=12/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=19/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=15/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=20/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/6; % subscripts to 6pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+9/36pt#, % num2
+ math_axis#+1.51rth#+29/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-74/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-9/36pt#), % denom2
+ 6.49pt#-subs*asc_height#, % sup1
+ 5.99pt#-subs*asc_height#, % sup2
+ 62/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccbm7.mf b/Master/texmf-dist/fonts/source/public/concmath/xccbm7.mf
new file mode 100644
index 00000000000..89538e3933b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccbm7.mf
@@ -0,0 +1,106 @@
+% Concrete version of msbm7, the second extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCBM"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=115.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=20/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=22.5/36pt#; % uppercase curve breadth
+cap_ess#:=21.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=17/36pt#; % vertical diameter of hairlines
+notch_cut#:=21/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccbm8.mf b/Master/texmf-dist/fonts/source/public/concmath/xccbm8.mf
new file mode 100644
index 00000000000..1c49c7a07a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccbm8.mf
@@ -0,0 +1,106 @@
+% Concrete version of msbm8, the second extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCBM"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=132/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=19/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccbm9.mf b/Master/texmf-dist/fonts/source/public/concmath/xccbm9.mf
new file mode 100644
index 00000000000..41af96a62f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccbm9.mf
@@ -0,0 +1,106 @@
+% Concrete version of msbm9, the second extra symbol font in AMSFonts 2.x.
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCBM"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=20/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=20/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate amsyb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccex10.mf b/Master/texmf-dist/fonts/source/public/concmath/xccex10.mf
new file mode 100644
index 00000000000..55f9e391197
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccex10.mf
@@ -0,0 +1,95 @@
+% Concrete Math Extension 10 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCEX"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 40/36pt#, % big\_op\_spacing1
+ 60/36pt#, % big\_op\_spacing2
+ 72/36pt#, % big\_op\_spacing3
+ 216/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccex7.mf b/Master/texmf-dist/fonts/source/public/concmath/xccex7.mf
new file mode 100644
index 00000000000..1ee36f5e5b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccex7.mf
@@ -0,0 +1,95 @@
+% Concrete Math Extension 7 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCEX"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=115.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=20/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=22.5/36pt#; % uppercase curve breadth
+cap_ess#:=21.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=17/36pt#; % vertical diameter of hairlines
+notch_cut#:=21/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 28/36pt#, % big\_op\_spacing1
+ 42/36pt#, % big\_op\_spacing2
+ 50.4/36pt#, % big\_op\_spacing3
+ 154/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccex8.mf b/Master/texmf-dist/fonts/source/public/concmath/xccex8.mf
new file mode 100644
index 00000000000..18da070353f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccex8.mf
@@ -0,0 +1,95 @@
+% Concrete Math Extension 8 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCEX"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=132/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=19/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 32/36pt#, % big\_op\_spacing1
+ 48/36pt#, % big\_op\_spacing2
+ 57.6/36pt#, % big\_op\_spacing3
+ 175/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccex9.mf b/Master/texmf-dist/fonts/source/public/concmath/xccex9.mf
new file mode 100644
index 00000000000..534207e7037
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccex9.mf
@@ -0,0 +1,95 @@
+% Concrete Math Extension 9 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCEX"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=20/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=20/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 36/36pt#, % big\_op\_spacing1
+ 54/36pt#, % big\_op\_spacing2
+ 64.8/36pt#, % big\_op\_spacing3
+ 196/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccmi10.mf b/Master/texmf-dist/fonts/source/public/concmath/xccmi10.mf
new file mode 100644
index 00000000000..343a6fd8e8c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccmi10.mf
@@ -0,0 +1,86 @@
+% Concrete Math Italic 10 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCMI"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccmi5.mf b/Master/texmf-dist/fonts/source/public/concmath/xccmi5.mf
new file mode 100644
index 00000000000..97ee8066b18
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccmi5.mf
@@ -0,0 +1,86 @@
+% Concrete Math Italic 5 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCMI"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=82.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=11/36pt#; % width of extrafine details
+hair#:=14/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=17/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=14/36pt#; % uppercase hairline breadth
+cap_stem#:=17/36pt#; % uppercase stem breadth
+cap_curve#:=18/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=18/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=14/36pt#; % vertical diameter of hairlines
+notch_cut#:=15/36pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccmi6.mf b/Master/texmf-dist/fonts/source/public/concmath/xccmi6.mf
new file mode 100644
index 00000000000..c613b76d2cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccmi6.mf
@@ -0,0 +1,86 @@
+% Concrete Math Italic 6 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCMI"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=99/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=12/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=19/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=15/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=20/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccmi7.mf b/Master/texmf-dist/fonts/source/public/concmath/xccmi7.mf
new file mode 100644
index 00000000000..4d147212394
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccmi7.mf
@@ -0,0 +1,86 @@
+% Concrete Math Italic 7 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCMI"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=115.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=20/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=22.5/36pt#; % uppercase curve breadth
+cap_ess#:=21.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=17/36pt#; % vertical diameter of hairlines
+notch_cut#:=21/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccmi8.mf b/Master/texmf-dist/fonts/source/public/concmath/xccmi8.mf
new file mode 100644
index 00000000000..cb17c29ecc4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccmi8.mf
@@ -0,0 +1,86 @@
+% Concrete Math Italic 8 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCMI"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=132/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=19/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccmi9.mf b/Master/texmf-dist/fonts/source/public/concmath/xccmi9.mf
new file mode 100644
index 00000000000..de9d449d439
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccmi9.mf
@@ -0,0 +1,86 @@
+% Concrete Math Italic 9 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCMI"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=20/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=20/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccsy10.mf b/Master/texmf-dist/fonts/source/public/concmath/xccsy10.mf
new file mode 100644
index 00000000000..9228d8e3b6e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccsy10.mf
@@ -0,0 +1,106 @@
+% Concrete Math Symbols 10 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCSY"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccsy5.mf b/Master/texmf-dist/fonts/source/public/concmath/xccsy5.mf
new file mode 100644
index 00000000000..5df88eecfa5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccsy5.mf
@@ -0,0 +1,106 @@
+% Concrete Math Symbols 5 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCSY"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=82.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=11/36pt#; % width of extrafine details
+hair#:=14/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=17/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=14/36pt#; % uppercase hairline breadth
+cap_stem#:=17/36pt#; % uppercase stem breadth
+cap_curve#:=18/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=18/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=14/36pt#; % vertical diameter of hairlines
+notch_cut#:=15/36pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/5; % subscripts to 5pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+3/36pt#, % num2
+ math_axis#+1.51rth#+24/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-63/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-3/36pt#), % denom2
+ 5.99pt#-subs*asc_height#, % sup1
+ 5.49pt#-subs*asc_height#, % sup2
+ 53/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 9.9pt#, % delim1
+ 7.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccsy6.mf b/Master/texmf-dist/fonts/source/public/concmath/xccsy6.mf
new file mode 100644
index 00000000000..8be89810b87
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccsy6.mf
@@ -0,0 +1,106 @@
+% Concrete Math Symbols 6 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCSY"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=99/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=12/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=19/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=15/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=20/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/6; % subscripts to 6pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+9/36pt#, % num2
+ math_axis#+1.51rth#+29/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-74/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-9/36pt#), % denom2
+ 6.49pt#-subs*asc_height#, % sup1
+ 5.99pt#-subs*asc_height#, % sup2
+ 62/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccsy7.mf b/Master/texmf-dist/fonts/source/public/concmath/xccsy7.mf
new file mode 100644
index 00000000000..21351553bf3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccsy7.mf
@@ -0,0 +1,106 @@
+% Concrete Math Symbols 7 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCSY"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=115.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=20/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=22.5/36pt#; % uppercase curve breadth
+cap_ess#:=21.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=17/36pt#; % vertical diameter of hairlines
+notch_cut#:=21/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccsy8.mf b/Master/texmf-dist/fonts/source/public/concmath/xccsy8.mf
new file mode 100644
index 00000000000..736b51ee953
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccsy8.mf
@@ -0,0 +1,106 @@
+% Concrete Math Symbols 8 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCSY"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=132/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=19/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concmath/xccsy9.mf b/Master/texmf-dist/fonts/source/public/concmath/xccsy9.mf
new file mode 100644
index 00000000000..5398a18759a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concmath/xccsy9.mf
@@ -0,0 +1,106 @@
+% Concrete Math Symbols 9 point
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This file is part of the `concmath' package.
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCSY"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=20/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=20/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathsy % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/cccsc10.mf b/Master/texmf-dist/fonts/source/public/concrete/cccsc10.mf
new file mode 100644
index 00000000000..3e82a4e05df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/cccsc10.mf
@@ -0,0 +1,110 @@
+% Concrete Math Roman Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=21/36pt#; % uppercase hairline breadth
+lower.stem#:=23/36pt#; % lowercase stem breadth
+lower.cap_stem#:=24/36pt#; % uppercase stem breadth
+lower.cap_curve#:=26/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=21/36pt#; % serif and arm thickness
+lower.cap_bar#:=21/36pt#; % uppercase bar thickness
+lower.cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=27/36pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=.93; % factor applied to weights of heavy characters
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccmi10.mf b/Master/texmf-dist/fonts/source/public/concrete/ccmi10.mf
new file mode 100644
index 00000000000..58e340fb117
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccmi10.mf
@@ -0,0 +1,75 @@
+% Concrete Math Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCMI"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccmic9.mf b/Master/texmf-dist/fonts/source/public/concrete/ccmic9.mf
new file mode 100644
index 00000000000..91e93d78b9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccmic9.mf
@@ -0,0 +1,75 @@
+% Concrete Slanted Condensed Oldstyle Digits 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCMIC"; font_size 9pt#;
+
+u#:=16/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=16/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=16/36pt#; % uppercase hairline breadth
+cap_stem#:=23/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=16/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=5/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate odigs % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccr10.mf b/Master/texmf-dist/fonts/source/public/concrete/ccr10.mf
new file mode 100644
index 00000000000..630a9edf45c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccr10.mf
@@ -0,0 +1,75 @@
+% Concrete Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCR"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccr5.mf b/Master/texmf-dist/fonts/source/public/concrete/ccr5.mf
new file mode 100644
index 00000000000..f2927069be6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccr5.mf
@@ -0,0 +1,75 @@
+% Concrete Roman 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCR"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=82.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=11/36pt#; % width of extrafine details
+hair#:=14/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=17/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=14/36pt#; % uppercase hairline breadth
+cap_stem#:=17/36pt#; % uppercase stem breadth
+cap_curve#:=18/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=18/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=14/36pt#; % vertical diameter of hairlines
+notch_cut#:=15/36pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccr6.mf b/Master/texmf-dist/fonts/source/public/concrete/ccr6.mf
new file mode 100644
index 00000000000..f6d0cebeef9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccr6.mf
@@ -0,0 +1,75 @@
+% Concrete Roman 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCR"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=99/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=12/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=19/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=15/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=20/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccr7.mf b/Master/texmf-dist/fonts/source/public/concrete/ccr7.mf
new file mode 100644
index 00000000000..8d6255249ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccr7.mf
@@ -0,0 +1,75 @@
+% Concrete Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCR"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=115.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=20/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=22.5/36pt#; % uppercase curve breadth
+cap_ess#:=21.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=17/36pt#; % vertical diameter of hairlines
+notch_cut#:=21/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccr8.mf b/Master/texmf-dist/fonts/source/public/concrete/ccr8.mf
new file mode 100644
index 00000000000..4b78beb62e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccr8.mf
@@ -0,0 +1,75 @@
+% Concrete Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCR"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=132/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=19/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccr9.mf b/Master/texmf-dist/fonts/source/public/concrete/ccr9.mf
new file mode 100644
index 00000000000..03ca68075a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccr9.mf
@@ -0,0 +1,75 @@
+% Concrete Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCR"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=20/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=20/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccsl10.mf b/Master/texmf-dist/fonts/source/public/concrete/ccsl10.mf
new file mode 100644
index 00000000000..9adc55ef9d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccsl10.mf
@@ -0,0 +1,75 @@
+% Concrete Slanted Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCSL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccsl9.mf b/Master/texmf-dist/fonts/source/public/concrete/ccsl9.mf
new file mode 100644
index 00000000000..d848ad97580
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccsl9.mf
@@ -0,0 +1,75 @@
+% Concrete Slanted Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCSL"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=20/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=20/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccslc9.mf b/Master/texmf-dist/fonts/source/public/concrete/ccslc9.mf
new file mode 100644
index 00000000000..4f61534e7ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccslc9.mf
@@ -0,0 +1,75 @@
+% Concrete Slanted Condensed Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCSLC"; font_size 9pt#;
+
+u#:=16/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=16/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=16/36pt#; % uppercase hairline breadth
+cap_stem#:=23/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=16/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=5/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/ccti10.mf b/Master/texmf-dist/fonts/source/public/concrete/ccti10.mf
new file mode 100644
index 00000000000..2b2bc504e59
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/ccti10.mf
@@ -0,0 +1,75 @@
+% Concrete Text Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CCTI"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=11/36pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate textit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/concrete/odigs.mf b/Master/texmf-dist/fonts/source/public/concrete/odigs.mf
new file mode 100644
index 00000000000..2b65df8e30e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/concrete/odigs.mf
@@ -0,0 +1,11 @@
+% Computer Modern Oldstyle Digits Only
+
+font_coding_scheme:="Numerals only";
+mode_setup; font_setup;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u#+4letter_fit#;
+
+input olddig; % oldstyle numerals
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/croatian/bass.mf b/Master/texmf-dist/fonts/source/public/croatian/bass.mf
new file mode 100644
index 00000000000..e47c2d919ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/bass.mf
@@ -0,0 +1,67 @@
+
+% Croatian Glagolitic
+% Basska plate, 11th century
+% 1995, darko.zubrinic@etf.hr
+
+% x = trokutasti a
+% 1 = trokutasti a (bez horizontalne precckice) -- Sumpetarski odlm.
+% j = sljubljeni kljucc (vidi Fuccich, Gl.natpisi str. 13,
+ % nastaje i gubi se u 13.st
+% 3, 4 = tvrdi znak (dvije varijante), prva je kao kljucc
+
+% BASSCCANSKA PLOCCA, mala slova su glagoljiccka, velika lat.
+% sijeccanj 95.
+
+
+Pt#:=4/3pt#;
+
+mode_setup;
+ u#:=.8Pt#; font_quad= 24u#;
+ font_normal_space= 10u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=10Pt#; cap#:=7Pt#;
+ thin#:=2/3Pt#; thick#:=.9*5/6Pt#;
+ o#:=1/5Pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:= round 1.1*1/10em;
+
+
+\input basscc
+
+mode_setup;
+Pt#:=3/4Pt#;
+ u#:=.8Pt#; font_quad= 24u#;
+ font_normal_space= 8u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=10Pt#; cap#:=7Pt#;
+ thin#:=2/3Pt#; thick#:=.9*5/6Pt#;
+ o#:=1/5Pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+
+
+\input glz
+
+u#:=4/3u#;
+
+ligtable "c": "c" =: oct"013", "h" =: oct"011";
+ligtable "C": "C" =: oct"023";
+ligtable "s": "s" =: oct"014"; %umjesto sh
+ligtable "z": "z" =: oct"015", "o" kern -.5u#,
+ "u" kern -.5u#;
+%ligtable "d": "d" =: oct"016"; % "d" =: oct"012";
+ligtable "y": "a" =: "w", "e" =: "w", "u" =: oct"004";
+ligtable "-": "-" =: oct"173";
+%ligtable "e": "i" kern -.5u#;
+%ligtable "f": "o" kern -u#, "u" kern -u#, "i" kern -.5u#, "g" kern-.5u#;
+%ligtable "i": "f" kern -.5u#;
+%ligtable "r": "k" kern -.5u#;
+%ligtable "n": "a" kern -.5u#;
+%ligtable "j": "a" kern -.5u#;
+
+end.
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/bass10.mf b/Master/texmf-dist/fonts/source/public/croatian/bass10.mf
new file mode 100644
index 00000000000..250d27e3de9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/bass10.mf
@@ -0,0 +1,51 @@
+
+% Croatian Glagolitic
+% Basska plate, 11th century
+% 1995, darko.zubrinic@etf.hr
+
+% x = trokutasti a
+% 1 = trokutasti a (bez horizontalne precckice) -- Sumpetarski odlm.
+% j = sljubljeni kljucc (vidi Fuccich, Gl.natpisi str. 13,
+ % nastaje i gubi se u 13.st
+% 3, 4 = tvrdi znak (dvije varijante), prva je kao kljucc
+
+% BASSCCANSKA PLOCCA, mala slova su glagoljiccka, velika lat.
+% sijeccanj 95.
+
+
+mode_setup;
+ font_size 10pt#;
+ u#:=.8pt#; font_quad= 24u#;
+ font_normal_space= 10u#; %9
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 2u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=.9*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=round 1.1*1/10em; %1.1
+
+
+
+\input basscc
+
+\input glz
+
+ligtable "c": "c" =: oct"013", "h" =: oct"011";
+ligtable "C": "C" =: oct"023";
+ligtable "s": "s" =: oct"014"; %umjesto sh
+ligtable "z": "z" =: oct"015", "o" kern -.5u#,
+ "u" kern -.5u#;
+%ligtable "d": "d" =: oct"016"; % "d" =: oct"012";
+ligtable "y": "a" =: "w", "e" =: "w", "u" =: oct"004";
+ligtable "-": "-" =: oct"173";
+%ligtable "e": "i" kern -.5u#;
+%ligtable "f": "o" kern -u#, "u" kern -u#, "i" kern -.5u#, "g" kern-.5u#;
+%ligtable "i": "f" kern -.5u#;
+%ligtable "r": "k" kern -.5u#;
+%ligtable "n": "a" kern -.5u#;
+%ligtable "j": "a" kern -.5u#;
+
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/basscc.mf b/Master/texmf-dist/fonts/source/public/croatian/basscc.mf
new file mode 100644
index 00000000000..f1230c2db6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/basscc.mf
@@ -0,0 +1,637 @@
+
+
+beginchar("x",.7em#,cap#,0); "The letter x->az (Bassch)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+c:=curve_sidebar;
+x1=x2=x3=
+w-x4=
+w-x5=
+w-x6=
+w-x7=
+w-x8=c;
+y3=y4=0; y2=y7=.5h; y1=y5=h;
+y6-y7=y7-y8=.01h;
+draw z6--z1--z3--z8; draw z2--z7; draw z4--z5;
+endchar;
+
+
+beginchar("1",.9em#,cap#,0); "The letter 1->az (Sup.odl.)"; % Supetarski odlomak
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+c:=curve_sidebar;
+kk:=1.2;
+x1=x2=x3=
+w-kk*x4=
+w-kk*x5=
+w-kk*x6=
+w-kk*x7=
+w-kk*x8=c;
+y3=y4=0;
+ y2=y7=.5h;
+ y1=y5=h;
+y6-y7=y7-y8=0; %.13h;
+z55=(w-curve_sidebar,h);
+z44=(x55,0);
+draw z6--z1--z3--z8; %draw z2--z7;
+draw z44--z4--z5--z55;
+endchar;
+
+
+
+
+beginchar("a",.9em#,cap#,0); "The letter a";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+ficlek:=.17w;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x6=x7=.5w;
+x5=x8=x6+ficlek;
+y5=y6=0; y7=y8=h; y2=y3=.5h; y2-y1=y3-y4=ficlek;
+draw z1--z2--z3--z4;
+draw z5--z6--z7--z8;
+endchar;
+
+
+beginchar("b",.9em#,cap#,0); "The letter b";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x3=x8=w-x7=w-x5=w-x10=curve_sidebar;
+x1=x9=.18w; x2=.8w; x4=x6=.5w;
+y1=y2=0;
+y10=-.1h; y8=y6=y7=h; y3=y9=y4=y5=.5h;
+draw z8--z3--z5--z7; draw z4--z6;
+draw z9--z1--z2{right}..{down}z10;
+endchar;
+
+
+beginchar("v",1.2em#,cap#,0); "The letter v";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+rr:=.15w;
+z5=(rr+curve_sidebar,h-rr); z6=(w-rr-curve_sidebar,h-rr);
+draw fullcircle scaled 2rr shifted z5;
+draw fullcircle scaled 2rr shifted z6;
+z55=(x5,y5-rr); z66=(x6,y6-rr);
+z3-z5=(z55-z5) rotated 10;
+z4-z6=(z66-z6) rotated -10;
+y1=y2=0; z1-z5=whatever*(z3-z5);
+ z2-z6=whatever*(z4-z6);
+draw z3--z1--z2--z4;
+%x1=w-x3=w-x4=curve_sidebar; x8-x1=x7-x2=x3-x6=.28w;
+picture slovo_v; slovo_v=currentpicture;
+endchar;
+
+beginchar("d",1.2em#,cap#,0); "The letter d";
+transform t; t=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also slovo_v transformed t;
+endchar;
+
+
+
+
+beginchar("V",.7em#,cap#,0); "The letter V (grcc)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=w-x2=curve_sidebar;
+x1=x4=x5=x6; x2=x3=x8=x7;
+y1=y2=0;
+y6=y7=h;
+y6-y5=.9(y5-y4)=y4-y1;
+y5=y8; y4=y3;
+draw z5--z8--z7--z6--z1--z2--z3--z4;
+endchar;
+
+
+beginchar("g",1.4em#,cap#,0); "The letter g";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x2=w-x7=w-x8=curve_sidebar;
+x9=x6=.65w;
+x4=x3=.45w;
+x5=.2w;
+y5=-.05h; y9=y8=0; y3=h;
+y1=y4=y6=y7=.5h;
+y2=.8h;
+draw z5--z4--z3--z2--z1--z7--z8--z9--z6;
+endchar;
+
+
+
+beginchar("e",.7em#,cap#,0); "The letter e";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x5=x4=w-x2=w-x3=w-x6=curve_sidebar;
+y1=y2=0; y3=y4=h; y5=y6=.5h;
+draw z1--z2--z3--z4;
+draw z5--z6;
+endchar;
+
+beginchar("E",1.2em#,cap#,0); "The letter E (plominski)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x5=x4=x7=w-x6=w-x8=curve_sidebar;
+x2=x3=.5w;
+k:=.15;
+y1=y2=0; y3=y4=h;
+y5=y6=(.5+k)*h;
+y7=y8=(.5-k)*h;
+draw z1--z2--z3--z4;
+draw z5--z6;
+draw z7--z8;
+endchar;
+
+
+
+beginchar(oct"015",1.06em#,cap#,0); "The letter zz";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x3=x4=w-x6=w-x5=curve_sidebar;
+x2-x3=x7-x2=x6-x7; x1=x2; x8=x7;
+y3=y2=y7=y6=0; y1=y8=h; y4=y5=.5h;
+draw z1--z2--z3--z4--z5--z6--z7--z8;
+endchar;
+
+
+beginchar("z",1.2em#,cap#,0); "The letter z";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x4=x5=w-x7=w-x8=curve_sidebar;
+x9-x2=.8(x8-x9);
+x8-x9=.9(x2-x1);
+x3=x2; x6=x9;
+y1=y2=y9=y8=0;
+y5=y6=y7=.5h;
+y4=y3=h;
+draw z1--z4--z3--z2--cycle; draw z5--z7--z8--z9--z6;
+endchar;
+
+
+
+beginchar("i",.9em#,cap#,0); "The letter i";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=w-x2=curve_sidebar; x3=.5w;
+x6-x1=x2-x7=.2w;
+x5=w-x4=.5[x1,x6];
+y3=0; y1=y6=y7=y2=.5h;
+y5=y4=h;
+y11=.3h; z11=(x1,y11); z22=(x2,y11);
+x32-x3=x3-x31=.3w; z32=(x32,0); z31=(x31,0);
+draw z6--z5--z4--z7;
+draw z1--z2{down}..controls z22 and z32..
+{left}z3..controls z31 and z11..{up}z1;
+endchar;
+
+beginchar("I",.4em#,cap#,0); "The letter I (latiniccni)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x4=w-x2=w-x6=curve_sidebar; x3=x5=.5w;
+y1=y3=y2=0; y4=y5=y6=h;
+draw z1--z2; draw z3--z5; draw z4--z6;
+endchar;
+
+
+
+beginchar("y",1.1em#,cap#,0); "The letter y";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x5=x6=w-x7=w-x8=curve_sidebar;
+x9-x6=x7-x10=.9(x10-x9);
+x3=x9; x4=x10;
+x3-x1=x2-x4=.06w;
+y1=y2=0;
+y5=y3=y4=y8=.66h;
+y6=y9=y10=y7=h;
+draw z1--z4--z8--z7--z6--z5--z3--z2--cycle;
+draw z3--z9; draw z4--z10;
+endchar;
+
+
+beginchar("j",.9em#,cap#,0); "The letter j";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x7=w-x2=curve_sidebar; x6=x3=x2; x5=x4=.5w;
+y1=y5=y2=0; y4=y3=h; y7=y6=.5h;
+draw z6--z7--z1--z2--z3--z4--z5;
+endchar;
+
+
+beginchar("J",em#,cap#,0); "The letter J -> (Plominski I)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x7=w-x2=w-x6=curve_sidebar;
+x3=.5w;
+y1=y2=0; y7=y6=h;
+y4=y5;
+y3=.85h; % .7
+z8=(x3, h-.8y3);
+z4=(z1--z3)intersectionpoint(z7--z8);
+z5=(z2--z3)intersectionpoint(z6--z8);
+draw z5--z2--z1--z4;
+draw z6--z7--z8--cycle;
+endchar;
+
+
+
+beginchar("k",.8em#,cap#,0); "The letter k";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x2=w-x3=w-x4=curve_sidebar; x1=.2w;
+y4=0; y2=y3=.5h; y1=h;
+draw z1--z2--z3--z4;
+endchar;
+
+
+beginchar("K",.8em#,cap#,0); "The letter K (Sup.odl.)"; % Supetarski odlomak
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5=x6=.4w;
+y6=y4=0; y2=y3=.5h; y1=h;
+y5=.35h;
+draw z1--z2--z3--z4; draw z5--z6;
+endchar;
+
+
+
+beginchar("l",1.06em#,cap#,0); "The letter l";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x3=x4=w-x6=w-x5=curve_sidebar;
+x2-x3=x7-x2=x6-x7; x1=x2; x8=x7;
+y3=y2=y7=y6=0; y1=y8=h; y4=y5=.5h;
+draw z1--z2--z3--z4--z5--z6--z7--z8--cycle;
+endchar;
+
+
+beginchar("m",1.6em#,cap#,0); "The letter m";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x10=x12=w-x11=w-x15=curve_sidebar;
+x9=x17=.5w;
+x18-x10=x11-x16=1.2(x17-x18);
+x13=x18; x14=x16;
+x1-x10=x11-x6=.1w;
+x4=x1; x6=x7;
+x2-x1=x6-x5=1(x5-x2);
+x3=x2; x8=x5;
+y1=y2=y5=y6=0;
+y10=y18=y17=y16=y11=h;
+y10-y12=y4-y1=1.2(y12-y4); %.33h;
+y12=y13=y14=y15;
+y4=y3=y9=y8=y7;
+k:=.45;
+z1210=k[z12,z10]; y1318=y1416=y1511=y1210;
+ x1318=x13; x1416=x14; x1511=x15;
+z1213=k[z12,z13]; z1312=k[z13,z12]; z1415=k[z14,z15]; z1514=k[z15,z14];
+z140=k[z1,z4]; z120=k[z1,z2]; z210=k[z2,z1]; z230=k[z2,z3];
+z580=k[z5,z8]; z560=k[z5,z6]; z650=k[z6,z5]; z670=k[z6,z7];
+draw z3--z230{down}..{left}z210--z120{left}..{up}z140
+--z4--z7--
+z670{down}..{left}z650--z560{left}..{up}z580--z8;
+draw z9--z17;
+draw z18--z1318{down}..{left}z1312--z1213{left}..{up}z1210--
+z10--z11--
+z1511{down}..{left}z1514--z1415{left}..{up}z1416--z16;
+endchar;
+
+
+
+beginchar("M",1.1em#,cap#,0); "The letter M (latiniccni)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=w-x5=curve_sidebar; x3=.5w;
+x2-x1=x5-x4=.1[x1,x3];
+y1=y5=0; y2=y4=h; y3=.6h;
+draw z1--z2--z3--z4--z5;
+endchar;
+
+
+beginchar("n",.8em#,cap#,0); "The letter n";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x6=w-x4=curve_sidebar; x5=x3=x2=.4w;
+y1=y2=0; y3=h; y5=y6=.45h;
+y4=.5[y5,y3];
+draw z1--z2--z3{right}..{down}z4..{left}z5--z6;
+endchar;
+
+
+beginchar("N",.8em#,cap#,0); "The letter N (latiniccni)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x5=x2=w-x3=curve_sidebar; x6=x4=x3;
+y2=y3=0; y1=y4=h;
+y1-y5=y6-y3=.2h;
+draw z1--z2; draw z5--z6; draw z3--z4;
+endchar;
+
+
+beginchar("o",.7em#,cap#,0); "The letter o";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x8=x5=x4=w-x2=w-x7=w-x6=w-x3=curve_sidebar;
+y1=y2=0; y3=y4=h;
+y8-y1=y4-y5=.32h;
+y7-y2=y3-y6=.8(y8-y1);
+draw z7--z8--z1--z2--z3--z4--z5--z6;
+endchar;
+
+
+beginchar("O",.8em#,cap#,0); "The letter O";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=w-x3=curve_sidebar;
+k:=.1;
+x2=x4=.5w; y2=k*h; y4=(1-k)*h; y1=y3=.5h;
+draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+endchar;
+
+
+
+beginchar("p",1.08em#,cap#,0); "The letter p";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x4=w-x7=w-x6=curve_sidebar;
+x2-x1=x8-x2=x7-x8; x3=x2; x5=x8;
+y1=y2=y8=y7=0; y4=y3=y5=y6=h;
+draw z1--z2--z3; draw z4--z6--z7--z8--z5;
+endchar;
+
+
+beginchar("P",1.07em#,cap#,0); "The letter P (Plominski nat.)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x8=w-x3=w-x4=curve_sidebar; x1=x2=x7=.15[x8,x3];
+x6=x5=.5[x2,x3];
+y1=-.18h; y8=y7=y5=y4=.5h; y2=y6=y3=h;
+draw z1--z2--z3--z4--z5--z6;
+draw z7--z8;
+endchar;
+
+
+
+beginchar("r",.7em#,cap#,0); "The letter r";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x4=x5=w-x2=curve_sidebar; x6=x3=x2;
+y1=y2=0; y5=y6=h; y3=y4=.5h;
+draw z4--z3--z2--z1--z5--z6;
+endchar;
+
+
+beginchar("s",1.2em#,cap#,0); "The letter s";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x6=w-x7=curve_sidebar; x3=.5w;
+x1-x6=x7-x2=.15w;
+k:=.7;
+y1=y2=0; y6=y7=h;
+y3=.68h;
+z4=k[z1,z3]; z5=k[z2,z3];
+draw z1--z2--z3--cycle;
+draw z4{left}..{up}z6--z7{down}..{left}z5;
+endchar;
+
+
+beginchar("S",em#,cap#,0); "The letter S (Plominski nat.)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x7=w-x2=w-x6=curve_sidebar;
+x3=.5w;
+y1=y2=0; y7=y6=h;
+y4=y5;
+y3=.7h;
+z8=(x3, h-1.2y3);
+z4=(z1--z3)intersectionpoint(z7--z8);
+z5=(z2--z3)intersectionpoint(z6--z8);
+draw z1--z2--z3--cycle;
+draw z4--z7--z6--z5;
+endchar;
+
+
+
+
+beginchar("t",em#,cap#,0); "The letter t";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x4=w-x7=w-x6=curve_sidebar;
+x2-x1=x8-x2=x7-x8; x3=x2; x5=x8;
+y1=y2=y8=y7=.4h; y4=y3=y5=y6=h;
+ draw z3--z2--z1--z4--z6--z7--z8--z5;
+endchar;
+
+
+beginchar("T",em#,cap#,0); "The letter T";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x4=x3=w-x5=w-x6=curve_sidebar;
+x1=x2=.5w;
+y1=0; y3=y2=y5=h; y4=y6=.8h;
+draw z4--z3--z5--z6;
+draw z1--z2;
+endchar;
+
+
+beginchar("c",em#,cap#,0); "The letter c";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x2=w-x4=curve_sidebar; x3=.5w;
+x1=1.1[x2,x3];
+y3=0; y1=y2=h; y4=.4h;
+z5=.55[z2,z3];
+draw z5{dir(20)}..{up}z1--z2--z3--z4;
+endchar;
+
+
+beginchar(oct"013",.9em#,cap#,0); "The letter cc";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x2=w-x3=w-x4=curve_sidebar; x5=x7=w-x6=w-x8=.32w;
+y5=y6=0; y1=y4=h;
+y2=y7=y8=y3=.5h;
+draw z1--z2--z3--z4;
+draw z7--z5--z6--z8;
+endchar;
+
+
+beginchar(oct"023",em#,cap#,0); "The letter CC (neobiccni)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5=x6=.15w; x7=x8=w-x5;
+x9=x11=.33[x6,x7];
+x10=x12=w-x9;
+y1=y11=y12=y3=0;
+y2=y4=h;
+y5=y8=.65h; y6=y7=y9=y10=h-y5;
+x56=x5+.07w;
+z56=(x56,.5h); z78=(w-x56,.5h);
+z55=(z56{up}..z2) intersectionpoint (z5--z8);
+z66=(x55,h-y55); z88=(w-x55,y55); z77=(x88,h-y88);
+draw z1..{up}z56..z2; draw z3..{up}z78..z4;
+draw z55--z88; draw z66--z77; draw z9--z11--z12--z10;
+endchar;
+
+
+
+beginchar(oct"011",.8em#,cap#,0); "The letter ch";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x2=w-x3=curve_sidebar; x3=x6=x7;
+x5=x4=.5w;
+y1=y4=y6=h;
+y2=y3=.5h; y5=y7=0;
+draw z1--z2--z3;
+draw z4--z5--z7--z6;
+endchar;
+
+
+
+beginchar("u",1.2em#,cap#,0); "The letter u";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x10=x6=x5=w-x3=curve_sidebar;
+x2=x9=x8=x7=x4=.46w;
+y1=y2=0; y4=y5=h; y3=y8=.5h;
+y5-y6=y10-y1=.5(y8-y2);
+y4-y7=y9-y2=.7(y10-y1);
+draw z9--z10--z1--z2{right}..{up}z3..{left}z4--z5--z6--z7;
+draw z2--z4; draw z8--z3;
+endchar;
+
+
+beginchar("h",em#,cap#,0); "The letter h";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x2=w-x4=w-x5=curve_sidebar;
+x3=x6=.45w;
+x1=.35[x2,x3];
+y6=y5=0; y1=h; y2=y3=y4=.6h;
+draw z1--z2--z4--z5--z6--z3;
+endchar;
+
+
+beginchar(oct"014",.7em#,cap#,0); "The letter ss";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5=x6=.5w;
+y2=y5=y3=.5h; y1=y6=y4=h;
+draw z1--z2--z3--z4;
+draw z5--z6;
+endchar;
+
+
+beginchar("3",1.2em#,cap#,0); "The letter poluglas";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x4=w-x6=curve_sidebar;
+x8-x2=.8(x2-x1);
+x2-x1=.8(x6-x8);
+x3=x2; x7=x8;
+y1=y2=y8=0;
+y7=h; y4=y3=y6=.5h;
+draw z3--z2--z1--z4--z6;
+draw z8--z7{right}..{down}z6..{left}z8;
+endchar;
+
+
+beginchar("4",1.1em#,cap#,0); "The letter poluglas drugi";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x5=w-x2=curve_sidebar; x1=x3=.6w; x4=.2w;
+y1=0; y4=h; y2=.3[y1,y3]; y5=.8h; y3=.65h;
+draw z3--z1{right}..{up}z2..{dir angle(z4-z3)}z3--z4--z5;
+endchar;
+
+
+beginchar("w",em#,cap#,0); "The letter ya";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=w-x2=curve_sidebar; x6=x5=.5w;
+x5-x4=x3-x5=.12w;
+y1=y6=y2=0; y4=y5=y3=h;
+z7=.45[z1,z4]; z8=.45[z2,z3];
+draw z1--z2--z3--z4--cycle;
+draw z6--z5; draw z7--z8;
+endchar;
+
+
+beginchar(oct"004",1.3em#,cap#,0); "The letter yu";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=w-x3=w-x4=curve_sidebar; x8-x1=x7-x2=x3-x6=.28w;
+x2=.15w;
+x5=x6;
+y5=y4=0; y2=y7=y6=y3=h;
+y1=y8=.5h;
+draw z1--z2--z3--z4--z5--z6; draw z7--z8;
+endchar;
+
+
+beginchar(oct"002",1.5em#,cap#,0); "The letter en";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x4=w-x10=curve_sidebar; x4=x5=x1; x10=x6=x7;
+x3-x4=x10-x9=.3w;
+x3=x2; x9=x8;
+y4=y3=y9=y10=0;
+y5=y6=.5h; y1=y2=y8=y7=h;
+draw z1--z2--z3--z4; draw z7--z8--z9--z10;
+draw z5--z6;
+endchar;
+
+beginchar(oct"135",.36em#,cap#,0); "The letter ]";
+pickup pencircle scaled .6thin;
+x2=x3=w-x1=w-x4=curve_sidebar;
+y2=y1=0-.3h; y3=y4=h+.3h;
+draw z2--z1--z4--z3;
+endchar;
+
+
+beginchar(oct"133",.36em#,cap#,0); "The letter [";
+pickup pencircle scaled .6thin;
+x2=x3=w-x1=w-x4=curve_sidebar;
+y2=y1=0-.3h; y3=y4=h+.3h;
+draw z1--z2--z3--z4;
+endchar;
+
+beginchar("C",.36em#,cap#,0); "The letter C ([)"; % radi CC
+pickup pencircle scaled .6thin;
+x2=x3=w-x1=w-x4=curve_sidebar;
+y2=y1=0-.3h; y3=y4=h+.3h;
+draw z1--z2--z3--z4;
+endchar;
+
+beginchar("A",.75em#,cap#,0); "The letter A(NS) (nostratic)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=w-x2=curve_sidebar;
+x3=x5=x4=x8=.5w; x6=.5w-.2w; y8=h;
+x5-x6=x7-x5=y8-y7=y8-y6=y6-y5;
+y4=y5-.1h; y1=y2=0; y3=-.2h;
+draw z6{up}..{right}z8..{down}z7..{left}z5..cycle;
+draw z1{up}..{right}z4..{down}z2; draw z3--z5;
+endchar;
+
+
+beginchar("B",em#,cap#,0); "The letter B (nostratic)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x3=w-x2=w-x4=curve_sidebar;
+x5=x6=.5w; x7=x10=.3[x3,x6]; x8=x9=.8[x6,x4];
+y1=y5=y2=h; y3=y6=y10=y4=.5h; y7=0; y8=.5y4; y9=-.2h;
+z8l=.7[z7,z8]; z8d=.6[z9,z8];
+draw z1--z3--z4--z2--cycle;
+draw z5--z6; draw z10--z7--z8l{dir angle(z8-z7)}..{down}z8d--z9;
+endchar;
+
+
+beginchar(oct"030",.9em#,cap#,0); "The letter N (valun)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x3=w-x5=curve_sidebar; x2=x7=x4=.4w; x6=.5[x4,x5];
+y1=y2=0; y4=h; y3=y7=y5=.4h; y6=.5[y5,y4];
+draw z1--z2--z4--z5--z3; draw z7--z6;
+endchar;
+
+
+beginchar(oct"031",1.1em#,cap#,0); "The letter YU (valun)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x6=w-x3=w-x2=curve_sidebar; x5=.4w; x4=.6w; x7=0;
+y6=y3=0; y1=y2=y4=y5=h;
+z7-z6=whatever*(z6-z5);
+draw z6--z1--z2--z3--z4; draw z5--z7;
+endchar;
+
+
+beginchar(oct"032",em#,cap#,0); "The letter S (valun)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=y4=.2h; y2=y3=h;
+D:=.5(x4-x1);
+draw fullcircle scaled D shifted(.5w,.5D);
+draw z1--z2--z3--z4;
+endchar;
+
+
+beginchar(oct"033",.8em#,cap#,0); "The letter K (valun)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5=.35[x1,x3]; x6=x1;
+y1=h; y2=y3=.5h; y4=0; y5=.4h; y6=-.1h;
+draw z1--z2--z3--z4;
+draw z5--z6;
+endchar;
+
+
+beginchar(oct"034",1.1em#,cap#,0); "The letter V (valun)";
+pickup pencircle xscaled 1.2thick yscaled .4thin;
+x1=w-x2=curve_sidebar;
+x3=.5w; x4=w-x6=.35w;
+y1=y4=y6=y2=h;
+y3=0;
+path p; p= z1{down}..{right}z3;
+path q; q= z2{down}..{left}z3;
+z5= point .4 of p;
+z7= point .4 of q;
+draw p; draw q;
+draw z1--z4{down}..{dir (180+30)}z5;
+draw z2--z6{down}..{dir (-30)}z7;
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/cal.mf b/Master/texmf-dist/fonts/source/public/croatian/cal.mf
new file mode 100644
index 00000000000..15bfb871374
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/cal.mf
@@ -0,0 +1,268 @@
+
+% Caligraphic Croatian Glagolitic, 1994,
+% darko.zubrinic@etf.hr
+
+mode_setup;
+ u#:=4/3*.8pt#; font_quad= 30u#;
+ font_normal_space= 10u#; %umjesto 8
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=4/3*10pt#; cap#:=4/3*7pt#;
+ thin#:=2/3pt#; thick#:=1.15*5/6pt#;
+ o#:=4/3*1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:= round 1.1*1/10em;
+
+
+
+
+beginchar("A",3/4*1.4em#,cap#,0); "The letter A";
+.5w-x1=x2-.5w; x2-x1=.17w;
+x1=x4; x2=x3=x5;
+y1=y2=good.y 0; y3=y4=good.y h; y5=.9y7=.5h;
+y6=.75h;
+y8=y10=y1+.13h;
+x10=x7=w-curve_sidebar; x6=.8w; x9=.84w;
+x10-x9=1.2(x9-x8);
+z78=.5[z7,z8];
+kut:=45;
+v:=1.1thick*sind kut;
+y9=.5v-.05thin;
+pickup pencircle xscaled 1.3thick yscaled .3thin rotated kut;
+draw z5{dir 50}..{right}z6..{down}z7..
+{down}z8..{right}z9..{dir kut}z10;
+picture aa; aa=currentpicture;
+transform t; t=identity;
+addto currentpicture also aa transformed t;
+transform s; s=identity reflectedabout ((.5w,0),(0.5w,h));
+addto currentpicture also aa transformed s;
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+draw z1--z2--z3--z4--z1;
+endchar;
+
+
+
+
+beginchar("V",1.15em#,cap#,0); "The letter V";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x2=w-x7=curve_sidebar;
+y2=y7=.5(h+y1);
+x4-x2=x5-x4=x7-x5;
+ x4=x1=x3; x5=x8=x6;
+y4=y5=0; y1=y8=.5h;
+y3=y6=h;
+draw z1{left}..{up}z2..{right}z3--z4--z5--z6{right}..{down}z7
+..{left}z8;
+picture vv; vv=currentpicture;
+endchar;
+
+
+
+beginchar("D",1.15em#,cap#,0); "The letter D"; % ???
+transform s; s=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also vv transformed s;
+endchar;
+
+beginchar("Z",1.3em#,cap#,1/3cap#); "The letter Z";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x4=curve_sidebar;
+x1=.15w; x7=.33w; x3=.5w; x6=.55w; x5=.66w;
+y2=-d; y1=.9h; y7=1.1h; y3=.7h; y5=0;
+y4=.5[y5,y3];
+y6=.3[y5,y4];
+kut:=angle(z3-z2)-10;
+draw z1--z2{dir kut}..{up}z3..{left}z7..z1;
+draw z3{dir20}..{down}z4..{left}z5..{up}z6..tension2..z4;
+endchar;
+
+
+
+beginchar("H",1.2em#,cap#,0); "The letter H";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x6=curve_sidebar;
+x4=.35w; x2=.4w; x3=.7w;
+x5=.77w; x8=.65w; x7=.57w;
+y1=-.1h;
+y2=y3=h; y4=.15h; y5=.27h; y6=0; y7=-.1h; y8=.5[y6,y5];
+draw z8--z1--z2--z3--z4{dir angle(z8-z1)}..{right}z5..{down}z6..
+tension2..
+{up}z7..tension1.5..{dir angle(z8-z1)}z8;
+endchar;
+
+
+
+beginchar("I",.68em#,cap#,0); "The letter I";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x3=curve_sidebar;
+y1=h; bot y3=0; z2=(.5w,.55h);
+path p; p= z1{down}..{right}z2..{down}z3;
+draw p;
+transform t; t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also currentpicture transformed t;
+pickup pencircle scaled 1.3 thick;
+erase draw z1{down}..{right}z2..{down}z3;
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+draw p;
+endchar;
+
+
+
+beginchar("K",em#,cap#,0); "The letter K";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x4=x3=w-x5=w-x6=curve_sidebar;
+x1=x2=.5w; y1=y6=0; y4=y5=.5h; y2=y3=h;
+draw z1--z2--z3--z4--z5--z6--z1;
+endchar;
+
+
+beginchar("L",em#,4/3cap#,0); "The letter L";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x5=w-x8=w-x4=curve_sidebar;
+x2=x6=x9=w-x3=w-x7=w-x10=1/3[x1,x4];
+bot y1=bot y2=bot y3=bot y4=0;
+y5=y6=y7=y8=3/4h;
+y9=y10=h;
+draw z1--z2--z9--z10--z3--z4--z8--z5--z1;
+endchar;
+
+
+
+beginchar("M",em#,cap#,0); "The letter M"; %1.1
+ x2=x5=x55=.5w;
+y2=0;
+y7=.6h; y5=h; %.7
+y8=y10=.13h;
+x10=x7=w-curve_sidebar; x9=.84w;
+x10-x9=1.2(x9-x8);
+z78=.5[z7,z8];
+kut:=45;
+v:=1.1thick*sind kut;
+y55=h+.5v-.1thin;
+y9=.5v-.05thin;
+pickup pencircle xscaled 1.1thick yscaled .2thin rotated kut;
+draw z5{right}..{down}z7..
+{down}z8..{right}z9..{dir kut}z10;
+picture aa; aa=currentpicture;
+transform t; t=identity;
+addto currentpicture also aa transformed t;
+transform s; s=identity reflectedabout ((.5w,0),(0.5w,h));
+addto currentpicture also aa transformed s;
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+draw z2--z55;
+endchar;
+
+
+beginchar("N",.8em#,cap#,0); "The letter N";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x3=w-x5=curve_sidebar;
+x2=x4=x6=.4w;
+bot y1=bot y2=0; y3=y4=h; y6=.45h;
+y5=.35[y4,y6];
+draw z4--z2--z1--z3--z4{right}..{down}z5..{dir(180+10)}z6;
+endchar;
+
+beginchar("P",.9em#,cap#,0); "The letter P";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x4=w-x5=w-x7=curve_sidebar;
+x2=x3=.4w;
+x9=.6w; x6=x8=.5[x7,x9];
+bot y1=bot y2=0; y3=y4=y5=y6=h;
+y8=.6h; y9=y7=.5[y6,y8];
+draw z3--z2--z1--z4--z5;
+pickup pencircle xscaled 1.1thick yscaled .3thin;
+draw z6{right}..{down}z7..{left}z8..{up}z9..cycle;
+endchar;
+
+
+
+beginchar("S",1.1em#,cap#,0); "The letter S"; % sa kruzzicem
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x6=w-x8=curve_sidebar;
+x3=x7=.5w;
+x3-x1=x5-x3=.15w;
+x1=x2; x5=x4;
+y2=y4=.4h; %.5
+y1=y5=.1h; y7=h; y6=y8=.5(y2+y7);
+y3=.9y6;
+x1-x11=x55-x5=.2(x3-x2); y11=y55=0;
+draw z1--z2{up}..{right}z3..{down}z4--z5;
+draw z11--z55{dir(180-10)}..{up}z5;
+draw z11{dir10}..{up}z1;
+draw z2{left}..{up}z6..z7..z8..{left}z4;
+pickup pencircle scaled .3thin;
+erase fill fullcircle scaled .15w shifted z7;
+draw fullcircle scaled .1w shifted z7;
+endchar;
+
+
+beginchar("O",.8em#,cap#,0); "The letter O";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x5=w-x4=curve_sidebar;
+x3=x7=x6=.6w;
+bot y3=bot y4=0; y5=y6=h;
+y7=.5[y3,y6];
+y2=.5[y3,y7]; y1=.5[y6,y7];
+draw z3{left}..z2{up}..{right}z7;
+draw z7{left}..{up}z1..{right}z6--z5--z4--z3--z6;
+endchar;
+
+
+
+beginchar("R",.85em#,cap#,0); "The letter R";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x5=w-x3=w-1.2x7=curve_sidebar;
+x2=x4=x6=.4w;
+bot y1=bot y2=0;
+y4=.5h; y3=.5[y4,y2]; y5=y6=y7= h;
+draw z4{right}..{down}z3..{left}z2--z1--z5--z7;
+draw z2--z6;
+endchar;
+
+
+
+beginchar(oct"023",.9em#,cap#,0); "The letter Cc";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x4=curve_sidebar;
+x1=x3=.5w;
+bot y5=bot y6=0; y1=1.03h;
+y3=.45h; y2=y4=.5[y1,y3];
+path p; p=z1{left}..{down}z2..{right}z3..{up}z4..{left}z1;
+z9 =point .3 of p;
+z11=point 3.7 of p;
+z10-z9=z12-z11=(0,.1h);
+x5=w-x6=x7;
+z7=point 1.7 of p;
+z8=point 2.3 of p;
+draw p; draw z1--z3; draw z7--z5--z6--z8;
+draw z9--z10; draw z11--z12;
+endchar;
+
+
+
+
+
+beginchar("s",em#,1.02cap#,0); "The letter s";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; bot y1=bot y2=bot y3=bot y4=0; top y7=h; y5=y6=.4h;
+x3-x1=x2-x4=.05w; x7=w/2; z5=whatever[z3,z7]; z6=whatever[z4,z7];
+x8=w-x9=x3; y8=y9=.5(y5+y7); draw z1--z2; draw
+z3--z5{z5-z3}..tension2..{z4-z6}z6--z4; draw
+z5..{up}z8..{right}z7..{down}z9..z6; endchar;
+
+
+beginchar("C",em#,1.02cap#,0); "The letter C, fiktivni";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; bot y1=bot y2=bot y3=bot y4=0; top y7=h; y5=y6=.4h;
+x3-x1=x2-x4=.05w; x7=w/2; z5=whatever[z3,z7]; z6=whatever[z4,z7];
+x8=w-x9=x3; y8=y9=.5(y5+y7); draw z1--z2; draw
+z3--z5{z5-z3}..tension2..{z4-z6}z6--z4; draw
+z5..{up}z8..{right}z7..{down}z9..z6; endchar;
+
+
+ligtable "C": "C" =: oct"023";
+
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/croatian/cal10.mf b/Master/texmf-dist/fonts/source/public/croatian/cal10.mf
new file mode 100644
index 00000000000..591b61fb11b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/cal10.mf
@@ -0,0 +1,267 @@
+
+
+mode_setup;
+ font_size 10pt#;
+ u#:=.8pt#; font_quad= 24u#;
+ font_normal_space= 9u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 2u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=.9*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=round 1.1*1/10em;
+
+
+
+
+beginchar("A",3/4*1.4em#,cap#,0); "The letter A";
+.5w-x1=x2-.5w; x2-x1=.17w;
+x1=x4; x2=x3=x5;
+y1=y2=good.y 0; y3=y4=good.y h; y5=.9y7=.5h;
+y6=.75h;
+y8=y10=y1+.13h;
+x10=x7=w-curve_sidebar; x6=.8w; x9=.84w;
+x10-x9=1.2(x9-x8);
+z78=.5[z7,z8];
+kut:=45;
+v:=1.1thick*sind kut;
+y9=.5v-.05thin;
+pickup pencircle xscaled 1.3thick yscaled .3thin rotated kut;
+draw z5{dir 50}..{right}z6..{down}z7..
+{down}z8..{right}z9..{dir kut}z10;
+picture aa; aa=currentpicture;
+transform t; t=identity;
+addto currentpicture also aa transformed t;
+transform s; s=identity reflectedabout ((.5w,0),(0.5w,h));
+addto currentpicture also aa transformed s;
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+draw z1--z2--z3--z4--z1;
+endchar;
+
+
+
+
+beginchar("V",1.15em#,cap#,0); "The letter V";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x2=w-x7=curve_sidebar;
+y2=y7=.5(h+y1);
+x4-x2=x5-x4=x7-x5;
+ x4=x1=x3; x5=x8=x6;
+y4=y5=0; y1=y8=.5h;
+y3=y6=h;
+draw z1{left}..{up}z2..{right}z3--z4--z5--z6{right}..{down}z7
+..{left}z8;
+picture vv; vv=currentpicture;
+endchar;
+
+
+
+beginchar("D",1.15em#,cap#,0); "The letter D"; % ???
+transform s; s=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also vv transformed s;
+endchar;
+
+beginchar("Z",1.3em#,cap#,1/3cap#); "The letter Z";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x4=curve_sidebar;
+x1=.15w; x7=.33w; x3=.5w; x6=.55w; x5=.66w;
+y2=-d; y1=.9h; y7=1.1h; y3=.7h; y5=0;
+y4=.5[y5,y3];
+y6=.3[y5,y4];
+kut:=angle(z3-z2)-10;
+draw z1--z2{dir kut}..{up}z3..{left}z7..z1;
+draw z3{dir20}..{down}z4..{left}z5..{up}z6..tension2..z4;
+endchar;
+
+
+
+beginchar("H",1.2em#,cap#,0); "The letter H";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x6=curve_sidebar;
+x4=.35w; x2=.4w; x3=.7w;
+x5=.77w; x8=.65w; x7=.57w;
+y1=-.1h;
+y2=y3=h; y4=.15h; y5=.27h; y6=0; y7=-.1h; y8=.5[y6,y5];
+draw z8--z1--z2--z3--z4{dir angle(z8-z1)}..{right}z5..{down}z6..
+tension2..
+{up}z7..tension1.5..{dir angle(z8-z1)}z8;
+endchar;
+
+
+
+beginchar("I",.68em#,cap#,0); "The letter I";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x3=curve_sidebar;
+y1=h; bot y3=0; z2=(.5w,.55h);
+path p; p= z1{down}..{right}z2..{down}z3;
+draw p;
+transform t; t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also currentpicture transformed t;
+pickup pencircle scaled 1.3 thick;
+erase draw z1{down}..{right}z2..{down}z3;
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+draw p;
+endchar;
+
+
+
+beginchar("K",em#,cap#,0); "The letter K";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x4=x3=w-x5=w-x6=curve_sidebar;
+x1=x2=.5w; y1=y6=0; y4=y5=.5h; y2=y3=h;
+draw z1--z2--z3--z4--z5--z6--z1;
+endchar;
+
+
+beginchar("L",em#,4/3cap#,0); "The letter L";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x5=w-x8=w-x4=curve_sidebar;
+x2=x6=x9=w-x3=w-x7=w-x10=1/3[x1,x4];
+bot y1=bot y2=bot y3=bot y4=0;
+y5=y6=y7=y8=3/4h;
+y9=y10=h;
+draw z1--z2--z9--z10--z3--z4--z8--z5--z1;
+endchar;
+
+
+
+beginchar("M",em#,cap#,0); "The letter M"; %1.1
+ x2=x5=x55=.5w;
+y2=0;
+y7=.6h; y5=h; %.7
+y8=y10=.13h;
+x10=x7=w-curve_sidebar; x9=.84w;
+x10-x9=1.2(x9-x8);
+z78=.5[z7,z8];
+kut:=45;
+v:=1.1thick*sind kut;
+y55=h+.5v-.1thin;
+y9=.5v-.05thin;
+pickup pencircle xscaled 1.1thick yscaled .2thin rotated kut;
+draw z5{right}..{down}z7..
+{down}z8..{right}z9..{dir kut}z10;
+picture aa; aa=currentpicture;
+transform t; t=identity;
+addto currentpicture also aa transformed t;
+transform s; s=identity reflectedabout ((.5w,0),(0.5w,h));
+addto currentpicture also aa transformed s;
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+draw z2--z55;
+endchar;
+
+
+beginchar("N",.8em#,cap#,0); "The letter N";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x3=w-x5=curve_sidebar;
+x2=x4=x6=.4w;
+bot y1=bot y2=0; y3=y4=h; y6=.45h;
+y5=.35[y4,y6];
+draw z4--z2--z1--z3--z4{right}..{down}z5..{dir(180+10)}z6;
+endchar;
+
+beginchar("P",.9em#,cap#,0); "The letter P";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x4=w-x5=w-x7=curve_sidebar;
+x2=x3=.4w;
+x9=.6w; x6=x8=.5[x7,x9];
+bot y1=bot y2=0; y3=y4=y5=y6=h;
+y8=.6h; y9=y7=.5[y6,y8];
+draw z3--z2--z1--z4--z5;
+pickup pencircle xscaled 1.1thick yscaled .3thin;
+draw z6{right}..{down}z7..{left}z8..{up}z9..cycle;
+endchar;
+
+
+
+beginchar("S",1.1em#,cap#,0); "The letter S"; % sa kruzzicem
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x6=w-x8=curve_sidebar;
+x3=x7=.5w;
+x3-x1=x5-x3=.15w;
+x1=x2; x5=x4;
+y2=y4=.4h; %.5
+y1=y5=.1h; y7=h; y6=y8=.5(y2+y7);
+y3=.9y6;
+x1-x11=x55-x5=.2(x3-x2); y11=y55=0;
+draw z1--z2{up}..{right}z3..{down}z4--z5;
+draw z11--z55{dir(180-10)}..{up}z5;
+draw z11{dir10}..{up}z1;
+draw z2{left}..{up}z6..z7..z8..{left}z4;
+pickup pencircle scaled .3thin;
+erase fill fullcircle scaled .1w shifted z7;
+draw fullcircle scaled .15w shifted z7;
+endchar;
+
+
+beginchar("O",.8em#,cap#,0); "The letter O";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x5=w-x4=curve_sidebar;
+x3=x7=x6=.6w;
+bot y3=bot y4=0; y5=y6=h;
+y7=.5[y3,y6];
+y2=.5[y3,y7]; y1=.5[y6,y7];
+draw z3{left}..z2{up}..{right}z7;
+draw z7{left}..{up}z1..{right}z6--z5--z4--z3--z6;
+endchar;
+
+
+
+beginchar("R",.85em#,cap#,0); "The letter R";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x5=w-x3=w-1.2x7=curve_sidebar;
+x2=x4=x6=.4w;
+bot y1=bot y2=0;
+y4=.5h; y3=.5[y4,y2]; y5=y6=y7= h;
+draw z4{right}..{down}z3..{left}z2--z1--z5--z7;
+draw z2--z6;
+endchar;
+
+
+
+beginchar(oct"023",.9em#,cap#,0); "The letter Cc";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x4=curve_sidebar;
+x1=x3=.5w;
+bot y5=bot y6=0; y1=1.03h;
+y3=.45h; y2=y4=.5[y1,y3];
+path p; p=z1{left}..{down}z2..{right}z3..{up}z4..{left}z1;
+z9 =point .3 of p;
+z11=point 3.7 of p;
+z10-z9=z12-z11=(0,.1h);
+x5=w-x6=x7;
+z7=point 1.7 of p;
+z8=point 2.3 of p;
+draw p; draw z1--z3; draw z7--z5--z6--z8;
+draw z9--z10; draw z11--z12;
+endchar;
+
+
+
+
+
+beginchar("s",em#,1.02cap#,0); "The letter s";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; bot y1=bot y2=bot y3=bot y4=0; top y7=h; y5=y6=.4h;
+x3-x1=x2-x4=.05w; x7=w/2; z5=whatever[z3,z7]; z6=whatever[z4,z7];
+x8=w-x9=x3; y8=y9=.5(y5+y7); draw z1--z2; draw
+z3--z5{z5-z3}..tension2..{z4-z6}z6--z4; draw
+z5..{up}z8..{right}z7..{down}z9..z6; endchar;
+
+
+beginchar("C",em#,1.02cap#,0); "The letter C, fiktivni";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; bot y1=bot y2=bot y3=bot y4=0; top y7=h; y5=y6=.4h;
+x3-x1=x2-x4=.05w; x7=w/2; z5=whatever[z3,z7]; z6=whatever[z4,z7];
+x8=w-x9=x3; y8=y9=.5(y5+y7); draw z1--z2; draw
+z3--z5{z5-z3}..tension2..{z4-z6}z6--z4; draw
+z5..{up}z8..{right}z7..{down}z9..z6; endchar;
+
+ligtable "C": "C" =: oct"023";
+
+
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/croatian-i.mf b/Master/texmf-dist/fonts/source/public/croatian/croatian-i.mf
new file mode 100644
index 00000000000..ea9b0de258e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/croatian-i.mf
@@ -0,0 +1,1456 @@
+
+
+beginchar(oct"000",.9em#,cap#,0); "The letter jaje";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autorounding:=10;
+smoothing:=10;
+x1=w- x2=w-x3=good.x curve_sidebar; x6=x7=.2w; x9=.2[x7,x8];
+x10=x5=.5[x6,x3];
+x4=x8=good.x .67w; y1=y10=y2=0; y6=y5=y3=y4=good.y .53h; y7=y9=y8=good.y h;
+z23=.2[z2,z3]; z84=.8[z8,z4];
+draw z7--z6{down}..z1--z2--z23{up}..controls z3..{left}z4--z6;
+draw z10--z5; draw z7--z9..controls z8..z84--z4;
+endchar;
+
+
+
+beginchar(oct"001",.9em#,cap#,0); "The letter ju";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x6=w- x3=w-x4=good.x curve_sidebar; x2=x5=.5w;
+y6=y5=y4=h; y3=.2h; y1=-.1h; y2=.5[y1,y3]; x0=-.2w;
+z0=whatever[z1,z3];
+draw z0--z3--z4--z6--z1; draw z2--z5;
+endchar;
+
+
+
+beginchar(oct"002",1.6em#,4/3cap#,0); "The letter ml";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x9=x20=w- x13=w-x14=good.x curve_sidebar;
+y9=.5*3/4h;
+y9=y10=y11=y12=y13;
+z10-z9=z11-z10=z12-z11=z13-z12;
+y1=y2=y5=y6=good.y 0;
+x1=w-x6; x2-x1=x6-x5;
+ x1=.5[x9,x10]; x5=.5[x11,x12];
+z4=.5[z9,z10];
+z3=.5[z10,z11]; z7=.5[z11,z12]; z8=.5[z12,z13];
+z20-z9=z19-z10=z17-z11=z15-z12=z14-z13=(0,3/4h-y9);
+z21-z18=z22-z16;
+z18=.5[z19,z17]; z16=.5[z17,z15]; y21=good.y h;
+x18=x21;
+draw z4--z1--z2--z3; draw z7--z5--z6--z8;
+draw z9--z13--z14--z20--cycle; draw z10--z19; draw z11--z17; draw z12--z15;
+draw z18--z21--z22--z16;
+endchar;
+
+
+
+beginchar(oct"003",em#,4/3cap#,0); "The letter ili";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=5;
+smoothing:=4;
+x1=x7=w-x4=w-x10=good.x curve_sidebar;
+y1=y2=y3=y4=good.y 0;
+z2-z1=z3-z2=z4-z3=z8-z7=z9-z8=z10-z9=z11-z12;
+ y7=good.y 3/4h; x2=x12; y12=good.y h;
+ z12=.2[z13,z11];
+ z5=.5[.5[z1,z2],.5[z7,z8]]; y5=y6; x5=w-x6;
+z.11=.35[z1,z7];
+z.11-z1=z22-z2=z33-z3=z44-z4=z7-z77=z8-z88=z9-z99=z10-z1010;
+kut:=30;
+draw z13--z11--z9{down}..controls z99..z6{dir-kut}..
+controls z44..{down}z4--z3{up}..controls z33..z6{dir kut}..controls z1010..
+{up}z10--z7{down}..controls z77..z5{dir-kut}..controls z22..{down}z2--
+z1{up}..controls z.11..z5{dir kut}..controls z88..{up}z8--z12;
+endchar;
+
+
+
+beginchar(oct"004",1.5em#,cap#,0); "The letter tv";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autorounding:=5;
+smoothing:=3;
+x1=x12=w-x6=w-x7= curve_sidebar;
+y1=y2=y3=y4=y5=y6=good.y 0; y12=good.y h;
+z2-z1=z4-z3=z6-z5=z11-z12=z9-z10=z7-z8 =z3-z2=z5-z4;
+%x2-x1=.2*.9em; .5[x3,x4]=.5[x10,x9]=.5w;
+z12-z1=z11-z2=z10-z3=z9-z4=z8-z5=z7-z6;
+z94=.3[z9,z4];
+draw z11--z2--z1--z12--z10{right}..controls z9..{down}z94--z4;
+draw z10--z3--z6--z7--z8--z5;
+picture tv; tv=currentpicture;
+endchar;
+
+
+beginchar(oct"005",.85em#,cap#,-.3cap#); "The letter pr";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x2=w-x3=w-x4=w-x7= curve_sidebar;
+y1=d; y2=y3=good.y h; y5=y4=0 ; y6=y7=good.y 1.4333h;
+x4-x5=x7-x6=.33w;
+draw z1--z2--z3--z4--z5--z6--z7;
+endchar;
+
+
+
+
+beginchar(oct"006",1em#,cap#,0); "The letter ti";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=5;
+smoothing:=4;
+x1=x7=w-x4=w-x10=good.x curve_sidebar;
+y1=y2=y3=y4=good.y 0;
+(z2-z1)=z3-z2=z4-z3=(z8-z7)=z9-z8=z10-z9=z11-z12;
+ y7=good.y h; x2=x12; y12=good.y h;
+ z12=.2[z13,z11];
+ z6=.5[.5[z3,z4],.5[z9,z10]];
+z.11=.35[z1,z7];
+z.11-z1=z22-z2=z33-z3=z44-z4=z7-z77=z8-z88=z9-z99=z10-z1010;
+kut:=30;
+draw z9{down}..controls z99..z6{dir-kut}..
+controls z44..{down}z4--z3{up}..controls z33..z6{dir kut}..controls z1010..
+{up}z10--z7{down}--z1--z2--z8;
+picture ti; ti=currentpicture;
+endchar;
+
+
+
+beginchar(oct"007",1.1em#,cap#,0); "The letter it";
+transform t;
+t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also ti transformed t;
+endchar;
+
+
+
+beginchar(oct"010",0.8em#,cap#,0); "The letter bo";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+smoothing:=4;
+k:=.5;
+x1=w-x2=curve_sidebar; y1=y2=0;
+x3=x4=w-x7=w-x8=\curve_sidebar;
+y3+.1h=y5+.05h=y7=k*w;
+y4=y6=y8=h; y10=y11=1.4333h; x10=x8; x11=x6;
+x5=x6=w/2;
+z3=.1[z9,z7]; z888-z2=1.1(z8-z2);
+draw z4--z1--z2;
+draw z9--z7--z10--z11{down}..z888;
+draw z5--z6;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+beginchar(oct"011",0.8em#,cap#,0); "The letter br";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+smoothing:=4;
+k:=.5;
+x1=w-x2=curve_sidebar; y1=y2=0;
+x3=x4=w-x7=w-x8=\curve_sidebar;
+y3+.1h=y5+.05h=y7=k*w;
+y4=y8=h; y10=y11=1.4333h; x10=x8; x11=x5;
+x5=w/2;
+z3=.1[z9,z7];
+draw z4--z1--z2;
+draw z9--z7--z8;
+draw z5--z11--z10;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+
+
+
+beginchar(oct"012",1.31em#,4/3cap#,0); "The letter lju";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+w:=1.33/1.31w;
+w:=1/1.33w;
+x1=x8=w-x6=w-x7=curve_sidebar;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x3=w-x4=.25w;
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+ y5:=y5-.075h; z11-z5=z5-z6;
+z9-z6=z6-z5; x10=x9; y10=y8;
+draw z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54--z5;
+draw z6--z7;
+draw z11--z9--z10--z8--z1;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+
+beginchar(oct"013",em#,4/3cap#,0); "The letter li";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=5;
+smoothing:=4;
+x1=x7=w-x4=w-x10=good.x curve_sidebar;
+y1=y2=y3=y4=good.y 0;
+z2-z1=z3-z2=z4-z3=z8-z7=z9-z8=z10-z9=z11-z12;
+ y7=good.y 3/4h; x2=x12; y12=good.y h;
+ z12=.2[z13,z11];
+ z5=.5[.5[z1,z2],.5[z7,z8]]; y5=y6; x5=w-x6;
+z.11=.35[z1,z7];
+z.11-z1=z22-z2=z33-z3=z44-z4=z7-z77=z8-z88=z9-z99=z10-z1010;
+kut:=30;
+draw z13--z11--z9{down}..controls z99..z6{dir-kut}..
+controls z44..{down}z4--z3{up}..controls z33..z6{dir kut}..controls z1010..
+{up}z10--z7--z1--z2--z12;
+endchar;
+
+
+
+
+beginchar(oct"014",em#,4/3cap#,0); "The letter il";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=5;
+smoothing:=4;
+x1=x7=w-x4=w-x10=good.x curve_sidebar;
+y1=y2=y3=y4=good.y 0;
+z2-z1=z3-z2=z4-z3=z8-z7=z9-z8=z10-z9=z11-z12;
+ y7=good.y 3/4h; x2=x12; y12=good.y h;
+ z12=.2[z13,z11];
+ z5=.5[.5[z1,z2],.5[z7,z8]]; y5=y6; x5=w-x6;
+z.11=.35[z1,z7];
+z.11-z1=z22-z2=z33-z3=z44-z4=z7-z77=z8-z88=z9-z99=z10-z1010;
+kut:=30;
+draw z13--z11--z3--z4--z10
+--z7{down}..controls z77..z5{dir-kut}..controls z22..{down}z2--
+z1{up}..controls z.11..z5{dir kut}..controls z88..{up}z8--z12;
+endchar;
+
+
+
+
+
+beginchar(oct"015",em#,cap#,0); "The letter tr";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+smoothing:=4;
+x1=x2=w-x4=w-x3=curve_sidebar;
+y1=y8=y5=y4=0; z2-z1=z7-z8=z6-z5=z3-z4=(0,good.y h);
+z8-z1=z4-z5=z7-z2=z3-z6=z5-z8;
+z34=.2[z3,z4]; z56=.2[z5,z6];
+z66=1.4333[z5,z6]; z33=1.4333[z4,z3];
+draw z7--z8--z1--z2--z6..controls z3..{down}z34--z4..
+controls z5..{up}z56--z6;
+draw z33--z66--z6;
+endchar;
+
+
+
+
+beginchar(oct"016",em#,cap#,0); "The letter to";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+smoothing:=4;
+x1=x2=w-x4=w-x3=curve_sidebar;
+y1=y8=y5=y4=0; z2-z1=z7-z8=z6-z5=z3-z4=(0,good.y h);
+z8-z1=z4-z5=z7-z2=z3-z6=z5-z8;
+z34=.2[z3,z4]; z56=.2[z5,z6];
+z66=1.4333[z5,z6]; z33=1.4333[z4,z3]; z333=1.1[z4,z3];
+draw z7--z8--z1--z2--z6-- z3--z4..
+controls z5..{up}z56--z6;
+draw z3--z33--z66{down}..z333;
+endchar;
+
+
+
+beginchar(oct"017",.9em#,cap#,0); "The letter jur";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x6=w- x3=w-x4=good.x curve_sidebar; x2=x5=.5w;
+y6=y5=y4=h; y3=.2h; y1=-.1h; y2=.5[y1,y3]; x0=-.2w;
+z0=whatever[z1,z3];
+z55=1.4333[z2,z5]; z44-z55=z4-z5;
+draw z0--z3--z4--z6--z1; draw z2--z55--z44;
+endchar;
+
+
+
+
+
+beginchar(oct"020",em#,4/3cap#,0); "The letter ol";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x8=w-x6=w-x7=curve_sidebar;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x3=w-x4=.25w;
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+z223=.5[z2,z23];
+draw z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54--z5
+--z6--z7--z8{down}
+..z223;
+draw z1{up}..z223;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+beginchar(oct"021",em#,4/3cap#,0); "The letter lo";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x8=w-x6=w-x7=curve_sidebar;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x3=w-x4=.25w;
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+z67=.5[z6,z7];
+draw z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54{down}..
+z67; draw z1--z8--z7--z6--z5{up}..z67;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+
+
+beginchar(oct"022",em#,cap#,0); "The letter vo";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; y1=y2=0;
+draw z1--z2;
+z5-z1=z9-z2=(0,good.y h);
+z7-z5=z9-z8=z3-z1=z2-z4=z4-z3;
+z77=.2[z7,z3];
+z88=.15[z8,z4]; z99=.15[z9,z2]; z89=.5[z8,z9];
+z.9=1.4333[z2,z9]; z.8=1.4333[z4,z8]; z999=1.1[z2,z9];
+draw z1--z5..controls z7 ..{down}z77--z3;
+draw z2--z9--z89..controls z8..{down}z88--z4;
+draw z9--z.9--z.8{down}..z999;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+
+beginchar(oct"023",.85em#,cap#,-.3cap#); "The letter po";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+z33=1.4333[z4,z3]; z66=1.4333[z5,z6];
+z333=1.1[z4,z3];
+draw z1--z2--z3--z4--z45..controls z5..z56--z6;
+draw z3--z33--z66{down}..z333;
+endchar;
+
+
+
+
+
+beginchar(oct"024",em#,4/3cap#,0); "The letter oli";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=5;
+smoothing:=4;
+x1=x7=w-x4=w-x10=good.x curve_sidebar;
+y1=y2=y3=y4=good.y 0;
+z2-z1=z3-z2=z4-z3=z8-z7=z9-z8=z10-z9=z11-z12;
+ y7=good.y 3/4h; x2=x12; y12=good.y h;
+ z12=.2[z13,z11];
+ z5=.5[.5[z1,z2],.5[z7,z8]]; y5=y6; x5=w-x6;
+z.11=.35[z1,z7];
+z.11-z1=z22-z2=z33-z3=z44-z4=z7-z77=z8-z88=z9-z99=z10-z1010;
+z28=.5[z2,z8];
+kut:=30;
+draw z13--z11--z9{down}..controls z99..z6{dir-kut}..
+controls z44..{down}z4--z3{up}..controls z33..z6{dir kut}..controls z1010..
+{up}z10--z7;
+draw z1--z2--z12; draw z7{down}..z28;
+draw z1{up}..z28;
+endchar;
+
+
+
+beginchar(oct"025",1.31em#,4/3cap#,0); "The letter olju";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+w:=1.33/1.31w;
+w:=1/1.33w;
+x1=x8=w-x6=w-x7=curve_sidebar;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x3=w-x4=.25w;
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+ y5:=y5-.075h; z11-z5=z5-z6;
+z9-z6=z6-z5; x10=x9; y10=y8;
+z22-z2=.5(z8-z1);
+draw z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54--z5;
+draw z6--z7;
+draw z11--z9--z10--z8{down}..z22;
+draw z1{up}..z22;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+
+
+
+beginchar(oct"026",1.8em#,4/3cap#,0); "The letter ljud";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+w:=1/1.8w;
+x1=x8=w-x6=w-x7=curve_sidebar;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x3=w-x4=.25w;
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+z13-z6=2.5(z6-z5); z12-z13=z8-z1;
+ y5:=y5-.075h; z11-z5=z5-z6;
+z9-z6=z6-z5; x10=x9; y10=y8;
+z16=.4[z13,z12]; z14-z13=.7(z12-z10)=z15-z16;
+draw z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54--z5;
+draw z6--z7;
+draw z11--z9--z10--z8--z1;
+draw z10--z12--z13--z14--z15--z16;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+
+
+beginchar(oct"027",1.8*0.7em#,cap#,0); "The letter bl";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+smoothing:=4; w:=w/1.8; k:=.5; x1=w-x2=curve_sidebar;
+y1=y2=0; x3=x4=w-x7=w-x8=curve_sidebar;
+y3+.1h=y5+.05h=y7=k*w; y4=y6=y8=h; x5=x6=w/2; z3=.1[z9,z7];
+draw z4--z1--z2; draw z5--z6; z10=(1.8w-curve_sidebar,0);
+z.9-z10=z4-z1; z10-z11=(z6-z4); z12-z11=z.9-z10;
+y14=y13=4/3h; x8-x14=x13-x12=.1w; draw
+z8--z.9--z10--z11--z12{up}..z13; draw z13--z14; draw
+z9--z7--z8{up}..z14; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+
+
+beginchar(oct"030",.9em#,cap#,0); "The letter mo";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=w-x3=w-x4= curve_sidebar; x2=x5=.5w; y5=y4=h;
+y1=y2=y3=0; z6=.4[z5,z2];
+z7=1.4333[z3,z4]; z8=1.4333[z2,z5]; z444=1.1[z3,z4];
+draw z1{up}..{dir10}z5--z2;
+draw z6--z4--z3;
+draw z4--z7--z8{down}..z444;
+endchar;
+
+
+
+
+beginchar(oct"031",em#,cap#,0); "The letter vr";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; y1=y2=0;
+draw z1--z2;
+z5-z1=z9-z2=(0,good.y h);
+z7-z5=z9-z8=z3-z1=z2-z4=z4-z3;
+z77=.2[z7,z3];
+z88=.15[z8,z4]; z99=.15[z9,z2]; z89=.5[z8,z9];
+z.8=1.4333[z4,z8]; z.9=1.4333[z2,z9];
+draw z1--z5..controls z7 ..{down}z77--z3;
+draw z2--z99..controls z9..{left}z89..controls z8..{down}z88--z4;
+draw z88--z.8--z.9;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+beginchar(oct"032",1.5em#,cap#,0); "The letter tvo";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autorounding:=5;
+smoothing:=3;
+x1=x12=w-x6=w-x7= curve_sidebar;
+y1=y2=y3=y4=y5=y6=good.y 0; y12=good.y h;
+z2-z1=z4-z3=z6-z5=z11-z12=z9-z10=z7-z8=z3-z2=z5-z4;
+%x2-x1=.2*.9em; .5[x3,x4]=.5[x10,x9]=.5w;
+z12-z1=z11-z2=z10-z3=z9-z4=z8-z5=z7-z6;
+z94=.3[z9,z4];
+z88=1.4333[z5,z8]; z77=1.4333[z6,z7]; z777=1.1[z6,z7];
+draw z11--z2--z1--z12--z10{right}..controls z9..{down}z94--z4;
+draw z10--z3--z6--z7--z8--z5;
+draw z7--z77--z88{down}..z777;
+endchar;
+
+
+
+
+
+beginchar(oct"033",.6em#,cap#,0); "The letter no";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+smoothing:=4;
+x1=x4=w-x5=curve_sidebar; x3=.5(x1+x2); x2=.43w;
+y1=y2=0; y5=y4=good.y h; z6=(.5x3,.4h); y3=0;
+z55-z5=.4333(z4-z1);
+z555-z5=.1(z4-z1);
+draw z3--z4--z5{down}..{left}z6;
+draw z1--z2; z55-z.5=.7(z5-z4);
+draw z5--z55--z.5{down}..z555;
+endchar;
+
+
+
+beginchar(oct"034",1.7*.75em#,cap#,-.3cap#); "The letter pov";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+z11=1.4333[z4,z3]; z12=1.4333[z5,z6]; z333=1.1[z4,z3];
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z4--z10--z8--z7--z9;
+draw z3--z11--z12{down}..z333;
+endchar;
+
+
+
+
+beginchar(oct"035",1.7*.75em#,cap#,-.3cap#); "The letter poto";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+z11=1.4333[z4,z3]; z12=1.4333[z5,z6]; z333=1.1[z4,z3];
+z88=1.4333[z10,z8]; z77=1.4333[z9,z7]; z888=1.1[z10,z8];
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z3--z8--z10--z9--z7;
+draw z3--z11--z12{down}..z333;
+draw z8--z88--z77{down}..z888;
+endchar;
+
+
+
+
+
+beginchar(oct"036",1.7*.75em#,cap#,-.3cap#); "The letter povr";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+z11=1.4333[z4,z3]; z12=1.4333[z5,z6];
+z88=1.4333[z10,z8]; z77=1.4333[z9,z7]; z333=1.1[z4,z3];
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z4--z10--z8--z7--z9;
+draw z3--z11--z12{down}..z333;
+draw z7--z77--z88;
+endchar;
+
+
+
+
+
+
+beginchar(oct"037",1.7*.75em#,cap#,-.3cap#); "The letter potr";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+z11=1.4333[z4,z3]; z12=1.4333[z5,z6]; z333=1.1[z4,z3];
+z88=1.4333[z10,z8]; z77=1.4333[z9,z7];
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z3--z8--z10--z9--z7;
+draw z3--z11--z12{down}..z333;
+draw z7--z77--z88;
+endchar;
+
+
+
+
+beginchar(oct"040",1.7*.75em#,cap#,-.3cap#); "The letter pt";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z3--z8--z10--z9--z7;
+endchar;
+
+
+beginchar(oct"041",1.7*.75em#,cap#,-.3cap#); "The letter pot";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+z11=1.4333[z4,z3]; z12=1.4333[z5,z6]; z333=1.1[z4,z3];
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z3--z8--z10--z9--z7;
+draw z3--z11--z12{down}..z333;
+endchar;
+
+
+
+
+beginchar(oct"042",1.7*.8em#,cap#,0); "The letter jutr";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+w:=w/1.7;
+x1=x6=w- x3=w-x4=good.x curve_sidebar; x2=x5=.5w;
+y6=y5=y4=h; y3=.1h; y1=-.1h; y2=.5[y1,y3]; x0=-.2w;
+z0=whatever[z1,z3];
+z7=(1.7w-curve_sidebar,0); z8-z7=z5-z4;
+x9=x7; y9=h; z10-z8=1.4333(z9-z7);
+z11=1.4333[z7,z9];
+draw z0--z3--z4--z6--z1; draw z2--z5;
+draw z4--z9--z7--z8--z10--z11;
+endchar;
+
+
+
+
+beginchar(oct"043",1.6*em#,cap#,0); "The letter vd";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.6;
+x1=w-x2=curve_sidebar; y1=y2=0;
+draw z1--z2;
+z5-z1=z9-z2=(0,good.y h);
+z7-z5=z9-z8=z3-z1=z2-z4=z4-z3;
+z77=.2[z7,z3];
+z88=.15[z8,z4]; z99=.15[z9,z2]; z89=.5[z8,z9];
+x.1=1.6w-curve_sidebar; y.1=0; z.2-z.1=1.2(z1-z3); z.3-z.1=z.4-z.2=.4(z5-z1);
+z.5-z.2=z5-z1;
+draw z1--z5..controls z7 ..{down}z77--z3;
+draw z2--z9--z8--z4;
+draw z9--z.5--z.2--z.1--z.3--z.4;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+
+
+beginchar(oct"044",1.6*.9em#,cap#,0); "The letter vod";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.6;
+x1=w-x2=curve_sidebar; y1=y2=0;
+draw z1--z2;
+z5-z1=z9-z2=(0,good.y h);
+z7-z5=z9-z8=z3-z1=z2-z4=z4-z3;
+z77=.2[z7,z3];
+z88=.15[z8,z4]; z99=.15[z9,z2]; z89=.5[z8,z9];
+x.1=1.6w-curve_sidebar; y.1=0; z.2-z.1=1.2(z1-z3); z.3-z.1=z.4-z.2=.4(z5-z1);
+z.5-z.2=z5-z1;
+z.8=1.4333[z4,z8]; z.9=1.4333[z2,z9]; z999=1.1[z2,z9];
+draw z1--z5..controls z7 ..{down}z77--z3;
+draw z2--z9--z8--z4;
+draw z9--z.5--z.2--z.1--z.3--z.4;
+draw z9--z.9--z.8{down}..z999;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+
+
+beginchar(oct"045",1.5em#,cap#,0); "The letter tvr";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autorounding:=5;
+smoothing:=3;
+x1=x12=w-x6=w-x7= curve_sidebar;
+y1=y2=y3=y4=y5=y6=good.y 0; y12=good.y h;
+z2-z1=z4-z3=z6-z5=z11-z12=z9-z10=z7-z8=z3-z2=z5-z4;
+%x2-x1=.2*.9em; .5[x3,x4]=.5[x10,x9]=.5w;
+z12-z1=z11-z2=z10-z3=z9-z4=z8-z5=z7-z6;
+z94=.3[z9,z4];
+z88=1.4333[z5,z8]; z77=1.4333[z6,z7];
+draw z11--z2--z1--z12--z10{right}..controls z9..{down}z94--z4;
+draw z10--z3--z6--z7--z8--z5;
+draw z8--z88--z77;
+endchar;
+
+
+
+beginchar(oct"046",1.5em#,cap#,0); "The letter thita";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=w-x2=curve_sidebar; y1=y2=.5h;
+z3-z1=z2-z4=.2(z2-z1);
+x5=x7=w-x6=w-x8=.42w; y5=y6=0; y7=y8=h;
+x9=w-x10=.5(x1+x3); y9=y10=.2h;
+draw z3{down}..z9..{up}z1--z2{down}..z10..{up}z4;
+draw z5--z6--z8--z7--cycle;
+endchar;
+
+
+beginchar(oct"047",1.2em#,cap#,0); "The letter izica";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autorounding:=10;
+smoothing:=10;
+k:=0;
+x1=x5+k=x11=w- x7= curve_sidebar;
+x2=x6-k=x10=.4w;
+x7-x12=.2w; x13=.5[x12,x7]; y13=.5h-.3h;
+y5=y6=y12=y7=.5h;
+x3-x1=x8-x1=x2-x4=x2-x9=.1w; y3=y4=h-y8=h-y9=.35h;
+y11=y10=h; y1=y2=0;
+draw z1--z2{up}..z4..z3..{down}z1;
+draw z11--z10{down}..z9..z8..{up}z11;
+draw z3..z5..z8; draw z4..z6..z9;
+draw z6--z7{down}..z13..{up}z12;
+endchar;
+
+
+
+
+beginchar(oct"050",1.52*1.1em#,cap#,0); "The letter zl";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=5;
+smoothing:=4;
+w:=w/1.52;
+x1=x4=x5=w-x7=w-x6=good.x curve_sidebar;
+x2=x3=.4w;
+y5=y6=y9=h/2;
+y1=-.2h;
+y2=0;
+ z4-(x1,0)=z3-z2=(0,good.y h);
+z6-z7=z9-z8=1.2(z7-z8) rotated 90=(0,.5h);
+z23=.5[z2,z3];
+x13=x14=1.52w-curve_sidebar; y13=0; y14=.5h;
+z13-z12=z14-z15=z7-z8;
+x6-x10=x11-x12=.1w; y10=y11=h;
+penpos23(1.4thick,0);
+draw z23--z3--z4--z5;
+k:=1.4/cosd 10;
+penpos1(k*thick,10);
+penpos5(1.4thick,0);
+penstroke z5e--z1e;
+penstroke z1e{dir14}..{up}z23e;
+%pickup pencircle xscaled thick yscaled.2thin;
+draw z5--z6--z7{left}..controls z8..{up}z9;
+draw z6{up}..z10--z11..{down}z15--z12--z13--z14--z15;
+endchar;
+
+
+
+beginchar(oct"051",1.1em#,cap#,0); "The letter zo";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=5;
+smoothing:=4;
+x1=x4=x5=w-x7=w-x6=good.x curve_sidebar;
+x2=x3=.4w;
+y5=y6=y9=h/2;
+y1=-.2h;
+y2=0;
+ z4-(x1,0)=z3-z2=(0,good.y h);
+z6-z7=z9-z8=1.2(z7-z8) rotated 90=(0,.5h);
+z23=.5[z2,z3];
+z99=2[z8,z9]; z66=2[z7,z6];
+penpos23(1.4thick,0);
+draw z23--z3--z4--z5;
+k:=1.4/cosd 10;
+penpos1(k*thick,10);
+penpos5(1.4thick,0);
+penstroke z5e--z1e;
+penstroke z1e{dir14}..{up}z23e;
+%pickup pencircle xscaled thick yscaled.2thin;
+draw z5--z6--z7{left}..controls z8..{up}z9;
+draw z6--z66--z99{down}..z6;
+endchar;
+
+
+
+
+beginchar(oct"052",1.1em#,cap#,0); "The letter zr";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=5;
+smoothing:=4;
+x1=x4=x5=w-x7=w-x6=good.x curve_sidebar;
+x2=x3=.4w;
+y5=y6=y9=h/2;
+y1=-.2h;
+y2=0;
+ z4-(x1,0)=z3-z2=(0,good.y h);
+z6-z7=z9-z8=1.2(z7-z8) rotated 90=(0,.5h);
+z23=.5[z2,z3];
+z99=2[z8,z9]; z66=2[z7,z6];
+penpos23(1.4thick,0);
+draw z23--z3--z4--z5;
+k:=1.4/cosd 10;
+penpos1(k*thick,10);
+penpos5(1.4thick,0);
+penstroke z5e--z1e;
+penstroke z1e{dir14}..{up}z23e;
+%pickup pencircle xscaled thick yscaled.2thin;
+draw z5--z6--z7{left}..controls z8..{up}z9;
+draw z9--z99--z66;
+endchar;
+
+
+
+
+beginchar(oct"053",1.7*.75em#,cap#,-.3cap#); "The letter pv";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z4--z10--z8--z7--z9;
+endchar;
+
+
+
+
+
+
+beginchar(oct"054",1.7*.75em#,cap#,-.3cap#); "The letter pov";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+z66=1.4333[z5,z6]; z33=1.4333[z4,z3]; z333=1.1[z4,z3];
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z4--z10--z8--z7--z9;
+draw z3--z33--z66{down}..z333;
+endchar;
+
+
+
+
+beginchar(oct"055",1.7*.75em#,cap#,-.3cap#); "The letter prv";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+z66=1.4333[z5,z6]; z33=1.4333[z4,z3]; z333=1.1[z4,z3];
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z4--z10--z8--z7--z9;
+draw z6--z66--z33;
+endchar;
+
+
+
+
+beginchar(oct"056",1.7*.75em#,cap#,-.3cap#); "The letter pl";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=h; y10=0;
+z8-z7=z10-z9=z4-z5;
+y33=y77=4/3h; x77-x7=x3-x33=.1w;
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z9--z10--z8--z7--z9;
+draw z3{up}..z33--z77..{down}z7;
+draw z3--z7;
+endchar;
+
+
+
+
+beginchar(oct"057",1.7*.75em#,cap#,-.3cap#); "The letter pod";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+w:=w/1.7;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+x8=x10=1.7w-curve_sidebar; y8=.4h; y10=0;
+z7-z9=z3-z4; z10-z9=z4-z5; z8-z10=z88-z9;
+z11=1.4333[z4,z3]; z12=1.4333[z5,z6]; z333=1.1[z4,z3];
+draw z1--z2--z3..z34--z4--z45..controls z5..z56--z6;
+draw z3--z7--z9--z10--z8--z88;
+draw z3--z11--z12{down}..z333;
+endchar;
+
+
+
+
+
+beginchar(oct"060",1.6em#,4/3cap#,0); "The letter mlc";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x9=x20=w- x13=w-x14=good.x curve_sidebar;
+y9=.5*3/4h;
+y9=y10=y11=y12=y13;
+z10-z9=z11-z10=z12-z11=z13-z12;
+y1=y2=y5=y6=good.y 0;
+x1=w-x6; x2-x1=x6-x5;
+ x1=.5[x9,x10]; x5=.5[x11,x12];
+z4=.5[z9,z10];
+z3=.5[z10,z11]; z7=.5[z11,z12]; z8=.5[z12,z13];
+z20-z9=z19-z10=z17-z11=z15-z12=z14-z13=(0,3/4h-y9);
+z21-z18=z22-z16;
+z18=.5[z19,z17]; z16=.5[z17,z15]; y21=good.y h;
+x18=x21;
+z199-z19=z155-z15=z177-z17=z21-z18;
+draw z4--z1--z2--z3; draw z7--z5--z6--z8;
+draw z9--z13--z14--z20--cycle; draw z10--z19; draw z11--z17; draw z12--z15;
+draw z19--z199--z155--z15; draw z17--z177;
+z211-z21=z222-z22=.2(z4-z1);
+penpos21(1.4thick,0);
+penpos211(1.4thick,0);
+penpos22(1.4thick,0);
+penpos222(1.4thick,0);
+penstroke z21e--z211e; penstroke z22e--z222e;
+endchar;
+
+
+
+beginchar(oct"061",1.43em#,4/3cap#,0); "The letter lv";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+w:=1.33/1.43w;
+w:=1/1.43w;
+x1=x8=w-x6=w-x7=curve_sidebar;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x3=w-x4=.25w;
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+x10=x11=1.43*1.43/1.33w-curve_sidebar; y10=0; y11=3/4h;
+z9-z10=z5-z6; z12-z11=z54-z7;
+draw z5--z6--z7--z8--z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54--z5;
+draw z6--z10--z11--z12--z9;
+picture lv; lv=currentpicture;
+endchar;
+
+
+
+beginchar(oct"062",1.43em#,4/3cap#,0); "The letter vl";
+transform t;
+t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also lv transformed t;
+endchar;
+
+
+
+beginchar(oct"063",1.43em#,4/3cap#,0); "The letter lt";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+w:=1.33/1.43w;
+w:=1/1.43w;
+x1=x8=w-x6=w-x7=curve_sidebar;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x3=w-x4=.25w;
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+x10=x11=1.43*1.43/1.33w-curve_sidebar; y10=0; y11=3/4h;
+z9-z10=z5-z6; z12-z11=z54-z7;
+draw z5--z6--z7--z8--z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54--z5;
+draw z7--z11--z10--z9--z12;
+picture lv; lv=currentpicture;
+endchar;
+
+
+
+beginchar(oct"064",1.43em#,4/3cap#,0); "The letter tl";
+transform t;
+t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also lv transformed t;
+endchar;
+
+
+
+
+beginchar(oct"065",1.43em#,4/3cap#,0); "The letter vt";
+transform t;
+t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also tv transformed t;
+endchar;
+
+
+
+beginchar(oct"066",1.6em#,4/3cap#,0); "The letter mc";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x9=x20=w- x13=w-x14=good.x curve_sidebar;
+y9=.5*3/4h;
+y9=y10=y11=y12=y13;
+z10-z9=z11-z10=z12-z11=z13-z12;
+y1=y2=y5=y6=good.y 0;
+x1=w-x6; x2-x1=x6-x5;
+ x1=.5[x9,x10]; x5=.5[x11,x12];
+z4=.5[z9,z10];
+z3=.5[z10,z11]; z7=.5[z11,z12]; z8=.5[z12,z13];
+z20-z9=z19-z10=z17-z11=z15-z12=z14-z13=(0,3/4h-y9);
+z21-z18=z22-z16;
+z18=.5[z19,z17]; z16=.5[z17,z15]; y21=good.y h;
+x18=x21;
+draw z4--z1--z2--z3; draw z7--z5--z6--z8;
+draw z9--z13--z14--z20--cycle; draw z10--z19; draw z11--z17; draw z12--z15;
+z21-z211=z222-z22=.5(z22-z21);
+draw z211{right}..{down}z17{up}..{right}z222;
+endchar;
+
+
+
+
+
+
+beginchar(oct"067",em#,1.02cap#,0); "The letter so";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; bot y1=y2=y3=y4=0; top y7=h; y5=y6=.4h;
+x3-x1=x2-x4=.05w; x7=w/2; z5=whatever[z3,z7]; z6=whatever[z4,z7];
+x8=w-x9=x3; y8=y9=.5(y5+y7); draw z1--z2; draw
+z3--z5{z5-z3}..tension2..{z4-z6}z6--z4; draw
+z5..{up}z8..{right}z7..{down}z9..z6;
+z99=(x9,4/3h); z999=(x9,1.1h);
+z77=(.6w,4/3h);
+draw z9--z99--z77{down}..{right}z999;
+endchar;
+
+
+
+beginchar(oct"070",1.8*.9em#,4/3cap#,0); "The letter am";
+w:=w/1.8;
+grba:=.6;
+autoround:=4;
+x1=x2=.5w; y1=0; y2=h;
+z2- z3= z4-z2=(.16w,0);
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+draw z1..z2;
+draw z3..z4;
+z5=(curve_sidebar,0); z6=(w/2,grba*h); z7=(w-curve_sidebar,0);
+x8=x5; x9=x7; y8=y9=0.55h;
+draw z5{up}--z8; draw z8..z6..z9;
+draw z9--z7;
+w:=1.8w;
+x55=w-curve_sidebar;
+y55=0;
+z0=.5[z7,z55];
+z11=(x0,3/4h); z22=(x55,3/4h);
+draw z9--z11--z0;
+x33=.55[x0,x11]; y33=y9;
+draw z33--z22--z55;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+
+beginchar(oct"071",.7em#,cap#,0); "The letter ko";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+w-x2=curve_sidebar;
+y1=0; y4=good.y h; z3=(curve_sidebar,.3h); y2=.3h;
+z1=(x2,0);
+x4=.6w;
+x5=x4; y5=4/3h; x55=.3w; y55=y5;
+x555=x4; y555=1.1h;
+draw z1--z2--z3..{up}z4--z5--z55{down}..{right}z555;
+penlabels(1,2,3,4,5);
+endchar;
+
+
+
+beginchar(oct"072",.7em#,cap#,0); "The letter ot";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x4=w-x3=w-x5=w-x6=w-x2=curve_sidebar;
+y4=y3=good.y h; y1=y2=0; y6-y2=y3-y5=.4h;
+draw z6{left}..{down}z1--z2--z3--z4{down}..{right}z5;
+pickup pencircle scaled .3thin;
+x33=x44=x1; x66=x55=x2; x22-x33=x77-x22=x66-x77;
+x22=x11; x77=x88;
+y33=y22=y77=y66=1.18h;
+y44=y11=y88=y55=1.33h;
+draw z11--z22--z33--z44--z55--z66--z77--z88;
+endchar;
+
+
+beginchar(oct"073",1.6em#,4/3cap#,0); "The letter ms";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x9=x20=w- x13=w-x14=good.x curve_sidebar;
+y9=.5*3/4h;
+y9=y10=y11=y12=y13;
+z10-z9=z11-z10=z12-z11=z13-z12;
+y1=y2=y5=y6=good.y 0;
+x1=w-x6; x2-x1=x6-x5;
+ x1=.5[x9,x10]; x5=.5[x11,x12];
+z4=.5[z9,z10];
+z3=.5[z10,z11]; z7=.5[z11,z12]; z8=.5[z12,z13];
+z20-z9=z19-z10=z17-z11=z15-z12=z14-z13=(0,3/4h-y9);
+z21-z18=z22-z16;
+z18=.5[z19,z17]; z16=.5[z17,z15]; y21=good.y h;
+x18=x21;
+z211=.7[z18,z21];
+z222-z16=z211-z18;
+z2122=.5[z21,z22];
+z199-z19=1.5(z211-z18);
+z155-z15=z199-z19;
+z177-z17=1.8(z21-z18);
+draw z4--z1--z2--z3; draw z7--z5--z6--z8;
+draw z9--z13--z14--z20--cycle; draw z10--z19; draw z11--z17; draw z12--z15;
+draw z18--z211{up}..{right}z2122..{down}z222--z16;
+%kut:=35;
+z2111=.8[z18,z211];
+z2222-z16=z2111-z18;
+draw z2111{dir 170}..{up}z199..{right}z177..{down}z155..{dir 190}z2222;
+endchar;
+
+
+
+beginchar(oct"074",1.6em#,4/3cap#,0); "dvokatni uglasti m"; % \mm
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x9=x20=w- x13=w-x14=good.x curve_sidebar;
+y9=.5*3/4h;
+y9=y10=y11=y12=y13;
+z10-z9=z11-z10=z12-z11=z13-z12;
+y1=y2=y5=y6=good.y 0;
+x1=w-x6; x2-x1=x6-x5;
+ x1=.5[x9,x10]; x5=.5[x11,x12];
+z4=.5[z9,z10];
+z3=.5[z10,z11]; z7=.5[z11,z12]; z8=.5[z12,z13];
+z20-z9=z19-z10=z17-z11=z15-z12=z14-z13=(0,3/4h-y9);
+draw z4--z1--z2--z3; draw z7--z5--z6--z8;
+draw z9--z13--z14--z20--cycle; draw z10--z19; draw z11--z17; draw z12--z15;
+endchar;
+
+beginchar(oct"075",1.1em#,cap#,0); "The letter jeje"; % \ee
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x6=w-x8=w-x10=curve_sidebar;
+x3=x4=.5w; x2=x5=w-x7=w-x9=.5[x6,x4];
+x12-x4=x4-x11=.2w;
+y5=y7=0;; y11=y12=.5h; y2=y9=h;
+y3-y11=y11-y4=.2h;
+y2-y1=y6-y5=y9-y10=y8-y7=.2h;
+draw z1{up}..{right}z2..{down}z3--z4{down}..{left}z5..{up}z6;
+draw z10{up}..{left}z9..{down}z3;
+draw z4{down}..{right}z7..{up}z8;
+draw z11--z12;
+endchar;
+
+beginchar(oct"076",1.2em#,cap#,0); "The letter izze";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x11=x12=x16=x15=w-x4=w-x5=w-x9=curve_sidebar;
+x18=x17=x13=x14=.4w;
+x1=x8=.55w; x2-x1=x4-x3=x7-x8=x5-x6=.15w;
+x9-x10=.15w;
+y15=y14=y7=y6=bot 0;
+y11=y18=y2=y3=top h;
+y11-y12=y16-y15=y18-y17=y13-y14=.2h;
+y8-y7=y2-y1=.2h;
+y3-y4=y5-y6=.4h;
+y10=y9=.5h;
+% kut=30;
+z19=(.5w,top h); y20=y21=4/3h;
+x19-x20=x21-x19=.1w;
+z20-z23=z22-z21=z21-z20;
+
+draw z11--z3{right}..{down}z4--z5{down}..z6{left}--z7{left}..{up}z8;
+draw z1{up}..{right}z2;
+draw z10--z9;
+draw z11--z12{down}..{down}z13--z14--z15--z16{up}..{up}z17--z18;
+pickup pencircle xscaled 1.2thick yscaled .25thin;
+draw z23--z20--z19--z21--z22;
+endchar;
+
+
+beginchar(oct"077",1.2em#,cap#,0); "The letter jezze";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x11=x12=x16=x15=w-x4=w-x5=w-x9=curve_sidebar;
+x18=x17=x13=x14=.4w;
+x1=x8=.55w; x2-x1=x4-x3=x7-x8=x5-x6=.15w;
+x9-x10=.15w;
+y15=y14=y7=y6=bot 0;
+y11=y18=y2=y3=top h;
+y11-y12=y16-y15=y18-y17=y13-y14=.2h;
+y8-y7=y2-y1=.2h;
+y3-y4=y5-y6=.4h;
+y10=y9=.5h;
+z19=(.5w,top h); y20=y21=4/3h;
+x19-x20=x21-x19=.1w;
+z20-z23=z22-z21=z21-z20;
+
+draw z1{up}..z2{right}--z3{right}..{down}z4--z5{down}..z6{left}--z7{left}..{up}z8;
+draw z10--z9;
+z2-z19=z19-z30;
+
+
+pomak:=x1-x11;
+transform t; t=identity shifted (-pomak,0);
+addto currentpicture also currentpicture transformed t;
+pickup pencircle xscaled 1.2thick yscaled .25thin;
+draw z23--z20--z19--z21--z22;
+draw z2--z30;
+endchar;
+
+
+beginchar(oct"100",.85em#,cap#,0); "The letter krizz";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x1=w-x2=curve_sidebar;
+x3=.5w; y1=y2=y3=.5h;
+sbr:=2;
+penpos1(sbr*thick,90);
+penpos2(sbr*thick,90);
+penpos3(sbr*.5thick,90);
+penstroke z1e..z3e..z2e;
+transform t; t=identity rotatedaround (z3,90);
+addto currentpicture also currentpicture transformed t;
+endchar;
+
+
+beginchar(oct"101",1.5em#,cap#,0); "The letter jazze";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x2=w-x14=w-x19=w-x13=
+curve_sidebar;
+x1=.14w;
+x10=x17=.65w; x19-x18=.15w;
+x11-x10=x13-x12=x16-x17=x14-x15=.15w;
+
+x4=x5=.5w;
+x3=x8=.5[x2,x4];
+x7=x77=x8+.04w;
+x6=x4-.1w;
+
+x20=.5w; x20-x21=x22-x20=.1w;
+y24=y21=y22=y23=4/3h;
+z21-z24=z23-z22=z22-z21;
+
+y2=y3=y4=y16=y15=bot 0;
+y1=y7=y11=y12=y20=top h;
+y8=y77=y6=y18=y19=.5[y2,y1];
+y6-y5=x5-x6;
+y17-y16=y11-y10=.2h;
+y12-y13=y14-y15=.4h;
+
+z9=.5[z2,z1];
+
+draw z4--z2--z1--z12{right}..{down}z13--z14{down}..{left}z15--z16{left}..
+{up}z17; draw z18--z19; draw z10{up}..{right}z11;
+draw z7--z77; draw z4--z5{up}
+..{left}z6--z9; draw z8--z3;
+
+draw z24--z21--z20--z22--z23;
+endchar;
+
+
+beginchar(oct"102",1.2em#,cap#,0); "The letter komentar";
+pickup pencircle xscaled 1.5thick yscaled .3thin;
+x3=w-x1=w-x5=curve_sidebar;
+y3=.5h; y1=4/3h; y5=-1/3h;
+z22=(.5w,4/3h); z44=(.5w,-1/3h); z88=.5[z22,z44];
+path kr; kr=z1{left}..{down}z3..{right}z5;
+draw kr;
+z4= kr intersectionpoint (z44--z88);
+z2= kr intersectionpoint (z22--z88);
+pickup pencircle xscaled thick yscaled thick;
+penpos2(thick,20);
+penpos4(thick,-20);
+penstroke z2e--z4e;
+pickup pencircle xscaled thick yscaled .3thin;
+z6-z88=z88-z7=.22*(z2-z4);
+z8-z88=1.4(z7-z88) rotated 90;
+draw z6{right}..{down}z8..{left}z7;
+endchar;
+
+
+beginchar(oct"103",1.2em#,cap#,0); "The letter go";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=2x3=w-x4=w-x5=curve_sidebar;
+ x2=.4w; y3=-.05h; y5=0; y1=y2=h; y4=.5h;
+z6=.65[z3,z4]; z7=.45[z2,z3]; x7:=x7+.02w;
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+z11=(x1,.1[y7,y1]);
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+draw z7{left}..controls z11..{up}z1; draw z1--z2;
+penstroke z2e{dir(kut1+7)}..{dir(kut1-7)}
+z3e;
+
+penpos666((cosd kut)*1.4thick,0); z66=(x6, h); z666=(x5,h);
+penstroke z5e--z666e; penstroke z55e{left}..{dir(90+kut)}z6e;
+
+z8=(x6,.4[y6,y66]); z9=(x4,y8);
+ draw z666--z66{down}..controls z8..{right}z9;
+
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+
+
+beginchar(oct"104",1.2em#,cap#,0); "The letter gr";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=2x3=w-x4=w-x5=curve_sidebar;
+ x2=.4w; y3=-.05h; y5=0; y1=y2=h; y4=.5h;
+z6=.65[z3,z4]; z7=.45[z2,z3]; x7:=x7+.02w;
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+z11=(x1,.1[y7,y1]);
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+draw z7{left}..controls z11..{up}z1; draw z1--z2;
+penstroke z2e{dir(kut1+7)}..{dir(kut1-7)}
+z3e;
+
+penpos66((cosd kut)*1.4thick,0); z66=(x6, h); z666=(x5,h);
+penstroke z4e--z5e; penstroke z55e{left}..{dir(90+kut)}z6e;
+penstroke z6e--z66e; draw z66--z666;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+beginchar(oct"105",1.2em#,cap#,0); "The letter hr";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+2x3=w-x4=w-x5=curve_sidebar;
+ x2=.3w; y3=-.05h; y5=0; y2=h; y4=.5h;
+z6=.65[z3,z4];
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+penstroke z2e{dir(kut1+10)}..{dir(kut1-10)}z3e;
+
+penpos66((cosd kut)*1.4thick,0); z66=(x6, h); z666=(x5,h);
+penstroke z6e--z66e; draw z66--z666;
+penstroke z4e--z5e; penstroke z55e{left}..{dir(90+kut)}z6e;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+
+beginchar(oct"106",1.2em#,cap#,0); "The letter ho";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+2x3=w-x4=w-x5=curve_sidebar;
+ x2=.3w; y3=-.05h; y5=0; y2=h; y4=.5h;
+z6=.65[z3,z4];
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+penstroke z2e{dir(kut1+10)}..{dir(kut1-10)}z3e;
+
+penpos666((cosd kut)*1.4thick,0); z66=(x6, h); z666=(x5,h);
+%penstroke z6e--z66e;
+draw z66--z666;
+penstroke z5e--z666e; penstroke z55e{left}..{dir(90+kut)}z6e;
+
+z8=(x6,.4[y6,y66]); z9=(x4,y8);
+draw z66{down}..controls z8.. z9;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+beginchar(oct"107",1.6em#,4/3cap#,0); "The letter myl";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x9=x20=w- x13=w-x14=good.x curve_sidebar;
+y9=.5*3/4h;
+y9=y10=y11=y12=y13;
+z10-z9=z11-z10=z12-z11=z13-z12;
+y1=y2=y5=y6=good.y 0;
+x1=w-x6; x2-x1=x6-x5;
+ x1=.5[x9,x10]; x5=.5[x11,x12];
+z4=.5[z9,z10];
+z3=.5[z10,z11]; z7=.5[z11,z12]; z8=.5[z12,z13];
+z20-z9=z19-z10=z17-z11=z15-z12=z14-z13=(0,3/4h-y9);
+z21-z18=z22-z16;
+z18=.5[z19,z17]; z16=.5[z17,z15]; y21=good.y h;
+x18=x21;
+draw z4--z1--z2--z3; draw z7--z5--z6--z8;
+draw z9--z13--z14--z20--cycle; draw z10--z19; draw z11--z17; draw z12--z15;
+draw z18--z21--z22--z16;
+draw z2--z5;
+z.16=.5[z2,z5]; z.166=(x.16,-.3h);
+z.l=(x.16-.1w,y.166); z.r=(x.16+.1w,y.166);
+draw z.16--z.166; draw z.l--z.r;
+endchar;
+
+
+
+beginchar(oct"110",em#,4/3cap#,0); "The letter ly";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x8=w-x6=w-x7=curve_sidebar;
+%x2-x1=x6-x5=.25w; y1=y2=y5=y6=0;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x2-x3=x4-x5=.33(x2-x1);
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+draw z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54--z5
+--z6--z7--z8--z1;
+draw z1--z6;
+z16=.5[z1,z6]; z166=(x16,-.4*3/4*h);
+z.l=(x16-.1w,y166); z.r=(x16+.1w,y166);
+draw z16--z166; draw z.l--z.r;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/croblm.mf b/Master/texmf-dist/fonts/source/public/croatian/croblm.mf
new file mode 100644
index 00000000000..f600ade3bc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/croblm.mf
@@ -0,0 +1,580 @@
+% oct"013" = cc
+% oct"000" = cx (novi)
+% oct"006" = zx (novi)
+% oct"002" = ya, ye
+% oct"004" = yu
+
+
+beginchar("a",.9em#,4/3cap#,0); "The letter a";
+grba:=.6;
+autoround:=4;
+x1=x2=.5w; y1=0; y2=h;
+z2- z3= z4-z2=(.16w,0);
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+draw z1..z2;
+draw z3..z4;
+z5=(curve_sidebar,0); z6=(w/2,grba*h); z7=(w-curve_sidebar,0);
+x8=x5; x9=x7; y8=y9=0.55h;
+draw z5{up}--z8; draw z8..z6..z9;
+draw z9--z7;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+
+beginchar("b",0.8em#,cap#,0); "The letter b";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+smoothing:=4;
+k:=.5;
+x1=w-1.07x2=curve_sidebar; y1=y2=0;
+x3=x4=w-x7=w-x8=curve_sidebar;
+y3+.1h=y5+.05h=y7=k*w;
+y4=y6=y8=h;
+x5=x6=w/2;
+z3=.1[z9,z7];
+draw z4--z1--z2;
+draw z9--z7--z8;
+draw z5--z6;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+beginchar("v",em#,cap#,0); "The letter v";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; y1=y2=0;
+draw z1--z2;
+z5-z1=z9-z2=(0,good.y h);
+z7-z5=z9-z8=z3-z1=z2-z4=z4-z3;
+z77=.2[z7,z3];
+z88=.15[z8,z4]; z99=.15[z9,z2]; z89=.5[z8,z9];
+draw z1--z5..controls z7 ..{down}z77--z3;
+draw z2--z99..controls z9..{left}z89..controls z8..{down}z88--z4;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+
+
+beginchar("g",.95em#,cap#,0); "The letter g";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=2x3=w-x4=w-x5=curve_sidebar;
+ x2=.5w; y3=-.05h; y5=0; y1=y2=h; y4=.6h;
+z6=.5[z3,z4]; z7=.45[z2,z3]; x7:=x7+.02w;
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+z11=(x1,.1[y7,y1]);
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+draw z7{left}..controls z11..{up}z1; draw z1--z2;
+penstroke z2e{dir(kut1+7)}..{dir(kut1-7)}z3e;
+penstroke z4e--z5e; penstroke z55e{left}..{dir(90+kut)}z6e;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+
+
+
+beginchar("d",em#,cap#,0); "The letter d";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x2=w-x5=w-x6= curve_sidebar; y1=y8=y4=y5=0;
+y2=y7=y3=good.y h;
+y9=y6=.45h;
+x8-x1=x4-x8=x5-x4; x8=x7; x4=x9=x3; %x7-x2=x6-x9=x5-x4=x3-x7=x4-x8% .25w; x3=x9=x4=x5-(x7-x2);
+z34=.2[z3,z4]; z3-z23=(.2w,0);
+draw z7--z8--z1--z2--z23..controls z3..{down}z34--z4--z5
+..controls z6..{left}z9;
+endchar;
+
+
+
+
+
+beginchar("j",em#,cap#,0); "The letter j"; % novi
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1-.1w=x2-.1w=w-x7=curve_sidebar;
+x4-x1=x9-x1=x3-x1=x5-x4=x7-x6; y2=y3=y6=y7=good.y h;
+y1=y4=y5=0; x5=x6;
+y9=y8=.5h; x8=x5;
+z10=z7-(0,.45h);
+y99:=.7y9; x99=0;
+draw z1--z2; draw z3--z4;
+draw z5--z6--z7{down}..controls z10..{left}z8
+--z9{left}
+..z99;
+endchar;
+
+
+
+
+beginchar(oct"016",.95em#,cap#,0); "The letter dd";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x2=w-x7=curve_sidebar;
+x4-x1=x9-x1=x3-x1=x5-x4=x7-x6; y2=y3=y6=y7=good.y h;
+y1=y4=y5=0; x5=x6;
+y9=y8=.5h; x8=x5;
+z10=z7-(0,.45h);
+draw z1--z2--z3--z4;
+draw z5--z6--z7{down}..controls z10..{left}z8--z9;
+endchar;
+
+
+
+
+
+
+beginchar("e",.7em#,cap#,0); "The letter e";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x5=w-x3=curve_sidebar;
+y2=good.y 0; y4=good.y h; x2=x4=.45w; x6=.4w; y6=y3=h/2;
+y1=h-y5=.1h;
+z11=(x1,0); z55=(x5,h);
+draw z1--z11--z2{dir(90-90)}..{up}z3..{dir(90+90)}z4--z55--z5;
+draw z6--z3;
+endchar;
+
+
+
+
+
+beginchar(oct"015",em#,cap#,0); "The letter zh";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x2=w-x4=w-x3=curve_sidebar;
+y1=y8=y5=y4=0; z2-z1=z7-z8=z6-z5=z3-z4=(0,good.y h);
+z8-z1=z4-z5=z7-z2=z3-z6=z5-z8;
+z34=.2[z3,z4]; z56=.2[z5,z6];
+z9=.5[z2,z3];
+z11-z9=.6(z3-z9) rotated40;
+z10-z9= (z11-z9) rotated (180-2*40);
+q:=thick;
+y9:=y9+q; y11:=y11+q; y10:=y10+q;
+draw z7--z8--z1--z2--z6..controls z3..{down}z34--z4..
+controls z5..{up}z56--z6;
+draw z10--z9--z11;
+endchar;
+
+beginchar(oct"006",em#,cap#,0); "The letter zx (glagoljski)";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x5=curve_sidebar; x2=.5w; x3=.4w; x4=x1=.4[x5,x3];
+y1= h; bot y4=0; y2=.5h; y5=y3=.25h;
+draw z2{left}..z5{down}..{right}z4..{up}z3..{dir(90+60)}z1;
+transform t; t=identity reflectedabout ((.5w,0),z2);
+addto currentpicture also currentpicture transformed t;
+endchar;
+
+
+
+beginchar("8",.95em#,cap#,0); "The letter 8->dz";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x5=w-x3=w-x4=w-x9=curve_sidebar;
+x2=x6=x8=.5w; x7=.5w-.1w;
+y1=y2=y3=0; y5=y6=y4=.45h; y7=y8=y9=good.y h;
+z66=.1[z6,z8];
+draw z1--z3--z4--z5--cycle;
+draw z2--z8; draw z7--z9{down}..controls (z4+(0,.2h))..z66;
+endchar;
+
+
+
+
+
+beginchar("z",1.1em#,cap#,0); "The letter z";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=5;
+smoothing:=4;
+x1=x4=x5=w-x7=w-x6=good.x curve_sidebar;
+x2=x3=.4w;
+y5=y6=y9=h/2;
+y1=-.2h;
+y2=0;
+ z4-(x1,0)=z3-z2=(0,good.y h);
+z6-z7=z9-z8=(z7-z8) rotated 90=(0,.5h);
+z23=.5[z2,z3];
+penpos23(1.4thick,0);
+draw z23..controls z3..z4--z5;
+k:=1.4/cosd 10;
+penpos1(k*thick,10);
+penpos5(1.4thick,0);
+penstroke z5e--z1e;
+penstroke z1e{dir(20)}..{up}z23e;
+%pickup pencircle xscaled thick yscaled.2thin;
+draw z5--z6--z7{left}..controls z8..{up}z9;
+endchar;
+
+
+
+
+
+beginchar("i",.6em#,cap#,0); "The letter i";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x4=w-x2=w-x5=curve_sidebar;
+y1=y2=0; y4=y5=good.y h;
+z3=(.5w,.52h);
+z=(0,.2h);
+draw z1--z2{up}--(z2+z){up}..z3..
+{up}(z4-z)--z4--
+z5{down}--(z5-z){down}..z3..{down}(z1+z)--z1;
+endchar;
+
+
+
+beginchar("y",1.2em#,cap#,0); "The letter y";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+z3-z1=z2-z3=(w/4,0); z3=(w/2,0);
+y8=y7=good.y h;
+z7-z12=z12-z11=z11-z8=((w-2curve_sidebar)/3,0);
+w-x7=curve_sidebar; %% =x8 reduntantna jedn
+z4=(w/2,.6h); y5=y6=y4;
+z6-z10=z10-z9=z9-z5=z7-z12; z6-z4=z4-z5;
+draw z1--z2;
+draw z3--z4;
+draw z8..controls z5..{right}z9--z6;
+draw z6..controls z7..{left}z12--z8;
+draw z11--z9; draw z12--z10;
+endchar;
+
+beginchar("k",.7em#,cap#,0); "The letter k";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+w-x2=curve_sidebar; x5=.4w;
+y1=0; y5=y4=good.y h; z3=(curve_sidebar,.3h); y2=.3h;
+z1=(x2,0);
+x4=.6w;
+draw z1--z2--z3..{up}z4--z5;
+penlabels(1,2,3,4,5);
+endchar;
+
+
+beginchar("l",em#,4/3cap#,0); "The letter l";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x8=w-x6=w-x7=curve_sidebar;
+%x2-x1=x6-x5=.25w; y1=y2=y5=y6=0;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x2-x3=x4-x5=.33(x2-x1);
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+draw z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54--z5
+--z6--z7--z8--z1;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+
+
+beginchar("m",.9em#,cap#,0); "The letter m";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x3=w-x4= curve_sidebar; x2=x5=.5w; y5=y4=h;
+y1=y2=y3=0; z6=.4[z5,z2];
+draw z1{up}..{dir10}z5--z2;
+draw z6--z4--z3;
+endchar;
+
+
+
+
+
+beginchar("n",.57em#,cap#,0); "The letter n";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+smoothing:=4;
+x1=x4=w-x5=curve_sidebar; x3=.5(x1+x2); x2=.43w;
+y1=y2=0; y5=y4=good.y h; z6=(.5x3,.4h); y3=0;
+z55=(x5,.4[y6,y5]);
+z34=.4[z3,z4]; x34:=x34+.3w;
+draw z3--z4--z5{down}..controls z55and z34..{left}z6;
+%pickup pencircle scaled .7thick;
+draw z1--z2;
+endchar;
+
+
+
+beginchar("o",.7em#,cap#,0); "The letter o";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x4=w-x3=w-x5=w-x6=w-x2=curve_sidebar;
+y4=y3=good.y h; y1=y2=0; y6-y2=y3-y5=.4h;
+draw z6{left}..{down}z1--z2--z3--z4{down}..{right}z5;
+endchar;
+
+
+
+
+
+beginchar("p",.85em#,cap#,-.3cap#); "The letter p";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+draw z1--z2--z36..controls z3..z34--z4--z45..controls z5..z56--z6;
+endchar;
+
+
+
+
+beginchar("r",.7em#,cap#,0); "The letter r";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x3=x4=w-x2=.8w-x5=curve_sidebar;
+y1=y2=0; y4=y5=good.y h; y3=.5h;
+draw z5--z4--z1--z2{dir(90)}..{left}z3;
+endchar;
+
+
+beginchar("s",em#,1.02cap#,0); "The letter s";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x6=w-x8=curve_sidebar;
+x3=x7=.5w;
+x3-x1=x5-x3=.15w;
+x1=x2; x5=x4;
+y2=y4=.4h;
+y1=y5=.1h; top y7= h; y6=y8=.5(y2+y7);
+y3=.9y6;
+x1-x11=x55-x5=.2(x3-x2); bot y11=bot y55=0;
+draw z1--z2{up}..{right}z3..{down}z4--z5;
+draw z11--z55{dir(180-10)}..{up}z5;
+draw z11{dir10}..{up}z1;
+draw z2{left}..{up}z6..{right}z7..{down}z8..{left}z4;
+endchar;
+
+
+
+
+
+
+beginchar("t",em#,cap#,0); "The letter t";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+smoothing:=4;
+x1=x2=w-x4=w-x3=curve_sidebar;
+y1=y8=y5=y4=0; z2-z1=z7-z8=z6-z5=z3-z4=(0,good.y h);
+z8-z1=z4-z5=z7-z2=z3-z6=z5-z8;
+z34=.2[z3,z4]; z56=.2[z5,z6];
+draw z7--z8--z1--z2--z6..controls z3..{down}z34--z4..
+controls z5..{up}z56--z6;
+endchar;
+
+
+
+
+
+
+beginchar("c",.85em#,cap#,0); "The letter c";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+smoothing:=4;
+x23=x3=w-x7=curve_sidebar; bot x5=.55w; x6=.82w; y6=.5h;
+y23=.5[y2,y3];
+y5=0; top z4=(.42w,good.y h); top y3=y4; top y7=h; z1=.45[z4,z5]; x1:=x1-.04w;
+z2-z3=z1-z4;
+z12=.5[z1,z2]; z34=.5[z3,z4];
+penpos6(thick,0); penpos7(1.4thick,0);
+kut:=-10;
+draw z1--z12{left}..{dir angle(z4-z5)}z23..{right}z34--z4{dir (angle(z5-z4)+kut)}
+..{dir (angle(z5-z4)-kut)}z5;
+x55=x5+.4*thick; y55=0; penpos55(.7thick,0);
+penstroke z55e..z6e..z7e;
+endchar;
+
+
+
+
+beginchar(oct"013",.9em#,1.1cap#,0); "The letter cc";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; x3=x5=w-x4=w-x6=.3w;
+x7=w-x8=.5(x3-x1); x11=.5w; x10=w-x9=.5(x7+x11);
+y1=y2=y3=y4=0; y5=y6=y7=y8=y11=.5h; y9=y10=h;
+z12=.3[z10,z7]; z13=.3[z9,z8];
+z14=.5[z12,z13];
+z35=.3[z5,z3]; z46-z4=z35-z3;
+z511=.3[z5,z11]; z116-z6=z5-z511;
+x12:=.2[x12,x14]; x13:=.2[x13,x14];
+draw z1--z2;
+draw z3--z35{up}..z511; draw z4--z46{up}..z116;
+draw z10..z12..z7; draw z7--z8; draw z8..z13..z9;
+pickup pencircle xscaled thick yscaled .2thin
+draw z11--z14;
+draw z12--z13;
+endchar;
+
+
+
+beginchar(oct"011",.8em#,cap#,0); "The letter ch"; %sht ili schch
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.95h; y2=y3=y4=.55h;
+x7=x1+.15h; x8=x4-.15h; y7=y8=0;
+x9=.65[x2,x3]; x10=.35[x3,x4]; y9=y10=.55h;
+z79=z7+(0,.4h);
+z810=z8+(0,.4h);
+draw z1--z2--z3--z4--z5; draw z3--z6;
+draw z9..{down}z79--z7--z8--z810{up}..z10;
+endchar;
+
+
+
+
+beginchar("u",.9em#,cap#,0); "The letter u";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x4=.6w-x3=.6w-x5=.6w-x2=w-x6=curve_sidebar;
+y4=y3=good.y h; y1=y2=0; y5=.5h; y6=.5h;
+k:=.08;
+l:=.1;
+nagib:=85;
+z11=(x1+k*w,l*h);
+z44=(x11,h-y11);
+kut:=180+nagib;
+draw z5{left}.. {dir kut}z11..{left}z1--z2--z3--z4{right}..z44{dir
+-nagib}..{right}z5--z6;
+draw z3{right}..z6{down}..{left}z2;
+endchar;
+
+
+beginchar("f",.75em#,1.2cap#,-.2cap#); "The letter f";
+pickup pencircle xscaled 1.4thick yscaled .3thick;
+autoround:=4;
+x3=w-x4=curve_sidebar; y1=d; y2=h; y3=y4=.5[y1,y2]; y2-y5=y6-y1=.2h;
+x1=x6=x5=x2=.5w;
+z2-z7=z8-z1=.06(0,h); z9=(.5w,y3);
+z13=z3-(0,.27h); z32=z3+(0,.27h);
+z14=z4-(0,.27h); z42=z4+(0,.27h);
+penpos1(1.3thick,0); penpos7(1.1thick,0);
+penpos8(1.1thick,0); penpos2(1.3thick,0); penpos9(thick,0);
+penstroke z1e..z8e..tension1.5..z9e..tension1.5..z7e..z2e;
+draw z3..%controls z13..
+{right}z6{right}..%controls z14 ..
+z4..%controls z42..
+{left}z5..%controls z32..
+cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+
+
+
+
+beginchar("h",.9em#,cap#,0); "The letter h";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+2x3=w-x4=w-x5=curve_sidebar;
+ x2=.3w; y3=-.05h; y5=0; y2=h; y4=.6h;
+z6=.45[z3,z4];
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+penstroke z2e{dir(kut1+10)}..{dir(kut1-10)}z3e;
+penstroke z4e--z5e; penstroke z55e{left}..{dir(90+kut)}z6e;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+
+
+beginchar(oct"014",.8em#,cap#,0); "The letter ss";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.95h; y2=y3=y4=0;
+draw z1--z2--z3--z4--z5; draw z3--z6;
+endchar;
+
+
+
+
+
+beginchar("q",em#,cap#,0); "The letter q->700 (ot)";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+z3-z1=z2-z3=(w/4,0); z3=(w/2,0);
+y8=y7=good.y h;
+x5=x8=w-x6=curve_sidebar;
+z7-z12=z12-z11=z11-z8=((w-2curve_sidebar)/3,0);
+ %% =x8 reduntantna jedn
+z4=(w/2,.45h); y5=y6=y4;
+y9=y10=.6h; x6-x10=x10-x9=x9-x5;
+ z6-z4=z4-z5;
+draw z1--z2;
+draw z3--z4;
+draw z9--z11--z8--z5--z6--z7--z12--z10--cycle;
+endchar;
+
+
+beginchar("6",.4em#,cap#,0); "The symbol meki znak";
+%pickup pencircle scaled .4thick ;
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x2=curve_sidebar; y1= y2=h;
+z3=.5[z1,z2]; y4=.2h; x4=x3;
+draw z1-- z2; draw z4--z3;
+endchar;
+
+
+beginchar(oct"000",em#,cap#,0); "The letter novi cx";
+pickup pencircle xscaled 1.4thick yscaled .25thin;
+x1=w-x2=w-x3=curve_sidebar; x4=x44=.15w;
+x9=x10=.5w; x5=x8=.5[x1,x10]; x6=x7=x12=x11=.5[x10,x2];
+y1=y8=y10=y7=y2=.5h;
+bot y5=bot y6= 0;
+top y44= 1.06h; y4=y9=y11=y3= h/1.1; y12=y44;
+draw z44--z4{down}..z1--z2--z3--z4; draw z9--z10;
+draw z8--z5--z6--z7;
+pickup pencircle xscaled 1.6thick yscaled .25thin;
+draw z11--z12;
+endchar;
+
+beginchar(oct"002",.9em#,cap#,0); "The letter ya,ye";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autorounding:=10;
+smoothing:=10;
+x1=w- x2=w-x3=good.x curve_sidebar; x6=x7=.2w; x9=.2[x7,x8];
+x10=x5=.5[x6,x3];
+x4=x8=good.x .67w; y1=y10=y2=0; y6=y5=y3=y4=good.y .53h; y7=y9=y8=good.y h;
+z23=.2[z2,z3]; z84=.8[z8,z4];
+draw z7--z6{down}..z1--z2--z23{up}..controls z3..{left}z4--z6;
+draw z10--z5; draw z7--z9..controls z8..z84--z4;
+endchar;
+
+
+beginchar(oct"004",.9em#,cap#,0); "The letter yu";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x6=w- x3=w-x4=good.x curve_sidebar; x2=x5=.5w;
+y6=y5=y4=h; y3=.2h; y1=-.1h; y2=.5[y1,y3]; x0=-.2w;
+z0=whatever[z1,z3];
+draw z0--z3--z4--z6--z1; draw z2--z5;
+endchar;
+
+
+beginchar("1",.75em#,cap#,0); "The letter stari tvrdi znak (jor)";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x1=w-x3=w-x4=w-x5=curve_sidebar;
+x2=x8=x6=.5w;
+x7=.3w;
+y1=y2=y3=0;y7=y6=y5=h;
+y4=y8=.5h;
+z88=(x1,.1h);
+draw z1--z3--z5--z7;
+draw z2--z6; draw z4--z8{left}..{down}z88--z1;
+endchar;
+
+beginchar("x",.8em#,.5cap#,0); "The letter x";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+draw (0,0)--(w,0);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/croblv.mf b/Master/texmf-dist/fonts/source/public/croatian/croblv.mf
new file mode 100644
index 00000000000..4f57c92398a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/croblv.mf
@@ -0,0 +1,605 @@
+% oct"023" = Cc
+% oct"001" = Cx (novi)
+% oct"007" = Zx (novi)
+% oct"003" = Ya, Ye
+% oct"005" = Yu
+
+
+
+
+beginchar("A",.9em#,4/3cap#,0); "The letter A";
+grba:=.6;
+autoround:=4;
+x1=x2=.5w; y1=0; y2=h;
+z2- z3= z4-z2=(.16w,0);
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+draw z1..z2;
+draw z3..z4;
+z5=(curve_sidebar,0); z6=(w/2,grba*h); z7=(w-curve_sidebar,0);
+x8=x5; x9=x7; y8=y9=0.55h;
+draw z5{up}--z8; draw z8..z6..z9;
+draw z9--z7;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+
+beginchar("B",0.8em#,cap#,0); "The letter B";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+smoothing:=4;
+k:=.5;
+x1=w-1.07x2=curve_sidebar; y1=y2=0;
+x3=x4=w-x7=w-x8=curve_sidebar;
+y3+.1h=y5+.05h=y7=k*w;
+y4=y6=y8=h;
+x5=x6=w/2;
+z3=.1[z9,z7];
+draw z4--z1--z2;
+draw z9--z7--z8;
+draw z5--z6;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+beginchar("V",em#,cap#,0); "The letter V";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; y1=y2=0;
+draw z1--z2;
+z5-z1=z9-z2=(0,good.y h);
+z7-z5=z9-z8=z3-z1=z2-z4=z4-z3;
+z77=.2[z7,z3];
+z88=.15[z8,z4]; z99=.15[z9,z2]; z89=.5[z8,z9];
+draw z1--z5..controls z7 ..{down}z77--z3;
+draw z2--z99..controls z9..{left}z89..controls z8..{down}z88--z4;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+
+
+
+
+beginchar("G",.95em#,cap#,0); "The letter G";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=2x3=w-x4=w-x5=curve_sidebar;
+ x2=.5w; y3=-.05h; y5=0; y1=y2=h; y4=.6h;
+z6=.5[z3,z4]; z7=.45[z2,z3]; x7:=x7+.02w;
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+z11=(x1,.1[y7,y1]);
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+draw z7{left}..controls z11..{up}z1; draw z1--z2;
+penstroke z2e{dir(kut1+7)}..{dir(kut1-7)}z3e;
+penstroke z4e--z5e; penstroke z55e{left}..{dir(90+kut)}z6e;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+
+
+
+
+beginchar("D",em#,cap#,0); "The letter D";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x2=w-x5=w-x6= curve_sidebar; y1=y8=y4=y5=0;
+y2=y7=y3=good.y h;
+y9=y6=.45h;
+x8-x1=x4-x8=x5-x4; x8=x7; x4=x9=x3; %x7-x2=x6-x9=x5-x4=x3-x7=x4-x8% .25w; x3=x9=x4=x5-(x7-x2);
+z34=.2[z3,z4]; z3-z23=(.2w,0);
+draw z7--z8--z1--z2--z23..controls z3..{down}z34--z4--z5
+..controls z6..{left}z9;
+endchar;
+
+
+
+
+beginchar("J",em#,cap#,0); "The letter J"; % novi
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1-.1w=x2-.1w=w-x7=curve_sidebar;
+x4-x1=x9-x1=x3-x1=x5-x4=x7-x6; y2=y3=y6=y7=good.y h;
+y1=y4=y5=0; x5=x6;
+y9=y8=.5h; x8=x5;
+z10=z7-(0,.45h);
+y99:=.7y9; x99=0;
+draw z1--z2; draw z3--z4;
+draw z5--z6--z7{down}..controls z10..{left}z8
+--z9{left}
+..z99;
+endchar;
+
+
+
+beginchar(oct"026",.95em#,cap#,0); "The letter DD";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x2=w-x7=curve_sidebar;
+x4-x1=x9-x1=x3-x1=x5-x4=x7-x6; y2=y3=y6=y7=good.y h;
+y1=y4=y5=0; x5=x6;
+y9=y8=.5h; x8=x5;
+z10=z7-(0,.45h);
+draw z1--z2--z3--z4;
+draw z5--z6--z7{down}..controls z10..{left}z8--z9;
+endchar;
+
+
+
+
+
+
+beginchar("E",.7em#,cap#,0); "The letter E";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x5=w-x3=curve_sidebar;
+y2=good.y 0; y4=good.y h; x2=x4=.45w; x6=.4w; y6=y3=h/2;
+y1=h-y5=.1h;
+z11=(x1,0); z55=(x5,h);
+draw z1--z11--z2{dir(90-90)}..{up}z3..{dir(90+90)}z4--z55--z5;
+draw z6--z3;
+endchar;
+
+
+
+
+
+beginchar(oct"025",em#,cap#,0); "The letter Zh";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x2=w-x4=w-x3=curve_sidebar;
+y1=y8=y5=y4=0; z2-z1=z7-z8=z6-z5=z3-z4=(0,good.y h);
+z8-z1=z4-z5=z7-z2=z3-z6=z5-z8;
+z34=.2[z3,z4]; z56=.2[z5,z6];
+z9=.5[z2,z3];
+z11-z9=.6(z3-z9) rotated40;
+z10-z9= (z11-z9) rotated (180-2*40);
+q:=thick;
+y9:=y9+q; y11:=y11+q; y10:=y10+q;
+draw z7--z8--z1--z2--z6..controls z3..{down}z34--z4..
+controls z5..{up}z56--z6;
+draw z10--z9--z11;
+endchar;
+
+beginchar(oct"007",em#,cap#,0); "The letter Zx (glagoljski)";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x5=curve_sidebar; x2=.5w; x3=.4w; x4=x1=.4[x5,x3];
+y1= h; bot y4=0; y2=.5h; y5=y3=.25h;
+draw z2{left}..z5{down}..{right}z4..{up}z3..{dir(90+60)}z1;
+transform t; t=identity reflectedabout ((.5w,0),z2);
+addto currentpicture also currentpicture transformed t;
+endchar;
+
+
+
+
+beginchar("9",.95em#,cap#,0); "The letter 9->Dz";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x5=w-x3=w-x4=w-x9=curve_sidebar;
+x2=x6=x8=.5w; x7=.5w-.1w;
+y1=y2=y3=0; y5=y6=y4=.45h; y7=y8=y9=good.y h;
+z66=.1[z6,z8];
+draw z1--z3--z4--z5--cycle;
+draw z2--z8; draw z7--z9{down}..controls (z4+(0,.2h))..z66;
+endchar;
+
+
+
+
+beginchar("Z",1.1em#,cap#,0); "The letter Z";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=5;
+smoothing:=4;
+x1=x4=x5=w-x7=w-x6=good.x curve_sidebar;
+x2=x3=.4w;
+y5=y6=y9=h/2;
+y1=-.2h;
+y2=0;
+ z4-(x1,0)=z3-z2=(0,good.y h);
+z6-z7=z9-z8=(z7-z8) rotated 90=(0,.5h);
+z23=.5[z2,z3];
+penpos23(1.4thick,0);
+draw z23..controls z3..z4--z5;
+k:=1.4/cosd 10;
+penpos1(k*thick,10);
+penpos5(1.4thick,0);
+penstroke z5e--z1e;
+penstroke z1e{dir14}..{up}z23e;
+%pickup pencircle xscaled thick yscaled.2thin;
+draw z5--z6--z7{left}..controls z8..{up}z9;
+endchar;
+
+
+
+
+
+beginchar("I",.6em#,cap#,0); "The letter I";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x4=w-x2=w-x5=curve_sidebar;
+y1=y2=0; y4=y5=good.y h;
+z3=(.5w,.52h);
+z=(0,.2h);
+draw z1--z2{up}--(z2+z){up}..z3..
+{up}(z4-z)--z4--
+z5{down}--(z5-z){down}..z3..{down}(z1+z)--z1;
+endchar;
+
+
+
+beginchar("Y",1.2em#,cap#,0); "The letter Y";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+z3-z1=z2-z3=(w/4,0); z3=(w/2,0);
+y8=y7=good.y h;
+z7-z12=z12-z11=z11-z8=((w-2curve_sidebar)/3,0);
+w-x7=curve_sidebar; %% =x8 reduntantna jedn
+z4=(w/2,.6h); y5=y6=y4;
+z6-z10=z10-z9=z9-z5=z7-z12; z6-z4=z4-z5;
+draw z1--z2;
+draw z3--z4;
+draw z8..controls z5..{right}z9--z6;
+draw z6..controls z7..{left}z12--z8;
+draw z11--z9; draw z12--z10;
+endchar;
+
+
+
+beginchar("K",.7em#,cap#,0); "The letter K";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+w-x2=curve_sidebar; x5=.4w;
+y1=0; y5=y4=good.y h; z3=(curve_sidebar,.3h); y2=.3h;
+z1=(x2,0);
+x4=.6w;
+draw z1--z2--z3..{up}z4--z5;
+penlabels(1,2,3,4,5);
+endchar;
+
+
+
+
+beginchar("L",em#,4/3cap#,0); "The letter L";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x8=w-x6=w-x7=curve_sidebar;
+%x2-x1=x6-x5=.25w; y1=y2=y5=y6=0;
+x2-x1=x5-x2=x6-x5; y1=y2=y5=y6=0;
+x2-x3=x4-x5=.33(x2-x1);
+y3=y4=good.y h; y8=y7=.75h;
+z8-z1=z23-z2; z7-z6=z54-z5;
+draw z1--z2--z23{up}..{dir150}z3--z4{dir-150}..{down}z54--z5
+--z6--z7--z8--z1;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+
+
+
+beginchar("M",.9em#,cap#,0); "The letter M";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x3=w-x4= curve_sidebar; x2=x5=.5w; y5=y4=h;
+y1=y2=y3=0; z6=.4[z5,z2];
+draw z1{up}..{dir10}z5--z2;
+draw z6--z4--z3;
+endchar;
+
+
+
+
+
+
+beginchar("N",.57em#,cap#,0); "The letter N";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+smoothing:=4;
+x1=x4=w-x5=curve_sidebar; x3=.5(x1+x2); x2=.43w;
+y1=y2=0; y5=y4=good.y h; z6=(.5x3,.4h); y3=0;
+z55=(x5,.4[y6,y5]);
+z34=.4[z3,z4]; x34:=x34+.3w;
+draw z3--z4--z5{down}..controls z55and z34..{left}z6;
+%pickup pencircle scaled .7thick;
+draw z1--z2;
+endchar;
+
+
+
+beginchar("O",.7em#,cap#,0); "The letter O";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x4=w-x3=w-x5=w-x6=w-x2=curve_sidebar;
+y4=y3=good.y h; y1=y2=0; y6-y2=y3-y5=.4h;
+draw z6{left}..{down}z1--z2--z3--z4{down}..{right}z5;
+endchar;
+
+
+
+
+
+beginchar("P",.85em#,cap#,-.3cap#); "The letter P";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x2=w-x3=w-x4=curve_sidebar;
+y1=d; %
+ y2=y6=y3=good.y h;
+y5=y4=0; %
+ x4-x5=x3-x6=.33w;
+z36=.33[z3,z6]; z34=.3[z3,z4];
+z45=.33[z5,z4]; z56=.3[z5,z6];
+draw z1--z2--z36..controls z3..z34--z4--z45..controls z5..z56--z6;
+endchar;
+
+
+
+
+beginchar("R",.7em#,cap#,0); "The letter R";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x3=x4=w-x2=.8w-x5=curve_sidebar;
+y1=y2=0; y4=y5=good.y h; y3=.5h;
+draw z5--z4--z1--z2{dir(90)}..{left}z3;
+endchar;
+
+beginchar("S",em#,1.02cap#,0); "The letter S";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x6=w-x8=curve_sidebar;
+x3=x7=.5w;
+x3-x1=x5-x3=.15w;
+x1=x2; x5=x4;
+y2=y4=.4h;
+y1=y5=.1h; top y7= h; y6=y8=.5(y2+y7);
+y3=.9y6;
+x1-x11=x55-x5=.2(x3-x2); bot y11=bot y55=0;
+draw z1--z2{up}..{right}z3..{down}z4--z5;
+draw z11--z55{dir(180-10)}..{up}z5;
+draw z11{dir10}..{up}z1;
+draw z2{left}..{up}z6..{right}z7..{down}z8..{left}z4;
+endchar;
+
+
+
+
+
+%beginchar("S",em#,1.02cap#,0); "The letter S";
+%pickup pencircle xscaled 1.4thick yscaled .3thin;
+%autoround:=4;
+%x1=w-x2=curve_sidebar; bot y1=bot y2=bot y3=bot y4=0; top y7=h; y5=y6=.4h;
+%x3-x1=x2-x4=.05w; x7=w/2; z5=whatever[z3,z7]; z6=whatever[z4,z7];
+%x8=w-x9=x3; y8=y9=.5(y5+y7); draw z1--z2; draw
+%z3--z5{z5-z3}..tension2..{z4-z6}z6--z4; draw
+%z5..{up}z8..{right}z7..{down}z9..z6; endchar;
+
+
+
+
+beginchar("T",em#,cap#,0); "The letter T";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+smoothing:=4;
+x1=x2=w-x4=w-x3=curve_sidebar;
+y1=y8=y5=y4=0; z2-z1=z7-z8=z6-z5=z3-z4=(0,good.y h);
+z8-z1=z4-z5=z7-z2=z3-z6=z5-z8;
+z34=.2[z3,z4]; z56=.2[z5,z6];
+draw z7--z8--z1--z2--z6..controls z3..{down}z34--z4..
+controls z5..{up}z56--z6;
+endchar;
+
+
+
+
+
+
+
+
+beginchar("C",.85em#,cap#,0); "The letter C";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+smoothing:=4;
+x23=x3=w-x7=curve_sidebar; x5=.55w; x6=.82w; y6=.5h;
+y23=.5[y2,y3];
+bot y5=0; top z4=(.42w,good.y h); top y3=y4; top y7=h; z1=.45[z4,z5]; x1:=x1-.04w;
+z2-z3=z1-z4;
+z12=.5[z1,z2]; z34=.5[z3,z4];
+penpos6(thick,0); penpos7(1.4thick,0);
+kut:=-10;
+draw z1--z12{left}..{dir angle(z4-z5)}z23..{right}z34--z4{dir (angle(z5-z4)+kut)}
+..{dir (angle(z5-z4)-kut)}z5;
+x55=x5+.4*thick; y55=0; penpos55(.7thick,0);
+penstroke z55e..z6e..z7e;
+endchar;
+
+
+
+
+beginchar(oct"023",.9em#,1.1cap#,0); "The letter Cc";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; x3=x5=w-x4=w-x6=.3w;
+x7=w-x8=.5(x3-x1); x11=.5w; x10=w-x9=.5(x7+x11);
+y1=y2=y3=y4=0; y5=y6=y7=y8=y11=.5h; y9=y10=h;
+z12=.3[z10,z7]; z13=.3[z9,z8];
+z14=.5[z12,z13];
+z35=.3[z5,z3]; z46-z4=z35-z3;
+z511=.3[z5,z11]; z116-z6=z5-z511;
+x12:=.2[x12,x14]; x13:=.2[x13,x14];
+draw z1--z2;
+draw z3--z35{up}..z511; draw z4--z46{up}..z116;
+draw z10..z12..z7; draw z7--z8; draw z8..z13..z9;
+pickup pencircle xscaled thick yscaled .2thin
+draw z11--z14;
+draw z12--z13;
+endchar;
+
+
+
+beginchar(oct"021",.8em#,cap#,0); "The letter Ch"; %sht ili schch
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.95h; y2=y3=y4=.55h;
+x7=x1+.15h; x8=x4-.15h; y7=y8=0;
+x9=.65[x2,x3]; x10=.35[x3,x4]; y9=y10=.55h;
+z79=z7+(0,.4h);
+z810=z8+(0,.4h);
+draw z1--z2--z3--z4--z5; draw z3--z6;
+draw z9..{down}z79--z7--z8--z810{up}..z10;
+endchar;
+
+
+
+
+beginchar("U",.9em#,cap#,0); "The letter U";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+autoround:=4;
+x1=x4=.6w-x3=.6w-x5=.6w-x2=w-x6=curve_sidebar;
+y4=y3=good.y h; y1=y2=0; y5=.5h; y6=.5h;
+k:=.08;
+l:=.1;
+nagib:=85;
+z11=(x1+k*w,l*h);
+z44=(x11,h-y11);
+kut:=180+nagib;
+draw z5{left}.. {dir kut}z11..{left}z1--z2--z3--z4{right}..z44{dir
+-nagib}..{right}z5--z6;
+draw z3{right}..z6{down}..{left}z2;
+endchar;
+
+
+beginchar("F",.75em#,1.2cap#,-.2cap#); "The letter F";
+pickup pencircle xscaled 1.4thick yscaled .3thick;
+autoround:=4;
+x3=w-x4=curve_sidebar; y1=d; y2=h; y3=y4=.5[y1,y2]; y2-y5=y6-y1=.2h;
+x1=x6=x5=x2=.5w;
+z2-z7=z8-z1=.06(0,h); z9=(.5w,y3);
+z13=z3-(0,.27h); z32=z3+(0,.27h);
+z14=z4-(0,.27h); z42=z4+(0,.27h);
+penpos1(1.3thick,0); penpos7(1.1thick,0);
+penpos8(1.1thick,0); penpos2(1.3thick,0); penpos9(thick,0);
+penstroke z1e..z8e..tension1.5..z9e..tension1.5..z7e..z2e;
+draw z3..%controls z13..
+{right}z6{right}..%controls z14 ..
+z4..%controls z42..
+{left}z5..%controls z32..
+cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+
+
+
+
+
+beginchar("H",.9em#,cap#,0); "The letter H";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+2x3=w-x4=w-x5=curve_sidebar;
+ x2=.3w; y3=-.05h; y5=0; y2=h; y4=.6h;
+z6=.45[z3,z4];
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+penstroke z2e{dir(kut1+10)}..{dir(kut1-10)}z3e;
+penstroke z4e--z5e; penstroke z55e{left}..{dir(90+kut)}z6e;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+
+
+
+beginchar(oct"024",.8em#,cap#,0); "The letter Ss";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.95h; y2=y3=y4=0;
+draw z1--z2--z3--z4--z5; draw z3--z6;
+endchar;
+
+
+
+
+
+beginchar("Q",em#,cap#,0); "The letter Q->700 (Ot)";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+z3-z1=z2-z3=(w/4,0); z3=(w/2,0);
+y8=y7=good.y h;
+x5=x8=w-x6=curve_sidebar;
+z7-z12=z12-z11=z11-z8=((w-2curve_sidebar)/3,0);
+ %% =x8 reduntantna jedn
+z4=(w/2,.45h); y5=y6=y4;
+y9=y10=.6h; x6-x10=x10-x9=x9-x5;
+ z6-z4=z4-z5;
+draw z1--z2;
+draw z3--z4;
+draw z9--z11--z8--z5--z6--z7--z12--z10--cycle;
+endchar;
+
+
+
+
+
+
+beginchar("^",.4em#,cap#,0); "The symbol meki znak";
+%pickup pencircle scaled .4thick ;
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x2=curve_sidebar; y1= y2=h;
+z3=.5[z1,z2]; y4=.2h; x4=x3;
+draw z1-- z2; draw z4--z3;
+endchar;
+
+beginchar(oct"001",em#,cap#,0); "The letter Cx";
+pickup pencircle xscaled 1.4thick yscaled .25thin;
+x1=w-x2=w-x3=curve_sidebar; x4=x44=.15w;
+x9=x10=.5w; x5=x8=.5[x1,x10]; x6=x7=x12=x11=.5[x10,x2];
+y1=y8=y10=y7=y2=.5h;
+bot y5=bot y6= 0;
+top y44= 1.06h; y4=y9=y11=y3= h/1.1; y12=y44;
+draw z44--z4{down}..z1--z2--z3--z4; draw z9--z10;
+draw z8--z5--z6--z7;
+pickup pencircle xscaled 1.6thick yscaled .25thin;
+draw z11--z12;
+endchar;
+
+
+
+beginchar(oct"003",.9em#,cap#,0); "The letter Ya, Yu";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autorounding:=10;
+smoothing:=10;
+x1=w- x2=w-x3=good.x curve_sidebar; x6=x7=.2w; x9=.2[x7,x8];
+x10=x5=.5[x6,x3];
+x4=x8=good.x .67w; y1=y10=y2=0; y6=y5=y3=y4=good.y .53h; y7=y9=y8=good.y h;
+z23=.2[z2,z3]; z84=.8[z8,z4];
+draw z7--z6{down}..z1--z2--z23{up}..controls z3..{left}z4--z6;
+draw z10--z5; draw z7--z9..controls z8..z84--z4;
+endchar;
+
+
+
+beginchar(oct"005",.9em#,cap#,0); "The letter Yu";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x6=w- x3=w-x4=good.x curve_sidebar; x2=x5=.5w;
+y6=y5=y4=h; y3=.2h; y1=-.1h; y2=.5[y1,y3]; x0=-.2w;
+z0=whatever[z1,z3];
+draw z0--z3--z4--z6--z1; draw z2--z5;
+endchar;
+
+beginchar("2",.75em#,cap#,0); "The letter stari tvrdi znak (Jor)";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x1=w-x3=w-x4=w-x5=curve_sidebar;
+x2=x8=x6=.5w;
+x7=.3w;
+y1=y2=y3=0;y7=y6=y5=h;
+y4=y8=.5h;
+z88=(x1,.1h);
+draw z1--z3--z5--z7;
+draw z2--z6; draw z4--z8{left}..{down}z88--z1;
+endchar;
+
+beginchar("X",.8em#,.5cap#,0); "The letter X";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+draw (0,0)--(w,0);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/crocyrm.mf b/Master/texmf-dist/fonts/source/public/croatian/crocyrm.mf
new file mode 100644
index 00000000000..0be4d4b0330
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/crocyrm.mf
@@ -0,0 +1,416 @@
+% oct"034" = dj,j,ch (crkvica), koristim kao ch
+% oct"076" = drugi d
+% oct"015" = zz
+% oct"016" = zz (drugi zz)
+% oct"035" = zx (krizz)
+% oct"026" = zz (glagoljski)
+% oct"027" = drugi r (zaobljeni)
+% oct"031" = yu
+% oct"032" = ye
+% oct"033" = ya
+% 8 = dz
+% 1 = dj,j,ch (pravocrtna crkvica)
+% 4 = d (kut)
+
+beginchar("a",.6em#,1.2cap#,.7cap#); "The letter a";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x7=w-x5=w-x2=w-x3=curve_sidebar;
+x2-x1=x4-x3=.2w; x6=x8=.5[x7,x5];
+y1=-d; y4=h; bot y6=0; y8=.5h/1.2; y7=y5=.5[y6,y8];
+y2=-.7d; y3=.8h;
+draw z1{dir(20)}..{up}z2--z3{up}..{dir(20)}z4;
+draw z5{down}..{left}z6..{up}z7..{right}z8;
+endchar;
+
+beginchar("b",.55em#,1.2cap#,0); "The letter b";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x6=x3=w-x5=curve_sidebar;
+x1=w; x2=.65w;
+x4=x7=.5w;
+bot y4=0; top y2= h; y1=.8h;
+y3=.5h/1.2;
+y6=y5=.25h/1.2;
+y7=.5h/1.2;
+draw z1{up}
+%{dir(90+15)}
+..{left}z2..
+{down}z3..{down}z6..{right}z4..{up}z5..{left}z7;
+pickup pencircle xscaled .3thick yscaled .3thin;
+draw z7{left}..{down}z6;
+endchar;
+
+
+beginchar("v",.7em#,.5cap#,0); "The letter v";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x5=w-x4=w-x8=curve_sidebar;
+x2=x6=w-x3=w-x7=.25w;
+top y1=top y2=top y3=top y4=h;
+bot y5=bot y6=bot y7=bot y8=0;
+draw z1--z4; draw z5--z8;
+draw z2--z6; draw z3--z7;
+endchar;
+
+beginchar("g",.8em#,.5cap#,.5cap#); "The letter g";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=0; w-x6=curve_sidebar;
+x2=.2w; x3=x4=.6w; x5=.5[x4,x6];
+y1=-d; top y2=top y3=h; bot y5=0; y4=y6=x6-x5;
+draw z1{dir angle(z3-z1)}..{up}z2--z3--z4{down}..{right}z5..{up}z6;
+endchar;
+
+beginchar("d",.65em#,.5cap#,0); "The letter d (kao A)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x5=x1=w-x3=w-x4=curve_sidebar;
+x2=.5w;
+bot y1=bot y4=0; y5=y3=.2h; top y2= h;
+draw z1--z5{up}..{right}z2..{down}z3--z4;
+draw z5--z3;
+endchar;
+
+beginchar(oct"076",.55em#,1.2cap#,.7cap#); "The letter drugi d";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x5=curve_sidebar; x5-x6=.1w;
+x2=x3=.3w; x4=.5w;
+bot y1=bot y5=0; y2=-d; y3=h; y4=.5h/1.2; y6=.5y4;
+z56=(x6,.5y6);
+draw z2{dir(90+10)}..{up}z1..{dir(90-10)}z3;
+pickup pencircle xscaled 1.2thick yscaled .25thin;
+draw z1{up}..{right}z4..{down}z6--z56{down}..{right}z5;
+endchar;
+
+
+beginchar("e",.5em#,.5cap#,0); "The letter e";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=w-x3=curve_sidebar; x4=.7w;
+bot y2=0; top y3= h; y1=y4=.5h;
+draw z3{left}..{down}z1..{right}z2;
+draw z1--z4;
+endchar;
+
+beginchar(oct"015",.9em#,.5cap#,0); "The letter zz";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x7=w-x8=w-x4=curve_sidebar;
+x2=1/3[x1,x4]; x3=2/3[x1,x4];
+x5=w-x6=.4[x1,x2];
+bot y1=bot y4=0; top y7=top y8=h; y5=y2=y3=y6=.5h;
+draw z1{right}..{up}z2..{left}z7;
+draw z4{left}..{up}z3..{right}z8;
+draw z5--z6;
+endchar;
+
+beginchar(oct"016",.95em#,.5cap#,0); "The letter zz (drugi)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x7=w-x8=w-x4=curve_sidebar;
+x2=w-x3=.9*1/3[x1,x4];
+x5=w-x6=.4[x1,x2];
+bot y1=bot y4=0; top y7=top y8= h; y5=y2=y3=y6=.5h;
+draw z1{right}..{up}z2..{left}z7;
+draw z4{left}..{up}z3..{right}z8;
+draw z5--z6;
+z78=.5[z7,z8]; z14=.5[z1,z4];
+pickup pencircle xscaled .9thick yscaled .3thin;
+draw z78--z14;
+endchar;
+
+
+beginchar(oct"035",.7em#,.5cap#,0); "The letter zz (krizz)";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x4=w-x3=w-x6=curve_sidebar;
+x2=x5=.5w;
+bot y1=bot y2=y3=0; top y4=top y5=top y6= h;
+draw z1--z6; draw z3--z4;
+pickup pencircle xscaled .9thick yscaled .3thin;
+draw z2--z5;
+endchar;
+
+
+
+
+
+beginchar("z",.6em#,.5cap#,.7cap#); "The letter z";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar; x4-x2=.1w;
+x3=.35w; x5=.25w;
+top y1=top y2= h; bot y3=0; y4=-.5d; y5=-d;
+draw z1--z2--z3{dir(10)}..{down}z4..tension1.3..{left}z5;
+endchar;
+
+beginchar("8",.55em#,.5cap#,0); "The letter dz";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=w-x6=curve_sidebar;
+x4=w-x3=.45w; x2=.6[x1,x3]; x5=.4[x4,x6];
+bot y5=0; top y2= h; y1=y3=h-(x2-x1);
+y4=y6=x5-x4;
+draw z1{up}..{right}z2..{down}z3..{down}z4..{right}z5..{up}z6;
+endchar;
+
+beginchar("j",.55em#,cap#,0); "The letter j (meki poluglas)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar; x3=x4=.5w;
+x7=.7w;
+bot y3=0; y1=y2=.25h; y4=.5h; y7=h;
+path p; p=z1{up}..tension1.2..{right}z7;
+draw p;
+z8=point .5 of p;
+z8-z5=z6-z8=(.25w,0);
+draw z5--z6;
+draw z1{up}..{right}z4..{down}z2..{left}z3..cycle;
+endchar;
+
+
+
+beginchar(oct"034",.8em#,cap#,0); "The letter dj,j,CH (crkvica)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=x4=.5w;x5=w-x6=.25w;
+top y4= h; bot y1=bot y2=0; y3=.5h; y5=y6=.75h;
+draw z3--z4; draw z5--z6;
+draw z1{up}..{right}z3..{down}z2;
+endchar;
+
+
+beginchar("i",.55em#,.5cap#,0); "The letter i";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+bot y2=bot y3=0; top y1=top y4= h;
+z5=.5[z1,z2]; z6=.5[z3,z4];
+draw z1--z2; draw z3--z4; draw z5--z6;
+endchar;
+
+
+beginchar("k",.8em#,.5cap#,0); "The letter k";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x4=w-x6=curve_sidebar;
+x1=x3=.4w; x5=.6w;
+bot y1=bot y4=0; top y3=top y6= h; y2=y5=.5[y1,y3];
+draw z1{left}..{up}z2..{right}z3;
+draw z4{left}..{up}z5..{right}z6;
+endchar;
+
+beginchar("l",.65em#,.5cap#,0); "The letter l";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x3=curve_sidebar;
+x2=.4w; bot y1=bot y3=0; top y2= h;
+draw z1--z2--z3;
+endchar;
+
+
+beginchar("m",.9em#,.5cap#,0); "The letter m";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x5=curve_sidebar;
+x3=.5w; x2=.65[x1,x3]; x4=.5[x3,x5];
+bot y1=bot y3=bot y5=0;
+top y2=top y4= h;
+draw z1--z2--z3--z4--z5;
+endchar;
+
+
+beginchar("n",.5em#,cap#,0); "The letter drugi n";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5-x3=.2w;
+bot y1=0; y2=y3=.5h; y4=.8h; top y5= h;
+draw z1--z2--z3--z4{up}..{right}z5;
+endchar;
+
+beginchar("o",.6em#,.5cap#,0); "The letter drugi o";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=x4=.5w; bot y3=0; y1=y2=.5h; top y4= h;
+draw z1{up}..{right}z4..{down}z2..{left}z3..cycle;
+endchar;
+
+beginchar("p",.6em#,.5cap#,0); "The letter drugi p";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x3=w-x4=curve_sidebar;
+x1=x5=w-x2=w-x6=.25w;
+bot y1=bot y2=0; top y3=top y4=top y5=top y6=h;
+draw z1--z5; draw z2--z6; draw z3--z4;
+endchar;
+
+beginchar("r",.6em#,.5cap#,.5cap#); "The letter r";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x3=curve_sidebar;
+x1=.3w;
+y1=-d; top y2= h; y3=.5h; bot y4=0;
+z4=whatever[z1,z2];
+draw z1--z2{right}..{down}z3..{left}z4;
+endchar;
+
+beginchar(oct"027",.65em#,.5cap#,.7cap#); "The letter drugi r";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=.4w; x4=.5w;
+bot y1=0; top y3= h; y2=.5h;
+y4=-d;
+draw z1{right}..{up}z2..{left}z3..{down}z1..{dir(-40)}z4;
+endchar;
+
+
+
+beginchar("s",.6em#,.5cap#,0); "The letter drugi s";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x4=w-x5=curve_sidebar;
+x1=x3=.5w;
+bot y3=0; top y1=h; y2=.5h;y4=h-y5=.2h;
+draw z5{dir(90+30)}..z1{left}..{down}z2..{right}z3..{dir(90-30)}z4;
+endchar;
+
+beginchar("t",.8em#,.5cap#,0); "The letter drugi t";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=x7=w-x5=w-x8=.2w; x4=x6=.5w;
+top y1=top y7=top y6=top y8=top y2= h;
+bot y3=bot y4=bot y5=0;
+draw z1--z2; draw z3--z7; draw z4--z6; draw z5--z8;
+endchar;
+
+beginchar("h",.6em#,.5cap#,0); "The letter h";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+top y1=top y4= h; bot y2=bot y3=0;
+z5=.6[z3,z1];
+draw z1--z3; draw z2{dir(70)}..z5..z4;
+endchar;
+
+beginchar(oct"014",.8em#,.5cap#,0); "The letter ss";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=h; y2=y3=y4=0;
+draw z1--z2--z3--z4--z5; draw z3--z6;
+endchar;
+
+beginchar(oct"011",.8em#,.5cap#,.4cap#); "The letter sst";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=h; y2=y4=0; y3=-d;
+draw z1--z2--z4--z5; draw z3--z6;
+endchar;
+
+beginchar("c",.6em#,.5cap#,.2cap#); "The letter c";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x4=w-x5=w-x6=curve_sidebar;
+x3=.2[x1,x5];
+top y1=top y6= h; bot y3=bot y5=0; y2-y3=x3-x2; y4=-d;
+draw z1--z2{down}..{right}z3--z5; draw z4--z6;
+endchar;
+
+beginchar(oct"013",.65em#,.5cap#,0); "The letter cc";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x3=curve_sidebar;
+x2=.5[x1,x3];
+top y1=top y3= h; bot y2=0;
+draw z1--z2--z3;
+endchar;
+
+beginchar("u",.5em#,.5cap#,.4cap#); "The letter u";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x5=w-x3=w-x6=curve_sidebar;
+x2=x4=.5w;
+y2=.2h; y1=y6=top h; y4=-d; y5=y3=.5[y4,y2];
+path p; p= z1{down}..z2..{down}z3..{left}z4..{up}z5..z2..{up}z6;
+transform tt; tt=identity shifted (0,d+bot0);
+path q; q= p transformed tt;
+draw q;
+endchar;
+
+beginchar("f",.66em#,.8cap#,.3cap#); "The letter f";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x5=w-x6=curve_sidebar;
+x2=x4=x3=x1=.5w;
+y1=h; y3=.5h/.8; y5=y6=.25h/.8;
+y4=0; y2=-d;
+draw z1--z2; draw z5{up}..{right}z3..{down}z6..{left}z4..cycle;
+endchar;
+
+beginchar("q",.9em#,.5cap#,0); "The letter ot";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x6=curve_sidebar;
+x4=.5w; x1=w-x7=.25w; x3=.5[x2,x4]; x5=.5[x4,x6];
+top y1=top y7=h; bot y3=bot y5=0; y2=y6=y4=.5h;
+draw z1{dir(180+30)}..{down}z2..{right}z3..{up}z4{down}..{right}z5
+..{up}z6..{dir(180-30)}z7;
+endchar;
+
+
+beginchar("6",.6em#,cap#,0); "The letter 6 (meki poluglas)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=0; w-x5=curve_sidebar; x3=x2=x4=1.3curve_sidebar;
+bot y3=0; top y1=top y2= h; y4=.5h; y5=.25h;
+draw z1--z2--z3{right}..{up}z5..{left}z4;
+endchar;
+
+beginchar("7",.66em#,cap#,0); "The letter 7 (tvrdi poluglas)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x5=x7=.5curve_sidebar;
+ w-x4=curve_sidebar;
+x3=x2=x1=.34w;
+x6-x1=x8-x1=x1-x5;
+y1= h; y2=.5h; bot y3=0; y4=.25h;
+y5=y6=.77h;
+y7=y8=.65h;
+ draw z1--z3{right}..{up}z4..{left}z2;
+pickup pencircle xscaled thick yscaled .3thin;
+draw z7--z5--z6--z8;
+endchar;
+
+beginchar(oct"031",.85em#,.5cap#,0); "The letter ju";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=x3=w-x6=curve_sidebar;
+x4=.47w; x5=x7=.5[x4,x6];
+top y1=top y7=h; y4=y3=y6=.5h; bot y2=bot y5= 0;
+draw z1--z2; draw z3--z4; draw z4{down}..{right}z5..{up}z6..{left}z7..cycle;
+endchar;
+
+beginchar(oct"032",.7em#,.5cap#,0); "The letter je";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=x3=w-x6=curve_sidebar;
+x4=.55w; x5=x7=x6;
+top y1=top y7= h; y4=y3=y6=.5h; bot y2=bot y5= 0;
+draw z1--z2; draw z3--z6;
+draw z7{left}..{down}z4..{right}z5;
+endchar;
+
+beginchar(oct"033",.55em#,.5cap#,0); "The letter ja";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+bot y2=bot y3=0; top y1=top y4= h;
+z5=.5[z1,z2]; z6=.5[z3,z4];
+z7=(.5w,y5); z8=(x3,0); z9=.5[z7,z8];
+draw z1--z2; draw z3--z4; draw z5--z6;
+pickup pencircle xscaled .8thick yscaled .2thin;
+draw z7{down}..z9..{down}z8;
+endchar;
+
+
+beginchar("x",.55em#,.5cap#,0); "x,fiktivni";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+draw (0,0)--(0,w);
+endchar;
+
+beginchar("y",.55em#,.5cap#,0); "y, fiktivni";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+draw (0,0)--(0,w);
+endchar;
+
+beginchar("4",1.2em#,cap#,0); "d (kut)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+kut:=40; koef:=.6;
+x1=w-x2=curve_sidebar;
+y1=y2=0;
+y4=0; x4=koef*w;
+z3-z1=(z2-z1)rotated 40; % z3
+z5=koef[z1,z3];
+draw z2--z1--z3;
+draw z4{up}..{dir (90+kut)}z5;
+endchar;
+
+beginchar("1",.8em#,cap#,0); "dj,j,CH (crkvica, pravocrtna)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=x4=.5w;x5=w-x6=.25w;
+top y4= h; bot y1=bot y2=0; y3=.5h; y5=y6=.75h;
+draw z3--z4; draw z5--z6;
+draw z1--z3--z2;
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/crocyrv.mf b/Master/texmf-dist/fonts/source/public/croatian/crocyrv.mf
new file mode 100644
index 00000000000..49d75009da7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/crocyrv.mf
@@ -0,0 +1,426 @@
+% oct"043" = Dd,J,CH (crkvica)
+% oct"100" = drugi D
+% oct"025" = Zz
+% oct"017" = Zz (drugi Zz)
+% oct"000" = Zx (krizz)
+% oct"036" = Zz (glagoljski)
+% oct"020" = drugi R (zaobljeni)
+% oct"001" = Yu
+% oct"002" = Ye
+% oct"003" = Ya
+% ^ = meki poluglas
+% & = tvrdi poluglas
+% 9 = Dz
+% 2 = Dd,J,Ch (pravocrtna crkvica)
+% 5 = D (kut)
+
+beginchar("A",.6em#,1.2cap#,.7cap#); "The letter A";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x7=w-x5=w-x2=w-x3=curve_sidebar;
+x2-x1=x4-x3=.2w; x6=x8=.5[x7,x5];
+y1=-d; y4=h; bot y6=0; y8=.5h/1.2; y7=y5=.5[y6,y8];
+y2=-.7d; y3=.8h;
+draw z1{dir(20)}..{up}z2--z3{up}..{dir(20)}z4;
+draw z5{down}..{left}z6..{up}z7..{right}z8;
+endchar;
+
+beginchar("B",.55em#,1.2cap#,0); "The letter B";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x6=x3=w-x5=curve_sidebar;
+x1=w; x2=.65w;
+x4=x7=.5w;
+bot y4=0; top y2= h; y1=.8h;
+y3=.5h/1.2;
+y6=y5=.25h/1.2;
+y7=.5h/1.2;
+draw z1{up}
+%{dir(90+15)}
+..{left}z2..
+{down}z3..{down}z6..{right}z4..{up}z5..{left}z7;
+pickup pencircle xscaled .3thick yscaled .3thin;
+draw z7{left}..{down}z6;
+endchar;
+
+
+beginchar("V",.7em#,.5cap#,0); "The letter V";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x5=w-x4=w-x8=curve_sidebar;
+x2=x6=w-x3=w-x7=.25w;
+top y1=top y2=top y3=top y4=h;
+bot y5=bot y6=bot y7=bot y8=0;
+draw z1--z4; draw z5--z8;
+draw z2--z6; draw z3--z7;
+endchar;
+
+beginchar("G",.8em#,.5cap#,.5cap#); "The letter G";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=0; w-x6=curve_sidebar;
+x2=.2w; x3=x4=.6w; x5=.5[x4,x6];
+y1=-d; top y2=top y3= h; bot y5=0; y4=y6=x6-x5;
+draw z1{dir angle(z3-z1)}..{up}z2--z3--z4{down}..{right}z5..{up}z6;
+endchar;
+
+beginchar("D",.65em#,.5cap#,0); "The letter D (kao A)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x5=x1=w-x3=w-x4=curve_sidebar;
+x2=.5w;
+bot y1=bot y4=0; y5=y3=.2h; top y2= h;
+draw z1--z5{up}..{right}z2..{down}z3--z4;
+draw z5--z3;
+endchar;
+
+beginchar(oct"100",.55em#,1.2cap#,.7cap#); "The letter drugi D";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x5=curve_sidebar; x5-x6=.1w;
+x2=x3=.3w; x4=.5w;
+bot y1=bot y5=0; y2=-d; y3=h; y4=.5h/1.2; y6=.5y4;
+z56=(x6,.5y6);
+draw z2{dir(90+10)}..{up}z1..{dir(90-10)}z3;
+pickup pencircle xscaled 1.2thick yscaled .25thin;
+draw z1{up}..{right}z4..{down}z6--z56{down}..{right}z5;
+endchar;
+
+
+beginchar("E",.5em#,.5cap#,0); "The letter E";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=w-x3=curve_sidebar; x4=.7w;
+bot y2=0; top y3= h; y1=y4=.5h;
+draw z3{left}..{down}z1..{right}z2;
+draw z1--z4;
+endchar;
+
+beginchar(oct"025",.9em#,.5cap#,0); "The letter Zz";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x7=w-x8=w-x4=curve_sidebar;
+x2=1/3[x1,x4]; x3=2/3[x1,x4];
+x5=w-x6=.4[x1,x2];
+bot y1=bot y4=0; top y7=top y8= h; y5=y2=y3=y6=.5h;
+draw z1{right}..{up}z2..{left}z7;
+draw z4{left}..{up}z3..{right}z8;
+draw z5--z6;
+endchar;
+
+beginchar(oct"017",.95em#,.5cap#,0); "The letter zz (drugi)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x7=w-x8=w-x4=curve_sidebar;
+x2=w-x3=.9*1/3[x1,x4];
+x5=w-x6=.4[x1,x2];
+bot y1=bot y4=0; top y7=top y8= h; y5=y2=y3=y6=.5h;
+draw z1{right}..{up}z2..{left}z7;
+draw z4{left}..{up}z3..{right}z8;
+draw z5--z6;
+z78=.5[z7,z8]; z14=.5[z1,z4];
+pickup pencircle xscaled .9thick yscaled .3thin;
+draw z78--z14;
+endchar;
+
+
+beginchar(oct"000",.7em#,.5cap#,0); "The letter Zz, Zx (krizz)";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x4=w-x3=w-x6=curve_sidebar;
+x2=x5=.5w;
+bot y1=bot y2=bot y3=0; top y4=top y5=top y6= h;
+draw z1--z6; draw z3--z4;
+pickup pencircle xscaled .9thick yscaled .3thin;
+draw z2--z5;
+endchar;
+
+beginchar(oct"036",em#,cap#,0); "The letter zz (glagoljski)";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x5=curve_sidebar; x2=.5w; x3=.4w; x4=x1=.4[x5,x3];
+y1= h; bot y4=0; y2=.5h; y5=y3=.25h;
+draw z2{left}..z5{down}..{right}z4..{up}z3..{dir(90+60)}z1;
+transform t; t=identity reflectedabout ((.5w,0),z2);
+addto currentpicture also currentpicture transformed t;
+endchar;
+
+
+
+
+beginchar("Z",.6em#,.5cap#,.7cap#); "The letter Z";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar; x4-x2=.1w;
+x3=.35w; x5=.25w;
+top y1=top y2= h; bot y3=0; y4=-.5d; y5=-d;
+draw z1--z2--z3{dir(10)}..{down}z4..tension1.3..{left}z5;
+endchar;
+
+beginchar("9",.55em#,.5cap#,0); "The letter Dz";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=w-x6=curve_sidebar;
+x4=w-x3=.45w; x2=.6[x1,x3]; x5=.4[x4,x6];
+bot y5=0; top y2= h; y1=y3=h-(x2-x1);
+y4=y6=x5-x4;
+draw z1{up}..{right}z2..{down}z3..{down}z4..{right}z5..{up}z6;
+endchar;
+
+beginchar("J",.55em#,cap#,0); "The letter J (meki poluglas)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar; x3=x4=.5w;
+x7=.7w;
+bot y3=0; y1=y2=.25h; y4=.5h; y7=h;
+path p; p=z1{up}..tension1.2..{right}z7;
+draw p;
+z8=point .5 of p;
+z8-z5=z6-z8=(.25w,0);
+draw z5--z6;
+draw z1{up}..{right}z4..{down}z2..{left}z3..cycle;
+endchar;
+
+
+
+beginchar(oct"043",.8em#,cap#,0); "The letter DD,J,CH (crkvica)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=x4=.5w;x5=w-x6=.25w;
+top y4= h; bot y1=bot y2=0; y3=.5h; y5=y6=.75h;
+draw z3--z4; draw z5--z6;
+draw z1{up}..{right}z3..{down}z2;
+endchar;
+
+
+beginchar("I",.55em#,.5cap#,0); "The letter I";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+bot y2=bot y3=0; top y1=top y4= h;
+z5=.5[z1,z2]; z6=.5[z3,z4];
+draw z1--z2; draw z3--z4; draw z5--z6;
+endchar;
+
+
+beginchar("K",.8em#,.5cap#,0); "The letter K";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x4=w-x6=curve_sidebar;
+x1=x3=.4w; x5=.6w;
+bot y1=bot y4=0; top y3=top y6= h; y2=y5=.5[y1,y3];
+draw z1{left}..{up}z2..{right}z3;
+draw z4{left}..{up}z5..{right}z6;
+endchar;
+
+beginchar("L",.65em#,.5cap#,0); "The letter L";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x3=curve_sidebar;
+x2=.4w; bot y1=bot y3=0; top y2= h;
+draw z1--z2--z3;
+endchar;
+
+
+beginchar("M",.9em#,.5cap#,0); "The letter M";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x5=curve_sidebar;
+x3=.5w; x2=.65[x1,x3]; x4=.5[x3,x5];
+bot y1=bot y3=bot y5=0;
+top y2=top y4=h;
+draw z1--z2--z3--z4--z5;
+endchar;
+
+
+beginchar("N",.5em#,cap#,0); "The letter drugi N";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5-x3=.2w;
+bot y1=0; y2=y3=.5h; y4=.8h; top y5= h;
+draw z1--z2--z3--z4{up}..{right}z5;
+endchar;
+
+beginchar("O",.6em#,.5cap#,0); "The letter drugi O";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=x4=.5w; bot y3=0; y1=y2=.5h; top y4= h;
+draw z1{up}..{right}z4..{down}z2..{left}z3..cycle;
+endchar;
+
+beginchar("P",.6em#,.5cap#,0); "The letter drugi P";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x3=w-x4=curve_sidebar;
+x1=x5=w-x2=w-x6=.25w;
+bot y1=bot y2=0; top y3=top y4=top y5=top y6=h;
+draw z1--z5; draw z2--z6; draw z3--z4;
+endchar;
+
+beginchar("R",.6em#,.5cap#,.5cap#); "The letter R";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x3=curve_sidebar;
+x1=.3w;
+y1=-d; top y2= h; y3=.5h; bot y4=0;
+z4=whatever[z1,z2];
+draw z1--z2{right}..{down}z3..{left}z4;
+endchar;
+
+beginchar(oct"020",.65em#,.5cap#,.7cap#); "The letter drugi r";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=.4w; x4=.5w;
+bot y1=0; top y3=h; y2=.5h;
+y4=-d;
+draw z1{right}..{up}z2..{left}z3..{down}z1..{dir(-40)}z4;
+endchar;
+
+
+
+beginchar("S",.6em#,.5cap#,0); "The letter drugi S";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x4=w-x5=curve_sidebar;
+x1=x3=.5w;
+bot y3=0; top y1=h; y2=.5h;y4=h-y5=.2h;
+draw z5{dir(90+30)}..z1{left}..{down}z2..{right}z3..{dir(90-30)}z4;
+endchar;
+
+beginchar("T",.8em#,.5cap#,0); "The letter drugi T";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=x7=w-x5=w-x8=.2w; x4=x6=.5w;
+top y1=top y7=top y6=top y8=top y2= h;
+bot y3=bot y4=bot y5=0;
+draw z1--z2; draw z3--z7; draw z4--z6; draw z5--z8;
+endchar;
+
+beginchar("H",.6em#,.5cap#,0); "The letter H";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+top y1=top y4=h; bot y2=bot y3=0;
+z5=.6[z3,z1];
+draw z1--z3; draw z2{dir(70)}..z5..z4;
+endchar;
+
+beginchar(oct"024",.8em#,.5cap#,0); "The letter Ss";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=h; y2=y3=y4=0;
+draw z1--z2--z3--z4--z5; draw z3--z6;
+endchar;
+
+beginchar(oct"021",.8em#,.5cap#,.4cap#); "The letter Sst, Ch";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=h; y2=y4=0; y3=-d;
+draw z1--z2--z4--z5; draw z3--z6;
+endchar;
+
+beginchar("C",.6em#,.5cap#,.2cap#); "The letter C";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x4=w-x5=w-x6=curve_sidebar;
+x3=.2[x1,x5];
+top y1=top y6= h; bot y3=bot y5=0; y2-y3=x3-x2; y4=-d;
+draw z1--z2{down}..{right}z3--z5; draw z4--z6;
+endchar;
+
+beginchar(oct"023",.65em#,.5cap#,0); "The letter Cc";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x3=curve_sidebar;
+x2=.5[x1,x3];
+top y1=top y3= h; bot y2=0;
+draw z1--z2--z3;
+endchar;
+
+beginchar("U",.5em#,.5cap#,.4cap#); "The letter U";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x5=w-x3=w-x6=curve_sidebar;
+x2=x4=.5w;
+y2=.2h; top y1=top y6= h; y4=-d; y5=y3=.5[y4,y2];
+path p; p= z1{down}..z2..{down}z3..{left}z4..{up}z5..z2..{up}z6;
+transform tt; tt=identity shifted (0,d+bot0);
+path q; q= p transformed tt;
+draw q;
+endchar;
+
+beginchar("F",.66em#,.8cap#,.3cap#); "The letter F";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x5=w-x6=curve_sidebar;
+x2=x4=x3=x1=.5w;
+y1=h; y3=.5h/.8; y5=y6=.25h/.8;
+y4=0; y2=-d;
+draw z1--z2; draw z5{up}..{right}z3..{down}z6..{left}z4..cycle;
+endchar;
+
+beginchar("Q",.9em#,.5cap#,0); "The letter Ot";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x2=w-x6=curve_sidebar;
+x4=.5w; x1=w-x7=.25w; x3=.5[x2,x4]; x5=.5[x4,x6];
+top y1=top y7= h; bot y3=bot y5=0; y2=y6=y4=.5h;
+draw z1{dir(180+30)}..{down}z2..{right}z3..{up}z4{down}..{right}z5
+..{up}z6..{dir(180-30)}z7;
+endchar;
+
+
+beginchar("^",.6em#,cap#,0); "The letter 6 (meki poluglas)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=0; w-x5=curve_sidebar; x3=x2=x4=1.3curve_sidebar;
+bot y3=0; top y1=top y2= h; y4=.5h; y5=.25h;
+draw z1--z2--z3{right}..{up}z5..{left}z4;
+endchar;
+
+beginchar("&",.66em#,cap#,0); "The letter 7 (tvrdi poluglas)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x5=x7=.5curve_sidebar;
+ w-x4=curve_sidebar;
+x3=x2=x1=.34w;
+x6-x1=x8-x1=x1-x5;
+y1= h; y2=.5h; bot y3=0; y4=.25h;
+y5=y6=.77h;
+y7=y8=.65h;
+ draw z1--z3{right}..{up}z4..{left}z2;
+pickup pencircle xscaled thick yscaled .3thin;
+draw z7--z5--z6--z8;
+endchar;
+
+beginchar(oct"001",.85em#,.5cap#,0); "The letter Ju";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=x3=w-x6=curve_sidebar;
+x4=.47w; x5=x7=.5[x4,x6];
+top y1=top y7= h; y4=y3=y6=.5h; bot y2=bot y5= 0;
+draw z1--z2; draw z3--z4; draw z4{down}..{right}z5..{up}z6..{left}z7..cycle;
+endchar;
+
+beginchar(oct"002",.7em#,.5cap#,0); "The letter Je";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=x3=w-x6=curve_sidebar;
+x4=.55w; x5=x7=x6;
+top y1=top y7= h; y4=y3=y6=.5h; bot y2=bot y5= 0;
+draw z1--z2; draw z3--z6;
+draw z7{left}..{down}z4..{right}z5;
+endchar;
+
+beginchar(oct"003",.55em#,.5cap#,0); "The letter Ja";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+bot y2=bot y3=0; top y1=top y4= h;
+z5=.5[z1,z2]; z6=.5[z3,z4];
+z7=(.5w,y5); z8=(x3,0); z9=.5[z7,z8];
+draw z1--z2; draw z3--z4; draw z5--z6;
+pickup pencircle xscaled .8thick yscaled .2thin;
+draw z7{down}..z9..{down}z8;
+endchar;
+
+
+beginchar("X",.55em#,.5cap#,0); "The letter X, fiktivni";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+draw (0,0)--(0,w);
+endchar;
+
+beginchar("Y",.55em#,.5cap#,0); "The letter Y, fiktivni";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+draw (0,0)--(0,w);
+endchar;
+
+beginchar("5",1.2em#,cap#,0); "d (kut)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+kut:=40; koef:=.6;
+x1=w-x2=curve_sidebar;
+y1=y2=0;
+y4=0; x4=koef*w;
+z3-z1=(z2-z1)rotated 40; % z3
+z5=koef[z1,z3];
+draw z2--z1--z3;
+draw z4{up}..{dir (90+kut)}z5;
+endchar;
+
+beginchar("2",.8em#,cap#,0); "dj,j,CH (crkvica, pravocrtno)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x3=x4=.5w;x5=w-x6=.25w;
+top y4= h; bot y1=bot y2=0; y3=.5h; y5=y6=.75h;
+draw z3--z4; draw z5--z6;
+draw z1--z3--z2;
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/gg.mf b/Master/texmf-dist/fonts/source/public/croatian/gg.mf
new file mode 100644
index 00000000000..746d82786fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/gg.mf
@@ -0,0 +1,31 @@
+
+% Croatian Glagolitic
+% L I G A T U R E S, 1992, darko.zubrinic@etf.hr
+
+
+mode_setup;
+ u#:=.8pt#; font_quad= 30u#;
+ font_normal_space= 10u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=1/10em;
+
+
+
+
+input croation-i % fajl sa ligaturama
+
+
+
+\baselineksip=6truemm;
+
+end.
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/gg10.mf b/Master/texmf-dist/fonts/source/public/croatian/gg10.mf
new file mode 100644
index 00000000000..62320e0383c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/gg10.mf
@@ -0,0 +1,40 @@
+
+% Croatian Glagolitic
+% L I G A T U R E S, darko.zubrinic@etf.hr
+
+
+mode_setup;
+ u#:=.8pt#; font_quad= 30u#;
+ font_normal_space= 10u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=1/10em;
+
+
+
+
+mode_setup;
+u#:=3/4u#;
+em#:=3/4em#; cap#:=3/4cap#;
+ thick#:=3/4thick#;
+o#:=3/4o#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+%curve_sidebar:=3/4curve_sidebar;
+
+
+
+
+input croatian-i % fajl sa ligaturama
+
+
+end.
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/ggv.mf b/Master/texmf-dist/fonts/source/public/croatian/ggv.mf
new file mode 100644
index 00000000000..fb3d6b8480b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/ggv.mf
@@ -0,0 +1,29 @@
+
+% Croatian Glagolitic
+% L I G A T U R E S, darko.zubrinic@etf.hr
+
+
+mode_setup;
+ u#:=4/3*.8pt#; font_quad= 30u#;
+ font_normal_space= 10u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=4/3*10pt#; cap#:=4/3*7pt#;
+ thin#:=2/3pt#; thick#:=1.15*5/6pt#;
+ o#:=4/3*1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=4/3*1/10em;
+
+
+
+
+input croatian-i % fajl sa ligaturama
+
+
+end.
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/ggv1.mf b/Master/texmf-dist/fonts/source/public/croatian/ggv1.mf
new file mode 100644
index 00000000000..3e244f674c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/ggv1.mf
@@ -0,0 +1,26 @@
+
+% Croatian Glagolitic, remaining ligatures
+% darko.zubrinic@etf.hr
+
+
+
+mode_setup;
+ u#:=4/3*.8pt#; font_quad= 30u#;
+ font_normal_space= 10u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=4/3*10pt#; cap#:=4/3*7pt#;
+ thin#:=2/3pt#; thick#:=1.15*5/6pt#;
+ o#:=4/3*1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=4/3*1/10em;
+
+
+
+
+input kraj % fajl sa ligaturama
+
+
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/glz.mf b/Master/texmf-dist/fonts/source/public/croatian/glz.mf
new file mode 100644
index 00000000000..b03a7ea3903
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/glz.mf
@@ -0,0 +1,183 @@
+
+thick:=1.6thick;
+
+
+
+
+
+beginchar(".",.4em#,cap#,0); "The symbol .";
+pickup pencircle scaled thick ;
+z1=(.5w,.5thick); % z2=(.3w,0); z3=(.3w,.1w); z4=(.2w,.1w);
+drawdot z1;
+%fill z1--z2--z3--z4--cycle;
+endchar;
+
+
+
+
+
+beginchar(",",.4em#,cap#,0); "The symbol ,";
+pickup pencircle scaled thick ;
+z1=(.3w,0); z2=(.3w+.8thick,0);
+z3=(.3w+.8thick,.1w+.8thick); z4=(.3w,.1w+.8thick);
+fill z1--z2--z3--z4--cycle;
+z5=(.3w,-.3w); z6=.5[z1,z2];
+fill z6--z2{down}..{dir70}z5{dir70}..{up}z6..cycle;
+picture zarez; zarez=currentpicture;
+endchar;
+
+
+
+beginchar(";",.4em#,cap#,0); "The symbol ;";
+pickup pencircle scaled thick ;
+transform t; t=identity;
+addto currentpicture also zarez transformed t;
+z3=(.3w+.8thick,.1w+.8thick); z4=(.3w,.1w+.8thick);
+z7=.5[z3,z4]+(0,.2h);
+drawdot z7;
+endchar;
+
+
+beginchar("`",.4em#,cap#,0); "The symbol `";
+transform t;
+t=identity shifted (0,h);
+transform s; s=identity reflectedabout ((.5w,0),(.5w,h));
+transform u;
+u= (identity transformed t) transformed s; % kompozicija funkcija
+addto currentpicture also zarez transformed u;
+endchar;
+
+
+
+
+beginchar("'",.4em#,cap#,0); "The symbol '";
+transform t;
+t=identity shifted (0,h);
+addto currentpicture also zarez transformed t;
+endchar;
+
+
+
+
+beginchar("!",.4em#,cap#,0); "The symbol !";
+h:=4/3h;
+smoothing:=2;
+pickup pencircle scaled thick ;
+z1=(.5w,.5thick); z2=(.5w,.3h); z3=(.5w,h);
+penpos2(.4thick,0); penpos3(thick,0);
+drawdot z1;
+penstroke z2e--z3e;
+endchar;
+
+
+beginchar("?",.8em#,cap#,0); "The symbol ?";
+h:=4/3h;
+pickup pencircle scaled thick ;
+penpos5(.6thick,150);
+penpos4(.8thick,90); penpos3(.8thick,0);
+penpos2(.7thick,-20); penpos1(.6thick,0);
+z0=(.5w,.5thick);
+x1=x2=x4=.5w;
+y4=h;
+y1=.25h;
+y2=.4h;
+y4-y5=y4-y3=.2h;
+x5=w-x3=curve_sidebar;
+penstroke z1e--z2e{up}..z3e{up}..{left}z4e..z5e{dir(180+60)};
+drawdot z0;
+endchar;
+
+
+
+beginchar(":",.4em#,cap#,0); "The symbol :";
+pickup pencircle scaled thick ;
+x1=x2=.5w; y1=.5thick; y2=.7h;
+drawdot z1;
+drawdot z2;
+endchar;
+
+
+beginchar("-",.5em#,cap#,0); "The symbol -";
+pickup pencircle scaled .5thick ;
+x1=w-x2=curve_sidebar; y1= y2=.5h;
+draw z1-- z2;
+endchar;
+
+
+beginchar(oct"173",.8em#,cap#,0); "The symbol --";
+pickup pencircle scaled .4thick ;
+x1=w-x2=curve_sidebar; y1= y2=.5h;
+draw z1-- z2;
+picture crtica; crtica=currentpicture;
+endchar;
+
+
+
+beginchar("+",.8em#,cap#,0); "The symbol +";
+a:=.5w; b:=.5h;
+transform t; transform s;
+t:=identity rotatedaround ((a,b),90);
+s:= identity;
+addto currentpicture also crtica transformed t;
+addto currentpicture also crtica transformed s;
+endchar;
+
+
+
+beginchar("=",.8em#,cap#,0); "The symbol =";
+transform t; transform s;
+t=identity shifted (0,.1h);
+s=identity shifted (0,-.1h);
+addto currentpicture also crtica transformed t;
+addto currentpicture also crtica transformed s;
+endchar;
+
+
+
+beginchar("(",.5em#,cap#,0); "The symbol (";
+x1=x3=w-curve_sidebar;
+y1=-.3h; y3=h+.3h;
+y2=.5(y1+y3);
+x2=curve_sidebar;
+ penpos3(.1thick,-30); penpos2(.8thick,0);
+ penpos1(.1thick,30);
+penstroke z1e{curl1}..z2e..{curl1}z3e;
+picture lijevaz; lijevaz=currentpicture;
+endchar;
+
+
+
+beginchar(")",.5em#,cap#,0); "The symbol )";
+transform t;
+t= identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also lijevaz transformed t;
+endchar;
+
+
+
+
+beginchar("*",.6em#,cap#,0); "Kvadraticc *";
+%pickup pencircle scaled .2thick;
+.5w-x1=x2-.5w=thick; y1=y2=.5h;
+.5h-y3=y4-.5h=thick; x3=x4=.5w;
+fill z1--z3--z2--z4--cycle;
+endchar;
+
+
+
+
+
+
+%beginchar(oct"174",.9em#,cap#,0); "The symbol ---";
+%pickup pencircle scaled .7thick ;
+%%h:=3/4h;
+%x1=w-x2=curve_sidebar; y1= y2=.5h;
+%draw z1-- z2;
+%endchar;
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/hcyr.mf b/Master/texmf-dist/fonts/source/public/croatian/hcyr.mf
new file mode 100644
index 00000000000..a4c2dfeadcb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/hcyr.mf
@@ -0,0 +1,70 @@
+
+% Croatian Cyrillic, 1995, darko.zubrinic@etf.hr
+
+
+mode_setup;
+ u#:=4/3*.8pt#; font_quad= 30u#;
+ font_normal_space= 10u#; %umjesto 8
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=4/3*10pt#; cap#:=4/3*7pt#;
+ thin#:=2/3pt#; thick#:=1.15*5/6pt#;
+ o#:=4/3*1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:= round 1.1*1/10em;
+input crocyrv % velika slova
+
+mode_setup;
+u#:=3/4u#;
+em#:=3/4em#; cap#:=3/4cap#;
+ thick#:=1/1.15thick#;
+o#:=3/4o#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+%curve_sidebar:=3/4curve_sidebar;
+
+input crocyrm
+
+input glz % znakovi
+
+
+
+
+
+ligtable "c": "c" =: oct"013", "h" =: oct"011";
+ligtable "s": "s" =: oct"014"; %umjesto sh
+ligtable "z": "h" =: oct"015", "z" =: oct"015", "x" =: oct"035"; % "o" kern -.5u#,
+ % "u" kern -.5u#;
+ligtable "d": "d" =: oct"034"; % "d" =: oct"012";
+ligtable "y": "u" =: oct"031", "e" =: oct"032", "a" =: oct"033";
+ligtable "-": "-" =: oct"173";
+%ligtable "e": "i" kern -.5u#;
+%ligtable "f": "o" kern -u#, "u" kern -u#, "i" kern -.5u#, "g" kern-.5u#;
+%ligtable "i": "f" kern -.5u#;
+%ligtable "r": "k" kern -.5u#;
+%ligtable "n": "a" kern -.5u#;
+%ligtable "j": "a" kern -.5u#;
+
+u#:=4/3u#;
+
+
+ligtable "C": "c" =: oct"023", "C" =: oct"023", "h" =: oct"021", "H" =: oct"021";
+ligtable "S": "s" =: oct"024", "S" =: oct"024"; %umjesto sh
+ligtable "Z": "Z" =: oct"025",
+ "z" =: oct"025", "x" =: oct"000", "X" =: oct"000"; % "o" kern -.5u#,
+ % "u" kern -.5u#;
+ligtable "D": "d" =: oct"043", "D" =: oct"043"; % "d" =: oct"012";
+ligtable "Y": "u" =: oct"001", "U" =: oct"001",
+ "e" =: oct"002", "E" =: oct"002",
+ "a" =: oct"003", "A" =: oct"003";
+%ligtable "-": "-" =: oct"173";
+%ligtable "e": "i" kern -.5u#;
+%ligtable "f": "o" kern -u#, "u" kern -u#, "i" kern -.5u#, "g" kern-.5u#;
+%ligtable "i": "f" kern -.5u#;
+%ligtable "r": "k" kern -.5u#;
+%ligtable "n": "a" kern -.5u#;
+%ligtable "j": "a" kern -.5u#;
+
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/croatian/kraj.mf b/Master/texmf-dist/fonts/source/public/croatian/kraj.mf
new file mode 100644
index 00000000000..764c1769ad7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/kraj.mf
@@ -0,0 +1,240 @@
+
+
+beginchar(oct"075",1.1em#,cap#,0); "The letter jeje"; % \jeje
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x6=w-x8=w-x10=curve_sidebar;
+x3=x4=.5w; x2=x5=w-x7=w-x9=.5[x6,x4];
+x12-x4=x4-x11=.2w;
+y5=y7=0;; y11=y12=.5h; y2=y9=h;
+y3-y11=y11-y4=.2h;
+y2-y1=y6-y5=y9-y10=y8-y7=.2h;
+draw z1{up}..{right}z2..{down}z3--z4{down}..{left}z5..{up}z6;
+draw z10{up}..{left}z9..{down}z3;
+draw z4{down}..{right}z7..{up}z8;
+draw z11--z12;
+endchar;
+
+beginchar(oct"076",1.2em#,cap#,0); "The letter izze";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x11=x12=x16=x15=w-x4=w-x5=w-x9=curve_sidebar;
+x18=x17=x13=x14=.4w;
+x1=x8=.55w; x2-x1=x4-x3=x7-x8=x5-x6=.15w;
+x9-x10=.15w;
+y15=y14=y7=y6=bot 0;
+y11=y18=y2=y3=top h;
+y11-y12=y16-y15=y18-y17=y13-y14=.2h;
+y8-y7=y2-y1=.2h;
+y3-y4=y5-y6=.4h;
+y10=y9=.5h;
+% kut=30;
+z19=(.5w,top h); y20=y21=4/3h;
+x19-x20=x21-x19=.1w;
+z20-z23=z22-z21=z21-z20;
+
+draw z11--z3{right}..{down}z4--z5{down}..z6{left}--z7{left}..{up}z8;
+draw z1{up}..{right}z2;
+draw z10--z9;
+draw z11--z12{down}..{down}z13--z14--z15--z16{up}..{up}z17--z18;
+pickup pencircle xscaled 1.2thick yscaled .25thin;
+draw z23--z20--z19--z21--z22;
+endchar;
+
+
+beginchar(oct"077",1.2em#,cap#,0); "The letter jezze";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x11=x12=x16=x15=w-x4=w-x5=w-x9=curve_sidebar;
+x18=x17=x13=x14=.4w;
+x1=x8=.55w; x2-x1=x4-x3=x7-x8=x5-x6=.15w;
+x9-x10=.15w;
+y15=y14=y7=y6=bot 0;
+y11=y18=y2=y3=top h;
+y11-y12=y16-y15=y18-y17=y13-y14=.2h;
+y8-y7=y2-y1=.2h;
+y3-y4=y5-y6=.4h;
+y10=y9=.5h;
+z19=(.5w,top h); y20=y21=4/3h;
+x19-x20=x21-x19=.1w;
+z20-z23=z22-z21=z21-z20;
+
+draw z1{up}..z2{right}--z3{right}..{down}z4--z5{down}..z6{left}--z7{left}..{up}z8;
+draw z10--z9;
+z2-z19=z19-z30;
+
+
+pomak:=x1-x11;
+transform t; t=identity shifted (-pomak,0);
+addto currentpicture also currentpicture transformed t;
+pickup pencircle xscaled 1.2thick yscaled .25thin;
+draw z23--z20--z19--z21--z22;
+draw z2--z30;
+endchar;
+
+
+beginchar(oct"100",.85em#,cap#,0); "The letter krizz";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x1=w-x2=curve_sidebar;
+x3=.5w; y1=y2=y3=.5h;
+sbr:=2;
+penpos1(sbr*thick,90);
+penpos2(sbr*thick,90);
+penpos3(sbr*.5thick,90);
+penstroke z1e..z3e..z2e;
+transform t; t=identity rotatedaround (z3,90);
+addto currentpicture also currentpicture transformed t;
+endchar;
+
+
+beginchar(oct"101",1.5em#,cap#,0); "The letter jazze";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x2=w-x14=w-x19=w-x13=
+curve_sidebar;
+x1=.14w;
+x10=x17=.65w; x19-x18=.15w;
+x11-x10=x13-x12=x16-x17=x14-x15=.15w;
+
+x4=x5=.5w;
+x3=x8=.5[x2,x4];
+x7=x77=x8+.04w;
+x6=x4-.1w;
+
+x20=.5w; x20-x21=x22-x20=.1w;
+y24=y21=y22=y23=4/3h;
+z21-z24=z23-z22=z22-z21;
+
+y2=y3=y4=y16=y15=bot 0;
+y1=y7=y11=y12=y20=top h;
+y8=y77=y6=y18=y19=.5[y2,y1];
+y6-y5=x5-x6;
+y17-y16=y11-y10=.2h;
+y12-y13=y14-y15=.4h;
+
+z9=.5[z2,z1];
+
+draw z4--z2--z1--z12{right}..{down}z13--z14{down}..{left}z15--z16{left}..
+{up}z17; draw z18--z19; draw z10{up}..{right}z11;
+draw z7--z77; draw z4--z5{up}
+..{left}z6--z9; draw z8--z3;
+
+draw z24--z21--z20--z22--z23;
+endchar;
+
+
+beginchar(oct"102",1.2em#,cap#,0); "The letter komentar";
+pickup pencircle xscaled 1.5thick yscaled .3thin;
+x3=w-x1=w-x5=curve_sidebar;
+y3=.5h; y1=4/3h; y5=-1/3h;
+z22=(.5w,4/3h); z44=(.5w,-1/3h); z88=.5[z22,z44];
+path kr; kr=z1{left}..{down}z3..{right}z5;
+draw kr;
+z4= kr intersectionpoint (z44--z88);
+z2= kr intersectionpoint (z22--z88);
+pickup pencircle xscaled thick yscaled thick;
+penpos2(thick,20);
+penpos4(thick,-20);
+penstroke z2e--z4e;
+pickup pencircle xscaled thick yscaled .3thin;
+z6-z88=z88-z7=.22*(z2-z4);
+z8-z88=1.4(z7-z88) rotated 90;
+draw z6{right}..{down}z8..{left}z7;
+endchar;
+
+beginchar(oct"103",1.2em#,cap#,0); "The letter go";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=2x3=w-x4=w-x5=curve_sidebar;
+ x2=.4w; y3=-.05h; y5=0; y1=y2=h; y4=.5h;
+z6=.65[z3,z4]; z7=.45[z2,z3]; x7:=x7+.02w;
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+z11=(x1,.1[y7,y1]);
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+draw z7{left}..controls z11..{up}z1; draw z1--z2;
+penstroke z2e{dir(kut1+7)}..{dir(kut1-7)}
+z3e;
+
+penpos666((cosd kut)*1.4thick,0); z66=(x6, h); z666=(x5,h);
+penstroke z5e--z666e; penstroke z55e{left}..{dir(90+kut)}z6e;
+
+z8=(x6,.4[y6,y66]); z9=(x4,y8);
+ draw z666--z66{down}..controls z8..{right}z9;
+
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+
+beginchar(oct"104",1.2em#,cap#,0); "The letter gr";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=2x3=w-x4=w-x5=curve_sidebar;
+ x2=.4w; y3=-.05h; y5=0; y1=y2=h; y4=.5h;
+z6=.65[z3,z4]; z7=.45[z2,z3]; x7:=x7+.02w;
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+z11=(x1,.1[y7,y1]);
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+draw z7{left}..controls z11..{up}z1; draw z1--z2;
+penstroke z2e{dir(kut1+7)}..{dir(kut1-7)}
+z3e;
+
+penpos66((cosd kut)*1.4thick,0); z66=(x6, h); z666=(x5,h);
+penstroke z4e--z5e; penstroke z55e{left}..{dir(90+kut)}z6e;
+penstroke z6e--z66e; draw z66--z666;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+beginchar(oct"105",1.2em#,cap#,0); "The letter hr";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+2x3=w-x4=w-x5=curve_sidebar;
+ x2=.3w; y3=-.05h; y5=0; y2=h; y4=.5h;
+z6=.65[z3,z4];
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+penstroke z2e{dir(kut1+10)}..{dir(kut1-10)}z3e;
+
+penpos66((cosd kut)*1.4thick,0); z66=(x6, h); z666=(x5,h);
+penstroke z6e--z66e; draw z66--z666;
+penstroke z4e--z5e; penstroke z55e{left}..{dir(90+kut)}z6e;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+
+beginchar(oct"106",1.2em#,cap#,0); "The letter ho";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+2x3=w-x4=w-x5=curve_sidebar;
+ x2=.3w; y3=-.05h; y5=0; y2=h; y4=.5h;
+z6=.65[z3,z4];
+z55=z5-(.69thick,-.15thin);
+kut:=angle(z4-z3);
+kut1:=angle(z3-z2);
+k:=1.4/cosd kut;
+penpos2(1.4thick,0); penpos3(k*thick,kut);
+penpos6(1.4thick,kut); penpos5(1.4thick,0); penpos4(k*thick,kut);
+penpos55(.3thin,90);
+penstroke z2e{dir(kut1+10)}..{dir(kut1-10)}z3e;
+
+penpos666((cosd kut)*1.4thick,0); z66=(x6, h); z666=(x5,h);
+%penstroke z6e--z66e;
+draw z66--z666;
+penstroke z5e--z666e; penstroke z55e{left}..{dir(90+kut)}z6e;
+
+z8=(x6,.4[y6,y66]); z9=(x4,y8);
+draw z66{down}..controls z8.. z9;
+pickup pencircle xscaled 1.4thick yscaled.3thin rotated kut;
+draw z3--z4;
+endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/kur.mf b/Master/texmf-dist/fonts/source/public/croatian/kur.mf
new file mode 100644
index 00000000000..cb859548960
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/kur.mf
@@ -0,0 +1,81 @@
+
+% Cursive Croatian Glagolitic, 1994, darko.zubrinic@etf.hr
+
+
+
+mode_setup;
+ u#:=4/3*.8pt#; font_quad= 30u#;
+ font_normal_space= 10u#; %umjesto 8
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=4/3*10pt#; cap#:=4/3*7pt#;
+ thin#:=2/3pt#; thick#:=1.15*5/6pt#;
+ o#:=4/3*1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:= round 1.1*1/10em;
+currenttransform := identity slanted 1/4;
+
+input kurzivv % velika slova
+
+
+
+mode_setup;
+u#:=3/4u#;
+em#:=3/4em#; cap#:=3/4cap#;
+ thick#:=1/1.15thick#;
+o#:=3/4o#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+%curve_sidebar:=3/4curve_sidebar;
+
+currenttransform := identity slanted 1/4;
+
+input kurzivm % mala slova
+
+
+input glz % znakovi
+
+
+
+
+
+ligtable "c": "c" =: oct"013", "h" =: oct"011";
+ligtable "s": "s" =: oct"014"; %umjesto sh
+ligtable "z": "h" =: oct"015", "z" =: oct"015"; % "o" kern -.5u#,
+ % "u" kern -.5u#;
+ligtable "y": "a" =: oct"176", "e" =: oct"176", "u" =: oct"177";
+%ligtable "l": "l" =: oct"017";
+ligtable "-": "-" =: oct"173";
+%ligtable "e": "i" kern -.5u#;
+%ligtable "f": "o" kern -u#, "u" kern -u#, "i" kern -.5u#, "g" kern-.5u#;
+%ligtable "i": "f" kern -.5u#;
+%ligtable "r": "k" kern -.5u#;
+%ligtable "n": "a" kern -.5u#;
+%ligtable "y": "a" kern -.5u#;
+
+u#:=4/3u#;
+
+
+
+ligtable "C": "c" =: oct"023", "C" =: oct "023", "H" =:
+ oct"021", "h" =: oct"021";
+ligtable "S": "S" =: oct"024", "s" =: oct"024";
+ligtable "Z": "h" =: oct"025", "Z" =: oct"025", "z"=: oct"025",
+ "H" =: oct"025"; % "O" kern -.5u#,
+ %"u" kern -.5u#;
+
+ligtable "Y": "a" =: oct"136", "A" =: oct"136", "e" =: oct"136",
+ "E" =: oct"136", "u" =: oct"137", "U" =: oct"137";
+
+%ligtable "L": "l" =: oct"027", "L" =: oct"027";
+%ligtable "E": "I" kern -.5u#;
+%ligtable "F": "O" kern -u#, "U" kern -u#, "I" kern -.5u#, "G" kern-.5u#;
+%ligtable "I": "F" kern -.5u#;
+%ligtable "R": "K" kern -.5u#;
+%ligtable "N": "A" kern -.5u#;
+
+
+
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/kurzivm.mf b/Master/texmf-dist/fonts/source/public/croatian/kurzivm.mf
new file mode 100644
index 00000000000..b86770b3174
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/kurzivm.mf
@@ -0,0 +1,432 @@
+% oct"074" = drugi s (s trokutichem)
+% oct"074" = drugi s (s trokutichem)
+
+beginchar("a",.8em#,cap#,0); "The letter a";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x4=w-x2=w-x3=curve_sidebar; x5=x6=.5w;
+bot y1=bot y5=bot y2= 0; y3=y4=.5h; top y6= h;
+draw z1--z4--z3--z2; draw z5--z6;
+endchar;
+
+beginchar("b",.9em#,.5cap#,.6cap#); "The letter b";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x7=w-1.07x5=curve_sidebar; x6=x4=.51w; x2=.2w;
+bot y3=bot y4=bot y5= 0; top y1=top y6=top y7= h;
+y2=-d; z3=whatever[z1,z2];
+draw z1--z2; draw z3--z5--z7; draw z4--z6;
+endchar;
+
+beginchar("d",.9em#,1.2cap#,0); "The letter d";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=curve_sidebar;
+x3=.4w;
+ x2=x4=.5[x1,x3]; x5=.5w;
+y1=y3=x2-x1; y4=2y1; bot y2=0; top y5= h;
+draw z1{down}..{right}z2..{up}z3..{left}z4..cycle; z13=.5[z1,z3];
+kut:=10;
+z33-z13=(z3-z13) rotated kut;
+draw z33{dir (kut+90)}..{right}z5;
+z66=(w-x33,y33);
+z6=(w-x1,y1);
+z7=(w-x2,y2);
+z8=(w-x3,y3);
+z9=(w-x4,y4);
+draw z8{down}..{right}z7..{up}z6..{left}z9..cycle;
+draw z66{dir (90-kut)}..{left}z5;
+picture slovo_d; slovo_d=currentpicture;
+endchar;
+
+
+
+beginchar("g",.9em#,1.2cap#,0); "The letter g";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+mm:=.25w-.5curve_sidebar;
+transform sa; sa=identity rotatedabout ((.5w+1/4mm,mm),180);
+addto currentpicture also slovo_d transformed sa;
+endchar;
+
+
+
+beginchar("e",.4em#,.5cap#,0); "The letter e";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x3=w-x2=curve_sidebar; bot y3=0; y2=.5h; top y1= h;
+draw z1{right}.. {down}z2..{left}z3;
+endchar;
+
+beginchar("z",em#,1.2cap#,.7cap#); "The letter z";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x2=w-x7=curve_sidebar;
+rb:=.22h;
+x4=.38w; x3=x1=.5[x2,x4]; x9=x7-2rb;
+x6=x8=.5[x9,x7];
+y1=h;
+y2=y4=y6=2rb;
+bot y8=0; y9=y7=.5[y6,y8];
+y3=-d;
+bot z22=(x2,0); bot z44=(x4,0);
+kut:=55;
+draw z22--z2{up}..{dir kut}z1{dir(-kut)}..{down}z4--z44{down}..tension1.5..
+%{dir(180+kut)}z3{dir(180-kut)}
+{left}z3
+..tension1.5.. {up}z22;
+draw z2--z6{right}..{down}z7..{left}z8..{up}z9..{right}z6;
+endchar;
+
+beginchar("8",em#,cap#,0); "The letter dz";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=
+w-x4=w-x5=w-1.2x8=w-1.2x7=curve_sidebar;
+x3=x6=x10=.5w;
+x12=.2w; x9=x11=.5[x12,x10];
+bot y2=bot y3=bot y4=0; y1=y5=.5h; y6=.47h;
+y9=.75h; y11-y9=x10-x12; y10=y12=.5[y9,y11];
+y9-y8=.07h; y8-y7=.07h;
+z100=(x10,y7);
+draw z1--z2--z4--z5; draw z3--z6;
+pickup pencircle xscaled 1.1thick yscaled .2thin;
+draw z100--z10{up}..{left}z11..{down}z12..{right}z9..{down}z8--z7;
+endchar;
+
+
+
+
+beginchar("i",.9em#,.5cap#,0); "The letter i";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x2=w-x6=curve_sidebar;
+x1=x3=w-x7=w-x5=.3w;
+x4=.5w;
+bot y3=bot y7= 0; top y1=top y5= h; y2=y4=y6=.5h;
+draw z1{left}..{down}z2..{right}z3..z4..{right}z5..{down}z6..{left}z7;
+endchar;
+
+beginchar("j",1.1em#,.5cap#,.5cap#); "The letter j";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x6=w-x4=curve_sidebar;
+x3=x7=.6w; x2=x8=.5[x1,x3];
+x1-x5=x4-x3;
+top y1=top y2=top y3= h;
+y6+.1h=y8=y7-.1h= 0;
+-y5=y4=.6h;
+z9=(x1,-d);
+draw z1--z3{right}..{down}z4
+..tension 1.3..{dir angle(z6-z7)}z7--z6{dir angle(z6-z7)}..tension1.3..
+{down}z5..tension1.3..
+{dir angle(z7-z6)}z9;
+z66=(x6,-.5d);
+z88=(x8,-.5d);
+z77=(x7,-.5d);
+draw z1--z66; draw z2--z88; draw z3--z77;
+endchar;
+
+
+beginchar("y",.9em#,.5cap#,.8cap#); "The letter izze-10";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x6=.9x9=w-x3=w-x4=w-.9x10=w-.9x11=curve_sidebar;
+x5=x2=x7=.5w;
+x8=.5[x9,x7];
+y6=y5=y4=h; bot y1=bot y2=bot y3= 0;
+y7=-.4d; y9=y10=.5[y7,y8];
+y8=-d; y11=-.9d;
+draw z5--z6--z1--z3--z4--z5--z7{down}..{left}z8..{up}z9..
+%{right}z7..
+tension3..
+{down}z10--z11;
+endchar;
+
+
+
+beginchar("k",.4em#,.5cap#,.7cap#); "The letter k";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x3=w-x2=w-x4=w-x5=curve_sidebar;
+x6-x5=x2-x1=x7-x6;
+top y1= h; y2=.5h; bot y3=0; y4=-.33d; y6=-d;
+y5-y6=y7-y6=x6-x5;
+draw z1{right}..{down}z2..{left}z3{right}..{down}z4--z5{down}
+..z6{right}..{up}z7;
+endchar;
+
+
+
+
+beginchar("m",.9em#,.5cap#,0); "The letter m";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=w-x8=w-x9=curve_sidebar;
+x3=x2=.25w; x5=x6=.5[x3,x9];
+x4=.5[x3,x6]; x7=.5[x6,x9];
+top y1=top y4=top y7= h; y2=y5=y8=.5h;
+bot y3=bot y6=bot y9=0;
+draw z1{right}..{down}z2--z3;
+draw z2{up}..{right}z4..{down}z5--z6;
+draw z5{up}..{right}z7..{down}z8--z9;
+endchar;
+
+
+beginchar("n",.5em#,.5cap#,.7cap#); "The letter n";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x4=curve_sidebar; y1=h; y2=-d; x2=2curve_sidebar; y3=0; z3= whatever[z1,z2];
+y4=.5h;
+draw z1--z2; draw z1{right}..{dir(angle(z2-z1))}z4..{left}z3;
+endchar;
+
+beginchar("o",.65em#,.5cap#,.8cap#); "The letter o";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x3=x7=w-x8=curve_sidebar;
+x1=.7w; x2-x3=x4-x3=x1-x2;;
+x5=.8w; x6=.5w;
+bot y2=bot y8=0; y1=y3=.5h; top y4= h;
+y5=-.3d; y6=-d; y7=-.85d;
+draw z1{down}..{left}z2..{up}z3..{right}z4..{dir(-90+15)}z1..{down}z5
+..{left}z6..z7{up}..{dir(20)}z8;
+endchar;
+
+
+beginchar("p",.75em#,.5cap#,.5cap#); "The letter p";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x6=curve_sidebar;
+x5=.5w; x4=.5[x5,x6];
+y1=-d; bot y4=0; y5=y6=.5h; top y2=top y3= h;
+draw z1--z2--z3--z6{down}..{left}z4..{up}z5;
+endchar;
+
+
+
+beginchar("r",.55em#,1.2cap#,0); "The letter r";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x6=x3=w-x5=curve_sidebar;
+x1=w; x2=.65w;
+x4=x7=.5w;
+bot y4=0; top y2= h; y1=.8h;
+y3=.5h/1.2;
+y6=y5=.25h/1.2;
+y7=.5h/1.2;
+draw z1{up}
+%{dir(90+15)}
+..{left}z2..
+{down}z3..{down}z6..{right}z4..{up}z5..{left}z7;
+pickup pencircle xscaled .3thick yscaled .3thin;
+draw z7{left}..{down}z6;
+endchar;
+
+beginchar("s",.7em#,cap#,0); "The letter s";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x4=w-x5=curve_sidebar;
+x3=x6=.5w; top y6= h;
+y3=.4h;
+y4=y5=.78h;
+y1=y7=.5y3;
+x1=w-x7=.3w; bot z2=(.5w,0);
+draw z1{up}..z3{dir (30)}..{up}z5..{left}z6..{down}z4..{dir(-30)}z3..
+{down}z7..{left}z2..cycle;
+endchar;
+
+
+
+beginchar(oct"074",.7em#,cap#,0); "The letter drugi s";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x4=w-x5=w-x2=curve_sidebar;
+x3=x6=.5w; bot y1=bot y2=0; top y6= h;
+y3=.3h;
+y4=y5=.78h;
+draw z1--z2--z3{dir (angle(z3-z2))}..{up}z4..{right}z6..{down}z5..
+{dir(angle(z1-z3))}z3--z1;
+endchar;
+
+
+
+beginchar(oct"014",.8em#,.5cap#,0); "The letter ss";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.95h; y2=y3=y4=0;
+draw z1--z2--z3--z4--z5; draw z3--z6;
+endchar;
+
+beginchar("c",.85em#,1.2cap#,.7cap#); "The letter c";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=w-x6=curve_sidebar;
+x8-x6=x6-x3;
+x3=.55w; x2=x4=.5[x1,x3]; x5=.5[x3,x6]; x7=.5[x6,x8];
+y1=y3=y6=.25h/1.2; y2=0; y4-y3=y3-y2;
+top y7=h; y8=.7h; y5=-d;
+draw z1{down}..z2{right}..{up}z3..{left}z4..cycle;
+draw z3{down} %..tension1.3
+..{right}z5 %..tension1.2
+..{dir (angle(z7-z5)+18)}
+z6
+..{right}z7..%tension1.4..
+{down}z8;
+endchar;
+
+
+
+beginchar("q",em#,.5cap#,.5cap#); "The letter ot";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x5=w-x6=curve_sidebar;
+x3=x7=w-x4=w-x8=.37w; x7-x9=x10-x8=.15w;
+top y1=top y3=top y4=top y5= h;
+bot y2=bot y6=0; y9=y7=y8=y10=-d;
+z37=(x3,.7h);
+z48=(x4,.7h);
+draw z7--z37{up}..{left}z1--z2--z6--z5{left}..{down}z48--z8;
+draw z9--z10;
+endchar;
+
+
+beginchar(oct"013",.55em#,.5cap#,.7cap#); "The letter cc";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x8=x2=w-x5=w-x4=w-x6=curve_sidebar;
+x3=.5[x1,x5]; bot y3=0; y1=y5=h;
+y2=y4=.33h;
+y7=-d;
+y6=-.52d; y8=y9=.5[y7,y6];
+x9-x6=x6-x8;
+x7=.5w;
+z66=(x6,-.45d); z99=(x9,-.9d);
+draw z1--z2{down}..{right}z3..{up}z4;
+draw z5--z6{down} ..{left}z7..{up}z8..{right}z66..{down}z9--z99;
+endchar;
+
+beginchar("u",.5em#,.5cap#,.4cap#); "The letter u";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x5=w-x3=w-x6=curve_sidebar;
+x2=x4=.5w;
+y2=.2h+d; top y1=top y6=h+d; bot y4=0; y5=y3=.5[y4,y2];
+draw z1{down}..z2..{down}z3..{left}z4..{up}z5..z2..{up}z6;
+endchar;
+
+
+
+
+
+beginchar("v",.95em#,.5cap#,0); "The letter v";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x7=w-x8=curve_sidebar;
+x1-x7=x9-x4=x3-x10=x8-x2=.05w;
+x9=w-x10=.37w; x5=w-x6=.5[x1,x4];
+bot y1=bot y4=bot y3=bot y2=0;
+top y5=top y6=h; y7=y9=y10=y8=.5h;
+draw z1..z7{up}..{right}z5..{down}z9..z4;
+draw z1--z2;
+draw z2..z8{up}..{left}z6..{down}z10..z3;
+picture slovo_v; slovo_v=currentpicture;
+endchar;
+
+beginchar("t",.95em#,.5cap#,0); "The letter t";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+transform s; s=identity rotatedabout ((.5w+1/4*.5h,.5h),180);
+addto currentpicture also slovo_v transformed s;
+endchar;
+
+beginchar("l",.95em#,cap#,0); "The letter l";
+transform t; t=identity rotatedabout ((.5w+1/4*.25h,.25h),180);
+addto currentpicture also slovo_v transformed t;
+pickup pencircle xscaled .8thick yscaled .3thin;
+x10=w-2curve_sidebar;
+rr:=.13h;
+x40=x60=.5w;
+x40-x50=x30-x40=rr;
+x20=x50;
+h:=1.2h;
+top y10=top y20= h; y50=y30=.75h;
+y50-y40=y60-y50=rr;
+draw z50{down}..z40{right}..{up}z30..{left}z60..cycle;
+draw z30{up}..{left}z20--z10;
+endchar;
+
+
+
+beginchar(oct"015",.95em#,.5cap#,0); "The letter zz";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+transform s; s=identity rotatedabout ((.5w+1/4*.5h,.5h),180); %.25
+addto currentpicture also slovo_v transformed s;
+x1=w-x3=.25w; y1=y3=1.6h;
+top z2=(.5w,h);
+draw z1{right}..{down}z2{up}..{right}z3;
+endchar;
+
+beginchar(oct"011",.8em#,.5cap#,.7cap#); "The letter ch";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5=.5w;
+top y1=top 1.1y5=top y4= h;
+bot y2=bot y3= 0;
+x6=.5w; x8=w-x9=w-x99=0;
+x7=.45[x6,x8];
+y7=-d;
+y6=-.52d; y8=.5[y7,y6]; y9=.6[y8,-d]; y99=-d;
+draw z1--z2--z3--z4;
+%pickup pencircle xscaled thick yscaled .3thin;
+draw z5--z6{down}..{left}z7..{up}z8...{right}z6...
+{down}z9--z99;
+endchar;
+
+
+
+
+beginchar(oct"022",.8em#,.5cap#,.5cap#); "druga varijanta ch";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5=x6=.5w; x9=.8w;
+x7-x6=x9-x8=1/4(x9-x6);
+top y1=top y5=top y4= h;
+bot y2=bot y3=0;
+y9=-d; y6=y8=.-1/3d; y7=y10=-2/3d;
+x10=x9; x78=.5[x7,x8]; y78=.5[y7,y8];
+draw z1--z2--z3--z4;
+pickup pencircle xscaled thick yscaled .3thin;
+draw z5--z6{down}..{right}z7..z78..
+{right}z8..{down}z10--z9;
+endchar;
+
+beginchar("f",.85em#,1.2cap#,.7cap#); "The letter f";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x2=curve_sidebar; x4=x11=.5w;
+x1=x3=.5[x2,x4];
+x13=.8w; x12-x11=x13-x12;
+y3=0; y2=y4=x3-x2=.5y1; y12=h; y12-y11=y12-y13=x12-x11;
+z5=(w-x1,y1); z6=(w-x2,y2); z7=(w-x3,y3); z8=(x11,-d+(y12-y11));
+z9=(w-x12,-d); z10=(w-x13,-d+(y12-y13));
+draw z1{left}..{down}z2..{right}z3..{up}z4--z11{up}..{right}z12..{down}z13;
+draw z7{right}..{up}z6..{left}z5..{down}z4--z8{down}..{left}z9..{up}z10;
+endchar;
+
+
+
+beginchar("h",.6em#,1.2cap#,.7cap#); "The letter h";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=x6=w-x4=curve_sidebar;
+x3=x5=.5[x1,x4]; x8=.75w; x7=.5[x1,x8];
+y1=-d; bot y2=bot y5= 0; y3= .5h/1.2; y4=.5 y3;
+top y7= h; y6=y8=.8h;
+draw z1--z6{up}..{right}z7..{down}z8;
+draw z2{up}..{right}z3..{down}z4..{left}z5;
+endchar;
+
+
+
+beginchar(oct"176",.9em#,1.2cap#,0); "The letter jat";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x5=w-x4=curve_sidebar;
+x3=.55w; x2-x1=.5(x3-x1); x6=.65w;
+bot y1=bot y3=bot y4=0; y5=.25h/1.2;
+y7=y6=.5h/1.2; top y2=h;
+z7=whatever[z1,z2];
+draw z1--z2--z3; draw z7--z6{right}..{down}z5--z4--z1;
+endchar;
+
+beginchar(oct"177",.8em#,.5cap#,.5cap#); "The letter ju";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x6=w-x4=curve_sidebar;
+x3=x7=.5w;
+x1-x5=x4-x3;
+top y1=top y3= h;
+y6+.1h=y7-.1h= 0;
+-y5=y4=.6h;
+z9=(x1,-d);
+draw z1--z3{right}..{down}z4
+..tension 1.3..{dir angle(z6-z7)}z7--z6{dir angle(z6-z7)}..tension1.3..
+{down}z5..%tension1.1..
+{dir angle(z7-z6)}z9;
+draw z1--z6; draw z3--z7;
+endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/kurzivv.mf b/Master/texmf-dist/fonts/source/public/croatian/kurzivv.mf
new file mode 100644
index 00000000000..ce0102bbdad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/kurzivv.mf
@@ -0,0 +1,429 @@
+% oct"076" = drugi s (s trokutichem)
+% oct"076" = drugi s (s trokutichem)
+
+beginchar("A",.8em#,cap#,0); "The letter A";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x4=w-x2=w-x3=curve_sidebar; x5=x6=.5w;
+bot y1=bot y5=bot y2= 0; y3=y4=.5h; top y6= h;
+draw z1--z4--z3--z2; draw z5--z6;
+endchar;
+
+beginchar("B",.9em#,.5cap#,.6cap#); "The letter B";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x7=w-1.07x5=curve_sidebar; x6=x4=.51w;; x2=.2w;
+bot y3=bot y4=bot y5= 0; top y1=top y6=top y7= h;
+y2=-d; z3=whatever[z1,z2];
+draw z1--z2; draw z3--z5--z7; draw z4--z6;
+endchar;
+
+beginchar("D",.9em#,1.2cap#,0); "The letter D";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=curve_sidebar;
+x3=.4w;
+ x2=x4=.5[x1,x3]; x5=.5w;
+y1=y3=x2-x1; y4=2y1; bot y2=0; top y5= h;
+draw z1{down}..{right}z2..{up}z3..{left}z4..cycle; z13=.5[z1,z3];
+kut:=10;
+z33-z13=(z3-z13) rotated kut;
+draw z33{dir (kut+90)}..{right}z5;
+z66=(w-x33,y33);
+z6=(w-x1,y1);
+z7=(w-x2,y2);
+z8=(w-x3,y3);
+z9=(w-x4,y4);
+draw z8{down}..{right}z7..{up}z6..{left}z9..cycle;
+draw z66{dir (90-kut)}..{left}z5;
+picture slovo_D; slovo_D=currentpicture;
+endchar;
+
+
+
+beginchar("G",.9em#,1.2cap#,0); "The letter G";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+mm:=.25w-.5curve_sidebar;
+transform sa; sa=identity rotatedabout ((.5w+1/4*.25mm,mm),180);
+addto currentpicture also slovo_D transformed sa;
+endchar;
+
+
+beginchar("E",.4em#,.5cap#,0); "The letter E";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x3=w-x2=curve_sidebar; bot y3=0; y2=.5h; top y1= h;
+draw z1{right}.. {down}z2..{left}z3;
+endchar;
+
+beginchar("Z",em#,1.2cap#,.7cap#); "The letter Z";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x2=w-x7=curve_sidebar;
+rb:=.22h;
+x4=.38w; x3=x1=.5[x2,x4]; x9=x7-2rb;
+x6=x8=.5[x9,x7];
+y1=h;
+y2=y4=y6=2rb;
+bot y8=0; y9=y7=.5[y6,y8];
+y3=-d;
+bot z22=(x2,0); bot z44=(x4,0);
+kut:=55;
+draw z22--z2{up}..{dir kut}z1{dir(-kut)}..{down}z4--z44{down}..tension1.5..
+%{dir(180+kut)}z3{dir(180-kut)}
+{left}z3
+..tension1.5.. {up}z22;
+draw z2--z6{right}..{down}z7..{left}z8..{up}z9..{right}z6;
+endchar;
+
+beginchar("9",em#,cap#,0); "The letter Dz";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=
+w-x4=w-x5=w-1.2x8=w-1.2x7=curve_sidebar;
+x3=x6=x10=.5w;
+x12=.2w; x9=x11=.5[x12,x10];
+bot y2=bot y3=bot y4=0; y1=y5=.5h; y6=.47h;
+y9=.75h; y11-y9=x10-x12; y10=y12=.5[y9,y11];
+y9-y8=.07h; y8-y7=.07h;
+z100=(x10,y7);
+draw z1--z2--z4--z5; draw z3--z6;
+pickup pencircle xscaled 1.1thick yscaled .2thin;
+draw z100--z10{up}..{left}z11..{down}z12..{right}z9..{down}z8--z7;
+endchar;
+
+
+
+
+beginchar("I",.9em#,.5cap#,0); "The letter I";
+pickup pencircle xscaled 1.3thick yscaled .25thin;
+x2=w-x6=curve_sidebar;
+x1=x3=w-x7=w-x5=.3w;
+x4=.5w;
+bot y3=bot y7= 0; top y1=top y5= h; y2=y4=y6=.5h;
+draw z1{left}..{down}z2..{right}z3..z4..{right}z5..{down}z6..{left}z7;
+endchar;
+
+beginchar("J",1.1em#,.5cap#,.5cap#); "The letter J";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x6=w-x4=curve_sidebar;
+x3=x7=.6w; x2=x8=.5[x1,x3];
+x1-x5=x4-x3;
+top y1=top y2=top y3= h;
+y6+.1h=y8=y7-.1h= 0;
+-y5=y4=.6h;
+z9=(x1,-d);
+draw z1--z3{right}..{down}z4
+..tension 1.3..{dir angle(z6-z7)}z7--z6{dir angle(z6-z7)}..tension1.3..
+{down}z5..tension1.3..
+{dir angle(z7-z6)}z9;
+z66=(x6,-.5d);
+z88=(x8,-.5d);
+z77=(x7,-.5d);
+draw z1--z66; draw z2--z88; draw z3--z77;
+endchar;
+
+
+beginchar("Y",.9em#,.5cap#,.8cap#); "The letter Izze-10";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x6=.9x9=w-x3=w-x4=w-.9x10=w-.9x11=curve_sidebar;
+x5=x2=x7=.5w;
+x8=.5[x9,x7];
+y6=y5=y4=h; bot y1=bot y2=bot y3= 0;
+y7=-.4d; y9=y10=.5[y7,y8];
+y8=-d; y11=-.9d;
+draw z5--z6--z1--z3--z4--z5--z7{down}..{left}z8..{up}z9..
+%{right}z7..
+tension3..
+{down}z10--z11;
+endchar;
+
+
+
+beginchar("K",.4em#,.5cap#,.7cap#); "The letter K";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x3=w-x2=w-x4=w-x5=curve_sidebar;
+x6-x5=x2-x1=x7-x6;
+top y1= h; y2=.5h; bot y3=0; y4=-.33d; y6=-d;
+y5-y6=y7-y6=x6-x5;
+draw z1{right}..{down}z2..{left}z3{right}..{down}z4--z5{down}
+..z6{right}..{up}z7;
+endchar;
+
+
+
+
+beginchar("M",.9em#,.5cap#,0); "The letter M";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=w-x8=w-x9=curve_sidebar;
+x3=x2=.25w; x5=x6=.5[x3,x9];
+x4=.5[x3,x6]; x7=.5[x6,x9];
+top y1=top y4=top y7= h; y2=y5=y8=.5h;
+bot y3=bot y6=bot y9=0;
+draw z1{right}..{down}z2--z3;
+draw z2{up}..{right}z4..{down}z5--z6;
+draw z5{up}..{right}z7..{down}z8--z9;
+endchar;
+
+
+beginchar("N",.5em#,.5cap#,.7cap#); "The letter N";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x4=curve_sidebar; y1=h; y2=-d; x2=2curve_sidebar; y3=0; z3= whatever[z1,z2];
+y4=.5h;
+draw z1--z2; draw z1{right}..{dir(angle(z2-z1))}z4..{left}z3;
+endchar;
+
+beginchar("O",.65em#,.5cap#,.8cap#); "The letter O";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x3=x7=w-x8=curve_sidebar;
+x1=.7w; x2-x3=x4-x3=x1-x2;;
+x5=.8w; x6=.5w;
+bot y2=bot y8=0; y1=y3=.5h; top y4= h;
+y5=-.3d; y6=-d; y7=-.85d;
+draw z1{down}..{left}z2..{up}z3..{right}z4..{dir(-90+15)}z1..{down}z5
+..{left}z6..z7{up}..{dir(20)}z8;
+endchar;
+
+
+beginchar("P",.75em#,.5cap#,.5cap#); "The letter P";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x6=curve_sidebar;
+x5=.5w; x4=.5[x5,x6];
+y1=-d; bot y4=0; y5=y6=.5h; top y2=top y3= h;
+draw z1--z2--z3--z6{down}..{left}z4..{up}z5;
+endchar;
+
+
+
+beginchar("R",.55em#,1.2cap#,0); "The letter R";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x6=x3=w-x5=curve_sidebar;
+x1=w; x2=.65w;
+x4=x7=.5w;
+bot y4=0; top y2= h; y1=.8h;
+y3=.5h/1.2;
+y6=y5=.25h/1.2;
+y7=.5h/1.2;
+draw z1{up}
+%{dir(90+15)}
+..{left}z2..
+{down}z3..{down}z6..{right}z4..{up}z5..{left}z7;
+pickup pencircle xscaled .3thick yscaled .3thin;
+draw z7{left}..{down}z6;
+endchar;
+
+beginchar("S",.7em#,cap#,0); "The letter S";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x4=w-x5=curve_sidebar;
+x3=x6=.5w; top y6=h;
+y3=.4h;
+y4=y5=.78h;
+y1=y7=.5y3;
+x1=w-x7=.3w; bot z2=(.5w,0);
+draw z1{up}..z3{dir (30)}..{up}z5..{left}z6..{down}z4..{dir(-30)}z3..
+{down}z7..{left}z2..cycle;
+endchar;
+
+
+
+beginchar(oct"076",.7em#,cap#,0); "The letter drugi S";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x4=w-x5=w-x2=curve_sidebar;
+x3=x6=.5w; bot y1=bot y2=0; top y6=h;
+y3=.3h;
+y4=y5=.78h;
+draw z1--z2--z3{dir (angle(z3-z2))}..{up}z4..{right}z6..{down}z5..
+{dir(angle(z1-z3))}z3--z1;
+endchar;
+
+
+
+beginchar(oct"024",.8em#,.5cap#,0); "The letter Ss";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.95h; y2=y3=y4=0;
+draw z1--z2--z3--z4--z5; draw z3--z6;
+endchar;
+
+beginchar("C",.85em#,1.2cap#,.7cap#); "The letter C";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=w-x6=curve_sidebar;
+x8-x6=x6-x3;
+x3=.55w; x2=x4=.5[x1,x3]; x5=.5[x3,x6]; x7=.5[x6,x8];
+y1=y3=y6=.25h/1.2; y2=0; y4-y3=y3-y2;
+top y7= h; y8=.7h; y5=-d;
+draw z1{down}..z2{right}..{up}z3..{left}z4..cycle;
+draw z3{down} %..tension1.3
+..{right}z5 %..tension1.2
+..{dir (angle(z7-z5)+18)}
+z6
+..{right}z7..%tension1.4..
+{down}z8;
+endchar;
+
+
+
+
+beginchar("Q",em#,.5cap#,.5cap#); "The letter Ot";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x5=w-x6=curve_sidebar;
+x3=x7=w-x4=w-x8=.37w; x7-x9=x10-x8=.15w;
+top y1=top y3=top y4=top y5=h;
+bot y2=bot y6=0; y9=y7=y8=y10=-d;
+z37=(x3,.7h);
+z48=(x4,.7h);
+draw z7--z37{up}..{left}z1--z2--z6--z5{left}..{down}z48--z8;
+draw z9--z10;
+endchar;
+
+
+beginchar(oct"023",.55em#,.5cap#,.7cap#); "The letter Cc";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x8=x2=w-x5=w-x4=w-x6=curve_sidebar;
+x3=.5[x1,x5]; bot y3=0; y1=y5=h;
+y2=y4=.33h;
+y7=-d;
+y6=-.52d; y8=y9=.5[y7,y6];
+x9-x6=x6-x8;
+x7=.5w;
+z66=(x6,-.45d); z99=(x9,-.9d);
+draw z1--z2{down}..{right}z3..{up}z4;
+draw z5--z6{down} ..{left}z7..{up}z8..{right}z66..{down}z9--z99;
+endchar;
+
+
+beginchar("U",.5em#,.5cap#,.4cap#); "The letter U";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x5=w-x3=w-x6=curve_sidebar;
+x2=x4=.5w;
+y2=.2h+d; top y1=top y6= h+d; bot y4=0; y5=y3=.5[y4,y2];
+draw z1{down}..z2..{down}z3..{left}z4..{up}z5..z2..{up}z6;
+endchar;
+
+
+beginchar("V",.95em#,.5cap#,0); "The letter V";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x7=w-x8=curve_sidebar;
+x1-x7=x9-x4=x3-x10=x8-x2=.05w;
+x9=w-x10=.37w; x5=w-x6=.5[x1,x4];
+bot y1=bot y4=bot y3=bot y2=0;
+top y5=top y6= h; y7=y9=y10=y8=.5h;
+draw z1..z7{up}..{right}z5..{down}z9..z4;
+draw z1--z2;
+draw z2..z8{up}..{left}z6..{down}z10..z3;
+picture slovo_V; slovo_V=currentpicture;
+endchar;
+
+beginchar("T",.95em#,.5cap#,0); "The letter T";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+transform s; s=identity rotatedabout ((.5w+1/4*.5h,.5h),180);
+addto currentpicture also slovo_V transformed s;
+endchar;
+
+beginchar("L",.95em#,cap#,0); "The letter L";
+transform t; t=identity rotatedabout ((.5w+1/4*.25h,.25h),180);
+addto currentpicture also slovo_V transformed t;
+pickup pencircle xscaled .8thick yscaled .3thin;
+x10=w-2curve_sidebar;
+rr:=.13h;
+x40=x60=.5w;
+x40-x50=x30-x40=rr;
+x20=x50;
+h:=1.2h;
+top y10=top y20= h; y50=y30=.75h;
+y50-y40=y60-y50=rr;
+draw z50{down}..z40{right}..{up}z30..{left}z60..cycle;
+draw z30{up}..{left}z20--z10;
+endchar;
+
+
+
+beginchar(oct"025",.95em#,.5cap#,0); "The letter Zz";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+transform s; s=identity rotatedabout ((.5w+1/4*.5h,.5h),180);
+addto currentpicture also slovo_V transformed s;
+x1=w-x3=.25w; y1=y3=1.6h;
+top z2=(.5w, h);
+draw z1{right}..{down}z2{up}..{right}z3;
+endchar;
+
+beginchar(oct"021",.8em#,.5cap#,.7cap#); "The letter Ch";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5=.5w;
+top y1=top 1.1y5=top y4= h;
+bot y2=bot y3= 0;
+x6=.5w; x8=w-x9=w-x99=0;
+x7=.45[x6,x8];
+y7=-d;
+y6=-.52d; y8=.5[y7,y6]; y9=.6[y8,-d]; y99=-d;
+draw z1--z2--z3--z4;
+%pickup pencircle xscaled thick yscaled .3thin;
+draw z5--z6{down}..{left}z7..{up}z8...{right}z6...
+{down}z9--z99;
+endchar;
+
+
+
+beginchar(oct"032",.8em#,.5cap#,.5cap#); "druga varijanta Ch";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=w-x3=w-x4=curve_sidebar;
+x5=x6=.5w; x9=.8w;
+x7-x6=x9-x8=1/4(x9-x6);
+top y1=top y5=top y4= h;
+bot y2=bot y3= 0;
+y9=-d; y6=y8=.-1/3d; y7=y10=-2/3d;
+x10=x9; x78=.5[x7,x8]; y78=.5[y7,y8];
+draw z1--z2--z3--z4;
+pickup pencircle xscaled thick yscaled .3thin;
+draw z5--z6{down}..{right}z7..z78..
+{right}z8..{down}z10--z9;
+endchar;
+
+beginchar("F",.85em#,1.2cap#,.7cap#); "The letter F";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x2=curve_sidebar; x4=x11=.5w;
+x1=x3=.5[x2,x4];
+x13=.8w; x12-x11=x13-x12;
+y3=0; y2=y4=x3-x2=.5y1; y12=h; y12-y11=y12-y13=x12-x11;
+z5=(w-x1,y1); z6=(w-x2,y2); z7=(w-x3,y3); z8=(x11,-d+(y12-y11));
+z9=(w-x12,-d); z10=(w-x13,-d+(y12-y13));
+draw z1{left}..{down}z2..{right}z3..{up}z4--z11{up}..{right}z12..{down}z13;
+draw z7{right}..{up}z6..{left}z5..{down}z4--z8{down}..{left}z9..{up}z10;
+endchar;
+
+
+
+beginchar("H",.6em#,1.2cap#,.7cap#); "The letter H";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x2=x6=w-x4=curve_sidebar;
+x3=x5=.5[x1,x4]; x8=.75w; x7=.5[x1,x8];
+y1=-d; bot y2=bot y5= 0; y3= .5h/1.2; y4=.5 y3;
+top y7= h; y6=y8=.8h;
+draw z1--z6{up}..{right}z7..{down}z8;
+draw z2{up}..{right}z3..{down}z4..{left}z5;
+endchar;
+
+
+
+beginchar(oct"136",.9em#,1.2cap#,0); "The letter Jat";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x5=w-x4=curve_sidebar;
+x3=.55w; x2-x1=.5(x3-x1); x6=.65w;
+bot y1=bot y3=bot y4=0; y5=.25h/1.2;
+y7=y6=.5h/1.2; top y2= h;
+z7=whatever[z1,z2];
+draw z1--z2--z3; draw z7--z6{right}..{down}z5--z4--z1;
+endchar;
+
+beginchar(oct"137",.8em#,.5cap#,.5cap#); "The letter Ju";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=x6=w-x4=curve_sidebar;
+x3=x7=.5w;
+x1-x5=x4-x3;
+top y1=top y3= h;
+y6+.1h=y7-.1h= 0;
+-y5=y4=.6h;
+z9=(x1,-d);
+draw z1--z3{right}..{down}z4
+..tension 1.3..{dir angle(z6-z7)}z7--z6{dir angle(z6-z7)}..tension1.3..
+{down}z5..%tension1.1..
+{dir angle(z7-z6)}z9;
+draw z1--z6; draw z3--z7;
+endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/lom.mf b/Master/texmf-dist/fonts/source/public/croatian/lom.mf
new file mode 100644
index 00000000000..0fcefa945ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/lom.mf
@@ -0,0 +1,39 @@
+
+% Croatian Glagolitic
+% Baromich broken ligatures (1493-94),
+% 1995, darko.zubrinic@etf.hr
+
+mode_setup;
+ font_size 10pt#;
+ u#:=.8pt#; font_quad= 24u#;
+ font_normal_space= 9u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 2u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=.9*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=round 1.1*1/10em;
+
+
+input lomv % velika slova
+
+mode_setup;
+u#:=3/4u#;
+em#:=3/4em#; cap#:=3/4cap#;
+ thick#:=3/4thick#;
+o#:=3/4o#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+%curve_sidebar:=3/4curve_sidebar;
+input lomm % mala slova
+
+
+ligtable "z": "z" =: oct"015";
+
+u#:=4/3u#;
+ligtable "Z": "z" =: oct"025", "Z" =: oct"025";
+
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/croatian/lomm.mf b/Master/texmf-dist/fonts/source/public/croatian/lomm.mf
new file mode 100644
index 00000000000..c99053d42a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/lomm.mf
@@ -0,0 +1,66 @@
+
+beginchar("a",.5em#,4/3cap#,0); "The letter a";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x3=x2=w-x4=w-x5=curve_sidebar;
+y2=y4=0;
+y1=h; y3=.6h;
+y5=3/4y3;
+draw z1--z2; draw z4--z5{up}..{left}z3;
+endchar;
+
+beginchar("d",.7em#,cap#,0); "The letter d";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x3=w-x4=curve_sidebar;
+x2=x5=x6=.4[x1,x3];
+y2=y3=0; y1=y6=h; y4=y5=.45h;
+draw z1--z6--z2--z3--z4--z5;
+endchar;
+
+beginchar(oct"015",.6em#,cap#,0); "The letter zz";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x2=w-x3=curve_sidebar;
+x4=x5=.4[x1,x2];
+y5=y3=0; y1=y4=y2=h;
+draw z1--z2--z3--z5--z4;
+x8=.7[x5,x3]; x6=.5[x1,x4];
+x6-x7=x8-x6; y6=h;
+y7=y8=1.27h;
+draw z6{up}..{left}z7; draw z6{up}..{right}z8;
+endchar;
+
+
+
+beginchar("l",.7em#,cap#,0); "The letter l";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x3=w-x4=curve_sidebar;
+x2=x5=.45[x1,x3];
+x6=.5[x5,x4];
+x1-x7=x6-x2;
+y1=y2=y3=h; y7=y6=4/3h; y4=y5=0;
+draw z1--z3--z4--z5--z2{up}..z6--z7; draw z1{up}..z7;
+endchar;
+
+
+
+beginchar("t",.6em#,cap#,0); "The letter t";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x2=w-x3=curve_sidebar;
+x4=x5=.4[x1,x2];
+y5=y3=0; y1=y4=y2=h;
+draw z1--z2--z3--z5--z4;
+picture slovo; slovo=currentpicture;
+endchar;
+
+beginchar("v",.6em#,cap#,0); "The letter v";
+transform t; t=identity reflectedabout ((0,.5h),(w,.5h))
+shifted (0,.5thin);
+addto currentpicture also slovo transformed t;
+endchar;
+
+
+beginchar("z",.6em#,cap#,0); "The letter z lazzni (za zz)";
+transform t; t=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also slovo transformed t;
+endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/lomv.mf b/Master/texmf-dist/fonts/source/public/croatian/lomv.mf
new file mode 100644
index 00000000000..79572b04b13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/lomv.mf
@@ -0,0 +1,66 @@
+
+beginchar("A",.5em#,4/3cap#,0); "The letter A";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=x3=x2=w-x4=w-x5=curve_sidebar;
+y2=y4=0;
+y1=h; y3=.6h;
+y5=3/4y3;
+draw z1--z2; draw z4--z5{up}..{left}z3;
+endchar;
+
+beginchar("D",.7em#,cap#,0); "The letter D";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x3=w-x4=curve_sidebar;
+x2=x5=x6=.4[x1,x3];
+y2=y3=0; y1=y6=h; y4=y5=.45h;
+draw z1--z6--z2--z3--z4--z5;
+endchar;
+
+beginchar(oct"025",.6em#,cap#,0); "The letter ZZ";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x2=w-x3=curve_sidebar;
+x4=x5=.4[x1,x2];
+y5=y3=0; y1=y4=y2=h;
+draw z1--z2--z3--z5--z4;
+x8=.7[x5,x3]; x6=.5[x1,x4];
+x6-x7=x8-x6; y6=h;
+y7=y8=1.27h;
+draw z6{up}..{left}z7; draw z6{up}..{right}z8;
+endchar;
+
+
+
+beginchar("L",.7em#,cap#,0); "The letter L";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x3=w-x4=curve_sidebar;
+x2=x5=.45[x1,x3];
+x6=.5[x5,x4];
+x1-x7=x6-x2;
+y1=y2=y3=h; y7=y6=4/3h; y4=y5=0;
+draw z1--z3--z4--z5--z2{up}..z6--z7; draw z1{up}..z7;
+endchar;
+
+
+
+beginchar("T",.6em#,cap#,0); "The letter T";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x1=w-x2=w-x3=curve_sidebar;
+x4=x5=.4[x1,x2];
+y5=y3=0; y1=y4=y2=h;
+draw z1--z2--z3--z5--z4;
+picture slovo; slovo=currentpicture;
+endchar;
+
+beginchar("V",.6em#,cap#,0); "The letter V";
+transform t; t=identity reflectedabout ((0,.5h),(w,.5h))
+shifted (0,.5thin);
+addto currentpicture also slovo transformed t;
+endchar;
+
+beginchar("Z",.6em#,cap#,0); "The letter Z lazzni (za ZZ)";
+transform t; t=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also slovo transformed t;
+endchar;
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/obl.mf b/Master/texmf-dist/fonts/source/public/croatian/obl.mf
new file mode 100644
index 00000000000..8bdb4f978d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/obl.mf
@@ -0,0 +1,91 @@
+
+% Croatian Glagolitic
+% Round glagolitic, 1994, darko.zubrinic@etf.hr
+
+
+Pt#:=4/3pt#;
+
+mode_setup;
+ u#:=.8Pt#; font_quad= 24u#;
+ font_normal_space= 8u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=10Pt#; cap#:=7Pt#;
+ thin#:=2/3Pt#; thick#:=.9*5/6Pt#;
+ o#:=1/5Pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:= round 1.1*1/10em;
+
+\input oblv % velika slova
+
+
+%mode_setup;
+%Pt#:=3/4Pt#;
+%u#:=3/4u#;
+%em#:=3/4em#; cap#:=3/4cap#;
+% thick#:=3/4thick#;
+%o#:=3/4o#;
+%define_pixels(em,cap);
+%define_blacker_pixels(thin,thick);
+%curve_sidebar:=3/4curve_sidebar;
+
+mode_setup;
+Pt#:=3/4Pt#;
+ u#:=.8Pt#; font_quad= 24u#;
+ font_normal_space= 8u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=10Pt#; cap#:=7Pt#;
+ thin#:=2/3Pt#; thick#:=.9*5/6Pt#;
+ o#:=1/5Pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+
+
+input oblm % mala slova
+
+
+input glz % znakovi
+
+
+
+ligtable "c": "c" =: oct"013", "h" =: oct"011";
+ligtable "s": "s" =: oct"014"; %umjesto sh
+ligtable "z": "z" =: oct"015", "o" kern -.5u#,
+ "u" kern -.5u#;
+%ligtable "d": "d" =: oct"016"; % "d" =: oct"012";
+ligtable "y": "a" =: "w", "e" =: "w", "u" =: "5";
+ligtable "-": "-" =: oct"173";
+%ligtable "e": "i" kern -.5u#;
+%ligtable "f": "o" kern -u#, "u" kern -u#, "i" kern -.5u#, "g" kern-.5u#;
+%ligtable "i": "f" kern -.5u#;
+%ligtable "r": "k" kern -.5u#;
+%ligtable "n": "a" kern -.5u#;
+%ligtable "j": "a" kern -.5u#;
+
+u#:=4/3u#;
+
+
+
+ligtable "C": "c" =: oct"023", "C" =: oct "023", "H" =:
+ oct"021", "h" =: oct"021";
+ligtable "S": "S" =: oct"024", "s" =: oct"024";
+ligtable "Z": "Z" =: oct"025", "z"=: oct"025",
+ "O" kern -.5u#,
+ "u" kern -.5u#;
+%ligtable "D": "d" =: oct"026", "D" =: oct"026"; % "d" =: oct"022";
+ligtable "Y": "a" =: "W", "A" =: "W", "u" =: "2", "U" =: "2";
+%ligtable "E": "I" kern -.5u#;
+%ligtable "F": "O" kern -u#, "U" kern -u#, "I" kern -.5u#, "G" kern-.5u#;
+%ligtable "I": "F" kern -.5u#;
+%ligtable "R": "K" kern -.5u#;
+%ligtable "N": "A" kern -.5u#;
+
+
+
+
+end.
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/obl10.mf b/Master/texmf-dist/fonts/source/public/croatian/obl10.mf
new file mode 100644
index 00000000000..93a5a4410c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/obl10.mf
@@ -0,0 +1,86 @@
+
+% Croatian Glagolitic
+% round glagolitic, 1994, darko.zubrinic@etf.hr
+
+
+
+mode_setup;
+ u#:=.8pt#; font_quad= 24u#;
+ font_normal_space= 8u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=.9*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:= round 1.1*1/10em;
+input oblv % velika slova
+
+
+
+%mode_setup;
+%pt#:=3/4pt#;
+%u#:=3/4u#;
+%em#:=3/4em#; cap#:=3/4cap#;
+% thick#:=3/4thick#;
+%o#:=3/4o#;
+%define_pixels(em,cap);
+%define_blacker_pixels(thin,thick);
+%curve_sidebar:=3/4curve_sidebar;
+
+mode_setup;
+pt#:=3/4pt#;
+ u#:=.8pt#; font_quad= 24u#;
+ font_normal_space= 8u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=.9*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+
+
+input oblm % mala slova
+
+
+input glz % znakovi
+
+
+
+ligtable "c": "c" =: oct"013", "h" =: oct"011";
+ligtable "s": "s" =: oct"014"; %umjesto sh
+ligtable "z": "z" =: oct"015", "o" kern -.5u#,
+ "u" kern -.5u#;
+%ligtable "d": "d" =: oct"016"; % "d" =: oct"012";
+ligtable "y": "a" =: "w", "e" =: "w", "u" =: "5";
+ligtable "-": "-" =: oct"173";
+%ligtable "e": "i" kern -.5u#;
+%ligtable "f": "o" kern -u#, "u" kern -u#, "i" kern -.5u#, "g" kern-.5u#;
+%ligtable "i": "f" kern -.5u#;
+%ligtable "r": "k" kern -.5u#;
+%ligtable "n": "a" kern -.5u#;
+%ligtable "j": "a" kern -.5u#;
+
+u#:=4/3u#;
+
+
+
+ligtable "C": "c" =: oct"023", "C" =: oct "023", "H" =:
+ oct"021", "h" =: oct"021";
+ligtable "S": "S" =: oct"024", "s" =: oct"024";
+ligtable "Z": "Z" =: oct"025", "z"=: oct"025",
+ "O" kern -.5u#,
+ "u" kern -.5u#;
+%ligtable "D": "d" =: oct"026", "D" =: oct"026"; % "d" =: oct"022";
+ligtable "Y": "a" =: "W", "A" =: "W", "u" =: "2", "U" =: "2";
+%ligtable "E": "I" kern -.5u#;
+%ligtable "F": "O" kern -u#, "U" kern -u#, "I" kern -.5u#, "G" kern-.5u#;
+%ligtable "I": "F" kern -.5u#;
+%ligtable "R": "K" kern -.5u#;
+%ligtable "N": "A" kern -.5u#;
+
+
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/oblm.mf b/Master/texmf-dist/fonts/source/public/croatian/oblm.mf
new file mode 100644
index 00000000000..5919acbc1a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/oblm.mf
@@ -0,0 +1,960 @@
+% x = az, y = izze, w=jat, q = ot, \m = dvokatni uglasti m, oct ? staviti u i.mf
+% 0 = tvrdi znak (assemani), 1 = meki znak (assemani)
+% 3 = tvrdi znak, 6 = meki znak
+% 5 = ju, 8 = dz,
+% oct"000" = izze2 (\y)
+% oct"002" = en
+% oct"004" = jen
+% oct"006" = on
+% oct"011" = ch
+% oct"012" = jon
+% oct"013" = cc
+% oct"014" = ss
+% oct"015" = zz
+% oct"076" = paukasti h,
+% oct"176" = tilda
+
+beginchar("a",.7em#,cap#,0); "The letter a";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+x1=w-x2=curve_sidebar; y1=y2=h/2;
+x3=x4=w/2; y3=0; y4=h;
+z1-z5=z2-z6=(0,.2h);
+draw z5--z1--z2--z6; draw z3--z4;
+endchar;
+
+
+
+beginchar("b",0.7em#,cap#,0); "The letter b";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+smoothing:=4;
+k:=.5;
+x1=w-x2=curve_sidebar; y1=y2=0;
+x3=x4=w-x7=w-x8=curve_sidebar;
+y3=y5=y7=k*w;
+y4=y6=y8=h;
+x5=x6=w/2;
+%z3=0*[z9,z7];
+draw z4--z1--z2;
+draw z3--z7--z8;
+draw z5--z6;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+
+beginchar("g",.8em#,cap#,0); "The letter g";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x1=w-x8=curve_sidebar;
+r:=.2h;
+x2=x4=x5=x1+r;
+ y1=y5=h-r;
+top y2=h; y4=y2-2r;
+kut:=20;
+z3-z5=(z4-z5) rotated (90-kut);
+bot y6=0; (z6-z3)dotprod(z3-z5)=0; % x6
+x9=x7=x8-r; x10=x8-2r;
+y9=y6; y8=y10=r; y7=2r;
+
+q:=.5(thick-.3thin)*cosd kut;
+x3'=x3+q; x6'=x6+q;
+y3'=y3; y6'=y6;
+x66=x6'+.5(thick-.3thin); bot y66=0;
+penpos1(thick,0);
+penpos2(.3thin,-90);
+penpos3(.3thin,180-kut);
+penpos4(.3thin,90);
+penpos3'(cosd kut*thick,180-kut);
+penpos6'(1.2thick,180);
+penpos66 (.3thin,180);
+penpos7(.3thin,90);
+penpos8 (thick,0);
+penpos9 (.5thin,-90);
+penpos10 (.4thin,180);
+drawdot z6';
+penstroke z3e{dir(-kut-90)}
+..{left}z4e..
+z1e{up}..{right}z2e;
+penstroke z6'e--z3'e{dir(-kut+90)}..{left}z2e;
+penstroke z66e{dir (angle(z3-z6))}..{right}z7e..{down}z8e..{left}z9e..{up}z10e
+..{right}z7e;
+endchar;
+
+
+
+beginchar("d",em#,cap#,0); "The letter d";
+pickup pencircle scaled .01thin; %xscaled 1.3thick yscaled .2thin;
+x1=w-x2=.25w;
+d:=2x1-2curve_sidebar;
+y1=y2=.5d;
+top z3=(.5w, h);
+x4=w-x5=x1;
+y4=y5=.7h;
+z6=(x1+.5d,y1); x7=w-x6; y7=y6;
+bot z8-z1=(z6-z1) rotated -90; % z8
+z9-z1=(z8-z1) rotated -90; % z9
+z10-z1=(z9-z1) rotated -90; %z10
+penpos9 (thick,0);
+penpos10 (.4thin,-90);
+penpos8 (.4thin,90);
+penpos6 (.3thin,180);
+penstroke z8e{left}..z9e{up}..z10e{right}..z6e{down}..cycle;
+bot z11-z2=(z7-z2) rotated 90; % z11
+z12-z2=(z11-z2) rotated 90; % z12
+z13-z2=(z12-z2) rotated 90; %z13
+penpos7 (.3thin,0);
+penpos11 (.4thin,90);
+penpos12 (thick,180);
+penpos13 (.4thin,-90);
+penstroke z11e{left}..z7e{up}..z13e{right}..z12e{down}..cycle;
+penpos4 (.3thin,180);
+penpos5 (1.4thick,0);
+penpos3 (.4thick,90);
+penstroke z6e{up}..z4e{up}..z3e{right}..z5e{down}..{down}z7e;
+picture slovod; slovod=currentpicture;
+endchar;
+
+
+beginchar("v",em#,cap#,0); "The symbol v";
+transform t;
+t=identity rotatedabout ((.5w,.5h),180);
+addto currentpicture also slovod transformed t;
+endchar;
+
+
+
+
+
+
+beginchar("e",.67em#,cap#,0); "The letter e";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+x1=x5=w-x3=curve_sidebar; y1=h-y5=.1h; y3=h/2;
+x2=x4=.42w; y2=0; y4=h;
+draw z5..{right}z4..{down}z3..{left}z2..z1;
+pickup pencircle xscaled 1.2thin yscaled .2thin;
+a:=.01;
+x8=x9=.35w; x6=x7=w-curve_sidebar-a* w;
+y8-y3=y7-y3=y3-y9=y3-y6=.1h;
+draw z8--z7; draw z9--z6;
+picture slovoe; slovoe=currentpicture;
+endchar;
+
+beginchar(oct"015",em#,1.1cap#,0); "The letter zz";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=.25w; x5=w-x6=.27w;
+x11=w-x21=curve_sidebar;
+x1-x11=x51-x5=x6-x61;
+y1=y2=y5=y6=.8h; y11=y21=y51=y61=.5[y1,y3];
+y3=y4=.47h; x3=w-x4=.5[x1,x5];
+z56=.5[z5,z6];
+y52=y62=h; x52-x11=x21-x62=.15w;
+penpos1 (.3thin,-90);
+penpos11 (1.2thick,0);
+penpos3 (.5thin,90);
+penpos51 (.3thin,180);
+penpos5 (.2thin,180);
+penpos2 (.3thin,90);
+penpos21 (1.2thick,0);
+penpos4 (.5thin,-90);
+penpos61 (.3thin,180);
+penpos6 (.2thin,180);
+draw z1-- z2;
+penstroke
+z1e{left}..z11e{down}..z3e{right}..{up}z51e..{left}z5e;
+penstroke
+z2e{right}..z21e{down}..z4e{left}..{up}z61e..{right}z6e;
+draw z52{dir -10}..{dir-70}z56{dir 70}..{dir10}z62;
+endchar;
+
+
+
+
+beginchar("8",.7em#,cap#,0); "The letter dz->8";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=w-x2=curve_sidebar; y1=y2=.5h;
+r:=.2h; x5=.5w; x6=x5+r; y5=y6=h-r; x3=w-x4=.42w;
+bot y3=bot y4=0;
+z6-z5=(z7-z5) rotated(90-angle(z2-z4)); % z7
+z7-z8=whatever*(z2-z4); z8=whatever[z1,z3]; % z8
+z5=.5[z10,z6]; % z10
+z9-z5=(z6-z5)rotated 90;
+z5=.5[z11,z9];
+penpos6 (.3thin,0);
+penpos9 (.5thin,90);
+penpos10 (thick,180);
+penpos11 (.4thin,-90);
+penpos7 (.3thin,angle(z7-z5));
+penpos8 (.3thin,angle(z7-z5));
+draw z1--z2--z4--z3--cycle;
+penstroke z8e--z7e{dir(angle(z7-z8))}..
+z6e{up}..{left}z9e..{down}z10e..{right}z11e..
+{dir (angle(z7-z8))}z7e;
+picture dz; dz=currentpicture;
+endchar;
+
+
+
+
+beginchar("z",.9em#,cap#,0); "The letter z";
+a:=42;
+pickup pencircle xscaled 1.2thick yscaled .3thin rotated a;
+x1=w-x3=curve_sidebar; y1=y3=h/2;;
+z2=.6[z1,z3]; z5=.3[z2,z3];
+x4=x6=.5[x1,x2]; y4=h; y6=0;
+x7=.5[x5,x3]; y7=.1h;
+draw z4{dir(180+a)}..{down}z1..{dir-a}z6{dir a}..{up}z2..{dir(180-a)}z4;
+pickup pencircle xscaled thick yscaled .3thin;
+b:=1.3;
+x1:=x1+.3thick;
+draw z1--z3;
+penpos3 (thick,0);
+penpos7 (.5thin,-90);
+penpos5 (.3thin,180);
+penstroke z3e{down}..tension b..{left}z7e..tension b..{up}z5e;
+endchar;
+
+
+
+beginchar("y",em#,cap#,0); "The letter izze<-y";
+pickup pencircle xscaled thick yscaled .2thin;
+%pickup pencircle scaled .3thin;
+x1=w-x2=curve_sidebar;
+r:=.2h; y1=y2=h-r;
+z3=(x1+r, h-r);
+z4=(x2-r,y3);
+kut:=30;
+z9-z3=(z1-z3) rotated(180+kut);
+z10=(w-x9,y9);
+(x7-x9,y7-y9)dotprod(x9-x3,y9-y3)=0;
+(z9-z3)dotprod(z6-z9)=0;
+ z5=(w-x6,0);
+top y7=h; bot y6=0;
+z11=z3+(z1-z3)rotated-90;
+z12=(w-x11,y11);
+z3=.5[z11,z13];
+z4=.5[z12,z14];
+penpos1 (thick,0);
+penpos11 (.2thin,-90);
+penpos9 (.2thin,180+kut);
+penpos13 (.5thin,90);
+penpos2 (thick,0);
+penpos12 (.2thin,90);
+penpos10 (.2thin,180-kut);
+penpos14 (.5thin,-90);
+penstroke z1e{up}..{right}z11e..{dir(kut-90)}z9e..{left}z13e..cycle;
+penstroke z2e{up}..{left}z12e..{dir (angle(z5-z10))}z10e..{right}z14e..cycle;
+x9'=x9+.5(thick-.2thin)*cosd kut; y10'=y10; y9'=y9;
+x10'=w-x9';
+top y7'=h; bot y6'=0;
+(x7'-x9',y7'-y9')dotprod(x9'-x3,y9'-y3)=0;
+(z9'-z3)dotprod(z6'-z9')=0;
+bot z5'=(w-x6',0);
+top z8'=(w-x7',h);
+draw z9'--z6'--z5'--z10';
+z11'=(x11+.5*1.2thick,y11); penpos11' (1.2thick,0);
+penpos9' (thick,0);
+z10'=(w-x9',y9');
+z12'=(w-x11',y11');
+penpos10' (thick,0);
+penpos12' (1.2thick,0);
+penstroke z11'e{right}..{dir(angle(z6'-z9'))}z9'e;
+penstroke z12'e{left}..{dir(angle(z5'-z10'))}z10'e;
+draw z11--z12;
+endchar;
+
+
+
+beginchar("j",.95em#,cap#,0); "The letter dd<-j";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x4=w-x7=curve_sidebar;
+x3=.5[x1,x4];
+x2=.5[x1,x3];
+x5=.35[x3,x7];
+x6=.5[x5,x7];
+bot y1=bot y3=bot y4=0; top y2=top y6=h;
+h-y5=h-y7=x7-x6;
+kut:=40; %angle(z2-z3)-90;
+kor:=15;
+z57=.5[z5,z7];
+z77-z57=(z7-z57)rotated (-kut); %z77
+z55-z57=(z5-z57)rotated (kut-kor); %z55
+x4:=x4-.7thick;
+z2'=z2;
+z3'=z3;
+ y2:=h-.5*1.3thick* sind63+.5*.3thin; y2':=y2;
+penpos1 (thick,0);
+penpos2 (.3thin,0);
+penpos2' (1.3thick,65);
+penpos3 (1.3thick,0);
+penpos3' (.3thin,180);
+penpos4 (1.3thick,0);
+penpos5 (1.3thick,0);
+penpos55 (1.3thick,kut-kor);
+penpos6 (.5thin,-90);
+penpos7 (.3thin,180);
+penpos77 (.3thin,180-kut);
+penstroke z1e{dir83}..{dir65}z2e;
+penstroke z2'e{dir-65}..{dir-83}z3e;
+penstroke z4e
+..z55e{dir(90+kut-kor)}..z5e{up}..z6e{right}..{down}z7e
+..z77e{dir(-90-kut)}..{dir(180+80)}z3'e;
+drawdot z4; drawdot z3;
+pickup pencircle xscaled thick yscaled .3thin; drawdot z1;
+pickup pencircle xscaled 1.3thick yscaled .3thin rotated 65; drawdot z2;
+endchar;
+
+
+
+
+beginchar("k",.45em#,cap#,0); "The letter k";
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+x1=x2=x5=x6=
+w-x3=w-x4=curve_sidebar;
+y6=0; y4=y5=h/3; y2=y3=2h/3;y1=h;
+draw z1--z2--z3--z4; draw z5--z6;
+endchar;
+
+
+beginchar("l",em#,cap#,0); "The letter l";
+pickup pencircle scaled .01thin; %xscaled 1.3thick yscaled .2thin;
+x1=w-x2=.25w;
+d:=2x1-2curve_sidebar;
+y1=y2=.5d;
+top z3=(.5w, h);
+x4=w-x5=x1;
+y4=y5=.7h;
+z6=(x1+.5d,y1); x7=w-x6; y7=y6;
+bot z8-z1=(z6-z1) rotated -90; % z8
+z9-z1=(z8-z1) rotated -90; % z9
+z10-z1=(z9-z1) rotated -90; %z10
+penpos9 (thick,0);
+penpos10 (.4thin,-90);
+penpos8 (.4thin,90);
+penpos6 (.3thin,180);
+bot z11-z2=(z7-z2) rotated 90; % z11
+z12-z2=(z11-z2) rotated 90; % z12
+z13-z2=(z12-z2) rotated 90; %z13
+penpos7 (.3thin,0);
+penpos11 (.4thin,90);
+penpos12 (thick,180);
+penpos13 (.4thin,-90);
+penpos4 (.3thin,180);
+penpos5 (1.4thick,0);
+penpos3 (.4thick,90);
+kut:=10;
+z10'-z1=(z10-z1) rotated -kut;
+z13'-z2=(z13-z2) rotated kut;
+penpos10' (.3thin,-90+kut);
+penpos13' (.3thin,-90-kut);
+penstroke z6e{down}..z8e{left}..z9e{up}..z10'e{dir kut}..{dir-kut}z13'e..
+z12e{down}..z11e{left}..z7e{up}..z5e{up}..z3e{left}..z4e{down}..cycle;
+endchar;
+
+
+
+
+beginchar("m",1.3em#,cap#,0); "The letter m";
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+x1=w-x2=curve_sidebar; y1=y2=h;
+z4-z1=z2-z5=(.25w,0);
+h-y6=h-y7=.6(x4-x1); x6=.5[x1,x4]; x7=.5[x5,x2];
+draw z1--z2; draw z1{down}.. z6{right}..{up}z4; draw z5{down}..{right}z7
+..{up}z2;
+r:=0.33h;
+y91=y92=.17h; %radius
+x91=.27w; x92=w-x91;
+z3=.5[z1,z2];
+z3-z31=z32-z3=(.5*1.4 thick,0); %(.04w,0);
+z100=(.5w,.6h);
+z200=(.5w,.8y100);
+%x81=.8[x91,x31]; x82=w-x81;
+%y81=y82=.5h ;% 1.2x100;
+x41=x31; x42=x32; y41=y42=.7h;
+pickup pencircle xscaled .9thick yscaled 0.15thin;
+%pickup pencircle scaled (.1thin +blacker);
+kut:=angle(z91-z100)+15;
+kutt:=-kut;
+kut1:=angle(z100-z91);
+fill z31--z41{down}..tension 1.5..{dir kut}z91{dir kut1} %..cycle;
+..tension 1.5..{right}z200..tension 1.5..{dir -kut1}z92{dir kutt}..
+tension1.5..{up}z42--z32-- cycle;
+erase fill fullcircle scaled r shifted z91;
+erase fill fullcircle scaled r shifted z92;
+draw fullcircle scaled r shifted z91;
+draw fullcircle scaled r shifted z92;
+endchar;
+
+
+
+
+beginchar("n",.7em#,cap#,0); "The letter n";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x2=w-x4=curve_sidebar;
+x8=1.5curve_sidebar;
+x7=x6=.37w; x3=x5=.5w;
+y8=y7=0; y6=y5=h; y2=y3=.5h; y4=.5[y3,y5];
+y1=y2-.1h;
+draw z1--z2--z3{right}..{up}z4..{left}z5--z6--z7--z8;
+endchar;
+
+
+
+beginchar("o",.55em#,cap#,0); "The letter o";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+rr:=.25w;
+sr:=rr;
+%s:=.15h;
+x1=x2=w-x6=curve_sidebar;
+x8=x9=x5=x3=x1+rr;
+y1=h-y2=sr; y6=.5h; y8=0; y3=h; y9=h-y5=2sr;
+kut:=70;
+z35=.5[z5,z3];
+z89=.5[z8,z9];
+(z3-z35)=(z4-z35) rotated 30; % z4
+(z7-z89)=(z8-z89) rotated 30; % z7
+penpos1 (thick,0); penpos2 (thick,0);
+penpos3 (.4thin,-90);
+penpos5 (.3thin,90);
+penpos9 (.3thin,-90);
+penpos8 (.4thin,90);
+kut1:=angle(z35-z4);
+kut2:=angle(z89-z7);
+penpos4 (.4thin,kut1);
+penpos7 (.4thin,kut2) ;
+penpos6 (1.3thick,180);
+kut4:=angle(z4-z35)-90;
+kut7:=angle(z7-z89)+90;
+penstroke z4e{dir kut4}..z5e{left}..{up}z2e..{right}z3e..z4e{dir kut4}..{down}z6e;
+penstroke z7e{dir kut7}..z9e{left}..{down}z1e..{right}z8e..z7e{dir
+kut7}..{up}z6e;
+picture slovoo; slovoo=currentpicture;
+endchar;
+
+beginchar("i",.8em#,1.02*cap#,0); "The letter i"; %.76
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x4=w-x2=curve_sidebar;
+x1=x3=x5=.5w;
+x1-x7=.2w;
+.5[x7,x6]=x1;
+bot y1=0; top y7=top y6=h;
+y3=.7h; y2=y4=y5=.5[y1,y3];
+draw z1{left}..z4{up}..{right}z3..{down}z2..cycle;
+pickup pencircle scaled .4thin;
+erase fill z5--z6--z7--cycle;
+draw z5--z6--z7--cycle;
+picture i; i=currentpicture;
+endchar;
+
+
+
+beginchar("p",.7em#,cap#,0); "The letter p";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+autoround:=4;
+x1=.6curve_sidebar; x2=x3=x7=.26w; w-x6=curve_sidebar; x5=.33[x7,x6]; x4=.5[x5,x6];
+y3=0; y1=y2=.5h; y4=.55h; y7=y6=y5=h;
+penpos6 (1.3thick,0);
+penpos4 (.5thin,-90);
+penpos5 (.3thin,180);
+draw z3--z7--z6;
+penstroke z6e{down}..{left}z4e..{up}z5e;
+pickup pencircle yscaled thick xscaled .2thin;
+draw z1--z2;
+endchar;
+
+
+
+beginchar("r",.6em#,cap#,0); "The letter r";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+x1=x2=x4=w-x3=curve_sidebar;
+y1=h; y2=0; y4=.55h; y3=.5[y2,y4];
+draw z1--z2{right}..{up}z3..{left}z4;
+endchar;
+
+
+
+beginchar("s",.8em#,cap#,0); "The letter s";
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+transform t;
+t= identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also i transformed t;
+endchar;
+
+
+
+beginchar("t",.9em#,cap#,0); "The letter t";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x5-x1=x2-x6=.28w; y1=y2=y5=y6=h;
+y3=y4=.4h; x3=w-x4=.5[x1,x5];
+penpos1 (1.3thick,0);
+penpos3 (.5thin,90);
+penpos5 (.3thin,180);
+penpos2 (1.3thick,0);
+penpos4 (.5thin,-90);
+penpos6 (.3thin,180);
+draw z1--z2;
+penstroke z1e{down}..z3e{right}..{up}z5e;
+penstroke z2e{down}..z4e{left}..{up}z6e;
+endchar;
+
+
+
+beginchar(oct"014",.8em#,cap#,0); "The letter ss"; %ss
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.98h; y2=y3=y4=.5h;
+draw z1--z2--z4--z5; draw z3--z6;
+endchar;
+
+
+
+beginchar("c",.85em#,cap#,0); "The letter c";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+smoothing:=4;
+x23=x3=w-x7=curve_sidebar; bot x5=.55w; x6=.82w; y6=.5h;
+y23=.5[y2,y3];
+y5=0; top z4=(.42w,good.y h); top y3=y4; top y7=h; z1=.45[z4,z5]; x1:=x1-.04w;
+z2-z3=z1-z4;
+z12=.5[z1,z2]; z34=.5[z3,z4];
+penpos6(thick,0); penpos7(1.4thick,0);
+kut:=-10;
+draw z1--z12{left}..{dir angle(z4-z5)}z23..{right}z34--z4{dir (angle(z5-z4)+kut)}
+..{dir (angle(z5-z4)-kut)}z5;
+x55=x5+.4*thick; y55=0; penpos55(.7thick,0);
+penstroke z55e..z6e..z7e;
+endchar;
+
+
+
+
+
+beginchar(oct"013",.9em#,cap#,0); "The letter cc";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; x3=x5=w-x4=w-x6=.3w;
+x7=w-x8=.5(x3-x1); x11=.5w; x10=w-x9=.5(x7+x11);
+y1=y2=y3=y4=0; y5=y6=y7=y8=y11=.5h; y9=y10=h;
+z12=.3[z10,z7]; z13=.3[z9,z8];
+z14=.5[z12,z13];
+x12:=.2[x12,x14]; x13:=.2[x13,x14];
+draw z10..z12..z7; draw z7--z8; draw z8..z13..z9;
+pickup pencircle xscaled thick yscaled .2thin;
+draw z11--z14;
+draw z12--z13;
+d:=y11; z=(.5w,0); z0=.5[z,z11];
+draw fullcircle scaled d shifted z0;
+endchar;
+
+
+
+beginchar(oct"011",.8em#,cap#,0); "The letter ch"; %ch, ssch
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.98h; y2=y3=y4=.5h;
+z7=(x3,.5y3); d:=y3;
+draw z1--z2--z4--z5; draw z3--z6;
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+draw fullcircle scaled d shifted z7;
+endchar;
+
+
+
+
+beginchar("u",2*.55em#,cap#,0); "The letter u";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+w:=.5w;
+rr:=.25w;
+sr:=rr;
+%s:=.15h;
+x1=x2=w-x6=curve_sidebar;
+x8=x9=x5=x3=x1+rr;
+y1=h-y2=sr; y6=.5h; y8=0; y3=h; y9=h-y5=2sr;
+kut:=70;
+z35=.5[z5,z3];
+z89=.5[z8,z9];
+(z3-z35)=(z4-z35) rotated 30; % z4
+(z7-z89)=(z8-z89) rotated 30; % z7
+penpos1 (thick,0); penpos2 (thick,0);
+penpos3 (.4thin,-90);
+penpos5 (.3thin,90);
+penpos9 (.3thin,-90);
+penpos8 (.4thin,90);
+kut1:=angle(z35-z4);
+kut2:=angle(z89-z7);
+penpos4 (.4thin,kut1);
+penpos7 (.4thin,kut2) ;
+penpos6 (1.3thick,180);
+kut4:=angle(z4-z35)-90;
+kut7:=angle(z7-z89)+90;
+penstroke z4e{dir kut4}..z5e{left}..{up}z2e..{right}z3e..z4e{dir kut4}..{down}z6e;
+penstroke z7e{dir kut7}..z9e{left}..{down}z1e..{right}z8e..z7e{dir
+kut7}..{up}z6e;
+d:=w-.15w;
+x1':=x1+d;
+x2':=x2+d;
+x3':=x3+d;
+x4':=x4+d;
+x5':=x5+d;
+x6':=x6+d;
+x7':=x7+d;
+x8':=x8+d;
+x9':=x9+d;
+x35':=x35+d;
+x89':=x89+d;
+y1'=h-y2'=sr; y6'=.5h; y8'=0; y3'=h; y9'=h-y5'=2sr;
+%kut:=70;
+z35'=.5[z5',z3'];
+z89'=.5[z8',z9'];
+(z3'-z35')=(z4'-z35') rotated 30; % z4
+(z7'-z89')=(z8'-z89') rotated 30; % z7
+penpos1' (thick,0); penpos2' (thick,0);
+penpos3' (.4thin,-90);
+penpos5' (.3thin,90);
+penpos9' (.3thin,-90);
+penpos8' (.4thin,90);
+%kut1:=angle(z35-z4);
+%kut2:=angle(z89-z7);
+penpos4' (.4thin,kut1);
+penpos7' (.4thin,kut2) ;
+penpos6' (1.3thick,180);
+%kut4:=angle(z4-z35)-90;
+%kut7:=angle(z7-z89)+90;
+penstroke z4'e{dir kut4}..z5'e{left}..{up}z2'e..{right}z3'e..z4'e{dir kut4}..{down}z6'e;
+penstroke z7'e{dir kut7}..z9'e{left}..{down}z1'e..{right}z8'e..z7'e{dir
+kut7}..{up}z6'e;
+z10=(2w-.6curve_sidebar,.5h);
+pickup pencircle yscaled .5thin;
+draw z6'--z10;
+endchar;
+
+
+beginchar("f",1.5em#,cap#,0); "The letter thita=f";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=w-x2=curve_sidebar; y1=y2=.5h;
+z3-z1=z2-z4=.2(z2-z1);
+x5=x7=w-x6=w-x8=.42w; y5=y6=0; y7=y8=h;
+x9=w-x10=.5(x1+x3); y9=y10=.2h;
+draw z3{down}..z9..{up}z1--z2{down}..z10..{up}z4;
+draw z5--z6--z8--z7--cycle;
+endchar;
+
+
+
+
+beginchar("h",.7em#,cap#,0); "The letter h";
+%pickup pencircle xscaled 1.4thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x1=w-x5=curve_sidebar;
+x2=x3=.1w+curve_sidebar;
+rr:=.22w;
+x6=x4=x5-r; x7=x5-2rr;
+bot y1=bot y6=0; y2=2.3rr; top y3=h; y7=y5=rr;
+y4=2rr;
+penpos1 (.1thin,0);
+penpos2 (1.3thick,0);
+penpos3 (1.3thick,0);
+penpos4 (.5thin,-90);
+penpos5 (1.1thick,180);
+penpos6 (.5thin,90);
+penpos7 (.3thin,0);
+penstroke z3e---z2e..z1e;
+penstroke z4e{left}..{dir(180+60)}z1e;
+penstroke z4e{left}..z7e{down}..z6e{right}..{up}z5e.. cycle;
+endchar;
+
+
+beginchar("q",.8em#,cap#,.3em#); "The letter dz->q";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x4=w-x2=curve_sidebar;
+y4=y2=.5h;
+bot z1=(.5w,0); top z3=(.5w,h);
+rr:=.15h;
+z5=(x3,y3-rr);
+z6=(x1-r,y1+1.5rr);
+z7=(x1+rr,y1-1.5rr);
+draw superellipse(z2,z3,z4,z1,.75);
+pickup pencircle scaled .3thin;
+draw fullcircle scaled 2rr shifted z5;
+pickup pencircle xscaled thick yscaled .3thin;
+draw z6{right}..{dir(180+45)}z1..{right}z7;
+endchar;
+
+
+
+
+beginchar("w",.9em#,cap#,0); "The letter w->ja";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar; y1=y2=0;
+z8=.5[z1,z2];
+x8-x3=x4-x8=.03w;
+%x3=x4=w/2;
+y3=y4=h;
+z5=.4[z1,z3]; z6=.4[z2,z4]; x5:=x5+.03w; x6:=x6-.03w;
+z7=.5[z5,z6];
+kut:=8;
+draw z1--z2{dir (angle(z4-z2)+kut)}..{dir (angle(z4-z2)-kut)}z4--
+z3{dir (angle(z1-z3)+kut)}..{dir(angle(z1-z3)-kut)}z1;
+draw z5--z6; draw z8--z7;
+endchar;
+
+
+beginchar("x",.7em#,cap#,0); "The letter x->az (Bassch)";
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+c:=curve_sidebar;
+x1=x2=x3=
+w-x4=
+w-x5=
+w-x6=
+w-x7=
+w-x8=c;
+y3=y4=0; y2=y7=.5h; y1=y5=h;
+y6-y7=y7-y8=.1h;
+draw z6--z1--z3--z8; draw z2--z7; draw z4--z5;
+endchar;
+
+
+
+beginchar("5",.9em#,cap#,.3em#); "The letter ju->5";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x1=x2=w-x6=curve_sidebar; top y1=top y4=top y9=h;
+rr:=.22h;
+y6=y7=h-rr; y8=h-2rr;
+x7=x6-2rr; x8=x9=x6-rr;
+bot y2=0;
+x4=x5=.4w;
+y5=.5h;
+x3=0; y3=-.15h;
+penpos1 (1.2thick,0);
+penpos2 (1.2thick,0);
+penpos3 (.1thin,0);
+penpos4 (1.2thick,0);
+penpos5 (1.2thick,0);
+penstroke z1e--z2e{down}..z3e;
+penstroke z4e--z5e{down}..z3e;
+draw z1--z9{right}..{down}z6;
+penpos6 (1.2thick,0);
+penpos8 (.7thin,-90);
+penpos7 (.5thin,180);
+penpos9 (.3thin,90);
+penstroke z6e{down}..{left}z8e..{up}z7e..{right}z9e;
+endchar;
+
+
+
+beginchar(oct"000",em#,cap#,0); "The letter izze2";
+pickup pencircle scaled .3thin;
+rr:=.2h;
+x10=w-x12=curve_sidebar; y10=y12=y5=y6=h-rr;
+x5=x3=w-x6=w-x4=x10+rr;
+top y3=top y4=h;
+z5=.5[z9,z3]; % z9
+z6=.5[z11,z4]; % z11
+z5=.5[z10,z10']; % z10'
+z6=.5[z12,z12']; % z12'
+bot z1=(.5w,0);
+z2=(.5w,.5h);
+kut := 35;
+kutt:=7;
+z3'=z5+(z3-z5)rotated kutt;
+z4'=z6+(z4-z6)rotated -kutt;
+z7-z5=(z10'-z5)rotated kut;
+z8-z6=(z12'-z6)rotated -kut;
+penpos1 (1.4thick,0);
+penpos2 (.4thin,0);
+penpos7 (.3thin,kut);
+penpos3 (.3thin,90);
+penpos3' (.3thin,90+kutt);
+penpos10 (thick,180);
+penpos9 (.5thin,-90);
+penpos8 (.3thin,-kut);
+penpos4 (.3thin,-90);
+penpos4' (.3thin,-90-kutt);
+penpos12 (thick,180);
+penpos11 (.5thin,90);
+penstroke z1e..z2e{up}..{dir(kut+90)}z7e..
+z3'e{dir(180+kutt)}..{down}z10e..{right}z9e..{dir(kut+90)}z7e;
+penstroke z1e..z2e{up}..{dir(90-kut)}z8e
+..z4'e{dir(-kutt)}..{down}z12e..{left}z11e..{dir(90-kut)}z8e;
+draw z3'{dir kutt}..{dir -kutt}z4';
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+drawdot z1;
+endchar;
+
+
+
+beginchar("6",.8em#,cap#,-.2cap#); "meki znak 6";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x8=w-x1=curve_sidebar;
+x5=.8w; bot y1=d; top y5=h; y8=.5(y1+y5);
+k:=.28;
+z4=k[z5,z1];
+z2=k[z1,z5]; z3=.5[z1,z5];
+z9-z8=.7(z2-z3);
+z6=(x5-.43w,y5);
+z66-z6=z4-z5;
+z7-z1=z6-z5; % z7
+z77-z7=.5(z2-z1);
+draw z2{left}..{down}z77..{right}z1--z5--z6{down}..controls z66
+..{right}z4;
+draw z8--z3;
+x9:=x9-.5*1.3thick;
+z10=z8+(.5*1.3thick,0);
+x8:=x8-.5*1.3thick;
+fill z8--z9{dir40}..{up}z10--cycle;
+endchar;
+
+
+beginchar("3",.8em#,cap#,-.2cap#); "tvrdi znak 3";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x8=w-x1=curve_sidebar;
+x5=.8w; bot y1=d; top y5=h; %y8=.5(y1+y5);
+k:=.28;
+z4=k[z5,z1];
+z2=k[z1,z5]; z3=.55[z1,z5]; y8=y3;
+z6=(x5-.43w,y5);
+z66-z6=z4-z5;
+z7-z1=z6-z5; % z7
+z77-z7=.5(z2-z1);
+draw z2{left}..{down}z77..{right}z1--z5--z6{down}..controls z66
+..{right}z4;
+rr:=.15h;
+pickup pencircle xscaled .8thick yscaled .3thin;
+x8:=x8+rr; draw z8--z3; y8:=y8-rr;
+draw fullcircle scaled 2rr shifted z8;
+endchar;
+
+
+
+k:=.1;
+beginchar(oct"174",(.67+2k)*em#,cap#,0); "priprema en"; %002
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+w:=.67/(.67+2k) *w;
+x1=x5=w-x3=curve_sidebar; y1=h-y5=.1h; y3=h/2;
+x2=x4=.42w; y2=0; y4=h;
+draw z5..{right}z4..{down}z3..{left}z2..z1;
+pickup pencircle xscaled 1.2thin yscaled .2thin;
+a:=.01;
+x8=.35w; x7=w-curve_sidebar-a*w;
+y8=y7=y3;
+draw z8--z7;
+w:=(.67+2k)/.67 *w;
+rr:=k*w;
+z6=(w-curve_sidebar-rr+.3thin,.5h); %centar kruzznice
+pickup pencircle scaled .3thin;
+draw fullcircle scaled 2rr shifted z6;
+picture e; e=currentpicture ;
+endchar;
+
+beginchar(oct"002",(.67+2k)*em#,cap#,0); "The letter en";
+%pickup pencircle xscaled 1.3thick yscaled .2thin;
+transform rot; rot=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also e transformed rot;
+picture en; en=currentpicture;
+endchar;
+
+
+
+beginchar(oct"004",1.4*em#,cap#,0); "The letter jen";
+pickup pencircle scaled .3thin;
+transform t; t=identity;
+transform s; s= identity shifted ((.59)/(1.34+2k)*w,0);
+addto currentpicture also slovoe transformed t;
+addto currentpicture also en transformed s;
+endchar;
+
+beginchar(oct"006",1.3*em#,cap#,0); "The letter on";
+pickup pencircle scaled .3thin;
+transform t; t=identity;
+transform s; s= identity shifted ((.5)/(1.34+2k)*w,0);
+addto currentpicture also slovoo transformed t;
+addto currentpicture also en transformed s;
+endchar;
+
+beginchar(oct"136",.7em#,cap#,0); "zrcaljeni dz->8"; %priprema 012
+transform ref; ref=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also dz transformed ref;
+picture dz; dz=currentpicture;
+endchar;
+
+beginchar(oct"012",1.43*em#,cap#,0); "The letter izze2";
+transform t; t=identity;
+transform s; s= identity shifted ((.6)/(1.34+2k)*w,0);
+addto currentpicture also dz transformed t;
+addto currentpicture also en transformed s;
+endchar;
+
+
+beginchar("0",.8em#,cap#,0); "tvrdi znak (assemani) 0";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x2=curve_sidebar;
+ee:=.01;
+re:=(.25+ee)*h;
+se:=(.25-ee)*h;
+x3=x4=x5=w-re-x1;
+y2=y4=(.5+2ee)*h; top y5=h; bot y3=0;
+z1-z2=(0,-.1h);
+draw z1--z2--z4;
+draw fullcircle scaled 2re shifted .5[z3,z4];
+draw fullcircle scaled 2se shifted .5[z5,z4];
+endchar;
+
+beginchar("1",.85em#,cap#,0); "meki znak (assemani) 1";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+ef:=.01;
+rf:=(.25+ef)*h;
+sf:=(.25-ef)*h;
+u:=.1h;
+x1=curve_sidebar+u; % u = polumjer male kruzznice
+y1=y2-u;
+x3=x4=x5=w-rf-curve_sidebar;
+y2=y4=(.5+2ef)*h; top y5=h; bot y3=0;
+z1-z2=(0,-.1h);
+draw fullcircle scaled 2rf shifted .5[z3,z4];
+draw fullcircle scaled 2sf shifted .5[z5,z4];
+pickup pencircle scaled .3thin;
+draw z2--z4;
+draw fullcircle scaled 2u shifted z1;
+endchar;
+
+
+beginchar(oct"176",.65em#,.1cap#,0); "tilda";
+pickup pencircle scaled .1thin ;
+x1=w-x2=curve_sidebar;
+x3=w-x6=.2w;
+x4=w-x5=.3w;
+bot y4=bot y6=0; top y3=top y5=h; y1=y2=.5h;
+penpos1 (.1thin,0);
+penpos4 (.2thin,90);
+penpos5 (.2thin,90);
+penpos2 (.1thin,0);
+penpos3 (.1thin,-90);
+penpos6 (.1thin,-90);
+filldraw z3l{left}...z1l{down}...{right}z4l...{right}z5l...{down}z2l
+...{left}z6l--z6r{right}...z2r{up}...
+z5r{left}...z4r{left}...z1r{up}...z3r{right}--cycle;
+endchar;
+
+beginchar(oct"076",.7em#,cap#,0); "The letter pauk(h)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x3=curve_sidebar;
+y1=y3=.5h;
+x2=.5w; y1-y2=x2-x1;
+z4=(.3w,-.1h);
+x5=.5w; y4=.5[y5,y2];
+path p; p= z2{dir(270-60)}..
+{down}z4..
+{dir(270+60)}z5;
+draw z1{down}..{right}z2..{up}z3;
+pickup pencircle xscaled 1.1thick yscaled .2thin;
+z7=.5[z1,z3];
+path pq; pq= p rotatedaround (z7,-30);
+draw pq;
+path qq; qq= p rotatedaround (z7,30);
+draw qq;
+transform rot; rot=identity rotatedaround (z7, 180);
+addto currentpicture also currentpicture transformed rot;
+%picture slovoo; slovoo=currentpicture;
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/oblv.mf b/Master/texmf-dist/fonts/source/public/croatian/oblv.mf
new file mode 100644
index 00000000000..5a85190ab15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/oblv.mf
@@ -0,0 +1,950 @@
+% X = Az, Y = Izze, W=Jat, Q = OT, \m = dvokatni uglasti m,
+% oct"010" = meki znak, oct"020" = tvrdi znak (assemanijev)
+% 2 = JU, 9 = Dz,
+% 4 = Tvrdi znak, 7 = Meki znak
+% oct"001" = Izze2 (\Y)
+% oct"003" = En
+% oct"005" = Jen
+% oct"007" = On
+% oct"021" = Ch
+% oct"022" = Jon
+% oct"023" = Cc
+% oct"024" = Ss
+% oct"025" = Zz
+% oct"074" = Paukasti H,
+% oct"177" = Tilda
+
+
+
+beginchar("A",.7em#,cap#,0); "The letter A";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+x1=w-x2=curve_sidebar; y1=y2=h/2;
+x3=x4=w/2; y3=0; y4=h;
+z1-z5=z2-z6=(0,.2h);
+draw z5--z1--z2--z6; draw z3--z4;
+endchar;
+
+
+
+beginchar("B",0.7em#,cap#,0); "The letter B";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+smoothing:=4;
+k:=.5;
+x1=w-x2=curve_sidebar; y1=y2=0;
+x3=x4=w-x7=w-x8=curve_sidebar;
+y3=y5=y7=k*w;
+y4=y6=y8=h;
+x5=x6=w/2;
+%z3=0*[z9,z7];
+draw z4--z1--z2;
+draw z3--z7--z8;
+draw z5--z6;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar("G",.8em#,cap#,0); "The letter G";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x1=w-x8=curve_sidebar;
+r:=.2h;
+x2=x4=x5=x1+r;
+ y1=y5=h-r;
+top y2=h; y4=y2-2r;
+kut:=20;
+z3-z5=(z4-z5) rotated (90-kut);
+bot y6=0; (z6-z3)dotprod(z3-z5)=0; % x6
+x9=x7=x8-r; x10=x8-2r;
+y9=y6; y8=y10=r; y7=2r;
+
+q:=.5(thick-.3thin)*cosd kut;
+x3'=x3+q; x6'=x6+q;
+y3'=y3; y6'=y6;
+x66=x6'+.5(thick-.3thin); bot y66=0;
+penpos1(thick,0);
+penpos2(.3thin,-90);
+penpos3(.3thin,180-kut);
+penpos4(.3thin,90);
+penpos3'(cosd kut*thick,180-kut);
+penpos6'(1.2thick,180);
+penpos66 (.3thin,180);
+penpos7(.3thin,90);
+penpos8 (thick,0);
+penpos9 (.5thin,-90);
+penpos10 (.4thin,180);
+drawdot z6';
+penstroke z3e{dir(-kut-90)}
+..{left}z4e..
+z1e{up}..{right}z2e;
+penstroke z6'e--z3'e{dir(-kut+90)}..{left}z2e;
+penstroke z66e{dir (angle(z3-z6))}..{right}z7e..{down}z8e..{left}z9e..{up}z10e
+..{right}z7e;
+endchar;
+
+
+
+beginchar("D",em#,cap#,0); "The letter D";
+pickup pencircle scaled .01thin; %xscaled 1.3thick yscaled .2thin;
+x1=w-x2=.25w;
+d:=2x1-2curve_sidebar;
+y1=y2=.5d;
+top z3=(.5w, h);
+x4=w-x5=x1;
+y4=y5=.7h;
+z6=(x1+.5d,y1); x7=w-x6; y7=y6;
+bot z8-z1=(z6-z1) rotated -90; % z8
+z9-z1=(z8-z1) rotated -90; % z9
+z10-z1=(z9-z1) rotated -90; %z10
+penpos9 (thick,0);
+penpos10 (.4thin,-90);
+penpos8 (.4thin,90);
+penpos6 (.3thin,180);
+penstroke z8e{left}..z9e{up}..z10e{right}..z6e{down}..cycle;
+bot z11-z2=(z7-z2) rotated 90; % z11
+z12-z2=(z11-z2) rotated 90; % z12
+z13-z2=(z12-z2) rotated 90; %z13
+penpos7 (.3thin,0);
+penpos11 (.4thin,90);
+penpos12 (thick,180);
+penpos13 (.4thin,-90);
+penstroke z11e{left}..z7e{up}..z13e{right}..z12e{down}..cycle;
+penpos4 (.3thin,180);
+penpos5 (1.4thick,0);
+penpos3 (.4thick,90);
+penstroke z6e{up}..z4e{up}..z3e{right}..z5e{down}..{down}z7e;
+picture slovoD; slovoD=currentpicture;
+endchar;
+
+
+beginchar("V",em#,cap#,0); "The symbol V";
+transform t;
+t=identity rotatedabout ((.5w,.5h),180);
+addto currentpicture also slovoD transformed t;
+endchar;
+
+
+
+
+
+beginchar("E",.67em#,cap#,0); "The letter E";
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+x1=x5=w-x3=curve_sidebar; y1=h-y5=.1h; y3=h/2;
+x2=x4=.42w; y2=0; y4=h;
+draw z5..{right}z4..{down}z3..{left}z2..z1;
+pickup pencircle xscaled 1.2thin yscaled .2thin;
+a:=.01;
+x8=x9=.35w; x6=x7=w-curve_sidebar-a* w;
+y8-y3=y7-y3=y3-y9=y3-y6=.1h;
+draw z8--z7; draw z9--z6;
+picture slovoE; slovoE=currentpicture;
+endchar;
+
+beginchar(oct"025",em#,1.1cap#,0); "The letter Zz";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=.25w; x5=w-x6=.27w;
+x11=w-x21=curve_sidebar;
+x1-x11=x51-x5=x6-x61;
+y1=y2=y5=y6=.8h; y11=y21=y51=y61=.5[y1,y3];
+y3=y4=.47h; x3=w-x4=.5[x1,x5];
+z56=.5[z5,z6];
+y52=y62=h; x52-x11=x21-x62=.15w;
+penpos1 (.3thin,-90);
+penpos11 (1.2thick,0);
+penpos3 (.5thin,90);
+penpos51 (.3thin,180);
+penpos5 (.2thin,180);
+penpos2 (.3thin,90);
+penpos21 (1.2thick,0);
+penpos4 (.5thin,-90);
+penpos61 (.3thin,180);
+penpos6 (.2thin,180);
+draw z1-- z2;
+penstroke
+z1e{left}..z11e{down}..z3e{right}..{up}z51e..{left}z5e;
+penstroke
+z2e{right}..z21e{down}..z4e{left}..{up}z61e..{right}z6e;
+draw z52{dir -10}..{dir-70}z56{dir 70}..{dir10}z62;
+endchar;
+
+
+
+beginchar("9",.7em#,cap#,0); "The letter Dz->9";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=w-x2=curve_sidebar; y1=y2=.5h;
+r:=.2h; x5=.5w; x6=x5+r; y5=y6=h-r; x3=w-x4=.42w;
+bot y3=bot y4=0;
+z6-z5=(z7-z5) rotated(90-angle(z2-z4)); % z7
+z7-z8=whatever*(z2-z4); z8=whatever[z1,z3]; % z8
+z5=.5[z10,z6]; % z10
+z9-z5=(z6-z5)rotated 90;
+z5=.5[z11,z9];
+penpos6 (.3thin,0);
+penpos9 (.5thin,90);
+penpos10 (thick,180);
+penpos11 (.4thin,-90);
+penpos7 (.3thin,angle(z7-z5));
+penpos8 (.3thin,angle(z7-z5));
+draw z1--z2--z4--z3--cycle;
+penstroke z8e--z7e{dir(angle(z7-z8))}..
+z6e{up}..{left}z9e..{down}z10e..{right}z11e..
+{dir (angle(z7-z8))}z7e;
+picture Dz; Dz=currentpicture;
+endchar;
+
+
+
+beginchar("Z",.9em#,cap#,0); "The letter Z";
+a:=42;
+pickup pencircle xscaled 1.2thick yscaled .3thin rotated a;
+x1=w-x3=curve_sidebar; y1=y3=h/2;;
+z2=.6[z1,z3]; z5=.3[z2,z3];
+x4=x6=.5[x1,x2]; y4=h; y6=0;
+x7=.5[x5,x3]; y7=.1h;
+draw z4{dir(180+a)}..{down}z1..{dir-a}z6{dir a}..{up}z2..{dir(180-a)}z4;
+pickup pencircle xscaled thick yscaled .3thin;
+b:=1.3;
+x1:=x1+.3thick;
+draw z1--z3;
+penpos3 (thick,0);
+penpos7 (.5thin,-90);
+penpos5 (.3thin,180);
+penstroke z3e{down}..tension b..{left}z7e..tension b..{up}z5e;
+endchar;
+
+
+beginchar("Y",em#,cap#,0); "The letter Izze<-Y";
+pickup pencircle xscaled thick yscaled .2thin;
+%pickup pencircle scaled .3thin;
+x1=w-x2=curve_sidebar;
+r:=.2h; y1=y2=h-r;
+z3=(x1+r, h-r);
+z4=(x2-r,y3);
+kut:=30;
+z9-z3=(z1-z3) rotated(180+kut);
+z10=(w-x9,y9);
+(x7-x9,y7-y9)dotprod(x9-x3,y9-y3)=0;
+(z9-z3)dotprod(z6-z9)=0;
+ z5=(w-x6,0);
+top y7=h; bot y6=0;
+z11=z3+(z1-z3)rotated-90;
+z12=(w-x11,y11);
+z3=.5[z11,z13];
+z4=.5[z12,z14];
+penpos1 (thick,0);
+penpos11 (.2thin,-90);
+penpos9 (.2thin,180+kut);
+penpos13 (.5thin,90);
+penpos2 (thick,0);
+penpos12 (.2thin,90);
+penpos10 (.2thin,180-kut);
+penpos14 (.5thin,-90);
+penstroke z1e{up}..{right}z11e..{dir(kut-90)}z9e..{left}z13e..cycle;
+penstroke z2e{up}..{left}z12e..{dir (angle(z5-z10))}z10e..{right}z14e..cycle;
+x9'=x9+.5(thick-.2thin)*cosd kut; y10'=y10; y9'=y9;
+x10'=w-x9';
+top y7'=h; bot y6'=0;
+(x7'-x9',y7'-y9')dotprod(x9'-x3,y9'-y3)=0;
+(z9'-z3)dotprod(z6'-z9')=0;
+bot z5'=(w-x6',0);
+top z8'=(w-x7',h);
+draw z9'--z6'--z5'--z10';
+z11'=(x11+.5*1.2thick,y11); penpos11' (1.2thick,0);
+penpos9' (thick,0);
+z10'=(w-x9',y9');
+z12'=(w-x11',y11');
+penpos10' (thick,0);
+penpos12' (1.2thick,0);
+penstroke z11'e{right}..{dir(angle(z6'-z9'))}z9'e;
+penstroke z12'e{left}..{dir(angle(z5'-z10'))}z10'e;
+draw z11--z12;
+endchar;
+
+
+
+
+beginchar("J",.95em#,cap#,0); "The letter Dderv<-J";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x4=w-x7=curve_sidebar;
+x3=.5[x1,x4];
+x2=.5[x1,x3];
+x5=.35[x3,x7];
+x6=.5[x5,x7];
+bot y1=bot y3=bot y4=0; top y2=top y6=h;
+h-y5=h-y7=x7-x6;
+kut:=40; %angle(z2-z3)-90;
+kor:=15;
+z57=.5[z5,z7];
+z77-z57=(z7-z57)rotated (-kut); %z77
+z55-z57=(z5-z57)rotated (kut-kor); %z55
+x4:=x4-.7thick;
+z2'=z2;
+z3'=z3;
+ y2:=h-.5*1.3thick* sind63+.5*.3thin; y2':=y2;
+penpos1 (thick,0);
+penpos2 (.3thin,0);
+penpos2' (1.3thick,65);
+penpos3 (1.3thick,0);
+penpos3' (.3thin,180);
+penpos4 (1.3thick,0);
+penpos5 (1.3thick,0);
+penpos55 (1.3thick,kut-kor);
+penpos6 (.5thin,-90);
+penpos7 (.3thin,180);
+penpos77 (.3thin,180-kut);
+penstroke z1e{dir83}..{dir65}z2e;
+penstroke z2'e{dir-65}..{dir-83}z3e;
+penstroke z4e
+..z55e{dir(90+kut-kor)}..z5e{up}..z6e{right}..{down}z7e
+..z77e{dir(-90-kut)}..{dir(180+80)}z3'e;
+drawdot z4; drawdot z3;
+pickup pencircle xscaled thick yscaled .3thin; drawdot z1;
+pickup pencircle xscaled 1.3thick yscaled .3thin rotated 65; drawdot z2;
+endchar;
+
+
+
+beginchar("K",.45em#,cap#,0); "The letter K";
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+x1=x2=x5=x6=
+w-x3=w-x4=curve_sidebar;
+y6=0; y4=y5=h/3; y2=y3=2h/3;y1=h;
+draw z1--z2--z3--z4--z5--z6;
+endchar;
+
+
+beginchar("L",em#,cap#,0); "The letter L";
+pickup pencircle scaled .01thin; %xscaled 1.3thick yscaled .2thin;
+x1=w-x2=.25w;
+d:=2x1-2curve_sidebar;
+y1=y2=.5d;
+top z3=(.5w, h);
+x4=w-x5=x1;
+y4=y5=.7h;
+z6=(x1+.5d,y1); x7=w-x6; y7=y6;
+bot z8-z1=(z6-z1) rotated -90; % z8
+z9-z1=(z8-z1) rotated -90; % z9
+z10-z1=(z9-z1) rotated -90; %z10
+penpos9 (thick,0);
+penpos10 (.4thin,-90);
+penpos8 (.4thin,90);
+penpos6 (.3thin,180);
+bot z11-z2=(z7-z2) rotated 90; % z11
+z12-z2=(z11-z2) rotated 90; % z12
+z13-z2=(z12-z2) rotated 90; %z13
+penpos7 (.3thin,0);
+penpos11 (.4thin,90);
+penpos12 (thick,180);
+penpos13 (.4thin,-90);
+penpos4 (.3thin,180);
+penpos5 (1.4thick,0);
+penpos3 (.4thick,90);
+kut:=10;
+z10'-z1=(z10-z1) rotated -kut;
+z13'-z2=(z13-z2) rotated kut;
+penpos10' (.3thin,-90+kut);
+penpos13' (.3thin,-90-kut);
+penstroke z6e{down}..z8e{left}..z9e{up}..z10'e{dir kut}..{dir-kut}z13'e..
+z12e{down}..z11e{left}..z7e{up}..z5e{up}..z3e{left}..z4e{down}..cycle;
+endchar;
+
+
+
+beginchar("M",1.2em#,cap#,0); "The letter M";
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+x1=w-x2=curve_sidebar; y1=y2=h;
+z4-z1=z2-z5=(.25w,0);
+h-y6=h-y7=.6(x4-x1); x6=.5[x1,x4]; x7=.5[x5,x2];
+draw z1--z2; draw z1{down}.. z6{right}..{up}z4; draw z5{down}..{right}z7
+..{up}z2;
+r:=0.33h;
+y91=y92=.17h; %radius
+x91=.27w; x92=w-x91;
+z3=.5[z1,z2];
+z3-z31=z32-z3=(.5*1.4 thick,0); %(.04w,0);
+z100=(.5w,.6h);
+z200=(.5w,.8y100);
+%x81=.8[x91,x31]; x82=w-x81;
+%y81=y82=.5h ;% 1.2x100;
+x41=x31; x42=x32; y41=y42=.7h;
+pickup pencircle xscaled .9thick yscaled 0.15thin;
+%pickup pencircle scaled (.1thin +blacker);
+kut:=angle(z91-z100)+15;
+kutt:=-kut;
+kut1:=angle(z100-z91);
+fill z31--z41{down}..tension 1.5..{dir kut}z91{dir kut1} %..cycle;
+..tension 1.5..{right}z200..tension 1.5..{dir -kut1}z92{dir kutt}..
+tension1.5..{up}z42--z32-- cycle;
+erase fill fullcircle scaled r shifted z91;
+erase fill fullcircle scaled r shifted z92;
+draw fullcircle scaled r shifted z91;
+draw fullcircle scaled r shifted z92;
+endchar;
+
+
+
+
+beginchar("N",.7em#,cap#,0); "The letter N";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x2=w-x4=curve_sidebar;
+x8=1.5curve_sidebar;
+x7=x6=.37w; x3=x5=.5w;
+y8=y7=0; y6=y5=h; y2=y3=.5h; y4=.5[y3,y5];
+y1=y2-.1h;
+draw z1--z2--z3{right}..{up}z4..{left}z5--z6--z7--z8;
+endchar;
+
+
+beginchar("O",.55em#,cap#,0); "The letter O";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+r:=.25w;
+s:=r;
+%s:=.15h;
+x1=x2=w-x6=curve_sidebar;
+x8=x9=x5=x3=x1+r;
+y1=h-y2=s; y6=.5h; y8=0; y3=h; y9=h-y5=2s;
+kut:=70;
+z35=.5[z5,z3];
+z89=.5[z8,z9];
+(z3-z35)=(z4-z35) rotated 30; % z4
+(z7-z89)=(z8-z89) rotated 30; % z7
+penpos1 (thick,0); penpos2 (thick,0);
+penpos3 (.4thin,-90);
+penpos5 (.3thin,90);
+penpos9 (.3thin,-90);
+penpos8 (.4thin,90);
+kut1:=angle(z35-z4);
+kut2:=angle(z89-z7);
+penpos4 (.4thin,kut1);
+penpos7 (.4thin,kut2) ;
+penpos6 (1.3thick,180);
+kut4:=angle(z4-z35)-90;
+kut7:=angle(z7-z89)+90;
+penstroke z4e{dir kut4}..z5e{left}..{up}z2e..{right}z3e..z4e{dir kut4}..{down}z6e;
+penstroke z7e{dir kut7}..z9e{left}..{down}z1e..{right}z8e..z7e{dir
+kut7}..{up}z6e;
+picture slovoO; slovoO=currentpicture;
+endchar;
+
+
+beginchar("I",.8em#,1.02*cap#,0); "The letter I"; %.76
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x4=w-x2=curve_sidebar;
+x1=x3=x5=.5w;
+x1-x7=.2w;
+.5[x7,x6]=x1;
+bot y1=0; top y7=top y6=h;
+y3=.7h; y2=y4=y5=.5[y1,y3];
+draw z1{left}..z4{up}..{right}z3..{down}z2..cycle;
+pickup pencircle scaled .4thin;
+erase fill z5--z6--z7--cycle;
+draw z5--z6--z7--cycle;
+picture I; I=currentpicture;
+endchar;
+
+
+
+
+
+beginchar("P",.7em#,cap#,0); "The letter P";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+autoround:=4;
+x1=.6curve_sidebar; x2=x3=x7=.26w; w-x6=curve_sidebar; x5=.33[x7,x6]; x4=.5[x5,x6];
+y3=0; y1=y2=.5h; y4=.55h; y7=y6=y5=h;
+penpos6 (1.3thick,0);
+penpos4 (.5thin,-90);
+penpos5 (.3thin,180);
+draw z3--z7--z6;
+penstroke z6e{down}..{left}z4e..{up}z5e;
+pickup pencircle yscaled thick xscaled .2thin;
+draw z1--z2;
+endchar;
+
+
+
+
+beginchar("R",.6em#,cap#,0); "The letter R";
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+x1=x2=x4=w-x3=curve_sidebar;
+y1=h; y2=0; y4=.55h; y3=.5[y2,y4];
+draw z1--z2{right}..{up}z3..{left}z4;
+endchar;
+
+
+beginchar("S",.8em#,cap#,0); "The letter S";
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+transform t;
+t= identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also I transformed t;
+endchar;
+
+
+
+beginchar("T",.9em#,cap#,0); "The letter T";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar;
+x5-x1=x2-x6=.28w; y1=y2=y5=y6=h;
+y3=y4=.4h; x3=w-x4=.5[x1,x5];
+penpos1 (1.3thick,0);
+penpos3 (.5thin,90);
+penpos5 (.3thin,180);
+penpos2 (1.3thick,0);
+penpos4 (.5thin,-90);
+penpos6 (.3thin,180);
+draw z1--z2;
+penstroke z1e{down}..z3e{right}..{up}z5e;
+penstroke z2e{down}..z4e{left}..{up}z6e;
+endchar;
+
+
+
+beginchar(oct"024",.8em#,cap#,0); "The letter Ss";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.98h; y2=y3=y4=.5h;
+draw z1--z2--z4--z5; draw z3--z6;
+endchar;
+
+
+beginchar("C",.85em#,cap#,0); "The letter C";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+smoothing:=4;
+x23=x3=w-x7=curve_sidebar; bot x5=.55w; x6=.82w; y6=.5h;
+y23=.5[y2,y3];
+y5=0; top z4=(.42w,good.y h); top y3=y4; top y7=h; z1=.45[z4,z5]; x1:=x1-.04w;
+z2-z3=z1-z4;
+z12=.5[z1,z2]; z34=.5[z3,z4];
+penpos6(thick,0); penpos7(1.4thick,0);
+kut:=-10;
+draw z1--z12{left}..{dir angle(z4-z5)}z23..{right}z34--z4{dir (angle(z5-z4)+kut)}
+..{dir (angle(z5-z4)-kut)}z5;
+x55=x5+.4*thick; y55=0; penpos55(.7thick,0);
+penstroke z55e..z6e..z7e;
+endchar;
+
+
+
+
+
+
+beginchar(oct"023",.9em#,cap#,0); "The letter Cc";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+autoround:=4;
+x1=w-x2=curve_sidebar; x3=x5=w-x4=w-x6=.3w;
+x7=w-x8=.5(x3-x1); x11=.5w; x10=w-x9=.5(x7+x11);
+y1=y2=y3=y4=0; y5=y6=y7=y8=y11=.5h; y9=y10=h;
+z12=.3[z10,z7]; z13=.3[z9,z8];
+z14=.5[z12,z13];
+x12:=.2[x12,x14]; x13:=.2[x13,x14];
+draw z10..z12..z7; draw z7--z8; draw z8..z13..z9;
+pickup pencircle xscaled thick yscaled .2thin;
+draw z11--z14;
+draw z12--z13;
+d:=y11; z=(.5w,0); z0=.5[z,z11];
+draw fullcircle scaled d shifted z0;
+endchar;
+
+
+
+
+beginchar(oct"021",.8em#,cap#,0); "The letter Ch"; %ch, ssch
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=x2=w-x4=w-x5=curve_sidebar; x3=x6=.5w;
+y1=y5=h; y6=.98h; y2=y3=y4=.5h;
+z7=(x3,.5y3); d:=y3;
+draw z1--z2--z4--z5; draw z3--z6;
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+draw fullcircle scaled d shifted z7;
+endchar;
+
+
+
+beginchar("U",2*.55em#,cap#,0); "The letter U";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+w:=.5w;
+r:=.25w;
+s:=r;
+%s:=.15h;
+x1=x2=w-x6=curve_sidebar;
+x8=x9=x5=x3=x1+r;
+y1=h-y2=s; y6=.5h; y8=0; y3=h; y9=h-y5=2s;
+kut:=70;
+z35=.5[z5,z3];
+z89=.5[z8,z9];
+(z3-z35)=(z4-z35) rotated 30; % z4
+(z7-z89)=(z8-z89) rotated 30; % z7
+penpos1 (thick,0); penpos2 (thick,0);
+penpos3 (.4thin,-90);
+penpos5 (.3thin,90);
+penpos9 (.3thin,-90);
+penpos8 (.4thin,90);
+kut1:=angle(z35-z4);
+kut2:=angle(z89-z7);
+penpos4 (.4thin,kut1);
+penpos7 (.4thin,kut2) ;
+penpos6 (1.3thick,180);
+kut4:=angle(z4-z35)-90;
+kut7:=angle(z7-z89)+90;
+penstroke z4e{dir kut4}..z5e{left}..{up}z2e..{right}z3e..z4e{dir kut4}..{down}z6e;
+penstroke z7e{dir kut7}..z9e{left}..{down}z1e..{right}z8e..z7e{dir
+kut7}..{up}z6e;
+d:=w-.15w;
+x1':=x1+d;
+x2':=x2+d;
+x3':=x3+d;
+x4':=x4+d;
+x5':=x5+d;
+x6':=x6+d;
+x7':=x7+d;
+x8':=x8+d;
+x9':=x9+d;
+x35':=x35+d;
+x89':=x89+d;
+y1'=h-y2'=s; y6'=.5h; y8'=0; y3'=h; y9'=h-y5'=2s;
+%kut:=70;
+z35'=.5[z5',z3'];
+z89'=.5[z8',z9'];
+(z3'-z35')=(z4'-z35') rotated 30; % z4
+(z7'-z89')=(z8'-z89') rotated 30; % z7
+penpos1' (thick,0); penpos2' (thick,0);
+penpos3' (.4thin,-90);
+penpos5' (.3thin,90);
+penpos9' (.3thin,-90);
+penpos8' (.4thin,90);
+%kut1:=angle(z35-z4);
+%kut2:=angle(z89-z7);
+penpos4' (.4thin,kut1);
+penpos7' (.4thin,kut2) ;
+penpos6' (1.3thick,180);
+%kut4:=angle(z4-z35)-90;
+%kut7:=angle(z7-z89)+90;
+penstroke z4'e{dir kut4}..z5'e{left}..{up}z2'e..{right}z3'e..z4'e{dir kut4}..{down}z6'e;
+penstroke z7'e{dir kut7}..z9'e{left}..{down}z1'e..{right}z8'e..z7'e{dir
+kut7}..{up}z6'e;
+z10=(2w-.6curve_sidebar,.5h);
+pickup pencircle yscaled .5thin;
+draw z6'--z10;
+endchar;
+
+
+
+beginchar("F",1.5em#,cap#,0); "The letter Thita=F";
+pickup pencircle xscaled 1.4thick yscaled .2thin;
+x1=w-x2=curve_sidebar; y1=y2=.5h;
+z3-z1=z2-z4=.2(z2-z1);
+x5=x7=w-x6=w-x8=.42w; y5=y6=0; y7=y8=h;
+x9=w-x10=.5(x1+x3); y9=y10=.2h;
+draw z3{down}..z9..{up}z1--z2{down}..z10..{up}z4;
+draw z5--z6--z8--z7--cycle;
+endchar;
+
+
+
+beginchar("H",.7em#,cap#,0); "The letter H";
+%pickup pencircle xscaled 1.4thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x1=w-x5=curve_sidebar;
+x2=x3=.1w+curve_sidebar;
+r:=.22w;
+x6=x4=x5-r; x7=x5-2r;
+bot y1=bot y6=0; y2=2.3r; top y3=h; y7=y5=r;
+y4=2r;
+penpos1 (.1thin,0);
+penpos2 (1.3thick,0);
+penpos3 (1.3thick,0);
+penpos4 (.5thin,-90);
+penpos5 (1.1thick,180);
+penpos6 (.5thin,90);
+penpos7 (.3thin,0);
+penstroke z3e---z2e..z1e;
+penstroke z4e{left}..{dir(180+60)}z1e;
+penstroke z4e{left}..z7e{down}..z6e{right}..{up}z5e.. cycle;
+endchar;
+
+
+
+
+beginchar("Q",.8em#,cap#,.3em#); "The letter OT->Q";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+x4=w-x2=curve_sidebar;
+y4=y2=.5h;
+bot z1=(.5w,0); top z3=(.5w,h);
+r:=.15h;
+z5=(x3,y3-r);
+z6=(x1,y1+r);
+draw superellipse(z2,z3,z4,z1,.75);
+pickup pencircle scaled .3thin;
+draw fullcircle scaled 2r shifted z5;
+draw fullcircle scaled 2r shifted z6;
+endchar;
+
+
+
+beginchar("W",.9em#,cap#,0); "The letter W->ja";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x2=curve_sidebar; y1=y2=0;
+z8=.5[z1,z2];
+x8-x3=x4-x8=.03w;
+%x3=x4=w/2;
+y3=y4=h;
+z5=.4[z1,z3]; z6=.4[z2,z4]; x5:=x5+.03w; x6:=x6-.03w;
+z7=.5[z5,z6];
+kut:=8;
+draw z1--z2{dir (angle(z4-z2)+kut)}..{dir (angle(z4-z2)-kut)}z4--
+z3{dir (angle(z1-z3)+kut)}..{dir(angle(z1-z3)-kut)}z1;
+draw z5--z6; draw z8--z7;
+endchar;
+
+beginchar("X",.7em#,cap#,0); "The letter X->az (Bassch)";
+pickup pencircle xscaled 1.2thick yscaled .2thin;
+c:=curve_sidebar;
+x1=x2=x3=
+w-x4=
+w-x5=
+w-x6=
+w-x7=
+w-x8=c;
+y3=y4=0; y2=y7=.5h; y1=y5=h;
+y6-y7=y7-y8=.1h;
+draw z6--z1--z3--z8; draw z2--z7; draw z4--z5;
+endchar;
+
+
+
+beginchar("2",.9em#,cap#,.3em#); "The letter JU->2";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x1=x2=w-x6=curve_sidebar; top y1=top y4=top y9=h;
+r:=.22h;
+y6=y7=h-r; y8=h-2r;
+x7=x6-2r; x8=x9=x6-r;
+bot y2=0;
+x4=x5=.4w;
+y5=.5h;
+x3=0; y3=-.15h;
+penpos1 (1.2thick,0);
+penpos2 (1.2thick,0);
+penpos3 (.1thin,0);
+penpos4 (1.2thick,0);
+penpos5 (1.2thick,0);
+penstroke z1e--z2e{down}..z3e;
+penstroke z4e--z5e{down}..z3e;
+draw z1--z9{right}..{down}z6;
+penpos6 (1.2thick,0);
+penpos8 (.7thin,-90);
+penpos7 (.5thin,180);
+penpos9 (.3thin,90);
+penstroke z6e{down}..{left}z8e..{up}z7e..{right}z9e;
+endchar;
+
+
+beginchar(oct"001",em#,cap#,0); "The letter Izze2";
+pickup pencircle scaled .3thin;
+r:=.2h;
+x10=w-x12=curve_sidebar; y10=y12=y5=y6=h-r;
+x5=x3=w-x6=w-x4=x10+r;
+top y3=top y4=h;
+z5=.5[z9,z3]; % z9
+z6=.5[z11,z4]; % z11
+z5=.5[z10,z10']; % z10'
+z6=.5[z12,z12']; % z12'
+bot z1=(.5w,0);
+z2=(.5w,.5h);
+kut := 35;
+kutt:=7;
+z3'=z5+(z3-z5)rotated kutt;
+z4'=z6+(z4-z6)rotated -kutt;
+z7-z5=(z10'-z5)rotated kut;
+z8-z6=(z12'-z6)rotated -kut;
+penpos1 (1.4thick,0);
+penpos2 (.4thin,0);
+penpos7 (.3thin,kut);
+penpos3 (.3thin,90);
+penpos3' (.3thin,90+kutt);
+penpos10 (thick,180);
+penpos9 (.5thin,-90);
+penpos8 (.3thin,-kut);
+penpos4 (.3thin,-90);
+penpos4' (.3thin,-90-kutt);
+penpos12 (thick,180);
+penpos11 (.5thin,90);
+penstroke z1e..z2e{up}..{dir(kut+90)}z7e..
+z3'e{dir(180+kutt)}..{down}z10e..{right}z9e..{dir(kut+90)}z7e;
+penstroke z1e..z2e{up}..{dir(90-kut)}z8e
+..z4'e{dir(-kutt)}..{down}z12e..{left}z11e..{dir(90-kut)}z8e;
+draw z3'{dir kutt}..{dir -kutt}z4';
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+drawdot z1;
+endchar;
+
+
+beginchar("7",.8em#,cap#,-.2cap#); "Meki znak 7";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x8=w-x1=curve_sidebar;
+x5=.8w; bot y1=d; top y5=h; y8=.5(y1+y5);
+k:=.28;
+z4=k[z5,z1];
+z2=k[z1,z5]; z3=.5[z1,z5];
+z9-z8=.7(z2-z3);
+z6=(x5-.43w,y5);
+z66-z6=z4-z5;
+z7-z1=z6-z5; % z7
+z77-z7=.5(z2-z1);
+draw z2{left}..{down}z77..{right}z1--z5--z6{down}..controls z66
+..{right}z4;
+draw z8--z3;
+x9:=x9-.5*1.3thick;
+z10=z8+(.5*1.3thick,0);
+x8:=x8-.5*1.3thick;
+fill z8--z9{dir40}..{up}z10--cycle;
+endchar;
+
+beginchar("4",.8em#,cap#,-.2cap#); "Tvrdi znak 4";
+pickup pencircle xscaled 1.4thick yscaled .3thin;
+%pickup pencircle scaled .3thin;
+x8=w-x1=curve_sidebar;
+x5=.8w; bot y1=d; top y5=h; %y8=.5(y1+y5);
+k:=.28;
+z4=k[z5,z1];
+z2=k[z1,z5]; z3=.55[z1,z5]; y8=y3;
+%z9-z8=.7(z2-z3);
+z6=(x5-.43w,y5);
+z66-z6=z4-z5;
+z7-z1=z6-z5; % z7
+z77-z7=.5(z2-z1);
+draw z2{left}..{down}z77..{right}z1--z5--z6{down}..controls z66
+..{right}z4;
+r:=.15h;
+pickup pencircle xscaled .8thick yscaled .3thin;
+x8:=x8+r; draw z8--z3; y8:=y8-r;
+draw fullcircle scaled 2r shifted z8;
+endchar;
+
+k:=.1;
+beginchar(oct"175",(.67+2k)*em#,cap#,0); "priprema En"; %003
+pickup pencircle xscaled 1.3thick yscaled .2thin;
+w:=.67/(.67+2k) *w;
+x1=x5=w-x3=curve_sidebar; y1=h-y5=.1h; y3=h/2;
+x2=x4=.42w; y2=0; y4=h;
+draw z5..{right}z4..{down}z3..{left}z2..z1;
+pickup pencircle xscaled 1.2thin yscaled .2thin;
+a:=.01;
+x8=.35w; x7=w-curve_sidebar-a* w;
+y8=y7=y3;
+draw z8--z7;
+w:=(.67+2k)/.67 *w;
+r:=k*w;
+z6=(w-curve_sidebar-r+.3thin,.5h); %centar kruzznice
+pickup pencircle scaled .3thin;
+draw fullcircle scaled 2r shifted z6;
+%draw (0,0)--(w,0);
+picture E; E=currentpicture ;
+endchar;
+
+beginchar(oct"003",(.67+2k)*em#,cap#,0); "The letter En";
+transform rot; rot=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also E transformed rot;
+picture En; En=currentpicture;
+endchar;
+
+
+
+beginchar(oct"005",1.4*em#,cap#,-.2cap#); "The letter Jen";
+transform t; t=identity;
+transform s; s= identity shifted ((.59)/(1.34+2k)*w,0);
+addto currentpicture also slovoE transformed t;
+addto currentpicture also En transformed s;
+endchar;
+
+beginchar(oct"007",1.3*em#,cap#,0); "The letter On";
+transform t; t=identity;
+transform s; s= identity shifted ((.5)/(1.34+2k)*w,0);
+addto currentpicture also slovoO transformed t;
+addto currentpicture also En transformed s;
+endchar;
+
+
+beginchar(oct"137",.7em#,cap#,0); "zrcaljeni Dz"; % privremeni 022
+transform ref; ref=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also Dz transformed ref;
+picture Dz; Dz=currentpicture;
+endchar;
+
+beginchar(oct"022",1.43*em#,cap#,0); "The letter Jon";
+transform t; t=identity;
+transform s; s= identity shifted ((.6)/(1.34+2k)*w,0);
+addto currentpicture also Dz transformed t;
+addto currentpicture also En transformed s;
+endchar;
+
+beginchar(oct"010",.8em#,cap#,0); "Tvrdi znak (assemani)";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+x1=x2=curve_sidebar;
+ee:=.01;
+re:=(.25+ee)*h;
+se:=(.25-ee)*h;
+x3=x4=x5=w-re-x1;
+y2=y4=(.5+2ee)*h; top y5=h; bot y3=0;
+z1-z2=(0,-.1h);
+draw z1--z2--z4;
+draw fullcircle scaled 2re shifted .5[z3,z4];
+draw fullcircle scaled 2se shifted .5[z5,z4];
+endchar;
+
+beginchar(oct"020",.85em#,cap#,0); "Meki znak (assemani)";
+pickup pencircle xscaled 1.2thick yscaled .3thin;
+ee:=.01;
+re:=(.25+ee)*h;
+se:=(.25-ee)*h;
+u:=.1h;
+x1=curve_sidebar+u; % u = polumjer male kruzznice
+y1=y2-u;
+x3=x4=x5=w-re-curve_sidebar;
+y2=y4=(.5+2ee)*h; top y5=h; bot y3=0;
+z1-z2=(0,-.1h);
+draw fullcircle scaled 2re shifted .5[z3,z4];
+draw fullcircle scaled 2se shifted .5[z5,z4];
+pickup pencircle scaled .3thin;
+draw z2--z4;
+draw fullcircle scaled 2u shifted z1;
+endchar;
+
+
+beginchar(oct"177",.65em#,.1cap#,0); "Tilda";
+pickup pencircle scaled .1thin ;
+x1=w-x2=curve_sidebar;
+x3=w-x6=.2w;
+x4=w-x5=.3w;
+bot y4=bot y6=0; top y3=top y5=h; y1=y2=.5h;
+penpos1 (.1thin,0);
+penpos4 (.2thin,90);
+penpos5 (.2thin,90);
+penpos2 (.1thin,0);
+penpos3 (.1thin,-90);
+penpos6 (.1thin,-90);
+filldraw z3l{left}...z1l{down}...{right}z4l...{right}z5l...{down}z2l
+...{left}z6l--z6r{right}...z2r{up}...
+z5r{left}...z4r{left}...z1r{up}...z3r{right}--cycle;
+endchar;
+
+beginchar(oct"074",.7em#,cap#,0); "The letter pauk(H)";
+pickup pencircle xscaled 1.3thick yscaled .3thin;
+x1=w-x3=curve_sidebar;
+y1=y3=.5h;
+x2=.5w; y1-y2=x2-x1;
+z4=(.3w,-.1h);
+x5=.5w; y4=.5[y5,y2];
+path pr; pr= z2{dir(270-60)}..
+{down}z4..
+{dir(270+60)}z5;
+draw z1{down}..{right}z2..{up}z3;
+pickup pencircle xscaled 1.1thick yscaled .2thin;
+z7=.5[z1,z3];
+path qr; qr= pr rotatedaround (z7,-30);
+draw qr;
+path qs; qs= pr rotatedaround (z7,30);
+draw qs;
+transform rot; rot=identity rotatedaround (z7, 180);
+addto currentpicture also currentpicture transformed rot;
+%picture slovoo; slovoo=currentpicture;
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/ple.mf b/Master/texmf-dist/fonts/source/public/croatian/ple.mf
new file mode 100644
index 00000000000..b5563054d74
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/ple.mf
@@ -0,0 +1,89 @@
+
+% Croatian Wattle Patterns
+% Circular wattle pattern, 1994, darko.zubrinic@etf.hr
+
+mode_setup;
+ font_size 10pt#;
+ u#:=.8pt#; font_quad= 24u#;
+ font_normal_space= 9u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 2u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=.9*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=round 1.1*1/10em;
+
+
+beginchar("a",10cap#,5cap#,5cap#); "veliki, gusti pleter"; %10
+pickup pencircle scaled .2thick;
+n:=20; % 20
+kuts:=360/(2n);
+z0=(.5w,0);
+r:=.7*.5w; % .7
+R:=.5w;
+.5[x7,x6]=.5[w-(R-r),w];
+x8-x7=x7-x6=x6-x5=1.41*1/7*(R-r); % def z5,...,z8
+y5=y6=y7=y8=0;
+z1=(w,0) rotatedaround (z0,kuts);
+z4=(w-3*1/7*(R-r),0) rotatedaround (z0,kuts);
+z1-z2=z2-z3=z3-z4; % def z1,...,z4
+z9=(w-(R-r),0) rotatedaround (z0,-kuts);
+z12=(w-(R-r)+3*1/7*(R-r),0) rotatedaround (z0,-kuts);
+z12-z11=z11-z10=z10-z9; % def z9,...,z12
+
+path p[]; path q[];
+path qq[]; path pp[];
+path p$[]; path q$[];
+path qq$[]; path pp$[];
+
+for l=1 upto 5:
+kutt[l]:=(2l-1)*360/(2n);
+kuttt[l]:=kutt[l]-360/n;
+
+for k=1 upto 12: z'[k][l]=z[k] rotatedaround (z0,kutt[l]); endfor
+kut[l]=angle (z'[9][l]-z'[1][l]); %-10;
+p[l]= z'[1][l]{dir (kutt[l]-90)}..tension1.1..
+ {dir(kut[l])}z'[8][l]..{dir (kuttt[l]-90)}z'[12][l];
+q[l]= z'[2][l]{dir(kutt[l]-90)}..{dir(kut[l])}z'[7][l]..
+ {dir(kuttt[l]-90)}z'[11][l];
+qq[l]= z'[3][l]{dir(kutt[l]-90)}..{dir(kut[l])}z'[6][l]..
+ {dir(kuttt[l]-90)}z'[10][l];
+pp[l]= z'[4][l]{dir(kutt[l]-90)}..{dir(kut[l])}z'[5][l]..
+ {dir(kuttt[l]-90)}z'[9][l];
+
+p$[l]= p[l] reflectedabout (z0,z'[8][l]);
+q$[l]= q[l] reflectedabout (z0,z'[8][l]);
+qq$[l]= qq[l] reflectedabout (z0,z'[8][l]);
+pp$[l]= pp[l] reflectedabout (z0,z'[8][l]);
+
+pickup pencircle scaled .2thick;
+draw p[l];
+pickup pencircle scaled .1thick;
+draw q[l]; draw qq[l];
+pickup pencircle scaled .2thick;
+draw pp[l];
+draw p$[l];
+pickup pencircle scaled .1thick;
+draw q$[l]; draw qq$[l];
+pickup pencircle scaled .2thick;
+draw pp$[l];
+
+unfill z'[1][l]--z'[4][l]{dir(kutt[l]-90)}..{dir(kut[l])}z'[5][l]..
+{dir(kuttt[l]-90)}z'[9][l]--z'[12][l]{dir(90+kuttt[l])}..
+{dir(kut[l]-180)}z'[8][l]..{dir(90+kutt[l])}z'[1][l]..cycle;
+draw p[l];
+pickup pencircle scaled .1thick;
+draw q[l]; draw qq[l];
+pickup pencircle scaled .2thick;
+draw pp[l];
+endfor
+transform s; s=identity rotatedaround (z0,90);
+addto currentpicture also currentpicture transformed s;
+addto currentpicture also currentpicture transformed (s transformed s);
+endchar;
+
+
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/plet.mf b/Master/texmf-dist/fonts/source/public/croatian/plet.mf
new file mode 100644
index 00000000000..80b9c226322
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/plet.mf
@@ -0,0 +1,580 @@
+
+% Croatian Wattle Pattern, 1994,
+% darko.zubrinic@etf.hr
+
+% o mmmm p (slozzeni pleter, jednostruki)
+
+mode_setup;
+ font_size 10pt#;
+ u#:=.8pt#; font_quad= 24u#;
+ font_normal_space= 9u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 2u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=.9*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=round 1.1*1/10em;
+
+
+beginchar("m",5em#,5cap#,0); "drugi pleter";
+pickup pencircle scaled .6thick;
+db:=.08w; %.09w
+r:=.2db;
+rr:=r+db;
+kut:=-35;
+kutt:=10;
+x1=x2=0; x9=.5w-r; x8=x9-1.5db; x10=x7=.5w;
+x5=w-curve_sidebar;
+x6=x5-1.8db; %1.9
+x4=x6; % -.15w;
+x3=x4-db*cosd kut;
+y2-.5h=.5h-y1=1.2*.5db/cosd kut;
+y3=y5=-.1db; y4=y6=db; y8=y9=.5h; y10=.5h-r; y7=y10-rr;
+draw z1{dir(kut)}..{right}z3--z5{dir(90+kutt)}..{left}z10..{up}z9;
+draw z2{dir(kut)}..{right}z4--z6{dir(90+1.3kutt)}..tension1.5..{left}z7..{up}z8;
+
+transform t; t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also currentpicture transformed t;
+
+%brisanje na krugu
+path p; p= z6{dir(90+1.3kutt)}..
+tension1.5..{left}z7..{up}z8--z9{down}..{right}z10..{dir(-90+kutt)}z5--cycle;
+%path q; q=p transformed t;
+
+erase fill p;
+draw z1{dir(kut)}..{right}z3--z5{dir(90+kutt)}..{left}z10..{up}z9;
+draw z2{dir(kut)}..{right}z4--z6{dir(90+1.3kutt)}..tension1.5..{left}z7..{up}z8;
+
+%brisanje na lijevom kraku
+path pp; pp= z7{right}..tension1.5..{dir(-90+1.3kutt)}z6;
+path p; p= subpath (.2,1) of pp;
+%draw p;
+path ss; ss=z5{dir(90+kutt)}..{left}z10;
+path q; q=subpath (0,.55) of ss;
+%draw q;
+path ar; ar=z6--z5; %draw r;
+path ok; ok= point 0 of p{left} & p & ar & q.. cycle;
+path okk; okk= ok reflectedabout ((.5w,0),(.5w,h));
+erase fill okk;
+draw q reflectedabout ((.5w,0),(.5w,h));
+draw p reflectedabout ((.5w,0),(.5w,h));
+
+%brisanje dolje
+path p; p= z1{dir(kut)}..{right}z3;
+path pp; pp= subpath (.45,1) of p; %.5
+path q; q= z4{left}..{dir(180+kut)}z2;
+path qq; qq= subpath (0,.4) of q;
+path qr; qr= pp & z3--z4 & qq--cycle;
+%pickup pencircle scaled .3thick;
+erase fill qr;
+draw pp; draw qq;
+
+%brisanje desno
+%pickup pencircle scaled .3thick;
+path zpp; zpp = subpath (0,.45) of p reflectedabout ((.5w,0),(.5w,h));
+path zqq; zqq = subpath (.4,1) of q reflectedabout ((.5w,0),(.5w,h));
+z.1=z1 reflectedabout ((.5w,0),(.5w,h));
+z.2=z2 reflectedabout ((.5w,0),(.5w,h));
+path zqr; zqr = zqq & z.2--z.1 & zpp --cycle;
+erase fill zqr;
+draw zpp; draw zqq;
+
+%brisanje na lijevom rubu
+path qu; qu= q reflectedabout ((0,.5h),(w,.5h));
+numeric t,u; (t,u)= qu intersectiontimes q;
+%pickup pencircle scaled .3thick;
+path quu; quu= subpath (t,1) of qu;
+undraw quu;
+undraw quu;
+%pickup pencircle scaled .1thick;
+draw point t of qu; draw z1;
+
+transform s; s=identity rotatedaround ((.5w,.5h),180);
+addto currentpicture also currentpicture transformed s;
+endchar;
+
+
+beginchar("o",5em#,5cap#,0); "drugi pleter, lijevi";
+pickup pencircle scaled .6thick;
+db:=.08w; %.09w
+r:=.2db;
+rr:=r+db;
+kut:=-35;
+kutt:=10;
+x1=x2=0; x9=.5w-r; x8=x9-1.5db; x10=x7=.5w;
+x5=w-curve_sidebar;
+x6=x5-1.8db; %1.9
+x4=x6; % -.15w;
+x3=x4-db*cosd kut;
+y2-.5h=.5h-y1=1.2*.5db/cosd kut;
+y3=y5=-.1db; y4=y6=db; y8=y9=.5h; y10=.5h-r; y7=y10-rr;
+draw z1{dir(kut)}..{right}z3--z5{dir(90+kutt)}..{left}z10..{up}z9;
+draw z2{dir(kut)}..{right}z4--z6{dir(90+1.3kutt)}..tension1.5..{left}z7..{up}z8;
+
+transform t; t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also currentpicture transformed t;
+
+%brisanje na krugu
+path p; p= z6{dir(90+1.3kutt)}..
+tension1.5..{left}z7..{up}z8--z9{down}..{right}z10..{down}z5--cycle;
+%path q; q=p transformed t;
+
+erase fill p;
+draw z1{dir(kut)}..{right}z3--z5{dir(90+kutt)}..{left}z10..{up}z9;
+draw z2{dir(kut)}..{right}z4--z6{dir(90+1.3kutt)}..tension1.5..{left}z7..{up}z8;
+
+%brisanje na lijevom kraku
+path pp; pp= z7{right}..tension1.5..{dir(-90+1.3kutt)}z6;
+path p; p= subpath (.2,1) of pp;
+%draw p;
+path ss; ss=z5{dir(90+kutt)}..{left}z10;
+path q; q=subpath (0,.55) of ss;
+%draw q;
+path ar; ar=z6--z5; %draw r;
+path ok; ok= point 0 of p{left} & p & ar & q.. cycle;
+path okk; okk= ok reflectedabout ((.5w,0),(.5w,h));
+erase fill okk;
+draw q reflectedabout ((.5w,0),(.5w,h));
+draw p reflectedabout ((.5w,0),(.5w,h));
+
+%brisanje dolje
+path p; p= z1{dir(kut)}..{right}z3;
+path pp; pp= subpath (.45,1) of p; %.5
+path q; q= z4{left}..{dir(180+kut)}z2;
+path qq; qq= subpath (0,.4) of q;
+path qr; qr= pp & z3--z4 & qq--cycle;
+%pickup pencircle scaled .3thick;
+erase fill qr;
+draw pp; draw qq;
+
+%brisanje desno
+%pickup pencircle scaled .3thick;
+path zpp; zpp = subpath (0,.45) of p reflectedabout ((.5w,0),(.5w,h));
+path zqq; zqq = subpath (.4,1) of q reflectedabout ((.5w,0),(.5w,h));
+z.1=z1 reflectedabout ((.5w,0),(.5w,h));
+z.2=z2 reflectedabout ((.5w,0),(.5w,h));
+path zqr; zqr = zqq & z.2--z.1 & zpp --cycle;
+erase fill zqr;
+draw zpp; draw zqq;
+
+%brisanje na lijevom rubu
+path qu; qu= q reflectedabout ((0,.5h),(w,.5h));
+numeric t,u; (t,u)= qu intersectiontimes q;
+%pickup pencircle scaled .3thick;
+path quu; quu= subpath (t,1) of qu;
+undraw quu;
+undraw quu;
+%pickup pencircle scaled .1thick;
+draw point t of qu; %draw z1;
+
+transform s; s=identity rotatedaround ((.5w,.5h),180);
+addto currentpicture also currentpicture transformed s;
+
+kr:=.2h;
+z11=(x1,y1-kr);
+z22=(x2,y2+kr);
+z11-z33=(z22-z33) rotated (-2kut);
+erase fill z11--z22--z33--cycle;
+undrawdot z1; undrawdot z2;
+
+%z.11=(w,y11); %ZA DESNI KRAJ
+%z.22=(w,y22);
+%z.33=(w-x33,y33);
+%erase fill z.11--z.22--z.33--cycle;
+%undrawdot (w,y1); undrawdot (w,y2);
+
+path pa; pa = z11 -- z33;
+numeric s, v; (s,v)= p intersectiontimes pa;
+numeric t, v; (t,v)= q intersectiontimes pa;
+z$1= point s of p; z$2= point t of q;
+z$11=(x$1,h-y$1);
+z$22=(x$2,h-y$2);
+%draw z$1--z$2;
+%draw z$11--z$22;
+kut1:= angle direction s of p;
+kut2:= angle direction t of q;
+draw z$11{dir(180-kut1)}..tension1.1..{dir kut1}z$1;
+draw z$2{dir kut2}..{dir(180-kut2)}z$22;
+picture lijevi_pleter; lijevi_pleter= currentpicture;
+
+endchar;
+
+beginchar("p",5em#,5cap#,0); "drugi pleter, desni";
+pickup pencircle scaled .6thick;
+transform zrcal; zrcal = identity rotatedabout ((.5w,.5h),180);
+addto currentpicture also lijevi_pleter transformed zrcal;
+endchar;
+
+
+%%%%%%%%%%%%% (slozzeni troplet) srrrrrt
+
+
+beginchar("r",5em#,5cap#,0); "drugi troplet";
+pickup pencircle scaled .6thick;
+db:=.08w; %.09w
+r:=.2db;
+rr:=r+db;
+kut:=-35;
+kutt:=10;
+x1=x2=0; x9=.5w-r; x8=x9-1.5db; x10=x7=.5w;
+x5=w-curve_sidebar;
+x6=x5-1.8db; %1.9
+x4=x6; % -.15w;
+x3=x4-db*cosd kut;
+y2-.5h=.5h-y1=1.2*.5db/cosd kut;
+y3=y5=-.1db; y4=y6=db; y8=y9=.5h; y10=.5h-r; y7=y10-rr;
+draw z1{dir(kut)}..{right}z3--z5{dir(90+kutt)}..{left}z10..{up}z9;
+draw z2{dir(kut)}..{right}z4--z6{dir(90+1.3kutt)}..tension1.5..{left}z7..{up}z8;
+
+z1$=1/3[z1,z2]; % troplet
+z2$=2/3[z1,z2];
+z3$=1/3[z3,z4];
+z4$=2/3[z3,z4];
+z5$=1/3[z5,z6];
+z6$=2/3[z5,z6];
+z10$=1/3[z10,z7];
+z7$=2/3[z10,z7];
+z9$=1/3[z9,z8];
+z8$=2/3[z9,z8];
+pickup pencircle scaled .3thick;
+draw z1${dir(kut)}..{right}z3$--z5${dir(90+kutt)}..tension 1.1..
+{left}z10$..{up}z9$; %1.166
+draw z2${dir(kut)}..{right}z4$--z6${dir(90+1.1kutt)}..tension1.2..
+{left}z7$..{up}z8$; %1.333
+
+transform t; t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also currentpicture transformed t;
+
+%brisanje na krugu
+path p; p= z6{dir(90+1.3kutt)}..
+tension1.5..{left}z7..{up}z8--z9{down}..{right}z10..{dir(-90+kutt)}z5--cycle;
+erase fill p;
+
+pickup pencircle scaled .6thick;
+draw z1{dir(kut)}..{right}z3--z5{dir(90+kutt)}..{left}z10..{up}z9;
+draw z2{dir(kut)}..{right}z4--z6{dir(90+1.3kutt)}..tension1.5..{left}z7..{up}z8;
+pickup pencircle scaled .3thick;
+draw z1${dir(kut)}..{right}z3$--z5${dir(90+kutt)}..tension1.1..
+{left}z10$..{up}z9$;
+draw z2${dir(kut)}..{right}z4$--z6${dir(90+1.1kutt)}..tension1.2..
+{left}z7$..{up}z8$;
+pickup pencircle scaled .6thick;
+
+%brisanje na lijevom kraku
+path pp; pp= z7{right}..tension1.5..{dir(-90+1.3kutt)}z6;
+path p; p= subpath (.2,1) of pp;
+path ss; ss=z5{dir(90+kutt)}..{left}z10;
+path q; q=subpath (0,.55) of ss;
+path ar; ar=z6--z5; %draw r;
+path ok; ok= point 0 of p{left} & p & ar & q.. cycle;
+path okk; okk= ok reflectedabout ((.5w,0),(.5w,h));
+erase fill okk;
+draw q reflectedabout ((.5w,0),(.5w,h));
+draw p reflectedabout ((.5w,0),(.5w,h));
+
+pickup pencircle scaled .3thick;
+%brisanje na lijevom kraku
+path pp$; pp$= z7${right}..tension1.2..
+{dir(-90+1.1kutt)}z6$;
+path p$; p$= subpath (.2,1) of pp$;
+path ss$; ss$=z5${dir(90+kutt)}..tension1.1..{left}z10$;
+path q$; q$=subpath (0,.7) of ss$; %.55
+draw q$ reflectedabout ((.5w,0),(.5w,h));
+draw p$ reflectedabout ((.5w,0),(.5w,h));
+
+pickup pencircle scaled .6thick;
+%brisanje dolje
+path p; p= z1{dir(kut)}..{right}z3;
+path pp; pp= subpath (.45,1) of p; %.5
+path q; q= z4{left}..{dir(180+kut)}z2;
+path qq; qq= subpath (0,.4) of q;
+path qr; qr= pp & z3--z4 & qq--cycle;
+erase fill qr;
+draw pp; draw qq;
+
+pickup pencircle scaled .3thick;
+path p$; p$= z1${dir(kut)}..{right}z3$;
+path pp$; pp$= subpath (.45,1) of p$; %.5
+path q$; q$= z4${left}..{dir(180+kut)}z2$;
+path qq$; qq$= subpath (0,.45) of q$;
+draw pp$; draw qq$;
+
+%brisanje desno
+pickup pencircle scaled .6thick;
+path zpp; zpp = subpath (0,.45) of p reflectedabout ((.5w,0),(.5w,h));
+path zqq; zqq = subpath (.4,1) of q reflectedabout ((.5w,0),(.5w,h));
+z.1=z1 reflectedabout ((.5w,0),(.5w,h));
+z.2=z2 reflectedabout ((.5w,0),(.5w,h));
+path zqr; zqr = zqq & z.2--z.1 & zpp --cycle;
+erase fill zqr;
+draw zpp; draw zqq;
+
+pickup pencircle scaled .3thick;
+path zpp$; zpp$ = subpath (0,.5) of p$ reflectedabout ((.5w,0),(.5w,h));
+path zqq$; zqq$ = subpath (.45,1) of q$ reflectedabout ((.5w,0),(.5w,h));
+draw zpp$; draw zqq$;
+pickup pencircle scaled .6thick;
+
+%brisanje na lijevom rubu
+path qu; qu= q reflectedabout ((0,.5h),(w,.5h));
+numeric t,u; (t,u)= qu intersectiontimes q;
+%pickup pencircle scaled .6thick;
+path quu; quu= subpath (t,1) of qu;
+undraw quu;
+undraw quu;
+%pickup pencircle scaled .6thick;
+draw point t of qu; draw z1;
+
+pickup pencircle scaled .3thick;
+path qu$; qu$= q$ reflectedabout ((0,.5h),(w,.5h));
+numeric t$,u$; (t$,u$)= qu$ intersectiontimes q;
+path quu$; quu$= subpath (t$,1) of qu$;
+undraw quu$;
+undraw quu$;
+draw point t$ of qu$; draw point 1 of quu$;
+
+path pu$; pu$= p$ reflectedabout ((0,.5h),(w,.5h));
+numeric t$,u$; (t$,u$)= pu$ intersectiontimes q;
+path puu$; puu$= subpath (0,t$) of pu$;
+undraw puu$;
+undraw puu$;
+draw point t$ of pu$; draw point 0 of puu$;
+
+numeric u,v; (u,v) = p$ intersectiontimes qu;
+path p$$; p$$ = subpath (0,u) of p$; draw p$$; draw p$$;
+numeric uu,vv; (uu,vv) = q$ intersectiontimes qu;
+path q$$; q$$ = subpath (uu,1) of q$; draw q$$; draw q$$;
+
+transform s; s=identity rotatedaround ((.5w,.5h),180);
+addto currentpicture also currentpicture transformed s;
+endchar;
+
+
+
+beginchar("s",5em#,5cap#,0); "drugi troplet, lijevi";
+pickup pencircle scaled .6thick;
+db:=.08w; %.09w
+r:=.2db;
+rr:=r+db;
+kut:=-35;
+kutt:=10;
+x1=x2=0; x9=.5w-r; x8=x9-1.5db; x10=x7=.5w;
+x5=w-curve_sidebar;
+x6=x5-1.8db; %1.9
+x4=x6; % -.15w;
+x3=x4-db*cosd kut;
+y2-.5h=.5h-y1=1.2*.5db/cosd kut;
+y3=y5=-.1db; y4=y6=db; y8=y9=.5h; y10=.5h-r; y7=y10-rr;
+draw z1{dir(kut)}..{right}z3--z5{dir(90+kutt)}..{left}z10..{up}z9;
+draw z2{dir(kut)}..{right}z4--z6{dir(90+1.3kutt)}..tension1.5..{left}z7..{up}z8;
+
+z1$=1/3[z1,z2]; % troplet
+z2$=2/3[z1,z2];
+z3$=1/3[z3,z4];
+z4$=2/3[z3,z4];
+z5$=1/3[z5,z6];
+z6$=2/3[z5,z6];
+z10$=1/3[z10,z7];
+z7$=2/3[z10,z7];
+z9$=1/3[z9,z8];
+z8$=2/3[z9,z8];
+
+pickup pencircle scaled .3thick;
+draw z1${dir(kut)}..{right}z3$--z5${dir(90+kutt)}..tension 1.1..
+{left}z10$..{up}z9$; %1.166
+draw z2${dir(kut)}..{right}z4$--z6${dir(90+1.1kutt)}..tension1.2..
+{left}z7$..{up}z8$; %1.333
+
+transform t; t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also currentpicture transformed t;
+
+%brisanje na krugu
+path p; p= z6{dir(90+1.3kutt)}..
+tension1.5..{left}z7..{up}z8--z9{down}..{right}z10..{dir(-90+kutt)}z5--cycle;
+erase fill p;
+
+pickup pencircle scaled .6thick;
+draw z1{dir(kut)}..{right}z3--z5{dir(90+kutt)}..{left}z10..{up}z9;
+draw z2{dir(kut)}..{right}z4--z6{dir(90+1.3kutt)}..tension1.5..{left}z7..{up}z8;
+
+pickup pencircle scaled .3thick;
+draw z1${dir(kut)}..{right}z3$--z5${dir(90+kutt)}..tension1.1..
+{left}z10$..{up}z9$;
+draw z2${dir(kut)}..{right}z4$--z6${dir(90+1.1kutt)}..tension1.2..
+{left}z7$..{up}z8$;
+pickup pencircle scaled .6thick;
+
+%brisanje na lijevom kraku
+path pp; pp= z7{right}..tension1.5..{dir(-90+1.3kutt)}z6;
+path p; p= subpath (.2,1) of pp;
+path ss; ss=z5{dir(90+kutt)}..{left}z10;
+path q; q=subpath (0,.55) of ss;
+path ar; ar=z6--z5; %draw r;
+path ok; ok= point 0 of p{left} & p & ar & q.. cycle;
+path okk; okk= ok reflectedabout ((.5w,0),(.5w,h));
+erase fill okk;
+draw q reflectedabout ((.5w,0),(.5w,h));
+draw p reflectedabout ((.5w,0),(.5w,h));
+
+pickup pencircle scaled .3thick;
+%brisanje na lijevom kraku
+path pp$; pp$= z7${right}..tension1.2..
+{dir(-90+1.1kutt)}z6$;
+path p$; p$= subpath (.2,1) of pp$;
+path ss$; ss$=z5${dir(90+kutt)}..tension1.1..{left}z10$;
+path q$; q$=subpath (0,.7) of ss$; %.55
+draw q$ reflectedabout ((.5w,0),(.5w,h));
+draw p$ reflectedabout ((.5w,0),(.5w,h));
+
+pickup pencircle scaled .6thick;
+%brisanje dolje
+path p; p= z1{dir(kut)}..{right}z3;
+path pp; pp= subpath (.45,1) of p; %.5
+path q; q= z4{left}..{dir(180+kut)}z2;
+path qq; qq= subpath (0,.4) of q;
+path qr; qr= pp & z3--z4 & qq--cycle;
+erase fill qr;
+draw pp; draw qq;
+
+pickup pencircle scaled .3thick;
+path p$; p$= z1${dir(kut)}..{right}z3$;
+path pp$; pp$= subpath (.45,1) of p$; %.5
+path q$; q$= z4${left}..{dir(180+kut)}z2$;
+path qq$; qq$= subpath (0,.45) of q$;
+draw pp$; draw qq$;
+
+%brisanje desno
+pickup pencircle scaled .6thick;
+path zpp; zpp = subpath (0,.45) of p reflectedabout ((.5w,0),(.5w,h));
+path zqq; zqq = subpath (.4,1) of q reflectedabout ((.5w,0),(.5w,h));
+z.1=z1 reflectedabout ((.5w,0),(.5w,h));
+z.2=z2 reflectedabout ((.5w,0),(.5w,h));
+path zqr; zqr = zqq & z.2--z.1 & zpp --cycle;
+erase fill zqr;
+draw zpp; draw zqq;
+
+pickup pencircle scaled .3thick;
+path zpp$; zpp$ = subpath (0,.5) of p$ reflectedabout ((.5w,0),(.5w,h));
+path zqq$; zqq$ = subpath (.45,1) of q$ reflectedabout ((.5w,0),(.5w,h));
+draw zpp$; draw zqq$;
+pickup pencircle scaled .6thick;
+
+%brisanje na lijevom rubu
+path qu; qu= q reflectedabout ((0,.5h),(w,.5h));
+numeric t,u; (t,u)= qu intersectiontimes q;
+path quu; quu= subpath (t,1) of qu;
+undraw quu;
+undraw quu;
+draw point t of qu; draw z1;
+
+
+path qu$; qu$= q$ reflectedabout ((0,.5h),(w,.5h));
+numeric t$,u$; (t$,u$)= qu$ intersectiontimes q;
+path quu$; quu$= subpath (t$,1) of qu$;
+undraw quu$;
+undraw quu$;
+draw point t$ of qu$; draw point 1 of quu$;
+
+pickup pencircle scaled .3thick;
+path pu$; pu$= p$ reflectedabout ((0,.5h),(w,.5h));
+numeric t$,u$; (t$,u$)= pu$ intersectiontimes q;
+path puu$; puu$= subpath (0,t$) of pu$;
+undraw puu$;
+undraw puu$;
+draw point t$ of pu$; draw point 0 of puu$;
+
+numeric u,v; (u,v) = p$ intersectiontimes qu;
+path p$$; p$$ = subpath (0,u) of p$; draw p$$; draw p$$;
+numeric uu,vv; (uu,vv) = q$ intersectiontimes qu;
+path q$$; q$$ = subpath (uu,1) of q$; draw q$$; draw q$$;
+
+transform s; s=identity rotatedaround ((.5w,.5h),180);
+addto currentpicture also currentpicture transformed s;
+
+
+kr:=.2h;
+z11=(x1,y1-kr);
+z22=(x2,y2+kr);
+z11-z33=(z22-z33) rotated (-2kut);
+erase fill z11--z22--z33--cycle;
+undrawdot z1; undrawdot z2;
+
+path pa; pa = z11 -- z33;
+numeric s, v; (s,v)= p intersectiontimes pa;
+numeric t, v; (t,v)= q intersectiontimes pa;
+z$1= point s of p; z$2= point t of q;
+z$11=(x$1,h-y$1);
+z$22=(x$2,h-y$2);
+%draw z$1--z$2;
+%draw z$11--z$22;
+kut1:= angle direction s of p;
+kut2:= angle direction t of q;
+pickup pencircle scaled .6thick;
+draw z$11{dir(180-kut1)}..tension1.1..{dir kut1}z$1;
+draw z$2{dir kut2}..{dir(180-kut2)}z$22;
+
+pickup pencircle scaled .3thick;
+numeric s, v; (s,v)= p$ intersectiontimes pa;
+numeric t, v; (t,v)= q$ intersectiontimes pa;
+kut$1=angle direction s of p$;
+kut$2=angle direction t of q$;
+z$$1=point s of p$;
+z$$2=point t of q$;
+
+kutu$1=180-kut$1;
+kutu$2=180-kut$2;
+z$$u1=z$$1 reflectedabout ((0,.5h),(w,.5h));
+z$$u2=z$$2 reflectedabout ((0,.5h),(w,.5h));
+
+draw z$$u1{dir(kutu$1)}..{dir(kut$1)}z$$1;
+draw z$$2{dir(kut$2)}..{dir(kutu$2)}z$$u2;
+
+pickup pencircle scaled thick;
+undraw z1; undraw z2; undraw point 0 of p$; undraw point 1 of q$;
+
+picture lijevi_pleter; lijevi_pleter= currentpicture;
+endchar;
+
+
+
+beginchar("t",5em#,5cap#,0); "drugi troplet, desni";
+pickup pencircle scaled .6thick;
+transform zrcal; zrcal = identity rotatedabout ((.5w,.5h),180);
+addto currentpicture also lijevi_pleter transformed zrcal;
+endchar;
+
+
+
+
+end.
+
+beginchar("n",5*em#,5*cap#,0); "temeljni pleter";
+pickup pencircle scaled .5thick;
+db:=.08w; %.09w
+r:=.2db;
+rr:=r+db;
+kut:=-35;
+kutt:=10;
+x1=x2=0; x9=.5w-r; x8=x9-1.2db; x10=x7=.5w;
+x5=w-curve_sidebar;
+x6=x5-1.8db; %1.9
+x4=x6; % -.15w;
+x3=x4-db*cosd kut;
+y2-.5h=.5h-y1=1.2*.5db/cosd kut;
+y3=y5=0; y4=y6=db; y8=y9=.5h; y10=.5h-r; y7=y10-rr;
+draw z1{dir(kut)}..{right}z3--z5{dir(90+kutt)}..{left}z10..{up}z9;
+draw z2{dir(kut)}..{right}z4--z6{dir(90+1.3kutt)}..tension1.5..{left}z7..{up}z8;
+transform t; t=identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also currentpicture transformed t;
+transform s; s=identity rotatedaround ((.5w,.5h),180);
+addto currentpicture also currentpicture transformed s;
+endchar;
+
+
+
+
+
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/croatian/pleter.mf b/Master/texmf-dist/fonts/source/public/croatian/pleter.mf
new file mode 100644
index 00000000000..7342aac5f7c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/pleter.mf
@@ -0,0 +1,297 @@
+
+% Croatian Wattle Pattern,
+% 1994, darko.zubrinic@etf.hr
+
+mode_setup;
+ font_size 10pt#;
+ u#:=.8pt#; font_quad= 24u#;
+ font_normal_space= 9u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 2u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=.9*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=round 1.1*1/10em;
+
+
+beginchar("a",5*1.41cap#,5*cap#,0); "veliki ssiroki pleter";
+pickup pencircle xscaled thick yscaled thick;
+x1=x2=x3=x4=0; x5=x6=x7=x8=.5w; x9=x10=x11=x12=w;
+y1=h; y9=0;
+y1-y2=y2-y3=y3-y4=y12-y11=y11-y10=y10-y9=1/7h;
+y8-y7=y7-y6=y6-y5=1.41*1/7h;
+.5[y7,y6]=.5h;
+kut:=angle(z9-z1);%-10;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .5thick yscaled .5thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled thick yscaled thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+transform zrc; zrc=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also currentpicture transformed zrc;
+unfill z1--z4{right}..{dir(kut)}z5..{right}z9--z12{left}..{dir(180+kut)}z8
+..{left}z1..cycle;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .5thick yscaled .5thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled thick yscaled thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+endchar;
+
+
+beginchar("b",5*1.2cap#,5*cap#,0); "veliki pleter, srednje ssirine";
+pickup pencircle xscaled thick yscaled thick;
+x1=x2=x3=x4=0; x5=x6=x7=x8=.5w; x9=x10=x11=x12=w;
+y1=h; y9=0;
+y1-y2=y2-y3=y3-y4=y12-y11=y11-y10=y10-y9=1/7h;
+y8-y7=y7-y6=y6-y5=1.41*1/7h;
+.5[y7,y6]=.5h;
+kut:=angle(z9-z1);%-10;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .5thick yscaled .5thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled thick yscaled thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+transform zrc; zrc=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also currentpicture transformed zrc;
+unfill z1--z4{right}..{dir(kut)}z5..{right}z9--z12{left}..{dir(180+kut)}z8
+..{left}z1..cycle;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .5thick yscaled .5thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled thick yscaled thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+endchar;
+
+
+beginchar("c",5*cap#,5*cap#,0); "veliki, gusti pleter";
+pickup pencircle xscaled thick yscaled thick;
+x1=x2=x3=x4=0; x5=x6=x7=x8=.5w; x9=x10=x11=x12=w;
+y1=h; y9=0;
+y1-y2=y2-y3=y3-y4=y12-y11=y11-y10=y10-y9=1/7h;
+y8-y7=y7-y6=y6-y5=1.41*1/7h;
+.5[y7,y6]=.5h;
+kut:=angle(z9-z1);%-10;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .5thick yscaled .5thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled thick yscaled thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+transform zrc; zrc=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also currentpicture transformed zrc;
+unfill z1--z4{right}..{dir(kut)}z5..{right}z9--z12{left}..{dir(180+kut)}z8
+..{left}z1..cycle;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .5thick yscaled .5thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled thick yscaled thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+picture slovoc; slovoc=currentpicture;
+endchar;
+
+beginchar("v",5*cap#,5*cap#,0); "Okomiti pleter";
+transform rot;rot= identity rotatedabout ((.5w,.5h),90);
+addto currentpicture also slovoc transformed rot;
+endchar;
+
+
+
+beginchar("e",1.41cap#,cap#,0); "tanki ssiroki pleter";
+pickup pencircle xscaled .2thick yscaled .2thick;
+x1=x2=x3=x4=0; x5=x6=x7=x8=.5w; x9=x10=x11=x12=w;
+y1=h; y9=0;
+y1-y2=y2-y3=y3-y4=y12-y11=y11-y10=y10-y9=1/7h;
+y8-y7=y7-y6=y6-y5=1.41*1/7h;
+.5[y7,y6]=.5h;
+kut:=angle(z9-z1);%-10;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .1thick yscaled .1thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled .2thick yscaled .2thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+transform zrc; zrc=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also currentpicture transformed zrc;
+unfill z1--z4{right}..{dir(kut)}z5..{right}z9--z12{left}..{dir(180+kut)}z8
+..{left}z1..cycle;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .1thick yscaled .1thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled .2thick yscaled .2thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+endchar;
+
+beginchar("f",cap#,cap#,0); "tanki gusti pleter";
+pickup pencircle xscaled .2thick yscaled .2thick;
+x1=x2=x3=x4=0; x5=x6=x7=x8=.5w; x9=x10=x11=x12=w;
+y1=h; y9=0;
+y1-y2=y2-y3=y3-y4=y12-y11=y11-y10=y10-y9=1/7h;
+y8-y7=y7-y6=y6-y5=1.41*1/7h;
+.5[y7,y6]=.5h;
+kut:=angle(z9-z1);%-10;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .1thick yscaled .1thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled .2thick yscaled .2thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+transform zrc; zrc=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also currentpicture transformed zrc;
+unfill z1--z4{right}..{dir(kut)}z5..{right}z9--z12{left}..{dir(180+kut)}z8
+..{left}z1..cycle;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .1thick yscaled .1thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled .2thick yscaled .2thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+endchar;
+
+
+
+beginchar("l",5*4/7*cap#,5*cap#,0); "veliki lijevi kraj";
+pickup pencircle xscaled thick yscaled thick;
+x1=x2=w; x3=x4=w-1/4w; y1=y4=h-y2=h-y3=.5h-.5*1/7h;
+z14=(0,0); z15=(0,h); z16=(w,h); z13=(w,0);
+z2-z1=z8-z2=z12-z8=z16-z12=z1-z5=z5-z9=z9-z13;
+z11-z12=z10-z9=3(z3-z2); z8-z7=z5-z6=2(z1-z4);
+draw z1--z4--z3--z2;
+pickup pencircle xscaled .5thick yscaled .5thick;
+draw z5--z6--z7--z8;
+draw z9--z10--z11--z12;
+pickup pencircle xscaled thick yscaled thick;
+draw z13--z14--z15--z16;
+picture slovol; slovol=currentpicture;
+transform rot; rot= identity rotatedabout ((.5w,.5h),-90)
+shifted (1.5*1/7h,-1.5*1/7h);
+picture slovoll; slovoll=currentpicture transformed rot;
+endchar;
+
+beginchar("d",5*4/7*cap#,5*cap#,0); "veliki desni kraj";
+transform s;s= identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also slovol transformed s;
+endchar;
+
+beginchar("3",5*cap#,5*4/7*cap#,0); "Okomiti pleter, gore";
+addto currentpicture also slovoll;
+endchar;
+
+beginchar("4",5*cap#,5*4/7*cap#,0); "Okomiti pleter, dolje";
+transform rot;rot= identity rotatedabout ((.5w,.5h),180);
+addto currentpicture also slovoll transformed rot;
+endchar;
+
+
+
+beginchar("1",4/7*cap#,cap#,0); "Lijevi kraj, tanki";
+pickup pencircle xscaled .2thick yscaled .2thick;
+x1=x2=w; x3=x4=w-1/4w; y1=y4=h-y2=h-y3=.5h-.5*1/7h;
+z14=(0,0); z15=(0,h); z16=(w,h); z13=(w,0);
+z2-z1=z8-z2=z12-z8=z16-z12=z1-z5=z5-z9=z9-z13;
+z11-z12=z10-z9=3(z3-z2); z8-z7=z5-z6=2(z1-z4);
+draw z1--z4--z3--z2;
+pickup pencircle xscaled .1thick yscaled .1thick;
+draw z5--z6--z7--z8;
+draw z9--z10--z11--z12;
+pickup pencircle xscaled .2thick yscaled .2thick;
+draw z13--z14--z15--z16;
+picture slovol; slovol=currentpicture;
+endchar;
+
+beginchar("2",4/7*cap#,cap#,0); "Desni kraj, tanki";
+transform s;s= identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also slovol transformed s;
+endchar;
+
+
+beginchar("g",3*1.2cap#,3*cap#,0); "srednji pleter g (ssiri)";
+pickup pencircle xscaled .6thick yscaled .6thick;
+x1=x2=x3=x4=0; x5=x6=x7=x8=.5w; x9=x10=x11=x12=w;
+y1=h; y9=0;
+y1-y2=y2-y3=y3-y4=y12-y11=y11-y10=y10-y9=1/7h;
+y8-y7=y7-y6=y6-y5=1.41*1/7h;
+.5[y7,y6]=.5h;
+kut:=angle(z9-z1);%-10;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .3thick yscaled .3thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled .6thick yscaled .6thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+transform zrc; zrc=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also currentpicture transformed zrc;
+unfill z1--z4{right}..{dir(kut)}z5..{right}z9--z12{left}..{dir(180+kut)}z8
+..{left}z1..cycle;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .3thick yscaled .3thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled .6thick yscaled .6thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+endchar;
+
+
+beginchar("h",3*cap#,3*cap#,0); "srednji pleter h (uzzi)";
+pickup pencircle xscaled .6thick yscaled .6thick;
+x1=x2=x3=x4=0; x5=x6=x7=x8=.5w; x9=x10=x11=x12=w;
+y1=h; y9=0;
+y1-y2=y2-y3=y3-y4=y12-y11=y11-y10=y10-y9=1/7h;
+y8-y7=y7-y6=y6-y5=1.41*1/7h;
+.5[y7,y6]=.5h;
+kut:=angle(z9-z1);%-10;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .3thick yscaled .3thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled .6thick yscaled .6thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+transform zrc; zrc=identity reflectedabout ((0,.5h),(w,.5h));
+addto currentpicture also currentpicture transformed zrc;
+unfill z1--z4{right}..{dir(kut)}z5..{right}z9--z12{left}..{dir(180+kut)}z8
+..{left}z1..cycle;
+draw z1{right}..{dir(kut)}z8..{right}z12;
+pickup pencircle xscaled .3thick yscaled .3thick;
+draw z2{right}..{dir(kut)}z7..{right}z11;
+draw z3{right}..{dir(kut)}z6..{right}z10;
+pickup pencircle xscaled .6thick yscaled .6thick;
+draw z4{right}..{dir(kut)}z5..{right}z9;
+%picture slovoh; slovoh=currentpicture;
+endchar;
+
+
+beginchar("5",3*4/7*cap#,3*cap#,0); "lijevi kraj (srednja vel)";
+pickup pencircle xscaled .6thick yscaled .6thick;
+x1=x2=w; x3=x4=w-1/4w; y1=y4=h-y2=h-y3=.5h-.5*1/7h;
+z14=(0,0); z15=(0,h); z16=(w,h); z13=(w,0);
+z2-z1=z8-z2=z12-z8=z16-z12=z1-z5=z5-z9=z9-z13;
+z11-z12=z10-z9=3(z3-z2); z8-z7=z5-z6=2(z1-z4);
+draw z1--z4--z3--z2;
+pickup pencircle xscaled .3thick yscaled .3thick;
+draw z5--z6--z7--z8;
+draw z9--z10--z11--z12;
+pickup pencircle xscaled .6thick yscaled .6thick;
+draw z13--z14--z15--z16;
+picture tri; tri=currentpicture;
+%transform rot; rot= identity rotatedabout ((.5w,.5h),-90)
+%shifted (1.5*1/7h,-1.5*1/7h);
+%picture trri; trri=currentpicture transformed rot; % za vertikalni
+endchar;
+
+beginchar("6",3*4/7*cap#,3*cap#,0); "desni kraj (srednja vel)";
+transform s;s= identity reflectedabout ((.5w,0),(.5w,h));
+addto currentpicture also tri transformed s;
+endchar;
+
+
+
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/croatian/stechak.mf b/Master/texmf-dist/fonts/source/public/croatian/stechak.mf
new file mode 100644
index 00000000000..02ccaddd648
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/stechak.mf
@@ -0,0 +1,909 @@
+
+% ORNAMENTI NA STECHCIMA, 1995
+
+% "a", "b", "c" 8+krug, 7, 6 -kraka zvijezda
+% "j", "e", "f" 6+krug, 5, 4 -kraka zvijezda
+% "g", "h" kotacc s precckama (h ima petokraku zvijezdu)
+% "i", "5" 7 -kraka zvijezda, petokraka
+% "k", "l", "d" kolo
+% "p", "q" ptica
+% "s" svastika
+% "A", "B", "C" krizz (kvadratni), standardni, ljiljan
+% "D", "T" dupli krizz, obli
+% "E", "F", "G", bordure
+% "H", "I", "J",
+% "M", "N"
+% "K" krug
+% "L" lutka
+% "S", "O" 6 i 8 latica cvijeta
+% "P", "R" polumjesec, repatica
+% "Z" zvijezda
+
+Pt#:=3pt#;
+
+mode_setup;
+ font_size 10Pt#;
+ u#:=.8Pt#; font_quad= 24u#;
+ font_normal_space= 9u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 2u#;
+ em#:=10Pt#; cap#:=7Pt#;
+ thin#:=2/3Pt#; thick#:=.9*5/6Pt#;
+ o#:=1/5Pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=round 1.1*1/10em;
+
+
+% Besslagich, zvijezda 8 krakova
+beginchar("a",cap#,cap#,.2cap#); "a(zvijezda)8";
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/8;
+xx:=.5; %cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z2--z3--z4--z4--z1--cycle;
+%{dir (270-.5*kut)}..{right}z1..{dir
+%(90+.5*kut)}z2;
+for n=1,2,3,4,5,6,7,8:
+transform b[]; b[n]= identity rotatedaround (z3, n*kut);
+draw (list transformed b[n]); endfor
+endchar;
+
+
+% Besslagich, 7 krakova
+beginchar("b",cap#,cap#,.2cap#); "b(zvijezda)7";
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/7;
+xx:=.5; %cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z2--z3--z4--z4--z1--cycle;
+%{dir (270-.5*kut)}..{right}z1..{dir
+%(90+.5*kut)}z2;
+list:=list rotatedaround (z3, 180);
+for n=1,2,3,4,5,6,7:
+transform b[]; b[n]= identity rotatedaround (z3, n*kut);
+draw (list transformed b[n]); endfor
+endchar;
+
+
+
+% Besslagich, 6 latica
+beginchar("c",cap#,cap#,.2cap#); "c(zvijezda)6";
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/6;
+xx:=.5; %cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z2--z3--z4--z4--z1--cycle;
+%{dir (270-.5*kut)}..{right}z1..{dir
+%(90+.5*kut)}z2;
+for n=1,2,3,4,5,6:
+transform b[]; b[n]= identity rotatedaround (z3, n*kut);
+draw (list transformed b[n]); endfor
+endchar;
+
+
+
+% Besslagich, zvijezda s 6 latica i krugom
+beginchar("j",cap#,cap#,.2cap#); "j - ssest latica"; % 1.55em#
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/6;
+xx:=1-.5*cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z4{dir (270-.5*kut)}..{right}z1..{dir
+(90+.5*kut)}z2;
+draw list;
+for n=1,2,3,4,5,6:
+transform b[]; b[n]= identity rotatedaround (z3, n*kut);
+draw (list transformed b[n]); endfor
+rr:=.2w;
+path krug; krug= fullcircle scaled rr shifted z3;
+erase fill krug;
+draw krug;
+endchar;
+
+
+% Besslagich, zvijezda sa 5 latica
+beginchar("e",cap#,cap#,.2cap#); "e - 5 latica"; % 1.55em#
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/5;
+xx:=1-.5*cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z4{dir (270-.5*kut)}..{right}z1..{dir
+(90+.5*kut)}z2;
+list:=list rotatedaround (z3, 180);
+transform b; b= identity rotatedaround (z3, kut);
+transform b[]; b[0]=b;
+for n=1,2,3,4,5:
+ b[n]=b[n-1] transformed b;
+draw (list transformed b[n]); endfor
+endchar;
+
+
+
+% Besslagich, zvijezda sa 4 latice
+beginchar("f",cap#,cap#,.2cap#); "f - 4 latice"; % 1.55em#
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/4;
+xx:=1-.5*cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z4{dir (270-.5*kut)}..{right}z1..{dir
+(90+.5*kut)}z2;
+%draw list;
+for n=1,2,3,4:
+transform b[]; b[n]= identity rotatedaround (z3, n*kut);
+draw (list transformed b[n]); endfor
+endchar;
+
+
+% Besslagich, kotacc s 20 preccki
+beginchar("g",cap#,cap#,.2cap#); "g - kotacc(20)"; % 1.55em#
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+draw fullcircle scaled w shifted z3;
+draw fullcircle scaled .7w shifted z3;
+kutt:=-15;
+z1=(.5w,.15h); z2=(.5w,0) rotatedaround (z3,kutt);
+path list; list=z1{dir(270+kutt)}..{dir(180-kutt)}z2;
+kut:=360/20;
+transform b; b= identity rotatedaround (z3, kut);
+transform b[]; b[0]=b;
+for n=1 thru 20:
+ b[n]=b[n-1] transformed b;
+draw (list transformed b[n]); endfor
+endchar;
+
+
+
+% Besslagich, kotacc sa peterokrakom zvijezodm
+beginchar("h",cap#,cap#,.2cap#); "h - kotacc(20+5)"; % 1.55em#
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+draw fullcircle scaled w shifted z3;
+draw fullcircle scaled .7w shifted z3;
+draw fullcircle scaled .3w shifted z3;
+z0=(.5w,.5h+.15w);
+path krak; krak=z3--z0;
+transform c; c=identity rotatedaround (z3, 72);
+transform c[]; c[0]=c;
+for n=1 thru 5:
+ c[n]=c[n-1] transformed c;
+ draw (krak transformed c[n]); endfor
+kutt:=-15;
+z1=(.5w,.15h); z2=(.5w,0) rotatedaround (z3,kutt);
+path list; list=z1{dir(270+kutt)}..{dir(180-kutt)}z2;
+kut:=360/20;
+transform b; b= identity rotatedaround (z3, kut);
+transform b[]; b[0]=b;
+for n=1 thru 20:
+ b[n]=b[n-1] transformed b;
+draw (list transformed b[n]); endfor
+endchar;
+
+
+% Besslagich, zvijezda sa 7 latica
+beginchar("i",cap#,cap#,.2cap#); "i - 7 latica";
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/7;
+xx:=1-.5*cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z4{dir (270-.5*kut)}..{right}z1..{dir
+(90+.5*kut)}z2;
+list:=list rotatedaround (z3, 180);
+transform b; b= identity rotatedaround (z3, kut);
+transform b[]; b[0]=b;
+for n=1,2,3,4,5,6,7:
+ b[n]=b[n-1] transformed b;
+draw (list transformed b[n]); endfor
+endchar;
+
+
+% Besslagich, svastika
+beginchar("s",1.4cap#,1.2cap#,.2cap#); "s(vastika)";
+pickup pencircle scaled .3thin;
+x2=0; x3=x4=.5w; x13=w;
+ss=.05w; %ssirina
+x1=ss;
+x30=ss;
+x35=x36=x1+ss;
+x26=2*ss; x25=3*ss; x28=3*ss; x29=x28-ss; x27=x28+ss;
+x33=x32=x23=x22=x3-ss;
+x34=x31=x24=x3-2*ss;
+x5=x7=x16=x17=x3+ss;
+x37=x15=x18=x3+2ss;
+x20=x13-ss;
+x14=x13-ss;
+x9=x13-2ss;
+x11=x13-3ss;
+x10=x11-ss; x12=x11+ss;
+x8=x9-ss;
+x21=x19=x20-ss;
+y36=y3=0;
+y1=y5=ss; y35=y34=2ss; y33=3ss;
+y2=y13=.5h;
+y4=y21=h;
+y28=.9h; y29=y27=y28-ss;
+y11=h-y28;
+y10=y12=y11+ss;
+y9=y2-2ss;
+y32=y7=y2-2ss; y30=y31=y37=y8=y2-ss;
+y25=y24=y15=y14=y2+ss;
+y26=y2+2ss;
+y23=y16=y2+2ss;
+y22=y20=y4-ss;
+y18=y19=y4-2ss;
+y17=y4-3ss;
+y2:=1.2y2;
+y13:=.8y13;
+draw z1{down}..{right}z36--z3{right}..{up}z5--z7{up}..{right}z37
+--z8{right}..{down}z9--z10{dir angle(z10-z9)}..{dir10}z11..{dir angle
+(z13-z12)}z12--z13{dir angle(z13-z12)}..{left}z14--z15{left}..{up}z16--z17
+{up}..{right}z18--z19{right}..{up}z20..{left}z21--z4{left}..{down}z22--
+z23{down}..{left}z24--z25{left}..{dir angle(z27-z26)}z26--z27{dir
+angle(z27-z26)}..{left}z28..{dir angle(z2-z29)}z29--z2{dir angle(z2-z29)}
+..{right}z30--z31{right}..{down}z32--z33{down}..{left}z34--z35{left}..cycle;
+endchar;
+
+
+
+% Zijemlje polje kod Mostara, slika 34, nalik na gl `ch'
+beginchar("L",.7em#,cap#,0); " L(utka)";
+pickup pencircle scaled .3thin;
+x1=x2=w-x4=w-x3=curve_sidebar;
+x5=x6=.5w;
+x7=w-x8=.15w;
+y1=y6=y4=h;
+y2=y5=y3=.7h;
+y7=y8=0;
+draw z1--z2--z3--z4;
+draw z6--z5--z7--z8--z5;
+dd:=.25w;
+z66=(.5w,h+.5*dd);
+%pickup pencircle scaled .6thin;
+draw fullcircle scaled dd shifted z66;
+endchar;
+
+
+% Ubosko, Ljubinje, BiH, sl. 16
+%beginchar("Z",cap#,cap#,0); "Z(vijezda)";
+%pickup pencircle scaled .3thin;
+%x1=x2=w-x5=w-x6=.35w; x3=x4=.5w;
+%y1=y6=0; y3=.5h;
+%y4=.5(x6-x1); y4=y3-y5=y3-y2;
+%draw z4--z1--z2--z3--z4--z6--z5--z3;
+%transform t; t= identity rotatedaround (z3, -90);
+%addto currentpicture also currentpicture transformed t;
+%addto currentpicture also currentpicture transformed (t transformed t);
+%endchar;
+
+
+% Ubosko, Ljubinje, BiH, sl. 16
+beginchar("Z",cap#,cap#,.2cap#); "Z(zvijezda)8";
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/8;
+xx:=.5; %cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z2--z3--z4--z4--z1--cycle;
+%{dir (270-.5*kut)}..{right}z1..{dir
+%(90+.5*kut)}z2;
+for n=1,2,3,4,5,6,7,8:
+transform b[]; b[n]= identity rotatedaround (z3, n*kut+22.5);
+draw (list transformed b[n]); endfor
+endchar;
+
+
+% Ljubusski sl. 46 ili Krvavica, Makarska
+beginchar("k",em#,1.4cap#,0); "k(olo)";
+pickup pencircle scaled .4thin;
+x1=x6=.5w; x9=x10=w;
+x5=.7w;
+y1=h; y6=y5=0;
+rr:=.14h;
+z0=(x1,h-.5*rr);
+path cetvrt; cetvrt= quartercircle scaled rr shifted z0;
+z2=(cetvrt rotatedaround (z0,-90))
+ intersectionpoint (z5--z1);
+z3-z2=.4(z2-z1);
+y9=y3;
+z4-z3=z3-z2;
+draw z1{right}..{dir(90+angle(z0-z2))}z2--z3;
+x8=x11=.5[x12,x10];
+y8=y4-(y2-y3);
+y8-y11=.8(y3-y4);
+y9-y10=.8(y8-y11);
+z7=(x3+.05w,y3);
+z12=(.7[x3,x7],y4);
+draw z4--z5--z6;
+draw z3--z7{right}..tension 1.3..{right}z8..tension 1.3..{right}z9;
+draw z4--z12{right}..tension 1.3..{right}z11..tension1.3..{right}z10;
+transform t; t= identity reflectedabout (z6,z1);
+z91=(x9-.05w,y9+.06w); z93=(w,1.1y9);
+z92=(.7[x91,x9],.4[y9,y93]);
+pickup pencircle scaled .2thin;
+draw z9{left}..{dir 75}z91..{dir-20}z92{dir(180-20)}..{right}z93;
+addto currentpicture also currentpicture transformed t;
+endchar;
+
+
+% Ljubusski sl. 46 ili Krvavica, Makarska
+beginchar("l",em#,1.4cap#,0); "l(kolo)";
+pickup pencircle scaled .4thin;
+x1=x6=.5w; x9=x10=w;
+x5=.7w;
+y1=h; y6=y5=0;
+rr:=.14h;
+z0=(x1,h-.5*rr);
+path cetvrt; cetvrt= quartercircle scaled rr shifted z0;
+z2=(cetvrt rotatedaround (z0,-90))
+ intersectionpoint (z5--z1);
+z3-z2=.4(z2-z1);
+y9=y3;
+z4-z3=z3-z2;
+x8=x11=.5[x12,x10];
+y8=y4-(y2-y3);
+y8-y11=.8(y3-y4);
+y9-y10=.8(y8-y11);
+z7=(x3+.05w,y3);
+z12=(.7[x3,x7],y4);
+path dio; dio=z1{right}..{dir(90+angle(z0-z2))}z2--z3--z7;
+path dioo; dioo =z12--z4--z5--z6;
+draw dio;
+draw dioo;
+transform t; t= identity reflectedabout (z6,z1);
+draw dio transformed t;
+draw z3--z7{right}..tension 1.3..{right}z8..tension 1.3..{right}z9;
+draw z4--z12{right}..tension 1.3..{right}z11..tension 1.3..{right}z10;
+transform t; t= identity reflectedabout (z6,z1);
+z91=(x9-.05w,y9+.06w); z93=(w,1.1y9);
+z92=(.7[x91,x9],.4[y9,y93]);
+2(y3-y8)=y8-y13;
+y13-y14=y9-y10;
+z13-z1=whatever*(z5-z1);
+z14-z1=whatever*(z5-z1);
+z13'=z13 transformed t;
+z14'=z14 transformed t;
+path diooo; diooo= z12--z4--z13;
+draw diooo transformed t;
+path diio; diio= z14--z5--z6;
+draw diio transformed t;
+z7'=z7 reflectedabout (z1,z6);
+z12'=z12 reflectedabout (z1,z6);
+z8'=z8 reflectedabout (z1,z6);
+x8':=x8'-.04w;
+y8':=y8'-.07h;
+z11'-z8'=1.41(y9-y10,0);
+draw z7'{left}..tension 1.6..{down}z8'..tension 1.6..{dir angle(z14'-z8')}z14';
+draw z12'{left}..tension 1.6..{down}z11'..tension 1.6..
+{dir angle(z13'-z11')}z13';
+pickup pencircle scaled .2thin;
+draw z9{left}..{dir 75}z91..{dir-20}z92{dir(180-20)}..{right}z93;
+%addto currentpicture also currentpicture transformed t;
+picture slovo_l; slovo_l=currentpicture;
+endchar;
+
+
+% Ljubusski sl. 46 ili Krvavica, Makarska
+beginchar("d",em#,1.4cap#,0); "d(kolo)";
+transform t; t=identity reflectedabout ((.5w,0),(0.5w,h));
+addto currentpicture also slovo_l transformed t;
+endchar;
+
+
+beginchar("p",1.41em#,.9cap#,0); "p(tica)"; % 1.55em#
+pickup pencircle scaled .3thin;
+x8=0; x1=w; x7=.06w;
+x6=.4w;
+x4=.7w;
+x3=.3[x4,x1]; x2=.4[x3,x1];
+x5=.47[x6,x4];
+x11=.5w; x12=x11+.03w;
+x9=.43w; x13=.1[x12,x1];
+x10=.5[x9,x11];
+x15=.1[x4,x1];
+x14=.66[x13,x15];
+y11=y12=0;
+y3=h;
+y2=.5[y1,y3];
+y4=.9h;
+y1=.35[y4,y3];
+y6=.5h;
+y5=.5[y6,y4];
+y7=y6+.1h;
+y8=.1h;
+y9=.7y6; y10=.8y9;
+y15=.85y4;
+y13=1.1y9;
+y14=.36[y13,y15];
+draw
+z12{up}..z13{dir (angle(z14-z13)-5)}..{dir angle(z15-z13)}z14..{dir45}z15..
+tension 1.6..
+{dir 3}z1{dir 175}..z2..{left}z3..{dir (180+75)}z4..
+{dir(180+35)}z5..
+{dir(180+15)}z6..tension 1.6..z7--z8..tension 1.6..{right}z9..z10..
+{down}z11;
+picture ptica; ptica=currentpicture;
+endchar;
+
+
+beginchar("q",1.41em#,.9cap#,0); "q(ptica)";
+transform t; t=identity reflectedabout ((.5w,0),(0.5w,h));
+addto currentpicture also ptica transformed t;
+endchar;
+
+
+% Besslagich, Krizz
+beginchar("A",1.4cap#,1.4cap#,.2cap#); "A - krizz";
+pickup pencircle scaled .3thin;
+z0=(.5w,.5w);
+z13=(.5w,.9x0);
+z1=z13 rotatedaround (z0,-45);
+z3=z13 rotatedaround (z0,45);
+z2=(x1,.15y1);
+z4=(x3,y2);
+z76=(.5w,0);
+kut:=25;
+z6=z76 rotatedaround (z0,kut);
+z7=z76 rotatedaround (z0,-kut);
+z24=.5[z2,z4];
+z9=(.5w, h);
+hh:=2h-2y24;
+path krug; krug= fullcircle scaled hh shifted z9;
+z5= krug intersectionpoint (z6--z0);
+z8= krug intersectionpoint (z7--z0);
+kutt:=.5*kut;
+path list; list= z3--z4{right}..z5{dir kutt}..{dir (180+kut)}z6..{left}z76..
+{dir(180-kut)}z7..{dir -kutt}z8..{right}z2--z1;
+for n=1,2,3,4:
+transform b[]; b[n]= identity rotatedaround (z0, n*90);
+draw (list transformed b[n]); endfor
+endchar;
+
+
+% Besslagich, Krizz
+beginchar("B",1.1cap#,1.4cap#,.2cap#); "B - krizz";
+pickup pencircle scaled .3thin;
+x1=x2=x5=x6=.56w; x7=.5w;
+hh:=3(x6-x7);
+x3=x4=w-hh; x8=w;
+y7=h; y6=y7-hh;
+y5=y4=.65h;
+y2=y3=y5-2*(x6-x7);
+y1=0;
+y8=.5[y3,y4];
+z0=(.5w,0);
+kut:=60;
+path kriz; kriz = z0--z1--z2--z3{dir -kut}..{up}z8..{dir(180+kut)}z4--z5--z6{dir (90-kut)}
+..{left}z7;
+path krizz; krizz= kriz reflectedabout (z0,z7);
+draw kriz; draw krizz;
+endchar;
+
+
+% Besslagich, Krizz -- ljiljan
+beginchar("C",1.2cap#,1.4cap#,.2cap#); "C - krizz";
+pickup pencircle scaled .3thin;
+z0=(.5w,0);
+x1=x2=.61w; x8=.5w;
+x7-x8=.8(x2-x8);
+x5=w; x4=x3=x6=.5[x2,x5];
+y1=0; y8=h; y7=.7h; y2=y7-2(x1-x0);
+y3=.5[y2,y7];
+y6-y3=.7(y7-y2);
+y5=y3;
+y4=y2-.6(y7-y2);
+kut:=60;
+path kriz; kriz= z0--z1--z2{up}..{right}z3..{dir(180+kut-10)}z4{dir (kut-15)}
+..{up}z5..{left}z6..{dir(180+kut-30)}z7{dir(kut-25)}..{left}z8;
+path krizz; krizz= kriz reflectedabout (z0,z8);
+draw kriz; draw krizz;
+endchar;
+
+
+
+% Besslagich, D krizz dupli
+beginchar("D",.7cap#,1.2cap#,.2cap#); "Dupli krizz";
+pickup pencircle scaled .3thin;
+x1=x4=w-x3=w-x2=(.5-.12)*w;
+x5=x8=x9=x12=0;
+x6=x7=x10=x11=w-x5;
+y1=y2=0; y3=y4=h;
+y5=y6=.2h;
+y8=y7=y5+(x2-x1);
+y12=y11=h-y5;
+y9=y10=h-y8;
+x13=x14=x15=x16=x1;
+y13=y12; y14=y9; y15=y8; y16=y5;
+x17=x18=x19=x20=x2;
+y17=y11; y18=y10; y19=y7; y20=y6;
+draw z1--z2--z20--z6--z7--z19--z18--z10--z11--
+z17--z3--z4--z13--z12--z9--z14--z15--z8--z5--z16--cycle;
+endchar;
+
+
+% Besslagich, Bordura
+beginchar("T",.75em#,cap#,.2cap#); "T - krizz";
+pickup pencircle scaled .2thin;
+z0=(.5w,0); x7=w; x1=.7w;
+x2=.57w; x6=x8=.7[x2,x7];
+x4=.8[x0,x1]; x5=.5w;
+y1=0; y5=h;
+y2=.4h;
+y3=.5h;
+y4=.67[y3,y5];
+z3-z2=whatever*dir(angle(z2-z1)-10);
+y6=y2;
+y7=.5[y6,y8]; % y8
+y7=y3+.04h;
+y33-y7=y7-y3;
+z30=(x0,y33); z70=(x7,y33);
+x33= xpart ((z30--z70) intersectionpoint (z3{up}..{up}z4));
+path luk; luk=z0--z1--z2{dir(angle(z2-z1))}..
+{up}z3{right}..{right}z6..{up}z7..{left}z8
+..{left}z33{up}..z4{up}..{left}z5;
+draw luk;
+transform a; a=identity reflectedabout (z0,z5);
+path lukk; lukk=luk transformed a;
+draw lukk;
+endchar;
+
+
+
+% Dugo Polje; slika 60, Besslagich
+beginchar("K",cap#,cap#,0); "K(rug)"; %
+pickup pencircle scaled .3thin;
+x1=x3=x5=x7=.5w;
+x4=0; x2=w; x8=w-x6=.15w;
+y1=0; y3=h; y4=y8=y6=y2=.5h;
+y5=h-y7=x8;
+draw z1{right}..z2{up}..{left}z3..{down}z4..cycle;
+draw z5{right}..z6{up}..{left}z7..{down}z8..cycle;
+draw z5--z7; draw z6--z8;
+z0=(.5w,.5h);
+path hh; hh= (z5--z7) rotatedaround (z0,45); draw hh;
+path vv; vv= (z6--z8) rotatedaround (z0,45); draw vv;
+endchar;
+
+
+% Besslagich
+beginchar("P",.6em#,cap#,.2cap#); "P(olumjesec)"; % 1.55em#
+pickup pencircle scaled .3thin;
+x2=0; x1=x3=w; x4=.4w;
+y3=-d; y2=y4=.5h; y1=h+d;
+kut:=180-10;
+kkut:=180-20;
+draw z3{dir kut}..{up}z2..{dir (180-kut)}z1;
+draw z3{dir kkut}..{up}z4..{dir (180-kkut)}z1;
+endchar;
+
+
+% Besslagich, Bordura
+beginchar("R",2cap#,cap#,.2cap#); "R - repatica";
+pickup pencircle scaled .2thin;
+x1=x5=0; x6=.1w;
+x2=.9w; x4=w; x3=.5[x2,x4];
+y4=y5=.5h;
+y4-y3=x4-x3;
+y5-y6=.9(y6-y1)=y4-y3;
+y2=.7[y3,y4];
+path luk; luk= z5--z6--z1--z2{dir -85}..{right}z3..{up}z4;
+draw luk;
+transform a; a=identity reflectedabout (z4,z5);
+path lukk; lukk=luk transformed a;
+draw lukk;
+endchar;
+
+
+
+% Besslagich, zvijezda s 8 latica
+beginchar("O",cap#,cap#,.2cap#); "O(sam) latica"; % 1.55em#
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/8;
+xx:=1-.5*cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z2--z3--z4{dir (270-.5*kut)}..{right}z1..{dir
+(90+.5*kut)}z2;
+draw list;
+for n=1,2,3,4,5,6,7,8:
+transform b[]; b[n]= identity rotatedaround (z3, n*kut);
+draw (list transformed b[n]); endfor
+rr:=.2w;
+path krug; krug= fullcircle scaled rr shifted z3;
+erase fill krug;
+draw krug;
+endchar;
+
+
+% Besslagich, zvijezda sa 6 latica
+beginchar("S",cap#,cap#,.2cap#); "S(est) latica"; % 1.55em#
+pickup pencircle scaled .3thin;
+z3=(.5w,.5w);
+z1=(.5w,0);
+kut:=360/6;
+xx:=1-.5*cosd (.5*kut);
+y2=y4=xx*x3;
+x4=w-x2;
+z2=z4 rotatedaround (z3, kut);
+path list; list= z2--z3--z4{dir (270-.5*kut)}..{right}z1..{dir
+(90+.5*kut)}z2;
+%draw list;
+for n=1,2,3,4,5,6:
+transform b[]; b[n]= identity rotatedaround (z3, n*kut);
+draw (list transformed b[n]); endfor
+endchar;
+
+
+% krugu s krizzem
+beginchar("4",cap#,cap#,.2cap#); "4";
+pickup pencircle scaled .3thin;
+z0=(.5w,0);
+numeric kk; kk:=10;
+z1=z0 rotatedabout ((.5w,.5w),kk);
+z2=z0 rotatedabout ((.5w,.5w),90-kk);
+z3=(x1,y2);
+path p; p= z2--z3--z1{dir kk}..{dir(90-kk)}z2;
+numeric kutt; kut:=90;
+transform b; b= identity rotatedaround ((.5w,.5w), kut);
+path p[]; p[0]=p;
+for n=1,2,3,4:
+p[n]=p[n-1] transformed b;
+draw p[n];
+endfor
+endchar;
+
+
+% zvijezda petokraka
+beginchar("5",cap#,cap#,.2cap#); "5";
+pickup pencircle scaled .3thin;
+z0=(.5w,h);
+kut:=360/5;
+transform b; b= identity rotatedaround ((.5w,.5w), kut);
+for n=1,2,3,4,5:
+ z[n]=z[n-1] transformed b;
+endfor
+draw z1--z3--z5--z2--z4--cycle;
+endchar;
+
+
+% biljka, npr. u Lovreccu (Imostski)
+beginchar("6",em#,cap#,0); "6";
+pickup pencircle scaled .3thick;
+z0=(.5w,0); z1=(x0,.6h);
+x0'=x0+.1w; y0'=0;
+x3=w; x4=.96x8=x10=x6=x2=.5[x0',x3];
+x7=.6[x10,x3]; x11=.3[x10,x7];
+x5=.1[x0',x3]; x9=.6[x5,x10];
+%x56=.1[x5,x6];
+y2=h; %y1=.65h;
+y5=.9y1;
+y7=y3=y1;
+y6=.6[y1,y2];
+y9=.9y11=.5[y5,y7];
+y8=.8y5;
+y10=.5[y5,y6];
+y6-y10=y8-y4; % y4
+path p; p= z1{dir70}..z2{right}..{down}z3..{left}z4..{up}z5..{right}z6..{down}z7
+..{left}z8..{up}z9..{right}z10..{down}z11;
+z56= point .4 of (z5{up}..{right}z6);
+path q; q= z0'{up}..{direction .4 of(z5{up}..{right}z6)}z56;
+draw p; draw q;
+transform a; a= identity reflectedabout (z0,z1);
+addto currentpicture also currentpicture transformed a;
+endchar;
+
+
+
+Pt#:=pt#;
+
+mode_setup;
+ font_size 10Pt#;
+ u#:=.8Pt#; font_quad= 24u#;
+ font_normal_space= 9u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 2u#;
+ em#:=10Pt#; cap#:=7Pt#;
+ thin#:=2/3Pt#; thick#:=.9*5/6Pt#;
+ o#:=1/5Pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=round 1.1*1/10em;
+
+
+
+% Besslagich, Bordura
+beginchar("E",em#,cap#,.2cap#); "E - bordura(6)";
+pickup pencircle scaled .3thin;
+x1=x3=0; x5=.5w; x2=x4=w;
+x6=.55x5;
+x8-x5=.3(x5-x6);
+x7=.5[x6,x8];
+x10=.8[x6,x7];
+x9=.5[x10,x8];
+y1=y2=h; y3=y4=y5=.8h;
+y7=0; y6=.4y5; y9=.45y5;
+y8=.5[y7,y9]; y10=.75[y8,y9];
+draw z1--z2; draw z3--z4;
+draw z5{dir (180+40)}..tension 1.2 ..{down}z6..{right}z7..{up}z8..{left}z9..
+{dir(180+30)}z10;
+endchar;
+
+
+% Besslagich, Bordura
+beginchar("F",.8em#,cap#,.2cap#); "F - bordura";
+pickup pencircle scaled .3thin;
+x1=x3=0; x2=x4=w;
+x5=.1w; x6=.8w;
+x8=.35w;
+x10=.9w;
+ x12=.4[x8,x10]; x11=x9=.6[x8,x10];
+ y1=y2=0; y3=y4=y5=y6=.2h;
+ y9=h;
+ y8=.95y10=.65[y3,y9];
+ y11=.4[y3,y9];
+ y12=.6[y11,y10];
+z7= point .7 of (z6{left}..z8{up});
+ draw z1--z2; draw z3--z4;
+ draw z6{left}..z8{up}..{right}z9..{down}z10..{left}z11..
+ {up}z12;
+draw z5{right}..{dir 80}z7;
+ endchar;
+
+
+% Besslagich, Bordura
+beginchar("G",1.1*.5em#,1.1*cap#,.2cap#); "G - bordura";
+pickup pencircle scaled .3thin;
+x7=w-x8=0; x1=.1w; x2=.8w;
+x4=.25w; x5=.3[x4,x2]; x6=.5[x5,x2]; x3=.4[x5,x2];
+y1=y7=y8=.5h; y3=h; y5=.45[y1,y3];
+y4=.45[y5,y3]; y2=.4[y5,y3];
+y6=.3[y5,y3];
+draw z7--z8;
+path luk; luk= z1{right}..{up}z2..{left}z3..{down}z4..{right}z5..{up}z6;
+transform b; b= identity reflectedabout (z7,z8);
+draw luk;
+path lukk; lukk= luk transformed b;
+draw lukk;
+ endchar;
+
+
+% Besslagich, Bordura
+beginchar("H",2.5cap#,cap#,.2cap#); "H - bordura";
+pickup pencircle scaled .3thin;
+x10=x12=0; x11=x13=w; y10=y11=0; y12=y13=h;
+draw z10--z11; draw z12--z13;
+x1=.5w; x3=.9w; x5=.4[x1,x3];
+x7=.6[x5,x3]; x4=.5[x5,x3];
+x8=.6[x5,x7]; x2=x6=.5[x5,x7];
+y1=y5=y7=y3=.5h;
+y4=h-y2=.2h;
+y6=.5[y1,y2];
+y8=.4[y7,y4];
+path luk; luk= z1{dir (angle(z2-z1)+6)}..{right}z2..{down}z3..{left}z4
+..{up}z5..{right}z6..{down}z7..{left}z8;
+draw luk;
+transform a; a= identity rotatedaround(z1,180);
+path lukk; lukk=luk transformed a;
+draw lukk;
+ endchar;
+
+
+% Besslagich, Bordura
+beginchar("I",1.1*1.41cap#,1.1*cap#,.2cap#); "I - bordura";
+pickup pencircle scaled .3thin;
+x1=x3=x5=0; x2=x4=x6=w;
+y5=y6=0; y1=y2=h; y3=y4=.8h;
+draw z1--z2; draw z3--z4; draw z5--z6;
+x7=w-x9=.2w;
+x8=x12=x14=x10=.5w;
+x11=w-x13=.4[x7,x12];
+y8=y3-y10=.2y3;
+y7=y11=y13=y9=.5y3;
+y12=y3-y14=.5[y8,y7];
+draw superellipse (z9,z10,z7,z8,.75);
+draw superellipse (z13,z14,z11,z12,.75);
+ endchar;
+
+
+% Besslagich, Bordura
+beginchar("J",2cap#,cap#,.2cap#); "J - bordura";
+pickup pencircle scaled .3thin;
+x1=x3=0; x2=x4=w; x5=.5w;
+y1=y2=0;
+y3=y4=y5=h;
+draw z1--z2; draw z3--z4; draw z1--z5--z2;
+endchar;
+
+
+
+% Besslagich, Bordura
+beginchar("M",.5em#,cap#,.2cap#); "M - bordura";
+pickup pencircle scaled .3thin;
+x1=x3=0; x2=x4=w;
+y1=y2=0; y3=y4=h;
+draw z1--z2; draw z3--z4; draw z1--z4;
+endchar;
+
+
+
+% Besslagich, Bordura, cvijet
+beginchar("N",1.1*2.3cap#,1.1*cap#,.2cap#); "N - bordura";
+pickup pencircle scaled .2thin;
+kut:=43;
+x1=x11=0; x12=x3=x10=w;
+x2=.5w; x4=.4[x2,x3]; x13=.5[x2,x4];
+x0=.5[x2,x3];
+y1=y10=h; y11=y12=0;
+y2=y3=.5h;
+y0=.2h; y13=h-y0;
+y4=.7[y2,y13];
+kutt:=kut+5;
+kuttt:=270-kutt;
+x5=.1[x13,x4];
+z5-z4=whatever*dir(kuttt);
+%x9-x4=x4-x5;
+%z9-z4=z4-z5;
+z7=z5 rotatedaround(z4,90);
+z9=z7 rotatedaround(z4,90);
+z55=z5 rotatedaround (z4,10);
+z99=z9 rotatedaround (z4,-10);
+z77=.4[z4,z7];
+z77'=1.3[z4,z7];
+z6=z77 rotatedaround (z4,-30);
+z8=z77 rotatedaround (z4,30);
+draw z1--z10; draw z11--z12;
+path luk; luk=
+ z4{dir (angle(z5-z4)-60)}..%tension1.1..
+ z55{dir angle(z7-z4)}..%tension1.2..
+{dir (angle(z4-z6))}z6{dir (angle(z6-z4))}..{dir angle(z9-z5)}z77'..
+{dir (angle(z4-z8))}z8{dir (angle(z8-z4))}..%tension1.2..
+{dir angle(z4-z7)}z99..%tension1.1..
+{dir (angle(z4-z9)+60)}
+z4{dir (180-kutt)}..{left}z13..
+ z2{dir-kut}..{right}z0..{dir kut}z3;
+draw luk;
+path lukk; lukk = luk shifted(-.5w,0);
+transform a; a=identity reflectedabout (z2,z3);
+lukk:=lukk transformed a;
+draw lukk;
+endchar;
+
+
+
+
+
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/ugl.mf b/Master/texmf-dist/fonts/source/public/croatian/ugl.mf
new file mode 100644
index 00000000000..e7ff3cfc8b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/ugl.mf
@@ -0,0 +1,80 @@
+
+% Croatian Glagolitic, angular type
+% darko.zubrinic@etf.hr
+
+
+
+mode_setup;
+ u#:=4/3*.8pt#; font_quad= 30u#;
+ font_normal_space= 10u#; %umjesto 8
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=4/3*10pt#; cap#:=4/3*7pt#;
+ thin#:=2/3pt#; thick#:=1.15*5/6pt#;
+ o#:=4/3*1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:= round 1.2*1/10em; %umjesto 1.1
+input croblv % velika slova
+
+
+
+mode_setup;
+u#:=3/4u#;
+em#:=3/4em#; cap#:=3/4cap#;
+ thick#:=1/1.15thick#;
+o#:=3/4o#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+%curve_sidebar:=3/4curve_sidebar;
+input croblm % mala slova
+
+
+input glz % znakovi
+
+
+
+
+
+ligtable "c": "c" =: oct"013", "h" =: oct"011", "x" =: oct"000";
+ligtable "s": "s" =: oct"014"; %umjesto sh
+ligtable "z": "x" =: oct"006", "z" =: oct"015", "o" kern -.5u#,
+ "u" kern -.5u#;
+ligtable "d": "d" =: oct"016"; % "d" =: oct"012";
+ligtable "y": "a" =: oct"002", "e" =: oct"002", "u" =: oct"004";
+ligtable "-": "-" =: oct"173";
+ligtable "e": "i" kern -.5u#;
+ligtable "f": "o" kern -u#, "u" kern -u#, "i" kern -.5u#, "g" kern-.5u#;
+ligtable "i": "f" kern -.5u#;
+ligtable "r": "k" kern -.5u#;
+ligtable "n": "a" kern -.5u#;
+ligtable "j": "a" kern -.5u#;
+
+u#:=4/3u#;
+
+
+
+ligtable "C": "c" =: oct"023", "C" =: oct "023", "H" =:
+ oct"021", "h" =: oct"021",
+ "x" =: oct"001", "X" =: oct"001";
+ligtable "S": "S" =: oct"024", "s" =: oct"024";
+ligtable "Z": "x" =: oct"007", "Z" =: oct"025", "z"=: oct"025",
+ "X" =: oct"007", "O" kern -.5u#,
+ "u" kern -.5u#;
+ligtable "D": "d" =: oct"026", "D" =: oct"026"; % "d" =: oct"022";
+ligtable "Y": "a" =: oct"003", "A" =: oct"003",
+ "e" =: oct"003", "E" =: oct"003",
+ "u" =: oct"005", "U" =: oct"005";
+ligtable "E": "I" kern -.5u#;
+ligtable "F": "O" kern -u#, "U" kern -u#, "I" kern -.5u#, "G" kern-.5u#;
+ligtable "I": "F" kern -.5u#;
+ligtable "R": "K" kern -.5u#;
+ligtable "N": "A" kern -.5u#;
+
+
+
+
+end.
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/ugl10.mf b/Master/texmf-dist/fonts/source/public/croatian/ugl10.mf
new file mode 100644
index 00000000000..6da3ceac2c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/ugl10.mf
@@ -0,0 +1,79 @@
+
+% Croatian Glagolitic, angular type
+% 1994, darko.zubrinic@etf.hr
+
+
+mode_setup;
+ u#:=.8pt#; font_quad= 24u#;
+ font_normal_space= 8u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=2/3pt#; thick#:=.9*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:= round 1.1*1/10em;
+input croblv % velika slova
+
+
+
+mode_setup;
+u#:=3/4u#;
+em#:=3/4em#; cap#:=3/4cap#;
+ thick#:=3/4thick#;
+o#:=3/4o#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+%curve_sidebar:=3/4curve_sidebar;
+input croblm % mala slova
+
+
+input glz % znakovi
+
+
+
+
+
+ligtable "c": "c" =: oct"013", "h" =: oct"011", "x" =: oct"000";
+ligtable "s": "s" =: oct"014"; %umjesto sh
+ligtable "z": "x" =: oct"006", "z" =: oct"015", "o" kern -.5u#,
+ "u" kern -.5u#;
+ligtable "d": "d" =: oct"016"; % "d" =: oct"012";
+ligtable "y": "a" =: oct"002", "e" =: oct"002", "u" =: oct"004";
+ligtable "-": "-" =: oct"173";
+ligtable "e": "i" kern -.5u#;
+ligtable "f": "o" kern -u#, "u" kern -u#, "i" kern -.5u#, "g" kern-.5u#;
+ligtable "i": "f" kern -.5u#;
+ligtable "r": "k" kern -.5u#;
+ligtable "n": "a" kern -.5u#;
+ligtable "j": "a" kern -.5u#;
+
+u#:=4/3u#;
+
+
+
+ligtable "C": "c" =: oct"023", "C" =: oct "023", "H" =:
+ oct"021", "h" =: oct"021",
+ "x" =: oct"001", "X" =: oct"001";
+ligtable "S": "S" =: oct"024", "s" =: oct"024";
+ligtable "Z": "x" =: oct"007", "Z" =: oct"025", "z"=: oct"025",
+ "X" =: oct"007", "O" kern -.5u#,
+ "u" kern -.5u#;
+ligtable "D": "d" =: oct"026", "D" =: oct"026"; % "d" =: oct"022";
+ligtable "Y": "a" =: oct"003", "A" =: oct"003",
+ "e" =: oct"003", "E" =: oct"003",
+ "u" =: oct"005", "U" =: oct"005";
+ligtable "E": "I" kern -.5u#;
+ligtable "F": "O" kern -u#, "U" kern -u#, "I" kern -.5u#, "G" kern-.5u#;
+ligtable "I": "F" kern -.5u#;
+ligtable "R": "K" kern -.5u#;
+ligtable "N": "A" kern -.5u#;
+
+
+
+end.
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/ugv.mf b/Master/texmf-dist/fonts/source/public/croatian/ugv.mf
new file mode 100644
index 00000000000..1f6c54a8bc1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/ugv.mf
@@ -0,0 +1,55 @@
+
+
+%%****************************************************************
+%%******** G L A G O L J I C A, bl ** Darko Zubrinic, ETF, Zagreb, 1992
+%%****************************************************************
+
+
+
+mode_setup;
+ pt#:=4/3pt#;
+ u#:=4/3*.8pt#; font_quad= 24u#;
+ font_normal_space= 8u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=4/3*10pt#; cap#:=4/3*7pt#;
+ thin#:=2/3pt#; thick#:=1.15*5/6pt#;
+ o#:=4/3*1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=1.1*1/10em;
+
+
+
+
+input croblv % velika slova
+%input croblm % mala slova
+input glz % znakovi
+
+
+
+
+
+ligtable "C": "C" =: oct "023", "H" =:
+ oct"021", "X" =: oct"001";
+ligtable "S": "S" =: oct"024";
+ligtable "Z": "Z" =: oct"025", "X" =: oct"007",
+ "O" kern -.5u#;
+ligtable "D": "D" =: oct"026"; % "d" =: oct"022";
+ligtable "Y": "A" =: oct"003",
+ "E" =: oct"003",
+ "U" =: oct"005";
+ligtable "E": "I" kern -.5u#;
+ligtable "F": "O" kern -u#, "U" kern -u#, "I" kern -.5u#, "G" kern-.5u#;
+ligtable "I": "F" kern -.5u#;
+ligtable "R": "K" kern -.5u#;
+ligtable "N": "A" kern -.5u#;
+
+
+
+
+end.
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/croatian/ugve.mf b/Master/texmf-dist/fonts/source/public/croatian/ugve.mf
new file mode 100644
index 00000000000..1384adf7e7d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/croatian/ugve.mf
@@ -0,0 +1,55 @@
+
+
+%%****************************************************************
+%%******** G L A G O L J I C A, bl ** Darko Zubrinic, ETF, Zagreb, 1992
+%%****************************************************************
+
+
+
+mode_setup;
+ pt#:=4/3pt#;
+ u#:=2*.8pt#; font_quad= 24u#;
+ font_normal_space= 8u#;
+ font_normal_stretch= 3u#;
+ font_normal_shrink= 1u#;
+ em#:=2*10pt#; cap#:=2*7pt#;
+ thin#:=3*2/3pt#; thick#:=1.5*1.15*5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+curve_sidebar:=1.1*1/10em;
+
+
+
+
+input croblv % velika slova
+%input croblm % mala slova
+input glz % znakovi
+
+
+
+
+
+ligtable "C": "C" =: oct "023", "H" =:
+ oct"021", "X" =: oct"001";
+ligtable "S": "S" =: oct"024";
+ligtable "Z": "Z" =: oct"025", "X" =: oct"007",
+ "O" kern -.5u#;
+ligtable "D": "D" =: oct"026"; % "d" =: oct"022";
+ligtable "Y": "A" =: oct"003",
+ "E" =: oct"003",
+ "U" =: oct"005";
+ligtable "E": "I" kern -.5u#;
+ligtable "F": "O" kern -u#, "U" kern -u#, "I" kern -.5u#, "G" kern-.5u#;
+ligtable "I": "F" kern -.5u#;
+ligtable "R": "K" kern -.5u#;
+ligtable "N": "A" kern -.5u#;
+
+
+
+
+end.
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cryst/cryst.mf b/Master/texmf-dist/fonts/source/public/cryst/cryst.mf
new file mode 100644
index 00000000000..c9df92a90d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cryst/cryst.mf
@@ -0,0 +1,1476 @@
+%% @metafontfile{
+%% filename="cryst.mf",
+%% version="1.0",
+%% date="19-JUL-1999",
+%% filetype="Metafont: driver",
+%% copyright="Copyright (C) Ulrich Mueller,
+%% all rights reserved. Copying of this file is
+%% authorized only if either:
+%% (1) you make absolutely no changes to your copy
+%% including name; OR
+%% (2) if you do make changes, you first rename it to some
+%% other name.",
+%% author="Ulrich Mueller",
+%% address="Fachbereich Chemie,
+%% Universitaet Marburg,
+%% D-43032 Marburg,
+%% Germany",
+%% email="Bitte kein Zuschriften per e-Post",
+%% abstract="Erzeugung von TeX-Schriftzeichen fuer bildliche
+%% Symmetriesymbole, die in der Kristallographie gebraeuchlich sind"
+%% }
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup; font_size 10pt#;
+font_identifier:="cryst"; font_coding_scheme:="UNSPECIFIED";
+ff:=0.82;
+u#:=ff*0.10pt#;
+br#:=108u#; ho#:=100u#; ul#:=32u#; % Breite, Hoehe, Unterlaenge
+define_pixels(u,br,ho,ul);
+
+beginchar(0,32u#,68u#,0);
+"-1 klein";
+pickup pencircle scaled 5u;
+draw fullcircle scaled 24u shifted(16u,34u);
+labels(range 1 thru 2);
+endchar;
+
+beginchar(10,32u#,68u#,0);
+"-1";
+pickup pencircle scaled 5u;
+draw fullcircle scaled 28u shifted(16u,34u);
+labels(range 1 thru 2);
+endchar;
+
+beginchar(2,46u#,ho#,ul#);
+"2";
+z1=(23u,-14u); z2=(23u,82u);
+fill z1{dir 130}..{dir 50}z2..z2{dir -50}..{dir -130}z1..cycle;
+labels(range 1 thru 2);
+endchar;
+
+beginchar(20,46u#,ho#,ul#);
+"2/m";
+z1=(23u,-14u); z2=(23u,82u);
+z3=(13u,34u); z4=(23u,24u); z5=(33u,34u); z6=(23u,44u);
+fill z1{dir 130}..{dir 50}z2..z2{dir -50}..{dir -130}z1..cycle;
+unfill z3..z4..z5..z6..cycle;
+labels(range 1 thru 2);
+endchar;
+
+beginchar(12,46u#,ho#,ul#);
+"2 horizontal";
+z1=(23u,-10u); z2=(23u,78u);
+pickup pencircle scaled 5u;
+draw z1{dir 127}..{dir 53}z2;
+draw z2{dir -53}..{dir -127}z1;
+labels(range 1 thru 4);
+endchar;
+
+beginchar(102,112u#,ho#,ul#);
+"2 horizontal rechts";
+z1=(56u,-14u); z2=(56u,82u); z3=(52.5u,34u);
+z13=(72.5u,27.5u);
+z5=(57u,34u); z6=(108u,34u); z7=(37u,34u); z8=(0u,34u);
+z9=(72.5u,40.5u); z10=(57u,40.5u); z11=(50.5u,34u); z12=(57u,27.5u);
+fill z1{dir 127}..{dir 53}z2..z2{dir -53}..{dir -86}z9--z10{dir180}..z11..{dir 0}z12--z13{dir -94}..{dir -127}z1..cycle;
+pickup pencircle scaled 5u;
+draw z5--z6;
+pickup penrazor scaled 5u rotated 90;
+draw z7--z8;
+fill fullcircle scaled 24u shifted(0u,34u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(120,112u#,ho#,ul#);
+"2 horizontal links";
+z1=(56u,-14u); z2=(56u,82u); z3=(60.5u,34u);
+z5=(55u,34u); z6=(4u,34u); z7=(75u,34u); z8=(112u,34u);
+z9=(39.5u,27.5u); z10=(55u,27.5u); z11=(61.5u,34u); z12=(55u,40.5u); z13=(39.5u,40.5u);
+fill z1{dir 127}..{dir 94}z9--z10{dir 0}..z11..{dir 180}z12--z13{dir 86}..{dir 53}z2..z2{dir -53}..{dir -127}z1..cycle;
+pickup pencircle scaled 5u;
+draw z5--z6;
+pickup penrazor scaled 5u rotated 90;
+draw z7--z8;
+fill fullcircle scaled 24u shifted(112u,34u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(22,104u#,68u#,0);
+"2 vertikal";
+z1=(4u,34u); z2=(100u,34u);
+fill z1{dir -37}..{dir 37}z2..z2{dir 143}..{dir -143}z1..cycle;
+labels(range 1 thru 2);
+endchar;
+
+beginchar(202,104u#,90u#,22u#);
+"2 vertikal unten";
+z1=(4u,34u); z2=(100u,34u); z3=(58.5u,17.5u);
+z5=(52u,33u); z6=(52u,-22u); z7=(52u,53u); z8=(52u,90u);
+z9=(58.5u,33u); z10=(52u,39.5u); z11=(45.5u,33u); z12=(45.5u,17.5u);
+fill z1{dir 37}..{dir -37}z2..z2{dir -143}..{dir -176}z3--z9{dir 90}..z10..{dir -90}z11--z12{dir 176}..{dir 143}z1..cycle;
+pickup pencircle scaled 5u; draw z5--z6;
+pickup penrazor scaled 5u; draw z7--z8;
+fill fullcircle scaled 24u shifted(52u,90u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(220,104u#,90u#,22u#);
+"2 vertikal oben";
+z1=(4u,34u); z2=(100u,34u); z3=(58.5u,50.5u);
+z5=(52u,35u); z6=(52u,90u); z7=(52u,15u); z8=(52u,-22u);
+z9=(58.5u,35u); z10=(52u,28.5u); z11=(45.5u,35u); z12=(45.5u,50.5u);
+fill z1{dir -37}..{dir 37}z2..z2{dir 143}..{dir 176}z3--z9{dir -90}..z10..{dir 90}z11--z12{dir -176}..{dir -143}z1..cycle;
+pickup pencircle scaled 5u; draw z5--z6;
+pickup penrazor scaled 5u; draw z7--z8;
+fill fullcircle scaled 24u shifted(52u,-22u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(21,46u#,ho#,ul#);
+"21";
+z1=(4.3u,-24.5u); z2=(7u,-28.7u); z3=(23u,-14u);
+z4=(26u,78u);
+z5=(41.7u,92.5u); z6=(39u,96.7u); z7=(23u,82u);
+z8=(20u,-10u);
+fill z8{dir -130}..{dir -147}z1--z2{dir 33}..z3..{dir 130}z4..z4{dir 50}..{dir 33}z5--z6..z6{dir -147}..z7..{dir -50}z8..cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(210,46u#,ho#,ul#);
+"21/m";
+z1=(4.3u,-24.5u); z2=(7u,-28.7u); z3=(23u,-14u); z4=(26u,78u);
+z5=(41.7u,92.5u); z6=(39u,96.7u); z7=(23u,82u); z8=(20u,-10u);
+z9=(13u,34u); z10=(23u,24u); z11=(33u,34u); z12=(23u,44u);
+fill z8{dir -130}..{dir -147}z1--z2{dir 33}..z3..{dir 130}z4..z4{dir 50}..{dir 33}z5--z6..z6{dir -147}..z7..{dir -50}z8..cycle;
+unfill z9..z10..z11..z12..cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(112,112u#,ho#,ul#);
+"21 horizontal rechts";
+z1=(38.5u,-24.5u); z2=(42.5u,-28.7u); z3=(56u,-14u); z4=(59u,78u);
+z5=(73.5u,92.5u); z6=(70.8u,96.7u); z7=(56u,82u); z8=(53u,-10u);
+z17=(57u,34u); z18=(108u,34u); z19=(37u,34u); z20=(0u,34u);
+z13=(52.5u,34u);
+z11=(71u,38.5u); z12=(57u,38.5u); z14=(57u,29.7u); z15=(71u,29.7u);
+fill z8{dir -127}..{dir -144}z1--z2{dir 36}..z3..{dir 127}z4..z4{dir 53}..{dir 36}z5--z6..z6{dir -144}..z7..{dir -53}z8..cycle;
+pickup pencircle scaled 4u;
+undraw z11--z12{dir 180}..z13..{dir 0}z14--z15;
+pickup pencircle scaled 5u; draw z17--z18;
+pickup penrazor scaled 5u rotated 90; draw z19--z20;
+fill fullcircle scaled 24u shifted(0u,34u);
+labels(range 1 thru 10);
+endchar;
+
+beginchar(121,112u#,ho#,ul#);
+"21 horizontal links";
+z1=(38.5u,-24.5u); z2=(42.5u,-28.7u); z3=(56u,-14u); z4=(59u,78u);
+z5=(73.5u,92.5u); z6=(70.8u,96.7u); z7=(56u,82u); z8=(53u,-10u);
+z17=(56u,34u); z18=(4u,34u); z19=(75u,34u); z20=(112u,34u);
+z13=(59.5u,34u);
+z11=(40u,38.5u); z12=(55u,38.5u); z14=(55u,29.7u); z15=(40u,29.7u);
+fill z8{dir -127}..{dir -144}z1--z2{dir 36}..z3..{dir 127}z4..z4{dir 53}..{dir 36}z5--z6..z6{dir -144}..z7..{dir -53}z8..cycle;
+pickup pencircle scaled 4u;
+undraw z11--z12{dir 0}..z13..{dir 180}z14--z15;
+pickup pencircle scaled 5u; draw z17--z18;
+pickup penrazor scaled 5u rotated 90; draw z19--z20;
+fill fullcircle scaled 24u shifted(112u,34u);
+labels(range 1 thru 10);
+endchar;
+
+beginchar(212,124u#,90u#,22u#);
+"21 vertikal unten";
+z1=(2.5u,49.5u); z2=(18u,34u); z3=(106u,34u);
+z4=(13.85u,34u); z5=(110.15u,34u); z6=(121.5u,18.5u);
+z7=(62u,33u); z8=(62u,-19u); z9=(62u,53u); z10=(62u,90u);
+z11=(57.7u,19u); z12=(57.7u,33u); z13=(62u,37.5u); z14=(66.5u,33u); z15=(66.5u,19u);
+fill z4{dir -37}..{dir 37}z5..z5{dir 143}..{dir -143}z4..cycle;
+pickup pencircle scaled 4u;
+undraw z11--z12{dir 90}..z13..{dir -90}z14--z15;
+pickup pencircle scaled 5u;
+draw z1{dir -54}..{dir -37}z2;
+draw z3{dir -37}..{dir -54}z6;
+draw z7--z8;
+pickup penrazor scaled 5u; draw z9--z10;
+fill fullcircle scaled 24u shifted(62u,90u);
+labels(range 1 thru 10);
+endchar;
+
+beginchar(221,124u#,90u#,22u#);
+"21 vertikal oben";
+z1=(2.5u,49.5u); z2=(18u,34u); z3=(106u,34u);
+z4=(13.85u,34u); z5=(110.15u,34u); z6=(121.5u,18.5u);
+z7=(62u,15u); z8=(62u,-22u); z9=(62u,35u); z10=(62u,87u);
+z11=(57.7u,49u); z12=(57.7u,35u); z13=(62u,30.5u); z14=(66.5u,35u); z15=(66.5u,49u);
+fill z4{dir -37}..{dir 37}z5..z5{dir 143}..{dir -143}z4..cycle;
+pickup pencircle scaled 4u;
+undraw z11--z12{dir -90}..z13..{dir 90}z14--z15;
+pickup pencircle scaled 5u;
+draw z1{dir -54}..{dir -37}z2;
+draw z3{dir -37}..{dir -54}z6;
+draw z9--z10;
+pickup penrazor scaled 5u; draw z7--z8;
+fill fullcircle scaled 24u shifted(62u,-22u);
+labels(range 1 thru 10);
+endchar;
+
+beginchar(3,78u#,ho#,ul#);
+"3";
+z1=(4u,12.7u); z2=(39u,77u); z3=(74u,12.7u);
+fill z1--z2--z3--cycle;
+labels(range 1 thru 3);
+endchar;
+
+beginchar(30,78u#,ho#,ul#);
+"-3";
+z1=(3.48u,12.55u); z2=(39u,77.6u); z3=(74.52u,12.55u);
+z4=(29u,34u); z5=(39u,24u); z6=(49u,34u); z7=(39u,44u);
+fill z1--z2--z3--cycle;
+unfill z4..z5..z6..z7..cycle;
+labels(range 1 thru 3);
+endchar;
+
+beginchar(133,94u#,86u#,18u#);
+"3 kubisch 1. Quadr";
+z1=(23.5u,-6.5u); z2=(23.5u,62.5u); z22=(20.5u,65.5u); z3=(92.5u,62.5u);
+z4=(62.6u,32.6u); z5=(53.4u,23.4u);
+z6=(48u,38u); z7=(90u,-4u); z8=(0u,86u);
+z9=(43.4u,33.4u); z10=(43.4u,42.6u); z11=(52.6u,42.6u);
+fill z5--z1--z2--z3--z4--z11{dir 135}..z10..{dir -45}z9--cycle;
+pickup pencircle scaled 5u;
+draw z6--z7;
+pickup penrazor scaled 7.07u; draw z22--z8;
+pickup penrazor scaled 7.07u rotated 90; draw z22--z8;
+fill fullcircle scaled 24u shifted(0u,86u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(233,94u#,86u#,18u#);
+"3 kubisch 2. Quadr";
+z1=(23.5u,74.5u); z2=(23.5u,5.5u); z22=(20.5u,2.5u); z3=(92.5u,5.5u);
+z4=(62.6u,35.4u); z5=(53.4u,44.6u);
+z6=(48u,30u); z7=(90u,72u); z8=(0u,-18u);
+z9=(43.4u,34.6u); z10=(43.4u,25.4u); z11=(52.6u,25.4u);
+fill z5--z1--z2--z3--z4--z11{dir -135}..z10..{dir 45}z9--cycle;
+pickup pencircle scaled 5u;
+draw z6--z7;
+pickup penrazor scaled 7.07u; draw z22--z8;
+pickup penrazor scaled 7.07u rotated 90; draw z22--z8;
+fill fullcircle scaled 24u shifted(0u,-18u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(136,94u#,86u#,18u#);
+"3 kubisch 3. Quadr";
+z1=(70.5u,74.5u); z2=(70.5u,5.5u); z22=(73.5u,2.5u); z3=(1.5u,5.5u);
+z4=(31.4u,35.4u); z5=(40.6u,44.6u);
+z6=(46u,30u); z7=(4u,72u); z8=(94u,-18u);
+z9=(41.4u,25.4u); z10=(50.6u,25.4u); z11=(50.6u,34.6u);
+fill z5--z1--z2--z3--z4--z9{dir -45}..z10..{dir 135}z11--cycle;
+pickup pencircle scaled 5u;
+draw z6--z7;
+pickup penrazor scaled 7.07u; draw z22--z8;
+pickup penrazor scaled 7.07u rotated 90; draw z22--z8;
+fill fullcircle scaled 24u shifted(94u,-18u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(236,94u#,86u#,18u#);
+"3 kubisch 4. Quadr";
+z1=(70.5u,-6.5u); z2=(70.5u,62.5u); z22=(73u,65u); z3=(1.5u,62.5u);
+z4=(31.4u,32.6u); z5=(40.6u,23.4u);
+z6=(46u,38u); z7=(4u,-4u); z8=(94u,86u);
+z9=(50.6u,33.4u); z10=(50.6u,42.6u); z11=(41.4u,42.6u);
+fill z5--z1--z2--z3--z4--z11{dir 45}..z10..{dir -135}z9--cycle;
+pickup pencircle scaled 5u;
+draw z6--z7;
+pickup penrazor scaled 7.07u; draw z22--z8;
+pickup penrazor scaled 7.07u rotated 90; draw z22--z8;
+fill fullcircle scaled 24u shifted(94u,86u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(103,94u#,86u#,18u#);
+"-3 kubisch 1. Quadr";
+z1=(23.5u,-6.5u); z2=(23.5u,62.5u); z22=(21u,65u);z3=(92.5u,62.5u);
+z4=(62.6u,32.6u); z5=(53.4u,23.4u);
+z6=(48u,38u); z7=(90u,-4u); z8=(9u,77u);
+z9=(43.4u,33.4u); z10=(43.4u,42.6u); z11=(52.6u,42.6u);
+fill z5--z1--z2--z3--z4--z11{dir 135}..z10..{dir -45}z9--cycle;
+pickup pencircle scaled 5u; draw z6--z7;
+draw fullcircle scaled 24u shifted(0u,86u);
+pickup penrazor scaled 7.07u; draw z22--z8;
+pickup penrazor scaled 7.07u rotated 90; draw z22--z8;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(203,94u#,86u#,18u#);
+"-3 kubisch 2. Quadr";
+z1=(23.5u,74.5u); z2=(23.5u,5.5u); z22=(21u,3u); z3=(92.5u,5.5u);
+z4=(62.6u,35.4u); z5=(53.4u,44.6u);
+z6=(48u,30u); z7=(90u,72u); z8=(9u,-9u);
+z9=(43.4u,34.6u); z10=(43.4u,25.4u); z11=(52.6u,25.4u);
+fill z5--z1--z2--z3--z4--z11{dir -135}..z10..{dir 45}z9--cycle;
+pickup pencircle scaled 5u; draw z6--z7;
+draw fullcircle scaled 24u shifted(0u,-18u);
+pickup penrazor scaled 7.07u; draw z22--z8;
+pickup penrazor scaled 7.07u rotated 90; draw z22--z8;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(130,94u#,86u#,18u#);
+"-3 kubisch 3. Quadr";
+z1=(70.5u,74.5u); z2=(70.5u,5.5u); z22=(73u,3u); z3=(1.5u,5.5u);
+z4=(31.4u,35.4u); z5=(40.6u,44.6u);
+z6=(46u,30u); z7=(4u,72u); z8=(85u,-9u);
+z9=(41.4u,25.4u); z10=(50.6u,25.4u); z11=(50.6u,34.6u);
+fill z5--z1--z2--z3--z4--z9{dir -45}..z10..{dir 135}z11--cycle;
+pickup pencircle scaled 5u;
+draw z6--z7;
+draw fullcircle scaled 24u shifted(94u,-18u);
+pickup penrazor scaled 7.07u; draw z22--z8;
+pickup penrazor scaled 7.07u rotated 90; draw z22--z8;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(230,94u#,86u#,18u#);
+"-3 kubisch 4. Quadr";
+z1=(70.5u,-6.5u); z2=(70.5u,62.5u); z22=(73u,65u); z3=(1.5u,62.5u);
+z4=(31.4u,32.6u); z5=(40.6u,23.4u);
+z6=(46u,38u); z7=(4u,-4u); z8=(85u,77u);
+z9=(50.6u,33.4u); z10=(50.6u,42.6u); z11=(41.4u,42.6u);
+fill z5--z1--z2--z3--z4--z11{dir 45}..z10..{dir -135}z9--cycle;
+pickup pencircle scaled 5u;
+draw z6--z7;
+draw fullcircle scaled 24u shifted(94u,86u);
+pickup penrazor scaled 7.07u; draw z22--z8;
+pickup penrazor scaled 7.07u rotated 90; draw z22--z8;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(31,120u#,ho#,ul#);
+"31";
+z1=(12.4u,-6u); z2=(16.7u,-8.5u); z3=(28.8u,12.7u);
+z4=(117u,12.7u); z5=(117u,17.7u); z6=(94.5u,17.7u);
+z7=(49.6u,95u); z8=(45.3u,92.5u); z9=(57.1u,72u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--cycle;
+labels(range 1 thru 9);
+endchar;
+
+beginchar(113,108u#,86u#,22u#);
+"31 kubisch 1. Quadr";
+z21=(26u,-2u); z22=(20.5u,65.5u); z23=(84.46u,58u);
+z29=(26u,-26u); z30=(2u,60u); z31=(106.46u,80u); z33=(24u,60u);
+z1=(23.5u,-6.5u); z2=(23.5u,62.5u); z3=(92.5u,62.5u);
+z4=(62.6u,32.6u); z5=(53.4u,23.4u);
+z6=(48u,38u); z7=(90u,-4u); z8=(0u,86u);
+z9=(43.4u,33.4u); z10=(43.4u,42.6u); z11=(52.6u,42.6u);
+fill z5--z1--z2--z3--z4--z11{dir 135}..z10..{dir -45}z9--cycle;
+pickup pencircle scaled 5u;
+draw z6--z7;
+pickup penrazor scaled 7.07u; draw z22--z8;
+pickup penrazor scaled 5u; draw z21--z29;
+pickup penrazor scaled 5u rotated 90; draw z30--z33;
+pickup penrazor scaled 5u rotated -45; draw z23--z31;
+fill fullcircle scaled 24u shifted(0u,86u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(213,112u#,86u#,18u#);
+"31 kubisch 2. Quadr";
+z21=(27u,67.46u); z22=(26u,8u); z23=(82u,8u);
+z29=(26u,-16.5u); z30=(5.54u,87u); z31=(111u,8u);
+z1=(23.5u,74.5u); z2=(23.5u,5.5u); z3=(92.5u,5.5u);
+z4=(62.6u,35.4u); z5=(53.4u,44.6u);
+z6=(48u,30u); z7=(90u,72u); z8=(0u,-18u);
+z9=(43.4u,34.6u); z10=(43.4u,25.4u); z11=(52.6u,25.4u); z24=(20.5u,2.5u);
+fill z5--z1--z2--z3--z4--z11{dir -135}..z10..{dir 45}z9--cycle;
+pickup pencircle scaled 5u; draw z6--z7;
+pickup penrazor scaled 5u; draw z22--z29;
+pickup penrazor scaled 5u rotated 90; draw z23--z31;
+pickup penrazor scaled 7.07u rotated 90; draw z24--z8;
+pickup penrazor scaled 5u rotated 45; draw z21--z30;
+fill fullcircle scaled 24u shifted(0u,-18u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(131,108u#,ho#,18u#);
+"31 kubisch 3. Quadr";
+z21=(82u,68u); z22=(78u,8u); z23=(20.5u,7.47u);
+z29=(82u,95u); z30=(106.5u,8u); z31=(3u,-12u);
+z1=(84.5u,74.5u); z2=(84.5u,5.5u); z3=(15.5u,5.5u);
+z4=(45.4u,35.4u); z5=(55.6u,44.6u);
+z6=(60u,30u); z7=(18u,72u); z8=(108u,-18u); z24=(87.5u,2.5u);
+z9=(55.4u,25.4u); z10=(64.6u,25.4u); z11=(64.6u,34.6u);
+fill z5--z1--z2--z3--z4--z9{dir -45}..z10..{dir 135}z11--cycle;
+pickup pencircle scaled 5u; draw z6--z7;
+pickup penrazor scaled 5u; draw z21--z29;
+pickup penrazor scaled 7.07u; draw z24--z8;
+pickup penrazor scaled 5u rotated 90; draw z22--z30;
+pickup penrazor scaled 5u rotated -45; draw z23--z31;
+fill fullcircle scaled 24u shifted(108u,-18u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(231,112u#,86u#,18u#);
+"31 kubisch 4. Quadr";
+z21=(86.7u,-1.17u); z22=(86u,60u); z23=(27u,60u);
+z29=(86u,84.5u); z30=(0u,60u); z31=(106u,-19u);
+z1=(88.5u,-6.5u); z2=(88.5u,62.5u); z3=(19.5u,62.5u);
+z4=(49.4u,32.6u); z5=(58.6u,23.4u);
+z6=(64u,38u); z7=(22u,-4u); z8=(112u,86u); z24=(91.5u,65.5u);
+z9=(68.6u,33.4u); z10=(68.6u,42.6u); z11=(59.4u,42.6u);
+fill z5--z1--z2--z3--z4--z11{dir 45}..z10..{dir -135}z9--cycle;
+pickup pencircle scaled 5u; draw z6--z7;
+pickup penrazor scaled 5u; draw z29--z22;
+pickup penrazor scaled 5u rotated 90; draw z23--z30;
+pickup penrazor scaled 7.07u rotated 90; draw z24--z8;
+pickup penrazor scaled 5u rotated 45; draw z21--z31;
+fill fullcircle scaled 24u shifted(112u,86u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(32,120u#,ho#,ul#);
+"32";
+z1=(107.6u,-6u); z2=(103.3u,-8.5u); z3=(91.2u,12.7u);
+z4=(3u,12.7u); z5=(3u,17.7u); z6=(25.5u,17.7u);
+z7=(70.4u,95u); z8=(74.7u,92.5u); z9=(62.9u,72u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--cycle;
+labels(range 1 thru 9);
+endchar;
+
+beginchar(123,112u#,86u#,18u#);
+"32 kubisch 1. Quadr";
+z21=(25.5u,-0.97u); z22=(26u,62u); z23=(86u,60u);
+z29=(26u,84.5u); z30=(111u,60u); z31=(6u,-21.47u);
+z1=(23.5u,-6.5u); z2=(23.5u,62.5u); z3=(92.5u,62.5u);
+z4=(62.6u,32.6u); z5=(53.4u,23.4u); z24=(20.5u,65.5u);
+z6=(48u,38u); z7=(90u,-4u); z8=(0u,86u);
+z9=(43.4u,33.4u); z10=(43.4u,42.6u); z11=(52.6u,42.6u);
+fill z5--z1--z2--z3--z4--z11{dir 135}..z10..{dir -45}z9--cycle;
+pickup pencircle scaled 5u; draw z6--z7;
+pickup penrazor scaled 7.07u rotated 90; draw z24--z8;
+pickup penrazor scaled 5u; draw z22--z29;
+pickup penrazor scaled 5u rotated 90; draw z23--z30;
+pickup penrazor scaled 5u rotated -45; draw z21--z31;
+fill fullcircle scaled 24u shifted(0u,86u);
+labels(range 1 thru 11);
+endchar;
+
+beginchar(223,br#,86u#,18u#);
+"32 kubisch 2. Quadr";
+z21=(26u,68u); z22=(26u,8u); z23=(86.97u,7.5u);
+z29=(1.5u,8u); z30=(26u,95u); z31=(106.5u,-12.03u);
+z1=(23.5u,74.5u); z2=(23.5u,5.5u); z3=(92.5u,5.5u);
+z4=(62.6u,35.4u); z5=(53.4u,44.6u);
+z6=(48u,30u); z7=(90u,72u); z8=(0u,-18u); z24=(21.5u,2.5u);
+z9=(43.4u,34.6u); z10=(43.4u,25.4u); z11=(52.6u,25.4u);
+fill z5--z1--z2--z3--z4--z11{dir -135}..z10..{dir 45}z9--cycle;
+pickup pencircle scaled 5u; draw z6--z7;
+pickup penrazor scaled 7.07u; draw z24--z8;
+pickup penrazor scaled 5u; draw z21--z30;
+pickup penrazor scaled 5u rotated 90; draw z22--z29;
+pickup penrazor scaled 5u rotated 45; draw z23--z31;
+fill fullcircle scaled 24u shifted(0u,-18u);
+labels(range 1 thru 11);
+endchar;
+
+beginchar(132,112u#,86u#,18u#);
+"32 kubisch 3. Quadr";
+z21=(86u,68.97u); z22=(86u,6u); z23=(25u,8u);
+z29=(86u,-16.5u); z30=(0u,8u); z31=(106u,88.97u);
+z1=(88.5u,74.5u); z2=(88.5u,5.5u); z3=(19.5u,5.5u);
+z4=(49.4u,35.4u); z5=(58.6u,44.6u);
+z6=(64u,30u); z7=(22u,72u); z8=(112u,-18u); z24=(91.5u,2.5u);
+z9=(59.4u,25.4u); z10=(68.6u,25.4u); z11=(68.6u,34.6u);
+fill z5--z1--z2--z3--z4--z9{dir -45}..z10..{dir 135}z11--cycle;
+pickup pencircle scaled 5u; draw z6--z7;
+pickup penrazor scaled 7.07u rotated 90; draw z24--z8;
+pickup penrazor scaled 5u; draw z22--z29;
+pickup penrazor scaled 5u rotated 90; draw z23--z30;
+pickup penrazor scaled 5u rotated -45; draw z21--z31;
+fill fullcircle scaled 24u shifted(112u,-18u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(232,br#,86u#,18u#);
+"32 kubisch 4. Quadr";
+z21=(82u,0u); z22=(80u,60u); z23=(21.5u,60.03u);
+z29=(82u,-27u); z30=(106.5u,60u); z31=(1.5u,80.03u);
+z1=(84.5u,-6.5u); z2=(84.5u,62.5u); z3=(15.5u,62.5u);
+z4=(45.4u,32.6u); z5=(54.6u,23.4u);
+z6=(60u,38u); z7=(18u,-4u); z8=(108u,86u); z24=(87.5u,65.5u);
+z9=(64.6u,33.4u); z10=(64.6u,42.6u); z11=(55.4u,42.6u);
+fill z5--z1--z2--z3--z4--z11{dir 45}..z10..{dir -135}z9--cycle;
+pickup pencircle scaled 5u; draw z6--z7;
+pickup penrazor scaled 7.07u; draw z24--z8;
+pickup penrazor scaled 5u; draw z21--z29;
+pickup penrazor scaled 5u rotated 90; draw z22--z30;
+pickup penrazor scaled 5u rotated 45; draw z23--z31;
+fill fullcircle scaled 24u shifted(108u,86u);
+labels(range 1 thru 8);
+endchar;
+
+beginchar(4,82u#,ho#,ul#);
+"4";
+z1=(4u,34u); z2=(41u,-3u); z3=(78u,34u); z4=(41u,71u);
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 4);
+endchar;
+
+beginchar(40,82u#,ho#,ul#);
+"4/m";
+z1=(3.5u,34u); z2=(41u,-3.5u); z3=(78.5u,34u); z4=(41u,71.5u);
+fill z1--z2--z3--z4--cycle;
+unfill 0.37[z1,z3]..0.37[z2,z4]..0.63[z1,z3]..0.63[z2,z4]..cycle;
+labels(range 1 thru 4);
+endchar;
+
+beginchar(44,74u#,ho#,ul#);
+"4 kubisch";
+z1=(4u,1u); z2=(70u,1u); z3=(70u,67u); z4=(4u,67u);
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 4);
+endchar;
+
+beginchar(140,74u#,ho#,ul#);
+"4/m kubisch";
+z1=(4u,1u); z2=(70u,1u); z3=(70u,67u); z4=(4u,67u);
+z5=(27u,34u); z6=(37u,24u); z7=(47u,34u); z8=(37u,44u);
+fill z1--z2--z3--z4--cycle;
+unfill z5..z6..z7..z8..cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(104,42u#,ho#,ul#);
+"4 horizontal";
+z1=(4u,-15.4u); z2=(38u,4u); z3=(38u,79.6u); z4=(4u,64u);
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 4);
+endchar;
+
+beginchar(204,br#,50u#,16u#);
+"4 vertikal";
+z1=(3.6u,0); z2=(84u,0); z3=(103.4u,34u); z4=(26u,34u);
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 4);
+endchar;
+
+beginchar(24,82u#,ho#,ul#);
+"-4";
+z1=(3.5u,34u); z2=(40u,-3.5u); z3=(78.5u,34u); z4=(41u,71.5u);
+z5=(10.8u,34u); z6=(41u,3.8u); z7=(71.2u,34u); z8=(41u,64.2u);
+fill z1--z2--z3--z4--cycle;
+unfill z5--z6--z7--z8--cycle;
+fill z2{dir 130}..{dir 50}z4..z4{dir -50}..{dir -130}z2..cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(84,74u#,ho#,ul#);
+"-4 kubisch";
+z1=(4u,1u); z2=(70u,1u); z3=(70u,67u); z4=(4u,67u);
+z5=(9u,6u); z6=(65u,6u); z7=(65u,62u); z8=(9u,62u);
+fill z1--z2--z3--z4--cycle;
+unfill z5--z6--z7--z8--cycle;
+fill z1{dir 85}..{dir 5}z3..z3{dir -95}..{dir -175}z1..cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(124,42u#,ho#,ul#);
+"-4 horizontal";
+z1=(4u,-15.4u); z2=(38u,4u); z3=(38u,79.6u); z4=(4u,64u);
+z5=(9u,-6.7u); z6=(33u,6.9u); z7=(33u,70.9u); z8=(9u,61.1u);
+z9=(37u,6u); z10=(5u,62u);
+fill z1--z2--z3--z4--cycle;
+unfill z5--z6--z7--z8--cycle;
+fill z9{dir 94}..{dir -165}z10..z10{dir -86}..{dir 25}z9..cycle;
+labels(range 1 thru 4);
+endchar;
+
+beginchar(224,br#,50u#,16u#);
+"-4 vertikal";
+z1=(3.6u,0); z2=(84u,0); z3=(103.6u,34u); z4=(23.2u,34u);
+z5=(12.3u,5u); z6=(81.1u,5u); z7=(94.9u,29u); z8=(26.1u,29u);
+z9=(82u,1u); z10=(25.2u,33u);
+fill z1--z2--z3--z4--cycle;
+unfill z5--z6--z7--z8--cycle;
+fill z9{dir 176}..{dir 75}z10..z10{dir -4}..{dir -105}z9..cycle;
+labels(range 1 thru 4);
+endchar;
+
+beginchar(41,112u#,ho#,ul#);
+"41";
+z1=(4u,18u); z2=(7.5u,14.5u); z3=(23.5u,30.5u); z4=(72u,-18u);
+z5=(75.5u,-14.5u); z6=(59.5u,1.5u); z7=(108u,50u); z8=(104.5u,53.5u);
+z9=(88.5u,37.5u); z10=(40u,86u); z11=(36.5u,82.5u); z12=(52.5u,66.5u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(81,122u#,ho#,ul#);
+"41 kubisch";
+z1=(28u,-23u); z2=(33u,-23u); z3=(33u,1u); z4=(118u,1u);
+z5=(118u,6u); z6=(94u,6u); z7=(94u,91u); z8=(89u,91u);
+z9=(89u,67u); z10=(4u,67u); z11=(4u,62u); z12=(28u,62u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(141,68u#,ho#,ul#);
+"41 horizontal";
+z1=(16u,-34u); z2=(21u,-31.8u); z3=(21u,-14u); z4=(62u,10.2u);
+z5=(62u,16.0u); z6=(50u,9.9u); z7=(50u,107.0u); z8=(45u,104.1u);
+z9=(45u,83.5u); z10=(4u,57.1u); z11=(4u,51.3u); z12=(16u,57.4u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(241,118u#,50u#,16u#);
+"41 vertikal";
+z1=(3.6u,-12u); z2=(27.1u,29u); z3=(3.1u,29u); z4=(6u,34u);
+z5=(104.5u,34u); z6=(111.5u,46u); z7=(117.3u,46u); z8=(92.9u,5u);
+z9=(116.9u,5u); z10=(114u,0); z11=(16.4u,0); z12=(9.4u,-12u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(42,80u#,ho#,ul#);
+"42";
+z1=(4u,34u); z2=(36.5u,1.5u); z3=(20.5u,-14.5u); z4=(24u,-18u);
+z5=(76u,34u); z6=(43.5u,66.5u); z7=(59.5u,82.5u); z8=(56u,86u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(240,80u#,ho#,ul#);
+"42/m";
+z1=(3.5u,34u); z2=(36.5u,1u); z3=(20.5u,-15u); z4=(24u,-18.5u);
+z5=(76.5u,34u); z6=(43.5u,67u); z7=(59.5u,83u); z8=(56u,86.5u);
+z9=(30u,34u); z10=(40u,24u); z11=(50u,34u); z12=(40u,44u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--cycle;
+unfill z9..z10..z11..z12..cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(82,122u#,ho#,ul#);
+"42 kubisch";
+z1=(4u,1u); z2=(94u,1u); z3=(94u,62u); z4=(118u,62u);
+z9=(118u,67u); z10=(28u,67u); z11=(28u,6u); z12=(4u,6u);
+fill z1--z2--z3--z4--z9--z10--z11--z12--cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(80,122u#,ho#,ul#);
+"42/m kubisch";
+z1=(4u,1u); z2=(94u,1u); z3=(94u,62u); z4=(118u,62u);
+z5=(51u,34u); z6=(61u,24u); z7=(71u,34u); z8=(61u,44u);
+z9=(118u,67u); z10=(28u,67u); z11=(28u,6u); z12=(4u,6u);
+fill z1--z2--z3--z4--z9--z10--z11--z12--cycle;
+unfill z5..z6..z7..z8..cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(142,118u#,50u#,16u#);
+"42 horizontal";
+z1=(3.6u,-12u); z2=(30u,34u); z3=(104.5u,34u); z4=(111.5u,46u);
+z5=(117.3u,46u); z6=(90u,0); z7=(16.4u,0); z8=(9.4u,-12u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(242,66u#,ho#,ul#);
+"42 vertikal";
+z1=(4u,-22.5u); z2=(50u,4u); z3=(50u,78.5u); z4=(62u,84.6u);
+z5=(62u,90.5u); z6=(16u,64u); z7=(16u,-10.2u); z8=(4u,-16.3u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--cycle;
+labels(range 1 thru 8);
+endchar;
+
+beginchar(43,112u#,ho#,ul#);
+"43";
+z1=(7.5u,53.5u); z2=(4u,50u); z3=(52.5u,1.5u); z4=(36.5u,-14.5u);
+z5=(40u,-18u); z6=(88.5u,30.5u); z7=(104.5u,14.5u); z8=(108u,18u);
+z9=(59.5u,66.5u); z10=(75.5u,82.5u); z11=(72u,86u); z12=(23.5u,37.5u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(83,122u#,ho#,ul#);
+"43 kubisch";
+z1=(4u,1u); z2=(89u,1u); z3=(89u,-23u); z4=(94u,-23u);
+z5=(94u,62u); z6=(118u,62u); z7=(118u,67u); z8=(33u,67u);
+z9=(33u,91u); z10=(28u,91u); z11=(28u,6u); z12=(4u,6u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(143,68u#,ho#,ul#);
+"43 horizontal";
+z1=(4u,-22.5u); z2=(45u,1.7u); z3=(45u,-22.3u); z4=(50u,-19.4u);
+z5=(50u,78.5u); z6=(62u,84.6u); z7=(62u,90.5u); z8=(21u,66.9u);
+z9=(21u,90.9u); z10=(16u,88u); z11=(16u,-10.2u); z12=(4u,-16.3u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(243,152u#,50u#,16u#);
+"43 vertikal";
+z1=(3.6u,0); z2=(6.5u,5u); z3=(30.5u,5u); z4=(54u,46u);
+z5=(59.8u,46u); z6=(52.8u,34u); z7=(151.6u,34u); z8=(148.3u,29u);
+z9=(124.3u,29u); z10=(100u,-12u); z11=(94.2u,-12u); z12=(101.2u,0);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(15,76u#,ho#,ul#);
+"5";
+z1=(3.9u,45.08u); z2=(17u,5u); z3=(59u,5u); z4=(72.1u,45.08u); z5=(38u,69.85u);
+fill z1--z2--z3--z4--z5--cycle;
+labels(range 1 thru 5);
+endchar;
+
+beginchar(50,76u#,ho#,ul#);
+"-5";
+z1=(3.9u,45.08u); z2=(17u,5u); z3=(59u,5u); z4=(72.1u,45.08u); z5=(38u,69.85u);
+z7=(28u,34u); z8=(38u,24u); z9=(48u,34u); z10=(38u,44u);
+fill z1--z2--z3--z4--z5--cycle;
+unfill z7..z8..z9..z10..cycle;
+labels(range 1 thru 5);
+endchar;
+
+beginchar(6,70u#,ho#,ul#);
+"6";
+z1=(4.7u,16.5u); z2=(35u,-1u); z3=(65.3u,16.5u);
+z4=(65.3u,51.5u); z5=(35u,69u); z6=(4.7u,51.5u);
+fill z1--z2--z3--z4--z5--z6--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(60,70u#,ho#,ul#);
+"6/m";
+z1=(4.7u,16.5u); z2=(35u,-1u); z3=(65.3u,16.5u);
+z4=(65.3u,51.5u); z5=(35u,69u); z6=(4.7u,51.5u);
+z7=(25u,34u); z8=(35u,24u); z9=(45u,34u); z10=(35u,44u);
+fill z1--z2--z3--z4--z5--z6--cycle;
+unfill z7..z8..z9..z10..cycle;
+labels(range 1 thru 10);
+endchar;
+
+beginchar(36,70u#,ho#,ul#);
+"-6";
+z1=(4.7u,16.5u); z2=(35u,-1u); z3=(65.3u,16.5u);
+z4=(65.3u,51.5u); z5=(35u,69u); z6=(4.7u,51.5u);
+z7=(9.8u,19.55u); z8=(35u,4.9u); z9=(60.2u,19.55u);
+z10=(60.2u,48.45u); z11=(35u,63.1u); z12=(9.8u,48.45u);
+fill z1--z2--z3--z4--z5--z6--cycle;
+unfill z7--z8--z9--z10--z11--z12--cycle;
+fill z1--z3--z5--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(61,118u#,ho#,ul#);
+"61";
+z1=(115.4u,32.6u); z2=(64u,2.9u); z3=(88.4u,-11.2u);
+z4=(85.9u,-15.4u); z5=(34.6u,14.1u); z6=(34.6u,-14.1u);
+z7=(29.6u,-14.1u); z8=(29.6u,45.2u); z9=(5.1u,31.1u);
+z10=(2.6u,35.4u); z11=(54u,65.1u); z12=(29.6u,79.2u);
+z13=(32.1u,83.5u); z14=(83.4u,53.9u); z15=(83.4u,82.1u);
+z16=(88.4u,82.1u); z17=(88.4u,22.7u); z18=(112.9u,36.9u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--z13--z14--z15--z16--z17--z18--cycle;
+labels(range 1 thru 18);
+endchar;
+
+beginchar(62,118u#,ho#,ul#);
+"62";
+z1=(115.4u,32.6u); z2=(59u,0);
+z3=(34.6u,14.1u); z4=(34.6u,-14.1u);
+z5=(29.6u,-14.1u); z6=(29.6u,51u);
+z7=(54u,65.1u); z8=(29.6u,79.2u); z9=(32.1u,83.5u);
+z10=(88.4u,51u); z11=(88.4u,22.7u); z12=(112.9u,36.9u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(63,68u#,ho#,ul#);
+"63";
+z1=(4.6u,17u); z2=(29u,2.9u); z3=(4.6u,-11.2u);
+z4=(7.1u,-15.4u); z5=(63.4u,17u); z6=(63.4u,51u);
+z7=(39u,65.1u); z8=(63.4u,79.2u);
+z9=(60.9u,83.5u); z10=(4.6u,51u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--cycle;
+labels(range 1 thru 10);
+endchar;
+
+beginchar(66,68u#,ho#,ul#);
+"63/m";
+z1=(4.6u,17u); z2=(29u,2.9u); z3=(4.6u,-11.2u);
+z4=(7.1u,-15.4u); z5=(63.4u,17u); z6=(63.4u,51u);
+z7=(39u,65.1u); z8=(63.4u,79.2u);
+z9=(60.9u,83.5u); z10=(4.6u,51u);
+z11=(24u,34u); z12=(34u,24u); z13=(44u,34u); z14=(34u,44u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--cycle;
+unfill z11..z12..z13..z14..cycle;
+labels(range 1 thru 10);
+endchar;
+
+beginchar(64,118u#,ho#,ul#);
+"64";
+z1=(2.6u,32.6u); z2=(59u,0);
+z3=(83.4u,14.1u); z4=(83.4u,-14.1u);
+z5=(88.4u,-14.1u); z6=(88.4u,51u);
+z7=(64u,65.1u); z8=(88.4u,79.2u); z9=(85.9u,83.5u);
+z10=(29.6u,51u); z11=(29.6u,22.7u); z12=(5.1u,36.9u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--cycle;
+labels(range 1 thru 12);
+endchar;
+
+beginchar(65,118u#,ho#,ul#);
+"65";
+z1=(2.6u,32.6u); z2=(54u,2.9u); z3=(29.6u,-11.2u);
+z4=(32.1u,-15.4u); z5=(83.4u,14.1u); z6=(83.4u,-14.1u);
+z7=(88.4u,-14.1u); z8=(88.4u,45.2u); z9=(112.9u,31.1u);
+z10=(115.4u,35.4u); z11=(64u,65.1u); z12=(88.4u,79.2u);
+z13=(85.9u,83.5u); z14=(34.6u,53.9u); z15=(34.6u,82.1u);
+z16=(29.6u,82.1u); z17=(29.6u,22.7u); z18=(5.1u,36.9u);
+fill z1--z2--z3--z4--z5--z6--z7--z8--z9--z10--z11--z12--z13--z14--z15--z16--z17--z18--cycle;
+labels(range 1 thru 18);
+endchar;
+
+beginchar(5,80u#,68u#,0);
+"21 kurz, 0 Grad";
+z1=(0u,37u); z2=(48u,37u); z3=(48u,31u); z4=(0,31u);
+z5=(76u,37u); z6=(33u,15u); z7=(32u,17u); z8=(40u,37u);
+fill z6{dir 32}..{dir 22}z5--z8--z7--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(25,68u#,42u#,0);
+"21 kurz, 30 Grad";
+z1=(1.5u,-2.6u); z2=(43.36u,21.5u); z3=(40.36u,26.7u); z4=(-1.5u,2.6u);
+z5=(36.70u,0.4u); z6=(64.36u,40.6u); z7=(33.16u,22.6u); z8=(36.21u,1.6u);
+fill z5{dir 62}..{dir 52}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(35,56u#,60u#,0);
+"21 kurz, 45 Grad";
+z1=(2.12u,-2.12u); z2=(35.84u,31.60u); z3=(31.60u,35.84u); z4=(-2.12u,2.12u);
+z5=(36.87u,9.99u); z6=(51.72u,55.96u);
+z7=(26.26u,30.50u); z8=(34.75u,10.70u);
+fill z5{dir 77}..{dir 67}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(45,40u#,68u#,0);
+"21 kurz, 60 Grad";
+z1=(-2.6u,1.5u); z2=(22.4u,44.8u); z3=(27.6u,41.8u); z4=(2.6u,-1.5u);
+z5=(35.4u,67.32u); z6=(32.95u,19.07u);
+z7=(30.72u,19.2u); z8=(17.4u,36.14u);
+fill z5{dir -98}..{dir -88}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(55,46u#,80u#,0);
+"21 kurz, 90 Grad";
+z1=(20u,0u); z2=(20u,42u); z3=(26u,42u); z4=(26u,0u);
+z5=(20u,76u); z6=(20u,40u); z7=(40u,32u); z8=(42u,33u);
+fill z8{dir 122}..{dir 112}z5--z6--z7--z8..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(75,44u#,68u#,0);
+"21 kurz, 120 Grad";
+z1=(46.6u,1.5u); z2=(22.6u,43.06u); z3=(17.4u,40.09u); z4=(41.4u,-1.5u);
+z5=(43.95u,38.07u); z6=(3.4u,64.31u);
+z7=(21.4u,33.13u); z8=(42.72u,37.07u);
+fill z5{dir 152}..{dir 142}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(85,60u#,60u#,0);
+"21 kurz, 135 Grad";
+z1=(62.12u,2.12u); z2=(30.40u,33.84u); z3=(26.16u,29.60u); z4=(57.88u,-2.12u);
+z5=(50u,36.81u); z6=(4.04u,51.72u);
+z7=(29.49u,26.26u); z8=(49.39u,34.75u);
+fill z5{dir 167}..{dir 157}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(95,70u#,42u#,0);
+"21 kurz, 150 Grad";
+z1=(68.50u,-2.6u); z2=(26.91u,21.41u); z3=(29.91u,26.61u); z4=(71.5u,2.6u);
+z5=(50.92u,32.88u); z6=(2.69u,35.33u);
+z7=(33.86u,17.33u); z8=(50.79u,30.65u);
+fill z5{dir -178}..{dir 172}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(105,80u#,68u#,0);
+"21 kurz, 180 Grad";
+z1=(80u,37u); z2=(31u,37u); z3=(31u,31u); z4=(80u,31u);
+z5=(4u,31u); z6=(47u,53u); z7=(48u,51u); z8=(40u,31u);
+fill z5{dir 22}..{dir 32}z6--z7--z8--z5..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(125,68u#,42u#,0);
+"21 kurz, 210 Grad";
+z1=(66.5u,44.6u); z2=(24.64u,20.43u); z3=(27.64u,15.23u); z4=(69.5u,39.4u);
+z5=(29.92u,41.95u); z6=(3.69u,1.4u);
+z7=(34.86u,19.4u); z8=(31.79u,40.72u);
+fill z5{dir -118}..{dir -128}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(135,55.72u#,60u#,0u#);
+"21 kurz, 225 Grad";
+z1=(53.60u,62.11u); z2=(20.88u,29.40u); z3=(25.12u,25.16u); z4=(57.83u,57.88u);
+z5=(18.85u,50u); z6=(4u,4.52u);
+z7=(29.45u,29.49u); z8=(20.97u,49.29u);
+fill z5{dir -103}..{dir -113}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(145,40u#,68u#,0u#);
+"21 kurz, 240 Grad";
+z1=(42.6u,66.5u); z2=(19.3u,26.14u); z3=(14.1u,29.14u); z4=(37.4u,69.5u);
+z5=(4.6u,0.69u); z6=(7.04u,48.92u);
+z7=(9.28u,48.79u); z8=(22.6u,31.87u);
+fill z5{dir 82}..{dir 92}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(155,46u#,80u#,0);
+"21 kurz, 270 Grad";
+z1=(20u,80u); z2=(20u,38u); z3=(26u,38u); z4=(26u,80u);
+z5=(26u,4u); z6=(4u,47u); z7=(6u,48u); z8=(26u,40u);
+fill z6{dir -68}..{dir -78}z5--z8--z7--z6..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(175,48u#,68u#,0u#);
+"21 kurz, 300 Grad";
+z1=(-2.6u,66.5u); z2=(20.7u,26.14u); z3=(25.9u,29.14u); z4=(2.6u,69.5u);
+z5=(0.05u,29.92u); z6=(40.6u,3.69u);
+z7=(22.6u,34.87u); z8=(1.28u,31.79u);
+fill z5{dir -28}..{dir -38}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(185,60u#,60u#,0);
+"21 kurz, 315 Grad";
+z1=(-2.12u,57.87u); z2=(31.60u,24.15u); z3=(35.84u,28.39u); z4=(2.12u,62.13u);
+z6=(55.96u,8.29u); z7=(9.99u,23.11u);
+z8=(10.72u,25.24u); z9=(30.50u,33.75u);
+fill z7{dir -13}..{dir -23}z6--z9--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(195,68u#,40u#,0);
+"21 kurz, 330 Grad";
+z1=(1.5u,42.6u); z2=(44.36u,17.86u); z3=(41.36u,12.66u); z4=(-1.5u,37.4u);
+z5=(16.12u,8.75u); z6=(64.36u,6.3u);
+z7=(33.18u,24.3u); z8=(16.25u,10.98u);
+fill z5{dir 2}..{dir -8}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+
+beginchar(7,120u#,68u#,0);
+"21, 0 Grad";
+z1=(0u,37u); z2=(88u,37u); z3=(88u,31u); z4=(0,31u);
+z5=(116u,37u); z6=(73u,15u); z7=(72u,17u); z8=(80u,37u);
+fill z6{dir 32}..{dir 22}z5--z8--z7--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(27,103u#,60u#,0);
+"21, 30 Grad";
+z1=(1.5u,-2.6u); z2=(78u,41.5u); z3=(75u,46.7u); z4=(-1.5u,2.6u);
+z5=(71.34u,20.4u); z6=(99u,60.6u); z7=(67.8u,42.6u); z8=(70.85u,21.6u);
+fill z5{dir 62}..{dir 52}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(37,84u#,86u#,0);
+"21, 45 Grad";
+z1=(2.12u,-2.12u); z2=(64.12u,59.88u); z3=(59.88u,64.12u); z4=(-2.12u,2.12u);
+z5=(65.15u,38.27u); z6=(80u,84.24u);
+z7=(54.54u,58.78u); z8=(63.03u,38.98u);
+fill z5{dir 77}..{dir 67}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(47,60u#,90u#,16u#);
+"21, 60 Grad";
+z1=(-2.6u,-12.5u); z2=(42.4u,65.46u); z3=(47.6u,62.46u); z4=(2.6u,-15.5u);
+z5=(55.4u,87.95u); z6=(52.95u,39.71u);
+z7=(50.72u,39.84u); z8=(37.4u,56.77u);
+fill z5{dir -98}..{dir -88}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(57,46u#,ho#,22u#);
+"21, 90 Grad";
+z1=(20u,-22u); z2=(20u,69u); z3=(26u,69u); z4=(26u,-22u);
+z5=(20u,96u); z6=(20u,60u); z7=(40u,52u); z8=(42u,53u);
+fill z8{dir 122}..{dir 112}z5--z6--z7--z8..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(77,64u#,90u#,16u#);
+"21, 120 Grad";
+z1=(66.6u,-12.5u); z2=(22.6u,63.73u); z3=(17.4u,60.73u); z4=(61.4u,-15.5u);
+z5=(43.95u,58.71u); z6=(3.4u,84.95u);
+z7=(21.4u,53.77u); z8=(42.72u,57.71u);
+fill z5{dir 152}..{dir 142}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(87,88u#,82u#,0);
+"21, 135 Grad";
+z1=(90.12u,2.12u); z2=(30.12u,62.12u); z3=(25.88u,57.88u); z4=(85.88u,-2.12u);
+z5=(49.72u,65.15u); z6=(3.76u,80u);
+z7=(29.21u,54.54u); z8=(49.01u,63.03u);
+fill z5{dir 167}..{dir 157}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(97,104u#,60u#,0);
+"21, 150 Grad";
+z1=(102.5u,-2.6u); z2=(26.27u,41.41u); z3=(29.27u,46.61u); z4=(105.5u,2.6u);
+z5=(50.28u,52.88u); z6=(2.05u,55.33u);
+z7=(33.22u,37.33u); z8=(50.15u,50.65u);
+fill z5{dir -178}..{dir 172}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(107,120u#,68u#,0);
+"21, 180 Grad";
+z1=(120u,37u); z2=(31u,37u); z3=(31u,31u); z4=(120u,31u);
+z5=(4u,31u); z6=(47u,53u); z7=(48u,51u); z8=(40u,31u);
+fill z5{dir 22}..{dir 32}z6--z7--z8--z5..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(127,103u#,60u#,4u#);
+"21, 210 Grad";
+z1=(101.5u,62.6u); z2=(25u,18.43u); z3=(28u,13.23u); z4=(104.5u,57.4u);
+z5=(30.28u,39.95u); z6=(4.05u,-0.6u);
+z7=(35.22u,17.4u); z8=(32.15u,38.72u);
+fill z5{dir -118}..{dir -128}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(137,84u#,86u#,4u#);
+"21, 225 Grad";
+z1=(81.88u,88.12u); z2=(20.88u,27.12u); z3=(25.12u,22.88u); z4=(86.12u,83.88u);
+z5=(18.85u,47.72u); z6=(4u,1.76u);
+z7=(29.45u,27.21u); z8=(20.97u,47.01u);
+fill z5{dir -103}..{dir -113}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(147,60u#,90u#,16u#);
+"21, 240 Grad";
+z1=(62.6u,88.5u); z2=(19.3u,13.5u); z3=(14.1u,16.5u); z4=(57.4u,91.5u);
+z5=(4.6u,-11.95u); z6=(7.04u,36.28u);
+z7=(9.28u,36.15u); z8=(22.6u,19.23u);
+fill z5{dir 82}..{dir 92}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(157,46u#,ho#,22u#);
+"21, 270 Grad";
+z1=(20u,100u); z2=(20u,11u); z3=(26u,11u); z4=(26u,100u);
+z5=(26u,-16u); z6=(4u,27u); z7=(6u,28u); z8=(26u,20u);
+fill z6{dir -68}..{dir -78}z5--z8--z7--z6..cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(177,60u#,90u#,16u#);
+"21, 300 Grad";
+z1=(-2.6u,88.5u); z2=(40.7u,13.5u); z3=(45.9u,16.5u); z4=(2.6u,91.5u);
+z5=(20.05u,17.28u); z6=(60.6u,-8.95u);
+z7=(42.6u,22.23u); z8=(21.28u,19.15u);
+fill z5{dir -28}..{dir -38}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(187,88u#,82u#,0u#);
+"21, 315 Grad";
+z1=(-2.12u,79.88u); z2=(59.88u,17.88u); z3=(64.12u,22.12u); z4=(2.12u,84.12u);
+z6=(84.24u,2u); z7=(38.27u,16.84u);
+z8=(39.0u,18.97u); z9=(58.78u,27.45u);
+fill z7{dir -13}..{dir -23}z6--z9--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(197,103u#,60u#,0);
+"21, 330 Grad";
+z1=(1.5u,58.6u); z2=(79u,13.86u); z3=(76u,8.66u); z4=(-1.5u,53.4u);
+z5=(50.76u,4.75u); z6=(99u,2.3u);
+z7=(67.82u,20.3u); z8=(50.89u,6.98u);
+fill z5{dir 2}..{dir -8}z6--z7--z8--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(8,80u#,68u#,0);
+"2 kurz, 0 Grad";
+z1=(0u,37u); z2=(48u,37u); z3=(48u,31u); z4=(0,31u);
+z5=(76u,34u); z6=(33u,17u); z7=(32u,19u);
+z8=(44u,34u); z9=(32u,49u); z10=(33u,51u);
+fill z10{dir -28}..{dir -15}z5..z5{dir -165}..{dir -152}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(28,70u#,42u#,0);
+"2 kurz, 30 Grad";
+z1=(1.5u,-2.6u); z2=(41.36u,20.4u); z3=(38.36u,25.6u); z4=(-1.5u,2.6u);
+z5=(37.06u,1.8u); z6=(65.81u,38u); z7=(20.06u,31.22u);
+z8=(20.21u,28.99u); z9=(37.26u,21.5u); z10=(35.21u,3.0u);
+fill z5{dir 58}..{dir 45}z6..z6{dir -165}..{dir -178}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(38,58u#,60u#,0);
+"2 kurz, 45 Grad";
+z1=(2.12u,-2.12u); z2=(33.84u,29.6u); z3=(29.6u,33.84u); z4=(-2.12u,2.12u);
+z5=(35.38u,11.34u); z6=(53.7u,53.7u); z7=(11.34u,35.38u);
+z8=(12.04u,34.25u); z9=(29u,29u); z10=(33.25u,12.04u);
+fill z5{dir 73}..{dir 60}z6..z6{dir -150}..{dir -163}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(48,42u#,68u#,0);
+"2 kurz, 60 Grad";
+z1=(-2.6u,1.5u); z2=(20.4u,41.36u); z3=(25.6u,38.36u); z4=(2.6u,-1.5u);
+z5=(1.8u,37.06u); z6=(38u,65.81u); z7=(31.22u,20.08u);
+z8=(29.00u,20.21u); z9=(21.5u,37.26u); z10=(3.0u,35.21u);
+fill z5{dir 32}..{dir 45}z6..z6{dir -105}..{dir -92}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(58,46u#,80u#,0);
+"2 kurz, 90 Grad";
+z1=(20u,0u); z2=(20u,48u); z3=(26u,48u); z4=(26u,0u);
+z5=(23u,76u); z6=(6u,33u); z7=(8u,32u);
+z8=(23u,40u); z9=(38u,32u); z10=(40u,33u);
+fill z10{dir 118}..{dir 105}z5..z5{dir -105}..{dir -118}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(78,42u#,68u#,0);
+"2 kurz, 120 Grad";
+z1=(44.6u,1.5u); z2=(21.6u,41.36u); z3=(16.4u,38.36u); z4=(39.4u,-1.5u);
+z5=(40.2u,37.06u); z6=(4u,65.81u); z7=(10.78u,20.08u);
+z8=(13.01u,20.22u); z9=(22.0u,34.63u); z10=(39.0u,35.21u);
+fill z5{dir 148}..{dir 135}z6..z6{dir -75}..{dir -88}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(88,57.73u#,60u#,0);
+"2 kurz, 135 Grad";
+z1=(59.86u,2.12u); z2=(28.12u,33.84u); z3=(23.88u,29.6u); z4=(55.6u,-2.12u);
+z5=(45.38u,35.38u); z6=(4u,53.71u); z7=(22.34u,11.34u);
+z8=(24.47u,12.02u); z9=(28.7u,29u); z10=(45.48u,33.25u);
+fill z5{dir 163}..{dir 150}z6..z6{dir -60}..{dir -73}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(98,69.36u#,42u#,0);
+"2 kurz, 150 Grad";
+z1=(67.86u,-2.6u); z2=(28u,20.4u); z3=(31u,25.6u); z4=(70.86u,2.6u);
+z5=(32.3u,1.8u); z6=(3.55u,38u); z7=(49.28u,31.22u);
+z8=(49.15u,29.0u); z9=(32.1u,21.5u); z10=(34.15u,3.0u);
+fill z5{dir 122}..{dir 135}z6..z6{dir -15}..{dir -2}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(108,80u#,68u#,0);
+"2 kurz, 180 Grad";
+z1=(80u,37u); z2=(32u,37u); z3=(32u,31u); z4=(80u,31u);
+z5=(4u,34u); z6=(47u,17u); z7=(48u,19u);
+z8=(36u,34u); z9=(48u,49u); z10=(47u,51u);
+fill z10{dir -152}..{dir -165}z5..z5{dir -15}..{dir -28}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(128,69.36u#,42u#,0u#);
+"2 kurz, 210 Grad";
+z1=(67.86u,44.6u); z2=(28u,21.58u); z3=(31u,16.38u); z4=(70.86u,39.4u);
+z5=(32.28u,40.22u); z6=(3.54u,4u); z7=(49.28u,10.78u);
+z8=(49.15u,13.01u); z9=(33.85u,21.5u); z10=(34.15u,39.0u);
+fill z5{dir -122}..{dir -135}z6..z6{dir 15}..{dir 2}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(138,57.72u#,60u#,0u#);
+"2 kurz, 225 Grad";
+z1=(55.6u,62.12u); z2=(23.88u,30.30u); z3=(28.12u,26.16u); z4=(59.84u,57.88u);
+z5=(22.14u,48.66u); z6=(4u,6.28u); z7=(46.38u,24.62u);
+z8=(45.68u,26.75u); z9=(28.7u,30.98u); z10=(24.47u,47.96u);
+fill z5{dir -107}..{dir -120}z6..z6{dir 30}..{dir 17}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(148,42u#,68u#,0);
+"2 kurz, 240 Grad";
+z1=(44.6u,66.5u); z2=(21.6u,26.64u); z3=(16.4u,29.64u); z4=(39.4u,69.5u);
+z5=(40.2u,30.94u); z6=(4u,1.19u); z7=(10.78u,47.92u);
+z8=(13.01u,47.79u); z9=(20.5u,30.74u); z10=(39.0u,32.79u);
+fill z5{dir -148}..{dir -135}z6..z6{dir 75}..{dir 88}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(158,46u#,80u#,0);
+"2 kurz, 270 Grad";
+z1=(20u,80u); z2=(20u,32u); z3=(26u,32u); z4=(26u,80u);
+z5=(23u,4u); z6=(6u,47u); z7=(8u,48u);
+z8=(23u,40u); z9=(38u,48u); z10=(40u,47u);
+fill z10{dir -118}..{dir -105}z5..z5{dir 105}..{dir 118}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(178,42u#,68u#,0u#);
+"2 kurz, 300 Grad";
+z1=(-2.6u,66.5u); z2=(20.4u,26.64u); z3=(25.6u,29.64u); z4=(2.6u,69.5u);
+z5=(1.8u,30.94u); z6=(38u,1.19u); z7=(31.22u,47.92u);
+z8=(29.64u,47.79u); z9=(21.5u,30.74u); z10=(3.0u,32.79u);
+fill z5{dir -32}..{dir -35}z6..z6{dir 105}..{dir 92}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(188,58u#,60u#,0u#);
+"2 kurz, 315 Grad";
+z1=(-2.12u,57.88u); z2=(31.60u,24.16u); z3=(35.84u,28.40u); z4=(2.12u,62.12u);
+z5=(35.37u,48.66u); z6=(53.71u,6.28u); z7=(11.34u,24.62u);
+z8=(12.04u,26.75u); z9=(29.02u,30.98u); z10=(33.29u,47.96u);
+fill z5{dir -73}..{dir -60}z6..z6{dir 150}..{dir 163}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(198,70u#,42u#,0u#);
+"2 kurz, 330 Grad";
+z1=(1.5u,44.6u); z2=(44.36u,19.86u); z3=(41.36u,14.66u); z4=(-1.5u,39.4u);
+z5=(37.06u,40.2u); z6=(65.81u,4u); z7=(20.08u,10.78u);
+z8=(20.21u,13.01u); z9=(35.51u,21.5u); z10=(35.21u,39.0u);
+fill z5{dir -58}..{dir -45}z6..z6{dir 165}..{dir 178}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(9,120u#,68u#,0);
+"2, 0 Grad";
+z1=(0u,37u); z2=(88u,37u); z3=(88u,31u); z4=(0,31u);
+z5=(116u,34u); z6=(73u,17u); z7=(72u,19u);
+z8=(84u,34u); z9=(72u,49u); z10=(73u,51u);
+fill z10{dir -28}..{dir -15}z5..z5{dir -165}..{dir -152}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(29,104u#,60u#,0);
+"2, 30 Grad";
+z1=(1.5u,-2.6u); z2=(76u,40.4u); z3=(73u,45.6u); z4=(-1.5u,2.6u);
+z5=(71.7u,21.8u); z6=(100.45u,58u); z7=(54.71u,51.22u);
+z8=(54.85u,48.99u); z9=(71.9u,41.5u); z10=(69.85u,23.0u);
+fill z5{dir 58}..{dir 45}z6..z6{dir -165}..{dir -178}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(39,86u#,86u#,0);
+"2, 45 Grad";
+z1=(2.12u,-2.12u); z2=(62.12u,57.88u); z3=(57.88u,62.12u); z4=(-2.12u,2.12u);
+z5=(63.66u,39.62u); z6=(82u,82u); z7=(39.62u,63.66u);
+z8=(40.32u,61.53u); z9=(57.3u,57.3u); z10=(61.53u,40.32u);
+fill z5{dir 73}..{dir 60}z6..z6{dir -150}..{dir -163}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(49,62u#,90u#,16u#);
+"2, 60 Grad";
+z1=(-2.6u,-12.5u); z2=(40.4u,62u); z3=(45.6u,59u); z4=(2.6u,-15.5u);
+z5=(21.8u,57.7u); z6=(58u,86.45u); z7=(51.22u,40.72u);
+z8=(49.00u,40.85u); z9=(41.5u,57.9u); z10=(23.0u,55.85u);
+fill z5{dir 32}..{dir 45}z6..z6{dir -105}..{dir -92}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(59,46u#,ho#,22u#);
+"2, 90 Grad";
+z1=(20u,-22u); z2=(20u,66u); z3=(26u,66u); z4=(26u,-22u);
+z5=(23u,96u); z6=(6u,53u); z7=(8u,52u);
+z8=(23u,60u); z9=(38u,52u); z10=(40u,53u);
+fill z10{dir 118}..{dir 105}z5..z5{dir -105}..{dir -118}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(79,62u#,90u#,16u#);
+"2, 120 Grad";
+z1=(64.6u,-12.5u); z2=(21.6u,62u); z3=(16.4u,59u); z4=(59.4u,-15.5u);
+z5=(40.2u,57.7u); z6=(4u,86.45u); z7=(10.78u,40.72u);
+z8=(13.01u,40.85u); z9=(22.0u,55.27u); z10=(39.0u,55.85u);
+fill z5{dir 148}..{dir 135}z6..z6{dir -75}..{dir -88}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(89,86u#,86u#,0);
+"2, 135 Grad";
+z1=(88.12u,2.12u); z2=(28.12u,62.12u); z3=(23.88u,57.88u); z4=(83.88u,-2.12u);
+z5=(45.38u,63.66u); z6=(4u,82u); z7=(22.34u,39.62u);
+z8=(24.47u,40.32u); z9=(28.7u,57.3u); z10=(45.48u,61.53u);
+fill z5{dir 163}..{dir 150}z6..z6{dir -60}..{dir -73}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(99,104u#,60u#,0);
+"2, 150 Grad";
+z1=(102.5u,-2.6u); z2=(28u,40.4u); z3=(31u,45.6u); z4=(105.5u,2.6u);
+z5=(32.3u,21.8u); z6=(3.55u,58u); z7=(49.28u,51.22u);
+z8=(49.15u,49.0u); z9=(32.1u,41.5u); z10=(34.15u,23.0u);
+fill z5{dir 122}..{dir 135}z6..z6{dir -15}..{dir -2}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(109,120u#,68u#,0);
+"2, 180 Grad";
+z1=(120u,37u); z2=(32u,37u); z3=(32u,31u); z4=(120u,31u);
+z5=(4u,34u); z6=(47u,17u); z7=(48u,19u);
+z8=(36u,34u); z9=(48u,49u); z10=(47u,51u);
+fill z10{dir -152}..{dir -165}z5..z5{dir -15}..{dir -28}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(129,104u#,60u#,0u#);
+"2, 210 Grad";
+z1=(102.5u,62.6u); z2=(28u,19.58u); z3=(31u,14.38u); z4=(105.5u,57.4u);
+z5=(32.28u,38.22u); z6=(3.54u,2u); z7=(49.28u,8.78u);
+z8=(49.15u,11.01u); z9=(33.85u,19.5u); z10=(34.15u,37.0u);
+fill z5{dir -122}..{dir -135}z6..z6{dir 15}..{dir 2}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(139,86u#,86u#,0u#);
+"2, 225 Grad";
+z1=(83.88u,88.12u); z2=(23.88u,28.12u); z3=(28.12u,23.88u); z4=(88.12u,83.88u);
+z5=(22.14u,46.38u); z6=(4u,4u); z7=(46.38u,22.34u);
+z8=(45.68u,24.47u); z9=(28.7u,28.7u); z10=(24.47u,45.68u);
+fill z5{dir -107}..{dir -120}z6..z6{dir 30}..{dir 17}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(149,62u#,90u#,16u#);
+"2, 240 Grad";
+z1=(64.6u,88.5u); z2=(21.6u,14u); z3=(16.4u,17u); z4=(59.4u,91.5u);
+z5=(40.2u,18.3u); z6=(4u,-11.45u); z7=(10.78u,35.28u);
+z8=(13.01u,35.15u); z9=(20.5u,18.1u); z10=(39.0u,20.15u);
+fill z5{dir -148}..{dir -135}z6..z6{dir 75}..{dir 88}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(159,46u#,ho#,22u#);
+"2, 270 Grad";
+z1=(20u,100u); z2=(20u,12u); z3=(26u,12u); z4=(26u,100u);
+z5=(23u,-20u); z6=(6u,23u); z7=(8u,24u);
+z8=(23u,16u); z9=(38u,24u); z10=(40u,23u);
+fill z10{dir -118}..{dir -105}z5..z5{dir 105}..{dir 118}z6--z7--z8--z9--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(179,62u#,90u#,16u#);
+"2, 300 Grad";
+z1=(-2.6u,88.5u); z2=(40.7u,13.5u); z3=(45.9u,16.5u); z4=(2.6u,91.5u);
+z5=(21.8u,18.3u); z6=(58u,-11.45u); z7=(51.22u,35.28u);
+z8=(49.0u,35.15u); z9=(41.5u,18.1u); z10=(23.0u,20.15u);
+fill z5{dir -32}..{dir -35}z6..z6{dir 105}..{dir 92}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(189,86u#,82u#,0);
+"2, 315 Grad";
+z1=(-2.12u,79.88u); z2=(59.88u,17.88u); z3=(64.12u,22.12u); z4=(2.12u,84.12u);
+z5=(63.66u,42.38u); z6=(82u,0u); z7=(39.62u,18.34u);
+z8=(40.32u,20.47u); z9=(57.3u,24.7u); z10=(61.57u,41.68u);
+fill z5{dir -73}..{dir -60}z6..z6{dir 150}..{dir 163}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+beginchar(199,104u#,60u#,0);
+"2, 330 Grad";
+z1=(1.5u,62.6u); z2=(79u,17.86u); z3=(76u,12.66u); z4=(-1.5u,57.4u);
+z5=(71.7u,38.2u); z6=(100.45u,2u); z7=(54.72u,8.78u);
+z8=(54.85u,11.01u); z9=(70.15u,19.5u); z10=(69.85u,37.0u);
+fill z5{dir -58}..{dir -45}z6..z6{dir 165}..{dir 178}z7--z8--z9--z10--cycle;
+fill z1--z2--z3--z4--cycle;
+labels(range 1 thru 6);
+endchar;
+
+
+font_normal_space 3pt#; font_x_height 52u#;
+font_extra_space 1pt#; font_quad 12pt#;
+font_normal_stretch 3pt#; font_normal_shrink 1pt#;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/cs/csaccent.mf b/Master/texmf-dist/fonts/source/public/cs/csaccent.mf
new file mode 100644
index 00000000000..d234626ab79
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csaccent.mf
@@ -0,0 +1,413 @@
+% This is csaccent.mf in text format, as of 89/05/08
+% written by P. Novak, Prague
+% Czech and Slovak letters with accents
+% Changed paths for acute and hachek accent added 26/04/92, 11/08/92
+% Accent definitions %% lc_circle_accent modified
+ %% uc_Circle_accent added for Duerer font
+% Czech accented letters
+if unknown acute_sharp: boolean acute_sharp; acute_sharp:=false; fi
+if unknown hach_sharp: boolean hach_sharp; hach_sharp:=false; fi
+
+def init_accents =
+numeric uc_acc_height, uc_acc_height#,
+ lc_acute_height, lc_acute_height#,
+ lc_hachek_height, lc_hachek_height#,
+ lc_circle_height, lc_circle_height#,
+ lc_trema_height, lc_trema_height#,
+ accent_u, accent_u#,
+ accent_thin,
+ uc_acc_shift, asc_acc_shift;
+if unknown circ_weight: circ_weight:=1; fi
+
+uc_acc_height# = cap_height# + 0.35x_height#; % changed 12.xii.93
+ % changed 10.ix.96 by P.O.
+lc_acute_height# = asc_height#;
+lc_hachek_height# = lc_acute_height#;
+lc_circle_height# = lc_acute_height#;
+lc_trema_height# = min(cap_height#,9/7x_height#+
+ .5max(dot_size#,cap_curve#));
+accent_u# = u#; % unexpanded dimension unit
+
+accent_thin = if thin_join > crisp: thin_join else: crisp+eps fi;
+
+define_whole_vertical_pixels(uc_acc_height,lc_acute_height,
+ lc_hachek_height,lc_circle_height,lc_trema_height);
+define_pixels(accent_u);
+
+uc_acc_shift = cap_height - x_height;
+asc_acc_shift = asc_height - x_height;
+enddef;
+
+init_accents;
+
+
+def lc_acute_accent(expr ref) =
+ if serifs : pickup crisp.nib;
+ 1/2[x51,x52]=good.x ref;
+ x51 + .5 stem = x52+3accent_u;
+ y51 + .5 stem = lc_acute_height+eps;
+ if acute_sharp: top y52' = top y51; y52=.25[x_height,y52'];
+ else:
+ y52 = max(2/3[lc_acute_height,x_height],x_height+o+hair);
+ fi
+ numeric cstheta;
+ cstheta = angle(z52-z51) + 90;
+ if acute_sharp: pos51(1.5stem,0); pos52(accent_thin,0); %% 1->.5
+ filldraw stroke z51e -- z52e;
+ else:
+ pos51(stem,cstheta);
+ pos52(accent_thin,cstheta);
+ filldraw circ_stroke z51e -- z52e;
+ fi
+ else: pickup fine.nib;
+ pos51(stem,0);
+ pos52(vair,0);
+ 0.7[x51,x52] = good.x ref;
+ rt x51r = x52 + 3accent_u;
+ top y51 = lc_acute_height;
+ bot y52 = vround (2/3 [lc_acute_height,x_height]);
+ filldraw stroke z51e -- z52e;
+ fi
+ corrital z51;
+ penlabels(51,52);
+enddef;
+
+def lc_grave_accent(expr ref) =
+ if serifs : pickup crisp.nib;
+ 1/2[x51,x52]=good.x ref;
+ x51 - .5 stem = x52-3accent_u;
+ y51 + .5 stem = lc_acute_height+eps;
+ if acute_sharp: top y52' = top y51; y52=.25[x_height,y52'];
+ else:
+ y52 = max(2/3[lc_acute_height,x_height],x_height+o+hair);
+ fi
+ numeric cstheta;
+ cstheta = angle(z52-z51) + 90;
+ if acute_sharp: pos51(1.5stem,0); pos52(accent_thin,0); %% 1->.5
+ filldraw stroke z51e -- z52e;
+ else:
+ pos51(stem,cstheta);
+ pos52(accent_thin,cstheta);
+ filldraw circ_stroke z51e -- z52e;
+ fi
+ else: pickup fine.nib;
+ pos51(stem,0);
+ pos52(vair,0);
+ 1/2[x51,x52] = good.x ref;
+ lft x51l = x52 - 3accent_u;
+ top y51 = lc_acute_height;
+ bot y52 = vround (2/3 [lc_acute_height,x_height]);
+ filldraw stroke z51e -- z52e;
+ fi
+ penlabels(51,52);
+enddef;
+
+def lc_hachek_accent(expr ref) =
+ if serifs:
+ pickup crisp.nib;
+ pos52'(0.75[vair,curve],90);
+ pos52(0.75[vair,curve],90);
+ x52=good.x ref;
+ x52-x51=x53-x52=good.x if hach_sharp:2.5 else:3 fi
+ accent_u-accent_thin;
+ top y52' = top y51 = top y53 = 0.9[x_height,lc_hachek_height];
+ if hach_sharp: y52=.25[x_height,y52']; % lower point
+ pos51(1.5stem,0); pos53(accent_thin,180); else:
+ 0.5[y52,y52r] = 0.5[x_height,y52'];
+ pos51(accent_thin,angle(z52-z51)+90);
+ pos53(accent_thin,angle(z53-z52)+90);
+ fi
+ filldraw stroke z51e -- z52e -- z53e;
+ else:
+ pickup fine.nib;
+ pos51(vair,0);
+ pos53(vair,0);
+ x52=good.x ref;
+ x52-lft x51=rt x53-x52= 1.75accent_u +.5vair; % lft, rt added
+ pos52(stem,0);
+ bot y52=vround(0.3[x_height,lc_hachek_height]);
+ top y51 = top y53 = lc_hachek_height;
+ z50 = whatever[z51r,z52r] = whatever[z52l,z53l];
+ y54l=y54r=y52;
+ x54l=good.x .2[x52l,x52];
+ x54r-x52 = x52-x54l;
+ filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle;
+ fi
+ corrital z53;
+ penlabels(50,51,52,52',53,54);
+enddef;
+
+
+def lc_circumflex(expr ref) =
+if serifs:
+% pickup crisp.nib; pos52(stem,90); top y52r=lc_hachek_height;
+%% Corrected by P.O. 06.97
+ pickup crisp.nib; pos52(stem,90); top y52r=0.95lc_hachek_height;
+ x52=ref;
+ x52-x51=x53-x52=good.x 2.75accent_u;
+% y51=y53=.5[x_height,y52]; %% Corrected by P.O. 06.97
+ y51=y53=.4[x_height,y52];
+ pos51(accent_thin,angle(z52-z51)+90); pos53(accent_thin,angle(z53-z52)+90);
+ filldraw stroke z51e--z52e--z53e; % diagonals
+else:
+ pickup fine.nib; pos51(vair,0); pos53(vair,0);
+ x52=ref;
+ x52-lft x51=rt x53-x52= 1.75accent_u + .5vair; % 2.75->1.75, lft, rt added
+ pos52(stem,0); top y52=lc_acute_height;
+ bot y51=bot y53=vround (2/3[lc_acute_height,x_height])-eps;
+ z50=whatever[z51r,z52r]=whatever[z52l,z53l];
+ y54l=y54r=y52; x54l=good.x .2[x52l,x52]; x54r-x52=x52-x54l;
+ filldraw z54l--z51l--z51r--z50--z53l--z53r--z54r--cycle; fi % diagonals
+penlabels(50,51,52,53,54);
+enddef;
+
+def lc_trema_accent(expr ref_l,ref_r) =
+ numeric dot_diam;
+ dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+ pickup tiny.nib; pos51(dot_diam,0); pos52(dot_diam,90);
+ x51=x52=good.x ref_l; top y52r= lc_trema_height+1;
+ y51=.5[y52l,y52r];
+ dot(51,52); % left dot
+ pos53(dot_diam,0); penpos54(y52r-y52l,90); y53=y54=y51;
+ x53=x54=good.x ref_r;
+ dot(53,54); % right dot
+ corrital z53;
+ penlabels(51,52,53,54);
+enddef;
+
+def lc_circle_accent(expr ref) =
+ x60 = ref;
+ numeric cs_circle_thickness,font_quotion;
+ font_quotion=155/90(asc_height-x_height)/x_height; %% added
+ cs_circle_thickness = circ_weight*min(slab,0.9u);
+ x54r-x52r = hround(max(5accent_u-1.2stem,accent_u+2cs_circle_thickness));
+ pickup crisp.nib;
+ penpos51(cs_circle_thickness,90); penpos55(cs_circle_thickness,90+45);
+ penpos52(cs_circle_thickness,180); penpos56(cs_circle_thickness,180+45);
+ penpos53(cs_circle_thickness,-90); penpos57(cs_circle_thickness,-90+45);
+ penpos54(cs_circle_thickness,0); penpos58(cs_circle_thickness,0+45);
+
+ 0.5[x52,x54] = x51 = x53 = x60; y51r=lc_circle_height;
+ y52-y53 = (x54-x60);
+% y52-y53 = x54-x60; % precise circle (not ellipse)
+ y52=y54=.5[y51,y53];
+
+ x55 = x56 = superness[x51,x52]; x57 = x58 = superness[x53,x54];
+ y55 = y58 = superness[y52,y51]; y56 = y57 = superness[y52,y53];
+
+ fill z51r{right} ... z58r{z54r-z51r} ... z54r{down} ... z57r{z53r-z54r}
+ ... z53r{left} ... z56r{z52r-z53r} ... z52r{up} ... z55r{z51r-z52r}
+ ... cycle;
+ unfill z51l{right} ... z58l{z54l-z51l} ... z54l{down} ... z57l{z53l-z54l}
+ ... z53l{left} ... z56l{z52l-z53l} ... z52l{up} ... z55l{z51l-z52l}
+ ... cycle;
+ % bowl
+ corrital z54;
+ penlabels(51,52,53,54,55,56,57,58);
+enddef;
+
+def dtl_hachek(text x_ref,y_ref) =
+pickup fine.nib;
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+ define_whole_blacker_pixels(dot_diam);
+ pickup fine.nib;
+ x51=hround(x_ref); y51=vround(y_ref);
+ comma(51,q,dot_diam,.25accent_u,2/3comma_depth);
+ corrital z51;
+ penlabels(51);
+enddef;
+
+def uc_acute_accent(expr ref) =
+ if serifs : pickup crisp.nib;
+ 1/2[x51,x52]=good.x ref;
+ x51 + .5 stem = x52+4accent_u;
+ y51 + .5 stem =0.67[x_height,lc_acute_height] %lc_acute_height
+ +eps+uc_acc_shift; %% changed 1->.8->.65->.67
+ if acute_sharp: top y52' = top y51; y52=.1[x_height,y52']+uc_acc_shift;
+% else: y52+ =max(.8[lc_acute_height,x_height],x_height+o+hair)
+ else: y52+.5 stem =max(.8[lc_acute_height,x_height],x_height+o+hair)
+ +uc_acc_shift; fi %2/3->3/4
+ numeric cstheta;
+ cstheta = angle(z52-z51) + 90;
+ if acute_sharp: pos51(1.5stem,0); pos52(.5accent_thin,0);
+ filldraw stroke z51e -- z52e; else:
+ pos51(stem/max(1,3/4stem_corr),cstheta);
+ pos52(accent_thin,cstheta);
+ filldraw circ_stroke z51e -- z52e; fi
+ else: pickup fine.nib;
+ pos51(stem,0);
+ pos52(vair,0);
+ 0.7[x51,x52] = good.x ref;
+ rt x51r = x52 + 3accent_u;
+ top y51 = lc_acute_height+uc_acc_shift;
+ bot y52 = vround 2/3[lc_acute_height,x_height]+uc_acc_shift;
+ filldraw stroke z51e -- z52e;
+ fi
+ corrital z51;
+ penlabels(51,52);
+enddef;
+
+def uc_grave_accent(expr ref) =
+ if serifs : pickup crisp.nib;
+ 1/2[x51,x52]=good.x ref;
+ x51 - .5 stem = x52-3accent_u;
+ y51 + .5 stem = 0.67[x_height,lc_acute_height] %lc_acute_height
+ +eps+uc_acc_shift;
+ if acute_sharp: top y52' = top y51; y52=.1[x_height,y52']+uc_acc_shift;
+ else: y52 = max(.8[lc_acute_height,x_height],x_height+o+hair)
+ +uc_acc_shift; fi % 2/3->3/4
+ numeric cstheta;
+ cstheta = angle(z52-z51) -150;
+ if acute_sharp: pos51(1.5stem,0); pos52(.5accent_thin,0);
+ filldraw stroke z51e -- z52e;
+ else: pickup fine.nib;
+% pos51(stem/max(1,stem_corr),cstheta); %% Corrected by P.O, 6.97
+ pos51(stem,cstheta);
+ pos52(accent_thin,cstheta);
+ filldraw circ_stroke z51e -- z52e; fi
+ else: pickup fine.nib;
+ pos51(stem,0);
+ pos52(vair,0);
+ .7[x51,x52] = good.x ref;
+ lft x51l = x52 - 3accent_u;
+ top y51 = lc_acute_height+uc_acc_shift;
+ bot y52 = vround (.7 [lc_acute_height,x_height])+uc_acc_shift;
+ filldraw stroke z51e -- z52e;
+ fi
+ penlabels(51,52);
+enddef;
+
+def uc_hachek_accent(expr ref) =
+ if serifs:
+ pickup crisp.nib;
+ pos52'(0.75[vair,curve],90);
+ pos52(0.75[vair,curve],90);
+ x52=good.x ref;
+ x52-x51=x53-x52=good.x 3accent_u-accent_thin;
+ top y52' = top y51 = top y53 =
+ 0.57[x_height,lc_hachek_height]+uc_acc_shift;
+ %% changed .55->.57;
+ if hach_sharp: y52=.1[x_height,y52']+uc_acc_shift;
+ pos51(1.5stem,0); pos53(2accent_thin,180);
+ else:
+ 0.5[y52,y52r] = 0.5[x_height,y52'-uc_acc_shift]+uc_acc_shift;
+ pos51(accent_thin,angle(z52-z51)+90);
+ pos53(accent_thin,angle(z53-z52)+90);
+ fi
+ filldraw stroke z51e -- z52e -- z53e;
+ else:
+ pickup fine.nib;
+ pos51(vair,0);
+ pos53(vair,0);
+ x52=good.x ref;
+ x52-x51=x53-x52= 1.75accent_u + .5vair;
+ pos52(stem,0);
+ bot y52=vround(0.2[x_height,lc_hachek_height])+uc_acc_shift;
+ %% .3 -> .25 24.10.92
+ top y51 = top y53 = 0.75[x_height,lc_hachek_height]+uc_acc_shift;
+ z50 = whatever[z51r,z52r] = whatever[z52l,z53l];
+ y54l=y54r=y52;
+ x54l=good.x .2[x52l,x52];
+ x54r-x52 = x52-x54l;
+ filldraw z54l -- z51l-- z51r -- z50 -- z53l -- z53r -- z54r -- cycle;
+ fi
+ corrital z53;
+ penlabels(50,51,52,52',53,54);
+enddef;
+
+def uc_circumflex(expr ref) =
+if serifs:
+ pickup crisp.nib; pos52(stem,90);
+ top y52=0.57[x_height,lc_acute_height]+uc_acc_shift;
+ %lc_acute_height + uc_acc_shift;
+ x52=good.x ref;
+ x52-x51=x53-x52=good.x 3accent_u;
+ y51=y53=.5[x_height,y52-uc_acc_shift]+uc_acc_shift;
+ pos51(accent_thin,angle(z52-z51)+90); pos53(accent_thin,angle(z53-z52)+90);
+ filldraw stroke z51e--z52e--z53e; % diagonals
+else:
+ pickup fine.nib; pos51(vair,0); pos53(vair,0);
+ x52=ref;
+ x52-x51=x53-x52= 1.75accent_u + .5vair;
+ pos52(stem,0); top y52=lc_acute_height+uc_acc_shift;
+ bot y51=bot y53=vround (2/3[lc_acute_height,x_height]) + uc_acc_shift-eps;
+ z50=whatever[z51r,z52r]=whatever[z52l,z53l];
+ y54l=y54r=y52; x54l=good.x .2[x52l,x52]; x54r-x52=x52-x54l;
+ filldraw z54l--z51l--z51r--z50--z53l--z53r--z54r--cycle; fi % diagonals
+penlabels(50,51,52,53,54);
+enddef;
+
+def uc_trema_accent(expr ref_l,ref_r) =
+ numeric dot_diam;
+ dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+ pickup tiny.nib; pos51(dot_diam,0); pos52(dot_diam,90);
+ x51=x52=good.x ref_l; top y52r= lc_trema_height+1+uc_acc_shift;
+ y51=.5[y52l,y52r];
+ dot(51,52); % left dot
+ pos53(dot_diam,0); penpos54(y52r-y52l,90); y53=y54=y51;
+ x53=x54=good.x ref_r;
+ dot(53,54); % right dot
+ corrital z54;
+ penlabels(51,52,53,54);
+enddef;
+
+def uc_circle_accent(expr ref) =
+ x60 = ref;
+ numeric cs_circle_thickness,font_quotion;
+ font_quotion=155/90(asc_height-x_height)/x_height;
+ cs_circle_thickness = min(slab,0.9u);
+ x54r-x52r = hround(max(5accent_u-1.2stem,accent_u+2cs_circle_thickness));
+ pickup crisp.nib;
+ penpos51(cs_circle_thickness,90); penpos55(cs_circle_thickness,90+45);
+ penpos52(cs_circle_thickness,180); penpos56(cs_circle_thickness,180+45);
+ penpos53(cs_circle_thickness,-90); penpos57(cs_circle_thickness,-90+45);
+ penpos54(cs_circle_thickness,0); penpos58(cs_circle_thickness,0+45);
+
+ 0.5[x52,x54] = x51 = x53 = x60;
+ y51=0.55[x_height,lc_circle_height]+uc_acc_shift;
+ %lc_circle_height+uc_acc_shift;
+ y52-y53 = (x54-x60);
+ y52=y54=.5[y51,y53];
+
+ x55 = x56 = superness[x51,x52]; x57 = x58 = superness[x53,x54];
+ y55 = y58 = superness[y52,y51]; y56 = y57 = superness[y52,y53];
+
+ fill z51r{right} ... z58r{z54r-z51r} ... z54r{down} ... z57r{z53r-z54r}
+ ... z53r{left} ... z56r{z52r-z53r} ... z52r{up} ... z55r{z51r-z52r}
+ ... cycle;
+ unfill z51l{right} ... z58l{z54l-z51l} ... z54l{down} ... z57l{z53l-z54l}
+ ... z53l{left} ... z56l{z52l-z53l} ... z52l{up} ... z55l{z51l-z52l}
+ ... cycle;
+ % bowl
+ penlabels(51,52,53,54,55,56,57,58);
+enddef;
+
+def uc_Circle_accent(expr ref) =
+ x60 = ref;
+ numeric cs_circle_thickness,font_quotion;
+ font_quotion=155/90(asc_height-x_height)/x_height;
+ cs_circle_thickness = thin; %min(slab,0.9u);
+ x54r-x52r = hround(max(5accent_u-1.2stem,accent_u+2cs_circle_thickness));
+ pickup crisp.nib;
+ penpos51(cs_circle_thickness,90); penpos55(cs_circle_thickness,90+45);
+ penpos52(cs_circle_thickness,180); penpos56(cs_circle_thickness,180+45);
+ penpos53(cs_circle_thickness,-90); penpos57(cs_circle_thickness,-90+45);
+ penpos54(cs_circle_thickness,0); penpos58(cs_circle_thickness,0+45);
+
+ 0.5[x52,x54] = x51 = x53 = x60; y51r=lc_circle_height+uc_acc_shift;
+ y52-y53 = (x54-x60);
+ y52=y54=.5[y51,y53];
+
+ x55 = x56 = superness[x51,x52]; x57 = x58 = superness[x53,x54];
+ y55 = y58 = superness[y52,y51]; y56 = y57 = superness[y52,y53];
+
+ fill z51r{right} ... z58r{z54r-z51r} ... z54r{down} ... z57r{z53r-z54r}
+ ... z53r{left} ... z56r{z52r-z53r} ... z52r{up} ... z55r{z51r-z52r}
+ ... cycle;
+ unfill z51l{right} ... z58l{z54l-z51l} ... z54l{down} ... z57l{z53l-z54l}
+ ... z53l{left} ... z56l{z52l-z53l} ... z52l{up} ... z55l{z51l-z52l}
+ ... cycle;
+ % bowl
+ penlabels(51,52,53,54,55,56,57,58);
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/cs/csacutl.mf b/Master/texmf-dist/fonts/source/public/cs/csacutl.mf
new file mode 100644
index 00000000000..deb8e7832aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csacutl.mf
@@ -0,0 +1,223 @@
+% This is csacutl.mf in text format, as of 89/02/19
+% written by P. Novak, Prague
+% Czech and slovak letters with accents
+% Lowercase roman letters with acute accent
+
+cmchar "The letter a with acute";
+beginchar(cs_aa,9u#,lc_acute_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr h#*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+lc_acute_accent(x3+.75u);
+endchar;
+
+cmchar "The letter e with acute";
+beginchar(cs_ee,7.25u#+max(.75u#,.5curve#),lc_acute_height#,0);
+italcorr h#*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5);
+lc_acute_accent(x2+.75u);
+endchar;
+
+
+cmchar "The letter i with acute";
+beginchar(cs_ii,5u#,lc_acute_height#,0);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2);
+lc_acute_accent(x1);
+endchar;
+
+
+
+cmchar "The letter o with acute";
+beginchar(cs_oo,9u#,lc_acute_height#,0);
+italcorr .7h#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% lc_acute_accent(x1); %% Corrected by P.O. 06.97
+lc_acute_accent(x1+1u);
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter r with acute";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(cs_rr,if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,
+ lc_acute_height#,0);
+italcorr h#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=x_height+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,x_height]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=x_height+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6);
+lc_acute_accent(x3+.5u);
+endchar;
+
+cmchar "The letter u with acute";
+beginchar(cs_uu,10u#,lc_acute_height#,0);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6);
+lc_acute_accent(x5);
+endchar;
+
+cmchar "The letter y with acute";
+beginchar(cs_yy,if serifs:9.5u# else:9u# fi,lc_acute_height#,desc_depth#);
+italcorr h#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=x_height; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9);
+lc_acute_accent(x0);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/cs/csacutu.mf b/Master/texmf-dist/fonts/source/public/cs/csacutu.mf
new file mode 100644
index 00000000000..d838373e5da
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csacutu.mf
@@ -0,0 +1,215 @@
+% This is csacutu.mf in text format, as of 89/02/19
+% written by P. Novak, Prague
+% Czech and slovak letters with accents
+% Uppercase roman letters with acute accent
+
+cmchar "The letter A with acute";
+beginchar(cs_AA,13u#,uc_acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6);
+uc_acute_accent(x2r);
+endchar;
+
+cmchar "The letter E with acute";
+beginchar(cs_EE,12u#-width_adj#,uc_acc_height#,0);
+italcorr h#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h':=vround(cap_height-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h'; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h'; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h',beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9);
+uc_acute_accent(.5[x3,if serifs: x.e1 else: x4 fi]);
+endchar;
+
+cmchar "The letter I with acute";
+beginchar(cs_II,max(6u#,4u#+cap_stem#),uc_acc_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+
+if driver_name="sroman": % Variant I for SliTeX fonts by P. MacKay
+ pickup crisp.nib; % arms based on proportions of uppercase E
+ pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+ x3=x4=x1; top y3r=cap_height; bot y4r=0;
+ pos5(hair,0); pos6(hair,0); % top and bottom right arms
+ rt x5r=rt x6r=hround(w-u);
+ pos7(hair,180); pos8(hair,180); % top and bottom left arms
+ lft x7r=lft x8r=hround(u);
+ y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+ y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+ arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+ arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+ penlabels(1,2,3,4,5,6,7,8);
+else: penlabels(1,2);
+fi math_fit(0,.5ic#);
+uc_acute_accent(x1);
+endchar;
+
+cmchar "The letter L with acute";
+beginchar(cs_LL,11u#-width_adj#,uc_acc_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,u#); penlabels(1,2,3,4);
+uc_acute_accent(x1+.5u);
+endchar;
+
+cmchar "The letter O with acute";
+beginchar(cs_OO,14u#-width_adj#,uc_acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4);
+uc_acute_accent(x1);
+endchar;
+
+cmchar "The letter R with acute";
+beginchar(cs_RR,if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,uc_acc_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5cap_height+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10);
+uc_acute_accent(.5[if serifs: x.b1 else: x4r fi,x4]);
+endchar;
+
+cmchar "The letter U with acute";
+beginchar(cs_UU,13u#+.5width_adj#,uc_acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5);
+uc_acute_accent(x3);
+endchar;
+
+cmchar "The letter Y with acute";
+beginchar(cs_YY,13u#,uc_acc_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=cap_height;
+y2=y3=y5=.4cap_height;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6);
+uc_acute_accent(1/2[x2l,x3r]);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/cs/csadded.mf b/Master/texmf-dist/fonts/source/public/cs/csadded.mf
new file mode 100644
index 00000000000..7e2fa094010
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csadded.mf
@@ -0,0 +1,219 @@
+% ---------------------------------------------------------------------------
+% opening and closing quotes (european styled) and
+% French quotation marks: (<< and >>),
+% promile (oneperthousand) in text format are added.
+% The program is based on excerpts from the COMLIG.MF and ROMSUB.MF files.
+% Bogus\l{}aw Jackowski \& Marek Ry\'cko
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+
+
+% ---------------------------------------------------------------------------
+%%% italcorr corrital
+numeric qvair; qvair=max(round(xvair),fine+epsilon); % |qvair| = quotes vair
+% ---------------------------------------------------------------------------
+cmchar "Opening quotes";
+if ligs>0:
+% in typical fonts the opening quotation mark is based on COMLIG's
+% |"Closing quotes"|:
+beginchar(opening_quotes,7u#+max(2u#,dot_size#),dot_size#,
+ comma_depth#);
+ adjust_fit(0,0);
+ x2+.5dot_size=hround(w-1.2u);
+ y2+.5dot_size=h;
+ x2-x1=hround(1.5u+max(2u,dot_size));
+ y2=y1;
+ comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+ penlabels(1,2);
+else:
+% in tt-like fonts the opening quotation mark are based on ROMSUB's
+% |"Straight double quote"|:
+beginchar(opening_quotes,9u#,asc_height#,0);
+ numeric top_width#,spread#,shifth_down;
+ top_width#=if serifs: flare# else: stem# fi;
+ spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+ adjust_fit(0,0);
+ numeric the_shift;
+ x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+ y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift;
+ if serifs:
+ y1=flare/2; the_shift=h-.5stem-y1;
+ pickup crisp.nib;
+ pos1(flare,0); pos2(vair,0); pos3(flare,0); pos4(vair,0);
+ filldraw circ_stroke (z1e--z2e); % left stem and bulb
+ filldraw circ_stroke (z3e--z4e); % right stem and bulb
+ else:
+ top y1=stem; the_shift=h-y1;
+ pickup fine.nib;
+ pos1(stem,0); pos2(vair,0); pos3(stem,0); pos4(vair,0);
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ fi
+ charht:=dot_size#; chardp:=desc_depth#;
+ penlabels(1,2,3,4);
+fi
+endchar;
+
+cmchar "Closing quotes";
+if ligs>0:
+beginchar(closing_quotes,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround 1.2u; y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2);
+else:
+% in tt-like fonts the closing quotation mark are same as ROMSUB's
+% |"Straight double quote"|:
+beginchar(closing_quotes,9u#,asc_height#,0);
+numeric top_width#,spread#; top_width#=if serifs: flare# else: stem# fi;
+spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+italcorr asc_height#*slant+.5top_width#+.5spread#-4u#;
+adjust_fit(0,0);
+x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ pos3(flare,0); pos4(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % left stem and bulb
+ filldraw circ_stroke z3e--z4e; % right stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; fi % right stem
+penlabels(1,2,3,4);
+fi endchar;
+% ------------------------------------------------------------------------
+cmchar "French opening quotes";
+
+beginchar(french_opening_quotes,if not serifs or monospace:9u#
+else: 10u# fi,2bar_height#,0);
+ adjust_fit(0,0);
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ rt x1r=rt x3r=hround(5u-shift_corr)-eps;
+ lft x2l=hround(if not monospace: 2 fi\\ u-shift_corr)-eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*right; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z1'r;
+ penlabels(1,2,3,1',2',3');
+endchar; % French opening quotes
+% ------------------------------------------------------------------------
+cmchar "French closing quotes";
+
+beginchar(french_closing_quotes,if not serifs or monospace: 9u#
+else: 10u# fi,2bar_height#,0);
+ adjust_fit(0,0);
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ lft x1l=lft x3l=w-hround(5u-shift_corr)+eps;
+ rt x2r=w-hround(if not monospace: 2 fi\\ u-shift_corr)+eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*left; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z2r;
+ penlabels(1,2,3,1',2',3');
+endchar; % French closing quotes
+% ------------------------------------------------------------------------
+if ligs>0: % no ligatures in tt fonts
+ ligtable ",": "," =: opening_quotes;
+ ligtable "<": "<" =: french_opening_quotes;
+ ligtable ">": ">" =: french_closing_quotes;
+fi
+% ------------------------------------------------------------------------
+
+cmchar "Per mile sign";
+beginchar(oneperthousand,if monospace: 15u# else: 12u# fi
+ +max(9u#,3fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric percent_width; percent_width=9u+max(6u,2fudge*(hair+stem));
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5percent_width-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(percent_width-u); lft x6r=hround(.5percent_width+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pos51(vair,90); pos52(left_curve,180); pos53(vair,270); pos54(right_curve,360);
+bot y53r=-d; rt x54r=hround(w-u); x54-x52=x8-x6;
+top y51r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x51=x53=.5[x52,x54]; y52=y54=.5[y51,y53];
+filldraw stroke pulled_super_arc.e(51,52)(superpull)
+ & pulled_super_arc.e(52,53)(superpull); % left half of 2nd lower bowl
+filldraw stroke super_arc.e(53,54) & super_arc.e(54,51); % right half of 2nd lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(percent_width-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,51,52,53,54); endchar;
+
+%----------------------------------------------
+cmchar "ogonek accent" ;
+beginchar(ogonek,8u#,0,.875desc_depth#) ;
+adjust_fit(0,0) ;
+x1 = .5w+ 1.5u ;
+if serifs: pickup crisp.nib; pos1(hair,-25);
+pos2(.8[vair,stem],45) ; pos3(vair,140) ;
+x1 = x2+.5u ; y2 = .8[y1,y5] ;
+ rt x3l = w ; y3 = .4[y5,y1] ;
+ x5 = 2/5[x2,x3] ; bot y5 =-d ;
+pos5(.6[vair,stem],90) ;
+bot y1 = o ;
+lft x4l = hround(x1-u) ; y4 = .5[y1,y2] ;
+pos4(.4[hair,stem],0) ;
+filldraw stroke z1e ..tension 1.2 .. z4e ..z2e .. z5e ..tension 1.2 .. z3e ;
+fi
+penlabels(1,2,3,4,5);
+endchar ;
+
+endinput;
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/cs/csb10.mf b/Master/texmf-dist/fonts/source/public/cs/csb10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csb10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csb12.mf b/Master/texmf-dist/fonts/source/public/cs/csb12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csb12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csb17.mf b/Master/texmf-dist/fonts/source/public/cs/csb17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csb17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csb5.mf b/Master/texmf-dist/fonts/source/public/cs/csb5.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csb5.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csb6.mf b/Master/texmf-dist/fonts/source/public/cs/csb6.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csb6.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csb7.mf b/Master/texmf-dist/fonts/source/public/cs/csb7.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csb7.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csb8.mf b/Master/texmf-dist/fonts/source/public/cs/csb8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csb8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csb9.mf b/Master/texmf-dist/fonts/source/public/cs/csb9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csb9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbx10.mf b/Master/texmf-dist/fonts/source/public/cs/csbx10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbx10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbx12.mf b/Master/texmf-dist/fonts/source/public/cs/csbx12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbx12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbx5.mf b/Master/texmf-dist/fonts/source/public/cs/csbx5.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbx5.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbx6.mf b/Master/texmf-dist/fonts/source/public/cs/csbx6.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbx6.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbx7.mf b/Master/texmf-dist/fonts/source/public/cs/csbx7.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbx7.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbx8.mf b/Master/texmf-dist/fonts/source/public/cs/csbx8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbx8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbx9.mf b/Master/texmf-dist/fonts/source/public/cs/csbx9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbx9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxsl10.mf b/Master/texmf-dist/fonts/source/public/cs/csbxsl10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxsl10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxsl12.mf b/Master/texmf-dist/fonts/source/public/cs/csbxsl12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxsl12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxsl5.mf b/Master/texmf-dist/fonts/source/public/cs/csbxsl5.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxsl5.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxsl6.mf b/Master/texmf-dist/fonts/source/public/cs/csbxsl6.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxsl6.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxsl7.mf b/Master/texmf-dist/fonts/source/public/cs/csbxsl7.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxsl7.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxsl8.mf b/Master/texmf-dist/fonts/source/public/cs/csbxsl8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxsl8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxsl9.mf b/Master/texmf-dist/fonts/source/public/cs/csbxsl9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxsl9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxti10.mf b/Master/texmf-dist/fonts/source/public/cs/csbxti10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxti10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxti12.mf b/Master/texmf-dist/fonts/source/public/cs/csbxti12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxti12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csbxti17.mf b/Master/texmf-dist/fonts/source/public/cs/csbxti17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csbxti17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cscode.mf b/Master/texmf-dist/fonts/source/public/cs/cscode.mf
new file mode 100644
index 00000000000..ee9ce725837
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cscode.mf
@@ -0,0 +1,201 @@
+% This is an auxiliary file which prepares reading a CM
+% parametric file using method of
+% Bogus\l{}aw Jackowski \& Marek Ry\'cko
+% ---------------------------------------------------------------------------
+% Copyright (C) 1991--1998 Petr Novak <Petr.Novak@internet.cz>
+% Karel Horak <horakk@cesnet.cz>
+% Ladislav Lhotka <lhotka@jcu.cz>
+% Petr Olsak <olsak@math.feld.cvut.cz>
+%
+% The files included in this directory are the METAFONT sources
+% for CSfonts. It is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as
+% published by the Free Software Foundation; either version 2 of
+% the License, or (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+if unknown cmbase: input cmbase fi
+
+% the following codes correspond to the ISO-Latin2
+numeric lowc[];
+cs_shift = 0; cs_uc = -32;
+%
+for $=225,232,239,236,224,252,237,249,229,197,246,242,243,244,228,248,
+ 185,187,250,233,253,190,184: lowc[$+cs_uc]=$+cs_shift;
+endfor
+lowc[165]:=181;
+lowc[169]:=185;
+lowc[171]:=187;
+lowc[174]:=190;
+%
+ cs_aa =225+cs_shift; cs_AA=cs_aa+cs_uc;
+ cs_cz =232+cs_shift; cs_CZ=cs_cz+cs_uc;
+ cs_dj =239+cs_shift; cs_DJ=cs_dj+cs_uc;
+ cs_ie =236+cs_shift; cs_IE=cs_ie+cs_uc;
+ cs_rr =224+cs_shift; cs_RR=cs_rr+cs_uc;
+ cs_ue =252+cs_shift; cs_UE=cs_ue+cs_uc;
+ cs_ii =237+cs_shift; cs_II=cs_ii+cs_uc;
+ cs_ou =249+cs_shift; cs_OU=cs_ou+cs_uc;
+ cs_ll =229+cs_shift; cs_LL=cs_ll+cs_uc;
+ cs_lj =181; cs_LJ=165;
+ cs_oe =246+cs_shift; cs_OE=cs_oe+cs_uc;
+ cs_nj =242+cs_shift; cs_NJ=cs_nj+cs_uc;
+ cs_oo =243+cs_shift; cs_OO=cs_oo+cs_uc;
+ cs_uo =244+cs_shift; cs_UO=cs_uo+cs_uc;
+ cs_ae =228+cs_shift; cs_AE=cs_ae+cs_uc;
+ cs_rz =248+cs_shift; cs_RZ=cs_rz+cs_uc;
+ cs_sh =185+cs_shift; cs_SH=169;
+ cs_tj =187+cs_shift; cs_TJ=171;
+ cs_uu =250+cs_shift; cs_UU=cs_uu+cs_uc;
+ cs_ee =233+cs_shift; cs_EE=cs_ee+cs_uc;
+ cs_yy =253+cs_shift; cs_YY=cs_yy+cs_uc;
+ cs_zh =190+cs_shift; cs_ZH=174;
+ cs_ax =184+cs_shift; cs_AX=cs_ax+cs_uc;
+% additional characters
+
+ single_opening_quote:=240; % ,
+ single_closing_quote:=241; % `
+ opening_quotes:=254; % ,,
+ closing_quotes:=255; % ``
+ french_opening_quotes:=158; % <<
+ french_closing_quotes:=159; % >>
+ oneperthousand:=141; %.
+ ogonek:=157;
+ cs_hyph = 156; %% ^^c4(ý) ýý> ^^9c in *.tcp is recommended
+
+%
+% % the following codes correspond to the Cork scheme
+% numeric lowc[];
+% cs_shift = 128; cs_uc = -32;
+%
+% for $=97,66,35,36,37,47,71,124,109,55,40,41,118,44,115,116,100,48,50,
+% 52,122,86,105,88,125,58: lowc[$+cs_shift+cs_uc]=$+cs_shift;
+% endfor
+%
+% cs_aa = 97+cs_shift; cs_AA=cs_aa+cs_uc;
+% cs_qb = 66+cs_shift;%
+% cs_cz = 35+cs_shift; cs_CZ=cs_cz+cs_uc;
+% cs_dj = 36+cs_shift; cs_DJ=cs_dj+cs_uc;
+% cs_ie = 37+cs_shift; cs_IE=cs_ie+cs_uc;
+% cs_rr = 47+cs_shift; cs_RR=cs_rr+cs_uc;
+% cs_qg = 71+cs_shift;%
+% cs_ue = 124+cs_shift; cs_UE=cs_ue+cs_uc;
+% cs_ii = 109+cs_shift; cs_II=cs_ii+cs_uc;
+% cs_ou = 55+cs_shift; cs_OU=cs_ou+cs_uc;
+% cs_ll = 40+cs_shift; cs_LL=cs_ll+cs_uc;
+% cs_lj = 41+cs_shift; cs_LJ=cs_lj+cs_uc;
+% cs_oe = 118+cs_shift; cs_OE=cs_oe+cs_uc;
+% cs_nj = 44+cs_shift; cs_NJ=cs_nj+cs_uc;
+% cs_oo = 115+cs_shift; cs_OO=cs_oo+cs_uc;
+% cs_uo = 116+cs_shift; cs_UO=cs_uo+cs_uc;
+% cs_ae = 100+cs_shift; cs_AE=cs_ae+cs_uc;
+% cs_rz = 48+cs_shift; cs_RZ=cs_rz+cs_uc;
+% cs_sh = 50+cs_shift; cs_SH=cs_sh+cs_uc;
+% cs_tj = 52+cs_shift; cs_TJ=cs_tj+cs_uc;
+% cs_uu = 122+cs_shift; cs_UU=cs_uu+cs_uc;
+% cs_qv = 86+cs_shift;%
+% cs_ee = 105+cs_shift; cs_EE=cs_ee+cs_uc;
+% cs_ax = 88+cs_shift; cs_AX=cs_ax+cs_uc;
+% cs_yy = 125+cs_shift; cs_YY=cs_yy+cs_uc;
+% cs_zh = 58+cs_shift; cs_ZH=cs_zh+cs_uc;
+
+% % additional characters
+
+% single_opening_quote:=240; % ,
+% single_closing_quote:=241; % `
+% opening_quotes:=254; % ,,
+% closing_quotes:=255; % ``
+% french_opening_quotes:=248; % <<
+% french_closing_quotes:=249; % >>
+% oneperthousand:=141; %.
+% ogonek:=157;
+% cs_hyph = 156; %% ^^c4(ý) ýý> ^^9c in *.tcp is recommended
+
+
+if unknown improve_kerns: boolean improve_kerns; improve_kerns=true; fi;
+
+% redefinition of generate
+% ---------------------------------------------------------------------------
+
+string driver_name,ss; numeric ii;
+
+vardef generate @# = driver_name:=str @#; endgroup enddef;
+
+vardef use_driver @# =
+% |@#| is either empty or equals to the pt-size of the driver
+ if unknown param_base:
+% in sophisticated applications a user may wish to specify
+% |param_base| prior to calling |use_driver|:
+ string param_base; param_base=jobname;
+ string new_param_b;
+ if (substring(0,2) of param_base) = "cs":
+ new_param_b := "cm"&substring(2,8) of param_base;
+ elseif (substring(1,3) of param_base) = "cs":
+ new_param_b := substring(0,1) of param_base&"cm"&
+ substring(3,8) of param_base;
+ elseif (substring(2,4) of param_base) = "cs":
+ new_param_b := substring(0,2) of param_base&"cm"&
+ substring(4,8) of param_base;
+ fi;
+ param_base := new_param_b;
+ fi
+ ii:=0;
+ forever:
+ ii:=ii+1;
+ ss:=substring(length(param_base)-ii,length(param_base)-ii+1) of param_base;
+ exitif (ss<"0") or (ss>"9");
+ endfor;
+ ii:=ii-1;
+ if str@# <> "":
+ numeric scale;
+ scale=scantokens(
+ substring(length(param_base)-ii,length(param_base)) of param_base)/@#;
+ numeric true_pt#; true_pt#=pt#; pt#:=scale*true_pt#;
+% |ogonek_pen#| is the only sharp extra PL parameter; it must be treated
+% differently:
+% if known ogonek_pen#: ogonek_pen#:=scale*ogonek_pen#; fi
+ scantokens(
+ "input "&(substring(0,length(param_base)-ii) of param_base)&str @#);
+ pt#:=true_pt#;
+ else:
+ scantokens("input "&param_base);
+ fi
+ font_identifier:=substring(0,length(param_base)-ii) of param_base;
+ scantokens("input "&
+ if driver_name="roman": "kmroman"
+ elseif driver_name="sroman": "kmroman"
+ elseif driver_name="textit": "kmtextit"
+ elseif driver_name="csc": "kmcsc"
+ elseif driver_name="texset": "kmtexset"
+ elseif driver_name="title": "kmtitle"
+ else: driver_name fi);
+enddef;
+
+% The proportion of |vair/stem| depends drastically on resolution;
+% e.g., for 300 dpi cmbx10 |vair=1| and |stem=5|, for 746 dpi cmbx10
+% (300 dpi, magstep 5) |vair=4| and |stem=12|, while, sharply speaking,
+% |stem#/vair#=3.15381|; hence a new variable |xvair| has been introduced
+% to be used in some crucial places instead of |vair|.
+vardef xvair = stem*vair#/stem# enddef;
+
+%%% italcorr corrital
+% correction of italic correction (cf. D. E. Knuth, The \MF{}book, p. 105):
+vardef corrital z suffix $ =
+% |z$| is the rightmost position of a pen (in accent path)
+ if not monospace:
+ save charic_; charic_=(rt(x$)-r)/hppp+slant*y$/vppp+.5u#;
+ if charic_>charic: charic:=charic_; fi
+%| else: %| |charic=mono_charic#|, do nothing
+ fi
+enddef;
+
+endinput;
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/cs/cscsc10.mf b/Master/texmf-dist/fonts/source/public/cs/cscsc10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cscsc10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cscsc12.mf b/Master/texmf-dist/fonts/source/public/cs/cscsc12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cscsc12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cscsc17.mf b/Master/texmf-dist/fonts/source/public/cs/cscsc17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cscsc17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cscsc8.mf b/Master/texmf-dist/fonts/source/public/cs/cscsc8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cscsc8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cscsc9.mf b/Master/texmf-dist/fonts/source/public/cs/cscsc9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cscsc9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csdunh10.mf b/Master/texmf-dist/fonts/source/public/cs/csdunh10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csdunh10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csdunh12.mf b/Master/texmf-dist/fonts/source/public/cs/csdunh12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csdunh12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csdunh17.mf b/Master/texmf-dist/fonts/source/public/cs/csdunh17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csdunh17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csdunh5.mf b/Master/texmf-dist/fonts/source/public/cs/csdunh5.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csdunh5.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csdunh6.mf b/Master/texmf-dist/fonts/source/public/cs/csdunh6.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csdunh6.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csdunh7.mf b/Master/texmf-dist/fonts/source/public/cs/csdunh7.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csdunh7.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csdunh8.mf b/Master/texmf-dist/fonts/source/public/cs/csdunh8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csdunh8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csdunh9.mf b/Master/texmf-dist/fonts/source/public/cs/csdunh9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csdunh9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csff10.mf b/Master/texmf-dist/fonts/source/public/cs/csff10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csff10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csfi10.mf b/Master/texmf-dist/fonts/source/public/cs/csfi10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csfi10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csfib10.mf b/Master/texmf-dist/fonts/source/public/cs/csfib10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csfib10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csfib12.mf b/Master/texmf-dist/fonts/source/public/cs/csfib12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csfib12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csfib8.mf b/Master/texmf-dist/fonts/source/public/cs/csfib8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csfib8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csfib9.mf b/Master/texmf-dist/fonts/source/public/cs/csfib9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csfib9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cshachel.mf b/Master/texmf-dist/fonts/source/public/cs/cshachel.mf
new file mode 100644
index 00000000000..861fae7ec3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cshachel.mf
@@ -0,0 +1,187 @@
+% This is cshachel.mf in text format, as of 89/02/19
+% written by P. Novak, Prague
+% Czech and slovak letters with accents
+% Lowercase roman letters with hachek accent
+
+cmchar "The letter c with hachek";
+beginchar(cs_cz,8u#,lc_hachek_height#,0);
+italcorr h#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5);
+lc_hachek_accent(if serifs: 0.5[0.5[x3l,x3],x0r] else: x2 fi);
+endchar; %% changed from ..[x3r,x3]..
+
+cmchar "The letter e with hachek";
+beginchar(cs_ie,7.25u#+max(.75u#,.5curve#),lc_hachek_height#,0);
+italcorr h#*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5);
+lc_hachek_accent(x2);
+endchar;
+
+cmchar "The letter n with hachek";
+beginchar(cs_nj,10u#,lc_hachek_height#,0);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=x_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4);
+lc_hachek_accent(1/2[x1r,x.a1]);
+endchar;
+
+cmchar "The letter r with hachek";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(cs_rz,if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,
+ lc_hachek_height#,0);
+italcorr h#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=x_height+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,x_height]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=x_height+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6);
+lc_hachek_accent(0.5[x1,x4]);
+endchar;
+
+cmchar "The letter s with hachek";
+beginchar(cs_sh,7.1u#,lc_hachek_height#,0);
+italcorr h#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,x_height); slope:=-x_height/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=x_height+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,x_height]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93x_height+1.5oo); bot y8r=vround .1x_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+lc_hachek_accent(0.5[x3l,x1l]);
+endchar;
+
+cmchar "The letter z with hachek";
+beginchar(cs_zh,8u#,lc_hachek_height#,0);
+italcorr h#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=x_height; y2=min(y1,x_height-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=x_height; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8);
+lc_hachek_accent(1/2[x6r,x1r]);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cs/cshacheu.mf b/Master/texmf-dist/fonts/source/public/cs/cshacheu.mf
new file mode 100644
index 00000000000..5b257e92b46
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cshacheu.mf
@@ -0,0 +1,246 @@
+% This is cshacheu.mf in text format, as of 89/02/19
+% written by P. Novak, Prague
+% Czech and slovak letters with accents
+% Uppercase roman letters with hachek accent
+
+cmchar "The letter C with hachek";
+if serifs: beginchar(cs_CZ,13u#,uc_acc_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=cap_height+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6cap_height,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(cap_height-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=cap_height+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(cs_CZ,11.5u#,uc_acc_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95cap_height+o; top y2r=cap_height+o; y3=.5cap_height;
+ bot y4r=-o; bot y5r=vround .08cap_height-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6);
+uc_hachek_accent(x2l);
+%uc_hachek_accent(0.6[x3,x1]); %% changed from .5 to .65 % 25/12/91
+endchar; %% and to .6 % 3/1/92 %% changed via lc ç 11/3/92
+
+cmchar "The letter D with hachek";
+beginchar(cs_DJ,13.5u#,uc_acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7);
+uc_hachek_accent(1/3[x1l,x5r]);
+endchar;
+
+cmchar "The letter E with hachek";
+beginchar(cs_IE,12u#-width_adj#,uc_acc_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h':=vround(cap_height-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h'; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h'; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h',beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9);
+uc_hachek_accent(if serifs: 0.4[x1l,x.e1] else: .5 [x1l,x4] fi);
+endchar;
+
+
+cmchar "The letter N with hachek";
+beginchar(cs_NJ,13u#+width_adj#,uc_acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=cap_height; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=cap_height; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=cap_height-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7);
+uc_hachek_accent(.5[x2,x3]);
+endchar;
+
+cmchar "The letter R with hachek";
+beginchar(cs_RZ,if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,uc_acc_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5cap_height+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10);
+uc_hachek_accent(.9[x1,x6l]); %(1/3[x1l,x5r]); oprava 24.10.92
+endchar;
+
+cmchar "The letter S with hachek";
+beginchar(cs_SH,10u#,uc_acc_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,cap_height);
+slope:=-cap_height/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=cap_height+o; bot y7r=-o;
+y0=.52cap_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3cap_height+1; top y8=vround 1/3cap_height-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93cap_height+o; bot y8r=vround .1cap_height-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+uc_hachek_accent(x0); %(0.5[x3l,x1l]); oprava 24.10.92
+endchar;
+
+cmchar "The letter T with hachek";
+beginchar(cs_TJ,13u#-width_adj#,uc_acc_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h':=vround(cap_height-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h'; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h'; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6);
+uc_hachek_accent(x1);
+endchar;
+
+
+cmchar "The letter Z with hachek";
+beginchar(cs_ZH,11u#,uc_acc_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=cap_height; y2=min(y1,cap_height-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=cap_height; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8);
+uc_hachek_accent(1/2[x6,x1]);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cs/cshyph.mf b/Master/texmf-dist/fonts/source/public/cs/cshyph.mf
new file mode 100644
index 00000000000..05719229908
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cshyph.mf
@@ -0,0 +1,13 @@
+%% this file defines the same hyphenchar at the position
+%% cs_hyph=156 for right breaking Czech hyphenated words (je-li)
+
+cmchar "Hyphen"; %% adjust_fit changed
+beginchar(cs_hyph,6u#,x_height#,0); %% for case of spaced chars
+italcorr .5x_height#*slant-.5u#;
+if ligs<=1: adjust_fit(-letter_fit#,-letter_fit#) else: adjust_fit(0,0) fi;
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cs/csiacutl.mf b/Master/texmf-dist/fonts/source/public/cs/csiacutl.mf
new file mode 100644
index 00000000000..1299d837e97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csiacutl.mf
@@ -0,0 +1,125 @@
+% This is csiacutl.mf in text format, as of 89/05/08
+% written by P. Novak, Prague
+% Czech and slovak italic letters with accents
+% Lowercase italic letters with acute accent
+
+cmchar "Italic letter a with acute";
+beginchar(cs_aa,9u#,lc_acute_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7);
+lc_acute_accent(x1+.75u);
+endchar;
+
+cmchar "Italic letter e with acute";
+beginchar(cs_ee,8u#,lc_acute_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6);
+lc_acute_accent(x2+.75u);
+endchar;
+
+
+cmchar "Italic letter i with acute";
+beginchar(cs_ii,5u#,lc_acute_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+penlabels(0,1,2,3,4,5);
+lc_acute_accent(x1);
+endchar;
+
+
+cmchar "Italic letter o with acute";
+beginchar(cs_oo,9u#,lc_acute_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(1,2,3,4);
+% lc_acute_accent(x1); %% Corrected by P.O. 06.97
+lc_acute_accent(x1+u);
+endchar;
+
+cmchar "Italic letter r with acute";
+beginchar(cs_rr,5.5u#+max(1.75u#,flare#),lc_acute_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+hook_in(0,1,2); % opening hook
+filldraw circ_stroke z3e--z2e; % left stem
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=x_height+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+penlabels(0,1,2,3,4,5,6);
+lc_acute_accent(.5[x1,x4]);
+endchar;
+
+cmchar "Italic letter u with acute";
+beginchar(cs_uu,9.5u#,lc_acute_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9);
+lc_acute_accent(x4);
+endchar;
+
+cmchar "Italic letter y with acute";
+beginchar(cs_yy,8.5u#,lc_acute_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10);
+lc_acute_accent(x4);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cs/csihachl.mf b/Master/texmf-dist/fonts/source/public/cs/csihachl.mf
new file mode 100644
index 00000000000..ea9c08de5f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csihachl.mf
@@ -0,0 +1,114 @@
+% This is csihachl.mf in text format, as of 89/05/08
+% written by P. Novak, Prague
+% Czech and slovak italic letters with accents
+% Lowercase italic letters with hachek accent
+
+cmchar "Italic letter c with hachek";
+beginchar(cs_cz,8u#,lc_hachek_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,x_height]; top y2r=x_height+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6);
+lc_hachek_accent(.6[x3,x1]);
+endchar;
+
+cmchar "Italic letter e";
+beginchar(cs_ie,8u#,lc_hachek_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=x_height+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6);
+lc_hachek_accent(0.6[x3,x1r]);
+endchar;
+
+cmchar "Italic letter n with hachek";
+beginchar(cs_nj,10u#,lc_hachek_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7);
+lc_hachek_accent(1/2[x1r,x3r]);
+endchar;
+
+cmchar "Italic letter r with hachek";
+beginchar(cs_rz,5.5u#+max(1.75u#,flare#),lc_hachek_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+hook_in(0,1,2); % opening hook
+filldraw circ_stroke z3e--z2e; % left stem
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=x_height+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+penlabels(0,1,2,3,4,5,6);
+lc_hachek_accent(.5[x1,x4]);
+endchar;
+
+cmchar "Italic letter s with hachek";
+beginchar(cs_sh,5.25u#+max(1.75u#,flare#),lc_hachek_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,x_height); slope:=-x_height/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=x_height+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78x_height; y9=.25x_height;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10);
+lc_hachek_accent(x0);
+endchar;
+
+cmchar "Italic letter z with hachek";
+beginchar(cs_zh,5.5u#+max(1.5u#,stem#),lc_hachek_height#,0);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78x_height; top y2l=top y4=x_height+oo; y3=.825x_height;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175x_height; bot y8=.31x_height;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8);
+lc_hachek_accent(1/2[x2,x3]);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cs/csinch.mf b/Master/texmf-dist/fonts/source/public/cs/csinch.mf
new file mode 100644
index 00000000000..122c0853b0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csinch.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/cs/csiothrl.mf b/Master/texmf-dist/fonts/source/public/cs/csiothrl.mf
new file mode 100644
index 00000000000..21b2fe424bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csiothrl.mf
@@ -0,0 +1,168 @@
+% This is csiothrl.mf in text format, as of 89/05/08
+% written by P. Novak, Prague
+% Czech and slovak italic letters with accents
+% Remaining lower case italic letters with different accents
+
+cmchar "Italic letter o with circumflex";
+beginchar(cs_uo,9u#,lc_acute_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4);
+lc_circumflex(x1);
+endchar;
+
+cmchar "Italic letter u with circle";
+beginchar(cs_ou,9.5u#,lc_circle_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9);
+lc_circle_accent(0.5w);
+endchar;
+
+cmchar "Italic letter a with grave";
+beginchar(cs_ax,9u#,lc_acute_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7);
+lc_grave_accent(x1);
+endchar;
+
+cmchar "Italic letter l with acute";
+beginchar(cs_ll,4u#,lc_acute_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=asc_height; x1=x2; filldraw stroke z1e--z2'e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4);
+uc_acute_accent(x1);
+endchar;
+
+cmchar "Italic letter t with hachek";
+beginchar(cs_tj,5.5u#,lc_acute_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem);
+y1+.5stem=min(asc_height,10/7x_height)+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+filldraw circ_stroke z1e--z2e; % stem
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6);
+dtl_hachek(x6)(y1+.5dot_size);
+endchar;
+
+cmchar "Italic letter d with hachek";
+beginchar(cs_dj,9u#,lc_acute_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=asc_height; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7);
+dtl_hachek(x4r+u+.5dot_size)(y4);
+endchar;
+
+
+cmchar "Italic letter l with hachek";
+beginchar(cs_lj,4u#,lc_acute_height#,0);
+l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=asc_height; x1=x2; filldraw stroke z1e--z2'e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4);
+dtl_hachek(x1r+u+.5dot_size)(y1);
+endchar;
+
+cmchar "Italic letter a with trema";
+beginchar(cs_ae,9u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98x_height;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7);
+lc_trema_accent(x4-4u,x4);
+endchar;
+
+
+cmchar "Italic letter o with trema";
+beginchar(cs_oe,9u#,lc_trema_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4);
+lc_trema_accent(x1-2u,x1+2u);
+endchar;
+
+cmchar "Italic letter u with trema";
+beginchar(cs_ue,9.5u#,lc_trema_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9);
+lc_trema_accent(x2+.5u,x6-.5u);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cs/csitt10.mf b/Master/texmf-dist/fonts/source/public/cs/csitt10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csitt10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csitt12.mf b/Master/texmf-dist/fonts/source/public/cs/csitt12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csitt12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csitt17.mf b/Master/texmf-dist/fonts/source/public/cs/csitt17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csitt17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csitt8.mf b/Master/texmf-dist/fonts/source/public/cs/csitt8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csitt8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csitt9.mf b/Master/texmf-dist/fonts/source/public/cs/csitt9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csitt9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csotherl.mf b/Master/texmf-dist/fonts/source/public/cs/csotherl.mf
new file mode 100644
index 00000000000..3fe51c32a80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csotherl.mf
@@ -0,0 +1,288 @@
+% This is csotherl.mf in text format, as of 89/05/08
+% written by P. Novak, Prague
+% Czech and slovak letters with accents
+% Remaining lower case letters with different accents
+
+cmchar "The letter o with circumflex";
+beginchar(cs_uo,9u#,lc_acute_height#,0);
+italcorr .7h#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4);
+lc_circumflex(x1);
+endchar;
+
+cmchar "The letter u with circle";
+beginchar(cs_ou,10u#,lc_circle_height#,0);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6);
+lc_circle_accent(.5w);
+endchar;
+
+
+cmchar "The letter a with grave";
+beginchar(cs_ax,9u#,lc_acute_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr h#*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+lc_grave_accent(x3+0.75u);
+endchar;
+
+cmchar "The letter l with acute";
+beginchar(cs_ll,5u#,uc_acc_height#,0);
+l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=asc_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2);
+uc_acute_accent(x1);
+endchar;
+
+cmchar "The letter t with hachek";
+beginchar(cs_tj,6u#+max(u#,.5stem#),lc_acute_height#,0);
+hh' = min(asc_height,if hefty:9/7 else:10/7 fi\\ x_height);
+italcorr lc_acute_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=hh';
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=hh';
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8);
+dtl_hachek(x8)(y1+.5dot_diam);
+endchar;
+
+cmchar "The letter d with hachek";
+beginchar(cs_dj,10u#+serif_fit#,lc_acute_height#,0);
+italcorr lc_acute_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=asc_height;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,asc_height)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7);
+dtl_hachek(x0r+u+.5dot_diam)(y1);
+endchar;
+
+
+cmchar "The letter l with hachek";
+beginchar(cs_lj,5u#,uc_acc_height#,0);
+l_width#:=5u#+2serif_fit#;
+italcorr lc_acute_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=asc_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2);
+dtl_hachek(x1r+u+.5dot_diam)(y1);
+endchar;
+
+cmchar "The letter a with trema";
+beginchar(cs_ae,9u#,lc_trema_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr h#*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=x_height+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,x_height]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,x_height];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+lc_trema_accent(x4-4u,x4);
+endchar;
+
+
+cmchar "The letter o with trema";
+beginchar(cs_oe,9u#,lc_trema_height#,0);
+italcorr .7h#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4);
+lc_trema_accent(x1-2u,x1+2u);
+endchar;
+
+cmchar "The letter u with trema";
+beginchar(cs_ue,10u#,lc_trema_height#,0);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6);
+lc_trema_accent(x1+.5u,x3-.5u);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cs/csotheru.mf b/Master/texmf-dist/fonts/source/public/cs/csotheru.mf
new file mode 100644
index 00000000000..50960cce2a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csotheru.mf
@@ -0,0 +1,167 @@
+% This is csotheru.mf in text format, as of 89/05/08
+% written by P. Novak, Prague
+% Czech and slovak letters with accents
+% Remaining upper case letters with different accents
+
+cmchar "The letter O with circumflex";
+beginchar(cs_UO,14u#-width_adj#,uc_acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4);
+uc_circumflex(x1);
+endchar;
+
+cmchar "The letter U with circle";
+beginchar(cs_OU,13u#+.5width_adj#,uc_acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5);
+% uc_circle_accent(.5w); %% Corrected by P.O. 06.97
+uc_circle_accent(.5w+.35u);
+endchar;
+
+
+cmchar "The letter A with grave";
+beginchar(cs_AX,13u#,uc_acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6);
+uc_grave_accent(x2r);
+endchar;
+
+cmchar "The letter L with hachek";
+beginchar(cs_LJ,11u#-width_adj#,uc_acc_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,u#); penlabels(1,2,3,4);
+dtl_hachek(x4-dot_diam)(y1+.5dot_diam);
+endchar;
+
+cmchar "The letter A with trema";
+beginchar(cs_AE,13u#,uc_acc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6);
+uc_trema_accent(.5w-2u,.5w+2u);
+endchar;
+
+cmchar "The letter O with trema";
+beginchar(cs_OE,14u#-width_adj#,uc_acc_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4);
+uc_trema_accent(.5w-2u,.5w+2u);
+endchar;
+
+cmchar "The letter U with trema";
+beginchar(cs_UE,13u#+.5width_adj#,uc_acc_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=cap_height; y2=y4=1/3cap_height; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5);
+uc_trema_accent(x1+.5u,x5-.5u);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/cs/csr10.mf b/Master/texmf-dist/fonts/source/public/cs/csr10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csr10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csr12.mf b/Master/texmf-dist/fonts/source/public/cs/csr12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csr12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csr17.mf b/Master/texmf-dist/fonts/source/public/cs/csr17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csr17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csr5.mf b/Master/texmf-dist/fonts/source/public/cs/csr5.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csr5.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csr6.mf b/Master/texmf-dist/fonts/source/public/cs/csr6.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csr6.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csr7.mf b/Master/texmf-dist/fonts/source/public/cs/csr7.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csr7.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csr8.mf b/Master/texmf-dist/fonts/source/public/cs/csr8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csr8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csr9.mf b/Master/texmf-dist/fonts/source/public/cs/csr9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csr9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssl10.mf b/Master/texmf-dist/fonts/source/public/cs/cssl10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssl10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssl12.mf b/Master/texmf-dist/fonts/source/public/cs/cssl12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssl12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssl17.mf b/Master/texmf-dist/fonts/source/public/cs/cssl17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssl17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssl5.mf b/Master/texmf-dist/fonts/source/public/cs/cssl5.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssl5.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssl6.mf b/Master/texmf-dist/fonts/source/public/cs/cssl6.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssl6.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssl7.mf b/Master/texmf-dist/fonts/source/public/cs/cssl7.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssl7.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssl8.mf b/Master/texmf-dist/fonts/source/public/cs/cssl8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssl8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssl9.mf b/Master/texmf-dist/fonts/source/public/cs/cssl9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssl9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssltt10.mf b/Master/texmf-dist/fonts/source/public/cs/cssltt10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssltt10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssltt12.mf b/Master/texmf-dist/fonts/source/public/cs/cssltt12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssltt12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssltt8.mf b/Master/texmf-dist/fonts/source/public/cs/cssltt8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssltt8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cssltt9.mf b/Master/texmf-dist/fonts/source/public/cs/cssltt9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cssltt9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csss10.mf b/Master/texmf-dist/fonts/source/public/cs/csss10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csss10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csss12.mf b/Master/texmf-dist/fonts/source/public/cs/csss12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csss12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csss17.mf b/Master/texmf-dist/fonts/source/public/cs/csss17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csss17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csss8.mf b/Master/texmf-dist/fonts/source/public/cs/csss8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csss8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csss9.mf b/Master/texmf-dist/fonts/source/public/cs/csss9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csss9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssbx10.mf b/Master/texmf-dist/fonts/source/public/cs/csssbx10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssbx10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssbx12.mf b/Master/texmf-dist/fonts/source/public/cs/csssbx12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssbx12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssbx17.mf b/Master/texmf-dist/fonts/source/public/cs/csssbx17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssbx17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssbx9.mf b/Master/texmf-dist/fonts/source/public/cs/csssbx9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssbx9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssdc10.mf b/Master/texmf-dist/fonts/source/public/cs/csssdc10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssdc10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssi10.mf b/Master/texmf-dist/fonts/source/public/cs/csssi10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssi10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssi12.mf b/Master/texmf-dist/fonts/source/public/cs/csssi12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssi12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssi17.mf b/Master/texmf-dist/fonts/source/public/cs/csssi17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssi17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssi8.mf b/Master/texmf-dist/fonts/source/public/cs/csssi8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssi8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssi9.mf b/Master/texmf-dist/fonts/source/public/cs/csssi9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssi9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssq8.mf b/Master/texmf-dist/fonts/source/public/cs/csssq8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssq8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csssqi8.mf b/Master/texmf-dist/fonts/source/public/cs/csssqi8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csssqi8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstcsc10.mf b/Master/texmf-dist/fonts/source/public/cs/cstcsc10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstcsc10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstcsc12.mf b/Master/texmf-dist/fonts/source/public/cs/cstcsc12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstcsc12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstcsc17.mf b/Master/texmf-dist/fonts/source/public/cs/cstcsc17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstcsc17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstex10.mf b/Master/texmf-dist/fonts/source/public/cs/cstex10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstex10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstex8.mf b/Master/texmf-dist/fonts/source/public/cs/cstex8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstex8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstex9.mf b/Master/texmf-dist/fonts/source/public/cs/cstex9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstex9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csti10.mf b/Master/texmf-dist/fonts/source/public/cs/csti10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csti10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csti12.mf b/Master/texmf-dist/fonts/source/public/cs/csti12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csti12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csti17.mf b/Master/texmf-dist/fonts/source/public/cs/csti17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csti17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csti7.mf b/Master/texmf-dist/fonts/source/public/cs/csti7.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csti7.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csti8.mf b/Master/texmf-dist/fonts/source/public/cs/csti8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csti8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csti9.mf b/Master/texmf-dist/fonts/source/public/cs/csti9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csti9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstt10.mf b/Master/texmf-dist/fonts/source/public/cs/cstt10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstt10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstt12.mf b/Master/texmf-dist/fonts/source/public/cs/cstt12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstt12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstt8.mf b/Master/texmf-dist/fonts/source/public/cs/cstt8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstt8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/cstt9.mf b/Master/texmf-dist/fonts/source/public/cs/cstt9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/cstt9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csu10.mf b/Master/texmf-dist/fonts/source/public/cs/csu10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csu10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csu12.mf b/Master/texmf-dist/fonts/source/public/cs/csu12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csu12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csu17.mf b/Master/texmf-dist/fonts/source/public/cs/csu17.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csu17.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csu7.mf b/Master/texmf-dist/fonts/source/public/cs/csu7.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csu7.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csu8.mf b/Master/texmf-dist/fonts/source/public/cs/csu8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csu8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csu9.mf b/Master/texmf-dist/fonts/source/public/cs/csu9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csu9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csvtt10.mf b/Master/texmf-dist/fonts/source/public/cs/csvtt10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csvtt10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csvtt12.mf b/Master/texmf-dist/fonts/source/public/cs/csvtt12.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csvtt12.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csvtt8.mf b/Master/texmf-dist/fonts/source/public/cs/csvtt8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csvtt8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/csvtt9.mf b/Master/texmf-dist/fonts/source/public/cs/csvtt9.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/csvtt9.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/icscsc10.mf b/Master/texmf-dist/fonts/source/public/cs/icscsc10.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/icscsc10.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/icstt8.mf b/Master/texmf-dist/fonts/source/public/cs/icstt8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/icstt8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/ilcsss8.mf b/Master/texmf-dist/fonts/source/public/cs/ilcsss8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/ilcsss8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/ilcsssb8.mf b/Master/texmf-dist/fonts/source/public/cs/ilcsssb8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/ilcsssb8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/ilcsssi8.mf b/Master/texmf-dist/fonts/source/public/cs/ilcsssi8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/ilcsssi8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/kmcsc.mf b/Master/texmf-dist/fonts/source/public/cs/kmcsc.mf
new file mode 100644
index 00000000000..5b611d967ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/kmcsc.mf
@@ -0,0 +1,178 @@
+% Caps and Small Caps in Computer Modern Roman
+% 8-bit characters with Czech accents(Petr Novak)
+% revised and edited 1992-93 (LaLa, 1991, Karel Horak)
+% european quotes and special hyphenchar added
+% special hyphenchar added
+
+
+font_coding_scheme:=if ligs=0: "TeX cs typewriter text"
+ else: "TeX cs text without f-ligatures" fi;
+spanish_shriek=oct"016"; spanish_query=oct"017";
+
+mode_setup; font_setup;
+
+input romanu; % upper case (majuscules)
+input greeku; % upper case greek letters
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to all roman and italic
+input accent; % accents common to roman and italic text
+input romsub; % substitutes for ligatures
+if ligs>0: input comlig; fi % ligatures common with italic
+
+% Czech accented letters
+if unknown acute_sharp: boolean acute_sharp; acute_sharp:=false; fi
+if unknown hach_sharp: boolean hach_sharp; hach_sharp:=false; fi
+
+input csaccent; % definitions of czech and slovak accents
+input csacutu; % uppercase letters with acute accent
+input cshacheu; % uppercase letters with hachek accent
+input csotheru; % uppercase letters with other accents
+input csadded; % european quotes, oneperthousand
+input cshyph; % allows made \hyphenchar\font=156
+%
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+% the following kerns should have been added:
+% - between opening quotes and some letters
+% - between |"."| and |"."| (...)
+% - between |"A"| and |"v"| (Average)
+% - between |"A"| and |"w"| (Awkward or Lem's Awruk)
+% - between |"F"|, |"P"|, |"T"|, |"V"|, |"W"|, |"Y"| and |"."|, |","|
+% but for the sake of compatibility with CM's they would have been
+% inserted only if |improve_kerns=true| (by default |improve_kerns=true|).
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+if improve_kerns: ligtable ".": "." kern -kkk#; fi
+ ligtable "P": "T": cs_TJ: "Y": cs_YY:
+ if improve_kerns: "." kern k#, "," kern k#, fi
+ "a" kern kk#, cs_aa kern kk#, cs_ae kern kk#,
+ "A" kern kk#, cs_AA kern kk#, cs_AE kern kk#;
+ ligtable "F": "V": "W":
+ if improve_kerns: "." kern -u#, "," kern -u#, fi
+ if serifs: "a" kern kkk#, cs_aa kern kkk#,
+ cs_ae kern kkk#, "A" kern kkk#,
+ cs_AA kern kkk#, cs_AE kern kkk#,
+ else: "a" kern kk#, cs_aa kern kk#, cs_ae kern kk#,
+ "A" kern kk#, cs_AA kern kk#, cs_AE kern kk#, fi
+ "K": "X": "o" kern k#, cs_oo kern k#, cs_oe kern k#, cs_uo kern k#,
+ "O" kern k#, cs_OO kern k#, cs_OE kern k#,
+ cs_UO kern k#, "c" kern k#, cs_cz kern k#,
+ "C" kern k#, cs_CZ kern k#, "g" kern k#, "G" kern k#,
+ "q" kern k#, "Q" kern k#;
+ ligtable "O": cs_OO: cs_OE: cs_UO: "D":
+ cs_DJ: "x" kern k#, "X" kern k#, "w" kern k#, "W" kern k#,
+ "a" kern k#, cs_aa kern k#, cs_ae kern k#,
+ "A" kern k#, cs_AA kern k#, cs_AE kern k#,
+ "v" kern k#, "V" kern k#, "y" kern k#,
+ cs_yy kern k#, "Y" kern k#, cs_YY kern k#;
+ ligtable "A": cs_AA: cs_AE:
+ if serifs: "R": cs_RR: cs_RZ: fi
+ "c" kern k#, cs_cz kern k#, "C" kern k#, cs_CZ kern k#,
+ "o" kern k#, cs_oo kern k#, cs_oe kern k#, cs_uo kern k#,
+ "O" kern k#, cs_OO kern k#, cs_OE kern k#,
+ cs_UO kern k#, "g" kern k#, "G" kern k#,
+ "u" kern k#, cs_uu kern k#, cs_ue kern k#, cs_ou kern k#,
+ "U" kern k#, cs_UU kern k#, cs_UE kern k#,
+ cs_OU kern k#, "q" kern k#, "Q" kern k#,
+ "L": cs_LL: cs_LJ: "T" kern kk#, cs_TJ kern kk#,
+ "t" kern kk#, cs_tj kern k#, "Y" kern kk#, cs_YY kern kk#,
+ "y" kern kk#, cs_yy kern kk#, "V" kern kkk#, "v" kern kkk#,
+ "W" kern kkk#, "w" kern kkk#;
+ ligtable "I": "I" kern -k#; fi % Richard III
+% % ligature programs for |"-"|, |"`"|, and |"'"| are in the {\tt comlig} file
+
+%%% fine lower
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+asc_height:=cap_height; % added 18/3/93 kh
+font_setup; % now try again with |lower| settings
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+code_offset:=ASCII"a" - ASCII"A";
+
+init_accents;
+
+input romanu; % majuscules (in lowercase positions)
+code_offset:=-3;
+input romspu; % \AE, \OE, \O\ (in positions of \ae, \oe, \o)
+code_offset:=0;
+input cscspu; % substitutes for the remaining characters of romspl
+extra_endchar:=extra_endchar&";charcode:=lowc[charcode]";
+input csacutu; % upper case letters with acute in lowercase positions
+input cshacheu; % hachek accented letters
+input csotheru; % other accented letters
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+if not monospace:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "p": "t": cs_tj: "y": cs_yy:
+ if improve_kerns: "." kern k#, "," kern k#, fi
+ "a" kern kk#, cs_aa kern kk#,
+ cs_ae kern kk#;
+ ligtable "f": "v": "w":
+ if improve_kerns: "." kern -u#, "," kern -u#, fi
+ if serifs: "a" kern kkk#, cs_aa kern kkk#,
+ cs_ae kern kkk# else: "a" kern kk#, cs_aa kern kk#,
+ cs_ae kern kk#\\fi,
+ "k": "x": "o" kern k#, cs_oo kern k#, cs_oe kern k#, cs_uo kern k#,
+ "c" kern k#, cs_cz kern k#, "g" kern k#, "q" kern k#;
+ ligtable "o": cs_oo: cs_oe: cs_uo: "d": cs_dj: "x" kern k#,
+ "w" kern k#, "a" kern k#, cs_aa kern k#, cs_ae kern k#,
+ "v" kern k#, "y" kern k#, cs_yy kern k#;
+ ligtable "a": cs_aa: cs_ae:
+ if improve_kerns: "'" kern kk#, fi
+ if serifs: "r": cs_rr: cs_rz: fi
+ "c" kern k#, cs_cz kern k#, "o" kern k#, cs_oo kern k#, cs_oe kern k#,
+ cs_uo kern k#, "g" kern k#, "u" kern k#, cs_uu kern k#, cs_ue kern k#,
+ cs_ou kern k#, "q" kern k#, "l": cs_ll: cs_lj: "'" kern kk#,
+ "t" kern kk#, cs_tj kern kk#, "y" kern kk#, cs_yy kern kk#,
+ "v" kern kkk#, "w" kern kkk#;
+ ligtable "i": "i" kern -k#; % skiing
+fi
+if improve_kerns:
+ligtable opening_quotes:
+ if serifs:
+ "A" kern -k#, cs_AA kern -k#, cs_AE kern -k#,
+ "C" kern -k#, cs_CZ kern -k#, "D" kern -k#, cs_DJ kern -k#,
+ "E" kern -k#, cs_EE kern -k#, cs_IE kern -k#, "F" kern -k#, "H" kern -k#,
+ "I" kern -k#, cs_II kern -k#, "J" kern -k#, "K" kern -k#,
+ "L" kern -k#, cs_LJ kern -k#, cs_LL kern -k#, "M" kern -k#,
+ "N" kern -k#, cs_NJ kern -k#, "P" kern -k#,
+ "R" kern -k#, cs_RZ kern -k#, cs_RR kern -k#,
+ "S" kern -k#, cs_SH kern -k#, "T" kern k#, cs_TJ kern k#,
+ "X" kern -k#, "Y" kern k#, cs_YY kern k#,
+ "Z" kern -k#, cs_ZH kern -k#,
+ else:
+ "T" kern kk#, cs_TJ kern kk#, "Y" kern kk#, cs_YY kern kk#,
+ fi
+ "V" kern kk#, "W" kern k#,
+ if serifs:
+ "a" kern -k#, cs_aa kern -k#,
+ "c" kern -k#, cs_cz kern -k#, "d" kern -k#, cs_dj kern -k#,
+ "e" kern -k#, cs_ee kern -k#, cs_ie kern -k#, "f" kern -k#, "h" kern -k#,
+ "i" kern -k#, cs_ii kern -k#, "j" kern -k#, "k" kern -k#,
+ "l" kern -k#, cs_ll kern -k#, cs_lj kern -k#, "m" kern -k#,
+ "n" kern -k#, cs_nj kern -k#, "p" kern -k#,
+ "r" kern -k#, cs_rz kern -k#, cs_rr kern -k#,
+ "s" kern -k#, cs_sh kern -k#, "t" kern k#, cs_tj kern k#,
+ "x" kern -k#, "y" kern k#, cs_yy kern k#,
+ "z" kern -k#, cs_zh kern -k#,
+ else:
+ "t" kern kk#, cs_tj kern kk#, "y" kern kk#, cs_yy kern kk#,
+ fi
+ "v" kern kk#, "w" kern k#;
+fi
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cs/kmroman.mf b/Master/texmf-dist/fonts/source/public/cs/kmroman.mf
new file mode 100644
index 00000000000..7a9c5884052
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/kmroman.mf
@@ -0,0 +1,198 @@
+% The Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+% 8-bit characters with Czech accents (Petr Novak)
+% revised and edited 1992-93 (Karel Horak)
+% european quotes and special hyphenchar added
+% revised and maintaned by Petr Olsak (1993--) <olsak@math.feld.cvut.cz>
+
+if ligs>1: font_coding_scheme:="TeX cs text";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+else: font_coding_scheme:=if ligs=0: "TeX cs typewriter text"
+ else: "TeX cs text without f-ligatures" fi;
+ spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+mode_setup; font_setup;
+
+if driver_name="sroman": input sromanu % upper case (majuscules), SliTeX
+ else: input romanu fi ; % upper case (majuscules)
+input romanl; % lower case (minuscules)
+input greeku; % upper case Greek letters
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to roman and italic text
+input accent; % accents common to roman and italic text
+
+% Czech accented letters
+input csaccent; % czech and slovak accents definitions
+input csacutl; % lowercase letters with acute accent
+input csacutu; % uppercase latters with acute accent
+input cshachel; % lowercase letters with hachek accent
+input cshacheu; % uppercase letters with hachek accent
+input csotherl; % lowercase letters with other accents
+input csotheru; % uppercase letters with other accents
+input csadded; % european quotes, oneperthousand
+input cshyph; % allows made \hyphenchar\font=156
+
+
+if ligs>1: input romlig; fi % letter ligatures
+if ligs>0: input comlig; fi % ligatures common with italic text
+if ligs<=1: input romsub; fi % substitutes for ligatures
+
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+% the following kerns should have been added:
+% - between opening quotes and some letters
+% - between |"."| and |"."| (...)
+% - between |"A"| and |"v"| (Average)
+% - between |"A"| and |"w"| (Awkward or Lem's Awruk)
+% - between |"F"|, |"P"|, |"T"|, |"V"|, |"W"|, |"Y"| and |"."|, |","|
+% but for the sake of compatibility with CM's they would have been
+% inserted only if |improve_kerns=true| (by default |improve_kerns=true|).
+
+if improve_kerns: ligtable ".": "." kern -kkk#; fi
+ ligtable "k": if serifs: "v":
+ if improve_kerns:
+ "a" kern k#, cs_aa kern k#,
+ cs_ae kern k#, cs_ax kern k#,
+ else:
+ "a" kern -u#, cs_aa kern -u#,
+ cs_ae kern -u#, cs_ax kern -u#,
+ fi fi\\"w":
+ "e" kern k#, cs_ee kern k#, cs_ie kern k#,
+ "a" kern k#, cs_aa kern k#, cs_ae kern k#, cs_ax kern k#,
+ "o" kern k#, cs_oo kern k#, cs_uo kern k#, cs_oe kern k#,
+ "c" kern k#, cs_cz kern k#;
+ ligtable "P":
+ if improve_kerns: "." kern k#, "," kern k#, fi
+ "A" kern kk#, cs_AA kern kk#, cs_AX kern kk#, cs_AE kern kk#,
+ "y": cs_yy:
+ "o" kern k#, cs_oo kern k#,
+ "e" kern k#, cs_ee kern k#, cs_ie kern k#,
+ "a" kern k#, cs_aa kern k#, cs_ae kern k#, cs_ax kern k#,
+ "." kern kk#, "," kern kk#;
+ % Sep 20, 1996: Some kerns reduced by P. Olsak (T\v r, for example)
+ ligtable "F": "V": "W":
+ if improve_kerns: "." kern -u#, "," kern -u#, fi
+ if serifs:
+ "o" kern kk#, cs_oo kern kk#, cs_oe kern kk#,
+ "e" kern kk#, cs_ee kern kk#, cs_ie kern k#,
+ "u" kern kk#, cs_uu kern kk#, cs_ou kern kk#, cs_ue kern k#,
+ "r" kern kk#, cs_rr kern kk#,
+ "a" kern kk#, cs_aa kern kk#, cs_ae kern kk#, cs_ax kern kk#,
+ "A" kern kkk#, cs_AA kern kkk#,
+ cs_AE kern kkk#, cs_AX kern kkk#,
+ if improve_kerns:
+ "c" kern kk#, cs_cz kern k#, %% P.O. 6.97
+ fi
+ else: "o" kern k#, cs_oo kern k#, cs_ou kern k#, cs_oe kern k#,
+ "e" kern k#, cs_ee kern k#, cs_ie kern k#,
+ "u" kern k#, cs_uu kern k#, cs_ue kern k#, cs_ou kern k#,
+ "r" kern k#, cs_rz kern k#, cs_rr kern k#,
+ "a" kern k#, cs_aa kern k#, cs_ae kern k#, cs_ax kern k#,
+ "A" kern kk#, cs_AA kern kk#,
+ cs_AE kern kk#, cs_AX kern kk#,
+ fi
+ "K": "X": "O" kern k#, cs_OO kern k#,
+ cs_UO kern k#, cs_OE kern k#,
+ "C" kern k#, cs_CZ kern k#,
+ "G" kern k#, "Q" kern k#;
+ ligtable "T": cs_TJ : if serifs: "y" kern k#, cs_yy kern k#
+ else: "y" kern kk#, cs_yy kern kk# fi,
+ "Y": cs_YY:
+ "e" kern kk#, cs_ee kern -u#, cs_ie kern k#,
+ "o" kern kk#, cs_oo kern -u#,
+ "r" kern kk#, cs_rr kern k#,
+ "a" kern kk#, cs_aa kern -u#,
+ "A" kern kk#, cs_AA kern kk#,
+ cs_AE kern kk#, cs_AX kern kk#,
+ "u" kern kk#, cs_uu kern -u#, cs_ou kern -u#
+ if improve_kerns:,
+ "." kern k#, "," kern k#,
+ "c" kern kk#, cs_cz kern k# % P.O. 6.97
+ fi;
+ ligtable "O": cs_OO: "D": cs_DJ:
+ "X" kern k#, "W" kern k#,
+ "A" kern k#, cs_AA kern k#, cs_AE kern k#,
+ cs_AX kern k#,
+ "V" kern k#, "Y" kern k#, cs_YY kern k#;
+ if serifs: ligtable "h": "m": "n": cs_nj:
+ "t" kern k#, cs_tj kern k#,
+ "u" kern k#, cs_uu kern k#, cs_ue kern k#, cs_ou kern k#,
+ "b" kern k#, "y" kern k#, cs_yy kern k#,
+ "v" kern k#, "w" kern k#;
+ ligtable "c": cs_cz: "h" kern k#, "k" kern k#; fi
+ ligtable "o": cs_oo: cs_uo: cs_oe: "b": "p":
+ "e" kern -k#, cs_ee kern -k#, cs_ie kern -k#,
+ "o" kern -k#, cs_oo kern -k#, cs_ou kern -k#, cs_oe kern -k#,
+ "x" kern k#, "d" kern -k#, cs_dj kern -k#,
+ "c" kern -k#, cs_cz kern -k#, "q" kern -k#,
+ "a": cs_aa: cs_ae: cs_ax:
+ if serifs: "v" kern k#, "j" kern u#,
+ else: "r" kern k#, cs_rr kern k#, cs_rz kern k#, fi
+ "t": "y" kern k#, cs_yy kern k#,
+ "u": cs_uu: cs_ou: cs_ue: "w" kern k#;
+ ligtable "A": cs_AA: cs_AE: cs_AX:
+ if improve_kerns:
+ "v" kern if serifs: kkk# else: k# fi, "w" kern if serifs: kk# else: k# fi,
+ fi
+ if serifs: "R": cs_RZ: cs_RR: fi\\
+ "t" kern k#, cs_tj kern k#,
+ "C" kern k#, cs_CZ kern k#,
+ "O" kern k#, cs_OO kern k#, cs_UO kern k#,
+ cs_OE kern k#,
+ "G" kern k#,
+ "U" kern k#, cs_UU kern k#, cs_OU kern k#,
+ cs_UE kern k#,
+ "Q" kern k#,
+ "L": cs_LJ: cs_LL:
+ "T" kern kk#, cs_TJ kern kk#,
+ "Y" kern kk#, cs_YY kern kk#,
+ "V" kern kkk#, "W" kern kkk#;
+ ligtable "g": "j" kern -k#; % logjam
+ ligtable "I": "I" kern -k#; % Richard III
+ % there are ligature/kern programs for |"f"| in the {\tt romlig} file
+ % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+ligtable cs_dj : cs_lj : closing_quotes kern 2u#;
+ligtable cs_tj : closing_quotes kern 1u#;
+
+if improve_kerns:
+ligtable opening_quotes:
+ "g" kern -k#, "j" kern -kkk#, "p" kern -k#, "y" kern u#, cs_yy kern u#,
+ "v" kern k#, "w" kern k#,
+ if serifs:
+ "A" kern u#, cs_AA kern u#, cs_AE kern u#,
+ "C" kern u#, cs_CZ kern u#, "D" kern u#, cs_DJ kern u#,
+ "E" kern u#, cs_EE kern u#, cs_IE kern u#, "F" kern u#, "H" kern u#,
+ "I" kern u#, cs_II kern u#, "J" kern u#, "K" kern u#,
+ "L" kern u#, cs_LJ kern u#,
+ "M" kern u#, "N" kern u#, cs_NJ kern u#, "P" kern u#,
+ "R" kern u#, cs_RZ kern u#, cs_RR kern u#, "S" kern u#, cs_SH kern u#,
+ "T" kern k#, cs_TJ kern k#, "X" kern u#,
+ "Y" kern k#, cs_YY kern k#, "Z" kern u#, cs_ZH kern u#,
+ else:
+ "T" kern kk#, cs_TJ kern kk#, "Y" kern kk#, cs_YY kern kk#,
+ fi
+ "V" kern kk#, "W" kern k#;
+fi
+fi
+
+
+bye.
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/cs/kmtexset.mf b/Master/texmf-dist/fonts/source/public/cs/kmtexset.mf
new file mode 100644
index 00000000000..f2ec6a84118
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/kmtexset.mf
@@ -0,0 +1,122 @@
+% Special version of Computer Modern for \TeX's extended ASCII character set
+% 8-bit characters with Czech accents (Petr Novak)
+% revised and edited 1992-94 (Karel Horak)
+% european quotes added
+
+font_coding_scheme:="TeX cs extended ASCII";
+
+mode_setup; font_setup; mono_charic#:=0;
+
+input tsetsl; % special symbols to be slanted
+slant:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+
+input romanu; % upper case (majuscules)
+input romanl; % lower case (minuscules)
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input punct; % punctuation symbols common to roman and italic text
+input tset; % remaining special symbols of extended ASCII
+
+input csaccent; % czech and slovak accents definitions
+input csacutl; % lowercase letters with acute accent
+input csacutu; % uppercase latters with acute accent
+input cshachel; % lowercase letters with hachek accent
+input cshacheu; % uppercase letters with hachek accent
+input csotherl; % lowercase letters with other accents
+input csotheru; % uppercase letters with other accents
+
+font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "k": if serifs: "v": "a" kern -u#, cs_aa kern -u#,
+ cs_ae kern -u#, cs_ax kern -u#, fi\\"w":
+ "e" kern k#, cs_ee kern k#, cs_ie kern k#,
+ "a" kern k#, cs_aa kern k#, cs_ae kern k#, cs_ax kern k#,
+ "o" kern k#, cs_oo kern k#, cs_uo kern k#, cs_oe kern k#,
+ "c" kern k#, cs_cz kern k#;
+ ligtable "P": "A" kern kk#, cs_AA kern kk#, cs_AX+cs_uc kern kk#,
+ cs_ae+cs_uc kern kk#,
+ "y": cs_yy:
+ "o" kern k#, cs_oo kern k#, cs_uo kern k#, cs_oe kern k#,
+ "e" kern k#, cs_ee kern k#, cs_ie kern k#,
+ "a" kern k#, cs_aa kern k#, cs_ae kern k#, cs_ax kern k#,
+ "." kern kk#, "," kern kk#;
+ ligtable "F": "V": "W": if serifs:
+ "o" kern kk#, cs_oo kern kk#, cs_ou kern kk#, cs_oe kern kk#,
+ "e" kern kk#, cs_ee kern kk#, cs_ie kern kk#,
+ "u" kern kk#, cs_uu kern kk#, cs_ue kern kk#, cs_ou kern kk#,
+ "r" kern kk#, cs_rz kern kk#, cs_rr kern kk#,
+ "a" kern kk#, cs_aa kern kk#, cs_ae kern kk#, cs_ax kern kk#,
+ "A" kern kkk#, cs_AA+cs_uc kern kkk#,
+ cs_AE+cs_uc kern kkk#, cs_AX+cs_uc kern kkk#,
+ else: "o" kern k#, cs_oo kern k#, cs_ou kern k#, cs_oe kern k#,
+ "e" kern k#, cs_ee kern k#, cs_ie kern k#,
+ "u" kern k#, cs_uu kern k#, cs_ue kern k#, cs_ou kern k#,
+ "r" kern k#, cs_rz kern k#, cs_rr kern k#,
+ "a" kern k#, cs_aa kern k#, cs_ae kern k#, cs_ax kern k#,
+ "A" kern kk#, cs_AA+cs_uc kern kk#,
+ cs_AE+cs_uc kern kk#, cs_AX+cs_uc kern kk#,
+ fi
+ "K": "X": "O" kern k#, cs_OO kern k#,
+ cs_UO kern k#, cs_OE kern k#,
+ "C" kern k#, cs_CZ kern k#,
+ "G" kern k#, "Q" kern k#;
+ ligtable "T": cs_TJ+cs_uc : if serifs: "y" kern k#, cs_yy kern k#
+ else: "y" kern kk#, cs_yy kern kk# fi,
+ "Y": cs_yy+cs_uc:
+ "e" kern kk#, cs_ee kern kk#, cs_ie kern kk#,
+ "o" kern kk#, cs_oo kern kk#, cs_ou kern kk#, cs_oe kern kk#,
+ "r" kern kk#, cs_rz kern kk#, cs_rr kern kk#,
+ "a" kern kk#, cs_aa kern kk#, cs_ae kern kk#, cs_ax kern kk#,
+ "A" kern kk#, cs_AA+cs_uc kern kk#,
+ cs_AE+cs_uc kern kk#, cs_AX+cs_uc kern kk#,
+ "u" kern kk#, cs_uu kern kk#, cs_ue kern kk#,
+ cs_ou kern kk#;
+ ligtable "O": cs_OO+cs_uc: "D": cs_DJ+cs_uc:
+ "X" kern k#, "W" kern k#,
+ "A" kern k#, cs_AA+cs_uc kern k#, cs_AE+cs_uc kern k#,
+ cs_AX+cs_uc kern k#,
+ "V" kern k#, "Y" kern k#, cs_YY+cs_uc kern k#;
+ if serifs: ligtable "h": "m": "n": cs_nz:
+ "t" kern k#, cs_tj kern k#,
+ "u" kern k#, cs_uu kern k#, cs_ue kern k#, cs_ou kern k#,
+ "b" kern k#, "y" kern k#, cs_yy kern k#,
+ "v" kern k#, "w" kern k#;
+ ligtable "c": cs_cz: "h" kern k#, "k" kern k#; fi
+ ligtable "o": cs_oo: cs_uo: cs_oe: "b": "p":
+ "e" kern -k#, cs_ee kern -k#, cs_ie kern -k#,
+ "o" kern -k#, cs_oo kern -k#, cs_ou kern -k#, cs_oe kern -k#,
+ "x" kern k#, "d" kern -k#, cs_dj kern -k#,
+ "c" kern -k#, cs_cz kern -k#, "q" kern -k#,
+ "a": cs_aa: cs_ae: cs_ax:
+ if serifs: "v" kern k#, "j" kern u#,
+ else: "r" kern k#, cs_rr kern k#, cs_rz kern k#, fi
+ "t": cs_tj: "y" kern k#, cs_yy kern k#,
+ "u": cs_uu: cs_ou: cs_ue: "w" kern k#;
+ ligtable "A": cs_AA+cs_uc: cs_AE+cs_uc: cs_AX+cs_uc:
+ if serifs: "R": cs_RZ+cs_uc: cs_RR+cs_uc: fi\\
+ "t" kern k#, cs_tj kern k#,
+ "C" kern k#, cs_CZ+cs_uc kern k#,
+ "O" kern k#, cs_OO+cs_uc kern k#, cs_UO+cs_uc kern k#,
+ cs_OE+cs_uc kern k#,
+ "G" kern k#,
+ "U" kern k#, cs_UU+cs_uc kern k#, cs_OU+cs_uc kern k#,
+ cs_UE+cs_uc kern k#,
+ "Q" kern k#,
+ "L": cs_LJ+cs_uc: cs_LL+cs_uc:
+ "T" kern kk#, cs_TJ+cs_uc kern kk#,
+ "Y" kern kk#, cs_YY+cs_uc kern kk#,
+ "V" kern kkk#, "W" kern kkk#;
+ ligtable "g": "j" kern -k#; % logjam
+ ligtable "I": "I" kern -k#; % Richard III
+fi
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cs/kmtextit.mf b/Master/texmf-dist/fonts/source/public/cs/kmtextit.mf
new file mode 100644
index 00000000000..4b1188246ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/kmtextit.mf
@@ -0,0 +1,135 @@
+% The Computer Modern Text Italic family (by D. E. Knuth, 1979--1985)
+% 8-bit characters with Czech accents (Petr Novak)
+% revised and edited 1992-93 (Karel Horak)
+% european quotes and special hyphenchar added
+
+% deleted -u# kerning for "b": & "p":
+
+mode_setup; font_setup;
+
+input itall; % lower case (minuscules)
+input italsp; % lowercase specials (dotless \i, ligature \ae, etc.)
+
+if ligs>1: font_coding_scheme:="TeX cs text";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+ input italig; % letter ligatures
+else: font_coding_scheme:=if ligs=0: "TeX cs typewriter text"
+ else: "TeX cs text without f-ligatures" fi;
+ spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+
+input romanu; % upper case (majuscules)
+input greeku; % upper case greek letters
+input itald; % numerals
+input italp; % ampersand, question marks, currency sign
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to roman and italic text
+input accent; % accents common to roman and italic text
+if ligs>0: input comlig; fi % ligatures common with roman text
+if ligs<=1: input romsub; fi % substitutes for ligatures
+
+% Czech accented letters
+input csaccent; % accent definitions
+input csiacutl; % italic acute accented lowercase
+input csihachl; % italic hachek accented lowercase
+input csiothrl; % italic other accented lowercase
+input csacutu; % upper case acute accented
+input cshacheu; % upper case hachek accented
+input csotheru; % upper case other accented
+input csadded; % european quotes, oneperthousand
+input cshyph; %% to allow special hyphenchar=156
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+
+% the following kerns should have been added:
+% - between opening quotes and some letters
+% - between |"."| and |"."| (...)
+% - between |"A"| and |"v"| (Average)
+% - between |"A"| and |"w"| (Awkward or Lem's Awruk)
+% - between |"F"|, |"P"|, |"T"|, |"V"|, |"W"|, |"Y"| and |"."|, |","|
+% but for the sake of compatibility with CM's they would have been
+% inserted only if |improve_kerns=true| (by default |improve_kerns=true|).
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+if not monospace:
+if improve_kerns: ligtable ".": "." kern -kkk#; fi
+ ligtable "d": cs_dj: "w": "l": cs_ll: cs_lj: "l" kern +u#,
+ cs_ll kern +u#, cs_lj kern +u#;
+ ligtable "F": "V":
+ if improve_kerns: "." kern -u#, "," kern -u#, fi
+ "o" kern kk#, cs_oo kern kk#, cs_oe kern kk#,
+ cs_uo kern kk#, "e" kern kk#, cs_ee kern kk#, cs_ie kern kk#,
+ "u" kern kk#, cs_uu kern kk#, cs_ue kern kk#, cs_ou kern kk#,
+ "r" kern kk#, cs_rr kern kk#, cs_rz kern kk#, "a" kern kk#,
+ cs_aa kern kk#, cs_ae kern kk#, "A" kern kkk#,
+ cs_AA kern kkk#, cs_AE kern kkk#,
+ "K": "X": "O" kern k#, cs_OO kern k#, "C" kern k#,
+ cs_CZ kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": cs_TJ: "y" kern kk#, cs_yy kern kk#,
+ "Y": cs_YY: "e" kern kk#, cs_ee kern kk#, cs_ie kern kk#,
+ "o" kern kk#, cs_oo kern kk#, cs_oe kern kk#, cs_uo kern kk#,
+ "r" kern kk#, cs_rr kern kk#, cs_rz kern kk#, "a" kern kk#,
+ cs_aa kern kk#, cs_ae kern kk#, "u" kern kk#,
+ cs_uu kern kk#, cs_ue kern kk#, cs_ou kern kk#,
+ "P": "W": "A" kern kk#, cs_AA kern kk#, cs_AE kern kk#
+ if improve_kerns: , "." kern k#, "," kern k# fi;
+ ligtable "O": cs_OO: cs_OE: cs_UO: "D":
+ cs_DJ: "X" kern k#, "W" kern k#, "A" kern k#,
+ cs_AA kern k#, cs_AE kern k#,
+ "V" kern k#, "Y" kern k#, cs_YY kern k#;
+ ligtable "A": cs_AA: cs_AE:
+ if improve_kerns: "v" kern kk#, "w" kern kk#, fi
+ "R": cs_RR: cs_RZ: "n" kern k#, cs_nj kern k#,
+ "l" kern k#, cs_ll kern k#, cs_lj kern k#, "r" kern k#, cs_rr kern k#,
+ cs_rz kern k#, "u" kern k#, cs_uu kern k#, cs_ue kern k#,
+ cs_ou kern k#, "m" kern k#, "t" kern k#, cs_tj kern k#,
+ "i" kern k#, cs_ii kern k#, "C" kern k#, cs_CZ kern k#,
+ "O" kern k#, cs_OO kern k#, cs_OE kern k#,
+ cs_UO kern k#, "G" kern k#, "h" kern k#, "b" kern k#, "U" kern k#,
+ cs_UU kern k#, cs_UE kern k#, cs_OU kern k#,
+ "k" kern k#, "v" kern k#, "w" kern k#, "Q" kern k#,
+ "L": cs_LL: cs_LJ: "T" kern kk#, cs_TJ kern kk#,
+ "Y" kern kk#, cs_YY kern kk#, "V" kern kkk#, "W" kern kkk#,
+% "b": "c": cs_cz:
+ "e": cs_ee: cs_ie:
+% "o": cs_oo: cs_oe: cs_uo:
+% "p":
+ "r": cs_rr: cs_rz: "e" kern -u#, cs_ee kern -u#, cs_ie kern -u#,
+ "a" kern -u#, cs_aa kern -u#, cs_ae kern -u#,
+ "o" kern -u#, cs_oo kern -u#, cs_oe kern -u#, cs_uo kern -u#,
+ "d" kern -u#, cs_dj kern -u#, "c" kern -u#, cs_cz kern -u#,
+ "g" kern -u#, "q" kern -u#;
+ ligtable "n": cs_nj: "'" kern kkk#;
+fi
+if improve_kerns:
+ligtable opening_quotes:
+ "f" kern u#, "g" kern -k#, "j" kern u#,
+ "p" kern -k#, "y" kern -k#, cs_yy kern -k#, "v" kern k#, "w" kern k#,
+ "A" kern -k#, cs_AA kern -k#, cs_AE kern -k#, "C" kern -k#, cs_CZ kern -k#,
+ "D" kern -k#, cs_DJ kern -k#, "E" kern -k#, cs_EE kern -k#, cs_IE kern -k#,
+ "F" kern -k#, "H" kern -k#,
+ "I" kern -k#, cs_II kern -k#, "J" kern -k#, "K" kern -k#,
+ "L" kern -k#, cs_LJ kern -k#,
+ "M" kern -k#, "N" kern -k#, cs_NJ kern -k#, "P" kern -k#,
+ "R" kern -k#, cs_RZ kern -k#, cs_RR kern -k#, "S" kern -k#, cs_SH kern -k#,
+ "T" kern kk#, cs_TJ kern kk#,
+ "X" kern -k#, "Y" kern kk#, cs_YY kern kk#,
+ "Z" kern -k#, cs_ZH kern -k#,
+ "V" kern kkk#, "W" kern kk#;
+fi
+% there are ligature/kern programs for |"f"| in the {\tt italig} file
+% and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/cs/kmtitle.mf b/Master/texmf-dist/fonts/source/public/cs/kmtitle.mf
new file mode 100644
index 00000000000..e00215b5df9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/kmtitle.mf
@@ -0,0 +1,36 @@
+% This makes a short font (caps and digits only)
+
+font_coding_scheme:="ASCII caps and digits";
+
+mode_setup; font_setup;
+
+input romanu; % upper case (majuscules)
+input romand; % numerals
+input csaccent
+input csacutu % uppercase latters with acute accent
+input cshacheu % uppercase letters with hachek accent
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "P": "T": cs_TJ: "Y": cs_YY: "A" kern kk#, cs_AA kern kk#;
+ ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#\\fi,
+ cs_AA kern if serifs: kkk# else: kk#\\fi,
+ "K": "X": "O" kern k#, cs_OO kern k#,
+ "C" kern k#, cs_CZ kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "O": cs_OO: "D": cs_DJ: "X" kern k#, "W" kern k#,
+ "A" kern k#, cs_AA kern k#,
+ "V" kern k#, "Y" kern k#, cs_YY kern k#;
+ ligtable "A": cs_AA: if serifs: "R": fi
+ "C" kern k#, cs_CZ kern k#, "O" kern k#, cs_OO kern k#,
+ "G" kern k#, "U" kern k#, cs_UU kern k#, "Q" kern k#,
+ "L": "T" kern kk#, cs_TJ kern kk#, "Y" kern kkk#, cs_YY kern kkk#,
+ "V" kern kk#, "W" kern kkk#;
+ ligtable "I": cs_II: "I" kern -k#, cs_II kern -k#; fi % Richard III
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/cs/lcsss8.mf b/Master/texmf-dist/fonts/source/public/cs/lcsss8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/lcsss8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/lcsssb8.mf b/Master/texmf-dist/fonts/source/public/cs/lcsssb8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/lcsssb8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/cs/lcsssi8.mf b/Master/texmf-dist/fonts/source/public/cs/lcsssi8.mf
new file mode 100644
index 00000000000..c49500d1d01
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/cs/lcsssi8.mf
@@ -0,0 +1,2 @@
+input cscode
+use_driver; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ctib/bzrsetup.mf b/Master/texmf-dist/fonts/source/public/ctib/bzrsetup.mf
new file mode 100644
index 00000000000..53c21791189
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ctib/bzrsetup.mf
@@ -0,0 +1,208 @@
+% bzrsetup.mf: interesting and/or necessary things for bzrto's Metafont output.
+%
+% Copyright (C) 1992 Free Software Foundation, Inc.
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+
+% |true_design_size| must be set before this file is input. It is
+% supposed to be the design size of the original font. If the user does
+% not set |designsize| on the command line, we default to the following.
+default_design_size# := 10pt#;
+if designsize = 0: designsize := default_design_size#; fi;
+
+% It's pointless to actually produce different TFM files for different
+% design sizes: we have only one set of outlines, after all. So we
+% adjust the resolution to account for different sizes, by setting
+% |mag|. Then we reset |designsize| to the default.
+if unknown mag: mag := 1; fi;
+mag := mag * designsize / default_design_size#;
+
+% So we can produce output at varying sizes, all our dimensions are
+% output in terms of the ad hoc parameter |u|.
+%
+u# := default_design_size# / true_design_size#;
+
+designsize := default_design_size#;
+
+% Macros from page 289 of {\sl The Metafontbook} for short-circuit evaluation.
+%
+def cand (text q) = startif true q else: false fi enddef;
+def cor (text q) = startif true true else: q fi enddef;
+tertiarydef p startif true = if p: enddef;
+
+% The proof resolution of 2601.72 pixels per inch established by plain
+% \MF\ does not always work, because the characters might be too large
+% (or small, for that matter) for the paper size. So, here we change
+% the proof resolution to fit the design size of the font into
+% |proof_size| inches. To do this, we must know the resolution of the
+% device the proof output will be printed on; we make |proof_resolution|
+% default to 300.
+%
+if unknown mode cor ((mode = proof) or (mode = smoke)):
+ % Given in inches:
+ if unknown proof_size: proof_size := 7; fi;
+
+ % Given in pixels per inch:
+ if unknown proof_resolution: proof_resolution := 300; fi;
+
+ % Set up the new mode to be the same as the old one, except for the
+ % resolution.
+ original_mode := if known mode: mode else: proof fi;
+ mode_def bzr_proof_mode =
+ if original_mode = proof:
+ proof_;
+ else:
+ smoke_;
+ fi;
+ pixels_per_inch
+ := (proof_size * proof_resolution)
+ * (72.27 / proof_resolution)
+ * (72.27 / designsize);
+ enddef;
+ mode := bzr_proof_mode;
+fi;
+
+% Set up the device values for this run. Since we allow a nonstandard
+% value of |proofing| (see below), we must save its value, if it has
+% already been assigned.
+%
+if (known proofing) cand (proofing > 2):
+ save_proofing := proofing;
+fi
+
+mode_setup;
+
+if known save_proofing:
+ proofing := save_proofing;
+fi;
+
+
+% We can't define the pixel-oriented version of |u| until after
+% |mode_setup| has been called.
+define_pixels (u);
+
+
+% Use a font that blends better with the \MF\ logo for the title line.
+%
+special "titlefont cmss8";
+
+% If we are doing smoke proofs, put the character at its actual size on
+% the output; if we're doing gray proofs, use a smaller font for the
+% labels.
+%
+if proofing <= 1:
+ special "labelfont " & jobname;
+ extra_beginchar := extra_beginchar &
+ "makelabel.lft.nodot (decimal charcode, (w + 1in#, 0));";
+else:
+ special "labelfont cmtt8";
+fi;
+
+% Produce a |makelabel| command for each |z| point in |point_list| and
+% each suffix in |suffixes|.
+%
+def general_label (text point_list, suffixes) =
+ forsuffixes point_suffix = ,suffixes:
+ forsuffixes point = point_list:
+ % Unfortunately, the way in which the |str| operator formats its
+ % argument (which is an arbitrary suffix) cannot be changed, so
+ % the proofsheets end up showing "0 0" for the variable |z[0][0]|.
+ makelabel (str point.point_suffix, z.point.point_suffix);
+ endfor
+ endfor
+enddef;
+
+% Define our labels for the proofsheets. The person running Metafont
+% can also see the control points on each spline, by setting
+% |proofing>2| at the beginning. (The {\tt plain.mf} macros only
+% distinguish between |proofing=0|, |proofing>0| and |proofing>1|, so we
+% are not disturbing them.)
+%
+def proof_labels (text t) =
+ % We need to delimit the arguments here, so \MF\ knows where the
+ % second |text| argument begins. Our output uses the suffix |"s"| for
+ % startpoints of segments, and the suffixes |"c1"| and |"c2"| for
+ % control points.
+ if proofing > 1: general_label (t) (s); fi;
+ if proofing > 2: general_label (t) (c1,c2); fi;
+enddef;
+
+
+% We define our characters as filled outlines; page 206 of {\sl The
+% Metafontbook} suggests disabling \MF's |autorounding| and
+% |smoothing| features in that case.
+%
+autorounding := 0;
+smoothing := 0;
+
+% Sometimes we want to fill our paths, other times unfill them,
+% depending on whether the winding number is positive or negative. We
+% could be absolutely safe here, and declare |temp_path| inside a group,
+% at every invocation of |fill_or_unfill|; but this would waste time and
+% space to no advantage, since we know exactly what kind of \MF\
+% programs we output, and the variable |temp_path| is not used in them.
+%
+% Incidentally, we need a variable in the first place only because it is more
+% efficient to avoid evaluating long paths more than once.
+%
+path temp_path;
+
+def fill_or_unfill expr p =
+ temp_path := p;
+ if turningnumber temp_path > 0: fill else: unfill fi temp_path;
+enddef;
+
+% Since we can assume the font fills all cycles counterclockwise
+% (because PostScript requires this), we want to disable the
+% |turningnumber| checking which generates the `Strange path' errors.
+% See p.112 and p.119 of the Metafontbook.
+%
+% (By the way, setting |turningcheck := 0| makes Metafont always use the
+% filling rule for positive turning number, i.e., always |fill| and
+% never |unfill|. When would this be useful?)
+%
+turningcheck := 1;
+
+% When we don't know the dimensions of the character we're defining
+% before we define it, we have to use these to begin it:
+def begin_no_dimen_char (expr c) =
+ begingroup
+ transform save_currenttransform;
+ save_currenttransform := currenttransform;
+ charcode:=if known c: byte c else: 0 fi;
+ charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
+enddef;
+
+def end_no_dimen_char =
+ currenttransform := save_currenttransform;
+ endchar;
+enddef;
+
+% When use the above to start a character, must call this before `endchar'.
+%
+def set_char_dimens (expr w_sharp,h_sharp,d_sharp) =
+ charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp;
+ w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp);
+enddef;
+
+% Move by shifting the current transform matrix.
+%
+def move (expr h_amount, v_amount) =
+ currenttransform := currenttransform shifted (h_amount, v_amount);
+enddef;
+
+def hmove (expr amount) = move (amount, 0); enddef;
+def vmove (expr amount) = move (0, amount); enddef;
diff --git a/Master/texmf-dist/fonts/source/public/ctib/ctib.mf b/Master/texmf-dist/fonts/source/public/ctib/ctib.mf
new file mode 100644
index 00000000000..1e9fb47b788
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ctib/ctib.mf
@@ -0,0 +1,36 @@
+% This file defines the Metafont font ctib.mf.
+true_design_size# := 10.000pt#;
+
+%pausing:=1;
+screen_rows:= 640;
+screen_cols:= 640;
+picture apic, npic, opic; % Norbert Preining's shortcut
+input bzrsetup;
+
+font_coding_scheme := "ASCII";
+font_identifier := "ctib";
+
+%% font_normal_shrink:=;
+font_x_height 10u#;
+font_normal_space 0.75u#;
+font_extra_space 24u#;
+font_normal_stretch 20u#;
+font_quad 12u#;
+
+fontdimen 6: 10.000pt# * u#;
+fontdimen 23: 7.800pt# * u#;
+fontdimen 24: 4.200pt# * u#;
+fontdimen 25: 10.000pt# * u#;
+fontdimen 26: 0.241pt# * u#;
+
+boundarychar:=255; % Helps generate automatic tsheg
+
+input ctibcode; % Transparent Coding Table
+input ctibligs; % Complete ligatures facilitating input
+input ctibnum; % Digits
+input ctibpunc; % Punctuation
+input ctiblett; % Letters
+input ctibsplt; % Subjoined and a few special letters
+input ctibvow; % Vowels, etc.
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ctib/ctibcode.mf b/Master/texmf-dist/fonts/source/public/ctib/ctibcode.mf
new file mode 100644
index 00000000000..0c6e476de7e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ctib/ctibcode.mf
@@ -0,0 +1,304 @@
+% File: ctibcode.mf
+% Author: Oliver Corff
+% Initial Date: October 5th, 1999
+% Revision Date: December 17th, 2001
+% Version: \TibLaTeXVersionRelease of ctibtex
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This file contains the actual code positions of all character
+% and glyph entities used for Tibetan.
+%
+% Whenever cTibTeX gets a new encoding scheme (like Unicode)
+% then this table, and only this table, needs editing.
+% Throughout all font and ligature files, Tibetan is dealt with
+% on a purely mnemonic basis!
+%
+% O. Corff, Berlin, Ulaanbaatar, Beijing, October 1999
+%
+% Revised: Ulaanbaatar, December 17th, 2001
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% SYMBOLIC NAME :=CODE; % COMMENT (ADDED AT DATE)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% UNUSED: 1, 2 , 3, 4, 28, 29, 30, 43+, 45-, 59;, 61=, 63?, 95_, 123
+% []{}?
+% fqvx
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Some very special items first
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+BNDRY := 255; % Boundary; needed for tsheg-insertion
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TIB_LIGLN := 102; % One of several dummy codes, placed on "f"
+TIB_LIGKS := 113; % One of several dummy codes, placed on "q"
+TIB_LIGKSH := 118; % One of several dummy codes, placed on "v"
+TIB_XA := 120; % Dummy x; for ligatures of shxa type
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Numbers, also in smaller variants for n in {5,6,7,8,9}
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TIB_ZERO := 48; % 48 0x30
+TIB_ONE := 49; %
+TIB_TWO := 50; %
+TIB_THREE := 51; %
+TIB_FOUR := 52; %
+TIB_FIVE := 53; %
+TIB_SIX := 54; %
+TIB_SEVEN := 55; %
+TIB_EIGHT := 56; %
+TIB_NINE := 57; % 57 0x39
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TIB_VARFIVE := 5; % 2001-06-09
+TIB_VARSIX := 6; % 2001-06-09
+TIB_VARSEVEN := 7; % 2001-06-09
+TIB_VAREIGHT := 8; % 2001-06-09
+TIB_VARNINE := 9; % 2001-06-09
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TIB_OM := 0; % Om ma nxi ...
+TIB_EMPTY := 32; % Dotted Circle for vowel displays
+TIB_SHAD := 46; % "."
+TIB_TSHEG := 44; % ","
+TIB_SWASTI := 64; % "@"
+TIB_VISARGA := 58; % ":"
+TIB_TSHEGSHAD := 33; % "!"
+TIB_ALTTSHEGSHAD := 31; % ^31 2001-06-09
+TIB_NYISTSHEGSHAD := 34; % """ 2001-06-09
+TIB_CHEMGOSHAD := 35; % "#" 2001-06-09
+TIB_SBRULSHAD := 36; % "$" 2001-06-09
+TIB_RGYAGRAMSHAD := 37; % "%" 2001-06-09
+TIB_VARCHEMGOSHAD := 38; % "#" 2001-06-09
+TIB_RJESSUNGARO := 24; % "" 2001-06-09
+TIB_SNALDAN := 25; % "" 2001-06-09
+TIB_RNAMBCAD := 26; % "" 2001-06-09
+TIB_GTERTSHEG := 27; % "" 2001-06-09
+TIB_RINCHENSPUNGSSHAD := 47; % "/" 2001-06-09
+TIB_TOPINI.YIGMGOMDUNMA := 40; % "(" 2001-12-17
+TIB_FINAL.YIGMGOMDUNMA := 41; % ")" 2001-12-17
+TIB_INI.YIGMGOMDUNMA := 42; % "((" 2001-12-17
+TIB_ANGKHYANGGYON := 60; % "<" 2001-06-09
+TIB_ANGKHYANGGYAS := 62; % ">" 2001-06-09
+TIB_HALANTA := 10; % 2001-12-17
+TIB_LCIRTAGS := 11; % 2001-12-17
+TIB_NYIZLANAADA := 12; % 2001-12-17
+TIB_HALF := 13; % 2001-12-17
+TIB_GTERYIGMGOTR := 14; % 2001-12-17
+TIB_PALUTA := 15; % 2001-12-17
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TIB_ACHUNG := 39; % "'"
+TIB_SMALLACHUNG := 96; % "`"
+TIB_A := 97; % "a"
+TIB_I := 105; % "i"
+TIB_O := 111; % "o"
+TIB_E := 101; % "e"
+TIB_U := 117; % "u" in various heights/depths
+TIB_UU := 16; % "u"
+TIB_UUU := 17; % "u"
+TIB_UUUU := 18; % "u"
+TIB_UUUUU := 19; % "u"
+TIB_UUUUUU := 20; % "u"
+TIB_UUUUUUU := 21; % "u"
+TIB_UUUUUUUU := 22; % "u"
+TIB_VARU := 23; % "u" 2001-12-17
+TIB_VARAU := 85; % "u" 2001-12-17
+TIB_VUU := 86; % "u" 2001-12-17
+TIB_EE := 69; % "ee" 2001-06-09
+TIB_OO := 79; % "oo" 2001-06-09
+TIB_XI := 73; % Vowel i reverse 2001-06-09
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TIB_VOM := 124; % Vowel o with "m" 2001-06-09
+TIB_VIM := 125; % Vowel i with "m" 2001-06-09
+TIB_VEM := 126; % Vowel e with "m" 2001-06-09
+TIB_XIM := 127; % Vowel i r., with "m" 2001-06-09
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TIB_ZE := 92; % Vowel "e" with -z- hook
+TIB_ZI := 93; % Vowel "i" with -z- hook
+TIB_ZO := 94; % Vowel "o" with -z- hook
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TIB_BA := 98; % "b"
+TIB_CA := 99; % "c"
+TIB_DA := 100; % "d"
+TIB_GA := 103; % "g"
+TIB_HA := 104; % "h"
+TIB_JA := 106; % "j"
+TIB_KA := 107; % "k"
+TIB_LA := 108; % "l"
+TIB_MA := 109; % "m"
+TIB_NA := 110; % "n"
+TIB_PA := 112; % "p"
+TIB_RA := 114; % "r"
+TIB_SA := 115; % "s"
+TIB_TA := 116; % "t"
+TIB_WA := 119; % "w"
+TIB_YA := 121; % "y"
+TIB_ZA := 122; % "z"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The space in the list of ligatures is exhausted. It is not
+% possible to squeeze any more letters and combinations into
+% n>127<255.
+%
+TIB_BHA := 128;
+TIB_BHYA := 129; % 2001-06-09
+TIB_BLA := 130;
+TIB_BRA := 131;
+TIB_BYA := 132;
+TIB_CHA := 133;
+TIB_CHWA := 134; % 2001-06-09
+TIB_CU := 135;
+TIB_CWA := 136;
+TIB_DHA := 137;
+TIB_DRA := 138;
+TIB_DRWA := 139; % 2001-06-09
+TIB_DWA := 140;
+TIB_DXA := 141;
+TIB_DXHA := 142;
+TIB_DZA := 143;
+TIB_DZHA := 144;
+TIB_DZRA := 145; % 2001-06-09
+TIB_GHA := 146;
+TIB_GLA := 147;
+TIB_GRA := 148;
+TIB_GRWA := 149;
+TIB_GWA := 150;
+TIB_GYA := 151;
+TIB_HRA := 152;
+TIB_HWA := 153;
+TIB_HYA := 154; % 2001-06-09
+TIB_JHA := 155; % 2001-06-09
+TIB_KHA := 156;
+TIB_KHRA := 157;
+TIB_KHWA := 158;
+TIB_KHYA := 159;
+TIB_KLA := 160;
+TIB_KRA := 161;
+TIB_KSHXA := 162;
+TIB_KWA := 163;
+TIB_KYA := 164;
+TIB_LBA := 165;
+TIB_LCA := 166;
+TIB_LDA := 167;
+TIB_LGA := 168;
+TIB_LHA := 169;
+TIB_LJA := 170;
+TIB_LKA := 171;
+TIB_LNGA := 172;
+TIB_LPA := 173;
+TIB_LTA := 174;
+TIB_LWA := 175;
+TIB_MRA := 176;
+TIB_MYA := 177;
+TIB_NGA := 178;
+TIB_NRA := 179;
+TIB_NXA := 180;
+TIB_NXYA := 181; % 2001-12-17
+TIB_NYA := 182;
+TIB_NYWA := 183;
+TIB_PHA := 184;
+TIB_PHRA := 185;
+TIB_PHYA := 186;
+TIB_PHYWA := 187;
+TIB_PRA := 188;
+TIB_PYA := 189;
+TIB_RBA := 190;
+TIB_RDA := 191;
+TIB_RDZA := 192;
+TIB_RGA := 193;
+TIB_RGWA := 194;
+TIB_RGYA := 195;
+TIB_RJA := 196;
+TIB_RKA := 197;
+TIB_RKYA := 198;
+TIB_RLA := 199;
+TIB_RMA := 200;
+TIB_RMYA := 201;
+TIB_RNA := 202;
+TIB_RNGA := 203;
+TIB_RNYA := 204;
+TIB_RTA := 205;
+TIB_RTSA := 206;
+TIB_RTSWA := 207;
+TIB_RWA := 208;
+TIB_RYA := 209; % 2001-06-09
+TIB_SBA := 210;
+TIB_SBRA := 211;
+TIB_SBYA := 212;
+TIB_SDA := 213;
+TIB_SGA := 214;
+TIB_SGRA := 215;
+TIB_SGYA := 216;
+TIB_SHA := 217;
+TIB_SHRA := 218;
+TIB_SHWA := 219;
+TIB_SHXA := 220;
+TIB_SKA := 221;
+TIB_SKRA := 222;
+TIB_SKYA := 223;
+TIB_SLA := 224;
+TIB_SMA := 225;
+TIB_SMRA := 226;
+TIB_SMYA := 227;
+TIB_SNA := 228;
+TIB_SNGA := 229;
+TIB_SNRA := 230; % 2001-06-09
+TIB_SNYA := 231;
+TIB_SPA := 232;
+TIB_SPRA := 233;
+TIB_SPYA := 234;
+TIB_SRA := 235;
+TIB_STA := 236;
+TIB_STSA := 237;
+TIB_SWA := 238;
+TIB_THA := 239;
+TIB_THRA := 240;
+TIB_THXA := 241;
+TIB_TRA := 242;
+TIB_TSA := 243;
+TIB_TSHA := 244;
+TIB_TSHWA := 245;
+TIB_TSU := 246;
+TIB_TSWA := 247;
+TIB_TWA := 248;
+TIB_TXA := 249;
+TIB_ZHA := 250;
+TIB_ZHWA := 251;
+TIB_ZLA := 252;
+TIB_ZRA := 253; % 2001-06-09
+TIB_ZWA := 254;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+TIB_SUBACHUNG := 65; % Small achung 2001-06-09
+TIB_SUBBA := 66; % Small ba 2001-06-09
+TIB_SUBCA := 67; % Small ca 2001-06-09
+TIB_SUBDA := 68; % Small da 2001-06-09
+TIB_SUBGA := 71; % Small ga 2001-06-09
+TIB_SUBHA := 72; % Small ha 2001-06-09
+TIB_SUBJA := 74; % Small ja 2001-06-09
+TIB_SUBKA := 75; % Small ka 2001-06-09
+TIB_SUBLA := 76; % Small la 2001-06-09
+TIB_SUBMA := 77; % Small ma 2001-06-09
+TIB_SUBNA := 78; % Small na 2001-06-09
+TIB_SUBPA := 80; % Small pa 2001-06-09
+TIB_SUBRA := 82; % Small pa 2001-12-17
+TIB_SUBTA := 84; % Small ta 2001-06-09
+TIB_SUBWA := 87; % Small wa 2001-12-17
+TIB_HEADWA := 88; % Head wa 2001-12-17
+TIB_SUBYA := 89; % Small ya 2001-12-17
+TIB_SUBSMALLD := 70; % Even smaller d 2001-06-09
+TIB_SUBNGA := 81; % Small nga 2001-06-09
+TIB_SUBNYA := 83; % Small nya 2001-06-09
+TIB_SUBTSA := 90; % Small tsa 2001-06-09
+TIB_NNYA := 91; % na+ya 2001-12-17
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% No idea why I included these codes in the original source...
+%
+% Oliver Corff, Beijing, June 9th, 2001
+%
+%% TIB_DZE := 83;
+%% TIB_DZI := 84;
+%% TIB_DZO := 85;
+%% TIB_TSE := 86;
+%% TIB_TSHE := 87;
+%% TIB_TSHI := 88;
+%% TIB_TSHO := 89;
+%% TIB_TSI := 90;
+%% TIB_TSO := 91;
diff --git a/Master/texmf-dist/fonts/source/public/ctib/ctiblett.mf b/Master/texmf-dist/fonts/source/public/ctib/ctiblett.mf
new file mode 100644
index 00000000000..502eab77268
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ctib/ctiblett.mf
@@ -0,0 +1,19878 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This is the file "ctiblett.mf" which is part of ctib4tex by
+% Oliver Corff.
+%
+% This file, as the original material it consists of, is in the
+% public domain.
+%
+% Please rename this file if you modify it, and please be so
+% kind to prepend a change note in case you modify its contents.
+%
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This file defines the Metafont font gtib.mf.
+% {limn output Aug 16 19:15:19 1995 from charspace output Aug 16 19:15:15 1995 from Hand edited Aug 16 18:00:21 1995 from PXTOPK 2.3 (Berkeley UNIX) output}
+% Generated Wed Aug 16 19:16:04 1995.
+% This font is in the public domain.
+
+% Letter shapes (and letter shapes only...)
+
+beginchar (TIB_KA, 9.636u#, 6.745u#, 6.263u#);
+ "ka";
+ z0\0\0s = (0.507u,1.686u);
+ z0\0\0 = (1.023u,1.686u);
+ z0\0\1c1 = (0.976u,2.094u);
+ z0\0\1c2 = (0.973u,2.493u);
+ z0\0\1 = (1.023u,2.891u);
+ z0\0\2c1 = (1.291u,3.644u);
+ z0\0\2c2 = (2.308u,5.464u);
+ z0\0\2 = (3.300u,5.018u);
+ z0\0\3c1 = (4.359u,4.543u);
+ z0\0\3c2 = (4.336u,1.029u);
+ z0\0\3 = (4.336u,0.000u);
+ z0\0\4 = (4.818u,0.000u);
+ z0\0\5c1 = (4.818u,1.129u);
+ z0\0\5c2 = (4.715u,5.595u);
+ z0\0\5 = (6.733u,5.121u);
+ z0\0\6c1 = (7.241u,5.001u);
+ z0\0\6c2 = (7.548u,4.540u);
+ z0\0\6 = (7.739u,4.091u);
+ z0\0\7c1 = (8.387u,2.561u);
+ z0\0\7c2 = (8.183u,-0.450u);
+ z0\0\7 = (8.191u,-2.168u);
+ z0\0\8 = (8.431u,-6.022u);
+ z0\0\9 = (8.927u,-6.022u);
+ z0\0\10 = (8.927u,1.686u);
+ z0\0\11 = (8.927u,3.132u);
+ z0\0\12c1 = (9.015u,3.773u);
+ z0\0\12c2 = (9.177u,4.409u);
+ z0\0\12 = (9.137u,5.059u);
+ z0\0\13c1 = (9.117u,5.379u);
+ z0\0\13c2 = (9.075u,5.705u);
+ z0\0\13 = (8.908u,5.987u);
+ z0\0\14c1 = (8.431u,6.794u);
+ z0\0\14c2 = (7.560u,6.740u);
+ z0\0\14 = (6.745u,6.707u);
+ z0\0\15c1 = (5.908u,6.750u);
+ z0\0\15c2 = (1.981u,6.812u);
+ z0\0\15 = (1.459u,6.707u);
+ z0\0\16c1 = (1.159u,6.587u);
+ z0\0\16c2 = (0.904u,6.470u);
+ z0\0\16 = (0.750u,6.188u);
+ z0\0\17c1 = (0.436u,5.661u);
+ z0\0\17c2 = (0.798u,4.924u);
+ z0\0\17 = (0.750u,4.336u);
+ z0\0\18 = (0.507u,3.132u);
+ fill_or_unfill z0\0\0s
+ --z0\0\0
+ ..controls z0\0\1c1 and z0\0\1c2..z0\0\1
+ ..controls z0\0\2c1 and z0\0\2c2..z0\0\2
+ ..controls z0\0\3c1 and z0\0\3c2..z0\0\3
+ --z0\0\4
+ ..controls z0\0\5c1 and z0\0\5c2..z0\0\5
+ ..controls z0\0\6c1 and z0\0\6c2..z0\0\6
+ ..controls z0\0\7c1 and z0\0\7c2..z0\0\7
+ --z0\0\8
+ --z0\0\9
+ --z0\0\10
+ --z0\0\11
+ ..controls z0\0\12c1 and z0\0\12c2..z0\0\12
+ ..controls z0\0\13c1 and z0\0\13c2..z0\0\13
+ ..controls z0\0\14c1 and z0\0\14c2..z0\0\14
+ ..controls z0\0\15c1 and z0\0\15c2..z0\0\15
+ ..controls z0\0\16c1 and z0\0\16c2..z0\0\16
+ ..controls z0\0\17c1 and z0\0\17c2..z0\0\17
+ --z0\0\18
+ --cycle;
+ proof_labels (
+ 0\0\0,
+ 0\0\1,
+ 0\0\2,
+ 0\0\3,
+ 0\0\4,
+ 0\0\5,
+ 0\0\6,
+ 0\0\7,
+ 0\0\8,
+ 0\0\9,
+ 0\0\10,
+ 0\0\11,
+ 0\0\12,
+ 0\0\13,
+ 0\0\14,
+ 0\0\15,
+ 0\0\16,
+ 0\0\17,
+ 0\0\18,
+ 0\0\19,
+);
+endchar;
+
+beginchar (TIB_KHA, 11.081u#, 6.745u#, 6.504u#);
+ "kha";
+ z1\0\0s = (1.204u,-6.263u);
+ z1\0\0 = (1.709u,-6.263u);
+ z1\0\1 = (1.709u,-0.241u);
+ z1\0\2c1 = (1.686u,0.941u);
+ z1\0\2c2 = (1.595u,2.203u);
+ z1\0\2 = (1.709u,3.372u);
+ z1\0\3c1 = (1.822u,3.853u);
+ z1\0\3c2 = (1.945u,4.567u);
+ z1\0\3 = (2.309u,4.915u);
+ z1\0\4c1 = (2.893u,5.473u);
+ z1\0\4c2 = (3.876u,5.184u);
+ z1\0\4 = (4.577u,5.059u);
+ z1\0\5c1 = (3.695u,3.358u);
+ z1\0\5c2 = (3.221u,2.175u);
+ z1\0\5 = (3.132u,0.251u);
+ z1\0\6c1 = (4.859u,0.904u);
+ z1\0\6c2 = (6.220u,1.184u);
+ z1\0\6 = (7.950u,0.251u);
+ z1\0\7 = (9.636u,-0.723u);
+ z1\0\8c1 = (9.636u,0.822u);
+ z1\0\8c2 = (9.606u,2.331u);
+ z1\0\8 = (9.921u,3.854u);
+ z1\0\9c1 = (10.051u,4.486u);
+ z1\0\9c2 = (10.476u,5.141u);
+ z1\0\9 = (10.499u,5.768u);
+ z1\0\10c1 = (10.513u,6.155u);
+ z1\0\10c2 = (10.399u,6.424u);
+ z1\0\10 = (10.042u,6.601u);
+ z1\0\11c1 = (9.518u,6.860u);
+ z1\0\11c2 = (3.897u,6.756u);
+ z1\0\11 = (2.891u,6.744u);
+ z1\0\12c1 = (2.216u,6.736u);
+ z1\0\12c2 = (1.166u,6.753u);
+ z1\0\12 = (0.728u,6.140u);
+ z1\0\13c1 = (0.512u,5.838u);
+ z1\0\13c2 = (0.496u,5.415u);
+ z1\0\13 = (0.490u,5.058u);
+ z1\0\14 = (0.723u,3.132u);
+ z1\0\15 = (0.723u,1.686u);
+ z1\0\16 = (0.974u,-0.482u);
+ z1\0\17 = (0.974u,-3.613u);
+ z1\1\0s = (8.963u,0.723u);
+ z1\1\0c1 = (6.692u,2.111u);
+ z1\1\0c2 = (6.546u,2.401u);
+ z1\1\0 = (3.854u,2.409u);
+ z1\1\1c1 = (4.140u,3.066u);
+ z1\1\1c2 = (4.416u,3.752u);
+ z1\1\1 = (4.911u,4.285u);
+ z1\1\2c1 = (5.648u,5.078u);
+ z1\1\2c2 = (7.591u,5.796u);
+ z1\1\2 = (8.474u,4.881u);
+ z1\1\3c1 = (8.848u,4.493u);
+ z1\1\3c2 = (8.930u,3.650u);
+ z1\1\3 = (8.963u,3.132u);
+ z1\1\4c1 = (9.169u,2.138u);
+ z1\1\4c2 = (9.190u,1.698u);
+ fill_or_unfill z1\0\0s
+ --z1\0\0
+ --z1\0\1
+ ..controls z1\0\2c1 and z1\0\2c2..z1\0\2
+ ..controls z1\0\3c1 and z1\0\3c2..z1\0\3
+ ..controls z1\0\4c1 and z1\0\4c2..z1\0\4
+ ..controls z1\0\5c1 and z1\0\5c2..z1\0\5
+ ..controls z1\0\6c1 and z1\0\6c2..z1\0\6
+ --z1\0\7
+ ..controls z1\0\8c1 and z1\0\8c2..z1\0\8
+ ..controls z1\0\9c1 and z1\0\9c2..z1\0\9
+ ..controls z1\0\10c1 and z1\0\10c2..z1\0\10
+ ..controls z1\0\11c1 and z1\0\11c2..z1\0\11
+ ..controls z1\0\12c1 and z1\0\12c2..z1\0\12
+ ..controls z1\0\13c1 and z1\0\13c2..z1\0\13
+ --z1\0\14
+ --z1\0\15
+ --z1\0\16
+ --z1\0\17
+ --cycle;
+ fill_or_unfill z1\1\0s
+ ..controls z1\1\0c1 and z1\1\0c2..z1\1\0
+ ..controls z1\1\1c1 and z1\1\1c2..z1\1\1
+ ..controls z1\1\2c1 and z1\1\2c2..z1\1\2
+ ..controls z1\1\3c1 and z1\1\3c2..z1\1\3
+ ..controls z1\1\4c1 and z1\1\4c2..cycle;
+ proof_labels (
+ 1\0\0,
+ 1\0\1,
+ 1\0\2,
+ 1\0\3,
+ 1\0\4,
+ 1\0\5,
+ 1\0\6,
+ 1\0\7,
+ 1\0\8,
+ 1\0\9,
+ 1\0\10,
+ 1\0\11,
+ 1\0\12,
+ 1\0\13,
+ 1\0\14,
+ 1\0\15,
+ 1\0\16,
+ 1\0\17,
+ 1\0\18,
+ 1\1\0,
+ 1\1\1,
+ 1\1\2,
+ 1\1\3,
+ 1\1\4,
+);
+endchar;
+
+beginchar (TIB_GA, 11.081u#, 6.745u#, 6.504u#);
+ "ga";
+ z2\0\0s = (0.964u,5.300u);
+ z2\0\0 = (1.927u,5.059u);
+ z2\0\1c1 = (1.563u,4.416u);
+ z2\0\1c2 = (-0.036u,1.577u);
+ z2\0\1 = (1.043u,1.088u);
+ z2\0\2c1 = (1.516u,0.932u);
+ z2\0\2c2 = (3.466u,1.402u);
+ z2\0\2 = (4.576u,1.088u);
+ z2\0\3c1 = (5.721u,0.683u);
+ z2\0\3c2 = (5.859u,-0.140u);
+ z2\0\3 = (6.745u,-0.723u);
+ z2\0\4c1 = (6.745u,0.540u);
+ z2\0\4c2 = (6.388u,4.461u);
+ z2\0\4 = (7.742u,5.018u);
+ z2\0\5c1 = (8.925u,5.506u);
+ z2\0\5c2 = (9.139u,3.884u);
+ z2\0\5 = (9.154u,3.132u);
+ z2\0\6 = (9.154u,0.241u);
+ z2\0\7 = (9.395u,-1.927u);
+ z2\0\8 = (9.395u,-3.613u);
+ z2\0\9 = (9.636u,-6.263u);
+ z2\0\10 = (10.118u,-6.263u);
+ z2\0\11 = (10.118u,1.204u);
+ z2\0\12 = (10.577u,5.059u);
+ z2\0\13c1 = (10.594u,5.384u);
+ z2\0\13c2 = (10.600u,5.891u);
+ z2\0\13 = (10.455u,6.188u);
+ z2\0\14c1 = (10.118u,6.879u);
+ z2\0\14c2 = (9.075u,6.744u);
+ z2\0\14 = (8.431u,6.745u);
+ z2\0\15c1 = (7.255u,6.747u);
+ z2\0\15c2 = (2.239u,6.940u);
+ z2\0\15 = (1.521u,6.462u);
+ z2\0\16c1 = (1.074u,6.165u);
+ z2\0\16c2 = (1.046u,5.780u);
+ z2\1\0s = (6.022u,1.204u);
+ z2\1\0c1 = (3.968u,2.384u);
+ z2\1\0c2 = (3.971u,2.868u);
+ z2\1\0 = (1.445u,2.891u);
+ z2\1\1c1 = (1.956u,4.429u);
+ z2\1\1c2 = (2.833u,5.424u);
+ z2\1\1 = (4.573u,5.271u);
+ z2\1\2c1 = (5.040u,5.229u);
+ z2\1\2c2 = (5.410u,5.141u);
+ z2\1\2 = (5.665u,4.714u);
+ z2\1\3c1 = (6.091u,4.000u);
+ z2\1\3c2 = (6.022u,2.066u);
+ fill_or_unfill z2\0\0s
+ --z2\0\0
+ ..controls z2\0\1c1 and z2\0\1c2..z2\0\1
+ ..controls z2\0\2c1 and z2\0\2c2..z2\0\2
+ ..controls z2\0\3c1 and z2\0\3c2..z2\0\3
+ ..controls z2\0\4c1 and z2\0\4c2..z2\0\4
+ ..controls z2\0\5c1 and z2\0\5c2..z2\0\5
+ --z2\0\6
+ --z2\0\7
+ --z2\0\8
+ --z2\0\9
+ --z2\0\10
+ --z2\0\11
+ --z2\0\12
+ ..controls z2\0\13c1 and z2\0\13c2..z2\0\13
+ ..controls z2\0\14c1 and z2\0\14c2..z2\0\14
+ ..controls z2\0\15c1 and z2\0\15c2..z2\0\15
+ ..controls z2\0\16c1 and z2\0\16c2..cycle;
+ fill_or_unfill z2\1\0s
+ ..controls z2\1\0c1 and z2\1\0c2..z2\1\0
+ ..controls z2\1\1c1 and z2\1\1c2..z2\1\1
+ ..controls z2\1\2c1 and z2\1\2c2..z2\1\2
+ ..controls z2\1\3c1 and z2\1\3c2..cycle;
+ proof_labels (
+ 2\0\0,
+ 2\0\1,
+ 2\0\2,
+ 2\0\3,
+ 2\0\4,
+ 2\0\5,
+ 2\0\6,
+ 2\0\7,
+ 2\0\8,
+ 2\0\9,
+ 2\0\10,
+ 2\0\11,
+ 2\0\12,
+ 2\0\13,
+ 2\0\14,
+ 2\0\15,
+ 2\0\16,
+ 2\1\0,
+ 2\1\1,
+ 2\1\2,
+ 2\1\3,
+);
+endchar;
+
+beginchar (TIB_NGA, 8.190u#, 6.745u#, 1.927u#);
+ "nga";
+ z3\0\0s = (0.482u,-0.723u);
+ z3\0\0c1 = (1.935u,-0.691u);
+ z3\0\0c2 = (3.370u,-0.268u);
+ z3\0\0 = (4.818u,-0.582u);
+ z3\0\1c1 = (5.851u,-0.806u);
+ z3\0\1c2 = (6.711u,-1.372u);
+ z3\0\1 = (7.709u,-1.686u);
+ z3\0\2c1 = (7.660u,-1.267u);
+ z3\0\2c2 = (7.637u,-0.888u);
+ z3\0\2 = (7.426u,-0.506u);
+ z3\0\3c1 = (6.430u,1.291u);
+ z3\0\3c2 = (3.019u,1.444u);
+ z3\0\3 = (1.204u,1.445u);
+ z3\0\4c1 = (1.204u,2.309u);
+ z3\0\4c2 = (1.042u,4.038u);
+ z3\0\4 = (1.623u,4.695u);
+ z3\0\5c1 = (2.621u,5.826u);
+ z3\0\5c2 = (5.370u,4.973u);
+ z3\0\5 = (6.713u,5.403u);
+ z3\0\6c1 = (7.358u,5.610u);
+ z3\0\6c2 = (7.611u,6.263u);
+ z3\0\6 = (6.909u,6.602u);
+ z3\0\7c1 = (6.576u,6.763u);
+ z3\0\7c2 = (5.915u,6.742u);
+ z3\0\7 = (5.541u,6.745u);
+ z3\0\8c1 = (4.771u,6.750u);
+ z3\0\8c2 = (1.767u,6.831u);
+ z3\0\8 = (1.239u,6.601u);
+ z3\0\9c1 = (0.933u,6.468u);
+ z3\0\9c2 = (0.759u,6.294u);
+ z3\0\9 = (0.626u,5.987u);
+ z3\0\10c1 = (0.368u,5.394u);
+ z3\0\10c2 = (0.482u,0.314u);
+ fill_or_unfill z3\0\0s
+ ..controls z3\0\0c1 and z3\0\0c2..z3\0\0
+ ..controls z3\0\1c1 and z3\0\1c2..z3\0\1
+ ..controls z3\0\2c1 and z3\0\2c2..z3\0\2
+ ..controls z3\0\3c1 and z3\0\3c2..z3\0\3
+ ..controls z3\0\4c1 and z3\0\4c2..z3\0\4
+ ..controls z3\0\5c1 and z3\0\5c2..z3\0\5
+ ..controls z3\0\6c1 and z3\0\6c2..z3\0\6
+ ..controls z3\0\7c1 and z3\0\7c2..z3\0\7
+ ..controls z3\0\8c1 and z3\0\8c2..z3\0\8
+ ..controls z3\0\9c1 and z3\0\9c2..z3\0\9
+ ..controls z3\0\10c1 and z3\0\10c2..cycle;
+ proof_labels (
+ 3\0\0,
+ 3\0\1,
+ 3\0\2,
+ 3\0\3,
+ 3\0\4,
+ 3\0\5,
+ 3\0\6,
+ 3\0\7,
+ 3\0\8,
+ 3\0\9,
+ 3\0\10,
+);
+endchar;
+
+beginchar (TIB_CA, 8.913u#, 6.745u#, 1.445u#);
+ "ca";
+ z4\0\0s = (1.927u,6.022u);
+ z4\0\0 = (1.927u,5.541u);
+ z4\0\1 = (2.650u,5.354u);
+ z4\0\2c1 = (3.166u,5.271u);
+ z4\0\2c2 = (4.072u,5.364u);
+ z4\0\2 = (4.488u,5.054u);
+ z4\0\3c1 = (5.232u,4.499u);
+ z4\0\3c2 = (4.370u,3.734u);
+ z4\0\3 = (3.850u,3.407u);
+ z4\0\4c1 = (2.802u,2.856u);
+ z4\0\4c2 = (1.589u,3.172u);
+ z4\0\4 = (0.482u,3.407u);
+ z4\0\5 = (1.350u,1.897u);
+ z4\0\6c1 = (1.758u,1.085u);
+ z4\0\6c2 = (1.800u,0.080u);
+ z4\0\6 = (2.509u,-0.566u);
+ z4\0\7c1 = (2.759u,-0.794u);
+ z4\0\7c2 = (3.057u,-0.945u);
+ z4\0\7 = (3.376u,-1.037u);
+ z4\0\8c1 = (4.055u,-1.267u);
+ z4\0\8c2 = (6.325u,-1.286u);
+ z4\0\8 = (6.982u,-1.037u);
+ z4\0\9c1 = (7.489u,-0.827u);
+ z4\0\9c2 = (7.894u,-0.472u);
+ z4\0\9 = (8.148u,0.010u);
+ z4\0\10c1 = (9.396u,2.374u);
+ z4\0\10c2 = (5.677u,3.471u);
+ z4\0\10 = (6.103u,4.742u);
+ z4\0\11c1 = (6.323u,5.396u);
+ z4\0\11c2 = (7.521u,5.190u);
+ z4\0\11 = (8.060u,5.682u);
+ z4\0\12c1 = (8.260u,5.865u);
+ z4\0\12c2 = (8.307u,6.043u);
+ z4\0\12 = (8.431u,6.263u);
+ z4\0\13c1 = (8.028u,6.431u);
+ z4\0\13c2 = (7.661u,6.586u);
+ z4\0\13 = (7.227u,6.642u);
+ z4\0\14c1 = (6.480u,6.802u);
+ z4\0\14c2 = (4.104u,6.791u);
+ z4\0\14 = (3.372u,6.642u);
+ z4\0\15c1 = (2.849u,6.493u);
+ z4\0\15c2 = (2.402u,6.264u);
+ z4\1\0s = (2.650u,2.409u);
+ z4\1\0c1 = (3.125u,2.563u);
+ z4\1\0c2 = (3.830u,2.833u);
+ z4\1\0 = (4.327u,2.772u);
+ z4\1\1c1 = (5.181u,2.668u);
+ z4\1\1c2 = (6.916u,0.921u);
+ z4\1\1 = (6.770u,0.032u);
+ z4\1\2c1 = (6.601u,-0.994u);
+ z4\1\2c2 = (5.087u,-0.926u);
+ z4\1\2 = (4.429u,-0.460u);
+ z4\1\3c1 = (4.071u,-0.206u);
+ z4\1\3c2 = (3.888u,0.121u);
+ z4\1\3 = (3.676u,0.492u);
+ fill_or_unfill z4\0\0s
+ --z4\0\0
+ --z4\0\1
+ ..controls z4\0\2c1 and z4\0\2c2..z4\0\2
+ ..controls z4\0\3c1 and z4\0\3c2..z4\0\3
+ ..controls z4\0\4c1 and z4\0\4c2..z4\0\4
+ --z4\0\5
+ ..controls z4\0\6c1 and z4\0\6c2..z4\0\6
+ ..controls z4\0\7c1 and z4\0\7c2..z4\0\7
+ ..controls z4\0\8c1 and z4\0\8c2..z4\0\8
+ ..controls z4\0\9c1 and z4\0\9c2..z4\0\9
+ ..controls z4\0\10c1 and z4\0\10c2..z4\0\10
+ ..controls z4\0\11c1 and z4\0\11c2..z4\0\11
+ ..controls z4\0\12c1 and z4\0\12c2..z4\0\12
+ ..controls z4\0\13c1 and z4\0\13c2..z4\0\13
+ ..controls z4\0\14c1 and z4\0\14c2..z4\0\14
+ ..controls z4\0\15c1 and z4\0\15c2..cycle;
+ fill_or_unfill z4\1\0s
+ ..controls z4\1\0c1 and z4\1\0c2..z4\1\0
+ ..controls z4\1\1c1 and z4\1\1c2..z4\1\1
+ ..controls z4\1\2c1 and z4\1\2c2..z4\1\2
+ ..controls z4\1\3c1 and z4\1\3c2..z4\1\3
+ --cycle;
+ proof_labels (
+ 4\0\0,
+ 4\0\1,
+ 4\0\2,
+ 4\0\3,
+ 4\0\4,
+ 4\0\5,
+ 4\0\6,
+ 4\0\7,
+ 4\0\8,
+ 4\0\9,
+ 4\0\10,
+ 4\0\11,
+ 4\0\12,
+ 4\0\13,
+ 4\0\14,
+ 4\0\15,
+ 4\1\0,
+ 4\1\1,
+ 4\1\2,
+ 4\1\3,
+ 4\1\4,
+);
+endchar;
+
+beginchar (TIB_CHA, 10.600u#, 6.745u#, 1.927u#);
+ "cha";
+ z5\0\0s = (5.059u,3.613u);
+ z5\0\0c1 = (3.239u,3.568u);
+ z5\0\0c2 = (1.429u,3.075u);
+ z5\0\0 = (0.725u,1.203u);
+ z5\0\1c1 = (0.514u,0.658u);
+ z5\0\1c2 = (0.444u,0.075u);
+ z5\0\1 = (0.725u,-0.459u);
+ z5\0\2c1 = (1.420u,-1.756u);
+ z5\0\2c2 = (3.428u,-2.044u);
+ z5\0\2 = (4.506u,-1.082u);
+ z5\0\3c1 = (4.794u,-0.825u);
+ z5\0\3c2 = (4.892u,-0.569u);
+ z5\0\3 = (5.059u,-0.241u);
+ z5\0\4c1 = (5.516u,-0.632u);
+ z5\0\4c2 = (5.990u,-1.171u);
+ z5\0\4 = (6.526u,-1.443u);
+ z5\0\5c1 = (6.978u,-1.674u);
+ z5\0\5c2 = (7.454u,-1.684u);
+ z5\0\5 = (7.950u,-1.684u);
+ z5\0\6c1 = (8.396u,-1.684u);
+ z5\0\6c2 = (8.949u,-1.679u);
+ z5\0\6 = (9.341u,-1.440u);
+ z5\0\7c1 = (10.262u,-0.878u);
+ z5\0\7c2 = (10.281u,0.817u);
+ z5\0\7 = (9.835u,1.683u);
+ z5\0\8c1 = (9.616u,2.106u);
+ z5\0\8c2 = (9.290u,2.448u);
+ z5\0\8 = (8.903u,2.722u);
+ z5\0\9c1 = (8.052u,3.324u);
+ z5\0\9c2 = (6.560u,3.559u);
+ z5\0\9 = (5.541u,3.854u);
+ z5\0\10c1 = (5.700u,4.234u);
+ z5\0\10c2 = (5.824u,4.631u);
+ z5\0\10 = (6.144u,4.915u);
+ z5\0\11c1 = (6.847u,5.537u);
+ z5\0\11c2 = (8.760u,5.006u);
+ z5\0\11 = (8.767u,6.003u);
+ z5\0\12c1 = (8.769u,6.276u);
+ z5\0\12c2 = (8.587u,6.452u);
+ z5\0\12 = (8.360u,6.588u);
+ z5\0\13c1 = (7.808u,6.848u);
+ z5\0\13c2 = (4.030u,6.810u);
+ z5\0\13 = (3.387u,6.588u);
+ z5\0\14c1 = (3.130u,6.527u);
+ z5\0\14c2 = (2.830u,6.403u);
+ z5\0\14 = (2.690u,6.154u);
+ z5\0\15c1 = (2.239u,5.352u);
+ z5\0\15c2 = (3.701u,5.319u);
+ z5\0\15 = (4.082u,5.157u);
+ z5\0\16c1 = (4.329u,5.051u);
+ z5\0\16c2 = (4.498u,4.951u);
+ z5\0\16 = (4.674u,4.742u);
+ z5\0\17c1 = (4.965u,4.398u);
+ z5\0\17c2 = (4.990u,4.033u);
+ z5\1\0s = (5.059u,2.168u);
+ z5\1\0c1 = (5.053u,1.609u);
+ z5\1\0c2 = (5.076u,1.024u);
+ z5\1\0 = (4.902u,0.485u);
+ z5\1\1c1 = (3.997u,-2.329u);
+ z5\1\1c2 = (0.452u,-0.841u);
+ z5\1\1 = (1.628u,0.932u);
+ z5\1\2c1 = (2.023u,1.529u);
+ z5\1\2c2 = (2.711u,1.781u);
+ z5\1\2 = (3.372u,1.951u);
+ z5\1\3c1 = (3.937u,2.095u);
+ z5\1\3c2 = (4.480u,2.141u);
+ z5\2\0s = (5.782u,2.168u);
+ z5\2\0 = (7.708u,1.590u);
+ z5\2\1c1 = (8.290u,1.358u);
+ z5\2\1c2 = (8.817u,1.054u);
+ z5\2\1 = (9.108u,0.469u);
+ z5\2\2c1 = (9.964u,-1.254u);
+ z5\2\2c2 = (7.213u,-2.110u);
+ z5\2\2 = (6.077u,-0.227u);
+ z5\2\3c1 = (5.567u,0.616u);
+ z5\2\3c2 = (5.543u,1.248u);
+ fill_or_unfill z5\0\0s
+ ..controls z5\0\0c1 and z5\0\0c2..z5\0\0
+ ..controls z5\0\1c1 and z5\0\1c2..z5\0\1
+ ..controls z5\0\2c1 and z5\0\2c2..z5\0\2
+ ..controls z5\0\3c1 and z5\0\3c2..z5\0\3
+ ..controls z5\0\4c1 and z5\0\4c2..z5\0\4
+ ..controls z5\0\5c1 and z5\0\5c2..z5\0\5
+ ..controls z5\0\6c1 and z5\0\6c2..z5\0\6
+ ..controls z5\0\7c1 and z5\0\7c2..z5\0\7
+ ..controls z5\0\8c1 and z5\0\8c2..z5\0\8
+ ..controls z5\0\9c1 and z5\0\9c2..z5\0\9
+ ..controls z5\0\10c1 and z5\0\10c2..z5\0\10
+ ..controls z5\0\11c1 and z5\0\11c2..z5\0\11
+ ..controls z5\0\12c1 and z5\0\12c2..z5\0\12
+ ..controls z5\0\13c1 and z5\0\13c2..z5\0\13
+ ..controls z5\0\14c1 and z5\0\14c2..z5\0\14
+ ..controls z5\0\15c1 and z5\0\15c2..z5\0\15
+ ..controls z5\0\16c1 and z5\0\16c2..z5\0\16
+ ..controls z5\0\17c1 and z5\0\17c2..cycle;
+ fill_or_unfill z5\1\0s
+ ..controls z5\1\0c1 and z5\1\0c2..z5\1\0
+ ..controls z5\1\1c1 and z5\1\1c2..z5\1\1
+ ..controls z5\1\2c1 and z5\1\2c2..z5\1\2
+ ..controls z5\1\3c1 and z5\1\3c2..cycle;
+ fill_or_unfill z5\2\0s
+ --z5\2\0
+ ..controls z5\2\1c1 and z5\2\1c2..z5\2\1
+ ..controls z5\2\2c1 and z5\2\2c2..z5\2\2
+ ..controls z5\2\3c1 and z5\2\3c2..cycle;
+ proof_labels (
+ 5\0\0,
+ 5\0\1,
+ 5\0\2,
+ 5\0\3,
+ 5\0\4,
+ 5\0\5,
+ 5\0\6,
+ 5\0\7,
+ 5\0\8,
+ 5\0\9,
+ 5\0\10,
+ 5\0\11,
+ 5\0\12,
+ 5\0\13,
+ 5\0\14,
+ 5\0\15,
+ 5\0\16,
+ 5\0\17,
+ 5\1\0,
+ 5\1\1,
+ 5\1\2,
+ 5\1\3,
+ 5\2\0,
+ 5\2\1,
+ 5\2\2,
+ 5\2\3,
+);
+endchar;
+
+beginchar (TIB_JA, 7.709u#, 6.745u#, 1.927u#);
+ "ja";
+ z6\0\0s = (0.482u,6.693u);
+ z6\0\0 = (0.482u,-0.964u);
+ z6\0\1 = (2.891u,-0.597u);
+ z6\0\2c1 = (4.531u,-0.349u);
+ z6\0\2c2 = (5.805u,-1.007u);
+ z6\0\2 = (7.227u,-1.686u);
+ z6\0\3c1 = (6.371u,1.218u);
+ z6\0\3c2 = (3.585u,0.723u);
+ z6\0\3 = (1.204u,0.723u);
+ z6\0\4 = (1.204u,2.410u);
+ z6\0\5 = (4.818u,2.410u);
+ z6\0\6c1 = (5.142u,2.416u);
+ z6\0\6c2 = (5.653u,2.408u);
+ z6\0\6 = (5.946u,2.553u);
+ z6\0\7c1 = (6.629u,2.890u);
+ z6\0\7c2 = (6.406u,3.584u);
+ z6\0\7 = (5.746u,3.817u);
+ z6\0\8c1 = (5.283u,3.916u);
+ z6\0\8c2 = (1.945u,3.854u);
+ z6\0\8 = (1.204u,3.817u);
+ z6\0\9 = (1.204u,5.351u);
+ z6\0\10c1 = (2.024u,5.300u);
+ z6\0\10c2 = (5.182u,5.224u);
+ z6\0\10 = (5.749u,5.351u);
+ z6\0\11c1 = (6.090u,5.511u);
+ z6\0\11c2 = (6.481u,5.765u);
+ z6\0\11 = (6.334u,6.185u);
+ z6\0\12c1 = (6.243u,6.446u);
+ z6\0\12c2 = (5.993u,6.564u);
+ z6\0\12 = (5.749u,6.693u);
+ z6\0\13c1 = (5.179u,6.822u);
+ z6\0\13c2 = (1.367u,6.745u);
+ fill_or_unfill z6\0\0s
+ --z6\0\0
+ --z6\0\1
+ ..controls z6\0\2c1 and z6\0\2c2..z6\0\2
+ ..controls z6\0\3c1 and z6\0\3c2..z6\0\3
+ --z6\0\4
+ --z6\0\5
+ ..controls z6\0\6c1 and z6\0\6c2..z6\0\6
+ ..controls z6\0\7c1 and z6\0\7c2..z6\0\7
+ ..controls z6\0\8c1 and z6\0\8c2..z6\0\8
+ --z6\0\9
+ ..controls z6\0\10c1 and z6\0\10c2..z6\0\10
+ ..controls z6\0\11c1 and z6\0\11c2..z6\0\11
+ ..controls z6\0\12c1 and z6\0\12c2..z6\0\12
+ ..controls z6\0\13c1 and z6\0\13c2..cycle;
+ proof_labels (
+ 6\0\0,
+ 6\0\1,
+ 6\0\2,
+ 6\0\3,
+ 6\0\4,
+ 6\0\5,
+ 6\0\6,
+ 6\0\7,
+ 6\0\8,
+ 6\0\9,
+ 6\0\10,
+ 6\0\11,
+ 6\0\12,
+ 6\0\13,
+);
+endchar;
+
+beginchar (TIB_NYA, 7.950u#, 6.745u#, 6.504u#);
+ "nya";
+ z7\0\0s = (1.204u,4.336u);
+ z7\0\0c1 = (1.371u,4.637u);
+ z7\0\0c2 = (1.450u,4.868u);
+ z7\0\0 = (1.757u,5.073u);
+ z7\0\1c1 = (2.416u,5.512u);
+ z7\0\1c2 = (4.271u,5.399u);
+ z7\0\1 = (4.227u,4.323u);
+ z7\0\2c1 = (4.182u,3.217u);
+ z7\0\2c2 = (2.085u,2.416u);
+ z7\0\2 = (2.048u,0.968u);
+ z7\0\3c1 = (2.021u,-0.049u);
+ z7\0\3c2 = (3.210u,-0.720u);
+ z7\0\3 = (3.952u,0.085u);
+ z7\0\4c1 = (4.196u,0.349u);
+ z7\0\4c2 = (4.237u,0.640u);
+ z7\0\4 = (4.336u,0.964u);
+ z7\0\5 = (2.891u,1.445u);
+ z7\0\6c1 = (3.874u,2.424u);
+ z7\0\6c2 = (5.312u,2.960u);
+ z7\0\6 = (6.309u,1.633u);
+ z7\0\7c1 = (6.717u,1.090u);
+ z7\0\7c2 = (6.744u,0.635u);
+ z7\0\7 = (6.561u,0.000u);
+ z7\0\8c1 = (6.356u,-0.708u);
+ z7\0\8c2 = (5.923u,-1.332u);
+ z7\0\8 = (5.506u,-1.927u);
+ z7\0\9 = (4.051u,-3.854u);
+ z7\0\10c1 = (3.332u,-4.672u);
+ z7\0\10c2 = (2.566u,-5.371u);
+ z7\0\10 = (1.927u,-6.263u);
+ z7\0\11c1 = (2.373u,-6.169u);
+ z7\0\11c2 = (2.733u,-6.097u);
+ z7\0\11 = (3.128u,-5.845u);
+ z7\0\12c1 = (4.331u,-5.079u);
+ z7\0\12c2 = (6.355u,-2.075u);
+ z7\0\12 = (6.944u,-0.723u);
+ z7\0\13c1 = (7.824u,1.296u);
+ z7\0\13c2 = (7.966u,4.353u);
+ z7\0\13 = (4.818u,3.613u);
+ z7\0\14 = (5.487u,5.055u);
+ z7\0\15c1 = (5.592u,5.332u);
+ z7\0\15c2 = (5.705u,5.629u);
+ z7\0\15 = (5.612u,5.928u);
+ z7\0\16c1 = (5.282u,6.988u);
+ z7\0\16c2 = (2.937u,6.832u);
+ z7\0\16 = (2.171u,6.429u);
+ z7\0\17c1 = (1.620u,6.138u);
+ z7\0\17c2 = (1.087u,5.609u);
+ z7\0\17 = (0.798u,5.055u);
+ z7\0\18c1 = (0.531u,4.543u);
+ z7\0\18c2 = (0.305u,3.300u);
+ z7\0\18 = (1.062u,3.064u);
+ z7\0\19c1 = (1.587u,2.900u);
+ z7\0\19c2 = (2.122u,3.458u);
+ z7\0\19 = (1.750u,3.969u);
+ z7\0\20c1 = (1.598u,4.179u);
+ z7\0\20c2 = (1.408u,4.218u);
+ fill_or_unfill z7\0\0s
+ ..controls z7\0\0c1 and z7\0\0c2..z7\0\0
+ ..controls z7\0\1c1 and z7\0\1c2..z7\0\1
+ ..controls z7\0\2c1 and z7\0\2c2..z7\0\2
+ ..controls z7\0\3c1 and z7\0\3c2..z7\0\3
+ ..controls z7\0\4c1 and z7\0\4c2..z7\0\4
+ --z7\0\5
+ ..controls z7\0\6c1 and z7\0\6c2..z7\0\6
+ ..controls z7\0\7c1 and z7\0\7c2..z7\0\7
+ ..controls z7\0\8c1 and z7\0\8c2..z7\0\8
+ --z7\0\9
+ ..controls z7\0\10c1 and z7\0\10c2..z7\0\10
+ ..controls z7\0\11c1 and z7\0\11c2..z7\0\11
+ ..controls z7\0\12c1 and z7\0\12c2..z7\0\12
+ ..controls z7\0\13c1 and z7\0\13c2..z7\0\13
+ --z7\0\14
+ ..controls z7\0\15c1 and z7\0\15c2..z7\0\15
+ ..controls z7\0\16c1 and z7\0\16c2..z7\0\16
+ ..controls z7\0\17c1 and z7\0\17c2..z7\0\17
+ ..controls z7\0\18c1 and z7\0\18c2..z7\0\18
+ ..controls z7\0\19c1 and z7\0\19c2..z7\0\19
+ ..controls z7\0\20c1 and z7\0\20c2..cycle;
+ proof_labels (
+ 7\0\0,
+ 7\0\1,
+ 7\0\2,
+ 7\0\3,
+ 7\0\4,
+ 7\0\5,
+ 7\0\6,
+ 7\0\7,
+ 7\0\8,
+ 7\0\9,
+ 7\0\10,
+ 7\0\11,
+ 7\0\12,
+ 7\0\13,
+ 7\0\14,
+ 7\0\15,
+ 7\0\16,
+ 7\0\17,
+ 7\0\18,
+ 7\0\19,
+ 7\0\20,
+);
+endchar;
+
+beginchar (TIB_TA, 6.986u#, 6.745u#, 6.986u#);
+ "ta";
+ z8\0\0s = (0.520u,1.204u);
+ z8\0\0c1 = (2.201u,1.510u);
+ z8\0\0c2 = (3.501u,2.177u);
+ z8\0\0 = (4.964u,0.641u);
+ z8\0\1c1 = (5.318u,0.271u);
+ z8\0\1c2 = (5.591u,-0.205u);
+ z8\0\1 = (5.637u,-0.723u);
+ z8\0\2c1 = (5.675u,-1.142u);
+ z8\0\2c2 = (5.536u,-1.533u);
+ z8\0\2 = (5.419u,-1.927u);
+ z8\0\3 = (4.841u,-3.613u);
+ z8\0\4c1 = (4.362u,-4.685u);
+ z8\0\4c2 = (3.752u,-5.618u);
+ z8\0\4 = (3.372u,-6.745u);
+ z8\0\5 = (3.971u,-6.374u);
+ z8\0\6c1 = (4.410u,-5.978u);
+ z8\0\6c2 = (4.722u,-5.334u);
+ z8\0\6 = (5.003u,-4.818u);
+ z8\0\7 = (5.864u,-3.132u);
+ z8\0\8c1 = (6.433u,-1.608u);
+ z8\0\8c2 = (7.020u,1.241u);
+ z8\0\8 = (5.681u,2.513u);
+ z8\0\9c1 = (4.119u,3.996u);
+ z8\0\9c2 = (2.798u,1.927u);
+ z8\0\9 = (1.445u,4.818u);
+ z8\0\10c1 = (1.924u,4.998u);
+ z8\0\10c2 = (2.381u,5.176u);
+ z8\0\10 = (2.891u,5.250u);
+ z8\0\11c1 = (3.637u,5.357u);
+ z8\0\11c2 = (5.827u,5.087u);
+ z8\0\11 = (6.285u,5.680u);
+ z8\0\12c1 = (6.351u,5.832u);
+ z8\0\12c2 = (6.382u,6.025u);
+ z8\0\12 = (6.285u,6.201u);
+ z8\0\13c1 = (6.086u,6.945u);
+ z8\0\13c2 = (4.247u,6.745u);
+ z8\0\13 = (3.613u,6.745u);
+ z8\0\14c1 = (3.001u,6.745u);
+ z8\0\14c2 = (1.315u,6.853u);
+ z8\0\14 = (0.867u,6.499u);
+ z8\0\15c1 = (0.685u,6.355u);
+ z8\0\15c2 = (0.621u,6.204u);
+ z8\0\15 = (0.520u,5.987u);
+ z8\0\16c1 = (0.419u,5.519u);
+ z8\0\16c2 = (0.482u,1.970u);
+ fill_or_unfill z8\0\0s
+ ..controls z8\0\0c1 and z8\0\0c2..z8\0\0
+ ..controls z8\0\1c1 and z8\0\1c2..z8\0\1
+ ..controls z8\0\2c1 and z8\0\2c2..z8\0\2
+ --z8\0\3
+ ..controls z8\0\4c1 and z8\0\4c2..z8\0\4
+ --z8\0\5
+ ..controls z8\0\6c1 and z8\0\6c2..z8\0\6
+ --z8\0\7
+ ..controls z8\0\8c1 and z8\0\8c2..z8\0\8
+ ..controls z8\0\9c1 and z8\0\9c2..z8\0\9
+ ..controls z8\0\10c1 and z8\0\10c2..z8\0\10
+ ..controls z8\0\11c1 and z8\0\11c2..z8\0\11
+ ..controls z8\0\12c1 and z8\0\12c2..z8\0\12
+ ..controls z8\0\13c1 and z8\0\13c2..z8\0\13
+ ..controls z8\0\14c1 and z8\0\14c2..z8\0\14
+ ..controls z8\0\15c1 and z8\0\15c2..z8\0\15
+ ..controls z8\0\16c1 and z8\0\16c2..cycle;
+ proof_labels (
+ 8\0\0,
+ 8\0\1,
+ 8\0\2,
+ 8\0\3,
+ 8\0\4,
+ 8\0\5,
+ 8\0\6,
+ 8\0\7,
+ 8\0\8,
+ 8\0\9,
+ 8\0\10,
+ 8\0\11,
+ 8\0\12,
+ 8\0\13,
+ 8\0\14,
+ 8\0\15,
+ 8\0\16,
+);
+endchar;
+
+beginchar (TIB_THA, 7.950u#, 6.745u#, 4.336u#);
+ "tha";
+ z9\0\0s = (2.891u,1.445u);
+ z9\0\0 = (1.691u,0.331u);
+ z9\0\1c1 = (1.362u,0.051u);
+ z9\0\1c2 = (0.963u,-0.202u);
+ z9\0\1 = (0.723u,-0.569u);
+ z9\0\2c1 = (0.582u,-0.787u);
+ z9\0\2c2 = (0.558u,-0.970u);
+ z9\0\2 = (0.482u,-1.204u);
+ z9\0\3 = (2.891u,-1.083u);
+ z9\0\4c1 = (3.988u,-1.171u);
+ z9\0\4c2 = (5.738u,-2.164u);
+ z9\0\4 = (6.258u,-3.141u);
+ z9\0\5c1 = (6.428u,-3.459u);
+ z9\0\5c2 = (6.449u,-3.752u);
+ z9\0\5 = (6.504u,-4.095u);
+ z9\0\6 = (7.227u,-4.095u);
+ z9\0\7 = (7.227u,2.409u);
+ z9\0\8 = (7.454u,5.299u);
+ z9\0\9c1 = (7.454u,5.568u);
+ z9\0\9c2 = (7.444u,5.942u);
+ z9\0\9 = (7.324u,6.188u);
+ z9\0\10c1 = (7.034u,6.781u);
+ z9\0\10c2 = (6.345u,6.734u);
+ z9\0\10 = (5.781u,6.745u);
+ z9\0\11 = (3.613u,6.745u);
+ z9\0\12c1 = (3.111u,6.742u);
+ z9\0\12c2 = (2.233u,6.784u);
+ z9\0\12 = (1.824u,6.462u);
+ z9\0\13c1 = (1.395u,6.123u);
+ z9\0\13c2 = (1.512u,5.598u);
+ z9\0\13 = (1.436u,5.126u);
+ z9\0\14 = (1.070u,3.845u);
+ z9\0\15c1 = (0.866u,2.523u);
+ z9\0\15c2 = (1.774u,1.830u);
+ z9\1\0s = (3.855u,5.192u);
+ z9\1\0c1 = (4.356u,5.277u);
+ z9\1\0c2 = (5.247u,5.381u);
+ z9\1\0 = (5.706u,5.192u);
+ z9\1\1c1 = (5.977u,5.023u);
+ z9\1\1c2 = (6.116u,4.840u);
+ z9\1\1 = (6.174u,4.543u);
+ z9\1\2c1 = (6.366u,3.562u);
+ z9\1\2c2 = (5.220u,2.641u);
+ z9\1\2 = (4.336u,2.560u);
+ z9\1\3c1 = (3.365u,2.471u);
+ z9\1\3c2 = (1.342u,3.853u);
+ z9\1\3 = (2.517u,4.785u);
+ z9\1\4c1 = (2.871u,5.066u);
+ z9\1\4c2 = (3.425u,5.141u);
+ z9\2\0s = (6.525u,3.132u);
+ z9\2\0 = (6.525u,1.204u);
+ z9\2\1 = (6.734u,-0.241u);
+ z9\2\2 = (6.734u,-2.409u);
+ z9\2\3c1 = (5.555u,-1.318u);
+ z9\2\3c2 = (4.475u,-0.226u);
+ z9\2\3 = (2.891u,0.241u);
+ z9\2\4c1 = (3.604u,1.550u);
+ z9\2\4c2 = (5.091u,2.681u);
+ fill_or_unfill z9\0\0s
+ --z9\0\0
+ ..controls z9\0\1c1 and z9\0\1c2..z9\0\1
+ ..controls z9\0\2c1 and z9\0\2c2..z9\0\2
+ --z9\0\3
+ ..controls z9\0\4c1 and z9\0\4c2..z9\0\4
+ ..controls z9\0\5c1 and z9\0\5c2..z9\0\5
+ --z9\0\6
+ --z9\0\7
+ --z9\0\8
+ ..controls z9\0\9c1 and z9\0\9c2..z9\0\9
+ ..controls z9\0\10c1 and z9\0\10c2..z9\0\10
+ --z9\0\11
+ ..controls z9\0\12c1 and z9\0\12c2..z9\0\12
+ ..controls z9\0\13c1 and z9\0\13c2..z9\0\13
+ --z9\0\14
+ ..controls z9\0\15c1 and z9\0\15c2..cycle;
+ fill_or_unfill z9\1\0s
+ ..controls z9\1\0c1 and z9\1\0c2..z9\1\0
+ ..controls z9\1\1c1 and z9\1\1c2..z9\1\1
+ ..controls z9\1\2c1 and z9\1\2c2..z9\1\2
+ ..controls z9\1\3c1 and z9\1\3c2..z9\1\3
+ ..controls z9\1\4c1 and z9\1\4c2..cycle;
+ fill_or_unfill z9\2\0s
+ --z9\2\0
+ --z9\2\1
+ --z9\2\2
+ ..controls z9\2\3c1 and z9\2\3c2..z9\2\3
+ ..controls z9\2\4c1 and z9\2\4c2..cycle;
+ proof_labels (
+ 9\0\0,
+ 9\0\1,
+ 9\0\2,
+ 9\0\3,
+ 9\0\4,
+ 9\0\5,
+ 9\0\6,
+ 9\0\7,
+ 9\0\8,
+ 9\0\9,
+ 9\0\10,
+ 9\0\11,
+ 9\0\12,
+ 9\0\13,
+ 9\0\14,
+ 9\0\15,
+ 9\1\0,
+ 9\1\1,
+ 9\1\2,
+ 9\1\3,
+ 9\1\4,
+ 9\2\0,
+ 9\2\1,
+ 9\2\2,
+ 9\2\3,
+ 9\2\4,
+);
+endchar;
+
+beginchar (TIB_DA, 9.395u#, 6.745u#, 5.541u#);
+ "da";
+ z10\0\0s = (0.482u,1.445u);
+ z10\0\0c1 = (1.353u,1.485u);
+ z10\0\0c2 = (2.268u,1.725u);
+ z10\0\0 = (3.132u,1.639u);
+ z10\0\1c1 = (4.237u,1.528u);
+ z10\0\1c2 = (5.671u,0.798u);
+ z10\0\1 = (6.391u,-0.044u);
+ z10\0\2c1 = (7.293u,-1.099u);
+ z10\0\2c2 = (8.220u,-3.919u);
+ z10\0\2 = (8.672u,-5.300u);
+ z10\0\3c1 = (9.344u,-3.601u);
+ z10\0\3c2 = (8.059u,0.012u);
+ z10\0\3 = (7.035u,1.444u);
+ z10\0\4c1 = (6.619u,2.026u);
+ z10\0\4c2 = (6.175u,2.484u);
+ z10\0\4 = (5.540u,2.824u);
+ z10\0\5c1 = (4.341u,3.468u);
+ z10\0\5c2 = (2.998u,3.372u);
+ z10\0\5 = (1.686u,3.372u);
+ z10\0\6c1 = (1.941u,3.764u);
+ z10\0\6c2 = (2.176u,4.154u);
+ z10\0\6 = (2.522u,4.477u);
+ z10\0\7c1 = (4.016u,5.872u);
+ z10\0\7c2 = (6.198u,4.916u);
+ z10\0\7 = (7.071u,5.539u);
+ z10\0\8c1 = (7.401u,5.774u);
+ z10\0\8c2 = (7.538u,6.158u);
+ z10\0\8 = (7.709u,6.504u);
+ z10\0\9 = (6.986u,6.680u);
+ z10\0\10c1 = (6.435u,6.778u);
+ z10\0\10c2 = (2.388u,6.792u);
+ z10\0\10 = (1.941u,6.680u);
+ z10\0\11c1 = (1.718u,6.609u);
+ z10\0\11c2 = (1.516u,6.533u);
+ z10\0\11 = (1.320u,6.360u);
+ z10\0\12c1 = (0.777u,5.746u);
+ z10\0\12c2 = (1.444u,4.853u);
+ z10\0\12 = (1.320u,4.095u);
+ z10\0\13 = (0.677u,2.650u);
+ z10\0\14c1 = (0.536u,2.240u);
+ z10\0\14c2 = (0.512u,1.871u);
+ fill_or_unfill z10\0\0s
+ ..controls z10\0\0c1 and z10\0\0c2..z10\0\0
+ ..controls z10\0\1c1 and z10\0\1c2..z10\0\1
+ ..controls z10\0\2c1 and z10\0\2c2..z10\0\2
+ ..controls z10\0\3c1 and z10\0\3c2..z10\0\3
+ ..controls z10\0\4c1 and z10\0\4c2..z10\0\4
+ ..controls z10\0\5c1 and z10\0\5c2..z10\0\5
+ ..controls z10\0\6c1 and z10\0\6c2..z10\0\6
+ ..controls z10\0\7c1 and z10\0\7c2..z10\0\7
+ ..controls z10\0\8c1 and z10\0\8c2..z10\0\8
+ --z10\0\9
+ ..controls z10\0\10c1 and z10\0\10c2..z10\0\10
+ ..controls z10\0\11c1 and z10\0\11c2..z10\0\11
+ ..controls z10\0\12c1 and z10\0\12c2..z10\0\12
+ --z10\0\13
+ ..controls z10\0\14c1 and z10\0\14c2..cycle;
+ proof_labels (
+ 10\0\0,
+ 10\0\1,
+ 10\0\2,
+ 10\0\3,
+ 10\0\4,
+ 10\0\5,
+ 10\0\6,
+ 10\0\7,
+ 10\0\8,
+ 10\0\9,
+ 10\0\10,
+ 10\0\11,
+ 10\0\12,
+ 10\0\13,
+ 10\0\14,
+);
+endchar;
+
+beginchar (TIB_NA, 7.950u#, 6.745u#, 6.263u#);
+ "na";
+ z11\0\0s = (2.168u,5.300u);
+ z11\0\0c1 = (3.583u,5.216u);
+ z11\0\0c2 = (3.833u,5.066u);
+ z11\0\0 = (4.577u,3.807u);
+ z11\0\1c1 = (3.876u,3.854u);
+ z11\0\1c2 = (3.094u,3.918u);
+ z11\0\1 = (2.409u,3.807u);
+ z11\0\2c1 = (1.740u,3.606u);
+ z11\0\2c2 = (1.104u,3.242u);
+ z11\0\2 = (0.765u,2.625u);
+ z11\0\3c1 = (-0.601u,0.139u);
+ z11\0\3c2 = (3.807u,-2.182u);
+ z11\0\3 = (5.059u,1.445u);
+ z11\0\4c1 = (6.613u,0.083u);
+ z11\0\4c2 = (6.818u,-1.671u);
+ z11\0\4 = (7.026u,-3.613u);
+ z11\0\5 = (7.227u,-6.022u);
+ z11\0\6 = (7.405u,-5.486u);
+ z11\0\7c1 = (7.526u,-4.887u);
+ z11\0\7c2 = (7.494u,-0.664u);
+ z11\0\7 = (7.405u,0.000u);
+ z11\0\8c1 = (7.299u,0.656u);
+ z11\0\8c2 = (7.089u,1.337u);
+ z11\0\8 = (6.785u,1.926u);
+ z11\0\9c1 = (6.347u,2.775u);
+ z11\0\9c2 = (5.583u,3.313u);
+ z11\0\9 = (5.133u,4.117u);
+ z11\0\10c1 = (4.958u,4.430u);
+ z11\0\10c2 = (4.903u,4.719u);
+ z11\0\10 = (4.818u,5.059u);
+ z11\0\11c1 = (5.623u,5.066u);
+ z11\0\11c2 = (6.917u,4.978u);
+ z11\0\11 = (7.324u,5.848u);
+ z11\0\12c1 = (7.455u,6.129u);
+ z11\0\12c2 = (7.443u,6.445u);
+ z11\0\12 = (7.468u,6.745u);
+ z11\0\13c1 = (6.583u,6.745u);
+ z11\0\13c2 = (3.340u,6.902u);
+ z11\0\13 = (2.753u,6.499u);
+ z11\0\14c1 = (2.324u,6.204u);
+ z11\0\14c2 = (2.271u,5.765u);
+ z11\1\0s = (2.410u,2.778u);
+ z11\1\0c1 = (5.400u,2.992u);
+ z11\1\0c2 = (4.753u,0.468u);
+ z11\1\0 = (3.128u,0.114u);
+ z11\1\1c1 = (1.725u,-0.192u);
+ z11\1\1c2 = (0.323u,1.440u);
+ z11\1\1 = (1.722u,2.472u);
+ z11\1\2c1 = (1.952u,2.642u);
+ z11\1\2c2 = (2.155u,2.678u);
+ fill_or_unfill z11\0\0s
+ ..controls z11\0\0c1 and z11\0\0c2..z11\0\0
+ ..controls z11\0\1c1 and z11\0\1c2..z11\0\1
+ ..controls z11\0\2c1 and z11\0\2c2..z11\0\2
+ ..controls z11\0\3c1 and z11\0\3c2..z11\0\3
+ ..controls z11\0\4c1 and z11\0\4c2..z11\0\4
+ --z11\0\5
+ --z11\0\6
+ ..controls z11\0\7c1 and z11\0\7c2..z11\0\7
+ ..controls z11\0\8c1 and z11\0\8c2..z11\0\8
+ ..controls z11\0\9c1 and z11\0\9c2..z11\0\9
+ ..controls z11\0\10c1 and z11\0\10c2..z11\0\10
+ ..controls z11\0\11c1 and z11\0\11c2..z11\0\11
+ ..controls z11\0\12c1 and z11\0\12c2..z11\0\12
+ ..controls z11\0\13c1 and z11\0\13c2..z11\0\13
+ ..controls z11\0\14c1 and z11\0\14c2..cycle;
+ fill_or_unfill z11\1\0s
+ ..controls z11\1\0c1 and z11\1\0c2..z11\1\0
+ ..controls z11\1\1c1 and z11\1\1c2..z11\1\1
+ ..controls z11\1\2c1 and z11\1\2c2..cycle;
+ proof_labels (
+ 11\0\0,
+ 11\0\1,
+ 11\0\2,
+ 11\0\3,
+ 11\0\4,
+ 11\0\5,
+ 11\0\6,
+ 11\0\7,
+ 11\0\8,
+ 11\0\9,
+ 11\0\10,
+ 11\0\11,
+ 11\0\12,
+ 11\0\13,
+ 11\0\14,
+ 11\1\0,
+ 11\1\1,
+ 11\1\2,
+);
+endchar;
+
+beginchar (TIB_PA, 9.877u#, 6.745u#, 2.409u#);
+ "pa";
+ z12\0\0s = (2.168u,5.059u);
+ z12\0\0c1 = (1.820u,4.430u);
+ z12\0\0c2 = (1.508u,3.809u);
+ z12\0\0 = (1.262u,3.132u);
+ z12\0\1 = (0.482u,0.723u);
+ z12\0\2c1 = (2.404u,0.723u);
+ z12\0\2c2 = (4.766u,0.926u);
+ z12\0\2 = (6.402u,-0.273u);
+ z12\0\3c1 = (7.224u,-0.875u);
+ z12\0\3c2 = (7.762u,-1.673u);
+ z12\0\3 = (8.690u,-2.168u);
+ z12\0\4 = (8.690u,1.927u);
+ z12\0\5c1 = (8.672u,2.706u);
+ z12\0\5c2 = (8.600u,3.568u);
+ z12\0\5 = (8.690u,4.336u);
+ z12\0\6 = (9.395u,6.745u);
+ z12\0\7c1 = (8.846u,6.745u);
+ z12\0\7c2 = (7.597u,6.856u);
+ z12\0\7 = (7.244u,6.369u);
+ z12\0\8c1 = (6.896u,5.889u);
+ z12\0\8c2 = (7.427u,5.260u);
+ z12\0\8 = (7.577u,4.797u);
+ z12\0\9 = (7.716u,4.094u);
+ z12\0\10 = (7.968u,1.927u);
+ z12\0\11c1 = (8.129u,0.736u);
+ z12\0\11c2 = (8.241u,0.491u);
+ z12\0\11 = (7.968u,-0.723u);
+ z12\0\12c1 = (7.625u,-0.247u);
+ z12\0\12c2 = (7.314u,0.238u);
+ z12\0\12 = (6.908u,0.650u);
+ z12\0\13c1 = (6.145u,1.422u);
+ z12\0\13c2 = (4.693u,2.195u);
+ z12\0\13 = (3.613u,2.384u);
+ z12\0\14 = (1.686u,2.384u);
+ z12\0\15c1 = (2.112u,3.658u);
+ z12\0\15c2 = (3.034u,4.764u);
+ z12\0\15 = (4.335u,5.163u);
+ z12\0\16c1 = (4.714u,5.280u);
+ z12\0\16c2 = (5.298u,5.285u);
+ z12\0\16 = (5.604u,5.538u);
+ z12\0\17c1 = (5.969u,5.840u);
+ z12\0\17c2 = (5.971u,6.317u);
+ z12\0\17 = (6.022u,6.745u);
+ z12\0\18c1 = (5.238u,6.745u);
+ z12\0\18c2 = (2.813u,6.844u);
+ z12\0\18 = (2.223u,6.567u);
+ z12\0\19c1 = (1.964u,6.447u);
+ z12\0\19c2 = (1.745u,6.263u);
+ z12\0\19 = (1.658u,5.981u);
+ z12\0\20c1 = (1.501u,5.476u);
+ z12\0\20c2 = (1.822u,5.297u);
+ fill_or_unfill z12\0\0s
+ ..controls z12\0\0c1 and z12\0\0c2..z12\0\0
+ --z12\0\1
+ ..controls z12\0\2c1 and z12\0\2c2..z12\0\2
+ ..controls z12\0\3c1 and z12\0\3c2..z12\0\3
+ --z12\0\4
+ ..controls z12\0\5c1 and z12\0\5c2..z12\0\5
+ --z12\0\6
+ ..controls z12\0\7c1 and z12\0\7c2..z12\0\7
+ ..controls z12\0\8c1 and z12\0\8c2..z12\0\8
+ --z12\0\9
+ --z12\0\10
+ ..controls z12\0\11c1 and z12\0\11c2..z12\0\11
+ ..controls z12\0\12c1 and z12\0\12c2..z12\0\12
+ ..controls z12\0\13c1 and z12\0\13c2..z12\0\13
+ --z12\0\14
+ ..controls z12\0\15c1 and z12\0\15c2..z12\0\15
+ ..controls z12\0\16c1 and z12\0\16c2..z12\0\16
+ ..controls z12\0\17c1 and z12\0\17c2..z12\0\17
+ ..controls z12\0\18c1 and z12\0\18c2..z12\0\18
+ ..controls z12\0\19c1 and z12\0\19c2..z12\0\19
+ ..controls z12\0\20c1 and z12\0\20c2..cycle;
+ proof_labels (
+ 12\0\0,
+ 12\0\1,
+ 12\0\2,
+ 12\0\3,
+ 12\0\4,
+ 12\0\5,
+ 12\0\6,
+ 12\0\7,
+ 12\0\8,
+ 12\0\9,
+ 12\0\10,
+ 12\0\11,
+ 12\0\12,
+ 12\0\13,
+ 12\0\14,
+ 12\0\15,
+ 12\0\16,
+ 12\0\17,
+ 12\0\18,
+ 12\0\19,
+ 12\0\20,
+);
+endchar;
+
+beginchar (TIB_PHA, 9.877u#, 6.745u#, 2.409u#);
+ "pha";
+ z13\0\0s = (0.723u,5.541u);
+ z13\0\0 = (1.927u,5.300u);
+ z13\0\1 = (1.670u,4.336u);
+ z13\0\2c1 = (1.359u,3.565u);
+ z13\0\2c2 = (0.121u,1.657u);
+ z13\0\2 = (0.732u,0.870u);
+ z13\0\3c1 = (0.869u,0.693u);
+ z13\0\3c2 = (1.027u,0.637u);
+ z13\0\3 = (1.239u,0.629u);
+ z13\0\4 = (2.650u,0.629u);
+ z13\0\5c1 = (3.493u,0.635u);
+ z13\0\5c2 = (5.010u,0.339u);
+ z13\0\5 = (5.782u,0.011u);
+ z13\0\6c1 = (6.285u,-0.203u);
+ z13\0\6c2 = (6.764u,-0.488u);
+ z13\0\6 = (7.177u,-0.849u);
+ z13\0\7c1 = (7.723u,-1.325u);
+ z13\0\7c2 = (8.026u,-1.799u);
+ z13\0\7 = (8.687u,-2.168u);
+ z13\0\8 = (8.687u,1.445u);
+ z13\0\9 = (8.687u,3.613u);
+ z13\0\10c1 = (8.810u,4.324u);
+ z13\0\10c2 = (9.385u,5.376u);
+ z13\0\10 = (9.289u,5.987u);
+ z13\0\11c1 = (9.210u,6.487u);
+ z13\0\11c2 = (8.875u,6.640u);
+ z13\0\11 = (8.418u,6.689u);
+ z13\0\12c1 = (8.186u,6.744u);
+ z13\0\12c2 = (7.728u,6.734u);
+ z13\0\12 = (7.503u,6.689u);
+ z13\0\13c1 = (6.492u,6.376u);
+ z13\0\13c2 = (7.061u,5.548u);
+ z13\0\13 = (6.733u,4.859u);
+ z13\0\14c1 = (6.461u,4.288u);
+ z13\0\14c2 = (3.985u,2.297u);
+ z13\0\14 = (3.372u,2.195u);
+ z13\0\15c1 = (2.858u,2.109u);
+ z13\0\15c2 = (2.001u,2.359u);
+ z13\0\15 = (1.445u,2.409u);
+ z13\0\16c1 = (1.904u,3.415u);
+ z13\0\16c2 = (2.418u,4.264u);
+ z13\0\16 = (3.373u,4.882u);
+ z13\0\17c1 = (3.806u,5.162u);
+ z13\0\17c2 = (5.011u,5.408u);
+ z13\0\17 = (5.011u,6.022u);
+ z13\0\18c1 = (5.011u,7.072u);
+ z13\0\18c2 = (2.064u,6.802u);
+ z13\0\18 = (1.478u,6.462u);
+ z13\0\19c1 = (1.060u,6.220u);
+ z13\0\19c2 = (0.937u,5.941u);
+ z13\1\0s = (7.709u,4.336u);
+ z13\1\0c1 = (7.980u,2.825u);
+ z13\1\0c2 = (8.376u,1.263u);
+ z13\1\0 = (7.950u,-0.241u);
+ z13\1\1c1 = (6.784u,0.436u);
+ z13\1\1c2 = (5.895u,1.298u);
+ z13\1\1 = (4.577u,1.686u);
+ z13\1\2c1 = (4.652u,1.910u);
+ z13\1\2c2 = (4.675u,2.081u);
+ z13\1\2 = (4.813u,2.288u);
+ z13\1\3c1 = (5.322u,3.053u);
+ z13\1\3c2 = (6.855u,4.002u);
+ fill_or_unfill z13\0\0s
+ --z13\0\0
+ --z13\0\1
+ ..controls z13\0\2c1 and z13\0\2c2..z13\0\2
+ ..controls z13\0\3c1 and z13\0\3c2..z13\0\3
+ --z13\0\4
+ ..controls z13\0\5c1 and z13\0\5c2..z13\0\5
+ ..controls z13\0\6c1 and z13\0\6c2..z13\0\6
+ ..controls z13\0\7c1 and z13\0\7c2..z13\0\7
+ --z13\0\8
+ --z13\0\9
+ ..controls z13\0\10c1 and z13\0\10c2..z13\0\10
+ ..controls z13\0\11c1 and z13\0\11c2..z13\0\11
+ ..controls z13\0\12c1 and z13\0\12c2..z13\0\12
+ ..controls z13\0\13c1 and z13\0\13c2..z13\0\13
+ ..controls z13\0\14c1 and z13\0\14c2..z13\0\14
+ ..controls z13\0\15c1 and z13\0\15c2..z13\0\15
+ ..controls z13\0\16c1 and z13\0\16c2..z13\0\16
+ ..controls z13\0\17c1 and z13\0\17c2..z13\0\17
+ ..controls z13\0\18c1 and z13\0\18c2..z13\0\18
+ ..controls z13\0\19c1 and z13\0\19c2..cycle;
+ fill_or_unfill z13\1\0s
+ ..controls z13\1\0c1 and z13\1\0c2..z13\1\0
+ ..controls z13\1\1c1 and z13\1\1c2..z13\1\1
+ ..controls z13\1\2c1 and z13\1\2c2..z13\1\2
+ ..controls z13\1\3c1 and z13\1\3c2..cycle;
+ proof_labels (
+ 13\0\0,
+ 13\0\1,
+ 13\0\2,
+ 13\0\3,
+ 13\0\4,
+ 13\0\5,
+ 13\0\6,
+ 13\0\7,
+ 13\0\8,
+ 13\0\9,
+ 13\0\10,
+ 13\0\11,
+ 13\0\12,
+ 13\0\13,
+ 13\0\14,
+ 13\0\15,
+ 13\0\16,
+ 13\0\17,
+ 13\0\18,
+ 13\0\19,
+ 13\1\0,
+ 13\1\1,
+ 13\1\2,
+ 13\1\3,
+);
+endchar;
+
+beginchar (TIB_BA, 9.395u#, 6.745u#, 2.650u#);
+ "ba";
+ z14\0\0s = (0.482u,0.482u);
+ z14\0\0 = (2.650u,0.700u);
+ z14\0\1c1 = (3.986u,0.776u);
+ z14\0\1c2 = (5.479u,0.355u);
+ z14\0\1 = (6.494u,-0.535u);
+ z14\0\2c1 = (7.211u,-1.164u);
+ z14\0\2c2 = (7.587u,-1.924u);
+ z14\0\2 = (8.452u,-2.409u);
+ z14\0\3c1 = (8.431u,-0.828u);
+ z14\0\3c2 = (8.322u,0.838u);
+ z14\0\3 = (8.452u,2.409u);
+ z14\0\4 = (8.712u,4.577u);
+ z14\0\5 = (8.838u,5.768u);
+ z14\0\6c1 = (8.824u,5.985u);
+ z14\0\6c2 = (8.799u,6.180u);
+ z14\0\6 = (8.663u,6.360u);
+ z14\0\7c1 = (8.328u,6.806u);
+ z14\0\7c2 = (7.485u,6.742u);
+ z14\0\7 = (6.986u,6.745u);
+ z14\0\8c1 = (6.187u,6.750u);
+ z14\0\8c2 = (3.229u,6.830u);
+ z14\0\8 = (2.664u,6.601u);
+ z14\0\9c1 = (2.345u,6.472u);
+ z14\0\9c2 = (2.114u,6.299u);
+ z14\0\9 = (1.954u,5.987u);
+ z14\0\10c1 = (1.759u,5.610u);
+ z14\0\10c2 = (1.843u,5.218u);
+ z14\0\10 = (1.812u,4.818u);
+ z14\0\11c1 = (1.783u,4.435u);
+ z14\0\11c2 = (1.733u,4.215u);
+ z14\0\11 = (1.599u,3.854u);
+ z14\0\12c1 = (1.117u,2.557u);
+ z14\0\12c2 = (0.583u,1.952u);
+ z14\1\0s = (7.709u,0.000u);
+ z14\1\0c1 = (5.539u,1.447u);
+ z14\1\0c2 = (4.406u,2.427u);
+ z14\1\0 = (1.686u,2.650u);
+ z14\1\1c1 = (2.348u,4.578u);
+ z14\1\1c2 = (3.806u,5.370u);
+ z14\1\1 = (5.780u,5.295u);
+ z14\1\2c1 = (6.339u,5.274u);
+ z14\1\2c2 = (6.798u,5.264u);
+ z14\1\2 = (7.124u,4.742u);
+ z14\1\3c1 = (7.740u,3.754u);
+ z14\1\3c2 = (7.709u,1.182u);
+ fill_or_unfill z14\0\0s
+ --z14\0\0
+ ..controls z14\0\1c1 and z14\0\1c2..z14\0\1
+ ..controls z14\0\2c1 and z14\0\2c2..z14\0\2
+ ..controls z14\0\3c1 and z14\0\3c2..z14\0\3
+ --z14\0\4
+ --z14\0\5
+ ..controls z14\0\6c1 and z14\0\6c2..z14\0\6
+ ..controls z14\0\7c1 and z14\0\7c2..z14\0\7
+ ..controls z14\0\8c1 and z14\0\8c2..z14\0\8
+ ..controls z14\0\9c1 and z14\0\9c2..z14\0\9
+ ..controls z14\0\10c1 and z14\0\10c2..z14\0\10
+ ..controls z14\0\11c1 and z14\0\11c2..z14\0\11
+ ..controls z14\0\12c1 and z14\0\12c2..cycle;
+ fill_or_unfill z14\1\0s
+ ..controls z14\1\0c1 and z14\1\0c2..z14\1\0
+ ..controls z14\1\1c1 and z14\1\1c2..z14\1\1
+ ..controls z14\1\2c1 and z14\1\2c2..z14\1\2
+ ..controls z14\1\3c1 and z14\1\3c2..cycle;
+ proof_labels (
+ 14\0\0,
+ 14\0\1,
+ 14\0\2,
+ 14\0\3,
+ 14\0\4,
+ 14\0\5,
+ 14\0\6,
+ 14\0\7,
+ 14\0\8,
+ 14\0\9,
+ 14\0\10,
+ 14\0\11,
+ 14\0\12,
+ 14\1\0,
+ 14\1\1,
+ 14\1\2,
+ 14\1\3,
+);
+endchar;
+
+beginchar (TIB_MA, 10.359u#, 6.745u#, 1.445u#);
+ "ma";
+ z15\0\0s = (3.132u,4.095u);
+ z15\0\0c1 = (1.972u,3.817u);
+ z15\0\0c2 = (1.378u,3.592u);
+ z15\0\0 = (0.919u,2.405u);
+ z15\0\1c1 = (-0.203u,-0.492u);
+ z15\0\1c2 = (3.146u,-1.655u);
+ z15\0\1 = (4.227u,0.267u);
+ z15\0\2c1 = (4.521u,0.789u);
+ z15\0\2c2 = (4.545u,1.346u);
+ z15\0\2 = (4.577u,1.927u);
+ z15\0\3c1 = (5.696u,1.536u);
+ z15\0\3c2 = (6.746u,1.068u);
+ z15\0\3 = (7.665u,0.299u);
+ z15\0\4c1 = (8.293u,-0.226u);
+ z15\0\4c2 = (8.662u,-0.798u);
+ z15\0\4 = (9.406u,-1.204u);
+ z15\0\5 = (9.406u,3.132u);
+ z15\0\6 = (9.736u,5.536u);
+ z15\0\7c1 = (9.773u,5.751u);
+ z15\0\7c2 = (9.794u,5.981u);
+ z15\0\7 = (9.736u,6.188u);
+ z15\0\8c1 = (9.519u,6.670u);
+ z15\0\8c2 = (8.923u,6.776u);
+ z15\0\8 = (8.466u,6.666u);
+ z15\0\9c1 = (8.138u,6.587u);
+ z15\0\9c2 = (7.894u,6.422u);
+ z15\0\9 = (7.897u,6.056u);
+ z15\0\10 = (8.447u,4.574u);
+ z15\0\11c1 = (8.607u,4.019u);
+ z15\0\11c2 = (8.641u,3.459u);
+ z15\0\11 = (8.709u,2.891u);
+ z15\0\12 = (8.913u,0.964u);
+ z15\0\13c1 = (8.474u,1.199u);
+ z15\0\13c2 = (8.098u,1.420u);
+ z15\0\13 = (7.709u,1.739u);
+ z15\0\14 = (6.263u,2.964u);
+ z15\0\15 = (4.829u,3.672u);
+ z15\0\16c1 = (4.430u,3.873u);
+ z15\0\16c2 = (3.816u,4.199u);
+ z15\0\16 = (4.000u,4.756u);
+ z15\0\17c1 = (4.256u,5.533u);
+ z15\0\17c2 = (5.750u,5.267u);
+ z15\0\17 = (6.258u,5.922u);
+ z15\0\18c1 = (6.454u,6.174u);
+ z15\0\18c2 = (6.452u,6.451u);
+ z15\0\18 = (6.504u,6.745u);
+ z15\0\19c1 = (5.680u,6.745u);
+ z15\0\19c2 = (2.558u,6.853u);
+ z15\0\19 = (1.999u,6.568u);
+ z15\0\20c1 = (1.695u,6.413u);
+ z15\0\20c2 = (1.517u,6.167u);
+ z15\0\20 = (1.622u,5.818u);
+ z15\0\21c1 = (1.740u,5.424u);
+ z15\0\21c2 = (2.316u,5.052u);
+ z15\0\21 = (2.600u,4.757u);
+ z15\1\0s = (2.650u,2.469u);
+ z15\1\0 = (3.118u,2.469u);
+ z15\1\1c1 = (4.569u,1.858u);
+ z15\1\1c2 = (4.121u,-0.001u);
+ z15\1\1 = (2.651u,0.009u);
+ z15\1\2c1 = (1.478u,0.017u);
+ z15\1\2c2 = (0.952u,1.501u);
+ z15\1\2 = (1.966u,2.228u);
+ z15\1\3c1 = (2.207u,2.401u);
+ z15\1\3c2 = (2.385u,2.407u);
+ fill_or_unfill z15\0\0s
+ ..controls z15\0\0c1 and z15\0\0c2..z15\0\0
+ ..controls z15\0\1c1 and z15\0\1c2..z15\0\1
+ ..controls z15\0\2c1 and z15\0\2c2..z15\0\2
+ ..controls z15\0\3c1 and z15\0\3c2..z15\0\3
+ ..controls z15\0\4c1 and z15\0\4c2..z15\0\4
+ --z15\0\5
+ --z15\0\6
+ ..controls z15\0\7c1 and z15\0\7c2..z15\0\7
+ ..controls z15\0\8c1 and z15\0\8c2..z15\0\8
+ ..controls z15\0\9c1 and z15\0\9c2..z15\0\9
+ --z15\0\10
+ ..controls z15\0\11c1 and z15\0\11c2..z15\0\11
+ --z15\0\12
+ ..controls z15\0\13c1 and z15\0\13c2..z15\0\13
+ --z15\0\14
+ --z15\0\15
+ ..controls z15\0\16c1 and z15\0\16c2..z15\0\16
+ ..controls z15\0\17c1 and z15\0\17c2..z15\0\17
+ ..controls z15\0\18c1 and z15\0\18c2..z15\0\18
+ ..controls z15\0\19c1 and z15\0\19c2..z15\0\19
+ ..controls z15\0\20c1 and z15\0\20c2..z15\0\20
+ ..controls z15\0\21c1 and z15\0\21c2..z15\0\21
+ --cycle;
+ fill_or_unfill z15\1\0s
+ --z15\1\0
+ ..controls z15\1\1c1 and z15\1\1c2..z15\1\1
+ ..controls z15\1\2c1 and z15\1\2c2..z15\1\2
+ ..controls z15\1\3c1 and z15\1\3c2..cycle;
+ proof_labels (
+ 15\0\0,
+ 15\0\1,
+ 15\0\2,
+ 15\0\3,
+ 15\0\4,
+ 15\0\5,
+ 15\0\6,
+ 15\0\7,
+ 15\0\8,
+ 15\0\9,
+ 15\0\10,
+ 15\0\11,
+ 15\0\12,
+ 15\0\13,
+ 15\0\14,
+ 15\0\15,
+ 15\0\16,
+ 15\0\17,
+ 15\0\18,
+ 15\0\19,
+ 15\0\20,
+ 15\0\21,
+ 15\0\22,
+ 15\1\0,
+ 15\1\1,
+ 15\1\2,
+ 15\1\3,
+);
+endchar;
+
+beginchar (TIB_TSA, 9.877u#, 9.154u#, 1.445u#);
+ "tsa";
+ z16\0\0s = (6.986u,6.707u);
+ z16\0\0c1 = (6.212u,6.745u);
+ z16\0\0c2 = (3.197u,6.815u);
+ z16\0\0 = (2.664u,6.707u);
+ z16\0\1c1 = (2.429u,6.605u);
+ z16\0\1c2 = (2.248u,6.536u);
+ z16\0\1 = (2.071u,6.360u);
+ z16\0\2c1 = (1.766u,6.056u);
+ z16\0\2c2 = (1.752u,5.694u);
+ z16\0\2 = (1.686u,5.300u);
+ z16\0\3 = (4.818u,5.300u);
+ z16\0\4 = (4.676u,4.581u);
+ z16\0\5c1 = (4.329u,3.691u);
+ z16\0\5c2 = (3.346u,3.046u);
+ z16\0\5 = (2.409u,2.963u);
+ z16\0\6c1 = (1.794u,2.908u);
+ z16\0\6c2 = (1.102u,3.082u);
+ z16\0\6 = (0.482u,3.132u);
+ z16\0\7 = (1.316u,1.677u);
+ z16\0\8c1 = (1.688u,0.920u);
+ z16\0\8c2 = (1.830u,0.020u);
+ z16\0\8 = (2.503u,-0.554u);
+ z16\0\9c1 = (3.068u,-1.036u);
+ z16\0\9c2 = (3.859u,-1.163u);
+ z16\0\9 = (4.577u,-1.195u);
+ z16\0\10c1 = (5.881u,-1.252u);
+ z16\0\10c2 = (6.911u,-1.102u);
+ z16\0\10 = (7.466u,0.244u);
+ z16\0\11c1 = (7.620u,0.618u);
+ z16\0\11c2 = (7.694u,1.043u);
+ z16\0\11 = (7.644u,1.445u);
+ z16\0\12c1 = (7.501u,2.598u);
+ z16\0\12c2 = (6.501u,3.235u);
+ z16\0\12 = (5.857u,4.095u);
+ z16\0\13c1 = (5.550u,4.504u);
+ z16\0\13c2 = (5.440u,4.823u);
+ z16\0\13 = (5.300u,5.300u);
+ z16\0\14c1 = (7.211u,5.306u);
+ z16\0\14c2 = (8.147u,5.278u);
+ z16\0\14 = (7.227u,7.468u);
+ z16\0\15c1 = (7.867u,7.637u);
+ z16\0\15c2 = (8.937u,7.857u);
+ z16\0\15 = (9.253u,8.503u);
+ z16\0\16c1 = (9.359u,8.719u);
+ z16\0\16c2 = (9.355u,8.927u);
+ z16\0\16 = (9.395u,9.154u);
+ z16\0\17c1 = (7.372u,9.128u);
+ z16\0\17c2 = (7.012u,8.768u);
+ z16\1\0s = (2.409u,2.650u);
+ z16\1\0c1 = (2.941u,2.704u);
+ z16\1\0c2 = (3.835u,2.989u);
+ z16\1\0 = (4.315u,2.898u);
+ z16\1\1c1 = (4.834u,2.799u);
+ z16\1\1c2 = (5.205u,2.347u);
+ z16\1\1 = (5.560u,1.991u);
+ z16\1\2c1 = (5.925u,1.624u);
+ z16\1\2c2 = (6.585u,1.000u);
+ z16\1\2 = (6.685u,0.483u);
+ z16\1\3c1 = (6.897u,-0.608u);
+ z16\1\3c2 = (4.895u,-1.853u);
+ z16\1\3 = (3.374u,0.724u);
+ fill_or_unfill z16\0\0s
+ ..controls z16\0\0c1 and z16\0\0c2..z16\0\0
+ ..controls z16\0\1c1 and z16\0\1c2..z16\0\1
+ ..controls z16\0\2c1 and z16\0\2c2..z16\0\2
+ --z16\0\3
+ --z16\0\4
+ ..controls z16\0\5c1 and z16\0\5c2..z16\0\5
+ ..controls z16\0\6c1 and z16\0\6c2..z16\0\6
+ --z16\0\7
+ ..controls z16\0\8c1 and z16\0\8c2..z16\0\8
+ ..controls z16\0\9c1 and z16\0\9c2..z16\0\9
+ ..controls z16\0\10c1 and z16\0\10c2..z16\0\10
+ ..controls z16\0\11c1 and z16\0\11c2..z16\0\11
+ ..controls z16\0\12c1 and z16\0\12c2..z16\0\12
+ ..controls z16\0\13c1 and z16\0\13c2..z16\0\13
+ ..controls z16\0\14c1 and z16\0\14c2..z16\0\14
+ ..controls z16\0\15c1 and z16\0\15c2..z16\0\15
+ ..controls z16\0\16c1 and z16\0\16c2..z16\0\16
+ ..controls z16\0\17c1 and z16\0\17c2..cycle;
+ fill_or_unfill z16\1\0s
+ ..controls z16\1\0c1 and z16\1\0c2..z16\1\0
+ ..controls z16\1\1c1 and z16\1\1c2..z16\1\1
+ ..controls z16\1\2c1 and z16\1\2c2..z16\1\2
+ ..controls z16\1\3c1 and z16\1\3c2..z16\1\3
+ --cycle;
+ proof_labels (
+ 16\0\0,
+ 16\0\1,
+ 16\0\2,
+ 16\0\3,
+ 16\0\4,
+ 16\0\5,
+ 16\0\6,
+ 16\0\7,
+ 16\0\8,
+ 16\0\9,
+ 16\0\10,
+ 16\0\11,
+ 16\0\12,
+ 16\0\13,
+ 16\0\14,
+ 16\0\15,
+ 16\0\16,
+ 16\0\17,
+ 16\1\0,
+ 16\1\1,
+ 16\1\2,
+ 16\1\3,
+ 16\1\4,
+);
+endchar;
+
+beginchar (TIB_TSHA, 10.600u#, 9.154u#, 1.927u#);
+ "tsha";
+ z17\0\0s = (7.262u,6.745u);
+ z17\0\0c1 = (6.289u,6.745u);
+ z17\0\0c2 = (3.413u,6.977u);
+ z17\0\0 = (2.794u,6.360u);
+ z17\0\1c1 = (2.489u,6.056u);
+ z17\0\1c2 = (2.475u,5.694u);
+ z17\0\1 = (2.409u,5.300u);
+ z17\0\2c1 = (4.039u,5.279u);
+ z17\0\2c2 = (4.673u,5.157u);
+ z17\0\2 = (4.818u,3.372u);
+ z17\0\3c1 = (-0.471u,3.114u);
+ z17\0\3c2 = (-0.341u,-1.388u);
+ z17\0\3 = (2.410u,-1.660u);
+ z17\0\4c1 = (3.597u,-1.777u);
+ z17\0\4c2 = (4.255u,-1.534u);
+ z17\0\4 = (4.818u,-0.482u);
+ z17\0\5 = (5.300u,-0.482u);
+ z17\0\6c1 = (5.950u,-1.747u);
+ z17\0\6c2 = (6.623u,-1.736u);
+ z17\0\6 = (7.949u,-1.682u);
+ z17\0\7c1 = (9.340u,-1.625u);
+ z17\0\7c2 = (9.880u,-0.912u);
+ z17\0\7 = (9.830u,0.482u);
+ z17\0\8c1 = (9.810u,1.039u);
+ z17\0\8c2 = (9.642u,1.467u);
+ z17\0\8 = (9.291u,1.902u);
+ z17\0\9c1 = (7.967u,3.544u);
+ z17\0\9c2 = (5.759u,3.048u);
+ z17\0\9 = (5.340u,3.926u);
+ z17\0\10c1 = (5.244u,4.127u);
+ z17\0\10c2 = (5.250u,4.326u);
+ z17\0\10 = (5.340u,4.527u);
+ z17\0\11c1 = (5.854u,5.682u);
+ z17\0\11c2 = (8.631u,5.056u);
+ z17\0\11 = (8.454u,6.236u);
+ z17\0\12c1 = (8.405u,6.561u);
+ z17\0\12c2 = (7.704u,7.194u);
+ z17\0\12 = (7.468u,7.468u);
+ z17\0\13c1 = (8.113u,7.567u);
+ z17\0\13c2 = (9.465u,7.782u);
+ z17\0\13 = (9.872u,8.325u);
+ z17\0\14c1 = (10.065u,8.584u);
+ z17\0\14c2 = (10.065u,8.855u);
+ z17\0\14 = (10.118u,9.154u);
+ z17\0\15c1 = (9.223u,9.146u);
+ z17\0\15c2 = (7.615u,9.212u);
+ z17\0\15 = (7.262u,8.137u);
+ z17\0\16c1 = (7.207u,7.829u);
+ z17\0\16c2 = (7.228u,7.091u);
+ z17\1\0s = (5.059u,1.204u);
+ z17\1\0 = (5.300u,2.168u);
+ z17\1\1 = (7.227u,1.527u);
+ z17\1\2c1 = (7.621u,1.384u);
+ z17\1\2c2 = (8.054u,1.254u);
+ z17\1\2 = (8.396u,0.983u);
+ z17\1\3c1 = (10.889u,-0.833u);
+ z17\1\3c2 = (5.903u,-3.351u);
+ z17\1\3 = (5.300u,0.983u);
+ z17\1\4 = (4.181u,-0.643u);
+ z17\1\5c1 = (3.502u,-1.326u);
+ z17\1\5c2 = (2.273u,-1.523u);
+ z17\1\5 = (1.624u,-0.643u);
+ z17\1\6c1 = (1.433u,-0.412u);
+ z17\1\6c2 = (1.311u,-0.081u);
+ z17\1\6 = (1.334u,0.238u);
+ z17\1\7c1 = (1.410u,1.291u);
+ z17\1\7c2 = (3.589u,2.389u);
+ z17\1\7 = (4.476u,2.020u);
+ z17\1\8c1 = (4.860u,1.860u);
+ z17\1\8c2 = (4.921u,1.547u);
+ fill_or_unfill z17\0\0s
+ ..controls z17\0\0c1 and z17\0\0c2..z17\0\0
+ ..controls z17\0\1c1 and z17\0\1c2..z17\0\1
+ ..controls z17\0\2c1 and z17\0\2c2..z17\0\2
+ ..controls z17\0\3c1 and z17\0\3c2..z17\0\3
+ ..controls z17\0\4c1 and z17\0\4c2..z17\0\4
+ --z17\0\5
+ ..controls z17\0\6c1 and z17\0\6c2..z17\0\6
+ ..controls z17\0\7c1 and z17\0\7c2..z17\0\7
+ ..controls z17\0\8c1 and z17\0\8c2..z17\0\8
+ ..controls z17\0\9c1 and z17\0\9c2..z17\0\9
+ ..controls z17\0\10c1 and z17\0\10c2..z17\0\10
+ ..controls z17\0\11c1 and z17\0\11c2..z17\0\11
+ ..controls z17\0\12c1 and z17\0\12c2..z17\0\12
+ ..controls z17\0\13c1 and z17\0\13c2..z17\0\13
+ ..controls z17\0\14c1 and z17\0\14c2..z17\0\14
+ ..controls z17\0\15c1 and z17\0\15c2..z17\0\15
+ ..controls z17\0\16c1 and z17\0\16c2..cycle;
+ fill_or_unfill z17\1\0s
+ --z17\1\0
+ --z17\1\1
+ ..controls z17\1\2c1 and z17\1\2c2..z17\1\2
+ ..controls z17\1\3c1 and z17\1\3c2..z17\1\3
+ --z17\1\4
+ ..controls z17\1\5c1 and z17\1\5c2..z17\1\5
+ ..controls z17\1\6c1 and z17\1\6c2..z17\1\6
+ ..controls z17\1\7c1 and z17\1\7c2..z17\1\7
+ ..controls z17\1\8c1 and z17\1\8c2..cycle;
+ proof_labels (
+ 17\0\0,
+ 17\0\1,
+ 17\0\2,
+ 17\0\3,
+ 17\0\4,
+ 17\0\5,
+ 17\0\6,
+ 17\0\7,
+ 17\0\8,
+ 17\0\9,
+ 17\0\10,
+ 17\0\11,
+ 17\0\12,
+ 17\0\13,
+ 17\0\14,
+ 17\0\15,
+ 17\0\16,
+ 17\1\0,
+ 17\1\1,
+ 17\1\2,
+ 17\1\3,
+ 17\1\4,
+ 17\1\5,
+ 17\1\6,
+ 17\1\7,
+ 17\1\8,
+);
+endchar;
+
+beginchar (TIB_DZA, 8.913u#, 9.154u#, 1.204u#);
+ "dza";
+ z18\0\0s = (0.482u,6.745u);
+ z18\0\0 = (0.482u,-0.933u);
+ z18\0\1 = (1.445u,-0.933u);
+ z18\0\2 = (3.613u,-0.486u);
+ z18\0\3c1 = (4.813u,-0.449u);
+ z18\0\3c2 = (5.819u,-0.844u);
+ z18\0\3 = (6.986u,-0.964u);
+ z18\0\4c1 = (6.911u,-0.750u);
+ z18\0\4c2 = (6.895u,-0.584u);
+ z18\0\4 = (6.750u,-0.391u);
+ z18\0\5c1 = (5.739u,0.956u);
+ z18\0\5c2 = (2.713u,0.723u);
+ z18\0\5 = (1.204u,0.723u);
+ z18\0\6 = (1.204u,2.461u);
+ z18\0\7c1 = (2.042u,2.409u);
+ z18\0\7c2 = (5.427u,2.332u);
+ z18\0\7 = (5.990u,2.461u);
+ z18\0\8c1 = (6.241u,2.593u);
+ z18\0\8c2 = (6.483u,2.710u);
+ z18\0\8 = (6.572u,2.980u);
+ z18\0\9c1 = (6.896u,3.966u);
+ z18\0\9c2 = (5.077u,3.853u);
+ z18\0\9 = (4.577u,3.854u);
+ z18\0\10 = (1.204u,3.854u);
+ z18\0\11 = (1.204u,5.300u);
+ z18\0\12c1 = (2.023u,5.300u);
+ z18\0\12c2 = (5.685u,5.199u);
+ z18\0\12 = (6.188u,5.444u);
+ z18\0\13c1 = (6.440u,5.567u);
+ z18\0\13c2 = (6.598u,5.748u);
+ z18\0\13 = (6.637u,6.032u);
+ z18\0\14c1 = (6.706u,6.532u);
+ z18\0\14c2 = (6.361u,6.731u);
+ z18\0\14 = (6.022u,6.986u);
+ z18\0\15 = (6.022u,7.468u);
+ z18\0\16c1 = (6.745u,7.614u);
+ z18\0\16c2 = (7.936u,7.760u);
+ z18\0\16 = (8.290u,8.497u);
+ z18\0\17c1 = (8.394u,8.716u);
+ z18\0\17c2 = (8.392u,8.925u);
+ z18\0\17 = (8.431u,9.154u);
+ z18\0\18c1 = (4.553u,9.118u);
+ z18\0\18c2 = (6.604u,7.577u);
+ z18\0\18 = (5.024u,6.889u);
+ z18\0\19c1 = (4.480u,6.653u);
+ z18\0\19c2 = (1.292u,6.745u);
+ fill_or_unfill z18\0\0s
+ --z18\0\0
+ --z18\0\1
+ --z18\0\2
+ ..controls z18\0\3c1 and z18\0\3c2..z18\0\3
+ ..controls z18\0\4c1 and z18\0\4c2..z18\0\4
+ ..controls z18\0\5c1 and z18\0\5c2..z18\0\5
+ --z18\0\6
+ ..controls z18\0\7c1 and z18\0\7c2..z18\0\7
+ ..controls z18\0\8c1 and z18\0\8c2..z18\0\8
+ ..controls z18\0\9c1 and z18\0\9c2..z18\0\9
+ --z18\0\10
+ --z18\0\11
+ ..controls z18\0\12c1 and z18\0\12c2..z18\0\12
+ ..controls z18\0\13c1 and z18\0\13c2..z18\0\13
+ ..controls z18\0\14c1 and z18\0\14c2..z18\0\14
+ --z18\0\15
+ ..controls z18\0\16c1 and z18\0\16c2..z18\0\16
+ ..controls z18\0\17c1 and z18\0\17c2..z18\0\17
+ ..controls z18\0\18c1 and z18\0\18c2..z18\0\18
+ ..controls z18\0\19c1 and z18\0\19c2..cycle;
+ proof_labels (
+ 18\0\0,
+ 18\0\1,
+ 18\0\2,
+ 18\0\3,
+ 18\0\4,
+ 18\0\5,
+ 18\0\6,
+ 18\0\7,
+ 18\0\8,
+ 18\0\9,
+ 18\0\10,
+ 18\0\11,
+ 18\0\12,
+ 18\0\13,
+ 18\0\14,
+ 18\0\15,
+ 18\0\16,
+ 18\0\17,
+ 18\0\18,
+ 18\0\19,
+);
+endchar;
+
+beginchar (TIB_WA, 11.322u#, 6.745u#, 6.263u#);
+ "wa";
+ z19\0\0s = (1.393u,0.964u);
+ z19\0\0c1 = (1.324u,1.887u);
+ z19\0\0c2 = (1.067u,2.929u);
+ z19\0\0 = (1.393u,3.845u);
+ z19\0\1c1 = (1.858u,5.565u);
+ z19\0\1c2 = (4.886u,6.061u);
+ z19\0\1 = (5.637u,4.291u);
+ z19\0\2c1 = (5.864u,3.759u);
+ z19\0\2c2 = (5.782u,1.659u);
+ z19\0\2 = (5.782u,0.964u);
+ z19\0\3c1 = (4.967u,0.926u);
+ z19\0\3c2 = (3.680u,0.897u);
+ z19\0\3 = (3.162u,0.167u);
+ z19\0\4c1 = (3.013u,-0.043u);
+ z19\0\4c2 = (2.977u,-0.250u);
+ z19\0\4 = (2.891u,-0.482u);
+ z19\0\5c1 = (3.057u,-0.673u);
+ z19\0\5c2 = (3.226u,-0.791u);
+ z19\0\5 = (3.328u,-1.040u);
+ z19\0\6c1 = (3.699u,-1.938u);
+ z19\0\6c2 = (2.514u,-3.266u);
+ z19\0\6 = (2.481u,-4.336u);
+ z19\0\7c1 = (2.470u,-4.693u);
+ z19\0\7c2 = (2.562u,-4.964u);
+ z19\0\7 = (2.650u,-5.300u);
+ z19\0\8c1 = (3.278u,-5.158u);
+ z19\0\8c2 = (3.932u,-4.919u);
+ z19\0\8 = (4.577u,-4.902u);
+ z19\0\9 = (6.022u,-5.038u);
+ z19\0\10c1 = (6.588u,-5.078u);
+ z19\0\10c2 = (7.155u,-5.047u);
+ z19\0\10 = (7.709u,-5.195u);
+ z19\0\11 = (9.154u,-5.808u);
+ z19\0\12c1 = (9.487u,-5.933u);
+ z19\0\12c2 = (9.772u,-5.971u);
+ z19\0\12 = (10.134u,-6.022u);
+ z19\0\13 = (10.134u,-2.650u);
+ z19\0\14 = (10.134u,-1.204u);
+ z19\0\15 = (10.600u,0.723u);
+ z19\0\16c1 = (10.321u,0.962u);
+ z19\0\16c2 = (10.064u,1.128u);
+ z19\0\16 = (9.891u,1.472u);
+ z19\0\17c1 = (9.290u,2.673u);
+ z19\0\17c2 = (10.551u,5.271u);
+ z19\0\17 = (10.840u,6.504u);
+ z19\0\18c1 = (9.548u,6.732u);
+ z19\0\18c2 = (9.483u,6.732u);
+ z19\0\18 = (8.190u,6.504u);
+ z19\0\19c1 = (8.216u,6.171u);
+ z19\0\19c2 = (8.225u,5.866u);
+ z19\0\19 = (8.322u,5.541u);
+ z19\0\20 = (9.119u,3.623u);
+ z19\0\21c1 = (9.286u,2.768u);
+ z19\0\21c2 = (9.161u,1.835u);
+ z19\0\21 = (9.119u,0.964u);
+ z19\0\22 = (6.022u,0.964u);
+ z19\0\23 = (6.263u,2.650u);
+ z19\0\24 = (6.263u,4.577u);
+ z19\0\25 = (6.388u,5.987u);
+ z19\0\26 = (6.249u,6.360u);
+ z19\0\27c1 = (5.954u,6.768u);
+ z19\0\27c2 = (5.265u,6.736u);
+ z19\0\27 = (4.818u,6.744u);
+ z19\0\28c1 = (3.919u,6.760u);
+ z19\0\28c2 = (2.500u,6.799u);
+ z19\0\28 = (1.740u,6.279u);
+ z19\0\29c1 = (0.579u,5.485u);
+ z19\0\29c2 = (0.482u,3.650u);
+ z19\0\29 = (0.705u,2.410u);
+ z19\0\30c1 = (0.769u,2.052u);
+ z19\0\30c2 = (0.823u,1.646u);
+ z19\0\30 = (1.027u,1.335u);
+ z19\0\31c1 = (1.155u,1.140u);
+ z19\0\31c2 = (1.277u,1.095u);
+ z19\1\0s = (9.395u,-4.818u);
+ z19\1\0c1 = (7.306u,-4.268u);
+ z19\1\0c2 = (5.603u,-3.316u);
+ z19\1\0 = (3.372u,-3.613u);
+ z19\1\1c1 = (3.534u,-2.629u);
+ z19\1\1c2 = (3.838u,-1.718u);
+ z19\1\1 = (4.622u,-1.039u);
+ z19\1\2c1 = (4.916u,-0.785u);
+ z19\1\2c2 = (5.166u,-0.652u);
+ z19\1\2 = (5.542u,-0.592u);
+ z19\1\3c1 = (6.032u,-0.433u);
+ z19\1\3c2 = (8.168u,-0.423u);
+ z19\1\3 = (8.606u,-0.592u);
+ z19\1\4c1 = (8.827u,-0.728u);
+ z19\1\4c2 = (8.946u,-0.835u);
+ z19\1\4 = (9.079u,-1.039u);
+ z19\1\5c1 = (9.528u,-1.732u);
+ z19\1\5c2 = (9.395u,-3.931u);
+ fill_or_unfill z19\0\0s
+ ..controls z19\0\0c1 and z19\0\0c2..z19\0\0
+ ..controls z19\0\1c1 and z19\0\1c2..z19\0\1
+ ..controls z19\0\2c1 and z19\0\2c2..z19\0\2
+ ..controls z19\0\3c1 and z19\0\3c2..z19\0\3
+ ..controls z19\0\4c1 and z19\0\4c2..z19\0\4
+ ..controls z19\0\5c1 and z19\0\5c2..z19\0\5
+ ..controls z19\0\6c1 and z19\0\6c2..z19\0\6
+ ..controls z19\0\7c1 and z19\0\7c2..z19\0\7
+ ..controls z19\0\8c1 and z19\0\8c2..z19\0\8
+ --z19\0\9
+ ..controls z19\0\10c1 and z19\0\10c2..z19\0\10
+ --z19\0\11
+ ..controls z19\0\12c1 and z19\0\12c2..z19\0\12
+ --z19\0\13
+ --z19\0\14
+ --z19\0\15
+ ..controls z19\0\16c1 and z19\0\16c2..z19\0\16
+ ..controls z19\0\17c1 and z19\0\17c2..z19\0\17
+ ..controls z19\0\18c1 and z19\0\18c2..z19\0\18
+ ..controls z19\0\19c1 and z19\0\19c2..z19\0\19
+ --z19\0\20
+ ..controls z19\0\21c1 and z19\0\21c2..z19\0\21
+ --z19\0\22
+ --z19\0\23
+ --z19\0\24
+ --z19\0\25
+ --z19\0\26
+ ..controls z19\0\27c1 and z19\0\27c2..z19\0\27
+ ..controls z19\0\28c1 and z19\0\28c2..z19\0\28
+ ..controls z19\0\29c1 and z19\0\29c2..z19\0\29
+ ..controls z19\0\30c1 and z19\0\30c2..z19\0\30
+ ..controls z19\0\31c1 and z19\0\31c2..cycle;
+ fill_or_unfill z19\1\0s
+ ..controls z19\1\0c1 and z19\1\0c2..z19\1\0
+ ..controls z19\1\1c1 and z19\1\1c2..z19\1\1
+ ..controls z19\1\2c1 and z19\1\2c2..z19\1\2
+ ..controls z19\1\3c1 and z19\1\3c2..z19\1\3
+ ..controls z19\1\4c1 and z19\1\4c2..z19\1\4
+ ..controls z19\1\5c1 and z19\1\5c2..cycle;
+ proof_labels (
+ 19\0\0,
+ 19\0\1,
+ 19\0\2,
+ 19\0\3,
+ 19\0\4,
+ 19\0\5,
+ 19\0\6,
+ 19\0\7,
+ 19\0\8,
+ 19\0\9,
+ 19\0\10,
+ 19\0\11,
+ 19\0\12,
+ 19\0\13,
+ 19\0\14,
+ 19\0\15,
+ 19\0\16,
+ 19\0\17,
+ 19\0\18,
+ 19\0\19,
+ 19\0\20,
+ 19\0\21,
+ 19\0\22,
+ 19\0\23,
+ 19\0\24,
+ 19\0\25,
+ 19\0\26,
+ 19\0\27,
+ 19\0\28,
+ 19\0\29,
+ 19\0\30,
+ 19\0\31,
+ 19\1\0,
+ 19\1\1,
+ 19\1\2,
+ 19\1\3,
+ 19\1\4,
+ 19\1\5,
+);
+endchar;
+
+beginchar (TIB_ZHA, 9.154u#, 6.745u#, 6.504u#);
+ "zha";
+ z20\0\0s = (4.577u,-3.372u);
+ z20\0\0c1 = (4.196u,-2.856u);
+ z20\0\0c2 = (3.889u,-2.734u);
+ z20\0\0 = (3.369u,-2.378u);
+ z20\0\1c1 = (2.624u,-1.868u);
+ z20\0\1c2 = (2.023u,-1.309u);
+ z20\0\1 = (1.630u,-0.482u);
+ z20\0\2c1 = (1.272u,0.272u);
+ z20\0\2c2 = (1.205u,1.105u);
+ z20\0\2 = (1.206u,1.927u);
+ z20\0\3c1 = (1.209u,4.015u);
+ z20\0\3c2 = (2.120u,5.430u);
+ z20\0\3 = (4.336u,5.531u);
+ z20\0\4c1 = (5.188u,5.570u);
+ z20\0\4c2 = (7.023u,5.488u);
+ z20\0\4 = (7.372u,4.524u);
+ z20\0\5c1 = (7.514u,4.130u);
+ z20\0\5c2 = (7.337u,3.744u);
+ z20\0\5 = (7.227u,3.372u);
+ z20\0\6c1 = (6.656u,3.690u);
+ z20\0\6c2 = (6.193u,3.981u);
+ z20\0\6 = (5.541u,4.120u);
+ z20\0\7c1 = (1.805u,4.915u);
+ z20\0\7c2 = (2.068u,-0.962u);
+ z20\0\7 = (6.745u,1.204u);
+ z20\0\8c1 = (7.150u,0.134u);
+ z20\0\8c2 = (7.474u,-1.032u);
+ z20\0\8 = (7.693u,-2.168u);
+ z20\0\9 = (7.693u,-3.854u);
+ z20\0\10 = (7.950u,-6.263u);
+ z20\0\11 = (8.652u,-6.263u);
+ z20\0\12 = (8.652u,-4.577u);
+ z20\0\13 = (8.411u,-2.409u);
+ z20\0\14 = (8.411u,-0.241u);
+ z20\0\15 = (7.954u,1.686u);
+ z20\0\16c1 = (7.913u,2.294u);
+ z20\0\16c2 = (8.159u,2.588u);
+ z20\0\16 = (8.302u,3.132u);
+ z20\0\17c1 = (8.519u,3.955u);
+ z20\0\17c2 = (8.448u,5.386u);
+ z20\0\17 = (7.889u,6.070u);
+ z20\0\18c1 = (7.174u,6.948u);
+ z20\0\18c2 = (5.602u,6.750u);
+ z20\0\18 = (4.577u,6.745u);
+ z20\0\19c1 = (3.816u,6.741u);
+ z20\0\19c2 = (3.094u,6.779u);
+ z20\0\19 = (2.434u,6.326u);
+ z20\0\20c1 = (1.325u,5.567u);
+ z20\0\20c2 = (1.015u,4.120u);
+ z20\0\20 = (0.771u,2.891u);
+ z20\0\21c1 = (0.677u,2.420u);
+ z20\0\21c2 = (0.557u,1.928u);
+ z20\0\21 = (0.566u,1.445u);
+ z20\0\22c1 = (0.576u,0.947u);
+ z20\0\22c2 = (0.729u,0.475u);
+ z20\0\22 = (0.862u,0.000u);
+ z20\0\23c1 = (1.179u,-1.129u);
+ z20\0\23c2 = (1.421u,-2.024u);
+ z20\0\23 = (2.419u,-2.768u);
+ z20\0\24c1 = (3.127u,-3.295u);
+ z20\0\24c2 = (3.737u,-3.331u);
+ z20\1\0s = (4.342u,2.898u);
+ z20\1\0c1 = (4.613u,2.954u);
+ z20\1\0c2 = (4.784u,2.976u);
+ z20\1\0 = (5.054u,2.898u);
+ z20\1\1c1 = (6.195u,2.469u);
+ z20\1\1c2 = (6.540u,1.250u);
+ z20\1\1 = (5.054u,1.124u);
+ z20\1\2c1 = (4.047u,1.040u);
+ z20\1\2c2 = (2.738u,2.011u);
+ z20\1\2 = (3.900u,2.898u);
+ fill_or_unfill z20\0\0s
+ ..controls z20\0\0c1 and z20\0\0c2..z20\0\0
+ ..controls z20\0\1c1 and z20\0\1c2..z20\0\1
+ ..controls z20\0\2c1 and z20\0\2c2..z20\0\2
+ ..controls z20\0\3c1 and z20\0\3c2..z20\0\3
+ ..controls z20\0\4c1 and z20\0\4c2..z20\0\4
+ ..controls z20\0\5c1 and z20\0\5c2..z20\0\5
+ ..controls z20\0\6c1 and z20\0\6c2..z20\0\6
+ ..controls z20\0\7c1 and z20\0\7c2..z20\0\7
+ ..controls z20\0\8c1 and z20\0\8c2..z20\0\8
+ --z20\0\9
+ --z20\0\10
+ --z20\0\11
+ --z20\0\12
+ --z20\0\13
+ --z20\0\14
+ --z20\0\15
+ ..controls z20\0\16c1 and z20\0\16c2..z20\0\16
+ ..controls z20\0\17c1 and z20\0\17c2..z20\0\17
+ ..controls z20\0\18c1 and z20\0\18c2..z20\0\18
+ ..controls z20\0\19c1 and z20\0\19c2..z20\0\19
+ ..controls z20\0\20c1 and z20\0\20c2..z20\0\20
+ ..controls z20\0\21c1 and z20\0\21c2..z20\0\21
+ ..controls z20\0\22c1 and z20\0\22c2..z20\0\22
+ ..controls z20\0\23c1 and z20\0\23c2..z20\0\23
+ ..controls z20\0\24c1 and z20\0\24c2..cycle;
+ fill_or_unfill z20\1\0s
+ ..controls z20\1\0c1 and z20\1\0c2..z20\1\0
+ ..controls z20\1\1c1 and z20\1\1c2..z20\1\1
+ ..controls z20\1\2c1 and z20\1\2c2..z20\1\2
+ --cycle;
+ proof_labels (
+ 20\0\0,
+ 20\0\1,
+ 20\0\2,
+ 20\0\3,
+ 20\0\4,
+ 20\0\5,
+ 20\0\6,
+ 20\0\7,
+ 20\0\8,
+ 20\0\9,
+ 20\0\10,
+ 20\0\11,
+ 20\0\12,
+ 20\0\13,
+ 20\0\14,
+ 20\0\15,
+ 20\0\16,
+ 20\0\17,
+ 20\0\18,
+ 20\0\19,
+ 20\0\20,
+ 20\0\21,
+ 20\0\22,
+ 20\0\23,
+ 20\0\24,
+ 20\1\0,
+ 20\1\1,
+ 20\1\2,
+ 20\1\3,
+);
+endchar;
+
+beginchar (TIB_ZA, 8.190u#, 6.745u#, 1.445u#);
+ "za";
+ z21\0\0s = (6.986u,5.300u);
+ z21\0\0 = (6.986u,3.817u);
+ z21\0\1c1 = (6.205u,3.854u);
+ z21\0\1c2 = (2.424u,3.915u);
+ z21\0\1 = (1.962u,3.817u);
+ z21\0\2c1 = (1.702u,3.702u);
+ z21\0\2c2 = (1.473u,3.589u);
+ z21\0\2 = (1.384u,3.311u);
+ z21\0\3c1 = (1.055u,2.290u);
+ z21\0\3c2 = (2.843u,2.410u);
+ z21\0\3 = (3.372u,2.409u);
+ z21\0\4 = (6.986u,2.409u);
+ z21\0\5 = (6.986u,0.723u);
+ z21\0\6 = (4.818u,1.126u);
+ z21\0\7c1 = (3.280u,1.259u);
+ z21\0\7c2 = (1.816u,0.684u);
+ z21\0\7 = (0.482u,0.000u);
+ z21\0\8c1 = (0.623u,-0.438u);
+ z21\0\8c2 = (0.700u,-0.867u);
+ z21\0\8 = (1.239u,-0.967u);
+ z21\0\9c1 = (1.675u,-1.048u);
+ z21\0\9c2 = (2.433u,-0.678u);
+ z21\0\9 = (2.891u,-0.572u);
+ z21\0\10 = (4.336u,-0.365u);
+ z21\0\11c1 = (5.482u,-0.291u);
+ z21\0\11c2 = (6.582u,-0.790u);
+ z21\0\11 = (7.708u,-0.964u);
+ z21\0\12 = (7.708u,4.818u);
+ z21\0\13c1 = (7.701u,5.335u);
+ z21\0\13c2 = (7.734u,6.147u);
+ z21\0\13 = (7.290u,6.506u);
+ z21\0\14c1 = (7.121u,6.643u);
+ z21\0\14c2 = (6.926u,6.678u);
+ z21\0\14 = (6.719u,6.657u);
+ z21\0\15c1 = (6.147u,6.809u);
+ z21\0\15c2 = (2.161u,6.798u);
+ z21\0\15 = (1.763u,6.657u);
+ z21\0\16c1 = (1.526u,6.484u);
+ z21\0\16c2 = (1.356u,6.301u);
+ z21\0\16 = (1.356u,6.022u);
+ z21\0\17c1 = (1.356u,5.164u);
+ z21\0\17c2 = (2.818u,5.301u);
+ z21\0\17 = (3.372u,5.300u);
+ fill_or_unfill z21\0\0s
+ --z21\0\0
+ ..controls z21\0\1c1 and z21\0\1c2..z21\0\1
+ ..controls z21\0\2c1 and z21\0\2c2..z21\0\2
+ ..controls z21\0\3c1 and z21\0\3c2..z21\0\3
+ --z21\0\4
+ --z21\0\5
+ --z21\0\6
+ ..controls z21\0\7c1 and z21\0\7c2..z21\0\7
+ ..controls z21\0\8c1 and z21\0\8c2..z21\0\8
+ ..controls z21\0\9c1 and z21\0\9c2..z21\0\9
+ --z21\0\10
+ ..controls z21\0\11c1 and z21\0\11c2..z21\0\11
+ --z21\0\12
+ ..controls z21\0\13c1 and z21\0\13c2..z21\0\13
+ ..controls z21\0\14c1 and z21\0\14c2..z21\0\14
+ ..controls z21\0\15c1 and z21\0\15c2..z21\0\15
+ ..controls z21\0\16c1 and z21\0\16c2..z21\0\16
+ ..controls z21\0\17c1 and z21\0\17c2..z21\0\17
+ --cycle;
+ proof_labels (
+ 21\0\0,
+ 21\0\1,
+ 21\0\2,
+ 21\0\3,
+ 21\0\4,
+ 21\0\5,
+ 21\0\6,
+ 21\0\7,
+ 21\0\8,
+ 21\0\9,
+ 21\0\10,
+ 21\0\11,
+ 21\0\12,
+ 21\0\13,
+ 21\0\14,
+ 21\0\15,
+ 21\0\16,
+ 21\0\17,
+ 21\0\18,
+);
+endchar;
+
+beginchar (TIB_ACHUNG, 10.600u#, 6.745u#, 3.613u#);
+ "achung";
+ z22\0\0s = (1.724u,-0.241u);
+ z22\0\0c1 = (1.432u,1.190u);
+ z22\0\0c2 = (0.645u,3.284u);
+ z22\0\0 = (1.724u,4.542u);
+ z22\0\1c1 = (2.009u,4.821u);
+ z22\0\1c2 = (2.302u,5.025u);
+ z22\0\1 = (2.651u,5.156u);
+ z22\0\2c1 = (3.073u,5.314u);
+ z22\0\2c2 = (3.647u,5.299u);
+ z22\0\2 = (4.095u,5.299u);
+ z22\0\3c1 = (5.103u,5.301u);
+ z22\0\3c2 = (6.390u,5.326u);
+ z22\0\3 = (6.632u,4.085u);
+ z22\0\4c1 = (6.729u,3.798u);
+ z22\0\4c2 = (6.705u,3.420u);
+ z22\0\4 = (6.632u,3.145u);
+ z22\0\5c1 = (6.019u,1.630u);
+ z22\0\5c2 = (3.822u,2.587u);
+ z22\0\5 = (3.172u,1.167u);
+ z22\0\6c1 = (2.907u,0.588u);
+ z22\0\6c2 = (3.374u,0.364u);
+ z22\0\6 = (3.868u,0.390u);
+ z22\0\7 = (5.782u,0.390u);
+ z22\0\8c1 = (7.967u,0.186u);
+ z22\0\8c2 = (9.023u,-1.575u);
+ z22\0\8 = (9.877u,-3.372u);
+ z22\0\9c1 = (10.550u,-1.670u);
+ z22\0\9c2 = (9.531u,0.277u);
+ z22\0\9 = (8.187u,1.351u);
+ z22\0\10c1 = (7.739u,1.709u);
+ z22\0\10c2 = (7.262u,1.933u);
+ z22\0\10 = (6.745u,2.168u);
+ z22\0\11 = (7.097u,2.891u);
+ z22\0\12c1 = (7.317u,3.583u);
+ z22\0\12c2 = (7.381u,5.799u);
+ z22\0\12 = (6.842u,6.326u);
+ z22\0\13c1 = (6.403u,6.756u);
+ z22\0\13c2 = (5.630u,6.736u);
+ z22\0\13 = (5.059u,6.698u);
+ z22\0\14c1 = (4.364u,6.754u);
+ z22\0\14c2 = (3.569u,6.806u);
+ z22\0\14 = (2.891u,6.698u);
+ z22\0\15c1 = (0.679u,6.143u);
+ z22\0\15c2 = (0.314u,4.366u);
+ z22\0\15 = (0.523u,2.409u);
+ z22\0\16c1 = (0.583u,1.847u);
+ z22\0\16c2 = (0.837u,0.561u);
+ z22\0\16 = (1.184u,0.130u);
+ z22\0\17c1 = (1.344u,-0.068u);
+ z22\0\17c2 = (1.488u,-0.112u);
+ fill_or_unfill z22\0\0s
+ ..controls z22\0\0c1 and z22\0\0c2..z22\0\0
+ ..controls z22\0\1c1 and z22\0\1c2..z22\0\1
+ ..controls z22\0\2c1 and z22\0\2c2..z22\0\2
+ ..controls z22\0\3c1 and z22\0\3c2..z22\0\3
+ ..controls z22\0\4c1 and z22\0\4c2..z22\0\4
+ ..controls z22\0\5c1 and z22\0\5c2..z22\0\5
+ ..controls z22\0\6c1 and z22\0\6c2..z22\0\6
+ --z22\0\7
+ ..controls z22\0\8c1 and z22\0\8c2..z22\0\8
+ ..controls z22\0\9c1 and z22\0\9c2..z22\0\9
+ ..controls z22\0\10c1 and z22\0\10c2..z22\0\10
+ --z22\0\11
+ ..controls z22\0\12c1 and z22\0\12c2..z22\0\12
+ ..controls z22\0\13c1 and z22\0\13c2..z22\0\13
+ ..controls z22\0\14c1 and z22\0\14c2..z22\0\14
+ ..controls z22\0\15c1 and z22\0\15c2..z22\0\15
+ ..controls z22\0\16c1 and z22\0\16c2..z22\0\16
+ ..controls z22\0\17c1 and z22\0\17c2..cycle;
+ proof_labels (
+ 22\0\0,
+ 22\0\1,
+ 22\0\2,
+ 22\0\3,
+ 22\0\4,
+ 22\0\5,
+ 22\0\6,
+ 22\0\7,
+ 22\0\8,
+ 22\0\9,
+ 22\0\10,
+ 22\0\11,
+ 22\0\12,
+ 22\0\13,
+ 22\0\14,
+ 22\0\15,
+ 22\0\16,
+ 22\0\17,
+);
+endchar;
+
+beginchar (TIB_YA, 12.045u#, 6.745u#, 2.891u#);
+ "ya";
+ z23\0\0s = (11.082u,-2.650u);
+ z23\0\0 = (11.082u,0.482u);
+ z23\0\1 = (11.322u,2.650u);
+ z23\0\2 = (11.322u,4.336u);
+ z23\0\3 = (11.563u,6.745u);
+ z23\0\4c1 = (11.069u,6.743u);
+ z23\0\4c2 = (9.965u,6.836u);
+ z23\0\4 = (9.667u,6.360u);
+ z23\0\5c1 = (9.357u,5.866u);
+ z23\0\5c2 = (10.109u,4.458u);
+ z23\0\5 = (10.247u,3.854u);
+ z23\0\6c1 = (10.522u,2.649u);
+ z23\0\6c2 = (10.599u,1.471u);
+ z23\0\6 = (10.600u,0.241u);
+ z23\0\7c1 = (9.735u,0.956u);
+ z23\0\7c2 = (9.137u,1.824u);
+ z23\0\7 = (8.391u,2.650u);
+ z23\0\8 = (6.834u,4.234u);
+ z23\0\9c1 = (6.667u,4.450u);
+ z23\0\9c2 = (6.565u,4.576u);
+ z23\0\9 = (6.538u,4.858u);
+ z23\0\10c1 = (6.505u,5.198u);
+ z23\0\10c2 = (6.766u,5.686u);
+ z23\0\10 = (6.859u,6.023u);
+ z23\0\11 = (6.986u,6.745u);
+ z23\0\12c1 = (6.473u,6.745u);
+ z23\0\12c2 = (5.147u,6.859u);
+ z23\0\12 = (4.855u,6.360u);
+ z23\0\13c1 = (4.446u,5.662u);
+ z23\0\13c2 = (5.732u,4.617u);
+ z23\0\13 = (5.693u,3.613u);
+ z23\0\14c1 = (5.614u,1.590u);
+ z23\0\14c2 = (2.317u,0.485u);
+ z23\0\14 = (1.800u,2.892u);
+ z23\0\15c1 = (1.476u,4.401u);
+ z23\0\15c2 = (3.152u,5.033u);
+ z23\0\15 = (3.024u,6.009u);
+ z23\0\16c1 = (2.895u,6.986u);
+ z23\0\16c2 = (1.139u,6.860u);
+ z23\0\16 = (0.753u,6.160u);
+ z23\0\17c1 = (0.481u,5.666u);
+ z23\0\17c2 = (0.881u,4.874u);
+ z23\0\17 = (0.947u,4.336u);
+ z23\0\18c1 = (1.114u,2.988u);
+ z23\0\18c2 = (0.667u,1.422u);
+ z23\0\18 = (1.758u,0.335u);
+ z23\0\19c1 = (2.105u,-0.009u);
+ z23\0\19c2 = (2.647u,-0.299u);
+ z23\0\19 = (3.132u,-0.374u);
+ z23\0\20c1 = (5.249u,-0.703u);
+ z23\0\20c2 = (5.481u,2.081u);
+ z23\0\20 = (6.758u,1.785u);
+ z23\0\21c1 = (7.082u,1.710u);
+ z23\0\21c2 = (7.665u,1.315u);
+ z23\0\21 = (7.949u,1.120u);
+ z23\0\22c1 = (10.322u,-0.500u);
+ z23\0\22c2 = (9.767u,-1.704u);
+ fill_or_unfill z23\0\0s
+ --z23\0\0
+ --z23\0\1
+ --z23\0\2
+ --z23\0\3
+ ..controls z23\0\4c1 and z23\0\4c2..z23\0\4
+ ..controls z23\0\5c1 and z23\0\5c2..z23\0\5
+ ..controls z23\0\6c1 and z23\0\6c2..z23\0\6
+ ..controls z23\0\7c1 and z23\0\7c2..z23\0\7
+ --z23\0\8
+ ..controls z23\0\9c1 and z23\0\9c2..z23\0\9
+ ..controls z23\0\10c1 and z23\0\10c2..z23\0\10
+ --z23\0\11
+ ..controls z23\0\12c1 and z23\0\12c2..z23\0\12
+ ..controls z23\0\13c1 and z23\0\13c2..z23\0\13
+ ..controls z23\0\14c1 and z23\0\14c2..z23\0\14
+ ..controls z23\0\15c1 and z23\0\15c2..z23\0\15
+ ..controls z23\0\16c1 and z23\0\16c2..z23\0\16
+ ..controls z23\0\17c1 and z23\0\17c2..z23\0\17
+ ..controls z23\0\18c1 and z23\0\18c2..z23\0\18
+ ..controls z23\0\19c1 and z23\0\19c2..z23\0\19
+ ..controls z23\0\20c1 and z23\0\20c2..z23\0\20
+ ..controls z23\0\21c1 and z23\0\21c2..z23\0\21
+ ..controls z23\0\22c1 and z23\0\22c2..cycle;
+ proof_labels (
+ 23\0\0,
+ 23\0\1,
+ 23\0\2,
+ 23\0\3,
+ 23\0\4,
+ 23\0\5,
+ 23\0\6,
+ 23\0\7,
+ 23\0\8,
+ 23\0\9,
+ 23\0\10,
+ 23\0\11,
+ 23\0\12,
+ 23\0\13,
+ 23\0\14,
+ 23\0\15,
+ 23\0\16,
+ 23\0\17,
+ 23\0\18,
+ 23\0\19,
+ 23\0\20,
+ 23\0\21,
+ 23\0\22,
+);
+endchar;
+
+beginchar (TIB_RA, 9.877u#, 6.745u#, 1.204u#);
+ "ra";
+ z24\0\0s = (1.204u,5.300u);
+ z24\0\0c1 = (2.590u,5.035u);
+ z24\0\0c2 = (2.846u,4.774u);
+ z24\0\0 = (3.613u,3.613u);
+ z24\0\1c1 = (2.557u,3.421u);
+ z24\0\1c2 = (0.748u,3.311u);
+ z24\0\1 = (0.667u,1.924u);
+ z24\0\2c1 = (0.584u,1.653u);
+ z24\0\2c2 = (0.671u,1.457u);
+ z24\0\2 = (0.667u,1.204u);
+ z24\0\3 = (2.650u,1.834u);
+ z24\0\4c1 = (4.213u,2.158u);
+ z24\0\4c2 = (6.445u,1.475u);
+ z24\0\4 = (7.699u,0.533u);
+ z24\0\5 = (9.395u,-0.964u);
+ z24\0\6c1 = (9.348u,-0.624u);
+ z24\0\6c2 = (9.323u,-0.323u);
+ z24\0\6 = (9.190u,0.000u);
+ z24\0\7c1 = (8.763u,1.038u);
+ z24\0\7c2 = (7.249u,2.371u);
+ z24\0\7 = (6.254u,2.893u);
+ z24\0\8c1 = (5.643u,3.214u);
+ z24\0\8c2 = (4.427u,3.479u);
+ z24\0\8 = (4.136u,4.144u);
+ z24\0\9c1 = (3.538u,5.507u);
+ z24\0\9c2 = (6.103u,5.192u);
+ z24\0\9 = (6.712u,5.546u);
+ z24\0\10c1 = (7.135u,5.791u);
+ z24\0\10c2 = (7.258u,6.097u);
+ z24\0\10 = (7.468u,6.504u);
+ z24\0\11c1 = (6.315u,6.785u);
+ z24\0\11c2 = (2.691u,7.031u);
+ z24\0\11 = (1.761u,6.299u);
+ z24\0\12c1 = (1.396u,6.010u);
+ z24\0\12c2 = (1.335u,5.714u);
+ fill_or_unfill z24\0\0s
+ ..controls z24\0\0c1 and z24\0\0c2..z24\0\0
+ ..controls z24\0\1c1 and z24\0\1c2..z24\0\1
+ ..controls z24\0\2c1 and z24\0\2c2..z24\0\2
+ --z24\0\3
+ ..controls z24\0\4c1 and z24\0\4c2..z24\0\4
+ --z24\0\5
+ ..controls z24\0\6c1 and z24\0\6c2..z24\0\6
+ ..controls z24\0\7c1 and z24\0\7c2..z24\0\7
+ ..controls z24\0\8c1 and z24\0\8c2..z24\0\8
+ ..controls z24\0\9c1 and z24\0\9c2..z24\0\9
+ ..controls z24\0\10c1 and z24\0\10c2..z24\0\10
+ ..controls z24\0\11c1 and z24\0\11c2..z24\0\11
+ ..controls z24\0\12c1 and z24\0\12c2..cycle;
+ proof_labels (
+ 24\0\0,
+ 24\0\1,
+ 24\0\2,
+ 24\0\3,
+ 24\0\4,
+ 24\0\5,
+ 24\0\6,
+ 24\0\7,
+ 24\0\8,
+ 24\0\9,
+ 24\0\10,
+ 24\0\11,
+ 24\0\12,
+);
+endchar;
+
+beginchar (TIB_LA, 10.359u#, 6.745u#, 1.445u#);
+ "la";
+ z25\0\0s = (1.686u,0.241u);
+ z25\0\0c1 = (1.515u,1.205u);
+ z25\0\0c2 = (1.134u,2.135u);
+ z25\0\0 = (1.231u,3.132u);
+ z25\0\1c1 = (1.521u,6.099u);
+ z25\0\1c2 = (5.571u,5.846u);
+ z25\0\1 = (5.304u,3.455u);
+ z25\0\2c1 = (5.149u,2.070u);
+ z25\0\2c2 = (3.061u,3.415u);
+ z25\0\2 = (2.650u,0.482u);
+ z25\0\3 = (4.336u,1.071u);
+ z25\0\4c1 = (5.515u,1.347u);
+ z25\0\4c2 = (6.777u,0.894u);
+ z25\0\4 = (7.696u,0.148u);
+ z25\0\5c1 = (8.372u,-0.401u);
+ z25\0\5c2 = (8.538u,-0.885u);
+ z25\0\5 = (9.406u,-1.204u);
+ z25\0\6c1 = (9.395u,0.536u);
+ z25\0\6c2 = (9.279u,2.364u);
+ z25\0\6 = (9.406u,4.095u);
+ z25\0\7 = (9.704u,5.768u);
+ z25\0\8 = (9.704u,6.188u);
+ z25\0\9c1 = (9.427u,6.974u);
+ z25\0\9c2 = (8.277u,6.640u);
+ z25\0\9 = (7.709u,6.504u);
+ z25\0\10 = (8.600u,4.095u);
+ z25\0\11c1 = (8.968u,2.830u);
+ z25\0\11c2 = (8.913u,1.542u);
+ z25\0\11 = (8.913u,0.241u);
+ z25\0\12c1 = (8.506u,0.744u);
+ z25\0\12c2 = (8.115u,1.169u);
+ z25\0\12 = (7.612u,1.581u);
+ z25\0\13c1 = (7.190u,1.926u);
+ z25\0\13c2 = (6.477u,2.406u);
+ z25\0\13 = (6.203u,2.866u);
+ z25\0\14c1 = (5.935u,3.315u);
+ z25\0\14c2 = (6.014u,3.841u);
+ z25\0\14 = (6.019u,4.340u);
+ z25\0\15c1 = (6.040u,6.209u);
+ z25\0\15c2 = (6.189u,6.716u);
+ z25\0\15 = (4.095u,6.744u);
+ z25\0\16c1 = (3.268u,6.755u);
+ z25\0\16c2 = (2.194u,6.838u);
+ z25\0\16 = (1.496u,6.326u);
+ z25\0\17c1 = (0.155u,5.342u);
+ z25\0\17c2 = (0.424u,3.328u);
+ z25\0\17 = (0.752u,1.927u);
+ z25\0\18c1 = (0.842u,1.539u);
+ z25\0\18c2 = (0.955u,0.928u);
+ z25\0\18 = (1.196u,0.612u);
+ z25\0\19c1 = (1.351u,0.409u);
+ z25\0\19c2 = (1.490u,0.371u);
+ fill_or_unfill z25\0\0s
+ ..controls z25\0\0c1 and z25\0\0c2..z25\0\0
+ ..controls z25\0\1c1 and z25\0\1c2..z25\0\1
+ ..controls z25\0\2c1 and z25\0\2c2..z25\0\2
+ --z25\0\3
+ ..controls z25\0\4c1 and z25\0\4c2..z25\0\4
+ ..controls z25\0\5c1 and z25\0\5c2..z25\0\5
+ ..controls z25\0\6c1 and z25\0\6c2..z25\0\6
+ --z25\0\7
+ --z25\0\8
+ ..controls z25\0\9c1 and z25\0\9c2..z25\0\9
+ --z25\0\10
+ ..controls z25\0\11c1 and z25\0\11c2..z25\0\11
+ ..controls z25\0\12c1 and z25\0\12c2..z25\0\12
+ ..controls z25\0\13c1 and z25\0\13c2..z25\0\13
+ ..controls z25\0\14c1 and z25\0\14c2..z25\0\14
+ ..controls z25\0\15c1 and z25\0\15c2..z25\0\15
+ ..controls z25\0\16c1 and z25\0\16c2..z25\0\16
+ ..controls z25\0\17c1 and z25\0\17c2..z25\0\17
+ ..controls z25\0\18c1 and z25\0\18c2..z25\0\18
+ ..controls z25\0\19c1 and z25\0\19c2..cycle;
+ proof_labels (
+ 25\0\0,
+ 25\0\1,
+ 25\0\2,
+ 25\0\3,
+ 25\0\4,
+ 25\0\5,
+ 25\0\6,
+ 25\0\7,
+ 25\0\8,
+ 25\0\9,
+ 25\0\10,
+ 25\0\11,
+ 25\0\12,
+ 25\0\13,
+ 25\0\14,
+ 25\0\15,
+ 25\0\16,
+ 25\0\17,
+ 25\0\18,
+ 25\0\19,
+);
+endchar;
+
+beginchar (TIB_SHA, 11.563u#, 6.745u#, 6.745u#);
+ "sha";
+ z26\0\0s = (4.095u,0.000u);
+ z26\0\0c1 = (2.896u,1.132u);
+ z26\0\0c2 = (2.162u,1.749u);
+ z26\0\0 = (0.482u,1.927u);
+ z26\0\1c1 = (0.996u,-0.085u);
+ z26\0\1c2 = (1.810u,0.762u);
+ z26\0\1 = (3.087u,-0.174u);
+ z26\0\2 = (4.577u,-1.686u);
+ z26\0\3 = (4.577u,1.686u);
+ z26\0\4c1 = (6.454u,-0.356u);
+ z26\0\4c2 = (7.635u,0.027u);
+ z26\0\4 = (9.877u,1.204u);
+ z26\0\5 = (10.118u,-2.168u);
+ z26\0\6 = (10.118u,-6.504u);
+ z26\0\7 = (10.600u,-6.504u);
+ z26\0\8 = (10.600u,-0.723u);
+ z26\0\9 = (10.872u,2.168u);
+ z26\0\10 = (10.872u,3.854u);
+ z26\0\11c1 = (10.904u,4.474u);
+ z26\0\11c2 = (11.166u,5.415u);
+ z26\0\11 = (10.872u,5.987u);
+ z26\0\12c1 = (10.623u,6.751u);
+ z26\0\12c2 = (9.851u,6.732u);
+ z26\0\12 = (9.154u,6.744u);
+ z26\0\13c1 = (8.552u,6.755u);
+ z26\0\13c2 = (7.804u,6.796u);
+ z26\0\13 = (7.227u,6.622u);
+ z26\0\14c1 = (5.395u,6.072u);
+ z26\0\14c2 = (4.656u,4.125u);
+ z26\0\14 = (4.408u,2.409u);
+ z26\1\0s = (7.468u,5.218u);
+ z26\1\0c1 = (8.059u,5.250u);
+ z26\1\0c2 = (8.583u,5.288u);
+ z26\1\0 = (9.079u,4.881u);
+ z26\1\1c1 = (10.076u,4.061u);
+ z26\1\1c2 = (9.627u,1.647u);
+ z26\1\1 = (8.591u,1.006u);
+ z26\1\2c1 = (8.158u,0.737u);
+ z26\1\2c2 = (7.483u,0.701u);
+ z26\1\2 = (6.986u,0.749u);
+ z26\1\3c1 = (4.898u,0.953u);
+ z26\1\3c2 = (4.101u,3.343u);
+ z26\1\3 = (5.832u,4.616u);
+ z26\1\4c1 = (6.312u,4.968u);
+ z26\1\4c2 = (6.901u,5.093u);
+ fill_or_unfill z26\0\0s
+ ..controls z26\0\0c1 and z26\0\0c2..z26\0\0
+ ..controls z26\0\1c1 and z26\0\1c2..z26\0\1
+ --z26\0\2
+ --z26\0\3
+ ..controls z26\0\4c1 and z26\0\4c2..z26\0\4
+ --z26\0\5
+ --z26\0\6
+ --z26\0\7
+ --z26\0\8
+ --z26\0\9
+ --z26\0\10
+ ..controls z26\0\11c1 and z26\0\11c2..z26\0\11
+ ..controls z26\0\12c1 and z26\0\12c2..z26\0\12
+ ..controls z26\0\13c1 and z26\0\13c2..z26\0\13
+ ..controls z26\0\14c1 and z26\0\14c2..z26\0\14
+ --cycle;
+ fill_or_unfill z26\1\0s
+ ..controls z26\1\0c1 and z26\1\0c2..z26\1\0
+ ..controls z26\1\1c1 and z26\1\1c2..z26\1\1
+ ..controls z26\1\2c1 and z26\1\2c2..z26\1\2
+ ..controls z26\1\3c1 and z26\1\3c2..z26\1\3
+ ..controls z26\1\4c1 and z26\1\4c2..cycle;
+ proof_labels (
+ 26\0\0,
+ 26\0\1,
+ 26\0\2,
+ 26\0\3,
+ 26\0\4,
+ 26\0\5,
+ 26\0\6,
+ 26\0\7,
+ 26\0\8,
+ 26\0\9,
+ 26\0\10,
+ 26\0\11,
+ 26\0\12,
+ 26\0\13,
+ 26\0\14,
+ 26\0\15,
+ 26\1\0,
+ 26\1\1,
+ 26\1\2,
+ 26\1\3,
+ 26\1\4,
+);
+endchar;
+
+beginchar (TIB_SA, 11.081u#, 6.745u#, 1.204u#);
+ "sa";
+ z27\0\0s = (1.204u,5.300u);
+ z27\0\0 = (2.650u,5.300u);
+ z27\0\1c1 = (2.509u,4.860u);
+ z27\0\1c2 = (2.376u,4.497u);
+ z27\0\1 = (2.139u,4.095u);
+ z27\0\2c1 = (1.664u,3.291u);
+ z27\0\2c2 = (0.999u,2.576u);
+ z27\0\2 = (0.678u,1.686u);
+ z27\0\3c1 = (0.532u,1.280u);
+ z27\0\3c2 = (0.512u,0.905u);
+ z27\0\3 = (0.482u,0.482u);
+ z27\0\4c1 = (2.053u,0.519u);
+ z27\0\4c2 = (2.606u,0.654u);
+ z27\0\4 = (3.993u,-0.253u);
+ z27\0\5c1 = (4.630u,-0.669u);
+ z27\0\5c2 = (4.794u,-0.777u);
+ z27\0\5 = (5.541u,-0.964u);
+ z27\0\6c1 = (4.863u,0.710u);
+ z27\0\6c2 = (3.532u,2.151u);
+ z27\0\6 = (1.686u,2.409u);
+ z27\0\7c1 = (1.988u,2.739u);
+ z27\0\7c2 = (2.209u,3.030u);
+ z27\0\7 = (2.661u,3.173u);
+ z27\0\8c1 = (4.080u,3.621u);
+ z27\0\8c2 = (6.464u,1.429u);
+ z27\0\8 = (7.446u,0.541u);
+ z27\0\9c1 = (8.288u,-0.220u);
+ z27\0\9c2 = (8.453u,-0.766u);
+ z27\0\9 = (9.660u,-0.964u);
+ z27\0\10 = (9.660u,2.409u);
+ z27\0\11 = (9.660u,3.853u);
+ z27\0\12c1 = (9.761u,4.176u);
+ z27\0\12c2 = (9.841u,4.476u);
+ z27\0\12 = (9.967u,4.777u);
+ z27\0\13c1 = (10.116u,5.138u);
+ z27\0\13c2 = (10.473u,5.616u);
+ z27\0\13 = (10.453u,6.009u);
+ z27\0\14c1 = (10.427u,6.497u);
+ z27\0\14c2 = (10.043u,6.646u);
+ z27\0\14 = (9.622u,6.709u);
+ z27\0\15c1 = (9.151u,6.780u);
+ z27\0\15c2 = (8.300u,6.744u);
+ z27\0\15 = (8.128u,6.188u);
+ z27\0\16c1 = (7.976u,5.695u);
+ z27\0\16c2 = (8.491u,4.836u);
+ z27\0\16 = (8.642u,4.336u);
+ z27\0\17c1 = (8.759u,3.947u);
+ z27\0\17c2 = (8.831u,3.536u);
+ z27\0\17 = (8.893u,3.132u);
+ z27\0\18 = (8.893u,0.241u);
+ z27\0\19c1 = (8.242u,1.131u);
+ z27\0\19c2 = (7.509u,2.047u);
+ z27\0\19 = (6.705u,2.821u);
+ z27\0\20c1 = (5.843u,3.651u);
+ z27\0\20c2 = (4.828u,4.367u);
+ z27\0\20 = (3.854u,5.059u);
+ z27\0\21c1 = (5.134u,5.375u);
+ z27\0\21c2 = (5.748u,5.115u);
+ z27\0\21 = (6.263u,6.504u);
+ z27\0\22c1 = (5.333u,6.769u);
+ z27\0\22c2 = (2.339u,7.038u);
+ z27\0\22 = (1.623u,6.326u);
+ z27\0\23c1 = (1.328u,6.034u);
+ z27\0\23c2 = (1.290u,5.680u);
+ fill_or_unfill z27\0\0s
+ --z27\0\0
+ ..controls z27\0\1c1 and z27\0\1c2..z27\0\1
+ ..controls z27\0\2c1 and z27\0\2c2..z27\0\2
+ ..controls z27\0\3c1 and z27\0\3c2..z27\0\3
+ ..controls z27\0\4c1 and z27\0\4c2..z27\0\4
+ ..controls z27\0\5c1 and z27\0\5c2..z27\0\5
+ ..controls z27\0\6c1 and z27\0\6c2..z27\0\6
+ ..controls z27\0\7c1 and z27\0\7c2..z27\0\7
+ ..controls z27\0\8c1 and z27\0\8c2..z27\0\8
+ ..controls z27\0\9c1 and z27\0\9c2..z27\0\9
+ --z27\0\10
+ --z27\0\11
+ ..controls z27\0\12c1 and z27\0\12c2..z27\0\12
+ ..controls z27\0\13c1 and z27\0\13c2..z27\0\13
+ ..controls z27\0\14c1 and z27\0\14c2..z27\0\14
+ ..controls z27\0\15c1 and z27\0\15c2..z27\0\15
+ ..controls z27\0\16c1 and z27\0\16c2..z27\0\16
+ ..controls z27\0\17c1 and z27\0\17c2..z27\0\17
+ --z27\0\18
+ ..controls z27\0\19c1 and z27\0\19c2..z27\0\19
+ ..controls z27\0\20c1 and z27\0\20c2..z27\0\20
+ ..controls z27\0\21c1 and z27\0\21c2..z27\0\21
+ ..controls z27\0\22c1 and z27\0\22c2..z27\0\22
+ ..controls z27\0\23c1 and z27\0\23c2..cycle;
+ proof_labels (
+ 27\0\0,
+ 27\0\1,
+ 27\0\2,
+ 27\0\3,
+ 27\0\4,
+ 27\0\5,
+ 27\0\6,
+ 27\0\7,
+ 27\0\8,
+ 27\0\9,
+ 27\0\10,
+ 27\0\11,
+ 27\0\12,
+ 27\0\13,
+ 27\0\14,
+ 27\0\15,
+ 27\0\16,
+ 27\0\17,
+ 27\0\18,
+ 27\0\19,
+ 27\0\20,
+ 27\0\21,
+ 27\0\22,
+ 27\0\23,
+);
+endchar;
+
+beginchar (TIB_HA, 9.154u#, 6.504u#, 6.263u#);
+ "ha";
+ z28\0\0s = (0.482u,1.204u);
+ z28\0\0c1 = (1.902u,1.322u);
+ z28\0\0c2 = (2.907u,1.212u);
+ z28\0\0 = (4.005u,0.200u);
+ z28\0\1c1 = (4.550u,-0.302u);
+ z28\0\1c2 = (4.570u,-0.471u);
+ z28\0\1 = (5.300u,-0.723u);
+ z28\0\2 = (5.078u,-0.000u);
+ z28\0\3c1 = (4.918u,0.413u);
+ z28\0\3c2 = (4.338u,1.323u);
+ z28\0\3 = (4.477u,1.734u);
+ z28\0\4c1 = (4.563u,1.988u);
+ z28\0\4c2 = (4.845u,2.153u);
+ z28\0\4 = (5.085u,2.230u);
+ z28\0\5c1 = (6.267u,2.608u);
+ z28\0\5c2 = (7.545u,1.291u);
+ z28\0\5 = (7.822u,0.241u);
+ z28\0\6c1 = (8.012u,-0.477u);
+ z28\0\6c2 = (7.749u,-1.022u);
+ z28\0\6 = (7.535u,-1.686u);
+ z28\0\7 = (6.905u,-3.613u);
+ z28\0\8c1 = (6.537u,-4.465u);
+ z28\0\8c2 = (6.022u,-5.234u);
+ z28\0\8 = (5.541u,-6.022u);
+ z28\0\9c1 = (5.990u,-5.887u);
+ z28\0\9c2 = (6.298u,-5.806u);
+ z28\0\9 = (6.652u,-5.465u);
+ z28\0\10c1 = (7.441u,-4.705u);
+ z28\0\10c2 = (8.410u,-2.072u);
+ z28\0\10 = (8.633u,-0.964u);
+ z28\0\11 = (8.633u,0.482u);
+ z28\0\12c1 = (8.675u,1.219u);
+ z28\0\12c2 = (8.771u,2.216u);
+ z28\0\12 = (8.287u,2.824u);
+ z28\0\13c1 = (7.718u,3.539u);
+ z28\0\13c2 = (6.631u,3.645u);
+ z28\0\13 = (5.782u,3.602u);
+ z28\0\14c1 = (4.607u,3.543u);
+ z28\0\14c2 = (4.245u,3.248u);
+ z28\0\14 = (3.854u,2.168u);
+ z28\0\15 = (1.445u,3.132u);
+ z28\0\16c1 = (1.943u,3.773u);
+ z28\0\16c2 = (2.389u,4.332u);
+ z28\0\16 = (3.132u,4.709u);
+ z28\0\17c1 = (3.521u,4.905u);
+ z28\0\17c2 = (3.907u,4.991u);
+ z28\0\17 = (4.336u,5.034u);
+ z28\0\18c1 = (5.101u,5.110u);
+ z28\0\18c2 = (7.237u,4.854u);
+ z28\0\18 = (7.698u,5.467u);
+ z28\0\19c1 = (8.194u,6.126u);
+ z28\0\19c2 = (7.197u,6.426u);
+ z28\0\19 = (6.741u,6.419u);
+ z28\0\20c1 = (6.080u,6.555u);
+ z28\0\20c2 = (2.684u,6.563u);
+ z28\0\20 = (2.182u,6.419u);
+ z28\0\21c1 = (1.859u,6.230u);
+ z28\0\21c2 = (1.631u,6.055u);
+ z28\0\21 = (1.459u,5.746u);
+ z28\0\22c1 = (1.196u,5.274u);
+ z28\0\22c2 = (1.302u,4.621u);
+ z28\0\22 = (1.187u,4.095u);
+ z28\0\23 = (0.628u,2.409u);
+ z28\0\24c1 = (0.524u,2.003u);
+ z28\0\24c2 = (0.505u,1.619u);
+ fill_or_unfill z28\0\0s
+ ..controls z28\0\0c1 and z28\0\0c2..z28\0\0
+ ..controls z28\0\1c1 and z28\0\1c2..z28\0\1
+ --z28\0\2
+ ..controls z28\0\3c1 and z28\0\3c2..z28\0\3
+ ..controls z28\0\4c1 and z28\0\4c2..z28\0\4
+ ..controls z28\0\5c1 and z28\0\5c2..z28\0\5
+ ..controls z28\0\6c1 and z28\0\6c2..z28\0\6
+ --z28\0\7
+ ..controls z28\0\8c1 and z28\0\8c2..z28\0\8
+ ..controls z28\0\9c1 and z28\0\9c2..z28\0\9
+ ..controls z28\0\10c1 and z28\0\10c2..z28\0\10
+ --z28\0\11
+ ..controls z28\0\12c1 and z28\0\12c2..z28\0\12
+ ..controls z28\0\13c1 and z28\0\13c2..z28\0\13
+ ..controls z28\0\14c1 and z28\0\14c2..z28\0\14
+ --z28\0\15
+ ..controls z28\0\16c1 and z28\0\16c2..z28\0\16
+ ..controls z28\0\17c1 and z28\0\17c2..z28\0\17
+ ..controls z28\0\18c1 and z28\0\18c2..z28\0\18
+ ..controls z28\0\19c1 and z28\0\19c2..z28\0\19
+ ..controls z28\0\20c1 and z28\0\20c2..z28\0\20
+ ..controls z28\0\21c1 and z28\0\21c2..z28\0\21
+ ..controls z28\0\22c1 and z28\0\22c2..z28\0\22
+ --z28\0\23
+ ..controls z28\0\24c1 and z28\0\24c2..cycle;
+ proof_labels (
+ 28\0\0,
+ 28\0\1,
+ 28\0\2,
+ 28\0\3,
+ 28\0\4,
+ 28\0\5,
+ 28\0\6,
+ 28\0\7,
+ 28\0\8,
+ 28\0\9,
+ 28\0\10,
+ 28\0\11,
+ 28\0\12,
+ 28\0\13,
+ 28\0\14,
+ 28\0\15,
+ 28\0\16,
+ 28\0\17,
+ 28\0\18,
+ 28\0\19,
+ 28\0\20,
+ 28\0\21,
+ 28\0\22,
+ 28\0\23,
+ 28\0\24,
+);
+endchar;
+
+beginchar (TIB_RKA, 10.118u#, 6.745u#, 7.227u#);
+ "rka";
+ z30\0\0s = (2.650u,5.300u);
+ z30\0\0 = (5.059u,5.300u);
+ z30\0\1c1 = (4.984u,5.067u);
+ z30\0\1c2 = (4.966u,4.864u);
+ z30\0\1 = (4.817u,4.652u);
+ z30\0\2c1 = (3.958u,3.429u);
+ z30\0\2c2 = (1.653u,4.835u);
+ z30\0\2 = (0.723u,3.338u);
+ z30\0\3c1 = (0.582u,3.110u);
+ z30\0\3c2 = (0.556u,2.895u);
+ z30\0\3 = (0.482u,2.650u);
+ z30\0\4c1 = (0.682u,2.469u);
+ z30\0\4c2 = (0.874u,2.357u);
+ z30\0\4 = (1.022u,2.114u);
+ z30\0\5c1 = (1.501u,1.321u);
+ z30\0\5c2 = (0.922u,0.513u);
+ z30\0\5 = (0.674u,-0.241u);
+ z30\0\6 = (0.482u,-1.204u);
+ z30\0\7c1 = (0.686u,-1.076u);
+ z30\0\7c2 = (0.836u,-1.026u);
+ z30\0\7 = (1.007u,-0.833u);
+ z30\0\8c1 = (1.758u,0.017u);
+ z30\0\8c2 = (1.748u,1.548u);
+ z30\0\8 = (2.715u,2.260u);
+ z30\0\9c1 = (4.824u,3.813u);
+ z30\0\9c2 = (4.817u,-1.711u);
+ z30\0\9 = (4.818u,-2.650u);
+ z30\0\10 = (5.300u,-2.650u);
+ z30\0\11c1 = (5.300u,-1.287u);
+ z30\0\11c2 = (5.078u,3.125u);
+ z30\0\11 = (7.442u,2.570u);
+ z30\0\12c1 = (7.848u,2.475u);
+ z30\0\12c2 = (8.083u,2.269u);
+ z30\0\12 = (8.254u,1.892u);
+ z30\0\13c1 = (8.457u,1.442u);
+ z30\0\13c2 = (8.422u,0.738u);
+ z30\0\13 = (8.472u,0.241u);
+ z30\0\14 = (8.662u,-1.204u);
+ z30\0\15 = (8.662u,-3.854u);
+ z30\0\16 = (8.913u,-6.986u);
+ z30\0\17 = (9.395u,-6.986u);
+ z30\0\18 = (9.395u,0.482u);
+ z30\0\19 = (9.636u,4.095u);
+ z30\0\20c1 = (8.182u,4.095u);
+ z30\0\20c2 = (6.720u,3.991u);
+ z30\0\20 = (5.300u,4.336u);
+ z30\0\21c1 = (5.614u,4.599u);
+ z30\0\21c2 = (5.891u,4.868u);
+ z30\0\21 = (6.263u,5.054u);
+ z30\0\22c1 = (6.817u,5.331u);
+ z30\0\22c2 = (7.841u,5.249u);
+ z30\0\22 = (8.150u,5.843u);
+ z30\0\23c1 = (8.601u,6.710u);
+ z30\0\23c2 = (7.213u,6.735u);
+ z30\0\23 = (6.745u,6.744u);
+ z30\0\24c1 = (5.874u,6.760u);
+ z30\0\24c2 = (3.859u,6.906u);
+ z30\0\24 = (3.207u,6.360u);
+ z30\0\25c1 = (2.845u,6.058u);
+ z30\0\25c2 = (2.778u,5.721u);
+ fill_or_unfill z30\0\0s
+ --z30\0\0
+ ..controls z30\0\1c1 and z30\0\1c2..z30\0\1
+ ..controls z30\0\2c1 and z30\0\2c2..z30\0\2
+ ..controls z30\0\3c1 and z30\0\3c2..z30\0\3
+ ..controls z30\0\4c1 and z30\0\4c2..z30\0\4
+ ..controls z30\0\5c1 and z30\0\5c2..z30\0\5
+ --z30\0\6
+ ..controls z30\0\7c1 and z30\0\7c2..z30\0\7
+ ..controls z30\0\8c1 and z30\0\8c2..z30\0\8
+ ..controls z30\0\9c1 and z30\0\9c2..z30\0\9
+ --z30\0\10
+ ..controls z30\0\11c1 and z30\0\11c2..z30\0\11
+ ..controls z30\0\12c1 and z30\0\12c2..z30\0\12
+ ..controls z30\0\13c1 and z30\0\13c2..z30\0\13
+ --z30\0\14
+ --z30\0\15
+ --z30\0\16
+ --z30\0\17
+ --z30\0\18
+ --z30\0\19
+ ..controls z30\0\20c1 and z30\0\20c2..z30\0\20
+ ..controls z30\0\21c1 and z30\0\21c2..z30\0\21
+ ..controls z30\0\22c1 and z30\0\22c2..z30\0\22
+ ..controls z30\0\23c1 and z30\0\23c2..z30\0\23
+ ..controls z30\0\24c1 and z30\0\24c2..z30\0\24
+ ..controls z30\0\25c1 and z30\0\25c2..cycle;
+ proof_labels (
+ 30\0\0,
+ 30\0\1,
+ 30\0\2,
+ 30\0\3,
+ 30\0\4,
+ 30\0\5,
+ 30\0\6,
+ 30\0\7,
+ 30\0\8,
+ 30\0\9,
+ 30\0\10,
+ 30\0\11,
+ 30\0\12,
+ 30\0\13,
+ 30\0\14,
+ 30\0\15,
+ 30\0\16,
+ 30\0\17,
+ 30\0\18,
+ 30\0\19,
+ 30\0\20,
+ 30\0\21,
+ 30\0\22,
+ 30\0\23,
+ 30\0\24,
+ 30\0\25,
+);
+endchar;
+
+beginchar (TIB_RGA, 10.600u#, 6.745u#, 7.950u#);
+ "rga";
+ z31\0\0s = (2.650u,5.298u);
+ z31\0\0 = (3.613u,5.298u);
+ z31\0\1c1 = (3.899u,5.283u);
+ z31\0\1c2 = (4.265u,5.278u);
+ z31\0\1 = (4.528u,5.157u);
+ z31\0\2c1 = (5.052u,4.916u);
+ z31\0\2c2 = (5.052u,4.479u);
+ z31\0\2 = (4.528u,4.238u);
+ z31\0\3c1 = (3.702u,3.858u);
+ z31\0\3c2 = (1.468u,4.432u);
+ z31\0\3 = (0.982u,3.710u);
+ z31\0\4c1 = (0.662u,3.234u);
+ z31\0\4c2 = (1.172u,2.301u);
+ z31\0\4 = (1.124u,1.686u);
+ z31\0\5c1 = (1.079u,1.117u);
+ z31\0\5c2 = (0.804u,0.552u);
+ z31\0\5 = (0.665u,0.000u);
+ z31\0\6c1 = (0.541u,-0.489u);
+ z31\0\6c2 = (0.506u,-0.945u);
+ z31\0\6 = (0.482u,-1.445u);
+ z31\0\7c1 = (2.947u,-1.332u);
+ z31\0\7c2 = (5.030u,-0.456u);
+ z31\0\7 = (6.504u,-3.132u);
+ z31\0\8c1 = (6.907u,-2.116u);
+ z31\0\8c2 = (6.740u,-0.846u);
+ z31\0\8 = (6.745u,0.241u);
+ z31\0\9c1 = (6.750u,1.151u);
+ z31\0\9c2 = (6.868u,1.992u);
+ z31\0\9 = (6.986u,2.891u);
+ z31\0\10c1 = (7.643u,2.868u);
+ z31\0\10c2 = (8.254u,2.904u);
+ z31\0\10 = (8.708u,2.333u);
+ z31\0\11c1 = (9.339u,1.538u);
+ z31\0\11c2 = (9.107u,-0.210u);
+ z31\0\11 = (9.175u,-1.204u);
+ z31\0\12 = (9.395u,-3.613u);
+ z31\0\13 = (9.395u,-7.709u);
+ z31\0\14 = (9.877u,-7.709u);
+ z31\0\15 = (9.877u,0.241u);
+ z31\0\16 = (10.076u,2.409u);
+ z31\0\17c1 = (10.307u,5.392u);
+ z31\0\17c2 = (7.391u,3.287u);
+ z31\0\17 = (6.166u,4.480u);
+ z31\0\18c1 = (5.914u,4.725u);
+ z31\0\18c2 = (5.881u,4.988u);
+ z31\0\18 = (5.782u,5.300u);
+ z31\0\19c1 = (7.217u,5.304u);
+ z31\0\19c2 = (8.062u,5.112u);
+ z31\0\19 = (8.431u,6.745u);
+ z31\0\20c1 = (7.453u,6.745u);
+ z31\0\20c2 = (4.089u,6.901u);
+ z31\0\20 = (3.408u,6.499u);
+ z31\0\21c1 = (2.906u,6.203u);
+ z31\0\21c2 = (2.806u,5.814u);
+ z31\1\0s = (6.263u,-1.204u);
+ z31\1\0c1 = (5.939u,-1.074u);
+ z31\1\0c2 = (5.667u,-0.967u);
+ z31\1\0 = (5.368u,-0.776u);
+ z31\1\1c1 = (4.854u,-0.447u);
+ z31\1\1c2 = (4.421u,-0.024u);
+ z31\1\1 = (3.851u,0.221u);
+ z31\1\2c1 = (3.108u,0.541u);
+ z31\1\2c2 = (2.233u,0.499u);
+ z31\1\2 = (1.445u,0.723u);
+ z31\1\3c1 = (1.621u,1.317u);
+ z31\1\3c2 = (1.793u,1.864u);
+ z31\1\3 = (2.262u,2.319u);
+ z31\1\4c1 = (2.932u,2.936u);
+ z31\1\4c2 = (5.122u,3.289u);
+ z31\1\4 = (5.647u,2.319u);
+ z31\1\5c1 = (5.944u,1.792u);
+ z31\1\5c2 = (5.982u,0.405u);
+ z31\1\5 = (6.065u,-0.241u);
+ fill_or_unfill z31\0\0s
+ --z31\0\0
+ ..controls z31\0\1c1 and z31\0\1c2..z31\0\1
+ ..controls z31\0\2c1 and z31\0\2c2..z31\0\2
+ ..controls z31\0\3c1 and z31\0\3c2..z31\0\3
+ ..controls z31\0\4c1 and z31\0\4c2..z31\0\4
+ ..controls z31\0\5c1 and z31\0\5c2..z31\0\5
+ ..controls z31\0\6c1 and z31\0\6c2..z31\0\6
+ ..controls z31\0\7c1 and z31\0\7c2..z31\0\7
+ ..controls z31\0\8c1 and z31\0\8c2..z31\0\8
+ ..controls z31\0\9c1 and z31\0\9c2..z31\0\9
+ ..controls z31\0\10c1 and z31\0\10c2..z31\0\10
+ ..controls z31\0\11c1 and z31\0\11c2..z31\0\11
+ --z31\0\12
+ --z31\0\13
+ --z31\0\14
+ --z31\0\15
+ --z31\0\16
+ ..controls z31\0\17c1 and z31\0\17c2..z31\0\17
+ ..controls z31\0\18c1 and z31\0\18c2..z31\0\18
+ ..controls z31\0\19c1 and z31\0\19c2..z31\0\19
+ ..controls z31\0\20c1 and z31\0\20c2..z31\0\20
+ ..controls z31\0\21c1 and z31\0\21c2..cycle;
+ fill_or_unfill z31\1\0s
+ ..controls z31\1\0c1 and z31\1\0c2..z31\1\0
+ ..controls z31\1\1c1 and z31\1\1c2..z31\1\1
+ ..controls z31\1\2c1 and z31\1\2c2..z31\1\2
+ ..controls z31\1\3c1 and z31\1\3c2..z31\1\3
+ ..controls z31\1\4c1 and z31\1\4c2..z31\1\4
+ ..controls z31\1\5c1 and z31\1\5c2..z31\1\5
+ --cycle;
+ proof_labels (
+ 31\0\0,
+ 31\0\1,
+ 31\0\2,
+ 31\0\3,
+ 31\0\4,
+ 31\0\5,
+ 31\0\6,
+ 31\0\7,
+ 31\0\8,
+ 31\0\9,
+ 31\0\10,
+ 31\0\11,
+ 31\0\12,
+ 31\0\13,
+ 31\0\14,
+ 31\0\15,
+ 31\0\16,
+ 31\0\17,
+ 31\0\18,
+ 31\0\19,
+ 31\0\20,
+ 31\0\21,
+ 31\1\0,
+ 31\1\1,
+ 31\1\2,
+ 31\1\3,
+ 31\1\4,
+ 31\1\5,
+ 31\1\6,
+);
+endchar;
+
+beginchar (TIB_RNGA, 8.190u#, 6.745u#, 3.613u#);
+ "rnga";
+ z32\0\0s = (1.445u,5.300u);
+ z32\0\0c1 = (2.608u,5.259u);
+ z32\0\0c2 = (2.994u,5.281u);
+ z32\0\0 = (3.372u,4.095u);
+ z32\0\1c1 = (2.752u,4.095u);
+ z32\0\1c2 = (1.341u,4.191u);
+ z32\0\1 = (0.861u,3.812u);
+ z32\0\2c1 = (0.679u,3.669u);
+ z32\0\2c2 = (0.617u,3.535u);
+ z32\0\2 = (0.517u,3.318u);
+ z32\0\3c1 = (0.422u,2.881u);
+ z32\0\3c2 = (0.482u,-2.463u);
+ z32\0\3 = (0.517u,-3.338u);
+ z32\0\4 = (2.409u,-3.338u);
+ z32\0\5 = (4.095u,-3.018u);
+ z32\0\6c1 = (4.847u,-2.953u);
+ z32\0\6c2 = (5.530u,-3.153u);
+ z32\0\6 = (6.263u,-3.320u);
+ z32\0\7 = (7.709u,-3.320u);
+ z32\0\8c1 = (7.466u,-3.070u);
+ z32\0\8c2 = (7.272u,-2.806u);
+ z32\0\8 = (6.959u,-2.564u);
+ z32\0\9c1 = (5.947u,-1.782u);
+ z32\0\9c2 = (3.423u,-1.243u);
+ z32\0\9 = (2.168u,-1.516u);
+ z32\0\10c1 = (1.790u,-1.598u);
+ z32\0\10c2 = (1.538u,-1.751u);
+ z32\0\10 = (1.204u,-1.927u);
+ z32\0\11c1 = (1.204u,-1.032u);
+ z32\0\11c2 = (1.001u,1.677u);
+ z32\0\11 = (1.590u,2.265u);
+ z32\0\12c1 = (2.384u,3.059u);
+ z32\0\12c2 = (5.316u,2.381u);
+ z32\0\12 = (6.450u,2.720u);
+ z32\0\13c1 = (7.079u,2.909u);
+ z32\0\13c2 = (7.328u,3.618u);
+ z32\0\13 = (6.666u,3.951u);
+ z32\0\14c1 = (6.379u,4.096u);
+ z32\0\14c2 = (5.860u,4.088u);
+ z32\0\14 = (5.540u,4.095u);
+ z32\0\15 = (3.854u,4.095u);
+ z32\0\16c1 = (3.954u,4.408u);
+ z32\0\16c2 = (3.987u,4.668u);
+ z32\0\16 = (4.238u,4.915u);
+ z32\0\17c1 = (4.709u,5.375u);
+ z32\0\17c2 = (6.337u,5.226u);
+ z32\0\17 = (6.065u,6.200u);
+ z32\0\18c1 = (6.008u,6.402u);
+ z32\0\18c2 = (5.883u,6.510u);
+ z32\0\18 = (5.702u,6.621u);
+ z32\0\19c1 = (5.280u,6.814u);
+ z32\0\19c2 = (2.677u,6.795u);
+ z32\0\19 = (2.200u,6.621u);
+ z32\0\20c1 = (1.991u,6.575u);
+ z32\0\20c2 = (1.827u,6.502u);
+ z32\0\20 = (1.685u,6.326u);
+ z32\0\21c1 = (1.451u,6.038u);
+ z32\0\21c2 = (1.473u,5.645u);
+ fill_or_unfill z32\0\0s
+ ..controls z32\0\0c1 and z32\0\0c2..z32\0\0
+ ..controls z32\0\1c1 and z32\0\1c2..z32\0\1
+ ..controls z32\0\2c1 and z32\0\2c2..z32\0\2
+ ..controls z32\0\3c1 and z32\0\3c2..z32\0\3
+ --z32\0\4
+ --z32\0\5
+ ..controls z32\0\6c1 and z32\0\6c2..z32\0\6
+ --z32\0\7
+ ..controls z32\0\8c1 and z32\0\8c2..z32\0\8
+ ..controls z32\0\9c1 and z32\0\9c2..z32\0\9
+ ..controls z32\0\10c1 and z32\0\10c2..z32\0\10
+ ..controls z32\0\11c1 and z32\0\11c2..z32\0\11
+ ..controls z32\0\12c1 and z32\0\12c2..z32\0\12
+ ..controls z32\0\13c1 and z32\0\13c2..z32\0\13
+ ..controls z32\0\14c1 and z32\0\14c2..z32\0\14
+ --z32\0\15
+ ..controls z32\0\16c1 and z32\0\16c2..z32\0\16
+ ..controls z32\0\17c1 and z32\0\17c2..z32\0\17
+ ..controls z32\0\18c1 and z32\0\18c2..z32\0\18
+ ..controls z32\0\19c1 and z32\0\19c2..z32\0\19
+ ..controls z32\0\20c1 and z32\0\20c2..z32\0\20
+ ..controls z32\0\21c1 and z32\0\21c2..cycle;
+ proof_labels (
+ 32\0\0,
+ 32\0\1,
+ 32\0\2,
+ 32\0\3,
+ 32\0\4,
+ 32\0\5,
+ 32\0\6,
+ 32\0\7,
+ 32\0\8,
+ 32\0\9,
+ 32\0\10,
+ 32\0\11,
+ 32\0\12,
+ 32\0\13,
+ 32\0\14,
+ 32\0\15,
+ 32\0\16,
+ 32\0\17,
+ 32\0\18,
+ 32\0\19,
+ 32\0\20,
+ 32\0\21,
+);
+endchar;
+
+beginchar (TIB_RJA, 7.468u#, 6.745u#, 4.095u#);
+ "rja";
+ z33\0\0s = (0.964u,5.300u);
+ z33\0\0 = (2.891u,5.300u);
+ z33\0\1 = (2.891u,4.095u);
+ z33\0\2 = (0.482u,4.095u);
+ z33\0\3 = (0.482u,-3.854u);
+ z33\0\4c1 = (3.356u,-3.276u);
+ z33\0\4c2 = (4.084u,-2.740u);
+ z33\0\4 = (6.986u,-3.854u);
+ z33\0\5c1 = (6.916u,-3.443u);
+ z33\0\5c2 = (6.893u,-3.120u);
+ z33\0\5 = (6.601u,-2.786u);
+ z33\0\6c1 = (5.598u,-1.639u);
+ z33\0\6c2 = (2.412u,-1.927u);
+ z33\0\6 = (0.964u,-1.927u);
+ z33\0\7 = (0.964u,-0.241u);
+ z33\0\8 = (4.577u,-0.241u);
+ z33\0\9c1 = (4.947u,-0.238u);
+ z33\0\9c2 = (5.619u,-0.258u);
+ z33\0\9 = (5.946u,-0.097u);
+ z33\0\10c1 = (6.629u,0.241u);
+ z33\0\10c2 = (6.406u,0.934u);
+ z33\0\10 = (5.746u,1.167u);
+ z33\0\11c1 = (5.278u,1.267u);
+ z33\0\11c2 = (1.729u,1.204u);
+ z33\0\11 = (0.964u,1.167u);
+ z33\0\12 = (0.964u,2.650u);
+ z33\0\13c1 = (1.776u,2.650u);
+ z33\0\13c2 = (5.452u,2.550u);
+ z33\0\13 = (5.946u,2.794u);
+ z33\0\14c1 = (6.493u,3.064u);
+ z33\0\14c2 = (6.493u,3.681u);
+ z33\0\14 = (5.946u,3.951u);
+ z33\0\15c1 = (5.517u,4.163u);
+ z33\0\15c2 = (3.924u,4.095u);
+ z33\0\15 = (3.372u,4.095u);
+ z33\0\16c1 = (3.447u,4.328u);
+ z33\0\16c2 = (3.465u,4.531u);
+ z33\0\16 = (3.614u,4.743u);
+ z33\0\17c1 = (4.127u,5.475u);
+ z33\0\17c2 = (5.148u,5.163u);
+ z33\0\17 = (5.500u,5.843u);
+ z33\0\18c1 = (5.787u,6.396u);
+ z33\0\18c2 = (5.244u,6.635u);
+ z33\0\18 = (4.804u,6.710u);
+ z33\0\19c1 = (4.137u,6.823u);
+ z33\0\19c2 = (1.627u,6.887u);
+ z33\0\19 = (1.210u,6.360u);
+ z33\0\20c1 = (0.974u,6.063u);
+ z33\0\20c2 = (0.993u,5.654u);
+ fill_or_unfill z33\0\0s
+ --z33\0\0
+ --z33\0\1
+ --z33\0\2
+ --z33\0\3
+ ..controls z33\0\4c1 and z33\0\4c2..z33\0\4
+ ..controls z33\0\5c1 and z33\0\5c2..z33\0\5
+ ..controls z33\0\6c1 and z33\0\6c2..z33\0\6
+ --z33\0\7
+ --z33\0\8
+ ..controls z33\0\9c1 and z33\0\9c2..z33\0\9
+ ..controls z33\0\10c1 and z33\0\10c2..z33\0\10
+ ..controls z33\0\11c1 and z33\0\11c2..z33\0\11
+ --z33\0\12
+ ..controls z33\0\13c1 and z33\0\13c2..z33\0\13
+ ..controls z33\0\14c1 and z33\0\14c2..z33\0\14
+ ..controls z33\0\15c1 and z33\0\15c2..z33\0\15
+ ..controls z33\0\16c1 and z33\0\16c2..z33\0\16
+ ..controls z33\0\17c1 and z33\0\17c2..z33\0\17
+ ..controls z33\0\18c1 and z33\0\18c2..z33\0\18
+ ..controls z33\0\19c1 and z33\0\19c2..z33\0\19
+ ..controls z33\0\20c1 and z33\0\20c2..cycle;
+ proof_labels (
+ 33\0\0,
+ 33\0\1,
+ 33\0\2,
+ 33\0\3,
+ 33\0\4,
+ 33\0\5,
+ 33\0\6,
+ 33\0\7,
+ 33\0\8,
+ 33\0\9,
+ 33\0\10,
+ 33\0\11,
+ 33\0\12,
+ 33\0\13,
+ 33\0\14,
+ 33\0\15,
+ 33\0\16,
+ 33\0\17,
+ 33\0\18,
+ 33\0\19,
+ 33\0\20,
+);
+endchar;
+
+beginchar (TIB_RNYA, 9.154u#, 6.745u#, 7.468u#);
+ "rnya";
+ z34\0\0s = (1.204u,5.300u);
+ z34\0\0c1 = (2.592u,5.298u);
+ z34\0\0c2 = (3.124u,5.474u);
+ z34\0\0 = (4.095u,4.336u);
+ z34\0\1c1 = (3.051u,4.059u);
+ z34\0\1c2 = (1.313u,3.865u);
+ z34\0\1 = (0.728u,2.859u);
+ z34\0\2c1 = (0.551u,2.555u);
+ z34\0\2c2 = (0.536u,2.260u);
+ z34\0\2 = (0.482u,1.927u);
+ z34\0\3 = (2.891u,2.604u);
+ z34\0\4c1 = (4.389u,2.783u);
+ z34\0\4c2 = (6.583u,1.874u);
+ z34\0\4 = (7.682u,0.882u);
+ z34\0\5c1 = (7.983u,0.610u);
+ z34\0\5c2 = (8.190u,0.320u);
+ z34\0\5 = (8.431u,0.000u);
+ z34\0\6c1 = (9.031u,1.582u);
+ z34\0\6c2 = (7.524u,2.706u);
+ z34\0\6 = (6.263u,3.377u);
+ z34\0\7c1 = (5.790u,3.628u);
+ z34\0\7c2 = (5.079u,3.855u);
+ z34\0\7 = (4.721u,4.251u);
+ z34\0\8c1 = (4.426u,4.577u);
+ z34\0\8c2 = (4.406u,4.892u);
+ z34\0\8 = (4.336u,5.300u);
+ z34\0\9c1 = (5.079u,5.300u);
+ z34\0\9c2 = (6.698u,5.080u);
+ z34\0\9 = (7.083u,5.857u);
+ z34\0\10c1 = (7.219u,6.132u);
+ z34\0\10c2 = (7.202u,6.450u);
+ z34\0\10 = (7.227u,6.745u);
+ z34\0\11c1 = (6.270u,6.745u);
+ z34\0\11c2 = (2.388u,6.910u);
+ z34\0\11 = (1.790u,6.499u);
+ z34\0\12c1 = (1.361u,6.204u);
+ z34\0\12c2 = (1.307u,5.765u);
+ z34\1\0s = (2.409u,-2.168u);
+ z34\1\0c1 = (2.241u,-1.184u);
+ z34\1\0c2 = (2.081u,-1.154u);
+ z34\1\0 = (1.204u,-0.723u);
+ z34\1\1c1 = (1.510u,-0.355u);
+ z34\1\1c2 = (1.738u,-0.060u);
+ z34\1\1 = (2.179u,0.165u);
+ z34\1\2c1 = (2.893u,0.530u);
+ z34\1\2c2 = (5.060u,0.543u);
+ z34\1\2 = (4.700u,-0.726u);
+ z34\1\3c1 = (4.429u,-1.684u);
+ z34\1\3c2 = (2.518u,-2.424u);
+ z34\1\3 = (2.518u,-3.844u);
+ z34\1\4c1 = (2.518u,-4.840u);
+ z34\1\4c2 = (3.908u,-5.623u);
+ z34\1\4 = (4.675u,-4.911u);
+ z34\1\5c1 = (4.928u,-4.675u);
+ z34\1\5c2 = (4.961u,-4.401u);
+ z34\1\5 = (5.059u,-4.095u);
+ z34\1\6 = (3.372u,-3.854u);
+ z34\1\7c1 = (3.520u,-3.428u);
+ z34\1\7c2 = (3.625u,-3.061u);
+ z34\1\7 = (3.956u,-2.725u);
+ z34\1\8c1 = (4.734u,-1.935u);
+ z34\1\8c2 = (6.886u,-1.965u);
+ z34\1\8 = (6.820u,-3.395u);
+ z34\1\9c1 = (6.766u,-4.558u);
+ z34\1\9c2 = (4.915u,-6.113u);
+ z34\1\9 = (4.336u,-7.227u);
+ z34\1\10c1 = (4.794u,-7.153u);
+ z34\1\10c2 = (5.134u,-7.105u);
+ z34\1\10 = (5.537u,-6.842u);
+ z34\1\11c1 = (6.766u,-6.040u);
+ z34\1\11c2 = (8.947u,-2.706u);
+ z34\1\11 = (7.364u,-1.410u);
+ z34\1\12c1 = (6.816u,-0.961u);
+ z34\1\12c2 = (5.969u,-0.979u);
+ z34\1\12 = (5.300u,-0.964u);
+ z34\1\13c1 = (5.413u,-0.436u);
+ z34\1\13c2 = (5.696u,0.393u);
+ z34\1\13 = (5.455u,0.897u);
+ z34\1\14c1 = (4.979u,1.891u);
+ z34\1\14c2 = (2.573u,1.886u);
+ z34\1\14 = (1.814u,1.268u);
+ z34\1\15c1 = (1.089u,0.676u);
+ z34\1\15c2 = (0.350u,-1.251u);
+ z34\1\15 = (1.309u,-1.922u);
+ z34\1\16c1 = (1.634u,-2.149u);
+ z34\1\16c2 = (2.034u,-2.137u);
+ fill_or_unfill z34\0\0s
+ ..controls z34\0\0c1 and z34\0\0c2..z34\0\0
+ ..controls z34\0\1c1 and z34\0\1c2..z34\0\1
+ ..controls z34\0\2c1 and z34\0\2c2..z34\0\2
+ --z34\0\3
+ ..controls z34\0\4c1 and z34\0\4c2..z34\0\4
+ ..controls z34\0\5c1 and z34\0\5c2..z34\0\5
+ ..controls z34\0\6c1 and z34\0\6c2..z34\0\6
+ ..controls z34\0\7c1 and z34\0\7c2..z34\0\7
+ ..controls z34\0\8c1 and z34\0\8c2..z34\0\8
+ ..controls z34\0\9c1 and z34\0\9c2..z34\0\9
+ ..controls z34\0\10c1 and z34\0\10c2..z34\0\10
+ ..controls z34\0\11c1 and z34\0\11c2..z34\0\11
+ ..controls z34\0\12c1 and z34\0\12c2..cycle;
+ fill_or_unfill z34\1\0s
+ ..controls z34\1\0c1 and z34\1\0c2..z34\1\0
+ ..controls z34\1\1c1 and z34\1\1c2..z34\1\1
+ ..controls z34\1\2c1 and z34\1\2c2..z34\1\2
+ ..controls z34\1\3c1 and z34\1\3c2..z34\1\3
+ ..controls z34\1\4c1 and z34\1\4c2..z34\1\4
+ ..controls z34\1\5c1 and z34\1\5c2..z34\1\5
+ --z34\1\6
+ ..controls z34\1\7c1 and z34\1\7c2..z34\1\7
+ ..controls z34\1\8c1 and z34\1\8c2..z34\1\8
+ ..controls z34\1\9c1 and z34\1\9c2..z34\1\9
+ ..controls z34\1\10c1 and z34\1\10c2..z34\1\10
+ ..controls z34\1\11c1 and z34\1\11c2..z34\1\11
+ ..controls z34\1\12c1 and z34\1\12c2..z34\1\12
+ ..controls z34\1\13c1 and z34\1\13c2..z34\1\13
+ ..controls z34\1\14c1 and z34\1\14c2..z34\1\14
+ ..controls z34\1\15c1 and z34\1\15c2..z34\1\15
+ ..controls z34\1\16c1 and z34\1\16c2..cycle;
+ proof_labels (
+ 34\0\0,
+ 34\0\1,
+ 34\0\2,
+ 34\0\3,
+ 34\0\4,
+ 34\0\5,
+ 34\0\6,
+ 34\0\7,
+ 34\0\8,
+ 34\0\9,
+ 34\0\10,
+ 34\0\11,
+ 34\0\12,
+ 34\1\0,
+ 34\1\1,
+ 34\1\2,
+ 34\1\3,
+ 34\1\4,
+ 34\1\5,
+ 34\1\6,
+ 34\1\7,
+ 34\1\8,
+ 34\1\9,
+ 34\1\10,
+ 34\1\11,
+ 34\1\12,
+ 34\1\13,
+ 34\1\14,
+ 34\1\15,
+ 34\1\16,
+);
+endchar;
+
+beginchar (TIB_RTA, 6.745u#, 6.745u#, 8.431u#);
+ "rta";
+ z35\0\0s = (2.891u,4.095u);
+ z35\0\0c1 = (2.239u,4.079u);
+ z35\0\0c2 = (1.370u,4.090u);
+ z35\0\0 = (0.861u,3.612u);
+ z35\0\1c1 = (0.683u,3.445u);
+ z35\0\1c2 = (0.619u,3.311u);
+ z35\0\1 = (0.517u,3.081u);
+ z35\0\2c1 = (0.421u,2.629u);
+ z35\0\2c2 = (0.482u,-0.715u);
+ z35\0\2 = (0.517u,-1.445u);
+ z35\0\3c1 = (1.218u,-1.381u);
+ z35\0\3c2 = (1.985u,-1.140u);
+ z35\0\3 = (2.718u,-1.183u);
+ z35\0\4c1 = (3.501u,-1.230u);
+ z35\0\4c2 = (4.207u,-1.475u);
+ z35\0\4 = (4.804u,-1.993u);
+ z35\0\5c1 = (5.222u,-2.356u);
+ z35\0\5c2 = (5.592u,-2.816u);
+ z35\0\5 = (5.693u,-3.372u);
+ z35\0\6c1 = (5.892u,-4.464u);
+ z35\0\6c2 = (4.500u,-7.086u);
+ z35\0\6 = (4.095u,-8.190u);
+ z35\0\7c1 = (4.563u,-7.817u);
+ z35\0\7c2 = (4.911u,-7.500u);
+ z35\0\7 = (5.231u,-6.982u);
+ z35\0\8c1 = (6.042u,-5.672u);
+ z35\0\8c2 = (6.733u,-2.387u);
+ z35\0\8 = (5.980u,-0.974u);
+ z35\0\9c1 = (5.518u,-0.106u);
+ z35\0\9c2 = (4.786u,0.177u);
+ z35\0\9 = (3.854u,0.230u);
+ z35\0\10c1 = (2.801u,0.290u);
+ z35\0\10c2 = (1.963u,0.019u);
+ z35\0\10 = (1.015u,-0.241u);
+ z35\0\11c1 = (0.974u,0.158u);
+ z35\0\11c2 = (0.959u,0.574u);
+ z35\0\11 = (1.015u,0.963u);
+ z35\0\12c1 = (1.784u,3.543u);
+ z35\0\12c2 = (4.975u,2.161u);
+ z35\0\12 = (5.874u,2.895u);
+ z35\0\13c1 = (6.022u,3.017u);
+ z35\0\13c2 = (6.112u,3.177u);
+ z35\0\13 = (6.112u,3.372u);
+ z35\0\14c1 = (6.112u,4.340u);
+ z35\0\14c2 = (3.999u,4.095u);
+ z35\0\14 = (3.372u,4.095u);
+ z35\0\15c1 = (3.447u,4.328u);
+ z35\0\15c2 = (3.465u,4.531u);
+ z35\0\15 = (3.614u,4.743u);
+ z35\0\16c1 = (4.127u,5.475u);
+ z35\0\16c2 = (5.148u,5.163u);
+ z35\0\16 = (5.500u,5.843u);
+ z35\0\17c1 = (6.183u,7.159u);
+ z35\0\17c2 = (1.929u,6.944u);
+ z35\0\17 = (1.486u,6.154u);
+ z35\0\18c1 = (1.126u,5.513u);
+ z35\0\18c2 = (2.190u,5.259u);
+ z35\0\18 = (2.508u,4.919u);
+ z35\0\19c1 = (2.753u,4.656u);
+ z35\0\19c2 = (2.788u,4.418u);
+ fill_or_unfill z35\0\0s
+ ..controls z35\0\0c1 and z35\0\0c2..z35\0\0
+ ..controls z35\0\1c1 and z35\0\1c2..z35\0\1
+ ..controls z35\0\2c1 and z35\0\2c2..z35\0\2
+ ..controls z35\0\3c1 and z35\0\3c2..z35\0\3
+ ..controls z35\0\4c1 and z35\0\4c2..z35\0\4
+ ..controls z35\0\5c1 and z35\0\5c2..z35\0\5
+ ..controls z35\0\6c1 and z35\0\6c2..z35\0\6
+ ..controls z35\0\7c1 and z35\0\7c2..z35\0\7
+ ..controls z35\0\8c1 and z35\0\8c2..z35\0\8
+ ..controls z35\0\9c1 and z35\0\9c2..z35\0\9
+ ..controls z35\0\10c1 and z35\0\10c2..z35\0\10
+ ..controls z35\0\11c1 and z35\0\11c2..z35\0\11
+ ..controls z35\0\12c1 and z35\0\12c2..z35\0\12
+ ..controls z35\0\13c1 and z35\0\13c2..z35\0\13
+ ..controls z35\0\14c1 and z35\0\14c2..z35\0\14
+ ..controls z35\0\15c1 and z35\0\15c2..z35\0\15
+ ..controls z35\0\16c1 and z35\0\16c2..z35\0\16
+ ..controls z35\0\17c1 and z35\0\17c2..z35\0\17
+ ..controls z35\0\18c1 and z35\0\18c2..z35\0\18
+ ..controls z35\0\19c1 and z35\0\19c2..cycle;
+ proof_labels (
+ 35\0\0,
+ 35\0\1,
+ 35\0\2,
+ 35\0\3,
+ 35\0\4,
+ 35\0\5,
+ 35\0\6,
+ 35\0\7,
+ 35\0\8,
+ 35\0\9,
+ 35\0\10,
+ 35\0\11,
+ 35\0\12,
+ 35\0\13,
+ 35\0\14,
+ 35\0\15,
+ 35\0\16,
+ 35\0\17,
+ 35\0\18,
+ 35\0\19,
+);
+endchar;
+
+beginchar (TIB_RDA, 8.913u#, 6.745u#, 7.709u#);
+ "rda";
+ z36\0\0s = (1.686u,5.300u);
+ z36\0\0 = (4.095u,5.300u);
+ z36\0\1 = (4.095u,4.095u);
+ z36\0\2c1 = (3.268u,4.095u);
+ z36\0\2c2 = (1.740u,4.268u);
+ z36\0\2 = (1.209u,3.510u);
+ z36\0\3c1 = (1.021u,3.240u);
+ z36\0\3c2 = (1.016u,2.957u);
+ z36\0\3 = (0.964u,2.650u);
+ z36\0\4 = (1.927u,2.409u);
+ z36\0\5c1 = (1.367u,1.108u);
+ z36\0\5c2 = (0.704u,-0.026u);
+ z36\0\5 = (0.482u,-1.445u);
+ z36\0\6c1 = (1.361u,-1.355u);
+ z36\0\6c2 = (2.258u,-0.956u);
+ z36\0\6 = (3.132u,-1.018u);
+ z36\0\7c1 = (5.073u,-1.155u);
+ z36\0\7c2 = (6.896u,-3.084u);
+ z36\0\7 = (7.550u,-4.818u);
+ z36\0\8c1 = (7.867u,-5.659u);
+ z36\0\8c2 = (7.930u,-6.579u);
+ z36\0\8 = (7.950u,-7.468u);
+ z36\0\9 = (8.391u,-7.468u);
+ z36\0\10c1 = (8.431u,-6.535u);
+ z36\0\10c2 = (8.522u,-5.493u);
+ z36\0\10 = (8.391u,-4.577u);
+ z36\0\11c1 = (8.104u,-3.264u);
+ z36\0\11c2 = (6.786u,-1.017u);
+ z36\0\11 = (5.710u,-0.239u);
+ z36\0\12c1 = (5.371u,0.006u);
+ z36\0\12c2 = (4.976u,0.175u);
+ z36\0\12 = (4.576u,0.292u);
+ z36\0\13c1 = (3.656u,0.561u);
+ z36\0\13c2 = (2.635u,0.482u);
+ z36\0\13 = (1.686u,0.482u);
+ z36\0\14c1 = (3.501u,3.828u);
+ z36\0\14c2 = (5.994u,2.034u);
+ z36\0\14 = (7.079u,2.892u);
+ z36\0\15c1 = (7.272u,3.046u);
+ z36\0\15c2 = (7.375u,3.280u);
+ z36\0\15 = (7.295u,3.524u);
+ z36\0\16c1 = (7.050u,4.270u);
+ z36\0\16c2 = (5.209u,4.095u);
+ z36\0\16 = (4.577u,4.095u);
+ z36\0\17 = (4.577u,5.300u);
+ z36\0\18c1 = (5.174u,5.300u);
+ z36\0\18c2 = (6.777u,5.108u);
+ z36\0\18 = (6.807u,6.019u);
+ z36\0\19c1 = (6.816u,6.302u);
+ z36\0\19c2 = (6.667u,6.479u);
+ z36\0\19 = (6.425u,6.550u);
+ z36\0\20c1 = (5.863u,6.884u);
+ z36\0\20c2 = (2.986u,6.819u);
+ z36\0\20 = (2.444u,6.550u);
+ z36\0\21c1 = (1.942u,6.203u);
+ z36\0\21c2 = (1.843u,5.814u);
+ fill_or_unfill z36\0\0s
+ --z36\0\0
+ --z36\0\1
+ ..controls z36\0\2c1 and z36\0\2c2..z36\0\2
+ ..controls z36\0\3c1 and z36\0\3c2..z36\0\3
+ --z36\0\4
+ ..controls z36\0\5c1 and z36\0\5c2..z36\0\5
+ ..controls z36\0\6c1 and z36\0\6c2..z36\0\6
+ ..controls z36\0\7c1 and z36\0\7c2..z36\0\7
+ ..controls z36\0\8c1 and z36\0\8c2..z36\0\8
+ --z36\0\9
+ ..controls z36\0\10c1 and z36\0\10c2..z36\0\10
+ ..controls z36\0\11c1 and z36\0\11c2..z36\0\11
+ ..controls z36\0\12c1 and z36\0\12c2..z36\0\12
+ ..controls z36\0\13c1 and z36\0\13c2..z36\0\13
+ ..controls z36\0\14c1 and z36\0\14c2..z36\0\14
+ ..controls z36\0\15c1 and z36\0\15c2..z36\0\15
+ ..controls z36\0\16c1 and z36\0\16c2..z36\0\16
+ --z36\0\17
+ ..controls z36\0\18c1 and z36\0\18c2..z36\0\18
+ ..controls z36\0\19c1 and z36\0\19c2..z36\0\19
+ ..controls z36\0\20c1 and z36\0\20c2..z36\0\20
+ ..controls z36\0\21c1 and z36\0\21c2..cycle;
+ proof_labels (
+ 36\0\0,
+ 36\0\1,
+ 36\0\2,
+ 36\0\3,
+ 36\0\4,
+ 36\0\5,
+ 36\0\6,
+ 36\0\7,
+ 36\0\8,
+ 36\0\9,
+ 36\0\10,
+ 36\0\11,
+ 36\0\12,
+ 36\0\13,
+ 36\0\14,
+ 36\0\15,
+ 36\0\16,
+ 36\0\17,
+ 36\0\18,
+ 36\0\19,
+ 36\0\20,
+ 36\0\21,
+);
+endchar;
+
+beginchar (TIB_RNA, 7.709u#, 6.745u#, 7.227u#);
+ "rna";
+ z37\0\0s = (2.168u,5.300u);
+ z37\0\0c1 = (3.330u,5.259u);
+ z37\0\0c2 = (3.716u,5.281u);
+ z37\0\0 = (4.095u,4.095u);
+ z37\0\1c1 = (2.672u,4.090u);
+ z37\0\1c2 = (2.064u,4.283u);
+ z37\0\1 = (1.927u,2.650u);
+ z37\0\2c1 = (3.137u,2.552u);
+ z37\0\2c2 = (3.490u,2.402u);
+ z37\0\2 = (3.854u,1.204u);
+ z37\0\3c1 = (2.410u,1.173u);
+ z37\0\3c2 = (0.699u,1.086u);
+ z37\0\3 = (0.517u,-0.724u);
+ z37\0\4c1 = (0.375u,-2.132u);
+ z37\0\4c2 = (1.368u,-3.489u);
+ z37\0\4 = (2.887u,-3.176u);
+ z37\0\5c1 = (3.306u,-3.090u);
+ z37\0\5c2 = (3.647u,-2.904u);
+ z37\0\5 = (3.927u,-2.578u);
+ z37\0\6c1 = (4.317u,-2.124u);
+ z37\0\6c2 = (4.443u,-1.527u);
+ z37\0\6 = (4.577u,-0.964u);
+ z37\0\7c1 = (5.534u,-2.100u);
+ z37\0\7c2 = (6.284u,-3.350u);
+ z37\0\7 = (6.618u,-4.818u);
+ z37\0\8 = (6.986u,-6.986u);
+ z37\0\9c1 = (7.575u,-5.501u);
+ z37\0\9c2 = (7.055u,-2.121u);
+ z37\0\9 = (6.306u,-0.726u);
+ z37\0\10c1 = (6.129u,-0.396u);
+ z37\0\10c2 = (5.934u,-0.111u);
+ z37\0\10 = (5.689u,0.172u);
+ z37\0\11c1 = (5.339u,0.577u);
+ z37\0\11c2 = (4.623u,1.095u);
+ z37\0\11 = (4.624u,1.676u);
+ z37\0\12c1 = (4.626u,2.705u);
+ z37\0\12c2 = (6.043u,2.453u);
+ z37\0\12 = (6.499u,3.035u);
+ z37\0\13c1 = (6.734u,3.335u);
+ z37\0\13c2 = (6.715u,3.739u);
+ z37\0\13 = (6.745u,4.095u);
+ z37\0\14 = (4.577u,4.095u);
+ z37\0\15 = (4.577u,5.300u);
+ z37\0\16c1 = (5.949u,5.318u);
+ z37\0\16c2 = (6.378u,5.239u);
+ z37\0\16 = (6.504u,6.745u);
+ z37\0\17c1 = (5.688u,6.745u);
+ z37\0\17c2 = (2.891u,6.962u);
+ z37\0\17 = (2.414u,6.360u);
+ z37\0\18c1 = (2.179u,6.063u);
+ z37\0\18c2 = (2.198u,5.654u);
+ z37\1\0s = (2.412u,0.068u);
+ z37\1\0c1 = (5.309u,-0.263u);
+ z37\1\0c2 = (4.063u,-2.765u);
+ z37\1\0 = (2.412u,-2.671u);
+ z37\1\1c1 = (1.121u,-2.598u);
+ z37\1\1c2 = (0.517u,-0.795u);
+ z37\1\1 = (1.741u,-0.119u);
+ z37\1\2c1 = (1.978u,0.013u);
+ z37\1\2c2 = (2.161u,0.011u);
+ fill_or_unfill z37\0\0s
+ ..controls z37\0\0c1 and z37\0\0c2..z37\0\0
+ ..controls z37\0\1c1 and z37\0\1c2..z37\0\1
+ ..controls z37\0\2c1 and z37\0\2c2..z37\0\2
+ ..controls z37\0\3c1 and z37\0\3c2..z37\0\3
+ ..controls z37\0\4c1 and z37\0\4c2..z37\0\4
+ ..controls z37\0\5c1 and z37\0\5c2..z37\0\5
+ ..controls z37\0\6c1 and z37\0\6c2..z37\0\6
+ ..controls z37\0\7c1 and z37\0\7c2..z37\0\7
+ --z37\0\8
+ ..controls z37\0\9c1 and z37\0\9c2..z37\0\9
+ ..controls z37\0\10c1 and z37\0\10c2..z37\0\10
+ ..controls z37\0\11c1 and z37\0\11c2..z37\0\11
+ ..controls z37\0\12c1 and z37\0\12c2..z37\0\12
+ ..controls z37\0\13c1 and z37\0\13c2..z37\0\13
+ --z37\0\14
+ --z37\0\15
+ ..controls z37\0\16c1 and z37\0\16c2..z37\0\16
+ ..controls z37\0\17c1 and z37\0\17c2..z37\0\17
+ ..controls z37\0\18c1 and z37\0\18c2..cycle;
+ fill_or_unfill z37\1\0s
+ ..controls z37\1\0c1 and z37\1\0c2..z37\1\0
+ ..controls z37\1\1c1 and z37\1\1c2..z37\1\1
+ ..controls z37\1\2c1 and z37\1\2c2..cycle;
+ proof_labels (
+ 37\0\0,
+ 37\0\1,
+ 37\0\2,
+ 37\0\3,
+ 37\0\4,
+ 37\0\5,
+ 37\0\6,
+ 37\0\7,
+ 37\0\8,
+ 37\0\9,
+ 37\0\10,
+ 37\0\11,
+ 37\0\12,
+ 37\0\13,
+ 37\0\14,
+ 37\0\15,
+ 37\0\16,
+ 37\0\17,
+ 37\0\18,
+ 37\1\0,
+ 37\1\1,
+ 37\1\2,
+);
+endchar;
+
+beginchar (TIB_RBA, 9.154u#, 6.745u#, 4.577u#);
+ "rba";
+ z38\0\0s = (2.891u,5.300u);
+ z38\0\0c1 = (4.115u,5.284u);
+ z38\0\0c2 = (4.646u,5.386u);
+ z38\0\0 = (5.059u,4.095u);
+ z38\0\1c1 = (4.413u,4.095u);
+ z38\0\1c2 = (2.564u,4.212u);
+ z38\0\1 = (2.096u,3.856u);
+ z38\0\2c1 = (1.457u,3.370u);
+ z38\0\2c2 = (1.591u,2.165u);
+ z38\0\2 = (1.403u,1.445u);
+ z38\0\3 = (0.628u,-0.723u);
+ z38\0\4c1 = (0.504u,-1.207u);
+ z38\0\4c2 = (0.494u,-1.673u);
+ z38\0\4 = (0.482u,-2.168u);
+ z38\0\5 = (2.650u,-1.740u);
+ z38\0\6c1 = (3.605u,-1.667u);
+ z38\0\6c2 = (5.225u,-2.051u);
+ z38\0\6 = (6.022u,-2.577u);
+ z38\0\7 = (7.709u,-3.965u);
+ z38\0\8 = (8.432u,-4.336u);
+ z38\0\9 = (8.432u,0.964u);
+ z38\0\10 = (8.672u,4.118u);
+ z38\0\11 = (7.709u,4.118u);
+ z38\0\12 = (6.987u,4.118u);
+ z38\0\13 = (6.523u,4.118u);
+ z38\0\14c1 = (6.289u,4.252u);
+ z38\0\14c2 = (5.994u,4.334u);
+ z38\0\14 = (5.931u,4.618u);
+ z38\0\15c1 = (5.794u,5.236u);
+ z38\0\15c2 = (7.250u,5.360u);
+ z38\0\15 = (7.634u,5.685u);
+ z38\0\16c1 = (7.995u,5.990u);
+ z38\0\16c2 = (8.062u,6.321u);
+ z38\0\16 = (8.190u,6.745u);
+ z38\0\17c1 = (7.277u,6.745u);
+ z38\0\17c2 = (4.318u,6.893u);
+ z38\0\17 = (3.667u,6.499u);
+ z38\0\18c1 = (3.187u,6.208u);
+ z38\0\18c2 = (3.065u,5.793u);
+ z38\1\0s = (6.986u,2.409u);
+ z38\1\0 = (7.554u,-0.482u);
+ z38\1\1c1 = (7.715u,-1.238u);
+ z38\1\1c2 = (7.906u,-1.866u);
+ z38\1\1 = (7.950u,-2.650u);
+ z38\1\2 = (5.782u,-1.258u);
+ z38\1\3c1 = (5.206u,-0.919u);
+ z38\1\3c2 = (3.536u,-0.230u);
+ z38\1\3 = (2.891u,-0.047u);
+ z38\1\4c1 = (2.415u,0.008u);
+ z38\1\4c2 = (1.928u,-0.005u);
+ z38\1\4 = (1.445u,-0.047u);
+ z38\1\5c1 = (2.951u,2.791u);
+ z38\1\5c2 = (4.003u,2.943u);
+ fill_or_unfill z38\0\0s
+ ..controls z38\0\0c1 and z38\0\0c2..z38\0\0
+ ..controls z38\0\1c1 and z38\0\1c2..z38\0\1
+ ..controls z38\0\2c1 and z38\0\2c2..z38\0\2
+ --z38\0\3
+ ..controls z38\0\4c1 and z38\0\4c2..z38\0\4
+ --z38\0\5
+ ..controls z38\0\6c1 and z38\0\6c2..z38\0\6
+ --z38\0\7
+ --z38\0\8
+ --z38\0\9
+ --z38\0\10
+ --z38\0\11
+ --z38\0\12
+ --z38\0\13
+ ..controls z38\0\14c1 and z38\0\14c2..z38\0\14
+ ..controls z38\0\15c1 and z38\0\15c2..z38\0\15
+ ..controls z38\0\16c1 and z38\0\16c2..z38\0\16
+ ..controls z38\0\17c1 and z38\0\17c2..z38\0\17
+ ..controls z38\0\18c1 and z38\0\18c2..cycle;
+ fill_or_unfill z38\1\0s
+ --z38\1\0
+ ..controls z38\1\1c1 and z38\1\1c2..z38\1\1
+ --z38\1\2
+ ..controls z38\1\3c1 and z38\1\3c2..z38\1\3
+ ..controls z38\1\4c1 and z38\1\4c2..z38\1\4
+ ..controls z38\1\5c1 and z38\1\5c2..cycle;
+ proof_labels (
+ 38\0\0,
+ 38\0\1,
+ 38\0\2,
+ 38\0\3,
+ 38\0\4,
+ 38\0\5,
+ 38\0\6,
+ 38\0\7,
+ 38\0\8,
+ 38\0\9,
+ 38\0\10,
+ 38\0\11,
+ 38\0\12,
+ 38\0\13,
+ 38\0\14,
+ 38\0\15,
+ 38\0\16,
+ 38\0\17,
+ 38\0\18,
+ 38\1\0,
+ 38\1\1,
+ 38\1\2,
+ 38\1\3,
+ 38\1\4,
+ 38\1\5,
+);
+endchar;
+
+
+beginchar (TIB_RMA, 10.359u#, 6.745u#, 4.577u#);
+ "rma";
+ z39\0\0s = (3.613u,4.095u);
+ z39\0\0c1 = (2.177u,4.090u);
+ z39\0\0c2 = (1.556u,4.244u);
+ z39\0\0 = (1.204u,2.650u);
+ z39\0\1c1 = (2.342u,2.465u);
+ z39\0\1c2 = (2.624u,2.240u);
+ z39\0\1 = (3.132u,1.204u);
+ z39\0\2c1 = (2.727u,1.181u);
+ z39\0\2c2 = (2.321u,1.182u);
+ z39\0\2 = (1.937u,1.027u);
+ z39\0\3c1 = (-0.426u,0.069u);
+ z39\0\3c2 = (0.504u,-3.467u);
+ z39\0\3 = (3.127u,-3.096u);
+ z39\0\4c1 = (3.645u,-3.022u);
+ z39\0\4c2 = (3.997u,-2.849u);
+ z39\0\4 = (4.252u,-2.374u);
+ z39\0\5c1 = (4.523u,-1.871u);
+ z39\0\5c2 = (4.501u,-1.052u);
+ z39\0\5 = (4.577u,-0.482u);
+ z39\0\6c1 = (5.970u,-1.011u);
+ z39\0\6c2 = (7.924u,-2.003u);
+ z39\0\6 = (8.631u,-3.373u);
+ z39\0\7c1 = (8.795u,-3.692u);
+ z39\0\7c2 = (8.840u,-3.993u);
+ z39\0\7 = (8.913u,-4.336u);
+ z39\0\8 = (9.415u,-4.336u);
+ z39\0\9c1 = (9.395u,-2.758u);
+ z39\0\9c2 = (9.279u,-1.084u);
+ z39\0\9 = (9.415u,0.482u);
+ z39\0\10c1 = (9.518u,1.308u);
+ z39\0\10c2 = (9.895u,2.312u);
+ z39\0\10 = (9.820u,3.118u);
+ z39\0\11c1 = (9.699u,4.426u);
+ z39\0\11c2 = (7.872u,4.248u);
+ z39\0\11 = (7.646u,3.547u);
+ z39\0\12c1 = (7.480u,3.029u);
+ z39\0\12c2 = (8.171u,2.212u);
+ z39\0\12 = (8.338u,1.677u);
+ z39\0\13c1 = (8.671u,0.607u);
+ z39\0\13c2 = (8.672u,-0.578u);
+ z39\0\13 = (8.672u,-1.686u);
+ z39\0\14 = (7.508u,-0.684u);
+ z39\0\15 = (6.464u,0.314u);
+ z39\0\16c1 = (5.963u,0.685u);
+ z39\0\16c2 = (5.380u,0.856u);
+ z39\0\16 = (4.823u,1.113u);
+ z39\0\17c1 = (4.481u,1.270u);
+ z39\0\17c2 = (3.730u,1.581u);
+ z39\0\17 = (3.935u,2.090u);
+ z39\0\18c1 = (4.242u,2.851u);
+ z39\0\18c2 = (5.694u,2.373u);
+ z39\0\18 = (6.258u,3.207u);
+ z39\0\19c1 = (6.446u,3.485u);
+ z39\0\19c2 = (6.452u,3.781u);
+ z39\0\19 = (6.504u,4.095u);
+ z39\0\20 = (4.095u,4.095u);
+ z39\0\21 = (4.095u,5.307u);
+ z39\0\22 = (5.058u,5.307u);
+ z39\0\23c1 = (5.527u,5.355u);
+ z39\0\23c2 = (6.644u,5.646u);
+ z39\0\23 = (6.223u,6.365u);
+ z39\0\24c1 = (6.118u,6.543u);
+ z39\0\24c2 = (5.932u,6.614u);
+ z39\0\24 = (5.745u,6.635u);
+ z39\0\25c1 = (5.286u,6.807u);
+ z39\0\25c2 = (2.650u,6.801u);
+ z39\0\25 = (2.245u,6.635u);
+ z39\0\26c1 = (2.008u,6.484u);
+ z39\0\26c2 = (1.837u,6.301u);
+ z39\0\26 = (1.837u,6.022u);
+ z39\0\27c1 = (1.837u,5.286u);
+ z39\0\27c2 = (2.939u,5.367u);
+ z39\0\27 = (3.372u,4.743u);
+ z39\0\28c1 = (3.520u,4.530u);
+ z39\0\28c2 = (3.539u,4.329u);
+ z39\1\0s = (2.431u,-0.116u);
+ z39\1\0c1 = (2.675u,-0.110u);
+ z39\1\0c2 = (2.828u,-0.036u);
+ z39\1\0 = (3.097u,-0.116u);
+ z39\1\1c1 = (4.278u,-0.307u);
+ z39\1\1c2 = (4.239u,-2.041u);
+ z39\1\1 = (3.097u,-2.418u);
+ z39\1\2c1 = (1.969u,-2.797u);
+ z39\1\2c2 = (1.109u,-1.501u);
+ z39\1\2 = (1.865u,-0.557u);
+ z39\1\3c1 = (2.045u,-0.333u);
+ z39\1\3c2 = (2.205u,-0.291u);
+ z39\2\0s = (8.913u,-1.686u);
+ z39\2\0 = (8.913u,-1.927u);
+ z39\2\1 = (8.672u,-1.686u);
+ fill_or_unfill z39\0\0s
+ ..controls z39\0\0c1 and z39\0\0c2..z39\0\0
+ ..controls z39\0\1c1 and z39\0\1c2..z39\0\1
+ ..controls z39\0\2c1 and z39\0\2c2..z39\0\2
+ ..controls z39\0\3c1 and z39\0\3c2..z39\0\3
+ ..controls z39\0\4c1 and z39\0\4c2..z39\0\4
+ ..controls z39\0\5c1 and z39\0\5c2..z39\0\5
+ ..controls z39\0\6c1 and z39\0\6c2..z39\0\6
+ ..controls z39\0\7c1 and z39\0\7c2..z39\0\7
+ --z39\0\8
+ ..controls z39\0\9c1 and z39\0\9c2..z39\0\9
+ ..controls z39\0\10c1 and z39\0\10c2..z39\0\10
+ ..controls z39\0\11c1 and z39\0\11c2..z39\0\11
+ ..controls z39\0\12c1 and z39\0\12c2..z39\0\12
+ ..controls z39\0\13c1 and z39\0\13c2..z39\0\13
+ --z39\0\14
+ --z39\0\15
+ ..controls z39\0\16c1 and z39\0\16c2..z39\0\16
+ ..controls z39\0\17c1 and z39\0\17c2..z39\0\17
+ ..controls z39\0\18c1 and z39\0\18c2..z39\0\18
+ ..controls z39\0\19c1 and z39\0\19c2..z39\0\19
+ --z39\0\20
+ --z39\0\21
+ --z39\0\22
+ ..controls z39\0\23c1 and z39\0\23c2..z39\0\23
+ ..controls z39\0\24c1 and z39\0\24c2..z39\0\24
+ ..controls z39\0\25c1 and z39\0\25c2..z39\0\25
+ ..controls z39\0\26c1 and z39\0\26c2..z39\0\26
+ ..controls z39\0\27c1 and z39\0\27c2..z39\0\27
+ ..controls z39\0\28c1 and z39\0\28c2..cycle;
+ fill_or_unfill z39\1\0s
+ ..controls z39\1\0c1 and z39\1\0c2..z39\1\0
+ ..controls z39\1\1c1 and z39\1\1c2..z39\1\1
+ ..controls z39\1\2c1 and z39\1\2c2..z39\1\2
+ ..controls z39\1\3c1 and z39\1\3c2..cycle;
+ fill_or_unfill z39\2\0s
+ --z39\2\0
+ --z39\2\1
+ --cycle;
+ proof_labels (
+ 39\0\0,
+ 39\0\1,
+ 39\0\2,
+ 39\0\3,
+ 39\0\4,
+ 39\0\5,
+ 39\0\6,
+ 39\0\7,
+ 39\0\8,
+ 39\0\9,
+ 39\0\10,
+ 39\0\11,
+ 39\0\12,
+ 39\0\13,
+ 39\0\14,
+ 39\0\15,
+ 39\0\16,
+ 39\0\17,
+ 39\0\18,
+ 39\0\19,
+ 39\0\20,
+ 39\0\21,
+ 39\0\22,
+ 39\0\23,
+ 39\0\24,
+ 39\0\25,
+ 39\0\26,
+ 39\0\27,
+ 39\0\28,
+ 39\1\0,
+ 39\1\1,
+ 39\1\2,
+ 39\1\3,
+ 39\2\0,
+ 39\2\1,
+ 39\2\2,
+);
+endchar;
+
+beginchar (TIB_RTSA, 9.877u#, 6.745u#, 4.095u#);
+ "rtsa";
+ z40\0\0s = (3.854u,4.095u);
+ z40\0\0c1 = (2.402u,4.090u);
+ z40\0\0c2 = (1.851u,4.235u);
+ z40\0\0 = (1.445u,2.650u);
+ z40\0\1 = (4.577u,2.650u);
+ z40\0\2c1 = (4.082u,0.324u);
+ z40\0\2c2 = (2.517u,0.123u);
+ z40\0\2 = (0.482u,0.482u);
+ z40\0\3c1 = (0.609u,-0.444u);
+ z40\0\3c2 = (1.517u,-2.667u);
+ z40\0\3 = (2.219u,-3.250u);
+ z40\0\4c1 = (3.064u,-3.951u);
+ z40\0\4c2 = (5.525u,-4.105u);
+ z40\0\4 = (6.479u,-3.571u);
+ z40\0\5c1 = (6.949u,-3.308u);
+ z40\0\5c2 = (7.239u,-2.900u);
+ z40\0\5 = (7.432u,-2.405u);
+ z40\0\6c1 = (8.394u,0.065u);
+ z40\0\6c2 = (5.014u,0.809u);
+ z40\0\6 = (5.409u,2.093u);
+ z40\0\7c1 = (5.623u,2.790u);
+ z40\0\7c2 = (6.812u,2.497u);
+ z40\0\7 = (7.319u,3.035u);
+ z40\0\8c1 = (7.888u,3.638u);
+ z40\0\8c2 = (7.291u,4.377u);
+ z40\0\8 = (7.674u,4.918u);
+ z40\0\9c1 = (8.240u,5.719u);
+ z40\0\9c2 = (9.081u,4.918u);
+ z40\0\9 = (9.395u,6.745u);
+ z40\0\10c1 = (8.774u,6.731u);
+ z40\0\10c2 = (7.855u,6.753u);
+ z40\0\10 = (7.371u,6.299u);
+ z40\0\11c1 = (6.739u,5.705u);
+ z40\0\11c2 = (7.242u,4.661u);
+ z40\0\11 = (6.228u,4.208u);
+ z40\0\12c1 = (5.968u,4.132u);
+ z40\0\12c2 = (5.587u,4.114u);
+ z40\0\12 = (5.313u,4.208u);
+ z40\0\13c1 = (4.725u,4.308u);
+ z40\0\13c2 = (4.604u,4.585u);
+ z40\0\13 = (4.336u,5.059u);
+ z40\0\14 = (5.286u,5.303u);
+ z40\0\15c1 = (5.556u,5.417u);
+ z40\0\15c2 = (5.843u,5.563u);
+ z40\0\15 = (5.982u,5.840u);
+ z40\0\16c1 = (6.628u,7.129u);
+ z40\0\16c2 = (2.638u,6.971u);
+ z40\0\16 = (2.208u,6.174u);
+ z40\0\17c1 = (1.807u,5.428u);
+ z40\0\17c2 = (3.110u,5.280u);
+ z40\0\17 = (3.470u,4.916u);
+ z40\0\18c1 = (3.720u,4.663u);
+ z40\0\18c2 = (3.753u,4.412u);
+ z40\1\0s = (4.336u,0.482u);
+ z40\1\0c1 = (4.519u,0.157u);
+ z40\1\0c2 = (4.670u,-0.127u);
+ z40\1\0 = (4.918u,-0.413u);
+ z40\1\1c1 = (5.344u,-0.907u);
+ z40\1\1c2 = (6.244u,-1.531u);
+ z40\1\1 = (6.395u,-2.165u);
+ z40\1\2c1 = (6.690u,-3.401u);
+ z40\1\2c2 = (4.933u,-3.637u);
+ z40\1\2 = (4.120u,-3.232u);
+ z40\1\3c1 = (3.092u,-2.720u);
+ z40\1\3c2 = (2.578u,-1.248u);
+ z40\1\3 = (2.168u,-0.241u);
+ fill_or_unfill z40\0\0s
+ ..controls z40\0\0c1 and z40\0\0c2..z40\0\0
+ --z40\0\1
+ ..controls z40\0\2c1 and z40\0\2c2..z40\0\2
+ ..controls z40\0\3c1 and z40\0\3c2..z40\0\3
+ ..controls z40\0\4c1 and z40\0\4c2..z40\0\4
+ ..controls z40\0\5c1 and z40\0\5c2..z40\0\5
+ ..controls z40\0\6c1 and z40\0\6c2..z40\0\6
+ ..controls z40\0\7c1 and z40\0\7c2..z40\0\7
+ ..controls z40\0\8c1 and z40\0\8c2..z40\0\8
+ ..controls z40\0\9c1 and z40\0\9c2..z40\0\9
+ ..controls z40\0\10c1 and z40\0\10c2..z40\0\10
+ ..controls z40\0\11c1 and z40\0\11c2..z40\0\11
+ ..controls z40\0\12c1 and z40\0\12c2..z40\0\12
+ ..controls z40\0\13c1 and z40\0\13c2..z40\0\13
+ --z40\0\14
+ ..controls z40\0\15c1 and z40\0\15c2..z40\0\15
+ ..controls z40\0\16c1 and z40\0\16c2..z40\0\16
+ ..controls z40\0\17c1 and z40\0\17c2..z40\0\17
+ ..controls z40\0\18c1 and z40\0\18c2..cycle;
+ fill_or_unfill z40\1\0s
+ ..controls z40\1\0c1 and z40\1\0c2..z40\1\0
+ ..controls z40\1\1c1 and z40\1\1c2..z40\1\1
+ ..controls z40\1\2c1 and z40\1\2c2..z40\1\2
+ ..controls z40\1\3c1 and z40\1\3c2..z40\1\3
+ --cycle;
+ proof_labels (
+ 40\0\0,
+ 40\0\1,
+ 40\0\2,
+ 40\0\3,
+ 40\0\4,
+ 40\0\5,
+ 40\0\6,
+ 40\0\7,
+ 40\0\8,
+ 40\0\9,
+ 40\0\10,
+ 40\0\11,
+ 40\0\12,
+ 40\0\13,
+ 40\0\14,
+ 40\0\15,
+ 40\0\16,
+ 40\0\17,
+ 40\0\18,
+ 40\1\0,
+ 40\1\1,
+ 40\1\2,
+ 40\1\3,
+ 40\1\4,
+);
+endchar;
+
+beginchar (TIB_RDZA, 8.431u#, 6.745u#, 4.336u#);
+ "rdza";
+ z41\0\0s = (0.723u,5.300u);
+ z41\0\0c1 = (1.947u,5.284u);
+ z41\0\0c2 = (2.478u,5.386u);
+ z41\0\0 = (2.891u,4.095u);
+ z41\0\1c1 = (2.372u,4.095u);
+ z41\0\1c2 = (1.275u,4.172u);
+ z41\0\1 = (0.867u,3.849u);
+ z41\0\2c1 = (0.685u,3.705u);
+ z41\0\2c2 = (0.621u,3.554u);
+ z41\0\2 = (0.520u,3.337u);
+ z41\0\3c1 = (0.417u,2.861u);
+ z41\0\3c2 = (0.482u,-2.652u);
+ z41\0\3 = (0.520u,-3.613u);
+ z41\0\4c1 = (1.848u,-3.551u);
+ z41\0\4c2 = (3.219u,-3.042u);
+ z41\0\4 = (4.577u,-3.174u);
+ z41\0\5c1 = (5.693u,-3.282u);
+ z41\0\5c2 = (6.634u,-3.843u);
+ z41\0\5 = (7.709u,-4.095u);
+ z41\0\6c1 = (6.795u,-2.252u);
+ z41\0\6c2 = (4.600u,-1.624u);
+ z41\0\6 = (2.650u,-1.711u);
+ z41\0\7 = (0.964u,-1.927u);
+ z41\0\8c1 = (0.995u,-1.543u);
+ z41\0\8c2 = (0.985u,-1.135u);
+ z41\0\8 = (1.210u,-0.798u);
+ z41\0\9c1 = (2.033u,0.435u);
+ z41\0\9c2 = (5.717u,-0.843u);
+ z41\0\9 = (6.499u,0.144u);
+ z41\0\10c1 = (6.735u,0.442u);
+ z41\0\10c2 = (6.716u,0.850u);
+ z41\0\10 = (6.745u,1.204u);
+ z41\0\11 = (0.964u,1.204u);
+ z41\0\12 = (0.964u,2.650u);
+ z41\0\13c1 = (1.806u,2.650u);
+ z41\0\13c2 = (5.682u,2.547u);
+ z41\0\13 = (6.188u,2.794u);
+ z41\0\14c1 = (6.440u,2.917u);
+ z41\0\14c2 = (6.598u,3.098u);
+ z41\0\14 = (6.637u,3.382u);
+ z41\0\15c1 = (6.706u,3.882u);
+ z41\0\15c2 = (6.361u,4.081u);
+ z41\0\15 = (6.022u,4.336u);
+ z41\0\16c1 = (6.208u,4.630u);
+ z41\0\16c2 = (6.324u,4.853u);
+ z41\0\16 = (6.603u,5.080u);
+ z41\0\17c1 = (7.485u,5.796u);
+ z41\0\17c2 = (7.721u,5.413u);
+ z41\0\17 = (7.950u,6.745u);
+ z41\0\18c1 = (7.186u,6.666u);
+ z41\0\18c2 = (6.520u,6.455u);
+ z41\0\18 = (5.782u,6.263u);
+ z41\0\19 = (5.782u,4.095u);
+ z41\0\20 = (3.372u,4.095u);
+ z41\0\21c1 = (3.448u,4.331u);
+ z41\0\21c2 = (3.467u,4.528u);
+ z41\0\21 = (3.614u,4.744u);
+ z41\0\22c1 = (4.306u,5.765u);
+ z41\0\22c2 = (4.903u,4.882u);
+ z41\0\22 = (5.059u,6.745u);
+ z41\0\23c1 = (4.154u,6.745u);
+ z41\0\23c2 = (1.732u,6.935u);
+ z41\0\23 = (1.107u,6.326u);
+ z41\0\24c1 = (0.802u,6.029u);
+ z41\0\24c2 = (0.789u,5.689u);
+ fill_or_unfill z41\0\0s
+ ..controls z41\0\0c1 and z41\0\0c2..z41\0\0
+ ..controls z41\0\1c1 and z41\0\1c2..z41\0\1
+ ..controls z41\0\2c1 and z41\0\2c2..z41\0\2
+ ..controls z41\0\3c1 and z41\0\3c2..z41\0\3
+ ..controls z41\0\4c1 and z41\0\4c2..z41\0\4
+ ..controls z41\0\5c1 and z41\0\5c2..z41\0\5
+ ..controls z41\0\6c1 and z41\0\6c2..z41\0\6
+ --z41\0\7
+ ..controls z41\0\8c1 and z41\0\8c2..z41\0\8
+ ..controls z41\0\9c1 and z41\0\9c2..z41\0\9
+ ..controls z41\0\10c1 and z41\0\10c2..z41\0\10
+ --z41\0\11
+ --z41\0\12
+ ..controls z41\0\13c1 and z41\0\13c2..z41\0\13
+ ..controls z41\0\14c1 and z41\0\14c2..z41\0\14
+ ..controls z41\0\15c1 and z41\0\15c2..z41\0\15
+ ..controls z41\0\16c1 and z41\0\16c2..z41\0\16
+ ..controls z41\0\17c1 and z41\0\17c2..z41\0\17
+ ..controls z41\0\18c1 and z41\0\18c2..z41\0\18
+ --z41\0\19
+ --z41\0\20
+ ..controls z41\0\21c1 and z41\0\21c2..z41\0\21
+ ..controls z41\0\22c1 and z41\0\22c2..z41\0\22
+ ..controls z41\0\23c1 and z41\0\23c2..z41\0\23
+ ..controls z41\0\24c1 and z41\0\24c2..cycle;
+ proof_labels (
+ 41\0\0,
+ 41\0\1,
+ 41\0\2,
+ 41\0\3,
+ 41\0\4,
+ 41\0\5,
+ 41\0\6,
+ 41\0\7,
+ 41\0\8,
+ 41\0\9,
+ 41\0\10,
+ 41\0\11,
+ 41\0\12,
+ 41\0\13,
+ 41\0\14,
+ 41\0\15,
+ 41\0\16,
+ 41\0\17,
+ 41\0\18,
+ 41\0\19,
+ 41\0\20,
+ 41\0\21,
+ 41\0\22,
+ 41\0\23,
+ 41\0\24,
+);
+endchar;
+
+beginchar (TIB_LKA, 9.877u#, 6.745u#, 6.986u#);
+ "lka";
+ z42\0\0s = (0.964u,1.686u);
+ z42\0\0 = (1.445u,1.686u);
+ z42\0\1c1 = (1.389u,2.361u);
+ z42\0\1c2 = (1.054u,3.558u);
+ z42\0\1 = (1.246u,4.160u);
+ z42\0\2c1 = (1.369u,4.546u);
+ z42\0\2c2 = (1.608u,4.853u);
+ z42\0\2 = (1.961u,5.054u);
+ z42\0\3c1 = (2.745u,5.502u);
+ z42\0\3c2 = (5.045u,5.457u);
+ z42\0\3 = (5.516u,4.523u);
+ z42\0\4c1 = (5.645u,4.202u);
+ z42\0\4c2 = (5.568u,3.940u);
+ z42\0\4 = (5.516u,3.613u);
+ z42\0\5c1 = (3.855u,3.853u);
+ z42\0\5c2 = (3.125u,3.280u);
+ z42\0\5 = (2.650u,1.686u);
+ z42\0\6 = (4.818u,2.324u);
+ z42\0\7c1 = (6.348u,2.569u);
+ z42\0\7c2 = (7.556u,1.464u);
+ z42\0\7 = (8.948u,0.964u);
+ z42\0\8 = (8.948u,3.132u);
+ z42\0\9c1 = (9.063u,3.792u);
+ z42\0\9c2 = (9.444u,5.437u);
+ z42\0\9 = (9.310u,5.987u);
+ z42\0\10c1 = (9.088u,6.896u);
+ z42\0\10c2 = (7.851u,6.862u);
+ z42\0\10 = (7.646u,6.188u);
+ z42\0\11c1 = (7.473u,5.618u);
+ z42\0\11c2 = (8.175u,4.699u);
+ z42\0\11 = (8.380u,4.095u);
+ z42\0\12c1 = (8.484u,3.486u);
+ z42\0\12c2 = (8.431u,2.793u);
+ z42\0\12 = (8.380u,2.168u);
+ z42\0\13c1 = (7.734u,2.569u);
+ z42\0\13c2 = (6.669u,3.182u);
+ z42\0\13 = (6.269u,3.896u);
+ z42\0\14c1 = (5.559u,5.163u);
+ z42\0\14c2 = (6.825u,6.604u);
+ z42\0\14 = (4.576u,6.735u);
+ z42\0\15c1 = (2.736u,6.842u);
+ z42\0\15c2 = (0.572u,6.349u);
+ z42\0\15 = (0.529u,4.095u);
+ z42\0\16c1 = (0.514u,3.309u);
+ z42\0\16c2 = (0.843u,2.470u);
+ z42\1\0s = (0.964u,-0.723u);
+ z42\1\0 = (1.927u,-0.964u);
+ z42\1\1c1 = (1.573u,-1.773u);
+ z42\1\1c2 = (1.339u,-2.499u);
+ z42\1\1 = (1.204u,-3.372u);
+ z42\1\2c1 = (1.412u,-3.244u);
+ z42\1\2c2 = (1.561u,-3.188u);
+ z42\1\2 = (1.739u,-3.001u);
+ z42\1\3c1 = (2.264u,-2.450u);
+ z42\1\3c2 = (2.458u,-1.602u);
+ z42\1\3 = (3.175u,-1.213u);
+ z42\1\4c1 = (4.911u,-0.272u);
+ z42\1\4c2 = (4.817u,-3.968u);
+ z42\1\4 = (4.818u,-4.818u);
+ z42\1\5c1 = (6.216u,-3.747u);
+ z42\1\5c2 = (5.322u,-1.928u);
+ z42\1\5 = (6.339u,-1.111u);
+ z42\1\6c1 = (6.591u,-0.909u);
+ z42\1\6c2 = (6.892u,-0.819u);
+ z42\1\6 = (7.214u,-0.861u);
+ z42\1\7c1 = (8.505u,-1.032u);
+ z42\1\7c2 = (8.376u,-3.377u);
+ z42\1\7 = (8.472u,-4.336u);
+ z42\1\8 = (8.672u,-6.745u);
+ z42\1\9 = (9.159u,-6.745u);
+ z42\1\10 = (9.159u,-2.168u);
+ z42\1\11 = (9.339u,-0.255u);
+ z42\1\12c1 = (9.319u,-0.040u);
+ z42\1\12c2 = (9.284u,0.162u);
+ z42\1\12 = (9.148u,0.338u);
+ z42\1\13c1 = (8.833u,0.746u);
+ z42\1\13c2 = (8.171u,0.713u);
+ z42\1\13 = (7.709u,0.722u);
+ z42\1\14c1 = (6.788u,0.739u);
+ z42\1\14c2 = (2.538u,0.820u);
+ z42\1\14 = (1.953u,0.578u);
+ z42\1\15c1 = (1.328u,0.320u);
+ z42\1\15c2 = (1.171u,-0.137u);
+ fill_or_unfill z42\0\0s
+ --z42\0\0
+ ..controls z42\0\1c1 and z42\0\1c2..z42\0\1
+ ..controls z42\0\2c1 and z42\0\2c2..z42\0\2
+ ..controls z42\0\3c1 and z42\0\3c2..z42\0\3
+ ..controls z42\0\4c1 and z42\0\4c2..z42\0\4
+ ..controls z42\0\5c1 and z42\0\5c2..z42\0\5
+ --z42\0\6
+ ..controls z42\0\7c1 and z42\0\7c2..z42\0\7
+ --z42\0\8
+ ..controls z42\0\9c1 and z42\0\9c2..z42\0\9
+ ..controls z42\0\10c1 and z42\0\10c2..z42\0\10
+ ..controls z42\0\11c1 and z42\0\11c2..z42\0\11
+ ..controls z42\0\12c1 and z42\0\12c2..z42\0\12
+ ..controls z42\0\13c1 and z42\0\13c2..z42\0\13
+ ..controls z42\0\14c1 and z42\0\14c2..z42\0\14
+ ..controls z42\0\15c1 and z42\0\15c2..z42\0\15
+ ..controls z42\0\16c1 and z42\0\16c2..cycle;
+ fill_or_unfill z42\1\0s
+ --z42\1\0
+ ..controls z42\1\1c1 and z42\1\1c2..z42\1\1
+ ..controls z42\1\2c1 and z42\1\2c2..z42\1\2
+ ..controls z42\1\3c1 and z42\1\3c2..z42\1\3
+ ..controls z42\1\4c1 and z42\1\4c2..z42\1\4
+ ..controls z42\1\5c1 and z42\1\5c2..z42\1\5
+ ..controls z42\1\6c1 and z42\1\6c2..z42\1\6
+ ..controls z42\1\7c1 and z42\1\7c2..z42\1\7
+ --z42\1\8
+ --z42\1\9
+ --z42\1\10
+ --z42\1\11
+ ..controls z42\1\12c1 and z42\1\12c2..z42\1\12
+ ..controls z42\1\13c1 and z42\1\13c2..z42\1\13
+ ..controls z42\1\14c1 and z42\1\14c2..z42\1\14
+ ..controls z42\1\15c1 and z42\1\15c2..cycle;
+ proof_labels (
+ 42\0\0,
+ 42\0\1,
+ 42\0\2,
+ 42\0\3,
+ 42\0\4,
+ 42\0\5,
+ 42\0\6,
+ 42\0\7,
+ 42\0\8,
+ 42\0\9,
+ 42\0\10,
+ 42\0\11,
+ 42\0\12,
+ 42\0\13,
+ 42\0\14,
+ 42\0\15,
+ 42\0\16,
+ 42\1\0,
+ 42\1\1,
+ 42\1\2,
+ 42\1\3,
+ 42\1\4,
+ 42\1\5,
+ 42\1\6,
+ 42\1\7,
+ 42\1\8,
+ 42\1\9,
+ 42\1\10,
+ 42\1\11,
+ 42\1\12,
+ 42\1\13,
+ 42\1\14,
+ 42\1\15,
+);
+endchar;
+
+beginchar (TIB_LGA, 9.636u#, 6.745u#, 6.986u#);
+ "lga";
+ z43\0\0s = (0.723u,1.686u);
+ z43\0\0c1 = (1.193u,2.870u);
+ z43\0\0c2 = (0.796u,3.979u);
+ z43\0\0 = (1.978u,4.930u);
+ z43\0\1c1 = (2.702u,5.503u);
+ z43\0\1c2 = (4.013u,5.663u);
+ z43\0\1 = (4.701u,4.930u);
+ z43\0\2c1 = (4.849u,4.780u);
+ z43\0\2c2 = (4.974u,4.582u);
+ z43\0\2 = (4.978u,4.358u);
+ z43\0\3c1 = (4.993u,3.482u);
+ z43\0\3c2 = (3.534u,3.744u);
+ z43\0\3 = (2.896u,2.624u);
+ z43\0\4c1 = (2.720u,2.317u);
+ z43\0\4c2 = (2.705u,2.022u);
+ z43\0\4 = (2.650u,1.686u);
+ z43\0\5 = (4.818u,2.182u);
+ z43\0\6c1 = (6.294u,2.374u);
+ z43\0\6c2 = (7.434u,1.421u);
+ z43\0\6 = (8.431u,0.470u);
+ z43\0\7 = (4.336u,0.470u);
+ z43\0\8c1 = (3.651u,0.482u);
+ z43\0\8c2 = (2.854u,0.560u);
+ z43\0\8 = (2.182u,0.470u);
+ z43\0\9c1 = (1.970u,0.411u);
+ z43\0\9c2 = (1.763u,0.373u);
+ z43\0\9 = (1.590u,0.235u);
+ z43\0\10c1 = (1.218u,-0.058u);
+ z43\0\10c2 = (1.240u,-0.540u);
+ z43\0\10 = (1.204u,-0.964u);
+ z43\0\11 = (2.168u,-0.964u);
+ z43\0\12c1 = (1.587u,-2.203u);
+ z43\0\12c2 = (1.320u,-2.962u);
+ z43\0\12 = (1.204u,-4.336u);
+ z43\0\13 = (2.650u,-3.970u);
+ z43\0\14c1 = (3.761u,-3.866u);
+ z43\0\14c2 = (4.673u,-4.727u);
+ z43\0\14 = (5.541u,-5.300u);
+ z43\0\15c1 = (5.541u,-4.286u);
+ z43\0\15c2 = (5.248u,-0.489u);
+ z43\0\15 = (7.202u,-1.122u);
+ z43\0\16c1 = (7.519u,-1.224u);
+ z43\0\16c2 = (7.741u,-1.440u);
+ z43\0\16 = (7.908u,-1.721u);
+ z43\0\17c1 = (8.413u,-2.571u);
+ z43\0\17c2 = (8.431u,-5.667u);
+ z43\0\17 = (8.431u,-6.745u);
+ z43\0\18 = (8.924u,-6.745u);
+ z43\0\19 = (8.924u,-3.132u);
+ z43\0\20c1 = (8.995u,-2.241u);
+ z43\0\20c2 = (9.198u,-1.394u);
+ z43\0\20 = (9.143u,-0.491u);
+ z43\0\21 = (8.713u,1.928u);
+ z43\0\22c1 = (8.657u,2.482u);
+ z43\0\22c2 = (8.661u,3.065u);
+ z43\0\22 = (8.713u,3.613u);
+ z43\0\23 = (9.115u,5.059u);
+ z43\0\24 = (9.115u,6.745u);
+ z43\0\25c1 = (6.179u,6.707u);
+ z43\0\25c2 = (7.567u,5.423u);
+ z43\0\25 = (8.044u,3.613u);
+ z43\0\26c1 = (8.210u,2.981u);
+ z43\0\26c2 = (8.188u,2.334u);
+ z43\0\26 = (8.190u,1.686u);
+ z43\0\27 = (7.185u,2.801u);
+ z43\0\28c1 = (6.821u,3.139u);
+ z43\0\28c2 = (6.284u,3.445u);
+ z43\0\28 = (6.068u,3.904u);
+ z43\0\29c1 = (5.728u,4.631u);
+ z43\0\29c2 = (6.303u,5.625u);
+ z43\0\29 = (5.604u,6.326u);
+ z43\0\30c1 = (5.214u,6.718u);
+ z43\0\30c2 = (4.610u,6.726u);
+ z43\0\30 = (4.095u,6.741u);
+ z43\0\31c1 = (1.826u,6.808u);
+ z43\0\31c2 = (0.356u,6.542u);
+ z43\0\31 = (0.504u,3.854u);
+ z43\1\0s = (4.818u,-3.854u);
+ z43\1\0c1 = (3.847u,-3.445u);
+ z43\1\0c2 = (2.942u,-3.163u);
+ z43\1\0 = (1.927u,-2.891u);
+ z43\1\1c1 = (1.999u,-2.556u);
+ z43\1\1c2 = (2.038u,-2.249u);
+ z43\1\1 = (2.209u,-1.941u);
+ z43\1\2c1 = (3.212u,-0.144u);
+ z43\1\2c2 = (5.596u,-0.887u);
+ fill_or_unfill z43\0\0s
+ ..controls z43\0\0c1 and z43\0\0c2..z43\0\0
+ ..controls z43\0\1c1 and z43\0\1c2..z43\0\1
+ ..controls z43\0\2c1 and z43\0\2c2..z43\0\2
+ ..controls z43\0\3c1 and z43\0\3c2..z43\0\3
+ ..controls z43\0\4c1 and z43\0\4c2..z43\0\4
+ --z43\0\5
+ ..controls z43\0\6c1 and z43\0\6c2..z43\0\6
+ --z43\0\7
+ ..controls z43\0\8c1 and z43\0\8c2..z43\0\8
+ ..controls z43\0\9c1 and z43\0\9c2..z43\0\9
+ ..controls z43\0\10c1 and z43\0\10c2..z43\0\10
+ --z43\0\11
+ ..controls z43\0\12c1 and z43\0\12c2..z43\0\12
+ --z43\0\13
+ ..controls z43\0\14c1 and z43\0\14c2..z43\0\14
+ ..controls z43\0\15c1 and z43\0\15c2..z43\0\15
+ ..controls z43\0\16c1 and z43\0\16c2..z43\0\16
+ ..controls z43\0\17c1 and z43\0\17c2..z43\0\17
+ --z43\0\18
+ --z43\0\19
+ ..controls z43\0\20c1 and z43\0\20c2..z43\0\20
+ --z43\0\21
+ ..controls z43\0\22c1 and z43\0\22c2..z43\0\22
+ --z43\0\23
+ --z43\0\24
+ ..controls z43\0\25c1 and z43\0\25c2..z43\0\25
+ ..controls z43\0\26c1 and z43\0\26c2..z43\0\26
+ --z43\0\27
+ ..controls z43\0\28c1 and z43\0\28c2..z43\0\28
+ ..controls z43\0\29c1 and z43\0\29c2..z43\0\29
+ ..controls z43\0\30c1 and z43\0\30c2..z43\0\30
+ ..controls z43\0\31c1 and z43\0\31c2..z43\0\31
+ --cycle;
+ fill_or_unfill z43\1\0s
+ ..controls z43\1\0c1 and z43\1\0c2..z43\1\0
+ ..controls z43\1\1c1 and z43\1\1c2..z43\1\1
+ ..controls z43\1\2c1 and z43\1\2c2..cycle;
+ proof_labels (
+ 43\0\0,
+ 43\0\1,
+ 43\0\2,
+ 43\0\3,
+ 43\0\4,
+ 43\0\5,
+ 43\0\6,
+ 43\0\7,
+ 43\0\8,
+ 43\0\9,
+ 43\0\10,
+ 43\0\11,
+ 43\0\12,
+ 43\0\13,
+ 43\0\14,
+ 43\0\15,
+ 43\0\16,
+ 43\0\17,
+ 43\0\18,
+ 43\0\19,
+ 43\0\20,
+ 43\0\21,
+ 43\0\22,
+ 43\0\23,
+ 43\0\24,
+ 43\0\25,
+ 43\0\26,
+ 43\0\27,
+ 43\0\28,
+ 43\0\29,
+ 43\0\30,
+ 43\0\31,
+ 43\0\32,
+ 43\1\0,
+ 43\1\1,
+ 43\1\2,
+);
+endchar;
+
+beginchar (TIB_LNGA, 10.118u#, 6.745u#, 7.468u#);
+ "lnga";
+ z44\0\0s = (1.445u,1.204u);
+ z44\0\0c1 = (0.277u,6.011u);
+ z44\0\0c2 = (4.709u,5.875u);
+ z44\0\0 = (5.535u,4.523u);
+ z44\0\1c1 = (5.789u,4.107u);
+ z44\0\1c2 = (5.765u,3.598u);
+ z44\0\1 = (5.782u,3.132u);
+ z44\0\2c1 = (4.838u,3.123u);
+ z44\0\2c2 = (3.061u,3.104u);
+ z44\0\2 = (2.587u,2.107u);
+ z44\0\3c1 = (2.419u,1.755u);
+ z44\0\3c2 = (2.431u,1.342u);
+ z44\0\3 = (2.409u,0.964u);
+ z44\0\4 = (4.095u,1.367u);
+ z44\0\5c1 = (6.132u,1.701u);
+ z44\0\5c2 = (7.421u,1.092u);
+ z44\0\5 = (8.913u,-0.279u);
+ z44\0\6c1 = (8.036u,-0.241u);
+ z44\0\6c2 = (3.402u,-0.176u);
+ z44\0\6 = (2.926u,-0.279u);
+ z44\0\7c1 = (2.710u,-0.380u);
+ z44\0\7c2 = (2.558u,-0.444u);
+ z44\0\7 = (2.414u,-0.626u);
+ z44\0\8c1 = (1.987u,-1.166u);
+ z44\0\8c2 = (2.168u,-5.989u);
+ z44\0\8 = (2.168u,-6.933u);
+ z44\0\9 = (3.613u,-6.933u);
+ z44\0\10c1 = (4.417u,-6.755u);
+ z44\0\10c2 = (5.203u,-6.522u);
+ z44\0\10 = (6.022u,-6.523u);
+ z44\0\11c1 = (7.113u,-6.524u);
+ z44\0\11c2 = (8.116u,-6.954u);
+ z44\0\11 = (9.154u,-7.227u);
+ z44\0\12c1 = (9.079u,-6.979u);
+ z44\0\12c2 = (9.052u,-6.767u);
+ z44\0\12 = (8.913u,-6.535u);
+ z44\0\13c1 = (8.668u,-6.127u);
+ z44\0\13c2 = (8.352u,-5.926u);
+ z44\0\13 = (7.945u,-5.705u);
+ z44\0\14c1 = (6.311u,-4.817u);
+ z44\0\14c2 = (4.445u,-5.059u);
+ z44\0\14 = (2.650u,-5.059u);
+ z44\0\15c1 = (2.650u,-4.455u);
+ z44\0\15c2 = (2.584u,-3.184u);
+ z44\0\15 = (2.794u,-2.664u);
+ z44\0\16c1 = (3.621u,-0.611u);
+ z44\0\16c2 = (7.845u,-2.592u);
+ z44\0\16 = (8.871u,-1.101u);
+ z44\0\17c1 = (9.304u,-0.471u);
+ z44\0\17c2 = (9.112u,1.337u);
+ z44\0\17 = (9.195u,2.168u);
+ z44\0\18 = (9.601u,4.336u);
+ z44\0\19 = (9.601u,6.745u);
+ z44\0\20c1 = (9.225u,6.711u);
+ z44\0\20c2 = (8.718u,6.733u);
+ z44\0\20 = (8.440u,6.360u);
+ z44\0\21c1 = (8.307u,6.182u);
+ z44\0\21c2 = (8.279u,5.983u);
+ z44\0\21 = (8.275u,5.768u);
+ z44\0\22c1 = (8.266u,5.217u);
+ z44\0\22c2 = (8.546u,4.645u);
+ z44\0\22 = (8.658u,4.095u);
+ z44\0\23 = (8.658u,1.927u);
+ z44\0\24 = (8.913u,0.723u);
+ z44\0\25c1 = (7.999u,1.517u);
+ z44\0\25c2 = (7.123u,2.374u);
+ z44\0\25 = (6.001u,2.891u);
+ z44\0\26c1 = (6.219u,3.701u);
+ z44\0\26c2 = (6.492u,5.427u);
+ z44\0\26 = (6.001u,6.195u);
+ z44\0\27c1 = (5.314u,7.083u);
+ z44\0\27c2 = (2.587u,6.813u);
+ z44\0\27 = (1.737u,6.195u);
+ z44\0\28c1 = (0.759u,5.587u);
+ z44\0\28c2 = (0.425u,4.243u);
+ z44\0\28 = (0.523u,3.132u);
+ z44\0\29c1 = (0.603u,2.235u);
+ z44\0\29c2 = (0.680u,1.710u);
+ fill_or_unfill z44\0\0s
+ ..controls z44\0\0c1 and z44\0\0c2..z44\0\0
+ ..controls z44\0\1c1 and z44\0\1c2..z44\0\1
+ ..controls z44\0\2c1 and z44\0\2c2..z44\0\2
+ ..controls z44\0\3c1 and z44\0\3c2..z44\0\3
+ --z44\0\4
+ ..controls z44\0\5c1 and z44\0\5c2..z44\0\5
+ ..controls z44\0\6c1 and z44\0\6c2..z44\0\6
+ ..controls z44\0\7c1 and z44\0\7c2..z44\0\7
+ ..controls z44\0\8c1 and z44\0\8c2..z44\0\8
+ --z44\0\9
+ ..controls z44\0\10c1 and z44\0\10c2..z44\0\10
+ ..controls z44\0\11c1 and z44\0\11c2..z44\0\11
+ ..controls z44\0\12c1 and z44\0\12c2..z44\0\12
+ ..controls z44\0\13c1 and z44\0\13c2..z44\0\13
+ ..controls z44\0\14c1 and z44\0\14c2..z44\0\14
+ ..controls z44\0\15c1 and z44\0\15c2..z44\0\15
+ ..controls z44\0\16c1 and z44\0\16c2..z44\0\16
+ ..controls z44\0\17c1 and z44\0\17c2..z44\0\17
+ --z44\0\18
+ --z44\0\19
+ ..controls z44\0\20c1 and z44\0\20c2..z44\0\20
+ ..controls z44\0\21c1 and z44\0\21c2..z44\0\21
+ ..controls z44\0\22c1 and z44\0\22c2..z44\0\22
+ --z44\0\23
+ --z44\0\24
+ ..controls z44\0\25c1 and z44\0\25c2..z44\0\25
+ ..controls z44\0\26c1 and z44\0\26c2..z44\0\26
+ ..controls z44\0\27c1 and z44\0\27c2..z44\0\27
+ ..controls z44\0\28c1 and z44\0\28c2..z44\0\28
+ ..controls z44\0\29c1 and z44\0\29c2..cycle;
+ proof_labels (
+ 44\0\0,
+ 44\0\1,
+ 44\0\2,
+ 44\0\3,
+ 44\0\4,
+ 44\0\5,
+ 44\0\6,
+ 44\0\7,
+ 44\0\8,
+ 44\0\9,
+ 44\0\10,
+ 44\0\11,
+ 44\0\12,
+ 44\0\13,
+ 44\0\14,
+ 44\0\15,
+ 44\0\16,
+ 44\0\17,
+ 44\0\18,
+ 44\0\19,
+ 44\0\20,
+ 44\0\21,
+ 44\0\22,
+ 44\0\23,
+ 44\0\24,
+ 44\0\25,
+ 44\0\26,
+ 44\0\27,
+ 44\0\28,
+ 44\0\29,
+);
+endchar;
+
+beginchar (TIB_LCA, 10.118u#, 6.745u#, 5.782u#);
+ "lca";
+ z45\0\0s = (1.445u,1.445u);
+ z45\0\0c1 = (1.344u,2.164u);
+ z45\0\0c2 = (0.948u,3.433u);
+ z45\0\0 = (1.163u,4.085u);
+ z45\0\1c1 = (1.299u,4.498u);
+ z45\0\1c2 = (1.577u,4.805u);
+ z45\0\1 = (1.953u,5.017u);
+ z45\0\2c1 = (2.647u,5.408u);
+ z45\0\2c2 = (4.800u,5.465u);
+ z45\0\2 = (5.396u,4.881u);
+ z45\0\3c1 = (5.753u,4.532u);
+ z45\0\3c2 = (5.744u,4.072u);
+ z45\0\3 = (5.782u,3.613u);
+ z45\0\4c1 = (4.236u,3.538u);
+ z45\0\4c2 = (3.140u,3.314u);
+ z45\0\4 = (2.650u,1.686u);
+ z45\0\5 = (5.059u,2.349u);
+ z45\0\6c1 = (6.151u,2.460u);
+ z45\0\6c2 = (7.342u,1.855u);
+ z45\0\6 = (8.431u,1.686u);
+ z45\0\7c1 = (7.840u,1.518u);
+ z45\0\7c2 = (7.361u,1.455u);
+ z45\0\7 = (6.745u,1.446u);
+ z45\0\8c1 = (5.999u,1.436u);
+ z45\0\8c2 = (3.806u,1.582u);
+ z45\0\8 = (3.269u,1.206u);
+ z45\0\9c1 = (2.845u,0.910u);
+ z45\0\9c2 = (2.768u,0.462u);
+ z45\0\9 = (2.650u,0.000u);
+ z45\0\10 = (6.504u,0.000u);
+ z45\0\11c1 = (5.311u,-2.173u);
+ z45\0\11c2 = (4.150u,-2.168u);
+ z45\0\11 = (1.927u,-2.168u);
+ z45\0\12 = (2.663u,-3.372u);
+ z45\0\13c1 = (2.973u,-3.923u);
+ z45\0\13c2 = (3.221u,-4.720u);
+ z45\0\13 = (3.713u,-5.122u);
+ z45\0\14c1 = (4.233u,-5.547u);
+ z45\0\14c2 = (4.908u,-5.531u);
+ z45\0\14 = (5.541u,-5.540u);
+ z45\0\15c1 = (6.767u,-5.556u);
+ z45\0\15c2 = (8.463u,-5.733u);
+ z45\0\15 = (9.046u,-4.326u);
+ z45\0\16c1 = (9.133u,-4.008u);
+ z45\0\16c2 = (9.165u,-3.504u);
+ z45\0\16 = (9.046u,-3.172u);
+ z45\0\17c1 = (8.909u,-2.479u);
+ z45\0\17c2 = (8.200u,-1.949u);
+ z45\0\17 = (7.730u,-1.442u);
+ z45\0\18 = (6.745u,-0.241u);
+ z45\0\19 = (7.709u,-0.042u);
+ z45\0\20c1 = (8.350u,0.044u);
+ z45\0\20c2 = (8.936u,-0.038u);
+ z45\0\20 = (9.364u,0.557u);
+ z45\0\21c1 = (9.514u,0.765u);
+ z45\0\21c2 = (9.550u,0.974u);
+ z45\0\21 = (9.636u,1.204u);
+ z45\0\22c1 = (9.459u,1.394u);
+ z45\0\22c2 = (9.286u,1.526u);
+ z45\0\22 = (9.156u,1.762u);
+ z45\0\23c1 = (8.482u,2.983u);
+ z45\0\23c2 = (9.877u,5.264u);
+ z45\0\23 = (9.482u,6.188u);
+ z45\0\24c1 = (9.173u,6.913u);
+ z45\0\24c2 = (7.952u,6.827u);
+ z45\0\24 = (7.813u,6.009u);
+ z45\0\25c1 = (7.717u,5.445u);
+ z45\0\25c2 = (8.276u,4.694u);
+ z45\0\25 = (8.405u,4.092u);
+ z45\0\26c1 = (8.495u,3.402u);
+ z45\0\26c2 = (8.431u,2.628u);
+ z45\0\26 = (8.405u,1.927u);
+ z45\0\27 = (7.447u,2.810u);
+ z45\0\28c1 = (7.108u,3.073u);
+ z45\0\28c2 = (6.686u,3.324u);
+ z45\0\28 = (6.448u,3.691u);
+ z45\0\29c1 = (5.963u,4.440u);
+ z45\0\29c2 = (6.430u,5.868u);
+ z45\0\29 = (5.647u,6.462u);
+ z45\0\30c1 = (5.224u,6.783u);
+ z45\0\30c2 = (4.368u,6.745u);
+ z45\0\30 = (3.854u,6.745u);
+ z45\0\31c1 = (3.082u,6.745u);
+ z45\0\31c2 = (2.155u,6.769u);
+ z45\0\31 = (1.499u,6.299u);
+ z45\0\32c1 = (0.377u,5.495u);
+ z45\0\32c2 = (0.147u,2.870u);
+ z45\0\32 = (0.973u,1.810u);
+ z45\0\33c1 = (1.125u,1.614u);
+ z45\0\33c2 = (1.256u,1.573u);
+ z45\1\0s = (8.190u,-4.818u);
+ z45\1\0c1 = (7.695u,-4.978u);
+ z45\1\0c2 = (7.026u,-5.234u);
+ z45\1\0 = (6.504u,-5.189u);
+ z45\1\1c1 = (5.149u,-5.073u);
+ z45\1\1c2 = (4.286u,-3.536u);
+ z45\1\1 = (3.854u,-2.409u);
+ z45\1\2c1 = (4.416u,-2.363u);
+ z45\1\2c2 = (5.204u,-2.167u);
+ z45\1\2 = (5.741u,-2.255u);
+ z45\1\3c1 = (6.492u,-2.377u);
+ z45\1\3c2 = (7.602u,-3.451u);
+ z45\1\3 = (7.949u,-4.099u);
+ fill_or_unfill z45\0\0s
+ ..controls z45\0\0c1 and z45\0\0c2..z45\0\0
+ ..controls z45\0\1c1 and z45\0\1c2..z45\0\1
+ ..controls z45\0\2c1 and z45\0\2c2..z45\0\2
+ ..controls z45\0\3c1 and z45\0\3c2..z45\0\3
+ ..controls z45\0\4c1 and z45\0\4c2..z45\0\4
+ --z45\0\5
+ ..controls z45\0\6c1 and z45\0\6c2..z45\0\6
+ ..controls z45\0\7c1 and z45\0\7c2..z45\0\7
+ ..controls z45\0\8c1 and z45\0\8c2..z45\0\8
+ ..controls z45\0\9c1 and z45\0\9c2..z45\0\9
+ --z45\0\10
+ ..controls z45\0\11c1 and z45\0\11c2..z45\0\11
+ --z45\0\12
+ ..controls z45\0\13c1 and z45\0\13c2..z45\0\13
+ ..controls z45\0\14c1 and z45\0\14c2..z45\0\14
+ ..controls z45\0\15c1 and z45\0\15c2..z45\0\15
+ ..controls z45\0\16c1 and z45\0\16c2..z45\0\16
+ ..controls z45\0\17c1 and z45\0\17c2..z45\0\17
+ --z45\0\18
+ --z45\0\19
+ ..controls z45\0\20c1 and z45\0\20c2..z45\0\20
+ ..controls z45\0\21c1 and z45\0\21c2..z45\0\21
+ ..controls z45\0\22c1 and z45\0\22c2..z45\0\22
+ ..controls z45\0\23c1 and z45\0\23c2..z45\0\23
+ ..controls z45\0\24c1 and z45\0\24c2..z45\0\24
+ ..controls z45\0\25c1 and z45\0\25c2..z45\0\25
+ ..controls z45\0\26c1 and z45\0\26c2..z45\0\26
+ --z45\0\27
+ ..controls z45\0\28c1 and z45\0\28c2..z45\0\28
+ ..controls z45\0\29c1 and z45\0\29c2..z45\0\29
+ ..controls z45\0\30c1 and z45\0\30c2..z45\0\30
+ ..controls z45\0\31c1 and z45\0\31c2..z45\0\31
+ ..controls z45\0\32c1 and z45\0\32c2..z45\0\32
+ ..controls z45\0\33c1 and z45\0\33c2..cycle;
+ fill_or_unfill z45\1\0s
+ ..controls z45\1\0c1 and z45\1\0c2..z45\1\0
+ ..controls z45\1\1c1 and z45\1\1c2..z45\1\1
+ ..controls z45\1\2c1 and z45\1\2c2..z45\1\2
+ ..controls z45\1\3c1 and z45\1\3c2..z45\1\3
+ --cycle;
+ proof_labels (
+ 45\0\0,
+ 45\0\1,
+ 45\0\2,
+ 45\0\3,
+ 45\0\4,
+ 45\0\5,
+ 45\0\6,
+ 45\0\7,
+ 45\0\8,
+ 45\0\9,
+ 45\0\10,
+ 45\0\11,
+ 45\0\12,
+ 45\0\13,
+ 45\0\14,
+ 45\0\15,
+ 45\0\16,
+ 45\0\17,
+ 45\0\18,
+ 45\0\19,
+ 45\0\20,
+ 45\0\21,
+ 45\0\22,
+ 45\0\23,
+ 45\0\24,
+ 45\0\25,
+ 45\0\26,
+ 45\0\27,
+ 45\0\28,
+ 45\0\29,
+ 45\0\30,
+ 45\0\31,
+ 45\0\32,
+ 45\0\33,
+ 45\1\0,
+ 45\1\1,
+ 45\1\2,
+ 45\1\3,
+ 45\1\4,
+);
+endchar;
+
+beginchar (TIB_LJA, 10.359u#, 6.745u#, 7.227u#);
+ "lja";
+ z46\0\0s = (0.964u,1.204u);
+ z46\0\0c1 = (1.219u,1.901u);
+ z46\0\0c2 = (1.027u,2.431u);
+ z46\0\0 = (1.132u,3.131u);
+ z46\0\1c1 = (1.354u,4.610u);
+ z46\0\1c2 = (2.891u,5.569u);
+ z46\0\1 = (4.335u,5.223u);
+ z46\0\2c1 = (4.910u,5.085u);
+ z46\0\2c2 = (5.487u,4.671u);
+ z46\0\2 = (5.685u,4.094u);
+ z46\0\3c1 = (6.159u,2.717u);
+ z46\0\3c2 = (4.120u,2.710u);
+ z46\0\3 = (3.376u,2.231u);
+ z46\0\4c1 = (2.854u,1.895u);
+ z46\0\4c2 = (2.528u,1.453u);
+ z46\0\4 = (2.168u,0.964u);
+ z46\0\5 = (4.336u,1.334u);
+ z46\0\6c1 = (6.521u,1.717u);
+ z46\0\6c2 = (7.573u,1.249u);
+ z46\0\6 = (9.154u,-0.241u);
+ z46\0\7 = (5.059u,-0.241u);
+ z46\0\8c1 = (4.467u,-0.242u);
+ z46\0\8c2 = (3.493u,-0.181u);
+ z46\0\8 = (2.994u,-0.524u);
+ z46\0\9c1 = (2.725u,-0.709u);
+ z46\0\9c2 = (2.606u,-0.924u);
+ z46\0\9 = (2.461u,-1.230u);
+ z46\0\10c1 = (2.327u,-1.834u);
+ z46\0\10c2 = (2.409u,-5.813u);
+ z46\0\10 = (2.461u,-6.711u);
+ z46\0\11 = (3.854u,-6.711u);
+ z46\0\12 = (6.263u,-6.307u);
+ z46\0\13c1 = (7.521u,-6.216u);
+ z46\0\13c2 = (8.663u,-6.769u);
+ z46\0\13 = (9.877u,-6.986u);
+ z46\0\14c1 = (9.754u,-6.746u);
+ z46\0\14c2 = (9.689u,-6.543u);
+ z46\0\14 = (9.506u,-6.329u);
+ z46\0\15c1 = (9.145u,-5.909u);
+ z46\0\15c2 = (8.689u,-5.730u);
+ z46\0\15 = (8.190u,-5.533u);
+ z46\0\16c1 = (6.492u,-4.864u);
+ z46\0\16c2 = (4.684u,-5.059u);
+ z46\0\16 = (2.891u,-5.059u);
+ z46\0\17 = (2.891u,-4.095u);
+ z46\0\18 = (5.782u,-4.095u);
+ z46\0\19c1 = (6.790u,-4.095u);
+ z46\0\19c2 = (7.693u,-4.132u);
+ z46\0\19 = (8.672u,-3.854u);
+ z46\0\20 = (8.672u,-3.372u);
+ z46\0\21c1 = (7.693u,-3.094u);
+ z46\0\21c2 = (6.790u,-3.132u);
+ z46\0\21 = (5.782u,-3.132u);
+ z46\0\22 = (2.891u,-3.132u);
+ z46\0\23c1 = (3.019u,-2.710u);
+ z46\0\23c2 = (3.086u,-2.374u);
+ z46\0\23 = (3.448u,-2.071u);
+ z46\0\24c1 = (4.176u,-1.461u);
+ z46\0\24c2 = (6.705u,-1.704u);
+ z46\0\24 = (7.709u,-1.685u);
+ z46\0\25c1 = (8.322u,-1.674u);
+ z46\0\25c2 = (8.970u,-1.703u);
+ z46\0\25 = (9.353u,-1.129u);
+ z46\0\26c1 = (9.640u,-0.698u);
+ z46\0\26c2 = (9.628u,-0.019u);
+ z46\0\26 = (9.646u,0.482u);
+ z46\0\27 = (9.646u,3.854u);
+ z46\0\28 = (9.787u,5.536u);
+ z46\0\29c1 = (9.838u,5.750u);
+ z46\0\29c2 = (9.826u,5.990u);
+ z46\0\29 = (9.787u,6.188u);
+ z46\0\30c1 = (9.326u,7.037u);
+ z46\0\30c2 = (7.794u,6.693u);
+ z46\0\30 = (8.086u,5.599u);
+ z46\0\31 = (8.879u,4.092u);
+ z46\0\32c1 = (9.182u,3.307u);
+ z46\0\32c2 = (9.153u,2.511u);
+ z46\0\32 = (9.154u,1.686u);
+ z46\0\33 = (9.154u,0.723u);
+ z46\0\34 = (8.018u,1.738u);
+ z46\0\35c1 = (7.618u,2.064u);
+ z46\0\35c2 = (6.765u,2.551u);
+ z46\0\35 = (6.549u,2.984u);
+ z46\0\36c1 = (6.142u,3.801u);
+ z46\0\36c2 = (7.007u,5.416u);
+ z46\0\36 = (5.947u,6.290u);
+ z46\0\37c1 = (5.379u,6.757u);
+ z46\0\37c2 = (4.551u,6.757u);
+ z46\0\37 = (3.854u,6.741u);
+ z46\0\38c1 = (3.290u,6.728u);
+ z46\0\38c2 = (2.718u,6.689u);
+ z46\0\38 = (2.219u,6.395u);
+ z46\0\39c1 = (1.393u,5.908u);
+ z46\0\39c2 = (0.535u,4.074u);
+ z46\0\39 = (0.531u,3.132u);
+ z46\0\40c1 = (0.529u,2.486u);
+ z46\0\40c2 = (0.802u,1.825u);
+ fill_or_unfill z46\0\0s
+ ..controls z46\0\0c1 and z46\0\0c2..z46\0\0
+ ..controls z46\0\1c1 and z46\0\1c2..z46\0\1
+ ..controls z46\0\2c1 and z46\0\2c2..z46\0\2
+ ..controls z46\0\3c1 and z46\0\3c2..z46\0\3
+ ..controls z46\0\4c1 and z46\0\4c2..z46\0\4
+ --z46\0\5
+ ..controls z46\0\6c1 and z46\0\6c2..z46\0\6
+ --z46\0\7
+ ..controls z46\0\8c1 and z46\0\8c2..z46\0\8
+ ..controls z46\0\9c1 and z46\0\9c2..z46\0\9
+ ..controls z46\0\10c1 and z46\0\10c2..z46\0\10
+ --z46\0\11
+ --z46\0\12
+ ..controls z46\0\13c1 and z46\0\13c2..z46\0\13
+ ..controls z46\0\14c1 and z46\0\14c2..z46\0\14
+ ..controls z46\0\15c1 and z46\0\15c2..z46\0\15
+ ..controls z46\0\16c1 and z46\0\16c2..z46\0\16
+ --z46\0\17
+ --z46\0\18
+ ..controls z46\0\19c1 and z46\0\19c2..z46\0\19
+ --z46\0\20
+ ..controls z46\0\21c1 and z46\0\21c2..z46\0\21
+ --z46\0\22
+ ..controls z46\0\23c1 and z46\0\23c2..z46\0\23
+ ..controls z46\0\24c1 and z46\0\24c2..z46\0\24
+ ..controls z46\0\25c1 and z46\0\25c2..z46\0\25
+ ..controls z46\0\26c1 and z46\0\26c2..z46\0\26
+ --z46\0\27
+ --z46\0\28
+ ..controls z46\0\29c1 and z46\0\29c2..z46\0\29
+ ..controls z46\0\30c1 and z46\0\30c2..z46\0\30
+ --z46\0\31
+ ..controls z46\0\32c1 and z46\0\32c2..z46\0\32
+ --z46\0\33
+ --z46\0\34
+ ..controls z46\0\35c1 and z46\0\35c2..z46\0\35
+ ..controls z46\0\36c1 and z46\0\36c2..z46\0\36
+ ..controls z46\0\37c1 and z46\0\37c2..z46\0\37
+ ..controls z46\0\38c1 and z46\0\38c2..z46\0\38
+ ..controls z46\0\39c1 and z46\0\39c2..z46\0\39
+ ..controls z46\0\40c1 and z46\0\40c2..cycle;
+ proof_labels (
+ 46\0\0,
+ 46\0\1,
+ 46\0\2,
+ 46\0\3,
+ 46\0\4,
+ 46\0\5,
+ 46\0\6,
+ 46\0\7,
+ 46\0\8,
+ 46\0\9,
+ 46\0\10,
+ 46\0\11,
+ 46\0\12,
+ 46\0\13,
+ 46\0\14,
+ 46\0\15,
+ 46\0\16,
+ 46\0\17,
+ 46\0\18,
+ 46\0\19,
+ 46\0\20,
+ 46\0\21,
+ 46\0\22,
+ 46\0\23,
+ 46\0\24,
+ 46\0\25,
+ 46\0\26,
+ 46\0\27,
+ 46\0\28,
+ 46\0\29,
+ 46\0\30,
+ 46\0\31,
+ 46\0\32,
+ 46\0\33,
+ 46\0\34,
+ 46\0\35,
+ 46\0\36,
+ 46\0\37,
+ 46\0\38,
+ 46\0\39,
+ 46\0\40,
+);
+endchar;
+
+beginchar (TIB_LTA, 10.118u#, 6.745u#, 7.227u#);
+ "lta";
+ z47\0\0s = (1.445u,1.445u);
+ z47\0\0c1 = (1.344u,2.164u);
+ z47\0\0c2 = (0.948u,3.433u);
+ z47\0\0 = (1.163u,4.085u);
+ z47\0\1c1 = (1.299u,4.498u);
+ z47\0\1c2 = (1.577u,4.805u);
+ z47\0\1 = (1.953u,5.017u);
+ z47\0\2c1 = (2.647u,5.408u);
+ z47\0\2c2 = (4.800u,5.465u);
+ z47\0\2 = (5.396u,4.881u);
+ z47\0\3c1 = (5.753u,4.532u);
+ z47\0\3c2 = (5.744u,4.072u);
+ z47\0\3 = (5.782u,3.613u);
+ z47\0\4c1 = (4.236u,3.538u);
+ z47\0\4c2 = (3.140u,3.314u);
+ z47\0\4 = (2.650u,1.686u);
+ z47\0\5 = (4.818u,2.312u);
+ z47\0\6c1 = (5.969u,2.525u);
+ z47\0\6c2 = (7.567u,1.814u);
+ z47\0\6 = (8.672u,1.445u);
+ z47\0\7c1 = (7.109u,1.001u);
+ z47\0\7c2 = (5.240u,1.204u);
+ z47\0\7 = (3.613u,1.204u);
+ z47\0\8 = (3.613u,-3.132u);
+ z47\0\9c1 = (5.022u,-2.815u);
+ z47\0\9c2 = (6.254u,-2.221u);
+ z47\0\9 = (7.336u,-3.630u);
+ z47\0\10c1 = (7.637u,-4.022u);
+ z47\0\10c2 = (7.775u,-4.406u);
+ z47\0\10 = (7.567u,-4.877u);
+ z47\0\11c1 = (7.316u,-5.444u);
+ z47\0\11c2 = (6.748u,-5.777u);
+ z47\0\11 = (6.330u,-6.201u);
+ z47\0\12c1 = (6.072u,-6.464u);
+ z47\0\12c2 = (5.956u,-6.673u);
+ z47\0\12 = (5.782u,-6.986u);
+ z47\0\13c1 = (6.841u,-6.764u);
+ z47\0\13c2 = (7.862u,-6.219u);
+ z47\0\13 = (8.467u,-5.278u);
+ z47\0\14c1 = (8.745u,-4.846u);
+ z47\0\14c2 = (8.859u,-4.362u);
+ z47\0\14 = (8.887u,-3.854u);
+ z47\0\15c1 = (8.980u,-2.199u);
+ z47\0\15c2 = (8.072u,-1.477u);
+ z47\0\15 = (6.504u,-1.331u);
+ z47\0\16c1 = (5.684u,-1.255u);
+ z47\0\16c2 = (4.880u,-1.478u);
+ z47\0\16 = (4.095u,-1.686u);
+ z47\0\17c1 = (4.317u,-1.288u);
+ z47\0\17c2 = (4.494u,-0.911u);
+ z47\0\17 = (4.871u,-0.626u);
+ z47\0\18c1 = (5.625u,-0.054u);
+ z47\0\18c2 = (7.698u,-0.241u);
+ z47\0\18 = (8.672u,-0.241u);
+ z47\0\19 = (8.997u,0.964u);
+ z47\0\20 = (8.997u,3.132u);
+ z47\0\21 = (9.330u,4.577u);
+ z47\0\22c1 = (9.423u,4.950u);
+ z47\0\22c2 = (9.572u,5.381u);
+ z47\0\22 = (9.557u,5.768u);
+ z47\0\23c1 = (9.514u,6.893u);
+ z47\0\23c2 = (8.173u,6.922u);
+ z47\0\23 = (7.864u,6.197u);
+ z47\0\24c1 = (7.613u,5.606u);
+ z47\0\24c2 = (8.272u,4.721u);
+ z47\0\24 = (8.405u,4.092u);
+ z47\0\25c1 = (8.495u,3.402u);
+ z47\0\25c2 = (8.431u,2.628u);
+ z47\0\25 = (8.405u,1.927u);
+ z47\0\26 = (7.447u,2.810u);
+ z47\0\27c1 = (7.108u,3.073u);
+ z47\0\27c2 = (6.686u,3.324u);
+ z47\0\27 = (6.448u,3.691u);
+ z47\0\28c1 = (5.963u,4.440u);
+ z47\0\28c2 = (6.430u,5.868u);
+ z47\0\28 = (5.647u,6.462u);
+ z47\0\29c1 = (5.224u,6.783u);
+ z47\0\29c2 = (4.368u,6.745u);
+ z47\0\29 = (3.854u,6.745u);
+ z47\0\30c1 = (3.082u,6.745u);
+ z47\0\30c2 = (2.155u,6.769u);
+ z47\0\30 = (1.499u,6.299u);
+ z47\0\31c1 = (0.377u,5.495u);
+ z47\0\31c2 = (0.147u,2.870u);
+ z47\0\31 = (0.973u,1.810u);
+ z47\0\32c1 = (1.125u,1.614u);
+ z47\0\32c2 = (1.256u,1.573u);
+ fill_or_unfill z47\0\0s
+ ..controls z47\0\0c1 and z47\0\0c2..z47\0\0
+ ..controls z47\0\1c1 and z47\0\1c2..z47\0\1
+ ..controls z47\0\2c1 and z47\0\2c2..z47\0\2
+ ..controls z47\0\3c1 and z47\0\3c2..z47\0\3
+ ..controls z47\0\4c1 and z47\0\4c2..z47\0\4
+ --z47\0\5
+ ..controls z47\0\6c1 and z47\0\6c2..z47\0\6
+ ..controls z47\0\7c1 and z47\0\7c2..z47\0\7
+ --z47\0\8
+ ..controls z47\0\9c1 and z47\0\9c2..z47\0\9
+ ..controls z47\0\10c1 and z47\0\10c2..z47\0\10
+ ..controls z47\0\11c1 and z47\0\11c2..z47\0\11
+ ..controls z47\0\12c1 and z47\0\12c2..z47\0\12
+ ..controls z47\0\13c1 and z47\0\13c2..z47\0\13
+ ..controls z47\0\14c1 and z47\0\14c2..z47\0\14
+ ..controls z47\0\15c1 and z47\0\15c2..z47\0\15
+ ..controls z47\0\16c1 and z47\0\16c2..z47\0\16
+ ..controls z47\0\17c1 and z47\0\17c2..z47\0\17
+ ..controls z47\0\18c1 and z47\0\18c2..z47\0\18
+ --z47\0\19
+ --z47\0\20
+ --z47\0\21
+ ..controls z47\0\22c1 and z47\0\22c2..z47\0\22
+ ..controls z47\0\23c1 and z47\0\23c2..z47\0\23
+ ..controls z47\0\24c1 and z47\0\24c2..z47\0\24
+ ..controls z47\0\25c1 and z47\0\25c2..z47\0\25
+ --z47\0\26
+ ..controls z47\0\27c1 and z47\0\27c2..z47\0\27
+ ..controls z47\0\28c1 and z47\0\28c2..z47\0\28
+ ..controls z47\0\29c1 and z47\0\29c2..z47\0\29
+ ..controls z47\0\30c1 and z47\0\30c2..z47\0\30
+ ..controls z47\0\31c1 and z47\0\31c2..z47\0\31
+ ..controls z47\0\32c1 and z47\0\32c2..cycle;
+ proof_labels (
+ 47\0\0,
+ 47\0\1,
+ 47\0\2,
+ 47\0\3,
+ 47\0\4,
+ 47\0\5,
+ 47\0\6,
+ 47\0\7,
+ 47\0\8,
+ 47\0\9,
+ 47\0\10,
+ 47\0\11,
+ 47\0\12,
+ 47\0\13,
+ 47\0\14,
+ 47\0\15,
+ 47\0\16,
+ 47\0\17,
+ 47\0\18,
+ 47\0\19,
+ 47\0\20,
+ 47\0\21,
+ 47\0\22,
+ 47\0\23,
+ 47\0\24,
+ 47\0\25,
+ 47\0\26,
+ 47\0\27,
+ 47\0\28,
+ 47\0\29,
+ 47\0\30,
+ 47\0\31,
+ 47\0\32,
+);
+endchar;
+
+beginchar (TIB_LDA, 10.118u#, 6.745u#, 6.504u#);
+ "lda";
+ z48\0\0s = (1.445u,1.204u);
+ z48\0\0c1 = (1.320u,1.871u);
+ z48\0\0c2 = (0.998u,2.971u);
+ z48\0\0 = (1.182u,3.612u);
+ z48\0\1c1 = (1.712u,5.464u);
+ z48\0\1c2 = (4.913u,5.926u);
+ z48\0\1 = (5.726u,4.082u);
+ z48\0\2c1 = (5.829u,3.699u);
+ z48\0\2c2 = (5.788u,3.292u);
+ z48\0\2 = (5.726u,2.891u);
+ z48\0\3c1 = (4.283u,2.821u);
+ z48\0\3c2 = (3.437u,2.751u);
+ z48\0\3 = (2.891u,1.204u);
+ z48\0\4c1 = (5.229u,1.513u);
+ z48\0\4c2 = (5.228u,1.469u);
+ z48\0\4 = (7.468u,0.679u);
+ z48\0\5 = (6.745u,0.679u);
+ z48\0\6c1 = (5.717u,0.622u);
+ z48\0\6c2 = (2.829u,1.073u);
+ z48\0\6 = (2.185u,0.107u);
+ z48\0\7c1 = (1.897u,-0.326u);
+ z48\0\7c2 = (2.181u,-0.991u);
+ z48\0\7 = (2.040u,-1.514u);
+ z48\0\8 = (1.677u,-2.412u);
+ z48\0\9c1 = (1.536u,-2.822u);
+ z48\0\9c2 = (1.491u,-3.187u);
+ z48\0\9 = (1.445u,-3.613u);
+ z48\0\10c1 = (3.423u,-3.453u);
+ z48\0\10c2 = (5.027u,-2.957u);
+ z48\0\10 = (6.724u,-4.418u);
+ z48\0\11c1 = (7.438u,-5.034u);
+ z48\0\11c2 = (7.838u,-5.784u);
+ z48\0\11 = (8.672u,-6.263u);
+ z48\0\12c1 = (8.154u,-4.489u);
+ z48\0\12c2 = (6.698u,-2.511u);
+ z48\0\12 = (4.818u,-2.055u);
+ z48\0\13c1 = (4.047u,-1.868u);
+ z48\0\13c2 = (3.197u,-1.927u);
+ z48\0\13 = (2.409u,-1.927u);
+ z48\0\14c1 = (2.711u,-1.554u);
+ z48\0\14c2 = (2.944u,-1.239u);
+ z48\0\14 = (3.383u,-1.005u);
+ z48\0\15c1 = (4.510u,-0.407u);
+ z48\0\15c2 = (6.528u,-1.159u);
+ z48\0\15 = (7.226u,-0.166u);
+ z48\0\16c1 = (7.375u,0.046u);
+ z48\0\16c2 = (7.393u,0.249u);
+ z48\0\16 = (7.468u,0.482u);
+ z48\0\17c1 = (8.092u,-0.063u);
+ z48\0\17c2 = (8.244u,-0.258u);
+ z48\0\17 = (8.672u,-0.964u);
+ z48\0\18c1 = (8.965u,-0.226u);
+ z48\0\18c2 = (8.888u,0.426u);
+ z48\0\18 = (8.923u,1.204u);
+ z48\0\19 = (9.203u,3.854u);
+ z48\0\20 = (9.591u,5.300u);
+ z48\0\21c1 = (9.636u,5.780u);
+ z48\0\21c2 = (9.631u,6.259u);
+ z48\0\21 = (9.591u,6.745u);
+ z48\0\22c1 = (9.125u,6.738u);
+ z48\0\22c2 = (8.306u,6.810u);
+ z48\0\22 = (7.955u,6.360u);
+ z48\0\23c1 = (7.733u,6.076u);
+ z48\0\23c2 = (7.728u,5.638u);
+ z48\0\23 = (7.778u,5.299u);
+ z48\0\24 = (8.342u,3.613u);
+ z48\0\25c1 = (8.644u,2.508u);
+ z48\0\25c2 = (8.671u,1.377u);
+ z48\0\25 = (8.672u,0.241u);
+ z48\0\26c1 = (7.904u,1.411u);
+ z48\0\26c2 = (7.399u,2.177u);
+ z48\0\26 = (6.020u,2.650u);
+ z48\0\27c1 = (6.207u,3.410u);
+ z48\0\27c2 = (6.512u,5.734u);
+ z48\0\27 = (6.020u,6.401u);
+ z48\0\28c1 = (5.479u,7.040u);
+ z48\0\28c2 = (2.687u,6.734u);
+ z48\0\28 = (1.937u,6.401u);
+ z48\0\29c1 = (1.616u,6.316u);
+ z48\0\29c2 = (1.358u,6.176u);
+ z48\0\29 = (1.120u,5.920u);
+ z48\0\30c1 = (0.445u,5.194u);
+ z48\0\30c2 = (0.430u,4.056u);
+ z48\0\30 = (0.551u,3.132u);
+ z48\0\31c1 = (0.661u,2.288u);
+ z48\0\31c2 = (0.726u,1.704u);
+ fill_or_unfill z48\0\0s
+ ..controls z48\0\0c1 and z48\0\0c2..z48\0\0
+ ..controls z48\0\1c1 and z48\0\1c2..z48\0\1
+ ..controls z48\0\2c1 and z48\0\2c2..z48\0\2
+ ..controls z48\0\3c1 and z48\0\3c2..z48\0\3
+ ..controls z48\0\4c1 and z48\0\4c2..z48\0\4
+ --z48\0\5
+ ..controls z48\0\6c1 and z48\0\6c2..z48\0\6
+ ..controls z48\0\7c1 and z48\0\7c2..z48\0\7
+ --z48\0\8
+ ..controls z48\0\9c1 and z48\0\9c2..z48\0\9
+ ..controls z48\0\10c1 and z48\0\10c2..z48\0\10
+ ..controls z48\0\11c1 and z48\0\11c2..z48\0\11
+ ..controls z48\0\12c1 and z48\0\12c2..z48\0\12
+ ..controls z48\0\13c1 and z48\0\13c2..z48\0\13
+ ..controls z48\0\14c1 and z48\0\14c2..z48\0\14
+ ..controls z48\0\15c1 and z48\0\15c2..z48\0\15
+ ..controls z48\0\16c1 and z48\0\16c2..z48\0\16
+ ..controls z48\0\17c1 and z48\0\17c2..z48\0\17
+ ..controls z48\0\18c1 and z48\0\18c2..z48\0\18
+ --z48\0\19
+ --z48\0\20
+ ..controls z48\0\21c1 and z48\0\21c2..z48\0\21
+ ..controls z48\0\22c1 and z48\0\22c2..z48\0\22
+ ..controls z48\0\23c1 and z48\0\23c2..z48\0\23
+ --z48\0\24
+ ..controls z48\0\25c1 and z48\0\25c2..z48\0\25
+ ..controls z48\0\26c1 and z48\0\26c2..z48\0\26
+ ..controls z48\0\27c1 and z48\0\27c2..z48\0\27
+ ..controls z48\0\28c1 and z48\0\28c2..z48\0\28
+ ..controls z48\0\29c1 and z48\0\29c2..z48\0\29
+ ..controls z48\0\30c1 and z48\0\30c2..z48\0\30
+ ..controls z48\0\31c1 and z48\0\31c2..cycle;
+ proof_labels (
+ 48\0\0,
+ 48\0\1,
+ 48\0\2,
+ 48\0\3,
+ 48\0\4,
+ 48\0\5,
+ 48\0\6,
+ 48\0\7,
+ 48\0\8,
+ 48\0\9,
+ 48\0\10,
+ 48\0\11,
+ 48\0\12,
+ 48\0\13,
+ 48\0\14,
+ 48\0\15,
+ 48\0\16,
+ 48\0\17,
+ 48\0\18,
+ 48\0\19,
+ 48\0\20,
+ 48\0\21,
+ 48\0\22,
+ 48\0\23,
+ 48\0\24,
+ 48\0\25,
+ 48\0\26,
+ 48\0\27,
+ 48\0\28,
+ 48\0\29,
+ 48\0\30,
+ 48\0\31,
+);
+endchar;
+
+beginchar (TIB_LPA, 10.840u#, 6.745u#, 6.504u#);
+ "lpa";
+ z49\0\0s = (0.964u,1.204u);
+ z49\0\0c1 = (1.342u,2.239u);
+ z49\0\0c2 = (0.723u,3.323u);
+ z49\0\0 = (1.410u,4.282u);
+ z49\0\1c1 = (2.314u,5.541u);
+ z49\0\1c2 = (5.004u,5.645u);
+ z49\0\1 = (5.740u,4.073u);
+ z49\0\2c1 = (5.898u,3.624u);
+ z49\0\2c2 = (5.816u,3.122u);
+ z49\0\2 = (5.740u,2.650u);
+ z49\0\3c1 = (4.060u,2.633u);
+ z49\0\3c2 = (3.654u,2.595u);
+ z49\0\3 = (2.891u,0.964u);
+ z49\0\4c1 = (6.270u,1.412u);
+ z49\0\4c2 = (5.895u,1.623u);
+ z49\0\4 = (9.154u,0.241u);
+ z49\0\5c1 = (8.854u,-0.033u);
+ z49\0\5c2 = (8.478u,-0.284u);
+ z49\0\5 = (8.409u,-0.723u);
+ z49\0\6c1 = (8.336u,-1.187u);
+ z49\0\6c2 = (8.739u,-1.582u);
+ z49\0\6 = (8.931u,-1.968u);
+ z49\0\7c1 = (9.081u,-2.269u);
+ z49\0\7c2 = (9.171u,-2.564u);
+ z49\0\7 = (9.242u,-2.892u);
+ z49\0\8c1 = (9.432u,-3.760u);
+ z49\0\8c2 = (9.395u,-4.658u);
+ z49\0\8 = (9.395u,-5.541u);
+ z49\0\9c1 = (7.011u,-4.048u);
+ z49\0\9c2 = (5.881u,-3.854u);
+ z49\0\9 = (3.132u,-3.854u);
+ z49\0\10c1 = (4.159u,-0.636u);
+ z49\0\10c2 = (5.853u,-2.056u);
+ z49\0\10 = (6.745u,-0.669u);
+ z49\0\11c1 = (6.887u,-0.447u);
+ z49\0\11c2 = (6.911u,-0.240u);
+ z49\0\11 = (6.986u,0.000u);
+ z49\0\12c1 = (6.306u,0.000u);
+ z49\0\12c2 = (4.159u,0.080u);
+ z49\0\12 = (3.649u,-0.144u);
+ z49\0\13c1 = (3.348u,-0.276u);
+ z49\0\13c2 = (3.168u,-0.441u);
+ z49\0\13 = (3.055u,-0.758u);
+ z49\0\14c1 = (2.901u,-1.241u);
+ z49\0\14c2 = (3.130u,-1.876u);
+ z49\0\14 = (3.055u,-2.409u);
+ z49\0\15 = (2.598u,-3.854u);
+ z49\0\16c1 = (2.464u,-4.342u);
+ z49\0\16c2 = (2.433u,-4.799u);
+ z49\0\16 = (2.409u,-5.279u);
+ z49\0\17 = (3.613u,-5.279u);
+ z49\0\18 = (5.300u,-5.109u);
+ z49\0\19c1 = (6.056u,-5.148u);
+ z49\0\19c2 = (6.982u,-5.280u);
+ z49\0\19 = (7.709u,-5.489u);
+ z49\0\20 = (9.892u,-6.263u);
+ z49\0\21c1 = (9.877u,-5.009u);
+ z49\0\21c2 = (9.769u,-3.650u);
+ z49\0\21 = (9.892u,-2.409u);
+ z49\0\22 = (10.235u,-0.723u);
+ z49\0\23 = (9.918u,0.723u);
+ z49\0\24c1 = (9.825u,1.423u);
+ z49\0\24c2 = (9.875u,2.181u);
+ z49\0\24 = (9.918u,2.891u);
+ z49\0\25 = (9.918u,4.336u);
+ z49\0\26c1 = (10.061u,5.084u);
+ z49\0\26c2 = (10.754u,6.376u);
+ z49\0\26 = (9.602u,6.665u);
+ z49\0\27c1 = (9.181u,6.771u);
+ z49\0\27c2 = (8.512u,6.673u);
+ z49\0\27 = (8.370u,6.188u);
+ z49\0\28c1 = (8.200u,5.609u);
+ z49\0\28c2 = (9.041u,4.498u);
+ z49\0\28 = (9.221u,3.854u);
+ z49\0\29c1 = (9.514u,2.808u);
+ z49\0\29c2 = (9.395u,1.563u);
+ z49\0\29 = (9.395u,0.482u);
+ z49\0\30c1 = (8.062u,1.749u);
+ z49\0\30c2 = (7.700u,1.967u);
+ z49\0\30 = (6.022u,2.650u);
+ z49\0\31c1 = (6.197u,3.266u);
+ z49\0\31c2 = (6.576u,5.639u);
+ z49\0\31 = (6.249u,6.118u);
+ z49\0\32c1 = (5.570u,7.182u);
+ z49\0\32c2 = (2.574u,6.745u);
+ z49\0\32 = (1.718u,6.118u);
+ z49\0\33c1 = (1.049u,5.587u);
+ z49\0\33c2 = (0.663u,4.677u);
+ z49\0\33 = (0.581u,3.854u);
+ z49\0\34c1 = (0.506u,3.100u);
+ z49\0\34c2 = (0.776u,1.948u);
+ fill_or_unfill z49\0\0s
+ ..controls z49\0\0c1 and z49\0\0c2..z49\0\0
+ ..controls z49\0\1c1 and z49\0\1c2..z49\0\1
+ ..controls z49\0\2c1 and z49\0\2c2..z49\0\2
+ ..controls z49\0\3c1 and z49\0\3c2..z49\0\3
+ ..controls z49\0\4c1 and z49\0\4c2..z49\0\4
+ ..controls z49\0\5c1 and z49\0\5c2..z49\0\5
+ ..controls z49\0\6c1 and z49\0\6c2..z49\0\6
+ ..controls z49\0\7c1 and z49\0\7c2..z49\0\7
+ ..controls z49\0\8c1 and z49\0\8c2..z49\0\8
+ ..controls z49\0\9c1 and z49\0\9c2..z49\0\9
+ ..controls z49\0\10c1 and z49\0\10c2..z49\0\10
+ ..controls z49\0\11c1 and z49\0\11c2..z49\0\11
+ ..controls z49\0\12c1 and z49\0\12c2..z49\0\12
+ ..controls z49\0\13c1 and z49\0\13c2..z49\0\13
+ ..controls z49\0\14c1 and z49\0\14c2..z49\0\14
+ --z49\0\15
+ ..controls z49\0\16c1 and z49\0\16c2..z49\0\16
+ --z49\0\17
+ --z49\0\18
+ ..controls z49\0\19c1 and z49\0\19c2..z49\0\19
+ --z49\0\20
+ ..controls z49\0\21c1 and z49\0\21c2..z49\0\21
+ --z49\0\22
+ --z49\0\23
+ ..controls z49\0\24c1 and z49\0\24c2..z49\0\24
+ --z49\0\25
+ ..controls z49\0\26c1 and z49\0\26c2..z49\0\26
+ ..controls z49\0\27c1 and z49\0\27c2..z49\0\27
+ ..controls z49\0\28c1 and z49\0\28c2..z49\0\28
+ ..controls z49\0\29c1 and z49\0\29c2..z49\0\29
+ ..controls z49\0\30c1 and z49\0\30c2..z49\0\30
+ ..controls z49\0\31c1 and z49\0\31c2..z49\0\31
+ ..controls z49\0\32c1 and z49\0\32c2..z49\0\32
+ ..controls z49\0\33c1 and z49\0\33c2..z49\0\33
+ ..controls z49\0\34c1 and z49\0\34c2..cycle;
+ proof_labels (
+ 49\0\0,
+ 49\0\1,
+ 49\0\2,
+ 49\0\3,
+ 49\0\4,
+ 49\0\5,
+ 49\0\6,
+ 49\0\7,
+ 49\0\8,
+ 49\0\9,
+ 49\0\10,
+ 49\0\11,
+ 49\0\12,
+ 49\0\13,
+ 49\0\14,
+ 49\0\15,
+ 49\0\16,
+ 49\0\17,
+ 49\0\18,
+ 49\0\19,
+ 49\0\20,
+ 49\0\21,
+ 49\0\22,
+ 49\0\23,
+ 49\0\24,
+ 49\0\25,
+ 49\0\26,
+ 49\0\27,
+ 49\0\28,
+ 49\0\29,
+ 49\0\30,
+ 49\0\31,
+ 49\0\32,
+ 49\0\33,
+ 49\0\34,
+);
+endchar;
+
+beginchar (TIB_LBA, 11.081u#, 6.745u#, 6.986u#);
+ "lba";
+ z50\0\0s = (1.686u,1.204u);
+ z50\0\0c1 = (1.478u,1.829u);
+ z50\0\0c2 = (1.013u,2.979u);
+ z50\0\0 = (1.111u,3.610u);
+ z50\0\1c1 = (1.415u,5.562u);
+ z50\0\1c2 = (4.832u,5.884u);
+ z50\0\1 = (5.789u,4.319u);
+ z50\0\2c1 = (5.929u,4.089u);
+ z50\0\2c2 = (6.042u,3.770u);
+ z50\0\2 = (5.984u,3.498u);
+ z50\0\3c1 = (5.762u,2.449u);
+ z50\0\3c2 = (4.018u,2.925u);
+ z50\0\3 = (3.414u,2.064u);
+ z50\0\4c1 = (3.226u,1.797u);
+ z50\0\4c2 = (3.201u,1.509u);
+ z50\0\4 = (3.132u,1.204u);
+ z50\0\5 = (5.300u,1.403u);
+ z50\0\6c1 = (6.746u,1.400u);
+ z50\0\6c2 = (8.093u,0.793u);
+ z50\0\6 = (9.395u,0.241u);
+ z50\0\7c1 = (8.804u,0.073u);
+ z50\0\7c2 = (8.324u,0.010u);
+ z50\0\7 = (7.709u,0.001u);
+ z50\0\8c1 = (6.866u,-0.011u);
+ z50\0\8c2 = (3.855u,0.229u);
+ z50\0\8 = (3.379u,-0.385u);
+ z50\0\9c1 = (3.096u,-0.750u);
+ z50\0\9c2 = (3.198u,-1.262u);
+ z50\0\9 = (3.190u,-1.686u);
+ z50\0\10c1 = (3.172u,-2.645u);
+ z50\0\10c2 = (2.902u,-2.997u);
+ z50\0\10 = (2.601u,-3.854u);
+ z50\0\11 = (2.168u,-5.541u);
+ z50\0\12c1 = (4.318u,-5.521u);
+ z50\0\12c2 = (6.360u,-4.893u);
+ z50\0\12 = (8.431u,-5.886u);
+ z50\0\13 = (9.913u,-6.745u);
+ z50\0\14c1 = (9.877u,-5.648u);
+ z50\0\14c2 = (9.783u,-4.456u);
+ z50\0\14 = (9.913u,-3.372u);
+ z50\0\15 = (10.545u,-1.445u);
+ z50\0\16c1 = (10.598u,-0.964u);
+ z50\0\16c2 = (10.594u,-0.489u);
+ z50\0\16 = (10.545u,0.000u);
+ z50\0\17 = (9.928u,0.000u);
+ z50\0\18c1 = (9.877u,0.966u);
+ z50\0\18c2 = (9.841u,1.933u);
+ z50\0\18 = (9.928u,2.891u);
+ z50\0\19 = (10.575u,5.541u);
+ z50\0\20 = (10.575u,6.745u);
+ z50\0\21c1 = (9.669u,6.736u);
+ z50\0\21c2 = (7.921u,6.772u);
+ z50\0\21 = (8.438u,5.296u);
+ z50\0\22 = (9.258u,3.613u);
+ z50\0\23c1 = (9.499u,2.753u);
+ z50\0\23c2 = (9.395u,1.620u);
+ z50\0\23 = (9.395u,0.723u);
+ z50\0\24c1 = (8.433u,1.513u);
+ z50\0\24c2 = (7.453u,2.256u);
+ z50\0\24 = (6.263u,2.650u);
+ z50\0\25c1 = (6.409u,3.462u);
+ z50\0\25c2 = (6.830u,5.936u);
+ z50\0\25 = (6.119u,6.499u);
+ z50\0\26c1 = (5.797u,6.754u);
+ z50\0\26c2 = (5.210u,6.737u);
+ z50\0\26 = (4.818u,6.744u);
+ z50\0\27c1 = (3.965u,6.760u);
+ z50\0\27c2 = (2.725u,6.835u);
+ z50\0\27 = (1.978u,6.395u);
+ z50\0\28c1 = (0.275u,5.392u);
+ z50\0\28c2 = (0.033u,2.318u);
+ z50\1\0s = (9.636u,-5.782u);
+ z50\1\0 = (7.709u,-4.843u);
+ z50\1\1c1 = (5.954u,-4.102u);
+ z50\1\1c2 = (4.980u,-4.095u);
+ z50\1\1 = (3.132u,-4.095u);
+ z50\1\2c1 = (3.333u,-3.250u);
+ z50\1\2c2 = (3.651u,-2.433u);
+ z50\1\2 = (4.386u,-1.901u);
+ z50\1\3c1 = (5.208u,-1.306u);
+ z50\1\3c2 = (8.484u,-1.120u);
+ z50\1\3 = (9.112u,-2.031u);
+ z50\1\4c1 = (9.482u,-2.566u);
+ z50\1\4c2 = (9.629u,-5.050u);
+ fill_or_unfill z50\0\0s
+ ..controls z50\0\0c1 and z50\0\0c2..z50\0\0
+ ..controls z50\0\1c1 and z50\0\1c2..z50\0\1
+ ..controls z50\0\2c1 and z50\0\2c2..z50\0\2
+ ..controls z50\0\3c1 and z50\0\3c2..z50\0\3
+ ..controls z50\0\4c1 and z50\0\4c2..z50\0\4
+ --z50\0\5
+ ..controls z50\0\6c1 and z50\0\6c2..z50\0\6
+ ..controls z50\0\7c1 and z50\0\7c2..z50\0\7
+ ..controls z50\0\8c1 and z50\0\8c2..z50\0\8
+ ..controls z50\0\9c1 and z50\0\9c2..z50\0\9
+ ..controls z50\0\10c1 and z50\0\10c2..z50\0\10
+ --z50\0\11
+ ..controls z50\0\12c1 and z50\0\12c2..z50\0\12
+ --z50\0\13
+ ..controls z50\0\14c1 and z50\0\14c2..z50\0\14
+ --z50\0\15
+ ..controls z50\0\16c1 and z50\0\16c2..z50\0\16
+ --z50\0\17
+ ..controls z50\0\18c1 and z50\0\18c2..z50\0\18
+ --z50\0\19
+ --z50\0\20
+ ..controls z50\0\21c1 and z50\0\21c2..z50\0\21
+ --z50\0\22
+ ..controls z50\0\23c1 and z50\0\23c2..z50\0\23
+ ..controls z50\0\24c1 and z50\0\24c2..z50\0\24
+ ..controls z50\0\25c1 and z50\0\25c2..z50\0\25
+ ..controls z50\0\26c1 and z50\0\26c2..z50\0\26
+ ..controls z50\0\27c1 and z50\0\27c2..z50\0\27
+ ..controls z50\0\28c1 and z50\0\28c2..cycle;
+ fill_or_unfill z50\1\0s
+ --z50\1\0
+ ..controls z50\1\1c1 and z50\1\1c2..z50\1\1
+ ..controls z50\1\2c1 and z50\1\2c2..z50\1\2
+ ..controls z50\1\3c1 and z50\1\3c2..z50\1\3
+ ..controls z50\1\4c1 and z50\1\4c2..cycle;
+ proof_labels (
+ 50\0\0,
+ 50\0\1,
+ 50\0\2,
+ 50\0\3,
+ 50\0\4,
+ 50\0\5,
+ 50\0\6,
+ 50\0\7,
+ 50\0\8,
+ 50\0\9,
+ 50\0\10,
+ 50\0\11,
+ 50\0\12,
+ 50\0\13,
+ 50\0\14,
+ 50\0\15,
+ 50\0\16,
+ 50\0\17,
+ 50\0\18,
+ 50\0\19,
+ 50\0\20,
+ 50\0\21,
+ 50\0\22,
+ 50\0\23,
+ 50\0\24,
+ 50\0\25,
+ 50\0\26,
+ 50\0\27,
+ 50\0\28,
+ 50\1\0,
+ 50\1\1,
+ 50\1\2,
+ 50\1\3,
+ 50\1\4,
+);
+endchar;
+
+beginchar (TIB_LHA, 10.359u#, 6.745u#, 8.431u#);
+ "lha";
+ z51\0\0s = (1.445u,2.168u);
+ z51\0\0c1 = (1.343u,2.645u);
+ z51\0\0c2 = (1.110u,3.372u);
+ z51\0\0 = (1.219u,3.844u);
+ z51\0\1c1 = (1.611u,5.535u);
+ z51\0\1c2 = (5.011u,5.650u);
+ z51\0\1 = (5.739u,4.270u);
+ z51\0\2c1 = (5.877u,3.908u);
+ z51\0\2c2 = (5.806u,3.515u);
+ z51\0\2 = (5.739u,3.132u);
+ z51\0\3c1 = (4.850u,3.337u);
+ z51\0\3c2 = (3.513u,3.405u);
+ z51\0\3 = (3.033u,2.356u);
+ z51\0\4c1 = (2.930u,2.132u);
+ z51\0\4c2 = (2.931u,1.919u);
+ z51\0\4 = (2.891u,1.686u);
+ z51\0\5 = (5.059u,2.069u);
+ z51\0\6c1 = (6.896u,2.231u);
+ z51\0\6c2 = (8.255u,0.972u);
+ z51\0\6 = (9.641u,0.000u);
+ z51\0\7 = (9.641u,3.854u);
+ z51\0\8c1 = (9.671u,4.440u);
+ z51\0\8c2 = (9.917u,5.475u);
+ z51\0\8 = (9.792u,5.992u);
+ z51\0\9c1 = (9.538u,7.027u);
+ z51\0\9c2 = (8.058u,6.787u);
+ z51\0\9 = (7.928u,5.992u);
+ z51\0\10c1 = (7.835u,5.436u);
+ z51\0\10c2 = (8.636u,4.701u);
+ z51\0\10 = (8.810u,4.086u);
+ z51\0\11 = (8.953u,2.891u);
+ z51\0\12 = (9.154u,1.204u);
+ z51\0\13c1 = (8.127u,2.138u);
+ z51\0\13c2 = (7.371u,2.738u);
+ z51\0\13 = (6.074u,3.132u);
+ z51\0\14c1 = (6.188u,3.811u);
+ z51\0\14c2 = (6.442u,5.278u);
+ z51\0\14 = (6.074u,5.920u);
+ z51\0\15c1 = (5.556u,7.071u);
+ z51\0\15c2 = (0.926u,7.371u);
+ z51\0\15 = (0.536u,4.336u);
+ z51\0\16c1 = (0.415u,3.392u);
+ z51\0\16c2 = (0.655u,2.683u);
+ z51\1\0s = (1.686u,-4.095u);
+ z51\1\0c1 = (3.004u,-4.053u);
+ z51\1\0c2 = (3.467u,-3.978u);
+ z51\1\0 = (4.555u,-4.860u);
+ z51\1\1c1 = (4.984u,-5.208u);
+ z51\1\1c2 = (5.296u,-5.511u);
+ z51\1\1 = (5.782u,-5.782u);
+ z51\1\2c1 = (5.677u,-4.487u);
+ z51\1\2c2 = (5.444u,-4.315u);
+ z51\1\2 = (4.577u,-3.372u);
+ z51\1\3c1 = (4.969u,-3.229u);
+ z51\1\3c2 = (5.360u,-3.057u);
+ z51\1\3 = (5.782u,-3.026u);
+ z51\1\4c1 = (6.339u,-2.984u);
+ z51\1\4c2 = (6.956u,-3.179u);
+ z51\1\4 = (7.385u,-3.541u);
+ z51\1\5c1 = (8.640u,-4.599u);
+ z51\1\5c2 = (7.687u,-6.271u);
+ z51\1\5 = (6.720u,-7.148u);
+ z51\1\6c1 = (6.358u,-7.476u);
+ z51\1\6c2 = (5.959u,-7.705u);
+ z51\1\6 = (5.541u,-7.950u);
+ z51\1\7c1 = (7.057u,-8.524u);
+ z51\1\7c2 = (8.294u,-7.142u);
+ z51\1\7 = (8.720u,-5.782u);
+ z51\1\8c1 = (8.868u,-5.310u);
+ z51\1\8c2 = (8.898u,-4.826u);
+ z51\1\8 = (8.910u,-4.336u);
+ z51\1\9c1 = (8.928u,-3.581u);
+ z51\1\9c2 = (8.993u,-2.608u);
+ z51\1\9 = (8.356u,-2.071u);
+ z51\1\10c1 = (7.878u,-1.669u);
+ z51\1\10c2 = (7.098u,-1.664u);
+ z51\1\10 = (6.504u,-1.697u);
+ z51\1\11c1 = (5.281u,-1.764u);
+ z51\1\11c2 = (4.923u,-2.103u);
+ z51\1\11 = (4.336u,-3.132u);
+ z51\1\12 = (2.409u,-2.409u);
+ z51\1\13c1 = (4.076u,0.617u);
+ z51\1\13c2 = (6.160u,-1.567u);
+ z51\1\13 = (7.574u,-0.338u);
+ z51\1\14c1 = (7.912u,-0.043u);
+ z51\1\14c2 = (8.029u,0.326u);
+ z51\1\14 = (8.190u,0.685u);
+ z51\1\15c1 = (7.375u,0.723u);
+ z51\1\15c2 = (3.404u,0.788u);
+ z51\1\15 = (2.926u,0.685u);
+ z51\1\16c1 = (2.711u,0.583u);
+ z51\1\16c2 = (2.558u,0.520u);
+ z51\1\16 = (2.415u,0.338u);
+ z51\1\17c1 = (2.101u,-0.062u);
+ z51\1\17c2 = (2.239u,-0.813u);
+ z51\1\17 = (2.138u,-1.307u);
+ z51\1\18 = (1.813u,-2.412u);
+ z51\1\19c1 = (1.688u,-2.971u);
+ z51\1\19c2 = (1.691u,-3.527u);
+ fill_or_unfill z51\0\0s
+ ..controls z51\0\0c1 and z51\0\0c2..z51\0\0
+ ..controls z51\0\1c1 and z51\0\1c2..z51\0\1
+ ..controls z51\0\2c1 and z51\0\2c2..z51\0\2
+ ..controls z51\0\3c1 and z51\0\3c2..z51\0\3
+ ..controls z51\0\4c1 and z51\0\4c2..z51\0\4
+ --z51\0\5
+ ..controls z51\0\6c1 and z51\0\6c2..z51\0\6
+ --z51\0\7
+ ..controls z51\0\8c1 and z51\0\8c2..z51\0\8
+ ..controls z51\0\9c1 and z51\0\9c2..z51\0\9
+ ..controls z51\0\10c1 and z51\0\10c2..z51\0\10
+ --z51\0\11
+ --z51\0\12
+ ..controls z51\0\13c1 and z51\0\13c2..z51\0\13
+ ..controls z51\0\14c1 and z51\0\14c2..z51\0\14
+ ..controls z51\0\15c1 and z51\0\15c2..z51\0\15
+ ..controls z51\0\16c1 and z51\0\16c2..cycle;
+ fill_or_unfill z51\1\0s
+ ..controls z51\1\0c1 and z51\1\0c2..z51\1\0
+ ..controls z51\1\1c1 and z51\1\1c2..z51\1\1
+ ..controls z51\1\2c1 and z51\1\2c2..z51\1\2
+ ..controls z51\1\3c1 and z51\1\3c2..z51\1\3
+ ..controls z51\1\4c1 and z51\1\4c2..z51\1\4
+ ..controls z51\1\5c1 and z51\1\5c2..z51\1\5
+ ..controls z51\1\6c1 and z51\1\6c2..z51\1\6
+ ..controls z51\1\7c1 and z51\1\7c2..z51\1\7
+ ..controls z51\1\8c1 and z51\1\8c2..z51\1\8
+ ..controls z51\1\9c1 and z51\1\9c2..z51\1\9
+ ..controls z51\1\10c1 and z51\1\10c2..z51\1\10
+ ..controls z51\1\11c1 and z51\1\11c2..z51\1\11
+ --z51\1\12
+ ..controls z51\1\13c1 and z51\1\13c2..z51\1\13
+ ..controls z51\1\14c1 and z51\1\14c2..z51\1\14
+ ..controls z51\1\15c1 and z51\1\15c2..z51\1\15
+ ..controls z51\1\16c1 and z51\1\16c2..z51\1\16
+ ..controls z51\1\17c1 and z51\1\17c2..z51\1\17
+ --z51\1\18
+ ..controls z51\1\19c1 and z51\1\19c2..cycle;
+ proof_labels (
+ 51\0\0,
+ 51\0\1,
+ 51\0\2,
+ 51\0\3,
+ 51\0\4,
+ 51\0\5,
+ 51\0\6,
+ 51\0\7,
+ 51\0\8,
+ 51\0\9,
+ 51\0\10,
+ 51\0\11,
+ 51\0\12,
+ 51\0\13,
+ 51\0\14,
+ 51\0\15,
+ 51\0\16,
+ 51\1\0,
+ 51\1\1,
+ 51\1\2,
+ 51\1\3,
+ 51\1\4,
+ 51\1\5,
+ 51\1\6,
+ 51\1\7,
+ 51\1\8,
+ 51\1\9,
+ 51\1\10,
+ 51\1\11,
+ 51\1\12,
+ 51\1\13,
+ 51\1\14,
+ 51\1\15,
+ 51\1\16,
+ 51\1\17,
+ 51\1\18,
+ 51\1\19,
+);
+endchar;
+
+beginchar (TIB_SKA, 9.877u#, 6.745u#, 6.263u#);
+ "ska";
+ z52\0\0s = (0.723u,5.300u);
+ z52\0\0 = (1.927u,5.300u);
+ z52\0\1c1 = (1.157u,4.117u);
+ z52\0\1c2 = (0.634u,3.364u);
+ z52\0\1 = (0.482u,1.880u);
+ z52\0\2 = (1.686u,1.880u);
+ z52\0\3 = (4.095u,0.964u);
+ z52\0\4c1 = (3.764u,2.508u);
+ z52\0\4c2 = (2.925u,3.019u);
+ z52\0\4 = (1.445u,3.372u);
+ z52\0\5c1 = (1.763u,3.665u);
+ z52\0\5c2 = (1.973u,3.886u);
+ z52\0\5 = (2.420u,3.984u);
+ z52\0\6c1 = (3.399u,4.197u);
+ z52\0\6c2 = (5.941u,2.873u);
+ z52\0\6 = (6.745u,2.275u);
+ z52\0\7c1 = (7.446u,1.755u);
+ z52\0\7c2 = (8.055u,1.097u);
+ z52\0\7 = (8.672u,0.430u);
+ z52\0\8c1 = (7.650u,0.482u);
+ z52\0\8c2 = (3.062u,0.570u);
+ z52\0\8 = (2.423u,0.430u);
+ z52\0\9c1 = (2.139u,0.293u);
+ z52\0\9c2 = (1.870u,0.171u);
+ z52\0\9 = (1.732u,-0.103u);
+ z52\0\10c1 = (1.488u,-0.536u);
+ z52\0\10c2 = (1.763u,-1.201u);
+ z52\0\10 = (1.732u,-1.686u);
+ z52\0\11 = (1.445u,-3.372u);
+ z52\0\12c1 = (1.662u,-3.247u);
+ z52\0\12c2 = (1.829u,-3.183u);
+ z52\0\12 = (2.019u,-3.001u);
+ z52\0\13c1 = (2.529u,-2.514u);
+ z52\0\13c2 = (3.006u,-1.252u);
+ z52\0\13 = (3.826u,-1.252u);
+ z52\0\14c1 = (4.841u,-1.252u);
+ z52\0\14c2 = (4.880u,-3.347u);
+ z52\0\14 = (5.327u,-3.972u);
+ z52\0\15c1 = (5.472u,-4.174u);
+ z52\0\15c2 = (5.595u,-4.207u);
+ z52\0\15 = (5.782u,-4.336u);
+ z52\0\16c1 = (5.782u,-3.291u);
+ z52\0\16c2 = (5.481u,-1.402u);
+ z52\0\16 = (6.771u,-1.001u);
+ z52\0\17c1 = (7.162u,-0.929u);
+ z52\0\17c2 = (7.998u,-0.964u);
+ z52\0\17 = (8.431u,-1.001u);
+ z52\0\18 = (8.913u,-6.022u);
+ z52\0\19 = (9.395u,-6.022u);
+ z52\0\20 = (9.395u,-0.964u);
+ z52\0\21 = (9.200u,1.204u);
+ z52\0\22 = (9.200u,3.132u);
+ z52\0\23c1 = (9.164u,3.861u);
+ z52\0\23c2 = (9.511u,5.639u);
+ z52\0\23 = (9.200u,6.188u);
+ z52\0\24c1 = (8.876u,6.974u);
+ z52\0\24c2 = (7.557u,6.824u);
+ z52\0\24 = (7.537u,5.777u);
+ z52\0\25c1 = (7.525u,5.142u);
+ z52\0\25c2 = (8.009u,4.641u);
+ z52\0\25 = (8.222u,4.074u);
+ z52\0\26c1 = (8.496u,3.347u);
+ z52\0\26c2 = (8.570u,2.456u);
+ z52\0\26 = (8.672u,1.686u);
+ z52\0\27 = (6.745u,3.326u);
+ z52\0\28 = (4.336u,5.300u);
+ z52\0\29c1 = (5.278u,5.462u);
+ z52\0\29c2 = (5.329u,5.585u);
+ z52\0\29 = (5.541u,6.504u);
+ z52\0\30c1 = (4.636u,6.724u);
+ z52\0\30c2 = (1.791u,7.041u);
+ z52\0\30 = (1.107u,6.360u);
+ z52\0\31c1 = (0.802u,6.056u);
+ z52\0\31c2 = (0.789u,5.694u);
+ fill_or_unfill z52\0\0s
+ --z52\0\0
+ ..controls z52\0\1c1 and z52\0\1c2..z52\0\1
+ --z52\0\2
+ --z52\0\3
+ ..controls z52\0\4c1 and z52\0\4c2..z52\0\4
+ ..controls z52\0\5c1 and z52\0\5c2..z52\0\5
+ ..controls z52\0\6c1 and z52\0\6c2..z52\0\6
+ ..controls z52\0\7c1 and z52\0\7c2..z52\0\7
+ ..controls z52\0\8c1 and z52\0\8c2..z52\0\8
+ ..controls z52\0\9c1 and z52\0\9c2..z52\0\9
+ ..controls z52\0\10c1 and z52\0\10c2..z52\0\10
+ --z52\0\11
+ ..controls z52\0\12c1 and z52\0\12c2..z52\0\12
+ ..controls z52\0\13c1 and z52\0\13c2..z52\0\13
+ ..controls z52\0\14c1 and z52\0\14c2..z52\0\14
+ ..controls z52\0\15c1 and z52\0\15c2..z52\0\15
+ ..controls z52\0\16c1 and z52\0\16c2..z52\0\16
+ ..controls z52\0\17c1 and z52\0\17c2..z52\0\17
+ --z52\0\18
+ --z52\0\19
+ --z52\0\20
+ --z52\0\21
+ --z52\0\22
+ ..controls z52\0\23c1 and z52\0\23c2..z52\0\23
+ ..controls z52\0\24c1 and z52\0\24c2..z52\0\24
+ ..controls z52\0\25c1 and z52\0\25c2..z52\0\25
+ ..controls z52\0\26c1 and z52\0\26c2..z52\0\26
+ --z52\0\27
+ --z52\0\28
+ ..controls z52\0\29c1 and z52\0\29c2..z52\0\29
+ ..controls z52\0\30c1 and z52\0\30c2..z52\0\30
+ ..controls z52\0\31c1 and z52\0\31c2..cycle;
+ proof_labels (
+ 52\0\0,
+ 52\0\1,
+ 52\0\2,
+ 52\0\3,
+ 52\0\4,
+ 52\0\5,
+ 52\0\6,
+ 52\0\7,
+ 52\0\8,
+ 52\0\9,
+ 52\0\10,
+ 52\0\11,
+ 52\0\12,
+ 52\0\13,
+ 52\0\14,
+ 52\0\15,
+ 52\0\16,
+ 52\0\17,
+ 52\0\18,
+ 52\0\19,
+ 52\0\20,
+ 52\0\21,
+ 52\0\22,
+ 52\0\23,
+ 52\0\24,
+ 52\0\25,
+ 52\0\26,
+ 52\0\27,
+ 52\0\28,
+ 52\0\29,
+ 52\0\30,
+ 52\0\31,
+);
+endchar;
+
+beginchar (TIB_SGA, 10.359u#, 6.745u#, 6.263u#);
+ "sga";
+ z53\0\0s = (0.482u,1.706u);
+ z53\0\0 = (2.168u,1.706u);
+ z53\0\1 = (4.336u,1.204u);
+ z53\0\2 = (3.965u,1.897u);
+ z53\0\3c1 = (3.409u,2.614u);
+ z53\0\3c2 = (2.232u,3.146u);
+ z53\0\3 = (1.445u,3.613u);
+ z53\0\4c1 = (2.016u,3.752u);
+ z53\0\4c2 = (2.539u,3.861u);
+ z53\0\4 = (3.132u,3.829u);
+ z53\0\5c1 = (4.430u,3.758u);
+ z53\0\5c2 = (7.607u,2.714u);
+ z53\0\5 = (8.458u,1.738u);
+ z53\0\6c1 = (8.740u,1.415u);
+ z53\0\6c2 = (8.805u,1.120u);
+ z53\0\6 = (8.913u,0.723u);
+ z53\0\7c1 = (7.736u,0.723u);
+ z53\0\7c2 = (2.954u,0.919u);
+ z53\0\7 = (2.203u,0.476u);
+ z53\0\8c1 = (1.701u,0.180u);
+ z53\0\8c2 = (1.602u,-0.208u);
+ z53\0\8 = (1.445u,-0.723u);
+ z53\0\9 = (2.409u,-0.964u);
+ z53\0\10c1 = (2.019u,-2.133u);
+ z53\0\10c2 = (1.714u,-3.091u);
+ z53\0\10 = (1.686u,-4.350u);
+ z53\0\11c1 = (2.761u,-4.144u);
+ z53\0\11c2 = (3.767u,-3.923u);
+ z53\0\11 = (4.818u,-4.350u);
+ z53\0\12 = (6.263u,-5.059u);
+ z53\0\13c1 = (6.263u,-4.135u);
+ z53\0\13c2 = (6.137u,-2.250u);
+ z53\0\13 = (6.580u,-1.480u);
+ z53\0\14c1 = (7.089u,-0.596u);
+ z53\0\14c2 = (8.273u,-0.511u);
+ z53\0\14 = (8.739u,-1.480u);
+ z53\0\15c1 = (9.231u,-2.506u);
+ z53\0\15c2 = (9.154u,-4.851u);
+ z53\0\15 = (9.154u,-6.022u);
+ z53\0\16 = (9.868u,-6.022u);
+ z53\0\17 = (9.868u,-2.168u);
+ z53\0\18 = (9.868u,-0.021u);
+ z53\0\19 = (9.468u,1.245u);
+ z53\0\20c1 = (9.413u,1.632u);
+ z53\0\20c2 = (9.399u,2.013u);
+ z53\0\20 = (9.468u,2.409u);
+ z53\0\21 = (9.468u,3.854u);
+ z53\0\22c1 = (9.584u,4.389u);
+ z53\0\22c2 = (9.883u,5.505u);
+ z53\0\22 = (9.780u,5.987u);
+ z53\0\23c1 = (9.581u,6.924u);
+ z53\0\23c2 = (8.201u,6.911u);
+ z53\0\23 = (8.056u,5.987u);
+ z53\0\24c1 = (7.972u,5.453u);
+ z53\0\24c2 = (8.395u,4.627u);
+ z53\0\24 = (8.549u,4.095u);
+ z53\0\25 = (8.913u,2.409u);
+ z53\0\26 = (4.336u,5.059u);
+ z53\0\27c1 = (4.805u,5.236u);
+ z53\0\27c2 = (5.833u,5.484u);
+ z53\0\27 = (5.602u,6.201u);
+ z53\0\28c1 = (5.538u,6.400u);
+ z53\0\28c2 = (5.404u,6.512u);
+ z53\0\28 = (5.223u,6.601u);
+ z53\0\29c1 = (4.614u,6.902u);
+ z53\0\29c2 = (2.526u,6.814u);
+ z53\0\29 = (2.007u,6.360u);
+ z53\0\30c1 = (1.351u,5.787u);
+ z53\0\30c2 = (1.767u,5.197u);
+ z53\0\30 = (1.555u,4.509u);
+ z53\0\31 = (0.850u,3.131u);
+ z53\0\32c1 = (0.608u,2.616u);
+ z53\0\32c2 = (0.544u,2.242u);
+ z53\1\0s = (5.782u,-3.854u);
+ z53\1\0 = (2.409u,-2.650u);
+ z53\1\1c1 = (2.730u,-1.976u);
+ z53\1\1c2 = (3.118u,-1.328u);
+ z53\1\1 = (3.854u,-1.031u);
+ z53\1\2c1 = (5.388u,-0.412u);
+ z53\1\2c2 = (5.586u,-2.884u);
+ fill_or_unfill z53\0\0s
+ --z53\0\0
+ --z53\0\1
+ --z53\0\2
+ ..controls z53\0\3c1 and z53\0\3c2..z53\0\3
+ ..controls z53\0\4c1 and z53\0\4c2..z53\0\4
+ ..controls z53\0\5c1 and z53\0\5c2..z53\0\5
+ ..controls z53\0\6c1 and z53\0\6c2..z53\0\6
+ ..controls z53\0\7c1 and z53\0\7c2..z53\0\7
+ ..controls z53\0\8c1 and z53\0\8c2..z53\0\8
+ --z53\0\9
+ ..controls z53\0\10c1 and z53\0\10c2..z53\0\10
+ ..controls z53\0\11c1 and z53\0\11c2..z53\0\11
+ --z53\0\12
+ ..controls z53\0\13c1 and z53\0\13c2..z53\0\13
+ ..controls z53\0\14c1 and z53\0\14c2..z53\0\14
+ ..controls z53\0\15c1 and z53\0\15c2..z53\0\15
+ --z53\0\16
+ --z53\0\17
+ --z53\0\18
+ --z53\0\19
+ ..controls z53\0\20c1 and z53\0\20c2..z53\0\20
+ --z53\0\21
+ ..controls z53\0\22c1 and z53\0\22c2..z53\0\22
+ ..controls z53\0\23c1 and z53\0\23c2..z53\0\23
+ ..controls z53\0\24c1 and z53\0\24c2..z53\0\24
+ --z53\0\25
+ --z53\0\26
+ ..controls z53\0\27c1 and z53\0\27c2..z53\0\27
+ ..controls z53\0\28c1 and z53\0\28c2..z53\0\28
+ ..controls z53\0\29c1 and z53\0\29c2..z53\0\29
+ ..controls z53\0\30c1 and z53\0\30c2..z53\0\30
+ --z53\0\31
+ ..controls z53\0\32c1 and z53\0\32c2..cycle;
+ fill_or_unfill z53\1\0s
+ --z53\1\0
+ ..controls z53\1\1c1 and z53\1\1c2..z53\1\1
+ ..controls z53\1\2c1 and z53\1\2c2..cycle;
+ proof_labels (
+ 53\0\0,
+ 53\0\1,
+ 53\0\2,
+ 53\0\3,
+ 53\0\4,
+ 53\0\5,
+ 53\0\6,
+ 53\0\7,
+ 53\0\8,
+ 53\0\9,
+ 53\0\10,
+ 53\0\11,
+ 53\0\12,
+ 53\0\13,
+ 53\0\14,
+ 53\0\15,
+ 53\0\16,
+ 53\0\17,
+ 53\0\18,
+ 53\0\19,
+ 53\0\20,
+ 53\0\21,
+ 53\0\22,
+ 53\0\23,
+ 53\0\24,
+ 53\0\25,
+ 53\0\26,
+ 53\0\27,
+ 53\0\28,
+ 53\0\29,
+ 53\0\30,
+ 53\0\31,
+ 53\0\32,
+ 53\1\0,
+ 53\1\1,
+ 53\1\2,
+);
+endchar;
+
+beginchar (TIB_SNGA, 10.359u#, 6.745u#, 6.745u#);
+ "snga";
+ z54\0\0s = (0.964u,5.300u);
+ z54\0\0 = (2.409u,5.300u);
+ z54\0\1c1 = (1.462u,4.143u);
+ z54\0\1c2 = (0.679u,2.951u);
+ z54\0\1 = (0.482u,1.445u);
+ z54\0\2c1 = (1.471u,1.436u);
+ z54\0\2c2 = (2.416u,1.358u);
+ z54\0\2 = (3.372u,1.081u);
+ z54\0\3 = (5.059u,0.482u);
+ z54\0\4c1 = (4.218u,2.254u);
+ z54\0\4c2 = (3.174u,2.554u);
+ z54\0\4 = (1.445u,3.132u);
+ z54\0\5 = (1.927u,4.095u);
+ z54\0\6 = (5.059u,2.917u);
+ z54\0\7c1 = (6.262u,2.346u);
+ z54\0\7c2 = (8.057u,1.012u);
+ z54\0\7 = (8.913u,0.000u);
+ z54\0\8c1 = (7.939u,0.000u);
+ z54\0\8c2 = (3.332u,0.179u);
+ z54\0\8 = (2.794u,-0.246u);
+ z54\0\9c1 = (2.612u,-0.390u);
+ z54\0\9c2 = (2.548u,-0.542u);
+ z54\0\9 = (2.447u,-0.758u);
+ z54\0\10c1 = (2.345u,-1.230u);
+ z54\0\10c2 = (2.409u,-5.651u);
+ z54\0\10 = (2.447u,-6.504u);
+ z54\0\11 = (6.022u,-6.045u);
+ z54\0\12c1 = (7.257u,-5.973u);
+ z54\0\12c2 = (8.414u,-6.402u);
+ z54\0\12 = (9.636u,-6.504u);
+ z54\0\13c1 = (7.757u,-4.504u);
+ z54\0\13c2 = (5.376u,-4.818u);
+ z54\0\13 = (2.891u,-4.818u);
+ z54\0\14c1 = (2.891u,-4.145u);
+ z54\0\14c2 = (2.786u,-2.529u);
+ z54\0\14 = (3.137u,-2.003u);
+ z54\0\15c1 = (4.018u,-0.681u);
+ z54\0\15c2 = (8.230u,-2.211u);
+ z54\0\15 = (9.112u,-0.888u);
+ z54\0\16c1 = (9.399u,-0.457u);
+ z54\0\16c2 = (9.387u,0.222u);
+ z54\0\16 = (9.417u,0.723u);
+ z54\0\17 = (9.417u,3.372u);
+ z54\0\18 = (9.838u,5.059u);
+ z54\0\19 = (9.838u,6.745u);
+ z54\0\20c1 = (7.098u,6.648u);
+ z54\0\20c2 = (8.357u,5.481u);
+ z54\0\20 = (8.780u,3.854u);
+ z54\0\21c1 = (9.010u,2.969u);
+ z54\0\21c2 = (9.080u,1.879u);
+ z54\0\21 = (9.154u,0.964u);
+ z54\0\22c1 = (8.257u,1.606u);
+ z54\0\22c2 = (7.537u,2.359u);
+ z54\0\22 = (6.746u,3.122u);
+ z54\0\23c1 = (5.999u,3.844u);
+ z54\0\23c2 = (5.225u,4.484u);
+ z54\0\23 = (4.577u,5.300u);
+ z54\0\24c1 = (5.041u,5.338u);
+ z54\0\24c2 = (6.472u,5.529u);
+ z54\0\24 = (5.982u,6.365u);
+ z54\0\25c1 = (5.632u,6.962u);
+ z54\0\25c2 = (2.291u,6.835u);
+ z54\0\25 = (1.721u,6.499u);
+ z54\0\26c1 = (1.219u,6.203u);
+ z54\0\26c2 = (1.120u,5.814u);
+ fill_or_unfill z54\0\0s
+ --z54\0\0
+ ..controls z54\0\1c1 and z54\0\1c2..z54\0\1
+ ..controls z54\0\2c1 and z54\0\2c2..z54\0\2
+ --z54\0\3
+ ..controls z54\0\4c1 and z54\0\4c2..z54\0\4
+ --z54\0\5
+ --z54\0\6
+ ..controls z54\0\7c1 and z54\0\7c2..z54\0\7
+ ..controls z54\0\8c1 and z54\0\8c2..z54\0\8
+ ..controls z54\0\9c1 and z54\0\9c2..z54\0\9
+ ..controls z54\0\10c1 and z54\0\10c2..z54\0\10
+ --z54\0\11
+ ..controls z54\0\12c1 and z54\0\12c2..z54\0\12
+ ..controls z54\0\13c1 and z54\0\13c2..z54\0\13
+ ..controls z54\0\14c1 and z54\0\14c2..z54\0\14
+ ..controls z54\0\15c1 and z54\0\15c2..z54\0\15
+ ..controls z54\0\16c1 and z54\0\16c2..z54\0\16
+ --z54\0\17
+ --z54\0\18
+ --z54\0\19
+ ..controls z54\0\20c1 and z54\0\20c2..z54\0\20
+ ..controls z54\0\21c1 and z54\0\21c2..z54\0\21
+ ..controls z54\0\22c1 and z54\0\22c2..z54\0\22
+ ..controls z54\0\23c1 and z54\0\23c2..z54\0\23
+ ..controls z54\0\24c1 and z54\0\24c2..z54\0\24
+ ..controls z54\0\25c1 and z54\0\25c2..z54\0\25
+ ..controls z54\0\26c1 and z54\0\26c2..cycle;
+ proof_labels (
+ 54\0\0,
+ 54\0\1,
+ 54\0\2,
+ 54\0\3,
+ 54\0\4,
+ 54\0\5,
+ 54\0\6,
+ 54\0\7,
+ 54\0\8,
+ 54\0\9,
+ 54\0\10,
+ 54\0\11,
+ 54\0\12,
+ 54\0\13,
+ 54\0\14,
+ 54\0\15,
+ 54\0\16,
+ 54\0\17,
+ 54\0\18,
+ 54\0\19,
+ 54\0\20,
+ 54\0\21,
+ 54\0\22,
+ 54\0\23,
+ 54\0\24,
+ 54\0\25,
+ 54\0\26,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+beginchar (TIB_SNRA, 9.877u#, 6.745u#, 7.950u#);
+ "snra";
+ z58\0\0s = (0.723u,5.541u);
+ z58\0\0 = (1.927u,5.300u);
+ z58\0\1c1 = (1.303u,4.114u);
+ z58\0\1c2 = (0.657u,3.035u);
+ z58\0\1 = (0.482u,1.650u);
+ z58\0\2 = (2.409u,1.650u);
+ z58\0\3 = (4.818u,1.204u);
+ z58\0\4c1 = (3.875u,2.382u);
+ z58\0\4c2 = (2.884u,2.794u);
+ z58\0\4 = (1.445u,3.132u);
+ z58\0\5 = (1.686u,4.095u);
+ z58\0\6c1 = (3.153u,3.606u);
+ z58\0\6c2 = (4.681u,3.148u);
+ z58\0\6 = (6.022u,2.362u);
+ z58\0\7c1 = (7.033u,1.769u);
+ z58\0\7c2 = (7.834u,0.968u);
+ z58\0\7 = (8.926u,0.482u);
+ z58\0\8 = (8.926u,3.854u);
+ z58\0\9c1 = (8.997u,4.492u);
+ z58\0\9c2 = (9.402u,5.409u);
+ z58\0\9 = (9.295u,5.987u);
+ z58\0\10c1 = (9.136u,6.843u);
+ z58\0\10c2 = (7.919u,6.905u);
+ z58\0\10 = (7.624u,6.197u);
+ z58\0\11c1 = (7.354u,5.547u);
+ z58\0\11c2 = (8.153u,4.729u);
+ z58\0\11 = (8.330u,4.092u);
+ z58\0\12c1 = (8.550u,3.296u);
+ z58\0\12c2 = (8.605u,2.273u);
+ z58\0\12 = (8.672u,1.445u);
+ z58\0\13c1 = (6.978u,2.657u);
+ z58\0\13c2 = (5.602u,4.286u);
+ z58\0\13 = (3.613u,5.059u);
+ z58\0\14 = (5.027u,5.399u);
+ z58\0\15c1 = (5.657u,5.625u);
+ z58\0\15c2 = (5.941u,6.255u);
+ z58\0\15 = (5.223u,6.550u);
+ z58\0\16c1 = (4.677u,6.866u);
+ z58\0\16c2 = (1.804u,6.836u);
+ z58\0\16 = (1.306u,6.550u);
+ z58\0\17c1 = (0.940u,6.252u);
+ z58\0\17c2 = (0.865u,5.924u);
+ z58\1\0s = (2.650u,-0.723u);
+ z58\1\0c1 = (3.869u,-0.795u);
+ z58\1\0c2 = (4.168u,-0.856u);
+ z58\1\0 = (4.818u,-1.927u);
+ z58\1\1c1 = (4.313u,-1.932u);
+ z58\1\1c2 = (3.624u,-1.904u);
+ z58\1\1 = (3.157u,-2.105u);
+ z58\1\2c1 = (0.815u,-3.110u);
+ z58\1\2c2 = (3.300u,-6.898u);
+ z58\1\2 = (4.854u,-4.983u);
+ z58\1\3c1 = (5.186u,-4.575u);
+ z58\1\3c2 = (5.388u,-3.653u);
+ z58\1\3 = (5.541u,-3.132u);
+ z58\1\4c1 = (6.959u,-4.272u);
+ z58\1\4c2 = (7.144u,-4.977u);
+ z58\1\4 = (7.227u,-6.783u);
+ z58\1\5c1 = (6.124u,-6.426u);
+ z58\1\5c2 = (3.916u,-5.798u);
+ z58\1\5 = (3.034u,-6.783u);
+ z58\1\6c1 = (2.795u,-7.098u);
+ z58\1\6c2 = (2.751u,-7.377u);
+ z58\1\6 = (2.650u,-7.709u);
+ z58\1\7 = (3.854u,-7.585u);
+ z58\1\8c1 = (4.507u,-7.455u);
+ z58\1\8c2 = (5.102u,-7.230u);
+ z58\1\8 = (5.782u,-7.261u);
+ z58\1\9c1 = (6.436u,-7.291u);
+ z58\1\9c2 = (7.078u,-7.545u);
+ z58\1\9 = (7.709u,-7.709u);
+ z58\1\10c1 = (7.709u,-6.762u);
+ z58\1\10c2 = (7.791u,-5.743u);
+ z58\1\10 = (7.565u,-4.818u);
+ z58\1\11c1 = (7.429u,-4.262u);
+ z58\1\11c2 = (7.122u,-3.394u);
+ z58\1\11 = (6.775u,-2.944u);
+ z58\1\12c1 = (6.431u,-2.497u);
+ z58\1\12c2 = (5.346u,-1.979u);
+ z58\1\12 = (5.347u,-1.449u);
+ z58\1\13c1 = (5.349u,-0.631u);
+ z58\1\13c2 = (6.729u,-0.895u);
+ z58\1\13 = (7.222u,-0.165u);
+ z58\1\14c1 = (7.410u,0.113u);
+ z58\1\14c2 = (7.415u,0.408u);
+ z58\1\14 = (7.468u,0.723u);
+ z58\1\15c1 = (6.504u,0.723u);
+ z58\1\15c2 = (3.683u,0.936u);
+ z58\1\15 = (3.035u,0.304u);
+ z58\1\16c1 = (2.729u,0.007u);
+ z58\1\16c2 = (2.717u,-0.334u);
+ z58\2\0s = (3.854u,-3.110u);
+ z58\2\0c1 = (4.118u,-3.081u);
+ z58\2\0c2 = (4.227u,-2.994u);
+ z58\2\0 = (4.492u,-3.110u);
+ z58\2\1c1 = (5.133u,-3.530u);
+ z58\2\1c2 = (4.836u,-4.705u);
+ z58\2\1 = (4.236u,-4.962u);
+ z58\2\2c1 = (3.510u,-5.274u);
+ z58\2\2c2 = (2.281u,-4.293u);
+ z58\2\2 = (3.412u,-3.280u);
+ fill_or_unfill z58\0\0s
+ --z58\0\0
+ ..controls z58\0\1c1 and z58\0\1c2..z58\0\1
+ --z58\0\2
+ --z58\0\3
+ ..controls z58\0\4c1 and z58\0\4c2..z58\0\4
+ --z58\0\5
+ ..controls z58\0\6c1 and z58\0\6c2..z58\0\6
+ ..controls z58\0\7c1 and z58\0\7c2..z58\0\7
+ --z58\0\8
+ ..controls z58\0\9c1 and z58\0\9c2..z58\0\9
+ ..controls z58\0\10c1 and z58\0\10c2..z58\0\10
+ ..controls z58\0\11c1 and z58\0\11c2..z58\0\11
+ ..controls z58\0\12c1 and z58\0\12c2..z58\0\12
+ ..controls z58\0\13c1 and z58\0\13c2..z58\0\13
+ --z58\0\14
+ ..controls z58\0\15c1 and z58\0\15c2..z58\0\15
+ ..controls z58\0\16c1 and z58\0\16c2..z58\0\16
+ ..controls z58\0\17c1 and z58\0\17c2..cycle;
+ fill_or_unfill z58\1\0s
+ ..controls z58\1\0c1 and z58\1\0c2..z58\1\0
+ ..controls z58\1\1c1 and z58\1\1c2..z58\1\1
+ ..controls z58\1\2c1 and z58\1\2c2..z58\1\2
+ ..controls z58\1\3c1 and z58\1\3c2..z58\1\3
+ ..controls z58\1\4c1 and z58\1\4c2..z58\1\4
+ ..controls z58\1\5c1 and z58\1\5c2..z58\1\5
+ ..controls z58\1\6c1 and z58\1\6c2..z58\1\6
+ --z58\1\7
+ ..controls z58\1\8c1 and z58\1\8c2..z58\1\8
+ ..controls z58\1\9c1 and z58\1\9c2..z58\1\9
+ ..controls z58\1\10c1 and z58\1\10c2..z58\1\10
+ ..controls z58\1\11c1 and z58\1\11c2..z58\1\11
+ ..controls z58\1\12c1 and z58\1\12c2..z58\1\12
+ ..controls z58\1\13c1 and z58\1\13c2..z58\1\13
+ ..controls z58\1\14c1 and z58\1\14c2..z58\1\14
+ ..controls z58\1\15c1 and z58\1\15c2..z58\1\15
+ ..controls z58\1\16c1 and z58\1\16c2..cycle;
+ fill_or_unfill z58\2\0s
+ ..controls z58\2\0c1 and z58\2\0c2..z58\2\0
+ ..controls z58\2\1c1 and z58\2\1c2..z58\2\1
+ ..controls z58\2\2c1 and z58\2\2c2..z58\2\2
+ --cycle;
+ proof_labels (
+ 58\0\0,
+ 58\0\1,
+ 58\0\2,
+ 58\0\3,
+ 58\0\4,
+ 58\0\5,
+ 58\0\6,
+ 58\0\7,
+ 58\0\8,
+ 58\0\9,
+ 58\0\10,
+ 58\0\11,
+ 58\0\12,
+ 58\0\13,
+ 58\0\14,
+ 58\0\15,
+ 58\0\16,
+ 58\0\17,
+ 58\1\0,
+ 58\1\1,
+ 58\1\2,
+ 58\1\3,
+ 58\1\4,
+ 58\1\5,
+ 58\1\6,
+ 58\1\7,
+ 58\1\8,
+ 58\1\9,
+ 58\1\10,
+ 58\1\11,
+ 58\1\12,
+ 58\1\13,
+ 58\1\14,
+ 58\1\15,
+ 58\1\16,
+ 58\2\0,
+ 58\2\1,
+ 58\2\2,
+ 58\2\3,
+);
+endchar;
+
+beginchar (TIB_SNYA, 10.840u#, 6.745u#, 8.190u#);
+ "snya";
+ z55\0\0s = (1.445u,5.300u);
+ z55\0\0 = (2.409u,5.300u);
+ z55\0\1c1 = (1.255u,4.197u);
+ z55\0\1c2 = (0.601u,3.585u);
+ z55\0\1 = (0.482u,1.888u);
+ z55\0\2c1 = (1.273u,1.927u);
+ z55\0\2c2 = (2.108u,1.980u);
+ z55\0\2 = (2.891u,1.888u);
+ z55\0\3 = (4.336u,1.445u);
+ z55\0\4c1 = (3.805u,1.192u);
+ z55\0\4c2 = (3.185u,0.966u);
+ z55\0\4 = (2.744u,0.567u);
+ z55\0\5c1 = (2.359u,0.219u);
+ z55\0\5c2 = (2.122u,-0.239u);
+ z55\0\5 = (1.953u,-0.723u);
+ z55\0\6c1 = (1.274u,-2.673u);
+ z55\0\6c2 = (2.784u,-2.915u);
+ z55\0\6 = (3.372u,-2.092u);
+ z55\0\7c1 = (3.522u,-1.882u);
+ z55\0\7c2 = (3.539u,-1.677u);
+ z55\0\7 = (3.613u,-1.445u);
+ z55\0\8 = (2.168u,-1.204u);
+ z55\0\9c1 = (2.377u,-0.797u);
+ z55\0\9c2 = (2.501u,-0.492u);
+ z55\0\9 = (2.923u,-0.246u);
+ z55\0\10c1 = (3.548u,0.117u);
+ z55\0\10c2 = (5.629u,0.214u);
+ z55\0\10 = (5.803u,-0.754u);
+ z55\0\11c1 = (5.979u,-1.743u);
+ z55\0\11c2 = (3.998u,-2.458u);
+ z55\0\11 = (3.902u,-4.092u);
+ z55\0\12c1 = (3.885u,-4.384u);
+ z55\0\12c2 = (3.933u,-4.708u);
+ z55\0\12 = (4.101u,-4.955u);
+ z55\0\13c1 = (4.990u,-6.263u);
+ z55\0\13c2 = (7.250u,-4.684u);
+ z55\0\13 = (5.286u,-4.058u);
+ z55\0\14 = (4.336u,-3.854u);
+ z55\0\15c1 = (4.632u,-3.475u);
+ z55\0\15c2 = (4.867u,-3.127u);
+ z55\0\15 = (5.310u,-2.897u);
+ z55\0\16c1 = (6.553u,-2.251u);
+ z55\0\16c2 = (8.807u,-3.145u);
+ z55\0\16 = (8.358u,-4.809u);
+ z55\0\17c1 = (8.130u,-5.652u);
+ z55\0\17c2 = (7.320u,-6.349u);
+ z55\0\17 = (6.763u,-6.989u);
+ z55\0\18 = (6.022u,-7.950u);
+ z55\0\19c1 = (6.348u,-7.894u);
+ z55\0\19c2 = (6.613u,-7.881u);
+ z55\0\19 = (6.908u,-7.705u);
+ z55\0\20c1 = (7.319u,-7.460u);
+ z55\0\20c2 = (7.657u,-6.979u);
+ z55\0\20 = (7.949u,-6.605u);
+ z55\0\21c1 = (8.821u,-5.487u);
+ z55\0\21c2 = (10.220u,-3.107u);
+ z55\0\21 = (8.810u,-1.861u);
+ z55\0\22c1 = (8.239u,-1.356u);
+ z55\0\22c2 = (7.232u,-1.266u);
+ z55\0\22 = (6.504u,-1.204u);
+ z55\0\23c1 = (6.734u,-0.704u);
+ z55\0\23c2 = (7.045u,-0.140u);
+ z55\0\23 = (6.832u,0.427u);
+ z55\0\24c1 = (6.564u,1.140u);
+ z55\0\24c2 = (5.651u,1.176u);
+ z55\0\24 = (5.059u,1.483u);
+ z55\0\25 = (3.372u,2.653u);
+ z55\0\26c1 = (2.761u,3.024u);
+ z55\0\26c2 = (2.134u,3.211u);
+ z55\0\26 = (1.445u,3.372u);
+ z55\0\27 = (1.445u,3.900u);
+ z55\0\28c1 = (1.957u,3.934u);
+ z55\0\28c2 = (2.366u,4.027u);
+ z55\0\28 = (2.891u,3.900u);
+ z55\0\29c1 = (4.683u,3.673u);
+ z55\0\29c2 = (7.668u,1.786u);
+ z55\0\29 = (8.860u,0.460u);
+ z55\0\30c1 = (9.194u,0.089u);
+ z55\0\30c2 = (9.403u,-0.289u);
+ z55\0\30 = (9.636u,-0.723u);
+ z55\0\31c1 = (10.129u,0.520u);
+ z55\0\31c2 = (9.773u,2.470u);
+ z55\0\31 = (9.902u,3.854u);
+ z55\0\32 = (10.314u,5.541u);
+ z55\0\33 = (10.314u,6.745u);
+ z55\0\34 = (8.431u,6.745u);
+ z55\0\35c1 = (8.485u,5.776u);
+ z55\0\35c2 = (8.782u,5.023u);
+ z55\0\35 = (8.991u,4.095u);
+ z55\0\36 = (9.203u,2.409u);
+ z55\0\37 = (9.636u,0.482u);
+ z55\0\38 = (6.745u,3.351u);
+ z55\0\39 = (4.577u,5.300u);
+ z55\0\40c1 = (5.079u,5.317u);
+ z55\0\40c2 = (6.112u,5.274u);
+ z55\0\40 = (6.112u,6.022u);
+ z55\0\41c1 = (6.112u,6.301u);
+ z55\0\41c2 = (5.942u,6.484u);
+ z55\0\41 = (5.705u,6.601u);
+ z55\0\42c1 = (5.413u,6.745u);
+ z55\0\42c2 = (4.901u,6.738u);
+ z55\0\42 = (4.577u,6.744u);
+ z55\0\43c1 = (3.613u,6.762u);
+ z55\0\43c2 = (2.274u,6.933u);
+ z55\0\43 = (1.687u,5.988u);
+ z55\0\44c1 = (1.545u,5.760u);
+ z55\0\44c2 = (1.520u,5.545u);
+ fill_or_unfill z55\0\0s
+ --z55\0\0
+ ..controls z55\0\1c1 and z55\0\1c2..z55\0\1
+ ..controls z55\0\2c1 and z55\0\2c2..z55\0\2
+ --z55\0\3
+ ..controls z55\0\4c1 and z55\0\4c2..z55\0\4
+ ..controls z55\0\5c1 and z55\0\5c2..z55\0\5
+ ..controls z55\0\6c1 and z55\0\6c2..z55\0\6
+ ..controls z55\0\7c1 and z55\0\7c2..z55\0\7
+ --z55\0\8
+ ..controls z55\0\9c1 and z55\0\9c2..z55\0\9
+ ..controls z55\0\10c1 and z55\0\10c2..z55\0\10
+ ..controls z55\0\11c1 and z55\0\11c2..z55\0\11
+ ..controls z55\0\12c1 and z55\0\12c2..z55\0\12
+ ..controls z55\0\13c1 and z55\0\13c2..z55\0\13
+ --z55\0\14
+ ..controls z55\0\15c1 and z55\0\15c2..z55\0\15
+ ..controls z55\0\16c1 and z55\0\16c2..z55\0\16
+ ..controls z55\0\17c1 and z55\0\17c2..z55\0\17
+ --z55\0\18
+ ..controls z55\0\19c1 and z55\0\19c2..z55\0\19
+ ..controls z55\0\20c1 and z55\0\20c2..z55\0\20
+ ..controls z55\0\21c1 and z55\0\21c2..z55\0\21
+ ..controls z55\0\22c1 and z55\0\22c2..z55\0\22
+ ..controls z55\0\23c1 and z55\0\23c2..z55\0\23
+ ..controls z55\0\24c1 and z55\0\24c2..z55\0\24
+ --z55\0\25
+ ..controls z55\0\26c1 and z55\0\26c2..z55\0\26
+ --z55\0\27
+ ..controls z55\0\28c1 and z55\0\28c2..z55\0\28
+ ..controls z55\0\29c1 and z55\0\29c2..z55\0\29
+ ..controls z55\0\30c1 and z55\0\30c2..z55\0\30
+ ..controls z55\0\31c1 and z55\0\31c2..z55\0\31
+ --z55\0\32
+ --z55\0\33
+ --z55\0\34
+ ..controls z55\0\35c1 and z55\0\35c2..z55\0\35
+ --z55\0\36
+ --z55\0\37
+ --z55\0\38
+ --z55\0\39
+ ..controls z55\0\40c1 and z55\0\40c2..z55\0\40
+ ..controls z55\0\41c1 and z55\0\41c2..z55\0\41
+ ..controls z55\0\42c1 and z55\0\42c2..z55\0\42
+ ..controls z55\0\43c1 and z55\0\43c2..z55\0\43
+ ..controls z55\0\44c1 and z55\0\44c2..cycle;
+ proof_labels (
+ 55\0\0,
+ 55\0\1,
+ 55\0\2,
+ 55\0\3,
+ 55\0\4,
+ 55\0\5,
+ 55\0\6,
+ 55\0\7,
+ 55\0\8,
+ 55\0\9,
+ 55\0\10,
+ 55\0\11,
+ 55\0\12,
+ 55\0\13,
+ 55\0\14,
+ 55\0\15,
+ 55\0\16,
+ 55\0\17,
+ 55\0\18,
+ 55\0\19,
+ 55\0\20,
+ 55\0\21,
+ 55\0\22,
+ 55\0\23,
+ 55\0\24,
+ 55\0\25,
+ 55\0\26,
+ 55\0\27,
+ 55\0\28,
+ 55\0\29,
+ 55\0\30,
+ 55\0\31,
+ 55\0\32,
+ 55\0\33,
+ 55\0\34,
+ 55\0\35,
+ 55\0\36,
+ 55\0\37,
+ 55\0\38,
+ 55\0\39,
+ 55\0\40,
+ 55\0\41,
+ 55\0\42,
+ 55\0\43,
+ 55\0\44,
+);
+endchar;
+
+beginchar (TIB_STA, 9.877u#, 6.745u#, 7.227u#);
+ "sta";
+ z56\0\0s = (0.964u,5.300u);
+ z56\0\0 = (1.927u,5.300u);
+ z56\0\1c1 = (1.398u,4.562u);
+ z56\0\1c2 = (0.538u,3.346u);
+ z56\0\1 = (0.567u,2.409u);
+ z56\0\2 = (0.723u,1.686u);
+ z56\0\3c1 = (2.786u,2.037u);
+ z56\0\3c2 = (2.974u,1.623u);
+ z56\0\3 = (4.818u,0.964u);
+ z56\0\4c1 = (4.105u,2.375u);
+ z56\0\4c2 = (2.951u,2.894u);
+ z56\0\4 = (1.445u,3.132u);
+ z56\0\5c1 = (1.663u,3.497u);
+ z56\0\5c2 = (1.725u,3.737u);
+ z56\0\5 = (2.201u,3.840u);
+ z56\0\6c1 = (2.988u,4.009u);
+ z56\0\6c2 = (5.728u,2.757u);
+ z56\0\6 = (6.483u,2.332u);
+ z56\0\7c1 = (7.266u,1.891u);
+ z56\0\7c2 = (8.044u,1.361u);
+ z56\0\7 = (8.672u,0.723u);
+ z56\0\8 = (3.854u,0.723u);
+ z56\0\9 = (3.854u,-3.338u);
+ z56\0\10 = (5.059u,-3.338u);
+ z56\0\11c1 = (5.536u,-3.248u);
+ z56\0\11c2 = (6.021u,-3.129u);
+ z56\0\11 = (6.504u,-3.195u);
+ z56\0\12c1 = (7.027u,-3.268u);
+ z56\0\12c2 = (7.518u,-3.512u);
+ z56\0\12 = (7.873u,-3.909u);
+ z56\0\13c1 = (8.947u,-5.110u);
+ z56\0\13c2 = (7.656u,-6.047u);
+ z56\0\13 = (6.745u,-6.745u);
+ z56\0\14c1 = (9.226u,-7.526u);
+ z56\0\14c2 = (10.491u,-2.862u);
+ z56\0\14 = (7.708u,-2.065u);
+ z56\0\15c1 = (6.559u,-1.736u);
+ z56\0\15c2 = (5.361u,-2.152u);
+ z56\0\15 = (4.336u,-2.650u);
+ z56\0\16c1 = (4.352u,-2.201u);
+ z56\0\16c2 = (4.321u,-1.672u);
+ z56\0\16 = (4.582u,-1.280u);
+ z56\0\17c1 = (5.432u,-0.005u);
+ z56\0\17c2 = (8.181u,-1.586u);
+ z56\0\17 = (8.976u,0.267u);
+ z56\0\18c1 = (9.191u,0.766u);
+ z56\0\18c2 = (9.153u,1.618u);
+ z56\0\18 = (9.186u,2.168u);
+ z56\0\19 = (9.186u,4.095u);
+ z56\0\20c1 = (9.187u,4.634u);
+ z56\0\20c2 = (9.438u,5.734u);
+ z56\0\20 = (9.186u,6.188u);
+ z56\0\21c1 = (8.919u,6.933u);
+ z56\0\21c2 = (7.442u,6.889u);
+ z56\0\21 = (7.357u,5.998u);
+ z56\0\22c1 = (7.294u,5.339u);
+ z56\0\22c2 = (8.122u,4.739u);
+ z56\0\22 = (8.338u,4.082u);
+ z56\0\23 = (8.539u,3.132u);
+ z56\0\24 = (8.913u,1.445u);
+ z56\0\25c1 = (7.262u,2.725u);
+ z56\0\25c2 = (5.729u,4.099u);
+ z56\0\25 = (3.854u,5.059u);
+ z56\0\26c1 = (5.013u,5.493u);
+ z56\0\26c2 = (5.260u,5.471u);
+ z56\0\26 = (5.541u,6.745u);
+ z56\0\27c1 = (4.603u,6.745u);
+ z56\0\27c2 = (1.990u,6.952u);
+ z56\0\27 = (1.348u,6.326u);
+ z56\0\28c1 = (1.043u,6.029u);
+ z56\0\28c2 = (1.030u,5.689u);
+ fill_or_unfill z56\0\0s
+ --z56\0\0
+ ..controls z56\0\1c1 and z56\0\1c2..z56\0\1
+ --z56\0\2
+ ..controls z56\0\3c1 and z56\0\3c2..z56\0\3
+ ..controls z56\0\4c1 and z56\0\4c2..z56\0\4
+ ..controls z56\0\5c1 and z56\0\5c2..z56\0\5
+ ..controls z56\0\6c1 and z56\0\6c2..z56\0\6
+ ..controls z56\0\7c1 and z56\0\7c2..z56\0\7
+ --z56\0\8
+ --z56\0\9
+ --z56\0\10
+ ..controls z56\0\11c1 and z56\0\11c2..z56\0\11
+ ..controls z56\0\12c1 and z56\0\12c2..z56\0\12
+ ..controls z56\0\13c1 and z56\0\13c2..z56\0\13
+ ..controls z56\0\14c1 and z56\0\14c2..z56\0\14
+ ..controls z56\0\15c1 and z56\0\15c2..z56\0\15
+ ..controls z56\0\16c1 and z56\0\16c2..z56\0\16
+ ..controls z56\0\17c1 and z56\0\17c2..z56\0\17
+ ..controls z56\0\18c1 and z56\0\18c2..z56\0\18
+ --z56\0\19
+ ..controls z56\0\20c1 and z56\0\20c2..z56\0\20
+ ..controls z56\0\21c1 and z56\0\21c2..z56\0\21
+ ..controls z56\0\22c1 and z56\0\22c2..z56\0\22
+ --z56\0\23
+ --z56\0\24
+ ..controls z56\0\25c1 and z56\0\25c2..z56\0\25
+ ..controls z56\0\26c1 and z56\0\26c2..z56\0\26
+ ..controls z56\0\27c1 and z56\0\27c2..z56\0\27
+ ..controls z56\0\28c1 and z56\0\28c2..cycle;
+ proof_labels (
+ 56\0\0,
+ 56\0\1,
+ 56\0\2,
+ 56\0\3,
+ 56\0\4,
+ 56\0\5,
+ 56\0\6,
+ 56\0\7,
+ 56\0\8,
+ 56\0\9,
+ 56\0\10,
+ 56\0\11,
+ 56\0\12,
+ 56\0\13,
+ 56\0\14,
+ 56\0\15,
+ 56\0\16,
+ 56\0\17,
+ 56\0\18,
+ 56\0\19,
+ 56\0\20,
+ 56\0\21,
+ 56\0\22,
+ 56\0\23,
+ 56\0\24,
+ 56\0\25,
+ 56\0\26,
+ 56\0\27,
+ 56\0\28,
+);
+endchar;
+
+beginchar (TIB_SDA, 10.600u#, 6.745u#, 6.986u#);
+ "sda";
+ z57\0\0s = (1.204u,5.300u);
+ z57\0\0 = (2.168u,5.300u);
+ z57\0\1c1 = (1.549u,4.272u);
+ z57\0\1c2 = (0.847u,3.317u);
+ z57\0\1 = (0.482u,2.168u);
+ z57\0\2c1 = (1.890u,1.969u);
+ z57\0\2c2 = (3.037u,1.514u);
+ z57\0\2 = (4.336u,0.964u);
+ z57\0\3c1 = (2.890u,0.547u);
+ z57\0\3c2 = (2.382u,0.965u);
+ z57\0\3 = (1.927u,-0.723u);
+ z57\0\4 = (2.135u,-1.259u);
+ z57\0\5 = (1.874u,-2.409u);
+ z57\0\6 = (1.686u,-3.613u);
+ z57\0\7c1 = (2.180u,-3.602u);
+ z57\0\7c2 = (2.645u,-3.587u);
+ z57\0\7 = (3.132u,-3.490u);
+ z57\0\8 = (4.336u,-3.231u);
+ z57\0\9c1 = (5.555u,-3.123u);
+ z57\0\9c2 = (6.832u,-3.744u);
+ z57\0\9 = (7.664u,-4.602u);
+ z57\0\10c1 = (8.323u,-5.280u);
+ z57\0\10c2 = (8.641u,-6.188u);
+ z57\0\10 = (9.395u,-6.745u);
+ z57\0\11c1 = (8.978u,-4.525u);
+ z57\0\11c2 = (6.939u,-2.116u);
+ z57\0\11 = (4.577u,-1.950u);
+ z57\0\12c1 = (3.836u,-1.898u);
+ z57\0\12c2 = (3.133u,-2.038u);
+ z57\0\12 = (2.409u,-2.168u);
+ z57\0\13c1 = (4.726u,0.764u);
+ z57\0\13c2 = (6.518u,-2.209u);
+ z57\0\13 = (8.190u,0.760u);
+ z57\0\14c1 = (7.400u,0.723u);
+ z57\0\14c2 = (6.292u,0.611u);
+ z57\0\14 = (5.541u,0.760u);
+ z57\0\15c1 = (4.635u,1.024u);
+ z57\0\15c2 = (4.080u,1.767u);
+ z57\0\15 = (3.372u,2.316u);
+ z57\0\16c1 = (2.775u,2.780u);
+ z57\0\16c2 = (2.134u,3.074u);
+ z57\0\16 = (1.445u,3.372u);
+ z57\0\17c1 = (1.854u,3.642u);
+ z57\0\17c2 = (2.132u,3.880u);
+ z57\0\17 = (2.650u,3.896u);
+ z57\0\18c1 = (4.011u,3.938u);
+ z57\0\18c2 = (7.711u,1.694u);
+ z57\0\18 = (8.640u,0.700u);
+ z57\0\19c1 = (8.995u,0.320u);
+ z57\0\19c2 = (9.177u,-0.021u);
+ z57\0\19 = (9.395u,-0.482u);
+ z57\0\20c1 = (9.880u,0.741u);
+ z57\0\20c2 = (9.537u,2.299u);
+ z57\0\20 = (9.677u,3.613u);
+ z57\0\21 = (10.062u,5.300u);
+ z57\0\22 = (10.062u,6.745u);
+ z57\0\23c1 = (9.087u,6.732u);
+ z57\0\23c2 = (7.901u,6.758u);
+ z57\0\23 = (8.416u,5.299u);
+ z57\0\24 = (9.061u,3.854u);
+ z57\0\25c1 = (9.360u,2.850u);
+ z57\0\25c2 = (9.392u,1.761u);
+ z57\0\25 = (9.395u,0.723u);
+ z57\0\26c1 = (7.763u,2.355u);
+ z57\0\26c2 = (6.094u,3.880u);
+ z57\0\26 = (4.095u,5.059u);
+ z57\0\27c1 = (5.163u,5.513u);
+ z57\0\27c2 = (5.643u,5.573u);
+ z57\0\27 = (6.022u,6.745u);
+ z57\0\28c1 = (5.066u,6.745u);
+ z57\0\28c2 = (2.261u,6.961u);
+ z57\0\28 = (1.623u,6.326u);
+ z57\0\29c1 = (1.328u,6.034u);
+ z57\0\29c2 = (1.290u,5.680u);
+ fill_or_unfill z57\0\0s
+ --z57\0\0
+ ..controls z57\0\1c1 and z57\0\1c2..z57\0\1
+ ..controls z57\0\2c1 and z57\0\2c2..z57\0\2
+ ..controls z57\0\3c1 and z57\0\3c2..z57\0\3
+ --z57\0\4
+ --z57\0\5
+ --z57\0\6
+ ..controls z57\0\7c1 and z57\0\7c2..z57\0\7
+ --z57\0\8
+ ..controls z57\0\9c1 and z57\0\9c2..z57\0\9
+ ..controls z57\0\10c1 and z57\0\10c2..z57\0\10
+ ..controls z57\0\11c1 and z57\0\11c2..z57\0\11
+ ..controls z57\0\12c1 and z57\0\12c2..z57\0\12
+ ..controls z57\0\13c1 and z57\0\13c2..z57\0\13
+ ..controls z57\0\14c1 and z57\0\14c2..z57\0\14
+ ..controls z57\0\15c1 and z57\0\15c2..z57\0\15
+ ..controls z57\0\16c1 and z57\0\16c2..z57\0\16
+ ..controls z57\0\17c1 and z57\0\17c2..z57\0\17
+ ..controls z57\0\18c1 and z57\0\18c2..z57\0\18
+ ..controls z57\0\19c1 and z57\0\19c2..z57\0\19
+ ..controls z57\0\20c1 and z57\0\20c2..z57\0\20
+ --z57\0\21
+ --z57\0\22
+ ..controls z57\0\23c1 and z57\0\23c2..z57\0\23
+ --z57\0\24
+ ..controls z57\0\25c1 and z57\0\25c2..z57\0\25
+ ..controls z57\0\26c1 and z57\0\26c2..z57\0\26
+ ..controls z57\0\27c1 and z57\0\27c2..z57\0\27
+ ..controls z57\0\28c1 and z57\0\28c2..z57\0\28
+ ..controls z57\0\29c1 and z57\0\29c2..cycle;
+ proof_labels (
+ 57\0\0,
+ 57\0\1,
+ 57\0\2,
+ 57\0\3,
+ 57\0\4,
+ 57\0\5,
+ 57\0\6,
+ 57\0\7,
+ 57\0\8,
+ 57\0\9,
+ 57\0\10,
+ 57\0\11,
+ 57\0\12,
+ 57\0\13,
+ 57\0\14,
+ 57\0\15,
+ 57\0\16,
+ 57\0\17,
+ 57\0\18,
+ 57\0\19,
+ 57\0\20,
+ 57\0\21,
+ 57\0\22,
+ 57\0\23,
+ 57\0\24,
+ 57\0\25,
+ 57\0\26,
+ 57\0\27,
+ 57\0\28,
+ 57\0\29,
+);
+endchar;
+
+beginchar (TIB_SNA, 9.877u#, 6.745u#, 6.986u#);
+ "sna";
+ z58\0\0s = (0.723u,5.541u);
+ z58\0\0 = (1.927u,5.300u);
+ z58\0\1c1 = (1.303u,4.114u);
+ z58\0\1c2 = (0.657u,3.035u);
+ z58\0\1 = (0.482u,1.650u);
+ z58\0\2 = (2.409u,1.650u);
+ z58\0\3c1 = (3.232u,1.496u);
+ z58\0\3c2 = (4.031u,1.221u);
+ z58\0\3 = (4.818u,0.964u);
+ z58\0\4c1 = (4.696u,1.208u);
+ z58\0\4c2 = (4.625u,1.415u);
+ z58\0\4 = (4.447u,1.636u);
+ z58\0\5c1 = (3.774u,2.468u);
+ z58\0\5c2 = (2.452u,2.895u);
+ z58\0\5 = (1.445u,3.132u);
+ z58\0\6 = (1.686u,4.095u);
+ z58\0\7c1 = (3.153u,3.606u);
+ z58\0\7c2 = (4.681u,3.148u);
+ z58\0\7 = (6.022u,2.362u);
+ z58\0\8c1 = (7.033u,1.769u);
+ z58\0\8c2 = (7.834u,0.968u);
+ z58\0\8 = (8.926u,0.482u);
+ z58\0\9 = (8.926u,3.854u);
+ z58\0\10c1 = (8.997u,4.492u);
+ z58\0\10c2 = (9.402u,5.409u);
+ z58\0\10 = (9.295u,5.987u);
+ z58\0\11c1 = (9.136u,6.843u);
+ z58\0\11c2 = (7.919u,6.905u);
+ z58\0\11 = (7.624u,6.197u);
+ z58\0\12c1 = (7.354u,5.547u);
+ z58\0\12c2 = (8.153u,4.729u);
+ z58\0\12 = (8.330u,4.092u);
+ z58\0\13c1 = (8.550u,3.296u);
+ z58\0\13c2 = (8.605u,2.273u);
+ z58\0\13 = (8.672u,1.445u);
+ z58\0\14c1 = (6.978u,2.657u);
+ z58\0\14c2 = (5.602u,4.286u);
+ z58\0\14 = (3.613u,5.059u);
+ z58\0\15 = (5.027u,5.399u);
+ z58\0\16c1 = (5.657u,5.625u);
+ z58\0\16c2 = (5.941u,6.255u);
+ z58\0\16 = (5.223u,6.550u);
+ z58\0\17c1 = (4.677u,6.866u);
+ z58\0\17c2 = (1.804u,6.836u);
+ z58\0\17 = (1.306u,6.550u);
+ z58\0\18c1 = (0.940u,6.252u);
+ z58\0\18c2 = (0.865u,5.924u);
+ z58\1\0s = (2.650u,-0.723u);
+ z58\1\0c1 = (3.869u,-0.795u);
+ z58\1\0c2 = (4.168u,-0.856u);
+ z58\1\0 = (4.818u,-1.927u);
+ z58\1\1c1 = (4.313u,-1.932u);
+ z58\1\1c2 = (3.624u,-1.904u);
+ z58\1\1 = (3.157u,-2.105u);
+ z58\1\2c1 = (0.815u,-3.110u);
+ z58\1\2c2 = (3.300u,-6.898u);
+ z58\1\2 = (4.854u,-4.983u);
+ z58\1\3c1 = (5.186u,-4.575u);
+ z58\1\3c2 = (5.388u,-3.653u);
+ z58\1\3 = (5.541u,-3.132u);
+ z58\1\4c1 = (6.959u,-4.272u);
+ z58\1\4c2 = (7.144u,-4.977u);
+ z58\1\4 = (7.227u,-6.745u);
+ z58\1\5 = (7.709u,-6.745u);
+ z58\1\6c1 = (7.694u,-2.126u);
+ z58\1\6c2 = (5.345u,-2.371u);
+ z58\1\6 = (5.347u,-1.449u);
+ z58\1\7c1 = (5.349u,-0.631u);
+ z58\1\7c2 = (6.729u,-0.895u);
+ z58\1\7 = (7.222u,-0.165u);
+ z58\1\8c1 = (7.410u,0.113u);
+ z58\1\8c2 = (7.415u,0.408u);
+ z58\1\8 = (7.468u,0.723u);
+ z58\1\9c1 = (6.504u,0.723u);
+ z58\1\9c2 = (3.683u,0.936u);
+ z58\1\9 = (3.035u,0.304u);
+ z58\1\10c1 = (2.729u,0.007u);
+ z58\1\10c2 = (2.717u,-0.334u);
+ z58\2\0s = (3.854u,-3.110u);
+ z58\2\0c1 = (4.118u,-3.081u);
+ z58\2\0c2 = (4.227u,-2.994u);
+ z58\2\0 = (4.492u,-3.110u);
+ z58\2\1c1 = (5.133u,-3.530u);
+ z58\2\1c2 = (4.836u,-4.705u);
+ z58\2\1 = (4.236u,-4.962u);
+ z58\2\2c1 = (3.510u,-5.274u);
+ z58\2\2c2 = (2.281u,-4.293u);
+ z58\2\2 = (3.412u,-3.280u);
+ fill_or_unfill z58\0\0s
+ --z58\0\0
+ ..controls z58\0\1c1 and z58\0\1c2..z58\0\1
+ --z58\0\2
+ ..controls z58\0\3c1 and z58\0\3c2..z58\0\3
+ ..controls z58\0\4c1 and z58\0\4c2..z58\0\4
+ ..controls z58\0\5c1 and z58\0\5c2..z58\0\5
+ --z58\0\6
+ ..controls z58\0\7c1 and z58\0\7c2..z58\0\7
+ ..controls z58\0\8c1 and z58\0\8c2..z58\0\8
+ --z58\0\9
+ ..controls z58\0\10c1 and z58\0\10c2..z58\0\10
+ ..controls z58\0\11c1 and z58\0\11c2..z58\0\11
+ ..controls z58\0\12c1 and z58\0\12c2..z58\0\12
+ ..controls z58\0\13c1 and z58\0\13c2..z58\0\13
+ ..controls z58\0\14c1 and z58\0\14c2..z58\0\14
+ --z58\0\15
+ ..controls z58\0\16c1 and z58\0\16c2..z58\0\16
+ ..controls z58\0\17c1 and z58\0\17c2..z58\0\17
+ ..controls z58\0\18c1 and z58\0\18c2..cycle;
+ fill_or_unfill z58\1\0s
+ ..controls z58\1\0c1 and z58\1\0c2..z58\1\0
+ ..controls z58\1\1c1 and z58\1\1c2..z58\1\1
+ ..controls z58\1\2c1 and z58\1\2c2..z58\1\2
+ ..controls z58\1\3c1 and z58\1\3c2..z58\1\3
+ ..controls z58\1\4c1 and z58\1\4c2..z58\1\4
+ --z58\1\5
+ ..controls z58\1\6c1 and z58\1\6c2..z58\1\6
+ ..controls z58\1\7c1 and z58\1\7c2..z58\1\7
+ ..controls z58\1\8c1 and z58\1\8c2..z58\1\8
+ ..controls z58\1\9c1 and z58\1\9c2..z58\1\9
+ ..controls z58\1\10c1 and z58\1\10c2..cycle;
+ fill_or_unfill z58\2\0s
+ ..controls z58\2\0c1 and z58\2\0c2..z58\2\0
+ ..controls z58\2\1c1 and z58\2\1c2..z58\2\1
+ ..controls z58\2\2c1 and z58\2\2c2..z58\2\2
+ --cycle;
+ proof_labels (
+ 58\0\0,
+ 58\0\1,
+ 58\0\2,
+ 58\0\3,
+ 58\0\4,
+ 58\0\5,
+ 58\0\6,
+ 58\0\7,
+ 58\0\8,
+ 58\0\9,
+ 58\0\10,
+ 58\0\11,
+ 58\0\12,
+ 58\0\13,
+ 58\0\14,
+ 58\0\15,
+ 58\0\16,
+ 58\0\17,
+ 58\0\18,
+ 58\1\0,
+ 58\1\1,
+ 58\1\2,
+ 58\1\3,
+ 58\1\4,
+ 58\1\5,
+ 58\1\6,
+ 58\1\7,
+ 58\1\8,
+ 58\1\9,
+ 58\1\10,
+ 58\2\0,
+ 58\2\1,
+ 58\2\2,
+ 58\2\3,
+);
+endchar;
+
+beginchar (TIB_SPA, 10.118u#, 6.745u#, 6.263u#);
+ "spa";
+ z59\0\0s = (0.964u,5.300u);
+ z59\0\0 = (1.927u,5.300u);
+ z59\0\1c1 = (1.369u,4.005u);
+ z59\0\1c2 = (0.633u,2.870u);
+ z59\0\1 = (0.482u,1.445u);
+ z59\0\2c1 = (1.049u,1.440u);
+ z59\0\2c2 = (1.611u,1.446u);
+ z59\0\2 = (2.168u,1.318u);
+ z59\0\3 = (4.577u,0.482u);
+ z59\0\4c1 = (3.931u,1.784u);
+ z59\0\4c2 = (2.815u,2.488u);
+ z59\0\4 = (1.445u,2.891u);
+ z59\0\5c1 = (1.645u,3.258u);
+ z59\0\5c2 = (1.754u,3.580u);
+ z59\0\5 = (2.201u,3.722u);
+ z59\0\6c1 = (2.645u,3.863u);
+ z59\0\6c2 = (3.202u,3.625u);
+ z59\0\6 = (3.613u,3.467u);
+ z59\0\7c1 = (5.519u,2.733u);
+ z59\0\7c2 = (7.168u,1.610u);
+ z59\0\7 = (8.672u,0.241u);
+ z59\0\8c1 = (8.283u,0.104u);
+ z59\0\8c2 = (7.870u,0.022u);
+ z59\0\8 = (7.859u,-0.495u);
+ z59\0\9c1 = (7.849u,-0.950u);
+ z59\0\9c2 = (8.466u,-1.672u);
+ z59\0\9 = (8.638u,-2.177u);
+ z59\0\10c1 = (8.960u,-3.119u);
+ z59\0\10c2 = (9.023u,-4.308u);
+ z59\0\10 = (9.154u,-5.300u);
+ z59\0\11 = (6.745u,-4.174u);
+ z59\0\12c1 = (5.532u,-3.730u);
+ z59\0\12c2 = (4.162u,-3.854u);
+ z59\0\12 = (2.891u,-3.854u);
+ z59\0\13c1 = (3.173u,-3.200u);
+ z59\0\13c2 = (3.641u,-2.031u);
+ z59\0\13 = (4.189u,-1.590u);
+ z59\0\14c1 = (5.312u,-0.683u);
+ z59\0\14c2 = (6.387u,-1.895u);
+ z59\0\14 = (6.745u,0.241u);
+ z59\0\15c1 = (5.941u,0.241u);
+ z59\0\15c2 = (3.049u,0.545u);
+ z59\0\15 = (2.869u,-0.484u);
+ z59\0\16c1 = (2.797u,-0.897u);
+ z59\0\16c2 = (3.106u,-1.018u);
+ z59\0\16 = (3.372u,-1.204u);
+ z59\0\17 = (2.357u,-3.854u);
+ z59\0\18 = (2.168u,-5.300u);
+ z59\0\19 = (4.197u,-5.078u);
+ z59\0\20c1 = (4.771u,-5.001u);
+ z59\0\20c2 = (5.451u,-5.033u);
+ z59\0\20 = (6.022u,-5.078u);
+ z59\0\21c1 = (7.184u,-5.244u);
+ z59\0\21c2 = (8.256u,-5.777u);
+ z59\0\21 = (9.400u,-6.022u);
+ z59\0\22 = (9.400u,-2.168u);
+ z59\0\23 = (9.568u,-0.503u);
+ z59\0\24c1 = (9.561u,0.033u);
+ z59\0\24c2 = (9.310u,0.470u);
+ z59\0\24 = (9.196u,0.985u);
+ z59\0\25c1 = (9.094u,1.671u);
+ z59\0\25c2 = (9.153u,2.435u);
+ z59\0\25 = (9.196u,3.132u);
+ z59\0\26 = (9.196u,4.577u);
+ z59\0\27 = (9.636u,6.745u);
+ z59\0\28c1 = (9.130u,6.743u);
+ z59\0\28c2 = (8.044u,6.835u);
+ z59\0\28 = (7.681u,6.360u);
+ z59\0\29c1 = (7.601u,6.169u);
+ z59\0\29c2 = (7.602u,5.986u);
+ z59\0\29 = (7.681u,5.768u);
+ z59\0\30 = (8.160u,4.336u);
+ z59\0\31c1 = (8.456u,3.360u);
+ z59\0\31c2 = (8.590u,2.219u);
+ z59\0\31 = (8.672u,1.204u);
+ z59\0\32c1 = (7.034u,2.576u);
+ z59\0\32c2 = (5.523u,4.053u);
+ z59\0\32 = (3.613u,5.059u);
+ z59\0\33 = (5.004u,5.367u);
+ z59\0\34c1 = (5.621u,5.575u);
+ z59\0\34c2 = (5.897u,6.261u);
+ z59\0\34 = (5.220u,6.550u);
+ z59\0\35c1 = (4.720u,6.853u);
+ z59\0\35c2 = (1.781u,6.841u);
+ z59\0\35 = (1.349u,6.550u);
+ z59\0\36c1 = (0.977u,6.205u);
+ z59\0\36c2 = (0.999u,5.723u);
+ fill_or_unfill z59\0\0s
+ --z59\0\0
+ ..controls z59\0\1c1 and z59\0\1c2..z59\0\1
+ ..controls z59\0\2c1 and z59\0\2c2..z59\0\2
+ --z59\0\3
+ ..controls z59\0\4c1 and z59\0\4c2..z59\0\4
+ ..controls z59\0\5c1 and z59\0\5c2..z59\0\5
+ ..controls z59\0\6c1 and z59\0\6c2..z59\0\6
+ ..controls z59\0\7c1 and z59\0\7c2..z59\0\7
+ ..controls z59\0\8c1 and z59\0\8c2..z59\0\8
+ ..controls z59\0\9c1 and z59\0\9c2..z59\0\9
+ ..controls z59\0\10c1 and z59\0\10c2..z59\0\10
+ --z59\0\11
+ ..controls z59\0\12c1 and z59\0\12c2..z59\0\12
+ ..controls z59\0\13c1 and z59\0\13c2..z59\0\13
+ ..controls z59\0\14c1 and z59\0\14c2..z59\0\14
+ ..controls z59\0\15c1 and z59\0\15c2..z59\0\15
+ ..controls z59\0\16c1 and z59\0\16c2..z59\0\16
+ --z59\0\17
+ --z59\0\18
+ --z59\0\19
+ ..controls z59\0\20c1 and z59\0\20c2..z59\0\20
+ ..controls z59\0\21c1 and z59\0\21c2..z59\0\21
+ --z59\0\22
+ --z59\0\23
+ ..controls z59\0\24c1 and z59\0\24c2..z59\0\24
+ ..controls z59\0\25c1 and z59\0\25c2..z59\0\25
+ --z59\0\26
+ --z59\0\27
+ ..controls z59\0\28c1 and z59\0\28c2..z59\0\28
+ ..controls z59\0\29c1 and z59\0\29c2..z59\0\29
+ --z59\0\30
+ ..controls z59\0\31c1 and z59\0\31c2..z59\0\31
+ ..controls z59\0\32c1 and z59\0\32c2..z59\0\32
+ --z59\0\33
+ ..controls z59\0\34c1 and z59\0\34c2..z59\0\34
+ ..controls z59\0\35c1 and z59\0\35c2..z59\0\35
+ ..controls z59\0\36c1 and z59\0\36c2..cycle;
+ proof_labels (
+ 59\0\0,
+ 59\0\1,
+ 59\0\2,
+ 59\0\3,
+ 59\0\4,
+ 59\0\5,
+ 59\0\6,
+ 59\0\7,
+ 59\0\8,
+ 59\0\9,
+ 59\0\10,
+ 59\0\11,
+ 59\0\12,
+ 59\0\13,
+ 59\0\14,
+ 59\0\15,
+ 59\0\16,
+ 59\0\17,
+ 59\0\18,
+ 59\0\19,
+ 59\0\20,
+ 59\0\21,
+ 59\0\22,
+ 59\0\23,
+ 59\0\24,
+ 59\0\25,
+ 59\0\26,
+ 59\0\27,
+ 59\0\28,
+ 59\0\29,
+ 59\0\30,
+ 59\0\31,
+ 59\0\32,
+ 59\0\33,
+ 59\0\34,
+ 59\0\35,
+ 59\0\36,
+);
+endchar;
+
+beginchar (TIB_SBA, 10.118u#, 6.745u#, 6.504u#);
+ "sba";
+ z60\0\0s = (0.964u,5.300u);
+ z60\0\0 = (2.168u,5.300u);
+ z60\0\1c1 = (1.543u,4.001u);
+ z60\0\1c2 = (0.752u,2.886u);
+ z60\0\1 = (0.482u,1.445u);
+ z60\0\2c1 = (1.126u,1.443u);
+ z60\0\2c2 = (1.776u,1.463u);
+ z60\0\2 = (2.409u,1.318u);
+ z60\0\3 = (4.818u,0.482u);
+ z60\0\4c1 = (4.047u,1.916u);
+ z60\0\4c2 = (3.260u,2.667u);
+ z60\0\4 = (1.686u,3.132u);
+ z60\0\5c1 = (1.936u,3.434u);
+ z60\0\5c2 = (2.099u,3.726u);
+ z60\0\5 = (2.522u,3.804u);
+ z60\0\6c1 = (3.423u,3.970u);
+ z60\0\6c2 = (5.745u,2.537u);
+ z60\0\6 = (6.504u,2.020u);
+ z60\0\7c1 = (7.131u,1.593u);
+ z60\0\7c2 = (7.748u,1.039u);
+ z60\0\7 = (8.431u,0.714u);
+ z60\0\8 = (9.176u,0.482u);
+ z60\0\9c1 = (9.154u,1.583u);
+ z60\0\9c2 = (9.068u,2.763u);
+ z60\0\9 = (9.176u,3.854u);
+ z60\0\10 = (9.597u,5.541u);
+ z60\0\11 = (9.597u,6.745u);
+ z60\0\12c1 = (8.867u,6.742u);
+ z60\0\12c2 = (7.235u,6.897u);
+ z60\0\12 = (7.702u,5.605u);
+ z60\0\13 = (8.418u,4.092u);
+ z60\0\14c1 = (8.680u,3.143u);
+ z60\0\14c2 = (8.672u,2.178u);
+ z60\0\14 = (8.672u,1.204u);
+ z60\0\15 = (6.504u,3.295u);
+ z60\0\16 = (4.095u,5.300u);
+ z60\0\17c1 = (5.301u,5.398u);
+ z60\0\17c2 = (5.576u,5.516u);
+ z60\0\17 = (5.782u,6.745u);
+ z60\0\18c1 = (4.844u,6.745u);
+ z60\0\18c2 = (1.968u,6.977u);
+ z60\0\18 = (1.348u,6.360u);
+ z60\0\19c1 = (1.043u,6.056u);
+ z60\0\19c2 = (1.030u,5.694u);
+ z60\1\0s = (2.650u,-1.445u);
+ z60\1\0 = (3.613u,-1.445u);
+ z60\1\1c1 = (2.887u,-3.075u);
+ z60\1\1c2 = (2.261u,-3.654u);
+ z60\1\1 = (2.168u,-5.541u);
+ z60\1\2 = (5.059u,-5.078u);
+ z60\1\3c1 = (6.657u,-5.072u);
+ z60\1\3c2 = (7.903u,-5.912u);
+ z60\1\3 = (9.406u,-6.263u);
+ z60\1\4 = (9.406u,-3.372u);
+ z60\1\5 = (9.625u,-1.686u);
+ z60\1\6 = (9.625u,0.241u);
+ z60\1\7c1 = (8.569u,0.241u);
+ z60\1\7c2 = (3.840u,0.416u);
+ z60\1\7 = (3.207u,-0.005u);
+ z60\1\8c1 = (2.687u,-0.352u);
+ z60\1\8c2 = (2.695u,-0.891u);
+ z60\2\0s = (8.672u,-1.204u);
+ z60\2\0 = (8.903u,-2.891u);
+ z60\2\1 = (8.903u,-5.300u);
+ z60\2\2c1 = (6.574u,-3.889u);
+ z60\2\2c2 = (5.793u,-3.854u);
+ z60\2\2 = (3.132u,-3.854u);
+ z60\2\3c1 = (4.156u,-0.643u);
+ z60\2\3c2 = (5.930u,-1.204u);
+ fill_or_unfill z60\0\0s
+ --z60\0\0
+ ..controls z60\0\1c1 and z60\0\1c2..z60\0\1
+ ..controls z60\0\2c1 and z60\0\2c2..z60\0\2
+ --z60\0\3
+ ..controls z60\0\4c1 and z60\0\4c2..z60\0\4
+ ..controls z60\0\5c1 and z60\0\5c2..z60\0\5
+ ..controls z60\0\6c1 and z60\0\6c2..z60\0\6
+ ..controls z60\0\7c1 and z60\0\7c2..z60\0\7
+ --z60\0\8
+ ..controls z60\0\9c1 and z60\0\9c2..z60\0\9
+ --z60\0\10
+ --z60\0\11
+ ..controls z60\0\12c1 and z60\0\12c2..z60\0\12
+ --z60\0\13
+ ..controls z60\0\14c1 and z60\0\14c2..z60\0\14
+ --z60\0\15
+ --z60\0\16
+ ..controls z60\0\17c1 and z60\0\17c2..z60\0\17
+ ..controls z60\0\18c1 and z60\0\18c2..z60\0\18
+ ..controls z60\0\19c1 and z60\0\19c2..cycle;
+ fill_or_unfill z60\1\0s
+ --z60\1\0
+ ..controls z60\1\1c1 and z60\1\1c2..z60\1\1
+ --z60\1\2
+ ..controls z60\1\3c1 and z60\1\3c2..z60\1\3
+ --z60\1\4
+ --z60\1\5
+ --z60\1\6
+ ..controls z60\1\7c1 and z60\1\7c2..z60\1\7
+ ..controls z60\1\8c1 and z60\1\8c2..cycle;
+ fill_or_unfill z60\2\0s
+ --z60\2\0
+ --z60\2\1
+ ..controls z60\2\2c1 and z60\2\2c2..z60\2\2
+ ..controls z60\2\3c1 and z60\2\3c2..cycle;
+ proof_labels (
+ 60\0\0,
+ 60\0\1,
+ 60\0\2,
+ 60\0\3,
+ 60\0\4,
+ 60\0\5,
+ 60\0\6,
+ 60\0\7,
+ 60\0\8,
+ 60\0\9,
+ 60\0\10,
+ 60\0\11,
+ 60\0\12,
+ 60\0\13,
+ 60\0\14,
+ 60\0\15,
+ 60\0\16,
+ 60\0\17,
+ 60\0\18,
+ 60\0\19,
+ 60\1\0,
+ 60\1\1,
+ 60\1\2,
+ 60\1\3,
+ 60\1\4,
+ 60\1\5,
+ 60\1\6,
+ 60\1\7,
+ 60\1\8,
+ 60\2\0,
+ 60\2\1,
+ 60\2\2,
+ 60\2\3,
+);
+endchar;
+
+beginchar (TIB_SMA, 10.359u#, 6.745u#, 8.190u#);
+ "sma";
+ z61\0\0s = (0.964u,5.300u);
+ z61\0\0 = (2.168u,5.300u);
+ z61\0\1c1 = (1.543u,4.001u);
+ z61\0\1c2 = (0.752u,2.886u);
+ z61\0\1 = (0.482u,1.445u);
+ z61\0\2c1 = (1.127u,1.443u);
+ z61\0\2c2 = (1.775u,1.461u);
+ z61\0\2 = (2.409u,1.319u);
+ z61\0\3 = (4.336u,0.723u);
+ z61\0\4 = (3.372u,0.509u);
+ z61\0\5c1 = (2.686u,0.434u);
+ z61\0\5c2 = (1.937u,0.587u);
+ z61\0\5 = (1.487u,-0.076u);
+ z61\0\6c1 = (1.300u,-0.350u);
+ z61\0\6c2 = (1.273u,-0.652u);
+ z61\0\6 = (1.204u,-0.964u);
+ z61\0\7c1 = (2.342u,-1.148u);
+ z61\0\7c2 = (2.624u,-1.373u);
+ z61\0\7 = (3.132u,-2.409u);
+ z61\0\8c1 = (2.727u,-2.433u);
+ z61\0\8c2 = (2.321u,-2.431u);
+ z61\0\8 = (1.937u,-2.587u);
+ z61\0\9c1 = (-0.426u,-3.544u);
+ z61\0\9c2 = (0.504u,-7.080u);
+ z61\0\9 = (3.127u,-6.709u);
+ z61\0\10c1 = (3.645u,-6.636u);
+ z61\0\10c2 = (3.997u,-6.462u);
+ z61\0\10 = (4.252u,-5.987u);
+ z61\0\11c1 = (4.523u,-5.485u);
+ z61\0\11c2 = (4.501u,-4.666u);
+ z61\0\11 = (4.577u,-4.095u);
+ z61\0\12c1 = (5.970u,-4.624u);
+ z61\0\12c2 = (7.924u,-5.617u);
+ z61\0\12 = (8.631u,-6.987u);
+ z61\0\13c1 = (8.795u,-7.306u);
+ z61\0\13c2 = (8.840u,-7.607u);
+ z61\0\13 = (8.913u,-7.950u);
+ z61\0\14 = (9.636u,-7.950u);
+ z61\0\15 = (9.426u,-6.263u);
+ z61\0\16c1 = (9.347u,-5.336u);
+ z61\0\16c2 = (9.351u,-4.302u);
+ z61\0\16 = (9.426u,-3.372u);
+ z61\0\17 = (9.823u,-0.726u);
+ z61\0\18c1 = (9.840u,0.122u);
+ z61\0\18c2 = (9.504u,0.299u);
+ z61\0\18 = (9.224u,1.004u);
+ z61\0\19c1 = (9.164u,1.392u);
+ z61\0\19c2 = (9.162u,1.767u);
+ z61\0\19 = (9.224u,2.168u);
+ z61\0\20c1 = (9.144u,2.803u);
+ z61\0\20c2 = (9.130u,3.467u);
+ z61\0\20 = (9.224u,4.095u);
+ z61\0\21 = (9.597u,5.541u);
+ z61\0\22 = (9.597u,6.745u);
+ z61\0\23c1 = (8.867u,6.742u);
+ z61\0\23c2 = (7.235u,6.897u);
+ z61\0\23 = (7.702u,5.605u);
+ z61\0\24 = (8.418u,4.092u);
+ z61\0\25c1 = (8.680u,3.143u);
+ z61\0\25c2 = (8.672u,2.178u);
+ z61\0\25 = (8.672u,1.204u);
+ z61\0\26 = (6.504u,3.295u);
+ z61\0\27 = (4.095u,5.300u);
+ z61\0\28c1 = (5.301u,5.398u);
+ z61\0\28c2 = (5.576u,5.516u);
+ z61\0\28 = (5.782u,6.745u);
+ z61\0\29c1 = (4.844u,6.745u);
+ z61\0\29c2 = (1.968u,6.977u);
+ z61\0\29 = (1.348u,6.360u);
+ z61\0\30c1 = (1.043u,6.056u);
+ z61\0\30c2 = (1.030u,5.694u);
+ z61\1\0s = (8.431u,0.482u);
+ z61\1\0c1 = (8.110u,0.294u);
+ z61\1\0c2 = (7.779u,0.191u);
+ z61\1\0 = (7.746u,-0.252u);
+ z61\1\1c1 = (7.716u,-0.639u);
+ z61\1\1c2 = (8.276u,-1.454u);
+ z61\1\1 = (8.399u,-1.936u);
+ z61\1\2c1 = (8.678u,-3.039u);
+ z61\1\2c2 = (8.672u,-4.172u);
+ z61\1\2 = (8.672u,-5.300u);
+ z61\1\3c1 = (8.253u,-5.053u);
+ z61\1\3c2 = (7.875u,-4.824u);
+ z61\1\3 = (7.508u,-4.498u);
+ z61\1\4 = (6.242u,-3.299u);
+ z61\1\5c1 = (5.733u,-2.933u);
+ z61\1\5c2 = (5.146u,-2.767u);
+ z61\1\5 = (4.589u,-2.501u);
+ z61\1\6c1 = (4.229u,-2.329u);
+ z61\1\6c2 = (3.605u,-2.038u);
+ z61\1\6 = (3.784u,-1.523u);
+ z61\1\7c1 = (4.074u,-0.687u);
+ z61\1\7c2 = (5.562u,-1.333u);
+ z61\1\7 = (6.263u,-0.206u);
+ z61\1\8c1 = (6.404u,0.022u);
+ z61\1\8c2 = (6.430u,0.237u);
+ z61\1\8 = (6.504u,0.482u);
+ z61\1\9c1 = (6.071u,0.487u);
+ z61\1\9c2 = (5.503u,0.462u);
+ z61\1\9 = (5.099u,0.626u);
+ z61\1\10c1 = (4.509u,0.866u);
+ z61\1\10c2 = (4.065u,1.478u);
+ z61\1\10 = (3.604u,1.903u);
+ z61\1\11c1 = (2.973u,2.486u);
+ z61\1\11c2 = (2.458u,2.780u);
+ z61\1\11 = (1.686u,3.132u);
+ z61\1\12c1 = (1.852u,3.409u);
+ z61\1\12c2 = (1.910u,3.631u);
+ z61\1\12 = (2.239u,3.777u);
+ z61\1\13c1 = (3.410u,4.297u);
+ z61\1\13c2 = (6.801u,2.096u);
+ z61\1\13 = (7.682u,1.322u);
+ z61\1\14c1 = (7.981u,1.059u);
+ z61\1\14c2 = (8.188u,0.791u);
+ z61\2\0s = (2.431u,-3.730u);
+ z61\2\0c1 = (2.675u,-3.724u);
+ z61\2\0c2 = (2.828u,-3.649u);
+ z61\2\0 = (3.097u,-3.730u);
+ z61\2\1c1 = (4.278u,-3.921u);
+ z61\2\1c2 = (4.239u,-5.654u);
+ z61\2\1 = (3.097u,-6.032u);
+ z61\2\2c1 = (1.969u,-6.411u);
+ z61\2\2c2 = (1.109u,-5.114u);
+ z61\2\2 = (1.865u,-4.171u);
+ z61\2\3c1 = (2.045u,-3.947u);
+ z61\2\3c2 = (2.205u,-3.905u);
+ z61\3\0s = (8.913u,-5.300u);
+ z61\3\0 = (8.913u,-5.541u);
+ z61\3\1 = (8.672u,-5.300u);
+ fill_or_unfill z61\0\0s
+ --z61\0\0
+ ..controls z61\0\1c1 and z61\0\1c2..z61\0\1
+ ..controls z61\0\2c1 and z61\0\2c2..z61\0\2
+ --z61\0\3
+ --z61\0\4
+ ..controls z61\0\5c1 and z61\0\5c2..z61\0\5
+ ..controls z61\0\6c1 and z61\0\6c2..z61\0\6
+ ..controls z61\0\7c1 and z61\0\7c2..z61\0\7
+ ..controls z61\0\8c1 and z61\0\8c2..z61\0\8
+ ..controls z61\0\9c1 and z61\0\9c2..z61\0\9
+ ..controls z61\0\10c1 and z61\0\10c2..z61\0\10
+ ..controls z61\0\11c1 and z61\0\11c2..z61\0\11
+ ..controls z61\0\12c1 and z61\0\12c2..z61\0\12
+ ..controls z61\0\13c1 and z61\0\13c2..z61\0\13
+ --z61\0\14
+ --z61\0\15
+ ..controls z61\0\16c1 and z61\0\16c2..z61\0\16
+ --z61\0\17
+ ..controls z61\0\18c1 and z61\0\18c2..z61\0\18
+ ..controls z61\0\19c1 and z61\0\19c2..z61\0\19
+ ..controls z61\0\20c1 and z61\0\20c2..z61\0\20
+ --z61\0\21
+ --z61\0\22
+ ..controls z61\0\23c1 and z61\0\23c2..z61\0\23
+ --z61\0\24
+ ..controls z61\0\25c1 and z61\0\25c2..z61\0\25
+ --z61\0\26
+ --z61\0\27
+ ..controls z61\0\28c1 and z61\0\28c2..z61\0\28
+ ..controls z61\0\29c1 and z61\0\29c2..z61\0\29
+ ..controls z61\0\30c1 and z61\0\30c2..cycle;
+ fill_or_unfill z61\1\0s
+ ..controls z61\1\0c1 and z61\1\0c2..z61\1\0
+ ..controls z61\1\1c1 and z61\1\1c2..z61\1\1
+ ..controls z61\1\2c1 and z61\1\2c2..z61\1\2
+ ..controls z61\1\3c1 and z61\1\3c2..z61\1\3
+ --z61\1\4
+ ..controls z61\1\5c1 and z61\1\5c2..z61\1\5
+ ..controls z61\1\6c1 and z61\1\6c2..z61\1\6
+ ..controls z61\1\7c1 and z61\1\7c2..z61\1\7
+ ..controls z61\1\8c1 and z61\1\8c2..z61\1\8
+ ..controls z61\1\9c1 and z61\1\9c2..z61\1\9
+ ..controls z61\1\10c1 and z61\1\10c2..z61\1\10
+ ..controls z61\1\11c1 and z61\1\11c2..z61\1\11
+ ..controls z61\1\12c1 and z61\1\12c2..z61\1\12
+ ..controls z61\1\13c1 and z61\1\13c2..z61\1\13
+ ..controls z61\1\14c1 and z61\1\14c2..cycle;
+ fill_or_unfill z61\2\0s
+ ..controls z61\2\0c1 and z61\2\0c2..z61\2\0
+ ..controls z61\2\1c1 and z61\2\1c2..z61\2\1
+ ..controls z61\2\2c1 and z61\2\2c2..z61\2\2
+ ..controls z61\2\3c1 and z61\2\3c2..cycle;
+ fill_or_unfill z61\3\0s
+ --z61\3\0
+ --z61\3\1
+ --cycle;
+ proof_labels (
+ 61\0\0,
+ 61\0\1,
+ 61\0\2,
+ 61\0\3,
+ 61\0\4,
+ 61\0\5,
+ 61\0\6,
+ 61\0\7,
+ 61\0\8,
+ 61\0\9,
+ 61\0\10,
+ 61\0\11,
+ 61\0\12,
+ 61\0\13,
+ 61\0\14,
+ 61\0\15,
+ 61\0\16,
+ 61\0\17,
+ 61\0\18,
+ 61\0\19,
+ 61\0\20,
+ 61\0\21,
+ 61\0\22,
+ 61\0\23,
+ 61\0\24,
+ 61\0\25,
+ 61\0\26,
+ 61\0\27,
+ 61\0\28,
+ 61\0\29,
+ 61\0\30,
+ 61\1\0,
+ 61\1\1,
+ 61\1\2,
+ 61\1\3,
+ 61\1\4,
+ 61\1\5,
+ 61\1\6,
+ 61\1\7,
+ 61\1\8,
+ 61\1\9,
+ 61\1\10,
+ 61\1\11,
+ 61\1\12,
+ 61\1\13,
+ 61\1\14,
+ 61\2\0,
+ 61\2\1,
+ 61\2\2,
+ 61\2\3,
+ 61\3\0,
+ 61\3\1,
+ 61\3\2,
+);
+endchar;
+
+beginchar (TIB_STSA, 12.768u#, 6.745u#, 6.504u#);
+ "stsa";
+ z62\0\0s = (0.964u,5.300u);
+ z62\0\0 = (2.409u,5.300u);
+ z62\0\1c1 = (1.391u,4.092u);
+ z62\0\1c2 = (0.596u,3.064u);
+ z62\0\1 = (0.482u,1.488u);
+ z62\0\2 = (2.409u,1.488u);
+ z62\0\3c1 = (3.239u,1.440u);
+ z62\0\3c2 = (4.021u,0.967u);
+ z62\0\3 = (4.818u,0.723u);
+ z62\0\4c1 = (4.322u,2.406u);
+ z62\0\4c2 = (3.223u,2.835u);
+ z62\0\4 = (1.686u,3.372u);
+ z62\0\5c1 = (2.021u,3.542u);
+ z62\0\5c2 = (2.260u,3.703u);
+ z62\0\5 = (2.650u,3.739u);
+ z62\0\6c1 = (3.271u,3.798u);
+ z62\0\6c2 = (4.015u,3.439u);
+ z62\0\6 = (4.577u,3.199u);
+ z62\0\7c1 = (6.109u,2.545u);
+ z62\0\7c2 = (7.382u,1.783u);
+ z62\0\7 = (8.672u,0.723u);
+ z62\0\8c1 = (7.755u,0.723u);
+ z62\0\8c2 = (5.598u,0.918u);
+ z62\0\8 = (4.919u,0.338u);
+ z62\0\9c1 = (4.572u,0.040u);
+ z62\0\9c2 = (4.480u,-0.315u);
+ z62\0\9 = (4.336u,-0.723u);
+ z62\0\10c1 = (5.645u,-0.723u);
+ z62\0\10c2 = (6.909u,-0.652u);
+ z62\0\10 = (8.190u,-0.964u);
+ z62\0\11c1 = (7.289u,-2.140u);
+ z62\0\11c2 = (6.436u,-3.066u);
+ z62\0\11 = (4.818u,-2.797u);
+ z62\0\12 = (3.372u,-2.409u);
+ z62\0\13 = (4.323u,-3.876u);
+ z62\0\14c1 = (4.746u,-4.579u);
+ z62\0\14c2 = (4.881u,-5.288u);
+ z62\0\14 = (5.592u,-5.808u);
+ z62\0\15c1 = (6.402u,-6.401u);
+ z62\0\15c2 = (8.988u,-6.459u);
+ z62\0\15 = (9.863u,-5.980u);
+ z62\0\16c1 = (10.334u,-5.723u);
+ z62\0\16c2 = (10.647u,-5.344u);
+ z62\0\16 = (10.760u,-4.814u);
+ z62\0\17c1 = (11.006u,-3.663u);
+ z62\0\17c2 = (10.090u,-2.956u);
+ z62\0\17 = (9.447u,-2.168u);
+ z62\0\18c1 = (9.129u,-1.778u);
+ z62\0\18c2 = (8.909u,-1.404u);
+ z62\0\18 = (8.672u,-0.964u);
+ z62\0\19c1 = (10.180u,-0.596u);
+ z62\0\19c2 = (11.691u,-0.888u);
+ z62\0\19 = (10.600u,1.204u);
+ z62\0\20c1 = (12.362u,1.743u);
+ z62\0\20c2 = (12.280u,1.805u);
+ z62\0\20 = (12.286u,3.613u);
+ z62\0\21c1 = (11.521u,3.306u);
+ z62\0\21c2 = (10.204u,2.816u);
+ z62\0\21 = (10.083u,1.902u);
+ z62\0\22c1 = (9.997u,1.596u);
+ z62\0\22c2 = (10.083u,1.044u);
+ z62\0\22 = (10.083u,0.723u);
+ z62\0\23 = (9.448u,0.723u);
+ z62\0\24c1 = (9.395u,1.681u);
+ z62\0\24c2 = (9.342u,2.666u);
+ z62\0\24 = (9.448u,3.613u);
+ z62\0\25c1 = (9.605u,4.231u);
+ z62\0\25c2 = (10.096u,5.471u);
+ z62\0\25 = (10.012u,5.987u);
+ z62\0\26c1 = (9.948u,6.376u);
+ z62\0\26c2 = (9.735u,6.571u);
+ z62\0\26 = (9.361u,6.632u);
+ z62\0\27c1 = (9.119u,6.726u);
+ z62\0\27c2 = (8.735u,6.709u);
+ z62\0\27 = (8.534u,6.632u);
+ z62\0\28c1 = (7.638u,6.181u);
+ z62\0\28c2 = (8.409u,4.774u);
+ z62\0\28 = (8.534u,4.095u);
+ z62\0\29c1 = (8.737u,3.309u);
+ z62\0\29c2 = (8.848u,2.488u);
+ z62\0\29 = (8.913u,1.686u);
+ z62\0\30c1 = (7.618u,2.981u);
+ z62\0\30c2 = (6.358u,4.468u);
+ z62\0\30 = (4.577u,5.059u);
+ z62\0\31c1 = (5.530u,5.496u);
+ z62\0\31c2 = (5.862u,5.479u);
+ z62\0\31 = (6.263u,6.504u);
+ z62\0\32c1 = (5.241u,6.795u);
+ z62\0\32c2 = (2.368u,7.021u);
+ z62\0\32 = (1.521u,6.326u);
+ z62\0\33c1 = (1.159u,6.031u);
+ z62\0\33c2 = (1.094u,5.717u);
+ z62\1\0s = (9.877u,-5.541u);
+ z62\1\0c1 = (7.650u,-6.082u);
+ z62\1\0c2 = (6.206u,-5.697u);
+ z62\1\0 = (6.022u,-3.132u);
+ z62\1\1c1 = (6.450u,-3.060u);
+ z62\1\1c2 = (7.275u,-2.833u);
+ z62\1\1 = (7.668u,-2.917u);
+ z62\1\2c1 = (8.648u,-3.128u);
+ z62\1\2c2 = (9.578u,-4.664u);
+ fill_or_unfill z62\0\0s
+ --z62\0\0
+ ..controls z62\0\1c1 and z62\0\1c2..z62\0\1
+ --z62\0\2
+ ..controls z62\0\3c1 and z62\0\3c2..z62\0\3
+ ..controls z62\0\4c1 and z62\0\4c2..z62\0\4
+ ..controls z62\0\5c1 and z62\0\5c2..z62\0\5
+ ..controls z62\0\6c1 and z62\0\6c2..z62\0\6
+ ..controls z62\0\7c1 and z62\0\7c2..z62\0\7
+ ..controls z62\0\8c1 and z62\0\8c2..z62\0\8
+ ..controls z62\0\9c1 and z62\0\9c2..z62\0\9
+ ..controls z62\0\10c1 and z62\0\10c2..z62\0\10
+ ..controls z62\0\11c1 and z62\0\11c2..z62\0\11
+ --z62\0\12
+ --z62\0\13
+ ..controls z62\0\14c1 and z62\0\14c2..z62\0\14
+ ..controls z62\0\15c1 and z62\0\15c2..z62\0\15
+ ..controls z62\0\16c1 and z62\0\16c2..z62\0\16
+ ..controls z62\0\17c1 and z62\0\17c2..z62\0\17
+ ..controls z62\0\18c1 and z62\0\18c2..z62\0\18
+ ..controls z62\0\19c1 and z62\0\19c2..z62\0\19
+ ..controls z62\0\20c1 and z62\0\20c2..z62\0\20
+ ..controls z62\0\21c1 and z62\0\21c2..z62\0\21
+ ..controls z62\0\22c1 and z62\0\22c2..z62\0\22
+ --z62\0\23
+ ..controls z62\0\24c1 and z62\0\24c2..z62\0\24
+ ..controls z62\0\25c1 and z62\0\25c2..z62\0\25
+ ..controls z62\0\26c1 and z62\0\26c2..z62\0\26
+ ..controls z62\0\27c1 and z62\0\27c2..z62\0\27
+ ..controls z62\0\28c1 and z62\0\28c2..z62\0\28
+ ..controls z62\0\29c1 and z62\0\29c2..z62\0\29
+ ..controls z62\0\30c1 and z62\0\30c2..z62\0\30
+ ..controls z62\0\31c1 and z62\0\31c2..z62\0\31
+ ..controls z62\0\32c1 and z62\0\32c2..z62\0\32
+ ..controls z62\0\33c1 and z62\0\33c2..cycle;
+ fill_or_unfill z62\1\0s
+ ..controls z62\1\0c1 and z62\1\0c2..z62\1\0
+ ..controls z62\1\1c1 and z62\1\1c2..z62\1\1
+ ..controls z62\1\2c1 and z62\1\2c2..cycle;
+ proof_labels (
+ 62\0\0,
+ 62\0\1,
+ 62\0\2,
+ 62\0\3,
+ 62\0\4,
+ 62\0\5,
+ 62\0\6,
+ 62\0\7,
+ 62\0\8,
+ 62\0\9,
+ 62\0\10,
+ 62\0\11,
+ 62\0\12,
+ 62\0\13,
+ 62\0\14,
+ 62\0\15,
+ 62\0\16,
+ 62\0\17,
+ 62\0\18,
+ 62\0\19,
+ 62\0\20,
+ 62\0\21,
+ 62\0\22,
+ 62\0\23,
+ 62\0\24,
+ 62\0\25,
+ 62\0\26,
+ 62\0\27,
+ 62\0\28,
+ 62\0\29,
+ 62\0\30,
+ 62\0\31,
+ 62\0\32,
+ 62\0\33,
+ 62\1\0,
+ 62\1\1,
+ 62\1\2,
+);
+endchar;
+
+beginchar (TIB_KWA, 10.600u#, 6.745u#, 6.263u#);
+ "kwa";
+ z63\0\0s = (1.445u,5.059u);
+ z63\0\0c1 = (1.105u,3.885u);
+ z63\0\0c2 = (0.636u,2.650u);
+ z63\0\0 = (0.482u,1.445u);
+ z63\0\1c1 = (0.686u,1.573u);
+ z63\0\1c2 = (0.836u,1.624u);
+ z63\0\1 = (1.007u,1.817u);
+ z63\0\2c1 = (1.757u,2.665u);
+ z63\0\2c2 = (1.748u,4.202u);
+ z63\0\2 = (2.715u,4.910u);
+ z63\0\3c1 = (3.058u,5.161u);
+ z63\0\3c2 = (3.429u,5.231u);
+ z63\0\3 = (3.820u,5.040u);
+ z63\0\4c1 = (5.074u,4.424u);
+ z63\0\4c2 = (4.818u,1.209u);
+ z63\0\4 = (4.818u,0.000u);
+ z63\0\5 = (5.300u,0.000u);
+ z63\0\6c1 = (5.376u,0.946u);
+ z63\0\6c2 = (5.741u,4.076u);
+ z63\0\6 = (6.247u,4.742u);
+ z63\0\7c1 = (6.826u,5.504u);
+ z63\0\7c2 = (8.082u,5.431u);
+ z63\0\7 = (8.495u,4.542u);
+ z63\0\8c1 = (8.819u,3.846u);
+ z63\0\8c2 = (8.875u,2.018u);
+ z63\0\8 = (8.934u,1.204u);
+ z63\0\9 = (9.113u,-0.241u);
+ z63\0\10c1 = (9.245u,-1.956u);
+ z63\0\10c2 = (8.477u,-2.126u);
+ z63\0\10 = (7.227u,-2.977u);
+ z63\0\11 = (5.782u,-4.095u);
+ z63\0\12c1 = (6.837u,-5.338u);
+ z63\0\12c2 = (8.013u,-5.932u);
+ z63\0\12 = (9.657u,-6.022u);
+ z63\0\13 = (9.657u,2.891u);
+ z63\0\14 = (9.657u,4.336u);
+ z63\0\15c1 = (9.792u,4.913u);
+ z63\0\15c2 = (10.253u,5.835u);
+ z63\0\15 = (9.867u,6.360u);
+ z63\0\16c1 = (9.518u,6.836u);
+ z63\0\16c2 = (8.480u,6.744u);
+ z63\0\16 = (7.950u,6.707u);
+ z63\0\17c1 = (6.993u,6.747u);
+ z63\0\17c2 = (1.989u,6.815u);
+ z63\0\17 = (1.459u,6.707u);
+ z63\0\18c1 = (0.876u,6.510u);
+ z63\0\18c2 = (0.414u,6.042u);
+ z63\0\18 = (0.878u,5.464u);
+ z63\0\19c1 = (1.036u,5.267u);
+ z63\0\19c2 = (1.245u,5.189u);
+ z63\1\0s = (8.913u,-2.650u);
+ z63\1\0c1 = (9.211u,-3.699u);
+ z63\1\0c2 = (9.154u,-4.701u);
+ z63\1\0 = (9.154u,-5.782u);
+ z63\1\1c1 = (8.268u,-5.380u);
+ z63\1\1c2 = (7.539u,-4.893u);
+ z63\1\1 = (6.745u,-4.336u);
+ z63\1\2 = (6.745u,-3.854u);
+ z63\1\3c1 = (7.457u,-3.391u);
+ z63\1\3c2 = (8.137u,-2.997u);
+ fill_or_unfill z63\0\0s
+ ..controls z63\0\0c1 and z63\0\0c2..z63\0\0
+ ..controls z63\0\1c1 and z63\0\1c2..z63\0\1
+ ..controls z63\0\2c1 and z63\0\2c2..z63\0\2
+ ..controls z63\0\3c1 and z63\0\3c2..z63\0\3
+ ..controls z63\0\4c1 and z63\0\4c2..z63\0\4
+ --z63\0\5
+ ..controls z63\0\6c1 and z63\0\6c2..z63\0\6
+ ..controls z63\0\7c1 and z63\0\7c2..z63\0\7
+ ..controls z63\0\8c1 and z63\0\8c2..z63\0\8
+ --z63\0\9
+ ..controls z63\0\10c1 and z63\0\10c2..z63\0\10
+ --z63\0\11
+ ..controls z63\0\12c1 and z63\0\12c2..z63\0\12
+ --z63\0\13
+ --z63\0\14
+ ..controls z63\0\15c1 and z63\0\15c2..z63\0\15
+ ..controls z63\0\16c1 and z63\0\16c2..z63\0\16
+ ..controls z63\0\17c1 and z63\0\17c2..z63\0\17
+ ..controls z63\0\18c1 and z63\0\18c2..z63\0\18
+ ..controls z63\0\19c1 and z63\0\19c2..cycle;
+ fill_or_unfill z63\1\0s
+ ..controls z63\1\0c1 and z63\1\0c2..z63\1\0
+ ..controls z63\1\1c1 and z63\1\1c2..z63\1\1
+ --z63\1\2
+ ..controls z63\1\3c1 and z63\1\3c2..cycle;
+ proof_labels (
+ 63\0\0,
+ 63\0\1,
+ 63\0\2,
+ 63\0\3,
+ 63\0\4,
+ 63\0\5,
+ 63\0\6,
+ 63\0\7,
+ 63\0\8,
+ 63\0\9,
+ 63\0\10,
+ 63\0\11,
+ 63\0\12,
+ 63\0\13,
+ 63\0\14,
+ 63\0\15,
+ 63\0\16,
+ 63\0\17,
+ 63\0\18,
+ 63\0\19,
+ 63\1\0,
+ 63\1\1,
+ 63\1\2,
+ 63\1\3,
+);
+endchar;
+
+beginchar (TIB_KHWA, 10.600u#, 6.745u#, 6.986u#);
+ "khwa";
+ z64\0\0s = (1.445u,-6.745u);
+ z64\0\0 = (1.927u,-6.745u);
+ z64\0\1 = (1.927u,2.650u);
+ z64\0\2c1 = (1.928u,3.210u);
+ z64\0\2c2 = (1.875u,4.035u);
+ z64\0\2 = (2.173u,4.523u);
+ z64\0\3c1 = (2.610u,5.238u);
+ z64\0\3c2 = (4.094u,5.580u);
+ z64\0\3 = (4.458u,4.644u);
+ z64\0\4c1 = (4.619u,4.229u);
+ z64\0\4c2 = (3.802u,2.261u);
+ z64\0\4 = (3.651u,1.686u);
+ z64\0\5c1 = (3.502u,1.119u);
+ z64\0\5c2 = (3.421u,0.583u);
+ z64\0\5 = (3.372u,0.000u);
+ z64\0\6 = (5.059u,0.590u);
+ z64\0\7c1 = (6.294u,0.894u);
+ z64\0\7c2 = (8.202u,0.750u);
+ z64\0\7 = (9.077u,-0.275u);
+ z64\0\8c1 = (9.432u,-0.691u);
+ z64\0\8c2 = (9.613u,-1.138u);
+ z64\0\8 = (9.376u,-1.664u);
+ z64\0\9c1 = (9.056u,-2.375u);
+ z64\0\9c2 = (7.867u,-2.981u);
+ z64\0\9 = (7.238u,-3.428u);
+ z64\0\10c1 = (6.843u,-3.708u);
+ z64\0\10c2 = (6.578u,-3.976u);
+ z64\0\10 = (6.263u,-4.336u);
+ z64\0\11 = (10.118u,-6.504u);
+ z64\0\12 = (10.118u,4.577u);
+ z64\0\13c1 = (10.114u,5.060u);
+ z64\0\13c2 = (10.147u,5.774u);
+ z64\0\13 = (9.872u,6.188u);
+ z64\0\14c1 = (9.426u,6.856u);
+ z64\0\14c2 = (8.410u,6.744u);
+ z64\0\14 = (7.709u,6.745u);
+ z64\0\15 = (2.891u,6.745u);
+ z64\0\16c1 = (2.223u,6.744u);
+ z64\0\16c2 = (1.138u,6.852u);
+ z64\0\16 = (0.737u,6.188u);
+ z64\0\17c1 = (0.391u,5.613u);
+ z64\0\17c2 = (0.993u,3.643u);
+ z64\0\17 = (1.177u,2.891u);
+ z64\0\18 = (1.177u,1.204u);
+ z64\0\19 = (1.177u,-1.445u);
+ z64\0\20 = (1.445u,-4.095u);
+ z64\1\0s = (9.877u,0.482u);
+ z64\1\0 = (7.950u,1.633u);
+ z64\1\1c1 = (6.841u,2.260u);
+ z64\1\1c2 = (5.566u,2.440u);
+ z64\1\1 = (4.336u,2.168u);
+ z64\1\2c1 = (4.750u,3.907u);
+ z64\1\2c2 = (5.716u,5.395u);
+ z64\1\2 = (7.708u,5.282u);
+ z64\1\3c1 = (8.219u,5.253u);
+ z64\1\3c2 = (8.614u,5.161u);
+ z64\1\3 = (8.949u,4.742u);
+ z64\1\4c1 = (9.505u,4.046u);
+ z64\1\4c2 = (9.856u,1.416u);
+ z64\2\0s = (9.636u,-2.650u);
+ z64\2\0 = (9.636u,-5.541u);
+ z64\2\1 = (7.227u,-4.336u);
+ z64\2\2c1 = (7.953u,-3.504u);
+ z64\2\2c2 = (8.621u,-3.074u);
+ fill_or_unfill z64\0\0s
+ --z64\0\0
+ --z64\0\1
+ ..controls z64\0\2c1 and z64\0\2c2..z64\0\2
+ ..controls z64\0\3c1 and z64\0\3c2..z64\0\3
+ ..controls z64\0\4c1 and z64\0\4c2..z64\0\4
+ ..controls z64\0\5c1 and z64\0\5c2..z64\0\5
+ --z64\0\6
+ ..controls z64\0\7c1 and z64\0\7c2..z64\0\7
+ ..controls z64\0\8c1 and z64\0\8c2..z64\0\8
+ ..controls z64\0\9c1 and z64\0\9c2..z64\0\9
+ ..controls z64\0\10c1 and z64\0\10c2..z64\0\10
+ --z64\0\11
+ --z64\0\12
+ ..controls z64\0\13c1 and z64\0\13c2..z64\0\13
+ ..controls z64\0\14c1 and z64\0\14c2..z64\0\14
+ --z64\0\15
+ ..controls z64\0\16c1 and z64\0\16c2..z64\0\16
+ ..controls z64\0\17c1 and z64\0\17c2..z64\0\17
+ --z64\0\18
+ --z64\0\19
+ --z64\0\20
+ --cycle;
+ fill_or_unfill z64\1\0s
+ --z64\1\0
+ ..controls z64\1\1c1 and z64\1\1c2..z64\1\1
+ ..controls z64\1\2c1 and z64\1\2c2..z64\1\2
+ ..controls z64\1\3c1 and z64\1\3c2..z64\1\3
+ ..controls z64\1\4c1 and z64\1\4c2..cycle;
+ fill_or_unfill z64\2\0s
+ --z64\2\0
+ --z64\2\1
+ ..controls z64\2\2c1 and z64\2\2c2..cycle;
+ proof_labels (
+ 64\0\0,
+ 64\0\1,
+ 64\0\2,
+ 64\0\3,
+ 64\0\4,
+ 64\0\5,
+ 64\0\6,
+ 64\0\7,
+ 64\0\8,
+ 64\0\9,
+ 64\0\10,
+ 64\0\11,
+ 64\0\12,
+ 64\0\13,
+ 64\0\14,
+ 64\0\15,
+ 64\0\16,
+ 64\0\17,
+ 64\0\18,
+ 64\0\19,
+ 64\0\20,
+ 64\0\21,
+ 64\1\0,
+ 64\1\1,
+ 64\1\2,
+ 64\1\3,
+ 64\1\4,
+ 64\2\0,
+ 64\2\1,
+ 64\2\2,
+);
+endchar;
+
+beginchar (TIB_GWA, 11.081u#, 6.745u#, 6.745u#);
+ "gwa";
+ z65\0\0s = (0.964u,5.300u);
+ z65\0\0 = (1.927u,5.059u);
+ z65\0\1c1 = (1.563u,4.416u);
+ z65\0\1c2 = (-0.036u,1.577u);
+ z65\0\1 = (1.043u,1.088u);
+ z65\0\2c1 = (1.516u,0.932u);
+ z65\0\2c2 = (3.466u,1.402u);
+ z65\0\2 = (4.576u,1.088u);
+ z65\0\3c1 = (5.721u,0.683u);
+ z65\0\3c2 = (5.859u,-0.140u);
+ z65\0\3 = (6.745u,-0.723u);
+ z65\0\4c1 = (6.745u,0.540u);
+ z65\0\4c2 = (6.388u,4.461u);
+ z65\0\4 = (7.742u,5.018u);
+ z65\0\5c1 = (7.966u,5.111u);
+ z65\0\5c2 = (8.173u,5.112u);
+ z65\0\5 = (8.397u,5.018u);
+ z65\0\6c1 = (9.474u,4.569u);
+ z65\0\6c2 = (9.101u,2.188u);
+ z65\0\6 = (9.195u,1.204u);
+ z65\0\7c1 = (9.263u,0.488u);
+ z65\0\7c2 = (9.635u,-1.021u);
+ z65\0\7 = (9.349u,-1.642u);
+ z65\0\8c1 = (9.040u,-2.314u);
+ z65\0\8c2 = (6.960u,-3.557u);
+ z65\0\8 = (6.263u,-4.095u);
+ z65\0\9c1 = (6.974u,-4.902u);
+ z65\0\9c2 = (7.522u,-5.112u);
+ z65\0\9 = (8.431u,-5.621u);
+ z65\0\10 = (10.118u,-6.504u);
+ z65\0\11 = (10.118u,1.204u);
+ z65\0\12 = (10.577u,5.059u);
+ z65\0\13c1 = (10.594u,5.384u);
+ z65\0\13c2 = (10.600u,5.891u);
+ z65\0\13 = (10.455u,6.188u);
+ z65\0\14c1 = (10.118u,6.879u);
+ z65\0\14c2 = (9.075u,6.744u);
+ z65\0\14 = (8.431u,6.745u);
+ z65\0\15c1 = (7.255u,6.747u);
+ z65\0\15c2 = (2.239u,6.940u);
+ z65\0\15 = (1.521u,6.462u);
+ z65\0\16c1 = (1.074u,6.165u);
+ z65\0\16c2 = (1.046u,5.780u);
+ z65\1\0s = (6.022u,1.204u);
+ z65\1\0c1 = (3.968u,2.384u);
+ z65\1\0c2 = (3.971u,2.868u);
+ z65\1\0 = (1.445u,2.891u);
+ z65\1\1c1 = (1.956u,4.429u);
+ z65\1\1c2 = (2.833u,5.424u);
+ z65\1\1 = (4.573u,5.271u);
+ z65\1\2c1 = (5.040u,5.229u);
+ z65\1\2c2 = (5.410u,5.141u);
+ z65\1\2 = (5.665u,4.714u);
+ z65\1\3c1 = (6.091u,4.000u);
+ z65\1\3c2 = (6.022u,2.066u);
+ z65\2\0s = (9.636u,-2.650u);
+ z65\2\0 = (9.636u,-5.541u);
+ z65\2\1 = (6.986u,-4.336u);
+ z65\2\2c1 = (7.784u,-3.593u);
+ z65\2\2c2 = (8.616u,-3.040u);
+ fill_or_unfill z65\0\0s
+ --z65\0\0
+ ..controls z65\0\1c1 and z65\0\1c2..z65\0\1
+ ..controls z65\0\2c1 and z65\0\2c2..z65\0\2
+ ..controls z65\0\3c1 and z65\0\3c2..z65\0\3
+ ..controls z65\0\4c1 and z65\0\4c2..z65\0\4
+ ..controls z65\0\5c1 and z65\0\5c2..z65\0\5
+ ..controls z65\0\6c1 and z65\0\6c2..z65\0\6
+ ..controls z65\0\7c1 and z65\0\7c2..z65\0\7
+ ..controls z65\0\8c1 and z65\0\8c2..z65\0\8
+ ..controls z65\0\9c1 and z65\0\9c2..z65\0\9
+ --z65\0\10
+ --z65\0\11
+ --z65\0\12
+ ..controls z65\0\13c1 and z65\0\13c2..z65\0\13
+ ..controls z65\0\14c1 and z65\0\14c2..z65\0\14
+ ..controls z65\0\15c1 and z65\0\15c2..z65\0\15
+ ..controls z65\0\16c1 and z65\0\16c2..cycle;
+ fill_or_unfill z65\1\0s
+ ..controls z65\1\0c1 and z65\1\0c2..z65\1\0
+ ..controls z65\1\1c1 and z65\1\1c2..z65\1\1
+ ..controls z65\1\2c1 and z65\1\2c2..z65\1\2
+ ..controls z65\1\3c1 and z65\1\3c2..cycle;
+ fill_or_unfill z65\2\0s
+ --z65\2\0
+ --z65\2\1
+ ..controls z65\2\2c1 and z65\2\2c2..cycle;
+ proof_labels (
+ 65\0\0,
+ 65\0\1,
+ 65\0\2,
+ 65\0\3,
+ 65\0\4,
+ 65\0\5,
+ 65\0\6,
+ 65\0\7,
+ 65\0\8,
+ 65\0\9,
+ 65\0\10,
+ 65\0\11,
+ 65\0\12,
+ 65\0\13,
+ 65\0\14,
+ 65\0\15,
+ 65\0\16,
+ 65\1\0,
+ 65\1\1,
+ 65\1\2,
+ 65\1\3,
+ 65\2\0,
+ 65\2\1,
+ 65\2\2,
+);
+endchar;
+
+beginchar (TIB_GRWA, 11.081u#, 6.745u#, 11.081u#);
+ "grwa";
+ z66\0\0s = (0.964u,5.300u);
+ z66\0\0 = (1.927u,5.059u);
+ z66\0\1c1 = (1.563u,4.416u);
+ z66\0\1c2 = (-0.036u,1.577u);
+ z66\0\1 = (1.043u,1.088u);
+ z66\0\2c1 = (1.516u,0.932u);
+ z66\0\2c2 = (3.466u,1.402u);
+ z66\0\2 = (4.576u,1.088u);
+ z66\0\3c1 = (5.721u,0.683u);
+ z66\0\3c2 = (5.859u,-0.140u);
+ z66\0\3 = (6.745u,-0.723u);
+ z66\0\4c1 = (6.745u,0.540u);
+ z66\0\4c2 = (6.388u,4.461u);
+ z66\0\4 = (7.742u,5.018u);
+ z66\0\5c1 = (7.966u,5.111u);
+ z66\0\5c2 = (8.173u,5.112u);
+ z66\0\5 = (8.397u,5.018u);
+ z66\0\6c1 = (9.252u,4.662u);
+ z66\0\6c2 = (9.153u,3.401u);
+ z66\0\6 = (9.165u,2.650u);
+ z66\0\7 = (9.165u,-0.482u);
+ z66\0\8 = (9.533u,-2.891u);
+ z66\0\9 = (9.877u,-5.300u);
+ z66\0\10c1 = (9.198u,-4.782u);
+ z66\0\10c2 = (8.538u,-4.296u);
+ z66\0\10 = (7.709u,-4.046u);
+ z66\0\11c1 = (7.093u,-3.861u);
+ z66\0\11c2 = (6.421u,-3.835u);
+ z66\0\11 = (5.782u,-3.864u);
+ z66\0\12c1 = (4.022u,-3.944u);
+ z66\0\12c2 = (3.148u,-4.704u);
+ z66\0\12 = (3.613u,-6.504u);
+ z66\0\13 = (5.300u,-5.408u);
+ z66\0\14c1 = (6.983u,-4.591u);
+ z66\0\14c2 = (8.405u,-5.489u);
+ z66\0\14 = (9.877u,-6.263u);
+ z66\0\15 = (6.263u,-8.913u);
+ z66\0\16c1 = (7.318u,-10.156u);
+ z66\0\16c2 = (8.495u,-10.750u);
+ z66\0\16 = (10.141u,-10.840u);
+ z66\0\17 = (10.141u,0.723u);
+ z66\0\18 = (10.141u,2.409u);
+ z66\0\19 = (10.577u,5.059u);
+ z66\0\20c1 = (10.594u,5.384u);
+ z66\0\20c2 = (10.600u,5.891u);
+ z66\0\20 = (10.455u,6.188u);
+ z66\0\21c1 = (10.118u,6.879u);
+ z66\0\21c2 = (9.075u,6.744u);
+ z66\0\21 = (8.431u,6.745u);
+ z66\0\22c1 = (7.255u,6.747u);
+ z66\0\22c2 = (2.239u,6.940u);
+ z66\0\22 = (1.521u,6.462u);
+ z66\0\23c1 = (1.074u,6.165u);
+ z66\0\23c2 = (1.046u,5.780u);
+ z66\1\0s = (6.022u,1.204u);
+ z66\1\0c1 = (3.968u,2.384u);
+ z66\1\0c2 = (3.971u,2.868u);
+ z66\1\0 = (1.445u,2.891u);
+ z66\1\1c1 = (1.956u,4.429u);
+ z66\1\1c2 = (2.833u,5.424u);
+ z66\1\1 = (4.573u,5.271u);
+ z66\1\2c1 = (5.040u,5.229u);
+ z66\1\2c2 = (5.410u,5.141u);
+ z66\1\2 = (5.665u,4.714u);
+ z66\1\3c1 = (6.091u,4.000u);
+ z66\1\3c2 = (6.022u,2.066u);
+ z66\2\0s = (9.636u,-7.227u);
+ z66\2\0 = (9.636u,-10.600u);
+ z66\2\1c1 = (8.750u,-10.198u);
+ z66\2\1c2 = (8.021u,-9.711u);
+ z66\2\1 = (7.227u,-9.154u);
+ z66\2\2 = (7.227u,-8.672u);
+ fill_or_unfill z66\0\0s
+ --z66\0\0
+ ..controls z66\0\1c1 and z66\0\1c2..z66\0\1
+ ..controls z66\0\2c1 and z66\0\2c2..z66\0\2
+ ..controls z66\0\3c1 and z66\0\3c2..z66\0\3
+ ..controls z66\0\4c1 and z66\0\4c2..z66\0\4
+ ..controls z66\0\5c1 and z66\0\5c2..z66\0\5
+ ..controls z66\0\6c1 and z66\0\6c2..z66\0\6
+ --z66\0\7
+ --z66\0\8
+ --z66\0\9
+ ..controls z66\0\10c1 and z66\0\10c2..z66\0\10
+ ..controls z66\0\11c1 and z66\0\11c2..z66\0\11
+ ..controls z66\0\12c1 and z66\0\12c2..z66\0\12
+ --z66\0\13
+ ..controls z66\0\14c1 and z66\0\14c2..z66\0\14
+ --z66\0\15
+ ..controls z66\0\16c1 and z66\0\16c2..z66\0\16
+ --z66\0\17
+ --z66\0\18
+ --z66\0\19
+ ..controls z66\0\20c1 and z66\0\20c2..z66\0\20
+ ..controls z66\0\21c1 and z66\0\21c2..z66\0\21
+ ..controls z66\0\22c1 and z66\0\22c2..z66\0\22
+ ..controls z66\0\23c1 and z66\0\23c2..cycle;
+ fill_or_unfill z66\1\0s
+ ..controls z66\1\0c1 and z66\1\0c2..z66\1\0
+ ..controls z66\1\1c1 and z66\1\1c2..z66\1\1
+ ..controls z66\1\2c1 and z66\1\2c2..z66\1\2
+ ..controls z66\1\3c1 and z66\1\3c2..cycle;
+ fill_or_unfill z66\2\0s
+ --z66\2\0
+ ..controls z66\2\1c1 and z66\2\1c2..z66\2\1
+ --z66\2\2
+ --cycle;
+ proof_labels (
+ 66\0\0,
+ 66\0\1,
+ 66\0\2,
+ 66\0\3,
+ 66\0\4,
+ 66\0\5,
+ 66\0\6,
+ 66\0\7,
+ 66\0\8,
+ 66\0\9,
+ 66\0\10,
+ 66\0\11,
+ 66\0\12,
+ 66\0\13,
+ 66\0\14,
+ 66\0\15,
+ 66\0\16,
+ 66\0\17,
+ 66\0\18,
+ 66\0\19,
+ 66\0\20,
+ 66\0\21,
+ 66\0\22,
+ 66\0\23,
+ 66\1\0,
+ 66\1\1,
+ 66\1\2,
+ 66\1\3,
+ 66\2\0,
+ 66\2\1,
+ 66\2\2,
+ 66\2\3,
+);
+endchar;
+
+beginchar (TIB_RGWA, 10.600u#, 6.745u#, 8.672u#);
+ "rgwa";
+ z67\0\0s = (2.650u,5.298u);
+ z67\0\0 = (3.613u,5.298u);
+ z67\0\1c1 = (3.899u,5.283u);
+ z67\0\1c2 = (4.265u,5.278u);
+ z67\0\1 = (4.528u,5.157u);
+ z67\0\2c1 = (5.052u,4.916u);
+ z67\0\2c2 = (5.052u,4.479u);
+ z67\0\2 = (4.528u,4.238u);
+ z67\0\3c1 = (3.702u,3.858u);
+ z67\0\3c2 = (1.468u,4.432u);
+ z67\0\3 = (0.982u,3.710u);
+ z67\0\4c1 = (0.662u,3.234u);
+ z67\0\4c2 = (1.172u,2.301u);
+ z67\0\4 = (1.124u,1.686u);
+ z67\0\5c1 = (1.079u,1.117u);
+ z67\0\5c2 = (0.804u,0.552u);
+ z67\0\5 = (0.665u,0.000u);
+ z67\0\6c1 = (0.541u,-0.489u);
+ z67\0\6c2 = (0.506u,-0.945u);
+ z67\0\6 = (0.482u,-1.445u);
+ z67\0\7c1 = (2.947u,-1.332u);
+ z67\0\7c2 = (5.030u,-0.456u);
+ z67\0\7 = (6.504u,-3.132u);
+ z67\0\8c1 = (6.907u,-2.116u);
+ z67\0\8c2 = (6.740u,-0.846u);
+ z67\0\8 = (6.745u,0.241u);
+ z67\0\9c1 = (6.750u,1.151u);
+ z67\0\9c2 = (6.868u,1.992u);
+ z67\0\9 = (6.986u,2.891u);
+ z67\0\10c1 = (7.371u,2.877u);
+ z67\0\10c2 = (7.796u,2.900u);
+ z67\0\10 = (8.159u,2.747u);
+ z67\0\11c1 = (9.437u,2.205u);
+ z67\0\11c2 = (9.115u,0.160u);
+ z67\0\11 = (9.163u,-0.964u);
+ z67\0\12c1 = (9.198u,-1.747u);
+ z67\0\12c2 = (9.461u,-2.594u);
+ z67\0\12 = (9.357u,-3.369u);
+ z67\0\13c1 = (9.199u,-4.542u);
+ z67\0\13c2 = (8.092u,-4.941u);
+ z67\0\13 = (7.227u,-5.551u);
+ z67\0\14 = (6.022u,-6.504u);
+ z67\0\15c1 = (7.077u,-7.747u);
+ z67\0\15c2 = (8.254u,-8.341u);
+ z67\0\15 = (9.877u,-8.431u);
+ z67\0\16 = (9.877u,0.241u);
+ z67\0\17 = (10.076u,2.409u);
+ z67\0\18c1 = (10.307u,5.392u);
+ z67\0\18c2 = (7.391u,3.287u);
+ z67\0\18 = (6.166u,4.480u);
+ z67\0\19c1 = (5.914u,4.725u);
+ z67\0\19c2 = (5.881u,4.988u);
+ z67\0\19 = (5.782u,5.300u);
+ z67\0\20c1 = (7.217u,5.304u);
+ z67\0\20c2 = (8.062u,5.112u);
+ z67\0\20 = (8.431u,6.745u);
+ z67\0\21c1 = (7.453u,6.745u);
+ z67\0\21c2 = (4.089u,6.901u);
+ z67\0\21 = (3.408u,6.499u);
+ z67\0\22c1 = (2.906u,6.203u);
+ z67\0\22c2 = (2.806u,5.814u);
+ z67\1\0s = (6.263u,-1.204u);
+ z67\1\0c1 = (5.939u,-1.074u);
+ z67\1\0c2 = (5.667u,-0.967u);
+ z67\1\0 = (5.368u,-0.776u);
+ z67\1\1c1 = (4.854u,-0.447u);
+ z67\1\1c2 = (4.421u,-0.024u);
+ z67\1\1 = (3.851u,0.221u);
+ z67\1\2c1 = (3.108u,0.541u);
+ z67\1\2c2 = (2.233u,0.499u);
+ z67\1\2 = (1.445u,0.723u);
+ z67\1\3c1 = (1.621u,1.317u);
+ z67\1\3c2 = (1.793u,1.864u);
+ z67\1\3 = (2.262u,2.319u);
+ z67\1\4c1 = (2.932u,2.936u);
+ z67\1\4c2 = (5.122u,3.289u);
+ z67\1\4 = (5.647u,2.319u);
+ z67\1\5c1 = (5.944u,1.792u);
+ z67\1\5c2 = (5.982u,0.405u);
+ z67\1\5 = (6.065u,-0.241u);
+ z67\2\0s = (9.395u,-4.818u);
+ z67\2\0 = (9.395u,-8.190u);
+ z67\2\1c1 = (8.509u,-7.789u);
+ z67\2\1c2 = (7.780u,-7.302u);
+ z67\2\1 = (6.986u,-6.745u);
+ z67\2\2 = (6.986u,-6.263u);
+ fill_or_unfill z67\0\0s
+ --z67\0\0
+ ..controls z67\0\1c1 and z67\0\1c2..z67\0\1
+ ..controls z67\0\2c1 and z67\0\2c2..z67\0\2
+ ..controls z67\0\3c1 and z67\0\3c2..z67\0\3
+ ..controls z67\0\4c1 and z67\0\4c2..z67\0\4
+ ..controls z67\0\5c1 and z67\0\5c2..z67\0\5
+ ..controls z67\0\6c1 and z67\0\6c2..z67\0\6
+ ..controls z67\0\7c1 and z67\0\7c2..z67\0\7
+ ..controls z67\0\8c1 and z67\0\8c2..z67\0\8
+ ..controls z67\0\9c1 and z67\0\9c2..z67\0\9
+ ..controls z67\0\10c1 and z67\0\10c2..z67\0\10
+ ..controls z67\0\11c1 and z67\0\11c2..z67\0\11
+ ..controls z67\0\12c1 and z67\0\12c2..z67\0\12
+ ..controls z67\0\13c1 and z67\0\13c2..z67\0\13
+ --z67\0\14
+ ..controls z67\0\15c1 and z67\0\15c2..z67\0\15
+ --z67\0\16
+ --z67\0\17
+ ..controls z67\0\18c1 and z67\0\18c2..z67\0\18
+ ..controls z67\0\19c1 and z67\0\19c2..z67\0\19
+ ..controls z67\0\20c1 and z67\0\20c2..z67\0\20
+ ..controls z67\0\21c1 and z67\0\21c2..z67\0\21
+ ..controls z67\0\22c1 and z67\0\22c2..cycle;
+ fill_or_unfill z67\1\0s
+ ..controls z67\1\0c1 and z67\1\0c2..z67\1\0
+ ..controls z67\1\1c1 and z67\1\1c2..z67\1\1
+ ..controls z67\1\2c1 and z67\1\2c2..z67\1\2
+ ..controls z67\1\3c1 and z67\1\3c2..z67\1\3
+ ..controls z67\1\4c1 and z67\1\4c2..z67\1\4
+ ..controls z67\1\5c1 and z67\1\5c2..z67\1\5
+ --cycle;
+ fill_or_unfill z67\2\0s
+ --z67\2\0
+ ..controls z67\2\1c1 and z67\2\1c2..z67\2\1
+ --z67\2\2
+ --cycle;
+ proof_labels (
+ 67\0\0,
+ 67\0\1,
+ 67\0\2,
+ 67\0\3,
+ 67\0\4,
+ 67\0\5,
+ 67\0\6,
+ 67\0\7,
+ 67\0\8,
+ 67\0\9,
+ 67\0\10,
+ 67\0\11,
+ 67\0\12,
+ 67\0\13,
+ 67\0\14,
+ 67\0\15,
+ 67\0\16,
+ 67\0\17,
+ 67\0\18,
+ 67\0\19,
+ 67\0\20,
+ 67\0\21,
+ 67\0\22,
+ 67\1\0,
+ 67\1\1,
+ 67\1\2,
+ 67\1\3,
+ 67\1\4,
+ 67\1\5,
+ 67\1\6,
+ 67\2\0,
+ 67\2\1,
+ 67\2\2,
+ 67\2\3,
+);
+endchar;
+
+beginchar (TIB_NYWA, 7.950u#, 6.745u#, 7.950u#);
+ "nywa";
+ z68\0\0s = (1.204u,4.336u);
+ z68\0\0c1 = (1.371u,4.637u);
+ z68\0\0c2 = (1.450u,4.868u);
+ z68\0\0 = (1.757u,5.073u);
+ z68\0\1c1 = (2.416u,5.512u);
+ z68\0\1c2 = (4.271u,5.399u);
+ z68\0\1 = (4.227u,4.323u);
+ z68\0\2c1 = (4.182u,3.217u);
+ z68\0\2c2 = (2.085u,2.416u);
+ z68\0\2 = (2.048u,0.968u);
+ z68\0\3c1 = (2.021u,-0.049u);
+ z68\0\3c2 = (3.210u,-0.720u);
+ z68\0\3 = (3.952u,0.085u);
+ z68\0\4c1 = (4.196u,0.349u);
+ z68\0\4c2 = (4.237u,0.640u);
+ z68\0\4 = (4.336u,0.964u);
+ z68\0\5 = (2.891u,1.445u);
+ z68\0\6c1 = (3.210u,1.763u);
+ z68\0\6c2 = (3.449u,2.014u);
+ z68\0\6 = (3.873u,2.201u);
+ z68\0\7c1 = (5.584u,2.958u);
+ z68\0\7c2 = (7.137u,1.545u);
+ z68\0\7 = (6.477u,-0.241u);
+ z68\0\8c1 = (6.097u,-1.272u);
+ z68\0\8c2 = (4.924u,-2.820u);
+ z68\0\8 = (4.086u,-3.523u);
+ z68\0\9 = (2.409u,-4.663u);
+ z68\0\10 = (0.964u,-5.782u);
+ z68\0\11c1 = (2.019u,-7.024u);
+ z68\0\11c2 = (3.195u,-7.618u);
+ z68\0\11 = (4.818u,-7.709u);
+ z68\0\12c1 = (4.818u,-6.907u);
+ z68\0\12c2 = (4.724u,-4.515u);
+ z68\0\12 = (4.959u,-3.895u);
+ z68\0\13c1 = (5.169u,-3.340u);
+ z68\0\13c2 = (5.666u,-2.885u);
+ z68\0\13 = (6.001u,-2.400u);
+ z68\0\14c1 = (6.843u,-1.179u);
+ z68\0\14c2 = (7.469u,0.180u);
+ z68\0\14 = (7.461u,1.686u);
+ z68\0\15c1 = (7.458u,2.213u);
+ z68\0\15c2 = (7.430u,2.797u);
+ z68\0\15 = (7.049u,3.204u);
+ z68\0\16c1 = (6.450u,3.845u);
+ z68\0\16c2 = (5.585u,3.794u);
+ z68\0\16 = (4.818u,3.613u);
+ z68\0\17 = (5.487u,5.055u);
+ z68\0\18c1 = (5.592u,5.332u);
+ z68\0\18c2 = (5.705u,5.629u);
+ z68\0\18 = (5.612u,5.928u);
+ z68\0\19c1 = (5.282u,6.988u);
+ z68\0\19c2 = (2.937u,6.832u);
+ z68\0\19 = (2.171u,6.429u);
+ z68\0\20c1 = (1.620u,6.138u);
+ z68\0\20c2 = (1.087u,5.609u);
+ z68\0\20 = (0.798u,5.055u);
+ z68\0\21c1 = (0.531u,4.543u);
+ z68\0\21c2 = (0.305u,3.300u);
+ z68\0\21 = (1.062u,3.064u);
+ z68\0\22c1 = (1.587u,2.900u);
+ z68\0\22c2 = (2.122u,3.458u);
+ z68\0\22 = (1.750u,3.969u);
+ z68\0\23c1 = (1.598u,4.179u);
+ z68\0\23c2 = (1.408u,4.218u);
+ z68\1\0s = (4.336u,-4.095u);
+ z68\1\0 = (4.336u,-7.468u);
+ z68\1\1c1 = (3.450u,-7.067u);
+ z68\1\1c2 = (2.721u,-6.579u);
+ z68\1\1 = (1.927u,-6.022u);
+ z68\1\2 = (1.927u,-5.541u);
+ fill_or_unfill z68\0\0s
+ ..controls z68\0\0c1 and z68\0\0c2..z68\0\0
+ ..controls z68\0\1c1 and z68\0\1c2..z68\0\1
+ ..controls z68\0\2c1 and z68\0\2c2..z68\0\2
+ ..controls z68\0\3c1 and z68\0\3c2..z68\0\3
+ ..controls z68\0\4c1 and z68\0\4c2..z68\0\4
+ --z68\0\5
+ ..controls z68\0\6c1 and z68\0\6c2..z68\0\6
+ ..controls z68\0\7c1 and z68\0\7c2..z68\0\7
+ ..controls z68\0\8c1 and z68\0\8c2..z68\0\8
+ --z68\0\9
+ --z68\0\10
+ ..controls z68\0\11c1 and z68\0\11c2..z68\0\11
+ ..controls z68\0\12c1 and z68\0\12c2..z68\0\12
+ ..controls z68\0\13c1 and z68\0\13c2..z68\0\13
+ ..controls z68\0\14c1 and z68\0\14c2..z68\0\14
+ ..controls z68\0\15c1 and z68\0\15c2..z68\0\15
+ ..controls z68\0\16c1 and z68\0\16c2..z68\0\16
+ --z68\0\17
+ ..controls z68\0\18c1 and z68\0\18c2..z68\0\18
+ ..controls z68\0\19c1 and z68\0\19c2..z68\0\19
+ ..controls z68\0\20c1 and z68\0\20c2..z68\0\20
+ ..controls z68\0\21c1 and z68\0\21c2..z68\0\21
+ ..controls z68\0\22c1 and z68\0\22c2..z68\0\22
+ ..controls z68\0\23c1 and z68\0\23c2..cycle;
+ fill_or_unfill z68\1\0s
+ --z68\1\0
+ ..controls z68\1\1c1 and z68\1\1c2..z68\1\1
+ --z68\1\2
+ --cycle;
+ proof_labels (
+ 68\0\0,
+ 68\0\1,
+ 68\0\2,
+ 68\0\3,
+ 68\0\4,
+ 68\0\5,
+ 68\0\6,
+ 68\0\7,
+ 68\0\8,
+ 68\0\9,
+ 68\0\10,
+ 68\0\11,
+ 68\0\12,
+ 68\0\13,
+ 68\0\14,
+ 68\0\15,
+ 68\0\16,
+ 68\0\17,
+ 68\0\18,
+ 68\0\19,
+ 68\0\20,
+ 68\0\21,
+ 68\0\22,
+ 68\0\23,
+ 68\1\0,
+ 68\1\1,
+ 68\1\2,
+ 68\1\3,
+);
+endchar;
+
+beginchar (TIB_DWA, 7.709u#, 6.745u#, 6.745u#);
+ "dwa";
+ z69\0\0s = (0.723u,5.300u);
+ z69\0\0 = (1.686u,5.300u);
+ z69\0\1 = (0.538u,2.650u);
+ z69\0\2 = (0.538u,1.445u);
+ z69\0\3c1 = (1.444u,1.618u);
+ z69\0\3c2 = (2.395u,1.782u);
+ z69\0\3 = (3.372u,1.607u);
+ z69\0\4c1 = (4.224u,1.455u);
+ z69\0\4c2 = (5.110u,1.007u);
+ z69\0\4 = (5.731u,0.403u);
+ z69\0\5c1 = (7.967u,-1.778u);
+ z69\0\5c2 = (4.992u,-3.505u);
+ z69\0\5 = (3.132u,-4.336u);
+ z69\0\6 = (3.132u,-4.818u);
+ z69\0\7 = (5.300u,-5.756u);
+ z69\0\8c1 = (5.965u,-6.053u);
+ z69\0\8c2 = (6.512u,-6.334u);
+ z69\0\8 = (7.210u,-6.504u);
+ z69\0\9 = (7.210u,-3.132u);
+ z69\0\10c1 = (7.227u,-2.273u);
+ z69\0\10c2 = (7.305u,-1.328u);
+ z69\0\10 = (7.210u,-0.482u);
+ z69\0\11c1 = (6.941u,1.063u);
+ z69\0\11c2 = (5.846u,2.656u);
+ z69\0\11 = (4.336u,3.167u);
+ z69\0\12c1 = (3.441u,3.470u);
+ z69\0\12c2 = (2.380u,3.372u);
+ z69\0\12 = (1.445u,3.372u);
+ z69\0\13c1 = (1.750u,3.840u);
+ z69\0\13c2 = (2.033u,4.300u);
+ z69\0\13 = (2.481u,4.650u);
+ z69\0\14c1 = (3.892u,5.749u);
+ z69\0\14c2 = (5.851u,4.905u);
+ z69\0\14 = (6.462u,5.679u);
+ z69\0\15c1 = (6.702u,5.982u);
+ z69\0\15c2 = (6.702u,6.383u);
+ z69\0\15 = (6.745u,6.745u);
+ z69\0\16c1 = (5.737u,6.745u);
+ z69\0\16c2 = (2.193u,6.920u);
+ z69\0\16 = (1.499u,6.499u);
+ z69\0\17c1 = (1.019u,6.208u);
+ z69\0\17c2 = (0.897u,5.793u);
+ z69\1\0s = (6.745u,-2.409u);
+ z69\1\0 = (6.745u,-6.022u);
+ z69\1\1c1 = (5.869u,-5.571u);
+ z69\1\1c2 = (5.032u,-5.133u);
+ z69\1\1 = (4.095u,-4.818u);
+ z69\1\2c1 = (4.486u,-4.192u);
+ z69\1\2c2 = (4.960u,-3.908u);
+ z69\1\2 = (5.532u,-3.454u);
+ fill_or_unfill z69\0\0s
+ --z69\0\0
+ --z69\0\1
+ --z69\0\2
+ ..controls z69\0\3c1 and z69\0\3c2..z69\0\3
+ ..controls z69\0\4c1 and z69\0\4c2..z69\0\4
+ ..controls z69\0\5c1 and z69\0\5c2..z69\0\5
+ --z69\0\6
+ --z69\0\7
+ ..controls z69\0\8c1 and z69\0\8c2..z69\0\8
+ --z69\0\9
+ ..controls z69\0\10c1 and z69\0\10c2..z69\0\10
+ ..controls z69\0\11c1 and z69\0\11c2..z69\0\11
+ ..controls z69\0\12c1 and z69\0\12c2..z69\0\12
+ ..controls z69\0\13c1 and z69\0\13c2..z69\0\13
+ ..controls z69\0\14c1 and z69\0\14c2..z69\0\14
+ ..controls z69\0\15c1 and z69\0\15c2..z69\0\15
+ ..controls z69\0\16c1 and z69\0\16c2..z69\0\16
+ ..controls z69\0\17c1 and z69\0\17c2..cycle;
+ fill_or_unfill z69\1\0s
+ --z69\1\0
+ ..controls z69\1\1c1 and z69\1\1c2..z69\1\1
+ ..controls z69\1\2c1 and z69\1\2c2..z69\1\2
+ --cycle;
+ proof_labels (
+ 69\0\0,
+ 69\0\1,
+ 69\0\2,
+ 69\0\3,
+ 69\0\4,
+ 69\0\5,
+ 69\0\6,
+ 69\0\7,
+ 69\0\8,
+ 69\0\9,
+ 69\0\10,
+ 69\0\11,
+ 69\0\12,
+ 69\0\13,
+ 69\0\14,
+ 69\0\15,
+ 69\0\16,
+ 69\0\17,
+ 69\1\0,
+ 69\1\1,
+ 69\1\2,
+ 69\1\3,
+);
+endchar;
+
+beginchar (TIB_TSHWA, 10.600u#, 9.154u#, 6.504u#);
+ "tshwa";
+ z70\0\0s = (7.262u,6.745u);
+ z70\0\0c1 = (6.289u,6.745u);
+ z70\0\0c2 = (3.413u,6.977u);
+ z70\0\0 = (2.794u,6.360u);
+ z70\0\1c1 = (2.489u,6.056u);
+ z70\0\1c2 = (2.475u,5.694u);
+ z70\0\1 = (2.409u,5.300u);
+ z70\0\2c1 = (4.039u,5.279u);
+ z70\0\2c2 = (4.673u,5.157u);
+ z70\0\2 = (4.818u,3.372u);
+ z70\0\3c1 = (-0.471u,3.114u);
+ z70\0\3c2 = (-0.341u,-1.388u);
+ z70\0\3 = (2.410u,-1.660u);
+ z70\0\4c1 = (3.597u,-1.777u);
+ z70\0\4c2 = (4.255u,-1.534u);
+ z70\0\4 = (4.818u,-0.482u);
+ z70\0\5 = (5.300u,-0.482u);
+ z70\0\6c1 = (5.950u,-1.747u);
+ z70\0\6c2 = (6.623u,-1.736u);
+ z70\0\6 = (7.949u,-1.682u);
+ z70\0\7c1 = (9.340u,-1.625u);
+ z70\0\7c2 = (9.880u,-0.912u);
+ z70\0\7 = (9.830u,0.482u);
+ z70\0\8c1 = (9.810u,1.039u);
+ z70\0\8c2 = (9.642u,1.467u);
+ z70\0\8 = (9.291u,1.902u);
+ z70\0\9c1 = (7.967u,3.544u);
+ z70\0\9c2 = (5.759u,3.048u);
+ z70\0\9 = (5.340u,3.926u);
+ z70\0\10c1 = (5.244u,4.127u);
+ z70\0\10c2 = (5.250u,4.326u);
+ z70\0\10 = (5.340u,4.527u);
+ z70\0\11c1 = (5.854u,5.682u);
+ z70\0\11c2 = (8.631u,5.056u);
+ z70\0\11 = (8.454u,6.236u);
+ z70\0\12c1 = (8.405u,6.561u);
+ z70\0\12c2 = (7.704u,7.194u);
+ z70\0\12 = (7.468u,7.468u);
+ z70\0\13c1 = (8.113u,7.567u);
+ z70\0\13c2 = (9.465u,7.782u);
+ z70\0\13 = (9.872u,8.325u);
+ z70\0\14c1 = (10.065u,8.584u);
+ z70\0\14c2 = (10.065u,8.855u);
+ z70\0\14 = (10.118u,9.154u);
+ z70\0\15c1 = (9.223u,9.146u);
+ z70\0\15c2 = (7.615u,9.212u);
+ z70\0\15 = (7.262u,8.137u);
+ z70\0\16c1 = (7.207u,7.829u);
+ z70\0\16c2 = (7.228u,7.091u);
+ z70\1\0s = (5.059u,1.204u);
+ z70\1\0 = (5.300u,2.168u);
+ z70\1\1 = (7.227u,1.527u);
+ z70\1\2c1 = (7.621u,1.384u);
+ z70\1\2c2 = (8.054u,1.254u);
+ z70\1\2 = (8.396u,0.983u);
+ z70\1\3c1 = (10.889u,-0.833u);
+ z70\1\3c2 = (5.903u,-3.351u);
+ z70\1\3 = (5.300u,0.983u);
+ z70\1\4 = (4.181u,-0.643u);
+ z70\1\5c1 = (3.502u,-1.326u);
+ z70\1\5c2 = (2.273u,-1.523u);
+ z70\1\5 = (1.624u,-0.643u);
+ z70\1\6c1 = (1.433u,-0.412u);
+ z70\1\6c2 = (1.311u,-0.081u);
+ z70\1\6 = (1.334u,0.238u);
+ z70\1\7c1 = (1.410u,1.291u);
+ z70\1\7c2 = (3.589u,2.389u);
+ z70\1\7 = (4.476u,2.020u);
+ z70\1\8c1 = (4.860u,1.860u);
+ z70\1\8c2 = (4.921u,1.547u);
+%
+% Missing GWA wazur taken from here!
+%
+ z70\2\0s = (5.059u,-4.336u);
+ z70\2\0c1 = (6.114u,-5.579u);
+ z70\2\0c2 = (7.290u,-6.173u);
+ z70\2\0 = (8.913u,-6.263u);
+ z70\2\1 = (8.913u,-1.927u);
+ z70\2\2c1 = (7.476u,-2.458u);
+ z70\2\2c2 = (6.222u,-3.352u);
+ z70\3\0s = (8.431u,-2.650u);
+ z70\3\0 = (8.431u,-6.022u);
+ z70\3\1c1 = (7.545u,-5.621u);
+ z70\3\1c2 = (6.816u,-5.134u);
+ z70\3\1 = (6.022u,-4.577u);
+ z70\3\2 = (6.022u,-4.095u);
+ fill_or_unfill z70\0\0s
+ ..controls z70\0\0c1 and z70\0\0c2..z70\0\0
+ ..controls z70\0\1c1 and z70\0\1c2..z70\0\1
+ ..controls z70\0\2c1 and z70\0\2c2..z70\0\2
+ ..controls z70\0\3c1 and z70\0\3c2..z70\0\3
+ ..controls z70\0\4c1 and z70\0\4c2..z70\0\4
+ --z70\0\5
+ ..controls z70\0\6c1 and z70\0\6c2..z70\0\6
+ ..controls z70\0\7c1 and z70\0\7c2..z70\0\7
+ ..controls z70\0\8c1 and z70\0\8c2..z70\0\8
+ ..controls z70\0\9c1 and z70\0\9c2..z70\0\9
+ ..controls z70\0\10c1 and z70\0\10c2..z70\0\10
+ ..controls z70\0\11c1 and z70\0\11c2..z70\0\11
+ ..controls z70\0\12c1 and z70\0\12c2..z70\0\12
+ ..controls z70\0\13c1 and z70\0\13c2..z70\0\13
+ ..controls z70\0\14c1 and z70\0\14c2..z70\0\14
+ ..controls z70\0\15c1 and z70\0\15c2..z70\0\15
+ ..controls z70\0\16c1 and z70\0\16c2..cycle;
+ fill_or_unfill z70\1\0s
+ --z70\1\0
+ --z70\1\1
+ ..controls z70\1\2c1 and z70\1\2c2..z70\1\2
+ ..controls z70\1\3c1 and z70\1\3c2..z70\1\3
+ --z70\1\4
+ ..controls z70\1\5c1 and z70\1\5c2..z70\1\5
+ ..controls z70\1\6c1 and z70\1\6c2..z70\1\6
+ ..controls z70\1\7c1 and z70\1\7c2..z70\1\7
+ ..controls z70\1\8c1 and z70\1\8c2..cycle;
+%
+% Took wazur from here!
+%
+ fill_or_unfill z70\2\0s
+ ..controls z70\2\0c1 and z70\2\0c2..z70\2\0
+ --z70\2\1
+ ..controls z70\2\2c1 and z70\2\2c2..cycle;
+ fill_or_unfill z70\3\0s
+ --z70\3\0
+ ..controls z70\3\1c1 and z70\3\1c2..z70\3\1
+ --z70\3\2
+ --cycle;
+ proof_labels (
+ 70\0\0,
+ 70\0\1,
+ 70\0\2,
+ 70\0\3,
+ 70\0\4,
+ 70\0\5,
+ 70\0\6,
+ 70\0\7,
+ 70\0\8,
+ 70\0\9,
+ 70\0\10,
+ 70\0\11,
+ 70\0\12,
+ 70\0\13,
+ 70\0\14,
+ 70\0\15,
+ 70\0\16,
+ 70\1\0,
+ 70\1\1,
+ 70\1\2,
+ 70\1\3,
+ 70\1\4,
+ 70\1\5,
+ 70\1\6,
+ 70\1\7,
+ 70\1\8,
+ 70\2\0,
+ 70\2\1,
+ 70\2\2,
+ 70\3\0,
+ 70\3\1,
+ 70\3\2,
+ 70\3\3,
+);
+endchar;
+
+beginchar (TIB_RTSWA, 9.877u#, 6.745u#, 8.672u#);
+ "rtswa";
+ z71\0\0s = (3.854u,4.095u);
+ z71\0\0c1 = (2.402u,4.090u);
+ z71\0\0c2 = (1.851u,4.235u);
+ z71\0\0 = (1.445u,2.650u);
+ z71\0\1 = (4.577u,2.650u);
+ z71\0\2c1 = (4.082u,0.324u);
+ z71\0\2c2 = (2.517u,0.123u);
+ z71\0\2 = (0.482u,0.482u);
+ z71\0\3c1 = (0.609u,-0.444u);
+ z71\0\3c2 = (1.517u,-2.667u);
+ z71\0\3 = (2.219u,-3.250u);
+ z71\0\4c1 = (3.064u,-3.951u);
+ z71\0\4c2 = (5.525u,-4.105u);
+ z71\0\4 = (6.479u,-3.571u);
+ z71\0\5c1 = (6.949u,-3.308u);
+ z71\0\5c2 = (7.239u,-2.900u);
+ z71\0\5 = (7.432u,-2.405u);
+ z71\0\6c1 = (8.394u,0.065u);
+ z71\0\6c2 = (5.014u,0.809u);
+ z71\0\6 = (5.409u,2.093u);
+ z71\0\7c1 = (5.623u,2.790u);
+ z71\0\7c2 = (6.812u,2.497u);
+ z71\0\7 = (7.319u,3.035u);
+ z71\0\8c1 = (7.888u,3.638u);
+ z71\0\8c2 = (7.291u,4.377u);
+ z71\0\8 = (7.674u,4.918u);
+ z71\0\9c1 = (8.240u,5.719u);
+ z71\0\9c2 = (9.081u,4.918u);
+ z71\0\9 = (9.395u,6.745u);
+ z71\0\10c1 = (8.774u,6.731u);
+ z71\0\10c2 = (7.855u,6.753u);
+ z71\0\10 = (7.371u,6.299u);
+ z71\0\11c1 = (6.739u,5.705u);
+ z71\0\11c2 = (7.242u,4.661u);
+ z71\0\11 = (6.228u,4.208u);
+ z71\0\12c1 = (5.968u,4.132u);
+ z71\0\12c2 = (5.587u,4.114u);
+ z71\0\12 = (5.313u,4.208u);
+ z71\0\13c1 = (4.725u,4.308u);
+ z71\0\13c2 = (4.604u,4.585u);
+ z71\0\13 = (4.336u,5.059u);
+ z71\0\14 = (5.286u,5.303u);
+ z71\0\15c1 = (5.556u,5.417u);
+ z71\0\15c2 = (5.843u,5.563u);
+ z71\0\15 = (5.982u,5.840u);
+ z71\0\16c1 = (6.628u,7.129u);
+ z71\0\16c2 = (2.638u,6.971u);
+ z71\0\16 = (2.208u,6.174u);
+ z71\0\17c1 = (1.807u,5.428u);
+ z71\0\17c2 = (3.110u,5.280u);
+ z71\0\17 = (3.470u,4.916u);
+ z71\0\18c1 = (3.720u,4.663u);
+ z71\0\18c2 = (3.753u,4.412u);
+ z71\1\0s = (4.336u,0.482u);
+ z71\1\0c1 = (4.519u,0.157u);
+ z71\1\0c2 = (4.670u,-0.127u);
+ z71\1\0 = (4.918u,-0.413u);
+ z71\1\1c1 = (5.344u,-0.907u);
+ z71\1\1c2 = (6.244u,-1.531u);
+ z71\1\1 = (6.395u,-2.165u);
+ z71\1\2c1 = (6.690u,-3.401u);
+ z71\1\2c2 = (4.933u,-3.637u);
+ z71\1\2 = (4.120u,-3.232u);
+ z71\1\3c1 = (3.092u,-2.720u);
+ z71\1\3c2 = (2.578u,-1.248u);
+ z71\1\3 = (2.168u,-0.241u);
+ z71\2\0s = (2.168u,-6.504u);
+ z71\2\0c1 = (3.223u,-7.747u);
+ z71\2\0c2 = (4.400u,-8.341u);
+ z71\2\0 = (6.022u,-8.431u);
+ z71\2\1 = (6.022u,-4.095u);
+ z71\2\2c1 = (4.585u,-4.626u);
+ z71\2\2c2 = (3.332u,-5.520u);
+ z71\3\0s = (5.541u,-4.818u);
+ z71\3\0 = (5.541u,-8.190u);
+ z71\3\1c1 = (4.654u,-7.789u);
+ z71\3\1c2 = (3.926u,-7.302u);
+ z71\3\1 = (3.132u,-6.745u);
+ z71\3\2 = (3.132u,-6.263u);
+ fill_or_unfill z71\0\0s
+ ..controls z71\0\0c1 and z71\0\0c2..z71\0\0
+ --z71\0\1
+ ..controls z71\0\2c1 and z71\0\2c2..z71\0\2
+ ..controls z71\0\3c1 and z71\0\3c2..z71\0\3
+ ..controls z71\0\4c1 and z71\0\4c2..z71\0\4
+ ..controls z71\0\5c1 and z71\0\5c2..z71\0\5
+ ..controls z71\0\6c1 and z71\0\6c2..z71\0\6
+ ..controls z71\0\7c1 and z71\0\7c2..z71\0\7
+ ..controls z71\0\8c1 and z71\0\8c2..z71\0\8
+ ..controls z71\0\9c1 and z71\0\9c2..z71\0\9
+ ..controls z71\0\10c1 and z71\0\10c2..z71\0\10
+ ..controls z71\0\11c1 and z71\0\11c2..z71\0\11
+ ..controls z71\0\12c1 and z71\0\12c2..z71\0\12
+ ..controls z71\0\13c1 and z71\0\13c2..z71\0\13
+ --z71\0\14
+ ..controls z71\0\15c1 and z71\0\15c2..z71\0\15
+ ..controls z71\0\16c1 and z71\0\16c2..z71\0\16
+ ..controls z71\0\17c1 and z71\0\17c2..z71\0\17
+ ..controls z71\0\18c1 and z71\0\18c2..cycle;
+ fill_or_unfill z71\1\0s
+ ..controls z71\1\0c1 and z71\1\0c2..z71\1\0
+ ..controls z71\1\1c1 and z71\1\1c2..z71\1\1
+ ..controls z71\1\2c1 and z71\1\2c2..z71\1\2
+ ..controls z71\1\3c1 and z71\1\3c2..z71\1\3
+ --cycle;
+ fill_or_unfill z71\2\0s
+ ..controls z71\2\0c1 and z71\2\0c2..z71\2\0
+ --z71\2\1
+ ..controls z71\2\2c1 and z71\2\2c2..cycle;
+ fill_or_unfill z71\3\0s
+ --z71\3\0
+ ..controls z71\3\1c1 and z71\3\1c2..z71\3\1
+ --z71\3\2
+ --cycle;
+ proof_labels (
+ 71\0\0,
+ 71\0\1,
+ 71\0\2,
+ 71\0\3,
+ 71\0\4,
+ 71\0\5,
+ 71\0\6,
+ 71\0\7,
+ 71\0\8,
+ 71\0\9,
+ 71\0\10,
+ 71\0\11,
+ 71\0\12,
+ 71\0\13,
+ 71\0\14,
+ 71\0\15,
+ 71\0\16,
+ 71\0\17,
+ 71\0\18,
+ 71\1\0,
+ 71\1\1,
+ 71\1\2,
+ 71\1\3,
+ 71\1\4,
+ 71\2\0,
+ 71\2\1,
+ 71\2\2,
+ 71\3\0,
+ 71\3\1,
+ 71\3\2,
+ 71\3\3,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+beginchar (TIB_CHWA, 10.359u#, 6.745u#, 6.504u#);
+ "chwa";
+ z78\0\0s = (2.409u,5.300u);
+ z78\0\0c1 = (4.039u,5.279u);
+ z78\0\0c2 = (4.673u,5.157u);
+ z78\0\0 = (4.818u,3.372u);
+ z78\0\1c1 = (-0.471u,3.114u);
+ z78\0\1c2 = (-0.341u,-1.388u);
+ z78\0\1 = (2.410u,-1.660u);
+ z78\0\2c1 = (3.597u,-1.777u);
+ z78\0\2c2 = (4.255u,-1.534u);
+ z78\0\2 = (4.818u,-0.482u);
+ z78\0\3 = (5.300u,-0.482u);
+ z78\0\4c1 = (5.421u,-0.718u);
+ z78\0\4c2 = (5.482u,-0.923u);
+ z78\0\4 = (5.671u,-1.129u);
+ z78\0\5c1 = (6.351u,-1.873u);
+ z78\0\5c2 = (7.743u,-1.686u);
+ z78\0\5 = (8.672u,-1.686u);
+ z78\0\6 = (5.059u,-4.336u);
+ z78\0\7c1 = (6.114u,-5.579u);
+ z78\0\7c2 = (7.290u,-6.173u);
+ z78\0\7 = (8.930u,-6.263u);
+ z78\0\8c1 = (8.913u,-5.102u);
+ z78\0\8c2 = (8.791u,-3.793u);
+ z78\0\8 = (8.930u,-2.650u);
+ z78\0\9c1 = (9.033u,-2.021u);
+ z78\0\9c2 = (9.327u,-1.544u);
+ z78\0\9 = (9.546u,-0.964u);
+ z78\0\10c1 = (10.117u,0.551u);
+ z78\0\10c2 = (9.854u,1.756u);
+ z78\0\10 = (8.428u,2.649u);
+ z78\0\11c1 = (8.057u,2.882u);
+ z78\0\11c2 = (7.646u,3.031u);
+ z78\0\11 = (7.227u,3.149u);
+ z78\0\12c1 = (6.685u,3.303u);
+ z78\0\12c2 = (5.609u,3.363u);
+ z78\0\12 = (5.340u,3.926u);
+ z78\0\13c1 = (5.244u,4.127u);
+ z78\0\13c2 = (5.250u,4.326u);
+ z78\0\13 = (5.340u,4.527u);
+ z78\0\14c1 = (5.826u,5.619u);
+ z78\0\14c2 = (7.909u,5.081u);
+ z78\0\14 = (8.391u,5.903u);
+ z78\0\15c1 = (8.904u,6.777u);
+ z78\0\15c2 = (7.137u,6.742u);
+ z78\0\15 = (6.745u,6.745u);
+ z78\0\16c1 = (5.881u,6.751u);
+ z78\0\16c2 = (3.373u,6.937u);
+ z78\0\16 = (2.794u,6.360u);
+ z78\0\17c1 = (2.489u,6.056u);
+ z78\0\17c2 = (2.475u,5.694u);
+ z78\1\0s = (3.844u,2.043u);
+ z78\1\0c1 = (4.074u,2.062u);
+ z78\1\0c2 = (4.246u,2.117u);
+ z78\1\0 = (4.473u,2.043u);
+ z78\1\1c1 = (5.638u,1.521u);
+ z78\1\1c2 = (4.515u,-0.972u);
+ z78\1\1 = (3.128u,-1.263u);
+ z78\1\2c1 = (1.600u,-1.583u);
+ z78\1\2c2 = (-0.334u,1.003u);
+ z78\2\0s = (5.300u,2.168u);
+ z78\2\0 = (7.227u,1.527u);
+ z78\2\1c1 = (7.621u,1.384u);
+ z78\2\1c2 = (8.054u,1.254u);
+ z78\2\1 = (8.396u,1.002u);
+ z78\2\2c1 = (10.778u,-0.751u);
+ z78\2\2c2 = (6.410u,-3.006u);
+ z78\2\2 = (5.423u,0.242u);
+ z78\2\3c1 = (5.255u,0.795u);
+ z78\2\3c2 = (5.300u,1.584u);
+ z78\3\0s = (8.431u,-2.650u);
+ z78\3\0 = (8.431u,-6.022u);
+ z78\3\1c1 = (7.545u,-5.621u);
+ z78\3\1c2 = (6.816u,-5.134u);
+ z78\3\1 = (6.022u,-4.577u);
+ z78\3\2 = (6.022u,-4.095u);
+ fill_or_unfill z78\0\0s
+ ..controls z78\0\0c1 and z78\0\0c2..z78\0\0
+ ..controls z78\0\1c1 and z78\0\1c2..z78\0\1
+ ..controls z78\0\2c1 and z78\0\2c2..z78\0\2
+ --z78\0\3
+ ..controls z78\0\4c1 and z78\0\4c2..z78\0\4
+ ..controls z78\0\5c1 and z78\0\5c2..z78\0\5
+ --z78\0\6
+ ..controls z78\0\7c1 and z78\0\7c2..z78\0\7
+ ..controls z78\0\8c1 and z78\0\8c2..z78\0\8
+ ..controls z78\0\9c1 and z78\0\9c2..z78\0\9
+ ..controls z78\0\10c1 and z78\0\10c2..z78\0\10
+ ..controls z78\0\11c1 and z78\0\11c2..z78\0\11
+ ..controls z78\0\12c1 and z78\0\12c2..z78\0\12
+ ..controls z78\0\13c1 and z78\0\13c2..z78\0\13
+ ..controls z78\0\14c1 and z78\0\14c2..z78\0\14
+ ..controls z78\0\15c1 and z78\0\15c2..z78\0\15
+ ..controls z78\0\16c1 and z78\0\16c2..z78\0\16
+ ..controls z78\0\17c1 and z78\0\17c2..cycle;
+ fill_or_unfill z78\1\0s
+ ..controls z78\1\0c1 and z78\1\0c2..z78\1\0
+ ..controls z78\1\1c1 and z78\1\1c2..z78\1\1
+ ..controls z78\1\2c1 and z78\1\2c2..cycle;
+ fill_or_unfill z78\2\0s
+ --z78\2\0
+ ..controls z78\2\1c1 and z78\2\1c2..z78\2\1
+ ..controls z78\2\2c1 and z78\2\2c2..z78\2\2
+ ..controls z78\2\3c1 and z78\2\3c2..cycle;
+ fill_or_unfill z78\3\0s
+ --z78\3\0
+ ..controls z78\3\1c1 and z78\3\1c2..z78\3\1
+ --z78\3\2
+ --cycle;
+ proof_labels (
+ 78\0\0,
+ 78\0\1,
+ 78\0\2,
+ 78\0\3,
+ 78\0\4,
+ 78\0\5,
+ 78\0\6,
+ 78\0\7,
+ 78\0\8,
+ 78\0\9,
+ 78\0\10,
+ 78\0\11,
+ 78\0\12,
+ 78\0\13,
+ 78\0\14,
+ 78\0\15,
+ 78\0\16,
+ 78\0\17,
+ 78\1\0,
+ 78\1\1,
+ 78\1\2,
+ 78\2\0,
+ 78\2\1,
+ 78\2\2,
+ 78\2\3,
+ 78\3\0,
+ 78\3\1,
+ 78\3\2,
+ 78\3\3,
+);
+endchar;
+
+beginchar (TIB_ZHWA, 9.636u#, 6.745u#, 7.227u#);
+ "zhwa";
+ z72\0\0s = (4.818u,-3.372u);
+ z72\0\0c1 = (3.943u,-2.020u);
+ z72\0\0c2 = (2.586u,-2.616u);
+ z72\0\0 = (1.592u,-0.241u);
+ z72\0\1c1 = (0.919u,1.365u);
+ z72\0\1c2 = (0.575u,3.341u);
+ z72\0\1 = (1.981u,4.665u);
+ z72\0\2c1 = (2.767u,5.406u);
+ z72\0\2c2 = (3.298u,5.521u);
+ z72\0\2 = (4.336u,5.540u);
+ z72\0\3c1 = (5.310u,5.557u);
+ z72\0\3c2 = (6.673u,5.661u);
+ z72\0\3 = (7.314u,4.764u);
+ z72\0\4c1 = (7.650u,4.293u);
+ z72\0\4c2 = (7.553u,3.894u);
+ z72\0\4 = (7.468u,3.372u);
+ z72\0\5 = (6.263u,3.928u);
+ z72\0\6c1 = (5.103u,4.296u);
+ z72\0\6c2 = (3.476u,4.238u);
+ z72\0\6 = (3.093u,2.880u);
+ z72\0\7c1 = (2.908u,2.433u);
+ z72\0\7c2 = (2.898u,1.912u);
+ z72\0\7 = (3.093u,1.496u);
+ z72\0\8c1 = (3.307u,1.203u);
+ z72\0\8c2 = (3.574u,0.990u);
+ z72\0\8 = (3.868u,0.833u);
+ z72\0\9c1 = (5.353u,0.040u);
+ z72\0\9c2 = (6.319u,1.388u);
+ z72\0\9 = (7.022u,0.967u);
+ z72\0\10c1 = (7.409u,0.736u);
+ z72\0\10c2 = (7.867u,-0.521u);
+ z72\0\10 = (8.020u,-0.964u);
+ z72\0\11c1 = (9.333u,-4.781u);
+ z72\0\11c2 = (7.406u,-3.839u);
+ z72\0\11 = (5.059u,-5.541u);
+ z72\0\12c1 = (6.349u,-6.256u);
+ z72\0\12c2 = (7.673u,-6.852u);
+ z72\0\12 = (9.154u,-6.986u);
+ z72\0\13c1 = (9.154u,-4.445u);
+ z72\0\13c2 = (9.319u,0.648u);
+ z72\0\13 = (7.709u,2.650u);
+ z72\0\14c1 = (7.966u,3.042u);
+ z72\0\14c2 = (8.224u,3.376u);
+ z72\0\14 = (8.308u,3.854u);
+ z72\0\15c1 = (8.507u,4.994u);
+ z72\0\15c2 = (7.546u,6.244u);
+ z72\0\15 = (6.495u,6.589u);
+ z72\0\16c1 = (5.584u,6.888u);
+ z72\0\16c2 = (3.532u,6.726u);
+ z72\0\16 = (2.659u,6.336u);
+ z72\0\17c1 = (1.616u,5.869u);
+ z72\0\17c2 = (1.212u,4.893u);
+ z72\0\17 = (0.939u,3.854u);
+ z72\0\18c1 = (0.778u,3.241u);
+ z72\0\18c2 = (0.620u,2.564u);
+ z72\0\18 = (0.621u,1.927u);
+ z72\0\19c1 = (0.621u,0.071u);
+ z72\0\19c2 = (1.588u,-2.337u);
+ z72\0\19 = (3.373u,-3.111u);
+ z72\0\20c1 = (3.863u,-3.324u);
+ z72\0\20c2 = (4.297u,-3.342u);
+ z72\1\0s = (6.504u,1.686u);
+ z72\1\0c1 = (6.120u,1.478u);
+ z72\1\0c2 = (5.734u,1.234u);
+ z72\1\0 = (5.300u,1.141u);
+ z72\1\1c1 = (4.819u,1.039u);
+ z72\1\1c2 = (4.299u,1.119u);
+ z72\1\1 = (3.894u,1.411u);
+ z72\1\2c1 = (2.282u,2.575u);
+ z72\1\2c2 = (5.135u,4.273u);
+ z72\2\0s = (8.672u,-4.336u);
+ z72\2\0 = (8.672u,-6.745u);
+ z72\2\1 = (5.782u,-5.541u);
+ z72\2\2c1 = (6.658u,-4.971u);
+ z72\2\2c2 = (7.666u,-4.608u);
+ fill_or_unfill z72\0\0s
+ ..controls z72\0\0c1 and z72\0\0c2..z72\0\0
+ ..controls z72\0\1c1 and z72\0\1c2..z72\0\1
+ ..controls z72\0\2c1 and z72\0\2c2..z72\0\2
+ ..controls z72\0\3c1 and z72\0\3c2..z72\0\3
+ ..controls z72\0\4c1 and z72\0\4c2..z72\0\4
+ --z72\0\5
+ ..controls z72\0\6c1 and z72\0\6c2..z72\0\6
+ ..controls z72\0\7c1 and z72\0\7c2..z72\0\7
+ ..controls z72\0\8c1 and z72\0\8c2..z72\0\8
+ ..controls z72\0\9c1 and z72\0\9c2..z72\0\9
+ ..controls z72\0\10c1 and z72\0\10c2..z72\0\10
+ ..controls z72\0\11c1 and z72\0\11c2..z72\0\11
+ ..controls z72\0\12c1 and z72\0\12c2..z72\0\12
+ ..controls z72\0\13c1 and z72\0\13c2..z72\0\13
+ ..controls z72\0\14c1 and z72\0\14c2..z72\0\14
+ ..controls z72\0\15c1 and z72\0\15c2..z72\0\15
+ ..controls z72\0\16c1 and z72\0\16c2..z72\0\16
+ ..controls z72\0\17c1 and z72\0\17c2..z72\0\17
+ ..controls z72\0\18c1 and z72\0\18c2..z72\0\18
+ ..controls z72\0\19c1 and z72\0\19c2..z72\0\19
+ ..controls z72\0\20c1 and z72\0\20c2..cycle;
+ fill_or_unfill z72\1\0s
+ ..controls z72\1\0c1 and z72\1\0c2..z72\1\0
+ ..controls z72\1\1c1 and z72\1\1c2..z72\1\1
+ ..controls z72\1\2c1 and z72\1\2c2..cycle;
+ fill_or_unfill z72\2\0s
+ --z72\2\0
+ --z72\2\1
+ ..controls z72\2\2c1 and z72\2\2c2..cycle;
+ proof_labels (
+ 72\0\0,
+ 72\0\1,
+ 72\0\2,
+ 72\0\3,
+ 72\0\4,
+ 72\0\5,
+ 72\0\6,
+ 72\0\7,
+ 72\0\8,
+ 72\0\9,
+ 72\0\10,
+ 72\0\11,
+ 72\0\12,
+ 72\0\13,
+ 72\0\14,
+ 72\0\15,
+ 72\0\16,
+ 72\0\17,
+ 72\0\18,
+ 72\0\19,
+ 72\0\20,
+ 72\1\0,
+ 72\1\1,
+ 72\1\2,
+ 72\2\0,
+ 72\2\1,
+ 72\2\2,
+);
+endchar;
+
+beginchar (TIB_ZWA, 8.190u#, 6.745u#, 5.782u#);
+ "zwa";
+ z73\0\0s = (6.986u,5.300u);
+ z73\0\0 = (6.986u,3.817u);
+ z73\0\1c1 = (6.205u,3.854u);
+ z73\0\1c2 = (2.424u,3.915u);
+ z73\0\1 = (1.962u,3.817u);
+ z73\0\2c1 = (1.702u,3.702u);
+ z73\0\2c2 = (1.473u,3.589u);
+ z73\0\2 = (1.384u,3.311u);
+ z73\0\3c1 = (1.055u,2.290u);
+ z73\0\3c2 = (2.843u,2.410u);
+ z73\0\3 = (3.372u,2.409u);
+ z73\0\4 = (6.986u,2.409u);
+ z73\0\5 = (6.986u,0.723u);
+ z73\0\6 = (4.818u,1.126u);
+ z73\0\7c1 = (3.280u,1.259u);
+ z73\0\7c2 = (1.816u,0.684u);
+ z73\0\7 = (0.482u,0.000u);
+ z73\0\8c1 = (0.623u,-0.438u);
+ z73\0\8c2 = (0.700u,-0.867u);
+ z73\0\8 = (1.239u,-0.967u);
+ z73\0\9c1 = (1.675u,-1.048u);
+ z73\0\9c2 = (2.433u,-0.678u);
+ z73\0\9 = (2.891u,-0.572u);
+ z73\0\10c1 = (3.481u,-0.434u);
+ z73\0\10c2 = (4.213u,-0.324u);
+ z73\0\10 = (4.818u,-0.353u);
+ z73\0\11c1 = (5.621u,-0.392u);
+ z73\0\11c2 = (6.467u,-0.715u);
+ z73\0\11 = (7.227u,-0.964u);
+ z73\0\12 = (7.227u,-1.445u);
+ z73\0\13c1 = (5.960u,-2.011u);
+ z73\0\13c2 = (4.912u,-2.719u);
+ z73\0\13 = (3.854u,-3.613u);
+ z73\0\14c1 = (4.909u,-4.856u);
+ z73\0\14c2 = (6.086u,-5.450u);
+ z73\0\14 = (7.709u,-5.541u);
+ z73\0\15 = (7.709u,4.336u);
+ z73\0\16c1 = (7.708u,4.882u);
+ z73\0\16c2 = (7.770u,5.929u);
+ z73\0\16 = (7.426u,6.366u);
+ z73\0\17c1 = (7.283u,6.548u);
+ z73\0\17c2 = (7.148u,6.610u);
+ z73\0\17 = (6.932u,6.638u);
+ z73\0\18c1 = (6.438u,6.822u);
+ z73\0\18c2 = (2.165u,6.800u);
+ z73\0\18 = (1.763u,6.638u);
+ z73\0\19c1 = (1.526u,6.484u);
+ z73\0\19c2 = (1.356u,6.301u);
+ z73\0\19 = (1.356u,6.022u);
+ z73\0\20c1 = (1.356u,5.164u);
+ z73\0\20c2 = (2.818u,5.301u);
+ z73\0\20 = (3.372u,5.300u);
+ z73\1\0s = (7.227u,-1.927u);
+ z73\1\0 = (7.227u,-5.300u);
+ z73\1\1c1 = (6.341u,-4.899u);
+ z73\1\1c2 = (5.612u,-4.411u);
+ z73\1\1 = (4.818u,-3.854u);
+ z73\1\2 = (4.818u,-3.372u);
+ fill_or_unfill z73\0\0s
+ --z73\0\0
+ ..controls z73\0\1c1 and z73\0\1c2..z73\0\1
+ ..controls z73\0\2c1 and z73\0\2c2..z73\0\2
+ ..controls z73\0\3c1 and z73\0\3c2..z73\0\3
+ --z73\0\4
+ --z73\0\5
+ --z73\0\6
+ ..controls z73\0\7c1 and z73\0\7c2..z73\0\7
+ ..controls z73\0\8c1 and z73\0\8c2..z73\0\8
+ ..controls z73\0\9c1 and z73\0\9c2..z73\0\9
+ ..controls z73\0\10c1 and z73\0\10c2..z73\0\10
+ ..controls z73\0\11c1 and z73\0\11c2..z73\0\11
+ --z73\0\12
+ ..controls z73\0\13c1 and z73\0\13c2..z73\0\13
+ ..controls z73\0\14c1 and z73\0\14c2..z73\0\14
+ --z73\0\15
+ ..controls z73\0\16c1 and z73\0\16c2..z73\0\16
+ ..controls z73\0\17c1 and z73\0\17c2..z73\0\17
+ ..controls z73\0\18c1 and z73\0\18c2..z73\0\18
+ ..controls z73\0\19c1 and z73\0\19c2..z73\0\19
+ ..controls z73\0\20c1 and z73\0\20c2..z73\0\20
+ --cycle;
+ fill_or_unfill z73\1\0s
+ --z73\1\0
+ ..controls z73\1\1c1 and z73\1\1c2..z73\1\1
+ --z73\1\2
+ --cycle;
+ proof_labels (
+ 73\0\0,
+ 73\0\1,
+ 73\0\2,
+ 73\0\3,
+ 73\0\4,
+ 73\0\5,
+ 73\0\6,
+ 73\0\7,
+ 73\0\8,
+ 73\0\9,
+ 73\0\10,
+ 73\0\11,
+ 73\0\12,
+ 73\0\13,
+ 73\0\14,
+ 73\0\15,
+ 73\0\16,
+ 73\0\17,
+ 73\0\18,
+ 73\0\19,
+ 73\0\20,
+ 73\0\21,
+ 73\1\0,
+ 73\1\1,
+ 73\1\2,
+ 73\1\3,
+);
+endchar;
+
+beginchar (TIB_RWA, 10.359u#, 6.745u#, 6.263u#);
+ "rwa";
+ z74\0\0s = (3.854u,5.300u);
+ z74\0\0c1 = (3.787u,4.909u);
+ z74\0\0c2 = (3.774u,4.572u);
+ z74\0\0 = (3.469u,4.273u);
+ z74\0\1c1 = (2.832u,3.646u);
+ z74\0\1c2 = (1.680u,4.037u);
+ z74\0\1 = (0.905u,2.866u);
+ z74\0\2c1 = (0.748u,2.629u);
+ z74\0\2c2 = (0.604u,2.297u);
+ z74\0\2 = (0.680u,2.046u);
+ z74\0\3c1 = (0.903u,1.152u);
+ z74\0\3c2 = (2.580u,2.004u);
+ z74\0\3 = (3.132u,2.046u);
+ z74\0\4c1 = (4.735u,2.325u);
+ z74\0\4c2 = (8.042u,1.246u);
+ z74\0\4 = (8.811u,-0.251u);
+ z74\0\5c1 = (8.957u,-0.534u);
+ z74\0\5c2 = (9.069u,-0.861u);
+ z74\0\5 = (8.996u,-1.183u);
+ z74\0\6c1 = (8.867u,-1.746u);
+ z74\0\6c2 = (8.150u,-2.225u);
+ z74\0\6 = (7.708u,-2.547u);
+ z74\0\7 = (5.782u,-3.854u);
+ z74\0\8c1 = (6.368u,-4.440u);
+ z74\0\8c2 = (8.143u,-5.573u);
+ z74\0\8 = (8.913u,-5.849u);
+ z74\0\9c1 = (9.237u,-5.965u);
+ z74\0\9c2 = (9.541u,-5.984u);
+ z74\0\9 = (9.877u,-6.022u);
+ z74\0\10 = (9.877u,-2.891u);
+ z74\0\11c1 = (9.875u,-1.611u);
+ z74\0\11c2 = (9.855u,-0.680u);
+ z74\0\11 = (9.214u,0.482u);
+ z74\0\12c1 = (8.579u,1.633u);
+ z74\0\12c2 = (7.446u,2.811u);
+ z74\0\12 = (6.263u,3.393u);
+ z74\0\13c1 = (5.795u,3.624u);
+ z74\0\13c2 = (4.624u,3.921u);
+ z74\0\13 = (4.624u,4.574u);
+ z74\0\14c1 = (4.624u,5.697u);
+ z74\0\14c2 = (6.802u,4.882u);
+ z74\0\14 = (7.463u,5.857u);
+ z74\0\15c1 = (7.651u,6.135u);
+ z74\0\15c2 = (7.656u,6.431u);
+ z74\0\15 = (7.709u,6.707u);
+ z74\0\16c1 = (6.879u,6.745u);
+ z74\0\16c2 = (2.672u,6.808u);
+ z74\0\16 = (2.203u,6.707u);
+ z74\0\17c1 = (1.943u,6.593u);
+ z74\0\17c2 = (1.714u,6.480u);
+ z74\0\17 = (1.624u,6.201u);
+ z74\0\18c1 = (1.278u,5.126u);
+ z74\0\18c2 = (3.311u,5.300u);
+ z74\1\0s = (9.395u,-1.927u);
+ z74\1\0 = (9.395u,-5.782u);
+ z74\1\1c1 = (8.415u,-5.182u);
+ z74\1\1c2 = (7.384u,-4.592u);
+ z74\1\1 = (6.504u,-3.854u);
+ fill_or_unfill z74\0\0s
+ ..controls z74\0\0c1 and z74\0\0c2..z74\0\0
+ ..controls z74\0\1c1 and z74\0\1c2..z74\0\1
+ ..controls z74\0\2c1 and z74\0\2c2..z74\0\2
+ ..controls z74\0\3c1 and z74\0\3c2..z74\0\3
+ ..controls z74\0\4c1 and z74\0\4c2..z74\0\4
+ ..controls z74\0\5c1 and z74\0\5c2..z74\0\5
+ ..controls z74\0\6c1 and z74\0\6c2..z74\0\6
+ --z74\0\7
+ ..controls z74\0\8c1 and z74\0\8c2..z74\0\8
+ ..controls z74\0\9c1 and z74\0\9c2..z74\0\9
+ --z74\0\10
+ ..controls z74\0\11c1 and z74\0\11c2..z74\0\11
+ ..controls z74\0\12c1 and z74\0\12c2..z74\0\12
+ ..controls z74\0\13c1 and z74\0\13c2..z74\0\13
+ ..controls z74\0\14c1 and z74\0\14c2..z74\0\14
+ ..controls z74\0\15c1 and z74\0\15c2..z74\0\15
+ ..controls z74\0\16c1 and z74\0\16c2..z74\0\16
+ ..controls z74\0\17c1 and z74\0\17c2..z74\0\17
+ ..controls z74\0\18c1 and z74\0\18c2..cycle;
+ fill_or_unfill z74\1\0s
+ --z74\1\0
+ ..controls z74\1\1c1 and z74\1\1c2..z74\1\1
+ --cycle;
+ proof_labels (
+ 74\0\0,
+ 74\0\1,
+ 74\0\2,
+ 74\0\3,
+ 74\0\4,
+ 74\0\5,
+ 74\0\6,
+ 74\0\7,
+ 74\0\8,
+ 74\0\9,
+ 74\0\10,
+ 74\0\11,
+ 74\0\12,
+ 74\0\13,
+ 74\0\14,
+ 74\0\15,
+ 74\0\16,
+ 74\0\17,
+ 74\0\18,
+ 74\1\0,
+ 74\1\1,
+ 74\1\2,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+beginchar (TIB_RYA, 10.118u#, 6.745u#, 7.227u#);
+ "rya";
+ z123\0\0s = (1.204u,5.300u);
+ z123\0\0c1 = (2.590u,5.035u);
+ z123\0\0c2 = (2.846u,4.774u);
+ z123\0\0 = (3.613u,3.613u);
+ z123\0\1c1 = (2.557u,3.421u);
+ z123\0\1c2 = (0.748u,3.311u);
+ z123\0\1 = (0.667u,1.924u);
+ z123\0\2c1 = (0.584u,1.653u);
+ z123\0\2c2 = (0.671u,1.457u);
+ z123\0\2 = (0.667u,1.204u);
+ z123\0\3c1 = (1.607u,1.454u);
+ z123\0\3c2 = (2.436u,1.895u);
+ z123\0\3 = (3.372u,1.908u);
+ z123\0\4c1 = (5.336u,1.934u);
+ z123\0\4c2 = (9.772u,0.538u);
+ z123\0\4 = (8.707u,-2.168u);
+ z123\0\5c1 = (8.447u,-2.826u);
+ z123\0\5c2 = (7.891u,-3.455u);
+ z123\0\5 = (7.224u,-3.710u);
+ z123\0\6c1 = (6.852u,-3.853u);
+ z123\0\6c2 = (6.414u,-3.850u);
+ z123\0\6 = (6.022u,-3.894u);
+ z123\0\7 = (5.059u,-4.017u);
+ z123\0\8c1 = (4.475u,-4.061u);
+ z123\0\8c2 = (3.948u,-3.950u);
+ z123\0\8 = (3.372u,-3.895u);
+ z123\0\9 = (0.482u,-3.613u);
+ z123\0\10 = (0.853u,-4.296u);
+ z123\0\11c1 = (1.386u,-5.001u);
+ z123\0\11c2 = (3.027u,-6.336u);
+ z123\0\11 = (3.854u,-6.663u);
+ z123\0\12c1 = (5.234u,-7.208u);
+ z123\0\12c2 = (6.842u,-7.049u);
+ z123\0\12 = (8.189u,-6.512u);
+ z123\0\13c1 = (8.648u,-6.329u);
+ z123\0\13c2 = (9.115u,-6.155u);
+ z123\0\13 = (9.390u,-5.715u);
+ z123\0\14c1 = (9.646u,-5.306u);
+ z123\0\14c2 = (9.620u,-4.798u);
+ z123\0\14 = (9.636u,-4.336u);
+ z123\0\15 = (7.468u,-5.645u);
+ z123\0\16c1 = (5.423u,-6.606u);
+ z123\0\16c2 = (4.250u,-5.285u);
+ z123\0\16 = (2.409u,-4.813u);
+ z123\0\17c1 = (3.192u,-4.659u);
+ z123\0\17c2 = (3.794u,-4.779u);
+ z123\0\17 = (4.577u,-4.813u);
+ z123\0\18c1 = (5.725u,-4.851u);
+ z123\0\18c2 = (7.937u,-4.619u);
+ z123\0\18 = (8.745u,-3.735u);
+ z123\0\19c1 = (9.179u,-3.259u);
+ z123\0\19c2 = (9.323u,-2.549u);
+ z123\0\19 = (9.373u,-1.927u);
+ z123\0\20c1 = (9.480u,-0.596u);
+ z123\0\20c2 = (9.309u,0.174u);
+ z123\0\20 = (8.390u,1.182u);
+ z123\0\21c1 = (7.910u,1.709u);
+ z123\0\21c2 = (7.302u,2.237u);
+ z123\0\21 = (6.705u,2.627u);
+ z123\0\22c1 = (6.037u,3.064u);
+ z123\0\22c2 = (4.439u,3.453u);
+ z123\0\22 = (4.136u,4.144u);
+ z123\0\23c1 = (3.538u,5.507u);
+ z123\0\23c2 = (6.103u,5.192u);
+ z123\0\23 = (6.712u,5.546u);
+ z123\0\24c1 = (7.135u,5.791u);
+ z123\0\24c2 = (7.258u,6.097u);
+ z123\0\24 = (7.468u,6.504u);
+ z123\0\25c1 = (6.315u,6.785u);
+ z123\0\25c2 = (2.691u,7.031u);
+ z123\0\25 = (1.761u,6.299u);
+ z123\0\26c1 = (1.396u,6.010u);
+ z123\0\26c2 = (1.335u,5.714u);
+ fill_or_unfill z123\0\0s
+ ..controls z123\0\0c1 and z123\0\0c2..z123\0\0
+ ..controls z123\0\1c1 and z123\0\1c2..z123\0\1
+ ..controls z123\0\2c1 and z123\0\2c2..z123\0\2
+ ..controls z123\0\3c1 and z123\0\3c2..z123\0\3
+ ..controls z123\0\4c1 and z123\0\4c2..z123\0\4
+ ..controls z123\0\5c1 and z123\0\5c2..z123\0\5
+ ..controls z123\0\6c1 and z123\0\6c2..z123\0\6
+ --z123\0\7
+ ..controls z123\0\8c1 and z123\0\8c2..z123\0\8
+ --z123\0\9
+ --z123\0\10
+ ..controls z123\0\11c1 and z123\0\11c2..z123\0\11
+ ..controls z123\0\12c1 and z123\0\12c2..z123\0\12
+ ..controls z123\0\13c1 and z123\0\13c2..z123\0\13
+ ..controls z123\0\14c1 and z123\0\14c2..z123\0\14
+ --z123\0\15
+ ..controls z123\0\16c1 and z123\0\16c2..z123\0\16
+ ..controls z123\0\17c1 and z123\0\17c2..z123\0\17
+ ..controls z123\0\18c1 and z123\0\18c2..z123\0\18
+ ..controls z123\0\19c1 and z123\0\19c2..z123\0\19
+ ..controls z123\0\20c1 and z123\0\20c2..z123\0\20
+ ..controls z123\0\21c1 and z123\0\21c2..z123\0\21
+ ..controls z123\0\22c1 and z123\0\22c2..z123\0\22
+ ..controls z123\0\23c1 and z123\0\23c2..z123\0\23
+ ..controls z123\0\24c1 and z123\0\24c2..z123\0\24
+ ..controls z123\0\25c1 and z123\0\25c2..z123\0\25
+ ..controls z123\0\26c1 and z123\0\26c2..cycle;
+ proof_labels (
+ 123\0\0,
+ 123\0\1,
+ 123\0\2,
+ 123\0\3,
+ 123\0\4,
+ 123\0\5,
+ 123\0\6,
+ 123\0\7,
+ 123\0\8,
+ 123\0\9,
+ 123\0\10,
+ 123\0\11,
+ 123\0\12,
+ 123\0\13,
+ 123\0\14,
+ 123\0\15,
+ 123\0\16,
+ 123\0\17,
+ 123\0\18,
+ 123\0\19,
+ 123\0\20,
+ 123\0\21,
+ 123\0\22,
+ 123\0\23,
+ 123\0\24,
+ 123\0\25,
+ 123\0\26,
+);
+endchar;
+
+beginchar (TIB_LWA, 10.840u#, 6.745u#, 4.818u#);
+ "lwa";
+ z75\0\0s = (1.445u,1.445u);
+ z75\0\0c1 = (1.328u,2.037u);
+ z75\0\0c2 = (1.090u,2.774u);
+ z75\0\0 = (1.192u,3.372u);
+ z75\0\1c1 = (1.636u,5.977u);
+ z75\0\1c2 = (5.667u,5.692u);
+ z75\0\1 = (5.667u,3.888u);
+ z75\0\2c1 = (5.667u,2.791u);
+ z75\0\2c2 = (3.618u,3.285u);
+ z75\0\2 = (2.896u,2.114u);
+ z75\0\3c1 = (2.715u,1.820u);
+ z75\0\3c2 = (2.704u,1.530u);
+ z75\0\3 = (2.650u,1.204u);
+ z75\0\4c1 = (3.529u,1.340u);
+ z75\0\4c2 = (4.408u,1.673u);
+ z75\0\4 = (5.300u,1.667u);
+ z75\0\5c1 = (6.183u,1.660u);
+ z75\0\5c2 = (9.690u,0.650u);
+ z75\0\5 = (9.114u,-0.636u);
+ z75\0\6c1 = (8.844u,-1.236u);
+ z75\0\6c2 = (6.677u,-2.277u);
+ z75\0\6 = (6.022u,-2.650u);
+ z75\0\7c1 = (6.870u,-3.460u);
+ z75\0\7c2 = (8.737u,-4.252u);
+ z75\0\7 = (9.914u,-4.577u);
+ z75\0\8 = (9.914u,2.168u);
+ z75\0\9 = (9.914u,3.613u);
+ z75\0\10 = (10.263u,5.299u);
+ z75\0\11c1 = (10.331u,5.577u);
+ z75\0\11c2 = (10.336u,5.930u);
+ z75\0\11 = (10.263u,6.188u);
+ z75\0\12c1 = (9.991u,6.656u);
+ z75\0\12c2 = (9.420u,6.785u);
+ z75\0\12 = (8.948u,6.665u);
+ z75\0\13c1 = (8.581u,6.572u);
+ z75\0\13c2 = (8.372u,6.382u);
+ z75\0\13 = (8.365u,5.987u);
+ z75\0\14c1 = (8.357u,5.520u);
+ z75\0\14c2 = (8.878u,4.600u);
+ z75\0\14 = (9.042u,4.095u);
+ z75\0\15c1 = (9.386u,3.033u);
+ z75\0\15c2 = (9.394u,2.064u);
+ z75\0\15 = (9.395u,0.964u);
+ z75\0\16c1 = (8.262u,1.719u);
+ z75\0\16c2 = (7.355u,2.502u);
+ z75\0\16 = (6.022u,2.891u);
+ z75\0\17c1 = (6.624u,4.189u);
+ z75\0\17c2 = (6.504u,5.120u);
+ z75\0\17 = (6.504u,6.504u);
+ z75\0\18c1 = (5.768u,6.636u);
+ z75\0\18c2 = (5.086u,6.735u);
+ z75\0\18 = (4.336u,6.693u);
+ z75\0\19c1 = (3.719u,6.752u);
+ z75\0\19c2 = (2.749u,6.803u);
+ z75\0\19 = (2.171u,6.693u);
+ z75\0\20c1 = (0.740u,6.241u);
+ z75\0\20c2 = (0.419u,4.926u);
+ z75\0\20 = (0.503u,3.613u);
+ z75\0\21c1 = (0.564u,2.662u);
+ z75\0\21c2 = (0.621u,1.990u);
+ z75\1\0s = (9.395u,-1.445u);
+ z75\1\0 = (9.395u,-4.095u);
+ z75\1\1 = (6.745u,-2.891u);
+ z75\1\2c1 = (7.529u,-2.108u);
+ z75\1\2c2 = (8.339u,-1.747u);
+ fill_or_unfill z75\0\0s
+ ..controls z75\0\0c1 and z75\0\0c2..z75\0\0
+ ..controls z75\0\1c1 and z75\0\1c2..z75\0\1
+ ..controls z75\0\2c1 and z75\0\2c2..z75\0\2
+ ..controls z75\0\3c1 and z75\0\3c2..z75\0\3
+ ..controls z75\0\4c1 and z75\0\4c2..z75\0\4
+ ..controls z75\0\5c1 and z75\0\5c2..z75\0\5
+ ..controls z75\0\6c1 and z75\0\6c2..z75\0\6
+ ..controls z75\0\7c1 and z75\0\7c2..z75\0\7
+ --z75\0\8
+ --z75\0\9
+ --z75\0\10
+ ..controls z75\0\11c1 and z75\0\11c2..z75\0\11
+ ..controls z75\0\12c1 and z75\0\12c2..z75\0\12
+ ..controls z75\0\13c1 and z75\0\13c2..z75\0\13
+ ..controls z75\0\14c1 and z75\0\14c2..z75\0\14
+ ..controls z75\0\15c1 and z75\0\15c2..z75\0\15
+ ..controls z75\0\16c1 and z75\0\16c2..z75\0\16
+ ..controls z75\0\17c1 and z75\0\17c2..z75\0\17
+ ..controls z75\0\18c1 and z75\0\18c2..z75\0\18
+ ..controls z75\0\19c1 and z75\0\19c2..z75\0\19
+ ..controls z75\0\20c1 and z75\0\20c2..z75\0\20
+ ..controls z75\0\21c1 and z75\0\21c2..cycle;
+ fill_or_unfill z75\1\0s
+ --z75\1\0
+ --z75\1\1
+ ..controls z75\1\2c1 and z75\1\2c2..cycle;
+ proof_labels (
+ 75\0\0,
+ 75\0\1,
+ 75\0\2,
+ 75\0\3,
+ 75\0\4,
+ 75\0\5,
+ 75\0\6,
+ 75\0\7,
+ 75\0\8,
+ 75\0\9,
+ 75\0\10,
+ 75\0\11,
+ 75\0\12,
+ 75\0\13,
+ 75\0\14,
+ 75\0\15,
+ 75\0\16,
+ 75\0\17,
+ 75\0\18,
+ 75\0\19,
+ 75\0\20,
+ 75\0\21,
+ 75\1\0,
+ 75\1\1,
+ 75\1\2,
+);
+endchar;
+
+beginchar (TIB_SHWA, 11.563u#, 6.745u#, 6.745u#);
+ "shwa";
+ z76\0\0s = (4.095u,0.000u);
+ z76\0\0c1 = (2.896u,1.132u);
+ z76\0\0c2 = (2.162u,1.749u);
+ z76\0\0 = (0.482u,1.927u);
+ z76\0\1c1 = (0.996u,-0.085u);
+ z76\0\1c2 = (1.810u,0.762u);
+ z76\0\1 = (3.087u,-0.174u);
+ z76\0\2 = (4.577u,-1.686u);
+ z76\0\3 = (4.577u,1.686u);
+ z76\0\4c1 = (6.454u,-0.356u);
+ z76\0\4c2 = (7.635u,0.027u);
+ z76\0\4 = (9.877u,1.204u);
+ z76\0\5 = (10.083u,-1.203u);
+ z76\0\6c1 = (10.059u,-2.508u);
+ z76\0\6c2 = (9.134u,-2.816u);
+ z76\0\6 = (8.190u,-3.459u);
+ z76\0\7 = (6.745u,-4.577u);
+ z76\0\8c1 = (7.800u,-5.819u);
+ z76\0\8c2 = (8.977u,-6.414u);
+ z76\0\8 = (10.600u,-6.504u);
+ z76\0\9 = (10.600u,-0.723u);
+ z76\0\10 = (10.872u,2.168u);
+ z76\0\11 = (10.872u,3.854u);
+ z76\0\12c1 = (10.904u,4.474u);
+ z76\0\12c2 = (11.166u,5.415u);
+ z76\0\12 = (10.872u,5.987u);
+ z76\0\13c1 = (10.623u,6.751u);
+ z76\0\13c2 = (9.851u,6.732u);
+ z76\0\13 = (9.154u,6.744u);
+ z76\0\14c1 = (8.552u,6.755u);
+ z76\0\14c2 = (7.804u,6.796u);
+ z76\0\14 = (7.227u,6.622u);
+ z76\0\15c1 = (5.395u,6.072u);
+ z76\0\15c2 = (4.656u,4.125u);
+ z76\0\15 = (4.408u,2.409u);
+ z76\1\0s = (7.468u,5.218u);
+ z76\1\0c1 = (8.059u,5.250u);
+ z76\1\0c2 = (8.583u,5.288u);
+ z76\1\0 = (9.079u,4.881u);
+ z76\1\1c1 = (10.076u,4.061u);
+ z76\1\1c2 = (9.627u,1.647u);
+ z76\1\1 = (8.591u,1.006u);
+ z76\1\2c1 = (8.158u,0.737u);
+ z76\1\2c2 = (7.483u,0.701u);
+ z76\1\2 = (6.986u,0.749u);
+ z76\1\3c1 = (4.898u,0.953u);
+ z76\1\3c2 = (4.101u,3.343u);
+ z76\1\3 = (5.832u,4.616u);
+ z76\1\4c1 = (6.312u,4.968u);
+ z76\1\4c2 = (6.901u,5.093u);
+ z76\2\0s = (10.118u,-2.891u);
+ z76\2\0 = (10.118u,-6.263u);
+ z76\2\1c1 = (9.232u,-5.862u);
+ z76\2\1c2 = (8.503u,-5.375u);
+ z76\2\1 = (7.709u,-4.818u);
+ z76\2\2 = (7.709u,-4.336u);
+ fill_or_unfill z76\0\0s
+ ..controls z76\0\0c1 and z76\0\0c2..z76\0\0
+ ..controls z76\0\1c1 and z76\0\1c2..z76\0\1
+ --z76\0\2
+ --z76\0\3
+ ..controls z76\0\4c1 and z76\0\4c2..z76\0\4
+ --z76\0\5
+ ..controls z76\0\6c1 and z76\0\6c2..z76\0\6
+ --z76\0\7
+ ..controls z76\0\8c1 and z76\0\8c2..z76\0\8
+ --z76\0\9
+ --z76\0\10
+ --z76\0\11
+ ..controls z76\0\12c1 and z76\0\12c2..z76\0\12
+ ..controls z76\0\13c1 and z76\0\13c2..z76\0\13
+ ..controls z76\0\14c1 and z76\0\14c2..z76\0\14
+ ..controls z76\0\15c1 and z76\0\15c2..z76\0\15
+ --cycle;
+ fill_or_unfill z76\1\0s
+ ..controls z76\1\0c1 and z76\1\0c2..z76\1\0
+ ..controls z76\1\1c1 and z76\1\1c2..z76\1\1
+ ..controls z76\1\2c1 and z76\1\2c2..z76\1\2
+ ..controls z76\1\3c1 and z76\1\3c2..z76\1\3
+ ..controls z76\1\4c1 and z76\1\4c2..cycle;
+ fill_or_unfill z76\2\0s
+ --z76\2\0
+ ..controls z76\2\1c1 and z76\2\1c2..z76\2\1
+ --z76\2\2
+ --cycle;
+ proof_labels (
+ 76\0\0,
+ 76\0\1,
+ 76\0\2,
+ 76\0\3,
+ 76\0\4,
+ 76\0\5,
+ 76\0\6,
+ 76\0\7,
+ 76\0\8,
+ 76\0\9,
+ 76\0\10,
+ 76\0\11,
+ 76\0\12,
+ 76\0\13,
+ 76\0\14,
+ 76\0\15,
+ 76\0\16,
+ 76\1\0,
+ 76\1\1,
+ 76\1\2,
+ 76\1\3,
+ 76\1\4,
+ 76\2\0,
+ 76\2\1,
+ 76\2\2,
+ 76\2\3,
+);
+endchar;
+
+beginchar (TIB_HWA, 9.154u#, 6.504u#, 7.468u#);
+ "hwa";
+ z77\0\0s = (0.482u,1.204u);
+ z77\0\0c1 = (1.902u,1.322u);
+ z77\0\0c2 = (2.907u,1.212u);
+ z77\0\0 = (4.005u,0.200u);
+ z77\0\1c1 = (4.550u,-0.302u);
+ z77\0\1c2 = (4.570u,-0.471u);
+ z77\0\1 = (5.300u,-0.723u);
+ z77\0\2 = (5.078u,-0.000u);
+ z77\0\3c1 = (4.918u,0.413u);
+ z77\0\3c2 = (4.338u,1.323u);
+ z77\0\3 = (4.477u,1.734u);
+ z77\0\4c1 = (4.563u,1.988u);
+ z77\0\4c2 = (4.845u,2.153u);
+ z77\0\4 = (5.085u,2.230u);
+ z77\0\5c1 = (6.267u,2.608u);
+ z77\0\5c2 = (7.545u,1.291u);
+ z77\0\5 = (7.822u,0.241u);
+ z77\0\6c1 = (7.962u,-0.287u);
+ z77\0\6c2 = (7.859u,-0.701u);
+ z77\0\6 = (7.698u,-1.204u);
+ z77\0\7c1 = (7.516u,-1.773u);
+ z77\0\7c2 = (7.279u,-2.386u);
+ z77\0\7 = (6.884u,-2.841u);
+ z77\0\8c1 = (6.451u,-3.339u);
+ z77\0\8c2 = (5.843u,-3.662u);
+ z77\0\8 = (5.300u,-4.022u);
+ z77\0\9 = (3.613u,-5.300u);
+ z77\0\10c1 = (4.669u,-6.542u);
+ z77\0\10c2 = (5.845u,-7.137u);
+ z77\0\10 = (7.492u,-7.227u);
+ z77\0\11 = (7.492u,-5.059u);
+ z77\0\12c1 = (7.469u,-4.596u);
+ z77\0\12c2 = (7.436u,-4.088u);
+ z77\0\12 = (7.492u,-3.635u);
+ z77\0\13 = (8.336u,-1.918u);
+ z77\0\14c1 = (8.705u,-0.945u);
+ z77\0\14c2 = (8.679u,-0.054u);
+ z77\0\14 = (8.672u,0.964u);
+ z77\0\15c1 = (8.669u,1.495u);
+ z77\0\15c2 = (8.699u,2.143u);
+ z77\0\15 = (8.426u,2.618u);
+ z77\0\16c1 = (7.804u,3.699u);
+ z77\0\16c2 = (5.359u,3.966u);
+ z77\0\16 = (4.438u,3.195u);
+ z77\0\17c1 = (4.090u,2.904u);
+ z77\0\17c2 = (4.000u,2.571u);
+ z77\0\17 = (3.854u,2.168u);
+ z77\0\18 = (1.445u,3.132u);
+ z77\0\19c1 = (1.943u,3.773u);
+ z77\0\19c2 = (2.389u,4.332u);
+ z77\0\19 = (3.132u,4.709u);
+ z77\0\20c1 = (3.521u,4.905u);
+ z77\0\20c2 = (3.907u,4.991u);
+ z77\0\20 = (4.336u,5.034u);
+ z77\0\21c1 = (5.101u,5.110u);
+ z77\0\21c2 = (7.237u,4.854u);
+ z77\0\21 = (7.698u,5.467u);
+ z77\0\22c1 = (8.194u,6.126u);
+ z77\0\22c2 = (7.197u,6.426u);
+ z77\0\22 = (6.741u,6.419u);
+ z77\0\23c1 = (6.080u,6.555u);
+ z77\0\23c2 = (2.684u,6.563u);
+ z77\0\23 = (2.182u,6.419u);
+ z77\0\24c1 = (1.859u,6.230u);
+ z77\0\24c2 = (1.631u,6.055u);
+ z77\0\24 = (1.459u,5.746u);
+ z77\0\25c1 = (1.196u,5.274u);
+ z77\0\25c2 = (1.302u,4.621u);
+ z77\0\25 = (1.187u,4.095u);
+ z77\0\26 = (0.628u,2.409u);
+ z77\0\27c1 = (0.524u,2.003u);
+ z77\0\27c2 = (0.505u,1.619u);
+ z77\1\0s = (6.986u,-3.613u);
+ z77\1\0 = (6.986u,-6.986u);
+ z77\1\1c1 = (6.100u,-6.585u);
+ z77\1\1c2 = (5.371u,-6.097u);
+ z77\1\1 = (4.577u,-5.541u);
+ z77\1\2 = (4.577u,-5.059u);
+ fill_or_unfill z77\0\0s
+ ..controls z77\0\0c1 and z77\0\0c2..z77\0\0
+ ..controls z77\0\1c1 and z77\0\1c2..z77\0\1
+ --z77\0\2
+ ..controls z77\0\3c1 and z77\0\3c2..z77\0\3
+ ..controls z77\0\4c1 and z77\0\4c2..z77\0\4
+ ..controls z77\0\5c1 and z77\0\5c2..z77\0\5
+ ..controls z77\0\6c1 and z77\0\6c2..z77\0\6
+ ..controls z77\0\7c1 and z77\0\7c2..z77\0\7
+ ..controls z77\0\8c1 and z77\0\8c2..z77\0\8
+ --z77\0\9
+ ..controls z77\0\10c1 and z77\0\10c2..z77\0\10
+ --z77\0\11
+ ..controls z77\0\12c1 and z77\0\12c2..z77\0\12
+ --z77\0\13
+ ..controls z77\0\14c1 and z77\0\14c2..z77\0\14
+ ..controls z77\0\15c1 and z77\0\15c2..z77\0\15
+ ..controls z77\0\16c1 and z77\0\16c2..z77\0\16
+ ..controls z77\0\17c1 and z77\0\17c2..z77\0\17
+ --z77\0\18
+ ..controls z77\0\19c1 and z77\0\19c2..z77\0\19
+ ..controls z77\0\20c1 and z77\0\20c2..z77\0\20
+ ..controls z77\0\21c1 and z77\0\21c2..z77\0\21
+ ..controls z77\0\22c1 and z77\0\22c2..z77\0\22
+ ..controls z77\0\23c1 and z77\0\23c2..z77\0\23
+ ..controls z77\0\24c1 and z77\0\24c2..z77\0\24
+ ..controls z77\0\25c1 and z77\0\25c2..z77\0\25
+ --z77\0\26
+ ..controls z77\0\27c1 and z77\0\27c2..cycle;
+ fill_or_unfill z77\1\0s
+ --z77\1\0
+ ..controls z77\1\1c1 and z77\1\1c2..z77\1\1
+ --z77\1\2
+ --cycle;
+ proof_labels (
+ 77\0\0,
+ 77\0\1,
+ 77\0\2,
+ 77\0\3,
+ 77\0\4,
+ 77\0\5,
+ 77\0\6,
+ 77\0\7,
+ 77\0\8,
+ 77\0\9,
+ 77\0\10,
+ 77\0\11,
+ 77\0\12,
+ 77\0\13,
+ 77\0\14,
+ 77\0\15,
+ 77\0\16,
+ 77\0\17,
+ 77\0\18,
+ 77\0\19,
+ 77\0\20,
+ 77\0\21,
+ 77\0\22,
+ 77\0\23,
+ 77\0\24,
+ 77\0\25,
+ 77\0\26,
+ 77\0\27,
+ 77\1\0,
+ 77\1\1,
+ 77\1\2,
+ 77\1\3,
+);
+endchar;
+
+beginchar (TIB_PHYWA, 10.600u#, 6.745u#, 11.081u#);
+ "phywa";
+ z78\0\0s = (1.445u,5.300u);
+ z78\0\0 = (2.650u,5.059u);
+ z78\0\1c1 = (1.933u,3.404u);
+ z78\0\1c2 = (1.132u,2.349u);
+ z78\0\1 = (0.964u,0.482u);
+ z78\0\2c1 = (1.932u,0.658u);
+ z78\0\2c2 = (2.864u,0.866u);
+ z78\0\2 = (3.854u,0.749u);
+ z78\0\3c1 = (4.613u,0.659u);
+ z78\0\3c2 = (5.557u,0.527u);
+ z78\0\3 = (6.263u,0.241u);
+ z78\0\4c1 = (6.777u,0.033u);
+ z78\0\4c2 = (7.262u,-0.290u);
+ z78\0\4 = (7.686u,-0.645u);
+ z78\0\5c1 = (9.166u,-1.886u);
+ z78\0\5c2 = (8.504u,-2.579u);
+ z78\0\5 = (6.986u,-3.215u);
+ z78\0\6c1 = (5.682u,-3.868u);
+ z78\0\6c2 = (4.216u,-3.487u);
+ z78\0\6 = (2.891u,-3.215u);
+ z78\0\7c1 = (1.880u,-2.905u);
+ z78\0\7c2 = (1.550u,-2.683u);
+ z78\0\7 = (0.482u,-2.891u);
+ z78\0\8c1 = (1.062u,-3.661u);
+ z78\0\8c2 = (1.658u,-4.111u);
+ z78\0\8 = (2.409u,-4.699u);
+ z78\0\9c1 = (2.940u,-5.115u);
+ z78\0\9c2 = (3.451u,-5.644u);
+ z78\0\9 = (4.095u,-5.878u);
+ z78\0\10c1 = (4.461u,-6.011u);
+ z78\0\10c2 = (4.913u,-6.022u);
+ z78\0\10 = (5.300u,-6.018u);
+ z78\0\11c1 = (7.296u,-5.996u);
+ z78\0\11c2 = (8.992u,-4.689u);
+ z78\0\11 = (10.118u,-3.132u);
+ z78\0\12c1 = (9.774u,-3.204u);
+ z78\0\12c2 = (9.480u,-3.256u);
+ z78\0\12 = (9.154u,-3.404u);
+ z78\0\13c1 = (7.786u,-4.024u);
+ z78\0\13c2 = (6.468u,-5.308u);
+ z78\0\13 = (4.818u,-4.894u);
+ z78\0\14 = (2.891u,-4.084u);
+ z78\0\15c1 = (3.933u,-3.822u);
+ z78\0\15c2 = (4.290u,-4.016u);
+ z78\0\15 = (5.300u,-4.084u);
+ z78\0\16c1 = (6.066u,-4.116u);
+ z78\0\16c2 = (7.005u,-4.017u);
+ z78\0\16 = (7.709u,-3.698u);
+ z78\0\17c1 = (8.382u,-3.393u);
+ z78\0\17c2 = (8.987u,-2.874u);
+ z78\0\17 = (9.251u,-2.167u);
+ z78\0\18c1 = (9.581u,-1.283u);
+ z78\0\18c2 = (9.271u,2.325u);
+ z78\0\18 = (9.440u,3.613u);
+ z78\0\19 = (10.061u,5.541u);
+ z78\0\20c1 = (10.101u,5.944u);
+ z78\0\20c2 = (10.105u,6.334u);
+ z78\0\20 = (10.061u,6.745u);
+ z78\0\21c1 = (9.406u,6.745u);
+ z78\0\21c2 = (7.125u,6.985u);
+ z78\0\21 = (7.625u,5.607u);
+ z78\0\22c1 = (7.740u,5.289u);
+ z78\0\22c2 = (7.941u,5.227u);
+ z78\0\22 = (8.190u,5.059u);
+ z78\0\23c1 = (7.355u,4.467u);
+ z78\0\23c2 = (5.180u,2.814u);
+ z78\0\23 = (4.336u,2.544u);
+ z78\0\24c1 = (3.752u,2.357u);
+ z78\0\24c2 = (3.020u,2.410u);
+ z78\0\24 = (2.409u,2.409u);
+ z78\0\25c1 = (3.391u,5.316u);
+ z78\0\25c2 = (5.237u,4.968u);
+ z78\0\25 = (5.776u,5.681u);
+ z78\0\26c1 = (6.009u,5.989u);
+ z78\0\26c2 = (5.992u,6.383u);
+ z78\0\26 = (6.022u,6.745u);
+ z78\0\27c1 = (5.118u,6.745u);
+ z78\0\27c2 = (2.466u,6.972u);
+ z78\0\27 = (1.864u,6.360u);
+ z78\0\28c1 = (1.569u,6.061u);
+ z78\0\28c2 = (1.530u,5.685u);
+ z78\1\0s = (8.913u,-0.482u);
+ z78\1\0c1 = (7.691u,0.336u);
+ z78\1\0c2 = (6.631u,1.275u);
+ z78\1\0 = (5.300u,1.927u);
+ z78\1\1 = (5.300u,2.409u);
+ z78\1\2c1 = (5.886u,2.776u);
+ z78\1\2c2 = (7.101u,3.711u);
+ z78\1\2 = (7.695u,3.858u);
+ z78\1\3c1 = (7.985u,3.930u);
+ z78\1\3c2 = (8.213u,3.928u);
+ z78\1\3 = (8.430u,3.697u);
+ z78\1\4c1 = (8.980u,3.112u);
+ z78\1\4c2 = (8.913u,0.365u);
+ z78\2\0s = (2.650u,-8.913u);
+ z78\2\0c1 = (3.705u,-10.156u);
+ z78\2\0c2 = (4.881u,-10.750u);
+ z78\2\0 = (6.504u,-10.840u);
+ z78\2\1 = (6.504u,-6.504u);
+ z78\2\2c1 = (5.067u,-7.035u);
+ z78\2\2c2 = (3.813u,-7.929u);
+ z78\3\0s = (6.022u,-7.227u);
+ z78\3\0 = (6.022u,-10.600u);
+ z78\3\1c1 = (5.136u,-10.198u);
+ z78\3\1c2 = (4.408u,-9.711u);
+ z78\3\1 = (3.613u,-9.154u);
+ z78\3\2 = (3.613u,-8.672u);
+ fill_or_unfill z78\0\0s
+ --z78\0\0
+ ..controls z78\0\1c1 and z78\0\1c2..z78\0\1
+ ..controls z78\0\2c1 and z78\0\2c2..z78\0\2
+ ..controls z78\0\3c1 and z78\0\3c2..z78\0\3
+ ..controls z78\0\4c1 and z78\0\4c2..z78\0\4
+ ..controls z78\0\5c1 and z78\0\5c2..z78\0\5
+ ..controls z78\0\6c1 and z78\0\6c2..z78\0\6
+ ..controls z78\0\7c1 and z78\0\7c2..z78\0\7
+ ..controls z78\0\8c1 and z78\0\8c2..z78\0\8
+ ..controls z78\0\9c1 and z78\0\9c2..z78\0\9
+ ..controls z78\0\10c1 and z78\0\10c2..z78\0\10
+ ..controls z78\0\11c1 and z78\0\11c2..z78\0\11
+ ..controls z78\0\12c1 and z78\0\12c2..z78\0\12
+ ..controls z78\0\13c1 and z78\0\13c2..z78\0\13
+ --z78\0\14
+ ..controls z78\0\15c1 and z78\0\15c2..z78\0\15
+ ..controls z78\0\16c1 and z78\0\16c2..z78\0\16
+ ..controls z78\0\17c1 and z78\0\17c2..z78\0\17
+ ..controls z78\0\18c1 and z78\0\18c2..z78\0\18
+ --z78\0\19
+ ..controls z78\0\20c1 and z78\0\20c2..z78\0\20
+ ..controls z78\0\21c1 and z78\0\21c2..z78\0\21
+ ..controls z78\0\22c1 and z78\0\22c2..z78\0\22
+ ..controls z78\0\23c1 and z78\0\23c2..z78\0\23
+ ..controls z78\0\24c1 and z78\0\24c2..z78\0\24
+ ..controls z78\0\25c1 and z78\0\25c2..z78\0\25
+ ..controls z78\0\26c1 and z78\0\26c2..z78\0\26
+ ..controls z78\0\27c1 and z78\0\27c2..z78\0\27
+ ..controls z78\0\28c1 and z78\0\28c2..cycle;
+ fill_or_unfill z78\1\0s
+ ..controls z78\1\0c1 and z78\1\0c2..z78\1\0
+ --z78\1\1
+ ..controls z78\1\2c1 and z78\1\2c2..z78\1\2
+ ..controls z78\1\3c1 and z78\1\3c2..z78\1\3
+ ..controls z78\1\4c1 and z78\1\4c2..cycle;
+ fill_or_unfill z78\2\0s
+ ..controls z78\2\0c1 and z78\2\0c2..z78\2\0
+ --z78\2\1
+ ..controls z78\2\2c1 and z78\2\2c2..cycle;
+ fill_or_unfill z78\3\0s
+ --z78\3\0
+ ..controls z78\3\1c1 and z78\3\1c2..z78\3\1
+ --z78\3\2
+ --cycle;
+ proof_labels (
+ 78\0\0,
+ 78\0\1,
+ 78\0\2,
+ 78\0\3,
+ 78\0\4,
+ 78\0\5,
+ 78\0\6,
+ 78\0\7,
+ 78\0\8,
+ 78\0\9,
+ 78\0\10,
+ 78\0\11,
+ 78\0\12,
+ 78\0\13,
+ 78\0\14,
+ 78\0\15,
+ 78\0\16,
+ 78\0\17,
+ 78\0\18,
+ 78\0\19,
+ 78\0\20,
+ 78\0\21,
+ 78\0\22,
+ 78\0\23,
+ 78\0\24,
+ 78\0\25,
+ 78\0\26,
+ 78\0\27,
+ 78\0\28,
+ 78\1\0,
+ 78\1\1,
+ 78\1\2,
+ 78\1\3,
+ 78\1\4,
+ 78\2\0,
+ 78\2\1,
+ 78\2\2,
+ 78\3\0,
+ 78\3\1,
+ 78\3\2,
+ 78\3\3,
+);
+endchar;
+
+beginchar (TIB_CWA, 8.913u#, 6.745u#, 6.022u#);
+ "cwa";
+ z79\0\0s = (1.927u,6.022u);
+ z79\0\0 = (1.927u,5.541u);
+ z79\0\1 = (2.650u,5.354u);
+ z79\0\2c1 = (3.166u,5.271u);
+ z79\0\2c2 = (4.072u,5.364u);
+ z79\0\2 = (4.488u,5.054u);
+ z79\0\3c1 = (5.232u,4.499u);
+ z79\0\3c2 = (4.370u,3.734u);
+ z79\0\3 = (3.850u,3.407u);
+ z79\0\4c1 = (2.802u,2.856u);
+ z79\0\4c2 = (1.589u,3.172u);
+ z79\0\4 = (0.482u,3.407u);
+ z79\0\5 = (1.350u,1.897u);
+ z79\0\6c1 = (1.758u,1.085u);
+ z79\0\6c2 = (1.800u,0.080u);
+ z79\0\6 = (2.509u,-0.566u);
+ z79\0\7c1 = (2.759u,-0.794u);
+ z79\0\7c2 = (3.057u,-0.945u);
+ z79\0\7 = (3.376u,-1.037u);
+ z79\0\8c1 = (4.055u,-1.267u);
+ z79\0\8c2 = (6.325u,-1.286u);
+ z79\0\8 = (6.982u,-1.037u);
+ z79\0\9c1 = (7.489u,-0.827u);
+ z79\0\9c2 = (7.894u,-0.472u);
+ z79\0\9 = (8.148u,0.010u);
+ z79\0\10c1 = (9.396u,2.374u);
+ z79\0\10c2 = (5.677u,3.471u);
+ z79\0\10 = (6.103u,4.742u);
+ z79\0\11c1 = (6.323u,5.396u);
+ z79\0\11c2 = (7.521u,5.190u);
+ z79\0\11 = (8.060u,5.682u);
+ z79\0\12c1 = (8.260u,5.865u);
+ z79\0\12c2 = (8.307u,6.043u);
+ z79\0\12 = (8.431u,6.263u);
+ z79\0\13c1 = (8.028u,6.431u);
+ z79\0\13c2 = (7.661u,6.586u);
+ z79\0\13 = (7.227u,6.642u);
+ z79\0\14c1 = (6.480u,6.802u);
+ z79\0\14c2 = (4.104u,6.791u);
+ z79\0\14 = (3.372u,6.642u);
+ z79\0\15c1 = (2.849u,6.493u);
+ z79\0\15c2 = (2.402u,6.264u);
+ z79\1\0s = (2.650u,2.409u);
+ z79\1\0c1 = (3.125u,2.563u);
+ z79\1\0c2 = (3.830u,2.833u);
+ z79\1\0 = (4.327u,2.772u);
+ z79\1\1c1 = (5.181u,2.668u);
+ z79\1\1c2 = (6.916u,0.921u);
+ z79\1\1 = (6.770u,0.032u);
+ z79\1\2c1 = (6.601u,-0.994u);
+ z79\1\2c2 = (5.087u,-0.926u);
+ z79\1\2 = (4.429u,-0.460u);
+ z79\1\3c1 = (4.071u,-0.206u);
+ z79\1\3c2 = (3.888u,0.121u);
+ z79\1\3 = (3.676u,0.492u);
+ z79\2\0s = (2.168u,-3.854u);
+ z79\2\0c1 = (3.223u,-5.097u);
+ z79\2\0c2 = (4.400u,-5.691u);
+ z79\2\0 = (6.022u,-5.782u);
+ z79\2\1 = (6.022u,-1.445u);
+ z79\2\2c1 = (4.585u,-1.976u);
+ z79\2\2c2 = (3.332u,-2.870u);
+ z79\3\0s = (5.541u,-2.168u);
+ z79\3\0 = (5.541u,-5.541u);
+ z79\3\1c1 = (4.654u,-5.139u);
+ z79\3\1c2 = (3.926u,-4.652u);
+ z79\3\1 = (3.132u,-4.095u);
+ z79\3\2 = (3.132u,-3.613u);
+ fill_or_unfill z79\0\0s
+ --z79\0\0
+ --z79\0\1
+ ..controls z79\0\2c1 and z79\0\2c2..z79\0\2
+ ..controls z79\0\3c1 and z79\0\3c2..z79\0\3
+ ..controls z79\0\4c1 and z79\0\4c2..z79\0\4
+ --z79\0\5
+ ..controls z79\0\6c1 and z79\0\6c2..z79\0\6
+ ..controls z79\0\7c1 and z79\0\7c2..z79\0\7
+ ..controls z79\0\8c1 and z79\0\8c2..z79\0\8
+ ..controls z79\0\9c1 and z79\0\9c2..z79\0\9
+ ..controls z79\0\10c1 and z79\0\10c2..z79\0\10
+ ..controls z79\0\11c1 and z79\0\11c2..z79\0\11
+ ..controls z79\0\12c1 and z79\0\12c2..z79\0\12
+ ..controls z79\0\13c1 and z79\0\13c2..z79\0\13
+ ..controls z79\0\14c1 and z79\0\14c2..z79\0\14
+ ..controls z79\0\15c1 and z79\0\15c2..cycle;
+ fill_or_unfill z79\1\0s
+ ..controls z79\1\0c1 and z79\1\0c2..z79\1\0
+ ..controls z79\1\1c1 and z79\1\1c2..z79\1\1
+ ..controls z79\1\2c1 and z79\1\2c2..z79\1\2
+ ..controls z79\1\3c1 and z79\1\3c2..z79\1\3
+ --cycle;
+ fill_or_unfill z79\2\0s
+ ..controls z79\2\0c1 and z79\2\0c2..z79\2\0
+ --z79\2\1
+ ..controls z79\2\2c1 and z79\2\2c2..cycle;
+ fill_or_unfill z79\3\0s
+ --z79\3\0
+ ..controls z79\3\1c1 and z79\3\1c2..z79\3\1
+ --z79\3\2
+ --cycle;
+ proof_labels (
+ 79\0\0,
+ 79\0\1,
+ 79\0\2,
+ 79\0\3,
+ 79\0\4,
+ 79\0\5,
+ 79\0\6,
+ 79\0\7,
+ 79\0\8,
+ 79\0\9,
+ 79\0\10,
+ 79\0\11,
+ 79\0\12,
+ 79\0\13,
+ 79\0\14,
+ 79\0\15,
+ 79\1\0,
+ 79\1\1,
+ 79\1\2,
+ 79\1\3,
+ 79\1\4,
+ 79\2\0,
+ 79\2\1,
+ 79\2\2,
+ 79\3\0,
+ 79\3\1,
+ 79\3\2,
+ 79\3\3,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+beginchar (TIB_JHA, 9.636u#, 6.745u#, 10.840u#);
+ "jha";
+ z31\0\0s = (0.482u,-1.204u);
+ z31\0\0c1 = (1.613u,-1.102u);
+ z31\0\0c2 = (2.532u,-0.697u);
+ z31\0\0 = (3.613u,-0.424u);
+ z31\0\1c1 = (5.690u,0.101u);
+ z31\0\1c2 = (7.311u,-0.560u);
+ z31\0\1 = (8.672u,-2.186u);
+ z31\0\2 = (4.577u,-2.186u);
+ z31\0\3c1 = (3.893u,-2.168u);
+ z31\0\3c2 = (3.090u,-2.090u);
+ z31\0\3 = (2.421u,-2.186u);
+ z31\0\4c1 = (2.153u,-2.275u);
+ z31\0\4c2 = (1.866u,-2.351u);
+ z31\0\4 = (1.696u,-2.587u);
+ z31\0\5c1 = (1.438u,-2.946u);
+ z31\0\5c2 = (1.646u,-3.849u);
+ z31\0\5 = (1.570u,-4.336u);
+ z31\0\6 = (1.204u,-6.022u);
+ z31\0\7c1 = (3.176u,-6.472u);
+ z31\0\7c2 = (4.765u,-6.997u);
+ z31\0\7 = (5.300u,-9.154u);
+ z31\0\8c1 = (5.492u,-9.025u);
+ z31\0\8c2 = (5.635u,-8.991u);
+ z31\0\8 = (5.781u,-8.783u);
+ z31\0\9c1 = (6.207u,-8.174u);
+ z31\0\9c2 = (5.846u,-7.168u);
+ z31\0\9 = (6.576u,-6.683u);
+ z31\0\10c1 = (7.294u,-6.207u);
+ z31\0\10c2 = (7.830u,-7.056u);
+ z31\0\10 = (7.801u,-7.710u);
+ z31\0\11c1 = (7.772u,-8.365u);
+ z31\0\11c2 = (7.236u,-9.074u);
+ z31\0\11 = (6.930u,-9.636u);
+ z31\0\12 = (6.504u,-10.600u);
+ z31\0\13c1 = (6.969u,-10.463u);
+ z31\0\13c2 = (7.299u,-10.365u);
+ z31\0\13 = (7.684u,-10.042u);
+ z31\0\14c1 = (9.380u,-8.621u);
+ z31\0\14c2 = (10.000u,-4.296u);
+ z31\0\14 = (6.745u,-4.660u);
+ z31\0\15c1 = (5.853u,-4.759u);
+ z31\0\15c2 = (5.482u,-5.023u);
+ z31\0\15 = (5.059u,-5.782u);
+ z31\0\16 = (4.095u,-5.236u);
+ z31\0\17c1 = (3.729u,-5.051u);
+ z31\0\17c2 = (2.182u,-4.629u);
+ z31\0\17 = (2.629u,-3.985u);
+ z31\0\18c1 = (2.790u,-3.752u);
+ z31\0\18c2 = (3.121u,-3.690u);
+ z31\0\18 = (3.378u,-3.631u);
+ z31\0\19 = (4.095u,-3.631u);
+ z31\0\20c1 = (4.959u,-3.599u);
+ z31\0\20c2 = (7.757u,-3.766u);
+ z31\0\20 = (8.356u,-3.367u);
+ z31\0\21c1 = (8.710u,-3.131u);
+ z31\0\21c2 = (8.820u,-2.807u);
+ z31\0\21 = (8.877u,-2.404u);
+ z31\0\22c1 = (9.088u,-0.920u);
+ z31\0\22c2 = (8.055u,0.060u);
+ z31\0\22 = (6.745u,0.518u);
+ z31\0\23c1 = (5.866u,0.826u);
+ z31\0\23c2 = (4.305u,1.001u);
+ z31\0\23 = (3.372u,0.942u);
+ z31\0\24 = (1.204u,0.723u);
+ z31\0\25 = (1.204u,2.409u);
+ z31\0\26 = (6.986u,2.409u);
+ z31\0\27 = (6.986u,3.854u);
+ z31\0\28 = (1.204u,3.854u);
+ z31\0\29 = (1.204u,5.300u);
+ z31\0\30 = (6.986u,5.300u);
+ z31\0\31 = (6.986u,6.745u);
+ z31\0\32 = (2.168u,6.745u);
+ z31\0\33c1 = (1.699u,6.735u);
+ z31\0\33c2 = (1.052u,6.769u);
+ z31\0\33 = (0.728u,6.360u);
+ z31\0\34c1 = (0.473u,6.038u);
+ z31\0\34c2 = (0.490u,5.450u);
+ z31\0\34 = (0.482u,5.059u);
+ fill_or_unfill z31\0\0s
+ ..controls z31\0\0c1 and z31\0\0c2..z31\0\0
+ ..controls z31\0\1c1 and z31\0\1c2..z31\0\1
+ --z31\0\2
+ ..controls z31\0\3c1 and z31\0\3c2..z31\0\3
+ ..controls z31\0\4c1 and z31\0\4c2..z31\0\4
+ ..controls z31\0\5c1 and z31\0\5c2..z31\0\5
+ --z31\0\6
+ ..controls z31\0\7c1 and z31\0\7c2..z31\0\7
+ ..controls z31\0\8c1 and z31\0\8c2..z31\0\8
+ ..controls z31\0\9c1 and z31\0\9c2..z31\0\9
+ ..controls z31\0\10c1 and z31\0\10c2..z31\0\10
+ ..controls z31\0\11c1 and z31\0\11c2..z31\0\11
+ --z31\0\12
+ ..controls z31\0\13c1 and z31\0\13c2..z31\0\13
+ ..controls z31\0\14c1 and z31\0\14c2..z31\0\14
+ ..controls z31\0\15c1 and z31\0\15c2..z31\0\15
+ --z31\0\16
+ ..controls z31\0\17c1 and z31\0\17c2..z31\0\17
+ ..controls z31\0\18c1 and z31\0\18c2..z31\0\18
+ --z31\0\19
+ ..controls z31\0\20c1 and z31\0\20c2..z31\0\20
+ ..controls z31\0\21c1 and z31\0\21c2..z31\0\21
+ ..controls z31\0\22c1 and z31\0\22c2..z31\0\22
+ ..controls z31\0\23c1 and z31\0\23c2..z31\0\23
+ --z31\0\24
+ --z31\0\25
+ --z31\0\26
+ --z31\0\27
+ --z31\0\28
+ --z31\0\29
+ --z31\0\30
+ --z31\0\31
+ --z31\0\32
+ ..controls z31\0\33c1 and z31\0\33c2..z31\0\33
+ ..controls z31\0\34c1 and z31\0\34c2..z31\0\34
+ --cycle;
+ proof_labels (
+ 31\0\0,
+ 31\0\1,
+ 31\0\2,
+ 31\0\3,
+ 31\0\4,
+ 31\0\5,
+ 31\0\6,
+ 31\0\7,
+ 31\0\8,
+ 31\0\9,
+ 31\0\10,
+ 31\0\11,
+ 31\0\12,
+ 31\0\13,
+ 31\0\14,
+ 31\0\15,
+ 31\0\16,
+ 31\0\17,
+ 31\0\18,
+ 31\0\19,
+ 31\0\20,
+ 31\0\21,
+ 31\0\22,
+ 31\0\23,
+ 31\0\24,
+ 31\0\25,
+ 31\0\26,
+ 31\0\27,
+ 31\0\28,
+ 31\0\29,
+ 31\0\30,
+ 31\0\31,
+ 31\0\32,
+ 31\0\33,
+ 31\0\34,
+ 31\0\35,
+);
+endchar;
+
+beginchar (TIB_KYA, 10.118u#, 6.745u#, 7.227u#);
+ "kya";
+ z80\0\0s = (0.964u,0.964u);
+ z80\0\0 = (1.445u,0.964u);
+ z80\0\1c1 = (1.455u,2.013u);
+ z80\0\1c2 = (1.519u,4.262u);
+ z80\0\1 = (2.462u,4.960u);
+ z80\0\2c1 = (2.733u,5.084u);
+ z80\0\2c2 = (3.009u,5.151u);
+ z80\0\2 = (3.319u,4.960u);
+ z80\0\3c1 = (4.401u,4.555u);
+ z80\0\3c2 = (4.574u,0.613u);
+ z80\0\3 = (4.577u,-0.482u);
+ z80\0\4c1 = (4.719u,-0.289u);
+ z80\0\4c2 = (4.838u,-0.184u);
+ z80\0\4 = (4.928u,0.054u);
+ z80\0\5c1 = (5.094u,0.493u);
+ z80\0\5c2 = (5.050u,1.210u);
+ z80\0\5 = (5.062u,1.686u);
+ z80\0\6c1 = (5.083u,2.475u);
+ z80\0\6c2 = (5.167u,4.572u);
+ z80\0\6 = (5.857u,5.016u);
+ z80\0\7c1 = (6.179u,5.222u);
+ z80\0\7c2 = (6.615u,5.264u);
+ z80\0\7 = (6.976u,5.145u);
+ z80\0\8c1 = (8.430u,4.667u);
+ z80\0\8c2 = (8.349u,2.430u);
+ z80\0\8 = (8.472u,1.204u);
+ z80\0\9c1 = (8.600u,-0.080u);
+ z80\0\9c2 = (8.966u,-1.472u);
+ z80\0\9 = (8.217u,-2.646u);
+ z80\0\10c1 = (7.134u,-4.344u);
+ z80\0\10c2 = (4.964u,-4.563u);
+ z80\0\10 = (3.132u,-4.258u);
+ z80\0\11c1 = (2.091u,-4.085u);
+ z80\0\11c2 = (1.599u,-3.710u);
+ z80\0\11 = (0.482u,-3.854u);
+ z80\0\12c1 = (1.160u,-4.554u);
+ z80\0\12c2 = (3.483u,-6.360u);
+ z80\0\12 = (4.336u,-6.725u);
+ z80\0\13c1 = (5.730u,-7.320u);
+ z80\0\13c2 = (8.585u,-6.890u);
+ z80\0\13 = (9.390u,-5.496u);
+ z80\0\14c1 = (9.603u,-5.127u);
+ z80\0\14c2 = (9.603u,-4.745u);
+ z80\0\14 = (9.636u,-4.336u);
+ z80\0\15 = (7.906u,-5.496u);
+ z80\0\16c1 = (5.538u,-6.720u);
+ z80\0\16c2 = (4.519u,-5.353u);
+ z80\0\16 = (2.409u,-4.813u);
+ z80\0\17c1 = (3.192u,-4.659u);
+ z80\0\17c2 = (3.794u,-4.779u);
+ z80\0\17 = (4.577u,-4.813u);
+ z80\0\18c1 = (5.669u,-4.849u);
+ z80\0\18c2 = (7.214u,-4.663u);
+ z80\0\18 = (8.137u,-4.041u);
+ z80\0\19c1 = (8.590u,-3.736u);
+ z80\0\19c2 = (8.794u,-3.399u);
+ z80\0\19 = (8.961u,-2.886u);
+ z80\0\20c1 = (9.312u,-1.809u);
+ z80\0\20c2 = (9.133u,1.775u);
+ z80\0\20 = (9.186u,3.132u);
+ z80\0\21 = (9.186u,4.095u);
+ z80\0\22c1 = (9.322u,4.742u);
+ z80\0\22c2 = (9.840u,5.770u);
+ z80\0\22 = (9.389u,6.360u);
+ z80\0\23c1 = (9.024u,6.836u);
+ z80\0\23c2 = (8.010u,6.744u);
+ z80\0\23 = (7.468u,6.745u);
+ z80\0\24c1 = (6.497u,6.747u);
+ z80\0\24c2 = (1.884u,6.922u);
+ z80\0\24 = (1.349u,6.499u);
+ z80\0\25c1 = (0.940u,6.175u);
+ z80\0\25c2 = (0.973u,5.528u);
+ z80\0\25 = (0.964u,5.059u);
+ fill_or_unfill z80\0\0s
+ --z80\0\0
+ ..controls z80\0\1c1 and z80\0\1c2..z80\0\1
+ ..controls z80\0\2c1 and z80\0\2c2..z80\0\2
+ ..controls z80\0\3c1 and z80\0\3c2..z80\0\3
+ ..controls z80\0\4c1 and z80\0\4c2..z80\0\4
+ ..controls z80\0\5c1 and z80\0\5c2..z80\0\5
+ ..controls z80\0\6c1 and z80\0\6c2..z80\0\6
+ ..controls z80\0\7c1 and z80\0\7c2..z80\0\7
+ ..controls z80\0\8c1 and z80\0\8c2..z80\0\8
+ ..controls z80\0\9c1 and z80\0\9c2..z80\0\9
+ ..controls z80\0\10c1 and z80\0\10c2..z80\0\10
+ ..controls z80\0\11c1 and z80\0\11c2..z80\0\11
+ ..controls z80\0\12c1 and z80\0\12c2..z80\0\12
+ ..controls z80\0\13c1 and z80\0\13c2..z80\0\13
+ ..controls z80\0\14c1 and z80\0\14c2..z80\0\14
+ --z80\0\15
+ ..controls z80\0\16c1 and z80\0\16c2..z80\0\16
+ ..controls z80\0\17c1 and z80\0\17c2..z80\0\17
+ ..controls z80\0\18c1 and z80\0\18c2..z80\0\18
+ ..controls z80\0\19c1 and z80\0\19c2..z80\0\19
+ ..controls z80\0\20c1 and z80\0\20c2..z80\0\20
+ --z80\0\21
+ ..controls z80\0\22c1 and z80\0\22c2..z80\0\22
+ ..controls z80\0\23c1 and z80\0\23c2..z80\0\23
+ ..controls z80\0\24c1 and z80\0\24c2..z80\0\24
+ ..controls z80\0\25c1 and z80\0\25c2..z80\0\25
+ --cycle;
+ proof_labels (
+ 80\0\0,
+ 80\0\1,
+ 80\0\2,
+ 80\0\3,
+ 80\0\4,
+ 80\0\5,
+ 80\0\6,
+ 80\0\7,
+ 80\0\8,
+ 80\0\9,
+ 80\0\10,
+ 80\0\11,
+ 80\0\12,
+ 80\0\13,
+ 80\0\14,
+ 80\0\15,
+ 80\0\16,
+ 80\0\17,
+ 80\0\18,
+ 80\0\19,
+ 80\0\20,
+ 80\0\21,
+ 80\0\22,
+ 80\0\23,
+ 80\0\24,
+ 80\0\25,
+ 80\0\26,
+);
+endchar;
+
+beginchar (TIB_KHYA, 10.359u#, 6.745u#, 6.263u#);
+ "khya";
+ z81\0\0s = (0.722u,-5.782u);
+ z81\0\0 = (1.204u,-5.782u);
+ z81\0\1 = (1.445u,-2.891u);
+ z81\0\2 = (1.445u,-0.964u);
+ z81\0\3 = (1.676u,0.723u);
+ z81\0\4 = (1.676u,3.132u);
+ z81\0\5c1 = (1.698u,3.690u);
+ z81\0\5c2 = (1.689u,4.289u);
+ z81\0\5 = (2.071u,4.742u);
+ z81\0\6c1 = (2.620u,5.394u);
+ z81\0\6c2 = (3.570u,5.297u);
+ z81\0\6 = (4.336u,5.300u);
+ z81\0\7 = (3.970u,3.613u);
+ z81\0\8 = (3.499u,2.168u);
+ z81\0\9 = (3.372u,0.723u);
+ z81\0\10c1 = (4.560u,0.819u);
+ z81\0\10c2 = (5.802u,1.182u);
+ z81\0\10 = (6.986u,0.881u);
+ z81\0\11c1 = (7.511u,0.748u);
+ z81\0\11c2 = (8.003u,0.498u);
+ z81\0\11 = (8.418u,0.146u);
+ z81\0\12c1 = (10.372u,-1.511u);
+ z81\0\12c2 = (8.421u,-3.599u);
+ z81\0\12 = (6.504u,-3.959u);
+ z81\0\13c1 = (5.532u,-4.141u);
+ z81\0\13c2 = (3.549u,-3.666u);
+ z81\0\13 = (2.409u,-3.613u);
+ z81\0\14c1 = (2.839u,-4.306u);
+ z81\0\14c2 = (4.306u,-5.602u);
+ z81\0\14 = (5.059u,-5.878u);
+ z81\0\15c1 = (5.442u,-6.019u);
+ z81\0\15c2 = (5.861u,-6.014u);
+ z81\0\15 = (6.263u,-6.021u);
+ z81\0\16c1 = (8.140u,-6.055u);
+ z81\0\16c2 = (9.278u,-5.891u);
+ z81\0\16 = (9.877u,-3.854u);
+ z81\0\17c1 = (7.062u,-5.706u);
+ z81\0\17c2 = (6.885u,-5.639u);
+ z81\0\17 = (3.854u,-4.292u);
+ z81\0\18c1 = (5.396u,-4.188u);
+ z81\0\18c2 = (6.084u,-4.811u);
+ z81\0\18 = (7.705u,-4.292u);
+ z81\0\19c1 = (7.997u,-4.148u);
+ z81\0\19c2 = (8.330u,-4.021u);
+ z81\0\19 = (8.578u,-3.835u);
+ z81\0\20c1 = (9.170u,-3.390u);
+ z81\0\20c2 = (9.392u,-2.624u);
+ z81\0\20 = (9.612u,-1.927u);
+ z81\0\21c1 = (9.796u,-0.488u);
+ z81\0\21c2 = (9.634u,1.180u);
+ z81\0\21 = (9.612u,2.650u);
+ z81\0\22 = (9.612u,4.095u);
+ z81\0\23 = (9.842u,5.536u);
+ z81\0\24c1 = (9.837u,5.819u);
+ z81\0\24c2 = (9.812u,6.128u);
+ z81\0\24 = (9.630u,6.360u);
+ z81\0\25c1 = (9.256u,6.837u);
+ z81\0\25c2 = (8.258u,6.744u);
+ z81\0\25 = (7.709u,6.745u);
+ z81\0\26 = (2.650u,6.745u);
+ z81\0\27c1 = (2.105u,6.744u);
+ z81\0\27c2 = (1.097u,6.837u);
+ z81\0\27 = (0.729u,6.360u);
+ z81\0\28c1 = (0.593u,6.184u);
+ z81\0\28c2 = (0.558u,5.982u);
+ z81\0\28 = (0.596u,5.768u);
+ z81\0\29c1 = (0.501u,5.377u);
+ z81\0\29c2 = (0.609u,4.964u);
+ z81\0\29 = (0.596u,4.577u);
+ z81\0\30 = (0.722u,3.372u);
+ z81\1\0s = (9.395u,0.964u);
+ z81\1\0 = (6.745u,2.216u);
+ z81\1\1 = (4.095u,2.650u);
+ z81\1\2c1 = (4.353u,3.258u);
+ z81\1\2c2 = (4.718u,4.241u);
+ z81\1\2 = (5.178u,4.698u);
+ z81\1\3c1 = (5.920u,5.436u);
+ z81\1\3c2 = (7.948u,5.957u);
+ z81\1\3 = (8.670u,4.955u);
+ z81\1\4c1 = (9.035u,4.449u);
+ z81\1\4c2 = (9.335u,1.704u);
+ fill_or_unfill z81\0\0s
+ --z81\0\0
+ --z81\0\1
+ --z81\0\2
+ --z81\0\3
+ --z81\0\4
+ ..controls z81\0\5c1 and z81\0\5c2..z81\0\5
+ ..controls z81\0\6c1 and z81\0\6c2..z81\0\6
+ --z81\0\7
+ --z81\0\8
+ --z81\0\9
+ ..controls z81\0\10c1 and z81\0\10c2..z81\0\10
+ ..controls z81\0\11c1 and z81\0\11c2..z81\0\11
+ ..controls z81\0\12c1 and z81\0\12c2..z81\0\12
+ ..controls z81\0\13c1 and z81\0\13c2..z81\0\13
+ ..controls z81\0\14c1 and z81\0\14c2..z81\0\14
+ ..controls z81\0\15c1 and z81\0\15c2..z81\0\15
+ ..controls z81\0\16c1 and z81\0\16c2..z81\0\16
+ ..controls z81\0\17c1 and z81\0\17c2..z81\0\17
+ ..controls z81\0\18c1 and z81\0\18c2..z81\0\18
+ ..controls z81\0\19c1 and z81\0\19c2..z81\0\19
+ ..controls z81\0\20c1 and z81\0\20c2..z81\0\20
+ ..controls z81\0\21c1 and z81\0\21c2..z81\0\21
+ --z81\0\22
+ --z81\0\23
+ ..controls z81\0\24c1 and z81\0\24c2..z81\0\24
+ ..controls z81\0\25c1 and z81\0\25c2..z81\0\25
+ --z81\0\26
+ ..controls z81\0\27c1 and z81\0\27c2..z81\0\27
+ ..controls z81\0\28c1 and z81\0\28c2..z81\0\28
+ ..controls z81\0\29c1 and z81\0\29c2..z81\0\29
+ --z81\0\30
+ --cycle;
+ fill_or_unfill z81\1\0s
+ --z81\1\0
+ --z81\1\1
+ ..controls z81\1\2c1 and z81\1\2c2..z81\1\2
+ ..controls z81\1\3c1 and z81\1\3c2..z81\1\3
+ ..controls z81\1\4c1 and z81\1\4c2..cycle;
+ proof_labels (
+ 81\0\0,
+ 81\0\1,
+ 81\0\2,
+ 81\0\3,
+ 81\0\4,
+ 81\0\5,
+ 81\0\6,
+ 81\0\7,
+ 81\0\8,
+ 81\0\9,
+ 81\0\10,
+ 81\0\11,
+ 81\0\12,
+ 81\0\13,
+ 81\0\14,
+ 81\0\15,
+ 81\0\16,
+ 81\0\17,
+ 81\0\18,
+ 81\0\19,
+ 81\0\20,
+ 81\0\21,
+ 81\0\22,
+ 81\0\23,
+ 81\0\24,
+ 81\0\25,
+ 81\0\26,
+ 81\0\27,
+ 81\0\28,
+ 81\0\29,
+ 81\0\30,
+ 81\0\31,
+ 81\1\0,
+ 81\1\1,
+ 81\1\2,
+ 81\1\3,
+ 81\1\4,
+);
+endchar;
+
+beginchar (TIB_GYA, 10.600u#, 6.745u#, 6.745u#);
+ "gya";
+ z82\0\0s = (1.445u,4.818u);
+ z82\0\0c1 = (0.986u,3.570u);
+ z82\0\0c2 = (0.727u,2.268u);
+ z82\0\0 = (0.482u,0.964u);
+ z82\0\1 = (0.723u,0.723u);
+ z82\0\2c1 = (2.332u,1.085u);
+ z82\0\2c2 = (4.851u,1.815u);
+ z82\0\2 = (6.039u,0.159u);
+ z82\0\3c1 = (6.275u,-0.170u);
+ z82\0\3c2 = (6.379u,-0.585u);
+ z82\0\3 = (6.504u,-0.964u);
+ z82\0\4c1 = (6.912u,0.065u);
+ z82\0\4c2 = (6.743u,1.752u);
+ z82\0\4 = (6.745u,2.891u);
+ z82\0\5c1 = (6.747u,3.630u);
+ z82\0\5c2 = (6.618u,4.841u);
+ z82\0\5 = (7.502u,5.142u);
+ z82\0\6c1 = (7.962u,5.298u);
+ z82\0\6c2 = (8.403u,5.116u);
+ z82\0\6 = (8.688u,4.742u);
+ z82\0\7c1 = (9.341u,3.888u);
+ z82\0\7c2 = (9.860u,-1.369u);
+ z82\0\7 = (9.458u,-2.408u);
+ z82\0\8c1 = (8.566u,-4.713u);
+ z82\0\8c2 = (5.089u,-4.533u);
+ z82\0\8 = (3.132u,-4.035u);
+ z82\0\9 = (0.964u,-3.372u);
+ z82\0\10c1 = (1.313u,-4.350u);
+ z82\0\10c2 = (1.636u,-4.621u);
+ z82\0\10 = (2.413u,-5.299u);
+ z82\0\11c1 = (2.850u,-5.680u);
+ z82\0\11c2 = (3.311u,-6.079u);
+ z82\0\11 = (3.854u,-6.299u);
+ z82\0\12c1 = (4.260u,-6.462u);
+ z82\0\12c2 = (4.630u,-6.484u);
+ z82\0\12 = (5.059u,-6.500u);
+ z82\0\13c1 = (7.097u,-6.574u);
+ z82\0\13c2 = (8.438u,-5.900u);
+ z82\0\13 = (10.118u,-4.818u);
+ z82\0\14c1 = (9.402u,-4.640u);
+ z82\0\14c2 = (9.106u,-4.831u);
+ z82\0\14 = (8.431u,-5.081u);
+ z82\0\15c1 = (5.690u,-6.097u);
+ z82\0\15c2 = (4.773u,-6.327u);
+ z82\0\15 = (2.409u,-4.336u);
+ z82\0\16c1 = (3.367u,-4.590u);
+ z82\0\16c2 = (4.304u,-4.792u);
+ z82\0\16 = (5.300u,-4.814u);
+ z82\0\17c1 = (6.556u,-4.843u);
+ z82\0\17c2 = (9.088u,-4.688u);
+ z82\0\17 = (9.835u,-3.520u);
+ z82\0\18c1 = (10.126u,-3.065u);
+ z82\0\18c2 = (10.110u,-2.448u);
+ z82\0\18 = (10.117u,-1.927u);
+ z82\0\19 = (10.117u,4.577u);
+ z82\0\20c1 = (10.117u,5.130u);
+ z82\0\20c2 = (10.210u,6.121u);
+ z82\0\20 = (9.733u,6.499u);
+ z82\0\21c1 = (9.410u,6.754u);
+ z82\0\21c2 = (8.823u,6.737u);
+ z82\0\21 = (8.431u,6.744u);
+ z82\0\22c1 = (7.127u,6.768u);
+ z82\0\22c2 = (3.228u,6.879u);
+ z82\0\22 = (2.169u,6.617u);
+ z82\0\23c1 = (1.708u,6.503u);
+ z82\0\23c2 = (1.053u,6.259u);
+ z82\0\23 = (0.899u,5.754u);
+ z82\0\24c1 = (0.751u,5.268u);
+ z82\0\24c2 = (1.125u,5.062u);
+ z82\1\0s = (6.022u,1.445u);
+ z82\1\0 = (4.336u,2.307u);
+ z82\1\1c1 = (3.375u,2.773u);
+ z82\1\1c2 = (2.494u,2.868u);
+ z82\1\1 = (1.445u,2.891u);
+ z82\1\2c1 = (1.561u,3.436u);
+ z82\1\2c2 = (1.660u,3.862u);
+ z82\1\2 = (2.031u,4.305u);
+ z82\1\3c1 = (2.741u,5.153u);
+ z82\1\3c2 = (4.478u,5.768u);
+ z82\1\3 = (5.298u,4.742u);
+ z82\1\4c1 = (5.890u,4.003u);
+ z82\1\4c2 = (6.002u,2.372u);
+ fill_or_unfill z82\0\0s
+ ..controls z82\0\0c1 and z82\0\0c2..z82\0\0
+ --z82\0\1
+ ..controls z82\0\2c1 and z82\0\2c2..z82\0\2
+ ..controls z82\0\3c1 and z82\0\3c2..z82\0\3
+ ..controls z82\0\4c1 and z82\0\4c2..z82\0\4
+ ..controls z82\0\5c1 and z82\0\5c2..z82\0\5
+ ..controls z82\0\6c1 and z82\0\6c2..z82\0\6
+ ..controls z82\0\7c1 and z82\0\7c2..z82\0\7
+ ..controls z82\0\8c1 and z82\0\8c2..z82\0\8
+ --z82\0\9
+ ..controls z82\0\10c1 and z82\0\10c2..z82\0\10
+ ..controls z82\0\11c1 and z82\0\11c2..z82\0\11
+ ..controls z82\0\12c1 and z82\0\12c2..z82\0\12
+ ..controls z82\0\13c1 and z82\0\13c2..z82\0\13
+ ..controls z82\0\14c1 and z82\0\14c2..z82\0\14
+ ..controls z82\0\15c1 and z82\0\15c2..z82\0\15
+ ..controls z82\0\16c1 and z82\0\16c2..z82\0\16
+ ..controls z82\0\17c1 and z82\0\17c2..z82\0\17
+ ..controls z82\0\18c1 and z82\0\18c2..z82\0\18
+ --z82\0\19
+ ..controls z82\0\20c1 and z82\0\20c2..z82\0\20
+ ..controls z82\0\21c1 and z82\0\21c2..z82\0\21
+ ..controls z82\0\22c1 and z82\0\22c2..z82\0\22
+ ..controls z82\0\23c1 and z82\0\23c2..z82\0\23
+ ..controls z82\0\24c1 and z82\0\24c2..cycle;
+ fill_or_unfill z82\1\0s
+ --z82\1\0
+ ..controls z82\1\1c1 and z82\1\1c2..z82\1\1
+ ..controls z82\1\2c1 and z82\1\2c2..z82\1\2
+ ..controls z82\1\3c1 and z82\1\3c2..z82\1\3
+ ..controls z82\1\4c1 and z82\1\4c2..cycle;
+ proof_labels (
+ 82\0\0,
+ 82\0\1,
+ 82\0\2,
+ 82\0\3,
+ 82\0\4,
+ 82\0\5,
+ 82\0\6,
+ 82\0\7,
+ 82\0\8,
+ 82\0\9,
+ 82\0\10,
+ 82\0\11,
+ 82\0\12,
+ 82\0\13,
+ 82\0\14,
+ 82\0\15,
+ 82\0\16,
+ 82\0\17,
+ 82\0\18,
+ 82\0\19,
+ 82\0\20,
+ 82\0\21,
+ 82\0\22,
+ 82\0\23,
+ 82\0\24,
+ 82\1\0,
+ 82\1\1,
+ 82\1\2,
+ 82\1\3,
+ 82\1\4,
+);
+endchar;
+
+beginchar (TIB_PYA, 9.636u#, 6.745u#, 6.745u#);
+ "pya";
+ z83\0\0s = (0.723u,0.000u);
+ z83\0\0c1 = (1.593u,0.227u);
+ z83\0\0c2 = (2.461u,0.582u);
+ z83\0\0 = (3.372u,0.584u);
+ z83\0\1c1 = (3.955u,0.585u);
+ z83\0\1c2 = (4.962u,0.386u);
+ z83\0\1 = (5.500u,0.162u);
+ z83\0\2c1 = (6.368u,-0.198u);
+ z83\0\2c2 = (8.577u,-1.766u);
+ z83\0\2 = (8.150u,-2.847u);
+ z83\0\3c1 = (8.030u,-3.150u);
+ z83\0\3c2 = (7.710u,-3.403u);
+ z83\0\3 = (7.454u,-3.588u);
+ z83\0\4c1 = (6.896u,-3.989u);
+ z83\0\4c2 = (6.230u,-4.265u);
+ z83\0\4 = (5.541u,-4.302u);
+ z83\0\5c1 = (3.877u,-4.391u);
+ z83\0\5c2 = (2.316u,-3.429u);
+ z83\0\5 = (0.723u,-3.132u);
+ z83\0\6 = (0.994u,-3.788u);
+ z83\0\7c1 = (1.463u,-4.556u);
+ z83\0\7c2 = (3.007u,-5.975u);
+ z83\0\7 = (3.855u,-6.302u);
+ z83\0\8c1 = (5.050u,-6.762u);
+ z83\0\8c2 = (7.926u,-6.540u);
+ z83\0\8 = (8.769u,-5.474u);
+ z83\0\9c1 = (9.103u,-5.053u);
+ z83\0\9c2 = (9.113u,-4.603u);
+ z83\0\9 = (9.154u,-4.095u);
+ z83\0\10 = (7.227u,-5.246u);
+ z83\0\11c1 = (5.697u,-6.110u);
+ z83\0\11c2 = (4.338u,-5.781u);
+ z83\0\11 = (3.132u,-4.577u);
+ z83\0\12c1 = (4.705u,-5.231u);
+ z83\0\12c2 = (6.244u,-5.305u);
+ z83\0\12 = (7.704u,-4.310u);
+ z83\0\13c1 = (8.169u,-3.994u);
+ z83\0\13c2 = (8.561u,-3.661u);
+ z83\0\13 = (8.769u,-3.122u);
+ z83\0\14c1 = (8.928u,-2.711u);
+ z83\0\14c2 = (8.910u,-2.126u);
+ z83\0\14 = (8.914u,-1.686u);
+ z83\0\15 = (8.914u,3.613u);
+ z83\0\16 = (9.154u,6.745u);
+ z83\0\17c1 = (8.664u,6.739u);
+ z83\0\17c2 = (7.805u,6.809u);
+ z83\0\17 = (7.482u,6.360u);
+ z83\0\18c1 = (7.016u,5.713u);
+ z83\0\18c2 = (8.114u,2.345u);
+ z83\0\18 = (8.282u,1.445u);
+ z83\0\19c1 = (8.404u,0.797u);
+ z83\0\19c2 = (8.425u,0.175u);
+ z83\0\19 = (8.431u,-0.482u);
+ z83\0\20c1 = (7.481u,-0.040u);
+ z83\0\20c2 = (6.893u,0.707u);
+ z83\0\20 = (6.022u,1.252u);
+ z83\0\21c1 = (5.065u,1.852u);
+ z83\0\21c2 = (3.055u,2.449u);
+ z83\0\21 = (1.927u,2.650u);
+ z83\0\22c1 = (2.123u,3.215u);
+ z83\0\22c2 = (2.464u,4.282u);
+ z83\0\22 = (2.846u,4.714u);
+ z83\0\23c1 = (3.720u,5.701u);
+ z83\0\23c2 = (5.265u,4.928u);
+ z83\0\23 = (5.741u,5.843u);
+ z83\0\24c1 = (6.413u,7.135u);
+ z83\0\24c2 = (2.502u,6.830u);
+ z83\0\24 = (2.004u,6.500u);
+ z83\0\25c1 = (1.189u,5.959u);
+ z83\0\25c2 = (1.798u,5.262u);
+ z83\0\25 = (1.773u,4.556u);
+ z83\0\26c1 = (1.759u,4.157u);
+ z83\0\26c2 = (1.588u,3.745u);
+ z83\0\26 = (1.456u,3.372u);
+ z83\0\27c1 = (1.017u,2.133u);
+ z83\0\27c2 = (0.516u,1.356u);
+ fill_or_unfill z83\0\0s
+ ..controls z83\0\0c1 and z83\0\0c2..z83\0\0
+ ..controls z83\0\1c1 and z83\0\1c2..z83\0\1
+ ..controls z83\0\2c1 and z83\0\2c2..z83\0\2
+ ..controls z83\0\3c1 and z83\0\3c2..z83\0\3
+ ..controls z83\0\4c1 and z83\0\4c2..z83\0\4
+ ..controls z83\0\5c1 and z83\0\5c2..z83\0\5
+ --z83\0\6
+ ..controls z83\0\7c1 and z83\0\7c2..z83\0\7
+ ..controls z83\0\8c1 and z83\0\8c2..z83\0\8
+ ..controls z83\0\9c1 and z83\0\9c2..z83\0\9
+ --z83\0\10
+ ..controls z83\0\11c1 and z83\0\11c2..z83\0\11
+ ..controls z83\0\12c1 and z83\0\12c2..z83\0\12
+ ..controls z83\0\13c1 and z83\0\13c2..z83\0\13
+ ..controls z83\0\14c1 and z83\0\14c2..z83\0\14
+ --z83\0\15
+ --z83\0\16
+ ..controls z83\0\17c1 and z83\0\17c2..z83\0\17
+ ..controls z83\0\18c1 and z83\0\18c2..z83\0\18
+ ..controls z83\0\19c1 and z83\0\19c2..z83\0\19
+ ..controls z83\0\20c1 and z83\0\20c2..z83\0\20
+ ..controls z83\0\21c1 and z83\0\21c2..z83\0\21
+ ..controls z83\0\22c1 and z83\0\22c2..z83\0\22
+ ..controls z83\0\23c1 and z83\0\23c2..z83\0\23
+ ..controls z83\0\24c1 and z83\0\24c2..z83\0\24
+ ..controls z83\0\25c1 and z83\0\25c2..z83\0\25
+ ..controls z83\0\26c1 and z83\0\26c2..z83\0\26
+ ..controls z83\0\27c1 and z83\0\27c2..cycle;
+ proof_labels (
+ 83\0\0,
+ 83\0\1,
+ 83\0\2,
+ 83\0\3,
+ 83\0\4,
+ 83\0\5,
+ 83\0\6,
+ 83\0\7,
+ 83\0\8,
+ 83\0\9,
+ 83\0\10,
+ 83\0\11,
+ 83\0\12,
+ 83\0\13,
+ 83\0\14,
+ 83\0\15,
+ 83\0\16,
+ 83\0\17,
+ 83\0\18,
+ 83\0\19,
+ 83\0\20,
+ 83\0\21,
+ 83\0\22,
+ 83\0\23,
+ 83\0\24,
+ 83\0\25,
+ 83\0\26,
+ 83\0\27,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+beginchar (TIB_BHYA, 8.672u#, 6.745u#, 12.527u#);
+ "bhya";
+ z71\0\0s = (1.927u,5.059u);
+ z71\0\0c1 = (1.216u,3.121u);
+ z71\0\0c2 = (0.533u,2.747u);
+ z71\0\0 = (0.482u,0.482u);
+ z71\0\1 = (2.650u,0.910u);
+ z71\0\2c1 = (3.511u,0.975u);
+ z71\0\2c2 = (4.996u,0.621u);
+ z71\0\2 = (5.782u,0.262u);
+ z71\0\3 = (7.709u,-0.723u);
+ z71\0\4c1 = (7.118u,-0.891u);
+ z71\0\4c2 = (6.638u,-0.954u);
+ z71\0\4 = (6.022u,-0.963u);
+ z71\0\5c1 = (5.162u,-0.975u);
+ z71\0\5c2 = (3.203u,-0.777u);
+ z71\0\5 = (2.586u,-1.382u);
+ z71\0\6c1 = (2.222u,-1.739u);
+ z71\0\6c2 = (2.123u,-2.411u);
+ z71\0\6 = (2.012u,-2.891u);
+ z71\0\7c1 = (1.840u,-3.630u);
+ z71\0\7c2 = (1.722u,-4.300u);
+ z71\0\7 = (1.686u,-5.059u);
+ z71\0\8c1 = (3.291u,-5.533u);
+ z71\0\8c2 = (3.567u,-6.292u);
+ z71\0\8 = (4.841u,-7.227u);
+ z71\0\9c1 = (4.786u,-6.759u);
+ z71\0\9c2 = (4.658u,-5.999u);
+ z71\0\9 = (4.841u,-5.577u);
+ z71\0\10c1 = (5.486u,-4.297u);
+ z71\0\10c2 = (7.127u,-5.309u);
+ z71\0\10 = (7.491u,-6.273u);
+ z71\0\11c1 = (8.214u,-8.190u);
+ z71\0\11c2 = (6.166u,-9.964u);
+ z71\0\11 = (4.336u,-9.691u);
+ z71\0\12c1 = (3.346u,-9.543u);
+ z71\0\12c2 = (2.520u,-8.940u);
+ z71\0\12 = (1.686u,-8.431u);
+ z71\0\13c1 = (1.739u,-9.016u);
+ z71\0\13c2 = (1.797u,-9.573u);
+ z71\0\13 = (2.064u,-10.108u);
+ z71\0\14c1 = (2.329u,-10.639u);
+ z71\0\14c2 = (2.689u,-10.993u);
+ z71\0\14 = (3.142u,-11.365u);
+ z71\0\15c1 = (4.381u,-12.382u);
+ z71\0\15c2 = (5.385u,-12.571u);
+ z71\0\15 = (6.741u,-11.611u);
+ z71\0\16c1 = (7.552u,-11.037u);
+ z71\0\16c2 = (7.876u,-10.555u);
+ z71\0\16 = (8.190u,-9.636u);
+ z71\0\17 = (6.501u,-10.840u);
+ z71\0\18c1 = (4.783u,-11.858u);
+ z71\0\18c2 = (3.638u,-10.797u);
+ z71\0\18 = (2.409u,-9.636u);
+ z71\0\19c1 = (3.238u,-10.022u);
+ z71\0\19c2 = (4.115u,-10.571u);
+ z71\0\19 = (5.059u,-10.552u);
+ z71\0\20c1 = (5.596u,-10.540u);
+ z71\0\20c2 = (6.049u,-10.366u);
+ z71\0\20 = (6.501u,-10.083u);
+ z71\0\21c1 = (7.914u,-9.196u);
+ z71\0\21c2 = (8.171u,-8.062u);
+ z71\0\21 = (8.190u,-6.504u);
+ z71\0\22c1 = (8.208u,-4.963u);
+ z71\0\22c2 = (8.236u,-3.021u);
+ z71\0\22 = (6.023u,-3.440u);
+ z71\0\23c1 = (5.126u,-3.610u);
+ z71\0\23c2 = (4.735u,-4.053u);
+ z71\0\23 = (4.336u,-4.818u);
+ z71\0\24c1 = (-0.263u,-1.884u);
+ z71\0\24c2 = (6.601u,-2.409u);
+ z71\0\24 = (8.190u,-2.409u);
+ z71\0\25 = (8.190u,6.727u);
+ z71\0\26 = (3.854u,6.727u);
+ z71\0\27c1 = (3.390u,6.744u);
+ z71\0\27c2 = (2.876u,6.779u);
+ z71\0\27 = (2.419u,6.727u);
+ z71\0\28c1 = (1.868u,6.584u);
+ z71\0\28c2 = (0.925u,5.956u);
+ z71\0\28 = (1.456u,5.299u);
+ z71\0\29c1 = (1.593u,5.131u);
+ z71\0\29c2 = (1.751u,5.133u);
+ z71\1\0s = (7.950u,-0.241u);
+ z71\1\0c1 = (6.599u,0.695u);
+ z71\1\0c2 = (5.273u,1.957u);
+ z71\1\0 = (3.613u,2.362u);
+ z71\1\1c1 = (2.992u,2.450u);
+ z71\1\1c2 = (2.319u,2.408u);
+ z71\1\1 = (1.686u,2.362u);
+ z71\1\2c1 = (1.724u,2.736u);
+ z71\1\2c2 = (1.738u,3.038u);
+ z71\1\2 = (1.860u,3.351u);
+ z71\1\3c1 = (2.166u,4.135u);
+ z71\1\3c2 = (3.044u,4.973u);
+ z71\1\3 = (3.858u,5.247u);
+ z71\1\4c1 = (4.379u,5.340u);
+ z71\1\4c2 = (5.002u,5.307u);
+ z71\1\4 = (5.540u,5.247u);
+ z71\1\5c1 = (6.211u,5.289u);
+ z71\1\5c2 = (6.703u,5.324u);
+ z71\1\5 = (7.158u,4.747u);
+ z71\1\6c1 = (7.975u,3.711u);
+ z71\1\6c2 = (7.950u,1.064u);
+ fill_or_unfill z71\0\0s
+ ..controls z71\0\0c1 and z71\0\0c2..z71\0\0
+ --z71\0\1
+ ..controls z71\0\2c1 and z71\0\2c2..z71\0\2
+ --z71\0\3
+ ..controls z71\0\4c1 and z71\0\4c2..z71\0\4
+ ..controls z71\0\5c1 and z71\0\5c2..z71\0\5
+ ..controls z71\0\6c1 and z71\0\6c2..z71\0\6
+ ..controls z71\0\7c1 and z71\0\7c2..z71\0\7
+ ..controls z71\0\8c1 and z71\0\8c2..z71\0\8
+ ..controls z71\0\9c1 and z71\0\9c2..z71\0\9
+ ..controls z71\0\10c1 and z71\0\10c2..z71\0\10
+ ..controls z71\0\11c1 and z71\0\11c2..z71\0\11
+ ..controls z71\0\12c1 and z71\0\12c2..z71\0\12
+ ..controls z71\0\13c1 and z71\0\13c2..z71\0\13
+ ..controls z71\0\14c1 and z71\0\14c2..z71\0\14
+ ..controls z71\0\15c1 and z71\0\15c2..z71\0\15
+ ..controls z71\0\16c1 and z71\0\16c2..z71\0\16
+ --z71\0\17
+ ..controls z71\0\18c1 and z71\0\18c2..z71\0\18
+ ..controls z71\0\19c1 and z71\0\19c2..z71\0\19
+ ..controls z71\0\20c1 and z71\0\20c2..z71\0\20
+ ..controls z71\0\21c1 and z71\0\21c2..z71\0\21
+ ..controls z71\0\22c1 and z71\0\22c2..z71\0\22
+ ..controls z71\0\23c1 and z71\0\23c2..z71\0\23
+ ..controls z71\0\24c1 and z71\0\24c2..z71\0\24
+ --z71\0\25
+ --z71\0\26
+ ..controls z71\0\27c1 and z71\0\27c2..z71\0\27
+ ..controls z71\0\28c1 and z71\0\28c2..z71\0\28
+ ..controls z71\0\29c1 and z71\0\29c2..cycle;
+ fill_or_unfill z71\1\0s
+ ..controls z71\1\0c1 and z71\1\0c2..z71\1\0
+ ..controls z71\1\1c1 and z71\1\1c2..z71\1\1
+ ..controls z71\1\2c1 and z71\1\2c2..z71\1\2
+ ..controls z71\1\3c1 and z71\1\3c2..z71\1\3
+ ..controls z71\1\4c1 and z71\1\4c2..z71\1\4
+ ..controls z71\1\5c1 and z71\1\5c2..z71\1\5
+ ..controls z71\1\6c1 and z71\1\6c2..cycle;
+ proof_labels (
+ 71\0\0,
+ 71\0\1,
+ 71\0\2,
+ 71\0\3,
+ 71\0\4,
+ 71\0\5,
+ 71\0\6,
+ 71\0\7,
+ 71\0\8,
+ 71\0\9,
+ 71\0\10,
+ 71\0\11,
+ 71\0\12,
+ 71\0\13,
+ 71\0\14,
+ 71\0\15,
+ 71\0\16,
+ 71\0\17,
+ 71\0\18,
+ 71\0\19,
+ 71\0\20,
+ 71\0\21,
+ 71\0\22,
+ 71\0\23,
+ 71\0\24,
+ 71\0\25,
+ 71\0\26,
+ 71\0\27,
+ 71\0\28,
+ 71\0\29,
+ 71\1\0,
+ 71\1\1,
+ 71\1\2,
+ 71\1\3,
+ 71\1\4,
+ 71\1\5,
+ 71\1\6,
+);
+endchar;
+
+beginchar (TIB_PHYA, 10.600u#, 6.745u#, 6.263u#);
+ "phya";
+ z84\0\0s = (1.445u,5.300u);
+ z84\0\0 = (2.650u,5.059u);
+ z84\0\1c1 = (1.933u,3.404u);
+ z84\0\1c2 = (1.132u,2.349u);
+ z84\0\1 = (0.964u,0.482u);
+ z84\0\2c1 = (1.932u,0.658u);
+ z84\0\2c2 = (2.864u,0.866u);
+ z84\0\2 = (3.854u,0.749u);
+ z84\0\3c1 = (4.613u,0.659u);
+ z84\0\3c2 = (5.557u,0.527u);
+ z84\0\3 = (6.263u,0.241u);
+ z84\0\4c1 = (6.777u,0.033u);
+ z84\0\4c2 = (7.262u,-0.290u);
+ z84\0\4 = (7.686u,-0.645u);
+ z84\0\5c1 = (9.166u,-1.886u);
+ z84\0\5c2 = (8.504u,-2.579u);
+ z84\0\5 = (6.986u,-3.215u);
+ z84\0\6c1 = (5.682u,-3.868u);
+ z84\0\6c2 = (4.216u,-3.487u);
+ z84\0\6 = (2.891u,-3.215u);
+ z84\0\7c1 = (1.880u,-2.905u);
+ z84\0\7c2 = (1.550u,-2.683u);
+ z84\0\7 = (0.482u,-2.891u);
+ z84\0\8c1 = (1.062u,-3.661u);
+ z84\0\8c2 = (1.658u,-4.111u);
+ z84\0\8 = (2.409u,-4.699u);
+ z84\0\9c1 = (2.940u,-5.115u);
+ z84\0\9c2 = (3.451u,-5.644u);
+ z84\0\9 = (4.095u,-5.878u);
+ z84\0\10c1 = (4.461u,-6.011u);
+ z84\0\10c2 = (4.913u,-6.022u);
+ z84\0\10 = (5.300u,-6.018u);
+ z84\0\11c1 = (7.296u,-5.996u);
+ z84\0\11c2 = (8.992u,-4.689u);
+ z84\0\11 = (10.118u,-3.132u);
+ z84\0\12c1 = (9.774u,-3.203u);
+ z84\0\12c2 = (9.481u,-3.258u);
+ z84\0\12 = (9.154u,-3.401u);
+ z84\0\13c1 = (7.891u,-3.954u);
+ z84\0\13c2 = (6.533u,-5.162u);
+ z84\0\13 = (5.059u,-4.943u);
+ z84\0\14c1 = (4.326u,-4.835u);
+ z84\0\14c2 = (3.592u,-4.352u);
+ z84\0\14 = (2.891u,-4.084u);
+ z84\0\15c1 = (3.933u,-3.822u);
+ z84\0\15c2 = (4.290u,-4.016u);
+ z84\0\15 = (5.300u,-4.084u);
+ z84\0\16c1 = (6.066u,-4.116u);
+ z84\0\16c2 = (7.005u,-4.017u);
+ z84\0\16 = (7.709u,-3.698u);
+ z84\0\17c1 = (8.382u,-3.393u);
+ z84\0\17c2 = (8.987u,-2.874u);
+ z84\0\17 = (9.251u,-2.167u);
+ z84\0\18c1 = (9.581u,-1.283u);
+ z84\0\18c2 = (9.271u,2.325u);
+ z84\0\18 = (9.440u,3.613u);
+ z84\0\19 = (10.061u,5.541u);
+ z84\0\20c1 = (10.101u,5.944u);
+ z84\0\20c2 = (10.105u,6.334u);
+ z84\0\20 = (10.061u,6.745u);
+ z84\0\21c1 = (9.406u,6.745u);
+ z84\0\21c2 = (7.125u,6.985u);
+ z84\0\21 = (7.625u,5.607u);
+ z84\0\22c1 = (7.740u,5.289u);
+ z84\0\22c2 = (7.941u,5.227u);
+ z84\0\22 = (8.190u,5.059u);
+ z84\0\23c1 = (7.355u,4.467u);
+ z84\0\23c2 = (5.180u,2.814u);
+ z84\0\23 = (4.336u,2.544u);
+ z84\0\24c1 = (3.752u,2.357u);
+ z84\0\24c2 = (3.020u,2.410u);
+ z84\0\24 = (2.409u,2.409u);
+ z84\0\25c1 = (3.391u,5.316u);
+ z84\0\25c2 = (5.237u,4.968u);
+ z84\0\25 = (5.776u,5.681u);
+ z84\0\26c1 = (6.009u,5.989u);
+ z84\0\26c2 = (5.992u,6.383u);
+ z84\0\26 = (6.022u,6.745u);
+ z84\0\27c1 = (5.118u,6.745u);
+ z84\0\27c2 = (2.466u,6.972u);
+ z84\0\27 = (1.864u,6.360u);
+ z84\0\28c1 = (1.569u,6.061u);
+ z84\0\28c2 = (1.530u,5.685u);
+ z84\1\0s = (8.913u,-0.482u);
+ z84\1\0c1 = (7.691u,0.336u);
+ z84\1\0c2 = (6.631u,1.275u);
+ z84\1\0 = (5.300u,1.927u);
+ z84\1\1 = (5.300u,2.409u);
+ z84\1\2c1 = (5.886u,2.776u);
+ z84\1\2c2 = (7.101u,3.711u);
+ z84\1\2 = (7.695u,3.858u);
+ z84\1\3c1 = (7.985u,3.930u);
+ z84\1\3c2 = (8.213u,3.928u);
+ z84\1\3 = (8.430u,3.697u);
+ z84\1\4c1 = (8.980u,3.112u);
+ z84\1\4c2 = (8.913u,0.365u);
+ fill_or_unfill z84\0\0s
+ --z84\0\0
+ ..controls z84\0\1c1 and z84\0\1c2..z84\0\1
+ ..controls z84\0\2c1 and z84\0\2c2..z84\0\2
+ ..controls z84\0\3c1 and z84\0\3c2..z84\0\3
+ ..controls z84\0\4c1 and z84\0\4c2..z84\0\4
+ ..controls z84\0\5c1 and z84\0\5c2..z84\0\5
+ ..controls z84\0\6c1 and z84\0\6c2..z84\0\6
+ ..controls z84\0\7c1 and z84\0\7c2..z84\0\7
+ ..controls z84\0\8c1 and z84\0\8c2..z84\0\8
+ ..controls z84\0\9c1 and z84\0\9c2..z84\0\9
+ ..controls z84\0\10c1 and z84\0\10c2..z84\0\10
+ ..controls z84\0\11c1 and z84\0\11c2..z84\0\11
+ ..controls z84\0\12c1 and z84\0\12c2..z84\0\12
+ ..controls z84\0\13c1 and z84\0\13c2..z84\0\13
+ ..controls z84\0\14c1 and z84\0\14c2..z84\0\14
+ ..controls z84\0\15c1 and z84\0\15c2..z84\0\15
+ ..controls z84\0\16c1 and z84\0\16c2..z84\0\16
+ ..controls z84\0\17c1 and z84\0\17c2..z84\0\17
+ ..controls z84\0\18c1 and z84\0\18c2..z84\0\18
+ --z84\0\19
+ ..controls z84\0\20c1 and z84\0\20c2..z84\0\20
+ ..controls z84\0\21c1 and z84\0\21c2..z84\0\21
+ ..controls z84\0\22c1 and z84\0\22c2..z84\0\22
+ ..controls z84\0\23c1 and z84\0\23c2..z84\0\23
+ ..controls z84\0\24c1 and z84\0\24c2..z84\0\24
+ ..controls z84\0\25c1 and z84\0\25c2..z84\0\25
+ ..controls z84\0\26c1 and z84\0\26c2..z84\0\26
+ ..controls z84\0\27c1 and z84\0\27c2..z84\0\27
+ ..controls z84\0\28c1 and z84\0\28c2..cycle;
+ fill_or_unfill z84\1\0s
+ ..controls z84\1\0c1 and z84\1\0c2..z84\1\0
+ --z84\1\1
+ ..controls z84\1\2c1 and z84\1\2c2..z84\1\2
+ ..controls z84\1\3c1 and z84\1\3c2..z84\1\3
+ ..controls z84\1\4c1 and z84\1\4c2..cycle;
+ proof_labels (
+ 84\0\0,
+ 84\0\1,
+ 84\0\2,
+ 84\0\3,
+ 84\0\4,
+ 84\0\5,
+ 84\0\6,
+ 84\0\7,
+ 84\0\8,
+ 84\0\9,
+ 84\0\10,
+ 84\0\11,
+ 84\0\12,
+ 84\0\13,
+ 84\0\14,
+ 84\0\15,
+ 84\0\16,
+ 84\0\17,
+ 84\0\18,
+ 84\0\19,
+ 84\0\20,
+ 84\0\21,
+ 84\0\22,
+ 84\0\23,
+ 84\0\24,
+ 84\0\25,
+ 84\0\26,
+ 84\0\27,
+ 84\0\28,
+ 84\1\0,
+ 84\1\1,
+ 84\1\2,
+ 84\1\3,
+ 84\1\4,
+);
+endchar;
+
+beginchar (TIB_BYA, 9.636u#, 6.745u#, 6.504u#);
+ "bya";
+ z85\0\0s = (2.409u,5.059u);
+ z85\0\0c1 = (1.698u,3.121u);
+ z85\0\0c2 = (1.015u,2.747u);
+ z85\0\0 = (0.964u,0.482u);
+ z85\0\1c1 = (1.759u,0.604u);
+ z85\0\1c2 = (2.572u,0.912u);
+ z85\0\1 = (3.372u,0.920u);
+ z85\0\2c1 = (4.654u,0.933u);
+ z85\0\2c2 = (7.638u,0.071u);
+ z85\0\2 = (8.104u,-1.242u);
+ z85\0\3c1 = (8.324u,-1.866u);
+ z85\0\3c2 = (7.812u,-2.486u);
+ z85\0\3 = (7.386u,-2.880u);
+ z85\0\4c1 = (6.678u,-3.538u);
+ z85\0\4c2 = (6.013u,-3.794u);
+ z85\0\4 = (5.059u,-3.844u);
+ z85\0\5c1 = (4.332u,-3.882u);
+ z85\0\5c2 = (3.594u,-3.820u);
+ z85\0\5 = (2.891u,-3.631u);
+ z85\0\6 = (0.482u,-2.891u);
+ z85\0\7c1 = (0.874u,-3.721u);
+ z85\0\7c2 = (1.391u,-4.341u);
+ z85\0\7 = (2.066u,-4.968u);
+ z85\0\8c1 = (4.513u,-7.238u);
+ z85\0\8c2 = (7.089u,-6.345u);
+ z85\0\8 = (8.913u,-3.854u);
+ z85\0\9c1 = (7.461u,-4.387u);
+ z85\0\9c2 = (5.961u,-5.743u);
+ z85\0\9 = (4.336u,-5.228u);
+ z85\0\10 = (2.409u,-4.315u);
+ z85\0\11c1 = (3.041u,-4.208u);
+ z85\0\11c2 = (3.461u,-4.257u);
+ z85\0\11 = (4.095u,-4.315u);
+ z85\0\12c1 = (5.131u,-4.352u);
+ z85\0\12c2 = (7.080u,-4.064u);
+ z85\0\12 = (7.896u,-3.408u);
+ z85\0\13c1 = (8.466u,-2.950u);
+ z85\0\13c2 = (8.665u,-2.382u);
+ z85\0\13 = (8.902u,-1.686u);
+ z85\0\14c1 = (8.925u,-1.050u);
+ z85\0\14c2 = (8.912u,-0.403u);
+ z85\0\14 = (8.902u,0.241u);
+ z85\0\15 = (8.902u,3.132u);
+ z85\0\16 = (8.902u,4.577u);
+ z85\0\17c1 = (9.026u,4.959u);
+ z85\0\17c2 = (9.136u,5.370u);
+ z85\0\17 = (9.101u,5.756u);
+ z85\0\18c1 = (9.082u,5.966u);
+ z85\0\18c2 = (9.049u,6.155u);
+ z85\0\18 = (8.914u,6.326u);
+ z85\0\19c1 = (8.511u,6.837u);
+ z85\0\19c2 = (7.338u,6.744u);
+ z85\0\19 = (6.745u,6.693u);
+ z85\0\20c1 = (5.952u,6.746u);
+ z85\0\20c2 = (3.266u,6.822u);
+ z85\0\20 = (2.676u,6.693u);
+ z85\0\21c1 = (2.176u,6.488u);
+ z85\0\21c2 = (1.491u,5.852u);
+ z85\0\21 = (1.938u,5.299u);
+ z85\0\22c1 = (2.074u,5.131u);
+ z85\0\22c2 = (2.233u,5.133u);
+ z85\1\0s = (8.431u,-0.241u);
+ z85\1\0c1 = (7.081u,0.695u);
+ z85\1\0c2 = (5.755u,1.957u);
+ z85\1\0 = (4.095u,2.362u);
+ z85\1\1c1 = (3.474u,2.450u);
+ z85\1\1c2 = (2.801u,2.408u);
+ z85\1\1 = (2.168u,2.362u);
+ z85\1\2c1 = (2.206u,2.736u);
+ z85\1\2c2 = (2.220u,3.038u);
+ z85\1\2 = (2.342u,3.351u);
+ z85\1\3c1 = (2.648u,4.135u);
+ z85\1\3c2 = (3.526u,4.973u);
+ z85\1\3 = (4.340u,5.247u);
+ z85\1\4c1 = (4.860u,5.340u);
+ z85\1\4c2 = (5.484u,5.307u);
+ z85\1\4 = (6.022u,5.247u);
+ z85\1\5c1 = (6.693u,5.289u);
+ z85\1\5c2 = (7.185u,5.324u);
+ z85\1\5 = (7.640u,4.747u);
+ z85\1\6c1 = (8.457u,3.711u);
+ z85\1\6c2 = (8.431u,1.064u);
+ fill_or_unfill z85\0\0s
+ ..controls z85\0\0c1 and z85\0\0c2..z85\0\0
+ ..controls z85\0\1c1 and z85\0\1c2..z85\0\1
+ ..controls z85\0\2c1 and z85\0\2c2..z85\0\2
+ ..controls z85\0\3c1 and z85\0\3c2..z85\0\3
+ ..controls z85\0\4c1 and z85\0\4c2..z85\0\4
+ ..controls z85\0\5c1 and z85\0\5c2..z85\0\5
+ --z85\0\6
+ ..controls z85\0\7c1 and z85\0\7c2..z85\0\7
+ ..controls z85\0\8c1 and z85\0\8c2..z85\0\8
+ ..controls z85\0\9c1 and z85\0\9c2..z85\0\9
+ --z85\0\10
+ ..controls z85\0\11c1 and z85\0\11c2..z85\0\11
+ ..controls z85\0\12c1 and z85\0\12c2..z85\0\12
+ ..controls z85\0\13c1 and z85\0\13c2..z85\0\13
+ ..controls z85\0\14c1 and z85\0\14c2..z85\0\14
+ --z85\0\15
+ --z85\0\16
+ ..controls z85\0\17c1 and z85\0\17c2..z85\0\17
+ ..controls z85\0\18c1 and z85\0\18c2..z85\0\18
+ ..controls z85\0\19c1 and z85\0\19c2..z85\0\19
+ ..controls z85\0\20c1 and z85\0\20c2..z85\0\20
+ ..controls z85\0\21c1 and z85\0\21c2..z85\0\21
+ ..controls z85\0\22c1 and z85\0\22c2..cycle;
+ fill_or_unfill z85\1\0s
+ ..controls z85\1\0c1 and z85\1\0c2..z85\1\0
+ ..controls z85\1\1c1 and z85\1\1c2..z85\1\1
+ ..controls z85\1\2c1 and z85\1\2c2..z85\1\2
+ ..controls z85\1\3c1 and z85\1\3c2..z85\1\3
+ ..controls z85\1\4c1 and z85\1\4c2..z85\1\4
+ ..controls z85\1\5c1 and z85\1\5c2..z85\1\5
+ ..controls z85\1\6c1 and z85\1\6c2..cycle;
+ proof_labels (
+ 85\0\0,
+ 85\0\1,
+ 85\0\2,
+ 85\0\3,
+ 85\0\4,
+ 85\0\5,
+ 85\0\6,
+ 85\0\7,
+ 85\0\8,
+ 85\0\9,
+ 85\0\10,
+ 85\0\11,
+ 85\0\12,
+ 85\0\13,
+ 85\0\14,
+ 85\0\15,
+ 85\0\16,
+ 85\0\17,
+ 85\0\18,
+ 85\0\19,
+ 85\0\20,
+ 85\0\21,
+ 85\0\22,
+ 85\1\0,
+ 85\1\1,
+ 85\1\2,
+ 85\1\3,
+ 85\1\4,
+ 85\1\5,
+ 85\1\6,
+);
+endchar;
+
+beginchar (TIB_MYA, 10.118u#, 6.745u#, 6.745u#);
+ "mya";
+ z86\0\0s = (1.204u,5.541u);
+ z86\0\0c1 = (2.362u,5.117u);
+ z86\0\0c2 = (2.748u,5.114u);
+ z86\0\0 = (3.132u,3.854u);
+ z86\0\1c1 = (2.547u,3.799u);
+ z86\0\1c2 = (1.992u,3.754u);
+ z86\0\1 = (1.490u,3.408u);
+ z86\0\2c1 = (0.516u,2.734u);
+ z86\0\2c2 = (0.121u,1.021u);
+ z86\0\2 = (0.867u,0.054u);
+ z86\0\3c1 = (1.190u,-0.364u);
+ z86\0\3c2 = (1.654u,-0.586u);
+ z86\0\3 = (2.168u,-0.665u);
+ z86\0\4c1 = (4.006u,-0.945u);
+ z86\0\4c2 = (4.217u,0.510u);
+ z86\0\4 = (4.336u,1.927u);
+ z86\0\5 = (6.022u,1.117u);
+ z86\0\6c1 = (6.849u,0.635u);
+ z86\0\6c2 = (8.637u,-0.852u);
+ z86\0\6 = (8.462u,-1.927u);
+ z86\0\7c1 = (8.402u,-2.294u);
+ z86\0\7c2 = (8.158u,-2.601u);
+ z86\0\7 = (7.914u,-2.865u);
+ z86\0\8c1 = (7.431u,-3.386u);
+ z86\0\8c2 = (6.728u,-3.824u);
+ z86\0\8 = (6.022u,-3.946u);
+ z86\0\9c1 = (4.980u,-4.126u);
+ z86\0\9c2 = (2.207u,-3.307u);
+ z86\0\9 = (0.964u,-3.132u);
+ z86\0\10c1 = (1.277u,-4.113u);
+ z86\0\10c2 = (1.680u,-4.370u);
+ z86\0\10 = (2.410u,-5.067u);
+ z86\0\11c1 = (3.205u,-5.827u);
+ z86\0\11c2 = (3.661u,-6.398u);
+ z86\0\11 = (4.818u,-6.490u);
+ z86\0\12c1 = (6.650u,-6.637u);
+ z86\0\12c2 = (8.372u,-5.473u);
+ z86\0\12 = (9.154u,-3.854u);
+ z86\0\13 = (6.918u,-5.172u);
+ z86\0\14c1 = (5.229u,-6.080u);
+ z86\0\14c2 = (3.686u,-4.753u);
+ z86\0\14 = (2.168u,-4.124u);
+ z86\0\15c1 = (3.809u,-3.928u);
+ z86\0\15c2 = (5.326u,-4.602u);
+ z86\0\15 = (6.986u,-4.124u);
+ z86\0\16c1 = (7.871u,-3.912u);
+ z86\0\16c2 = (8.576u,-3.531u);
+ z86\0\16 = (8.948u,-2.646u);
+ z86\0\17c1 = (9.286u,-1.842u);
+ z86\0\17c2 = (9.143u,0.902u);
+ z86\0\17 = (9.155u,1.927u);
+ z86\0\18c1 = (9.174u,3.555u);
+ z86\0\18c2 = (9.621u,5.108u);
+ z86\0\18 = (9.636u,6.745u);
+ z86\0\19 = (7.468u,6.745u);
+ z86\0\20c1 = (7.495u,6.411u);
+ z86\0\20c2 = (7.500u,6.106u);
+ z86\0\20 = (7.607u,5.782u);
+ z86\0\21 = (8.499u,3.854u);
+ z86\0\22c1 = (8.818u,2.713u);
+ z86\0\22c2 = (8.672u,1.193u);
+ z86\0\22 = (8.672u,0.000u);
+ z86\0\23c1 = (7.932u,0.927u);
+ z86\0\23c2 = (7.247u,2.041u);
+ z86\0\23 = (6.260u,2.723u);
+ z86\0\24 = (4.588u,3.543u);
+ z86\0\25c1 = (4.178u,3.766u);
+ z86\0\25c2 = (3.543u,4.182u);
+ z86\0\25 = (3.722u,4.747u);
+ z86\0\26c1 = (3.984u,5.567u);
+ z86\0\26c2 = (5.441u,5.009u);
+ z86\0\26 = (5.884u,5.885u);
+ z86\0\27c1 = (6.019u,6.150u);
+ z86\0\27c2 = (6.000u,6.460u);
+ z86\0\27 = (6.022u,6.745u);
+ z86\0\28c1 = (5.179u,6.745u);
+ z86\0\28c2 = (2.375u,6.896u);
+ z86\0\28 = (1.788u,6.499u);
+ z86\0\29c1 = (1.422u,6.252u);
+ z86\0\29c2 = (1.347u,5.924u);
+ z86\1\0s = (2.409u,2.466u);
+ z86\1\0c1 = (2.660u,2.489u);
+ z86\1\0c2 = (2.829u,2.526u);
+ z86\1\0 = (3.077u,2.466u);
+ z86\1\1c1 = (4.210u,1.993u);
+ z86\1\1c2 = (3.917u,0.110u);
+ z86\1\1 = (2.640u,-0.111u);
+ z86\1\2c1 = (1.181u,-0.365u);
+ z86\1\2c2 = (0.526u,1.345u);
+ z86\1\2 = (1.741u,2.228u);
+ z86\1\3c1 = (1.975u,2.398u);
+ z86\1\3c2 = (2.151u,2.412u);
+ fill_or_unfill z86\0\0s
+ ..controls z86\0\0c1 and z86\0\0c2..z86\0\0
+ ..controls z86\0\1c1 and z86\0\1c2..z86\0\1
+ ..controls z86\0\2c1 and z86\0\2c2..z86\0\2
+ ..controls z86\0\3c1 and z86\0\3c2..z86\0\3
+ ..controls z86\0\4c1 and z86\0\4c2..z86\0\4
+ --z86\0\5
+ ..controls z86\0\6c1 and z86\0\6c2..z86\0\6
+ ..controls z86\0\7c1 and z86\0\7c2..z86\0\7
+ ..controls z86\0\8c1 and z86\0\8c2..z86\0\8
+ ..controls z86\0\9c1 and z86\0\9c2..z86\0\9
+ ..controls z86\0\10c1 and z86\0\10c2..z86\0\10
+ ..controls z86\0\11c1 and z86\0\11c2..z86\0\11
+ ..controls z86\0\12c1 and z86\0\12c2..z86\0\12
+ --z86\0\13
+ ..controls z86\0\14c1 and z86\0\14c2..z86\0\14
+ ..controls z86\0\15c1 and z86\0\15c2..z86\0\15
+ ..controls z86\0\16c1 and z86\0\16c2..z86\0\16
+ ..controls z86\0\17c1 and z86\0\17c2..z86\0\17
+ ..controls z86\0\18c1 and z86\0\18c2..z86\0\18
+ --z86\0\19
+ ..controls z86\0\20c1 and z86\0\20c2..z86\0\20
+ --z86\0\21
+ ..controls z86\0\22c1 and z86\0\22c2..z86\0\22
+ ..controls z86\0\23c1 and z86\0\23c2..z86\0\23
+ --z86\0\24
+ ..controls z86\0\25c1 and z86\0\25c2..z86\0\25
+ ..controls z86\0\26c1 and z86\0\26c2..z86\0\26
+ ..controls z86\0\27c1 and z86\0\27c2..z86\0\27
+ ..controls z86\0\28c1 and z86\0\28c2..z86\0\28
+ ..controls z86\0\29c1 and z86\0\29c2..cycle;
+ fill_or_unfill z86\1\0s
+ ..controls z86\1\0c1 and z86\1\0c2..z86\1\0
+ ..controls z86\1\1c1 and z86\1\1c2..z86\1\1
+ ..controls z86\1\2c1 and z86\1\2c2..z86\1\2
+ ..controls z86\1\3c1 and z86\1\3c2..cycle;
+ proof_labels (
+ 86\0\0,
+ 86\0\1,
+ 86\0\2,
+ 86\0\3,
+ 86\0\4,
+ 86\0\5,
+ 86\0\6,
+ 86\0\7,
+ 86\0\8,
+ 86\0\9,
+ 86\0\10,
+ 86\0\11,
+ 86\0\12,
+ 86\0\13,
+ 86\0\14,
+ 86\0\15,
+ 86\0\16,
+ 86\0\17,
+ 86\0\18,
+ 86\0\19,
+ 86\0\20,
+ 86\0\21,
+ 86\0\22,
+ 86\0\23,
+ 86\0\24,
+ 86\0\25,
+ 86\0\26,
+ 86\0\27,
+ 86\0\28,
+ 86\0\29,
+ 86\1\0,
+ 86\1\1,
+ 86\1\2,
+ 86\1\3,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+beginchar (TIB_HYA, 9.154u#, 6.504u#, 6.263u#);
+ "hya";
+ z70\0\0s = (0.482u,1.204u);
+ z70\0\0c1 = (1.902u,1.322u);
+ z70\0\0c2 = (2.907u,1.212u);
+ z70\0\0 = (4.005u,0.200u);
+ z70\0\1c1 = (4.550u,-0.302u);
+ z70\0\1c2 = (4.570u,-0.471u);
+ z70\0\1 = (5.300u,-0.723u);
+ z70\0\2 = (4.977u,0.240u);
+ z70\0\3c1 = (4.839u,0.560u);
+ z70\0\3c2 = (4.437u,1.233u);
+ z70\0\3 = (4.449u,1.558u);
+ z70\0\4c1 = (4.460u,1.847u);
+ z70\0\4c2 = (4.634u,2.016u);
+ z70\0\4 = (4.878u,2.144u);
+ z70\0\5c1 = (6.035u,2.753u);
+ z70\0\5c2 = (7.350u,1.489u);
+ z70\0\5 = (7.743u,0.482u);
+ z70\0\6c1 = (8.043u,-0.286u);
+ z70\0\6c2 = (7.813u,-0.959u);
+ z70\0\6 = (7.523u,-1.685u);
+ z70\0\7c1 = (6.315u,-4.705u);
+ z70\0\7c2 = (2.801u,-3.978u);
+ z70\0\7 = (0.482u,-2.891u);
+ z70\0\8c1 = (0.543u,-3.421u);
+ z70\0\8c2 = (0.591u,-3.855u);
+ z70\0\8 = (0.900u,-4.314u);
+ z70\0\9c1 = (2.240u,-6.301u);
+ z70\0\9c2 = (6.278u,-6.770u);
+ z70\0\9 = (7.806u,-4.767u);
+ z70\0\10c1 = (8.034u,-4.469u);
+ z70\0\10c2 = (8.087u,-4.199u);
+ z70\0\10 = (8.190u,-3.854u);
+ z70\0\11 = (6.501u,-4.922u);
+ z70\0\12c1 = (4.556u,-5.843u);
+ z70\0\12c2 = (2.750u,-5.109u);
+ z70\0\12 = (1.204u,-3.883u);
+ z70\0\13c1 = (3.255u,-4.668u);
+ z70\0\13c2 = (4.446u,-4.955u);
+ z70\0\13 = (6.503u,-3.883u);
+ z70\0\14c1 = (7.184u,-3.567u);
+ z70\0\14c2 = (7.672u,-3.318u);
+ z70\0\14 = (8.057u,-2.625u);
+ z70\0\15c1 = (8.701u,-1.464u);
+ z70\0\15c2 = (8.695u,-0.081u);
+ z70\0\15 = (8.671u,1.204u);
+ z70\0\16c1 = (8.661u,1.783u);
+ z70\0\16c2 = (8.669u,2.345u);
+ z70\0\16 = (8.287u,2.824u);
+ z70\0\17c1 = (7.586u,3.706u);
+ z70\0\17c2 = (5.297u,3.914u);
+ z70\0\17 = (4.438u,3.195u);
+ z70\0\18c1 = (4.090u,2.904u);
+ z70\0\18c2 = (4.000u,2.571u);
+ z70\0\18 = (3.854u,2.168u);
+ z70\0\19 = (1.445u,3.132u);
+ z70\0\20c1 = (1.943u,3.773u);
+ z70\0\20c2 = (2.389u,4.332u);
+ z70\0\20 = (3.132u,4.709u);
+ z70\0\21c1 = (3.521u,4.905u);
+ z70\0\21c2 = (3.907u,4.991u);
+ z70\0\21 = (4.336u,5.034u);
+ z70\0\22c1 = (5.101u,5.110u);
+ z70\0\22c2 = (7.237u,4.854u);
+ z70\0\22 = (7.698u,5.467u);
+ z70\0\23c1 = (8.194u,6.126u);
+ z70\0\23c2 = (7.197u,6.426u);
+ z70\0\23 = (6.741u,6.419u);
+ z70\0\24c1 = (6.080u,6.555u);
+ z70\0\24c2 = (2.684u,6.563u);
+ z70\0\24 = (2.182u,6.419u);
+ z70\0\25c1 = (1.859u,6.230u);
+ z70\0\25c2 = (1.631u,6.055u);
+ z70\0\25 = (1.459u,5.746u);
+ z70\0\26c1 = (1.196u,5.274u);
+ z70\0\26c2 = (1.302u,4.621u);
+ z70\0\26 = (1.187u,4.095u);
+ z70\0\27 = (0.628u,2.409u);
+ z70\0\28c1 = (0.524u,2.003u);
+ z70\0\28c2 = (0.505u,1.619u);
+ fill_or_unfill z70\0\0s
+ ..controls z70\0\0c1 and z70\0\0c2..z70\0\0
+ ..controls z70\0\1c1 and z70\0\1c2..z70\0\1
+ --z70\0\2
+ ..controls z70\0\3c1 and z70\0\3c2..z70\0\3
+ ..controls z70\0\4c1 and z70\0\4c2..z70\0\4
+ ..controls z70\0\5c1 and z70\0\5c2..z70\0\5
+ ..controls z70\0\6c1 and z70\0\6c2..z70\0\6
+ ..controls z70\0\7c1 and z70\0\7c2..z70\0\7
+ ..controls z70\0\8c1 and z70\0\8c2..z70\0\8
+ ..controls z70\0\9c1 and z70\0\9c2..z70\0\9
+ ..controls z70\0\10c1 and z70\0\10c2..z70\0\10
+ --z70\0\11
+ ..controls z70\0\12c1 and z70\0\12c2..z70\0\12
+ ..controls z70\0\13c1 and z70\0\13c2..z70\0\13
+ ..controls z70\0\14c1 and z70\0\14c2..z70\0\14
+ ..controls z70\0\15c1 and z70\0\15c2..z70\0\15
+ ..controls z70\0\16c1 and z70\0\16c2..z70\0\16
+ ..controls z70\0\17c1 and z70\0\17c2..z70\0\17
+ ..controls z70\0\18c1 and z70\0\18c2..z70\0\18
+ --z70\0\19
+ ..controls z70\0\20c1 and z70\0\20c2..z70\0\20
+ ..controls z70\0\21c1 and z70\0\21c2..z70\0\21
+ ..controls z70\0\22c1 and z70\0\22c2..z70\0\22
+ ..controls z70\0\23c1 and z70\0\23c2..z70\0\23
+ ..controls z70\0\24c1 and z70\0\24c2..z70\0\24
+ ..controls z70\0\25c1 and z70\0\25c2..z70\0\25
+ ..controls z70\0\26c1 and z70\0\26c2..z70\0\26
+ --z70\0\27
+ ..controls z70\0\28c1 and z70\0\28c2..cycle;
+ proof_labels (
+ 70\0\0,
+ 70\0\1,
+ 70\0\2,
+ 70\0\3,
+ 70\0\4,
+ 70\0\5,
+ 70\0\6,
+ 70\0\7,
+ 70\0\8,
+ 70\0\9,
+ 70\0\10,
+ 70\0\11,
+ 70\0\12,
+ 70\0\13,
+ 70\0\14,
+ 70\0\15,
+ 70\0\16,
+ 70\0\17,
+ 70\0\18,
+ 70\0\19,
+ 70\0\20,
+ 70\0\21,
+ 70\0\22,
+ 70\0\23,
+ 70\0\24,
+ 70\0\25,
+ 70\0\26,
+ 70\0\27,
+ 70\0\28,
+);
+endchar;
+
+beginchar (TIB_KRA, 9.154u#, 6.745u#, 6.263u#);
+ "kra";
+ z87\0\0s = (0.482u,2.409u);
+ z87\0\0c1 = (0.676u,2.536u);
+ z87\0\0c2 = (0.813u,2.582u);
+ z87\0\0 = (0.974u,2.773u);
+ z87\0\1c1 = (1.489u,3.387u);
+ z87\0\1c2 = (1.538u,4.645u);
+ z87\0\1 = (2.262u,5.040u);
+ z87\0\2c1 = (2.533u,5.188u);
+ z87\0\2c2 = (2.808u,5.182u);
+ z87\0\2 = (3.081u,5.040u);
+ z87\0\3c1 = (4.023u,4.548u);
+ z87\0\3c2 = (4.037u,2.841u);
+ z87\0\3 = (4.135u,1.927u);
+ z87\0\4 = (4.336u,0.241u);
+ z87\0\5c1 = (4.812u,1.440u);
+ z87\0\5c2 = (4.399u,3.797u);
+ z87\0\5 = (5.203u,4.742u);
+ z87\0\6c1 = (5.905u,5.568u);
+ z87\0\6c2 = (7.167u,5.309u);
+ z87\0\6 = (7.565u,4.322u);
+ z87\0\7c1 = (7.775u,3.801u);
+ z87\0\7c2 = (7.694u,2.983u);
+ z87\0\7 = (7.749u,2.409u);
+ z87\0\8 = (8.190u,-0.723u);
+ z87\0\9 = (8.190u,-2.409u);
+ z87\0\10 = (8.431u,-4.818u);
+ z87\0\11c1 = (7.895u,-4.287u);
+ z87\0\11c2 = (7.366u,-3.721u);
+ z87\0\11 = (6.745u,-3.236u);
+ z87\0\12c1 = (5.410u,-2.354u);
+ z87\0\12c2 = (3.273u,-1.711u);
+ z87\0\12 = (2.057u,-3.236u);
+ z87\0\13c1 = (1.877u,-3.403u);
+ z87\0\13c2 = (1.808u,-3.611u);
+ z87\0\13 = (1.686u,-3.854u);
+ z87\0\14 = (1.927u,-4.095u);
+ z87\0\15 = (3.372u,-3.676u);
+ z87\0\16c1 = (4.532u,-3.481u);
+ z87\0\16c2 = (6.036u,-3.720u);
+ z87\0\16 = (6.982u,-4.439u);
+ z87\0\17 = (8.672u,-6.022u);
+ z87\0\18 = (8.672u,4.577u);
+ z87\0\19c1 = (8.671u,5.130u);
+ z87\0\19c2 = (8.765u,6.121u);
+ z87\0\19 = (8.287u,6.499u);
+ z87\0\20c1 = (7.965u,6.754u);
+ z87\0\20c2 = (7.378u,6.737u);
+ z87\0\20 = (6.986u,6.733u);
+ z87\0\21 = (3.372u,6.733u);
+ z87\0\22c1 = (2.761u,6.745u);
+ z87\0\22c2 = (2.059u,6.811u);
+ z87\0\22 = (1.459u,6.733u);
+ z87\0\23c1 = (1.176u,6.662u);
+ z87\0\23c2 = (0.917u,6.605u);
+ z87\0\23 = (0.732u,6.364u);
+ z87\0\24c1 = (0.304u,5.808u);
+ z87\0\24c2 = (0.952u,4.790u);
+ z87\0\24 = (0.901u,4.092u);
+ z87\0\25c1 = (0.860u,3.534u);
+ z87\0\25c2 = (0.623u,2.951u);
+ fill_or_unfill z87\0\0s
+ ..controls z87\0\0c1 and z87\0\0c2..z87\0\0
+ ..controls z87\0\1c1 and z87\0\1c2..z87\0\1
+ ..controls z87\0\2c1 and z87\0\2c2..z87\0\2
+ ..controls z87\0\3c1 and z87\0\3c2..z87\0\3
+ --z87\0\4
+ ..controls z87\0\5c1 and z87\0\5c2..z87\0\5
+ ..controls z87\0\6c1 and z87\0\6c2..z87\0\6
+ ..controls z87\0\7c1 and z87\0\7c2..z87\0\7
+ --z87\0\8
+ --z87\0\9
+ --z87\0\10
+ ..controls z87\0\11c1 and z87\0\11c2..z87\0\11
+ ..controls z87\0\12c1 and z87\0\12c2..z87\0\12
+ ..controls z87\0\13c1 and z87\0\13c2..z87\0\13
+ --z87\0\14
+ --z87\0\15
+ ..controls z87\0\16c1 and z87\0\16c2..z87\0\16
+ --z87\0\17
+ --z87\0\18
+ ..controls z87\0\19c1 and z87\0\19c2..z87\0\19
+ ..controls z87\0\20c1 and z87\0\20c2..z87\0\20
+ --z87\0\21
+ ..controls z87\0\22c1 and z87\0\22c2..z87\0\22
+ ..controls z87\0\23c1 and z87\0\23c2..z87\0\23
+ ..controls z87\0\24c1 and z87\0\24c2..z87\0\24
+ ..controls z87\0\25c1 and z87\0\25c2..cycle;
+ proof_labels (
+ 87\0\0,
+ 87\0\1,
+ 87\0\2,
+ 87\0\3,
+ 87\0\4,
+ 87\0\5,
+ 87\0\6,
+ 87\0\7,
+ 87\0\8,
+ 87\0\9,
+ 87\0\10,
+ 87\0\11,
+ 87\0\12,
+ 87\0\13,
+ 87\0\14,
+ 87\0\15,
+ 87\0\16,
+ 87\0\17,
+ 87\0\18,
+ 87\0\19,
+ 87\0\20,
+ 87\0\21,
+ 87\0\22,
+ 87\0\23,
+ 87\0\24,
+ 87\0\25,
+);
+endchar;
+
+beginchar (TIB_KHRA, 10.118u#, 6.745u#, 6.745u#);
+ "khra";
+ z88\0\0s = (1.445u,-6.504u);
+ z88\0\0 = (1.927u,-6.504u);
+ z88\0\1 = (1.927u,5.300u);
+ z88\0\2 = (4.577u,5.300u);
+ z88\0\3c1 = (3.443u,3.307u);
+ z88\0\3c2 = (3.139u,2.541u);
+ z88\0\3 = (3.132u,0.241u);
+ z88\0\4c1 = (3.679u,0.451u);
+ z88\0\4c2 = (4.231u,0.685u);
+ z88\0\4 = (4.818u,0.759u);
+ z88\0\5c1 = (6.098u,0.921u);
+ z88\0\5c2 = (8.266u,0.346u);
+ z88\0\5 = (8.769u,-0.968u);
+ z88\0\6c1 = (8.999u,-1.568u);
+ z88\0\6c2 = (8.913u,-3.808u);
+ z88\0\6 = (8.913u,-4.577u);
+ z88\0\7c1 = (7.523u,-3.800u);
+ z88\0\7c2 = (5.476u,-2.082u);
+ z88\0\7 = (3.859u,-3.106u);
+ z88\0\8c1 = (3.134u,-3.565u);
+ z88\0\8c2 = (2.884u,-4.029u);
+ z88\0\8 = (2.650u,-4.818u);
+ z88\0\9 = (4.577u,-4.339u);
+ z88\0\10c1 = (5.649u,-4.137u);
+ z88\0\10c2 = (7.019u,-4.406u);
+ z88\0\10 = (7.905u,-5.051u);
+ z88\0\11 = (9.395u,-6.504u);
+ z88\0\12 = (9.395u,1.204u);
+ z88\0\13 = (9.632u,4.336u);
+ z88\0\14c1 = (9.645u,4.843u);
+ z88\0\14c2 = (9.705u,5.961u);
+ z88\0\14 = (9.390u,6.360u);
+ z88\0\15c1 = (9.245u,6.542u);
+ z88\0\15c2 = (9.094u,6.606u);
+ z88\0\15 = (8.878u,6.707u);
+ z88\0\16c1 = (8.414u,6.807u);
+ z88\0\16c2 = (3.528u,6.749u);
+ z88\0\16 = (2.650u,6.707u);
+ z88\0\17c1 = (2.041u,6.742u);
+ z88\0\17c2 = (0.926u,6.834u);
+ z88\0\17 = (0.597u,6.160u);
+ z88\0\18c1 = (0.542u,5.961u);
+ z88\0\18c2 = (0.552u,5.741u);
+ z88\0\18 = (0.597u,5.530u);
+ z88\0\19 = (0.940u,4.095u);
+ z88\0\20c1 = (0.965u,3.453u);
+ z88\0\20c2 = (0.962u,2.818u);
+ z88\0\20 = (0.940u,2.168u);
+ z88\0\21 = (0.940u,0.482u);
+ z88\0\22 = (1.215u,-1.686u);
+ z88\0\23 = (1.215u,-4.577u);
+ z88\1\0s = (9.154u,0.482u);
+ z88\1\0c1 = (8.709u,0.672u);
+ z88\1\0c2 = (8.350u,0.853u);
+ z88\1\0 = (7.950u,1.131u);
+ z88\1\1c1 = (7.471u,1.465u);
+ z88\1\1c2 = (7.035u,1.877u);
+ z88\1\1 = (6.504u,2.129u);
+ z88\1\2c1 = (5.707u,2.509u);
+ z88\1\2c2 = (4.717u,2.405u);
+ z88\1\2 = (3.854u,2.650u);
+ z88\1\3c1 = (4.537u,4.040u);
+ z88\1\3c2 = (5.440u,5.511u);
+ z88\1\3 = (7.226u,5.264u);
+ z88\1\4c1 = (7.879u,5.173u);
+ z88\1\4c2 = (8.262u,4.925u);
+ z88\1\4 = (8.549u,4.322u);
+ z88\1\5c1 = (8.890u,3.609u);
+ z88\1\5c2 = (8.868u,2.698u);
+ z88\1\5 = (8.934u,1.927u);
+ fill_or_unfill z88\0\0s
+ --z88\0\0
+ --z88\0\1
+ --z88\0\2
+ ..controls z88\0\3c1 and z88\0\3c2..z88\0\3
+ ..controls z88\0\4c1 and z88\0\4c2..z88\0\4
+ ..controls z88\0\5c1 and z88\0\5c2..z88\0\5
+ ..controls z88\0\6c1 and z88\0\6c2..z88\0\6
+ ..controls z88\0\7c1 and z88\0\7c2..z88\0\7
+ ..controls z88\0\8c1 and z88\0\8c2..z88\0\8
+ --z88\0\9
+ ..controls z88\0\10c1 and z88\0\10c2..z88\0\10
+ --z88\0\11
+ --z88\0\12
+ --z88\0\13
+ ..controls z88\0\14c1 and z88\0\14c2..z88\0\14
+ ..controls z88\0\15c1 and z88\0\15c2..z88\0\15
+ ..controls z88\0\16c1 and z88\0\16c2..z88\0\16
+ ..controls z88\0\17c1 and z88\0\17c2..z88\0\17
+ ..controls z88\0\18c1 and z88\0\18c2..z88\0\18
+ --z88\0\19
+ ..controls z88\0\20c1 and z88\0\20c2..z88\0\20
+ --z88\0\21
+ --z88\0\22
+ --z88\0\23
+ --cycle;
+ fill_or_unfill z88\1\0s
+ ..controls z88\1\0c1 and z88\1\0c2..z88\1\0
+ ..controls z88\1\1c1 and z88\1\1c2..z88\1\1
+ ..controls z88\1\2c1 and z88\1\2c2..z88\1\2
+ ..controls z88\1\3c1 and z88\1\3c2..z88\1\3
+ ..controls z88\1\4c1 and z88\1\4c2..z88\1\4
+ ..controls z88\1\5c1 and z88\1\5c2..z88\1\5
+ --cycle;
+ proof_labels (
+ 88\0\0,
+ 88\0\1,
+ 88\0\2,
+ 88\0\3,
+ 88\0\4,
+ 88\0\5,
+ 88\0\6,
+ 88\0\7,
+ 88\0\8,
+ 88\0\9,
+ 88\0\10,
+ 88\0\11,
+ 88\0\12,
+ 88\0\13,
+ 88\0\14,
+ 88\0\15,
+ 88\0\16,
+ 88\0\17,
+ 88\0\18,
+ 88\0\19,
+ 88\0\20,
+ 88\0\21,
+ 88\0\22,
+ 88\0\23,
+ 88\0\24,
+ 88\1\0,
+ 88\1\1,
+ 88\1\2,
+ 88\1\3,
+ 88\1\4,
+ 88\1\5,
+ 88\1\6,
+);
+endchar;
+
+beginchar (TIB_GRA, 11.081u#, 6.745u#, 6.745u#);
+ "gra";
+ z89\0\0s = (0.964u,5.300u);
+ z89\0\0 = (1.927u,5.059u);
+ z89\0\1c1 = (1.563u,4.416u);
+ z89\0\1c2 = (-0.036u,1.577u);
+ z89\0\1 = (1.043u,1.088u);
+ z89\0\2c1 = (1.516u,0.932u);
+ z89\0\2c2 = (3.466u,1.402u);
+ z89\0\2 = (4.576u,1.088u);
+ z89\0\3c1 = (5.721u,0.683u);
+ z89\0\3c2 = (5.859u,-0.140u);
+ z89\0\3 = (6.745u,-0.723u);
+ z89\0\4c1 = (6.745u,0.540u);
+ z89\0\4c2 = (6.388u,4.461u);
+ z89\0\4 = (7.742u,5.018u);
+ z89\0\5c1 = (7.966u,5.111u);
+ z89\0\5c2 = (8.173u,5.112u);
+ z89\0\5 = (8.397u,5.018u);
+ z89\0\6c1 = (9.252u,4.662u);
+ z89\0\6c2 = (9.153u,3.401u);
+ z89\0\6 = (9.165u,2.650u);
+ z89\0\7 = (9.165u,-0.482u);
+ z89\0\8 = (9.533u,-2.891u);
+ z89\0\9 = (9.877u,-5.300u);
+ z89\0\10c1 = (9.198u,-4.782u);
+ z89\0\10c2 = (8.538u,-4.296u);
+ z89\0\10 = (7.709u,-4.046u);
+ z89\0\11c1 = (7.093u,-3.861u);
+ z89\0\11c2 = (6.421u,-3.835u);
+ z89\0\11 = (5.782u,-3.864u);
+ z89\0\12c1 = (4.022u,-3.944u);
+ z89\0\12c2 = (3.148u,-4.704u);
+ z89\0\12 = (3.613u,-6.504u);
+ z89\0\13 = (5.300u,-5.408u);
+ z89\0\14c1 = (7.098u,-4.535u);
+ z89\0\14c2 = (8.620u,-5.592u);
+ z89\0\14 = (10.118u,-6.504u);
+ z89\0\15 = (10.118u,1.204u);
+ z89\0\16 = (10.577u,5.059u);
+ z89\0\17c1 = (10.594u,5.384u);
+ z89\0\17c2 = (10.600u,5.891u);
+ z89\0\17 = (10.455u,6.188u);
+ z89\0\18c1 = (10.118u,6.879u);
+ z89\0\18c2 = (9.075u,6.744u);
+ z89\0\18 = (8.431u,6.745u);
+ z89\0\19c1 = (7.255u,6.747u);
+ z89\0\19c2 = (2.239u,6.940u);
+ z89\0\19 = (1.521u,6.462u);
+ z89\0\20c1 = (1.074u,6.165u);
+ z89\0\20c2 = (1.046u,5.780u);
+ z89\1\0s = (6.022u,1.204u);
+ z89\1\0c1 = (3.968u,2.384u);
+ z89\1\0c2 = (3.971u,2.868u);
+ z89\1\0 = (1.445u,2.891u);
+ z89\1\1c1 = (1.956u,4.429u);
+ z89\1\1c2 = (2.833u,5.424u);
+ z89\1\1 = (4.573u,5.271u);
+ z89\1\2c1 = (5.040u,5.229u);
+ z89\1\2c2 = (5.410u,5.141u);
+ z89\1\2 = (5.665u,4.714u);
+ z89\1\3c1 = (6.091u,4.000u);
+ z89\1\3c2 = (6.022u,2.066u);
+ fill_or_unfill z89\0\0s
+ --z89\0\0
+ ..controls z89\0\1c1 and z89\0\1c2..z89\0\1
+ ..controls z89\0\2c1 and z89\0\2c2..z89\0\2
+ ..controls z89\0\3c1 and z89\0\3c2..z89\0\3
+ ..controls z89\0\4c1 and z89\0\4c2..z89\0\4
+ ..controls z89\0\5c1 and z89\0\5c2..z89\0\5
+ ..controls z89\0\6c1 and z89\0\6c2..z89\0\6
+ --z89\0\7
+ --z89\0\8
+ --z89\0\9
+ ..controls z89\0\10c1 and z89\0\10c2..z89\0\10
+ ..controls z89\0\11c1 and z89\0\11c2..z89\0\11
+ ..controls z89\0\12c1 and z89\0\12c2..z89\0\12
+ --z89\0\13
+ ..controls z89\0\14c1 and z89\0\14c2..z89\0\14
+ --z89\0\15
+ --z89\0\16
+ ..controls z89\0\17c1 and z89\0\17c2..z89\0\17
+ ..controls z89\0\18c1 and z89\0\18c2..z89\0\18
+ ..controls z89\0\19c1 and z89\0\19c2..z89\0\19
+ ..controls z89\0\20c1 and z89\0\20c2..cycle;
+ fill_or_unfill z89\1\0s
+ ..controls z89\1\0c1 and z89\1\0c2..z89\1\0
+ ..controls z89\1\1c1 and z89\1\1c2..z89\1\1
+ ..controls z89\1\2c1 and z89\1\2c2..z89\1\2
+ ..controls z89\1\3c1 and z89\1\3c2..cycle;
+ proof_labels (
+ 89\0\0,
+ 89\0\1,
+ 89\0\2,
+ 89\0\3,
+ 89\0\4,
+ 89\0\5,
+ 89\0\6,
+ 89\0\7,
+ 89\0\8,
+ 89\0\9,
+ 89\0\10,
+ 89\0\11,
+ 89\0\12,
+ 89\0\13,
+ 89\0\14,
+ 89\0\15,
+ 89\0\16,
+ 89\0\17,
+ 89\0\18,
+ 89\0\19,
+ 89\0\20,
+ 89\1\0,
+ 89\1\1,
+ 89\1\2,
+ 89\1\3,
+);
+endchar;
+
+beginchar (TIB_TRA, 8.190u#, 6.745u#, 6.504u#);
+ "tra";
+ z90\0\0s = (1.739u,1.204u);
+ z90\0\0c1 = (2.402u,1.406u);
+ z90\0\0c2 = (3.118u,1.781u);
+ z90\0\0 = (3.854u,1.873u);
+ z90\0\1c1 = (4.628u,1.970u);
+ z90\0\1c2 = (5.607u,1.752u);
+ z90\0\1 = (6.232u,1.277u);
+ z90\0\2c1 = (8.442u,-0.405u);
+ z90\0\2c2 = (6.165u,-3.742u);
+ z90\0\2 = (5.300u,-5.541u);
+ z90\0\3c1 = (4.993u,-4.955u);
+ z90\0\3c2 = (4.728u,-4.223u);
+ z90\0\3 = (4.236u,-3.718u);
+ z90\0\4c1 = (3.514u,-3.103u);
+ z90\0\4c2 = (1.089u,-2.340u);
+ z90\0\4 = (0.688u,-3.718u);
+ z90\0\5c1 = (0.544u,-3.999u);
+ z90\0\5c2 = (0.657u,-4.261u);
+ z90\0\5 = (0.688u,-4.577u);
+ z90\0\6c1 = (1.272u,-4.479u);
+ z90\0\6c2 = (1.848u,-4.334u);
+ z90\0\6 = (2.409u,-4.397u);
+ z90\0\7c1 = (4.046u,-4.580u);
+ z90\0\7c2 = (4.542u,-6.227u);
+ z90\0\7 = (5.491u,-5.941u);
+ z90\0\8c1 = (5.978u,-5.795u);
+ z90\0\8c2 = (6.348u,-5.000u);
+ z90\0\8 = (6.562u,-4.577u);
+ z90\0\9c1 = (7.379u,-2.959u);
+ z90\0\9c2 = (8.358u,0.726u);
+ z90\0\9 = (7.243u,2.355u);
+ z90\0\10c1 = (6.896u,2.863u);
+ z90\0\10c2 = (6.361u,3.104u);
+ z90\0\10 = (5.781u,3.245u);
+ z90\0\11c1 = (4.482u,3.560u);
+ z90\0\11c2 = (3.346u,3.165u);
+ z90\0\11 = (2.168u,2.650u);
+ z90\0\12c1 = (2.531u,4.647u);
+ z90\0\12c2 = (2.991u,5.285u);
+ z90\0\12 = (5.059u,5.337u);
+ z90\0\13c1 = (5.500u,5.303u);
+ z90\0\13c2 = (6.332u,5.266u);
+ z90\0\13 = (6.731u,5.337u);
+ z90\0\14c1 = (7.012u,5.452u);
+ z90\0\14c2 = (7.285u,5.570u);
+ z90\0\14 = (7.427u,5.843u);
+ z90\0\15c1 = (7.597u,6.170u);
+ z90\0\15c2 = (7.454u,6.445u);
+ z90\0\15 = (7.147u,6.550u);
+ z90\0\16c1 = (6.601u,6.880u);
+ z90\0\16c2 = (2.746u,6.833u);
+ z90\0\16 = (2.245u,6.550u);
+ z90\0\17c1 = (1.810u,6.211u);
+ z90\0\17c2 = (1.783u,5.871u);
+ z90\0\17 = (1.860u,5.401u);
+ z90\0\18 = (2.035u,4.556u);
+ z90\0\19c1 = (2.057u,4.002u);
+ z90\0\19c2 = (1.877u,3.435u);
+ z90\0\19 = (1.739u,2.891u);
+ fill_or_unfill z90\0\0s
+ ..controls z90\0\0c1 and z90\0\0c2..z90\0\0
+ ..controls z90\0\1c1 and z90\0\1c2..z90\0\1
+ ..controls z90\0\2c1 and z90\0\2c2..z90\0\2
+ ..controls z90\0\3c1 and z90\0\3c2..z90\0\3
+ ..controls z90\0\4c1 and z90\0\4c2..z90\0\4
+ ..controls z90\0\5c1 and z90\0\5c2..z90\0\5
+ ..controls z90\0\6c1 and z90\0\6c2..z90\0\6
+ ..controls z90\0\7c1 and z90\0\7c2..z90\0\7
+ ..controls z90\0\8c1 and z90\0\8c2..z90\0\8
+ ..controls z90\0\9c1 and z90\0\9c2..z90\0\9
+ ..controls z90\0\10c1 and z90\0\10c2..z90\0\10
+ ..controls z90\0\11c1 and z90\0\11c2..z90\0\11
+ ..controls z90\0\12c1 and z90\0\12c2..z90\0\12
+ ..controls z90\0\13c1 and z90\0\13c2..z90\0\13
+ ..controls z90\0\14c1 and z90\0\14c2..z90\0\14
+ ..controls z90\0\15c1 and z90\0\15c2..z90\0\15
+ ..controls z90\0\16c1 and z90\0\16c2..z90\0\16
+ ..controls z90\0\17c1 and z90\0\17c2..z90\0\17
+ --z90\0\18
+ ..controls z90\0\19c1 and z90\0\19c2..z90\0\19
+ --cycle;
+ proof_labels (
+ 90\0\0,
+ 90\0\1,
+ 90\0\2,
+ 90\0\3,
+ 90\0\4,
+ 90\0\5,
+ 90\0\6,
+ 90\0\7,
+ 90\0\8,
+ 90\0\9,
+ 90\0\10,
+ 90\0\11,
+ 90\0\12,
+ 90\0\13,
+ 90\0\14,
+ 90\0\15,
+ 90\0\16,
+ 90\0\17,
+ 90\0\18,
+ 90\0\19,
+ 90\0\20,
+);
+endchar;
+
+beginchar (TIB_THRA, 8.431u#, 6.745u#, 6.745u#);
+ "thra";
+ z91\0\0s = (3.613u,1.445u);
+ z91\0\0c1 = (2.840u,0.979u);
+ z91\0\0c2 = (1.453u,0.246u);
+ z91\0\0 = (1.005u,-0.526u);
+ z91\0\1c1 = (0.831u,-0.826u);
+ z91\0\1c2 = (0.794u,-1.116u);
+ z91\0\1 = (0.723u,-1.486u);
+ z91\0\2c1 = (1.653u,-1.445u);
+ z91\0\2c2 = (2.701u,-1.351u);
+ z91\0\2 = (3.613u,-1.486u);
+ z91\0\3c1 = (5.399u,-1.871u);
+ z91\0\3c2 = (6.656u,-3.329u);
+ z91\0\3 = (6.986u,-5.059u);
+ z91\0\4c1 = (5.837u,-4.029u);
+ z91\0\4c2 = (3.085u,-1.969u);
+ z91\0\4 = (1.459u,-2.624u);
+ z91\0\5c1 = (1.059u,-2.785u);
+ z91\0\5c2 = (0.796u,-3.002u);
+ z91\0\5 = (0.626u,-3.404u);
+ z91\0\6c1 = (0.472u,-3.767u);
+ z91\0\6c2 = (0.495u,-4.192u);
+ z91\0\6 = (0.482u,-4.577u);
+ z91\0\7c1 = (2.252u,-4.344u);
+ z91\0\7c2 = (4.094u,-4.038u);
+ z91\0\7 = (5.679u,-5.112u);
+ z91\0\8 = (7.484u,-6.504u);
+ z91\0\9 = (7.484u,2.650u);
+ z91\0\10 = (7.484u,4.095u);
+ z91\0\11 = (7.905u,5.541u);
+ z91\0\12 = (7.905u,6.707u);
+ z91\0\13c1 = (7.036u,6.745u);
+ z91\0\13c2 = (2.992u,6.821u);
+ z91\0\13 = (2.413u,6.707u);
+ z91\0\14c1 = (2.175u,6.607u);
+ z91\0\14c2 = (1.955u,6.526u);
+ z91\0\14 = (1.766u,6.360u);
+ z91\0\15c1 = (1.157u,5.823u);
+ z91\0\15c2 = (1.466u,5.250u);
+ z91\0\15 = (1.386u,4.577u);
+ z91\0\16 = (1.148u,3.614u);
+ z91\0\17c1 = (0.879u,1.942u);
+ z91\0\17c2 = (2.278u,1.520u);
+ z91\1\0s = (2.676u,5.156u);
+ z91\1\0c1 = (3.448u,5.328u);
+ z91\1\0c2 = (7.093u,5.753u);
+ z91\1\0 = (6.464u,4.100u);
+ z91\1\1c1 = (6.237u,3.504u);
+ z91\1\1c2 = (5.414u,2.944u);
+ z91\1\1 = (4.818u,2.774u);
+ z91\1\2c1 = (3.594u,2.422u);
+ z91\1\2c2 = (0.984u,3.471u);
+ z91\1\2 = (2.276u,4.915u);
+ z91\2\0s = (6.765u,3.372u);
+ z91\2\0 = (6.765u,1.445u);
+ z91\2\1 = (6.975u,0.000u);
+ z91\2\2 = (6.975u,-3.132u);
+ z91\2\3c1 = (5.753u,-1.718u);
+ z91\2\3c2 = (4.748u,-0.375u);
+ z91\2\3 = (2.891u,0.241u);
+ z91\2\4c1 = (3.467u,0.973u);
+ z91\2\4c2 = (4.084u,1.422u);
+ z91\2\4 = (4.818u,1.983u);
+ fill_or_unfill z91\0\0s
+ ..controls z91\0\0c1 and z91\0\0c2..z91\0\0
+ ..controls z91\0\1c1 and z91\0\1c2..z91\0\1
+ ..controls z91\0\2c1 and z91\0\2c2..z91\0\2
+ ..controls z91\0\3c1 and z91\0\3c2..z91\0\3
+ ..controls z91\0\4c1 and z91\0\4c2..z91\0\4
+ ..controls z91\0\5c1 and z91\0\5c2..z91\0\5
+ ..controls z91\0\6c1 and z91\0\6c2..z91\0\6
+ ..controls z91\0\7c1 and z91\0\7c2..z91\0\7
+ --z91\0\8
+ --z91\0\9
+ --z91\0\10
+ --z91\0\11
+ --z91\0\12
+ ..controls z91\0\13c1 and z91\0\13c2..z91\0\13
+ ..controls z91\0\14c1 and z91\0\14c2..z91\0\14
+ ..controls z91\0\15c1 and z91\0\15c2..z91\0\15
+ --z91\0\16
+ ..controls z91\0\17c1 and z91\0\17c2..cycle;
+ fill_or_unfill z91\1\0s
+ ..controls z91\1\0c1 and z91\1\0c2..z91\1\0
+ ..controls z91\1\1c1 and z91\1\1c2..z91\1\1
+ ..controls z91\1\2c1 and z91\1\2c2..z91\1\2
+ --cycle;
+ fill_or_unfill z91\2\0s
+ --z91\2\0
+ --z91\2\1
+ --z91\2\2
+ ..controls z91\2\3c1 and z91\2\3c2..z91\2\3
+ ..controls z91\2\4c1 and z91\2\4c2..z91\2\4
+ --cycle;
+ proof_labels (
+ 91\0\0,
+ 91\0\1,
+ 91\0\2,
+ 91\0\3,
+ 91\0\4,
+ 91\0\5,
+ 91\0\6,
+ 91\0\7,
+ 91\0\8,
+ 91\0\9,
+ 91\0\10,
+ 91\0\11,
+ 91\0\12,
+ 91\0\13,
+ 91\0\14,
+ 91\0\15,
+ 91\0\16,
+ 91\0\17,
+ 91\1\0,
+ 91\1\1,
+ 91\1\2,
+ 91\1\3,
+ 91\2\0,
+ 91\2\1,
+ 91\2\2,
+ 91\2\3,
+ 91\2\4,
+ 91\2\5,
+);
+endchar;
+
+beginchar (TIB_DRA, 9.636u#, 6.745u#, 7.227u#);
+ "dra";
+ z92\0\0s = (1.204u,5.300u);
+ z92\0\0 = (2.168u,5.300u);
+ z92\0\1c1 = (1.427u,4.217u);
+ z92\0\1c2 = (0.660u,2.749u);
+ z92\0\1 = (0.482u,1.445u);
+ z92\0\2c1 = (1.363u,1.517u);
+ z92\0\2c2 = (2.245u,1.725u);
+ z92\0\2 = (3.132u,1.663u);
+ z92\0\3c1 = (6.624u,1.418u);
+ z92\0\3c2 = (7.844u,-2.147u);
+ z92\0\3 = (8.431u,-5.059u);
+ z92\0\4c1 = (7.728u,-4.561u);
+ z92\0\4c2 = (7.042u,-4.023u);
+ z92\0\4 = (6.263u,-3.666u);
+ z92\0\5c1 = (5.153u,-3.110u);
+ z92\0\5c2 = (2.536u,-2.398u);
+ z92\0\5 = (1.691u,-3.666u);
+ z92\0\6c1 = (1.505u,-3.969u);
+ z92\0\6c2 = (1.499u,-4.259u);
+ z92\0\6 = (1.445u,-4.577u);
+ z92\0\7 = (3.854u,-4.346u);
+ z92\0\8c1 = (6.110u,-4.275u);
+ z92\0\8c2 = (7.568u,-5.248u);
+ z92\0\8 = (8.913u,-6.986u);
+ z92\0\9c1 = (9.277u,-5.992u);
+ z92\0\9c2 = (8.842u,-5.103u);
+ z92\0\9 = (8.710u,-4.095u);
+ z92\0\10 = (8.308u,-1.445u);
+ z92\0\11c1 = (7.988u,-0.186u);
+ z92\0\11c2 = (6.832u,1.920u);
+ z92\0\11 = (5.740u,2.630u);
+ z92\0\12c1 = (5.322u,2.902u);
+ z92\0\12c2 = (4.586u,3.143u);
+ z92\0\12 = (4.095u,3.248u);
+ z92\0\13c1 = (3.309u,3.416u);
+ z92\0\13c2 = (2.486u,3.372u);
+ z92\0\13 = (1.686u,3.372u);
+ z92\0\14c1 = (1.945u,3.936u);
+ z92\0\14c2 = (2.181u,4.501u);
+ z92\0\14 = (2.701u,4.881u);
+ z92\0\15c1 = (3.945u,5.792u);
+ z92\0\15c2 = (6.466u,4.741u);
+ z92\0\15 = (7.222u,5.857u);
+ z92\0\16c1 = (7.410u,6.135u);
+ z92\0\16c2 = (7.415u,6.431u);
+ z92\0\16 = (7.468u,6.745u);
+ z92\0\17c1 = (6.470u,6.745u);
+ z92\0\17c2 = (2.386u,6.914u);
+ z92\0\17 = (1.762u,6.499u);
+ z92\0\18c1 = (1.313u,6.200u);
+ z92\0\18c2 = (1.285u,5.780u);
+ fill_or_unfill z92\0\0s
+ --z92\0\0
+ ..controls z92\0\1c1 and z92\0\1c2..z92\0\1
+ ..controls z92\0\2c1 and z92\0\2c2..z92\0\2
+ ..controls z92\0\3c1 and z92\0\3c2..z92\0\3
+ ..controls z92\0\4c1 and z92\0\4c2..z92\0\4
+ ..controls z92\0\5c1 and z92\0\5c2..z92\0\5
+ ..controls z92\0\6c1 and z92\0\6c2..z92\0\6
+ --z92\0\7
+ ..controls z92\0\8c1 and z92\0\8c2..z92\0\8
+ ..controls z92\0\9c1 and z92\0\9c2..z92\0\9
+ --z92\0\10
+ ..controls z92\0\11c1 and z92\0\11c2..z92\0\11
+ ..controls z92\0\12c1 and z92\0\12c2..z92\0\12
+ ..controls z92\0\13c1 and z92\0\13c2..z92\0\13
+ ..controls z92\0\14c1 and z92\0\14c2..z92\0\14
+ ..controls z92\0\15c1 and z92\0\15c2..z92\0\15
+ ..controls z92\0\16c1 and z92\0\16c2..z92\0\16
+ ..controls z92\0\17c1 and z92\0\17c2..z92\0\17
+ ..controls z92\0\18c1 and z92\0\18c2..cycle;
+ proof_labels (
+ 92\0\0,
+ 92\0\1,
+ 92\0\2,
+ 92\0\3,
+ 92\0\4,
+ 92\0\5,
+ 92\0\6,
+ 92\0\7,
+ 92\0\8,
+ 92\0\9,
+ 92\0\10,
+ 92\0\11,
+ 92\0\12,
+ 92\0\13,
+ 92\0\14,
+ 92\0\15,
+ 92\0\16,
+ 92\0\17,
+ 92\0\18,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+beginchar (TIB_DRWA, 9.636u#, 6.745u#, 12.045u#);
+ "drwa";
+ z76\0\0s = (1.204u,5.300u);
+ z76\0\0 = (2.168u,5.300u);
+ z76\0\1c1 = (1.427u,4.217u);
+ z76\0\1c2 = (0.660u,2.749u);
+ z76\0\1 = (0.482u,1.445u);
+ z76\0\2c1 = (1.363u,1.517u);
+ z76\0\2c2 = (2.245u,1.725u);
+ z76\0\2 = (3.132u,1.663u);
+ z76\0\3c1 = (6.624u,1.418u);
+ z76\0\3c2 = (7.844u,-2.147u);
+ z76\0\3 = (8.431u,-5.059u);
+ z76\0\4c1 = (7.728u,-4.561u);
+ z76\0\4c2 = (7.042u,-4.023u);
+ z76\0\4 = (6.263u,-3.666u);
+ z76\0\5c1 = (5.153u,-3.110u);
+ z76\0\5c2 = (2.536u,-2.398u);
+ z76\0\5 = (1.691u,-3.666u);
+ z76\0\6c1 = (1.505u,-3.969u);
+ z76\0\6c2 = (1.499u,-4.259u);
+ z76\0\6 = (1.445u,-4.577u);
+ z76\0\7 = (3.854u,-4.346u);
+ z76\0\8c1 = (6.110u,-4.275u);
+ z76\0\8c2 = (7.568u,-5.248u);
+ z76\0\8 = (8.913u,-6.986u);
+ z76\0\9c1 = (7.550u,-7.651u);
+ z76\0\9c2 = (6.319u,-8.555u);
+ z76\0\9 = (5.059u,-9.395u);
+ z76\0\10c1 = (6.061u,-10.476u);
+ z76\0\10c2 = (7.679u,-11.599u);
+ z76\0\10 = (9.140u,-11.804u);
+ z76\0\11 = (9.140u,-8.431u);
+ z76\0\12 = (9.140u,-6.263u);
+ z76\0\13 = (8.710u,-4.095u);
+ z76\0\14c1 = (8.419u,-1.877u);
+ z76\0\14c2 = (8.369u,-0.736u);
+ z76\0\14 = (7.047u,1.203u);
+ z76\0\15c1 = (6.685u,1.735u);
+ z76\0\15c2 = (6.286u,2.275u);
+ z76\0\15 = (5.740u,2.630u);
+ z76\0\16c1 = (4.537u,3.412u);
+ z76\0\16c2 = (3.057u,3.372u);
+ z76\0\16 = (1.686u,3.372u);
+ z76\0\17c1 = (1.945u,3.936u);
+ z76\0\17c2 = (2.181u,4.501u);
+ z76\0\17 = (2.701u,4.881u);
+ z76\0\18c1 = (3.945u,5.792u);
+ z76\0\18c2 = (6.466u,4.741u);
+ z76\0\18 = (7.222u,5.857u);
+ z76\0\19c1 = (7.410u,6.135u);
+ z76\0\19c2 = (7.415u,6.431u);
+ z76\0\19 = (7.468u,6.745u);
+ z76\0\20c1 = (6.470u,6.745u);
+ z76\0\20c2 = (2.386u,6.914u);
+ z76\0\20 = (1.762u,6.499u);
+ z76\0\21c1 = (1.313u,6.200u);
+ z76\0\21c2 = (1.285u,5.780u);
+ z76\1\0s = (8.672u,-7.709u);
+ z76\1\0 = (8.672u,-11.322u);
+ z76\1\1c1 = (7.706u,-10.851u);
+ z76\1\1c2 = (6.873u,-10.292u);
+ z76\1\1 = (6.022u,-9.636u);
+ z76\1\2c1 = (6.780u,-8.744u);
+ z76\1\2c2 = (7.651u,-8.255u);
+ fill_or_unfill z76\0\0s
+ --z76\0\0
+ ..controls z76\0\1c1 and z76\0\1c2..z76\0\1
+ ..controls z76\0\2c1 and z76\0\2c2..z76\0\2
+ ..controls z76\0\3c1 and z76\0\3c2..z76\0\3
+ ..controls z76\0\4c1 and z76\0\4c2..z76\0\4
+ ..controls z76\0\5c1 and z76\0\5c2..z76\0\5
+ ..controls z76\0\6c1 and z76\0\6c2..z76\0\6
+ --z76\0\7
+ ..controls z76\0\8c1 and z76\0\8c2..z76\0\8
+ ..controls z76\0\9c1 and z76\0\9c2..z76\0\9
+ ..controls z76\0\10c1 and z76\0\10c2..z76\0\10
+ --z76\0\11
+ --z76\0\12
+ --z76\0\13
+ ..controls z76\0\14c1 and z76\0\14c2..z76\0\14
+ ..controls z76\0\15c1 and z76\0\15c2..z76\0\15
+ ..controls z76\0\16c1 and z76\0\16c2..z76\0\16
+ ..controls z76\0\17c1 and z76\0\17c2..z76\0\17
+ ..controls z76\0\18c1 and z76\0\18c2..z76\0\18
+ ..controls z76\0\19c1 and z76\0\19c2..z76\0\19
+ ..controls z76\0\20c1 and z76\0\20c2..z76\0\20
+ ..controls z76\0\21c1 and z76\0\21c2..cycle;
+ fill_or_unfill z76\1\0s
+ --z76\1\0
+ ..controls z76\1\1c1 and z76\1\1c2..z76\1\1
+ ..controls z76\1\2c1 and z76\1\2c2..cycle;
+ proof_labels (
+ 76\0\0,
+ 76\0\1,
+ 76\0\2,
+ 76\0\3,
+ 76\0\4,
+ 76\0\5,
+ 76\0\6,
+ 76\0\7,
+ 76\0\8,
+ 76\0\9,
+ 76\0\10,
+ 76\0\11,
+ 76\0\12,
+ 76\0\13,
+ 76\0\14,
+ 76\0\15,
+ 76\0\16,
+ 76\0\17,
+ 76\0\18,
+ 76\0\19,
+ 76\0\20,
+ 76\0\21,
+ 76\1\0,
+ 76\1\1,
+ 76\1\2,
+);
+endchar;
+
+beginchar (TIB_NRA, 8.190u#, 6.745u#, 6.263u#);
+ "nra";
+ z93\0\0s = (1.927u,5.300u);
+ z93\0\0c1 = (3.134u,5.258u);
+ z93\0\0c2 = (3.517u,5.220u);
+ z93\0\0 = (4.095u,4.095u);
+ z93\0\1c1 = (3.365u,4.035u);
+ z93\0\1c2 = (2.340u,3.934u);
+ z93\0\1 = (1.697u,3.575u);
+ z93\0\2c1 = (-0.786u,2.187u);
+ z93\0\2c2 = (1.225u,-1.476u);
+ z93\0\2 = (3.609u,-0.235u);
+ z93\0\3c1 = (4.550u,0.254u);
+ z93\0\3c2 = (4.740u,0.958u);
+ z93\0\3 = (4.818u,1.927u);
+ z93\0\4c1 = (5.748u,0.886u);
+ z93\0\4c2 = (6.536u,-0.305u);
+ z93\0\4 = (6.859u,-1.686u);
+ z93\0\5 = (7.227u,-4.095u);
+ z93\0\6c1 = (6.910u,-3.753u);
+ z93\0\6c2 = (6.620u,-3.405u);
+ z93\0\6 = (6.221u,-3.194u);
+ z93\0\7c1 = (5.480u,-2.684u);
+ z93\0\7c2 = (4.002u,-2.384u);
+ z93\0\7 = (3.414u,-3.194u);
+ z93\0\8c1 = (3.185u,-3.568u);
+ z93\0\8c2 = (3.177u,-3.953u);
+ z93\0\8 = (3.132u,-4.336u);
+ z93\0\9c1 = (4.472u,-4.276u);
+ z93\0\9c2 = (5.297u,-3.919u);
+ z93\0\9 = (6.426u,-4.908u);
+ z93\0\10c1 = (6.892u,-5.316u);
+ z93\0\10c2 = (7.163u,-5.701u);
+ z93\0\10 = (7.687u,-6.022u);
+ z93\0\11c1 = (7.709u,-4.690u);
+ z93\0\11c2 = (7.822u,-3.246u);
+ z93\0\11 = (7.687u,-1.927u);
+ z93\0\12 = (7.301u,-0.241u);
+ z93\0\13c1 = (7.166u,0.486u);
+ z93\0\13c2 = (7.141u,1.241u);
+ z93\0\13 = (6.830u,1.926u);
+ z93\0\14c1 = (6.405u,2.858u);
+ z93\0\14c2 = (5.363u,3.430u);
+ z93\0\14 = (5.099u,4.112u);
+ z93\0\15c1 = (4.650u,5.273u);
+ z93\0\15c2 = (6.278u,5.225u);
+ z93\0\15 = (6.808u,5.739u);
+ z93\0\16c1 = (7.106u,6.028u);
+ z93\0\16c2 = (7.141u,6.366u);
+ z93\0\16 = (7.227u,6.745u);
+ z93\0\17c1 = (6.342u,6.745u);
+ z93\0\17c2 = (3.099u,6.902u);
+ z93\0\17 = (2.513u,6.499u);
+ z93\0\18c1 = (2.083u,6.204u);
+ z93\0\18c2 = (2.030u,5.765u);
+ z93\1\0s = (2.650u,2.720u);
+ z93\1\0c1 = (2.905u,2.746u);
+ z93\1\0c2 = (3.109u,2.759u);
+ z93\1\0 = (3.359u,2.720u);
+ z93\1\1c1 = (4.938u,2.085u);
+ z93\1\1c2 = (4.092u,0.164u);
+ z93\1\1 = (2.652u,0.164u);
+ z93\1\2c1 = (1.670u,0.164u);
+ z93\1\2c2 = (0.450u,1.592u);
+ z93\1\2 = (1.344u,2.376u);
+ z93\1\3c1 = (1.695u,2.684u);
+ z93\1\3c2 = (2.213u,2.716u);
+ z93\2\0s = (4.818u,2.168u);
+ z93\2\0 = (4.818u,1.927u);
+ z93\2\1 = (4.577u,2.168u);
+ fill_or_unfill z93\0\0s
+ ..controls z93\0\0c1 and z93\0\0c2..z93\0\0
+ ..controls z93\0\1c1 and z93\0\1c2..z93\0\1
+ ..controls z93\0\2c1 and z93\0\2c2..z93\0\2
+ ..controls z93\0\3c1 and z93\0\3c2..z93\0\3
+ ..controls z93\0\4c1 and z93\0\4c2..z93\0\4
+ --z93\0\5
+ ..controls z93\0\6c1 and z93\0\6c2..z93\0\6
+ ..controls z93\0\7c1 and z93\0\7c2..z93\0\7
+ ..controls z93\0\8c1 and z93\0\8c2..z93\0\8
+ ..controls z93\0\9c1 and z93\0\9c2..z93\0\9
+ ..controls z93\0\10c1 and z93\0\10c2..z93\0\10
+ ..controls z93\0\11c1 and z93\0\11c2..z93\0\11
+ --z93\0\12
+ ..controls z93\0\13c1 and z93\0\13c2..z93\0\13
+ ..controls z93\0\14c1 and z93\0\14c2..z93\0\14
+ ..controls z93\0\15c1 and z93\0\15c2..z93\0\15
+ ..controls z93\0\16c1 and z93\0\16c2..z93\0\16
+ ..controls z93\0\17c1 and z93\0\17c2..z93\0\17
+ ..controls z93\0\18c1 and z93\0\18c2..cycle;
+ fill_or_unfill z93\1\0s
+ ..controls z93\1\0c1 and z93\1\0c2..z93\1\0
+ ..controls z93\1\1c1 and z93\1\1c2..z93\1\1
+ ..controls z93\1\2c1 and z93\1\2c2..z93\1\2
+ ..controls z93\1\3c1 and z93\1\3c2..cycle;
+ fill_or_unfill z93\2\0s
+ --z93\2\0
+ --z93\2\1
+ --cycle;
+ proof_labels (
+ 93\0\0,
+ 93\0\1,
+ 93\0\2,
+ 93\0\3,
+ 93\0\4,
+ 93\0\5,
+ 93\0\6,
+ 93\0\7,
+ 93\0\8,
+ 93\0\9,
+ 93\0\10,
+ 93\0\11,
+ 93\0\12,
+ 93\0\13,
+ 93\0\14,
+ 93\0\15,
+ 93\0\16,
+ 93\0\17,
+ 93\0\18,
+ 93\1\0,
+ 93\1\1,
+ 93\1\2,
+ 93\1\3,
+ 93\2\0,
+ 93\2\1,
+ 93\2\2,
+);
+endchar;
+
+beginchar (TIB_PRA, 9.395u#, 6.745u#, 6.504u#);
+ "pra";
+ z94\0\0s = (1.445u,5.300u);
+ z94\0\0 = (1.927u,5.059u);
+ z94\0\1 = (2.168u,5.059u);
+ z94\0\2c1 = (1.406u,3.683u);
+ z94\0\2c2 = (0.645u,2.055u);
+ z94\0\2 = (0.482u,0.482u);
+ z94\0\3 = (2.650u,0.679u);
+ z94\0\4c1 = (4.394u,0.802u);
+ z94\0\4c2 = (7.356u,-0.196u);
+ z94\0\4 = (8.047u,-1.936u);
+ z94\0\5c1 = (8.352u,-2.704u);
+ z94\0\5c2 = (8.429u,-4.672u);
+ z94\0\5 = (8.431u,-5.541u);
+ z94\0\6c1 = (7.756u,-4.871u);
+ z94\0\6c2 = (7.088u,-4.156u);
+ z94\0\6 = (6.263u,-3.667u);
+ z94\0\7c1 = (5.287u,-3.087u);
+ z94\0\7c2 = (2.490u,-2.316u);
+ z94\0\7 = (1.692u,-3.476u);
+ z94\0\8c1 = (1.465u,-3.805u);
+ z94\0\8c2 = (1.477u,-4.199u);
+ z94\0\8 = (1.445u,-4.577u);
+ z94\0\9c1 = (3.067u,-4.446u);
+ z94\0\9c2 = (4.733u,-4.029u);
+ z94\0\9 = (6.263u,-4.850u);
+ z94\0\10 = (7.950u,-6.023u);
+ z94\0\11 = (8.679u,-6.263u);
+ z94\0\12 = (8.679u,3.132u);
+ z94\0\13 = (8.679u,4.336u);
+ z94\0\14c1 = (8.737u,4.968u);
+ z94\0\14c2 = (9.145u,6.272u);
+ z94\0\14 = (8.360u,6.587u);
+ z94\0\15c1 = (7.988u,6.737u);
+ z94\0\15c2 = (7.536u,6.582u);
+ z94\0\15 = (7.402u,6.188u);
+ z94\0\16c1 = (7.256u,5.759u);
+ z94\0\16c2 = (8.068u,3.407u);
+ z94\0\16 = (8.170u,2.650u);
+ z94\0\17c1 = (8.275u,1.474u);
+ z94\0\17c2 = (8.190u,0.221u);
+ z94\0\17 = (8.170u,-0.964u);
+ z94\0\18c1 = (7.712u,-0.394u);
+ z94\0\18c2 = (7.266u,0.259u);
+ z94\0\18 = (6.695u,0.740u);
+ z94\0\19c1 = (5.400u,1.832u);
+ z94\0\19c2 = (3.106u,2.273u);
+ z94\0\19 = (1.445u,2.409u);
+ z94\0\20c1 = (3.554u,7.128u);
+ z94\0\20c2 = (5.304u,3.898u);
+ z94\0\20 = (5.782u,6.745u);
+ z94\0\21c1 = (4.867u,6.745u);
+ z94\0\21c2 = (2.511u,6.926u);
+ z94\0\21 = (1.864u,6.306u);
+ z94\0\22c1 = (1.565u,6.020u);
+ z94\0\22c2 = (1.531u,5.676u);
+ fill_or_unfill z94\0\0s
+ --z94\0\0
+ --z94\0\1
+ ..controls z94\0\2c1 and z94\0\2c2..z94\0\2
+ --z94\0\3
+ ..controls z94\0\4c1 and z94\0\4c2..z94\0\4
+ ..controls z94\0\5c1 and z94\0\5c2..z94\0\5
+ ..controls z94\0\6c1 and z94\0\6c2..z94\0\6
+ ..controls z94\0\7c1 and z94\0\7c2..z94\0\7
+ ..controls z94\0\8c1 and z94\0\8c2..z94\0\8
+ ..controls z94\0\9c1 and z94\0\9c2..z94\0\9
+ --z94\0\10
+ --z94\0\11
+ --z94\0\12
+ --z94\0\13
+ ..controls z94\0\14c1 and z94\0\14c2..z94\0\14
+ ..controls z94\0\15c1 and z94\0\15c2..z94\0\15
+ ..controls z94\0\16c1 and z94\0\16c2..z94\0\16
+ ..controls z94\0\17c1 and z94\0\17c2..z94\0\17
+ ..controls z94\0\18c1 and z94\0\18c2..z94\0\18
+ ..controls z94\0\19c1 and z94\0\19c2..z94\0\19
+ ..controls z94\0\20c1 and z94\0\20c2..z94\0\20
+ ..controls z94\0\21c1 and z94\0\21c2..z94\0\21
+ ..controls z94\0\22c1 and z94\0\22c2..cycle;
+ proof_labels (
+ 94\0\0,
+ 94\0\1,
+ 94\0\2,
+ 94\0\3,
+ 94\0\4,
+ 94\0\5,
+ 94\0\6,
+ 94\0\7,
+ 94\0\8,
+ 94\0\9,
+ 94\0\10,
+ 94\0\11,
+ 94\0\12,
+ 94\0\13,
+ 94\0\14,
+ 94\0\15,
+ 94\0\16,
+ 94\0\17,
+ 94\0\18,
+ 94\0\19,
+ 94\0\20,
+ 94\0\21,
+ 94\0\22,
+);
+endchar;
+
+beginchar (TIB_PHRA, 9.877u#, 6.745u#, 5.782u#);
+ "phra";
+ z95\0\0s = (0.964u,5.300u);
+ z95\0\0 = (2.409u,5.300u);
+ z95\0\1c1 = (1.557u,3.804u);
+ z95\0\1c2 = (0.662u,2.217u);
+ z95\0\1 = (0.482u,0.482u);
+ z95\0\2 = (2.891u,0.918u);
+ z95\0\3c1 = (4.595u,0.956u);
+ z95\0\3c2 = (7.567u,0.025u);
+ z95\0\3 = (8.254u,-1.696u);
+ z95\0\4c1 = (8.513u,-2.346u);
+ z95\0\4c2 = (8.431u,-3.610u);
+ z95\0\4 = (8.431u,-4.336u);
+ z95\0\5c1 = (7.193u,-3.009u);
+ z95\0\5c2 = (5.539u,-1.758u);
+ z95\0\5 = (3.617u,-1.954u);
+ z95\0\6c1 = (2.454u,-2.072u);
+ z95\0\6c2 = (2.293u,-2.565u);
+ z95\0\6 = (2.168u,-3.613u);
+ z95\0\7 = (4.336u,-3.385u);
+ z95\0\8c1 = (6.051u,-3.360u);
+ z95\0\8c2 = (7.424u,-4.204u);
+ z95\0\8 = (8.431u,-5.541u);
+ z95\0\9 = (8.654u,-5.005u);
+ z95\0\10c1 = (8.756u,-4.269u);
+ z95\0\10c2 = (8.672u,-3.401u);
+ z95\0\10 = (8.654u,-2.650u);
+ z95\0\11 = (8.654u,1.445u);
+ z95\0\12c1 = (8.674u,2.585u);
+ z95\0\12c2 = (8.779u,3.696u);
+ z95\0\12 = (8.988u,4.818u);
+ z95\0\13 = (9.395u,6.745u);
+ z95\0\14c1 = (8.786u,6.745u);
+ z95\0\14c2 = (7.183u,6.918u);
+ z95\0\14 = (6.922u,6.220u);
+ z95\0\15c1 = (6.790u,5.868u);
+ z95\0\15c2 = (7.017u,5.737u);
+ z95\0\15 = (7.227u,5.541u);
+ z95\0\16c1 = (6.920u,5.113u);
+ z95\0\16c2 = (6.628u,4.731u);
+ z95\0\16 = (6.253u,4.357u);
+ z95\0\17c1 = (5.439u,3.548u);
+ z95\0\17c2 = (4.858u,3.247u);
+ z95\0\17 = (4.336u,2.168u);
+ z95\0\18c1 = (3.357u,2.446u);
+ z95\0\18c2 = (2.454u,2.409u);
+ z95\0\18 = (1.445u,2.409u);
+ z95\0\19c1 = (1.892u,3.277u);
+ z95\0\19c2 = (2.459u,4.202u);
+ z95\0\19 = (3.243u,4.811u);
+ z95\0\20c1 = (4.350u,5.670u);
+ z95\0\20c2 = (5.005u,4.987u);
+ z95\0\20 = (5.300u,6.745u);
+ z95\0\21c1 = (4.484u,6.745u);
+ z95\0\21c2 = (1.686u,6.962u);
+ z95\0\21 = (1.210u,6.360u);
+ z95\0\22c1 = (0.974u,6.063u);
+ z95\0\22c2 = (0.993u,5.654u);
+ z95\1\0s = (7.709u,4.336u);
+ z95\1\0 = (8.431u,-0.241u);
+ z95\1\1c1 = (7.148u,0.337u);
+ z95\1\1c2 = (6.099u,1.302u);
+ z95\1\1 = (4.818u,1.927u);
+ z95\1\2c1 = (5.252u,3.371u);
+ z95\1\2c2 = (6.329u,3.933u);
+ fill_or_unfill z95\0\0s
+ --z95\0\0
+ ..controls z95\0\1c1 and z95\0\1c2..z95\0\1
+ --z95\0\2
+ ..controls z95\0\3c1 and z95\0\3c2..z95\0\3
+ ..controls z95\0\4c1 and z95\0\4c2..z95\0\4
+ ..controls z95\0\5c1 and z95\0\5c2..z95\0\5
+ ..controls z95\0\6c1 and z95\0\6c2..z95\0\6
+ --z95\0\7
+ ..controls z95\0\8c1 and z95\0\8c2..z95\0\8
+ --z95\0\9
+ ..controls z95\0\10c1 and z95\0\10c2..z95\0\10
+ --z95\0\11
+ ..controls z95\0\12c1 and z95\0\12c2..z95\0\12
+ --z95\0\13
+ ..controls z95\0\14c1 and z95\0\14c2..z95\0\14
+ ..controls z95\0\15c1 and z95\0\15c2..z95\0\15
+ ..controls z95\0\16c1 and z95\0\16c2..z95\0\16
+ ..controls z95\0\17c1 and z95\0\17c2..z95\0\17
+ ..controls z95\0\18c1 and z95\0\18c2..z95\0\18
+ ..controls z95\0\19c1 and z95\0\19c2..z95\0\19
+ ..controls z95\0\20c1 and z95\0\20c2..z95\0\20
+ ..controls z95\0\21c1 and z95\0\21c2..z95\0\21
+ ..controls z95\0\22c1 and z95\0\22c2..cycle;
+ fill_or_unfill z95\1\0s
+ --z95\1\0
+ ..controls z95\1\1c1 and z95\1\1c2..z95\1\1
+ ..controls z95\1\2c1 and z95\1\2c2..cycle;
+ proof_labels (
+ 95\0\0,
+ 95\0\1,
+ 95\0\2,
+ 95\0\3,
+ 95\0\4,
+ 95\0\5,
+ 95\0\6,
+ 95\0\7,
+ 95\0\8,
+ 95\0\9,
+ 95\0\10,
+ 95\0\11,
+ 95\0\12,
+ 95\0\13,
+ 95\0\14,
+ 95\0\15,
+ 95\0\16,
+ 95\0\17,
+ 95\0\18,
+ 95\0\19,
+ 95\0\20,
+ 95\0\21,
+ 95\0\22,
+ 95\1\0,
+ 95\1\1,
+ 95\1\2,
+);
+endchar;
+
+beginchar (TIB_BRA, 9.154u#, 6.745u#, 5.782u#);
+ "bra";
+ z96\0\0s = (2.184u,5.300u);
+ z96\0\0c1 = (1.534u,3.538u);
+ z96\0\0c2 = (1.009u,2.957u);
+ z96\0\0 = (0.964u,0.964u);
+ z96\0\1c1 = (3.125u,1.351u);
+ z96\0\1c2 = (5.110u,1.345u);
+ z96\0\1 = (6.917u,-0.106u);
+ z96\0\2c1 = (7.361u,-0.463u);
+ z96\0\2c2 = (7.848u,-0.922u);
+ z96\0\2 = (8.050u,-1.467u);
+ z96\0\3c1 = (8.277u,-2.080u);
+ z96\0\3c2 = (8.190u,-4.062u);
+ z96\0\3 = (8.190u,-4.818u);
+ z96\0\4c1 = (6.619u,-3.282u);
+ z96\0\4c2 = (5.218u,-2.045u);
+ z96\0\4 = (2.892u,-2.178u);
+ z96\0\5c1 = (2.386u,-2.208u);
+ z96\0\5c2 = (1.982u,-2.257u);
+ z96\0\5 = (1.572u,-2.587u);
+ z96\0\6c1 = (1.045u,-3.011u);
+ z96\0\6c2 = (0.751u,-3.735u);
+ z96\0\6 = (0.482u,-4.364u);
+ z96\0\7c1 = (0.751u,-4.372u);
+ z96\0\7c2 = (0.919u,-4.437u);
+ z96\0\7 = (1.204u,-4.364u);
+ z96\0\8c1 = (1.558u,-4.335u);
+ z96\0\8c2 = (1.851u,-4.142u);
+ z96\0\8 = (2.167u,-3.994u);
+ z96\0\9c1 = (2.841u,-3.677u);
+ z96\0\9c2 = (3.169u,-3.548u);
+ z96\0\9 = (3.924u,-3.583u);
+ z96\0\10c1 = (6.359u,-3.695u);
+ z96\0\10c2 = (6.490u,-4.880u);
+ z96\0\10 = (8.431u,-5.541u);
+ z96\0\11 = (8.431u,3.372u);
+ z96\0\12 = (8.672u,6.710u);
+ z96\0\13 = (3.372u,6.710u);
+ z96\0\14c1 = (3.026u,6.740u);
+ z96\0\14c2 = (2.527u,6.747u);
+ z96\0\14 = (2.184u,6.710u);
+ z96\0\15c1 = (1.241u,6.334u);
+ z96\0\15c2 = (1.527u,5.727u);
+ z96\1\0s = (7.929u,0.000u);
+ z96\1\0c1 = (7.296u,0.363u);
+ z96\1\0c2 = (6.852u,0.867u);
+ z96\1\0 = (6.260u,1.313u);
+ z96\1\1c1 = (4.554u,2.599u);
+ z96\1\1c2 = (3.473u,2.650u);
+ z96\1\1 = (1.445u,2.650u);
+ z96\1\2c1 = (1.685u,3.469u);
+ z96\1\2c2 = (2.007u,4.296u);
+ z96\1\2 = (2.729u,4.816u);
+ z96\1\3c1 = (2.999u,5.011u);
+ z96\1\3c2 = (3.294u,5.130u);
+ z96\1\3 = (3.617u,5.205u);
+ z96\1\4c1 = (4.288u,5.363u);
+ z96\1\4c2 = (6.744u,5.476u);
+ z96\1\4 = (7.185u,4.921u);
+ z96\1\5c1 = (7.434u,4.608u);
+ z96\1\5c2 = (7.856u,1.977u);
+ z96\1\5 = (7.929u,1.445u);
+ fill_or_unfill z96\0\0s
+ ..controls z96\0\0c1 and z96\0\0c2..z96\0\0
+ ..controls z96\0\1c1 and z96\0\1c2..z96\0\1
+ ..controls z96\0\2c1 and z96\0\2c2..z96\0\2
+ ..controls z96\0\3c1 and z96\0\3c2..z96\0\3
+ ..controls z96\0\4c1 and z96\0\4c2..z96\0\4
+ ..controls z96\0\5c1 and z96\0\5c2..z96\0\5
+ ..controls z96\0\6c1 and z96\0\6c2..z96\0\6
+ ..controls z96\0\7c1 and z96\0\7c2..z96\0\7
+ ..controls z96\0\8c1 and z96\0\8c2..z96\0\8
+ ..controls z96\0\9c1 and z96\0\9c2..z96\0\9
+ ..controls z96\0\10c1 and z96\0\10c2..z96\0\10
+ --z96\0\11
+ --z96\0\12
+ --z96\0\13
+ ..controls z96\0\14c1 and z96\0\14c2..z96\0\14
+ ..controls z96\0\15c1 and z96\0\15c2..cycle;
+ fill_or_unfill z96\1\0s
+ ..controls z96\1\0c1 and z96\1\0c2..z96\1\0
+ ..controls z96\1\1c1 and z96\1\1c2..z96\1\1
+ ..controls z96\1\2c1 and z96\1\2c2..z96\1\2
+ ..controls z96\1\3c1 and z96\1\3c2..z96\1\3
+ ..controls z96\1\4c1 and z96\1\4c2..z96\1\4
+ ..controls z96\1\5c1 and z96\1\5c2..z96\1\5
+ --cycle;
+ proof_labels (
+ 96\0\0,
+ 96\0\1,
+ 96\0\2,
+ 96\0\3,
+ 96\0\4,
+ 96\0\5,
+ 96\0\6,
+ 96\0\7,
+ 96\0\8,
+ 96\0\9,
+ 96\0\10,
+ 96\0\11,
+ 96\0\12,
+ 96\0\13,
+ 96\0\14,
+ 96\0\15,
+ 96\1\0,
+ 96\1\1,
+ 96\1\2,
+ 96\1\3,
+ 96\1\4,
+ 96\1\5,
+ 96\1\6,
+);
+endchar;
+
+beginchar (TIB_MRA, 10.359u#, 6.745u#, 6.022u#);
+ "mra";
+ z97\0\0s = (1.686u,5.300u);
+ z97\0\0c1 = (2.639u,4.987u);
+ z97\0\0c2 = (2.714u,4.738u);
+ z97\0\0 = (3.132u,3.854u);
+ z97\0\1c1 = (2.066u,3.792u);
+ z97\0\1c2 = (1.381u,3.671u);
+ z97\0\1 = (0.832u,2.639u);
+ z97\0\2c1 = (-0.644u,-0.133u);
+ z97\0\2c2 = (3.091u,-1.413u);
+ z97\0\2 = (4.090u,0.276u);
+ z97\0\3c1 = (4.387u,0.779u);
+ z97\0\3c2 = (4.334u,1.596u);
+ z97\0\3 = (4.336u,2.168u);
+ z97\0\4c1 = (6.112u,1.751u);
+ z97\0\4c2 = (8.445u,0.505u);
+ z97\0\4 = (8.880u,-1.445u);
+ z97\0\5c1 = (9.044u,-2.400u);
+ z97\0\5c2 = (8.913u,-3.595u);
+ z97\0\5 = (8.880u,-4.577u);
+ z97\0\6c1 = (7.485u,-3.698u);
+ z97\0\6c2 = (5.402u,-1.983u);
+ z97\0\6 = (3.618u,-2.532u);
+ z97\0\7c1 = (2.727u,-2.806u);
+ z97\0\7c2 = (2.552u,-3.254u);
+ z97\0\7 = (2.409u,-4.095u);
+ z97\0\8c1 = (4.261u,-4.055u);
+ z97\0\8c2 = (5.158u,-3.530u);
+ z97\0\8 = (6.983u,-4.415u);
+ z97\0\9 = (8.712u,-5.550u);
+ z97\0\10 = (9.419u,-5.782u);
+ z97\0\11 = (9.419u,2.891u);
+ z97\0\12 = (9.419u,4.336u);
+ z97\0\13 = (9.877u,6.745u);
+ z97\0\14c1 = (9.410u,6.739u);
+ z97\0\14c2 = (8.510u,6.809u);
+ z97\0\14 = (8.174u,6.360u);
+ z97\0\15c1 = (8.097u,6.169u);
+ z97\0\15c2 = (8.110u,5.983u);
+ z97\0\15 = (8.174u,5.768u);
+ z97\0\16 = (8.490u,4.095u);
+ z97\0\17 = (8.712u,2.168u);
+ z97\0\18 = (8.913u,0.241u);
+ z97\0\19c1 = (8.178u,1.137u);
+ z97\0\19c2 = (7.455u,2.056u);
+ z97\0\19 = (6.504u,2.738u);
+ z97\0\20c1 = (5.062u,3.772u);
+ z97\0\20c2 = (4.345u,3.533u);
+ z97\0\20 = (3.372u,5.300u);
+ z97\0\21c1 = (4.191u,5.300u);
+ z97\0\21c2 = (5.747u,5.102u);
+ z97\0\21 = (6.258u,5.857u);
+ z97\0\22c1 = (6.446u,6.135u);
+ z97\0\22c2 = (6.452u,6.431u);
+ z97\0\22 = (6.504u,6.745u);
+ z97\0\23c1 = (5.566u,6.745u);
+ z97\0\23c2 = (2.690u,6.977u);
+ z97\0\23 = (2.071u,6.360u);
+ z97\0\24c1 = (1.766u,6.056u);
+ z97\0\24c2 = (1.752u,5.694u);
+ z97\1\0s = (2.418u,2.522u);
+ z97\1\0c1 = (2.744u,2.567u);
+ z97\1\0c2 = (2.996u,2.635u);
+ z97\1\0 = (3.318u,2.522u);
+ z97\1\1c1 = (4.459u,2.031u);
+ z97\1\1c2 = (4.221u,0.227u);
+ z97\1\1 = (2.887u,-0.059u);
+ z97\1\2c1 = (1.505u,-0.355u);
+ z97\1\2c2 = (0.764u,1.355u);
+ z97\1\2 = (1.790u,2.231u);
+ z97\1\3c1 = (1.998u,2.409u);
+ z97\1\3c2 = (2.180u,2.439u);
+ fill_or_unfill z97\0\0s
+ ..controls z97\0\0c1 and z97\0\0c2..z97\0\0
+ ..controls z97\0\1c1 and z97\0\1c2..z97\0\1
+ ..controls z97\0\2c1 and z97\0\2c2..z97\0\2
+ ..controls z97\0\3c1 and z97\0\3c2..z97\0\3
+ ..controls z97\0\4c1 and z97\0\4c2..z97\0\4
+ ..controls z97\0\5c1 and z97\0\5c2..z97\0\5
+ ..controls z97\0\6c1 and z97\0\6c2..z97\0\6
+ ..controls z97\0\7c1 and z97\0\7c2..z97\0\7
+ ..controls z97\0\8c1 and z97\0\8c2..z97\0\8
+ --z97\0\9
+ --z97\0\10
+ --z97\0\11
+ --z97\0\12
+ --z97\0\13
+ ..controls z97\0\14c1 and z97\0\14c2..z97\0\14
+ ..controls z97\0\15c1 and z97\0\15c2..z97\0\15
+ --z97\0\16
+ --z97\0\17
+ --z97\0\18
+ ..controls z97\0\19c1 and z97\0\19c2..z97\0\19
+ ..controls z97\0\20c1 and z97\0\20c2..z97\0\20
+ ..controls z97\0\21c1 and z97\0\21c2..z97\0\21
+ ..controls z97\0\22c1 and z97\0\22c2..z97\0\22
+ ..controls z97\0\23c1 and z97\0\23c2..z97\0\23
+ ..controls z97\0\24c1 and z97\0\24c2..cycle;
+ fill_or_unfill z97\1\0s
+ ..controls z97\1\0c1 and z97\1\0c2..z97\1\0
+ ..controls z97\1\1c1 and z97\1\1c2..z97\1\1
+ ..controls z97\1\2c1 and z97\1\2c2..z97\1\2
+ ..controls z97\1\3c1 and z97\1\3c2..cycle;
+ proof_labels (
+ 97\0\0,
+ 97\0\1,
+ 97\0\2,
+ 97\0\3,
+ 97\0\4,
+ 97\0\5,
+ 97\0\6,
+ 97\0\7,
+ 97\0\8,
+ 97\0\9,
+ 97\0\10,
+ 97\0\11,
+ 97\0\12,
+ 97\0\13,
+ 97\0\14,
+ 97\0\15,
+ 97\0\16,
+ 97\0\17,
+ 97\0\18,
+ 97\0\19,
+ 97\0\20,
+ 97\0\21,
+ 97\0\22,
+ 97\0\23,
+ 97\0\24,
+ 97\1\0,
+ 97\1\1,
+ 97\1\2,
+ 97\1\3,
+);
+endchar;
+
+beginchar (TIB_SHRA, 11.804u#, 6.745u#, 6.986u#);
+ "shra";
+ z98\0\0s = (4.336u,0.000u);
+ z98\0\0c1 = (2.859u,1.071u);
+ z98\0\0c2 = (2.411u,1.806u);
+ z98\0\0 = (0.482u,2.168u);
+ z98\0\1c1 = (0.568u,-0.281u);
+ z98\0\1c2 = (1.667u,0.786u);
+ z98\0\1 = (3.059u,-0.363u);
+ z98\0\2 = (4.577u,-1.927u);
+ z98\0\3 = (4.577u,1.686u);
+ z98\0\4c1 = (5.683u,0.381u);
+ z98\0\4c2 = (6.995u,-0.144u);
+ z98\0\4 = (8.672u,0.479u);
+ z98\0\5 = (10.128u,1.204u);
+ z98\0\6 = (10.128u,-2.409u);
+ z98\0\7 = (10.359u,-5.059u);
+ z98\0\8c1 = (9.808u,-4.595u);
+ z98\0\8c2 = (9.304u,-4.064u);
+ z98\0\8 = (8.669u,-3.715u);
+ z98\0\9c1 = (7.656u,-3.154u);
+ z98\0\9c2 = (5.348u,-2.722u);
+ z98\0\9 = (4.480u,-3.715u);
+ z98\0\10c1 = (4.187u,-4.053u);
+ z98\0\10c2 = (4.164u,-4.404u);
+ z98\0\10 = (4.095u,-4.818u);
+ z98\0\11 = (6.022u,-4.489u);
+ z98\0\12c1 = (6.910u,-4.428u);
+ z98\0\12c2 = (8.329u,-4.810u);
+ z98\0\12 = (9.049u,-5.334u);
+ z98\0\13c1 = (9.695u,-5.804u);
+ z98\0\13c2 = (10.117u,-6.357u);
+ z98\0\13 = (10.876u,-6.745u);
+ z98\0\14 = (10.876u,1.686u);
+ z98\0\15c1 = (10.841u,2.337u);
+ z98\0\15c2 = (10.845u,2.969u);
+ z98\0\15 = (10.876u,3.613u);
+ z98\0\16 = (11.225u,5.530u);
+ z98\0\17c1 = (11.273u,5.741u);
+ z98\0\17c2 = (11.273u,5.964u);
+ z98\0\17 = (11.225u,6.160u);
+ z98\0\18c1 = (10.887u,6.787u);
+ z98\0\18c2 = (9.978u,6.736u);
+ z98\0\18 = (9.395u,6.744u);
+ z98\0\19c1 = (8.710u,6.753u);
+ z98\0\19c2 = (7.887u,6.797u);
+ z98\0\19 = (7.227u,6.608u);
+ z98\0\20c1 = (6.658u,6.445u);
+ z98\0\20c2 = (6.229u,6.161u);
+ z98\0\20 = (5.807u,5.750u);
+ z98\0\21c1 = (4.237u,4.222u);
+ z98\0\21c2 = (4.336u,2.014u);
+ z98\1\0s = (8.430u,5.177u);
+ z98\1\0c1 = (8.778u,5.110u);
+ z98\1\0c2 = (9.022u,5.113u);
+ z98\1\0 = (9.319u,4.878u);
+ z98\1\1c1 = (9.799u,4.498u);
+ z98\1\1c2 = (9.862u,3.942u);
+ z98\1\1 = (9.869u,3.372u);
+ z98\1\2c1 = (9.887u,1.828u);
+ z98\1\2c2 = (9.090u,0.751u);
+ z98\1\2 = (7.468u,0.743u);
+ z98\1\3c1 = (4.667u,0.730u);
+ z98\1\3c2 = (4.336u,3.745u);
+ z98\1\3 = (6.308u,4.785u);
+ z98\1\4c1 = (6.887u,5.091u);
+ z98\1\4c2 = (7.781u,5.137u);
+ fill_or_unfill z98\0\0s
+ ..controls z98\0\0c1 and z98\0\0c2..z98\0\0
+ ..controls z98\0\1c1 and z98\0\1c2..z98\0\1
+ --z98\0\2
+ --z98\0\3
+ ..controls z98\0\4c1 and z98\0\4c2..z98\0\4
+ --z98\0\5
+ --z98\0\6
+ --z98\0\7
+ ..controls z98\0\8c1 and z98\0\8c2..z98\0\8
+ ..controls z98\0\9c1 and z98\0\9c2..z98\0\9
+ ..controls z98\0\10c1 and z98\0\10c2..z98\0\10
+ --z98\0\11
+ ..controls z98\0\12c1 and z98\0\12c2..z98\0\12
+ ..controls z98\0\13c1 and z98\0\13c2..z98\0\13
+ --z98\0\14
+ ..controls z98\0\15c1 and z98\0\15c2..z98\0\15
+ --z98\0\16
+ ..controls z98\0\17c1 and z98\0\17c2..z98\0\17
+ ..controls z98\0\18c1 and z98\0\18c2..z98\0\18
+ ..controls z98\0\19c1 and z98\0\19c2..z98\0\19
+ ..controls z98\0\20c1 and z98\0\20c2..z98\0\20
+ ..controls z98\0\21c1 and z98\0\21c2..cycle;
+ fill_or_unfill z98\1\0s
+ ..controls z98\1\0c1 and z98\1\0c2..z98\1\0
+ ..controls z98\1\1c1 and z98\1\1c2..z98\1\1
+ ..controls z98\1\2c1 and z98\1\2c2..z98\1\2
+ ..controls z98\1\3c1 and z98\1\3c2..z98\1\3
+ ..controls z98\1\4c1 and z98\1\4c2..cycle;
+ proof_labels (
+ 98\0\0,
+ 98\0\1,
+ 98\0\2,
+ 98\0\3,
+ 98\0\4,
+ 98\0\5,
+ 98\0\6,
+ 98\0\7,
+ 98\0\8,
+ 98\0\9,
+ 98\0\10,
+ 98\0\11,
+ 98\0\12,
+ 98\0\13,
+ 98\0\14,
+ 98\0\15,
+ 98\0\16,
+ 98\0\17,
+ 98\0\18,
+ 98\0\19,
+ 98\0\20,
+ 98\0\21,
+ 98\1\0,
+ 98\1\1,
+ 98\1\2,
+ 98\1\3,
+ 98\1\4,
+);
+endchar;
+
+beginchar (TIB_SRA, 10.359u#, 6.745u#, 5.300u#);
+ "sra";
+ z99\0\0s = (2.168u,5.059u);
+ z99\0\0c1 = (1.465u,3.824u);
+ z99\0\0c2 = (0.853u,2.581u);
+ z99\0\0 = (0.482u,1.204u);
+ z99\0\1c1 = (1.422u,0.917u);
+ z99\0\1c2 = (2.495u,0.853u);
+ z99\0\1 = (3.363u,0.376u);
+ z99\0\2 = (5.300u,-1.204u);
+ z99\0\3c1 = (4.644u,1.410u);
+ z99\0\3c2 = (2.929u,1.735u);
+ z99\0\3 = (1.927u,3.854u);
+ z99\0\4c1 = (2.663u,3.599u);
+ z99\0\4c2 = (3.403u,3.342u);
+ z99\0\4 = (4.095u,2.979u);
+ z99\0\5c1 = (5.456u,2.266u);
+ z99\0\5c2 = (8.135u,0.209u);
+ z99\0\5 = (8.708u,-1.204u);
+ z99\0\6c1 = (9.006u,-1.942u);
+ z99\0\6c2 = (8.913u,-3.055u);
+ z99\0\6 = (8.913u,-3.854u);
+ z99\0\7c1 = (7.046u,-2.806u);
+ z99\0\7c2 = (6.393u,-1.915u);
+ z99\0\7 = (4.095u,-1.929u);
+ z99\0\8c1 = (2.637u,-1.938u);
+ z99\0\8c2 = (2.406u,-2.202u);
+ z99\0\8 = (2.168u,-3.672u);
+ z99\0\9c1 = (3.485u,-3.609u);
+ z99\0\9c2 = (4.727u,-3.387u);
+ z99\0\9 = (6.022u,-3.672u);
+ z99\0\10c1 = (7.214u,-4.047u);
+ z99\0\10c2 = (8.213u,-4.749u);
+ z99\0\10 = (9.395u,-5.059u);
+ z99\0\11 = (9.395u,2.168u);
+ z99\0\12c1 = (9.403u,3.732u);
+ z99\0\12c2 = (9.843u,5.189u);
+ z99\0\12 = (9.877u,6.745u);
+ z99\0\13c1 = (9.362u,6.743u);
+ z99\0\13c2 = (8.303u,6.833u);
+ z99\0\13 = (7.967u,6.369u);
+ z99\0\14c1 = (7.609u,5.875u);
+ z99\0\14c2 = (8.240u,5.065u);
+ z99\0\14 = (8.400u,4.568u);
+ z99\0\15c1 = (8.600u,3.945u);
+ z99\0\15c2 = (8.633u,3.294u);
+ z99\0\15 = (8.709u,2.650u);
+ z99\0\16 = (8.913u,0.482u);
+ z99\0\17c1 = (7.914u,1.231u);
+ z99\0\17c2 = (7.234u,2.193u);
+ z99\0\17 = (6.402u,3.110u);
+ z99\0\18 = (4.336u,5.300u);
+ z99\0\19c1 = (4.573u,5.340u);
+ z99\0\19c2 = (4.795u,5.339u);
+ z99\0\19 = (5.023u,5.441u);
+ z99\0\20c1 = (5.544u,5.676u);
+ z99\0\20c2 = (5.856u,6.276u);
+ z99\0\20 = (5.220u,6.646u);
+ z99\0\21c1 = (4.818u,6.806u);
+ z99\0\21c2 = (2.660u,6.783u);
+ z99\0\21 = (2.173u,6.646u);
+ z99\0\22c1 = (1.567u,6.576u);
+ z99\0\22c2 = (0.606u,5.932u);
+ z99\0\22 = (1.353u,5.304u);
+ z99\0\23c1 = (1.590u,5.105u);
+ z99\0\23c2 = (1.886u,5.108u);
+ fill_or_unfill z99\0\0s
+ ..controls z99\0\0c1 and z99\0\0c2..z99\0\0
+ ..controls z99\0\1c1 and z99\0\1c2..z99\0\1
+ --z99\0\2
+ ..controls z99\0\3c1 and z99\0\3c2..z99\0\3
+ ..controls z99\0\4c1 and z99\0\4c2..z99\0\4
+ ..controls z99\0\5c1 and z99\0\5c2..z99\0\5
+ ..controls z99\0\6c1 and z99\0\6c2..z99\0\6
+ ..controls z99\0\7c1 and z99\0\7c2..z99\0\7
+ ..controls z99\0\8c1 and z99\0\8c2..z99\0\8
+ ..controls z99\0\9c1 and z99\0\9c2..z99\0\9
+ ..controls z99\0\10c1 and z99\0\10c2..z99\0\10
+ --z99\0\11
+ ..controls z99\0\12c1 and z99\0\12c2..z99\0\12
+ ..controls z99\0\13c1 and z99\0\13c2..z99\0\13
+ ..controls z99\0\14c1 and z99\0\14c2..z99\0\14
+ ..controls z99\0\15c1 and z99\0\15c2..z99\0\15
+ --z99\0\16
+ ..controls z99\0\17c1 and z99\0\17c2..z99\0\17
+ --z99\0\18
+ ..controls z99\0\19c1 and z99\0\19c2..z99\0\19
+ ..controls z99\0\20c1 and z99\0\20c2..z99\0\20
+ ..controls z99\0\21c1 and z99\0\21c2..z99\0\21
+ ..controls z99\0\22c1 and z99\0\22c2..z99\0\22
+ ..controls z99\0\23c1 and z99\0\23c2..cycle;
+ proof_labels (
+ 99\0\0,
+ 99\0\1,
+ 99\0\2,
+ 99\0\3,
+ 99\0\4,
+ 99\0\5,
+ 99\0\6,
+ 99\0\7,
+ 99\0\8,
+ 99\0\9,
+ 99\0\10,
+ 99\0\11,
+ 99\0\12,
+ 99\0\13,
+ 99\0\14,
+ 99\0\15,
+ 99\0\16,
+ 99\0\17,
+ 99\0\18,
+ 99\0\19,
+ 99\0\20,
+ 99\0\21,
+ 99\0\22,
+ 99\0\23,
+);
+endchar;
+
+beginchar (TIB_HRA, 9.154u#, 6.745u#, 6.022u#);
+ "hra";
+ z100\0\0s = (0.482u,1.686u);
+ z100\0\0c1 = (0.952u,1.744u);
+ z100\0\0c2 = (1.453u,1.847u);
+ z100\0\0 = (1.927u,1.808u);
+ z100\0\1c1 = (3.137u,1.708u);
+ z100\0\1c2 = (4.100u,0.911u);
+ z100\0\1 = (4.862u,0.000u);
+ z100\0\2c1 = (4.867u,0.204u);
+ z100\0\2c2 = (4.931u,0.305u);
+ z100\0\2 = (4.862u,0.536u);
+ z100\0\3c1 = (4.851u,1.080u);
+ z100\0\3c2 = (4.308u,1.723u);
+ z100\0\3 = (4.506u,2.235u);
+ z100\0\4c1 = (4.604u,2.490u);
+ z100\0\4c2 = (4.855u,2.665u);
+ z100\0\4 = (5.107u,2.746u);
+ z100\0\5c1 = (6.277u,3.120u);
+ z100\0\5c2 = (7.426u,1.931u);
+ z100\0\5 = (7.846u,0.963u);
+ z100\0\6c1 = (7.991u,0.628u);
+ z100\0\6c2 = (8.063u,0.368u);
+ z100\0\6 = (8.050u,0.000u);
+ z100\0\7c1 = (8.027u,-0.640u);
+ z100\0\7c2 = (6.913u,-3.922u);
+ z100\0\7 = (6.579u,-4.550u);
+ z100\0\8c1 = (6.417u,-4.855u);
+ z100\0\8c2 = (6.246u,-5.046u);
+ z100\0\8 = (6.022u,-5.300u);
+ z100\0\9c1 = (5.948u,-4.841u);
+ z100\0\9c2 = (5.900u,-4.502u);
+ z100\0\9 = (5.638u,-4.099u);
+ z100\0\10c1 = (4.891u,-2.951u);
+ z100\0\10c2 = (3.334u,-1.998u);
+ z100\0\10 = (1.932u,-2.204u);
+ z100\0\11c1 = (1.523u,-2.264u);
+ z100\0\11c2 = (1.210u,-2.368u);
+ z100\0\11 = (0.968u,-2.725u);
+ z100\0\12c1 = (0.781u,-3.003u);
+ z100\0\12c2 = (0.775u,-3.300u);
+ z100\0\12 = (0.723u,-3.613u);
+ z100\0\13c1 = (1.607u,-3.685u);
+ z100\0\13c2 = (3.077u,-3.816u);
+ z100\0\13 = (3.854u,-4.204u);
+ z100\0\14c1 = (4.524u,-4.539u);
+ z100\0\14c2 = (5.106u,-5.266u);
+ z100\0\14 = (5.771u,-5.501u);
+ z100\0\15c1 = (6.901u,-5.901u);
+ z100\0\15c2 = (7.345u,-3.890u);
+ z100\0\15 = (7.644u,-3.132u);
+ z100\0\16c1 = (7.987u,-2.263u);
+ z100\0\16c2 = (8.359u,-1.402u);
+ z100\0\16 = (8.549u,-0.482u);
+ z100\0\17c1 = (8.664u,0.078u);
+ z100\0\17c2 = (8.672u,0.635u);
+ z100\0\17 = (8.672u,1.204u);
+ z100\0\18c1 = (8.672u,1.707u);
+ z100\0\18c2 = (8.691u,2.402u);
+ z100\0\18 = (8.495u,2.866u);
+ z100\0\19c1 = (8.056u,3.901u);
+ z100\0\19c2 = (6.797u,4.168u);
+ z100\0\19 = (5.782u,4.069u);
+ z100\0\20c1 = (5.364u,4.028u);
+ z100\0\20c2 = (4.983u,3.939u);
+ z100\0\20 = (4.643u,3.677u);
+ z100\0\21c1 = (4.214u,3.344u);
+ z100\0\21c2 = (4.054u,2.889u);
+ z100\0\21 = (3.854u,2.409u);
+ z100\0\22c1 = (2.867u,2.968u);
+ z100\0\22c2 = (2.350u,3.251u);
+ z100\0\22 = (1.204u,3.372u);
+ z100\0\23c1 = (1.597u,3.999u);
+ z100\0\23c2 = (1.982u,4.694u);
+ z100\0\23 = (2.660u,5.053u);
+ z100\0\24c1 = (3.803u,5.659u);
+ z100\0\24c2 = (6.779u,4.866u);
+ z100\0\24 = (7.469u,5.718u);
+ z100\0\25c1 = (7.703u,6.007u);
+ z100\0\25c2 = (7.681u,6.400u);
+ z100\0\25 = (7.709u,6.707u);
+ z100\0\26c1 = (6.879u,6.745u);
+ z100\0\26c2 = (2.672u,6.808u);
+ z100\0\26 = (2.203u,6.707u);
+ z100\0\27c1 = (1.988u,6.606u);
+ z100\0\27c2 = (1.835u,6.542u);
+ z100\0\27 = (1.692u,6.360u);
+ z100\0\28c1 = (1.361u,5.939u);
+ z100\0\28c2 = (1.515u,5.057u);
+ z100\0\28 = (1.339u,4.509u);
+ z100\0\29c1 = (1.025u,3.528u);
+ z100\0\29c2 = (0.643u,2.727u);
+ fill_or_unfill z100\0\0s
+ ..controls z100\0\0c1 and z100\0\0c2..z100\0\0
+ ..controls z100\0\1c1 and z100\0\1c2..z100\0\1
+ ..controls z100\0\2c1 and z100\0\2c2..z100\0\2
+ ..controls z100\0\3c1 and z100\0\3c2..z100\0\3
+ ..controls z100\0\4c1 and z100\0\4c2..z100\0\4
+ ..controls z100\0\5c1 and z100\0\5c2..z100\0\5
+ ..controls z100\0\6c1 and z100\0\6c2..z100\0\6
+ ..controls z100\0\7c1 and z100\0\7c2..z100\0\7
+ ..controls z100\0\8c1 and z100\0\8c2..z100\0\8
+ ..controls z100\0\9c1 and z100\0\9c2..z100\0\9
+ ..controls z100\0\10c1 and z100\0\10c2..z100\0\10
+ ..controls z100\0\11c1 and z100\0\11c2..z100\0\11
+ ..controls z100\0\12c1 and z100\0\12c2..z100\0\12
+ ..controls z100\0\13c1 and z100\0\13c2..z100\0\13
+ ..controls z100\0\14c1 and z100\0\14c2..z100\0\14
+ ..controls z100\0\15c1 and z100\0\15c2..z100\0\15
+ ..controls z100\0\16c1 and z100\0\16c2..z100\0\16
+ ..controls z100\0\17c1 and z100\0\17c2..z100\0\17
+ ..controls z100\0\18c1 and z100\0\18c2..z100\0\18
+ ..controls z100\0\19c1 and z100\0\19c2..z100\0\19
+ ..controls z100\0\20c1 and z100\0\20c2..z100\0\20
+ ..controls z100\0\21c1 and z100\0\21c2..z100\0\21
+ ..controls z100\0\22c1 and z100\0\22c2..z100\0\22
+ ..controls z100\0\23c1 and z100\0\23c2..z100\0\23
+ ..controls z100\0\24c1 and z100\0\24c2..z100\0\24
+ ..controls z100\0\25c1 and z100\0\25c2..z100\0\25
+ ..controls z100\0\26c1 and z100\0\26c2..z100\0\26
+ ..controls z100\0\27c1 and z100\0\27c2..z100\0\27
+ ..controls z100\0\28c1 and z100\0\28c2..z100\0\28
+ ..controls z100\0\29c1 and z100\0\29c2..cycle;
+ proof_labels (
+ 100\0\0,
+ 100\0\1,
+ 100\0\2,
+ 100\0\3,
+ 100\0\4,
+ 100\0\5,
+ 100\0\6,
+ 100\0\7,
+ 100\0\8,
+ 100\0\9,
+ 100\0\10,
+ 100\0\11,
+ 100\0\12,
+ 100\0\13,
+ 100\0\14,
+ 100\0\15,
+ 100\0\16,
+ 100\0\17,
+ 100\0\18,
+ 100\0\19,
+ 100\0\20,
+ 100\0\21,
+ 100\0\22,
+ 100\0\23,
+ 100\0\24,
+ 100\0\25,
+ 100\0\26,
+ 100\0\27,
+ 100\0\28,
+ 100\0\29,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+beginchar (TIB_ZRA, 9.154u#, 6.745u#, 3.854u#);
+ "zra";
+ z63\0\0s = (0.482u,6.745u);
+ z63\0\0 = (0.482u,-0.909u);
+ z63\0\1c1 = (0.894u,-0.951u);
+ z63\0\1c2 = (1.280u,-0.941u);
+ z63\0\1 = (1.686u,-0.909u);
+ z63\0\2 = (2.891u,-0.544u);
+ z63\0\3c1 = (4.262u,-0.319u);
+ z63\0\3c2 = (5.891u,-0.527u);
+ z63\0\3 = (6.936u,-1.511u);
+ z63\0\4c1 = (7.357u,-1.907u);
+ z63\0\4c2 = (7.645u,-2.406u);
+ z63\0\4 = (7.950u,-2.891u);
+ z63\0\5c1 = (6.290u,-2.098u);
+ z63\0\5c2 = (2.045u,-0.273u);
+ z63\0\5 = (0.728u,-2.460u);
+ z63\0\6c1 = (0.548u,-2.757u);
+ z63\0\6c2 = (0.536u,-3.045u);
+ z63\0\6 = (0.482u,-3.372u);
+ z63\0\7c1 = (1.113u,-3.364u);
+ z63\0\7c2 = (1.562u,-3.387u);
+ z63\0\7 = (2.168u,-3.152u);
+ z63\0\8c1 = (2.786u,-2.913u);
+ z63\0\8c2 = (3.139u,-2.558u);
+ z63\0\8 = (3.854u,-2.535u);
+ z63\0\9c1 = (4.577u,-2.512u);
+ z63\0\9c2 = (7.670u,-3.412u);
+ z63\0\9 = (8.672u,-3.613u);
+ z63\0\10c1 = (8.052u,-1.318u);
+ z63\0\10c2 = (6.849u,0.365u);
+ z63\0\10 = (4.336u,0.701u);
+ z63\0\11c1 = (3.325u,0.804u);
+ z63\0\11c2 = (2.226u,0.723u);
+ z63\0\11 = (1.204u,0.701u);
+ z63\0\12 = (1.204u,2.461u);
+ z63\0\13c1 = (2.042u,2.409u);
+ z63\0\13c2 = (5.427u,2.332u);
+ z63\0\13 = (5.990u,2.461u);
+ z63\0\14c1 = (6.241u,2.593u);
+ z63\0\14c2 = (6.483u,2.710u);
+ z63\0\14 = (6.572u,2.980u);
+ z63\0\15c1 = (6.896u,3.966u);
+ z63\0\15c2 = (5.077u,3.853u);
+ z63\0\15 = (4.577u,3.854u);
+ z63\0\16 = (1.204u,3.854u);
+ z63\0\17 = (1.204u,5.300u);
+ z63\0\18c1 = (2.086u,5.300u);
+ z63\0\18c2 = (5.834u,5.130u);
+ z63\0\18 = (6.360u,5.546u);
+ z63\0\19c1 = (6.732u,5.840u);
+ z63\0\19c2 = (6.710u,6.322u);
+ z63\0\19 = (6.745u,6.745u);
+ fill_or_unfill z63\0\0s
+ --z63\0\0
+ ..controls z63\0\1c1 and z63\0\1c2..z63\0\1
+ --z63\0\2
+ ..controls z63\0\3c1 and z63\0\3c2..z63\0\3
+ ..controls z63\0\4c1 and z63\0\4c2..z63\0\4
+ ..controls z63\0\5c1 and z63\0\5c2..z63\0\5
+ ..controls z63\0\6c1 and z63\0\6c2..z63\0\6
+ ..controls z63\0\7c1 and z63\0\7c2..z63\0\7
+ ..controls z63\0\8c1 and z63\0\8c2..z63\0\8
+ ..controls z63\0\9c1 and z63\0\9c2..z63\0\9
+ ..controls z63\0\10c1 and z63\0\10c2..z63\0\10
+ ..controls z63\0\11c1 and z63\0\11c2..z63\0\11
+ --z63\0\12
+ ..controls z63\0\13c1 and z63\0\13c2..z63\0\13
+ ..controls z63\0\14c1 and z63\0\14c2..z63\0\14
+ ..controls z63\0\15c1 and z63\0\15c2..z63\0\15
+ --z63\0\16
+ --z63\0\17
+ ..controls z63\0\18c1 and z63\0\18c2..z63\0\18
+ ..controls z63\0\19c1 and z63\0\19c2..z63\0\19
+ --cycle;
+ proof_labels (
+ 63\0\0,
+ 63\0\1,
+ 63\0\2,
+ 63\0\3,
+ 63\0\4,
+ 63\0\5,
+ 63\0\6,
+ 63\0\7,
+ 63\0\8,
+ 63\0\9,
+ 63\0\10,
+ 63\0\11,
+ 63\0\12,
+ 63\0\13,
+ 63\0\14,
+ 63\0\15,
+ 63\0\16,
+ 63\0\17,
+ 63\0\18,
+ 63\0\19,
+ 63\0\20,
+);
+endchar;
+
+beginchar (TIB_KLA, 10.118u#, 6.745u#, 6.263u#);
+ "kla";
+ z101\0\0s = (0.482u,5.541u);
+ z101\0\0c1 = (1.458u,4.494u);
+ z101\0\0c2 = (1.197u,3.956u);
+ z101\0\0 = (0.964u,2.650u);
+ z101\0\1c1 = (1.155u,2.778u);
+ z101\0\1c2 = (1.281u,2.822u);
+ z101\0\1 = (1.439u,3.014u);
+ z101\0\2c1 = (1.923u,3.600u);
+ z101\0\2c2 = (2.013u,4.445u);
+ z101\0\2 = (2.701u,4.892u);
+ z101\0\3c1 = (2.979u,5.073u);
+ z101\0\3c2 = (3.258u,5.136u);
+ z101\0\3 = (3.583u,5.050u);
+ z101\0\4c1 = (4.808u,4.726u);
+ z101\0\4c2 = (4.810u,2.224u);
+ z101\0\4 = (5.059u,1.204u);
+ z101\0\5c1 = (5.504u,2.162u);
+ z101\0\5c2 = (5.768u,4.323u);
+ z101\0\5 = (6.420u,4.915u);
+ z101\0\6c1 = (7.017u,5.458u);
+ z101\0\6c2 = (7.959u,5.296u);
+ z101\0\6 = (8.287u,4.542u);
+ z101\0\7c1 = (8.503u,4.046u);
+ z101\0\7c2 = (8.416u,2.993u);
+ z101\0\7 = (8.472u,2.409u);
+ z101\0\8 = (8.682u,0.964u);
+ z101\0\9 = (8.682u,-0.482u);
+ z101\0\10 = (8.913u,-2.650u);
+ z101\0\11 = (8.913u,-5.059u);
+ z101\0\12c1 = (8.085u,-4.388u);
+ z101\0\12c2 = (7.772u,-4.157u);
+ z101\0\12 = (6.740u,-3.854u);
+ z101\0\13c1 = (6.960u,-3.098u);
+ z101\0\13c2 = (7.179u,-1.017u);
+ z101\0\13 = (6.740u,-0.354u);
+ z101\0\14c1 = (6.129u,0.571u);
+ z101\0\14c2 = (2.536u,0.418u);
+ z101\0\14 = (1.830u,-0.354u);
+ z101\0\15c1 = (1.399u,-0.842u);
+ z101\0\15c2 = (1.450u,-1.567u);
+ z101\0\15 = (1.445u,-2.168u);
+ z101\0\16c1 = (1.437u,-3.416u);
+ z101\0\16c2 = (1.523u,-4.547u);
+ z101\0\16 = (1.686u,-5.782u);
+ z101\0\17 = (2.409u,-5.782u);
+ z101\0\18c1 = (2.332u,-4.872u);
+ z101\0\18c2 = (1.927u,-3.783u);
+ z101\0\18 = (2.122u,-2.886u);
+ z101\0\19c1 = (2.621u,-0.630u);
+ z101\0\19c2 = (6.530u,-0.819u);
+ z101\0\19 = (6.374u,-2.886u);
+ z101\0\20c1 = (6.277u,-4.159u);
+ z101\0\20c2 = (4.605u,-3.537u);
+ z101\0\20 = (3.859u,-4.844u);
+ z101\0\21c1 = (3.684u,-5.151u);
+ z101\0\21c2 = (3.668u,-5.446u);
+ z101\0\21 = (3.613u,-5.782u);
+ z101\0\22c1 = (4.846u,-5.460u);
+ z101\0\22c2 = (5.938u,-4.935u);
+ z101\0\22 = (7.227u,-5.328u);
+ z101\0\23 = (9.395u,-6.022u);
+ z101\0\24 = (9.395u,2.168u);
+ z101\0\25 = (9.625u,5.059u);
+ z101\0\26 = (9.625u,6.745u);
+ z101\0\27c1 = (8.414u,6.745u);
+ z101\0\27c2 = (2.129u,6.869u);
+ z101\0\27 = (1.459u,6.601u);
+ z101\0\28c1 = (0.900u,6.378u);
+ z101\0\28c2 = (0.738u,6.039u);
+ fill_or_unfill z101\0\0s
+ ..controls z101\0\0c1 and z101\0\0c2..z101\0\0
+ ..controls z101\0\1c1 and z101\0\1c2..z101\0\1
+ ..controls z101\0\2c1 and z101\0\2c2..z101\0\2
+ ..controls z101\0\3c1 and z101\0\3c2..z101\0\3
+ ..controls z101\0\4c1 and z101\0\4c2..z101\0\4
+ ..controls z101\0\5c1 and z101\0\5c2..z101\0\5
+ ..controls z101\0\6c1 and z101\0\6c2..z101\0\6
+ ..controls z101\0\7c1 and z101\0\7c2..z101\0\7
+ --z101\0\8
+ --z101\0\9
+ --z101\0\10
+ --z101\0\11
+ ..controls z101\0\12c1 and z101\0\12c2..z101\0\12
+ ..controls z101\0\13c1 and z101\0\13c2..z101\0\13
+ ..controls z101\0\14c1 and z101\0\14c2..z101\0\14
+ ..controls z101\0\15c1 and z101\0\15c2..z101\0\15
+ ..controls z101\0\16c1 and z101\0\16c2..z101\0\16
+ --z101\0\17
+ ..controls z101\0\18c1 and z101\0\18c2..z101\0\18
+ ..controls z101\0\19c1 and z101\0\19c2..z101\0\19
+ ..controls z101\0\20c1 and z101\0\20c2..z101\0\20
+ ..controls z101\0\21c1 and z101\0\21c2..z101\0\21
+ ..controls z101\0\22c1 and z101\0\22c2..z101\0\22
+ --z101\0\23
+ --z101\0\24
+ --z101\0\25
+ --z101\0\26
+ ..controls z101\0\27c1 and z101\0\27c2..z101\0\27
+ ..controls z101\0\28c1 and z101\0\28c2..cycle;
+ proof_labels (
+ 101\0\0,
+ 101\0\1,
+ 101\0\2,
+ 101\0\3,
+ 101\0\4,
+ 101\0\5,
+ 101\0\6,
+ 101\0\7,
+ 101\0\8,
+ 101\0\9,
+ 101\0\10,
+ 101\0\11,
+ 101\0\12,
+ 101\0\13,
+ 101\0\14,
+ 101\0\15,
+ 101\0\16,
+ 101\0\17,
+ 101\0\18,
+ 101\0\19,
+ 101\0\20,
+ 101\0\21,
+ 101\0\22,
+ 101\0\23,
+ 101\0\24,
+ 101\0\25,
+ 101\0\26,
+ 101\0\27,
+ 101\0\28,
+);
+endchar;
+
+beginchar (TIB_GLA, 10.600u#, 6.745u#, 6.263u#);
+ "gla";
+ z102\0\0s = (1.686u,5.300u);
+ z102\0\0 = (0.482u,0.964u);
+ z102\0\1 = (2.891u,1.394u);
+ z102\0\2c1 = (4.160u,1.469u);
+ z102\0\2c2 = (5.293u,0.751u);
+ z102\0\2 = (6.504u,0.482u);
+ z102\0\3c1 = (6.507u,1.326u);
+ z102\0\3c2 = (6.619u,3.604u);
+ z102\0\3 = (6.923u,4.322u);
+ z102\0\4c1 = (7.057u,4.640u);
+ z102\0\4c2 = (7.224u,4.871u);
+ z102\0\4 = (7.522u,5.053u);
+ z102\0\5c1 = (7.938u,5.307u);
+ z102\0\5c2 = (8.447u,5.284u);
+ z102\0\5 = (8.913u,5.300u);
+ z102\0\6 = (9.165u,1.686u);
+ z102\0\7 = (9.165u,-0.723u);
+ z102\0\8 = (9.395u,-3.132u);
+ z102\0\9 = (9.395u,-5.059u);
+ z102\0\10c1 = (8.427u,-4.200u);
+ z102\0\10c2 = (8.194u,-4.047u);
+ z102\0\10 = (6.983u,-3.613u);
+ z102\0\11c1 = (7.173u,-2.843u);
+ z102\0\11c2 = (7.445u,-1.253u);
+ z102\0\11 = (6.983u,-0.557u);
+ z102\0\12c1 = (6.841u,-0.348u);
+ z102\0\12c2 = (6.698u,-0.244u);
+ z102\0\12 = (6.469u,-0.150u);
+ z102\0\13c1 = (5.906u,0.101u);
+ z102\0\13c2 = (3.498u,0.037u);
+ z102\0\13 = (2.892u,-0.150u);
+ z102\0\14c1 = (2.485u,-0.286u);
+ z102\0\14c2 = (2.106u,-0.492u);
+ z102\0\14 = (1.821u,-0.817u);
+ z102\0\15c1 = (1.242u,-1.478u);
+ z102\0\15c2 = (1.215u,-2.539u);
+ z102\0\15 = (1.205u,-3.372u);
+ z102\0\16c1 = (1.198u,-3.986u);
+ z102\0\16c2 = (1.131u,-5.149u);
+ z102\0\16 = (1.476u,-5.658u);
+ z102\0\17c1 = (1.615u,-5.863u);
+ z102\0\17c2 = (1.743u,-5.894u);
+ z102\0\17 = (1.927u,-6.022u);
+ z102\0\18c1 = (1.902u,-4.824u);
+ z102\0\18c2 = (1.522u,-2.976u);
+ z102\0\18 = (2.512u,-2.079u);
+ z102\0\19c1 = (3.369u,-1.271u);
+ z102\0\19c2 = (5.110u,-1.384u);
+ z102\0\19 = (5.983u,-2.079u);
+ z102\0\20c1 = (6.216u,-2.286u);
+ z102\0\20c2 = (6.457u,-2.543u);
+ z102\0\20 = (6.457u,-2.866u);
+ z102\0\21c1 = (6.457u,-4.263u);
+ z102\0\21c2 = (3.742u,-2.597u);
+ z102\0\21 = (3.372u,-5.782u);
+ z102\0\22c1 = (4.663u,-5.540u);
+ z102\0\22c2 = (5.879u,-4.749u);
+ z102\0\22 = (7.227u,-5.105u);
+ z102\0\23 = (8.672u,-5.698u);
+ z102\0\24c1 = (9.080u,-5.860u);
+ z102\0\24c2 = (9.449u,-5.942u);
+ z102\0\24 = (9.877u,-6.022u);
+ z102\0\25 = (9.877u,1.445u);
+ z102\0\26 = (10.113u,5.299u);
+ z102\0\27c1 = (10.100u,5.638u);
+ z102\0\27c2 = (10.093u,6.080u);
+ z102\0\27 = (9.872u,6.360u);
+ z102\0\28c1 = (9.493u,6.838u);
+ z102\0\28c2 = (8.502u,6.744u);
+ z102\0\28 = (7.950u,6.733u);
+ z102\0\29 = (4.095u,6.733u);
+ z102\0\30 = (2.173u,6.733u);
+ z102\0\31c1 = (1.273u,6.565u);
+ z102\0\31c2 = (0.544u,5.782u);
+ z102\1\0s = (6.022u,1.204u);
+ z102\1\0c1 = (5.321u,1.689u);
+ z102\1\0c2 = (4.654u,2.302u);
+ z102\1\0 = (3.854u,2.615u);
+ z102\1\1 = (1.686u,3.132u);
+ z102\1\2c1 = (1.835u,3.632u);
+ z102\1\2c2 = (1.963u,4.082u);
+ z102\1\2 = (2.324u,4.483u);
+ z102\1\3c1 = (3.031u,5.270u);
+ z102\1\3c2 = (4.629u,5.647u);
+ z102\1\3 = (5.397u,4.742u);
+ z102\1\4c1 = (5.911u,4.136u);
+ z102\1\4c2 = (6.098u,1.998u);
+ fill_or_unfill z102\0\0s
+ --z102\0\0
+ --z102\0\1
+ ..controls z102\0\2c1 and z102\0\2c2..z102\0\2
+ ..controls z102\0\3c1 and z102\0\3c2..z102\0\3
+ ..controls z102\0\4c1 and z102\0\4c2..z102\0\4
+ ..controls z102\0\5c1 and z102\0\5c2..z102\0\5
+ --z102\0\6
+ --z102\0\7
+ --z102\0\8
+ --z102\0\9
+ ..controls z102\0\10c1 and z102\0\10c2..z102\0\10
+ ..controls z102\0\11c1 and z102\0\11c2..z102\0\11
+ ..controls z102\0\12c1 and z102\0\12c2..z102\0\12
+ ..controls z102\0\13c1 and z102\0\13c2..z102\0\13
+ ..controls z102\0\14c1 and z102\0\14c2..z102\0\14
+ ..controls z102\0\15c1 and z102\0\15c2..z102\0\15
+ ..controls z102\0\16c1 and z102\0\16c2..z102\0\16
+ ..controls z102\0\17c1 and z102\0\17c2..z102\0\17
+ ..controls z102\0\18c1 and z102\0\18c2..z102\0\18
+ ..controls z102\0\19c1 and z102\0\19c2..z102\0\19
+ ..controls z102\0\20c1 and z102\0\20c2..z102\0\20
+ ..controls z102\0\21c1 and z102\0\21c2..z102\0\21
+ ..controls z102\0\22c1 and z102\0\22c2..z102\0\22
+ --z102\0\23
+ ..controls z102\0\24c1 and z102\0\24c2..z102\0\24
+ --z102\0\25
+ --z102\0\26
+ ..controls z102\0\27c1 and z102\0\27c2..z102\0\27
+ ..controls z102\0\28c1 and z102\0\28c2..z102\0\28
+ --z102\0\29
+ --z102\0\30
+ ..controls z102\0\31c1 and z102\0\31c2..cycle;
+ fill_or_unfill z102\1\0s
+ ..controls z102\1\0c1 and z102\1\0c2..z102\1\0
+ --z102\1\1
+ ..controls z102\1\2c1 and z102\1\2c2..z102\1\2
+ ..controls z102\1\3c1 and z102\1\3c2..z102\1\3
+ ..controls z102\1\4c1 and z102\1\4c2..cycle;
+ proof_labels (
+ 102\0\0,
+ 102\0\1,
+ 102\0\2,
+ 102\0\3,
+ 102\0\4,
+ 102\0\5,
+ 102\0\6,
+ 102\0\7,
+ 102\0\8,
+ 102\0\9,
+ 102\0\10,
+ 102\0\11,
+ 102\0\12,
+ 102\0\13,
+ 102\0\14,
+ 102\0\15,
+ 102\0\16,
+ 102\0\17,
+ 102\0\18,
+ 102\0\19,
+ 102\0\20,
+ 102\0\21,
+ 102\0\22,
+ 102\0\23,
+ 102\0\24,
+ 102\0\25,
+ 102\0\26,
+ 102\0\27,
+ 102\0\28,
+ 102\0\29,
+ 102\0\30,
+ 102\0\31,
+ 102\1\0,
+ 102\1\1,
+ 102\1\2,
+ 102\1\3,
+ 102\1\4,
+);
+endchar;
+
+beginchar (TIB_BLA, 9.877u#, 6.745u#, 6.263u#);
+ "bla";
+ z103\0\0s = (2.168u,5.300u);
+ z103\0\0c1 = (1.698u,4.043u);
+ z103\0\0c2 = (1.270u,2.793u);
+ z103\0\0 = (1.204u,1.445u);
+ z103\0\1 = (3.613u,1.848u);
+ z103\0\2c1 = (5.118u,1.979u);
+ z103\0\2c2 = (6.533u,1.345u);
+ z103\0\2 = (7.950u,0.964u);
+ z103\0\3c1 = (6.041u,-0.356u);
+ z103\0\3c2 = (7.930u,-0.942u);
+ z103\0\3 = (8.328u,-2.410u);
+ z103\0\4c1 = (8.455u,-2.878u);
+ z103\0\4c2 = (8.413u,-3.376u);
+ z103\0\4 = (8.453u,-3.854u);
+ z103\0\5 = (8.672u,-5.059u);
+ z103\0\6 = (7.877u,-4.327u);
+ z103\0\7c1 = (7.369u,-3.945u);
+ z103\0\7c2 = (6.613u,-3.688u);
+ z103\0\7 = (6.337u,-3.081u);
+ z103\0\8c1 = (6.186u,-2.749u);
+ z103\0\8c2 = (6.231u,-2.287u);
+ z103\0\8 = (6.206u,-1.927u);
+ z103\0\9 = (6.059u,-0.726u);
+ z103\0\10c1 = (5.843u,0.848u);
+ z103\0\10c2 = (5.289u,0.716u);
+ z103\0\10 = (3.854u,0.723u);
+ z103\0\11c1 = (3.168u,0.726u);
+ z103\0\11c2 = (2.093u,0.798u);
+ z103\0\11 = (1.499u,0.440u);
+ z103\0\12c1 = (-0.140u,-0.547u);
+ z103\0\12c2 = (0.366u,-4.233u);
+ z103\0\12 = (1.686u,-5.300u);
+ z103\0\13c1 = (1.562u,-4.419u);
+ z103\0\13c2 = (1.085u,-3.008u);
+ z103\0\13 = (1.283u,-2.170u);
+ z103\0\14c1 = (1.725u,-0.335u);
+ z103\0\14c2 = (5.175u,-0.359u);
+ z103\0\14 = (5.602u,-2.170u);
+ z103\0\15c1 = (5.977u,-3.741u);
+ z103\0\15c2 = (3.217u,-3.023u);
+ z103\0\15 = (2.853u,-4.190u);
+ z103\0\16c1 = (2.707u,-4.503u);
+ z103\0\16c2 = (2.825u,-4.760u);
+ z103\0\16 = (2.853u,-5.059u);
+ z103\0\17c1 = (4.236u,-4.709u);
+ z103\0\17c2 = (5.652u,-4.228u);
+ z103\0\17 = (6.986u,-4.921u);
+ z103\0\18 = (8.935u,-6.022u);
+ z103\0\19c1 = (8.913u,-4.767u);
+ z103\0\19c2 = (8.809u,-3.411u);
+ z103\0\19 = (8.935u,-2.168u);
+ z103\0\20 = (9.317u,-0.250u);
+ z103\0\21c1 = (9.305u,0.416u);
+ z103\0\21c2 = (8.980u,0.675u);
+ z103\0\21 = (8.736u,1.245u);
+ z103\0\22c1 = (8.661u,1.701u);
+ z103\0\22c2 = (8.675u,2.178u);
+ z103\0\22 = (8.736u,2.650u);
+ z103\0\23c1 = (8.669u,3.205u);
+ z103\0\23c2 = (8.644u,3.787u);
+ z103\0\23 = (8.736u,4.336u);
+ z103\0\24 = (9.100u,5.541u);
+ z103\0\25c1 = (9.132u,5.947u);
+ z103\0\25c2 = (9.141u,6.333u);
+ z103\0\25 = (9.100u,6.737u);
+ z103\0\26 = (5.300u,6.737u);
+ z103\0\27 = (3.135u,6.737u);
+ z103\0\28c1 = (2.337u,6.628u);
+ z103\0\28c2 = (1.357u,6.101u);
+ z103\1\0s = (8.190u,1.204u);
+ z103\1\0 = (6.263u,2.466u);
+ z103\1\1c1 = (5.098u,3.088u);
+ z103\1\1c2 = (3.246u,3.266u);
+ z103\1\1 = (1.927u,3.372u);
+ z103\1\2c1 = (2.242u,3.998u);
+ z103\1\2c2 = (2.546u,4.613u);
+ z103\1\2 = (3.176u,4.949u);
+ z103\1\3c1 = (3.878u,5.396u);
+ z103\1\3c2 = (6.916u,5.535u);
+ z103\1\3 = (7.485u,4.949u);
+ z103\1\4c1 = (8.180u,4.157u);
+ z103\1\4c2 = (8.190u,2.187u);
+ fill_or_unfill z103\0\0s
+ ..controls z103\0\0c1 and z103\0\0c2..z103\0\0
+ --z103\0\1
+ ..controls z103\0\2c1 and z103\0\2c2..z103\0\2
+ ..controls z103\0\3c1 and z103\0\3c2..z103\0\3
+ ..controls z103\0\4c1 and z103\0\4c2..z103\0\4
+ --z103\0\5
+ --z103\0\6
+ ..controls z103\0\7c1 and z103\0\7c2..z103\0\7
+ ..controls z103\0\8c1 and z103\0\8c2..z103\0\8
+ --z103\0\9
+ ..controls z103\0\10c1 and z103\0\10c2..z103\0\10
+ ..controls z103\0\11c1 and z103\0\11c2..z103\0\11
+ ..controls z103\0\12c1 and z103\0\12c2..z103\0\12
+ ..controls z103\0\13c1 and z103\0\13c2..z103\0\13
+ ..controls z103\0\14c1 and z103\0\14c2..z103\0\14
+ ..controls z103\0\15c1 and z103\0\15c2..z103\0\15
+ ..controls z103\0\16c1 and z103\0\16c2..z103\0\16
+ ..controls z103\0\17c1 and z103\0\17c2..z103\0\17
+ --z103\0\18
+ ..controls z103\0\19c1 and z103\0\19c2..z103\0\19
+ --z103\0\20
+ ..controls z103\0\21c1 and z103\0\21c2..z103\0\21
+ ..controls z103\0\22c1 and z103\0\22c2..z103\0\22
+ ..controls z103\0\23c1 and z103\0\23c2..z103\0\23
+ --z103\0\24
+ ..controls z103\0\25c1 and z103\0\25c2..z103\0\25
+ --z103\0\26
+ --z103\0\27
+ ..controls z103\0\28c1 and z103\0\28c2..cycle;
+ fill_or_unfill z103\1\0s
+ --z103\1\0
+ ..controls z103\1\1c1 and z103\1\1c2..z103\1\1
+ ..controls z103\1\2c1 and z103\1\2c2..z103\1\2
+ ..controls z103\1\3c1 and z103\1\3c2..z103\1\3
+ ..controls z103\1\4c1 and z103\1\4c2..cycle;
+ proof_labels (
+ 103\0\0,
+ 103\0\1,
+ 103\0\2,
+ 103\0\3,
+ 103\0\4,
+ 103\0\5,
+ 103\0\6,
+ 103\0\7,
+ 103\0\8,
+ 103\0\9,
+ 103\0\10,
+ 103\0\11,
+ 103\0\12,
+ 103\0\13,
+ 103\0\14,
+ 103\0\15,
+ 103\0\16,
+ 103\0\17,
+ 103\0\18,
+ 103\0\19,
+ 103\0\20,
+ 103\0\21,
+ 103\0\22,
+ 103\0\23,
+ 103\0\24,
+ 103\0\25,
+ 103\0\26,
+ 103\0\27,
+ 103\0\28,
+ 103\1\0,
+ 103\1\1,
+ 103\1\2,
+ 103\1\3,
+ 103\1\4,
+);
+endchar;
+
+beginchar (TIB_ZLA, 9.636u#, 6.745u#, 7.227u#);
+ "zla";
+ z104\0\0s = (8.672u,3.854u);
+ z104\0\0c1 = (7.790u,3.854u);
+ z104\0\0c2 = (3.470u,3.959u);
+ z104\0\0 = (2.967u,3.710u);
+ z104\0\1c1 = (2.730u,3.593u);
+ z104\0\1c2 = (2.560u,3.411u);
+ z104\0\1 = (2.560u,3.132u);
+ z104\0\2c1 = (2.560u,2.853u);
+ z104\0\2c2 = (2.730u,2.670u);
+ z104\0\2 = (2.967u,2.553u);
+ z104\0\3c1 = (3.470u,2.305u);
+ z104\0\3c2 = (7.790u,2.409u);
+ z104\0\3 = (8.672u,2.409u);
+ z104\0\4 = (8.672u,0.482u);
+ z104\0\5c1 = (7.895u,0.817u);
+ z104\0\5c2 = (7.119u,1.105u);
+ z104\0\5 = (6.263u,1.154u);
+ z104\0\6c1 = (5.195u,1.216u);
+ z104\0\6c2 = (2.582u,0.572u);
+ z104\0\6 = (1.817u,-0.165u);
+ z104\0\7c1 = (1.628u,-0.346u);
+ z104\0\7c2 = (1.571u,-0.510u);
+ z104\0\7 = (1.445u,-0.723u);
+ z104\0\8 = (3.372u,-0.297u);
+ z104\0\9c1 = (3.852u,-0.241u);
+ z104\0\9c2 = (4.332u,-0.243u);
+ z104\0\9 = (4.818u,-0.297u);
+ z104\0\10c1 = (5.534u,-0.237u);
+ z104\0\10c2 = (6.278u,-0.204u);
+ z104\0\10 = (6.986u,-0.297u);
+ z104\0\11 = (9.154u,-0.723u);
+ z104\0\12 = (9.154u,4.577u);
+ z104\0\13c1 = (9.150u,5.135u);
+ z104\0\13c2 = (9.213u,5.881u);
+ z104\0\13 = (8.769u,6.299u);
+ z104\0\14c1 = (8.545u,6.510u);
+ z104\0\14c2 = (8.239u,6.600u);
+ z104\0\14 = (7.945u,6.632u);
+ z104\0\15c1 = (7.338u,6.792u);
+ z104\0\15c2 = (3.425u,6.827u);
+ z104\0\15 = (2.967u,6.632u);
+ z104\0\16c1 = (2.730u,6.484u);
+ z104\0\16c2 = (2.560u,6.301u);
+ z104\0\16 = (2.560u,6.022u);
+ z104\0\17c1 = (2.560u,5.216u);
+ z104\0\17c2 = (3.807u,5.303u);
+ z104\0\17 = (4.336u,5.300u);
+ z104\0\18c1 = (5.214u,5.294u);
+ z104\0\18c2 = (7.698u,5.502u);
+ z104\0\18 = (8.288u,4.915u);
+ z104\0\19c1 = (8.593u,4.610u);
+ z104\0\19c2 = (8.606u,4.248u);
+ z104\1\0s = (1.927u,-6.986u);
+ z104\1\0c1 = (1.645u,-6.283u);
+ z104\1\0c2 = (1.167u,-5.569u);
+ z104\1\0 = (1.050u,-4.818u);
+ z104\1\1c1 = (0.677u,-2.428u);
+ z104\1\1c2 = (4.504u,-1.691u);
+ z104\1\1 = (5.259u,-3.622u);
+ z104\1\2c1 = (5.769u,-4.926u);
+ z104\1\2c2 = (3.684u,-4.735u);
+ z104\1\2 = (3.174u,-5.428u);
+ z104\1\3c1 = (2.899u,-5.801u);
+ z104\1\3c2 = (2.917u,-6.307u);
+ z104\1\3 = (2.891u,-6.745u);
+ z104\1\4c1 = (4.445u,-6.341u);
+ z104\1\4c2 = (5.108u,-6.064u);
+ z104\1\4 = (6.745u,-6.486u);
+ z104\1\5c1 = (7.495u,-6.678u);
+ z104\1\5c2 = (8.134u,-6.906u);
+ z104\1\5 = (8.918u,-6.986u);
+ z104\1\6 = (8.918u,-3.854u);
+ z104\1\7c1 = (8.948u,-3.268u);
+ z104\1\7c2 = (9.194u,-2.233u);
+ z104\1\7 = (9.069u,-1.717u);
+ z104\1\8c1 = (8.833u,-0.751u);
+ z104\1\8c2 = (7.448u,-0.839u);
+ z104\1\8 = (7.337u,-1.717u);
+ z104\1\9c1 = (7.255u,-2.358u);
+ z104\1\9c2 = (8.064u,-3.181u);
+ z104\1\9 = (8.258u,-3.858u);
+ z104\1\10c1 = (8.498u,-4.696u);
+ z104\1\10c2 = (8.431u,-5.640u);
+ z104\1\10 = (8.431u,-6.504u);
+ z104\1\11c1 = (7.771u,-6.031u);
+ z104\1\11c2 = (6.424u,-5.393u);
+ z104\1\11 = (6.028u,-4.739u);
+ z104\1\12c1 = (5.816u,-4.389u);
+ z104\1\12c2 = (5.804u,-4.008u);
+ z104\1\12 = (5.786u,-3.613u);
+ z104\1\13c1 = (5.677u,-1.167u);
+ z104\1\13c2 = (5.727u,-0.930u);
+ z104\1\13 = (3.132u,-0.964u);
+ z104\1\14c1 = (2.478u,-0.973u);
+ z104\1\14c2 = (1.808u,-0.968u);
+ z104\1\14 = (1.259u,-1.382u);
+ z104\1\15c1 = (0.976u,-1.596u);
+ z104\1\15c2 = (0.792u,-1.852u);
+ z104\1\15 = (0.659u,-2.178u);
+ z104\1\16c1 = (0.313u,-3.029u);
+ z104\1\16c2 = (0.400u,-5.467u);
+ z104\1\16 = (0.928u,-6.231u);
+ z104\1\17c1 = (1.210u,-6.638u);
+ z104\1\17c2 = (1.507u,-6.772u);
+ fill_or_unfill z104\0\0s
+ ..controls z104\0\0c1 and z104\0\0c2..z104\0\0
+ ..controls z104\0\1c1 and z104\0\1c2..z104\0\1
+ ..controls z104\0\2c1 and z104\0\2c2..z104\0\2
+ ..controls z104\0\3c1 and z104\0\3c2..z104\0\3
+ --z104\0\4
+ ..controls z104\0\5c1 and z104\0\5c2..z104\0\5
+ ..controls z104\0\6c1 and z104\0\6c2..z104\0\6
+ ..controls z104\0\7c1 and z104\0\7c2..z104\0\7
+ --z104\0\8
+ ..controls z104\0\9c1 and z104\0\9c2..z104\0\9
+ ..controls z104\0\10c1 and z104\0\10c2..z104\0\10
+ --z104\0\11
+ --z104\0\12
+ ..controls z104\0\13c1 and z104\0\13c2..z104\0\13
+ ..controls z104\0\14c1 and z104\0\14c2..z104\0\14
+ ..controls z104\0\15c1 and z104\0\15c2..z104\0\15
+ ..controls z104\0\16c1 and z104\0\16c2..z104\0\16
+ ..controls z104\0\17c1 and z104\0\17c2..z104\0\17
+ ..controls z104\0\18c1 and z104\0\18c2..z104\0\18
+ ..controls z104\0\19c1 and z104\0\19c2..cycle;
+ fill_or_unfill z104\1\0s
+ ..controls z104\1\0c1 and z104\1\0c2..z104\1\0
+ ..controls z104\1\1c1 and z104\1\1c2..z104\1\1
+ ..controls z104\1\2c1 and z104\1\2c2..z104\1\2
+ ..controls z104\1\3c1 and z104\1\3c2..z104\1\3
+ ..controls z104\1\4c1 and z104\1\4c2..z104\1\4
+ ..controls z104\1\5c1 and z104\1\5c2..z104\1\5
+ --z104\1\6
+ ..controls z104\1\7c1 and z104\1\7c2..z104\1\7
+ ..controls z104\1\8c1 and z104\1\8c2..z104\1\8
+ ..controls z104\1\9c1 and z104\1\9c2..z104\1\9
+ ..controls z104\1\10c1 and z104\1\10c2..z104\1\10
+ ..controls z104\1\11c1 and z104\1\11c2..z104\1\11
+ ..controls z104\1\12c1 and z104\1\12c2..z104\1\12
+ ..controls z104\1\13c1 and z104\1\13c2..z104\1\13
+ ..controls z104\1\14c1 and z104\1\14c2..z104\1\14
+ ..controls z104\1\15c1 and z104\1\15c2..z104\1\15
+ ..controls z104\1\16c1 and z104\1\16c2..z104\1\16
+ ..controls z104\1\17c1 and z104\1\17c2..cycle;
+ proof_labels (
+ 104\0\0,
+ 104\0\1,
+ 104\0\2,
+ 104\0\3,
+ 104\0\4,
+ 104\0\5,
+ 104\0\6,
+ 104\0\7,
+ 104\0\8,
+ 104\0\9,
+ 104\0\10,
+ 104\0\11,
+ 104\0\12,
+ 104\0\13,
+ 104\0\14,
+ 104\0\15,
+ 104\0\16,
+ 104\0\17,
+ 104\0\18,
+ 104\0\19,
+ 104\1\0,
+ 104\1\1,
+ 104\1\2,
+ 104\1\3,
+ 104\1\4,
+ 104\1\5,
+ 104\1\6,
+ 104\1\7,
+ 104\1\8,
+ 104\1\9,
+ 104\1\10,
+ 104\1\11,
+ 104\1\12,
+ 104\1\13,
+ 104\1\14,
+ 104\1\15,
+ 104\1\16,
+ 104\1\17,
+);
+endchar;
+
+beginchar (TIB_RLA, 10.600u#, 6.745u#, 6.504u#);
+ "rla";
+ z105\0\0s = (2.168u,5.300u);
+ z105\0\0c1 = (3.648u,5.281u);
+ z105\0\0c2 = (4.310u,5.242u);
+ z105\0\0 = (4.577u,3.613u);
+ z105\0\1c1 = (3.054u,3.484u);
+ z105\0\1c2 = (2.160u,3.279u);
+ z105\0\1 = (1.686u,1.742u);
+ z105\0\2 = (3.132u,1.742u);
+ z105\0\3c1 = (3.776u,1.911u);
+ z105\0\3c2 = (4.397u,2.125u);
+ z105\0\3 = (5.059u,2.125u);
+ z105\0\4c1 = (6.479u,2.125u);
+ z105\0\4c2 = (8.532u,1.221u);
+ z105\0\4 = (9.877u,0.723u);
+ z105\0\5c1 = (9.418u,0.590u);
+ z105\0\5c2 = (8.218u,0.467u);
+ z105\0\5 = (7.969u,0.100u);
+ z105\0\6c1 = (7.559u,-0.503u);
+ z105\0\6c2 = (8.418u,-1.212u);
+ z105\0\6 = (8.675u,-1.707u);
+ z105\0\7c1 = (9.125u,-2.577u);
+ z105\0\7c2 = (9.373u,-4.315u);
+ z105\0\7 = (9.395u,-5.300u);
+ z105\0\8 = (8.191u,-4.241u);
+ z105\0\9c1 = (7.792u,-3.941u);
+ z105\0\9c2 = (7.199u,-3.626u);
+ z105\0\9 = (6.889u,-3.246u);
+ z105\0\10c1 = (5.951u,-2.094u);
+ z105\0\10c2 = (7.274u,-0.238u);
+ z105\0\10 = (5.058u,0.378u);
+ z105\0\11c1 = (4.300u,0.589u);
+ z105\0\11c2 = (2.374u,0.583u);
+ z105\0\11 = (1.740u,0.097u);
+ z105\0\12c1 = (0.721u,-0.685u);
+ z105\0\12c2 = (0.086u,-3.881u);
+ z105\0\12 = (0.984u,-4.921u);
+ z105\0\13c1 = (1.200u,-5.172u);
+ z105\0\13c2 = (1.398u,-5.197u);
+ z105\0\13 = (1.686u,-5.300u);
+ z105\0\14c1 = (1.549u,-4.528u);
+ z105\0\14c2 = (1.180u,-3.675u);
+ z105\0\14 = (1.297u,-2.891u);
+ z105\0\15c1 = (1.702u,-0.186u);
+ z105\0\15c2 = (5.746u,-0.601u);
+ z105\0\15 = (5.945u,-2.165u);
+ z105\0\16c1 = (6.108u,-3.443u);
+ z105\0\16c2 = (4.048u,-3.010u);
+ z105\0\16 = (3.371u,-3.991u);
+ z105\0\17c1 = (3.148u,-4.314u);
+ z105\0\17c2 = (3.161u,-4.687u);
+ z105\0\17 = (3.132u,-5.008u);
+ z105\0\18 = (4.577u,-5.008u);
+ z105\0\19c1 = (5.400u,-4.940u);
+ z105\0\19c2 = (5.890u,-4.758u);
+ z105\0\19 = (6.745u,-5.008u);
+ z105\0\20c1 = (7.860u,-5.190u);
+ z105\0\20c2 = (8.788u,-5.919u);
+ z105\0\20 = (9.909u,-6.263u);
+ z105\0\21 = (9.909u,-2.891u);
+ z105\0\22c1 = (9.891u,-1.754u);
+ z105\0\22c2 = (10.368u,-0.085u);
+ z105\0\22 = (9.909u,0.960u);
+ z105\0\23c1 = (9.218u,2.961u);
+ z105\0\23c2 = (6.114u,2.965u);
+ z105\0\23 = (5.203u,4.149u);
+ z105\0\24c1 = (4.921u,4.515u);
+ z105\0\24c2 = (4.889u,4.866u);
+ z105\0\24 = (4.818u,5.300u);
+ z105\0\25c1 = (5.649u,5.300u);
+ z105\0\25c2 = (7.405u,5.134u);
+ z105\0\25 = (8.017u,5.718u);
+ z105\0\26c1 = (8.262u,5.952u);
+ z105\0\26c2 = (8.316u,6.206u);
+ z105\0\26 = (8.431u,6.504u);
+ z105\0\27 = (7.709u,6.691u);
+ z105\0\28c1 = (6.868u,6.824u);
+ z105\0\28c2 = (3.591u,6.855u);
+ z105\0\28 = (2.926u,6.462u);
+ z105\0\29c1 = (2.426u,6.168u);
+ z105\0\29c2 = (2.328u,5.813u);
+ fill_or_unfill z105\0\0s
+ ..controls z105\0\0c1 and z105\0\0c2..z105\0\0
+ ..controls z105\0\1c1 and z105\0\1c2..z105\0\1
+ --z105\0\2
+ ..controls z105\0\3c1 and z105\0\3c2..z105\0\3
+ ..controls z105\0\4c1 and z105\0\4c2..z105\0\4
+ ..controls z105\0\5c1 and z105\0\5c2..z105\0\5
+ ..controls z105\0\6c1 and z105\0\6c2..z105\0\6
+ ..controls z105\0\7c1 and z105\0\7c2..z105\0\7
+ --z105\0\8
+ ..controls z105\0\9c1 and z105\0\9c2..z105\0\9
+ ..controls z105\0\10c1 and z105\0\10c2..z105\0\10
+ ..controls z105\0\11c1 and z105\0\11c2..z105\0\11
+ ..controls z105\0\12c1 and z105\0\12c2..z105\0\12
+ ..controls z105\0\13c1 and z105\0\13c2..z105\0\13
+ ..controls z105\0\14c1 and z105\0\14c2..z105\0\14
+ ..controls z105\0\15c1 and z105\0\15c2..z105\0\15
+ ..controls z105\0\16c1 and z105\0\16c2..z105\0\16
+ ..controls z105\0\17c1 and z105\0\17c2..z105\0\17
+ --z105\0\18
+ ..controls z105\0\19c1 and z105\0\19c2..z105\0\19
+ ..controls z105\0\20c1 and z105\0\20c2..z105\0\20
+ --z105\0\21
+ ..controls z105\0\22c1 and z105\0\22c2..z105\0\22
+ ..controls z105\0\23c1 and z105\0\23c2..z105\0\23
+ ..controls z105\0\24c1 and z105\0\24c2..z105\0\24
+ ..controls z105\0\25c1 and z105\0\25c2..z105\0\25
+ ..controls z105\0\26c1 and z105\0\26c2..z105\0\26
+ --z105\0\27
+ ..controls z105\0\28c1 and z105\0\28c2..z105\0\28
+ ..controls z105\0\29c1 and z105\0\29c2..cycle;
+ proof_labels (
+ 105\0\0,
+ 105\0\1,
+ 105\0\2,
+ 105\0\3,
+ 105\0\4,
+ 105\0\5,
+ 105\0\6,
+ 105\0\7,
+ 105\0\8,
+ 105\0\9,
+ 105\0\10,
+ 105\0\11,
+ 105\0\12,
+ 105\0\13,
+ 105\0\14,
+ 105\0\15,
+ 105\0\16,
+ 105\0\17,
+ 105\0\18,
+ 105\0\19,
+ 105\0\20,
+ 105\0\21,
+ 105\0\22,
+ 105\0\23,
+ 105\0\24,
+ 105\0\25,
+ 105\0\26,
+ 105\0\27,
+ 105\0\28,
+ 105\0\29,
+);
+endchar;
+
+beginchar (TIB_SLA, 10.600u#, 6.745u#, 6.263u#);
+ "sla";
+ z106\0\0s = (0.723u,5.300u);
+ z106\0\0 = (2.168u,5.300u);
+ z106\0\1c1 = (1.233u,3.896u);
+ z106\0\1c2 = (0.639u,3.179u);
+ z106\0\1 = (0.482u,1.474u);
+ z106\0\2 = (1.927u,1.474u);
+ z106\0\3c1 = (2.939u,1.416u);
+ z106\0\3c2 = (3.843u,0.766u);
+ z106\0\3 = (4.818u,0.482u);
+ z106\0\4c1 = (4.178u,1.826u);
+ z106\0\4c2 = (3.107u,2.708u);
+ z106\0\4 = (1.686u,3.132u);
+ z106\0\5 = (1.927u,4.095u);
+ z106\0\6c1 = (3.309u,3.683u);
+ z106\0\6c2 = (4.755u,3.223u);
+ z106\0\6 = (6.022u,2.526u);
+ z106\0\7 = (9.395u,0.482u);
+ z106\0\8c1 = (8.262u,-0.126u);
+ z106\0\8c2 = (8.232u,-0.159u);
+ z106\0\8 = (8.190u,-1.445u);
+ z106\0\9c1 = (8.419u,-1.521u);
+ z106\0\9c2 = (8.606u,-1.540u);
+ z106\0\9 = (8.815u,-1.687u);
+ z106\0\10c1 = (9.778u,-2.366u);
+ z106\0\10c2 = (9.636u,-4.253u);
+ z106\0\10 = (9.636u,-5.300u);
+ z106\0\11c1 = (9.165u,-4.939u);
+ z106\0\11c2 = (8.708u,-4.605u);
+ z106\0\11 = (8.191u,-4.311u);
+ z106\0\12c1 = (7.785u,-4.081u);
+ z106\0\12c2 = (7.193u,-3.846u);
+ z106\0\12 = (6.889u,-3.494u);
+ z106\0\13c1 = (5.860u,-2.304u);
+ z106\0\13c2 = (7.551u,-0.321u);
+ z106\0\13 = (4.818u,0.162u);
+ z106\0\14c1 = (3.659u,0.367u);
+ z106\0\14c2 = (1.866u,0.156u);
+ z106\0\14 = (1.246u,-0.977u);
+ z106\0\15c1 = (0.967u,-1.488u);
+ z106\0\15c2 = (0.972u,-2.085u);
+ z106\0\15 = (0.964u,-2.650u);
+ z106\0\16c1 = (0.954u,-3.440u);
+ z106\0\16c2 = (0.877u,-4.781u);
+ z106\0\16 = (1.406u,-5.410u);
+ z106\0\17c1 = (1.571u,-5.607u);
+ z106\0\17c2 = (1.725u,-5.655u);
+ z106\0\17 = (1.888u,-5.782u);
+ z106\0\18 = (1.888u,-4.577u);
+ z106\0\19c1 = (1.696u,-3.624u);
+ z106\0\19c2 = (1.242u,-2.843u);
+ z106\0\19 = (2.032u,-2.002u);
+ z106\0\20c1 = (2.941u,-1.033u);
+ z106\0\20c2 = (6.112u,-0.950u);
+ z106\0\20 = (6.112u,-2.641u);
+ z106\0\21c1 = (6.112u,-3.787u);
+ z106\0\21c2 = (4.456u,-3.431u);
+ z106\0\21 = (3.817u,-4.199u);
+ z106\0\22c1 = (3.548u,-4.523u);
+ z106\0\22c2 = (3.477u,-4.908u);
+ z106\0\22 = (3.372u,-5.300u);
+ z106\0\23 = (3.613u,-5.541u);
+ z106\0\24 = (5.782u,-4.934u);
+ z106\0\25c1 = (7.281u,-4.691u);
+ z106\0\25c2 = (8.703u,-5.640u);
+ z106\0\25 = (10.117u,-6.022u);
+ z106\0\26 = (10.117u,-1.445u);
+ z106\0\27 = (9.887u,0.964u);
+ z106\0\28 = (9.887u,3.132u);
+ z106\0\29 = (10.118u,6.745u);
+ z106\0\30c1 = (9.055u,6.741u);
+ z106\0\30c2 = (7.591u,6.882u);
+ z106\0\30 = (8.288u,5.299u);
+ z106\0\31 = (9.007u,3.854u);
+ z106\0\32c1 = (9.333u,2.924u);
+ z106\0\32c2 = (9.386u,1.938u);
+ z106\0\32 = (9.395u,0.964u);
+ z106\0\33 = (7.227u,2.983u);
+ z106\0\34 = (4.336u,5.300u);
+ z106\0\35c1 = (5.506u,5.437u);
+ z106\0\35c2 = (5.816u,5.543u);
+ z106\0\35 = (6.022u,6.745u);
+ z106\0\36c1 = (5.164u,6.745u);
+ z106\0\36c2 = (1.630u,6.912u);
+ z106\0\36 = (1.108u,6.499u);
+ z106\0\37c1 = (0.736u,6.205u);
+ z106\0\37c2 = (0.758u,5.723u);
+ fill_or_unfill z106\0\0s
+ --z106\0\0
+ ..controls z106\0\1c1 and z106\0\1c2..z106\0\1
+ --z106\0\2
+ ..controls z106\0\3c1 and z106\0\3c2..z106\0\3
+ ..controls z106\0\4c1 and z106\0\4c2..z106\0\4
+ --z106\0\5
+ ..controls z106\0\6c1 and z106\0\6c2..z106\0\6
+ --z106\0\7
+ ..controls z106\0\8c1 and z106\0\8c2..z106\0\8
+ ..controls z106\0\9c1 and z106\0\9c2..z106\0\9
+ ..controls z106\0\10c1 and z106\0\10c2..z106\0\10
+ ..controls z106\0\11c1 and z106\0\11c2..z106\0\11
+ ..controls z106\0\12c1 and z106\0\12c2..z106\0\12
+ ..controls z106\0\13c1 and z106\0\13c2..z106\0\13
+ ..controls z106\0\14c1 and z106\0\14c2..z106\0\14
+ ..controls z106\0\15c1 and z106\0\15c2..z106\0\15
+ ..controls z106\0\16c1 and z106\0\16c2..z106\0\16
+ ..controls z106\0\17c1 and z106\0\17c2..z106\0\17
+ --z106\0\18
+ ..controls z106\0\19c1 and z106\0\19c2..z106\0\19
+ ..controls z106\0\20c1 and z106\0\20c2..z106\0\20
+ ..controls z106\0\21c1 and z106\0\21c2..z106\0\21
+ ..controls z106\0\22c1 and z106\0\22c2..z106\0\22
+ --z106\0\23
+ --z106\0\24
+ ..controls z106\0\25c1 and z106\0\25c2..z106\0\25
+ --z106\0\26
+ --z106\0\27
+ --z106\0\28
+ --z106\0\29
+ ..controls z106\0\30c1 and z106\0\30c2..z106\0\30
+ --z106\0\31
+ ..controls z106\0\32c1 and z106\0\32c2..z106\0\32
+ --z106\0\33
+ --z106\0\34
+ ..controls z106\0\35c1 and z106\0\35c2..z106\0\35
+ ..controls z106\0\36c1 and z106\0\36c2..z106\0\36
+ ..controls z106\0\37c1 and z106\0\37c2..cycle;
+ proof_labels (
+ 106\0\0,
+ 106\0\1,
+ 106\0\2,
+ 106\0\3,
+ 106\0\4,
+ 106\0\5,
+ 106\0\6,
+ 106\0\7,
+ 106\0\8,
+ 106\0\9,
+ 106\0\10,
+ 106\0\11,
+ 106\0\12,
+ 106\0\13,
+ 106\0\14,
+ 106\0\15,
+ 106\0\16,
+ 106\0\17,
+ 106\0\18,
+ 106\0\19,
+ 106\0\20,
+ 106\0\21,
+ 106\0\22,
+ 106\0\23,
+ 106\0\24,
+ 106\0\25,
+ 106\0\26,
+ 106\0\27,
+ 106\0\28,
+ 106\0\29,
+ 106\0\30,
+ 106\0\31,
+ 106\0\32,
+ 106\0\33,
+ 106\0\34,
+ 106\0\35,
+ 106\0\36,
+ 106\0\37,
+);
+endchar;
+
+beginchar (TIB_RKYA, 10.359u#, 6.745u#, 8.672u#);
+ "rkya";
+ z107\0\0s = (2.650u,5.300u);
+ z107\0\0c1 = (3.916u,5.295u);
+ z107\0\0c2 = (4.619u,5.473u);
+ z107\0\0 = (5.059u,4.095u);
+ z107\0\1c1 = (4.153u,4.095u);
+ z107\0\1c2 = (1.481u,4.361u);
+ z107\0\1 = (1.138u,3.306u);
+ z107\0\2c1 = (0.989u,2.848u);
+ z107\0\2c2 = (1.306u,2.191u);
+ z107\0\2 = (1.306u,1.686u);
+ z107\0\3c1 = (1.305u,1.275u);
+ z107\0\3c2 = (1.172u,0.878u);
+ z107\0\3 = (1.077u,0.482u);
+ z107\0\4 = (0.723u,-1.204u);
+ z107\0\5c1 = (1.010u,-1.026u);
+ z107\0\5c2 = (1.186u,-0.943u);
+ z107\0\5 = (1.393u,-0.652u);
+ z107\0\6c1 = (1.903u,0.065u);
+ z107\0\6c2 = (2.490u,2.945u);
+ z107\0\6 = (3.789u,2.368u);
+ z107\0\7c1 = (4.870u,1.889u);
+ z107\0\7c2 = (4.767u,-0.702u);
+ z107\0\7 = (4.840u,-1.686u);
+ z107\0\8 = (5.059u,-3.132u);
+ z107\0\9c1 = (5.596u,-1.820u);
+ z107\0\9c2 = (5.525u,1.142u);
+ z107\0\9 = (6.247u,2.092u);
+ z107\0\10c1 = (6.586u,2.538u);
+ z107\0\10c2 = (7.158u,2.692u);
+ z107\0\10 = (7.695u,2.570u);
+ z107\0\11c1 = (8.015u,2.497u);
+ z107\0\11c2 = (8.240u,2.367u);
+ z107\0\11 = (8.427u,2.092u);
+ z107\0\12c1 = (8.958u,1.314u);
+ z107\0\12c2 = (9.032u,-2.197u);
+ z107\0\12 = (8.760u,-3.131u);
+ z107\0\13c1 = (8.563u,-3.810u);
+ z107\0\13c2 = (8.183u,-4.422u);
+ z107\0\13 = (7.658u,-4.894u);
+ z107\0\14c1 = (5.487u,-6.846u);
+ z107\0\14c2 = (2.994u,-5.417u);
+ z107\0\14 = (0.482u,-5.300u);
+ z107\0\15c1 = (0.920u,-6.224u);
+ z107\0\15c2 = (1.358u,-6.678u);
+ z107\0\15 = (2.168u,-7.304u);
+ z107\0\16c1 = (4.052u,-8.762u);
+ z107\0\16c2 = (5.941u,-8.811u);
+ z107\0\16 = (7.949u,-7.538u);
+ z107\0\17c1 = (8.791u,-7.004u);
+ z107\0\17c2 = (9.191u,-6.676u);
+ z107\0\17 = (9.636u,-5.782u);
+ z107\0\18c1 = (7.926u,-6.685u);
+ z107\0\18c2 = (6.103u,-7.919u);
+ z107\0\18 = (4.095u,-7.195u);
+ z107\0\19 = (1.686u,-6.022u);
+ z107\0\20c1 = (2.818u,-6.129u);
+ z107\0\20c2 = (3.914u,-6.532u);
+ z107\0\20 = (5.059u,-6.479u);
+ z107\0\21c1 = (6.596u,-6.409u);
+ z107\0\21c2 = (8.597u,-5.919u);
+ z107\0\21 = (9.218u,-4.335u);
+ z107\0\22c1 = (9.394u,-3.885u);
+ z107\0\22c2 = (9.400u,-3.365u);
+ z107\0\22 = (9.463u,-2.891u);
+ z107\0\23 = (9.636u,-0.723u);
+ z107\0\24 = (9.877u,4.095u);
+ z107\0\25 = (5.782u,4.095u);
+ z107\0\26c1 = (5.881u,4.407u);
+ z107\0\26c2 = (5.914u,4.669u);
+ z107\0\26 = (6.166u,4.915u);
+ z107\0\27c1 = (6.735u,5.470u);
+ z107\0\27c2 = (8.279u,5.112u);
+ z107\0\27 = (8.285u,6.003u);
+ z107\0\28c1 = (8.287u,6.276u);
+ z107\0\28c2 = (8.105u,6.452u);
+ z107\0\28 = (7.878u,6.533u);
+ z107\0\29c1 = (7.265u,6.880u);
+ z107\0\29c2 = (3.996u,6.846u);
+ z107\0\29 = (3.408u,6.533u);
+ z107\0\30c1 = (2.906u,6.203u);
+ z107\0\30c2 = (2.806u,5.814u);
+ fill_or_unfill z107\0\0s
+ ..controls z107\0\0c1 and z107\0\0c2..z107\0\0
+ ..controls z107\0\1c1 and z107\0\1c2..z107\0\1
+ ..controls z107\0\2c1 and z107\0\2c2..z107\0\2
+ ..controls z107\0\3c1 and z107\0\3c2..z107\0\3
+ --z107\0\4
+ ..controls z107\0\5c1 and z107\0\5c2..z107\0\5
+ ..controls z107\0\6c1 and z107\0\6c2..z107\0\6
+ ..controls z107\0\7c1 and z107\0\7c2..z107\0\7
+ --z107\0\8
+ ..controls z107\0\9c1 and z107\0\9c2..z107\0\9
+ ..controls z107\0\10c1 and z107\0\10c2..z107\0\10
+ ..controls z107\0\11c1 and z107\0\11c2..z107\0\11
+ ..controls z107\0\12c1 and z107\0\12c2..z107\0\12
+ ..controls z107\0\13c1 and z107\0\13c2..z107\0\13
+ ..controls z107\0\14c1 and z107\0\14c2..z107\0\14
+ ..controls z107\0\15c1 and z107\0\15c2..z107\0\15
+ ..controls z107\0\16c1 and z107\0\16c2..z107\0\16
+ ..controls z107\0\17c1 and z107\0\17c2..z107\0\17
+ ..controls z107\0\18c1 and z107\0\18c2..z107\0\18
+ --z107\0\19
+ ..controls z107\0\20c1 and z107\0\20c2..z107\0\20
+ ..controls z107\0\21c1 and z107\0\21c2..z107\0\21
+ ..controls z107\0\22c1 and z107\0\22c2..z107\0\22
+ --z107\0\23
+ --z107\0\24
+ --z107\0\25
+ ..controls z107\0\26c1 and z107\0\26c2..z107\0\26
+ ..controls z107\0\27c1 and z107\0\27c2..z107\0\27
+ ..controls z107\0\28c1 and z107\0\28c2..z107\0\28
+ ..controls z107\0\29c1 and z107\0\29c2..z107\0\29
+ ..controls z107\0\30c1 and z107\0\30c2..cycle;
+ proof_labels (
+ 107\0\0,
+ 107\0\1,
+ 107\0\2,
+ 107\0\3,
+ 107\0\4,
+ 107\0\5,
+ 107\0\6,
+ 107\0\7,
+ 107\0\8,
+ 107\0\9,
+ 107\0\10,
+ 107\0\11,
+ 107\0\12,
+ 107\0\13,
+ 107\0\14,
+ 107\0\15,
+ 107\0\16,
+ 107\0\17,
+ 107\0\18,
+ 107\0\19,
+ 107\0\20,
+ 107\0\21,
+ 107\0\22,
+ 107\0\23,
+ 107\0\24,
+ 107\0\25,
+ 107\0\26,
+ 107\0\27,
+ 107\0\28,
+ 107\0\29,
+ 107\0\30,
+);
+endchar;
+
+beginchar (TIB_RGYA, 10.118u#, 6.745u#, 8.431u#);
+ "rgya";
+ z108\0\0s = (2.650u,5.300u);
+ z108\0\0c1 = (3.916u,5.295u);
+ z108\0\0c2 = (4.619u,5.473u);
+ z108\0\0 = (5.059u,4.095u);
+ z108\0\1c1 = (4.188u,4.095u);
+ z108\0\1c2 = (1.692u,4.293u);
+ z108\0\1 = (1.107u,3.710u);
+ z108\0\2c1 = (0.802u,3.406u);
+ z108\0\2c2 = (0.789u,3.044u);
+ z108\0\2 = (0.723u,2.650u);
+ z108\0\3 = (1.686u,2.650u);
+ z108\0\4c1 = (0.724u,1.091u);
+ z108\0\4c2 = (0.487u,-0.124u);
+ z108\0\4 = (0.482u,-1.927u);
+ z108\0\5 = (2.650u,-1.196u);
+ z108\0\6c1 = (3.786u,-0.975u);
+ z108\0\6c2 = (5.186u,-1.551u);
+ z108\0\6 = (5.892u,-2.453u);
+ z108\0\7 = (6.263u,-3.132u);
+ z108\0\8c1 = (6.504u,-2.524u);
+ z108\0\8c2 = (6.501u,-2.095u);
+ z108\0\8 = (6.504u,-1.445u);
+ z108\0\9c1 = (6.510u,-0.391u);
+ z108\0\9c2 = (6.229u,1.802u);
+ z108\0\9 = (7.280u,2.446u);
+ z108\0\10c1 = (7.539u,2.546u);
+ z108\0\10c2 = (7.853u,2.591u);
+ z108\0\10 = (8.137u,2.446u);
+ z108\0\11c1 = (8.436u,2.387u);
+ z108\0\11c2 = (8.608u,2.171u);
+ z108\0\11 = (8.736u,1.892u);
+ z108\0\12c1 = (9.103u,1.090u);
+ z108\0\12c2 = (9.291u,-2.733u);
+ z108\0\12 = (9.051u,-3.613u);
+ z108\0\13c1 = (8.871u,-4.272u);
+ z108\0\13c2 = (8.460u,-4.778u);
+ z108\0\13 = (7.939u,-5.205u);
+ z108\0\14c1 = (6.764u,-6.171u);
+ z108\0\14c2 = (5.053u,-6.198u);
+ z108\0\14 = (3.613u,-5.947u);
+ z108\0\15 = (1.204u,-5.541u);
+ z108\0\16c1 = (2.199u,-6.992u);
+ z108\0\16c2 = (3.195u,-8.132u);
+ z108\0\16 = (5.059u,-8.187u);
+ z108\0\17c1 = (6.493u,-8.229u);
+ z108\0\17c2 = (6.777u,-8.184u);
+ z108\0\17 = (7.990u,-7.431u);
+ z108\0\18c1 = (8.738u,-6.966u);
+ z108\0\18c2 = (9.170u,-6.798u);
+ z108\0\18 = (9.636u,-6.022u);
+ z108\0\19c1 = (6.477u,-7.383u);
+ z108\0\19c2 = (5.436u,-8.727u);
+ z108\0\19 = (2.409u,-6.022u);
+ z108\0\20c1 = (3.206u,-6.183u);
+ z108\0\20c2 = (4.004u,-6.432u);
+ z108\0\20 = (4.818u,-6.482u);
+ z108\0\21c1 = (6.465u,-6.583u);
+ z108\0\21c2 = (8.861u,-6.080u);
+ z108\0\21 = (9.467u,-4.333u);
+ z108\0\22c1 = (9.678u,-3.728u);
+ z108\0\22c2 = (9.635u,-3.040u);
+ z108\0\22 = (9.636u,-2.409u);
+ z108\0\23 = (9.636u,4.095u);
+ z108\0\24 = (5.782u,4.095u);
+ z108\0\25c1 = (5.856u,4.328u);
+ z108\0\25c2 = (5.874u,4.531u);
+ z108\0\25 = (6.023u,4.743u);
+ z108\0\26c1 = (6.883u,5.966u);
+ z108\0\26c2 = (8.148u,4.376u);
+ z108\0\26 = (8.431u,6.745u);
+ z108\0\27c1 = (7.293u,6.745u);
+ z108\0\27c2 = (4.010u,6.984u);
+ z108\0\27 = (3.207u,6.326u);
+ z108\0\28c1 = (2.845u,6.031u);
+ z108\0\28c2 = (2.780u,5.717u);
+ z108\1\0s = (6.022u,-1.445u);
+ z108\1\0 = (3.854u,-0.133u);
+ z108\1\1 = (2.007u,0.582u);
+ z108\1\2 = (1.749u,0.857u);
+ z108\1\3c1 = (1.577u,1.124u);
+ z108\1\3c2 = (1.646u,1.409u);
+ z108\1\3 = (1.749u,1.665u);
+ z108\1\4c1 = (2.247u,2.601u);
+ z108\1\4c2 = (3.852u,2.912u);
+ z108\1\4 = (4.755u,2.506u);
+ z108\1\5c1 = (5.871u,2.004u);
+ z108\1\5c2 = (5.999u,-0.376u);
+ fill_or_unfill z108\0\0s
+ ..controls z108\0\0c1 and z108\0\0c2..z108\0\0
+ ..controls z108\0\1c1 and z108\0\1c2..z108\0\1
+ ..controls z108\0\2c1 and z108\0\2c2..z108\0\2
+ --z108\0\3
+ ..controls z108\0\4c1 and z108\0\4c2..z108\0\4
+ --z108\0\5
+ ..controls z108\0\6c1 and z108\0\6c2..z108\0\6
+ --z108\0\7
+ ..controls z108\0\8c1 and z108\0\8c2..z108\0\8
+ ..controls z108\0\9c1 and z108\0\9c2..z108\0\9
+ ..controls z108\0\10c1 and z108\0\10c2..z108\0\10
+ ..controls z108\0\11c1 and z108\0\11c2..z108\0\11
+ ..controls z108\0\12c1 and z108\0\12c2..z108\0\12
+ ..controls z108\0\13c1 and z108\0\13c2..z108\0\13
+ ..controls z108\0\14c1 and z108\0\14c2..z108\0\14
+ --z108\0\15
+ ..controls z108\0\16c1 and z108\0\16c2..z108\0\16
+ ..controls z108\0\17c1 and z108\0\17c2..z108\0\17
+ ..controls z108\0\18c1 and z108\0\18c2..z108\0\18
+ ..controls z108\0\19c1 and z108\0\19c2..z108\0\19
+ ..controls z108\0\20c1 and z108\0\20c2..z108\0\20
+ ..controls z108\0\21c1 and z108\0\21c2..z108\0\21
+ ..controls z108\0\22c1 and z108\0\22c2..z108\0\22
+ --z108\0\23
+ --z108\0\24
+ ..controls z108\0\25c1 and z108\0\25c2..z108\0\25
+ ..controls z108\0\26c1 and z108\0\26c2..z108\0\26
+ ..controls z108\0\27c1 and z108\0\27c2..z108\0\27
+ ..controls z108\0\28c1 and z108\0\28c2..cycle;
+ fill_or_unfill z108\1\0s
+ --z108\1\0
+ --z108\1\1
+ --z108\1\2
+ ..controls z108\1\3c1 and z108\1\3c2..z108\1\3
+ ..controls z108\1\4c1 and z108\1\4c2..z108\1\4
+ ..controls z108\1\5c1 and z108\1\5c2..cycle;
+ proof_labels (
+ 108\0\0,
+ 108\0\1,
+ 108\0\2,
+ 108\0\3,
+ 108\0\4,
+ 108\0\5,
+ 108\0\6,
+ 108\0\7,
+ 108\0\8,
+ 108\0\9,
+ 108\0\10,
+ 108\0\11,
+ 108\0\12,
+ 108\0\13,
+ 108\0\14,
+ 108\0\15,
+ 108\0\16,
+ 108\0\17,
+ 108\0\18,
+ 108\0\19,
+ 108\0\20,
+ 108\0\21,
+ 108\0\22,
+ 108\0\23,
+ 108\0\24,
+ 108\0\25,
+ 108\0\26,
+ 108\0\27,
+ 108\0\28,
+ 108\1\0,
+ 108\1\1,
+ 108\1\2,
+ 108\1\3,
+ 108\1\4,
+ 108\1\5,
+);
+endchar;
+
+beginchar (TIB_SKYA, 9.636u#, 6.745u#, 8.672u#);
+ "skya";
+ z109\0\0s = (1.686u,5.300u);
+ z109\0\0 = (0.629u,2.650u);
+ z109\0\1 = (0.482u,1.445u);
+ z109\0\2c1 = (2.134u,1.409u);
+ z109\0\2c2 = (2.630u,1.224u);
+ z109\0\2 = (4.095u,0.482u);
+ z109\0\3c1 = (3.791u,2.653u);
+ z109\0\3c2 = (2.706u,2.484u);
+ z109\0\3 = (1.445u,3.842u);
+ z109\0\4c1 = (2.012u,3.883u);
+ z109\0\4c2 = (2.567u,3.915u);
+ z109\0\4 = (3.132u,3.842u);
+ z109\0\5c1 = (4.252u,3.660u);
+ z109\0\5c2 = (6.270u,2.811u);
+ z109\0\5 = (7.158u,2.115u);
+ z109\0\6c1 = (7.843u,1.579u);
+ z109\0\6c2 = (8.388u,0.927u);
+ z109\0\6 = (8.913u,0.229u);
+ z109\0\7 = (4.577u,0.229u);
+ z109\0\8c1 = (3.888u,0.241u);
+ z109\0\8c2 = (3.096u,0.317u);
+ z109\0\8 = (2.419u,0.229u);
+ z109\0\9c1 = (2.193u,0.169u);
+ z109\0\9c2 = (1.983u,0.127u);
+ z109\0\9 = (1.790u,-0.005u);
+ z109\0\10c1 = (1.361u,-0.300u);
+ z109\0\10c2 = (1.307u,-0.739u);
+ z109\0\10 = (1.204u,-1.204u);
+ z109\0\11c1 = (2.041u,-2.116u);
+ z109\0\11c2 = (1.690u,-2.506u);
+ z109\0\11 = (1.445u,-3.613u);
+ z109\0\12c1 = (1.724u,-3.476u);
+ z109\0\12c2 = (1.919u,-3.391u);
+ z109\0\12 = (2.151u,-3.168u);
+ z109\0\13c1 = (2.585u,-2.748u);
+ z109\0\13c2 = (3.239u,-1.492u);
+ z109\0\13 = (3.864u,-1.493u);
+ z109\0\14c1 = (4.782u,-1.493u);
+ z109\0\14c2 = (4.824u,-3.592u);
+ z109\0\14 = (5.309u,-4.213u);
+ z109\0\15c1 = (5.462u,-4.408u);
+ z109\0\15c2 = (5.592u,-4.449u);
+ z109\0\15 = (5.818u,-4.577u);
+ z109\0\16 = (5.818u,-2.891u);
+ z109\0\17c1 = (5.914u,-2.525u);
+ z109\0\17c2 = (6.019u,-2.062u);
+ z109\0\17 = (6.247u,-1.762u);
+ z109\0\18c1 = (6.723u,-1.136u);
+ z109\0\18c2 = (7.730u,-1.080u);
+ z109\0\18 = (8.185u,-1.762u);
+ z109\0\19c1 = (8.428u,-2.126u);
+ z109\0\19c2 = (8.427u,-2.708u);
+ z109\0\19 = (8.429u,-3.132u);
+ z109\0\20c1 = (8.437u,-4.801u);
+ z109\0\20c2 = (7.816u,-5.864u);
+ z109\0\20 = (6.022u,-6.034u);
+ z109\0\21c1 = (4.464u,-6.181u);
+ z109\0\21c2 = (2.921u,-5.447u);
+ z109\0\21 = (1.445u,-5.059u);
+ z109\0\22c1 = (1.963u,-6.154u);
+ z109\0\22c2 = (3.239u,-7.600u);
+ z109\0\22 = (4.336u,-8.148u);
+ z109\0\23c1 = (4.743u,-8.352u);
+ z109\0\23c2 = (5.095u,-8.396u);
+ z109\0\23 = (5.541u,-8.421u);
+ z109\0\24c1 = (7.237u,-8.517u);
+ z109\0\24c2 = (8.386u,-8.087u);
+ z109\0\24 = (9.154u,-6.504u);
+ z109\0\25c1 = (6.520u,-7.550u);
+ z109\0\25c2 = (5.448u,-7.960u);
+ z109\0\25 = (3.132u,-6.022u);
+ z109\0\26 = (4.577u,-6.426u);
+ z109\0\27c1 = (5.757u,-6.623u);
+ z109\0\27c2 = (8.210u,-6.647u);
+ z109\0\27 = (8.908u,-5.487u);
+ z109\0\28c1 = (9.155u,-5.077u);
+ z109\0\28c2 = (9.145u,-4.557u);
+ z109\0\28 = (9.153u,-4.095u);
+ z109\0\29 = (9.153u,4.818u);
+ z109\0\30c1 = (9.150u,5.373u);
+ z109\0\30c2 = (9.237u,6.334u);
+ z109\0\30 = (8.601u,6.541u);
+ z109\0\31c1 = (8.365u,6.681u);
+ z109\0\31c2 = (8.056u,6.651u);
+ z109\0\31 = (7.853u,6.541u);
+ z109\0\32c1 = (7.238u,6.022u);
+ z109\0\32c2 = (7.777u,5.110u);
+ z109\0\32 = (7.990u,4.577u);
+ z109\0\33 = (8.320u,3.613u);
+ z109\0\34c1 = (8.496u,3.038u);
+ z109\0\34c2 = (8.611u,2.525u);
+ z109\0\34 = (8.672u,1.927u);
+ z109\0\35c1 = (7.070u,3.065u);
+ z109\0\35c2 = (5.531u,4.499u);
+ z109\0\35 = (3.613u,5.059u);
+ z109\0\36c1 = (3.961u,5.171u);
+ z109\0\36c2 = (4.428u,5.254u);
+ z109\0\36 = (4.741u,5.432u);
+ z109\0\37c1 = (4.966u,5.560u);
+ z109\0\37c2 = (5.151u,5.722u);
+ z109\0\37 = (5.154u,6.003u);
+ z109\0\38c1 = (5.160u,6.945u);
+ z109\0\38c2 = (2.760u,6.822u);
+ z109\0\38 = (2.173u,6.669u);
+ z109\0\39c1 = (1.772u,6.566u);
+ z109\0\39c2 = (0.900u,6.078u);
+ z109\0\39 = (1.240u,5.540u);
+ z109\0\40c1 = (1.350u,5.366u);
+ z109\0\40c2 = (1.527u,5.369u);
+ fill_or_unfill z109\0\0s
+ --z109\0\0
+ --z109\0\1
+ ..controls z109\0\2c1 and z109\0\2c2..z109\0\2
+ ..controls z109\0\3c1 and z109\0\3c2..z109\0\3
+ ..controls z109\0\4c1 and z109\0\4c2..z109\0\4
+ ..controls z109\0\5c1 and z109\0\5c2..z109\0\5
+ ..controls z109\0\6c1 and z109\0\6c2..z109\0\6
+ --z109\0\7
+ ..controls z109\0\8c1 and z109\0\8c2..z109\0\8
+ ..controls z109\0\9c1 and z109\0\9c2..z109\0\9
+ ..controls z109\0\10c1 and z109\0\10c2..z109\0\10
+ ..controls z109\0\11c1 and z109\0\11c2..z109\0\11
+ ..controls z109\0\12c1 and z109\0\12c2..z109\0\12
+ ..controls z109\0\13c1 and z109\0\13c2..z109\0\13
+ ..controls z109\0\14c1 and z109\0\14c2..z109\0\14
+ ..controls z109\0\15c1 and z109\0\15c2..z109\0\15
+ --z109\0\16
+ ..controls z109\0\17c1 and z109\0\17c2..z109\0\17
+ ..controls z109\0\18c1 and z109\0\18c2..z109\0\18
+ ..controls z109\0\19c1 and z109\0\19c2..z109\0\19
+ ..controls z109\0\20c1 and z109\0\20c2..z109\0\20
+ ..controls z109\0\21c1 and z109\0\21c2..z109\0\21
+ ..controls z109\0\22c1 and z109\0\22c2..z109\0\22
+ ..controls z109\0\23c1 and z109\0\23c2..z109\0\23
+ ..controls z109\0\24c1 and z109\0\24c2..z109\0\24
+ ..controls z109\0\25c1 and z109\0\25c2..z109\0\25
+ --z109\0\26
+ ..controls z109\0\27c1 and z109\0\27c2..z109\0\27
+ ..controls z109\0\28c1 and z109\0\28c2..z109\0\28
+ --z109\0\29
+ ..controls z109\0\30c1 and z109\0\30c2..z109\0\30
+ ..controls z109\0\31c1 and z109\0\31c2..z109\0\31
+ ..controls z109\0\32c1 and z109\0\32c2..z109\0\32
+ --z109\0\33
+ ..controls z109\0\34c1 and z109\0\34c2..z109\0\34
+ ..controls z109\0\35c1 and z109\0\35c2..z109\0\35
+ ..controls z109\0\36c1 and z109\0\36c2..z109\0\36
+ ..controls z109\0\37c1 and z109\0\37c2..z109\0\37
+ ..controls z109\0\38c1 and z109\0\38c2..z109\0\38
+ ..controls z109\0\39c1 and z109\0\39c2..z109\0\39
+ ..controls z109\0\40c1 and z109\0\40c2..cycle;
+ proof_labels (
+ 109\0\0,
+ 109\0\1,
+ 109\0\2,
+ 109\0\3,
+ 109\0\4,
+ 109\0\5,
+ 109\0\6,
+ 109\0\7,
+ 109\0\8,
+ 109\0\9,
+ 109\0\10,
+ 109\0\11,
+ 109\0\12,
+ 109\0\13,
+ 109\0\14,
+ 109\0\15,
+ 109\0\16,
+ 109\0\17,
+ 109\0\18,
+ 109\0\19,
+ 109\0\20,
+ 109\0\21,
+ 109\0\22,
+ 109\0\23,
+ 109\0\24,
+ 109\0\25,
+ 109\0\26,
+ 109\0\27,
+ 109\0\28,
+ 109\0\29,
+ 109\0\30,
+ 109\0\31,
+ 109\0\32,
+ 109\0\33,
+ 109\0\34,
+ 109\0\35,
+ 109\0\36,
+ 109\0\37,
+ 109\0\38,
+ 109\0\39,
+ 109\0\40,
+);
+endchar;
+
+beginchar (TIB_SKRA, 10.359u#, 6.745u#, 6.504u#);
+ "skra";
+ z110\0\0s = (1.204u,5.300u);
+ z110\0\0c1 = (1.372u,5.175u);
+ z110\0\0c2 = (1.528u,5.156u);
+ z110\0\0 = (1.621u,4.928u);
+ z110\0\1c1 = (1.847u,4.375u);
+ z110\0\1c2 = (1.005u,3.188u);
+ z110\0\1 = (0.773u,2.650u);
+ z110\0\2 = (0.482u,1.661u);
+ z110\0\3c1 = (1.346u,1.686u);
+ z110\0\3c2 = (2.276u,1.755u);
+ z110\0\3 = (3.132u,1.661u);
+ z110\0\4 = (5.059u,1.204u);
+ z110\0\5c1 = (4.688u,1.694u);
+ z110\0\5c2 = (4.375u,2.071u);
+ z110\0\5 = (3.851u,2.411u);
+ z110\0\6c1 = (2.959u,2.989u);
+ z110\0\6c2 = (2.523u,2.850u);
+ z110\0\6 = (1.927u,3.854u);
+ z110\0\7c1 = (3.675u,3.696u);
+ z110\0\7c2 = (7.097u,2.299u);
+ z110\0\7 = (8.377u,1.113u);
+ z110\0\8 = (8.913u,0.470u);
+ z110\0\9 = (4.818u,0.470u);
+ z110\0\10c1 = (4.126u,0.482u);
+ z110\0\10c2 = (3.335u,0.556u);
+ z110\0\10 = (2.654u,0.470u);
+ z110\0\11c1 = (2.425u,0.410u);
+ z110\0\11c2 = (2.200u,0.367u);
+ z110\0\11 = (2.003u,0.235u);
+ z110\0\12c1 = (1.554u,-0.063u);
+ z110\0\12c2 = (1.526u,-0.483u);
+ z110\0\12 = (1.445u,-0.964u);
+ z110\0\13 = (2.409u,-0.964u);
+ z110\0\14c1 = (2.066u,-1.855u);
+ z110\0\14c2 = (1.820u,-2.666u);
+ z110\0\14 = (1.686u,-3.613u);
+ z110\0\15c1 = (1.881u,-3.485u);
+ z110\0\15c2 = (2.005u,-3.433u);
+ z110\0\15 = (2.172u,-3.249u);
+ z110\0\16c1 = (2.765u,-2.596u);
+ z110\0\16c2 = (3.797u,-0.656u);
+ z110\0\16 = (4.945u,-1.572u);
+ z110\0\17c1 = (5.524u,-2.033u);
+ z110\0\17c2 = (5.692u,-2.928u);
+ z110\0\17 = (5.782u,-3.613u);
+ z110\0\18 = (6.263u,-3.613u);
+ z110\0\19c1 = (6.305u,-2.762u);
+ z110\0\19c2 = (6.448u,-0.934u);
+ z110\0\19 = (7.705u,-1.074u);
+ z110\0\20c1 = (8.018u,-1.109u);
+ z110\0\20c2 = (8.251u,-1.267u);
+ z110\0\20 = (8.430u,-1.521u);
+ z110\0\21c1 = (8.821u,-2.079u);
+ z110\0\21c2 = (8.873u,-3.634u);
+ z110\0\21 = (8.955u,-4.336u);
+ z110\0\22 = (9.154u,-5.541u);
+ z110\0\23c1 = (8.762u,-5.223u);
+ z110\0\23c2 = (8.396u,-4.919u);
+ z110\0\23 = (7.950u,-4.677u);
+ z110\0\24c1 = (6.853u,-4.082u);
+ z110\0\24c2 = (4.543u,-3.455u);
+ z110\0\24 = (3.644u,-4.677u);
+ z110\0\25c1 = (3.494u,-4.881u);
+ z110\0\25c2 = (3.459u,-5.075u);
+ z110\0\25 = (3.372u,-5.339u);
+ z110\0\26c1 = (4.435u,-5.515u);
+ z110\0\26c2 = (5.439u,-5.193u);
+ z110\0\26 = (6.504u,-5.339u);
+ z110\0\27 = (8.672u,-6.112u);
+ z110\0\28 = (9.647u,-6.263u);
+ z110\0\29 = (9.647u,-2.891u);
+ z110\0\30 = (9.867u,-0.964u);
+ z110\0\31 = (9.657u,2.168u);
+ z110\0\32 = (9.657u,4.095u);
+ z110\0\33 = (9.830u,5.537u);
+ z110\0\34c1 = (9.817u,5.823u);
+ z110\0\34c2 = (9.776u,6.132u);
+ z110\0\34 = (9.594u,6.366u);
+ z110\0\35c1 = (9.218u,6.848u);
+ z110\0\35c2 = (8.260u,6.743u);
+ z110\0\35 = (7.709u,6.745u);
+ z110\0\36c1 = (7.797u,5.501u);
+ z110\0\36c2 = (8.230u,4.964u);
+ z110\0\36 = (8.656u,3.854u);
+ z110\0\37c1 = (9.018u,2.912u);
+ z110\0\37c2 = (9.131u,2.206u);
+ z110\0\37 = (9.154u,1.204u);
+ z110\0\38c1 = (7.788u,3.009u);
+ z110\0\38c2 = (6.031u,4.371u);
+ z110\0\38 = (3.854u,5.059u);
+ z110\0\39 = (5.027u,5.392u);
+ z110\0\40c1 = (5.311u,5.503u);
+ z110\0\40c2 = (5.640u,5.663u);
+ z110\0\40 = (5.640u,6.022u);
+ z110\0\41c1 = (5.640u,7.053u);
+ z110\0\41c2 = (2.352u,6.848u);
+ z110\0\41 = (1.790u,6.462u);
+ z110\0\42c1 = (1.363u,6.169u);
+ z110\0\42c2 = (1.309u,5.764u);
+ fill_or_unfill z110\0\0s
+ ..controls z110\0\0c1 and z110\0\0c2..z110\0\0
+ ..controls z110\0\1c1 and z110\0\1c2..z110\0\1
+ --z110\0\2
+ ..controls z110\0\3c1 and z110\0\3c2..z110\0\3
+ --z110\0\4
+ ..controls z110\0\5c1 and z110\0\5c2..z110\0\5
+ ..controls z110\0\6c1 and z110\0\6c2..z110\0\6
+ ..controls z110\0\7c1 and z110\0\7c2..z110\0\7
+ --z110\0\8
+ --z110\0\9
+ ..controls z110\0\10c1 and z110\0\10c2..z110\0\10
+ ..controls z110\0\11c1 and z110\0\11c2..z110\0\11
+ ..controls z110\0\12c1 and z110\0\12c2..z110\0\12
+ --z110\0\13
+ ..controls z110\0\14c1 and z110\0\14c2..z110\0\14
+ ..controls z110\0\15c1 and z110\0\15c2..z110\0\15
+ ..controls z110\0\16c1 and z110\0\16c2..z110\0\16
+ ..controls z110\0\17c1 and z110\0\17c2..z110\0\17
+ --z110\0\18
+ ..controls z110\0\19c1 and z110\0\19c2..z110\0\19
+ ..controls z110\0\20c1 and z110\0\20c2..z110\0\20
+ ..controls z110\0\21c1 and z110\0\21c2..z110\0\21
+ --z110\0\22
+ ..controls z110\0\23c1 and z110\0\23c2..z110\0\23
+ ..controls z110\0\24c1 and z110\0\24c2..z110\0\24
+ ..controls z110\0\25c1 and z110\0\25c2..z110\0\25
+ ..controls z110\0\26c1 and z110\0\26c2..z110\0\26
+ --z110\0\27
+ --z110\0\28
+ --z110\0\29
+ --z110\0\30
+ --z110\0\31
+ --z110\0\32
+ --z110\0\33
+ ..controls z110\0\34c1 and z110\0\34c2..z110\0\34
+ ..controls z110\0\35c1 and z110\0\35c2..z110\0\35
+ ..controls z110\0\36c1 and z110\0\36c2..z110\0\36
+ ..controls z110\0\37c1 and z110\0\37c2..z110\0\37
+ ..controls z110\0\38c1 and z110\0\38c2..z110\0\38
+ --z110\0\39
+ ..controls z110\0\40c1 and z110\0\40c2..z110\0\40
+ ..controls z110\0\41c1 and z110\0\41c2..z110\0\41
+ ..controls z110\0\42c1 and z110\0\42c2..cycle;
+ proof_labels (
+ 110\0\0,
+ 110\0\1,
+ 110\0\2,
+ 110\0\3,
+ 110\0\4,
+ 110\0\5,
+ 110\0\6,
+ 110\0\7,
+ 110\0\8,
+ 110\0\9,
+ 110\0\10,
+ 110\0\11,
+ 110\0\12,
+ 110\0\13,
+ 110\0\14,
+ 110\0\15,
+ 110\0\16,
+ 110\0\17,
+ 110\0\18,
+ 110\0\19,
+ 110\0\20,
+ 110\0\21,
+ 110\0\22,
+ 110\0\23,
+ 110\0\24,
+ 110\0\25,
+ 110\0\26,
+ 110\0\27,
+ 110\0\28,
+ 110\0\29,
+ 110\0\30,
+ 110\0\31,
+ 110\0\32,
+ 110\0\33,
+ 110\0\34,
+ 110\0\35,
+ 110\0\36,
+ 110\0\37,
+ 110\0\38,
+ 110\0\39,
+ 110\0\40,
+ 110\0\41,
+ 110\0\42,
+);
+endchar;
+
+beginchar (TIB_SGYA, 10.359u#, 6.745u#, 9.395u#);
+ "sgya";
+ z111\0\0s = (0.964u,5.300u);
+ z111\0\0 = (1.927u,5.059u);
+ z111\0\1 = (0.656u,2.650u);
+ z111\0\2 = (0.482u,1.661u);
+ z111\0\3 = (2.650u,1.661u);
+ z111\0\4 = (4.577u,1.204u);
+ z111\0\5 = (4.306u,1.850u);
+ z111\0\6c1 = (3.816u,2.595u);
+ z111\0\6c2 = (2.469u,3.168u);
+ z111\0\6 = (1.686u,3.613u);
+ z111\0\7c1 = (2.044u,3.730u);
+ z111\0\7c2 = (2.370u,3.854u);
+ z111\0\7 = (2.752u,3.864u);
+ z111\0\8c1 = (3.945u,3.893u);
+ z111\0\8c2 = (6.958u,2.910u);
+ z111\0\8 = (7.908u,2.189u);
+ z111\0\9c1 = (8.462u,1.768u);
+ z111\0\9c2 = (8.781u,1.295u);
+ z111\0\9 = (9.154u,0.687u);
+ z111\0\10c1 = (8.269u,0.723u);
+ z111\0\10c2 = (3.137u,0.782u);
+ z111\0\10 = (2.704u,0.687u);
+ z111\0\11c1 = (2.423u,0.568u);
+ z111\0\11c2 = (2.235u,0.452u);
+ z111\0\11 = (2.118u,0.170u);
+ z111\0\12c1 = (1.873u,-0.419u);
+ z111\0\12c2 = (2.314u,-1.275u);
+ z111\0\12 = (2.310u,-1.927u);
+ z111\0\13 = (2.168u,-4.095u);
+ z111\0\14c1 = (4.399u,-3.916u);
+ z111\0\14c2 = (4.180u,-3.824u);
+ z111\0\14 = (6.263u,-4.818u);
+ z111\0\15 = (6.263u,-3.854u);
+ z111\0\16c1 = (6.268u,-2.824u);
+ z111\0\16c2 = (6.232u,-0.793u);
+ z111\0\16 = (7.709u,-0.793u);
+ z111\0\17c1 = (8.117u,-0.793u);
+ z111\0\17c2 = (8.442u,-0.956u);
+ z111\0\17 = (8.688u,-1.280u);
+ z111\0\18c1 = (9.001u,-1.692u);
+ z111\0\18c2 = (9.091u,-2.387u);
+ z111\0\18 = (9.144u,-2.890u);
+ z111\0\19c1 = (9.172u,-3.309u);
+ z111\0\19c2 = (9.224u,-3.818u);
+ z111\0\19 = (9.144u,-4.234u);
+ z111\0\20c1 = (8.916u,-5.592u);
+ z111\0\20c2 = (7.534u,-6.486u);
+ z111\0\20 = (6.263u,-6.714u);
+ z111\0\21c1 = (4.763u,-6.983u);
+ z111\0\21c2 = (3.382u,-6.487u);
+ z111\0\21 = (1.927u,-6.263u);
+ z111\0\22c1 = (2.473u,-7.264u);
+ z111\0\22c2 = (3.774u,-8.404u);
+ z111\0\22 = (4.818u,-8.880u);
+ z111\0\23c1 = (5.837u,-9.346u);
+ z111\0\23c2 = (8.217u,-9.300u);
+ z111\0\23 = (9.079u,-8.516u);
+ z111\0\24c1 = (9.431u,-8.196u);
+ z111\0\24c2 = (9.502u,-7.897u);
+ z111\0\24 = (9.636u,-7.468u);
+ z111\0\25c1 = (9.094u,-7.798u);
+ z111\0\25c2 = (8.543u,-8.202u);
+ z111\0\25 = (7.950u,-8.431u);
+ z111\0\26c1 = (6.207u,-9.102u);
+ z111\0\26c2 = (4.830u,-7.972u);
+ z111\0\26 = (3.372u,-7.227u);
+ z111\0\27c1 = (5.168u,-7.039u);
+ z111\0\27c2 = (6.724u,-7.532u);
+ z111\0\27 = (8.421u,-6.484u);
+ z111\0\28c1 = (10.278u,-5.338u);
+ z111\0\28c2 = (9.904u,-2.613u);
+ z111\0\28 = (9.825u,-0.724u);
+ z111\0\29c1 = (9.870u,-0.336u);
+ z111\0\29c2 = (9.864u,0.034u);
+ z111\0\29 = (9.825u,0.413u);
+ z111\0\30 = (9.427u,1.467u);
+ z111\0\31c1 = (9.348u,2.076u);
+ z111\0\31c2 = (9.389u,2.754u);
+ z111\0\31 = (9.427u,3.372u);
+ z111\0\32 = (9.636u,6.745u);
+ z111\0\33c1 = (8.730u,6.736u);
+ z111\0\33c2 = (7.016u,6.805u);
+ z111\0\33 = (7.831u,5.365u);
+ z111\0\34 = (8.496u,4.315u);
+ z111\0\35c1 = (8.695u,3.803u);
+ z111\0\35c2 = (8.667u,3.191u);
+ z111\0\35 = (8.672u,2.650u);
+ z111\0\36c1 = (7.020u,3.577u);
+ z111\0\36c2 = (5.779u,4.709u);
+ z111\0\36 = (3.854u,5.059u);
+ z111\0\37c1 = (5.142u,5.459u);
+ z111\0\37c2 = (5.660u,5.216u);
+ z111\0\37 = (5.782u,6.745u);
+ z111\0\38c1 = (4.825u,6.745u);
+ z111\0\38c2 = (2.020u,6.961u);
+ z111\0\38 = (1.382u,6.326u);
+ z111\0\39c1 = (1.087u,6.034u);
+ z111\0\39c2 = (1.049u,5.680u);
+ z111\1\0s = (5.300u,-0.723u);
+ z111\1\0 = (5.782u,-3.613u);
+ z111\1\1c1 = (5.282u,-3.501u);
+ z111\1\1c2 = (3.553u,-3.105u);
+ z111\1\1 = (3.212u,-2.852u);
+ z111\1\2c1 = (2.366u,-2.226u);
+ z111\1\2c2 = (3.193u,-1.231u);
+ z111\1\2 = (3.896u,-0.932u);
+ z111\1\3c1 = (4.337u,-0.744u);
+ z111\1\3c2 = (4.830u,-0.746u);
+ fill_or_unfill z111\0\0s
+ --z111\0\0
+ --z111\0\1
+ --z111\0\2
+ --z111\0\3
+ --z111\0\4
+ --z111\0\5
+ ..controls z111\0\6c1 and z111\0\6c2..z111\0\6
+ ..controls z111\0\7c1 and z111\0\7c2..z111\0\7
+ ..controls z111\0\8c1 and z111\0\8c2..z111\0\8
+ ..controls z111\0\9c1 and z111\0\9c2..z111\0\9
+ ..controls z111\0\10c1 and z111\0\10c2..z111\0\10
+ ..controls z111\0\11c1 and z111\0\11c2..z111\0\11
+ ..controls z111\0\12c1 and z111\0\12c2..z111\0\12
+ --z111\0\13
+ ..controls z111\0\14c1 and z111\0\14c2..z111\0\14
+ --z111\0\15
+ ..controls z111\0\16c1 and z111\0\16c2..z111\0\16
+ ..controls z111\0\17c1 and z111\0\17c2..z111\0\17
+ ..controls z111\0\18c1 and z111\0\18c2..z111\0\18
+ ..controls z111\0\19c1 and z111\0\19c2..z111\0\19
+ ..controls z111\0\20c1 and z111\0\20c2..z111\0\20
+ ..controls z111\0\21c1 and z111\0\21c2..z111\0\21
+ ..controls z111\0\22c1 and z111\0\22c2..z111\0\22
+ ..controls z111\0\23c1 and z111\0\23c2..z111\0\23
+ ..controls z111\0\24c1 and z111\0\24c2..z111\0\24
+ ..controls z111\0\25c1 and z111\0\25c2..z111\0\25
+ ..controls z111\0\26c1 and z111\0\26c2..z111\0\26
+ ..controls z111\0\27c1 and z111\0\27c2..z111\0\27
+ ..controls z111\0\28c1 and z111\0\28c2..z111\0\28
+ ..controls z111\0\29c1 and z111\0\29c2..z111\0\29
+ --z111\0\30
+ ..controls z111\0\31c1 and z111\0\31c2..z111\0\31
+ --z111\0\32
+ ..controls z111\0\33c1 and z111\0\33c2..z111\0\33
+ --z111\0\34
+ ..controls z111\0\35c1 and z111\0\35c2..z111\0\35
+ ..controls z111\0\36c1 and z111\0\36c2..z111\0\36
+ ..controls z111\0\37c1 and z111\0\37c2..z111\0\37
+ ..controls z111\0\38c1 and z111\0\38c2..z111\0\38
+ ..controls z111\0\39c1 and z111\0\39c2..cycle;
+ fill_or_unfill z111\1\0s
+ --z111\1\0
+ ..controls z111\1\1c1 and z111\1\1c2..z111\1\1
+ ..controls z111\1\2c1 and z111\1\2c2..z111\1\2
+ ..controls z111\1\3c1 and z111\1\3c2..cycle;
+ proof_labels (
+ 111\0\0,
+ 111\0\1,
+ 111\0\2,
+ 111\0\3,
+ 111\0\4,
+ 111\0\5,
+ 111\0\6,
+ 111\0\7,
+ 111\0\8,
+ 111\0\9,
+ 111\0\10,
+ 111\0\11,
+ 111\0\12,
+ 111\0\13,
+ 111\0\14,
+ 111\0\15,
+ 111\0\16,
+ 111\0\17,
+ 111\0\18,
+ 111\0\19,
+ 111\0\20,
+ 111\0\21,
+ 111\0\22,
+ 111\0\23,
+ 111\0\24,
+ 111\0\25,
+ 111\0\26,
+ 111\0\27,
+ 111\0\28,
+ 111\0\29,
+ 111\0\30,
+ 111\0\31,
+ 111\0\32,
+ 111\0\33,
+ 111\0\34,
+ 111\0\35,
+ 111\0\36,
+ 111\0\37,
+ 111\0\38,
+ 111\0\39,
+ 111\1\0,
+ 111\1\1,
+ 111\1\2,
+ 111\1\3,
+);
+endchar;
+
+beginchar (TIB_SGRA, 10.118u#, 6.745u#, 7.950u#);
+ "sgra";
+ z112\0\0s = (0.723u,5.300u);
+ z112\0\0 = (1.686u,5.300u);
+ z112\0\1c1 = (1.057u,3.882u);
+ z112\0\1c2 = (0.562u,3.307u);
+ z112\0\1 = (0.482u,1.686u);
+ z112\0\2c1 = (2.808u,2.103u);
+ z112\0\2c2 = (2.472u,1.798u);
+ z112\0\2 = (4.577u,1.204u);
+ z112\0\3c1 = (3.881u,2.639u);
+ z112\0\3c2 = (2.930u,3.024u);
+ z112\0\3 = (1.445u,3.372u);
+ z112\0\4c1 = (1.691u,3.631u);
+ z112\0\4c2 = (1.834u,3.854u);
+ z112\0\4 = (2.195u,3.979u);
+ z112\0\5c1 = (3.177u,4.320u);
+ z112\0\5c2 = (6.154u,3.098u);
+ z112\0\5 = (6.985u,2.497u);
+ z112\0\6c1 = (7.589u,2.061u);
+ z112\0\6c2 = (8.000u,1.560u);
+ z112\0\6 = (8.431u,0.964u);
+ z112\0\7c1 = (7.318u,0.964u);
+ z112\0\7c2 = (2.720u,1.153u);
+ z112\0\7 = (2.031u,0.681u);
+ z112\0\8c1 = (1.603u,0.387u);
+ z112\0\8c2 = (1.550u,-0.018u);
+ z112\0\8 = (1.445u,-0.482u);
+ z112\0\9c1 = (1.623u,-0.609u);
+ z112\0\9c2 = (1.769u,-0.631u);
+ z112\0\9 = (1.883u,-0.853u);
+ z112\0\10c1 = (2.142u,-1.356u);
+ z112\0\10c2 = (1.684u,-2.351u);
+ z112\0\10 = (1.570u,-2.891u);
+ z112\0\11 = (1.445u,-4.073u);
+ z112\0\12c1 = (2.557u,-3.886u);
+ z112\0\12c2 = (3.495u,-3.518u);
+ z112\0\12 = (4.577u,-4.073u);
+ z112\0\13 = (6.022u,-4.818u);
+ z112\0\14c1 = (6.022u,-3.835u);
+ z112\0\14c2 = (5.703u,-0.633u);
+ z112\0\14 = (7.229u,-0.633u);
+ z112\0\15c1 = (7.639u,-0.633u);
+ z112\0\15c2 = (7.950u,-0.906u);
+ z112\0\15 = (8.148u,-1.240u);
+ z112\0\16c1 = (8.526u,-1.873u);
+ z112\0\16c2 = (8.403u,-2.889u);
+ z112\0\16 = (8.472u,-3.613u);
+ z112\0\17c1 = (8.563u,-4.565u);
+ z112\0\17c2 = (8.653u,-5.589u);
+ z112\0\17 = (8.913u,-6.504u);
+ z112\0\18c1 = (7.360u,-5.708u);
+ z112\0\18c2 = (6.370u,-5.236u);
+ z112\0\18 = (4.577u,-5.304u);
+ z112\0\19c1 = (4.121u,-5.322u);
+ z112\0\19c2 = (3.621u,-5.340u);
+ z112\0\19 = (3.276u,-5.685u);
+ z112\0\20c1 = (2.970u,-5.989u);
+ z112\0\20c2 = (2.957u,-6.351u);
+ z112\0\20 = (2.891u,-6.726u);
+ z112\0\21c1 = (4.341u,-6.678u);
+ z112\0\21c2 = (5.800u,-6.216u);
+ z112\0\21 = (7.227u,-6.726u);
+ z112\0\22 = (9.395u,-7.709u);
+ z112\0\23 = (9.395u,-3.372u);
+ z112\0\24 = (9.625u,-0.964u);
+ z112\0\25 = (9.625u,0.964u);
+ z112\0\26 = (8.934u,0.964u);
+ z112\0\27 = (8.934u,3.132u);
+ z112\0\28 = (9.360u,5.300u);
+ z112\0\29 = (9.360u,6.745u);
+ z112\0\30c1 = (8.976u,6.740u);
+ z112\0\30c2 = (8.194u,6.783u);
+ z112\0\30 = (7.862u,6.499u);
+ z112\0\31c1 = (7.252u,5.975u);
+ z112\0\31c2 = (8.113u,4.299u);
+ z112\0\31 = (8.268u,3.613u);
+ z112\0\32c1 = (8.378u,3.128u);
+ z112\0\32c2 = (8.408u,2.663u);
+ z112\0\32 = (8.431u,2.168u);
+ z112\0\33c1 = (7.328u,3.558u);
+ z112\0\33c2 = (6.015u,4.483u);
+ z112\0\33 = (4.336u,5.059u);
+ z112\0\34c1 = (4.594u,5.188u);
+ z112\0\34c2 = (4.914u,5.302u);
+ z112\0\34 = (5.119u,5.513u);
+ z112\0\35c1 = (5.574u,5.983u);
+ z112\0\35c2 = (5.378u,6.492u);
+ z112\0\35 = (4.782u,6.669u);
+ z112\0\36c1 = (4.246u,6.829u);
+ z112\0\36c2 = (1.522u,6.826u);
+ z112\0\36 = (1.108u,6.499u);
+ z112\0\37c1 = (0.736u,6.205u);
+ z112\0\37c2 = (0.758u,5.723u);
+ z112\1\0s = (5.541u,-3.854u);
+ z112\1\0c1 = (4.083u,-2.967u);
+ z112\1\0c2 = (3.875u,-2.757u);
+ z112\1\0 = (2.168u,-2.409u);
+ z112\1\1c1 = (2.495u,-1.726u);
+ z112\1\1c2 = (2.859u,-1.009u);
+ z112\1\1 = (3.620u,-0.721u);
+ z112\1\2c1 = (5.179u,-0.130u);
+ z112\1\2c2 = (5.458u,-2.873u);
+ fill_or_unfill z112\0\0s
+ --z112\0\0
+ ..controls z112\0\1c1 and z112\0\1c2..z112\0\1
+ ..controls z112\0\2c1 and z112\0\2c2..z112\0\2
+ ..controls z112\0\3c1 and z112\0\3c2..z112\0\3
+ ..controls z112\0\4c1 and z112\0\4c2..z112\0\4
+ ..controls z112\0\5c1 and z112\0\5c2..z112\0\5
+ ..controls z112\0\6c1 and z112\0\6c2..z112\0\6
+ ..controls z112\0\7c1 and z112\0\7c2..z112\0\7
+ ..controls z112\0\8c1 and z112\0\8c2..z112\0\8
+ ..controls z112\0\9c1 and z112\0\9c2..z112\0\9
+ ..controls z112\0\10c1 and z112\0\10c2..z112\0\10
+ --z112\0\11
+ ..controls z112\0\12c1 and z112\0\12c2..z112\0\12
+ --z112\0\13
+ ..controls z112\0\14c1 and z112\0\14c2..z112\0\14
+ ..controls z112\0\15c1 and z112\0\15c2..z112\0\15
+ ..controls z112\0\16c1 and z112\0\16c2..z112\0\16
+ ..controls z112\0\17c1 and z112\0\17c2..z112\0\17
+ ..controls z112\0\18c1 and z112\0\18c2..z112\0\18
+ ..controls z112\0\19c1 and z112\0\19c2..z112\0\19
+ ..controls z112\0\20c1 and z112\0\20c2..z112\0\20
+ ..controls z112\0\21c1 and z112\0\21c2..z112\0\21
+ --z112\0\22
+ --z112\0\23
+ --z112\0\24
+ --z112\0\25
+ --z112\0\26
+ --z112\0\27
+ --z112\0\28
+ --z112\0\29
+ ..controls z112\0\30c1 and z112\0\30c2..z112\0\30
+ ..controls z112\0\31c1 and z112\0\31c2..z112\0\31
+ ..controls z112\0\32c1 and z112\0\32c2..z112\0\32
+ ..controls z112\0\33c1 and z112\0\33c2..z112\0\33
+ ..controls z112\0\34c1 and z112\0\34c2..z112\0\34
+ ..controls z112\0\35c1 and z112\0\35c2..z112\0\35
+ ..controls z112\0\36c1 and z112\0\36c2..z112\0\36
+ ..controls z112\0\37c1 and z112\0\37c2..cycle;
+ fill_or_unfill z112\1\0s
+ ..controls z112\1\0c1 and z112\1\0c2..z112\1\0
+ ..controls z112\1\1c1 and z112\1\1c2..z112\1\1
+ ..controls z112\1\2c1 and z112\1\2c2..cycle;
+ proof_labels (
+ 112\0\0,
+ 112\0\1,
+ 112\0\2,
+ 112\0\3,
+ 112\0\4,
+ 112\0\5,
+ 112\0\6,
+ 112\0\7,
+ 112\0\8,
+ 112\0\9,
+ 112\0\10,
+ 112\0\11,
+ 112\0\12,
+ 112\0\13,
+ 112\0\14,
+ 112\0\15,
+ 112\0\16,
+ 112\0\17,
+ 112\0\18,
+ 112\0\19,
+ 112\0\20,
+ 112\0\21,
+ 112\0\22,
+ 112\0\23,
+ 112\0\24,
+ 112\0\25,
+ 112\0\26,
+ 112\0\27,
+ 112\0\28,
+ 112\0\29,
+ 112\0\30,
+ 112\0\31,
+ 112\0\32,
+ 112\0\33,
+ 112\0\34,
+ 112\0\35,
+ 112\0\36,
+ 112\0\37,
+ 112\1\0,
+ 112\1\1,
+ 112\1\2,
+);
+endchar;
+
+beginchar (TIB_SPYA, 10.600u#, 6.745u#, 9.154u#);
+ "spya";
+ z113\0\0s = (0.964u,5.300u);
+ z113\0\0 = (2.168u,5.300u);
+ z113\0\1c1 = (1.490u,4.087u);
+ z113\0\1c2 = (0.675u,3.097u);
+ z113\0\1 = (0.482u,1.686u);
+ z113\0\2c1 = (2.456u,1.668u);
+ z113\0\2c2 = (2.796u,1.383u);
+ z113\0\2 = (4.577u,0.723u);
+ z113\0\3c1 = (3.344u,0.328u);
+ z113\0\3c2 = (2.888u,0.459u);
+ z113\0\3 = (2.650u,-0.964u);
+ z113\0\4 = (3.613u,-0.964u);
+ z113\0\5c1 = (2.452u,-2.748u);
+ z113\0\5c2 = (2.175u,-3.156u);
+ z113\0\5 = (2.168u,-5.300u);
+ z113\0\6c1 = (3.136u,-5.125u);
+ z113\0\6c2 = (4.078u,-4.633u);
+ z113\0\6 = (5.059u,-4.621u);
+ z113\0\7c1 = (5.943u,-4.609u);
+ z113\0\7c2 = (8.866u,-5.030u);
+ z113\0\7 = (8.866u,-6.223u);
+ z113\0\8c1 = (8.866u,-6.616u);
+ z113\0\8c2 = (8.481u,-6.841u);
+ z113\0\8 = (8.176u,-6.994u);
+ z113\0\9c1 = (7.650u,-7.257u);
+ z113\0\9c2 = (6.851u,-7.419u);
+ z113\0\9 = (6.263u,-7.406u);
+ z113\0\10c1 = (5.533u,-7.390u);
+ z113\0\10c2 = (4.556u,-7.272u);
+ z113\0\10 = (3.854u,-7.075u);
+ z113\0\11 = (1.445u,-6.263u);
+ z113\0\12c1 = (1.521u,-6.514u);
+ z113\0\12c2 = (1.552u,-6.727u);
+ z113\0\12 = (1.687u,-6.964u);
+ z113\0\13c1 = (2.083u,-7.657u);
+ z113\0\13c2 = (3.342u,-8.494u);
+ z113\0\13 = (4.095u,-8.745u);
+ z113\0\14c1 = (5.237u,-9.126u);
+ z113\0\14c2 = (8.582u,-8.919u);
+ z113\0\14 = (9.565u,-8.207u);
+ z113\0\15c1 = (9.868u,-7.988u);
+ z113\0\15c2 = (9.946u,-7.775u);
+ z113\0\15 = (10.118u,-7.468u);
+ z113\0\16c1 = (9.649u,-7.704u);
+ z113\0\16c2 = (9.187u,-7.967u);
+ z113\0\16 = (8.672u,-8.074u);
+ z113\0\17c1 = (7.964u,-8.261u);
+ z113\0\17c2 = (5.045u,-8.239u);
+ z113\0\17 = (4.336u,-8.074u);
+ z113\0\18c1 = (3.505u,-7.843u);
+ z113\0\18c2 = (2.713u,-7.335u);
+ z113\0\18 = (1.927u,-6.986u);
+ z113\0\19 = (4.336u,-7.653u);
+ z113\0\20c1 = (5.126u,-7.745u);
+ z113\0\20c2 = (5.945u,-7.710u);
+ z113\0\20 = (6.745u,-7.653u);
+ z113\0\21c1 = (7.625u,-7.707u);
+ z113\0\21c2 = (8.633u,-7.788u);
+ z113\0\21 = (9.319u,-7.123u);
+ z113\0\22c1 = (9.583u,-6.868u);
+ z113\0\22c2 = (9.711u,-6.611u);
+ z113\0\22 = (9.855u,-6.260u);
+ z113\0\23c1 = (9.910u,-5.838u);
+ z113\0\23c2 = (9.876u,-5.257u);
+ z113\0\23 = (9.855u,-4.818u);
+ z113\0\24 = (9.855u,-2.168u);
+ z113\0\25c1 = (9.913u,-1.555u);
+ z113\0\25c2 = (10.115u,-0.864u);
+ z113\0\25 = (10.025u,-0.262u);
+ z113\0\26 = (9.525u,1.004u);
+ z113\0\27c1 = (9.344u,1.587u);
+ z113\0\27c2 = (9.383u,2.285u);
+ z113\0\27 = (9.398u,2.891u);
+ z113\0\28c1 = (9.409u,3.300u);
+ z113\0\28c2 = (9.430u,3.696u);
+ z113\0\28 = (9.528u,4.095u);
+ z113\0\29c1 = (9.672u,4.687u);
+ z113\0\29c2 = (10.195u,5.600u);
+ z113\0\29 = (9.961u,6.188u);
+ z113\0\30c1 = (9.611u,7.065u);
+ z113\0\30c2 = (7.659u,6.788u);
+ z113\0\30 = (7.609u,5.796u);
+ z113\0\31c1 = (7.587u,5.356u);
+ z113\0\31c2 = (8.194u,4.569u);
+ z113\0\31 = (8.369u,4.092u);
+ z113\0\32 = (8.913u,1.927u);
+ z113\0\33 = (6.745u,3.498u);
+ z113\0\34 = (4.336u,5.300u);
+ z113\0\35c1 = (4.839u,5.317u);
+ z113\0\35c2 = (5.871u,5.274u);
+ z113\0\35 = (5.871u,6.022u);
+ z113\0\36c1 = (5.871u,6.301u);
+ z113\0\36c2 = (5.701u,6.484u);
+ z113\0\36 = (5.464u,6.601u);
+ z113\0\37c1 = (4.890u,6.885u);
+ z113\0\37c2 = (2.078u,6.825u);
+ z113\0\37 = (1.549u,6.462u);
+ z113\0\38c1 = (1.122u,6.169u);
+ z113\0\38c2 = (1.068u,5.764u);
+ z113\1\0s = (8.913u,0.482u);
+ z113\1\0c1 = (8.579u,0.285u);
+ z113\1\0c2 = (8.259u,0.187u);
+ z113\1\0 = (8.227u,-0.274u);
+ z113\1\1c1 = (8.199u,-0.676u);
+ z113\1\1c2 = (8.600u,-1.297u);
+ z113\1\1 = (8.750u,-1.686u);
+ z113\1\2 = (9.252u,-3.372u);
+ z113\1\3c1 = (9.384u,-3.939u);
+ z113\1\3c2 = (9.389u,-4.481u);
+ z113\1\3 = (9.395u,-5.059u);
+ z113\1\4c1 = (6.828u,-3.762u);
+ z113\1\4c2 = (6.389u,-3.073u);
+ z113\1\4 = (3.400u,-3.613u);
+ z113\1\5c1 = (3.380u,-3.350u);
+ z113\1\5c2 = (3.349u,-3.157u);
+ z113\1\5 = (3.400u,-2.891u);
+ z113\1\6c1 = (3.650u,-2.142u);
+ z113\1\6c2 = (4.351u,-1.404u);
+ z113\1\6 = (5.062u,-1.103u);
+ z113\1\7c1 = (5.524u,-0.908u);
+ z113\1\7c2 = (5.997u,-0.929u);
+ z113\1\7 = (6.403u,-0.579u);
+ z113\1\8c1 = (6.750u,-0.278u);
+ z113\1\8c2 = (6.841u,0.072u);
+ z113\1\8 = (6.986u,0.482u);
+ z113\1\9 = (4.818u,0.482u);
+ z113\1\10c1 = (4.098u,1.999u);
+ z113\1\10c2 = (3.165u,2.490u);
+ z113\1\10 = (1.686u,3.132u);
+ z113\1\11c1 = (1.892u,3.492u);
+ z113\1\11c2 = (1.993u,3.781u);
+ z113\1\11 = (2.442u,3.907u);
+ z113\1\12c1 = (3.447u,4.189u);
+ z113\1\12c2 = (7.310u,1.939u);
+ z113\1\12 = (8.163u,1.257u);
+ z113\1\13c1 = (8.463u,1.018u);
+ z113\1\13c2 = (8.669u,0.770u);
+ fill_or_unfill z113\0\0s
+ --z113\0\0
+ ..controls z113\0\1c1 and z113\0\1c2..z113\0\1
+ ..controls z113\0\2c1 and z113\0\2c2..z113\0\2
+ ..controls z113\0\3c1 and z113\0\3c2..z113\0\3
+ --z113\0\4
+ ..controls z113\0\5c1 and z113\0\5c2..z113\0\5
+ ..controls z113\0\6c1 and z113\0\6c2..z113\0\6
+ ..controls z113\0\7c1 and z113\0\7c2..z113\0\7
+ ..controls z113\0\8c1 and z113\0\8c2..z113\0\8
+ ..controls z113\0\9c1 and z113\0\9c2..z113\0\9
+ ..controls z113\0\10c1 and z113\0\10c2..z113\0\10
+ --z113\0\11
+ ..controls z113\0\12c1 and z113\0\12c2..z113\0\12
+ ..controls z113\0\13c1 and z113\0\13c2..z113\0\13
+ ..controls z113\0\14c1 and z113\0\14c2..z113\0\14
+ ..controls z113\0\15c1 and z113\0\15c2..z113\0\15
+ ..controls z113\0\16c1 and z113\0\16c2..z113\0\16
+ ..controls z113\0\17c1 and z113\0\17c2..z113\0\17
+ ..controls z113\0\18c1 and z113\0\18c2..z113\0\18
+ --z113\0\19
+ ..controls z113\0\20c1 and z113\0\20c2..z113\0\20
+ ..controls z113\0\21c1 and z113\0\21c2..z113\0\21
+ ..controls z113\0\22c1 and z113\0\22c2..z113\0\22
+ ..controls z113\0\23c1 and z113\0\23c2..z113\0\23
+ --z113\0\24
+ ..controls z113\0\25c1 and z113\0\25c2..z113\0\25
+ --z113\0\26
+ ..controls z113\0\27c1 and z113\0\27c2..z113\0\27
+ ..controls z113\0\28c1 and z113\0\28c2..z113\0\28
+ ..controls z113\0\29c1 and z113\0\29c2..z113\0\29
+ ..controls z113\0\30c1 and z113\0\30c2..z113\0\30
+ ..controls z113\0\31c1 and z113\0\31c2..z113\0\31
+ --z113\0\32
+ --z113\0\33
+ --z113\0\34
+ ..controls z113\0\35c1 and z113\0\35c2..z113\0\35
+ ..controls z113\0\36c1 and z113\0\36c2..z113\0\36
+ ..controls z113\0\37c1 and z113\0\37c2..z113\0\37
+ ..controls z113\0\38c1 and z113\0\38c2..cycle;
+ fill_or_unfill z113\1\0s
+ ..controls z113\1\0c1 and z113\1\0c2..z113\1\0
+ ..controls z113\1\1c1 and z113\1\1c2..z113\1\1
+ --z113\1\2
+ ..controls z113\1\3c1 and z113\1\3c2..z113\1\3
+ ..controls z113\1\4c1 and z113\1\4c2..z113\1\4
+ ..controls z113\1\5c1 and z113\1\5c2..z113\1\5
+ ..controls z113\1\6c1 and z113\1\6c2..z113\1\6
+ ..controls z113\1\7c1 and z113\1\7c2..z113\1\7
+ ..controls z113\1\8c1 and z113\1\8c2..z113\1\8
+ --z113\1\9
+ ..controls z113\1\10c1 and z113\1\10c2..z113\1\10
+ ..controls z113\1\11c1 and z113\1\11c2..z113\1\11
+ ..controls z113\1\12c1 and z113\1\12c2..z113\1\12
+ ..controls z113\1\13c1 and z113\1\13c2..cycle;
+ proof_labels (
+ 113\0\0,
+ 113\0\1,
+ 113\0\2,
+ 113\0\3,
+ 113\0\4,
+ 113\0\5,
+ 113\0\6,
+ 113\0\7,
+ 113\0\8,
+ 113\0\9,
+ 113\0\10,
+ 113\0\11,
+ 113\0\12,
+ 113\0\13,
+ 113\0\14,
+ 113\0\15,
+ 113\0\16,
+ 113\0\17,
+ 113\0\18,
+ 113\0\19,
+ 113\0\20,
+ 113\0\21,
+ 113\0\22,
+ 113\0\23,
+ 113\0\24,
+ 113\0\25,
+ 113\0\26,
+ 113\0\27,
+ 113\0\28,
+ 113\0\29,
+ 113\0\30,
+ 113\0\31,
+ 113\0\32,
+ 113\0\33,
+ 113\0\34,
+ 113\0\35,
+ 113\0\36,
+ 113\0\37,
+ 113\0\38,
+ 113\1\0,
+ 113\1\1,
+ 113\1\2,
+ 113\1\3,
+ 113\1\4,
+ 113\1\5,
+ 113\1\6,
+ 113\1\7,
+ 113\1\8,
+ 113\1\9,
+ 113\1\10,
+ 113\1\11,
+ 113\1\12,
+ 113\1\13,
+);
+endchar;
+
+beginchar (TIB_SPRA, 10.118u#, 6.745u#, 9.395u#);
+ "spra";
+ z114\0\0s = (0.723u,5.541u);
+ z114\0\0 = (2.168u,5.300u);
+ z114\0\1c1 = (1.665u,4.642u);
+ z114\0\1c2 = (-0.217u,2.229u);
+ z114\0\1 = (0.867u,1.472u);
+ z114\0\2c1 = (1.212u,1.231u);
+ z114\0\2c2 = (1.967u,1.373u);
+ z114\0\2 = (2.409u,1.269u);
+ z114\0\3 = (4.336u,0.482u);
+ z114\0\4c1 = (3.128u,0.063u);
+ z114\0\4c2 = (2.716u,0.156u);
+ z114\0\4 = (2.409u,-1.204u);
+ z114\0\5 = (3.372u,-1.204u);
+ z114\0\6c1 = (2.592u,-2.806u);
+ z114\0\6c2 = (1.858u,-3.416u);
+ z114\0\6 = (1.686u,-5.300u);
+ z114\0\7c1 = (3.561u,-5.052u);
+ z114\0\7c2 = (5.440u,-4.785u);
+ z114\0\7 = (7.226u,-5.600u);
+ z114\0\8c1 = (7.710u,-5.821u);
+ z114\0\8c2 = (8.151u,-6.055u);
+ z114\0\8 = (8.426u,-6.536u);
+ z114\0\9c1 = (8.702u,-7.018u);
+ z114\0\9c2 = (8.665u,-7.653u);
+ z114\0\9 = (8.672u,-8.190u);
+ z114\0\10c1 = (7.985u,-7.633u);
+ z114\0\10c2 = (7.289u,-7.020u);
+ z114\0\10 = (6.504u,-6.615u);
+ z114\0\11c1 = (5.581u,-6.112u);
+ z114\0\11c2 = (3.400u,-5.603u);
+ z114\0\11 = (2.655u,-6.615u);
+ z114\0\12c1 = (2.464u,-6.890u);
+ z114\0\12c2 = (2.462u,-7.166u);
+ z114\0\12 = (2.409u,-7.468u);
+ z114\0\13c1 = (3.681u,-7.468u);
+ z114\0\13c2 = (4.797u,-7.408u);
+ z114\0\13 = (6.022u,-7.840u);
+ z114\0\14c1 = (7.115u,-8.225u);
+ z114\0\14c2 = (8.013u,-8.883u);
+ z114\0\14 = (9.165u,-9.154u);
+ z114\0\15c1 = (9.154u,-7.485u);
+ z114\0\15c2 = (9.062u,-5.758u);
+ z114\0\15 = (9.165u,-4.095u);
+ z114\0\16 = (9.463u,-1.686u);
+ z114\0\17 = (9.587u,-0.503u);
+ z114\0\18c1 = (9.568u,-0.040u);
+ z114\0\18c2 = (9.372u,0.325u);
+ z114\0\18 = (9.215u,0.763u);
+ z114\0\19c1 = (9.137u,1.295u);
+ z114\0\19c2 = (9.140u,1.864u);
+ z114\0\19 = (9.215u,2.409u);
+ z114\0\20c1 = (9.207u,3.457u);
+ z114\0\20c2 = (9.618u,4.504u);
+ z114\0\20 = (9.601u,5.536u);
+ z114\0\21c1 = (9.573u,7.205u);
+ z114\0\21c2 = (7.864u,6.741u);
+ z114\0\21 = (7.647u,5.977u);
+ z114\0\22c1 = (7.480u,5.392u);
+ z114\0\22c2 = (8.208u,4.696u);
+ z114\0\22 = (8.405u,4.086u);
+ z114\0\23 = (8.405u,2.891u);
+ z114\0\24 = (8.672u,1.204u);
+ z114\0\25c1 = (7.163u,2.552u);
+ z114\0\25c2 = (5.911u,4.090u);
+ z114\0\25 = (4.095u,5.059u);
+ z114\0\26c1 = (5.248u,5.485u);
+ z114\0\26c2 = (5.565u,5.451u);
+ z114\0\26 = (5.782u,6.745u);
+ z114\0\27c1 = (4.814u,6.745u);
+ z114\0\27c2 = (2.222u,6.893u);
+ z114\0\27 = (1.478u,6.462u);
+ z114\0\28c1 = (1.060u,6.220u);
+ z114\0\28c2 = (0.937u,5.941u);
+ z114\1\0s = (8.431u,0.241u);
+ z114\1\0c1 = (8.208u,-0.011u);
+ z114\1\0c2 = (8.006u,-0.133u);
+ z114\1\0 = (7.971u,-0.509u);
+ z114\1\1c1 = (7.922u,-1.049u);
+ z114\1\1c2 = (8.450u,-1.833u);
+ z114\1\1 = (8.625u,-2.409u);
+ z114\1\2c1 = (8.778u,-3.307u);
+ z114\1\2c2 = (8.672u,-4.378u);
+ z114\1\2 = (8.625u,-5.300u);
+ z114\1\3c1 = (7.876u,-5.048u);
+ z114\1\3c2 = (7.249u,-4.651u);
+ z114\1\3 = (6.504u,-4.293u);
+ z114\1\4c1 = (5.300u,-3.713u);
+ z114\1\4c2 = (4.442u,-3.625u);
+ z114\1\4 = (3.132u,-3.613u);
+ z114\1\5c1 = (3.383u,-2.293u);
+ z114\1\5c2 = (3.706u,-1.601u);
+ z114\1\5 = (5.059u,-1.194u);
+ z114\1\6c1 = (5.467u,-1.072u);
+ z114\1\6c2 = (5.811u,-1.032u);
+ z114\1\6 = (6.164u,-0.758u);
+ z114\1\7c1 = (6.444u,-0.541u);
+ z114\1\7c2 = (6.565u,-0.289u);
+ z114\1\7 = (6.745u,0.000u);
+ z114\1\8 = (4.577u,0.241u);
+ z114\1\9c1 = (3.962u,1.542u);
+ z114\1\9c2 = (2.944u,2.456u);
+ z114\1\9 = (1.686u,3.132u);
+ z114\1\10c1 = (1.807u,3.472u);
+ z114\1\10c2 = (1.841u,3.778u);
+ z114\1\10 = (2.243u,3.907u);
+ z114\1\11c1 = (3.252u,4.230u);
+ z114\1\11c2 = (6.655u,2.000u);
+ z114\1\11 = (7.457u,1.322u);
+ z114\1\12c1 = (7.852u,0.988u);
+ z114\1\12c2 = (8.124u,0.650u);
+ fill_or_unfill z114\0\0s
+ --z114\0\0
+ ..controls z114\0\1c1 and z114\0\1c2..z114\0\1
+ ..controls z114\0\2c1 and z114\0\2c2..z114\0\2
+ --z114\0\3
+ ..controls z114\0\4c1 and z114\0\4c2..z114\0\4
+ --z114\0\5
+ ..controls z114\0\6c1 and z114\0\6c2..z114\0\6
+ ..controls z114\0\7c1 and z114\0\7c2..z114\0\7
+ ..controls z114\0\8c1 and z114\0\8c2..z114\0\8
+ ..controls z114\0\9c1 and z114\0\9c2..z114\0\9
+ ..controls z114\0\10c1 and z114\0\10c2..z114\0\10
+ ..controls z114\0\11c1 and z114\0\11c2..z114\0\11
+ ..controls z114\0\12c1 and z114\0\12c2..z114\0\12
+ ..controls z114\0\13c1 and z114\0\13c2..z114\0\13
+ ..controls z114\0\14c1 and z114\0\14c2..z114\0\14
+ ..controls z114\0\15c1 and z114\0\15c2..z114\0\15
+ --z114\0\16
+ --z114\0\17
+ ..controls z114\0\18c1 and z114\0\18c2..z114\0\18
+ ..controls z114\0\19c1 and z114\0\19c2..z114\0\19
+ ..controls z114\0\20c1 and z114\0\20c2..z114\0\20
+ ..controls z114\0\21c1 and z114\0\21c2..z114\0\21
+ ..controls z114\0\22c1 and z114\0\22c2..z114\0\22
+ --z114\0\23
+ --z114\0\24
+ ..controls z114\0\25c1 and z114\0\25c2..z114\0\25
+ ..controls z114\0\26c1 and z114\0\26c2..z114\0\26
+ ..controls z114\0\27c1 and z114\0\27c2..z114\0\27
+ ..controls z114\0\28c1 and z114\0\28c2..cycle;
+ fill_or_unfill z114\1\0s
+ ..controls z114\1\0c1 and z114\1\0c2..z114\1\0
+ ..controls z114\1\1c1 and z114\1\1c2..z114\1\1
+ ..controls z114\1\2c1 and z114\1\2c2..z114\1\2
+ ..controls z114\1\3c1 and z114\1\3c2..z114\1\3
+ ..controls z114\1\4c1 and z114\1\4c2..z114\1\4
+ ..controls z114\1\5c1 and z114\1\5c2..z114\1\5
+ ..controls z114\1\6c1 and z114\1\6c2..z114\1\6
+ ..controls z114\1\7c1 and z114\1\7c2..z114\1\7
+ --z114\1\8
+ ..controls z114\1\9c1 and z114\1\9c2..z114\1\9
+ ..controls z114\1\10c1 and z114\1\10c2..z114\1\10
+ ..controls z114\1\11c1 and z114\1\11c2..z114\1\11
+ ..controls z114\1\12c1 and z114\1\12c2..cycle;
+ proof_labels (
+ 114\0\0,
+ 114\0\1,
+ 114\0\2,
+ 114\0\3,
+ 114\0\4,
+ 114\0\5,
+ 114\0\6,
+ 114\0\7,
+ 114\0\8,
+ 114\0\9,
+ 114\0\10,
+ 114\0\11,
+ 114\0\12,
+ 114\0\13,
+ 114\0\14,
+ 114\0\15,
+ 114\0\16,
+ 114\0\17,
+ 114\0\18,
+ 114\0\19,
+ 114\0\20,
+ 114\0\21,
+ 114\0\22,
+ 114\0\23,
+ 114\0\24,
+ 114\0\25,
+ 114\0\26,
+ 114\0\27,
+ 114\0\28,
+ 114\1\0,
+ 114\1\1,
+ 114\1\2,
+ 114\1\3,
+ 114\1\4,
+ 114\1\5,
+ 114\1\6,
+ 114\1\7,
+ 114\1\8,
+ 114\1\9,
+ 114\1\10,
+ 114\1\11,
+ 114\1\12,
+);
+endchar;
+
+beginchar (TIB_SBYA, 10.359u#, 6.745u#, 10.118u#);
+ "sbya";
+ z115\0\0s = (2.168u,5.059u);
+ z115\0\0c1 = (1.285u,3.972u);
+ z115\0\0c2 = (0.742u,3.075u);
+ z115\0\0 = (0.482u,1.686u);
+ z115\0\1c1 = (2.610u,1.638u);
+ z115\0\1c2 = (2.544u,1.225u);
+ z115\0\1 = (4.336u,0.482u);
+ z115\0\2c1 = (3.264u,0.002u);
+ z115\0\2c2 = (2.941u,-0.117u);
+ z115\0\2 = (2.409u,-1.204u);
+ z115\0\3 = (3.372u,-1.445u);
+ z115\0\4 = (2.863u,-2.650u);
+ z115\0\5c1 = (2.677u,-3.036u);
+ z115\0\5c2 = (2.428u,-3.430u);
+ z115\0\5 = (2.337u,-3.853u);
+ z115\0\6c1 = (2.239u,-4.310u);
+ z115\0\6c2 = (2.284u,-4.773u);
+ z115\0\6 = (2.726u,-5.077u);
+ z115\0\7c1 = (3.161u,-5.287u);
+ z115\0\7c2 = (4.067u,-5.084u);
+ z115\0\7 = (4.577u,-5.077u);
+ z115\0\8 = (5.782u,-5.077u);
+ z115\0\9c1 = (6.905u,-5.296u);
+ z115\0\9c2 = (7.883u,-5.820u);
+ z115\0\9 = (8.913u,-6.263u);
+ z115\0\10c1 = (7.558u,-8.700u);
+ z115\0\10c2 = (6.304u,-7.411u);
+ z115\0\10 = (4.336u,-6.875u);
+ z115\0\11c1 = (3.407u,-6.621u);
+ z115\0\11c2 = (2.404u,-6.525u);
+ z115\0\11 = (1.445u,-6.504u);
+ z115\0\12 = (1.817u,-7.187u);
+ z115\0\13c1 = (2.252u,-7.760u);
+ z115\0\13c2 = (4.398u,-9.498u);
+ z115\0\13 = (5.059u,-9.734u);
+ z115\0\14c1 = (5.432u,-9.866u);
+ z115\0\14c2 = (5.871u,-9.875u);
+ z115\0\14 = (6.263u,-9.872u);
+ z115\0\15c1 = (7.800u,-9.861u);
+ z115\0\15c2 = (9.143u,-9.361u);
+ z115\0\15 = (9.877u,-7.950u);
+ z115\0\16c1 = (6.844u,-9.299u);
+ z115\0\16c2 = (5.441u,-9.272u);
+ z115\0\16 = (2.891u,-6.986u);
+ z115\0\17 = (5.059u,-7.803u);
+ z115\0\18c1 = (6.110u,-8.092u);
+ z115\0\18c2 = (8.431u,-8.426u);
+ z115\0\18 = (9.149u,-7.365u);
+ z115\0\19c1 = (9.400u,-6.994u);
+ z115\0\19c2 = (9.386u,-6.453u);
+ z115\0\19 = (9.426u,-6.022u);
+ z115\0\20 = (9.426u,-2.653u);
+ z115\0\21 = (9.606u,-1.548u);
+ z115\0\22c1 = (9.665u,-1.216u);
+ z115\0\22c2 = (9.791u,-0.852u);
+ z115\0\22 = (9.762u,-0.513u);
+ z115\0\23c1 = (9.726u,-0.092u);
+ z115\0\23c2 = (9.514u,0.151u);
+ z115\0\23 = (9.371u,0.522u);
+ z115\0\24c1 = (9.178u,1.024u);
+ z115\0\24c2 = (9.150u,1.395u);
+ z115\0\24 = (9.176u,1.927u);
+ z115\0\25 = (9.456u,4.336u);
+ z115\0\26 = (9.822u,5.541u);
+ z115\0\27c1 = (9.855u,5.947u);
+ z115\0\27c2 = (9.864u,6.333u);
+ z115\0\27 = (9.822u,6.745u);
+ z115\0\28c1 = (9.114u,6.745u);
+ z115\0\28c2 = (7.186u,6.958u);
+ z115\0\28 = (7.714u,5.605u);
+ z115\0\29 = (8.366u,4.327u);
+ z115\0\30 = (8.913u,1.204u);
+ z115\0\31 = (7.205u,2.928u);
+ z115\0\32c1 = (6.378u,3.718u);
+ z115\0\32c2 = (5.508u,4.397u);
+ z115\0\32 = (4.577u,5.059u);
+ z115\0\33c1 = (5.407u,5.532u);
+ z115\0\33c2 = (5.550u,5.675u);
+ z115\0\33 = (6.022u,6.504u);
+ z115\0\34 = (5.300u,6.680u);
+ z115\0\35c1 = (4.818u,6.767u);
+ z115\0\35c2 = (2.127u,6.789u);
+ z115\0\35 = (1.721u,6.680u);
+ z115\0\36c1 = (1.129u,6.494u);
+ z115\0\36c2 = (0.886u,5.983u);
+ z115\0\36 = (1.353u,5.501u);
+ z115\0\37c1 = (1.575u,5.273u);
+ z115\0\37c2 = (1.888u,5.182u);
+ z115\1\0s = (8.672u,0.241u);
+ z115\1\0 = (4.818u,0.241u);
+ z115\1\1c1 = (4.113u,1.759u);
+ z115\1\1c2 = (3.325u,2.315u);
+ z115\1\1 = (1.927u,3.132u);
+ z115\1\2c1 = (2.126u,3.481u);
+ z115\1\2c2 = (2.236u,3.795u);
+ z115\1\2 = (2.682u,3.898u);
+ z115\1\3c1 = (3.271u,4.033u);
+ z115\1\3c2 = (4.075u,3.475u);
+ z115\1\3 = (4.577u,3.206u);
+ z115\1\4c1 = (6.094u,2.391u);
+ z115\1\4c2 = (7.553u,1.584u);
+ z115\2\0s = (8.913u,-5.300u);
+ z115\2\0 = (6.745u,-4.229u);
+ z115\2\1c1 = (5.715u,-3.764u);
+ z115\2\1c2 = (4.490u,-3.638u);
+ z115\2\1 = (3.372u,-3.613u);
+ z115\2\2c1 = (3.579u,-2.915u);
+ z115\2\2c2 = (3.804u,-2.293u);
+ z115\2\2 = (4.387u,-1.809u);
+ z115\2\3c1 = (5.294u,-1.057u);
+ z115\2\3c2 = (7.686u,-0.880u);
+ z115\2\3 = (8.389u,-1.993u);
+ z115\2\4c1 = (8.704u,-2.491u);
+ z115\2\4c2 = (8.883u,-4.634u);
+ fill_or_unfill z115\0\0s
+ ..controls z115\0\0c1 and z115\0\0c2..z115\0\0
+ ..controls z115\0\1c1 and z115\0\1c2..z115\0\1
+ ..controls z115\0\2c1 and z115\0\2c2..z115\0\2
+ --z115\0\3
+ --z115\0\4
+ ..controls z115\0\5c1 and z115\0\5c2..z115\0\5
+ ..controls z115\0\6c1 and z115\0\6c2..z115\0\6
+ ..controls z115\0\7c1 and z115\0\7c2..z115\0\7
+ --z115\0\8
+ ..controls z115\0\9c1 and z115\0\9c2..z115\0\9
+ ..controls z115\0\10c1 and z115\0\10c2..z115\0\10
+ ..controls z115\0\11c1 and z115\0\11c2..z115\0\11
+ --z115\0\12
+ ..controls z115\0\13c1 and z115\0\13c2..z115\0\13
+ ..controls z115\0\14c1 and z115\0\14c2..z115\0\14
+ ..controls z115\0\15c1 and z115\0\15c2..z115\0\15
+ ..controls z115\0\16c1 and z115\0\16c2..z115\0\16
+ --z115\0\17
+ ..controls z115\0\18c1 and z115\0\18c2..z115\0\18
+ ..controls z115\0\19c1 and z115\0\19c2..z115\0\19
+ --z115\0\20
+ --z115\0\21
+ ..controls z115\0\22c1 and z115\0\22c2..z115\0\22
+ ..controls z115\0\23c1 and z115\0\23c2..z115\0\23
+ ..controls z115\0\24c1 and z115\0\24c2..z115\0\24
+ --z115\0\25
+ --z115\0\26
+ ..controls z115\0\27c1 and z115\0\27c2..z115\0\27
+ ..controls z115\0\28c1 and z115\0\28c2..z115\0\28
+ --z115\0\29
+ --z115\0\30
+ --z115\0\31
+ ..controls z115\0\32c1 and z115\0\32c2..z115\0\32
+ ..controls z115\0\33c1 and z115\0\33c2..z115\0\33
+ --z115\0\34
+ ..controls z115\0\35c1 and z115\0\35c2..z115\0\35
+ ..controls z115\0\36c1 and z115\0\36c2..z115\0\36
+ ..controls z115\0\37c1 and z115\0\37c2..cycle;
+ fill_or_unfill z115\1\0s
+ --z115\1\0
+ ..controls z115\1\1c1 and z115\1\1c2..z115\1\1
+ ..controls z115\1\2c1 and z115\1\2c2..z115\1\2
+ ..controls z115\1\3c1 and z115\1\3c2..z115\1\3
+ ..controls z115\1\4c1 and z115\1\4c2..cycle;
+ fill_or_unfill z115\2\0s
+ --z115\2\0
+ ..controls z115\2\1c1 and z115\2\1c2..z115\2\1
+ ..controls z115\2\2c1 and z115\2\2c2..z115\2\2
+ ..controls z115\2\3c1 and z115\2\3c2..z115\2\3
+ ..controls z115\2\4c1 and z115\2\4c2..cycle;
+ proof_labels (
+ 115\0\0,
+ 115\0\1,
+ 115\0\2,
+ 115\0\3,
+ 115\0\4,
+ 115\0\5,
+ 115\0\6,
+ 115\0\7,
+ 115\0\8,
+ 115\0\9,
+ 115\0\10,
+ 115\0\11,
+ 115\0\12,
+ 115\0\13,
+ 115\0\14,
+ 115\0\15,
+ 115\0\16,
+ 115\0\17,
+ 115\0\18,
+ 115\0\19,
+ 115\0\20,
+ 115\0\21,
+ 115\0\22,
+ 115\0\23,
+ 115\0\24,
+ 115\0\25,
+ 115\0\26,
+ 115\0\27,
+ 115\0\28,
+ 115\0\29,
+ 115\0\30,
+ 115\0\31,
+ 115\0\32,
+ 115\0\33,
+ 115\0\34,
+ 115\0\35,
+ 115\0\36,
+ 115\0\37,
+ 115\1\0,
+ 115\1\1,
+ 115\1\2,
+ 115\1\3,
+ 115\1\4,
+ 115\2\0,
+ 115\2\1,
+ 115\2\2,
+ 115\2\3,
+ 115\2\4,
+);
+endchar;
+
+beginchar (TIB_SBRA, 10.118u#, 6.745u#, 8.672u#);
+ "sbra";
+ z116\0\0s = (0.723u,5.300u);
+ z116\0\0 = (1.927u,5.300u);
+ z116\0\1c1 = (1.111u,3.774u);
+ z116\0\1c2 = (0.528u,3.262u);
+ z116\0\1 = (0.482u,1.445u);
+ z116\0\2c1 = (2.509u,1.439u);
+ z116\0\2c2 = (2.745u,1.258u);
+ z116\0\2 = (4.577u,0.482u);
+ z116\0\3c1 = (3.857u,1.999u);
+ z116\0\3c2 = (2.924u,2.490u);
+ z116\0\3 = (1.445u,3.132u);
+ z116\0\4 = (1.927u,4.095u);
+ z116\0\5c1 = (4.323u,3.295u);
+ z116\0\5c2 = (6.776u,2.227u);
+ z116\0\5 = (8.431u,0.241u);
+ z116\0\6c1 = (7.481u,0.241u);
+ z116\0\6c2 = (3.824u,0.405u);
+ z116\0\6 = (3.207u,-0.005u);
+ z116\0\7c1 = (2.758u,-0.304u);
+ z116\0\7c2 = (2.730u,-0.724u);
+ z116\0\7 = (2.650u,-1.204u);
+ z116\0\8 = (3.613u,-1.445u);
+ z116\0\9 = (2.608u,-3.132u);
+ z116\0\10c1 = (2.214u,-3.810u);
+ z116\0\10c2 = (1.397u,-5.469u);
+ z116\0\10 = (2.905u,-5.416u);
+ z116\0\11 = (4.577u,-5.084u);
+ z116\0\12c1 = (5.888u,-4.978u);
+ z116\0\12c2 = (8.229u,-5.546u);
+ z116\0\12 = (8.908u,-6.770u);
+ z116\0\13c1 = (9.118u,-7.148u);
+ z116\0\13c2 = (9.120u,-7.534u);
+ z116\0\13 = (9.154u,-7.950u);
+ z116\0\14c1 = (7.585u,-7.093u);
+ z116\0\14c2 = (5.000u,-5.290u);
+ z116\0\14 = (3.167u,-6.373u);
+ z116\0\15c1 = (2.358u,-6.850u);
+ z116\0\15c2 = (2.451u,-7.401u);
+ z116\0\15 = (2.650u,-8.190u);
+ z116\0\16c1 = (6.391u,-6.785u);
+ z116\0\16c2 = (6.176u,-8.141u);
+ z116\0\16 = (9.395u,-8.431u);
+ z116\0\17 = (9.395u,-2.650u);
+ z116\0\18 = (9.636u,0.241u);
+ z116\0\19 = (8.929u,0.241u);
+ z116\0\20c1 = (8.913u,1.649u);
+ z116\0\20c2 = (8.788u,3.184u);
+ z116\0\20 = (8.929u,4.577u);
+ z116\0\21 = (9.395u,6.745u);
+ z116\0\22c1 = (8.615u,6.742u);
+ z116\0\22c2 = (6.999u,6.907u);
+ z116\0\22 = (7.510u,5.605u);
+ z116\0\23 = (8.159u,4.327u);
+ z116\0\24c1 = (8.438u,3.478u);
+ z116\0\24c2 = (8.506u,2.334u);
+ z116\0\24 = (8.431u,1.445u);
+ z116\0\25c1 = (7.044u,2.829u);
+ z116\0\25c2 = (5.570u,4.095u);
+ z116\0\25 = (3.854u,5.059u);
+ z116\0\26c1 = (4.968u,5.415u);
+ z116\0\26c2 = (5.393u,5.287u);
+ z116\0\26 = (5.782u,6.502u);
+ z116\0\27c1 = (4.908u,6.717u);
+ z116\0\27c2 = (2.033u,6.996u);
+ z116\0\27 = (1.308u,6.502u);
+ z116\0\28c1 = (0.879u,6.204u);
+ z116\0\28c2 = (0.825u,5.765u);
+ z116\1\0s = (8.431u,-1.204u);
+ z116\1\0 = (8.841u,-3.132u);
+ z116\1\1 = (9.154u,-5.782u);
+ z116\1\2 = (7.186u,-4.575u);
+ z116\1\3c1 = (5.837u,-3.822u);
+ z116\1\3c2 = (4.613u,-3.855u);
+ z116\1\3 = (3.132u,-3.854u);
+ z116\1\4c1 = (4.132u,-0.719u);
+ z116\1\4c2 = (5.739u,-1.204u);
+ fill_or_unfill z116\0\0s
+ --z116\0\0
+ ..controls z116\0\1c1 and z116\0\1c2..z116\0\1
+ ..controls z116\0\2c1 and z116\0\2c2..z116\0\2
+ ..controls z116\0\3c1 and z116\0\3c2..z116\0\3
+ --z116\0\4
+ ..controls z116\0\5c1 and z116\0\5c2..z116\0\5
+ ..controls z116\0\6c1 and z116\0\6c2..z116\0\6
+ ..controls z116\0\7c1 and z116\0\7c2..z116\0\7
+ --z116\0\8
+ --z116\0\9
+ ..controls z116\0\10c1 and z116\0\10c2..z116\0\10
+ --z116\0\11
+ ..controls z116\0\12c1 and z116\0\12c2..z116\0\12
+ ..controls z116\0\13c1 and z116\0\13c2..z116\0\13
+ ..controls z116\0\14c1 and z116\0\14c2..z116\0\14
+ ..controls z116\0\15c1 and z116\0\15c2..z116\0\15
+ ..controls z116\0\16c1 and z116\0\16c2..z116\0\16
+ --z116\0\17
+ --z116\0\18
+ --z116\0\19
+ ..controls z116\0\20c1 and z116\0\20c2..z116\0\20
+ --z116\0\21
+ ..controls z116\0\22c1 and z116\0\22c2..z116\0\22
+ --z116\0\23
+ ..controls z116\0\24c1 and z116\0\24c2..z116\0\24
+ ..controls z116\0\25c1 and z116\0\25c2..z116\0\25
+ ..controls z116\0\26c1 and z116\0\26c2..z116\0\26
+ ..controls z116\0\27c1 and z116\0\27c2..z116\0\27
+ ..controls z116\0\28c1 and z116\0\28c2..cycle;
+ fill_or_unfill z116\1\0s
+ --z116\1\0
+ --z116\1\1
+ --z116\1\2
+ ..controls z116\1\3c1 and z116\1\3c2..z116\1\3
+ ..controls z116\1\4c1 and z116\1\4c2..cycle;
+ proof_labels (
+ 116\0\0,
+ 116\0\1,
+ 116\0\2,
+ 116\0\3,
+ 116\0\4,
+ 116\0\5,
+ 116\0\6,
+ 116\0\7,
+ 116\0\8,
+ 116\0\9,
+ 116\0\10,
+ 116\0\11,
+ 116\0\12,
+ 116\0\13,
+ 116\0\14,
+ 116\0\15,
+ 116\0\16,
+ 116\0\17,
+ 116\0\18,
+ 116\0\19,
+ 116\0\20,
+ 116\0\21,
+ 116\0\22,
+ 116\0\23,
+ 116\0\24,
+ 116\0\25,
+ 116\0\26,
+ 116\0\27,
+ 116\0\28,
+ 116\1\0,
+ 116\1\1,
+ 116\1\2,
+ 116\1\3,
+ 116\1\4,
+);
+endchar;
+
+beginchar (TIB_RMYA, 10.359u#, 6.745u#, 7.950u#);
+ "rmya";
+ z117\0\0s = (1.686u,5.300u);
+ z117\0\0 = (3.854u,5.300u);
+ z117\0\1c1 = (3.231u,3.348u);
+ z117\0\1c2 = (2.179u,4.870u);
+ z117\0\1 = (1.445u,2.891u);
+ z117\0\2c1 = (2.474u,2.511u);
+ z117\0\2c2 = (2.779u,2.551u);
+ z117\0\2 = (3.132u,1.445u);
+ z117\0\3c1 = (2.086u,1.370u);
+ z117\0\3c2 = (1.428u,1.215u);
+ z117\0\3 = (0.888u,0.219u);
+ z117\0\4c1 = (-0.527u,-2.393u);
+ z117\0\4c2 = (3.182u,-4.130u);
+ z117\0\4 = (4.158u,-1.682u);
+ z117\0\5c1 = (4.359u,-1.178u);
+ z117\0\5c2 = (4.331u,-0.536u);
+ z117\0\5 = (4.336u,0.000u);
+ z117\0\6c1 = (5.592u,-0.671u);
+ z117\0\6c2 = (10.020u,-2.542u);
+ z117\0\6 = (7.894u,-4.424u);
+ z117\0\7c1 = (7.249u,-4.995u);
+ z117\0\7c2 = (5.920u,-5.476u);
+ z117\0\7 = (5.059u,-5.509u);
+ z117\0\8c1 = (3.822u,-5.556u);
+ z117\0\8c2 = (2.634u,-5.071u);
+ z117\0\8 = (1.445u,-4.818u);
+ z117\0\9c1 = (1.679u,-5.639u);
+ z117\0\9c2 = (1.921u,-6.040u);
+ z117\0\9 = (2.506u,-6.673u);
+ z117\0\10c1 = (2.767u,-6.955u);
+ z117\0\10c2 = (3.135u,-7.321u);
+ z117\0\10 = (3.478u,-7.495u);
+ z117\0\11c1 = (3.840u,-7.679u);
+ z117\0\11c2 = (4.185u,-7.692u);
+ z117\0\11 = (4.580u,-7.671u);
+ z117\0\12c1 = (4.969u,-7.717u);
+ z117\0\12c2 = (5.401u,-7.721u);
+ z117\0\12 = (5.782u,-7.671u);
+ z117\0\13c1 = (6.999u,-7.368u);
+ z117\0\13c2 = (8.418u,-6.270u);
+ z117\0\13 = (9.154u,-5.300u);
+ z117\0\14c1 = (7.631u,-5.935u);
+ z117\0\14c2 = (6.105u,-7.332u);
+ z117\0\14 = (4.336u,-6.830u);
+ z117\0\15 = (2.409u,-6.022u);
+ z117\0\16c1 = (3.924u,-5.592u);
+ z117\0\16c2 = (5.476u,-5.978u);
+ z117\0\16 = (6.986u,-5.487u);
+ z117\0\17c1 = (7.761u,-5.235u);
+ z117\0\17c2 = (8.476u,-4.830u);
+ z117\0\17 = (8.871u,-4.085u);
+ z117\0\18c1 = (8.992u,-3.857u);
+ z117\0\18c2 = (9.053u,-3.624u);
+ z117\0\18 = (9.138u,-3.372u);
+ z117\0\19 = (9.138u,-2.168u);
+ z117\0\20 = (9.435u,0.482u);
+ z117\0\21 = (9.877u,4.095u);
+ z117\0\22c1 = (9.403u,4.089u);
+ z117\0\22c2 = (8.511u,4.157u);
+ z117\0\22 = (8.209u,3.710u);
+ z117\0\23c1 = (7.870u,3.210u);
+ z117\0\23c2 = (8.357u,2.427u);
+ z117\0\23 = (8.509u,1.927u);
+ z117\0\24 = (8.668u,1.204u);
+ z117\0\25c1 = (8.879u,-0.019u);
+ z117\0\25c2 = (8.913u,-1.172u);
+ z117\0\25 = (8.913u,-2.409u);
+ z117\0\26c1 = (8.174u,-1.365u);
+ z117\0\26c2 = (7.280u,-0.397u);
+ z117\0\26 = (6.263u,0.388u);
+ z117\0\27c1 = (5.552u,0.937u);
+ z117\0\27c2 = (4.322u,1.242u);
+ z117\0\27 = (3.855u,1.980u);
+ z117\0\28c1 = (3.713u,2.204u);
+ z117\0\28c2 = (3.689u,2.409u);
+ z117\0\28 = (3.613u,2.650u);
+ z117\0\29c1 = (5.186u,2.650u);
+ z117\0\29c2 = (6.133u,2.361u);
+ z117\0\29 = (6.745u,4.095u);
+ z117\0\30 = (4.336u,4.095u);
+ z117\0\31 = (4.336u,5.300u);
+ z117\0\32c1 = (5.674u,5.334u);
+ z117\0\32c2 = (6.183u,5.324u);
+ z117\0\32 = (6.504u,6.745u);
+ z117\0\33c1 = (5.575u,6.745u);
+ z117\0\33c2 = (2.713u,6.978u);
+ z117\0\33 = (2.105u,6.360u);
+ z117\0\34c1 = (1.810u,6.061u);
+ z117\0\34c2 = (1.771u,5.685u);
+ z117\1\0s = (1.982u,0.096u);
+ z117\1\0c1 = (4.506u,0.649u);
+ z117\1\0c2 = (4.445u,-1.715u);
+ z117\1\0 = (3.106u,-2.227u);
+ z117\1\1c1 = (1.924u,-2.679u);
+ z117\1\1c2 = (0.796u,-1.394u);
+ z117\1\1 = (1.488u,-0.316u);
+ z117\1\2c1 = (1.638u,-0.083u);
+ z117\1\2c2 = (1.775u,-0.053u);
+ fill_or_unfill z117\0\0s
+ --z117\0\0
+ ..controls z117\0\1c1 and z117\0\1c2..z117\0\1
+ ..controls z117\0\2c1 and z117\0\2c2..z117\0\2
+ ..controls z117\0\3c1 and z117\0\3c2..z117\0\3
+ ..controls z117\0\4c1 and z117\0\4c2..z117\0\4
+ ..controls z117\0\5c1 and z117\0\5c2..z117\0\5
+ ..controls z117\0\6c1 and z117\0\6c2..z117\0\6
+ ..controls z117\0\7c1 and z117\0\7c2..z117\0\7
+ ..controls z117\0\8c1 and z117\0\8c2..z117\0\8
+ ..controls z117\0\9c1 and z117\0\9c2..z117\0\9
+ ..controls z117\0\10c1 and z117\0\10c2..z117\0\10
+ ..controls z117\0\11c1 and z117\0\11c2..z117\0\11
+ ..controls z117\0\12c1 and z117\0\12c2..z117\0\12
+ ..controls z117\0\13c1 and z117\0\13c2..z117\0\13
+ ..controls z117\0\14c1 and z117\0\14c2..z117\0\14
+ --z117\0\15
+ ..controls z117\0\16c1 and z117\0\16c2..z117\0\16
+ ..controls z117\0\17c1 and z117\0\17c2..z117\0\17
+ ..controls z117\0\18c1 and z117\0\18c2..z117\0\18
+ --z117\0\19
+ --z117\0\20
+ --z117\0\21
+ ..controls z117\0\22c1 and z117\0\22c2..z117\0\22
+ ..controls z117\0\23c1 and z117\0\23c2..z117\0\23
+ --z117\0\24
+ ..controls z117\0\25c1 and z117\0\25c2..z117\0\25
+ ..controls z117\0\26c1 and z117\0\26c2..z117\0\26
+ ..controls z117\0\27c1 and z117\0\27c2..z117\0\27
+ ..controls z117\0\28c1 and z117\0\28c2..z117\0\28
+ ..controls z117\0\29c1 and z117\0\29c2..z117\0\29
+ --z117\0\30
+ --z117\0\31
+ ..controls z117\0\32c1 and z117\0\32c2..z117\0\32
+ ..controls z117\0\33c1 and z117\0\33c2..z117\0\33
+ ..controls z117\0\34c1 and z117\0\34c2..cycle;
+ fill_or_unfill z117\1\0s
+ ..controls z117\1\0c1 and z117\1\0c2..z117\1\0
+ ..controls z117\1\1c1 and z117\1\1c2..z117\1\1
+ ..controls z117\1\2c1 and z117\1\2c2..cycle;
+ proof_labels (
+ 117\0\0,
+ 117\0\1,
+ 117\0\2,
+ 117\0\3,
+ 117\0\4,
+ 117\0\5,
+ 117\0\6,
+ 117\0\7,
+ 117\0\8,
+ 117\0\9,
+ 117\0\10,
+ 117\0\11,
+ 117\0\12,
+ 117\0\13,
+ 117\0\14,
+ 117\0\15,
+ 117\0\16,
+ 117\0\17,
+ 117\0\18,
+ 117\0\19,
+ 117\0\20,
+ 117\0\21,
+ 117\0\22,
+ 117\0\23,
+ 117\0\24,
+ 117\0\25,
+ 117\0\26,
+ 117\0\27,
+ 117\0\28,
+ 117\0\29,
+ 117\0\30,
+ 117\0\31,
+ 117\0\32,
+ 117\0\33,
+ 117\0\34,
+ 117\1\0,
+ 117\1\1,
+ 117\1\2,
+);
+endchar;
+
+beginchar (TIB_SMYA, 10.600u#, 6.745u#, 9.636u#);
+ "smya";
+ z118\0\0s = (0.964u,5.300u);
+ z118\0\0 = (2.168u,5.300u);
+ z118\0\1c1 = (1.730u,4.601u);
+ z118\0\1c2 = (0.685u,2.946u);
+ z118\0\1 = (0.675u,2.168u);
+ z118\0\2c1 = (0.608u,1.892u);
+ z118\0\2c2 = (0.676u,1.705u);
+ z118\0\2 = (0.675u,1.445u);
+ z118\0\3c1 = (2.476u,1.721u);
+ z118\0\3c2 = (2.945u,1.389u);
+ z118\0\3 = (4.577u,0.964u);
+ z118\0\4c1 = (3.102u,0.544u);
+ z118\0\4c2 = (2.000u,1.147u);
+ z118\0\4 = (1.686u,-0.723u);
+ z118\0\5c1 = (2.832u,-0.855u);
+ z118\0\5c2 = (3.126u,-1.028u);
+ z118\0\5 = (3.854u,-1.927u);
+ z118\0\6c1 = (3.355u,-2.079u);
+ z118\0\6c2 = (2.681u,-2.224u);
+ z118\0\6 = (2.291u,-2.583u);
+ z118\0\7c1 = (1.551u,-3.263u);
+ z118\0\7c2 = (1.528u,-4.931u);
+ z118\0\7 = (2.291u,-5.604u);
+ z118\0\8c1 = (3.075u,-6.295u);
+ z118\0\8c2 = (4.514u,-6.002u);
+ z118\0\8 = (4.915u,-5.033u);
+ z118\0\9c1 = (5.078u,-4.640u);
+ z118\0\9c2 = (5.053u,-4.039u);
+ z118\0\9 = (5.059u,-3.613u);
+ z118\0\10c1 = (6.311u,-3.719u);
+ z118\0\10c2 = (7.997u,-4.078u);
+ z118\0\10 = (8.845u,-5.090u);
+ z118\0\11c1 = (9.069u,-5.357u);
+ z118\0\11c2 = (9.258u,-5.652u);
+ z118\0\11 = (9.212u,-6.018u);
+ z118\0\12c1 = (9.148u,-6.530u);
+ z118\0\12c2 = (8.636u,-6.913u);
+ z118\0\12 = (8.189u,-7.083u);
+ z118\0\13c1 = (7.036u,-7.521u);
+ z118\0\13c2 = (3.374u,-6.812u);
+ z118\0\13 = (1.927u,-6.745u);
+ z118\0\14 = (2.298u,-7.418u);
+ z118\0\15c1 = (2.680u,-7.898u);
+ z118\0\15c2 = (4.241u,-9.006u);
+ z118\0\15 = (4.818u,-9.218u);
+ z118\0\16c1 = (5.281u,-9.389u);
+ z118\0\16c2 = (5.777u,-9.388u);
+ z118\0\16 = (6.263u,-9.394u);
+ z118\0\17c1 = (7.944u,-9.414u);
+ z118\0\17c2 = (9.563u,-9.011u);
+ z118\0\17 = (10.118u,-7.227u);
+ z118\0\18c1 = (9.487u,-7.643u);
+ z118\0\18c2 = (8.878u,-8.133u);
+ z118\0\18 = (8.190u,-8.451u);
+ z118\0\19c1 = (6.475u,-9.245u);
+ z118\0\19c2 = (4.781u,-8.601u);
+ z118\0\19 = (3.613u,-7.227u);
+ z118\0\20c1 = (5.090u,-7.360u);
+ z118\0\20c2 = (7.258u,-8.174u);
+ z118\0\20 = (8.662u,-7.426u);
+ z118\0\21c1 = (10.304u,-6.551u);
+ z118\0\21c2 = (9.859u,-4.213u);
+ z118\0\21 = (9.878u,-2.650u);
+ z118\0\22 = (10.081u,-0.021u);
+ z118\0\23 = (9.680u,1.467u);
+ z118\0\24c1 = (9.603u,2.003u);
+ z118\0\24c2 = (9.631u,2.588u);
+ z118\0\24 = (9.680u,3.132u);
+ z118\0\25 = (9.680u,4.336u);
+ z118\0\26c1 = (9.759u,4.802u);
+ z118\0\26c2 = (9.890u,5.297u);
+ z118\0\26 = (9.832u,5.768u);
+ z118\0\27c1 = (9.807u,5.978u);
+ z118\0\27c2 = (9.766u,6.189u);
+ z118\0\27 = (9.630u,6.360u);
+ z118\0\28c1 = (9.322u,6.751u);
+ z118\0\28c2 = (8.507u,6.815u);
+ z118\0\28 = (8.221u,6.360u);
+ z118\0\29c1 = (7.866u,5.793u);
+ z118\0\29c2 = (8.776u,4.476u);
+ z118\0\29 = (8.962u,3.854u);
+ z118\0\30c1 = (9.129u,3.295u);
+ z118\0\30c2 = (9.141u,2.745u);
+ z118\0\30 = (9.154u,2.168u);
+ z118\0\31c1 = (7.337u,2.840u);
+ z118\0\31c2 = (5.843u,4.207u);
+ z118\0\31 = (4.095u,5.059u);
+ z118\0\32 = (5.264u,5.365u);
+ z118\0\33c1 = (5.895u,5.597u);
+ z118\0\33c2 = (6.178u,6.249u);
+ z118\0\33 = (5.464u,6.550u);
+ z118\0\34c1 = (4.922u,6.869u);
+ z118\0\34c2 = (2.245u,6.808u);
+ z118\0\34 = (1.721u,6.550u);
+ z118\0\35c1 = (1.219u,6.203u);
+ z118\0\35c2 = (1.120u,5.814u);
+ z118\1\0s = (9.395u,0.723u);
+ z118\1\0c1 = (8.988u,0.592u);
+ z118\1\0c2 = (8.499u,0.499u);
+ z118\1\0 = (8.409u,-0.014u);
+ z118\1\1c1 = (8.333u,-0.451u);
+ z118\1\1c2 = (8.748u,-0.878u);
+ z118\1\1 = (8.931u,-1.245u);
+ z118\1\2c1 = (9.081u,-1.546u);
+ z118\1\2c2 = (9.171u,-1.842u);
+ z118\1\2 = (9.242u,-2.169u);
+ z118\1\3c1 = (9.416u,-2.962u);
+ z118\1\3c2 = (9.394u,-3.770u);
+ z118\1\3 = (9.395u,-4.577u);
+ z118\1\4 = (7.468u,-3.210u);
+ z118\1\5 = (6.263u,-2.564u);
+ z118\1\6c1 = (5.800u,-2.354u);
+ z118\1\6c2 = (4.877u,-2.173u);
+ z118\1\6 = (4.582u,-1.786u);
+ z118\1\7c1 = (4.349u,-1.479u);
+ z118\1\7c2 = (4.366u,-1.084u);
+ z118\1\7 = (4.336u,-0.723u);
+ z118\1\8c1 = (5.678u,-0.614u);
+ z118\1\8c2 = (5.951u,-0.348u);
+ z118\1\8 = (6.745u,0.723u);
+ z118\1\9c1 = (6.277u,0.724u);
+ z118\1\9c2 = (5.555u,0.684u);
+ z118\1\9 = (5.127u,0.861u);
+ z118\1\10c1 = (4.551u,1.098u);
+ z118\1\10c2 = (4.098u,1.692u);
+ z118\1\10 = (3.610u,2.076u);
+ z118\1\11c1 = (3.016u,2.542u);
+ z118\1\11c2 = (2.373u,2.834u);
+ z118\1\11 = (1.686u,3.132u);
+ z118\1\12 = (1.686u,3.613u);
+ z118\1\13c1 = (2.114u,3.777u);
+ z118\1\13c2 = (2.421u,3.898u);
+ z118\1\13 = (2.891u,3.900u);
+ z118\1\14c1 = (4.185u,3.905u);
+ z118\1\14c2 = (7.873u,2.318u);
+ z118\1\14 = (8.842u,1.469u);
+ z118\1\15c1 = (9.117u,1.229u);
+ z118\1\15c2 = (9.220u,1.027u);
+ z118\2\0s = (3.610u,-3.490u);
+ z118\2\0c1 = (3.860u,-3.526u);
+ z118\2\0c2 = (4.024u,-3.484u);
+ z118\2\0 = (4.260u,-3.628u);
+ z118\2\1c1 = (5.098u,-4.140u);
+ z118\2\1c2 = (4.631u,-5.518u);
+ z118\2\1 = (3.607u,-5.596u);
+ z118\2\2c1 = (2.498u,-5.679u);
+ z118\2\2c2 = (1.794u,-4.328u);
+ z118\2\2 = (2.927u,-3.690u);
+ z118\2\3c1 = (3.163u,-3.557u);
+ z118\2\3c2 = (3.359u,-3.551u);
+ fill_or_unfill z118\0\0s
+ --z118\0\0
+ ..controls z118\0\1c1 and z118\0\1c2..z118\0\1
+ ..controls z118\0\2c1 and z118\0\2c2..z118\0\2
+ ..controls z118\0\3c1 and z118\0\3c2..z118\0\3
+ ..controls z118\0\4c1 and z118\0\4c2..z118\0\4
+ ..controls z118\0\5c1 and z118\0\5c2..z118\0\5
+ ..controls z118\0\6c1 and z118\0\6c2..z118\0\6
+ ..controls z118\0\7c1 and z118\0\7c2..z118\0\7
+ ..controls z118\0\8c1 and z118\0\8c2..z118\0\8
+ ..controls z118\0\9c1 and z118\0\9c2..z118\0\9
+ ..controls z118\0\10c1 and z118\0\10c2..z118\0\10
+ ..controls z118\0\11c1 and z118\0\11c2..z118\0\11
+ ..controls z118\0\12c1 and z118\0\12c2..z118\0\12
+ ..controls z118\0\13c1 and z118\0\13c2..z118\0\13
+ --z118\0\14
+ ..controls z118\0\15c1 and z118\0\15c2..z118\0\15
+ ..controls z118\0\16c1 and z118\0\16c2..z118\0\16
+ ..controls z118\0\17c1 and z118\0\17c2..z118\0\17
+ ..controls z118\0\18c1 and z118\0\18c2..z118\0\18
+ ..controls z118\0\19c1 and z118\0\19c2..z118\0\19
+ ..controls z118\0\20c1 and z118\0\20c2..z118\0\20
+ ..controls z118\0\21c1 and z118\0\21c2..z118\0\21
+ --z118\0\22
+ --z118\0\23
+ ..controls z118\0\24c1 and z118\0\24c2..z118\0\24
+ --z118\0\25
+ ..controls z118\0\26c1 and z118\0\26c2..z118\0\26
+ ..controls z118\0\27c1 and z118\0\27c2..z118\0\27
+ ..controls z118\0\28c1 and z118\0\28c2..z118\0\28
+ ..controls z118\0\29c1 and z118\0\29c2..z118\0\29
+ ..controls z118\0\30c1 and z118\0\30c2..z118\0\30
+ ..controls z118\0\31c1 and z118\0\31c2..z118\0\31
+ --z118\0\32
+ ..controls z118\0\33c1 and z118\0\33c2..z118\0\33
+ ..controls z118\0\34c1 and z118\0\34c2..z118\0\34
+ ..controls z118\0\35c1 and z118\0\35c2..cycle;
+ fill_or_unfill z118\1\0s
+ ..controls z118\1\0c1 and z118\1\0c2..z118\1\0
+ ..controls z118\1\1c1 and z118\1\1c2..z118\1\1
+ ..controls z118\1\2c1 and z118\1\2c2..z118\1\2
+ ..controls z118\1\3c1 and z118\1\3c2..z118\1\3
+ --z118\1\4
+ --z118\1\5
+ ..controls z118\1\6c1 and z118\1\6c2..z118\1\6
+ ..controls z118\1\7c1 and z118\1\7c2..z118\1\7
+ ..controls z118\1\8c1 and z118\1\8c2..z118\1\8
+ ..controls z118\1\9c1 and z118\1\9c2..z118\1\9
+ ..controls z118\1\10c1 and z118\1\10c2..z118\1\10
+ ..controls z118\1\11c1 and z118\1\11c2..z118\1\11
+ --z118\1\12
+ ..controls z118\1\13c1 and z118\1\13c2..z118\1\13
+ ..controls z118\1\14c1 and z118\1\14c2..z118\1\14
+ ..controls z118\1\15c1 and z118\1\15c2..cycle;
+ fill_or_unfill z118\2\0s
+ ..controls z118\2\0c1 and z118\2\0c2..z118\2\0
+ ..controls z118\2\1c1 and z118\2\1c2..z118\2\1
+ ..controls z118\2\2c1 and z118\2\2c2..z118\2\2
+ ..controls z118\2\3c1 and z118\2\3c2..cycle;
+ proof_labels (
+ 118\0\0,
+ 118\0\1,
+ 118\0\2,
+ 118\0\3,
+ 118\0\4,
+ 118\0\5,
+ 118\0\6,
+ 118\0\7,
+ 118\0\8,
+ 118\0\9,
+ 118\0\10,
+ 118\0\11,
+ 118\0\12,
+ 118\0\13,
+ 118\0\14,
+ 118\0\15,
+ 118\0\16,
+ 118\0\17,
+ 118\0\18,
+ 118\0\19,
+ 118\0\20,
+ 118\0\21,
+ 118\0\22,
+ 118\0\23,
+ 118\0\24,
+ 118\0\25,
+ 118\0\26,
+ 118\0\27,
+ 118\0\28,
+ 118\0\29,
+ 118\0\30,
+ 118\0\31,
+ 118\0\32,
+ 118\0\33,
+ 118\0\34,
+ 118\0\35,
+ 118\1\0,
+ 118\1\1,
+ 118\1\2,
+ 118\1\3,
+ 118\1\4,
+ 118\1\5,
+ 118\1\6,
+ 118\1\7,
+ 118\1\8,
+ 118\1\9,
+ 118\1\10,
+ 118\1\11,
+ 118\1\12,
+ 118\1\13,
+ 118\1\14,
+ 118\1\15,
+ 118\2\0,
+ 118\2\1,
+ 118\2\2,
+ 118\2\3,
+);
+endchar;
+
+beginchar (TIB_SMRA, 11.081u#, 6.745u#, 8.913u#);
+ "smra";
+ z119\0\0s = (1.204u,5.300u);
+ z119\0\0 = (2.409u,5.300u);
+ z119\0\1c1 = (1.804u,4.060u);
+ z119\0\1c2 = (0.843u,3.019u);
+ z119\0\1 = (0.482u,1.630u);
+ z119\0\2c1 = (1.206u,1.686u);
+ z119\0\2c2 = (1.934u,1.708u);
+ z119\0\2 = (2.650u,1.630u);
+ z119\0\3 = (4.818u,0.964u);
+ z119\0\4c1 = (4.513u,1.378u);
+ z119\0\4c2 = (4.243u,1.739u);
+ z119\0\4 = (3.844u,2.075u);
+ z119\0\5 = (1.686u,3.613u);
+ z119\0\6c1 = (2.096u,3.733u);
+ z119\0\6c2 = (2.456u,3.850u);
+ z119\0\6 = (2.891u,3.844u);
+ z119\0\7c1 = (3.491u,3.835u);
+ z119\0\7c2 = (4.252u,3.565u);
+ z119\0\7 = (4.818u,3.360u);
+ z119\0\8c1 = (6.591u,2.716u);
+ z119\0\8c2 = (8.170u,1.923u);
+ z119\0\8 = (9.636u,0.723u);
+ z119\0\9c1 = (9.221u,0.578u);
+ z119\0\9c2 = (8.858u,0.501u);
+ z119\0\9 = (8.779u,-0.014u);
+ z119\0\10c1 = (8.698u,-0.532u);
+ z119\0\10c2 = (9.196u,-1.170u);
+ z119\0\10 = (9.326u,-1.696u);
+ z119\0\11c1 = (9.529u,-2.515u);
+ z119\0\11c2 = (9.597u,-3.493u);
+ z119\0\11 = (9.636u,-4.336u);
+ z119\0\12c1 = (8.774u,-3.732u);
+ z119\0\12c2 = (7.919u,-3.152u);
+ z119\0\12 = (6.986u,-2.659u);
+ z119\0\13c1 = (5.739u,-2.001u);
+ z119\0\13c2 = (5.191u,-2.237u);
+ z119\0\13 = (4.336u,-0.964u);
+ z119\0\14 = (5.537u,-0.719u);
+ z119\0\15c1 = (5.754u,-0.676u);
+ z119\0\15c2 = (5.992u,-0.651u);
+ z119\0\15 = (6.189u,-0.546u);
+ z119\0\16c1 = (6.732u,-0.262u);
+ z119\0\16c2 = (6.746u,0.309u);
+ z119\0\16 = (6.189u,0.599u);
+ z119\0\17c1 = (5.739u,0.796u);
+ z119\0\17c2 = (2.942u,0.780u);
+ z119\0\17 = (2.441u,0.599u);
+ z119\0\18c1 = (2.232u,0.552u);
+ z119\0\18c2 = (2.068u,0.479u);
+ z119\0\18 = (1.925u,0.304u);
+ z119\0\19c1 = (1.692u,0.015u);
+ z119\0\19c2 = (1.714u,-0.377u);
+ z119\0\19 = (1.686u,-0.723u);
+ z119\0\20c1 = (2.981u,-0.827u);
+ z119\0\20c2 = (3.152u,-1.060u);
+ z119\0\20 = (4.095u,-1.927u);
+ z119\0\21c1 = (3.600u,-1.980u);
+ z119\0\21c2 = (3.139u,-2.019u);
+ z119\0\21 = (2.695u,-2.277u);
+ z119\0\22c1 = (1.043u,-3.237u);
+ z119\0\22c2 = (1.558u,-5.938u);
+ z119\0\22 = (3.613u,-5.895u);
+ z119\0\23c1 = (4.124u,-5.884u);
+ z119\0\23c2 = (4.537u,-5.685u);
+ z119\0\23 = (4.814u,-5.245u);
+ z119\0\24c1 = (5.099u,-4.791u);
+ z119\0\24c2 = (5.166u,-3.914u);
+ z119\0\24 = (5.300u,-3.372u);
+ z119\0\25c1 = (6.720u,-3.784u);
+ z119\0\25c2 = (9.057u,-4.135u);
+ z119\0\25 = (9.584u,-5.791u);
+ z119\0\26c1 = (9.695u,-6.359u);
+ z119\0\26c2 = (9.636u,-7.338u);
+ z119\0\26 = (9.584u,-7.950u);
+ z119\0\27c1 = (9.014u,-7.483u);
+ z119\0\27c2 = (8.424u,-7.029u);
+ z119\0\27 = (7.705u,-6.716u);
+ z119\0\28c1 = (6.504u,-6.193u);
+ z119\0\28c2 = (3.946u,-5.864u);
+ z119\0\28 = (3.035u,-7.040u);
+ z119\0\29c1 = (2.753u,-7.405u);
+ z119\0\29c2 = (2.720u,-7.758u);
+ z119\0\29 = (2.650u,-8.190u);
+ z119\0\30c1 = (3.892u,-8.079u);
+ z119\0\30c2 = (4.993u,-7.663u);
+ z119\0\30 = (6.263u,-7.718u);
+ z119\0\31c1 = (7.625u,-7.778u);
+ z119\0\31c2 = (8.794u,-8.433u);
+ z119\0\31 = (10.128u,-8.672u);
+ z119\0\32c1 = (10.118u,-6.769u);
+ z119\0\32c2 = (10.001u,-4.785u);
+ z119\0\32 = (10.128u,-2.891u);
+ z119\0\33c1 = (10.204u,-2.005u);
+ z119\0\33c2 = (10.582u,-1.122u);
+ z119\0\33 = (10.547u,-0.241u);
+ z119\0\34c1 = (10.528u,0.269u);
+ z119\0\34c2 = (10.331u,0.714u);
+ z119\0\34 = (10.175u,1.204u);
+ z119\0\35c1 = (10.124u,1.687u);
+ z119\0\35c2 = (10.121u,2.159u);
+ z119\0\35 = (10.175u,2.650u);
+ z119\0\36c1 = (10.115u,3.205u);
+ z119\0\36c2 = (10.090u,3.787u);
+ z119\0\36 = (10.175u,4.336u);
+ z119\0\37 = (10.545u,5.541u);
+ z119\0\38c1 = (10.577u,5.947u);
+ z119\0\38c2 = (10.587u,6.333u);
+ z119\0\38 = (10.545u,6.745u);
+ z119\0\39c1 = (9.691u,6.742u);
+ z119\0\39c2 = (8.026u,6.843u);
+ z119\0\39 = (8.669u,5.367u);
+ z119\0\40 = (9.389u,4.086u);
+ z119\0\41c1 = (9.664u,3.334u);
+ z119\0\41c2 = (9.633u,2.476u);
+ z119\0\41 = (9.636u,1.686u);
+ z119\0\42 = (6.504u,3.730u);
+ z119\0\43c1 = (5.759u,4.228u);
+ z119\0\43c2 = (5.163u,4.610u);
+ z119\0\43 = (4.577u,5.300u);
+ z119\0\44c1 = (5.106u,5.307u);
+ z119\0\44c2 = (6.353u,5.214u);
+ z119\0\44 = (6.353u,6.022u);
+ z119\0\45c1 = (6.353u,6.301u);
+ z119\0\45c2 = (6.183u,6.484u);
+ z119\0\45 = (5.946u,6.550u);
+ z119\0\46c1 = (5.400u,6.871u);
+ z119\0\46c2 = (2.490u,6.810u);
+ z119\0\46 = (1.962u,6.550u);
+ z119\0\47c1 = (1.460u,6.203u);
+ z119\0\47c2 = (1.361u,5.814u);
+ z119\1\0s = (3.613u,-3.497u);
+ z119\1\0c1 = (3.848u,-3.476u);
+ z119\1\0c2 = (4.029u,-3.427u);
+ z119\1\0 = (4.260u,-3.497u);
+ z119\1\1c1 = (5.095u,-3.882u);
+ z119\1\1c2 = (4.761u,-5.237u);
+ z119\1\1 = (3.832u,-5.411u);
+ z119\1\2c1 = (2.786u,-5.608u);
+ z119\1\2c2 = (1.868u,-4.353u);
+ z119\1\2 = (2.949u,-3.689u);
+ z119\1\3c1 = (3.170u,-3.554u);
+ z119\1\3c2 = (3.374u,-3.537u);
+ fill_or_unfill z119\0\0s
+ --z119\0\0
+ ..controls z119\0\1c1 and z119\0\1c2..z119\0\1
+ ..controls z119\0\2c1 and z119\0\2c2..z119\0\2
+ --z119\0\3
+ ..controls z119\0\4c1 and z119\0\4c2..z119\0\4
+ --z119\0\5
+ ..controls z119\0\6c1 and z119\0\6c2..z119\0\6
+ ..controls z119\0\7c1 and z119\0\7c2..z119\0\7
+ ..controls z119\0\8c1 and z119\0\8c2..z119\0\8
+ ..controls z119\0\9c1 and z119\0\9c2..z119\0\9
+ ..controls z119\0\10c1 and z119\0\10c2..z119\0\10
+ ..controls z119\0\11c1 and z119\0\11c2..z119\0\11
+ ..controls z119\0\12c1 and z119\0\12c2..z119\0\12
+ ..controls z119\0\13c1 and z119\0\13c2..z119\0\13
+ --z119\0\14
+ ..controls z119\0\15c1 and z119\0\15c2..z119\0\15
+ ..controls z119\0\16c1 and z119\0\16c2..z119\0\16
+ ..controls z119\0\17c1 and z119\0\17c2..z119\0\17
+ ..controls z119\0\18c1 and z119\0\18c2..z119\0\18
+ ..controls z119\0\19c1 and z119\0\19c2..z119\0\19
+ ..controls z119\0\20c1 and z119\0\20c2..z119\0\20
+ ..controls z119\0\21c1 and z119\0\21c2..z119\0\21
+ ..controls z119\0\22c1 and z119\0\22c2..z119\0\22
+ ..controls z119\0\23c1 and z119\0\23c2..z119\0\23
+ ..controls z119\0\24c1 and z119\0\24c2..z119\0\24
+ ..controls z119\0\25c1 and z119\0\25c2..z119\0\25
+ ..controls z119\0\26c1 and z119\0\26c2..z119\0\26
+ ..controls z119\0\27c1 and z119\0\27c2..z119\0\27
+ ..controls z119\0\28c1 and z119\0\28c2..z119\0\28
+ ..controls z119\0\29c1 and z119\0\29c2..z119\0\29
+ ..controls z119\0\30c1 and z119\0\30c2..z119\0\30
+ ..controls z119\0\31c1 and z119\0\31c2..z119\0\31
+ ..controls z119\0\32c1 and z119\0\32c2..z119\0\32
+ ..controls z119\0\33c1 and z119\0\33c2..z119\0\33
+ ..controls z119\0\34c1 and z119\0\34c2..z119\0\34
+ ..controls z119\0\35c1 and z119\0\35c2..z119\0\35
+ ..controls z119\0\36c1 and z119\0\36c2..z119\0\36
+ --z119\0\37
+ ..controls z119\0\38c1 and z119\0\38c2..z119\0\38
+ ..controls z119\0\39c1 and z119\0\39c2..z119\0\39
+ --z119\0\40
+ ..controls z119\0\41c1 and z119\0\41c2..z119\0\41
+ --z119\0\42
+ ..controls z119\0\43c1 and z119\0\43c2..z119\0\43
+ ..controls z119\0\44c1 and z119\0\44c2..z119\0\44
+ ..controls z119\0\45c1 and z119\0\45c2..z119\0\45
+ ..controls z119\0\46c1 and z119\0\46c2..z119\0\46
+ ..controls z119\0\47c1 and z119\0\47c2..cycle;
+ fill_or_unfill z119\1\0s
+ ..controls z119\1\0c1 and z119\1\0c2..z119\1\0
+ ..controls z119\1\1c1 and z119\1\1c2..z119\1\1
+ ..controls z119\1\2c1 and z119\1\2c2..z119\1\2
+ ..controls z119\1\3c1 and z119\1\3c2..cycle;
+ proof_labels (
+ 119\0\0,
+ 119\0\1,
+ 119\0\2,
+ 119\0\3,
+ 119\0\4,
+ 119\0\5,
+ 119\0\6,
+ 119\0\7,
+ 119\0\8,
+ 119\0\9,
+ 119\0\10,
+ 119\0\11,
+ 119\0\12,
+ 119\0\13,
+ 119\0\14,
+ 119\0\15,
+ 119\0\16,
+ 119\0\17,
+ 119\0\18,
+ 119\0\19,
+ 119\0\20,
+ 119\0\21,
+ 119\0\22,
+ 119\0\23,
+ 119\0\24,
+ 119\0\25,
+ 119\0\26,
+ 119\0\27,
+ 119\0\28,
+ 119\0\29,
+ 119\0\30,
+ 119\0\31,
+ 119\0\32,
+ 119\0\33,
+ 119\0\34,
+ 119\0\35,
+ 119\0\36,
+ 119\0\37,
+ 119\0\38,
+ 119\0\39,
+ 119\0\40,
+ 119\0\41,
+ 119\0\42,
+ 119\0\43,
+ 119\0\44,
+ 119\0\45,
+ 119\0\46,
+ 119\0\47,
+ 119\1\0,
+ 119\1\1,
+ 119\1\2,
+ 119\1\3,
+);
+endchar;
+
+beginchar (TIB_TWA, 6.986u#, 6.745u#, 7.950u#);
+ "twa";
+ z120\0\0s = (0.520u,1.204u);
+ z120\0\0c1 = (1.267u,1.344u);
+ z120\0\0c2 = (2.091u,1.694u);
+ z120\0\0 = (2.891u,1.631u);
+ z120\0\1c1 = (4.103u,1.537u);
+ z120\0\1c2 = (5.522u,0.569u);
+ z120\0\1 = (5.637u,-0.723u);
+ z120\0\2c1 = (5.680u,-1.200u);
+ z120\0\2c2 = (5.489u,-1.718u);
+ z120\0\2 = (5.344u,-2.168u);
+ z120\0\3c1 = (5.217u,-2.564u);
+ z120\0\3c2 = (5.098u,-2.979u);
+ z120\0\3 = (4.854u,-3.322u);
+ z120\0\4c1 = (4.432u,-3.917u);
+ z120\0\4c2 = (3.722u,-4.262u);
+ z120\0\4 = (3.132u,-4.663u);
+ z120\0\5 = (1.686u,-5.782u);
+ z120\0\6c1 = (2.741u,-7.024u);
+ z120\0\6c2 = (3.918u,-7.618u);
+ z120\0\6 = (5.572u,-7.709u);
+ z120\0\7c1 = (5.541u,-6.551u);
+ z120\0\7c2 = (5.415u,-5.232u);
+ z120\0\7 = (5.572u,-4.095u);
+ z120\0\8 = (5.936u,-2.891u);
+ z120\0\9c1 = (6.324u,-1.567u);
+ z120\0\9c2 = (6.716u,-0.179u);
+ z120\0\9 = (6.376u,1.203u);
+ z120\0\10c1 = (6.256u,1.694u);
+ z120\0\10c2 = (6.053u,2.159u);
+ z120\0\10 = (5.681u,2.513u);
+ z120\0\11c1 = (4.119u,3.996u);
+ z120\0\11c2 = (2.798u,1.927u);
+ z120\0\11 = (1.445u,4.818u);
+ z120\0\12c1 = (1.924u,4.998u);
+ z120\0\12c2 = (2.381u,5.176u);
+ z120\0\12 = (2.891u,5.250u);
+ z120\0\13c1 = (3.637u,5.357u);
+ z120\0\13c2 = (5.827u,5.087u);
+ z120\0\13 = (6.285u,5.680u);
+ z120\0\14c1 = (6.351u,5.832u);
+ z120\0\14c2 = (6.382u,6.025u);
+ z120\0\14 = (6.285u,6.201u);
+ z120\0\15c1 = (6.086u,6.945u);
+ z120\0\15c2 = (4.247u,6.745u);
+ z120\0\15 = (3.613u,6.745u);
+ z120\0\16c1 = (3.001u,6.745u);
+ z120\0\16c2 = (1.315u,6.853u);
+ z120\0\16 = (0.867u,6.499u);
+ z120\0\17c1 = (0.685u,6.355u);
+ z120\0\17c2 = (0.621u,6.204u);
+ z120\0\17 = (0.520u,5.987u);
+ z120\0\18c1 = (0.419u,5.519u);
+ z120\0\18c2 = (0.482u,1.970u);
+ z120\1\0s = (5.059u,-4.095u);
+ z120\1\0 = (5.059u,-7.468u);
+ z120\1\1c1 = (4.173u,-7.067u);
+ z120\1\1c2 = (3.444u,-6.579u);
+ z120\1\1 = (2.650u,-6.022u);
+ z120\1\2 = (2.650u,-5.541u);
+ fill_or_unfill z120\0\0s
+ ..controls z120\0\0c1 and z120\0\0c2..z120\0\0
+ ..controls z120\0\1c1 and z120\0\1c2..z120\0\1
+ ..controls z120\0\2c1 and z120\0\2c2..z120\0\2
+ ..controls z120\0\3c1 and z120\0\3c2..z120\0\3
+ ..controls z120\0\4c1 and z120\0\4c2..z120\0\4
+ --z120\0\5
+ ..controls z120\0\6c1 and z120\0\6c2..z120\0\6
+ ..controls z120\0\7c1 and z120\0\7c2..z120\0\7
+ --z120\0\8
+ ..controls z120\0\9c1 and z120\0\9c2..z120\0\9
+ ..controls z120\0\10c1 and z120\0\10c2..z120\0\10
+ ..controls z120\0\11c1 and z120\0\11c2..z120\0\11
+ ..controls z120\0\12c1 and z120\0\12c2..z120\0\12
+ ..controls z120\0\13c1 and z120\0\13c2..z120\0\13
+ ..controls z120\0\14c1 and z120\0\14c2..z120\0\14
+ ..controls z120\0\15c1 and z120\0\15c2..z120\0\15
+ ..controls z120\0\16c1 and z120\0\16c2..z120\0\16
+ ..controls z120\0\17c1 and z120\0\17c2..z120\0\17
+ ..controls z120\0\18c1 and z120\0\18c2..cycle;
+ fill_or_unfill z120\1\0s
+ --z120\1\0
+ ..controls z120\1\1c1 and z120\1\1c2..z120\1\1
+ --z120\1\2
+ --cycle;
+ proof_labels (
+ 120\0\0,
+ 120\0\1,
+ 120\0\2,
+ 120\0\3,
+ 120\0\4,
+ 120\0\5,
+ 120\0\6,
+ 120\0\7,
+ 120\0\8,
+ 120\0\9,
+ 120\0\10,
+ 120\0\11,
+ 120\0\12,
+ 120\0\13,
+ 120\0\14,
+ 120\0\15,
+ 120\0\16,
+ 120\0\17,
+ 120\0\18,
+ 120\1\0,
+ 120\1\1,
+ 120\1\2,
+ 120\1\3,
+);
+endchar;
+
+beginchar (TIB_TSWA, 9.877u#, 9.154u#, 6.022u#);
+ "tswa";
+ z121\0\0s = (6.986u,6.707u);
+ z121\0\0c1 = (6.212u,6.745u);
+ z121\0\0c2 = (3.197u,6.815u);
+ z121\0\0 = (2.664u,6.707u);
+ z121\0\1c1 = (2.429u,6.605u);
+ z121\0\1c2 = (2.248u,6.536u);
+ z121\0\1 = (2.071u,6.360u);
+ z121\0\2c1 = (1.766u,6.056u);
+ z121\0\2c2 = (1.752u,5.694u);
+ z121\0\2 = (1.686u,5.300u);
+ z121\0\3 = (4.818u,5.300u);
+ z121\0\4 = (4.676u,4.581u);
+ z121\0\5c1 = (4.329u,3.691u);
+ z121\0\5c2 = (3.346u,3.046u);
+ z121\0\5 = (2.409u,2.963u);
+ z121\0\6c1 = (1.794u,2.908u);
+ z121\0\6c2 = (1.102u,3.082u);
+ z121\0\6 = (0.482u,3.132u);
+ z121\0\7 = (1.316u,1.677u);
+ z121\0\8c1 = (1.688u,0.920u);
+ z121\0\8c2 = (1.830u,0.020u);
+ z121\0\8 = (2.503u,-0.554u);
+ z121\0\9c1 = (3.068u,-1.036u);
+ z121\0\9c2 = (3.859u,-1.163u);
+ z121\0\9 = (4.577u,-1.195u);
+ z121\0\10c1 = (5.881u,-1.252u);
+ z121\0\10c2 = (6.911u,-1.102u);
+ z121\0\10 = (7.466u,0.244u);
+ z121\0\11c1 = (7.620u,0.618u);
+ z121\0\11c2 = (7.694u,1.043u);
+ z121\0\11 = (7.644u,1.445u);
+ z121\0\12c1 = (7.501u,2.598u);
+ z121\0\12c2 = (6.501u,3.235u);
+ z121\0\12 = (5.857u,4.095u);
+ z121\0\13c1 = (5.550u,4.504u);
+ z121\0\13c2 = (5.440u,4.823u);
+ z121\0\13 = (5.300u,5.300u);
+ z121\0\14c1 = (7.211u,5.306u);
+ z121\0\14c2 = (8.147u,5.278u);
+ z121\0\14 = (7.227u,7.468u);
+ z121\0\15c1 = (7.867u,7.637u);
+ z121\0\15c2 = (8.937u,7.857u);
+ z121\0\15 = (9.253u,8.503u);
+ z121\0\16c1 = (9.359u,8.719u);
+ z121\0\16c2 = (9.355u,8.927u);
+ z121\0\16 = (9.395u,9.154u);
+ z121\0\17c1 = (7.372u,9.128u);
+ z121\0\17c2 = (7.012u,8.768u);
+ z121\1\0s = (2.409u,2.650u);
+ z121\1\0c1 = (2.941u,2.704u);
+ z121\1\0c2 = (3.835u,2.989u);
+ z121\1\0 = (4.315u,2.898u);
+ z121\1\1c1 = (4.834u,2.799u);
+ z121\1\1c2 = (5.205u,2.347u);
+ z121\1\1 = (5.560u,1.991u);
+ z121\1\2c1 = (5.925u,1.624u);
+ z121\1\2c2 = (6.585u,1.000u);
+ z121\1\2 = (6.685u,0.483u);
+ z121\1\3c1 = (6.897u,-0.608u);
+ z121\1\3c2 = (4.895u,-1.853u);
+ z121\1\3 = (3.374u,0.724u);
+ z121\2\0s = (2.168u,-3.854u);
+ z121\2\0c1 = (3.223u,-5.097u);
+ z121\2\0c2 = (4.400u,-5.691u);
+ z121\2\0 = (6.022u,-5.782u);
+ z121\2\1 = (6.022u,-1.445u);
+ z121\2\2c1 = (4.585u,-1.976u);
+ z121\2\2c2 = (3.332u,-2.870u);
+ z121\3\0s = (5.541u,-2.168u);
+ z121\3\0 = (5.541u,-5.541u);
+ z121\3\1c1 = (4.654u,-5.139u);
+ z121\3\1c2 = (3.926u,-4.652u);
+ z121\3\1 = (3.132u,-4.095u);
+ z121\3\2 = (3.132u,-3.613u);
+ fill_or_unfill z121\0\0s
+ ..controls z121\0\0c1 and z121\0\0c2..z121\0\0
+ ..controls z121\0\1c1 and z121\0\1c2..z121\0\1
+ ..controls z121\0\2c1 and z121\0\2c2..z121\0\2
+ --z121\0\3
+ --z121\0\4
+ ..controls z121\0\5c1 and z121\0\5c2..z121\0\5
+ ..controls z121\0\6c1 and z121\0\6c2..z121\0\6
+ --z121\0\7
+ ..controls z121\0\8c1 and z121\0\8c2..z121\0\8
+ ..controls z121\0\9c1 and z121\0\9c2..z121\0\9
+ ..controls z121\0\10c1 and z121\0\10c2..z121\0\10
+ ..controls z121\0\11c1 and z121\0\11c2..z121\0\11
+ ..controls z121\0\12c1 and z121\0\12c2..z121\0\12
+ ..controls z121\0\13c1 and z121\0\13c2..z121\0\13
+ ..controls z121\0\14c1 and z121\0\14c2..z121\0\14
+ ..controls z121\0\15c1 and z121\0\15c2..z121\0\15
+ ..controls z121\0\16c1 and z121\0\16c2..z121\0\16
+ ..controls z121\0\17c1 and z121\0\17c2..cycle;
+ fill_or_unfill z121\1\0s
+ ..controls z121\1\0c1 and z121\1\0c2..z121\1\0
+ ..controls z121\1\1c1 and z121\1\1c2..z121\1\1
+ ..controls z121\1\2c1 and z121\1\2c2..z121\1\2
+ ..controls z121\1\3c1 and z121\1\3c2..z121\1\3
+ --cycle;
+ fill_or_unfill z121\2\0s
+ ..controls z121\2\0c1 and z121\2\0c2..z121\2\0
+ --z121\2\1
+ ..controls z121\2\2c1 and z121\2\2c2..cycle;
+ fill_or_unfill z121\3\0s
+ --z121\3\0
+ ..controls z121\3\1c1 and z121\3\1c2..z121\3\1
+ --z121\3\2
+ --cycle;
+ proof_labels (
+ 121\0\0,
+ 121\0\1,
+ 121\0\2,
+ 121\0\3,
+ 121\0\4,
+ 121\0\5,
+ 121\0\6,
+ 121\0\7,
+ 121\0\8,
+ 121\0\9,
+ 121\0\10,
+ 121\0\11,
+ 121\0\12,
+ 121\0\13,
+ 121\0\14,
+ 121\0\15,
+ 121\0\16,
+ 121\0\17,
+ 121\1\0,
+ 121\1\1,
+ 121\1\2,
+ 121\1\3,
+ 121\1\4,
+ 121\2\0,
+ 121\2\1,
+ 121\2\2,
+ 121\3\0,
+ 121\3\1,
+ 121\3\2,
+ 121\3\3,
+);
+endchar;
+
+beginchar (TIB_SWA, 11.081u#, 6.745u#, 5.782u#);
+ "swa";
+ z122\0\0s = (1.204u,5.300u);
+ z122\0\0 = (2.650u,5.300u);
+ z122\0\1c1 = (2.509u,4.860u);
+ z122\0\1c2 = (2.376u,4.497u);
+ z122\0\1 = (2.139u,4.095u);
+ z122\0\2c1 = (1.664u,3.291u);
+ z122\0\2c2 = (0.999u,2.576u);
+ z122\0\2 = (0.678u,1.686u);
+ z122\0\3c1 = (0.532u,1.280u);
+ z122\0\3c2 = (0.512u,0.905u);
+ z122\0\3 = (0.482u,0.482u);
+ z122\0\4c1 = (2.053u,0.519u);
+ z122\0\4c2 = (2.606u,0.654u);
+ z122\0\4 = (3.993u,-0.253u);
+ z122\0\5c1 = (4.630u,-0.669u);
+ z122\0\5c2 = (4.794u,-0.777u);
+ z122\0\5 = (5.541u,-0.964u);
+ z122\0\6c1 = (4.863u,0.710u);
+ z122\0\6c2 = (3.532u,2.151u);
+ z122\0\6 = (1.686u,2.409u);
+ z122\0\7c1 = (2.050u,2.808u);
+ z122\0\7c2 = (2.322u,3.139u);
+ z122\0\7 = (2.895u,3.225u);
+ z122\0\8c1 = (4.724u,3.500u);
+ z122\0\8c2 = (8.177u,-0.024u);
+ z122\0\8 = (9.154u,-1.445u);
+ z122\0\9c1 = (7.888u,-2.011u);
+ z122\0\9c2 = (6.839u,-2.719u);
+ z122\0\9 = (5.782u,-3.613u);
+ z122\0\10c1 = (6.837u,-4.856u);
+ z122\0\10c2 = (8.013u,-5.450u);
+ z122\0\10 = (9.636u,-5.541u);
+ z122\0\11 = (9.636u,2.650u);
+ z122\0\12c1 = (9.643u,3.214u);
+ z122\0\12c2 = (9.655u,3.779u);
+ z122\0\12 = (9.809u,4.327u);
+ z122\0\13c1 = (9.954u,4.846u);
+ z122\0\13c2 = (10.582u,5.707u);
+ z122\0\13 = (10.421u,6.197u);
+ z122\0\14c1 = (10.242u,6.743u);
+ z122\0\14c2 = (9.395u,6.779u);
+ z122\0\14 = (8.927u,6.709u);
+ z122\0\15c1 = (8.586u,6.658u);
+ z122\0\15c2 = (8.242u,6.557u);
+ z122\0\15 = (8.128u,6.188u);
+ z122\0\16c1 = (7.976u,5.695u);
+ z122\0\16c2 = (8.491u,4.836u);
+ z122\0\16 = (8.642u,4.336u);
+ z122\0\17c1 = (8.759u,3.947u);
+ z122\0\17c2 = (8.831u,3.536u);
+ z122\0\17 = (8.893u,3.132u);
+ z122\0\18 = (8.893u,0.241u);
+ z122\0\19c1 = (8.242u,1.131u);
+ z122\0\19c2 = (7.509u,2.047u);
+ z122\0\19 = (6.705u,2.821u);
+ z122\0\20c1 = (5.843u,3.651u);
+ z122\0\20c2 = (4.828u,4.367u);
+ z122\0\20 = (3.854u,5.059u);
+ z122\0\21c1 = (5.134u,5.375u);
+ z122\0\21c2 = (5.748u,5.115u);
+ z122\0\21 = (6.263u,6.504u);
+ z122\0\22c1 = (5.333u,6.769u);
+ z122\0\22c2 = (2.339u,7.038u);
+ z122\0\22 = (1.623u,6.326u);
+ z122\0\23c1 = (1.328u,6.034u);
+ z122\0\23c2 = (1.290u,5.680u);
+ z122\1\0s = (9.154u,-1.927u);
+ z122\1\0 = (9.154u,-5.300u);
+ z122\1\1c1 = (8.268u,-4.899u);
+ z122\1\1c2 = (7.539u,-4.411u);
+ z122\1\1 = (6.745u,-3.854u);
+ z122\1\2 = (6.745u,-3.372u);
+ fill_or_unfill z122\0\0s
+ --z122\0\0
+ ..controls z122\0\1c1 and z122\0\1c2..z122\0\1
+ ..controls z122\0\2c1 and z122\0\2c2..z122\0\2
+ ..controls z122\0\3c1 and z122\0\3c2..z122\0\3
+ ..controls z122\0\4c1 and z122\0\4c2..z122\0\4
+ ..controls z122\0\5c1 and z122\0\5c2..z122\0\5
+ ..controls z122\0\6c1 and z122\0\6c2..z122\0\6
+ ..controls z122\0\7c1 and z122\0\7c2..z122\0\7
+ ..controls z122\0\8c1 and z122\0\8c2..z122\0\8
+ ..controls z122\0\9c1 and z122\0\9c2..z122\0\9
+ ..controls z122\0\10c1 and z122\0\10c2..z122\0\10
+ --z122\0\11
+ ..controls z122\0\12c1 and z122\0\12c2..z122\0\12
+ ..controls z122\0\13c1 and z122\0\13c2..z122\0\13
+ ..controls z122\0\14c1 and z122\0\14c2..z122\0\14
+ ..controls z122\0\15c1 and z122\0\15c2..z122\0\15
+ ..controls z122\0\16c1 and z122\0\16c2..z122\0\16
+ ..controls z122\0\17c1 and z122\0\17c2..z122\0\17
+ --z122\0\18
+ ..controls z122\0\19c1 and z122\0\19c2..z122\0\19
+ ..controls z122\0\20c1 and z122\0\20c2..z122\0\20
+ ..controls z122\0\21c1 and z122\0\21c2..z122\0\21
+ ..controls z122\0\22c1 and z122\0\22c2..z122\0\22
+ ..controls z122\0\23c1 and z122\0\23c2..cycle;
+ fill_or_unfill z122\1\0s
+ --z122\1\0
+ ..controls z122\1\1c1 and z122\1\1c2..z122\1\1
+ --z122\1\2
+ --cycle;
+ proof_labels (
+ 122\0\0,
+ 122\0\1,
+ 122\0\2,
+ 122\0\3,
+ 122\0\4,
+ 122\0\5,
+ 122\0\6,
+ 122\0\7,
+ 122\0\8,
+ 122\0\9,
+ 122\0\10,
+ 122\0\11,
+ 122\0\12,
+ 122\0\13,
+ 122\0\14,
+ 122\0\15,
+ 122\0\16,
+ 122\0\17,
+ 122\0\18,
+ 122\0\19,
+ 122\0\20,
+ 122\0\21,
+ 122\0\22,
+ 122\0\23,
+ 122\1\0,
+ 122\1\1,
+ 122\1\2,
+ 122\1\3,
+);
+endchar;
+
+beginchar (TIB_TSU, 10.359u#, 6.745u#, 7.709u#);
+ "tsu";
+ z123\0\0s = (7.468u,3.854u);
+ z123\0\0c1 = (5.686u,3.854u);
+ z123\0\0c2 = (2.591u,4.538u);
+ z123\0\0 = (1.927u,2.409u);
+ z123\0\1c1 = (2.514u,2.409u);
+ z123\0\1c2 = (4.066u,2.478u);
+ z123\0\1 = (4.538u,2.265u);
+ z123\0\2c1 = (6.125u,1.548u);
+ z123\0\2c2 = (4.002u,0.081u);
+ z123\0\2 = (3.132u,-0.055u);
+ z123\0\3c1 = (2.346u,-0.282u);
+ z123\0\3c2 = (1.513u,-0.064u);
+ z123\0\3 = (0.723u,-0.055u);
+ z123\0\4c1 = (0.941u,-0.690u);
+ z123\0\4c2 = (1.315u,-1.084u);
+ z123\0\4 = (1.673u,-1.696u);
+ z123\0\5c1 = (3.295u,-4.464u);
+ z123\0\5c2 = (3.988u,-4.761u);
+ z123\0\5 = (7.227u,-4.336u);
+ z123\0\6c1 = (6.804u,-5.139u);
+ z123\0\6c2 = (6.774u,-5.367u);
+ z123\0\6 = (6.745u,-6.263u);
+ z123\0\7 = (8.913u,-4.577u);
+ z123\0\8c1 = (9.604u,-8.791u);
+ z123\0\8c2 = (3.171u,-5.179u);
+ z123\0\8 = (1.980u,-3.844u);
+ z123\0\9c1 = (1.406u,-3.200u);
+ z123\0\9c2 = (1.245u,-2.639u);
+ z123\0\9 = (0.482u,-2.168u);
+ z123\0\10c1 = (1.205u,-7.456u);
+ z123\0\10c2 = (9.401u,-9.038u);
+ z123\0\10 = (9.841u,-6.012u);
+ z123\0\11c1 = (10.086u,-4.321u);
+ z123\0\11c2 = (9.079u,-4.131u);
+ z123\0\11 = (7.709u,-4.095u);
+ z123\0\12c1 = (10.537u,-0.952u);
+ z123\0\12c2 = (5.994u,0.151u);
+ z123\0\12 = (6.205u,1.651u);
+ z123\0\13c1 = (6.327u,2.517u);
+ z123\0\13c2 = (7.551u,2.249u);
+ z123\0\13 = (8.045u,2.655u);
+ z123\0\14c1 = (8.626u,3.132u);
+ z123\0\14c2 = (8.132u,3.924u);
+ z123\0\14 = (8.444u,4.502u);
+ z123\0\15c1 = (8.990u,5.517u);
+ z123\0\15c2 = (9.797u,4.485u);
+ z123\0\15 = (9.877u,6.745u);
+ z123\0\16c1 = (7.543u,6.503u);
+ z123\0\16c2 = (7.470u,5.978u);
+ z123\1\0s = (3.132u,-0.723u);
+ z123\1\0c1 = (4.713u,-0.231u);
+ z123\1\0c2 = (4.961u,-0.011u);
+ z123\1\0 = (6.268u,-1.249u);
+ z123\1\1c1 = (9.105u,-3.935u);
+ z123\1\1c2 = (5.459u,-5.415u);
+ z123\1\1 = (3.806u,-2.409u);
+ z123\1\2c1 = (3.504u,-1.860u);
+ z123\1\2c2 = (3.302u,-1.322u);
+ fill_or_unfill z123\0\0s
+ ..controls z123\0\0c1 and z123\0\0c2..z123\0\0
+ ..controls z123\0\1c1 and z123\0\1c2..z123\0\1
+ ..controls z123\0\2c1 and z123\0\2c2..z123\0\2
+ ..controls z123\0\3c1 and z123\0\3c2..z123\0\3
+ ..controls z123\0\4c1 and z123\0\4c2..z123\0\4
+ ..controls z123\0\5c1 and z123\0\5c2..z123\0\5
+ ..controls z123\0\6c1 and z123\0\6c2..z123\0\6
+ --z123\0\7
+ ..controls z123\0\8c1 and z123\0\8c2..z123\0\8
+ ..controls z123\0\9c1 and z123\0\9c2..z123\0\9
+ ..controls z123\0\10c1 and z123\0\10c2..z123\0\10
+ ..controls z123\0\11c1 and z123\0\11c2..z123\0\11
+ ..controls z123\0\12c1 and z123\0\12c2..z123\0\12
+ ..controls z123\0\13c1 and z123\0\13c2..z123\0\13
+ ..controls z123\0\14c1 and z123\0\14c2..z123\0\14
+ ..controls z123\0\15c1 and z123\0\15c2..z123\0\15
+ ..controls z123\0\16c1 and z123\0\16c2..cycle;
+ fill_or_unfill z123\1\0s
+ ..controls z123\1\0c1 and z123\1\0c2..z123\1\0
+ ..controls z123\1\1c1 and z123\1\1c2..z123\1\1
+ ..controls z123\1\2c1 and z123\1\2c2..cycle;
+ proof_labels (
+ 123\0\0,
+ 123\0\1,
+ 123\0\2,
+ 123\0\3,
+ 123\0\4,
+ 123\0\5,
+ 123\0\6,
+ 123\0\7,
+ 123\0\8,
+ 123\0\9,
+ 123\0\10,
+ 123\0\11,
+ 123\0\12,
+ 123\0\13,
+ 123\0\14,
+ 123\0\15,
+ 123\0\16,
+ 123\1\0,
+ 123\1\1,
+ 123\1\2,
+);
+endchar;
+
+beginchar (TIB_CU, 9.636u#, 6.745u#, 4.336u#);
+ "cu";
+ z124\0\0s = (1.927u,5.300u);
+ z124\0\0c1 = (7.449u,5.300u);
+ z124\0\0c2 = (4.881u,2.343u);
+ z124\0\0 = (0.723u,2.891u);
+ z124\0\1c1 = (2.357u,-0.433u);
+ z124\0\1c2 = (2.624u,-1.445u);
+ z124\0\1 = (6.504u,-1.445u);
+ z124\0\2 = (6.504u,-2.409u);
+ z124\0\3 = (8.190u,-1.686u);
+ z124\0\4c1 = (7.999u,-5.354u);
+ z124\0\4c2 = (2.870u,-1.866u);
+ z124\0\4 = (1.838u,-0.483u);
+ z124\0\5c1 = (1.307u,0.229u);
+ z124\0\5c2 = (1.286u,0.496u);
+ z124\0\5 = (0.482u,0.964u);
+ z124\0\6c1 = (1.564u,-1.736u);
+ z124\0\6c2 = (3.293u,-4.084u);
+ z124\0\6 = (6.504u,-4.088u);
+ z124\0\7c1 = (7.113u,-4.089u);
+ z124\0\7c2 = (8.075u,-4.015u);
+ z124\0\7 = (8.569u,-3.629u);
+ z124\0\8c1 = (9.948u,-2.551u);
+ z124\0\8c2 = (8.917u,-1.134u);
+ z124\0\8 = (7.468u,-0.964u);
+ z124\0\9c1 = (9.975u,2.431u);
+ z124\0\9c2 = (6.701u,2.421u);
+ z124\0\9 = (6.063u,4.100u);
+ z124\0\10c1 = (5.419u,5.795u);
+ z124\0\10c2 = (7.992u,4.375u);
+ z124\0\10 = (8.190u,6.745u);
+ z124\0\11c1 = (6.089u,6.745u);
+ z124\0\11c2 = (2.971u,7.511u);
+ z124\1\0s = (2.650u,2.409u);
+ z124\1\0c1 = (3.246u,2.501u);
+ z124\1\0c2 = (3.988u,2.779u);
+ z124\1\0 = (4.576u,2.741u);
+ z124\1\1c1 = (5.231u,2.699u);
+ z124\1\1c2 = (5.679u,2.297u);
+ z124\1\1 = (6.121u,1.854u);
+ z124\1\2c1 = (8.845u,-0.872u);
+ z124\1\2c2 = (5.527u,-2.222u);
+ z124\1\2 = (3.846u,0.245u);
+ fill_or_unfill z124\0\0s
+ ..controls z124\0\0c1 and z124\0\0c2..z124\0\0
+ ..controls z124\0\1c1 and z124\0\1c2..z124\0\1
+ --z124\0\2
+ --z124\0\3
+ ..controls z124\0\4c1 and z124\0\4c2..z124\0\4
+ ..controls z124\0\5c1 and z124\0\5c2..z124\0\5
+ ..controls z124\0\6c1 and z124\0\6c2..z124\0\6
+ ..controls z124\0\7c1 and z124\0\7c2..z124\0\7
+ ..controls z124\0\8c1 and z124\0\8c2..z124\0\8
+ ..controls z124\0\9c1 and z124\0\9c2..z124\0\9
+ ..controls z124\0\10c1 and z124\0\10c2..z124\0\10
+ ..controls z124\0\11c1 and z124\0\11c2..cycle;
+ fill_or_unfill z124\1\0s
+ ..controls z124\1\0c1 and z124\1\0c2..z124\1\0
+ ..controls z124\1\1c1 and z124\1\1c2..z124\1\1
+ ..controls z124\1\2c1 and z124\1\2c2..z124\1\2
+ --cycle;
+ proof_labels (
+ 124\0\0,
+ 124\0\1,
+ 124\0\2,
+ 124\0\3,
+ 124\0\4,
+ 124\0\5,
+ 124\0\6,
+ 124\0\7,
+ 124\0\8,
+ 124\0\9,
+ 124\0\10,
+ 124\0\11,
+ 124\1\0,
+ 124\1\1,
+ 124\1\2,
+ 124\1\3,
+);
+endchar;
+
+beginchar (TIB_DHA, 8.672u#, 6.745u#, 10.118u#);
+ "dha";
+ z125\0\0s = (7.468u,-0.482u);
+ z125\0\0c1 = (3.241u,-0.482u);
+ z125\0\0c2 = (1.686u,0.581u);
+ z125\0\0 = (1.445u,-4.577u);
+ z125\0\1c1 = (3.050u,-5.052u);
+ z125\0\1c2 = (3.326u,-5.810u);
+ z125\0\1 = (4.577u,-6.745u);
+ z125\0\2c1 = (4.316u,-2.917u);
+ z125\0\2c2 = (7.354u,-4.659u);
+ z125\0\2 = (7.379u,-6.504u);
+ z125\0\3c1 = (7.394u,-7.625u);
+ z125\0\3c2 = (6.571u,-8.799u);
+ z125\0\3 = (6.263u,-9.877u);
+ z125\0\4c1 = (8.406u,-8.630u);
+ z125\0\4c2 = (9.440u,-2.265u);
+ z125\0\4 = (5.782u,-2.958u);
+ z125\0\5c1 = (4.885u,-3.128u);
+ z125\0\5c2 = (4.495u,-3.571u);
+ z125\0\5 = (4.095u,-4.336u);
+ z125\0\6c1 = (-0.572u,-1.359u);
+ z125\0\6c2 = (6.617u,-1.927u);
+ z125\0\6 = (8.190u,-1.927u);
+ z125\0\7c1 = (7.916u,2.118u);
+ z125\0\7c2 = (5.467u,3.611u);
+ z125\0\7 = (1.686u,3.613u);
+ z125\0\8c1 = (2.065u,5.882u);
+ z125\0\8c2 = (4.739u,5.300u);
+ z125\0\8 = (6.504u,5.300u);
+ z125\0\9c1 = (6.469u,5.723u);
+ z125\0\9c2 = (6.491u,6.205u);
+ z125\0\9 = (6.119u,6.499u);
+ z125\0\10c1 = (5.487u,6.999u);
+ z125\0\10c2 = (1.666u,6.902u);
+ z125\0\10 = (1.163u,6.188u);
+ z125\0\11c1 = (0.831u,5.585u);
+ z125\0\11c2 = (1.211u,4.781u);
+ z125\0\11 = (1.163u,4.117u);
+ z125\0\12c1 = (1.036u,3.605u);
+ z125\0\12c2 = (0.496u,2.962u);
+ z125\0\12 = (0.660u,2.479u);
+ z125\0\13c1 = (0.896u,1.785u);
+ z125\0\13c2 = (2.744u,2.190u);
+ z125\0\13 = (3.372u,2.158u);
+ z125\0\14c1 = (5.170u,2.066u);
+ z125\0\14c2 = (6.694u,1.151u);
+ fill_or_unfill z125\0\0s
+ ..controls z125\0\0c1 and z125\0\0c2..z125\0\0
+ ..controls z125\0\1c1 and z125\0\1c2..z125\0\1
+ ..controls z125\0\2c1 and z125\0\2c2..z125\0\2
+ ..controls z125\0\3c1 and z125\0\3c2..z125\0\3
+ ..controls z125\0\4c1 and z125\0\4c2..z125\0\4
+ ..controls z125\0\5c1 and z125\0\5c2..z125\0\5
+ ..controls z125\0\6c1 and z125\0\6c2..z125\0\6
+ ..controls z125\0\7c1 and z125\0\7c2..z125\0\7
+ ..controls z125\0\8c1 and z125\0\8c2..z125\0\8
+ ..controls z125\0\9c1 and z125\0\9c2..z125\0\9
+ ..controls z125\0\10c1 and z125\0\10c2..z125\0\10
+ ..controls z125\0\11c1 and z125\0\11c2..z125\0\11
+ ..controls z125\0\12c1 and z125\0\12c2..z125\0\12
+ ..controls z125\0\13c1 and z125\0\13c2..z125\0\13
+ ..controls z125\0\14c1 and z125\0\14c2..cycle;
+ proof_labels (
+ 125\0\0,
+ 125\0\1,
+ 125\0\2,
+ 125\0\3,
+ 125\0\4,
+ 125\0\5,
+ 125\0\6,
+ 125\0\7,
+ 125\0\8,
+ 125\0\9,
+ 125\0\10,
+ 125\0\11,
+ 125\0\12,
+ 125\0\13,
+ 125\0\14,
+);
+endchar;
+
+beginchar (TIB_GHA, 10.359u#, 6.745u#, 9.877u#);
+ "gha";
+ z21\0\0s = (0.948u,1.927u);
+ z21\0\0c1 = (3.858u,2.420u);
+ z21\0\0c2 = (3.885u,1.205u);
+ z21\0\0 = (6.263u,0.723u);
+ z21\0\1c1 = (6.270u,2.970u);
+ z21\0\1c2 = (5.885u,5.264u);
+ z21\0\1 = (8.672u,5.300u);
+ z21\0\2 = (8.913u,-0.723u);
+ z21\0\3c1 = (7.913u,-0.723u);
+ z21\0\3c2 = (3.363u,-0.536u);
+ z21\0\3 = (2.790u,-0.969u);
+ z21\0\4c1 = (2.357u,-1.296u);
+ z21\0\4c2 = (1.322u,-3.960u);
+ z21\0\4 = (1.204u,-4.577u);
+ z21\0\5c1 = (3.926u,-4.490u);
+ z21\0\5c2 = (3.931u,-5.027u);
+ z21\0\5 = (6.022u,-6.504u);
+ z21\0\6c1 = (6.168u,-2.338u);
+ z21\0\6c2 = (11.966u,-5.699u);
+ z21\0\6 = (6.504u,-9.395u);
+ z21\0\7c1 = (8.767u,-10.183u);
+ z21\0\7c2 = (10.731u,-5.478u);
+ z21\0\7 = (9.492u,-3.921u);
+ z21\0\8c1 = (7.921u,-1.947u);
+ z21\0\8c2 = (5.692u,-4.230u);
+ z21\0\8 = (5.140u,-4.170u);
+ z21\0\9c1 = (4.591u,-4.111u);
+ z21\0\9c2 = (3.750u,-3.096u);
+ z21\0\9 = (2.409u,-2.891u);
+ z21\0\10c1 = (4.191u,-1.716u);
+ z21\0\10c2 = (7.058u,-2.168u);
+ z21\0\10 = (9.154u,-2.168u);
+ z21\0\11c1 = (9.205u,-1.061u);
+ z21\0\11c2 = (9.927u,5.936u);
+ z21\0\11 = (9.621u,6.360u);
+ z21\0\12c1 = (9.299u,6.806u);
+ z21\0\12c2 = (8.439u,6.742u);
+ z21\0\12 = (7.950u,6.745u);
+ z21\0\13c1 = (6.748u,6.753u);
+ z21\0\13c2 = (0.799u,7.170u);
+ z21\0\13 = (0.585u,6.009u);
+ z21\0\14c1 = (0.495u,5.523u);
+ z21\0\14c2 = (0.870u,4.844u);
+ z21\0\14 = (0.948u,4.327u);
+ z21\1\0s = (5.782u,1.686u);
+ z21\1\0 = (1.716u,3.748u);
+ z21\1\1c1 = (0.886u,5.136u);
+ z21\1\1c2 = (5.711u,7.581u);
+ fill_or_unfill z21\0\0s
+ ..controls z21\0\0c1 and z21\0\0c2..z21\0\0
+ ..controls z21\0\1c1 and z21\0\1c2..z21\0\1
+ --z21\0\2
+ ..controls z21\0\3c1 and z21\0\3c2..z21\0\3
+ ..controls z21\0\4c1 and z21\0\4c2..z21\0\4
+ ..controls z21\0\5c1 and z21\0\5c2..z21\0\5
+ ..controls z21\0\6c1 and z21\0\6c2..z21\0\6
+ ..controls z21\0\7c1 and z21\0\7c2..z21\0\7
+ ..controls z21\0\8c1 and z21\0\8c2..z21\0\8
+ ..controls z21\0\9c1 and z21\0\9c2..z21\0\9
+ ..controls z21\0\10c1 and z21\0\10c2..z21\0\10
+ ..controls z21\0\11c1 and z21\0\11c2..z21\0\11
+ ..controls z21\0\12c1 and z21\0\12c2..z21\0\12
+ ..controls z21\0\13c1 and z21\0\13c2..z21\0\13
+ ..controls z21\0\14c1 and z21\0\14c2..z21\0\14
+ --cycle;
+ fill_or_unfill z21\1\0s
+ --z21\1\0
+ ..controls z21\1\1c1 and z21\1\1c2..cycle;
+ proof_labels (
+ 21\0\0,
+ 21\0\1,
+ 21\0\2,
+ 21\0\3,
+ 21\0\4,
+ 21\0\5,
+ 21\0\6,
+ 21\0\7,
+ 21\0\8,
+ 21\0\9,
+ 21\0\10,
+ 21\0\11,
+ 21\0\12,
+ 21\0\13,
+ 21\0\14,
+ 21\0\15,
+ 21\1\0,
+ 21\1\1,
+);
+endchar;
+
+beginchar (TIB_DXHA, 9.877u#, 6.745u#, 10.359u#);
+ "dxha";
+ z22\0\0s = (3.132u,5.300u);
+ z22\0\0c1 = (4.889u,5.300u);
+ z22\0\0c2 = (6.941u,5.822u);
+ z22\0\0 = (7.950u,4.095u);
+ z22\0\1c1 = (5.468u,3.491u);
+ z22\0\1c2 = (1.642u,3.549u);
+ z22\0\1 = (0.630u,0.483u);
+ z22\0\2c1 = (0.339u,-0.401u);
+ z22\0\2c2 = (0.775u,-0.775u);
+ z22\0\2 = (1.445u,-1.204u);
+ z22\0\3c1 = (1.145u,-2.130u);
+ z22\0\3c2 = (0.986u,-2.879u);
+ z22\0\3 = (0.964u,-3.854u);
+ z22\0\4c1 = (4.417u,-3.885u);
+ z22\0\4c2 = (3.972u,-4.849u);
+ z22\0\4 = (6.504u,-6.263u);
+ z22\0\5c1 = (6.334u,-5.687u);
+ z22\0\5c2 = (5.369u,-4.035u);
+ z22\0\5 = (5.446u,-3.693u);
+ z22\0\6c1 = (5.735u,-2.402u);
+ z22\0\6c2 = (7.542u,-4.224u);
+ z22\0\6 = (7.772u,-4.819u);
+ z22\0\7c1 = (8.452u,-6.577u);
+ z22\0\7c2 = (7.437u,-8.556u);
+ z22\0\7 = (6.745u,-10.118u);
+ z22\0\8c1 = (8.459u,-9.128u);
+ z22\0\8c2 = (8.743u,-5.927u);
+ z22\0\8 = (8.668u,-4.095u);
+ z22\0\9c1 = (8.564u,-1.574u);
+ z22\0\9c2 = (6.002u,-1.324u);
+ z22\0\9 = (4.818u,-3.372u);
+ z22\0\10c1 = (3.760u,-2.864u);
+ z22\0\10c2 = (2.802u,-2.317u);
+ z22\0\10 = (1.686u,-1.927u);
+ z22\0\11c1 = (3.780u,0.251u);
+ z22\0\11c2 = (6.987u,-2.386u);
+ z22\0\11 = (7.468u,0.482u);
+ z22\0\12 = (0.964u,0.482u);
+ z22\0\13c1 = (4.962u,3.577u);
+ z22\0\13c2 = (4.650u,2.777u);
+ z22\0\13 = (9.154u,2.409u);
+ z22\0\14 = (8.431u,5.300u);
+ z22\0\15c1 = (9.211u,5.573u);
+ z22\0\15c2 = (9.748u,6.341u);
+ z22\0\15 = (8.637u,6.669u);
+ z22\0\16c1 = (7.966u,6.868u);
+ z22\0\16c2 = (4.230u,6.822u);
+ z22\0\16 = (3.689u,6.462u);
+ z22\0\17c1 = (3.242u,6.165u);
+ z22\0\17c2 = (3.214u,5.780u);
+ fill_or_unfill z22\0\0s
+ ..controls z22\0\0c1 and z22\0\0c2..z22\0\0
+ ..controls z22\0\1c1 and z22\0\1c2..z22\0\1
+ ..controls z22\0\2c1 and z22\0\2c2..z22\0\2
+ ..controls z22\0\3c1 and z22\0\3c2..z22\0\3
+ ..controls z22\0\4c1 and z22\0\4c2..z22\0\4
+ ..controls z22\0\5c1 and z22\0\5c2..z22\0\5
+ ..controls z22\0\6c1 and z22\0\6c2..z22\0\6
+ ..controls z22\0\7c1 and z22\0\7c2..z22\0\7
+ ..controls z22\0\8c1 and z22\0\8c2..z22\0\8
+ ..controls z22\0\9c1 and z22\0\9c2..z22\0\9
+ ..controls z22\0\10c1 and z22\0\10c2..z22\0\10
+ ..controls z22\0\11c1 and z22\0\11c2..z22\0\11
+ --z22\0\12
+ ..controls z22\0\13c1 and z22\0\13c2..z22\0\13
+ --z22\0\14
+ ..controls z22\0\15c1 and z22\0\15c2..z22\0\15
+ ..controls z22\0\16c1 and z22\0\16c2..z22\0\16
+ ..controls z22\0\17c1 and z22\0\17c2..cycle;
+ proof_labels (
+ 22\0\0,
+ 22\0\1,
+ 22\0\2,
+ 22\0\3,
+ 22\0\4,
+ 22\0\5,
+ 22\0\6,
+ 22\0\7,
+ 22\0\8,
+ 22\0\9,
+ 22\0\10,
+ 22\0\11,
+ 22\0\12,
+ 22\0\13,
+ 22\0\14,
+ 22\0\15,
+ 22\0\16,
+ 22\0\17,
+);
+endchar;
+
+beginchar (TIB_BHA, 8.672u#, 6.745u#, 10.600u#);
+ "bha";
+ z23\0\0s = (1.927u,5.059u);
+ z23\0\0c1 = (1.216u,3.121u);
+ z23\0\0c2 = (0.533u,2.747u);
+ z23\0\0 = (0.482u,0.482u);
+ z23\0\1c1 = (4.572u,1.111u);
+ z23\0\1c2 = (4.019u,0.816u);
+ z23\0\1 = (7.709u,-0.723u);
+ z23\0\2c1 = (3.893u,-1.806u);
+ z23\0\2c2 = (1.967u,0.966u);
+ z23\0\2 = (1.686u,-5.059u);
+ z23\0\3c1 = (3.291u,-5.533u);
+ z23\0\3c2 = (3.567u,-6.292u);
+ z23\0\3 = (4.818u,-7.227u);
+ z23\0\4c1 = (4.557u,-3.399u);
+ z23\0\4c2 = (7.595u,-5.141u);
+ z23\0\4 = (7.619u,-6.986u);
+ z23\0\5c1 = (7.635u,-8.107u);
+ z23\0\5c2 = (6.812u,-9.280u);
+ z23\0\5 = (6.504u,-10.359u);
+ z23\0\6c1 = (8.522u,-9.184u);
+ z23\0\6c2 = (9.381u,-2.804u);
+ z23\0\6 = (6.023u,-3.440u);
+ z23\0\7c1 = (5.126u,-3.610u);
+ z23\0\7c2 = (4.735u,-4.053u);
+ z23\0\7 = (4.336u,-4.818u);
+ z23\0\8c1 = (-0.263u,-1.884u);
+ z23\0\8c2 = (6.601u,-2.409u);
+ z23\0\8 = (8.190u,-2.409u);
+ z23\0\9 = (8.190u,6.718u);
+ z23\0\10c1 = (6.418u,6.745u);
+ z23\0\10c2 = (4.132u,7.022u);
+ z23\0\10 = (2.419u,6.718u);
+ z23\0\11c1 = (1.468u,6.507u);
+ z23\0\11c2 = (0.753u,5.553u);
+ z23\1\0s = (7.950u,-0.241u);
+ z23\1\0c1 = (5.446u,1.495u);
+ z23\1\0c2 = (4.908u,2.406u);
+ z23\1\0 = (1.686u,2.409u);
+ z23\1\1c1 = (1.954u,4.713u);
+ z23\1\1c2 = (3.443u,5.331u);
+ z23\1\1 = (5.540u,5.299u);
+ z23\1\2c1 = (6.211u,5.289u);
+ z23\1\2c2 = (6.703u,5.324u);
+ z23\1\2 = (7.158u,4.747u);
+ z23\1\3c1 = (7.975u,3.711u);
+ z23\1\3c2 = (7.950u,1.064u);
+ fill_or_unfill z23\0\0s
+ ..controls z23\0\0c1 and z23\0\0c2..z23\0\0
+ ..controls z23\0\1c1 and z23\0\1c2..z23\0\1
+ ..controls z23\0\2c1 and z23\0\2c2..z23\0\2
+ ..controls z23\0\3c1 and z23\0\3c2..z23\0\3
+ ..controls z23\0\4c1 and z23\0\4c2..z23\0\4
+ ..controls z23\0\5c1 and z23\0\5c2..z23\0\5
+ ..controls z23\0\6c1 and z23\0\6c2..z23\0\6
+ ..controls z23\0\7c1 and z23\0\7c2..z23\0\7
+ ..controls z23\0\8c1 and z23\0\8c2..z23\0\8
+ --z23\0\9
+ ..controls z23\0\10c1 and z23\0\10c2..z23\0\10
+ ..controls z23\0\11c1 and z23\0\11c2..cycle;
+ fill_or_unfill z23\1\0s
+ ..controls z23\1\0c1 and z23\1\0c2..z23\1\0
+ ..controls z23\1\1c1 and z23\1\1c2..z23\1\1
+ ..controls z23\1\2c1 and z23\1\2c2..z23\1\2
+ ..controls z23\1\3c1 and z23\1\3c2..cycle;
+ proof_labels (
+ 23\0\0,
+ 23\0\1,
+ 23\0\2,
+ 23\0\3,
+ 23\0\4,
+ 23\0\5,
+ 23\0\6,
+ 23\0\7,
+ 23\0\8,
+ 23\0\9,
+ 23\0\10,
+ 23\0\11,
+ 23\1\0,
+ 23\1\1,
+ 23\1\2,
+ 23\1\3,
+);
+endchar;
+
+beginchar (TIB_DZHA, 9.636u#, 9.154u#, 10.597u#);
+ "dzha";
+ yshift:=2.409u;
+ z24\0\0s = ( 0.482u, -3.372u+yshift);
+ z24\0\0c1 = ( 3.839u, -3.070u+yshift);
+ z24\0\0c2 = ( 5.752u, -0.887u+yshift);
+ z24\0\0 = ( 8.672u, -4.336u+yshift);
+ z24\0\1c1 = ( 7.593u, -4.336u+yshift);
+ z24\0\1c2 = ( 2.179u, -4.085u+yshift);
+ z24\0\1 = ( 1.696u, -4.755u+yshift);
+ z24\0\2 = ( 1.204u, -8.190u+yshift);
+ z24\0\3c1 = ( 3.176u, -8.640u+yshift);
+ z24\0\3c2 = ( 4.765u, -9.165u+yshift);
+ z24\0\3 = ( 5.300u,-11.322u+yshift);
+ z24\0\4c1 = ( 6.487u,-10.527u+yshift);
+ z24\0\4c2 = ( 5.675u, -9.450u+yshift);
+ z24\0\4 = ( 6.576u, -8.851u+yshift);
+ z24\0\5c1 = ( 7.294u, -8.375u+yshift);
+ z24\0\5c2 = ( 7.830u, -9.224u+yshift);
+ z24\0\5 = ( 7.801u, -9.878u+yshift);
+ z24\0\6c1 = ( 7.763u,-10.743u+yshift);
+ z24\0\6c2 = ( 6.835u,-11.902u+yshift);
+ z24\0\6 = ( 6.504u,-12.768u+yshift);
+ z24\0\7c1 = ( 9.540u,-11.873u+yshift);
+ z24\0\7c2 = (10.257u, -6.436u+yshift);
+ z24\0\7 = ( 6.745u, -6.828u+yshift);
+ z24\0\8c1 = ( 5.853u, -6.927u+yshift);
+ z24\0\8c2 = ( 5.482u, -7.191u+yshift);
+ z24\0\8 = ( 5.059u, -7.950u+yshift);
+ z24\0\9c1 = ( 4.582u, -7.675u+yshift);
+ z24\0\9c2 = ( 0.876u, -6.223u+yshift);
+ z24\0\9 = ( 3.378u, -5.800u+yshift);
+ z24\0\10 = ( 4.095u, -5.800u+yshift);
+ z24\0\11c1 = ( 4.959u, -5.767u+yshift);
+ z24\0\11c2 = ( 7.757u, -5.934u+yshift);
+ z24\0\11 = ( 8.356u, -5.535u+yshift);
+ z24\0\12c1 = (10.064u, -4.397u+yshift);
+ z24\0\12c2 = ( 8.071u, -2.114u+yshift);
+ z24\0\12 = ( 6.745u, -1.650u+yshift);
+ z24\0\13c1 = ( 4.849u, -0.986u+yshift);
+ z24\0\13c2 = ( 3.122u, -1.357u+yshift);
+ z24\0\13 = ( 1.204u, -1.445u+yshift);
+ z24\0\14 = ( 1.204u, 0.241u+yshift);
+ z24\0\15 = ( 6.986u, 0.241u+yshift);
+ z24\0\16 = ( 6.986u, 1.686u+yshift);
+ z24\0\17 = ( 1.204u, 1.686u+yshift);
+ z24\0\18 = ( 1.204u, 3.132u+yshift);
+ z24\0\19 = ( 6.986u, 3.132u+yshift);
+ z24\0\20c1 = ( 6.979u, 3.832u+yshift);
+ z24\0\20c2 = ( 6.937u, 4.382u+yshift);
+ z24\0\20 = ( 6.745u, 5.059u+yshift);
+ z24\0\21c1 = ( 8.150u, 5.406u+yshift);
+ z24\0\21c2 = ( 8.795u, 5.113u+yshift);
+ z24\0\21 = ( 9.154u, 6.745u+yshift);
+ z24\0\22c1 = ( 4.822u, 6.741u+yshift);
+ z24\0\22c2 = ( 8.151u, 4.585u+yshift);
+ z24\0\22 = ( 4.095u, 4.577u+yshift);
+ z24\0\23c1 = ( 3.426u, 4.576u+yshift);
+ z24\0\23c2 = ( 1.332u, 4.699u+yshift);
+ z24\0\23 = ( 0.867u, 4.331u+yshift);
+ z24\0\24c1 = ( 0.233u, 3.829u+yshift);
+ z24\0\24c2 = ( 0.482u, -2.222u+yshift);
+ fill_or_unfill z24\0\0s
+ ..controls z24\0\0c1 and z24\0\0c2..z24\0\0
+ ..controls z24\0\1c1 and z24\0\1c2..z24\0\1
+ --z24\0\2
+ ..controls z24\0\3c1 and z24\0\3c2..z24\0\3
+ ..controls z24\0\4c1 and z24\0\4c2..z24\0\4
+ ..controls z24\0\5c1 and z24\0\5c2..z24\0\5
+ ..controls z24\0\6c1 and z24\0\6c2..z24\0\6
+ ..controls z24\0\7c1 and z24\0\7c2..z24\0\7
+ ..controls z24\0\8c1 and z24\0\8c2..z24\0\8
+ ..controls z24\0\9c1 and z24\0\9c2..z24\0\9
+ --z24\0\10
+ ..controls z24\0\11c1 and z24\0\11c2..z24\0\11
+ ..controls z24\0\12c1 and z24\0\12c2..z24\0\12
+ ..controls z24\0\13c1 and z24\0\13c2..z24\0\13
+ --z24\0\14
+ --z24\0\15
+ --z24\0\16
+ --z24\0\17
+ --z24\0\18
+ --z24\0\19
+ ..controls z24\0\20c1 and z24\0\20c2..z24\0\20
+ ..controls z24\0\21c1 and z24\0\21c2..z24\0\21
+ ..controls z24\0\22c1 and z24\0\22c2..z24\0\22
+ ..controls z24\0\23c1 and z24\0\23c2..z24\0\23
+ ..controls z24\0\24c1 and z24\0\24c2..cycle;
+ proof_labels (
+ 24\0\0,
+ 24\0\1,
+ 24\0\2,
+ 24\0\3,
+ 24\0\4,
+ 24\0\5,
+ 24\0\6,
+ 24\0\7,
+ 24\0\8,
+ 24\0\9,
+ 24\0\10,
+ 24\0\11,
+ 24\0\12,
+ 24\0\13,
+ 24\0\14,
+ 24\0\15,
+ 24\0\16,
+ 24\0\17,
+ 24\0\18,
+ 24\0\19,
+ 24\0\20,
+ 24\0\21,
+ 24\0\22,
+ 24\0\23,
+ 24\0\24,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, June 9, 2001, Beijing.
+%
+beginchar (TIB_DZRA, 9.154u#, 9.154u#, 3.854u#);
+ "dzra";
+ z62\0\0s = (0.482u,6.745u);
+ z62\0\0 = (0.482u,-0.909u);
+ z62\0\1c1 = (0.894u,-0.951u);
+ z62\0\1c2 = (1.280u,-0.941u);
+ z62\0\1 = (1.686u,-0.909u);
+ z62\0\2 = (2.891u,-0.544u);
+ z62\0\3c1 = (4.262u,-0.319u);
+ z62\0\3c2 = (5.891u,-0.527u);
+ z62\0\3 = (6.936u,-1.511u);
+ z62\0\4c1 = (7.357u,-1.907u);
+ z62\0\4c2 = (7.645u,-2.406u);
+ z62\0\4 = (7.950u,-2.891u);
+ z62\0\5c1 = (6.290u,-2.098u);
+ z62\0\5c2 = (2.045u,-0.273u);
+ z62\0\5 = (0.728u,-2.460u);
+ z62\0\6c1 = (0.548u,-2.757u);
+ z62\0\6c2 = (0.536u,-3.045u);
+ z62\0\6 = (0.482u,-3.372u);
+ z62\0\7c1 = (1.113u,-3.364u);
+ z62\0\7c2 = (1.562u,-3.387u);
+ z62\0\7 = (2.168u,-3.152u);
+ z62\0\8c1 = (2.786u,-2.913u);
+ z62\0\8c2 = (3.139u,-2.558u);
+ z62\0\8 = (3.854u,-2.535u);
+ z62\0\9c1 = (4.577u,-2.512u);
+ z62\0\9c2 = (7.670u,-3.412u);
+ z62\0\9 = (8.672u,-3.613u);
+ z62\0\10c1 = (8.052u,-1.318u);
+ z62\0\10c2 = (6.849u,0.365u);
+ z62\0\10 = (4.336u,0.701u);
+ z62\0\11c1 = (3.325u,0.804u);
+ z62\0\11c2 = (2.226u,0.723u);
+ z62\0\11 = (1.204u,0.701u);
+ z62\0\12 = (1.204u,2.461u);
+ z62\0\13c1 = (2.042u,2.409u);
+ z62\0\13c2 = (5.427u,2.332u);
+ z62\0\13 = (5.990u,2.461u);
+ z62\0\14c1 = (6.241u,2.593u);
+ z62\0\14c2 = (6.483u,2.710u);
+ z62\0\14 = (6.572u,2.980u);
+ z62\0\15c1 = (6.896u,3.966u);
+ z62\0\15c2 = (5.077u,3.853u);
+ z62\0\15 = (4.577u,3.854u);
+ z62\0\16 = (1.204u,3.854u);
+ z62\0\17 = (1.204u,5.300u);
+ z62\0\18c1 = (2.023u,5.300u);
+ z62\0\18c2 = (5.685u,5.199u);
+ z62\0\18 = (6.188u,5.444u);
+ z62\0\19c1 = (6.440u,5.567u);
+ z62\0\19c2 = (6.598u,5.748u);
+ z62\0\19 = (6.637u,6.032u);
+ z62\0\20c1 = (6.706u,6.532u);
+ z62\0\20c2 = (6.361u,6.731u);
+ z62\0\20 = (6.022u,6.986u);
+ z62\0\21 = (6.022u,7.468u);
+ z62\0\22c1 = (6.745u,7.614u);
+ z62\0\22c2 = (7.936u,7.760u);
+ z62\0\22 = (8.290u,8.497u);
+ z62\0\23c1 = (8.394u,8.716u);
+ z62\0\23c2 = (8.392u,8.925u);
+ z62\0\23 = (8.431u,9.154u);
+ z62\0\24c1 = (4.553u,9.118u);
+ z62\0\24c2 = (6.604u,7.577u);
+ z62\0\24 = (5.024u,6.889u);
+ z62\0\25c1 = (4.480u,6.653u);
+ z62\0\25c2 = (1.292u,6.745u);
+ fill_or_unfill z62\0\0s
+ --z62\0\0
+ ..controls z62\0\1c1 and z62\0\1c2..z62\0\1
+ --z62\0\2
+ ..controls z62\0\3c1 and z62\0\3c2..z62\0\3
+ ..controls z62\0\4c1 and z62\0\4c2..z62\0\4
+ ..controls z62\0\5c1 and z62\0\5c2..z62\0\5
+ ..controls z62\0\6c1 and z62\0\6c2..z62\0\6
+ ..controls z62\0\7c1 and z62\0\7c2..z62\0\7
+ ..controls z62\0\8c1 and z62\0\8c2..z62\0\8
+ ..controls z62\0\9c1 and z62\0\9c2..z62\0\9
+ ..controls z62\0\10c1 and z62\0\10c2..z62\0\10
+ ..controls z62\0\11c1 and z62\0\11c2..z62\0\11
+ --z62\0\12
+ ..controls z62\0\13c1 and z62\0\13c2..z62\0\13
+ ..controls z62\0\14c1 and z62\0\14c2..z62\0\14
+ ..controls z62\0\15c1 and z62\0\15c2..z62\0\15
+ --z62\0\16
+ --z62\0\17
+ ..controls z62\0\18c1 and z62\0\18c2..z62\0\18
+ ..controls z62\0\19c1 and z62\0\19c2..z62\0\19
+ ..controls z62\0\20c1 and z62\0\20c2..z62\0\20
+ --z62\0\21
+ ..controls z62\0\22c1 and z62\0\22c2..z62\0\22
+ ..controls z62\0\23c1 and z62\0\23c2..z62\0\23
+ ..controls z62\0\24c1 and z62\0\24c2..z62\0\24
+ ..controls z62\0\25c1 and z62\0\25c2..cycle;
+ proof_labels (
+ 62\0\0,
+ 62\0\1,
+ 62\0\2,
+ 62\0\3,
+ 62\0\4,
+ 62\0\5,
+ 62\0\6,
+ 62\0\7,
+ 62\0\8,
+ 62\0\9,
+ 62\0\10,
+ 62\0\11,
+ 62\0\12,
+ 62\0\13,
+ 62\0\14,
+ 62\0\15,
+ 62\0\16,
+ 62\0\17,
+ 62\0\18,
+ 62\0\19,
+ 62\0\20,
+ 62\0\21,
+ 62\0\22,
+ 62\0\23,
+ 62\0\24,
+ 62\0\25,
+);
+endchar;
+
+beginchar (TIB_THXA, 7.950u#, 6.745u#, 4.095u#);
+ "thxa";
+ z25\0\0s = (1.204u,-3.854u);
+ z25\0\0c1 = (3.796u,-1.507u);
+ z25\0\0c2 = (3.812u,-1.039u);
+ z25\0\0 = (7.468u,-1.204u);
+ z25\0\1c1 = (7.240u,0.124u);
+ z25\0\1c2 = (6.234u,0.562u);
+ z25\0\1 = (5.300u,1.445u);
+ z25\0\2c1 = (7.465u,1.928u);
+ z25\0\2c2 = (7.325u,3.063u);
+ z25\0\2 = (6.992u,4.818u);
+ z25\0\3c1 = (6.877u,5.427u);
+ z25\0\3c2 = (7.020u,6.062u);
+ z25\0\3 = (6.428u,6.462u);
+ z25\0\4c1 = (5.961u,6.777u);
+ z25\0\4c2 = (5.124u,6.742u);
+ z25\0\4 = (4.577u,6.745u);
+ z25\0\5c1 = (3.778u,6.749u);
+ z25\0\5c2 = (1.395u,6.928u);
+ z25\0\5 = (0.877u,6.360u);
+ z25\0\6c1 = (0.710u,6.178u);
+ z25\0\6c2 = (0.664u,6.008u);
+ z25\0\6 = (0.647u,5.768u);
+ z25\0\7 = (0.953u,3.854u);
+ z25\0\8c1 = (1.095u,1.281u);
+ z25\0\8c2 = (1.204u,-1.272u);
+ z25\1\0s = (2.685u,5.156u);
+ z25\1\0c1 = (5.921u,5.878u);
+ z25\1\0c2 = (7.528u,3.389u);
+ z25\1\0 = (4.577u,2.631u);
+ z25\1\1c1 = (3.291u,2.300u);
+ z25\1\1c2 = (0.987u,3.957u);
+ z25\2\0s = (2.168u,3.132u);
+ z25\2\0c1 = (3.438u,2.360u);
+ z25\2\0c2 = (4.637u,1.618u);
+ z25\2\0 = (5.300u,0.241u);
+ z25\2\1c1 = (3.855u,-0.331u);
+ z25\2\1c2 = (2.928u,-1.290u);
+ z25\2\1 = (1.686u,-2.168u);
+ z25\2\2c1 = (1.686u,-0.490u);
+ z25\2\2c2 = (1.457u,1.589u);
+ fill_or_unfill z25\0\0s
+ ..controls z25\0\0c1 and z25\0\0c2..z25\0\0
+ ..controls z25\0\1c1 and z25\0\1c2..z25\0\1
+ ..controls z25\0\2c1 and z25\0\2c2..z25\0\2
+ ..controls z25\0\3c1 and z25\0\3c2..z25\0\3
+ ..controls z25\0\4c1 and z25\0\4c2..z25\0\4
+ ..controls z25\0\5c1 and z25\0\5c2..z25\0\5
+ ..controls z25\0\6c1 and z25\0\6c2..z25\0\6
+ --z25\0\7
+ ..controls z25\0\8c1 and z25\0\8c2..cycle;
+ fill_or_unfill z25\1\0s
+ ..controls z25\1\0c1 and z25\1\0c2..z25\1\0
+ ..controls z25\1\1c1 and z25\1\1c2..cycle;
+ fill_or_unfill z25\2\0s
+ ..controls z25\2\0c1 and z25\2\0c2..z25\2\0
+ ..controls z25\2\1c1 and z25\2\1c2..z25\2\1
+ ..controls z25\2\2c1 and z25\2\2c2..cycle;
+ proof_labels (
+ 25\0\0,
+ 25\0\1,
+ 25\0\2,
+ 25\0\3,
+ 25\0\4,
+ 25\0\5,
+ 25\0\6,
+ 25\0\7,
+ 25\0\8,
+ 25\1\0,
+ 25\1\1,
+ 25\2\0,
+ 25\2\1,
+ 25\2\2,
+);
+endchar;
+
+beginchar (TIB_TXA, 6.986u#, 6.745u#, 6.986u#);
+ "txa";
+ z26\0\0s = (3.854u,-6.745u);
+ z26\0\0c1 = (3.422u,-4.621u);
+ z26\0\0c2 = (0.039u,-0.923u);
+ z26\0\0 = (2.676u,0.971u);
+ z26\0\1c1 = (4.071u,1.974u);
+ z26\0\1c2 = (5.022u,1.666u);
+ z26\0\1 = (6.504u,1.204u);
+ z26\0\2 = (6.504u,6.745u);
+ z26\0\3 = (2.650u,6.745u);
+ z26\0\4c1 = (2.177u,6.744u);
+ z26\0\4c2 = (1.042u,6.831u);
+ z26\0\4 = (0.763u,6.370u);
+ z26\0\5c1 = (0.408u,5.785u);
+ z26\0\5c2 = (1.270u,5.434u);
+ z26\0\5 = (1.691u,5.354u);
+ z26\0\6c1 = (2.511u,5.199u);
+ z26\0\6c2 = (5.491u,5.670u);
+ z26\0\6 = (5.432u,4.321u);
+ z26\0\7c1 = (5.359u,2.682u);
+ z26\0\7c2 = (2.607u,3.604u);
+ z26\0\7 = (1.549u,2.374u);
+ z26\0\8c1 = (-0.252u,0.280u);
+ z26\0\8c2 = (1.936u,-5.291u);
+ fill_or_unfill z26\0\0s
+ ..controls z26\0\0c1 and z26\0\0c2..z26\0\0
+ ..controls z26\0\1c1 and z26\0\1c2..z26\0\1
+ --z26\0\2
+ --z26\0\3
+ ..controls z26\0\4c1 and z26\0\4c2..z26\0\4
+ ..controls z26\0\5c1 and z26\0\5c2..z26\0\5
+ ..controls z26\0\6c1 and z26\0\6c2..z26\0\6
+ ..controls z26\0\7c1 and z26\0\7c2..z26\0\7
+ ..controls z26\0\8c1 and z26\0\8c2..cycle;
+ proof_labels (
+ 26\0\0,
+ 26\0\1,
+ 26\0\2,
+ 26\0\3,
+ 26\0\4,
+ 26\0\5,
+ 26\0\6,
+ 26\0\7,
+ 26\0\8,
+);
+endchar;
+
+beginchar (TIB_DXA, 9.395u#, 6.504u#, 5.541u#);
+ "dxa";
+ z27\0\0s = (2.168u,6.504u);
+ z27\0\0c1 = (2.437u,3.294u);
+ z27\0\0c2 = (5.415u,7.034u);
+ z27\0\0 = (7.950u,3.132u);
+ z27\0\1c1 = (6.635u,3.132u);
+ z27\0\1c2 = (5.318u,3.249u);
+ z27\0\1 = (4.136u,2.551u);
+ z27\0\2c1 = (3.501u,2.176u);
+ z27\0\2c2 = (2.679u,1.330u);
+ z27\0\2 = (2.296u,0.701u);
+ z27\0\3c1 = (1.653u,-0.353u);
+ z27\0\3c2 = (0.147u,-4.539u);
+ z27\0\3 = (1.204u,-5.300u);
+ z27\0\4c1 = (1.760u,-2.579u);
+ z27\0\4c2 = (3.171u,0.859u);
+ z27\0\4 = (6.263u,1.366u);
+ z27\0\5c1 = (7.141u,1.510u);
+ z27\0\5c2 = (8.037u,1.275u);
+ z27\0\5 = (8.913u,1.204u);
+ z27\0\6c1 = (8.904u,2.200u);
+ z27\0\6c2 = (8.595u,2.923u);
+ z27\0\6 = (8.490u,3.854u);
+ z27\0\7c1 = (8.410u,4.562u);
+ z27\0\7c2 = (8.976u,5.308u);
+ z27\0\7 = (8.617u,5.947u);
+ z27\0\8c1 = (8.106u,6.855u);
+ z27\0\8c2 = (3.302u,6.504u);
+ fill_or_unfill z27\0\0s
+ ..controls z27\0\0c1 and z27\0\0c2..z27\0\0
+ ..controls z27\0\1c1 and z27\0\1c2..z27\0\1
+ ..controls z27\0\2c1 and z27\0\2c2..z27\0\2
+ ..controls z27\0\3c1 and z27\0\3c2..z27\0\3
+ ..controls z27\0\4c1 and z27\0\4c2..z27\0\4
+ ..controls z27\0\5c1 and z27\0\5c2..z27\0\5
+ ..controls z27\0\6c1 and z27\0\6c2..z27\0\6
+ ..controls z27\0\7c1 and z27\0\7c2..z27\0\7
+ ..controls z27\0\8c1 and z27\0\8c2..cycle;
+ proof_labels (
+ 27\0\0,
+ 27\0\1,
+ 27\0\2,
+ 27\0\3,
+ 27\0\4,
+ 27\0\5,
+ 27\0\6,
+ 27\0\7,
+ 27\0\8,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, December 17, 2001, Ulaanbaatar.
+%
+beginchar (TIB_NNYA, 7.950u#, 6.745u#, 6.263u#);
+ "na+ya";
+ z67\0\0s = (2.168u,5.300u);
+ z67\0\0c1 = (3.583u,5.216u);
+ z67\0\0c2 = (3.833u,5.066u);
+ z67\0\0 = (4.577u,3.807u);
+ z67\0\1c1 = (3.876u,3.854u);
+ z67\0\1c2 = (3.094u,3.918u);
+ z67\0\1 = (2.409u,3.807u);
+ z67\0\2c1 = (1.740u,3.606u);
+ z67\0\2c2 = (1.104u,3.242u);
+ z67\0\2 = (0.765u,2.625u);
+ z67\0\3c1 = (-0.601u,0.139u);
+ z67\0\3c2 = (3.807u,-2.182u);
+ z67\0\3 = (5.059u,1.445u);
+ z67\0\4c1 = (6.353u,0.311u);
+ z67\0\4c2 = (6.526u,-0.833u);
+ z67\0\4 = (6.986u,-2.409u);
+ z67\0\5 = (4.818u,-3.377u);
+ z67\0\6c1 = (3.537u,-3.794u);
+ z67\0\6c2 = (1.772u,-2.756u);
+ z67\0\6 = (0.482u,-2.409u);
+ z67\0\7c1 = (0.506u,-2.819u);
+ z67\0\7c2 = (0.508u,-3.222u);
+ z67\0\7 = (0.659u,-3.613u);
+ z67\0\8c1 = (0.947u,-4.355u);
+ z67\0\8c2 = (1.521u,-4.821u);
+ z67\0\8 = (2.169u,-5.240u);
+ z67\0\9c1 = (3.492u,-6.098u);
+ z67\0\9c2 = (4.631u,-6.329u);
+ z67\0\9 = (6.019u,-5.444u);
+ z67\0\10c1 = (6.850u,-4.914u);
+ z67\0\10c2 = (7.149u,-4.527u);
+ z67\0\10 = (7.468u,-3.613u);
+ z67\0\11 = (5.541u,-4.710u);
+ z67\0\12c1 = (3.676u,-5.607u);
+ z67\0\12c2 = (2.049u,-4.337u);
+ z67\0\12 = (0.723u,-3.132u);
+ z67\0\13c1 = (1.512u,-3.471u);
+ z67\0\13c2 = (2.305u,-3.913u);
+ z67\0\13 = (3.132u,-4.147u);
+ z67\0\14c1 = (4.391u,-4.502u);
+ z67\0\14c2 = (5.203u,-4.256u);
+ z67\0\14 = (6.259u,-3.526u);
+ z67\0\15c1 = (6.623u,-3.275u);
+ z67\0\15c2 = (6.998u,-2.998u);
+ z67\0\15 = (7.222u,-2.606u);
+ z67\0\16c1 = (7.862u,-1.480u);
+ z67\0\16c2 = (7.279u,1.098u);
+ z67\0\16 = (6.658u,2.165u);
+ z67\0\17c1 = (5.936u,3.403u);
+ z67\0\17c2 = (5.207u,3.502u);
+ z67\0\17 = (4.818u,5.059u);
+ z67\0\18c1 = (5.623u,5.066u);
+ z67\0\18c2 = (6.917u,4.978u);
+ z67\0\18 = (7.324u,5.848u);
+ z67\0\19c1 = (7.455u,6.129u);
+ z67\0\19c2 = (7.443u,6.445u);
+ z67\0\19 = (7.468u,6.745u);
+ z67\0\20c1 = (6.583u,6.745u);
+ z67\0\20c2 = (3.340u,6.902u);
+ z67\0\20 = (2.753u,6.499u);
+ z67\0\21c1 = (2.324u,6.204u);
+ z67\0\21c2 = (2.271u,5.765u);
+ z67\1\0s = (2.410u,2.778u);
+ z67\1\0c1 = (5.400u,2.992u);
+ z67\1\0c2 = (4.753u,0.468u);
+ z67\1\0 = (3.128u,0.114u);
+ z67\1\1c1 = (1.725u,-0.192u);
+ z67\1\1c2 = (0.323u,1.440u);
+ z67\1\1 = (1.722u,2.472u);
+ z67\1\2c1 = (1.952u,2.642u);
+ z67\1\2c2 = (2.155u,2.678u);
+ fill_or_unfill z67\0\0s
+ ..controls z67\0\0c1 and z67\0\0c2..z67\0\0
+ ..controls z67\0\1c1 and z67\0\1c2..z67\0\1
+ ..controls z67\0\2c1 and z67\0\2c2..z67\0\2
+ ..controls z67\0\3c1 and z67\0\3c2..z67\0\3
+ ..controls z67\0\4c1 and z67\0\4c2..z67\0\4
+ --z67\0\5
+ ..controls z67\0\6c1 and z67\0\6c2..z67\0\6
+ ..controls z67\0\7c1 and z67\0\7c2..z67\0\7
+ ..controls z67\0\8c1 and z67\0\8c2..z67\0\8
+ ..controls z67\0\9c1 and z67\0\9c2..z67\0\9
+ ..controls z67\0\10c1 and z67\0\10c2..z67\0\10
+ --z67\0\11
+ ..controls z67\0\12c1 and z67\0\12c2..z67\0\12
+ ..controls z67\0\13c1 and z67\0\13c2..z67\0\13
+ ..controls z67\0\14c1 and z67\0\14c2..z67\0\14
+ ..controls z67\0\15c1 and z67\0\15c2..z67\0\15
+ ..controls z67\0\16c1 and z67\0\16c2..z67\0\16
+ ..controls z67\0\17c1 and z67\0\17c2..z67\0\17
+ ..controls z67\0\18c1 and z67\0\18c2..z67\0\18
+ ..controls z67\0\19c1 and z67\0\19c2..z67\0\19
+ ..controls z67\0\20c1 and z67\0\20c2..z67\0\20
+ ..controls z67\0\21c1 and z67\0\21c2..cycle;
+ fill_or_unfill z67\1\0s
+ ..controls z67\1\0c1 and z67\1\0c2..z67\1\0
+ ..controls z67\1\1c1 and z67\1\1c2..z67\1\1
+ ..controls z67\1\2c1 and z67\1\2c2..cycle;
+ proof_labels (
+ 67\0\0,
+ 67\0\1,
+ 67\0\2,
+ 67\0\3,
+ 67\0\4,
+ 67\0\5,
+ 67\0\6,
+ 67\0\7,
+ 67\0\8,
+ 67\0\9,
+ 67\0\10,
+ 67\0\11,
+ 67\0\12,
+ 67\0\13,
+ 67\0\14,
+ 67\0\15,
+ 67\0\16,
+ 67\0\17,
+ 67\0\18,
+ 67\0\19,
+ 67\0\20,
+ 67\0\21,
+ 67\1\0,
+ 67\1\1,
+ 67\1\2,
+);
+endchar;
+
+beginchar (TIB_NXA, 7.950u#, 6.745u#, 6.263u#);
+ "nxa";
+ z28\0\0s = (0.482u,-6.022u);
+ z28\0\0 = (1.204u,-6.022u);
+ z28\0\1c1 = (1.204u,-2.971u);
+ z28\0\1c2 = (1.163u,-0.691u);
+ z28\0\1 = (3.372u,1.686u);
+ z28\0\2c1 = (3.639u,0.042u);
+ z28\0\2c2 = (5.715u,-1.393u);
+ z28\0\2 = (7.083u,0.123u);
+ z28\0\3c1 = (8.031u,1.174u);
+ z28\0\3c2 = (7.425u,3.361u);
+ z28\0\3 = (6.021u,3.802u);
+ z28\0\4c1 = (5.439u,3.913u);
+ z28\0\4c2 = (4.478u,3.854u);
+ z28\0\4 = (3.854u,3.802u);
+ z28\0\5c1 = (4.463u,5.066u);
+ z28\0\5c2 = (4.958u,5.223u);
+ z28\0\5 = (6.263u,5.300u);
+ z28\0\6c1 = (5.830u,7.268u);
+ z28\0\6c2 = (4.041u,6.774u);
+ z28\0\6 = (2.409u,6.744u);
+ z28\0\7c1 = (1.906u,6.735u);
+ z28\0\7c2 = (0.877u,6.771u);
+ z28\0\7 = (0.902u,6.019u);
+ z28\0\8c1 = (0.941u,4.837u);
+ z28\0\8c2 = (3.308u,5.750u);
+ z28\0\8 = (3.156u,4.332u);
+ z28\0\9c1 = (3.094u,3.749u);
+ z28\0\9c2 = (1.652u,2.427u);
+ z28\0\9 = (1.298u,1.444u);
+ z28\0\10c1 = (0.668u,-0.303u);
+ z28\0\10c2 = (0.482u,-4.104u);
+ z28\1\0s = (5.060u,2.793u);
+ z28\1\0c1 = (7.695u,3.008u);
+ z28\1\0c2 = (7.362u,0.278u);
+ z28\1\0 = (5.778u,0.080u);
+ z28\1\1c1 = (4.394u,-0.093u);
+ z28\1\1c2 = (2.508u,1.958u);
+ fill_or_unfill z28\0\0s
+ --z28\0\0
+ ..controls z28\0\1c1 and z28\0\1c2..z28\0\1
+ ..controls z28\0\2c1 and z28\0\2c2..z28\0\2
+ ..controls z28\0\3c1 and z28\0\3c2..z28\0\3
+ ..controls z28\0\4c1 and z28\0\4c2..z28\0\4
+ ..controls z28\0\5c1 and z28\0\5c2..z28\0\5
+ ..controls z28\0\6c1 and z28\0\6c2..z28\0\6
+ ..controls z28\0\7c1 and z28\0\7c2..z28\0\7
+ ..controls z28\0\8c1 and z28\0\8c2..z28\0\8
+ ..controls z28\0\9c1 and z28\0\9c2..z28\0\9
+ ..controls z28\0\10c1 and z28\0\10c2..cycle;
+ fill_or_unfill z28\1\0s
+ ..controls z28\1\0c1 and z28\1\0c2..z28\1\0
+ ..controls z28\1\1c1 and z28\1\1c2..cycle;
+ proof_labels (
+ 28\0\0,
+ 28\0\1,
+ 28\0\2,
+ 28\0\3,
+ 28\0\4,
+ 28\0\5,
+ 28\0\6,
+ 28\0\7,
+ 28\0\8,
+ 28\0\9,
+ 28\0\10,
+ 28\1\0,
+ 28\1\1,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Character copied to this position from Sam Sirlin's material
+% (version 6).
+%
+% Oliver Corff, December 17, 2001, Ulaanbaatar.
+%
+beginchar (TIB_NXYA, 7.950u#, 6.745u#, 6.504u#);
+ "nxa+ya";
+ z68\0\0s = (6.745u,-2.891u);
+ z68\0\0c1 = (6.564u,-3.089u);
+ z68\0\0c2 = (6.435u,-3.277u);
+ z68\0\0 = (6.209u,-3.439u);
+ z68\0\1c1 = (5.488u,-3.954u);
+ z68\0\1c2 = (3.979u,-3.932u);
+ z68\0\1 = (3.132u,-3.764u);
+ z68\0\2 = (0.723u,-3.132u);
+ z68\0\3c1 = (0.783u,-3.653u);
+ z68\0\3c2 = (0.826u,-4.087u);
+ z68\0\3 = (1.141u,-4.533u);
+ z68\0\4c1 = (1.454u,-4.975u);
+ z68\0\4c2 = (1.947u,-5.302u);
+ z68\0\4 = (2.410u,-5.570u);
+ z68\0\5c1 = (3.860u,-6.408u);
+ z68\0\5c2 = (6.208u,-6.706u);
+ z68\0\5 = (7.226u,-5.015u);
+ z68\0\6c1 = (7.364u,-4.786u);
+ z68\0\6c2 = (7.392u,-4.581u);
+ z68\0\6 = (7.468u,-4.336u);
+ z68\0\7 = (5.541u,-5.108u);
+ z68\0\8c1 = (3.890u,-5.593u);
+ z68\0\8c2 = (2.470u,-4.863u);
+ z68\0\8 = (1.204u,-3.854u);
+ z68\0\9c1 = (2.809u,-4.461u);
+ z68\0\9c2 = (4.627u,-4.935u);
+ z68\0\9 = (6.253u,-4.115u);
+ z68\0\10c1 = (6.730u,-3.875u);
+ z68\0\10c2 = (7.076u,-3.612u);
+ z68\0\10 = (7.290u,-3.107u);
+ z68\0\11c1 = (7.449u,-2.732u);
+ z68\0\11c2 = (7.444u,-2.325u);
+ z68\0\11 = (7.468u,-1.927u);
+ z68\0\12 = (5.059u,-2.364u);
+ z68\0\13c1 = (3.871u,-2.462u);
+ z68\0\13c2 = (2.333u,-2.052u);
+ z68\0\13 = (1.204u,-1.686u);
+ z68\0\14c1 = (1.756u,-0.098u);
+ z68\0\14c2 = (1.958u,0.423u);
+ z68\0\14 = (3.132u,1.686u);
+ z68\0\15c1 = (3.204u,1.241u);
+ z68\0\15c2 = (3.243u,0.891u);
+ z68\0\15 = (3.517u,0.508u);
+ z68\0\16c1 = (4.217u,-0.475u);
+ z68\0\16c2 = (5.964u,-0.850u);
+ z68\0\16 = (6.842u,0.123u);
+ z68\0\17c1 = (7.179u,0.496u);
+ z68\0\17c2 = (7.210u,0.969u);
+ z68\0\17 = (7.221u,1.445u);
+ z68\0\18c1 = (7.249u,2.579u);
+ z68\0\18c2 = (6.978u,3.418u);
+ z68\0\18 = (5.780u,3.802u);
+ z68\0\19c1 = (5.198u,3.913u);
+ z68\0\19c2 = (4.237u,3.854u);
+ z68\0\19 = (3.613u,3.802u);
+ z68\0\20c1 = (4.222u,5.066u);
+ z68\0\20c2 = (4.718u,5.223u);
+ z68\0\20 = (6.022u,5.300u);
+ z68\0\21c1 = (5.938u,5.685u);
+ z68\0\21c2 = (5.899u,6.061u);
+ z68\0\21 = (5.604u,6.360u);
+ z68\0\22c1 = (5.055u,6.918u);
+ z68\0\22c2 = (2.965u,6.759u);
+ z68\0\22 = (2.168u,6.744u);
+ z68\0\23c1 = (1.665u,6.735u);
+ z68\0\23c2 = (0.636u,6.771u);
+ z68\0\23 = (0.661u,6.019u);
+ z68\0\24c1 = (0.700u,4.837u);
+ z68\0\24c2 = (3.067u,5.750u);
+ z68\0\24 = (2.915u,4.332u);
+ z68\0\25c1 = (2.849u,3.710u);
+ z68\0\25c2 = (1.849u,2.941u);
+ z68\0\25 = (1.490u,2.365u);
+ z68\0\26c1 = (1.193u,1.890u);
+ z68\0\26c2 = (0.966u,1.270u);
+ z68\0\26 = (0.847u,0.723u);
+ z68\0\27c1 = (0.695u,0.022u);
+ z68\0\27c2 = (0.626u,-1.244u);
+ z68\0\27 = (1.006u,-1.874u);
+ z68\0\28c1 = (1.187u,-2.175u);
+ z68\0\28c2 = (1.407u,-2.348u);
+ z68\0\28 = (1.712u,-2.513u);
+ z68\0\29c1 = (2.339u,-2.853u);
+ z68\0\29c2 = (4.586u,-3.398u);
+ z68\0\29 = (5.300u,-3.343u);
+ z68\0\30c1 = (5.849u,-3.302u);
+ z68\0\30c2 = (6.255u,-3.118u);
+ z68\1\0s = (4.819u,2.752u);
+ z68\1\0c1 = (5.231u,2.827u);
+ z68\1\0c2 = (5.589u,2.886u);
+ z68\1\0 = (5.987u,2.752u);
+ z68\1\1c1 = (7.145u,2.208u);
+ z68\1\1c2 = (6.955u,0.258u);
+ z68\1\1 = (5.537u,0.080u);
+ z68\1\2c1 = (4.513u,-0.048u);
+ z68\1\2c2 = (2.951u,1.268u);
+ z68\1\2 = (3.768u,2.253u);
+ z68\1\3c1 = (4.044u,2.585u);
+ z68\1\3c2 = (4.435u,2.667u);
+ fill_or_unfill z68\0\0s
+ ..controls z68\0\0c1 and z68\0\0c2..z68\0\0
+ ..controls z68\0\1c1 and z68\0\1c2..z68\0\1
+ --z68\0\2
+ ..controls z68\0\3c1 and z68\0\3c2..z68\0\3
+ ..controls z68\0\4c1 and z68\0\4c2..z68\0\4
+ ..controls z68\0\5c1 and z68\0\5c2..z68\0\5
+ ..controls z68\0\6c1 and z68\0\6c2..z68\0\6
+ --z68\0\7
+ ..controls z68\0\8c1 and z68\0\8c2..z68\0\8
+ ..controls z68\0\9c1 and z68\0\9c2..z68\0\9
+ ..controls z68\0\10c1 and z68\0\10c2..z68\0\10
+ ..controls z68\0\11c1 and z68\0\11c2..z68\0\11
+ --z68\0\12
+ ..controls z68\0\13c1 and z68\0\13c2..z68\0\13
+ ..controls z68\0\14c1 and z68\0\14c2..z68\0\14
+ ..controls z68\0\15c1 and z68\0\15c2..z68\0\15
+ ..controls z68\0\16c1 and z68\0\16c2..z68\0\16
+ ..controls z68\0\17c1 and z68\0\17c2..z68\0\17
+ ..controls z68\0\18c1 and z68\0\18c2..z68\0\18
+ ..controls z68\0\19c1 and z68\0\19c2..z68\0\19
+ ..controls z68\0\20c1 and z68\0\20c2..z68\0\20
+ ..controls z68\0\21c1 and z68\0\21c2..z68\0\21
+ ..controls z68\0\22c1 and z68\0\22c2..z68\0\22
+ ..controls z68\0\23c1 and z68\0\23c2..z68\0\23
+ ..controls z68\0\24c1 and z68\0\24c2..z68\0\24
+ ..controls z68\0\25c1 and z68\0\25c2..z68\0\25
+ ..controls z68\0\26c1 and z68\0\26c2..z68\0\26
+ ..controls z68\0\27c1 and z68\0\27c2..z68\0\27
+ ..controls z68\0\28c1 and z68\0\28c2..z68\0\28
+ ..controls z68\0\29c1 and z68\0\29c2..z68\0\29
+ ..controls z68\0\30c1 and z68\0\30c2..cycle;
+ fill_or_unfill z68\1\0s
+ ..controls z68\1\0c1 and z68\1\0c2..z68\1\0
+ ..controls z68\1\1c1 and z68\1\1c2..z68\1\1
+ ..controls z68\1\2c1 and z68\1\2c2..z68\1\2
+ ..controls z68\1\3c1 and z68\1\3c2..cycle;
+ proof_labels (
+ 68\0\0,
+ 68\0\1,
+ 68\0\2,
+ 68\0\3,
+ 68\0\4,
+ 68\0\5,
+ 68\0\6,
+ 68\0\7,
+ 68\0\8,
+ 68\0\9,
+ 68\0\10,
+ 68\0\11,
+ 68\0\12,
+ 68\0\13,
+ 68\0\14,
+ 68\0\15,
+ 68\0\16,
+ 68\0\17,
+ 68\0\18,
+ 68\0\19,
+ 68\0\20,
+ 68\0\21,
+ 68\0\22,
+ 68\0\23,
+ 68\0\24,
+ 68\0\25,
+ 68\0\26,
+ 68\0\27,
+ 68\0\28,
+ 68\0\29,
+ 68\0\30,
+ 68\1\0,
+ 68\1\1,
+ 68\1\2,
+ 68\1\3,
+);
+endchar;
+
+beginchar (TIB_KSHXA, 10.840u#, 6.745u#, 9.154u#);
+ "kshxa";
+ z29\0\0s = (0.482u,5.300u);
+ z29\0\0 = (1.445u,5.059u);
+ z29\0\1 = (0.482u,2.168u);
+ z29\0\2c1 = (1.855u,2.967u);
+ z29\0\2c2 = (1.733u,4.462u);
+ z29\0\2 = (2.715u,5.052u);
+ z29\0\3c1 = (5.117u,6.495u);
+ z29\0\3c2 = (4.818u,1.059u);
+ z29\0\3 = (4.818u,0.000u);
+ z29\0\4 = (1.483u,0.000u);
+ z29\0\5c1 = (1.445u,-1.089u);
+ z29\0\5c2 = (1.376u,-7.652u);
+ z29\0\5 = (1.483u,-8.158u);
+ z29\0\6c1 = (1.653u,-8.622u);
+ z29\0\6c2 = (1.804u,-8.669u);
+ z29\0\6 = (2.168u,-8.913u);
+ z29\0\7c1 = (2.168u,-7.677u);
+ z29\0\7c2 = (2.115u,-6.510u);
+ z29\0\7 = (2.409u,-5.300u);
+ z29\0\8c1 = (4.590u,-6.144u);
+ z29\0\8c2 = (5.901u,-6.454u);
+ z29\0\8 = (7.950u,-5.059u);
+ z29\0\9 = (8.431u,-8.431u);
+ z29\0\10c1 = (9.908u,-7.956u);
+ z29\0\10c2 = (10.267u,-7.565u);
+ z29\0\10 = (10.359u,-6.022u);
+ z29\0\11c1 = (9.620u,-6.257u);
+ z29\0\11c2 = (9.535u,-6.310u);
+ z29\0\11 = (9.154u,-6.986u);
+ z29\0\12c1 = (8.660u,-5.487u);
+ z29\0\12c2 = (9.006u,-3.742u);
+ z29\0\12 = (8.495u,-2.409u);
+ z29\0\13c1 = (7.795u,-0.584u);
+ z29\0\13c2 = (5.728u,-0.534u);
+ z29\0\13 = (5.375u,0.748u);
+ z29\0\14c1 = (5.077u,1.832u);
+ z29\0\14c2 = (5.540u,4.047u);
+ z29\0\14 = (5.541u,5.300u);
+ z29\0\15 = (8.431u,5.300u);
+ z29\0\16 = (8.913u,-0.482u);
+ z29\0\17 = (9.382u,-0.482u);
+ z29\0\18c1 = (9.395u,0.342u);
+ z29\0\18c2 = (9.526u,5.913u);
+ z29\0\18 = (9.382u,6.188u);
+ z29\0\19c1 = (9.040u,6.759u);
+ z29\0\19c2 = (8.280u,6.734u);
+ z29\0\19 = (7.709u,6.744u);
+ z29\0\20c1 = (6.618u,6.764u);
+ z29\0\20c2 = (1.700u,6.939u);
+ z29\0\20 = (1.039u,6.499u);
+ z29\0\21c1 = (0.590u,6.200u);
+ z29\0\21c2 = (0.562u,5.780u);
+ z29\1\0s = (4.095u,-0.662u);
+ z29\1\0c1 = (9.870u,-0.902u);
+ z29\1\0c2 = (7.897u,-5.350u);
+ z29\1\0 = (5.541u,-5.414u);
+ z29\1\1c1 = (2.238u,-5.502u);
+ z29\1\1c2 = (0.388u,-1.055u);
+ fill_or_unfill z29\0\0s
+ --z29\0\0
+ --z29\0\1
+ ..controls z29\0\2c1 and z29\0\2c2..z29\0\2
+ ..controls z29\0\3c1 and z29\0\3c2..z29\0\3
+ --z29\0\4
+ ..controls z29\0\5c1 and z29\0\5c2..z29\0\5
+ ..controls z29\0\6c1 and z29\0\6c2..z29\0\6
+ ..controls z29\0\7c1 and z29\0\7c2..z29\0\7
+ ..controls z29\0\8c1 and z29\0\8c2..z29\0\8
+ --z29\0\9
+ ..controls z29\0\10c1 and z29\0\10c2..z29\0\10
+ ..controls z29\0\11c1 and z29\0\11c2..z29\0\11
+ ..controls z29\0\12c1 and z29\0\12c2..z29\0\12
+ ..controls z29\0\13c1 and z29\0\13c2..z29\0\13
+ ..controls z29\0\14c1 and z29\0\14c2..z29\0\14
+ --z29\0\15
+ --z29\0\16
+ --z29\0\17
+ ..controls z29\0\18c1 and z29\0\18c2..z29\0\18
+ ..controls z29\0\19c1 and z29\0\19c2..z29\0\19
+ ..controls z29\0\20c1 and z29\0\20c2..z29\0\20
+ ..controls z29\0\21c1 and z29\0\21c2..cycle;
+ fill_or_unfill z29\1\0s
+ ..controls z29\1\0c1 and z29\1\0c2..z29\1\0
+ ..controls z29\1\1c1 and z29\1\1c2..cycle;
+ proof_labels (
+ 29\0\0,
+ 29\0\1,
+ 29\0\2,
+ 29\0\3,
+ 29\0\4,
+ 29\0\5,
+ 29\0\6,
+ 29\0\7,
+ 29\0\8,
+ 29\0\9,
+ 29\0\10,
+ 29\0\11,
+ 29\0\12,
+ 29\0\13,
+ 29\0\14,
+ 29\0\15,
+ 29\0\16,
+ 29\0\17,
+ 29\0\18,
+ 29\0\19,
+ 29\0\20,
+ 29\0\21,
+ 29\1\0,
+ 29\1\1,
+);
+endchar;
+
+beginchar (TIB_SHXA, 11.563u#, 6.745u#, 6.504u#);
+ "shxa";
+ z30\0\0s = (1.204u,-6.263u);
+ z30\0\0 = (1.686u,-6.263u);
+ z30\0\1 = (1.927u,1.204u);
+ z30\0\2c1 = (3.808u,0.241u);
+ z30\0\2c2 = (5.695u,-0.577u);
+ z30\0\2 = (6.986u,1.686u);
+ z30\0\3c1 = (7.303u,0.569u);
+ z30\0\3c2 = (7.227u,-0.535u);
+ z30\0\3 = (7.227u,-1.686u);
+ z30\0\4c1 = (9.028u,-0.412u);
+ z30\0\4c2 = (8.247u,0.243u);
+ z30\0\4 = (11.081u,0.482u);
+ z30\0\5 = (11.081u,1.927u);
+ z30\0\6c1 = (9.520u,1.634u);
+ z30\0\6c2 = (8.844u,1.072u);
+ z30\0\6 = (7.709u,0.000u);
+ z30\0\7c1 = (6.776u,3.835u);
+ z30\0\7c2 = (7.794u,6.781u);
+ z30\0\7 = (2.409u,6.745u);
+ z30\0\8c1 = (1.847u,6.741u);
+ z30\0\8c2 = (0.895u,6.830u);
+ z30\0\8 = (0.639u,6.188u);
+ z30\0\9 = (1.204u,1.927u);
+ z30\1\0s = (3.377u,5.193u);
+ z30\1\0c1 = (7.316u,5.619u);
+ z30\1\0c2 = (7.952u,1.456u);
+ z30\1\0 = (5.299u,0.798u);
+ z30\1\1c1 = (2.410u,0.082u);
+ z30\1\1c2 = (0.876u,4.145u);
+ fill_or_unfill z30\0\0s
+ --z30\0\0
+ --z30\0\1
+ ..controls z30\0\2c1 and z30\0\2c2..z30\0\2
+ ..controls z30\0\3c1 and z30\0\3c2..z30\0\3
+ ..controls z30\0\4c1 and z30\0\4c2..z30\0\4
+ --z30\0\5
+ ..controls z30\0\6c1 and z30\0\6c2..z30\0\6
+ ..controls z30\0\7c1 and z30\0\7c2..z30\0\7
+ ..controls z30\0\8c1 and z30\0\8c2..z30\0\8
+ --z30\0\9
+ --cycle;
+ fill_or_unfill z30\1\0s
+ ..controls z30\1\0c1 and z30\1\0c2..z30\1\0
+ ..controls z30\1\1c1 and z30\1\1c2..cycle;
+ proof_labels (
+ 30\0\0,
+ 30\0\1,
+ 30\0\2,
+ 30\0\3,
+ 30\0\4,
+ 30\0\5,
+ 30\0\6,
+ 30\0\7,
+ 30\0\8,
+ 30\0\9,
+ 30\0\10,
+ 30\1\0,
+ 30\1\1,
+);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ctib/ctibligs.mf b/Master/texmf-dist/fonts/source/public/ctib/ctibligs.mf
new file mode 100644
index 00000000000..8b8ae9bda2c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ctib/ctibligs.mf
@@ -0,0 +1,1242 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: ctibligs.mf
+% Author: Oliver Corff
+% Initial Date: October 5th, 1999
+% Revision Date: December 17th, 2001
+% Version: \TibLaTeXVersionRelease of ctibtex
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: The ctib ligature file provides most of the
+% ligatures necessary for writing Tibetan in
+% TeX and LaTeX documents, making use of a
+% modified version of Sirlin's Tibetan fonts.
+%
+% Technical Note: This file is best viewn and edited with a tab stop
+% setting of 12, and a shift width of 12. A vi mode
+% line to this effect is at the bottom of the file.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_TOPINI.YIGMGOMDUNMA:
+ TIB_TOPINI.YIGMGOMDUNMA =: TIB_INI.YIGMGOMDUNMA; % ((
+ligtable TIB_ACHUNG: TIB_E kern -10.4u#, % '+e
+ TIB_I kern -10.60u#, % '+i
+ TIB_O kern -12.25u#, % '+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -10.50u#, % '+u
+ BNDRY |=: TIB_TSHEG; % '
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable ||: TIB_E =:| TIB_A, % Initial vowel e
+ TIB_I =:| TIB_A, % i
+ TIB_O =:| TIB_A, % o
+ TIB_U =:| TIB_A; % u
+ligtable TIB_TSHEG: TIB_E |=:| TIB_A, % e
+ TIB_I |=:| TIB_A, % i
+ TIB_O |=:| TIB_A, % o
+ TIB_U |=:| TIB_A; % u
+ligtable TIB_TSHEGSHAD: TIB_E |=:| TIB_A, % e
+ TIB_I |=:| TIB_A, % i
+ TIB_O |=:| TIB_A, % o
+ TIB_U |=:| TIB_A; % u
+ligtable TIB_SHAD: TIB_E |=:| TIB_A, % e
+ TIB_I |=:| TIB_A, % i
+ TIB_O |=:| TIB_A, % o
+ TIB_U |=:| TIB_A; % u
+ligtable TIB_A: TIB_E kern -10.1u#, % e
+ TIB_I kern -10.7u#, % i
+ TIB_O kern -13.5u#, % o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -10.6u#, % Initial vowel u
+ BNDRY |=: TIB_TSHEG; % ...a
+ligtable TIB_O: BNDRY |=: TIB_TSHEG, %
+ TIB_TSHEG kern -2.5u#, % ...o
+ TIB_DA kern -2.5u#, %
+ TIB_GA kern -2.5u#, % followed by
+ TIB_NGA kern -2.5u#, % finals, the
+ TIB_NA kern -2.5u#, % gaps should
+ TIB_BA kern -2.5u#, % not be all too
+ TIB_MA kern -2.5u#, % wide.
+ TIB_WA kern -2.5u#, %
+ TIB_RA kern -2.5u#, %
+ TIB_LA kern -2.5u#, %
+ TIB_SA kern -2.5u#; %
+ligtable TIB_E: BNDRY |=: TIB_TSHEG, % ...e
+ TIB_TSHEG kern 1u#, %
+ TIB_DA kern 1u#, %
+ TIB_GA kern 1u#, % followed by
+ TIB_NGA kern 1u#, % finals, the
+ TIB_NA kern 1u#, % gaps should
+ TIB_BA kern 1u#, % not be all too
+ TIB_MA kern 1u#, % wide.
+ TIB_WA kern 1u#, %
+ TIB_RA kern 1u#, %
+ TIB_LA kern 1u#, %
+ TIB_SA kern 1u#; %
+ligtable TIB_I: BNDRY |=: TIB_TSHEG, % ...i
+ TIB_TSHEG kern 0.75u#, %
+ TIB_DA kern 0.75u#, %
+ TIB_GA kern 0.75u#, % followed by
+ TIB_NGA kern 0.75u#, % finals, the
+ TIB_NA kern 0.75u#, % gaps should
+ TIB_BA kern 0.75u#, % not be all too
+ TIB_MA kern 0.75u#, % wide.
+ TIB_WA kern 0.75u#, %
+ TIB_RA kern 0.75u#, %
+ TIB_LA kern 0.75u#, %
+ TIB_SA kern 0.75u#; %
+ligtable TIB_U: BNDRY |=: TIB_TSHEG, % ...u
+ TIB_NGA kern 0.75u#, %
+ TIB_NA kern 0.75u#; %
+ligtable TIB_UU: BNDRY |=: TIB_TSHEG, % ...u, tiefer
+ TIB_NGA kern 0.75u#, %
+ TIB_NA kern 0.75u#; %
+ligtable TIB_UUU: BNDRY |=: TIB_TSHEG, % ...u, tiefer
+ TIB_NGA kern 0.75u#, %
+ TIB_NA kern 0.75u#; %
+ligtable TIB_UUUU: BNDRY |=: TIB_TSHEG, % ...u, tiefer
+ TIB_NGA kern 0.75u#, %
+ TIB_NA kern 0.75u#; %
+ligtable TIB_UUUUU: BNDRY |=: TIB_TSHEG, % ...u, tiefer
+ TIB_NGA kern 0.75u#, %
+ TIB_NA kern 0.75u#; %
+ligtable TIB_UUUUUU: BNDRY |=: TIB_TSHEG, % ...u, tiefer
+ TIB_NGA kern 0.75u#, %
+ TIB_NA kern 0.75u#; %
+ligtable TIB_UUUUUUU: BNDRY |=: TIB_TSHEG, % ...u, tiefer
+ TIB_NGA kern 0.75u#, %
+ TIB_NA kern 0.75u#; %
+ligtable TIB_UUUUUUUU: BNDRY |=: TIB_TSHEG, % ...u, tiefer
+ TIB_NGA kern 0.75u#, %
+ TIB_NA kern 0.75u#; %
+ligtable TIB_XA: BNDRY |=: TIB_TSHEG; % ...{C}a
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_BA: TIB_A |=: TIB_XA, % b+a
+ TIB_E kern -7.8u#, % b+e
+ TIB_I kern -9.4u#, % b+i
+ TIB_O kern -11.5u#, % b+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -9.7u#, % b+u
+ TIB_HA =: TIB_BHA, % b+ha
+ TIB_LA =: TIB_BLA, % b+la
+ TIB_RA =: TIB_BRA, % b+ra
+ TIB_YA =: TIB_BYA, % b+ya
+ BNDRY |=: TIB_TSHEG; % ...b
+ligtable TIB_BHA: TIB_A |=: TIB_XA, % bh+a
+ TIB_E kern -8.3u#, % bh+e
+ TIB_I kern -9.0u#, % bh+i
+ TIB_O kern -11.3u#, % bh+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.3u#, % bh+u
+ TIB_YA =: TIB_BHYA, % bh+ya
+ BNDRY |=: TIB_TSHEG; % ...bh
+ligtable TIB_BHYA: TIB_A |=: TIB_XA, % by+a
+ TIB_E kern -8.9u#, % by+e
+ TIB_I kern -9.5u#, % by+i
+ TIB_O kern -11.8u#, % by+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.4u#, % by+u
+ BNDRY |=: TIB_TSHEG; % ...bya
+ligtable TIB_BLA: TIB_A |=: TIB_XA, % bl+a
+ TIB_E kern -8.1u#, % bl+e
+ TIB_I kern -10.1u#, % bl+o
+ TIB_O kern -11.9u#, % bl+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.0u#, % bl+u
+ BNDRY |=: TIB_TSHEG; % ...bl
+ligtable TIB_BRA: TIB_A |=: TIB_XA, % br+a
+ TIB_E kern -8.6u#, % br+e
+ TIB_I kern -9.3u#, % br+i
+ TIB_O kern -11.5u#, % br+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.2u#, % br+u
+ BNDRY |=: TIB_TSHEG; % ...br
+ligtable TIB_BYA: TIB_A |=: TIB_XA, % by+a
+ TIB_E kern -8.9u#, % by+e
+ TIB_I kern -9.5u#, % by+i
+ TIB_O kern -11.8u#, % by+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.4u#, % by+u
+ BNDRY |=: TIB_TSHEG; % ...bya
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_CA: TIB_A |=: TIB_XA, % c+a
+ TIB_E kern -8.5u#, % c+e
+ TIB_I kern -9.1u#, % c+i
+ TIB_O kern -11.5u#, % c+o
+ TIB_U =: TIB_CU, % c+u
+ TIB_HA =: TIB_CHA, % c+ha
+ TIB_WA =: TIB_CWA, % c+wa
+ BNDRY |=: TIB_TSHEG; % ...c
+ligtable TIB_CU: BNDRY |=: TIB_TSHEG; % ...cu
+ligtable TIB_CHA: TIB_A |=: TIB_XA, % ch+a
+ TIB_E kern -9.4u#, % ch+e
+ TIB_I kern -10.0u#, % ch+i
+ TIB_O kern -12.3u#, % ch+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -10.0u#, % ch+u OK
+ TIB_WA =: TIB_CHWA, % ch+wa
+ BNDRY |=: TIB_TSHEG; % ...ch
+ligtable TIB_CHWA: TIB_A |=: TIB_XA, % chw+a
+ TIB_E kern -8.5u#, % chw+e
+ TIB_I kern -9.2u#, % chw+i
+ TIB_O kern -11.5u#, % chw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.1u#, % chw+u
+ BNDRY |=: TIB_TSHEG; % ...cw
+ligtable TIB_CWA: TIB_A |=: TIB_XA, % cw+a
+ TIB_E kern -8.5u#, % cw+e
+ TIB_I kern -9.2u#, % cw+i
+ TIB_O kern -11.5u#, % cw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.1u#, % cw+u
+ BNDRY |=: TIB_TSHEG; % ...cw
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_DA: TIB_A |=:> TIB_XA, % d+a
+ TIB_E kern -7.8u#, % d+e
+ TIB_I kern -9.4u#, % d+i
+ TIB_O kern -11.5u#, % d+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.3u#, % d+u
+ TIB_HA =: TIB_DHA, % d+ha
+ TIB_RA =: TIB_DRA, % d+ra
+ TIB_WA =: TIB_DWA, % d+wa
+ TIB_XA =: TIB_DXA, % d+xa
+ TIB_ZA =: TIB_DZA, % d+za
+ BNDRY |=: TIB_TSHEG; % ...d
+ligtable TIB_DHA: TIB_A |=: TIB_XA, % dh+a
+ TIB_E kern -8.3u#, % dh+e
+ TIB_I kern -9.0u#, % dh+i
+ TIB_O kern -11.3u#, % dh+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.0u#, % dh+u
+ BNDRY |=: TIB_TSHEG; % ...dh
+ligtable TIB_DRA: TIB_A |=: TIB_XA, % dr+a
+ TIB_E kern -8.9u#, % dr+e
+ TIB_I kern -9.5u#, % dr+i
+ TIB_O kern -11.8u#, % dr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.4u#, % dr+u
+ TIB_WA =: TIB_DRWA, % dr+wa
+ BNDRY |=: TIB_TSHEG; % ...dr
+ligtable TIB_DRWA: TIB_A |=: TIB_XA, % drw+a
+ TIB_E kern -10.0u#, % drw+e
+ TIB_I kern -11.6u#, % drw+i
+ TIB_O kern -11.9u#, % drw+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -11.0u#, % drw+u
+ BNDRY |=: TIB_TSHEG; % ...drw
+ligtable TIB_DWA: TIB_A |=: TIB_XA, % dw+a
+ TIB_E kern -8.0u#, % dw+e
+ TIB_I kern -8.6u#, % dw+i
+ TIB_O kern -10.9u#, % dw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -8.5u#, % dw+u
+ BNDRY |=: TIB_TSHEG; % ...dw
+ligtable TIB_DXA: TIB_A |=:> TIB_XA, % dx+a
+ TIB_E kern -7.8u#, % dx+e
+ TIB_I kern -9.6u#, % dx+i
+ TIB_O kern -11.7u#, % dx+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -8.5u#, % dx+u
+ TIB_HA =: TIB_DXHA, % dx+ha
+ BNDRY |=: TIB_TSHEG; % ...dx
+ligtable TIB_DXHA: TIB_A |=: TIB_XA, % dxh+a
+ TIB_E kern -9.1u#, % dxh+e
+ TIB_I kern -10.1u#, % dxh+i
+ TIB_O kern -11.9u#, % dxh+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.0u#, % dxh+u
+ BNDRY |=: TIB_TSHEG; % ...dxh
+ligtable TIB_DZA: TIB_A |=: TIB_XA, % dz+a
+ TIB_E kern -8.5u#, % dz+e
+ TIB_I kern -9.1u#, % dz+i
+ TIB_O kern -11.5u#, % dz+o
+ TIB_U |=: TIB_UU, % Manta,
+ TIB_UU kern -9.0u#, % dz+u OK
+ TIB_HA =: TIB_DZHA, % dz+ha
+ TIB_RA =: TIB_DZRA, % dz+ha
+ BNDRY |=: TIB_TSHEG; % ...dz
+ligtable TIB_DZHA: TIB_A |=: TIB_XA, % dzh+a
+ TIB_E kern -8.9u#, % dzh+e
+ TIB_I kern -9.5u#, % dzh+i
+ TIB_O kern -11.8u#, % dzh+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.4u#, % dzh+u
+ BNDRY |=: TIB_TSHEG; % ...dzh
+ligtable TIB_DZRA: TIB_A |=: TIB_XA, % dzr+a
+ TIB_E kern -8.9u#, % dzr+e
+ TIB_I kern -9.5u#, % dzr+i
+ TIB_O kern -11.8u#, % dzr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.4u#, % dzr+u
+ BNDRY |=: TIB_TSHEG; % ...dzr
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_GA: TIB_A |=: TIB_XA, % g+a
+ TIB_E kern -9.6u#, % g+e
+ TIB_I kern -10.2u#, % g+i
+ TIB_O kern -12.5u#, % g+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -10.6u#, % g+u
+ TIB_HA =: TIB_GHA, % g+ha
+ TIB_LA =: TIB_GLA, % g+la
+ TIB_RA =: TIB_GRA, % g+ra
+ TIB_WA =: TIB_GWA, % g+wa
+ TIB_YA =: TIB_GYA, % g+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_GHA: TIB_A |=: TIB_XA, % gh+a
+ TIB_E kern -9.2u#, % gh+e
+ TIB_I kern -9.9u#, % gh+i
+ TIB_O kern -12.1u#, % gh+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.8u#, % gh+u
+ BNDRY |=: TIB_TSHEG; % ...gh
+ligtable TIB_GLA: TIB_A |=: TIB_XA, % gl+a
+ TIB_E kern -9.4u#, % gl+e
+ TIB_I kern -10.0u#, % gl+i
+ TIB_O kern -12.3u#, % gl+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.0u#, % gl+u
+ BNDRY |=: TIB_TSHEG; % ...gl
+ligtable TIB_GRA: TIB_A |=: TIB_XA, % gr+a
+ TIB_E kern -9.6u#, % gr+e
+ TIB_I kern -10.2u#, % gr+i
+ TIB_O kern -12.5u#, % gr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.1u#, % gr+u
+ TIB_WA =: TIB_GRWA, % gr+wa
+ BNDRY |=: TIB_TSHEG; % ...gr
+ligtable TIB_GRWA: TIB_A |=: TIB_XA, % grw+a
+ TIB_E kern -9.6u#, % grw+e
+ TIB_I kern -10.2u#, % grw+i
+ TIB_O kern -12.5u#, % grw+o
+ TIB_U |=: TIB_UUUUUUUU,% Manta!
+ TIB_UUUUUUUU kern -10.1u#, % grw+u
+ BNDRY |=: TIB_TSHEG; % ...grw
+ligtable TIB_GWA: TIB_A |=: TIB_XA, % gw+a
+ TIB_E kern -9.6u#, % gw+e
+ TIB_I kern -10.2u#, % gw+i
+ TIB_O kern -12.5u#, % gw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.1u#, % gw+u
+ BNDRY |=: TIB_TSHEG; % ...gw
+ligtable TIB_GYA: TIB_A |=: TIB_XA, % gy+a
+ TIB_E kern -9.4u#, % gl+e
+ TIB_I kern -10.0u#, % gy+i
+ TIB_O kern -12.3u#, % gy+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.0u#, % gy+u
+ BNDRY |=: TIB_TSHEG; % ...gy
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_HA: TIB_A |=: TIB_XA, % h+a
+ TIB_E kern -8.6u#, % h+e
+ TIB_I kern -9.25u#, % h+i
+ TIB_O kern -11.5u#, % h+o
+ TIB_U |=: TIB_UUUUU, % Manta, OK!
+ TIB_UUUUU kern -8.7u#, % h+u
+ TIB_RA =: TIB_HRA, % h+ra
+ TIB_WA =: TIB_HWA, % h+wa
+ TIB_YA =: TIB_HYA, % h+wa
+ BNDRY |=: TIB_TSHEG; % ...h
+ligtable TIB_HRA: TIB_A |=: TIB_XA, % hr+a
+ TIB_E kern -8.6u#, % hr+e
+ TIB_I kern -9.25u#, % hr+i
+ TIB_O kern -11.5u#, % hr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.2u#, % hr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_HWA: TIB_A |=: TIB_XA, % hw+a
+ TIB_E kern -8.6u#, % hw+e
+ TIB_I kern -9.25u#, % hw+i
+ TIB_O kern -11.5u#, % hw+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.2u#, % hw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_HYA: TIB_A |=: TIB_XA, % hw+a
+ TIB_E kern -8.6u#, % hw+e
+ TIB_I kern -9.25u#, % hw+i
+ TIB_O kern -11.5u#, % hw+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.2u#, % hw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_JA: TIB_A |=: TIB_XA, % j+a
+ TIB_E kern -8.0u#, % j+e
+ TIB_I kern -8.25u#, % j+i
+ TIB_O kern -10.5u#, % j+o
+ TIB_U |=: TIB_UU, % Manta, OK!
+ TIB_UU kern -8.2u#, % j+u
+ TIB_HA =: TIB_JHA, % jh+a
+ BNDRY |=: TIB_TSHEG; % ...j
+ligtable TIB_JHA: TIB_A |=: TIB_XA, % j+a
+ TIB_E kern -8.0u#, % j+e
+ TIB_I kern -8.25u#, % j+i
+ TIB_O kern -10.5u#, % j+o
+ TIB_U |=: TIB_UU, % Manta, OK!
+ TIB_UU kern -8.2u#, % j+u
+ BNDRY |=: TIB_TSHEG; % ...j
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_KA: TIB_A |=: TIB_XA, % k+a
+ TIB_E kern -8.9u#, % k+e
+ TIB_I kern -9.5u#, % k+i
+ TIB_O kern -11.5u#, % k+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.9u#, % k+u
+ TIB_LA =: TIB_KLA, % k+la
+ TIB_RA =: TIB_KRA, % k+ra
+ TIB_SA =: TIB_LIGKS, % k+sa->kshxa
+ TIB_WA =: TIB_KWA, % k+wa
+ TIB_YA =: TIB_KYA, % k+ya
+ TIB_HA =: TIB_KHA, % k+ha
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_KHA: TIB_A |=: TIB_XA, % kh+a
+ TIB_E kern -9.6u#, % kh+e
+ TIB_I kern -10.2u#, % kh+i
+ TIB_O kern -12.5u#, % kh+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -8.5u#, % kh+u
+ TIB_RA =: TIB_KHRA, % kh+ra
+ TIB_WA =: TIB_KHWA, % kh+wa
+ TIB_YA =: TIB_KHYA, % kh+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_KHRA: TIB_A |=: TIB_XA, % khr+a
+ TIB_E kern -9.1u#, % khr+e
+ TIB_I kern -9.8u#, % khr+i
+ TIB_O kern -12u#, % khr+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.7u#, % khr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_KHWA: TIB_A |=: TIB_XA, % khw+a
+ TIB_E kern -9.4u#, % khw+e
+ TIB_I kern -10.0u#, % khw+i
+ TIB_O kern -12.1u#, % khw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.0u#, % khw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_KHYA: TIB_A |=: TIB_XA, % khy+a
+ TIB_E kern -9.2u#, % khy+e
+ TIB_I kern -9.9u#, % khw+i
+ TIB_O kern -12.0u#, % khy+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.8u#, % khy+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_KLA: TIB_A |=: TIB_XA, % kl+a
+ TIB_E kern -9.1u#, % kl+e
+ TIB_I kern -9.8u#, % kl+i
+ TIB_O kern -12u#, % kl+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.7u#, % kl+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_KRA: TIB_A |=: TIB_XA, % kr+a
+ TIB_E kern -8.6u#, % kr+e
+ TIB_I kern -9.3u#, % kr+i
+ TIB_O kern -11.5u#, % ko+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.2u#, % ku+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LIGKS: TIB_HA =: TIB_LIGKSH; % ks+ha->kshxa
+ligtable TIB_LIGKSH: TIB_XA =: TIB_KSHXA; % ksh+xa
+ligtable TIB_KSHXA: TIB_A |=: TIB_XA, % kshx+a
+ TIB_E kern -9.5u#, % kshx+e
+ TIB_I kern -10.2u#, % kshx+i
+ TIB_O kern -12.5u#, % kshx+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -10.1u#, % kshx+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_KWA: TIB_A |=: TIB_XA, % kw+a
+ TIB_E kern -9.4u#, % kw+e
+ TIB_I kern -10.0u#, % kw+i
+ TIB_O kern -12u#, % kw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.1u#, % kw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_KYA: TIB_A |=: TIB_XA, % ky+a
+ TIB_E kern -9.1u#, % ky+e
+ TIB_I kern -9.8u#, % ky+i
+ TIB_O kern -12u#, % ky+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.7u#, % ky+u
+ BNDRY |=: TIB_TSHEG; % ...g
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_LA: TIB_A |=: TIB_XA, % l+a
+ TIB_E kern -9.2u#, % l+e
+ TIB_I kern -9.9u#, % l+i
+ TIB_O kern -12u#, % l+o
+ TIB_U kern -9.8u#, % l+u OK
+ TIB_BA =: TIB_LBA, % l+ba
+ TIB_CA =: TIB_LCA, % l+ca
+ TIB_DA =: TIB_LDA, % l+da
+ TIB_GA =: TIB_LGA, % l+ga
+ TIB_HA =: TIB_LHA, % l+ha
+ TIB_JA =: TIB_LJA, % l+ja
+ TIB_KA =: TIB_LKA, % l+ka
+ TIB_PA =: TIB_LPA, % l+pa
+ TIB_TA =: TIB_LTA, % l+ta
+ TIB_WA =: TIB_LWA, % l+wa
+ TIB_NA =: TIB_LIGLN, % ln+g->lng+a
+ BNDRY |=: TIB_TSHEG; % ...l
+ligtable TIB_LIGLN: TIB_GA =: TIB_LNGA; % ln+ga
+ligtable TIB_LBA: TIB_A |=: TIB_XA, % lb+a
+ TIB_E kern -9.6u#, % lb+e
+ TIB_I kern -10.2u#, % lb+i
+ TIB_O kern -12.5u#, % lb+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.5u#, % lb+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LCA: TIB_A |=: TIB_XA, % lc+a
+ TIB_E kern -9.1u#, % lc+e
+ TIB_I kern -9.75u#, % lc+i
+ TIB_O kern -12u#, % lc+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.7u#, % lc+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LDA: TIB_A |=: TIB_XA, % ld+a
+ TIB_E kern -9.1u#, % ld+e
+ TIB_I kern -9.75u#, % ld+i
+ TIB_O kern -12u#, % ld+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.7u#, % ld+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LGA: TIB_A |=: TIB_XA, % lg+a
+ TIB_E kern -8.9u#, % lg+e
+ TIB_I kern -9.5u#, % lg+i
+ TIB_O kern -12u#, % lg+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.4u#, % lg+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LHA: TIB_A |=: TIB_XA, % lh+a
+ TIB_E kern -9.2u#, % lh+e
+ TIB_I kern -9.8u#, % lh+i
+ TIB_O kern -12u#, % lh+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.7u#, % lh+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LJA: TIB_A |=: TIB_XA, % lj+a
+ TIB_E kern -9.2u#, % lj+e
+ TIB_I kern -9.8u#, % lj+i
+ TIB_O kern -12u#, % lj+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.2u#, % lj+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LKA: TIB_A |=: TIB_XA, % lk+a
+ TIB_E kern -9.1u#, % lk+e
+ TIB_I kern -9.6u#, % lk+i
+ TIB_O kern -12u#, % lk+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.5u#, % lk+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LPA: TIB_A |=: TIB_XA, % lp+a
+ TIB_E kern -9.5u#, % lp+e
+ TIB_I kern -10.1u#, % lp+i
+ TIB_O kern -12.4u#, % lp+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.0u#, % lp+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LTA: TIB_A |=: TIB_XA, % lt+a
+ TIB_E kern -9.1u#, % lt+e
+ TIB_I kern -9.8u#, % lt+i
+ TIB_O kern -12u#, % lt+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.7u#, % lt+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LWA: TIB_A |=: TIB_XA, % lw+a
+ TIB_E kern -9.5u#, % lw+e
+ TIB_I kern -10.1u#, % lw+i
+ TIB_O kern -12.4u#, % lw+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -10.0u#, % lw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_LNGA: TIB_A |=: TIB_XA, % lng+a
+ TIB_E kern -9.1u#, % lng+e
+ TIB_I kern -9.8u#, % lng+i
+ TIB_O kern -12u#, % lng+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.2u#, % lng+u
+ BNDRY |=: TIB_TSHEG; % ...g
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_MA: TIB_A |=: TIB_XA, % m+a
+ TIB_E kern -9.2u#, % m+e
+ TIB_I kern -9.9u#, % m+i
+ TIB_O kern -12u#, % m+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -9.8u#, % m+u
+ TIB_RA =: TIB_MRA, % m+ra
+ TIB_YA =: TIB_MYA, % m+ya
+ BNDRY |=: TIB_TSHEG; % ...m
+ligtable TIB_MRA: TIB_A |=: TIB_XA, % mr+a
+ TIB_E kern -9.2u#, % mr+e
+ TIB_I kern -9.8u#, % mr+i
+ TIB_O kern -12.1u#, % mr+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -10.2u#, % mr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_MYA: TIB_A |=: TIB_XA, % my+a
+ TIB_E kern -9.1u#, % my+e
+ TIB_I kern -9.7u#, % my+i
+ TIB_O kern -12u#, % my+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.7u#, % my+u
+ BNDRY |=: TIB_TSHEG; % ...g
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_NA: TIB_A |=:> TIB_XA, % n+a
+ TIB_E kern -8.1u#, % n+e
+ TIB_I kern -8.7u#, % n+i
+ TIB_O kern -11u#, % n+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.1u#, % n+u
+ TIB_GA =: TIB_NGA, % n+ga
+ TIB_RA =: TIB_NRA, % n+ra
+ TIB_XA =: TIB_NXA, % n+xa
+ TIB_YA =: TIB_NYA, % n+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_NGA: TIB_A |=: TIB_XA, % ng+a
+ TIB_E kern -8.2u#, % ng+e
+ TIB_I kern -8.8u#, % ng+i
+ TIB_O kern -11.1u#, % ng+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -8.7u#, % ng+u OK
+ BNDRY |=: TIB_TSHEG; % ...ng
+ligtable TIB_NRA: TIB_A |=: TIB_XA, % nr+a
+ TIB_E kern -8.2u#, % nr+e
+ TIB_I kern -8.8u#, % nr+i
+ TIB_O kern -11.1u#, % nr+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.7u#, % nr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_NXA: TIB_A |=: TIB_XA, % nx+a
+ TIB_E kern -8.1u#, % nx+e
+ TIB_I kern -8.7u#, % nx+i
+ TIB_O kern -11.0u#, % nx+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.6u#, % nx+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_NYA: TIB_A |=: TIB_XA, % ny+a
+ TIB_E kern -8.1u#, % ny+e
+ TIB_I kern -8.7u#, % ny+i
+ TIB_O kern -11u#, % ny+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -8.6u#, % ny+u
+ TIB_WA =: TIB_NYWA, % ny+wa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_NYWA: TIB_A |=: TIB_XA, % nyw+a
+ TIB_E kern -8.1u#, % nyw+e
+ TIB_I kern -8.7u#, % nyw+i
+ TIB_O kern -11.0u#, % nyw+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -8.6u#, % nyw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_PA: TIB_A |=: TIB_XA, % p+a
+ TIB_E kern -9.1u#, % p+e
+ TIB_I kern -9.6u#, % p+o
+ TIB_O kern -12u#, % p+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -9.52u#, % p+u OK
+ TIB_RA =: TIB_PRA, % p+ra
+ TIB_YA =: TIB_PYA, % p+ya
+ TIB_HA =: TIB_PHA, % p+ha
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_PHA: TIB_A |=: TIB_XA, % ph+a
+ TIB_E kern -9.1u#, % ph+e
+ TIB_I kern -9.6u#, % ph+i
+ TIB_O kern -12u#, % ph+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -9.5u#, % ph+u
+ TIB_RA =: TIB_PHRA, % ph+ra
+ TIB_YA =: TIB_PHYA, % ph+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_PHRA: TIB_A |=: TIB_XA, % phr+a
+ TIB_E kern -9.1u#, % phr+e
+ TIB_I kern -9.6u#, % phr+i
+ TIB_O kern -11.9u#, % phr+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -10.0u#, % phr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_PHYA: TIB_A |=: TIB_XA, % phy+a
+ TIB_E kern -9.4u#, % phy+e
+ TIB_I kern -10.0u#, % phy+i
+ TIB_O kern -12.3u#, % phy+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.0u#, % phy+u
+ TIB_WA =: TIB_PHYWA, % phy+wa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_PRA: TIB_A |=: TIB_XA, % pr+a
+ TIB_E kern -7.8u#, % pr+e
+ TIB_I kern -9.4u#, % pr+i
+ TIB_O kern -11.7u#, % pr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.3u#, % pr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_PYA: TIB_A |=: TIB_XA, % py+a
+ TIB_E kern -8.9u#, % py+e
+ TIB_I kern -9.5u#, % py+i
+ TIB_O kern -11.8u#, % py+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.4u#, % py+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_PHYWA: TIB_A |=: TIB_XA, % phyw+a
+ TIB_E kern -9.4u#, % phyw+e
+ TIB_I kern -10.0u#, % phyw+i
+ TIB_O kern -12.3u#, % phyw+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.5u#, % phyw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_RA: TIB_A |=: TIB_XA, % r+a
+ TIB_E kern -9.1u#, % r+e
+ TIB_I kern -9.7u#, % r+i
+ TIB_O kern -12u#, % r+o
+ TIB_U kern -9.9u#, % r+u
+ TIB_BA =: TIB_RBA, % r+ba
+ TIB_DA =: TIB_RDA, % r+da
+ TIB_GA =: TIB_RGA, % r+ga
+ TIB_JA =: TIB_RJA, % r+ja
+ TIB_KA =: TIB_RKA, % r+ka
+ TIB_LA =: TIB_RLA, % r+la
+ TIB_MA =: TIB_RMA, % r+ma
+ TIB_NA =: TIB_RNA, % r+na
+ TIB_TA =: TIB_RTA, % r+ta
+ TIB_WA =: TIB_RWA, % r+wa
+ TIB_YA =: TIB_RYA, % r+ya
+ BNDRY |=: TIB_TSHEG; % ...r
+ligtable TIB_RBA: TIB_A |=: TIB_XA, % rb+a
+ TIB_E kern -8.6u#, % rb+e
+ TIB_I kern -9.25u#, % rb+i
+ TIB_O kern -11.5u#, % rb+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.2u#, % rb+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RDA: TIB_A |=: TIB_XA, % rd+a
+ TIB_E kern -8.5u#, % rd+e
+ TIB_I kern -9.15u#, % rd+i
+ TIB_O kern -11.5u#, % rd+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -10.5u#, % rd+u
+ TIB_ZA =: TIB_RDZA, % rd+za
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RDZA: TIB_A |=: TIB_XA, % rdz+a
+ TIB_E kern -8.3u#, % rdz+e
+ TIB_I kern -8.9u#, % rdz+i
+ TIB_O kern -11u#, % rdz+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -8.8u#, % rdz+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RGA: TIB_A |=: TIB_XA, % rg+a
+ TIB_E kern -9.4u#, % rg+e
+ TIB_I kern -10.0u#, % rg+i
+ TIB_O kern -12.3u#, % rg+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.5u#, % rg+u
+ TIB_WA =: TIB_RGWA, % rg+wa
+ TIB_YA =: TIB_RGYA, % rg+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RGWA: TIB_A |=: TIB_XA, % rgw+a
+ TIB_E kern -9.4u#, % rgw+e
+ TIB_I kern -10.0u#, % rgw+i
+ TIB_O kern -12.3u#, % rgw+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -10.0u#, % rgw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RGYA: TIB_A |=: TIB_XA, % rgy+a
+ TIB_E kern -9.1u#, % rgy+e
+ TIB_I kern -9.75u#, % rgy+i
+ TIB_O kern -12.0u#, % rgy+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.7u#, % rgy+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RJA: TIB_A |=: TIB_XA, % rj+a
+ TIB_E kern -7.8u#, % rj+e
+ TIB_I kern -8.4u#, % rj+i
+ TIB_O kern -10.5u#, % rj+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.3u#, % rj+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RKA: TIB_A |=: TIB_XA, % rk+a
+ TIB_E kern -9.1u#, % rk+e
+ TIB_I kern -9.75u#, % rk+i
+ TIB_O kern -12u#, % rk+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.7u#, % rk+u
+ TIB_YA =: TIB_RKYA, % rk+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RKYA: TIB_A |=: TIB_XA, % rky+a
+ TIB_E kern -9.2u#, % rky+e
+ TIB_I kern -9.8u#, % rky+i
+ TIB_O kern -12.1u#, % rky+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.7u#, % rky+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RLA: TIB_A |=: TIB_XA, % rl+a
+ TIB_E kern -9.4u#, % gl+e
+ TIB_I kern -10.0u#, % rl+i
+ TIB_O kern -12.3u#, % rl+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.0u#, % rl+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RMA: TIB_A |=: TIB_XA, % rm+a
+ TIB_E kern -9.2u#, % rm+e
+ TIB_I kern -9.8u#, % rm+i
+ TIB_O kern -12u#, % rm+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.7u#, % rm+u
+ TIB_YA =: TIB_RMYA, % rm+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RMYA: TIB_A |=: TIB_XA, % rmy+a
+ TIB_E kern -9.2u#, % rmy+e
+ TIB_I kern -9.8u#, % rmy+i
+ TIB_O kern -12.2u#, % rmy+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.7u#, % rmy+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RNA: TIB_A |=: TIB_XA, % rn+a
+ TIB_E kern -8.0u#, % rn+e
+ TIB_I kern -8.5u#, % rn+i
+ TIB_O kern -11u#, % rn+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.4u#, % rn+u
+ TIB_GA =: TIB_RNGA, % rn+ga
+ TIB_YA =: TIB_RNYA, % rn+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RNGA: TIB_A |=: TIB_XA, % rng+a
+ TIB_E kern -8.2u#, % rng+e
+ TIB_I kern -8.8u#, % rng+i
+ TIB_O kern -11u#, % rng+o
+ TIB_U |=: TIB_UUU, % Manta!
+ TIB_UUU kern -9.2u#, % rng+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RNYA: TIB_A |=: TIB_XA, % rny+a
+ TIB_E kern -8.6u#, % rny+e
+ TIB_I kern -9.3u#, % rny+i
+ TIB_O kern -11.5u#, % rny+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.2u#, % rny+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RTA: TIB_A |=: TIB_XA, % rt+a
+ TIB_E kern -7.5u#, % rt+e
+ TIB_I kern -8.1u#, % rt+i
+ TIB_O kern -10.25u#, % rt+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -8.00u#, % rt+u
+ TIB_SA =: TIB_RTSA, % rt+sa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RTSA: TIB_A |=: TIB_XA, % rts+a
+ TIB_E kern -9.1u#, % rts+e
+ TIB_I kern -9.6u#, % rts+i
+ TIB_O kern -12u#, % rts+o
+ TIB_U |=: TIB_UUU, % Manta!
+ TIB_UUU kern -9.5u#, % rts+u
+ TIB_WA =: TIB_RTSWA, % rts+wa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RTSWA: TIB_A |=: TIB_XA, % rtsw+a
+ TIB_E kern -9.1u#, % rtsw+e
+ TIB_I kern -9.6u#, % rtsw+i
+ TIB_O kern -12u#, % rtsw+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.5u#, % rtsw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RWA: TIB_A |=: TIB_XA, % rw+a
+ TIB_E kern -9.2u#, % rw+e
+ TIB_I kern -9.8u#, % rw+i
+ TIB_O kern -12.1u#, % rw+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -10.7u#, % rw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_RYA: TIB_A |=: TIB_XA, % rw+a
+ TIB_E kern -9.2u#, % rw+e
+ TIB_I kern -9.8u#, % rw+i
+ TIB_O kern -12.1u#, % rw+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -10.7u#, % rw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_SA: TIB_A |=: TIB_XA, % s+a
+ TIB_E kern -9.6u#, % s+e
+ TIB_I kern -10.2u#, % s+i
+ TIB_O kern -12.5u#, % s+o
+ TIB_U kern -10.1u#, % s+u OK
+ TIB_BA =: TIB_SBA, % s+ba
+ TIB_DA =: TIB_SDA, % s+da
+ TIB_GA =: TIB_SGA, % s+ga
+ TIB_HA =: TIB_SHA, % s+ha
+ TIB_KA =: TIB_SKA, % s+ka
+ TIB_LA =: TIB_SLA, % s+la
+ TIB_MA =: TIB_SMA, % s+ma
+ TIB_NA =: TIB_SNA, % s+na
+ TIB_PA =: TIB_SPA, % s+pa
+ TIB_RA =: TIB_SRA, % s+ra
+ TIB_TA =: TIB_STA, % s+ta
+ TIB_WA =: TIB_SWA, % s+wa
+ BNDRY |=: TIB_TSHEG; % ...s
+ligtable TIB_SBA: TIB_A |=: TIB_XA, % sb+a
+ TIB_E kern -9.1u#, % sb+e
+ TIB_I kern -9.8u#, % sb+i
+ TIB_O kern -12u#, % sb+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.7u#, % sb+u
+ TIB_RA =: TIB_SBRA, % sb+ra
+ TIB_YA =: TIB_SBYA, % sb+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SBRA: TIB_A |=: TIB_XA, % sbr+a
+ TIB_E kern -9.1u#, % sbr+e
+ TIB_I kern -9.8u#, % sbr+i
+ TIB_O kern -12.0u#, % sbr+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -10.2u#, % sbr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SBYA: TIB_A |=: TIB_XA, % sby+a
+ TIB_E kern -9.2u#, % sby+e
+ TIB_I kern -9.8u#, % sby+i
+ TIB_O kern -12.1u#, % sby+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.7u#, % sby+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SDA: TIB_A |=: TIB_XA, % sd+a
+ TIB_E kern -9.4u#, % gl+e
+ TIB_I kern -10.0u#, % sd+i
+ TIB_O kern -12.3u#, % sd+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.0u#, % sd+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SGA: TIB_A |=: TIB_XA, % sg+a
+ TIB_E kern -9.2u#, % sg+e
+ TIB_I kern -9.8u#, % sg+i
+ TIB_O kern -12u#, % sg+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.7u#, % sg+u
+ TIB_RA =: TIB_SGRA, % sg+ra
+ TIB_YA =: TIB_SGYA, % sg+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SGRA: TIB_A |=: TIB_XA, % sgr+a
+ TIB_E kern -9.1u#, % sgr+e
+ TIB_I kern -9.8u#, % sgr+i
+ TIB_O kern -12.0u#, % sgr+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.7u#, % sgr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SGYA: TIB_A |=: TIB_XA, % sgy+a
+ TIB_E kern -9.2u#, % sgy+e
+ TIB_I kern -9.8u#, % sgy+i
+ TIB_O kern -12.2u#, % sgy+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.7u#, % sgy+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SHA: TIB_A |=:> TIB_XA, % sh+a
+ TIB_E kern -9.9u#, % sh+e
+ TIB_I kern -10.5u#, % sh+i
+ TIB_O kern -12.75u#, % sh+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.00u#, % sh+u
+ TIB_RA =: TIB_SHRA, % sh+ra
+ TIB_WA =: TIB_SHWA, % sh+wa
+ TIB_XA =: TIB_SHXA, % sh+xa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SHRA: TIB_A |=: TIB_XA, % shr+a
+ TIB_E kern -10.0u#, % shr+e
+ TIB_I kern -10.6u#, % shr+i
+ TIB_O kern -12.80u#, % shr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.50u#, % shr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SHWA: TIB_A |=: TIB_XA, % shw+a
+ TIB_E kern -9.9u#, % shw+e
+ TIB_I kern -10.5u#, % shw+i
+ TIB_O kern -12.75u#, % shw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.40u#, % shw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SHXA: TIB_A |=: TIB_XA, % shx+a
+ TIB_E kern -9.9u#, % shx+e
+ TIB_I kern -10.5u#, % shx+i
+ TIB_O kern -12.25u#, % shx+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.40u#, % shx+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SKA: TIB_A |=: TIB_XA, % sk+a
+ TIB_E kern -9.1u#, % sk+e
+ TIB_I kern -9.6u#, % sk+i
+ TIB_O kern -12.0u#, % sk+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.5u#, % sk+u
+ TIB_RA =: TIB_SKRA, % sk+ra
+ TIB_YA =: TIB_SKYA, % sk+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SKRA: TIB_A |=: TIB_XA, % skr+a
+ TIB_E kern -9.2u#, % skr+e
+ TIB_I kern -9.9u#, % skr+i
+ TIB_O kern -12.2u#, % skr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.8u#, % skr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SKYA: TIB_A |=: TIB_XA, % sky+a
+ TIB_E kern -8.9u#, % sky+e
+ TIB_I kern -9.5u#, % sky+i
+ TIB_O kern -11.8u#, % sky+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.4u#, % sky+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SLA: TIB_A |=: TIB_XA, % sl+a
+ TIB_E kern -9.4u#, % gl+e
+ TIB_I kern -10.0u#, % sl+i
+ TIB_O kern -12.3u#, % sl+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.0u#, % sl+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SMA: TIB_A |=: TIB_XA, % sm+a
+ TIB_E kern -9.2u#, % sm+e
+ TIB_I kern -9.9u#, % sm+i
+ TIB_O kern -12u#, % sm+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.8u#, % sm+u
+ TIB_RA =: TIB_SMRA, % sm+ra
+ TIB_YA =: TIB_SMYA, % sm+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SMRA: TIB_A |=: TIB_XA, % smr+a
+ TIB_E kern -9.6u#, % smr+e
+ TIB_I kern -10.2u#, % smr+i
+ TIB_O kern -12.5u#, % smr+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -10.1u#, % smr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SMYA: TIB_A |=: TIB_XA, % smy+a
+ TIB_E kern -9.4u#, % smy+e
+ TIB_I kern -10.0u#, % smy+i
+ TIB_O kern -12.3u#, % smy+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -10.0u#, % smy+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SNA: TIB_A |=: TIB_XA, % sn+a
+ TIB_E kern -9.1u#, % sn+e
+ TIB_I kern -9.6u#, % sn+i
+ TIB_O kern -12u#, % sn+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.5u#, % sn+u
+ TIB_GA =: TIB_SNGA, % sn+ga
+ TIB_RA =: TIB_SNRA, % sn+ra
+ TIB_YA =: TIB_SNYA, % sn+ya
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SNGA: TIB_A |=: TIB_XA, % sng+a
+ TIB_E kern -9.2u#, % sng+e
+ TIB_I kern -9.9u#, % sng+i
+ TIB_O kern -12u#, % sng+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.8u#, % sng+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_SNRA: TIB_A |=: TIB_XA, % snr+a
+ TIB_E kern -9.2u#, % snr+e
+ TIB_I kern -9.9u#, % snr+i
+ TIB_O kern -12u#, % snr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.8u#, % snr+u
+ BNDRY |=: TIB_TSHEG; % ...snr
+ligtable TIB_SNYA: TIB_A |=: TIB_XA, % sny+a
+ TIB_E kern -9.5u#, % sny+e
+ TIB_I kern -10.1u#, % sny+i
+ TIB_O kern -12.4u#, % sny+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -9.4u#, % sny+u
+ BNDRY |=: TIB_TSHEG; % ...sny
+ligtable TIB_SPA: TIB_A |=: TIB_XA, % sp+a
+ TIB_E kern -9.1u#, % sp+e
+ TIB_I kern -9.8u#, % sp+i
+ TIB_O kern -12u#, % sp+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.7u#, % sp+u
+ TIB_RA =: TIB_SPRA, % sp+ra
+ TIB_YA =: TIB_SPYA, % sp+ya
+ BNDRY |=: TIB_TSHEG; % ...sp
+ligtable TIB_SPRA: TIB_A |=: TIB_XA, % spr+a
+ TIB_E kern -9.1u#, % spr+e
+ TIB_I kern -9.8u#, % spr+i
+ TIB_O kern -12.0u#, % spr+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.7u#, % spr+u
+ BNDRY |=: TIB_TSHEG; % ...spr
+ligtable TIB_SPYA: TIB_A |=: TIB_XA, % spy+a
+ TIB_E kern -9.4u#, % spy+e
+ TIB_I kern -10.0u#, % spy+i
+ TIB_O kern -12.3u#, % spy+o
+ TIB_U |=: TIB_UUUUUUU,% Manta!
+ TIB_UUUUUUU kern -9.3u#, % spy+u
+ BNDRY |=: TIB_TSHEG; % ...spy
+ligtable TIB_SRA: TIB_A |=: TIB_XA, % sr+a
+ TIB_E kern -9.2u#, % sr+e
+ TIB_I kern -9.9u#, % sr+i
+ TIB_O kern -12.10u#, % sr+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.80u#, % sr+u
+ BNDRY |=: TIB_TSHEG; % ...sr
+ligtable TIB_STA: TIB_A |=: TIB_XA, % st+a
+ TIB_E kern -9.1u#, % st+e
+ TIB_I kern -9.6u#, % st+i
+ TIB_O kern -12u#, % st+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.5u#, % st+u
+ TIB_SA =: TIB_STSA, % st+sa
+ BNDRY |=: TIB_TSHEG; % ...st
+ligtable TIB_STSA: TIB_A |=: TIB_XA, % sts+a
+ TIB_E kern -10.5u#, % sts+e
+ TIB_I kern -11.1u#, % sts+i
+ TIB_O kern -13.5u#, % sts+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -11.0u#, % sts+u
+ BNDRY |=: TIB_TSHEG; % ...sts
+ligtable TIB_SWA: TIB_A |=: TIB_XA, % sw+a
+ TIB_E kern -9.6u#, % sw+e
+ TIB_I kern -10.2u#, % sw+i
+ TIB_O kern -12.5u#, % sw+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -10.6u#, % sw+u
+ BNDRY |=: TIB_TSHEG; % ...sw
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_TA: TIB_A |=:> TIB_XA, % t+a
+ TIB_E kern -7.5u#, % t+e
+ TIB_I kern -8.2u#, % t+i
+ TIB_O kern -10.5u#, % t+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -8.1u#, % t+u
+ TIB_HA =: TIB_THA, % t+ha
+ TIB_RA =: TIB_TRA, % t+ra
+ TIB_SA =: TIB_TSA, % t+sa
+ TIB_WA =: TIB_TWA, % t+wa
+ TIB_XA =: TIB_TXA, % t+xa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_THA: TIB_A |=:> TIB_XA, % th+a
+ TIB_E kern -8.1u#, % th+e
+ TIB_I kern -8.6u#, % th+i
+ TIB_O kern -10.5u#, % th+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -8.5u#, % th+u
+ TIB_RA =: TIB_THRA, % th+ra
+ TIB_XA =: TIB_THXA, % th+xa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_THRA: TIB_A |=: TIB_XA, % thr+a
+ TIB_E kern -8.3u#, % thr+e
+ TIB_I kern -8.8u#, % thr+i
+ TIB_O kern -11.2u#, % thr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -8.7u#, % thr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_THXA: TIB_A |=: TIB_XA, % thx+a
+ TIB_E kern -8.1u#, % thx+e
+ TIB_I kern -8.6u#, % thx+i
+ TIB_O kern -11.0u#, % thx+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.5u#, % thx+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_TRA: TIB_A |=: TIB_XA, % tr+a
+ TIB_E kern -8.2u#, % tr+e
+ TIB_I kern -8.8u#, % tr+i
+ TIB_O kern -11.0u#, % tr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -8.8u#, % tr+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_TSA: TIB_A |=: TIB_XA, % ts+a
+ TIB_E kern -9.1u#, % ts+e
+ TIB_I kern -9.6u#, % ts+i
+ TIB_O kern -12u#, % ts+o
+ TIB_U kern -9.5u#, % ts+u
+ TIB_U =: TIB_TSU, % ts+u OK
+ TIB_HA =: TIB_TSHA, % ts+ha
+ TIB_WA =: TIB_TSWA, % ts+wa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_TSWA: TIB_A |=: TIB_XA, % tsw+a
+ TIB_E kern -9.1u#, % tsw+e
+ TIB_I kern -9.6u#, % tsw+i
+ TIB_O kern -11.9u#, % tsw+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -9.5u#, % tsw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_TSHA: TIB_A |=: TIB_XA, % tsh+a
+ TIB_E kern -9.4u#, % tsh+e
+ TIB_I kern -10.0u#, % tsh+i
+ TIB_O kern -12u#, % tsh+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -9.9u#, % tsh+u
+ TIB_WA =: TIB_TSHWA, % tsh+wa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_TSHWA: TIB_A |=: TIB_XA, % tshw+a
+ TIB_E kern -9.4u#, % tshw+e
+ TIB_I kern -10.0u#, % tshw+i
+ TIB_O kern -12.3u#, % tshw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.0u#, % tshw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_TWA: TIB_A |=: TIB_XA, % tw+a
+ TIB_E kern -7.5u#, % tw+e
+ TIB_I kern -8.2u#, % tw+i
+ TIB_O kern -10.5u#, % tw+o
+ TIB_U |=: TIB_UUUUUU, % Manta!
+ TIB_UUUUUU kern -8.1u#, % tw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_TXA: TIB_A |=: TIB_XA, % tx+a
+ TIB_E kern -7.5u#, % tx+e
+ TIB_I kern -8.2u#, % tx+i
+ TIB_O kern -10.5u#, % tx+o
+ TIB_U |=: TIB_UUUU, % Manta!
+ TIB_UUUU kern -8.1u#, % tx+u
+ BNDRY |=: TIB_TSHEG; % ...g
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_WA: TIB_A |=: TIB_XA, % w+a
+ TIB_E kern -9.7u#, % w+e
+ TIB_I kern -10.3u#, % w+i
+ TIB_O kern -12.5u#, % w+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -10.2u#, % w+u
+ BNDRY |=: TIB_TSHEG; % ...w
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_YA: TIB_A |=: TIB_XA, % y+a
+ TIB_E kern -9.1u#, % y+e
+ TIB_I kern -9.7u#, % y+i
+ TIB_O kern -12u#, % y+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -9.5u#, % y+u OK
+ BNDRY |=: TIB_TSHEG; % ...g
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable TIB_ZA: TIB_A |=: TIB_XA, % z+a
+ TIB_E kern -8.2u#, % z+e
+ TIB_I kern -8.8u#, % z+i
+ TIB_O kern -11u#, % z+o
+ TIB_U |=: TIB_UU, % Manta!
+ TIB_UU kern -8.7u#, % z+u OK
+ TIB_LA =: TIB_ZLA, % z+la
+ TIB_HA =: TIB_ZHA, % z+ha
+ TIB_RA =: TIB_ZRA, % z+ra
+ TIB_WA =: TIB_ZWA, % z+wa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_ZHA: TIB_A |=: TIB_XA, % zh+a
+ TIB_E kern -8.6u#, % zh+e
+ TIB_I kern -9.8u#, % zh+i
+ TIB_O kern -11.5u#, % zh+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.7u#, % zh+u
+ TIB_WA =: TIB_ZHWA, % zh+wa
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_ZHWA: TIB_A |=: TIB_XA, % zhw+a
+ TIB_E kern -8.9u#, % zhw+e
+ TIB_I kern -10.0u#, % zhw+i
+ TIB_O kern -11.75u#, % zhw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.85u#, % zhw+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_ZLA: TIB_A |=: TIB_XA, % zl+a
+ TIB_E kern -8.9u#, % zl+e
+ TIB_I kern -10.0u#, % zl+i
+ TIB_O kern -11.80u#, % zl+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.90u#, % zl+u
+ BNDRY |=: TIB_TSHEG; % ...g
+ligtable TIB_ZRA: TIB_A |=: TIB_XA, % zr+a
+ TIB_E kern -8.9u#, % zr+e
+ TIB_I kern -10.0u#, % zr+i
+ TIB_O kern -11.80u#, % zr+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -9.90u#, % zr+u
+ BNDRY |=: TIB_TSHEG; % ...zr
+ligtable TIB_ZWA: TIB_A |=: TIB_XA, % zw+a
+ TIB_E kern -8.2u#, % zw+e
+ TIB_I kern -8.8u#, % zw+i
+ TIB_O kern -11.00u#, % zw+o
+ TIB_U |=: TIB_UUUUU, % Manta!
+ TIB_UUUUU kern -8.70u#, % zw+u
+ BNDRY |=: TIB_TSHEG; % ...zw
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% End of Tibetan ligature data, end of ctibligs.mf
+%
+% vim:ts=12:sw=12:wm=0
diff --git a/Master/texmf-dist/fonts/source/public/ctib/ctibnum.mf b/Master/texmf-dist/fonts/source/public/ctib/ctibnum.mf
new file mode 100644
index 00000000000..ad4130d1981
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ctib/ctibnum.mf
@@ -0,0 +1,743 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Tibetan numbers. Glyph source: Sirlin's Metafont
+%
+beginchar (TIB_ZERO, 5.541u#, 6.504u#, 0.000u#);
+ "Tibetan digit zero";
+ z0\0\0s = (2.409u,6.347u);
+ z0\0\0c1 = (-0.491u,5.123u);
+ z0\0\0c2 = (0.099u,1.658u);
+ z0\0\0 = (3.132u,1.954u);
+ z0\0\1c1 = (5.978u,2.231u);
+ z0\0\1c2 = (5.822u,6.966u);
+ z0\1\0s = (2.410u,5.217u);
+ z0\1\0c1 = (5.904u,5.626u);
+ z0\1\0c2 = (4.929u,3.299u);
+ z0\1\0 = (3.131u,2.977u);
+ z0\1\1c1 = (1.074u,2.607u);
+ z0\1\1c2 = (0.048u,4.505u);
+ fill_or_unfill z0\0\0s
+ ..controls z0\0\0c1 and z0\0\0c2..z0\0\0
+ ..controls z0\0\1c1 and z0\0\1c2..cycle;
+ fill_or_unfill z0\1\0s
+ ..controls z0\1\0c1 and z0\1\0c2..z0\1\0
+ ..controls z0\1\1c1 and z0\1\1c2..cycle;
+ proof_labels (
+ 0\0\0,
+ 0\0\1,
+ 0\1\0,
+ 0\1\1,
+);
+ npic:=currentpicture;
+endchar;
+
+beginchar (TIB_ONE, 5.782u#, 6.745u#, 1.204u#);
+ "Tibetan digit one";
+ z1\0\0s = (1.204u,3.613u);
+ z1\0\0c1 = (1.970u,4.091u);
+ z1\0\0c2 = (2.303u,4.833u);
+ z1\0\0 = (2.963u,5.424u);
+ z1\0\1c1 = (4.450u,6.756u);
+ z1\0\1c2 = (5.020u,5.559u);
+ z1\0\1 = (4.357u,4.095u);
+ z1\0\2c1 = (3.428u,2.048u);
+ z1\0\2c2 = (1.395u,0.928u);
+ z1\0\2 = (0.482u,-0.964u);
+ z1\0\3c1 = (5.531u,0.094u);
+ z1\0\3c2 = (6.938u,8.021u);
+ z1\0\3 = (3.373u,6.483u);
+ z1\0\4c1 = (2.102u,5.935u);
+ z1\0\4c2 = (1.564u,4.871u);
+ fill_or_unfill z1\0\0s
+ ..controls z1\0\0c1 and z1\0\0c2..z1\0\0
+ ..controls z1\0\1c1 and z1\0\1c2..z1\0\1
+ ..controls z1\0\2c1 and z1\0\2c2..z1\0\2
+ ..controls z1\0\3c1 and z1\0\3c2..z1\0\3
+ ..controls z1\0\4c1 and z1\0\4c2..cycle;
+ proof_labels (
+ 1\0\0,
+ 1\0\1,
+ 1\0\2,
+ 1\0\3,
+ 1\0\4,
+);
+endchar;
+
+beginchar (TIB_TWO, 6.022u#, 6.745u#, 1.686u#);
+ "Tibetan digit two";
+ z2\0\0s = (0.723u,4.577u);
+ z2\0\0c1 = (1.270u,4.831u);
+ z2\0\0c2 = (1.668u,5.123u);
+ z2\0\0 = (2.168u,5.453u);
+ z2\0\1c1 = (2.908u,5.940u);
+ z2\0\1c2 = (4.879u,6.364u);
+ z2\0\1 = (3.965u,4.814u);
+ z2\0\2c1 = (3.140u,3.416u);
+ z2\0\2c2 = (1.465u,2.338u);
+ z2\0\2 = (0.482u,0.964u);
+ z2\0\3c1 = (2.441u,0.988u);
+ z2\0\3c2 = (4.170u,1.179u);
+ z2\0\3 = (3.854u,-1.445u);
+ z2\0\4c1 = (6.425u,-1.232u);
+ z2\0\4c2 = (6.133u,1.602u);
+ z2\0\4 = (2.409u,1.686u);
+ z2\0\5c1 = (3.227u,2.376u);
+ z2\0\5c2 = (4.530u,3.011u);
+ z2\0\5 = (5.122u,3.879u);
+ z2\0\6c1 = (7.269u,7.025u);
+ z2\0\6c2 = (2.308u,7.845u);
+ fill_or_unfill z2\0\0s
+ ..controls z2\0\0c1 and z2\0\0c2..z2\0\0
+ ..controls z2\0\1c1 and z2\0\1c2..z2\0\1
+ ..controls z2\0\2c1 and z2\0\2c2..z2\0\2
+ ..controls z2\0\3c1 and z2\0\3c2..z2\0\3
+ ..controls z2\0\4c1 and z2\0\4c2..z2\0\4
+ ..controls z2\0\5c1 and z2\0\5c2..z2\0\5
+ ..controls z2\0\6c1 and z2\0\6c2..cycle;
+ proof_labels (
+ 2\0\0,
+ 2\0\1,
+ 2\0\2,
+ 2\0\3,
+ 2\0\4,
+ 2\0\5,
+ 2\0\6,
+);
+endchar;
+
+beginchar (TIB_THREE, 6.504u#, 6.745u#, 2.650u#);
+ "Tibetan digit three";
+ z3\0\0s = (0.482u,4.818u);
+ z3\0\0c1 = (1.041u,4.948u);
+ z3\0\0c2 = (3.896u,5.906u);
+ z3\0\0 = (3.154u,4.132u);
+ z3\0\1 = (1.927u,2.409u);
+ z3\0\2c1 = (2.771u,2.755u);
+ z3\0\2c2 = (3.931u,3.637u);
+ z3\0\2 = (4.719u,2.592u);
+ z3\0\3c1 = (4.856u,2.310u);
+ z3\0\3c2 = (4.902u,2.030u);
+ z3\0\3 = (4.719u,1.708u);
+ z3\0\4c1 = (3.975u,-0.382u);
+ z3\0\4c2 = (1.400u,1.573u);
+ z3\0\4 = (0.482u,-0.964u);
+ z3\0\5c1 = (3.743u,-0.843u);
+ z3\0\5c2 = (2.844u,-1.161u);
+ z3\0\5 = (5.541u,-2.409u);
+ z3\0\6c1 = (5.291u,-1.182u);
+ z3\0\6c2 = (4.741u,-0.551u);
+ z3\0\6 = (4.095u,0.482u);
+ z3\0\7c1 = (6.047u,1.533u);
+ z3\0\7c2 = (7.087u,3.759u);
+ z3\0\7 = (4.336u,4.577u);
+ z3\0\8c1 = (4.252u,7.859u);
+ z3\0\8c2 = (1.526u,6.919u);
+ fill_or_unfill z3\0\0s
+ ..controls z3\0\0c1 and z3\0\0c2..z3\0\0
+ --z3\0\1
+ ..controls z3\0\2c1 and z3\0\2c2..z3\0\2
+ ..controls z3\0\3c1 and z3\0\3c2..z3\0\3
+ ..controls z3\0\4c1 and z3\0\4c2..z3\0\4
+ ..controls z3\0\5c1 and z3\0\5c2..z3\0\5
+ ..controls z3\0\6c1 and z3\0\6c2..z3\0\6
+ ..controls z3\0\7c1 and z3\0\7c2..z3\0\7
+ ..controls z3\0\8c1 and z3\0\8c2..cycle;
+ proof_labels (
+ 3\0\0,
+ 3\0\1,
+ 3\0\2,
+ 3\0\3,
+ 3\0\4,
+ 3\0\5,
+ 3\0\6,
+ 3\0\7,
+ 3\0\8,
+);
+endchar;
+
+beginchar (TIB_FOUR, 11.804u#, 6.504u#, 0.000u#);
+ "Tibetan digit four";
+ z4\0\0s = (11.322u,6.022u);
+ z4\0\0 = (10.840u,6.022u);
+ z4\0\1c1 = (9.802u,2.487u);
+ z4\0\1c2 = (4.213u,1.852u);
+ z4\0\1 = (1.204u,2.650u);
+ z4\0\2c1 = (2.667u,4.434u);
+ z4\0\2c2 = (7.496u,3.369u);
+ z4\0\2 = (9.154u,6.504u);
+ z4\0\3c1 = (7.840u,6.023u);
+ z4\0\3c2 = (6.722u,5.329u);
+ z4\0\3 = (5.300u,5.139u);
+ z4\0\4c1 = (4.402u,5.006u);
+ z4\0\4c2 = (3.177u,5.407u);
+ z4\0\4 = (2.419u,5.139u);
+ z4\0\5c1 = (1.786u,4.929u);
+ z4\0\5c2 = (1.254u,4.190u);
+ z4\0\5 = (0.959u,3.613u);
+ z4\0\6c1 = (-1.325u,-0.868u);
+ z4\0\6c2 = (10.683u,0.502u);
+ fill_or_unfill z4\0\0s
+ --z4\0\0
+ ..controls z4\0\1c1 and z4\0\1c2..z4\0\1
+ ..controls z4\0\2c1 and z4\0\2c2..z4\0\2
+ ..controls z4\0\3c1 and z4\0\3c2..z4\0\3
+ ..controls z4\0\4c1 and z4\0\4c2..z4\0\4
+ ..controls z4\0\5c1 and z4\0\5c2..z4\0\5
+ ..controls z4\0\6c1 and z4\0\6c2..cycle;
+ proof_labels (
+ 4\0\0,
+ 4\0\1,
+ 4\0\2,
+ 4\0\3,
+ 4\0\4,
+ 4\0\5,
+ 4\0\6,
+);
+endchar;
+
+beginchar (TIB_FIVE, 9.395u#, 6.745u#, 0.241u#);
+ "Tibetan digit five";
+ z5\0\0s = (6.263u,6.745u);
+ z5\0\0c1 = (5.303u,5.034u);
+ z5\0\0c2 = (4.652u,4.454u);
+ z5\0\0 = (4.336u,2.409u);
+ z5\0\1c1 = (2.627u,4.122u);
+ z5\0\1c2 = (3.453u,5.984u);
+ z5\0\1 = (0.482u,6.022u);
+ z5\0\2c1 = (0.855u,4.454u);
+ z5\0\2c2 = (2.677u,0.705u);
+ z5\0\2 = (4.095u,0.000u);
+ z5\0\3c1 = (4.189u,1.674u);
+ z5\0\3c2 = (5.068u,3.544u);
+ z5\0\3 = (5.782u,5.059u);
+ z5\0\4c1 = (7.216u,3.598u);
+ z5\0\4c2 = (8.822u,3.160u);
+ z5\0\4 = (8.913u,5.782u);
+ z5\0\5c1 = (8.570u,5.485u);
+ z5\0\5c2 = (8.587u,5.489u);
+ z5\0\5 = (8.431u,5.059u);
+ z5\0\6c1 = (7.498u,5.534u);
+ z5\0\6c2 = (7.376u,5.793u);
+ z5\0\6 = (6.986u,6.745u);
+ fill_or_unfill z5\0\0s
+ ..controls z5\0\0c1 and z5\0\0c2..z5\0\0
+ ..controls z5\0\1c1 and z5\0\1c2..z5\0\1
+ ..controls z5\0\2c1 and z5\0\2c2..z5\0\2
+ ..controls z5\0\3c1 and z5\0\3c2..z5\0\3
+ ..controls z5\0\4c1 and z5\0\4c2..z5\0\4
+ ..controls z5\0\5c1 and z5\0\5c2..z5\0\5
+ ..controls z5\0\6c1 and z5\0\6c2..z5\0\6
+ --cycle;
+ proof_labels (
+ 5\0\0,
+ 5\0\1,
+ 5\0\2,
+ 5\0\3,
+ 5\0\4,
+ 5\0\5,
+ 5\0\6,
+ 5\0\7,
+);
+endchar;
+
+beginchar (TIB_SIX, 9.636u#, 6.745u#, 1.204u#);
+ "Tibetan digit six";
+ z6\0\0s = (0.482u,3.132u);
+ z6\0\0c1 = (1.954u,-0.847u);
+ z6\0\0c2 = (9.095u,-2.917u);
+ z6\0\0 = (9.146u,1.445u);
+ z6\0\1c1 = (9.187u,4.936u);
+ z6\0\1c2 = (4.163u,2.372u);
+ z6\0\1 = (4.519u,4.787u);
+ z6\0\2c1 = (4.703u,6.033u);
+ z6\0\2c2 = (7.830u,5.338u);
+ z6\0\2 = (8.672u,5.300u);
+ z6\0\3c1 = (7.935u,7.468u);
+ z6\0\3c2 = (4.163u,7.008u);
+ z6\0\3 = (3.739u,4.817u);
+ z6\0\4c1 = (3.090u,1.461u);
+ z6\0\4c2 = (7.771u,2.732u);
+ z6\0\4 = (8.440u,1.612u);
+ z6\0\5c1 = (9.174u,0.382u);
+ z6\0\5c2 = (7.208u,0.218u);
+ z6\0\5 = (6.504u,0.282u);
+ z6\0\6c1 = (2.314u,0.660u);
+ z6\0\6c2 = (2.663u,2.477u);
+ fill_or_unfill z6\0\0s
+ ..controls z6\0\0c1 and z6\0\0c2..z6\0\0
+ ..controls z6\0\1c1 and z6\0\1c2..z6\0\1
+ ..controls z6\0\2c1 and z6\0\2c2..z6\0\2
+ ..controls z6\0\3c1 and z6\0\3c2..z6\0\3
+ ..controls z6\0\4c1 and z6\0\4c2..z6\0\4
+ ..controls z6\0\5c1 and z6\0\5c2..z6\0\5
+ ..controls z6\0\6c1 and z6\0\6c2..cycle;
+ proof_labels (
+ 6\0\0,
+ 6\0\1,
+ 6\0\2,
+ 6\0\3,
+ 6\0\4,
+ 6\0\5,
+ 6\0\6,
+);
+endchar;
+
+beginchar (TIB_SEVEN, 7.709u#, 6.745u#, 1.445u#);
+ "Tibetan digit seven";
+ z7\0\0s = (6.281u,6.745u);
+ z7\0\0c1 = (6.115u,5.810u);
+ z7\0\0c2 = (6.410u,4.996u);
+ z7\0\0 = (6.281u,4.095u);
+ z7\0\1c1 = (6.047u,2.048u);
+ z7\0\1c2 = (3.916u,-0.946u);
+ z7\0\1 = (1.686u,-0.482u);
+ z7\0\2c1 = (2.400u,1.396u);
+ z7\0\2c2 = (4.044u,2.930u);
+ z7\0\2 = (3.828u,5.049u);
+ z7\0\3c1 = (3.619u,7.104u);
+ z7\0\3c2 = (1.272u,6.730u);
+ z7\0\3 = (0.723u,5.049u);
+ z7\0\4c1 = (1.223u,5.273u);
+ z7\0\4c2 = (2.499u,6.203u);
+ z7\0\4 = (2.456u,5.049u);
+ z7\0\5c1 = (2.401u,3.566u);
+ z7\0\5c2 = (-0.015u,1.531u);
+ z7\0\5 = (0.663u,-0.227u);
+ z7\0\6c1 = (1.912u,-3.464u);
+ z7\0\6c2 = (8.676u,1.598u);
+ z7\0\6 = (6.745u,6.745u);
+ fill_or_unfill z7\0\0s
+ ..controls z7\0\0c1 and z7\0\0c2..z7\0\0
+ ..controls z7\0\1c1 and z7\0\1c2..z7\0\1
+ ..controls z7\0\2c1 and z7\0\2c2..z7\0\2
+ ..controls z7\0\3c1 and z7\0\3c2..z7\0\3
+ ..controls z7\0\4c1 and z7\0\4c2..z7\0\4
+ ..controls z7\0\5c1 and z7\0\5c2..z7\0\5
+ ..controls z7\0\6c1 and z7\0\6c2..z7\0\6
+ --cycle;
+ proof_labels (
+ 7\0\0,
+ 7\0\1,
+ 7\0\2,
+ 7\0\3,
+ 7\0\4,
+ 7\0\5,
+ 7\0\6,
+ 7\0\7,
+);
+endchar;
+
+beginchar (TIB_EIGHT, 6.986u#, 6.504u#, 0.241u#);
+ "Tibetan digit eight";
+ z8\0\0s = (2.650u,6.504u);
+ z8\0\0c1 = (2.140u,4.267u);
+ z8\0\0c2 = (0.997u,2.189u);
+ z8\0\0 = (0.482u,0.000u);
+ z8\0\1c1 = (2.427u,0.463u);
+ z8\0\1c2 = (4.487u,0.000u);
+ z8\0\1 = (6.504u,0.000u);
+ z8\0\2c1 = (5.284u,1.075u);
+ z8\0\2c2 = (3.236u,1.475u);
+ z8\0\2 = (1.686u,1.927u);
+ z8\0\3c1 = (2.325u,3.175u);
+ z8\0\3c2 = (3.219u,5.134u);
+ z8\0\3 = (3.372u,6.504u);
+ fill_or_unfill z8\0\0s
+ ..controls z8\0\0c1 and z8\0\0c2..z8\0\0
+ ..controls z8\0\1c1 and z8\0\1c2..z8\0\1
+ ..controls z8\0\2c1 and z8\0\2c2..z8\0\2
+ ..controls z8\0\3c1 and z8\0\3c2..z8\0\3
+ --cycle;
+ proof_labels (
+ 8\0\0,
+ 8\0\1,
+ 8\0\2,
+ 8\0\3,
+ 8\0\4,
+);
+endchar;
+
+beginchar (TIB_NINE, 8.672u#, 6.745u#, 0.964u#);
+ "Tibetan digit nine";
+ z9\0\0s = (1.445u,-0.241u);
+ z9\0\0c1 = (1.234u,0.696u);
+ z9\0\0c2 = (0.854u,1.675u);
+ z9\0\0 = (1.019u,2.650u);
+ z9\0\1c1 = (1.535u,5.694u);
+ z9\0\1c2 = (6.637u,5.710u);
+ z9\0\1 = (7.338u,4.044u);
+ z9\0\2c1 = (8.645u,0.945u);
+ z9\0\2c2 = (2.183u,4.283u);
+ z9\0\2 = (2.273u,0.725u);
+ z9\0\3c1 = (2.323u,-1.224u);
+ z9\0\3c2 = (7.258u,-1.711u);
+ z9\0\3 = (8.190u,1.445u);
+ z9\0\4c1 = (7.194u,0.927u);
+ z9\0\4c2 = (4.187u,-0.879u);
+ z9\0\4 = (3.399u,1.017u);
+ z9\0\5c1 = (2.300u,3.660u);
+ z9\0\5c2 = (9.290u,0.209u);
+ z9\0\5 = (8.115u,4.814u);
+ z9\0\6c1 = (7.533u,7.092u);
+ z9\0\6c2 = (3.540u,7.113u);
+ z9\0\6 = (2.021u,5.848u);
+ z9\0\7c1 = (0.627u,4.687u);
+ z9\0\7c2 = (-0.337u,0.920u);
+ fill_or_unfill z9\0\0s
+ ..controls z9\0\0c1 and z9\0\0c2..z9\0\0
+ ..controls z9\0\1c1 and z9\0\1c2..z9\0\1
+ ..controls z9\0\2c1 and z9\0\2c2..z9\0\2
+ ..controls z9\0\3c1 and z9\0\3c2..z9\0\3
+ ..controls z9\0\4c1 and z9\0\4c2..z9\0\4
+ ..controls z9\0\5c1 and z9\0\5c2..z9\0\5
+ ..controls z9\0\6c1 and z9\0\6c2..z9\0\6
+ ..controls z9\0\7c1 and z9\0\7c2..cycle;
+ proof_labels (
+ 9\0\0,
+ 9\0\1,
+ 9\0\2,
+ 9\0\3,
+ 9\0\4,
+ 9\0\5,
+ 9\0\6,
+ 9\0\7,
+);
+endchar;
+
+beginchar (TIB_VARFIVE, 7.709u#, 6.745u#, 0.000u#);
+ "var.five";
+ z37\0\0s = (0.482u,6.745u);
+ z37\0\0c1 = (0.491u,5.731u);
+ z37\0\0c2 = (0.563u,4.293u);
+ z37\0\0 = (1.072u,3.397u);
+ z37\0\1c1 = (1.760u,2.186u);
+ z37\0\1c2 = (3.345u,1.940u);
+ z37\0\1 = (4.577u,2.378u);
+ z37\0\2c1 = (4.937u,2.506u);
+ z37\0\2c2 = (5.219u,2.695u);
+ z37\0\2 = (5.541u,2.891u);
+ z37\0\3c1 = (6.050u,1.975u);
+ z37\0\3c2 = (6.211u,1.752u);
+ z37\0\3 = (7.227u,1.445u);
+ z37\0\4 = (6.556u,3.372u);
+ z37\0\5c1 = (6.195u,4.503u);
+ z37\0\5c2 = (6.033u,5.562u);
+ z37\0\5 = (6.022u,6.745u);
+ z37\0\6 = (4.630u,6.745u);
+ z37\0\7 = (4.630u,5.541u);
+ z37\0\8c1 = (4.753u,5.085u);
+ z37\0\8c2 = (4.962u,4.315u);
+ z37\0\8 = (4.845u,3.880u);
+ z37\0\9c1 = (4.740u,3.485u);
+ z37\0\9c2 = (4.471u,3.213u);
+ z37\0\9 = (4.084u,3.082u);
+ z37\0\10c1 = (2.450u,2.529u);
+ z37\0\10c2 = (2.014u,5.707u);
+ z37\0\10 = (1.927u,6.745u);
+ fill_or_unfill z37\0\0s
+ ..controls z37\0\0c1 and z37\0\0c2..z37\0\0
+ ..controls z37\0\1c1 and z37\0\1c2..z37\0\1
+ ..controls z37\0\2c1 and z37\0\2c2..z37\0\2
+ ..controls z37\0\3c1 and z37\0\3c2..z37\0\3
+ --z37\0\4
+ ..controls z37\0\5c1 and z37\0\5c2..z37\0\5
+ --z37\0\6
+ --z37\0\7
+ ..controls z37\0\8c1 and z37\0\8c2..z37\0\8
+ ..controls z37\0\9c1 and z37\0\9c2..z37\0\9
+ ..controls z37\0\10c1 and z37\0\10c2..z37\0\10
+ --cycle;
+ proof_labels (
+ 37\0\0,
+ 37\0\1,
+ 37\0\2,
+ 37\0\3,
+ 37\0\4,
+ 37\0\5,
+ 37\0\6,
+ 37\0\7,
+ 37\0\8,
+ 37\0\9,
+ 37\0\10,
+ 37\0\11,
+);
+endchar;
+
+beginchar (TIB_VARSIX, 10.840u#, 6.745u#, 1.204u#);
+ "var.six";
+ z38\0\0s = (0.482u,6.745u);
+ z38\0\0c1 = (0.635u,5.049u);
+ z38\0\0c2 = (1.587u,2.512u);
+ z38\0\0 = (2.740u,1.249u);
+ z38\0\1c1 = (4.177u,-0.324u);
+ z38\0\1c2 = (9.086u,-2.487u);
+ z38\0\1 = (10.274u,0.485u);
+ z38\0\2c1 = (10.360u,0.869u);
+ z38\0\2c2 = (10.376u,1.518u);
+ z38\0\2 = (10.274u,1.926u);
+ z38\0\3c1 = (10.283u,2.392u);
+ z38\0\3c2 = (10.185u,2.843u);
+ z38\0\3 = (9.773u,3.126u);
+ z38\0\4c1 = (8.996u,3.661u);
+ z38\0\4c2 = (6.756u,3.083u);
+ z38\0\4 = (5.920u,4.169u);
+ z38\0\5c1 = (5.781u,4.350u);
+ z38\0\5c2 = (5.689u,4.553u);
+ z38\0\5 = (5.724u,4.787u);
+ z38\0\6c1 = (5.907u,6.033u);
+ z38\0\6c2 = (9.034u,5.338u);
+ z38\0\6 = (9.877u,5.300u);
+ z38\0\7c1 = (9.801u,5.524u);
+ z38\0\7c2 = (9.784u,5.702u);
+ z38\0\7 = (9.635u,5.905u);
+ z38\0\8c1 = (9.403u,6.222u);
+ z38\0\8c2 = (9.029u,6.398u);
+ z38\0\8 = (8.668u,6.524u);
+ z38\0\9c1 = (6.925u,7.133u);
+ z38\0\9c2 = (4.393u,5.992u);
+ z38\0\9 = (5.015u,3.858u);
+ z38\0\10c1 = (5.223u,3.144u);
+ z38\0\10c2 = (5.584u,2.742u);
+ z38\0\10 = (6.274u,2.472u);
+ z38\0\11c1 = (7.075u,2.158u);
+ z38\0\11c2 = (7.853u,2.268u);
+ z38\0\11 = (8.669u,2.133u);
+ z38\0\12c1 = (9.311u,2.027u);
+ z38\0\12c2 = (10.098u,1.557u);
+ z38\0\12 = (9.645u,0.797u);
+ z38\0\13c1 = (9.283u,0.191u);
+ z38\0\13c2 = (8.315u,0.227u);
+ z38\0\13 = (7.709u,0.282u);
+ z38\0\14c1 = (4.613u,0.561u);
+ z38\0\14c2 = (3.269u,1.591u);
+ z38\0\14 = (1.869u,4.336u);
+ z38\0\15c1 = (1.456u,5.146u);
+ z38\0\15c2 = (1.132u,5.848u);
+ z38\0\15 = (0.964u,6.745u);
+ fill_or_unfill z38\0\0s
+ ..controls z38\0\0c1 and z38\0\0c2..z38\0\0
+ ..controls z38\0\1c1 and z38\0\1c2..z38\0\1
+ ..controls z38\0\2c1 and z38\0\2c2..z38\0\2
+ ..controls z38\0\3c1 and z38\0\3c2..z38\0\3
+ ..controls z38\0\4c1 and z38\0\4c2..z38\0\4
+ ..controls z38\0\5c1 and z38\0\5c2..z38\0\5
+ ..controls z38\0\6c1 and z38\0\6c2..z38\0\6
+ ..controls z38\0\7c1 and z38\0\7c2..z38\0\7
+ ..controls z38\0\8c1 and z38\0\8c2..z38\0\8
+ ..controls z38\0\9c1 and z38\0\9c2..z38\0\9
+ ..controls z38\0\10c1 and z38\0\10c2..z38\0\10
+ ..controls z38\0\11c1 and z38\0\11c2..z38\0\11
+ ..controls z38\0\12c1 and z38\0\12c2..z38\0\12
+ ..controls z38\0\13c1 and z38\0\13c2..z38\0\13
+ ..controls z38\0\14c1 and z38\0\14c2..z38\0\14
+ ..controls z38\0\15c1 and z38\0\15c2..z38\0\15
+ --cycle;
+ proof_labels (
+ 38\0\0,
+ 38\0\1,
+ 38\0\2,
+ 38\0\3,
+ 38\0\4,
+ 38\0\5,
+ 38\0\6,
+ 38\0\7,
+ 38\0\8,
+ 38\0\9,
+ 38\0\10,
+ 38\0\11,
+ 38\0\12,
+ 38\0\13,
+ 38\0\14,
+ 38\0\15,
+ 38\0\16,
+);
+endchar;
+
+beginchar (TIB_VARSEVEN, 7.709u#, 6.745u#, 1.445u#);
+ "var.seven";
+ z39\0\0s = (6.246u,6.745u);
+ z39\0\0c1 = (6.210u,6.408u);
+ z39\0\0c2 = (6.158u,6.128u);
+ z39\0\0 = (6.246u,5.782u);
+ z39\0\1c1 = (6.206u,5.205u);
+ z39\0\1c2 = (6.371u,4.683u);
+ z39\0\1 = (6.246u,4.095u);
+ z39\0\2c1 = (6.127u,2.695u);
+ z39\0\2c2 = (4.515u,0.421u);
+ z39\0\2 = (3.369u,-0.338u);
+ z39\0\3c1 = (3.047u,-0.552u);
+ z39\0\3c2 = (2.768u,-0.617u);
+ z39\0\3 = (2.409u,-0.723u);
+ z39\0\4c1 = (2.785u,-0.010u);
+ z39\0\4c2 = (3.377u,0.897u);
+ z39\0\4 = (3.515u,1.686u);
+ z39\0\5c1 = (3.857u,3.628u);
+ z39\0\5c2 = (1.631u,4.052u);
+ z39\0\5 = (0.723u,2.599u);
+ z39\0\6c1 = (0.583u,2.374u);
+ z39\0\6c2 = (0.557u,2.169u);
+ z39\0\6 = (0.482u,1.927u);
+ z39\0\7c1 = (0.955u,2.212u);
+ z39\0\7c2 = (1.711u,2.838u);
+ z39\0\7 = (2.222u,2.298u);
+ z39\0\8c1 = (3.042u,1.433u);
+ z39\0\8c2 = (1.669u,-0.442u);
+ z39\0\8 = (1.204u,-1.204u);
+ z39\0\9c1 = (1.861u,-1.204u);
+ z39\0\9c2 = (2.762u,-1.260u);
+ z39\0\9 = (3.372u,-1.027u);
+ z39\0\10c1 = (4.956u,-0.421u);
+ z39\0\10c2 = (6.992u,2.646u);
+ z39\0\10 = (7.182u,4.336u);
+ z39\0\11c1 = (7.289u,5.287u);
+ z39\0\11c2 = (7.071u,5.877u);
+ z39\0\11 = (6.745u,6.745u);
+ fill_or_unfill z39\0\0s
+ ..controls z39\0\0c1 and z39\0\0c2..z39\0\0
+ ..controls z39\0\1c1 and z39\0\1c2..z39\0\1
+ ..controls z39\0\2c1 and z39\0\2c2..z39\0\2
+ ..controls z39\0\3c1 and z39\0\3c2..z39\0\3
+ ..controls z39\0\4c1 and z39\0\4c2..z39\0\4
+ ..controls z39\0\5c1 and z39\0\5c2..z39\0\5
+ ..controls z39\0\6c1 and z39\0\6c2..z39\0\6
+ ..controls z39\0\7c1 and z39\0\7c2..z39\0\7
+ ..controls z39\0\8c1 and z39\0\8c2..z39\0\8
+ ..controls z39\0\9c1 and z39\0\9c2..z39\0\9
+ ..controls z39\0\10c1 and z39\0\10c2..z39\0\10
+ ..controls z39\0\11c1 and z39\0\11c2..z39\0\11
+ --cycle;
+ proof_labels (
+ 39\0\0,
+ 39\0\1,
+ 39\0\2,
+ 39\0\3,
+ 39\0\4,
+ 39\0\5,
+ 39\0\6,
+ 39\0\7,
+ 39\0\8,
+ 39\0\9,
+ 39\0\10,
+ 39\0\11,
+ 39\0\12,
+);
+endchar;
+
+beginchar (TIB_VAREIGHT, 7.950u#, 6.022u#, 2.891u#);
+ "var.eight";
+ z40\0\0s = (0.482u,0.000u);
+ z40\0\0c1 = (0.952u,0.112u);
+ z40\0\0c2 = (1.441u,0.274u);
+ z40\0\0 = (1.927u,0.280u);
+ z40\0\1c1 = (3.089u,0.294u);
+ z40\0\1c2 = (4.686u,-0.411u);
+ z40\0\1 = (5.491u,-1.229u);
+ z40\0\2c1 = (6.338u,-2.090u);
+ z40\0\2c2 = (6.163u,-2.426u);
+ z40\0\2 = (7.468u,-2.650u);
+ z40\0\3c1 = (6.780u,0.090u);
+ z40\0\3c2 = (4.731u,1.086u);
+ z40\0\3 = (2.168u,1.686u);
+ z40\0\4c1 = (2.983u,2.501u);
+ z40\0\4c2 = (5.070u,4.403u);
+ z40\0\4 = (5.540u,5.300u);
+ z40\0\5 = (5.782u,6.022u);
+ z40\0\6c1 = (5.421u,5.916u);
+ z40\0\6c2 = (5.144u,5.849u);
+ z40\0\6 = (4.818u,5.638u);
+ z40\0\7c1 = (4.117u,5.185u);
+ z40\0\7c2 = (1.080u,2.149u);
+ z40\0\7 = (0.728u,1.445u);
+ z40\0\8c1 = (0.494u,0.978u);
+ z40\0\8c2 = (0.499u,0.507u);
+ fill_or_unfill z40\0\0s
+ ..controls z40\0\0c1 and z40\0\0c2..z40\0\0
+ ..controls z40\0\1c1 and z40\0\1c2..z40\0\1
+ ..controls z40\0\2c1 and z40\0\2c2..z40\0\2
+ ..controls z40\0\3c1 and z40\0\3c2..z40\0\3
+ ..controls z40\0\4c1 and z40\0\4c2..z40\0\4
+ --z40\0\5
+ ..controls z40\0\6c1 and z40\0\6c2..z40\0\6
+ ..controls z40\0\7c1 and z40\0\7c2..z40\0\7
+ ..controls z40\0\8c1 and z40\0\8c2..cycle;
+ proof_labels (
+ 40\0\0,
+ 40\0\1,
+ 40\0\2,
+ 40\0\3,
+ 40\0\4,
+ 40\0\5,
+ 40\0\6,
+ 40\0\7,
+ 40\0\8,
+);
+endchar;
+
+beginchar (TIB_VARNINE, 7.709u#, 6.745u#, 0.723u#);
+ "var.nine";
+ z41\0\0s = (1.686u,-0.482u);
+ z41\0\0c1 = (1.392u,0.455u);
+ z41\0\0c2 = (0.883u,1.660u);
+ z41\0\0 = (1.067u,2.650u);
+ z41\0\1c1 = (1.305u,3.935u);
+ z41\0\1c2 = (3.146u,5.902u);
+ z41\0\1 = (4.566u,5.655u);
+ z41\0\2c1 = (5.016u,5.577u);
+ z41\0\2c2 = (5.225u,5.348u);
+ z41\0\2 = (5.541u,5.059u);
+ z41\0\3c1 = (3.779u,4.534u);
+ z41\0\3c2 = (3.529u,3.221u);
+ z41\0\3 = (5.541u,2.891u);
+ z41\0\4 = (4.577u,3.854u);
+ z41\0\5c1 = (5.225u,4.048u);
+ z41\0\5c2 = (6.171u,4.267u);
+ z41\0\5 = (6.668u,4.733u);
+ z41\0\6c1 = (6.893u,4.944u);
+ z41\0\6c2 = (7.076u,5.204u);
+ z41\0\6 = (7.076u,5.525u);
+ z41\0\7c1 = (7.076u,6.552u);
+ z41\0\7c2 = (5.323u,6.760u);
+ z41\0\7 = (4.577u,6.720u);
+ z41\0\8c1 = (3.828u,6.679u);
+ z41\0\8c2 = (2.596u,6.341u);
+ z41\0\8 = (2.020u,5.854u);
+ z41\0\9c1 = (1.498u,5.412u);
+ z41\0\9c2 = (0.744u,4.039u);
+ z41\0\9 = (0.582u,3.372u);
+ z41\0\10c1 = (0.369u,2.501u);
+ z41\0\10c2 = (0.412u,0.806u);
+ z41\0\10 = (0.965u,0.071u);
+ z41\0\11c1 = (1.181u,-0.218u);
+ z41\0\11c2 = (1.391u,-0.309u);
+ fill_or_unfill z41\0\0s
+ ..controls z41\0\0c1 and z41\0\0c2..z41\0\0
+ ..controls z41\0\1c1 and z41\0\1c2..z41\0\1
+ ..controls z41\0\2c1 and z41\0\2c2..z41\0\2
+ ..controls z41\0\3c1 and z41\0\3c2..z41\0\3
+ --z41\0\4
+ ..controls z41\0\5c1 and z41\0\5c2..z41\0\5
+ ..controls z41\0\6c1 and z41\0\6c2..z41\0\6
+ ..controls z41\0\7c1 and z41\0\7c2..z41\0\7
+ ..controls z41\0\8c1 and z41\0\8c2..z41\0\8
+ ..controls z41\0\9c1 and z41\0\9c2..z41\0\9
+ ..controls z41\0\10c1 and z41\0\10c2..z41\0\10
+ ..controls z41\0\11c1 and z41\0\11c2..cycle;
+ proof_labels (
+ 41\0\0,
+ 41\0\1,
+ 41\0\2,
+ 41\0\3,
+ 41\0\4,
+ 41\0\5,
+ 41\0\6,
+ 41\0\7,
+ 41\0\8,
+ 41\0\9,
+ 41\0\10,
+ 41\0\11,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The file ctibnum.mf ends here.
+%
diff --git a/Master/texmf-dist/fonts/source/public/ctib/ctibpunc.mf b/Master/texmf-dist/fonts/source/public/ctib/ctibpunc.mf
new file mode 100644
index 00000000000..d89c788c74f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ctib/ctibpunc.mf
@@ -0,0 +1,2066 @@
+beginchar (TIB_LIGLN, 0#, 0#, 0#);
+ "empty ligature slot for ln -> lng";
+endchar;
+
+beginchar (TIB_LIGKS, 0#, 0#, 0#);
+ "empty ligature slot for lk -> lksh";
+endchar;
+
+beginchar (TIB_LIGKSH, 0#, 0#, 0#);
+ "empty ligature slot for lksh -> lkshx";
+endchar;
+
+beginchar (TIB_XA, 0#, 0#, 0#);
+ "x for shxa type ligatures and other dummy purposes";
+endchar;
+
+beginchar (TIB_TSHEG, 3.132u#, 6.504u#, 0.000u#);
+ "tsheg";
+ z114\0\0s = (0.871u,6.258u);
+ z114\0\0c1 = (0.377u,5.453u);
+ z114\0\0c2 = (0.983u,4.665u);
+ z114\0\0 = (1.893u,4.976u);
+ z114\0\1c1 = (3.001u,5.354u);
+ z114\0\1c2 = (2.574u,6.965u);
+ fill_or_unfill z114\0\0s
+ ..controls z114\0\0c1 and z114\0\0c2..z114\0\0
+ ..controls z114\0\1c1 and z114\0\1c2..cycle;
+ proof_labels (
+ 114\0\0,
+ 114\0\1,
+);
+endchar;
+
+beginchar (TIB_SHAD, 3.132u#, 6.745u#, 6.263u#);
+ "shad";
+ z115\0\0s = (1.445u,-6.022u);
+ z115\0\0 = (1.927u,-6.022u);
+ z115\0\1c1 = (1.927u,-2.836u);
+ z115\0\1c2 = (1.722u,0.459u);
+ z115\0\1 = (2.168u,3.613u);
+ z115\0\2c1 = (2.286u,4.447u);
+ z115\0\2c2 = (3.060u,6.371u);
+ z115\0\2 = (1.893u,6.665u);
+ z115\0\3c1 = (0.000u,7.142u);
+ z115\0\3c2 = (0.743u,5.007u);
+ z115\0\3 = (0.895u,4.095u);
+ z115\0\4c1 = (1.428u,0.898u);
+ z115\0\4c2 = (1.445u,-2.774u);
+ fill_or_unfill z115\0\0s
+ --z115\0\0
+ ..controls z115\0\1c1 and z115\0\1c2..z115\0\1
+ ..controls z115\0\2c1 and z115\0\2c2..z115\0\2
+ ..controls z115\0\3c1 and z115\0\3c2..z115\0\3
+ ..controls z115\0\4c1 and z115\0\4c2..cycle;
+ proof_labels (
+ 115\0\0,
+ 115\0\1,
+ 115\0\2,
+ 115\0\3,
+ 115\0\4,
+);
+endchar;
+
+beginchar (TIB_TSHEGSHAD, 6.986u#, 6.745u#, 9.877u#);
+ "tshegshad";
+ z121\0\0s = (0.868u,6.498u);
+ z121\0\0c1 = (0.279u,5.619u);
+ z121\0\0c2 = (0.953u,4.567u);
+ z121\0\0 = (1.852u,5.078u);
+ z121\0\1c1 = (2.723u,5.572u);
+ z121\0\1c2 = (2.379u,7.085u);
+ z121\1\0s = (4.963u,6.498u);
+ z121\1\0c1 = (4.374u,5.619u);
+ z121\1\0c2 = (5.048u,4.567u);
+ z121\1\0 = (5.948u,5.078u);
+ z121\1\1c1 = (6.818u,5.572u);
+ z121\1\1c2 = (6.474u,7.085u);
+ z121\2\0s = (4.095u,-9.636u);
+ z121\2\0 = (4.577u,-9.636u);
+ z121\2\1c1 = (4.577u,-6.313u);
+ z121\2\1c2 = (4.588u,-3.070u);
+ z121\2\1 = (4.812u,0.241u);
+ z121\2\2c1 = (4.870u,1.102u);
+ z121\2\2c2 = (5.442u,3.007u);
+ z121\2\2 = (4.302u,3.292u);
+ z121\2\3c1 = (2.370u,3.777u);
+ z121\2\3c2 = (3.070u,1.238u);
+ z121\2\3 = (3.138u,0.241u);
+ z121\2\4c1 = (3.359u,-3.028u);
+ z121\2\4c2 = (4.093u,-6.382u);
+ fill_or_unfill z121\0\0s
+ ..controls z121\0\0c1 and z121\0\0c2..z121\0\0
+ ..controls z121\0\1c1 and z121\0\1c2..cycle;
+ fill_or_unfill z121\1\0s
+ ..controls z121\1\0c1 and z121\1\0c2..z121\1\0
+ ..controls z121\1\1c1 and z121\1\1c2..cycle;
+ fill_or_unfill z121\2\0s
+ --z121\2\0
+ ..controls z121\2\1c1 and z121\2\1c2..z121\2\1
+ ..controls z121\2\2c1 and z121\2\2c2..z121\2\2
+ ..controls z121\2\3c1 and z121\2\3c2..z121\2\3
+ ..controls z121\2\4c1 and z121\2\4c2..cycle;
+ proof_labels (
+ 121\0\0,
+ 121\0\1,
+ 121\1\0,
+ 121\1\1,
+ 121\2\0,
+ 121\2\1,
+ 121\2\2,
+ 121\2\3,
+ 121\2\4,
+);
+endchar;
+
+beginchar (TIB_NYISTSHEGSHAD, 3.132u#, 6.745u#, 6.263u#);
+ "nyis.tsheg.shad";
+ z97\0\0s = (0.482u,6.504u);
+ z97\0\0c1 = (1.159u,4.838u);
+ z97\0\0c2 = (1.973u,4.838u);
+ z97\0\0 = (2.650u,6.504u);
+ z97\0\1c1 = (1.710u,6.768u);
+ z97\0\1c2 = (1.422u,6.768u);
+ z97\1\0s = (0.482u,4.336u);
+ z97\1\0c1 = (1.159u,2.670u);
+ z97\1\0c2 = (1.973u,2.670u);
+ z97\1\0 = (2.650u,4.336u);
+ z97\1\1c1 = (1.710u,4.600u);
+ z97\1\1c2 = (1.422u,4.600u);
+ z97\2\0s = (1.435u,-6.022u);
+ z97\2\0 = (1.927u,-6.022u);
+ z97\2\1 = (1.927u,-0.482u);
+ z97\2\2c1 = (1.930u,0.050u);
+ z97\2\2c2 = (2.196u,1.844u);
+ z97\2\2 = (1.788u,2.158u);
+ z97\2\3 = (1.488u,2.158u);
+ z97\2\4c1 = (0.867u,1.920u);
+ z97\2\4c2 = (1.151u,1.013u);
+ z97\2\4 = (1.205u,0.482u);
+ z97\2\5 = (1.205u,-1.686u);
+ z97\2\6 = (1.435u,-3.372u);
+ fill_or_unfill z97\0\0s
+ ..controls z97\0\0c1 and z97\0\0c2..z97\0\0
+ ..controls z97\0\1c1 and z97\0\1c2..cycle;
+ fill_or_unfill z97\1\0s
+ ..controls z97\1\0c1 and z97\1\0c2..z97\1\0
+ ..controls z97\1\1c1 and z97\1\1c2..cycle;
+ fill_or_unfill z97\2\0s
+ --z97\2\0
+ --z97\2\1
+ ..controls z97\2\2c1 and z97\2\2c2..z97\2\2
+ --z97\2\3
+ ..controls z97\2\4c1 and z97\2\4c2..z97\2\4
+ --z97\2\5
+ --z97\2\6
+ --cycle;
+ proof_labels (
+ 97\0\0,
+ 97\0\1,
+ 97\1\0,
+ 97\1\1,
+ 97\2\0,
+ 97\2\1,
+ 97\2\2,
+ 97\2\3,
+ 97\2\4,
+ 97\2\5,
+ 97\2\6,
+ 97\2\7,
+);
+endchar;
+
+beginchar (TIB_CHEMGOSHAD, 5.059u#, 7.709u#, 6.263u#);
+ "che.mgo.shad";
+ z98\0\0s = (3.854u,7.709u);
+ z98\0\0 = (2.891u,5.782u);
+ z98\0\1c1 = (1.853u,6.647u);
+ z98\0\1c2 = (1.009u,7.189u);
+ z98\0\1 = (0.482u,5.541u);
+ z98\0\2 = (1.686u,6.022u);
+ z98\0\3c1 = (1.901u,5.150u);
+ z98\0\3c2 = (1.867u,4.966u);
+ z98\0\3 = (1.686u,4.095u);
+ z98\0\4c1 = (3.708u,4.482u);
+ z98\0\4c2 = (4.375u,5.764u);
+ z98\0\4 = (4.577u,7.709u);
+ z98\1\0s = (0.482u,3.854u);
+ z98\1\0c1 = (0.556u,3.633u);
+ z98\1\0c2 = (0.577u,3.459u);
+ z98\1\0 = (0.717u,3.256u);
+ z98\1\1c1 = (1.565u,2.031u);
+ z98\1\1c2 = (3.493u,2.031u);
+ z98\1\1 = (4.341u,3.256u);
+ z98\1\2c1 = (4.482u,3.459u);
+ z98\1\2c2 = (4.502u,3.633u);
+ z98\1\2 = (4.577u,3.854u);
+ z98\1\3 = (2.650u,3.377u);
+ z98\1\4c1 = (1.965u,3.336u);
+ z98\1\4c2 = (1.169u,3.726u);
+ z98\2\0s = (0.482u,2.168u);
+ z98\2\0c1 = (0.556u,1.947u);
+ z98\2\0c2 = (0.577u,1.773u);
+ z98\2\0 = (0.717u,1.570u);
+ z98\2\1c1 = (1.565u,0.345u);
+ z98\2\1c2 = (3.493u,0.345u);
+ z98\2\1 = (4.341u,1.570u);
+ z98\2\2c1 = (4.482u,1.773u);
+ z98\2\2c2 = (4.502u,1.947u);
+ z98\2\2 = (4.577u,2.168u);
+ z98\2\3 = (2.650u,1.691u);
+ z98\2\4c1 = (1.965u,1.650u);
+ z98\2\4c2 = (1.169u,2.040u);
+ z98\3\0s = (1.927u,0.000u);
+ z98\3\0 = (2.389u,-3.132u);
+ z98\3\1 = (2.389u,-6.022u);
+ z98\3\2 = (2.901u,-6.022u);
+ z98\3\3 = (2.901u,-1.686u);
+ z98\3\4 = (3.132u,0.000u);
+ fill_or_unfill z98\0\0s
+ --z98\0\0
+ ..controls z98\0\1c1 and z98\0\1c2..z98\0\1
+ --z98\0\2
+ ..controls z98\0\3c1 and z98\0\3c2..z98\0\3
+ ..controls z98\0\4c1 and z98\0\4c2..z98\0\4
+ --cycle;
+ fill_or_unfill z98\1\0s
+ ..controls z98\1\0c1 and z98\1\0c2..z98\1\0
+ ..controls z98\1\1c1 and z98\1\1c2..z98\1\1
+ ..controls z98\1\2c1 and z98\1\2c2..z98\1\2
+ --z98\1\3
+ ..controls z98\1\4c1 and z98\1\4c2..cycle;
+ fill_or_unfill z98\2\0s
+ ..controls z98\2\0c1 and z98\2\0c2..z98\2\0
+ ..controls z98\2\1c1 and z98\2\1c2..z98\2\1
+ ..controls z98\2\2c1 and z98\2\2c2..z98\2\2
+ --z98\2\3
+ ..controls z98\2\4c1 and z98\2\4c2..cycle;
+ fill_or_unfill z98\3\0s
+ --z98\3\0
+ --z98\3\1
+ --z98\3\2
+ --z98\3\3
+ --z98\3\4
+ --cycle;
+ proof_labels (
+ 98\0\0,
+ 98\0\1,
+ 98\0\2,
+ 98\0\3,
+ 98\0\4,
+ 98\0\5,
+ 98\1\0,
+ 98\1\1,
+ 98\1\2,
+ 98\1\3,
+ 98\1\4,
+ 98\2\0,
+ 98\2\1,
+ 98\2\2,
+ 98\2\3,
+ 98\2\4,
+ 98\3\0,
+ 98\3\1,
+ 98\3\2,
+ 98\3\3,
+ 98\3\4,
+ 98\3\5,
+);
+endchar;
+
+beginchar (TIB_SBRULSHAD, 4.577u#, 6.986u#, 6.263u#);
+ "sbrul.shad";
+ z99\0\0s = (0.482u,5.300u);
+ z99\0\0c1 = (1.105u,5.492u);
+ z99\0\0c2 = (1.224u,5.563u);
+ z99\0\0 = (1.686u,6.022u);
+ z99\0\1c1 = (2.928u,5.161u);
+ z99\0\1c2 = (3.623u,5.194u);
+ z99\0\1 = (4.095u,6.745u);
+ z99\0\2c1 = (3.456u,6.575u);
+ z99\0\2c2 = (2.987u,6.343u);
+ z99\0\2 = (2.409u,6.022u);
+ z99\0\3c1 = (2.290u,6.224u);
+ z99\0\3c2 = (2.251u,6.422u);
+ z99\0\3 = (2.038u,6.568u);
+ z99\0\4c1 = (1.190u,7.151u);
+ z99\0\4c2 = (0.659u,5.894u);
+ z99\1\0s = (0.482u,3.613u);
+ z99\1\0 = (1.927u,4.095u);
+ z99\1\1 = (1.927u,3.132u);
+ z99\1\2c1 = (0.942u,3.257u);
+ z99\1\2c2 = (0.781u,3.102u);
+ z99\1\2 = (0.482u,2.168u);
+ z99\1\3 = (1.928u,2.650u);
+ z99\1\4 = (1.928u,-0.964u);
+ z99\1\5 = (2.157u,-3.372u);
+ z99\1\6 = (2.157u,-6.022u);
+ z99\1\7 = (2.650u,-6.022u);
+ z99\1\8 = (2.650u,2.650u);
+ z99\1\9 = (4.095u,2.168u);
+ z99\1\10c1 = (3.796u,3.102u);
+ z99\1\10c2 = (3.635u,3.257u);
+ z99\1\10 = (2.650u,3.132u);
+ z99\1\11 = (2.650u,4.095u);
+ z99\1\12 = (4.095u,3.613u);
+ z99\1\13c1 = (3.684u,4.896u);
+ z99\1\13c2 = (3.403u,4.615u);
+ z99\1\13 = (2.270u,4.607u);
+ z99\1\14c1 = (1.149u,4.599u);
+ z99\1\14c2 = (0.891u,4.892u);
+ fill_or_unfill z99\0\0s
+ ..controls z99\0\0c1 and z99\0\0c2..z99\0\0
+ ..controls z99\0\1c1 and z99\0\1c2..z99\0\1
+ ..controls z99\0\2c1 and z99\0\2c2..z99\0\2
+ ..controls z99\0\3c1 and z99\0\3c2..z99\0\3
+ ..controls z99\0\4c1 and z99\0\4c2..cycle;
+ fill_or_unfill z99\1\0s
+ --z99\1\0
+ --z99\1\1
+ ..controls z99\1\2c1 and z99\1\2c2..z99\1\2
+ --z99\1\3
+ --z99\1\4
+ --z99\1\5
+ --z99\1\6
+ --z99\1\7
+ --z99\1\8
+ --z99\1\9
+ ..controls z99\1\10c1 and z99\1\10c2..z99\1\10
+ --z99\1\11
+ --z99\1\12
+ ..controls z99\1\13c1 and z99\1\13c2..z99\1\13
+ ..controls z99\1\14c1 and z99\1\14c2..cycle;
+ proof_labels (
+ 99\0\0,
+ 99\0\1,
+ 99\0\2,
+ 99\0\3,
+ 99\0\4,
+ 99\1\0,
+ 99\1\1,
+ 99\1\2,
+ 99\1\3,
+ 99\1\4,
+ 99\1\5,
+ 99\1\6,
+ 99\1\7,
+ 99\1\8,
+ 99\1\9,
+ 99\1\10,
+ 99\1\11,
+ 99\1\12,
+ 99\1\13,
+ 99\1\14,
+);
+endchar;
+
+beginchar (TIB_RGYAGRAMSHAD, 15.177u#, 7.709u#, 6.263u#);
+ "rgya.gram.shad";
+ z100\0\0s = (7.710u,7.437u);
+ z100\0\0c1 = (7.349u,7.353u);
+ z100\0\0c2 = (7.108u,7.315u);
+ z100\0\0 = (6.799u,7.067u);
+ z100\0\1c1 = (5.641u,6.136u);
+ z100\0\1c2 = (5.983u,4.293u);
+ z100\0\1 = (7.471u,3.968u);
+ z100\0\2c1 = (9.516u,3.522u);
+ z100\0\2c2 = (10.572u,6.595u);
+ z100\0\2 = (8.187u,7.437u);
+ z100\1\0s = (7.715u,6.828u);
+ z100\1\0c1 = (7.978u,6.793u);
+ z100\1\0c2 = (8.125u,6.829u);
+ z100\1\0 = (8.377u,6.693u);
+ z100\1\1c1 = (9.298u,6.194u);
+ z100\1\1c2 = (9.164u,4.849u);
+ z100\1\1 = (8.166u,4.540u);
+ z100\1\2c1 = (6.944u,4.161u);
+ z100\1\2c2 = (5.985u,5.818u);
+ z100\1\2 = (7.281u,6.693u);
+ z100\2\0s = (5.059u,4.818u);
+ z100\2\0c1 = (5.130u,4.380u);
+ z100\2\0c2 = (5.164u,4.036u);
+ z100\2\0 = (5.444u,3.664u);
+ z100\2\1c1 = (6.455u,2.319u);
+ z100\2\1c2 = (9.203u,2.319u);
+ z100\2\1 = (10.215u,3.664u);
+ z100\2\2c1 = (10.494u,4.036u);
+ z100\2\2c2 = (10.528u,4.380u);
+ z100\2\2 = (10.600u,4.818u);
+ z100\2\3c1 = (9.280u,4.086u);
+ z100\2\3c2 = (8.460u,2.582u);
+ z100\2\3 = (6.749u,3.578u);
+ z100\3\0s = (0.482u,2.213u);
+ z100\3\0 = (0.482u,1.641u);
+ z100\3\1 = (1.927u,1.641u);
+ z100\3\2 = (3.372u,1.204u);
+ z100\3\3c1 = (3.523u,1.873u);
+ z100\3\3c2 = (3.523u,1.981u);
+ z100\3\3 = (3.372u,2.650u);
+ z100\3\4 = (1.927u,2.213u);
+ z100\4\0s = (12.286u,2.650u);
+ z100\4\0c1 = (12.136u,1.981u);
+ z100\4\0c2 = (12.136u,1.873u);
+ z100\4\0 = (12.286u,1.204u);
+ z100\4\1c1 = (13.119u,1.421u);
+ z100\4\1c2 = (13.827u,1.638u);
+ z100\4\1 = (14.695u,1.686u);
+ z100\4\2 = (14.695u,2.168u);
+ z100\4\3c1 = (13.827u,2.216u);
+ z100\4\3c2 = (13.119u,2.433u);
+ z100\5\0s = (4.336u,2.409u);
+ z100\5\0 = (4.818u,1.204u);
+ z100\5\1c1 = (5.277u,1.667u);
+ z100\5\1c2 = (5.349u,1.786u);
+ z100\5\1 = (5.541u,2.409u);
+ z100\6\0s = (6.263u,2.409u);
+ z100\6\0 = (6.745u,1.204u);
+ z100\6\1c1 = (7.204u,1.667u);
+ z100\6\1c2 = (7.276u,1.786u);
+ z100\6\1 = (7.468u,2.409u);
+ z100\7\0s = (8.190u,2.409u);
+ z100\7\0 = (8.672u,1.204u);
+ z100\7\1c1 = (9.131u,1.667u);
+ z100\7\1c2 = (9.203u,1.786u);
+ z100\7\1 = (9.395u,2.409u);
+ z100\8\0s = (10.118u,2.409u);
+ z100\8\0 = (10.600u,1.204u);
+ z100\8\1c1 = (11.059u,1.667u);
+ z100\8\1c2 = (11.130u,1.786u);
+ z100\8\1 = (11.322u,2.409u);
+ z100\9\0s = (4.818u,-0.723u);
+ z100\9\0c1 = (5.434u,-0.432u);
+ z100\9\0c2 = (6.040u,0.072u);
+ z100\9\0 = (6.746u,0.077u);
+ z100\9\1c1 = (7.989u,0.087u);
+ z100\9\1c2 = (9.003u,-1.299u);
+ z100\9\1 = (10.345u,-0.782u);
+ z100\9\2c1 = (11.096u,-0.493u);
+ z100\9\2c2 = (11.204u,0.013u);
+ z100\9\2 = (11.322u,0.723u);
+ z100\9\3c1 = (10.725u,0.438u);
+ z100\9\3c2 = (10.078u,-0.134u);
+ z100\9\3 = (9.392u,-0.087u);
+ z100\9\4c1 = (8.844u,-0.049u);
+ z100\9\4c2 = (8.229u,0.378u);
+ z100\9\4 = (7.709u,0.576u);
+ z100\9\5c1 = (6.772u,0.935u);
+ z100\9\5c2 = (5.456u,1.048u);
+ z100\9\5 = (4.960u,-0.051u);
+ z100\9\6c1 = (4.858u,-0.275u);
+ z100\9\6c2 = (4.858u,-0.488u);
+ z100\10\0s = (6.986u,-1.445u);
+ z100\10\0 = (7.669u,-3.613u);
+ z100\10\1c1 = (7.765u,-4.392u);
+ z100\10\1c2 = (7.709u,-5.233u);
+ z100\10\1 = (7.669u,-6.022u);
+ z100\10\2 = (8.215u,-6.022u);
+ z100\10\3c1 = (8.190u,-5.083u);
+ z100\10\3c2 = (8.109u,-4.060u);
+ z100\10\3 = (8.215u,-3.132u);
+ z100\10\4 = (8.672u,-1.445u);
+ z100\10\5c1 = (7.910u,-1.249u);
+ z100\10\5c2 = (7.748u,-1.249u);
+ fill_or_unfill z100\0\0s
+ ..controls z100\0\0c1 and z100\0\0c2..z100\0\0
+ ..controls z100\0\1c1 and z100\0\1c2..z100\0\1
+ ..controls z100\0\2c1 and z100\0\2c2..z100\0\2
+ --cycle;
+ fill_or_unfill z100\1\0s
+ ..controls z100\1\0c1 and z100\1\0c2..z100\1\0
+ ..controls z100\1\1c1 and z100\1\1c2..z100\1\1
+ ..controls z100\1\2c1 and z100\1\2c2..z100\1\2
+ --cycle;
+ fill_or_unfill z100\2\0s
+ ..controls z100\2\0c1 and z100\2\0c2..z100\2\0
+ ..controls z100\2\1c1 and z100\2\1c2..z100\2\1
+ ..controls z100\2\2c1 and z100\2\2c2..z100\2\2
+ ..controls z100\2\3c1 and z100\2\3c2..z100\2\3
+ --cycle;
+ fill_or_unfill z100\3\0s
+ --z100\3\0
+ --z100\3\1
+ --z100\3\2
+ ..controls z100\3\3c1 and z100\3\3c2..z100\3\3
+ --z100\3\4
+ --cycle;
+ fill_or_unfill z100\4\0s
+ ..controls z100\4\0c1 and z100\4\0c2..z100\4\0
+ ..controls z100\4\1c1 and z100\4\1c2..z100\4\1
+ --z100\4\2
+ ..controls z100\4\3c1 and z100\4\3c2..cycle;
+ fill_or_unfill z100\5\0s
+ --z100\5\0
+ ..controls z100\5\1c1 and z100\5\1c2..z100\5\1
+ --cycle;
+ fill_or_unfill z100\6\0s
+ --z100\6\0
+ ..controls z100\6\1c1 and z100\6\1c2..z100\6\1
+ --cycle;
+ fill_or_unfill z100\7\0s
+ --z100\7\0
+ ..controls z100\7\1c1 and z100\7\1c2..z100\7\1
+ --cycle;
+ fill_or_unfill z100\8\0s
+ --z100\8\0
+ ..controls z100\8\1c1 and z100\8\1c2..z100\8\1
+ --cycle;
+ fill_or_unfill z100\9\0s
+ ..controls z100\9\0c1 and z100\9\0c2..z100\9\0
+ ..controls z100\9\1c1 and z100\9\1c2..z100\9\1
+ ..controls z100\9\2c1 and z100\9\2c2..z100\9\2
+ ..controls z100\9\3c1 and z100\9\3c2..z100\9\3
+ ..controls z100\9\4c1 and z100\9\4c2..z100\9\4
+ ..controls z100\9\5c1 and z100\9\5c2..z100\9\5
+ ..controls z100\9\6c1 and z100\9\6c2..cycle;
+ fill_or_unfill z100\10\0s
+ --z100\10\0
+ ..controls z100\10\1c1 and z100\10\1c2..z100\10\1
+ --z100\10\2
+ ..controls z100\10\3c1 and z100\10\3c2..z100\10\3
+ --z100\10\4
+ ..controls z100\10\5c1 and z100\10\5c2..cycle;
+ proof_labels (
+ 100\0\0,
+ 100\0\1,
+ 100\0\2,
+ 100\0\3,
+ 100\1\0,
+ 100\1\1,
+ 100\1\2,
+ 100\1\3,
+ 100\2\0,
+ 100\2\1,
+ 100\2\2,
+ 100\2\3,
+ 100\2\4,
+ 100\3\0,
+ 100\3\1,
+ 100\3\2,
+ 100\3\3,
+ 100\3\4,
+ 100\3\5,
+ 100\4\0,
+ 100\4\1,
+ 100\4\2,
+ 100\4\3,
+ 100\5\0,
+ 100\5\1,
+ 100\5\2,
+ 100\6\0,
+ 100\6\1,
+ 100\6\2,
+ 100\7\0,
+ 100\7\1,
+ 100\7\2,
+ 100\8\0,
+ 100\8\1,
+ 100\8\2,
+ 100\9\0,
+ 100\9\1,
+ 100\9\2,
+ 100\9\3,
+ 100\9\4,
+ 100\9\5,
+ 100\9\6,
+ 100\10\0,
+ 100\10\1,
+ 100\10\2,
+ 100\10\3,
+ 100\10\4,
+ 100\10\5,
+);
+endchar;
+
+beginchar (TIB_VARCHEMGOSHAD, 5.059u#, 7.709u#, 6.263u#);
+ "var.che.mgo.shad";
+ z101\0\0s = (3.854u,7.709u);
+ z101\0\0 = (2.891u,5.782u);
+ z101\0\1c1 = (1.853u,6.647u);
+ z101\0\1c2 = (1.009u,7.189u);
+ z101\0\1 = (0.482u,5.541u);
+ z101\0\2 = (1.686u,6.022u);
+ z101\0\3c1 = (1.901u,5.150u);
+ z101\0\3c2 = (1.867u,4.966u);
+ z101\0\3 = (1.686u,4.095u);
+ z101\0\4c1 = (3.708u,4.482u);
+ z101\0\4c2 = (4.375u,5.764u);
+ z101\0\4 = (4.577u,7.709u);
+ z101\1\0s = (0.482u,3.854u);
+ z101\1\0c1 = (0.556u,3.633u);
+ z101\1\0c2 = (0.577u,3.459u);
+ z101\1\0 = (0.717u,3.256u);
+ z101\1\1c1 = (1.565u,2.031u);
+ z101\1\1c2 = (3.493u,2.031u);
+ z101\1\1 = (4.341u,3.256u);
+ z101\1\2c1 = (4.482u,3.459u);
+ z101\1\2c2 = (4.502u,3.633u);
+ z101\1\2 = (4.577u,3.854u);
+ z101\1\3 = (2.650u,3.377u);
+ z101\1\4c1 = (1.965u,3.336u);
+ z101\1\4c2 = (1.169u,3.726u);
+ z101\2\0s = (1.927u,1.686u);
+ z101\2\0c1 = (1.932u,0.059u);
+ z101\2\0c2 = (2.215u,-1.517u);
+ z101\2\0 = (2.389u,-3.132u);
+ z101\2\1 = (2.389u,-6.022u);
+ z101\2\2 = (2.891u,-6.022u);
+ z101\2\3 = (2.891u,-1.927u);
+ z101\2\4 = (3.132u,1.686u);
+ fill_or_unfill z101\0\0s
+ --z101\0\0
+ ..controls z101\0\1c1 and z101\0\1c2..z101\0\1
+ --z101\0\2
+ ..controls z101\0\3c1 and z101\0\3c2..z101\0\3
+ ..controls z101\0\4c1 and z101\0\4c2..z101\0\4
+ --cycle;
+ fill_or_unfill z101\1\0s
+ ..controls z101\1\0c1 and z101\1\0c2..z101\1\0
+ ..controls z101\1\1c1 and z101\1\1c2..z101\1\1
+ ..controls z101\1\2c1 and z101\1\2c2..z101\1\2
+ --z101\1\3
+ ..controls z101\1\4c1 and z101\1\4c2..cycle;
+ fill_or_unfill z101\2\0s
+ ..controls z101\2\0c1 and z101\2\0c2..z101\2\0
+ --z101\2\1
+ --z101\2\2
+ --z101\2\3
+ --z101\2\4
+ --cycle;
+ proof_labels (
+ 101\0\0,
+ 101\0\1,
+ 101\0\2,
+ 101\0\3,
+ 101\0\4,
+ 101\0\5,
+ 101\1\0,
+ 101\1\1,
+ 101\1\2,
+ 101\1\3,
+ 101\1\4,
+ 101\2\0,
+ 101\2\1,
+ 101\2\2,
+ 101\2\3,
+ 101\2\4,
+ 101\2\5,
+);
+endchar;
+
+beginchar (TIB_RJESSUNGARO, 4.577u#, 6.022u#, 0.000u#);
+ "rjes.su.nga.ro";
+ z104\0\0s = (1.697u,5.875u);
+ z104\0\0c1 = (1.372u,5.654u);
+ z104\0\0c2 = (1.138u,5.560u);
+ z104\0\0 = (0.900u,5.245u);
+ z104\0\1c1 = (-0.135u,3.872u);
+ z104\0\1c2 = (0.938u,2.201u);
+ z104\0\1 = (2.646u,2.467u);
+ z104\0\2c1 = (4.623u,2.774u);
+ z104\0\2c2 = (4.415u,5.523u);
+ z104\0\2 = (2.646u,5.875u);
+ z104\0\3c1 = (2.280u,5.988u);
+ z104\0\3c2 = (2.046u,5.908u);
+ z104\1\0s = (2.175u,5.383u);
+ z104\1\0c1 = (2.437u,5.347u);
+ z104\1\0c2 = (2.584u,5.384u);
+ z104\1\0 = (2.836u,5.247u);
+ z104\1\1c1 = (3.757u,4.748u);
+ z104\1\1c2 = (3.624u,3.404u);
+ z104\1\1 = (2.625u,3.094u);
+ z104\1\2c1 = (1.404u,2.716u);
+ z104\1\2c2 = (0.444u,4.372u);
+ z104\1\2 = (1.741u,5.247u);
+ fill_or_unfill z104\0\0s
+ ..controls z104\0\0c1 and z104\0\0c2..z104\0\0
+ ..controls z104\0\1c1 and z104\0\1c2..z104\0\1
+ ..controls z104\0\2c1 and z104\0\2c2..z104\0\2
+ ..controls z104\0\3c1 and z104\0\3c2..cycle;
+ fill_or_unfill z104\1\0s
+ ..controls z104\1\0c1 and z104\1\0c2..z104\1\0
+ ..controls z104\1\1c1 and z104\1\1c2..z104\1\1
+ ..controls z104\1\2c1 and z104\1\2c2..z104\1\2
+ --cycle;
+ proof_labels (
+ 104\0\0,
+ 104\0\1,
+ 104\0\2,
+ 104\0\3,
+ 104\1\0,
+ 104\1\1,
+ 104\1\2,
+ 104\1\3,
+);
+endchar;
+
+beginchar (TIB_SNALDAN, 6.986u#, 6.504u#, 0.000u#);
+ "sna.ldan";
+ z105\0\0s = (2.901u,6.357u);
+ z105\0\0c1 = (2.661u,6.185u);
+ z105\0\0c2 = (2.477u,6.124u);
+ z105\0\0 = (2.272u,5.919u);
+ z105\0\1c1 = (0.968u,4.615u);
+ z105\0\1c2 = (2.392u,2.430u);
+ z105\0\1 = (4.085u,3.038u);
+ z105\0\2c1 = (5.705u,3.621u);
+ z105\0\2c2 = (5.546u,6.021u);
+ z105\0\2 = (3.851u,6.357u);
+ z105\0\3c1 = (3.485u,6.470u);
+ z105\0\3c2 = (3.250u,6.389u);
+ z105\1\0s = (3.379u,5.865u);
+ z105\1\0c1 = (3.642u,5.829u);
+ z105\1\0c2 = (3.789u,5.866u);
+ z105\1\0 = (4.041u,5.729u);
+ z105\1\1c1 = (4.962u,5.230u);
+ z105\1\1c2 = (4.828u,3.885u);
+ z105\1\1 = (3.829u,3.576u);
+ z105\1\2c1 = (2.608u,3.198u);
+ z105\1\2c2 = (1.649u,4.854u);
+ z105\1\2 = (2.945u,5.729u);
+ z105\2\0s = (0.482u,3.613u);
+ z105\2\0c1 = (0.537u,3.271u);
+ z105\2\0c2 = (0.557u,2.977u);
+ z105\2\0 = (0.728u,2.660u);
+ z105\2\1c1 = (1.730u,0.797u);
+ z105\2\1c2 = (4.928u,0.741u);
+ z105\2\1 = (6.119u,2.434u);
+ z105\2\2c1 = (6.391u,2.820u);
+ z105\2\2c2 = (6.432u,3.166u);
+ z105\2\2 = (6.504u,3.613u);
+ z105\2\3 = (4.814u,2.429u);
+ z105\2\4c1 = (2.832u,1.315u);
+ z105\2\4c2 = (2.010u,2.777u);
+ fill_or_unfill z105\0\0s
+ ..controls z105\0\0c1 and z105\0\0c2..z105\0\0
+ ..controls z105\0\1c1 and z105\0\1c2..z105\0\1
+ ..controls z105\0\2c1 and z105\0\2c2..z105\0\2
+ ..controls z105\0\3c1 and z105\0\3c2..cycle;
+ fill_or_unfill z105\1\0s
+ ..controls z105\1\0c1 and z105\1\0c2..z105\1\0
+ ..controls z105\1\1c1 and z105\1\1c2..z105\1\1
+ ..controls z105\1\2c1 and z105\1\2c2..z105\1\2
+ --cycle;
+ fill_or_unfill z105\2\0s
+ ..controls z105\2\0c1 and z105\2\0c2..z105\2\0
+ ..controls z105\2\1c1 and z105\2\1c2..z105\2\1
+ ..controls z105\2\2c1 and z105\2\2c2..z105\2\2
+ --z105\2\3
+ ..controls z105\2\4c1 and z105\2\4c2..cycle;
+ proof_labels (
+ 105\0\0,
+ 105\0\1,
+ 105\0\2,
+ 105\0\3,
+ 105\1\0,
+ 105\1\1,
+ 105\1\2,
+ 105\1\3,
+ 105\2\0,
+ 105\2\1,
+ 105\2\2,
+ 105\2\3,
+ 105\2\4,
+);
+endchar;
+
+beginchar (TIB_RNAMBCAD, 5.541u#, 6.745u#, 3.372u#);
+ "rnam.bcad";
+ z106\0\0s = (2.169u,6.567u);
+ z106\0\0c1 = (1.624u,6.276u);
+ z106\0\0c2 = (1.255u,6.069u);
+ z106\0\0 = (0.900u,5.530u);
+ z106\0\1c1 = (0.272u,4.575u);
+ z106\0\1c2 = (0.465u,3.063u);
+ z106\0\1 = (1.496u,2.451u);
+ z106\0\2c1 = (1.941u,2.187u);
+ z106\0\2c2 = (2.626u,2.145u);
+ z106\0\2 = (3.132u,2.195u);
+ z106\0\3c1 = (4.316u,2.310u);
+ z106\0\3c2 = (4.950u,2.903u);
+ z106\0\3 = (5.045u,4.095u);
+ z106\0\4c1 = (5.207u,6.120u);
+ z106\0\4c2 = (4.129u,7.022u);
+ z106\1\0s = (2.650u,5.432u);
+ z106\1\0c1 = (3.115u,5.513u);
+ z106\1\0c2 = (3.828u,5.610u);
+ z106\1\0 = (4.260u,5.432u);
+ z106\1\1c1 = (4.982u,5.041u);
+ z106\1\1c2 = (4.742u,4.189u);
+ z106\1\1 = (4.260u,3.736u);
+ z106\1\2c1 = (3.955u,3.449u);
+ z106\1\2c2 = (3.538u,3.290u);
+ z106\1\2 = (3.131u,3.217u);
+ z106\1\3c1 = (2.374u,3.081u);
+ z106\1\3c2 = (0.954u,3.273u);
+ z106\1\3 = (1.074u,4.335u);
+ z106\1\4c1 = (1.110u,4.651u);
+ z106\1\4c2 = (1.273u,4.886u);
+ z106\1\4 = (1.521u,5.075u);
+ z106\1\5c1 = (1.851u,5.326u);
+ z106\1\5c2 = (2.260u,5.380u);
+ z106\2\0s = (2.169u,1.267u);
+ z106\2\0c1 = (1.624u,0.976u);
+ z106\2\0c2 = (1.255u,0.769u);
+ z106\2\0 = (0.900u,0.230u);
+ z106\2\1c1 = (0.272u,-0.725u);
+ z106\2\1c2 = (0.465u,-2.237u);
+ z106\2\1 = (1.496u,-2.849u);
+ z106\2\2c1 = (1.941u,-3.112u);
+ z106\2\2c2 = (2.626u,-3.154u);
+ z106\2\2 = (3.132u,-3.105u);
+ z106\2\3c1 = (4.316u,-2.990u);
+ z106\2\3c2 = (4.950u,-2.397u);
+ z106\2\3 = (5.045u,-1.204u);
+ z106\2\4c1 = (5.207u,0.820u);
+ z106\2\4c2 = (4.129u,1.723u);
+ z106\3\0s = (2.650u,0.132u);
+ z106\3\0c1 = (3.115u,0.213u);
+ z106\3\0c2 = (3.828u,0.310u);
+ z106\3\0 = (4.260u,0.132u);
+ z106\3\1c1 = (4.982u,-0.259u);
+ z106\3\1c2 = (4.742u,-1.111u);
+ z106\3\1 = (4.260u,-1.563u);
+ z106\3\2c1 = (3.955u,-1.850u);
+ z106\3\2c2 = (3.538u,-2.009u);
+ z106\3\2 = (3.131u,-2.082u);
+ z106\3\3c1 = (2.374u,-2.218u);
+ z106\3\3c2 = (0.954u,-2.027u);
+ z106\3\3 = (1.074u,-0.964u);
+ z106\3\4c1 = (1.110u,-0.648u);
+ z106\3\4c2 = (1.273u,-0.414u);
+ z106\3\4 = (1.521u,-0.225u);
+ z106\3\5c1 = (1.851u,0.026u);
+ z106\3\5c2 = (2.260u,0.081u);
+ fill_or_unfill z106\0\0s
+ ..controls z106\0\0c1 and z106\0\0c2..z106\0\0
+ ..controls z106\0\1c1 and z106\0\1c2..z106\0\1
+ ..controls z106\0\2c1 and z106\0\2c2..z106\0\2
+ ..controls z106\0\3c1 and z106\0\3c2..z106\0\3
+ ..controls z106\0\4c1 and z106\0\4c2..cycle;
+ fill_or_unfill z106\1\0s
+ ..controls z106\1\0c1 and z106\1\0c2..z106\1\0
+ ..controls z106\1\1c1 and z106\1\1c2..z106\1\1
+ ..controls z106\1\2c1 and z106\1\2c2..z106\1\2
+ ..controls z106\1\3c1 and z106\1\3c2..z106\1\3
+ ..controls z106\1\4c1 and z106\1\4c2..z106\1\4
+ ..controls z106\1\5c1 and z106\1\5c2..cycle;
+ fill_or_unfill z106\2\0s
+ ..controls z106\2\0c1 and z106\2\0c2..z106\2\0
+ ..controls z106\2\1c1 and z106\2\1c2..z106\2\1
+ ..controls z106\2\2c1 and z106\2\2c2..z106\2\2
+ ..controls z106\2\3c1 and z106\2\3c2..z106\2\3
+ ..controls z106\2\4c1 and z106\2\4c2..cycle;
+ fill_or_unfill z106\3\0s
+ ..controls z106\3\0c1 and z106\3\0c2..z106\3\0
+ ..controls z106\3\1c1 and z106\3\1c2..z106\3\1
+ ..controls z106\3\2c1 and z106\3\2c2..z106\3\2
+ ..controls z106\3\3c1 and z106\3\3c2..z106\3\3
+ ..controls z106\3\4c1 and z106\3\4c2..z106\3\4
+ ..controls z106\3\5c1 and z106\3\5c2..cycle;
+ proof_labels (
+ 106\0\0,
+ 106\0\1,
+ 106\0\2,
+ 106\0\3,
+ 106\0\4,
+ 106\1\0,
+ 106\1\1,
+ 106\1\2,
+ 106\1\3,
+ 106\1\4,
+ 106\1\5,
+ 106\2\0,
+ 106\2\1,
+ 106\2\2,
+ 106\2\3,
+ 106\2\4,
+ 106\3\0,
+ 106\3\1,
+ 106\3\2,
+ 106\3\3,
+ 106\3\4,
+ 106\3\5,
+);
+endchar;
+
+beginchar (TIB_GTERTSHEG, 4.577u#, 6.745u#, 3.854u#);
+ "gter.tsheg";
+ z107\0\0s = (1.697u,6.597u);
+ z107\0\0c1 = (1.457u,6.426u);
+ z107\0\0c2 = (1.272u,6.365u);
+ z107\0\0 = (1.067u,6.160u);
+ z107\0\1c1 = (-0.146u,4.947u);
+ z107\0\1c2 = (0.981u,2.882u);
+ z107\0\1 = (2.646u,3.246u);
+ z107\0\2c1 = (4.464u,3.642u);
+ z107\0\2c2 = (4.464u,6.235u);
+ z107\0\2 = (2.646u,6.597u);
+ z107\0\3c1 = (2.280u,6.711u);
+ z107\0\3c2 = (2.046u,6.630u);
+ z107\1\0s = (2.175u,6.105u);
+ z107\1\0c1 = (2.437u,6.070u);
+ z107\1\0c2 = (2.584u,6.107u);
+ z107\1\0 = (2.836u,5.970u);
+ z107\1\1c1 = (3.757u,5.471u);
+ z107\1\1c2 = (3.624u,4.126u);
+ z107\1\1 = (2.625u,3.817u);
+ z107\1\2c1 = (1.404u,3.439u);
+ z107\1\2c2 = (0.444u,5.095u);
+ z107\1\2 = (1.741u,5.970u);
+ z107\2\0s = (0.482u,1.927u);
+ z107\2\0 = (0.482u,1.204u);
+ z107\2\1 = (4.095u,1.204u);
+ z107\2\2 = (4.095u,1.927u);
+ z107\3\0s = (1.697u,-0.148u);
+ z107\3\0c1 = (1.457u,-0.319u);
+ z107\3\0c2 = (1.272u,-0.380u);
+ z107\3\0 = (1.067u,-0.585u);
+ z107\3\1c1 = (-0.146u,-1.799u);
+ z107\3\1c2 = (0.981u,-3.863u);
+ z107\3\1 = (2.646u,-3.499u);
+ z107\3\2c1 = (4.464u,-3.103u);
+ z107\3\2c2 = (4.464u,-0.510u);
+ z107\3\2 = (2.646u,-0.148u);
+ z107\3\3c1 = (2.280u,-0.034u);
+ z107\3\3c2 = (2.046u,-0.115u);
+ z107\4\0s = (2.175u,-0.640u);
+ z107\4\0c1 = (2.437u,-0.675u);
+ z107\4\0c2 = (2.584u,-0.638u);
+ z107\4\0 = (2.836u,-0.775u);
+ z107\4\1c1 = (3.757u,-1.274u);
+ z107\4\1c2 = (3.624u,-2.619u);
+ z107\4\1 = (2.625u,-2.928u);
+ z107\4\2c1 = (1.404u,-3.306u);
+ z107\4\2c2 = (0.444u,-1.650u);
+ z107\4\2 = (1.741u,-0.775u);
+ fill_or_unfill z107\0\0s
+ ..controls z107\0\0c1 and z107\0\0c2..z107\0\0
+ ..controls z107\0\1c1 and z107\0\1c2..z107\0\1
+ ..controls z107\0\2c1 and z107\0\2c2..z107\0\2
+ ..controls z107\0\3c1 and z107\0\3c2..cycle;
+ fill_or_unfill z107\1\0s
+ ..controls z107\1\0c1 and z107\1\0c2..z107\1\0
+ ..controls z107\1\1c1 and z107\1\1c2..z107\1\1
+ ..controls z107\1\2c1 and z107\1\2c2..z107\1\2
+ --cycle;
+ fill_or_unfill z107\2\0s
+ --z107\2\0
+ --z107\2\1
+ --z107\2\2
+ --cycle;
+ fill_or_unfill z107\3\0s
+ ..controls z107\3\0c1 and z107\3\0c2..z107\3\0
+ ..controls z107\3\1c1 and z107\3\1c2..z107\3\1
+ ..controls z107\3\2c1 and z107\3\2c2..z107\3\2
+ ..controls z107\3\3c1 and z107\3\3c2..cycle;
+ fill_or_unfill z107\4\0s
+ ..controls z107\4\0c1 and z107\4\0c2..z107\4\0
+ ..controls z107\4\1c1 and z107\4\1c2..z107\4\1
+ ..controls z107\4\2c1 and z107\4\2c2..z107\4\2
+ --cycle;
+ proof_labels (
+ 107\0\0,
+ 107\0\1,
+ 107\0\2,
+ 107\0\3,
+ 107\1\0,
+ 107\1\1,
+ 107\1\2,
+ 107\1\3,
+ 107\2\0,
+ 107\2\1,
+ 107\2\2,
+ 107\2\3,
+ 107\3\0,
+ 107\3\1,
+ 107\3\2,
+ 107\3\3,
+ 107\4\0,
+ 107\4\1,
+ 107\4\2,
+ 107\4\3,
+);
+endchar;
+
+beginchar (TIB_RINCHENSPUNGSSHAD, 6.263u#, 6.745u#, 6.263u#);
+ "rin.chen.spungs.shad";
+ z121\0\0s = (1.204u,4.818u);
+ z121\0\0 = (1.686u,4.818u);
+ z121\0\1c1 = (1.886u,5.160u);
+ z121\0\1c2 = (2.193u,5.576u);
+ z121\0\1 = (2.211u,5.987u);
+ z121\0\2c1 = (2.251u,6.873u);
+ z121\0\2c2 = (0.845u,6.877u);
+ z121\0\2 = (0.692u,6.188u);
+ z121\0\3c1 = (0.590u,5.729u);
+ z121\0\3c2 = (0.988u,5.189u);
+ z121\1\0s = (4.577u,4.818u);
+ z121\1\0 = (5.059u,4.818u);
+ z121\1\1c1 = (5.259u,5.160u);
+ z121\1\1c2 = (5.566u,5.576u);
+ z121\1\1 = (5.584u,5.987u);
+ z121\1\2c1 = (5.623u,6.873u);
+ z121\1\2c2 = (4.218u,6.877u);
+ z121\1\2 = (4.065u,6.188u);
+ z121\1\3c1 = (3.963u,5.729u);
+ z121\1\3c2 = (4.360u,5.189u);
+ z121\2\0s = (2.891u,2.650u);
+ z121\2\0 = (3.372u,2.650u);
+ z121\2\1c1 = (3.573u,2.992u);
+ z121\2\1c2 = (3.879u,3.407u);
+ z121\2\1 = (3.898u,3.819u);
+ z121\2\2c1 = (3.937u,4.705u);
+ z121\2\2c2 = (2.532u,4.709u);
+ z121\2\2 = (2.378u,4.020u);
+ z121\2\3c1 = (2.276u,3.561u);
+ z121\2\3c2 = (2.674u,3.021u);
+ z121\3\0s = (3.132u,-6.022u);
+ z121\3\0 = (3.613u,-6.022u);
+ z121\3\1 = (3.902u,-3.132u);
+ z121\3\2 = (3.902u,-0.964u);
+ z121\3\3 = (3.902u,0.241u);
+ z121\3\4c1 = (3.962u,0.589u);
+ z121\3\4c2 = (4.072u,1.069u);
+ z121\3\4 = (3.902u,1.410u);
+ z121\3\5c1 = (3.938u,1.692u);
+ z121\3\5c2 = (3.821u,1.898u);
+ z121\3\5 = (3.542u,2.010u);
+ z121\3\6c1 = (2.607u,2.386u);
+ z121\3\6c2 = (2.450u,1.364u);
+ z121\3\6 = (2.516u,0.722u);
+ z121\3\7 = (2.867u,-1.204u);
+ z121\3\8 = (2.867u,-3.132u);
+ fill_or_unfill z121\0\0s
+ --z121\0\0
+ ..controls z121\0\1c1 and z121\0\1c2..z121\0\1
+ ..controls z121\0\2c1 and z121\0\2c2..z121\0\2
+ ..controls z121\0\3c1 and z121\0\3c2..cycle;
+ fill_or_unfill z121\1\0s
+ --z121\1\0
+ ..controls z121\1\1c1 and z121\1\1c2..z121\1\1
+ ..controls z121\1\2c1 and z121\1\2c2..z121\1\2
+ ..controls z121\1\3c1 and z121\1\3c2..cycle;
+ fill_or_unfill z121\2\0s
+ --z121\2\0
+ ..controls z121\2\1c1 and z121\2\1c2..z121\2\1
+ ..controls z121\2\2c1 and z121\2\2c2..z121\2\2
+ ..controls z121\2\3c1 and z121\2\3c2..cycle;
+ fill_or_unfill z121\3\0s
+ --z121\3\0
+ --z121\3\1
+ --z121\3\2
+ --z121\3\3
+ ..controls z121\3\4c1 and z121\3\4c2..z121\3\4
+ ..controls z121\3\5c1 and z121\3\5c2..z121\3\5
+ ..controls z121\3\6c1 and z121\3\6c2..z121\3\6
+ --z121\3\7
+ --z121\3\8
+ --cycle;
+ proof_labels (
+ 121\0\0,
+ 121\0\1,
+ 121\0\2,
+ 121\0\3,
+ 121\1\0,
+ 121\1\1,
+ 121\1\2,
+ 121\1\3,
+ 121\2\0,
+ 121\2\1,
+ 121\2\2,
+ 121\2\3,
+ 121\3\0,
+ 121\3\1,
+ 121\3\2,
+ 121\3\3,
+ 121\3\4,
+ 121\3\5,
+ 121\3\6,
+ 121\3\7,
+ 121\3\8,
+ 121\3\9,
+);
+endchar;
+
+beginchar (TIB_ALTTSHEGSHAD, 6.263u#, 6.745u#, 6.263u#);
+ "alt.tsheg.shad";
+ z113\0\0s = (1.204u,4.818u);
+ z113\0\0 = (1.686u,4.818u);
+ z113\0\1c1 = (1.886u,5.160u);
+ z113\0\1c2 = (2.193u,5.576u);
+ z113\0\1 = (2.211u,5.987u);
+ z113\0\2c1 = (2.251u,6.873u);
+ z113\0\2c2 = (0.845u,6.877u);
+ z113\0\2 = (0.692u,6.188u);
+ z113\0\3c1 = (0.590u,5.729u);
+ z113\0\3c2 = (0.988u,5.189u);
+ z113\1\0s = (4.577u,4.818u);
+ z113\1\0 = (5.059u,4.818u);
+ z113\1\1c1 = (5.259u,5.160u);
+ z113\1\1c2 = (5.566u,5.576u);
+ z113\1\1 = (5.584u,5.987u);
+ z113\1\2c1 = (5.623u,6.873u);
+ z113\1\2c2 = (4.218u,6.877u);
+ z113\1\2 = (4.065u,6.188u);
+ z113\1\3c1 = (3.963u,5.729u);
+ z113\1\3c2 = (4.360u,5.189u);
+ z113\2\0s = (3.132u,-6.022u);
+ z113\2\0 = (3.613u,-6.022u);
+ z113\2\1 = (3.882u,-1.927u);
+ z113\2\2 = (3.882u,4.020u);
+ z113\2\3c1 = (3.653u,4.726u);
+ z113\2\3c2 = (2.141u,4.848u);
+ z113\2\3 = (2.361u,3.368u);
+ z113\2\4 = (2.581u,2.409u);
+ z113\2\5c1 = (2.760u,1.528u);
+ z113\2\5c2 = (2.879u,0.658u);
+ z113\2\5 = (2.901u,-0.241u);
+ z113\2\6 = (2.901u,-3.132u);
+ fill_or_unfill z113\0\0s
+ --z113\0\0
+ ..controls z113\0\1c1 and z113\0\1c2..z113\0\1
+ ..controls z113\0\2c1 and z113\0\2c2..z113\0\2
+ ..controls z113\0\3c1 and z113\0\3c2..cycle;
+ fill_or_unfill z113\1\0s
+ --z113\1\0
+ ..controls z113\1\1c1 and z113\1\1c2..z113\1\1
+ ..controls z113\1\2c1 and z113\1\2c2..z113\1\2
+ ..controls z113\1\3c1 and z113\1\3c2..cycle;
+ fill_or_unfill z113\2\0s
+ --z113\2\0
+ --z113\2\1
+ --z113\2\2
+ ..controls z113\2\3c1 and z113\2\3c2..z113\2\3
+ --z113\2\4
+ ..controls z113\2\5c1 and z113\2\5c2..z113\2\5
+ --z113\2\6
+ --cycle;
+ proof_labels (
+ 113\0\0,
+ 113\0\1,
+ 113\0\2,
+ 113\0\3,
+ 113\1\0,
+ 113\1\1,
+ 113\1\2,
+ 113\1\3,
+ 113\2\0,
+ 113\2\1,
+ 113\2\2,
+ 113\2\3,
+ 113\2\4,
+ 113\2\5,
+ 113\2\6,
+ 113\2\7,
+);
+endchar;
+
+beginchar (TIB_SWASTI, 30.594u#, 6.263u#, 2.650u#);
+ "swasti";
+ z116\0\0s = (13.972u,5.059u);
+ z116\0\0c1 = (17.615u,6.414u);
+ z116\0\0c2 = (20.723u,2.043u);
+ z116\0\0 = (16.622u,0.545u);
+ z116\0\1c1 = (14.998u,-0.048u);
+ z116\0\1c2 = (10.505u,0.819u);
+ z116\0\1 = (8.913u,1.538u);
+ z116\0\2c1 = (7.142u,2.339u);
+ z116\0\2c2 = (1.972u,6.321u);
+ z116\0\2 = (0.482u,4.095u);
+ z116\0\3c1 = (3.886u,4.890u);
+ z116\0\3c2 = (7.022u,-0.646u);
+ z116\0\3 = (12.768u,-0.722u);
+ z116\0\4c1 = (20.430u,-0.823u);
+ z116\0\4c2 = (21.053u,5.910u);
+ z116\0\4 = (16.622u,6.235u);
+ z116\0\5c1 = (14.706u,6.376u);
+ z116\0\5c2 = (12.058u,4.640u);
+ z116\0\5 = (14.066u,2.754u);
+ z116\0\6c1 = (14.678u,2.179u);
+ z116\0\6c2 = (16.063u,2.085u);
+ z116\0\6 = (15.618u,3.096u);
+ z116\0\7c1 = (15.350u,3.704u);
+ z116\0\7c2 = (14.398u,4.308u);
+ z116\1\0s = (24.572u,5.300u);
+ z116\1\0c1 = (25.822u,5.575u);
+ z116\1\0c2 = (26.421u,5.443u);
+ z116\1\0 = (27.458u,4.648u);
+ z116\1\1c1 = (31.722u,1.377u);
+ z116\1\1c2 = (24.206u,-2.263u);
+ z116\1\1 = (19.995u,3.613u);
+ z116\1\2c1 = (18.602u,0.064u);
+ z116\1\2c2 = (25.268u,-2.486u);
+ z116\1\2 = (28.641u,0.986u);
+ z116\1\3c1 = (29.305u,1.669u);
+ z116\1\3c2 = (29.716u,2.392u);
+ z116\1\3 = (29.573u,3.372u);
+ z116\1\4c1 = (28.937u,7.736u);
+ z116\1\4c2 = (22.009u,6.506u);
+ z116\1\4 = (24.268u,3.145u);
+ z116\1\5c1 = (24.528u,2.759u);
+ z116\1\5c2 = (25.004u,2.319u);
+ z116\1\5 = (25.500u,2.319u);
+ z116\1\6c1 = (26.949u,2.319u);
+ z116\1\6c2 = (24.816u,4.824u);
+ z116\2\0s = (3.613u,0.723u);
+ z116\2\0c1 = (7.693u,-2.560u);
+ z116\2\0c2 = (14.819u,-4.208u);
+ z116\2\0 = (19.031u,-0.241u);
+ z116\2\1c1 = (20.265u,-2.378u);
+ z116\2\1c2 = (25.370u,-3.046u);
+ z116\2\1 = (27.459u,-2.068u);
+ z116\2\2c1 = (28.662u,-1.505u);
+ z116\2\2c2 = (29.464u,-0.392u);
+ z116\2\2 = (30.112u,0.723u);
+ z116\2\3c1 = (29.236u,0.245u);
+ z116\2\3c2 = (28.741u,-0.517u);
+ z116\2\3 = (27.943u,-1.060u);
+ z116\2\4c1 = (26.221u,-2.301u);
+ z116\2\4c2 = (23.937u,-1.884u);
+ z116\2\4 = (22.163u,-1.060u);
+ z116\2\5c1 = (21.469u,-0.706u);
+ z116\2\5c2 = (20.120u,0.446u);
+ z116\2\5 = (19.534u,0.506u);
+ z116\2\6c1 = (18.904u,0.571u);
+ z116\2\6c2 = (17.648u,-0.796u);
+ z116\2\6 = (16.863u,-1.125u);
+ z116\2\7c1 = (15.741u,-1.597u);
+ z116\2\7c2 = (14.223u,-1.896u);
+ z116\2\7 = (13.009u,-1.924u);
+ z116\2\8c1 = (8.566u,-2.025u);
+ z116\2\8c2 = (7.067u,0.689u);
+ fill_or_unfill z116\0\0s
+ ..controls z116\0\0c1 and z116\0\0c2..z116\0\0
+ ..controls z116\0\1c1 and z116\0\1c2..z116\0\1
+ ..controls z116\0\2c1 and z116\0\2c2..z116\0\2
+ ..controls z116\0\3c1 and z116\0\3c2..z116\0\3
+ ..controls z116\0\4c1 and z116\0\4c2..z116\0\4
+ ..controls z116\0\5c1 and z116\0\5c2..z116\0\5
+ ..controls z116\0\6c1 and z116\0\6c2..z116\0\6
+ ..controls z116\0\7c1 and z116\0\7c2..cycle;
+ fill_or_unfill z116\1\0s
+ ..controls z116\1\0c1 and z116\1\0c2..z116\1\0
+ ..controls z116\1\1c1 and z116\1\1c2..z116\1\1
+ ..controls z116\1\2c1 and z116\1\2c2..z116\1\2
+ ..controls z116\1\3c1 and z116\1\3c2..z116\1\3
+ ..controls z116\1\4c1 and z116\1\4c2..z116\1\4
+ ..controls z116\1\5c1 and z116\1\5c2..z116\1\5
+ ..controls z116\1\6c1 and z116\1\6c2..cycle;
+ fill_or_unfill z116\2\0s
+ ..controls z116\2\0c1 and z116\2\0c2..z116\2\0
+ ..controls z116\2\1c1 and z116\2\1c2..z116\2\1
+ ..controls z116\2\2c1 and z116\2\2c2..z116\2\2
+ ..controls z116\2\3c1 and z116\2\3c2..z116\2\3
+ ..controls z116\2\4c1 and z116\2\4c2..z116\2\4
+ ..controls z116\2\5c1 and z116\2\5c2..z116\2\5
+ ..controls z116\2\6c1 and z116\2\6c2..z116\2\6
+ ..controls z116\2\7c1 and z116\2\7c2..z116\2\7
+ ..controls z116\2\8c1 and z116\2\8c2..cycle;
+ proof_labels (
+ 116\0\0,
+ 116\0\1,
+ 116\0\2,
+ 116\0\3,
+ 116\0\4,
+ 116\0\5,
+ 116\0\6,
+ 116\0\7,
+ 116\1\0,
+ 116\1\1,
+ 116\1\2,
+ 116\1\3,
+ 116\1\4,
+ 116\1\5,
+ 116\1\6,
+ 116\2\0,
+ 116\2\1,
+ 116\2\2,
+ 116\2\3,
+ 116\2\4,
+ 116\2\5,
+ 116\2\6,
+ 116\2\7,
+ 116\2\8,
+);
+endchar;
+
+beginchar (TIB_EMPTY, 10u#, 6.745u#, 3.255u#);
+ pickup pencircle scaled 0.5pt;
+ for d=0 step 10 until 350:
+ drawdot ((sind(d),cosd(d))*w/2+(w/2,1.745u));
+ endfor;
+endchar;
+
+
+beginchar (TIB_VISARGA, 5.541u#, 6.504u#, 6.500u#);
+ "Tibetan visarga";
+ pickup penrazor;
+ z1=(0.50u,0u);
+ z2=(2.75u,0u);
+ z3=(5.00u,0u);
+ penpos1(1.40u,85);
+ penpos2(1.20u,85);
+ penpos3(1.40u,85);
+ penstroke z1e..z2e..z3e;
+ currentpicture:= currentpicture
+ + (npic shifted ( 0.000u, 0.000u))
+ + (npic shifted ( 0.000u,-7.950u));
+endchar;
+
+beginchar (TIB_ANGKHYANGGYON, 10.600u#, 17.345u#, 6.263u#);
+ "ang.khyang.gyon";
+ z48\0\0s = (9.636u,17.345u);
+ z48\0\0c1 = (9.208u,15.108u);
+ z48\0\0c2 = (7.820u,14.981u);
+ z48\0\0 = (6.026u,14.031u);
+ z48\0\1c1 = (5.592u,13.801u);
+ z48\0\1c2 = (5.137u,13.581u);
+ z48\0\1 = (4.859u,13.156u);
+ z48\0\2c1 = (4.541u,12.669u);
+ z48\0\2c2 = (4.479u,11.887u);
+ z48\0\2 = (4.336u,11.322u);
+ z48\0\3c1 = (3.956u,11.529u);
+ z48\0\3c2 = (3.561u,11.784u);
+ z48\0\3 = (3.132u,11.876u);
+ z48\0\4c1 = (2.193u,12.076u);
+ z48\0\4c2 = (1.505u,11.483u);
+ z48\0\4 = (1.207u,10.598u);
+ z48\0\5c1 = (1.168u,10.157u);
+ z48\0\5c2 = (1.205u,9.610u);
+ z48\0\5 = (1.207u,9.154u);
+ z48\0\6 = (1.207u,6.986u);
+ z48\0\7 = (1.207u,4.818u);
+ z48\0\8 = (1.207u,-2.891u);
+ z48\0\9c1 = (1.196u,-4.559u);
+ z48\0\9c2 = (1.014u,-4.532u);
+ z48\0\9 = (0.482u,-6.022u);
+ z48\0\10c1 = (2.042u,-5.594u);
+ z48\0\10c2 = (2.159u,-5.129u);
+ z48\0\10 = (2.168u,-3.613u);
+ z48\0\11 = (2.168u,8.672u);
+ z48\0\12c1 = (2.170u,9.473u);
+ z48\0\12c2 = (2.042u,10.581u);
+ z48\0\12 = (2.926u,10.974u);
+ z48\0\13c1 = (3.146u,11.072u);
+ z48\0\13c2 = (3.379u,11.065u);
+ z48\0\13 = (3.611u,11.101u);
+ z48\0\14c1 = (3.933u,11.150u);
+ z48\0\14c2 = (4.196u,11.155u);
+ z48\0\14 = (4.487u,11.327u);
+ z48\0\15 = (6.033u,12.683u);
+ z48\0\16c1 = (7.245u,13.447u);
+ z48\0\16c2 = (9.481u,13.981u);
+ z48\0\16 = (9.961u,15.428u);
+ z48\0\17c1 = (10.155u,16.010u);
+ z48\0\17c2 = (10.116u,16.735u);
+ z48\0\17 = (10.118u,17.345u);
+ fill_or_unfill z48\0\0s
+ ..controls z48\0\0c1 and z48\0\0c2..z48\0\0
+ ..controls z48\0\1c1 and z48\0\1c2..z48\0\1
+ ..controls z48\0\2c1 and z48\0\2c2..z48\0\2
+ ..controls z48\0\3c1 and z48\0\3c2..z48\0\3
+ ..controls z48\0\4c1 and z48\0\4c2..z48\0\4
+ ..controls z48\0\5c1 and z48\0\5c2..z48\0\5
+ --z48\0\6
+ --z48\0\7
+ --z48\0\8
+ ..controls z48\0\9c1 and z48\0\9c2..z48\0\9
+ ..controls z48\0\10c1 and z48\0\10c2..z48\0\10
+ --z48\0\11
+ ..controls z48\0\12c1 and z48\0\12c2..z48\0\12
+ ..controls z48\0\13c1 and z48\0\13c2..z48\0\13
+ ..controls z48\0\14c1 and z48\0\14c2..z48\0\14
+ --z48\0\15
+ ..controls z48\0\16c1 and z48\0\16c2..z48\0\16
+ ..controls z48\0\17c1 and z48\0\17c2..z48\0\17
+ --cycle;
+ proof_labels (
+ 48\0\0,
+ 48\0\1,
+ 48\0\2,
+ 48\0\3,
+ 48\0\4,
+ 48\0\5,
+ 48\0\6,
+ 48\0\7,
+ 48\0\8,
+ 48\0\9,
+ 48\0\10,
+ 48\0\11,
+ 48\0\12,
+ 48\0\13,
+ 48\0\14,
+ 48\0\15,
+ 48\0\16,
+ 48\0\17,
+ 48\0\18,
+);
+endchar;
+
+beginchar (TIB_ANGKHYANGGYAS, 10.600u#, 17.345u#, 6.263u#);
+ "ang.khyang.gyas";
+ z49\0\0s = (0.482u,17.345u);
+ z49\0\0c1 = (0.484u,16.735u);
+ z49\0\0c2 = (0.445u,16.010u);
+ z49\0\0 = (0.638u,15.428u);
+ z49\0\1c1 = (1.119u,13.981u);
+ z49\0\1c2 = (3.355u,13.447u);
+ z49\0\1 = (4.567u,12.683u);
+ z49\0\2 = (6.112u,11.327u);
+ z49\0\3c1 = (6.404u,11.155u);
+ z49\0\3c2 = (6.666u,11.150u);
+ z49\0\3 = (6.989u,11.101u);
+ z49\0\4c1 = (7.220u,11.065u);
+ z49\0\4c2 = (7.453u,11.072u);
+ z49\0\4 = (7.674u,10.974u);
+ z49\0\5c1 = (8.558u,10.581u);
+ z49\0\5c2 = (8.430u,9.473u);
+ z49\0\5 = (8.432u,8.672u);
+ z49\0\6 = (8.432u,-3.853u);
+ z49\0\7c1 = (8.456u,-5.269u);
+ z49\0\7c2 = (8.732u,-5.642u);
+ z49\0\7 = (10.118u,-6.022u);
+ z49\0\8c1 = (9.538u,-4.400u);
+ z49\0\8c2 = (9.398u,-4.444u);
+ z49\0\8 = (9.415u,-2.650u);
+ z49\0\9c1 = (9.390u,0.320u);
+ z49\0\9c2 = (9.348u,3.296u);
+ z49\0\9 = (9.415u,6.263u);
+ z49\0\10 = (9.415u,9.395u);
+ z49\0\11c1 = (9.387u,10.595u);
+ z49\0\11c2 = (9.118u,12.229u);
+ z49\0\11 = (7.468u,11.876u);
+ z49\0\12c1 = (7.039u,11.784u);
+ z49\0\12c2 = (6.643u,11.529u);
+ z49\0\12 = (6.263u,11.322u);
+ z49\0\13c1 = (6.120u,11.887u);
+ z49\0\13c2 = (6.059u,12.669u);
+ z49\0\13 = (5.740u,13.156u);
+ z49\0\14c1 = (5.463u,13.581u);
+ z49\0\14c2 = (5.007u,13.801u);
+ z49\0\14 = (4.573u,14.031u);
+ z49\0\15c1 = (2.780u,14.981u);
+ z49\0\15c2 = (1.392u,15.108u);
+ z49\0\15 = (0.964u,17.345u);
+ fill_or_unfill z49\0\0s
+ ..controls z49\0\0c1 and z49\0\0c2..z49\0\0
+ ..controls z49\0\1c1 and z49\0\1c2..z49\0\1
+ --z49\0\2
+ ..controls z49\0\3c1 and z49\0\3c2..z49\0\3
+ ..controls z49\0\4c1 and z49\0\4c2..z49\0\4
+ ..controls z49\0\5c1 and z49\0\5c2..z49\0\5
+ --z49\0\6
+ ..controls z49\0\7c1 and z49\0\7c2..z49\0\7
+ ..controls z49\0\8c1 and z49\0\8c2..z49\0\8
+ ..controls z49\0\9c1 and z49\0\9c2..z49\0\9
+ --z49\0\10
+ ..controls z49\0\11c1 and z49\0\11c2..z49\0\11
+ ..controls z49\0\12c1 and z49\0\12c2..z49\0\12
+ ..controls z49\0\13c1 and z49\0\13c2..z49\0\13
+ ..controls z49\0\14c1 and z49\0\14c2..z49\0\14
+ ..controls z49\0\15c1 and z49\0\15c2..z49\0\15
+ --cycle;
+ proof_labels (
+ 49\0\0,
+ 49\0\1,
+ 49\0\2,
+ 49\0\3,
+ 49\0\4,
+ 49\0\5,
+ 49\0\6,
+ 49\0\7,
+ 49\0\8,
+ 49\0\9,
+ 49\0\10,
+ 49\0\11,
+ 49\0\12,
+ 49\0\13,
+ 49\0\14,
+ 49\0\15,
+ 49\0\16,
+);
+endchar;
+
+beginchar (TIB_INI.YIGMGOMDUNMA, 19.995u#, 6.263u#, 2.891u#);
+ "initial.yig.mgo.mdun.ma";
+ z52\0\0s = (13.972u,5.059u);
+ z52\0\0c1 = (14.437u,5.232u);
+ z52\0\0c2 = (14.911u,5.444u);
+ z52\0\0 = (15.417u,5.440u);
+ z52\0\1c1 = (16.485u,5.431u);
+ z52\0\1c2 = (18.368u,4.201u);
+ z52\0\1 = (18.595u,3.131u);
+ z52\0\2c1 = (18.685u,2.705u);
+ z52\0\2c2 = (18.520u,2.291u);
+ z52\0\2 = (18.306u,1.931u);
+ z52\0\3c1 = (17.641u,0.813u);
+ z52\0\3c2 = (16.451u,0.274u);
+ z52\0\3 = (15.177u,0.331u);
+ z52\0\4 = (13.972u,0.461u);
+ z52\0\5c1 = (12.343u,0.577u);
+ z52\0\5c2 = (10.681u,0.803u);
+ z52\0\5 = (9.154u,1.433u);
+ z52\0\6c1 = (7.647u,2.055u);
+ z52\0\6c2 = (6.253u,2.992u);
+ z52\0\6 = (4.818u,3.761u);
+ z52\0\7c1 = (4.110u,4.141u);
+ z52\0\7c2 = (3.453u,4.583u);
+ z52\0\7 = (2.650u,4.736u);
+ z52\0\8c1 = (1.874u,4.884u);
+ z52\0\8c2 = (1.227u,4.789u);
+ z52\0\8 = (0.482u,4.577u);
+ z52\0\9c1 = (1.283u,4.256u);
+ z52\0\9c2 = (2.095u,4.285u);
+ z52\0\9 = (2.891u,3.875u);
+ z52\0\10c1 = (4.206u,3.197u);
+ z52\0\10c2 = (5.286u,2.166u);
+ z52\0\10 = (6.504u,1.348u);
+ z52\0\11c1 = (7.281u,0.826u);
+ z52\0\11c2 = (8.267u,0.262u);
+ z52\0\11 = (9.154u,-0.038u);
+ z52\0\12 = (10.600u,-0.380u);
+ z52\0\13c1 = (11.363u,-0.573u);
+ z52\0\13c2 = (11.973u,-0.711u);
+ z52\0\13 = (12.768u,-0.722u);
+ z52\0\14c1 = (13.620u,-0.733u);
+ z52\0\14c2 = (14.593u,-0.804u);
+ z52\0\14 = (15.417u,-0.570u);
+ z52\0\15c1 = (17.697u,0.078u);
+ z52\0\15c2 = (20.510u,2.207u);
+ z52\0\15 = (18.943u,4.808u);
+ z52\0\16c1 = (17.412u,7.349u);
+ z52\0\16c2 = (13.299u,6.149u);
+ z52\0\16 = (13.398u,4.095u);
+ z52\0\17c1 = (13.437u,3.291u);
+ z52\0\17c2 = (14.270u,2.227u);
+ z52\0\17 = (15.141u,2.298u);
+ z52\0\18c1 = (15.326u,2.313u);
+ z52\0\18c2 = (15.517u,2.386u);
+ z52\0\18 = (15.618u,2.553u);
+ z52\0\19c1 = (15.984u,3.160u);
+ z52\0\19c2 = (14.885u,3.822u);
+ z52\0\19 = (14.552u,4.185u);
+ z52\0\20c1 = (14.298u,4.462u);
+ z52\0\20c2 = (14.155u,4.738u);
+ z52\1\0s = (3.613u,0.723u);
+ z52\1\0 = (5.300u,-0.420u);
+ z52\1\1 = (6.745u,-1.350u);
+ z52\1\2c1 = (7.829u,-1.924u);
+ z52\1\2c2 = (9.619u,-2.478u);
+ z52\1\2 = (10.840u,-2.629u);
+ z52\1\3 = (13.009u,-2.629u);
+ z52\1\4c1 = (14.100u,-2.634u);
+ z52\1\4c2 = (14.874u,-2.346u);
+ z52\1\4 = (15.899u,-2.032u);
+ z52\1\5c1 = (17.474u,-1.549u);
+ z52\1\5c2 = (18.268u,-1.357u);
+ z52\1\5 = (19.031u,0.241u);
+ z52\1\6c1 = (18.397u,-0.177u);
+ z52\1\6c2 = (17.791u,-0.655u);
+ z52\1\6 = (17.104u,-0.984u);
+ z52\1\7c1 = (14.212u,-2.371u);
+ z52\1\7c2 = (10.783u,-2.176u);
+ z52\1\7 = (7.950u,-0.769u);
+ z52\1\8c1 = (6.044u,0.177u);
+ z52\1\8c2 = (5.898u,0.700u);
+ fill_or_unfill z52\0\0s
+ ..controls z52\0\0c1 and z52\0\0c2..z52\0\0
+ ..controls z52\0\1c1 and z52\0\1c2..z52\0\1
+ ..controls z52\0\2c1 and z52\0\2c2..z52\0\2
+ ..controls z52\0\3c1 and z52\0\3c2..z52\0\3
+ --z52\0\4
+ ..controls z52\0\5c1 and z52\0\5c2..z52\0\5
+ ..controls z52\0\6c1 and z52\0\6c2..z52\0\6
+ ..controls z52\0\7c1 and z52\0\7c2..z52\0\7
+ ..controls z52\0\8c1 and z52\0\8c2..z52\0\8
+ ..controls z52\0\9c1 and z52\0\9c2..z52\0\9
+ ..controls z52\0\10c1 and z52\0\10c2..z52\0\10
+ ..controls z52\0\11c1 and z52\0\11c2..z52\0\11
+ --z52\0\12
+ ..controls z52\0\13c1 and z52\0\13c2..z52\0\13
+ ..controls z52\0\14c1 and z52\0\14c2..z52\0\14
+ ..controls z52\0\15c1 and z52\0\15c2..z52\0\15
+ ..controls z52\0\16c1 and z52\0\16c2..z52\0\16
+ ..controls z52\0\17c1 and z52\0\17c2..z52\0\17
+ ..controls z52\0\18c1 and z52\0\18c2..z52\0\18
+ ..controls z52\0\19c1 and z52\0\19c2..z52\0\19
+ ..controls z52\0\20c1 and z52\0\20c2..cycle;
+ fill_or_unfill z52\1\0s
+ --z52\1\0
+ --z52\1\1
+ ..controls z52\1\2c1 and z52\1\2c2..z52\1\2
+ --z52\1\3
+ ..controls z52\1\4c1 and z52\1\4c2..z52\1\4
+ ..controls z52\1\5c1 and z52\1\5c2..z52\1\5
+ ..controls z52\1\6c1 and z52\1\6c2..z52\1\6
+ ..controls z52\1\7c1 and z52\1\7c2..z52\1\7
+ ..controls z52\1\8c1 and z52\1\8c2..cycle;
+ proof_labels (
+ 52\0\0,
+ 52\0\1,
+ 52\0\2,
+ 52\0\3,
+ 52\0\4,
+ 52\0\5,
+ 52\0\6,
+ 52\0\7,
+ 52\0\8,
+ 52\0\9,
+ 52\0\10,
+ 52\0\11,
+ 52\0\12,
+ 52\0\13,
+ 52\0\14,
+ 52\0\15,
+ 52\0\16,
+ 52\0\17,
+ 52\0\18,
+ 52\0\19,
+ 52\0\20,
+ 52\1\0,
+ 52\1\1,
+ 52\1\2,
+ 52\1\3,
+ 52\1\4,
+ 52\1\5,
+ 52\1\6,
+ 52\1\7,
+ 52\1\8,
+);
+endchar;
+
+beginchar (TIB_FINAL.YIGMGOMDUNMA, 11.804u#, 6.263u#, 2.891u#);
+ "closing.yig.mgo.mdun.ma";
+ z53\0\0s = (6.022u,5.347u);
+ z53\0\0c1 = (6.524u,5.410u);
+ z53\0\0c2 = (6.951u,5.512u);
+ z53\0\0 = (7.468u,5.347u);
+ z53\0\1c1 = (8.798u,5.093u);
+ z53\0\1c2 = (10.815u,3.439u);
+ z53\0\1 = (9.931u,1.931u);
+ z53\0\2c1 = (8.590u,-0.355u);
+ z53\0\2c2 = (5.193u,0.455u);
+ z53\0\2 = (3.372u,1.641u);
+ z53\0\3c1 = (2.482u,2.221u);
+ z53\0\3c2 = (1.893u,3.093u);
+ z53\0\3 = (0.964u,3.613u);
+ z53\0\4c1 = (1.014u,2.711u);
+ z53\0\4c2 = (1.128u,2.003u);
+ z53\0\4 = (1.678u,1.249u);
+ z53\0\5c1 = (2.792u,-0.277u);
+ z53\0\5c2 = (5.921u,-1.106u);
+ z53\0\5 = (7.709u,-0.567u);
+ z53\0\6c1 = (8.450u,-0.343u);
+ z53\0\6c2 = (9.304u,0.242u);
+ z53\0\6 = (9.866u,0.767u);
+ z53\0\7c1 = (10.432u,1.295u);
+ z53\0\7c2 = (10.905u,1.862u);
+ z53\0\7 = (11.023u,2.650u);
+ z53\0\8c1 = (11.171u,3.628u);
+ z53\0\8c2 = (10.673u,4.563u);
+ z53\0\8 = (10.005u,5.246u);
+ z53\0\9c1 = (9.470u,5.792u);
+ z53\0\9c2 = (8.931u,6.011u);
+ z53\0\9 = (8.190u,6.151u);
+ z53\0\10c1 = (4.701u,6.810u);
+ z53\0\10c2 = (4.783u,2.823u);
+ z53\0\10 = (6.735u,2.388u);
+ z53\0\11c1 = (6.925u,2.301u);
+ z53\0\11c2 = (7.146u,2.305u);
+ z53\0\11 = (7.310u,2.388u);
+ z53\0\12c1 = (7.943u,2.904u);
+ z53\0\12c2 = (6.799u,3.976u);
+ z53\0\12 = (6.531u,4.377u);
+ z53\1\0s = (0.482u,0.723u);
+ z53\1\0c1 = (0.498u,0.262u);
+ z53\1\0c2 = (0.473u,-0.223u);
+ z53\1\0 = (0.728u,-0.632u);
+ z53\1\1c1 = (1.135u,-1.283u);
+ z53\1\1c2 = (2.418u,-1.836u);
+ z53\1\1 = (3.132u,-2.082u);
+ z53\1\2c1 = (6.237u,-3.152u);
+ z53\1\2c2 = (10.104u,-2.880u);
+ z53\1\2 = (11.322u,0.723u);
+ z53\1\3 = (9.394u,-1.036u);
+ z53\1\4c1 = (7.449u,-2.339u);
+ z53\1\4c2 = (5.049u,-1.888u);
+ z53\1\4 = (3.132u,-0.789u);
+ z53\1\5c1 = (2.189u,-0.248u);
+ z53\1\5c2 = (1.557u,0.417u);
+ fill_or_unfill z53\0\0s
+ ..controls z53\0\0c1 and z53\0\0c2..z53\0\0
+ ..controls z53\0\1c1 and z53\0\1c2..z53\0\1
+ ..controls z53\0\2c1 and z53\0\2c2..z53\0\2
+ ..controls z53\0\3c1 and z53\0\3c2..z53\0\3
+ ..controls z53\0\4c1 and z53\0\4c2..z53\0\4
+ ..controls z53\0\5c1 and z53\0\5c2..z53\0\5
+ ..controls z53\0\6c1 and z53\0\6c2..z53\0\6
+ ..controls z53\0\7c1 and z53\0\7c2..z53\0\7
+ ..controls z53\0\8c1 and z53\0\8c2..z53\0\8
+ ..controls z53\0\9c1 and z53\0\9c2..z53\0\9
+ ..controls z53\0\10c1 and z53\0\10c2..z53\0\10
+ ..controls z53\0\11c1 and z53\0\11c2..z53\0\11
+ ..controls z53\0\12c1 and z53\0\12c2..z53\0\12
+ --cycle;
+ fill_or_unfill z53\1\0s
+ ..controls z53\1\0c1 and z53\1\0c2..z53\1\0
+ ..controls z53\1\1c1 and z53\1\1c2..z53\1\1
+ ..controls z53\1\2c1 and z53\1\2c2..z53\1\2
+ --z53\1\3
+ ..controls z53\1\4c1 and z53\1\4c2..z53\1\4
+ ..controls z53\1\5c1 and z53\1\5c2..cycle;
+ proof_labels (
+ 53\0\0,
+ 53\0\1,
+ 53\0\2,
+ 53\0\3,
+ 53\0\4,
+ 53\0\5,
+ 53\0\6,
+ 53\0\7,
+ 53\0\8,
+ 53\0\9,
+ 53\0\10,
+ 53\0\11,
+ 53\0\12,
+ 53\0\13,
+ 53\1\0,
+ 53\1\1,
+ 53\1\2,
+ 53\1\3,
+ 53\1\4,
+ 53\1\5,
+);
+endchar;
+
+beginchar (TIB_TOPINI.YIGMGOMDUNMA, 19.995u#, 6.263u#, 0.964u#);
+ "top.initial.yig.mgo.mdun.ma";
+ z54\0\0s = (13.972u,5.059u);
+ z54\0\0c1 = (14.437u,5.232u);
+ z54\0\0c2 = (14.911u,5.444u);
+ z54\0\0 = (15.417u,5.440u);
+ z54\0\1c1 = (16.485u,5.431u);
+ z54\0\1c2 = (18.368u,4.201u);
+ z54\0\1 = (18.595u,3.131u);
+ z54\0\2c1 = (18.685u,2.705u);
+ z54\0\2c2 = (18.520u,2.291u);
+ z54\0\2 = (18.306u,1.931u);
+ z54\0\3c1 = (17.641u,0.813u);
+ z54\0\3c2 = (16.451u,0.274u);
+ z54\0\3 = (15.177u,0.331u);
+ z54\0\4 = (13.972u,0.461u);
+ z54\0\5c1 = (12.343u,0.577u);
+ z54\0\5c2 = (10.681u,0.803u);
+ z54\0\5 = (9.154u,1.433u);
+ z54\0\6c1 = (7.647u,2.055u);
+ z54\0\6c2 = (6.253u,2.992u);
+ z54\0\6 = (4.818u,3.761u);
+ z54\0\7c1 = (4.110u,4.141u);
+ z54\0\7c2 = (3.453u,4.583u);
+ z54\0\7 = (2.650u,4.736u);
+ z54\0\8c1 = (1.874u,4.884u);
+ z54\0\8c2 = (1.227u,4.789u);
+ z54\0\8 = (0.482u,4.577u);
+ z54\0\9c1 = (1.283u,4.256u);
+ z54\0\9c2 = (2.095u,4.285u);
+ z54\0\9 = (2.891u,3.875u);
+ z54\0\10c1 = (4.206u,3.197u);
+ z54\0\10c2 = (5.286u,2.166u);
+ z54\0\10 = (6.504u,1.348u);
+ z54\0\11c1 = (7.281u,0.826u);
+ z54\0\11c2 = (8.267u,0.262u);
+ z54\0\11 = (9.154u,-0.038u);
+ z54\0\12 = (10.600u,-0.380u);
+ z54\0\13c1 = (11.363u,-0.573u);
+ z54\0\13c2 = (11.973u,-0.711u);
+ z54\0\13 = (12.768u,-0.722u);
+ z54\0\14c1 = (13.620u,-0.733u);
+ z54\0\14c2 = (14.593u,-0.804u);
+ z54\0\14 = (15.417u,-0.570u);
+ z54\0\15c1 = (17.697u,0.078u);
+ z54\0\15c2 = (20.510u,2.207u);
+ z54\0\15 = (18.943u,4.808u);
+ z54\0\16c1 = (17.412u,7.349u);
+ z54\0\16c2 = (13.299u,6.149u);
+ z54\0\16 = (13.398u,4.095u);
+ z54\0\17c1 = (13.437u,3.291u);
+ z54\0\17c2 = (14.270u,2.227u);
+ z54\0\17 = (15.141u,2.298u);
+ z54\0\18c1 = (15.326u,2.313u);
+ z54\0\18c2 = (15.517u,2.386u);
+ z54\0\18 = (15.618u,2.553u);
+ z54\0\19c1 = (15.984u,3.160u);
+ z54\0\19c2 = (14.885u,3.822u);
+ z54\0\19 = (14.552u,4.185u);
+ z54\0\20c1 = (14.298u,4.462u);
+ z54\0\20c2 = (14.155u,4.738u);
+ fill_or_unfill z54\0\0s
+ ..controls z54\0\0c1 and z54\0\0c2..z54\0\0
+ ..controls z54\0\1c1 and z54\0\1c2..z54\0\1
+ ..controls z54\0\2c1 and z54\0\2c2..z54\0\2
+ ..controls z54\0\3c1 and z54\0\3c2..z54\0\3
+ --z54\0\4
+ ..controls z54\0\5c1 and z54\0\5c2..z54\0\5
+ ..controls z54\0\6c1 and z54\0\6c2..z54\0\6
+ ..controls z54\0\7c1 and z54\0\7c2..z54\0\7
+ ..controls z54\0\8c1 and z54\0\8c2..z54\0\8
+ ..controls z54\0\9c1 and z54\0\9c2..z54\0\9
+ ..controls z54\0\10c1 and z54\0\10c2..z54\0\10
+ ..controls z54\0\11c1 and z54\0\11c2..z54\0\11
+ --z54\0\12
+ ..controls z54\0\13c1 and z54\0\13c2..z54\0\13
+ ..controls z54\0\14c1 and z54\0\14c2..z54\0\14
+ ..controls z54\0\15c1 and z54\0\15c2..z54\0\15
+ ..controls z54\0\16c1 and z54\0\16c2..z54\0\16
+ ..controls z54\0\17c1 and z54\0\17c2..z54\0\17
+ ..controls z54\0\18c1 and z54\0\18c2..z54\0\18
+ ..controls z54\0\19c1 and z54\0\19c2..z54\0\19
+ ..controls z54\0\20c1 and z54\0\20c2..cycle;
+ proof_labels (
+ 54\0\0,
+ 54\0\1,
+ 54\0\2,
+ 54\0\3,
+ 54\0\4,
+ 54\0\5,
+ 54\0\6,
+ 54\0\7,
+ 54\0\8,
+ 54\0\9,
+ 54\0\10,
+ 54\0\11,
+ 54\0\12,
+ 54\0\13,
+ 54\0\14,
+ 54\0\15,
+ 54\0\16,
+ 54\0\17,
+ 54\0\18,
+ 54\0\19,
+ 54\0\20,
+);
+endchar;
+
+beginchar (TIB_HALF, 10.600u#, 5.541u#, 0.000u#);
+ "half";
+ z42\0\0s = (0.482u,1.445u);
+ z42\0\0c1 = (0.999u,1.593u);
+ z42\0\0c2 = (1.447u,1.756u);
+ z42\0\0 = (1.927u,2.004u);
+ z42\0\1c1 = (3.239u,2.683u);
+ z42\0\1c2 = (6.838u,5.009u);
+ z42\0\1 = (8.189u,4.904u);
+ z42\0\2c1 = (8.526u,4.878u);
+ z42\0\2c2 = (8.825u,4.753u);
+ z42\0\2 = (9.054u,4.498u);
+ z42\0\3c1 = (9.708u,3.770u);
+ z42\0\3c2 = (9.034u,2.861u);
+ z42\0\3 = (8.672u,2.168u);
+ z42\0\4c1 = (9.003u,2.334u);
+ z42\0\4c2 = (9.269u,2.437u);
+ z42\0\4 = (9.532u,2.720u);
+ z42\0\5c1 = (10.570u,3.841u);
+ z42\0\5c2 = (9.875u,5.295u);
+ z42\0\5 = (8.431u,5.432u);
+ z42\0\6c1 = (8.107u,5.517u);
+ z42\0\6c2 = (7.781u,5.471u);
+ z42\0\6 = (7.468u,5.432u);
+ z42\0\7c1 = (6.381u,5.094u);
+ z42\0\7c2 = (2.142u,2.886u);
+ z42\0\7 = (1.232u,2.192u);
+ z42\0\8c1 = (0.929u,1.962u);
+ z42\0\8c2 = (0.728u,1.727u);
+ fill_or_unfill z42\0\0s
+ ..controls z42\0\0c1 and z42\0\0c2..z42\0\0
+ ..controls z42\0\1c1 and z42\0\1c2..z42\0\1
+ ..controls z42\0\2c1 and z42\0\2c2..z42\0\2
+ ..controls z42\0\3c1 and z42\0\3c2..z42\0\3
+ ..controls z42\0\4c1 and z42\0\4c2..z42\0\4
+ ..controls z42\0\5c1 and z42\0\5c2..z42\0\5
+ ..controls z42\0\6c1 and z42\0\6c2..z42\0\6
+ ..controls z42\0\7c1 and z42\0\7c2..z42\0\7
+ ..controls z42\0\8c1 and z42\0\8c2..cycle;
+ proof_labels (
+ 42\0\0,
+ 42\0\1,
+ 42\0\2,
+ 42\0\3,
+ 42\0\4,
+ 42\0\5,
+ 42\0\6,
+ 42\0\7,
+ 42\0\8,
+);
+endchar;
+
+beginchar (TIB_NYIZLANAADA, 6.986u#, 8.913u#, 0.000u#);
+ "nyi.zla.naa.da";
+ z80\0\0s = (3.372u,8.913u);
+ z80\0\0c1 = (3.147u,8.309u);
+ z80\0\0c2 = (2.837u,7.644u);
+ z80\0\0 = (3.045u,6.989u);
+ z80\0\1c1 = (3.312u,6.150u);
+ z80\0\1c2 = (4.267u,5.702u);
+ z80\0\1 = (4.431u,5.038u);
+ z80\0\2c1 = (4.514u,4.705u);
+ z80\0\2c2 = (4.418u,4.426u);
+ z80\0\2 = (4.216u,4.159u);
+ z80\0\3c1 = (3.540u,3.263u);
+ z80\0\3c2 = (2.692u,4.015u);
+ z80\0\3 = (1.927u,4.336u);
+ z80\0\4c1 = (2.029u,4.010u);
+ z80\0\4c2 = (2.071u,3.746u);
+ z80\0\4 = (2.311u,3.476u);
+ z80\0\5c1 = (3.248u,2.425u);
+ z80\0\5c2 = (4.904u,3.030u);
+ z80\0\5 = (5.186u,4.337u);
+ z80\0\6c1 = (5.488u,5.743u);
+ z80\0\6c2 = (4.173u,6.162u);
+ z80\0\6 = (3.757u,7.236u);
+ z80\1\0s = (0.482u,3.613u);
+ z80\1\0c1 = (0.537u,3.271u);
+ z80\1\0c2 = (0.557u,2.977u);
+ z80\1\0 = (0.728u,2.660u);
+ z80\1\1c1 = (1.730u,0.797u);
+ z80\1\1c2 = (4.928u,0.741u);
+ z80\1\1 = (6.119u,2.434u);
+ z80\1\2c1 = (6.391u,2.820u);
+ z80\1\2c2 = (6.432u,3.166u);
+ z80\1\2 = (6.504u,3.613u);
+ z80\1\3 = (4.814u,2.509u);
+ z80\1\4c1 = (2.840u,1.464u);
+ z80\1\4c2 = (2.053u,2.782u);
+ fill_or_unfill z80\0\0s
+ ..controls z80\0\0c1 and z80\0\0c2..z80\0\0
+ ..controls z80\0\1c1 and z80\0\1c2..z80\0\1
+ ..controls z80\0\2c1 and z80\0\2c2..z80\0\2
+ ..controls z80\0\3c1 and z80\0\3c2..z80\0\3
+ ..controls z80\0\4c1 and z80\0\4c2..z80\0\4
+ ..controls z80\0\5c1 and z80\0\5c2..z80\0\5
+ ..controls z80\0\6c1 and z80\0\6c2..z80\0\6
+ --cycle;
+ fill_or_unfill z80\1\0s
+ ..controls z80\1\0c1 and z80\1\0c2..z80\1\0
+ ..controls z80\1\1c1 and z80\1\1c2..z80\1\1
+ ..controls z80\1\2c1 and z80\1\2c2..z80\1\2
+ --z80\1\3
+ ..controls z80\1\4c1 and z80\1\4c2..cycle;
+ proof_labels (
+ 80\0\0,
+ 80\0\1,
+ 80\0\2,
+ 80\0\3,
+ 80\0\4,
+ 80\0\5,
+ 80\0\6,
+ 80\0\7,
+ 80\1\0,
+ 80\1\1,
+ 80\1\2,
+ 80\1\3,
+ 80\1\4,
+);
+endchar;
+
+beginchar (TIB_LCIRTAGS, 6.022u#, 8.431u#, 0.000u#);
+ "lci.rtags";
+ z81\0\0s = (3.132u,8.431u);
+ z81\0\0c1 = (3.102u,7.935u);
+ z81\0\0c2 = (3.096u,7.460u);
+ z81\0\0 = (2.849u,7.011u);
+ z81\0\1c1 = (2.237u,5.900u);
+ z81\0\1c2 = (0.426u,5.432u);
+ z81\0\1 = (0.614u,3.854u);
+ z81\0\2c1 = (0.661u,3.450u);
+ z81\0\2c2 = (0.911u,2.994u);
+ z81\0\2 = (1.157u,2.676u);
+ z81\0\3c1 = (2.231u,1.280u);
+ z81\0\3c2 = (4.162u,1.524u);
+ z81\0\3 = (5.122u,2.916u);
+ z81\0\4c1 = (5.384u,3.295u);
+ z81\0\4c2 = (5.448u,3.660u);
+ z81\0\4 = (5.541u,4.095u);
+ z81\0\5 = (3.845u,3.204u);
+ z81\0\6c1 = (3.547u,3.069u);
+ z81\0\6c2 = (3.223u,2.975u);
+ z81\0\6 = (2.892u,2.990u);
+ z81\0\7c1 = (2.061u,3.027u);
+ z81\0\7c2 = (1.252u,3.695u);
+ z81\0\7 = (1.816u,4.546u);
+ z81\0\8c1 = (2.366u,5.376u);
+ z81\0\8c2 = (3.584u,5.374u);
+ z81\0\8 = (3.901u,6.295u);
+ z81\0\9c1 = (4.170u,6.859u);
+ z81\0\9c2 = (3.934u,7.829u);
+ z81\0\9 = (3.901u,8.431u);
+ fill_or_unfill z81\0\0s
+ ..controls z81\0\0c1 and z81\0\0c2..z81\0\0
+ ..controls z81\0\1c1 and z81\0\1c2..z81\0\1
+ ..controls z81\0\2c1 and z81\0\2c2..z81\0\2
+ ..controls z81\0\3c1 and z81\0\3c2..z81\0\3
+ ..controls z81\0\4c1 and z81\0\4c2..z81\0\4
+ --z81\0\5
+ ..controls z81\0\6c1 and z81\0\6c2..z81\0\6
+ ..controls z81\0\7c1 and z81\0\7c2..z81\0\7
+ ..controls z81\0\8c1 and z81\0\8c2..z81\0\8
+ ..controls z81\0\9c1 and z81\0\9c2..z81\0\9
+ --cycle;
+ proof_labels (
+ 81\0\0,
+ 81\0\1,
+ 81\0\2,
+ 81\0\3,
+ 81\0\4,
+ 81\0\5,
+ 81\0\6,
+ 81\0\7,
+ 81\0\8,
+ 81\0\9,
+ 81\0\10,
+);
+endchar;
+
+beginchar (TIB_HALANTA, 9.636u#, -0.241u#, 4.577u#);
+ "halanta";
+ z89\0\0s = (0.482u,-0.241u);
+ z89\0\0c1 = (0.588u,-0.546u);
+ z89\0\0c2 = (0.625u,-0.739u);
+ z89\0\0 = (0.860u,-0.988u);
+ z89\0\1c1 = (1.713u,-1.889u);
+ z89\0\1c2 = (4.771u,-2.980u);
+ z89\0\1 = (6.022u,-3.481u);
+ z89\0\2 = (7.709u,-4.147u);
+ z89\0\3c1 = (8.194u,-4.284u);
+ z89\0\3c2 = (8.655u,-4.312u);
+ z89\0\3 = (9.154u,-4.336u);
+ z89\0\4 = (8.618u,-3.835u);
+ z89\0\5 = (6.504u,-2.681u);
+ z89\0\6c1 = (5.130u,-1.897u);
+ z89\0\6c2 = (3.706u,-0.830u);
+ z89\0\6 = (2.168u,-0.394u);
+ z89\0\7c1 = (1.613u,-0.236u);
+ z89\0\7c2 = (1.052u,-0.246u);
+ fill_or_unfill z89\0\0s
+ ..controls z89\0\0c1 and z89\0\0c2..z89\0\0
+ ..controls z89\0\1c1 and z89\0\1c2..z89\0\1
+ --z89\0\2
+ ..controls z89\0\3c1 and z89\0\3c2..z89\0\3
+ --z89\0\4
+ --z89\0\5
+ ..controls z89\0\6c1 and z89\0\6c2..z89\0\6
+ ..controls z89\0\7c1 and z89\0\7c2..cycle;
+ proof_labels (
+ 89\0\0,
+ 89\0\1,
+ 89\0\2,
+ 89\0\3,
+ 89\0\4,
+ 89\0\5,
+ 89\0\6,
+ 89\0\7,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The file ctibpunc.mf ends here.
+%
diff --git a/Master/texmf-dist/fonts/source/public/ctib/ctibsplt.mf b/Master/texmf-dist/fonts/source/public/ctib/ctibsplt.mf
new file mode 100644
index 00000000000..83af81a9641
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ctib/ctibsplt.mf
@@ -0,0 +1,1856 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% This is the file "ctibsplt.mf" which has, except for the symbolic
+% encoding vectors and some deleted redundancies, identical glyphs
+% with Sam Sirlin's "gtibsp.mf" of his Tibetan package, version 6.0.
+%
+% I included this material in ctib4tex on June 9th, 2001, in
+% Beijing, and on December 17th, 2001, in Ulaanbaatar.
+%
+% Oliver Corff (corff@zedat.fu-berlin.de)
+%
+% Original header:
+%
+% This file defines the Metafont font gtibsb.mf.
+% {limn output Sep 25 23:30:50 2000}
+% Generated Mon Sep 25 23:30:52 2000.
+% This font is in the public domain.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+beginchar (TIB_SUBKA, 9.395u#, 6.745u#, 0.964u#);
+ "sub.ka";
+ z0\0\0s = (0.482u,5.300u);
+ z0\0\0 = (1.445u,5.059u);
+ z0\0\1c1 = (1.091u,4.250u);
+ z0\0\1c2 = (0.858u,3.524u);
+ z0\0\1 = (0.723u,2.650u);
+ z0\0\2c1 = (0.930u,2.778u);
+ z0\0\2c2 = (1.079u,2.834u);
+ z0\0\2 = (1.257u,3.021u);
+ z0\0\3c1 = (1.782u,3.573u);
+ z0\0\3c2 = (1.976u,4.421u);
+ z0\0\3 = (2.693u,4.809u);
+ z0\0\4c1 = (4.430u,5.750u);
+ z0\0\4c2 = (4.335u,2.054u);
+ z0\0\4 = (4.336u,1.204u);
+ z0\0\5c1 = (5.734u,2.275u);
+ z0\0\5c2 = (4.840u,4.094u);
+ z0\0\5 = (5.857u,4.911u);
+ z0\0\6c1 = (6.110u,5.114u);
+ z0\0\6c2 = (6.411u,5.204u);
+ z0\0\6 = (6.732u,5.161u);
+ z0\0\7c1 = (8.023u,4.991u);
+ z0\0\7c2 = (7.894u,2.646u);
+ z0\0\7 = (7.990u,1.686u);
+ z0\0\8 = (8.190u,-0.723u);
+ z0\0\9 = (8.677u,-0.723u);
+ z0\0\10 = (8.677u,3.854u);
+ z0\0\11 = (8.857u,5.768u);
+ z0\0\12c1 = (8.837u,5.982u);
+ z0\0\12c2 = (8.802u,6.184u);
+ z0\0\12 = (8.666u,6.360u);
+ z0\0\13c1 = (8.351u,6.768u);
+ z0\0\13c2 = (7.689u,6.736u);
+ z0\0\13 = (7.227u,6.744u);
+ z0\0\14c1 = (6.306u,6.761u);
+ z0\0\14c2 = (2.056u,6.842u);
+ z0\0\14 = (1.471u,6.601u);
+ z0\0\15c1 = (0.846u,6.343u);
+ z0\0\15c2 = (0.689u,5.886u);
+ fill_or_unfill z0\0\0s
+ --z0\0\0
+ ..controls z0\0\1c1 and z0\0\1c2..z0\0\1
+ ..controls z0\0\2c1 and z0\0\2c2..z0\0\2
+ ..controls z0\0\3c1 and z0\0\3c2..z0\0\3
+ ..controls z0\0\4c1 and z0\0\4c2..z0\0\4
+ ..controls z0\0\5c1 and z0\0\5c2..z0\0\5
+ ..controls z0\0\6c1 and z0\0\6c2..z0\0\6
+ ..controls z0\0\7c1 and z0\0\7c2..z0\0\7
+ --z0\0\8
+ --z0\0\9
+ --z0\0\10
+ --z0\0\11
+ ..controls z0\0\12c1 and z0\0\12c2..z0\0\12
+ ..controls z0\0\13c1 and z0\0\13c2..z0\0\13
+ ..controls z0\0\14c1 and z0\0\14c2..z0\0\14
+ ..controls z0\0\15c1 and z0\0\15c2..cycle;
+ proof_labels (
+ 0\0\0,
+ 0\0\1,
+ 0\0\2,
+ 0\0\3,
+ 0\0\4,
+ 0\0\5,
+ 0\0\6,
+ 0\0\7,
+ 0\0\8,
+ 0\0\9,
+ 0\0\10,
+ 0\0\11,
+ 0\0\12,
+ 0\0\13,
+ 0\0\14,
+ 0\0\15,
+);
+endchar;
+
+beginchar (TIB_SUBGA, 8.913u#, 6.745u#, 0.723u#);
+ "sub.ga";
+ z2\0\0s = (0.482u,5.300u);
+ z2\0\0 = (1.445u,5.300u);
+ z2\0\1c1 = (0.864u,4.060u);
+ z2\0\1c2 = (0.597u,3.301u);
+ z2\0\1 = (0.482u,1.927u);
+ z2\0\2 = (1.927u,2.294u);
+ z2\0\3c1 = (3.039u,2.397u);
+ z2\0\3c2 = (3.950u,1.536u);
+ z2\0\3 = (4.818u,0.964u);
+ z2\0\4c1 = (4.818u,1.977u);
+ z2\0\4c2 = (4.525u,5.775u);
+ z2\0\4 = (6.479u,5.142u);
+ z2\0\5c1 = (6.796u,5.039u);
+ z2\0\5c2 = (7.018u,4.823u);
+ z2\0\5 = (7.185u,4.542u);
+ z2\0\6c1 = (7.690u,3.692u);
+ z2\0\6c2 = (7.709u,0.596u);
+ z2\0\6 = (7.709u,-0.482u);
+ z2\0\7 = (8.201u,-0.482u);
+ z2\0\8 = (8.201u,3.132u);
+ z2\0\9 = (8.421u,4.818u);
+ z2\0\10 = (8.421u,6.733u);
+ z2\0\11 = (3.854u,6.733u);
+ z2\0\12c1 = (3.094u,6.745u);
+ z2\0\12c2 = (2.204u,6.836u);
+ z2\0\12 = (1.459u,6.733u);
+ z2\0\13c1 = (1.248u,6.674u);
+ z2\0\13c2 = (1.041u,6.637u);
+ z2\0\13 = (0.867u,6.499u);
+ z2\0\14c1 = (0.495u,6.205u);
+ z2\0\14c2 = (0.517u,5.723u);
+ z2\1\0s = (4.095u,2.409u);
+ z2\1\0c1 = (3.124u,2.818u);
+ z2\1\0c2 = (2.220u,3.100u);
+ z2\1\0 = (1.204u,3.372u);
+ z2\1\1c1 = (1.276u,3.708u);
+ z2\1\1c2 = (1.315u,4.015u);
+ z2\1\1 = (1.487u,4.322u);
+ z2\1\2c1 = (2.489u,6.120u);
+ z2\1\2c2 = (4.873u,5.376u);
+ fill_or_unfill z2\0\0s
+ --z2\0\0
+ ..controls z2\0\1c1 and z2\0\1c2..z2\0\1
+ --z2\0\2
+ ..controls z2\0\3c1 and z2\0\3c2..z2\0\3
+ ..controls z2\0\4c1 and z2\0\4c2..z2\0\4
+ ..controls z2\0\5c1 and z2\0\5c2..z2\0\5
+ ..controls z2\0\6c1 and z2\0\6c2..z2\0\6
+ --z2\0\7
+ --z2\0\8
+ --z2\0\9
+ --z2\0\10
+ --z2\0\11
+ ..controls z2\0\12c1 and z2\0\12c2..z2\0\12
+ ..controls z2\0\13c1 and z2\0\13c2..z2\0\13
+ ..controls z2\0\14c1 and z2\0\14c2..cycle;
+ fill_or_unfill z2\1\0s
+ ..controls z2\1\0c1 and z2\1\0c2..z2\1\0
+ ..controls z2\1\1c1 and z2\1\1c2..z2\1\1
+ ..controls z2\1\2c1 and z2\1\2c2..cycle;
+ proof_labels (
+ 2\0\0,
+ 2\0\1,
+ 2\0\2,
+ 2\0\3,
+ 2\0\4,
+ 2\0\5,
+ 2\0\6,
+ 2\0\7,
+ 2\0\8,
+ 2\0\9,
+ 2\0\10,
+ 2\0\11,
+ 2\0\12,
+ 2\0\13,
+ 2\0\14,
+ 2\1\0,
+ 2\1\1,
+ 2\1\2,
+);
+endchar;
+
+beginchar (TIB_SUBNGA, 7.950u#, 6.745u#, 0.482u#);
+ "sub.nga";
+ z3\0\0s = (0.482u,0.053u);
+ z3\0\0 = (1.927u,0.053u);
+ z3\0\1c1 = (2.730u,0.231u);
+ z3\0\1c2 = (3.517u,0.464u);
+ z3\0\1 = (4.336u,0.463u);
+ z3\0\2c1 = (5.427u,0.462u);
+ z3\0\2c2 = (6.430u,0.032u);
+ z3\0\2 = (7.468u,-0.241u);
+ z3\0\3c1 = (7.393u,0.007u);
+ z3\0\3c2 = (7.365u,0.219u);
+ z3\0\3 = (7.226u,0.450u);
+ z3\0\4c1 = (6.981u,0.858u);
+ z3\0\4c2 = (6.666u,1.060u);
+ z3\0\4 = (6.259u,1.281u);
+ z3\0\5c1 = (4.625u,2.169u);
+ z3\0\5c2 = (2.759u,1.927u);
+ z3\0\5 = (0.964u,1.927u);
+ z3\0\6c1 = (0.964u,2.618u);
+ z3\0\6c2 = (0.868u,3.964u);
+ z3\0\6 = (1.210u,4.542u);
+ z3\0\7c1 = (2.155u,6.141u);
+ z3\0\7c2 = (5.928u,4.603u);
+ z3\0\7 = (7.049u,5.718u);
+ z3\0\8c1 = (7.344u,6.011u);
+ z3\0\8c2 = (7.382u,6.365u);
+ z3\0\8 = (7.468u,6.707u);
+ z3\0\9c1 = (6.567u,6.745u);
+ z3\0\9c2 = (1.720u,6.811u);
+ z3\0\9 = (1.239u,6.707u);
+ z3\0\10c1 = (1.023u,6.606u);
+ z3\0\10c2 = (0.872u,6.542u);
+ z3\0\10 = (0.728u,6.360u);
+ z3\0\11c1 = (0.301u,5.820u);
+ z3\0\11c2 = (0.482u,0.997u);
+ fill_or_unfill z3\0\0s
+ --z3\0\0
+ ..controls z3\0\1c1 and z3\0\1c2..z3\0\1
+ ..controls z3\0\2c1 and z3\0\2c2..z3\0\2
+ ..controls z3\0\3c1 and z3\0\3c2..z3\0\3
+ ..controls z3\0\4c1 and z3\0\4c2..z3\0\4
+ ..controls z3\0\5c1 and z3\0\5c2..z3\0\5
+ ..controls z3\0\6c1 and z3\0\6c2..z3\0\6
+ ..controls z3\0\7c1 and z3\0\7c2..z3\0\7
+ ..controls z3\0\8c1 and z3\0\8c2..z3\0\8
+ ..controls z3\0\9c1 and z3\0\9c2..z3\0\9
+ ..controls z3\0\10c1 and z3\0\10c2..z3\0\10
+ ..controls z3\0\11c1 and z3\0\11c2..cycle;
+ proof_labels (
+ 3\0\0,
+ 3\0\1,
+ 3\0\2,
+ 3\0\3,
+ 3\0\4,
+ 3\0\5,
+ 3\0\6,
+ 3\0\7,
+ 3\0\8,
+ 3\0\9,
+ 3\0\10,
+ 3\0\11,
+);
+endchar;
+
+beginchar (TIB_SUBCA, 8.672u#, 6.745u#, 0.482u#);
+ "sub.ca";
+ z4\0\0s = (1.204u,5.300u);
+ z4\0\0 = (5.059u,5.300u);
+ z4\0\1c1 = (3.866u,3.127u);
+ z4\0\1c2 = (2.704u,3.132u);
+ z4\0\1 = (0.482u,3.132u);
+ z4\0\2 = (1.217u,1.927u);
+ z4\0\3c1 = (1.528u,1.376u);
+ z4\0\3c2 = (1.776u,0.580u);
+ z4\0\3 = (2.268u,0.178u);
+ z4\0\4c1 = (2.787u,-0.247u);
+ z4\0\4c2 = (3.462u,-0.231u);
+ z4\0\4 = (4.095u,-0.240u);
+ z4\0\5c1 = (5.322u,-0.257u);
+ z4\0\5c2 = (7.018u,-0.434u);
+ z4\0\5 = (7.601u,0.974u);
+ z4\0\6c1 = (7.688u,1.292u);
+ z4\0\6c2 = (7.720u,1.796u);
+ z4\0\6 = (7.601u,2.128u);
+ z4\0\7c1 = (7.463u,2.821u);
+ z4\0\7c2 = (6.754u,3.351u);
+ z4\0\7 = (6.284u,3.858u);
+ z4\0\8 = (5.300u,5.059u);
+ z4\0\9 = (6.263u,5.257u);
+ z4\0\10c1 = (6.905u,5.344u);
+ z4\0\10c2 = (7.491u,5.262u);
+ z4\0\10 = (7.919u,5.857u);
+ z4\0\11c1 = (8.069u,6.065u);
+ z4\0\11c2 = (8.105u,6.274u);
+ z4\0\11 = (8.190u,6.504u);
+ z4\0\12 = (7.227u,6.725u);
+ z4\0\13 = (4.577u,6.725u);
+ z4\0\14c1 = (3.893u,6.745u);
+ z4\0\14c2 = (3.103u,6.823u);
+ z4\0\14 = (2.431u,6.725u);
+ z4\0\15c1 = (2.208u,6.677u);
+ z4\0\15c2 = (2.014u,6.639u);
+ z4\0\15 = (1.823u,6.506u);
+ z4\0\16c1 = (1.399u,6.210u);
+ z4\0\16c2 = (1.323u,5.762u);
+ z4\1\0s = (6.745u,0.482u);
+ z4\1\0c1 = (6.249u,0.322u);
+ z4\1\0c2 = (5.580u,0.066u);
+ z4\1\0 = (5.059u,0.110u);
+ z4\1\1c1 = (3.703u,0.226u);
+ z4\1\1c2 = (2.840u,1.764u);
+ z4\1\1 = (2.409u,2.891u);
+ z4\1\2c1 = (2.971u,2.936u);
+ z4\1\2c2 = (3.758u,3.132u);
+ z4\1\2 = (4.296u,3.045u);
+ z4\1\3c1 = (5.046u,2.922u);
+ z4\1\3c2 = (6.156u,1.849u);
+ z4\1\3 = (6.504u,1.201u);
+ fill_or_unfill z4\0\0s
+ --z4\0\0
+ ..controls z4\0\1c1 and z4\0\1c2..z4\0\1
+ --z4\0\2
+ ..controls z4\0\3c1 and z4\0\3c2..z4\0\3
+ ..controls z4\0\4c1 and z4\0\4c2..z4\0\4
+ ..controls z4\0\5c1 and z4\0\5c2..z4\0\5
+ ..controls z4\0\6c1 and z4\0\6c2..z4\0\6
+ ..controls z4\0\7c1 and z4\0\7c2..z4\0\7
+ --z4\0\8
+ --z4\0\9
+ ..controls z4\0\10c1 and z4\0\10c2..z4\0\10
+ ..controls z4\0\11c1 and z4\0\11c2..z4\0\11
+ --z4\0\12
+ --z4\0\13
+ ..controls z4\0\14c1 and z4\0\14c2..z4\0\14
+ ..controls z4\0\15c1 and z4\0\15c2..z4\0\15
+ ..controls z4\0\16c1 and z4\0\16c2..cycle;
+ fill_or_unfill z4\1\0s
+ ..controls z4\1\0c1 and z4\1\0c2..z4\1\0
+ ..controls z4\1\1c1 and z4\1\1c2..z4\1\1
+ ..controls z4\1\2c1 and z4\1\2c2..z4\1\2
+ ..controls z4\1\3c1 and z4\1\3c2..z4\1\3
+ --cycle;
+ proof_labels (
+ 4\0\0,
+ 4\0\1,
+ 4\0\2,
+ 4\0\3,
+ 4\0\4,
+ 4\0\5,
+ 4\0\6,
+ 4\0\7,
+ 4\0\8,
+ 4\0\9,
+ 4\0\10,
+ 4\0\11,
+ 4\0\12,
+ 4\0\13,
+ 4\0\14,
+ 4\0\15,
+ 4\0\16,
+ 4\1\0,
+ 4\1\1,
+ 4\1\2,
+ 4\1\3,
+ 4\1\4,
+);
+endchar;
+
+beginchar (TIB_SUBJA, 8.431u#, 6.745u#, 0.241u#);
+ "sub.ja";
+ z6\0\0s = (0.533u,0.275u);
+ z6\0\0 = (1.927u,0.275u);
+ z6\0\1 = (4.336u,0.679u);
+ z6\0\2c1 = (5.594u,0.770u);
+ z6\0\2c2 = (6.736u,0.217u);
+ z6\0\2 = (7.950u,0.000u);
+ z6\0\3c1 = (7.827u,0.240u);
+ z6\0\3c2 = (7.762u,0.443u);
+ z6\0\3 = (7.578u,0.657u);
+ z6\0\4c1 = (7.218u,1.077u);
+ z6\0\4c2 = (6.762u,1.256u);
+ z6\0\4 = (6.263u,1.453u);
+ z6\0\5c1 = (4.564u,2.122u);
+ z6\0\5c2 = (2.757u,1.927u);
+ z6\0\5 = (0.964u,1.927u);
+ z6\0\6 = (0.964u,2.891u);
+ z6\0\7 = (3.854u,2.891u);
+ z6\0\8c1 = (4.863u,2.891u);
+ z6\0\8c2 = (5.766u,2.854u);
+ z6\0\8 = (6.745u,3.132u);
+ z6\0\9 = (6.745u,3.613u);
+ z6\0\10c1 = (5.766u,3.891u);
+ z6\0\10c2 = (4.863u,3.854u);
+ z6\0\10 = (3.854u,3.854u);
+ z6\0\11 = (0.964u,3.854u);
+ z6\0\12c1 = (1.092u,4.276u);
+ z6\0\12c2 = (1.159u,4.612u);
+ z6\0\12 = (1.521u,4.915u);
+ z6\0\13c1 = (2.615u,5.830u);
+ z6\0\13c2 = (6.392u,4.772u);
+ z6\0\13 = (7.290u,5.685u);
+ z6\0\14c1 = (7.585u,5.984u);
+ z6\0\14c2 = (7.624u,6.360u);
+ z6\0\14 = (7.709u,6.745u);
+ z6\0\15 = (3.132u,6.745u);
+ z6\0\16c1 = (2.539u,6.744u);
+ z6\0\16c2 = (1.565u,6.805u);
+ z6\0\16 = (1.067u,6.462u);
+ z6\0\17c1 = (0.798u,6.277u);
+ z6\0\17c2 = (0.679u,6.062u);
+ z6\0\17 = (0.533u,5.756u);
+ z6\0\18c1 = (0.400u,5.152u);
+ z6\0\18c2 = (0.482u,1.173u);
+ fill_or_unfill z6\0\0s
+ --z6\0\0
+ --z6\0\1
+ ..controls z6\0\2c1 and z6\0\2c2..z6\0\2
+ ..controls z6\0\3c1 and z6\0\3c2..z6\0\3
+ ..controls z6\0\4c1 and z6\0\4c2..z6\0\4
+ ..controls z6\0\5c1 and z6\0\5c2..z6\0\5
+ --z6\0\6
+ --z6\0\7
+ ..controls z6\0\8c1 and z6\0\8c2..z6\0\8
+ --z6\0\9
+ ..controls z6\0\10c1 and z6\0\10c2..z6\0\10
+ --z6\0\11
+ ..controls z6\0\12c1 and z6\0\12c2..z6\0\12
+ ..controls z6\0\13c1 and z6\0\13c2..z6\0\13
+ ..controls z6\0\14c1 and z6\0\14c2..z6\0\14
+ --z6\0\15
+ ..controls z6\0\16c1 and z6\0\16c2..z6\0\16
+ ..controls z6\0\17c1 and z6\0\17c2..z6\0\17
+ ..controls z6\0\18c1 and z6\0\18c2..cycle;
+ proof_labels (
+ 6\0\0,
+ 6\0\1,
+ 6\0\2,
+ 6\0\3,
+ 6\0\4,
+ 6\0\5,
+ 6\0\6,
+ 6\0\7,
+ 6\0\8,
+ 6\0\9,
+ 6\0\10,
+ 6\0\11,
+ 6\0\12,
+ 6\0\13,
+ 6\0\14,
+ 6\0\15,
+ 6\0\16,
+ 6\0\17,
+ 6\0\18,
+);
+endchar;
+
+beginchar (TIB_SUBNYA, 8.672u#, 6.745u#, 2.891u#);
+ "sub.nya";
+ z7\0\0s = (2.409u,3.854u);
+ z7\0\0 = (0.964u,4.095u);
+ z7\0\1c1 = (1.185u,4.474u);
+ z7\0\1c2 = (1.343u,4.816u);
+ z7\0\1 = (1.740u,5.053u);
+ z7\0\2c1 = (2.358u,5.424u);
+ z7\0\2c2 = (4.426u,5.506u);
+ z7\0\2 = (4.598u,4.545u);
+ z7\0\3c1 = (4.775u,3.557u);
+ z7\0\3c2 = (2.793u,2.842u);
+ z7\0\3 = (2.698u,1.208u);
+ z7\0\4c1 = (2.681u,0.916u);
+ z7\0\4c2 = (2.728u,0.591u);
+ z7\0\4 = (2.896u,0.344u);
+ z7\0\5c1 = (3.786u,-0.963u);
+ z7\0\5c2 = (6.045u,0.616u);
+ z7\0\5 = (4.081u,1.242u);
+ z7\0\6 = (3.132u,1.445u);
+ z7\0\7c1 = (3.427u,1.825u);
+ z7\0\7c2 = (3.662u,2.172u);
+ z7\0\7 = (4.106u,2.403u);
+ z7\0\8c1 = (5.348u,3.048u);
+ z7\0\8c2 = (7.603u,2.155u);
+ z7\0\8 = (7.153u,0.491u);
+ z7\0\9c1 = (6.926u,-0.352u);
+ z7\0\9c2 = (6.115u,-1.049u);
+ z7\0\9 = (5.558u,-1.690u);
+ z7\0\10 = (4.818u,-2.650u);
+ z7\0\11c1 = (5.143u,-2.595u);
+ z7\0\11c2 = (5.408u,-2.581u);
+ z7\0\11 = (5.704u,-2.405u);
+ z7\0\12c1 = (6.115u,-2.160u);
+ z7\0\12c2 = (6.452u,-1.680u);
+ z7\0\12 = (6.744u,-1.305u);
+ z7\0\13c1 = (7.617u,-0.187u);
+ z7\0\13c2 = (9.015u,2.193u);
+ z7\0\13 = (7.605u,3.439u);
+ z7\0\14c1 = (7.034u,3.944u);
+ z7\0\14c2 = (6.028u,4.034u);
+ z7\0\14 = (5.300u,4.095u);
+ z7\0\15c1 = (5.504u,4.541u);
+ z7\0\15c2 = (5.764u,5.002u);
+ z7\0\15 = (5.680u,5.515u);
+ z7\0\16c1 = (5.505u,6.594u);
+ z7\0\16c2 = (3.736u,6.754u);
+ z7\0\16 = (2.891u,6.546u);
+ z7\0\17c1 = (2.338u,6.410u);
+ z7\0\17c2 = (1.744u,6.114u);
+ z7\0\17 = (1.360u,5.687u);
+ z7\0\18c1 = (1.082u,5.379u);
+ z7\0\18c2 = (0.884u,4.966u);
+ z7\0\18 = (0.749u,4.576u);
+ z7\0\19c1 = (0.070u,2.626u);
+ z7\0\19c2 = (1.580u,2.384u);
+ z7\0\19 = (2.167u,3.208u);
+ z7\0\20c1 = (2.317u,3.417u);
+ z7\0\20c2 = (2.335u,3.623u);
+ fill_or_unfill z7\0\0s
+ --z7\0\0
+ ..controls z7\0\1c1 and z7\0\1c2..z7\0\1
+ ..controls z7\0\2c1 and z7\0\2c2..z7\0\2
+ ..controls z7\0\3c1 and z7\0\3c2..z7\0\3
+ ..controls z7\0\4c1 and z7\0\4c2..z7\0\4
+ ..controls z7\0\5c1 and z7\0\5c2..z7\0\5
+ --z7\0\6
+ ..controls z7\0\7c1 and z7\0\7c2..z7\0\7
+ ..controls z7\0\8c1 and z7\0\8c2..z7\0\8
+ ..controls z7\0\9c1 and z7\0\9c2..z7\0\9
+ --z7\0\10
+ ..controls z7\0\11c1 and z7\0\11c2..z7\0\11
+ ..controls z7\0\12c1 and z7\0\12c2..z7\0\12
+ ..controls z7\0\13c1 and z7\0\13c2..z7\0\13
+ ..controls z7\0\14c1 and z7\0\14c2..z7\0\14
+ ..controls z7\0\15c1 and z7\0\15c2..z7\0\15
+ ..controls z7\0\16c1 and z7\0\16c2..z7\0\16
+ ..controls z7\0\17c1 and z7\0\17c2..z7\0\17
+ ..controls z7\0\18c1 and z7\0\18c2..z7\0\18
+ ..controls z7\0\19c1 and z7\0\19c2..z7\0\19
+ ..controls z7\0\20c1 and z7\0\20c2..cycle;
+ proof_labels (
+ 7\0\0,
+ 7\0\1,
+ 7\0\2,
+ 7\0\3,
+ 7\0\4,
+ 7\0\5,
+ 7\0\6,
+ 7\0\7,
+ 7\0\8,
+ 7\0\9,
+ 7\0\10,
+ 7\0\11,
+ 7\0\12,
+ 7\0\13,
+ 7\0\14,
+ 7\0\15,
+ 7\0\16,
+ 7\0\17,
+ 7\0\18,
+ 7\0\19,
+ 7\0\20,
+);
+endchar;
+
+beginchar (TIB_SUBTA, 6.504u#, 6.745u#, 1.686u#);
+ "sub.ta";
+ z8\0\0s = (0.482u,6.745u);
+ z8\0\0 = (0.482u,1.686u);
+ z8\0\1c1 = (0.937u,2.156u);
+ z8\0\1c2 = (1.272u,2.574u);
+ z8\0\1 = (1.937u,2.750u);
+ z8\0\2c1 = (2.974u,3.025u);
+ z8\0\2c2 = (4.700u,2.216u);
+ z8\0\2 = (4.500u,0.967u);
+ z8\0\3c1 = (4.369u,0.148u);
+ z8\0\3c2 = (3.509u,-0.270u);
+ z8\0\3 = (3.020u,-0.844u);
+ z8\0\4 = (2.650u,-1.445u);
+ z8\0\5c1 = (3.710u,-1.223u);
+ z8\0\5c2 = (4.730u,-0.679u);
+ z8\0\5 = (5.335u,0.262u);
+ z8\0\6c1 = (5.613u,0.695u);
+ z8\0\6c2 = (5.727u,1.178u);
+ z8\0\6 = (5.756u,1.686u);
+ z8\0\7c1 = (5.848u,3.342u);
+ z8\0\7c2 = (4.940u,4.064u);
+ z8\0\7 = (3.372u,4.209u);
+ z8\0\8c1 = (2.552u,4.285u);
+ z8\0\8c2 = (1.749u,4.062u);
+ z8\0\8 = (0.964u,3.854u);
+ z8\0\9c1 = (1.185u,4.253u);
+ z8\0\9c2 = (1.363u,4.629u);
+ z8\0\9 = (1.740u,4.915u);
+ z8\0\10c1 = (2.494u,5.486u);
+ z8\0\10c2 = (4.567u,5.300u);
+ z8\0\10 = (5.541u,5.300u);
+ z8\0\11 = (6.022u,6.745u);
+ fill_or_unfill z8\0\0s
+ --z8\0\0
+ ..controls z8\0\1c1 and z8\0\1c2..z8\0\1
+ ..controls z8\0\2c1 and z8\0\2c2..z8\0\2
+ ..controls z8\0\3c1 and z8\0\3c2..z8\0\3
+ --z8\0\4
+ ..controls z8\0\5c1 and z8\0\5c2..z8\0\5
+ ..controls z8\0\6c1 and z8\0\6c2..z8\0\6
+ ..controls z8\0\7c1 and z8\0\7c2..z8\0\7
+ ..controls z8\0\8c1 and z8\0\8c2..z8\0\8
+ ..controls z8\0\9c1 and z8\0\9c2..z8\0\9
+ ..controls z8\0\10c1 and z8\0\10c2..z8\0\10
+ --z8\0\11
+ --cycle;
+ proof_labels (
+ 8\0\0,
+ 8\0\1,
+ 8\0\2,
+ 8\0\3,
+ 8\0\4,
+ 8\0\5,
+ 8\0\6,
+ 8\0\7,
+ 8\0\8,
+ 8\0\9,
+ 8\0\10,
+ 8\0\11,
+ 8\0\12,
+);
+endchar;
+
+beginchar (TIB_SUBDA, 8.190u#, 6.745u#, 0.482u#);
+ "sub.da";
+ z10\0\0s = (0.482u,2.409u);
+ z10\0\0c1 = (2.459u,2.569u);
+ z10\0\0c2 = (4.064u,3.065u);
+ z10\0\0 = (5.760u,1.604u);
+ z10\0\1c1 = (6.474u,0.989u);
+ z10\0\1c2 = (6.874u,0.239u);
+ z10\0\1 = (7.709u,-0.241u);
+ z10\0\2c1 = (7.191u,1.533u);
+ z10\0\2c2 = (5.734u,3.511u);
+ z10\0\2 = (3.854u,3.967u);
+ z10\0\3c1 = (3.084u,4.154u);
+ z10\0\3c2 = (2.234u,4.095u);
+ z10\0\3 = (1.445u,4.095u);
+ z10\0\4c1 = (1.748u,4.469u);
+ z10\0\4c2 = (1.980u,4.784u);
+ z10\0\4 = (2.420u,5.017u);
+ z10\0\5c1 = (3.547u,5.616u);
+ z10\0\5c2 = (5.565u,4.864u);
+ z10\0\5 = (6.263u,5.857u);
+ z10\0\6c1 = (6.411u,6.068u);
+ z10\0\6c2 = (6.430u,6.271u);
+ z10\0\6 = (6.504u,6.504u);
+ z10\0\7c1 = (5.416u,6.648u);
+ z10\0\7c2 = (1.910u,7.162u);
+ z10\0\7 = (1.222u,6.129u);
+ z10\0\8c1 = (0.933u,5.696u);
+ z10\0\8c2 = (1.218u,5.032u);
+ z10\0\8 = (1.076u,4.509u);
+ z10\0\9 = (0.714u,3.610u);
+ z10\0\10c1 = (0.572u,3.200u);
+ z10\0\10c2 = (0.527u,2.836u);
+ fill_or_unfill z10\0\0s
+ ..controls z10\0\0c1 and z10\0\0c2..z10\0\0
+ ..controls z10\0\1c1 and z10\0\1c2..z10\0\1
+ ..controls z10\0\2c1 and z10\0\2c2..z10\0\2
+ ..controls z10\0\3c1 and z10\0\3c2..z10\0\3
+ ..controls z10\0\4c1 and z10\0\4c2..z10\0\4
+ ..controls z10\0\5c1 and z10\0\5c2..z10\0\5
+ ..controls z10\0\6c1 and z10\0\6c2..z10\0\6
+ ..controls z10\0\7c1 and z10\0\7c2..z10\0\7
+ ..controls z10\0\8c1 and z10\0\8c2..z10\0\8
+ --z10\0\9
+ ..controls z10\0\10c1 and z10\0\10c2..cycle;
+ proof_labels (
+ 10\0\0,
+ 10\0\1,
+ 10\0\2,
+ 10\0\3,
+ 10\0\4,
+ 10\0\5,
+ 10\0\6,
+ 10\0\7,
+ 10\0\8,
+ 10\0\9,
+ 10\0\10,
+);
+endchar;
+
+beginchar (TIB_SUBNA, 6.504u#, 6.745u#, 0.964u#);
+ "sub.na";
+ z11\0\0s = (0.964u,5.300u);
+ z11\0\0c1 = (2.182u,5.228u);
+ z11\0\0c2 = (2.482u,5.166u);
+ z11\0\0 = (3.132u,4.095u);
+ z11\0\1c1 = (2.626u,4.090u);
+ z11\0\1c2 = (1.938u,4.118u);
+ z11\0\1 = (1.471u,3.918u);
+ z11\0\2c1 = (-0.871u,2.912u);
+ z11\0\2c2 = (1.614u,-0.875u);
+ z11\0\2 = (3.168u,1.039u);
+ z11\0\3c1 = (3.499u,1.448u);
+ z11\0\3c2 = (3.702u,2.369u);
+ z11\0\3 = (3.854u,2.891u);
+ z11\0\4c1 = (5.273u,1.750u);
+ z11\0\4c2 = (5.458u,1.045u);
+ z11\0\4 = (5.541u,-0.723u);
+ z11\0\5 = (6.022u,-0.723u);
+ z11\0\6c1 = (6.008u,3.896u);
+ z11\0\6c2 = (3.659u,3.652u);
+ z11\0\6 = (3.661u,4.573u);
+ z11\0\7c1 = (3.663u,5.391u);
+ z11\0\7c2 = (5.043u,5.128u);
+ z11\0\7 = (5.536u,5.857u);
+ z11\0\8c1 = (5.723u,6.135u);
+ z11\0\8c2 = (5.729u,6.431u);
+ z11\0\8 = (5.782u,6.745u);
+ z11\0\9c1 = (4.818u,6.745u);
+ z11\0\9c2 = (1.997u,6.959u);
+ z11\0\9 = (1.348u,6.326u);
+ z11\0\10c1 = (1.043u,6.029u);
+ z11\0\10c2 = (1.030u,5.689u);
+ z11\1\0s = (2.168u,2.912u);
+ z11\1\0c1 = (2.432u,2.942u);
+ z11\1\0c2 = (2.541u,3.028u);
+ z11\1\0 = (2.806u,2.912u);
+ z11\1\1c1 = (3.447u,2.493u);
+ z11\1\1c2 = (3.150u,1.317u);
+ z11\1\1 = (2.550u,1.060u);
+ z11\1\2c1 = (1.824u,0.748u);
+ z11\1\2c2 = (0.595u,1.730u);
+ z11\1\2 = (1.726u,2.742u);
+ fill_or_unfill z11\0\0s
+ ..controls z11\0\0c1 and z11\0\0c2..z11\0\0
+ ..controls z11\0\1c1 and z11\0\1c2..z11\0\1
+ ..controls z11\0\2c1 and z11\0\2c2..z11\0\2
+ ..controls z11\0\3c1 and z11\0\3c2..z11\0\3
+ ..controls z11\0\4c1 and z11\0\4c2..z11\0\4
+ --z11\0\5
+ ..controls z11\0\6c1 and z11\0\6c2..z11\0\6
+ ..controls z11\0\7c1 and z11\0\7c2..z11\0\7
+ ..controls z11\0\8c1 and z11\0\8c2..z11\0\8
+ ..controls z11\0\9c1 and z11\0\9c2..z11\0\9
+ ..controls z11\0\10c1 and z11\0\10c2..cycle;
+ fill_or_unfill z11\1\0s
+ ..controls z11\1\0c1 and z11\1\0c2..z11\1\0
+ ..controls z11\1\1c1 and z11\1\1c2..z11\1\1
+ ..controls z11\1\2c1 and z11\1\2c2..z11\1\2
+ --cycle;
+ proof_labels (
+ 11\0\0,
+ 11\0\1,
+ 11\0\2,
+ 11\0\3,
+ 11\0\4,
+ 11\0\5,
+ 11\0\6,
+ 11\0\7,
+ 11\0\8,
+ 11\0\9,
+ 11\0\10,
+ 11\1\0,
+ 11\1\1,
+ 11\1\2,
+ 11\1\3,
+);
+endchar;
+
+beginchar (TIB_SUBPA, 8.913u#, 6.745u#, 0.000u#);
+ "sub.pa";
+ z12\0\0s = (0.482u,1.466u);
+ z12\0\0 = (1.686u,1.466u);
+ z12\0\1 = (3.372u,1.636u);
+ z12\0\2c1 = (4.129u,1.597u);
+ z12\0\2c2 = (5.055u,1.465u);
+ z12\0\2 = (5.782u,1.256u);
+ z12\0\3 = (7.965u,0.482u);
+ z12\0\4c1 = (7.950u,1.736u);
+ z12\0\4c2 = (7.842u,3.095u);
+ z12\0\4 = (7.965u,4.336u);
+ z12\0\5c1 = (8.037u,4.846u);
+ z12\0\5c2 = (8.343u,5.508u);
+ z12\0\5 = (8.294u,5.998u);
+ z12\0\6c1 = (8.191u,6.997u);
+ z12\0\6c2 = (6.624u,6.814u);
+ z12\0\6 = (6.482u,5.998u);
+ z12\0\7c1 = (6.405u,5.572u);
+ z12\0\7c2 = (6.821u,5.144u);
+ z12\0\7 = (7.004u,4.777u);
+ z12\0\8c1 = (7.154u,4.476u);
+ z12\0\8c2 = (7.244u,4.181u);
+ z12\0\8 = (7.315u,3.853u);
+ z12\0\9c1 = (7.505u,2.985u);
+ z12\0\9c2 = (7.468u,2.088u);
+ z12\0\9 = (7.468u,1.204u);
+ z12\0\10c1 = (5.084u,2.697u);
+ z12\0\10c2 = (3.954u,2.891u);
+ z12\0\10 = (1.204u,2.891u);
+ z12\0\11c1 = (2.232u,6.109u);
+ z12\0\11c2 = (3.926u,4.689u);
+ z12\0\11 = (4.817u,6.076u);
+ z12\0\12c1 = (4.960u,6.298u);
+ z12\0\12c2 = (4.984u,6.505u);
+ z12\0\12 = (5.059u,6.745u);
+ z12\0\13c1 = (4.379u,6.745u);
+ z12\0\13c2 = (2.232u,6.825u);
+ z12\0\13 = (1.721u,6.601u);
+ z12\0\14c1 = (1.421u,6.469u);
+ z12\0\14c2 = (1.241u,6.304u);
+ z12\0\14 = (1.128u,5.987u);
+ z12\0\15c1 = (0.973u,5.504u);
+ z12\0\15c2 = (1.203u,4.869u);
+ z12\0\15 = (1.128u,4.336u);
+ z12\0\16 = (0.670u,2.891u);
+ z12\0\17c1 = (0.537u,2.404u);
+ z12\0\17c2 = (0.506u,1.946u);
+ fill_or_unfill z12\0\0s
+ --z12\0\0
+ --z12\0\1
+ ..controls z12\0\2c1 and z12\0\2c2..z12\0\2
+ --z12\0\3
+ ..controls z12\0\4c1 and z12\0\4c2..z12\0\4
+ ..controls z12\0\5c1 and z12\0\5c2..z12\0\5
+ ..controls z12\0\6c1 and z12\0\6c2..z12\0\6
+ ..controls z12\0\7c1 and z12\0\7c2..z12\0\7
+ ..controls z12\0\8c1 and z12\0\8c2..z12\0\8
+ ..controls z12\0\9c1 and z12\0\9c2..z12\0\9
+ ..controls z12\0\10c1 and z12\0\10c2..z12\0\10
+ ..controls z12\0\11c1 and z12\0\11c2..z12\0\11
+ ..controls z12\0\12c1 and z12\0\12c2..z12\0\12
+ ..controls z12\0\13c1 and z12\0\13c2..z12\0\13
+ ..controls z12\0\14c1 and z12\0\14c2..z12\0\14
+ ..controls z12\0\15c1 and z12\0\15c2..z12\0\15
+ --z12\0\16
+ ..controls z12\0\17c1 and z12\0\17c2..cycle;
+ proof_labels (
+ 12\0\0,
+ 12\0\1,
+ 12\0\2,
+ 12\0\3,
+ 12\0\4,
+ 12\0\5,
+ 12\0\6,
+ 12\0\7,
+ 12\0\8,
+ 12\0\9,
+ 12\0\10,
+ 12\0\11,
+ 12\0\12,
+ 12\0\13,
+ 12\0\14,
+ 12\0\15,
+ 12\0\16,
+ 12\0\17,
+);
+endchar;
+
+beginchar (TIB_SUBBA, 9.395u#, 6.745u#, 0.241u#);
+ "sub.ba";
+ z14\0\0s = (0.482u,1.204u);
+ z14\0\0c1 = (2.631u,1.224u);
+ z14\0\0c2 = (4.674u,1.852u);
+ z14\0\0 = (6.745u,0.859u);
+ z14\0\1 = (8.227u,0.000u);
+ z14\0\2c1 = (8.190u,1.097u);
+ z14\0\2c2 = (8.096u,2.290u);
+ z14\0\2 = (8.227u,3.372u);
+ z14\0\3 = (8.858u,5.300u);
+ z14\0\4c1 = (8.912u,5.781u);
+ z14\0\4c2 = (8.907u,6.256u);
+ z14\0\4 = (8.858u,6.745u);
+ z14\0\5c1 = (7.889u,6.745u);
+ z14\0\5c2 = (2.553u,6.872u);
+ z14\0\5 = (2.003u,6.601u);
+ z14\0\6c1 = (1.628u,6.416u);
+ z14\0\6c2 = (1.546u,6.158u);
+ z14\0\6 = (1.471u,5.768u);
+ z14\0\7 = (1.471u,4.336u);
+ z14\0\8 = (0.915u,2.891u);
+ z14\1\0s = (7.950u,0.964u);
+ z14\1\0 = (6.022u,1.903u);
+ z14\1\1c1 = (4.267u,2.643u);
+ z14\1\1c2 = (3.294u,2.650u);
+ z14\1\1 = (1.445u,2.650u);
+ z14\1\2c1 = (1.647u,3.495u);
+ z14\1\2c2 = (1.964u,4.312u);
+ z14\1\2 = (2.700u,4.844u);
+ z14\1\3c1 = (3.522u,5.439u);
+ z14\1\3c2 = (6.798u,5.625u);
+ z14\1\3 = (7.426u,4.714u);
+ z14\1\4c1 = (7.795u,4.179u);
+ z14\1\4c2 = (7.943u,1.695u);
+ fill_or_unfill z14\0\0s
+ ..controls z14\0\0c1 and z14\0\0c2..z14\0\0
+ --z14\0\1
+ ..controls z14\0\2c1 and z14\0\2c2..z14\0\2
+ --z14\0\3
+ ..controls z14\0\4c1 and z14\0\4c2..z14\0\4
+ ..controls z14\0\5c1 and z14\0\5c2..z14\0\5
+ ..controls z14\0\6c1 and z14\0\6c2..z14\0\6
+ --z14\0\7
+ --z14\0\8
+ --cycle;
+ fill_or_unfill z14\1\0s
+ --z14\1\0
+ ..controls z14\1\1c1 and z14\1\1c2..z14\1\1
+ ..controls z14\1\2c1 and z14\1\2c2..z14\1\2
+ ..controls z14\1\3c1 and z14\1\3c2..z14\1\3
+ ..controls z14\1\4c1 and z14\1\4c2..cycle;
+ proof_labels (
+ 14\0\0,
+ 14\0\1,
+ 14\0\2,
+ 14\0\3,
+ 14\0\4,
+ 14\0\5,
+ 14\0\6,
+ 14\0\7,
+ 14\0\8,
+ 14\0\9,
+ 14\1\0,
+ 14\1\1,
+ 14\1\2,
+ 14\1\3,
+ 14\1\4,
+);
+endchar;
+
+beginchar (TIB_SUBMA, 10.359u#, 6.745u#, 1.927u#);
+ "sub.ma";
+ z15\0\0s = (1.204u,5.300u);
+ z15\0\0c1 = (2.342u,5.115u);
+ z15\0\0c2 = (2.624u,4.890u);
+ z15\0\0 = (3.132u,3.854u);
+ z15\0\1c1 = (2.727u,3.831u);
+ z15\0\1c2 = (2.321u,3.832u);
+ z15\0\1 = (1.937u,3.677u);
+ z15\0\2c1 = (-0.426u,2.719u);
+ z15\0\2c2 = (0.504u,-0.817u);
+ z15\0\2 = (3.127u,-0.446u);
+ z15\0\3c1 = (3.645u,-0.372u);
+ z15\0\3c2 = (3.997u,-0.199u);
+ z15\0\3 = (4.252u,0.276u);
+ z15\0\4c1 = (4.523u,0.779u);
+ z15\0\4c2 = (4.501u,1.597u);
+ z15\0\4 = (4.577u,2.168u);
+ z15\0\5c1 = (5.970u,1.639u);
+ z15\0\5c2 = (7.924u,0.646u);
+ z15\0\5 = (8.631u,-0.724u);
+ z15\0\6c1 = (8.795u,-1.042u);
+ z15\0\6c2 = (8.840u,-1.344u);
+ z15\0\6 = (8.913u,-1.686u);
+ z15\0\7 = (9.636u,-1.686u);
+ z15\0\8 = (9.416u,0.964u);
+ z15\0\9 = (9.416u,3.132u);
+ z15\0\10c1 = (9.511u,3.881u);
+ z15\0\10c2 = (10.016u,5.561u);
+ z15\0\10 = (9.729u,6.188u);
+ z15\0\11c1 = (9.385u,6.938u);
+ z15\0\11c2 = (7.652u,6.935u);
+ z15\0\11 = (7.616u,6.009u);
+ z15\0\12c1 = (7.597u,5.542u);
+ z15\0\12c2 = (8.253u,4.676u);
+ z15\0\12 = (8.399u,4.092u);
+ z15\0\13 = (8.913u,0.723u);
+ z15\0\14 = (7.508u,1.964u);
+ z15\0\15 = (6.464u,2.964u);
+ z15\0\16c1 = (5.963u,3.335u);
+ z15\0\16c2 = (5.380u,3.505u);
+ z15\0\16 = (4.823u,3.762u);
+ z15\0\17c1 = (4.481u,3.920u);
+ z15\0\17c2 = (3.730u,4.230u);
+ z15\0\17 = (3.935u,4.740u);
+ z15\0\18c1 = (4.242u,5.501u);
+ z15\0\18c2 = (5.694u,5.023u);
+ z15\0\18 = (6.258u,5.857u);
+ z15\0\19c1 = (6.446u,6.135u);
+ z15\0\19c2 = (6.452u,6.431u);
+ z15\0\19 = (6.504u,6.745u);
+ z15\0\20c1 = (5.619u,6.745u);
+ z15\0\20c2 = (2.377u,6.902u);
+ z15\0\20 = (1.790u,6.499u);
+ z15\0\21c1 = (1.361u,6.204u);
+ z15\0\21c2 = (1.307u,5.765u);
+ z15\1\0s = (2.431u,2.534u);
+ z15\1\0c1 = (2.675u,2.540u);
+ z15\1\0c2 = (2.828u,2.614u);
+ z15\1\0 = (3.097u,2.534u);
+ z15\1\1c1 = (4.278u,2.343u);
+ z15\1\1c2 = (4.239u,0.609u);
+ z15\1\1 = (3.097u,0.231u);
+ z15\1\2c1 = (1.969u,-0.147u);
+ z15\1\2c2 = (1.109u,1.149u);
+ z15\1\2 = (1.865u,2.092u);
+ z15\1\3c1 = (2.045u,2.317u);
+ z15\1\3c2 = (2.205u,2.358u);
+ fill_or_unfill z15\0\0s
+ ..controls z15\0\0c1 and z15\0\0c2..z15\0\0
+ ..controls z15\0\1c1 and z15\0\1c2..z15\0\1
+ ..controls z15\0\2c1 and z15\0\2c2..z15\0\2
+ ..controls z15\0\3c1 and z15\0\3c2..z15\0\3
+ ..controls z15\0\4c1 and z15\0\4c2..z15\0\4
+ ..controls z15\0\5c1 and z15\0\5c2..z15\0\5
+ ..controls z15\0\6c1 and z15\0\6c2..z15\0\6
+ --z15\0\7
+ --z15\0\8
+ --z15\0\9
+ ..controls z15\0\10c1 and z15\0\10c2..z15\0\10
+ ..controls z15\0\11c1 and z15\0\11c2..z15\0\11
+ ..controls z15\0\12c1 and z15\0\12c2..z15\0\12
+ --z15\0\13
+ --z15\0\14
+ --z15\0\15
+ ..controls z15\0\16c1 and z15\0\16c2..z15\0\16
+ ..controls z15\0\17c1 and z15\0\17c2..z15\0\17
+ ..controls z15\0\18c1 and z15\0\18c2..z15\0\18
+ ..controls z15\0\19c1 and z15\0\19c2..z15\0\19
+ ..controls z15\0\20c1 and z15\0\20c2..z15\0\20
+ ..controls z15\0\21c1 and z15\0\21c2..cycle;
+ fill_or_unfill z15\1\0s
+ ..controls z15\1\0c1 and z15\1\0c2..z15\1\0
+ ..controls z15\1\1c1 and z15\1\1c2..z15\1\1
+ ..controls z15\1\2c1 and z15\1\2c2..z15\1\2
+ ..controls z15\1\3c1 and z15\1\3c2..cycle;
+ proof_labels (
+ 15\0\0,
+ 15\0\1,
+ 15\0\2,
+ 15\0\3,
+ 15\0\4,
+ 15\0\5,
+ 15\0\6,
+ 15\0\7,
+ 15\0\8,
+ 15\0\9,
+ 15\0\10,
+ 15\0\11,
+ 15\0\12,
+ 15\0\13,
+ 15\0\14,
+ 15\0\15,
+ 15\0\16,
+ 15\0\17,
+ 15\0\18,
+ 15\0\19,
+ 15\0\20,
+ 15\0\21,
+ 15\1\0,
+ 15\1\1,
+ 15\1\2,
+ 15\1\3,
+);
+endchar;
+
+beginchar (TIB_SUBTSA, 9.877u#, 9.636u#, 0.482u#);
+ "sub.tsa";
+ z16\0\0s = (7.193u,6.745u);
+ z16\0\0c1 = (6.264u,6.745u);
+ z16\0\0c2 = (2.883u,6.900u);
+ z16\0\0 = (2.222u,6.499u);
+ z16\0\1c1 = (1.741u,6.208u);
+ z16\0\1c2 = (1.619u,5.793u);
+ z16\0\1 = (1.445u,5.300u);
+ z16\0\2c1 = (2.754u,5.300u);
+ z16\0\2c2 = (4.018u,5.370u);
+ z16\0\2 = (5.300u,5.059u);
+ z16\0\3c1 = (4.398u,3.882u);
+ z16\0\3c2 = (3.545u,2.956u);
+ z16\0\3 = (1.927u,3.225u);
+ z16\0\4 = (0.482u,3.613u);
+ z16\0\5 = (1.432u,2.147u);
+ z16\0\6c1 = (1.855u,1.444u);
+ z16\0\6c2 = (1.990u,0.735u);
+ z16\0\6 = (2.701u,0.214u);
+ z16\0\7c1 = (3.511u,-0.379u);
+ z16\0\7c2 = (6.098u,-0.436u);
+ z16\0\7 = (6.972u,0.042u);
+ z16\0\8c1 = (7.443u,0.300u);
+ z16\0\8c2 = (7.756u,0.679u);
+ z16\0\8 = (7.870u,1.208u);
+ z16\0\9c1 = (8.116u,2.359u);
+ z16\0\9c2 = (7.199u,3.066u);
+ z16\0\9 = (6.556u,3.854u);
+ z16\0\10c1 = (6.238u,4.245u);
+ z16\0\10c2 = (6.018u,4.619u);
+ z16\0\10 = (5.782u,5.059u);
+ z16\0\11c1 = (7.289u,5.427u);
+ z16\0\11c2 = (8.800u,5.134u);
+ z16\0\11 = (7.709u,7.227u);
+ z16\0\12c1 = (9.471u,7.765u);
+ z16\0\12c2 = (9.389u,7.827u);
+ z16\0\12 = (9.395u,9.636u);
+ z16\0\13c1 = (8.631u,9.328u);
+ z16\0\13c2 = (7.314u,8.839u);
+ z16\0\13 = (7.193u,7.924u);
+ z16\0\14c1 = (7.106u,7.619u);
+ z16\0\14c2 = (7.193u,7.066u);
+ z16\1\0s = (5.059u,3.372u);
+ z16\1\0c1 = (5.788u,2.405u);
+ z16\1\0c2 = (6.589u,1.648u);
+ z16\1\0 = (6.986u,0.482u);
+ z16\1\1c1 = (4.759u,-0.060u);
+ z16\1\1c2 = (3.315u,0.325u);
+ z16\1\1 = (3.132u,2.891u);
+ fill_or_unfill z16\0\0s
+ ..controls z16\0\0c1 and z16\0\0c2..z16\0\0
+ ..controls z16\0\1c1 and z16\0\1c2..z16\0\1
+ ..controls z16\0\2c1 and z16\0\2c2..z16\0\2
+ ..controls z16\0\3c1 and z16\0\3c2..z16\0\3
+ --z16\0\4
+ --z16\0\5
+ ..controls z16\0\6c1 and z16\0\6c2..z16\0\6
+ ..controls z16\0\7c1 and z16\0\7c2..z16\0\7
+ ..controls z16\0\8c1 and z16\0\8c2..z16\0\8
+ ..controls z16\0\9c1 and z16\0\9c2..z16\0\9
+ ..controls z16\0\10c1 and z16\0\10c2..z16\0\10
+ ..controls z16\0\11c1 and z16\0\11c2..z16\0\11
+ ..controls z16\0\12c1 and z16\0\12c2..z16\0\12
+ ..controls z16\0\13c1 and z16\0\13c2..z16\0\13
+ ..controls z16\0\14c1 and z16\0\14c2..cycle;
+ fill_or_unfill z16\1\0s
+ ..controls z16\1\0c1 and z16\1\0c2..z16\1\0
+ ..controls z16\1\1c1 and z16\1\1c2..z16\1\1
+ --cycle;
+ proof_labels (
+ 16\0\0,
+ 16\0\1,
+ 16\0\2,
+ 16\0\3,
+ 16\0\4,
+ 16\0\5,
+ 16\0\6,
+ 16\0\7,
+ 16\0\8,
+ 16\0\9,
+ 16\0\10,
+ 16\0\11,
+ 16\0\12,
+ 16\0\13,
+ 16\0\14,
+ 16\1\0,
+ 16\1\1,
+ 16\1\2,
+);
+endchar;
+
+beginchar (TIB_SUBWA, 5.300u#, -0.241u#, 5.782u#);
+ "sub.wa";
+ z82\0\0s = (0.482u,-2.891u);
+ z82\0\0c1 = (1.489u,-3.977u);
+ z82\0\0c2 = (3.361u,-5.244u);
+ z82\0\0 = (4.818u,-5.541u);
+ z82\0\1 = (4.818u,-0.241u);
+ z82\0\2c1 = (3.272u,-0.832u);
+ z82\0\2c2 = (1.859u,-1.972u);
+ z82\1\0s = (4.336u,-1.204u);
+ z82\1\0 = (4.336u,-4.818u);
+ z82\1\1c1 = (3.278u,-4.414u);
+ z82\1\1c2 = (2.357u,-3.798u);
+ z82\1\1 = (1.445u,-3.132u);
+ z82\1\2c1 = (2.235u,-2.229u);
+ z82\1\2c2 = (3.220u,-1.631u);
+ fill_or_unfill z82\0\0s
+ ..controls z82\0\0c1 and z82\0\0c2..z82\0\0
+ --z82\0\1
+ ..controls z82\0\2c1 and z82\0\2c2..cycle;
+ fill_or_unfill z82\1\0s
+ --z82\1\0
+ ..controls z82\1\1c1 and z82\1\1c2..z82\1\1
+ ..controls z82\1\2c1 and z82\1\2c2..cycle;
+ proof_labels (
+ 82\0\0,
+ 82\0\1,
+ 82\0\2,
+ 82\1\0,
+ 82\1\1,
+ 82\1\2,
+);
+endchar;
+
+beginchar (TIB_HEADWA, 6.745u#, 6.745u#, 0.000u#);
+ "head.wa";
+ z85\0\0s = (0.482u,5.300u);
+ z85\0\0 = (2.891u,5.300u);
+ z85\0\1 = (2.891u,4.336u);
+ z85\0\2 = (4.095u,5.064u);
+ z85\0\3c1 = (4.541u,5.262u);
+ z85\0\3c2 = (6.533u,5.425u);
+ z85\0\3 = (5.982u,6.365u);
+ z85\0\4c1 = (5.877u,6.543u);
+ z85\0\4c2 = (5.691u,6.614u);
+ z85\0\4 = (5.504u,6.669u);
+ z85\0\5c1 = (4.879u,6.857u);
+ z85\0\5c2 = (1.774u,6.814u);
+ z85\0\5 = (1.239u,6.499u);
+ z85\0\6c1 = (0.738u,6.203u);
+ z85\0\6c2 = (0.638u,5.814u);
+ fill_or_unfill z85\0\0s
+ --z85\0\0
+ --z85\0\1
+ --z85\0\2
+ ..controls z85\0\3c1 and z85\0\3c2..z85\0\3
+ ..controls z85\0\4c1 and z85\0\4c2..z85\0\4
+ ..controls z85\0\5c1 and z85\0\5c2..z85\0\5
+ ..controls z85\0\6c1 and z85\0\6c2..cycle;
+ proof_labels (
+ 85\0\0,
+ 85\0\1,
+ 85\0\2,
+ 85\0\3,
+ 85\0\4,
+ 85\0\5,
+ 85\0\6,
+);
+endchar;
+
+beginchar (TIB_SUBYA, 10.118u#, -1.927u#, 7.227u#);
+ "sub.ya";
+ z83\0\0s = (8.672u,-1.927u);
+ z83\0\0c1 = (8.292u,-2.576u);
+ z83\0\0c2 = (7.908u,-3.242u);
+ z83\0\0 = (7.217u,-3.611u);
+ z83\0\1c1 = (5.800u,-4.360u);
+ z83\0\1c2 = (2.103u,-3.827u);
+ z83\0\1 = (0.482u,-3.611u);
+ z83\0\2c1 = (0.966u,-4.629u);
+ z83\0\2c2 = (1.494u,-5.089u);
+ z83\0\2 = (2.409u,-5.731u);
+ z83\0\3c1 = (4.119u,-6.933u);
+ z83\0\3c2 = (5.948u,-7.454u);
+ z83\0\3 = (7.949u,-6.581u);
+ z83\0\4c1 = (9.175u,-6.046u);
+ z83\0\4c2 = (9.528u,-5.657u);
+ z83\0\4 = (9.636u,-4.336u);
+ z83\0\5 = (7.468u,-5.645u);
+ z83\0\6c1 = (5.423u,-6.606u);
+ z83\0\6c2 = (4.250u,-5.285u);
+ z83\0\6 = (2.409u,-4.813u);
+ z83\0\7c1 = (3.192u,-4.659u);
+ z83\0\7c2 = (3.794u,-4.779u);
+ z83\0\7 = (4.577u,-4.813u);
+ z83\0\8c1 = (5.775u,-4.853u);
+ z83\0\8c2 = (7.908u,-4.601u);
+ z83\0\8 = (8.652u,-3.548u);
+ z83\0\9c1 = (8.988u,-3.071u);
+ z83\0\9c2 = (9.066u,-2.487u);
+ z83\0\9 = (9.154u,-1.927u);
+ fill_or_unfill z83\0\0s
+ ..controls z83\0\0c1 and z83\0\0c2..z83\0\0
+ ..controls z83\0\1c1 and z83\0\1c2..z83\0\1
+ ..controls z83\0\2c1 and z83\0\2c2..z83\0\2
+ ..controls z83\0\3c1 and z83\0\3c2..z83\0\3
+ ..controls z83\0\4c1 and z83\0\4c2..z83\0\4
+ --z83\0\5
+ ..controls z83\0\6c1 and z83\0\6c2..z83\0\6
+ ..controls z83\0\7c1 and z83\0\7c2..z83\0\7
+ ..controls z83\0\8c1 and z83\0\8c2..z83\0\8
+ ..controls z83\0\9c1 and z83\0\9c2..z83\0\9
+ --cycle;
+ proof_labels (
+ 83\0\0,
+ 83\0\1,
+ 83\0\2,
+ 83\0\3,
+ 83\0\4,
+ 83\0\5,
+ 83\0\6,
+ 83\0\7,
+ 83\0\8,
+ 83\0\9,
+ 83\0\10,
+);
+endchar;
+
+beginchar (TIB_SUBRA, 8.913u#, -0.964u#, 5.782u#);
+ "sub.ra";
+ z84\0\0s = (8.190u,-0.964u);
+ z84\0\0 = (8.190u,-4.818u);
+ z84\0\1c1 = (6.619u,-3.282u);
+ z84\0\1c2 = (5.218u,-2.045u);
+ z84\0\1 = (2.892u,-2.178u);
+ z84\0\2c1 = (2.386u,-2.208u);
+ z84\0\2c2 = (1.982u,-2.257u);
+ z84\0\2 = (1.572u,-2.587u);
+ z84\0\3c1 = (1.045u,-3.011u);
+ z84\0\3c2 = (0.751u,-3.735u);
+ z84\0\3 = (0.482u,-4.364u);
+ z84\0\4c1 = (0.750u,-4.372u);
+ z84\0\4c2 = (0.919u,-4.438u);
+ z84\0\4 = (1.204u,-4.364u);
+ z84\0\5c1 = (2.061u,-4.251u);
+ z84\0\5c2 = (2.526u,-3.521u);
+ z84\0\5 = (3.613u,-3.493u);
+ z84\0\6c1 = (4.420u,-3.472u);
+ z84\0\6c2 = (5.587u,-3.833u);
+ z84\0\6 = (6.263u,-4.260u);
+ z84\0\7c1 = (7.039u,-4.750u);
+ z84\0\7c2 = (7.538u,-5.237u);
+ z84\0\7 = (8.431u,-5.541u);
+ z84\0\8c1 = (8.431u,-4.312u);
+ z84\0\8c2 = (8.614u,-2.030u);
+ fill_or_unfill z84\0\0s
+ --z84\0\0
+ ..controls z84\0\1c1 and z84\0\1c2..z84\0\1
+ ..controls z84\0\2c1 and z84\0\2c2..z84\0\2
+ ..controls z84\0\3c1 and z84\0\3c2..z84\0\3
+ ..controls z84\0\4c1 and z84\0\4c2..z84\0\4
+ ..controls z84\0\5c1 and z84\0\5c2..z84\0\5
+ ..controls z84\0\6c1 and z84\0\6c2..z84\0\6
+ ..controls z84\0\7c1 and z84\0\7c2..z84\0\7
+ ..controls z84\0\8c1 and z84\0\8c2..cycle;
+ proof_labels (
+ 84\0\0,
+ 84\0\1,
+ 84\0\2,
+ 84\0\3,
+ 84\0\4,
+ 84\0\5,
+ 84\0\6,
+ 84\0\7,
+ 84\0\8,
+);
+endchar;
+
+beginchar (TIB_SUBACHUNG, 9.636u#, 6.263u#, 0.000u#);
+ "sub achung";
+ z22\0\0s = (1.686u,1.204u);
+ z22\0\0 = (1.405u,2.167u);
+ z22\0\1c1 = (1.009u,4.507u);
+ z22\0\1c2 = (5.621u,5.665u);
+ z22\0\1 = (6.689u,3.628u);
+ z22\0\2c1 = (6.824u,3.242u);
+ z22\0\2c2 = (6.768u,2.822u);
+ z22\0\2 = (6.689u,2.409u);
+ z22\0\3c1 = (5.149u,2.408u);
+ z22\0\3c2 = (4.185u,2.581u);
+ z22\0\3 = (3.372u,0.924u);
+ z22\0\4c1 = (4.312u,0.964u);
+ z22\0\4c2 = (5.338u,1.046u);
+ z22\0\4 = (6.263u,0.924u);
+ z22\0\5 = (7.950u,0.387u);
+ z22\0\6c1 = (8.356u,0.285u);
+ z22\0\6c2 = (8.739u,0.264u);
+ z22\0\6 = (9.154u,0.241u);
+ z22\0\7c1 = (8.734u,1.762u);
+ z22\0\7c2 = (8.047u,1.488u);
+ z22\0\7 = (7.472u,2.471u);
+ z22\0\8c1 = (7.049u,3.195u);
+ z22\0\8c2 = (7.352u,4.373u);
+ z22\0\8 = (6.882u,5.274u);
+ z22\0\9c1 = (6.718u,5.590u);
+ z22\0\9c2 = (6.540u,5.799u);
+ z22\0\9 = (6.229u,5.980u);
+ z22\0\10c1 = (5.116u,6.630u);
+ z22\0\10c2 = (2.256u,6.236u);
+ z22\0\10 = (1.287u,5.385u);
+ z22\0\11c1 = (1.018u,5.149u);
+ z22\0\11c2 = (0.829u,4.896u);
+ z22\0\11 = (0.687u,4.567u);
+ z22\0\12c1 = (0.390u,3.873u);
+ z22\0\12c2 = (0.352u,2.166u);
+ z22\0\12 = (0.900u,1.589u);
+ z22\0\13c1 = (1.138u,1.338u);
+ z22\0\13c2 = (1.381u,1.306u);
+ fill_or_unfill z22\0\0s
+ --z22\0\0
+ ..controls z22\0\1c1 and z22\0\1c2..z22\0\1
+ ..controls z22\0\2c1 and z22\0\2c2..z22\0\2
+ ..controls z22\0\3c1 and z22\0\3c2..z22\0\3
+ ..controls z22\0\4c1 and z22\0\4c2..z22\0\4
+ --z22\0\5
+ ..controls z22\0\6c1 and z22\0\6c2..z22\0\6
+ ..controls z22\0\7c1 and z22\0\7c2..z22\0\7
+ ..controls z22\0\8c1 and z22\0\8c2..z22\0\8
+ ..controls z22\0\9c1 and z22\0\9c2..z22\0\9
+ ..controls z22\0\10c1 and z22\0\10c2..z22\0\10
+ ..controls z22\0\11c1 and z22\0\11c2..z22\0\11
+ ..controls z22\0\12c1 and z22\0\12c2..z22\0\12
+ ..controls z22\0\13c1 and z22\0\13c2..cycle;
+ proof_labels (
+ 22\0\0,
+ 22\0\1,
+ 22\0\2,
+ 22\0\3,
+ 22\0\4,
+ 22\0\5,
+ 22\0\6,
+ 22\0\7,
+ 22\0\8,
+ 22\0\9,
+ 22\0\10,
+ 22\0\11,
+ 22\0\12,
+ 22\0\13,
+);
+endchar;
+
+beginchar (TIB_SUBLA, 8.913u#, 6.745u#, 0.000u#);
+ "sub.la";
+ z25\0\0s = (0.723u,0.723u);
+ z25\0\0 = (1.445u,0.723u);
+ z25\0\1c1 = (1.369u,1.632u);
+ z25\0\1c2 = (0.963u,2.722u);
+ z25\0\1 = (1.159u,3.618u);
+ z25\0\2c1 = (1.657u,5.874u);
+ z25\0\2c2 = (5.567u,5.685u);
+ z25\0\2 = (5.411u,3.618u);
+ z25\0\3c1 = (5.313u,2.345u);
+ z25\0\3c2 = (3.642u,2.968u);
+ z25\0\3 = (2.896u,1.660u);
+ z25\0\4c1 = (2.720u,1.353u);
+ z25\0\4c2 = (2.705u,1.058u);
+ z25\0\4 = (2.650u,0.723u);
+ z25\0\5c1 = (3.883u,1.044u);
+ z25\0\5c2 = (4.975u,1.569u);
+ z25\0\5 = (6.263u,1.176u);
+ z25\0\6 = (8.431u,0.482u);
+ z25\0\7 = (8.431u,6.745u);
+ z25\0\8 = (7.468u,6.745u);
+ z25\0\9 = (7.928u,4.818u);
+ z25\0\10c1 = (8.037u,3.728u);
+ z25\0\10c2 = (7.950u,2.546u);
+ z25\0\10 = (7.928u,1.445u);
+ z25\0\11c1 = (7.122u,2.116u);
+ z25\0\11c2 = (6.809u,2.347u);
+ z25\0\11 = (5.776u,2.650u);
+ z25\0\12c1 = (5.996u,3.406u);
+ z25\0\12c2 = (6.215u,5.487u);
+ z25\0\12 = (5.776u,6.150u);
+ z25\0\13c1 = (5.165u,7.076u);
+ z25\0\13c2 = (1.572u,6.922u);
+ z25\0\13 = (0.867u,6.150u);
+ z25\0\14c1 = (0.435u,5.662u);
+ z25\0\14c2 = (0.486u,4.937u);
+ z25\0\14 = (0.482u,4.336u);
+ z25\0\15c1 = (0.473u,3.089u);
+ z25\0\15c2 = (0.560u,1.957u);
+ fill_or_unfill z25\0\0s
+ --z25\0\0
+ ..controls z25\0\1c1 and z25\0\1c2..z25\0\1
+ ..controls z25\0\2c1 and z25\0\2c2..z25\0\2
+ ..controls z25\0\3c1 and z25\0\3c2..z25\0\3
+ ..controls z25\0\4c1 and z25\0\4c2..z25\0\4
+ ..controls z25\0\5c1 and z25\0\5c2..z25\0\5
+ --z25\0\6
+ --z25\0\7
+ --z25\0\8
+ --z25\0\9
+ ..controls z25\0\10c1 and z25\0\10c2..z25\0\10
+ ..controls z25\0\11c1 and z25\0\11c2..z25\0\11
+ ..controls z25\0\12c1 and z25\0\12c2..z25\0\12
+ ..controls z25\0\13c1 and z25\0\13c2..z25\0\13
+ ..controls z25\0\14c1 and z25\0\14c2..z25\0\14
+ ..controls z25\0\15c1 and z25\0\15c2..cycle;
+ proof_labels (
+ 25\0\0,
+ 25\0\1,
+ 25\0\2,
+ 25\0\3,
+ 25\0\4,
+ 25\0\5,
+ 25\0\6,
+ 25\0\7,
+ 25\0\8,
+ 25\0\9,
+ 25\0\10,
+ 25\0\11,
+ 25\0\12,
+ 25\0\13,
+ 25\0\14,
+ 25\0\15,
+);
+endchar;
+
+beginchar (TIB_SUBHA, 8.190u#, 6.745u#, 2.409u#);
+ "sub.ha";
+ z28\0\0s = (0.482u,1.927u);
+ z28\0\0c1 = (1.799u,1.969u);
+ z28\0\0c2 = (2.263u,2.045u);
+ z28\0\0 = (3.351u,1.162u);
+ z28\0\1c1 = (3.780u,0.815u);
+ z28\0\1c2 = (4.091u,0.511u);
+ z28\0\1 = (4.577u,0.241u);
+ z28\0\2c1 = (4.473u,1.535u);
+ z28\0\2c2 = (4.240u,1.707u);
+ z28\0\2 = (3.372u,2.650u);
+ z28\0\3c1 = (3.764u,2.793u);
+ z28\0\3c2 = (4.155u,2.966u);
+ z28\0\3 = (4.577u,2.997u);
+ z28\0\4c1 = (5.135u,3.038u);
+ z28\0\4c2 = (5.751u,2.843u);
+ z28\0\4 = (6.180u,2.481u);
+ z28\0\5c1 = (7.436u,1.423u);
+ z28\0\5c2 = (6.482u,-0.248u);
+ z28\0\5 = (5.516u,-1.125u);
+ z28\0\6c1 = (5.153u,-1.454u);
+ z28\0\6c2 = (4.754u,-1.682u);
+ z28\0\6 = (4.336u,-1.927u);
+ z28\0\7c1 = (5.852u,-2.501u);
+ z28\0\7c2 = (7.090u,-1.119u);
+ z28\0\7 = (7.516u,0.241u);
+ z28\0\8c1 = (7.663u,0.712u);
+ z28\0\8c2 = (7.694u,1.196u);
+ z28\0\8 = (7.705u,1.686u);
+ z28\0\9c1 = (7.723u,2.441u);
+ z28\0\9c2 = (7.788u,3.415u);
+ z28\0\9 = (7.151u,3.951u);
+ z28\0\10c1 = (6.673u,4.354u);
+ z28\0\10c2 = (5.894u,4.359u);
+ z28\0\10 = (5.300u,4.326u);
+ z28\0\11c1 = (4.076u,4.258u);
+ z28\0\11c2 = (3.718u,3.919u);
+ z28\0\11 = (3.132u,2.891u);
+ z28\0\12 = (1.204u,3.613u);
+ z28\0\13c1 = (2.872u,6.640u);
+ z28\0\13c2 = (4.956u,4.455u);
+ z28\0\13 = (6.369u,5.685u);
+ z28\0\14c1 = (6.708u,5.979u);
+ z28\0\14c2 = (6.825u,6.348u);
+ z28\0\14 = (6.986u,6.707u);
+ z28\0\15c1 = (6.171u,6.745u);
+ z28\0\15c2 = (2.199u,6.811u);
+ z28\0\15 = (1.721u,6.707u);
+ z28\0\16c1 = (1.506u,6.606u);
+ z28\0\16c2 = (1.353u,6.542u);
+ z28\0\16 = (1.210u,6.360u);
+ z28\0\17c1 = (0.896u,5.961u);
+ z28\0\17c2 = (1.034u,5.210u);
+ z28\0\17 = (0.933u,4.716u);
+ z28\0\18 = (0.609u,3.610u);
+ z28\0\19c1 = (0.483u,3.051u);
+ z28\0\19c2 = (0.487u,2.496u);
+ fill_or_unfill z28\0\0s
+ ..controls z28\0\0c1 and z28\0\0c2..z28\0\0
+ ..controls z28\0\1c1 and z28\0\1c2..z28\0\1
+ ..controls z28\0\2c1 and z28\0\2c2..z28\0\2
+ ..controls z28\0\3c1 and z28\0\3c2..z28\0\3
+ ..controls z28\0\4c1 and z28\0\4c2..z28\0\4
+ ..controls z28\0\5c1 and z28\0\5c2..z28\0\5
+ ..controls z28\0\6c1 and z28\0\6c2..z28\0\6
+ ..controls z28\0\7c1 and z28\0\7c2..z28\0\7
+ ..controls z28\0\8c1 and z28\0\8c2..z28\0\8
+ ..controls z28\0\9c1 and z28\0\9c2..z28\0\9
+ ..controls z28\0\10c1 and z28\0\10c2..z28\0\10
+ ..controls z28\0\11c1 and z28\0\11c2..z28\0\11
+ --z28\0\12
+ ..controls z28\0\13c1 and z28\0\13c2..z28\0\13
+ ..controls z28\0\14c1 and z28\0\14c2..z28\0\14
+ ..controls z28\0\15c1 and z28\0\15c2..z28\0\15
+ ..controls z28\0\16c1 and z28\0\16c2..z28\0\16
+ ..controls z28\0\17c1 and z28\0\17c2..z28\0\17
+ --z28\0\18
+ ..controls z28\0\19c1 and z28\0\19c2..cycle;
+ proof_labels (
+ 28\0\0,
+ 28\0\1,
+ 28\0\2,
+ 28\0\3,
+ 28\0\4,
+ 28\0\5,
+ 28\0\6,
+ 28\0\7,
+ 28\0\8,
+ 28\0\9,
+ 28\0\10,
+ 28\0\11,
+ 28\0\12,
+ 28\0\13,
+ 28\0\14,
+ 28\0\15,
+ 28\0\16,
+ 28\0\17,
+ 28\0\18,
+ 28\0\19,
+);
+endchar;
+
+beginchar (TIB_SUBSMALLD, 8.190u#, 6.745u#, 0.000u#);
+ "sub.smalld";
+ z66\0\0s = (0.482u,2.649u);
+ z66\0\0 = (4.095u,2.649u);
+ z66\0\1 = (7.709u,2.409u);
+ z66\0\2c1 = (5.642u,4.045u);
+ z66\0\2c2 = (3.660u,3.854u);
+ z66\0\2 = (1.204u,3.854u);
+ z66\0\3c1 = (1.568u,4.306u);
+ z66\0\3c2 = (1.891u,4.740u);
+ z66\0\3 = (2.418u,5.017u);
+ z66\0\4c1 = (3.563u,5.617u);
+ z66\0\4c2 = (5.565u,4.864u);
+ z66\0\4 = (6.263u,5.857u);
+ z66\0\5c1 = (6.411u,6.068u);
+ z66\0\5c2 = (6.430u,6.271u);
+ z66\0\5 = (6.504u,6.504u);
+ z66\0\6c1 = (5.416u,6.648u);
+ z66\0\6c2 = (1.910u,7.162u);
+ z66\0\6 = (1.173u,6.129u);
+ z66\0\7c1 = (0.940u,5.707u);
+ z66\0\7c2 = (1.199u,5.180u);
+ z66\0\7 = (1.173u,4.716u);
+ z66\0\8 = (0.713u,3.610u);
+ fill_or_unfill z66\0\0s
+ --z66\0\0
+ --z66\0\1
+ ..controls z66\0\2c1 and z66\0\2c2..z66\0\2
+ ..controls z66\0\3c1 and z66\0\3c2..z66\0\3
+ ..controls z66\0\4c1 and z66\0\4c2..z66\0\4
+ ..controls z66\0\5c1 and z66\0\5c2..z66\0\5
+ ..controls z66\0\6c1 and z66\0\6c2..z66\0\6
+ ..controls z66\0\7c1 and z66\0\7c2..z66\0\7
+ --z66\0\8
+ --cycle;
+ proof_labels (
+ 66\0\0,
+ 66\0\1,
+ 66\0\2,
+ 66\0\3,
+ 66\0\4,
+ 66\0\5,
+ 66\0\6,
+ 66\0\7,
+ 66\0\8,
+ 66\0\9,
+);
+endchar;
+
+beginchar (TIB_PALUTA, 7.950u#, 6.745u#, 6.504u#);
+ "paluta";
+ z16\0\0s = (1.204u,4.336u);
+ z16\0\0c1 = (1.371u,4.637u);
+ z16\0\0c2 = (1.450u,4.868u);
+ z16\0\0 = (1.757u,5.073u);
+ z16\0\1c1 = (2.416u,5.512u);
+ z16\0\1c2 = (4.271u,5.399u);
+ z16\0\1 = (4.227u,4.323u);
+ z16\0\2c1 = (4.182u,3.217u);
+ z16\0\2c2 = (2.085u,2.416u);
+ z16\0\2 = (2.048u,0.968u);
+ z16\0\3c1 = (2.021u,-0.049u);
+ z16\0\3c2 = (3.210u,-0.720u);
+ z16\0\3 = (3.952u,0.085u);
+ z16\0\4c1 = (4.196u,0.349u);
+ z16\0\4c2 = (4.237u,0.640u);
+ z16\0\4 = (4.336u,0.964u);
+ z16\0\5 = (2.891u,1.445u);
+ z16\0\6c1 = (3.801u,2.351u);
+ z16\0\6c2 = (5.095u,2.923u);
+ z16\0\6 = (6.141u,1.827u);
+ z16\0\7c1 = (6.516u,1.435u);
+ z16\0\7c2 = (6.702u,1.028u);
+ z16\0\7 = (6.663u,0.482u);
+ z16\0\8c1 = (6.548u,-1.111u);
+ z16\0\8c2 = (4.234u,-3.015u);
+ z16\0\8 = (4.531u,-4.327u);
+ z16\0\9c1 = (4.786u,-5.454u);
+ z16\0\9c2 = (6.473u,-6.074u);
+ z16\0\9 = (7.468u,-6.263u);
+ z16\0\10c1 = (7.364u,-5.928u);
+ z16\0\10c2 = (7.317u,-5.678u);
+ z16\0\10 = (7.084u,-5.393u);
+ z16\0\11c1 = (6.592u,-4.793u);
+ z16\0\11c2 = (5.401u,-4.460u);
+ z16\0\11 = (5.306u,-3.613u);
+ z16\0\12c1 = (5.278u,-3.354u);
+ z16\0\12c2 = (5.362u,-3.178u);
+ z16\0\12 = (5.481u,-2.959u);
+ z16\0\13 = (6.440u,-1.677u);
+ z16\0\14c1 = (7.080u,-0.669u);
+ z16\0\14c2 = (7.467u,0.488u);
+ z16\0\14 = (7.461u,1.686u);
+ z16\0\15c1 = (7.458u,2.213u);
+ z16\0\15c2 = (7.430u,2.797u);
+ z16\0\15 = (7.049u,3.204u);
+ z16\0\16c1 = (6.450u,3.845u);
+ z16\0\16c2 = (5.585u,3.794u);
+ z16\0\16 = (4.818u,3.613u);
+ z16\0\17 = (5.487u,5.055u);
+ z16\0\18c1 = (5.592u,5.332u);
+ z16\0\18c2 = (5.705u,5.629u);
+ z16\0\18 = (5.612u,5.928u);
+ z16\0\19c1 = (5.282u,6.988u);
+ z16\0\19c2 = (2.937u,6.832u);
+ z16\0\19 = (2.171u,6.429u);
+ z16\0\20c1 = (1.620u,6.138u);
+ z16\0\20c2 = (1.087u,5.609u);
+ z16\0\20 = (0.798u,5.055u);
+ z16\0\21c1 = (0.531u,4.543u);
+ z16\0\21c2 = (0.305u,3.300u);
+ z16\0\21 = (1.062u,3.064u);
+ z16\0\22c1 = (1.587u,2.900u);
+ z16\0\22c2 = (2.122u,3.458u);
+ z16\0\22 = (1.750u,3.969u);
+ z16\0\23c1 = (1.598u,4.179u);
+ z16\0\23c2 = (1.408u,4.218u);
+ fill_or_unfill z16\0\0s
+ ..controls z16\0\0c1 and z16\0\0c2..z16\0\0
+ ..controls z16\0\1c1 and z16\0\1c2..z16\0\1
+ ..controls z16\0\2c1 and z16\0\2c2..z16\0\2
+ ..controls z16\0\3c1 and z16\0\3c2..z16\0\3
+ ..controls z16\0\4c1 and z16\0\4c2..z16\0\4
+ --z16\0\5
+ ..controls z16\0\6c1 and z16\0\6c2..z16\0\6
+ ..controls z16\0\7c1 and z16\0\7c2..z16\0\7
+ ..controls z16\0\8c1 and z16\0\8c2..z16\0\8
+ ..controls z16\0\9c1 and z16\0\9c2..z16\0\9
+ ..controls z16\0\10c1 and z16\0\10c2..z16\0\10
+ ..controls z16\0\11c1 and z16\0\11c2..z16\0\11
+ ..controls z16\0\12c1 and z16\0\12c2..z16\0\12
+ --z16\0\13
+ ..controls z16\0\14c1 and z16\0\14c2..z16\0\14
+ ..controls z16\0\15c1 and z16\0\15c2..z16\0\15
+ ..controls z16\0\16c1 and z16\0\16c2..z16\0\16
+ --z16\0\17
+ ..controls z16\0\18c1 and z16\0\18c2..z16\0\18
+ ..controls z16\0\19c1 and z16\0\19c2..z16\0\19
+ ..controls z16\0\20c1 and z16\0\20c2..z16\0\20
+ ..controls z16\0\21c1 and z16\0\21c2..z16\0\21
+ ..controls z16\0\22c1 and z16\0\22c2..z16\0\22
+ ..controls z16\0\23c1 and z16\0\23c2..cycle;
+ proof_labels (
+ 16\0\0,
+ 16\0\1,
+ 16\0\2,
+ 16\0\3,
+ 16\0\4,
+ 16\0\5,
+ 16\0\6,
+ 16\0\7,
+ 16\0\8,
+ 16\0\9,
+ 16\0\10,
+ 16\0\11,
+ 16\0\12,
+ 16\0\13,
+ 16\0\14,
+ 16\0\15,
+ 16\0\16,
+ 16\0\17,
+ 16\0\18,
+ 16\0\19,
+ 16\0\20,
+ 16\0\21,
+ 16\0\22,
+ 16\0\23,
+);
+endchar;
+
+beginchar (TIB_GTERYIGMGOTR, 13.249u#, 6.745u#, 2.168u#);
+ "gter.yig.mgo.tr";
+ z56\0\0s = (4.818u,3.372u);
+ z56\0\0c1 = (5.250u,3.512u);
+ z56\0\0c2 = (5.627u,3.660u);
+ z56\0\0 = (6.091u,3.585u);
+ z56\0\1c1 = (7.367u,3.377u);
+ z56\0\1c2 = (10.432u,1.221u);
+ z56\0\1 = (11.256u,0.231u);
+ z56\0\2c1 = (11.504u,-0.067u);
+ z56\0\2c2 = (11.678u,-0.365u);
+ z56\0\2 = (11.835u,-0.718u);
+ z56\0\3c1 = (11.968u,-1.018u);
+ z56\0\3c2 = (12.040u,-1.449u);
+ z56\0\3 = (12.277u,-1.686u);
+ z56\0\4c1 = (12.439u,-1.847u);
+ z56\0\4c2 = (12.575u,-1.848u);
+ z56\0\4 = (12.768u,-1.927u);
+ z56\0\5c1 = (12.673u,-1.260u);
+ z56\0\5c2 = (12.567u,-0.616u);
+ z56\0\5 = (12.274u,0.000u);
+ z56\0\6c1 = (11.443u,1.751u);
+ z56\0\6c2 = (9.100u,3.680u);
+ z56\0\6 = (7.709u,5.059u);
+ z56\0\7c1 = (8.749u,5.400u);
+ z56\0\7c2 = (9.047u,5.412u);
+ z56\0\7 = (9.395u,6.504u);
+ z56\0\8c1 = (8.489u,6.724u);
+ z56\0\8c2 = (6.201u,6.920u);
+ z56\0\8 = (5.332u,6.642u);
+ z56\0\9c1 = (4.814u,6.475u);
+ z56\0\9c2 = (4.438u,5.968u);
+ z56\0\9 = (4.966u,5.542u);
+ z56\0\10c1 = (5.207u,5.347u);
+ z56\0\10c2 = (5.496u,5.350u);
+ z56\0\10 = (5.782u,5.300u);
+ z56\0\11c1 = (5.274u,4.521u);
+ z56\0\11c2 = (4.621u,3.734u);
+ z56\0\11 = (4.233u,2.892u);
+ z56\0\12c1 = (3.538u,1.382u);
+ z56\0\12c2 = (4.652u,1.665u);
+ z56\0\12 = (5.530u,1.302u);
+ z56\0\13c1 = (5.994u,1.111u);
+ z56\0\13c2 = (6.192u,0.847u);
+ z56\0\13 = (6.504u,0.482u);
+ z56\0\14c1 = (4.745u,0.054u);
+ z56\0\14c2 = (1.554u,0.032u);
+ z56\0\14 = (1.802u,2.650u);
+ z56\0\15c1 = (1.853u,3.189u);
+ z56\0\15c2 = (1.989u,3.827u);
+ z56\0\15 = (2.173u,4.336u);
+ z56\0\16c1 = (2.415u,5.005u);
+ z56\0\16c2 = (3.571u,6.332u);
+ z56\0\16 = (2.373u,6.635u);
+ z56\0\17c1 = (2.065u,6.755u);
+ z56\0\17c2 = (1.534u,6.726u);
+ z56\0\17 = (1.240u,6.635u);
+ z56\0\18c1 = (0.118u,6.123u);
+ z56\0\18c2 = (0.814u,5.283u);
+ z56\0\18 = (1.093u,4.556u);
+ z56\0\19 = (1.339u,3.613u);
+ z56\0\20c1 = (1.594u,2.143u);
+ z56\0\20c2 = (1.099u,-0.040u);
+ z56\0\20 = (2.675u,-0.921u);
+ z56\0\21c1 = (3.105u,-1.162u);
+ z56\0\21c2 = (3.614u,-1.195u);
+ z56\0\21 = (4.095u,-1.197u);
+ z56\0\22c1 = (5.453u,-1.204u);
+ z56\0\22c2 = (6.960u,-0.657u);
+ z56\0\22 = (6.929u,0.963u);
+ z56\0\23c1 = (6.919u,1.480u);
+ z56\0\23c2 = (6.711u,1.936u);
+ z56\0\23 = (6.367u,2.316u);
+ z56\0\24c1 = (5.959u,2.767u);
+ z56\0\24c2 = (5.338u,3.068u);
+ fill_or_unfill z56\0\0s
+ ..controls z56\0\0c1 and z56\0\0c2..z56\0\0
+ ..controls z56\0\1c1 and z56\0\1c2..z56\0\1
+ ..controls z56\0\2c1 and z56\0\2c2..z56\0\2
+ ..controls z56\0\3c1 and z56\0\3c2..z56\0\3
+ ..controls z56\0\4c1 and z56\0\4c2..z56\0\4
+ ..controls z56\0\5c1 and z56\0\5c2..z56\0\5
+ ..controls z56\0\6c1 and z56\0\6c2..z56\0\6
+ ..controls z56\0\7c1 and z56\0\7c2..z56\0\7
+ ..controls z56\0\8c1 and z56\0\8c2..z56\0\8
+ ..controls z56\0\9c1 and z56\0\9c2..z56\0\9
+ ..controls z56\0\10c1 and z56\0\10c2..z56\0\10
+ ..controls z56\0\11c1 and z56\0\11c2..z56\0\11
+ ..controls z56\0\12c1 and z56\0\12c2..z56\0\12
+ ..controls z56\0\13c1 and z56\0\13c2..z56\0\13
+ ..controls z56\0\14c1 and z56\0\14c2..z56\0\14
+ ..controls z56\0\15c1 and z56\0\15c2..z56\0\15
+ ..controls z56\0\16c1 and z56\0\16c2..z56\0\16
+ ..controls z56\0\17c1 and z56\0\17c2..z56\0\17
+ ..controls z56\0\18c1 and z56\0\18c2..z56\0\18
+ --z56\0\19
+ ..controls z56\0\20c1 and z56\0\20c2..z56\0\20
+ ..controls z56\0\21c1 and z56\0\21c2..z56\0\21
+ ..controls z56\0\22c1 and z56\0\22c2..z56\0\22
+ ..controls z56\0\23c1 and z56\0\23c2..z56\0\23
+ ..controls z56\0\24c1 and z56\0\24c2..cycle;
+ proof_labels (
+ 56\0\0,
+ 56\0\1,
+ 56\0\2,
+ 56\0\3,
+ 56\0\4,
+ 56\0\5,
+ 56\0\6,
+ 56\0\7,
+ 56\0\8,
+ 56\0\9,
+ 56\0\10,
+ 56\0\11,
+ 56\0\12,
+ 56\0\13,
+ 56\0\14,
+ 56\0\15,
+ 56\0\16,
+ 56\0\17,
+ 56\0\18,
+ 56\0\19,
+ 56\0\20,
+ 56\0\21,
+ 56\0\22,
+ 56\0\23,
+ 56\0\24,
+);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/ctib/ctibvow.mf b/Master/texmf-dist/fonts/source/public/ctib/ctibvow.mf
new file mode 100644
index 00000000000..8fa81b90aa0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ctib/ctibvow.mf
@@ -0,0 +1,1367 @@
+% This is file ctibvow.mf and belongs to the ctibtex package
+%
+% Glyph source: S. Sirlin
+%
+% Tibetan vowels
+%
+beginchar (TIB_SMALLACHUNG, 9.636u#, -0.241u#, 6.504u#);
+ "small achung";
+ z117\0\0s = (1.686u,-5.300u);
+ z117\0\0 = (1.405u,-4.337u);
+ z117\0\1c1 = (0.978u,-1.817u);
+ z117\0\1c2 = (6.952u,-0.283u);
+ z117\0\1 = (6.745u,-4.095u);
+ z117\0\2c1 = (5.149u,-4.096u);
+ z117\0\2c2 = (4.185u,-3.923u);
+ z117\0\2 = (3.372u,-5.580u);
+ z117\0\3c1 = (4.312u,-5.541u);
+ z117\0\3c2 = (5.338u,-5.459u);
+ z117\0\3 = (6.263u,-5.580u);
+ z117\0\4c1 = (7.280u,-5.796u);
+ z117\0\4c2 = (8.089u,-6.205u);
+ z117\0\4 = (9.154u,-6.263u);
+ z117\0\5c1 = (8.734u,-4.742u);
+ z117\0\5c2 = (8.047u,-5.016u);
+ z117\0\5 = (7.472u,-4.033u);
+ z117\0\6c1 = (7.049u,-3.309u);
+ z117\0\6c2 = (7.352u,-2.131u);
+ z117\0\6 = (6.882u,-1.175u);
+ z117\0\7c1 = (6.056u,0.355u);
+ z117\0\7c2 = (2.438u,-0.108u);
+ z117\0\7 = (1.287u,-1.175u);
+ z117\0\8c1 = (0.109u,-2.153u);
+ z117\0\8c2 = (0.041u,-4.753u);
+ fill_or_unfill z117\0\0s
+ --z117\0\0
+ ..controls z117\0\1c1 and z117\0\1c2..z117\0\1
+ ..controls z117\0\2c1 and z117\0\2c2..z117\0\2
+ ..controls z117\0\3c1 and z117\0\3c2..z117\0\3
+ ..controls z117\0\4c1 and z117\0\4c2..z117\0\4
+ ..controls z117\0\5c1 and z117\0\5c2..z117\0\5
+ ..controls z117\0\6c1 and z117\0\6c2..z117\0\6
+ ..controls z117\0\7c1 and z117\0\7c2..z117\0\7
+ ..controls z117\0\8c1 and z117\0\8c2..cycle;
+ proof_labels (
+ 117\0\0,
+ 117\0\1,
+ 117\0\2,
+ 117\0\3,
+ 117\0\4,
+ 117\0\5,
+ 117\0\6,
+ 117\0\7,
+ 117\0\8,
+);
+endchar;
+
+beginchar (TIB_A, 13.972u#, 6.745u#, 2.168u#);
+ "a";
+ z29\0\0s = (4.818u,3.372u);
+ z29\0\0c1 = (5.250u,3.512u);
+ z29\0\0c2 = (5.627u,3.660u);
+ z29\0\0 = (6.091u,3.585u);
+ z29\0\1c1 = (7.493u,3.357u);
+ z29\0\1c2 = (10.877u,0.955u);
+ z29\0\1 = (11.598u,-0.242u);
+ z29\0\2c1 = (11.932u,-0.796u);
+ z29\0\2c2 = (11.986u,-1.302u);
+ z29\0\2 = (12.045u,-1.927u);
+ z29\0\3 = (12.788u,-1.927u);
+ z29\0\4c1 = (12.768u,-0.268u);
+ z29\0\4c2 = (12.650u,1.484u);
+ z29\0\4 = (12.788u,3.132u);
+ z29\0\5 = (13.061u,4.818u);
+ z29\0\6 = (13.260u,5.987u);
+ z29\0\7 = (13.260u,6.360u);
+ z29\0\8c1 = (12.976u,6.746u);
+ z29\0\8c2 = (12.213u,6.769u);
+ z29\0\8 = (11.818u,6.709u);
+ z29\0\9c1 = (11.483u,6.658u);
+ z29\0\9c2 = (11.139u,6.563u);
+ z29\0\9 = (11.059u,6.188u);
+ z29\0\10 = (11.059u,5.768u);
+ z29\0\11 = (11.676u,4.095u);
+ z29\0\12 = (11.909u,2.409u);
+ z29\0\13 = (12.286u,0.241u);
+ z29\0\14c1 = (11.549u,1.141u);
+ z29\0\14c2 = (10.813u,2.062u);
+ z29\0\14 = (9.994u,2.891u);
+ z29\0\15 = (7.709u,5.059u);
+ z29\0\16c1 = (8.749u,5.400u);
+ z29\0\16c2 = (9.047u,5.412u);
+ z29\0\16 = (9.395u,6.504u);
+ z29\0\17c1 = (8.489u,6.724u);
+ z29\0\17c2 = (6.201u,6.920u);
+ z29\0\17 = (5.332u,6.642u);
+ z29\0\18c1 = (4.814u,6.475u);
+ z29\0\18c2 = (4.438u,5.968u);
+ z29\0\18 = (4.966u,5.542u);
+ z29\0\19c1 = (5.207u,5.347u);
+ z29\0\19c2 = (5.496u,5.350u);
+ z29\0\19 = (5.782u,5.300u);
+ z29\0\20c1 = (5.274u,4.521u);
+ z29\0\20c2 = (4.621u,3.734u);
+ z29\0\20 = (4.233u,2.892u);
+ z29\0\21c1 = (3.538u,1.382u);
+ z29\0\21c2 = (4.652u,1.665u);
+ z29\0\21 = (5.530u,1.302u);
+ z29\0\22c1 = (5.994u,1.111u);
+ z29\0\22c2 = (6.192u,0.847u);
+ z29\0\22 = (6.504u,0.482u);
+ z29\0\23c1 = (4.745u,0.054u);
+ z29\0\23c2 = (1.554u,0.032u);
+ z29\0\23 = (1.802u,2.650u);
+ z29\0\24c1 = (1.853u,3.189u);
+ z29\0\24c2 = (1.989u,3.827u);
+ z29\0\24 = (2.173u,4.336u);
+ z29\0\25c1 = (2.415u,5.005u);
+ z29\0\25c2 = (3.571u,6.332u);
+ z29\0\25 = (2.373u,6.635u);
+ z29\0\26c1 = (2.065u,6.755u);
+ z29\0\26c2 = (1.534u,6.726u);
+ z29\0\26 = (1.240u,6.635u);
+ z29\0\27c1 = (0.118u,6.123u);
+ z29\0\27c2 = (0.814u,5.283u);
+ z29\0\27 = (1.093u,4.556u);
+ z29\0\28 = (1.339u,3.613u);
+ z29\0\29c1 = (1.594u,2.143u);
+ z29\0\29c2 = (1.099u,-0.040u);
+ z29\0\29 = (2.675u,-0.921u);
+ z29\0\30c1 = (3.105u,-1.162u);
+ z29\0\30c2 = (3.614u,-1.195u);
+ z29\0\30 = (4.095u,-1.197u);
+ z29\0\31c1 = (5.453u,-1.204u);
+ z29\0\31c2 = (6.960u,-0.657u);
+ z29\0\31 = (6.929u,0.963u);
+ z29\0\32c1 = (6.919u,1.480u);
+ z29\0\32c2 = (6.711u,1.936u);
+ z29\0\32 = (6.367u,2.316u);
+ z29\0\33c1 = (5.959u,2.767u);
+ z29\0\33c2 = (5.338u,3.068u);
+ fill_or_unfill z29\0\0s
+ ..controls z29\0\0c1 and z29\0\0c2..z29\0\0
+ ..controls z29\0\1c1 and z29\0\1c2..z29\0\1
+ ..controls z29\0\2c1 and z29\0\2c2..z29\0\2
+ --z29\0\3
+ ..controls z29\0\4c1 and z29\0\4c2..z29\0\4
+ --z29\0\5
+ --z29\0\6
+ --z29\0\7
+ ..controls z29\0\8c1 and z29\0\8c2..z29\0\8
+ ..controls z29\0\9c1 and z29\0\9c2..z29\0\9
+ --z29\0\10
+ --z29\0\11
+ --z29\0\12
+ --z29\0\13
+ ..controls z29\0\14c1 and z29\0\14c2..z29\0\14
+ --z29\0\15
+ ..controls z29\0\16c1 and z29\0\16c2..z29\0\16
+ ..controls z29\0\17c1 and z29\0\17c2..z29\0\17
+ ..controls z29\0\18c1 and z29\0\18c2..z29\0\18
+ ..controls z29\0\19c1 and z29\0\19c2..z29\0\19
+ ..controls z29\0\20c1 and z29\0\20c2..z29\0\20
+ ..controls z29\0\21c1 and z29\0\21c2..z29\0\21
+ ..controls z29\0\22c1 and z29\0\22c2..z29\0\22
+ ..controls z29\0\23c1 and z29\0\23c2..z29\0\23
+ ..controls z29\0\24c1 and z29\0\24c2..z29\0\24
+ ..controls z29\0\25c1 and z29\0\25c2..z29\0\25
+ ..controls z29\0\26c1 and z29\0\26c2..z29\0\26
+ ..controls z29\0\27c1 and z29\0\27c2..z29\0\27
+ --z29\0\28
+ ..controls z29\0\29c1 and z29\0\29c2..z29\0\29
+ ..controls z29\0\30c1 and z29\0\30c2..z29\0\30
+ ..controls z29\0\31c1 and z29\0\31c2..z29\0\31
+ ..controls z29\0\32c1 and z29\0\32c2..z29\0\32
+ ..controls z29\0\33c1 and z29\0\33c2..cycle;
+ proof_labels (
+ 29\0\0,
+ 29\0\1,
+ 29\0\2,
+ 29\0\3,
+ 29\0\4,
+ 29\0\5,
+ 29\0\6,
+ 29\0\7,
+ 29\0\8,
+ 29\0\9,
+ 29\0\10,
+ 29\0\11,
+ 29\0\12,
+ 29\0\13,
+ 29\0\14,
+ 29\0\15,
+ 29\0\16,
+ 29\0\17,
+ 29\0\18,
+ 29\0\19,
+ 29\0\20,
+ 29\0\21,
+ 29\0\22,
+ 29\0\23,
+ 29\0\24,
+ 29\0\25,
+ 29\0\26,
+ 29\0\27,
+ 29\0\28,
+ 29\0\29,
+ 29\0\30,
+ 29\0\31,
+ 29\0\32,
+ 29\0\33,
+);
+ apic:=currentpicture;
+endchar;
+
+def ubody =
+ z123\0\0s = (0.482u,ushiftconst-0.241u);
+ z123\0\0c1 = (1.654u,ushiftconst-2.721u);
+ z123\0\0c2 = (4.583u,ushiftconst-5.090u);
+ z123\0\0 = (7.468u,ushiftconst-4.180u);
+ z123\0\1c1 = (8.087u,ushiftconst-3.984u);
+ z123\0\1c2 = (8.798u,ushiftconst-3.538u);
+ z123\0\1 = (8.996u,ushiftconst-2.881u);
+ z123\0\2c1 = (9.509u,ushiftconst-1.178u);
+ z123\0\2c2 = (6.219u,ushiftconst-0.284u);
+ z123\0\2 = (5.541u,ushiftconst-2.409u);
+ z123\0\3c1 = (7.139u,ushiftconst-2.128u);
+ z123\0\3c2 = (7.355u,ushiftconst-2.095u);
+ z123\0\3 = (8.672u,ushiftconst-3.132u);
+ z123\0\4c1 = (4.387u,ushiftconst-4.518u);
+ z123\0\4c2 = (3.646u,ushiftconst-1.737u);
+ fill_or_unfill z123\0\0s
+ ..controls z123\0\0c1 and z123\0\0c2..z123\0\0
+ ..controls z123\0\1c1 and z123\0\1c2..z123\0\1
+ ..controls z123\0\2c1 and z123\0\2c2..z123\0\2
+ ..controls z123\0\3c1 and z123\0\3c2..z123\0\3
+ ..controls z123\0\4c1 and z123\0\4c2..cycle;
+ proof_labels (
+ 123\0\0,
+ 123\0\1,
+ 123\0\2,
+ 123\0\3,
+ 123\0\4,
+);
+enddef;
+
+beginchar (TIB_U, 9.636u#, -0.241u#, 4.577u#);
+ "vowel u, higher than standard u";
+ ushiftconst:=0u;
+ ubody;
+endchar;
+
+beginchar (TIB_UU, 9.636u#, -1.741u#, 6.077u#);
+ "vowel u, 1.5u lower than standard u";
+ ushiftconst:=-1.5u;
+ ubody;
+endchar;
+
+beginchar (TIB_UUU, 9.636u#, -3.241u#, 7.577u#);
+ "vowel u, 2x1.5u lower than standard u";
+ ushiftconst:=-1.5u*2;
+ ubody;
+endchar;
+
+beginchar (TIB_UUUU, 9.636u#, -4.741u#, 9.077u#);
+ "vowel u, 3x1.5u lower than standard u";
+ ushiftconst:=-1.5u*3;
+ ubody;
+endchar;
+
+beginchar (TIB_UUUUU, 9.636u#, -6.241u#, 10.577u#);
+ "vowel u, 4x1.5u lower than standard u";
+ ushiftconst:=-1.5u*4;
+ ubody;
+endchar;
+
+beginchar (TIB_UUUUUU, 9.636u#, -7.741u#, 12.077u#);
+ "vowel u, 5x1.5u lower than standard u";
+ ushiftconst:=-1.5u*5;
+ ubody;
+endchar;
+
+beginchar (TIB_UUUUUUU, 9.636u#, -9.241u#, 13.577u#);
+ "vowel u, 6x1.5u lower than standard u";
+ ushiftconst:=-1.5u*6;
+ ubody;
+endchar;
+
+beginchar (TIB_UUUUUUUU, 9.636u#, -10.741u#, 15.077u#);
+ "vowel u, 7x1.5u lower than standard u";
+ ushiftconst:=-1.5u*7;
+ ubody;
+endchar;
+
+beginchar (TIB_VARAU, 6.986u#, -0.241u#, 8.913u#);
+ "var.a.u";
+ z90\0\0s = (0.723u,-0.241u);
+ z90\0\0 = (0.557u,-0.964u);
+ z90\0\1c1 = (0.514u,-1.443u);
+ z90\0\1c2 = (0.630u,-1.934u);
+ z90\0\1 = (0.686u,-2.409u);
+ z90\0\2c1 = (0.873u,-3.999u);
+ z90\0\2c2 = (0.991u,-5.511u);
+ z90\0\2 = (1.671u,-6.985u);
+ z90\0\3c1 = (1.844u,-7.362u);
+ z90\0\3c2 = (2.031u,-7.785u);
+ z90\0\3 = (2.323u,-8.087u);
+ z90\0\4c1 = (2.745u,-8.523u);
+ z90\0\4c2 = (3.262u,-8.657u);
+ z90\0\4 = (3.855u,-8.649u);
+ z90\0\5c1 = (4.479u,-8.641u);
+ z90\0\5c2 = (4.987u,-8.466u);
+ z90\0\5 = (5.462u,-8.053u);
+ z90\0\6c1 = (7.613u,-6.179u);
+ z90\0\6c2 = (5.375u,-4.254u);
+ z90\0\6 = (3.985u,-5.475u);
+ z90\0\7c1 = (3.790u,-5.646u);
+ z90\0\7c2 = (3.738u,-5.815u);
+ z90\0\7 = (3.613u,-6.022u);
+ z90\0\8c1 = (4.485u,-5.842u);
+ z90\0\8c2 = (4.668u,-5.807u);
+ z90\0\8 = (5.541u,-6.022u);
+ z90\0\9c1 = (5.145u,-6.718u);
+ z90\0\9c2 = (4.572u,-7.599u);
+ z90\0\9 = (3.617u,-7.332u);
+ z90\0\10c1 = (3.091u,-7.184u);
+ z90\0\10c2 = (2.693u,-6.693u);
+ z90\0\10 = (2.400u,-6.259u);
+ z90\0\11c1 = (1.595u,-5.066u);
+ z90\0\11c2 = (1.454u,-4.030u);
+ z90\0\11 = (1.272u,-2.650u);
+ z90\0\12c1 = (1.156u,-1.771u);
+ z90\0\12c2 = (1.133u,-1.045u);
+ fill_or_unfill z90\0\0s
+ --z90\0\0
+ ..controls z90\0\1c1 and z90\0\1c2..z90\0\1
+ ..controls z90\0\2c1 and z90\0\2c2..z90\0\2
+ ..controls z90\0\3c1 and z90\0\3c2..z90\0\3
+ ..controls z90\0\4c1 and z90\0\4c2..z90\0\4
+ ..controls z90\0\5c1 and z90\0\5c2..z90\0\5
+ ..controls z90\0\6c1 and z90\0\6c2..z90\0\6
+ ..controls z90\0\7c1 and z90\0\7c2..z90\0\7
+ ..controls z90\0\8c1 and z90\0\8c2..z90\0\8
+ ..controls z90\0\9c1 and z90\0\9c2..z90\0\9
+ ..controls z90\0\10c1 and z90\0\10c2..z90\0\10
+ ..controls z90\0\11c1 and z90\0\11c2..z90\0\11
+ ..controls z90\0\12c1 and z90\0\12c2..cycle;
+ proof_labels (
+ 90\0\0,
+ 90\0\1,
+ 90\0\2,
+ 90\0\3,
+ 90\0\4,
+ 90\0\5,
+ 90\0\6,
+ 90\0\7,
+ 90\0\8,
+ 90\0\9,
+ 90\0\10,
+ 90\0\11,
+ 90\0\12,
+);
+endchar;
+
+beginchar (TIB_VARU, 9.877u#, -0.241u#, 8.913u#);
+ "var.u";
+ z91\0\0s = (0.482u,-0.241u);
+ z91\0\0 = (1.223u,-2.168u);
+ z91\0\1 = (2.039u,-5.059u);
+ z91\0\2c1 = (2.834u,-7.066u);
+ z91\0\2c2 = (4.847u,-9.259u);
+ z91\0\2 = (7.227u,-8.516u);
+ z91\0\3c1 = (8.008u,-8.272u);
+ z91\0\3c2 = (8.965u,-7.564u);
+ z91\0\3 = (9.191u,-6.744u);
+ z91\0\4c1 = (9.572u,-5.368u);
+ z91\0\4c2 = (7.845u,-4.624u);
+ z91\0\4 = (6.875u,-5.475u);
+ z91\0\5c1 = (6.681u,-5.646u);
+ z91\0\5c2 = (6.629u,-5.815u);
+ z91\0\5 = (6.504u,-6.022u);
+ z91\0\6c1 = (7.375u,-5.842u);
+ z91\0\6c2 = (7.559u,-5.807u);
+ z91\0\6 = (8.431u,-6.022u);
+ z91\0\7 = (8.431u,-6.548u);
+ z91\0\8c1 = (6.726u,-7.298u);
+ z91\0\8c2 = (6.069u,-7.840u);
+ z91\0\8 = (4.337u,-6.548u);
+ z91\0\9c1 = (1.649u,-4.656u);
+ z91\0\9c2 = (2.252u,-1.995u);
+ z91\0\9 = (1.271u,-0.793u);
+ z91\0\10c1 = (1.032u,-0.500u);
+ z91\0\10c2 = (0.798u,-0.410u);
+ fill_or_unfill z91\0\0s
+ --z91\0\0
+ --z91\0\1
+ ..controls z91\0\2c1 and z91\0\2c2..z91\0\2
+ ..controls z91\0\3c1 and z91\0\3c2..z91\0\3
+ ..controls z91\0\4c1 and z91\0\4c2..z91\0\4
+ ..controls z91\0\5c1 and z91\0\5c2..z91\0\5
+ ..controls z91\0\6c1 and z91\0\6c2..z91\0\6
+ --z91\0\7
+ ..controls z91\0\8c1 and z91\0\8c2..z91\0\8
+ ..controls z91\0\9c1 and z91\0\9c2..z91\0\9
+ ..controls z91\0\10c1 and z91\0\10c2..cycle;
+ proof_labels (
+ 91\0\0,
+ 91\0\1,
+ 91\0\2,
+ 91\0\3,
+ 91\0\4,
+ 91\0\5,
+ 91\0\6,
+ 91\0\7,
+ 91\0\8,
+ 91\0\9,
+ 91\0\10,
+);
+endchar;
+
+beginchar (TIB_VUU, 9.877u#, -0.241u#, 8.913u#);
+ "vuu";
+ z88\0\0s = (0.482u,-0.241u);
+ z88\0\0 = (1.223u,-2.168u);
+ z88\0\1c1 = (1.691u,-3.691u);
+ z88\0\1c2 = (1.839u,-5.158u);
+ z88\0\1 = (2.803u,-6.504u);
+ z88\0\2c1 = (4.054u,-8.251u);
+ z88\0\2c2 = (6.197u,-9.486u);
+ z88\0\2 = (8.180u,-8.034u);
+ z88\0\3c1 = (8.676u,-7.671u);
+ z88\0\3c2 = (9.162u,-7.140u);
+ z88\0\3 = (9.239u,-6.505u);
+ z88\0\4c1 = (9.321u,-5.822u);
+ z88\0\4c2 = (8.843u,-4.857u);
+ z88\0\4 = (8.431u,-4.336u);
+ z88\0\5c1 = (8.762u,-3.889u);
+ z88\0\5c2 = (9.133u,-3.448u);
+ z88\0\5 = (9.262u,-2.891u);
+ z88\0\6c1 = (9.429u,-2.173u);
+ z88\0\6c2 = (9.138u,-1.548u);
+ z88\0\6 = (8.618u,-1.058u);
+ z88\0\7c1 = (6.967u,0.498u);
+ z88\0\7c2 = (3.930u,-0.352u);
+ z88\0\7 = (3.511u,-2.650u);
+ z88\0\8c1 = (3.424u,-3.124u);
+ z88\0\8c2 = (3.462u,-3.585u);
+ z88\0\8 = (3.789u,-3.965u);
+ z88\0\9c1 = (3.958u,-4.161u);
+ z88\0\9c2 = (4.129u,-4.212u);
+ z88\0\9 = (4.281u,-4.336u);
+ z88\0\10c1 = (4.238u,-3.862u);
+ z88\0\10c2 = (4.103u,-3.389u);
+ z88\0\10 = (4.281u,-2.904u);
+ z88\0\11c1 = (4.619u,-1.364u);
+ z88\0\11c2 = (7.705u,-1.015u);
+ z88\0\11 = (8.425u,-2.460u);
+ z88\0\12c1 = (8.624u,-2.874u);
+ z88\0\12c2 = (8.489u,-3.417u);
+ z88\0\12 = (8.425u,-3.854u);
+ z88\0\13c1 = (7.750u,-3.405u);
+ z88\0\13c2 = (6.718u,-2.818u);
+ z88\0\13 = (5.912u,-3.373u);
+ z88\0\14c1 = (5.703u,-3.517u);
+ z88\0\14c2 = (5.669u,-3.663u);
+ z88\0\14 = (5.541u,-3.854u);
+ z88\0\15c1 = (7.060u,-3.691u);
+ z88\0\15c2 = (7.334u,-4.065u);
+ z88\0\15 = (8.431u,-5.059u);
+ z88\0\16c1 = (7.414u,-5.119u);
+ z88\0\16c2 = (7.054u,-5.108u);
+ z88\0\16 = (6.504u,-6.022u);
+ z88\0\17c1 = (7.375u,-5.842u);
+ z88\0\17c2 = (7.559u,-5.807u);
+ z88\0\17 = (8.431u,-6.022u);
+ z88\0\18 = (8.431u,-6.548u);
+ z88\0\19c1 = (6.726u,-7.298u);
+ z88\0\19c2 = (6.069u,-7.840u);
+ z88\0\19 = (4.337u,-6.548u);
+ z88\0\20c1 = (1.649u,-4.656u);
+ z88\0\20c2 = (2.252u,-1.995u);
+ z88\0\20 = (1.271u,-0.793u);
+ z88\0\21c1 = (1.032u,-0.500u);
+ z88\0\21c2 = (0.798u,-0.410u);
+ fill_or_unfill z88\0\0s
+ --z88\0\0
+ ..controls z88\0\1c1 and z88\0\1c2..z88\0\1
+ ..controls z88\0\2c1 and z88\0\2c2..z88\0\2
+ ..controls z88\0\3c1 and z88\0\3c2..z88\0\3
+ ..controls z88\0\4c1 and z88\0\4c2..z88\0\4
+ ..controls z88\0\5c1 and z88\0\5c2..z88\0\5
+ ..controls z88\0\6c1 and z88\0\6c2..z88\0\6
+ ..controls z88\0\7c1 and z88\0\7c2..z88\0\7
+ ..controls z88\0\8c1 and z88\0\8c2..z88\0\8
+ ..controls z88\0\9c1 and z88\0\9c2..z88\0\9
+ ..controls z88\0\10c1 and z88\0\10c2..z88\0\10
+ ..controls z88\0\11c1 and z88\0\11c2..z88\0\11
+ ..controls z88\0\12c1 and z88\0\12c2..z88\0\12
+ ..controls z88\0\13c1 and z88\0\13c2..z88\0\13
+ ..controls z88\0\14c1 and z88\0\14c2..z88\0\14
+ ..controls z88\0\15c1 and z88\0\15c2..z88\0\15
+ ..controls z88\0\16c1 and z88\0\16c2..z88\0\16
+ ..controls z88\0\17c1 and z88\0\17c2..z88\0\17
+ --z88\0\18
+ ..controls z88\0\19c1 and z88\0\19c2..z88\0\19
+ ..controls z88\0\20c1 and z88\0\20c2..z88\0\20
+ ..controls z88\0\21c1 and z88\0\21c2..cycle;
+ proof_labels (
+ 88\0\0,
+ 88\0\1,
+ 88\0\2,
+ 88\0\3,
+ 88\0\4,
+ 88\0\5,
+ 88\0\6,
+ 88\0\7,
+ 88\0\8,
+ 88\0\9,
+ 88\0\10,
+ 88\0\11,
+ 88\0\12,
+ 88\0\13,
+ 88\0\14,
+ 88\0\15,
+ 88\0\16,
+ 88\0\17,
+ 88\0\18,
+ 88\0\19,
+ 88\0\20,
+ 88\0\21,
+);
+endchar;
+
+% Raise upper vowels by 7u!
+
+beginchar (TIB_O, 14.936u#, 13.022u#, 0.000u#);
+ "vowel o";
+ z125\0\0s = (13.972u,13.022u);
+ z125\0\0c1 = (12.070u,10.556u);
+ z125\0\0c2 = (9.027u,11.759u);
+ z125\0\0 = (6.745u,9.168u);
+ z125\0\1c1 = (4.683u,10.843u);
+ z125\0\1c2 = (1.951u,12.003u);
+ z125\0\1 = (0.482u,8.927u);
+ z125\0\2c1 = (3.406u,9.190u);
+ z125\0\2c2 = (3.913u,10.022u);
+ z125\0\2 = (6.504u,7.723u);
+ z125\0\3c1 = (7.208u,8.154u);
+ z125\0\3c2 = (7.905u,8.671u);
+ z125\0\3 = (8.672u,8.981u);
+ z125\0\4c1 = (10.951u,9.900u);
+ z125\0\4c2 = (13.938u,9.830u);
+ z125\0\4 = (14.454u,13.022u);
+ fill_or_unfill z125\0\0s
+ ..controls z125\0\0c1 and z125\0\0c2..z125\0\0
+ ..controls z125\0\1c1 and z125\0\1c2..z125\0\1
+ ..controls z125\0\2c1 and z125\0\2c2..z125\0\2
+ ..controls z125\0\3c1 and z125\0\3c2..z125\0\3
+ ..controls z125\0\4c1 and z125\0\4c2..z125\0\4
+ --cycle;
+ proof_labels (
+ 125\0\0,
+ 125\0\1,
+ 125\0\2,
+ 125\0\3,
+ 125\0\4,
+ 125\0\5,
+);
+ opic:=currentpicture;
+endchar;
+
+beginchar (TIB_I, 9.395u#, 12.059u#, 0.000u#);
+ "vowel i";
+ z126\0\0s = ( 4.336u, 9.168u);
+ z126\0\0c1 = ( 2.878u, 9.240u);
+ z126\0\0c2 = ( 2.486u, 9.536u);
+ z126\0\0 = ( 1.204u,10.132u);
+ z126\0\1 = ( 1.204u,10.613u);
+ z126\0\2c1 = ( 4.600u,11.436u);
+ z126\0\2c2 = ( 6.130u, 9.045u);
+ z126\0\2 = ( 8.913u, 7.964u);
+ z126\0\3c1 = ( 7.658u, 9.717u);
+ z126\0\3c2 = ( 4.142u,13.116u);
+ z126\0\3 = ( 1.697u,11.813u);
+ z126\0\4c1 = ( 1.173u,11.534u);
+ z126\0\4c2 = ( 0.706u,10.975u);
+ z126\0\4 = ( 0.636u,10.372u);
+ z126\0\5c1 = ( 0.419u, 8.511u);
+ z126\0\5c2 = ( 3.648u, 7.203u);
+ fill_or_unfill z126\0\0s
+ ..controls z126\0\0c1 and z126\0\0c2..z126\0\0
+ --z126\0\1
+ ..controls z126\0\2c1 and z126\0\2c2..z126\0\2
+ ..controls z126\0\3c1 and z126\0\3c2..z126\0\3
+ ..controls z126\0\4c1 and z126\0\4c2..z126\0\4
+ ..controls z126\0\5c1 and z126\0\5c2..cycle;
+ proof_labels (
+ 126\0\0,
+ 126\0\1,
+ 126\0\2,
+ 126\0\3,
+ 126\0\4,
+ 126\0\5,
+);
+endchar;
+
+beginchar (TIB_E, 8.190u#, 11.818u#, 0.000u#);
+ "vowel e";
+ z127\0\0s = (0.482u,10.613u);
+ z127\0\0c1 = (1.927u,10.496u);
+ z127\0\0c2 = (3.758u,10.307u);
+ z127\0\0 = (5.059u, 9.651u);
+ z127\0\1c1 = (6.032u, 9.159u);
+ z127\0\1c2 = (6.667u, 8.301u);
+ z127\0\1 = (7.709u, 7.964u);
+ z127\0\2c1 = (6.861u, 9.757u);
+ z127\0\2c2 = (1.619u,13.944u);
+ fill_or_unfill z127\0\0s
+ ..controls z127\0\0c1 and z127\0\0c2..z127\0\0
+ ..controls z127\0\1c1 and z127\0\1c2..z127\0\1
+ ..controls z127\0\2c1 and z127\0\2c2..cycle;
+ proof_labels (
+ 127\0\0,
+ 127\0\1,
+ 127\0\2,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The following definition was taken from Norbert Preining's
+% Omega Tibetan.
+%
+beginchar (TIB_OM, 13.972u#, 15.504u#, 2.168u#);
+ "om";
+ currentpicture := currentpicture + apic
+ + (opic shifted (-0.482u,-0.255u))
+ + (npic shifted (3.5u,9u));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The following definitions were taken from Sam Sirlin's
+% Tibetan, v. 0.6.
+%
+beginchar (TIB_VOM, 14.936u#, 7.709u#, 0.000u#);
+ "vom";
+ z109\0\0s = (6.033u,7.561u);
+ z109\0\0c1 = (5.793u,7.389u);
+ z109\0\0c2 = (5.608u,7.328u);
+ z109\0\0 = (5.403u,7.123u);
+ z109\0\1c1 = (4.190u,5.910u);
+ z109\0\1c2 = (5.317u,3.846u);
+ z109\0\1 = (6.982u,4.209u);
+ z109\0\2c1 = (8.800u,4.605u);
+ z109\0\2c2 = (8.800u,7.198u);
+ z109\0\2 = (6.982u,7.561u);
+ z109\0\3c1 = (6.617u,7.675u);
+ z109\0\3c2 = (6.382u,7.594u);
+ z109\1\0s = (6.511u,7.069u);
+ z109\1\0c1 = (6.773u,7.034u);
+ z109\1\0c2 = (6.920u,7.070u);
+ z109\1\0 = (7.173u,6.934u);
+ z109\1\1c1 = (8.093u,6.435u);
+ z109\1\1c2 = (7.960u,5.090u);
+ z109\1\1 = (6.961u,4.781u);
+ z109\1\2c1 = (5.740u,4.402u);
+ z109\1\2c2 = (4.781u,6.059u);
+ z109\1\2 = (6.077u,6.934u);
+ z109\2\0s = (13.972u,6.022u);
+ z109\2\0c1 = (13.668u,5.628u);
+ z109\2\0c2 = (13.424u,5.301u);
+ z109\2\0 = (12.998u,5.020u);
+ z109\2\1c1 = (12.530u,4.712u);
+ z109\2\1c2 = (11.863u,4.519u);
+ z109\2\1 = (11.322u,4.373u);
+ z109\2\2c1 = (9.491u,3.881u);
+ z109\2\2c2 = (8.083u,3.687u);
+ z109\2\2 = (6.745u,2.168u);
+ z109\2\3c1 = (4.683u,3.843u);
+ z109\2\3c2 = (1.951u,5.003u);
+ z109\2\3 = (0.482u,1.927u);
+ z109\2\4 = (2.650u,2.328u);
+ z109\2\5c1 = (4.144u,2.526u);
+ z109\2\5c2 = (5.443u,1.665u);
+ z109\2\5 = (6.504u,0.723u);
+ z109\2\6c1 = (7.208u,1.154u);
+ z109\2\6c2 = (7.905u,1.671u);
+ z109\2\6 = (8.672u,1.981u);
+ z109\2\7 = (11.081u,2.598u);
+ z109\2\8c1 = (12.198u,2.962u);
+ z109\2\8c2 = (13.670u,4.004u);
+ z109\2\8 = (14.208u,5.059u);
+ z109\2\9c1 = (14.374u,5.384u);
+ z109\2\9c2 = (14.398u,5.674u);
+ z109\2\9 = (14.454u,6.022u);
+ fill_or_unfill z109\0\0s
+ ..controls z109\0\0c1 and z109\0\0c2..z109\0\0
+ ..controls z109\0\1c1 and z109\0\1c2..z109\0\1
+ ..controls z109\0\2c1 and z109\0\2c2..z109\0\2
+ ..controls z109\0\3c1 and z109\0\3c2..cycle;
+ fill_or_unfill z109\1\0s
+ ..controls z109\1\0c1 and z109\1\0c2..z109\1\0
+ ..controls z109\1\1c1 and z109\1\1c2..z109\1\1
+ ..controls z109\1\2c1 and z109\1\2c2..z109\1\2
+ --cycle;
+ fill_or_unfill z109\2\0s
+ ..controls z109\2\0c1 and z109\2\0c2..z109\2\0
+ ..controls z109\2\1c1 and z109\2\1c2..z109\2\1
+ ..controls z109\2\2c1 and z109\2\2c2..z109\2\2
+ ..controls z109\2\3c1 and z109\2\3c2..z109\2\3
+ --z109\2\4
+ ..controls z109\2\5c1 and z109\2\5c2..z109\2\5
+ ..controls z109\2\6c1 and z109\2\6c2..z109\2\6
+ --z109\2\7
+ ..controls z109\2\8c1 and z109\2\8c2..z109\2\8
+ ..controls z109\2\9c1 and z109\2\9c2..z109\2\9
+ --cycle;
+ proof_labels (
+ 109\0\0,
+ 109\0\1,
+ 109\0\2,
+ 109\0\3,
+ 109\1\0,
+ 109\1\1,
+ 109\1\2,
+ 109\1\3,
+ 109\2\0,
+ 109\2\1,
+ 109\2\2,
+ 109\2\3,
+ 109\2\4,
+ 109\2\5,
+ 109\2\6,
+ 109\2\7,
+ 109\2\8,
+ 109\2\9,
+ 109\2\10,
+);
+endchar;
+
+beginchar (TIB_VIM, 11.563u#, 6.022u#, 0.000u#);
+ "vim";
+ z110\0\0s = (8.683u,5.875u);
+ z110\0\0c1 = (8.443u,5.703u);
+ z110\0\0c2 = (8.258u,5.642u);
+ z110\0\0 = (8.053u,5.437u);
+ z110\0\1c1 = (6.840u,4.224u);
+ z110\0\1c2 = (7.967u,2.160u);
+ z110\0\1 = (9.632u,2.523u);
+ z110\0\2c1 = (11.450u,2.919u);
+ z110\0\2c2 = (11.450u,5.512u);
+ z110\0\2 = (9.632u,5.875u);
+ z110\0\3c1 = (9.267u,5.988u);
+ z110\0\3c2 = (9.032u,5.908u);
+ z110\1\0s = (9.161u,5.383u);
+ z110\1\0c1 = (9.423u,5.347u);
+ z110\1\0c2 = (9.570u,5.384u);
+ z110\1\0 = (9.823u,5.247u);
+ z110\1\1c1 = (10.743u,4.748u);
+ z110\1\1c2 = (10.610u,3.404u);
+ z110\1\1 = (9.611u,3.094u);
+ z110\1\2c1 = (8.390u,2.716u);
+ z110\1\2c2 = (7.431u,4.372u);
+ z110\1\2 = (8.727u,5.247u);
+ z110\2\0s = (4.336u,2.168u);
+ z110\2\0c1 = (2.878u,2.240u);
+ z110\2\0c2 = (2.486u,2.536u);
+ z110\2\0 = (1.204u,3.132u);
+ z110\2\1 = (1.204u,3.613u);
+ z110\2\2c1 = (1.777u,3.752u);
+ z110\2\2c2 = (2.296u,3.866u);
+ z110\2\2 = (2.891u,3.807u);
+ z110\2\3c1 = (3.987u,3.699u);
+ z110\2\3c2 = (5.568u,2.932u);
+ z110\2\3 = (6.504u,2.353u);
+ z110\2\4c1 = (7.322u,1.848u);
+ z110\2\4c2 = (8.009u,1.315u);
+ z110\2\4 = (8.913u,0.964u);
+ z110\2\5c1 = (7.635u,2.749u);
+ z110\2\5c2 = (5.448u,4.857u);
+ z110\2\5 = (3.132u,5.033u);
+ z110\2\6c1 = (2.658u,5.069u);
+ z110\2\6c2 = (2.124u,5.040u);
+ z110\2\6 = (1.697u,4.813u);
+ z110\2\7c1 = (1.173u,4.534u);
+ z110\2\7c2 = (0.706u,3.975u);
+ z110\2\7 = (0.636u,3.372u);
+ z110\2\8c1 = (0.419u,1.512u);
+ z110\2\8c2 = (3.286u,0.630u);
+ z110\2\8 = (4.095u,1.587u);
+ z110\2\9c1 = (4.253u,1.774u);
+ z110\2\9c2 = (4.261u,1.954u);
+ fill_or_unfill z110\0\0s
+ ..controls z110\0\0c1 and z110\0\0c2..z110\0\0
+ ..controls z110\0\1c1 and z110\0\1c2..z110\0\1
+ ..controls z110\0\2c1 and z110\0\2c2..z110\0\2
+ ..controls z110\0\3c1 and z110\0\3c2..cycle;
+ fill_or_unfill z110\1\0s
+ ..controls z110\1\0c1 and z110\1\0c2..z110\1\0
+ ..controls z110\1\1c1 and z110\1\1c2..z110\1\1
+ ..controls z110\1\2c1 and z110\1\2c2..z110\1\2
+ --cycle;
+ fill_or_unfill z110\2\0s
+ ..controls z110\2\0c1 and z110\2\0c2..z110\2\0
+ --z110\2\1
+ ..controls z110\2\2c1 and z110\2\2c2..z110\2\2
+ ..controls z110\2\3c1 and z110\2\3c2..z110\2\3
+ ..controls z110\2\4c1 and z110\2\4c2..z110\2\4
+ ..controls z110\2\5c1 and z110\2\5c2..z110\2\5
+ ..controls z110\2\6c1 and z110\2\6c2..z110\2\6
+ ..controls z110\2\7c1 and z110\2\7c2..z110\2\7
+ ..controls z110\2\8c1 and z110\2\8c2..z110\2\8
+ ..controls z110\2\9c1 and z110\2\9c2..cycle;
+ proof_labels (
+ 110\0\0,
+ 110\0\1,
+ 110\0\2,
+ 110\0\3,
+ 110\1\0,
+ 110\1\1,
+ 110\1\2,
+ 110\1\3,
+ 110\2\0,
+ 110\2\1,
+ 110\2\2,
+ 110\2\3,
+ 110\2\4,
+ 110\2\5,
+ 110\2\6,
+ 110\2\7,
+ 110\2\8,
+ 110\2\9,
+);
+endchar;
+
+beginchar (TIB_XIM, 13.731u#, 5.059u#, 0.000u#);
+ "vixm";
+ z108\0\0s = (0.482u,0.964u);
+ z108\0\0c1 = (1.386u,1.315u);
+ z108\0\0c2 = (2.073u,1.848u);
+ z108\0\0 = (2.891u,2.353u);
+ z108\0\1c1 = (3.827u,2.932u);
+ z108\0\1c2 = (5.408u,3.699u);
+ z108\0\1 = (6.504u,3.807u);
+ z108\0\2c1 = (7.099u,3.866u);
+ z108\0\2c2 = (7.618u,3.752u);
+ z108\0\2 = (8.190u,3.613u);
+ z108\0\3 = (8.190u,3.132u);
+ z108\0\4c1 = (6.909u,2.536u);
+ z108\0\4c2 = (6.517u,2.240u);
+ z108\0\4 = (5.059u,2.168u);
+ z108\0\5c1 = (5.134u,1.954u);
+ z108\0\5c2 = (5.142u,1.774u);
+ z108\0\5 = (5.300u,1.587u);
+ z108\0\6c1 = (6.109u,0.630u);
+ z108\0\6c2 = (8.976u,1.512u);
+ z108\0\6 = (8.759u,3.372u);
+ z108\0\7c1 = (8.689u,3.975u);
+ z108\0\7c2 = (8.222u,4.534u);
+ z108\0\7 = (7.698u,4.813u);
+ z108\0\8c1 = (7.271u,5.040u);
+ z108\0\8c2 = (6.737u,5.069u);
+ z108\0\8 = (6.263u,5.033u);
+ z108\0\9c1 = (3.947u,4.857u);
+ z108\0\9c2 = (1.760u,2.749u);
+ z108\1\0s = (10.851u,4.911u);
+ z108\1\0c1 = (10.611u,4.739u);
+ z108\1\0c2 = (10.426u,4.678u);
+ z108\1\0 = (10.221u,4.473u);
+ z108\1\1c1 = (9.008u,3.260u);
+ z108\1\1c2 = (10.135u,1.196u);
+ z108\1\1 = (11.800u,1.559u);
+ z108\1\2c1 = (13.618u,1.956u);
+ z108\1\2c2 = (13.618u,4.549u);
+ z108\1\2 = (11.800u,4.911u);
+ z108\1\3c1 = (11.435u,5.025u);
+ z108\1\3c2 = (11.200u,4.944u);
+ z108\2\0s = (11.329u,4.419u);
+ z108\2\0c1 = (11.591u,4.384u);
+ z108\2\0c2 = (11.738u,4.420u);
+ z108\2\0 = (11.991u,4.284u);
+ z108\2\1c1 = (12.912u,3.785u);
+ z108\2\1c2 = (12.778u,2.440u);
+ z108\2\1 = (11.779u,2.131u);
+ z108\2\2c1 = (10.558u,1.752u);
+ z108\2\2c2 = (9.599u,3.409u);
+ z108\2\2 = (10.895u,4.284u);
+ fill_or_unfill z108\0\0s
+ ..controls z108\0\0c1 and z108\0\0c2..z108\0\0
+ ..controls z108\0\1c1 and z108\0\1c2..z108\0\1
+ ..controls z108\0\2c1 and z108\0\2c2..z108\0\2
+ --z108\0\3
+ ..controls z108\0\4c1 and z108\0\4c2..z108\0\4
+ ..controls z108\0\5c1 and z108\0\5c2..z108\0\5
+ ..controls z108\0\6c1 and z108\0\6c2..z108\0\6
+ ..controls z108\0\7c1 and z108\0\7c2..z108\0\7
+ ..controls z108\0\8c1 and z108\0\8c2..z108\0\8
+ ..controls z108\0\9c1 and z108\0\9c2..cycle;
+ fill_or_unfill z108\1\0s
+ ..controls z108\1\0c1 and z108\1\0c2..z108\1\0
+ ..controls z108\1\1c1 and z108\1\1c2..z108\1\1
+ ..controls z108\1\2c1 and z108\1\2c2..z108\1\2
+ ..controls z108\1\3c1 and z108\1\3c2..cycle;
+ fill_or_unfill z108\2\0s
+ ..controls z108\2\0c1 and z108\2\0c2..z108\2\0
+ ..controls z108\2\1c1 and z108\2\1c2..z108\2\1
+ ..controls z108\2\2c1 and z108\2\2c2..z108\2\2
+ --cycle;
+ proof_labels (
+ 108\0\0,
+ 108\0\1,
+ 108\0\2,
+ 108\0\3,
+ 108\0\4,
+ 108\0\5,
+ 108\0\6,
+ 108\0\7,
+ 108\0\8,
+ 108\0\9,
+ 108\1\0,
+ 108\1\1,
+ 108\1\2,
+ 108\1\3,
+ 108\2\0,
+ 108\2\1,
+ 108\2\2,
+ 108\2\3,
+);
+endchar;
+
+beginchar (TIB_VEM, 10.600u#, 6.022u#, 0.000u#);
+ "vem";
+ z111\0\0s = (7.719u,5.875u);
+ z111\0\0c1 = (7.479u,5.703u);
+ z111\0\0c2 = (7.295u,5.642u);
+ z111\0\0 = (7.090u,5.437u);
+ z111\0\1c1 = (5.876u,4.224u);
+ z111\0\1c2 = (7.003u,2.160u);
+ z111\0\1 = (8.669u,2.523u);
+ z111\0\2c1 = (10.486u,2.919u);
+ z111\0\2c2 = (10.486u,5.512u);
+ z111\0\2 = (8.669u,5.875u);
+ z111\0\3c1 = (8.303u,5.988u);
+ z111\0\3c2 = (8.069u,5.908u);
+ z111\1\0s = (8.197u,5.383u);
+ z111\1\0c1 = (8.459u,5.347u);
+ z111\1\0c2 = (8.607u,5.384u);
+ z111\1\0 = (8.859u,5.247u);
+ z111\1\1c1 = (9.780u,4.748u);
+ z111\1\1c2 = (9.646u,3.404u);
+ z111\1\1 = (8.647u,3.094u);
+ z111\1\2c1 = (7.426u,2.716u);
+ z111\1\2c2 = (6.467u,4.372u);
+ z111\1\2 = (7.763u,5.247u);
+ z111\2\0s = (0.482u,3.613u);
+ z111\2\0c1 = (1.927u,3.496u);
+ z111\2\0c2 = (3.758u,3.307u);
+ z111\2\0 = (5.059u,2.651u);
+ z111\2\1c1 = (6.032u,2.159u);
+ z111\2\1c2 = (6.667u,1.301u);
+ z111\2\1 = (7.709u,0.964u);
+ z111\2\2c1 = (7.438u,1.536u);
+ z111\2\2c2 = (7.179u,1.938u);
+ z111\2\2 = (6.732u,2.399u);
+ z111\2\3c1 = (5.683u,3.483u);
+ z111\2\3c2 = (2.062u,6.001u);
+ z111\2\3 = (0.717u,4.202u);
+ z111\2\4c1 = (0.572u,4.007u);
+ z111\2\4c2 = (0.555u,3.829u);
+ fill_or_unfill z111\0\0s
+ ..controls z111\0\0c1 and z111\0\0c2..z111\0\0
+ ..controls z111\0\1c1 and z111\0\1c2..z111\0\1
+ ..controls z111\0\2c1 and z111\0\2c2..z111\0\2
+ ..controls z111\0\3c1 and z111\0\3c2..cycle;
+ fill_or_unfill z111\1\0s
+ ..controls z111\1\0c1 and z111\1\0c2..z111\1\0
+ ..controls z111\1\1c1 and z111\1\1c2..z111\1\1
+ ..controls z111\1\2c1 and z111\1\2c2..z111\1\2
+ --cycle;
+ fill_or_unfill z111\2\0s
+ ..controls z111\2\0c1 and z111\2\0c2..z111\2\0
+ ..controls z111\2\1c1 and z111\2\1c2..z111\2\1
+ ..controls z111\2\2c1 and z111\2\2c2..z111\2\2
+ ..controls z111\2\3c1 and z111\2\3c2..z111\2\3
+ ..controls z111\2\4c1 and z111\2\4c2..cycle;
+ proof_labels (
+ 111\0\0,
+ 111\0\1,
+ 111\0\2,
+ 111\0\3,
+ 111\1\0,
+ 111\1\1,
+ 111\1\2,
+ 111\1\3,
+ 111\2\0,
+ 111\2\1,
+ 111\2\2,
+ 111\2\3,
+ 111\2\4,
+);
+endchar;
+
+beginchar (TIB_XI, 9.395u#, 5.059u#, 0.000u#);
+ "vix";
+ z124\0\0s = (0.482u,0.964u);
+ z124\0\0c1 = (1.386u,1.315u);
+ z124\0\0c2 = (2.073u,1.848u);
+ z124\0\0 = (2.891u,2.353u);
+ z124\0\1c1 = (3.827u,2.932u);
+ z124\0\1c2 = (5.408u,3.699u);
+ z124\0\1 = (6.504u,3.807u);
+ z124\0\2c1 = (7.099u,3.866u);
+ z124\0\2c2 = (7.618u,3.752u);
+ z124\0\2 = (8.190u,3.613u);
+ z124\0\3 = (8.190u,3.132u);
+ z124\0\4c1 = (6.909u,2.536u);
+ z124\0\4c2 = (6.517u,2.240u);
+ z124\0\4 = (5.059u,2.168u);
+ z124\0\5c1 = (5.134u,1.954u);
+ z124\0\5c2 = (5.142u,1.774u);
+ z124\0\5 = (5.300u,1.587u);
+ z124\0\6c1 = (6.109u,0.630u);
+ z124\0\6c2 = (8.976u,1.512u);
+ z124\0\6 = (8.759u,3.372u);
+ z124\0\7c1 = (8.689u,3.975u);
+ z124\0\7c2 = (8.222u,4.534u);
+ z124\0\7 = (7.698u,4.813u);
+ z124\0\8c1 = (7.271u,5.040u);
+ z124\0\8c2 = (6.737u,5.069u);
+ z124\0\8 = (6.263u,5.033u);
+ z124\0\9c1 = (3.947u,4.857u);
+ z124\0\9c2 = (1.760u,2.749u);
+ fill_or_unfill z124\0\0s
+ ..controls z124\0\0c1 and z124\0\0c2..z124\0\0
+ ..controls z124\0\1c1 and z124\0\1c2..z124\0\1
+ ..controls z124\0\2c1 and z124\0\2c2..z124\0\2
+ --z124\0\3
+ ..controls z124\0\4c1 and z124\0\4c2..z124\0\4
+ ..controls z124\0\5c1 and z124\0\5c2..z124\0\5
+ ..controls z124\0\6c1 and z124\0\6c2..z124\0\6
+ ..controls z124\0\7c1 and z124\0\7c2..z124\0\7
+ ..controls z124\0\8c1 and z124\0\8c2..z124\0\8
+ ..controls z124\0\9c1 and z124\0\9c2..cycle;
+ proof_labels (
+ 124\0\0,
+ 124\0\1,
+ 124\0\2,
+ 124\0\3,
+ 124\0\4,
+ 124\0\5,
+ 124\0\6,
+ 124\0\7,
+ 124\0\8,
+ 124\0\9,
+);
+endchar;
+
+beginchar (TIB_OO, 14.936u#, 7.468u#, 0.000u#);
+ "voo";
+ z93\0\0s = (13.972u,7.468u);
+ z93\0\0c1 = (13.730u,7.166u);
+ z93\0\0c2 = (13.536u,6.900u);
+ z93\0\0 = (13.222u,6.660u);
+ z93\0\1c1 = (12.720u,6.276u);
+ z93\0\1c2 = (12.158u,6.103u);
+ z93\0\1 = (11.563u,5.924u);
+ z93\0\2c1 = (9.550u,5.318u);
+ z93\0\2c2 = (8.258u,5.334u);
+ z93\0\2 = (6.745u,3.613u);
+ z93\0\3c1 = (5.500u,4.726u);
+ z93\0\3c2 = (4.618u,5.345u);
+ z93\0\3 = (2.891u,5.294u);
+ z93\0\4c1 = (2.339u,5.278u);
+ z93\0\4c2 = (1.929u,5.233u);
+ z93\0\4 = (1.456u,4.915u);
+ z93\0\5c1 = (1.033u,4.630u);
+ z93\0\5c2 = (0.778u,4.254u);
+ z93\0\5 = (0.482u,3.854u);
+ z93\0\6 = (2.650u,4.261u);
+ z93\0\7c1 = (4.161u,4.432u);
+ z93\0\7c2 = (5.426u,3.606u);
+ z93\0\7 = (6.504u,2.650u);
+ z93\0\8c1 = (7.285u,3.128u);
+ z93\0\8c2 = (8.051u,3.695u);
+ z93\0\8 = (8.913u,4.016u);
+ z93\0\9 = (10.840u,4.460u);
+ z93\0\10c1 = (12.401u,4.871u);
+ z93\0\10c2 = (13.770u,6.023u);
+ z93\0\10 = (14.454u,7.468u);
+ z93\1\0s = (13.972u,5.541u);
+ z93\1\0c1 = (13.730u,5.238u);
+ z93\1\0c2 = (13.536u,4.974u);
+ z93\1\0 = (13.222u,4.732u);
+ z93\1\1c1 = (11.329u,3.270u);
+ z93\1\1c2 = (8.904u,4.137u);
+ z93\1\1 = (6.745u,1.686u);
+ z93\1\2c1 = (5.500u,2.799u);
+ z93\1\2c2 = (4.618u,3.418u);
+ z93\1\2 = (2.891u,3.367u);
+ z93\1\3c1 = (2.339u,3.351u);
+ z93\1\3c2 = (1.929u,3.306u);
+ z93\1\3 = (1.456u,2.988u);
+ z93\1\4c1 = (1.033u,2.703u);
+ z93\1\4c2 = (0.778u,2.326u);
+ z93\1\4 = (0.482u,1.927u);
+ z93\1\5 = (2.650u,2.328u);
+ z93\1\6c1 = (4.144u,2.526u);
+ z93\1\6c2 = (5.443u,1.665u);
+ z93\1\6 = (6.504u,0.723u);
+ z93\1\7c1 = (7.208u,1.154u);
+ z93\1\7c2 = (7.905u,1.671u);
+ z93\1\7 = (8.672u,1.981u);
+ z93\1\8 = (10.840u,2.527u);
+ z93\1\9c1 = (12.405u,2.969u);
+ z93\1\9c2 = (13.761u,4.077u);
+ z93\1\9 = (14.454u,5.541u);
+ fill_or_unfill z93\0\0s
+ ..controls z93\0\0c1 and z93\0\0c2..z93\0\0
+ ..controls z93\0\1c1 and z93\0\1c2..z93\0\1
+ ..controls z93\0\2c1 and z93\0\2c2..z93\0\2
+ ..controls z93\0\3c1 and z93\0\3c2..z93\0\3
+ ..controls z93\0\4c1 and z93\0\4c2..z93\0\4
+ ..controls z93\0\5c1 and z93\0\5c2..z93\0\5
+ --z93\0\6
+ ..controls z93\0\7c1 and z93\0\7c2..z93\0\7
+ ..controls z93\0\8c1 and z93\0\8c2..z93\0\8
+ --z93\0\9
+ ..controls z93\0\10c1 and z93\0\10c2..z93\0\10
+ --cycle;
+ fill_or_unfill z93\1\0s
+ ..controls z93\1\0c1 and z93\1\0c2..z93\1\0
+ ..controls z93\1\1c1 and z93\1\1c2..z93\1\1
+ ..controls z93\1\2c1 and z93\1\2c2..z93\1\2
+ ..controls z93\1\3c1 and z93\1\3c2..z93\1\3
+ ..controls z93\1\4c1 and z93\1\4c2..z93\1\4
+ --z93\1\5
+ ..controls z93\1\6c1 and z93\1\6c2..z93\1\6
+ ..controls z93\1\7c1 and z93\1\7c2..z93\1\7
+ --z93\1\8
+ ..controls z93\1\9c1 and z93\1\9c2..z93\1\9
+ --cycle;
+ proof_labels (
+ 93\0\0,
+ 93\0\1,
+ 93\0\2,
+ 93\0\3,
+ 93\0\4,
+ 93\0\5,
+ 93\0\6,
+ 93\0\7,
+ 93\0\8,
+ 93\0\9,
+ 93\0\10,
+ 93\0\11,
+ 93\1\0,
+ 93\1\1,
+ 93\1\2,
+ 93\1\3,
+ 93\1\4,
+ 93\1\5,
+ 93\1\6,
+ 93\1\7,
+ 93\1\8,
+ 93\1\9,
+ 93\1\10,
+);
+endchar;
+
+beginchar (TIB_EE, 8.431u#, 7.227u#, 0.000u#);
+ "vee";
+ z95\0\0s = (1.445u,6.022u);
+ z95\0\0c1 = (3.591u,5.733u);
+ z95\0\0c2 = (4.425u,5.373u);
+ z95\0\0 = (6.022u,3.845u);
+ z95\0\1c1 = (6.662u,3.232u);
+ z95\0\1c2 = (7.171u,2.604u);
+ z95\0\1 = (7.950u,2.168u);
+ z95\0\2c1 = (7.551u,3.562u);
+ z95\0\2c2 = (7.023u,4.216u);
+ z95\0\2 = (6.087u,5.299u);
+ z95\0\3c1 = (5.203u,6.323u);
+ z95\0\3c2 = (4.159u,7.434u);
+ z95\0\3 = (2.654u,7.157u);
+ z95\0\4c1 = (1.887u,7.016u);
+ z95\0\4c2 = (1.679u,6.706u);
+ z95\1\0s = (0.482u,3.613u);
+ z95\1\0c1 = (1.927u,3.496u);
+ z95\1\0c2 = (3.758u,3.307u);
+ z95\1\0 = (5.059u,2.651u);
+ z95\1\1c1 = (6.032u,2.159u);
+ z95\1\1c2 = (6.667u,1.301u);
+ z95\1\1 = (7.709u,0.964u);
+ z95\1\2c1 = (7.438u,1.536u);
+ z95\1\2c2 = (7.179u,1.938u);
+ z95\1\2 = (6.732u,2.399u);
+ z95\1\3c1 = (5.683u,3.483u);
+ z95\1\3c2 = (2.062u,6.001u);
+ z95\1\3 = (0.717u,4.202u);
+ z95\1\4c1 = (0.572u,4.007u);
+ z95\1\4c2 = (0.555u,3.829u);
+ fill_or_unfill z95\0\0s
+ ..controls z95\0\0c1 and z95\0\0c2..z95\0\0
+ ..controls z95\0\1c1 and z95\0\1c2..z95\0\1
+ ..controls z95\0\2c1 and z95\0\2c2..z95\0\2
+ ..controls z95\0\3c1 and z95\0\3c2..z95\0\3
+ ..controls z95\0\4c1 and z95\0\4c2..cycle;
+ fill_or_unfill z95\1\0s
+ ..controls z95\1\0c1 and z95\1\0c2..z95\1\0
+ ..controls z95\1\1c1 and z95\1\1c2..z95\1\1
+ ..controls z95\1\2c1 and z95\1\2c2..z95\1\2
+ ..controls z95\1\3c1 and z95\1\3c2..z95\1\3
+ ..controls z95\1\4c1 and z95\1\4c2..cycle;
+ proof_labels (
+ 95\0\0,
+ 95\0\1,
+ 95\0\2,
+ 95\0\3,
+ 95\0\4,
+ 95\1\0,
+ 95\1\1,
+ 95\1\2,
+ 95\1\3,
+ 95\1\4,
+);
+endchar;
+
+beginchar (TIB_ZO, 13.972u#, 7.468u#, 0.000u#);
+ "-zo";
+ z118\0\0s = (13.009u,7.468u);
+ z118\0\0c1 = (11.329u,5.175u);
+ z118\0\0c2 = (8.366u,4.956u);
+ z118\0\0 = (6.986u,2.409u);
+ z118\0\1c1 = (4.945u,3.227u);
+ z118\0\1c2 = (1.923u,5.519u);
+ z118\0\1 = (0.482u,2.650u);
+ z118\0\2c1 = (2.004u,2.269u);
+ z118\0\2c2 = (2.069u,2.996u);
+ z118\0\2 = (3.132u,2.924u);
+ z118\0\3c1 = (4.127u,2.857u);
+ z118\0\3c2 = (6.101u,1.095u);
+ z118\0\3 = (6.986u,0.482u);
+ z118\0\4c1 = (7.386u,1.328u);
+ z118\0\4c2 = (7.536u,2.308u);
+ z118\0\4 = (8.245u,2.967u);
+ z118\0\5c1 = (10.121u,4.713u);
+ z118\0\5c2 = (13.119u,4.267u);
+ z118\0\5 = (13.490u,7.468u);
+ z118\1\0s = (7.709u,0.482u);
+ z118\1\0c1 = (8.899u,0.861u);
+ z118\1\0c2 = (10.384u,2.112u);
+ z118\1\0 = (10.600u,3.372u);
+ z118\1\1c1 = (9.054u,2.782u);
+ z118\1\1c2 = (7.766u,2.268u);
+ fill_or_unfill z118\0\0s
+ ..controls z118\0\0c1 and z118\0\0c2..z118\0\0
+ ..controls z118\0\1c1 and z118\0\1c2..z118\0\1
+ ..controls z118\0\2c1 and z118\0\2c2..z118\0\2
+ ..controls z118\0\3c1 and z118\0\3c2..z118\0\3
+ ..controls z118\0\4c1 and z118\0\4c2..z118\0\4
+ ..controls z118\0\5c1 and z118\0\5c2..z118\0\5
+ --cycle;
+ fill_or_unfill z118\1\0s
+ ..controls z118\1\0c1 and z118\1\0c2..z118\1\0
+ ..controls z118\1\1c1 and z118\1\1c2..cycle;
+ proof_labels (
+ 118\0\0,
+ 118\0\1,
+ 118\0\2,
+ 118\0\3,
+ 118\0\4,
+ 118\0\5,
+ 118\0\6,
+ 118\1\0,
+ 118\1\1,
+);
+endchar;
+
+beginchar (TIB_ZI, 12.527u#, 4.818u#, 0.000u#);
+ "-zi";
+ z119\0\0s = (4.336u,1.927u);
+ z119\0\0c1 = (2.878u,2.000u);
+ z119\0\0c2 = (2.486u,2.295u);
+ z119\0\0 = (1.204u,2.891u);
+ z119\0\1 = (1.204u,3.372u);
+ z119\0\2c1 = (4.600u,4.196u);
+ z119\0\2c2 = (6.130u,1.804u);
+ z119\0\2 = (8.913u,0.723u);
+ z119\0\3c1 = (7.658u,2.476u);
+ z119\0\3c2 = (4.142u,5.875u);
+ z119\0\3 = (1.697u,4.572u);
+ z119\0\4c1 = (1.173u,4.293u);
+ z119\0\4c2 = (0.706u,3.734u);
+ z119\0\4 = (0.636u,3.131u);
+ z119\0\5c1 = (0.419u,1.270u);
+ z119\0\5c2 = (3.648u,-0.038u);
+ z119\1\0s = (11.804u,3.613u);
+ z119\1\0c1 = (10.711u,2.697u);
+ z119\1\0c2 = (10.550u,2.668u);
+ z119\1\0 = (9.154u,2.650u);
+ z119\1\1 = (9.154u,0.723u);
+ z119\1\2c1 = (10.522u,1.234u);
+ z119\1\2c2 = (12.517u,1.732u);
+ fill_or_unfill z119\0\0s
+ ..controls z119\0\0c1 and z119\0\0c2..z119\0\0
+ --z119\0\1
+ ..controls z119\0\2c1 and z119\0\2c2..z119\0\2
+ ..controls z119\0\3c1 and z119\0\3c2..z119\0\3
+ ..controls z119\0\4c1 and z119\0\4c2..z119\0\4
+ ..controls z119\0\5c1 and z119\0\5c2..cycle;
+ fill_or_unfill z119\1\0s
+ ..controls z119\1\0c1 and z119\1\0c2..z119\1\0
+ --z119\1\1
+ ..controls z119\1\2c1 and z119\1\2c2..cycle;
+ proof_labels (
+ 119\0\0,
+ 119\0\1,
+ 119\0\2,
+ 119\0\3,
+ 119\0\4,
+ 119\0\5,
+ 119\1\0,
+ 119\1\1,
+ 119\1\2,
+);
+endchar;
+
+beginchar (TIB_ZE, 11.563u#, 4.577u#, 0.000u#);
+ "-ze";
+ z120\0\0s = (0.482u,3.372u);
+ z120\0\0c1 = (1.927u,3.255u);
+ z120\0\0c2 = (3.758u,3.067u);
+ z120\0\0 = (5.059u,2.410u);
+ z120\0\1c1 = (6.032u,1.918u);
+ z120\0\1c2 = (6.667u,1.061u);
+ z120\0\1 = (7.709u,0.723u);
+ z120\0\2c1 = (6.861u,2.516u);
+ z120\0\2c2 = (1.619u,6.703u);
+ z120\1\0s = (8.190u,2.409u);
+ z120\1\0c1 = (8.161u,1.812u);
+ z120\1\0c2 = (8.091u,1.304u);
+ z120\1\0 = (7.950u,0.723u);
+ z120\1\1c1 = (9.389u,1.033u);
+ z120\1\1c2 = (10.808u,1.257u);
+ z120\1\1 = (11.081u,2.891u);
+ z120\1\2c1 = (10.055u,2.624u);
+ z120\1\2c2 = (9.262u,2.419u);
+ fill_or_unfill z120\0\0s
+ ..controls z120\0\0c1 and z120\0\0c2..z120\0\0
+ ..controls z120\0\1c1 and z120\0\1c2..z120\0\1
+ ..controls z120\0\2c1 and z120\0\2c2..cycle;
+ fill_or_unfill z120\1\0s
+ ..controls z120\1\0c1 and z120\1\0c2..z120\1\0
+ ..controls z120\1\1c1 and z120\1\1c2..z120\1\1
+ ..controls z120\1\2c1 and z120\1\2c2..cycle;
+ proof_labels (
+ 120\0\0,
+ 120\0\1,
+ 120\0\2,
+ 120\1\0,
+ 120\1\1,
+ 120\1\2,
+);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The file ctibvow.mf ends here.
+%
diff --git a/Master/texmf-dist/fonts/source/public/dancers/dancers.mf b/Master/texmf-dist/fonts/source/public/dancers/dancers.mf
new file mode 100644
index 00000000000..ff0a0d65acb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/dancers/dancers.mf
@@ -0,0 +1,1538 @@
+% dancers.mf
+% This font was designed by Alan M Stanier ( alan@essex.ac.uk ),
+% at Essex University Computer Service, Colchester, Essex CO4 3EA. England.
+%
+% If you make significant additions or improvements to the font,
+% please email me an updated version
+%
+% This font contains the dancing men used as a code in
+% "The Dancing Men" by Sir Arthur Conan Doyle.
+%
+% The alphabet as given is not complete, lacking f, j, k, q, u, w, x and z,
+% which I have invented. The code required word endings to be marked
+% by the dancing man representing the last letter to be holding a flag:
+% These are coded as A-Z. thaTiStOsaYsentenceSiNthEcodElooKlikEthiS.
+% In some cases, the man has no arms, making it impossible
+% for him to hold a flag. In these cases, he is wearing a flag on his hat.
+%
+% As the characters are meant to be hand-drawn, a degree of randomness
+% has been incorporated.
+%
+% Dancing men are characterised by a number of features:
+% Right Arm Akimbo, Bent, Missing, Straight.
+% Left Arm Akimbo, Bent, Missing, Straight.
+% Right Leg Straight or Bent, and in one of 5 positions.
+% Leg Leg Straight or Bent, and in one of 5 positions.
+% Flag Left, Right, Head, Missing
+% Upside-down Yes, No.
+%
+% Characters outside the alphabetic ranges have been set to a random dancing man.
+
+mg:=1.0; % CHANGE THIS TO GET DIFFERENT SIZES OF FONT (font size = 33*mg pt)
+
+mode_setup;
+height#:=mg*33pt#;
+width#:=mg*20pt#;
+pensize#:=mg*3pt#;
+headsize#:=mg*15pt#;
+define_pixels(height,width);
+%
+pair head, crotch, shoulder, waist, rhand, lhand;
+pair xhead, xcrotch, xshoulder, xwaist, xrhand, xlhand;
+%
+%
+% macros
+%
+def nearly(expr x,dx) = mg*(x - dx + uniformdeviate 2*dx) enddef;
+def near(expr x,dx,y,dy) = (nearly(x,dx),nearly(y,dy)) enddef;
+def xnear(expr x,dx,y,dy) = (nearly(x,dx),nearly(120-y,dy)) enddef;
+%
+%
+def relbow = near(50,5,70,5) enddef;
+def rakimbo = near(45,5,60,5) enddef;
+def lelbow = near(10,5,70,5) enddef;
+def lakimbo = near(15,5,60,5) enddef;
+def lega = near(2,2,40,3) enddef;
+def legb = near(2,2,25,3) enddef;
+def legc = near(16,2,15,3) enddef;
+def legd = near(23,2,6,3) enddef;
+def lege = near(30,2,0,2) enddef;
+def legf = near(30,2,0,2) enddef;
+def legg = near(37,2,6,3) enddef;
+def legh = near(43,2,15,3) enddef;
+def legi = near(50,2,25,3) enddef;
+def legj = near(57,2,40,3) enddef;
+def kneea = near(15,2,50,2) enddef;
+def kneeb = near(15,2,45,2) enddef;
+def kneec = near(15,2,35,2) enddef;
+def kneed = near(20,2,20,2) enddef;
+def kneee = near(25,2,22,2) enddef;
+def kneef = near(35,2,22,2) enddef;
+def kneeg = near(40,2,30,2) enddef;
+def kneeh = near(45,2,35,2) enddef;
+def kneei = near(45,2,45,2) enddef;
+def kneej = near(45,2,50,2) enddef;
+def toea = near(0,2,45,2) enddef;
+def toeb = near(5,2,30,2) enddef;
+def toec = near(10,2,20,2) enddef;
+def toed = near(15,2,10,2) enddef;
+def toee = near(25,2,5,2) enddef;
+def toef = near(35,2,5,2) enddef;
+def toeg = near(45,2,10,2) enddef;
+def toeh = near(50,2,20,2) enddef;
+def toei = near(55,2,30,2) enddef;
+def toej = near(60,2,45,2) enddef;
+def rightarmakimbo = draw shoulder -- rakimbo -- waist enddef;
+def rightarmbent = draw shoulder -- relbow -- rhand enddef;
+def rightarmstraight = draw shoulder -- rhand enddef;
+def leftarmakimbo = draw shoulder -- lakimbo -- waist enddef;
+def leftarmbent = draw shoulder -- lelbow -- lhand enddef;
+def leftarmstraight = draw shoulder -- lhand enddef;
+def leftlegstraightone = draw crotch -- lega -- toea enddef;
+def leftlegbentone = draw crotch -- kneea -- lega -- toea enddef;
+def leftlegstraighttwo = draw crotch -- legb -- toeb enddef;
+def leftlegbenttwo = draw crotch -- kneeb -- legb -- toec enddef;
+def leftlegstraightthree = draw crotch -- legc -- toec enddef;
+def leftlegbentthree = draw crotch -- kneec -- legc -- toec enddef;
+def leftlegstraightfour = draw crotch -- legd -- toed enddef;
+def leftlegbentfour = draw crotch -- kneed -- legd -- toed enddef;
+def leftlegstraightfive = draw crotch -- lege -- toee enddef;
+def leftlegbentfive = draw crotch -- kneee -- lege -- toee enddef;
+def rightlegstraightfive = draw crotch -- legf -- toef enddef;
+def rightlegbentfive = draw crotch -- kneef -- legf -- toee enddef;
+def rightlegstraightsix = draw crotch -- legg -- toeg enddef;
+def rightlegbentsix = draw crotch -- kneeg -- legg -- toeg enddef;
+def rightlegstraightseven = draw crotch -- legh -- toeh enddef;
+def rightlegbentseven = draw crotch -- kneeh -- legh -- toeg enddef;
+def rightlegstraighteight = draw crotch -- legi -- toei enddef;
+def rightlegbenteight = draw crotch -- kneei -- legi -- toei enddef;
+def rightlegstraightnine = draw crotch -- legj -- toej enddef;
+def rightlegbentnine = draw crotch -- kneej -- legj -- toej enddef;
+def flag(expr x,y) = draw (x,y) -- (x,y+20*mg) -- (x+10*mg,y+15*mg) -- (x,y+10*mg) enddef;
+%
+def xrelbow = xnear(50,5,70,5) enddef;
+def xrakimbo = xnear(45,5,60,5) enddef;
+def xlelbow = xnear(10,5,70,5) enddef;
+def xlakimbo = xnear(15,5,60,5) enddef;
+def xlega = xnear(2,2,40,3) enddef;
+def xlegb = xnear(2,2,25,3) enddef;
+def xlegc = xnear(16,2,15,3) enddef;
+def xlegd = xnear(23,2,6,3) enddef;
+def xlege = xnear(30,2,0,2) enddef;
+def xlegf = xnear(30,2,0,2) enddef;
+def xlegg = xnear(37,2,6,3) enddef;
+def xlegh = xnear(43,2,15,3) enddef;
+def xlegi = xnear(50,2,25,3) enddef;
+def xlegj = xnear(57,2,40,3) enddef;
+def xkneea = xnear(15,2,50,2) enddef;
+def xkneeb = xnear(15,2,45,2) enddef;
+def xkneec = xnear(15,2,35,2) enddef;
+def xkneed = xnear(20,2,20,2) enddef;
+def xkneee = xnear(25,2,22,2) enddef;
+def xkneef = xnear(35,2,22,2) enddef;
+def xkneeg = xnear(40,2,30,2) enddef;
+def xkneeh = xnear(45,2,35,2) enddef;
+def xkneei = xnear(45,2,45,2) enddef;
+def xkneej = xnear(45,2,50,2) enddef;
+def xtoea = xnear(0,2,45,2) enddef;
+def xtoeb = xnear(5,2,30,2) enddef;
+def xtoec = xnear(10,2,20,2) enddef;
+def xtoed = xnear(15,2,10,2) enddef;
+def xtoee = xnear(25,2,5,2) enddef;
+def xtoef = xnear(35,2,5,2) enddef;
+def xtoeg = xnear(45,2,10,2) enddef;
+def xtoeh = xnear(50,2,20,2) enddef;
+def xtoei = xnear(55,2,30,2) enddef;
+def xtoej = xnear(60,2,45,2) enddef;
+def xrightarmakimbo = draw xshoulder -- xrakimbo -- xwaist enddef;
+def xrightarmbent = draw xshoulder -- xrelbow -- xrhand enddef;
+def xrightarmstraight = draw xshoulder -- xrhand enddef;
+def xleftarmakimbo = draw xshoulder -- xlakimbo -- xwaist enddef;
+def xleftarmbent = draw xshoulder -- xlelbow -- xlhand enddef;
+def xleftarmstraight = draw xshoulder -- xlhand enddef;
+def xleftlegstraightone = draw xcrotch -- xlega -- xtoea enddef;
+def xleftlegbentone = draw xcrotch -- xkneea -- xlega -- xtoea enddef;
+def xleftlegstraighttwo = draw xcrotch -- xlegb -- xtoeb enddef;
+def xleftlegbenttwo = draw xcrotch -- xkneeb -- xlegb -- xtoec enddef;
+def xleftlegstraightthree = draw xcrotch -- xlegc -- xtoec enddef;
+def xleftlegbentthree = draw xcrotch -- xkneec -- xlegc -- xtoec enddef;
+def xleftlegstraightfour = draw xcrotch -- xlegd -- xtoed enddef;
+def xleftlegbentfour = draw xcrotch -- xkneed -- xlegd -- xtoed enddef;
+def xleftlegstraightfive = draw xcrotch -- xlege -- xtoee enddef;
+def xleftlegbentfive = draw xcrotch -- xkneee -- xlege -- xtoee enddef;
+def xrightlegstraightfive = draw xcrotch -- xlegf -- xtoef enddef;
+def xrightlegbentfive = draw xcrotch -- xkneef -- xlegf -- xtoee enddef;
+def xrightlegstraightsix = draw xcrotch -- xlegg -- xtoeg enddef;
+def xrightlegbentsix = draw xcrotch -- xkneeg -- xlegg -- xtoeg enddef;
+def xrightlegstraightseven = draw xcrotch -- xlegh -- xtoeh enddef;
+def xrightlegbentseven = draw xcrotch -- xkneeh -- xlegh -- xtoeg enddef;
+def xrightlegstraighteight = draw xcrotch -- xlegi -- xtoei enddef;
+def xrightlegbenteight = draw xcrotch -- xkneei -- xlegi -- xtoei enddef;
+def xrightlegstraightnine = draw xcrotch -- xlegj -- xtoej enddef;
+def xrightlegbentnine = draw xcrotch -- xkneej -- xlegj -- xtoej enddef;
+def xflag(expr x,y) = draw (x,y) -- (x,y-20*mg) -- (x-10*mg,y-15*mg) -- (x,y-10*mg) enddef;
+%
+def setup =
+ headx := nearly(30,5);
+ heady := nearly(100,5);
+ head := (headx,heady-5);
+ crotch := near(30,5,45,5);
+ waist := near(30,2,55,5);
+ shoulder := near(30,2,75,5);
+ rhandx := nearly(55,10);
+ rhandy := nearly(85,10);
+ rhand := (rhandx,rhandy);
+ lhandx := nearly(5,10);
+ lhandy := nearly(85,10);
+ lhand := (lhandx,lhandy);
+ pickup pencircle scaled headsize#;
+ drawdot head;
+ pickup pencircle scaled pensize#;
+ draw head -- crotch;
+enddef;
+%
+def xsetup =
+ xheadx := nearly(30,5);
+ xheady := nearly(25,5);
+ xhead := (xheadx,xheady+5);
+ xcrotch := xnear(30,5,45,5);
+ xwaist := near(30,2,65,5);
+ xshoulder := near(30,2,45,5);
+ xrhandx := nearly(50,10);
+ xrhandy := nearly(35,10);
+ xrhand := (xrhandx,xrhandy);
+ xlhandx := nearly(5,10);
+ xlhandy := nearly(35,10);
+ xlhand := (xlhandx,xlhandy);
+ pickup pencircle scaled headsize#;
+ drawdot xhead;
+ pickup pencircle scaled pensize#;
+ draw xhead -- xcrotch;
+enddef;
+%
+def randomman =
+ if (uniformdeviate 2) < 1:
+ setup;
+ rand := uniformdeviate 10;
+ if rand<1: rightarmakimbo;
+ elseif rand<4: rightarmbent;
+ elseif rand<5: rightarmbent;
+ flag(rhandx,rhandy);
+ elseif rand<8: rightarmstraight;
+ elseif rand<9: rightarmstraight;
+ flag(rhandx,rhandy);
+ fi;
+ rand := uniformdeviate 10;
+ if rand<1: leftarmakimbo;
+ elseif rand<4: leftarmbent;
+ elseif rand<5: leftarmbent;
+ flag(lhandx,lhandy);
+ elseif rand<8: leftarmstraight;
+ elseif rand<9: leftarmstraight;
+ flag(lhandx,lhandy);
+ fi;
+ rand := uniformdeviate 10;
+ if rand<1: leftlegbentone;
+ elseif rand<2: leftlegstraightone;
+ elseif rand<3: leftlegbenttwo;
+ elseif rand<4: leftlegstraighttwo;
+ elseif rand<5: leftlegbentthree;
+ elseif rand<6: leftlegstraightthree;
+ elseif rand<7: leftlegbentfour;
+ elseif rand<8: leftlegstraightfour;
+ elseif rand<9: leftlegbentfive;
+ else: leftlegstraightfive;
+ fi
+ rand := uniformdeviate 10;
+ if rand<1: rightlegbentnine;
+ elseif rand<2: rightlegstraightnine;
+ elseif rand<3: rightlegbenteight;
+ elseif rand<4: rightlegstraighteight;
+ elseif rand<5: rightlegbentseven;
+ elseif rand<6: rightlegstraightseven;
+ elseif rand<7: rightlegbentsix;
+ elseif rand<8: rightlegstraightsix;
+ elseif rand<9: rightlegbentfive;
+ else: rightlegstraightfive;
+ fi;
+ else:
+ xsetup;
+ rand := uniformdeviate 10;
+ if rand<1: xrightarmakimbo;
+ elseif rand<4: xrightarmbent;
+ elseif rand<5: xrightarmbent;
+ xflag(xrhandx,xrhandy);
+ elseif rand<8: xrightarmstraight;
+ elseif rand<9: xrightarmstraight;
+ xflag(xrhandx,xrhandy);
+ fi;
+ rand := uniformdeviate 10;
+ if rand<1: xleftarmakimbo;
+ elseif rand<4: xleftarmbent;
+ elseif rand<5: xleftarmbent;
+ xflag(xlhandx,xlhandy);
+ elseif rand<8: xleftarmstraight;
+ elseif rand<9: xleftarmstraight;
+ xflag(xlhandx,xlhandy);
+ fi;
+ rand := uniformdeviate 10;
+ if rand<1: xleftlegbentone;
+ elseif rand<2: xleftlegstraightone;
+ elseif rand<3: xleftlegbenttwo;
+ elseif rand<4: xleftlegstraighttwo;
+ elseif rand<5: xleftlegbentthree;
+ elseif rand<6: xleftlegstraightthree;
+ elseif rand<7: xleftlegbentfour;
+ elseif rand<8: xleftlegstraightfour;
+ elseif rand<9: xleftlegbentfive;
+ else: xleftlegstraightfive;
+ fi
+ rand := uniformdeviate 10;
+ if rand<1: xrightlegbentnine;
+ elseif rand<2: xrightlegstraightnine;
+ elseif rand<3: xrightlegbenteight;
+ elseif rand<4: xrightlegstraighteight;
+ elseif rand<5: xrightlegbentseven;
+ elseif rand<6: xrightlegstraightseven;
+ elseif rand<7: xrightlegbentsix;
+ elseif rand<8: xrightlegstraightsix;
+ elseif rand<9: xrightlegbentfive;
+ else: xrightlegstraightfive;
+ fi;
+ fi;
+enddef;
+
+% characters
+%
+beginchar(0,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(1,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(2,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(3,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(4,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(5,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(6,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(7,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(8,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(9,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(10,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(11,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(12,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(13,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(14,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(15,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(16,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(17,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(18,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(19,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(20,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(21,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(22,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(23,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(24,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(25,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(26,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(27,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(28,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(29,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(30,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(31,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(32,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(33,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(34,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(35,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(36,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(37,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(38,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(39,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(40,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(41,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(42,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(43,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(44,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(45,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(46,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(47,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(48,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(49,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(50,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(51,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(52,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(53,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(54,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(55,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(56,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(57,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(58,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(59,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(60,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(61,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(62,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(63,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(64,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar("A",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegstraightfive;
+ rightarmstraight;
+ flag(rhandx,rhandy);
+ leftarmstraight;
+endchar;
+%
+beginchar("B",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegbentfour;
+ flag(headx,heady);
+endchar;
+%
+beginchar("C",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentthree;
+ leftarmstraight;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar("D",width#,height#,0);
+ xsetup;
+ xrightlegstraightsix;
+ xleftlegstraightthree;
+ xrightarmstraight;
+ xflag(xrhandx,xrhandy);
+endchar;
+%
+beginchar("E",width#,height#,0);
+ setup;
+ rightlegstraightseven;
+ leftlegstraightthree;
+ rightarmstraight;
+ flag(rhandx,rhandy);
+ leftarmstraight;
+endchar;
+%
+beginchar("F",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentfive;
+ rightarmakimbo;
+ leftarmbent;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar("G",width#,height#,0);
+ xsetup;
+ xrightlegstraightseven;
+ xleftlegstraightthree;
+ xleftarmstraight;
+ xflag(xlhandx,xlhandy);
+endchar;
+%
+beginchar("H",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegstraightfive;
+ rightarmstraight;
+ flag(rhandx,rhandy);
+ leftarmstraight;
+endchar;
+%
+beginchar("I",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegstraightone;
+ rightarmstraight;
+ flag(rhandx,rhandy);
+ leftarmstraight;
+endchar;
+%
+beginchar("J",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentfive;
+ rightarmakimbo;
+ leftarmstraight;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar("K",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentfive;
+ leftarmbent;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar("L",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentthree;
+ rightarmakimbo;
+ leftarmbent;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar("M",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentthree;
+ rightarmstraight;
+ flag(rhandx,rhandy);
+ leftarmstraight;
+endchar;
+%
+beginchar("N",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegbenttwo;
+ rightarmstraight;
+ flag(rhandx,rhandy);
+ leftarmakimbo;
+endchar;
+%
+beginchar("O",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegbentthree;
+ rightarmstraight;
+ flag(rhandx,rhandy);
+ leftarmstraight;
+endchar;
+%
+beginchar("P",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegstraightone;
+ flag(headx,heady);
+endchar;
+%
+beginchar("Q",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentfive;
+ leftarmstraight;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar("R",width#,height#,0);
+ setup;
+ rightlegstraighteight;
+ leftlegstraightfive;
+ rightarmstraight;
+ flag(rhandx,rhandy);
+ leftarmstraight;
+endchar;
+%
+beginchar("S",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegstraightthree;
+ rightarmbent;
+ flag(rhandx,rhandy);
+ leftarmbent;
+endchar;
+%
+beginchar("T",width#,height#,0);
+ xsetup;
+ xrightlegstraightseven;
+ xleftlegstraightthree;
+ xrightarmstraight;
+ xflag(xrhandx,xrhandy);
+ xleftarmstraight;
+endchar;
+%
+beginchar("U",width#,height#,0);
+ setup;
+ rightlegstraightnine;
+ leftlegstraightone;
+ rightarmakimbo;
+ leftarmbent;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar("V",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegbentthree;
+ flag(headx,heady);
+endchar;
+%
+beginchar("W",width#,height#,0);
+ setup;
+ rightlegstraightnine;
+ leftlegstraightone;
+ rightarmakimbo;
+ leftarmstraight;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar("X",width#,height#,0);
+ setup;
+ rightlegstraightnine;
+ leftlegstraightone;
+ leftarmbent;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar("Y",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegbentfour;
+ rightarmstraight;
+ flag(rhandx,rhandy);
+endchar;
+%
+beginchar("Z",width#,height#,0);
+ setup;
+ rightlegstraightnine;
+ leftlegstraightone;
+ leftarmstraight;
+ flag(lhandx,lhandy);
+endchar;
+%
+beginchar(91,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(92,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(93,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(94,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(95,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(96,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar("a",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegstraightfive;
+ rightarmstraight;
+ leftarmstraight;
+endchar;
+%
+beginchar("b",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegbentfour;
+endchar;
+%
+beginchar("c",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentthree;
+ leftarmstraight;
+endchar;
+%
+beginchar("d",width#,height#,0);
+ xsetup;
+ xrightlegstraightsix;
+ xleftlegstraightthree;
+ xrightarmstraight;
+endchar;
+%
+beginchar("e",width#,height#,0);
+ setup;
+ rightlegstraightseven;
+ leftlegstraightthree;
+ rightarmstraight;
+ leftarmstraight;
+endchar;
+%
+beginchar("f",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentfive;
+ rightarmakimbo;
+ leftarmbent;
+endchar;
+%
+beginchar("g",width#,height#,0);
+ xsetup;
+ xrightlegstraightseven;
+ xleftlegstraightthree;
+ xleftarmstraight;
+endchar;
+%
+beginchar("h",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegstraightfive;
+ rightarmstraight;
+ leftarmstraight;
+endchar;
+%
+beginchar("i",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegstraightone;
+ rightarmstraight;
+ leftarmstraight;
+endchar;
+%
+beginchar("j",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentfive;
+ rightarmakimbo;
+ leftarmstraight;
+endchar;
+%
+beginchar("k",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentfive;
+ leftarmbent;
+endchar;
+%
+beginchar("l",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentthree;
+ rightarmakimbo;
+ leftarmbent;
+endchar;
+%
+beginchar("m",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentthree;
+ rightarmstraight;
+ leftarmstraight;
+endchar;
+%
+beginchar("n",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegbenttwo;
+ rightarmstraight;
+ leftarmakimbo;
+endchar;
+%
+beginchar("o",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegbentthree;
+ rightarmstraight;
+ leftarmstraight;
+endchar;
+%
+beginchar("p",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegstraightone;
+endchar;
+%
+beginchar("q",width#,height#,0);
+ setup;
+ rightlegbentfive;
+ leftlegbentfive;
+ leftarmstraight;
+endchar;
+%
+beginchar("r",width#,height#,0);
+ setup;
+ rightlegstraighteight;
+ leftlegstraightfive;
+ rightarmstraight;
+ leftarmstraight;
+endchar;
+%
+beginchar("s",width#,height#,0);
+ setup;
+ rightlegstraightfive;
+ leftlegstraightthree;
+ rightarmbent;
+ leftarmbent;
+endchar;
+%
+beginchar("t",width#,height#,0);
+ xsetup;
+ xrightlegstraightseven;
+ xleftlegstraightthree;
+ xrightarmstraight;
+ xleftarmstraight;
+endchar;
+%
+beginchar("u",width#,height#,0);
+ setup;
+ rightlegstraightnine;
+ leftlegstraightone;
+ rightarmakimbo;
+ leftarmbent;
+endchar;
+%
+beginchar("v",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegbentthree;
+endchar;
+%
+beginchar("w",width#,height#,0);
+ setup;
+ rightlegstraightnine;
+ leftlegstraightone;
+ rightarmakimbo;
+ leftarmstraight;
+endchar;
+%
+beginchar("x",width#,height#,0);
+ setup;
+ rightlegstraightnine;
+ leftlegstraightone;
+ leftarmbent;
+endchar;
+%
+beginchar("y",width#,height#,0);
+ setup;
+ rightlegbentsix;
+ leftlegbentfour;
+ rightarmstraight;
+endchar;
+%
+beginchar("z",width#,height#,0);
+ setup;
+ rightlegstraightnine;
+ leftlegstraightone;
+ leftarmstraight;
+endchar;
+%
+beginchar(123,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(124,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(125,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(126,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(127,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(128,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(129,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(130,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(131,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(132,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(133,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(134,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(135,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(136,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(137,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(138,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(139,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(140,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(141,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(142,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(143,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(144,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(145,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(146,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(147,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(148,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(149,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(150,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(151,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(152,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(153,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(154,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(155,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(156,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(157,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(158,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(159,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(160,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(161,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(162,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(163,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(164,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(165,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(166,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(167,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(168,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(169,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(170,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(171,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(172,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(173,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(174,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(175,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(176,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(177,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(178,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(179,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(180,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(181,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(182,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(183,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(184,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(185,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(186,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(187,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(188,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(189,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(190,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(191,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(192,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(193,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(194,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(195,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(196,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(197,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(198,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(199,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(200,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(201,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(202,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(203,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(204,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(205,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(206,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(207,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(208,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(209,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(210,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(211,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(212,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(213,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(214,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(215,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(216,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(217,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(218,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(219,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(220,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(221,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(222,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(223,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(224,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(225,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(226,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(227,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(228,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(229,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(230,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(231,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(232,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(233,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(234,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(235,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(236,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(237,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(238,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(239,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(240,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(241,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(242,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(243,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(244,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(245,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(246,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(247,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(248,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(249,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(250,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(251,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(252,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(253,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(254,width#,height#,0);
+randomman;
+endchar;
+%
+beginchar(255,width#,height#,0);
+randomman;
+endchar;
+%
+%
+end
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dnchars.mf b/Master/texmf-dist/fonts/source/public/devanagr/dnchars.mf
new file mode 100644
index 00000000000..2a2098fb7e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dnchars.mf
@@ -0,0 +1,5247 @@
+%
+% dnchars.mf v2.12 alpha 10
+%
+% METAFONT source file for Devanagari fonts
+% Copyright (C) 1991-2005 University of Groningen, The Netherlands
+%
+% Author : Frans J. Velthuis <velthuis@rc.rug.nl>
+% Maintainer : Anshuman Pandey <apandey@u.washington.edu>
+% Kevin Carmody <i@kevincarmody.com>
+% Date : 26 March 2005
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation.
+%
+% This program is distributed in the hope that it will be useful,
+% but without any warranty; without even the implied warranty of
+% merchantability or fitness for a particular purpose. See the
+% GNU General Public License for more details.
+%
+% o 2005.03.26 Anshuman Pandey
+% - Modified avagraha to remove gap in the top-line
+% - Modified comments
+%
+% o 2005.03.15 Anshuman Pandey
+% - Modified alternate 9
+% - Revised character descriptions to match Velthuis encodings
+%
+% o 2005.03.02 Kevin Carmody
+% - Added height and depth values to sub-letters .R, .l, .L
+% - Modified vertical position of the hyphen
+%
+% o 2004.04.08 Anshuman Pandey
+% - Added alternate forms of numerals 1 and 9
+% - Added character tests for numerals 1 and 9
+%
+% o 2004.03.14 Anshuman Pandey
+% - Added Nepali jha and half-jha forms, alternate initial .l and .L
+% - Added character tests for Nepali jha, .l, and .L
+%
+% o 2004.02.28 Anshuman Pandey
+% - Deleted "sba from position "9B
+% - Added regular and alternate forms of .n.na at position "9B
+% - Deleted redundant j~na from position "2B
+% - Added open-ya at position "2B
+%
+% o 2004.02.13 Anshuman Pandey
+% - Revised alternate forms of .na and half-.na
+% - Added alternate forms of numerals 5 and 8
+% - Added character tests for numerals 5 and 8
+%
+% o 2004.02.09 Anshuman Pandey
+% - Modified alternate forms of jha, half-jha, cha, chya,
+% - Modified alternate forms of initial .r, initial .R, front-a
+% - Added alternate forms of la, lla, "sa, half-"sa
+% - Added character tests for la and "sa
+%
+% o 2003.07.01 Kevin Carmody
+% - Added alternate forms of front-a, initial .r, initial .R
+% - Added alternate forms of k.sa, half-k.sa, chya, "nk.sa, "nk.sva, cha
+% - Added alternate forms of j~na, half-j~na, jha, half-jha, .na, half-.na, h.na
+% - Added character tests for front-a, .r, .R, cha, jha, .na, k.sa, chya, j~na, h.na
+%
+% o 1999.12.11 Anshuman Pandey
+% - Modified ka, half-ka, qa, half-qa, la, half-la, lla, "sla, ha, hra
+%
+% o 1999.03.06 Anshuman Pandey and Charles Wikner
+% - Modified hna, hla, hva
+%
+% o 1998.01.01 Dominik wujastyk
+% - Added hyphen
+%
+
+if alta:
+ beginchar("a",1.52twd#+brm#,ht#,0); "front-a"; % alternate
+ frame;
+ z5=(.51(w-brm),h);
+ z6=(.52(w-brm),.57h);
+ z7=(x3,.55h);
+ draw z5..tension1.4..z6..z7;
+ pickup sub_pen;
+ z8=(x5,y7);
+ z9=(1/2penwd,.65h);
+ z10=(.15w,.3h);
+ z11=z7-(1/2penwd,3/4penwd);
+ z12=4/3(z10-z6)+z11;
+ draw z8{dir120}..z9;
+ draw z8--z10;
+ draw z11--z12;
+ endchar;
+else:
+ beginchar("a",1.52twd#+brm#,ht#,0); "front-a"; % original
+ path p; path q;
+ awd = 1.6twd-rm;
+ aframe;
+ z5=(1/2penwd,.90h);
+ z6=(.76awd,.85h);
+ z7=(.32awd,.57h);
+ p = z5{curl0}..tension1.2..z6..tension1.2..{curl0.3}z7;
+ z8= point 1.6 of p;
+ z9 = (.54awd,.15h);
+ z10 = (1/2penwd,.50h);
+ q = z8..z9{left}..{curl0}z10;
+ z11= point 0.40 of q;
+ z12= (w-brm,y11+0.1h);
+ draw p; draw q;
+ draw z11{right}..z12;
+ endchar;
+fi;
+
+beginchar("A",2rm#,ht#,0); "aa matra";
+ frame;
+endchar;
+
+beginchar("i",13/17twd#+rm#+penwd#,ht#,0); "front-i";
+ % this shape is used for several other characters
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h); z3=(w-rm-penwd,h);
+ z4=(x3,.74h); z5=(1/2penwd,.6h);
+ z6=(x3+1/2penwd,.37h);
+ z7=(1/2x3,1/7h);
+ z9=(penwd,3/14h);
+ z8=(x3+penwd,-1/7h);
+ draw z1--z2; draw z3--z4;
+ draw z4{left}..z5{down}..z6{down}..z7{left}..z9{dir40}..{curl0}z8;
+endchar;
+
+beginchar("I",13/17twd#+rm#+penwd#,ht#,0); "front-ii";
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ z3=(w-rm-penwd,h);
+ z4=(x3,.74h); z5=(1/2penwd,.6h);
+ z6=(x3+1/2penwd,.37h);
+ z7=(1/2x3,1/7h);
+ z9=(penwd,3/14h);
+ z8=(x3+penwd,-1/7h);
+ draw z1--z2; draw z3--z4;
+ draw z4{left}..z5{down}..z6{down}..z7{left}..z9{dir40}..{curl0}z8;
+ z10=(x3,1.5h-1/2penwd);
+ z11=(x3+.17h,1.35h);
+ z12=(x3-1/2penwd,y3+penwd);
+ draw z12..z10{right}..z11;
+endchar;
+
+beginchar("E",2rm#,1.5ht#,0); "i";
+ frame;
+ z5=(x3,1.35ht);
+ z6=(w-.5rm+.6twd,1.35ht);
+ x7=.3[x5,x6]; y7=1.5ht;
+ draw z3--z5{up}..z7{right}..{curl0}z6;
+endchar;
+
+beginchar("F",2rm#,1.5ht#,0); "ii";
+ frame; z5=(-1.5rm-penwd,1.25ht);
+ z6=(1/2x5,1.5ht);
+ draw z3{curl0}..{left}z6...z5;
+endchar;
+
+beginchar("u",1.07twd#+rm#,ht#,0); "front-u";
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ lm:=w-rm;
+ z3=(.84lm,h); z4=(.4lm,.55h);
+ z5=(.64lm,y4);
+ z6=(x5,1/2penwd);
+ z7=(1/2penwd,1/2h);
+ draw z1--z2;
+ draw z4--z5{right}..tension1.1..z3;
+ draw z5..z6{left}..{curl.4}z7;
+endchar;
+
+beginchar("U",1.7twd#+rm#,ht#,0); "front-uu";
+ % depends on definition of u
+ path p;
+ uwd=1.07twd;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ z3=(.84uwd,h); z4=(.4uwd,.55h);
+ z5=(.64uwd,y4);
+ z6=(x5,1/2penwd);
+ z7=(1/2penwd,1/2h);
+ draw z1--z2;
+ draw z4--z5{right}..tension1.1..z3;
+ p= z5..z6{left}..{curl.4}z7;
+ draw p;
+ z8= point .5 of p;
+ z10=(w-rm,y8);
+ z9=(1/2[x8,x10],1.7y8);
+ z11=(3/4[x8,x10],1/2penwd);
+ draw z8..z9{right}..z10{down}..tension1.1..{curl0}z11;
+endchar;
+
+% beginchar(0,0,ht#,0); "u matra"; % original
+beginchar(0,0,.1ht#,.25ht#); "u matra"; % revision
+ pickup sub_pen;
+ z1= (-1/4uwidth,mb-(penwd+1/8uwidth));
+ z2= (0,mb-penwd);
+ z3= (1/4uwidth,mb-(penwd+1/4uwidth));
+ z4= (-3/4uwidth,mb-penwd);
+ draw z1..z2{right}..z3{down}..tension1.1..{curl0}z4;
+endchar;
+
+% beginchar(1,0,ht#,0); "uu matra"; % original
+beginchar(1,0,.1ht#,.325ht#); "uu matra"; % revision
+ pickup sub_pen;
+ z1= (0,mb-(penwd+3/8uwidth));
+ lft z2= (-1/2uwidth,mb-(penwd+1/8uwidth));
+ z3= (0,mb-penwd);
+ z4= (1/2uwidth,mb-(penwd+1/2uwidth));
+ draw z1..tension1.2..z2..z3..{curl0}z4;
+endsav;
+
+% beginchar(2,0,ht#,0); ".r matra"; % original
+beginchar(2,0,.1ht#,.275ht#); ".r matra"; % revision
+ pickup sub_pen;
+ z1=(2/14uwidth,mb-penwd);
+ z2=(-9/28uwidth,mb-(penwd+3/14uwidth));
+ z3=(9/28uwidth,mb-(penwd+3/7uwidth));
+ draw z1{left}..tension1.2..z2{down}..tension1.2..{curl.2}z3;
+endchar;
+
+beginchar("e",twd#+1.5rm#,ht#,0); "e";
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x penwd; y3=h;
+ x4=good.x w-1.5rm; y4=h;
+ z5=(x3,.28h); z6=(x4,.48h);
+ z7=(w-.5rm-penwd,-.22h);
+ z8=(x7-0.1h,y7-0.2h);
+ z9=(x6-1/6h,y6-1/6h);
+ draw z1--z2; draw z3--z5---z7..z8;
+ draw z4---z6..z9;
+endchar;
+
+beginchar(3,.9twd#+brm#,1.5ht#,0); "e matra";
+ pickup frame_pen;
+ z1=(w-brm,ht+penwd);
+ z2=(0,1.5ht);
+ draw z1{curl.5}..{left}z2;
+endchar;
+
+beginchar("{",.9twd#+brm#,1.5ht#,0); "ai matra";
+ pickup frame_pen;
+ z1=(w-brm,ht+penwd);
+ z2=(0,1.35ht);
+ z3=(penwd,1.55ht);
+ draw z1{curl.5}..{left}z2;
+ draw z1{curl.5}..{left}z3;
+endchar;
+
+beginchar("o",2rm#,1.5ht#,0); "o";
+ frame;
+ z5=(.5rm-.9twd,1.5ht);
+ draw z3{curl.5}..{left}z5;
+endchar;
+
+beginchar("O",2rm#,1.5ht#,0); "au";
+ frame;
+ z5=(.5rm-.9twd,1.35ht);
+ z6=(.5rm-.9twd+penwd,1.55ht);
+ draw z3..{left}z5;
+ draw z3..{left}z6;
+endchar;
+
+% beginchar("k",23/16twd#+rm#,ht#,0); "ka"; % original
+% italcorr rm#+.65twd#;
+% pickup frame_pen;
+% lm:=w-rm;
+% z1=(0,h); z2=(w,h); x3=good.x .55lm; y3=h;
+% z4=(x3,0); draw z1--z2; draw z3--z4;
+% z5=(x3,.6h);
+% z6=(1/2penwd,.55h);
+% z7=(x3,.5h);
+% z8=(lm,.5h);
+% z9=(.94lm,.1h);
+% draw z5..tension1.3..z6{down}..tension1.3..z7;
+% draw z7{curl.5}..z8{down}..tension1.3..z9;
+% endchar;
+
+beginchar("k",23/16twd#+rm#,ht#,0); "ka"; % revision
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ lm:=w-rm;
+ z1=(0,h); z2=(w,h); x3=good.x .55lm; y3=h;
+ z4=(x3,0); draw z1--z2; draw z3--z4;
+ z5=(x3,.6h);
+ z6=(1/2penwd,.47h);
+ z7=(x3,.5h);
+ z8=(lm,.45h);
+ z9=(.94lm,.1h);
+ draw z5..tension1.3..z6{down}..tension1.3..z7;
+ draw z7{curl.5}..z8{down}..tension1.3..z9;
+endchar;
+
+beginchar("K",1.36twd#+brm#,ht#,0); "kha";
+ italcorr brm#;
+ frame; path p;
+ % uses definition of r and k;
+ z5=(1/2penwd,.65h);
+ z6=(.8twd,0);
+ p= z5{down}..tension1.1..{curl0}z6;
+ z7=point .2 of p;
+ z8= (.424twd,h);
+ draw p;
+ draw z8{curl0}..tension1.1..{left}z7;
+ z9=(w-brm,.55h);
+ z10=(w-brm-.55(23/16twd)+1/2penwd,.5h);
+ z11=(w-brm,.45h);
+ draw z9..tension1.3..z10{down}..tension1.3..z11;
+endchar;
+
+beginchar("g",1.1twd#+brm#,ht#,0); "ga";
+ italcorr brm#; path p;
+ frame; z5=(.25(w-brm),h);
+ z6=(x5,.3h);
+ z7=2/3[z5,z6];
+ z8=z7 shifted (.1(w-brm),0);
+ z9= (1/2penwd,y6+.08h);
+ p = z5..z8{down}..z6{left}..z9{up};
+ z10 = point 2.4 of p;
+ draw p..z10;
+endchar;
+
+beginchar("c",1.2twd#+brm#,ht#,0); "ca";
+ italcorr brm#;
+ frame; y5 = good.y .65h; x5 = 1/2penwd;
+ z6 = (w-brm-penwd,y5);
+ z9 = (.44x3,y5);
+ z7 = (.55x3,.3h);
+ z8 = (w-brm,.4h);
+ draw z5--z6; draw z9{curl.5}..z7{right}..z8;
+endchar;
+
+if altcha:
+ beginchar("C",1.8twd#+rm#,ht#,0); "cha"; % alternate
+ italcorr rm#+.9twd#;
+ lm:=w-rm; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3=good.x .75lm; y3=h; z4=(x3,.72h);
+ z5=(.9lm,-.2h); z6=(lm,-penwd);
+ z7=(.38lm,0); z8=(.5lm,.45h);
+ z12=(x3,.32h);
+ p= z12..tension1.3..z4{right}..z7{left}..tension.9..{right}z8;
+ draw p;
+ z9= (.4lm,.44h);
+ z10=(.8x8,.75h);
+ z11= (1/2penwd,.7[y9,y10]);
+ draw z9..tension1.4..z11{up}..tension1.3..{curl0}z10;
+ endchar;
+else:
+ beginchar("C",1.8twd#+rm#,ht#,0); "cha"; % original
+ italcorr rm#+.9twd#;
+ lm:=w-rm; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3=good.x .75lm; y3=h; z4=(x3,.72h);
+ z5=(.9lm,-.2h); z6=(lm,-penwd);
+ z7=(.38lm,0); z8=(.5lm,.45h);
+ z12=(x3,.32h);
+ draw z3--z4;
+ p= z5---z6..z12..tension.9..z4{right}..z7{left}..tension.9..{right}z8;
+ draw p;
+ z9=point 4.75 of p;
+ z10=(.8x8,.75h);
+ z11= (1/2penwd,.7[y9,y10]);
+ draw z9..tension1.4..z11{up}..tension1.3..{curl0}z10;
+ endchar;
+fi;
+
+beginchar("j",1.4twd#+brm#,ht#,0); "ja";
+ italcorr brm#;
+ frame;
+ y5 = good.y .66h; x5 = 1/2penwd;
+ z7 = (.45x3,y5);
+ z8 = (w-brm,y5);
+ y6 = good.y .17h; x6 = .52x3;
+ draw z5{curl.5}..tension1.2..z6{right}..{curl0}z7--z8;
+endchar;
+
+beginchar(26,1.2twd#+brm#,ht#,0); "~na";
+ italcorr brm#;
+ frame;
+ z5=(.16(w-brm),.7h);
+ z6=(.5(w-brm),.5h);
+ z7=(.22(w-brm),.2h);
+ z8=(w-brm,y6);
+ z9=(1/2penwd,.4h);
+ draw z5..z6{down}..z7..{curl.2}z9;
+ draw z6{dir-20}..z8;
+endchar;
+
+beginchar("V",1.15twd#+rm#,ht#,0); ".ta";
+ italcorr rm#+.5twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ lm := w-rm;
+ x3=good.x .7lm; y3=h;
+ z4=(x3,.66h);
+ z6=(.55lm,.1h);
+ z7=(lm,.2h);
+ draw z3--z4;
+ vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..(1/2penwd,y)..z6{right}..{curl0}z7) < 0 enddef;
+ z55=(1/2penwd,solve dwn(y4,y6));
+ draw z4{curl0}..z55..z6{right}..{curl0}z7;
+endchar;
+
+beginchar("W",1.15twd#+rm#,ht#,0); ".tha";
+ italcorr rm#+.5twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ lm:= w-rm;
+ x3=good.x .75lm; y3=h;
+ z4=(x3,.66h);
+ z6=(.55lm,.1h);
+ z7=(lm,y5);
+ z8=(x4+penwd,y4-penwd);
+ draw z3--z4;
+ vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..(1/2penwd,y)..{right}z6) < 0 enddef;
+ z5 = (1/2penwd,solve dwn(y4,y6));
+ draw z4{curl0}..z5..z6{right}..z7{up}..{curl0}z8;
+endchar;
+
+if altna:
+ beginchar("Z",1.5twd#+brm#,ht#,0); ".na"; % alternate
+ italcorr brm#;
+ frame;
+ x9 = good.x w-1.80brm; y9 = ht;
+ z10 = (x9,.25ht);
+ draw z9--z10;
+ path p;
+ r :=.50;
+ z5=(r*(1/2penwd+1/2rm),.65h);
+ z6=(x9,0);
+ p = z5{down}..tension1.1..{curl0}z6;
+ z7=point .2 of p;
+ z8=(r*.53(w-.5rm),h);
+ draw p; draw z8{curl0}..tension1.1..{left}z7;
+ endchar;
+else:
+ beginchar("Z",1.1twd#+brm#,ht#,0); ".na"; % original
+ italcorr brm#;
+ frame;
+ x5=good.x 1/2penwd; y5=h;
+ z6=(x5,.55h);
+ z7=(1/2[x5,x8],.3h);
+ x8=good.x .65twd; y8=y6;
+ z9=(x8,h);
+ draw z5---z6..z7{right}..z8---z9;
+ endchar;
+fi;
+
+beginchar("t",twd#+brm#, ht#, 0); "ta";
+ italcorr brm#;
+ frame; y5 = good.y 2/3h; x5 = x3;
+ z6 = (0.35x3,y5); z7 = (0.55x3,0);
+ draw z5---z6..{curl0}z7;
+endchar;
+
+beginchar("T",1.1twd#+brm#,ht#,0); "tha";
+ italcorr brm#;
+ tframe; path p;
+ z5=(1/2penwd,.55h);
+ z6=(x3,.55h);
+ z7=(.25x3,h);
+ draw z5{dir-70}..tension.95..z6;
+ p=z5{right}..{left}z7;
+ z8=point .4 of p;
+ draw p..tension.95..{curl.2}z8;
+endchar;
+
+beginchar("d",5/6twd#+brm#,ht#,-.14ht#); "da";
+ italcorr brm#+.15twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x w-brm; y3=h;
+ z4=(x3,.72h);
+ z5=(1/2penwd,.53h);
+ z6=(x3,0.27h);
+ z7= z6 + (.3thick*(dir(rot+90)));
+ y8=0; z8=z7+whatever*dir305;
+ draw z1--z2; draw z3--z4;
+ draw z4{left}..tension.9..{down}z5..tension.9 and 1.1..{dir30}z6;
+ pickup penrazor scaled subthick;
+ draw z7--z8;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.6*thick) shifted (z6 + .3thick*(dir rot));
+endchar;
+
+beginchar("D",1.1twd#+brm#,ht#,0); "dha";
+ italcorr brm#;
+ path p;
+ tframe;
+ z5=(x3,.5h);
+ z6=(.65x3,.65h);
+ z10=(.18x3,.5h);
+ p=z5{curl0}..z10{up}...{right}z6;
+ draw p;
+ z7= point 1.7 of p;
+ z8=(.26x3,h);
+ vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z8) < 0
+ enddef;
+ z9=(1/2penwd,solve yup(y7,y8));
+ draw z7{curl0}..z9..{right}z8;
+endchar;
+
+if altjha:
+ beginchar("J",1.6twd#+brm#,ht#,0); "jha"; % alternate
+ italcorr brm#;
+ pickup frame_pen;
+ z1=(w-brm-1.95rm,h); z2=(w,h);
+ z3=(1.1twd,h); z4=(x3,0);
+ draw z1--z2;
+ draw z3--z4;
+ z5=(0,h);
+ z6=(3/2penwd+.1twd,.76h);
+ z7=(3/2penwd+.1twd,.34h);
+ z8=(x3,y7+penwd);
+ z9=(x7-1/2penwd,y7+1/2penwd);
+ z10=(1twd+0.5penwd,y8);
+ draw z5{right}..tension.95..z6---z7;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z9)--z8;
+ z11=(x10+0.58twd,.35h);
+ z12=(x10+0.5twd,.05h);
+ draw z10{curl.5}..z11{down}..tension1.3..z12;
+ endchar;
+elseif nepalijha:
+ beginchar("J",1.6twd#+brm#,ht#,0); "jha"; % Nepali alternate
+ italcorr brm#;
+ pickup frame_pen;
+ z1 = (0,ht);
+ z2 = (w,ht);
+ draw z1--z2;
+ x3 = good.x w-brm; y3 = ht;
+ z4 = (x3,0);
+ lm:= w-brm;
+ z5=(.45lm,h);
+ z6=(.53lm,.65h);
+ z90=(.2lm,.42h);
+ z91=(penwd,.75h);
+ draw z5..tension1.1..z6{down}..tension1.1..z90..tension1.3..z91;
+ z8=(.63lm,.05h);
+ z9=(.59lm,.12h);
+ z10=(.95lm,-.1h);
+ z11=(.53lm,.57h);
+ z12=(.82lm,.67h);
+ z13=(lm,.3h);
+ draw z11..z12{right}..z13..{left}z8..z9..tension1.4..{curl0}z10;
+ endchar;
+else:
+ beginchar("J",1.45twd#+brm#,ht#,0); "jha"; % original
+ italcorr brm#;
+ path p; frame;
+ % uses definition of i !!!
+ x5=good.x 13/17twd; y5=h;
+ z6=(x5,.74h);
+ z7=(1/2penwd,.6h);
+ z8=(x5+1/2penwd,.37h);
+ z9=(1/2x5,1/7h);
+ z10=(x5+penwd,-1/7h);
+ z11=(penwd,3/14h);
+ p = z6{left}..z7{down}..z8{down}..z9{left}..z11{dir40}..{curl0}z10;
+ z12=point 1.86 of p;
+ z13=(w-brm,y12+0.08h);
+ draw z5--z6; draw p;
+ draw z12{right}..z13;
+ endchar;
+fi;
+
+beginchar("X",13/17twd#+.25twd#+rm#+penwd#,ht#,-.1ht#); ".da";
+ italcorr rm#+.5twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x w-rm-penwd; y3=h;
+ z4=(x3,.74h); z5=(.25twd+1/2penwd,.6h);
+ z6=(x3+1/2penwd,.37h);
+ z7=(1/2(.25twd+x3),1/7h);
+ z8=(1/2penwd,.45h);
+ draw z1--z2; draw z3--z4;
+ draw z4{left}..z5{down}..z6{down}..z7{left}..z8;
+endsav;
+
+beginchar("Y",1.1twd#+rm#,ht#,0); ".dha";
+ italcorr rm#+.3twd#;
+ path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3=good.x .85(w-rm); y3=h;
+ z4=(x3,.72h);
+ z5=(1/2penwd,.47h);
+ z6=(.7(w-rm),1/2penwd);
+ z7=(w-rm,.23h);
+ draw z3--z4;
+ p=z4{left}..tension.9..{down}z5..tension.9..{right}z6..{up}z7;
+ z8=point 1.91 of p;
+ draw p..z6;
+endchar;
+
+beginchar("R",13/17twd#+.25twd#+rm#+2penwd#,ht#,-.1ht#); "'na";
+ italcorr rm#+.5twd#;
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z9=(w-rm,.45h+.8penwd); sqdot(z9);
+ addpic(ASCII "X");
+endchar;
+
+beginchar("w",13/17twd#+.25twd#+rm#+penwd#,ht#,2penwd#); "Ra";
+ italcorr rm#+.5twd#;
+ z9=(11/17twd+1/2penwd,-penwd); sqdot(z9);
+ addpic(ASCII "X");
+endchar;
+
+beginchar("n",twd#+brm#,ht#,0); "na";
+ italcorr brm#;
+ frame;
+ y6 = good.y 7/12h; x6 = twd;
+ y5 = y6 - .75penwd; x5 = 1.25penwd;
+ filldraw fullcircle scaled 1.5penwd shifted(x5,y5);
+ z7 = (x5,y6);
+ draw z6--z7;
+endchar;
+
+beginchar("p",.9twd#+brm#,ht#,0); "pa";
+ italcorr brm#;
+ frame;
+ z5=(penwd,h);
+ z6=(w-brm,.53h);
+ x7=x5+.15(w-brm);
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+endchar;
+
+beginchar("P",1.55twd#+rm#,ht#,0); "pha";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x .9twd; y3=h; z4=(x3,0);
+ draw z1--z2; draw z3--z4;
+ z5=(penwd,h);
+ z6=(x3,.53h);
+ x7=x5+.15x3;
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ z8=(w-rm,.5h);
+ z9=(.94(w-rm),.1h);
+ draw z6{curl.5}..z8{down}..tension1.3..z9;
+endchar;
+
+beginchar("b",11/12twd#+brm#,ht#,0); "ba";
+ italcorr brm#;
+ path p; frame;
+ z5=(x3,.52h);
+ z6=(1/2penwd,.5h);
+ z7=(x3,.48h);
+ p=z5..tension1.3..z6{down}..tension1.3..z7;
+ y8=h; z9=(.58x3,.5h);
+ z8=z9 + whatever*dir125;
+ y10=0;
+ z10=z9 + whatever*dir305;
+ z11= p intersectionpoint (z9--z8);
+ z12= p intersectionpoint (z9--z10);
+ draw p; draw z11--z12;
+endchar;
+
+beginchar("B",1.1twd#+brm#,ht#,0); "bha";
+ italcorr brm#;
+ tframe;
+ z5=(0,h);
+ z6=(3/2penwd+.1twd,.76h);
+ z7=(3/2penwd+.1twd,.34h);
+ z8=(x3,y7+penwd);
+ z9=(x7-1/2penwd,y7+1/2penwd);
+ draw z5{right}..tension.95..z6---z7;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z9)--z8;
+endchar;
+
+beginchar("m",1.1twd#+brm#,ht#,0); "ma";
+ italcorr brm#;
+ frame; x5=good.x 3/2penwd; y5=h;
+ z6=(x5,y7-penwd);
+ y7=good.y .35h+penwd; x7=x3;
+ z8=(x6-1/2penwd,y6+1/2penwd);
+ draw z5--z6;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z8)--z7;
+endchar;
+
+beginchar("v",11/12twd#+brm#,ht#,0); "va";
+ italcorr brm#;
+ frame; z5=(x3,.52h);
+ z6=(1/2penwd,.5h);
+ z7=(x3,.48h);
+ draw z5..tension1.3..z6{down}..tension1.3..z7;
+endchar;
+
+beginchar("y",1.1twd#+brm#,ht#,0); "ya";
+ italcorr brm#;
+ frame;
+ z5=(1/2penwd,.55h);
+ z6=(x3,.55h);
+ z7=(.3x3,h);
+ draw z5{dir-70}..tension.95..z6;
+ draw z5{right}..tension.95..z7;
+endchar;
+
+beginchar("r",.8twd#+1.5rm#,ht#,0); "ra";
+ italcorr 1.5rm#;
+ path p;
+ z1=(0,h); z2=(w,h);
+ pickup frame_pen;
+ draw z1--z2;
+ z5=(1/2penwd+1/2rm,.65h);
+ z6=(w-rm,0);
+ p = z5{down}..tension1.1..{curl0}z6;
+ z7=point .2 of p;
+ z8=(.53(w-.5rm),h);
+ draw p; draw z8{curl0}..tension1.1..{left}z7;
+endsav;
+
+% beginchar("l",4/3twd#+brm#,ht#,0); "la"; % original.
+% italcorr brm#;
+% frame; z5=(x3,2/3h);
+% z6=(5/8x3,4/10h);
+% z7=(1/4x3,2/3h);
+% z8=(1/2penwd,1/2h);
+% z9=(3/8x3,0);
+% draw z5{left}..{curl4}z6;
+% draw z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+% endchar;
+
+if altla:
+ beginchar("l",1.5twd#+brm#,ht#,0); "la"; % alternate
+ italcorr brm#;
+ pickup frame_pen;
+ lm := 4/3twd;
+ z1 = (0,h); z2 = (w,h);
+ z3 = (lm,h);
+ z5 = (x3,2/3h);
+ draw z1--z2;
+ draw z3--z5;
+ z6 = (5/8x3,4/10h);
+ z7 = (1/4x3,2/3h);
+ z8 = (1/2penwd,1/2h);
+ z9 = (3/8x3,0);
+ z10 = (.96(w-rm),.4h);
+ z11 = (x3,0);
+ draw z6{curl4}..z5{right}..z10{down}..tension2..z11;
+ draw z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+ endchar;
+else:
+ beginchar("l",4/3twd#+brm#,ht#,0); "la"; % version 2.0
+ italcorr brm#;
+ frame;
+ z5=(x3,2/3h);
+ z6=(.53x3,4/10h);
+ z7=(1/4x3,2/3h);
+ z8=(1/2penwd,1/2h);
+ z9=(3/8x3,0);
+ draw z5{left}..{curl4}z6;
+ draw z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+ endchar;
+fi;
+
+if altsha:
+ beginchar("f",4/3twd#+brm#,ht#,0); "'sa"; % alternate
+ italcorr brm#;
+ frame;
+ z6=(.46x3,h);
+ z7=(.53x6,.2h);
+ z8=(.18x3,.27h);
+ z9=(w-brm-.45twd,0);
+ z10=(.16x3,.7h);
+ z11=(.43x3,h);
+ z12=(.43x3,.75h);
+ draw z11--z12;
+ z13=(w-brm-.46twd,.45h);
+ draw z10..z12{right}..z13..{left}z7..z8..tension1.4..{curl0}z9;
+ endchar;
+else:
+ beginchar("f",4/3twd#+brm#,ht#,0); "'sa"; % original
+ italcorr brm#; path p;
+ frame;
+ z6=(.45x3,h);
+ z7=(.3x6,.25h);
+ z8=(.2x6,.32h);
+ z9=(w-brm-.45twd,0);
+ p = z6{right}..tension1.1..{left}z7..z8..tension1.4..{curl0}z9;
+ draw p;
+ z5= point .6 of p;
+ z10 = (.23x3,.72h);
+ draw z5{curl0}..z10{up}..z6{right};
+ endchar;
+fi;
+
+beginchar("q",.9twd#+brm#,ht#,0); ".sa";
+ italcorr brm#;
+ frame;
+ z5=(penwd,h);
+ z6=(w-brm,.53h);
+ x7=x5+.15(w-brm);
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ pickup penrazor scaled subthick;
+ draw (1/2penwd,h)--(x6,y6-1/2penwd);
+endchar;
+
+beginchar("s",1.2twd#+brm#,ht#,0); "sa";
+ % uses definition of r
+ italcorr brm#;
+ frame; path p; path q;
+ z5=(1/2penwd,.65h);
+ z6=(.6twd,0);
+ p= z5{down}..tension1.1..{curl0}z6;
+ z7= point .2 of p;
+ z8= (.424twd,h);
+ q= z8{curl0}..tension1.1..{left}z7;
+ z9= point .65 of q;
+ z10= (w-brm,y9);
+ draw p; draw q; draw z9{dir-30}..z10;
+endchar;
+
+% beginchar("h",1.1twd#+rm#,ht#,.2ht#); "ha"; % original
+% italcorr rm#+.55twd#;
+% lm := w-rm; pickup frame_pen;
+% z1=(0,h); z2=(w,h);
+% draw z1--z2;
+% x3=good.x .8lm; y3=h; z4=(x3,.75h);
+% z5=(1/2penwd,.65h); z6=(.4lm,.4h);
+% z7=(.65lm,1/2penwd); z8=(lm,.27h);
+% z9=(1.1lm,-.3h);
+% z10=(1/2penwd,.2h);
+% draw z3--z4{left}...z5{down}..z6;
+% draw z7..z8{up}..tension1.0 and 1.2..z6..z10{down}..tension1.3..{curl0}z9;
+% endchar;
+
+beginchar("h",1.1twd#+rm#,ht#,.2ht#); "ha"; % revision
+ italcorr rm#+.55twd#;
+ lm := w-rm; pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3=good.x .8lm; y3=h; z4=(x3,.75h);
+ z5=(1/2penwd,.65h); z6=(.4lm,.4h);
+ z7=(.7lm,1/2penwd); z8=(.87lm,.27h);
+ z9=(.9lm,-.3h);
+ z10=(1/2penwd,.2h);
+ draw z3--z4{left}...z5{down}..z6;
+ draw z7..z8{up}..tension1.1 and 1.2..z6..z10{down}..tension1.3..{curl0}z9;
+endchar;
+
+beginchar("x",1.1twd#+rm#,ht#,3penwd#); "Rha";
+ italcorr rm#+.3twd#;
+ z11=(.7(w-rm),-1.5penwd); sqdot(z11);
+ path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3=good.x .85(w-rm); y3=h;
+ z4=(x3,.72h);
+ z5=(1/2penwd,.47h);
+ z6=(.7(w-rm),1/2penwd);
+ z7=(w-rm,.23h);
+ draw z3--z4;
+ p=z4{left}..tension.9..{down}z5..tension.9..{right}z6..{up}z7;
+ z8=point 1.91 of p;
+ draw p..z6;
+endchar;
+
+beginchar(13,brm#,1.5ht#,0); "repha";
+ pickup sub_pen;
+ z1=(0,ht+penwd);
+ z2=(-.1ht,1.5ht);
+ z3=(.1ht,1.45ht);
+ draw z1{curl0}..z2{right}..z3;
+endchar;
+
+beginchar(19,brm#,1.5ht#,0); "repha + anusvara";
+ pickup sub_pen;
+ z1=(0,ht+penwd);
+ z2=(-.15ht,1.6ht);
+ z3=(.05ht,1.57ht);
+ draw z1{curl0}..z2{right}..{curl.2}z3;
+ z5=(.15rm,1.35ht);
+ sqdot(z5);
+endchar;
+
+beginchar(18,13/17twd#+rm#+penwd#,ht#,0); "front-ii + anusvara";
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h); z3=(w-rm-penwd,h);
+ z4=(x3,.74h); z5=(1/2penwd,.6h);
+ z6=(x3+1/2penwd,.37h);
+ z7=(1/2x3,1/7h);
+ z9=(penwd,3/14h);
+ z8=(x3+penwd,-1/7h);
+ draw z1--z2; draw z3--z4;
+ draw z4{left}..z5{down}..z6{down}..z7{left}..z9{dir40}..{curl0}z8;
+ z13=(13/17twd+.1h,1.2ht);
+ sqdot(z13);
+ z10=(x3,1.5h-1/2penwd);
+ z11=(x3+.17h,1.35h);
+ z12=(x3-1/2penwd,y3+penwd);
+ draw z12..z10{right}..z11;
+endchar;
+
+beginchar(20,twd#,ht#,0); "period";
+ z1=(1/2w,1/2penwd);
+ sqdot(z1);
+endchar;
+
+beginchar(21,twd#,ht#,0); "ell-dot";
+ z1=(1/2w,h-penwd);
+ sqdot(z1);
+endchar;
+
+beginchar(",",twd#,ht#,0); "visarga";
+ z1=(1/2w,.2h);
+ x25:=floor(x1)+.5;
+ y25:=floor(y1)+.5;
+ dwd:=ceiling(1.5thick);
+ if not odd dwd: dwd:= dwd+1; fi
+ fill unitsquare shifted -(.5,.5) rotated 45 scaled (.5sqrt2 * dwd)
+ shifted z25;
+ z2=(1/2w,.8h);
+ x25:=floor(x2)+.5;
+ y25:=floor(y2)+.5;
+ fill unitsquare shifted -(.5,.5) rotated 45 scaled (.5sqrt2 * dwd)
+ shifted z25;
+endchar;
+
+beginchar(4,.7twd#+.8rm#,1.5ht#,0); "english o";
+ pickup sub_pen;
+ z5=(w-.8rm,1.5ht);
+ z6=(.66(w-.8rm),1.25ht);
+ z7=(0,1.5ht);
+ draw z5..tension1.1..z6{left}..z7;
+endchar;
+
+beginchar(" ",.7twd#+.8rm#,1.5ht#,0); "candrabindu";
+ z1=(.55(w-.8rm),1.48ht);
+ sqdot(z1);
+ pickup sub_pen;
+ z5=(w-.8rm,1.5ht);
+ z6=(.66(w-.8rm),1.25ht);
+ z7=(0,1.5ht);
+ draw z5..tension1.1..z6{left}..z7;
+endchar;
+
+beginchar(".",twd#,ht#,0); "danda";
+ pickup frame_pen;
+ x1=good.x w; y1=0; z2=(x1,h); draw z1--z2;
+endchar;
+
+beginchar(";",1.2twd#,ht#,0); "double danda";
+ pickup frame_pen;
+ x1=good.x w-2.5penwd; y1=0;
+ z2=(x1,h);
+ x3=good.x w; y3=0;
+ z4=(x3,h);
+ draw z1--z2; draw z3--z4;
+endchar;
+
+beginchar("\",brm#,ht#,0); "anusvara";
+ z1=(0,1.45h);
+ sqdot(z1);
+endchar;
+
+% beginchar("_",twd#+rm#,ht#,0); "avagraha"; % original
+% pickup frame_pen;
+% z1=(w-rm,h);
+% z2=(.2(w-rm),.81h);
+% z3=(.85(w-rm),.25h);
+% z4=(.5(w-rm),0);
+% z5=(1/2penwd,.4h);
+% draw z1{left}..z2{down}..z3{down}..z4{left}..{curl.2}z5;
+% endchar;
+
+beginchar("_",twd#+rm#,ht#,0); "avagraha"; % revision
+ pickup frame_pen;
+ z1=(w,h);
+ z2=(.2twd+.55rm,.81h);
+ z3=(.85twd+.55rm,.25h);
+ z4=(.5twd+.55rm,0);
+ z5=((1/2penwd)+.55rm,.4h);
+ draw z1{left}..tension1.2..z2{down}..z3{down}..z4{left}..{curl.2}z5;
+endchar;
+
+% replaced with open ya
+%
+% beginchar("+",1.1twd#+brm#,ht#,0); "j~na";
+% italcorr brm#;
+% frame;
+% y5=good.y .7h; x5=x3;
+% z6=(1/2penwd,y5);
+% z7=(x6,.25h);
+% z8=(.55(w-brm),0);
+% z9=(x7+1/2penwd,y7-1/2penwd);
+% y10=.3[y9,y6]; x10=.65(w-brm);
+% draw z5--z6;
+% draw z6{curl0}..tension1.1..z10{down}..z9{left}..z7{up}..
+% tension1.3..{curl0}z8;
+% endchar;
+
+beginchar("+",1.1twd#+brm#,ht#,0); "open-ya";
+ italcorr brm#;
+ frame;
+ z5=(.15x3,.47h);
+ z6=(x3,.55h);
+ z7=(-1/2penwd,.75h);
+ z8=(.55x3,.70h);
+ z9=(.56x3,.74h);
+ draw z5{dir-70}..tension.95..z6;
+ draw z5{right}..tension.95..z8;
+ draw z8..z9;
+ draw z9..z7;
+endchar;
+
+if altksa:
+ beginchar(34,1.3twd#+brm#,ht#,0); "k.sa";
+ italcorr brm#;
+ frame;
+ z5=(x3, good.y .7h);
+ z6=(1/2penwd,y5);
+ draw z5--z6;
+ z7=(.60x3,y5);
+ z8=(.25x3,.40h);
+ z9=(.70x3,.25h);
+ z10= z9 + (.3thick*(dir(rot+90)));
+ y11=.00h; z11=z9+whatever*dir285;
+ pickup sub_pen;
+ draw z7{dir215}..tension.9..{down}z8..tension.9 and 1.1..{dir30}z9;
+ draw z10--z11;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.0*thick) shifted (z9 + .10thick*(dir rot));
+ endchar;
+else:
+ beginchar(34,1.3twd#+brm#,ht#,0); "k.sa";
+ italcorr brm#;
+ pickup frame_pen;
+ z1=(w-.7rm-brm,h); z2=(w,h);
+ x3=good.x w-brm; y3=h; z4=(x3,0);
+ draw z1--z2;
+ draw z3--z4;
+ z5=(w-brm,.7h);
+ z6=(.35(w-brm),h);
+ z7=(1/2penwd,.32h);
+ z8=(.6(w-brm),.15h);
+ z9=(.7(w-brm),-1/2penwd);
+ z10=(.2(w-brm),.65h);
+ z11=(.5(w-brm),.65h);
+ draw z5{dir230}..tension1.2..z10..z6{right}..z11..z7{down}..z8--z9;
+ draw fullcircle scaled .7thick shifted (x8,y8+.35thick);
+ endchar;
+fi;
+
+% beginchar("^",0,ht#,.25ht#); "virama"; % original
+% pickup frame_pen;
+% z1=(1.35rm,mb-.5h);
+% z2=(0,mb-.3h);
+% draw z1..{left}z2;
+% endchar;
+
+beginchar("^",0,0,.35ht#); "virama"; % revision
+ pickup frame_pen;
+ z1=(1.35rm,mb-.5ht);
+ z2=(0,mb-.3ht);
+ draw z1..{left}z2;
+endchar;
+
+beginchar("/",twd#+brm#,ht#,0); "tra";
+ italcorr brm#;
+ frame;
+ z5=(w-brm,.5h);
+ z6=(1/2penwd,.65h);
+ z7=(.3(w-brm),.25h);
+ draw z5{dir120}..z6;
+ draw z5--z7;
+endsav;
+
+beginchar("!",1.25twd#+brm#,ht#,0); "ruu";
+ pickup frame_pen;
+ z1=(0,h);
+ z2=(w,h);
+ draw z1--z2;
+ addto currentpicture also v[ASCII "r"];
+ z3=(.9twd+1/4penwd+1/2rm,.4h+penwd);
+ addto currentpicture also v[1] shifted z3;
+endchar;
+
+beginchar("z",twd#+1.5rm#,ht#,0); "ru";
+ path p; path q;
+ z1=(0,h); z2=(w,h);
+ pickup frame_pen;
+ draw z1--z2;
+ z5=(1/2penwd+1/2rm,.65h);
+ z6=(.8twd+1/2rm,0);
+ p=z5{down}..tension1.1..{curl0}z6;
+ z7=point .2 of p;
+ z8=(.425twd+1/2rm,h);
+ draw p;
+ q=z8{curl0}..tension1.1..{left}z7;
+ z9=point .8 of q;
+ draw q;
+ pickup sub_pen;
+ z10= (w-rm,.y9);
+ z11=(x6,.6y9);
+ draw z9{curl.2}..tension1.1..z10{down}..z11;
+endchar;
+
+if altri:
+ beginchar(27,2twd#+rm#,ht#,0); ".r"; % alternate
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h); z3=(twd,.5h);
+ z4=(1.75twd,.5h);
+ z5=(1.84twd,.3h);
+ z6=(1.45twd,.1h);
+ z7=(w-rm,0);
+ draw z1--z2;
+ draw z3..z4;
+ z20=(w-brm,h);
+ z21=(w-brm,.25h);
+ draw z20..z21;
+ draw z21..tension1.2..z6{down}..tension1.2..{curl.2}z7;
+ addto currentpicture also v[ASCII "/"];
+ endchar;
+else:
+ beginchar(27,2twd#+rm#,ht#,0); ".r"; % original
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h); z3=(twd,.5h);
+ z4=(1.7twd,.6h);
+ z5=(1.84twd,.3h);
+ z6=(1.45twd,.1h);
+ z7=(w-rm,0);
+ draw z1--z2;
+ draw z3--z4;
+ draw fullcircle scaled .8penwd shifted (x4,y4+.4penwd);
+ draw z4--z5..tension1.2..z6{down}..tension1.2..{curl.2}z7;
+ addto currentpicture also v[ASCII "/"];
+ endchar;
+fi;
+
+beginchar(11,1.1twd#+brm#,ht#,0); ".ga";
+ italcorr brm#; path p;
+ z11=(.6(w-brm),.5penwd);
+ sqdot(z11);
+ frame; z5=(.25(w-brm),h);
+ z6=(x5,.3h);
+ z7=2/3[z5,z6];
+ z8=z7 shifted (.1(w-brm),0);
+ z9= (1/2penwd,y6+.08h);
+ p = z5..z8{down}..z6{left}..z9{up};
+ z10 = point 2.4 of p;
+ draw p..z10;
+endchar;
+
+beginchar(12,1.36twd#+brm#,ht#,0); ".kha";
+ italcorr brm#;
+ frame; path p;
+ % uses definition of r and k;
+ z5=(1/2penwd,.65h);
+ z6=(.55twd,0);
+ p= z5{down}..tension1.1..{curl0}z6;
+ z7=point .2 of p;
+ z8= (.424twd,h);
+ draw p;
+ draw z8{curl0}..tension1.1..{left}z7;
+ z9=(w-brm,.55h);
+ z10=(w-brm-.55(23/16twd)+1/2penwd,.5h);
+ z11=(w-brm,.45h);
+ draw z9..tension1.3..z10{down}..tension1.3..z11;
+ z12=(.65(w-brm),0);
+ sqdot(z12);
+endchar;
+
+beginchar("'",1.55twd#+rm#,ht#,0); "fa";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x .9twd; y3=h; z4=(x3,0);
+ draw z1--z2; draw z3--z4;
+ z5=(penwd,h);
+ z6=(x3,.53h);
+ x7=x5+.15x3;
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ z8=(w-rm,.5h);
+ z9=(.94(w-rm),.1h);
+ draw z6{curl.5}..z8{down}..tension1.3..z9;
+ z10=(.45twd,.5penwd);
+ sqdot(z10);
+endchar;
+
+beginchar(")",1.4twd#+brm#,ht#,0); "za";
+ italcorr brm#;
+ z11=(.8(w-brm),.5penwd);
+ sqdot(z11);
+ frame;
+ y5 = good.y .66h; x5 = 1/2penwd;
+ z7 = (.45x3,y5);
+ z8 = (w-brm,y5);
+ y6 = good.y .17h; x6 = .52x3;
+ draw z5{curl.5}..tension1.2..z6{right}..{curl0}z7--z8;
+endchar;
+
+% beginchar("*",23/16twd#+rm#,ht#,0); "qa"; % original
+% italcorr rm#+.65twd#;
+% pickup frame_pen;
+% lm:=w-rm;
+% z1=(0,h); z2=(w,h); x3=good.x .55lm; y3=h;
+% z4=(x3,0); draw z1--z2; draw z3--z4;
+% z5=(x3,.6h);
+% z6=(1/2penwd,.55h);
+% z7=(x3,.5h);
+% z8=(lm,.5h);
+% z9=(.94lm,.1h);
+% draw z5..tension1.3..z6{down}..tension1.3..z7;
+% draw z7{curl.5}..z8{down}..tension1.3..z9;
+% z10=(.25(w-rm),.5penwd);
+% sqdot(z10);
+% endchar;
+
+beginchar("*",23/16twd#+rm#,ht#,0); "qa"; % revision
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ lm:=w-rm;
+ z1=(0,h); z2=(w,h); x3=good.x .55lm; y3=h;
+ z4=(x3,0); draw z1--z2; draw z3--z4;
+ z5=(x3,.6h);
+ z6=(1/2penwd,.47h);
+ z7=(x3,.5h);
+ z8=(lm,.45h);
+ z9=(.94lm,.1h);
+ draw z5..tension1.3..z6{down}..tension1.3..z7;
+ draw z7{curl.5}..z8{down}..tension1.3..z9;
+ z10=(.25(w-rm),.5penwd);
+ sqdot(z10);
+endchar;
+
+beginchar("G",1.1twd#+brm#,ht#,0); "gha";
+ italcorr brm#;
+ frame;
+ path p;
+ z5=(x3,.5h);
+ z6=(.65x3,.65h);
+ z10=(.18x3,.5h);
+ p=z5{curl0}..z10{up}...{right}z6;
+ draw p;
+ z7= point 1.7 of p;
+ z8=(.26x3,h);
+ vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z8) < 0
+ enddef;
+ z9=(1/2penwd,solve yup(y7,y8));
+ draw z7{curl0}..z9..{right}z8;
+endchar;
+
+% beginchar("~",0,ht#,.25ht#); "sub-r"; % original
+% pickup sub_pen;
+% z1=(-.35twd,mb-.45h);
+% z2=(0,mb-1/2penwd);
+% z3=(.32twd,mb-.25h);
+% draw z1--z2;
+% draw z2--z3;
+% endchar;
+
+beginchar("~",0,0,.25ht#); "sub-r"; % revision
+ pickup sub_pen;
+ z1=(-.35twd,mb-.45ht);
+ z2=(0,mb-1/2penwd);
+ z3=(.32twd,mb-.25ht);
+ draw z1--z2;
+ draw z2--z3;
+endchar;
+
+if altksa:
+ beginchar("#",1.3twd#,ht#,0); "half k.sa";
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ z3=(w,h); z4=(w,0);
+ draw z1--z2;
+ z5=(x3, good.y .7h);
+ z6=(1/2penwd,y5);
+ draw z5--z6;
+ z7=(.60x3,y5);
+ z8=(.25x3,.40h);
+ z9=(.70x3,.25h);
+ z10= z9 + (.3thick*(dir(rot+90)));
+ y11=.00h; z11=z9+whatever*dir285;
+ pickup sub_pen;
+ draw z7{dir215}..tension.9..{down}z8..tension.9 and 1.1..{dir30}z9;
+ draw z10--z11;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.0*thick) shifted (z9 + .10thick*(dir rot));
+ endchar;
+else:
+ beginchar("#",1.3twd#,ht#,0); "half k.sa";
+ pickup frame_pen;
+ z1=(w-.7rm,h); z2=(w,h);
+ z3=(w,h); z4=(w,0);
+ draw z1--z2;
+ z5=(w,.7h);
+ z6=(.35w,h);
+ z7=(1/2penwd,.32h);
+ z8=(.6w,.15h);
+ z9=(.7w,-1/2penwd);
+ z10=(.2w,.65h);
+ z11=(.5w,.65h);
+ draw z5{dir230}..tension1.2..z10..z6{right}..z11..z7{down}..z8--z9;
+ draw fullcircle scaled .7thick shifted (x8,y8+.35thick);
+ endchar;
+fi;
+
+beginchar("<",1.1twd#,ht#,0); "half bha";
+ z1=(w,h); z2=(w-.7rm,h);
+ pickup frame_pen;
+ draw z1--z2;
+ z5=(0,h);
+ z6=(3/2penwd+.1twd,.76h);
+ z7=(3/2penwd+.1twd,.34h);
+ z8=(w,y7+penwd);
+ z9=(x7-1/2penwd,y7+1/2penwd);
+ draw z5{right}..tension.95..z6---z7;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z9)--z8;
+endchar;
+
+beginchar("@",1.1twd#,ht#,0); "half dha";
+ z1 =(w,h); z2=(w-.7rm,h);
+ pickup frame_pen;
+ draw z1--z2;
+ path p;
+ z5=(w,.5h);
+ z6=(.65w,.65h);
+ z10=(.18w,.5h);
+ p=z5{curl0}..z10{up}...{right}z6;
+ draw p;
+ z7= point 1.7 of p;
+ z8=(.26w,h);
+ vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z8) < 0
+ enddef;
+ z9=(1/2penwd,solve yup(y7,y8));
+ draw z7{curl0}..z9..{right}z8;
+endchar;
+
+beginchar("]",1.1twd#,ht#,0); "half gha";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ path p;
+ z5=(w,.5h);
+ z6=(.65w,.65h);
+ z10=(.18w,.5h);
+ p=z5{curl0}..z10{up}...{right}z6;
+ draw p;
+ z7= point 1.7 of p;
+ z8=(.26w,h);
+ vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z8) < 0
+ enddef;
+ z9=(1/2penwd,solve yup(y7,y8));
+ draw z7{curl0}..z9..{right}z8;
+endchar;
+
+if altjha:
+ beginchar("$",1.6twd#,ht#,0); "half jha"; % alternate
+ pickup frame_pen;
+ z1=(w-1.95rm,h); z2=(w,h);
+ z3=(1.1twd,h); z4=(x3,0);
+ draw z1--z2;
+ draw z3--z4;
+ z5=(0,h);
+ z6=(3/2penwd+.1twd,.76h);
+ z7=(3/2penwd+.1twd,.34h);
+ z8=(x3,y7+penwd);
+ z9=(x7-1/2penwd,y7+1/2penwd);
+ z10=(1twd,y8);
+ z12=(w,y8);
+ draw z5{right}..tension.95..z6---z7;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z9)--z8;
+ draw z10--z12;
+ endchar;
+elseif nepalijha:
+ beginchar("$",1.6twd#,ht#,0); "half jha"; % Nepali alternate
+ pickup frame_pen;
+ z1 = (0,ht);
+ z2 = (w,ht);
+ draw z1--z2;
+ x3 = good.x w; y3 = ht;
+ z4 = (x3,0);
+ lm:= w;
+ z5=(.45lm,h);
+ z6=(.53lm,.65h);
+ z90=(.2lm,.42h);
+ z91=(penwd,.75h);
+ draw z5..tension1.1..z6{down}..tension1.1..z90..tension1.3..z91;
+ z11=(.53lm,.57h);
+ z12=(.82lm,.67h);
+ z13=(lm,.6h);
+ draw z11..z12{right}..z13;
+ endchar;
+else:
+ beginchar("$",1.45twd#,ht#,0); "half jha"; % original
+ path p;
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ x5=good.x 13/17twd; y5=h;
+ z6=(x5,.74h);
+ z7=(1/2penwd,.6h);
+ z8=(x5+1/2penwd,.37h);
+ z9=(1/2x5,1/7h);
+ z10=(x5+penwd,-1/7h);
+ z11=(penwd,3/14h);
+ p = z6{left}..z7{down}..z8{down}..z9{left}..z11{dir40}..{curl0}z10;
+ z12=point 1.86 of p;
+ z13=(w,y12+0.08h);
+ draw z5--z6; draw p;
+ draw z12{right}..z13;
+ endchar;
+fi;
+
+beginchar("H",1.36twd#,ht#,0); "half kha";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ path p;
+ z5=(1/2penwd,.65h);
+ z6=(.8twd,0);
+ p= z5{down}..tension1.1..{curl0}z6;
+ z7=point .2 of p;
+ z8= (.424twd,h);
+ draw p;
+ draw z8{curl0}..tension1.1..{left}z7;
+ z9=(w,.5h);
+ z10=(w-.55(23/16twd)+1/2penwd,.5h);
+ z11=(w,.5h);
+ draw z9..tension1.2..z10{down}..tension1.2..z11;
+endchar;
+
+beginchar("%",1.5twd#,ht#,0); "half pha";
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x .9twd; y3=h; z4=(x3,0);
+ draw z1--z2; draw z3--z4;
+ z5=(penwd,h);
+ z6=(x3,.53h);
+ x7=x5+.15x3;
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ z8=(w,y6);
+ draw z6{dir60}..z8;
+endchar;
+
+beginchar(22,1.2twd#,ht#,0); "half ~na";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5=(.16w,.7h);
+ z6=(.5w,.5h);
+ z7=(.22w,.2h);
+ z8=(w,y6);
+ z9=(1/2penwd,.4h);
+ draw z5..z6{down}..z7..{curl.2}z9;
+ draw z6{dir-20}..z8;
+endchar;
+
+beginchar("L",1.1twd#,ht#,0); "half tha";
+ path p;
+ z1=(w,h); z2=(w-.7rm,h);
+ pickup frame_pen;
+ draw z1--z2;
+ z5=(1/2penwd,.55h);
+ z6=(w,.55h);
+ z7=(.25w,h);
+ draw z5{dir-70}..tension.95..z6;
+ p=z5{right}..{left}z7;
+ z8=point .4 of p;
+ draw p..tension.95..{curl.2}z8;
+endchar;
+
+if altna:
+ beginchar(23,1.5twd#,ht#,0); "half-.na"; % alternate
+ pickup frame_pen;
+ x9 = good.x 1twd; y9 = ht;
+ z10 = (x9,.25ht);
+ draw z9--z10;
+ path p;
+ z11=(0,h); z12=(w,h);
+ draw z11--z12;
+ r :=.50;
+ z5=(r*(1/2penwd+1/2rm),.65h);
+ z6=(x9,0);
+ p = z5{down}..tension1.1..{curl0}z6;
+ z7=point .2 of p;
+ z8=(.5twd,h);
+ draw p; draw z8{curl0}..tension1.1..{left}z7;
+ endchar;
+else:
+ beginchar(23,1.1twd#,ht#,0); "half-.na"; % original
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ x5=good.x 1/2penwd; y5=h;
+ z6=(x5,.55h);
+ z7=(1/2[x5,x8],.3h);
+ x8=good.x .65twd; y8=y6;
+ z9=(x8,h);
+ draw z5---z6..z7{right}..z8---z9;
+ endchar;
+fi;
+
+beginchar("N",11/12twd#,ht#,0); "half-ba";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ path p;
+ z5=(w,.52h);
+ z6=(1/2penwd,.5h);
+ z7=(w,.48h);
+ p=z5..tension1.3..z6{down}..tension1.3..z7;
+ y8=h; z9=(.58w,.5h);
+ z8=z9 + whatever*dir125;
+ y10=0;
+ z10=z9 + whatever*dir305;
+ z11= p intersectionpoint (z9--z8);
+ z12= p intersectionpoint (z9--z10);
+ draw p; draw z11--z12;
+endchar;
+
+beginchar("Q",1.2twd#,ht#,0); "half-ca";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ y5 = good.y .65h; x5 = 1/2penwd;
+ z6 = (w-penwd,y5);
+ z9 = (.44w,y5);
+ z7 = (.55w,.3h);
+ z8 = (w,.4h);
+ draw z5--z6; draw z9{curl.5}..z7{right}..z8;
+endchar;
+
+if altsha:
+ beginchar("[",4/3twd#,ht#,0); "half-'sa"; % alternate; version 2.1
+ pickup frame_pen;
+ z1=(0,h);
+ z2=(w,h);
+ draw z1--z2;
+ z6=(.46w,h);
+ z7=(.53x6,.2h);
+ z8=(.18w,.27h);
+ z9=(w-.45twd,0);
+ z10=(.16w,.7h);
+ z11=(.43w,h);
+ z12=(.43w,.75h);
+ draw z11--z12;
+ z13=(w-.46twd,.45h);
+ draw z10..z12{right}..z13..{left}z7..z8..tension1.4..{curl0}z9;
+ endchar;
+else:
+ beginchar("[",4/3twd#,ht#,0); "half-'sa";
+ path p;
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z6=(.45w,h);
+ z7=(.3x6,.25h);
+ z8=(.2x6,.32h);
+ z9=(w-.45twd,0);
+ p = z6{right}..tension1.1..{left}z7..z8..tension1.4..{curl0}z9;
+ draw p;
+ z5= point .6 of p;
+ z10 = (.23w,.72h);
+ draw z5{curl0}..z10{up}..z6{right};
+ endchar;
+fi;
+
+beginchar("`",1.1twd#,ht#,0); "half-ga";
+ path p;
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5=(.25w,h);
+ z6=(x5,.3h);
+ z7=2/3[z5,z6];
+ z8=z7 shifted (.1w,0);
+ z9= (1/2penwd,y6+.08h);
+ p = z5..z8{down}..z6{left}..z9{up};
+ z10 = point 2.4 of p;
+ draw p..z10;
+endchar;
+
+beginchar(">",1.4twd#,ht#,0); "half-ja";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ y5 = good.y .66h; x5 = 1/2penwd;
+ z7 = (.45w,y5);
+ z8 = (w,y5);
+ y6 = good.y .17h; x6 = .52w;
+ draw z5{curl.5}..tension1.2..z6{right}..{curl0}z7--z8;
+endchar;
+
+% beginchar("?",1.35twd#,ht#,0); "half-ka"; % original
+% pickup frame_pen;
+% lm:=23/16twd;
+% z1=(0,h); z2=(w,h); x3=good.x .55lm; y3=h;
+% z4=(x3,0); draw z1--z2; draw z3--z4;
+% z5=(x3,.6h);
+% z6=(1/2penwd,.55h);
+% z7=(x3,.5h);
+% z8=(w,.55h);
+% z9=(x3,y6);
+% draw z5..tension1.3..z6{down}..tension1.3..z7;
+% draw z9{dir60}..z8;
+% endchar;
+
+beginchar("?",1.35twd#,ht#,0); "half-ka"; % revision
+ pickup frame_pen;
+ lm:=23/16twd;
+ z1=(0,h); z2=(w,h); x3=good.x .55lm; y3=h;
+ z4=(x3,0); draw z1--z2; draw z3--z4;
+ z5=(x3,.6h);
+ z6=(1/2penwd,.47h);
+ z7=(x3,.5h);
+ z8=(w,.55h);
+ z9=(x3,y6);
+ draw z5..tension1.3..z6{down}..tension1.3..z7;
+ draw z9{dir60}..z8;
+endchar;
+
+% beginchar("S",4/3twd#,ht#,0); "half-la"; % original.
+% pickup frame_pen;
+% z1 = (0,h); z2 = (w,h);
+% draw z1--z2;
+% z5=(w,2/3h);
+% z6=(5/8w,4/10h);
+% z7=(1/4w,2/3h);
+% z8=(1/2penwd,1/2h);
+% z9=(3/8w,0);
+% draw z5{left}..{curl4}z6;
+% draw z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+% endchar;
+
+beginchar("S",4/3twd#,ht#,0); "half-la"; % version 2.0
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5=(w,2/3h);
+ z6=(.56w,4/10h);
+ z7=(1/4w,2/3h);
+ z8=(1/2penwd,1/2h);
+ z9=(3/8w,0);
+ draw z5{left}..{curl4}z6;
+ draw z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+endchar;
+
+beginchar("M",1.1twd#,ht#,0); "half-ma";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ x5=good.x 3/2penwd; y5=h;
+ z6=(x5,y7-penwd);
+ y7=good.y .35h+penwd; x7=w;
+ z8=(x6-1/2penwd,y6+1/2penwd);
+ draw z5--z6;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z8)--z7;
+endchar;
+
+beginchar(6,twd#,ht#,0); "half-na";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ y6 = good.y 7/12h; x6 = w;
+ y5 = y6 - .75penwd; x5 = 1.25penwd;
+ filldraw fullcircle scaled 1.5penwd shifted(x5,y5);
+ z7 = (x5,y6);
+ draw z6--z7;
+endchar;
+
+beginchar("=",.9twd#,ht#,0); "half-pa";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5=(penwd,h);
+ z6=(w,.53h);
+ x7=x5+.15w;
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+endchar;
+
+beginchar(9,.9twd#,ht#,0); "half-.sa";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5=(penwd,h);
+ z6=(w,.53h);
+ x7=x5+.15w;
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ pickup penrazor scaled subthick;
+ draw (1/2penwd,h)--(x6,y6-1/2penwd);
+endchar;
+
+beginchar("-",1.2twd#,ht#,0); "half-sa";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ path p; path q;
+ z5=(1/2penwd,.65h);
+ z6=(.6twd,0);
+ p= z5{down}..tension1.1..{curl0}z6;
+ z7= point .2 of p;
+ z8= (.424twd,h);
+ q= z8{curl0}..tension1.1..{left}z7;
+ z9= point .65 of q;
+ z10= (w,y9);
+ draw p; draw q; draw z9{dir-30}..z10;
+endchar;
+
+beginchar("(",twd#,ht#,0); "half-ta";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ y5 = good.y 2/3h; x5 = w;
+ z6 = (0.35w,y5); z7 = (0.55w,0);
+ draw z5---z6..{curl0}z7;
+endchar;
+
+beginchar(38,11/12twd#,ht#,0); "half-va";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5 = (w,.52h);
+ z6 = (1/2penwd,.5h);
+ z7 = (w,.48h);
+ draw z5..tension1.3..z6{down}..tension1.3..z7;
+endchar;
+
+beginchar(5,1.1twd#,ht#,0); "half-ya";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5=(1/2penwd,.55h);
+ z6=(w,.55h);
+ z7=(.3w,h);
+ draw z5{dir-70}..tension.95..z6;
+ draw z5{right}..tension.95..z7;
+endchar;
+
+beginchar(28,1.1twd#,ht#,0); "half-.ga";
+ pickup frame_pen; path p;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z11=(.6w,.5penwd);
+ sqdot(z11);
+ z5=(.25w,h);
+ z6=(x5,.3h);
+ z7=2/3[z5,z6];
+ z8=z7 shifted (.1w,0);
+ z9= (1/2penwd,y6+.08h);
+ p = z5..z8{down}..z6{left}..z9{up};
+ z10 = point 2.4 of p;
+ draw p..z10;
+endchar;
+
+beginchar(7,1.36twd#,ht#,0); "half-.kha";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ path p;
+ z5=(1/2penwd,.65h);
+ z6=(.55twd,0);
+ p= z5{down}..tension1.1..{curl0}z6;
+ z7=point .2 of p;
+ z8= (.424twd,h);
+ draw p;
+ draw z8{curl0}..tension1.1..{left}z7;
+ z9=(w,.5h);
+ z10=(w-.55(23/16twd)+1/2penwd,.5h);
+ z11=(w,.5h);
+ draw z9..tension1.2..z10{down}..tension1.2..z11;
+ z12=(.67w,0);
+ sqdot(z12);
+endchar;
+
+beginchar(8,1.5twd#,ht#,0); "half-fa";
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x .9twd; y3=h; z4=(x3,0);
+ draw z1--z2; draw z3--z4;
+ z5=(penwd,h);
+ z6=(x3,.53h);
+ x7=x5+.15x3;
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ z8=(w,y6);
+ draw z6{dir60}..z8;
+ z10=(.45twd,.5penwd);
+ sqdot(z10);
+endchar;
+
+beginchar(30,1.4twd#,ht#,0); "half za";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z11=(.8w,.5penwd);
+ sqdot(z11);
+ y5 = good.y .66h; x5 = 1/2penwd;
+ z7 = (.45w,y5);
+ z8 = (w,y5);
+ y6 = good.y .17h; x6 = .52w;
+ draw z5{curl.5}..tension1.2..z6{right}..{curl0}z7--z8;
+endchar;
+
+% beginchar(10,1.35twd#,ht#,0); "half-qa"; % original
+% pickup frame_pen;
+% lm:=23/16twd;
+% z1=(0,h); z2=(w,h); x3=good.x .55lm; y3=h;
+% z4=(x3,0); draw z1--z2; draw z3--z4;
+% z5=(x3,.6h);
+% z6=(1/2penwd,.55h);
+% z7=(x3,.5h);
+% z8=(w,.55h);
+% z9=(x3,y6);
+% draw z5..tension1.3..z6{down}..tension1.3..z7;
+% draw z9{dir60}..z8;
+% z10=(.25lm,.5penwd);
+% sqdot(z10);
+% endchar;
+
+beginchar(10,1.35twd#,ht#,0); "half-qa"; % version 2.0
+ pickup frame_pen;
+ lm:=23/16twd;
+ z1=(0,h); z2=(w,h); x3=good.x .55lm; y3=h;
+ z4=(x3,0); draw z1--z2; draw z3--z4;
+ z5=(x3,.6h);
+ z6=(1/2penwd,.47h);
+ z7=(x3,.5h);
+ z8=(w,.55h);
+ z9=(x3,y6);
+ draw z5..tension1.3..z6{down}..tension1.3..z7;
+ draw z9{dir60}..z8;
+ z10=(.25lm,.5penwd);
+ sqdot(z10);
+endchar;
+
+beginchar("}",.7twd#+brm#,ht#,0); "r-stroke";
+ italcorr brm#;
+ pickup sub_pen;
+ z1=(w-brm,.4h);
+ z2=(0,0);
+ draw z1--z2;
+endsav;
+
+if altri:
+ % beginchar(17,2twd#+rm#,ht#,0); ".R"; % alternate; original
+ beginchar(17,2twd#+rm#,ht#,.25ht#); ".R"; % alternate;
+ italcorr brm#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x10 = good.x twd; y10 = h;
+ x11 = x10; y11 = 0;
+ draw z1--z2;
+ draw z10--z11;
+ z12 = (1/2penwd,.65h);
+ z13 = (.3x10,.25h);
+ z3=(x10,.5h);
+ draw z3{dir120}..z12;
+ draw z3--z13;
+ z4=(1.75twd,.5h);
+ z5=(1.84twd,.3h);
+ z6=(1.45twd,.15h);
+ z7=(w-rm,.05h);
+ draw z3--z4;
+ z20=(w-brm,h);
+ z21=(w-brm,.25h);
+ draw z20..z21;
+ p = z21..tension1.2..z6{down}..tension1.1..{curl.2}z7;
+ draw p;
+ z8 = point 1.5 of p;
+ z9 = (1.55twd,-.15h);
+ z14 = (2.1twd,-.25h);
+ draw z8..tension1.1..z9{down}..tension1.1..{curl.3}z14;
+ endchar;
+else:
+ % beginchar(17,2twd#+rm#,ht#,0); ".R"; % original
+ beginchar(17,2twd#+rm#,ht#,.25ht#); ".R"; % version 2.12
+ italcorr brm#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x10 = good.x twd; y10 = h;
+ x11 = x10; y11 = 0;
+ draw z1--z2;
+ draw z10--z11;
+ z12 = (1/2penwd,.65h);
+ z13 = (.3x10,.25h);
+ z3=(x10,.5h);
+ draw z3{dir120}..z12;
+ draw z3--z13;
+ z4=(1.7twd,.6h);
+ z5=(1.84twd,.3h);
+ z6=(1.45twd,.15h);
+ z7=(w-rm,.05h);
+ draw z3--z4;
+ draw fullcircle scaled .8penwd shifted (x4,y4+.4penwd);
+ p = z4--z5..tension1.2..z6{down}..tension1.1..{curl.2}z7;
+ draw p;
+ z8 = point 2.5 of p;
+ z9 = (1.55twd,-.15h);
+ z14 = (2.1twd,-.25h);
+ draw z8..tension1.1..z9{down}..tension1.1..{curl.3}z14;
+ endchar;
+fi;
+
+% beginchar(14,0,ht#,0); "sub .R"; % original
+beginchar(14,0,.1ht#,.5ht#); "sub .R"; % version 2.12
+ path p;
+ pickup sub_pen;
+ z1 = (2/14uwidth,mb-penwd);
+ z2 = (-9/28uwidth,mb-(penwd+.18uwidth));
+ z3 = (9/28uwidth,mb-(penwd+.36uwidth));
+ p = z1{left}..tension1.2..z2{down}..tension1.1..{curl.2}z3;
+ draw p;
+ z4 = point 1.5 of p;
+ z5 = (-8/28uwidth,mb-(penwd+.57uwidth));
+ z6 = (3/7uwidth,mb-(penwd+.68uwidth));
+ draw z4..tension1.1..z5{down}..tension1.2..{curl.3}z6;
+endchar;
+
+beginchar(":",2.2twd#+rm#,ht#,0); "OM";
+ pickup frame_pen;
+ path p; path q;
+ lwd := 1.2twd;
+ z5 = (1/2penwd,.8h);
+ z6 = (.72lwd,.70h);
+ z7 = (.32lwd,.42h);
+ p = z5{curl0}..tension1.1..z6..tension1.1..{curl0.3}z7;
+ z8 = point 1.6 of p;
+ z9 = (.7lwd,0);
+ z10 = (1/2penwd,.2h);
+ q = z8{curl.2}..z9{left}..tension.95..z10;
+ draw p; draw q;
+ z11 = point 0.45 of q;
+ z12 = (.75(w-rm),y11+.2h);
+ z13 = (.9(w-rm),.16h);
+ z14 = (.8(w-rm),0);
+ draw z11{curl.1}..z12{right}..z13{left}..z14;
+ z1 = (.5(w-rm),1.05h);
+ z2 = (.95(w-rm),y1);
+ z3 = (.66[x1,x2],.75h);
+ draw z2..tension1.1..z3{left}..z1;
+ z4 = (.5[x1,x2],1.1h);
+ sqdot(z4);
+endchar;
+
+beginchar(15,1.7twd#+rm#,ht#,0); "La";
+ italcorr rm#+.4twd#;
+ path p; pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ x3 = good.x .75(w-rm); y3 = h;
+ z4 = (x3,.63h);
+ draw z3--z4;
+ z6 = (x3,1/2penwd);
+ z5 = (.5(w-rm),.5[y6,y4]);
+ z7 = (w-rm,y5);
+ z8 = (.25(w-rm),1/2penwd);
+ z9 = (1/2penwd,y5);
+ z11 = (x8,y4);
+ p = z6{right}..z7{up}..z4{left}..z5..z8{left}..z9{up}..z11{right};
+ draw p;
+ z10 = point 3.2 of p;
+ z12 = point 2.8 of p;
+ draw z11{right}..{curl.5}z12;
+ draw z10{curl.5}..z6{right};
+endchar;
+
+beginchar(16,1.7twd#,ht#,0); "half La";
+ path p; pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ x3 = good.x .75w; y3 = h;
+ z4 = (x3,.63h);
+ z6 = (x3,1/2penwd);
+ z5 = (.5w,.5[y6,y4]);
+ z7 = (w,y5);
+ z8 = (.25w,1/2penwd);
+ z9 = (1/2penwd,y5);
+ z11 = (x8,y4);
+ p = z6{right}..z7{up}..z4{left}..z5..z8{left}..z9{up}..z11{right};
+ draw p;
+ z10 = point 3.2 of p;
+ z12 = point 2.8 of p;
+ draw z11{right}..{curl.5}z12;
+ draw z10{curl.5}..z6{right};
+endchar;
+
+% beginchar(31,0,ht#,0); "sub-.l"; % original
+beginchar(31,0,.1ht#,.425ht#); "sub-.l"; % version 2.12
+ path p;
+ pickup sub_pen;
+ z1 = (-3/8uwidth,mb-(penwd+3/8uwidth));
+ lft z2 = (-1/2uwidth,mb-(penwd+1/8uwidth));
+ z3 = (-1/8uwidth,mb-penwd);
+ z4 = (0,mb-(penwd+4/16uwidth));
+ p = z1..z2..z3..z4;
+ draw p;
+ z5 = point 2.6 of p;
+ z6 = (4/16uwidth,mb-penwd);
+ z7 = (7/16uwidth,mb-(penwd+1/4uwidth));
+ z8 = (5/16uwidth,mb-(penwd+1/2uwidth));
+ z9 = (5/8uwidth,mb-(penwd+9/16uwidth));
+ draw z5..z6{right}..z7{down}..z8{down}..tension.95..{curl.2}z9;
+endchar;
+
+beginchar(29,twd#,ht#,0); "Marathi ra";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z3 = (1/2penwd,.55h);
+ z4 = (w,y3);
+ draw z3{dir-30}..z4;
+endchar;
+
+if altli:
+ % beginchar(24,1.65twd#+rm#,ht#,0); ".l"; % alternate; version 2.1
+ beginchar(24,1.65twd#+rm#,ht#,.1ht#); ".l"; % alternate; version 2.12
+ italcorr rm#;
+ pickup frame_pen;
+ z1 = (0,ht); z2 = (w,ht);
+ x3 = good.x w-brm; y3 = ht; z4 = (x3,.15h);
+ draw z1--z2; draw z3--z4;
+ z5=(x3,2/3h);
+ z6=(.53x3,4/10h);
+ z7=(1/4x3,2/3h);
+ z8=(1/2penwd,1/2h);
+ z9=(3/8x3,0);
+ draw z5{left}..{curl4}z6;
+ draw z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+ z10=(.75x3,0);
+ z11=(1.1x3,-.08h);
+ draw z4..tension1.2..z10{down}..tension.95..{curl.2}z11;
+ endchar;
+else:
+ % beginchar(24,1.65twd#+rm#,ht#,0); ".l"; % original
+ beginchar(24,1.65twd#+rm#,ht#,.1ht#); ".l"; % version 2.12
+ italcorr rm#;
+ pickup frame_pen;
+ lm := 4/3twd;
+ z1 = (0,h); z2 = (w,h);
+ z3 = (lm,h);
+ z5 = (x3,2/3h);
+ draw z1--z2;
+ draw z3--z5;
+ z6 = (5/8x3,4/10h);
+ z7 = (1/4x3,2/3h);
+ z8 = (1/2penwd,1/2h);
+ z9 = (3/8x3,0);
+ z10 = (w-rm,.4h);
+ z11 = (.85lm,0);
+ z12 = (w-rm,-.08h);
+ draw z6{curl4}..z5{right}..z10{down}..z11{down}..tension.95..{curl.2}z12;
+ draw z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+ endchar;
+fi;
+
+if altli:
+ % beginchar(25,1.65twd#+rm#,ht#,0); ".L"; % alternate; version 2.1
+ beginchar(25,1.65twd#+rm#,ht#,.4ht#); ".L"; % alternate; version 2.12
+ italcorr rm#;
+ path p;
+ pickup frame_pen;
+ z1 = (0,ht); z2 = (w,ht);
+ x3 = good.x w-brm; y3 = ht; z4 = (x3,.15h);
+ draw z1--z2; draw z3--z4;
+ z5=(x3,2/3h);
+ z6=(.53x3,4/10h);
+ z7=(1/4x3,2/3h);
+ z8=(1/2penwd,1/2h);
+ z9=(3/8x3,0);
+ draw z5{left}..{curl4}z6;
+ draw z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+ z10=(.75x3,0);
+ z11=(1.1x3,-.08h);
+ p = z4..tension1.2..z10{down}..tension.95..{curl.2}z11;
+ draw p;
+ z12 = point 1.5 of p;
+ z13 = (.85x3,-.25h);
+ z14 = (1.2x3,-.35h);
+ draw z12..tension1.1..z13{down}..tension1.1..{curl.3}z14;
+ endchar;
+else:
+ % beginchar(25,1.65twd#+rm#,ht#,0); ".L"; % original
+ beginchar(25,1.65twd#+rm#,ht#,.4ht#); ".L"; % version 2.12
+ italcorr rm#;
+ pickup frame_pen; path p;
+ lm := 4/3twd;
+ z1 = (0,h); z2 = (w,h);
+ z3 = (lm,h);
+ z5 = (x3,2/3h);
+ draw z1--z2;
+ draw z3--z5;
+ z6 = (5/8x3,4/10h);
+ z7 = (1/4x3,2/3h);
+ z8 = (1/2penwd,1/2h);
+ z9 = (3/8x3,0);
+ z10 = (w-rm,.4h);
+ z11 = (.85lm,0);
+ z12 = (w-rm,-.08h);
+ p = z6{curl4}..z5{right}..z10{down}..z11{down}..tension.95..{curl.2}z12;
+ draw p;
+ draw z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+ z13 = point 3.5 of p;
+ z14 = (1.08x10,-.35h);
+ draw z13{dir210}..{curl.2}z14;
+ endchar;
+fi;
+
+% beginchar(124,0,ht#,0); "sub-.L"; % original
+beginchar(124,0,.1ht#,.6ht#); "sub-.L"; % version 2.12
+ path p;
+ pickup sub_pen; path q;
+ z1 = (-3/8uwidth,mb-(penwd+3/8uwidth));
+ lft z2 = (-1/2uwidth,mb-(penwd+1/8uwidth));
+ z3 = (-1/8uwidth,mb-penwd);
+ z4 = (0,mb-(penwd+4/16uwidth));
+ p = z1..z2..z3..z4;
+ draw p;
+ z5 = point 2.6 of p;
+ z6 = (4/16uwidth,mb-penwd);
+ z7 = (7/16uwidth,mb-(penwd+1/4uwidth));
+ z8 = (5/16uwidth,mb-(penwd+1/2uwidth));
+ z9 = (5/8uwidth,mb-(penwd+9/16uwidth));
+ q = z5..z6{right}..z7{down}..z8{down}..tension.95..{curl.2}z9;
+ draw q;
+ z10 = point 3.5 of q;
+ z11 = (1.1x9,mb-(penwd+27/32uwidth));
+ draw z10{dir210}..{curl.2}z11;
+endchar;
+
+beginchar("0",.5ht#+rm#,ht#,0); "0";
+ pickup frame_pen; z1 =(1/4h+1/2penwd,1/2h);
+ draw fullcircle scaled 1/2h shifted z1;
+endchar;
+
+if altone:
+ beginchar("1",5/8twd#+rm#,ht#,0); "1"; % alternate
+ pickup frame_pen; path p;
+ z1=(w-rm,-.2h);
+ z2=(w-rm,-.2h);
+ z3=(x2-.75penwd,y2-.75penwd);
+ z4=(w-rm,.7h);
+ z5=(.6(w-rm),h);
+ z6=(1/2penwd,.75h);
+ p=z1{curl0}..tension1.2..z4{up}..z5{left};
+ z7=point .9 of p;
+ draw p..z6{down}..tension1.1..z7;
+ endchar;
+else:
+ beginchar("1",5/8twd#+rm#,ht#,0); "1";
+ pickup frame_pen; path p;
+ z1=(1/2penwd,.2h);
+ z2=(w-rm,-.2h);
+ z3=(x2-.75penwd,y2-.75penwd);
+ z4=(w-rm,.7h);
+ z5=(.6(w-rm),h);
+ z6=(1/2penwd,.75h);
+ draw z1--z2;
+ draw z2--z3;
+ p=z1{curl0}..tension1.2..z4{up}..z5{left};
+ z7=point .8 of p;
+ draw p..z6{down}..tension1.1..z7;
+ endchar;
+fi;
+
+beginchar("2",twd#+rm#,ht#,0); "2";
+ pickup frame_pen;
+ z1=(1/2penwd,.9h);
+ z2=(w-rm,.7h);
+ z3=(.25(w-rm),.35h);
+ z4=(x3,.45h);
+ z5=(w-rm,-.2h);
+ draw z1{curl0}..tension1.1..z2{down}..z3{left}..z4..tension2..{curl0}z5;
+endchar;
+
+beginchar("3",.85twd#+rm#,ht#,0); "3";
+ pickup frame_pen;
+ z1=(1/2penwd,.95h);
+ z2=(.95(w-rm),.78h);
+ z3=(.65(w-rm),.6h);
+ z4=(.2(w-rm),.6h);
+ z5=(w-rm,.35h);
+ z6=(.3(w-rm),.15h);
+ z7=(x6,.25h);
+ z8=(w-rm,-.2h);
+ draw z1{right}..tension1.1..z2{down}..{left}z3..tension1.2..{curl0}z4;
+ draw z3..z5{down}..z6{left}..z7..tension2..{curl0}z8;
+endchar;
+
+beginchar("4",4/3twd#+rm#,ht#,0); "4";
+ pickup frame_pen;
+ z1=(1/2penwd,h);
+ z2=(w-rm,h);
+ z3=(1/2(w-rm),.2h);
+ z4=(1/2(w-rm),.64h);
+ draw z1..z4..tension.9..z3{left}..tension.9..z4..z2;
+endchar;
+
+if altfive:
+ beginchar("5",1.15twd#+rm#,ht#,0); "5"; % alternate
+ pickup frame_pen;
+ path p;
+ z1=(1/2penwd,h);
+ z2=(.85(w-rm),.85h);
+ z3=(.9(w-rm),0);
+ z5=(.85(w-rm),-.2h);
+ draw z2{left}..tension1.2..z3{down}..{curl0}z5;
+ z7=(.45(w-rm),.45h);
+ draw z1{down}..tension1.1..z7..tension1.1..z2{up};
+ endchar;
+else:
+ beginchar("5",1.15twd#+rm#,ht#,0); "5"; % original
+ pickup frame_pen;
+ path p;
+ z1=(1/2penwd,h);
+ z2=(.75(w-rm),h);
+ z3=(.1(w-rm),1/2penwd);
+ z4=(x3,y3+1/2penwd);
+ z5=(w-rm,-.1h);
+ p=z2{curl0}..tension1.2..z3{left}..z4..{curl0}z5;
+ draw p;
+ z6=point .3 of p;
+ x7=.4[x1,x6]; y7=1.3[y1,y6];
+ draw z1{down}..tension1.1..z7{right}..tension1.1..z6;
+ endchar;
+fi;
+
+beginchar("6",twd#+rm#,ht#,0); "6";
+ pickup frame_pen;
+ path p;
+ z1 = (.75(w-rm),h);
+ z2 = (1/2penwd,.8h);
+ z3 = (.8(w-rm),.6h);
+ p = z1{curl0}..z2{down}..{curl0}z3;
+ z4 = point 1.7 of p;
+ z5 = (.36(w-rm),.2h);
+ z6 = (.9(w-rm),.25h);
+ z7 = (.8(w-rm),.25h);
+ z8 = (w-rm,-.2h);
+ draw p;
+ draw z4..z5..tension1.1..z6{up}..z7..tension2..{curl0}z8;
+endchar;
+
+beginchar("7",4/3twd#+rm#,ht#,0); "7";
+ pickup frame_pen;
+ z1=(1/2penwd,h);
+ z2=(.6(w-rm),1/2penwd);
+ z3=(w-rm,1/2h);
+ z4=(.75(w-rm),.87h);
+ draw z1{curl0}..tension1.2..z2{right}..z3{up}..z4{left}..tension.95..{curl.5}z3;
+endchar;
+
+if alteight:
+ beginchar("8",4/3twd#+rm#,ht#,0); "8"; % alternate
+ pickup frame_pen;
+ z1=(.8(w-rm),h);
+ z2=(.15(w-rm),.3h);
+ z3=(.5(w-rm),0);
+ z4=(.85(w-rm),.25h);
+ draw z1..tension1.4..z2;
+ draw z2..z3..z4;
+ endchar;
+else:
+ beginchar("8",1.1twd#+rm#,ht#,0); "8"; % original
+ pickup frame_pen;
+ z1=(0,.8h);
+ z2=(w-rm,y1);
+ draw z1--z2;
+ z3=(.25(w-rm),y1);
+ z4=(1/2penwd,.3h);
+ z5=(.5(w-rm),.2h);
+ z6=(w-rm,.15h);
+ z7=(.9(w-rm),0);
+ draw z3..z4{down}..tension1.1..z5..tension1.1..z6{down}..{curl0}z7;
+ endchar;
+fi;
+
+if altnine:
+ beginchar("9",1.1twd#+rm#,ht#,0); "9"; % alternate
+ pickup frame_pen;
+ z1 = (.95(w-rm),.8h);
+ z2 = (.45(w-rm),.85h);
+ z3 = (.7(w-rm),.45h);
+ draw z1{curl0}..z2{down}..{curl.1}z3;
+ z4 = (.75(w-rm),.45h);
+ z5 = (.15(w-rm),.45h);
+ z6 = (.85(w-rm),-.15h);
+ draw z4..tension1.3..z5..tension1.2..{curl0}z6;
+ endchar;
+else:
+ beginchar("9",1.1twd#+rm#,ht#,0); "9"; % original
+ pickup frame_pen; path p;
+ z1 = (.4(w-rm),h);
+ z2 = (1/2penwd,.8h);
+ z3 = (w-rm,-.1h);
+ p = z1{left}..z2{down}..tension2..{curl0}z3;
+ z4 = point 1.23 of p;
+ z5 = (.85(w-rm),-.2h);
+ draw z4..tension1.2..p..{curl0}z5;
+ endchar;
+fi;
+
+beginchar(127,.5ht#+2rm#,ht#,0); "abbreviation";
+ pickup sub_pen;
+ z1=(1/2w,.8h-1/2penwd);
+ draw fullcircle scaled .4h shifted z1;
+endchar;
+
+beginchar(128,1.3twd#+brm#,ht#,0); "sra";
+ italcorr brm#;
+ pickup frame_pen;
+ z1 = (w-rm-brm,h); z2 = (w,h);
+ x3 = good.x w-brm; y3 = h; z4 = (x3,0);
+ draw z1--z2;
+ draw z3--z4;
+ z5 = (w-brm,.45h);
+ z6 = (x7,.2h);
+ z7 = (.36(w-brm),h-2.5penwd);
+ z8 = (1/2penwd,y5);
+ z9 = (.8x7,h);
+ draw z5--z6;
+ draw z8--z7{right}..z9{left}..{right}z7--z5;
+endchar;
+
+beginchar(129,1.3twd#+brm#,ht#,0); "tta";
+ italcorr brm#;
+ frame;
+ y5 = good.y 2/3h; x5=1/2penwd;
+ z6 = (w-brm,y5);
+ draw z5--z6;
+ z8 = (0.65twd,y5); z7 = (0.85twd,0);
+ draw z6---z8..{curl0}z7;
+endchar;
+
+beginchar(130,1.3twd#,ht#,0); "half tta";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ y5 = good.y 2/3h; x5 = w;
+ z6 = (.65twd,y5); z7 = (.85twd,0);
+ draw z5---z6..{curl0}z7;
+ z8 = (1/2penwd,y5);
+ draw z8--z5;
+endchar;
+
+beginchar(131,1.55twd#+rm#,ht#,0); "phra";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x .9twd; y3=h; z4=(x3,0);
+ draw z1--z2; draw z3--z4;
+ z5=(penwd,h);
+ z6=(x3,.53h);
+ x7=x5+.15x3;
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ z8=(w-rm,.5h);
+ z9=(.94(w-rm),.1h);
+ draw z6{curl.5}..z8{down}..tension1.3..z9;
+ pickup sub_pen;
+ z11=(x3,.45h);
+ z12=(.1twd,1/2penwd);
+ draw z11--z12;
+endchar;
+
+beginchar(132,1.55twd#+rm#,ht#,0); "fra";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x .9twd; y3=h; z4=(x3,0);
+ draw z1--z2; draw z3--z4;
+ z5=(penwd,h);
+ z6=(x3,.53h);
+ x7=x5+.15x3;
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ z8=(w-rm,.5h);
+ z9=(.94(w-rm),.1h);
+ draw z6{curl.5}..z8{down}..tension1.3..z9;
+ z10 = (0,.3h);
+ sqdot(z10);
+ pickup sub_pen;
+ z11 = (x3,.4h);
+ z12 = (.2twd,0);
+ draw z11--z12;
+endchar;
+
+beginchar(133,1.8twd#+brm#,ht#,0); "jra";
+ italcorr brm#;
+ frame;
+ x5 = 1/2penwd; y5 = good.x .66h;
+ z7 = (.63twd,y5);
+ z8 = (1.8twd,y5);
+ z6 = (.73twd,.17h);
+ draw z5{curl1.5}..tension1.2..z6{right}..{curl0}z7--z8;
+ addto currentpicture also v[ASCII "}"] shifted (1.1twd,0);
+endchar;
+
+beginchar(134,1.8twd#+brm#,ht#,0); "zra";
+ italcorr brm#;
+ frame;
+ x5 = 1/2penwd; y5 = good.x .66h;
+ z7 = (.63twd,y5);
+ z8 = (1.8twd,y5);
+ z6 = (.73twd,.17h);
+ draw z5{curl1.5}..tension1.2..z6{right}..{curl0}z7--z8;
+ addto currentpicture also v[ASCII "}"] shifted (1.1twd,0);
+ z11 = (1.2twd,.4h);
+ sqdot(z11);
+endchar;
+
+beginchar(135,1.65twd#+rm#,ht#,0); "kra";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z3 = (twd,.5h);
+ z4 = (w-rm,.5h);
+ z5 = (w-rm-39/450twd,.1h);
+ draw z3{curl.5}..z4{down}..tension1.3..z5;
+ addto currentpicture also v[ASCII "/"];
+endchar;
+
+beginchar(136,1.2twd#+brm#,ht#,.1ht#); "ddha";
+ italcorr brm#; path p; path q;
+ pickup frame_pen;
+ lm := 5/6twd;
+ z1=(0,h); z2=(w,h);
+ x3=good.x w-brm; y3=h;
+ z4=(x3,.72h);
+ z5=(w-brm-lm+1/2penwd,.53h);
+ z6=(x3,0.27h);
+ z7= z6 + (.3thick*(dir(rot+90)));
+ y8=-.3h; z8=z7+whatever*dir305;
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..tension.9..{down}z5..tension.9 and 1.1..{dir30}z6;
+ draw p;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.6*thick) shifted (z6 + .3thick*(dir rot));
+ z9 = .4[z7,z8];
+ z11 = point 1.6 of p;
+ z10 = (w-brm-.8lm,y9);
+ q = z11..z10{down}..tension1.1..{curl.2}z9;
+ draw q;
+ z12 = point 0.7 of q;
+ z13 = (.15(w-brm),.45h);
+ draw z12{curl.1}..tension1.2..z13{right};
+ pickup penrazor scaled subthick;
+ draw z7--z8;
+endchar;
+
+beginchar(137,1.2twd#+brm#,ht#,.1ht#); "dbha";
+ italcorr brm#;
+ pickup frame_pen;
+ z1= (0,h); z2= (w,h);
+ draw z1--z2;
+ x3= good.x w-brm; y3=h;
+ z4= (x3,.76h);
+ z5= (.42(w-brm),.62h);
+ z6= (x3,.45h);
+ z7= (x3,0);
+ z9= (1/2penwd,.45h);
+ z11= (.45(w-brm),0);
+ z8= (x3,y11+penwd);
+ z12= (x11-1/2penwd,y11+1/2penwd);
+ draw z3--z4{left}..tension1.3..z5{down}..tension1.2..{curl.2}z6--z7;
+ draw z9{right}..tension.9..{down}z11;
+ draw (reverse halfcircle rotated rot scaled usthick
+ shifted z12) --z8;
+endchar;
+
+beginchar(138,twd#+brm#,ht#,.3ht#); "dgha";
+ italcorr brm#; path p; path q;
+ pickup frame_pen;
+ z1= (0,h); z2= (w,h);
+ draw z1--z2;
+ x3= good.x w-brm; y3=h;
+ z4 =(x3,.74h);
+ z5= (.22(w-brm),.61h);
+ z6= (x3,.42h);
+ z7= (x3,-.3h);
+ z8= (x3,0);
+ draw z3--z4;
+ p= z4{left}..tension1.4..z5{down}..tension1.4..{curl.3}z6--z7;
+ draw p;
+ z9= point 1.25 of p;
+ z10= (.15x3,0);
+ z11= (.5x3,.15h);
+ q= z8{curl0}..z10{up}...{right}z11;
+ draw q;
+ z12= point 1.7 of q;
+ vardef yup(expr y)= xpart direction 1 of (z12{curl0}..(1/2penwd,y)
+ ..{right}z9) < 0
+ enddef;
+ z13= (1/2penwd,solve yup(y12,y9));
+ draw z12{curl.2}..z13..{right}z9;
+endchar;
+
+beginchar(139,.95twd#+brm#,ht#,.45ht#); "dga";
+ italcorr brm#; path p; path q;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x w-brm; y3=h;
+ z4=(x3,.72h);
+ z5=(1/2penwd,.5h);
+ z6=(x3,0.27h);
+ z7= z6 + (.3thick*(dir(rot)));
+ z8= (x7,-.45h);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..{down}z5..tension1.2..{dir30}z6;
+ draw p;
+ draw z7--z8;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.6*thick) shifted (z6 + .3thick*(dir rot));
+ z9 = point 1.35 of p;
+ z10 = (.5x9,y9-.5h);
+ z12 = (1/2penwd,y10+.08h);
+ q = z9{down}..tension1.3..z10{left}..z12{up};
+ z13 = point 1.3 of q;
+ draw q..{curl.2}z13;
+endchar;
+
+beginchar(140,5/6twd#+brm#,ht#,.1ht#); "dda";
+ italcorr brm#+.15twd#;
+ pickup frame_pen;
+ path p;
+ z1 = (0,h); z2 = (w,h);
+ x3 = good.x w-brm; y3 = h;
+ z4 = (x3,.4h);
+ z5 = (1/2penwd,.22h);
+ z6 = (x3+penwd,1/2penwd);
+ z7 = (x3,y6);
+ y8 = -.3h; z8 = z7+whatever*dir305;
+ draw z1--z2;
+ p = z4{curl0}..tension1.2..{down}z5..tension1.1..{curl.2}z6;
+ draw p;
+ draw z6..tension1.2..z7{down}..tension1.3..{curl0}z8;
+ z9 = (x3,.73h);
+ z10 = (1/2penwd,.56h);
+ z11 = point 0.5 of p;
+ draw z3--z9;
+ draw z9{left}..{down}z10..{curl.3}z11;
+endchar;
+
+beginchar(141,1.4twd#+brm#,ht#,0); "dya";
+ italcorr brm#;
+ frame;
+ x10=good.x 5/6twd; y10=y1;
+ z7=(x10,.72h);
+ z5=(1/2penwd,.53h);
+ z6=(x10,0.35h);
+ z8=(x10-.15twd,y6);
+ z9=(x3,.2h);
+ z11 = (.95twd,0);
+ draw z10--z7;
+ draw z7{left}..tension.9..{down}z5..tension.9 and 1.1..{dir30}z6..
+ z8{dir225}..z11{right}..{curl.5}z9;
+endchar;
+
+beginchar(142,1.75twd#+brm#,ht#,0); "dbhya";
+ italcorr brm#;
+ frame; path p;
+ x13=good.x 1.2twd; y13=y1;
+ z14= (x13,.76h);
+ z5= (.37x13,.63h);
+ z6= (x13,.45h);
+ z7= (x13,0);
+ z9= (0,.6h);
+ z11= (.3x13,.05h);
+ z8= (x13,y11+penwd);
+ z12= (x11+.1twd,y11);
+ p = z13--z14{left}..tension1.4..z5{down}..tension1.4..{curl.5}z6..
+ tension1.6..z11..z12{up}..tension1.2..z9;
+ draw p;
+ z10= point 3.4 of p;
+ z15= (x3,0.15h);
+ draw z10..tension.95..{right}z15;
+endchar;
+
+beginchar(143,1.8twd#+brm#,ht#,0); "ddhya";
+ italcorr brm#; path p; path q;
+ frame;
+ x10=good.x 5/6twd + .4twd; y10=y1;
+ z7=(x10,.73h);
+ z5=(.4twd+1/2penwd,.59h);
+ z6=(x10,0.4h);
+ z8=(x7-.15twd,y6);
+ z9=(x3,.25h);
+ draw z10--z7;
+ p = z7{left}..tension1.4..{down}z5..tension1.4..{dir30}z6..
+ z8{dir220}..tension.9..{dir40}z9;
+ draw p;
+ z11 = point 3.5 of p;
+ z12 = (.36(w-brm),0);
+ z13 = (.36(w-brm),.36h);
+ q = z11{curl0.5}..z12{left}..z13{right};
+ z14 = point 1.75 of q;
+ draw q;
+ z15 = (1/2penwd,.65h);
+ draw z14..z15{up};
+endchar;
+
+beginchar(144,1.45twd#+brm#,ht#,.3ht#); "ddya";
+ italcorr brm#;
+ frame;
+ path p;
+ x12 = good.x 5/6twd; y12 = h;
+ z13 = (x12,.4h);
+ z5 = (1/2penwd,.22h);
+ z6 = (x12+1/2penwd,1/2penwd);
+ z7 = (x12,y6);
+ p = z13{curl0}..tension1.2..{down}z5..tension1.1..{curl.2}z6;
+ draw p;
+ z14 = (x3,-.1h);
+ z15 = (x6,-.3h);
+ draw z6{left}..tension.95..z15{right}..{curl.5}z14;
+ z9 = (x12,.73h);
+ z10 = (1/2penwd,.56h);
+ z11 = point 0.5 of p;
+ draw z12--z9;
+ draw z9{left}..{down}z10..{curl.3}z11;
+ z8 = (x3,-.3h);
+ draw z3--z8;
+endchar;
+
+beginchar(145,5/6twd#+brm#,ht#,.2ht#); "dna";
+ italcorr brm#;
+ pickup frame_pen;
+ z1= (0,h); z2= (w,h);
+ x3= good.x w-brm; y3= h;
+ z4= (x3,.72h);
+ z5= (1/2penwd,.53h);
+ z6= (x3,0.4h);
+ z7= (x3,-.2h);
+ draw z1--z2; draw z3--z4;
+ draw z4{left}..tension.9..{down}z5..tension1.2..{curl.2}z6;
+ draw z6--z7;
+ low_n(1.1penwd,1/2penwd);
+endchar;
+
+beginchar(146,5/6twd#+brm#,ht#,.1ht#); "dva";
+ italcorr brm#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x w-brm; y3=h;
+ z4=(x3,.72h);
+ z5=(1/2penwd,.53h);
+ z6=(x3,0.27h);
+ z7= z6 + (.3thick*(dir(rot+90)));
+ y8=-.3h; z8=z7+whatever*dir305;
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..tension.9..{down}z5..tension.9 and 1.1..{dir30}z6;
+ draw p;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.6*thick) shifted (z6 + .3thick*(dir rot));
+ z9 = .3[z7,z8];
+ z11 = point 1.7 of p;
+ z10 = (.15(w-brm),y9);
+ draw z11{curl.2}..tension1.1..z10{down}..tension1.2..{curl.5}z9;
+ pickup penrazor scaled subthick;
+ draw z7--z8;
+endchar;
+
+beginchar(147,5/6twd#+brm#,ht#,.1ht#); "dba";
+ italcorr brm#; path p; path q;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x w-brm; y3=h;
+ z4=(x3,.72h);
+ z5=(1/2penwd,.53h);
+ z6=(x3,0.27h);
+ z7= z6 + (.3thick*(dir(rot+90)));
+ y8=-.3h; z8=z7+whatever*dir305;
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..tension.9..{down}z5..tension.9 and 1.1..{dir30}z6;
+ draw p;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.6*thick) shifted (z6 + .3thick*(dir rot));
+ z9 = .3[z7,z8];
+ z10 = (.15(w-brm),y9);
+ z11 = point 1.7 of p;
+ q = z11{curl.2}..tension1.1..z10{down}..tension1.2..{curl.5}z9;
+ draw q;
+ z14 = point .3 of q;
+ z12 = z14 + whatever*dir305;
+ y12 = -.6h;
+ z13 = q intersectionpoint (.1[z14,z12]--z12);
+ pickup penrazor scaled subthick;
+ draw z7--z8;
+ draw z14--z13;
+endchar;
+
+beginchar(148,1.2twd#+brm#,ht#,0); "dma";
+ italcorr brm#;
+ frame;
+ z5= (.6x3,h);
+ z6= (x5,.72h);
+ z7= (1/2penwd,.6h);
+ z9= (.45x3-1/2penwd,.3h);
+ z8= (.45x3,y9-.5penwd);
+ z10= (x3,y9);
+ draw z5--z6{left}..tension1.4..z7{down}..z8{down}..
+ tension.9..{right}z9--z10;
+endchar;
+
+beginchar(149,1.45twd#+brm#,ht#,.1ht#); "dvya";
+ italcorr brm#; path p;
+ frame;
+ x10=good.x (5/6twd + .05twd); y10=y1;
+ z7=(x10,.72h);
+ z5=(1/2penwd + .05twd,.53h);
+ z6=(x10,0.35h);
+ z8=(x10-.15twd,y6);
+ z9=(x3,.2h);
+ z14 = (.95twd+.05twd,0);
+ draw z10--z7;
+ p = z7{left}..tension.9..{down}z5..tension.9 and 1.1..{dir30}z6..
+ z8{dir225}..z14{right}..{curl.5}z9;
+ draw p;
+ z11 = point 3.4 of p;
+ z12 = (1/2penwd,0);
+ z13 = point 3.6 of p;
+ draw z11..tension1.3..z12{down}..tension1.3..{curl.5}z13;
+endchar;
+
+beginchar(150,1.3twd#+brm#,ht#,0); "'sca";
+ italcorr brm#;
+ frame;
+ z5= (x3,.5h);
+ z7= (.45(w-brm),.67h);
+ z8= (1/2penwd,.55h);
+ z9= (.8x7,h);
+ draw z8--z7{right}..z9{left}..{right}z7;
+ y6= good.y .33h; x6= .23(w-brm);
+ z10= (w-brm-penwd,y6);
+ z11= (.5(w-brm),.15h);
+ z12= (x3,.15h);
+ z13= (.6(w-brm),y6);
+ draw z6--z10;
+ draw z13..z11{down}..tension1.1..{curl0.1}z12;
+ draw z7--z5;
+endchar;
+
+beginchar(151,1.3twd#+brm#,ht#,0); "'sna";
+ italcorr brm#;
+ frame;
+ z5= (x3,.5h);
+ z7= (.45(w-brm),.67h);
+ z8= (1/2penwd,.55h);
+ z9= (.8x7,h);
+ draw z8--z7{right}..z9{left}..{right}z7;
+ low_n(.4(w-brm),.28h);
+ draw z7--z5;
+endchar;
+
+beginchar(152,1.3twd#+brm#,ht#,0); "'sva";
+ italcorr brm#;
+ frame;
+ z5= (x3,.5h);
+ z7= (.45(w-brm),.67h);
+ z8= (1/2penwd,.55h);
+ z9= (.8x7,h);
+ draw z8--z7{right}..z9{left}..{right}z7;
+ z6=(x3,.35h);
+ z10=(.45(w-brm),.28h);
+ z11=(x3,.21h);
+ draw z6{curl.3}..tension1.2..z10{down}..tension1.2..{curl.3}z11;
+ draw z7--z5;
+endchar;
+
+beginchar(153,1.3twd#+brm#,ht#,0); "'sra";
+ italcorr brm#;
+ frame;
+ z5= (x3,.5h);
+ z7= (.45(w-brm),.67h);
+ z8= (1/2penwd,.53h);
+ z9= (.8x7,h);
+ draw z8--z7{right}..z9{left}..{right}z7;
+ z6=(x3,.38h);
+ z10=(.45(w-brm),.2h);
+ draw z5--z10;
+ draw z7--z5;
+endchar;
+
+% beginchar(154,1.3twd#+brm#,ht#,0); "'sla"; % original
+% italcorr brm#;
+% frame;
+% z5= (x3,.5h);
+% z7= (.45(w-brm),.67h);
+% z8= (1/2penwd,.55h);
+% z9= (.8x7,h);
+% draw z8--z7{right}..z9{left}..{right}z7;
+% z6=(x3,.36h);
+% z10=(5/8x3,.16h);
+% z11=(1/4x3,.36h);
+% z12=(1/2penwd,.26h);
+% z13=(3/8x3,-.04h);
+% draw z6{left}..{curl4}z10;
+% draw z10{curl6}..{left}z11..{down}z12..{curl0}z13;
+% draw z7--z5;
+% endchar;
+
+beginchar(154,1.3twd#+brm#,ht#,0); "'sla"; % revision
+ italcorr brm#;
+ frame;
+ z5= (x3,.5h);
+ z7= (.45(w-brm),.67h);
+ z8= (1/2penwd,.55h);
+ z9= (.8x7,h);
+ draw z8--z7{right}..z9{left}..{right}z7;
+ z6=(x3,.36h);
+ z10=(.55x3,.16h);
+ z11=(1/4x3,.36h);
+ z12=(1/2penwd,.26h);
+ z13=(3/8x3,-.04h);
+ draw z6{left}..{curl4}z10;
+ draw z10{curl6}..{left}z11..{down}z12..{curl0}z13;
+ draw z7--z5;
+endchar;
+
+% "sba removed, replaced with .n.na
+%
+% beginchar(155,1.3twd#+brm#,ht#,0); "'sba";
+% italcorr brm#;
+% frame; path p;
+% z5= (x3,.5h);
+% z7= (.45(w-brm),.67h);
+% z8= (1/2penwd,.55h);
+% z9= (.8x7,h);
+% draw z8--z7{right}..z9{left}..{right}z7;
+% z6=(x3,.35h);
+% z10=(.45(w-brm),.28h);
+% z11=(x3,.21h);
+% p = z6{curl.3}..tension1.2..z10{down}..tension1.2..{curl.3}z11;
+% draw p;
+% z12=(.73(w-brm),.28h);
+% y13=h; y14=0;
+% z13= z12 + whatever*dir125;
+% z14= z12 + whatever*dir305;
+% z15= p intersectionpoint (z12--z13);
+% z16= p intersectionpoint (z12--z14);
+% draw z15--z16;
+% draw z7--z5;
+% endchar;
+
+if altna:
+ beginchar(155,1.5twd#+brm#,ht#,0); ".n.na"; % alternate
+ italcorr brm#;
+ frame;
+ x9 = good.x w-1.80brm; y9 = ht;
+ z10 = (x9,.25ht);
+ draw z9--z10;
+ path p;
+ r :=.50;
+ z5=(r*(1/2penwd+1/2rm),.65h);
+ z6=(x9,0);
+ p = z5{down}..tension1.1..{curl0}z6;
+ z7=point .2 of p;
+ z8=(r*.53(w-.5rm),h);
+ draw p; draw z8{curl0}..tension1.1..{left}z7;
+ z11=(x3,.3h);
+ pickup sub_pen;
+ draw z8{down}..tension1.1..{curl0}z11;
+ endchar;
+else:
+ beginchar(155,2.2twd#+brm#,ht#,0); ".n.na"; % original
+ italcorr brm#;
+ frame;
+ x5=good.x 1/2penwd; y5=h;
+ z6=(x5,.55h);
+ z7=(1/2[x5,x8],.3h);
+ x8=good.x .65twd; y8=y6;
+ z9=(x8,h);
+ draw z5---z6..z7{right}..z8---z9;
+ x10=good.x 1.2twd; y10=h;
+ z11=(x10,.55h);
+ z12=(1/2[x10,x13],.3h);
+ x13=good.x 1.75twd; y13=y11;
+ z14=(x13,h);
+ draw z10---z11..z12{right}..z13---z14;
+ endchar;
+fi;
+
+beginchar(156,1.6twd#+brm#,ht#,.2ht#); "hma";
+ italcorr brm#; path p;
+ lm := 1.1twd;
+ frame;
+ x11 = good.x .8lm; y11=h; z12=(x11,.75h);
+ z5 = (1/2penwd,.65h);
+ z7 = (.65lm,1/2penwd); z8=(lm,.27h);
+ z9 = (.9lm,-.3h);
+ z10 = (1/2penwd,.2h);
+ z14 = (.9lm-.5penwd,.1h);
+ z13 = (.9lm,y14-.5penwd);
+ z15 = (x3,y14);
+ z16 = (x13,.25h);
+ p = z9{curl0}..tension1.3..z10{up}..tension1.3..z16---z13..tension.9..{right}z14--z15;
+ draw p;
+ z6 = point 1.3 of p;
+ z17 = (x3,-.2h);
+ draw z3--z17;
+ draw z11--z12{left}...z5{down}..z6;
+endchar;
+
+beginchar(157,1.6twd#+brm#,ht#,.2ht#); "hya";
+ italcorr brm#; path p;
+ lm := 1.1twd;
+ frame;
+ x11 = good.x .8lm; y11=h; z12=(x11,.75h);
+ z5 = (1/2penwd,.65h);
+ z7 = (.65lm,1/2penwd); z8=(lm,.27h);
+ z9 = (.9lm,-.3h);
+ z10 = (1/2penwd,.2h);
+ z13 = (.65lm,.1h);
+ z14 = (x3,.2h);
+ z15 = (.62lm,.45h);
+ p = z9{curl0}..tension1.3..z10{up}..z15{right}..{left}z13;
+ draw z13{dir-70}..tension1.1..{curl.2}z14;
+ draw p;
+ z6 = point 1.5 of p;
+ draw z11--z12{left}...z5{down}..z6;
+ z17 = (x3,-.2h);
+ draw z3--z17;
+endchar;
+
+% beginchar(158,2.2twd#+rm#,ht#,.25ht#); "hla"; % original.
+% italcorr rm#+.5twd#;
+% path p; path q;
+% lm := 1.1twd; pickup frame_pen;
+% xoff := w-rm-lm;
+% z1 = (0,h); z2 = (w,h);
+% draw z1--z2;
+% x3 = good.x xoff+.8lm; y3 = h; z4 = (x3,.75h);
+% z5 = (xoff+1/2penwd,.65h); z6 = (xoff+.4lm,.4h);
+% z7 = (xoff+.65lm,1/2penwd); z8 = (w-rm,.27h);
+% z9 = (xoff+1.1lm,-.3h);
+% z10 = (xoff+1/2penwd,.2h);
+% draw z3--z4{left}...z5{down}..z6;
+% p = z7..z8{up}..tension1.0 and 1.2..z6..z10{down}..tension1.3..{curl0}z9;
+% draw p;
+% z11 = (.8xoff,y9);
+% z12 = (1/2penwd,.1h);
+% z13 = (.9xoff,-.1h);
+% q = z11{curl0}..tension1.1..z12{up}..tension1.3..{curl0}z13;
+% draw q;
+% z14= point 1.65 of q;
+% z15 = point 3.1 of p;
+% draw z14{dir30}..{curl0.5}z15;
+% endchar;
+
+beginchar(158,2.2twd#+rm#,ht#,.4ht#); "hla"; % revision
+ italcorr rm#+.5twd#;
+ lm := w-rm; pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3=good.x .55lm; y3=h; z4=(x3,.75h);
+ z5=(1/2penwd,.65h); z6=(.27lm,.42h);
+ z7=(lm,-.3h); z8=(lm,.22h);
+ z9=(.35lm,-.4h);
+ z10=(1/2penwd,.15h);
+ draw z3--z4{left}...z5{down}..z6;
+ draw z7--z8{up}..tension1.5..z6..z10{down}..tension1.3..{curl0}z9;
+ z15=(x7,.16h);
+ z16=(.70x7,-.12h);
+ z17=(.42x7,.14h);
+ z18=(.33x7,.03h);
+ z19=(.55x7,-.35h);
+ draw z15{left}..{curl4}z16;
+ draw z16{curl6}..{left}z17..{down}z18..{curl0}z19;
+endchar;
+
+% beginchar(159,1.65twd#+rm#,ht#,.35ht#); "hva"; % original.
+% italcorr rm#+.5twd#;
+% path p;
+% lm := 1.1twd; pickup frame_pen;
+% xoff := w-rm-lm;
+% z1 = (0,h); z2 = (w,h);
+% draw z1--z2;
+% x3 = good.x xoff+.8lm; y3 = h; z4 = (x3,.75h);
+% z5 = (xoff+1/2penwd,.65h); z6 = (xoff+.4lm,.4h);
+% z7 = (xoff+.65lm,1/2penwd); z8 = (w-rm,.27h);
+% z9 = (xoff+1.1lm,-.3h);
+% z10 = (xoff+1/2penwd,.2h);
+% draw z3--z4{left}...z5{down}..z6;
+% p=z7..z8{up}..tension1.0 and 1.2..z6..z10{down}..tension1.3..{curl0}z9;
+% draw p;
+% z11 = point 3.4 of p;
+% z12 = point 3.5 of p;
+% z13 = (1/2penwd,y12);
+% draw z11{curl.2}..tension1.3..z13{down}..tension1.3..{curl.5}z12;
+% endchar;
+
+beginchar(159,1.65twd#+rm#,ht#,.45ht#); "hva"; % revision
+ italcorr rm#+.55twd#;
+ lm := w-rm; pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3=good.x .55lm; y3=h; z4=(x3,.75h);
+ z5=(1/2penwd,.65h); z6=(.27lm,.4h);
+ z7=(lm,-.2h); z8=(lm,.27h);
+ z9=(.73lm,-.4h);
+ z10=(1/2penwd,.2h);
+ draw z3--z4{left}...z5{down}..z6;
+ draw z7--z8{up}..tension1.0 and 1.2..z6..z10{down}..tension1.3..{curl0}z9;
+ draw (lm,.05h)..(.75lm,.25h)..(.5lm,.05h)..(.75lm,-.1h)..cycle;
+endchar;
+
+% beginchar(160,1.5twd#+rm#,ht#,.25ht#); "hra"; % original
+% italcorr rm#+.5twd#;
+% path p;
+% lm := 1.1twd; pickup frame_pen;
+% xoff := w-rm-lm;
+% z1 = (0,h); z2 = (w,h);
+% draw z1--z2;
+% x3 = good.x xoff+.8lm; y3 = h; z4 = (x3,.75h);
+% z5 = (xoff+1/2penwd,.65h); z6 = (xoff+.4lm,.4h);
+% z7 = (xoff+.65lm,1/2penwd); z8 = (w-rm,.27h);
+% z9 = (xoff+1.1lm,-.3h);
+% z10 = (xoff+1/2penwd,.2h);
+% draw z3--z4{left}...z5{down}..z6;
+% p=z7..z8{up}..tension1.0 and 1.2..z6..z10{down}..tension1.3..{curl0}z9;
+% draw p;
+% z11 = point 3.3 of p;
+% z12 = (1/2penwd,y9);
+% draw z12--z11;
+% endchar;
+
+beginchar(160,1.5twd#+rm#,ht#,.25ht#); "hra"; % revision
+ italcorr rm#+.5twd#;
+ path p;
+ lm := 1.1twd; pickup frame_pen;
+ xoff := w-rm-lm;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ x3 = good.x xoff+.8lm; y3 = h; z4 = (x3,.75h);
+ z5 = (xoff+1/2penwd,.65h); z6 = (xoff+.4lm,.4h);
+ z7 = (xoff+.7lm,1/2penwd); z8 = (xoff+.87lm,.27h);
+ z9 = (xoff+.9lm,-.3h);
+ z10 = (xoff+1/2penwd,.2h);
+ draw z3--z4{left}...z5{down}..z6;
+ p=z7..z8{up}..tension1.1 and 1.2..z6..z10{down}..tension1.3..{curl0}z9;
+ draw p;
+ z11 = point 3.3 of p;
+ z12 = (1/2penwd,y9);
+ draw z12--z11;
+endchar;
+
+% beginchar(161,1.6twd#+rm#,ht#,.25ht#); "hna"; % original.
+% italcorr rm#+.5twd#;
+% path p;
+% lm := 1.1twd; pickup frame_pen;
+% xoff := w-rm-lm;
+% z1 = (0,h); z2 = (w,h);
+% draw z1--z2;
+% x3 = good.x xoff+.8lm; y3 = h; z4 = (x3,.75h);
+% z5 = (xoff+1/2penwd,.65h); z6 = (xoff+.4lm,.4h);
+% z7 = (xoff+.65lm,1/2penwd); z8 = (w-rm,.27h);
+% z9 = (xoff+1.1lm,-.3h);
+% z10 = (xoff+1/2penwd,.2h);
+% draw z3--z4{left}...z5{down}..z6;
+% p=z7..z8{up}..tension1.0 and 1.2..z6..z10{down}..tension1.3..{curl0}z9;
+% draw p;
+% z11 = point 3.3 of p;
+% z13 = (1.25penwd,y9+.75penwd);
+% z12 = (x13,y13+.75penwd);
+% filldraw fullcircle scaled 1.5penwd shifted(x13,y13);
+% draw z12--z11;
+% endchar;
+
+beginchar(161,1.6twd#+rm#,ht#,.4ht#); "hna"; % revision
+ italcorr rm#+.5twd#;
+ lm := w-rm; pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3=good.x .55lm; y3=h; z4=(x3,.75h);
+ z5=(1/2penwd,.65h); z6=(.27lm,.4h);
+ z7=(lm,-.2h); z8=(lm,.22h);
+ z9=(.73lm,-.4h);
+ z10=(1/2penwd,.2h);
+ draw z3--z4{left}...z5{down}..z6;
+ draw z7--z8{up}..tension1.0 and 1.2..z6..z10{down}..tension1.3..{curl0}z9;
+ y16 = good.y .17h; x16 = lm;
+ y15 = y16 - .75penwd; x15 = .5lm +1/2penwd;
+ filldraw fullcircle scaled 1.5penwd shifted(x15,y15);
+ z17 = (x15,y16);
+ draw z16--z17;
+endchar;
+
+if altna:
+ beginchar(162,1.4twd#+rm#,ht#,.2ht#); "h.na"; % alternate
+ italcorr rm#+.5twd#; path p;
+ lm := w-rm; pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3=good.x .55lm; y3=h; z4=(x3,.75h);
+ z5=(1/2penwd,.65h); z6=(.27lm,.42h);
+ z7=(lm,-.3h); z8=(lm,y6);
+ z9=(.35lm,-.4h);
+ z10=(1/2penwd,.15h);
+ draw z3--z4{left}...z5{down}..z6;
+ draw z7--z8--z6..z10{down}..tension1.3..{curl0}z9;
+ pickup sub_pen;
+ z11=(.70x7,y8); z12=(x11,-.12h);
+ draw z11--z12;
+ z13=(x9,.6[y7,y11]);
+ z14=(x9+.28(w-rm),y7);
+ p = z13{down}..tension1.1..{curl0}z14;
+ z15=(x9+.11(w-rm),y11);
+ z16=point .2 of p;
+ draw p; draw z15{curl0}..tension1.1..{left}z16;
+ endchar;
+else:
+ beginchar(162,1.4twd#+rm#,ht#,.2ht#); "h.na"; % original
+ italcorr rm#+.85twd#;
+ path p;
+ lm := 1.1twd; pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ x3 = good.x .8lm; y3 = h; z4 = (x3,.75h);
+ z5 = (1/2penwd,.65h); z6 = (.4lm,.4h);
+ z7 = (w-rm,-.1h); z8 = (x7,y6);
+ z9 = (1.0lm,-.3h);
+ z10 = (1/2penwd,.2h);
+ z11 = (.45(w-rm),y6);
+ z12 = (.7(w-rm),y6);
+ z13 = (.5[x11,x12],0);
+ draw z3--z4{left}...z5{down}..z6;
+ draw z7---z8---z6..z10{down}..tension1.3..{curl0}z9;
+ draw z11{down}..z13{right}..z12{up};
+ endchar;
+fi;
+
+beginchar(163,1.15twd#+rm#,ht#,0); ".s.ta";
+ path p;
+ italcorr rm#+.5twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ lm:= w-rm;
+ x3=good.x .75lm; y3=h;
+ z4=(x3,.53h);
+ z6=(.55lm,0);
+ z7=(lm,.1h);
+ draw z3--z4;
+ vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..tension1.2..(1/2penwd,y)..{right}z6..{curl0}z7) < 0 enddef;
+ z5 = (1/2penwd,solve dwn(y4,y6));
+ p = z4{curl0}..tension1.2..z5..z6{right}..{curl0}z7;
+ draw p;
+ z9 = point 0.45 of p;
+ z10 = (penwd,h);
+ z11 = (1/2penwd,.72h);
+ draw z10..z11{down}..{curl.3}z9;
+ pickup penrazor scaled subthick;
+ draw (1/2penwd,h)--(x3,y4);
+endchar;
+
+beginchar(164,1.15twd#+rm#,ht#,0); ".s.tha";
+ path p;
+ italcorr rm#+.5twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ lm:= w-rm;
+ x3=good.x .75lm; y3=h;
+ z4=(x3,.5h);
+ z6=(.55lm,0);
+ z7=(lm,y5);
+ z8=(x4+1/2penwd,y4-penwd);
+ draw z3--z4;
+ vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..tension1.1..(1/2penwd,y)..{right}z6) < 0 enddef;
+ z5 = (1/2penwd,solve dwn(y4,y6));
+ p = z4{curl0}..tension1.1..z5..z6{right}..z7{up}..(x8+1/2penwd,y8);
+ draw p;
+ z9 = point 0.45 of p;
+ z10 = (penwd,h);
+ z11 = (1/2penwd,.72h);
+ draw z10..z11{down}..{curl.3}z9;
+ pickup penrazor scaled subthick;
+ draw (1/2penwd,h)--z4;
+endchar;
+
+% beginchar(165,4/3twd#+brm#,ht#,0); "lla"; % original.
+% italcorr brm#;
+% path p; path q;
+% frame; z5=(x3,.75h);
+% z6=(.625x3,.48h);
+% z7=(.25x3,.75h);
+% z8=(1/2penwd,.58h);
+% z9=(.2x3,.3h);
+% draw z5{left}..{curl4}z6;
+% p = z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+% hdif := .43h;
+% z10 = (x5,y5-hdif);
+% z11 = (x6,y6-hdif);
+% z12 = (x7,y7-hdif);
+% z13 = (x8,y8-hdif);
+% z14 = (x9,y9-hdif);
+% draw z10{left}..{curl4}z11;
+% q = z11{curl6}..{left}z12..{down}z13..{curl0}z14;
+% draw q;
+% draw subpath (0,xpart(p intersectiontimes q)) of p;
+% endchar;
+
+if altla:
+ beginchar(165,1.5twd#+brm#,ht#,0); "lla"; % alternate
+ italcorr brm#;
+ path p; path q;
+ pickup frame_pen;
+ lm := 4/3twd;
+ z1 = (0,h);
+ z2 = (w,h);
+ z3 = (lm,h);
+ z5=(x3,.75h);
+ draw z1--z2;
+ draw z3--z5;
+ z6=(.6x3,.48h);
+ z7=(.25x3,.75h);
+ z8=(1/2penwd,.58h);
+ z9=(.2x3,.3h);
+ draw z5{left}..{curl4}z6;
+ p = z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+ hdif := .43h;
+ z10 = (x5,y5-hdif);
+ z11 = (x6,y6-hdif);
+ z12 = (x7,y7-hdif);
+ z13 = (x8,y8-hdif);
+ z14 = (x9,y9-hdif);
+ draw z10{left}..{curl4}z11;
+ q = z11{curl6}..{left}z12..{down}z13..{curl0}z14;
+ draw q;
+ draw subpath (0,xpart(p intersectiontimes q)) of p;
+ z15 = (.94(w-rm),.5h);
+ z16 = (.88(w-rm),.3h);
+ draw z5{right}..z15{down}..tension2..z16;
+ z17 = (x15,y15-hdif);
+ z18 = (x16,y16-hdif);
+ draw z10{right}..z17{down}..tension2..z18;
+ endchar;
+else:
+ beginchar(165,4/3twd#+brm#,ht#,0); "lla"; % version 2.0
+ italcorr brm#;
+ path p; path q;
+ frame; z5=(x3,.75h);
+ z6=(.525x3,.48h);
+ z7=(.25x3,.75h);
+ z8=(1/2penwd,.58h);
+ z9=(.2x3,.3h);
+ draw z5{left}..{curl4}z6;
+ p = z6{curl6}..{left}z7..{down}z8..{curl0}z9;
+ hdif := .43h;
+ z10 = (x5,y5-hdif);
+ z11 = (x6,y6-hdif);
+ z12 = (x7,y7-hdif);
+ z13 = (x8,y8-hdif);
+ z14 = (x9,y9-hdif);
+ draw z10{left}..{curl4}z11;
+ q = z11{curl6}..{left}z12..{down}z13..{curl0}z14;
+ draw q;
+ draw subpath (0,xpart(p intersectiontimes q)) of p;
+ endchar;
+fi;
+
+beginchar(166,11/12twd#+brm#,ht#,.2ht#); "vna";
+ italcorr brm#;
+ frame; z5 = (x3,.56h);
+ z6 = (1/2penwd,.54h);
+ z7 = (x3,.52h);
+ draw z5..tension1.5..z6{down}..tension1.5..z7;
+ z8 = (x3,-.2h);
+ draw z3--z8;
+ low_n(1.1penwd,1/2penwd);
+endchar;
+
+beginchar(167,11/12twd#+brm#,ht#,.2ht#); "bna";
+ italcorr brm#; path p;
+ frame; z5 = (x3,.56h);
+ z6 = (1/2penwd,.54h);
+ z7 = (x3,.52h);
+ p = z5..tension1.5..z6{down}..tension1.5..z7;
+ draw p;
+ y8 = h; z9 = (.58x3,.54h);
+ z8 = z9 + whatever*dir125;
+ y10 = 0;
+ z10 = z9 + whatever*dir305;
+ z11 = p intersectionpoint (z9--z8);
+ z12 = p intersectionpoint (z9--z10);
+ draw z11--z12;
+ z13 = (x3,-.2h);
+ draw z13--z3;
+ low_n(1.1penwd,1/2penwd);
+endchar;
+
+beginchar(168,11/12twd#+brm#,ht#,.3ht#); "vva";
+ italcorr brm#;
+ frame; z5 = (x3,.62h);
+ z6 = (1/2penwd,.6h);
+ z7 = (x3,.58h);
+ draw z5..tension1.5..z6{down}..tension1.5..z7;
+ z8 = (x3,-.3h);
+ draw z3--z8;
+ z9 = (x3,.06h);
+ z10 = (1/2penwd,.04h);
+ z11 = (x3,.02h);
+ draw z9..tension1.5..z10{down}..tension1.5..z11;
+endchar;
+
+beginchar(169,11/12twd#+brm#,ht#,.3ht#); "bba";
+ italcorr brm#; path p; path q;
+ frame; z5 = (x3,.62h);
+ z6 = (1/2penwd,.6h);
+ z7 = (x3,.58h);
+ p = z5..tension1.5..z6{down}..tension1.5..z7;
+ draw p;
+ z8 = (x3,-.3h);
+ draw z3--z8;
+ z9 = (x3,.06h);
+ z10 = (1/2penwd,.04h);
+ z11 = (x3,.02h);
+ q = z9..tension1.5..z10{down}..tension1.5..z11;
+ draw q;
+ y12 = h; z13 = (.58x3,.6h);
+ z12 = z13 + whatever*dir125;
+ y14 = 0;
+ z14 = z13 + whatever*dir305;
+ z15 = p intersectionpoint (z13--z12);
+ z16 = p intersectionpoint (z13--z14);
+ draw z15--z16;
+ y18 = h; z19 = (.58x3,.04h);
+ z18 = z19 + whatever*dir125;
+ y20 = -.3h;
+ z20 = z19 + whatever*dir305;
+ z21 = q intersectionpoint (z19--z18);
+ z22 = q intersectionpoint (z19--z20);
+ draw z21--z22;
+endchar;
+
+beginchar(170,1.9twd#+brm#,ht#,.3ht#); ".s.trya";
+ path p;
+ italcorr brm#;
+ frame;
+ lm:= 1.15twd;
+ x23=good.x .75lm; y23=h;
+ z24=(x23,.53h);
+ z6=(.55lm,0);
+ z7=(lm,.1h);
+ draw z23--z24;
+ vardef dwn(expr y) = xpart direction 1 of (z24{curl0}..tension1.2..
+ (1/2penwd,y)..{right}z6..{curl0}z7) < 0 enddef;
+ z5 = (1/2penwd,solve dwn(y24,y6));
+ p = z24{curl0}..tension1.2..z5..z6{right}..{curl0}z7;
+ draw p;
+ z9 = point 0.45 of p;
+ z10 = (penwd,h);
+ z11 = (1/2penwd,.72h);
+ draw z10..z11{down}..{curl.3}z9;
+ z12 = (.55lm,-.4h);
+ draw z7--z12;
+ z13 = (w-brm,0);
+ draw z7{dir-80}..{curl.5}z13;
+ z14 = (x3,-.3h);
+ draw z3--z14;
+ pickup penrazor scaled subthick;
+ draw (1/2penwd,h)--z24;
+endchar;
+
+beginchar(171,1.15twd#+rm#,ht#,.4ht#); ".s.tva";
+ path p;
+ italcorr rm#+.4twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ lm:= w-rm;
+ x3=good.x .75lm; y3=h;
+ z4=(x3,.53h);
+ z6=(.55lm,0);
+ z7=(lm,.1h);
+ draw z3--z4;
+ vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..tension1.2..
+ (1/2penwd,y)..{right}z6..{curl0}z7) < 0 enddef;
+ z5 = (1/2penwd,solve dwn(y4,y6));
+ p = z4{curl0}..tension1.2..z5..z6{right}..{curl0}z7;
+ draw p;
+ z9 = point 0.45 of p;
+ z10 = (penwd,h);
+ z11 = (1/2penwd,.72h);
+ draw z10..z11{down}..{curl.3}z9;
+ z12 = point 1.6 of p;
+ z13 = point 2.4 of p;
+ z14 = (x13,y13-.5h);
+ z15 = .6[z14,z13];
+ z16 = (1/2penwd,.2[y15,y12]);
+ draw z13--z14;
+ draw z12..tension1.2..z16{down}..tension1.3..{curl.4}z15;
+ pickup penrazor scaled subthick;
+ draw (1/2penwd,h)--z4;
+endchar;
+
+beginchar(172,13/17twd#+.25twd#+rm#+2penwd#,ht#,.4ht#); "'nka";
+ italcorr rm#+.5twd#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-2penwd; y3=h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.75 of p;
+ z10 = (x16,y16-.65h);
+ z11 = (x16,.53[y10,y16]);
+ z12 = (.25x16,.53[y10,y16]);
+ z13 = (x16,.53[y10,y16]);
+ z14 = (1.55x16,y13);
+ z15 = (1.46x16,.1[y10,y16]);
+ draw z16--z10;
+ pickup sub_pen;
+ draw z11..tension1.4..z12{down}..tension1.4..z13;
+ draw z13{curl.5}..z14{down}..tension1.3..z15;
+endchar;
+
+beginchar(173,13/17twd#+.25twd#+rm#+2penwd#,ht#,.45ht#); "'nkta";
+ italcorr rm#+.6twd#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-2penwd; y3=h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.75 of p;
+ z10 = (x16,y16-.65h);
+ z11 = (x16,.75[y10,y16]);
+ z12 = (.2x16,y11);
+ z14 = (1.55x16,y17);
+ z15 = (1.46x16,.1[y10,y16]);
+ z17 = (x16,.53[y10,y16]);
+ z18 = (.4x16,.4[y10,y16]);
+ z19 = (.55x16,y10);
+ draw z16--z10;
+ pickup sub_pen;
+ draw z17{left}..tension1.2..z18..{curl0}z19;
+ draw z12--z11;
+ draw z11..z14{down}..tension1.3..z15;
+endchar;
+
+beginchar(174,1.9twd#+brm#,ht#,.45ht#); "'nktya";
+ italcorr brm#; path p;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (lm+2penwd,.45h+.8penwd); sqdot(z9);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.75 of p;
+ z10 = (x16,y16-.65h);
+ z11 = (x16,.75[y10,y16]);
+ z12 = (.2x16,y11);
+ z13 = (1.15lm,.15[y10,y3]);
+ z14 = (x3,.2[y10,y3]);
+ z15 = (x3,y10);
+ z20 = (1.35lm,.77[y10,y11]);
+ z17 = (x16,.53[y10,y16]);
+ z18 = (.4x16,.25[y10,y16]);
+ z19 = (.55x16,y10);
+ draw z16--z10;
+ draw z3--z15;
+ pickup sub_pen;
+ draw z17{left}..tension1.2..z18..{curl0}z19;
+ draw z12--z11..z20{down}..z13;
+ draw z13{dir-70}..tension1.1..{curl.2}z14;
+endchar;
+
+beginchar(175,1.9twd#+brm#,ht#,.4ht#); "'nkya";
+ italcorr brm#; path p;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (lm+2penwd,.45h+.8penwd); sqdot(z9);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.75 of p;
+ z10 = (x16,y16-.65h);
+ z11 = (x16,.53[y10,y16]);
+ z12 = (.2x16,y11);
+ z13 = (1.25lm,.15[y10,y3]);
+ z14 = (x3,.2[y10,y3]);
+ z15 = (x3,y10);
+ z20 = (1.4lm,.9[y10,y11]);
+ draw z16--z10;
+ draw z3--z15;
+ pickup sub_pen;
+ draw z11{curl.5}..tension1.3..z12{down}..tension1.3..{curl.5}z11;
+ draw z11..tension1.2..z20{down}..tension1.1..{left}z13;
+ draw z13{dir-70}..{curl.2}z14;
+endchar;
+
+if altksa:
+ beginchar(176,13/17twd#+.25twd#+rm#+2penwd#,ht#,.45ht#); "'nk.sa";
+ italcorr rm#+.4twd#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-2penwd; y3=h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z10 = point 2.4 of p;
+ z11 = (x10,y7-.65h);
+ draw z10--z11;
+ z12=(x10,.60[y11,y10]);
+ z13=(1/2penwd,y12);
+ draw z12--z13;
+ z14=(.60x12,y12);
+ z15=(.30x12,.32[y11,y10]);
+ z16=(.70x12,.15[y11,y10]);
+ z17= z16 + (.3thick*(dir(rot+90)));
+ y18=.00[y11,y10]; z18=z16+whatever*dir285;
+ pickup sub_pen;
+ draw z14{dir225}..tension.9..{down}z15..tension.9 and 1.1..{dir30}z16;
+ draw z17--z18;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.0*thick) shifted (z16 + .10thick*(dir rot));
+ endchar;
+else:
+ beginchar(176,13/17twd#+.25twd#+rm#+2penwd#,ht#,.45ht#); "'nk.sa";
+ italcorr rm#+.4twd#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-2penwd; y3=h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y7-.65h);
+ draw z16--z10;
+ pickup sub_pen;
+ z11 = (x16,.7[y10,y7]);
+ z12 = (.35x16,y7);
+ z13 = (1/2penwd,.32[y10,y7]);
+ z14 = (.6x16,.15[y10,y7]);
+ z15 = (.7x16,y10-1/2penwd);
+ z17 = (.2x16,.65[y10,y7]);
+ z18 = (.5x16,.65[y10,y7]);
+ z19 = (x14-1/4penwd,y14+1/4penwd);
+ draw z11{dir230}..tension1.1..z17..z12{right}..z18..z13{down}..z14;
+ draw z14--z15;
+ endchar;
+fi;
+
+if altksa:
+ beginchar(177,13/17twd#+.75twd#+rm#+2penwd#,ht#,.45ht#); "'nk.sva";
+ italcorr rm#+.4twd#; path p;
+ lm := .5twd;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-2penwd; y3=h;
+ z4 = (x3,.74h); z5 = (lm+.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(lm+.25twd+x3),1/7h);
+ z8 = (lm+1/2penwd,.45h);
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z10 = point 2.4 of p;
+ z11 = (x10,y7-.65h);
+ draw z10--z11;
+ z12 = (x10,.52[y11,y7]);
+ z13 = (.85(x10-lm),.52[y11,y7]);
+ pickup sub_pen;
+ draw z12{curl.5}..tension1.3..z13{down}..tension1.3..{curl.5}z12;
+ z14=(x13,.60[y11,y10]);
+ z15=(1/2penwd,y14);
+ draw z14--z15;
+ z16=(.60x14,y14);
+ z17=(.30x14,.32[y11,y10]);
+ z18=(.70x14,.15[y11,y10]);
+ z19= z18 + (.3thick*(dir(rot+90)));
+ y20=.00[y11,y10]; z20=z18+whatever*dir285;
+ pickup sub_pen;
+ draw z16{dir225}..tension.9..{down}z17..tension.9 and 1.1..{dir30}z18;
+ draw z19--z20;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.0*thick) shifted (z18 + .10thick*(dir rot));
+ endchar;
+else:
+ beginchar(177,13/17twd#+.75twd#+rm#+2penwd#,ht#,.45ht#); "'nk.sva";
+ italcorr rm#+.4twd#; path p;
+ lm := .5twd;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-2penwd; y3=h;
+ z4 = (x3,.74h); z5 = (lm+.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(lm+.25twd+x3),1/7h);
+ z8 = (lm+1/2penwd,.45h);
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y7-.65h);
+ draw z16--z10;
+ z11 = (.85(x16-lm),.52[y10,y7]);
+ z12 = (.35(x16-lm),y7);
+ z13 = (1/2penwd,.32[y10,y7]);
+ z14 = (.6(x16-lm),.15[y10,y7]);
+ z15 = (.7(x16-lm),y10-1/2penwd);
+ z17 = (.16(x16-lm),.65[y10,y7]);
+ z18 = (.5(x16-lm),.65[y10,y7]);
+ z20 = (x16,.52[y10,y7]);
+ z21 = (.85(x16-lm),y20);
+ pickup sub_pen;
+ draw z20{curl.5}..tension1.3..z11{down}..tension1.3..{curl.5}z20;
+ draw z11{dir230}..tension1.1..z17..z12{right}..z18..z13{down}..z14;
+ draw z14--z15;
+ endchar;
+fi;
+
+beginchar(178,13/17twd#+.25twd#+rm#+2penwd#,ht#,.45ht#); "'nkha";
+ italcorr rm#+.4twd#; path p; path q;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-2penwd; y3=h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y7-.65h);
+ draw z16--z10;
+ z11 = (1/2penwd,.73[y10,y7]);
+ z12 = point 3.45 of p;
+ z13 = (.55x16,y10);
+ pickup sub_pen;
+ q = z11{down}..tension1.1..{curl0}z13;
+ draw q;
+ z14 = point .1 of q;
+ draw z12{curl0}..tension1.1..{left}z14;
+ z15 = (x16,.55[y10,y7]);
+ z17 = (.5x16,.5[y10,y7]);
+ z18 = (x16,.45[y10,y7]);
+ draw z15..tension1.3..z17{down}..tension1.3..z18;
+endchar;
+
+beginchar(179,13/17twd#+.25twd#+rm#+penwd#,ht#,.35ht#); ".dga";
+ italcorr rm#+.2twd#; path p; path q;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-penwd; y3=h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y7-.65h);
+ draw z16--z10;
+ z11 = point 3.3 of p;
+ z12 = (x11,.3[y10,y11]);
+ z13 = (1.2x11,2/3[y11,y12]);
+ z14 = (.35x16,y12+.08h);
+ q = z11..z13{down}..z12{left}..z14{up};
+ z15 = point 2.3 of q;
+ draw q..{curl.2}z15;
+ v[charcode]=currentpicture;
+endchar;
+
+beginchar(180,13/17twd#+.25twd#+rm#+penwd#,ht#,.45ht#); ".dgha";
+ italcorr rm#+.2twd#; path p; path q;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-penwd; y3=h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y7-.65h);
+ draw z16--z10;
+ z11 = .4[z10,z16];
+ z12 = (.25x16,y11);
+ z13 = (.55x16,.55[y10,y16]);
+ z14 = point 3.36 of p;
+ q = z11{curl0}..z12{up}..{right}z13;
+ draw q;
+ z15 = point 1.6 of q;
+ z17 = (.35x16,.85[y10,y16]);
+ draw z15{curl0}..z14{right};
+ v[charcode]=currentpicture;
+endchar;
+
+beginchar(181,13/17twd#+.25twd#+rm#+2penwd#,ht#,.4ht#); "'nna";
+ italcorr rm#+.4twd#; path p; path q;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-2penwd; y3=h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y7-.65h);
+ draw z16--z10;
+ y11 := good.y .5[y10,y16]; x11 := x16;
+ y12 := y11 - .75penwd; x12 := .4x16;
+ filldraw fullcircle scaled 1.5penwd shifted(x12,y12);
+ z13 = (x12,y11);
+ draw z11--z13;
+endchar;
+
+beginchar(182,13/17twd#+.25twd#+rm#+penwd#,ht#,.45ht#); ".dghra";
+ italcorr rm#+.2twd#; path p; path q;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-penwd; y3=h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y7-.65h);
+ draw z16--z10;
+ z11 = .5[z10,z16];
+ z12 = (.25x16,.4[y10,y16]);
+ z13 = (.55x16,.55[y10,y16]);
+ z14 = point 3.36 of p;
+ q = z11{curl0}..z12{up}..{right}z13;
+ draw q;
+ z15 = point 1.6 of q;
+ z17 = (.35x16,.85[y10,y16]);
+ draw z15{curl0}..z14{right};
+ z18 = .45[z10,z16];
+ z19 = (x12,y10-1/2penwd);
+ draw z18--z19;
+ v[charcode]=currentpicture;
+endchar;
+
+beginchar(183,1.8twd#+brm#,ht#,0); ".dya";
+ italcorr brm#; path p;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z10 = point 2.2 of p;
+ z9 = (w-brm,.35h);
+ draw z10{dir-30}..{curl.3}z9;
+endchar;
+
+beginchar(184,1.9twd#+brm#,ht#,.35ht#); ".dgya";
+ italcorr brm#; path p; path q;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.3 of p;
+ z10 = (x16,y16-.65h);
+ z11 = point 3.3 of p;
+ z12 = (x11,.3[y10,y11]);
+ z17 = (1.2x11,2/3[y11,y12]);
+ z18 = (.35x16,y12+.08h);
+ q = z11..z17{down}..z12{left}..z18{up};
+ z19 = point 2.3 of q;
+ draw q..{curl.2}z19;
+ z13 = (1.1lm,.2[y10,y3]);
+ z14 = (x3,.25[y10,y3]);
+ z15 = (x3,y10);
+ z20 = (1.35lm,.68[y10,y16]);
+ draw z16..z20{down}..tension1.1..{curl.5}z13;
+ draw z13{dir-70}..{curl.2}z14;
+ draw z3--z15;
+endchar;
+
+beginchar(185,1.9twd#+brm#,ht#,.35ht#); "'nghya";
+ italcorr brm#; path p; path q;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (lm+2penwd,.45h+.8penwd); sqdot(z9);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y16-.65h);
+ z13 = (1.15lm,.2[y10,y3]);
+ z14 = (x3,.25[y10,y3]);
+ z15 = (x3,y10);
+ draw z16{dir250}..z13{dir-70}..tension1.1..{curl.2}z14;
+ z11 = (.25x16,y13);
+ z12 = (.65x16,.55[y10,y16]);
+ z17 = point 3.36 of p;
+ q = z13{curl0}..z11{up}..{right}z12;
+ draw q;
+ z18 = point 1.6 of q;
+ draw z18{curl0}..z17{right};
+ draw z3--z15;
+endchar;
+
+beginchar(186,1.9twd#+brm#,ht#,.35ht#); "'nkhya";
+ italcorr brm#; path p; path q; path r;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (lm+2penwd,.45h+.8penwd); sqdot(z9);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y16-.65h);
+ z15 = (x3,y10);
+ z11 = (1/2penwd,.73[y10,y7]);
+ z12 = point 3.45 of p;
+ z17 = (.55x16,y10);
+ q = z11{down}..tension1.1..{curl0}z17;
+ draw q;
+ z18 = point .1 of q;
+ draw z12{curl0}..tension1.1..{left}z18;
+ z13 = (1.15lm,.2[y10,y3]);
+ z14 = (x3,.25[y10,y3]);
+ r = z16{dir250}..z13{dir-70}..tension1.1..{curl.2}z14;
+ draw r;
+ z19 = point 0.8 of r;
+ z20 = point 1.2 of r;
+ z21 = (.65x16,y20);
+ draw z19..tension1.4..z21{down}..tension1.3..z20;
+ draw z3--z15;
+endchar;
+
+beginchar(187,1.9twd#+brm#,ht#,.35ht#); ".dma";
+ italcorr brm#; path p;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y16-.65h);
+ z14 = (x3,.2[y10,y3]);
+ z15 = (x3,y10);
+ z11 = (x16,y14-penwd);
+ z12 = (x11-1/2penwd,y11+1/2penwd);
+ draw z16--z11;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z12)--z14;
+ draw z3--z15;
+endchar;
+
+beginchar(188,13/17twd#+.25twd#+rm#+2penwd#,ht#,.6ht#); "'n'na";
+ italcorr rm#+.6twd#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-2penwd; y3 = h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ draw z3--z4;
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z10 = (x3,y6);
+ z11 = (x3,0);
+ z12 = p intersectionpoint (z10--z11);
+ addto currentpicture also currentpicture shifted (0,y12-h);
+ draw z1--z2;
+endchar;
+
+beginchar(189,13/17twd#+.25twd#+rm#+2penwd#,ht#,.4ht#); "'nga";
+ italcorr rm#+.4twd#;
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ addpic(179);
+endchar;
+
+beginchar(190,1.9twd#+brm#,ht#,.3ht#); "'ngya";
+ italcorr brm#;
+ z9 = (13/17twd+.25twd+2penwd,.45h+.8penwd); sqdot(z9);
+ path p; path q;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.3 of p;
+ z10 = (x16,y16-.65h);
+ z11 = point 3.3 of p;
+ z12 = (x11,.3[y10,y11]);
+ z17 = (1.2x11,2/3[y11,y12]);
+ z18 = (.35x16,y12+.08h);
+ q = z11..z17{down}..z12{left}..z18{up};
+ z19 = point 2.3 of q;
+ draw q..{curl.2}z19;
+ z13 = (1.1lm,.2[y10,y3]);
+ z14 = (x3,.25[y10,y3]);
+ z15 = (x3,y10);
+ z20 = (1.35lm,.68[y10,y16]);
+ draw z16..z20{down}..tension1.1..{curl.5}z13;
+ draw z13{dir-70}..{curl.2}z14;
+ draw z3--z15;
+endchar;
+
+beginchar(191,13/17twd#+.25twd#+rm#+2penwd#,ht#,.4ht#); "'ngha";
+ italcorr rm#+.4twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ addpic(180);
+endchar;
+
+beginchar(192,13/17twd#+.25twd#+rm#+2penwd#,ht#,.4ht#); "'nghra";
+ italcorr rm#+.4twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ z9 = (w-rm,.45h+.8penwd); sqdot(z9);
+ addpic(182);
+endchar;
+
+beginchar(193,1.9twd#+brm#,ht#,.35ht#); "'nma";
+ italcorr brm#;
+ z9 = (13/17twd+.25twd+2penwd,.45h+.8penwd); sqdot(z9);
+ path p;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y16-.65h);
+ z14 = (x3,.2[y10,y3]);
+ z15 = (x3,y10);
+ z11 = (x16,y14-penwd);
+ z12 = (x11-1/2penwd,y11+1/2penwd);
+ draw z16--z11;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z12)--z14;
+ draw z3--z15;
+endchar;
+
+beginchar(194,1.9twd#+brm#,ht#,.35ht#); "'nya";
+ italcorr brm#; path p;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z16 = point 2.4 of p;
+ z10 = (x16,y16-.65h);
+ z13 = (1.15lm,.2[y10,y3]);
+ z14 = (x3,.25[y10,y3]);
+ z15 = (x3,y10);
+ z20 = (1.35lm,.8[y10,y16]);
+ draw z16{curl0}..z20{down}..z13;
+ draw z13{dir-70}..tension1.1..{curl.2}z14;
+ draw z3--z15;
+ z9 = (13/17twd+.25twd+2penwd,.45h+.8penwd); sqdot(z9);
+endchar;
+
+beginchar(195,1.65twd#+rm#,ht#,0); "kka";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h); x3=good.x twd; y3=h;
+ z4 = (x3,0); draw z1--z2; draw z3--z4;
+ z5 = (x3,.65h);
+ z6 = (1/2penwd,.65h);
+ z8 = (w-rm,.6h);
+ z9 = (.96x8,.48h);
+ draw z5{curl.5}..tension1.9..z6{down}..tension1.9..{curl.5}z5;
+ draw z5{curl.5}..tension1.2..z8{down}..tension1.3..z9;
+ z10 = (x3,.17h);
+ z11 = (1/2penwd,.17h);
+ z13 = (w-rm,.12h);
+ z14 = (.96x13,0);
+ draw z10{curl.5}..tension1.9..z11{down}..tension1.9..{curl.5}z10;
+ draw z10{curl.5}..tension1.2..z13{down}..tension1.3..z14;
+endchar;
+
+beginchar(196,1.55twd#+rm#,ht#,0); "kta";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ lm := 23/16twd;
+ xm := w - rm - lm;
+ z1=(0,h); z2=(w,h); x3 = good.x (xm + .55lm); y3=h;
+ z4 = (x3,0); draw z1--z2; draw z3--z4;
+ z7 = (x3,.5h);
+ z8 = (w-rm,.5h);
+ z9 = (xm+.94lm,.1h);
+ draw z7{curl.5}..z8{down}..tension1.3..z9;
+ z10 = (x3,.75h);
+ z11 = (1/2penwd,y10);
+ draw z10--z11;
+ z12 = (x3,.5h);
+ z13 = (.65xm+.35x3,y12);
+ z14 = (.5xm+.5x3,0);
+ draw z12---z13..{curl0}z14;
+endchar;
+
+beginchar(197,2.0twd#+brm#,ht#,0); "ktya";
+ italcorr brm#;
+ frame;
+ lm := 23/16twd;
+ xm := .1twd;
+ x5 = good.x (xm + .55lm); y5=h;
+ z6 = (x5,0); draw z5--z6;
+ z7 = (x5,.75h);
+ z10 = (x5,.75h);
+ z11 = (1/2penwd,y10);
+ draw z10--z11;
+ z12 = (x5,.5h);
+ z13 = (.65xm + .35x5,y12);
+ z14 = (.5xm + .5x5,0);
+ draw z12---z13..{curl0}z14;
+ z8 = (.77(w-brm),.6h);
+ z9 = (.65(w-brm),.4h);
+ z15 = (x3,.45h);
+ draw z9{dir-70}..{curl.5}z15;
+ draw z7{right}..z8..tension1.3..z9;
+endchar;
+
+beginchar(198,2.15twd#+rm#,ht#,0); "ktva";
+ italcorr rm#+.65twd#; path p;
+ pickup frame_pen;
+ lm := 23/16twd;
+ z1=(0,h); z2=(w,h); x3 = good.x (w-rm-.45lm); y3=h;
+ z4 = (x3,0); draw z1--z2; draw z3--z4;
+ z7 = (x3,.5h);
+ z8 = (w-rm,.5h);
+ z9 = (.94(w-rm),.1h);
+ draw z7{curl.5}..z8{down}..tension1.3..z9;
+ z10 = (x3,.75h);
+ z11 = (1/2penwd,y10);
+ draw z10--z11;
+ z15 = (x3,.37h);
+ z16 = (.55lm,.37h);
+ p = z15..tension1.5..z16{down}..tension1.5..z15;
+ draw p;
+ z12 = point 0.85 of p;
+ z13 = (.4x12,y12);
+ z14 = (.57x12,0);
+ draw z12---z13..{curl0}z14;
+endchar;
+
+beginchar(199,23/16twd#+rm#,ht#,0); "kna";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ lm := w-rm;
+ z1 = (0,h); z2 = (w,h); x3 = good.x .55lm; y3 = h;
+ z4 = (x3,0); draw z1--z2; draw z3--z4;
+ z5 = (x3,.6h);
+ z6 = (1/2penwd,.55h);
+ z7 = (x3,.5h);
+ z8 = (lm,.5h);
+ z9 = (.94lm,.1h);
+ draw z5..tension1.3..z6{down}..tension1.3..z7;
+ draw z7{curl.5}..z8{down}..tension1.3..z9;
+ low_n(1.1penwd,.15h);
+endchar;
+
+beginchar(200,1.9twd#+brm#,ht#,0); "kya";
+ italcorr brm#;
+ frame;
+ lm := 23/16twd;
+ x5 = good.x .55lm; y5=h;
+ z6 = (x5,0); draw z5--z6;
+ z7 = (x5,.76h);
+ z8 = (.7(w-brm),.64h);
+ z9 = (.6(w-brm),.45h);
+ z15 = (x3,.45h);
+ draw z9{dir-70}..{curl.5}z15;
+ draw z7{right}..z8..tension1.3..z9;
+ z10 = (x5,.6h);
+ z11 = (1/2penwd,.55h);
+ z12 = (x5,.5h);
+ draw z10..tension1.3..z11{down}..tension1.3..z12;
+endchar;
+
+beginchar(201,2.0twd#+brm#,ht#,0); "kma";
+ italcorr brm#;
+ frame;
+ lm := 23/16twd;
+ x5 = good.x .55lm; y5=h;
+ z6 = (x5,0); draw z5--z6;
+ z7 = (x5,.76h);
+ y8 = good.y .27h+penwd; x8 = x3;
+ z9 = (1.1twd+3/2penwd,y8-penwd);
+ z13 = (x9-1/2penwd,y9+1/2penwd);
+ z14 = (x9,y7-penwd);
+ draw z7{right}..z14---z9;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z13)--z8;
+ z15 = (x3,.45h);
+ z10 = (x5,.6h);
+ z11 = (1/2penwd,.55h);
+ z12 = (x5,.5h);
+ draw z10..tension1.3..z11{down}..tension1.3..z12;
+endchar;
+
+beginchar(202,1.8twd#+rm#,ht#,0); "kla";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ lm := 23/16twd;
+ z1=(0,h); z2=(w,h); x3=good.x w-rm-.45lm; y3=h;
+ z4 = (x3,0); draw z1--z2; draw z3--z4;
+ z5 = (x3,.6h);
+ z6 = (w-rm-lm+1/2penwd,.55h);
+ z7 = (x3,.5h);
+ z8 = (w-rm,.5h);
+ z9 = (w-rm-.06lm,.1h);
+ draw z5..tension1.3..z6{down}..tension1.3..z7;
+ draw z7{curl.5}..z8{down}..tension1.3..z9;
+ z14=(x3,.38h);
+ z10=(.55x3,.18h);
+ z11=(1/4x3,.4h);
+ z12=(1/2penwd,.3h);
+ z13=(3/8x3,0);
+ draw z14{left}..{curl4}z10;
+ draw z10{curl6}..{left}z11..{down}z12..{curl0}z13;
+endchar;
+
+beginchar(203,1.65twd#+rm#,ht#,0); "kva";
+ italcorr rm#+.65twd#;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h); x3=good.x twd; y3=h;
+ z4 = (x3,0); draw z1--z2; draw z3--z4;
+ z5 = (x3,.65h);
+ z6 = (1/2penwd,.65h);
+ draw z5{curl.5}..tension1.9..z6{down}..tension1.9..{curl.5}z5;
+ z10 = (x3,.17h);
+ z11 = (1/2penwd,.17h);
+ draw z10{curl.5}..tension1.9..z11{down}..tension1.9..{curl.5}z10;
+ z7 = (x3,.65h);
+ z8 = (w-rm,.5h);
+ z9 = (.94(w-rm),.1h);
+ draw z7{curl.5}..z8{down}..tension1.3..z9;
+endchar;
+
+beginchar(204,2.1twd#+brm#,ht#,0); "kvya";
+ italcorr brm#;
+ frame;
+ x5 = good.x twd; y5=h;
+ z6 = (x5,0); draw z5--z6;
+ z7 = (x5,.76h);
+ z8 = (.77(w-brm),.6h);
+ z9 = (.64(w-brm),.42h);
+ z15 = (x3,.42h);
+ z12 = (x5,.65h);
+ z13 = (1/2penwd,.65h);
+ draw z12{curl.5}..tension1.9..z13{down}..tension1.9..{curl.5}z12;
+ z10 = (x5,.17h);
+ z11 = (1/2penwd,.17h);
+ draw z10{curl.5}..tension1.9..z11{down}..tension1.9..{curl.5}z10;
+ draw z9{dir-70}..{curl.5}z15;
+ draw z12..tension1.3..z8..tension1.3..z9;
+endchar;
+
+beginchar(205,1.1twd#+brm#,ht#,.1ht#); "ghna";
+ italcorr brm#;
+ frame;
+ path p;
+ z5 = (x3,.5h);
+ z6 = (.65x3,.65h);
+ z10 = (.18x3,.5h);
+ p = z5{curl0}..z10{up}...{right}z6;
+ draw p;
+ z7 = point 1.7 of p;
+ z8 =(.26x3,h);
+ vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z8) < 0
+ enddef;
+ z9 = (1/2penwd,solve yup(y7,y8));
+ draw z7{curl0}..z9..{right}z8;
+ low_n(.3(w-brm),.1h);
+endchar;
+
+beginchar(206,1.2twd#+brm#,ht#,0); "cca";
+ italcorr brm#; path p;
+ frame; y5 = good.y .7h; x5 = 1/2penwd;
+ z6 = (w-brm-penwd,y5);
+ z9 = (.44x3,y5);
+ z7 = (.55x3,.35h);
+ z8 = (w-brm,.45h);
+ draw z5--z6; p = z9{curl.5}..z7{right}..z8;
+ y10 = good.y .38h; x10 = 1/2penwd;
+ z11 = (w-brm-penwd,y10);
+ draw subpath (0,xpart(p intersectiontimes (z10--z11))) of p;
+ z12 = (.44x3,y10);
+ z13 = (.55x3,.03h);
+ z14 = (w-brm,.13h);
+ draw z10--z11; draw z12{curl.5}..z13{right}..z14;
+endchar;
+
+beginchar(207,1.2twd#+brm#,ht#,0); "c~na";
+ italcorr brm#;
+ frame; y5 = good.y .74h; x5 = 1/2penwd;
+ z6 = (w-brm-penwd,y5);
+ z9 = (.6x3,y5);
+ z7 = (2/5x6,.54h);
+ z8 = (w-brm,.62h);
+ draw z5--z6; draw z9..z7{down}..tension1.1..{curl0.1}z8;
+ z10 = (.1(w-brm),.3h);
+ z11 = (.4(w-brm),.15h);
+ z12 = (.2(w-brm),0);
+ z13 = (w-brm,y11);
+ z14 = (1/2penwd,.05h);
+ draw z10..z11{down}..z12{left}..z14;
+ draw z11{dir-20}..z13;
+endchar;
+
+if altcha:
+ beginchar(208,2.6twd#+rm#,ht#,0); "chya"; % alternate
+ italcorr brm#;
+ frame;
+ lm := 1.8twd; path p;
+ x13 = good.x .75lm; y13=h; z14 = (x13,.72h);
+ z5 = (x3,.3h); z6 = (lm,0);
+ z7 = (.38lm,0); z8 = (.5lm,.45h);
+ z12 = (x13,.2h);
+ p= z5{curl.2}..z6..z12..z14{right}..z7{left}..tension.9..{right}z8;
+ draw p;
+ z9 = point 4.75 of p;
+ z10 = (.8x8,.75h);
+ z11 = (1/2penwd,.7[y9,y10]);
+ draw z9..tension1.4..z11{up}..tension1.3..{curl0}z10;
+ endchar;
+else:
+ beginchar(208,2.6twd#+rm#,ht#,0); "chya"; % original
+ italcorr brm#;
+ frame;
+ lm := 1.8twd; path p;
+ x13 = good.x .75lm; y13=h; z14 = (x13,.72h);
+ z5 = (x3,.3h); z6 = (lm,0);
+ z7 = (.38lm,0); z8 = (.5lm,.45h);
+ z12 = (x13,.2h);
+ draw z13--z14;
+ p= z5{curl.2}..z6..z12..z14{right}..z7{left}..tension.9..{right}z8;
+ draw p;
+ z9 = point 4.75 of p;
+ z10 = (.8x8,.75h);
+ z11 = (1/2penwd,.7[y9,y10]);
+ draw z9..tension1.4..z11{up}..tension1.3..{curl0}z10;
+ endchar;
+fi;
+
+beginchar(209,1.2twd#+brm#,ht#,.1ht#); "~nca";
+ italcorr brm#;
+ frame; y5 = good.y .3h; x5 = 1/2penwd;
+ z6 = (w-brm-penwd,y5);
+ z9 = (.6x3,y5);
+ z7 = (2/5x6,.1h);
+ z8 = (w-brm,.18h);
+ draw z5--z6; draw z9..z7{down}..tension1.1..{curl0.1}z8;
+ z10 = (.1(w-brm),.8h);
+ z11 = (.4(w-brm),.65h);
+ z12 = (.2(w-brm),.5h);
+ z13 = (w-brm,y11);
+ z14 = (1/2penwd,.53h);
+ draw z10..z11{down}..z12{left}..z14;
+ draw z11{dir-20}..z13;
+endchar;
+
+beginchar(210,1.4twd#+brm#,ht#,0); "~nja";
+ italcorr brm#;
+ lm := 1.2twd;
+ frame;
+ y5 = good.y .3h; x5 = 1/2penwd;
+ z7 = (.45x3,y5);
+ z8 = (w-brm,y5);
+ z6 = (.52x3,0);
+ draw z5{curl.5}..tension1.2..z6{right}..{curl0}z7--z8;
+ z10 = (.1lm,.8h);
+ z11 = (.4lm,.65h);
+ z12 = (.2lm,.5h);
+ z13 = (w-brm,y11);
+ z14 = (1/2penwd,.53h);
+ draw z10..z11{down}..z12{left}..z14;
+ draw z11{dir-20}..z13;
+endchar;
+
+beginchar(211,1.15twd#+rm#,ht#,.4ht#); ".t.ta";
+ italcorr rm#+.5twd#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ lm := w-rm;
+ x3 = good.x .7lm; y3=h;
+ z4 = (x3,.72h);
+ z6 = (.55lm,.3h);
+ z7 = (lm,.4h);
+ draw z3--z4;
+ vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..tension1.1..
+ (1/2penwd,y)..z6{right}..{curl0}z7) < 0 enddef;
+ z55 = (1/2penwd,solve dwn(y4,y6));
+ p = z4{curl0}..tension1.1..z55..z6{right}..{curl0}z7;
+ draw p;
+ z8 = p intersectionpoint ((x3,.65h)--(x3,0));
+ hdif := y3-y8;
+ z9 = (x4,y4-hdif);
+ z10 = (x55,y55-hdif);
+ z11 = (x6,y6-hdif);
+ z12 = (x7,y7-hdif);
+ draw z8--z9;
+ draw z9{curl0}..tension1.1..z10..z11{right}..{curl0}z12;
+endchar;
+
+beginchar(212,1.8twd#+brm#,ht#,0); ".tya";
+ italcorr brm#;
+ frame;
+ lm := 1.0twd;
+ x5 = good.x .7lm; y5=h;
+ z8 = (x5,.66h);
+ z7 = (x5+1/2penwd,.2h);
+ draw z5--z8;
+ vardef dwn(expr y) = xpart direction 1 of (z8{curl0}..tension1.1..
+ (1/2penwd,y)..tension1.1..{curl0}z7) < 0 enddef;
+ z55 = (1/2penwd,solve dwn(y8,y7));
+ draw z8{curl0}..tension1.1..z55..tension1.1..{curl0}z7;
+ z9 = (.58x3,.33h);
+ z10 = (x3,.4h);
+ z11 = .4[z8,z5];
+ z12 = (.65x3,.88y11);
+ draw z9{dir-60}..tension1.1..{curl.2}z10;
+ draw z11{right}..z12..tension1.1..z9;
+endchar;
+
+beginchar(213,1.45twd#+brm#,ht#,.1ht#); ".thya";
+ italcorr brm#;
+ frame; path p;
+ lm := 1twd;
+ x9 = good.x .75lm; y9 = h;
+ z10 = (x9,.72h);
+ z6 = (.55lm,.22h);
+ z7 = (lm,y5);
+ z8 = (x10+penwd,y10-penwd);
+ draw z9--z10;
+ vardef dwn(expr y) = xpart direction 1 of (z10{curl0}..(1/2penwd,y)
+ ..{right}z6) < 0 enddef;
+ z5 = (1/2penwd,solve dwn(y10,y6));
+ p = z10{curl0}..z5..z6{right}..z7{up}..{curl0}z8;
+ draw p;
+ z11 = point 2.15 of p;
+ z12 = (x3,y11);
+ draw z11{dir-90}..tension.95..{curl.2}z12;
+endchar;
+
+beginchar(214,1.15twd#+rm#,ht#,.25ht#); ".tka";
+ italcorr rm#+.5twd#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ lm := w-rm;
+ x3 = good.x .7lm; y3=h;
+ z4 = (x3,.72h);
+ z6 = (.55lm,.3h);
+ z7 = (lm,.4h);
+ draw z3--z4;
+ vardef dwn(expr y) = xpart direction 1 of (z4{curl0}..tension1.1..
+ (1/2penwd,y)..z6{right}..{curl0}z7) < 0 enddef;
+ z55 = (1/2penwd,solve dwn(y4,y6));
+ p = z4{curl0}..tension1.1..z55..z6{right}..{curl0}z7;
+ draw p;
+ z16 = point 2.1 of p;
+ z10 = (x16,y16-.7h);
+ z11 = (x16,.53[y10,y16]);
+ z12 = (1/2penwd,.53[y10,y16]);
+ z13 = (x16,.53[y10,y16]);
+ z14 = (1.65x16,y13);
+ z15 = (1.55x16,.1[y10,y16]);
+ draw z16--z10;
+ draw z11..tension1.4..z12{down}..tension1.4..z13;
+ draw z13{curl.5}..z14{down}..tension1.3..z15;
+endchar;
+
+beginchar(215,1.3twd#+brm#, ht#, 0); "tna";
+ italcorr brm#;
+ frame; y5 = good.y 2/3h; x5 = x3;
+ z6 = (0.35twd,y5); z7 = (0.45twd,0);
+ draw z5---z6..{curl0}z7;
+ low_n(.7twd,.38h);
+endchar;
+
+beginchar(216,twd#+brm#,ht#,0); "pta";
+ italcorr brm#;
+ frame;
+ z5 = (1/2penwd,h);
+ z6 = (w-brm,.5h);
+ x7 = x5+.17(w-brm);
+ y7 = y6+.14h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ z9 = (1/2penwd,.62y6); z10 = (0.45x3,0);
+ draw z6{left}..tension1.2..z9{down}..{curl0}z10;
+endchar;
+
+beginchar(217,twd#+brm#,ht#,0); "pna";
+ italcorr brm#;
+ frame;
+ z5 = (penwd,h);
+ z6 = (w-brm,.5h);
+ x7 = x5+.17(w-brm);
+ y7 = y6+.1h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ low_n(1.1penwd,.2h);
+endchar;
+
+beginchar(218,1.3twd#+brm#,ht#,0); "pla";
+ italcorr brm#;
+ frame;
+ z5 = (.3twd+penwd,h);
+ z6 = (w-brm,.5h);
+ x7 = x5+.17twd;
+ y7 = y6+.1h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ z14=(x3,.38h);
+ z10=(.55x3,.18h);
+ z11=(1/4x3,.4h);
+ z12=(1/2penwd,.3h);
+ z13=(3/8x3,0);
+ draw z14{left}..{curl4}z10;
+ draw z10{curl6}..{left}z11..{down}z12..{curl0}z13;
+endchar;
+
+beginchar(219,11/12twd#+brm#,ht#,.3ht#); "bva";
+ italcorr brm#; path p;
+ frame; z5 = (x3,.62h);
+ z6 = (1/2penwd,.6h);
+ z7 = (x3,.58h);
+ p = z5..tension1.5..z6{down}..tension1.5..z7;
+ draw p;
+ z8 = (x3,-.3h);
+ draw z3--z8;
+ z9 = (x3,.06h);
+ z10 = (1/2penwd,.04h);
+ z11 = (x3,.02h);
+ draw z9..tension1.5..z10{down}..tension1.5..z11;
+ y12 = h; z13 = (.58x3,.6h);
+ z12 = z13 + whatever*dir125;
+ y14 = 0;
+ z14 = z13 + whatever*dir305;
+ z15 = p intersectionpoint (z13--z12);
+ z16 = p intersectionpoint (z13--z14);
+ draw z15--z16;
+endchar;
+
+beginchar(220,1.5twd#+brm#,ht#,0); "sna";
+ italcorr brm#;
+ frame; path p; path q;
+ z5 = (1/2penwd,.65h);
+ z6 = (.6twd,0);
+ p = z5{down}..tension1.1..{curl0}z6;
+ z7 = point .2 of p;
+ z8 = (.424twd,h);
+ q = z8{curl0}..tension1.1..{left}z7;
+ z9 = point .65 of q;
+ z10 = (w-brm,y9);
+ draw p; draw q; draw z9{dir-30}..tension1.1..z10;
+ low_n(.95twd,.25h);
+endchar;
+
+beginchar(221,1.6twd#+brm#,ht#,0); "mla";
+ italcorr brm#;
+ frame; x5 = good.x 3/2penwd; y5=h;
+ z6 = (x5,y7-penwd);
+ y7 = good.y .42h+penwd; x7=x3;
+ z8 = (x6-1/2penwd,y6+1/2penwd);
+ draw z5--z6;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z8)--z7;
+ lm := 1.2twd;
+ bm := w-brm-lm;
+ z14 = (w-brm,.28h);
+ z10 = (.55lm+bm,.08h);
+ z11 = (1/4lm+bm,.3h);
+ z12 = (1/2penwd+bm,.2h);
+ z13 = (3/8lm+bm,-.1h);
+ draw z14{left}..{curl4}z10;
+ draw z10{curl6}..{left}z11..{down}z12..{curl0}z13;
+endchar;
+
+beginchar(222,1.5twd#+brm#,ht#,0); "bhna";
+ italcorr brm#;
+ tframe;
+ z5 = (0,h);
+ z6 = (3/2penwd+.1twd,.76h);
+ z7 = (x6,.42h);
+ z8 = (x3,y7+penwd);
+ z9 = (x7-1/2penwd,y7+1/2penwd);
+ draw z5{right}..tension.95..z6---z7;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z9)--z8;
+ low_n(.85twd,.25h);
+endchar;
+
+beginchar(223,1.5twd#+brm#,ht#,0); "mna";
+ italcorr brm#;
+ frame; x5 = good.x 3/2penwd; y5=h;
+ z6 = (x5,y7-penwd);
+ y7 = good.y .42h+penwd; x7=x3;
+ z8 = (x6-1/2penwd,y6+1/2penwd);
+ draw z5--z6;
+ draw (reverse halfcircle rotated rot scaled usthick shifted z8)--z7;
+ low_n(.85twd,.25h);
+endchar;
+
+beginchar(224,1.2twd#+brm#,ht#,0); "nna";
+ italcorr brm#;
+ frame; path p;
+ z5 = (x3,.47h);
+ z6 = (1.0penwd,.72h);
+ z7 = (x6,y6-.5penwd);
+ z8 = (.3(w-brm),.22h);
+ x9 = x8 + (1/4penwd * sqrt 2);
+ y9 = y8 - (1/4penwd * sqrt 2);
+ filldraw fullcircle scaled 1.0penwd shifted(x7,y7);
+ filldraw fullcircle scaled 1.0penwd shifted(x9,y9);
+ p = z5{left}..z8;
+ draw p;
+ z10 = point .17 of p;
+ draw z10{curl2}..{left}z6;
+endchar;
+
+beginchar(225,1.15twd#+rm#,ht#,.45ht#); ".t.tha";
+ italcorr rm#+.5twd#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ lm := w-rm;
+ x3 = good.x .7lm; y3=h;
+ z4 = (x3,.72h);
+ z6 = (.55lm,.3h);
+ z7 = (lm,.4h);
+ draw z3--z4;
+ vardef dwna(expr y) = xpart direction 1 of (z4{curl0}..tension1.1..
+ (1/2penwd,y)..z6{right}..{curl0}z7) < 0 enddef;
+ z55 = (1/2penwd,solve dwna(y4,y6));
+ p = z4{curl0}..tension1.1..z55..z6{right}..{curl0}z7;
+ draw p;
+ z8 = p intersectionpoint ((x3,.65h)--(x3,0));
+ hdif := y3-y8;
+ z9 = (x4,y4-hdif);
+ z11 = (x6,y6-hdif-.05h);
+ z13 = (x9+penwd,y9-penwd);
+ vardef dwnb(expr y) = xpart direction 1 of (z9{curl0}..tension1.1..
+ (1/2penwd,y)..z11{right}) < 0 enddef;
+ z10 = (1/2penwd,solve dwnb(y9,y11));
+ z12 = (lm,y10);
+ draw z9{curl0}..tension1.1..z10..z11{right}..z12{up}..{curl0}z13;
+ draw z8--z9;
+endchar;
+
+if altjna:
+ beginchar(226,1.1twd#+brm#,ht#,0); "j~na";
+ italcorr brm#;
+ frame;
+ y5=good.y .7h; x5=x3;
+ z6=(1/2penwd,y5);
+ z7=(x6,.25h);
+ z8=(.55(w-brm),0);
+ z9=(x7+1/2penwd,y7-1/2penwd);
+ y10=.3[y9,y6]; x10=.65(w-brm);
+ draw z5--z6;
+ draw z6{curl0}..tension1.1..z10{down}..z9{left}..z7{up}..
+ tension1.3..{curl0}z8;
+ endchar;
+else:
+ beginchar(226,1.1twd#+brm#,ht#,.25ht#); "j~na";
+ italcorr brm#+.3twd#;
+ frame;
+ z5 = (w-brm,.45h);
+ z6 = (.4(w-brm),.7h);
+ z9 = (.2(w-brm),.6h);
+ z7 = (.6(w-brm),.18h);
+ z8 = (1/2penwd,.05h);
+ z10 = (.7(w-brm),-.22h);
+ draw z5{curl.2}..z6{left}..z9{down}..z7{down}..tension1.6
+ ..z8{up}..tension1.3..{curl0}z10;
+ endchar;
+fi;
+
+beginchar(227,1.1twd#+brm#,ht#,.2ht#); "h.r";
+ italcorr brm#+.55twd#;
+ lm := w-brm; pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ draw z1--z2;
+ x3 = good.x .8lm; y3 = h; z4 = (x3,.75h);
+ z5 = (1/2penwd,.65h); z6 = (.4lm,.4h);
+ z7 = (.58lm,.08h); z8 = (.9lm,.27h);
+ z9 = (.85lm,-.3h);
+ z10 = (1/2penwd,.2h);
+ z11 = (1.1lm,-.05h);
+ draw z3--z4{left}...z5{down}..z6;
+ draw z9{curl0}..tension1.2..z10{up}..z6..tension1.2 and 1.0..
+ z8{down}..z7{down}..{curl.5}z11;
+endchar;
+
+beginchar(228,1.75twd#+brm#,ht#,0); ".dhya";
+ italcorr brm#;
+ path p;
+ lm := 1.1twd;
+ frame;
+ x9 = good.x .85lm; y9=h;
+ z10 = (x9,.72h);
+ z5 = (1/2penwd,.47h);
+ z6 = (.7lm,1/2penwd);
+ z7 = (lm,.23h);
+ draw z9--z10;
+ p = z10{left}..tension.9..{down}z5..tension.9..{right}z6..{up}z7;
+ draw p..z6;
+ z8 = (w-brm,.3h);
+ draw z7{dir-30}..{curl.3}z8;
+endchar;
+
+beginchar(229,13/17twd#+.25twd#+rm#+penwd#,ht#,.6ht#); ".d.da";
+ italcorr rm#+.5twd#; path p;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3 = good.x w-rm-1.5penwd; y3 = h;
+ z4 = (x3,.74h); z5 = (.25twd+1/2penwd,.6h);
+ draw z3--z4;
+ z6 = (x3+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x3),1/7h);
+ z8 = (1/2penwd,.45h);
+ p = z4{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z10 = (x3,y6);
+ z11 = (x3,0);
+ z12 = p intersectionpoint (z10--z11);
+ addto currentpicture also currentpicture shifted (0,y12-h);
+ draw z1--z2;
+endchar;
+
+beginchar(230,1.9twd#+brm#,ht#,0); "knya";
+ italcorr brm#;
+ frame;
+ lm := 23/16twd;
+ x5 = good.x .55lm; y5=h;
+ z6 = (x5,0); draw z5--z6;
+ z7 = (x5,.76h);
+ z8 = (.7(w-brm),.64h);
+ z9 = (.6(w-brm),.45h);
+ z15 = (x3,.45h);
+ draw z9{dir-70}..{curl.5}z15;
+ draw z7{right}..z8..tension1.3..z9;
+ z10 = (x5,.6h);
+ z11 = (1/2penwd,.55h);
+ z12 = (x5,.5h);
+ draw z10..tension1.3..z11{down}..tension1.3..z12;
+ y13 := good.y .15h; x13 := x5;
+ y14 := y13 - .75penwd; x14 := 1.25penwd;
+ filldraw fullcircle scaled 1.5penwd shifted(x14,y14);
+ z16 = (x14,y13);
+ draw z13--z16;
+endchar;
+
+beginchar(231,2.1twd#+brm#,ht#,0); "krya";
+ italcorr brm#;
+ frame;
+ x5 = good.x twd; y5=h;
+ z6 = (x5,0); draw z5--z6;
+ z7 = (x5,.76h);
+ z8 = (.75(w-brm),.63h);
+ z9 = (.65(w-brm),.4h);
+ z15 = (x3,.45h);
+ draw z9{dir-70}..tension1.1..{curl.3}z15;
+ draw z7{right}..z8..tension1.3..z9;
+ z10 = (x5,.5h);
+ z11 = (1/2penwd,.65h);
+ z12 = (.3x5,.25h);
+ draw z7{left}..z11;
+ draw z10--z12;
+endchar;
+
+beginchar(232,1.1twd#,ht#,0); "half ghna";
+ pickup frame_pen;
+ z1 = (0,h); z3 = (w,h);
+ draw z1--z3;
+ path p;
+ z5 = (w,.55h);
+ z6 = (.55w,.72h);
+ z10 = (.18w,.58h);
+ p = z5{curl0}..tension1.1..z10{up}..{curl0}z6;
+ draw p;
+ z7 = point 1.7 of p;
+ z8 =(.26w,h);
+ vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z8) < 0
+ enddef;
+ z9 = (1/2penwd,solve yup(y7,y8));
+ draw z7{curl0}..z9..{right}z8;
+ low_n(.3w,.2h);
+endchar;
+
+beginchar(233,1.2twd#,ht#,0); "half gra";
+ path p;
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ lm := 1.1twd;
+ draw z1--z2;
+ z3 = (1.1w,.5h);
+ z4 = (.75w,.25h);
+ draw z3--z4;
+ z5 = (.25lm,h);
+ z6 = (x5,.3h);
+ z7 = 2/3[z5,z6];
+ z8 = z7 shifted (.1lm,0);
+ z9 = (1/2penwd,y6+.08h);
+ p = z5..z8{down}..z6{left}..z9{up};
+ z10 = point 2.4 of p;
+ draw p..z10;
+endchar;
+
+if altjna:
+ beginchar(234,1.1twd#,ht#,0); "half j~na";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ y5=good.y .7h; x5=x2;
+ z6=(1/2penwd,y5);
+ z7=(x6,.25h);
+ z8=(.55w,0);
+ z9=(x7+1/2penwd,y7-1/2penwd);
+ y10=.3[y9,y6]; x10=.65w;
+ draw z5--z6;
+ draw z6{curl0}..tension1.1..z10{down}..z9{left}..z7{up}..tension1.3..{curl0}z8;
+ endchar;
+else:
+ beginchar(234,1.1twd#,ht#,0); "half j~na";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5 = (w,.45h);
+ z6 = (.4w,.7h);
+ z9 = (.2w,.6h);
+ z7 = (.6w,.18h);
+ z8 = (1/2penwd,.05h);
+ z10 = (.7w,-.22h);
+ draw z5{curl.2}..z6{left}..z9{down}..z7{down}..tension1.6..z8{up}..tension1.3..{curl0}z10;
+ endchar;
+fi;
+
+beginchar(235,1.2twd#,ht#,0); "half ~nca";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ y5 = good.y .3h; x5 = 1/2penwd;
+ z6 = (.63w,y5);
+ z9 = (.55w,y5);
+ z7 = (.35w,.1h);
+ z8 = (w,.4h);
+ draw z5--z6; draw z9..z7{down}..tension1.1..{curl.1}z8;
+ z10 = (.1w,.8h);
+ z11 = (.4w,.65h);
+ z12 = (.2w,.5h);
+ z13 = (w,y11);
+ z14 = (1/2penwd,.53h);
+ draw z10..z11{down}..z12{left}..z14;
+ draw z11{dir-20}..z13;
+endchar;
+
+beginchar(236,twd#,ht#,0); "half tra";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5 = (w,.5h);
+ z6 = (1/2penwd,.65h);
+ z7 = (.3w,.25h);
+ draw z5{dir120}..z6;
+ draw z5--z7;
+endchar;
+
+beginchar(237,twd#+brm#,ht#,.45ht#); "dgra";
+ italcorr brm#; path p; path q;
+ pickup frame_pen;
+ z1=(0,h); z2=(w,h);
+ x3=good.x w-brm; y3=h;
+ z4=(x3,.72h);
+ z5=(1/2penwd,.5h);
+ z6=(x3,0.27h);
+ z7= z6 + (.3thick*(dir(rot)));
+ z8= (x7,-.45h);
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..{down}z5..tension1.2..{dir30}z6;
+ draw p;
+ draw z7--z8;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.6*thick) shifted (z6 + .3thick*(dir rot));
+ z9 = point 1.35 of p;
+ z10 = (.5x9,y9-.5h);
+ z12 = (1/2penwd,y10+.08h);
+ q = z9{down}..tension1.3..z10{left}..z12{up};
+ z13 = point 1.3 of q;
+ draw q..{curl.2}z13;
+ z14 = (x7,.5[y8,y7]);
+ z15 = (.4x7,y8);
+ draw z14--z15;
+endchar;
+
+beginchar(238,twd#+brm#,ht#,.45ht#); "dghra";
+ italcorr brm#; path p; path q;
+ pickup frame_pen;
+ z1= (0,h); z2= (w,h);
+ draw z1--z2;
+ x3= good.x w-brm; y3=h;
+ z4 =(x3,.74h);
+ z5= (.22(w-brm),.61h);
+ z6= (x3,.42h);
+ z7= (x3,-.3h);
+ z8= (x3,0);
+ draw z3--z4;
+ p= z4{left}..tension1.4..z5{down}..tension1.4..{curl.3}z6--z7;
+ draw p;
+ z9= point 1.25 of p;
+ z10= (.15x3,0);
+ z11= (.5x3,.15h);
+ q= z8{curl0}..z10{up}...{right}z11;
+ draw q;
+ z12= point 1.7 of q;
+ vardef yup(expr y)= xpart direction 1 of (z12{curl0}..(1/2penwd,y)..{right}z9) < 0
+ enddef;
+ z13= (1/2penwd,solve yup(y12,y9));
+ draw z12{curl.2}..z13..{right}z9;
+ z14 = (x3,0);
+ z15 = (.35x3,-.45h);
+ draw z14--z15;
+endchar;
+
+beginchar(239,1.4twd#+brm#,ht#,.1ht#); "drya";
+ italcorr brm#;
+ frame; path p;
+ x10=good.x 5/6twd; y10=y1;
+ z7=(x10,.72h);
+ z5=(1/2penwd,.53h);
+ z6=(x10,0.27h);
+ z8=(x10-.15twd,y6);
+ z9=(x3,.15h);
+ draw z10--z7;
+ p = z7{left}..tension.9..{down}z5..tension.9 and 1.1..{dir30}z6..
+ z8..tension.9..{curl.5}z9;
+ draw p;
+ z11 = point 3.2 of p;
+ z12 = (.2x3,-.2h);
+ draw z11--z12;
+endchar;
+
+beginchar(240,1.1twd#+brm#,ht#,.1ht#); "dhna";
+ italcorr brm#;
+ path p;
+ tframe;
+ z5=(x3,.5h);
+ z6=(.65x3,.65h);
+ z10=(.18x3,.5h);
+ p=z5{curl0}..z10{up}...{right}z6;
+ draw p;
+ z7= point 1.7 of p;
+ z8=(.26x3,h);
+ vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z8) < 0
+ enddef;
+ z9=(1/2penwd,solve yup(y7,y8));
+ draw z7{curl0}..z9..{right}z8;
+ low_n(.3(w-brm),.1h);
+endchar;
+
+beginchar(241,1.1twd#,ht#,0); "half dhna";
+ pickup frame_pen;
+ path p;
+ z5 = (w,.55h);
+ z6 = (.55w,.72h);
+ z10 = (.18w,.58h);
+ p = z5{curl0}..tension1.1..z10{up}..{curl0}z6;
+ draw p;
+ z7 = point 1.7 of p;
+ z8 =(.26w,h);
+ vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z8) < 0
+ enddef;
+ z9 = (1/2penwd,solve yup(y7,y8));
+ draw z7{curl0}..z9..{right}z8;
+ x3 = w;
+ low_n(.3w,.2h);
+endchar;
+
+beginchar(242,1.1twd#,ht#,0); "half dhra";
+ path p;
+ pickup frame_pen;
+ z5=(w,.5h);
+ z6=(.65w,.65h);
+ z10=(.18w,.5h);
+ p=z5{curl0}..z10{up}...{right}z6;
+ draw p;
+ z7= point 1.7 of p;
+ z8=(.26w,h);
+ vardef yup(expr y)= xpart direction 1 of (z7{curl0}..(1/2penwd,y)..{right}z8) < 0
+ enddef;
+ z9=(1/2penwd,solve yup(y7,y8));
+ draw z7{curl0}..z9..{right}z8;
+ z11 = (w,.4h);
+ z12 = (0,0);
+ draw z11--z12;
+endchar;
+
+beginchar(243,twd#,ht#,0); "half pta";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5 = (1/2penwd,h);
+ z6 = (w,.5h);
+ x7 = x5+.17w;
+ y7 = y6+.14h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ z9 = (1/2penwd,.62y6); z10 = (0.45w,0);
+ draw z6{left}..tension1.2..z9{down}..{curl0}z10;
+endchar;
+
+beginchar(244,1.3twd#,ht#,0); "half 'sca";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5= (w,.5h);
+ z7= (.45w,.67h);
+ z8= (1/2penwd,.55h);
+ z9= (.8x7,h);
+ draw z8--z7{right}..z9{left}..{right}z7;
+ y6= good.y .33h; x6= .23w;
+ z10= (.85w,y6);
+ z11= (.5w,.15h);
+ z12= (w,.5h);
+ z13= (.6w,y6);
+ draw z6--z10;
+ draw z13..z11{down}..{curl.1}z12;
+ draw z7--z5;
+endchar;
+
+beginchar(245,1.3twd#,ht#,0); "half 'sra";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5= (w,.5h);
+ z7= (.45w,.67h);
+ z8= (1/2penwd,.53h);
+ z9= (.8x7,h);
+ draw z8--z7{right}..z9{left}..{right}z7;
+ z6=(w,.38h);
+ z10=(.45w,.2h);
+ draw z5--z10;
+ draw z7--z5;
+endchar;
+
+beginchar(246,1.3twd#,ht#,0); "half 'sva";
+ pickup frame_pen;
+ z1 = (0,h); z2 = (w,h);
+ draw z1--z2;
+ z5= (w,.5h);
+ z7= (.45w,.67h);
+ z8= (1/2penwd,.55h);
+ z9= (.8x7,h);
+ draw z8--z7{right}..z9{left}..{right}z7;
+ z6=(w,.5h);
+ z10=(.47w,.28h);
+ z11=(w,.5h);
+ draw z6{curl.3}..tension1.3..z10{down}..tension1.2..{curl.3}z11;
+ draw z7--z5;
+endchar;
+
+beginchar(247,1.8twd#+brm#,ht#,0); ".s.tya";
+ italcorr brm#;
+ frame; path p;
+ lm := 1.0twd;
+ x5 = good.x .7lm; y5=h;
+ z8 = (x5,.6h);
+ z7 = (x5+1/2penwd,.2h);
+ draw z5--z8;
+ vardef dwn(expr y) = xpart direction 1 of (z8{curl0}..tension1.2..
+ (1/2penwd,y)..tension1.1..{curl0}z7) < 0 enddef;
+ z55 = (1/2penwd,solve dwn(y8,y7));
+ p = z8{curl0}..tension1.2..z55..{curl0}z7;
+ draw p;
+ z13 = point 0.45 of p;
+ z14 = (penwd,h);
+ z15 = (1/2penwd,.73h);
+ draw z14..z15{down}..{curl.3}z13;
+ z9 = (.58x3,.33h);
+ z10 = (x3,.4h);
+ z11 = .4[z8,z5];
+ z12 = (.65x3,.88y11);
+ draw z9{dir-60}..tension1.1..{curl.2}z10;
+ draw z11{right}..z12..tension1.1..z9;
+ pickup penrazor scaled subthick;
+ draw (1/2penwd,h)--z8;
+endchar;
+
+beginchar(248,5/6twd#+brm#,ht#,.35ht#); "ddva";
+ italcorr brm#+.2twd#;
+ pickup frame_pen;
+ path p; path q;
+ z1 = (0,h); z2 = (w,h);
+ x3 = good.x w-brm; y3 = h;
+ z4 = (x3,.4h);
+ z5 = (1/2penwd,.22h);
+ z6 = (x3+penwd,1/2penwd);
+ z7 = (x3,y6);
+ y8 = -.3h; z8 = z7+whatever*dir305;
+ draw z1--z2;
+ p = z4{curl0}..tension1.2..{down}z5..tension1.1..{curl.2}z6;
+ draw p;
+ q = z6..tension1.2..z7{down}..tension1.3..{curl0}z8;
+ draw q;
+ z9 = (x3,.73h);
+ z10 = (1/2penwd,.56h);
+ z11 = point 0.5 of p;
+ draw z3--z9;
+ draw z9{left}..{down}z10..{curl.3}z11;
+ z12 = point 1.4 of p;
+ z13 = point 1.5 of q;
+ z14 = (.15(w-brm),y13);
+ draw z12..z14{down}..tension1.2..{curl.5}z13;
+endchar;
+
+beginchar(249,1.2twd#+brm#,ht#,.35ht#); "ddhva";
+ italcorr brm#+.1twd#; path p; path q;
+ pickup frame_pen;
+ lm := 5/6twd;
+ z1=(0,h); z2=(w,h);
+ x3=good.x w-brm; y3=h;
+ z4=(x3,.72h);
+ z5=(w-brm-lm+1/2penwd,.53h);
+ z6=(x3,0.27h);
+ z7= z6 + (.3thick*(dir(rot+90)));
+ y8=-.3h; z8=z7+whatever*dir305;
+ draw z1--z2; draw z3--z4;
+ p = z4{left}..tension.9..{down}z5..tension.9 and 1.1..{dir30}z6;
+ draw p;
+ fill ((0,0)--(quartercircle rotated -45 & halfcircle rotated 45)--cycle)
+ scaled (1.6*thick) shifted (z6 + .3thick*(dir rot));
+ z9 = .4[z7,z8];
+ z11 = point 1.6 of p;
+ z10 = (w-brm-.8lm,y9);
+ q = z11..z10{down}..tension1.1..{curl.2}z9;
+ draw q;
+ z12 = point 0.7 of q;
+ z13 = (.15(w-brm),.45h);
+ draw z12{curl.1}..tension1.2..z13{right};
+ draw z7--z8;
+ z16 = point 1.15 of q;
+ z14 = point 1.6 of q;
+ z15 = (1/2penwd,y14-1/2penwd);
+ draw z16{curl.2}..tension1.2..z15{down}..tension1.3..{curl.5}z14;
+endchar;
+
+beginchar(250,1.3twd#+brm#,ht#,0); "sra";
+ italcorr brm#;
+ frame; path p; path q;
+ z5 = (1/2penwd,.65h);
+ z6 = (.6twd,0);
+ p = z5{down}..tension1.1..{curl0}z6;
+ z7 = point .2 of p;
+ z8 = (.424twd,h);
+ q = z8{curl0}..tension1.1..{left}z7;
+ z9 = point .65 of q;
+ z10 = (w-brm,y9);
+ draw p; draw q; draw z9{dir-30}..z10;
+ z11 = (x3,.42h);
+ z12 = (.55x3,.1h);
+ draw z11--z12;
+endchar;
+
+beginchar(251,1.8twd#+brm#,ht#,0); ".drya";
+ italcorr brm#; path p;
+ lm := 13/17twd+.25twd;
+ frame;
+ z23 = (lm,h);
+ z24 = (x23,.74h); z5 = (.25twd+1/2penwd,.6h);
+ z6 = (x23+1/2penwd,.36h);
+ z7 = (1/2(.25twd+x23),1/7h);
+ z8 = (1/2penwd,.45h);
+ draw z23--z24;
+ p = z24{left}..z5{down}..z6{down}..z7{left}..z8;
+ draw p;
+ z10 = point 2.2 of p;
+ z9 = (w-brm,.35h);
+ draw z10{dir-30}..{curl.3}z9;
+ z14 = point 2.9 of p;
+ z11 = (x14,y14-1/2penwd);
+ z12 = (x11-.35twd,y11-.45h);
+ z13 = (x11+.32twd,y11-.25h);
+ pickup sub_pen;
+ draw z11--z12;
+ draw z11--z13;
+endchar;
+
+beginchar(252,2.0twd#+brm#,ht#,0); "ktrya";
+ italcorr brm#;
+ frame;
+ lm := 23/16twd;
+ xm := .1twd;
+ x5 = good.x (xm + .55lm); y5=h;
+ z6 = (x5,0); draw z5--z6;
+ z7 = (x5,.75h);
+ z10 = (x5,.75h);
+ z11 = (1/2penwd,y10);
+ draw z10--z11;
+ z12 = (x5,.5h);
+ z13 = (.65xm + .35x5,y12);
+ z14 = (.5xm + .5x5,0);
+ draw z12---z13..{curl0}z14;
+ z8 = (.77(w-brm),.6h);
+ z9 = (.65(w-brm),.4h);
+ z15 = (x3,.45h);
+ draw z9{dir-70}..{curl.5}z15;
+ draw z7{right}..z8..tension1.3..z9;
+ z17 = (x6-.35twd,y6-.45h+1/2penwd);
+ z16 = (x6+.32twd,y6-.25h+1/2penwd);
+ pickup sub_pen;
+ draw z6--z16;
+ draw z6--z17;
+endchar;
+
+% beginchar(253,0,ht#,.25ht#); "sub-r"; % original
+% pickup sub_pen;
+% z1=(-.35twd,mb-.45h);
+% z2=(0,mb-1/2penwd);
+% draw z1--z2;
+% endchar;
+
+beginchar(253,0,0,.25ht#); "sub-r"; % revision
+ pickup sub_pen;
+ z1=(-.35twd,mb-.45ht);
+ z2=(0,mb-1/2penwd);
+ draw z1--z2;
+endchar;
+
+beginchar(254,.9twd#+brm#,ht#,0); "pra";
+ italcorr brm#;
+ frame;
+ z5=(penwd,h);
+ z6=(w-brm,.53h);
+ x7=x5+.15(w-brm);
+ y7=y6-.08h;
+ draw z5..tension1.4..z7{z6-z5}..tension1.2..z6;
+ pickup sub_pen;
+ z11=(w-brm,.45h);
+ z12=(.1twd,1/2penwd);
+ draw z11--z12;
+endchar;
+
+% beginchar(255,twd#,ht#,0); "hyphen"; % original
+% pickup frame_pen;
+% y1 = good.y 0.5h;
+% z1=(.3w, y1);
+% z2=(w,y1);
+% draw z1--z2;
+% endchar;
+
+beginchar(255,twd#,.5ht#,0); "hyphen"; % revision
+ pickup frame_pen;
+ z1=(.3w,0.5ht);
+ z2=(w,y1);
+ draw z1--z2;
+endchar;
+
+ligtable "." : "." =: ";";
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dndefs.mf b/Master/texmf-dist/fonts/source/public/devanagr/dndefs.mf
new file mode 100644
index 00000000000..957460292ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dndefs.mf
@@ -0,0 +1,313 @@
+%
+% dndefs.mf v2.1
+%
+% Definitions file with Metafont parameters for the Devanagari fonts
+% Copyright (C) 1991-2003 University of Groningen, The Netherlands
+%
+% Author : Frans J. Velthuis <velthuis@rc.rug.nl>
+% Maintainer : Anshuman Pandey <apandey@u.washington.edu>
+% Kevin Carmody <i@kevincarmody.com>
+% Date : 8 April 2004
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation.
+%
+% This program is distributed in the hope that it will be useful,
+% but without any warranty; without even the implied warranty of
+% merchantability or fitness for a particular purpose. See the
+% GNU General Public License for more details.
+%
+
+ if unknown dninit:
+ input dninit;
+ fi;
+ boolean custom; custom := false;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following parameters determine the font size.
+
+ if unknown designsize: % designsize is set by font_size command
+ font_size := 10pt#;
+ fi;
+ fontpoints# := designsize/pt#;
+ fontfactor# := fontpoints#/10;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following parameters determine whether alternative characters
+% will be used.
+
+ if known alta:
+ custom := true;
+ else:
+ alta := false;
+ fi;
+ if known altri:
+ custom := true;
+ else:
+ altri := false;
+ fi;
+ if known altli:
+ custom := true;
+ else:
+ altli := false;
+ fi;
+ if known altcha:
+ custom := true;
+ else:
+ altcha := false;
+ fi;
+ if known altna:
+ custom := true;
+ else:
+ altna := false;
+ fi;
+ if known altjha:
+ custom := true;
+ else:
+ altjha := false;
+ fi;
+ if known altla:
+ custom := true;
+ else:
+ altla := false;
+ fi;
+ if known altsha:
+ custom := true;
+ else:
+ altsha := false;
+ fi;
+ if known altksa:
+ custom := true;
+ else:
+ altksa := false;
+ fi;
+ if known altjna:
+ custom := true;
+ else:
+ altjna := false;
+ fi;
+ if known altone:
+ custom := true;
+ else:
+ altone := false;
+ fi;
+ if known altfive:
+ custom := true;
+ else:
+ altfive := false;
+ fi;
+ if known alteight:
+ custom := true;
+ else:
+ alteight := false;
+ fi;
+ if known altnine:
+ custom := true;
+ else:
+ altnine := false;
+ fi;
+ if known nepalijha:
+ custom := true;
+ else:
+ nepalijha := false;
+ fi;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following parameters determine whether alternative fonts will
+% be created
+
+ if unknown bombayfont:
+ bombayfont := false;
+ fi;
+ if unknown calcuttafont:
+ calcuttafont := false;
+ fi;
+ if unknown nepalifont:
+ nepalifont := false;
+ fi;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following parameters determine the glyph sets for the alternate
+% Bombay, Calcutta, and Nepali fonts.
+
+ if bombayfont:
+ altla := true; altsha := true; altjna:= true; altfive := true;
+ alteight := true;
+ fi;
+ if calcuttafont:
+ alta := true; altri := true; altli := true; altcha := true;
+ altna := true; altjha := true; altksa := true;
+ fi;
+ if nepalifont:
+ altcha := true; nepalijha := true; altksa := true;
+ altone := true; altnine := true;
+ fi;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following parameters set up line thickness parameters for
+% default bold and italic fonts.
+
+ if unknown boldfont:
+ boldfont := false;
+ fi;
+ if unknown italicfont:
+ italicfont := false;
+ fi;
+ if known thickfactor or known subthickfactor or known thinfactor:
+ custom := true;
+ fi;
+ if boldfont and italicfont:
+ if unknown thickfactor: thickfactor := 1.18; fi;
+ if unknown subthickfactor: subthickfactor := 1.13; fi;
+ if unknown thinfactor: thinfactor := 2.50; fi;
+ elseif boldfont:
+ if unknown thickfactor: thickfactor := 1.27; fi;
+ if unknown subthickfactor: subthickfactor := 1.25; fi;
+ if unknown thinfactor: thinfactor := 2.50; fi;
+ elseif italicfont:
+ if unknown thickfactor: thickfactor := 0.86; fi;
+ if unknown subthickfactor: subthickfactor := 0.88; fi;
+ fi;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following parameters determine the line thickness.
+% The line thickness varies between thin# and thick#, depending on the
+% angle between the pen and the direction of writing.
+% For strokes in subscripts it varies between subthick# and thin#.
+
+ if unknown thickfactor:
+ thickfactor := 1;
+ fi;
+ if unknown thinfactor:
+ thinfactor := 1;
+ fi;
+ if unknown subthickfactor:
+ subthickfactor := 1;
+ fi;
+ thick# := thickfactor * fontfactor# * 1.1pt#;
+ thin# := thinfactor * 0.2pt#;
+ subthick# := subthickfactor * fontfactor# * .8pt#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following parameter determines the slant (italic/oblique), if any.
+
+ if known slantratio:
+ custom := true;
+ elseif italicfont:
+ slantratio := 1/4;
+ fi;
+ if known slantratio:
+ currenttransform := identity slanted slantratio;
+ fi;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The following parameter determines the internal font name.
+
+ if length(font_identifier_) = 0:
+ string font_root, font_suffix, font_points;
+ font_root := (if custom: "DVNX"
+ elseif bombayfont: "DVNB"
+ elseif calcuttafont: "DVNC"
+ elseif nepalifont: "DVNN"
+ else: "DVNG" fi);
+ font_suffix := (if boldfont and italicfont: "BI"
+ elseif boldfont: "B" elseif italicfont: "I" else: "" fi);
+ font_points := decimal(round(fontpoints));
+ font_identifier := font_root & font_suffix & font_points;
+ fi;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ ht# := fontfactor#*2mm#;
+ rm# := fontfactor#*0.6mm#;
+ brm# := fontfactor#*0.9mm#;
+ twd# := fontfactor#*1.4mm#;
+ uwidth# := twd#;
+ define_pixels(rm,twd,uwidth,brm);
+ define_whole_pixels(ht);
+ rot = 135;
+ font_quad 1.5twd#+rm#;
+ font_x_height .7rm#;
+ font_normal_space:=1.2twd#;
+ font_normal_stretch:=.6twd#;
+ font_normal_shrink:=.4twd#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ penwd# :=thick# * cosd(rot-90);
+ usthick# := thick#;
+ mb# := .2ht#;
+ define_pixels(penwd,usthick,mb);
+ define_blacker_pixels(thin,thick,subthick);
+ thin := max(thin,1); subthick := max(subthick,1);
+ smoothing := 0;
+ pickup pencircle xscaled thick yscaled thin rotated rot;
+ scpenwd := pen_rt - pen_lft;
+ frame_pen := savepen;
+ pickup pencircle xscaled subthick yscaled thin rotated rot;
+ sub_pen := savepen;
+ picture v[];
+ numeric vbar[];
+ extra_endchar := extra_endchar & "chardp := chardp + mb#;" ;
+
+ def tframe =
+ pickup frame_pen;
+ z1=(w-brm-.7rm,h); z2=(w,h);
+ x3=good.x w-brm; y3=h; z4=(x3,0);
+ draw z1--z2;
+ draw z3--z4;
+ enddef;
+
+ def aframe =
+ pickup frame_pen;
+ z1=(w-rm-brm,h); z2=(w,h);
+ x3=good.x w-brm; y3=h; z4=(x3,0);
+ draw z1--z2;
+ draw z3--z4;
+ enddef;
+
+ def endsav =
+ vbar[charcode]=x3;
+ cullit;
+ v[charcode]=currentpicture;
+ endchar;
+ enddef;
+
+ def cutoff(expr t) =
+ x23 = vbar[t];
+ fill (-penwd,-d-mb-penwd)--(x23-.6scpenwd,-d-mb-penwd)--(x23-.6scpenwd,
+ h+penwd)--(-penwd,h+penwd)--cycle withweight 2;
+ cull currentpicture keeping(2,2);
+ addto currentpicture also v[t];
+ cull currentpicture keeping (2,2);
+ w := floor(x23-.6scpenwd);
+ enddef;
+
+ def addpic(expr t) =
+ addto currentpicture also v[t];
+ enddef;
+
+ def frame =
+ pickup frame_pen;
+ z1 = (0,ht); z2 = (w,ht);
+ x3 = good.x w-brm; y3 = ht; z4 = (x3,0);
+ draw z1--z2; draw z3--z4;
+ enddef;
+
+ def sqdot(expr p)=
+ x25:=floor(xpart p)+.5;
+ y25:=floor(ypart p)+.5;
+ dwd:=ceiling(thick);
+ if not odd dwd: dwd:= dwd+1; fi
+ fill unitsquare shifted -(.5,.5) rotated 45 scaled (.5sqrt2 * dwd)
+ shifted z25;
+ enddef;
+
+ def low_n(expr nw,nh)=
+ y38 := good.y nh; x38 := x3;
+ y39 := y38 - .6penwd; x39 := nw;
+ filldraw fullcircle scaled 1.2penwd shifted(x39,y39);
+ z40 = (x39,y38);
+ draw z38--z40;
+ enddef;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dngen.mf b/Master/texmf-dist/fonts/source/public/devanagr/dngen.mf
new file mode 100644
index 00000000000..4108d0013b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dngen.mf
@@ -0,0 +1,90 @@
+%
+% dngen.mf Devanagari of arbitrary point size, thickness, slant,
+% and alternate characters
+%
+% Author : Kevin Carmody <i@kevincarmody.com>
+% Maintainer : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 8 April 2004
+%
+% This file is intended for use with arbitrary parameters passed
+% to it. You must always pass the following statement:
+% input dninit;
+% After this statement, you may pass any of the following
+% parameters:
+%
+% Parameter Type Default Affects Example
+%
+% font_size Numeric 10pt# Point size font_size := 24pt#;
+% altfont Boolean false Use of all alternate chars altfont := true;
+% bombayfont Boolean false Use of Bombay style chars bombayfont := true;
+% calcuttafont Boolean false Use of Calcutta style chars calcuttafont := true;
+% nepalifont Boolean false Use of Nepali style chars nepalifont := true;
+% boldfont Boolean false Use of bold attributes boldfont := true;
+% italicfont Boolean false Use of italic attributes italicfont := true;
+%
+% The above parameters set values of the ones below. You may
+% independently set the parameters below to further customize the
+% font.
+%
+% alta Boolean false Use of alternate a alta := true;
+% altri Boolean false Use of alternate .r and .R altri := true;
+% altli Boolean false Use of alternate .l and .L altli := true;
+% altcha Boolean false Use of alternate cha altcha := true;
+% altna Boolean false Use of alternate .na altna := true;
+% altjha Boolean false Use of alternate jha altjha := true;
+% altla Boolean false Use of alternate la altla := true;
+% altsha Boolean false Use of alternate "sa altsha := true;
+% altksa Boolean false Use of alternate k.sa altksa := true;
+% altjna Boolean false Use of alternate j~na altjna := true;
+% altone Boolean false Use of alternate 1 altone := true;
+% altfive Boolean false Use of alternate 5 altfive := true;
+% alteight Boolean false Use of alternate 8 alteight := true;
+% altnine Boolean false Use of alternate 9 altnine := true;
+% nepalijha Boolean false Use of Nepali jha nepalijha := true;
+%
+% thickfactor Numeric 1 Thickest stroke thickfactor := 1.2;
+% thinfactor Numeric 1 Thinnest stroke thinfactor := 2.0;
+% subthickfactor Numeric 1 Subscript thickness subthickfactor := 1.2;
+% slantratio Numeric 0 Slantedness slantratio := 1/4;
+% font_identifier String (calculated) Internal font name font_identifier := "DVSP16";
+%
+% The font_size parameter is the size of the font. You must use a
+% unit followed by a #. Units include:
+% pt# point 72.27pt# = 1in#
+% pc# pica 1pc# = 12pt#
+% in# inch 1in# = 2.54cm#
+% mm# millimeter 10mm# = 1cm#
+% cm# centimeter 1cm# = 1/2.54in#
+% dd# didot point 1157dd# = 1238pt#
+% cc# cicero 1cc# = 12dd#
+% Font size is also a factor in determining stroke size. See
+% below.
+%
+% Stroke thickness varies between thick and thin settings. The
+% thick setting is the product of the default thickness, font size,
+% and the thickfactor parameter. The thin setting is the product
+% of the default thinness and the thinfactor parameter. The
+% subscript thickness is used instead of thickness in subscripts.
+% It is a product of the default subscript thickness, font size,
+% and the subthickfactor parameter.
+%
+% The slantratio parameter is the ratio of the horizontal
+% adjustment to the vertical height. In trigonometrical terms,
+% this ratio is the tangent of the slant angle, which starts at the
+% vertical and runs clockwise.
+%
+% The font identifier is used internally and is not a file name.
+% The default font identifier is composed of three components:
+% root, suffix, and size. The root is DVNG, if bombayfont is
+% true, the root is DVNB, if calcuttafont is true it is DVNC.
+% if you specify any of the lower group of parameters, the root
+% is DVNX. The suffix
+% is B for bold font, I for italic font, BI for bold italic, and
+% empty otherwise. The size is the font size rounded to the
+% nearest integer.
+%
+% See dndefs.mf for more information.
+%
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dninit.mf b/Master/texmf-dist/fonts/source/public/devanagr/dninit.mf
new file mode 100644
index 00000000000..5d523aad7ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dninit.mf
@@ -0,0 +1,28 @@
+%
+% dninit.mf v2.1
+%
+% Initialization file with Metafont parameters for the Devanagari fonts
+% Copyright (C) 1991-2003 University of Groningen, The Netherlands
+%
+% Author : Kevin Carmody <i@kevincarmody.com>
+% Maintainer : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 8 April 2004
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation.
+%
+% This program is distributed in the hope that it will be useful,
+% but without any warranty; without even the implied warranty of
+% merchantability or fitness for a particular purpose. See the
+% GNU General Public License for more details.
+%
+
+mode_setup;
+
+ boolean dninit; dninit := true;
+ boolean bombayfont, calcuttafont, nepalifont;
+ boolean alta, altri, altli, altcha, altna, altjha, altla;
+ boolean altsha, altksa, altjna, nepalijha;
+ boolean altone, altfive, alteight, altnine;
+ boolean boldfont, italicfont;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnb10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnb10.mf
new file mode 100644
index 00000000000..e60f3b12aa9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnb10.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnb10.mf Bombay Devanagari at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+bombayfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnb8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnb8.mf
new file mode 100644
index 00000000000..9eb0e8c3bb9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnb8.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnb8.mf Bombay Devanagari at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+bombayfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnb9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnb9.mf
new file mode 100644
index 00000000000..4277ffd3475
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnb9.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnb9.mf Bombay Devanagari at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+bombayfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnbb10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnbb10.mf
new file mode 100644
index 00000000000..6e71a68b455
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnbb10.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnbb10.mf Bombay Devanagari Bold at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+bombayfont := true;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnbb8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnbb8.mf
new file mode 100644
index 00000000000..00ee2eaa9bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnbb8.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnbb8.mf Bombay Devanagari Bold at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+bombayfont := true;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnbb9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnbb9.mf
new file mode 100644
index 00000000000..b3ad2f04f6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnbb9.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnbb9.mf Bombay Devanagari Bold at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+bombayfont := true;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnbbi10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnbbi10.mf
new file mode 100644
index 00000000000..9c08c4ce66a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnbbi10.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnbbi10.mf Bombay Devanagari Bold Oblique at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+bombayfont := true;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnbbi8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnbbi8.mf
new file mode 100644
index 00000000000..f688ea6958d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnbbi8.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnbbi8.mf Bombay Devanagari Bold Oblique at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+bombayfont := true;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnbbi9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnbbi9.mf
new file mode 100644
index 00000000000..6dcb3d7d64b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnbbi9.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnbbi9.mf Bombay Devanagari Bold Oblique at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+bombayfont := true;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnbi10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnbi10.mf
new file mode 100644
index 00000000000..0bfdc80ade9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnbi10.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnbi10.mf Bombay Devanagari Oblique at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+bombayfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnbi8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnbi8.mf
new file mode 100644
index 00000000000..040af098e87
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnbi8.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnbi8.mf Bombay Devanagari Oblique at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+bombayfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnbi9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnbi9.mf
new file mode 100644
index 00000000000..d8b67a51710
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnbi9.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnbi9.mf Bombay Devanagari Oblique at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+bombayfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnc10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnc10.mf
new file mode 100644
index 00000000000..b2d605c0f49
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnc10.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnc10.mf Calcutta Devanagari at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+calcuttafont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnc8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnc8.mf
new file mode 100644
index 00000000000..5088175c19d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnc8.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvna8.mf Calcutta Devanagari at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+calcuttafont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnc9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnc9.mf
new file mode 100644
index 00000000000..e2c84fcff66
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnc9.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnc9.mf Calcutta Devanagari at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+calcuttafont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvncb10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvncb10.mf
new file mode 100644
index 00000000000..72e18789be2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvncb10.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvncb10.mf Calcutta Devanagari Bold at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+calcuttafont := true;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvncb8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvncb8.mf
new file mode 100644
index 00000000000..069adcd4eb6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvncb8.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvncb8.mf Calcutta Devanagari Bold at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+calcuttafont := true;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvncb9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvncb9.mf
new file mode 100644
index 00000000000..2e1c57437a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvncb9.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvncb9.mf Calcutta Devanagari Bold at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+calcuttafont := true;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvncbi10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvncbi10.mf
new file mode 100644
index 00000000000..1c3eb2cdf15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvncbi10.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvncbi10.mf Calcutta Devanagari Bold Oblique at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+calcuttafont := true;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvncbi8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvncbi8.mf
new file mode 100644
index 00000000000..1146fe47201
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvncbi8.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvncbi8.mf Calcutta Devanagari Bold Oblique at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+calcuttafont := true;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvncbi9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvncbi9.mf
new file mode 100644
index 00000000000..1e7d7524af1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvncbi9.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvncbi9.mf Calcutta Devanagari Bold Oblique at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+calcuttafont := true;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnci10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnci10.mf
new file mode 100644
index 00000000000..708a3c04662
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnci10.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnci10.mf Calcutta Devanagari Oblique at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+calcuttafont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnci8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnci8.mf
new file mode 100644
index 00000000000..4a1d7aac181
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnci8.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnci8.mf Calcutta Devanagari Oblique at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+calcuttafont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnci9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnci9.mf
new file mode 100644
index 00000000000..f9970f6392a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnci9.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnci9.mf Calcutta Devanagari Oblique at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+calcuttafont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvng10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvng10.mf
new file mode 100644
index 00000000000..b598b7f76e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvng10.mf
@@ -0,0 +1,12 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvng10.mf Devanagari at 10pt
+%
+% Author: Frans J. Velthuis <velthuis@rc.rug.nl>
+%
+
+input dninit;
+
+font_size := 10pt#;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvng8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvng8.mf
new file mode 100644
index 00000000000..e134271a23a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvng8.mf
@@ -0,0 +1,12 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvng8.mf Devanagari at 8pt
+%
+% Author: Frans J. Velthuis <velthuis@rc.rug.nl>
+%
+
+input dninit;
+
+font_size := 8pt#;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvng9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvng9.mf
new file mode 100644
index 00000000000..23807d63334
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvng9.mf
@@ -0,0 +1,12 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvng9.mf Devanagari at 9pt
+%
+% Author: Frans J. Velthuis <velthuis@rc.rug.nl>
+%
+
+input dninit;
+
+font_size := 9pt#;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvngb10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvngb10.mf
new file mode 100644
index 00000000000..2b0ba9ed20b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvngb10.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvngb10.mf Devanagari Bold at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Maintainer : Kevin Carmody <i@kevincarmody.com>
+% Date : 1 July 2003
+%
+
+input dninit;
+
+font_size := 10pt#;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvngb8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvngb8.mf
new file mode 100644
index 00000000000..7f1713fb640
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvngb8.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvngb8.mf Devanagari Bold at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvngb9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvngb9.mf
new file mode 100644
index 00000000000..dec6f6f3f26
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvngb9.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvngb9.mf Devanagari Bold at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvngbi10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvngbi10.mf
new file mode 100644
index 00000000000..e3a24d4a7c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvngbi10.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvngbi10.mf Devanagari Bold Oblique at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Maintainer : Kevin Carmody <i@kevincarmody.com>
+% Date : 1 July 2003
+%
+
+input dninit;
+
+font_size := 10pt#;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvngbi8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvngbi8.mf
new file mode 100644
index 00000000000..69c2d7db98b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvngbi8.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvngbi8.mf Devanagari Bold Oblique at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvngbi9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvngbi9.mf
new file mode 100644
index 00000000000..9626487a93a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvngbi9.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvngbi9.mf Devanagari Bold Oblique at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvngi10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvngi10.mf
new file mode 100644
index 00000000000..cbbdef9b7c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvngi10.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvngi10.mf Devanagari Oblique at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Maintainer : Kevin Carmody <i@kevincarmody.com>
+% Date : 1 July 2003
+%
+
+input dninit;
+
+font_size := 10pt#;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvngi8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvngi8.mf
new file mode 100644
index 00000000000..360b35f4eca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvngi8.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvngi8.mf Devanagari Oblique at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvngi9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvngi9.mf
new file mode 100644
index 00000000000..29d30435794
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvngi9.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvngi9.mf Devanagari Oblique at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnn10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnn10.mf
new file mode 100644
index 00000000000..aafe56110fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnn10.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnn10.mf Nepali Devanagari at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 14 March 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+nepalifont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnn8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnn8.mf
new file mode 100644
index 00000000000..415939f0cac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnn8.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnn8.mf Nepali Devanagari at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 14 March 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+nepalifont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnn9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnn9.mf
new file mode 100644
index 00000000000..c471c6a4f61
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnn9.mf
@@ -0,0 +1,14 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnn9.mf Nepali Devanagari at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 14 March 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+nepalifont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnnb10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnnb10.mf
new file mode 100644
index 00000000000..ec01ba0d23f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnnb10.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnnb10.mf Nepali Devanagari Bold at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 21 April 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+nepalifont := true;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnnb8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnnb8.mf
new file mode 100644
index 00000000000..b6fb9cb3782
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnnb8.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnnb8.mf Nepali Devanagari Bold at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+nepalifont := true;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnnb9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnnb9.mf
new file mode 100644
index 00000000000..ecacedd590b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnnb9.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnnb9.mf Nepali Devanagari Bold at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+nepalifont := true;
+boldfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnnbi10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnnbi10.mf
new file mode 100644
index 00000000000..bf83749f51b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnnbi10.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnnbi10.mf Nepali Devanagari Bold Oblique at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 21 April 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+nepalifont := true;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnnbi8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnnbi8.mf
new file mode 100644
index 00000000000..a7278532439
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnnbi8.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnnbi8.mf Nepali Devanagari Bold Oblique at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+nepalifont := true;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnnbi9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnnbi9.mf
new file mode 100644
index 00000000000..cfb5b25e6f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnnbi9.mf
@@ -0,0 +1,16 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnnbi9.mf Nepali Devanagari Bold Oblique at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+nepalifont := true;
+boldfont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnni10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnni10.mf
new file mode 100644
index 00000000000..bd8afbf44e5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnni10.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnni10.mf Nepali Devanagari Oblique at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 21 April 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+nepalifont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnni8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnni8.mf
new file mode 100644
index 00000000000..093dbfc9f57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnni8.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnni8.mf Nepali Devanagari Oblique at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+nepalifont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvnni9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvnni9.mf
new file mode 100644
index 00000000000..59c7b8e3b8a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvnni9.mf
@@ -0,0 +1,15 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvnni9.mf Nepali Devanagari Oblique at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 3 August 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+nepalifont := true;
+italicfont := true;
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpb10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpb10.mf
new file mode 100644
index 00000000000..531bc0b7d30
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpb10.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpb10.mf Bombay Pen Devanagari at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+bombayfont := true;
+thickfactor := 0.86;
+subthickfactor := 0.88;
+thinfactor := 0.75;
+slantratio := 1/5;
+font_identifier := "DVPB10";
+
+input dndefs;
+input dnchars; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpb8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpb8.mf
new file mode 100644
index 00000000000..cf90312a983
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpb8.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpb8.mf Bombay Pen Devanagari at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+bombayfont := true;
+thickfactor := 0.97;
+subthickfactor := 0.68;
+thinfactor := 0.75;
+slantratio := 1/7;
+font_identifier := "DVPB8";
+
+input dndefs;
+input dnchars; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpb9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpb9.mf
new file mode 100644
index 00000000000..3d32372b45d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpb9.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpb9.mf Bombay Pen Devanagari at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+bombayfont := true;
+thickfactor := 0.91;
+subthickfactor := 0.61;
+thinfactor := 0.75;
+slantratio := 1/7;
+font_identifier := "DVPB9";
+
+input dndefs;
+input dnchars; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpc10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpc10.mf
new file mode 100644
index 00000000000..6e7ae9ff2dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpc10.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpc10.mf Calcutta Pen Devanagari at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 10pt#;
+calcuttafont := true;
+thickfactor := 0.86;
+subthickfactor := 0.88;
+thinfactor := 0.75;
+slantratio := 1/5;
+font_identifier := "DVPC10";
+
+input dndefs;
+input dnchars; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpc8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpc8.mf
new file mode 100644
index 00000000000..5fbc43c396d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpc8.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpc8.mf Calcutta Pen Devanagari at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 8pt#;
+calcuttafont := true;
+thickfactor := 0.97;
+subthickfactor := 0.68;
+thinfactor := 0.75;
+slantratio := 1/7;
+font_identifier := "DVPC8";
+
+input dndefs;
+input dnchars; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpc9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpc9.mf
new file mode 100644
index 00000000000..fa436f73ce9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpc9.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpc9.mf Calcutta Pen Devanagari at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 29 February 2004
+%
+
+input dninit;
+
+font_size := 9pt#;
+calcuttafont := true;
+thickfactor := 0.91;
+subthickfactor := 0.61;
+thinfactor := 0.75;
+slantratio := 1/7;
+font_identifier := "DVPC9";
+
+input dndefs;
+input dnchars; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpn10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpn10.mf
new file mode 100644
index 00000000000..01c7a6c0d55
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpn10.mf
@@ -0,0 +1,37 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpn10.mf Devanagari Pen at 10pt
+%
+% Author : Tom Ridgeway <haccme@milton.u.washington.edu>
+% Maintainer : Anshuman Pandey <apandey@u.washington.edu>
+% : Kevin Carmody <i@kevincarmody.com>
+% Date : 1 July 2003
+%
+%
+%
+% From: haccme@milton.u.washington.edu (Thomas Ridgeway)
+% Newsgroups: comp.text.tex
+% Subject: Devanagari font variation
+% Keywords: TeX METAFONT devanagri Velthuis font
+% Message-ID: <1991Sep4.180033.15837@milton.u.washington.edu>
+% Date: 4 Sep 91 18:00:33 GMT
+% Organization: University of Washington, Seattle
+%
+% This is file dvpn10.mf
+% a trivial variation of dvng10.mf to resemble devanagari
+% written with an ordinary writing pen --- we get usable results ---
+% illustrating that Frans Velthuis' font is truly a well-designed
+% meta-font which can serve as a basis for numerous fonts of
+% difference appearance Tom Ridgeway
+%
+
+input dninit;
+
+font_size := 10pt#;
+thickfactor := 0.86;
+subthickfactor := 0.88;
+thinfactor := 0.75;
+slantratio := 1/5;
+font_identifier := "DVPN10";
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpn8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpn8.mf
new file mode 100644
index 00000000000..f9b69651167
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpn8.mf
@@ -0,0 +1,37 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpn8.mf Devanagari Pen at 8pt
+%
+% Author : Tom Ridgeway <haccme@milton.u.washington.edu>
+% Maintainer : Anshuman Pandey <apandey@u.washington.edu>
+% : Kevin Carmody <i@kevincarmody.com>
+% Date : 1 July 2003
+%
+%
+%
+% From: haccme@milton.u.washington.edu (Thomas Ridgeway)
+% Newsgroups: comp.text.tex
+% Subject: Devanagari font variation
+% Keywords: TeX METAFONT devanagri Velthuis font
+% Message-ID: <1991Sep4.180033.15837@milton.u.washington.edu>
+% Date: 4 Sep 91 18:00:33 GMT
+% Organization: University of Washington, Seattle
+%
+% This is file dvpn8.mf
+% a trivial variation of dvng8.mf to resemble devanagari
+% written with an ordinary writing pen --- we get usable results ---
+% illustrating that Frans Velthuis' font is truly a well-designed
+% meta-font which can serve as a basis for numerous fonts of
+% difference appearance Tom Ridgeway
+%
+
+input dninit;
+
+font_size := 8pt#;
+thickfactor := 0.97;
+subthickfactor := 0.68;
+thinfactor := 0.75;
+slantratio := 1/7;
+font_identifier := "DVPN8";
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpn9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpn9.mf
new file mode 100644
index 00000000000..66a80300359
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpn9.mf
@@ -0,0 +1,37 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpn9.mf Devanagari Pen at 9pt
+%
+% Author : Tom Ridgeway <haccme@milton.u.washington.edu>
+% Maintainer : Anshuman Pandey <apandey@u.washington.edu>
+% : Kevin Carmody <i@kevincarmody.com>
+% Date : 1 July 2003
+%
+%
+%
+% From: haccme@milton.u.washington.edu (Thomas Ridgeway)
+% Newsgroups: comp.text.tex
+% Subject: Devanagari font variation
+% Keywords: TeX METAFONT devanagri Velthuis font
+% Message-ID: <1991Sep4.180033.15837@milton.u.washington.edu>
+% Date: 4 Sep 91 18:00:33 GMT
+% Organization: University of Washington, Seattle
+%
+% This is file dvpn9.mf
+% a trivial variation of dvng9.mf to resemble devanagari
+% written with an ordinary writing pen --- we get usable results ---
+% illustrating that Frans Velthuis' font is truly a well-designed
+% meta-font which can serve as a basis for numerous fonts of
+% difference appearance Tom Ridgeway
+%
+
+input dninit;
+
+font_size := 9pt#;
+thickfactor := 0.91;
+subthickfactor := 0.61;
+thinfactor := 0.75;
+slantratio := 1/7;
+font_identifier := "DVPN9";
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpnn10.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpnn10.mf
new file mode 100644
index 00000000000..32fe33b94c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpnn10.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpnn10.mf Nepali Pen Devanagari at 10pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 26 March 2005
+%
+
+input dninit;
+
+font_size := 10pt#;
+nepalifont := true;
+thickfactor := 0.86;
+subthickfactor := 0.88;
+thinfactor := 0.75;
+slantratio := 1/5;
+font_identifier := "DVPNN10";
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpnn8.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpnn8.mf
new file mode 100644
index 00000000000..cb3ca2355de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpnn8.mf
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpnn8.mf Nepali Pen Devanagari at 8pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 26 March 2005
+%
+
+input dninit;
+
+font_size := 8pt#;
+nepalifont := true;
+thickfactor := 0.97;
+subthickfactor := 0.68;
+thinfactor := 0.75;
+slantratio := 1/7;
+font_identifier := "DVPNN8";
+
+input dndefs;
+input dnchars;
+
diff --git a/Master/texmf-dist/fonts/source/public/devanagr/dvpnn9.mf b/Master/texmf-dist/fonts/source/public/devanagr/dvpnn9.mf
new file mode 100644
index 00000000000..82a83a08bd6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/devanagr/dvpnn9.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% dvpnn9.mf Nepali Pen Devanagari at 9pt
+%
+% Author : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 26 March 2005
+%
+
+input dninit;
+
+font_size := 9pt#;
+nepalifont := true;
+thickfactor := 0.91;
+subthickfactor := 0.61;
+thinfactor := 0.75;
+slantratio := 1/7;
+font_identifier := "DVPNN9";
+
+input dndefs;
+input dnchars;
diff --git a/Master/texmf-dist/fonts/source/public/dice/dice3d.mf b/Master/texmf-dist/fonts/source/public/dice/dice3d.mf
new file mode 100644
index 00000000000..2e57a6c8648
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/dice/dice3d.mf
@@ -0,0 +1,886 @@
+% DICE3D.MF
+%
+% by Thomas A. Heim (1998)
+%
+% 3D-look for dice; works reasonably well only in display size 20pt and up
+%
+% 2D-pictures are characters 1,2,3,4,5,6;
+% 3D-pictures are characters "a" through "x",
+% but they're accessible using ligatures #a, #b, #c, #d,
+% where # is the value on the top face, and
+% the letter indicates one of the four possible
+% values on the front face: "a" -> smallest, "d" -> largest
+%
+% alternatively, there are ligature tables so that
+% the letters run from "a" to "f", indicating 1 to 6 dots
+% on the front face
+%
+% (you can change the lig table at the end of the file)
+%
+% LICENSE: LPPL
+%
+
+% change this to get a different size
+size_in_points = 30;
+
+mode_setup;
+
+% autorounding := 0; % no need to shut off autorounding
+% smoothing := 0; % or smoothing
+
+% define the unit size
+un#=(size_in_points/10) * pt#;
+define_whole_pixels(un);
+
+font_normal_space 3un#;
+
+% amount of space to the left and right of dice box;
+% if you change this, also change the 2nd parameter to
+% beginchar for each character
+sb = .5 un;
+
+% size of dots on front face
+DotSize = .8un;
+
+% width and height of front face
+face_width = 8un;
+face_height = 8un;
+
+% amount of rounding at corners
+dice_c = 1.3DotSize;
+
+% transformations front -> side, front -> top, scale with 1/sqrt(8):
+sqrt_eight = 0.35355339;
+
+% scaled dot diagonal
+dot_xy = sqrt_eight*DotSize;
+
+% define the affine transformations front->side, front->top
+transform t[];
+
+hide( (0,0) transformed t1 = (0,0) );
+hide( (1,0) transformed t1 = (sqrt_eight,sqrt_eight) );
+hide( (0,1) transformed t1 = (0,1) );
+hide( (0,0) transformed t2 = (0,0) );
+hide( (1,0) transformed t2 = (1,0) );
+hide( (0,1) transformed t2 = (sqrt_eight,sqrt_eight) );
+
+% t3 transforms front to right side
+t3 = t1 shifted (face_width,0);
+
+% t4 transforms front to top
+t4 = t2 shifted (0,face_height);
+
+% the following macro draws a die face, with rounded corners
+def dice_face =
+ begingroup;
+ save w, h;
+ numeric w[], h[];
+
+ lft w1 = sb = w2 - dice_c = w3 - face_width + dice_c = rt w4 - face_width;
+ bot h1 = 0 = h2 - dice_c = h3 - face_height + dice_c = top h4 - face_height;
+
+ draw (w1,h2)---(w1, h3)..(w2, h4)---(w3,h4)..(w4,h3)---
+ (w4,h2)..(w3,h1)---(w2,h1)..cycle;
+
+ endgroup;
+
+enddef;
+
+% the following macro draws a box, with rounded corners
+def dice_box =
+ begingroup;
+ save w, h;
+ numeric w[], h[];
+
+ lft w1 = sb = w2 - dice_c = w3 - face_width + dice_c = rt w4 - face_width;
+ bot h1 = 0 = h2 - dice_c = h3 - face_height + dice_c = top h4 - face_height;
+
+% the front face:
+ draw (w1,h2)---(w1, h3)..(w2, h4)---(w3,h4)..(w4,h3)---
+ (w4,h2)..(w3,h1)---(w2,h1)..cycle;
+
+% the right side face:
+ draw ((w1,h2) transformed t3)---((w1,h3) transformed t3)..
+ ((w2,h4) transformed t3)---((w3,h4) transformed t3)..
+ ((w4,h3) transformed t3)---((w4,h2) transformed t3)..
+ ((w3,h1) transformed t3)---((w2,h1) transformed t3)..cycle;
+
+% the top face:
+ draw ((w1,h2) transformed t4)---((w1,h3) transformed t4)..
+ ((w2,h4) transformed t4)---((w3,h4) transformed t4)..
+ ((w4,h3) transformed t4)---((w4,h2) transformed t4)..
+ ((w3,h1) transformed t4)---((w2,h1) transformed t4)..cycle;
+
+% connect upper left front to top:
+ draw (w1,h3)..((w1,h2) transformed t4);
+
+ endgroup;
+enddef;
+
+% the following macros draw dots on the front, side, and top,
+% with the appropriate transformations, at point z$:
+
+def front_dot (suffix $) =
+fill (z$+(0,DotSize)){right}..{left}(z$-(0,DotSize))..cycle;
+enddef;
+
+def side_dot (suffix $) =
+ fill (z$+(dot_xy,dot_xy)){up}.. {dir 225}(z$+(0,DotSize)){dir 225}..
+ {down}(z$-(dot_xy,dot_xy)){down}..{dir 45}(z$-(0,DotSize))..cycle;
+enddef;
+
+def top_dot (suffix $) =
+ fill (z$+(dot_xy,dot_xy)){right}..{dir 225}(z$+(DotSize,0)){dir 225}..
+ {left}(z$-(dot_xy,dot_xy)){left}..{dir 45}(z$-(DotSize,0))..cycle;
+enddef;
+
+def dice_dots =
+% this macros defines the possible dot positions:
+% dots are labeled z1 through z27 as follows
+% _____________
+% / 19 20 21 / |
+% / 22 23 24 / 12|
+% / 25 26 27 / 11 |
+% ------------- 10 15|
+% | 1 2 3 | 14 | i.e., 1-9 on front,
+% | | 13 18| 10-18 on side,
+% | 4 5 6 | 17 / 19-27 on top
+% | | 16 /
+% | 7 8 9 | /
+% -------------/
+%
+% the nine positions for dots on the front face:
+ x1 = sb + face_width/4 = x2 - face_width/4 = x3 - face_width/2 = x4 = x7;
+ x5 = x2 = x8;
+ x6 = x3 = x9;
+ y1 = 3/4face_height = y2 = y3;
+ y4 = face_height/2 = y5 = y6;
+ y7 = face_height/4 = y8 = y9;
+% nine dot positions on the right side face:
+% (1st and 3rd column are shifted towards the center to avoid
+% overlap with frame)
+ z10 = (z1 shifted (sb,0)) transformed t3;
+ z11 = z2 transformed t3;
+ z12 = (z3 shifted (-sb,0)) transformed t3;
+ z13 = (z4 shifted (sb,0)) transformed t3;
+ z14 = z5 transformed t3;
+ z15 = (z6 shifted (-sb,0)) transformed t3;
+ z16 = (z7 shifted (sb,0)) transformed t3;
+ z17 = z8 transformed t3;
+ z18 = (z9 shifted (-sb,0)) transformed t3;
+% nine dot positions on the top face:
+% (1st and 3rd row are shifted towards the center to avoid
+% overlap with frame)
+ z19 = (z1 shifted (0,-sb)) transformed t4;
+ z20 = (z2 shifted (0,-sb)) transformed t4;
+ z21 = (z3 shifted (0,-sb)) transformed t4;
+ z22 = z4 transformed t4;
+ z23 = z5 transformed t4;
+ z24 = z6 transformed t4;
+ z25 = (z7 shifted (0,sb)) transformed t4;
+ z26 = (z8 shifted (0,sb)) transformed t4;
+ z27 = (z9 shifted (0,sb)) transformed t4;
+enddef;
+
+% the 2D faces:
+beginchar("1",9un#,8un#,0); "One";
+
+ pickup pencircle scaled .5 un;
+
+ dice_face; % draw the frame
+ dice_dots; % get the dot positions
+ front_dot(5); % draw a dot
+
+endchar;
+
+beginchar("2",9un#,8un#,0); "Two";
+
+ pickup pencircle scaled .5 un;
+
+ dice_face; % draw the frame
+ dice_dots; % get the dot positions
+ front_dot(1); % draw a dot
+ front_dot(9); % draw a dot
+
+endchar;
+
+beginchar("3",9un#,8un#,0); "Three";
+
+ pickup pencircle scaled .5 un;
+
+ dice_face; % draw the frame
+ dice_dots; % get the dot positions
+ front_dot(1); % draw a dot
+ front_dot(5); % draw a dot
+ front_dot(9); % draw a dot
+
+endchar;
+
+beginchar("4",9un#,8un#,0); "Four";
+
+ pickup pencircle scaled .5 un;
+
+ dice_face; % draw the frame
+ dice_dots; % get the dot positions
+ front_dot(1); % draw a dot
+ front_dot(3); % draw a dot
+ front_dot(7); % draw a dot
+ front_dot(9); % draw a dot
+
+endchar;
+
+beginchar("5",9un#,8un#,0); "Five";
+
+ pickup pencircle scaled .5 un;
+
+ dice_face; % draw the frame
+ dice_dots; % get the dot positions
+ front_dot(1); % draw a dot
+ front_dot(3); % draw a dot
+ front_dot(5); % draw a dot
+ front_dot(7); % draw a dot
+ front_dot(9); % draw a dot
+
+endchar;
+
+beginchar("6",9un#,8un#,0); "Six";
+
+ pickup pencircle scaled .5 un;
+
+ dice_face; % draw the frame
+ dice_dots; % get the dot positions
+ front_dot(1); % draw a dot
+ front_dot(3); % draw a dot
+ front_dot(4); % draw a dot
+ front_dot(6); % draw a dot
+ front_dot(7); % draw a dot
+ front_dot(9); % draw a dot
+
+endchar;
+
+% the 3D dice:
+beginchar("a",12un#,12un#,0); "OneTwoThree";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(23);
+ front_dot(1);
+ front_dot(9);
+ side_dot(10);
+ side_dot(14);
+ side_dot(18);
+endchar;
+
+beginchar("b",12un#,12un#,0); "OneThreeFive";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(23);
+ front_dot(1);
+ front_dot(5);
+ front_dot(9);
+ side_dot(10);
+ side_dot(12);
+ side_dot(14);
+ side_dot(16);
+ side_dot(18);
+
+endchar;
+
+beginchar("c",12un#,12un#,0); "OneFourTwo";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(23);
+ front_dot(1);
+ front_dot(3);
+ front_dot(7);
+ front_dot(9);
+ side_dot(10);
+ side_dot(18);
+
+endchar;
+
+beginchar("d",12un#,12un#,0); "OneFiveFour";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(23);
+ front_dot(1);
+ front_dot(3);
+ front_dot(5);
+ front_dot(7);
+ front_dot(9);
+ side_dot(10);
+ side_dot(12);
+ side_dot(16);
+ side_dot(18);
+
+endchar;
+
+beginchar("e",12un#,12un#,0); "TwoOneFour";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(27);
+ front_dot(5);
+ side_dot(10);
+ side_dot(12);
+ side_dot(16);
+ side_dot(18);
+
+endchar;
+
+beginchar("f",12un#,12un#,0); "TwoThreeOne";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(21);
+ top_dot(25);
+ front_dot(3);
+ front_dot(5);
+ front_dot(7);
+ side_dot(14);
+
+endchar;
+
+beginchar("g",12un#,12un#,0); "TwoFourSix";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(21);
+ top_dot(25);
+ front_dot(1);
+ front_dot(3);
+ front_dot(7);
+ front_dot(9);
+ side_dot(10);
+ side_dot(12);
+ side_dot(13);
+ side_dot(15);
+ side_dot(16);
+ side_dot(18);
+
+endchar;
+
+beginchar("h",12un#,12un#,0); "TwoSixThree";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(27);
+ front_dot(1);
+ front_dot(3);
+ front_dot(4);
+ front_dot(6);
+ front_dot(7);
+ front_dot(9);
+ side_dot(12);
+ side_dot(14);
+ side_dot(16);
+
+endchar;
+
+beginchar("i",12un#,12un#,0); "ThreeOneTwo";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(23);
+ top_dot(27);
+ front_dot(5);
+ side_dot(12);
+ side_dot(16);
+
+endchar;
+
+beginchar("j",12un#,12un#,0); "ThreeTwoSix";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(21);
+ top_dot(23);
+ top_dot(25);
+ front_dot(3);
+ front_dot(7);
+ side_dot(10);
+ side_dot(11);
+ side_dot(12);
+ side_dot(16);
+ side_dot(17);
+ side_dot(18);
+
+endchar;
+
+beginchar("k",12un#,12un#,0); "ThreeFiveOne";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(21);
+ top_dot(23);
+ top_dot(25);
+ front_dot(1);
+ front_dot(3);
+ front_dot(5);
+ front_dot(7);
+ front_dot(9);
+ side_dot(14);
+
+endchar;
+
+beginchar("l",12un#,12un#,0); "ThreeSixFive";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(23);
+ top_dot(27);
+ front_dot(1);
+ front_dot(2);
+ front_dot(3);
+ front_dot(7);
+ front_dot(8);
+ front_dot(9);
+ side_dot(10);
+ side_dot(12);
+ side_dot(14);
+ side_dot(16);
+ side_dot(18);
+
+endchar;
+
+beginchar("m",12un#,12un#,0); "FourOneFive";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(21);
+ top_dot(25);
+ top_dot(27);
+ front_dot(5);
+ side_dot(10);
+ side_dot(12);
+ side_dot(14);
+ side_dot(16);
+ side_dot(18);
+
+endchar;
+
+beginchar("n",12un#,12un#,0); "FourTwoOne";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(21);
+ top_dot(25);
+ top_dot(27);
+ front_dot(3);
+ front_dot(7);
+ side_dot(14);
+
+endchar;
+
+beginchar("o",12un#,12un#,0); "FourFiveSix";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(21);
+ top_dot(25);
+ top_dot(27);
+ front_dot(1);
+ front_dot(3);
+ front_dot(5);
+ front_dot(7);
+ front_dot(9);
+ side_dot(10);
+ side_dot(11);
+ side_dot(12);
+ side_dot(16);
+ side_dot(17);
+ side_dot(18);
+
+endchar;
+
+beginchar("p",12un#,12un#,0); "FourSixTwo";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(21);
+ top_dot(25);
+ top_dot(27);
+ front_dot(1);
+ front_dot(2);
+ front_dot(3);
+ front_dot(7);
+ front_dot(8);
+ front_dot(9);
+ side_dot(12);
+ side_dot(16);
+
+endchar;
+
+beginchar("q",12un#,12un#,0); "FiveOneThree";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(21);
+ top_dot(23);
+ top_dot(25);
+ top_dot(27);
+ front_dot(5);
+ side_dot(12);
+ side_dot(14);
+ side_dot(16);
+
+endchar;
+
+beginchar("r",12un#,12un#,0); "FiveThreeSix";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(21);
+ top_dot(23);
+ top_dot(25);
+ top_dot(27);
+ front_dot(3);
+ front_dot(5);
+ front_dot(7);
+ side_dot(10);
+ side_dot(12);
+ side_dot(13);
+ side_dot(15);
+ side_dot(16);
+ side_dot(18);
+
+endchar;
+
+beginchar("s",12un#,12un#,0); "FiveFourOne";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(21);
+ top_dot(23);
+ top_dot(25);
+ top_dot(27);
+ front_dot(1);
+ front_dot(3);
+ front_dot(7);
+ front_dot(9);
+ side_dot(14);
+
+endchar;
+
+beginchar("t",12un#,12un#,0); "FiveSixFour";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+ top_dot(19);
+ top_dot(21);
+ top_dot(23);
+ top_dot(25);
+ top_dot(27);
+ front_dot(1);
+ front_dot(3);
+ front_dot(4);
+ front_dot(6);
+ front_dot(7);
+ front_dot(9);
+ side_dot(10);
+ side_dot(12);
+ side_dot(16);
+ side_dot(18);
+
+ % dots
+
+endchar;
+
+beginchar("u",12un#,12un#,0); "SixTwoFour";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(21);
+ top_dot(22);
+ top_dot(24);
+ top_dot(25);
+ top_dot(27);
+ front_dot(1);
+ front_dot(9);
+ side_dot(10);
+ side_dot(12);
+ side_dot(16);
+ side_dot(18);
+
+endchar;
+
+beginchar("v",12un#,12un#,0); "SixThreeTwo";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(20);
+ top_dot(21);
+ top_dot(25);
+ top_dot(26);
+ top_dot(27);
+ front_dot(1);
+ front_dot(5);
+ front_dot(9);
+ side_dot(10);
+ side_dot(18);
+
+endchar;
+
+beginchar("w",12un#,12un#,0); "SixFourFive";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(20);
+ top_dot(21);
+ top_dot(25);
+ top_dot(26);
+ top_dot(27);
+ front_dot(1);
+ front_dot(3);
+ front_dot(7);
+ front_dot(9);
+ side_dot(10);
+ side_dot(12);
+ side_dot(14);
+ side_dot(16);
+ side_dot(18);
+
+endchar;
+
+beginchar("x",12un#,12un#,0); "SixFiveThree";
+
+ pickup pencircle scaled .5 un;
+
+ % draw the box
+ dice_box;
+
+ % get the dot positions
+ dice_dots;
+
+ % dots
+ top_dot(19);
+ top_dot(21);
+ top_dot(22);
+ top_dot(24);
+ top_dot(25);
+ top_dot(27);
+ front_dot(1);
+ front_dot(3);
+ front_dot(5);
+ front_dot(7);
+ front_dot(9);
+ side_dot(10);
+ side_dot(14);
+ side_dot(18);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Use only one of the two ligature tables provided!
+% (comment out as appropriate!)
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ligature tables for 3D dice:
+% #a, #b, #c, #d, where # is the value on the top face,
+% and the letter indicates the value on
+% the front face: "a" -> smallest,
+% "d" -> largest
+ligtable "1" : "a" =: "a", "b" =: "b", "c" =: "c", "d" =: "d";
+ligtable "2" : "a" =: "e", "b" =: "f", "c" =: "g", "d" =: "h";
+ligtable "3" : "a" =: "i", "b" =: "j", "c" =: "k", "d" =: "l";
+ligtable "4" : "a" =: "m", "b" =: "n", "c" =: "o", "d" =: "p";
+ligtable "5" : "a" =: "q", "b" =: "r", "c" =: "s", "d" =: "t";
+ligtable "6" : "a" =: "u", "b" =: "v", "c" =: "w", "d" =: "x";
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% alternative ligature tables for 3D dice:
+% #a, #b, #c, #d, #e, #f, where # is the value on the top face,
+% and the letter indicates the value on
+% the front face: "a" -> 1
+% ... "f" -> 6
+% ligtable "1" : "b" =: "a", "c" =: "b", "d" =: "c", "e" =: "d";
+% ligtable "2" : "a" =: "e", "c" =: "f", "d" =: "g", "f" =: "h";
+% ligtable "3" : "a" =: "i", "b" =: "j", "e" =: "k", "f" =: "l";
+% ligtable "4" : "a" =: "m", "b" =: "n", "e" =: "o", "f" =: "p";
+% ligtable "5" : "a" =: "q", "c" =: "r", "d" =: "s", "f" =: "t";
+% ligtable "6" : "b" =: "u", "c" =: "v", "d" =: "w", "e" =: "x";
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/dingbat/ark10.mf b/Master/texmf-dist/fonts/source/public/dingbat/ark10.mf
new file mode 100644
index 00000000000..751a17cd8f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/dingbat/ark10.mf
@@ -0,0 +1,320 @@
+% ark10.mf file
+% Copyright (c) 1988 by Arthur M. Keller
+% The ARK font was initially done in MF79
+% by Scott Kim. It was converted to (new) MF by N.N. Billawala
+% of Metamarks.
+% It contains 10 characters.
+
+
+rulepen:=pensquare scaled 1; % makes one pixel proofing lines
+mode_setup;
+designsize:=10pt#;
+width#:=10pt#;
+height#:=7.5pt#;
+depth#:=2.5pt#;
+ define_pixels(width,height,depth);
+extra_beginchar:=extra_beginchar&"save p;path p[];";
+
+% ***** general macros *****
+extra_beginchar:=extra_beginchar&"w#:=charwd;"; % for adjust def
+extra_endchar:=extra_endchar&"wsaved:=w; w:=r-l;"; % for adjust def
+
+letter_fit#:=letter_fit:=0;
+def adjust(expr left_adjustment,right_adjustment) =
+ l:=-round(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
+ r:=l+round(charwd*hppp);
+ w:=r-round(right_adjustment*hppp)-letter_fit;
+ enddef;
+
+def makebox(text rule)= % makes a reference box for screen and proof characters
+ for y=0,h.o_,-d.o_: rule((l,y),(r,y)); endfor % horizontals
+ for x=l,r: rule((x,-d.o_),(x,h.o_)); endfor % outer verticals
+ if charic<>0: rule((wsaved+charic*hppp,h.o_),(wsaved+charic*hppp,.5h.o_));fi
+enddef;
+
+% ***** pencils *****
+
+line_thickness:=max(1,.3pt); % thickness of character lines
+pencil_thickness#:=.6width#; % pencil thickness
+tip_length#:=.5width#; % length of pencil tips
+lead_length#:=.3tip_length#; % amount of pencil tip lead showing
+tip_curve:=.2; % curvature of the pencil tip
+lead_curve:=.1; % curvature of the pencil tip lead part
+bottom_showing:=.7; % proportion of bottom height/width in pencil
+
+def pencil_pen=pencircle scaled line_thickness; enddef;
+define_pixels(pencil_thickness,tip_length,lead_length);
+
+
+% The pencil keeps a general vertical size no matter what the rotation angle is.
+% The width is determined after the character is drawn.
+% Adjustments can be made to the height of the pencil(size)
+% angle of pencil from upright or 90 degrees(rotation)
+% thickness or width of the pencil(pencil_thickness)
+% length of the tip of the pencil(pencil_tip)
+% size of the lead showing in the tip(lead_length)
+% the curvature of the pencil tip(tip_curve) as a percentage of the tip_length
+% the curvature of the lead tip(lead_curve) as a percentage of the lead_length
+% the size of the bottom part of the pencil(bottom_showing)
+
+vardef pencil(expr tip,size,rotation)=
+ save x,y,p,t; path p[]; transform t; pickup pencil_pen;
+ z1=tip+(0,size/(sind abs(90+rotation))); % bottom
+ z2=z1-(0,.5pencil_thickness);
+ for n:=0 upto 5:z[10+n]=z2+(.5pencil_thickness,0) rotated (n*60); endfor
+ for n:=0 upto 5:z[10+n]a=.45[z2,z[10+n]]; endfor % bottom lead
+ z2 transformed t=z1-(0,.5*bottom_showing*pencil_thickness);
+ z11 transformed t=z11; z12 transformed t=z12;
+ z113=z13 transformed t; z114=z14 transformed t;
+ z115=z15 transformed t; z110=z10 transformed t;
+ z3=tip+(0,tip_length); penpos3(pencil_thickness,0); % tip
+ z4=tip_curve[z3,tip];
+ p1=z3r...z4{left}...z3l;
+ z20=(x114,ypart tip); z21=(x115,ypart tip);
+ z22=p1 intersectionpoint (z114--z20);
+ z23=p1 intersectionpoint (z115--z21);
+ z5=tip+(0,lead_length); % lead
+ y30=y31=y5; z30=whatever[tip,z3l]; z31=whatever[tip,z3r];
+ z6=lead_curve[z5,tip];
+ p2=(z10--z11--z12--z13--z14--z15--cycle) transformed t; % pencil bottom
+ p3=z113--z3l--tip--z3r--z110; % pencil
+ p4=z114--z22;
+ p5=z115--z23;
+ p6=(z10a..z11a..z12a..z13a..z14a..z15a..cycle) transformed t; % bottom lead
+ p7=tip--z31...z6{left}...z30--cycle; % lead tip
+ for n:=1 upto 5: draw p[n] rotatedaround (tip,rotation); endfor
+ for n:=6,7: fill p[n]rotatedaround (tip,rotation); endfor
+enddef;
+
+% An amount for placing the tip of the pencil
+def tip_adjust=
+ if abs(tip_length*cosd (90+rotation))>abs(.5*pencil_thickness):0
+ else:abs(.5*pencil_thickness-abs(tip_length*cosd (90+rotation)))fi enddef;
+
+"small pencil";
+ rotation:=55; % angle of pencil
+ pencil_width#:=
+ pencil_thickness#+ % base or minimum width
+ (height#+depth#) % vertical pencil dimension
+ *abs(cosd(90+rotation)/sind(90+rotation)) % * rotation
+ -pencil_thickness#*abs(cosd(90+rotation)); % - adjustment to thickness
+
+ beginchar(oct"120",pencil_width#,height#,depth#);
+ z0=(if rotation>0:w- else:0+ fi tip_adjust,0);
+ pencil(z0,h+d,rotation);
+ adjust(.2width#,.2width#);
+ endchar;
+
+"large pencil";
+ rotation:=20; % angle of pencil
+ pencil_width#:=
+ pencil_thickness#+ % base or minimum width
+ (height#+depth#) % vertical pencil dimension
+ *abs(cosd(90+rotation)/sind(90+rotation)) % * rotation
+ -pencil_thickness#*abs(cosd(90+rotation)); % - adjustment to thickness
+
+ beginchar(oct"127",pencil_width#,2.8height#,2.8depth#);
+ z0=(if rotation>0:w- else:0+ fi tip_adjust,0);
+ pencil(z0,h+d,rotation);
+ adjust(.2width#,.2width#);
+ endchar;
+
+
+% ***** return *****
+def return_pen=pencircle scaled line_thickness; enddef;
+
+
+"return";
+ beginchar(oct"103",.4width#,.6height#,.6depth#);
+ save curvature,arrowhead,base_length;
+ curvature1=angle((h+d),-.25(h+d));
+ curvature2=angle(-(h+d),-.25(h+d));
+ arrowhead=.2h; % length of arrowhead
+ pickup return_pen; % the pen used in this char
+ top lft z1=(0,h); bot lft z3=(0,-d); rt z2=(w,.5[y1,y3]);
+ p1=z1{dir curvature1}...z2{down}...z3{dir curvature2};
+ z4=z3+(arrowhead,0) rotated curvature2;
+ z5=z3+(arrowhead,0) rotated (curvature2+120);
+ z6=z3+(arrowhead,0) rotated (curvature2-120);
+ draw p1; filldraw z4--z5--z6--cycle;
+ adjust(.3width#,.2width#);
+ endchar;
+
+
+
+% ***** eye *****
+"eye";
+ beginchar(oct"105",1.2width#,.75height#,depth#);
+ save limit; pair limit; % keeps curve bounded
+ randomseed:=.71; % iris shape
+ pickup pencil_pen; % the pen used in this char
+ lft x1=0; x0=x2=x4=.5w; rt x3=w;
+ bot y2=0; y0=y1=y3=.5h; top y4=h;
+ limit=if abs(y2-y1)>abs(x2-x1):down else:(0,0) fi;
+ draw z1{limit}...z2{right}...z3{-limit}--
+ z3+(0,eps){-limit}...z4{left}...z1+(0,eps){limit}--cycle; % outer shape
+ draw z2..(.5[z0,z3])..z4..(.5[z0,z1])..cycle; % "retina"
+ pickup pencircle; % number and shape of pupil lines can be altered here
+ for n:=0 step 25 until 360:
+ draw z0--(z0+(.9abs(y4-y0),0)rotated n);
+ endfor
+ for n:=60 step 60 until 360:
+ draw z0--(z0+(.9abs(y4-y0),0)rotated (n*(uniformdeviate 5)));
+ endfor
+ pickup pencircle scaled .10h;
+ for n:=12 step 30 until 375:
+ draw z0--(z0+((((uniformdeviate 2)+2)*.15abs(y4-y0)),0)rotated n);
+ endfor
+ adjust(.2width#,.2width#);
+ endchar;
+
+
+% ***** hands *****
+handheight#:=6.5pt#;
+handdepth#:=3pt#;
+ define_pixels(handheight,handdepth);
+cuff_width:=.15width; % thickness of the cuff
+shirt_width:=.75cuff_width; % thickness of the sleeve
+digit:=round(.2handheight); % thickness of the fingers
+indent:=.05width; % finger indent increment
+knuckles:=2indent; % length of knuckles
+finger_tips:=3indent; % length of finger tips
+
+def handpen=pickup pencircle scaled .2pt; enddef;
+
+% Makes an open horizontal oval shape; path moves clockwise
+vardef finger(expr tip,alength)suffix $=
+ save x,y,tips; boolean tips; tips=if str$="tips":true else:false fi;
+ z2=tip; x1=x3=x2 if tips:+finger_tips else:-knuckles fi; x4=x3-alength;
+ y1=y2+.5digit; y1-y3=digit; y4=y3;
+ if tips:z4..z3{left}...z2...z1{right} else:z1{right}...z2...z3{left}...z4 fi
+enddef;
+
+% Points used in the hand characters
+def hand_points=
+ y1=y2=h; top y3=top y4=y2-(.05h+1); x1=x5=0; x2=x3=x6=x7=x1+cuff_width;% cuff
+ y5=y6=0; bot y7=bot y8=y5+(.05h+1); x4=x8=x1a=x3a=x2+shirt_width;
+ y1a=y3-(.1h); y2a=y3; x2a=.3[x1a,w-3indent]; % wrist
+ y3a=y1a-.5h; y4a=y7+(.05h+1); y5a=.2[y4a,y2a]; x4a=x5a=.45[x3a,x5d];
+ y1b=y3-.5digit; y2b+digit=y3b+2digit=y4b+3digit=y1b; y5b=y4b; % knuckles
+ x1b+2indent=x2b+indent=x3b=x4b+indent=w; x5b=x3b+2knuckles;
+ for n:=1 upto 4:y[n]c=y[n]b; endfor % tips
+ x1c=x2c=x3c=x4c-indent=0[x3d,x3b];
+ z3d=(.5[x3a,x3b],-d); z2d=z3d+(.5digit,.3d); z4d=z2d-(digit,0); % up thumb
+ z1d=(x2d-indent,.5[y2d,y4b-.5digit]); z5d=z1d-(1.5digit,0);
+ z1e=z5d+(0,.5digit); z2e=(.2[x1e,x3b],y1e); % down thumb
+ z5e=(.55[x3c,x3b],y3b-.5digit);
+ z3e=.4[z2e,z5e]+(.55digit,0)rotated(angle(z5e-z2e)-90);
+ z4e-z3e=whatever*(z5e-z2e); y4e=y4b;
+ z6e=z3e+(1.1digit,0)rotated(angle(z5e-z2e)+90); z7e=z6e-(.5knuckles,0);
+ z8e=(1[x3a,x5d],y3b);
+ enddef;
+
+def cuff(expr trans)=
+ p10=z1--z2--z6--z5--cycle; fill p10 transformed trans; % cuff
+ p11=z3--z4--z8--z7; draw p11 transformed trans; % sleeve
+ enddef;
+
+"left thumbs down";
+ beginchar(oct"104",1.2*width#,handheight#,handdepth#);
+ transform t[]; t1=identity shifted (0,-.1h);
+ handpen hand_points;
+ cuff(t1); % cuff
+ p1=z1a{right}...z2a{right}...finger(z1b,2.5indent); % finger
+ p2=finger(z2b,2.5indent); % finger
+ p3=finger(z3b,4.5indent); % finger
+ p4=finger(z4b,2.5indent)... % finger
+ z1d{down}...z2d{down}...z3d...z4d{up}...z5d{z4a-z3d}...z3a{left};% thumb
+ for n:=1 upto 4: draw p[n] transformed t1; endfor
+ adjust(.2width#,.2width#);
+ endchar;
+
+"right thumbs down";
+ beginchar(oct"144",1.2*width#,handheight#,handdepth#);
+ transform t[];
+ t1=identity reflectedabout ((.5w,0),(.5w,h)) shifted (0,-.1h);
+ handpen hand_points;
+ cuff(t1); % cuff
+ p1=z1a{right}...z2a{right}...finger(z1b,2.5indent); % finger
+ p2=finger(z2b,2.5indent); % finger
+ p3=finger(z3b,4.5indent); % finger
+ p4=finger(z4b,2.5indent)... % finger
+ z1d{down}...z2d{down}...z3d...z4d{up}...z5d{z4a-z3d}...z3a{left};% thumb
+ for n:=1 upto 4: draw p[n] transformed t1; endfor
+ adjust(.2width#,.2width#);
+ endchar;
+
+"left thumbs up";
+ beginchar(oct"125",1.2*width#,handheight#,handdepth#);
+ transform t[];
+ t1=identity reflectedabout ((0,.5h),(w,.5h)) shifted (0,-.1h);
+ handpen hand_points;
+ cuff(t1); % cuff
+ p1=z1a{right}...z2a{right}...finger(z1b,0)--finger(z1c,0)tips; % finger
+ p2=finger(z2b,0)--finger(z2c,0)tips; % finger
+ p3=finger(z3b,0)--finger(z3c,0)tips; % finger
+ p4=finger(z4c,0)tips--finger(z4b,0){left}... % finger
+ z1d{down}...z2d{down}...z3d...z4d{up}...z5d{z4a-z3d}...z4a...z5a{up};
+ p5=z3a--z4a; % wrist
+ for n:=1 upto 5: draw p[n] shifted (0,-.07h) transformed t1; endfor
+ adjust(.2width#,.2width#);
+ endchar;
+
+"right thumbs up";
+ beginchar(oct"165",1.2*width#,handheight#,handdepth#);
+ transform t[];
+ t1=identity rotatedaround ((.5w,.5h),180) shifted (0,-.1h);
+ handpen hand_points;
+ cuff(t1); % cuff
+ p1=z1a{right}...z2a{right}...finger(z1b,0)--finger(z1c,0)tips; % finger
+ p2=finger(z2b,0)--finger(z2c,0)tips; % finger
+ p3=finger(z3b,0)--finger(z3c,0)tips; % finger
+ p4=finger(z4c,0)tips--finger(z4b,0){left}... % finger
+ z1d{down}...z2d{down}...z3d...z4d{up}...z5d{z4a-z3d}...z4a...z5a{up};
+ p5=z3a--z4a; % wrist
+ for n:=1 upto 5: draw p[n] shifted (0,-.07h) transformed t1; endfor
+ adjust(.2width#,.2width#);
+ endchar;
+
+"left hand pointing right";
+ beginchar(oct"122",1.2*width#,handheight#,handdepth#);
+ transform t[];
+ t1=identity reflectedabout ((0,.5h),(w,.5h)) shifted (0,-.1h);
+ handpen hand_points;
+ cuff(t1); % cuff
+ z1f=(z2e{right}...z3e{z5e-z2e}...z5e{left}...z6e{z2e-z5e})
+ intersectionpoint ((0,y4b-.5digit)--(w,y4b-.5digit));
+ p1=z1a{right}...z2a{right}...finger(z1b,0)--finger(z1c,0)tips; % finger
+ p2=finger(z2b,0)--finger(z2c,0)tips; % finger
+ p3=finger(z3b,0)--finger(z3c,0)tips; % finger
+ p4=z5e--finger(z5b,0)--z1f; % finger
+ p5=z3a{right}...z1e{right}...z2e{right}...z3e{z5e-z2e}...
+ z4e{z5e-z2e}...z5e{left}...z6e{z2e-z5e} & z6e--z7e{dir 120}..z8e;
+ w:=w+2knuckles;
+ for n:=1 upto 5: draw p[n] shifted (0,-.07h) transformed t1; endfor
+ adjust(.2width#,.35width#);
+ endchar;
+
+"right hand pointing left";
+ beginchar(oct"114",1.2*width#,handheight#,handdepth#);
+ transform t[];
+ t1=identity rotatedaround ((.5w,.5h),180) shifted (0,-.1h);
+ handpen hand_points;
+ cuff(t1); % cuff
+ z1f=(z2e{right}...z3e{z5e-z2e}...z5e{left}...z6e{z2e-z5e})
+ intersectionpoint ((0,y4b-.5digit)--(w,y4b-.5digit));
+ p1=z1a{right}...z2a{right}...finger(z1b,0)--finger(z1c,0)tips; % finger
+ p2=finger(z2b,0)--finger(z2c,0)tips; % finger
+ p3=finger(z3b,0)--finger(z3c,0)tips; % finger
+ p4=z5e--finger(z5b,0)--z1f; % finger
+ p5=z3a{right}...z1e{right}...z2e{right}...z3e{z5e-z2e}...
+ z4e{z5e-z2e}...z5e{left}...z6e{z2e-z5e} & z6e--z7e{dir 120}..z8e;
+ w:=w+2knuckles;
+ for n:=1 upto 5: draw p[n] shifted (0,-.07h) transformed t1; endfor
+ adjust(.35width#,.2width#);
+ endchar;
+
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/dingbat/dingbat.mf b/Master/texmf-dist/fonts/source/public/dingbat/dingbat.mf
new file mode 100644
index 00000000000..6d93e280c62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/dingbat/dingbat.mf
@@ -0,0 +1,711 @@
+% Dingbat characters as of 3-3-89 by Doug Henderson
+% To be run with plain.bas.
+% Last modified on 3-20-96 by Marcus Ohlhaut (MO)
+
+font_size=10pt#; % make the pxl or pk files be in ...\pixel\pxl1500
+
+def clear_all =
+ clearit; clearxy;
+enddef;
+
+%%%
+% turn pt,in,cm etc. into pixel values
+%%%
+
+mode_setup;
+
+%%%
+% define your variables here
+%%%
+string s[];
+picture p[];
+numeric anchor_scale;
+anchor_scale=10;
+path the_anchor,ring_of_anchor,tilted_anchor,tilted_ring;
+% how much to tilt the anchor
+numeric akilter;
+akilter:=20;
+picture holdit,holdem,flower_x,flower_y;
+path collar, thumb, index_finger, the_bird, ring_finger, pinky_finger ;
+a#:=12pt#;
+b#:=12pt#;
+glyph_width#:=10pt#;
+glyph_height#:=7pt#;
+uniform_square#:=20pt#;
+triangle_size#:=12pt#;
+check_width#:=10pt#;
+check_height#:=10pt#;
+check_depth#:=0pt#;
+dash#:=2pt#;
+%flu_width#:=31pt#;
+%flu_height#:=15pt#;
+flu_width#:=62pt#;
+flu_height#:=30pt#;
+anchor_height#:=150pt#/anchor_scale;
+anchor_width#:=130pt#/anchor_scale;
+anchor_depth#:=0pt#;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Very thin weight stroke for flouron (not advised for < 600dpi)
+%thinish#:=.25pt#;
+%thinthick#:=.45pt#;
+%thickish#:=.75pt#;
+
+% Normal weight stroke for flouron
+thinish#:=.5pt#;
+thinthick#:=1pt#;
+thickish#:=1.5pt#;
+
+% Heavy weight stroke for flouron
+%thinish#:=1pt#;
+%thinthick#:=2pt#;
+%thickish#:=2.5pt#;
+
+% Strokes widths for the flower from 1-12 (= 1 pixel - 4.5pt)
+flower_one#:=.25;
+flower_two#:=.5;
+flower_three#:=.5pt#/1.5;
+flower_four#:=.5pt#/1.5;
+flower_five#:=1pt#/1.5;
+flower_six#:=1.5pt#/1.5;
+flower_seven#:=2pt#/1.5;
+flower_eight#:=2.5pt#/1.5;
+flower_nine#:=3pt#/1.5;
+flower_ten#:=3.5pt#/1.5;
+flower_eleven#:=4pt#/1.5;
+flower_twelve#:=4.5pt#/1.5;
+hand_scale=6;
+hand_width#:=110pt#/hand_scale;
+hand_height#:=80pt#/hand_scale;
+hand_depth#:=0pt#;
+
+%%%
+% define your pixels here, do this for each variable defined above
+%%%
+
+define_pixels(glyph_width,glyph_height,uniform_square,triangle_size);
+define_pixels(check_width,check_height,check_depth,dash,thinish,thickish);
+define_pixels(thinthick,flu_width,flu_height,a,b);
+define_pixels(flower_one,flower_two,flower_three,flower_four,flower_five);
+define_pixels(flower_six,flower_seven,flower_eight,flower_nine,flower_ten);
+define_pixels(flower_eleven,flower_twelve);
+define_pixels(hand_width,hand_height,hand_depth,dash);
+define_pixels(anchor_height,anchor_weight,anchor_depth);
+
+%%%
+% define a macro which pauses until the user hits the return key
+%%%
+
+def
+ whoa= s0:= readstring;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Define all the pens we use
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+pickup pensquare scaled .2pt;
+smallpen:=savepen;
+pickup pensquare scaled .4pt;
+bigpen:=savepen;
+pickup pensquare scaled .8pt;
+bigger:=savepen;
+pickup pencircle scaled .1pt;
+razorpen:=savepen;
+pickup pencircle scaled 2pt;
+bigdotpen:=savepen;
+pickup pencircle scaled 1.1pt;
+lildotpen:=savepen;
+pickup pensquare scaled 1.6pt;
+chunkypen:=savepen;
+pickup pencircle scaled .35pt;
+ringpen:=savepen;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Let the dingbat characters begin
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Anchor for TUG dingbat contest";
+beginchar("O",anchor_width#,anchor_height#,anchor_depth#);
+ %%%
+ % x variables
+ %%%
+ x1=8/130w; % x1
+ x2=6/130w; % x2
+ x3=13/130w; % x3
+ x4=x25=x26=x31=30/130w; % x4 x25 x26 x31
+ x5=x22=60/130w; % x5
+ x6=x14=x18=x19=90/130w; % x6 x14 x18 x19
+ x27=x28=x45=54/130w; % x27 x28 x45
+ x17=x35=x56=66/130w; % x17 x35 x56
+
+ x7=107/130w; % x7
+ x8=114/130w; % x8
+ x10=112/130w; % x10
+ x12=94/130w; % x12
+ x13=99/130w; % x13
+ x15=72/130w; % x15
+ x16=67/130w; % x16
+ x20=70/130w; % x20
+ x21=65/130w; % x21
+ x23=55/130w; % x23
+ x24=50/130w; % x24
+
+ x29=53/130w; % x29
+ x30=48/130w; % x30
+ x32=21/130w; % x32
+ x33=26/130w; % x33
+
+ %%%
+ % y variables
+ %%%
+ y1=y10=65/150h; % y1 y10
+ y2=y8=43/150h; % y2 y8
+ y3=y7=45/150h; % y3 y7
+
+ y4=y6=25/150h; % y4 y6
+ y5=13/150h; % y5
+ y21=y23=130/150h; % y21 y23
+ y22=136/150h; % y22
+ y45=y56=20/150h; % y45 y56
+
+ y18=y26=y27=y35=118/150h; % y18 y26 y27 y35
+ y19=y20=y24=y25=124/150h; % y19 y20 y24 y25
+ y17=y28=40/150h; % y17 y28
+ y16=y29=36/150h; % y16 y29
+ y15=y30=35/150h; % y15 y30
+ y14=y31=38/150h; % y14 y31
+ y13=y32=50/150h; % y13 y32
+ y12=y33=54/150h; % y12 y33
+
+ %%%
+ % path assignments
+ %%%
+ the_anchor = z25--z26--z27--z28 & z28..z29..z31..z32 &
+ z32--z33--z1--z2--z3 & z3..z4..z45 & z45--z5--z56 & z56..z6..z7 &
+ z7--z8--z10--z12--z13 & z13..z14..z16..z17 &
+ z17--z35--z18--z19--cycle;
+ ring_of_anchor = z20..z22..z24;
+
+ tilted_anchor = the_anchor rotated akilter;
+ tilted_ring = ring_of_anchor rotated akilter;
+ %%%
+ % draw the character, show how ring meets anchor
+ %%%
+ pickup razorpen;
+ fill the_anchor;
+ pickup ringpen;
+ draw ring_of_anchor;
+
+ %%%
+ % after clearing previous path (upright anchor) fill the tilted path
+ %%%
+ %clearit;
+ %fill tilted_anchor;
+ %draw tilted_ring;
+ %showit;
+ %message"When thru viewing, press Enter to continue";
+ %whoa;
+
+ labels(range 1 thru 4,45,5,56,range 6 thru 19);
+ labels(range 20 thru 33,35);
+
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+"Hand pointer to the left";
+beginchar("N",hand_width#,hand_height#,hand_depth#);
+ %%%
+ % x variables
+ %%%
+ x1=9.5/110w; % x1
+ x2=15/110w; % x2
+ x3=x6=20/110w; % x3 x6
+ x4=19/110w; % x4
+ x5=x8=16/110w; % x5 x8
+ x7=21/110w; % x7
+ x9=10.5/110w; % x8
+ x10=5/110w; % x10
+ x11=42.5/110w; % x11
+ x1112=61/110w; % x1112 (a point between 11 and 12)
+ x12=67/110w; % x12
+ x13=x24=70/110w; % x13 x24
+ x14=57.5/110w; % x14
+ x15=76/110w; % x15
+ x16=77/110w; % x16
+ x17=58/110w; % x17
+ x18=82.5/110w; % x18
+ x19=83/110w; % x19
+ x20=57/110w; % x20
+ x21=94/110w; % x21
+ x22=102/110w; % x22
+ x23=90/110w; % x23
+ x25=43.5/110w; % x25
+ x26=62.5/110w; % x26
+ x27=75/110w; % x27
+ x28=74/110w; % x28
+
+ %%%
+ % y variables
+ %%%
+ y1=y24=63/80h; % y1 y24
+ y2=y25=64/80h; % y2 y25
+ y3=63.5/80h; % y3
+ y4=59/80h; % y4
+ y5=y17=40/80h; % y5 y17
+ y6=18/80h; % y6
+ y7=13/80h; % y7
+ y8=12.5/80h; % y8
+ y9=13.5/80h; % y9
+ y10=39.5/80h; % y10
+ y11=15/80h; % y11
+ y1112=17.5/80h; % y1112 (a point between 11 and 12)
+ y12=20/80h; % y12
+ y13=27.5/80h; % y13
+ y14=28/80h; % y14
+ y15=32/80h; % y15
+ y16=39/80h; % y16
+ y18=44/80h; % y18
+ y19=y21=50/80h; % y19
+ y20=51/80h; % y20
+ y22=55/80h; % y22
+ y23=62/80h; % y23
+ y26=71/80h; % y26
+ y27=72/80h; % y27
+ y28=67/80h; % y28
+
+ collar=z1..z2..z3 & z3..z4..z5..z6..z7 & z7..z8..z9 & z9..z10..z1;
+ thumb=z25..z26..z27..z28..z24;
+ index_finger=z4..z25..z24..z23..z22..z21..z19..z20;
+ the_bird=z17--z16..z18..z19;
+ ring_finger=z14--z13..z15..z16;
+ pinky_finger=z6..z11..z1112 & z1112..z12..z13;
+
+ pickup razorpen;
+
+ draw collar; draw thumb; draw index_finger;
+ draw the_bird; draw ring_finger; draw pinky_finger;
+ labels(range 1 thru 11,1112,range 12 thru 28);
+endchar;
+
+"Flowery flouron";
+beginchar("J",flu_width#,flu_height#,0);
+ % first stroke = x1 thru x8
+ x1=.02w; x2=.10w; x3=.23w; x4=.38w; x5=.51w;
+ x6=.73w; x7=.85w; x8=x14=x19=.98w;
+ % second stroke = x9 thru x14
+ x9=.22w; x10=.17w; x11=.165w; x12=.20w;
+ x13=.58w; % x14=x8=x19
+ % third stroke = x15 thru x19
+ x15=.32w; x16=.46w; x17=.65w; x18=.82w; % x19=x8=x14
+ % first stroke = y1 thru y8
+ y1=.05h; y2=.19h; y3=.26h; y4=.24h; y5=.18h;
+ y6=.13h; y7=.14h; y8=y14=y19=.19h;
+ % second stroke = y9 thru y14
+ y9=.99h; y10=.92h; y11=.85h;
+ y12=.71h; y13=.32h; % y14=y8
+ % third stroke = y15 thru y19
+ y15=.67h; y16=.74h; y17=.71h; y18=.48h;
+ % pen positions for stroke 1
+ penpos1(flower_one,135); penpos2(flower_five,135); penpos3(flower_nine,90);
+ penpos4(flower_twelve,90); penpos5(flower_ten,67); penpos6(flower_five,85);
+ penpos7(flower_four,90); penpos8(flower_three,135);
+ % pen positions for stroke 2
+ penpos9(flower_one,135); penpos10(flower_seven,180);
+ penpos11(flower_eight,180); penpos12(flower_seven,210);
+ penpos13(flower_six,210); penpos14(flower_three,270);
+ % pen positions for stroke 3
+ penpos15(flower_one,115); penpos16(flower_seven,100);
+ penpos17(flower_nine,70); penpos18(flower_five,45);
+ penpos19(flower_three,45);
+ % now draw our three strokes
+ penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e;
+ penstroke z9e...z10e...z11e...z12e{dir 315}...z13e...z14e;
+ penstroke z15e..z16e..z17e..z18e{dir 315}..z19e;
+ penlabels(range 1 thru 19);
+ flower_x:=currentpicture;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Right flower";
+beginchar("K",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+flower_x;
+ currentpicture:=currentpicture reflectedabout((.5[0,0],1),(.5[0,0],0));
+ currentpicture:=currentpicture shifted (w,0);
+ flower_y:=currentpicture;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+"Flipped left flower--matches J";
+beginchar("L",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+flower_y;
+ currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Flipped right flower--matches K";
+beginchar("M",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+flower_x;
+ currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"DLA satelite dish";
+beginchar("I",a#,b#,0);
+ numeric zero; zero=0;
+ % define the coordinates we will work with here
+ z1=origin; z2=(a,zero); z3=(a,b/5); z4=(zero,b/5);
+ x5=3/10(x2-x1); y5=y4=y6; x6=7/10(x2-x1);
+ x7=4/10(x2-x1); y7=y8=y9=3/10(b); x8=6/10(x2-x1);
+ x9=x10=1/2(x2-x1);
+ x11=1/10(x2-x1); y11=9/10(b); x12=3/10(x2-x1);
+ y12=.53(b); x13=9/10(x2-x1); y13=5/10(b);
+ y10=4.5/10(b);
+
+ % draw the bottom platform of the dish
+ pickup pensquare xscaled .5pt yscaled .5pt
+ filldraw z1--z2--z3--z4--cycle;
+ % draw the base of the dish, which sits on top of the bottom platform
+ pickup penrazor;
+ filldraw z5--z7--z8--z6--cycle;
+ % draw the arm holding the dish, which sits on the base of the dish
+ pickup penrazor xscaled .5pt;
+ draw z9--z10;
+ % draw the dish now
+ pickup pencircle xscaled .5pt yscaled .5pt;
+ draw z11..z12..z13;
+ % dish mod, complete the dish top
+% draw z11--z13;
+ labels(range 1 thru 13);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Left flouron";
+beginchar("E",flu_width#,flu_height#,0);
+ pickup pencircle;
+ x1=.23w; x2=.10w; x3=.05w; x4=.10w; x5=.19w;
+ x6=.25w; x7=.26w; x8=.20w; x9=.22w; x10=.26w;
+ x11=.48w; x12=.62w; x13=.71w; x14=.84w; x15=.90w;
+ x16=.97w; x17=.93w; x18=.84w;
+ y1=.07h; y2=.07h; y3=.33h; y4=.57h; y5=.65h;
+ y6=.61h; y7=.53h; y8=.55h; y9=.75h; y10=.80h;
+ y11=.67h; y12=.56h; y13=.53h; y14=.55h; y15=.60h;
+ y16=.80h; y17=.92h; y18=.87h;
+ penpos1(thinish,270); penpos2(thinish,225);
+ penpos3(thickish,180); penpos4(thinish,135);
+ penpos5(thinish,90); penpos6(thinish,45);
+ penpos7(thinish,0); penpos8(thinish,225);
+ penpos9(thinish,135); penpos10(thinish,90);
+ penpos11(thinish,45); penpos12(thinish,45);
+ penpos13(thinish,90); penpos14(thinthick,135);
+ penpos15(thinthick,135); penpos16(thinthick,180);
+ penpos17(thinish,225); penpos18(thinish,270);
+ penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..z9e..z10e..z11e..z12e..
+ z13e..z14e..z15e..z16e..z17e..z18e;
+ penlabels(range 1 thru 18);
+holdit:=currentpicture;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Right flouron";
+beginchar("F",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+holdit;
+% currentpicture:=currentpicture reflectedabout((.5[l,r],1),(.5[l,r],0));
+ currentpicture:=currentpicture reflectedabout((.5[0,0],1),(.5[0,0],0));
+ currentpicture:=currentpicture shifted (w,0);
+ holdem:=currentpicture;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Flipped left flouron--matches F";
+beginchar("G",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+holdem;
+ currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Flipped right flouron--matches E";
+beginchar("H",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+holdit;
+ currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Check mark";
+beginchar("D",check_width#,check_height#,check_depth#);
+ pickup pencircle;
+ y1=.4h; y2=.15h; y3=.85h;
+ x1l=0+eps; x2=1/3w; x3=.85w;
+ penpos1(dash,45); penpos2(dash,90); penpos3(dash,170);
+ penstroke z1e--z2e--z3e;
+ penlabels(1,2,3);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Square (filled) with dots border design";
+beginchar("C",triangle_size#,triangle_size#,0);
+x1=x3=good.x(1/2triangle_size);
+x2=good.x(1/10triangle_size);
+x4=good.x(9/10triangle_size);
+x5=x6=good.x(3/10triangle_size);
+x7=x8=good.x(7/10triangle_size);
+x9=x10=good.x(2/10triangle_size);
+x12=x11=good.x(8/10triangle_size);
+
+y1=good.y(1/10triangle_size);
+y9=y12=good.y(2/10triangle_size);
+y5=y8=good.y(3/10triangle_size);
+y2=y4=good.y(1/2triangle_size);
+y6=y7=good.y(7/10triangle_size);
+y10=y11=good.y(8/10triangle_size);
+y3=good.y(9/10triangle_size);
+
+pickup razorpen;
+fill z1..z5..z2 & z2..z6..z3 & z3..z7..z4 & z4..z8..z1..cycle;
+pickup bigdotpen;
+drawdot z9; drawdot z12; drawdot z10; drawdot z11;
+
+labels(range 1 thru 12);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Square (unfilled) with dots border design";
+beginchar("B",triangle_size#,triangle_size#,0);
+ x1=x3=good.x(1/2triangle_size);
+ x2=good.x(1/10triangle_size);
+ x4=good.x(9/10triangle_size);
+ x5=x6=good.x(3/10triangle_size);
+ x7=x8=good.x(7/10triangle_size);
+ x9=x10=good.x(2/10triangle_size);
+ x12=x11=good.x(8/10triangle_size);
+
+ y1=good.y(1/10triangle_size);
+ y9=y12=good.y(2/10triangle_size);
+ y5=y8=good.y(3/10triangle_size);
+ y2=y4=good.y(1/2triangle_size);
+ y6=y7=good.y(7/10triangle_size);
+ y10=y11=good.y(8/10triangle_size);
+ y3=good.y(9/10triangle_size);
+
+ pickup bigpen;
+ draw z1..z5..z2;
+ draw z2..z6..z3;
+ draw z3..z7..z4;
+ draw z4..z8..z1;
+
+ pickup bigdotpen;
+ drawdot z9; drawdot z12; drawdot z10; drawdot z11;
+ pickup lildotpen;
+ erase drawdot z9; erase drawdot z12; erase drawdot z10;erase drawdot z11;
+
+ labels(range 1 thru 12);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Z border design";
+beginchar("Z",glyph_width#,glyph_height#,0);
+pickup bigger;
+% define our x values for the border design
+x1=x6=x7=good.x(glyph_width);
+x4=6/8good.x(glyph_width);
+x8=2/8good.x(glyph_width);
+x2=x3=x5=0;
+% design our y values for the border design
+y1=y2=0;
+y7=y8=1/3good.y(glyph_height);
+y3=y4=2/3good.y(glyph_height);
+y5=y6=good.y(glyph_height);
+
+draw z5--z6--z7--z8;
+draw z1--z2--z3--z4;
+%draw bot z5--z3;
+%draw top z1--z7;
+
+labels(range 1 thru 8);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"S border design";
+beginchar("S",glyph_width#,glyph_height#,0);
+pickup bigger;
+% define our x values for the border design
+x1=x6=x7=0;
+x2=x3=x8=good.x(glyph_width);
+x4=good.x(2/8glyph_width);
+x5=good.x(6/8glyph_width);
+
+y1=y2=0;
+y5=y6=good.y(1/3glyph_height);
+y3=y4=good.y(2/3glyph_height);
+y7=y8=good.y(glyph_height);
+
+draw z1--z2--z3--z4;
+draw z5--z6--z7--z8;
+%draw top z1--z6;
+%draw bot z8--z3;
+cullit;
+
+labels(range 1 thru 8);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 1 (top-left)";
+beginchar("a",uniform_square#,uniform_square#,0);
+
+x1=x2=good.x(1/10uniform_square);
+x3=x4=good.x(4/10uniform_square);
+x5=x8=good.x(uniform_square);
+x6=x7=good.x(2/10uniform_square);
+
+y1=y6=good.y(0);
+y2=y3=good.y(6/10uniform_square);
+y7=y8=good.y(8/10uniform_square);
+y4=y5=good.y(9/10uniform_square);
+
+pickup chunkypen;
+draw z1--z2--z3--z4--z5;
+pickup bigpen;
+draw z6--z7--z8;
+p1:=currentpicture;
+
+labels(range 1 thru 8);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 2 (top-middle)";
+beginchar("b",uniform_square#,uniform_square#,0);
+
+x1=x3=good.x(0);
+x2=x4=good.x(uniform_square);
+
+y1=y2=good.y(9/10uniform_square);
+y3=y4=good.y(8/10uniform_square);
+
+pickup chunkypen;
+draw z1--z2;
+pickup bigpen;
+draw z3--z4;
+p2:=currentpicture;
+
+labels(1,2,3,4);
+
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 3 (top-right)";
+beginchar("c",uniform_square#,uniform_square#,0);
+
+x1=x6=good.x(0);
+x2=x3=good.x(6/10uniform_square);
+x7=x8=good.x(8/10uniform_square);
+x4=x5=good.x(9/10uniform_square);
+
+y1=y2=good.y(9/10uniform_square);
+y6=y7=good.y(8/10uniform_square);
+y3=y4=good.y(6/10uniform_square);
+y5=y8=good.y(0);
+
+pickup chunkypen;
+draw z1--z2--z3--z4--z5;
+pickup bigpen;
+draw z6--z7--z8;
+p3:=currentpicture;
+
+labels(range 1 thru 8);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 4 (middle-left)";
+beginchar("d",uniform_square#,uniform_square#,0);
+
+x1=x2=good.x(1/10uniform_square);
+x3=x4=good.x(2/10uniform_square);
+y1=y3=good.y(0);
+y2=y4=good.y(uniform_square);
+
+pickup chunkypen;
+draw z1--z2;
+pickup bigpen;
+draw z3--z4;
+p4:=currentpicture;
+
+labels(1,2,3,4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% (MO) The following commented-out lines are Doug's original definitions.
+%
+% "Overlapping thick\thin line border design--- character 5 (middle-right)";
+% beginchar("e",uniform_square#,uniform_square#,0);
+% currentpicture:=currentpicture + p4;
+% currentpicture:=currentpicture reflectedabout((.5[0,0],0),(.5[0,0],1));
+% endchar;
+%
+% They have been replaced by
+
+"Overlapping thick\thin line border design--- character 5 (middle-right)";
+beginchar("e",uniform_square#,uniform_square#,0);
+x1=x2=good.x(9/10uniform_square);
+x3=x4=good.x(8/10uniform_square);
+y1=y3=good.y(0);
+y2=y4=good.y(uniform_square);
+pickup chunkypen;
+draw z1--z2;
+pickup bigpen;
+draw z3--z4;
+p4:=currentpicture;
+labels(1,2,3,4);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 6 (bottom-left)";
+beginchar("f",uniform_square#,uniform_square#,0);
+currentpicture:=currentpicture + p1;
+currentpicture:=currentpicture
+reflectedabout((0,.5[0,uniform_square]),(1,.5[0,uniform_square]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 7 (bottom-middle)";
+beginchar("g",uniform_square#,uniform_square#,0);
+currentpicture:=currentpicture + p2;
+currentpicture:=currentpicture
+reflectedabout((0,.5[0,uniform_square]),(1,.5[0,uniform_square]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 8 (bottom-right)";
+beginchar("h",uniform_square#,uniform_square#,0);
+currentpicture:=currentpicture + p3;
+currentpicture:=currentpicture
+reflectedabout((0,.5[0,uniform_square]),(1,.5[0,uniform_square]));
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+bye
diff --git a/Master/texmf-dist/fonts/source/public/doublestroke/dsrom.mf b/Master/texmf-dist/fonts/source/public/doublestroke/dsrom.mf
new file mode 100644
index 00000000000..444039164d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/doublestroke/dsrom.mf
@@ -0,0 +1,42 @@
+% The Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+% Modified for Double Stroke Characters (by Olaf Kummer, 1995)
+
+% This file was renamed from {\tt roman.mf} to {\tt dsrom.mf}
+% and modified for double stroke characters by Olaf Kummer, 1995.
+% The parameters doublestroke_curvedist and doublestroke_twist
+% were added by Olaf Kummer, 1996.
+% Version 1.0
+
+mode_setup; font_setup;
+
+% New parameters
+if unknown doublestroke_thin#: doublestroke_thin#:=cap_hair#; fi
+if unknown doublestroke_thick#: doublestroke_thick#:=cap_stem#; fi
+if unknown doublestroke_dist#: doublestroke_dist#:=0.9cap_stem#; fi
+if unknown doublestroke_curvedist#: doublestroke_curvedist#:=1.1cap_stem#; fi
+
+if unknown doublestroke_twist:
+ boolean doublestroke_twist; doublestroke_twist:=serifs;
+fi
+
+% Calculate new parameters
+define_whole_blacker_pixels(doublestroke_thick,doublestroke_thin);
+define_whole_pixels(doublestroke_dist,doublestroke_curvedist);
+
+% Add new macros
+
+% Fit stroke to curve
+def curve_stroke(suffix @)(expr xpos,width,patha,pathb) =
+x@1l=x@2l=xpos=x@1r-width=x@2r-width;
+y@1l=y@1r=2h; y@2l=y@2r=-h;
+z@3=(patha)intersectionpoint(z@1l..z@2l);
+z@4=(pathb)intersectionpoint(z@1l..z@2l);
+z@5=(pathb)intersectionpoint(z@1r..z@2r);
+z@6=(patha)intersectionpoint(z@1r..z@2r);
+fill z@3--z@4--z@5--z@6--cycle;
+enddef;
+
+input dsromu; % upper case (majuscules)
+input dsromo; % other characters
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/doublestroke/dsrom10.mf b/Master/texmf-dist/fonts/source/public/doublestroke/dsrom10.mf
new file mode 100644
index 00000000000..6518af9e8f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/doublestroke/dsrom10.mf
@@ -0,0 +1,75 @@
+% Double Stroke Computer Modern Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="DSROM"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate dsrom % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/doublestroke/dsrom12.mf b/Master/texmf-dist/fonts/source/public/doublestroke/dsrom12.mf
new file mode 100644
index 00000000000..7dd0ece695d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/doublestroke/dsrom12.mf
@@ -0,0 +1,75 @@
+% Double Stroke Computer Modern Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="DSROM"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate dsrom % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/doublestroke/dsrom8.mf b/Master/texmf-dist/fonts/source/public/doublestroke/dsrom8.mf
new file mode 100644
index 00000000000..42d5817fbb3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/doublestroke/dsrom8.mf
@@ -0,0 +1,75 @@
+% Double Stroke Computer Modern Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="DSROM"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate dsrom % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/doublestroke/dsromo.mf b/Master/texmf-dist/fonts/source/public/doublestroke/dsromo.mf
new file mode 100644
index 00000000000..bcb15fc65f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/doublestroke/dsromo.mf
@@ -0,0 +1,157 @@
+% Double Stroke Roman others:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% This file {\tt dsromo.mf} was compiled from various Computer
+% Modern sources and modified for double stroke characters by
+% Olaf Kummer, 1996.
+% Version 1.0
+
+cmchar "The numeral 1";
+beginchar("1",11u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0);
+pos11(doublestroke_thin,0); pos12(doublestroke_thin,0);
+lft x1l=lft x2l=w-rt x11r;
+y11=y1; lft x11l=rt x1r+doublestroke_dist;
+y12=y2; lft x12l=rt x2r+doublestroke_dist;
+top y1=h+o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+filldraw stroke z11e--z12e; % stroke
+z13=whatever[z11,z12]; z14=whatever[z1,z2];
+y13=y14=top y11-slab;
+fill top z11--top z1--z14--z13--cycle; % top closure
+if not serifs: save slab; slab=bar; fi
+nodish_serif(2,1,a,1/3,min(2u,lft x2l-1.5u),
+ b,0,min(2u,w-1.25u-rt x2r)+doublestroke_dist); % left serif
+nodish_serif(12,11,c,0,min(2u,lft x2l-1.5u)+doublestroke_dist,
+ d,1/3,min(2u,w-1.25u-rt x2r)); % stroke serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .75 else: .85 fi\\ h+o;
+lft x4=max(1u,tiny.lft x1l-2.75u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+
+cmchar "A variant of letter A";
+beginchar("a",14.5u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut;
+y11=y1=y4=0; y12=y2=y3=h+0.4*apex_o;
+x11l=w-x4r=l+letter_fit+outer_jut+.5u;
+alpha=diag_ratio(2,left_stem+doublestroke_thick+doublestroke_dist,
+ y2-y11,x4r-x11l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos11(alpha*doublestroke_thick,0); penpos12(alpha*doublestroke_thick,0);
+x1l=x11r+alpha*doublestroke_dist;
+x2l=x12r+alpha*doublestroke_dist;
+x2l-x1l=x4r-x3r;
+x3r=x2r+apex_corr;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % stroke
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ prime_points_inside(11,12);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ nodish_serif(1',2,a,0,outer_jut+doublestroke_dist,
+ b,1/2,inner_jut)(dark); % left serif
+ nodish_serif(11',12,e,1/3,outer_jut,
+ f,0,inner_jut+doublestroke_dist)(dark); % stroke serif
+ nodish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); % right serif
+ z13=whatever[z11,z12]; x14=x2;
+ y13=y14=y12-slab;
+ fill z12--z2--z14--z13--cycle; fi % top closure
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter h";
+beginchar("h",11.25u#+doublestroke_thin#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos11(doublestroke_thin,0); pos12(doublestroke_thin,0);
+lft x1l=hround(2.5u-.5stem); x1l=x2l;
+lft x11l-rt x1r=lft x12l-rt x2r=doublestroke_dist; x3=w-x1;
+top y1=top y11=h; bot y2=bot y12=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z11e--z12e; % stroke
+h_stroke(12,a,3,4); % arch and right stem
+if serifs: serif(1,2,b,1/3,-jut); % upper left serif
+ serif(11,12,i,0,-jut-doublestroke_dist); % upper stroke serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x12r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x12r+jut+.5u+1=lft x4l-inner_jut; fi
+ nodish_serif(2,1,c,1/3,jut,d,0,jut+doublestroke_dist); % lower left serif
+ nodish_serif(12,11,g,0,jut+doublestroke_dist,h,1/3,jut); % lower left stroke serif
+ nodish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter k";
+beginchar("k",10.75u#+doublestroke_thin#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=stem2=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0);
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+top y1=top y21=h; bot y2=bot y22=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+lft x21l-rt x1r=lft x22l-rt x2r=doublestroke_dist;
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x21; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x21);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+filldraw stroke z1e--z2e; % stem
+filldraw stroke z21e--z22e; % stroke
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ serif(1,2,a,1/3,-jut); % upper stem serif
+ serif(21,22,j,0,-jut-doublestroke_dist); % upper stroke serif
+ nodish_serif(2,1,b,1/3,jut,c,0,inner_jut+doublestroke_dist); % lower stem serif
+ nodish_serif(22,21,h,0,jut+doublestroke_dist,i,1/3,inner_jut); % lower stroke serif
+ nodish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ nodish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/doublestroke/dsromu.mf b/Master/texmf-dist/fonts/source/public/doublestroke/dsromu.mf
new file mode 100644
index 00000000000..cc9c234d9e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/doublestroke/dsromu.mf
@@ -0,0 +1,982 @@
+% Double Stroke Roman upper case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% This file was renamed from {\tt romanu.mf} to {\tt dsromu.mf}
+% and modified for double stroke characters by Olaf Kummer, 1995.
+% The shapes of the letters A, V, and W were improved by Olaf Kummer, 1996.
+% Version 1.0
+
+% Character codes \0101 through \0132 are generated.
+
+cmchar "The letter A";
+beginchar("A",14.5u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x12r=l+letter_fit+outer_jut+.5u; y1=y4=y12=0;
+x2-x1=x12-x11; x3r=x2r+apex_corr; y2=y3=y11=h+0.4apex_o;
+alpha=diag_ratio(2,left_stem+doublestroke_dist+doublestroke_thin,
+ y2-y1,x12r-x1l-apex_corr);
+x3r+alpha*doublestroke_dist=x11l; x4r+alpha*doublestroke_dist=x12l;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos11(alpha*doublestroke_thin,0); penpos12(alpha*doublestroke_thin,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+fill stroke z11e--z12e; % stroke
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ prime_points_inside(12,11);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,0,outer_jut+doublestroke_dist);
+ dish_serif(12',11,e,0,inner_jut+doublestroke_dist,f,1/3,outer_jut); % right serif
+ z13=whatever[z11,z12]; x14=x2;
+ y13=y14=y11-slab;
+ fill z11--z3--z14--z13--cycle; fi % top closure
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter B";
+beginchar("B",13.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+lft x21l=lft x22l=rt x1r+doublestroke_dist; y21=y1; y22=y2;
+filldraw stroke z21e--z22e; % stroke
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z21; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z22; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x21; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,0,.5cap_jut+doublestroke_dist); % upper serif
+ nodish_serif(21,22,e,0,cap_jut+doublestroke_dist,f,1/3,.5cap_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,0,.5cap_jut+doublestroke_dist); % lower serif
+ nodish_serif(22,21,g,0,cap_jut+doublestroke_dist,h,1/3,.5cap_jut); fi % lower stroke serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The letter C";
+if serifs: beginchar("C",13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ curve_stroke(s,rt x3l+doublestroke_curvedist,doublestroke_thin,
+ z1r{x2-x1,10(y2-y1)}...pulled_arc.r(2,3),
+ pulled_arc.r(3,4)...{up}z5r); % stroke
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar("C",11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+ curve_stroke(s,rt x3l+doublestroke_curvedist,doublestroke_thin,
+ rterm.r(2,1,right,.9,4) & super_arc.r(2,3),
+ super_arc.l(3,4) & term.l(4,5,right,.8,4)); fi % stroke
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The letter D";
+beginchar("D",14u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos11(doublestroke_thin-tiny,0); penpos12(doublestroke_thin-tiny,0);
+lft x11l=lft x12l=rt x1r+doublestroke_dist; y11=y1; y12=y2;
+filldraw stroke z11e--z12e; % stroke
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z11; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z12; x4=x6=.53w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,0,.5cap_jut); % upper serif
+ nodish_serif(11,12,e,0,cap_jut,f,1/3,.5cap_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,0,.5cap_jut); % lower serif
+ nodish_serif(12,11,g,0,cap_jut,h,1/3,.5cap_jut); fi % lower stroke serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter E";
+beginchar("E",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+lft x21l=lft x22l=rt x1r+doublestroke_dist; y21=y1; y22=y2;
+filldraw stroke z21e--z22e; % stroke
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x21; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y22,y21]+.5cap_bar); x5=x21;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x22; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,0,.5cap_jut+doublestroke_dist); % upper serif
+ nodish_serif(21,22,i,0,cap_jut+doublestroke_dist,j,1/3,.5cap_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,0,.5cap_jut+doublestroke_dist); % lower serif
+ nodish_serif(22,21,k,0,cap_jut+doublestroke_dist,l,1/3,.5cap_jut); fi % lower stroke serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter F";
+beginchar("F",12.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+lft x21l=lft x22l=rt x1r+doublestroke_dist; y21=y1; y22=y2;
+filldraw stroke z21e--z22e; % stroke
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x21; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y22,y21]+.5cap_bar); x5=x21;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,0,.5cap_jut+doublestroke_dist); % upper serif
+ nodish_serif(21,22,i,0,cap_jut+doublestroke_dist,j,1/3,.5cap_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,0,1.25cap_jut+doublestroke_dist); % lower serif
+ nodish_serif(22,21,k,0,cap_jut+doublestroke_dist,l,1/3,1.25cap_jut); fi % lower stroke serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter G";
+if serifs: beginchar("G",14u#,cap_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ curve_stroke(s,rt x3l+doublestroke_curvedist,doublestroke_thin,
+ z1r{x2-x1,10(y2-y1)}...pulled_arc.r(2,3),
+ pulled_arc.r(3,4)...{up}z5r); % stroke
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ nodish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar("G",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ curve_stroke(s,rt x3l+doublestroke_curvedist,doublestroke_thin,
+ rterm.r(2,1,right,.9,4) & super_arc.r(2,3),
+ super_arc.l(3,4) & term.l(4,5,right,1,4)); % stroke
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter H";
+beginchar("H",14.5u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+lft x21l=lft x22l=rt x1r+doublestroke_dist; y21=y1; y22=y2;
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z21e--z22e; % stroke
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x21; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x21r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x21r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ nodish_serif(1,2,a,1/3,cap_jut,b,0,inner_jut+doublestroke_dist); % upper left serif
+ nodish_serif(21,22,i,0,cap_jut+doublestroke_dist,j,1/3,inner_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,0,inner_jut+doublestroke_dist); % lower left serif
+ nodish_serif(22,21,k,0,cap_jut+doublestroke_dist,l,1/3,inner_jut); % lower stroke serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter I";
+beginchar("I",max(7.5u#,4u#+2cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos11(doublestroke_thin,0); pos12(doublestroke_thin,0);
+lft x1l=lft x2l=w-rt x11r;
+top y1=h; bot y2=0;
+y11=y1; lft x11l=rt x1r+doublestroke_dist;
+y12=y2; lft x12l=rt x2r+doublestroke_dist;
+filldraw stroke z1e--z2e; % stem
+filldraw stroke z11e--z12e; % stroke
+if serifs: nodish_serif(1,2,a,1/3,1.05cap_jut,b,0,1.05cap_jut+doublestroke_dist); % upper serif
+ nodish_serif(11,12,e,0,1.05cap_jut+doublestroke_dist,f,1/3,1.05cap_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,1.05cap_jut,d,0,1.05cap_jut+doublestroke_dist); % lower serif
+ nodish_serif(12,11,g,0,1.05cap_jut+doublestroke_dist,h,1/3,1.05cap_jut); fi % lower stroke serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "The letter J";
+beginchar("J",10.5u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos11(doublestroke_thin,0); pos12(doublestroke_thin,0);
+top y1=h; rt x11r=hround(w-2u); x2=x1; y2=.21h;
+y11=y1; lft x11l=rt x1r+doublestroke_dist;
+y12=y2; lft x12l=rt x2r+doublestroke_dist;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos13(vair,-90); y13=y3; lft x13l=rt x3r+doublestroke_dist;
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ filldraw stroke z11e--z12e&super_arc.e(12,13)&z13e--z3e; % stroke
+ nodish_serif(1,2,a,1/3,1.3cap_jut,b,0,.75cap_jut+doublestroke_dist); % serif
+ nodish_serif(11,12,c,0,1.3cap_jut+doublestroke_dist,d,1/3,.75cap_jut); % stroke serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ filldraw stroke z11e--z12e; % stroke stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); % arc and terminal
+ pos13(doublestroke_thin,0); z13=z12;
+ filldraw stroke z13e{down}....{left}z4e; fi % stroke arc
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter K";
+beginchar("K",14.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+lft x21l=lft x22l=rt x1r+doublestroke_dist; y21=y1; y22=y2;
+filldraw stroke z21e--z22e; % stroke
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x21; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y21-y6,x6r-x21);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z21-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z21-z6 of currentpen+whatever*(z21-z6);
+z6'l=z6l+penoffset z6-z21 of currentpen+whatever*(z21-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x22r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x22r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ nodish_serif(1,2,a,1/3,cap_jut,b,0,cap_jut+doublestroke_dist); % upper stem serif
+ nodish_serif(21,22,i,0,cap_jut+doublestroke_dist,j,1/3,cap_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,0,cap_jut+doublestroke_dist); % lower stem serif
+ nodish_serif(22,21,k,0,cap_jut+doublestroke_dist,l,1/3,cap_jut); % lower stroke serif
+ nodish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ nodish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter L";
+beginchar("L",12u#-width_adj#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+lft x21l=lft x22l=rt x1r+doublestroke_dist; y21=y1; y22=y2;
+filldraw stroke z21e--z22e; % stroke
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x22; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,0,1.25cap_jut); % upper serif
+ nodish_serif(21,22,f,0,cap_jut,g,1/3,1.25cap_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,0,.5cap_jut); % lower serif
+ nodish_serif(22,21,h,0,cap_jut,j,1/3,.5cap_jut); fi % lower stroke serif
+math_fit(0,u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The letter M";
+beginchar("M",17.5u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+pos11(doublestroke_thick,0); pos12(doublestroke_thick,0);
+x1=x2; x3=x4;
+top y1=top y3=h; bot y2=bot y4=0;
+lft x1l=rt x11r+doublestroke_dist;
+x11l=w-x3r; x12=x11; y11=y1; y12=y2;
+rt x3r=hround min(w-2u,w-3u+.5stem4);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z11e--z12e; % stroke
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,0,-cap_jut-doublestroke_dist); % upper left serif
+ serif(11,12,g,1/3,-cap_jut); % upper stroke serif
+ nodish_serif(2,1,b,0,cap_jut+doublestroke_dist,c,1/3,cap_jut)(dark); % lower left serif
+ nodish_serif(12,11,h,1/3,cap_jut,i,0,cap_jut+doublestroke_dist)(dark); % lower stroke serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ nodish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "The letter N";
+beginchar("N",14.5u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pos11(doublestroke_thick,0); pos12(doublestroke_thick,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4;
+lft x1l=rt x11r+doublestroke_dist;
+x11l=w-x3r; x12=x11;
+y11=y1; y12=y2;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+filldraw stroke z11e--z12e; % stroke
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,0,-cap_jut-doublestroke_dist); % upper left serif
+ serif(11,12,g,1/3,-cap_jut); % upper stroke serif
+ else: serif(5,6,a,0,-cap_jut-doublestroke_dist); % upper left serif
+ serif(11,12,g,1/3,-cap_jut); fi % upper stroke serif
+ nodish_serif(2,1,b,0,cap_jut+doublestroke_dist,c,1/3,cap_jut)(dark); % lower left serif
+ nodish_serif(12,11,h,1/3,cap_jut,i,0,cap_jut+doublestroke_dist)(dark); % lower stroke serif
+ nodish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+cmchar "The letter O";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+curve_stroke(s,rt x2l+doublestroke_curvedist,doublestroke_thin,
+ pulled_super_arc.r(4,1)(.5superpull)
+ & pulled_super_arc.r(1,2)(.5superpull),
+ pulled_super_arc.r(2,3)(.5superpull)
+ & pulled_super_arc.r(3,4)(.5superpull)); % stroke
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The letter P";
+beginchar("P",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem-tiny,0); penpos2(cap_stem-tiny,0);
+lft x1l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0; x1l=x2l;
+filldraw stroke z1e--z2e; % stem
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+lft x21l=lft x22l=rt x1r+doublestroke_dist; y21=y1; y22=y2;
+filldraw stroke z21e--z22e; % stroke
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z21; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x22; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,0,.5cap_jut+doublestroke_dist); % upper serif
+ nodish_serif(21,22,e,0,cap_jut+doublestroke_dist,f,1/3,.5cap_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,0,cap_jut+doublestroke_dist); % lower stroke serif
+ nodish_serif(22,21,g,0,cap_jut+doublestroke_dist,h,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter Q";
+beginchar("Q",14u#-width_adj#,cap_height#,comma_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=cap_curve-hround stem_corr;
+penpos1(vair',90); penpos3(vair',-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"Q"| like |"O"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+curve_stroke(s,rt x2l+doublestroke_curvedist,doublestroke_thin,
+ pulled_super_arc.r(4,1)(.5superpull)
+ & pulled_super_arc.r(1,2)(.5superpull),
+ pulled_super_arc.r(2,3)(.5superpull)
+ & pulled_super_arc.r(3,4)(.5superpull)); % stroke
+pickup tiny.nib;
+if hefty: penpos5(1.2(.5[cap_bar,light_curve]),0); penpos6(1.2light_curve,0);
+ x5=.5w; x6r=hround(w-1.5u);
+ y5=vround .28h; y6=-d;
+ fill diag_end(6r,5r,.25,1,5l,6l)--diag_end(5l,6l,.5,1,6r,5r)--cycle; % tail
+else: pos3'(vair,270); pos5(vair,180); pos6(vair,90);
+ pos7(cap_curve,85); penpos8(eps,180);
+ z3'=z3; x6=x3; top y6r=vround(.2h+.5vair);
+ lft x5r=hround(.5w-1.25u-.5vair); y5=.5[y3,y6];
+ bot y7l=-d; x7l=2/3[x6,x8]; y8=0; rt x8=hround(x4r+.1u);
+ filldraw stroke z3'e{left}...z5e{up}...z6e{right}
+ ..z7e{right}...z8e{up}; fi % tail
+math_fit(-.3cap_height#*slant-.5u#,ic#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter R";
+beginchar("R",if serifs: 13u#+.5max(2u#,cap_curve#)
+ else:13.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+lft x21l=lft x22l=rt x1r+doublestroke_dist; y21=y1; y22=y2;
+filldraw stroke z21e--z22e; % stroke
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z21; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x22; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,0,.5cap_jut+doublestroke_dist); % upper serif
+ nodish_serif(21,22,e,0,cap_jut+doublestroke_dist,f,1/3,.5cap_jut); % upper stroke serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,0,cap_jut+doublestroke_dist); % lower serif
+ nodish_serif(22,21,g,0,cap_jut+doublestroke_dist,h,1/3,cap_jut); % lower stroke serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter S";
+beginchar("S",10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ if rt x3r+2doublestroke_curvedist+doublestroke_thin>lft x6l:
+ curve_stroke(s,x0-0.5doublestroke_thin,doublestroke_thin,
+ z1l{x2-x1,10(y2-y1)}....{left}z2l & super_arc.l(2,3),
+ super_arc.r(6,7) & z7r{left}....{up}z8r); % stroke
+ else:
+ curve_stroke(s,rt x3r+doublestroke_curvedist,doublestroke_thin,
+ z1l{x2-x1,10(y2-y1)}....{left}z2l & super_arc.l(2,3),
+ z3l{down}..z4l---z5l..z6l{down}); % left stroke
+ curve_stroke(t,lft x6l-doublestroke_curvedist,-doublestroke_thin,
+ super_arc.r(6,7) & z7r{left}....{up}z8r,
+ z3r{down}..z4r---z5r..z6r{down}); % right stroke
+ fi
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); % lower arc and terminal
+ if rt x3r+2doublestroke_curvedist+doublestroke_thin>lft x6l:
+ curve_stroke(s,x0-0.5doublestroke_thin,doublestroke_thin,
+ (reverse(term.l(2,1,right,.9,4))) & super_arc.l(2,3),
+ super_arc.r(6,7) & term.r(7,8,left,1,4)); % stroke
+ else:
+ curve_stroke(s,rt x3r+doublestroke_curvedist,doublestroke_thin,
+ (reverse(term.l(2,1,right,.9,4))) & super_arc.l(2,3),
+ z3l{down}..z4l---z5l..z6l{down}); % left stroke
+ curve_stroke(t,lft x6l-doublestroke_curvedist,-doublestroke_thin,
+ super_arc.r(6,7) & term.r(7,8,left,1,4),
+ z3r{down}..z4r---z5r..z6r{down}); fi % right stroke
+ fi
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "The letter T";
+beginchar("T",13.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos21(doublestroke_thin,0); pos22(doublestroke_thin,0);
+lft x1l=lft x2l=w-rt x21r;
+top y1=h; bot y2=0;
+lft x21l=lft x22l=rt x1r+doublestroke_dist; y21=y1; y22=y2;
+filldraw stroke z1e--z2e; % stem
+filldraw stroke z21e--z22e; % stroke
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+pos6(slab,90); top y6r=h; x6=x21;
+arm(6,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: nodish_serif(2,1,c,1/3,1.05cap_jut,
+ d,0,1.05cap_jut+doublestroke_dist); % lower serif
+ nodish_serif(22,21,g,0,1.05cap_jut+doublestroke_dist,
+ h,1/3,1.05cap_jut); % lower stroke serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,
+ b,0,.5cap_jut+doublestroke_dist); % upper bracketing
+ nodish_serif(21,22,i,0,.5cap_jut+doublestroke_dist,
+ j,1/3,.5cap_jut); fi % upper stroke bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter U";
+beginchar("U",14u#+.5width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+z21=0.5[z21l,z21r]; z22=0.5[z22l,z22r]; z23=0.5[z23l,z23r];
+y21l=y21r=y1; lft x22l=lft x21l=rt x1r+doublestroke_dist;
+y22r=y22l=-h; rt x22r=rt x21r=lft x22l+doublestroke_thin;
+z23l=(pulled_arc.r(2',3) & pulled_arc.r(3,4))intersectionpoint(z21l..z22l);
+z23r=(pulled_arc.r(2',3) & pulled_arc.r(3,4))intersectionpoint(z21r..z22r);
+filldraw stroke z21e--z23e; % stroke
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,0,cap_jut+doublestroke_dist); % left serif
+ nodish_serif(21,23,e,0,cap_jut+doublestroke_dist,f,1/3,cap_jut); % stroke serif
+ nodish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter V";
+beginchar("V",14u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u;
+y1=y4=y11=h; y2=y3=y12=-0.4*apex_o;
+if doublestroke_twist:
+ alpha=diag_ratio(2,left_stem,y11-y12,x4r-x1l);
+else:
+ alpha=diag_ratio(2,left_stem+doublestroke_dist+right_stem,
+ y11-y12,x4r-x1l-apex_corr);
+fi
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos11(alpha*doublestroke_thin,0); penpos12(alpha*doublestroke_thin,0);
+x12-x11=x4-x3;
+if doublestroke_twist:
+ x2r=x3r;
+else:
+ x12l+apex_corr=x3l;
+fi
+x1r+alpha*doublestroke_dist=x11l; x2r+alpha*doublestroke_dist=x12l;
+z0=whatever[z11r,z12r]=whatever[z3l,z4l];
+if doublestroke_twist:
+ z15=whatever[z11l,z12l]=whatever[z3l,z4l];
+ z16=whatever[z1r,z2r]=whatever[z3l,z4l];
+ fill z16--diag_end(16,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,16)--cycle; % stroke and right diagonal
+ fill z15--diag_end(15,11l,1,1,11r,0)
+ --z0--cycle; % left diagonal
+else:
+ fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,12l,11l)
+ --diag_end(12l,11l,1,1,11r,0)--cycle; % left and right diagonals
+ fill diag_end(2l,1l,1,1,1r,2r)
+ --diag_end(1r,2r,1,1,2l,1l)--cycle; % stroke
+fi
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ nodish_serif(1',2,a,1/3,outer_jut,
+ b,0,inner_jut+alpha*doublestroke_dist); % left serif
+ nodish_serif(11',12,e,0,outer_jut+alpha*doublestroke_dist,
+ f,1/2,inner_jut); % left stroke serif
+ nodish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+ if not doublestroke_twist:
+ z13=whatever[z11,z12]; z14=whatever[z1,z2];
+ y13=y14=y12+slab;
+ fill z12--z2--z14--z13--cycle; fi % bottom closure
+ fi
+math_fit(.75u#-cap_height#*slant,ic#-4u#); penlabels(0,1,2,3,4); endchar;
+
+cmchar "The letter W";
+beginchar("W",19u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+y1=y8=y11=h; y2=y3=y12=-0.4*apex_o; y6=y7=-if doublestroke_twist:0.4 fi apex_o;
+if doublestroke_twist:
+ alpha=diag_ratio(4,stem1,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+else:
+ alpha=diag_ratio(4,stem1+stem2-stem3+stem4+doublestroke_dist,
+ y1-y2,x8r-x1l+mid_corr-2apex_corr);
+fi
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+penpos11(alpha*doublestroke_thin,0); penpos12(alpha*doublestroke_thin,0);
+x11l=x1r+alpha*doublestroke_dist; x12l=x2r+alpha*doublestroke_dist;
+x12-x11=x4-x3=x6-x5=x8-x7;
+if doublestroke_twist:
+ x2r=x3r; x6r=x7r;
+else:
+ x12l+apex_corr=x3l; x6l+apex_corr=x7l;
+fi
+y4=y5=if monospace: vround .6 fi\\ h;
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+if doublestroke_twist:
+ z23=whatever[z11r,z12r]=whatever[z3l,z4l];
+ z15=whatever[z11l,z12l]=whatever[z3l,z4l];
+ z16=whatever[z1r,z2r]=whatever[z3l,z4l];
+ fill diag_end(1l,2l,1,1,3r,4r){z4-z3}...z45&z45
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...z67&z67...{z5-z6}special_diag_end(6,5,4,3){z3-z4}...z16&z16
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % Stroke and diagonals
+ fill z15--diag_end(15,11l,1,1,11r,23)
+ --z23--cycle; % left stem
+else:
+ z23=whatever[z11r,z12r]=whatever[z3l,z4l];
+ fill diag_end(11l,12l,1,1,3r,4r){z4-z3}...z45&z45
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...z67&z67...{z5-z6}special_diag_end(6,5,4,3){z3-z4}...z23&z23
+ ...{z11-z12}diag_end(12r,11r,1,1,11l,12l)--cycle; % Stroke and diagonals
+ fill diag_end(2r,1r,1,1,1l,2l)
+ --diag_end(1l,2l,1,1,2r,1r)--cycle; % left stem
+fi
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ prime_points_inside(11,12);
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x11'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x11'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+1.1cap_jut+.5u+1<=lft x8'l-1.21cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ nodish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ nodish_serif(1',2,a,1/3,outer_jut,
+ b,0,inner_jut1+alpha*doublestroke_dist); % left serif
+ nodish_serif(11',12,g,0,outer_jut+alpha*doublestroke_dist,
+ h,1/2,inner_jut1); % stroke serif
+ nodish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); % right serif
+ if not doublestroke_twist:
+ z13=whatever[z11,z12]; z14=whatever[z1,z2];
+ y13=y14=y12+slab;
+ fill z12--z2--z14--z13--cycle; fi % bottom closure
+ fi
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter X";
+beginchar("X",15u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x2r=r-letter_fit-1u-outer_jut-xjut;
+x3l=l+letter_fit+.75u+outer_jut+xjut;
+y1=y2=h; y3=y4=0;
+y21=y1; y22=y4;
+x1l=l+letter_fit+.25u+outer_jut; x22r=r-letter_fit-.25u-outer_jut;
+alpha1=diag_ratio(1,stem1+doublestroke_dist,h,x22r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos4(alpha1*stem1,0);
+penpos21(alpha1*doublestroke_thin,0); penpos22(alpha1*doublestroke_thin,0);
+penpos3(alpha2*stem2,0); penpos2(alpha2*stem2,0);
+x21l=x1r+alpha1*doublestroke_dist; x4r+alpha1*doublestroke_dist=x22l;
+z31l=whatever[z2l,z3l]=whatever[z21,z22];
+z31r=whatever[z2r,z3r]=whatever[z21,z22];
+z32l=whatever[z2l,z3l]=whatever[z1,z4];
+z32r=whatever[z2r,z3r]=whatever[z1,z4];
+fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+fill diag_end(22r,21r,.5,1,21l,22l)
+ --diag_end(21l,22l,.5,1,22r,21r)--cycle; % stroke diagonal
+fill diag_end(2l,3l,.5,1,3r,2r)--z32r--z32l--cycle; % right diagonal, lower part
+fill diag_end(3r,2r,.5,1,2l,3l)--z31l--z31r--cycle; % right diagonal, upper part
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ prime_points_inside(21,22); prime_points_inside(22,21);
+ if rt x21'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x21'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x22'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x22'l-inner_jut2-xjut; fi
+ nodish_serif(1',4,a,1/3,outer_jut,
+ b,0,inner_jut1+doublestroke_dist); % upper left serif
+ nodish_serif(21',22,i,0,outer_jut+doublestroke_dist,
+ j,2/3,inner_jut1); % upper left stroke serif
+ nodish_serif(4',1,c,2/3,inner_jut2,
+ d,0,outer_jut+doublestroke_dist); % lower right serif
+ nodish_serif(22',21,k,0,inner_jut2+doublestroke_dist,
+ l,1/3,outer_jut); % lower right stroke serif
+ nodish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ nodish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The letter Y";
+beginchar("Y",14u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut;
+penpos6(left_stem,0); penpos16(doublestroke_thin,0);
+x6l=w-x16r; x6r+doublestroke_dist=x16l;
+x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+penpos15(doublestroke_thin,0); x15=x16; y16=0; y15l=.4h; y1l=h;
+alpha=diag_ratio(1,left_stem+doublestroke_dist,y1l-y15l,x15l-x1l);
+penpos1(alpha*left_stem,0); penpos11(alpha*doublestroke_thin,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos12(alpha*doublestroke_thin,0);
+x1r+alpha*doublestroke_dist=x11l;
+x3r=x15r; x12l=x15l;
+y6=y16; y1=y4=y11; y3=y12=y15;
+z1l-z2l=whatever*(z11-z12); z6l-z2l=whatever*(z15-z16);
+z1r-z2r=whatever*(z11-z12); z6r-z2r=whatever*(z15-z16);
+z2=0.5[z2l,z2r];
+z0=whatever[z11r,z12r]=whatever[z3l,z4l];
+if y0>y12+cap_notch_cut: y0:=y12+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z15r
+ --diag_end(15r,16r,1,1,16l,15l)--z15l--diag_end(12l,11l,1,1,11r,12r){z12-z11}
+ ...{down}z0+.5left--cycle; % diagonals and stroke
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z15r
+ --diag_end(15r,16r,1,1,16l,15l)--z15l
+ --diag_end(12l,11l,1,1,11r,0)--cycle; fi % diagonal and stroke
+fill z2r--diag_end(2r,6r,1,1,6l,2l)--z2l
+ --diag_end(2l,1l,1,1,1r,2r)--cycle; % stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,2);
+ prime_points_inside(11,12); prime_points_inside(16,15);
+ if rt x11'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ nodish_serif(1',2,a,1/3,outer_jut,b,0,inner_jut+doublestroke_dist); % upper left serif
+ nodish_serif(11',12,g,0,outer_jut+doublestroke_dist,h,1/2,inner_jut); % upper stroke serif
+ nodish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ nodish_serif(6',2,e,1/3,cap_jut,f,0,cap_jut+doublestroke_dist); % lower serif
+ nodish_serif(16',15,i,0,cap_jut+doublestroke_dist,j,1/3,cap_jut); fi % lower stroke serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter Z";
+beginchar("Z",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+y11=y1; y12=y2; y13=y3; y14=y4;
+numeric alpha; alpha=diag_ratio(1,
+ z_stem-tiny+doublestroke_dist+doublestroke_thin,y2-y3,x2r-x3l);
+penpos1(alpha*(doublestroke_thin-tiny),0); penpos2(alpha*(doublestroke_thin-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+penpos11(alpha*(z_stem-tiny),0); penpos12(alpha*(z_stem-tiny),0);
+penpos13(alpha*(doublestroke_thin-tiny),0); penpos14(alpha*(doublestroke_thin-tiny),0);
+rt x11r=lft x1l-alpha*doublestroke_dist; rt x12r=lft x2l-alpha*doublestroke_dist;
+lft x13l=rt x3r+alpha*doublestroke_dist; lft x14l=rt x4r+alpha*doublestroke_dist;
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z11l--z12l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z12r-delta..rt z12r---rt z11r..top z11r
+ ---cycle; % diagonal
+fill top lft z1l--z2l+delta---z13l+delta..lft z13l---lft z14l..bot z14l
+ ---bot rt z14r--z13r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/doublestroke/dsss10.mf b/Master/texmf-dist/fonts/source/public/doublestroke/dsss10.mf
new file mode 100644
index 00000000000..c48409e26b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/doublestroke/dsss10.mf
@@ -0,0 +1,75 @@
+% Double Stroke Computer Modern Sans Serif 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate dsrom % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/doublestroke/dsss12.mf b/Master/texmf-dist/fonts/source/public/doublestroke/dsss12.mf
new file mode 100644
index 00000000000..742827ee964
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/doublestroke/dsss12.mf
@@ -0,0 +1,75 @@
+% Double Stroke Computer Modern Sans Serif 12 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="DSSS"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate dsrom % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/doublestroke/dsss8.mf b/Master/texmf-dist/fonts/source/public/doublestroke/dsss8.mf
new file mode 100644
index 00000000000..f512d193bc7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/doublestroke/dsss8.mf
@@ -0,0 +1,75 @@
+% Double Stroke Computer Modern Sans Serif 8 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="DSSS"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate dsrom % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/duerer/cdb10.mf b/Master/texmf-dist/fonts/source/public/duerer/cdb10.mf
new file mode 100644
index 00000000000..7166989c103
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/duerer/cdb10.mf
@@ -0,0 +1,69 @@
+% This is CDB10.MF, Computer Durer Roman BOLD at 10 point design size.
+% Parameters from CDR10.MF are used as much as possible.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CDB"; font_size 10pt#; %%
+
+u#:=23/36pt#; % unit width
+hstretch:=1.1;
+vstretch:=1;
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+bar_height#:=87/36pt#;
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+% Durer's letters are based on units derived from the side of a square.
+side#:=cap_height#;
+thickfudge:=.15; thinfudge:=.4;
+thick#:=thickfudge*side#; % thickness of all thick limbs in Roman font
+thin#:=thinfudge*thick#; % thinness of all thin limbs
+eta:=(2-sqrt2); % darkness for serifs; $\eta \approx 0.2929$
+serif_darkness:=eta;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; %% diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+cap_stem#:=thick#; % thickness of majuscule stems
+stem#:=thick#;
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=thick#; %% vertical distance from serif base to tangent
+jut#:=.5thick#; %% protrusion of lowercase serifs
+cap_jut#:=.75thick#; %% protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+slab#:=thin#; %% serif and arm thickness
+dslab#=thin#; %%slab value used in Durer fonts
+
+hair#:=vair#:=thin#;
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=0pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+boolean informal;
+informal:=false; % generating informal font?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+boolean whole_font; whole_font:=false;
+
+generate dtitle %% switch to the driver file---Durer title
diff --git a/Master/texmf-dist/fonts/source/public/duerer/cdi10.mf b/Master/texmf-dist/fonts/source/public/duerer/cdi10.mf
new file mode 100644
index 00000000000..512872854b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/duerer/cdi10.mf
@@ -0,0 +1,69 @@
+% This is CDI10.MF, Computer Durer Roman at 10 point design size.
+% Parameters from CDR10.MF are used as much as possible.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CDI"; font_size 10pt#; %%
+
+u#:=22/36pt#; % unit width
+hstretch:=1;
+vstretch:=1.2;
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+bar_height#:=87/36pt#;
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+% Durer's letters are based on units derived from the side of a square.
+side#:=cap_height#;
+thickfudge:=.13; thinfudge:=.4;
+thick#:=thickfudge*side#; % thickness of all thick limbs in Roman font
+thin#:=thinfudge*thick#; % thinness of all thin limbs
+eta:=.9(2-sqrt2); % darkness for serifs
+serif_darkness:=eta;
+
+crisp#:=10/36pt#; % diameter of serif corners
+tiny#:=10/36pt#; %% diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+cap_stem#:=thick#; % thickness of majuscule stems
+stem#:=thick#;
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=1.2thick#; %% vertical distance from serif base to tangent
+jut#:=thick#; %% protrusion of lowercase serifs
+cap_jut#:=1.0thick#; %% protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+slab#:=thin#; %% serif and arm thickness
+dslab#=thin#; %%slab value used in Durer fonts
+
+hair#:=vair#:=thin#;
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=0pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+boolean informal;
+informal:=true; % generating informal font?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+boolean whole_font; whole_font=false;
+
+generate dtitle %% switch to the driver file---Durer title
diff --git a/Master/texmf-dist/fonts/source/public/duerer/cdr10.mf b/Master/texmf-dist/fonts/source/public/duerer/cdr10.mf
new file mode 100644
index 00000000000..125951b358b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/duerer/cdr10.mf
@@ -0,0 +1,70 @@
+% This is CDR10.MF, Computer Durer Roman at 10 point design size.
+% Parameters from CMR10.MF are used as much as possible.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CDR"; font_size 10pt#; %%
+
+u#:=20/36pt#; % unit width
+hstretch:=1; % horizontal stretching factors; in lieu of u
+vstretch:=1; % vertical stretching factor
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+bar_height#:=87/36pt#;
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+% Durer's letters are based on units derived from the side of a square.
+side#:=cap_height#;
+thickfudge:=1/9; thinfudge:=1/3;
+thick#:=thickfudge*side#; % thickness of all thick limbs in Roman font
+thin#:=thinfudge*thick#; % thinness of all thin limbs
+eta:=2-sqrt2; % darkness for serifs; $\eta \approx 0.58$
+serif_darkness:=eta;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; %% diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+cap_stem#:=thick#; % thickness of majuscule stems
+stem#:=thick#;
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=thick#; %% vertical distance from serif base to tangent
+jut#:=thick#; %% protrusion of lowercase serifs
+cap_jut#:=thick#; %% protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+slab#:=eps*1pt#; %% serif and arm thickness
+dslab#=0; %%slab value used in Durer fonts
+
+hair#:=vair#:=thin#;
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=0pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+boolean informal;
+informal:=false; % generating informal font?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+boolean whole_font; % try generating a complete font?
+whole_font:=false;
+
+generate dtitle %% switch to the driver file---Durer title
diff --git a/Master/texmf-dist/fonts/source/public/duerer/cdsl10.mf b/Master/texmf-dist/fonts/source/public/duerer/cdsl10.mf
new file mode 100644
index 00000000000..feb4b21c944
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/duerer/cdsl10.mf
@@ -0,0 +1,70 @@
+% This is CDR10.MF, Computer Durer Roman at 10 point design size.
+% Parameters from CMR10.MF are used as much as possible.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CDR"; font_size 10pt#; %%
+
+u#:=20/36pt#; % unit width
+hstretch:=1; % horizontal stretching factors; in lieu of u
+vstretch:=1; % vertical stretching factor
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+bar_height#:=87/36pt#;
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+% Durer's letters are based on units derived from the side of a square.
+side#:=cap_height#;
+thickfudge:=1/9; thinfudge:=1/3;
+thick#:=thickfudge*side#; % thickness of all thick limbs in Roman font
+thin#:=thinfudge*thick#; % thinness of all thin limbs
+eta:=2-sqrt2; % darkness for serifs; $\eta \approx 0.58$
+serif_darkness:=eta;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; %% diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+cap_stem#:=thick#; % thickness of majuscule stems
+stem#:=thick#;
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=thick#; %% vertical distance from serif base to tangent
+jut#:=thick#; %% protrusion of lowercase serifs
+cap_jut#:=thick#; %% protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+slab#:=eps*1pt#; %% serif and arm thickness
+dslab#=0; %%slab value used in Durer fonts
+
+hair#:=vair#:=thin#;
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=0pt#;
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+boolean informal;
+informal:=false; % generating informal font?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+boolean whole_font; % try generating a complete font?
+whole_font:=false;
+
+generate dtitle %% switch to the driver file---Durer title
diff --git a/Master/texmf-dist/fonts/source/public/duerer/cdss10.mf b/Master/texmf-dist/fonts/source/public/duerer/cdss10.mf
new file mode 100644
index 00000000000..7e2ebe5ab1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/duerer/cdss10.mf
@@ -0,0 +1,69 @@
+% This is CDSS10.MF, Computer Durer Sans Serif at 10 point design size.
+% Parameters from CDR10.MF are used as much as possible.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CDR"; font_size 10pt#; %%
+
+u#:=20/36pt#; % unit width
+hstretch:=1;
+vstretch:=1;
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+bar_height#:=87/36pt#;
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+% Durer's letters are based on units derived from the side of a square.
+side#:=cap_height#;
+thickfudge:=1/9; thinfudge:=1/2;
+thick#:=thickfudge*side#; % thickness of all thick limbs in Roman font
+thin#:=thinfudge*thick#; % thinness of all thin limbs
+eta:=(2-sqrt2); % darkness for serifs
+serif_darkness:=eta;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; %% diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+cap_stem#:=thick#; % thickness of majuscule stems
+stem#:=thick#;
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=thick#; %% vertical distance from serif base to tangent
+jut#:=0; %% protrusion of lowercase serifs
+cap_jut#:=0; %% protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+slab#:=eps*1pt#; %% serif and arm thickness
+dslab#=0pt#; %%slab value used in Durer fonts
+
+hair#:=vair#:=thin#;
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=0pt#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+boolean informal;
+informal:=false; % generating informal font?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+
+boolean whole_font; whole_font:=false;
+
+generate dtitle %% switch to the driver file---Durer title
diff --git a/Master/texmf-dist/fonts/source/public/duerer/cdtt10.mf b/Master/texmf-dist/fonts/source/public/duerer/cdtt10.mf
new file mode 100644
index 00000000000..5ea7336ebff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/duerer/cdtt10.mf
@@ -0,0 +1,69 @@
+% This is CDTT10.MF, Computer Durer Typewriter Type at 10 point design size.
+% Parameters from CDR10.MF are used as much as possible.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CDTT"; font_size 10pt#; %%
+
+u#:=21/36pt#; % unit width
+hstretch:=.9;
+vstretch:=1;
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+bar_height#:=110/36pt#;
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+% Durer's letters are based on units derived from the side of a square.
+side#:=.9cap_height#;
+thickfudge:=.14; thinfudge:=.9;
+thick#:=thickfudge*side#; % thickness of all thick limbs in Roman font
+thin#:=thinfudge*thick#; % thinness of all thin limbs
+eta:=2-sqrt2; % darkness for serifs
+serif_darkness:=0;
+
+crisp#:=20/36pt#; % diameter of serif corners
+tiny#:=20/36pt#; %% diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+cap_stem#:=thick#; % thickness of majuscule stems
+stem#:=thick#;
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0; %% vertical distance from serif base to tangent
+jut#:=thick#; %% protrusion of lowercase serifs
+cap_jut#:=thick#; %% protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+slab#:=thin#; %% serif and arm thickness
+dslab#=thin#; %%slab value used in Durer fonts
+
+hair#:=vair#:=thin#;
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=3thick#;
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.81; % factor applied to weights of heavy characters
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+
+boolean informal;
+informal:=false; % generating informal font?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+
+boolean whole_font; whole_font:=false;
+
+generate dtitle %% switch to the driver file---Durer title
diff --git a/Master/texmf-dist/fonts/source/public/duerer/dromani.mf b/Master/texmf-dist/fonts/source/public/duerer/dromani.mf
new file mode 100644
index 00000000000..e144c1a7378
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/duerer/dromani.mf
@@ -0,0 +1,643 @@
+%% Program files for CASUAL Computer Duerer fonts.
+%%
+join_radius:=.1pt;
+pair xeps, yeps; xeps=(eps,0); yeps=(0,eps);
+
+numeric P_width#; P_width#=cap_jut#+3thick#+1/4side#-1/2thin#;
+define_pixels(P_width);
+numeric t[]; % tensions
+t.l=1.25; t.r=1;
+
+numeric axis; axis=1;
+ % H.\ Zapf would not put the axis as oblique as did
+ % D\"urer. This quantity measures this obliqueness.
+ % $0\leq axix\leq1$; $axis=1$ corresponds to D\"urer
+ % $axis=2$ corresponds to vertical axis.
+numeric tail_corr; tail_corr=1/8;
+
+cmchar "The letter A (casual)";
+beginchar("A", 2u#+2cap_jut#+.8side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+top y3=top y2=h+apex_o;
+numeric alpha[]; alpha1=((h+cap_jut)++(w/2))/(h+cap_jut);
+penpos1(alpha1*thin,0); penpos2(alpha1*thin,0);
+penpos3(alpha1*thick,0); penpos4(alpha1*thick,0);
+lft x1l=cap_jut+.5u; rt x4r=w-x1l; bot y1=bot y4=0;
+x3r=x2l+apex_corr; hround(w/2)=.5[x2,x3];
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+pos0'(.6thick,0);z0'r=whatever[z4r,z3r]; z0'l=whatever[z1l,z2l];
+fill z0--diag_end(0,4l,1,1,4r,3r)--z0'r--z0'l--diag_end(2l,1l,1,1,1r,0)
+ --z0..cycle; % diagonals
+top y5r=top y6r=hround(h/2); top y5r-bot y5l=top y6r-bot y6l=thin;
+penpos5(whatever, angle(z2-z1)); penpos6(whatever, angle(z3-z4));
+z5=whatever[z1,z2]; z6=whatever[z3,z4];
+penstroke z5e--z6e; % bar line
+if serifs: cap_jut:=10/7 cap_jut; bracket:=10/7 bracket;
+ pickup tiny.nib; prime_points_inside(1,2); prime_points_inside(4,3);
+ numeric jut_factor; jut_factor:=7/8;
+ serif(1',2,a,eta,-cap_jut); serif(4',3,d,eta,cap_jut);
+ bracket:=jut_factor*bracket; serif(1',2,b,eta,jut_factor*cap_jut);
+ serif(4',3,c,eta,-jut_factor*cap_jut);
+ flourish(1,0',4,e,.65eta); fi
+penlabels(0,0',1,2,3,4,5,6); endchar;
+
+cmchar "The letter B (casual)";
+beginchar("B",u#+cap_jut#+4thick#+1/4 side#-thin#, cap_height#, 0);
+adjust_fit(cap_serif_fit#,0); pickup tiny.nib;
+pos1(thick,0); pos2(thick,0); lft x1l=lft x2l=.5u+cap_jut;
+ bot y2=0; top y1=h; filldraw stroke z1e--z2e; % vertical stem
+pos5(thick,0); pos7(thin,90);
+lft z3r=lft z2l; rt z3l=rt z2r+(0,thick+thin); z3=.5[z3r,z3l];
+ x4l=x3l+thick; y4r=y3r-o; top y4l=bot y4r+thin;
+ x4r=x4l+thick-1/2thin; z4=.5[z4l,z4r];
+y7l=h/2; x7l=x1; y6l=y7l; x6l=x4l; top y6r-bot y6l=thin; x6r=x4r; z6=.5[z6r,z6l];
+rt x5r=hround(w-.5u); y5=.5[y4r,y6r];
+pair where.r, where.l; where.l=down; where.r=(1,-.3);
+forsuffixes t=l,r: z4't=z4t+(thin,0); endfor z4'=.5[z4'r,z4'l];
+filldraw stroke z3e{where.e}...z4'e..pulled_arc.e(4',5)&
+ pulled_arc.e(5,6)..z6e--z7e; % bottom lobe
+pos7'(thin,-90); pos8(thick,0); pos10(thin,90);
+z7'=z7; z6'=z6; x6'r=x4r; x6'l=x4l; y6'r=y7'r; y6'l=y7'l;
+z10r=z1; x9r=x6'r; x9l=x6'l; y9r=y10r; top y9r-bot y9l=thin; z9=.5[z9r,z9l];
+rt x8r=lft x5l; y8=.5[y6r,y9r];
+filldraw stroke z7'e--z6'e..pulled_arc.e(6',8)&pulled_arc.e(8,9)
+ ..z9e--z10e; % upper lobe
+if serifs: serif(1,2,a, serif_darkness,-cap_jut); fi
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+penlabels(6',7'); endchar;
+
+cmchar "The letter C (casual)";
+beginchar("C",2u#+.9side#, cap_height#, 0);
+adjust_fit(0, 0); pickup tiny.nib;
+numeric alpha; alpha=w-u-thick;
+pos2(1.3thin, 90); x2=.5[x3r,x0r]; top y2r=h+o;% topmost pen position
+pos3(thick,180); lft z3r=(u,h/2);
+pos4(1.4thin, 270); x4=x2; bot y4r=-o;
+pos0(thick,0); lft z0l=(w+ thick-u,h/2);
+path p, p', line.u, line.b; line.u=(alpha,h)--(alpha,h/2);
+ line.b=(.5[alpha,x0],0)--(.5[alpha,x0],h/2);
+p=pulled_arc.r(0,2)&pulled_arc.r(2,3)&pulled_arc.r(3,4)
+ &pulled_arc.r(4,0)&cycle;
+p'=pulled_arc.l(0,2)&pulled_arc.l(2,3)&pulled_arc.l(3,4)
+ &pulled_arc.l(4,0)&cycle;
+z'1l=line.u intersectionpoint p'; z'1r=line.u intersectionpoint p;
+bot rt z1l=z'1l; top rt z1r=z'1r; z1=.5[z1l,z1r];
+z'5l=line.b intersectionpoint p'; z'5r=line.b intersectionpoint p;
+top rt z5l=z'5l; bot rt z5r=z'5r; z5=.5[z5r, z5l];
+y5l:=y5r+2thick; y1l:=y1r-1.5thick; x1l:=x1r+.5thin;
+numeric slope_factor; slope_factor=3/4;
+filldraw
+z1r{-1,slope_factor}..{left}z2r..pulled_arc.r(2,3)&pulled_arc.r(3,4)..
+ {right}z4r..{1,slope_factor}z5r ..(z5r+xeps)--(z5l+xeps)..
+ reverse
+ (z1l..{left}z2l..pulled_arc.l(2,3)&pulled_arc.l(3,4)..{right}z4l..z5l)
+ ..(z1l+xeps)--(z1r+xeps)..cycle;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter D (casual)";
+beginchar("D", side#+u#, cap_height#, 0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=.5u+cap_jut; x2=x1; bot y2=2oo; top y1=h;
+filldraw stroke z1e--z2e; % stem
+pos3(thin, 90); pos5(thick, 0);
+x3=x1; top y3r=h; z7r=z2l;
+pos4(thin,90); pos6(thin, -90); bot y6r=-o;
+x4r=x6r=hround(w/2); top y4r=h;
+y5=good.y .51[y4,y6]; rt x5r=good.x (w-.5u);
+z7r=z2l; x7l=x2r; y7l=y2r+bracket; z7=.5[z7r,z7l];
+pair where.r, where.l; where.l=up; where.r=(-1,.4);
+filldraw stroke
+ z3e{right}..pulled_super_arc.e(4,5,eta)&pulled_super_arc.e(5,6,eta)
+ ..{where.e}z7e; % lobe
+if serifs: serif(1, 2, a, eta, -cap_jut); fi
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter E (casual)";
+numeric topbar_; topbar_=3/4; %17/30 % Duerer's wierd value
+beginchar("E", hstretch*(topbar_+1/6)*side#+u#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % prepare for arms and serifs
+pos3(thin,90); pos4(dslab,0);
+x1=x3; top y3r=h; rt x4l=topbar_*side; bot y4=vround(h-1.2vstretch*thick);
+arm(3,4,d,eta,0); % top arm and beak
+pos5(thin,-90); pos0(thin,90); pos6(dslab,0); pos7(dslab,0);
+x5=x0=x1; y5=y0=hround(h/2); rt x6r=rt x7r=max(x4l-hstretch*thick,rt
+x1r+1/5side);
+top y6-bot y7=2vstretch*jut; y5=.5[y6,y7];
+arm(5,6,e,eta,0); arm(0,7,f,eta,0); % middle arms and beaks
+pos8(thin,-90); pos9(dslab,0); x8=x2; bot y8r=0; rt x9r=hround(w-.5u);
+y9=y8r+thin+vstretch*1/6side; foot(8,9,g,eta,x9-x4-thick); % lower arm
+if serifs: serif(1,2,a,eta,-cap_jut);
+ if not monospace: temp_:=slab; slab:=thin; serif(2,1,c,eta,cap_jut);
+ slab:=temp_; fi
+ antiserif(2,1,b,eta,jut); fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar; % end of "E"
+
+cmchar "The letter F (casual)";
+numeric topbar_; topbar_=3/4; % 17/30 % Duerer's wierd value
+beginchar("F", hstretch*(topbar_+1/6)*side#-u#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % prepare for arms and serifs
+pos3(thin,90); pos4(dslab,0);
+x1=x3; top y3r=h; rt x4l=topbar_*side; bot y4=vround(h-1.2vstretch*thick);
+arm(3,4,d,eta,0); % top arm and beak
+pos5(thin,-90); pos0(thin,90); pos6(dslab,0); pos7(dslab,0);
+x5=x0=x1; y5=y0=hround(h/2); rt x6r=rt x7r=max(x4l-hstretch*thick,rt
+x1r+1/5side);
+top y6-bot y7=2vstretch*jut; y5=.5[y6,y7];
+arm(5,6,e,eta,0); arm(0,7,f,eta,0); % middle arms and beaks
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut); serif(2,1,c,serif_darkness, cap_jut);
+ fi
+penlabels(0,1,2,3,4,5,6,7); endchar; % end of "F"
+
+cmchar "The letter G (casual)";
+beginchar("G",2u#+.9side#, cap_height#, 0);
+adjust_fit(0, .5cap_serif_fit#);
+if monospace: pickup fine.nib; else: pickup tiny.nib;fi
+% This code is identical to that for the lette C.
+numeric alpha; alpha=w-u-thick;
+pos2(1.3thin, 90); x2=.5[x3r,x0r]; top y2r=h+o;% topmost pen position
+pos3(thick,180); lft z3r=(u,h/2);
+pos4(1.4thin, 270); x4=x2; bot y4r=-o;
+pos0(thick,0); lft z0l=(w+thick-u,h/2);
+path p, p', line.u, line.b; line.u=(alpha,1.5h)--(alpha,h/2);
+ line.b=(.5[alpha,x0],0)--(.5[alpha,x0],h/2);
+p=pulled_arc.r(0,2)&pulled_arc.r(2,3)&pulled_arc.r(3,4)
+ &pulled_arc.r(4,0)&cycle;
+p'=pulled_arc.l(0,2)&pulled_arc.l(2,3)&pulled_arc.l(3,4)
+ &pulled_arc.l(4,0)&cycle;
+z'1l=line.u intersectionpoint p'; z'1r=line.u intersectionpoint p;
+bot rt z1l=z'1l; top rt z1r=z'1r; z1=.5[z1l,z1r];
+z'5l=line.b intersectionpoint p'; z'5r=line.b intersectionpoint p;
+top rt z5l=z'5l; bot rt z5r=z'5r; z5=.5[z5r, z5l];
+%x1l:=x1l+thin; y1l:=y1r-1.2thick-2tiny;
+y5l:=y5r+2thick; y1l:=y1r-1.5thick; x1l:=x1r+.5thin;
+% Now for addtional G work!
+path p,p',line.o, line.i;
+p=z1r..{left}z2r..pulled_arc.r(2,3)&pulled_arc.r(3,4)..{right}z4r..tension
+0.9..z5r;
+p'= reverse
+ (z1l..tension 0.9..{left}z2l..pulled_arc.l(2,3)&pulled_arc.l(3,4)..{right}z4l
+ ..tension 0.9..z5l);
+pos7(thick,0); top rt z7r=(w-0u-cap_jut,.9h/2);
+line.o=z7r--(x7r,-2o); line.i=(z7r-(thick,0))--(x7r-thick,-2o);
+numeric t[],tt[];
+(t1,tt1)=p intersectiontimes line.o; (t2,tt2)=p' intersectiontimes line.i;
+x6r=x7r; x6l=x7l; bot y6r=ypart point t1 of p; bot y6l=ypart point t2 of p';
+z6=.5[z6r,z6l];
+filldraw subpath(0,t1) of p--subpath(t2,infinity) of p'..(z1l+(eps,0))--cycle;
+filldraw stroke z6e--z7e;
+if serifs: serif(7,6,a,serif_darkness,-cap_jut); fi
+% serif(7,6,b,serif_darkness, cap_jut); fi
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter H (casual)";
+beginchar("H", u#+2cap_jut#+.9side#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+forsuffixes t=1,2,3,4: pos.t(thick,0); endfor
+lft x1l=lft x2l=.5u+cap_jut; bot y2=0; top y1=h;
+filldraw stroke z1e--z2e; % left vertical stem
+x3=x4=w-x1; y3=y1; y4=y2;
+filldraw stroke z3e--z4e; % right vertical stem
+pos5(thin, 90); pos6(thin,90);
+x5=.5[x1r,x1l]; x6=w-x5; top y5r=top y6r=h/2;
+filldraw stroke z5e--z6e; % horizontal crossbar
+if serifs:
+ serif(1,2,a,serif_darkness,-cap_jut); serif(1,2,b,serif_darkness,cap_jut);
+ serif(2,1,c,serif_darkness,-cap_jut); serif(2,1,d,serif_darkness,cap_jut);
+ serif(3,4,e,serif_darkness,-cap_jut); serif(3,4,f,serif_darkness,cap_jut);
+ serif(4,3,g,serif_darkness,-cap_jut); serif(4,3,h,serif_darkness,cap_jut); fi
+labels(1,2,3,4,5,6); endchar; % end of "H"
+
+cmchar "The letter I (casual)";
+beginchar("I", .5u#+2cap_jut#+cap_stem#+.5u#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+x1=x2=hround(w/2); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % vertical stem
+if serifs:
+ serif(1, 2, a, eta, -cap_jut); serif(1, 2, b, eta, cap_jut); % top lft,rt
+ serif(2, 1, c, eta, -cap_jut); serif(2, 1, d, eta, cap_jut); % bot lft,rt
+fi
+penlabels(1, 2); endchar;
+
+cmchar "The letter J (casual)";
+beginchar("J",u#+3thick#,cap_height#, 1/4 cap_height#);
+adjust_fit(0, cap_serif_fit#); pickup tiny.nib;
+pos1(thick,0); pos2(thick,0); pos3(thin, -90);
+top y1=h; rt x1r=w-.5u; x2=x1; bot y2=0; lft x3=.5u; bot y3r=-d;
+filldraw stroke z1e--z2e{down}..{left}z3e;
+serif(1,2,a,serif_darkness,-cap_jut);
+% serif(1,2,b,serif_darkness,cap_jut);
+penlabels(1,2,3); endchar;
+
+cmchar "The letter K";
+beginchar("K", 3/2u#+cap_jut#+.9side#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0); pickup tiny.nib;
+pair durer[]; % represent D\"urer's corner points
+durer1=(.5u,h); durer2=(w-u,h); durer3=(xpart durer1,0);
+ durer4=(xpart durer2,0);
+numeric diag_angle[]; diag_angle1=angle(durer2-durer3);
+diag_angle2=angle(durer1-durer4);
+numeric alpha; alpha=((xpart durer2 - xpart durer1)++h)/h;
+pos1(thick,0); pos2(thick,0); lft x1l=lft x2l=.5u+cap_jut;
+ top y1=h; bot y2=0; filldraw stroke z1e--z2e; % left stem
+pos3(alpha*thin,0); pos4(alpha*thin,0); rt x4r=rt x1r; y4=h/2;
+top y3=h; z3r-z4r=whatever*(durer2-durer3);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+filldraw z0--z3l--z3r--z4r--cycle; % upper diagonal stroke
+pos5(thick,diag_angle1); z5=whatever[z3,z4];
+z0-z5l=whatever*(durer1-durer4);
+numeric nibs; nibs=dslab;
+pos6(nibs,90); bot rt z6l=durer4;
+z5l-z7l=whatever*(durer1-durer4); z.g=(xpart durer2-thin,h/2);
+z.g-z7l=whatever*(durer2-durer3); z.h=(xpart durer2, h/4);
+z.g -z7r=whatever*(durer2-durer3);
+z5r-z7r=whatever*(durer1-durer4);
+%if serifs or not monospace: % reset x7 if necessary
+% if (x7r-x1l)/(x6-x1l)>.82: numeric temp; temp=x7r; x7r:=.82*(x6-x1l)+x1l;
+% temp:=temp-x7r; x7l:=x7l-temp; fi
+filldraw z5r--z5l--z7l{z7l-z5l}..{right}z6l--z6r{left}..{durer1-durer4}z7r
+ --cycle; % lower diagonal stroke
+if serifs:
+ numeric old_jut, old_brack; old_jut=cap_jut; old_brack=bracket;
+ serif(1,2,a,serif_darkness,-cap_jut); serif(1,2,b,serif_darkness,cap_jut);
+ serif(2,1,c,serif_darkness,-cap_jut); serif(2,1,d,serif_darkness,cap_jut);
+ %bracket:=.75old_brack;cap_jut:=.75old_jut;
+ %serif(3,4,e,serif_darkness,-cap_jut);
+ bracket:=2old_brack; cap_jut:=old_jut; serif(3,4,f,.6serif_darkness,cap_jut);
+ cap_jut:=old_jut; bracket:=old_brack;
+ fi
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter L (casual)";
+numeric topbar_; topbar_=3/4; % 17/30; % Duerer's wierd value
+beginchar("L", hstretch*(topbar_+1/6)*side#+u#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % prepare for arms and serifs
+pos3(thin,90); pos4(dslab,0);
+rt x4l=topbar_*side; bot y4=vround(h-vstretch*thick);
+pos8(thin,-90); pos9(dslab,0); x8=x2; bot y8r=0; rt x9r=hround(w-.5u);
+y9=y8r+thin+vstretch*1/6side; foot(8,9,g,eta,x9-x4-thick); % lower arm
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut); serif(1,2,d,serif_darkness,cap_jut);
+ if not monospace: temp_:=slab; slab:=thin; serif(2,1,c,serif_darkness,cap_jut);
+ slab:=temp_; fi fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar; % end of "L"
+
+cmchar"The letter M (casual)";
+beginchar("M", u#+2cap_jut#+side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+pos1(thin,0); pos2(thin,0); lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+pos3(thick,0); pos4(thick,0); x3r=x4r=w-x1l; top y3=h; bot y4=0;
+filldraw stroke z1e--z2e; % left vertical stem
+filldraw stroke z3e--z4e; % right vertical stem
+numeric long, short, hypot, alpha; long=h-bracket; short=w/2-thin-cap_jut;
+hypot=long++short; alpha=hypot/long;
+pos5(alpha*thick,0); pos6(alpha*thick,0);
+z5l=z1l; bot lft z6l=(w/2-.5currentbreadth,if not monospace:0 else:h/3 fi);
+pos7(alpha*thin,0); pos8(alpha*thin,0);
+z6l=z7r; z8l=z3l; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+filldraw z5r--z0--z8l--z8r--z6l--z5l--cycle;
+if serifs:
+ serif(2,1,a,serif_darkness,-cap_jut); serif(1,2,b,serif_darkness,-cap_jut);
+ % left serifs
+ serif(3,4,c,serif_darkness, cap_jut); serif(4,3,d,serif_darkness, cap_jut);
+ % right serifs
+ serif(2,1,e,serif_darkness,cap_jut); serif(4,3,f,serif_darkness,-cap_jut);
+ % lower, inner serifs
+ fi
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter N (casual)";
+beginchar("N", u#+2cap_jut#+.8side#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+numeric long, short, hypot, alpha; long=h; short=side-2cap_jut;
+hypot=long++short; alpha=hypot/long;
+pos1(thin,0); pos2(thin,0); lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+pos3(thin,0); pos4(thin,0); x3=x4; x3r=w-x1l; y3=y1; y4=y2-o;
+pos 5(alpha*thick,0); pos6(alpha*thick,0);
+z5r=z1r; z6l=z4r; z0=whatever[z1r,z2r]=whatever[z5l,z6l]; % under notch point
+z0'=whatever[z5r,z6r]=whatever[z3l,z4l];
+filldraw z1r--z1l--z2l--z2r--z0--z6l--z3r--z3l--z0'--cycle;
+if serifs:
+ serif(2,1,b,serif_darkness,-cap_jut); serif(2,1,c,serif_darkness,cap_jut);
+ % bottom, left serifs
+ serif(3,4,d,serif_darkness,-cap_jut);serif(3,4,e,serif_darkness,cap_jut);
+ % top right serifs
+ z.a=(x1l-1.5cap_jut,y1); pickup tiny.nib; filldraw
+ z0{z0-z4r}..{left}(z.a-(0,eps))..z.a--z1r--cycle;
+ fi
+penlabels(0,0',1,2,3,4,5,6); endchar;
+
+cmchar "The letter O (casual)";
+beginchar("O", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+x2r=u; x4r=w-u; y1r=h+o; y3r=-o; z0=(w/2,h/2);
+z0=.5[z5,z6]; numeric axis_angle;
+axis_angle=angle( (x4r,y1r)-(x2r,y3r) );
+axis_angle:=axis_angle*axis;
+z5-z6=(thick,0)rotated axis_angle;
+y2r=y6; y4r=y5; x1r=x5; x3r=x6;
+forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor
+x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r;
+x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r;
+path p,p';
+p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)&
+ pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle;
+path anti_diag; anti_diag=(z0--(1.5w,y4))rotatedaround(z0,axis_angle+90);
+z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90);
+x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270);
+path diag; diag=(z0--(1.5w,y4))rotatedaround(z0, axis_angle);
+z41r=diag intersectionpoint p; penpos41(thick, axis_angle);
+x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180);
+if monospace: x2l:=x21l; x4l:=x43l; fi
+p'=
+ z1l{left}..z21l...z2l{down}..z32l..z3l{right}..z43l..z4l{up}
+ ..z41l..{left}cycle;
+fill p; unfill p';
+penlabels(0,1,2,3,4,5,6,21,32,43,41); endchar;
+
+cmchar "The letter P (casual)";
+beginchar("P", 1.5u#+P_width#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, 0);
+pickup tiny.nib; pos1(thick,0); pos2(thick,0);
+top lft z1l=(.5u+cap_jut,h); bot lft z2l=(.5u+cap_jut,0);
+filldraw stroke z1e--z2e; % vertical stem
+pos3(thin,90); pos4(thin,90); pos5(thick,0);
+pos6(thin,-90);
+top y3r=top y4r=h; x3=x1; x4=x1r+thick; filldraw stroke z3e--z4e;
+x6=x4; y6=hround h/2; rt x5r=hround(w-u); y5=.5[y4,y6];
+y7=y6; x7=.75[rt x1r, x6];
+pos7(thin, -90);
+filldraw stroke pulled_super_arc.e(4,5,eta)&pulled_super_arc.e(5,6,eta)..z7e;
+if serifs: serif(1,2,a,eta,-cap_jut); serif(2,1,b,eta,-cap_jut);
+ serif(2,1,c,eta,cap_jut); fi
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter Q (casual)";
+beginchar("Q", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0);
+x2r=u; x4r=w-u; y1r=h+o; y3r=-o; z0=(w/2,h/2);
+z0=.5[z5,z6]; numeric axis_angle;
+axis_angle=angle( (x4r,y1r)-(x2r,y3r) );
+axis_angle:=axis_angle*axis;
+z5-z6=(thick,0)rotated axis_angle;
+y2r=y6; y4r=y5; x1r=x5; x3r=x6;
+forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor
+x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r;
+x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r;
+path p,p';
+p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)&
+ pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle;
+path anti_diag; anti_diag=(z0--(1.5w,y4))rotatedaround(z0,axis_angle+90);
+z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90);
+x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270);
+path diag; diag=(z0--(1.5w,y4))rotatedaround(z0, axis_angle);
+z41r=diag intersectionpoint p; penpos41(thick, axis_angle);
+x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180);
+if monospace: x2l:=x21l; x4l:=x43l; fi
+p'=
+ z1l{left}..z21l...z2l{down}..z32l..z3l{right}..z43l..z4l{up}
+ ..z41l..{left}cycle;
+fill p; unfill p';
+% now for the tail!
+numeric thick',thick''; thick'=(1-tail_corr)*thick; thick''=(1+tail_corr)*thick;
+numeric tail_slope; tail_slope=-20/36; % measured from D\"urer's figure
+z10r=p intersectionpoint (z0--(x4r,0));
+z10l=p intersectionpoint (quartercircle rotated 180 scaled 2thick'
+ shifted z10r);
+y12r-y10r=tail_slope*(x12r-x10r); x12r=4/3x4r;
+numeric tail_angle; tail_angle=angle(z10r-z12r)-90;
+penpos12(thick',tail_angle);
+penpos11(thick'', tail_angle); z11=(x4r,0);
+x14=19/8 x4r; y14=-3/8h; penpos14(max(2,eps),90);
+numeric tail_length; tail_length=x14-x10r;
+penpos13(max(2,tail_corr*thick),90);
+x13=x14-1/9tail_length; y13=(1+.25tail_corr)*y14;
+fill stroke z10.e..z11.e..z12.e if not monospace:..z13.e{right}..z14.e fi;
+penlabels(0,1,2,3,4,5,6,10,11,12,13,14,15); endchar;
+
+cmchar "The letter R (casual)";
+beginchar("R", .5u#+max(cap_jut#+.9side#,1.5P_width#), cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(thick,0); pos2(thick,0);
+top lft z1l=(.5u+cap_jut,h); bot lft z2l=(.5u+cap_jut,0);
+filldraw stroke z1e--z2e; % vertical stem
+pos3(thin,90); pos4(thin,90); pos5(thick,0);
+pos6(if serifs: dslab else:thin fi,-90);
+top y3r=top y4r=h; x3=x1; x4=x1r+thick;
+x6=x4; y6=hround h/2; rt x5r=hround(.5u+P_width); y5=.5[y4,y6];
+y7=y6; x7=.75[rt x1r, x6];
+pos7(if serifs:dslab else:thin fi,-90);
+filldraw stroke z3e--z4e..pulled_super_arc.e(4,5,eta)&
+ pulled_super_arc.e(5,6,eta)..z7e;
+path p; p=pulled_super_arc.r(5,6,eta)..z7r;
+numeric half_letter_width; 2half_letter_width+1/2u=w;
+half_letter_width:=half_letter_width+1/2u;
+z0r=p intersectionpoint ((half_letter_width,0)--(half_letter_width,h));
+path circ_; circ_= (((halfcircle scaled 2thick) rotated 180) shifted z0r);
+z0l= p intersectionpoint circ_;
+if not monospace: z0'=(.45[half_letter_width,w],0);
+ else: z0'=(.4[half_letter_width,w],0); fi
+numeric tail_angle; tail_angle=angle(z0l-z0');
+penpos8(thick, tail_angle-90); z8l=whatever[z0', z0l];
+ x8=1/5[half_letter_width,w];
+penpos9(2/3thick,tail_angle-90); z9r=whatever[z0r, z8r];
+x9r=.5[half_letter_width, w]; penpos10(1/2thin,90); z10l=(w,0);
+fill z0l--z8l...{right}z10l--z10r{-w,1/4h}..z9r--z0r--cycle; % tail
+if serifs: serif(1,2,a,eta,-cap_jut); serif(2,1,b,eta,-cap_jut);
+ serif(2,1,c,eta,cap_jut); fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10); labels(0'); endchar;
+
+cmchar "The Knuthian S (casual)";
+beginchar("S", 2u#+1/2 side# if not monospace:+thick# fi, cap_height#, 0);
+adjust_fit(0,0); pickup tiny.nib;
+pair durer[]; % points to contain corner coords of Durer square
+ypart durer3=ypart durer4=0; xpart durer4-xpart durer1=side;
+xpart durer1=u-1.5thick;
+durer1=(xpart durer3, h); durer2=(xpart durer 4, ypart durer1);
+numeric slope, diag_angle; diag_angle=angle(durer2-durer3);
+slope=-3/4h/(xpart durer4-xpart durer3);
+pos0(thick,diag_angle); x0=.52[xpart durer1, xpart durer2];
+y0=h/2;
+pos2(thin,-90); top y2l=h+o; x2=x0+thin; lft x3l=u+2/3thick; rt x3r=lft x3l+5/6thick;
+if not monospace:
+ if x2-rt x3r<thick: x2:=lft x3r+thick; x2l:=x2r:=x2; fi fi
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r);
+pos7(thin,-90); x7=x0; y7=-o; rt x6r=w-u; lft x6l=rt x6r-thick;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r);
+pos1(5/6 thick,-90); top y1l=h+o-thin; rt x1=x0+2thick+o;
+pos8(1.5thick,-80);lft x8r=u; bot y8r=thin-o;
+filldraw z1l..z2l{left}..{down}z3l..z4l--z5l..{down}z6l..{left}z7l..z8l
+ --z8r..{right}z7r..{up}z6r..z5r--z4r..{up}z3r..{right}z2r..z1r--cycle;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter T (casual)";
+beginchar("T",2u#+.9side#, cap_height#,0);
+adjust_fit(0,0); pickup tiny.nib;
+pos1(thick,0); pos2(thick,0); .5[x1r,x1l]=w/2; .5[x2r,x2l]=w/2;
+top y1=h; bot y2=0; filldraw stroke z1e--z2e; % central stem
+numeric alpha, stroke_angle; stroke_angle=55;
+if monospace: alpha=1; else: alpha=sqrt2; fi
+if not serifs: stroke_angle:=90; alpha:=1; fi % sans-serif values
+pos3(alpha*thin,stroke_angle); pos4(alpha*thin,stroke_angle);
+lft x3l=u; top y3r=h; x4r=w-x3l; y4=y3;
+filldraw stroke z3e--z4e; % top horizontal
+numeric old_jut; old_jut=cap_jut;
+if serifs:
+ serif(2,1,a,serif_darkness,-cap_jut);serif(2,1,b,serif_darkness,cap_jut);
+ cap_jut:=.6old_jut;
+ T_flourish(3,4,c,serif_darkness,-.5serif_darkness); cap_jut:=old_jut;
+ fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter U (casual)";
+beginchar("U", u#+2cap_jut#+.9side#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+pickup tiny.nib; pos1(thick,0); pos2(thick,0); pos2'(thick,180);
+pos3(0[thin,thick],-90); pos4(thin,0); pos5(thin,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o; z2'=z2;
+lft x1l=hround .5u+cap_jut;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_super_arc.e(2',3,eta)
+ & pulled_super_arc.e(3,4,eta)&z4e--z5e;
+if serifs: serif(1,2,a,eta,-cap_jut); serif(1,2,b,eta,cap_jut);
+ serif(5,4,c,eta,-cap_jut); serif(5,4,d,eta,cap_jut);
+ fi
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter V (casual)";
+beginchar("V", 20/7 cap_jut#+.9side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+numeric alpha; alpha=((h+cap_jut)++(w/2))/(h+cap_jut);
+pos1(alpha*thick,0); pos2(alpha*thick,0);
+pos3(alpha*thin,0); pos4(alpha*thin,0);
+top y1=top y4=h; lft x1l=10/7 cap_jut; x4r=w-x1l;
+lft x2l=hround w/2; x3r=x2l; bot y2=bot y3=-apex_o;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l]; % notch point
+filldraw z0--diag_end(0,4l,1,4,4r,3r)--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle;
+if serifs: bracket:=10/7 bracket; cap_jut:=10/7 cap_jut;
+ pickup tiny.nib; numeric jut_factor; jut_factor=9/8;
+ serif(1,2,a,.8serif_darkness,-.8cap_jut);
+ serif(1,2,b,.8serif_darkness,.6cap_jut);
+ bracket:=jut_factor*bracket;
+ serif(4,3,d,2/3serif_darkness,.8jut_factor*cap_jut);
+ serif(4,3,c,2/3serif_darkness,-2/3jut_factor*cap_jut);
+ fi
+penlabels(0,1,2,3,4); endchar; % End of "V" (casual)
+
+cmchar "The letter W (casual)";
+numeric alpha;
+ alpha=((cap_height#+cap_jut#)++(.4side#+10/7cap_jut#))/(cap_height#+cap_jut#);
+beginchar("W", 20/7 cap_jut#+1.6side#-alpha*thick#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+mid_corr=if monospace: -apex_corr else: 1/3jut fi;
+pos1(alpha*thick,0); pos2(alpha*thick,0);
+pos3(alpha*thin,0); pos4(alpha*thin,0);
+pos5(alpha*thick,0); pos6(alpha*thick,0);
+pos7(alpha*thin,0); pos8(alpha*thin,0);
+numeric V_width; V_width=20/7 cap_jut+4/5side;
+top y1=top y4=h; lft x1l=10/7 cap_jut; x4r=V_width-x1l;
+lft x2l=hround V_width/2; x3r=x2l; bot y2=bot y3=-apex_o;
+pair shift_amt; ypart shift_amt=0;
+xpart shift_amt=V_width-20/7cap_jut-alpha*(thick);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l]; % notch point
+path p; p=z0--diag_end(0,4l,1,1,4r,3r)--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle;
+filldraw p; filldraw (p shifted shift_amt); % the 2 V's
+forsuffixes t=1,2,3,4: z[t+4]=z.t shifted shift_amt; endfor
+if serifs: bracket:=10/7 bracket; cap_jut:=10/7 cap_jut;
+ pickup tiny.nib; numeric jut_factor; jut_factor=9/8;
+ serif(1,2,a,.8serif_darkness,-.7cap_jut);
+ serif(8,7,f,.8serif_darkness,.7cap_jut);
+ %serif(5,6,d,.8serif_darkness,.6cap_jut);
+ %serif(5,6,c,.8serif_darkness,-.6cap_jut);
+ bracket:=jut_factor*bracket;
+ serif(1,2,b,.6serif_darkness, .6cap_jut);
+ serif(8,7,e,.7serif_darkness,-.6cap_jut);
+ fi
+penlabels(0,0',1,2,3,4,5,6,7,8,45); endchar; % End of "W" (casual)
+
+cmchar "The letter X";
+beginchar("X", 20/7cap_jut#+.9side#, cap_height#, 0);
+adjust_fit(0cap_serif_fit#,0cap_serif_fit#); pickup tiny.nib
+numeric alpha; alpha=(h++(w-20/7cap_jut))/h;
+lft x1l=.8cap_jut; top y1=h; pos1(alpha*thick, 0);
+x4r=w-x1l; bot y4=0; pos4(alpha*thick,0);
+x2r=w-x1l; y2=y1; pos2(alpha*thin,0);
+x3l=w-x2r; y3=y4; pos3(alpha*thin,0);
+filldraw diag_end(4r,1r,.5,1,1l,4l)--diag_end(1l,4l,.5,1,4r,1r)--cycle; %lft diag
+filldraw diag_end(2l,3l,.5,1,3r,2r)--diag_end(3r,2r,.5,1,2l,3l)--cycle; % rt diag
+if serifs: bracket:=10/7 bracket; cap_jut:=.7cap_jut;
+ pickup tiny.nib;
+ serif(1,4,a,.6serif_darkness,-.8cap_jut);serif(4,1,d,.6serif_darkness,.8cap_jut);
+ serif(2,3,f,.7serif_darkness,.8cap_jut);serif(3,2,g,.7serif_darkness,-.8cap_jut);
+ serif(1,4,b,.5 serif_darkness,.6cap_jut);
+ serif(4,1,c,.5 serif_darkness,-.6cap_jut);
+ serif(2,3,e,.5 serif_darkness,-.6cap_jut);
+ serif(3,2,h,.5 serif_darkness,.6cap_jut); fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter Y (casual)";
+beginchar("Y", 2cap_jut#+1.0side#, cap_height#, 0);
+adjust_fit(0cap_serif_fit#, 0cap_serif_fit#); pickup pencircle scaled 0pt;
+pickup tiny.nib;
+numeric alpha, long, short, hypot; long=h/2;
+short=.5(w-thick)-cap_jut;
+ hypot=long++short; alpha=hypot/long;
+pos1(thick,0); lft x1l=cap_jut+.5crisp; top y1=h;
+pos4(thin,0); x4r=w-x1l; y4=y1;
+pos2(thick,0); pos3(thin,0);
+pos5(thick,0); pos6(thick,0);
+x5=x6=w/2; bot y6=0; y5=h/2;
+x2l=x5l; x3r=x5r; y2=y3=h/2;
+z0=whatever[z1r, z2r]=whatever[z3l,z4l]; % notch point
+filldraw z1l--z5l--z6l--z6r--z5r--z4r--z4l--z0--z1r--cycle;
+if serifs: numeric jut_factor;
+ serif(6,5,e,.4serif_darkness,-.6cap_jut); serif(6,5,f,.4serif_darkness,.6cap_jut);
+ % bottom serifs
+ serif(1,2,a,.4serif_darkness,-.6cap_jut);serif(4,3,d,.4serif_darkness,.6cap_jut);
+ % top, outer serifs
+ serif(1,2,b,.4serif_darkness,.4cap_jut);
+ serif(4,3,c,.4serif_darkness,-.4cap_jut); % top, inner serifs
+ fi
+penlabels(0,1,2,3,4,5,6); endchar; % End of "Y" (casual)
+
+cmchar "The letter Z (casual)";
+beginchar("Z", 2u#+.8side#, cap_height#,0);
+adjust_fit(0, 0); pickup tiny.nib;
+numeric alpha, long, short, hypot;
+long=h; short=w-2u-thick; hypot=long++short;
+alpha=hypot/long;
+pos1(thin,90); pos2(thin,90); pos3(alpha*thick, 0);
+pos4(alpha*thick, 0); pos5(thin,-90); pos6(thin,-90);
+rt x3r=w-u; top y3=h; x4l=w-x3r; bot y4=0;
+top y1r=h; lft x1=u; y2=y1; rt x2=x3;
+bot y5r=bot y6r=0; lft x5=x4; rt x6=w-u;
+%filldraw stroke z1e--z2e; % top bar
+filldraw stroke z3e--z4e; % diagonal
+filldraw stroke z5e--z6e; % bottom bar
+if serifs: pickup crisp.nib; % prepare for arms and serifs
+ pos7(thin, 90); pos8(dslab,180); z7=z2; lft x8r=u;
+ bot y8=h-1.3vstretch*thick;
+ arm(7,8,a,serif_darkness,0); % upper dropped serif
+ pos9(thin,-90); z9=z5; pos10(dslab,0); rt x10r=w-u;
+ top y10=1.33vstretch*thick;
+ arm(9,10,b,serif_darkness,0); fi
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/duerer/dromanu.mf b/Master/texmf-dist/fonts/source/public/duerer/dromanu.mf
new file mode 100644
index 00000000000..a40e940c1ab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/duerer/dromanu.mf
@@ -0,0 +1,728 @@
+% Program files for formal Computer Duerer fonts.
+% Modified 24-July-1990 DAH: Split lines longer than 80 columns
+%%
+def checkthin=
+if thin-currentbreadth<eps: thin:=currentbreadth+eps; fi;
+if thin-currentbreadth<eps: thin:=currentbreadth+eps; fi enddef;
+
+numeric P_width#; P_width#=cap_jut#+3thick#+1/4side#-thin#;
+define_pixels(P_width);
+
+pair xeps, yeps; xeps=(eps,0); yeps=(0,eps);
+numeric tail_corr; tail_corr=1/8;
+numeric cap_jut_factor; cap_jut_factor=8/7;
+
+cmchar "The letter A";
+beginchar("A", 2u#+2cap_jut#+.8side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+top y3=top y2=h if not monospace: + apex_o fi;
+numeric alpha[]; alpha1=((h+cap_jut)++(w/2))/(h+cap_jut);
+penpos1(alpha1*thin,0); penpos2(alpha1*thin,0);
+penpos3(alpha1*thick,0); penpos4(alpha1*thick,0);
+lft x1l=cap_jut_factor*cap_jut+.5u; rt x4r=w-x1l;
+bot y1=bot y4=0 if monospace: +1/2 crisp fi;
+x3r=x2l+apex_corr; hround(w/2)=.5[x2,x3];
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+fill z0--diag_end(0,4l,1,1,4r,3r)--z3r..z2l--diag_end(2l,1l,1,1,1r,0)
+ --z0..cycle; % diagonals
+top y5r=top y6r=hround(h/2); top y5r-bot y5l=top y6r-bot y6l=thin;
+penpos5(whatever, angle(z2-z1)); penpos6(whatever, angle(z3-z4));
+z5=whatever[z1,z2]; z6=whatever[z3,z4];
+penstroke z5e--z6e; % bar line
+pickup tiny.nib;
+numeric top_bar; top_bar=top y5r-bot y6l;
+if monospace: pickup pencircle scaled 0pt;
+ pos11(top_bar,90); pos12(top_bar,90);
+ top y11r=top y12r=h; w/2=.5[x11,x12]; x12-x11=apex_corr+2cap_jut;
+ fill z11l--z12l{right}..tension atleast.95..{left}z12r--z11r{left}..
+ tension atleast.95..{right}cycle;
+ penlabels(11,12); fi
+if serifs: bracket:=10/7 bracket; cap_jut:=cap_jut_factor*cap_jut;
+ pickup tiny.nib; numeric jut_factor;
+ if monospace: jut_factor:=1; else: jut_factor:=3/4; fi
+ % Durer called for a |jut_factor| of |1/2|, but this gives a too-puny
+ % inner serif.
+ serif(1,2,a,.8serif_darkness,-cap_jut);serif(4,3,d,.8serif_darkness, cap_jut);
+ bracket:=jut_factor*bracket; if monospace: jut_factor:=.6; fi
+ serif(1,2,b,7/8 serif_darkness,jut_factor*cap_jut);
+ serif(4,3,c,7/8 serif_darkness,-jut_factor*cap_jut);
+ fi
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter B";
+beginchar("B",u#+cap_jut#+4thick#+1/4 side#-thin#, cap_height#, 0);
+adjust_fit(cap_serif_fit#,0); pickup tiny.nib;
+pos1(thick,0); pos2(thick,0); lft x1l=lft x2l=.5u+cap_jut;
+ bot y2=0; top y1=h; filldraw stroke z1e--z2e; % vertical stem
+pos3(thin,-90); pos5(thick,0); pos7(thin,90);
+z3r=z2; y4l=y3l; x4l=x3l+thick; y4r=y3r; x4r=x4l+thick-1/2thin; z4=.5[z4l,z4r];
+y7l=h/2; x7l=x1; y6l=y7l; x6l=x4l; top y6r-bot y6l=thin; x6r=x4r;
+z6=.5[z6r,z6l];
+rt x5r=hround(w-.5u); y5=.5[y4r,y6r];
+filldraw stroke z3e--z4e..pulled_arc.e(4,5)&pulled_arc.e(5,6)..z6e--z7e;
+ % bottom lobe
+pos7'(thin,-90); pos8(thick,0); pos10(thin,90);
+z7'=z7; z6'=z6; x6'r=x4r; x6'l=x4l; y6'r=y7'r; y6'l=y7'l;
+z10r=z1; x9r=x6'r; x9l=x6'l; y9r=y10r; top y9r-bot y9l=thin; z9=.5[z9r,z9l];
+rt x8r=lft x5l; y8=.5[y6r,y9r];
+filldraw stroke z7'e--z6'e..pulled_arc.e(6',8)&pulled_arc.e(8,9)
+ ..z9e--z10e; % upper lobe
+if serifs: serif(1,2,a, serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut);
+ numeric tempa_, tempb_; tempa_=slab; tempb_=bracket;
+ slab:=thin; bracket:=2/3cap_jut; serif(2,1,c,serif_darkness,2/3cap_jut);
+ slab:=tempa_; bracket:=tempb_; fi
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+penlabels(6',7'); endchar;
+
+cmchar "The letter C";
+beginchar("C",2u#+.9side#, cap_height#, 0);
+adjust_fit(0, 0); if monospace: pickup fine.nib; else: pickup tiny.nib;fi
+numeric alpha; alpha=w-u-thick;
+pos2(thin, 90); x2=.5[x3r,x0r]; top y2r=h+o;% topmost pen position
+pos3(thick,180); lft z3r=(u,h/2);
+pos4(thin, 270); x4=x2; bot y4r=-o;
+pos0(thick,0); lft z0l=(w+thick-u,h/2);
+path p, p', line.u, line.b; line.u=(alpha,1.5h)--(alpha,h/2);
+ line.b=(.5[alpha,x0],0)--(.5[alpha,x0],h/2);
+p=pulled_arc.r(0,2)&pulled_arc.r(2,3)&pulled_arc.r(3,4)
+ &pulled_arc.r(4,0)&cycle;
+p'=pulled_arc.l(0,2)&pulled_arc.l(2,3)&pulled_arc.l(3,4)
+ &pulled_arc.l(4,0)&cycle;
+z'1l=line.u intersectionpoint p'; z'1r=line.u intersectionpoint p;
+bot rt z1l=z'1l; top rt z1r=z'1r; z1=.5[z1l,z1r];
+z'5l=line.b intersectionpoint p'; z'5r=line.b intersectionpoint p;
+top rt z5l=z'5l; bot rt z5r=z'5r; z5=.5[z5r, z5l];
+if not monospace: x1l:=x1l+.6thin; y1l:=y1r-1.75thick-2tiny;
+ y5r:=y5r-o; y5l:=2thick+y5r-2tiny; fi
+if monospace: x1:=x1l:=x1r:=x5; y1:=y1-thin; y1l:=y1l-thin; y1r:=y1r-.6thin; fi
+ % readjust to have a better opening in CDTT
+numeric slope_factor; if monospace:slope_factor=4/3; else:slope_factor=3/4; fi
+filldraw
+ z1r{-1,slope_factor}...{left}z2r..pulled_arc.r(2,3)&
+ pulled_arc.r(3,4)..{right}z4r..tension 0.9..z5r--
+ reverse
+ (z1l..tension 0.9..{left}z2l..pulled_arc.l(2,3)&pulled_arc.l(3,4)..{right}z4l
+ ..tension 0.9..z5l)
+ ..(z1l+(eps,0))--(z1r+(eps,0))..cycle;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter D";
+beginchar("D", cap_jut#+.9side#+u#, cap_height#, 0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=.5u+cap_jut; x2=x1; bot y2=0; top y1=h;
+filldraw stroke z1e--z2e; % stem
+pos3(thin, 90); pos5(thick, 0); pos7(thin, -90);
+x3=x7=x1; top y3r=h; bot y7r=0;
+y5=good.y h/2; rt x5r=good.x (w-.5u);
+if not monospace: x4r=x6r=hround(w/2); top y4r=h; bot y6r=0;
+ bot y4l=vround(h-thin); top y6l=vround thin;
+ x4l=x6l; 2(lft x5l-x4l)=y4l-y6l;
+ z4=.5[z4l, z4r]; z6=.5[z6l, z6r];
+ else: pos4(thin,90); pos6(thin,-90); x4=x6=hround w/2; top y4r=h; bot y6r=0;
+fi
+filldraw stroke z3e{right}...pulled_super_arc.e(4,5,eta)&
+ pulled_super_arc.e(5,6,eta)...{left}z7e; % lobe
+if serifs: serif(1, 2, a, serif_darkness, -cap_jut);
+ serif(2, 1, b, serif_darkness, -cap_jut);
+ if not monospace: numeric temp_; temp_=slab; slab:=thin;
+ serif(2, 1, c, serif_darkness, cap_jut); slab:=temp_; fi fi
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter E";
+numeric topbar_; if monospace: topbar_=11/15;
+ else: topbar_=17/30; fi % Duerer's wierd value
+beginchar("E", hstretch*(topbar_+1/6)*side#+u#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % prepare for arms and serifs
+pos3(thin,90); pos4(dslab,0);
+x1=x3; top y3r=h; rt x4l=topbar_*side;
+ bot y4=vround(h-if monospace: 2 fi vstretch*thick);
+arm(3,4,d,serif_darkness,0); % top arm and beak
+pos5(thin,-90); pos0(thin,90); pos6(dslab,0); pos7(dslab,0);
+x5=x0=x1; y5=y0=hround(h/2); rt x6r=rt x7r=max(x4l-hstretch*thick,rt
+x1r+1/5side);
+top y6-bot y7=2vstretch*jut; y5=.5[y6,y7];
+arm(5,6,e,eta,0); arm(0,7,f,eta,0); % middle arms and beaks
+pos8(thin,-90); pos9(dslab,0); x8=x2; bot y8r=0; rt x9r=hround(w-.5u);
+y9=y8r+thin+vstretch*1/6side;
+foot(8,9,g,serif_darkness,x9-x4-thick); % lower arm
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut);
+ if not monospace: temp_:=slab; slab:=thin;
+ serif(2,1,c,serif_darkness,cap_jut);
+ slab:=temp_; fi fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar; % end of "E"
+
+cmchar "The letter F";
+numeric topbar_; if monospace: topbar_=11/15;
+ else: topbar_=17/30; fi % Duerer's wierd value
+beginchar("F", hstretch*(topbar_+1/6)*side#-u#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % prepare for arms and serifs
+pos3(thin,90); pos4(dslab,0);
+x1=x3; top y3r=h; rt x4l=topbar_*side;
+ bot y4=vround(h-if monospace: 2 fi vstretch*thick);
+arm(3,4,d,serif_darkness,0); % top arm and beak
+pos5(thin,-90); pos0(thin,90); pos6(dslab,0); pos7(dslab,0);
+x5=x0=x1; y5=y0=hround(h/2); rt x6r=rt x7r=max(x4l-hstretch*thick,rt
+x1r+1/5side);
+top y6-bot y7=2vstretch*jut; y5=.5[y6,y7];
+arm(5,6,e,eta,0); arm(0,7,f,eta,0); % middle arms and beaks
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut); serif(2,1,c,serif_darkness, cap_jut);
+ fi
+penlabels(0,1,2,3,4,5,6,7); endchar; % end of "F"
+
+cmchar "The letter G";
+beginchar("G",2u#+.9side#, cap_height#, 0);
+adjust_fit(0, cap_serif_fit#);
+if monospace: pickup fine.nib; else: pickup tiny.nib;fi
+% This code is identical to that for the letter C.
+numeric alpha; alpha=w-u-thick;
+pos2(thin, 90); x2=.5[x3r,x0r]; top y2r=h+o;% topmost pen position
+pos3(thick,180); lft z3r=(u,h/2);
+pos4(thin, 270); x4=x2; bot y4r=-o;
+pos0(thick,0); lft z0l=(w+thick-u,h/2);
+path p, p', line.u, line.b; line.u=(alpha,1.5h)--(alpha,h/2);
+ line.b=(.5[alpha,x0],0)--(.5[alpha,x0],h/2);
+p=pulled_arc.r(0,2)&pulled_arc.r(2,3)&pulled_arc.r(3,4)
+ &pulled_arc.r(4,0)&cycle;
+p'=pulled_arc.l(0,2)&pulled_arc.l(2,3)&pulled_arc.l(3,4)
+ &pulled_arc.l(4,0)&cycle;
+z'1l=line.u intersectionpoint p'; z'1r=line.u intersectionpoint p;
+bot rt z1l=z'1l; top rt z1r=z'1r; z1=.5[z1l,z1r];
+z'5l=line.b intersectionpoint p'; z'5r=line.b intersectionpoint p;
+top rt z5l=z'5l; bot rt z5r=z'5r; z5=.5[z5r, z5l];
+if not monospace: x1l:=x1l+.6thin; y1l:=y1r-1.75thick-2tiny;
+ y5r:=y5r-o; y5l:=2thick+y5r-2tiny; fi
+if monospace: x1:=x1l:=x1r:=x5; y1:=y1-thin; y1l:=y1l-thin; y1r:=y1r-.6thin; fi
+ % readjust to have a better opening in CDTT
+numeric slope_factor; if monospace:slope_factor=4/3; else:slope_factor=3/4; fi
+% Addtional G work (preceding program is the same as that for letter C)!
+path p,p',line.o, line.i;
+p=z1r{-1,slope_factor}..{left}pulled_arc.r(2,3)&
+ pulled_arc.r(3,4){right}..tension 0.9..z5r;
+p'= reverse
+ (z1l..tension 0.9..{left}pulled_arc.l(2,3)&pulled_arc.l(3,4){right}
+ ..tension 0.9..z5l);
+pos7(thick,0);
+top rt z7r=(w-0u-cap_jut,.9h/2);
+numeric counter; counter=0;
+forever:
+ counter:=counter+1;
+ line.o:=z7r--(x7r,-2o); line.i:=(z7r-(thick,0))--(x7r-thick,-2o);
+ numeric t[],tt[];
+ (t1,tt1)=p intersectiontimes line.o; (t2,tt2)=p' intersectiontimes line.i;
+ exitif t1*t2>0; forsuffixes $$=l, r: x7$$:=x7$$-.1u; endfor
+ x7:=x7-.1u; endfor
+x6r=x7r; x6l=x7l; bot y6r=ypart point t1 of p; bot y6l=ypart point t2 of p';
+z6=.5[z6r,z6l];
+p:= subpath(0,t1) of p..(z6r-xeps+yeps)--(z6l+xeps+yeps)..
+ subpath(t2,infinity) of p'..(z1l+xeps)--cycle;
+filldraw p;
+filldraw z6l--z7l--z7r--z6r--cycle;
+if serifs: serif(7,6,a,serif_darkness,-cap_jut);
+ serif(7,6,b,serif_darkness, cap_jut); fi
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter H";
+beginchar("H", u#+2cap_jut#+.8side#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+forsuffixes t=1,2,3,4: pos.t(thick,0); endfor
+lft x1l=lft x2l=.5u+cap_jut; bot y2=0; top y1=h;
+filldraw stroke z1e--z2e; % left vertical stem
+x3=x4=w-x1; y3=y1; y4=y2;
+filldraw stroke z3e--z4e; % right vertical stem
+pos5(thin, 90); pos6(thin,90);
+x5=.5[x1r,x1l]; x6=w-x5; top y5r=top y6r=h/2;
+filldraw stroke z5e--z6e; % horizontal crossbar
+if serifs:
+ serif(1,2,a,serif_darkness,-cap_jut); serif(1,2,b,serif_darkness,cap_jut);
+ serif(2,1,c,serif_darkness,-cap_jut); serif(2,1,d,serif_darkness,cap_jut);
+ serif(3,4,e,serif_darkness,-cap_jut); serif(3,4,f,serif_darkness,cap_jut);
+ serif(4,3,g,serif_darkness,-cap_jut); serif(4,3,h,serif_darkness,cap_jut); fi
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter I";
+beginchar("I", .5u#+2cap_jut#+cap_stem#+.5u#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+pickup tiny.nib; checkthin; pos1(cap_stem,0); pos2(cap_stem,0);
+x1=x2=hround(w/2); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % vertical stem
+if serifs:
+ serif(1, 2, a, serif_darkness, -cap_jut);
+ serif(1, 2, b, serif_darkness, cap_jut); % top lft,rt
+ serif(2, 1, c, serif_darkness, -cap_jut);
+ serif(2, 1, d, serif_darkness, cap_jut); % bot lft,rt
+fi
+penlabels(1, 2); endchar;
+
+cmchar "The letter J";
+beginchar("J",u#+3thick#+cap_jut#,cap_height#, 1/4 cap_height#);
+adjust_fit(0, cap_serif_fit#); pickup tiny.nib;
+pos1(thick,0); pos2(thick,0); pos3(thin, -90);
+top y1=h; rt x1r=w-.5u-cap_jut; x2=x1; bot y2=0; lft x3=.5u; bot y3r=-d;
+filldraw stroke z1e--z2e{down}..{left}z3e;
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(1,2,b,serif_darkness,cap_jut); fi
+penlabels(1,2,3); endchar;
+
+cmchar "The letter K";
+beginchar("K", 3/2u#+cap_jut#+.9side#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0); pickup tiny.nib;
+pair durer[]; % represent D\"urer's corner points
+durer1=(.5u,h); durer2=(w-u,h); durer3=(xpart durer1,0);
+ durer4=(xpart durer2,0);
+numeric diag_angle[]; diag_angle1=angle(durer2-durer3);
+diag_angle2=angle(durer1-durer4);
+numeric alpha; alpha=((xpart durer2 - xpart durer1)++h)/h;
+pos1(thick,0); pos2(thick,0); lft x1l=lft x2l=.5u+cap_jut;
+ top y1=h; bot y2=0; filldraw stroke z1e--z2e; % left stem
+pos3(alpha*thin,0); pos4(alpha*thin,0); rt x4r=rt x1r; y4=h/2;
+top y3=h; z3r-z4r=whatever*(durer2-durer3);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+filldraw z0--z3l--z3r--z4r--cycle; % upper diagonal stroke
+pos5(thick,diag_angle1); z5=whatever[z3,z4];
+z0-z5l=whatever*(durer1-durer4);
+numeric nibs; nibs=.5thin;
+if monospace or not serifs: nibs:=thin; fi
+pos6(nibs,90); bot rt z6l=durer4;
+z5l-z7l=whatever*(durer1-durer4); z.g=(xpart durer2-thin,h/2);
+z.g-z7l=whatever*(durer2-durer3);
+z.h=(xpart durer2, h/4);
+if monospace or not serifs: z.g else: z.h fi-z7r=whatever*(durer2-durer3);
+z5r-z7r=whatever*(durer1-durer4);
+if serifs or not monospace: % reset x7 if necessary
+ if (x7r-x1l)/(x6-x1l)>.82: numeric temp; temp=x7r; x7r:=.82*(x6-x1l)+x1l;
+ temp:=temp-x7r; x7l:=x7l-temp; fi fi %!!!Bug--Missing fi on this line.
+filldraw z5r--z5l--z7l{z7l-z5l}..{right}z6l--z6r{left}..{durer1-durer4}z7r
+ --cycle;
+if serifs:
+ numeric old_jut, old_brack; old_jut=cap_jut; old_brack=bracket;
+ serif(1,2,a,serif_darkness,-cap_jut); serif(1,2,b,serif_darkness,cap_jut);
+ serif(2,1,c,serif_darkness,-cap_jut); serif(2,1,d,serif_darkness,cap_jut);
+ bracket:=.5old_brack;cap_jut:=.5old_jut;
+ if not monospace: serif(3,4,e,serif_darkness,-cap_jut); fi
+ bracket:=2old_brack; cap_jut:=2old_jut;
+ serif(3,4,f,.6serif_darkness,if monospace:.7 fi cap_jut);
+ cap_jut:=old_jut; bracket:=old_brack;
+ fi
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter L";
+numeric topbar_; if monospace: topbar_=11/15;
+ else: topbar_=17/30; fi % Duerer's wierd value
+beginchar("L", hstretch*(topbar_+1/6)*side#+u#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % prepare for arms and serifs
+pos3(thin,90); pos4(dslab,0);
+rt x4l=topbar_*side; bot y4=vround(h-vstretch*thick);
+pos8(thin,-90); pos9(dslab,0); x8=x2; bot y8r=0; rt x9r=hround(w-.5u);
+y9=y8r+thin+vstretch*1/6side; foot(8,9,g,serif_darkness,x9-x4-thick);
+ % lower arm
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut); serif(1,2,d,serif_darkness,cap_jut);
+ if not monospace: temp_:=slab; slab:=thin;
+ serif(2,1,c,serif_darkness,cap_jut);
+ slab:=temp_; fi fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar; % end of "L"
+
+cmchar"The letter M";
+beginchar("M", u#+2cap_jut#+.8side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+pos1(thin,0); pos2(thin,0); lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+pos3(thick,0); pos4(thick,0); x3r=x4r=w-x1l; top y3=h; bot y4=0;
+filldraw stroke z1e--z2e; % left vertical stem
+filldraw stroke z3e--z4e; % right vertical stem
+numeric long, short, hypot, alpha; long=h-bracket; short=w/2-thin-cap_jut;
+hypot=long++short; alpha=hypot/long;
+pos5(alpha*thick,0); pos6(alpha*thick,0);
+z5l=z1l; bot lft z6l=(w/2-.5currentbreadth,if not monospace:0 else:h/3 fi);
+pos7(alpha*thin,0); pos8(alpha*thin,0);
+z6l=z7r; z8l=z3l; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+filldraw z5r--z0--z8l--z8r--z6l--z5l--cycle;
+if serifs:
+ serif(2,1,a,serif_darkness,-cap_jut); serif(1,2,b,serif_darkness,-cap_jut);
+ % left serifs
+ serif(3,4,c,serif_darkness, cap_jut); serif(4,3,d,serif_darkness, cap_jut);
+ % right serifs
+ serif(2,1,e,serif_darkness,cap_jut); serif(4,3,f,serif_darkness,-cap_jut);
+ % lower, inner serifs
+ fi
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter N";
+beginchar("N", u#+2cap_jut#+.8side#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+numeric long, short, hypot, alpha; long=h; short=side-2cap_jut;
+hypot=long++short; alpha=hypot/long;
+pos1(thin,0); pos2(thin,0); lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+pos3(thin,0); pos4(thin,0); x3=x4; x3r=w-x1l; y3=y1; y4=y2-o;
+pos 5(alpha*thick,0); pos6(alpha*thick,0);
+z5r=z1r; z6l=z4r; z0=whatever[z1r,z2r]=whatever[z5l,z6l]; % under notch point
+z0'=whatever[z5r,z6r]=whatever[z3l,z4l];
+filldraw z1r--z1l--z2l--z2r--z0--z6l--z3r--z3l--z0'--cycle;
+if serifs:
+ serif(2,1,b,serif_darkness,-cap_jut); serif(2,1,c,serif_darkness,cap_jut);
+ % bottom, left serifs
+ serif(3,4,d,serif_darkness,-cap_jut);serif(3,4,e,serif_darkness,cap_jut);
+ % top right serifs
+ z.a=(x1l-1.5cap_jut,y1); pickup tiny.nib; filldraw
+ z0{z0-z4r}..{left}(z.a-(0,eps))..z.a--z1r--cycle;
+ fi
+penlabels(0,0',1,2,3,4,5,6); endchar;
+
+cmchar "The letter O";
+beginchar("O", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0); pair durer[];
+x2r=u; x4r=w-u; y1r=h+o; y3r=-o; z0=(w/2,h/2);
+z0=.5[z5,z6]; numeric axis_angle;
+durer1=(x2r,y1r-o); durer2=(x4r, ypart durer1);
+durer3=(xpart durer1, y3r+o); durer4=(xpart durer2, ypart durer3);
+axis_angle=angle(durer2-durer3);
+z5-z6=(thick,0)rotated axis_angle;
+y2r=y6; y4r=y5; x1r=x5; x3r=x6;
+forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor
+x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r;
+x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r;
+path p,p';
+p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)&
+ pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle;
+path anti_diag; anti_diag=z0--durer1;
+z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90);
+x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270);
+path diag; diag=z0--durer2;
+z41r=diag intersectionpoint p; penpos41(thick, axis_angle);
+x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180);
+if not monospace: p'=
+ z1l{left}..z21l..z2l{down}..z32l..
+ z3l{right}..z43l..
+ z4l{up}..z41l..{left}cycle;
+ else:p'=z1l..z21l..z32l..z3l..z43l..z41l..cycle; fi
+fill p; unfill p';
+penlabels(0,1,2,3,4,5,6,21,32,43,41); endchar;
+
+cmchar "The letter P";
+beginchar("P", 1.5u#+P_width#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, 0);
+pickup tiny.nib; pos1(thick,0); pos2(thick,0);
+top lft z1l=(.5u+cap_jut,h); bot lft z2l=(.5u+cap_jut,0);
+filldraw stroke z1e--z2e; % vertical stem
+pos3(thin,90); pos4(thin,90); pos5(thick,0);
+pos6(if not monospace and serifs: .5thin else:thin fi,-90);
+top y3r=top y4r=h; x3=x1; x4=x1r+thick; filldraw stroke z3e--z4e;
+x6=x4; y6=hround h/2; rt x5r=hround(w-u); y5=.5[y4,y6];
+y7=y6; if serifs: x7=.75[rt x1r, x6]; else: x7=x3; fi
+pos7(if not monospace and serifs:.5thin else:thin fi,-90);
+filldraw stroke pulled_super_arc.e(4,5,eta)&pulled_super_arc.e(5,6,eta)
+ ..z7e; % lobe
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut);
+ serif(2,1,c,serif_darkness,cap_jut); fi
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter Q";
+beginchar("Q", 2u#+side#, cap_height#, 0);
+adjust_fit(0,0); pair durer[];
+x2r=u; x4r=w-u; y1r=h+o; y3r=-o; z0=(w/2,h/2);
+z0=.5[z5,z6]; numeric axis_angle;
+durer1=(x2r,y1r-o); durer2=(x4r, ypart durer1);
+durer3=(xpart durer1, y3r+o); durer4=(xpart durer2, ypart durer3);
+axis_angle=angle(durer2-durer3);
+z5-z6=(thick,0)rotated axis_angle;
+y2r=y6; y4r=y5; x1r=x5; x3r=x6;
+forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor
+x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r;
+x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r;
+path p,p';
+p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)&
+ pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle;
+path anti_diag; anti_diag=z0--durer1;
+z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90);
+x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270);
+path diag; diag=z0--durer2;
+z41r=diag intersectionpoint p; penpos41(thick, axis_angle);
+x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180);
+if not monospace: p'=
+ z1l{left}..z21l..z2l{down}..z32l..
+ z3l{right}..z43l..
+ z4l{up}..z41l..{left}cycle;
+ else:p'=z1l..z21l..z32l..z3l..z43l..z41l..cycle; fi
+fill p; unfill p';
+% now for the tail!
+numeric thick',thick''; thick'=(1-tail_corr)*thick; thick''=(1+tail_corr)*thick;
+numeric tail_slope; tail_slope=-20/36; % measured from D\"urer's figure
+z10r=p intersectionpoint (z0--(x4r,0));
+z10l=p intersectionpoint (quartercircle rotated 180 scaled 2thick'
+ shifted z10r);
+y12r-y10r=tail_slope*(x12r-x10r); x12r=4/3x4r;
+numeric tail_angle; tail_angle=angle(z10r-z12r)-90;
+penpos12(thick',tail_angle);
+penpos11(thick'', tail_angle); z11=(x4r,0);
+if not monospace:
+ x14=19/8 x4r; y14=-3/8h; penpos14(max(2,eps),90);
+ numeric tail_length; tail_length=x14-x10r;
+ penpos13(max(2,tail_corr*thick),90);
+ x13=x14-1/9tail_length; y13=(1+.25tail_corr)*y14;
+ fi
+fill stroke z10.e..z11.e..z12.e if not monospace:..z13.e{right}..z14.e fi;
+penlabels(0,1,2,3,4,5,6,10,11,12,13,14,15); endchar;
+
+cmchar "The letter R";
+beginchar("R", .5u#+max(cap_jut#+.9side#,1.5P_width#), cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(thick,0); pos2(thick,0);
+top lft z1l=(.5u+cap_jut,h); bot lft z2l=(.5u+cap_jut,0);
+filldraw stroke z1e--z2e; % vertical stem
+pos3(thin,90); pos4(thin,90); pos5(thick,0);
+pos6(thin, -90);
+top y3r=top y4r=h; x3=x1; x4=x1r+thick;
+x6=x4; y6=hround h/2; rt x5r=hround(.5u+P_width if not monospace:
+ +1/2thin fi); y5=.5[y4,y6];
+y7=y6; x7=x3; pos7(thin, -90);
+filldraw stroke z3e--pulled_super_arc.e(4,5,eta)&
+ pulled_super_arc.e(5,6,eta)..z7e; % lobe
+numeric half_letter_width; 2half_letter_width+1/2u=w;
+if serifs: half_letter_width:=half_letter_width+1/2u;
+ else: half_letter_width:=half_letter_width-1.6thin; fi
+path p; p=pulled_super_arc.r(5,6,eta)..z7r;
+z0r=p intersectionpoint ((half_letter_width,0)--(half_letter_width,h));
+path circ_; circ_= (((halfcircle scaled 2thick) rotated 180) shifted z0r);
+z0l= p intersectionpoint circ_;
+if not monospace: z0'=(.45[half_letter_width,w],0);
+ else: z0'=(.42[half_letter_width,w],0); fi
+numeric tail_angle; tail_angle=angle(z0l-z0');
+penpos8(thick, tail_angle-90); z8l=whatever[z0', z0l];
+ x8=1/5[half_letter_width,w];
+penpos9(2/3thick,tail_angle-90); z9r=whatever[z0r, z8r];
+ x9r=.5[half_letter_width, w];
+%penpos10(if monospace:1/2 fi dslab,90); z10l=(w,0);
+penpos10(if monospace:1/2 dslab else: .5thin fi,90); z10l=(w,0);
+fill z0l--z8l...{right}z10l--z10r{-w,1/4h}..z9r--z0r--cycle; % tail
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut);
+ serif(2,1,c,serif_darkness,cap_jut); fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10); labels(0'); endchar;
+
+cmchar "The Knuthian S";
+beginchar("S", 2u#+1/2 side# if not monospace:+thick# fi, cap_height#, 0);
+adjust_fit(0,0); pickup tiny.nib;
+pair durer[]; % points to contain corner coords of Durer square
+ypart durer3=ypart durer4=0; xpart durer4-xpart durer1=side;
+xpart durer1=u-1.5thick;
+durer1=(xpart durer3, h); durer2=(xpart durer 4, ypart durer1);
+numeric slope, diag_angle; diag_angle=angle(durer2-durer3);
+slope=-if not monospace: 3/4 else: 1/2 fi h/(xpart durer4-xpart durer3);
+pos0(thick,diag_angle); x0=.52[xpart durer1, xpart durer2];
+y0=h/2;
+lft x3l=u if not monospace:+2/3thick fi; rt x3r=lft x3l+5/6thick;
+pos2(thin,-diag_angle); top y2l=h+o;
+if x0-x3r>thick: x2l=x0 if monospace:+.4thin fi; else:
+ x2l=x0r; slope:=-1/2; fi
+%if not monospace:
+% if x2-rt x3r<thick: x2:=lft x3r+thick; x2l:=x2r:=x2; fi fi
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r);
+pos7(thin,-diag_angle); x7r=x0; bot y7r=-o; rt x6r=w-if monospace:.75 fi u;
+ lft x6l=rt x6r-thick;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r);
+pos1(max(currentbreadth+eps,5/6 thick),-90);
+top y1l=h+o-thin; rt x1=x0+2thick+o;
+pos8(1.5thick,-80);lft x8r=u; bot y8r=thin-o;
+if not monospace:
+ filldraw z1l..z2l{left}..{down}z3l..z4l--z5l..{down}z6l..{left}z7l..z8l
+ --z8r..{right}z7r..{up}z6r..z5r--z4r..{up}z3r..{right}z2r..z1r--cycle;
+ else: draw z1l..z2l{left}..{down}z3l..z4l--z5l..{down}z6l..{left}z7l..z8l;
+ draw z8r..{right}z7r..{up}z6r..z5r--z4r..{up}z3r..{right}z2r..z1r;
+ fi
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter T";
+beginchar("T",2u#+.9side#, cap_height#,0);
+adjust_fit(0,0); pickup tiny.nib;
+pos1(thick,0); pos2(thick,0); .5[x1r,x1l]=w/2; .5[x2r,x2l]=w/2;
+top y1=h; bot y2=0; filldraw stroke z1e--z2e; % central stem
+numeric alpha, stroke_angle; stroke_angle=55;
+if monospace: alpha=1; else: alpha=sqrt2; fi
+if not serifs: stroke_angle:=90; alpha:=1; fi % sans-serif values
+pos3(alpha*thin,stroke_angle); pos4(alpha*thin,stroke_angle);
+lft x3l=u; top y3r=h; x4r=w-x3l; y4=y3;
+filldraw stroke z3e--z4e; % top horizontal
+if serifs:
+ serif(2,1,a,serif_darkness,-cap_jut);serif(2,1,b,serif_darkness,cap_jut);
+ T_flourish(3,4,c,.75serif_darkness,.5serif_darkness);
+ T_flourish(4,3,d,.5serif_darkness,.75serif_darkness);
+ fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter U";
+beginchar("U", u#+2cap_jut#+.8side#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+pickup tiny.nib; pos1(thick,0); pos2(thick,0); pos2'(thick,180);
+pos3(thin,-90); pos4(thin,0); pos5(thin,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o; z2'=z2;
+lft x1l=hround .5u+cap_jut;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_super_arc.e(2',3,eta)
+ & pulled_super_arc.e(3,4,eta)&z4e--z5e;
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(1,2,b,serif_darkness,cap_jut);
+ serif(5,4,c,serif_darkness,-cap_jut); serif(5,4,d,serif_darkness,cap_jut); fi
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter V";
+beginchar("V",2cap_jut_factor*cap_jut#+.8side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+numeric alpha; alpha=((h+cap_jut)++(w/2))/(h+cap_jut);
+pos1(alpha*thick,0); pos2(alpha*thick,0);
+pos3(alpha*thin,0); pos4(alpha*thin,0);
+top y1=top y4=h; lft x1l=cap_jut_factor*cap_jut; x4r=w-x1l;
+lft x2l=hround w/2; x3r=x2l; bot y2=bot y3=-apex_o;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l]; % notch point
+filldraw z0--diag_end(0,4l,1,1,4r,3r)--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle;
+if serifs: bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut;
+ pickup tiny.nib; numeric jut_factor;
+ if monospace: jut_factor=1; else: jut_factor=3/4; fi
+ serif(1,2,a,.8serif_darkness,-cap_jut); serif(4,3,d,.8serif_darkness,cap_jut);
+ bracket:=jut_factor*bracket;
+ serif(1,2,b,7/8 serif_darkness, jut_factor*cap_jut);
+ serif(4,3,c,7/8 serif_darkness,-jut_factor*cap_jut); fi
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "The letter W";
+numeric alpha;
+ alpha=((cap_height#+cap_jut#)++(.4side#+cap_jut_factor*cap_jut#))/
+ (cap_height#+cap_jut#);
+beginchar("W", 2cap_jut_factor*cap_jut#+1.6side#-alpha*thick#, cap_height#, 0);
+adjust_fit(.5cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+mid_corr=if monospace: -apex_corr else: 1/3jut fi;
+pos1(alpha*thick,0); pos2(alpha*thick,0);
+pos3(alpha*thin,0); pos4(alpha*thin,0);
+pos5(alpha*thick,0); pos6(alpha*thick,0);
+pos7(alpha*thin,0); pos8(alpha*thin,0);
+numeric V_width; V_width=2cap_jut_factor*cap_jut+4/5side;
+if not monospace:
+ top y1=top y4=h; lft x1l=cap_jut_factor*cap_jut; x4r=V_width-x1l;
+ lft x2l=hround V_width/2; x3r=x2l; bot y2=bot y3=-apex_o;
+ pair shift_amt; ypart shift_amt=0;
+ xpart shift_amt=V_width-2cap_jut_factor*cap_jut-alpha*(thick);
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l]; % notch point
+ path p; p=z0--diag_end(0,4l,1,1,4r,3r)--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle;
+ filldraw p; filldraw (p shifted shift_amt); % the 2 V's
+ forsuffixes t=1,2,3,4: z[t+4]=z.t shifted shift_amt; endfor
+else: top y1=h; lft x1l=cap_jut_factor*cap_jut; bot y2=bot y3=-apex_o;
+ x2l+apex_corr=x3l;
+ x8=w-x1; y8=y1; x2-x1=x4-x3=x6-x5=x8-x7;
+ x6l+apex_corr=x7l; y6=y7=y2;
+ y4:=vround .6h; y5=y4;
+ x5=x4;
+ y4l:=y4r:=y4; % ??
+ z0 =whatever[z1r,z2r];
+ z0'=whatever[z7l,z8l]; y0=y0'=h/9;
+ z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+ filldraw z0--diag_end(0,4l,1,1,4r,3r)--z2l--diag_end(2l,1l,1,1,1r,0)--cycle;
+ filldraw z0'--diag_end(0',8l,1,1,8r,7r)--z7l--diag_end(7l,5l,1,1,5r,0')
+ --cycle; fi
+if serifs: bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut;
+ pickup tiny.nib; numeric jut_factor;
+ if monospace: jut_factor=1.8; else: jut_factor=3/4; fi
+ serif(1,2,a,.8serif_darkness,-cap_jut);
+ serif(8,7,f,.8serif_darkness,cap_jut);
+ if not monospace: serif(5,6,d,.8serif_darkness,cap_jut);
+ serif(5,6,c,.8serif_darkness,-cap_jut); fi
+ bracket:=jut_factor*bracket;
+ serif(1,2,b,7/8 serif_darkness, jut_factor*cap_jut);
+ serif(8,7,e,7/8 serif_darkness,-jut_factor*cap_jut);
+ fi
+penlabels(0,0',1,2,3,4,5,6,7,8,45); endchar;
+
+cmchar "The letter X";
+beginchar("X", 2cap_jut_factor*cap_jut#+.8side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+numeric alpha; alpha=(h++(w-2cap_jut_factor*cap_jut))/h;
+lft x1l=cap_jut_factor*cap_jut; top y1=h if monospace:-1/2 crisp fi;
+penpos1(alpha*thick, 0);
+x4r=w-x1l; bot y4=0 if monospace:+1/2 crisp fi; penpos4(alpha*thick,0);
+rt x2r=w-cap_jut_factor*cap_jut; y2=y1; penpos2(alpha*thin,0);
+x3l=w-x2r; y3=y4; penpos3(alpha*thin,0);
+fill diag_end(4r,1r,.5,1,1l,4l)--diag_end(1l,4l,.5,1,4r,1r)--cycle; %lft diag
+fill diag_end(2l,3l,.5,1,3r,2r)--diag_end(3r,2r,.5,1,2l,3l)--cycle; % rt diag
+if serifs: bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut;
+ pickup tiny.nib; numeric jut_factor;
+ if monospace: cap_jut:=.5cap_jut; jut_factor=1; else: jut_factor=3/4; fi
+ serif(1,4,a,.8serif_darkness,-cap_jut);serif(4,1,d,.8serif_darkness,cap_jut);
+ serif(2,3,f,.8serif_darkness,cap_jut);serif(3,2,g,.8serif_darkness,-cap_jut);
+ bracket:=jut_factor*bracket;
+ serif(1,4,b,7/8 serif_darkness,.75cap_jut);
+ serif(4,1,c,7/8 serif_darkness,-.75cap_jut);
+ serif(2,3,e,7/8 serif_darkness,-.75cap_jut);
+ serif(3,2,h,7/8 serif_darkness,.75cap_jut); fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter Y";
+beginchar("Y", 2cap_jut_factor*cap_jut#+.8side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup pencircle scaled 0pt;
+numeric alpha, long, short, hypot; long=h/2;
+short=.5(w-thick)-cap_jut_factor*cap_jut;
+ hypot=long++short; alpha=hypot/long;
+penpos1(thick,0); lft x1l=cap_jut_factor*cap_jut if monospace:+.5tiny fi;
+top y1=h if monospace:-.5tiny fi;
+penpos4(thin,0); x4r=w-x1l; y4=y1;
+penpos2(thick,0); penpos3(thin,0);
+penpos5(thick,0); penpos6(thick,0);
+x5=x6=w/2; bot y6=0 if monospace:+.5tiny fi;
+y5=if not monospace: h/2 else:3h/8 fi;
+x2l=x5l; x3r=x5r; y2=y3=if not monospace:h/2 else: 3h/8 fi;
+z0=whatever[z1r, z2r]=whatever[z3l,z4l]; % notch point
+fill z1l--z5l--z6l--z6r--z5r--z4r--z4l--z0--z1r--cycle;
+if serifs: numeric jut_factor;
+ serif(6,5,e,serif_darkness,-.7cap_jut); serif(6,5,f,serif_darkness,.7cap_jut);
+ % bottom serifs
+ bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut;
+ if monospace: cap_jut:=.5cap_jut; jut_factor=1; else: jut_factor=3/4; fi
+ serif(1,2,a,serif_darkness,-.7cap_jut);serif(4,3,d,serif_darkness,.7cap_jut);
+ % top, outer serifs
+ bracket:=jut_factor*bracket;
+ if monospace: cap_jut:=1.5cap_jut; fi
+ serif(1,2,b,7/8 serif_darkness,.6cap_jut);
+ serif(4,3,c,7/8 serif_darkness,-.6cap_jut); % top, inner serifs
+ fi
+penlabels(0,1,2,3,4,5,6); endchar; % End of "Y"
+
+cmchar "The letter Z";
+beginchar("Z", 2u#+.8side#, cap_height#,0);
+adjust_fit(0, 0); pickup tiny.nib;
+numeric alpha, long, short, hypot;
+long=h; short=w-2u-thick; hypot=long++short;
+alpha=hypot/long;
+pos1(thin,90); pos2(thin,90); pos3(alpha*thick, 0);
+pos4(alpha*thick, 0); pos5(thin,-90); pos6(thin,-90);
+rt x3r=w-u; top y3=h; x4l=w-x3r; bot y4=0;
+top y1r=h; lft x1=u; y2=y1; rt x2=x3;
+bot y5r=bot y6r=0; lft x5=x4; rt x6=w-u;
+filldraw stroke z1e--z2e; % top bar
+filldraw stroke z3e--z4e; % diagonal
+filldraw stroke z5e--z6e; % bottom bar
+if serifs: pickup crisp.nib; % prepare for arms and serifs
+ pos7(thin, 90); pos8(dslab,180); z7=z2; lft x8r=u;
+ bot y8=h-if monospace:2 fi vstretch*thick;
+ arm(7,8,a,serif_darkness,0); % upper dropped serif
+ pos9(thin,-90); z9=z5; pos10(dslab,0); rt x10r=w-u;
+ top y10=if monospace: 2.5 fi vstretch*thick;
+ arm(9,10,b,serif_darkness,0); fi
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/duerer/dtitle.mf b/Master/texmf-dist/fonts/source/public/duerer/dtitle.mf
new file mode 100644
index 00000000000..c5ba77de931
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/duerer/dtitle.mf
@@ -0,0 +1,234 @@
+% This is DTITLE.MF, adapted from Knuths title.mf (Jan 8, 1990).
+% This makes a short font (caps only)
+
+% This file also contains special macros universally needed in the durer font
+% but not in CM.BAS.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% MACRO SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def formal=not informal enddef;
+
+vardef antiserif(suffix $,$$,@)(expr darkness, jut) suffix modifier=
+ % erases a serif-like region at |z_$| from |z_{$$}|
+pickup crisp.nib; pair downward; downward=z$-z$$;
+y@2=jut; x@1=lft x$l+jut; top y@1=bot y$;
+z@2-penoffset downward of currentpen=
+ z$l+penoffset downward of pen_[tiny.nib]+whatever*downward;
+erase filldraw z@2{downward}...darkness[(x@2,y@1), .5[z@2,z@1]]{z@1-z@2}
+ ...{right}z@1--(x@1,y@1-eps)--origin--(x@2-eps,y@2)--z@2&cycle;
+labels(@1, @2); enddef;
+
+
+let cm_arm=arm;
+
+vardef arm(suffix $,$$,@)(expr darkness, armjut) = % arm from |z$| to |z$$|
+numeric vjut_; vjut_= abs(bot y$l-bot y$$);
+x@0=good.x(x$$r-armjut); y@0=y$r;
+ if serifs: y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0);
+ if x$$>=x$: x@2=x@1 - vjut_; else: x@2=x@1+vjut_; fi y@2=y$l;
+ filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l]]{z@2-z$$l}...
+ z@2if x$$>=x$: {left} else: {right} fi
+ ---z$l--z$r--z@0--z$$r..cycle; % arm and beak
+ else: filldraw z$l--z$r--z@0--z$$r--cycle; fi % sans-serif arm
+ penlabels(@0,@1,@2); enddef;
+
+vardef foot(suffix $, $$, @)(expr darkness, armjut) = % curved beak on E and L
+numeric vjut_; vjut_= abs(bot y$-bot y$$);
+x@0=good.x(x$$r-armjut); y@0=y$r;
+if x@0>w-.5u: x@0:=w-.5u; fi
+ if serifs: y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0);
+ x@2=x@1-vjut_; y@2=y$l;
+ filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ]...z@2
+ ---z$l--z$r--z@0..tension1.2..{up}z$$r..cycle; % arm and beak
+ else: filldraw z$l--z$r--(x$$r,y$r)--(x$$r,y$l)--cycle; fi
+ penlabels(@0,@1,@2); enddef;
+
+vardef flourish(suffix from, at, to, @) % flourish for top of `A'
+ (expr darkness)=
+ pickup pencircle scaled 0pt; % use this after all serifs have been drawn
+ pair downward; pair upward;
+ upward=z.at.l-z.from.l; downward=z.to.r-z.at.r;
+ top y@1=top y.at; x@1=.5[x.from,x.at];
+ % leftmost point of flourish
+ numeric alpha[]; alpha1=angle(upward);
+ y@2=vround(top y.at-bracket/sind alpha1 ); lft z@2=whatever[z.at.l,z.from.l];
+ % |z@2| lies on the `from' limb and marks the beginning of the flourish
+ x@1'=x@1; y@1'=y@1-.8min(tiny,thin); % point to give end of flourish some thickness
+ top y@3=y.at; z@3=whatever[z@2,z.at.l]; % |z@3| is like Knuth's `corner' point
+ filldraw z@2{upward}...darkness[.5[z@1',z@2],z@3]{z@1'-z@2}
+ ...z@1'{left}..{right}z@1--lft z.at.r--z@2..cycle;
+ labels(@1,@2,@3); enddef;
+
+vardef pulled_super_arc.l(suffix $, $$)(expr darkness)=
+ pair corner;
+ if y$=y$r: corner=(x$l, y$$l);
+ else: corner=(x$$l,y$l); fi
+ z$l{corner-z$l}...(darkness)[corner, .5[z$l, z$$l]]{z$$l-z$l}
+ ...{z$$l-corner}z$$l enddef;
+
+vardef pulled_super_arc.r(suffix $, $$)(expr darkness)=
+ pair corner;
+ if y$=y$r: corner=(x$r,y$$r);
+ else: corner=(x$$r, y$r); fi
+ z$r{corner-z$r}...(darkness)[corner, .5[z$r, z$$r]]{z$$r-z$r}
+ ...z$$r{z$$r-corner} enddef;
+
+vardef pulled_arc@#(suffix $, $$)=
+ pulled_super_arc@#($,$$)(eta) enddef;
+
+let cm_font_setup=font_setup; % Knuth's original font_setup
+
+def slim_font_setup = % trimmed font_setup for use with Durer caps only
+ if monospace: let adjust_fit=mono_adjust_fit;
+ def mfudged=fudged enddef;
+ mono_charic#:=body_height#*slant;
+ if mono_charic#<0: mono_charic#:=0; fi
+ mono_charwd#:=9u#; define_whole_pixels(mono_charwd);
+ else: let adjust_fit=normal_adjust_fit;
+ def mfudged= enddef; fi
+ define_pixels(u,width_adj,serif_fit,cap_serif_fit,jut,cap_jut,bar_height,
+ dish,bracket,beak_jut,apex_o,apex_corr);
+ define_whole_pixels(letter_fit,fine,crisp,tiny);
+ define_whole_vertical_pixels(body_height,asc_height,
+ cap_height,x_height,comma_depth,desc_depth);
+ define_whole_blacker_pixels(hair,stem,cap_stem);
+ define_whole_vertical_blacker_pixels(vair,dslab,slab);
+if slab<eps: slab:=eps fi;
+ define_corrected_pixels(o);
+ forsuffixes $=hair,stem,cap_stem:
+ fudged$.#:=fudge*$.#; fudged$:=hround(fudged$.#*hppp+blacker);
+ forever: exitif fudged$>.9fudge*$; fudged$:=fudged$+1; endfor endfor
+ rule_thickness:=ceiling(rule_thickness#*hppp);
+ heavy_rule_thickness:=ceiling(3rule_thickness#*hppp);
+ oo:=vround(.5o#*hppp*o_correction)+eps;
+ apex_oo:=vround(.5apex_o#*hppp*o_correction)+eps;
+ lowres_fix(stem) 1.3;
+ ess:=(ess#/stem#)*stem; cap_ess:=(cap_ess#/cap_stem#)*cap_stem;
+ dw:=(curve#-stem#)*hppp; bold:=curve#*hppp+blacker;
+ dh#:=.6designsize;
+ more_super:=max(superness,sqrt .77superness);
+ hein_super:=max(superness,sqrt .81225258superness); % that's $2^{-.3}$
+ clear_pen_memory;
+ if fine=0: fine:=1; fi
+ forsuffixes $=fine,crisp,tiny:
+%%% fine $ %%%% temporary formatting convention for MFT
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor endfor
+%%% @ $ %%%% restore ordinary formatting for $
+ min_Vround:=max(fine.breadth,crisp.breadth,tiny.breadth);
+ if min_Vround<vround min_Vround: min_Vround:=vround min_Vround; fi
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ currenttransform:=identity slanted slant
+ yscaled aspect_ratio scaled granularity;
+ if currenttransform=identity: let t_=relax
+ else: def t_ = transformed currenttransform enddef fi;
+ numeric paren_depth#; .5[body_height#,-paren_depth#]=math_axis#;
+ numeric asc_depth#; .5[asc_height#,-asc_depth#]=math_axis#;
+ body_depth:=desc_depth+body_height-asc_height;
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode: if mode<=smoke: shrink_fit:=0; fi fi
+ enddef;
+
+def durer_font_setup= % contains special stuff for Durer fonts
+define_pixels(side,thick,thin);
+if not known dslab#: dslab=eps; fi
+enddef;
+
+vardef T_flourish(suffix at,from,aux)(expr top_dark, bot_dark)=
+ pickup tiny.nib; pair xeps_,yeps_; yeps_=(0,eps);
+ numeric stroke_angle_; stroke_angle_=angle(z.at.r-z.at.l);
+ numeric slab'; slab'=.6slab;
+ pos.at'(alpha*thin+alpha*cap_jut,stroke_angle_); z.at'=z.at;
+ if x.at<x.from: xeps_=(eps,0);% left flourish
+ rt x.aux2-lft x.at'r=alpha*slab';
+ x.aux1=x.at.r+bracket+slab';
+ else: xeps_=(-eps,0); % right flourish
+ rt x.at'r-lft x.aux2=alpha*slab';
+ x.aux1=x.at.r-bracket-slab'; fi
+y.aux1=y.at.r; y.aux4=y.at.l; z.aux1-z.aux4=whatever*(z.at.r-z.at.l);
+y.aux2=y.at'r; y.aux3=y.at'l; z.aux2-z.aux3=whatever*(z.at.r-z.at.l);
+if top_dark>=0: z.aux0 =whatever[z.at.r,z.aux1]=whatever[z.aux2,z.aux3];
+ filldraw z.aux1{z.at.r-z.aux1}..
+ top_dark[z.aux0 ,.5[z.aux1,z.aux2]]..
+ if not monospace:{z.at'r-z.at}z.aux2--
+ else: {z.at'r-z.at}(z.at'r+xeps_).. fi
+ z.at'r--2/3[z.at.r,z.at.l]--2/3[z.aux1,z.aux4]--cycle; fi
+if bot_dark>=0: z.aux0'=whatever[z.at.l,z.aux4]=whatever[z.aux2,z.aux3];
+ filldraw z.aux4{z.at.l-z.aux4}..
+ bot_dark[z.aux0',.5[z.aux4,z.aux3]]..
+ if not monospace:{z.at'l-z.at}z.aux3--
+ else: {z.at'l-z.at}(z.at'l+xeps_).. fi
+ z.at'l--2/3[z.at.l,z.at.r]--2/3[z.aux4,z.aux1]--cycle; fi
+penlabels(aux1, aux2,aux3,aux4);
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% END OF MACROS %%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_coding_scheme:="ASCII caps and digits";
+
+mode_setup;
+
+durer_font_setup;
+if whole_font: font_setup; %slab:=eps;
+ define_whole_vertical_blacker_pixels(dslab,slab);
+ else: slim_font_setup; fi
+
+if informal: input dromani; % Durer upper case---informal style
+ else: input dromanu; fi % Durer upper case (majuscules)
+
+if whole_font:
+ input dromanl;
+ input dromand;
+ fi
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "P": "T": "Y": "A" kern kk#;
+ ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi,
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ ligtable "A": if serifs: "R": fi
+ "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+ligtable "I": "I" kern -k#; fi % Richard III
+
+bye.
+
+ ligtable "k": if serifs: "v": "a" kern -u#, fi "w": "e" kern k#,
+ "a" kern k#, "o" kern k#, "c" kern k#;
+ ligtable "P":
+ "y": "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, "," kern kk#;
+ ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#, "u" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ else: "o" kern k#, "e" kern k#, "u" kern k#,
+ "r" kern k#, "a" kern k#, "A" kern kk#; fi
+ ligtable "T": "y" kern if serifs: k# else: kk# fi,
+ "Y": "e" kern kk#, "o" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#;
+ if serifs: ligtable "h": "m": "n":
+ "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#;
+ ligtable "c": "h" kern k#, "k" kern k#; fi
+ ligtable "o": "b": "p": "e" kern -k#, "o" kern -k#, "x" kern k#,
+ "d" kern -k#, "c" kern -k#, "q" kern -k#,
+ "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "t": "y" kern k#,
+ "u": "w" kern k#;
+ ligtable "g": "j" kern -k#; % logjam
+
+bye.
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb10.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb10.mf
new file mode 100644
index 00000000000..f4e637ff7ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb10.mf
@@ -0,0 +1,23 @@
+% This is OCRB10_mf (the normal OCRB-B)
+%
+
+font_identifier:="OCRB";
+font_size 10pt#;
+designsize:=10;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb10e.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb10e.mf
new file mode 100644
index 00000000000..6aad4ec755c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb10e.mf
@@ -0,0 +1,23 @@
+% This is OCRB10E_mf (sharp edges + negativ)
+%
+
+font_identifier:="OCRB10E";
+font_size 10pt#;
+designsize:=10;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 1; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 1; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb10f.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb10f.mf
new file mode 100644
index 00000000000..4988671b3cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb10f.mf
@@ -0,0 +1,23 @@
+% This is OCRB10F_mf (outline)
+%
+
+font_identifier:="OCRB10F";
+font_size 10pt#;
+designsize:=10;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0.60; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb10g.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb10g.mf
new file mode 100644
index 00000000000..d2b7593b0bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb10g.mf
@@ -0,0 +1,23 @@
+% This is OCRB10G_mf (outline,slanted)
+%
+
+font_identifier:="OCRB10G";
+font_size 10pt#;
+designsize:=10;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0.2; % slant factor (typical zero or 0.2)
+lightfactor := 0.60; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb10l.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb10l.mf
new file mode 100644
index 00000000000..af18dd259ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb10l.mf
@@ -0,0 +1,23 @@
+% This is OCRB10l_mf (slanted)
+%
+
+font_identifier:="OCRB10L";
+font_size 10pt#;
+designsize:=10;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0.2; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb10s.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb10s.mf
new file mode 100644
index 00000000000..e81cc5ac499
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb10s.mf
@@ -0,0 +1,23 @@
+% This is OCRB10S_mf (sharp edges)
+%
+
+font_identifier:="OCRB10S";
+font_size 10pt#;
+designsize:=10;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 1; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb10x.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb10x.mf
new file mode 100644
index 00000000000..fda594d2120
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb10x.mf
@@ -0,0 +1,23 @@
+% This is OCRB10x_mf (negativ normal)
+%
+
+font_identifier:="OCRB10X";
+font_size 10pt#;
+designsize:=10;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 1; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb5.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb5.mf
new file mode 100644
index 00000000000..ee054c79853
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb5.mf
@@ -0,0 +1,23 @@
+% This is OCRB5_mf (OCRB small at 5pt)
+%
+
+font_identifier:="OCRB5";
+font_size 5pt#;
+designsize:= 5;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb6.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb6.mf
new file mode 100644
index 00000000000..4aaf163c01e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb6.mf
@@ -0,0 +1,23 @@
+% This is OCRB6_mf (OCRB small at 6pt)
+%
+
+font_identifier:="OCRB6";
+font_size 6pt#;
+designsize:= 6;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb7.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb7.mf
new file mode 100644
index 00000000000..c707ef13bdd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb7.mf
@@ -0,0 +1,23 @@
+% This is OCRB7_mf (OCRB small at 7pt)
+%
+
+font_identifier:="OCRB7";
+font_size 7pt#;
+designsize:= 7;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb8.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb8.mf
new file mode 100644
index 00000000000..ba7352cab95
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb8.mf
@@ -0,0 +1,23 @@
+% This is OCRB8_mf (OCRB small at 8pt)
+%
+
+font_identifier:="OCRB8";
+font_size 8pt#;
+designsize:= 8;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrb9.mf b/Master/texmf-dist/fonts/source/public/ean/ocrb9.mf
new file mode 100644
index 00000000000..95c6dd1e2a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrb9.mf
@@ -0,0 +1,23 @@
+% This is OCRB9_mf (OCRB small at 9pt)
+%
+
+font_identifier:="OCRB9";
+font_size 9pt#;
+designsize:= 9;
+
+%%%%%%%%%%%%%%%%%%%%%%%%% font parameters %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+sharpedges := 0; % 0 -> rounded edges | 1 -> sharp edges
+globalslant := 0; % slant factor (typical zero or 0.2)
+lightfactor := 0; % (typical 0.6 for outlined characters)
+negativ := 0; % 0 -> normal | 1 -> white characters
+ % on dark background
+extraline := 0; % 0 -> normal
+%%%%%%% do the job %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input ocrbmac
+input ocrbdef
+
+for kkk:=0 step 1 until 144 : makechar kkk; endfor
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrbdef.mf b/Master/texmf-dist/fonts/source/public/ean/ocrbdef.mf
new file mode 100644
index 00000000000..50477327baa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrbdef.mf
@@ -0,0 +1,912 @@
+
+%
+% Korrekturstand
+%
+%
+% 27.10.1985 char 127 (kuenstlich nach unten gesetzt) Tuetelchen
+%
+%
+
+%--- Gamma ---
+o.s[0][1] := (-3,11.6)--(-3,0.9);
+o.s[0][2] := (-3,11.6)--(3.5,11.6);
+o.s[0][3] := (3.5,11.6)--(3.5,9.5);
+o.i[0]:=3 ; o.m[0] := 0.9;
+
+%--- Delta ---
+o.s[1][1] := (-3,0.7)--(0,11.5);
+o.s[1][2] := (0,11.5)--(3,0.7);
+o.s[1][3] := (-3,0.7)--(3,0.7);
+o.i[1 ]:=3 ; o.m[1] := 0.7;
+
+%--- Theta ---
+o.s[2][1] := (0,11.75)..(-3,9)..(-3.45,6.2)..(-2.8,3)..(0,0.65){right}..
+ (2.8,3)..(3.45,6.2)..(3,9)..cycle;
+o.s[2][2] := (-1,6.2)--(1,6.2);
+o.i[2 ]:=2 ; o.m[2] := 0.65;
+
+%--- Lambda ---
+o.s[3][1] := (-2.5,0.7)--(0,11.5);
+o.s[3][2] := (0,11.5)--(2.5,0.7);
+o.s[3][3] := (-3,0.7)--(-2,0.7);
+o.s[3][4] := (3,0.7)--(2,0.7);
+o.i[3 ]:=4 ; o.m[3] := 0.7;
+
+%--- Xi ---
+o.s[4][1] := (3.3,0.9)--(-3.3,0.9);
+o.s[4][2] := (-2.25,6.4)--(2.25,6.4);
+o.s[4][3] := (-3.3,11.4)--(3.3,11.4);
+o.i[4 ]:=3 ; o.m[4] := 0.9;
+
+%--- Pi ---
+o.s[5][1] := (-3,0.7)--(-3,11.6);
+o.s[5][2] := (3,0.7)--(3,11.6);
+o.s[5][3] := (-3.5,11.6)--(3.5,11.6);
+o.i[5 ]:=3 ; o.m[5] := 0.7;
+
+%--- Sigma ---
+o.s[6][1] := (3.3,0.9)--(-2.7,0.9);
+o.s[6][2] := (-2.7,0.9)--(-0.75,6.15);
+o.s[6][3] := (-0.75,6.15)--(-2.7,11.4);
+o.s[6][4] := (-2.7,11.4)--(3.3,11.4);
+o.s[6][5] := (3.3,0.9)--(3.3,1.4);
+o.s[6][6] := (3.3,11.4)--(3.3,10.9);
+o.i[6 ]:=6 ; o.m[6] := 0.9;
+
+%--- gamma ---
+o.s[7][1] := (-2.75,10)..(-1.25,11)..{down}(0,9)--(0,0.65);
+o.s[7][2] := (0,9){up}..(1.25,11)..(2.75,10);
+o.i[ 7]:=2 ; o.m[7] := 0.65;
+
+%--- phi ---
+o.s[8][1] := (0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}..
+ (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}..
+ (1,0.73)..(2,1.2)..(3,2.35)..(3.5,4.6){up}..
+ (3,6.9)..(2,8.05)..cycle;
+o.s[8][2] := (0,-1.5)--(0,10.75);
+o.s[8][3] := (-0.5,-1.5)--(0.5,-1.5);
+o.s[8][4] := (-0.5,10.75)--(0.5,10.75);
+o.i[8 ]:=4 ; o.m[8] := -1.5;
+
+%--- psi ---
+o.s[9][1] := (-2.75,10)..(-2.6,7.5)..(-2.4,5)..(-2,2.5)..(0,0.6)..
+ (2,2.5)..(2.4,5)..(2.6,7.5)..(2.75,10);
+o.s[9][2] := (0,-1)--(0,10.25);
+o.i[9 ]:=2 ; o.m[9] := -1;
+
+%--- Omega ---
+o.s[10][1] := (-2,0.6)--(-1.5,0.6);
+o.s[10][2] := (-1.5,0.6)..(-3.3,8.3)..(-3.5,10)..(-2.5,12.5)..(0,13.5)..
+ (2.5,12.5)..(3.5,10)..(3.3,8.3)--(1.5,0.6);
+o.s[10][3] := (1.5,0.6)--(2,0.6);
+o.i[10]:=3 ; o.m[10] := 0.6;
+
+%--- Pfeil nach oben ---
+o.s[11][1] := (0,0.7)--(0,11.4);
+o.s[11][2] := (-2.5,8.9)--(0,11.4);
+o.s[11][3] := (2.5,8.9)--(0,11.4);
+o.i[11]:=3 ; o.m[11] := 0.7;
+
+%--- Pfeil nach unten ---
+o.s[12][1] := (0,0.7)--(0,11.4);
+o.s[12][2] := (-2.5,3.2)--(0,0.7);
+o.s[12][3] := (2.5,3.2)--(0,0.7);
+o.i[12]:=3 ; o.m[12] := 0.7;
+
+%--- ' ---
+o.s[13][1] := (0,9.65)--(0,11.15);
+o.i[13]:=1 ; o.m[13] := 9.65;
+
+%--- umgedrehtes ! ---
+o.s[14][1] := (0,-3)--(0,3.85);
+o.s[14][2] := (-0.4,6.1)--(-0.4,6.9);
+o.s[14][3] := (-0.4,6.9)--(0.4,6.9);
+o.s[14][4] := (0.4,6.9)--(0.4,6.1);
+o.s[14][5] := (0.4,6.1)--(-0.4,6.1);
+o.i[14]:=5 ; o.m[14] := -3;
+
+%--- umgedrehtes ? ---
+o.s[15][1] := (3,-0.5)..(2.4,-2.15)..(0.8,-2.95)..(0.3,-3)..
+ (-0.4,-2.95)..(-1.3,-2.65)..(-2.1,-1.95)..(-2.4,-1.35)..
+ (-2.5,-0.75)..(-2.3,0.55)..(-1.4,1.65)..(-0.3,2.7)..
+ {up}(0,3.55)--(0,5);
+o.s[15][2] := (-0.4,8.95)--(-0.4,8.15);
+o.s[15][3] := (-0.4,8.15)--(0.4,8.15);
+o.s[15][4] := (0.4, 8.15)--(0.4,8.95);
+o.s[15][5] := (0.4,8.95)--(-0.4,8.95);
+o.i[15]:=5 ; o.m[15] := -3;
+
+%--- i ohne punkt ---
+o.s[16][1] := (-2.3,8.3)--(0.85,8.3)--(0.85,0.65);
+o.i[16]:=1 ; o.m[16] := 0.65;
+
+%--- j ohne punkt ---
+o.s[17][1] := (-1.8,8.3)--(0.75,8.3)--(0.75,1){down}..(0.5,-1)..(0,-1.7)..
+ (-1,-2.25)..(-2.8,-2.25){left};
+o.i[17]:=1 ; o.m[17] := -2.25;
+
+%--- accent acute ---
+o.s[18][1] := (0,9.65)--(-0.95,11.15);
+o.i[18]:=1 ; o.m[18] := 9.65;
+
+%--- accent grave ---
+o.s[19][1] := (0,9.65)--(0.95,11.15);
+o.i[19]:=1 ; o.m[19] := 9.65;
+
+%--- umgedrehtes ^ ---
+o.s[20][1] := (-3.5,15.55)--(0,10.3);
+o.s[20][2] := (0,10.3)--(3.5,15.55);
+o.s[20][3] := (3.5,15.55)--(0,11.7);
+o.s[20][4] := (0,11.7)--(-3.5,15.55);
+o.i[20]:=4 ; o.m[20] := 10.3;
+
+%--- irgendwas ---
+o.s[21][1] := (-3.5,15.55)..(0,12.3)..(3.5,15.55);
+o.i[21]:=1 ; o.m[21] := 12.3;
+
+%--- Querstrich oben ---
+o.s[22][1] := (-3.25,10.25)--(3.25,10.25);
+o.i[22]:=1 ; o.m[22] := 10.25;
+
+%--- Punkt oben ---
+o.s[23][1] := (-0.4,9.2)--(-0.4,10);
+o.s[23][2] := (-0.4,10)--(0.4,10);
+o.s[23][3] := (0.4,10)--(0.4,9.2);
+o.s[23][4] := (0.4,9.2)--(-0.4,9.2);
+o.i[23]:=4 ; o.m[23] := 9.2;
+
+%--- cedille ---
+o.s[24][1] := (-0.2,0.2)--(-0.2,-1.5);
+o.s[24][2] := (-0.2,-1.5)..(1.65,-3.25)..(-0.2,-5);
+o.i[24]:=2 ; o.m[24] := -5;
+
+%--- sz ---
+o.s[25][1] := (-3.1,0.65)--(-3.1,8){up}..(-3,10)..(-2.2,11.78)..(-1,12.5)..
+ {right}(0,12.6){right}..(1,12.5)..(2.2,11.9)..(3,10.6)..
+ (3.1,9.9)..(2.7,8.4)..(0.7,7.15)--(0.7,6.85)..(2.1,6.5)..
+ (3.1,5.5)..(3.5,3.8)..(3.3,2.4)..(2.5,1.2)..(1.3,0.75);
+o.i[25]:=1 ; o.m[25] := 0.65;
+
+%--- ae ligature ---
+o.s[26][1] := ((-2.45,7.8)..(0,8.65){right}..(2.05,8)..(2.85,6)..(2.85,5)--
+ (2.85,0.65)) shifted (-2.85,0);
+o.s[26][2] := ((2.85,5.05){left}..(0,5)..(-2,4.6)..(-3,3.7)..
+ (-3.25,2.7){down}..(-3,1.8)..(-1,0.6)..(1,1.15)..(2,2.05)..
+ (2.85,3.25)) shifted (-2.85,0);
+o.s[26][3] := ((-3.25,5)--(3.25,5){up}..(3.2,5.5)..(3,6.6)..(2,8.1)..
+ (1,8.55)..(0,8.65)..(-1,8.5)..(-2,7.9)..(-3,6.4)..
+ (-3.25,4.8){down}..(-3,3)..(-2,1.35)..(-1,0.8)..(0,0.6)..
+ (1,0.65)..(2,1)..(2.35,1.3)) shifted (3.25,0);
+o.i[26]:=3 ; o.m[26] := 0.6;
+
+%--- oe ligature ---
+o.s[27][1] := ((0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}..
+ (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}..
+ (1,0.73)..(2,1.2)..(3,2.35)..(3.5,4.6){up}..
+ (3,6.9)..(2,8.05)..cycle) shifted (-3.5,0);
+o.s[27][2] := ((-3.25,5)--(3.25,5){up}..(3.2,5.5)..(3,6.6)..(2,8.1)..
+ (1,8.55)..(0,8.65)..(-1,8.5)..(-2,7.9)..(-3,6.4)..
+ (-3.25,4.8){down}..(-3,3)..(-2,1.35)..(-1,0.8)..(0,0.6)..
+ (1,0.65)..(2,1)..(2.35,1.3)) shifted (3.25,0);
+o.i[27]:= 2 ; o.m[27] := 0.6;
+
+%--- durchgestrichenes o ---
+o.s[28][1] := (0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}..
+ (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}..
+ (1,0.73)..(2,1.2)..(3,2.35)..(3.5,4.6){up}..
+ (3,6.9)..(2,8.05)..cycle;
+o.s[28][2] := (-4.25,-0.4)--(4.25,9.65);
+o.i[28]:=2 ; o.m[28] := -0.4;
+
+%--- AE ligature ---
+o.s[29][1] := ((-3.4,0.7)--(-0.6,11.5)) shifted (-3,0);
+o.s[29][2] := ((-0.6,11.5)--(0.6,11.5)) shifted (-3,0);
+o.s[29][3] := ((0.6,11.5)--(3.4,0.7)) shifted (-3,0);
+o.s[29][4] := ((2.45,4.35)--(-2.45,4.35)) shifted (-3,0);
+o.s[29][5] := (6,0.9)--(0.5,0.9);
+o.s[29][6] := (-2.4,11.4)--(6,11.4);
+o.s[29][7] := (-0.8,6.4)--(6,6.4);
+o.i[29]:=7 ; o.m[29] := 0.7;
+
+%--- OE ligature ---
+o.s[30][1] := (((0,11.75)..(-3,9)..(-3.45,6.2)..(-2.8,3)..(0,0.65){right}..
+ (2.8,3)..(3.45,6.2)..(3,9)..cycle)) shifted (-3.45,0);
+o.s[30][2] := ((3.3,0.9)--(-2.7,0.9)) shifted (2.7,0);
+o.s[30][3] := ((-2.7,0.9)--(-2.7,11.4)) shifted (2.7,0);
+o.s[30][4] := ((-2.7,11.4)--(3.3,11.4)) shifted (2.7,0);
+o.s[30][5] := ((-2.7,6.4)--(2.45,6.4)) shifted (2.7,0);
+o.i[30]:=5 ; o.m[30] := 0.65;
+
+%--- durchgestrichenes O ---
+o.s[31][1] := (0,11.75)..(-3,9)..(-3.45,6.2)..(-2.8,3)..(0,0.65){right}..
+ (2.8,3)..(3.45,6.2)..(3,9)..cycle;
+o.s[31][2] := (-3.95,-0.35)--(3.95,12.75);
+o.i[31]:=2 ; o.m[31] := -0.35;
+
+%-------- blank ----
+o.i[32]:=0 ; o.m[32] := 2;
+
+
+%--- ! ---
+o.s[33][1] := (0,5.75)--(0,12.6);
+o.s[33][2] := (-0.4,-0.4)--(-0.4,0.4);
+o.s[33][3] := (-0.4,0.4)--(0.4,0.4);
+o.s[33][4] := (0.4,0.4)--(0.4,-0.4);
+o.s[33][5] := (0.4,-0.4)--(-0.4,-0.4);
+o.i[33]:=5 ; o.m[33] := -0.4;
+
+%--- " ---
+o.s[34][1] := (-1.65,11.3)--(-1.65,12.6);
+o.s[34][2] := (1.65,11.3)--(1.65,12.6);
+o.i[34]:=2 ; o.m[34] := 11.3;
+
+%--- # ---
+o.s[35][1] := (-3.35,0.65)--(-0.65,12.65);
+o.s[35][2] := (0.65,0.65)--(3.35,12.65);
+o.s[35][3] := (-3.5,4.45)--(3.15,4.45);
+o.s[35][4] := (-3.15,8.95)--(3.5,8.95);
+o.i[35]:=4 ; o.m[35] := 0.65;
+
+%--- $ ---
+o.s[36][1] := (0,0.7)--(0,12.6);
+o.s[36][2] := (-3.5,3.1)..(-2.5,2)..(-1,1.65)..(0,1.6)..(1.1,1.7)..
+ (2.7,2.4)..(3.5,4.1)..(3.1,5.3)..(2.25,6)..(0,6.85)..
+ (-2.2,7.6)..(-3.3,8.6)..(-3.45,9.4)..(-3.1,10.5)..(-1.9,11.4)..
+ (0,11.7)..(1.5,11.5)..(3.1,10.3);
+o.i[36]:=2 ; o.m[36] := 0.7;
+
+%--- % ---
+o.s[37][1] := (-3.5,0.75)--(3.5,12.55);
+o.s[37][2] := (-2.1,9.35)..(-3.1,9.8)..(-3.5,11)..(-3.2,12.1)..(-2.1,12.65)..
+ (-1,12.1)..(-0.7,11)..(-1.1,9.8)..(-2.1,9.35);
+o.s[37][3] := o.s[37][2] shifted (4.2,-8.7);
+o.i[37]:=3 ; o.m[37] := -0.1;
+
+%--- & ---
+o.s[38][1] := (3.5,5.4)..(3.4,4.2)..(2.8,2.5)..(2,1.5)..(0.3,0.7)..
+ (-0.5,0.65)..(-2.3,1.1)..(-3,1.8)..(-3.5,3.6)..(-3.3,4.8)..
+ (-2.6,5.9)..(-1.4,7)..(-0.1,8)..(1.2,9.2)..(1.8,10.2)..
+ (1.95,10.9)..(1.7,11.7)..(1.1,12.3)..(-0.4,12.65)..
+ (-1.5,12.5)..(-2.6,11.7)..(-3,10.3)..(-2.9,9.5)..(-2.6,8.7)..
+ (-1.5,7)..(3.05,0.7);
+o.i[38]:=1 ; o.m[38] := 0.65;
+
+%--- ' ---
+o.s[39][1] := (-0.3,7.65)--(-0.65,12.6);
+o.s[39][2] := (-0.65,12.6)--(0.65,12.6);
+o.s[39][3] := (0.65,12.6)--(0.3,7.65);
+o.s[39][4] := (0.3,7.65)--(-0.3,7.65);
+o.i[39]:=4 ; o.m[39] := 7.65;
+
+%--- ( ---
+o.s[40][1] := (2.3,0.65)..(0.4,2.4)..(-0.7,4.4)..(-1,6.6)..(-0.7,8.8)..
+ (-0.2,10)..(0.5,11)..(2.3,12.65);
+o.i[40]:=1 ; o.m[40] := 0.65;
+
+%--- ) ---
+o.s[41][1] := (-2.3,0.65)..(-0.4,2.4)..(0.7,4.4)..(1,6.6)..(0.7,8.8)..
+ (0.2,10)..(-0.5,11)..(-2.3,12.65);
+o.i[41]:=1 ; o.m[41] := 0.65;
+
+%--- * ---
+o.s[42][1] := (-3.5,7.8)--(0,6.65)--(0,10.5);
+o.s[42][2] := (-2.3,3.55)--(0,6.65)--(3.5,7.8);
+o.s[42][3] := (2.3,3.55)--(0.6,6.5);
+o.i[42]:=3 ; o.m[42] := 3.55;
+
+%--- + ---
+o.s[43][1] := (-3.5,6.65)--(3.5,6.65);
+o.s[43][2] := (0,2.65)--(0,10.65);
+o.i[43]:=2 ; o.m[43] := 2.65;
+
+%--- , ---
+o.s[44][1] := (-2.7,-2.35)--(0.3,2.75);
+o.s[44][2] := (0.3,2.75)--(2.25,2.75);
+o.s[44][3] := (2.25,2.75)--(2.25,2.2);
+o.s[44][4] := (2.25,2.2)--(-2.2,-2.35);
+o.s[44][5] := (-2.2,-2.35)--(-2.7,-2.35);
+o.i[44]:=5 ; o.m[44] := -2.35;
+
+%--- - ---
+o.s[45][1] := (-3.5,6.4)--(-3.5,6.9);
+o.s[45][2] := (-3.5,6.9)--(3.5,6.9);
+o.s[45][3] := (3.5,6.9)--(3.5,6.4);
+o.s[45][4] := (3.5,6.4)--(-3.5,6.4);
+o.i[45]:=4 ; o.m[45] := 6.4;
+
+%--- . ---
+o.s[46][1] := (-1.25,0.7)--(-1.25,2.4);
+o.s[46][2] := (-1.25,2.4)--(1.25,2.4);
+o.s[46][3] := (1.25,2.4)--(1.25,0.7);
+o.s[46][4] := (1.25,0.7)--(-1.25,0.7);
+o.i[46]:=4 ; o.m[46] := 0.7;
+
+%--- / ---
+o.s[47][1] := (-2.45,0.65)--(2.45,12.65);
+o.i[47]:=1 ; o.m[47] := 0.65;
+
+%---- Ziffer 0 ----
+o.s[48][1] := (0,0.65)..(1,0.7)..(3.5,6){up}..(1,12.6)..
+ (0,12.65){left}..(-1,12.6)..(-3.5,6){down}..
+ (-1,0.7)..cycle;
+o.i[48]:=1 ; o.m[48] := 0.65;
+
+%---- Ziffer 1 ----
+% o.s[49][1] := (0.55,0.7)--(0.75,12.6); % eigentlich
+o.s[49][1] := (0.75,0.7)--(0.75,12.6); % so ist der Strich senkrecht
+o.s[49][2] := (0.75,12.6)--(0.2,12.6);
+o.s[49][3] := (0.2,12.6)--(-2.95,9.9);
+o.i[49]:=3 ; o.m[49] := 0.7;
+
+%---- Ziffer 2 ----
+o.s[50][1] := (3.15,0.9)--(-3,0.9){up}..(-2.85,3)..
+ (0,6.075)..(2.4,8)..(3.05,9.8){up}..(2.8,11)..
+ (1,12.5)..(0,12.65){left}..(-1,12.6)..(-3.2,11.75);
+o.i[50]:=1 ; o.m[50] := 0.9;
+
+%---- Ziffer 3 ----
+o.s[51][1] := (-3.5,1.2)..(-0.8,0.65)..(0,0.7)..(2.6,2)..(3.35,4)..
+ (2.8,6)..(0,7.5)..(-1.1,7.6)--(2.9,11.8)--(2.9,12.4);
+o.s[51][2] := (2.9,12.4)--(-3.45,12.4);
+o.i[51]:=2 ; o.m[51] := 0.65;
+
+%---- Ziffer 4 ----
+o.s[52][1] := (0.3,12.6)--(-3.5,4.5)--(-3.5,3.75)--(3.5,3.75);
+o.s[52][2] := (1.7,0.7)--(1.7,6.65);
+o.i[52]:=2 ; o.m[52] := 0.7;
+
+%---- Ziffer 5 ----
+o.s[53][1] := (-3.05,0.65){right}..(1.6,2)..(2.4,3)..(2.8,4.5){up}..
+ (2,6.95)..(0,7.95)..(-1.5,8.1){left}..(-2.7,8.05)--
+ (-2.45,12.4);
+o.s[53][2] := (-2.45,12.4)--(2.7,12.4);
+o.i[53]:=2 ; o.m[53] := 0.65;
+
+%---- Ziffer 6 ----
+o.s[54][1] := (1.3,12.6)..(0,11.2)..(-2.4,8)..(-3.3,6)..
+ (-3.5,4){down}..(-2.9,2)..(-1.7,1)..
+ (0,0.65){right}..(1.7,1)..(2.9,2)..(3.5,4){up}..
+ ( 3.1,6)..(2,7.15)..(0,7.65)..(-2.2,7)..(-3.4,5)..(-3.5,4);
+o.i[54]:=1 ; o.m[54] := 0.65;
+
+
+%---- Ziffer 7 ----
+o.s[55][1] := (-1.3,0.7){up}..(0,6.5)..(2.6,10)..{up}(3.5,12.4);
+o.s[55][2] := (3.5,12.4)--(-3.5,12.4);
+o.i[55]:=2 ; o.m[55] := 0.7;
+
+%---- Ziffer 8 ----
+o.s[56][1] := (0,0.65){right}..(1,0.725)..(3.5,3.5){up}..
+ (2,6.2)..(0,7.45)..(-2.4,9)..(-2.9,10.5){up}..
+ (-2.1,12)..(0,12.65){right}..(2.1,12)..
+ (2.9,10.5){down}..(2.4,9)..(0,7.45)..(-2,6.2)..
+ (-3.5,3.5){down}..(-1,0.725)..(0,0.625){right};
+o.i[56]:=1 ; o.m[56] := 0.65;
+
+%---- Ziffer 9 ----
+o.s[57][1] := (-1.3,0.7)..(2.2,5)..(3.5,9){up}..
+ (3.05,11)..(0,12.65){left}..(-3.5,9){down}..
+ (-1.75,6)..(0,5.65){right}..(2.7,6.5)..(3.5,9){up};
+o.i[57]:=1 ; o.m[57] := 0.7;
+
+%--- : ---
+o.s[58][1] := (-0.95,0.7)--(-0.95,2.1);
+o.s[58][2] := (-0.95,2.1)--(0.95,2.1);
+o.s[58][3] := (0.95,2.1)--(0.95,0.7);
+o.s[58][4] := (0.95,0.7)--(-0.95,0.7);
+o.s[58][5] := (-0.95,7.05)--(-0.95,8.45);
+o.s[58][6] := (-0.95,8.45)--(0.95,8.45);
+o.s[58][7] := (0.95,8.45)--(0.95,7.05);
+o.s[58][8] := (0.95,7.05)--(-0.95,7.05);
+o.i[58]:=8 ; o.m[58] := 0.7;
+
+%--- ; ---
+o.s[59][1] := (-2.75,-2.25)--(-0.6,2.15);
+o.s[59][2] := (-0.6,2.15)--(1.35,2.15);
+o.s[59][3] := (1.35,2.15)--(-2,-2.25);
+o.s[59][4] := (-2,-2.25)--(-2.75,-2.25);
+o.s[59][5] := (-0.6,7.05)--(-0.6,8.45);
+o.s[59][6] := (-0.6,8.45)--(1.3,8.45);
+o.s[59][7] := (1.3,8.45)--(1.3,7.05);
+o.s[59][8] := (1.3,7.05)--(-0.6,7.05);
+o.i[59]:=8 ; o.m[59] := -2.25;
+
+%--- < ---
+o.s[60][1] := (3.5,2)--(-3.5,6.65);
+o.s[60][2] := (-3.5,6.65)--(3.5,11.3);
+o.i[60]:=2 ; o.m[60] := 2;
+
+%--- = ---
+o.s[61][1] := (-3.5,8.65)--(3.5,8.65);
+o.s[61][2] := (-3.5,4.65)--(3.5,4.65);
+o.i[61]:=2 ; o.m[61] := 4.65;
+
+%--- > ---
+o.s[62][1] := (-3.5,2)--(3.5,6.65);
+o.s[62][2] := (3.5,6.65)--(-3.5,11.3);
+o.i[62]:=2 ; o.m[62] := 2;
+
+%--- ? ---
+o.s[63][1] := (-3,9.15)..(-2.4,10.8)..(-0.8,11.6)..(-0.3,11.65)..
+ (0.4,11.6)..(1.3,11.3)..(2.1,10.6)..(2.4,10)..(2.5,9.4)..
+ (2.1,8.1)..(1.4,7)..(0.3,5.95)..{down}(0,5.1);
+o.s[63][2] := (-0.4,-0.3)--(-0.4,0.5);
+o.s[63][3] := (-0.4,0.5)--(0.4,0.5);
+o.s[63][4] := (0.4,0.5)--(0.4,-0.3);
+o.s[63][5] := (0.4,-0.3)--(-0.4,-0.3);
+o.i[63]:=5 ; o.m[63] := -0.3;
+
+%--- @ ---
+o.s[64][1] := (0.4,6.45)--(0.4,2.2)..(0.1,1.6)..(-0.9,0.7)..(-1.8,0.55)..
+ (-2.8,0.9)..(-3.4,2.1)..(-3.5,3.4)..(-3.4,4.8)..(-3,6)..
+ (-1.9,6.5)..(-1.05,6.3)..(0.4,4.8)--(0.4,3){down}..(0.5,1.6)..
+ (1.1,0.7)..(1.8,0.55)..(2.8,0.99)..(3.4,2.1)..{up}(3.5,4)--
+ (3.5,6){up}..(3.4,8)..(3,9.7)..(2.2,10.9)..(1,11.55)..
+ (-0.2,11.7)..(-1.2,11.6)..(-2.6,11)..(-3.45,9.5);
+o.i[64]:=1 ; o.m[64] := 0.7;
+
+%--- A ---
+o.s[65][1] := (-3.4,0.7)--(-0.6,11.5);
+o.s[65][2] := (-0.6,11.5)--(0.6,11.5);
+o.s[65][3] := (0.6,11.5)--(3.4,0.7);
+o.s[65][4] := (2.45,4.35)--(-2.45,4.35);
+o.i[65]:=4 ; o.m[65] := 0.7;
+
+%--- B ---
+o.s[66][1] := (-3.5,0.9)--(-3.5,11.4);
+o.s[66][2] := (-3.5,11.4)--(-0.5,11.4){right}..(2,11)..
+ (3.25,9)..(2.4,7)..{left}(0,6.4)--(-3.5,6.4)--
+ (0,6.4){right}..(2.3,5.9)..(3.5,3.7)..(2.5,1.6)..
+ {left}(-0.5,0.9)--(-3.5,0.9);
+o.i[66]:=2 ; o.m[66] := 0.9;
+
+%--- C ---
+o.s[67][1] := (2.7,2.2)..(1.9,1)..(0.6,0.65)..(-1,1.1)..(-2.2,2.9)..
+ (-2.5,4.2)..(-2.65,6)..(-2.5,8.2)..(-2,9.9)..
+ (-0.8,11.3)..(0.5,11.65)..(2,11.2)..(2.7,10.1);
+o.i[67]:=1 ; o.m[67] := 0.65;
+
+%--- D ---
+o.s[68][1] := (-2.6,0.9)--(-2.6,11.4);
+o.s[68][2] := (-2.6,11.4){right}..(-0.8,11.2)..(0.6,10.5)..
+ (2,9.1)..(2.7,7.8)..(3.05,5.8)..(2.8,4.2)..(2,2.7)..
+ (0.8,1.6)..(-0.8,1)..{left}(-2.6,0.9);
+o.i[68]:= 2 ; o.m[68] := 0.9;
+
+%--- E ---
+o.s[69][1] := (3.3,0.9)--(-2.7,0.9);
+o.s[69][2] := (-2.7,0.9)--(-2.7,11.4);
+o.s[69][3] := (-2.7,11.4)--(3.3,11.4);
+o.s[69][4] := (-2.7,6.4)--(2.45,6.4);
+o.i[69]:=4 ; o.m[69] := 0.9;
+
+%--- F ---
+o.s[70][1] := (-1.8,0.7)--(-1.8,11.4);
+o.s[70][2] := (-1.8,11.4)--(3,11.4);
+o.s[70][3] := (-1.8,6.4)--(2.2,6.4);
+o.i[70]:=3 ; o.m[70] := 0.7;
+
+%--- G ---
+o.s[71][1] := (3.05,10.45)..(1,11.6)..(0,11.6)..(-2,10.6)..(-3.2,8)..
+ (-3.3,6)..(-2.8,3)..(-2,1.6)..(0,0.65)..(2,0.8)..(3.2,1.3)--
+ (3.2,5.75)--(0.35,5.75);
+o.i[71]:=1 ; o.m[71] := 0.65;
+
+%--- H ---
+o.s[72][1] := (-3,0.7)--(-3,11.6);
+o.s[72][2] := (3,0.7)--(3,11.6);
+o.s[72][3] := (-3,6.3)--(3,6.3);
+o.i[72]:=3 ; o.m[72] := 0.7;
+
+%--- I ---
+o.s[73][1] := (-2.5,0.9)--(2.5,0.9);
+o.s[73][2] := (-2.15,11.4)--(2.15,11.4);
+o.s[73][3] := (0,0.9)--(0,11.4);
+o.i[73]:=3 ; o.m[73] := 0.9;
+
+%--- J ---
+o.s[74][1] := (-3.15,3.35)..(-3,2)..(-2,0.9)..(0,0.8)..(1,1.6)..(1.35,3)--
+ (1.35,11.6);
+o.i[74]:= 1 ; o.m[74] := 0.8;
+
+%--- K ---
+o.s[75][1] := (-3.25,0.7)--(-3.25,11.6);
+o.s[75][2] := (-2,6.4)--(3.1,11.6);
+o.s[75][3] := (-2,6.4)--(3.5,0.7);
+o.i[75]:=3 ; o.m[75] := 0.7;
+
+%--- L ---
+o.s[76][1] := (-3,11.6)--(-3,0.9);
+o.s[76][2] := (-3,0.9)--(3.5,0.9);
+o.i[76]:=2 ; o.m[76] := 0.9;
+
+%--- M ---
+o.s[77][1] := (-3.5,0.7)--(-3.5,11.6);
+o.s[77][2] := (-3.5,11.6)--(-2.15,11.6);
+o.s[77][3] := (-2.15,11.6)--(0,4.5);
+o.s[77][4] := (0,4.5)--(2.15,11.6);
+o.s[77][5] := (2.15,11.6)--(3.5,11.6);
+o.s[77][6] := (3.5,11.6)--(3.5,0.7);
+o.i[77]:=6 ; o.m[77] := 0.7;
+
+%--- N ---
+o.s[78][1] := (-3.25,0.7)--(-3.25,11.6);
+o.s[78][2] := (-3.25,11.6)--(-2.6,11.6);
+o.s[78][3] := (-2.6,11.6)--(2.6,0.7);
+o.s[78][4] := (2.6,0.7)--(3.25,0.7);
+o.s[78][5] := (3.25,0.7)--(3.25,11.6);
+o.i[78]:=5 ; o.m[78] := 0.7;
+
+%--- O ---
+o.s[79][1] := (0,11.75)..(-3,9)..(-3.45,6.2)..(-2.8,3)..(0,0.65){right}..
+ (2.8,3)..(3.45,6.2)..(3,9)..cycle;
+o.i[79]:=1 ; o.m[79] := 0.65;
+
+%--- P ---
+o.s[80][1] := (-3,5.9)--(0,5.9){right}..(3,7)..(3.5,8.5)..(3,10.3)..
+ (2,11.1)..(0,11.4)--(-3,11.4);
+o.s[80][2] := (-3,11.4)--(-3,0.7);
+o.i[80]:=2 ; o.m[80] := 0.7;
+
+%--- Q ---
+o.s[81][1] := (-0.3,11.65)..(-2,11)..(-3,9.6)..(-3.4,8)..(-3.4,7)..
+ (-3,3.5)..(-1,1.55)..(0,1.45)..(1,1.75)..(2.65,4)..(3,6)..
+ (2.9,8)..(2,10.4)..(1,11.35)..cycle;
+o.s[81][2] := (-0.15,5.4)..(3.5,0.7);
+o.i[81]:=2 ; o.m[81] := 1.55;
+
+%--- R ---
+o.s[82][1] := (-2.8,0.7)--(-2.8,11.4);
+o.s[82][2] := (-2.8,11.4)--(0,11.4)..(2,10.8)..(3,9.5){down}..
+ (2,6.5)..(0,5.9){left}..(-2.8,5.9);
+o.s[82][3] := (0.1,5.9)--(3.1,0.7);
+o.i[82]:=3 ; o.m[82] := 0.7;
+
+%--- S ---
+o.s[83][1] := (-2.9,2.8)..(-2,1.2)..(0.4,0.65)..(1,0.8)..(2,1.3)..
+ (2.9,3.3){up}..(2.6,4.6)..(1,5.9)..(-1,6.9)..(-2.4,8)..
+ (-2.8,9.4){up}..(-2,10.95)..(-1,11.5)..(0,11.65)..(1,11.55)..
+ (2,11.05)..(2.75,9.9);
+o.i[83]:=1 ; o.m[83] := 0.65;
+
+%--- T ---
+o.s[84][1] := (0,0.7)--(0,11.4);
+o.s[84][2] := (-3.5,11.4)--(3.5,11.4);
+o.i[84]:=2 ; o.m[84] := 0.7;
+
+%--- U ---
+o.s[85][1] := (-3.25,11.6)--(-3.25,3.7)..(-2,1.15)..(0,0.65){right}..
+ (2,1.15)..(3.25,3.7)--(3.25,11.6);
+o.i[85]:=1 ; o.m[85] := 0.65;
+
+%--- V ---
+o.s[86][1] := (-3.5,11.6)--(-0.6,0.7)--(0.6,0.7)--(3.5,11.6);
+o.i[86]:=1 ; o.m[86] := 0.7;
+
+%--- W ---
+o.s[87][1] := (-3.5,11.6)..(-3.4,9)..(-3.1,5)..(-2.4,0.7)--(-1.9,0.7)--
+ (-0.15,6.75)--(0.15,6.75)--(1.9,0.9)--(2.4,0.7)..(3.1,5)..
+ (3.4,9)..(3.5,11.6);
+o.i[87]:=1 ; o.m[87] := 0.7;
+
+%--- X ---
+o.s[88][1] := (-3.05,11.6)--(-0.1,6.3)--(-3.15,0.7);
+o.s[88][2] := (3.05,11.6)--(0.1,6.3)--(3.15,0.7);
+o.i[88]:=2 ; o.m[88] := 0.7;
+
+%--- Y ---
+o.s[89][1] := (0,0.7)--(0,5.8)--(-3.1,11.6);
+o.s[89][2] := (3.1,11.6)--(0,5.8);
+o.i[89]:=2 ; o.m[89] := 0.7;
+
+%--- Z ---
+o.s[90][1] := (3,0.9)--(-3,0.9)--(2.4,11.4)--(-2.95,11.4);
+o.i[90]:=1 ; o.m[90] := 0.9;
+
+%--- [ ---
+o.s[91][1] := (3.2,0.65)--(-1.8,0.65);
+o.s[91][2] := (-1.8,0.65)--(-1.8,12.65);
+o.s[91][3] := (-1.8,12.65)--(3.2,12.65);
+o.i[91]:=3 ; o.m[91] := 0.65;
+
+%--- backslash ---
+o.s[92][1] := (2.45,0.65)--(-2.45,12.65);
+o.i[92]:=1 ; o.m[92] := 0.65;
+
+%--- ] ---
+o.s[93][1] := (-3.2,0.65)--(1.8,0.65);
+o.s[93][2] := (1.8,0.65)--(1.8,12.65);
+o.s[93][3] := (1.8,12.65)--(-3.2,12.65);
+o.i[93]:=3 ; o.m[93] := 0.65;
+
+%--- ^ ---
+o.s[94][1] := (-3.5,7.3)--(0,12.55);
+o.s[94][2] := (0,12.55)--(3.5,7.3);
+o.s[94][3] := (3.5,7.3)--(0,11);
+o.s[94][4] := (0,11)--(-3.5,7.3);
+o.i[94]:=4 ; o.m[94] := 7.3;
+
+%--- _ ---
+o.s[95][1] := (-3.5,-3.25)--(-3.5,-2.75);
+o.s[95][2] := (-3.5,-2.75)--(3.5,-2.75);
+o.s[95][3] := (3.5,-2.75)--(3.5,-3.25);
+o.s[95][4] := (3.5,-3.25)--(-3.5,-3.25);
+o.i[95]:=4 ; o.m[95] := -3.25;
+
+%--- ` ---
+o.s[96][1] := (0,11.1)--(-0.95,12.6);
+o.i[96]:=1 ; o.m[96] := 11.1;
+
+%--- a ---
+o.s[97][1] := (-2.45,7.8)..(0,8.65){right}..(2.05,8)..(2.85,6)..(2.85,5)--
+ (2.85,0.65);
+o.s[97][2] := (2.85,5.05){left}..(0,5)..(-2,4.6)..(-3,3.7)..
+ (-3.25,2.7){down}..(-3,1.8)..(-1,0.6)..(1,1.15)..(2,2.05)..
+ (2.85,3.25);
+o.i[97]:=2 ; o.m[97] := 0.65;
+
+%--- b ---
+o.s[98][1] := (-3.3,0.65)--(-3.3,12.65);
+o.s[98][2] := (-3.3,5.9)..(-2,7.65)..(-1,8.3)..(0,8.55)..(1,8.45)..(2,8.05)..
+ (3,7)..(3.5,5)..(3.45,4)..(3,2.2)..(2,1.1)..(0,0.6)..
+ (-2,1.5)..(-3.3,3.4);
+o.i[98]:=2 ; o.m[98] := 0.65;
+
+%--- c ---
+o.s[99][1] := (2.7,2.2)..(2,1.1)..(1,0.65)..(0,0.6)..(-1,0.9)..(-2,1.9)..
+ (-2.4,3)..(-2.55,4.8){up}..(-2.4,6.3)..(-2,7.3)..(-1,8.25)..
+ (0,8.5)..(1,8.5)..(2.2,8)..(2.6,7.3);
+o.i[99]:=1 ; o.m[99] := 0.6;
+
+%--- d ---
+o.s[100][1]:= (3.3,0.65)--(3.3,12.65);
+o.s[100][2]:= (3.3,5.9)..(2,7.7)..(1,8.3)..(0,8.55)..(-1,8.45)..(-2,8)..
+ (-3,7)..(-3.5,4.7){down}..(-3,2.2)..(-2,1.1)..(-1,0.7)..
+ (0,0.6)..(1,0.85)..(2,1.5)..(2.7,2.2)..(3.3,3.4);
+o.i[100]:= 2 ; o.m[100] := 0.65;
+
+%--- e ---
+o.s[101][1]:= (-3.25,5)--(3.25,5){up}..(3.2,5.5)..(3,6.6)..(2,8.1)..
+ (1,8.55)..(0,8.65)..(-1,8.5)..(-2,7.9)..(-3,6.4)..
+ (-3.25,4.8){down}..(-3,3)..(-2,1.35)..(-1,0.8)..(0,0.6)..
+ (1,0.65)..(2,1)..(2.35,1.3);
+o.i[101]:= 1 ; o.m[101] := 0.6;
+
+%--- f ---
+o.s[102][1]:= (0,0.65)--(-0.1,9.5)..(0,10.9)..(0.75,12)..(2,12.5)..
+ (2.85,12.6){right};
+o.s[102][2]:= (-2.9,8.45)--(2.9,8.45);
+o.i[102]:=2 ; o.m[102] := 0.65;
+
+%--- g ---
+o.s[103][1]:= (3.05,8.5)--(3.05,1)..(2.8,-1)..(2,-2)..(1,-2.35)..(0,-2.45)..
+ (-1,-2.4)..(-2,-2.2)..(-2.8,-1.4);
+o.s[103][2]:= (3.05,5.7)..(2,7.5)..(1,8.3)..(0,8.55)..(-2,8.1)..
+ (-3,7)..(-3.45,4.7){down}..(-3,2.8)..(-2,1.6)..(-1,1.25)..
+ (-0.5,1.2){right}..(0,1.25)..(1,1.55)..(2,2.4)..(3.05,3.85);
+o.i[103]:= 2 ; o.m[103] := -2.45;
+
+%--- h ---
+o.s[104][1]:= (-2.75,0.65)--(-2.75,12.65);
+o.s[104][2]:= (-2.75,5.95)..(-2.1,7)..(-1,8.1)..(0,8.5)..(0.6,8.55){right}..
+ (2,8.05)..(2.6,7)..(2.75,5){down}..(2.75,0.65);
+o.i[104]:=2 ; o.m[104] := 0.65;
+
+%--- i ---
+o.s[105][1]:= (0.1,11.85)--(0.9,11.85)--(0.9,12.65)--(0.1,12.65)--
+ (0.1,11.85);
+o.s[105][2]:= (-2.3,8.3)--(0.85,8.3)--(0.85,0.65);
+o.i[105]:=2 ; o.m[105] := 0.65;
+
+%--- j ---
+o.s[106][1]:= (0.1,11.85)--(0.9,11.85)--(0.9,12.65)--(0.1,12.65)--
+ (0.1,11.85);
+o.s[106][2]:= (-1.8,8.3)--(0.75,8.3)--(0.75,1){down}..(0.5,-1)..(0,-1.7)..
+ (-1,-2.25)..(-2.8,-2.25){left};
+o.i[106]:=2 ; o.m[106] := -2.25;
+
+%--- k ---
+o.s[107][1]:= (-2.45,0.65)--(-2.45,12.65);
+o.s[107][2]:= (-2.45,5.15)--(-1.15,5.15)--(2.5,8.5);
+o.s[107][3]:= (-1.15,5.15)--(3.05,0.65);
+o.i[107]:=3 ; o.m[107] := 0.65;
+
+%--- l ---
+o.s[108][1]:= (-0.95,12.65)..(-1,8)..(-1.05,4)..(-1,3)..(-0.5,1.6)..
+ (0,1.15)..(1,0.8)..(2.5,0.75){right};
+o.i[108]:=1 ; o.m[108] := 0.75;
+
+%--- m ---
+o.s[109][1]:= (-3.5,0.65)--(-3.5,8.5);
+o.s[109][2]:= (-3.5,5.6)..(-3,7.3)..(-2,8.4)..(-1.4,8.55){right}..
+ (-0.5,8.2)..(0,7)..(0,6){down}..(0,0.65);
+o.s[109][3]:= (0,5.6)..(0.5,7.3)..(1,8)..(2.1,8.55){right}..(3,8.2)..
+ (3.5,7)..(3.5,6){down}..(3.5,0.65);
+o.i[109]:=3 ; o.m[109] := 0.65;
+
+%--- n ---
+o.s[110][1]:= (-3.25,0.65)--(-3.25,8.5);
+o.s[110][2]:= (-3.25,5.5)..(-2,7.45)..(-1,8.2)..(0,8.5)..(0.5,8.55){right}..
+ (1,8.5)..(2,8.2)..(3,7)..(3.25,5){down}..(3.25,0.65);
+o.i[110]:=2 ; o.m[110] := 0.65;
+
+%--- o ---
+o.s[111][1]:= (0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}..
+ (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}..
+ (1,0.73)..
+ (2,1.2)..(3,2.35)..(3.5,4.6){up}..(3,6.9)..(2,8.05)..cycle;
+o.i[111]:=1 ; o.m[111] := 0.6;
+
+%--- p ---
+o.s[112][1]:= (-3.3,-2.35)--(-3.3,8.5);
+o.s[112][2]:= (-3.3,5.85)..(-2,7.65)..(-1,8.3)..(0,8.55)..(1,8.45)..
+ (2,8.05)..(3,7)..(3.5,4.5){down}..(3.3,3)..(2,1.1)..
+ (1,0.7)..(0,0.6)..(-1,0.85)..(-2,1.5)..(-3,2.8)..(-3.3,3.4);
+o.i[112]:=2 ; o.m[112] := -2.35;
+
+%--- q ---
+o.s[113][1]:= (3.3,-2.35)--(3.3,8.5);
+o.s[113][2]:= (3.3,5.85)..(2,7.65)..(1,8.3)..(0,8.55)..(-1,8.45)..(-2,8.05)..
+ (-3,7)..(-3.5,4.5){down}..(-3,2.2)..(-2,1.1)..(-1,0.7)..
+ (0,0.6)..(1,0.85)..(2,1.5)..(3.3,3.4);
+o.i[113]:=2 ; o.m[113] := -2.35;
+
+%--- r ---
+o.s[114][1]:= (-1.9,0.65)--(-1.9,8.5);
+o.s[114][2]:= (-1.9,4.7)..(-1,7.15)..(0,8.2)..(1,8.5)..(1.5,8.55){right}..
+ (2,8.5)..(3.2,7);
+o.i[114]:= 2 ; o.m[114] := 0.65;
+
+%--- s ---
+o.s[115][1]:= (-2.8,1.7)..(-2,0.95)..(-1,0.65)..(0,0.6)..(1,0.7)..(2,1.05)..
+ (2.8,2)..(2.9,2.6){up}..(2.5,3.7)..(2,4.05)..(1,4.4)..
+ (0,4.67)..(-1,4.95)..(-2,5.4)..(-2.5,6)..(-2.7,6.8){up}..
+ (-2.4,7.8)..(-2,8.2)..(0,8.65)..
+ (0.5,8.64)..
+% (1,8.6)..(1.4,8.50)..(1.8,8.4)..(2,8.3)..(2.3,8)..
+ (2.55,7.4){(2.5,-9.5)};
+o.i[115]:=1 ; o.m[115] := 0.6;
+
+%--- t ---
+o.s[116][1]:= (-3.25,8.35)--(2.45,8.35);
+o.s[116][2]:= (-1,11){down}..(-1.05,8)..(-1.1,5)..(-1.1,3.5)..
+ (-1,2)..(-0.5,1.1)..(0,0.8)..(1,0.65)..(2.45,1);
+o.i[116]:=2 ; o.m[116] := 0.65;
+
+%--- u ---
+o.s[117][1]:= (-3.25,8.5)--(-3.25,4.5){down}..(-3.1,2.5)..(-2.6,1.5)..
+ (-1.6,0.8)..(-0.5,0.6)..(0.4,0.7)..(1.1,1)..(1.8,1.5)..
+ (2.5,2.3)..(3.25,3.8);
+o.s[117][2]:= (3.25,0.65)--(3.25,8.5);
+o.i[117]:= 2 ; o.m[117] := 0.6;
+
+%--- v ---
+o.s[118][1]:= (-3.45,8.5)--(-0.65,0.65)--(0.65,0.65)--(3.45,8.5);
+o.i[118]:=1 ; o.m[118] := 0.65;
+
+%--- w ---
+o.s[119][1]:= (-3.45,8.5)--(-2.5,0.65)--(-1.65,0.65)--(-0.4,4.9)--
+ (0.4,4.9)--(1.65,0.65)--(2.5,0.65)--(3.45,8.5);
+o.i[119]:= 1 ; o.m[119] := 0.65;
+
+%--- x ---
+o.s[120][1]:= (-2.9,0.65)--(-0.1,4.65)--(-2.7,8.5);
+o.s[120][2]:= (2.9,0.65)--(0.1,4.65)--(2.7,8.5);
+o.i[120]:=2 ; o.m[120] := 0.65;
+
+%--- y ---
+o.s[121][1]:= (-3.5,-2.3)..(-2.45,-2.1)..(-2,-1.6)--(3.5,8.5);
+o.s[121][2]:= (-3.5,8.5)--(0.1,2.3);
+o.i[121]:=2 ; o.m[121] := -2.3;
+
+%--- z---
+o.s[122][1]:= (-2.75,8.3)--(2.65,8.3)--(2.65,7.6)--(-2.9,1.45)--
+ (-2.9,0.85)--(3.05,0.85);
+o.i[122]:=1 ; o.m[122] := 0.85;
+
+%--- { ---
+o.s[123][1]:= (3.5,0.65){left}..(0.6,1)..(-0.25,2)..{up}(-0.5,4){up}..
+ (-1.125,6)..{left}(-3.5,6.65){right}..(-1,7.4)..
+ {up}(-0.5,9.5){up}..(0,11.7)..(1.2,12.5)..{right}(3.5,12.65);
+o.i[123]:=1 ; o.m[123] := 0.65;
+
+%--- | ---
+o.s[124][1]:= (0,-1.95)--(0,12.65);
+o.i[124]:=1 ; o.m[124] := -1.95;
+
+%--- } ---
+o.s[125][1]:= (-3.5,0.65){right}..(-0.6,1)..(0.25,2)..{up}(0.5,4){up}..
+ (1.125,6)..{right}(3.5,6.65){left}..(1,7.4)..
+ {up}(0.5,9.5){up}..(-0,11.7)..(-1.2,12.5)..{left}(-3.5,12.65);
+o.i[125]:= 1 ; o.m[125] := 0.65;
+
+%--- ~ ---
+o.s[126][1]:= (-3.25,10.45)..(-1.5,11.75)..(0,11)..(1.5,10.25)..(3.25,11.55);
+o.i[126]:=1 ; o.m[126] := 10.25;
+
+%--- "a-Striche ---
+%o.s[127][1]:= (-1.5,10.65)--(-1.5,11.65);
+ o.s[127][1]:= (-1.5, 5.65)--(-1.5, 6.65);
+%o.s[127][2]:= (1.5,10.65)--(1.5,11.65);
+ o.s[127][2]:= (1.5, 5.65)--(1.5, 6.65);
+o.i[127]:=2 ; o.m[127] := 5.65;
+
+%--- "a ---
+o.s[128][1]:= (-1.5,10.65)--(-1.5,11.65);
+o.s[128][2]:= (1.5,10.65)--(1.5,11.65);
+o.s[128][3]:= (-2.45,7.8)..(0,8.65){right}..(2.05,8)..(2.85,6)..(2.85,5)--
+ (2.85,0.65);
+o.s[128][4]:= (2.85,5.05){left}..(0,5)..(-2,4.6)..(-3,3.7)..
+ (-3.25,2.7){down}..(-3,1.8)..(-1,0.6)..(1,1.15)..(2,2.05)..
+ (2.85,3.25);
+o.i[128]:=4 ; o.m[128] := 0.6;
+
+%--- "o ---
+o.s[129][1]:= o.s[128][1];
+o.s[129][2]:= o.s[128][2];
+o.s[129][3]:= (0,8.65){left}..(-2,8.05)..(-3,6.9)..(-3.5,4.6){down}..
+ (-3,2.35)..(-2,1.2)..(-1,0.73)..(0,0.6){right}..
+ (1,0.73)..
+ (2,1.2)..(3,2.35)..(3.5,4.6){up}..(3,6.9)..(2,8.05)..cycle;
+o.i[129]:=3 ; o.m[129] := 0.6;
+
+%--- "u ---
+o.s[130][1]:= o.s[128][1];
+o.s[130][2]:= o.s[128][2];
+o.s[130][3]:= (-3.25,8.5)--(-3.25,4.5){down}..(-3.1,2.5)..(-2.6,1.5)..
+ (-1.6,0.8)..(-0.5,0.6)..(0.4,0.7)..(1.1,1)..(1.8,1.5)..
+ (2.5,2.3)..(3.25,3.8);
+o.s[130][4]:= (3.25,0.65)--(3.25,8.5);
+o.i[130]:=4 ; o.m[130] := 0.6;
+
+%--- "A ---
+o.s[131][1]:= (-3.5,11.65)--(-3.5,12.65);
+o.s[131][2]:= (3.5,11.65)--(3.5,12.65);
+o.s[131][3]:= (-3.45,0.7)--(-0.2,11.6)--(0.2,11.6)--(3.45,0.7);
+o.s[131][4]:= (-2.65,3.55)--(2.65,3.35);
+o.i[131]:=4 ; o.m[131] := 0.7;
+
+%--- "O ---
+o.s[132][1]:= (-3.5,11.65)--(-3.5,12.65);
+o.s[132][2]:= (3.5,11.65)--(3.5,12.65);
+o.s[132][3]:= (0,0.65)..(-1.8,1.3)..(-2.8,2.6)..(-3.2,3.8)..(-3.35,5.3)..
+ (-3.1,7.2)..(-2.3,8.8)..(-0.9,9.8)..(0,9.95)..(0.9,9.8)..
+ (2.3,8.8)..(3.1,7.2)..(3.35,5.3)..(3.2,3.8)..(2.8,2.6)..
+ (1.8,1.3)..(0,0.65);
+o.i[132]:=3 ; o.m[132] := 0.65;
+
+%--- "U ---
+o.s[133][1]:= (-3.5,12.65)--(-2.6,12.65);
+o.s[133][2]:= (3.5,12.65)--(2.6,12.65);
+o.s[133][3]:= (-3.5,9.4)--(-3.5,5){down}..(-3.3,2.9)..(-2.8,1.8)..
+ (-1.2,0.8)..(0,0.65)..(1.2,0.8)..(2.8,1.8)..(3.3,2.9)..
+ {up}(3.5,5)--(3.5,9.4);
+o.i[133]:=3 ; o.m[133] := 0.65;
+
+%--- paragraph sign ---
+o.s[134][1]:= (2.85,11.1)..(2,12.2)..(0.9,12.6)..(0.2,12.65)..
+ (-0.9,12.55)..(-2,12.1)..(-2.6,11.5)..(-2.9,10.4)..
+ (-2.7,9.5)..(-2,8.8)..(-1.1,8.5)..(-0.3,8.4)..(0.8,8.3)..
+ (2.2,8)..(3,7.4)..(3.3,6.5)..(3.2,5.9)..(2.8,5.25)..(2,4.65);
+o.s[134][2]:= (-1.9,8.75)..(-3,7.8)..(-3.35,6.8)..(-3.1,6)..(-2.2,5.3)..
+ (-0.65,5)..(0.7,4.9)..(2,4.65)..(2.75,4.2)..(3.2,3.5)..
+ (3.3,2.9)..(3.1,2)..(2.4,1.2)..(1.8,0.9)..(0.2,0.65)..
+ (-0.8,0.7)..(-1.9,1)..(-3.2,2.4);
+o.i[134]:=2 ; o.m[134] := 0.65;
+
+%--- sun symbol ---
+o.s[135][1]:= (-3.5,3.15)--(-2.05,4.6);
+o.s[135][2]:= (-3.5,10.15)--(-2.05,8.7);
+o.s[135][3]:= (3.5,10.15)--(2.05,8.7);
+o.s[135][4]:= (3.5,3.15)--(2.05,4.6);
+o.s[135][5]:= (0,3.75)..(-2.9,6.65)..(0,9.55)..(2.9,6.65)..(0,3.75);
+o.i[135]:=5 ; o.m[135] := 3.15;
+
+%--- senkrechter Strich links ---
+o.s[136][1]:= (-5.35,-1.25)--(-5.35,11.25);
+o.i[136]:=1 ; o.m[136] := -1.25;
+
+%--- weitere Anfuehrungszeichen ---
+o.s[137][1]:= (-2.65,8.75)--(-2.65,12.6)--(-2.15,12.6)--(-2.65,8.75);
+o.s[137][2]:= (2.45,8.75)--(2.45,12.6)--(2.85,12.6)--(2.45,8.75);
+o.i[137]:=2 ; o.m[137] := 8.75;
diff --git a/Master/texmf-dist/fonts/source/public/ean/ocrbmac.mf b/Master/texmf-dist/fonts/source/public/ean/ocrbmac.mf
new file mode 100644
index 00000000000..87ed5b1b192
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ean/ocrbmac.mf
@@ -0,0 +1,270 @@
+mode_setup; % this command was added by Petr Olsak, May 1995
+
+%%%%%%%%%%%%%%%%% Endehandlung nach Zeichenbestimmung %%%%%%%%%%%%%%%%%%%%%%
+%
+% Dies wird am Ende jeden Zeichens v o r "endchar ausgefuehrt.
+%
+% Dort koennen globale Design-Entscheidungen durch evtl.
+% Mehrfachausgaben realisiert wdrden.
+%
+pen penxy;
+picture bild; picture bildb;
+path negpath;
+
+def dofinishing =
+ prule; % Rule in xheight-- Hoehe
+ for j:=1 step 1 until subchar:
+ firstpath:= firstpathcount[j];
+ lastpath := lastpathcount[j];
+% message "path "&decimal j ;
+% message " from "&decimal firstpath;
+% message " to "&decimal lastpath ;
+ if j > 1 :
+ penxy := defaultpen;
+ if known penrand : defaultpen := defaultpen scaled penrand; fi
+ cullit; undrawallpath;
+ if sharpedges>0: cullit; shutedges -1; fi
+ defaultpen :=penxy;
+ cullit;
+ fi
+ drawallpath;
+% if globalslant>0 : "with slant"; fi
+ if sharpedges>0 :
+% "with sharp edges";
+ shutedges 1;
+ fi
+ if hohl>0 l:
+% "'hohl'";
+ cullit;
+ pickup pencircle scaled hohl;
+ undrawallpath;
+ cullit;
+ if sharpedges>0 : shutedges -1 ; fi
+ cullit;
+ fi
+ if extraline>0 :
+% " with extraline";
+ pickup pencircle scaled extraline;
+ drawallpath;
+ if sharpedges>0 : shutedges 1; fi
+ fi
+ endfor
+ if negativ > 0:
+ cullit; bild:=currentpicture;
+ clearit;
+ negpath:= (-0.5*SYMBWIDTH/scalefak ,-0.35maxy)--
+ ( 0.5*SYMBWIDTH/scalefak ,-0.35maxy)--
+ ( 0.5*SYMBWIDTH/scalefak , 1.2maxy)--
+ (-0.5*SYMBWIDTH/scalefak , 1.2maxy)--cycle;
+% (-0.5*SYMBWIDTH/scalefak ,-0.35maxy)..cycle;
+ fill (negpath shifted (shiftfak,0) scaled scalefak);
+ cullit;
+ bildb := currentpicture;
+ clearit;
+ currentpicture := bildb-bild;
+ cullit;
+% showit;
+ fi
+ clearallpath;
+ enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%def comment text x=
+% for k:=0 step 29 until (length x)+ 28 :
+% special " 9"&substring(k,k+29) of(x&" ") ;
+% numspecial 0;numspecial 0; endfor enddef;
+
+def corrwidth expr x= charwd:=x/pt;
+ w:=x;
+ h:=w;
+ enddef;
+def prule =
+ proofrule((0,0.5capheight),(capheight,0.5capheight));
+ proofrule((0,0.25capheight),(capheight,0.25capheight));
+ proofrule((0,0.75capheight),(capheight,0.75capheight));
+ proofrule((0.25capheight,0),(0.25capheight,capheight));
+ proofrule((0.75capheight,0),(0.75capheight,capheight));
+ proofrule(( 0.5capheight,0),(0.5capheight,capheight));enddef;
+
+
+
+sheight := 0.75 xheight;
+
+vardef make@#=
+ if (length str@#) = 1: charcode:=ASCII str @#; else: charcode:=0; fi
+ "Generierung: "&str@#;
+ beginchar(charcode,10,10,0);
+ char@#;
+ endchar;
+ enddef;
+
+
+
+path allpath[];
+
+def clearallpath =
+ subchar := 1;
+ firstpathcount[subchar]:=0;
+ lastpathcount[subchar]:=-1;
+ pathcount:=-1; enddef;
+
+def nextsubchar =
+ subchar := subchar+1;
+ firstpathcount[subchar]:=pathcount+1;
+ lastpathcount[subchar]:=pathcount;
+ enddef;
+
+
+clearallpath;
+pen shutpen;
+path unitpath;
+
+
+
+def shutedges expr www =
+ unitpath := (-0.5,-0.5)--(0.5,-0.5)--(0.5,0.5)--(-0.5,0.5)..cycle;
+ shutwidth := abs pen_lft + pen_rt;
+ for i:=firstpath step 1 until lastpath:
+ if cycle allpath[i]:
+ else:
+ shutpen:= makepen (unitpath scaled shutwidth
+ rotated (angle(direction 0 of allpath[i])))
+ slanted globalslant ;
+ pickup shutpen;
+ drawdot ((point 0 of allpath[i])
+ slanted globalslant)
+ withweight www;
+ shutpen:= makepen (unitpath scaled shutwidth
+ rotated (angle (direction infinity of allpath[i])))
+ slanted globalslant ;
+ pickup shutpen; drawdot ((point infinity of allpath[i])
+ slanted globalslant)
+ withweight www;
+ fi
+ endfor
+ pickup defaultpen;
+ enddef;
+
+def savepath text p = pathcount:=pathcount+1;
+ lastpathcount[subchar]:=pathcount;
+ allpath[pathcount]:=p; enddef;
+
+def drawallpath =
+ if globalslant=0:
+ for i:=firstpath step 1 until lastpath: draw allpath[i]; endfor
+ else:
+ for i:=firstpath step 1 until lastpath:
+ draw (allpath[i] slanted globalslant);
+ endfor
+ fi
+ enddef;
+
+def undrawallpath =
+ if globalslant=0:
+ for i:=firstpath step 1 until lastpath: undraw allpath[i]; endfor
+ else:
+ for i:=firstpath step 1 until lastpath:
+ undraw (allpath[i] slanted globalslant);
+ endfor
+ fi
+ enddef;
+
+
+%=====================================================================
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%$%%%%%
+%%%%%%%%%%%%%% Makros und Konstanten zum Font O C R B %%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% ==========
+designfaktor := designsize*0.1;
+
+capheight := 12.275*mm*designfaktor; % Hoehe von "E" unskaliert
+xheight := 0.5*capheight * designfaktor; %
+SYMBWIDTH := 2.54mm*designfaktor; % 10 Zeichen je inch
+
+scalefak := mm*2.28/11.4*designfaktor; % ================================
+
+path o.s[][];
+
+ocrb.penwidth := 1.75; % Strichstaerke
+ocrb.width := 7 + ocrb.penwidth;
+
+pen defaultpen;
+defaultpen :=pencircle scaled (ocrb.penwidth*scalefak);
+maxy := 12.6 + 0.5ocrb.penwidth;
+
+%shiftfak := 0.5maxy;
+shiftfak := (0.5SYMBWIDTH)/scalefak;
+path xpath;
+
+%------- font dimensionen
+ ptscale := 1/pt;
+
+ font_x_height (8.5+0.5ocrb.penwidth)*scalefak / pt * designfaktor;
+ font_slant globalslant ;
+ font_normal_space 1.0 * SYMBWIDTH * ptscale;
+ font_normal_stretch 0.0 * SYMBWIDTH * ptscale;
+ font_normal_shrink 0.0 * SYMBWIDTH * ptscale;
+ font_quad 2.0 * SYMBWIDTH * ptscale;
+ font_extra_space 1.0 * SYMBWIDTH * ptscale;
+
+%============= Ligaturtabelle fuer Umlaute ====================
+
+ligtable "a" : oct"042" =: oct"200";
+ligtable "o" : oct"042" =: oct"201";
+ligtable "u" : oct"042" =: oct"202";
+ligtable "A" : oct"042" =: oct"203";
+ligtable "O" : oct"042" =: oct"204";
+ligtable "U" : oct"042" =: oct"205";
+
+%===============================================================
+
+
+def makechar expr charnumber =
+ if known o.i[charnumber] :
+ beginchar(charnumber,ocrb.width,ocrb.width,0);
+ pickup defaultpen;
+ kx := 0;
+ for i:=1 step 1 until o.i[charnumber]:
+ if known o.s[charnumber][i] :
+ xpath :=(o.s[charnumber][i] shifted (shiftfak,0) ) scaled scalefak;
+ savepath xpath;
+ for k:=0 step 1 until (length xpath):
+ kx:=kx+1;
+ z[kx] = point k of xpath;
+ endfor
+ fi
+ endfor
+ if proofing>0 :
+ labels(0,1,2,3,4,5,6,7,8,9);
+ labels(10,11,12,13,14,15,16,17,18,19);
+ labels(20,21,22,23,24,25,26,27,28,29);
+ labels(30,31,32,33,34,35,36,37,38,39);
+ fi
+ dofinishing;
+%corrwidth capheight;
+ corrwidth SYMBWIDTH;
+% Tiefe korrigieren
+ if known o.m[charnumber]:
+ if (o.m[charnumber]-(0.5*ocrb.penwidth))< 0:
+ chardp := ((o.m[charnumber]-(0.5*ocrb.penwidth)) * scalefak ) / pt;
+ d :=vround (chardp*pt);
+ fi
+ fi
+ endchar;
+ else:
+ message "unknown character referenced in makechar";
+ fi
+enddef;
+
+body_height#:=11.5*scalefak;
+asc_height#:= 11.5*scalefak;
+cap_height#:= 11.5*scalefak;
+fig_height#:= 12.6*scalefak;
+x_height#:= 8.5*scalefak;
+math_axis#:= 8.5*scalefak;
+
+hohl := lightfactor * ocrb.penwidth * scalefak; % 0<= lightfactor < 1
diff --git a/Master/texmf-dist/fonts/source/public/ecc/conc10pt.mf b/Master/texmf-dist/fonts/source/public/ecc/conc10pt.mf
new file mode 100644
index 00000000000..eb54ff87f1c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/conc10pt.mf
@@ -0,0 +1,73 @@
+% file conc10pt.mf: dimensions of Computer Concrete 10pt (WaS)
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+acc_height#:=75/36pt#;
+dot_height#:=66/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+% ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/conc5pt.mf b/Master/texmf-dist/fonts/source/public/ecc/conc5pt.mf
new file mode 100644
index 00000000000..088a3c6f047
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/conc5pt.mf
@@ -0,0 +1,73 @@
+% file conc5pt.mf: dimensions of Computer Concrete 5pt (WaS)
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=82.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+acc_height#:=42.5/36pt#;
+dot_height#:=42/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=11/36pt#; % width of extrafine details
+hair#:=14/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=17/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=14/36pt#; % uppercase hairline breadth
+cap_stem#:=17/36pt#; % uppercase stem breadth
+cap_curve#:=18/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=18/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=14/36pt#; % vertical diameter of hairlines
+notch_cut#:=15/36pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+;ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/conc6pt.mf b/Master/texmf-dist/fonts/source/public/ecc/conc6pt.mf
new file mode 100644
index 00000000000..4cc89c4acd5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/conc6pt.mf
@@ -0,0 +1,73 @@
+% file conc6pt.mf: dimensions of Computer Concrete 6pt (WaS)
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=99/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+acc_height#:=49/36pt#;
+dot_height#:=46.6/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=12/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=19/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=15/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=20/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=3/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+;ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/conc7pt.mf b/Master/texmf-dist/fonts/source/public/ecc/conc7pt.mf
new file mode 100644
index 00000000000..54cf646836e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/conc7pt.mf
@@ -0,0 +1,73 @@
+% file conc7pt.mf: dimensions of Computer Concrete 7pt (WaS)
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=115.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+acc_height#:=55.5/36pt#;
+dot_height#:=51.2/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=20/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=22.5/36pt#; % uppercase curve breadth
+cap_ess#:=21.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=17/36pt#; % vertical diameter of hairlines
+notch_cut#:=21/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+;ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/conc8pt.mf b/Master/texmf-dist/fonts/source/public/ecc/conc8pt.mf
new file mode 100644
index 00000000000..cf5a1082692
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/conc8pt.mf
@@ -0,0 +1,73 @@
+% file conc8pt.mf: dimensions of Computer Concrete 8pt (WaS)
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=132/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+acc_height#:=62/36pt#;
+dot_height#:=56/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=19/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=4/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+;ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/conc9pt.mf b/Master/texmf-dist/fonts/source/public/ecc/conc9pt.mf
new file mode 100644
index 00000000000..35edb9ce0ac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/conc9pt.mf
@@ -0,0 +1,72 @@
+% file conc9pt.mf: dimensions of Computer Concrete 9pt (WaS)
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+acc_height#:=68.5/36pt#;
+dot_height#:=60.4/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=20/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=20/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+;ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/ecc/coni10pt.mf b/Master/texmf-dist/fonts/source/public/ecc/coni10pt.mf
new file mode 100644
index 00000000000..cf1ac4c1fc6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/coni10pt.mf
@@ -0,0 +1,73 @@
+% file coni10pt.mf: dimensions of Computer Concrete Italic 10pt (WaS)
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+acc_height#:=75/36pt#;
+dot_height#:=75/36pt#;
+
+crisp#:=11/36pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+;ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eocc10.mf b/Master/texmf-dist/fonts/source/public/ecc/eocc10.mf
new file mode 100644
index 00000000000..be2c03ab729
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eocc10.mf
@@ -0,0 +1,117 @@
+% European Concrete Roman Caps and Small Caps 10 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EOCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+acc_height#:=75/36pt#;
+dot_height#:=56/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+;ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.dot_size#:=35/36pt#;
+lower.cap_hair#:=21/36pt#; % uppercase hairline breadth
+lower.stem#:=23/36pt#; % lowercase stem breadth
+lower.cap_stem#:=24/36pt#; % uppercase stem breadth
+lower.cap_curve#:=26/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=21/36pt#; % serif and arm thickness
+lower.cap_bar#:=21/36pt#; % uppercase bar thickness
+lower.cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=27/36pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=.93; % factor applied to weights of heavy characters
+
+generate excsc % switch to the driver file
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eorm10.mf b/Master/texmf-dist/fonts/source/public/ecc/eorm10.mf
new file mode 100644
index 00000000000..540df42e742
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eorm10.mf
@@ -0,0 +1,12 @@
+% European Concrete Roman 10 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EORM"; font_size 10pt#;
+input conc10pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eorm5.mf b/Master/texmf-dist/fonts/source/public/ecc/eorm5.mf
new file mode 100644
index 00000000000..0926762f529
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eorm5.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Roman 5 point
+% [1998/10/31 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EORM"; font_size 5pt#;
+input conc5pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eorm6.mf b/Master/texmf-dist/fonts/source/public/ecc/eorm6.mf
new file mode 100644
index 00000000000..ba1cde8407c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eorm6.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Roman 6 point
+% [1997/10/31 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EORM"; font_size 6pt#;
+input conc6pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eorm7.mf b/Master/texmf-dist/fonts/source/public/ecc/eorm7.mf
new file mode 100644
index 00000000000..8c33f85e473
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eorm7.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Roman 7 point
+% [1998/10/31 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EORM"; font_size 7pt#;
+input conc7pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eorm8.mf b/Master/texmf-dist/fonts/source/public/ecc/eorm8.mf
new file mode 100644
index 00000000000..b0b919a0d17
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eorm8.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Roman 8 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EORM"; font_size 8pt#;
+input conc8pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eorm9.mf b/Master/texmf-dist/fonts/source/public/ecc/eorm9.mf
new file mode 100644
index 00000000000..2db9cc65308
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eorm9.mf
@@ -0,0 +1,12 @@
+% European Conputer Concrete Roman 9 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EORM"; font_size 9pt#;
+input conc9pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eosl10.mf b/Master/texmf-dist/fonts/source/public/ecc/eosl10.mf
new file mode 100644
index 00000000000..5655ef944c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eosl10.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Slanted 10 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EOSL"; font_size 10pt#;
+input conc10pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eosl5.mf b/Master/texmf-dist/fonts/source/public/ecc/eosl5.mf
new file mode 100644
index 00000000000..8103fa41e1c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eosl5.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Slanted 5 point
+% [1998/10/31 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EOSL"; font_size 5pt#;
+input conc5pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eosl6.mf b/Master/texmf-dist/fonts/source/public/ecc/eosl6.mf
new file mode 100644
index 00000000000..a29bbdd9412
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eosl6.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Slanted 6 point
+% [1998/10/31 v1.0 (WaS)
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EOSL"; font_size 6pt#;
+input conc6pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eosl7.mf b/Master/texmf-dist/fonts/source/public/ecc/eosl7.mf
new file mode 100644
index 00000000000..89c8dbd8701
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eosl7.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Slanted 7 point
+% [1998/10/31 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EOSL"; font_size 7pt#;
+input conc7pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eosl8.mf b/Master/texmf-dist/fonts/source/public/ecc/eosl8.mf
new file mode 100644
index 00000000000..85e86a97ea5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eosl8.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Slanted 8 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EOSL"; font_size 8pt#;
+input conc8pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eosl9.mf b/Master/texmf-dist/fonts/source/public/ecc/eosl9.mf
new file mode 100644
index 00000000000..d19fdccc7e8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eosl9.mf
@@ -0,0 +1,12 @@
+% European Conputer Concrete Slanted 9 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EOSL"; font_size 9pt#;
+input conc9pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate exroman; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/eoti10.mf b/Master/texmf-dist/fonts/source/public/ecc/eoti10.mf
new file mode 100644
index 00000000000..590f29ddf1c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/eoti10.mf
@@ -0,0 +1,13 @@
+% European Computer Concrete Text Italic 10 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="EOTI"; font_size 10pt#;
+input coni10pt;
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+classic_serif:=false;
+generate extextit; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/tcssdc10.mf b/Master/texmf-dist/fonts/source/public/ecc/tcssdc10.mf
new file mode 100644
index 00000000000..1703355a0f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/tcssdc10.mf
@@ -0,0 +1,75 @@
+% European Computer Modern Sans Serif Demibold Condensed text companion font
+% [1997/10/24 v0.9 (WaS)]
+%
+%
+if unknown exbase: input exbase fi
+
+font_identifier:="TCSSDC";
+font_size 10pt#;
+
+u#:=19/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-8/36pt#;
+cap_serif_fit#:=-9/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=250/36pt#;
+fig_height#:=250/36pt#;
+x_height#:=170/36pt#;
+math_axis#:=95/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=60/36pt#;
+acc_height#:=75/36pt#;
+dot_height#:=60/36pt#;
+udot_height#:=60/36pt#;
+crisp#:=23/36pt#;
+tiny#:=23/36pt#;
+fine#:=8/36pt#;
+thin_join#:=8/36pt#;
+hair#:=40/36pt#;
+stem#:=40/36pt#;
+curve#:=40/36pt#;
+ess#:=37/36pt#;
+flare#:=31/36pt#;
+dot_size#:=38/36pt#;
+cap_hair#:=40/36pt#;
+cap_stem#:=44/36pt#;
+cap_curve#:=44/36pt#;
+cap_ess#:=42/36pt#;
+rule_thickness#:=.69444pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=1.5/36pt#;
+vair#:=23/36pt#;
+notch_cut#:=40/36pt#;
+bar#:=23/36pt#;
+slab#:=31/36pt#;
+cap_bar#:=29/36pt#;
+cap_band#:=27/36pt#;
+cap_notch_cut#:=37/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=2/36pt#;
+apex_corr#:=14/36pt#;
+o#:=7/36pt#;
+apex_o#:=0/36pt#;
+slant:=0;
+fudge:=.91;
+math_spread:=.3;
+superness:=0.74;
+superpull:=1/18;
+beak_darkness:=0;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+variant_g:=false; % i.e. we are not making an italic font
+low_asterisk:=false;
+math_fitting:=false;
+generate txsymb;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/ecc/torm10.mf b/Master/texmf-dist/fonts/source/public/ecc/torm10.mf
new file mode 100644
index 00000000000..172a3fa77e9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/torm10.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Roman text companion font 10 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TORM"; font_size 10pt#;
+input conc10pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/torm5.mf b/Master/texmf-dist/fonts/source/public/ecc/torm5.mf
new file mode 100644
index 00000000000..23605e6c599
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/torm5.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Roman text companion font 5 point
+% [1998/10/31 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TORM"; font_size 5pt#;
+input conc5pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/torm6.mf b/Master/texmf-dist/fonts/source/public/ecc/torm6.mf
new file mode 100644
index 00000000000..9453e8ce58c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/torm6.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Roman text companion font 6 point
+% [1998/10/31 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TORM"; font_size 6pt#;
+input conc6pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/torm7.mf b/Master/texmf-dist/fonts/source/public/ecc/torm7.mf
new file mode 100644
index 00000000000..a0ce354533e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/torm7.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Roman text companion font 7 point
+% [1998/10/31 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TORM"; font_size 7pt#;
+input conc7pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/torm8.mf b/Master/texmf-dist/fonts/source/public/ecc/torm8.mf
new file mode 100644
index 00000000000..9998d25d306
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/torm8.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Roman text companion font 8 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TORM"; font_size 8pt#;
+input conc8pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/torm9.mf b/Master/texmf-dist/fonts/source/public/ecc/torm9.mf
new file mode 100644
index 00000000000..4c8394e9d72
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/torm9.mf
@@ -0,0 +1,12 @@
+% European Conputer Concrete Roman text companion font 9 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TORM"; font_size 9pt#;
+input conc9pt;
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/tosl10.mf b/Master/texmf-dist/fonts/source/public/ecc/tosl10.mf
new file mode 100644
index 00000000000..39f26a46c21
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/tosl10.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Slanted text companion font 10 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TOSL"; font_size 10pt#;
+input conc10pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/tosl5.mf b/Master/texmf-dist/fonts/source/public/ecc/tosl5.mf
new file mode 100644
index 00000000000..2642ecd06da
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/tosl5.mf
@@ -0,0 +1,13 @@
+% European Computer Concrete Slanted text companion font 5 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TOSL"; font_size 5pt#;
+input conc5pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/tosl6.mf b/Master/texmf-dist/fonts/source/public/ecc/tosl6.mf
new file mode 100644
index 00000000000..6b6d20c7194
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/tosl6.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Slanted text companion font 6 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TOSL"; font_size 6pt#;
+input conc6pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/ecc/tosl7.mf b/Master/texmf-dist/fonts/source/public/ecc/tosl7.mf
new file mode 100644
index 00000000000..4e5b981d6c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/tosl7.mf
@@ -0,0 +1,13 @@
+% European Computer Concrete Slanted text companion font 7 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TOSL"; font_size 7pt#;
+input conc7pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/tosl8.mf b/Master/texmf-dist/fonts/source/public/ecc/tosl8.mf
new file mode 100644
index 00000000000..7158f7cf9ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/tosl8.mf
@@ -0,0 +1,12 @@
+% European Computer Concrete Slanted text companion font 8 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TOSL"; font_size 8pt#;
+input conc8pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/tosl9.mf b/Master/texmf-dist/fonts/source/public/ecc/tosl9.mf
new file mode 100644
index 00000000000..8a6b4315f10
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/tosl9.mf
@@ -0,0 +1,12 @@
+% European Conputer Concrete Slanted text companion font 9 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TOSL"; font_size 9pt#;
+input conc9pt;
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ecc/toti10.mf b/Master/texmf-dist/fonts/source/public/ecc/toti10.mf
new file mode 100644
index 00000000000..068696920a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ecc/toti10.mf
@@ -0,0 +1,13 @@
+% European Computer Concrete Italic text companion font 10 point
+% [1998/11/14 v1.0 (WaS)]
+
+if unknown exbase: input exbase fi
+
+font_identifier:="TOTI"; font_size 10pt#;
+input coni10pt;
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+math_fitting:=false; % should math-mode spacing be used?
+
+classic_serif:=false;
+generate txsymb; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/Fbf10.mf b/Master/texmf-dist/fonts/source/public/eiad/Fbf10.mf
new file mode 100644
index 00000000000..be5fd2355ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/Fbf10.mf
@@ -0,0 +1,76 @@
+%
+% Created from cmbx10.mf as described by the file Leigh_me from
+% Ivan A Derzhanski by Uwe M\"unch. This is needed for the
+% eiad-font-family.
+%
+font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/Fr10.mf b/Master/texmf-dist/fonts/source/public/eiad/Fr10.mf
new file mode 100644
index 00000000000..40939a9f8fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/Fr10.mf
@@ -0,0 +1,77 @@
+%
+% Created from cmr10.mf as described by the file Leigh_me from
+% Ivan A Derzhanski by Uwe M\"unch. This is needed for the
+% eiad-font-family.
+%
+font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadb10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadb10.mf
new file mode 100644
index 00000000000..48e75eaa5cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadb10.mf
@@ -0,0 +1,16 @@
+% eiadb10.mf: Irish Boldface 10 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADB";
+design_size := 10;
+font_size design_size*pt#;
+input c-cmbx;
+
+u#:=(20*(design_size/10))/36pt#; % unit width
+width_adj#:=(10*(design_size/10))/36pt#;
+ % width adjustment for certain characters
+cap_serif_fit#:=(6*(design_size/10))/36pt#;
+ % extra sidebar near uppercase serifs
+
+cap_jut#:=(34*(design_size/10))/36pt#; % protrusion of uppercase serifs
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadbx10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadbx10.mf
new file mode 100644
index 00000000000..14cfa1e7ff1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadbx10.mf
@@ -0,0 +1,7 @@
+% eiadbx10.mf: Irish Boldface Extended 10 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADBX";
+design_size := 10;
+font_size design_size*pt#;
+input c-cmbx;
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadbxi10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadbxi10.mf
new file mode 100644
index 00000000000..74048034024
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadbxi10.mf
@@ -0,0 +1,69 @@
+% Bold Extended Irish Italic
+if unknown cmbase: input cmbase fi
+
+design_size := 10;
+font_identifier:="EIADBXI"; font_size design_size * pt#;
+
+% This font is a modification of Computer Modern Bold Extended.
+
+input c-cmbx;
+
+u#:= % unit width
+ ((u#*360pt#) - (design_size * 1.8))/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ (if design_size < 8: (-(design_size*10)+80)
+ else: (0)fi)/360pt#;
+
+crisp#:= % diameter of serif corners
+ ((crisp#*360pt#) + (design_size * 13))/360pt#;
+
+hair#:= % lowercase hairline breadth
+ ((hair#*360pt#) + (design_size * 3))/360pt#;
+
+stem#:= % lowercase stem breadth
+ ((stem#*360pt#) - (design_size * 3))/360pt#;
+
+curve#:= % lowercase curve breadth
+ ((curve#*360pt#) - (design_size * 3))/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ ((ess#*360pt#) - (design_size * 3))/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ ((flare#*360pt#) - (design_size * 3))/360pt#;
+
+dot_size#:= % diameter of dots
+ ((dot_size#*360pt#) - (design_size * 3))/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ ((cap_hair#*360pt#) + (design_size * 3))/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ ((cap_stem#*360pt#) - (design_size * 2))/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ ((cap_curve#*360pt#) - (design_size * 3))/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ ((cap_ess#*360pt#) - (design_size * 3) - 0.001)/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ ((jut#*360pt#) + (design_size * 2))/360pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ ((beak_jut#*360pt#) - (design_size * 1) - 0.00032)/360pt#;
+
+o#:= % amount of overshoot for curves
+ ((o#*360pt#) + (design_size * 2))/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ ((apex_o#*360pt#) + (design_size * 3) + 0.00091)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadbxsl10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadbxsl10.mf
new file mode 100644
index 00000000000..4c9fb9cb752
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadbxsl10.mf
@@ -0,0 +1,8 @@
+% eiadbxsl10.mf: Irish Boldface Extended Slanted 10 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADBXSL";
+design_size := 10;
+font_size design_size*pt#;
+input c-cmbx;
+slant:=1/6;
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadccsc10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadccsc10.mf
new file mode 100644
index 00000000000..b8824d81d88
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadccsc10.mf
@@ -0,0 +1,110 @@
+% Irish Concrete Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EIADCCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=21/36pt#; % uppercase hairline breadth
+lower.stem#:=23/36pt#; % lowercase stem breadth
+lower.cap_stem#:=24/36pt#; % uppercase stem breadth
+lower.cap_curve#:=26/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=21/36pt#; % serif and arm thickness
+lower.cap_bar#:=21/36pt#; % uppercase bar thickness
+lower.cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=27/36pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=.93; % factor applied to weights of heavy characters
+
+generate gaec7cb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadci10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadci10.mf
new file mode 100644
index 00000000000..139d9b2a0bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadci10.mf
@@ -0,0 +1,75 @@
+% Concrete Irish Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EIADCI"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=11/36pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=24/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadcr10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadcr10.mf
new file mode 100644
index 00000000000..209b26fb2d7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadcr10.mf
@@ -0,0 +1,75 @@
+% Concrete Irish 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EIADCR"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadcsc10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadcsc10.mf
new file mode 100644
index 00000000000..09add165b4d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadcsc10.mf
@@ -0,0 +1,99 @@
+% Irish Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+design_size := 10;
+font_identifier:="EIADCSC"; font_size design_size * pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+% These parameters are nearly the same as the Computer Modern Roman
+% parameters.
+
+input c-cmr;
+
+u#:= % unit width
+ ((u#*360pt#) + (design_size * 1))/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 5))/360pt#;
+
+ligs:=1; % level of ligatures to be included
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:= % unit width
+ (u#*360pt#*16)/(21*360pt#);
+
+lower.width_adj#:= % width adjustment for certain characters
+ width_adj#;
+
+lower.cap_serif_fit#:= % extra sidebar near uppercase serifs
+ (cap_serif_fit#*360pt#*4)/(5*360pt#);
+
+lower.letter_fit#:= % extra space added to all sidebars
+ (letter_fit#*36pt#*24)/(5*360pt#);
+
+lower.body_height#:= % height of tallest characters
+ (body_height#*36pt#*20.0)/(27.0*36pt#);
+
+lower.cap_height#:= % height of caps
+ (cap_height#*36pt#*18.5)/(24.6*36pt#);
+
+lower.x_height#:= % height of lowercase without ascenders
+ (x_height#*36pt#*116)/(155*36pt#);
+
+lower.bar_height#:= % height of crossbar in lowercase e
+ (bar_height#*36pt#*65)/(87*36pt#);
+
+lower.comma_depth#:= % depth of comma below baseline
+ (comma_depth#*36pt#*52)/(70*36pt#);
+
+lower.stem#:= % lowercase stem breadth
+ (stem#*360pt#*21)/(25*360pt#);
+
+lower.flare#:= % diameter of bulbs or breadth of terminals
+ (flare#*360pt#*25)/(33*360pt#);
+
+lower.cap_hair#:= % uppercase hairline breadth
+ (cap_hair#*36pt#*91)/(11*360pt#);
+
+lower.cap_stem#:= % uppercase stem breadth
+ (cap_stem#*360pt#*26)/(32*360pt#);
+
+lower.cap_curve#:= % uppercase curve breadth
+ (cap_curve#*360pt#*31)/(37*360pt#);
+
+lower.cap_ess#:= % breadth in middle of uppercase s
+ (cap_ess#*360pt#*28)/(35*360pt#);
+
+lower.cap_jut#:= % protrusion of uppercase serifs
+ (cap_jut#*360pt#*26)/(37*360pt#);
+
+lower.beak_jut#:= % horizontal protrusion of beak serifs
+ (beak_jut#*360pt#*7)/(10*360pt#);
+
+lower.beak#:= % vertical protrusion of beak serifs
+ (beak#*36pt#*52)/(7*360pt#);
+
+lower.slab#:= % serif and arm thickness
+ (slab#*36pt#*91)/(11*360pt#);
+
+lower.cap_bar#:= % uppercase bar thickness
+ (cap_bar#*36pt#*91)/(11*360pt#);
+
+lower.cap_band#:= % uppercase thickness above/below lobes
+ (cap_band#*36pt#*91)/(11*360pt#);
+
+lower.cap_notch_cut#:= % max breadth above/below uppercase notches
+ cap_notch_cut#;
+
+lower.o#:= % amount of overshoot for curves
+ (o#*360pt#*5)/(8*360pt#);
+
+lower.apex_o#:= % amount of overshoot for diagonal junctions
+ (apex_o#*360pt#*4)/(8*360pt#);
+
+lower.fudge:= % factor applied to weights of heavy characters
+ fudge;
+
+generate gaec7cb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadcsl10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadcsl10.mf
new file mode 100644
index 00000000000..4a6411b513c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadcsl10.mf
@@ -0,0 +1,75 @@
+% Concrete Slanted Irish 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EIADCSL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=1/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=92/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=30/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=1pt#; % max breadth above/below uppercase notches
+serif_drop#:=5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=4/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadcslc9.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadcslc9.mf
new file mode 100644
index 00000000000..d2375e079a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadcslc9.mf
@@ -0,0 +1,75 @@
+% Concrete Slanted Condensed Irish 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EIADCSLC"; font_size 9pt#;
+
+u#:=16/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=16/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=16/36pt#; % uppercase hairline breadth
+cap_stem#:=23/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=16/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=27/36pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=.9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/15; % extra openness inside bowls
+beak_darkness:=5/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiaddunh10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiaddunh10.mf
new file mode 100644
index 00000000000..5f6c903fc9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiaddunh10.mf
@@ -0,0 +1,20 @@
+% eiaddunh10.mf: Irish Dunhill 10 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADDUNH";
+design_size := 10;
+font_size design_size*pt#;
+input c-cmr;
+
+body_height#:= % height of tallest characters
+ ((body_height#*360pt#) + (design_size*100))/360pt#;
+
+asc_height#:= % height of lowercase ascenders
+ ((asc_height#*360pt#) + (design_size*100) + 0.0003)/360pt#;
+
+cap_height#:= % height of caps
+ ((cap_height#*360pt#) + (design_size*100) + 0.0003)/360pt#;
+
+fig_height#:= % height of numerals
+ ((fig_height#*360pt#) + (design_size*100) + 0.0003)/360pt#;
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadff10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadff10.mf
new file mode 100644
index 00000000000..4565205dde7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadff10.mf
@@ -0,0 +1,13 @@
+% eiadff10.mf: Irish Funny 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EIADFF";
+
+design_size := 10;
+
+font_size design_size*pt#;
+
+input c-cmff;
+
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadfi10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadfi10.mf
new file mode 100644
index 00000000000..325db727b13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadfi10.mf
@@ -0,0 +1,34 @@
+% eiadfi10.mf: Irish Funny Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EIADFI";
+
+design_size := 10;
+
+font_size design_size*pt#;
+
+input c-cmff;
+
+u#:=(21*(design_size/10))/36pt#; % unit width
+
+crisp#:=(11*(design_size/10))/36pt#; % diameter of serif corners
+hair#:=(11*(design_size/10))/36pt#; % lowercase hairline breadth
+stem#:=(17*(design_size/10))/36pt#; % lowercase stem breadth
+curve#:=(21*(design_size/10))/36pt#; % lowercase curve breadth
+ess#:=(23*(design_size/10))/36pt#; % breadth in middle of lowercase s
+flare#:=(25*(design_size/10))/36pt#; % diameter of bulbs or breadth of terminals
+cap_hair#:=(15*(design_size/10))/36pt#; % uppercase hairline breadth
+cap_stem#:=(25*(design_size/10))/36pt#; % uppercase stem breadth
+cap_curve#:=(27*(design_size/10))/36pt#; % uppercase curve breadth
+cap_ess#:=(29*(design_size/10))/36pt#; % breadth in middle of uppercase s
+
+vair#:=(15*(design_size/10))/36pt#; % vertical diameter of hairlines
+bar#:=(18*(design_size/10))/36pt#; % lowercase bar thickness
+slab#:=(21*(design_size/10))/36pt#; % serif and arm thickness
+cap_bar#:=(23*(design_size/10))/36pt#; % uppercase bar thickness
+cap_band#:=(18*(design_size/10))/36pt#; % uppercase thickness above/below lobes
+
+slant:=+.1; % tilt ratio $(\Delta x/\Delta y)$
+
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadfib8.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadfib8.mf
new file mode 100644
index 00000000000..5f47f53f079
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadfib8.mf
@@ -0,0 +1,80 @@
+% eiadfib8.mf: Irish Fibonacci 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EIADFIB";
+
+design_size := 8;
+
+font_size design_size*pt#;
+
+u#:=(21*(design_size/8))/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=(-2*(design_size/8))/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=(233*(design_size/8))/36pt#; % height of tallest characters
+asc_height#:=(233*(design_size/8))/36pt#; % height of lowercase ascenders
+cap_height#:=(233*(design_size/8))/36pt#; % height of caps
+fig_height#:=(233*(design_size/8))/36pt#; % height of numerals
+x_height#:=(144*(design_size/8))/36pt#; % height of lowercase without ascenders
+math_axis#:=(89*(design_size/8))/36pt#; % axis of symmetry for math symbols
+bar_height#:=(89*(design_size/8))/36pt#; % height of crossbar in lowercase e
+comma_depth#:=(55*(design_size/8))/36pt#; % depth of comma below baseline
+desc_depth#:=(55*(design_size/8))/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=(13*(design_size/8))/36pt#; % diameter of rounded corners
+fine#:=(13*(design_size/8))/36pt#; % diameter of sharply rounded corners
+thin_join#:=(13*(design_size/8))/36pt#; % width of extrafine details
+hair#:=(21*(design_size/8))/36pt#; % lowercase hairline breadth
+stem#:=(34*(design_size/8))/36pt#; % lowercase stem breadth
+curve#:=(39*(design_size/8))/36pt#; % lowercase curve breadth
+ess#:=(34*(design_size/8))/36pt#; % breadth in middle of lowercase s
+flare#:=(34*(design_size/8))/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=(34*(design_size/8))/36pt#; % diameter of dots
+cap_hair#:=(21*(design_size/8))/36pt#; % uppercase hairline breadth
+cap_stem#:=(34*(design_size/8))/36pt#; % uppercase stem breadth
+cap_curve#:=(39*(design_size/8))/36pt#; % uppercase curve breadth
+cap_ess#:=(34*(design_size/8))/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=(21*(design_size/8))/36pt#; % thickness of lines in math symbols
+
+dish#:=(1*(design_size/8))/36pt#; % amount erased at top or bottom of serifs
+bracket#:=(21*(design_size/8))/36pt#; % vertical distance from serif base to tangent
+jut#:=(21*(design_size/8))/36pt#; % protrusion of lowercase serifs
+cap_jut#:=(21*(design_size/8))/36pt#; % protrusion of uppercase serifs
+beak_jut#:=(13*(design_size/8))/36pt#; % horizontal protrusion of beak serifs
+beak#:=(55*(design_size/8))/36pt#; % vertical protrusion of beak serifs
+vair#:=(13*(design_size/8))/36pt#; % vertical diameter of hairlines
+notch_cut#:=(8*(design_size/8)) * pt#; % maximum breadth above or below notches
+bar#:=(13*(design_size/8))/36pt#; % lowercase bar thickness
+slab#:=(13*(design_size/8))/36pt#; % serif and arm thickness
+cap_bar#:=(13*(design_size/8))/36pt#; % uppercase bar thickness
+cap_band#:=(13*(design_size/8))/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=(8*(design_size/8)) * pt#; % max breadth above/below uppercase notches
+serif_drop#:=(3*(design_size/8))/36pt#; % vertical drop of sloped serifs
+stem_corr#:=(1*(design_size/8))/36pt#; % for small refinements of stem breadth
+vair_corr#:=(1*(design_size/8))/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=(8*(design_size/8))/36pt#; % amount of overshoot for curves
+apex_o#:=(8*(design_size/8))/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=3/8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/13; % extra openness inside bowls
+beak_darkness:=5/13; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadi10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadi10.mf
new file mode 100644
index 00000000000..c20fb352cbf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadi10.mf
@@ -0,0 +1,20 @@
+% eiadi10.mf: Irish Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="EIADI";
+design_size := 10;
+font_size design_size*pt#;
+
+input c-cmti; % compute size parameters for CMR family
+
+letter_fit#:= % extra space added to all sidebars
+ (if design_size < 6: (-(design_size*20)+150)
+ elseif design_size < 7: (-(design_size*10)+90)
+ elseif design_size < 8: (-(design_size*20)+160)
+ elseif design_size < 10: (0)
+ else: (-(0.9365634365616*design_size*design_size)+
+ (20.60439560424*design_size) -
+ (112.38761238732))fi)/360pt#;
+
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiaditt10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiaditt10.mf
new file mode 100644
index 00000000000..7298199c26a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiaditt10.mf
@@ -0,0 +1,23 @@
+% Italic Typewriter Irish Text
+if unknown cmbase: input cmbase fi
+
+design_size := 10;
+font_identifier:="EIADITT"; font_size design_size * pt#;
+
+% This font is a modification of Computer Modern Typewriter Text
+
+input c-cmtt;
+
+letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 15))/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ ((jut#*360pt#) + (design_size * 6))/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadr10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadr10.mf
new file mode 100644
index 00000000000..291c2179cdd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadr10.mf
@@ -0,0 +1,8 @@
+% eiadr10.mf: Computer Modern Irish 10 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIAD";
+design_size := 10;
+font_size design_size*pt#;
+input c-cmr; % compute size parameters for CMR family
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadr12.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadr12.mf
new file mode 100644
index 00000000000..dbdecf32266
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadr12.mf
@@ -0,0 +1,8 @@
+% eiadr12.mf: Computer Modern Irish 12 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIAD";
+design_size := 12;
+font_size design_size*pt#;
+input c-cmr; % compute size parameters for CMR family
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadr17.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadr17.mf
new file mode 100644
index 00000000000..21b1201105a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadr17.mf
@@ -0,0 +1,8 @@
+% eiadr17.mf: Computer Modern Irish 17 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIAD";
+design_size := 17;
+font_size design_size*pt#;
+input c-cmr; % compute size parameters for CMR family
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadsl10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadsl10.mf
new file mode 100644
index 00000000000..ddb6ddc0dbe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadsl10.mf
@@ -0,0 +1,9 @@
+% eiadsl10.mf: Irish Slanted 10 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADSL";
+design_size := 10;
+font_size design_size*pt#;
+input c-cmr; % compute size parameters for CMR family
+slant:=1/6;
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadsltt10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadsltt10.mf
new file mode 100644
index 00000000000..7d2e97d2d7a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadsltt10.mf
@@ -0,0 +1,15 @@
+% Irish Slanted Typewriter Text
+if unknown cmbase: input cmbase fi
+
+design_size := 10;
+font_identifier:="EIADSLTT"; font_size design_size * pt#;
+
+% This font is a modification of Computer Modern Typewriter Text.
+
+input c-cmtt;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 1/6;
+
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadss10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadss10.mf
new file mode 100644
index 00000000000..983f35cf80c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadss10.mf
@@ -0,0 +1,8 @@
+% eiadss10.mf: Irish Sans Serif 10 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADSS";
+design_size := 10;
+font_size design_size*pt#;
+input c-cmss; % compute size parameters for CMR family
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadssbx10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadssbx10.mf
new file mode 100644
index 00000000000..c8f39e69e06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadssbx10.mf
@@ -0,0 +1,8 @@
+% eiadssbx10.mf: Irish Sans Serif Boldface Extended 10 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADSSBX";
+design_size := 10;
+font_size design_size*pt#;
+input c-cmssbx; % compute size parameters for CMR family
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadssdc10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadssdc10.mf
new file mode 100644
index 00000000000..4b624a76d22
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadssdc10.mf
@@ -0,0 +1,75 @@
+% Irish Sans Serif Demibold Condensed
+if unknown cmbase: input cmbase fi
+design_size:=10;
+font_identifier:="EIADSSDC"; font_size design_size * pt#;
+
+u#:=(19*(design_size/10))/36pt#; % unit width
+width_adj#:=(15*(design_size/10))/36pt#; % width adjustment for certain characters
+serif_fit#:=(-8*(design_size/10))/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=(-9*(design_size/10))/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=(270*(design_size/10))/36pt#; % height of tallest characters
+asc_height#:=(250*(design_size/10))/36pt#; % height of lowercase ascenders
+cap_height#:=(250*(design_size/10))/36pt#; % height of caps
+fig_height#:=(250*(design_size/10))/36pt#; % height of numerals
+x_height#:=(170*(design_size/10))/36pt#; % height of lowercase without ascenders
+math_axis#:=(95*(design_size/10))/36pt#; % axis of symmetry for math symbols
+bar_height#:=(95*(design_size/10))/36pt#; % height of crossbar in lowercase e
+comma_depth#:=(40*(design_size/10))/36pt#; % depth of comma below baseline
+desc_depth#:=(60*(design_size/10))/36pt#; % depth of lowercase descenders
+
+crisp#:=(23*(design_size/10))/36pt#; % diameter of serif corners
+tiny#:=(23*(design_size/10))/36pt#; % diameter of rounded corners
+fine#:=(8*(design_size/10))/36pt#; % diameter of sharply rounded corners
+thin_join#:=(8*(design_size/10))/36pt#; % width of extrafine details
+hair#:=(40*(design_size/10))/36pt#; % lowercase hairline breadth
+stem#:=(40*(design_size/10))/36pt#; % lowercase stem breadth
+curve#:=(40*(design_size/10))/36pt#; % lowercase curve breadth
+ess#:=(37*(design_size/10))/36pt#; % breadth in middle of lowercase s
+flare#:=(31*(design_size/10))/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=(38*(design_size/10))/36pt#; % diameter of dots
+cap_hair#:=(40*(design_size/10))/36pt#; % uppercase hairline breadth
+cap_stem#:=(44*(design_size/10))/36pt#; % uppercase stem breadth
+cap_curve#:=(44*(design_size/10))/36pt#; % uppercase curve breadth
+cap_ess#:=(42*(design_size/10))/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=(25*(design_size/10))/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=(1.5*(design_size/10))/36pt#; % vertical protrusion of beak serifs
+vair#:=(23*(design_size/10))/36pt#; % vertical diameter of hairlines
+notch_cut#:=(40*(design_size/10))/36pt#; % maximum breadth above or below notches
+bar#:=(23*(design_size/10))/36pt#; % lowercase bar thickness
+slab#:=(31*(design_size/10))/36pt#; % serif and arm thickness
+cap_bar#:=(29*(design_size/10))/36pt#; % uppercase bar thickness
+cap_band#:=(27*(design_size/10))/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=(37*(design_size/10))/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=(2*(design_size/10))/36pt#; % vertical drop of sloped serifs
+stem_corr#:=(1*(design_size/10))/36pt#; % for small refinements of stem breadth
+vair_corr#:=(2*(design_size/10))/36pt#; % for small refinements of hairline height
+apex_corr#:=(14*(design_size/10))/36pt#; % extra width at diagonal junctions
+
+o#:=(7*(design_size/10))/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.91; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.74; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadssi10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadssi10.mf
new file mode 100644
index 00000000000..0f99b4b8256
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadssi10.mf
@@ -0,0 +1,10 @@
+% eiadssi10.mf: Irish Sans Serif Slanted 10 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADSSI";
+design_size := 10;
+font_size design_size*pt#;
+input c-cmss; % compute size parameters for CMR family
+slant:=sind 12/cosd 12;
+generate gaelach % switch to the driver file
+
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadssq8.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadssq8.mf
new file mode 100644
index 00000000000..b8ac8fa01ab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadssq8.mf
@@ -0,0 +1,8 @@
+% eiadssq8.mf: Irish Sans Serif Quotation Style 8 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADSSQ";
+design_size := 8;
+font_size design_size*pt#;
+input c-cmssq; % compute size parameters for CMR family
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadssqi8.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadssqi8.mf
new file mode 100644
index 00000000000..4af06a70b8f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadssqi8.mf
@@ -0,0 +1,9 @@
+% eiadssqi8.mf: Irish Sans Serif Quotation Style Slanted 8 point
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADSSQ";
+design_size := 8;
+font_size design_size*pt#;
+input c-cmssq; % compute size parameters for CMR family
+slant:=sind 12/cosd 12;
+generate gaelach % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadtcsc10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadtcsc10.mf
new file mode 100644
index 00000000000..a6d2e16c784
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadtcsc10.mf
@@ -0,0 +1,89 @@
+% Irish Typewriter Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+design_size := 10;
+font_identifier:="EIADTCSC"; font_size design_size * pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+
+input c-cmtt;
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:= % unit width
+ u#;
+
+lower.width_adj#:= % width adjustment for certain characters
+ width_adj#;
+
+lower.cap_serif_fit#:= % extra sidebar near uppercase serifs
+ cap_serif_fit#;
+
+lower.letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 3))/360pt#;
+
+lower.body_height#:= % height of tallest characters
+ (body_height#*36pt#*19)/(25*36pt#);
+
+lower.cap_height#:= % height of caps
+ (cap_height#*36pt#*17)/(22*36pt#);
+
+lower.x_height#:= % height of lowercase without ascenders
+ (x_height#*36pt#*12)/(15.5*36pt#);
+
+lower.bar_height#:= % height of crossbar in lowercase e
+ ((bar_height#*36pt#*62)+0.002)/(79*36pt#);
+
+lower.comma_depth#:= % depth of comma below baseline
+ (comma_depth#*360pt#*38)/(50*360pt#);
+
+lower.stem#:= % lowercase stem breadth
+ stem#;
+
+lower.flare#:= % diameter of bulbs or breadth of terminals
+ (flare#*360pt#*30)/(32*360pt#);
+
+lower.cap_hair#:= % uppercase hairline breadth
+ cap_hair#;
+
+lower.cap_stem#:= % uppercase stem breadth
+ cap_stem#;
+
+lower.cap_curve#:= % uppercase curve breadth
+ cap_curve#;
+
+lower.cap_ess#:= % breadth in middle of uppercase s
+ cap_ess#;
+
+lower.cap_jut#:= % protrusion of uppercase serifs
+ ((cap_jut#*360pt#*26)+0.01)/(34*360pt#);
+
+lower.beak_jut#:= % horizontal protrusion of beak serifs
+ beak_jut#;
+
+lower.beak#:= % vertical protrusion of beak serifs
+ ((beak#*360pt#*26)+0.01)/(34*360pt#);
+
+lower.slab#:= % serif and arm thickness
+ slab#;
+
+lower.cap_bar#:= % uppercase bar thickness
+ cap_bar#;
+
+lower.cap_band#:= % uppercase thickness above/below lobes
+ cap_band#;
+
+lower.cap_notch_cut#:= % max breadth above/below uppercase notches
+ (cap_notch_cut#*360pt#*24)/(25*360pt#);
+
+lower.o#:= % amount of overshoot for curves
+ ((o#*360pt#*3)-0.0018)/(4*360pt#);
+
+lower.apex_o#:= % amount of overshoot for diagonal junctions
+ (apex_o#*360pt#*2)/(3*360pt#);
+
+lower.fudge:= % factor applied to weights of heavy characters
+ ((fudge*10*85)+0.001)/(81*10);
+
+generate gaec7cb % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadtt10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadtt10.mf
new file mode 100644
index 00000000000..c8f9e90d554
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadtt10.mf
@@ -0,0 +1,7 @@
+% Irish Typewriter Text
+if unknown cmbase: input cmbase fi
+font_identifier:="EIADTT";
+design_size := 10;
+font_size design_size * pt#;
+input c-cmtt;
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiadvtt10.mf b/Master/texmf-dist/fonts/source/public/eiad/eiadvtt10.mf
new file mode 100644
index 00000000000..d418db7251f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiadvtt10.mf
@@ -0,0 +1,17 @@
+% Variable-Width Typewriter Irish Text
+if unknown cmbase: input cmbase fi
+
+design_size:=10;
+font_identifier:="EIADVTT"; font_size design_size * pt#;
+
+% This font is a simple modification of CMTT.
+
+input c-cmtt;
+
+ligs:= % level of ligatures to be included
+ 2;
+
+monospace:= % should all characters have the same width?
+ false;
+
+generate gaelach % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eira.mf b/Master/texmf-dist/fonts/source/public/eiad/eira.mf
new file mode 100644
index 00000000000..46ad27b9abb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eira.mf
@@ -0,0 +1,140 @@
+% eira.mf: Irish diacritics and macros
+
+ailm_fada := oct"033"; Ailm_fada := oct"003";
+eabhadh_fada := oct"034"; Eabhadh_fada := oct"004";
+iodha_fada := oct"035"; Iodha_fada := oct"005";
+oir_fada := oct"036"; Oir_fada := oct"006";
+uwr_fada := oct"037"; Uwr_fada := oct"007";
+
+def fada(suffix $) =
+x.fad1-x.fad2=3u; .5[x.fad1,x.fad2]=x$;
+if serifs: pickup crisp.nib;
+ y.fad1+.5stem=h+eps;
+ y.fad2=max(2/3[h,x_height],x_height+o+hair,y$+o+.5tiny);
+ numeric theta; theta=angle(z.fad2-z.fad1)+90;
+ pos.fad1(stem,theta); pos.fad2(hair,theta);
+ filldraw circ_stroke z.fad1e--z.fad2e; % diagonal
+else: pickup fine.nib; pos.fad1(stem,0); pos.fad2(vair,0);
+ top y.fad1=h; bot y.fad2=max(vround 2/3[h,x_height],y$r+o+.5tiny);
+ filldraw stroke z.fad1e--z.fad2e; fi % diagonal
+penlabels(fad1,fad2); enddef;
+
+dot_diam# := max(dot_size#,cap_curve#);
+beith_h := oct"166"; Beith_h := oct"126";
+coll_h := oct"153"; Coll_h := oct"113";
+dair_h := oct"152"; Dair_h := oct"112";
+fearn_h := oct"161"; Fearn_h := oct"121";
+gort_h := oct"171"; Gort_h := oct"131";
+muin_h := oct"167"; Muin_h := oct"127";
+peith_bhog_h := oct"040"; Peith_Bhog_h := oct"000";
+sail_h := oct"172"; Sail_h := oct"132";
+teine_h := oct"170"; Teine_h := oct"130";
+agus_lig := oct"031";
+
+def gen_ponc (expr meawn) =
+pickup tiny.nib; pos.ponc1(dot_diam,0); pos.ponc2(dot_diam,90);
+x.ponc1=x.ponc2=meawn;
+top y.ponc2r=h+1;
+if bot y.ponc2l<x_height+o+slab:
+ y.ponc2l:=min(y.ponc2r-eps,x_height+o+slab+.5tiny); fi
+y.ponc1=.5[y.ponc2l,y.ponc2r]; dot(ponc1,ponc2); % dot
+penlabels(ponc1,ponc2); enddef;
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"032",5u#,min(old_asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); gen_ponc (.5w); endchar;
+
+def aspirate(suffix $) = gen_ponc (x$); enddef;
+
+def trasnawn(suffix $,@)(expr jut) =
+ pickup crisp.nib; pos@1(hround(hair-stem_corr),0); pos@2(bar,90);
+ lft x@0=lft x@1l=tiny.lft x$l; top y@1=tiny.top y$r;
+ lft x@2=lft x@0-jut; y@2r=y@1-serif_drop;
+ y@0=y@2l-bracket-eps;
+ if serif_drop>0: erase fill z@1--top z@1
+ --(x@2r,top y@1)--z@2r--cycle; fi % erase excess at top
+ filldraw z@1l{down}...{left}z@2r--z@2l{right}
+ ...1/3[(x@0,y@2l),.5[z@2l,z@0] ]{z@0-z@2l}
+ ...{down}z@0--(x@1,y@0)--cycle; % sloped serif
+ z@3=(tiny.rt x$r,y@2);
+ erase fill top z@1r{right}...(x@3,y@2){down}--(x@3,top y@1r)--cycle;
+ labels(@0,@1,@2,@3); enddef;
+
+def guta_beag (expr ainm, achar) (suffix $) =
+ scantokens("cmchar") ainm;
+ beginchar (substring (0,1) of ainm, achar, x_height#, 0);
+ gen_letter;
+ endchar;
+ scantokens("cmchar") (ainm & " fada");
+ beginchar (scantokens (ainm & "_fada"),
+ achar, min(old_asc_height#,2x_height#), 0);
+ gen_letter; fada ($);
+ endchar;
+enddef;
+
+def guta_mowr (expr ainm, achar) (suffix $) =
+ scantokens("cmchar") ainm;
+ beginchar (substring (0,1) of ainm, achar, cap_height#, 0);
+ gen_letter;
+ endchar;
+ scantokens("cmchar") (ainm & " fada");
+ beginchar (scantokens (ainm & "_fada")-guta_offset,
+ achar, cap_asc_height#, 0);
+ gen_letter; fada ($);
+ endchar;
+enddef;
+
+def consan_beag (expr ainm, achar, doimh) (suffix $) =
+ scantokens("cmchar") ainm;
+ beginchar (substring (0,1) of ainm, achar, x_height#, doimh);
+ gen_letter;
+ endchar;
+ scantokens("cmchar") (ainm & " haitch");
+ beginchar (scantokens (ainm & "_h"), achar,
+ min(old_asc_height#,10/7x_height#+.5dot_diam#), doimh);
+ gen_letter; aspirate ($);
+ endchar;
+enddef;
+
+def consan_mowr (expr ainm, achar, doimh) (suffix $) =
+ scantokens("cmchar") ainm;
+ beginchar (substring (0,1) of ainm, achar, cap_height#, doimh);
+ gen_letter;
+ endchar;
+ scantokens("cmchar") (ainm & " haitch");
+ beginchar (scantokens (ainm & "_h"), achar, cap_asc_height#, doimh);
+ gen_letter; aspirate ($);
+ endchar;
+enddef;
+
+cmchar "agus";
+beginchar(agus_lig,8u#,x_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib;
+if arm_thickness<=2currentbreadth: arm_thickness:=2currentbreadth+eps; fi
+pos2(.5arm_thickness,90); pos1(arm_thickness,70);
+top y1r=top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift);
+filldraw stroke z1e{x2l-x1r,2(y2l-y1r)} .. z2e;
+penpos2'(2epsilon,-90); z2'=z2r;
+pickup tiny.nib; pos4(top_hair,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+pos5(top_hair,0); y5=-d; lft x5l=hround(5.5u+top_shift-.5top_hair);
+if hefty: erase fill rt z4r--z4r...{down}z5r
+ --(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z5e; % stroke
+else:
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e; fi % stroke
+penlabels(1,2,4,5); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eirl.mf b/Master/texmf-dist/fonts/source/public/eiad/eirl.mf
new file mode 100644
index 00000000000..6472eea0d38
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eirl.mf
@@ -0,0 +1,424 @@
+% eirl.mf: Irish lower case (minuscules)
+
+def gen_letter =
+adjust_fit(serif_fit#-2stem_shift# if monospace:-.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric left_stem,right_stem,alpha,beta;
+right_stem=curve-stem_corr;
+left_stem=min(hair if hefty: -3stem_corr fi,right_stem);
+x1l=w-x4r=l+letter_fit+.5u; y4=0;
+y1=.1bar_height;
+x2-x1=x4-x3+1.5u; x3r=x2r+apex_corr; y2=y3=x_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*left_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<x_height-notch_cut: y0:=x_height-notch_cut;
+ fill z0+.5right{z4l-z3l}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0{z4r-z3r}..diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+beta=angle(z1-z2);
+penpos5(stem,beta); z5=whatever[z1,z2];
+penpos6(vair',angle(z4-z3)); z6=whatever[z3,z4];
+y5=.4[y1,y0]; y6=.4[y4,y0];
+penpos7(stem,beta); x7r=.5(w-u); bot y7r=-oo;
+filldraw stroke z5e{z7r-z5l} ... z7e .. {z6l-z7r}z6e;
+penlabels(0,1,2,3,4,5,6,7); enddef;
+
+guta_beag ("ailm", 10u#, 2);
+
+def gen_letter =
+italcorr .7x_height#*slant+.5curve#-u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(2.5u-.5stem); top y1=h; y2=.5x_height;
+filldraw stroke z1e--z2e; % stem
+if serifs: trasnawn(1,a,jut); fi % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround min(w-1.35u+.5curve,w-.6u);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+penlabels(0,1,2,3,4,5); enddef;
+
+cmchar "beith"; beginchar("b",10u#+serif_fit#,asc_height#,0);
+gen_letter; endchar;
+
+cmchar "beith-h";
+beginchar(beith_h,10u#+serif_fit#,min(old_asc_height#,10/7x_height#+.5dot_diam#),0);
+gen_letter; aspirate(5); endchar;
+
+def gen_letter =
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos1(4/7[vair',flare],if serifs: 40 else: 80 fi);
+rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs:
+ pos5(hair,-40); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l];
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & term.e(4,5,right,.8,4); % arc and lower terminal
+else:
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(1,2,3,4,5); enddef;
+
+consan_beag ("coll", if serifs: 8.5u# else: 8u# fi, 0, 4);
+
+def gen_letter =
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,if monospace: .5u# else: 0 fi);
+pickup fine.nib;
+pos1(vair,90); pos2(curve,0); pos3(vair,-90); pos4(curve,-180);
+x1=x3=.5[x2,x4]; w-rt x2r=hround max(.5u,1.25u-.5curve);
+lft x4r=hround 2u;
+y1r=x_height+vround 1.5oo; y2=y4=.5[y1,y3]; y3r=-oo;
+filldraw circ_stroke pulled_arc.e(1,4) & pulled_arc.e(4,3)
+ & pulled_arc.e(3,2) & pulled_arc.e(2,1); % bowl
+if serifs: pos8(hair,210); lft x8r=hround u; y8=x_height+apex_oo;
+ path arc; arc=z1l{left}..{z8-z2}z8r;
+ pos9(slab,-60); lft x9l=.5u; y9r=.8x_height;
+ filldraw z8r{down}..z9l--z9r{z1-z9}..subpath(.4,0) of arc
+ --z1r{left}..{z8-z2}z8l--cycle; % lower barb
+else: pos6(vstem,80); x6=.5u; top y6r=top y1r+oo;
+ filldraw stroke z6e{z2l-z6r} .. {right}z1e; fi % ear
+penlabels(1,2,3,4,6,8,9); enddef;
+
+consan_beag ("dair", 11u#, 0, 1);
+
+def gen_letter =
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=x_height+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-1.5u,w-2u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5[x3l,x1l];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo;
+if serifs: pos4(vair',270); pos5(hair,360); x4=x2;
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270); x4=.5w+.5u;
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-1.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=w-.5u;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,1',2,3,4,5); enddef;
+
+guta_beag ("eabhadh", 9u#, 2);
+
+def gen_sail =
+italcorr x_height#*slant if not serifs:+.25u# fi;
+adjust_fit(serif_fit#+stem_shift#,0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(4/7[vair',flare],40);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; rt x3r=hround(w-.6u);
+top y1=x_height+min(oo,serif_drop); bot y2=-d; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+ y3=1/2[bar_height,x_height];
+ penpos2''(x2r-x2l,0); x2''=x2; y2''=1/8[bar_height,x_height];
+ filldraw stroke z2''e--z2e; % thicken the lower left stem
+ penpos.a0(min(rt x2r-lft x2l,thin_join)-fine,180); pickup fine.nib;
+ rt x.a0l=tiny.rt x2r; y.a0=y2'';
+ pos.a1(vair,90); pos3'(4/7[vair',flare]+tiny,40); z3'=z3;
+ x.a1=.5[rt x.a0l,rt x3'r]; top y.a1r=x_height+oo;
+ (x.a,y.a1l)=whatever[z.a1r,z.a0l]; x.a1l:=x.a;
+ filldraw stroke z.a0e{up}...{right}z.a1e
+ &{{interim superness:=hein_super; super_arc.e(a1,3')}}; % arch
+if serifs: trasnawn(1',b,jut); fi % upper left serif
+labels(a0); penlabels(a1,1,2,3,4); enddef;
+
+def gen_letter =
+numeric arm_thickness; arm_thickness=hround .9[vair,.85stem];
+gen_sail;
+pickup crisp.nib; bot y13l=bot y14l=.25bar_height;
+pos13(arm_thickness,90); pos14(arm_thickness,90);
+lft x13=x1; rt x14=x3l; filldraw stroke z13e--z14e; % bar
+penlabels(13,14); enddef;
+
+consan_beag ("fearn", 10u#, desc_depth#, a1);
+
+def gen_letter =
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric arm_thickness; arm_thickness=hround .9[vair,.85stem];
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup crisp.nib; pos17(arm_thickness,90); pos18(arm_thickness,90);
+top y17r=top y18r=x_height; rt x17=hround(w-.8u); lft x18r=hround .9u;
+filldraw stroke z17e--z18e;
+numeric theta; theta=90-angle(40u,x_height);
+slope:=-x_height/40u; % angle at middle
+pickup fine.nib; pos0(ess',theta); pos7(s_slab,-90); x0=x7=.5w;
+bot y7r=-d-oo;
+pos2(s_slab,-90); z2=(x17-u,y17);
+lft x3l=hround 2u; rt x6r=hround(w-1.4u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+pos12(s_slab,-90); z12=.5[z17l,z18l];
+y0=.5[y7l,y12r];
+ellipse_set(12l,3l,4l,0l); ellipse_set(12r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs:
+ pos9(slab,-70); lft x9l=hround 1.25u; bot y9r=good.y-5/6d;
+ pos8(hair,180); x8=x9+u; y8=apex_oo;
+ path arc; arc=z7r{left}....{up}z8r;
+ filldraw z8r{down}..z9l--z9r...subpath(.3,0) of arc
+ --z7l{left}....{up}z8l--cycle; % barb
+else: pos8(.5[vair,flare],-100);
+ lft x8r=hround 1.25u; bot y8r=good.y-5/6d;
+ filldraw stroke term.e(7,8,left,1,4); fi % arc and terminal
+penlabels(0,2,3,4,5,6,7,8,9,10,12,17,18); enddef;
+
+consan_beag ("gort", 11u#, desc_depth#, 12);
+
+cmchar "uath";
+beginchar("h",10.5u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: trasnawn(1',b,jut); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi fi
+penlabels(1,2,3,4); endchar;
+
+def gen_letter =
+italcorr h#*slant-serif_fit#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: trasnawn(1,a,jut); fi % upper serif
+penlabels(1,2,3,4); enddef;
+
+guta_beag ("iodha", 5u#, 1);
+
+cmchar "luis";
+beginchar("l",7.5u#,asc_height#,0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(serif_fit#+stem_shift#,if serifs: 0 else: -.5u# fi);
+pickup tiny.nib; pos1(stem',180); pos2(stem',180);
+lft x1r=lft x2r=hround(2.5u-.5stem);
+top y1=h; y2=max(.5bar_height,2vair);
+filldraw stroke z1e--z2e;
+pickup fine.nib; interim superness:=more_super;
+pos3(stem',180); z3=z2;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke super_arc.e(3,4)...{up}z5e; % stem and hook
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z3e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+if serifs: z1l=z1'r; z1r=z1'l; trasnawn(1',a,jut); fi % upper serif
+penlabels(1,2,3,4,5); endchar;
+
+def gen_letter =
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+%if not monospace: r:=hround(x5+x1)+l; fi % change width for better fit
+top y1=x_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: trasnawn(1',c,jut); fi % upper left serif
+penlabels(1,2,3,4,5,6); enddef;
+
+consan_beag ("muin", 15u#, 0, 3);
+
+cmchar "nuin";
+beginchar("n",10.5u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: trasnawn(1',b,jut); fi % upper left serif
+penlabels(1,2,3,4); endchar;
+
+def gen_letter =
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); enddef;
+
+guta_beag ("oir", 9u#, 1);
+
+def gen_letter =
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem');
+top y1=x_height if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=hround(2.5u-.5stem')+stem'; y0=y3; top y3=bar_height;
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l+u; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+%(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+%x6r:=x6r-x4r+x4l;
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}; % bowl
+if serifs:
+ pos9(slab,-70); lft x9l=rt x3l+.5u; y9r=.05x_height;
+ pos8(hair,180); x8=x9+u; top y8=vround .3x_height-1;
+ path arc; arc=z6r{left}....{up}z8r;
+ filldraw z8r{down}..z9l--z9r...subpath(.3,0) of arc
+ --z6l{left}....{up}z8l--cycle; % barb
+else: pos8(1.2flare,-100);
+ lft x8r=rt x3l+hround .5u; bot y8r=vround .1x_height-o;
+ filldraw stroke term.e(6,8,left,1,4); fi % arc and terminal
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: trasnawn(1,a,jut); fi % upper serif
+penlabels(0,1,2,3,4,5,6,8,9); enddef;
+
+consan_beag ("peith_bhog", 10.5u#+serif_fit#, desc_depth#, 4);
+
+cmchar "ruis";
+beginchar("r",9u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(vair,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; rt x3r=w-u; y3=0;
+top y1=h+min(oo,serif_drop); bot y2=-d; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+ penpos2''(x2r-x2l,0); x2''=x2; y2''=bar_height;
+ filldraw stroke z2''e--z2e; % thicken the lower left stem
+ penpos5(min(rt x2r-lft x2l,thin_join)-fine,180); pickup fine.nib;
+ rt x5l=tiny.rt x2r; y5=y2'';
+ pos6(vair,90); x6=.8[rt x5l,rt x3r]; top y6r=x_height+oo;
+ pos4(stem,angle(z6-z5)); z4r=z6r;
+ filldraw stroke z5e--z6e--z4e..z4e-(0,x_height-bar_height)...z3e;
+if serifs: trasnawn(1',b,jut); fi % upper left serif
+penlabels(1,2,3,4,5,6); endchar;
+
+let gen_letter = gen_sail;
+consan_beag ("sail", 10u#, desc_depth#, a1);
+
+def gen_letter =
+italcorr .8x_height#*slant-.4u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; arm_thickness=hround .9[vair,.85stem];
+hair_vair=min(.25[vair,hair],arm_thickness);
+pickup crisp.nib; pos7(arm_thickness,90); pos8(arm_thickness,90);
+top y7r=top y8r=x_height; rt x7=hround(w-.8u); lft x8r=hround .9u;
+filldraw stroke z7e--z8e;
+pickup fine.nib; pos2(min(vair',arm_thickness),90); pos4(vair',270);
+x2=x4=.5(w+u); bot y2l=crisp.bot y7l; bot y4r=-oo;
+pos3(curve,180); lft x3r=w-rt x5r+.5u=hround 2.1u; y3=.5[y2l,y4l];
+if serifs:
+ pos5(hair,-40);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l];
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & term.e(4,5,right,.8,4); % arc and lower terminal
+else:
+ pos5(.6[vair',flare],275);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(2,3,4,5,7,8); enddef;
+
+consan_beag ("teine", 10.5u#, 0, 4);
+
+def gen_letter =
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=bar_height; %2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: trasnawn(1,a,jut); % upper left serif
+ pickup tiny.nib; trasnawn(3,b,jut); fi % upper right serif
+penlabels(1,2,3,4,5); labels(6); enddef;
+
+guta_beag ("uwr", 10.5u#, 5);
diff --git a/Master/texmf-dist/fonts/source/public/eiad/eiru.mf b/Master/texmf-dist/fonts/source/public/eiad/eiru.mf
new file mode 100644
index 00000000000..bd57023ee43
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/eiru.mf
@@ -0,0 +1,481 @@
+% eiru.mf: Irish upper case (majuscules)
+
+def cap_h_stroke(suffix $,@,@@,$$) =
+ penpos$$(x@@r-x@@l,0); x$$=x@@; bot y$$=0;
+ y@@=1/3[x_height,cap_height];
+ penpos$''(x$r-x$l,0); x$''=x$; y$''=x_height;
+ filldraw stroke z$''e--z$e; % thicken the lower left stem
+ penpos@0(min(rt x$r-lft x$l,thin_join)-fine,180); pickup fine.nib;
+ rt x@0l=tiny.rt x$r; y@0=y$'';
+ pos@1(vair,90); pos@@'(x@@r-x@@l+tiny,0); z@@'=z@@;
+ x@1=.5[rt x@0l,rt x@@'r]; top y@1r=cap_height+oo;
+ (x@,y@1l)=whatever[z@1r,z@0l]; x@1l:=x@;
+ filldraw stroke z@0e{x@1-x@0,1.5(y@1-y@0)}...{right}z@1e
+ &{{interim superness:=hein_super; super_arc.e(@1,@@')}}; % arch
+ pickup tiny.nib; filldraw stroke z@@e--z$$e; % right stem
+ labels(@0); penlabels(@1); enddef;
+
+def saillipse_set(suffix $,@,@@,$$) =
+ alpha_:=slope*(x@-x$); beta_:=y$$-y$-slope*(x$$-x$);
+ gamma_:=alpha_/beta_;
+ x@@-x$=-2gamma_*(x@-x$)/(1+gamma_*gamma_);
+ y@@-y$$=slope*(x@@-x$$) enddef;
+
+def gen_letter =
+adjust_fit(cap_serif_fit#-2stem_shift# if monospace:-.5u# fi,
+ cap_serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric left_stem,right_stem,outer_jut,alpha,beta;
+right_stem=cap_curve-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+.5u; y4=0;
+y1=.1x_height;
+x2-x1=x4-x3+2.5u; x3r=x2r+apex_corr; y2=y3=cap_height+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*left_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<cap_height-cap_notch_cut: y0:=cap_height-cap_notch_cut;
+ fill z0+.5right{z4l-z3l}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0{z4r-z3r}..diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+beta=angle(z1-z2);
+penpos5(cap_stem,beta); z5=whatever[z1,z2];
+penpos6(cap_band,angle(z4-z3)); z6=whatever[z3,z4];
+y5=.4[y1,y0]; y6=.4[y4,y0];
+penpos7(cap_stem,beta); x7r=.5(w-u); bot y7r=-oo;
+filldraw stroke z5e{z7r-z5l} ... z7e .. {z6l-z7r}z6e;
+penlabels(0,1,2,3,4,5,6,7); enddef;
+
+guta_mowr ("Ailm", 14u#, 2);
+
+def gen_letter =
+italcorr .7cap_height#*slant+.5curve#-u#;
+adjust_fit(cap_serif_fit#,0); pickup tiny.nib;
+pos1(cap_stem,0); pos2(cap_stem,0); x1=x2;
+lft x1l=hround 2.5u-.5cap_stem;
+top y1=h; y2=bar_height; y4=.5cap_height;
+filldraw stroke z1e--z2e; % stem
+if serifs: trasnawn(1,a,cap_jut); fi % serif
+pickup fine.nib; pos2'(cap_stem,-180); pos3(vair,-90);
+pos4(cap_curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5-.5u=.5[x2,x4]; rt x4r=hround min(w-1.35u+.5curve,w-.6u);
+bot y3r=-oo; top y5r=cap_height+oo;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+penlabels(0,1,2,3,4,5); enddef;
+
+cmchar "Beith";
+beginchar("B",12.5u#,cap_asc_height#,0); gen_letter; endchar;
+
+cmchar "Beith-h";
+beginchar(Beith_h,12.5u#,cap_asc_height#,0);
+gen_letter; aspirate(5); endchar;
+
+def gen_letter =
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos3(cap_curve,180); y3=.5cap_height;
+if serifs:
+ pos1(1.2flare,40); pos2(vair',90);
+ pos4(vair',270); pos5(hair,-40);
+ x2=x4=.5(w+u); top y2r=vround(cap_height+1.5oo); bot y4r=-oo;
+ rt x1r=hround(w-.6u); top y1r=vround .7[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ lft x3r=hround u;
+ rt x5r=hround(w-.5u);
+ y5=max(good.y .95(cap_height-y1),y4l+eps);
+ (x,y4l)=whatever[z4r,z5l];
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & term.e(4,5,right,.8,4);
+else:
+ pos1(1.2flare,80); pos2(slab,90);
+ pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95cap_height+o; top y2r=cap_height+o; bot y4r=-o;
+ bot y5r=vround .08cap_height-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+penlabels(1,2,3,4,5); enddef;
+
+consan_mowr ("Coll", 11.5u#, 0, 4);
+
+def gen_letter =
+italcorr cap_height#*slant+.5cap_stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(cap_curve,0); pos3(vair,-90); pos4(cap_curve,-180);
+x1=x3=.5[x2,x4]; w-rt x2r=hround if monospace: 1.5u else: u fi;
+lft x4r=hround 2.5u;
+y1r=cap_height+o; y2=y4=.5[y1,y3]; y3r=-o;
+filldraw circ_stroke pulled_arc.e(1,4) & pulled_arc.e(4,3)
+ & pulled_arc.e(3,2) & pulled_arc.e(2,1); % bowl
+if serifs: pos8(hair,210); lft x8r=hround u; y8=cap_height+apex_o;
+ path arc; arc=z1l{left}..{z8-z2}z8r;
+ pos9(slab,-60); lft x9l=.5u; y9r=.8cap_height;
+ filldraw z8r{down}..z9l--z9r{z1-z9}..subpath(.4,0) of arc
+ --z1r{left}..{z8-z2}z8l--cycle; % lower barb
+else: pos6(cap_vstem,80); x6=.5u; top y6r=top y1r+oo;
+ filldraw stroke z6e{z2l-z6r} .. {right}z1e; fi % ear
+penlabels(1,2,3,4,6,8,9); enddef;
+
+consan_mowr ("Dair", 14u#, 0, 1);
+
+def gen_letter =
+italcorr .5[x_height#,cap_height#]*slant+.5min(cap_curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=cap_curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup fine.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=vround .52cap_height;
+top y2r=cap_height+vround 1.5oo; y0l=bot y1l;
+lft x3r=hround hround u;
+rt x1r=hround min(w-1.5u,w-2u+.5right_curve); x2=.5[x3l,x1l];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo;
+if serifs: pos4(vair',270); pos5(hair,360); x4=x2;
+ y5=max(good.y(.26cap_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(slab,270); x4=.5w+.5u;
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pos5(flare,275); rt x5r=hround(w-1.6u);
+ bot y5r=vround .08cap_height-o;
+ filldraw stroke term.e(4,5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+cap_bar; y1'l=y0l; x1'l=x1'r=w-.5u;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,1',2,3,4,5); enddef;
+
+guta_mowr ("Eabhadh", 12u#, 2);
+
+def gen_letter =
+italcorr cap_height#*slant if not serifs:+.25u# fi;
+adjust_fit(cap_serif_fit#,0);
+numeric arm_thickness; arm_thickness=hround .9[vair,.85cap_stem];
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+numeric shaved_stem; shaved_stem=hround(cap_stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(1.2flare,40);
+lft x1l=hround(2.5u-.5cap_stem); x1l=x1'l=x2l=x2'l; rt x3r=hround(w-1.1u);
+top y1=cap_height+min(oo,serif_drop); bot y2=-d; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+top y3r=vround .3[x_height,cap_height];
+penpos2''(x2r-x2l,0); x2''=x2; y2''=x_height;
+filldraw stroke z2''e--z2e; % thicken the lower left stem
+penpos.a0(min(rt x2r-lft x2l,thin_join)-fine,180); pickup fine.nib;
+rt x.a0l=tiny.rt x2r; y.a0=y2'';
+pos.a1(vair,90); pos3'(1.2flare+tiny,40); z3'=z3;
+x.a1=.5[rt x.a0l,rt x3'r]; top y.a1r=cap_height+oo;
+(x.a,y.a1l)=whatever[z.a1r,z.a0l]; x.a1l:=x.a;
+filldraw stroke z.a0e{x.a1-x.a0,1.5(y.a1-y.a0)}...{right}z.a1e
+ &{{interim superness:=hein_super; super_arc.e(a1,3')}}; % arch
+if serifs: trasnawn(1',b,cap_jut); fi % upper left serif
+pickup crisp.nib; pos13(arm_thickness,90); pos14(arm_thickness,90);
+bot y13l=bot y14l=.25x_height; lft x13=x1;
+rt x14=x3l; filldraw stroke z13e--z14e; % bar
+labels(a0); penlabels(a1,1,2,3,4,13,14); enddef;
+
+consan_mowr ("Fearn", 13u#+.5width_adj#, desc_depth#, a1);
+
+def gen_letter =
+italcorr cap_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric arm_thickness; arm_thickness=hround .9[vair,.85cap_stem];
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup crisp.nib; pos17(arm_thickness,90); pos18(arm_thickness,90);
+top y17r=top y18r=cap_height; rt x17=hround(w-.8u); lft x18r=hround .9u;
+filldraw stroke z17e--z18e;
+numeric theta; theta=90-angle(50u,cap_height);
+slope:=-cap_height/50u; % angle at middle
+pickup fine.nib;
+pos0(ess',theta); pos7(s_slab,-90);
+2x0=w; x7-.5w=if serifs: u else: 0 fi; bot y7r=-d-o;
+pos2(max(fine.breadth,s_slab-vround vair_corr),-90); z2=(x17-u,y17);
+y0=.5[y7l,y12r];
+lft x3l=hround 2.5u; rt x6r=hround(w-1.4u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+pos12(s_slab,-90); z12=.5[z17l,z18l];
+ellipse_set(12l,3l,4l,0l); ellipse_set(12r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs:
+ pos9(slab,-70); lft x9l=hround 1.25u; bot y9r=good.y-5/6d;
+ pos8(hair,180); x8=x9+1.5u; y8=apex_o;
+ path arc; arc=z7r{left}....{up}z8r;
+ filldraw z8r{down}..z9l--z9r...subpath(.3,0) of arc
+ --z7l{left}....{up}z8l--cycle; % barb
+else: pos8(1.2flare,-100);
+ lft x8r=hround 1.25u; bot y8r=good.y-5/6d;
+ filldraw stroke term.e(7,8,left,1,4); fi % arc and terminal
+penlabels(0,2,3,4,5,6,7,8,9,10,12,17,18); enddef;
+
+consan_mowr ("Gort", 13u#, desc_depth#, 12);
+
+cmchar "Uath";
+beginchar("H",13u#+.5width_adj#,cap_asc_height#,0);
+italcorr .5[x_height#,cap_height#]*slant-cap_serif_fit#+.5cap_stem#-2u#;
+adjust_fit(cap_serif_fit#,
+ cap_serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+numeric shaved_stem; shaved_stem=hround(cap_stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(cap_stem,0);
+lft x1l=hround(2.5u-.5cap_stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+cap_h_stroke(2,a,3,4); % arch and right stem
+if serifs: trasnawn(1',b,cap_jut); fi % upper left serif
+penlabels(1,2,3,4); endchar;
+
+def gen_letter =
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,
+ cap_serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=cap_height; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: trasnawn(1,a,cap_jut); fi % upper serif
+penlabels(1,2); enddef;
+
+guta_mowr ("Iodha", max(6u#,4u#+cap_stem#), 1);
+
+cmchar "Luis";
+beginchar("L",10u#,cap_asc_height#,0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(cap_serif_fit#,if serifs: 0 else: -.5u# fi);
+pickup tiny.nib; pos1(cap_stem,180); pos2(cap_stem,180);
+lft x1r=lft x2r=hround max(2u,3u-.5cap_stem);
+top y1=h; y2=max(.5bar_height,2vair);
+filldraw stroke z1e--z2e;
+pickup fine.nib; interim superness:=more_super;
+pos3(cap_stem,180); z3=z2;
+pos4(vair',-90); bot y4r=-o; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke super_arc.e(3,4)...{up}z5e; % stem and hook
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z3e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+if serifs:
+ z1l=z1'r; z1r=z1'l; trasnawn(1',a,jut); fi % upper serif
+penlabels(1,2,3,4,5); endchar;
+
+def gen_letter =
+italcorr .5[x_height#,cap_height]*slant-cap_serif_fit#+.5cap_stem#-2u#;
+adjust_fit(cap_serif_fit#,
+ cap_serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric mfudged_stem; mfudged_stem=hround(cap_stem-stem_corr);
+numeric shaved_stem; shaved_stem=hround(cap_stem-stem_corr);
+pickup tiny.nib; pos1(mfudged_stem,0); pos2(mfudged_stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged_stem,0); pos5(mfudged_stem,0);
+lft x1l=hround(2.5u-.5cap_stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5cap_stem); x5-x3=x3-x1;
+%if not monospace: r:=hround(x5+x1)+l; fi % change width for better fit
+top y1=cap_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+cap_h_stroke(2,a,3,4); % left arch and middle stem
+cap_h_stroke(4,b,5,6); % right arch and right stem
+if serifs: trasnawn(1',c,cap_jut); fi % upper left serif
+penlabels(1,2,3,4,5,6); enddef;
+
+consan_mowr ("Muin", 17u#, 0, 3);
+
+cmchar "Nuin";
+beginchar("N",13u#+.5width_adj#,cap_height#,0);
+italcorr .5[x_height#,cap_height#]*slant-cap_serif_fit#+.5cap_stem#-2u#;
+adjust_fit(cap_serif_fit#,
+ cap_serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+numeric shaved_stem; shaved_stem=hround(cap_stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(cap_stem,0);
+lft x1l=hround(2.5u-.5cap_stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+cap_h_stroke(2,a,3,4); % arch and right stem
+if serifs: trasnawn(1',b,cap_jut); fi % upper left serif
+penlabels(1,2,3,4); endchar;
+
+def gen_letter =
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=cap_height+o; y3r=-o;
+y2=y4=.5cap_height-vair_corr; y2l:=y4l:=.52cap_height;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+penlabels(1,2,3,4); enddef;
+
+guta_mowr ("Oir", 13u#-width_adj#, 1);
+
+def gen_letter =
+italcorr .5cap_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem,0);
+pos0'(cap_stem',0); pos0(cap_stem,0); z0l=z0'l; x0'=x1;
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=cap_height; bot y2=-d;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(cap_curve,0); pos6(vair,-90);
+rt x3l=hround max(2u,3u-.5cap_stem')+cap_stem';
+y0=y3=.58cap_height;
+x4l=w-.5(w-serif_fit)+.5u; top y4r=cap_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5[y4l,y6l];
+x6l=x4l+u; bot y6=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}; % bowl
+if serifs:
+ pos9(slab,-70); lft x9l=rt x3l+.8u; y9r=.05cap_height;
+ pos8(hair,180); x8=x9+1.5u; top y8=vround .3cap_height-1;
+ path arc; arc=z6r{left}....{up}z8r;
+ filldraw z8r{down}..z9l--z9r...subpath(.3,0) of arc
+ --z6l{left}....{up}z8l--cycle; % barb
+else: pos8(1.2flare,-100);
+ lft x8r=rt x3l+hround .8u; bot y8r=vround .1cap_height-o;
+ filldraw stroke term.e(6,8,left,1,4); fi % arc and terminal
+pickup tiny.nib;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+if serifs: trasnawn(1,a,cap_jut); fi % upper serif
+penlabels(0,1,2,3,4,5,6,8,9); enddef;
+
+consan_mowr ("Peith_Bhog", 12.5u#+.5max(2u#,cap_curve#), desc_depth#, 4);
+
+cmchar "Ruis";
+beginchar("R",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=.7cap_height;
+pos4(vair',90); pos5(cap_curve if hefty:-3stem_corr fi,0);
+pos6(vair,-90);
+top y4r=cap_height+oo;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+y5=.4[y4l,y6l];
+x6=x3+2.5u; y6=vround(.5h-.5vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)&pulled_arc.e(5,6);
+pickup tiny.nib; filldraw stroke z1e--z2e; % stem
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r-.1u=hround(x5-.5cap_curve);
+ y8=1/3[y2,y6]; y0=3/5[y2,y6]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w+.2u); y10=1/10[y2,y6];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ trasnawn(1,a,cap_jut); % upper serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8l=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+penlabels(0,1,2,3,4,5,6,8,9,10); endchar;
+
+def gen_letter =
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,cap_height);
+slope:=-cap_height/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(s_slab,theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=cap_height+o; bot y7r=-o;
+y0=.52cap_height; lft x3l=hround u; rt x6r=hround(w-u);
+pos3(cap_curve,slope); pos6(cap_curve,slope);
+ellipse_set(2l,3l,4l,0l); saillipse_set(2r,3r,4r,0r);
+ellipse_set(7l,6l,5l,0l); saillipse_set(7r,6r,5r,0r);
+filldraw stroke super_arc.e(2,3) & z3e{down}..z4e---z5e..z6e{down};
+filldraw stroke super_arc.e(7,6); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-2u); lft x8r=hround 2u;
+ bot y1=vround .7cap_height+1; top y8=vround .3cap_height-1;
+ path upper_arc, lower_arc;
+ upper_arc=z1l{x2l-x1l,10(y2l-y1l)}....{left}z2l;
+ lower_arc=z7r{left}....{up}z8r;
+ pos10(slab,-70); pos9(slab,-70);
+ x10r=x6r; y10l=.95cap_height; x9l=x3l; y9r=.05cap_height;
+ filldraw z1l{up}..z10r--z10l..subpath(.6,1) of upper_arc
+ --z2r{right}....{x1-x2,10(y1-y2)}z1r--cycle; % upper barb
+ filldraw z8r{down}..z9l--z9r..subpath(.4,0) of lower_arc
+ --z7l{left}....{up}z8l--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93cap_height+o; bot y8r=vround .1cap_height-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); enddef;
+
+consan_mowr ("Sail", 11u#, 0, 2);
+
+def gen_letter =
+italcorr .8cap_height#*slant-.4u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; arm_thickness=hround .9[vair,.85cap_stem];
+hair_vair=min(.25[vair,hair],arm_thickness);
+pickup crisp.nib; pos7(arm_thickness,90); pos8(arm_thickness,90);
+top y7r=top y8r=cap_height; rt x7=hround(w-.8u); lft x8r=hround .9u;
+filldraw stroke z7e--z8e;
+pickup fine.nib; pos2(min(vair',arm_thickness),90);
+x2=x4=.5(w+u); bot y2l=crisp.bot y7l; bot y4r=-oo;
+pos3(cap_curve,180);
+if serifs: pos4(vair',270); pos5(hair,-40);
+y5=max(good.y(.3x_height-.9),y4l+vair');
+else: pos4(slab,270); pos5(flare,275);
+bot y5r=vround .08cap_height-o; fi
+lft x3r=w-rt x5r=hround 1.9u; y3=.5[y2l,y4l];
+(x,y4l)=whatever[z4r,z5l];
+filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & term.e(4,5,right,.8,4);
+penlabels(2,3,4,5,7,8); enddef;
+
+consan_mowr ("Teine", 13.5u#, 0, 4);
+
+def gen_letter =
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,
+ cap_serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem',0);
+lft x1l=hround(2.5u-.5cap_stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=cap_height+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=cap_height; bot y4=0; fi
+pos0(cap_stem,0); pos0'(cap_stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(cap_stem-fine,-180); z2'=z2; y3=y1; y2=.5x_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: trasnawn(1,a,cap_jut); % upper left serif
+ pickup tiny.nib; trasnawn(3,b,cap_jut); fi % upper right serif
+penlabels(1,2,3,4,5); labels(6); enddef;
+
+guta_mowr ("Uwr", 13u#+.5width_adj#, 5);
diff --git a/Master/texmf-dist/fonts/source/public/eiad/gaec7cb.mf b/Master/texmf-dist/fonts/source/public/eiad/gaec7cb.mf
new file mode 100644
index 00000000000..97b8d3ca509
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/gaec7cb.mf
@@ -0,0 +1,83 @@
+% gaem7mb.mf
+% Irish Caps and Small Caps: Driver File
+
+spanish_shriek=oct"016"; spanish_query=oct"017";
+cap_asc_height#:=1.15cap_height#;
+cap_height#:=max(.85cap_height#,45/38x_height#);
+old_asc_height#:=asc_height#;
+asc_height#:=max(.85asc_height#,44/38x_height#);
+lower.cap_asc_height#:=cap_asc_height#*lower.cap_height#/x_height#;
+serif_drop#:=max(0,6serif_drop#);
+
+mode_setup; font_setup;
+define_whole_vertical_pixels(cap_asc_height,old_asc_height);
+
+guta_offset := 0;
+input eira; % diacritics and macros
+input eiru; % upper case (majuscules)
+input romand; % numerals
+input italp; % ampersand, question marks, currency sign
+input punct; % punctuation symbols common to roman and italic text
+{{interim ligs:=0; input accent;}}; % accents common to roman and italic text
+if ligs>0:
+ underbar = ASCII "_"; input comlig; fi % ligatures common with italic text
+input romsub; % substitutes for ligatures
+
+%%% fine lower
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_asc_height, cap_height, x_height, bar_height,
+ comma_depth, flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+font_setup; % now try again with |lower| settings
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+code_offset:=ASCII"a" - ASCII"A"; guta_offset:=8;
+input eiru; % majuscules (in lowercase positions)
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+% k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+fi
+
+ligtable "7": "`" =: agus_lig;
+ligtable "a": "/" =: ailm_fada;
+ligtable "b": "h" =: beith_h;
+ligtable "c": "h" =: coll_h;
+ligtable "d": "h" =: dair_h;
+ligtable "e": "/" =: eabhadh_fada;
+ligtable "f": "h" =: fearn_h;
+ligtable "g": "h" =: gort_h;
+ligtable "i": "/" =: iodha_fada;
+ligtable "m": "h" =: muin_h;
+ligtable "o": "/" =: oir_fada;
+ligtable "p": "h" =: peith_bhog_h;
+ligtable "s": "h" =: sail_h;
+ligtable "t": "h" =: teine_h;
+ligtable "u": "/" =: uwr_fada;
+
+ligtable "A": "/" =: Ailm_fada;
+ligtable "B": "h" =: Beith_h, "H" =: Beith_h;
+ligtable "C": "h" =: Coll_h, "H" =: Coll_h;
+ligtable "D": "h" =: Dair_h, "H" =: Dair_h;
+ligtable "E": "/" =: Eabhadh_fada;
+ligtable "F": "h" =: Fearn_h, "H" =: Fearn_h;
+ligtable "G": "h" =: Gort_h, "H" =: Gort_h;
+ligtable "I": "/" =: Iodha_fada;
+ligtable "M": "h" =: Muin_h, "H" =: Muin_h;
+ligtable "O": "/" =: Oir_fada;
+ligtable "S": "h" =: Sail_h, "H" =: Sail_h;
+ligtable "T": "h" =: Teine_h, "H" =: Teine_h;
+ligtable "U": "/" =: Uwr_fada;
+
+ % there are ligature/kern programs
+ % for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/eiad/gaelach.mf b/Master/texmf-dist/fonts/source/public/eiad/gaelach.mf
new file mode 100644
index 00000000000..da9a99cfb65
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eiad/gaelach.mf
@@ -0,0 +1,71 @@
+% gaelach.mf
+% Computer Modern Irish: Driver File
+
+spanish_shriek=oct"016"; spanish_query=oct"017";
+cap_asc_height#:=1.15cap_height#;
+cap_height#:=max(.85cap_height#,45/38x_height#);
+old_asc_height#:=asc_height#;
+asc_height#:=max(.85asc_height#,44/38x_height#);
+serif_drop#:=max(0,6serif_drop#);
+
+mode_setup; font_setup;
+define_whole_vertical_pixels(cap_asc_height,old_asc_height);
+
+guta_offset := 0;
+input eira; % diacritics and macros
+input eiru; % upper case (majuscules)
+input eirl; % lower case (minuscules)
+input romand; % numerals
+input italp; % ampersand, question marks, currency sign
+input punct; % punctuation symbols common to roman and italic text
+{{interim ligs:=0; input accent;}}; % accents common to roman and italic text
+if ligs>0:
+ underbar = ASCII "_"; input comlig; fi % ligatures common with italic text
+input romsub; % substitutes for ligatures
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+% k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+fi
+
+ligtable "7": "`" =: agus_lig;
+ligtable "a": "/" =: ailm_fada;
+ligtable "b": "h" =: beith_h;
+ligtable "c": "h" =: coll_h;
+ligtable "d": "h" =: dair_h;
+ligtable "e": "/" =: eabhadh_fada;
+ligtable "f": "h" =: fearn_h;
+ligtable "g": "h" =: gort_h;
+ligtable "i": "/" =: iodha_fada;
+ligtable "m": "h" =: muin_h;
+ligtable "o": "/" =: oir_fada;
+ligtable "p": "h" =: peith_bhog_h;
+ligtable "s": "h" =: sail_h;
+ligtable "t": "h" =: teine_h;
+ligtable "u": "/" =: uwr_fada;
+
+ligtable "A": "/" =: Ailm_fada;
+ligtable "B": "h" =: Beith_h, "H" =: Beith_h;
+ligtable "C": "h" =: Coll_h, "H" =: Coll_h;
+ligtable "D": "h" =: Dair_h, "H" =: Dair_h;
+ligtable "E": "/" =: Eabhadh_fada;
+ligtable "F": "h" =: Fearn_h, "H" =: Fearn_h;
+ligtable "G": "h" =: Gort_h, "H" =: Gort_h;
+ligtable "I": "/" =: Iodha_fada;
+ligtable "M": "h" =: Muin_h, "H" =: Muin_h;
+ligtable "O": "/" =: Oir_fada;
+ligtable "S": "h" =: Sail_h, "H" =: Sail_h;
+ligtable "T": "h" =: Teine_h, "H" =: Teine_h;
+ligtable "U": "/" =: Uwr_fada;
+
+ % there are ligature/kern programs
+ % for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/elvish/elvish-cirth.mf b/Master/texmf-dist/fonts/source/public/elvish/elvish-cirth.mf
new file mode 100644
index 00000000000..790da12fe0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/elvish/elvish-cirth.mf
@@ -0,0 +1,779 @@
+designsize:=10pt# ;
+autorounding := 1 ;
+mode_setup;
+em#:=10pt#; ; desc#:=10/3pt#; ex#:=8pt#; o#:=1/8pt#;
+% parameters
+
+font_normal_space(0.4em#) ; font_x_height(ex#) ;
+font_quad(em#) ; font_normal_stretch(0.2em#) ;
+font_normal_shrink(0.1em#) ;
+
+penangle := 30 ;
+penwidth# := 1/12em# ; penthickness# := 1/50em# ;
+define_pixels(em,desc,ex);
+define_blacker_pixels(penwidth,penthickness) ;
+tehta_penwidth# = 0.8penwidth# ;
+define_blacker_pixels(tehta_penwidth) ;
+define_corrected_pixels(o);
+straight_sidebar# = 1/12em#; curve_sidebar# = 1/18em#;
+define_whole_pixels(straight_sidebar,curve_sidebar) ;
+
+fudge := 0.05 ex ; % fudge for lowering calma luva
+u# := em#/18 ;
+define_pixels(u) ;
+tailjut# := 12u# - 10u# ;
+define_whole_pixels(tailjut) ;
+luva_width# = 0.5em# ; define_pixels(luva_width) ;
+pickup pencircle xscaled penwidth yscaled penthickness rotated penangle;
+main_nib := savepen ;
+pickup pencircle xscaled tehta_penwidth yscaled penthickness rotated penangle;
+tehta_nib := savepen ;
+
+
+
+def draw_stem(suffix i,j)(expr serifs) = % serifs = t,b,tb for Top & Bottom
+ z.i.$ = z.i + 0.05em * dir(penangle+180) ;
+ z.i.$$ = z.i + 0.1em * down ;
+ z.j.$ = z.j + 0.05em * dir(penangle) ;
+ z.j.$$ = z.j + 0.1em * up ;
+ draw z.i .. z.j ;
+ if (serifs = "t") or (serifs = "tb"):
+ filldraw z.i -- z.i.${dir(penangle-90)}
+ .. {down}z.i.$$ & z.i.$$ .. z.i & cycle ; fi
+ if (serifs = "b") or (serifs = "tb"):
+ filldraw z.j -- z.j.${dir(penangle+90)}
+ .. {up}z.j.$$ & z.j.$$ .. z.j & cycle ; fi
+ labels(i,j)
+ enddef ;
+
+def diag(suffix i,j) = % diag from i to j with serif at j
+ draw z.i -- z.j ;
+ theta :=
+ if x.j > x.i:
+ if y.j > y.i: penangle - 90 else: penangle fi
+ else:
+ if y.j > y.i: -penangle else: penangle + 90 fi fi ;
+ draw z.j -- (z.j + 0.05em*dir theta) ;
+enddef ;
+
+beginchar("p",10u#,ex#,0) ; "The rune p" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ bot z4 = 0.4[z2,z1] ;
+ rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+endchar ;
+
+beginchar("b",12u#,ex#,0) ; "The rune b" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ bot z4 = 0.4[z2,z1] ;
+ rt x3 = w - curve_sidebar - tailjut ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ y5 = y2 ; rt x5 = w - curve_sidebar ;
+ bot y4' = round y4 ; x4 = x4' ;
+ diag(4',5) ;
+endchar ;
+
+beginchar("f",10u#,ex#,0) ; "The rune f" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ bot z4 = 0.4[z2,z1] ;
+ lft x3 = curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+endchar ;
+
+beginchar("v",12u#,ex#,0) ; "The rune v" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ bot z4 = 0.45[z2,z1] ;
+ lft x3 = curve_sidebar+tailjut ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ y5 = y2 ; lft x5 = curve_sidebar ;
+ diag(4,5) ;
+endchar ;
+
+beginchar("W",19u#,ex#,0) ; "The rune hw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x 0.5w ;
+ draw_stem(1,2,"b") ;
+ bot z4 = 0.4[z2,z1] ;
+ rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ lft x5 = curve_sidebar ; y5 = y3 ;
+ draw z1 -- z5 -- z4 ;
+endchar ;
+
+beginchar("m",10u#,ex#,0) ; "The rune m" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ top z4 = 0.55[z2,z1] ;
+ rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ y5 = 1/2[y4,y2] ;
+ rt x5 = w - 1/2curve_sidebar ;
+ draw z4 -- z5 -- z2 ;
+endchar ;
+
+beginchar("M",10u#,ex#,0); "The rune mb" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w- straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ top z4 = 0.55[z2,z1] ;
+ lft x3 = curve_sidebar ; y3 = 1/2[y4,y1] ;
+ draw z1 -- z3 -- z4 ;
+ y5 = 1/2[y4,y2] ;
+ lft x5 = 1/2curve_sidebar ;
+ draw z4 -- z5 -- z2 ;
+endchar ;
+
+beginchar("t",10u#,ex#,0) ; "The rune t" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x3 = w - curve_sidebar ; y3 = .7[y2,y1] ;
+ diag(1,3) ;
+endchar ;
+
+beginchar("d",10u#,ex#,0) ; "The rune d" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x3 = w - curve_sidebar ; y3 = .7[y2,y1] ;
+ diag(1,3) ;
+ x4 = x1 ; x5 = x3 ; bot y4 = round (.5[y1,y2]) ; y4 - y1 = y5 - y3 ;
+ diag(4,5) ;
+endchar ;
+
+beginchar("T",10u#,ex#,0) ; "The rune th" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ lft x3 = curve_sidebar ; y3 = .7[y2,y1] ;
+ diag(1,3) ;
+endchar ;
+
+beginchar("D",10u#,ex#,0) ; "The rune dh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ lft x3 = curve_sidebar ; y3 = .7[y2,y1] ;
+ diag(1,3) ;
+ x4 = x1 ; x5 = x3 ; bot y4 = round(.5[y1,y2]) ; y4 - y1 = y5 - y3 ;
+ diag(4,5) ;
+endchar ;
+
+beginchar("n",17u#,ex#,0) ; "The rune n" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ draw_stem(1,2,"b") ;
+ lft x3 = curve_sidebar = w - rt x4 ; y3 = y4 = .7[y2,y1] ;
+ diag(1,3) ; diag(1,4) ;
+endchar ;
+
+beginchar("c",12u#,ex#,0) ; "The rune ch" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ bot y3 = .45[y1,y2] ; x3 = x1 ;
+ rt x4 = w - curve_sidebar ; y4 = y2 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+endchar ;
+
+beginchar("j",13u#,ex#,0) ; "The rune j" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ bot y3 = .4[y1,y2] ; x3 = x1 ;
+ rt x4 = w - curve_sidebar ; y4 = y2 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+ y5 = .5[y2,y3] ; x5 = x1 ; y6 = y4 ; z6 - z5 = whatever*(z4 - z3) ;
+ diag(5,6) ;
+endchar ;
+
+beginchar("C",11u#,ex#,0) ; "The rune sh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ bot y3 = .45[y1,y2] ; x3 = x1 ;
+ lft x4 = curve_sidebar ; y4 = y2 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+endchar ;
+
+beginchar("J",12u#,ex#,0) ; "The rune zh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ bot y3 = .4[y1,y2] ; x3 = x1 ;
+ lft x4 = curve_sidebar ; y4 = y2 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+ y5 = .5[y2,y3] ; x5 = x1 ; y6 = y4 ; z6 - z5 = whatever*(z4 - z3) ;
+ diag(5,6) ;
+endchar ;
+
+beginchar("Y",18u#,ex#,0) ; "The rune nj" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ bot y3 = .45[y1,y2] ; x3 = x1 ;
+ y4 = y5 = y2 ; x4 = curve_sidebar = w - x5 ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ; diag(3,5) ;
+endchar ;
+
+beginchar("k",11u#,ex#,0) ; "The rune k" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 35} .. tension 1 .. {dir 80}z4 -- z4 + 0.03em*left ;
+endchar ;
+
+beginchar("g",12u#,ex#,0) ; "The rune g" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ top y3 = .6[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 35} .. tension 1 .. {dir 80}z4 -- z4 + 0.03em*left ;
+ z5 = .55[z1,z3] ; z6 = .5[z1,z4] ;
+ draw z5{dir 40} .. tension 2 .. z6 -- z6 + 0.03em*left ;
+endchar ;
+
+beginchar("K",11u#,ex#,0) ; "The rune kh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 135} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ;
+endchar ;
+
+beginchar("G",12u#,ex#,0) ; "The rune gh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ top y3 = .6[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 145} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ;
+ z5 = .55[z1,z3] ; z6 = .5[z1,z4] ;
+ draw z5{dir 145} .. tension 1 .. {dir 100}z6 -- z6 + 0.03em*left ;
+endchar ;
+
+beginchar("N",16u#,ex#,0) ; "The rune ng" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 145} .. tension 1 .. {dir 100}z4 -- z4 + 0.03em*left ;
+ y5 = y4 ; x5 = w - x4 ;
+ draw z3{dir 35} .. tension 1 .. {dir 80}z5 -- z5 + 0.03em*left ;
+endchar ;
+
+beginchar(43,13u#,ex#,0) ; "The rune kw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+endchar ;
+
+beginchar(39,13u#,ex#,0) ; "The rune gw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ;
+ draw z5 -- z6 ; diag(6,7) ;
+endchar ;
+
+beginchar(11,13u#,ex#,0) ; "The rune khw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+endchar ;
+
+beginchar(7,13u#,ex#,0) ; "The rune ghw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"b") ;
+ lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ;
+ draw z5 -- z6 ; diag(6,7) ;
+endchar ;
+
+beginchar(14,22u#,ex#,0) ; "The rune ngw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ draw_stem(1,2,"b") ;
+ lft x4 = curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x6 = w - x4 ; y6 = y4 ; y5 = y3 ; x5 = w - x3 ;
+ draw z1 -- z5 ; diag(5,6) ;
+endchar ;
+
+beginchar(46,13u#,ex#,0) ; "The rune nw" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"") ;
+ rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x6 = x4 ; y6 = h - y4 ; y5 = h - y3 ; rt x5 = round x3 ;
+ draw z2 -- z5 ; diag(5,6) ;
+endchar ;
+
+beginchar("r",10u#,ex#,0) ; "The rune r" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ y3 = .5[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 45} .. tension 2 .. {dir 80}z4 -- z4 + 0.03em*left ;
+ y5 = y2 ; x5 = x4 ;
+ draw z3{dir -20} .. z5{dir -80} ;
+endchar ;
+
+beginchar("R",10u#,ex#,0) ; "The rune rh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ y3 = .5[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir 135} .. tension 2 .. {dir 100}z4 -- z4 + 0.03em*left ;
+ y5 = y2 ; x5 = x4 ;
+ draw z3{dir 200} .. z5{dir -100} ;
+endchar ;
+
+beginchar("l",12u#,ex#,0) ; "The rune l" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = round .85h ; rt x3 = w - curve_sidebar ;
+ x4 = w - x3 ; y4 = h - y3 ;
+ draw_stem(1,2,"tb") ;
+ draw z3{dir -100} .. {dir -100}z4 .. z4 + 0.03em*dir -70 ;
+endchar ;
+
+beginchar("L",12u#,ex#,0) ; "The rune lh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = round .85h ; lft x3 = curve_sidebar ;
+ x4 = w - x3 ; y4 = h - y3 ;
+ draw_stem(1,2,"tb") ;
+ draw z3 + 0.03em*dir70 .. z3{dir -80} .. {dir -100}z4 .. z4 + 0.03em*dir -110 ;
+endchar ;
+
+beginchar(1,12u#,ex#,0) ; "The rune ng--nd" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = round .85h ; lft x3 = curve_sidebar ;
+ x4 = w - x3 ; y4 = h - y3 ;
+ draw_stem(1,2,"tb") ;
+ draw z3 + 0.03em*dir70 .. z3{dir -80} .. {dir -100}z4 .. z4 + 0.03em*dir -110 ;
+ top y5 = round .85h ; rt x5 = w - curve_sidebar ;
+ x6 = w - x5 ; y6 = h - y5 ;
+ draw z5{dir -100} .. {dir -100}z6 .. z6 + 0.03em*dir -70 ;
+endchar ;
+
+beginchar("s",10u#,ex#,0) ; "The rune s" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = curve_sidebar = w - rt x2 ;
+ top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ;
+ diag(2,1) ; diag(2,3) ;
+endchar ;
+
+beginchar("S",10u#,ex#,0) ; "The rune s---variant" ;
+ pickup main_nib ;
+ rt x1 = rt x3 = w - curve_sidebar = w - lft x2 ;
+ top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ;
+ diag(2,1) ; diag(2,3) ;
+endchar ;
+
+beginchar("z",14u#,ex#,0) ; "The rune z" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x2 = w - rt x4 = lft x3 ;
+ top y1 = top y2 = h = h - bot y3 = h - bot y4 ;
+ z5 = .5[z1,z4] ;
+ diag(5,1) ; diag(5,2) ; diag(5,3) ; diag(5,4) ;
+endchar ;
+
+beginchar(2,14u#,ex#,0) ; "The rune ng---variant" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x2 = w - rt x4 = lft x3 ;
+ top y1 = top y2 = h = h - bot y3 = h - bot y4 ;
+ z5 = .5[z1,z4] ;
+ diag(5,1) ; diag(5,2) ; diag(5,3) ; diag(5,4) ;
+ x1' = x4' = x5 ; y2' = y3' = y5 ;
+ top y1' = round .85h = h - bot y4' ;
+ z2' - z1' = z4' - z3' = whatever*(z4 - z1) ;
+ draw z1' -- z2' -- z4' -- z3' -- cycle ;
+endchar ;
+
+beginchar(3,15u#,ex#,0) ; "The rune nd" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ;
+ top y1 = top y2 = h - bot y3 = h - bot y4 = h ;
+ draw z1 -- z4 -- z2 -- z3 -- cycle ;
+endchar ;
+
+beginchar(4,14u#,ex#,0) ; "The rune nd---variant" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ;
+ top y1 = top y2 = h - bot y3 = h - bot y4 = h ;
+ draw_stem(1,3,"b") ; draw_stem(2,4,"b") ;
+ x5 = x1 ; x6 = x2 ; y5 = y6 = .45[y1,y3] ;
+ draw z1 -- z6 ; draw z2 -- z5 ;
+endchar ;
+
+beginchar("i",4u#,ex#,0) ; "The rune i" ;
+ pickup main_nib ;
+ x1 = x2 = good.x .5w ;
+ top y1 = h ; bot y2 = 0 ;
+ draw_stem(1,2,"tb") ;
+endchar ;
+
+beginchar("y", 9u#,ex#,0) ; "The rune y" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; bot y4 = 0 ;
+ y2 = good.y .25h ; y3 = good.y .75h ;
+ draw_stem(1,2,"t") ; draw_stem(3,4,"b") ; draw z2 -- z3 ;
+endchar ;
+
+beginchar("H", 9u#,ex#,0) ; "The rune y" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ bot y1 = 0 ; top y4 = h ;
+ y2 = good.y .75h ; y3 = good.y .25h ;
+ draw_stem(2,1,"b") ; draw_stem(4,3,"t") ; draw z2 -- z3 ;
+endchar ;
+
+beginchar("u",14u#,ex#,0) ; "The rune u" ;
+ pickup main_nib ;
+ lft x4 = curve_sidebar = w - rt x2 ;
+ x3 = good.x .5w ;
+ x1 = good.x .3[x4,x3] = w - x5 ;
+ top y3 = h ;
+ bot y1 = bot y5 = 0 ;
+ y2 = y4 = good.y .6h ;
+ diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ;
+endchar ;
+
+beginchar("U",10u#,ex#,0) ; "The rune long u" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = curve_sidebar = w - rt x2 ;
+ top y1 = h = h - bot y3 ; y2 = .5[y1,y3] ;
+ diag(2,1) ; diag(2,3) ;
+ x5 = x1 ; y5 = y2 ; x4 = x6 = x2 ; y4 = y1 ; y6 = y3 ;
+ diag(5,4) ; diag(5,6) ;
+endchar ;
+
+beginchar("w",12u#,ex#,0) ; "The rune w" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ;
+ x2 = x4 = x5 = good.x .5w ;
+ top y2 = h ; bot y5 = 0 ; y4 = good.y .35h ; y1 = y3 = .5[y2,y4] ;
+ draw_stem(4,5,"b") ; draw z1 -- z2 -- z3 -- z4 -- cycle ;
+endchar ;
+
+beginchar(21,12u#,ex#,0) ; "The rune ue" ;
+ pickup main_nib ;
+ lft x4 = curve_sidebar = w - rt x2 ;
+ x3 = good.x .5w ;
+ x1 = good.x .3[x4,x3] = w - x5 ;
+ top y3 = h ;
+ y1 = y5 = good.y .3h ;
+ y2 = y4 = good.y .6[y1,y3] ;
+ diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ;
+ z6 = (z2 -- z1) intersectionpoint (z4--z5) ;
+ x7 = x6 ; bot y7 = 0 ; draw_stem(6,7,"b") ;
+endchar ;
+
+beginchar(53,12u#,ex#,0) ; "The rune ue---variant" ;
+ pickup main_nib ;
+ lft x4 = curve_sidebar = w - rt x2 ;
+ x3 = good.x .5w ;
+ x1 = good.x .3[x4,x3] = w - x5 ;
+ top y3 = h ;
+ y1 = y5 = good.y .3h ;
+ y2 = y4 = good.y .6[y1,y3] ;
+ diag(2,1) ; diag(4,5) ; draw z2 -- z3 -- z4 ;
+ z6 = (z2 -- z1) intersectionpoint (z4--z5) ;
+ x7 = x6 ; bot y7 = 0 ; draw_stem(3,7,"b") ;
+endchar ;
+
+beginchar("e",10u#,ex#,0) ; "The rune e" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = top y3 = h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"tb") ; draw_stem(3,4,"tb") ;
+ x5 = x1 ; x6 = x3 ; .5[y5,y6] = vround .52h ;
+ top y5 = vround .67h ; draw z5 -- z6 ;
+endchar ;
+
+beginchar("E",10u#,ex#,0) ; "The rune long e" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = top y3 = h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"tb") ; draw_stem(3,4,"tb") ;
+ x5 = x7 = x1 ; x6 = x8 = x3 ; .5[y5,y8] = vround .52h ;
+ top y5 = vround .8h ;
+ top y6 = vround .67h ; y7 - y8 = y5 - y6 ;
+ draw z5 -- z6 ; draw z7 -- z8 ;
+endchar ;
+
+beginchar("a",10u#,ex#,0) ; "The rune a" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ draw z1 -- z3 ;
+endchar ;
+
+beginchar("A",10u#,ex#,0) ; "The rune long a" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ draw z1 -- z3 ;
+ x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ;
+ draw z5 -- z6 ;
+endchar ;
+
+beginchar("o",12u#,ex#,0) ; "The rune o" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ;
+ bot y1 = bot y3 = 0 ; top y2 = h ;
+ diag(2,3) ; diag(2,1) ;
+endchar ;
+
+beginchar("O",16u#,ex#,0) ; "The rune long o" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x6 ;
+ rt x3 = hround .7w = w - lft x4 ;
+ x2 = good.x .5[x1,x3] ; x5 = good.x .5[x4,x6] ;
+ top y2 = top y5 = h ;
+ bot y1 = 0 ; y1 = y3 = y4 = y6 ;
+ diag(2,1) ; diag(2,3) ; diag(5,4) ; diag(5,6) ;
+endchar ;
+
+beginchar(15,15u#,ex#,0) ; "The rune long o---variant" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x4 = w - rt x5 ;
+ x3 = good.x .5[x1,x4] ;
+ top y1 = top y4 = h ; bot y2 = bot y5 = 0 = bot y3 ;
+ draw_stem(1,2,"b") ; draw_stem(4,5,"b") ; draw z1 -- z3 -- z4 ;
+endchar ;
+
+beginchar(47,12u#,ex#,0) ; "The rune oe" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ;
+ bot y1 = bot y3 = 0 ; top y2 = h ;
+ diag(2,3) ; diag(2,1) ;
+ x4 = x2 ; y4 = y1 ; draw_stem(2,4,"b") ;
+endchar ;
+
+beginchar("0",12u#,ex#,0) ; "The rune oe---variant" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ; x2 = good.x .5w ;
+ bot y1 = bot y3 = 0 ; top y2 = h ;
+ diag(2,3) ; diag(2,1) ;
+ x4 = x2 = x5 ; top y4 = vround .4h ; y5 = y1 ; draw z4 -- z5 ;
+endchar ;
+
+beginchar(5,12u#,ex#,0) ; "The rune n---another one" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ;
+ x2 = x4 = good.x .5w ;
+ top y1 = top y3 = h ; bot y4 = 0 ; y2 = good.y .45h ;
+ draw_stem(2,4,"b") ; diag(1,2) ; diag(2,3) ;
+endchar ;
+
+beginchar("h",12u#,ex#,0) ; "The rune h" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ;
+ x2 = x4 = good.x .5w ;
+ bot y1 = bot y3 = 0 ; top y4 = h ; y2 = good.y .55h ;
+ draw_stem(4,2,"t") ; diag(1,2) ; diag(2,3) ;
+endchar ;
+
+beginchar(6,8u#,ex#,0) ; "The cup rune" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = lft x3 = straight_sidebar ; rt x4 = w - curve_sidebar ;
+ top y1 = h ; bot y2 = 0 ; .5[y3,y4] = vround .52h ; top y3 = vround .7h ;
+ draw_stem(1,2,"tb") ; diag(3,4) ;
+endchar ;
+
+beginchar(8,8u#,ex#,0) ; "The evanescent cup rune" ;
+ pickup main_nib ;
+ lft x3 = curve_sidebar ; rt x4 = w - curve_sidebar ;
+ .5[y3,y4] = vround .52h ; top y3 = vround .7h ;
+ diag(3,4) ; diag(4,3) ;
+endchar ;
+
+beginchar(9,8u#,ex#,0) ; "The schwa rune" ;
+ pickup main_nib ;
+ rt x1 = rt x2 = rt x3 = w - straight_sidebar ; lft x4 = curve_sidebar ;
+ top y1 = h ; bot y2 = 0 ; .5[y3,y4] = vround .52h ; top y3 = vround .7h ;
+ draw_stem(1,2,"tb") ; diag(3,4) ;
+endchar ;
+
+beginchar(10,8u#,ex#,0) ; "The evanescent schwa rune" ;
+ pickup main_nib ;
+ rt x3 = w - curve_sidebar ; lft x4 = curve_sidebar ;
+ .5[y3,y4] = vround .52h ; top y3 = vround .7h ;
+ diag(3,4) ; diag(4,3) ;
+endchar ;
+
+beginchar(16,10u#,ex#,0) ; "The rune ps" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ bot y4 = vround 0.2[y2,y1] ; top y5 = vround .8[y2,y1] ;
+ x4 = x1 ; x5 = x2 ;
+ rt x3 = w - curve_sidebar ; y3 = 1/2[y4,y5] ;
+ draw z5 -- z3 -- z4 ;
+endchar ;
+
+beginchar(20,10u#,ex#,0) ; "The rune ts" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; rt x1 = rt x2 = w - straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ bot y4 = vround 0.2[y2,y1] ; top y5 = vround .8[y2,y1] ;
+ x4 = x5 = x1 ;
+ lft x3 = curve_sidebar ; y3 = 1/2[y4,y5] ;
+ draw z5 -- z3 -- z4 ;
+endchar ;
+
+beginchar(12,4u#,ex#,0) ; "The aspiration rune" ;
+ pickup main_nib ;
+ x1 = x2 = good.x .5w ;
+ bot y2 = vround .3h ; top y1 = vround .75h ;
+ draw_stem(1,2,"tb") ;
+endchar ;
+
+beginchar("&",8u#,ex#,0) ; "The ampersand rune" ;
+ pickup main_nib ;
+ x1 = x2 = good.x .5w ; lft x3 = curve_sidebar = w - rt x4 ;
+ top y1 = h ; bot y2 = 0 ;
+ bot y3 = vround .7h = h - top y4 ;
+ draw_stem(1,2,"") ; diag(1,3) ; diag(2,4) ;
+endchar ;
+
+beginchar(18,11u#,ex#,0) ; "The OE rune wyn" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ draw z3 -- z4 -- z1 ;
+endchar ;
+
+beginchar(19,15u#,ex#,0) ; "The OE rune daeg---variant" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ;
+ top y1 = top y2 = h - bot y3 = h - bot y4 = h ;
+ draw z1 -- z4 -- z2 -- z3 -- cycle ; draw z1 -- z2 ; draw z3 -- z4 ;
+endchar ;
+
+beginchar(22,13u#,ex#,0) ; "The OE rune ac" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ draw_stem(1,2,"tb") ;
+ rt x4 = w - curve_sidebar ; x3 = .5[x1,x4] ; y4 = y1 ; y3 = .7[y2,y1] ;
+ draw z1 -- z3 ; diag(3,4) ;
+ x5 = x1 ; top y5 = .6[y2,y1] ; z5 - z1 = z6 - z3 = z7 - z4 ;
+ diag(5,6) ;
+endchar ;
+
+beginchar(23,14u#,ex#,0) ; "The OE rune yr" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ draw z1 -- z3 ;
+ x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ;
+ draw z5 -- z6 ;
+ z7 = .5[z5,z6] ; x7 := good.x x7 ; x8 = x7 ; y8 = y2 ; draw_stem(7,8,"b") ;
+endchar ;
+
+beginchar(24,13u#,ex#,0) ; "The OE rune calc" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar ; top y1 = h ; bot y2 = 0 ;
+ draw_stem(1,2,"tb") ;
+ .5[y3,y4] = vround .52h ; bot y3 = vround .4h ;
+ x3 = x1 ;
+ rt x5 = w - curve_sidebar ; y5 = y2 ; x4 = .5[x3,x5] ;
+ draw z3 -- z4 ; diag(4,5) ;
+endchar ;
+
+beginchar(25,12u#,ex#,0) ; "The OE rune feoh" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; lft x1 = lft x2 = straight_sidebar ;
+ top y3 = .6[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; rt x4 = w - curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+ z5 = .55[z1,z3] ; z6 = .5[z1,z4] ;
+ diag(5,6) ;
+endchar ;
+
+beginchar(26,14u#,ex#,0) ; "The Ereborian rune ai" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ top y1 = h ; top y3 = vround .75h ; bot y2 = bot y4 = 0 ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ draw z1 -- z3 ;
+ x5 = x1 ; x6 = x3 ; y5 = vround .6h ; y5 - y6 = y1 - y3 ;
+ z7 = .5[z5,z6] ; x7 := good.x x7 ; x8 = x7 ; y8 = y2 ; draw_stem(7,8,"tb") ;
+endchar ;
+
+beginchar(27,14u#,ex#,0) ; "The Ereborian ea rune" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar = w - rt x3 = w - rt x4 ;
+ bot y2 = bot y4 = 0 ; y1 = y3 = good.y .5h ;
+ draw_stem(1,2,"b") ; draw_stem(3,4,"b") ;
+ x5 = good.x .5w ; top y5 = h ; x6 = x5 ; y6 = y2 ;
+ draw z1 -- z5 -- z3 ; draw_stem(5,6,"b") ;
+endchar ;
+
+beginchar(28,13u#,ex#,0) ; "The Ereborian ew rune" ;
+ pickup main_nib ;
+ lft x1 = lft x3 = w - rt x2 = w - rt x4 = straight_sidebar ;
+ top y1 = top y2 = h - bot y3 = h - bot y4 = h ;
+ draw_stem(1,3,"b") ; draw_stem(2,4,"b") ;
+ x5 = x7 = x1 ; x6 = x8 = x2 ; y5 = y6 = .75[y1,y3] = h - y7 = h - y8 ;
+ draw z5 -- z8 ; draw z7 -- z6 ;
+endchar ;
+
+beginchar(29,16u#,ex#,0) ; "The rune number 4" ;
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x6 ;
+ rt x3 = hround .7w = w - lft x4 ;
+ x2 = good.x .5[x1,x3] ; x5 = good.x .5[x4,x6] ;
+ bot y2 = bot y5 = 0 ;
+ top y1 = h ; y1 = y3 = y4 = y6 ;
+ diag(2,1) ; diag(2,3) ; diag(5,4) ; diag(5,6) ;
+endchar ;
+
+beginchar(30,16u#,ex#,0) ; "The rune number 5" ;
+ pickup main_nib ;
+ top y1 = h ; bot y2 = 0 ; x1 = x2 = good.x .5w ;
+ top y3 = .55[y1,y2] ; x3 = x1 ;
+ y4 = y1 ; lft x4 = curve_sidebar ;
+ draw_stem(1,2,"tb") ;
+ diag(3,4) ;
+ y5 = y4 ; x5 = w - x4 ;
+ diag(3,5) ;
+endchar ;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/elvish/teng10.mf b/Master/texmf-dist/fonts/source/public/elvish/teng10.mf
new file mode 100644
index 00000000000..2ccf66bfee8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/elvish/teng10.mf
@@ -0,0 +1,31 @@
+designsize:=10pt#;
+% parameter settings
+em#:=10pt#; asc#:=8pt#; desc#:=10/3pt#; ex#:=14/3pt#; o#:=1/8pt#;
+% parameters
+tp_bow_stem_y = 0.55 ;
+cq_bow_stem_y = 0.45 ;
+tc_bow_arch_x = 0.55 ; % new value for experimental defn of luva
+pq_bow_arch_x = 0.5 ;
+tc_bow_side_y = 0.4 ;
+pq_bow_side_y = 0.5 ;
+tc_bow_end_x = 0.5 ;
+pq_bow_end_x = 0.6 ;
+tinco_fudge = 0 ; % for raising the top of tinco at low resolution;
+
+font_normal_space(0.4em#) ; font_x_height(ex#) ;
+font_quad(em#) ; font_normal_stretch(0.2em#) ;
+font_normal_shrink(0.1em#) ;
+
+penangle := 40 ;
+penwidth# := 1/9em# ; penthickness# := 1/70em# ;
+tehta_penwidth# = 0.8penwidth# ;
+straight_sidebar# = 1/12em#; curve_sidebar# = 1/18em#;
+fudge# := 0.05 ex# ; % fudge for lowering calma luva
+tinco_width# := 0.70em# ;
+parma_width# := 0.72em# ;
+romen_width# = 0.60em# ;
+luva_width# = 0.5em# ;
+
+% now make the font
+input tengmacs;input tengmain;input tengsecs;
+input tengteht; input tengdev ;
diff --git a/Master/texmf-dist/fonts/source/public/elvish/tengdev.mf b/Master/texmf-dist/fonts/source/public/elvish/tengdev.mf
new file mode 100644
index 00000000000..c1b2d56e7f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/elvish/tengdev.mf
@@ -0,0 +1,350 @@
+
+ def draw_refl_luva(suffix i,j,k,l)
+ (expr luva_type,bow_stem_y,bow_arch_x,
+ bow_side_y,bow_end_x) =
+ y.i = bow_stem_y * ex ;
+ x.j - x.i = bow_arch_x * (x.k - x.i) ;
+ y.k = (if (luva_type = "calma") or (luva_type = "quesse"): 1 - fi bow_side_y) * ex ;
+ x.l - x.i = bow_end_x * (x.k - x.i) ;
+ numeric x.luva_serif,y.luva_serif ;
+ z.luva_serif = z.l + 0.03em *
+ if luva_type = "tinco": dir 135 else: dir 315 fi ;
+
+ path luva_path ;
+ luva_path = z.i{dir( if (luva_type = "tinco") or (luva_type = "parma"):
+ 180-penangle else: -penangle fi)}
+ .. z.j{if (luva_type = "tinco") or (luva_type = "parma"):
+ left else: right fi}
+ .. z.k ..
+ if (luva_type = "parma") or (luva_type = "quesse"): {curl 0.3}z.l
+ else: z.l .. {curl 2}z.luva_serif fi ;
+ draw luva_path ;
+ labels(i,j,k,l)
+ enddef ;
+
+def draw_refl_parma_luva(suffix i,j,k,l) =
+ % this draws a complete reflected parma luva
+ rt x.i = w - straight_sidebar ; % intersection with stem
+ top y.j = round(ex + o) ; % top
+ lft x.k = round (x.i - luva_width) ; % right
+ y.l = 0 ;% bottom
+ draw_refl_luva(i,j,k,l)("parma",tp_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x )
+ enddef ;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("0",.8tinco_width#,ex#,0); "The tengwa number zero";
+ pickup main_nib ;
+ lft x1 = curve_sidebar = w - rt x3 ; x2 = .5[x1,x3 ] ;
+ x4 = .2w ;
+ top y2 = h ;
+ y1 = .7h ; y3 = .55h ; y4 = 0 ;
+ z1' = z1 + .03em*dir(penangle-90) ;
+ draw z1'{dir(penangle+90)} .. z1 .. z2{right} .. z3{down} .. z4 ;
+endchar ;
+
+beginchar("1",.9tinco_width#,ex#,0) ; "The tengwa number one" ;
+ pickup main_nib ;
+ lft x1 = straight_sidebar = w - rt x2 ; top y1 = h = top y2 ;
+ draw_bar(1,2,"r") ;
+ x3 = x1 ; y3 = .4h = y5 ;
+ x4 = .4w ; bot y4 = 0 - o ;
+ rt x5 = .75w ;
+ z5' = z5 + 0.05em*dir140 ;
+ draw_telco(1,3,"t") ;
+ draw z3{down} .. z4{right} .. z5 %%%.. z5' ;
+endchar ;
+
+beginchar("2",1.4tinco_width#,ex#,0) ; "The tengwa number two" ;
+ pickup main_nib ;
+ lft x1 = straight_sidebar = w - rt x3 ; top y1 = top y2 = top y3 = h ;
+ draw_bar(1,3,"r") ;
+ rt x2 = round(.9*.75tinco_width) ; x2 = x6 ;
+ y4 = y6 = y8 = .4h ;
+ bot y5 = bot y7 = 0 ;
+ x8 - x6 = x6 - x4 ;
+ x5 = .4*.9tinco_width ; x4 = x1 ;
+ x5 - x4 = x7 - x6 ;
+ z8' = z8 + 0.05em*dir140 ;
+ draw_telco(1,4,"t") ; draw z2 -- z6 ;
+ draw z4{down} .. z5{right} .. z6 ;
+ draw z6{down} .. z7{right} .. z8 %%%.. z8' ;
+endchar ;
+
+beginchar("3",1.9tinco_width#,ex#,0) ; "The tengwa number three" ;
+ pickup main_nib ;
+ lft x1 = straight_sidebar = w - rt x3 ;
+ top y1 = top y2 = top y2' = top y3 = h ;
+ draw_bar(1,3,"r") ;
+ rt x2 = round(.9*.75tinco_width) ; x2 = x6 ;
+ x2' = x8 ;
+ y4 = y6 = y8 = y10 = .4h ;
+ bot y5 = bot y7 = bot y9 = 0 ;
+ x8 - x6 = x6 - x4 = x10 - x8 ;
+ x5 = .4*.9tinco_width ; x4 = x1 ;
+ x5 - x4 = x7 - x6 = x9 - x8 ;
+ z10' = z10 + 0.05em*dir140 ;
+ draw_telco(1,4,"t") ; draw z2 -- z6 ; draw z2' -- z8 ;
+ draw z4{down} .. z5{right} .. z6 ;
+ draw z6{down} .. z7{right} .. z8 ;
+ draw z8{down} .. z9{right} .. z10 %%%.. z10' ;
+endchar ;
+
+beginchar("4",.9tinco_width#,asc#,desc#) ; "The tengwa number four" ;
+ pickup main_nib ;
+ lft x1 = straight_sidebar = w - rt x2 ; top y1 = round ex = top y2 ;
+ x1' = x1 ; top y1' = h ;
+ %%draw_bar(1,2,"r") ;
+ x3 = x1 ; top y3 = 0 = y5 ;
+ x4 = .4w ; bot y4 = vround(-.7d-o) ;
+ rt x5 = .85w ;
+ z5' = z5 + 0.05em*dir140 ;
+ draw_telco(1',3,"t") ;
+ draw z3{down} .. z4{right} .. z5 %%%%.. z5' ;
+endchar ;
+
+beginchar("5",1.4tinco_width#,asc#,desc#) ; "The tengwa number five" ;
+ pickup main_nib ;
+ lft x1 = straight_sidebar = w - rt x3 ;
+ x1' = x1 ; top y1' = h ;
+ top y1 = top y2 = top y3 = round ex ;
+ draw_bar(1,3,"r") ;
+ rt x2 = round(.9*.75tinco_width) ; x2 = x6 ;
+ top y4 = -.1d ; y6 = y8 = .4ex ;
+ bot y5 = vround(-.7d-o) ; bot y7 = 0 ;
+ x8 - x6 = x6 - x4 ;
+ x5 = .4*.9tinco_width ; x4 = x1 ;
+ x5 - x4 = x7 - x6 ; x5' = .5[x4,x7] ; y5' = y5 ;
+ z8' = z8 + 0.05em*dir140 ;
+ draw_telco(1',4,"t") ; draw z2 -- z6 ;
+ draw z4{down} .. z5'{right} ... z7 ;
+ draw z6{down} .. z7{right} .. z8 %%%.. z8' ;
+endchar ;
+
+beginchar("6",1.9tinco_width#,asc#,desc#) ; "The tengwa number six" ;
+ pickup main_nib ;
+ lft x1 = straight_sidebar = w - rt x3 ;
+ x1' = x1 ; top y1' = h ;
+ top y1 = top y2 = top y3 = round ex ;
+ draw_bar(1,3,"r") ;
+ rt x2 = round(.9*.75tinco_width) ; x2 = x6 ;
+ x2' - x2 = x2 - x1 ; y2' = y2 ;
+ top y4 = -.1d ; y6 = y8 = y10 = .4ex ;
+ bot y5 = vround(-.7d-o) ; bot y7 = bot y9 = 0 ;
+ x8 - x6 = x6 - x4 = x10 - x8 ;
+ x5 = .4*.9tinco_width ; x4 = x1 ;
+ x5 - x4 = x7 - x6 = x9 - x8 ; x5' = .5[x4,x7] ; y5' = y5 ;
+ z8' = z8 + 0.05em*dir140 ;
+ draw_telco(1',4,"t") ; draw z2 -- z6 ; draw z2' -- z8 ;
+ draw z4{down} .. z5'{right} ... z7 ;
+ draw z6{down} .. z7{right} .. z8 ; %%%.. z8' ;
+ draw z8{down} .. z9{right} .. z10 ;
+endchar ;
+
+beginchar("7",.9parma_width#,ex#,desc#); "The tengwa number 7";
+ pickup main_nib ;
+ lft x1 = straight_sidebar ;
+ x5 = x1+hround(.6parma_width) ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("t") ;
+ lft x9 = curve_sidebar ; top y9 = -.3d ;
+ x10 = .5[x6,x9] ; bot y10 = vround(-d-o) ;
+ x6' = x6 ; y6' = -.3d ;
+ draw z6 .. z6'{down} .. z10{left} .. z9 ;
+ endchar ;
+
+
+def draw_number_luva(suffix i,j,k,l) =
+ % this draws a complete number luva
+ lft x.i = hround(.6parma_width) + straight_sidebar ; % intersection with stem
+ top y.j = round(ex + o) ; % top
+ rt x.k = round (x.i + luva_width) ; % right
+ y.l = 0 ;% bottom
+ draw_luva(i,j,k,l)("parma",tp_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x )
+ enddef ;
+
+beginchar("8",1.6parma_width#,ex#,desc#); "The tengwa number 8";
+ pickup main_nib ;
+ draw_number_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("t") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x3 + 0.05em ; % N.B. praps bot y7 = bot y8 = 0
+ draw_bar(7,8)("r") ;
+ lft x9 = curve_sidebar ; top y9 = -.1d ;
+ x10 = .5[x5,x9] ; bot y10 = vround(-d-o) ;
+ x6' = x6 ; y6' = -.3d ;
+ draw z6 .. z6'{down} .. z10{left} .. z9 ;
+ endchar ;
+
+def draw_double_number_luva(suffix i,j,k,l,ii,jj,kk,ll) =
+ % this draws a complete umbar luva
+ % first bow
+ lft x.i = hround(.6parma_width)+straight_sidebar ; % intersection with stem
+ top y.j = round(ex + o) ; % top
+ rt x.k = round (x.i + luva_width) ; % right
+ y.l = 0 ;% bottom
+ draw_luva(i,j,k,l)("parma",tp_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x ) ;
+ %second bow
+ z.second = ( (x.i+pt,y.i) .. (infinity,y.i) ) intersectionpoint luva_path ;
+ x.ii = good.x (xpart z.second) ;
+ y.jj = y.j ;
+ rt x.kk = round (x.ii + luva_width) ; % right
+ y.ll = y.l ;
+ draw_luva(ii,jj,kk,ll)("parma",tp_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x )
+ enddef ;
+
+beginchar("9",2.25parma_width#,ex#,desc#); "The tengwa number 9";
+ pickup main_nib ;
+ draw_double_number_luva(1,2,3,4,9,10,11,12) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("t") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x11 + 0.05em ;
+ draw_bar(7,8)("r") ;
+ lft x13 = curve_sidebar ; top y13 = -.1d ;
+ x14 = .5[x5,x13] ; bot y14 = vround(-d-o) ;
+ x6 = x6' ; y6' = -.3d ;
+ draw z6 .. z6'{down} .. z14{left} .. z13 ;
+ endchar ;
+
+beginchar("+",0.9*tinco_width#,asc#,0) ; "The tengwa number 10" ;
+ pickup main_nib ;
+ rt x4 = w - curve_sidebar ; y4 = 0.65ex ; % right side of bow
+ bot y3 = round(-o) ; x3 = good.x 0.5w ; % bottom
+ x2 = w - x4 ; y2 = 0.45ex ; % left side of bow
+ x1 = good.x 0.3w ; y1 = 0.7ex ; % end of bow
+ z1' = z1 + 0.03em*dir(10) ; % serif
+ x5 = 0.25w ; y5 = 0.95asc ; % top end of letter
+ z6 = z5 + 0.05em*(dir(penangle+80)) ; % for serif
+ draw z1'{dir(180+penangle)} .. z1 .. z2 .. z3
+ .. z4{up} .. tension 0.9 and 3 .. z5 ;
+ labels(1,1',2,3,4,5,6) ;
+endchar ;
+
+beginchar("-",0.85tinco_width#,asc#,desc#) ; "The tengwa number" ;
+ pickup main_nib ;
+ numeric t[] ;
+ % top bow first - make a path for later use
+ x1 = 0.25w ; y1 = 0.95asc ; % top
+ z1' = z1 + 0.05em*dir(penangle+80) ; % serif
+ rt x2 = w - curve_sidebar ; y2 = 0.5h ; % right side of top bow ;
+ x3 = 0.5w ; y3 = good.y 0.2h ; % bottom of top bow
+ x4 = 0.3w ; y4 = 0.5h ; % end of bow
+ z4' = z4 + 0.03em*dir(10) ; % serif
+ path p ;
+ p = z4'{dir(penangle+180)} .. z4 .. z3{right} .. z2{up} ..
+ tension 0.9 and 2.5 .. z1 ;
+ draw p ;
+ x5' = x1 ; y5'-y7 = y1-y3 ; % top of bottom bow
+ x6 = x2 ; y6 - y7 = y2 - y3 ; % side
+ x7 = x3 ; bot y7 = round(-0.9desc) ; % bottom
+ z8 - z7 = z4 - z3 ; % end
+ z8' - z8 = z4' - z4 ;
+ path pa ;
+ pa = z8'{dir(penangle+180)} .. z8 .. z7{right} .. z6{up} ..
+ tension 0.9 and 1.3 .. z5' ;
+ (t1,t2) = p intersectiontimes pa ;
+ draw subpath(0,t2) of pa ;
+ labels(1,2,3,4,5,6,7,8) ;
+endchar ;
+
+beginchar("/",0.9*tinco_width#,ex#,desc#); "The tengwa number 12";
+ pickup main_nib ;
+ lft x2 = curve_sidebar ; y2 = 0.6 ex ; % left
+ top y3 = round(ex+o) ; x3 = 0.55w ; % top
+ rt x4 = w - curve_sidebar ; y4 = 0.4 ex ;
+ x1 = x2 + 0.45w ; y1 = 0.2 ex ; % curly end
+ x5 = x2 ; y5 = -0.9desc ;
+ draw z1{dir(penangle+180)} .. z2{up} .. z3{right} ..
+ z4{down} .. tension 3 .. z5 ;
+ labels(1,2,3,4,5) ;
+endchar ;
+
+beginchar("{",0.2em#,1.5ex#,0) ; "The circle-over tehta" ;
+ pickup tehta_nib ;
+ x1 = x3 = good.x .5w ; bot y3 = vround(1.3ex) ;
+ y1 = y3 + vround .45ex ; y1 - y3 = x2 - x4 ;
+ y2 = y4 = .5[y1,y3] ; x1 = .5[x2,x4] ;
+ draw z1 .. z2 .. z3 .. z4 .. cycle ;
+endchar ;
+
+beginchar("}",0.2em#,0,desc#) ; "The circle-over tehta" ;
+ pickup tehta_nib ;
+ x1 = x3 = good.x .5w ; top y1 = vround -.3ex ;
+ y1 = y3 + vround .45ex ; y1 - y3 = x2 - x4 ;
+ y2 = y4 = .5[y1,y3] ; x1 = .5[x2,x4] ;
+ draw z1 .. z2 .. z3 .. z4 .. cycle ;
+endchar ;
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(28,parma_width#,ex#,desc#); "Reflected parma"; % ^^\
+ pickup main_nib ;
+ draw_refl_parma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x3 - 0.05em ; % N.B. praps bot y7 = bot y8 = 0
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+beginchar(29,parma_width#,ex#,0); "Reflected formen";
+ pickup main_nib ;
+ draw_refl_parma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("t") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x3 - 0.05em ; % N.B. praps bot y7 = bot y8 = 0
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+beginchar("(",0.4em#,asc#,0) ; "Left paren" ;
+ pickup main_nib ;
+ top y1 = round asc ; bot y3 = 0 ; y2 = 1/2[y1,y3] ;
+ lft x2 = straight_sidebar = w - rt x1 = w - rt x3 ;
+ draw z1 .. z2 .. z3 ;
+endchar ;
+
+beginchar(")",0.4em#,asc#,0) ; "Right paren" ;
+ pickup main_nib ;
+ top y1 = round asc ; bot y3 = 0 ; y2 = 1/2[y1,y3] ;
+ lft x1 = lft x3 = straight_sidebar = w - rt x2 ;
+ draw z1 .. z2 .. z3 ;
+endchar ;
+
+beginchar("`",0.5em#,ex#,0) ; "Left guillemet" ;
+ pickup tehta_nib ;
+ y2 = 0.6ex = 1/2[y1,y3] ;
+ y1 - y3 = 0.4ex ;
+ lft x2 = straight_sidebar = w - rt x1 - 0.2em ; x1 = x3 ;
+ draw z1 .. z2 .. z3 ;
+ forsuffixes i=1,2,3: x.i' = x.i + round(0.2em) ; y.i' = y.i ; endfor ;
+ draw z1' .. z2' .. z3' ;
+endchar ;
+
+beginchar("'",0.5em#,ex#,0) ; "Right guillemet" ;
+ pickup tehta_nib ;
+ y2 = 0.6ex = 1/2[y1,y3] ;
+ y1 - y3 = 0.4ex ;
+ rt x2 = w - straight_sidebar = w - lft x1 + 0.2em ; x1 = x3 ;
+ draw z1 .. z2 .. z3 ;
+ forsuffixes i=1,2,3: x.i' = x.i - round(0.2em) ; y.i' = y.i ; endfor ;
+ draw z1' .. z2' .. z3' ;
+endchar ;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/elvish/tengmacs.mf b/Master/texmf-dist/fonts/source/public/elvish/tengmacs.mf
new file mode 100644
index 00000000000..b28eb37aa9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/elvish/tengmacs.mf
@@ -0,0 +1,221 @@
+autorounding := 1 ;
+mode_setup;
+define_pixels(em,asc,desc,ex);
+define_blacker_pixels(penwidth,penthickness) ;
+define_blacker_pixels(tehta_penwidth) ;
+define_corrected_pixels(o);
+define_whole_pixels(straight_sidebar,curve_sidebar) ;
+
+define_pixels(fudge, tinco_width, parma_width, romen_width) ;
+define_pixels(luva_width) ;
+pickup pencircle xscaled penwidth yscaled penthickness rotated penangle;
+main_nib := savepen ;
+pickup pencircle xscaled tehta_penwidth yscaled penthickness rotated penangle;
+tehta_nib := savepen ;
+
+def draw_luva(suffix i,j,k,l)
+ (expr luva_type,bow_stem_y,bow_arch_x,
+ bow_side_y,bow_end_x) =
+ y.i = bow_stem_y * ex ;
+ x.j - x.i = bow_arch_x * (x.k - x.i) ;
+ y.k = (if (luva_type = "calma") or (luva_type = "quesse"): 1 - fi bow_side_y) * ex ;
+ x.l - x.i = bow_end_x * (x.k - x.i) ;
+ numeric x.luva_serif,y.luva_serif ;
+ z.luva_serif = z.l + 0.03em *
+ if luva_type = "tinco": dir 135 else: dir 315 fi ;
+
+ path luva_path ;
+ luva_path = z.i{dir( if (luva_type = "tinco") or (luva_type = "parma"):
+ penangle else: penangle+180 fi)}
+ .. z.j{if (luva_type = "tinco") or (luva_type = "parma"):
+ right else: left fi}
+ .. z.k ..
+ if (luva_type = "parma") or (luva_type = "quesse"): {curl 0.3}z.l
+ else: z.l .. {curl 2}z.luva_serif fi ;
+ draw luva_path ;
+ labels(i,j,k,l)
+ enddef ;
+
+def draw_tinco_luva(suffix i,j,k,l) =
+ % this draws a complete tinco luva, using the four given suffices
+ % for the control points. ALL the information about the control
+ % points is determined within the macro; they are provided only for
+ % information and later use.
+ lft x.i = straight_sidebar ; % intersection with stem
+ top y.j = round(ex + o + tinco_fudge) ; % top
+ rt x.k = round (x.i + luva_width) ; % right
+ bot y.l = 0; % round (- o) ; % bottom, with fudge factor
+ draw_luva(i,j,k,l)("tinco",tp_bow_stem_y,
+ tc_bow_arch_x,
+ tc_bow_side_y,
+ tc_bow_end_x )
+
+ enddef ;
+
+def draw_ando_luva(suffix i,j,k,l,ii,jj,kk,ll) =
+ % this draws a complete ando luva
+ % first bow
+ lft x.i = straight_sidebar ; % intersection with stem
+ top y.j = round(ex + o + tinco_fudge) ; % top
+ rt x.k = round (x.i + luva_width) ; % right
+ bot y.l = round (- o) ; % bottom, with fudge factor
+ draw_luva(i,j,k,l)("tinco",tp_bow_stem_y,
+ tc_bow_arch_x,
+ tc_bow_side_y,
+ tc_bow_end_x ) ;
+ % now the second luva
+ z.second = ( (x.i+pt,y.i) .. (infinity,y.i) ) intersectionpoint luva_path ;
+ x.ii = good.x (xpart z.second) ;
+ y.jj = y.j ;
+ rt x.kk = round (x.ii + luva_width) ; % right
+ y.ll = y.l ;
+ draw_luva(ii,jj,kk,ll)("tinco",tp_bow_stem_y,
+ tc_bow_arch_x,
+ tc_bow_side_y,
+ tc_bow_end_x )
+ enddef ;
+
+def draw_parma_luva(suffix i,j,k,l) =
+ % this draws a complete parma luva
+ lft x.i = straight_sidebar ; % intersection with stem
+ top y.j = round(ex + o) ; % top
+ rt x.k = round (x.i + luva_width) ; % right
+ bot y.l = 0 ;% bottom
+ draw_luva(i,j,k,l)("parma",tp_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x )
+ enddef ;
+
+def draw_umbar_luva(suffix i,j,k,l,ii,jj,kk,ll) =
+ % this draws a complete umbar luva
+ % first bow
+ lft x.i = straight_sidebar ; % intersection with stem
+ top y.j = round(ex + o) ; % top
+ rt x.k = round (x.i + luva_width) ; % right
+ bot y.l = 0 ;% bottom
+ draw_luva(i,j,k,l)("parma",tp_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x ) ;
+ %second bow
+ z.second = ( (x.i+pt,y.i) .. (infinity,y.i) ) intersectionpoint luva_path ;
+ x.ii = good.x (xpart z.second) ;
+ y.jj = y.j ;
+ rt x.kk = round (x.ii + luva_width) ; % right
+ y.ll = y.l ;
+ draw_luva(ii,jj,kk,ll)("parma",tp_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x )
+ enddef ;
+
+def draw_calma_luva(suffix i,j,k,l) =
+ % this draws a complete calma luva
+ rt x.i = w - straight_sidebar ; % intersection with stem
+ y.j = good.y 0 ; % bottom
+ lft x.k = round (x.i - luva_width) ; % left
+ top y.l = round(ex - fudge) ; % top
+ draw_luva(i,j,k,l)("calma",cq_bow_stem_y,
+ tc_bow_arch_x,
+ tc_bow_side_y,
+ tc_bow_end_x )
+ enddef ;
+
+def draw_anga_luva(suffix i,j,k,l,ii,jj,kk,ll) =
+ % this draws a complete anga luva
+ % first bow
+ rt x.i = w - straight_sidebar ; % intersection with stem
+ y.j = good.y 0 ; % bottom
+ lft x.k = round (x.i - luva_width) ; % left
+ top y.l = round(ex - fudge) ; % top
+ draw_luva(i,j,k,l)("calma",cq_bow_stem_y,
+ tc_bow_arch_x,
+ tc_bow_side_y,
+ tc_bow_end_x ) ;
+ % now the second luva
+ z.second = ( (x.i-pt,y.i) .. (-infinity,y.i) ) intersectionpoint luva_path ;
+ x.ii = good.x (xpart z.second) ;
+ y.jj = y.j ;
+ lft x.kk = round (x.ii - luva_width) ; % left
+ y.ll = y.l ;
+ draw_luva(ii,jj,kk,ll)("calma",cq_bow_stem_y,
+ tc_bow_arch_x,
+ tc_bow_side_y,
+ tc_bow_end_x )
+ enddef ;
+
+def draw_quesse_luva(suffix i,j,k,l) =
+ % this draws a complete quesse luva
+ rt x.i = w - straight_sidebar ; % intersection with stem
+ y.j = good.y 0 ; % bottom
+ lft x.k = round (x.i - luva_width) ; % left
+ top y.l = round(ex) ; % top
+ draw_luva(i,j,k,l)("quesse",cq_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x )
+ enddef ;
+
+def draw_ungwe_luva(suffix i,j,k,l,ii,jj,kk,ll) =
+ % this draws a complete ungwe luva
+ % first bow
+ rt x.i = w - straight_sidebar ; % intersection with stem
+ y.j = good.y 0 ; % bottom
+ lft x.k = round (x.i - luva_width) ; % left
+ top y.l = round(ex) ; % top
+ draw_luva(i,j,k,l)("quesse",cq_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x ) ;
+ % second bow
+ z.second = ( (x.i-pt,y.i) .. (-infinity,y.i) ) intersectionpoint luva_path ;
+ x.ii = good.x (xpart z.second) ;
+ y.jj = y.j ;
+ lft x.kk = round (x.ii - luva_width) ; % left
+ y.ll = y.l ;
+ draw_luva(ii,jj,kk,ll)("quesse",cq_bow_stem_y,
+ pq_bow_arch_x,
+ pq_bow_side_y,
+ pq_bow_end_x )
+ enddef ;
+
+
+
+def draw_telco(suffix i,j)(expr serifs) = % serifs = t,b,tb for Top & Bottom
+ z.i.$ = z.i + 0.05em * dir(penangle+180) ;
+ z.i.$$ = z.i + 0.1em * down ;
+ z.j.$ = z.j + 0.05em * dir(penangle) ;
+ z.j.$$ = z.j + 0.1em * up ;
+ draw z.i .. z.j ;
+ if (serifs = "t") or (serifs = "tb"):
+ filldraw z.i -- z.i.${dir(penangle-90)}
+ .. {down}z.i.$$ & z.i.$$ .. z.i & cycle ; fi
+ if (serifs = "b") or (serifs = "tb"):
+ filldraw z.j -- z.j.${dir(penangle+90)}
+ .. {up}z.j.$$ & z.j.$$ .. z.j & cycle ; fi
+ labels(i,j)
+ enddef ;
+
+def draw_bar(suffix i,j)(expr serifs) = % serifs = r,l,rl for Right/Left
+ z.right_serif1 = z.j + 0.04em * left ;
+ z.right_serif2 = z.j + 0.04em * dir penangle ;
+ z.left_serif1 = z.i + 0.04em * right ;
+ z.left_serif2 = z.i + 0.04em * dir(penangle+180) ;
+ draw if (serifs = "l") or (serifs = "rl"):
+ z.left_serif2{dir penangle} .. z.left_serif1 else: z.i fi
+ ---
+ if (serifs = "r") or (serifs = "rl"):
+ z.right_serif1 .. {dir penangle}z.right_serif2 else: z.j fi ;
+labels(i,j)
+ enddef ;
+
+
+def draw_dot(suffix i) =
+ % calculate width of pen
+ numeric penwdth ;
+ 1.1penwdth = (pen_rt - pen_lft) ++ (pen_top - pen_bot) ;
+ z.i.$ = z.i + 1/2penwdth*dir(penangle+90) ;
+ z.i.$$ = z.i + 1/2penwidth*dir(penangle-90) ;
+ draw z.i.$$ -- z.i.$ ; drawdot z.i.$$ ; drawdot z.i.$ ;
+enddef ;
diff --git a/Master/texmf-dist/fonts/source/public/elvish/tengmain.mf b/Master/texmf-dist/fonts/source/public/elvish/tengmain.mf
new file mode 100644
index 00000000000..189aa26de12
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/elvish/tengmain.mf
@@ -0,0 +1,296 @@
+
+beginchar("t",tinco_width#,ex#,desc#); "The tengwa tinco";
+ pickup main_nib ;
+ draw_tinco_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+endchar ;
+
+beginchar("d",1.65tinco_width#,ex#,desc#); "The tengwa ando";
+ pickup main_nib ;
+ draw_ando_luva(1,2,3,4,7,8,9,10) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+endchar ;
+
+
+beginchar("p",parma_width#,ex#,desc#); "The tengwa parma";
+ pickup main_nib ;
+ draw_parma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x3 + 0.05em ; % N.B. praps bot y7 = bot y8 = 0
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+beginchar("b",1.65parma_width#,ex#,desc#); "The tengwa umbar";
+ pickup main_nib ;
+ draw_umbar_luva(1,2,3,4,9,10,11,12) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x11 + 0.05em ;
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+
+beginchar("c",tinco_width#,ex#,desc#); "The tengwa calma";
+ pickup main_nib ;
+ draw_calma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ endchar ;
+
+beginchar("j",1.65tinco_width#,ex#,desc#); "The tengwa anga";
+ pickup main_nib ;
+ draw_anga_luva(1,2,3,4,7,8,9,10) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ endchar ;
+
+beginchar("k",parma_width#,ex#,desc#); "The tengwa quesse";
+ pickup main_nib ;
+ draw_quesse_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("b") ;
+ x7 = x5 ; top y7 = ex = top y8 ; x8 = x3 - 0.05em ; % N.B. praps top y7 = top y8 = 0
+ draw_bar(8,7)("l");
+ endchar ;
+
+beginchar("g",1.65parma_width#,ex#,desc#); "The tengwa ungwe";
+ pickup main_nib ;
+ draw_ungwe_luva(1,2,3,4,9,10,11,12) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("b") ;
+ x7 = x5 ; top y7 = ex = top y8 ; x8 = x11 - 0.05em ;
+ draw_bar(8,7)("l");
+ endchar ;
+
+beginchar(12,tinco_width#,asc#,desc#); "Extended sule"; % ^^L
+ pickup main_nib ;
+ draw_tinco_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+endchar ;
+
+beginchar(4,1.65tinco_width#,asc#,desc#); "Extended anto"; % ^^D
+ pickup main_nib ;
+ draw_ando_luva(1,2,3,4,7,8,9,10) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+endchar ;
+
+
+beginchar(16,parma_width#,asc#,desc#); "Extended formen"; % ^^P
+ pickup main_nib ;
+ draw_parma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x3 + 0.05em ; % N.B. praps bot y7 = bot y8 = 0
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+beginchar(18,1.65parma_width#,asc#,desc#); "Extended ampa"; % ^^R
+ pickup main_nib ;
+ draw_umbar_luva(1,2,3,4,9,10,11,12) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x11 + 0.05em ;
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+
+beginchar(27,tinco_width#,asc#,desc#); "Extended aha"; % ^^[
+ pickup main_nib ;
+ draw_calma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ endchar ;
+
+beginchar(10,1.65tinco_width#,asc#,desc#); "Extended anca"; % ^^J
+ pickup main_nib ;
+ draw_anga_luva(1,2,3,4,7,8,9,10) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ endchar ;
+
+beginchar(11,parma_width#,asc#,desc#); "Extended hwesta"; % ^^K
+ pickup main_nib ;
+ draw_quesse_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ x7 = x5 ; top y7 = ex = top y8 ; x8 = x3 - 0.05em ; % N.B. praps top y7 = top y8 = 0
+ draw_bar(8,7)("l");
+ endchar ;
+
+beginchar(7,1.65parma_width#,asc#,desc#); "Extended unque"; % ^^G
+ pickup main_nib ;
+ draw_ungwe_luva(1,2,3,4,9,10,11,12) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; bot y6 = -desc ; % bottom of stem
+ draw_telco(5,6)("b") ;
+ x7 = x5 ; top y7 = ex = top y8 ; x8 = x11 - 0.05em ;
+ draw_bar(8,7)("l");
+ endchar ;
+
+beginchar("T",tinco_width#,ex#,0); "The tengwa thule";
+ pickup main_nib ;
+ draw_tinco_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+endchar ;
+
+beginchar("D",1.65tinco_width#,ex#,0); "The tengwa anto";
+ pickup main_nib ;
+ draw_ando_luva(1,2,3,4,7,8,9,10) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+endchar ;
+
+
+beginchar("f",parma_width#,ex#,0); "The tengwa formen";
+ pickup main_nib ;
+ draw_parma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("t") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x3 + 0.05em ; % N.B. praps bot y7 = bot y8 = 0
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+beginchar("v",1.65parma_width#,ex#,0); "The tengwa ampa";
+ pickup main_nib ;
+ draw_umbar_luva(1,2,3,4,9,10,11,12) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("t") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x11 + 0.05em ;
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+
+beginchar("C",tinco_width#,ex#,0); "The tengwa aha";
+ pickup main_nib ;
+ draw_calma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ endchar ;
+
+beginchar("J",1.65tinco_width#,ex#,0); "The tengwa anca";
+ pickup main_nib ;
+ draw_anga_luva(1,2,3,4,7,8,9,10) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ endchar ;
+
+beginchar("K",parma_width#,ex#,0); "The tengwa hwesta";
+ pickup main_nib ;
+ draw_quesse_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ x7 = x5 ; top y7 = ex = top y8 ; x8 = x3 - 0.05em ; % N.B. praps top y7 = top y8 = 0
+ draw_bar(8,7)("l");
+ endchar ;
+
+beginchar("G",1.65parma_width#,ex#,0); "The tengwa unque";
+ pickup main_nib ;
+ draw_ungwe_luva(1,2,3,4,9,10,11,12) ;
+ x5 = x1 ; top y5 = asc ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ x7 = x5 ; top y7 = ex = top y8 ; x8 = x11 - 0.05em ;
+ draw_bar(8,7)("l");
+ endchar ;
+
+beginchar("R",tinco_width#,ex#,0); "The tengwa ore";
+ pickup main_nib ;
+ draw_tinco_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+endchar ;
+
+beginchar("n",1.65tinco_width#,ex#,0); "The tengwa numen";
+ pickup main_nib ;
+ draw_ando_luva(1,2,3,4,7,8,9,10) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+endchar ;
+
+
+beginchar("w",parma_width#,ex#,0); "The tengwa vala";
+ pickup main_nib ;
+ draw_parma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("t") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x3 + 0.05em ; % N.B. praps bot y7 = bot y8 = 0
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+beginchar("m",1.65parma_width#,ex#,0); "The tengwa malta";
+ pickup main_nib ;
+ draw_umbar_luva(1,2,3,4,9,10,11,12) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("t") ;
+ x7 = x5 ; y7 = good.y o = y8 ; x8 = x11 + 0.05em ;
+ draw_bar(7,8)("r") ;
+ endchar ;
+
+
+beginchar("y",tinco_width#,ex#,0); "The tengwa anna";
+ pickup main_nib ;
+ draw_calma_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ endchar ;
+
+beginchar("Y",1.65tinco_width#,ex#,0); "The tengwa noldo";
+ pickup main_nib ;
+ draw_anga_luva(1,2,3,4,7,8,9,10) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("tb") ;
+ endchar ;
+
+beginchar("W",parma_width#,ex#,0); "The tengwa vilya";
+ pickup main_nib ;
+ draw_quesse_luva(1,2,3,4) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("b") ;
+ x7 = x5 ; top y7 = ex = top y8 ; x8 = x3 - 0.05em ; % N.B. praps top y7 = top y8 = 0
+ draw_bar(8,7)("l");
+ endchar ;
+
+beginchar("N",1.65parma_width#,ex#,0); "The tengwa nwalme";
+ pickup main_nib ;
+ draw_ungwe_luva(1,2,3,4,9,10,11,12) ;
+ x5 = x1 ; top y5 = ex ; % top of stem
+ x6 = x5 ; y6 = 0 ; % bottom of stem
+ draw_telco(5,6)("b") ;
+ x7 = x5 ; top y7 = ex = top y8 ; x8 = x11 - 0.05em ;
+ draw_bar(8,7)("l");
+ endchar ;
diff --git a/Master/texmf-dist/fonts/source/public/elvish/tengsecs.mf b/Master/texmf-dist/fonts/source/public/elvish/tengsecs.mf
new file mode 100644
index 00000000000..40256ffa5bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/elvish/tengsecs.mf
@@ -0,0 +1,311 @@
+
+beginchar("l",0.8em#,ex#,desc#) ; "The tengwa lambe" ;
+ pickup main_nib ;
+ x1 = straight_sidebar ; x2 = w - x1 ;
+ top y1 = top y2 = round ex ;
+ z1' = z1 - ( 0.04em * dir penangle) ;
+ z2' = z2 + ( 0.04em * dir penangle) ;
+ draw z1'{dir penangle} .. {dir penangle}z2' ;
+ y3 = y1 ; x3 = 0.6[x1,x2] ; % top of bowl
+ lft x4 = 2curve_sidebar ; y4 = 0.2ex ; % side of bowl
+ bot y5 = -0.5 desc ; x5 = .4w ; % bottom of bowl
+ x6 = w - x4 ; y6 = 0.2ex; % right side of bowl
+ z7 = z6 + (0.05em *(left rotated -10)) ;
+ draw z3{dir (penangle+180)} ..
+ {down}z4 .. z5{right}
+ .. z6 .. {dir -penangle} z7 ;
+ labels(1,2,3,4,5,6) ;
+endchar ;
+
+beginchar("I",0.8tinco_width#,ex#,0) ; "The tengwa yanta" ;
+ pickup main_nib ;
+ y1 = 0 ; x1 = straight_sidebar ; % bottom of left arm ;
+ y2 = 0 ; x2 = w - x1 ; % bottom of right arm
+ x3 = 0.5[x1,x2] ; y3 = 0.8ex ; % junction point
+ top y4 = round(ex) ; z4 - z2 = whatever*(z3 - z2) ; % top of arm
+ draw z4 .. z2 ;
+ draw z3 .. z1 ;
+ z4' = z4 + 0.05em * dir(penangle+180) ;
+ z2' = z2 + 0.05em * dir(penangle) ;
+ z1' = z1 + 0.05em * dir(penangle+90) ;
+ draw z4'{dir penangle} .. {z2-z4}z4 ;
+ draw z2'{dir (penangle+180)} .. {z4-z2}z2 ;
+ draw z1'{dir(penangle-90)} .. {z3-z1}z1 ;
+endchar ;
+
+beginchar("U",0.9tinco_width#,ex#,0) ; "The tengwa ure" ;
+ pickup main_nib ;
+ top y1 = round(ex+o) ; x1 = 0.5w ;
+ bot y3 = round(-o) ; x3 = x1 ;
+ rt x2 = w - curve_sidebar = w - lft x4 ;
+ y2 = y4 = 0.5h ;
+ draw z1 .. z2 .. z3 .. z4 .. cycle ;
+endchar ;
+
+
+beginchar("s",0.9*tinco_width#,asc#,0) ; "The tengwa silme" ;
+ pickup main_nib ;
+ lft x4 = curve_sidebar ; y4 = 0.7ex ; % left side of bow
+ bot y3 = round(-o) ; x3 = good.x 0.5w ; % bottom
+ x2 = w - x4 ; y2 = 0.5ex ; % right side of bow
+ x1 = good.x 0.7w ; y1 = 0.8ex ; % end of bow
+ z1' = z1 + 0.03em*dir(170) ; % serif
+ x5 = 0.55w ; y5 = 0.95asc ; % top end of letter
+ z6 = z5 + 0.05em*(dir(penangle+80)) ; % for serif
+ draw z1'{dir penangle} .. z1 .. z2 .. z3 .. z4{up} .. tension 0.9 and 1.2 .. z5 .. z6 ;
+ labels(1,1',2,3,4,5,6) ;
+endchar ;
+
+beginchar("S",0.9*tinco_width#,ex#,desc#); "The tengwa silme nuquerna";
+ pickup main_nib ;
+ lft x2 = curve_sidebar ; y2 = 0.6 ex ; % left
+ top y3 = round(ex+o) ; x3 = 0.55w ; % top
+ rt x4 = w - curve_sidebar ; y4 = 0.4 ex ;
+ x1 = x2 + 0.2w ; y1 = 0.25 ex ; % curly end
+ x5 = x2 ; y5 = -0.9desc ;
+ draw z1{dir(penangle+180)} .. z2{up} .. z3{right} ..
+ z4{down} .. tension 1.2 .. z5 ;
+ labels(1,2,3,4,5) ;
+endchar ;
+
+beginchar("r", romen_width#, ex#, desc#); "The tengwa romen";
+ pickup main_nib ;
+ x1 = straight_sidebar ; top y1 = round(0.95ex) ; % top of left arm
+ bot y2 = 0.0ex ; % join at bottom
+ rt x3 = w - curve_sidebar ; y3 = 0.75ex ;% 'top' of right stem ;
+ % want vectors z3-z2 and z1-z2 to be mirror images in direction
+ numeric temp ;
+ y3 - y2 = temp*(y1 - y2) ;
+ x3 - x2 = 1.1temp*(x2 - x1) ; % not quite mirror !
+ draw z1 -- z2 ; % left arm (without serif)
+ z1' = z1 + 0.05em*dir(penangle+135) ;
+ draw z1'{dir penangle} .. {z2-z1}z1 ; % serif
+ top y4 = round(ex - 0.2penwidth*sind penangle) ; x4 = 1/3[x2,x3] ; % end of right arm
+ bot y5 = round(-0.9desc) ; x5 = 0[x2,x3] ; % bottom of tail
+ y6 = -0.2desc ; x6 = 1/2[x5,x3] ; % end of tail
+ path p ;
+ p = z4{dir penangle} .. z3 .. tension 1 .. z2 % {dir (penangle+180)}
+ .. tension 3/4 .. z5{right} .. {dir (penangle+180)}z6 ;
+ draw p ;
+ draw z1'{dir penangle} .. {z2-z1}z1 .. z2 ;
+ labels(1,2,3,4,5,6);
+ endchar ;
+
+beginchar("&", romen_width#, ex#, desc#); "The tengwa arda";
+ pickup main_nib ;
+ x1 = straight_sidebar ; top y1 = round(0.95ex) ; % top of left arm
+ bot y2 = 0.0ex ; % join at bottom
+ rt x3 = w - curve_sidebar ; y3 = 0.75ex ;% 'top' of right stem ;
+ % want vectors z3-z2 and z1-z2 to be mirror images in direction
+ numeric temp ;
+ y3 - y2 = temp*(y1 - y2) ;
+ x3 - x2 = 1.1temp*(x2 - x1) ; % not quite mirror !
+ draw z1 -- z2 ; % left arm (without serif)
+ z1' = z1 + 0.05em*dir(penangle+135) ;
+ draw z1'{dir penangle} .. {z2-z1}z1 ; % serif
+ top y4 = round(ex - 0.2penwidth*sind penangle) ; x4 = 1/3[x2,x3] ; % end of right arm
+ bot y5 = round(-0.9desc) ; x5 = 0[x2,x3] ; % bottom of tail
+ y6 = -0.2desc ; x6 = 1/2[x5,x3] ; % end of tail
+ path p ;
+ p = z4{dir penangle} .. z3 .. tension 1 .. z2 % {dir (penangle+180)}
+ .. tension 3/4 .. z5{right} .. {dir (penangle+180)}z6 ;
+ draw p ;
+ draw z1'{dir penangle} .. {z2-z1}z1 .. z2 ;
+ z10 = 0.25[z2,z1] ;
+ z11 = z10 + 0.2em*dir(penangle+180) ;
+ z12 = z11 + 0.08em*dir(penangle-90) ;
+ draw z10 .. tension 1.5 .. z11 .. tension 1.5 .. z12 ;
+ labels(1,2,3,4,5,6,10,11,12);
+ endchar ;
+
+beginchar("z",0.85tinco_width#,asc#,desc#) ; "The tengwa esse" ;
+ pickup main_nib ;
+ % top bow first - make a path for later use
+ x1 = 0.55w ; y1 = 0.95asc ; % top
+ z1' = z1 + 0.05em*dir(penangle+80) ; % serif
+ lft x2 = curve_sidebar ; y2 = 0.5h ; % left side of top bow ;
+ x3 = 0.5w ; y3 = good.y 0.2h ; % bottom of top bow
+ x4 = 0.7w ; y4 = 0.5h ; % end of bow
+ z4' = z4 + 0.03em*dir(170) ; % serif
+ path p ;
+ p = z4'{dir penangle} .. z4 .. z3{left} .. z2{up} ..
+ tension 0.9 and 1.2 .. z1 .. z1' ;
+ draw p ;
+ x5' = x1 ; y5'-y7 = y1-y3 ; % top of bottom bow
+ x6 = x2 ; y6 - y7 = y2 - y3 ; % side
+ x7 = x3 ; bot y7 = round(-0.9desc) ; % bottom
+ z8 - z7 = z4 - z3 ; % end
+ z8' - z8 = z4' - z4 ;
+ path pa ;
+ pa = z8'{dir penangle} .. z8 .. z7{left} .. z6{up} ..
+ tension 0.9 and 1.2 .. z5' ;
+ (t1,t2) = p intersectiontimes pa ;
+ draw subpath(0,t2) of pa ;
+ labels(1,2,3,4,5,6,7,8) ;
+endchar ;
+
+beginchar("Z",0.8tinco_width#,ex#,desc#) ; "The tengwa esse nuquerna" ;
+ pickup main_nib ;
+ y1 = 0.5h ; x1 = 0.3w ; % end of top bow
+ z1' = z1 + 0.03em*dir(-10) ; % and serif
+ % ignore z2 (left side) for the moment
+ top y3 = round(ex+o) ; x3 = 0.5w ; % top
+ rt x4 = 0.9w - curve_sidebar ; y4 = 0.65h ; % right
+ y5 = -0.1desc ; lft x5 = curve_sidebar ; %end
+ path p ;
+ p = z1'{dir(penangle+180)} .. z3{right} .. z4{down} ..
+ tension 0.9 and 1.2 .. z5 ;
+ draw p ;
+ z6 = ( (0.5w,-desc) .. (0.5w,0.5ex) ) intersectionpoint p ;
+ x7 = x4 ; y7 = -0.3desc ;
+ x8 = x5 ; y8 = -0.9desc ;
+ draw z6{dir penangle} .. z7{down} .. tension 0.9 and 2 .. z8 ;
+ labels(1,2,3,4,5,6,7,8) ;
+endchar ;
+
+beginchar("h",0.8tinco_width#,asc#,0) ; "The tengwa hyarmen" ;
+ pickup main_nib ;
+ bot y1 = 0 ; x1 = straight_sidebar ; % bottom of left arm
+ y2 = 0 ; x2 = w - x1 ; % bottom of right arm
+ x3 = 0.6[x1,x2] ; y3 = 0.9ex ; % junction point
+ top y4 = round (0.9asc) ; z4 - z2 = whatever*(z3-z2) ; % top of arm
+ z4' = z4 + 0.08em*dir(penangle+160);
+ z4'' = z4 + 0.08em*(dir(angle(z2-z4))) ;
+ draw z4'{dir penangle} .. z4'' --- z2 ;
+ draw z3 .. z1 ;
+ z1' = z1 + 0.05em*dir(penangle+180) ;
+ z2' = z2 + 0.05em*dir(penangle) ;
+ draw z2'{dir(penangle+180)} .. {z4-z2}z2 ;
+ draw z1'{dir(penangle-90)} .. {z3-z1}z1 ;
+ labels(1,2,3,4) ;
+endchar ;
+
+beginchar("H",tinco_width#,asc#,0) ; "The tengwa hwesta sindarinwa" ;
+ pickup main_nib ;
+ top y1 = asc ; x1 = good.x (w - 0.2em) ;
+ bot y2 = 0 ; x2 = x1 ;
+ draw_telco(1,2,"t") ;
+ x3 = x7 = x1 ; y3 = .75ex ; y7 = 0.1ex ;
+ top y4 = round(ex+o) ;
+ bot y6 = round(-o) ;
+ x4 = 0.5w ;
+ x6 = 0.4w ;
+ y5 = 0.5ex ; x5 = curve_sidebar ;
+ draw z3 .. z4{left} .. z5{down} .. z6{right} .. z7 ;
+ z2' = z2 + 0.05em*dir(penangle) ;
+ z2'' = z2 + 0.2em*right ;
+ z2''' = z2 - 0.05em*dir(penangle+180) ;
+ draw z2{dir penangle} .. z2' .. z2'' .. z2'''{dir penangle} ;
+ labels(1,2,3,4,5,6,2'') ;
+endchar ;
+
+beginchar("@",0.3em#,ex#,0) ; "The short carrier" ;
+ pickup main_nib ;
+ top y1 = round(ex) ; y2 = 0 ;
+ x1 = x2 = good.x 0.5w ;
+ draw_telco(1,2,"tb") ;
+endchar ;
+
+beginchar("*",0.3em#,ex#,desc#) ; "The long carrier" ;
+ pickup main_nib ;
+ top y1 = round(ex) ; y2 = -0.6desc ;
+ x1 = x2 = good.x 0.5w ;
+ draw_telco(1,2,"t") ;
+ z3 = z2 + 0.2em*dir(penangle-150) ;
+ draw z2{z2-z1} .. z3{dir(penangle+180)} ;
+endchar ;
+
+beginchar("A",0.75tinco_width#,ex#,0) ; "The tengwa A" ;
+ pickup main_nib ;
+ top y1 = round(ex+o) ; x1 = 0.6w ;
+ y3 = 0 ; x3 = x1 ;
+ lft x2 = curve_sidebar ; y2 = 0.55h ;
+ x4 = w - straight_sidebar ; x6 = x4+0.05em ;
+ y4 = 0.75h ; y6 = 0.35h ;
+ z4' = z4 + 0.03em*dir(180+penangle) ;
+ draw z4'{dir penangle} .. z4 .. z1{left} .. z2{down} .. z3{right} .. z6 ;
+endchar ;
+
+beginchar("|",0.3em#,asc#,0); "The tengwa halla" ;
+ pickup main_nib ;
+ x1 = x2 = good.x 0.5w ;
+ top y1 = asc ;
+ y2 = 0 ;
+ draw_telco(1,2)("tb") ;
+ endchar ;
+
+beginchar("L",0.8em#,ex#,desc#) ; "The tengwa alda" ;
+ pickup main_nib ;
+ x1 = straight_sidebar = w - x2 ;
+ top y1 = top y2 = round ex ;
+ z1' = z1 - ( 0.04em * dir penangle) ;
+ z2' = z2 + ( 0.04em * dir penangle) ;
+ draw z1'{dir penangle} .. {dir penangle}z2' ;
+ x3 = 0.4[x1,x2] ; % top of bowl
+ y3 = 0.95ex ;
+ lft x4 = straight_sidebar ; y4 = 0.5ex ; % first bend
+ rt x5 = w - straight_sidebar ; y5 = -0.15ex ; % second bend
+ x6 = 0.65w ; bot y6 = -0.7desc ; % bottom of bowl
+ x7 = 0.3w ; y7 = -0.2 ex ; % end
+ draw z3{curl 0} .. tension 2 .. z4{down} .. z5{down} .. z6{left} ..
+ z7{dir penangle} ;
+endchar ;
+beginchar("$", romen_width#, asc#, 0) ; "Inverted romen - wh" ;
+ pickup main_nib ;
+ x1 = w - straight_sidebar ; bot y1 = round(0.05ex) ;
+ top y2 = 1.0ex ;
+ lft x3 = curve_sidebar ; y3 = 0.25ex ;
+ numeric temp ;
+ y3 - y2 = temp*(y1 - y2) ;
+ x3 - x2 = 1.1temp*(x2 - x1) ;
+ draw z1 -- z2 ;
+ z1' = z1 + 0.05em*dir(penangle-45) ;
+ draw z1'{dir(penangle+180)} .. {z2-z1}z1 ;
+ bot y4 = round(0.2penwidth*sind penangle) ; x4 = 1/3[x2,x3] ;
+ top y5 = round(ex+0.9desc) ; x5 = 0[x2,x3] ;
+ y6 = ex + 0.2desc ; x6 = 1/2[x5,x3] ;
+ draw z4{dir(penangle+180)} .. z3 .. z2
+ .. tension 3/4 .. z5{left} .. {dir penangle}z6 ;
+ draw z1'{dir penangle} .. {z2 - z1}z1 .. z2 ;
+ labels(1,2,3,4,5,6) ;
+endchar ;
+
+beginchar("#",0.7em#,ex#,desc#) ; "Inverted lambe - w" ;
+ pickup main_nib ;
+ x1 = straight_sidebar = w - x2 ;
+ bot y1 = bot y2 = -0.5desc ;
+ z1' = z1 - 0.04em*dir(penangle) ;
+ z2' = z2 + 0.04em*dir(penangle) ;
+ draw z1'{dir penangle} .. {dir penangle}z2' ;
+ y3 = y1 ; x3 = 0.2[x1,x2] ;
+ rt x4 = w - curve_sidebar ; y4 = 0.8ex - 0.5desc;
+ top y5 = round(ex) ; x5 = 0.6w ;
+ x6 = w - x4 ; y6 = y4 ;
+ z7 = z6 + 0.05em*(left rotated 170) ;
+ draw z3{dir penangle} .. {up}z4 .. z5{left}
+ .. z6 .. {dir(180-penangle)}z7 ;
+ labels(1,2,3,4,5,6,7) ;
+endchar ;
+
+beginchar("%",0.8tinco_width#,ex#,0) ; "The tengwa for u in up" ;
+ pickup main_nib ;
+ top y1 = ex ; rt x1 = w - straight_sidebar ;
+ y2 = 0 ; x2 = x1 ;
+ draw_telco(1,2)("tb") ;
+ y3 = y1 ; x3 = w - x1 ;
+ x4 = x3 ; y4 = 0.3h ;
+ draw_telco(3,4)("t") ;
+ y5 = 0 ; x5 = 0.45w ;
+ x6 = x1 ; y6 = 0.3ex ;
+ draw z4{z4-z3} .. z5 .. z6{dir penangle} ;
+ labels(5,6) ;
+endchar ;
+
+beginchar(9,0.55em#,ex#,0) ; "The schwa tengwa (Pictures plate 48)" ;
+ pickup main_nib ;
+ lft x1 = lft x2 = straight_sidebar ;
+ top y1 = ex ; y2 = 0 ;
+ draw_telco(1,2)("tb") ;
+ y3 = y1 ; rt x3 = w ; %- curve_sidebar ;
+ draw_bar(1,3)("r") ;
+endchar ;
diff --git a/Master/texmf-dist/fonts/source/public/elvish/tengteht.mf b/Master/texmf-dist/fonts/source/public/elvish/tengteht.mf
new file mode 100644
index 00000000000..5984c01f3d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/elvish/tengteht.mf
@@ -0,0 +1,195 @@
+
+beginchar("a",0.3em#,1.5ex#,0) ; "The tehta a" ;
+ pickup tehta_nib ;
+ bot y1 = bot y2 = round(1.35ex) ; lft x1 = 0 = w - rt x2 ;
+ y3 - y1 = round(0.45sqrt(3) * (x2 - x1)) ;
+ x3 = 0.5[x1,x2] ;
+ draw_dot(1) ; draw_dot(2) ; draw_dot(3) ;
+endchar ;
+
+beginchar("O",0.3em#,1.5ex#,0) ; "Inverted a tehta" ;
+ pickup tehta_nib ;
+ bot y3 = round(1.35ex) ; lft x1 = 0 = w - rt x2 ;
+ y1 - y3 = y2 - y3 = round(0.45sqrt(3) * (x2 - x1)) ;
+ x3 = 0.5[x1,x2] ;
+ draw_dot(1) ; draw_dot(2) ; draw_dot(3) ;
+endchar ;
+
+beginchar(25,0.35em#,0,0.5desc#) ; "The dots for y" ; % 25 = ^^Y
+ pickup tehta_nib ;
+ y1 = y2 = -0.3ex ; lft x1 = 0 = w - rt x2 ;
+ draw_dot(1) ; draw_dot(2) ;
+endchar ;
+
+beginchar(26,0.35em#,0,desc#) ; "Low dots for y" ; % 26 = ^^Z
+ pickup tehta_nib ;
+ y1 = y2 = round -0.65ex ; lft x1 = 0 = w - rt x2 ;
+ draw_dot(1) ; draw_dot(2) ;
+endchar ;
+
+beginchar("i",0.1em#,1.4ex#,0) ; "The tehta i" ;
+ pickup tehta_nib ;
+ bot y1 = round(1.35ex) ;
+ x1 = good.x (0.5w) ;
+ draw_dot(1) ;
+endchar ;
+
+beginchar(5,0.1em#,0,0.5desc#) ; "The schwa tehta" ;
+ pickup tehta_nib ;
+ y1 = round(-0.3ex) ;
+ x1 = good.x (0.5w) ;
+ draw_dot(1) ;
+endchar ;
+
+beginchar("e",0.4em#,1.5ex#,0) ; "The tehta e" ;
+ pickup tehta_nib ;
+ y1 = round(1.3ex) ;
+ y2 = (y1 + 0.3ex) ;
+ lft x1 = 0 ; rt x2 = w ;
+ z2' = z2 + 0.05em*dir(penangle+90) ;
+ draw z1 .. tension 10 .. z2 .. {dir(penangle+90)}z2' ;
+endchar ;
+
+%beginchar("o",0.5em#,1.6ex#,0) ; "The tehta o" ;
+% pickup tehta_nib ;
+% y1 = round(1.3ex) ; lft x1 = 0 ;
+% y2 = y1 + 0.3ex ; x2 = 0.7w ;
+% rt x3 = w ; y3 = 0.7[y1,y2] ;
+% x4 = x2 ; y4 = 0.3[y1,y2] ;
+% draw z1 .. tension 4 and 2 .. z2 .. z3{down} .. z4 ;
+%endchar ;
+
+beginchar("o",0.45em#,1.76ex#,0) ; "The tehta o" ;
+ pickup tehta_nib ;
+ y1 = round(1.3ex) ; lft x1 = 0 ;
+ y2 = y1 + 0.4ex ; x2 = 0.7w ;
+ rt x3 = w ; y3 = 0.7[y1,y2] ;
+ x4 = x2 ; y4 = 0.3[y1,y2] ;
+ draw z1 .. tension 4 and 2 .. z2 .. z3{down} .. z4 ;
+endchar ;
+
+beginchar("u",0.5em#,1.9ex#,0) ; "The tehta u" ;
+ pickup tehta_nib ;
+ y1 = round(1.3ex) ; x1 = 0.4w ;
+ rt x2 = w ; y2 = y1 + 0.5ex ;
+ y3 = 1.0[y1,y2] ;
+ x3 = 0.3[x1,x2] ;
+ draw z1 .. tension 4 and 1.5 .. z2 .. {dir (penangle-90)}z3 ;
+endchar ;
+
+beginchar(",",0.2em#,ex#,0) ; "The point ," ;
+ pickup main_nib ;
+ x1 = good.x 0.5w ; y1 = good.y 0.6h ;
+ draw_dot(1) ;
+endchar ;
+
+beginchar(";",0.2em#,ex#,0) ; "The point ;" ;
+ pickup main_nib ;
+ x1 = x2 = good.x 0.5w ; y1 = good.y 0.2h ; y2 = good.y 0.8h ;
+ draw_dot(1) ; draw_dot(2) ;
+endchar ;
+
+beginchar(".",0.5em#,ex#,0) ; "The point ." ;
+ pickup main_nib ;
+ y1 = y3 = good.y 0.2h ; y2 = y4 = 0.8h ;
+ x1 = x2 = w - x3 = w - x4 ; x3 - x1 = y2 - y1 ;
+ forsuffixes s=1,2,3,4: draw_dot(s) ; endfor ;
+endchar ;
+
+beginchar(ditto,0.35em#,1.4ex#,0) ; "The tehta two-dots-above" ;
+ pickup tehta_nib ;
+ y1 = y2 = round(1.35ex) ;
+ lft x1 = 0 = w - rt x2 ;
+ draw_dot(1) ; draw_dot(2) ;
+endchar;
+
+beginchar(2,tinco_width#,0,0.5desc#) ; "The under-bar tehta" ;
+ pickup tehta_nib ;
+ y1 = y2 = round(-0.3ex) ;
+ lft x1 = straight_sidebar = w - rt x2 ;
+ draw_bar(1,2)("rl") ;
+endchar ;
+
+beginchar(3,tinco_width#,0,desc#) ; "Low under-bar" ;
+ pickup tehta_nib ;
+ y1 = y2 = round(-0.65ex) ;
+ lft x1 = straight_sidebar = w - rt x2 ;
+ draw_bar(1,2)("rl") ;
+endchar ;
+
+beginchar(14,tinco_width#,1.5ex#,0) ; "The over-bar tehta" ;
+ pickup tehta_nib ;
+ y1 = y2 = round(1.2ex) ;
+ lft x1 = straight_sidebar = w - rt x2 ;
+ draw_bar(1,2)("rl") ;
+endchar ;
+
+beginchar(15,tinco_width#,1.6ex#,0) ; "The tilde over" ;
+ pickup tehta_nib ;
+ y1 = y2 = 1.35ex ;
+ lft x1 = straight_sidebar = w - rt x2 ;
+ z1' = z1 - ( 0.04em * dir penangle) ;
+ z2' = z2 + ( 0.04em * dir penangle) ;
+ draw z1'{dir penangle} .. z1 .. z2 .. {dir penangle}z2' ;
+endchar ;
+
+beginchar(21,0.5em#,1.7ex#,0) ; "Variant u tehta" ;
+ pickup tehta_nib ;
+ y1 = round(1.3ex) ; lft x1 = 0 ;
+ y2 = y1 + 0.3ex ; x2 = 0.7w ;
+ rt x3 = w ; y3 = 1.5[y1,y2] ;
+ x4 = x2 ; y4 = 1.6[y1,y2] ;
+ draw z1 .. tension 4 and 2 .. z2 .. z3{up} .. z4 ;
+endchar ;
+
+beginchar(22,0.5em#,1.7ex#,0) ; "Beleriand u tehta" ;
+ pickup tehta_nib ;
+ y1 = 1.2ex ; y3 = 1.7ex ;
+ x3 = 0.2w = w - x1 ;
+ y2 = good.y(0.5[y1,y3]) ; x2 = 0.5[x1,x3] ;
+ z1' = z1 + 0.05em*dir(penangle) ;
+ z3' = z3 + 0.05em*dir(penangle+180) ;
+ draw z1 .. z1' .. z2 .. z3' .. z3 ;
+endchar ;
+
+beginchar(19,0.35em#,ex#,0) ; "Raised S hook" ;
+ pickup tehta_nib ;
+ x1 = -0.05em ; top y1 = ex ;
+ rt x2 = w - curve_sidebar ; y2 = y1 - 0.5ex ;
+ x3 = 0.5[x1,x2] ; y3 = 1.1[y1,y2] ;
+ draw z1 .. tension 4 and 2 .. z2{down} .. z3 ;
+endchar ;
+
+beginchar(20,0.35em#,0,desc#) ; "Lowered S hook" ;
+ pickup tehta_nib ;
+ x1 = -0.08em ; y1 = 0 ;
+ rt x2 = w - curve_sidebar ; y2 = y1 - 0.5ex ;
+ x3 = 0.5[x1,x2] ; y3 = 1.1[y1,y2] ;
+ draw z1 .. tension 4 and 2 .. z2{down} .. z3 ;
+endchar ;
+
+beginchar("!",0.5em#,asc#,0) ; "Exclamation mark" ;
+ pickup main_nib ;
+ x1 = x2 = good.x 0.5w ;
+ y1 = 0.8asc ; y2 = 0.2ex ;
+ z1' = z1 + 0.08em*dir(penangle) ;
+ z2' = z2 - 0.08em*dir(penangle) ;
+ draw z1' .. z1 .. tension 4 .. z2 .. z2' ;
+endchar ;
+
+beginchar("?",0.5em#,asc#,0) ; "Question mark" ;
+ pickup main_nib ;
+ lft x1 = round(0.1em) ; top y1 = round(0.9asc) ;
+ x2 = x1 ; y2 = 0.2ex ;
+ draw_telco(1,2)("t") ;
+ z2' = z2 + 0.2em*dir(penangle-150) ;
+ draw z2{z2-z1} .. z2'{dir(penangle+180)} ;
+ x3 = x4 = x5 = x1 ;
+ y5 = 0.0[y2,y1] ; y4 = 0.4[y2,y1] ; y3 = 0.75[y2,y1] ;
+ x6 = good.x(w-0.1em) ; x7 = good.x(w-0.08em) ;
+ y6 = 0.8[y2,y1] ; y7 = 0.47[y2,y1] ;
+ draw z3{dir penangle} ... z6{down} ... z4{dir(penangle+185)} ;
+ draw z4{dir penangle} ... z7{down} ... z5{dir(penangle+185)} ;
+ labels(1,2,3,4,5,6,7) ;
+endchar ;
+
diff --git a/Master/texmf-dist/fonts/source/public/engwar/barcap.mf b/Master/texmf-dist/fonts/source/public/engwar/barcap.mf
new file mode 100644
index 00000000000..f6e9c6df602
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/barcap.mf
@@ -0,0 +1,21 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)bars.mf 1.1 10/1/86
+
+def Overbar=
+begingroup;
+ save x,y;
+ z9 = barpoint;
+ x10 = .7w; top y10=Xht;
+ x11= .2w; top y11=Xht;
+ x12=0; top y12=Xht-1/80em;
+ draw z9..z10{left}..z11{left}..z12;
+endgroup;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/engwar/bars.mf b/Master/texmf-dist/fonts/source/public/engwar/bars.mf
new file mode 100644
index 00000000000..40b45ce674b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/bars.mf
@@ -0,0 +1,33 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)bars.mf 1.1 10/1/86
+
+def underbar=
+begingroup;
+ save x,y;
+ z9 = barpoint;
+ x10 = .5w; y10=0;
+ x11= .8w; y11=0;
+ x12=w; y12=1/80em;
+ draw z9..z10{right}..z11{right}..z12;
+ penlabels(5,6,7,8,9,10,11,12);
+endgroup;
+enddef;
+
+def overbar=
+begingroup;
+ save x,y;
+ z9 = barpoint;
+ x10 = .7w; top y10=xht;
+ x11= .2w; top y11=xht;
+ x12=0; top y12=xht-1/80em;
+ draw z9..z10{left}..z11{left}..z12;
+endgroup;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/engwar/eng.mf b/Master/texmf-dist/fonts/source/public/engwar/eng.mf
new file mode 100644
index 00000000000..9ae98af4c4c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/eng.mf
@@ -0,0 +1,27 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)tiw.mf 1.1 10/1/86
+
+pair bowpoint, barpoint, hookpoint;
+
+input telcor;
+input telcap;
+input luvar;
+input lucap;
+
+input bars;
+input barcap;
+
+input engucase;
+input englcase;
+input engnum;
+input engacc;
+input engpun;
+
+input englig;
diff --git a/Master/texmf-dist/fonts/source/public/engwar/engacc.mf b/Master/texmf-dist/fonts/source/public/engwar/engacc.mf
new file mode 100644
index 00000000000..38fd4a308e5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/engacc.mf
@@ -0,0 +1,174 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)accents.mf 1.1 10/1/86
+
+def centerpt=
+ (w-((w-leadgap)/2), xht+3.2thin)
+enddef;
+
+beginchar (18, shortwidth, cap#, 0); "The grave accent";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h; %z1-z0=whatever*(dir tilt);
+ lft x1 = leadgap;
+ draw z0--z1;
+ endgroup;
+endchar;
+
+beginchar (19, shortwidth, cap#, 0); "The acute accent";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h; %z1-z0=whatever*(dir tilt);
+ rt x1 = w;
+ draw z0--z1;
+ endgroup;
+endchar;
+
+beginchar (20, shortwidth, cap#, 0); "The check accent";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h;
+ rt x1 = w;
+ top y2=h;
+ lft x2 = leadgap;
+ draw z2--z0--z1;
+ endgroup;
+endchar;
+
+beginchar (21, shortwidth, cap#, 0); "The scoop accent";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h;
+ rt x1 = w;
+ top y2=h;
+ lft x2 = leadgap;
+ draw z2..z0..z1;
+ endgroup;
+endchar;
+
+beginchar ("^", shortwidth, cap#, 0); "The character ^";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ x0 = w-((w-leadgap)/2);
+ y0 = xht;
+ rt x1 = w;
+ y1 = xht+3.2thin;
+ y2= y1;
+ lft x2 = leadgap;
+ draw z2--z0--z1;
+ endgroup;
+endchar;
+
+beginchar ("}", shortwidth, cap#, 0); "The double acute accent";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h; %z1-z0=whatever*(dir tilt);
+ rt x1 = w;
+ draw z0--z1;
+ draw ((z0--z1) shifted (2.5*thin*right));
+ endgroup;
+endchar;
+
+
+beginchar ("_", shortwidth, cap#, 0); "The dot-above accent (i)";
+ begingroup;
+ save x,y;
+ pickup pensquare scaled thick rotated 45;
+ z0 = centerpt;
+ drawdot z0;
+ endgroup;
+endchar;
+
+beginchar (127, shortwidth, cap#, 0); "The umlaut accent (double i)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z0 = centerpt;
+ z1 = z0 + thick*left;
+ z2 = z0 + thick*right;
+ drawdot z1; drawdot z2;
+ endgroup;
+endchar;
+
+beginchar ("`", shortwidth, cap#, 0); "The character `";
+ begingroup;
+ save x,y, rightcurl;
+ path rightcurl;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h; x1 = .7[x0, w];
+ rt x2=w; y2 = .7[y0, h];
+ x3 = .8[x0,w]; y1-y2 = y2-y3;
+ rightcurl = (z0..tension 2.0..z1{right}..z2..z3);
+ draw rightcurl;
+ endgroup;
+endchar;
+
+beginchar ("\\", shortwidth, cap#, 0); "left quote";
+ begingroup;
+ save x,y, rightcurl;
+ path rightcurl;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h; x1 = .7[x0, w];
+ rt x2=w; y2 = .7[y0, h];
+ x3 = .8[x0,w]; y1-y2 = y2-y3;
+ rightcurl = (z0..tension 2.0..z1{right}..z2..z3);
+ draw rightcurl;
+ draw (rightcurl shifted (3*thin,0));
+ endgroup;
+endchar;
+
+beginchar ("'", shortwidth, cap#, 0); "The character '";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ z0 = centerpt;
+ lft x1 = 1/3[leadgap, x0]; top y1 = 3/4[y0,h];
+ top y2 = h; x2 = x0;
+ y3 = y1; x3-x0 = x0-x1;
+ draw z1..z2{right}..z0{down};
+ endgroup;
+endchar;
+
+beginchar (oct"042", shortwidth, cap#, 0); "The right quote";
+ begingroup;
+ save x,y, leftcurl;
+ path leftcurl;
+ pickup elvishpen;
+ z0 = centerpt;
+ lft x1 = 1/3[leadgap, x0]; top y1 = 3/4[y0,h];
+ top y2 = h; x2 = x0;
+ y3 = y1; x3-x0 = x0-x1;
+ leftcurl = (z1..z2{right}..z0{down});
+ draw leftcurl;
+ draw leftcurl shifted ((x1-x0)*right);
+ endgroup;
+endchar;
+
+beginchar (22, shortwidth, .5[xht#,cap#], 0); "Short top bar";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ lft x0 = leadgap; rt x1 = w;
+ y0=y1=h;
+ draw z0--z1;
+ endgroup;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/engwar/englcase.mf b/Master/texmf-dist/fonts/source/public/engwar/englcase.mf
new file mode 100644
index 00000000000..b346dc88fca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/englcase.mf
@@ -0,0 +1,307 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)letters.mf 1.1 10/1/86
+
+beginchar("a", shortwidth,xht#,0); "The letter a";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint, leadgap, false);
+ overbar;
+endchar;
+
+beginchar("b", shortwidth, cap#, 0); "the letter b";
+ pickup elvishpen;
+ telco(leadgap, longstem, stemdepth);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+beginchar ("c",shortwidth, xht#, 0); "The letter c";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ top y1= h; x1 = .75[leadgap, w];
+ lft x2= leadgap; y2= .4h;
+ bot y3= 0; x3= .5[leadgap, w];
+ y4= .2h; rt x4=w;
+ draw z1..z2{down}..z3{right}..z4;
+ endgroup;
+endchar;
+
+beginchar("d", shortwidth,cap#,0); "The letter d";
+ pickup elvishpen;
+ nutelco(w,longstem, stemdepth);
+ nuluva (bowpoint, leadgap, false);
+ overbar;
+endchar;
+
+beginchar ("e",shortwidth, xht#, 0); "The letter e";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ top y1= h; x1 = .75[leadgap, w];
+ lft x2= leadgap; y2= .4h;
+ bot y3= 0; x3= .5[leadgap, w];
+ y4= .2h; rt x4=w;
+ z0 = .5[z2, z3];
+ draw z0--z1..z2{down}..z3{right}..z4;
+ endgroup;
+endchar;
+
+beginchar("f", shortwidth,xht#,dep#); "The letter f";
+ pickup elvishpen;
+ telco(leadgap,shortstem, stemdepth);
+ z1 = bowpoint;
+ rt x2 = w;
+ y2 = y1;
+ draw z1--z2;
+ underbar;
+endchar;
+
+beginchar("g", shortwidth,xht#,dep#); "The letter g";
+ pickup elvishpen;
+
+ luva ((w, h), leadgap, false);
+ path sweep;
+ lft x0 = leadgap; top y0 = h;
+ lft x1 = 0; z0-z1 = whatever*(dir tilt);
+ x2 = .75w; top y2=h;
+ rt x3 = w; y3 = .5h;
+ lft x4 = leadgap; y4 = -.65d;
+ x5 = .5w; y5 = -d;
+ x6 = .85w; z6-z5 = whatever*(dir tilt);
+ sweep = (z2..z3{down}..z4{down}..z5{right}..z6);
+ z7 = sweep intersectionpoint
+ ((-infinity,0)--(infinity,0));
+ draw sweep;
+endchar;
+
+beginchar("h", shortwidth,cap#, 0); "the letter h";
+ pickup elvishpen;
+ telco(leadgap, longstem, stemdepth);
+ luva (bowpoint, w, true);
+endchar;
+
+def commoncarrier=
+ pickup elvishpen;
+ x0=x1-thick; top y0=h;
+ x1=1/2[leadgap,w]; y1=y0;
+ x2=x1; y2=-d/2;
+ x3=x0; y3=-d;
+ draw z0--z1{down}..z2{down}..z3;
+enddef;
+
+beginchar (16,3*leadgap#,xht#,.2dep#); "The dotless letter i";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ endgroup;
+endchar;
+
+beginchar ("i",3*leadgap#,xht#,.2dep#); "The letter i";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ x4 = x1; y4 = y1 + 2*thick;
+ pickup pensquare scaled thick rotated 45;
+ drawdot z4;
+ endgroup;
+endchar;
+
+beginchar (17,3*leadgap#,xht#,dep#); "The dotless letter j";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ endgroup;
+endchar;
+
+beginchar ("j",3*leadgap#,xht#,dep#); "The letter j";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ x4 = x1; y4 = y1 + 2*thick;
+ pickup pensquare scaled thick rotated 45;
+ drawdot z4;
+ endgroup;
+endchar;
+
+beginchar ("k", shortwidth,cap#,0); "The letter k";
+ pickup elvishpen;
+ telco(leadgap, longstem, stemdepth);
+ lft x1 = leadgap; bot y1 = 0;
+ rt x2 = w; top y2 = xht;
+ lft x4 = w; bot y4 = 0;
+ draw z1..{right}z2;
+ draw z1{z2 - z1}..{down}z4;
+endchar;
+
+beginchar ("l",3*leadgap#,cap#,0); "The letter l";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ endgroup;
+endchar;
+
+beginchar ("m", 1em#, xht#, 0); "the letter m";
+ pickup elvishpen;
+ telco(leadgap, shortstem, stemdepth);
+ luva (bowpoint, bowsize*em, false);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+beginchar ("n", shortwidth, xht#, 0); "the letter n";
+ pickup elvishpen;
+ telco (leadgap, shortstem, stemdepth);
+ luva (bowpoint, w, true);
+endchar;
+
+beginchar ("o", shortwidth, xht#, 0); "The letter o";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ lft x0 = leadgap;
+ top y1 = h;
+ rt x2 = w;
+ bot y3 = 0;
+ y0 = .65h; x1 = leadgap+.35w;
+ y2 = .35h; x3 = leadgap+.65w;
+ draw z0..z1..z2..z3..cycle;
+ endgroup;
+endchar;
+
+beginchar("p", shortwidth,xht#,dep#); "The letter p";
+ pickup elvishpen;
+ telco(leadgap,shortstem, stemdepth);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+beginchar("q", shortwidth,xht#,dep#); "The letter q";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint, 0, false);
+ overbar;
+endchar;
+
+beginchar ("r", shortwidth, xht#, 0); "the letter r";
+ pickup elvishpen;
+ telco (leadgap, shortstem, stemdepth);
+ z5 = bowpoint;
+ top y6=xht; x6=.5[x5,w];
+ rt x7=w; y7=.47xht;
+ draw z5..z6..{down}z7;
+endchar;
+
+beginchar("s", shortwidth,xht#,0); "The letter s";
+ hthick := 3thick/4; hthin := 3thin/4;
+ pickup pencircle xscaled hthick yscaled hthin rotated tilt;
+ x1 = x2 = x3 = .5[leadgap,w];
+ top y1 = h;
+ y2 = .5[y1, y3];
+ bot y3 = 0;
+ y4 = y3;
+ y5 = y1;
+ lft x4 = leadgap;
+ rt x5 = w;
+ x6 = x4; y6 = y5;
+ x7 = x5; y7 = y4;
+ draw z5..{left}z1..z6..z2..z7..{left}z3..z4;
+endchar;
+
+beginchar("t", 3*leadgap#,cap#,0); "The letter t";
+ pickup elvishpen;
+ telco(.5[leadgap,w],longstem, stemdepth);
+ lft x1 = 0; y1 = xht + thick;
+ x2 = w;
+ y2 = y1;
+ draw z1--z2;
+endchar;
+
+beginchar("u", shortwidth,xht#,0); "The letter u";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint, leadgap, true);
+endchar;
+
+
+beginchar("v", shortwidth, xht#, 0); "The letter v";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ top y0 = 0; x0=.5[0, w];
+ lft x1 = 0; y1=h;
+ y2=h; rt x2=w;
+ y3=y0; x3=x0-.7thick;
+ z4-z1 = whatever*(z0-z2);
+ x1-x4=.2thin;
+ z6-z2 = whatever*(z0-z1);
+ x6=w;
+ draw z3..z0--z2..z6;
+ draw z4..z1--z0;
+ endgroup;
+endchar;
+
+beginchar("w", 1em#,xht#,0); "The letter w";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint,w-bowsize*em+leadgap, true);
+ nuluva (bowpoint, leadgap, true);
+endchar;
+
+beginchar("x", shortwidth,xht#,0); "The letter x";
+ pickup elvishpen;
+ lft x1 = leadgap;
+ rt x2 = w;
+ x3 = x1;
+ x4 = x2;
+ top y1 = h;
+ bot y2 = 0;
+ y3 = y2;
+ y4 = y1;
+ draw z1{right}..{right}z2;
+ draw z3{right}..{right}z4;
+endchar;
+
+def commonr=
+ pickup elvishpen;
+ save x,y,sweep;
+ path sweep;
+ lft x0 = leadgap; top y0 = h;
+ lft x1 = 0; z0-z1 = whatever*(dir tilt);
+ x2 = .75w; top y2=h;
+ rt x3 = w; y3 = .5h;
+ lft x4 = leadgap; y4 = -.65d;
+ x5 = .5w; y5 = -d;
+ x6 = .85w; z6-z5 = whatever*(dir tilt);
+ sweep = (z2..z3{down}..z4{down}..z5{right}..z6);
+ z7 = sweep intersectionpoint
+ ((-infinity,0)--(infinity,0));
+ draw sweep;
+ draw z1--z0..z7;
+enddef;
+
+beginchar("y", shortwidth, xht#, dep#); "The letter y";
+ begingroup;
+ commonr;
+ endgroup;
+endchar;
+
+beginchar("z", shortwidth,xht#,0); "The letter z";
+ pickup elvishpen;
+ lft x1 = leadgap;
+ rt x2 = w;
+ x3 = x1;
+ x4 = x2;
+ top y1 = h;
+ bot y2 = 0;
+ y3 = y2;
+ y4 = y1;
+ draw z1--z4--z3--z2;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/engwar/englig.mf b/Master/texmf-dist/fonts/source/public/engwar/englig.mf
new file mode 100644
index 00000000000..70d3fd76722
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/englig.mf
@@ -0,0 +1,15 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)ligtable.mf 1.1 10/1/86
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042";
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
diff --git a/Master/texmf-dist/fonts/source/public/engwar/engnum.mf b/Master/texmf-dist/fonts/source/public/engwar/engnum.mf
new file mode 100644
index 00000000000..a762514d4b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/engnum.mf
@@ -0,0 +1,115 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)numbers.mf 1.1 10/1/86
+
+beginchar("0", shortwidth,cap#,0); "The number 0";
+ pickup elvishpen;
+ x1 = x3 = .5[leadgap,w];
+ y2 = y4 = .5[h,0];
+ top y1 = h; bot y3 = 0;
+ lft x4 = leadgap; rt x2 = w;
+ draw z1..z2..z3..z4..cycle;
+endchar;
+
+beginchar("1", shortwidth,cap#,0); "The number 1";
+ pickup elvishpen;
+ x1 = x2 = .5[leadgap,w];
+ top y1 = h; bot y2 = 0;
+ draw z1..z2;
+endchar;
+
+beginchar("2", shortwidth,cap#,0); "The number 2";
+ pickup elvishpen;
+ lft x1 = leadgap; y1 = .5[0,h];
+ x2 = .5[leadgap,w]; top y2 = h;
+ bot y3 = 0; lft x3 = leadgap;
+ y4 = y3; rt x4 = w;
+ draw z1{up}..z2{right}..{down}z3--z4;
+endchar;
+
+beginchar("3", shortwidth,cap#,0); "The number 3";
+ hthick := 3thick/4; hthin := 3thin/4;
+ pickup pencircle xscaled hthick yscaled hthin rotated tilt;
+ x1 = x2 = x3 = leadgap;
+ top y1 = h; bot y3 = 0; y2 = xht;
+ rt x4 = w; x5 = x4;
+ y4 = .5[y1,y2]; y5 = .5[y2,y3];
+ draw z1{right}..z4..{left}z2;
+ draw z2{right}..z5..{left}z3;
+endchar;
+
+beginchar("4", shortwidth,cap#,0); "The number 4";
+ pickup elvishpen;
+ rt x1 = w; x2 = x1 = x4;
+ bot y1 = 0; top y2 = h;
+ lft x3 = leadgap; y3 = y4 = xht;
+ draw z1--z2--z3--z4;
+endchar;
+
+beginchar("5", shortwidth,cap#,0); "The number 5";
+ hthick := 3thick/4; hthin := 3thin/4;
+ pickup pencircle xscaled hthick yscaled hthin rotated tilt;
+ rt x1 = w; top y1 = h;
+ lft x2 = leadgap; y2 = y1;
+ x3 = x2; y3 = xht;
+ x4 = x1; y4 = .5[y3,y5];
+ x5 = x3; bot y5 = 0;
+ draw z1--z2--z3..z4..z5;
+endchar;
+
+beginchar("6", shortwidth,cap#,0); "The number 6";
+ hthick := 3thick/4; hthin := 3thin/4;
+ pickup pencircle xscaled hthick yscaled hthin rotated tilt;
+ x1 = x3 = x5 = .5[leadgap, w];
+ lft x2 = lft x6 = leadgap;
+ rt x7 = rt x4 = w;
+ top y1 = h;
+ y2 = y7 = .5[y1,y3];
+ y3 = xht;
+ y6 = y4 = .5[y5,y3];
+ bot y5 = 0;
+ draw z7..z1..z2---z6..z5..z4..z3..{down}z6;
+endchar;
+
+beginchar("7", shortwidth,cap#,0); "The number 7";
+ pickup elvishpen;
+ lft x1 = leadgap; top y1 = h;
+ rt x2 = w; y2 = y1;
+ x3 = x1; bot y3 = 0;
+ draw z1--z2..{down}z3;
+endchar;
+
+beginchar("8", shortwidth,cap#,0); "The number 8";
+ hthick := 3thick/4; hthin := 3thin/4;
+ pickup pencircle xscaled hthick yscaled hthin rotated tilt;
+ x1 = x3 = x5 = .5[leadgap, w];
+ lft x2 = lft x6 = leadgap;
+ rt x7 = rt x4 = w;
+ top y1 = h;
+ y2 = y7 = .5[y1,y3];
+ y3 = xht;
+ y6 = y4 = .5[y5,y3];
+ bot y5 = 0;
+ draw z1..z2..z3..z4..z5..z6..z3..z7..cycle;
+endchar;
+
+beginchar("9", shortwidth,cap#,0); "The number 9";
+ hthick := 3thick/4; hthin := 3thin/4;
+ pickup pencircle xscaled hthick yscaled hthin rotated tilt;
+ x1 = x3 = x5 = .5[leadgap, w];
+ lft x2 = lft x6 = leadgap;
+ rt x7 = rt x4 = w;
+ top y1 = h;
+ y2 = y7 = .5[y1,y3];
+ y3 = xht;
+ y6 = y4 = .5[y5,y3];
+ bot y5 = 0;
+ lft x8 = leadgap; bot y8 = 0;
+ draw z8{up}..{up}z7..z1..z2..z3..{up}z7;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/engwar/engpun.mf b/Master/texmf-dist/fonts/source/public/engwar/engpun.mf
new file mode 100644
index 00000000000..ca188c8229b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/engpun.mf
@@ -0,0 +1,163 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)punctuation.mf 1.1 10/1/86
+
+beginchar ("(", 3*leadgap#, cap#, 0); "The character (";
+ x1 = x3 = w;
+ x2 = leadgap;
+ y1 = h;
+ y2 = .5[y1,y3];
+ y3 = 0;
+ pickup elvishpen;
+ draw z1..z2..z3;
+endchar;
+
+beginchar (")", 3*leadgap#, cap#, 0); "The character )";
+ x1 = x3 = leadgap;
+ x2 = w;
+ y1 = h;
+ y2 = .5[y1,y3];
+ y3 = 0;
+ pickup elvishpen;
+ draw z1..z2..z3;
+endchar;
+
+beginchar (",", 3*leadgap#, xht#, 0); "The punctuation comma (one dot)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z1 = (1/2w, h/2);
+ drawdot z1;
+ endgroup;
+endchar;
+
+beginchar (";", 2*leadgap#, xht#, 0); "The punctuation semicolon (two dots)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z1 = (w/2, h-2thin);
+ z2 = (w/2, 2thin);
+ drawdot z1;
+ drawdot z2;
+ endgroup;
+endchar;
+
+beginchar (".", 3*leadgap#, xht#, 0); "The punctuation period (four dots)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z1 = (w/3, h-2thin);
+ z2 = (w/3, 2thin);
+ z3 = (w, h-2thin);
+ z4 = (w, 2thin);
+ drawdot z1;
+ drawdot z2;
+ drawdot z3;
+ drawdot z4;
+ endgroup;
+endchar;
+
+beginchar ("!", .7shortwidth, cap#, 0); "The exclamation point";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ rt x1 = w; top y1=h; bot y4=2thick;
+ y2 = y3 = .5[y1,y4];
+ z1-z2 = z3-z4 = whatever*(dir 40);
+ x4 = leadgap;
+ draw z1..controls z2 and z3..z4;
+ pickup pensquare scaled thick rotated 45;
+ z5 = (leadgap + .5thick, thick);
+ drawdot z5;
+ endgroup;
+endchar;
+
+beginchar ("?", .7shortwidth, cap#, 0); "The question mark";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ z1 = (leadgap, h);
+ top y2 = h; x2 = .6[leadgap, w];
+ rt x3 = w; y3 = .7(h - xht) + xht;
+ lft x4 = leadgap; bot y4 = xht;
+ lft x6 = leadgap; y6 = 2thick;
+ draw z1..tension 2.0..z2..z3..z4--z6;
+ pickup pensquare scaled thick rotated 45;
+ z5 = (leadgap + .5thick, thick);
+ drawdot z5;
+ endgroup;
+endchar;
+
+beginchar ("-", shortwidth, xht#, 0); "The dash (tilde)";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ x1 = leadgap;
+ x4 = w;
+ y1 = .4h; y4 = .6h;
+ z2-z1 = z4-z3 = whatever*(dir tilt);
+ y2-y1 = 3 (y4-y1);
+ draw z1..controls z2 and z3..z4;
+ endgroup;
+endchar;
+
+beginchar (oct"173", 1.5*shortwidth, xht#, 0); "en dash";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ x1 = leadgap;
+ x4 = w;
+ y1 = .4h; y4 = .6h;
+ z2-z1 = z4-z3 = whatever*(dir tilt);
+ y2-y1 = 3 (y4-y1);
+ draw z1..controls z2 and z3..z4;
+ endgroup;
+endchar;
+
+beginchar (oct"174", 3*shortwidth, xht#, 0); "em dash";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ x1 = leadgap;
+ x4 = w;
+ y1 = .4h; y4 = .6h;
+ z2-z1 = z4-z3 = whatever*(dir tilt);
+ y2-y1 = 3 (y4-y1);
+ draw z1..controls z2 and z3..z4;
+ endgroup;
+endchar;
+
+beginchar ("=", shortwidth, xht#, 0); "The equals";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ x1 = leadgap;
+ x4 = w;
+ y1 = .8h; y4 = 1h;
+ z2-z1 = z4-z3 = whatever*(dir tilt);
+ y2-y1 = 3 (y4-y1);
+ draw z1..controls z2 and z3..z4;
+ x5 = x1; x6 = x2; x7 = x3; x8 = x4;
+ y5 = y1 - 2thick; y6 = y2 - 2thick; y7 = y3 - 2thick; y8 = y4 - 2thick;
+ draw z5..controls z6 and z7..z8;
+ endgroup;
+endchar;
+
+beginchar ("~", shortwidth, cap#, 0); "The tilde";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ x1 = leadgap;
+ x4 = w;
+ y1 = .8h; y4 = .7h;
+ z2-z1 = z4-z3 = whatever*(dir tilt);
+ y2-y1 = 3 (y4-y1);
+ draw z1..controls z2 and z3..z4;
+ endgroup;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/engwar/engucase.mf b/Master/texmf-dist/fonts/source/public/engwar/engucase.mf
new file mode 100644
index 00000000000..e83d933e09d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/engucase.mf
@@ -0,0 +1,287 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)letters.mf 1.1 10/1/86
+
+beginchar("A", shortwidth,Xht#,0); "The letter a";
+ pickup elvishpen;
+ Nutelco(w,shortstem, stemdepth);
+ Nuluva (bowpoint, leadgap, false);
+ Overbar;
+endchar;
+
+beginchar("B", shortwidth, cap#, 0); "the letter b";
+ pickup elvishpen;
+ Telco(leadgap, longstem, stemdepth);
+ Luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+beginchar ("C",shortwidth, Xht#, 0); "The letter c";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ top y1= h; x1 = .75[leadgap, w];
+ lft x2= leadgap; y2= .4h;
+ bot y3= 0; x3= .5[leadgap, w];
+ y4= .2h; rt x4=w;
+ draw z1..z2{down}..z3{right}..z4;
+ endgroup;
+endchar;
+
+beginchar("D", shortwidth,cap#,0); "The letter d";
+ pickup elvishpen;
+ Nutelco(w,longstem, stemdepth);
+ Nuluva (bowpoint, leadgap, false);
+ Overbar;
+endchar;
+
+beginchar ("E",shortwidth, Xht#, 0); "The letter e";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ top y1= h; x1 = .75[leadgap, w];
+ lft x2= leadgap; y2= .4h;
+ bot y3= 0; x3= .5[leadgap, w];
+ y4= .2h; rt x4=w;
+ z0 = .5[z2, z3];
+ draw z0--z1..z2{down}..z3{right}..z4;
+ endgroup;
+endchar;
+
+beginchar("F", shortwidth,Xht#,dep#); "The letter f";
+ pickup elvishpen;
+ Telco(leadgap,shortstem, stemdepth);
+ z1 = bowpoint;
+ rt x2 = w;
+ y2 = y1;
+ draw z1--z2;
+ underbar;
+endchar;
+
+beginchar("G", shortwidth,Xht#,dep#); "The letter g";
+ pickup elvishpen;
+
+ Luva ((w, h), leadgap, false);
+ path sweep;
+ lft x0 = leadgap; top y0 = h;
+ lft x1 = 0; z0-z1 = whatever*(dir tilt);
+ x2 = .75w; top y2=h;
+ rt x3 = w; y3 = .5h;
+ lft x4 = leadgap; y4 = -.65d;
+ x5 = .5w; y5 = -d;
+ x6 = .85w; z6-z5 = whatever*(dir tilt);
+ sweep = (z2..z3{down}..z4{down}..z5{right}..z6);
+ z7 = sweep intersectionpoint
+ ((-infinity,0)--(infinity,0));
+ draw sweep;
+endchar;
+
+beginchar("H", shortwidth,cap#, 0); "the letter h";
+ pickup elvishpen;
+ Telco(leadgap, longstem, stemdepth);
+ Luva (bowpoint, w, true);
+endchar;
+
+def commoncarrier=
+ pickup elvishpen;
+ x0=x1-thick; top y0=h;
+ x1=1/2[leadgap,w]; y1=y0;
+ x2=x1; y2=-d/2;
+ x3=x0; y3=-d;
+ draw z0--z1{down}..z2{down}..z3;
+enddef;
+
+beginchar ("I",3*leadgap#,Xht#,.2dep#); "The letter i";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ endgroup;
+endchar;
+
+beginchar ("J",3*leadgap#,Xht#,dep#); "The letter j";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ endgroup;
+endchar;
+
+beginchar ("K", shortwidth,cap#,0); "The letter k";
+ pickup elvishpen;
+ Telco(leadgap, longstem, stemdepth);
+ lft x1 = leadgap; bot y1 = 0;
+ rt x2 = w; top y2 = Xht;
+ lft x4 = w; bot y4 = 0;
+ draw z1..{right}z2;
+ draw z1{z2 - z1}..{down}z4;
+endchar;
+
+beginchar ("L",3*leadgap#,cap#,.2dep#); "The letter l";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ endgroup;
+endchar;
+
+beginchar ("M", 1em#, Xht#, 0); "the letter m";
+ pickup elvishpen;
+ Telco(leadgap, shortstem, stemdepth);
+ Luva (bowpoint, bowsize*em, false);
+ Luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+beginchar ("N", shortwidth, Xht#, 0); "the letter n";
+ pickup elvishpen;
+ Telco (leadgap, shortstem, stemdepth);
+ Luva (bowpoint, w, true);
+endchar;
+
+beginchar ("O", shortwidth, Xht#, 0); "The letter o";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ lft x0 = leadgap;
+ top y1 = h;
+ rt x2 = w;
+ bot y3 = 0;
+ y0 = .65h; x1 = leadgap+.35w;
+ y2 = .35h; x3 = leadgap+.65w;
+ draw z0..z1..z2..z3..cycle;
+ endgroup;
+endchar;
+
+beginchar("P", shortwidth,Xht#,dep#); "The letter p";
+ pickup elvishpen;
+ Telco(leadgap,shortstem, stemdepth);
+ Luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+beginchar("Q", shortwidth,Xht#,dep#); "The letter q";
+ pickup elvishpen;
+ Nutelco(w,shortstem, stemdepth);
+ Nuluva (bowpoint, 0, false);
+ Overbar;
+endchar;
+
+beginchar ("R", shortwidth, Xht#, 0); "the letter r";
+ pickup elvishpen;
+ Telco (leadgap, shortstem, stemdepth);
+ z5 = bowpoint;
+ top y6=Xht; x6=.5[x5,w];
+ rt x7=w; y7=.47Xht;
+ draw z5..z6..{down}z7;
+endchar;
+
+beginchar("S", shortwidth,Xht#,0); "The letter s";
+ hthick := 3thick/4; hthin := 3thin/4;
+ pickup pencircle xscaled hthick yscaled hthin rotated tilt;
+ x1 = x2 = x3 = .5[leadgap,w];
+ top y1 = h;
+ y2 = .5[y1, y3];
+ bot y3 = 0;
+ y4 = y3;
+ y5 = y1;
+ lft x4 = leadgap;
+ rt x5 = w;
+ x6 = x4; y6 = y5;
+ x7 = x5; y7 = y4;
+ draw z5..{left}z1..z6..z2..z7..{left}z3..z4;
+endchar;
+
+beginchar("T", 3*leadgap#,cap#,0); "The letter t";
+ pickup elvishpen;
+ Telco(.5[leadgap,w],longstem, stemdepth);
+ lft x1 = 0; y1 = Xht;
+ x2 = w;
+ y2 = y1;
+ draw z1--z2;
+endchar;
+
+beginchar("U", shortwidth,Xht#,0); "The letter u";
+ pickup elvishpen;
+ Nutelco(w,shortstem, stemdepth);
+ Nuluva (bowpoint, leadgap, true);
+endchar;
+
+
+beginchar("V", shortwidth, Xht#, 0); "The letter v";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ top y0 = 0; x0=.5[0, w];
+ lft x1 = 0; y1=h;
+ y2=h; rt x2=w;
+ y3=y0; x3=x0-.7thick;
+ z4-z1 = whatever*(z0-z2);
+ x1-x4=.2thin;
+ z6-z2 = whatever*(z0-z1);
+ x6=w;
+ draw z3..z0--z2..z6;
+ draw z4..z1--z0;
+ endgroup;
+endchar;
+
+beginchar("W", 1em#,Xht#,0); "The letter w";
+ pickup elvishpen;
+ Nutelco(w,shortstem, stemdepth);
+ Nuluva (bowpoint,w-bowsize*em+leadgap, true);
+ Nuluva (bowpoint, leadgap, true);
+endchar;
+
+beginchar("X", shortwidth,Xht#,0); "The letter x";
+ pickup elvishpen;
+ lft x1 = leadgap;
+ rt x2 = w;
+ x3 = x1;
+ x4 = x2;
+ top y1 = h;
+ bot y2 = 0;
+ y3 = y2;
+ y4 = y1;
+ draw z1{right}..{right}z2;
+ draw z3{right}..{right}z4;
+endchar;
+
+def commonr=
+ pickup elvishpen;
+ save x,y,sweep;
+ path sweep;
+ lft x0 = leadgap; top y0 = h;
+ lft x1 = 0; z0-z1 = whatever*(dir tilt);
+ x2 = .75w; top y2=h;
+ rt x3 = w; y3 = .5h;
+ lft x4 = leadgap; y4 = -.65d;
+ x5 = .5w; y5 = -d;
+ x6 = .85w; z6-z5 = whatever*(dir tilt);
+ sweep = (z2..z3{down}..z4{down}..z5{right}..z6);
+ z7 = sweep intersectionpoint
+ ((-infinity,0)--(infinity,0));
+ draw sweep;
+ draw z1--z0..z7;
+enddef;
+
+beginchar("Y", shortwidth, Xht#, dep#); "The letter y";
+ begingroup;
+ commonr;
+ endgroup;
+endchar;
+
+beginchar("Z", shortwidth,Xht#,0); "The letter z";
+ pickup elvishpen;
+ lft x1 = leadgap;
+ rt x2 = w;
+ x3 = x1;
+ x4 = x2;
+ top y1 = h;
+ bot y2 = 0;
+ y3 = y2;
+ y4 = y1;
+ draw z1--z4--z3--z2;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/engwar/engwar.mf b/Master/texmf-dist/fonts/source/public/engwar/engwar.mf
new file mode 100644
index 00000000000..af4194cf779
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/engwar.mf
@@ -0,0 +1,58 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)tengwar.mf 1.1 10/1/86
+
+mode_setup;
+em#:=10pt#; cap#=.8em#; dep#=.4em#; xht#=.4em#;
+Xht#=.6em#;
+shortwidth := .6em#;
+
+thick#:=9/80em#; thin#:=3/80em#;
+leadgap# := .1em#;
+bowstart#= .66xht#;
+Bowstart#= .66Xht#;
+serifthick# := 1.1thick#;
+
+tilt:=50; seriftilt := 110; botseriftilt:=80;
+shortstem := .7;
+longstem := .85;
+stemdepth := .9;
+bowsize := .58;
+
+define_pixels(em,cap,dep,xht,Xht,bowstart,Bowstart);
+define_pixels(thin,thick,serifthick,leadgap);
+
+pen elvishpen; elvishpen = pencircle xscaled thick yscaled thin rotated tilt;
+
+%
+% Because even "tall" characters want to be accented in the same place,
+% but because we want to use "h" in "beginchar" definitions
+% in a typical plain-MF way,
+% we force all characters to have a character height of xht#. This is
+% something a kludge, and makes tall characters stick into preceding lines
+% when the baselines aren't sufficiently separated. But that's how the
+% title-page inscription looks anyway.
+%
+let oldendchar = endchar;
+def endchar=
+ charht := xht#;
+ oldendchar;
+enddef;
+
+input eng;
+
+font_normal_space .45em#;
+font_normal_stretch .22em#;
+font_normal_shrink .15em#;
+font_x_height xht#;
+font_quad 1em#;
+font_extra_space 1/6em#;
+designsize:=1em#;
+
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/engwar/lucap.mf b/Master/texmf-dist/fonts/source/public/engwar/lucap.mf
new file mode 100644
index 00000000000..04a1fa5e5a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/lucap.mf
@@ -0,0 +1,50 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)luvar.mf 1.1 10/1/86
+
+def Luva(expr startpt, endx, looped) =
+begingroup;
+ save x,y;
+ z5 = startpt;
+ top y6=Xht; x6=.5[x5,endx];
+ rt x7=endx; y7=.47Xht;
+ if looped :
+ bot y8 =0; x8=1/4[x6,endx];
+ y9 = .7thick; z9=whatever*(dir (tilt+90))+z8;
+ draw z5..z6..z7{down}..z8{left}..z9; % lu'va (bow)
+ else:
+ bot y8 =0; x8=.7[x6,endx];
+ draw z5..z6..z7{down}..z8;%{dir (tilt+180)};
+ fi;
+ bowpoint:= z7;
+ hookpoint := z8;
+ penlabels(5,6,7,8,9);
+endgroup;
+enddef;
+
+def Nuluva(expr startpt, endx, looped) =
+begingroup;
+ save x,y;
+ z5 = startpt;
+ bot y6=0; x6=.5[x5,endx];
+ lft x7=endx; y7=.45Xht;
+ if looped :
+ top y8 =Xht; x8=1/4[x6,endx];
+ y9 = Xht-.7thick; z9=whatever*(dir (tilt-90))+z8;
+ draw z5..z6..z7{up}..z8{right}..z9; % lu'va (bow)
+ else:
+ top y8 =Xht; x8=.7[x6,endx];
+ draw z5..z6..z7{up}..z8;%{dir (tilt)};
+ fi;
+ bowpoint:= z7;
+ hookpoint := z8;
+ penlabels(5,6,7,8,9);
+endgroup;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/engwar/luvar.mf b/Master/texmf-dist/fonts/source/public/engwar/luvar.mf
new file mode 100644
index 00000000000..a7a5faa74b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/luvar.mf
@@ -0,0 +1,50 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)luvar.mf 1.1 10/1/86
+
+def luva(expr startpt, endx, looped) =
+begingroup;
+ save x,y;
+ z5 = startpt;
+ top y6=xht; x6=.5[x5,endx];
+ rt x7=endx; y7=.47xht;
+ if looped :
+ bot y8 =0; x8=1/4[x6,endx];
+ y9 = .7thick; z9=whatever*(dir (tilt+90))+z8;
+ draw z5..z6..z7{down}..z8{left}..z9; % lu'va (bow)
+ else:
+ bot y8 =0; x8=.7[x6,endx];
+ draw z5..z6..z7{down}..z8;%{dir (tilt+180)};
+ fi;
+ bowpoint:= z7;
+ hookpoint := z8;
+ penlabels(5,6,7,8,9);
+endgroup;
+enddef;
+
+def nuluva(expr startpt, endx, looped) =
+begingroup;
+ save x,y;
+ z5 = startpt;
+ bot y6=0; x6=.5[x5,endx];
+ lft x7=endx; y7=.45xht;
+ if looped :
+ top y8 =xht; x8=1/4[x6,endx];
+ y9 = xht-.7thick; z9=whatever*(dir (tilt-90))+z8;
+ draw z5..z6..z7{up}..z8{right}..z9; % lu'va (bow)
+ else:
+ top y8 =xht; x8=.7[x6,endx];
+ draw z5..z6..z7{up}..z8;%{dir (tilt)};
+ fi;
+ bowpoint:= z7;
+ hookpoint := z8;
+ penlabels(5,6,7,8,9);
+endgroup;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/engwar/telcap.mf b/Master/texmf-dist/fonts/source/public/engwar/telcap.mf
new file mode 100644
index 00000000000..6bd729fb899
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/telcap.mf
@@ -0,0 +1,52 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)telcor.mf 1.1 10/1/86
+
+def Telco (expr posn, stemtop, stembottom) =
+ begingroup;
+ save x,y,stem;
+ path stem;
+ y0 = stemtop*h;
+ lft x0 = posn;
+ y1 = h; z1-z0=whatever*dir(seriftilt);
+ x3 = x0; y3 = -stembottom*d;
+ y4 = -d; z3-z4=whatever*dir(180-seriftilt);
+ stem = z1..tension 3.0..z0{down}..z3{down}..z4;
+ draw stem;
+ bowpoint := stem intersectionpoint
+ ((-infinity,Bowstart)--(infinity, Bowstart));
+ barpoint := stem intersectionpoint
+ ((-infinity,0)--(infinity, 0));
+ penlabels(0,1,2,3,4);
+ endgroup;
+enddef;
+
+def Nutelco (expr posn, stemtop, stembottom) =
+ begingroup;
+ save x,y,stem;
+ path stem;
+ y0 = stemtop*h;
+ rt x0 = posn;
+ y1 = h; z1-z0=whatever*dir(seriftilt);
+ x3 = x0; y3 = -stembottom*d;
+ y4 = -d; z3-z4=whatever*dir(seriftilt);
+ stem = z1..tension 3.0..z0{down}..z3--z4;
+ draw stem;
+ bowpoint := stem intersectionpoint
+ ((-infinity, Xht-Bowstart)--(infinity, Xht-Bowstart));
+ if y0 > Xht :
+ barpoint := stem intersectionpoint
+ ((-infinity, Xht)--(infinity, Xht));
+ else :
+ barpoint := z0;
+ fi ;
+ penlabels(0,1,3,4);
+ endgroup;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/engwar/telcor.mf b/Master/texmf-dist/fonts/source/public/engwar/telcor.mf
new file mode 100644
index 00000000000..58483e83efa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/engwar/telcor.mf
@@ -0,0 +1,52 @@
+% Copyright 1986 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)telcor.mf 1.1 10/1/86
+
+def telco (expr posn, stemtop, stembottom) =
+ begingroup;
+ save x,y,stem;
+ path stem;
+ y0 = stemtop*h;
+ lft x0 = posn;
+ y1 = h; z1-z0=whatever*dir(seriftilt);
+ x3 = x0; y3 = -stembottom*d;
+ y4 = -d; z3-z4=whatever*dir(180-seriftilt);
+ stem = z1..tension 3.0..z0{down}..z3{down}..z4;
+ draw stem;
+ bowpoint := stem intersectionpoint
+ ((-infinity,bowstart)--(infinity, bowstart));
+ barpoint := stem intersectionpoint
+ ((-infinity,0)--(infinity, 0));
+ penlabels(0,1,2,3,4);
+ endgroup;
+enddef;
+
+def nutelco (expr posn, stemtop, stembottom) =
+ begingroup;
+ save x,y,stem;
+ path stem;
+ y0 = stemtop*h;
+ rt x0 = posn;
+ y1 = h; z1-z0=whatever*dir(seriftilt);
+ x3 = x0; y3 = -stembottom*d;
+ y4 = -d; z3-z4=whatever*dir(seriftilt);
+ stem = z1..tension 3.0..z0{down}..z3--z4;
+ draw stem;
+ bowpoint := stem intersectionpoint
+ ((-infinity, xht-bowstart)--(infinity, xht-bowstart));
+ if y0 > xht :
+ barpoint := stem intersectionpoint
+ ((-infinity, xht)--(infinity, xht));
+ else :
+ barpoint := z0;
+ fi ;
+ penlabels(0,1,3,4);
+ endgroup;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/esint/bigint.mf b/Master/texmf-dist/fonts/source/public/esint/bigint.mf
new file mode 100644
index 00000000000..17a668a496b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esint/bigint.mf
@@ -0,0 +1,1158 @@
+%%
+%% This is file `bigint.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esint.dtx (with options: `mfsymbol')
+%%
+%% esint package to typeset integrals signs.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on esint.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esint.sty and uesint.fd on TEXINPUT;
+%% -- esint10.mf, mathint.mf and bigint.mf on MFINPUT;
+%% -- generate tfm files running METAFONT on esint10.mf files, and put
+%% the *.tfm file on the right location.
+%%
+%% Run LaTeX on esint.dtx to generate
+%% documentation.
+%%
+
+
+
+
+charlist oct"001": oct"002"; % integral signs
+charlist oct"003": oct"004"; % double integral signs
+charlist oct"005": oct"006"; % triple integral signs
+charlist oct"007": oct"010"; % fourth integral signs
+charlist oct"011": oct"012"; % dots integral signs
+charlist oct"013": oct"014"; % contour integral signs
+charlist oct"015": oct"016"; % contour double integral signs
+charlist oct"017": oct"020"; % square integral signs
+charlist oct"021": oct"022"; % square double integral signs
+charlist oct"027": oct"030"; % right arrow up contour integral signs
+charlist oct"031": oct"032"; % left arrow up contour integral signs
+charlist oct"033": oct"034"; % right arrow down contour integral signs
+charlist oct"035": oct"036"; % left arrow down contour integral signs
+charlist oct"037": oct"040"; % functional integral signs
+charlist oct"041": oct"042"; % alternate contour double integral signs
+charlist oct"043": oct"044"; % landau up integral sign
+charlist oct"045": oct"046"; % landau down integral sign
+
+cmchar "\textstyle integral sign";
+beginchar(oct"001",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle double integral sign";
+beginchar(oct"003",12u#+tdec#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=tdec;y0=0;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos10(curve,0); pos20(hair,0); pos30(vair,90);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(curve,-180);
+rt x1r=hround(w-u-tdec); x9=w-tdec-x1; x7=w-tdec-x3=3u;
+x90=x9+tdec;x70=x7+tdec;
+y90=y9;y80=y8;y70=y7;
+x10=x1+tdec;x30=x3+tdec;
+y10=y1;y30=y3;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5tdec-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle triple integral sign";
+beginchar(oct"005",12u#+2tdec#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=tdec;y0=0;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos10(curve,0); pos20(hair,0); pos30(vair,90);
+pos100(curve,0); pos200(hair,0); pos300(vair,90);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(curve,-180);
+pos700(vair,-90); pos800(hair,-180); pos900(curve,-180);
+rt x1r=hround(w-u-2tdec); x9=w-x1-2tdec; x7=w-2tdec-x3=3u;
+x900=x90+tdec=x9+2tdec;x700=x70+tdec=x7+2tdec;
+y900=y90=y9;y800=y80=y8;y700=y70=y7;
+x100=x10+tdec=x1+2tdec;x300=x30+tdec=x3+2tdec;
+y100=y10=y1;y300=y30=y3;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-tdec-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+bulb(300,200,100); bulb(700,800,900);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+filldraw haut shifted 2z0;
+filldraw bas shifted 2z0;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle fourth integral sign";
+beginchar(oct"007",12u#+3tdec#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=tdec;y0=0;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos10(curve,0); pos20(hair,0); pos30(vair,90);
+pos100(curve,0); pos200(hair,0); pos300(vair,90);
+pos150(curve,0); pos250(hair,0); pos350(vair,90);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(curve,-180);
+pos700(vair,-90); pos800(hair,-180); pos900(curve,-180);
+pos750(vair,-90); pos850(hair,-180); pos950(curve,-180);
+rt x1r=hround(w-u-3tdec); x9=w-x1-3tdec; x7=w-3tdec-x3=3u;
+x950=x900+tdec=x90+2tdec=x9+3tdec;
+x750=x700+tdec=x70+2tdec=x7+3tdec;
+y950=y900=y90=y9;y850=y800=y80=y8;y750=y700=y70=y7;
+x150=x100+tdec=x10+2tdec=x1+3tdec;
+x350=x300+tdec=x30+2tdec=x3+3tdec;
+y150=y100=y10=y1;y350=y300=y30=y3;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-1.5tdec-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+bulb(300,200,100); bulb(700,800,900);
+bulb(350,250,150); bulb(750,850,950);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+filldraw haut shifted 2z0;
+filldraw bas shifted 2z0;
+filldraw haut shifted 3z0;
+filldraw bas shifted 3z0;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle integral sign";
+beginchar(oct"002",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle double integral sign";
+beginchar(oct"004",18u#+ddec#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=ddec;y0=0;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos10(bulb_size,0); pos20(hair,0); pos30(vair,90);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(bulb_size,-180);
+rt x1r=hround(w-u-ddec); x9=w-x1-ddec; x7=w-x3-ddec=3u;
+x90=x9+ddec; x70=x7+ddec;
+y90=y9;y70=y7;y80=y8;
+x10=x1+ddec;x30=x3+ddec;
+y10=y1;y30=y3;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5ddec-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle triple integral sign";
+beginchar(oct"006",18u#+2ddec#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=ddec;y0=0;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos10(bulb_size,0); pos20(hair,0); pos30(vair,90);
+pos100(bulb_size,0); pos200(hair,0); pos300(vair,90);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(bulb_size,-180);
+pos700(vair,-90); pos800(hair,-180); pos900(bulb_size,-180);
+rt x1r=hround(w-u-2ddec); x9=w-x1-2ddec; x7=w-x3-2ddec=3u;
+x90=x9+ddec; x70=x7+ddec;
+x900=x90+ddec; x700=x70+ddec;
+y900=y90=y9;y700=y70=y7;y800=y80=y8;
+x10=x1+ddec;x30=x3+ddec;
+x100=x10+ddec;x300=x30+ddec;
+y100=y10=y1;y300=y30=y3;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-ddec-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+bulb(300,200,100); bulb(700,800,900);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+filldraw haut shifted 2z0;
+filldraw bas shifted 2z0;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle fourth integral sign";
+beginchar(oct"010",18u#+3ddec#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=ddec;y0=0;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos10(bulb_size,0); pos20(hair,0); pos30(vair,90);
+pos100(bulb_size,0); pos200(hair,0); pos300(vair,90);
+pos150(bulb_size,0); pos250(hair,0); pos350(vair,90);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(bulb_size,-180);
+pos700(vair,-90); pos800(hair,-180); pos900(bulb_size,-180);
+pos750(vair,-90); pos850(hair,-180); pos950(bulb_size,-180);
+rt x1r=hround(w-u-3ddec); x9=w-x1-3ddec; x7=w-x3-3ddec=3u;
+x950=x900+ddec=x90+2ddec=x9+3ddec;
+x750=x700+ddec=x70+2ddec=x7+3ddec;
+y950=y900=y90=y9;y750=y700=y70=y7;y800=y80=y8;
+x150=x100+ddec=x10+2ddec=x1+3ddec;
+x350=x300+ddec=x30+2ddec=x3+3ddec;
+y150=y100=y10=y1;y350=y300=y30=y3;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-1.5ddec-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+bulb(300,200,100); bulb(700,800,900);
+bulb(350,250,150); bulb(750,850,950);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+filldraw haut shifted 2z0;
+filldraw bas shifted 2z0;
+filldraw haut shifted 3z0;
+filldraw bas shifted 3z0;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle dots integral sign";
+beginchar(oct"011",12u#+3tdec#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+path rond;
+x0=tdec;y0=0;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos150(curve,0); pos250(hair,0); pos350(vair,90);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+pos750(vair,-90); pos850(hair,-180); pos950(curve,-180);
+rt x1r=hround(w-u-3tdec); x9=w-x1-3tdec; x7=w-3tdec-x3=3u;
+x950=x9+3tdec;x750=x7+3tdec;
+y950=y9;y850=y8;y750=y7;
+x150=x1+3tdec;x350=x3+3tdec;
+y150=y1;y350=y3;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-1.5tdec-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(350,250,150); bulb(750,850,950);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted 3z0;
+filldraw bas shifted 3z0;
+pickup fine.nib;
+numeric dot_diam#; dot_diam#=dot_size#;
+define_whole_blacker_pixels(dot_diam);
+pos51(dot_diam,0);pos52(dot_diam,90);
+lft x51l=hround(.5w-.5dot_diam);
+y52=y5;
+z51=z52;
+rond:=z51l..z52l..z51r..z52r..cycle;
+filldraw rond shifted -.75z0;
+filldraw rond;
+filldraw rond shifted .75z0;
+penlabels(1,2,3,4,5,6,7,8,9,150); endchar;
+
+cmchar "\displaystyle dots integral sign";
+beginchar(oct"012",18u#+3ddec#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+path rond;
+x0=ddec;y0=0;
+x99=tdec;y99=0;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos150(bulb_size,0); pos250(hair,0); pos350(vair,90);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos750(vair,-90); pos850(hair,-180); pos950(bulb_size,-180);
+rt x1r=hround(w-u-3ddec); x9=w-x1-3ddec; x7=w-x3-3ddec=3u;
+x950=x9+3ddec;
+x750=x7+3ddec;
+y950=y9;y750=y7;
+x150=x1+3ddec;
+x350=x3+3ddec;
+y150=y100=y10=y1;y350=y300=y30=y3;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-1.5ddec-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(350,250,150); bulb(750,850,950);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted 3z0;
+filldraw bas shifted 3z0;
+pickup fine.nib;
+numeric dot_diam#; dot_diam#=dot_size#;
+define_whole_blacker_pixels(dot_diam);
+pos51(dot_diam,0);pos52(dot_diam,90);
+lft x51l=hround(.5w-.5dot_diam);
+y52=y5;
+z51=z52;
+rond:=z51l..z52l..z51r..z52r..cycle;
+filldraw rond shifted -.75z99;
+filldraw rond;
+filldraw rond shifted .75z99;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle contour integral sign";
+beginchar(oct"013",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle contour double integral sign";
+beginchar(oct"015",12u#+tdec#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=tdec;y0=0;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos10(curve,0); pos20(hair,0); pos30(vair,90);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(curve,-180);
+rt x1r=hround(w-u-tdec); x9=w-tdec-x1; x7=w-tdec-x3=3u;
+x90=x9+tdec;x70=x7+tdec;
+y90=y9;y80=y8;y70=y7;
+x10=x1+tdec;x30=x3+tdec;
+y10=y1;y30=y3;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5tdec-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+pickup rule.nib; autorounded;
+z50=z5+.5z0;
+x51=x54=x50-.55tdec;
+x52=x53=x50+.55tdec;
+y51=y52=y50+.35(w-tdec);
+y53=y54=y50-.35(w-tdec);
+draw z51..z52;
+draw z53..z54;
+z55=.5[z54,z51]; z56=.5[z53,z52];
+draw halfcircle scaled .7(w-tdec) rotated 90 shifted z55 ;
+draw halfcircle scaled .7(w-tdec) rotated -90 shifted z56 ;
+penlabels(1,2,3,4,5,6,7,8,9,51,52,53,54,55,56,50); endchar;
+
+cmchar "\displaystyle contour integral sign";
+beginchar(oct"014",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle contour double integral sign";
+beginchar(oct"016",18u#+ddec#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=ddec;y0=0;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos10(bulb_size,0); pos20(hair,0); pos30(vair,90);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(bulb_size,-180);
+rt x1r=hround(w-u-ddec); x9=w-x1-ddec; x7=w-x3-ddec=3u;
+x90=x9+ddec; x70=x7+ddec;
+y90=y9;y70=y7;y80=y8;
+x10=x1+ddec;x30=x3+ddec;
+y10=y1;y30=y3;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5ddec-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+pickup rule.nib; autorounded;
+z50=z5+.5z0;
+x51=x54=x50-.55ddec;
+x52=x53=x50+.55ddec;
+y51=y52=y50+.35(w-ddec);
+y53=y54=y50-.35(w-ddec);
+draw z51..z52;
+draw z53..z54;
+z55=.5[z54,z51]; z56=.5[z53,z52];
+draw halfcircle scaled .7(w-ddec) rotated 90 shifted z55 ;
+draw halfcircle scaled .7(w-ddec) rotated -90 shifted z56 ;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle square integral sign";
+beginchar(oct"017",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+x51=x52=x5+.35w;
+x53=x54=x5-.35w;
+y51=y54=y5+.35w;
+y52=y53=y5-.35w;
+draw z51--z52--z53--z54--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,51,52,53,54); endchar;
+
+cmchar "\displaystyle square integral sign";
+beginchar(oct"020",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+x51=x52=x5+.35w;
+x53=x54=x5-.35w;
+y51=y54=y5+.35w;
+y52=y53=y5-.35w;
+draw z51--z52--z53--z54--cycle;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle square double integral sign";
+beginchar(oct"021",12u#+tdec#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=tdec;y0=0;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos10(curve,0); pos20(hair,0); pos30(vair,90);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(curve,-180);
+rt x1r=hround(w-u-tdec); x9=w-tdec-x1; x7=w-tdec-x3=3u;
+x90=x9+tdec;x70=x7+tdec; % on décalle de 10u
+y90=y9;y80=y8;y70=y7;
+x10=x1+tdec;x30=x3+tdec;
+y10=y1;y30=y3;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5tdec-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+pickup rule.nib; autorounded;
+z50=z5+.5z0; % au milieu
+x51=x54=x50-.55tdec-.35(w-tdec);
+x52=x53=x50+.55tdec+.35(w-tdec);
+y51=y52=y50+.35(w-tdec);
+y53=y54=y50-.35(w-tdec);
+draw z51--z52--z53--z54--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,51,52,53,54,55,56,50); endchar;
+
+cmchar "\displaystyle square double integral sign";
+beginchar(oct"022",18u#+ddec#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=ddec;y0=0;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos10(bulb_size,0); pos20(hair,0); pos30(vair,90);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(bulb_size,-180);
+rt x1r=hround(w-u-ddec); x9=w-x1-ddec; x7=w-x3-ddec=3u;
+x90=x9+ddec; x70=x7+ddec;
+y90=y9;y70=y7;y80=y8;
+x10=x1+ddec;x30=x3+ddec;
+y10=y1;y30=y3;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5ddec-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+pickup rule.nib; autorounded;
+z50=z5+.5z0;
+x51=x54=x50-.55ddec-.35(w-ddec);
+x52=x53=x50+.55ddec+.35(w-ddec);
+y51=y52=y50+.35(w-ddec);
+y53=y54=y50-.35(w-ddec);
+draw z51--z52--z53--z54--cycle;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle right arrow up contour integral sign";
+beginchar(oct"027",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+x0=.345w;y0=.05w;
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+z51=z5+z0;
+pos51(1.35rule_thickness,90);pos52(1.2vair,135);pos53(1.2vair,45);
+y52=y53=y51-.165w;
+x52=x51-.16w;
+x53=x51+.16w;
+pickup fine.nib;
+filldraw z52l--z51l--z51r--z52r--cycle;
+filldraw z53r--z51r--z51l--z53l--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,51,52,53); endchar;
+
+cmchar "\displaystyle right arrow up contour integral sign";
+beginchar(oct"030",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+x0=.345w;y0=.05w;
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+z51=z5+z0;
+pos51(1.35rule_thickness,90);pos52(1.2vair,135);pos53(1.2vair,45);
+y52=y53=y51-.165w;
+x52=x51-.16w;
+x53=x51+.16w;
+pickup fine.nib;
+filldraw z52l--z51l--z51r--z52r--cycle;
+filldraw z53r--z51r--z51l--z53l--cycle;
+penlabels(1,2,3,4,5,6,7,8,9,51,52,53); endchar;
+
+cmchar "\textstyle left arrow up contour integral sign";
+beginchar(oct"031",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+x0=-.345w;y0=.05w;
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+z51=z5+z0;
+pos51(1.35rule_thickness,90);pos52(1.2vair,135);pos53(1.2vair,45);
+y52=y53=y51-.165w;
+x52=x51-.16w;
+x53=x51+.16w;
+pickup fine.nib;
+filldraw z52l--z51l--z51r--z52r--cycle;
+filldraw z53r--z51r--z51l--z53l--cycle;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle left arrow up contour integral sign";
+beginchar(oct"032",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+x0=-.345w;y0=.05w;
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+z51=z5+z0;
+pos51(1.35rule_thickness,90);pos52(1.2vair,135);pos53(1.2vair,45);
+y52=y53=y51-.165w;
+x52=x51-.16w;
+x53=x51+.16w;
+pickup fine.nib;
+filldraw z52l--z51l--z51r--z52r--cycle;
+filldraw z53r--z51r--z51l--z53l--cycle;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle right arrow down contour integral sign";
+beginchar(oct"033",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+x0=.345w;y0=-.05w;
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+z51=z5+z0;
+pos51(1.35rule_thickness,-90);pos52(1.2vair,135);pos53(1.2vair,45);
+y52=y53=y51+.165w;
+x52=x51-.16w;
+x53=x51+.16w;
+pickup fine.nib;
+filldraw z52l--z51l--z51r--z52r--cycle;
+filldraw z53r--z51r--z51l--z53l--cycle;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle right arrow down contour integral sign";
+beginchar(oct"034",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+x0=.345w;y0=-.05w;
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+z51=z5+z0;
+pos51(1.35rule_thickness,-90);pos52(1.2vair,135);pos53(1.2vair,45);
+y52=y53=y51+.165w;
+x52=x51-.16w;
+x53=x51+.16w;
+pickup fine.nib;
+filldraw z52l--z51l--z51r--z52r--cycle;
+filldraw z53r--z51r--z51l--z53l--cycle;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle left arrow down contour integral sign";
+beginchar(oct"035",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+x0=-.345w;y0=-.05w;
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+z51=z5+z0;
+pos51(1.35rule_thickness,-90);pos52(1.2vair,135);pos53(1.2vair,45);
+y52=y53=y51+.165w;
+x52=x51-.16w;
+x53=x51+.16w;
+pickup fine.nib;
+filldraw z52l--z51l--z51r--z52r--cycle;
+filldraw z53r--z51r--z51l--z53l--cycle;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle left arrow down contour integral sign";
+beginchar(oct"036",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+x0=-.345w;y0=-.05w;
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw fullcircle scaled .7w shifted z5; % contour
+z51=z5+z0;
+pos51(1.35rule_thickness,-90);pos52(1.2vair,135);pos53(1.2vair,45);
+y52=y53=y51+.165w;
+x52=x51-.16w;
+x53=x51+.16w;
+pickup fine.nib;
+filldraw z52l--z51l--z51r--z52r--cycle;
+filldraw z53r--z51r--z51l--z53l--cycle;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle functional integral sign";
+beginchar(oct"037",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib;
+y10=y5;
+x10=x9l;x11=x1l;
+y11-y10=.102(y3-y7);
+cutdraw z10..z11;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle functional integral sign";
+beginchar(oct"040",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib;
+y10=y5;
+x10=x9l;x5=.5[x10,x11];
+y11-y10=.102(y3-y7);
+cutdraw z10..z11;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle alternate contour double integral sign";
+beginchar(oct"041",12u#+tdec#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=tdec;y0=0;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos10(curve,0); pos20(hair,0); pos30(vair,90);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(curve,-180);
+rt x1r=hround(w-u-tdec); x9=w-tdec-x1; x7=w-tdec-x3=3u;
+x90=x9+tdec;x70=x7+tdec;
+y90=y9;y80=y8;y70=y7;
+x10=x1+tdec;x30=x3+tdec;
+y10=y1;y30=y3;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5tdec-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+pickup rule.nib; autorounded;
+z50=z5+.5z0;
+draw fullcircle scaled .55w shifted z50; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle alternate contour double integral sign";
+beginchar(oct"042",18u#+ddec#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+path haut;
+path bas;
+x0=ddec;y0=0;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos10(bulb_size,0); pos20(hair,0); pos30(vair,90);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos70(vair,-90); pos80(hair,-180); pos90(bulb_size,-180);
+rt x1r=hround(w-u-ddec); x9=w-x1-ddec; x7=w-x3-ddec=3u;
+x90=x9+ddec; x70=x7+ddec;
+y90=y9;y70=y7;y80=y8;
+x10=x1+ddec;x30=x3+ddec;
+y10=y1;y30=y3;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5ddec-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(30,20,10); bulb(70,80,90);
+haut:=stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+bas:=stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+filldraw haut;
+filldraw bas;
+filldraw haut shifted z0;
+filldraw bas shifted z0;
+pickup rule.nib; autorounded;
+z50=z5+.5z0;
+draw fullcircle scaled .65w shifted z50; % contour
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle landau up integral sign";
+beginchar(oct"043",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw halfcircle scaled .5w shifted z5; % contour
+y10=y11=y12=y13=y5;
+x11+.25w=x12-.25w=x5;
+x10+2u=x11;
+x13-2u=x12;
+cutdraw z10--z11;
+cutdraw z12--z13;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "\displaystyle landau up integral sign";
+beginchar(oct"044",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw halfcircle scaled .5w shifted z5; % contour
+y10=y11=y12=y13=y5;
+x11+.25w=x12-.25w=x5;
+x10+3u=x11;
+x13-3u=x12;
+cutdraw z10--z11;
+cutdraw z12--z13;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "\textstyle landau down integral sign";
+beginchar(oct"045",12u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(stem,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(stem,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=1.2u; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw halfcircle scaled .5w rotated 180 shifted z5; % contour
+y10=y11=y12=y13=y5;
+x11+.25w=x12-.25w=x5;
+x10+2u=x11;
+x13-2u=x12;
+cutdraw z10--z11;
+cutdraw z12--z13;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle landau down integral sign";
+beginchar(oct"046",18u#,0,200/54dh#);
+italcorr 8u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=hround(bold+2dw);
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(bold,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(bold,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=.5[x4,x6]; x4-x6=4.8u; lft x5r=hround(.5w-.5max_size);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper stem
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower stem
+pickup rule.nib; autorounded;
+draw halfcircle scaled .5w rotated 180 shifted z5; % contour
+y10=y11=y12=y13=y5;
+x11+.25w=x12-.25w=x5;
+x10+3u=x11;
+x13-3u=x12;
+cutdraw z10--z11;
+cutdraw z12--z13;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+\endinput
+%%
+%% End of file `bigint.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esint/esint10.mf b/Master/texmf-dist/fonts/source/public/esint/esint10.mf
new file mode 100644
index 00000000000..bb9759996f7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esint/esint10.mf
@@ -0,0 +1,115 @@
+%%
+%% This is file `esint10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esint.dtx (with options: `mffile')
+%%
+%% esint package to typeset integrals signs.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on esint.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esint.sty and uesint.fd on TEXINPUT;
+%% -- esint10.mf, mathint.mf and bigint.mf on MFINPUT;
+%% -- generate tfm files running METAFONT on esint10.mf files, and put
+%% the *.tfm file on the right location.
+%%
+%% Run LaTeX on esint.dtx to generate
+%% documentation.
+%%
+
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ESINT"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+tdec#:=6u#; % space between integrals signs (textstyle)
+ddec#:=6.5u#; % space between integrals signs (displaystyle)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 40/36pt#, % big\_op\_spacing1
+ 60/36pt#, % big\_op\_spacing2
+ 72/36pt#, % big\_op\_spacing3
+ 216/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate mathint % switch to the driver file
+\endinput
+%%
+%% End of file `esint10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esint/mathint.mf b/Master/texmf-dist/fonts/source/public/esint/mathint.mf
new file mode 100644
index 00000000000..448dba035e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esint/mathint.mf
@@ -0,0 +1,40 @@
+%%
+%% This is file `mathint.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esint.dtx (with options: `mfmath')
+%%
+%% esint package to typeset integrals signs.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on esint.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esint.sty and uesint.fd on TEXINPUT;
+%% -- esint10.mf, mathint.mf and bigint.mf on MFINPUT;
+%% -- generate tfm files running METAFONT on esint10.mf files, and put
+%% the *.tfm file on the right location.
+%%
+%% Run LaTeX on esint.dtx to generate
+%% documentation.
+%%
+
+
+
+font_coding_scheme:="TeX math extension"; %
+mode_setup; font_setup;
+
+define_pixels(tdec,ddec);
+
+input bigint; % large operators (integral signs)
+
+font_x_height x_height#;
+font_quad 18u#+4letter_fit#;
+bye.
+\endinput
+%%
+%% End of file `mathint.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esvect/mathvec.mf b/Master/texmf-dist/fonts/source/public/esvect/mathvec.mf
new file mode 100644
index 00000000000..7fc7d7f0415
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esvect/mathvec.mf
@@ -0,0 +1,42 @@
+%%
+%% This is file `mathvec.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esvect.dtx (with options: `mfmath')
+%%
+%% esvect package to typeset vectors.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on escevt.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esvect.sty and uesvect.fd on TEXINPUT;
+%% -- vect5.mf, vect6.mf, vect7.mf, vect8.mf, vect9.mf, vect10.mf on
+%% MFINPUT;
+%% -- generate tfm files running METAFONT on *.mf files, and put
+%% *.tfm files on the right location.
+%%
+%% Run LaTeX on esvect.dtx to generate
+%% documentation.
+%%
+
+font_coding_scheme:="TeX math symbols";
+mode_setup; font_setup;
+
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input vsymbol; % the symbols
+
+bye.
+\endinput
+%%
+%% End of file `mathvec.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esvect/vecsym.mf b/Master/texmf-dist/fonts/source/public/esvect/vecsym.mf
new file mode 100644
index 00000000000..9e961e76018
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esvect/vecsym.mf
@@ -0,0 +1,578 @@
+%%
+%% This is file `vecsym.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esvect.dtx (with options: `mfvecsym')
+%%
+%% esvect package to typeset vectors.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on escevt.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esvect.sty and uesvect.fd on TEXINPUT;
+%% -- vect5.mf, vect6.mf, vect7.mf, vect8.mf, vect9.mf, vect10.mf on
+%% MFINPUT;
+%% -- generate tfm files running METAFONT on *.mf files, and put
+%% *.tfm files on the right location.
+%%
+%% Run LaTeX on esvect.dtx to generate
+%% documentation.
+%%
+
+iff known r_arrow1: cmchar "Dessin original";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow1,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;%crisp -> fine pour tester
+pos1(rule_thickness,90); pos2(rule_thickness,90);%Trait horizontal
+pos3(rule_thickness,0); pos4(rule_thickness,0);%Extr\'emit\'e fl\`eche
+y0=y1=y2=math_axis;%Axe horizontal
+x1-.5rule_thickness=eps;%Extr\'emit\'e gauche
+rt x0=hround(w)-eps;%Extr\'emit\'e droite
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;%largeur
+x3=x4=x0-if monospace:3u else:4u fi-eps;%longueur fl\`eche
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;%Pointe inf\'erieure fl\`eche
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;%Pointe sup\'erieure fl\`eche
+z9=.2[.5[z3,z4],z0];%tangente extr\'emit\'es
+numeric t; path p; p=z4l{z9-z4}..z6r;%Courbe fl\`eche
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));%Intersection
+x2=xpart point t of p;%Abscisse de cette intersection
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known r_arrow5: cmchar "Fl\`eche grande";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow5,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=2.5u+eps;
+x3=x4=x0-4.5u-eps;
+z9=.35[.5[z3,z4],z0];
+numeric t; path p; p=z4..z9;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..z4--subpath (0,t) of\\(z4..z9)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3..z9)
+ --z3..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,9); endchar;
+
+iff known r_arrow3: cmchar "Fl\`eche normale";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow3,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=2.1u+eps;
+x3=x4=x0-3.8u-eps;
+z9=.35[.5[z3,z4],z0];
+numeric t; path p; p=z4..z9;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..z4--subpath (0,t) of\\(z4..z9)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3..z9)
+ --z3..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,9); endchar;
+
+iff known r_arrow6: cmchar "Fl\`eche \'etroite";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow6,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=1.5u+eps;
+x3=x4=x0-4.5u-eps;
+z9=.35[.5[z3,z4],z0];
+numeric t; path p; p=z4..z9;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..z4--subpath (0,t) of\\(z4..z9)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3..z9)
+ --z3..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,9); endchar;
+
+iff known r_arrow8: cmchar "Fleche droite";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow8,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,-90);
+pos3(hair,0); pos6(hair,0);
+pos4(rule_thickness,0); pos5(rule_thickness,0);
+y1=y2=math_axis; x1-.5rule_thickness=eps; rt x2=hround(w-2u);
+y3-y1=y1-y6=2.2u+eps;
+x3=x6=x2-3.5u-eps;
+x4=x5=hround(w)-0.4rule_thickness;
+y4-y1=y1-y5=.2hair;
+filldraw z2l{dir 165}...{z3-z2}z3l--z3r{z4-z3}...
+z4--z5...{z6-z5}z6r--z6l{z2-z6}...{dir 15}z2r---z1l..z1r---z2l & cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known r_arrow2: cmchar "cmsy plus \'etroit";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow2,18u#,v_center(spread#+rule_thickness#));%18u->12u
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis;%Axe horizontal
+x1-.5rule_thickness=eps;%Extr\'emit\'e gauche
+rt x0=hround(w)-eps;%Extr\'emit\'e droite
+y3-y0=y0-y4=if monospace:.16 else:.22 fi asc_height+eps;%largeur
+x3=x4=x0-if monospace:4u else:4u fi-eps;%longueur fl\`eche
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;%Pointe inf\'erieure fl\`eche
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;%Pointe sup\'erieure fl\`eche
+z9=.5[.5[z3,z4],z0];%tangente extr\'emit\'es
+numeric t; path p; p=z4l{z9-z4}..z6r;%Courbe fl\`eche
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));%Intersection
+x2=xpart point t of p;%Abscisse de cette intersection
+filldraw z0--z5..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z6--z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known r_arrow4: cmchar "Triangle";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow4,18u#,v_center(spread#+rule_thickness#));%18u->12u
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=2.1u+eps;
+x3=x4=x0-3.8u-eps;
+numeric t; path p; p=z4..z3;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..z4--subpath (0,t) of\\(z4..z3)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3..z4)
+ --z3..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4); endchar;
+
+iff known r_arrow9: cmchar "Triangle pench\'e";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow9,18u#,v_center(spread#+rule_thickness#));%18u->12u
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,76);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=2.1u+eps;
+x2=hround(w-4u);
+x3=.25(y3-y2)+x2-eps;
+x4=-.25(y2-y4)+x2-eps;
+filldraw z0..z3--z2r---z1r..z1l---z2l--z4..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4); endchar;
+
+iff known r_arrow7: cmchar "Harpon";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow7,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,-90);
+pos3(hair,0); pos6(hair,0);
+pos4(rule_thickness,0); pos5(rule_thickness,0);
+y1=y2=math_axis; x1-.5rule_thickness=eps; rt x2=hround(w-2u);
+y3-y1=y1-y6=2.5u+eps;
+x3=x6=x2-2u-eps;
+x4=x5=hround(w)-0.4rule_thickness;
+y4-y1=y1-y5=.2hair;
+filldraw z2l{dir 175}...{dir 110}z3l--z3r{dir -60}...{dir
+-5}z4--z5{dir 185}...{dir -120}z6r--z6l{dir 70}...{dir
+5}z2r---z1l..z1r---z2l & cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+iff known r_arrow21: cmchar "Dessin original";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow21,10u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;%crisp -> fine pour tester
+pos1(rule_thickness,90); pos2(rule_thickness,90);%Trait horizontal
+pos3(rule_thickness,0); pos4(rule_thickness,0);%Extr\'emit\'e fl\`eche
+y0=y1=y2=math_axis;%Axe horizontal
+x1-.5rule_thickness=eps;%Extr\'emit\'e gauche
+rt x0=hround(w-u);%Extr\'emit\'e droite
+y3-y0=y0-y4=if monospace:.24 else:.36 fi asc_height+eps;%largeur
+x3=x4=x0-if monospace:3u else:4u fi-eps;%longueur fl\`eche
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;%Pointe inf\'erieure fl\`eche
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;%Pointe sup\'erieure fl\`eche
+z9=.2[.5[z3,z4],z0];%tangente extr\'emit\'es
+numeric t; path p; p=z4l{z9-z4}..z6r;%Courbe fl\`eche
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));%Intersection
+x2=xpart point t of p;%Abscisse de cette intersection
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known r_arrow25: cmchar "Fl\`eche grande";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow25,10u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=2.5u+eps;
+x3=x4=x0-4.5u-eps;
+z9=.35[.5[z3,z4],z0];
+numeric t; path p; p=z4..z9;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..z4--subpath (0,t) of\\(z4..z9)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3..z9)
+ --z3..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,9); endchar;
+
+iff known r_arrow23: cmchar "Fl\`eche normale";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow23,10u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=2.1u+eps;
+x3=x4=x0-3.8u-eps;
+z9=.35[.5[z3,z4],z0];
+numeric t; path p; p=z4..z9;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..z4--subpath (0,t) of\\(z4..z9)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3..z9)
+ --z3..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,9); endchar;
+
+iff known r_arrow26: cmchar "Fl\`eche \'etroite";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow26,10u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=1.5u+eps;
+x3=x4=x0-4.5u-eps;
+z9=.35[.5[z3,z4],z0];
+numeric t; path p; p=z4..z9;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..z4--subpath (0,t) of\\(z4..z9)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3..z9)
+ --z3..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,9); endchar;
+
+iff known r_arrow28: cmchar "Fl\`eche droite";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow28,10u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,-90);
+pos3(hair,0); pos6(hair,0);
+pos4(rule_thickness,0); pos5(rule_thickness,0);
+y1=y2=math_axis; x1-.5rule_thickness=eps; rt x2=hround(w-2u);
+y3-y1=y1-y6=2.2u+eps;
+x3=x6=x2-3.5u-eps;
+x4=x5=hround(w)-0.4rule_thickness;
+y4-y1=y1-y5=.2hair;
+filldraw z2l{dir 165}...{z3-z2}z3l--z3r{z4-z3}...
+z4--z5...{z6-z5}z6r--z6l{z2-z6}...{dir 15}z2r---z1l..z1r---z2l & cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known r_arrow22: cmchar "cmsy plus \'etroit";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow22,10u#,v_center(spread#+rule_thickness#));%18u->12u
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis;%Axe horizontal
+x1-.5rule_thickness=eps;%Extr\'emit\'e gauche
+rt x0=hround(w)-eps;%Extr\'emit\'e droite
+y3-y0=y0-y4=if monospace:.16 else:.22 fi asc_height+eps;%largeur
+x3=x4=x0-if monospace:4u else:4u fi-eps;%longueur fl\`eche
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;%Pointe inf\'erieure fl\`eche
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;%Pointe sup\'erieure fl\`eche
+z9=.5[.5[z3,z4],z0];%tangente extr\'emit\'es
+numeric t; path p; p=z4l{z9-z4}..z6r;%Courbe fl\`eche
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));%Intersection
+x2=xpart point t of p;%Abscisse de cette intersection
+filldraw z0--z5..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z6--z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known r_arrow24: cmchar "Triangle";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow24,10u#,v_center(spread#+rule_thickness#));%18u->12u
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=2.1u+eps;
+x3=x4=x0-3.8u-eps;
+numeric t; path p; p=z4..z3;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..z4--subpath (0,t) of\\(z4..z3)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3..z4)
+ --z3..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4); endchar;
+
+iff known r_arrow29: cmchar "Triangle pench\'e";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow29,10u#,v_center(spread#+rule_thickness#));%18u->12u
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,76);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=eps; rt x0=hround(w)-eps;
+y3-y0=y0-y4=2.1u+eps;
+x2=hround(w-4u);
+x3=.25(y3-y2)+x2-eps;
+x4=-.25(y2-y4)+x2-eps;
+filldraw z0..z3--z2r---z1r..z1l---z2l--z4..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4); endchar;
+
+iff known r_arrow27: cmchar "Harpon";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(r_arrow27,10u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup fine.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,-90);
+pos3(hair,0); pos6(hair,0);
+pos4(rule_thickness,0); pos5(rule_thickness,0);
+y1=y2=math_axis; x1-.5rule_thickness=eps; rt x2=hround(w-2u);
+y3-y1=y1-y6=2.5u+eps;
+x3=x6=x2-2u-eps;
+x4=x5=hround(w)-0.4rule_thickness;
+y4-y1=y1-y5=.2hair;
+filldraw z2l{dir 175}...{dir 110}z3l--z3r{dir -60}...{dir
+-5}z4--z5{dir 185}...{dir -120}z6r--z6l{dir 70}...{dir
+5}z2r---z1l..z1r---z2l & cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%% Trait pour remplissage
+
+iff known trait01: cmchar "trait 3u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(trait01,3u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+draw z1--z2;
+penlabels(1,2);
+endchar;
+
+iff known trait02: cmchar "trait 4u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(trait02,4u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+draw z1--z2;
+penlabels(1,2);
+endchar;
+
+iff known trait03: cmchar "trait 5u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(trait03,5u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+draw z1--z2;
+penlabels(1,2);
+endchar;
+
+iff known trait04: cmchar "trait 6u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(trait04,6u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+draw z1--z2;
+penlabels(1,2);
+endchar;
+
+iff known trait05: cmchar "trait 7u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(trait05,7u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+draw z1--z2;
+penlabels(1,2);
+endchar;
+
+iff known trait06: cmchar "trait 8u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(trait06,8u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+draw z1--z2;
+penlabels(1,2);
+endchar;
+
+iff known trait07: cmchar "trait 9u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(trait07,9u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+draw z1--z2;
+penlabels(1,2);
+endchar;
+
+iff known trait08: cmchar "trait 10u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(trait08,10u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+draw z1--z2;
+penlabels(1,2);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \`a virer traits pour tester
+
+iff known traittest01: cmchar "traittest 3u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(traittest01,3u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+x3=x4=x1;
+y3-y1=y1-y4=1.5u;
+x5=x6=x2;
+y5-y2=y2-y6=1.5u;
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known traittest02: cmchar "traittest 4u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(traittest02,4u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+x3=x4=x1;
+y3-y1=y1-y4=1.5u;
+x5=x6=x2;
+y5-y2=y2-y6=1.5u;
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known traittest03: cmchar "traittest 5u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(traittest03,5u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+x3=x4=x1;
+y3-y1=y1-y4=1.5u;
+x5=x6=x2;
+y5-y2=y2-y6=1.5u;
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known traittest04: cmchar "traittest 6u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(traittest04,6u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+x3=x4=x1;
+y3-y1=y1-y4=1.5u;
+x5=x6=x2;
+y5-y2=y2-y6=1.5u;
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known traittest05: cmchar "traittest 7u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(traittest05,7u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+x3=x4=x1;
+y3-y1=y1-y4=1.5u;
+x5=x6=x2;
+y5-y2=y2-y6=1.5u;
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known traittest06: cmchar "traittest 8u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(traittest06,8u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+x3=x4=x1;
+y3-y1=y1-y4=1.5u;
+x5=x6=x2;
+y5-y2=y2-y6=1.5u;
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known traittest07: cmchar "traittest 9u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(traittest07,9u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+x3=x4=x1;
+y3-y1=y1-y4=1.5u;
+x5=x6=x2;
+y5-y2=y2-y6=1.5u;
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known traittest08: cmchar "traittest 10u";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(traittest08,10u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=eps;
+x2=w-eps;
+y1=y2=math_axis;
+x3=x4=x1;
+y3-y1=y1-y4=1.5u;
+x5=x6=x2;
+y5-y2=y2-y6=1.5u;
+draw z1--z2;
+draw z3--z4;
+draw z5--z6;
+penlabels(1,2,3,4,5,6);
+endchar;
+\endinput
+%%
+%% End of file `vecsym.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esvect/vect10.mf b/Master/texmf-dist/fonts/source/public/esvect/vect10.mf
new file mode 100644
index 00000000000..d143c246ce1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esvect/vect10.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `vect10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esvect.dtx (with options: `mffilef')
+%%
+%% esvect package to typeset vectors.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on escevt.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esvect.sty and uesvect.fd on TEXINPUT;
+%% -- vect5.mf, vect6.mf, vect7.mf, vect8.mf, vect9.mf, vect10.mf on
+%% MFINPUT;
+%% -- generate tfm files running METAFONT on *.mf files, and put
+%% *.tfm files on the right location.
+%%
+%% Run LaTeX on esvect.dtx to generate
+%% documentation.
+%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="VECT"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathvec % switch to the driver file
+\endinput
+%%
+%% End of file `vect10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esvect/vect5.mf b/Master/texmf-dist/fonts/source/public/esvect/vect5.mf
new file mode 100644
index 00000000000..320e24795f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esvect/vect5.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `vect5.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esvect.dtx (with options: `mffilea')
+%%
+%% esvect package to typeset vectors.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on escevt.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esvect.sty and uesvect.fd on TEXINPUT;
+%% -- vect5.mf, vect6.mf, vect7.mf, vect8.mf, vect9.mf, vect10.mf on
+%% MFINPUT;
+%% -- generate tfm files running METAFONT on *.mf files, and put
+%% *.tfm files on the right location.
+%%
+%% Run LaTeX on esvect.dtx to generate
+%% documentation.
+%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="VECT"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=6/36pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=15.5/36pt#; % lowercase stem breadth
+curve#:=17.5/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=18.5/36pt#; % uppercase stem breadth
+cap_curve#:=20.5/36pt#; % uppercase curve breadth
+cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+subs:=5/5; % subscripts to 5pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+3/36pt#, % num2
+ math_axis#+1.51rth#+24/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-63/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-3/36pt#), % denom2
+ 5.99pt#-subs*asc_height#, % sup1
+ 5.49pt#-subs*asc_height#, % sup2
+ 53/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 9.9pt#, % delim1
+ 7.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathvec % switch to the driver file
+\endinput
+%%
+%% End of file `vect5.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esvect/vect6.mf b/Master/texmf-dist/fonts/source/public/esvect/vect6.mf
new file mode 100644
index 00000000000..2da6463ad73
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esvect/vect6.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `vect6.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esvect.dtx (with options: `mffileb')
+%%
+%% esvect package to typeset vectors.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on escevt.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esvect.sty and uesvect.fd on TEXINPUT;
+%% -- vect5.mf, vect6.mf, vect7.mf, vect8.mf, vect9.mf, vect10.mf on
+%% MFINPUT;
+%% -- generate tfm files running METAFONT on *.mf files, and put
+%% *.tfm files on the right location.
+%%
+%% Run LaTeX on esvect.dtx to generate
+%% documentation.
+%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="VECT"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=6/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=6.5/36pt#; % diameter of serif corners
+tiny#:=6.5/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=17.5/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=20.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21/36pt#; % uppercase stem breadth
+cap_curve#:=23.5/36pt#; % uppercase curve breadth
+cap_ess#:=18.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+subs:=5/6; % subscripts to 6pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+9/36pt#, % num2
+ math_axis#+1.51rth#+29/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-74/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-9/36pt#), % denom2
+ 6.49pt#-subs*asc_height#, % sup1
+ 5.99pt#-subs*asc_height#, % sup2
+ 62/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathvec % switch to the driver file
+\endinput
+%%
+%% End of file `vect6.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esvect/vect7.mf b/Master/texmf-dist/fonts/source/public/esvect/vect7.mf
new file mode 100644
index 00000000000..54ad932358c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esvect/vect7.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `vect7.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esvect.dtx (with options: `mffilec')
+%%
+%% esvect package to typeset vectors.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on escevt.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esvect.sty and uesvect.fd on TEXINPUT;
+%% -- vect5.mf, vect6.mf, vect7.mf, vect8.mf, vect9.mf, vect10.mf on
+%% MFINPUT;
+%% -- generate tfm files running METAFONT on *.mf files, and put
+%% *.tfm files on the right location.
+%%
+%% Run LaTeX on esvect.dtx to generate
+%% documentation.
+%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="VECT"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=19.5/36pt#; % lowercase stem breadth
+curve#:=22.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=26.5/36pt#; % uppercase curve breadth
+cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+subs:=5/7; % subscripts to 7pt will normally be in 5pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+12/36pt#, % num2
+ math_axis#+1.51rth#+34/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-86/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-12/36pt#), % denom2
+ 6.99pt#-subs*asc_height#, % sup1
+ 6.49pt#-subs*asc_height#, % sup2
+ 72/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 8.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathvec % switch to the driver file
+\endinput
+%%
+%% End of file `vect7.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esvect/vect8.mf b/Master/texmf-dist/fonts/source/public/esvect/vect8.mf
new file mode 100644
index 00000000000..9ca389b349d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esvect/vect8.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `vect8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esvect.dtx (with options: `mffiled')
+%%
+%% esvect package to typeset vectors.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on escevt.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esvect.sty and uesvect.fd on TEXINPUT;
+%% -- vect5.mf, vect6.mf, vect7.mf, vect8.mf, vect9.mf, vect10.mf on
+%% MFINPUT;
+%% -- generate tfm files running METAFONT on *.mf files, and put
+%% *.tfm files on the right location.
+%%
+%% Run LaTeX on esvect.dtx to generate
+%% documentation.
+%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="VECT"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathvec % switch to the driver file
+\endinput
+%%
+%% End of file `vect8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esvect/vect9.mf b/Master/texmf-dist/fonts/source/public/esvect/vect9.mf
new file mode 100644
index 00000000000..cc7aa9a25cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esvect/vect9.mf
@@ -0,0 +1,121 @@
+%%
+%% This is file `vect9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esvect.dtx (with options: `mffilee')
+%%
+%% esvect package to typeset vectors.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on escevt.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esvect.sty and uesvect.fd on TEXINPUT;
+%% -- vect5.mf, vect6.mf, vect7.mf, vect8.mf, vect9.mf, vect10.mf on
+%% MFINPUT;
+%% -- generate tfm files running METAFONT on *.mf files, and put
+%% *.tfm files on the right location.
+%%
+%% Run LaTeX on esvect.dtx to generate
+%% documentation.
+%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="VECT"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+subs:=6/9; % subscripts to 9pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+43/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-111/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.49pt#-subs*asc_height#, % sup1
+ 7.99pt#-subs*asc_height#, % sup2
+ 93/36pt#, % sup3
+ 36/36pt#, % sub1
+ -(7.99pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+generate mathvec % switch to the driver file
+\endinput
+%%
+%% End of file `vect9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/esvect/vsymbol.mf b/Master/texmf-dist/fonts/source/public/esvect/vsymbol.mf
new file mode 100644
index 00000000000..0bcc0cbcc22
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/esvect/vsymbol.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `vsymbol.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% esvect.dtx (with options: `mfsymbol')
+%%
+%% esvect package to typeset vectors.
+%%
+%% See also http://perso.wanadoo.fr/eddie.saudrais (in french)
+%%
+%% Run LaTeX on escevt.ins to generate files.
+%%
+%% Install the files:
+%%
+%% -- esvect.sty and uesvect.fd on TEXINPUT;
+%% -- vect5.mf, vect6.mf, vect7.mf, vect8.mf, vect9.mf, vect10.mf on
+%% MFINPUT;
+%% -- generate tfm files running METAFONT on *.mf files, and put
+%% *.tfm files on the right location.
+%%
+%% Run LaTeX on esvect.dtx to generate
+%% documentation.
+%%
+
+
+
+r_arrow1=oct"000";
+r_arrow2=oct"001";
+r_arrow3=oct"002";
+r_arrow4=oct"003";
+r_arrow5=oct"004";
+r_arrow6=oct"005";
+r_arrow7=oct"006";
+r_arrow8=oct"007";
+r_arrow9=oct"010";
+r_arrow10=oct"011";
+r_arrow11=oct"012";
+r_arrow12=oct"013";
+r_arrow13=oct"014";
+
+
+r_arrow21=oct"020";
+r_arrow22=oct"021";
+r_arrow23=oct"022";
+r_arrow24=oct"023";
+r_arrow25=oct"024";
+r_arrow26=oct"025";
+r_arrow27=oct"026";
+r_arrow28=oct"027";
+r_arrow29=oct"030";
+r_arrow30=oct"031";
+r_arrow31=oct"032";
+r_arrow32=oct"033";
+r_arrow33=oct"034";
+
+
+trait01=oct"040";
+trait02=oct"041";
+trait03=oct"042";
+trait04=oct"043";
+trait05=oct"044";
+trait06=oct"045";
+trait07=oct"046";
+trait08=oct"047";
+
+
+traittest01=oct"050";
+traittest02=oct"051";
+traittest03=oct"052";
+traittest04=oct"053";
+traittest05=oct"054";
+traittest06=oct"055";
+traittest07=oct"056";
+traittest08=oct"057";
+
+input vecsym; % Les symboles
+\endinput
+%%
+%% End of file `vsymbol.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth__a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth__a.mf
new file mode 100644
index 00000000000..c9115073642
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth__a.mf
@@ -0,0 +1,204 @@
+%-------------------------------------------------------------
+% This is ETH__A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'a:
+cmchar "The letter 'a";
+beginchar(eth_'a,10u#,.55[cap_height#,x_height#],.25u#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'U:
+cmchar "The letter 'U";
+beginchar(eth_'U,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,2.5u#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-25);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+ x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+x8=x6r; y8=.8y6; rt_wing(8,1.5u,0);
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'I:
+cmchar "The letter 'I";
+beginchar(eth_'I,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,4u#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-25);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+ x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+x8=x7r; y8=y7; rt_half_ellipse(8,1.5u);
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'A:
+cmchar "The letter 'A";
+beginchar(eth_'A,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=.2h; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - 2fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'E:
+cmchar "The letter 'E";
+beginchar(eth_'E,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-25);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+x8=x7; y8=y7; half_ring(8);
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'e:
+cmchar "The letter 'e";
+beginchar(eth_'e,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(stem,0); penpos2(stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-.5stem; x3'=.15[x4,x3];
+x2r=x3l-fine; x1l=x2r; x0r=x1l+stem;
+y2=.7h; top y1=y2+.15h; y0=y1+.1h; bot y4=00; y4'=y4+.15h;
+top y3=.7h; y3'=.5[y4',y3];
+filldraw stroke z1e..z2e; t_thumb(0);
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'O:
+cmchar "The letter 'O";
+beginchar(eth_'O,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=.2h; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+penlabels(1,2,3,3',4',4,5,6,7,7'); endchar;
+
+
+iff known eth_'ua:
+cmchar "The letter 'ua";
+beginchar(eth_'ua,10u#,.55[cap_height#,x_height#],.25u#);
+adjust_fit(2u#,serif_fit#-stem_shift#);
+
+transform t,b; t=identity rotatedaround((.5w,.5h),-20);
+b=identity rotatedaround((.5w,.5h),10);
+
+pickup fine.nib; penpos0(1.2stem',0); penpos1(1.2stem,0); penpos2(1.2stem,0);
+penpos4(1.2stem,0); penpos3(.8stem,0); penpos4'(stem,0); penpos3'(stem,0);
+x4=1.75u; rt x3=.55w; x4'=x4-fine; x3'=.15[x4,x3]; x0=.3w;
+x2r=x3l-.5fine; x1=.5[x0,x2];
+top y0=h; y2=.75h; y1=.5[y0,y2]; bot y4=00; y4'=y4+.15h;
+top y3=.75h; y3'=.5[y4',y3];
+filldraw stroke z0e..z1e..z2e;
+filldraw stroke z4e..controls z4'e and z3'e..z3e{right};
+
+penpos5(vair,90); penpos6(stem,0);
+penpos7(1.2stem',0); penpos7'(stem,0);
+y5=.5h; y6=.45h-o; bot y7=00; y7'=.5[y6,y7];
+x5=.5[x4,x6] - fine; x7=w-x4; x6=x7-u; x7'=.5[x6,x7];
+filldraw stroke z7e..controls z7'e..z6e...{left}z5e transformed t;
+x11=x0r; x12=x0l; y11=y12=y0;
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(1,2,3,3',4',4,5,6,7,7',11,12); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth__g.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth__g.mf
new file mode 100644
index 00000000000..5e733ffa3c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth__g.mf
@@ -0,0 +1,166 @@
+%-------------------------------------------------------------
+% This is ETH__G.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_`a:
+cmchar "The letter `a";
+beginchar(eth_`a,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,210); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.75u; x2=x1-.5u; x2'=x2+1.25u;
+y0=.85h; y1=y0-.2h; y2=.225h; bot y2'=0; y3=.075h;
+filldraw stroke z0{left}..z1e..z2e{down}...z2'e---z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,145);
+x9l=x3l; x10=x9l+2.5u; x11=x9l+2.5u; x12l=x0l;
+y9r=y3l; y10=y9+.4h; y12l=y0r; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...z12e
+ shifted (1.5u,-.08h) rotated 8;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15); endchar;
+
+
+iff known eth_`U:
+cmchar "The letter `U";
+beginchar(eth_`U,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,210); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.75u; x2=x1-.5u; x2'=x2+1.25u;
+y0=.85h; y1=y0-.2h; y2=.225h; bot y2'=0; y3=.075h;
+filldraw stroke z0{left}..z1e..z2e{down}...z2'e---z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,145);
+x9l=x3l; x10=x9l+2.5u; x11=x9l+2.5u; x12l=x0l;
+y9r=y3l; y10=y9+.4h; y12l=y0r; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...z12e
+ shifted (1.5u,-.08h) rotated 8;
+x13=x11r; y13=.6(y0-y2'); rt_wing(13,1.75u,.02h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15); endchar;
+
+
+iff known eth_`I:
+cmchar "The letter `I";
+beginchar(eth_`I,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,3u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(stem,180);
+penpos2(stem,180); penpos2'(.8stem,180); penpos3(vair,270);
+x0=.5w; x3=x0-u; x1=x0-3.5u; x2=x1-.5u; x2'=x1+.5stem;
+y0=h; y1r=y0l-.1h; y2=y1r-.2h; y2'r=y2-.1h; y3r=y2'r;
+filldraw stroke z0e{left}...z1e...z2e...z2'e...{right}z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos12(stem,0);
+penpos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,0); penpos5(stem,0); penpos4'(stem,0); penpos5'(stem,0);
+x4l=x3r+1.5u; x4'l=x4l-.25u; x5l=x4l+1u; x5'l=x5l+.5u;
+y5=y9l; bot y4=00; y5'=.85(y5-y4)+y4; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e{right}..{down}z5'e--z4'e{down}..{right}z4e;
+x14=x4r; y14=y4; rt_half_ellipse(14,1.5u);
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
+
+
+iff known eth_`A:
+cmchar "The letter `A";
+beginchar(eth_`A,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(stem,180);
+penpos2(stem,180); penpos2'(.8stem,180); penpos3(vair,270);
+x0=.5w; x3=x0-u; x1=x0-3.5u; x2=x1-.5u; x2'=x1+.5stem;
+y0=h; y1r=y0l-.1h; y2=y1r-.2h; y2'r=y2-.1h; y3r=y2'r;
+filldraw stroke z0e{left}...z1e...z2e...z2'e...{right}z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos12(stem,0);
+penpos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,0); penpos5(stem,0); penpos4'(stem,0); penpos5'(stem,0);
+x4l=x3r+1.5u; x4'l=x4l-.25u; x5l=x4l+1u; x5'l=x5l+.5u;
+y5=y9l; bot y4=00; y5'=.85(y5-y4)+y4; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e{right}..{down}z5'e--z4'e{down}..{right}z4e;
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
+
+
+iff known eth_`E:
+cmchar "The letter `E";
+beginchar(eth_`E,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,3u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180);
+penpos2(stem,180); penpos2'(.8stem,180); pos3(vair,270);
+x0=.5w; x3=x0-u; x1=x0-3.5u; x2=x1-.5u; x2'=x1+.5stem;
+y0=h; y1r=y0l-.1h; y2=y1r-.2h; y2'r=y2-.1h; y3r=y2'r;
+filldraw stroke z0e{left}...z1e...z2e...z2'e...{right}z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos12(stem,0);pos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,0); penpos5(stem,0); penpos4'(stem,0); penpos5'(stem,0);
+x4l=x3r+1.5u; x4'l=x4l-.25u; x5l=x4l+1u; x5'l=x5l+.5u;
+y5=y9l; bot y4=00; y5'=.85(y5-y4)+y4; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e{right}..{down}z5'e--z4'e{down}..{right}z4e;
+half_ring(4);
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
+
+
+iff known eth_`e:
+cmchar "The letter `e";
+beginchar(eth_`e,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.75u#,-.25u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,200); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.25u; x2=x1-.5u; x2'=x2+1.5u;
+y0=.7h; y1=y0-.15h; y2=.25h; bot y2'=0; y3=.05h;
+filldraw stroke z0e{left}...z1e..z2e{down}...z2'e---z3;
+
+pos9(vair,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,90);
+x9l=x3l; x10=x9l+2.25u; x11=x9l+2.25u; x12l=x0l;
+y9r=y3l; y10=y9+.2h; y12l=y0r-oo; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...{left}z12e;
+
+penpos16(1.2stem,0); penpos16'(1.2stem,0);
+x16=x0; x16'=x0-.25u; y16=y0+oo; y16'=y0+.25h;
+filldraw stroke z16e--z16'e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,16'); endchar;
+
+
+iff known eth_`O:
+cmchar "The letter `O";
+beginchar(eth_`O,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180); pos3(vair,270);
+x0=.6w; x3=x0-u; x1=x0-3u; x2=x1; y0=h; y1r=y0l-.2h; y2=y1r-.15h; y3r=y2r-.15h;
+filldraw stroke pulled_arc.e(0,1)...z2e{down}..{right}z3e;
+
+pos9(stem,0); penpos10(stem,0); penpos11(stem,0);
+penpos12(stem,0); pos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x11=x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h; y11=.5(y12-y9)+y9;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,180); penpos4'(stem,180); pos5(vair,180);
+x4r=x3r-4u; x5=x3; x4'r=x4r-.5u;
+y5=y3r; bot y4=00; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e..z4'e{down}...{right}z4e;
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_acce.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_acce.mf
new file mode 100644
index 00000000000..d6c23b7962f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_acce.mf
@@ -0,0 +1,45 @@
+%-------------------------------------------------------------
+% This is ETH_ACCE.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_d_accent:
+cmchar "d accent";
+beginchar(eth_d_accent,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+penpos9(1.3stem,0); penpos10(1.3stem,0); penpos11(1.3stem,0);
+x9r+.5u=x10r=.6w; x11r=x10r-.5u; y9=.85h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(9,10,11); endchar;
+
+
+iff known eth_rassigea:
+cmchar "Rassigea accent";
+beginchar(eth_rassigea,11u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+penpos6(stem,0); penpos7(stem,0); x6=.5w; x7=.5w; y6=h+o; y7=h;
+lft_half_ellipse(6,2u); rt_half_ellipse(7,2u);
+penlabels(1,2,2',3,4,6,7); endchar;
+
+
+iff known eth_girigea:
+cmchar "Girigea accent";
+beginchar(eth_girigea,11u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+x3=.675w; y3=-.1h; rt_wing(3,1.75u,0);
+x4=.675w; y4=-.1h; lft_wing(4,1.75u,0);
+penlabels(3,4); endchar;
+
+
+iff known eth_rass:
+cmchar "rass accent";
+beginchar(eth_rass,11u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+x14=.5w; x15=.5w; y14=y15=h;
+upper_left_wing(14); upper_right_wing(15);
+penlabels(1,2,2',3,4,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_b.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_b.mf
new file mode 100644
index 00000000000..82d9b701651
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_b.mf
@@ -0,0 +1,276 @@
+%-------------------------------------------------------------
+% This is ETH_B.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ba:
+cmchar "The letter ba";
+beginchar(eth_ba,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bU:
+cmchar "The letter bU";
+beginchar(eth_bU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x4'r; y6=.5h; rt_half_ellipse(6,1.5u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bI:
+cmchar "The letter bI";
+beginchar(eth_bI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+z6=z4r; rt_half_ellipse(6,1.25u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bA:
+cmchar "The letter bA";
+beginchar(eth_bA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bE:
+cmchar "The letter bE";
+beginchar(eth_bE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x4; bot y6=0; half_ring(6);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_be:
+cmchar "The letter be";
+beginchar(eth_be,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.75u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x7r; y6=.6h; lft_wing(6,2u,.015h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bO:
+cmchar "The letter bO";
+beginchar(eth_bO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; y4=.25h; y5=.95h; y4'=.35h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_bua:
+cmchar "The letter bua";
+beginchar(eth_bua,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,6.0u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,7,8);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x4'r; x20'=x20+2.5u; y20=y20'=.5h; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20);
+endchar;
+
+
+iff known eth_buI:
+cmchar "The letter buI";
+beginchar(eth_buI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,7u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,7,8);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=x4r; x9'=x9+2.5u; y9=y9'=0.5h;
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.5u; y10=y9-.15h; y10'=y9+.2h;
+y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,1.5u,-.01h);
+endchar;
+
+
+iff known eth_buA:
+cmchar "The letter buA";
+beginchar(eth_buA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,4u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x20=x4l; x21=x4r; y20=y21=y4; lft_wing(20,2u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_buE:
+cmchar "The letter buE";
+beginchar(eth_buE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,4u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.15h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+x10=x4'l; y10=y4; lft_wing(10,2u,.045h);
+x11=x4; y11=y4; half_ring(11);
+endchar;
+
+iff known eth_bue:
+cmchar "The letter bue";
+beginchar(eth_bue,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+penlabels(1,2,3,4,5,7,8);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=x4r; x9'=x9+1.5u; y9=y9'=0.5h;
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.25u; y10=y9; y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,0,-.01h);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_c_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_c_c.mf
new file mode 100644
index 00000000000..8b37a800d13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_c_c.mf
@@ -0,0 +1,173 @@
+%-------------------------------------------------------------
+% This is ETH_C_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^ca:
+cmchar "The letter ^ca";
+beginchar(eth_^ca,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+penlabels(1,2,2',3,4,6,7); endchar;
+
+
+iff known eth_^cU:
+cmchar "The letter ^cU";
+beginchar(eth_^cU,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+x8=x2r; y8=.25h; rt_half_ellipse(8,1.75u);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_^cI:
+cmchar "The letter ^cI";
+beginchar(eth_^cI,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.5u); rt_half_ellipse(7,1.5u);
+z8=z2'r; rt_half_ellipse(8,1.5u);
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_^cA:
+cmchar "The letter ^cA";
+beginchar(eth_^cA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,.5u#);
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(stem,0);
+pos2(vair,-90);
+
+x0=.5w; x0'=x0+.5u; x1=x0+.25u; x2=x0-4u;
+y0=.95h; y0'=y0-.1h; y1=.4h; y2=.15h;
+filldraw stroke z0e{right}...{down}z0'e---z1e..pulled_arc.e(1,2);
+x3=x0'r+oo; x3'=lft x0'l; y3=.65h; y3'=y3-oo;
+rt_wing(3,2u,.02h); lft_wing(3',2u,.02h);
+z4=z2l; t_wing(4);
+penpos6(stem,0); penpos7(stem,0); x6=x0l; x7=x0r; y7=y6=y0;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_^cE:
+cmchar "The letter ^cE";
+beginchar(eth_^cE,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+x8=x2'; bot y8=0; half_ring(8);
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known eth_^ce:
+cmchar "The letter ^ce";
+beginchar(eth_^ce,10u#,cap_height#,0);
+adjust_fit(2.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,0); penpos2(stem,0); penpos2'(stem,0);
+x1=w-4.75u; x2=x1-.75u; x2'=x1; y1=.8h; y2=.075h; bot y2'=0;
+filldraw stroke z1e--z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.55h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.55h; lft_wing(4,2u,.02h);
+
+penpos5(stem,0); penpos5'(stem,5); x5r=x1l; x5'r=x5r+.25u;
+y5=y1; y5'=y5+.15h; filldraw stroke z5e--z5'e;
+
+x6=x5'l; x7=x5'r; y6=y7=y5';
+upside_down_left_wing(6); rt_half_ellipse(7,1.5u);
+penlabels(1,2,2',3,4); endchar;
+
+
+iff known eth_^cO:
+cmchar "The letter ^cO";
+beginchar(eth_^cO,10u#,cap_height#,0);
+adjust_fit(1.5u#,1.5u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos2'(stem,180);
+pos3(vair,115); pos4(stem,0); pos4'(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.5u; x2'=x2+u;
+x3=x0+.5u; x4r=x1l+2u; x4'r=x4r-u; x5=x1;
+bot y0=0; y0'=.125h; y1=.5h; y2=.7h; y2'=y4'=.85h; y4=.75h; y5=.575h;
+
+filldraw stroke pulled_arc.e(5,4)...z4'e--z2'e{left}...{down}z2e...z1e{down}
+...z0'e{down}..z0e;
+x6=x1l; x6'=lft x1r; y6=.45h; y6'=y6-oo;
+rt_wing(6,2u,.02h); lft_wing(6',2u,.02h);
+
+x7=x4'r+2.5u; x8=x2'r; y7=y4'+.175h; y8=y2'+.15h;
+right_wing_no_bar(7) lft_half_ellipse(8,0);
+pos9(vair,90); pos9'(vair,90); x9=x2'r; x9'=x9-.75u; y9=y2'; y9'=y9+.05h;
+draw z9--z9';
+penlabels(1,2,2',4,4',5,6,7,8,9,9'); endchar;
+
+
+iff known eth_^cuA:
+cmchar "The letter ^cuA";
+beginchar(eth_^cuA,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+% STEM
+pickup fine.nib; penpos1(stem,7); penpos2(stem,0); penpos2'(stem,5);
+x1=w-4.75u; x2=x1-.75u; x2'=x1;
+y1=.95h; y2=.075h; bot y2'=0;
+filldraw stroke z1e---z2e{down}...{right}z2'e;
+
+% WINGS
+x3=.5[x1r,x2'r]; y3=.65h; rt_wing(3,2u,.02h);
+x4=.5[x1l,x2l]; y4=.65h; lft_wing(4,2u,.02h);
+
+penpos6(stem,0); penpos7(stem,0); x6=x1l; x7=x1r; y7=y6=y1;
+lft_half_ellipse(6,1.75u); rt_half_ellipse(7,1.75u);
+
+x20=x2'l; x21=x2'r; y20=y21=y2'; lft_wing(20,2u,.02h);
+rt_wing(21,1.25u,.02h);
+penlabels(1,2,2',3,4,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_cc.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_cc.mf
new file mode 100644
index 00000000000..7da5790236d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_cc.mf
@@ -0,0 +1,163 @@
+%-------------------------------------------------------------
+% This is ETH_CC.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ca:
+cmchar "The letter Ca";
+beginchar(eth_Ca,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,-.25u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,210); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.5u; x2=x1-.5u; x2'=x2+1.25u;
+y0=.9h; y1=y0-.2h; y2=.2h; bot y2'=0; y3=.075h;
+filldraw stroke z0{left}..z1e..z2e{down}...z2'e---z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,145);
+x9l=x3l; x10=x9l+2u; x11=x9l+2u; x12l=x0l;
+y9r=y3l; y10=y9+.4h; y12l=y0r; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...z12e
+ shifted (1.5u,-.08h) rotated 8;
+
+x14=x1; x15=x11; y14=.5[y0,y2']; y15=y14+.1h;
+draw z14--z15;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15); endchar;
+
+
+iff known eth_CU:
+cmchar "The letter CU";
+beginchar(eth_CU,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,3.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,210); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2.5u; x2=x1-.5u; x2'=x2+1.25u;
+y0=.9h; y1=y0-.2h; y2=.2h; bot y2'=0; y3=.075h;
+filldraw stroke z0{left}..z1e..z2e{down}...z2'e---z3e;
+
+penpos9(stem,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,145);
+x9l=x3l; x10=x9l+2u; x11=x9l+2u; x12l=x0l;
+y9r=y3l; y10=y9+.4h; y12l=y0r; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...z12e
+ shifted (1.5u,-.08h) rotated 8;
+x13=x11r; y13=.5(y0-y2'); rt_wing(13,2u,.015h);
+x14=x1; x15=x11; y14=.5[y0,y2']; y15=y14+.1h;
+draw z14--z15;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15); endchar;
+
+
+iff known eth_CI:
+cmchar "The letter CI";
+beginchar(eth_CI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,0); penpos2(stem,0); pos3(vair,0);
+pos4(vair,90);
+x0l=x4r=.475w; x1=x0-.25u; x2r=w-.75u; x3r=x4r+u;
+bot y0=0; y1=y0+.2h; y2=.7h; top y3=.95h; y4=y3-o;
+filldraw stroke z0e{left}..{up}z1e--z2e{up}...{left}z3e...z4e;
+
+pos5(vair,90); penpos6(stem,180); pos7(vair,270);
+x5=x4; y5=y4; x6r=.75u; y6=y2-.05h; x7=x0; y7=.5h;
+filldraw stroke pulled_arc.e(5,6)..pulled_arc.e(6,7);
+x8=x6; x9=x2; y8=y7+.4(y5-y7); y9=y8+.1h; draw z8--z9;
+x10=x0; bot y10=oo; rt_half_ellipse(10,2u);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+iff known eth_CA:
+cmchar "The letter CA";
+beginchar(eth_CA,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,0); penpos2(stem,0); pos3(vair,0);
+pos4(vair,90);
+x0l=x4r=.475w; x1=x0-.25u; x2r=w-.75u; x3r=x4r+1u;
+bot y0=0; y1=y0+.2h; y2=.7h; top y3=.95h; y4=y3-o;
+filldraw stroke z0e{left}..{up}z1e--z2e{up}...{left}z3e...z4e;
+
+pos5(vair,90); penpos6(stem,180); pos7(vair,270);
+x5=x4; y5=y4; x6r=.75u; y6=y2-.05h; x7=x0; y7=.5h;
+filldraw stroke pulled_arc.e(5,6)..pulled_arc.e(6,7);
+x8=x6; x9=x2; y8=y7+.4(y5-y7); y9=y8+.1h; draw z8--z9;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+iff known eth_CE:
+cmchar "The letter CE";
+beginchar(eth_CE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,0); penpos2(stem,0); pos3(vair,0);
+pos4(vair,90);
+x0l=x4r=.475w; x1=x0-.25u; x2r=w-.75u; x3r=x4r+1u;
+bot y0=0; y1=y0+.2h; y2=.7h; top y3=.95h; y4=y3-o;
+filldraw stroke z0e{left}..{up}z1e--z2e{up}...{left}z3e...z4e;
+
+pos5(vair,90); penpos6(stem,180); pos7(vair,270);
+x5=x4; y5=y4; x6r=.75u; y6=y2-.05h; x7=x0; y7=.5h;
+filldraw stroke pulled_arc.e(5,6)..pulled_arc.e(6,7);
+x8=x6; x9=x2; y8=y7+.4(y5-y7); y9=y8+.1h; draw z8--z9;
+x10=x0; bot y10=0; half_ring(10);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+iff known eth_Ce:
+cmchar "The letter Ce";
+beginchar(eth_Ce,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.25u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180);
+pos2'(stem,200); pos3(vair,270); pos3'(vair,270);
+x0=x3=.5w; x1=x0-2u; x2=x1-.5u; x2'=x2+1.5u;
+y0=.7h; y1=y0-.15h; y2=.25h; bot y2'=0; y3=.025h;
+filldraw stroke z0e{left}...z1e..z2e{down}...z2'e---z3;
+
+pos9(vair,0); penpos10(stem,0); penpos11(stem,0); pos12(vair,90);
+x9l=x3l; x10=x9l+2.25u; x11=x9l+2.25u; x12l=x0l;
+y9r=y3l; y10=y9+.2h; y12l=y0r-oo; y11=y12r-.2h;
+filldraw stroke z9e{right}...z10e{up}...z11e{up}...{left}z12e;
+x14=x1; x15=x11; y14=.5[y0,y2']; y15=y14+.1h;
+draw z14--z15;
+penpos16(1.2stem,0); penpos16'(1.2stem,0);
+x16=x0; x16'=x0-.25u; y16=y0+oo; y16'=y0+.25h;
+filldraw stroke z16e--z16'e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,14,15,16,16'); endchar;
+
+
+iff known eth_CO:
+cmchar "The letter CO";
+beginchar(eth_CO,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); penpos1(stem,180); penpos2(stem,180); pos3(vair,270);
+x0=.6w; x3=x0-u; x1=x0-3u; x2=x1; y0=h; y1r=y0l-.2h; y2=y1r-.15h; y3r=y2r-.15h;
+filldraw stroke pulled_arc.e(0,1)...z2e{down}..{right}z3e;
+
+pos9(stem,0); penpos10(stem,0); penpos11(stem,0);
+penpos12(stem,0); pos13(vair,90);
+x9l=x3l; x10=x0+1.5u; x11=x12=x0+1.5u; x13l=x0l;
+y9r=y3r; y10r=y9r+.15h; y13r=y0r; y12r=y13r-.1h; y11=.5(y12-y9)+y9;
+filldraw stroke z13e{right}...z12e...z10e...z9e{left};
+
+penpos4(stem,180); penpos4'(stem,180); pos5(vair,180);
+x4r=x3r-4u; x5=x3; x4'r=x4r-.5u;
+y5=y3r; bot y4=00; y4'=.15(y5-y4)+y4;
+filldraw stroke z5e..z4'e{down}...{right}z4e;
+x14=x1; x15=x11; y14=.5[y0,y3]; y15=y14+.075h;
+filldraw stroke z14--z15;
+penlabels(1,2,3,4,5,6,7,8,9,4,5,12,13); endchar;
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_cc_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_cc_c.mf
new file mode 100644
index 00000000000..a3ba69356ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_cc_c.mf
@@ -0,0 +1,190 @@
+%-------------------------------------------------------------
+% This is ETH_CC_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^Ca:
+cmchar "The letter ^Ca";
+beginchar(eth_^Ca,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0; y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CU:
+cmchar "The letter ^CU";
+beginchar(eth_^CU,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+x14=x8r; y14=.6h; rt_wing(14,2u,0);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CI:
+cmchar "The letter ^CI";
+beginchar(eth_^CI,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x14=x10; y14=y10; rt_wing(14,2u,0);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CA:
+cmchar "The letter ^CA";
+beginchar(eth_^CA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w+.25u; x2'=x2-.75u; x3=x2'+.5u; x4r=x2l; x5r=1u; x6r=x5r+.25u;
+x7=x2r-oo; x9r=x8r-u=w-x5r-1.25u; x10r=x9r+.5u;
+y2=.9h; y3=.4h; y2'=y3+.075h; y4r=y2-o; y6=.4h; y5=y6+.15h;
+y7=y2; y8=y2-.2h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e---z8e{up}..{left}z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CE:
+cmchar "The letter ^CE";
+beginchar(eth_^CE,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,6.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+
+x18=x8r; x18'=x18+2.5u; y18=y8; y18'=y8; draw z18--z18';
+x19=x18'; y19=y18'-.25h; large_ring(19,7);
+
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^Ce:
+cmchar "The letter ^Ce";
+beginchar(eth_^Ce,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,0); penpos2(stem,0); penpos3(stem,0);
+penpos3'(stem,-20); penpos2'(stem,0); penpos5(stem,180); penpos4(stem,180);
+pos6(vair,90); penpos7(stem,0); penpos8(stem,5);
+x0=x2'=x3=hround(.5w); x1=hround(x3-fine); x2l=x3;
+x6=hround(.5w); x5l=hround u; x4r=x5r+.5fine; x8r=w-x5r-1.75u; x7r=w-x5r-1.75u;
+top y0=.9h; bot y3=0; y6l=y0; y7r=y6l-.3h;
+y1=y2=y5=y7; y2'=.25(y2-y3)+y3; y4=y8=y1-.15h;
+
+filldraw stroke z2e..controls z2'e..z3e; filldraw stroke z0e{down}...z1e;
+filldraw stroke z8e...pulled_super_arc.e(7,6)(superpull);
+filldraw stroke z4e...pulled_super_arc.e(5,6)(superpull);
+x11=x3+.25u; y11=y3; jj_ring(11);
+x12=x4+.25u; y12=y4; jj_ring(12);
+x13=x7; y13=y8; jj_ring(13);
+penlabels(0,1,2,3,4,5,5',6,7,8); endchar;
+
+
+iff known eth_^CO:
+cmchar "The letter ^CO";
+beginchar(eth_^CO,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,145);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w; x2'=x2-.25u; x3=x2'+.5u; x4r=x2l; x5'r=2u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x9r=x8r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.8h; y3=.25h; y2'=y3+.075h; y4r=y2-o; top y6=0; y5=y6+.15h; y5'=y4r-.5h;
+y7=y2; y8=y2-.2h; bot y10=.25h; y9=y10+.075h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke pulled_arc.e(4,5)..z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e..z8e{up}..{left}z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_^CuA:
+cmchar "The letter ^CuA";
+beginchar(eth_^CuA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.25u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+
+x2=x2'+0.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+
+y2=.65h; y2'=.15h; bot y3=.1h;
+y4r=y2-o; y5=.15h; y5'=.35h; bot y6=.1h;
+top y7r=y2-o; y8=y2-.15h; y9=.025h; bot y10=-.05h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6-.25u; y12=y6; jj_ring(12);
+x20=x10l; x21=x10r; y20=y21=y10; lft_wing(20,1.5u,.02h);
+rt_wing(21,1.25u,.02h);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_ccc2.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_ccc2.mf
new file mode 100644
index 00000000000..7711151ab43
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_ccc2.mf
@@ -0,0 +1,186 @@
+%-------------------------------------------------------------
+% This is ETH_CCC2.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_var^Ca:
+cmchar "The variant letter ^Ca";
+beginchar(eth_var^Ca,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0; y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+% x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CU:
+cmchar "The variant letter ^CU";
+beginchar(eth_var^CU,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; %%%%%%%%%%%%% jj_ring(13);
+x14=x8r; y14=.5h; rt_wing(14,2u,0);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CI:
+cmchar "The variant letter ^CI";
+beginchar(eth_var^CI,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x14=x10; y14=y10; rt_wing(14,2u,0);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CA:
+cmchar "The variant letter ^CA";
+beginchar(eth_var^CA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w+.25u; x2'=x2-.75u; x3=x2'+.5u; x4r=x2l; x5r=1u; x6r=x5r+.25u;
+x7=x2r-oo; x9r=x8r-u=w-x5r-1.25u; x10r=x9r+.5u;
+y2=.9h; y3=.4h; y2'=y3+.075h; y4r=y2-o; y6=.4h; y5=y6+.15h;
+y7=y2; y8=y2-.2h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e---z8e{up}..{left}z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; %%%%%%%%%%%%jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CE:
+cmchar "The variant letter ^CE";
+beginchar(eth_var^CE,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^Ce:
+cmchar "The variant letter ^Ce";
+beginchar(eth_var^Ce,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,0); penpos2(stem,0); penpos3(stem,0);
+penpos3'(stem,-20); penpos2'(stem,0); penpos5(stem,180); penpos4(stem,180);
+pos6(vair,90); penpos7(stem,0); penpos8(stem,5);
+x0=x2'=x3=hround(.5w); x1=hround(x3-fine); x2l=x3;
+x6=hround(.5w); x5l=hround u; x4r=x5r+.5fine; x8r=w-x5r-1.75u; x7r=w-x5r-1.75u;
+top y0=.9h; bot y3=0; y6l=y0; y7r=y6l-.3h;
+y1=y2=y5=y7; y2'=.25(y2-y3)+y3; y4=y8=y1-.15h;
+
+filldraw stroke z2e..controls z2'e..z3e; filldraw stroke z0e{down}...z1e;
+filldraw stroke z8e...pulled_super_arc.e(7,6)(superpull);
+filldraw stroke z4e...pulled_super_arc.e(5,6)(superpull);
+x11=x3+.25u; y11=y3; jj_ring(11);
+x12=x4+.25u; y12=y4; jj_ring(12);
+x13=x7; y13=y8; %%%%%%%%%%%%jj_ring(13);
+penlabels(0,1,2,3,4,5,5',6,7,8); endchar;
+
+
+iff known eth_var^CO:
+cmchar "The variant letter ^CO";
+beginchar(eth_var^CO,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,145);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w; x2'=x2-.25u; x3=x2'+.5u; x4r=x2l; x5'r=2u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x9r=x8r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.8h; y3=.25h; y2'=y3+.075h; y4r=y2-o; top y6=0; y5=y6+.15h; y5'=y4r-.5h;
+y7=y2; y8=y2-.2h; bot y10=.25h; y9=y10+.075h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke pulled_arc.e(4,5)..z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e..z8e{up}..{left}z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6; y12=y6; jj_ring(12);
+x13=x10; y13=y10; %%%%%%%%%%%%%%jj_ring(13);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_var^CuA:
+cmchar "The variant letter ^CuA";
+beginchar(eth_var^CuA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.25u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+
+x2=x2'+.25u=.5w; x3=x2'+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+
+y2=.65h; y2'=.15h; bot y3=.1h;
+y4r=y2-o; y5=.15h; y5'=.35h; bot y6=.1h;
+top y7r=y2-o; y8=y2-.15h; y9=.025h; bot y10=-.05h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x3; y11=y3; jj_ring(11);
+x12=x6-.25u; y12=y6; jj_ring(12);
+x20=x10l; x21=x10r; y20=y21=y10; lft_wing(20,1.5u,.02h);
+rt_wing(21,1.25u,.02h);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_d.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_d.mf
new file mode 100644
index 00000000000..a550749081a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_d.mf
@@ -0,0 +1,244 @@
+%-------------------------------------------------------------
+% This is ETH_D.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_da:
+cmchar "The letter da";
+beginchar(eth_da,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,1u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.025h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+x9=x0; y9=y0; rt_wing(9,0,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dU:
+cmchar "The letter dU";
+beginchar(eth_dU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,4u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.45h; y0=y1+o; y2=.75h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.6h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=.5[x1r,x2r]; x7=x6-1.5u; y6=y5-.05h; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=.075h; bot y12=0;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+x13=x9l; y13=y0-.1h; rt_wing(13,2u,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dI:
+cmchar "The letter dI";
+beginchar(eth_dI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,3u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.45h; y0=y1+o; y2=.75h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.6h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=.5[x1r,x2r]; x7=x6-1.5u; y6=y5-.05h; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=.075h; bot y12=0;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+z13=z12l; rt_half_ellipse(13,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dA:
+cmchar "The letter dA";
+beginchar(eth_dA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.45h; y0=y1+o; y2=.75h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.6h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=.5[x1r,x2r]; x7=x6-1.5u; y6=y5-.05h; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=.075h; bot y12=0;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dE:
+cmchar "The letter dE";
+beginchar(eth_dE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.25h; y0=y1-.025h; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.025h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+x9=x0-.75u; y9=y0-.025h; dfive_ring(9,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_de:
+cmchar "The letter de";
+beginchar(eth_de,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.025h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+x9=x0; y9=y0; rt_wing(9,0,0);
+x10=x4; y10=y4-.2h; rt_wing(10,1.5u,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_dO:
+cmchar "The letter dO";
+beginchar(eth_dO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,2u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,180); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-.75u;
+y1=.45h; y0=y1-.05h; y2=.7h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); penpos7(stem,180); penpos8(stem,180);
+x6=x1r; x7=x6-3.5u; x8=x7+.5u;
+y6=y1; y7=.075h; bot y8=0; filldraw stroke z6e{left}..z7e{down}..{right}z8e;
+x9=x0; y9=y0; rt_wing(9,0,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_duA:
+cmchar "The letter duA";
+beginchar(eth_duA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,3u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.45h; y0=y1+o; y2=.75h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.6h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=.5[x1r,x2r]; x7=x6-1.5u; y6=y5-.05h; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=.075h; bot y12=0;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+x20=x12; x21=x20; y20=y21=y12; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_varduA:
+cmchar "The variant letter duA";
+beginchar(eth_varduA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x6=x1r; y6=y1; lft_wing(6,u,.025h);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+x20=x0+2u; x21=x20; y20=y21=y0-.175h; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_dd.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_dd.mf
new file mode 100644
index 00000000000..95713e6c037
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_dd.mf
@@ -0,0 +1,277 @@
+%-------------------------------------------------------------
+% This is ETH_DD.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Da:
+cmchar "The letter Da";
+beginchar(eth_Da,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10; y10=y3+o; y10'=y10+.15h;
+filldraw stroke z10e--z10'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DU:
+cmchar "The letter DU";
+beginchar(eth_DU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+x13=x9l; y13=y0-.1h; rt_wing(13,2u,0);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DI:
+cmchar "The letter DI";
+beginchar(eth_DI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.75u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+z13=z12l; rt_half_ellipse(13,1.5u);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DA:
+cmchar "The letter DA";
+beginchar(eth_DA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DE:
+cmchar "The letter DE";
+beginchar(eth_DE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0-.75u; y9=y0-(.025h+o); dfive_ring(9,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10; y10=y3+o; y10'=y10+.15h;
+filldraw stroke z10e--z10'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_De:
+cmchar "The letter De";
+beginchar(eth_De,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,4u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10; y10=y3+o; y10'=y10+.15h;
+filldraw stroke z10e--z10'e;
+x13=x4r; y13=y4; rt_wing(13,1.5u,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DO:
+cmchar "The letter DO";
+beginchar(eth_DO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-.75u;
+y1=.25h; y0=y1-.05h; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); penpos7(stem,180); penpos8(stem,180);
+x6=x1r; x7=x6-3.5u; x8=x7+.5u;
+y6=y1; y7=-.125h; bot y8=-.2h; filldraw stroke z6e{left}..z7e{down}..{right}z8e;
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_DuA:
+cmchar "The letter DuA";
+beginchar(eth_DuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.35h; y0=y1+o; y2=.65h; top y3=.9h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.5h; y4=.75h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=0.025; bot y12=-.05h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+
+x20=x12; x21=x20; y20=y21=y12; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_varDuA:
+cmchar "The variant letter DuA";
+beginchar(eth_varDuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x6=x1r; y6=y1; lft_wing(6,u,.025h);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+x20=x0+2u; x21=x20; y20=y21=y0-.175h; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10; y10=y3+o; y10'=y10+.15h;
+filldraw stroke z10e--z10'e;
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_f.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_f.mf
new file mode 100644
index 00000000000..b81ae32ecac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_f.mf
@@ -0,0 +1,138 @@
+%-------------------------------------------------------------
+% This is ETH_F.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_fa:
+cmchar "The letter fa";
+beginchar(eth_fa,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-.5u;
+
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.15h; y5=.15h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; y6=y5; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fU:
+cmchar "The letter fU";
+beginchar(eth_fU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,u#);
+
+pickup fine.nib; penpos0(1.2stem,185); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); penpos5(1.2stem,0); penpos5'(stem,0);
+penpos6(stem,0); penpos6'(stem,0); pos3'(vair,270);
+
+x0=w-6u; x1=x0+.5u; x2l=2u; x3=x2l+u; x3'=w-3u; x4=x3';
+x7=x2; x6=x7+3.5u; x6'=x6+.5u; x5=x7+2.5u; x5'=x5-.5u;
+top y0=h; y1=.9h; y2=.45h; y3=.35h; y3'=.4h; y4=.4h;
+y7=.6h-o; y6=.6h; y6'=y6-.1h; bot y5=0; y5'=y5+.075h;
+
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e---z3'e;
+rt_half_ellipse(4,0); draw z7--z6;
+filldraw stroke z6e{right}..{down}z6'e---z5'e{down}..{right}z5e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fI:
+cmchar "The letter fI";
+beginchar(eth_fI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+pos6(vair,270); penpos6'(1.2stem,360);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-1.5u;
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.1h; y5=.1h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; x6'=x6+2.5u; y6=y5; y6'=y6+.25h; filldraw stroke pulled_arc.e(6,6');
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fA:
+cmchar "The letter fA";
+beginchar(eth_fA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,u#);
+
+pickup fine.nib; penpos0(1.2stem,185); penpos1(1.1stem,180);
+penpos2(1.1stem,180); pos3(stem,195); penpos5(1.2stem,0); penpos5'(stem,0);
+penpos6(stem,0); penpos6'(stem,0); pos3'(vair,270);
+
+x0=w-6u; x1=x0+.75u; x2l=2u; x3=x2l+u; x3'=w-4.5u; x4=x3';
+x7=x2; x6=x7+3.75u; x6'=x6+.5u; x5=x7+3.75u; x5'=x5-.5u;
+top y0=h; y1=.9h; y2=.45h; y3=.35h; y3'=.35h; y4=.35h;
+y7=.6h-o; y6=.6h; y6'=y6-.1h; bot y5=0; y5'=y5+.075h;
+
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e---z3';
+rt_wing(4,2u,-.015h); draw z7..z6;
+filldraw stroke z6e{right}..{down}z6'e---z5'e{down}..{right}z5e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fE:
+cmchar "The letter fE";
+beginchar(eth_fE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,4.25u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+pos6(vair,270); penpos6'(1.2stem,360);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-1u;
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.1h; y5=.1h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5; y6=y5-.225h; large_ring(6,5);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fe:
+cmchar "The letter fe";
+beginchar(eth_fe,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,1.5u#);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(1.2stem,180);
+penpos2(stem,180); pos2'(stem,190); %% pos3(vair,270);
+x0=w-2.5u; x0'=x0-2u; x2r=u; x1r=1.5u; x2'r=x2r+.25h; x3=w-3.5u;
+top y0=.95h; top y0'=y0; y1=.75h; y2=.5h; y2'=.4h; y3=.4h;
+filldraw stroke z0e...z0'e...z1e..z2e{down}...z2'e---z3;
+x4=x3; y4=y3-o; rt_wing(4,2u,0); x4'=x0l; y4'=y0; r_wing(4');
+
+penpos6(stem,0); penpos6'(stem,0); penpos5(stem,0); penpos5'(stem,0);
+x7=x2; x6=x7+2.75u; x6'=x6+1.5u; x5=x7+3.5u; x5'=x5-.25u;
+y7=.6h+.05h; y6=.6h; y6'=y6-.1h; bot y5=0; y5'=y5+.075h;
+filldraw stroke z6e{right}..{down}z6'e---z5'e{down}..{right}z5e;
+penlabels(0,0',1,2,2',3,4,5,5',6,6',7); endchar;
+
+
+iff known eth_fO:
+cmchar "The letter fO";
+beginchar(eth_fO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(1.2stem,180);
+penpos2(stem,180); pos2'(stem,190); pos3(vair,270); pos4(vair,270);
+x0=w-3u; x0'=x0-1.75u; x2r=u; x1r=1.75u; x2'r=x2r+.25h; x3=w-3u; x4=x3+2u;
+top y0=.95h; top y0'=y0; y1=.75h; y2=.15h; bot y2'=0; y3=y4=.125h;
+filldraw stroke z0e...z0'e...z1e..z2e{down}..z2'e...z3e---z4e;
+x5=x0; y5=y0-.2h; large_ring(5,2);
+x6=x4-.5u; y6=y4; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,100);
+x7=x3-1.25u; x8=x7+.5u; x9=x2l; y7=y3-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,0',1,2,2',3,4,5,5',6,6',7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_fu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_fu.mf
new file mode 100644
index 00000000000..c2d58d0b38a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_fu.mf
@@ -0,0 +1,141 @@
+%-------------------------------------------------------------
+% This is ETH_FU.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_fua:
+cmchar "The letter fua";
+beginchar(eth_fua,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,5.5u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-.5u;
+
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.15h; y5=.15h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; y6=y5; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x1l; x20'=x20+2.5u; y20=y20'=y1l; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20,20');
+endchar;
+
+
+iff known eth_fuI:
+cmchar "The letter fuI";
+beginchar(eth_fuI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,5u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-.5u;
+
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.15h; y5=.15h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; y6=y5; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x1l; x20'=x20+1.5u; y20=y20'=y1l;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.5u; y21=y20-.1h;
+y21'=y20+.2h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,1u,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_fuA:
+cmchar "The letter fuA";
+beginchar(eth_fuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,u#);
+
+pickup fine.nib; penpos0(1.2stem,185); penpos1(1.1stem,180);
+penpos2(1.1stem,180); pos3(stem,195); penpos5(1.2stem,0); penpos5'(stem,0);
+penpos6(stem,0); penpos6'(stem,0); pos3'(vair,270);
+
+x0=w-6u; x1=x0+.75u; x2l=2u; x3=x2l+u; x3'=w-4.5u; x4=x3';
+x7=x2; x6=x7+3.75u; x6'=x6+.5u; x5=x7+3.75u; x5'=x5-.5u;
+top y0=h; y1=.9h; y2=.45h; y3=.35h; y3'=.35h; y4=.35h;
+y7=.6h-o; y6=.6h; y6'=y6-.1h; bot y5=0; y5'=y5+.075h;
+
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e---z3';
+rt_wing(4,2u,.015h); draw z7..z6;
+filldraw stroke z6e{right}..{down}z6'e---z5'e{down}..{right}z5e;
+x20=x5'l; x21=x5'r; y20=y21=y5; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(0,1,2,3,4,5,6);
+endchar;
+
+
+iff known eth_fuE:
+cmchar "The letter fuE";
+beginchar(eth_fuE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,1u#);
+
+pickup fine.nib; penpos0(1.2stem,185); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); penpos5(1.2stem,0); penpos5'(stem,0);
+penpos6(stem,0); penpos6'(stem,0); pos3'(vair,270);
+
+x0=w-6u; x1=x0+.5u; x2l=2u; x3=x2l+u; x3'=w-3u; x4=x3';
+x7=x2; x6=x7+3.5u; x6'=x6+.5u; x5=x7+2.5u;
+top y0=h; y1=.9h; y2=.45h; y3=.35h; y3'=.4h; y4=.4h;
+y7=.6h-o; y6=.6h; y6'=y6-.1h; y5=-.1h;
+
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e---z3'e;
+rt_half_ellipse(4,0); draw z7--z6;
+filldraw stroke z6e{right}..{down}z6'e---z5e;
+penlabels(0,1,2,3,4,5,6);
+
+x10=x5r-.25u; y10=y5; half_ring(10);
+z11=z5l; lft_wing(11,2u,.05h);
+endchar;
+
+
+iff known eth_fue:
+cmchar "The letter fue";
+beginchar(eth_fue,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,4u#);
+
+pickup fine.nib; penpos0(1.2stem,187); penpos1(1.1stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+x0l=w-3u; x1l=x0l+.5u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-.5u;
+
+top y0=h; y1=.9h; y2=.15h; bot y3=0; y4=.15h; y5=.15h;
+filldraw stroke z0e{right}..{down}z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; y6=y5; rt_half_ellipse(6,0);
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+penlabels(0,1,2,3,4,5,6);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x1l; x20'=x20+1.5u; y20=y20'=y1l;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.25u; y21=y20;
+y21'=y21+.25h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,0,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_g.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_g.mf
new file mode 100644
index 00000000000..73bc7d2abeb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_g.mf
@@ -0,0 +1,110 @@
+%-------------------------------------------------------------
+% This is ETH_G.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ga:
+cmchar "The letter ga";
+beginchar(eth_ga,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gU:
+cmchar "The letter gU";
+beginchar(eth_gU,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=.5[x1r,x3r]; y6=.45h; rt_wing(6,1.5u,.025h);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gI:
+cmchar "The letter gI";
+beginchar(eth_gI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+z6=z1r; rt_half_ellipse(6,1.5u);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gA:
+cmchar "The letter gA";
+beginchar(eth_gA,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,0);
+
+pickup fine.nib; pos1(vair,0); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,5);
+x1=w-7.5u; x2r=w-1.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=.15h; y2=.3h; y3=.75h; y4=.95h;
+filldraw stroke z1e{right}...z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,oo);
+x6=x1; y6=y1+o; lft_wing(6,0,o);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gE:
+cmchar "The letter gE";
+beginchar(eth_gE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x1; y6=y1; half_ring(6);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_ge:
+cmchar "The letter ge";
+beginchar(eth_ge,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10); pos5(vair,105);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u; x5=x4l-1u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h; y5=y4-.025h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e---z5e;
+x6=x5-4.5u; y6=y5-.045h; gfive_ring(6,5,1/9);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gO:
+cmchar "The letter gO";
+beginchar(eth_gO,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+penpos4(stem,0);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.7h; y4=.8h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+
+penpos6(stem,0); penpos7(stem,0); penpos8(stem,5);
+x6=x7=x4l; x8=x6-.25u; y6=y4; y7=y6+.15h; y8=y6+.2h;
+filldraw stroke z6e--z7e{up}...{left}z8e;
+x5=x6l; y5=y6; lft_wing(5,.75u,.025h);
+penlabels(1,2,3,4,5,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_g_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_g_a.mf
new file mode 100644
index 00000000000..d758146728b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_g_a.mf
@@ -0,0 +1,117 @@
+%-------------------------------------------------------------
+% This is ETH_G.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'ga:
+cmchar "The letter 'ga";
+beginchar(eth_'ga,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gU:
+cmchar "The letter 'gU";
+beginchar(eth_'gU,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=.5[x1r,x3r]; y6=.45h; rt_wing(6,1.5u,.025h);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gI:
+cmchar "The letter 'gI";
+beginchar(eth_'gI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+z6=z1r; rt_half_ellipse(6,1.5u);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gA:
+cmchar "The letter 'gA";
+beginchar(eth_'gA,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,0);
+
+pickup fine.nib; pos1(vair,0); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,5);
+x1=w-7.5u; x2r=w-1.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=.15h; y2=.3h; y3=.675h; y4=.85h;
+filldraw stroke z1e{right}...z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,oo);
+x6=x1; y6=y1+o; lft_wing(6,0,o);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gE:
+cmchar "The letter 'gE";
+beginchar(eth_'gE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x1; y6=y1; half_ring(6);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'ge:
+cmchar "The letter 'ge";
+beginchar(eth_'ge,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10); pos5(vair,105);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u; x5=x4l-1u;
+bot y1=0; y2=.1h; y3=.675h; y4=.85h; y5=y4-.025h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e---z5e;
+x6=x5-4.5u; y6=y5-.045h; gfive_ring(6,5,1/9);
+top_diagonals(4);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_'gO:
+cmchar "The letter 'gO";
+beginchar(eth_'gO,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+penpos4(stem,0);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.6h; y4=.75h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+
+penpos6(stem,0); penpos7(stem,0); penpos8(stem,5);
+x6=x4l; x8=x6+.25u; y6=y4; y8=y6+.15h;
+filldraw stroke z6e--z8e;
+x5=x6l; y5=y6; lft_wing(5,.75u,.025h);
+top_diagonals(8);
+penlabels(1,2,3,4,5,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_gg.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_gg.mf
new file mode 100644
index 00000000000..811f0debeff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_gg.mf
@@ -0,0 +1,145 @@
+%-------------------------------------------------------------
+% This is ETH_GG.MF as of Feb, 1997 by Olaf Kummer
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ga:
+cmchar "The letter Ga";
+beginchar(eth_Ga,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+% BAR
+penpos11(stem,0); x11=x4l; y11=y4+0.15h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GU:
+cmchar "The letter GU";
+beginchar(eth_GU,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=.5[x1r,x3r]; y6=.45h; rt_wing(6,1.5u,.025h);
+
+% BAR
+penpos11(stem,0); x11=x4l; y11=y4+0.15h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GI:
+cmchar "The letter GI";
+beginchar(eth_GI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,3.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+z6=z1r; rt_half_ellipse(6,1.5u);
+
+% BAR
+penpos11(stem,0); x11=x4l; y11=y4+0.15h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GA:
+cmchar "The letter GA";
+beginchar(eth_GA,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,0);
+
+pickup fine.nib; pos1(vair,0); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,5);
+x1=w-7.5u; x2r=w-1.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=.15h; y2=.3h; y3=.73h; y4=.92h;
+filldraw stroke z1e{right}...z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,oo);
+x6=x1; y6=y1+o; lft_wing(6,0,o);
+
+% BAR
+penpos11(stem,0); x11=x4l-0.5u; y11=y4+0.18h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GE:
+cmchar "The letter GE";
+beginchar(eth_GE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,2.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x1; y6=y1; half_ring(6);
+
+% BAR
+penpos11(stem,0); x11=x4l; y11=y4+0.15h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_Ge:
+cmchar "The letter Ge";
+beginchar(eth_Ge,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10); pos5(vair,105);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u; x5=x4l-1u;
+bot y1=0; y2=.1h; y3=.7h; y4=.9h; y5=y4-.025h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e---z5e;
+x6=x5-4.5u; y6=y5-.045h; gfive_ring(6,5,1/9);
+
+% BAR
+penpos11(stem,0); x11=x4l-1u; y11=y4+0.2h;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,11); endchar;
+
+
+iff known eth_GO:
+cmchar "The letter GO";
+beginchar(eth_GO,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,0);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+penpos4(stem,0);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.7h; y4=.8h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+
+penpos6(stem,0); penpos7(stem,0); penpos8(stem,5);
+x6=x7=x4l; x8=x6-.25u; y6=y4; y7=y6+.15h; y8=y6+.2h;
+filldraw stroke z6e--z7e{up}...{left}z8e;
+x5=x6l; y5=y6; lft_wing(5,.75u,.025h);
+
+% BAR
+penpos11(stem,0); x11=x8; y11=y8;
+penpos11'(stem,0); x11'=x11; y11'+0.015h=y11;
+lft_half_ellipse(11,2u); rt_half_ellipse(11',2u);
+penlabels(1,2,3,4,5,7,8,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_ggu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_ggu.mf
new file mode 100644
index 00000000000..738e602c706
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_ggu.mf
@@ -0,0 +1,126 @@
+%-------------------------------------------------------------
+% This is ETH_GGU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Gua:
+cmchar "The letter Gua";
+beginchar(eth_Gua,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,6.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x3; x7=x6+3u; y6=y7=.55h; draw z6--z7;
+x9=x7; y9=y7-.245h; large_ring(9,2);
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_Gue:
+cmchar "The letter Gue";
+beginchar(eth_Gue,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,6u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=.5[x1r,x4r]+fine; x9'=x9+2.5u; y9=y9'=y1+.6(y4-y1);
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.25u; y10=y9; y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x7=x10r; y7=y10; rt_wing(7,0,-.01h);
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_GuI:
+cmchar "The letter GuI";
+beginchar(eth_GuI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,7.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=.5[x1r,x4r]+fine; x9'=x9+2.5u; y9=y9'=y1+.6(y4-y1);
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.5u; y10=y9-.15h; y10'=y9+.2h;
+y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x7=x10r; y7=y10; rt_wing(7,1.5u,-.01h);
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_GuA:
+cmchar "The letter GuA";
+beginchar(eth_GuA,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pickup fine.nib; penpos2(stem,0); penpos3(stem,0); pos4(stem,10);
+x2r=w-2u; x3r=w-.75u; x4l=w-4u; y2=.55h; y3=.85h; y4=.95h;
+filldraw stroke z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,.02h);
+x6=x2; bot y6=y2; lft_wing(6,2u,.055h);
+
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x10l=x2r; x11'l=x10l-.25u; x11l=x11'l+.5u; x10'l=x10l+u;
+y10=y2; bot y11=00; y10'=.85(y10-y11)+y11; y11'=.15(y10-y11)+y11;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4,10,10',11,11'); endchar;
+
+
+iff known eth_GuE:
+cmchar "The letter GuE";
+beginchar(eth_GuE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,2u#);
+
+pickup fine.nib; penpos2(1.2stem,5); penpos3(stem,0); pos4(stem,10);
+x2r=w-3u; x3r=w-.75u; x4l=w-4u; y2=.15h; y3=.775h; y4=.95h;
+filldraw stroke z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,1.5u,.025h);
+x6=x2r-.25u; x7=x2l; y6=y7=y2; half_ring(6); lft_wing(7,2u,.05h);
+
+% BAR
+penpos12(stem,0); x12=x4l; y12=y4+0.15h;
+penpos12'(stem,0); x12'=x12; y12'+0.015h=y12;
+lft_half_ellipse(12,2u); rt_half_ellipse(12',2u);
+penlabels(1,2,3,4); endchar;
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_gu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_gu.mf
new file mode 100644
index 00000000000..5d7349a4721
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_gu.mf
@@ -0,0 +1,96 @@
+%-------------------------------------------------------------
+% This is ETH_GU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_gua:
+cmchar "The letter gua";
+beginchar(eth_gua,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,6.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+x6=x3; x7=x6+3u; y6=y7=.55h; draw z6--z7;
+x9=x7; y9=y7-.245h; large_ring(9,2);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_gue:
+cmchar "The letter gue";
+beginchar(eth_gue,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,6u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=.5[x1r,x4r]+fine; x9'=x9+2.5u; y9=y9'=y1+.6(y4-y1);
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.25u; y10=y9; y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x7=x10r; y7=y10; rt_wing(7,0,-.01h);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_guI:
+cmchar "The letter guI";
+beginchar(eth_guI,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,7.5u#);
+
+pickup fine.nib; penpos1(stem,5); penpos2(stem,0); penpos3(stem,0);
+pos4(stem,10);
+x1r=w-1.5u; x2r=x1r-.5u; x3r=w-.75u; x4l=w-4u;
+bot y1=0; y2=.1h; y3=.75h; y4=.95h;
+filldraw stroke z1e{left}...{up}z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,.75u,.025h);
+
+pos9(vair,90); pos9'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x9=.5[x1r,x4r]+fine; x9'=x9+2.5u; y9=y9'=y1+.6(y4-y1);
+filldraw stroke z9e--z9'e;
+x10l=x10'l=x9'r; x11l=x10l+.5u; y10=y9-.15h; y10'=y9+.2h;
+y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x7=x10r; y7=y10; rt_wing(7,1.5u,-.01h);
+penlabels(1,2,3,4); endchar;
+
+
+iff known eth_guA:
+cmchar "The letter guA";
+beginchar(eth_guA,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(1u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pickup fine.nib; penpos2(stem,0); penpos3(stem,0); pos4(stem,10);
+x2r=w-2u; x3r=w-.75u; x4l=w-4u; y2=.55h; y3=.85h; y4=.95h;
+filldraw stroke z2e..z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,u,.02h);
+x6=x2; bot y6=y2; lft_wing(6,2u,.055h);
+
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x10l=x2r; x11'l=x10l-.25u; x11l=x11'l+.5u; x10'l=x10l+u;
+y10=y2; bot y11=00; y10'=.85(y10-y11)+y11; y11'=.15(y10-y11)+y11;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11'); endchar;
+
+
+iff known eth_guE:
+cmchar "The letter guE";
+beginchar(eth_guE,8u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,2u#);
+
+pickup fine.nib; penpos2(1.2stem,5); penpos3(stem,0); pos4(stem,10);
+x2r=w-3u; x3r=w-.75u; x4l=w-4u; y2=.15h; y3=.775h; y4=.95h;
+filldraw stroke z2e---z3e{up}..{left}z4e;
+z5=z4l; lft_wing(5,1.5u,.025h);
+x6=x2r-.25u; x7=x2l; y6=y7=y2; half_ring(6); lft_wing(7,2u,.05h);
+penlabels(1,2,3,4); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_h.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_h.mf
new file mode 100644
index 00000000000..40cb4cb1a8c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_h.mf
@@ -0,0 +1,153 @@
+%-------------------------------------------------------------
+% This is ETH_H.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ha:
+cmchar "The letter ha";
+beginchar(eth_ha,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos0(stem,200); penpos1(stem,180);
+penpos2(stem,180); pos3(vair,270);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(stem,15);
+x0r=1.5u; x1r=2u; x2r=1.35u; x3r=.4w; x4=.5w; x5l=w-3.75u; x6l=w-3.25u;
+x7l=.6w;
+y0=.8h; y1=.7h; y2=.2h; bot y3=0; bot y4=.025h; y5=.3h; y6=.675h; top y7=.9h;
+filldraw stroke z0e...{down}z1e--z2e...z3e..z4e..z5e...z6e...z7e;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_hU:
+cmchar "The letter hU";
+beginchar(eth_hU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos0(stem,200); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(stem,15);
+x0r=1.5u; x1r=2u; x2r=1.35u; x3r=.4w; x4=.5w; x5l=w-3.75u; x6l=w-3.25u;x7l=.6w;
+y0=.8h; y1=.7h; y2=.2h; bot y3=0; bot y4=.025h; y5=.3h; y6=.675h; top y7=.9h;
+filldraw stroke z0e...{down}z1e--z2e...z3e..z4e..z5e...z6e...z7e;
+x8=x6r; y8=.55h; rt_wing(8,2u,.015h);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_hI:
+cmchar "The letter hI";
+beginchar(eth_hI,9u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,.5u#);
+
+pickup fine.nib; penpos0(stem,195); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270);
+penpos5(stem,15); penpos6(stem,0); penpos7(stem,0); penpos8(stem,0);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=w-x0; x6r=hround(x5r+stem); x8r=.5w; x7r=hround(x8r-stem); x4l=.5[x5r,x8r];
+top y0=h; y3=.6h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3; y4=y3+o;
+top y5=h+o; y6=y5-.2h; bot y8=00; y7=y8+.2h;
+filldraw stroke z5e..controls z6e and z7e..z8e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+x9=x8r; y9=y8; rt_half_ellipse(9,1.5u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_hA:
+cmchar "The letter hA";
+beginchar(eth_hA,9u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib; penpos0(stem,195); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270);
+penpos5(stem,15); penpos6(stem,0); penpos7(stem,0); penpos8(stem,0);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=w-x0; x6r=hround(x5r+stem); x8r=.5w; x7r=hround(x8r-stem); x4l=.5[x5r,x8r];
+top y0=h; y3=.6h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3; y4=y3+o;
+top y5=h+o; y6=y5-.2h; bot y8=00; y7=y8+.2h;
+filldraw stroke z5e..controls z6e and z7e..z8e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_hE:
+cmchar "The letter hE";
+beginchar(eth_hE,9u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup fine.nib; penpos0(stem,195); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+
+penpos5(stem,15); penpos6(stem,0); penpos7(stem,0); penpos8(stem,10);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+
+x5r=w-x0; x6r=x5r+stem; x8r=.5w; x7r=x8r-stem; x4l=.5[x5r,x8r];
+top y0=h; y3=.6h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3; y4=y3+o;
+top y5=h+o; y6=y5-.2h; bot y8=00; y7=y8+.2h;
+filldraw stroke z5e..controls z6e and z7e..z8e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+
+penpos9(vair,270); pos10(vair,270); penpos11(stem,0);
+penpos12(vair,80); penpos13(vair,80);
+x9l=x8; x10=x9l+1.75u; x11l=x10+1u; x12=x10; x13=x8+1u;
+y9r=y8; y10=y9; y11=.15h; y12=y13=.25h;
+filldraw stroke z9e..z10e{right}..z11e..{left}z12e..z13e;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_he:
+cmchar "The letter he";
+beginchar(eth_he,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup fine.nib; penpos0(stem,10); penpos1(stem',0); penpos2(stem,0);
+penpos3(stem,180); penpos4(vair,270); penpos5(1.2stem,360);
+penpos6(1.2stem,10); penpos3'(stem,180);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x0l=hround max(.7u,1.45u-.5curve); x1l=x0l+.3u; x2l=x0l-.5u;
+x3r=x2l+stem; x3'r=x3r-.5u; x4=.5w-.5u; x5r=w-x0+u; x6r=hround(x5r-.75u);
+top y0=h-o; y1=.8h; y2=y3=.6h; y3'=.25h; bot y4r=-oo; y5l=.5h; top y6=h+o;
+filldraw stroke z0e...z1e{down}...z2e;
+filldraw stroke z3e{down}...super_arc.e(3',4) & super_arc.e(4,5)...z6e;
+penlabels(0,1,2,3,3',4,5,6); endchar;
+
+
+iff known eth_hO:
+cmchar "The letter hO";
+beginchar(eth_hO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos0(stem,200); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(1.1stem,0);
+penpos7'(1.2stem,10); pos8(vair,270); pos8'(vair,270); pos9(stem,0);
+penpos10(stem,0); pos11(vair,90);
+x0r=1.5u; x1r=2u; x2r=1.35u; x3r=.4w; x4=.5w; x5l=w-3.75u; x6l=w-3.25u;
+x7l=x6l+o;
+x7'l=x7l-o; x8l=x7r-o; x8'l=x7r+.75u; x9l=x8l+1.75u; x10l=x8l+.75u; x11l=x7;
+y0=.8h; y1=.7h; y2=.2h; bot y3=0; bot y4=.025h; y5=.3h; y6=.675h; top y7=.85h;
+y7'=.9h; y8=.65h; y8'=.65h+o; y9=.75h; y10=.935h; y11=y7';
+filldraw stroke z0e...{down}z1e--z2e...z3e..z4e..z5e...z6e...z7e...z7'e;
+filldraw stroke z8e..z8'e...z9e..z10e---z11e;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_huA:
+cmchar "The letter huA";
+beginchar(eth_huA,9u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib; penpos0(stem,195); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270);
+penpos5(stem,15); penpos6(stem,0); penpos7(stem,0); penpos8(stem,0);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=w-x0; x6r=hround(x5r+stem); x8r=.5w; x7r=hround(x8r-stem); x4l=.5[x5r,x8r];
+top y0=h; y3=.6h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3; y4=y3+o;
+top y5=h+o; y6=y5-.2h; bot y8=00; y7=y8+.2h;
+filldraw stroke z5e..controls z6e and z7e..z8e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+
+x20=x8l; x21=x8r; y20=y21=y8; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(1,2,3,4,5); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_h_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_h_a.mf
new file mode 100644
index 00000000000..06c7291a5fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_h_a.mf
@@ -0,0 +1,199 @@
+%-------------------------------------------------------------
+% This is ETH_H_A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'ha:
+cmchar "The letter 'ha";
+beginchar(eth_'ha,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hU:
+cmchar "The letter 'hU";
+beginchar(eth_'hU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'r; y12=.45h; rt_wing(12,1.5u,.025h);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hI:
+cmchar "The letter 'hI";
+beginchar(eth_'hI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,3.25u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+z12=z4r; rt_half_ellipse(12,1u);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+z14=z11r; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hA:
+cmchar "The letter 'hA";
+beginchar(eth_'hA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=.20h; y8'=y8+.075h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hE:
+cmchar "The letter 'hE";
+beginchar(eth_'hE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'; bot y12=0; half_ring(12);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'he:
+cmchar "The letter 'he";
+beginchar(eth_'he,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,90); penpos4'(stem,0);
+y3=.55h; bot y4=0; y5=.7h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,190); penpos7'(stem,190); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x7'r=x7r+.75stem; x8r=x8'r+.5u;
+y7=y7'=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...{down}z7e;
+filldraw stroke z7'e...z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'hO:
+cmchar "The letter 'hO";
+beginchar(eth_'hO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.55h; y4=.25h; y5=.7h; y4'=y4+.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.85h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+top_diagonals(11);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_h_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_h_c.mf
new file mode 100644
index 00000000000..f5d5f043802
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_h_c.mf
@@ -0,0 +1,164 @@
+%-------------------------------------------------------------
+% This is ETH_H_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^ha:
+cmchar "The letter ^ha";
+beginchar(eth_^ha,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,-.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.5u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hU:
+cmchar "The letter ^hU";
+beginchar(eth_^hU,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,3u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.5u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+x12=x10r; y12=.5(y10-y11)+.05h; rt_wing(12,1.5u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hI:
+cmchar "The letter ^hI";
+beginchar(eth_^hI,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,3u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.5u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+rt_half_ellipse(11,1.75u);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hA:
+cmchar "The letter ^hA";
+beginchar(eth_^hA,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,-.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.25u,.025h);
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(vair,270); penpos10'(stem,0);
+x10=x7+1.5u; x11l=x10-5.5u; x10'=x10+fine; x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=.1h; y10'=.5[y10,y11]; y8=y10-oo; y9=y10+o;
+filldraw stroke z8e..z9e;
+filldraw stroke pulled_super_arc.e(11,10')(superpull)...z10e;
+z12=z11l; t_wing(12);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hE:
+cmchar "The letter ^hE";
+beginchar(eth_^hE,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(4u#,2.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2.5u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+half_ring(11);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^he:
+cmchar "The letter ^he";
+beginchar(eth_^he,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,-.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+penpos3(vair,90); penpos2(stem,180);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x5l; y3=.5[y4,y7]; x2=x3-4u; y2=y7-.15h;
+filldraw stroke pulled_super_arc.e(3,2)(superpull);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hO:
+cmchar "The letter ^hO";
+beginchar(eth_^hO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,-.5u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,185); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+
+x0=.55w; x1=x0-1u; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.9h; y1=.9h-o; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0-1.75u; y9=y0-o; nfour_ring(9,0,1/6);
+x12=x2; y12=.5[y1,y2]; lft_wing(12,2.5u,.02h);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_hh.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_hh.mf
new file mode 100644
index 00000000000..516a2fb3850
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_hh.mf
@@ -0,0 +1,217 @@
+%-------------------------------------------------------------
+% This is ETH_HH.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ha:
+cmchar "The letter \d ha";
+beginchar(eth_Ha,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+%%%%%%%%%y7r=.35h; y6l=.55h; y8'=.25[y7,78]; y7'=y7-.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...
+ pulled_arc.e(5,6);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HU:
+cmchar "The letter HU";
+beginchar(eth_HU,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...
+ pulled_arc.e(5,6);
+x9=x7r; y9=y7+.05h; rt_wing(9,2u,.025h);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HI:
+cmchar "The letter HI";
+beginchar(eth_HI,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); pos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...pulled_arc.e(5,6);
+x9=x8r; bot y9=00; rt_half_ellipse(9,1.5u);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HA:
+cmchar "The letter HA";
+beginchar(eth_HA,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=.25h; bot y8=00; y4=.225h; y4'=.3h;
+y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.25h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...pulled_arc.e(5,6);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HE:
+cmchar "The letter HE";
+beginchar(eth_HE,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...pulled_arc.e(5,6);
+x9=x8; bot y9=00; half_ring(9);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_He:
+cmchar "The letter He";
+beginchar(eth_He,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=bot y8=bot y4=0; y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+x0'=x0l+.45u; y0'=y0+.075h; lft_half_ellipse(0',0);
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...
+ pulled_arc.e(5,6);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HO:
+cmchar "The letter HO";
+beginchar(eth_HO,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,-.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=.275h; bot y4=0; y8=.275h;
+y4'=.1h; y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.35h; y6l=.55h; y8'=y8+.25(y7-y8); y7'=y7-.25(y7-y8);
+y5=y6-.35h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...
+ pulled_arc.e(5,6);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
+
+
+iff known eth_HuA:
+cmchar "The letter HuA";
+beginchar(eth_HuA,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos0(stem,10); penpos1(stem,0); penpos2(stem,0); penpos4'(stem,180);
+penpos3(stem,0); penpos3'(stem,-20); penpos5(stem,180); penpos5'(stem,180);
+penpos4(stem,180); penpos7'(stem,0); penpos6(vair,90);
+penpos7(stem,0); penpos8(stem,0); penpos8'(stem,0);
+
+x0=hround(.5w); x1=x0+.5u; x2=x0-.5u; x3=x0;
+rt x8r=hround(w-1u); rt x8'r=hround(x8r-fine); x6=hround(.5w);
+rt x7'r=hround(x8r+2fine); rt x7r=hround(x8r+fine);
+lft x5r=lft x5'r=hround .5u; x4r=x5r+.25u; x4'r=x5r;
+
+top y0=h; bot y3=.25h; bot y8=00; y4=.225h; y4'=.3h;
+y2=y3+.1(y0-y3); y1=y3+.9(y0-y3);
+y7r=.3h; y6l=.55h; y8'=.75[y7,y8]; y7'=.25[y7,y8];
+y5=y6-.25h; y5'r=.5[y5,y4];
+filldraw stroke z0e{right}..{down}z1e--z2e{down}..{right}z3e;
+
+filldraw stroke z8e..controls z8'e and z7'e..pulled_arc.e(7,6);
+filldraw stroke z4e...z4'e...pulled_arc.e(5,6);
+
+x20=x8'l; x21=x8'r; y20=y21=y8; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(0,1,2,3,4,5,5',6,7,8,8'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_hu_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_hu_c.mf
new file mode 100644
index 00000000000..6d12edf8a9d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_hu_c.mf
@@ -0,0 +1,150 @@
+%-------------------------------------------------------------
+% This is ETH_HU_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^hua:
+cmchar "The letter ^hua";
+beginchar(eth_^hua,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,6u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+
+pos12(vair,90); pos12'(vair,90);
+x12=x10'; x12'=x12+2.75u; y12=y12'=.55h; draw z12--z12';
+x13=x12'; y13=y12'-.245h; large_ring(13,2);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+iff known eth_^hue:
+cmchar "The letter ^hue";
+beginchar(eth_^hue,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+
+pos12(vair,90); pos12'(vair,90); penpos13(stem,0);
+penpos13'(stem,0); penpos14(stem,0); penpos15(stem,0);
+
+x12=x10; x12'=x12+2.5u; y12=y12'=.55h;
+filldraw stroke z12e--z12'e;
+x13l=x13'l=x12'r; x14l=x13l+.25u; y13=y12; y13'=y13+.25h; y14=y13+.75(y13'-y13);
+filldraw stroke z13e---z14e{up}..{left}z13'e;
+x15=x13r; y15=y13; rt_wing(15,0,-.01h);
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11',12,13,14); endchar;
+
+
+iff known eth_^huI:
+cmchar "The letter ^huI";
+beginchar(eth_^huI,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,6.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=00; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+
+pos12(vair,90); pos12'(vair,90); penpos13(stem,0);
+penpos13'(stem,0); penpos14(stem,0); penpos15(stem,0);
+
+x12=x10; x12'=x12+2.5u; y12=y12'=.55h;
+filldraw stroke z12e--z12'e;
+x13l=x13'l=x12'r; x14l=x13l+.5u;
+y13=y12-.15h; y13'=y12+.2h; y14=y13+.75(y13'-y13);
+filldraw stroke z13e---z14e{up}..{left}z13'e;
+x15=x13r; y15=y13; rt_wing(15,1.5u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11',12,13,14); endchar;
+
+
+iff known eth_^huA:
+cmchar "The letter ^huA";
+beginchar(eth_^huA,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,1.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=.15h; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+x12=x11'l; y12=y11; lft_wing(12,3.5u,.05h);
+
+penpos111(stem,0); penpos12'(stem,0); penpos13(stem,0); penpos13'(stem,0);
+x111l=x13l=x11r-.25u; x12'l=x111l+.5u; x13'l=x13l-.2u;
+y111=y11; y13=-.1h; y12'=y13+.8(y111-y13); y13'=y13+.2(y111-y13);
+filldraw stroke z111e{right}..{down}z12'e---z13'e{down}..{right}z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11',12,12',13,14); endchar;
+
+
+iff known eth_^huE:
+cmchar "The letter ^huE";
+beginchar(eth_^huE,7u#,.5[cap_height#,x_height#],0);
+adjust_fit(3.5u#,2.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+penpos4(stem,0); penpos5(stem,0); penpos6(stem,0); penpos7(stem,0);
+x4l=x7l=2u; x5l=x7l+fine; x6l=x7l-fine;
+top y4=h; y7=.7h; y6=.2(y4-y7)+y7; y5=.8(y4-y7)+y7;
+filldraw stroke z4e..controls z5e and z6e..z7e;
+x3=x6l; y3=y6+o; lft_wing(3,2u,.01h);
+
+penpos8(vair,90); penpos9(vair,90);
+penpos10(stem,0); penpos11(stem,0); penpos10'(stem,0); penpos11'(stem,0);
+x11l=x7r; x11'l=x11l-.5u; x10=x11; x10'=x10+.5u;
+x8r=x10l; x9r=x7l;
+y10=.7h; bot y11=.1h; y10'=.8(y10-y11)+y11; y11'=.2(y10-y11)+y11;
+y8=y10-oo; y9=y10+o;
+filldraw stroke z8e--z9e;
+filldraw stroke z10e{right}..{down}z10'e--z11'e{down}..{right}z11e;
+x12=x11'l; y12=y11; lft_wing(12,2.5u,.05h);
+
+x13=x11; y13=y11; half_ring(13);
+penlabels(1,2,3,4,5,6,7,8,9,10,10',11,11',12,12',13,); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_j.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_j.mf
new file mode 100644
index 00000000000..322f1e2dfc5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_j.mf
@@ -0,0 +1,290 @@
+%-------------------------------------------------------------
+% This is ETH_J.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ja:
+cmchar "The letter ja";
+beginchar(eth_ja,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jU:
+cmchar "The letter jU";
+beginchar(eth_jU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+x13=x9l; y13=y0-.1h; rt_wing(13,2u,0);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14+.25u; y14=y3+o; y14'=y14+.175h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jI:
+cmchar "The letter jI";
+beginchar(eth_jI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.75u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+z13=z12l; rt_half_ellipse(13,1.5u);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14+.25u; y14=y3+o; y14'=y14+.175h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jA:
+cmchar "The letter jA";
+beginchar(eth_jA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.25h; y0=y1+o; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=-.175h; bot y12=-.2h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14+.25u; y14=y3+o; y14'=y14+.175h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jE:
+cmchar "The letter jE";
+beginchar(eth_jE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0-.75u; y9=y0-(.025h+o); dfive_ring(9,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_je:
+cmchar "The letter je";
+beginchar(eth_je,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,4u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-6.25u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-1.5u;
+y1=.05h; y0=y1-2o; y2=.45h; y2'=.3h; top y3=.775h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0;
+
+penpos4(stem,0); pos5(vair,0);
+x5=x2l; x4r=w-.5u; y5=.35h; y4=.6h;
+filldraw stroke z5e{right}..z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+t_wing(7);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+x13=x4r; y13=y4; rt_wing(13,1.5u,0);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_jO:
+cmchar "The letter jO";
+beginchar(eth_jO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-.75u;
+y1=.25h; y0=y1-.05h; y2=.55h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.4h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); penpos7(stem,180); penpos8(stem,180);
+x6=x1r; x7=x6-3.5u; x8=x7+.5u;
+y6=y1; y7=-.125h; bot y8=-.2h; filldraw stroke z6e{left}..z7e{down}..{right}z8e;
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14+.25u; y14=y3+o; y14'=y14+.175h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_juA:
+cmchar "The letter juA";
+beginchar(eth_juA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,185); penpos1(stem,185); penpos2(stem,180);
+pos3(vair,105);
+x1=w-4.5u; x2r=w-7u; x3=w-3.5u; x0=w-1.25u;
+y1=.35h; y0=y1+o; y2=.65h; top y3=.9h;
+filldraw stroke z3e{left}...{down}z2e..tension 1.3..z1e{right}---{down}z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.5h; y4=.75h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.25u; y6=y1; y7=y6-.075h; filldraw stroke z6e--z7;
+t_wing(7);
+
+penpos9(stem,185); penpos10(stem,185); penpos11(stem,185); penpos12(stem,185);
+x9l=x0; x10l=x9l+.5u; x11l=x9l-.75u; x12l=x11l+.25u;
+y9=y0; y10=y0-.075h; y11=0.025; bot y12=-.05h;
+filldraw stroke z9e{right}...{down}z10e---z11e{down}...{right}z12e;
+
+penpos14(stem,0); penpos14'(stem,0);
+x14=.5[x2r,x4r]; x14'=x14; y14=y3+o; y14'=y14+.15h;
+filldraw stroke z14e--z14'e;
+x15=x14'r; x16=x14'l; y15=y16=y14';
+rt_half_ellipse(15,1.5u); lft_half_ellipse(16,1.5u);
+
+x20=x12; x21=x20; y20=y21=y12; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_varjuA:
+cmchar "The variant letter juA";
+beginchar(eth_varjuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.25h; y0=y1-o; y2=.65h; y2'=.5h; top y3=.975h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e{right}---z0e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x6=x1r; y6=y1; lft_wing(6,u,.025h);
+x9=x0; y9=y0; rt_wing(9,0,0);
+
+x20=x0+2u; x21=x20; y20=y21=y0-.175h; lft_wing(20,2.5u,.015h);
+rt_wing(21,2.25u,.015h);
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_k.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_k.mf
new file mode 100644
index 00000000000..905fedd5847
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_k.mf
@@ -0,0 +1,180 @@
+%-------------------------------------------------------------
+% This is ETH_K.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ka:
+cmchar "The letter ka";
+beginchar(eth_ka,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kU:
+cmchar "The letter kU";
+beginchar(eth_kU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'r; y12=.45h; rt_wing(12,1.5u,.025h);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kI:
+cmchar "The letter kI";
+beginchar(eth_kI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,3.25u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+z12=z4r; rt_half_ellipse(12,1u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kA:
+cmchar "The letter kA";
+beginchar(eth_kA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=.25h; y8'=y8+.075h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kE:
+cmchar "The letter kE";
+beginchar(eth_kE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+x12=x4'; bot y12=0; half_ring(12);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_ke:
+cmchar "The letter ke";
+beginchar(eth_ke,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,90); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,190); penpos7'(stem,190); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x7'r=x7r+.75stem; x8r=x8'r+.5u;
+y7=y7'=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...{down}z7e;
+filldraw stroke z7'e...z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_kO:
+cmchar "The letter kO";
+beginchar(eth_kO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; y4=.25h; y5=.8h; y4'=y4+.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_k_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_k_a.mf
new file mode 100644
index 00000000000..f809791c813
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_k_a.mf
@@ -0,0 +1,214 @@
+%-------------------------------------------------------------
+% This is ETH_K_A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'ka:
+cmchar "The letter 'ka";
+beginchar(eth_'ka,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kU:
+cmchar "The letter 'kU";
+beginchar(eth_'kU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'r; y12=.45h; rt_wing(12,1.5u,.025h);
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kI:
+cmchar "The letter 'kI";
+beginchar(eth_'kI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,3.25u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+z12=z4r; rt_half_ellipse(12,1u);
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kA:
+cmchar "The letter 'kA";
+beginchar(eth_'kA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=.25h; y8'=y8+.075h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kE:
+cmchar "The letter 'kE";
+beginchar(eth_'kE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+x12=x4'; bot y12=0; half_ring(12);
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'ke:
+cmchar "The letter 'ke";
+beginchar(eth_'ke,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,90); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,190); penpos7'(stem,190); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x7'r=x7r+.75stem; x8r=x8'r+.5u;
+y7=y7'=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...{down}z7e;
+filldraw stroke z7'e...z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_'kO:
+cmchar "The letter 'kO";
+beginchar(eth_'kO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; y4=.25h; y5=.8h; y4'=y4+.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+
+% TOP DIAGONALS
+penpos20(2vair,-10); x20l=x5l+1.75u; y20l=y5l-.05h;
+penpos21(2vair,0); x21=x20; y21=y20+.1h;
+filldraw stroke z20e--z21e; top_diagonals(21);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_kk.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_kk.mf
new file mode 100644
index 00000000000..c63b63aca67
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_kk.mf
@@ -0,0 +1,189 @@
+%-------------------------------------------------------------
+% This is ETH_KK.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ka:
+cmchar "The letter Ka";
+beginchar(eth_Ka,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KU:
+cmchar "The letter KU";
+beginchar(eth_KU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+%filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'r; y12=.45h; rt_wing(12,1.5u,.025h);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KI:
+cmchar "The letter KI";
+beginchar(eth_KI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,3.25u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+z12=z4r; rt_half_ellipse(12,1u);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+z14=z11r; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KA:
+cmchar "The letter KA";
+beginchar(eth_KA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=.25h; y8'=y8+.075h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KE:
+cmchar "The letter KE";
+beginchar(eth_KE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,2u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x12=x4'; bot y12=0; half_ring(12);
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_Ke:
+cmchar "The letter Ke";
+beginchar(eth_Ke,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,90); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,190); penpos7'(stem,190); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x7'r=x7r+.75stem; x8r=x8'r+.5u;
+y7=y7'=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...{down}z7e;
+filldraw stroke z7'e...z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KO:
+cmchar "The letter KO";
+beginchar(eth_KO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; y4=.25h; y5=.8h; y4'=y4+.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_kku.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_kku.mf
new file mode 100644
index 00000000000..6979a41e3e5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_kku.mf
@@ -0,0 +1,176 @@
+%-------------------------------------------------------------
+% This is ETH_KKU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Kua:
+cmchar "The letter Kua";
+beginchar(eth_Kua,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,6.5u#)
+
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+
+penpos1(vair,90); penpos2(vair,90);
+x1l=.5[x4',x4]; x2=x1+3u; y1=y2=y4+.6(y5-y4); filldraw stroke z1e--z2e;
+x6=x2; y6=y2-.22h; large_ring(6,0);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_Kue:
+cmchar "The letter Kue";
+beginchar(eth_Kue,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,6u#)
+
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+
+pos15(vair,90); pos15'(vair,90);
+penpos12(1.2stem,0); penpos12'(1.2stem,0); penpos16(1.2stem,0);
+x15=.5[x4,x4']; x15'=x15+2u; y15=y15'=y4+.8(y5-y4); draw z15--z15';
+x12l=x12'l=x15'r; x16l=x12l+fine;
+y12=y15; y12'=y12+.25h; y16=y12+.75(y12'-y12);
+filldraw stroke z12e..controls z16e..z12'e;
+
+x6=x12; y6=y12+oo; rt_wing(6,1.5u,0);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KuI:
+cmchar "The letter KuI";
+beginchar(eth_KuI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,7u#)
+
+
+% THE LEFT & RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-.25u=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r=w-x3r; x8r=x8'r+.5u;
+y7=.525h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e..z7e..z8'e...z8e{right};
+
+penpos9(stem,10); penpos10(stem,0); penpos11(stem,5);
+x9r+.5u=x10r=3.5u; x11r=x10r-.5u; y9=y5-.075h; y10=.95h; y11=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z11e;
+x13=x11l; y13=y11; lft_half_ellipse(13,1.25u);
+x14=x11r; y14=y11; rt_half_ellipse(14,2u);
+
+pos15(vair,90); pos15'(vair,90); penpos12(1.2stem,0); penpos12'(1.2stem,0);
+penpos16(1.2stem,0); penpos16'(1.2stem,0);
+x15=.5[x4,x4']; x15'=x15+3u; y15=y15'=y4+.6(y5-y4); draw z15--z15';
+x12l=x15'r; x16l=x12l-.5u; x12'l=x12l+.5u; x16'l=x12'l-.25u;
+y12=y15-.1h; y12'=y12+.25h; y16=y12+.25(y12'-y12); y16'=y12+.75(y12'-y12);
+filldraw stroke z12e{left}..{up}z16e---z16'e..z12'e;
+x6=x12; y6=y12+oo; rt_wing(6,2u,0);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
+
+
+iff known eth_KuA:
+cmchar "The letter KuA";
+beginchar(eth_KuA,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3u#,1u#)
+
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem,0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.5h; bot y4r=.1h; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=x4r=w-1.5u; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); x7=w-x4r; y7=.33h;
+filldraw stroke z4e...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e;
+
+% right lower leg
+penpos13(stem,0); penpos12(stem,0); penpos13'(stem,0); penpos12'(stem,0);
+x13l=x12l=x4r; x13'l=x13l+fine; x12'l=x12l-fine;
+y13=y4-oo; bot y12=y4-.25h; y13'=y12+.8(y13-y12); y12'=y12+.2(y13-y12);
+filldraw stroke z13e..controls z13'e and z12'e..z12e;
+
+% left wing arm
+penpos14(hair,90); penpos15(hair,90);
+x14r=x4l; x15r=x14r-2.5u; y14=y4; y15=y14-.05h;
+draw z14---z15;
+% left lower wing
+t_wing(15);
+
+penpos9(stem,10); penpos10(stem,0); penpos20(stem,5);
+x9=x7; y9r=y5l; x10r=x9r+.5u; y10=.95h;
+x20r=x10r-.5u; y20=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z20e;
+x21=x20l; y21=y20; lft_half_ellipse(21,1.25u);
+x22=x20r; y22=y20; rt_half_ellipse(22,2u);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10,11,12,13,14,15,20); endchar;
+
+
+iff known eth_KuE:
+cmchar "The letter KuE";
+beginchar(eth_KuE,9u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3u#,3u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem,0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.5h; bot y4r=.1h; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=x4r=w-1.5u; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); x7=w-x4r; y7=.33h;
+filldraw stroke z4e...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e;
+
+% right lower half ring
+penpos11(stem,0); z11=z4; half_ring(11);
+% left wing arm
+penpos17(hair,90); penpos15(hair,90);
+x17r=x4l; x15r=x17r-2u; y17=y4; y15=y17-.05h;
+draw z17---z15;
+% left lower wing
+t_wing(15);
+
+penpos9(stem,10); penpos10(stem,0); penpos20(stem,5);
+x9=x7; y9r=y5l; x10r=x9r+.5u; y10=.95h;
+x20r=x10r-.5u; y20=y10+.05h;
+filldraw stroke z9e---z10e{up}...{left}z20e;
+x21=x20l; y21=y20; lft_half_ellipse(21,1.25u);
+x22=x20r; y22=y20; rt_half_ellipse(22,2u);
+penlabels(3,4,4',5,7,8,8',9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_ku.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_ku.mf
new file mode 100644
index 00000000000..23f7d24fb89
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_ku.mf
@@ -0,0 +1,168 @@
+%-------------------------------------------------------------
+% This is ETH_KU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_kua:
+cmchar "The letter kua";
+beginchar(eth_kua,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,6.5u#)
+
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem',0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.55h; bot y4r=0; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=w-1.5u; x4r=x4'r+fine; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); penpos8(stem',180); penpos8'(stem',180);
+x7=x8'=w-x4r; x8=x8'+fine; y7=.4h-oo; bot y8=0; y8'=y4';
+filldraw stroke z4e{z4'e-z4e}...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e...z8e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+penpos1(vair,90); penpos2(vair,90);
+x1l=.5[x4',x4]; x2=x1+3u; y1=y2=y4+.6(y5-y4); filldraw stroke z1e--z2e;
+x6=x2; y6=y2-.22h; large_ring(6,0);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10); endchar;
+
+
+iff known eth_kue:
+cmchar "The letter kue";
+beginchar(eth_kue,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,5u#)
+
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem',0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.55h; bot y4r=0; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=w-1.5u; x4r=x4'r+fine; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); penpos8(stem',180); penpos8'(stem',180);
+x7=x8'=w-x4r; x8=x8'+fine; y7=.4h-oo; bot y8=0; y8'=y4';
+filldraw stroke z4e{z4'e-z4e}...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e...z8e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+pos11(vair,90); pos11'(vair,90);
+penpos12(1.2stem,0); penpos12'(1.2stem,0); penpos13(1.2stem,0);
+x11=.5[x4,x4']; x11'=x11+1.5u; y11=y11'=y4+.8(y5-y4); draw z11--z11';
+x12l=x12'l=x11'r; x13l=x12l+fine;
+y12=y11; y12'=y12+.25h; y13=y12+.75(y12'-y12);
+filldraw stroke z12e..controls z13e..z12'e;
+
+x6=x12; y6=y12+oo; rt_wing(6,1.5u,0);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10); endchar;
+
+
+iff known eth_kuI:
+cmchar "The letter kuI";
+beginchar(eth_kuI,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,7u#)
+
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem',0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.55h; bot y4r=0; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=w-1.5u; x4r=x4'r+fine; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); penpos8(stem',180); penpos8'(stem',180);
+x7=x8'=w-x4r; x8=x8'+fine; y7=.4h-oo; bot y8=0; y8'=y4';
+filldraw stroke z4e{z4'e-z4e}...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e...z8e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+pos11(vair,90); pos11'(vair,90); penpos12(1.2stem,0); penpos12'(1.2stem,0);
+penpos13(1.2stem,0); penpos13'(1.2stem,0);
+x11=.5[x4,x4']; x11'=x11+3u; y11=y11'=y4+.6(y5-y4); draw z11--z11';
+x12l=x11'r; x13l=x12l-.5u; x12'l=x12l+.5u; x13'l=x12'l-.25u;
+y12=y11-.1h; y12'=y12+.25h; y13=y12+.25(y12'-y12); y13'=y12+.75(y12'-y12);
+filldraw stroke z12e{left}..{up}z13e---z13'e..z12'e;
+x6=x12; y6=y12+oo; rt_wing(6,2u,0);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10); endchar;
+
+
+iff known eth_kuA:
+cmchar "The letter kuA";
+beginchar(eth_kuA,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,1u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem,0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.5h; bot y4r=.1h; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=x4r=w-1.5u; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); x7=w-x4r; y7=.33h;
+filldraw stroke z4e...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+% right lower leg
+penpos13(stem,0); penpos12(stem,0); penpos13'(stem,0); penpos12'(stem,0);
+x13l=x12l=x4r; x13'l=x13l+fine; x12'l=x12l-fine;
+y13=y4-oo; bot y12=y4-.25h; y13'=y12+.8(y13-y12); y12'=y12+.2(y13-y12);
+filldraw stroke z13e..controls z13'e and z12'e..z12e;
+
+% left wing arm
+penpos14(hair,90); penpos15(hair,90);
+x14r=x4l; x15r=x14r-2.5u; y14=y4; y15=y14-.05h;
+draw z14---z15;
+% left lower wing
+z16=z15; t_wing(16);
+penlabels(1,2,3,4,4',5,6,7,9,10,11,12,13,14,15); endchar;
+
+
+iff known eth_kuE:
+cmchar "The letter kuE";
+beginchar(eth_kuE,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,3u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos3(stem',0); penpos4(stem,0);
+penpos5(vair,90); penpos4'(stem',0); penpos3'(stem,0);
+top y3r=.5h; bot y4r=.1h; y5r=.8h; y4'=.25(y3r-y4r)+y4r; y3'=y5+.05h;
+x4'r=x3r=x4r=w-1.5u; x5=x4r-3.5u; x3'=.5[x3,x5];
+
+% THE LEFT STEM AND ARC
+penpos7(stem',180); x7=w-x4r; y7=.33h;
+filldraw stroke z4e...z3e..super_arc.e(3,5)...
+super_arc.e(5,7)...z7e;
+
+penpos9(stem,0); penpos10(stem,0); penpos9'(stem,0); penpos10'(stem,0);
+x9r=x10r=x7; y9=y5r-.1h+o; top y10=h;
+x9'=x9-fine; x10'=x9+fine; y9'=.20(y10-y9)+y9; y10'=.80(y10-y9)+y9;
+filldraw stroke z9e..controls z10'e..z10e;
+
+% right lower half ring
+penpos12(stem,0); x12=x4; y12=y4; half_ring(12);
+
+% left wing arm
+penpos14(hair,90); penpos15(hair,90);
+x14r=x4l; x15r=x14r-2u; y14=y4; y15=y14-.05h;
+draw z14---z15;
+% left lower wing
+z16=z15; t_wing(16);
+penlabels(1,2,3,4,4',5,6,7,8,8',9,10,12,14,15); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_l.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_l.mf
new file mode 100644
index 00000000000..9ed1f26a195
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_l.mf
@@ -0,0 +1,159 @@
+%-------------------------------------------------------------
+% This is ETH_L.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_la:
+cmchar "The letter la";
+beginchar(eth_la,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(.5u#, .25u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.75stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem;
+rt x1r=x0r-stem; rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lU:
+cmchar "The letter lU";
+beginchar(eth_lU,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 3.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.75stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem;
+rt x1r=x0r-stem; rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x8=x2l; y8=y2-.1h; rt_wing(8,2u,.015h);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lI:
+cmchar "The letter lI";
+beginchar(eth_lI,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.75stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem;
+rt x1r=x0r-stem; rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x8=x0; y8=y0; rt_half_ellipse(8,1.5u);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lA:
+cmchar "The letter lA";
+beginchar(eth_lA,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.5stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem;
+rt x3r=.5[x0r,x4]-.2stem;
+bot y7=.25h; bot y0=0; y2=.55h; y6=.5[y7,y3];
+y1=.5[y2,y0]; top y4=h+o; y3=y3'=.45[y4,y2]; y5l=y3-.1h;
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lE:
+cmchar "The letter lE";
+beginchar(eth_lE,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 3u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.75stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem;
+rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x8=x0-fine; y8=y0; half_ring(8);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_le:
+cmchar "The letter le";
+beginchar(eth_le,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#, 0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,10); penpos5(stem,-10); penpos6(stem,-10); penpos7(.8stem,18);
+x7l=hround max(.5u,1.25u-.5stem); x5l=x7l+1.5u; x6l=x7l-.25stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem;
+rt x3r=.5[x0r,x4]-.2stem;
+bot y7-.75stem=0; bot y0=0; y2=.55h; y1=y6=.5[y2,y0];
+top y4=h+o; y3=y3'=.45[y4,y2]; y5l=y3-.1h;
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x9=x7-.75u; y9=y7+.025h; lsix_ring(9,18)
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_lO:
+cmchar "The letter lO";
+beginchar(eth_lO,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#,5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,10); penpos5(stem,-10); penpos6(stem,-10); penpos7(stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u;
+x6l=x7l-.75stem; rt x4r=rt x3'l=.5w;
+x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem; rt x3r=.5[x0r,x4]-.2stem;
+bot y7= bot y0=0; y2=.55h; y1=y6=.5[y2,y0]; top y4=h+o; y3=y3'=y5l=.45[y4,y2];
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+x8=x2l; x8'=x8+3u; y8=y2; y8'=y2+.05h; draw z8--z8';
+x9=x8'; y9=y8'-.3h; large_ring(9,7);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_luA:
+cmchar "The letter luA";
+beginchar(eth_luA,9.5u#,.55[cap_height#,x_height#],0);
+adjust_fit(+.5u#,4u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(1.2stem,0); penpos1(stem,10); penpos2(stem,10); penpos3(stem,0);
+penpos3'(stem,-20);
+penpos4(stem,20); penpos5(stem,-10); penpos6(stem,-10); penpos7(1.2stem,0);
+x7l=hround max(.75u,1.5u-.5stem); x5l=x7l+1.5u; x6l=x7l-.5stem;
+rt x4r=rt x3'l=.5w; x0r=w-x7l; x2r=x0r-.25stem; rt x1r=x0r-stem;
+rt x3r=.5[x0r,x4]-.2stem;
+bot y7=.25h; bot y0=0; y2=.55h; y6=.5[y7,y3];
+y1=.5[y2,y0]; top y4=h+o; y3=y3'=.45[y4,y2]; y5l=y3-.1h;
+filldraw stroke z0e..controls z1e and z2e..z3e..z4e;
+filldraw stroke z7e..controls z6e and z5e..{up}z3'e;
+
+x20=x0l; x21=x0r; y20=y21=y0; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_m.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_m.mf
new file mode 100644
index 00000000000..1aeb7d135bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_m.mf
@@ -0,0 +1,214 @@
+%-------------------------------------------------------------
+% This is ETH_M.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ma:
+cmchar "The letter ma";
+beginchar(eth_ma,16u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib;
+penpos1(vair,90); pos0(vair,90); penpos2(stem,180); penpos3(stem,180);
+penpos3'(stem,180);
+penpos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(vair,0);
+penpos8(stem,180); penpos9(stem,180); penpos9'(stem,180);
+penpos10'(vair,270); penpos10(vair,270); penpos11(stem,0);
+penpos12(stem,0); penpos13(vair,90); penpos14(vair,90);
+
+x1=w-11.5u; x0r=w-8u; x2r=w-14u; lft x3r=w-15u; lft x3'r=w-14.5u;
+x4=w-12u; x5r=w-9.75u; rt x6r=w-7u;
+x7=w-6.5u; x8r=w-6u; x9r=w-7u; x9'r=w-6.5u; x10'=x9'l;
+x10=w-3.75u; x11l=w-3.25u; x12l=w-3u;
+x13=w-4u; x14=w-5u;
+
+y1r=.65h+o; y0r=.65h; y2=.5h; y3=.3h; y3'=.2h; y4=.2h+oo;
+y5=.2h-oo; y6=.65h; y7=.675h;
+y8=.65h; y9=.275h; y9'=y10'=.225h; y10r=.225h; y11=.35h;
+y12=.6h; y13=.65h; y14=.65h;
+
+filldraw stroke z0e...z1e...z2e..z3e...z3'e..z4e...z5e--z6e..z7e..z8e;
+filldraw stroke z8e--z9e{down}..{right}z9'e;
+filldraw stroke z10'e..z10e...z11e..tension 1.2..z12e..z13e...z14e;
+penlabels(0,1,2,3,3',4,5,6,7,8,9,10,10',11,12,13,14); endchar;
+
+
+iff known eth_mU:
+cmchar "The letter mU";
+beginchar(eth_mU,16u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib;
+penpos1(vair,90); pos0(vair,90); penpos2(stem,180); penpos3(stem,180);
+penpos3'(stem,180);
+penpos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(vair,0);
+penpos8(stem,180); penpos9(stem,180); penpos9'(stem,180);
+pos10'(vair,270); penpos10(vair,270); penpos11(stem,0);
+penpos12(stem,0); penpos13(vair,90); penpos14(vair,90);
+
+x1=w-11.5u; x0r=w-8u; x2r=w-14u; lft x3r=w-15u; lft x3'r=w-14.5u;
+x4=w-12u; x5r=w-9.75u; rt x6r=w-7u;
+x7=w-6.5u; x8r=w-6u; x9r=w-7u; x9'r=w-6.5u; x10'=x9'l;
+x10=w-3.75u; x11l=w-3.25u; x12l=w-3u;
+x13=w-4u; x14=w-5u;
+
+y1r=.65h+o; y0r=.65h; y2=.5h; y3=.3h; y3'=.2h; y4=.2h+oo; y5=.2h-oo;
+ y6=.65h; y7=.675h;
+y8=.65h; y9=.275h; y9'=y10'=.225h; y10r=.225h; y11=.35h; y12=.6h;
+ y13=.65h; y14=.65h;
+
+filldraw stroke z0e...z1e...z2e..z3e...z3'e..z4e...z5e--z6e..z7e..z8e;
+filldraw stroke z8e--z9e{down}..{right}z9'e;
+filldraw stroke z10'e..z10e...z11e..tension 1.2..z12e..z13e...z14e;
+x15=x11r; y15=.5[y11,y12]; rt_half_ellipse(15,1.5u);
+penlabels(0,1,2,3,3',4,5,6,7,8,9,10,10',11,12,13,14); endchar;
+
+
+iff known eth_mI:
+cmchar "The letter mI";
+beginchar(eth_mI,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.2u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); penpos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); pos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+pos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h;
+ y3=.5[y1,y2]; y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+x14l=x13; bot y14=00; rt_half_ellipse(14,1.5u);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12,13,14); endchar;
+
+
+iff known eth_mA:
+cmchar "The letter mA";
+beginchar(eth_mA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.2u#,1u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); penpos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); penpos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+penpos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h;
+ y3=.5[y1,y2]; y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12); endchar;
+
+
+iff known eth_mE:
+cmchar "The letter mE";
+beginchar(eth_mE,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.25u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); penpos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); penpos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+penpos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h; y3=.5[y1,y2];
+ y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+x14=x13; bot y14=0; half_ring(14);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12,13,14); endchar;
+
+
+iff known eth_me:
+cmchar "The letter me";
+beginchar(eth_me,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(.5u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90);
+penpos0'(vair,90); penpos2(curve,180); penpos3(curve,180); penpos4(vair,270);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(vair,270); penpos9(curve,0); penpos13(stem,0); penpos13'(stem,0);
+
+x2r=hround u; x9r=hround(w-x2r); x3r=x2r+u;
+x1=lft x6=w-.625w; lft x6'=lft x4=lft x6-fine;
+rt x11=w-.37w; rt x7=rt x11-fine; x8=x0'=x0=.5[x7,x9];
+ x13l=x2r-fine; x13'l=x2r;
+
+y6=.5[y0,y1]-oo; top y0=top y0'=h+o; top y1=.98h+o; y2=y1-.3h; bot y3=y2-.15h;
+y4=y3-.05h; y6'=y4+.05h; y7=.5[y0,y1]; y8=y3+.05h;
+y11=y8+.1h; y9=.5[y0,y3]; bot y13=00; y13'=y13+.15h;
+
+filldraw stroke z0e--super_arc.e(1,2)...z3e...{right}z4e;
+filldraw stroke z6e{down}...z6'e..controls z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..{down}z11e;
+filldraw stroke pulled_super_arc.e(0',9)(superpull)..pulled_arc.e(9,8)..
+pulled_arc.e(8,11);
+penlabels(0,0',1,2,3,4,6,6',7,8,9,11,13,13'); endchar;
+
+
+iff known eth_mO:
+cmchar "The letter mO";
+beginchar(eth_mO,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(.5u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(curve,180);
+penpos3(curve,180); penpos4(vair,270);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(vair,270); penpos9(curve,0); penpos13(stem,0);
+
+x2r=hround u; x9r=hround(w-x2r); x3r=x2r+u;
+x1=lft x6=w-.6w; lft x6'=lft x4=lft x6-fine;
+rt x11=w-.37w; rt x7=rt x11-fine; x8=x0'=x0=.5[x7,x9]; lft x13=lft x6-u;
+
+y6=.5[y0,y1]-oo; top y0=top y0'=h+o; top y1=.98h+o; y2=y1-.3h; bot y3=y2-.15h;
+y4=y3-.05h; y6'=y4+.05h; y7=.5[y0,y1]; y8=y3+.05h;
+y11=y8+.1h; y9=.5[y0,y3]; bot y13=00;
+
+filldraw stroke z0e--super_arc.e(1,2)...z3e...{right}z4e;
+filldraw stroke z6e{down}...z6'e...{down}z13e;
+pickup fine.nib; filldraw stroke z7e..{down}z11e;
+filldraw stroke pulled_super_arc.e(0',9)(superpull)..pulled_arc.e(9,8)..
+pulled_arc.e(8,11);
+penlabels(0,0',1,2,3,4,6,6',7,8,9,11,13); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_mrf.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_mrf.mf
new file mode 100644
index 00000000000..91049feee3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_mrf.mf
@@ -0,0 +1,87 @@
+%-------------------------------------------------------------
+% This is ETH_MRF.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_mya:
+cmchar "The letter ~mA";
+beginchar(eth_mya,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.2u#,1u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(vair,90); penpos1(vair,90); penpos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); penpos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); penpos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180);
+penpos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=0.85h+o; y9=0.85h+oo; top y1=.825h+o; y2=y1-.25h; bot y4=.4h;
+ y3=.5[y1,y2]; y5'=y4+oo; y6=.5[y0,y1]-oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=-0.05h; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+
+penpos14(stem,0); penpos15(stem,5);
+x14r=x15r=x7r; y14=y7; y15=y14+0.175h;
+filldraw stroke z14e--z15e;
+
+x16=x15l+.25u; x17=x15r; y16=y17=y15-oo;
+upper_left_wing(16); upper_right_wing(17);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12,14,15); endchar;
+
+
+iff known eth_rya:
+cmchar "The letter ~ri";
+beginchar(eth_rya,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,1u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,270); penpos5(stem,0); penpos6(stem,10);
+x0l=x1l=w-3u; x2r=u; x3=w-5.5u; x4=w-4.5u; x5r=w-u; x6r=x5r-.5u;
+top y0=.95h; y1=.85h; y2=.2h-o; bot y3=.025h; y4=.065h; y5=.2h; y6=.3h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e..z5e{up}...z6e;
+
+x14=x0l; x15=x0r; y14=y15=y0;
+rt_half_ellipse(14,1.5u); lft_half_ellipse(15,1.5u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_fya:
+cmchar "The letter ~fi";
+beginchar(eth_fya,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180);
+penpos2(1.1stem,180); penpos3(stem,195); pos4(vair,270); pos5(vair,270);
+pos6(vair,270); penpos6'(1.2stem,360);
+x0l=x1l=w-3u; x2r=.5u; x3r=x2r+u; x4=w-2.5u; x5=w-1.5u;
+top y0=.95h; y1=.85h; y2=.15h; bot y3=0; y4=.1h; y5=.1h;
+filldraw stroke z0e...z1e...z2e{down}...z3e...z4e---z5e;
+x6=x5-.5u; x6'=x6+2.5u; y6=y5; y6'=y6+.25h; filldraw stroke pulled_arc.e(6,6');
+
+penpos7(stem,25); penpos8(stem,0); pos9(vair,90);
+x7=x4-1.5u; x8=x7+.5u; x9=x2l; y7=y4-o; y9=.3h; y8=y7+.4(y9-y7);
+filldraw stroke z7e..pulled_arc.e(8,9) shifted(.25u,-.025h) rotated 15;
+
+x14=x0l; x15=x0r; y14=y15=y0;
+rt_half_ellipse(14,1.5u); lft_half_ellipse(15,1.5u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_mu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_mu.mf
new file mode 100644
index 00000000000..6f5e63ce84e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_mu.mf
@@ -0,0 +1,195 @@
+%-------------------------------------------------------------
+% This is ETH_MU.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_mua:
+cmchar "The letter mua";
+beginchar(eth_mua,16u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,6.5u#);
+
+pickup fine.nib;
+penpos1(vair,90); pos0(vair,90); penpos2(stem,180); penpos3(stem,180);
+penpos3'(stem,180);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); pos7(vair,0);
+penpos8(stem,180); penpos9(stem,180); penpos9'(stem,180);
+pos10'(vair,270); pos10(vair,270); penpos11(stem,0);
+penpos12(stem,0); pos13(vair,90); pos14(vair,90);
+
+x1=w-11.5u; x0r=w-8u; x2r=w-14u; lft x3r=w-15u; lft x3'r=w-14.5u;
+x4=w-12u; x5r=w-9.75u; rt x6r=w-7u;
+x7=w-6.5u; x8r=w-6u; x9r=w-7u; x9'r=w-6.5u; x10'=x9'l;
+x10=w-3.75u; x11l=w-3.25u; x12l=w-3u;
+x13=w-4u; x14=w-5u;
+
+y1r=.65h+o; y0r=.65h; y2=.5h; y3=.3h; y3'=.2h; y4=.2h+oo; y5=.2h-oo;
+ y6=.65h; y7=.675h;
+y8=.65h; y9=.275h; y9'=y10'=.225h; y10r=.225h; y11=.35h; y12=.6h;
+ y13=.65h; y14=.65h;
+
+filldraw stroke z0e...z1e...z2e..z3e...z3'e..z4e...z5e--z6e..z7e..z8e;
+filldraw stroke z8e--z9e{down}..{right}z9'e;
+filldraw stroke z10'e..z10e...z11e..tension 1.2..z12e..z13e...z14e;
+penlabels(0,1,2,3,3',4,5,6,7,8,9,10,10',11,12,13,14);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x11r; x20'=x20+2.5u; y20=y20'=.5[y11,y12]; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20,20');
+endchar;
+
+
+iff known eth_muI:
+cmchar "The letter muI";
+beginchar(eth_muI,16u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,5.5u#);
+
+pickup fine.nib;
+penpos1(vair,90); pos0(vair,90); penpos2(stem,180); penpos3(stem,180);
+penpos3'(stem,180);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); pos7(vair,0);
+penpos8(stem,180); penpos9(stem,180); penpos9'(stem,180);
+pos10'(vair,270); pos10(vair,270); penpos11(stem,0);
+penpos12(stem,0); pos13(vair,90); pos14(vair,90);
+
+x1=w-11.5u; x0r=w-8u; x2r=w-14u; lft x3r=w-15u; lft x3'r=w-14.5u;
+x4=w-12u; x5r=w-9.75u; rt x6r=w-7u;
+x7=w-6.5u; x8r=w-6u; x9r=w-7u; x9'r=w-6.5u; x10'=x9'l;
+x10=w-3.75u; x11l=w-3.25u; x12l=w-3u;
+x13=w-4u; x14=w-5u;
+
+y1r=.65h+o; y0r=.65h; y2=.5h; y3=.3h; y3'=.2h; y4=.2h+oo; y5=.2h-oo;
+ y6=.65h; y7=.675h;
+y8=.65h; y9=.275h; y9'=y10'=.225h; y10r=.225h; y11=.35h; y12=.6h;
+ y13=.65h; y14=.65h;
+
+filldraw stroke z0e...z1e...z2e..z3e...z3'e..z4e...z5e--z6e..z7e..z8e;
+filldraw stroke z8e--z9e{down}..{right}z9'e;
+filldraw stroke z10'e..z10e...z11e..tension 1.2..z12e..z13e...z14e;
+penlabels(0,1,2,3,3',4,5,6,7,8,9,10,10',11,12,13,14);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x11r; x20'=x20+1.5u; y20=y20'= .5[y11,y12];
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.5u; y21=y20-.1h;
+y21'=y20+.2h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,1u,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_muA:
+cmchar "The letter muA";
+beginchar(eth_muA,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.2u#,3u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); pos1(vair,90); pos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); pos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); pos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+pos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h;
+ y3=.5[y1,y2]; y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+
+x20=x13l; x21=x13r; y20=y21=y13; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12); endchar;
+
+
+iff known eth_muE:
+cmchar "The letter muE";
+beginchar(eth_muE,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(-.25u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); pos1(vair,90); pos0'(vair,90); penpos2(stem,-180);
+penpos3(stem,180); penpos4(vair,200); pos5(vair,270); penpos5'(stem,-0);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+penpos8(stem,180); pos8'(vair,270); penpos9(stem,0);
+penpos9'(stem,0); penpos10(stem,180); penpos14(stem,0);
+pos12(vair,270); penpos13(stem,0); penpos13'(stem,0);
+
+lft x2r=hround u; x9'l=hround(w); x9r=x9'l-.5stem; x0'=x9;
+x5'=x5l=w-.625w; x1=x5l+stem;
+lft x4r=hround(x2r+1.25stem); x6=x5l+stem; x12l=x8r=w-.375w; x7r=x8r-.5u;
+x3=.5[x6,x2r]; x11r=hround(x7r-stem); y6=.5[y0,y1]-oo; x8'r=x9r-u;
+x10r=hround(x7r+stem); x13=w-3u; x13'=x13-stem;
+
+top y0=top y0'=h+o; y9=h+oo; top y1=.98h+o; y2=y1-.3h; bot y4=.55h; y3=.5[y1,y2];
+ y5'=y4+oo;
+y7=.5[y0,y1]; y12=y8=y4+.05h-oo; y11=y8+.1h; y8'=y8+oo;
+y10=y7-.1h; bot y13=00; y13'=.25(y9-y13)+y13; y9'=.8(y9-y13)+y13;
+
+filldraw stroke z6e--z5'e...{left}z4e..super_arc.e(2,1)---z0'e;
+filldraw stroke z8'e{left}...z12e;
+filldraw stroke z9e..controls z9'e and z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..controls z10e and z11e..z8e{right};
+x14=x13; bot y14=0; half_ring(14);
+penlabels(0,1,2,3,4,5,5',6,7,8,8',9,10,11,12,13,14);
+
+x20=x13l; y20=y13l; lft_wing(20,2u,.045h);
+penlabels(20);
+endchar;
+
+
+iff known eth_mue:
+cmchar "The letter mue";
+beginchar(eth_mue,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(.5u#,5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pos0(vair,90); pos1(vair,90);
+pos0'(vair,90); penpos2(curve,180); penpos3(curve,180); pos4(vair,270);
+penpos6(stem,-0); penpos6'(stem,0); penpos7(stem,180); penpos11(stem,180);
+pos8(vair,270); penpos9(curve,0); penpos13(stem,0); penpos13'(stem,0);
+
+x2r=hround u; x9r=hround(w-x2r); x3r=x2r+u;
+x1=lft x6=w-.625w; lft x6'=lft x4=lft x6-fine;
+rt x11=w-.37w; rt x7=rt x11-fine; x8=x0'=x0=.5[x7,x9];
+ x13l=x2r-fine; x13'l=x2r;
+
+y6=.5[y0,y1]-oo; top y0=top y0'=h+o; top y1=.98h+o; y2=y1-.3h; bot y3=y2-.15h;
+y4=y3-.05h; y6'=y4+.05h; y7=.5[y0,y1]; y8=y3+.05h;
+y11=y8+.1h; y9=.5[y0,y3]; bot y13=00; y13'=y13+.15h;
+
+filldraw stroke z0e--super_arc.e(1,2)...z3e...{right}z4e;
+filldraw stroke z6e{down}...z6'e..controls z13'e ..z13e;
+pickup fine.nib; filldraw stroke z7e..{down}z11e;
+filldraw stroke pulled_super_arc.e(0',9)(superpull)..pulled_arc.e(9,8)..
+pulled_arc.e(8,11);
+penlabels(0,0',1,2,3,4,6,6',7,8,9,11,13,13');
+
+pos20(vair,90); pos20'(vair,90);
+x20=x9r; x20'=x20+1.5u; y20=y20'=y9r;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.25u; y21=y20;
+y21'=y21+.25h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,0,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_n.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_n.mf
new file mode 100644
index 00000000000..2921229a6ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_n.mf
@@ -0,0 +1,150 @@
+%-------------------------------------------------------------
+% This is ETH_N.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_na:
+cmchar "The letter na";
+beginchar(eth_na,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,5); penpos4(stem,0); penpos5(stem,0); penpos6(stem,5);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3l=w-4u; x4l=u; x5l=1.5u; x6l=u;
+bot y0=0; y1=.075h; y2=.6h; y3=.65h; y4=.675h; y5=.925h; y6=.975h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e{left}
+...{up}z4e---z5e{up}...{left}z6e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_nU:
+cmchar "The letter nU";
+beginchar(eth_nU,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,5);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.6h; y3=.65h; y4=.65h; y5=.7h; y6=.9h; y7=.975h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=w-1.75u; y8=.45h; rt_wing(8,1.25u,0);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_nI:
+cmchar "The letter nI";
+beginchar(eth_nI,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,5);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.6h; y3=.65h; y4=.65h; y5=.7h; y6=.9h; y7=.975h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x0r-.5u; bot y8=o; rt_half_ellipse(8,1.5u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_nA:
+cmchar "The letter nA";
+beginchar(eth_nA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-2u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,187); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=w-5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.9h; y1=.9h-o; y2=.55h; y3=.425h; y4=.45h; y5=y4;
+y6=y4-.1h; y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+z9=z0; rt_wing(9,0,0);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_nE:
+cmchar "The letter nE";
+beginchar(eth_nE,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.25u#,1.5u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,5);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.6h; y3=.65h; y4=.65h; y5=.7h; y6=.9h; y7=.975h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x0; bot y8=0; half_ring(8);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_ne:
+cmchar "The letter ne";
+beginchar(eth_ne,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0); penpos5(stem,0); penpos6(stem,0);
+pos7(vair,45);
+x1=.5w; x0l=x1l+.25u; x2r=w-1.25u; x3r=x2r-.5u;
+x4l=w-5u; x5l=x4l-.25u; x6l=w-4.5u; x7=.5w;
+bot y0=0; y1=.075h; y2=.55h; y3=.6h; y4=y3; y5=y4+.025h; y6=.85h; top y7=.95h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e---z4e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x7; y8=y7; lft_wing(8,1.5u,o);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_nO:
+cmchar "The letter nO";
+beginchar(eth_nO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,185); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=.55w; x1=x0-1u; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.9h; y1=.9h-o; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0-1.75u; y9=y0-o; nfour_ring(9,0,1/6);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_nuA:
+cmchar "The letter nuA";
+beginchar(eth_nuA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,0);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,187); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+
+x0=w-5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.9h; y1=.9h-o; y2=.55h; y3=.425h; y4=.45h; y5=y4;
+y6=y4-.1h; y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0; y9=y0+o; rt_wing(9,0,-o);
+
+x20=x8r; x21=x8l; y20=y21=y8; lft_wing(20,2u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_nn.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_nn.mf
new file mode 100644
index 00000000000..1c26b034014
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_nn.mf
@@ -0,0 +1,176 @@
+%-------------------------------------------------------------
+% This is ETH_NN.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Na:
+cmchar "The letter Na";
+beginchar(eth_Na,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,1.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,7);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.575h; y3=y4=.625h; y5=.675h; y6=.875h; y7=.95h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+
+x8=x7l; x9=x7r; y8=y9=y7; lft_half_ellipse(8,1.25u);
+rt_half_ellipse(9,1.75u);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_NU:
+cmchar "The letter NU";
+beginchar(eth_NU,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,2.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,7);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.575h; y3=y4=.625h; y5=.675h; y6=.875h; y7=.95h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+
+x8=x7l; x9=x7r; y8=y9=y7; lft_half_ellipse(8,1.25u);
+rt_half_ellipse(9,1.75u);
+x10=w-1.75u; y10=.45h; rt_wing(10,1.25u,0);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_NI:
+cmchar "The letter NI";
+beginchar(eth_NI,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,2u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,7);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.575h; y3=y4=.625h; y5=.675h; y6=.875h; y7=.95h;
+
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+z8=z0r; rt_half_ellipse(8,1.5u);
+x9=x7l; x10=x7r; y9=y10=y7; lft_half_ellipse(9,1.25u);
+rt_half_ellipse(10,1.75u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_NA:
+cmchar "The letter NA";
+beginchar(eth_NA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.5u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,187); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=w-4.5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.8h; y1=.8h+.025h; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0; y9=y0+o; rt_wing(9,0,-o);
+penpos10(stem,5); penpos11(stem,5);
+x10=x4-.5u; x11=x10+.25u; y10=y0+o; y11=y0+.2h; filldraw stroke z10e--z11e;
+x12=x11l; x13=x11r; y12=y13=y11; lft_half_ellipse(12,1.5u);
+rt_half_ellipse(13,1.25u);
+penlabels(0,1,2,3,4,5,6,7,8,10,11); endchar;
+
+
+iff known eth_NE:
+cmchar "The letter NE";
+beginchar(eth_NE,7u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3u#,1.5u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,5); penpos4(stem,5); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,7);
+x1l=w-5u; x0l=x1l+.5u; x2r=w-1.2u; x3r=x2r-.5u;
+x4r=x3l; x5r=x4r-.25u; x6r=x4r+.25u; x7r=x4r-.25u;
+bot y0=0; y1=.075h; y2=.575h; y3=y4=.625h; y5=.7h; y6=.9h; y7=.975h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x0; bot y8=0; half_ring(8);
+x9=x7l; x10=x7r; y9=y10=y7; lft_half_ellipse(9,1.25u);
+rt_half_ellipse(10,1.75u);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_Ne:
+cmchar "The letter Ne";
+beginchar(eth_Ne,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,1u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0); penpos5(stem,0); penpos6(stem,0);
+pos7(vair,45);
+x1=.5w; x0l=x1l+.25u; x2r=w-1.25u; x3r=x2r-.5u;
+x4l=w-5u; x5l=x4l-.25u; x6l=w-4.5u; x7=.5w;
+bot y0=0; y1=.075h; y2=.5h; y3=.55h; y4=y3; y5=y4+.025h; y6=.75h; top y7=.85h;
+filldraw stroke z0e{left}...{up}z1e---z2e{up}...{left}z3e---z4e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+
+x8=x7; y8=y7; lft_wing(8,1.5u,o);
+penpos9(stem,0); penpos10(stem,0); x9+.25u=x10=x7; y9=y7; y10=y9+.125h;
+filldraw stroke z9e--z10e;
+x14=x9l+.25u; x15=x9r; y14=y15=y10;
+upper_left_wing(14); upper_right_wing(15);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_NO:
+cmchar "The letter NO";
+beginchar(eth_NO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,.5u#);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,185); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=w-4.5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.8h; y1=.8h+.025h; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0-1.75u; y9=y0-.05h; ynseven_ring(9,0,1/6);
+
+penpos10(stem,0); penpos11(stem,7);
+x10=x4-.5u; x11=x10+.25u; y10=y0+o; y11=y0+.2h; filldraw stroke z10e--z11e;
+
+x12=x11l; x13=x11r; y12=y13=y11; lft_half_ellipse(12,1.5u);
+rt_half_ellipse(13,1.25u);
+penlabels(0,1,2,3,4,5,6,7,8,10,11); endchar;
+
+
+iff known eth_NuA:
+cmchar "The letter NuA";
+beginchar(eth_NuA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; pos0(vair,90); pos1(vair,105); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,187); penpos6(stem,180);
+penpos7(stem,180); penpos8(stem,180);
+x0=w-4.5u; x1=.45w; x2r=1.75u; x3r=2.5u; x4=w-6u;
+x5=x4; x6=x5+.5u; x7=x5; x8=x5+.5u;
+y0=.8h; y1=.8h+.025h; y2=.55h; y3=.425h; y4=.45h; y5=y4; y6=y4-.1h;
+y7=.075h; bot y8=0;
+
+filldraw stroke z0e{left}...z1e{left}...{down}z2e...z3e{right}..z4e;
+filldraw stroke z5e{right}...{down}z6e---z7e{down}...{right}z8e;
+x9=x0; y9=y0+o; rt_wing(9,0,-o);
+
+penpos12(stem,0); penpos11(stem,0); x12+.25u=x11=x7; y12=y0; y11=y12+.175h;
+filldraw stroke z12e--z11e;
+x14=x12l+.25u; x15=x12r; y14=y15=y11;
+upper_left_wing(14); upper_right_wing(15);
+x20=x8r; x21=x8l; y20=y21=y8; lft_wing(20,2u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(0,1,2,3,4,5,6,7,8,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_num.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_num.mf
new file mode 100644
index 00000000000..07931fb6265
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_num.mf
@@ -0,0 +1,495 @@
+%-------------------------------------------------------------
+% This is ETH_NUM.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_100_100:
+cmchar "Ethiopic numeral 10000";
+beginchar(eth_100_100,13u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,u#);
+
+pickup fine.nib;
+penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,105); penpos4(curve,0); pos5(vair,270);
+penpos0'(stem,180); penpos2'(stem,180);
+x2r = 0; x1=x0; x2r=x0-1.5u; x3=x0+2u; x4r=x0+4.5u; x5=x2l;
+x0'=x0+.5u; x2'r=x2r+.25u;
+y0=.2h; y1=.3h; y2=.6h; top y3=.8h; y5=.45h; y4=.65h;
+bot y0'=.1h; y2'=.4h;
+filldraw stroke z5e{right}..{up}z4e..{left}z3e;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e..z0e{down}..{right}z0'e;
+
+pickup fine.nib;
+penpos20(stem,180); penpos21(stem,180); penpos22(stem,180);
+pos23(vair,105); penpos24(curve,0); pos25(vair,270);
+penpos20'(stem,180); penpos22'(stem,180);
+x24r = w; x21=x20; x22r=x20-1.5u; x23=x20+2u; x24r=x20+4.5u; x25=x22l;
+x20'=x20+.5u; x22'r=x22r+.25u;
+y20=.2h; y21=.3h; y22=.6h; top y23=.8h; y24=.65h; y25=.45h;
+bot y20'=.1h; y22'=.4h;
+filldraw stroke z25e{right}..{up}z24e..{left}z23e;
+filldraw stroke z23e{left}...{down}z22e..z22'e...z21e..z20e{down}..{right}z20'e;
+
+pickup fine.nib;
+pos5'(vair,270); z5'=z1l;
+filldraw stroke z5'e--z25e;
+
+x9=x10=.5[x3,x23]; y9=y10=h+.075h;
+lft_wing(9,2u,.01h); rt_wing(10,1.75u,.01h);
+x11=x12=.5[x0',x20']; bot y11=bot y12=-o;
+lft_wing(11,2u,.01h); rt_wing(12,2.25u,.01h);
+penlabels(0,0',1,2,2',3,4,5, 9,10,11,12, 20,20',21,22,22',23,24,25);
+endchar;
+
+
+iff known eth_100:
+cmchar "Ethiopic numeral 100";
+beginchar(eth_100,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-u#,u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-6.5u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=.1h; y0=.2h; y1=.3h; y2=.6h; y2'=.4h; top y3=.8h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e..z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.45h; y4=.65h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x9=x10=.65w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.25u,.01h);
+x11=x12=.55w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(0,0',1,2,3,4,5); endchar;
+
+
+iff known eth_90:
+cmchar "Ethiopic numeral 90";
+beginchar(eth_90,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,0);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0); penpos5(stem,0); penpos6(stem,0);
+pos7(vair,45);
+
+x1=.5w; x0=x1+.5u; x2r=w-1.25u; x3=x0+1.5u;
+x4l=w-5u; x5l=x4l-.25u; x6l=w-4.5u; x7=.5w;
+bot y0=.1h; y1=.2h; y2=.55h; y3+o=y4=.55h; y5=y4+.025h; y6=.7h; top y7=.8h;
+
+filldraw stroke z0e{left}...{up}z1e---z3e;
+filldraw stroke z4e{left}...{up}z5e---z6e{up}...{left}z7e;
+x8=x7; y8=y7; lft_wing(8,1.5u,o);
+
+x9=x10=.5w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.25u,.01h);
+x11=x12=.45w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_80:
+cmchar "Ethiopic numeral 80";
+beginchar(eth_80,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(3u#,2.5u#)
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+
+%LEFT STEM
+penpos0(stem,0); penpos1(stem,0); penpos1'(stem,0);
+x0=w-7u; x1=x0-.5u; x1'=x1-.5u;
+y0=.75h-o; y1=.15h; y1'=.15(y0-y1)+y1;
+filldraw stroke z0e--z1'e{down}..{right}z1e;
+
+%RIGHT STEM
+penpos3(stem,0); penpos3'(stem,0); penpos2(stem,0);
+x2=w-x0; x3=x2-.5u; x3'=x3-.5u;
+y2=.75h; y3=.15h; y3'=.15(y2-y3)+y3;
+filldraw stroke z2e--z3'e{down}..{right}z3e;
+
+x4=x0r; x4'=x2l; y4=y0; y4'=y2; draw z4--z4';
+x5=x0l; x6=x2r; y5=y0; y6=y2;
+lft_wing(5,2u,.015h); rt_wing(6,1.5u,.015h);
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,1.75u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.75u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_70:
+cmchar "Ethiopic numeral 70";
+beginchar(eth_70,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(stem,180);
+penpos2(stem,180); pos2'(stem,200); pos3(vair,270);
+
+x0=w-3.5u; x0'=x0-1.5u; x2r=u; x1r=1.75u; x2'r=x2r+.25h; x3=w-4u;
+top y0=.8h; top y0'=y0; y1=.6h; y2=.275h; y2'=.15h-oo; y3=.175h+o;
+filldraw stroke z0e...z0'e{left}...z1e..z2e{down}...z2'e...z3e;
+
+x7=x3; y7=y3; rt_half_ellipse(7,0);
+x8=x0; y8=y0-.225h; large_ring(8,5);
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(0,1,2,2',3); endchar;
+
+
+iff known eth_60:
+cmchar "Ethiopic numeral 60";
+beginchar(eth_60,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+pickup fine.nib; penpos1(stem,0); penpos2(stem,0); penpos1'(stem,0);
+penpos2'(stem,0);
+x1=w-5u; x1'=x1-.5u; x2=x1'+u; x2=x2'-.5u;
+top y1=.8h; y2=.3h; y1'=y2'+o=y2+.6(y1-y2);
+filldraw stroke z1e--z1'e; filldraw stroke z2'e--z2e;
+
+x3=x1l; x4=x1r; y3=y4=y1;
+lft_wing(3,2u,.015h); rt_wing(4,2.5u,.015h);
+x5=x2l; x6=x2r; y5=y6=y2;
+lft_wing(5,2.25u,.015h); rt_wing(6,1.5u,.010h);
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(1,2,3,4,6,7); endchar;
+
+
+iff known eth_50:
+cmchar "Ethiopic numeral 50";
+beginchar(eth_50,8.5u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,.5u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270);
+penpos8(stem,0); penpos8'(stem,0); penpos9(stem,0); penpos9'(stem,0);
+
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x4l=.5w+fine; x8r=w-x0r-stem; x8'r=x8r+.5u; x9r=x8r-.5u; x9'r=x9r-.25u;
+
+top y0=top y8=.75h+o; y3=.45h; y1=.75(y0-y3)+y3; y2=.25(y0-y3)+y3;
+y4=y7=y3+o; bot y9=.1h; y8'=y9+.85(y8-y9); y9'=y9+.1(y8-y9);
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e{right}..{down}z8'e--z9'e{down}..{right}z9e;
+
+x19=x20=.45w; y19=y20=h+.075h;
+lft_wing(19,1.25u,.01h); rt_wing(20,1.25u,.01h);
+x21=x12=.45w; bot y21=bot y12=-o;
+lft_wing(21,1.25u,.01h); rt_wing(12,1.25u,.01h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_40:
+cmchar "Ethiopic numeral 40";
+beginchar(eth_40,13.5u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,-1.25u#);
+
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); pos4(vair,270); penpos5(stem,0); penpos6(stem,0);
+penpos7(stem,0); penpos8'(stem,0); penpos8(stem,0); penpos9(stem,0);
+pos10(vair,270); penpos9'(stem,0); pos11(stem,180);
+
+x0r=hround max(.7u,1.45u-.5curve)+u; x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=.525w; x6r=hround(x5r+fine); x7r=x4l=hround(x5r-.25stem);
+x8r=w-x0r-u; x8'r=x8r+.25u; x9r=x8'r-u; x9'r=x9r-.25u;
+x10r=.75[x5r,x8r]; x11r=x4r-u;
+
+top y0=top y5=top y8=.775h; y3=.45h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=.15h; y8'=y9+.85(y8-y9);
+y9'=y9+.15(y8-y9); y10=y4; y11=y4+.1h;
+
+filldraw stroke pulled_arc.e(11,10); filldraw stroke z5e..controls z6e..z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e{right}..{down}z8'e--z9'e{down}..{right}z9e;
+
+x19=x20=.5w; y19=y20=h+.075h;
+lft_wing(19,1.5u,.01h); rt_wing(20,1.5u,.01h);
+x21=x12=.425w; bot y21=bot y12=-o;
+lft_wing(21,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_30:
+cmchar "Ethiopic numeral 30";
+beginchar(eth_30,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,0);
+if vair < fine.breadth:vair:=fine.breadth; fi
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos1'(stem,0);
+pos2(vair,90); penpos3(stem,180); penpos4(stem,180);
+penpos4'(stem,0); pos5(vair,270); penpos6(stem,180);
+penpos7(stem,180); pos8(vair,135);
+
+x0r=x1r=w-1.25u; x0'r=x0r-.5stem; x1'=x1r; x2=(x0l-1.25u); x3l=x4l=(x2-1.25u);
+x4'r=x4l; x5=(x4r-1.25u); x6l=(x5-1.25u); x7l=.5[x5,x6l]; x8l=x5;
+
+y0=.13h+oo; y1=.65h; y0'=.25(y1-y0)+y0; y1'=.75(y1-y0)+y0; y2=.75h;
+y3=y1'; y4=y4'=y0'+.15h; y5=y0'-.1h; y6=y4; y7=y1'; y8=y2;
+
+filldraw stroke z0e..controls z0'e and z1'e..super_arc.e(1,2)..
+super_arc.e(2,3)..z3e{down}...z4e;
+filldraw stroke super_arc.e(8,6) & super_arc.e(6,5) & super_arc.e(5,4');
+
+x9=x10=.575w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_20:
+cmchar "Ethiopic numeral 20";
+beginchar(eth_20,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,u#); pickup fine.nib;
+
+penpos0(stem,5); penpos0'(stem,0); penpos1(stem,0); penpos1'(stem,0);
+x0=x0'=.5w; x1=x0-2u; x1'=x1-.5u; y0=.775h; y1=.15h; y0'=y1+.8(y0-y1);
+y1'=y1+.15(y0-y1);
+filldraw stroke z0e{down}..z0'e..z1'e{down}..{right}z1e;
+
+pos2(vair,90); penpos2'(stem,0); penpos3(stem,0); penpos3'(stem,0);
+x2=.5[x0,x1']; x2'=x2+3.5u; x3'=x2'+.5u; x3=x3'+.25u;
+y2=.5[y0,y1']; y2'=y2-.05h; y3'=y1'; y3=y1;
+filldraw stroke z2e{right}...z2'e...{down}z3'e..z3e;
+
+x4=x0l; y4=y0l; lft_wing(4,2u,.015h);
+x5=x0r; y5=y0r; rt_wing(5,2u,.015h);
+
+x9=x10=.525w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.01h); rt_wing(10,1.5u,.01h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,1.5u,.01h); rt_wing(12,1.5u,.01h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_10:
+cmchar "Ethiopic numeral 10";
+beginchar(eth_10,10u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0);
+penpos1'(stem,0); penpos0'(stem,0);
+x1=w-5u; x1'=x1-.5u; x0=w-x1; x0'=x0+.5u;
+top y0=.825h; bot y1=.15h; y0'=y1+.85(y0-y1); y1'=y1+.15(y0-y1);
+filldraw stroke z0e{right}..{down}z0'e--z1'e{down}..{right}z1e;
+
+% BOTTOM AND TOP WINGS
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=-o;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+labels(range 0 thru 13); endchar;
+
+
+iff known eth_9:
+cmchar "Ethiopic numeral 9";
+beginchar(eth_9,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib; penpos0(stem,200); penpos1(stem,180);
+penpos2(stem,180); pos3(vair,270);
+pos4(vair,270); penpos5(stem,0); penpos6(stem,0); penpos7(stem,15);
+
+x0r=1.5u; x1r=2u; x2r=1.35u; x3r=.4w; x4=.5w; x5l=w-3.75u; x6l=w-3.25u; x7l=.6w;
+y0=.7h; y1=.6h; y2=.3h; bot y3=.1h; bot y4=.125h; y5=.4h; y6=.675h; top y7=.8h;
+filldraw stroke z0e...{down}z1e--z2e...z3e..z4e..z5e...z6e...z7e;
+
+pos1'(vair,90); pos5'(vair,90); x1'=x1; y1'=y1-.15h; x5'=x6; y5'=y1'+.1h;
+draw z1'--z5';
+
+x9=x10=.5w; y9=y10=h+.075h;
+lft_wing(9,1.5u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.45w; bot y11=bot y12=00;
+lft_wing(11,1.5u,.015h); rt_wing(12,1.5u,.015h);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_8:
+cmchar "Ethiopic numeral 8";
+beginchar(eth_8,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,0);
+x0=.5w; x1=x0-.5u; y0=.775h; y1=.225h; filldraw stroke z0e--z1e;
+
+x3=x0l; x4=x0r; y3=y4=y0;
+lft_wing(3,1.75u,.015h); rt_wing(4,1.75u,.015h);
+
+x5=x1l; x6=x1r; y5=y6=y1;
+lft_wing(5,1.75u,.015h); rt_wing(6,1.75u,.015h);
+
+% UPPER AND LOWER RING
+x9=x10=.5w; y9=y10=h+.075h;
+lft_wing(9,1.25u,.005h); rt_wing(10,1.25u,.005h);
+x11=x12=.45w; y11=y12=-.05h;
+lft_wing(11,1.25u,.005h); rt_wing(12,1.25u,.005h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_7:
+cmchar "Ethiopic numeral 7";
+beginchar(eth_7,10u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0);
+penpos1'(stem,0); penpos0'(stem,0);
+x1=w-5.5u; x1'=x1-.5u; x0=w-x1+.5u; x0'=x0+.5u;
+top y0=.8h; bot y1=.15h; y0'=y1+.85(y0-y1); y1'=y1+.15(y0-y1);
+filldraw stroke z0e{right}..{down}z0'e--z1'e{down}..{right}z1e;
+x3=x0l; x2=x1; y3=y0; y2=y1;
+lft_wing(3,1.75u,.025h); rt_half_ellipse(2,2.5u);
+
+% BOTTOM AND TOP WINGS
+x9=x10=.575w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.5w; bot y11=bot y12=-o;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+labels(range 0 thru 13); endchar;
+
+
+iff known eth_6:
+cmchar "Ethiopic numeral 6";
+beginchar(eth_6,10u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0);
+penpos1'(stem,0); penpos0'(stem,0);
+x1=w-5.5u; x1'=x1-.5u; x0=w-x1+.5u; x0'=x0+.5u;
+top y0=.75h; bot y1=.1h; y0'=y1+.85(y0-y1); y1'=y1+.15(y0-y1);
+filldraw stroke z0e{right}..{down}z0'e--z1'e{down}..{right}z1e;
+x3=x0l; x2=x1; y3=y0; y2=y1;
+lft_half_ellipse(3,1.75u); half_ring(2);
+
+% BOTTOM AND TOP WINGS
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=-o;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+labels(range 0 thru 13); endchar;
+
+
+iff known eth_5:
+cmchar "Ethiopic numeral 5";
+beginchar(eth_5,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(bar,270); pos4(bar,360);
+lft x0=x1=hround(w-5u); x2l=x0-2.5u; x3l=hround(w-6.5u); x4=w-4u;
+y0=.8h+o; y1=.7h+o; y2=.3h+o; y3=.15h+o; y4=.2h+o;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e;
+
+% RIGHT WING
+x6=x1; y6=y1-.1h+o; rt_wing(6,2u,0);
+
+% RIGHT LOWER WING
+x7=x4; y7=y4; rt_half_ellipse(7,0);
+
+%
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known eth_4:
+cmchar "Ethiopic numeral 4";
+beginchar(eth_4,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,u#);
+
+pickup fine.nib; pos1(vair,90); pos3(vair,-90);
+penpos2(stem,180); penpos4(stem,0);
+x2r=u; x4r=w-x2r; x1=x3=.5w;
+y1r=.8h; y3r=.2h; y2l=y4l=.5[y1r,y3r];
+filldraw stroke pulled_arc.e(1,2)..pulled_arc.e(2,3)..
+ pulled_arc.e(3,4)..pulled_arc.e(4,1); % bowl
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_3:
+cmchar "Ethiopic numeral 3";
+beginchar(eth_3,9u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1u#,1u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,0); penpos1'(stem,0);
+x0=x1=w-7u; x1'=x0-.5u;
+y0=.725h; y1=.125h; y1'=y1+.1h; filldraw stroke z0e--z1'e{down}..{right}z1e;
+
+% RIGHT PEAK
+pickup fine.nib; x3=w-6u-fine; y3=y0; rt_wing(3,3.25u,.015h);
+
+x9=x10=.55w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.5u,.015h);
+x11=x12=.55w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_2:
+cmchar "Ethiopic numeral 2";
+beginchar(eth_2,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,1.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; pos0(vair,270); pos1(1.5vair,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3.5u; x0=w-2.5u;
+y1=.15h; y0=y1-o; y2=.6h; y2'=.45h; top y3=.85h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e;
+
+penpos4(stem,0); pos5(vair,270);
+x5=x2l; x4r=w-.75u; y5=.55h; y4=.7h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+x6=x1-.5u; y6=y1-oo; half_ring(6);
+
+x9=x10=.625w; y9=y10=h+.075h;
+lft_wing(9,2u,.015h); rt_wing(10,1.75u,.015h);
+x11=x12=.625w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,1.75u,.015h);
+penlabels(0,0',1,2,2',3,4,5,6,7); endchar;
+
+
+iff known eth_1:
+cmchar "Ethiopic numeral 1";
+beginchar(eth_1,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,u#);
+
+pickup fine.nib; penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0);
+penpos2(stem,0); pos3(stem,0);
+lft x0=lft x1=w-5u; x0'=x0+.5u; x2l=w-8.5u; x3l=w-7u;
+y0=.8h; y0'=y0-.05h; y1=.65h; y2=.25h; bot y3=.1h;
+filldraw stroke z0e{right}..{down}z0'e{down}...z1e...z2e{down}...z3e{right};
+
+pickup fine.nib; x4=w-7u; x5=w-5u; y4=y5=.13h; draw flex(z4,z5);
+
+pickup fine.nib; pos6(vair,135); penpos7(stem,0); pos8(vair,-135);
+x6=x1-1u-fine; x7=x1+2u; x8=x5; y6=.55h+o; y8=y4; y7=.5[y8,y6];
+filldraw stroke super_arc.e(6,7) & super_arc.e(7,8);
+
+x9=x10=.575w; y9=y10=h+.05h;
+lft_wing(9,2u,.015h); rt_wing(10,2u,.015h);
+x11=x12=.5w; bot y11=bot y12=00;
+lft_wing(11,2u,.015h); rt_wing(12,2u,.015h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_p.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_p.mf
new file mode 100644
index 00000000000..a318ccc4fd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_p.mf
@@ -0,0 +1,133 @@
+%-------------------------------------------------------------
+% This is ETH_P.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_pa:
+cmchar "The letter pa";
+beginchar(eth_pa,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7); endchar;
+
+
+iff known eth_pU:
+cmchar "The letter pU";
+beginchar(eth_pU,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x5=x1; y5=.4h; rt_half_ellipse(5,1.5u);
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_pI:
+cmchar "The letter pI";
+beginchar(eth_pI,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+penpos5(stem,0); x5l=x2; bot y5=00; rt_half_ellipse(5,1.5u);
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_pA:
+cmchar "The letter pA";
+beginchar(eth_pA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(2.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(stem,0); penpos1'(stem,0); pos3(vair,-90);
+x1=x2+0.3u=w-5u; x1'=x2; x3=x4=0;
+top y1=h; bot y2=.45h; y1'=.75h; y3=y4=.1h;
+filldraw stroke z1e..controls z1'e..z2e..pulled_arc.e(2,3); p_wing(4);
+
+% WINGS
+x7=x1-.5stem; x8=x1+.5stem; y7=y1-oo; y8=y1;
+lft_wing(7,2.5u,.02h); rt_wing(8,2.5u,.02h);
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known eth_pE:
+cmchar "The letter pE";
+beginchar(eth_pE,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+penpos5(stem,0); x5=x2-fine; bot y5=00; half_ring(5);
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,5); endchar;
+
+
+iff known eth_pe:
+cmchar "The letter pe";
+beginchar(eth_pe,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(stem,5); penpos1'(stem,0); penpos2'(stem,0);
+penpos3(stem,0);
+x1=w-4.5u; x2=w-5u; x1'=x1-.5u; x2'=x1'+u; x3=x2-.25u;
+top y1=h; bot y2=0; y1'=y2'=.7h; y3=.1h;
+filldraw stroke z1e--z1'e; filldraw stroke z2'e---z3e{down}..{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7); endchar;
+
+
+iff known eth_pO:
+cmchar "The letter pO";
+beginchar(eth_pO,11u#,.5[cap_height#,x_height#],0);
+adjust_fit(2u#,u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,-15); penpos2'(stem,-15);
+x1=w-5u; x1'=x1; x2'=0; x2=x2';
+top y1=h; bot y2=0; y1'=.65h; y2'=.15h;
+filldraw stroke z1e...z1'e..z2'e..z2e{right};
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_pp.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_pp.mf
new file mode 100644
index 00000000000..bd11a329905
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_pp.mf
@@ -0,0 +1,236 @@
+%-------------------------------------------------------------
+% This is ETH_PP.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Pa:
+cmchar "The letter Pa";
+beginchar(eth_Pa,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PU:
+cmchar "The letter PU";
+beginchar(eth_PU,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+x12=x8r; y12=y8; rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PI:
+cmchar "The letter PI";
+beginchar(eth_PI,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,4u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+x12=x9; y12=y9; rt_half_ellipse(12,1.75u);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PA:
+cmchar "The letter PA";
+beginchar(eth_PA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.75u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=.2h; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PE:
+cmchar "The letter PE";
+beginchar(eth_PE,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+x12=x9'; y12=y9; half_ring(12);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_Pe:
+cmchar "The letter Pe";
+beginchar(eth_Pe,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+x12=x2; y12=y2; rt_wing(12,2.5u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PO:
+cmchar "The letter PO";
+beginchar(eth_PO,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=.2h; y9'=y9+.15(y7-y9);
+x7=.45w; x8=.8w; x9=x8+.25u; x9'=x9-.25u;
+filldraw stroke z7e{right}...z8e{down}..z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_PuA:
+cmchar "The letter PuA";
+beginchar(eth_PuA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.75u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=.2h; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+
+penpos10(stem,0); penpos11(stem,0);
+x10=.5w; x11=.5w; bot y10=y3; y11=h+.05h; filldraw stroke z10e---z11e;
+
+x20=x9'l; x21=x9'r; y20=y21=y9; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_pu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_pu.mf
new file mode 100644
index 00000000000..20cb84bd685
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_pu.mf
@@ -0,0 +1,159 @@
+%-------------------------------------------------------------
+% This is ETH_PU.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_pua:
+cmchar "The letter pua";
+beginchar(eth_pua,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,3.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=w-5u; x2=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x2'r; x20'=x20+2.5u; y20=y20'=.4h; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20);
+endchar;
+
+
+iff known eth_puI:
+cmchar "The letter puI";
+beginchar(eth_puI,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=w-5u; x2=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x2'r; x20'=x20+1.5u; y20=y20'=.4h;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.5u; y21=y20-.1h;
+y21'=y20+.2h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,1u,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_puA:
+cmchar "The letter puA";
+beginchar(eth_puA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(5.0u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+x1=x2+.3u=w-5u; x3l=x4l+.5u=0;
+top y1=h; bot y2=.45h; y3=.15h; y4=0;
+filldraw stroke z1e--z2e & pulled_arc.e(2,3)..z4e;
+
+% WINGS
+x7=x1-.5stem; x8=x1+.5stem; y7=y1-oo; y8=y1;
+lft_wing(7,2.5u,.02h); rt_wing(8,2.5u,.02h);
+penlabels(1,2,3,4,5,6);
+
+x20=x4l; x21=x4r; y20=y21=y4;
+lft_wing(20,1.75u,.015h); rt_wing(21,1.5u,.015h);
+endchar;
+
+
+iff known eth_puX:
+cmchar "The variant letter puA";
+beginchar(eth_puX,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7);
+
+z20=z2l; lft_wing(20,1.75u,.015h);
+z21=z2r; rt_wing(21,1.5u,.015h);
+endchar;
+
+
+iff known eth_puE:
+cmchar "The letter puE";
+beginchar(eth_puE,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=w-5u; x2=x1; x1'=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.75h; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+penpos5(stem,0); x5=x2-fine; bot y5=00; half_ring(5);
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,5);
+
+z20=z5l; lft_wing(20,2u,.045h);
+penlabels(20);
+endchar;
+
+
+iff known eth_pue:
+cmchar "The letter pue";
+beginchar(eth_pue,10u#,.5[cap_height#,x_height#],0);
+adjust_fit(1.5u#,1.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=w-5u; x2=x1; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.15h;
+filldraw stroke z1e---z2'e{down}...{right}z2e;
+
+% WINGS
+x6=x1-.5stem; x7=x1+.5stem; y7=y1; y6=y1-oo;
+lft_wing(6,2.5u,.02h); rt_wing(7,2.5u,.02h);
+penlabels(1,2,3,4,6,7);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x2'r; x20'=x20+1.5u; y20=y20'=.4h;
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.25u; y21=y20;
+y21'=y21+.25h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,0,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_punc.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_punc.mf
new file mode 100644
index 00000000000..c298af0cea7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_punc.mf
@@ -0,0 +1,422 @@
+%-------------------------------------------------------------
+% This is ETH_PUNC.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known exclamation_mark:
+cmchar "Exclamation mark";
+beginchar(exclamation_mark,5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+iff known spanish_shriek:
+cmchar "Spanish open exclamation point";
+beginchar(spanish_shriek,5u#+width_adj#,asc_height#-desc_depth#,desc_depth#);
+italcorr h#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); top y4r=h; z3=z4; dot(3,4); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(top_width,0);
+x1=x2=x3; top y2=.25[bot y4l,h-x_height]-1;
+if square_dots: bot y1=-d;
+ filldraw stroke z1e--z2e; % stem
+else: bot z0=(x1,-d-o); y1-.5dot_size=-d-o;
+ filldraw z1l...z0...z1r---z2r--z2l---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+iff known question_mark:
+cmchar "Question mark";
+beginchar(question_mark,8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known spanish_query:
+cmchar "Spanish open question mark";
+beginchar(spanish_query,8.5u#,asc_height#-desc_depth#,desc_depth#);
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); top y8r=h; z7=z8; dot(7,8); % dot
+numeric top_width;
+top_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(top_width,180); pos6(top_width,180);
+x2=x4=x5=x6=x7; lft x3r=hround u; top y6=.25[bot y8l,h-x_height]-1;
+bot y2r=-d-oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],-70);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,bot y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+iff known dollar:
+cmchar "Dollar sign";
+beginchar(dollar,9u#,body_height#,body_height#-asc_height#);
+italcorr fig_height#*slant-.5u#; % same as for digits
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,asc_height); slope:=-asc_height/50u;
+pickup fine.nib; pos2(slab,-90);
+pos0(cap_stem,theta); pos7(slab,-90);
+x2=x0=x7=.5w; top y2l=asc_height+oo; bot y7r=-oo;
+y0=.52asc_height; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .35[slab,cap_stem]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,0); pos8(hair,180);
+ pos10(flare,0); pos9(flare,180);
+ rt x1r=hround(w-u); lft x8r=hround u; y1=.5[y0,y2]; y8=.5[y0,y7];
+ {{less_tense; pos2'(slab,90); z2'=z2; bulb(2',1,10); % upper arc and bulb
+ bulb(7,8,9)}}; % lower arc and bulb
+else: pos1(.6[slab,flare],-100); pos8(flare,-100);
+ rt x1l=hround(w-1.3u); lft x8r=hround .8u;
+ top y1l=vround .92asc_height+oo; bot y8r=vround .1asc_height-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pickup crisp.nib; pos12(bar,0); pos11(bar,0);
+lft x12l=lft x11l=hround(.5w-.5bar); top y12=h; bot y11=-d;
+filldraw stroke z12e--z11e; % vertical crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known slash:
+cmchar "Slash";
+beginchar(slash,9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+
+iff known period:
+cmchar "Period";
+beginchar(period,5u#,dot_size#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_size,0); pos2(dot_size,90);
+lft x1l=hround(.5w-.5dot_size); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+
+iff known zero_hyph:
+cmchar "Invisible hyphen";
+beginchar(zero_hyph,0,0,0);
+endchar;
+
+
+iff known eth_white_space:
+cmchar "Ethiopic white space";
+beginchar(eth_white_space,4u#,0,0);
+endchar;
+
+
+iff known lt_parenthesis:
+cmchar "Left parenthesis";
+beginchar(lt_parenthesis,7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+iff known rt_parenthesis:
+cmchar "Right parenthesis";
+beginchar(rt_parenthesis, 7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+iff known lt_bracket:
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar(lt_bracket,wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known rt_bracket:
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar(rt_bracket,wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+iff known lt_quote:
+cmchar "Opening quote";
+beginchar(lt_quote,5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+
+iff known rt_quote:
+cmchar "Closing quote";
+beginchar(rt_quote,5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+
+iff known lt_quotes:
+cmchar "Opening quotes";
+beginchar(lt_quotes,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+
+iff known rt_quotes:
+cmchar "Closing quotes";
+beginchar(rt_quotes,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+
+iff known less:
+cmchar "French quotation left";
+beginchar(less,7u#,x_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+penpos1(stem,10); penpos2(stem,0); penpos3(stem,-10); penpos4(stem,0);
+lft x2=hround(1u)-eps; x1=x3=w-x2; x4=x2+1u;
+bot y1=0; top y3=h; y2=.5[y1,y3]; y4=y2;
+filldraw stroke z1e..controls z4e..z2e..controls z4e..z3e; % diagonals
+labels(1,2,3); endchar;
+
+
+iff known greater:
+cmchar "French quotation right";
+beginchar(greater,7u#,x_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+penpos1(stem,-10); penpos2(stem,0); penpos3(stem,10); penpos4(stem,0);
+rt x2=hround(w-1u)+eps; x1=x3=w-x2; x4=x2-1u;
+bot y1=0; top y3=h; y2=.5[y1,y3]; y4=y2;
+filldraw stroke z1e..controls z4e..z2e..controls z4e..z3e; % diagonals
+labels(1,2,3); endchar;
+
+
+iff known eth_full_stop:
+cmchar "Full stop";
+beginchar(eth_full_stop,8u#,fig_height#,0);
+adjust_fit(2u#,0);
+pickup fine.nib;
+x0=x1=w-1u; x2=x3=w-3u; y0=.275h; y3=.25h; y1=.425h; y2=.4h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1u; x6=x7=w-3u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+penlabels(0,1,2,3,4,5,6,7);
+x0'=x1'=3u; x2'=x3'=1u; y0'=.275h; y3'=.25h; y1'=.425h; y2'=.4h;
+filldraw z0'--z1'--z2'--z3'--cycle;
+x4'=x5'=3u; x6'=x7'=1u; y4'=.625h; y7'=.6h; y5'=.775h; y6'=.75h;
+filldraw z4'--z5'--z6'--z7'--cycle;
+penlabels(0',1',2',3',4',5',6',7'); endchar;
+
+
+iff known eth_semicolon:
+cmchar"Semicolon (der-ebe-serez)";
+beginchar(eth_semicolon,5u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup fine.nib;
+x0=x1=w-1.5u; x2=x3=w-3.5u; y0=.325h; y3=.3h; y1=.475h; y2=.45h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1.5u; x6=x7=w-3.5u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+top lft z8=(0,.95h); top rt z9=(w,h); draw z8--z9;
+bot lft z8'=(0,.075h); bot rt z9'=(w,.125h); draw z8'--z9';
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_minus:
+cmchar"Bar";
+beginchar(eth_minus,5u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup rule.nib;
+lft z1=(0,.5h); rt z2=(w,.55h); draw z1--z2;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_space:
+cmchar "Old style space (nettib)";
+beginchar(eth_space,4u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x0=x1=w-1u; x2=x3=w-3u; y0=.275h; y3=.25h; y1=.425h; y2=.4h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1u; x6=x7=w-3u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_preface_colon:
+cmchar "Preface Colon";
+beginchar(eth_preface_colon,9u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x0=x1=3u; x2=x3=1u; y0=.275h; y3=.25h; y1=.425h; y2=.4h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=3u; x6=x7=1u; y4=.625h; y7=.6h; y5=.775h; y6=.75h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+lft z11=(w-6u,.5h); rt z12=(w-1u,.55h); draw z11--z12;
+penlabels(0,1,2,3,4,5,6,7,11,12); endchar;
+
+
+iff known eth_three_dot:
+cmchar "Three dot question mark";
+beginchar(eth_three_dot,4u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x0=x1=w-1u; x2=x3=w-3u; y0=.1h; y3=.075h; y1=.25h; y2=.225h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1u; x6=x7=w-3u; y4=.45h; y7=.425h; y5=.6h; y6=.575h;
+filldraw z4--z5--z6--z7--cycle;
+x8=x9=w-1u; x10=x11=w-3u; y8=.8h; y11=.775h; y9=.95h; y10=.925h;
+filldraw z8--z9--z10--z11--cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_seven_dot:
+cmchar "Seven dot paragraph terminator";
+beginchar(eth_seven_dot,12u#,fig_height#,0);
+adjust_fit(0,0);
+pickup fine.nib;
+x20=x21=3u; x22=x23=1u; y20=.275h; y23=.25h; y21=.425h; y22=.4h;
+filldraw z20--z21--z22--z23--cycle;
+x24=x25=3u; x26=x27=1u; y24=.625h; y27=.6h; y25=.775h; y26=.75h;
+filldraw z24--z25--z26--z27--cycle;
+
+x0=x1=7u; x2=x3=5u; y0=.1h; y3=.075h; y1=.25h; y2=.225h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=7u; x6=x7=5u; y4=.45h; y7=.425h; y5=.6h; y6=.575h;
+filldraw z4--z5--z6--z7--cycle;
+x8=x9=7u; x10=x11=5u; y8=.8h; y11=.775h; y9=.95h; y10=.925h;
+filldraw z8--z9--z10--z11--cycle;
+
+x30=x31=11u; x32=x33=9u; y30=.275h; y33=.25h; y31=.425h; y32=.4h;
+filldraw z30--z31--z32--z33--cycle;
+x34=x35=11u; x36=x37=9u; y34=.625h; y37=.6h; y35=.775h; y36=.75h;
+filldraw z34--z35--z36--z37--cycle;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,20,21,22,23,24,25,26,27,
+ 30,31,32,33,34,35,36,37);
+endchar;
+
+
+iff known eth_colon:
+cmchar "Colon (ie-kete-lale)";
+beginchar(eth_colon,7u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup fine.nib;
+x0=x1=w-2.5u; x2=x3=w-4.5u; y0=.2h; y3=.175h; y1=.35h; y2=.325h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-2.5u; x6=x7=w-4.5u; y4=.7h; y7=.675h; y5=.85h; y6=.825h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+lft z8=(0,.48h); rt z9=(w,.54h); draw z8--z9;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_comma:
+cmchar"Comma (netela-serez)";
+beginchar(eth_comma,5u#,fig_height#,0);
+adjust_fit(1u#,1u#);
+pickup fine.nib;
+x0=x1=w-1.5u; x2=x3=w-3.5u; y0=.175h; y3=.15h; y1=.325h; y2=.3h;
+filldraw z0--z1--z2--z3--cycle;
+x4=x5=w-1.5u; x6=x7=w-3.5u; y4=.525h; y7=.5h; y5=.675h; y6=.65h;
+filldraw z4--z5--z6--z7--cycle;
+pickup rule.nib;
+top lft z8=(0,.85h); top rt z9=(w,.9h); draw z8--z9;
+penlabels(0,1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_q.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_q.mf
new file mode 100644
index 00000000000..b345102470a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_q.mf
@@ -0,0 +1,190 @@
+%-------------------------------------------------------------
+% This is ETH_Q.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_qa:
+cmchar "The letter qa";
+beginchar(eth_qa,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qU:
+cmchar "The letter qU";
+beginchar(eth_qU,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+x3=x1; y3=.2h; rt_half_ellipse(3,2u);
+
+%RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qI:
+cmchar "The letter qI";
+beginchar(eth_qI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+x3=x1; y3=.04h; rt_half_ellipse(3,1.75u);
+
+%RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qA:
+cmchar "The letter qA";
+beginchar(eth_qA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); pos2(vair,-90); penpos1'(stem,0); penpos2'(stem,0);
+x1=.5w; x1'=x1+.5u; x2=x1-4u; x2'=x1;
+top y1=h; bot y2=.15h; y1'=.9h; y2'=.4h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e..pulled_arc.e(2',2);
+z3=z2l; t_wing(3);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x1r; x5=x4+3u; x5'=x5+.25u; x6=x1; x7=x1l; x8=x7-3u; x9=x1; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qE:
+cmchar "The letter qE";
+beginchar(eth_qE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+x3=x2; bot y3=0; half_ring(3);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qe:
+cmchar "The letter qe";
+beginchar(eth_qe,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+x3=x1-.5u; y3=y1+.05h; t_thumb(3);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.74u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_qO:
+cmchar "The letter qO";
+beginchar(eth_qO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos3(vair,115); pos4(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.25u; x3=x0+.5u; x4r=x1l+2.25u; x5=x1l;
+bot y0=0; y0'=.125h; y1=.6h; y2=.75h; y3=.95h; y4=.8h; y5=.65h-o;
+filldraw stroke pulled_arc.e(5,4)..z3e...z2e{down}..z1e{down}---
+z0'e{down}..{right}z0e;
+
+% RIGHT AND LEFT RING
+pos10(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos11(1.2stem,0); penpos11'(1.2stem,0);
+penpos8(1.2stem,180);
+x10=x0l; x11=x10+3u; x11'=x11+.25u; x6=x0; x7=x0r; x8=x7-3u; x9=x0; x8'=x8;
+y10=.575h; y9=.525h; y7=y9-.35h; y6=y10-.3h;
+y11=y6+.4(y10-y6); y11'=y6+.5(y10-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,11)
+..pulled_super_arc.e(11',10)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(0,0',1,2,3,4,5,6,7,8,8',9,10,10',11,11'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_q_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_q_a.mf
new file mode 100644
index 00000000000..fea8c8bdc85
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_q_a.mf
@@ -0,0 +1,213 @@
+%-------------------------------------------------------------
+% This is ETH_Q_A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'qa:
+cmchar "The letter 'qa";
+beginchar(eth_'qa,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1-.25u=x2=.5w; x2'=x2-.5u;
+top y1=.9h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qU:
+cmchar "The letter 'qU";
+beginchar(eth_'qU,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1-.25u=x2=.5w; x2'=x2-.5u;
+top y1=.9h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x3=x1; y3=.2h; rt_half_ellipse(3,2u);
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qI:
+cmchar "The letter 'qI";
+beginchar(eth_'qI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1-.25u=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=.9h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x3=x1; y3=.04h; rt_half_ellipse(3,1.75u);
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qA:
+cmchar "The letter 'qA";
+beginchar(eth_'qA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); pos2(vair,-90); penpos2'(stem,0);
+x1=.5w+.25u; x2=x1-4.25u; x2'=x1-0.5u;
+top y1=.9h; bot y2=.15h; y2'=.4h;
+filldraw stroke z1e{down}---z2'e..pulled_arc.e(2',2);
+z3=z2l; t_wing(3);
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x1-.25; x5=x4+3.75u; x5'=x5+.25u; x6=x1-.25u;
+x7=x1-.25u; x8=x7-3.75u; x9=x1-.25u; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qE:
+cmchar "The letter 'qE";
+beginchar(eth_'qE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1-.25u=x2=.5w; x2'=x2-.5u;
+top y1=.9h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x3=x2; bot y3=0; half_ring(3);
+
+% TOP DIAGONALS
+top_diagonals(1);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qe:
+cmchar "The letter 'qe";
+beginchar(eth_'qe,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(stem,5); penpos2'(stem,0);
+x1=x2+.25u=.5w; x2'=x2-.5u;
+top y1=.8h; bot y2=0; y2'=.1h;
+filldraw stroke z1e--z2'e{down}..{right}z2e;
+
+% TOP STROKE AND DIAGONALS
+penpos3(stem,0); penpos3'(stem,5); x3r=x1l; x3'r=x3r+.25u;
+y3=y1; y3'=y3+.15h; filldraw stroke z3e--z3'e;
+top_diagonals(3');
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_'qO:
+cmchar "The letter 'qO";
+beginchar(eth_'qO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos3(vair,115); pos4(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.25u; x3=x0+.5u; x4r=x1l+2.25u; x5=x1l;
+bot y0=0; y0'=.125h; y1=.6h; y2=.75h; y3=.95h; y4=.8h; y5=.65h-o;
+filldraw stroke pulled_arc.e(5,4)..z3e...z2e{down}..z1e{down}---
+z0'e{down}..{right}z0e;
+
+% TOP DIAGONALS
+penpos3'(2vair,0); z3'=z3; top_diagonals(3');
+
+% RIGHT AND LEFT RING
+pos10(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos11(1.2stem,0); penpos11'(1.2stem,0);
+penpos8(1.2stem,180);
+x10=x0l; x11=x10+3u; x11'=x11+.25u; x6=x0; x7=x0r; x8=x7-3u; x9=x0; x8'=x8;
+y10=.575h; y9=.525h; y7=y9-.35h; y6=y10-.3h;
+y11=y6+.4(y10-y6); y11'=y6+.5(y10-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,11)
+..pulled_super_arc.e(11',10)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(0,0',1,2,3,4,5,6,7,8,8',9,10,10',11,11'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_qq.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_qq.mf
new file mode 100644
index 00000000000..67385c1676b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_qq.mf
@@ -0,0 +1,223 @@
+%-------------------------------------------------------------
+% This is ETH_QQ.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Qa:
+cmchar "The letter Qa";
+beginchar(eth_Qa,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QU:
+cmchar "The letter QU";
+beginchar(eth_QU,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x0=x1; y0=.2h; rt_half_ellipse(0,2u);
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+%RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QI:
+cmchar "The letter QI";
+beginchar(eth_QI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x0=x1; y0=.04h; rt_half_ellipse(0,1.75u);
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+%RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QA:
+cmchar "The letter QA";
+beginchar(eth_QA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); pos2(vair,-90); penpos2'(stem,0);
+x1=.5w; x2=x1-4u; x2'=x1;
+top y1=h; bot y2=.15h; y2'=.4h;
+filldraw stroke z1e---z2'e..pulled_arc.e(2',2);
+z0=z2l; t_wing(0);
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x1r; x5=x4+3u; x5'=x5+.25u; x6=x1; x7=x1l; x8=x7-3u; x9=x1; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QE:
+cmchar "The letter QE";
+beginchar(eth_QE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+x0=x2; bot y0=0; half_ring(0);
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_Qe:
+cmchar "The letter Qe";
+beginchar(eth_Qe,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(1u#,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=.85h; bot y2=0; bot y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+penpos3(stem,0); penpos3'(stem,5); x3r=x1l; x3'r=x3r+.25u;
+y3=y1; y3'=y3+.15h; filldraw stroke z3e--z3'e;
+
+% BAR
+x10=x3'l; x11=x3'r; y10=y11=y3';
+upside_down_left_wing(10); rt_half_ellipse(11,1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_QO:
+cmchar "The letter QO";
+beginchar(eth_QO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos3(vair,115); pos4(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.25u; x3=x0+.5u; x4r=x1l+2.25u; x5=x1l;
+bot y0=0; y0'=.125h; y1=.6h; y2=.75h; y3=.95h; y4=.8h; y5=.65h-o;
+filldraw stroke pulled_arc.e(5,4)..z3e...z2e{down}..z1e{down}---
+z0'e{down}..{right}z0e;
+
+% TOP
+x17=x3r+4.25u; x18=x3r-1.25u; y17=y3+.175h; y18=y3+.175h;
+right_wing_no_bar(17) lft_half_ellipse(18,0);
+pos19(vair,90); pos19'(vair,90); x19=x3r-1u; x19'=x19-1u; y19=y3-0.05h;
+y19'=y19+.1h;
+draw z19--z19';
+
+% RIGHT AND LEFT RING
+pos10(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos11(1.2stem,0); penpos11'(1.2stem,0);
+penpos8(1.2stem,180);
+x10=x0l; x11=x10+3u; x11'=x11+.25u; x6=x0; x7=x0r; x8=x7-3u; x9=x0; x8'=x8;
+y10=.575h; y9=.525h; y7=y9-.35h; y6=y10-.3h;
+y11=y6+.4(y10-y6); y11'=y6+.5(y10-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,11)
+..pulled_super_arc.e(11',10)(superpull) shifted (.5u,-.125h) rotated 8;
+penlabels(0,0',1,2,3,4,5,6,7,8,8',9,10,10',11,11'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_qqu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_qqu.mf
new file mode 100644
index 00000000000..4e778c17f71
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_qqu.mf
@@ -0,0 +1,186 @@
+%-------------------------------------------------------------
+% This is ETH_QQU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Qua:
+cmchar "The letter Qua";
+beginchar(eth_Qua,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos10(vair,90); pos10'(vair,90);
+x10=x2; x10'=x6+2.5u; y10=y10'=.3h; draw z10--z10';
+x11=x10'; y11=y10'-.245h; large_ring(11,7);
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_Que:
+cmchar "The letter Que";
+beginchar(eth_Que,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,5.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos19(vair,90); pos19'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x19=.x5r; x19'=x19+1.5u; y19=y19'=y5+.5(y5'-y5);
+filldraw stroke z19--z19';
+x10l=x10'l=x19'r; x11l=x10l+.25u; y10=y19;
+y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,0,-.01h);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,9',10,10'); endchar;
+
+
+iff known eth_QuI:
+cmchar "The letter QuI";
+beginchar(eth_QuI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,6.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos19(vair,90); pos19'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x19=.x5r; x19'=x19+1.5u; y19=y19'=y5+.5(y5'-y5);
+filldraw stroke z19--z19';
+x10l=x10'l=x19'r; x11l=x10l+.5u; y10=y19-.1h;
+y10'=y19+.2h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,1u,-.01h);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,9',10,10'); endchar;
+
+
+iff known eth_QuA:
+cmchar "The letter QuA";
+beginchar(eth_QuA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.45h; y6=y4-.4h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+penpos11(stem,0); penpos12(stem,0); penpos13(stem,0); penpos13'(stem,0);
+x10=x2'l; y10=y2; lft_wing(10,.5u,.015h);
+x11l=x13l=x2r; x12l=x11l+.5u; x13'l=x13l-.2u;
+y11=y2; y13=-.1h; y12=y13+.8(y11-y13); y13'=y13+.2(y11-y13);
+filldraw stroke z11e{right}..{down}z12e---z13'e{down}..{right}z13e;
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,10); endchar;
+
+
+iff known eth_QuE:
+cmchar "The letter QuE";
+beginchar(eth_QuE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(stem,5); penpos2(1.2stem,5); penpos2'(stem,0);
+x1=x2=.5w; x2'=x2-.5u;
+top y1=h; bot y2=0; y2'=.1h;
+filldraw stroke z1e---z2'e{down}..{right}z2e;
+
+% BAR
+penpos3(stem,0); penpos3'(stem,0); x3=x1l; x3'=x1r; y3=y3'=y1;
+lft_half_ellipse(3,1.75u); rt_half_ellipse(3',1.75u);
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.45h; y6=y4-.4h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+x10=x2'l; y10=y2; lft_wing(10,2u,.045h);
+x11=x2; y11=y2; half_ring(11);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_qu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_qu.mf
new file mode 100644
index 00000000000..ec1b068e6bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_qu.mf
@@ -0,0 +1,166 @@
+%-------------------------------------------------------------
+% This is ETH_QU.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_qua:
+cmchar "The letter qua";
+beginchar(eth_qua,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,2.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos10(vair,90); pos10'(vair,90);
+x10=x2; x10'=x6+2.5u; y10=y10'=.3h; draw z10--z10';
+x11=x10'; y11=y10'-.245h; large_ring(11,7);
+penlabels(1,1',2,2',5,5',6,7,8,8',8); endchar;
+
+
+iff known eth_que:
+cmchar "The letter que";
+beginchar(eth_que,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,5.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos19(vair,90); pos19'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x19=.x5r; x19'=x19+1.5u; y19=y19'=y5+.5(y5'-y5);
+filldraw stroke z19--z19';
+x10l=x10'l=x19'r; x11l=x10l+.25u; y10=y19;
+y10'=y10+.25h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,0,-.01h);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,9',10,10'); endchar;
+
+
+iff known eth_quI:
+cmchar "The letter quI";
+beginchar(eth_quI,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,6.5u#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=0; y1'=.9h; y2'=.1h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.75h; y9=.7h; y7=y9-.4h; y6=y4-.35h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+pos19(vair,90); pos19'(vair,90); penpos10(stem,0);
+penpos10'(stem,0); penpos11(stem,0);
+x19=.x5r; x19'=x19+1.5u; y19=y19'=y5+.5(y5'-y5);
+filldraw stroke z19--z19';
+x10l=x10'l=x19'r; x11l=x10l+.5u; y10=y19-.1h;
+y10'=y19+.2h; y11=y10+.75(y10'-y10);
+filldraw stroke z10e---z11e{up}..{left}z10'e;
+x12=x10r; y12=y10; rt_wing(12,1u,-.01h);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,9',10,10'); endchar;
+
+
+iff known eth_quA:
+cmchar "The letter quA";
+beginchar(eth_quA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=.15h; y1'=.9h; y2'=.25h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.45h; y6=y4-.4h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+penpos11(stem,0); penpos12(stem,0); penpos13(stem,0); penpos13'(stem,0);
+x10=x2'l; y10=y2; lft_wing(10,.5u,.015h);
+x11l=x13l=x2r; x12l=x11l+.5u; x13'l=x13l-.2u;
+y11=y2; y13=-.1h; y12=y13+.8(y11-y13); y13'=y13+.2(y11-y13);
+filldraw stroke z11e{right}..{down}z12e---z13'e{down}..{right}z13e;
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,10); endchar;
+
+
+iff known eth_quE:
+cmchar "The letter quE";
+beginchar(eth_quE,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+% STEM
+penpos1(1.2stem,5); penpos2(1.2stem,5); penpos1'(stem,0); penpos2'(stem,0);
+x1=x2=.5w; x1'=x2+.5u; x2'=x2-.5u;
+top y1=h; bot y2=.05h; y1'=.9h; y2'=.15h;
+filldraw stroke z1e{right}..{down}z1'e---z2'e{down}..{right}z2e;
+
+% RIGHT AND LEFT RING
+pos4(vair,90); pos6(vair,270); pos7(vair,270); pos9(vair,90);
+penpos8'(1.2stem,180); penpos5(1.2stem,0); penpos5'(1.2stem,0);
+penpos8(1.2stem,180);
+x4=x2r; x5=x4+3u; x5'=x5+.25u; x6=x2; x7=x2l; x8=x7-3u; x9=x2; x8'=x8;
+y4=.8h; y9=.75h; y7=y9-.45h; y6=y4-.4h;
+y5=y6+.4(y4-y6); y5'=y6+.5(y4-y6); y8'=y7+.3(y9-y7); y8=y7+.5(y9-y7);
+
+filldraw stroke pulled_arc.e(9,8)
+..pulled_super_arc.e(8',7)(superpull) shifted (.75u,0) rotated 10;
+filldraw stroke pulled_arc.e(6,5)
+..pulled_super_arc.e(5',4)(superpull) shifted (.5u,-.125h) rotated 8;
+
+x10=x2'l; y10=y2; lft_wing(10,2u,.045h);
+x11=x2; y11=y2; half_ring(11);
+penlabels(1,1',2,2',5,5',6,7,8,8',8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_r.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_r.mf
new file mode 100644
index 00000000000..c20d51e8d29
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_r.mf
@@ -0,0 +1,131 @@
+%-------------------------------------------------------------
+% This is ETH_R.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ra:
+cmchar "The letter ra";
+beginchar(eth_ra,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,187); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,360);
+x0l=w-2u; x1l=x0l-.25u; x2r=u; x3r=w-6u; x4=w-4u;
+top y0=.95h; y1=.8h; y2=.2h; bot y3=0; y4=.075h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e{right}..z4e;
+x11=x4; y11=y4; rt_half_ellipse(11,0);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_rU:
+cmchar "The letter rU";
+beginchar(eth_rU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2u#,-u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); penpos5(stem,0); penpos6(stem,0);
+penpos5'(stem,0);
+lft x0=lft x1=hround(w-6u); x2l=u; x3l=w-6.5u; x4=x3;
+x5=x6=x4-.75u; x5'=x5-.5u;
+top y0=.95h; y1=.85h; y2=.45h; y3=.35h; y5=.35h; y4=.35h;
+bot y6=0; y5'=y6+.075h;
+
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e{right};
+rt_wing(4,2u,.015h);
+filldraw stroke z5e---z5'e...z6e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_rI:
+cmchar "The letter rI";
+beginchar(eth_rI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,270); penpos5(stem,0); penpos6(stem,10);
+x0l=x1l=w-1.5u; x2r=u; x3=w-5.5u; x4=w-4.5u; x5r=w-u; x6r=x5r-.5u;
+top y0=.95h; y1=.85h; y2=.2h-o; bot y3=.025h; y4=.065h; y5=.2h; y6=.3h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e..z5e{up}...z6e;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_rA:
+cmchar "The letter rA";
+beginchar(eth_rA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,270);
+x0l=w-3.75u; x1l=x0l; x2r=u; x3=w-7u; x4=w-6u;
+top y0=.95h; y1=.85h; y2=.2h-o; bot y3=00; y4=.05h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e;
+
+penpos5(1.3stem,195); pos6(vair,90);
+x5=x4; x6=x5+1.5u; y5=y4; y6=y5+.25h; filldraw stroke pulled_arc.e(6,5);
+x7=x6; y7=y6; rt_wing(7,2u,.015h);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_rE:
+cmchar "The letter rE";
+beginchar(eth_rE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+
+pickup fine.nib; penpos0(stem,187); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,360);
+x0l=w-2u; x1l=x0l-.25u; x2r=u; x3r=w-6u; x4=w-4u;
+top y0=.95h; y1=.8h; y2=.2h; bot y3=0; y4=.075h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e{right}..z4e;
+x5=x4; y5=y4; large_ring(5,10);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+iff known eth_re:
+cmchar "The letter re";
+beginchar(eth_re,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,0);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(stem,180);
+penpos2(stem,180); pos2'(stem,200); pos3(vair,270);
+x0=w-3.5u; x0'=x0-1.5u; x2r=u; x1r=1.75u; x2'r=x2r+.25h; x3=w-4u;
+top y0=.95h; top y0'=y0; y1=.75h; y2=.175h; y2'=.05h-oo; y3=.075h+o;
+filldraw stroke z0e...z0'e{left}...z1e..z2e{down}...z2'e...z3e;
+x7=x3; y7=y3; rt_half_ellipse(7,0);
+x8=x0l; y8=y0; r_wing(8);
+penlabels(0,1,2,2',3); endchar;
+
+
+iff known eth_rO:
+cmchar "The letter rO";
+beginchar(eth_rO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,2u#);
+
+pickup fine.nib; pos0(vair,90); pos0'(vair,90); pos1(stem,180);
+penpos2(stem,180); pos2'(stem,200); pos3(vair,270);
+
+x0=w-3.5u; x0'=x0-1.5u; x2r=u; x1r=1.75u; x2'r=x2r+.25h; x3=w-4u;
+top y0=.95h; top y0'=y0; y1=.75h; y2=.175h; y2'=.05h-oo; y3=.075h+o;
+filldraw stroke z0e...z0'e{left}...z1e..z2e{down}...z2'e...z3e;
+x7=x3; y7=y3; rt_half_ellipse(7,0);
+x8=x0; y8=y0-.225h; large_ring(8,5);
+penlabels(0,1,2,2',3); endchar;
+
+
+iff known eth_ruA:
+cmchar "The letter ruA";
+beginchar(eth_ruA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,u#);
+
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+pos3(vair,270); pos4(vair,270);
+x0l=w-3.75u; x1l=x0l; x2r=u; x3=w-7u; x4=w-6u;
+top y0=.95h; y1=.85h; y2=.2h-o; bot y3=00; y4=.05h;
+filldraw stroke z0e{down}...z1e...z2e{down}...z3e---z4e;
+
+penpos5(1.3stem,195); pos6(vair,90);
+x5=x4; x6=x5+1.5u; y5=y4; y6=y5+.25h; filldraw stroke pulled_arc.e(6,5);
+x7=x6; y7=y6; rt_wing(7,2u,.015h);
+
+x14=x0r+.25u; x15=x0l; y14=y15=y0-oo;
+upper_left_wing(14); upper_right_wing(15);
+penlabels(0,1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_s.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_s.mf
new file mode 100644
index 00000000000..1a4244590a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_s.mf
@@ -0,0 +1,201 @@
+%-------------------------------------------------------------
+% This is ETH_S.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_sa:
+cmchar "The letter sa";
+beginchar(eth_sa,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sU:
+cmchar "The letter sU";
+beginchar(eth_sU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+x6=x3r; y6=.45h; rt_wing(6,2u,0);
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sI:
+cmchar "The letter sI";
+beginchar(eth_sI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+z6=z4r; rt_half_ellipse(6,1.25u);
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sA:
+cmchar "The letter sA";
+beginchar(eth_sA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sE:
+cmchar "The letter sE";
+beginchar(eth_sE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+x6=x4; bot y6=0; half_ring(6);
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_se:
+cmchar "The letter se";
+beginchar(eth_se,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+penpos9(1.3stem,5); penpos10(1.3stem,5);
+x9=.5w-.5u; x10=x9-1.5u; bot y9=y5l; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_sO:
+cmchar "The letter sO";
+beginchar(eth_sO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,0)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; y4=.25h; y5=.8h; y4'=.35h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_suA:
+cmchar "The letter suA";
+beginchar(eth_suA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,4u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.625h; bot y4=0; y5=.8h; y4'=.1h;
+x4'r=x3r-o=w-1.5u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.5h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e...z8e{right};
+
+penpos9(stem,0); penpos10(1.2stem,5);
+x9=x10=.5w; y9=y5; top y10=h;
+filldraw stroke z9e---z10e;
+x20=x4l; x21=x4r; y20=y21=y4; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_s_a.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_s_a.mf
new file mode 100644
index 00000000000..0f97cd19ae5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_s_a.mf
@@ -0,0 +1,220 @@
+%-------------------------------------------------------------
+% This is ETH_S_A.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_'sa:
+cmchar "The letter 'sa";
+beginchar(eth_'sa,14u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,-.75u#);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,185);
+penpos4(vair,270); penpos4'(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve)+.5u; x3r=x4'l=x0r; x1r=x0r+stem;
+x2r=x0r-2stem; x8r=w-x0r-1u; x5=.5[x8r,x0r]; x6r=hround(x5r+.25stem);
+x7r=x4l=hround(x5r-.5stem); x9r=x8r-.25stem; x8'r=x8r+.25stem;
+x10r=.35[x5r,x8r]; x11r=x4r-u;
+
+top y0= top y5=top y8=.8h; y3=.2h; y4'=y3-oo; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+.1h; y9=y4+.15h; y8'=.5[y8,y9]; y10=y9-.1h;
+y11=y10+.1h;
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e;
+filldraw stroke z4'e---z4e;
+filldraw stroke z8e...super_arc.e(8',10)...z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'sU:
+cmchar "The letter 'sU";
+beginchar(eth_'sU,14u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,2.5u#);
+
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,185);
+penpos4(vair,270); penpos4'(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve)+.5u; x3r=x4'l=x0r; x1r=x0r+stem;
+x2r=x0r-2stem; x8r=w-x0r-.5stem; x5=.5[x8r,x0r]; x6r=hround(x5r+.25stem);
+x7r=x4l=hround(x5r-.5stem); x12=x9r=x8r-.25stem; x8'r=x8r+.25stem;
+x10r=.35[x5r,x8r]; x11r=x4r-u;
+
+top y0= top y5=top y8=.8h; y3=.2h; y4'=y3-oo; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+.1h; y9=y4+.15h; y8'=.5[y8,y9]; y10=y9-.1h;
+y11=y10+.1h; y12=y9;
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e;
+filldraw stroke z4'e---z4e;
+filldraw stroke z8e...super_arc.e(8',10)...z11e;
+rt_wing(12,2u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'sI:
+cmchar "The letter 'sI";
+beginchar(eth_'sI,14u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,.5u#);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos9'(stem,0); penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=hround(.5w-.5u); x6r=hround(x5r+.25stem); x7r=x4l=hround(x5r-.5stem);
+x8r=w-x0r-2u; x8'r=x8r+stem; x9r=.5[x5r,x8r]+u; x9'r=x9r-stem;
+x10r=.75[x5r,x8r]; x11r=x4r-.75u;
+
+top y0=top y5=top y8=h; y3=.6h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=00; y8'=y6; y9'=.25h;
+y10=y4; y11=y4+.15h;
+
+filldraw stroke pulled_arc.e(11,10);
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e..controls z8'e and z9'e..z9e;
+rt_half_ellipse(9,2u);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'sA:
+cmchar "The letter 'sA";
+beginchar(eth_'sA,14u#,.55[cap_height#,x_height#],paren_depth#);
+adjust_fit(serif_fit#+stem_shift#,-1.5u#);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos9'(stem,0); penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=.5w-.5u; x6r=hround(x5r+.25stem); x7r=x4l=hround(x5r-.5stem);
+x8r=w-x0r-2u; x8'r=x8r+stem; x9r=.5[x5r,x8r]+u; x9'r=x9r-stem;
+x10r=.75[x5r,x8r]; x11r=x4r-.75u;
+
+top y0=top y5=top y8=h; y3=.6h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=00; y8'=y6; y9'=.25h;
+y10=y4; y11=y4+.15h;
+
+filldraw stroke pulled_arc.e(11,10);
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e..controls z8'e and z9'e..z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'sE:
+cmchar "The letter 'sE";
+beginchar(eth_'sE,14u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos9'(stem,0); penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=hround(.5w-.5u); x6r=hround(x5r+.25stem); x7r=x4l=hround(x5r-.5stem);
+x8r=w-x0r-2u; x8'r=x8r+stem; x9r=.5[x5r,x8r]+u; x9'r=x9r-stem;
+x10r=.75[x5r,x8r]; x11r=x4r-.75u; x12=x9;
+
+top y0=top y5=top y8=h; y3=.6h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=00; y8'=y6; y9'=.25h;
+y10=y4; y11=y4+.15h; y12=y9;
+
+filldraw stroke pulled_arc.e(11,10);
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e..controls z8'e and z9'e..z9e;
+half_ring(12);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_'se:
+cmchar "The letter 'se";
+beginchar(eth_'se,16u#,.5[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos1(stem,0); penpos0'(stem,0); penpos1'(stem,0);
+penpos2(stem,0); penpos2'(stem,0); penpos3(stem,0); penpos3'(vair,270);
+penpos4(stem,180); penpos5(stem,0); penpos5'(stem,0); penpos6(stem,0);
+pos6'(vair,270); pos7(stem,180);
+
+x0l=x0'l=hround max(.5u,1.25u-.5curve); x1l=x0l+4u; x1'l=x1l+.5stem;
+x5l=x6l=w-x0l-2u; x2l=x3l=.5[x1l,x5l]; x2'l=x2l+.25stem;
+x3'=.5[x1l,x2l]; x4=x1-.45u;
+x5'l=x5l+.25stem; x7l=x3l+1.1stem; x6'l=.5[x5l,x7l];
+
+bot y0=00; y0'=.2h; top y1=top y2=top y5=h; y1'=.75h; y3=y4=y1'-.05h;
+y2'=y5'=.5[y2,y3]; y3'=y3-.1h; y6=y1'; y6'=y6-.1h; y7=y1';
+
+filldraw stroke z0e..controls z0'e and z1'e..z1e;
+filldraw stroke z2e..z2'e{z3e-z2e}..z3e;
+filldraw stroke pulled_arc.e(4,3')...z3e;
+%%filldraw stroke z5e...super_arc.e(5',6'); %...z7e;
+filldraw stroke z5e..z5'e..z6'e..z7e;
+penlabels(0,0',1,1',2,3,4,5,5',6,6',7); endchar;
+
+
+iff known eth_'sO:
+cmchar "The letter 'sO";
+beginchar(eth_'sO,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,180); penpos1(stem,180); penpos2(stem,180); penpos3(stem,180);
+penpos4(vair,270);
+x0r=hround max(1.5u,1.45u-.5curve); x1r=x0r+hair; x2r=x0r-stem;
+x3r=x0r+hair; x4r=w-8u;
+top y0=h; y3=.6h; y2=.25(y0-y3)+y3; y1=.75(y0-y3)+y3; y4=.y3;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+
+penpos0'(stem,0); penpos1'(stem,0); penpos5(stem,0); penpos6(stem,0);
+x0'=w-11.5u; x1'=x0'-.5stem; x6=hround .5w; x5=x6+stem;
+y5=.8h; top y6=h; bot y0'=00; y1'=.15h;
+filldraw stroke z0'e..controls z1'e and z5e..z6e;
+
+penpos7(stem,0); penpos8(stem,0); penpos9(stem,0);
+penpos10(vair,270); penpos11(stem,180);
+x7r=x9r=w-x0r; x8r=x7r+.5u; x10=.5[x6,x7r]-fine; x11r=.5[x0',x6]+u;
+top y7=h; y9=.75h; y8=.5[y7,y9]; y10=.65h-o; y11=.7h;
+filldraw stroke pulled_arc.e(11,10)..pulled_arc.e(10,8)..z8e...z7e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_'suA:
+cmchar "The letter 'suA";
+beginchar(eth_'suA,14u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,1.0u#);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos3(stem,180); penpos4(vair,270);
+penpos5(stem,0); penpos6(stem,0); penpos7(stem,0); penpos8'(stem,0);
+penpos8(stem,0); penpos9(stem,0); penpos10(vair,270);
+penpos9'(stem,0); penpos11(stem,180);
+x0r=hround max(.7u,1.45u-.5curve); x3r=x0r+hair; x1r=x0r+hair; x2r=x0r-stem;
+x5r=.5w-.5u; x6r=hround(x5r+.25stem); x7r=x4l=hround(x5r-.5stem);
+x8r=w-x0r-2u; x8'r=x8r+stem; x9r=.5[x5r,x8r]+u; x9'r=x9r-stem;
+x10r=.75[x5r,x8r]; x11r=x4r-.75u;
+
+top y0=top y5=top y8=h; y3=.6h; y1=.75(y0-y3)+y3; y6=.75(y0-y3)+y3;
+y2=.25(y0-y3)+y3; y4=y7=y3+o; bot y9=00; y8'=y6; y9'=.25h;
+y10=y4; y11=y4+.15h;
+
+filldraw stroke pulled_arc.e(11,10);
+filldraw stroke z5e..z6e{z7e-z5e}...z7e;
+filldraw stroke z0e..controls z1e and z2e..z3e{right}...z4e;
+filldraw stroke z8e..controls z8'e and z9'e..z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+
+x20=x9l; x21=x9r; y20=y21=y9;
+lft_wing(20,2u,.015h); rt_wing(21,1.75u,.015h);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_s_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_s_c.mf
new file mode 100644
index 00000000000..9b5d785b9e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_s_c.mf
@@ -0,0 +1,219 @@
+%-------------------------------------------------------------
+% This is ETH_S_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^sa:
+cmchar "The letter ^sa";
+beginchar(eth_^sa,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sU:
+cmchar "The letter ^sU";
+beginchar(eth_^sU,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+x13=x4'r; y13=.4h; rt_wing(13,2u,.015h);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sI:
+cmchar "The letter ^sI";
+beginchar(eth_^sI,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,4u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}
+...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+z13=z4r; rt_half_ellipse(13,1.5u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sA:
+cmchar "The letter ^sA";
+beginchar(eth_^sA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.45h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...
+ z8'e{down}...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sE:
+cmchar "The letter ^sE";
+beginchar(eth_^sE,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}
+...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+x13=x4; y13=y4; half_ring(13);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^se:
+cmchar "The letter ^se";
+beginchar(eth_^se,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(2.25u#,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}
+...{right}z8e;
+
+penpos9(stem,5); penpos10(stem,5);
+x9=x10+1.25u=x5-.25u; bot y9=y5l; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^sO:
+cmchar "The letter ^sO";
+beginchar(eth_^sO,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; y4=.25h; y5=.75h; y4'=.35h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r; x8r=x8'r+.5u;
+y7=.45h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...z7e{down}...z8'e{down}
+...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5);
+x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x11=x10r; x12=x10l; y11=y12=y10;
+rt_half_ellipse(11,1.25u); lft_half_ellipse(12,1.25u);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
+
+
+iff known eth_^suA:
+cmchar "The letter ^suA";
+beginchar(eth_^suA,10u#,.5[cap_height#,x_height#],paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(1.2stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.6h; bot y4=0; y5=.75h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(1.2stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.45h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}...{up}z4'e{up}..z3e{up}..z5e...
+ z7e{down}...z8'e{down}...{right}z8e;
+
+penpos9(stem,0); penpos10(stem,5); x9=x10=.5w; y9=y5; top y10=.975h;
+filldraw stroke z9e--z10e;
+x14=x10l+.25u; x15=x10r; y14=y15=y10-oo; upper_left_wing(14); upper_right_wing(15);
+x20=x4l; x21=x4r; y20=y21=y4;lft_wing(20,2u,0); rt_wing(21,1.75u,0);
+penlabels(3,4,4',5,7,8,8',9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_ss.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_ss.mf
new file mode 100644
index 00000000000..6f81d115daa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_ss.mf
@@ -0,0 +1,209 @@
+%-------------------------------------------------------------
+% This is ETH_SS.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Sa:
+cmchar "The letter Sa";
+beginchar(eth_Sa,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SU:
+cmchar "The letter SU";
+beginchar(eth_SU,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x12=x8r; y12=y8; rt_wing(12,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SI:
+cmchar "The letter SI";
+beginchar(eth_SI,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,4u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x12=x9; y12=y9; rt_half_ellipse(12,1.75u);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SA:
+cmchar "The letter SA";
+beginchar(eth_SA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.75u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=.2h; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SE:
+cmchar "The letter SE";
+beginchar(eth_SE,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x12=x9'; y12=y9; half_ring(12);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_Se:
+cmchar "The letter Se";
+beginchar(eth_Se,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x12=x2; y12=y2; rt_wing(12,2.5u,0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SO:
+cmchar "The letter SO";
+beginchar(eth_SO,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.5u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=00; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=.2h; y9'=y9+.15(y7-y9);
+x7=.45w; x8=.8w; x9=x8+.25u; x9'=x9-.25u;
+filldraw stroke z7e{right}...z8e{down}..z9e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_SuA:
+cmchar "The letter SuA";
+beginchar(eth_SuA,10u#,.55[cap_height#,x_height#],0);
+adjust_fit(serif_fit#+stem_shift#,3.5u#);
+
+pickup fine.nib;
+penpos0(stem,0); penpos0'(stem,0); penpos1(stem,0); penpos2(stem,0);
+penpos3(vair,90);
+x0=w-7.75u; x0'=x0-.5u; x1=.5w; x2=w-2.5u; x3=.5w;
+bot y0=.2h; y1=.5h; bot y0'=y0+.1(y1-y0); y2=.7h; top y3=.9h;
+filldraw stroke z0e{left}..z0'e{up}...z1e...z2e...z3e{left};
+
+penpos4(vair,-90);
+penpos5(stem,0); penpos6(vair,90);
+x4=.5w; x5=w-x2; x6=.5w; top y4=.9h; y5=.7h; y6=.5h;
+filldraw stroke z4e{left}...z5e...z6e{right};
+
+penpos7(vair,90); penpos8(stem,0); penpos9(stem,0);
+penpos9'(stem,0);
+y7=.47h-o; y8=.37h; bot y9=00; y9'=y9+.25(y7-y9);
+x7=.45w; x8=.78w; x9=w-1.25u; x9'=x9-.5u;
+filldraw stroke z7e{right}...z8e{down}..z9'e{down}..{right}z9e;
+x20=x9'l; x21=x9'r; y20=y21=y9; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_t.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_t.mf
new file mode 100644
index 00000000000..969525e6e46
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_t.mf
@@ -0,0 +1,140 @@
+%-------------------------------------------------------------
+% This is ETH_T.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ta:
+cmchar "The letter ta";
+beginchar(eth_ta,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+penlabels(0,0',1,1',2,2'); endchar;
+
+
+iff known eth_tU:
+cmchar "The letter tU";
+beginchar(eth_tU,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+x3=x1'r; y3=.25h; rt_half_ellipse(3,1.5u);
+penlabels(0,0',1,1',2,2',3); endchar;
+
+
+iff known eth_tI:
+cmchar "The letter tI";
+beginchar(eth_tI,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+x3=x1; y3=.04h; rt_half_ellipse(3,1.5u);
+penlabels(0,0',1,1',2,2',3); endchar;
+
+
+iff known eth_tA:
+cmchar "The letter tA";
+beginchar(eth_tA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.25u#,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(stem,0);
+pos2(vair,-90);
+x0=.5w; x0'=x0+.5u; x1=x0+.25u; x2=x0-4u;
+top y0=h; y0'=y0-.1h; y1=.4h; y2=.15h;
+
+filldraw stroke z0e{right}...{down}z0'e---z1e..pulled_arc.e(1,2);
+x3=x0'r; x3'=lft x0'l; y3=.65h; y3'=y3-oo;
+rt_wing(3,2u,.015h); lft_wing(3',2u,.015h);
+z4=z2l; t_wing(4);
+penlabels(0,0',1,2,3,3',4); endchar;
+
+
+iff known eth_tE:
+cmchar "The letter tE";
+beginchar(eth_tE,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+x3=x1; bot y3=0; half_ring(3);
+penlabels(0,0',1,1',2,2',3); endchar;
+
+
+iff known eth_te:
+cmchar "The letter te";
+beginchar(eth_te,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,0); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=.95h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.015h); lft_wing(2',2u,.015h);
+
+penpos3(vair,90); x3=x1'l-.25u; y3=y0+o; draw z0---z3;
+x4=x3l+.35u; y4=.95h; left_up_thumb(4);
+penlabels(0,0',1,1',2,2',3,4); endchar;
+
+
+iff known eth_tO:
+cmchar "The letter tO";
+beginchar(eth_tO,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,u#);
+
+pickup fine.nib; penpos0(1.2stem,180); penpos0'(stem,180); penpos1(stem,180);
+pos2(stem,180); pos3(vair,115); pos4(stem,0); pos5(vair,270);
+x0=.5w; x0'=x0-.5u; x1=x0; x2=x0-1.25u; x3=x0+.5u; x4r=x1l+2.25u; x5=x1l;
+y0=0; y0'=.125h; y1=.6h; y2=.75h; y3=.95h; y4=.8h; y5=.65h-o;
+
+filldraw stroke pulled_arc.e(5,4)..z3e...z2e{down}..z1e{down}..z0'e{down}..z0e;
+x6=x1l; x6'=lft x1r; y6=.5h; y6'=y6-oo;
+rt_wing(6,2u,.015h); lft_wing(6',2u,.015h);
+penlabels(0,0',1,2,3,4,5); endchar;
+
+
+iff known eth_tuA:
+cmchar "The letter tuA";
+beginchar(eth_tuA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(0,.5u#);
+
+pickup fine.nib; penpos0(1.2stem,5); penpos0'(stem,0); penpos1(1.2stem,5);
+penpos1'(stem,0);
+x0=.5w; x0'=x0+.5u; x1'=x0-.5u; x1=x1'+.5u;
+top y0=h; y0'=y0-.1h; y1'=.1h; bot y1=0;
+
+filldraw stroke z0e{right}...{down}z0'e---z1'e{down}...{right}z1e;
+x2=.5[x0'r,x0r]+oo; x2'=.5[x0'l,x1'l]; y2=.65h; y2'=y2-oo;
+rt_wing(2,2u,.02h); lft_wing(2',2u,.02h);
+x20=x1l; x21=x1r; y20=y21=y1; lft_wing(20,2u,.02h);
+rt_wing(21,1.25u,.02h);
+penlabels(0,0',1,1',2,2'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_tt.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_tt.mf
new file mode 100644
index 00000000000..97becfdcbce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_tt.mf
@@ -0,0 +1,171 @@
+%-------------------------------------------------------------
+% This is ETH_TT.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_Ta:
+cmchar "The letter Ta";
+beginchar(eth_Ta,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TU:
+cmchar "The letter TU";
+beginchar(eth_TU,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x8r; y11=.4h; rt_half_ellipse(11,1.5u);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TI:
+cmchar "The letter TI";
+beginchar(eth_TI,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x10; bot y11=0; rt_half_ellipse(11,1.5u);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TA:
+cmchar "The letter TA";
+beginchar(eth_TA,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w+.25u; x2'=x2-.75u; x3=x2'+.5u; x4r=x2l; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x9r=x8r-u=w-x5r-u; x10r=x9r+.5u;
+y2=.9h; y3=.4h; y2'=y3+.075h;
+y4r=y2-o; y6=.4h; y5=y6+.15h;
+y7=y2; y8=y2-.2h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e---z8e{up}..{left}z7e;
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TE:
+cmchar "The letter TE";
+beginchar(eth_TE,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.7h; y2'=.075h; bot y3=0;
+y4r=y2-o; y5=.075h; y5'=.35h; bot y6=0;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=0;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+x11=x10; bot y11=0; half_ring(11);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_Te:
+cmchar "The letter Te";
+beginchar(eth_Te,13u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+if .5w <> good.x .5w :change_width; fi pickup fine.nib;
+
+penpos0(stem,0); penpos1(stem,0); penpos2(stem,0); penpos3(stem,0);
+penpos3'(stem,-20); penpos2'(stem,0); penpos5(stem,180); penpos4(stem,180);
+penpos6(vair,90); penpos7(stem,0); penpos8(stem,0);
+x0=x2'=x3=hround(.5w); x1=hround(x3-fine); x2l=x3;
+x6=hround(.5w); x5r=hround u; x4r=x5r; x8r=x7r=w-x5r;
+top y0=.9h; bot y3=0; y6=y0; y7=y6-.3h;
+y1=y2=y5=y7; y2'=.25(y2-y3)+y3; y4=y8=y1-.05h;
+
+filldraw stroke z2e..controls z2'e..z3e; filldraw stroke z0e{down}...z1e;
+filldraw stroke z8e...pulled_super_arc.e(7,6)(superpull);
+filldraw stroke z4e...pulled_super_arc.e(5,6)(superpull);
+penlabels(0,1,2,3,4,5,5',6,7,8); endchar;
+
+
+iff known eth_TO:
+cmchar "The letter TO";
+beginchar(eth_TO,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,0);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,145);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+x2=.5w; x2'=x2-.25u; x3=x2'+.5u; x4r=x2l; x5'r=2u; x5r=1.25u; x6r=x5r+.5u;
+x7=x2r-oo; x9r=x8r-o=w-x5r-.25u; x10r=x9r+.5u;
+y2=.8h; y3=.25h; y2'=y3+.075h;
+y4r=y2-o; top y6=0; y5=y6+.15h; y5'=y4r-.5h;
+y7=y2; y8=y2-.2h; bot y10=.25h; y9=y10+.075h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke pulled_arc.e(4,5)..z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e..z8e{up}..{left}z7e;
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
+
+
+iff known eth_TuA:
+cmchar "The letter TuA";
+beginchar(eth_TuA,14u#,.5[cap_height#,x_height#],0);
+adjust_fit(0,3.5u#);
+
+pickup fine.nib; penpos2(stem,5); penpos2'(stem,0); penpos3(stem,5);
+pos4(vair,105); penpos5(stem,180); penpos6(stem,185); penpos5'(stem,180);
+pos7(vair,90); penpos8(stem,0); penpos9(stem,0); penpos10(stem,5);
+
+x2=x2'+0.25u=.5w; x3=x2+.5u; x4r=x2l; x5'r=1.5u; x5r=1.25u; x6r=x5r+.25u;
+x7=x2r-oo; x8r=x9r-o=w-x5r-.15u; x10r=x9r+.5u;
+
+y2=.65h; y2'=.2h; bot y3=.15h; y4r=y2-o; y5=.2h; y5'=.35h; bot y6=.15h;
+top y7r=y2-o; y8=y2-.15h; y9=.075h; bot y10=-0.05h;
+
+filldraw stroke z2e--z2'e{down}..{right}z3e;
+filldraw stroke z4e{left}..z5'e...z5e{down}..{right}z6e;
+filldraw stroke z10e{left}..{up}z9e{up}...z8e...z7e;
+
+x20=x10l; x21=x10r; y20=y21=y10; lft_wing(20,1.5u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(2,2',3,4,5,5',6,7,8,9,10); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_v.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_v.mf
new file mode 100644
index 00000000000..4bbb19afb5a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_v.mf
@@ -0,0 +1,210 @@
+%-----------------------------------------------------------------------------
+% This is ETHIOV.MF in text format as of February, 1993 by Abass B. Alamnehe.
+%-----------------------------------------------------------------------------
+
+iff known eth_va:
+cmchar "The letter va";
+beginchar(eth_va,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vU:
+cmchar "The letter vU";
+beginchar(eth_vU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x4'r; y6=.5h; rt_half_ellipse(6,1.5u);
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vI:
+cmchar "The letter vI";
+beginchar(eth_vI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,3.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+z6=z4r; rt_half_ellipse(6,1.25u);
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vA:
+cmchar "The letter vA";
+beginchar(eth_vA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vE:
+cmchar "The letter vE";
+beginchar(eth_vE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x4; bot y6=0; half_ring(6);
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_ve:
+cmchar "The letter ve";
+beginchar(eth_ve,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.75u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=y4';
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+x6=x7r; y6=.6h; lft_wing(6,2u,.015h);
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vO:
+cmchar "The letter vO";
+beginchar(eth_vO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; y4=.25h; y5=.95h; y4'=.35h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; bot y8=0; y8'=.1h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+iff known eth_vuA:
+cmchar "The letter vuA";
+beginchar(eth_vuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,-.5u#)
+
+% THE RIGHT STEM AND ARC
+pickup fine.nib;
+penpos3(stem,0); penpos4(stem,7); pos5(vair,105); penpos4'(stem,0);
+y3=.75h; bot y4=0; y5=.95h; y4'=.1h;
+x4'r=x3r-o=w-1.75u; x4r=x4'r+.5u; x5=.5w;
+
+% THE LEFT STEM AND ARC
+penpos7(stem,180); penpos8(stem,187); penpos8'(stem,180);
+x8'r=x7r+oo=w-x3r-.25u; x8r=x8'r+.5u;
+y7=.6h; y8=.25h; y8'=.35h;
+filldraw stroke z4e{left}..z4'e{up}..z3e{up}..z5e...z7e{down}
+...z8'e...z8e{right};
+
+% BAR
+penpos1(stem,0); x1=x5; y1=y5+0.15h;
+penpos1'(stem,0); x1'=x1; y1'+0.015h=y1;
+lft_half_ellipse(1,2u); rt_half_ellipse(1',2u);
+x20=x4l; x21=x4r; y20=y21=y4; lft_wing(20,2u,.015h);
+rt_wing(21,1.75u,.015h);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_w.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_w.mf
new file mode 100644
index 00000000000..7a2618a7e02
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_w.mf
@@ -0,0 +1,174 @@
+%-------------------------------------------------------------
+% This is ETH_W.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_wa:
+cmchar "The letter wa";
+beginchar(eth_wa,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,0);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,-5); penpos2(vair,90);
+penpos2'(vair,90); penpos3(stem,180); penpos3'(stem,180);
+penpos4(stem,180); penpos5(vair,270);
+penpos6(vair,270); penpos7(vair,270); penpos8(vair,270); penpos9(stem,0);
+penpos10(stem,0); penpos11(vair,90); penpos12(vair,90);
+
+x0l=w-6.3u; x1l=w-7.6u; x2=x0l; x2'l=x0l-u; x3'r=1.25u; x3r=.35u;
+x4r=.35u; x5=w-8u; x6=x1l; x7=x1r; x8=w-4.5u; x9l=w-3.5u; x10l=w-2.65u;
+x11=w-3.5u; x12=x0r;
+
+y0=.8h; y1=.175h; y2r=y0-o; y2'r=y0-oo; y3'=.65h; y3=.4h;
+y4=.275h; y5r=y6r=y7r=y1; y8r=y1; y9=.25h; y10=.675h; y11=.775h; y12=.775h;
+
+filldraw stroke z0e{down}--z1e;
+filldraw stroke z2e..z2'e..tension 1.1..z3'e..z3e..z4e...z5e..z6e;
+filldraw stroke z7e..z8e..z9e..tension 1.3..z10e..z11e..z12e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11,12,13); endchar;
+
+
+iff known eth_wU:
+cmchar "The letter wU";
+beginchar(eth_wU,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,2u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,-5); penpos2(vair,90);
+penpos2'(vair,90); penpos3(stem,180); penpos3'(stem,180);
+penpos4(stem,180); penpos5(vair,270);
+penpos6(vair,270); penpos7(vair,270); penpos8(vair,270); penpos9(stem,0);
+penpos10(stem,0); penpos11(vair,90); penpos12(vair,90);
+
+x0l=w-6.3u; x1l=w-7.6u; x2=x0l; x2'=x0l-u; x3'r=1.25u; x3r=.35u;
+x4r=.35u; x5=w-8u; x6=x1; x7=x1r; x8=w-4.5u; x9l=w-3.5u; x10l=w-2.65u;
+x11=w-3.5u; x12=x0r;
+
+y0=.8h; y1=.175h; y2r=y0-o; y2'r=y0-oo; y3'=.65h; y3=.4h;
+y4=.275h; y5r=y6r=y7r=y1; y8r=y1; y9=.25h; y10=.675h; y11=.775h; y12=.775h;
+
+filldraw stroke z0e--z1e;
+filldraw stroke z2e..z2'e...z3'e...z3e..z4e...z5e..z6e;
+filldraw stroke z7e..z8e..z9e..tension 1.3..z10e..z11e..z12e;
+x13=x9; y13=y1; rt_half_ellipse(13,1.5u);
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11,12,13); endchar;
+
+
+iff known eth_wI:
+cmchar "The letter wI";
+beginchar(eth_wI,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,0);
+penpos2(vair,90); penpos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+penpos5'(vair,270); penpos5(vair,270); penpos6(vair,270); penpos7(vair,270);
+penpos8(stem,0); penpos8'(stem,0); penpos9(vair,90); penpos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9=y0+o; y10=y0;
+
+filldraw stroke z0e--z1e...z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+x11=x1'r; y11=y1'+o; rt_half_ellipse(11,1.5u);
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_wA:
+cmchar "The letter wA";
+beginchar(eth_wA,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+penpos2(vair,90); penpos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+penpos5'(vair,270); penpos5(vair,270); penpos6(vair,270); penpos7(vair,270);
+penpos8(stem,0); penpos8'(stem,0); penpos9(vair,90); penpos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9=y0+o; y10=y0;
+
+filldraw stroke z0e---z1e...{right}z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11); endchar;
+
+
+iff known eth_wE:
+cmchar "The letter wE";
+beginchar(eth_wE,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+penpos2(vair,90); penpos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+penpos5'(vair,270); penpos5(vair,270); penpos6(vair,270); penpos7(vair,270);
+penpos8(stem,0); penpos8'(stem,0); penpos9(vair,90); penpos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8u; lft x3r=1.1u;
+x4r=1.1u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.5u; x8'l=w-3.5u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6r=y5; y7r=y6; y8=.65h; y8'=.825h; y9=y0+o; y10=y0;
+
+filldraw stroke z0e---z1e...{right}z1'e;
+filldraw stroke z2e..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+
+z11=z1'; half_ring(11);
+penlabels(0,1,1',2,2',3,4,5,5',6,7,8,8',9,10,11); endchar;
+
+
+iff known eth_we:
+cmchar "The letter we";
+beginchar(eth_we,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(u#,4u#);
+
+pickup fine.nib; penpos0(stem,0); penpos1(stem,-5); penpos2(vair,90);
+penpos2'(vair,90); penpos3(stem,180); penpos3'(stem,180);
+penpos4(stem,180); penpos5(vair,270);
+penpos6(vair,270); penpos7(vair,270); penpos8(vair,270); penpos9(stem,0);
+penpos10(stem,0); penpos11(vair,90); penpos12(vair,90);
+
+x0l=w-6.3u; x1l=w-7.6u; x2=x0l; x2'l=x0l-u; x3'r=1.25u; x3r=.35u;
+x4r=.35u; x5=w-8u; x6=x1l; x7=x1r; x8=w-4.5u; x9l=w-3.5u; x10l=w-2.65u;
+x11=w-3.5u; x12=x0r;
+
+y0=.8h; y1=.175h; y2r=y0-o; y2'r=y0-oo; y3'=.65h; y3=.4h;
+y4=.275h; y5r=y6r=y7r=y1; y8r=y1; y9=.25h; y10=.675h; y11=.775h; y12=.775h;
+
+filldraw stroke z0e{down}--z1e;
+filldraw stroke z2e..z2'e..tension 1.1..z3'e..z3e..z4e...z5e..z6e;
+filldraw stroke z7e..z8e..z9e..tension 1.3..z10e..z11e..z12e;
+x13=x10r; y13=.5[y9,y11]; rt_half_ellipse(13,1.5u);
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11,12); endchar;
+
+
+iff known eth_wO:
+cmchar "The letter wO";
+beginchar(eth_wO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.5u#,1.5u#);
+
+pickup fine.nib;
+penpos0(vair,90); penpos0'(vair,90); penpos1(stem,180);
+penpos2(vair,270); penpos3(vair,270);
+x0=.5w; x0'=x0-fine; x1=x0-3.75u; x2=.5[x1,x0]; x3r=x0l;
+y0=.9h; y0'l=y0-o; y2=.5h; y1=.3(y0-y2)+y2; y3=y2-oo;
+filldraw stroke z0e{left}...pulled_arc.e(0',1)...pulled_arc.e(1,2)...{right}z3e;
+
+penpos4'(stem,0); penpos4(stem,0); penpos5(stem,0); penpos5'(stem,0);
+bot y4=00; y4'=y4+.15h; y5=.5h-o; y5'=.9h;
+x5=x0; x5'=x5+fine; x4r=x4'r=u;
+filldraw stroke z4e..controls z4'e..z5e---z5'e;
+
+penpos6(vair,270); penpos7(vair,270); penpos8(stem,360);
+penpos9(vair,90); penpos10(vair,90);
+x6=w-x3; lft x8=w-x1; x7=w-x2; lft x9=w-x0'+1.25u; x10=w-x0;
+y6=y3; y7=y3; y8=.5(y0-y3)+y2; y9=y10=y0+oo;
+filldraw stroke z6e...pulled_arc.e(7,8)...pulled_arc.e(8,9)..z10e;
+penlabels(1,2,3,4,5,5',6,7,8,9,10,11,12,13); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_wu.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_wu.mf
new file mode 100644
index 00000000000..cbf52068696
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_wu.mf
@@ -0,0 +1,173 @@
+%-------------------------------------------------------------
+% This is ETH_WU.MF as of Apr, 1996 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_wua:
+cmchar "The letter wua";
+beginchar(eth_wua,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,1.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+
+filldraw stroke z0e---z1e...z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x5; x20'=x20+2.5u; y20=y20'=.3h; draw z20--z20';
+x21=x20'; y21=y20'-.245h; large_ring(21,7);
+penlabels(20,20');
+endchar;
+
+
+iff known eth_wue:
+cmchar "The letter wue";
+beginchar(eth_wue,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,4.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+
+filldraw stroke z0e---z1e...z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x8r; x20'=x20+1.5u; y20=y20'=y8+.5(y8'-y8);
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.25u; y21=y20;
+y21'=y21+.25h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,0,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_wuI:
+cmchar "The letter wuI";
+beginchar(eth_wuI,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,5.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8.25u; lft x3r=.75u;
+x4r=.75u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.075h; bot y1'=0; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+
+filldraw stroke z0e---z1e...z1'e;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11);
+
+pos20(vair,90); pos20'(vair,90);
+x20=x8r; x20'=x20+1.5u; y20=y20'=y8+.5(y8'-y8);
+filldraw stroke z20--z20';
+
+penpos21(stem,0); penpos21'(stem,0); penpos22(stem,0);
+x21l=x21'l=x20'r; x22l=x21l+.5u; y21=y20-.1h;
+y21'=y20+.2h; y22=y21+.75(y21'-y21);
+filldraw stroke z21e---z22e{up}..{left}z21'e;
+
+x23=x21r; y23=y21;
+rt_wing(23,1u,-.01h);
+penlabels(20,20',21,21',22,23);
+endchar;
+
+
+iff known eth_wuA:
+cmchar "The letter wuA";
+beginchar(eth_wuA,12u#,.5[cap_height#,x_height#],0);
+adjust_fit(.5u#,-.5u#);
+
+% STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u;
+y0=.9h; y1=.25h; bot y1'=.15h;
+filldraw stroke z0e---z1e...z1'e;
+penlabels(1,1');
+
+% RIGHT AND LEFT RING
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+x2=x0; x2'=w-8.25u; lft x3r=.75u; x4r=.75u; x5'=w-8.25u;
+x5=w-7u; x6=w-5.5u; x7=w-4.5u; x8l=w-3.25u; x8'l=w-3.25u;
+x9=w-4u; x10=x0r;
+bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h; y5'=.475h; y5=y5'+o;
+y6=y5; y7l=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+filldraw stroke z2e{left}..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+penlabels(2,2',3,3',4,5,6,7,8,9,10,11);
+
+x20=x1l; y20=y1'l;
+lft_wing(20,.5u,.015h);
+penlabels(20);
+
+penpos21(stem,0); penpos22(stem,0); penpos23(stem,0); penpos23'(stem,0);
+x21l=x23l=x1'r; x22l=x21l+.5u; x23'l=x23l-.2u;
+y21=y1'; y23=-.1h; y22=y23+.8(y21-y23); y23'=y23+.2(y21-y23);
+filldraw stroke z21e{right}..{down}z22e---z23'e{down}..{right}z23e;
+penlabels(21,22,23,23');
+endchar;
+
+
+iff known eth_wuE:
+cmchar "The letter wuE";
+beginchar(eth_wuE,12u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(1.0u#,-.5u#);
+
+pickup fine.nib; penpos0(stem,5); penpos1(stem,0); penpos1'(stem,5);
+pos2(vair,90); pos2'(vair,90); penpos3(stem,180); penpos4(stem,180);
+pos5'(vair,270); pos5(vair,270); pos6(vair,270); pos7(vair,270);
+penpos8(stem,0); pos8'(stem,0); pos9(vair,90); pos10(vair,90);
+
+lft x0l=w-7u; x1l=w-8u; x1'l=x1l+.25u; x2=x0; x2'=w-8u; lft x3r=1.1u;
+x4r=1.1u; x5'=w-8.25u; x5=w-7u; x6=w-5.5u;
+x7=w-4.5u; x8l=w-3.5u; x8'l=w-3.5u; x9=w-4u; x10=x0r;
+
+y0=.9h; y1=.15h; bot y1'=.05h; bot y2r=bot y2'r=y0-o; y3=.725h; y4=.55h;
+y5'=.475h; y5=y5'+o; y6r=y5; y7r=y6; y8=.65h; y8'=.825h; y9l=y0; y10r=y0;
+
+filldraw stroke z0e---z1e...z1'e;
+filldraw stroke z2e..z2'e...z3e...z4e..z5'e..z5e;
+filldraw stroke z6e...z7e..z8e..z8'e..z9e..z10e;
+
+x11=x1'; y11=y1'; half_ring(11);
+penlabels(0,1,1',2,2',3,4,5,5',6,7,8,8',9,10,11);
+
+x20=x1l; y20=y1'l; lft_wing(20,2u,.045h);
+penlabels(20);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_y.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_y.mf
new file mode 100644
index 00000000000..31148b1c2d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_y.mf
@@ -0,0 +1,179 @@
+%-------------------------------------------------------------
+% This is ETH_Y.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_ya:
+cmchar "The letter ya";
+beginchar(eth_ya,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,0);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+penlabels(0,0',1,2,3,4,5); endchar;
+
+
+iff known eth_yU:
+cmchar "The letter yU";
+beginchar(eth_yU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,1u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u;y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+x6=x1l; y6=y1; rt_wing(6,2u,.015h);
+penlabels(0,0',1,2,2',3,4,5); endchar;
+
+
+iff known eth_yI:
+cmchar "The letter yI";
+beginchar(eth_yI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,3.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,45); pos7(vair,45);
+penpos8(stem,0); penpos9(stem,0); penpos10(stem,0);
+x6=x1l; x7=x6+1.75u; y6=y7=.275h; filldraw stroke z6e--z7e;
+x8l=x9l-.25u=x10l-.25u=x7; y8=.4h; y9=y8-.075h; y10=.225h;
+filldraw stroke z8e{right}..{down}z9e---z10e;
+x11=x10; y11=y10; rt_wing(11,2u,0);
+penlabels(0,0',1,2,2',3,4,5); endchar;
+
+
+iff known eth_yA:
+cmchar "The letter yA";
+beginchar(eth_yA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(.5u#,0);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,190); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3u;
+y1=.175h; y2=.65h; y2'=.5h; top y3=h;
+filldraw stroke z3e{left}...{down}z2e..z2'e---z1e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-1.75u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+x8=x7+.25u; y8=y7-.025h; lft_half_ellipse(8,0);
+penlabels(0,0',1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_yE:
+cmchar "The letter yE";
+beginchar(eth_yE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+pos6(vair,45); pos7(vair,45);
+penpos8(stem,0); penpos9(stem,0); penpos10(stem,0);
+x6=x1; x7=x6+2.75u; y6=y7+o=.4h; draw z6--z7;
+x8=x7l-.25u; y8=y7; yfive_ring(8,-2);
+penlabels(0,0',1,2,2',3,4,56,7); endchar;
+
+
+iff known eth_ye:
+cmchar "The letter ye";
+beginchar(eth_ye,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos1(stem,190); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105);
+pos1'(vair,270); penpos0(stem,0); penpos0'(stem,0);
+x1=w-4.5u; x2r=w-7u; x2'r=x2r+.2u; x3=w-3u;
+y1=.225h; y2=.65h; y2'=.5h; top y3=h;
+x1'=w-1.5u; x0l=w-.5u; x0'l=x0l-.5u;
+y1'=.2h; y0=y1'+.175h; y0'=y0+.075h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...
+ z1e...z1'e{right}..{up}z0e...z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+pos6(vair,90); pos7(vair,90);
+x6=x1r; x7=x6-.75u; y6=y1; y7=y6-.05h; filldraw stroke z6e--z7e;
+z8=z7l; t_wing(8);
+penlabels(0,0',1,2,3,4,5,6,7); endchar;
+
+
+iff known eth_yO:
+cmchar "The letter yO";
+beginchar(eth_yO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-2u#,3.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=00; y0=.1h; y1=.35h; y2=.65h; y2'=.5h; top y3=.95h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+x6=x4; y6=y4-.2h; rt_wing(6,2u,.015h);
+penlabels(0,0',1,2,3,4,5); endchar;
+
+
+iff known eth_yuA:
+cmchar "The letter yuA";
+beginchar(eth_yuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-.5u#,2.5u#);
+
+% THE RIGHT TOP ARC
+pickup fine.nib; penpos0(stem,180); penpos1(stem,180); penpos2(stem,180);
+penpos2'(stem,180); pos3(vair,105); penpos0'(stem,180);
+x0=.5w; x0'=.5w+.5u; x1=x0; x2r=w-7u; x2'r=x2r+.25u; x3=w-3u;
+bot y0'=0; y0=.1h; y1=.3h; y2=.6h; y2'=.45h; top y3=.9h;
+filldraw stroke z3e{left}...{down}z2e..z2'e...z1e---z0e{down}..{right}z0'e;
+
+penpos4(curve,0); pos5(vair,270);
+x5=x2l; x4r=w-.5u; y5=.55h; y4=.85h;
+filldraw stroke z5e{right}..{up}z4e{up}..{left}z3e;
+
+penpos10(stem,0); penpos10'(stem,0);
+x10=.5[x2r,x4r]; x10'=x10+.25u; y10=y3+o; y10'=y10+.175h;
+filldraw stroke z10e--z10'e;
+
+x11=x10'r; x12=x10'l; y11=y12=y10';
+rt_half_ellipse(11,1.5u); lft_half_ellipse(12,1.5u);
+penlabels(0,0',1,2,3,4,5,10,10'); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_z.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_z.mf
new file mode 100644
index 00000000000..1343a19e33d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_z.mf
@@ -0,0 +1,209 @@
+%-------------------------------------------------------------
+% This is ETH_Z.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_za:
+cmchar "The letter za";
+beginchar(eth_za,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,0)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zU:
+cmchar "The letter zU";
+beginchar(eth_zU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,3u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% RIGHT WING
+x6=x2'r; y6=.45h; rt_wing(6,1.75u,.025h);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zI:
+cmchar "The letter zI";
+beginchar(eth_zI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,3u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+%RIGHT BOTTOM WING
+z6=z2r; rt_half_ellipse(6,1u);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zA:
+cmchar "The letter zA";
+beginchar(eth_zA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,0)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+y0=.25h; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zE:
+cmchar "The letter zE";
+beginchar(eth_zE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,2.75u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% RIGHT BOTTOM RING
+x6=x2; bot y6=0; half_ring(6);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_ze:
+cmchar "The letter ze";
+beginchar(eth_ze,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,0)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0r,x1r]; x5=.5[x3l,x2l]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,1u,.025h);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zO:
+cmchar "The letter zO";
+beginchar(eth_zO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,-.25u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; y2=.25h; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_zuA:
+cmchar "The letter zuA";
+beginchar(eth_zuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(-1u#,3.5u#)
+
+% LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); penpos1(stem,5); penpos0'(stem,0); penpos1'(stem,0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-.5u;
+y0=.25h; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.85(y1-y0)+y0;
+filldraw stroke z1e{right}..{down}z1'e--z0'e{down}..{right}z0e;
+
+% RIGHT STEM
+penpos3(stem,5); penpos3'(stem,0); penpos2(stem,5); penpos2'(stem,0);
+x2'r=w-x0'l; x2r=x2'r+.5u; x3'r=x2'r+.8u; x3r=x3'r-.5u;
+top y3=.925h; bot y2=00; y3'=.85(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke z3e{right}..{down}z3'e--z2'e{down}..{right}z2e;
+
+% BAR
+pickup fine.nib; pos4(vair,90); pos5(vair,90);
+x4=.5[x0,x1]; x5=.5[x3,x2]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+x20=x2l; x21=x2r; y20=y21=y2; lft_wing(20,2u,.015h);
+rt_wing(21,1.5u,.015h);
+penlabels(0,1,2,3,4,5); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/eth_z_c.mf b/Master/texmf-dist/fonts/source/public/ethiop/eth_z_c.mf
new file mode 100644
index 00000000000..462ea0bec2f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/eth_z_c.mf
@@ -0,0 +1,235 @@
+%-------------------------------------------------------------
+% This is ETH_Z_C.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+iff known eth_^za:
+cmchar "The letter ^za";
+beginchar(eth_^za,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zU:
+cmchar "The letter ^zU";
+beginchar(eth_^zU,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% WINGS
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+
+%RIGHT WING
+x8=x2'l; y8=.45h; rt_wing(8,1.75u,.025h);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zI:
+cmchar "The letter ^zI";
+beginchar(eth_^zI,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+
+%RIGHT BOTTOM WING
+z8=z2l; rt_half_ellipse(8,1.5u);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zA:
+cmchar "The letter ^zA";
+beginchar(eth_^zA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+y0=.25h; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zE:
+cmchar "The letter ^zE";
+beginchar(eth_^zE,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+
+%RIGHT BOTTOM RING
+x8=x2; bot y8=0; half_ring(8);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^ze:
+cmchar "The letter ^ze";
+beginchar(eth_^ze,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(3.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.8h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.85h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+penpos9(stem,0); penpos10(stem,0); x9=x10=x1'l; y9=y1; y10=y9+.15h;
+filldraw stroke z9e--z10e;
+x14=x9l+.25u; x15=x9r; y14=y15=y10;
+upper_left_wing(14); upper_right_wing(15);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zO:
+cmchar "The letter ^zO";
+beginchar(eth_^zO,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+bot y0=00; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; y2=.25h; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o); x7=x3; y7=y3; rt_wing(7,.75u,o);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+iff known eth_^zuA:
+cmchar "The letter ^zuA";
+beginchar(eth_^zuA,10u#,.5[cap_height#,x_height#],paren_depth#);
+adjust_fit(2.5u#,4u#)
+
+%LEFT STEM
+pickup fine.nib;
+penpos0(stem,5); pos1(vair,105); penpos0'(stem,0); penpos1'(stem,-0);
+x0'l=1.75u; x0l=x0'l+.5u; x1'l=x0'l+.8u; x1l=x1'l-1u;
+y0=.25h; y1=.85h; y0'=.15(y1-y0)+y0; y1'=.8(y1-y0)+y0;
+filldraw stroke pulled_arc.e(1,1')---z0'e{down}..{right}z0e;
+
+%RIGHT STEM
+pos3(vair,90); penpos3'(stem,180); penpos2(stem,185); penpos2'(stem,180);
+x2'l=w-x0'l; x2l=x2'l+.5u; x3'l=x2'l+.8u; x3l=x3'l+1u;
+top y3=.9h; bot y2=00; y3'=.8(y3-y2)+y2; y2'=.15(y3-y2)+y2;
+filldraw stroke pulled_arc.e(3,3')---z2'e{down}..{right}z2e;
+
+% BAR
+pos4(vair,90); pos5(vair,105);
+x4=.5[x0r,x1r]; x5=.5[x3r,x2r]; y4=.55h; y5=.6h; filldraw stroke z4e--z5e;
+
+% LEFT WING
+x6=x1; y6=y1; lft_wing(6,.75u,o);
+x7=x3; y7=y3; rt_wing(7,.75u,o);
+x20=x2r; x21=x2l; y20=y21=y2; lft_wing(20,1.75u,.015h);
+rt_wing(21,1.25u,.015h);
+penlabels(0,1,2,3,4,5); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha10.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha10.mf
new file mode 100644
index 00000000000..6858510b9c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha10.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHA10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOA"; font_size 10pt#;
+
+%%% u#:=20/36pt#; % unit width
+u#:=21/36pt#; % unit width (suposedly for ethiopian typewriter)
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+%%% x_height#:=155/36pt#; % height of lowercase without ascenders
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+%%% stem#:=25/36pt#; % lowercase stem breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha6.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha6.mf
new file mode 100644
index 00000000000..87e99a21438
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha6.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHA6.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOA"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+%% x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha7.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha7.mf
new file mode 100644
index 00000000000..db87a67a0bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha7.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHA7.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOA"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+%% x_height#:=108.5/36pt#; % height of lowercase without ascenders
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha8.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha8.mf
new file mode 100644
index 00000000000..a125dc30d7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha8.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHA8.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOA"; font_size 8pt#;
+
+%%% u#:=17/36pt#; % unit width
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=180/36pt#; % height of lowercase without ascenders
+%%% x_height#:=164/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+%%% stem#:=22/36pt#; % lowercase stem breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/20; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha_cod.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha_cod.mf
new file mode 100644
index 00000000000..64cbe758f98
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha_cod.mf
@@ -0,0 +1,260 @@
+%-------------------------------------------------------------
+% This is ETHA_COD.MF
+%-------------------------------------------------------------
+
+eth_mua = 0;
+eth_muI = 1;
+eth_muA = 2;
+eth_muE = 3;
+eth_mue = 4;
+eth_qua = 5;
+eth_quI = 6;
+eth_quA = 7;
+eth_quE = 8;
+eth_que = 9;
+eth_bua = 10;
+eth_buI = 11;
+eth_buA = 12;
+eth_buE = 13;
+eth_bue = 14;
+eth_kua = 15;
+eth_kuI = 16;
+eth_kuA = 17;
+eth_kuE = 18;
+eth_kue = 19;
+eth_gua = 20;
+eth_guI = 21;
+eth_guA = 22;
+eth_guE = 23;
+eth_gue = 24;
+eth_fua = 25;
+eth_fuI = 26;
+eth_fuA = 27;
+eth_fuE = 28;
+eth_fue = 29;
+\no_char(30);
+\no_char(31);
+\no_char(32);
+exclamation_mark = 33;
+rt_quotes = 34;
+spanish_shriek = 35;
+dollar = 36;
+spanish_query = 37;
+\no_char(38);
+rt_quote = 39;
+lt_parenthesis = 40;
+rt_parenthesis = 41;
+eth_colon = 42;
+\no_char(43);
+eth_comma = 44;
+eth_minus = 45;
+period = 46;
+slash = 47;
+%"0" = 48;
+%"1" = 49;
+%"2" = 50;
+%"3" = 51;
+%"4" = 52;
+%"5" = 53;
+%"6" = 54;
+%"7" = 55;
+%"8" = 56;
+%"9" = 57;
+eth_space = 58;
+eth_semicolon = 59;
+less = 60;
+\no_char(61);
+greater = 62;
+question_mark = 63;
+\no_char(64);
+eth_`A = 65;
+\no_char(66);
+\no_char(67);
+\no_char(68);
+eth_`E = 69;
+\no_char(70);
+\no_char(71);
+\no_char(72);
+eth_`I = 73;
+\no_char(74);
+\no_char(75);
+\no_char(76);
+\no_char(77);
+\no_char(78);
+eth_`O = 79;
+\no_char(80);
+\no_char(81);
+\no_char(82);
+\no_char(83);
+\no_char(84);
+eth_`U = 85;
+\no_char(86);
+\no_char(87);
+\no_char(88);
+\no_char(89);
+\no_char(90);
+lt_bracket = 91;
+lt_quotes = 92;
+rt_bracket = 93;
+\no_char(94);
+\no_char(95);
+lt_quote = 96;
+eth_`a = 97;
+eth_be = 98;
+\no_char(99);
+eth_de = 100;
+eth_`e = 101;
+eth_fe = 102;
+eth_ge = 103;
+eth_he = 104;
+\no_char(105);
+\no_char(106);
+eth_ke = 107;
+eth_le = 108;
+eth_me = 109;
+eth_ne = 110;
+\no_char(111);
+eth_pe = 112;
+eth_qe = 113;
+eth_re = 114;
+eth_se = 115;
+eth_te = 116;
+\no_char(117);
+eth_ve = 118;
+eth_we = 119;
+\no_char(120);
+eth_ye = 121;
+eth_ze = 122;
+eth_preface_colon = 123;
+eth_three_dot = 124;
+eth_seven_dot = 125;
+eth_full_stop = 126;
+zero_hyph = 127;
+eth_ha = 128;
+eth_hU = 129;
+eth_hI = 130;
+eth_hA = 131;
+eth_hE = 132;
+eth_hO = 133;
+eth_la = 134;
+eth_lU = 135;
+eth_lI = 136;
+eth_lA = 137;
+eth_lE = 138;
+eth_lO = 139;
+eth_ma = 140;
+eth_mU = 141;
+eth_mI = 142;
+eth_mA = 143;
+eth_mE = 144;
+eth_mO = 145;
+eth_ra = 146;
+eth_rU = 147;
+eth_rI = 148;
+eth_rA = 149;
+eth_rE = 150;
+eth_rO = 151;
+eth_sa = 152;
+eth_sU = 153;
+eth_sI = 154;
+eth_sA = 155;
+eth_sE = 156;
+eth_sO = 157;
+eth_qa = 158;
+eth_qU = 159;
+eth_qI = 160;
+eth_qA = 161;
+eth_qE = 162;
+eth_qO = 163;
+eth_ba = 164;
+eth_bU = 165;
+eth_bI = 166;
+eth_bA = 167;
+eth_bE = 168;
+eth_bO = 169;
+eth_va = 170;
+eth_vU = 171;
+eth_vI = 172;
+eth_vA = 173;
+eth_vE = 174;
+eth_vO = 175;
+eth_ta = 176;
+eth_tU = 177;
+eth_tI = 178;
+eth_tA = 179;
+eth_tE = 180;
+eth_tO = 181;
+eth_na = 182;
+eth_nU = 183;
+eth_nI = 184;
+eth_nA = 185;
+eth_nE = 186;
+eth_nO = 187;
+eth_ka = 188;
+eth_kU = 189;
+eth_kI = 190;
+eth_kA = 191;
+eth_kE = 192;
+eth_kO = 193;
+eth_wa = 194;
+eth_wU = 195;
+eth_wI = 196;
+eth_wA = 197;
+eth_wE = 198;
+eth_wO = 199;
+eth_za = 200;
+eth_zU = 201;
+eth_zI = 202;
+eth_zA = 203;
+eth_zE = 204;
+eth_zO = 205;
+eth_ya = 206;
+eth_yU = 207;
+eth_yI = 208;
+eth_yA = 209;
+eth_yE = 210;
+eth_yO = 211;
+eth_da = 212;
+eth_dU = 213;
+eth_dI = 214;
+eth_dA = 215;
+eth_dE = 216;
+eth_dO = 217;
+eth_ga = 218;
+eth_gU = 219;
+eth_gI = 220;
+eth_gA = 221;
+eth_gE = 222;
+eth_gO = 223;
+eth_fa = 224;
+eth_fU = 225;
+eth_fI = 226;
+eth_fA = 227;
+eth_fE = 228;
+eth_fO = 229;
+eth_pa = 230;
+eth_pU = 231;
+eth_pI = 232;
+eth_pA = 233;
+eth_pE = 234;
+eth_pO = 235;
+eth_pua = 236;
+eth_puI = 237;
+eth_puA = 238;
+eth_puE = 239;
+eth_pue = 240;
+\no_char(241);
+\no_char(242);
+\no_char(243);
+\no_char(244);
+\no_char(245);
+eth_huA = 246;
+eth_vuA = 247;
+eth_tuA = 248;
+eth_nuA = 249;
+eth_zuA = 250;
+eth_yuA = 251;
+eth_duA = 252;
+eth_luA = 253;
+eth_ruA = 254;
+eth_suA = 255;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha_drv.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha_drv.mf
new file mode 100644
index 00000000000..4b658e97e2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha_drv.mf
@@ -0,0 +1,58 @@
+%-------------------------------------------------------------
+% This is ETHA_DRV.MF
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if monospace:
+ message "ignoring monospace";
+ monospace:=false;
+fi
+
+font_coding_scheme:= "TeX text without f-ligatures";
+mode_setup;
+font_setup;
+
+\input ethiomac;
+\input etha_cod;
+
+\input romand.mf
+
+%%%%BEGIN
+\input eth__g;
+\input eth_b;
+\input eth_d;
+\input eth_f;
+\input eth_fu;
+\input eth_g;
+\input eth_gu;
+\input eth_h;
+\input eth_k;
+\input eth_ku;
+\input eth_l;
+\input eth_m;
+\input eth_mu;
+\input eth_n;
+\input eth_p;
+\input eth_pu;
+\input eth_punc;
+\input eth_q;
+\input eth_qu;
+\input eth_r;
+\input eth_s;
+\input eth_t;
+\input eth_v;
+\input eth_w;
+\input eth_y;
+\input eth_z;
+%%%%END
+
+\input etha_lig;
+
+font_slant slant;
+font_x_height x_height#;
+font_normal_space 10u#+4letter_fit#;
+font_normal_stretch 5u#; font_normal_shrink 2u#;
+font_quad 18u#+6letter_fit#;
+font_extra_space 3.5u#;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/etha_lig.mf b/Master/texmf-dist/fonts/source/public/ethiop/etha_lig.mf
new file mode 100644
index 00000000000..bc772997a83
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/etha_lig.mf
@@ -0,0 +1,309 @@
+%-------------------------------------------------------------
+% This is ETHA_LIG.MF
+%-------------------------------------------------------------
+
+ligtable less:
+ less kern -4u#;
+ligtable "l":
+ "u" =: eth_lU,
+ "I" =: eth_lI,
+ "i" =: eth_lI,
+ "A" =: eth_lA,
+ "E" =: eth_lE,
+ "O" =: eth_lO,
+ "o" =: eth_lO,
+ "e" =: eth_le,
+ "a" =: eth_la,
+ "U" =: eth_lU;
+ligtable "y":
+ "u" =: eth_yU,
+ "I" =: eth_yI,
+ "i" =: eth_yI,
+ "A" =: eth_yA,
+ "E" =: eth_yE,
+ "O" =: eth_yO,
+ "o" =: eth_yO,
+ "e" =: eth_ye,
+ "a" =: eth_ya,
+ "U" =: eth_yU;
+ligtable eth_vU:
+ "A" =: eth_vuA,
+ "a" =: eth_vuA;
+ligtable eth_space:
+ eth_space =: eth_full_stop,
+ "=" =: eth_colon,
+ eth_minus =: eth_preface_colon,
+ eth_three_dot =: eth_seven_dot;
+ligtable lt_quote:
+ "E" =: eth_`E,
+ "I" =: eth_`I,
+ "i" =: eth_`I,
+ "O" =: eth_`O,
+ "o" =: eth_`O,
+ "U" =: eth_`U,
+ "u" =: eth_`U,
+ lt_quote =: lt_quotes,
+ "a" =: eth_`a,
+ "e" =: eth_`e,
+ exclamation_mark =: spanish_shriek,
+ question_mark =: spanish_query,
+ "A" =: eth_`A;
+ligtable "m":
+ "u" =: eth_mU,
+ "I" =: eth_mI,
+ "i" =: eth_mI,
+ "A" =: eth_mA,
+ "E" =: eth_mE,
+ "O" =: eth_mO,
+ "o" =: eth_mO,
+ "e" =: eth_me,
+ "a" =: eth_ma,
+ "U" =: eth_mU;
+ligtable "z":
+ "u" =: eth_zU,
+ "I" =: eth_zI,
+ "i" =: eth_zI,
+ "A" =: eth_zA,
+ "E" =: eth_zE,
+ "O" =: eth_zO,
+ "o" =: eth_zO,
+ "e" =: eth_ze,
+ "a" =: eth_za,
+ "U" =: eth_zU;
+ligtable eth_seven_dot:
+ eth_space =: eth_seven_dot;
+ligtable "n":
+ "u" =: eth_nU,
+ "I" =: eth_nI,
+ "i" =: eth_nI,
+ "A" =: eth_nA,
+ "E" =: eth_nE,
+ "O" =: eth_nO,
+ "o" =: eth_nO,
+ "e" =: eth_ne,
+ "a" =: eth_na,
+ "U" =: eth_nU;
+ligtable eth_kU:
+ "A" =: eth_kuA,
+ "E" =: eth_kuE,
+ "e" =: eth_kue,
+ "a" =: eth_kua,
+ "I" =: eth_kuI,
+ "i" =: eth_kuI;
+ligtable "b":
+ "u" =: eth_bU,
+ "I" =: eth_bI,
+ "i" =: eth_bI,
+ "A" =: eth_bA,
+ "E" =: eth_bE,
+ "O" =: eth_bO,
+ "o" =: eth_bO,
+ "e" =: eth_be,
+ "a" =: eth_ba,
+ "U" =: eth_bU;
+ligtable eth_yU:
+ "a" =: eth_yuA,
+ "A" =: eth_yuA;
+ligtable eth_lU:
+ "A" =: eth_luA,
+ "a" =: eth_luA;
+ligtable "p":
+ "u" =: eth_pU,
+ "I" =: eth_pI,
+ "i" =: eth_pI,
+ "A" =: eth_pA,
+ "E" =: eth_pE,
+ "O" =: eth_pO,
+ "o" =: eth_pO,
+ "e" =: eth_pe,
+ "a" =: eth_pa,
+ "U" =: eth_pU;
+ligtable eth_mU:
+ "A" =: eth_muA,
+ "E" =: eth_muE,
+ "e" =: eth_mue,
+ "a" =: eth_mua,
+ "I" =: eth_muI,
+ "i" =: eth_muI;
+ligtable eth_zU:
+ "A" =: eth_zuA,
+ "a" =: eth_zuA;
+ligtable greater:
+ greater kern -4u#;
+ligtable "d":
+ "u" =: eth_dU,
+ "I" =: eth_dI,
+ "i" =: eth_dI,
+ "A" =: eth_dA,
+ "E" =: eth_dE,
+ "O" =: eth_dO,
+ "o" =: eth_dO,
+ "e" =: eth_de,
+ "a" =: eth_da,
+ "U" =: eth_dU;
+ligtable "q":
+ "u" =: eth_qU,
+ "I" =: eth_qI,
+ "i" =: eth_qI,
+ "A" =: eth_qA,
+ "E" =: eth_qE,
+ "O" =: eth_qO,
+ "o" =: eth_qO,
+ "e" =: eth_qe,
+ "a" =: eth_qa,
+ "U" =: eth_qU;
+ligtable eth_nU:
+ "A" =: eth_nuA,
+ "a" =: eth_nuA;
+ligtable "r":
+ "u" =: eth_rU,
+ "I" =: eth_rI,
+ "i" =: eth_rI,
+ "A" =: eth_rA,
+ "E" =: eth_rE,
+ "O" =: eth_rO,
+ "o" =: eth_rO,
+ "e" =: eth_re,
+ "a" =: eth_ra,
+ "U" =: eth_rU;
+ligtable eth_bU:
+ "A" =: eth_buA,
+ "E" =: eth_buE,
+ "e" =: eth_bue,
+ "a" =: eth_bua,
+ "I" =: eth_buI,
+ "i" =: eth_buI;
+ligtable rt_quote:
+ rt_quote =: rt_quotes,
+ exclamation_mark =: spanish_shriek,
+ question_mark =: spanish_query;
+ligtable "f":
+ "u" =: eth_fU,
+ "I" =: eth_fI,
+ "i" =: eth_fI,
+ "A" =: eth_fA,
+ "E" =: eth_fE,
+ "O" =: eth_fO,
+ "o" =: eth_fO,
+ "e" =: eth_fe,
+ "a" =: eth_fa,
+ "U" =: eth_fU;
+ligtable "s":
+ "u" =: eth_sU,
+ "I" =: eth_sI,
+ "i" =: eth_sI,
+ "A" =: eth_sA,
+ "E" =: eth_sE,
+ "O" =: eth_sO,
+ "o" =: eth_sO,
+ "e" =: eth_se,
+ "a" =: eth_sa,
+ "U" =: eth_sU;
+ligtable eth_pU:
+ "E" =: eth_puE,
+ "e" =: eth_pue,
+ "a" =: eth_pua,
+ "I" =: eth_puI,
+ "A" =: eth_puA;
+ligtable "g":
+ "u" =: eth_gU,
+ "I" =: eth_gI,
+ "i" =: eth_gI,
+ "A" =: eth_gA,
+ "E" =: eth_gE,
+ "O" =: eth_gO,
+ "o" =: eth_gO,
+ "e" =: eth_ge,
+ "a" =: eth_ga,
+ "U" =: eth_gU;
+ligtable "t":
+ "u" =: eth_tU,
+ "I" =: eth_tI,
+ "i" =: eth_tI,
+ "A" =: eth_tA,
+ "E" =: eth_tE,
+ "O" =: eth_tO,
+ "o" =: eth_tO,
+ "e" =: eth_te,
+ "a" =: eth_ta,
+ "U" =: eth_tU;
+ligtable eth_qU:
+ "A" =: eth_quA,
+ "E" =: eth_quE,
+ "e" =: eth_que,
+ "a" =: eth_qua,
+ "I" =: eth_quI,
+ "i" =: eth_quI;
+ligtable eth_dU:
+ "A" =: eth_duA,
+ "a" =: eth_duA;
+ligtable eth_rU:
+ "A" =: eth_ruA,
+ "a" =: eth_ruA;
+ligtable "h":
+ "u" =: eth_hU,
+ "I" =: eth_hI,
+ "i" =: eth_hI,
+ "A" =: eth_hA,
+ "E" =: eth_hE,
+ "O" =: eth_hO,
+ "o" =: eth_hO,
+ "e" =: eth_he,
+ "a" =: eth_ha,
+ "U" =: eth_hU;
+ligtable eth_fU:
+ "A" =: eth_fuA,
+ "E" =: eth_fuE,
+ "e" =: eth_fue,
+ "a" =: eth_fua,
+ "I" =: eth_fuI,
+ "i" =: eth_fuI;
+ligtable eth_sU:
+ "A" =: eth_suA,
+ "a" =: eth_suA;
+ligtable "v":
+ "u" =: eth_vU,
+ "I" =: eth_vI,
+ "i" =: eth_vI,
+ "A" =: eth_vA,
+ "E" =: eth_vE,
+ "O" =: eth_vO,
+ "o" =: eth_vO,
+ "e" =: eth_ve,
+ "a" =: eth_va,
+ "U" =: eth_vU;
+ligtable eth_gU:
+ "A" =: eth_guA,
+ "E" =: eth_guE,
+ "e" =: eth_gue,
+ "a" =: eth_gua,
+ "I" =: eth_guI,
+ "i" =: eth_guI;
+ligtable eth_tU:
+ "A" =: eth_tuA,
+ "a" =: eth_tuA;
+ligtable "w":
+ "u" =: eth_wU,
+ "I" =: eth_wI,
+ "i" =: eth_wI,
+ "A" =: eth_wA,
+ "E" =: eth_wE,
+ "O" =: eth_wO,
+ "o" =: eth_wO,
+ "e" =: eth_we,
+ "a" =: eth_wa,
+ "U" =: eth_wU;
+ligtable "k":
+ "u" =: eth_kU,
+ "I" =: eth_kI,
+ "i" =: eth_kI,
+ "A" =: eth_kA,
+ "E" =: eth_kE,
+ "O" =: eth_kO,
+ "o" =: eth_kO,
+ "e" =: eth_ke,
+ "a" =: eth_ka,
+ "U" =: eth_kU;
+ligtable eth_hU:
+ "A" =: eth_huA,
+ "a" =: eth_huA;
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab10.mf
new file mode 100644
index 00000000000..961a7e9d048
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab10.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHAB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=213/36pt#; % height of lowercase without ascenders
+%% x_height#:=190/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+%%vair#:=9/36pt#; % vertical diameter of hairlines
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab11.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab11.mf
new file mode 100644
index 00000000000..428c575a52a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab11.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHAB11.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 11pt#;
+
+u#:=24.75/36pt#; % unit width
+width_adj#:=11.9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=271.7/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=234/36pt#; % height of lowercase without ascenders
+%%% x_height#:=176/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=93.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.38/36pt#; % width of extrafine details
+hair#:=17.23/36pt#; % lowercase hairline breadth
+%%stem#:=43/36pt#; % lowercase stem breadth
+stem#:=45/36pt#; % lowercase stem breadth
+curve#:=47.66/36pt#; % lowercase curve breadth
+ess#:=40.33/36pt#; % breadth in middle of lowercase s
+flare#:=46.75/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56.83/36pt#; % diameter of dots
+cap_hair#:=19.7/36pt#; % uppercase hairline breadth
+cap_stem#:=52.25/36pt#; % uppercase stem breadth
+cap_curve#:=56/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.61pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=11/36pt#; % vertical distance from serif base to tangent
+jut#:=27.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=42/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.36/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=13.11/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=17.04/36pt#; % lowercase bar thickness
+slab#:=17.04/36pt#; % serif and arm thickness
+cap_bar#:=17.04/36pt#; % uppercase bar thickness
+cap_band#:=17.04/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=3.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.366; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab12.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab12.mf
new file mode 100644
index 00000000000..7d0a88ba9c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab12.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHAB12.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=236/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+%%stem#:=40/36pt#; % lowercase stem breadth
+%%stem#:=47/36pt#; % lowercase stem breadth
+stem#:=55/36pt#; % lowercase stem breadth
+%curve#:=45/36pt#; % lowercase curve breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+%vair#:=10/36pt#; % vertical diameter of hairlines
+vair#:=14.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab14.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab14.mf
new file mode 100644
index 00000000000..86a6170280a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab14.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHAB14.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 14pt#;
+
+u#:=31.5/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=9.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=378/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=345.8/36pt#; % height of caps
+fig_height#:=324.8/36pt#; % height of numerals
+x_height#:=284/36pt#; % height of lowercase without ascenders
+%% x_height#:=224/36pt#; % height of lowercase without ascenders
+math_axis#:=126/36pt#; % axis of symmetry for math symbols
+bar_height#:=119/36pt#; % height of crossbar in lowercase e
+comma_depth#:=98/36pt#; % depth of comma below baseline
+desc_depth#:=98/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=12.25/36pt#; % width of extrafine details
+hair#:=21.35/36pt#; % lowercase hairline breadth
+%%stem#:=54.8/36pt#; % lowercase stem breadth
+stem#:=59.8/36pt#; % lowercase stem breadth
+curve#:=60.66/36pt#; % lowercase curve breadth
+ess#:=51.3/36pt#; % breadth in middle of lowercase s
+flare#:=59.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=72.3/36pt#; % diameter of dots
+cap_hair#:=23.3/36pt#; % uppercase hairline breadth
+cap_stem#:=66.5/36pt#; % uppercase stem breadth
+cap_curve#:=71.1/36pt#; % uppercase curve breadth
+cap_ess#:=68.8/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.77pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=53.6/36pt#; % protrusion of uppercase serifs
+beak_jut#:=14.46/36pt#; % horizontal protrusion of beak serifs
+beak#:=98/36pt#; % vertical protrusion of beak serifs
+vair#:=16.68/36pt#; % vertical diameter of hairlines
+%%vair#:=10.69/36pt#; % vertical diameter of hairlines
+notch_cut#:=14pt#; % maximum breadth above or below notches
+bar#:=21.58/36pt#; % lowercase bar thickness
+slab#:=21.58/36pt#; % serif and arm thickness
+cap_bar#:=21.58/36pt#; % uppercase bar thickness
+cap_band#:=21.58/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.8/36pt#; % amount of overshoot for curves
+apex_o#:=4.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.46; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab18.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab18.mf
new file mode 100644
index 00000000000..28f566b96a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab18.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHAB18.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 18pt#;
+
+u#:=40.5/36pt#; % unit width
+width_adj#:=19.5/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=444.6/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=358/36pt#; % height of lowercase without ascenders
+%% x_height#:=288/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=153/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%% tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+%% fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=13.5/36pt#; % diameter of sharply rounded corners
+thin_join#:=15.75/36pt#; % width of extrafine details
+hair#:=27.45/36pt#; % lowercase hairline breadth
+%%stem#:=70.5/36pt#; % lowercase stem breadth
+stem#:=75.5/36pt#; % lowercase stem breadth
+curve#:=78/36pt#; % lowercase curve breadth
+ess#:=66/36pt#; % breadth in middle of lowercase s
+flare#:=76.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=93/36pt#; % diameter of dots
+cap_hair#:=30/36pt#; % uppercase hairline breadth
+cap_stem#:=85.5/36pt#; % uppercase stem breadth
+cap_curve#:=91.1/36pt#; % uppercase curve breadth
+cap_ess#:=88.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.99pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=45/36pt#; % protrusion of lowercase serifs
+cap_jut#:=69/36pt#; % protrusion of uppercase serifs
+beak_jut#:=18.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=21.45/36pt#; % vertical diameter of hairlines
+%%vair#:=13.75/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=27.75/36pt#; % lowercase bar thickness
+slab#:=27.75/36pt#; % serif and arm thickness
+cap_bar#:=27.75/36pt#; % uppercase bar thickness
+cap_band#:=27.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.41; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab24.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab24.mf
new file mode 100644
index 00000000000..85b07381a97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab24.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHAB24.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 24pt#;
+
+u#:=54/36pt#; % unit width
+width_adj#:=26/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=16/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=648/36pt#; % height of tallest characters
+asc_height#:=600/36pt#; % height of lowercase ascenders
+cap_height#:=592.8/36pt#; % height of caps
+fig_height#:=556.8/36pt#; % height of numerals
+x_height#:=484/36pt#; % height of lowercase without ascenders
+%% x_height#:=384/36pt#; % height of lowercase without ascenders
+math_axis#:=216/36pt#; % axis of symmetry for math symbols
+bar_height#:=204/36pt#; % height of crossbar in lowercase e
+comma_depth#:=168/36pt#; % depth of comma below baseline
+desc_depth#:=168/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=18.18/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=36/36pt#; % lowercase hairline breadth
+%%stem#:=94/36pt#; % lowercase stem breadth
+stem#:=102/36pt#; % lowercase stem breadth
+curve#:=104/36pt#; % lowercase curve breadth
+ess#:=88/36pt#; % breadth in middle of lowercase s
+flare#:=102/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=124/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=114/36pt#; % uppercase stem breadth
+cap_curve#:=122/36pt#; % uppercase curve breadth
+cap_ess#:=118/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.3pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=60/36pt#; % protrusion of lowercase serifs
+cap_jut#:=92/36pt#; % protrusion of uppercase serifs
+beak_jut#:=24/36pt#; % horizontal protrusion of beak serifs
+beak#:=168/36pt#; % vertical protrusion of beak serifs
+vair#:=28/36pt#; % vertical diameter of hairlines
+%%vair#:=18.43/36pt#; % vertical diameter of hairlines
+notch_cut#:=24pt#; % maximum breadth above or below notches
+bar#:=37/36pt#; % lowercase bar thickness
+slab#:=37/36pt#; % serif and arm thickness
+cap_bar#:=37/36pt#; % uppercase bar thickness
+cap_band#:=37/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+serif_drop#:=7.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.31; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab36.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab36.mf
new file mode 100644
index 00000000000..2168f1f9eef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab36.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHAB36.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 36pt#;
+
+u#:=73.6/36pt#; % unit width
+width_adj#:=35.45/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=21.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=972/36pt#; % height of tallest characters
+asc_height#:=900/36pt#; % height of lowercase ascenders
+cap_height#:=889/36pt#; % height of caps
+fig_height#:=835/36pt#; % height of numerals
+%%x_height#:=576/36pt#; % height of lowercase without ascenders
+x_height#:=726/36pt#; % height of lowercase without ascenders
+math_axis#:=324/36pt#; % axis of symmetry for math symbols
+bar_height#:=306/36pt#; % height of crossbar in lowercase e
+comma_depth#:=252/36pt#; % depth of comma below baseline
+desc_depth#:=252/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+%%fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=24.65/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+%%stem#:=128/36pt#; % lowercase stem breadth
+stem#:=138/36pt#; % lowercase stem breadth
+curve#:=141/36pt#; % lowercase curve breadth
+ess#:=120/36pt#; % breadth in middle of lowercase s
+flare#:=139/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=169/36pt#; % diameter of dots
+cap_hair#:=54.5/36pt#; % uppercase hairline breadth
+cap_stem#:=155/36pt#; % uppercase stem breadth
+cap_curve#:=166/36pt#; % uppercase curve breadth
+cap_ess#:=160.9/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.8pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=36/36pt#; % vertical distance from serif base to tangent
+jut#:=90/36pt#; % protrusion of lowercase serifs
+cap_jut#:=125/36pt#; % protrusion of uppercase serifs
+beak_jut#:=33/36pt#; % horizontal protrusion of beak serifs
+beak#:=252/36pt#; % vertical protrusion of beak serifs
+%% vair#:=24.9/36pt#; % vertical diameter of hairlines
+vair#:=39/36pt#; % vertical diameter of hairlines
+notch_cut#:=36pt#; % maximum breadth above or below notches
+bar#:=50/36pt#; % lowercase bar thickness
+slab#:=50/36pt#; % serif and arm thickness
+cap_bar#:=50/36pt#; % uppercase bar thickness
+cap_band#:=50/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+serif_drop#:=10.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=13.6/36pt#; % amount of overshoot for curves
+apex_o#:=10.9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.23; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethab9.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethab9.mf
new file mode 100644
index 00000000000..36c587a362c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethab9.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHAB9.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=200/36pt#; % height of lowercase without ascenders
+%% x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethas10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethas10.mf
new file mode 100644
index 00000000000..3cce3a9f2b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethas10.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHAS10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+%% x_height#:=200/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb10.mf
new file mode 100644
index 00000000000..83b155e36a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb10.mf
@@ -0,0 +1,78 @@
+%-------------------------------------------------------------
+% This is ETHASB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=213/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb11.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb11.mf
new file mode 100644
index 00000000000..0f0d4506492
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb11.mf
@@ -0,0 +1,78 @@
+%-------------------------------------------------------------
+% This is ETHASB11.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 11pt#;
+
+u#:=24.75/36pt#; % unit width
+width_adj#:=11.9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=271.7/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=234/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=93.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.38/36pt#; % width of extrafine details
+hair#:=17.23/36pt#; % lowercase hairline breadth
+%%stem#:=43/36pt#; % lowercase stem breadth
+stem#:=45/36pt#; % lowercase stem breadth
+curve#:=47.66/36pt#; % lowercase curve breadth
+ess#:=40.33/36pt#; % breadth in middle of lowercase s
+flare#:=46.75/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56.83/36pt#; % diameter of dots
+cap_hair#:=19.7/36pt#; % uppercase hairline breadth
+cap_stem#:=52.25/36pt#; % uppercase stem breadth
+cap_curve#:=56/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.61pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=11/36pt#; % vertical distance from serif base to tangent
+jut#:=27.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=42/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.36/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=13.11/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=17.04/36pt#; % lowercase bar thickness
+slab#:=17.04/36pt#; % serif and arm thickness
+cap_bar#:=17.04/36pt#; % uppercase bar thickness
+cap_band#:=17.04/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=3.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.366; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb12.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb12.mf
new file mode 100644
index 00000000000..67234da0603
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb12.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHASB12.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=236/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=55/36pt#; % lowercase stem breadth
+%curve#:=45/36pt#; % lowercase curve breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+%vair#:=10/36pt#; % vertical diameter of hairlines
+vair#:=14.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb14.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb14.mf
new file mode 100644
index 00000000000..0193a8aba42
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb14.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHASB14.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 14pt#;
+
+u#:=31.5/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=9.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=378/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=345.8/36pt#; % height of caps
+fig_height#:=324.8/36pt#; % height of numerals
+x_height#:=284/36pt#; % height of lowercase without ascenders
+%% x_height#:=224/36pt#; % height of lowercase without ascenders
+math_axis#:=126/36pt#; % axis of symmetry for math symbols
+bar_height#:=119/36pt#; % height of crossbar in lowercase e
+comma_depth#:=98/36pt#; % depth of comma below baseline
+desc_depth#:=98/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=12.25/36pt#; % width of extrafine details
+hair#:=21.35/36pt#; % lowercase hairline breadth
+%%stem#:=54.8/36pt#; % lowercase stem breadth
+stem#:=59.8/36pt#; % lowercase stem breadth
+curve#:=60.66/36pt#; % lowercase curve breadth
+ess#:=51.3/36pt#; % breadth in middle of lowercase s
+flare#:=59.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=72.3/36pt#; % diameter of dots
+cap_hair#:=23.3/36pt#; % uppercase hairline breadth
+cap_stem#:=66.5/36pt#; % uppercase stem breadth
+cap_curve#:=71.1/36pt#; % uppercase curve breadth
+cap_ess#:=68.8/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.77pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=53.6/36pt#; % protrusion of uppercase serifs
+beak_jut#:=14.46/36pt#; % horizontal protrusion of beak serifs
+beak#:=98/36pt#; % vertical protrusion of beak serifs
+vair#:=16.68/36pt#; % vertical diameter of hairlines
+%%vair#:=10.69/36pt#; % vertical diameter of hairlines
+notch_cut#:=14pt#; % maximum breadth above or below notches
+bar#:=21.58/36pt#; % lowercase bar thickness
+slab#:=21.58/36pt#; % serif and arm thickness
+cap_bar#:=21.58/36pt#; % uppercase bar thickness
+cap_band#:=21.58/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.8/36pt#; % amount of overshoot for curves
+apex_o#:=4.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.46; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb18.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb18.mf
new file mode 100644
index 00000000000..794736cab5d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb18.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHASB18.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOAB"; font_size 18pt#;
+
+u#:=40.5/36pt#; % unit width
+width_adj#:=19.5/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=444.6/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=358/36pt#; % height of lowercase without ascenders
+%% x_height#:=288/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=153/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%% tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+%% fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=13.5/36pt#; % diameter of sharply rounded corners
+thin_join#:=15.75/36pt#; % width of extrafine details
+hair#:=27.45/36pt#; % lowercase hairline breadth
+%%stem#:=70.5/36pt#; % lowercase stem breadth
+stem#:=75.5/36pt#; % lowercase stem breadth
+curve#:=78/36pt#; % lowercase curve breadth
+ess#:=66/36pt#; % breadth in middle of lowercase s
+flare#:=76.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=93/36pt#; % diameter of dots
+cap_hair#:=30/36pt#; % uppercase hairline breadth
+cap_stem#:=85.5/36pt#; % uppercase stem breadth
+cap_curve#:=91.1/36pt#; % uppercase curve breadth
+cap_ess#:=88.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.99pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=45/36pt#; % protrusion of lowercase serifs
+cap_jut#:=69/36pt#; % protrusion of uppercase serifs
+beak_jut#:=18.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=21.45/36pt#; % vertical diameter of hairlines
+%%vair#:=13.75/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=27.75/36pt#; % lowercase bar thickness
+slab#:=27.75/36pt#; % serif and arm thickness
+cap_bar#:=27.75/36pt#; % uppercase bar thickness
+cap_band#:=27.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.41; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb24.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb24.mf
new file mode 100644
index 00000000000..67d8363eab6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb24.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHASB24.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 24pt#;
+
+u#:=54/36pt#; % unit width
+width_adj#:=26/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=16/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=648/36pt#; % height of tallest characters
+asc_height#:=600/36pt#; % height of lowercase ascenders
+cap_height#:=592.8/36pt#; % height of caps
+fig_height#:=556.8/36pt#; % height of numerals
+x_height#:=484/36pt#; % height of lowercase without ascenders
+%% x_height#:=384/36pt#; % height of lowercase without ascenders
+math_axis#:=216/36pt#; % axis of symmetry for math symbols
+bar_height#:=204/36pt#; % height of crossbar in lowercase e
+comma_depth#:=168/36pt#; % depth of comma below baseline
+desc_depth#:=168/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=18.18/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=36/36pt#; % lowercase hairline breadth
+%%stem#:=94/36pt#; % lowercase stem breadth
+stem#:=102/36pt#; % lowercase stem breadth
+curve#:=104/36pt#; % lowercase curve breadth
+ess#:=88/36pt#; % breadth in middle of lowercase s
+flare#:=102/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=124/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=114/36pt#; % uppercase stem breadth
+cap_curve#:=122/36pt#; % uppercase curve breadth
+cap_ess#:=118/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.3pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=60/36pt#; % protrusion of lowercase serifs
+cap_jut#:=92/36pt#; % protrusion of uppercase serifs
+beak_jut#:=24/36pt#; % horizontal protrusion of beak serifs
+beak#:=168/36pt#; % vertical protrusion of beak serifs
+vair#:=28/36pt#; % vertical diameter of hairlines
+%%vair#:=18.43/36pt#; % vertical diameter of hairlines
+notch_cut#:=24pt#; % maximum breadth above or below notches
+bar#:=37/36pt#; % lowercase bar thickness
+slab#:=37/36pt#; % serif and arm thickness
+cap_bar#:=37/36pt#; % uppercase bar thickness
+cap_band#:=37/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+serif_drop#:=7.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.31; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb36.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb36.mf
new file mode 100644
index 00000000000..844832399fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb36.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHASB36.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 36pt#;
+
+u#:=73.6/36pt#; % unit width
+width_adj#:=35.45/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=21.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=972/36pt#; % height of tallest characters
+asc_height#:=900/36pt#; % height of lowercase ascenders
+cap_height#:=889/36pt#; % height of caps
+fig_height#:=835/36pt#; % height of numerals
+%%x_height#:=576/36pt#; % height of lowercase without ascenders
+x_height#:=726/36pt#; % height of lowercase without ascenders
+math_axis#:=324/36pt#; % axis of symmetry for math symbols
+bar_height#:=306/36pt#; % height of crossbar in lowercase e
+comma_depth#:=252/36pt#; % depth of comma below baseline
+desc_depth#:=252/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+%%fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=24.65/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=138/36pt#; % lowercase stem breadth
+%%stem#:=128/36pt#; % lowercase stem breadth
+curve#:=141/36pt#; % lowercase curve breadth
+ess#:=120/36pt#; % breadth in middle of lowercase s
+flare#:=139/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=169/36pt#; % diameter of dots
+cap_hair#:=54.5/36pt#; % uppercase hairline breadth
+cap_stem#:=155/36pt#; % uppercase stem breadth
+cap_curve#:=166/36pt#; % uppercase curve breadth
+cap_ess#:=160.9/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.8pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=36/36pt#; % vertical distance from serif base to tangent
+jut#:=90/36pt#; % protrusion of lowercase serifs
+cap_jut#:=125/36pt#; % protrusion of uppercase serifs
+beak_jut#:=33/36pt#; % horizontal protrusion of beak serifs
+beak#:=252/36pt#; % vertical protrusion of beak serifs
+%% vair#:=24.9/36pt#; % vertical diameter of hairlines
+vair#:=39/36pt#; % vertical diameter of hairlines
+notch_cut#:=36pt#; % maximum breadth above or below notches
+bar#:=50/36pt#; % lowercase bar thickness
+slab#:=50/36pt#; % serif and arm thickness
+cap_bar#:=50/36pt#; % uppercase bar thickness
+cap_band#:=50/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+serif_drop#:=10.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=13.6/36pt#; % amount of overshoot for curves
+apex_o#:=10.9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.23; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethasb9.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethasb9.mf
new file mode 100644
index 00000000000..4ba919a9d23
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethasb9.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHASB9.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOASLB"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=200/36pt#; % height of lowercase without ascenders
+%% x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethatt10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethatt10.mf
new file mode 100644
index 00000000000..220cda12620
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethatt10.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHATT10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOATT"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+%% x_height#:=200/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+%%%% stem#:=25/36pt#; % lowercase stem breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate etha_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb10.mf
new file mode 100644
index 00000000000..e7739d074c0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb10.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 10pt#;
+
+%%% u#:=20/36pt#; % unit width
+u#:=21/36pt#; % unit width (suposedly for ethiopian typewriter)
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+%%% x_height#:=155/36pt#; % height of lowercase without ascenders
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+%%% stem#:=25/36pt#; % lowercase stem breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb6.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb6.mf
new file mode 100644
index 00000000000..6f4d440d083
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb6.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHB6.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+%% x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb7.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb7.mf
new file mode 100644
index 00000000000..c7b5b97fe76
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb7.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHB7.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+%% x_height#:=108.5/36pt#; % height of lowercase without ascenders
+x_height#:=148.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb8.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb8.mf
new file mode 100644
index 00000000000..0de0aa2cb34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb8.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHB8.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 8pt#;
+
+%%% u#:=17/36pt#; % unit width
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=180/36pt#; % height of lowercase without ascenders
+%%% x_height#:=164/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+%%% stem#:=22/36pt#; % lowercase stem breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/20; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb_cod.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb_cod.mf
new file mode 100644
index 00000000000..849122a7780
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb_cod.mf
@@ -0,0 +1,260 @@
+%-------------------------------------------------------------
+% This is ETHB_COD.MF
+%-------------------------------------------------------------
+
+eth_Qua = 0;
+\no_char(1);
+eth_QuI = 2;
+eth_QuA = 3;
+eth_QuE = 4;
+eth_Que = 5;
+\no_char(6);
+\no_char(7);
+eth_^hua = 8;
+\no_char(9);
+eth_^huI = 10;
+eth_^huA = 11;
+eth_^huE = 12;
+eth_^hue = 13;
+\no_char(14);
+\no_char(15);
+eth_Kua = 16;
+\no_char(17);
+eth_KuI = 18;
+eth_KuA = 19;
+eth_KuE = 20;
+eth_Kue = 21;
+\no_char(22);
+\no_char(23);
+eth_Gua = 24;
+\no_char(25);
+eth_GuI = 26;
+eth_GuA = 27;
+eth_GuE = 28;
+eth_Gue = 29;
+\no_char(30);
+\no_char(31);
+eth_d_accent = 32;
+eth_girigea = 33;
+eth_rass = 34;
+eth_rassigea = 35;
+\no_char(36);
+\no_char(37);
+\no_char(38);
+\no_char(39);
+eth_mya = 40;
+eth_rya = 41;
+eth_fya = 42;
+\no_char(43);
+\no_char(44);
+\no_char(45);
+\no_char(46);
+\no_char(47);
+\no_char(48);
+eth_1 = 49;
+eth_2 = 50;
+eth_3 = 51;
+eth_4 = 52;
+eth_5 = 53;
+eth_6 = 54;
+eth_7 = 55;
+eth_8 = 56;
+eth_9 = 57;
+eth_10 = 58;
+eth_20 = 59;
+eth_30 = 60;
+eth_40 = 61;
+eth_50 = 62;
+eth_60 = 63;
+eth_70 = 64;
+eth_80 = 65;
+eth_90 = 66;
+eth_100 = 67;
+eth_100_100 = 68;
+\no_char(69);
+\no_char(70);
+\no_char(71);
+eth_Ha = 72;
+eth_HU = 73;
+eth_HI = 74;
+eth_HA = 75;
+eth_HE = 76;
+eth_He = 77;
+eth_HO = 78;
+eth_HuA = 79;
+eth_'sa = 80;
+eth_'sU = 81;
+eth_'sI = 82;
+eth_'sA = 83;
+eth_'sE = 84;
+eth_'se = 85;
+eth_'sO = 86;
+eth_'suA = 87;
+eth_^sa = 88;
+eth_^sU = 89;
+eth_^sI = 90;
+eth_^sA = 91;
+eth_^sE = 92;
+eth_^se = 93;
+eth_^sO = 94;
+eth_^suA = 95;
+eth_Qa = 96;
+eth_QU = 97;
+eth_QI = 98;
+eth_QA = 99;
+eth_QE = 100;
+eth_Qe = 101;
+eth_QO = 102;
+\no_char(103);
+eth_^ca = 104;
+eth_^cU = 105;
+eth_^cI = 106;
+eth_^cA = 107;
+eth_^cE = 108;
+eth_^ce = 109;
+eth_^cO = 110;
+eth_^cuA = 111;
+eth_^ha = 112;
+eth_^hU = 113;
+eth_^hI = 114;
+eth_^hA = 115;
+eth_^hE = 116;
+eth_^he = 117;
+eth_^hO = 118;
+\no_char(119);
+eth_Na = 120;
+eth_NU = 121;
+eth_NI = 122;
+eth_NA = 123;
+eth_NE = 124;
+eth_Ne = 125;
+eth_NO = 126;
+eth_NuA = 127;
+eth_'a = 128;
+eth_'U = 129;
+eth_'I = 130;
+eth_'A = 131;
+eth_'E = 132;
+eth_'e = 133;
+eth_'O = 134;
+eth_'ua = 135;
+eth_Ka = 136;
+eth_KU = 137;
+eth_KI = 138;
+eth_KA = 139;
+eth_KE = 140;
+eth_Ke = 141;
+eth_KO = 142;
+\no_char(143);
+eth_^za = 144;
+eth_^zU = 145;
+eth_^zI = 146;
+eth_^zA = 147;
+eth_^zE = 148;
+eth_^ze = 149;
+eth_^zO = 150;
+eth_^zuA = 151;
+eth_Da = 152;
+eth_DU = 153;
+eth_DI = 154;
+eth_DA = 155;
+eth_DE = 156;
+eth_De = 157;
+eth_DO = 158;
+eth_DuA = 159;
+eth_ja = 160;
+eth_jU = 161;
+eth_jI = 162;
+eth_jA = 163;
+eth_jE = 164;
+eth_je = 165;
+eth_jO = 166;
+eth_juA = 167;
+eth_Ga = 168;
+eth_GU = 169;
+eth_GI = 170;
+eth_GA = 171;
+eth_GE = 172;
+eth_Ge = 173;
+eth_GO = 174;
+\no_char(175);
+eth_Ta = 176;
+eth_TU = 177;
+eth_TI = 178;
+eth_TA = 179;
+eth_TE = 180;
+eth_Te = 181;
+eth_TO = 182;
+eth_TuA = 183;
+eth_^Ca = 184;
+eth_^CU = 185;
+eth_^CI = 186;
+eth_^CA = 187;
+eth_^CE = 188;
+eth_^Ce = 189;
+eth_^CO = 190;
+eth_^CuA = 191;
+eth_var^Ca = 192;
+eth_var^CU = 193;
+eth_var^CI = 194;
+eth_var^CA = 195;
+eth_var^CE = 196;
+eth_var^Ce = 197;
+eth_var^CO = 198;
+eth_var^CuA = 199;
+eth_Pa = 200;
+eth_PU = 201;
+eth_PI = 202;
+eth_PA = 203;
+eth_PE = 204;
+eth_Pe = 205;
+eth_PO = 206;
+eth_PuA = 207;
+eth_Sa = 208;
+eth_SU = 209;
+eth_SI = 210;
+eth_SA = 211;
+eth_SE = 212;
+eth_Se = 213;
+eth_SO = 214;
+eth_SuA = 215;
+eth_Ca = 216;
+eth_CU = 217;
+eth_CI = 218;
+eth_CA = 219;
+eth_CE = 220;
+eth_Ce = 221;
+eth_CO = 222;
+\no_char(223);
+eth_'qa = 224;
+eth_'qU = 225;
+eth_'qI = 226;
+eth_'qA = 227;
+eth_'qE = 228;
+eth_'qe = 229;
+eth_'qO = 230;
+\no_char(231);
+eth_'ka = 232;
+eth_'kU = 233;
+eth_'kI = 234;
+eth_'kA = 235;
+eth_'kE = 236;
+eth_'ke = 237;
+eth_'kO = 238;
+\no_char(239);
+eth_'ha = 240;
+eth_'hU = 241;
+eth_'hI = 242;
+eth_'hA = 243;
+eth_'hE = 244;
+eth_'he = 245;
+eth_'hO = 246;
+\no_char(247);
+eth_'ga = 248;
+eth_'gU = 249;
+eth_'gI = 250;
+eth_'gA = 251;
+eth_'gE = 252;
+eth_'ge = 253;
+eth_'gO = 254;
+\no_char(255);
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb_drv.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb_drv.mf
new file mode 100644
index 00000000000..576f7a625a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb_drv.mf
@@ -0,0 +1,60 @@
+%-------------------------------------------------------------
+% This is ETHB_DRV.MF
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if monospace:
+ message "ignoring monospace";
+ monospace:=false;
+fi
+
+font_coding_scheme:= "TeX text without f-ligatures";
+mode_setup;
+font_setup;
+
+\input ethiomac;
+\input ethb_cod;
+
+%%%%BEGIN
+\input eth__a;
+\input eth_acce;
+\input eth_c_c;
+\input eth_cc;
+\input eth_cc_c;
+\input eth_ccc2;
+\input eth_dd;
+\input eth_g_a;
+\input eth_gg;
+\input eth_ggu;
+\input eth_h_a;
+\input eth_h_c;
+\input eth_hh;
+\input eth_hu_c;
+\input eth_j;
+\input eth_k_a;
+\input eth_kk;
+\input eth_kku;
+\input eth_mrf;
+\input eth_nn;
+\input eth_num;
+\input eth_pp;
+\input eth_q_a;
+\input eth_qq;
+\input eth_qqu;
+\input eth_s_a;
+\input eth_s_c;
+\input eth_ss;
+\input eth_tt;
+\input eth_z_c;
+%%%%END
+
+\input ethb_lig;
+
+font_slant slant;
+font_x_height x_height#;
+font_normal_space 10u#+4letter_fit#;
+font_normal_stretch 5u#; font_normal_shrink 2u#;
+font_quad 18u#+6letter_fit#;
+font_extra_space 3.5u#;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethb_lig.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethb_lig.mf
new file mode 100644
index 00000000000..c5ee82df841
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethb_lig.mf
@@ -0,0 +1 @@
+% no ETHB_LIG.MF needed
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb10.mf
new file mode 100644
index 00000000000..98d406483ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb10.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHBB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=213/36pt#; % height of lowercase without ascenders
+%% x_height#:=190/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+%%vair#:=9/36pt#; % vertical diameter of hairlines
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb11.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb11.mf
new file mode 100644
index 00000000000..77c697031f7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb11.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHBB11.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOB"; font_size 11pt#;
+
+u#:=24.75/36pt#; % unit width
+width_adj#:=11.9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=271.7/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=234/36pt#; % height of lowercase without ascenders
+%%% x_height#:=176/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=93.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.38/36pt#; % width of extrafine details
+hair#:=17.23/36pt#; % lowercase hairline breadth
+%%stem#:=43/36pt#; % lowercase stem breadth
+stem#:=45/36pt#; % lowercase stem breadth
+curve#:=47.66/36pt#; % lowercase curve breadth
+ess#:=40.33/36pt#; % breadth in middle of lowercase s
+flare#:=46.75/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56.83/36pt#; % diameter of dots
+cap_hair#:=19.7/36pt#; % uppercase hairline breadth
+cap_stem#:=52.25/36pt#; % uppercase stem breadth
+cap_curve#:=56/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.61pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=11/36pt#; % vertical distance from serif base to tangent
+jut#:=27.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=42/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.36/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=13.11/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=17.04/36pt#; % lowercase bar thickness
+slab#:=17.04/36pt#; % serif and arm thickness
+cap_bar#:=17.04/36pt#; % uppercase bar thickness
+cap_band#:=17.04/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=3.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.366; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb12.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb12.mf
new file mode 100644
index 00000000000..5f93d941aa8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb12.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHBB12.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=236/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+%%stem#:=40/36pt#; % lowercase stem breadth
+%%stem#:=47/36pt#; % lowercase stem breadth
+stem#:=55/36pt#; % lowercase stem breadth
+%curve#:=45/36pt#; % lowercase curve breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+%vair#:=10/36pt#; % vertical diameter of hairlines
+vair#:=14.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb14.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb14.mf
new file mode 100644
index 00000000000..479bbf499f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb14.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHBB14.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 14pt#;
+
+u#:=31.5/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=9.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=378/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=345.8/36pt#; % height of caps
+fig_height#:=324.8/36pt#; % height of numerals
+x_height#:=284/36pt#; % height of lowercase without ascenders
+%% x_height#:=224/36pt#; % height of lowercase without ascenders
+math_axis#:=126/36pt#; % axis of symmetry for math symbols
+bar_height#:=119/36pt#; % height of crossbar in lowercase e
+comma_depth#:=98/36pt#; % depth of comma below baseline
+desc_depth#:=98/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=12.25/36pt#; % width of extrafine details
+hair#:=21.35/36pt#; % lowercase hairline breadth
+%%stem#:=54.8/36pt#; % lowercase stem breadth
+stem#:=59.8/36pt#; % lowercase stem breadth
+curve#:=60.66/36pt#; % lowercase curve breadth
+ess#:=51.3/36pt#; % breadth in middle of lowercase s
+flare#:=59.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=72.3/36pt#; % diameter of dots
+cap_hair#:=23.3/36pt#; % uppercase hairline breadth
+cap_stem#:=66.5/36pt#; % uppercase stem breadth
+cap_curve#:=71.1/36pt#; % uppercase curve breadth
+cap_ess#:=68.8/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.77pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=53.6/36pt#; % protrusion of uppercase serifs
+beak_jut#:=14.46/36pt#; % horizontal protrusion of beak serifs
+beak#:=98/36pt#; % vertical protrusion of beak serifs
+vair#:=16.68/36pt#; % vertical diameter of hairlines
+%%vair#:=10.69/36pt#; % vertical diameter of hairlines
+notch_cut#:=14pt#; % maximum breadth above or below notches
+bar#:=21.58/36pt#; % lowercase bar thickness
+slab#:=21.58/36pt#; % serif and arm thickness
+cap_bar#:=21.58/36pt#; % uppercase bar thickness
+cap_band#:=21.58/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.8/36pt#; % amount of overshoot for curves
+apex_o#:=4.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.46; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb18.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb18.mf
new file mode 100644
index 00000000000..142a6a6eb75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb18.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHBB18.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 18pt#;
+
+u#:=40.5/36pt#; % unit width
+width_adj#:=19.5/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=444.6/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=358/36pt#; % height of lowercase without ascenders
+%% x_height#:=288/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=153/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%% tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+%% fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=13.5/36pt#; % diameter of sharply rounded corners
+thin_join#:=15.75/36pt#; % width of extrafine details
+hair#:=27.45/36pt#; % lowercase hairline breadth
+%%stem#:=70.5/36pt#; % lowercase stem breadth
+stem#:=75.5/36pt#; % lowercase stem breadth
+curve#:=78/36pt#; % lowercase curve breadth
+ess#:=66/36pt#; % breadth in middle of lowercase s
+flare#:=76.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=93/36pt#; % diameter of dots
+cap_hair#:=30/36pt#; % uppercase hairline breadth
+cap_stem#:=85.5/36pt#; % uppercase stem breadth
+cap_curve#:=91.1/36pt#; % uppercase curve breadth
+cap_ess#:=88.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.99pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=45/36pt#; % protrusion of lowercase serifs
+cap_jut#:=69/36pt#; % protrusion of uppercase serifs
+beak_jut#:=18.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=21.45/36pt#; % vertical diameter of hairlines
+%%vair#:=13.75/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=27.75/36pt#; % lowercase bar thickness
+slab#:=27.75/36pt#; % serif and arm thickness
+cap_bar#:=27.75/36pt#; % uppercase bar thickness
+cap_band#:=27.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.41; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb24.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb24.mf
new file mode 100644
index 00000000000..79d9a607683
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb24.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHBB24.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 24pt#;
+
+u#:=54/36pt#; % unit width
+width_adj#:=26/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=16/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=648/36pt#; % height of tallest characters
+asc_height#:=600/36pt#; % height of lowercase ascenders
+cap_height#:=592.8/36pt#; % height of caps
+fig_height#:=556.8/36pt#; % height of numerals
+x_height#:=484/36pt#; % height of lowercase without ascenders
+%% x_height#:=384/36pt#; % height of lowercase without ascenders
+math_axis#:=216/36pt#; % axis of symmetry for math symbols
+bar_height#:=204/36pt#; % height of crossbar in lowercase e
+comma_depth#:=168/36pt#; % depth of comma below baseline
+desc_depth#:=168/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=18.18/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=36/36pt#; % lowercase hairline breadth
+%%stem#:=94/36pt#; % lowercase stem breadth
+stem#:=102/36pt#; % lowercase stem breadth
+curve#:=104/36pt#; % lowercase curve breadth
+ess#:=88/36pt#; % breadth in middle of lowercase s
+flare#:=102/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=124/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=114/36pt#; % uppercase stem breadth
+cap_curve#:=122/36pt#; % uppercase curve breadth
+cap_ess#:=118/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.3pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=60/36pt#; % protrusion of lowercase serifs
+cap_jut#:=92/36pt#; % protrusion of uppercase serifs
+beak_jut#:=24/36pt#; % horizontal protrusion of beak serifs
+beak#:=168/36pt#; % vertical protrusion of beak serifs
+vair#:=28/36pt#; % vertical diameter of hairlines
+%%vair#:=18.43/36pt#; % vertical diameter of hairlines
+notch_cut#:=24pt#; % maximum breadth above or below notches
+bar#:=37/36pt#; % lowercase bar thickness
+slab#:=37/36pt#; % serif and arm thickness
+cap_bar#:=37/36pt#; % uppercase bar thickness
+cap_band#:=37/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+serif_drop#:=7.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.31; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb36.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb36.mf
new file mode 100644
index 00000000000..a83c8dbc335
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb36.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHBB36.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 36pt#;
+
+u#:=73.6/36pt#; % unit width
+width_adj#:=35.45/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=21.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=972/36pt#; % height of tallest characters
+asc_height#:=900/36pt#; % height of lowercase ascenders
+cap_height#:=889/36pt#; % height of caps
+fig_height#:=835/36pt#; % height of numerals
+%%x_height#:=576/36pt#; % height of lowercase without ascenders
+x_height#:=726/36pt#; % height of lowercase without ascenders
+math_axis#:=324/36pt#; % axis of symmetry for math symbols
+bar_height#:=306/36pt#; % height of crossbar in lowercase e
+comma_depth#:=252/36pt#; % depth of comma below baseline
+desc_depth#:=252/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+%%fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=24.65/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+%%stem#:=128/36pt#; % lowercase stem breadth
+stem#:=138/36pt#; % lowercase stem breadth
+curve#:=141/36pt#; % lowercase curve breadth
+ess#:=120/36pt#; % breadth in middle of lowercase s
+flare#:=139/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=169/36pt#; % diameter of dots
+cap_hair#:=54.5/36pt#; % uppercase hairline breadth
+cap_stem#:=155/36pt#; % uppercase stem breadth
+cap_curve#:=166/36pt#; % uppercase curve breadth
+cap_ess#:=160.9/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.8pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=36/36pt#; % vertical distance from serif base to tangent
+jut#:=90/36pt#; % protrusion of lowercase serifs
+cap_jut#:=125/36pt#; % protrusion of uppercase serifs
+beak_jut#:=33/36pt#; % horizontal protrusion of beak serifs
+beak#:=252/36pt#; % vertical protrusion of beak serifs
+%% vair#:=24.9/36pt#; % vertical diameter of hairlines
+vair#:=39/36pt#; % vertical diameter of hairlines
+notch_cut#:=36pt#; % maximum breadth above or below notches
+bar#:=50/36pt#; % lowercase bar thickness
+slab#:=50/36pt#; % serif and arm thickness
+cap_bar#:=50/36pt#; % uppercase bar thickness
+cap_band#:=50/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+serif_drop#:=10.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=13.6/36pt#; % amount of overshoot for curves
+apex_o#:=10.9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.23; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbb9.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbb9.mf
new file mode 100644
index 00000000000..5b13812fb00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbb9.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHBB9.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBB"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=200/36pt#; % height of lowercase without ascenders
+%% x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbs10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbs10.mf
new file mode 100644
index 00000000000..00734f0dd06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbs10.mf
@@ -0,0 +1,79 @@
+%-------------------------------------------------------------
+% This is ETHBS10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+%% x_height#:=200/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb10.mf
new file mode 100644
index 00000000000..dacb3912f57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb10.mf
@@ -0,0 +1,78 @@
+%-------------------------------------------------------------
+% This is ETHBSB10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=213/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb11.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb11.mf
new file mode 100644
index 00000000000..3be2db4e360
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb11.mf
@@ -0,0 +1,78 @@
+%-------------------------------------------------------------
+% This is ETHBSB11.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 11pt#;
+
+u#:=24.75/36pt#; % unit width
+width_adj#:=11.9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=271.7/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=234/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=93.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.38/36pt#; % width of extrafine details
+hair#:=17.23/36pt#; % lowercase hairline breadth
+%%stem#:=43/36pt#; % lowercase stem breadth
+stem#:=45/36pt#; % lowercase stem breadth
+curve#:=47.66/36pt#; % lowercase curve breadth
+ess#:=40.33/36pt#; % breadth in middle of lowercase s
+flare#:=46.75/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56.83/36pt#; % diameter of dots
+cap_hair#:=19.7/36pt#; % uppercase hairline breadth
+cap_stem#:=52.25/36pt#; % uppercase stem breadth
+cap_curve#:=56/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.61pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=11/36pt#; % vertical distance from serif base to tangent
+jut#:=27.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=42/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.36/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=13.11/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=17.04/36pt#; % lowercase bar thickness
+slab#:=17.04/36pt#; % serif and arm thickness
+cap_bar#:=17.04/36pt#; % uppercase bar thickness
+cap_band#:=17.04/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=3.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.366; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb12.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb12.mf
new file mode 100644
index 00000000000..5604b99f6f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb12.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHBSB12.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=236/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=55/36pt#; % lowercase stem breadth
+%curve#:=45/36pt#; % lowercase curve breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+%vair#:=10/36pt#; % vertical diameter of hairlines
+vair#:=14.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb14.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb14.mf
new file mode 100644
index 00000000000..40b6bfc7f31
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb14.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHBSB14.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 14pt#;
+
+u#:=31.5/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=9.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=378/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=345.8/36pt#; % height of caps
+fig_height#:=324.8/36pt#; % height of numerals
+x_height#:=284/36pt#; % height of lowercase without ascenders
+%% x_height#:=224/36pt#; % height of lowercase without ascenders
+math_axis#:=126/36pt#; % axis of symmetry for math symbols
+bar_height#:=119/36pt#; % height of crossbar in lowercase e
+comma_depth#:=98/36pt#; % depth of comma below baseline
+desc_depth#:=98/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=12.25/36pt#; % width of extrafine details
+hair#:=21.35/36pt#; % lowercase hairline breadth
+%%stem#:=54.8/36pt#; % lowercase stem breadth
+stem#:=59.8/36pt#; % lowercase stem breadth
+curve#:=60.66/36pt#; % lowercase curve breadth
+ess#:=51.3/36pt#; % breadth in middle of lowercase s
+flare#:=59.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=72.3/36pt#; % diameter of dots
+cap_hair#:=23.3/36pt#; % uppercase hairline breadth
+cap_stem#:=66.5/36pt#; % uppercase stem breadth
+cap_curve#:=71.1/36pt#; % uppercase curve breadth
+cap_ess#:=68.8/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.77pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=53.6/36pt#; % protrusion of uppercase serifs
+beak_jut#:=14.46/36pt#; % horizontal protrusion of beak serifs
+beak#:=98/36pt#; % vertical protrusion of beak serifs
+vair#:=16.68/36pt#; % vertical diameter of hairlines
+%%vair#:=10.69/36pt#; % vertical diameter of hairlines
+notch_cut#:=14pt#; % maximum breadth above or below notches
+bar#:=21.58/36pt#; % lowercase bar thickness
+slab#:=21.58/36pt#; % serif and arm thickness
+cap_bar#:=21.58/36pt#; % uppercase bar thickness
+cap_band#:=21.58/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5.8/36pt#; % amount of overshoot for curves
+apex_o#:=4.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.46; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb18.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb18.mf
new file mode 100644
index 00000000000..fdac555071e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb18.mf
@@ -0,0 +1,83 @@
+%-------------------------------------------------------------
+% This is ETHBSB18.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 18pt#;
+
+u#:=40.5/36pt#; % unit width
+width_adj#:=19.5/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=444.6/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=358/36pt#; % height of lowercase without ascenders
+%% x_height#:=288/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=153/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+%% tiny#:=13/36pt#; % diameter of rounded corners
+tiny#:=12.5/36pt#; % diameter of rounded corners
+%% fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=13.5/36pt#; % diameter of sharply rounded corners
+thin_join#:=15.75/36pt#; % width of extrafine details
+hair#:=27.45/36pt#; % lowercase hairline breadth
+%%stem#:=70.5/36pt#; % lowercase stem breadth
+stem#:=75.5/36pt#; % lowercase stem breadth
+curve#:=78/36pt#; % lowercase curve breadth
+ess#:=66/36pt#; % breadth in middle of lowercase s
+flare#:=76.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=93/36pt#; % diameter of dots
+cap_hair#:=30/36pt#; % uppercase hairline breadth
+cap_stem#:=85.5/36pt#; % uppercase stem breadth
+cap_curve#:=91.1/36pt#; % uppercase curve breadth
+cap_ess#:=88.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.99pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=45/36pt#; % protrusion of lowercase serifs
+cap_jut#:=69/36pt#; % protrusion of uppercase serifs
+beak_jut#:=18.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=21.45/36pt#; % vertical diameter of hairlines
+%%vair#:=13.75/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=27.75/36pt#; % lowercase bar thickness
+slab#:=27.75/36pt#; % serif and arm thickness
+cap_bar#:=27.75/36pt#; % uppercase bar thickness
+cap_band#:=27.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.41; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb24.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb24.mf
new file mode 100644
index 00000000000..8ee90a2571d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb24.mf
@@ -0,0 +1,81 @@
+%-------------------------------------------------------------
+% This is ETHBSB24.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 24pt#;
+
+u#:=54/36pt#; % unit width
+width_adj#:=26/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=16/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=648/36pt#; % height of tallest characters
+asc_height#:=600/36pt#; % height of lowercase ascenders
+cap_height#:=592.8/36pt#; % height of caps
+fig_height#:=556.8/36pt#; % height of numerals
+x_height#:=484/36pt#; % height of lowercase without ascenders
+%% x_height#:=384/36pt#; % height of lowercase without ascenders
+math_axis#:=216/36pt#; % axis of symmetry for math symbols
+bar_height#:=204/36pt#; % height of crossbar in lowercase e
+comma_depth#:=168/36pt#; % depth of comma below baseline
+desc_depth#:=168/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=18.18/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=36/36pt#; % lowercase hairline breadth
+%%stem#:=94/36pt#; % lowercase stem breadth
+stem#:=102/36pt#; % lowercase stem breadth
+curve#:=104/36pt#; % lowercase curve breadth
+ess#:=88/36pt#; % breadth in middle of lowercase s
+flare#:=102/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=124/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=114/36pt#; % uppercase stem breadth
+cap_curve#:=122/36pt#; % uppercase curve breadth
+cap_ess#:=118/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.3pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=60/36pt#; % protrusion of lowercase serifs
+cap_jut#:=92/36pt#; % protrusion of uppercase serifs
+beak_jut#:=24/36pt#; % horizontal protrusion of beak serifs
+beak#:=168/36pt#; % vertical protrusion of beak serifs
+vair#:=28/36pt#; % vertical diameter of hairlines
+%%vair#:=18.43/36pt#; % vertical diameter of hairlines
+notch_cut#:=24pt#; % maximum breadth above or below notches
+bar#:=37/36pt#; % lowercase bar thickness
+slab#:=37/36pt#; % serif and arm thickness
+cap_bar#:=37/36pt#; % uppercase bar thickness
+cap_band#:=37/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24pt#; % max breadth above/below uppercase notches
+serif_drop#:=7.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.31; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb36.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb36.mf
new file mode 100644
index 00000000000..3b0d173124a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb36.mf
@@ -0,0 +1,82 @@
+%-------------------------------------------------------------
+% This is ETHBSB36.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 36pt#;
+
+u#:=73.6/36pt#; % unit width
+width_adj#:=35.45/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=21.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=972/36pt#; % height of tallest characters
+asc_height#:=900/36pt#; % height of lowercase ascenders
+cap_height#:=889/36pt#; % height of caps
+fig_height#:=835/36pt#; % height of numerals
+%%x_height#:=576/36pt#; % height of lowercase without ascenders
+x_height#:=726/36pt#; % height of lowercase without ascenders
+math_axis#:=324/36pt#; % axis of symmetry for math symbols
+bar_height#:=306/36pt#; % height of crossbar in lowercase e
+comma_depth#:=252/36pt#; % depth of comma below baseline
+desc_depth#:=252/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+%%fine#:=10/36pt#; % diameter of sharply rounded corners
+fine#:=24.65/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=138/36pt#; % lowercase stem breadth
+%%stem#:=128/36pt#; % lowercase stem breadth
+curve#:=141/36pt#; % lowercase curve breadth
+ess#:=120/36pt#; % breadth in middle of lowercase s
+flare#:=139/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=169/36pt#; % diameter of dots
+cap_hair#:=54.5/36pt#; % uppercase hairline breadth
+cap_stem#:=155/36pt#; % uppercase stem breadth
+cap_curve#:=166/36pt#; % uppercase curve breadth
+cap_ess#:=160.9/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.8pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=36/36pt#; % vertical distance from serif base to tangent
+jut#:=90/36pt#; % protrusion of lowercase serifs
+cap_jut#:=125/36pt#; % protrusion of uppercase serifs
+beak_jut#:=33/36pt#; % horizontal protrusion of beak serifs
+beak#:=252/36pt#; % vertical protrusion of beak serifs
+%% vair#:=24.9/36pt#; % vertical diameter of hairlines
+vair#:=39/36pt#; % vertical diameter of hairlines
+notch_cut#:=36pt#; % maximum breadth above or below notches
+bar#:=50/36pt#; % lowercase bar thickness
+slab#:=50/36pt#; % serif and arm thickness
+cap_bar#:=50/36pt#; % uppercase bar thickness
+cap_band#:=50/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=36pt#; % max breadth above/below uppercase notches
+serif_drop#:=10.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=13.6/36pt#; % amount of overshoot for curves
+apex_o#:=10.9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.23; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbsb9.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb9.mf
new file mode 100644
index 00000000000..7c0f01e681e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbsb9.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHBSB9.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBSLB"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=200/36pt#; % height of lowercase without ascenders
+%% x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethbtt10.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethbtt10.mf
new file mode 100644
index 00000000000..0ca550c5d13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethbtt10.mf
@@ -0,0 +1,80 @@
+%-------------------------------------------------------------
+% This is ETHBTT10.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ETHIOBTT"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+%% x_height#:=200/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+%%%% stem#:=25/36pt#; % lowercase stem breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate ethb_drv % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/ethiop/ethiomac.mf b/Master/texmf-dist/fonts/source/public/ethiop/ethiomac.mf
new file mode 100644
index 00000000000..a488b4b8811
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ethiop/ethiomac.mf
@@ -0,0 +1,353 @@
+%-------------------------------------------------------------
+% This is ETHIOPMAC.MF as of Dec, 1995 by Jochen Metzinger
+% originally distributed by Abass B. Alamnehe [February, 1993]
+%-------------------------------------------------------------
+
+%%% THUMB %%%
+
+def t_thumb(suffix @)=
+ pickup fine.nib;
+ x@a=x@s=x@-3.25u; x@b=x@a+.75u; x@c=x@a; x@d=x@a+2u; x@e=x@a+3.25u;
+ x@f=x@a+3.25u; x@g=x@a+1.75u;
+ y@a=y@-.1h+oo; y@b=y@; y@c=y@+.1h-oo;
+ y@d=y@c+oo; y@e=y@c-.025h; y@f=y@a+.05h; y@g=y@a-oo;
+ fill flex(z@a,z@b,z@c) & flex(z@c,z@d,z@e)...flex(z@f,z@g,z@a)
+ & cycle;
+ penlabels(@,@a,@b,@c,@d,@e,@f,@g);
+enddef;
+
+def left_up_thumb(suffix @)=
+ pickup tiny.nib;
+ x@a=x@; y@a=y@;
+ x@b=x@-1.9u; x@c=x@-1.7u; x@d=x@-2.2u; x@e=x@-.5u; x@f=x@-.5u;
+ y@b=y@; y@c=y@+.07h; y@d=y@+.15h; y@e=y@+.14h; y@f=y@;
+ pickup fine.nib;
+ filldraw flex(z@b,z@c,z@d) & flex(z@d,z@e,z@a)
+ & flex(z@a,z@f,z@b) & cycle;
+ pickup fine.nib;
+ labels(x@,@a,@b,@c,@d,@e,@f,@g,@i);
+enddef;
+
+%%% WING %%%
+
+def upper_left_wing(suffix @)=
+ pickup fine.nib; pos@g(vair,90); pos@i(vair,90);
+ x@g=x@; x@i=x@-1.5u; y@g=y@i=y@;
+ filldraw stroke z@g.e--z@i.e;
+ x@a=x@-1.52u; y@a=y@;
+ x@b=x@-3.9u; x@c=x@-3.7u; x@d=x@-4.2u; x@e=x@-2.5u; x@f=x@-2.5u;
+ y@b=y@-oo; y@c=y@+.07h; y@d=y@+.15h; y@e=y@+.14h; y@f=y@-oo;
+ filldraw flex(z@b,z@c,z@d) & flex(z@d,z@e,z@a)
+ & flex(z@a,z@f,z@b) & cycle;
+ labels(x@,@a,@b,@c,@d,@e,@f,@g,@i);
+enddef;
+
+def upper_right_wing(suffix $)=
+ pickup fine.nib; pos$a(vair,90); pos$b(vair,90);
+ x$a=x$; x$b=x$+1.5u; y$a=y$b=y$;
+ filldraw stroke z$a.e--z$b.e;
+ x$g=x$+1.52u; y$g=y$;
+ x$i=x$+3.9u; x$j=x$+3.7u; x$k=x$+4.2u; x$l=x$+2.5u; x$m=x$+2.5u;
+ y$i=y$-oo; y$j=y$+.07h; y$k=y$+.15h; y$l=y$+.14h; y$m=y$-oo;
+ filldraw flex(z$i,z$j,z$k) & flex(z$k,z$l,z$g)
+ & flex(z$g,z$m,z$i) & cycle;
+ labels(x$,$g,$i,$j,$k,$l,$m,$a,$b);
+enddef;
+
+def upside_down_left_wing(suffix @)=
+ pickup tiny.nib;
+ pos@g(bar,90); pos@i(bar,90);
+ x@g=x@; x@i=x@-2u-eps; y@g=y@i=y@;
+ draw z@g--z@i;
+ x@a=x@-2u; y@a=y@; x@b=x@-3.9u; x@c=x@-3.7u;
+ x@d=x@-4.2u; x@e=x@-2.5u; x@f=x@-2.5u;
+ y@b=y@; y@c=y@+.07h; y@d=y@+.15h; y@e=y@+.14h; y@f=y@;
+ pickup fine.nib;
+ filldraw flex(z@b,z@c,z@d) & flex(z@d,z@e,z@a)
+ & flex(z@a,z@f,z@b) & cycle;
+ pickup fine.nib;
+ labels(x@,@a,@b,@c,@d,@e,@f,@g,@i);
+enddef;
+
+def rt_wing(suffix $)(expr x_bar, slope)=
+ pickup fine.nib;
+ x$g=x$; x$:=x$+x_bar;
+ x$a=x$; x$b=x$+2u; x$c=x$+2u; x$d=x$+2u; x$e=x$+2.5u;
+ x$f=x$+.75u; x$h=x$a;
+ y$a=y$+slope; y$b=y$+o+slope; y$c=y$b-.025h; y$d=y$b-.075h;
+ y$e=y$b-.135h-o; y$f=y$b-.15h-o; y$g=y$; y$h=y$a;
+ if x_bar > 0:
+ pos$g(vair,90); pos$h(vair,90);
+ filldraw stroke z$g--z$h;
+ fi
+ filldraw flex(z$a,z$b,z$c) & flex(z$c,z$d,z$e)
+ & flex(z$e,z$f,z$a) & cycle;
+ labels(x$,$a,$b,$c,$d,$e,$f,$g);
+enddef;
+
+def lft_wing(suffix $)(expr x_bar, slope)=
+ pickup fine.nib;
+ x$g=x$; x$:=x$-x_bar;
+ x$a=x$; x$b=x$-2u; x$c=x$-2u; x$d=x$-2u; x$e=x$-2.5u;
+ x$f=x$-.75u; x$h=x$a;
+ y$a=y$-slope; y$b=y$-2slope; y$c=y$b-.025h; y$d=y$b-.075h;
+ y$e=y$b-.135h-o; y$f=y$b-.15h-o; y$g=y$; y$h=y$a;
+ if x_bar > 0:
+ pos$g(vair,90); pos$h(vair,90);
+ filldraw stroke z$g--z$h;
+ fi
+ filldraw flex(z$a,z$b,z$c) & flex(z$c,z$d,z$e)
+ & flex(z$e,z$f,z$a) & cycle;
+ labels(x$,$a,$b,$c,$d,$e,$f,$g);
+enddef;
+
+def right_wing_no_bar(suffix @)=
+ x@a=x@; y@a=y@;
+ x@b=x@-1.9u; x@c=x@-1.7u; x@d=x@-2.2u; x@e=x@-.5u; x@f=x@-.5u;
+ y@b=y@; y@c=y@-.07h; y@d=y@-.15h; y@e=y@-.14h; y@f=y@;
+ pickup fine.nib;
+ filldraw flex(z@b,z@c,z@d) & flex(z@d,z@e,z@a) & flex(z@a,z@f,z@b)
+ & cycle;
+ pickup fine.nib;
+ labels(x@,@a,@b,@c,@d,@e,@f,@g,@i);
+enddef;
+
+def r_wing(suffix $)=
+ pickup fine.nib; x$g=x$; y$g=y$;
+ x$i=x$+2u; x$j=x$+1.75u; x$k=x$+2.5u; x$l=x$+.5u; x$m=x$+.5u;
+ y$i=y$; y$j=y$-.07h; y$k=y$-.15h; y$l=y$-.14h; y$m=y$;
+ filldraw flex(z$i,z$j,z$k) & flex(z$k,z$l,z$g)
+ & flex(z$g,z$m,z$i) & cycle;
+ labels(x$,$g,$i,$j,$k,$l,$m,$a,$b);
+enddef;
+
+def p_wing(suffix $)=
+ pickup fine.nib; x$g=x$; y$g=y$;
+ x$i=x$-1.9u; x$j=x$-1.7u; x$k=x$-2.2u; x$l=x$-.5u; x$m=x$-.5u;
+ y$i=y$; y$j=y$-.07h; y$k=y$-.15h; y$l=y$-.14h; y$m=y$;
+ filldraw flex(z$i,z$j,z$k) & flex(z$k,z$l,z$g)
+ & flex(z$g,z$m,z$i) & cycle;
+ pickup fine.nib;
+ labels(x$,$g,$i,$j,$k,$l,$m,$a,$b);
+enddef;
+
+def t_wing(suffix $)=
+ pickup fine.nib;
+ x$a=x$; x$b=x$c=x$d=x$-2u; x$e=x$-2.5u; x$f=x$-.75u;
+ y$a=y$c=y$; y$b=y$+.025h; y$d=y$-.05h; y$e=y$-.11h-o;
+ y$f=y$-.125h-o;
+ filldraw flex(z$a,z$b,z$c) & flex(z$c,z$d,z$e)
+ & flex(z$e,z$f,z$a) & cycle;
+ labels($,$a,$b,$c,$d,$e,$f);
+enddef;
+
+%%% RING %%%
+
+def half_ring(suffix @) =
+ pickup fine.nib;
+ pos@1(vair,270); penpos@2(stem,360); pos@3(vair,90);
+ pos@4(vair,90); pos@5(vair,270);
+ x@5=x@4=x@+fine; x@1=x@3=x@5+1u; x@2=x@1+2u;
+ y@5=y@1=y@+.5o; y@3=y@4=y@5+.225h; y@2=.5[y@5,y@3];
+ filldraw stroke z@5e..pulled_super_arc.e(@1,@2)(superpull)
+ .. pulled_super_arc.e(@2,@3)(superpull)..z@4e;
+ penlabels(@,@1,@2,@3);
+enddef;
+
+def jj_ring(suffix @) =
+ pickup fine.nib;
+ pos@1(vair,270); pos@2(stem,0); pos@3(vair,90);
+ pos@4(vair,90); pos@5(vair,270);
+ x@5=x@4=x@+fine; x@1=x@3=x@5+.75u; x@2=x@1+1.72u;
+ y@5=y@1=y@+o; y@3=y@4=y@5+.225h; y@2=.5[y@5,y@3];
+ filldraw stroke z@5e...pulled_arc.e(@1,@2)
+ .. pulled_arc.e(@2,@3)...z@4e;
+ penlabels(@,@1,@2,@3);
+enddef;
+
+def large_ring(suffix $)(expr theta) =
+ pickup tiny.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$a=y$b=y$d'=y$+.25h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.2h; y$f=y$;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e..z$f..cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels($,$a,$b,$b',$c,$d,$d',$e,$f);
+enddef;
+
+def rfive_ring(suffix $)(expr theta)=
+ pickup tiny.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$a=y$b=y$d'=y$+.25h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.2h; y$f=y$;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e..z$f..cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def rseven_ring(suffix $)=
+ pickup fine.nib;
+ pos$a(vair,90); penpos$b(stem,180); pos$b'(stem,205);
+ pos$c(vair,270); penpos$d(stem,0); pos$d'(stem,0);
+ x$a=x$+3u; x$b.l=x$+2.25u; x$b'.l=x$+2.5u; x$c=x$+3u; x$d.l=x$+4u;
+ x$d'.l=x$+4u;
+ y$a=y$+.05h; y$b=y$-.05h; y$b'=y$-.25h; y$c=y$-.225h; y$d=y$-.1h;
+ y$d'=y$;
+ filldraw stroke z$a.e{left}...z$b.e..z$b'.e{right}...z$c.e{right}
+ .. z$d.e..z$d'.e..{left}z$a.e;
+ labels(z$a,z$b,z$b',z$c,z$d,z$d');
+enddef;
+
+def dfive_ring(suffix $)(expr theta)=
+ pickup fine.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.5u; x$b=x$b'=x$; x$d=x$d'=x$a+1.75u; x$e=x$f=x$+1.5u;
+ y$b=y$d'=y$+.175h; y$a=y$b+o; y$b'=y$d=y$c=y$-.075h; y$e=y$+.15h;
+ y$f=y$-.025h;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e...z$f...cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def gfive_ring(suffix $)(expr theta,s)=
+ pickup fine.nib;
+ transform t; t=identity slanted (s) rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.5u; x$b=x$b'=x$; x$d=x$d'=x$a+1.75u; x$e=x$f=x$+1.5u;
+ y$b=y$d'=y$+.195h; y$a=y$b+o; y$b'=y$d=y$c=y$-.095h; y$e=y$+.15h;
+ y$f=y$-.025h;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e...z$f...cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def nfour_ring(suffix $)(expr theta,s)=
+ pickup fine.nib;
+ transform t; t=identity slanted (s) rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$b=y$+.175h; y$a=y$b+.025h; y$b'=y$c=y$-.075h; y$e=y$+.15h; y$f=y$-.035h;
+ y$d'=y$+.175h; y$d=y$-.075h;
+ path p, q;
+ p=z$a...z$b..z$b'..z$c..z$d..z$d'...cycle;
+ q=z$e...z$f...cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def lsix_ring(suffix $)(expr theta) =
+ pickup tiny.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$a=y$b=y$d'=y$+.25h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.2h; y$f=y$;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e..z$f..cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def ynseven_ring(suffix $)(expr theta,s)=
+ pickup fine.nib;
+ transform t; t=identity slanted (s) rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$b=y$d'=y$a=y$+.195h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.15h; y$f=y$-.025h;
+ path p, q;
+ p=z$a...z$b..z$b'..z$c..z$d..z$d'...cycle;
+ q=z$e...z$f...cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+def yfive_ring(suffix $)(expr theta)=
+ pickup tiny.nib;
+ transform t; t=identity rotatedaround((.5w,.5h),theta);
+ x$:=x$+.4u; y$:=y$-.125h;
+ x$a=x$c=x$+1.75u; x$b=x$b'=x$; x$d=x$d'=x$a+2u; x$e=x$f=x$+1.75u;
+ y$a=y$b=y$d'=y$+.15h; y$b'=y$d=y$c=y$-.05h; y$e=y$+.125h; y$f=y$-.025h;
+ path p, q;
+ p=z$a..z$b..z$b'..z$c..z$d..z$d'..cycle;
+ q=z$e..z$f..cycle;
+ fill p transformed t;
+ unfill q transformed t;
+ penlabels(z$a,z$b,z$b',z$c,z$d,z$d',z$e,z$f);
+enddef;
+
+%%% ELLIPSE %%%
+
+def rt_half_ellipse(suffix @)(expr x_bar)=
+ pickup fine.nib;
+ x@g=x@; y@:=y@+.015h;
+ x@:=x@+x_bar; x@h=x@; x@a=x@+3.25u; x@b=x@a-u;
+ x@c=x@a-.5u; x@d=x@a-2.5u; x@e=x@; x@f=x@a-2.25u;
+ y@a=y@-.065h; y@b=y@+.05h; y@c=y@+.125h; y@d=y@+.1h; y@e=y@;
+ y@f=y@-.1h; y@g=y@-.015h; y@h=y@;
+ pos@g(vair,90); pos@h(vair,90);
+ if x_bar>0 :
+ filldraw stroke z@g.e--z@h.e;
+ fi
+ fill flex(z@a,z@b,z@c) & flex(z@c,z@d,z@e)...flex(z@e,z@f,z@a) & cycle;
+ penlabels(@,@a,@b,@c,@d,@e,@f,z@g,z@h);
+enddef;
+
+def lft_half_ellipse(suffix @)(expr x_bar)=
+ pickup fine.nib;
+ x@g=x@; y@:=y@-.03h;
+ x@:=x@-x_bar; x@h=x@; x@a=x@-3.25u; x@b=x@a+u; x@c=x@a+.5u; x@d=x@a+2.5u;
+ x@e=x@; x@f=x@a+2.25u;
+ y@a=y@-.125h; y@b=y@-.05h; y@c=y@+.065h; y@d=y@+.1h; y@e=y@; y@f=y@-.1h;
+ y@g=y@+.015h; y@h=y@;
+ pos@g(vair,90); pos@h(vair,90);
+ if x_bar>0 :
+ filldraw stroke z@g.e--z@h.e;
+ fi
+ fill flex(z@a,z@b,z@c) & flex(z@c,z@d,z@e)...flex(z@e,z@f,z@a) & cycle;
+ penlabels(@,@a,@b,@c,@d,@e,@f,z@g,z@h);
+enddef;
+
+%%% DIAGONALS %%%
+
+def top_diagonals(suffix @)=
+ penpos@a(vair,45); penpos@b(vair,-45);
+ penpos@c(vair,45); penpos@d(vair,-45);
+ penpos@e(2stem,45); penpos@f(2stem,-45);
+ z@a.l=z@.l; z@b.r=z@.r;
+ x@c=x@a-1u; y@c=y@a+1u; x@d=x@b+1u; y@d=y@b+1u;
+ x@e=x@c-1.2stem; y@e=y@c+1.2stem; x@f=x@d+1.2stem; y@f=y@d+1.2stem;
+ z@g=.5[z@c,z@e]; z@h=.5[z@d,z@f];
+ z@i=whatever[z@a.r,z@c.r]=whatever[z@b.r,z@d.r];
+ filldraw z@a.l--z@c.l--z@c.r--z@i--z@b.l--
+ z@d.l--z@d.r--z@b.r--z@a.l & cycle;
+ fill z@e.l..controls z@g..z@e.r &
+ z@e.r..{down}z@c.r--z@c.l{left}..z@e.l & cycle;
+ fill z@f.l..controls z@h..z@f.r &
+ z@f.r..{left}z@d.r--z@d.l{up}..z@f.l & cycle;
+enddef;
+
+%%% NO_CHAR %%%
+
+def no_char(expr code) =
+ "undefined character";
+ beginchar(code,9u#,body_height#,paren_depth#);
+ italcorr fig_height#*slant-.5u#; % same as for digits
+ adjust_fit(0,0);
+ fill (0,h)--(w,h)--(w,-d)--(0,-d)--cycle;
+ endchar;
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/ceit.mf b/Master/texmf-dist/fonts/source/public/euro-ce/ceit.mf
new file mode 100644
index 00000000000..45424232f3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/ceit.mf
@@ -0,0 +1,14 @@
+% CEIT.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% ITALIC VARIANTS OF CE MARK
+
+message "CEIT.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="CEIT"; font_size 10pt#;
+u#:=18.4/36pt#; % values of cmti10
+letter_fit#:=9.2/36pt#;
+cap_height#:=246/36pt#;
+x_height#:=155/36pt#;
+o#:=4/36pt#; % smaller than for cmti10
+
+S:=0.25;
+input cemac; % switch to driver file
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/cemac.mf b/Master/texmf-dist/fonts/source/public/euro-ce/cemac.mf
new file mode 100644
index 00000000000..866f28e5c11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/cemac.mf
@@ -0,0 +1,107 @@
+% CEMAC.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% DRIVER FILE TO GENERATE CE MARK
+% FILE SHOULD BE RENAMED WHENEVER IT IS MODIFIED!
+
+message "CEMAC.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+mode_setup;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def draw_CE =
+italcorr 9/10OuterDiameter#*S;
+
+currenttransform:=identity if S<>0: slanted S fi;
+
+pickup pencircle scaled Thickness;
+
+% ---------- Circle segment ----------
+Margin:=3/20OuterDiameter;
+z6=(good.x(Margin+1/2Thickness),1/2h);
+z0=z6 + (good.y(1/2OuterDiameter -1/2Thickness +1/2h) -1/2h, 0);
+forsuffixes $=1,2,4,8,10,11: z$=z6 rotatedaround(z0,($-6)*22.5); endfor;
+
+draw z1{z8-z10}..z2{left}..z4{z6-z2}..z6{down}..z8{z10-z6}..
+ z10{right}..{z2-z4}z11;
+
+extra_pixel:=1;
+z31=(x0+1/20OuterDiameter,y2+pen_top+extra_pixel);
+z32=(x31,y10+pen_bot-extra_pixel);
+z33=(x1+pen_rt+max(pen_top*S,pen_bot*S)+extra_pixel,y32);
+z34=(x33,y31);
+cull currentpicture keeping (1,infinity) withweight 1;
+unfill z31--z32--z33--z34--cycle; % erase excess
+
+penlabels(0,1,2,4,6,8,10,11,31,32,33,34);
+
+% ---------- Bar ----------
+if Bar=1:
+draw z6--z0;
+
+z41=(x0-1/20OuterDiameter,y0+pen_top+extra_pixel);
+z42=(x41,y0+pen_bot-extra_pixel);
+z43=(x0+pen_rt+max(pen_top*S,pen_bot*S)+extra_pixel,y42);
+z44=(x43,y41);
+cull currentpicture keeping (1,infinity) withweight 1;
+unfill z41--z42--z43--z44--cycle; % erase excess
+
+penlabels(41,42,43,44);
+fi;
+
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def makebox(text r) =
+for y=0,1/2h,h: r((y*S,y),(w+y*S,y)); endfor;
+for x=0,Margin,w-Margin,w:
+ if S=0: r((x,0),(x,h));
+ else: for y=0,1/2h,h: r((x+y*S,y-0.01h),(x+y*S,y+0.01h)); endfor; fi;
+endfor;
+if S>0: r((w+charic*pt,3/4h),(w+charic*pt,h+o)); fi;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def outline = % cf. The METAFONTbook, p.244
+cull currentpicture keeping (1,infinity) withweight 1;
+picture v; v:=currentpicture;
+cull currentpicture keeping (1,1) withweight 3;
+addto currentpicture also v
+ -v shifted right -v shifted left -v shifted up -v shifted down;
+cull currentpicture keeping (1,4);
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Generating symbols
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if unknown S: S:=0 fi; % no slanting is default
+
+% ---------- Font dimensions ----------
+font_slant S;
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+
+% ---------- CE marks ----------
+BoxHeight#:=cap_height#;
+OuterDiameter#:=BoxHeight# + 2o#;
+Thickness#:=3/20OuterDiameter#; % prescribed by geometry
+BoxWidth#:=OuterDiameter#-Thickness#; % prescribed by geometry
+define_pixels(OuterDiameter,Thickness,o);
+
+beginchar("C",BoxWidth#,BoxHeight#,0); Bar:=0; draw_CE; endchar;
+beginchar("E",BoxWidth#,BoxHeight#,0); Bar:=1; draw_CE; endchar;
+
+beginchar("c",BoxWidth#,BoxHeight#,0); Bar:=0; draw_CE; outline; endchar;
+beginchar("e",BoxWidth#,BoxHeight#,0); Bar:=1; draw_CE; outline; endchar;
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/cerm.mf b/Master/texmf-dist/fonts/source/public/euro-ce/cerm.mf
new file mode 100644
index 00000000000..5c54bea2763
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/cerm.mf
@@ -0,0 +1,13 @@
+% CERM.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% CE MARK
+
+message "CERM.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="CERM"; font_size 10pt#;
+u#:=20/36pt#; % values of cmr10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+x_height#:=155/36pt#;
+o#:=4/36pt#; % smaller than for cmr10
+
+input cemac; % switch to driver file
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/cesl.mf b/Master/texmf-dist/fonts/source/public/euro-ce/cesl.mf
new file mode 100644
index 00000000000..23dccfcbd0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/cesl.mf
@@ -0,0 +1,14 @@
+% CESL.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% SLANTED VARIANTS OF CE MARK
+
+message "CESL.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="CESL"; font_size 10pt#;
+u#:=20/36pt#; % values of cmsl10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+x_height#:=155/36pt#;
+o#:=4/36pt#; % smaller than for cmsl10
+
+S:=1/6;
+input cemac; % switch to driver file
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/eurobf.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurobf.mf
new file mode 100644
index 00000000000..bc59e976877
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/eurobf.mf
@@ -0,0 +1,15 @@
+% EUROBF.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% BOLDFACE VARIANTS OF EURO SYMBOL
+
+message "EUROBF.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROBF"; font_size 10pt#;
+u#:=23/36pt#; % values of cmbx10
+letter_fit#:=0pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+o#:=4/36pt#;
+
+T:=1.3;
+input euromac; % switch to driver file
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/eurobfit.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurobfit.mf
new file mode 100644
index 00000000000..c5b76eaa073
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/eurobfit.mf
@@ -0,0 +1,15 @@
+% EUROBFIT.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% BOLDFACE ITALIC VARIANTS OF EURO SYMBOL
+
+message "EUROBFIT.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROBFIT"; font_size 10pt#;
+u#:=21.2/36pt#; % values of cmbxti10
+letter_fit#:=11/36pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+o#:=4/36pt#; % slightly smaller than for cmbxti10
+
+T:=1.3; S:=0.25;
+input euromac; % switch to driver file
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/eurobfsl.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurobfsl.mf
new file mode 100644
index 00000000000..c8a055447af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/eurobfsl.mf
@@ -0,0 +1,15 @@
+% EUROBFSL.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% BOLDFACE SLANTED VARIANTS OF EURO SYMBOL
+
+message "EUROBFSL.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROBFSL"; font_size 10pt#;
+u#:=23/36pt#; % values of cmbxsl10
+letter_fit#:=0pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+o#:=4/36pt#;
+
+T:=1.3; S:=1/6;
+input euromac; % switch to driver file
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/euroit.mf b/Master/texmf-dist/fonts/source/public/euro-ce/euroit.mf
new file mode 100644
index 00000000000..83a85acbec2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/euroit.mf
@@ -0,0 +1,15 @@
+% EUROIT.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% ITALIC VARIANTS OF EURO SYMBOL
+
+message "EUROIT.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROIT"; font_size 10pt#;
+u#:=18.4/36pt#; % values of cmti10
+letter_fit#:=9.2/36pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmti10
+
+S:=0.25;
+input euromac; % switch to driver file
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/euromac.mf b/Master/texmf-dist/fonts/source/public/euro-ce/euromac.mf
new file mode 100644
index 00000000000..8ce26b861aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/euromac.mf
@@ -0,0 +1,245 @@
+% EUROMAC.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% DRIVER FILE TO GENERATE EURO SYMBOLS
+% FILE SHOULD BE RENAMED WHENEVER IT IS MODIFIED!
+
+
+message "EUROMAC.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+mode_setup;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def draw_euro =
+
+italcorr 0.85BoxHeight#*S; % height of upper right corner times S
+
+% ---------- Geometrical parameters ----------
+OuterDiameter#:=BoxHeight# + 2o#; % o_correction omitted
+define_pixels(OuterDiameter);
+w#:=(LeftMargin# + 0.99282*WidthFactor(C,T)*C*OuterDiameter#
+ + RightMargin#); % cf. notes to WidthFactor below
+charwd:=w#;
+define_whole_pixels(w);
+
+BarSeparation:=1/12OuterDiameter;
+Thickness:=1/12OuterDiameter*T;
+BarProtrusion:=(5/6cosd40 - 1/2)*OuterDiameter;
+
+% The leftward protrusion of the bars is defined on the basis of the
+% official symbol, for which, measured in the horizontal direction, the
+% left end of the bars is twice as far from the circle center as the lower
+% right end of the beak.
+
+% ---------- Transformation ----------
+currenttransform:=identity if C<>1: xscaled C fi if S<>0: slanted S fi
+ transformed add_transform;
+% The transform add_transform may provide additional transformations,
+% such as reflections and rotations.
+
+% ---------- Pen ----------
+pickup pencircle scaled Thickness;
+
+% ---------- Circle ----------
+Left:=LeftMargin/C + BarProtrusion; % abscissa of circle's leftmost edge
+z1=(Left + 1/2Thickness/C, 1/2h);
+z0=z1 + (good.y(1/2OuterDiameter - 1/2Thickness + 1/2h) - 1/2h, 0);
+forsuffixes $=2,3,4,5,6,7,8: z$=z1 rotatedaround(z0,45*($-1)); endfor;
+
+% To lessen the risk of pimples at the horizontal tangents, the circle's
+% center point z0 is positioned at such a distance from z1 that z3 and z7
+% have "good" y values.
+
+draw z1{down}..z2{down+right}..z3{right}..z4{right+up}..z5{up}..
+ z6{up+left}..z7{left}..z8{left+down}..cycle;
+
+% ---------- Defining beak ----------
+% The beak of the official euro symbol is defined by the point where the
+% radius at 40 degrees from horizontal meets the circle. We rather use
+% the equivalent definition that the median of the circle, i.e., the path
+% traversed by the pen, ends at 42.6717 degrees (z31).
+
+z31=z1 rotatedaround(z0,-180+42.6717);
+z32=(x3,y3-1/2Thickness);
+z33=whatever[z32,z31];
+x33=x31 - OuterDiameter*(0.01780 % so far the official geometry
+ + 0.01780*(T-1) + 0.005*(C-1) - 0.004*S + 0.003*(C-1)*(C-1)
+ + 0.002*(C-1)*(T-1))/C; % cf. notes to WidthFactor below
+
+% ---------- Cross bars ----------
+z40=(round(Left-BarProtrusion),y41+pen_bot);
+z50=(x40,y51+pen_bot);
+extra_pixel_x:=1;
+z41=(x40 + (min(pen_bot*S,pen_top*S) - extra_pixel_x)/C,
+ good.y(y0 + 1/2BarSeparation + 1/2Thickness));
+z42=(x33 + (max(pen_bot*S,pen_top*S) + extra_pixel_x)/C,y41);
+z51=(x41, good.y(y0 - 1/2BarSeparation - 1/2Thickness));
+z52-z42=whatever*(z31-z32); y52=y51;
+
+% The median heights y41 and y51 of the cross bars have "good" values
+% and the abscissae x40 and x50 of the left ends are rounded to integers
+% for the sake of uniformity at low resolution.
+
+draw z41--z42;
+draw z51--z52;
+
+% ---------- Erasing excess ----------
+% One extra pixel is added to be on the safe side. Note that sloped
+% tangents to the pen circle are horizontally displaced from the pen's
+% center by sqrt(1+S**2) times the radius. Instead of the square root,
+% we rely on the more efficient function 1+abs(S), which is equal or
+% larger. We however first normalize the current picture, because
+% regions where bars and circle overlap and possibly some pixels near
+% z1 to z8 have double weight.
+
+cull currentpicture keeping (1,infinity) withweight 1;
+
+extra_pixel_x:=1; extra_pixel_y:=1;
+z61=(x5 + (pen_rt + max(pen_top*S,pen_bot*S) + extra_pixel_x)/C,y7);
+z62=whatever[z32,z31]; y62=y7;
+z63=whatever[z32,z31]; y63=y51+pen_bot-extra_pixel_y;
+z64=(x33,y63);
+z65=(x64,y32);
+z66=(x61,y32);
+unfill z61--z62--z63--z64--z65--z66--cycle;
+
+z71-z40=whatever*(z32-z31); y71=y41+pen_top+extra_pixel_y;
+z72=(x41 + (pen_lft + min(pen_bot*S,pen_top*S) - extra_pixel_x)/C,y71);
+z73=(x72,y74);
+z74-z40=whatever*(z32-z31); y74=y41+pen_bot-extra_pixel_y;
+unfill z71--z72--z73--z74--cycle;
+
+z75-z50=whatever*(z32-z31); y75=y51+pen_top+extra_pixel_y;
+z76=(x72,y75);
+z77=(x72,y78);
+z78-z50=whatever*(z32-z31); y78=y51+pen_bot-extra_pixel_y;
+unfill z75--z76--z77--z78--cycle;
+
+% ---------- Pen labels ----------
+penlabels(0,1,2,3,4,5,6,7,8,31,32,33,40,41,42,50,51,52,
+ 61,62,63,64,65,66,71,72,73,74,75,76,77,78);
+
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def WidthFactor(expr C,T) =
+% The overall width of the official euro symbol, i.e., the horizontal
+% distance between the left end of the bars and the upper outer corner of
+% the beak, amounts to
+% (5/6cosd40 + 1/2sind(2angle(5cosd40,6+5sind40))) = 0.99282
+% times the outer diameter. Transformations while keeping the pen nib
+% invariant as well as changing the thickness displace these end points
+% from their "official" positions. The associated corrections to the
+% width are to sufficient accuracy approximated by the factor
+ (1 - (0.017*(T-1) + 0.051*(C-1) + 0.004*S + 0.068*(C-1)*(T-1))/C)
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def makebox(text r) =
+for y=0,1/2h,h: r((y*S,y),(w+y*S,y)); endfor;
+for x=0,LeftMargin,w-RightMargin,w:
+ if S=0: r((x,0),(x,h));
+ else: for y=0,1/2h,h: r((x+y*S,y-0.01h),(x+y*S,y+0.01h)); endfor; fi;
+endfor;
+if S>0: r((w+charic*pt,3/4h),(w+charic*pt,h+o)); fi;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def outline = % cf. The METAFONTbook, p.244
+cull currentpicture keeping (1,infinity) withweight 1;
+picture v; v:=currentpicture;
+cull currentpicture keeping (1,1) withweight 3;
+addto currentpicture also v
+ -v shifted right -v shifted left -v shifted up -v shifted down;
+cull currentpicture keeping (1,4);
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Generating symbols
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% ---------- Defaults, pixels ----------
+LeftMargin#:=20/36pt#; RightMargin#:=20/36pt#; % universal values
+define_pixels(LeftMargin,RightMargin,o);
+
+if unknown C: C:=1; fi; % no condensing is default
+if unknown S: S:=0; fi; % no slanting is default
+if unknown T: T:=1; fi; % official thickness is default
+
+transform add_transform; def add_transform = identity enddef;
+
+% ---------- Return to calling file? ----------
+% Now generate the font unless you wish to return to the calling file.
+if unknown Return: relax elseif Return=1: endinput; fi;
+
+% ---------- Font dimensions ----------
+font_slant S;
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+
+% ---------- Euro as high as capital C ----------
+BoxHeight#:=cap_height#; % width of box is computed by draw_euro
+
+C:=1;
+"Official euro symbol (cap height)";
+beginchar("E",0,BoxHeight#,0); draw_euro; endchar;
+"Official euro symbol (cap height outline)";
+beginchar("O",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.887; % golden section**(1/4)
+"Demicondensed (cap height)";
+beginchar("D",0,BoxHeight#,0); draw_euro; endchar;
+"Demicondensed (cap height outline)";
+beginchar("N",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.786; % square root of golden section
+"Condensed (cap height)";
+beginchar("F",0,BoxHeight#,0); draw_euro; endchar;
+"Condensed (cap height outline)";
+beginchar("P",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.618; % golden section
+"Double condensed (cap height)";
+beginchar("G",0,BoxHeight#,0); draw_euro; endchar;
+"Double condensed (cap height outline)";
+beginchar("Q",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+% ---------- Euro as high as numerals ----------
+BoxHeight#:=fig_height#;
+
+C:=1;
+"Official euro symbol (fig height)";
+beginchar("e",0,BoxHeight#,0); draw_euro; endchar;
+"Official euro symbol (fig height outline)";
+beginchar("o",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.887; % golden section**(1/4)
+"Demicondensed (fig height)";
+beginchar("d",0,BoxHeight#,0); draw_euro; endchar;
+"Demicondensed (fig height outline)";
+beginchar("n",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.786; % square root of golden section
+"Condensed (fig height)";
+beginchar("f",0,BoxHeight#,0); draw_euro; endchar;
+"Condensed (fig height outline)";
+beginchar("p",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+C:=0.618; % golden section
+"Double condensed (fig height)";
+beginchar("g",0,BoxHeight#,0); draw_euro; endchar;
+"Double condensed (fig height outline)";
+beginchar("q",0,BoxHeight#,0); draw_euro; outline; endchar;
+
+bye
+
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/euroof.mf b/Master/texmf-dist/fonts/source/public/euro-ce/euroof.mf
new file mode 100644
index 00000000000..2fd53118f10
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/euroof.mf
@@ -0,0 +1,36 @@
+% EUROOF.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% OFFICIAL EURO SYMBOL
+
+message "EUROOF.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROOF"; font_size 10pt#;
+u#:=20/36pt#; % values of cmr10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmr10
+
+Return:=1; input euromac; % switch to driver file, but return in time
+
+% ---------- Font dimensions ----------
+font_slant 0;
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+
+% ---------- Generating symbols ----------
+C:=1; S:=0; T:=1;
+
+"Official euro symbol (cap height)";
+BoxHeight#:=cap_height#; % width of box is computed by draw_euro
+beginchar("E",0,BoxHeight#,0); draw_euro; endchar;
+
+"Official euro symbol (fig height)";
+BoxHeight#:=fig_height#;
+beginchar("e",0,BoxHeight#,0); draw_euro; endchar;
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/eurorm.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurorm.mf
new file mode 100644
index 00000000000..c97bd91dacc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/eurorm.mf
@@ -0,0 +1,14 @@
+% EURORM.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% ROMAN VARIANTS OF EURO SYMBOL
+
+message "EURORM.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EURORM"; font_size 10pt#;
+u#:=20/36pt#; % values of cmr10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmr10
+
+input euromac; % switch to driver file
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/eurosl.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurosl.mf
new file mode 100644
index 00000000000..87ed0582314
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/eurosl.mf
@@ -0,0 +1,15 @@
+% EUROSL.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% SLANTED VARIANTS OF EURO SYMBOL
+
+message "EUROSL.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROSL"; font_size 10pt#;
+u#:=20/36pt#; % values of cmsl10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmsl10
+
+S:=1/6;
+input euromac; % switch to driver file
diff --git a/Master/texmf-dist/fonts/source/public/euro-ce/eurosp.mf b/Master/texmf-dist/fonts/source/public/euro-ce/eurosp.mf
new file mode 100644
index 00000000000..4d2f7509712
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euro-ce/eurosp.mf
@@ -0,0 +1,124 @@
+% EUROSP.MF --- version 3.0 (6 March 2002) --- (c) Harold W. de Wijn
+% EXAMPLE FILE FOR SPECIAL EFFECTS
+% FILE SHOULD BE RENAMED WHENEVER IT IS MODIFIED!
+
+message "EUROSP.MF v3.0 (6 March 2002) - (c) Harold W. de Wijn";
+
+font_identifier:="EUROSP"; font_size 10pt#;
+u#:=20/36pt#; % values of cmr10
+letter_fit#:=0pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+o#:=6/36pt#; % slightly smaller than for cmr10
+
+% Switch to the driver file, but return in time to do the specials.
+Return:=1; input euromac;
+
+% ---------- Font dimensions ----------
+font_slant 0; % most symbols are upright
+font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+
+% ---------- Generating symbols ----------
+"Official euro symbol";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=0;
+beginchar("E",0,BoxHeight#,0); draw_euro; endchar;
+
+"Thick";
+BoxHeight#:=cap_height#; C:=1; T:=4/3; S:=0;
+beginchar("a",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very thick";
+BoxHeight#:=cap_height#; C:=1; T:=5/3; S:=0;
+beginchar("b",0,BoxHeight#,0); draw_euro; endchar;
+
+"Thin";
+BoxHeight#:=cap_height#; C:=1; T:=2/3; S:=0;
+beginchar("c",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very thin";
+BoxHeight#:=cap_height#; C:=1; T:=1/3; S:=0;
+beginchar("d",0,BoxHeight#,0); draw_euro; endchar;
+
+"Dunhill";
+BoxHeight#:=351/251*cap_height#;
+% Adjust C and T such that width and thickness equal those of the official
+% euro symbol
+T:=(cap_height#+2o#)/(BoxHeight#+2o#); S:=0;
+C:=T; % first approximation
+C:=T/WidthFactor(C,T); % second approximation
+beginchar("e",0,BoxHeight#,0); draw_euro; endchar;
+
+"Tall";
+BoxHeight#:=2*cap_height#;
+T:=(cap_height#+2o#)/(BoxHeight#+2o#); S:=0;
+C:=T; C:=T/WidthFactor(C,T);
+beginchar("f",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very tall";
+BoxHeight#:=3*cap_height#;
+T:=(cap_height#+2o#)/(BoxHeight#+2o#); S:=0;
+C:=T; C:=T/WidthFactor(C,T);
+beginchar("g",0,BoxHeight#,0); draw_euro; endchar;
+
+"Narrow";
+BoxHeight#:=cap_height#; C:=1/2; T:=1; S:=0;
+beginchar("h",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very narrow";
+BoxHeight#:=cap_height#; C:=1/3; T:=1; S:=0;
+beginchar("i",0,BoxHeight#,0); draw_euro; endchar;
+
+"Wide";
+BoxHeight#:=cap_height#; C:=2; T:=1; S:=0;
+beginchar("j",0,BoxHeight#,0); draw_euro; endchar;
+
+"Very wide";
+BoxHeight#:=cap_height#; C:=3; T:=1; S:=0;
+beginchar("k",0,BoxHeight#,0); draw_euro; endchar;
+
+"Leaning backward";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=-1/6;
+beginchar("l",0,BoxHeight#,0); draw_euro; endchar;
+
+"Leaning forward";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=1/2;
+beginchar("m",0,BoxHeight#,0); draw_euro; endchar;
+
+"Leaning very forward";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=1;
+beginchar("n",0,BoxHeight#,0); draw_euro; endchar;
+
+"Mirrored";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=0;
+begingroup;
+save add_transform;
+def add_transform = identity % w=box width in pixels
+ reflectedabout ((1/2w,0),(1/2w,h)); enddef; % h=box height in pixels
+beginchar("o",0,BoxHeight#,0); draw_euro; endchar;
+endgroup;
+
+"Rotated";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=0;
+begingroup;
+save add_transform;
+def add_transform= identity
+ rotatedabout ((1/2w,1/2h),180); enddef;
+beginchar("p",0,BoxHeight#,0); draw_euro; endchar;
+endgroup;
+
+"Tilted";
+BoxHeight#:=cap_height#; C:=1; T:=1; S:=0;
+begingroup;
+save add_transform;
+def add_transform= identity
+ rotatedabout ((LeftMargin+0.638OuterDiameter,1/2h),5); enddef;
+beginchar("q",0,BoxHeight#,0); draw_euro; endchar;
+endgroup;
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/eurosym/fey.mf b/Master/texmf-dist/fonts/source/public/eurosym/fey.mf
new file mode 100644
index 00000000000..468655d5068
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eurosym/fey.mf
@@ -0,0 +1,289 @@
+% Euro symbol for TeX.
+%
+% History
+% Version 1.4:
+% - correct width
+% Version 1.3:
+% - Licence
+% Version 1.2:
+% - Recieved a gif file containing the official construction of the
+% Euro symbol from Rowland.
+% - Andreas Schwab told me why the checksum mismatches didn't work
+% Unfortunately I couldn't make his patch work so I had to fix
+% this myself although some other things were in there (modes.mf
+% etc.)
+%
+% Version 1.1:
+% - finished sometime on August 1998
+%
+% Design size: 10pt
+
+% Richtmaße (set up in the top level file):
+%scaleunit:= 0.425;
+ % to be able to enlarge, shrink easily
+ % the number here is obtained by comparison with the cmr `C' character.
+
+% this is from c't magazine 11/98, S.211.
+% Some things are guessed from the construction.
+
+%firstunit#:= scaleunit * pt#;
+%overunder#:= 0.4firstunit#;
+
+unit#:= firstunit# + overunder#; % line width is 1:
+radiusaussen#:= 6unit#;
+
+% for adjustment settings at special sizes:
+hintpt:= 0.415106; % hppp bei 1pt @ 300dpi
+% I noticed the following things to be fixed at small hppp's:
+% - 14.4pt @ 300dpi (7pt @ 600dpi): the bars are too thin
+% - 12pt @ 300dpi (6pt @ 600dpi): the bars are too close together
+% - 6pt @ 300dpi: the bars are too thin
+
+def isabout(expr a, b)= (((a/b) < 1.1) and ((a/b) > 0.9)) enddef;
+
+boolean thickenbars;
+boolean spacebars;
+thickenbars:= isabout (hppp, 14.4hintpt) or isabout (hppp, 6hintpt);
+spacebars:= isabout (hppp, 12hintpt);
+
+bold#= if boldamount>0: 0.5 else: 0.0 fi unit#;
+radiusinnen#:= 5unit# - bold#;
+olineo#:= 1.5unit# + bold#;
+olineu#:= 0.5unit#;
+ulineo#:= -0.5unit#;
+ulineu#:= -1.5unit# - bold#;
+
+bigangle= 80;
+
+em#:= 15unit#;
+ex#:= 2radiusaussen# - overunder#;
+
+eurowidth#:= 0.832em#;
+euroheight#:= 1ex#;
+eurodepth#:= overunder#;
+
+if doslant:
+ slant:= 1/6;
+else:
+ slant:= 0;
+fi
+
+font_quad 1em#;
+font_normal_space 1/2em#;
+font_normal_stretch 1/3em#;
+font_normal_shrink 1/4em#;
+font_extra_space 0unit#;
+font_slant slant;
+font_x_height 1ex#;
+font_coding_scheme "U";
+font_identifier "eurosym";
+
+message "hppp=" & str [hppp];
+
+define_pixels (em,ex,unit,
+ radiusinnen,radiusaussen,
+ eurowidth,euroheight,
+ bold,
+ olineu, olineo, ulineu, ulineo, overunder);
+
+pen open, hpen;
+hpen= pencircle scaled 0.03unit;
+if boldamount>0:
+ open= pencircle scaled 0.5unit;
+else:
+ open= pencircle scaled 0.3unit;
+fi
+
+def drawit (expr a) =
+ if dooutline:
+ pickup open;
+ draw(a);
+ else:
+ fill(a);
+ fi
+enddef;
+
+def overdraw (expr a, b, c, d, x, y) =
+ draw ((a shifted ((b-a)*d))--(a shifted ((b-a)*c))) shifted (x,y);
+enddef;
+
+path baro, baru;
+path thepath;
+pair refleft, refright;
+
+beginchar(0,eurowidth#,euroheight#,eurodepth#);
+ "reference euro glyph with wrong bounding box";
+% This is for the designer who wants to see the symbol's construction.
+
+% took some time to see that circles are specified by diameter instead of radius:
+ z0= (1/2em+9/16unit, radiusaussen-overunder);
+ x0:= good.x (x0);
+ y0:= good.y (y0);
+
+ path innerring; innerring= fullcircle scaled 2radiusinnen shifted z0;
+ path outerring; outerring= fullcircle scaled 2radiusaussen shifted z0;
+ % angles start at 3 o'clock, so:
+ numeric bigangleup; bigangleup = 1/2bigangle;
+ numeric bigangledown; bigangledown = - 1/2bigangle;
+ path pa;
+ pa= (z0 shifted (left scaled eurowidth)) -- (z0 shifted (right scaled eurowidth));
+
+ t1= ypart ((z0--(z0 shifted ((dir bigangleup) scaled eurowidth))) intersectiontimes innerring);
+ t2= ypart ((z0--(z0 shifted ((dir bigangledown) scaled eurowidth))) intersectiontimes innerring);
+ t3= ypart ((z0--(z0 shifted (down scaled eurowidth))) intersectiontimes outerring);
+% t14= ypart ((z0--(z0 shifted (right scaled eurowidth))) intersectiontimes outerring);
+ z1= point t1 of innerring;
+ z2= point t2 of innerring;
+ z3= point t3 of outerring;
+% z14= point t14 of outerring; This wasn't right.
+
+ path pb, pc, paoo, pao, pau, pauu;
+ pb= z3--(z3+((z1-z3) scaled 2));
+ pc= z1--(z1 shifted (down scaled euroheight));
+
+ t4= ypart (pb intersectiontimes outerring);
+ t5= ypart (pc intersectiontimes outerring);
+ z4= point t4 of outerring;
+ z5= point t5 of outerring;
+
+ % path innerh;
+ % path outerh;
+ % innerh= subpath (t1, t2) of innerring;
+ % outerh= subpath (t4, t5) of outerring;
+ paoo= pa shifted (0, olineo);
+ pao= pa shifted (0, olineu);
+ pau= pa shifted (0, ulineo);
+ pauu= pa shifted (0, ulineu);
+
+ t6= ypart (paoo intersectiontimes pb);
+ t7= ypart (pao intersectiontimes pb);
+ t8= ypart (pau intersectiontimes pb);
+% t9= ypart (pauu intersectiontimes pb);
+ z6= point t6 of pb;
+ z7= point t7 of pb;
+ z8= point t8 of pb;
+% z9= point t9 of pb; % Better sollution:
+
+% I had problems with straightforward approaches to overcome the problem of
+% bad looking bars with small sizes. The complicated approach works in two
+% steps. a) calculate the intersections with the exact positions of the bars,
+% b) recalculate he end positions of the bars using good.y().
+
+% Step a):
+ z9-z8= z7-z6;
+
+ z11= z0 shifted (-2unit - radiusaussen, olineu);
+ z13= z0 shifted (-2unit - radiusaussen, ulineu);
+ z10-z11= z6-z7;
+ z12-z13= z8-z9;
+
+ t15= ypart ((z6 -- z10) intersectiontimes innerring);
+ t16= ypart ((z7 -- z11) intersectiontimes innerring);
+ t17= ypart ((z8 -- z12) intersectiontimes innerring);
+ t18= ypart ((z9 -- z13) intersectiontimes innerring);
+ t19= ypart ((z6 -- z10) intersectiontimes outerring);
+ t20= ypart ((z7 -- z11) intersectiontimes outerring);
+ t21= ypart ((z8 -- z12) intersectiontimes outerring);
+ t22= ypart ((z9 -- z13) intersectiontimes outerring);
+
+ z15= point t15 of innerring;
+ z16= point t16 of innerring;
+ z17= point t17 of innerring;
+ z18= point t18 of innerring;
+ z19= point t19 of outerring;
+ z20= point t20 of outerring;
+ z21= point t21 of outerring;
+ z22= point t22 of outerring;
+ z23= z0 shifted (-radiusaussen,0);
+
+% Step b):
+ y10:= y19:= y15:= y6:= good.y (y6 if thickenbars or spacebars: +0.5 fi);
+ y11:= y20:= y16:= y7:= good.y (y7 if spacebars: +0.5 fi);
+ y12:= y21:= y17:= y8:= good.y (y8);
+ y13:= y22:= y18:= y9:= y8 + (y7-y6);
+
+% Construct the path. This is more complicated now, too. We use tX for the
+% intersection times /and/ zX for the end points.
+ thepath= (subpath (t1, t15) of innerring --
+ z15 -- z6 -- z7 -- z16 --
+ subpath (t16, t17) of innerring --
+ z17 -- z8 -- z9 -- z18 --
+ subpath (t18, t2) of innerring --
+ z2 -- z5 --
+ subpath (t5, t22) of outerring --
+ z22 -- z13 -- z12 -- z21 --
+ subpath (t21, t20) of outerring --
+ z20 -- z11 -- z10 -- z19 --
+ subpath (t19, t4) of outerring --
+ z4 -- cycle) slanted slant;
+ baro= (z6 -- z7 -- z11 -- z10 -- cycle) slanted slant;
+ baru= (z8 -- z9 -- z13 -- z12 -- cycle) slanted slant;
+ refleft= z13;
+ refright= z4;
+
+ drawit(thepath);
+ penlabels (0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23);
+
+ pickup hpen;
+ overdraw (z0, z1, 1.5, 0, 0, 0);
+ overdraw (z0, z2, 1.5, 0, 0, 0);
+ overdraw (z0, z3, 1.5, -1.5, 0, 0);
+ overdraw (z0, z3, 1.5, -1.5, x13-x3, 0);
+ overdraw (z0, z3, 1.5, -1.5, x12-x3, 0);
+ overdraw (z0, z3, 1.5, -1.5, x23-x3, 0);
+ overdraw (z1, z2, 1.5, 0, 0, 0);
+ overdraw (z3, z1, 1.5, -0.2, 0, 0);
+ overdraw (z3, z1, 1.5, -0.2, x13-x9, 0);
+ overdraw (z3, z1, 1.5, -0.2, x11-x7, 0);
+endchar;
+
+% Now the real symbols, the first one is for design purposes only and
+% could be deleted in the real fonts. I want to use the paths to
+% define the bounding box so Metafont has to calculate them first.
+% But I also want to see the penlabels.
+
+% realwidth was once dependent on the resolution, so checksum mismatches
+% occur. Thanks to Andreas Schwab for telling me the reason for
+% those mismatches. This fixes the problem.
+%
+% A bold correction is added as well. This is more or less a hack,
+% since the width of the Euro symbol character is not necessarily
+% equal to the dimensions of the glyph itself. However, I didn't
+% find any specifications. Until I do, this is the best hack I
+% think.
+%realwidth= (xpart refright-xpart refleft)/hppp;
+realwidth= (2radiusaussen#-10/30bold#) + 0.22unit#;
+pair shift; shift= (xpart (-refleft), 0);
+
+% However, these are the real characters:
+beginchar(" ",realwidth,euroheight#,eurodepth#); "Space";
+ % dunno why. A Space with the dimensions of a Euro symbol
+endchar;
+
+% fill innerh -- reverse outerh -- cycle;
+% fill z10 -- z6 -- z7 -- z11 -- cycle;
+% fill z12 -- z8 -- z9 -- z13 -- cycle;
+
+% The official symbol ``Euro glyph''.
+beginchar("e", realwidth, euroheight#,eurodepth#); "Euro glyph";
+ drawit(thepath shifted shift);
+endchar;
+
+% only the bars for creating symbols with any other font:
+beginchar("A", realwidth, euroheight#,eurodepth#); "Euro glyph bars (normal)";
+ drawit(baro shifted shift);
+ drawit(baru shifted shift);
+endchar;
+
+% same as before but only 80% wide; most of the fonts' C's are less wide
+% than the Euro glyph.
+beginchar("B", realwidth, euroheight#,eurodepth#); "Euro glyph bars (narrow)";
+ drawit(baro shifted shift xscaled 0.8);
+ drawit(baru shifted shift xscaled 0.8);
+endchar;
+
+% same as before but only 110% wide
+beginchar("C", realwidth, euroheight#,eurodepth#); "Euro glyph bars (wide)";
+ drawit(baro shifted shift xscaled 1.2);
+ drawit(baru shifted shift xscaled 1.2);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/eurosym/feybl10.mf b/Master/texmf-dist/fonts/source/public/eurosym/feybl10.mf
new file mode 100644
index 00000000000..2e5eccd0ac4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eurosym/feybl10.mf
@@ -0,0 +1,17 @@
+% Created by makeeurosymbols. Don't edit!
+
+mode_setup;
+
+boolean doslant, dooutline;
+numeric boldamount, dsize;
+
+doslant:= false; dooutline:= true; boldamount:= 2; dsize=10;
+
+font_size 10pt#;
+scaleunit:= 0.425;
+firstunit#:= scaleunit * pt#;
+overunder#:= 0.4 firstunit#;
+
+input fey.mf;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/eurosym/feybo10.mf b/Master/texmf-dist/fonts/source/public/eurosym/feybo10.mf
new file mode 100644
index 00000000000..1be4e6f3218
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eurosym/feybo10.mf
@@ -0,0 +1,17 @@
+% Created by makeeurosymbols. Don't edit!
+
+mode_setup;
+
+boolean doslant, dooutline;
+numeric boldamount, dsize;
+
+doslant:= true; dooutline:= false; boldamount:= 2; dsize=10;
+
+font_size 10pt#;
+scaleunit:= 0.425;
+firstunit#:= scaleunit * pt#;
+overunder#:= 0.4 firstunit#;
+
+input fey.mf;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/eurosym/feybr10.mf b/Master/texmf-dist/fonts/source/public/eurosym/feybr10.mf
new file mode 100644
index 00000000000..1e8838c81a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eurosym/feybr10.mf
@@ -0,0 +1,17 @@
+% Created by makeeurosymbols. Don't edit!
+
+mode_setup;
+
+boolean doslant, dooutline;
+numeric boldamount, dsize;
+
+doslant:= false; dooutline:= false; boldamount:= 2; dsize=10;
+
+font_size 10pt#;
+scaleunit:= 0.425;
+firstunit#:= scaleunit * pt#;
+overunder#:= 0.4 firstunit#;
+
+input fey.mf;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/eurosym/feyml10.mf b/Master/texmf-dist/fonts/source/public/eurosym/feyml10.mf
new file mode 100644
index 00000000000..251194a2389
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eurosym/feyml10.mf
@@ -0,0 +1,17 @@
+% Created by makeeurosymbols. Don't edit!
+
+mode_setup;
+
+boolean doslant, dooutline;
+numeric boldamount, dsize;
+
+doslant:= false; dooutline:= true; boldamount:= 0; dsize=10;
+
+font_size 10pt#;
+scaleunit:= 0.425;
+firstunit#:= scaleunit * pt#;
+overunder#:= 0.4 firstunit#;
+
+input fey.mf;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/eurosym/feymo10.mf b/Master/texmf-dist/fonts/source/public/eurosym/feymo10.mf
new file mode 100644
index 00000000000..67fefa4c442
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eurosym/feymo10.mf
@@ -0,0 +1,17 @@
+% Created by makeeurosymbols. Don't edit!
+
+mode_setup;
+
+boolean doslant, dooutline;
+numeric boldamount, dsize;
+
+doslant:= true; dooutline:= false; boldamount:= 0; dsize=10;
+
+font_size 10pt#;
+scaleunit:= 0.425;
+firstunit#:= scaleunit * pt#;
+overunder#:= 0.4 firstunit#;
+
+input fey.mf;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/eurosym/feymr10.mf b/Master/texmf-dist/fonts/source/public/eurosym/feymr10.mf
new file mode 100644
index 00000000000..06d45f2caed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/eurosym/feymr10.mf
@@ -0,0 +1,17 @@
+% Created by makeeurosymbols. Don't edit!
+
+mode_setup;
+
+boolean doslant, dooutline;
+numeric boldamount, dsize;
+
+doslant:= false; dooutline:= false; boldamount:= 0; dsize=10;
+
+font_size 10pt#;
+scaleunit:= 0.425;
+firstunit#:= scaleunit * pt#;
+overunder#:= 0.4 firstunit#;
+
+input fey.mf;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/euxm/euxm10.mf b/Master/texmf-dist/fonts/source/public/euxm/euxm10.mf
new file mode 100644
index 00000000000..24f8866352a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euxm/euxm10.mf
@@ -0,0 +1,16 @@
+% EUXM10.MF February 1991
+% Like EUSM but with two more characters needed for Concrete Math --- DEK
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Medium 10pt ---------------------------------
+
+ font_identifier := "EUXM";
+
+ ptsize = 10;
+
+ leftside# = 0h#;
+ rightside# = 0h#;
+
+ input eusmch;
+ input euxmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/euxm/euxm5.mf b/Master/texmf-dist/fonts/source/public/euxm/euxm5.mf
new file mode 100644
index 00000000000..aaa7ee951fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euxm/euxm5.mf
@@ -0,0 +1,18 @@
+% EUXM5.MF February 1991
+% Like EUSM but with two more characters needed for Concrete Math --- DEK
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Medium 5pt ---------------------------------
+
+ font_identifier := "EUXM";
+
+ ptsize = 5;
+
+% leftside# = 500h#;
+% rightside# = 500h#;
+ leftside# = rightside# = 300h#; % DEK
+
+ xscale_factor := 1.2; % for AMS version 2.1
+
+ input eusmch;
+ input euxmch;
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/euxm/euxm7.mf b/Master/texmf-dist/fonts/source/public/euxm/euxm7.mf
new file mode 100644
index 00000000000..8a1cb15ade9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euxm/euxm7.mf
@@ -0,0 +1,18 @@
+% EUXM7.MF February 1991
+% Like EUSM but with two more characters needed for Concrete Math --- DEK
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ----- Euler Script Medium 7pt ---------------------------------
+
+ font_identifier := "EUXM";
+
+ ptsize = 7;
+
+ leftside# = 100h#;
+ rightside# = 100h#;
+
+ xscale_factor := 1.13; % for AMS version 2.1
+
+ input eusmch;
+ input euxmch;
+
+ bye
diff --git a/Master/texmf-dist/fonts/source/public/euxm/euxmch.mf b/Master/texmf-dist/fonts/source/public/euxm/euxmch.mf
new file mode 100644
index 00000000000..129acb48f31
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/euxm/euxmch.mf
@@ -0,0 +1,86 @@
+% EUXMCH.MF
+% AMS deleted two characters that I need in Concrete Math; they
+% are resuscitated here -- Don Knuth
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+more_side(0);
+"smlessthanorequal";
+% by DEK, not HZ!
+charbegin( oct"024", 2800h#, (1430+925)*v#, (1430-925)*v#);
+
+n := 0;
+
+numeric a[],b[],alpha[],beta[];
+pair vec[];
+a6=a8=a10=2493; a7=a9=347; .5[b6,b8]=b7; .5[b6,b10]=925; b6-b8=2000;
+b8-b10=b7-b9=860;
+vec1=(a6,b6)-(a7,b7); vec2=(a8,b8)-(a7,b7);
+vec3=unitvector vec1 rotated 90; vec4=unitvector vec2 rotated 90;
+(a2,b2)=(a6,b6)+55vec3; (a3,b3)=(a6,b6)-75vec3;
+(a0,b0)=(a8,b8)-75vec4; (a5,b5)=(a8,b8)+75vec4;
+(a1,b1)=(a6,b6)+75vec3+alpha1*vec1=(a0,b0)+beta1*vec2;
+(a4,b4)=(a3,b3)+alpha2*vec1=(a5,b5)+beta2*vec2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((a0,b0)-- % 0
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)-- % 3
+ (a4,b4)-- % 4
+ (a5,b5)--cycle); % 5
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ (((a10,b10)-75vec4)-- % 0
+ ((a9-60,b9)-75vec4)-- % 1
+ ((a9,b9)+75vec4)-- % 2
+ ((a10,b10)+75vec4)--cycle); % 3
+
+endchar(0);
+
+"smgreaterthanorequal";
+% by DEK, not HZ!
+charbegin( oct"025", 2800h#, (1430+925)*v#, (1430-925)*v#);
+
+n := 0;
+
+numeric a[],b[],alpha[],beta[];
+pair vec[];
+a6=a8=a10=307; a7=a9=2453; .5[b6,b8]=b7; .5[b6,b10]=925; b6-b8=2000;
+b8-b10=b7-b9=860;
+vec1=(a6,b6)-(a7,b7); vec2=(a8,b8)-(a7,b7);
+vec3=unitvector vec1 rotated 90; vec4=unitvector vec2 rotated 90;
+(a2,b2)=(a6,b6)-55vec3; (a3,b3)=(a6,b6)+75vec3;
+(a0,b0)=(a8,b8)+75vec4; (a5,b5)=(a8,b8)-75vec4;
+(a1,b1)=(a6,b6)-75vec3+alpha1*vec1=(a0,b0)+beta1*vec2;
+(a4,b4)=(a3,b3)+alpha2*vec1=(a5,b5)+beta2*vec2;
+
+adj_fill.A() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ ((a0,b0)-- % 0
+ (a1,b1)-- % 1
+ (a2,b2)-- % 2
+ (a3,b3)-- % 3
+ (a4,b4)-- % 4
+ (a5,b5)--cycle); % 5
+
+adj_fill.B() % fixed x points
+ () % fixed y points
+ () % tied points
+ () % verticals
+ () % horizontals
+ (((a10,b10)+75vec4)-- % 0
+ ((a9+60,b9)+75vec4)-- % 1
+ ((a9,b9)-75vec4)-- % 2
+ ((a10,b10)-75vec4)--cycle); % 3
+
+endchar(0);
diff --git a/Master/texmf-dist/fonts/source/public/feyn/feyn.mf b/Master/texmf-dist/fonts/source/public/feyn/feyn.mf
new file mode 100644
index 00000000000..fe748a05fb7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/feyn/feyn.mf
@@ -0,0 +1,274 @@
+% This is the metafont for the feynfont font.
+%
+% When I look at the property list of the generated TFM (using
+% tftopl) it starts with `(FAMILY CMR)': but this isn't in the cmr
+% family. I can't find anything in cmbase.mf which would cause
+% this. Perhaps I need to read the Metafont Book more closely.
+%
+% $Id: feyn.mf,v 1.6 2002/04/18 22:32:10 norman Exp $
+
+
+mode_setup; font_setup;
+
+% a# is the position of the characters above the baseline.
+a# := math_axis#; % math_axis is defined by cmr
+
+% Feyn macros
+input feynmac;
+
+define_pixels (module,bigarrow,littlearrow,blobr,a);
+define_blacker_pixels (linewidth,thinlinewidth);
+
+pickup pencircle scaled linewidth;
+diagram_pen := savepen;
+
+% general definitions
+phangle := 75;
+
+
+% All the character positions between 0 and hex"7F"
+% have characters in them. Not all of these characters are ones
+% which should appear on paper; some (such as `s' or `l') only
+% appear in ligatures, and others shouldn't appear at all. If,
+% however, there are no characters in these positions, some DVI
+% readers (including TFtoPL and OzTeX for example) complain about a
+% `bad TFM file'. These locations are therefore occupied by the
+% character generated by the errorchar macro, which is 0pt wide, and
+% 1module# high. This character doesn't generate any real error,
+% but the glyph will be manifestly peculiar on paper.
+
+
+gfermion (0, -45);
+gfermion (1, 45);
+gfermion (2, 90);
+
+beginchar (3, 0, module#, 0); errorchar (h); endchar;
+
+gboson (4, -45, 1, 0);
+gboson (5, 45, 1, 0);
+gboson (6, 90, 1, 0);
+gboson (7, 90, 0.85, 0);
+gboson (8, 90, 1.7, 1);
+
+for c=hex"09" upto hex"0F":
+ beginchar (c, 0, module#, 0); errorchar (h); endchar;
+endfor
+
+gghost (hex"10", -45);
+gghost (hex"11", 45);
+
+for c=hex"12" upto hex"1F":
+ beginchar (c, 0, module#, 0); errorchar (h); endchar;
+endfor
+
+gbhalfloop (hex"20", 1.3, 9, 0); % small loop
+gbhalfloop (hex"21", 3, 13, 0); % large loop
+
+beginchar (hex"22", 0, module#, 0); errorchar (h); endchar;
+beginchar (hex"23", 0, module#, 0); errorchar (h); endchar;
+beginchar (hex"24", 0, module#, 0); errorchar (h); endchar;
+beginchar (hex"25", 0, module#, 0); errorchar (h); endchar;
+beginchar (hex"26", 0, module#, 0); errorchar (h); endchar;
+beginchar (hex"27", 0, module#, 0); errorchar (h); endchar;
+
+garrow (hex"28", 0, 0);
+garrow (hex"29", 45, 0);
+garrow (hex"2A", 90, 0);
+garrow (hex"2B", 135, 0);
+garrow (hex"2C", 180, 0);
+garrow (hex"2D", 225, 0);
+garrow (hex"2E", 270, 0);
+garrow (hex"2F", 315, 0);
+
+% Digits 0x30--0x39 go here. Obtain these from the cmr source file: romand.mf.
+input romand;
+
+for c=hex"3A" upto hex"5F":
+ beginchar (c, 0, module#, 0); errorchar (h); endchar;
+endfor
+
+beginchar (hex"60", 2module#, 0, 0); "spacer";
+endchar;
+
+garrow ("a", 0, 1); "arrow";
+
+beginchar ("b", module#, 0, 0); "short spacer";
+ % A previous version of this font had this curious construction, without
+ % explanation. I don't know why it was thought necessary. It seems
+ % to result in a hairline being put in this character. Remove it
+ % for the moment.
+ %pickup pencircle scaled 0pt;
+ %draw (0,0) .. (w,0);
+endchar;
+
+beginchar ("c", 2blobr#, blobr# + a#, blobr#); "complete vertex";
+ pen;
+ draw (0,a) .. (w,a) .. cycle;
+endchar;
+
+beginchar ("d", module#/2, 0, 0); "weeny fermion";
+ pen;
+ draw (0,a)..(w,a);
+endchar;
+
+beginchar ("e", module#, 0, 0); "short fermion";
+ pen;
+ draw (0,a)..(w,a);
+endchar;
+
+beginchar ("f", 2module#, 0, 0); "fermion";
+ pen;
+ draw (0,a)..(w,a);
+endchar;
+
+beginchar ("g", 2module#, 0, 0);
+ pen; "gauge boson";
+ def ::(expr b) = {dir b} looselink {dir -b} enddef;
+ z1 = (0,a); z5 = (w,a);
+ z2-z1 = z3-z2 = z4-z3 = z5-z4;
+ draw z1 ::(phangle) z2 ::(-phangle) z3 ::(phangle) z4 ::(-phangle) z5;
+endchar;
+
+beginchar ("h", 2module#, 0, 0); "ghost";
+ pen;
+ z1 = (0,a); z10 = (w,a);
+ z4-z3 = 2(z2-z1);
+ z4-z3 = z6-z5 = z8-z7;
+ z2-z1 = z3-z2 = z5-z4 = z7-z6 = z9-z8 = z10-z9;
+ draw z1..z2; draw z3..z4; draw z5..z6; draw z7..z8; draw z9..z10;
+endchar;
+
+beginchar ("i", module#, 0, 0); "short ghost";
+ pen;
+ z1 = (0,a); z6 = (w,a);
+ z4-z3 = 2(z2-z1);
+ z2-z1 = z3-z2 = 1/2(z4-z3) = z5-z4 = z6-z5;
+ draw z1..z2; draw z3..z4; draw z5..z6;
+endchar;
+
+beginchar ("j", 0, module#, 0); errorchar (h); endchar;
+
+beginchar ("k", module#/2, 0, 0); "weeny massive fermion";
+ pen;
+ y1 - a = y2 - a = a - y3 = a - y4 = module#/3.5;
+ x1 = x3 = 0;
+ x2 = x4 = w;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+
+beginchar ("l", module#, 0, 0); "short massive fermion";
+ pen;
+ y1 - a = y2 - a = a - y3 = a - y4 = module#/3.5;
+ x1 = x3 = 0;
+ x2 = x4 = w;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+
+beginchar ("m", 2module#, 0, 0); "massive fermion";
+ pen;
+ y1 - a = y2 - a = a - y3 = a - y4 = module#/3.5;
+ x1 = x3 = 0;
+ x2 = x4 = w;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+
+beginchar ("n", 4module#, 2module#-a#, 2module#-a#);
+ pen; "fermion loop";
+ z0 = (0,a); z1 = (w,a);
+ draw z0{dir phangle} ..tension 1.15.. {dir -phangle}z1;
+ draw z0{dir -phangle} ..tension 1.15.. {dir phangle}z1;
+endchar;
+
+gbhalfloop ("o", 2, 11, 0); % gauge boson half loop";
+
+beginchar ("p", 2blobr#, blobr# + a#, blobr# - a#);
+ pen; "proper vertex";
+ picture p[];
+ pair t[];
+ fill (-blobr, 0) .. (blobr, 0) .. cycle;
+ p1 := currentpicture; clearit;
+ draw (-blobr, 0) .. (blobr, 0) .. cycle;
+ p2 := currentpicture; clearit;
+ t1 = 5/6[origin, (0,blobr)] shifted (-blobr, 0);
+ t7 = 5/6[origin, (0,blobr)] shifted (+blobr, 0);
+ forsuffixes s = 2,3,4,5,6 :
+ t[s] = t[s-1] shifted (0, -blobr/3);
+ t[s+6] = t[s+5] shifted (0, -blobr/3);
+ endfor
+ forsuffixes s = 1,2,3,4,5,6,7,8,9,10,11,12 :
+ z[s] = t[s] rotated 45;
+ endfor
+ forsuffixes s = 1,2,3,4,5,6 :
+ draw z[s] -- z[s+6];
+ endfor
+ addto currentpicture also p1;
+ cull currentpicture keeping (2,2); % & the two pictures
+ addto currentpicture also p2;
+ currentpicture := currentpicture shifted (blobr,a);
+ labels (range 1 thru 12);
+endchar;
+
+beginchar ("q", 0, module#, 0); errorchar(h); endchar;
+beginchar ("r", 0, module#, 0); errorchar(h); endchar;
+beginchar ("s", 0, module#, 0); errorchar(h); endchar;
+beginchar ("t", 0, module#, 0); errorchar(h); endchar;
+beginchar ("u", 0, module#, 0); errorchar(h); endchar;
+beginchar ("v", 0, module#, 0); errorchar(h); endchar;
+
+gbhalfloop ("w", 2, 11, 1); % "gauge boson (half) loop, inverted";
+
+beginchar ("x", 0, blobr#/sqrt 2 + a# , blobr#/sqrt2 - a#); "counterterm";
+ pen;
+ -x1 = -x2 = x3 = x4;
+ y1 = -y2 = y3 = -y4;
+ z3 = (2blobr/3, 0) rotated 45;
+ draw z1 .. z4;
+ draw z2 .. z3;
+ currentpicture := currentpicture shifted (0,a);
+endchar;
+
+beginchar ("y", 0, module#, 0); errorchar(h); endchar;
+beginchar ("z", 0, module#, 0); errorchar(h); endchar;
+beginchar (hex"7b", 0, module#, 0); errorchar(h); endchar;
+beginchar (hex"7c", 0, module#, 0); errorchar(h); endchar;
+beginchar (hex"7d", 0, module#, 0); errorchar(h); endchar;
+beginchar (hex"7e", 0, module#, 0); errorchar(h); endchar;
+
+beginchar (hex"7F", module#, a#, 0); "space block";
+ pen;
+ draw origin--(w,h);
+ draw (0,h)--(w,0);
+ % nothing
+endchar;
+
+
+% Construct the ligature tables.
+ligtable "f" : % fermion
+ "s" =: hex"65", % short
+ "u" =: hex"01", % up
+ "d" =: hex"00", % down
+ "v" =: hex"02", % vertical
+ "l" =: hex"6e", % loop
+ "0" =: hex"60"; % spacer
+ligtable hex"65" : % short fermion
+ "0" =: hex"62"; % short spacer
+ligtable "m" :
+ "s" =: hex"6c"; % short massive
+ligtable "g" : % gauge boson
+ "l" =: hex"6F", % loop
+ "u" =: hex"05", % up
+ "d" =: hex"04", % down
+ "v" =: hex"06"; % vertical
+ligtable hex"06" : % vertical boson
+ "s" =: hex"07", % short
+ "b" =: hex"08"; % big
+ligtable hex"6F" : % gauge boson loop
+ "u" =: hex"77"; % lower loop
+ligtable "h" : % ghost
+ "s" =: "i", % short
+ "u" =: hex"11", % up
+ "d" =: hex"10"; % down
+
diff --git a/Master/texmf-dist/fonts/source/public/feyn/feyn10.mf b/Master/texmf-dist/fonts/source/public/feyn/feyn10.mf
new file mode 100644
index 00000000000..6c6e926d19b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/feyn/feyn10.mf
@@ -0,0 +1,37 @@
+% Feynman diagram font, 10pt display size.
+%
+% Copyright 1991, 1994, 2001, Norman Gray <norman@astro.gla.ac.uk>
+% $Id: feyn10.mf,v 1.6 2001/08/20 21:40:31 norman Exp $
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% First the base size
+
+module# := 10pt#;
+
+% phfudge is ... what?!
+phfudge# := 0pt#; % must be, for \Diagram macro
+
+linewidth# := 0.75pt#; % pen width
+thinlinewidth# := 0.5pt#; % thin pen
+bigarrow# := 6pt#; % size of arrows
+littlearrow# := 4pt#;
+blobr# := 6.5pt#; % radius of blobs and crosses
+
+% We want the roman digits from the corresponding cmr font, and that's
+% all. Therefore, we don't want to obey the `generate' command in
+% cmr??.mf. To do this, we read in cmbase, and then set generate to
+% gobble its argument.
+def gobble primary g=enddef; % gobbles its argument
+input cmbase; % Read it explicitly, rather than
+ % implicitly within cmr10
+let generate=gobble;
+input cmr10; % ...but miss out the `generate roman'
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% To business....
+
+input feyn;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/feyn/feyn11.mf b/Master/texmf-dist/fonts/source/public/feyn/feyn11.mf
new file mode 100644
index 00000000000..0b49e8988d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/feyn/feyn11.mf
@@ -0,0 +1,37 @@
+% Feynman diagram font, 11pt display size.
+%
+% Copyright 1991, 1994, 2001, Norman Gray <norman@astro.gla.ac.uk>
+% $Id: feyn11.mf,v 1.3 2001/08/20 21:40:31 norman Exp $
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% First the base size
+
+module# := 11pt#;
+
+% phfudge is ... what?!
+phfudge# := 0pt#; % must be, for \Diagram macro
+
+linewidth# := 0.85pt#; % pen width
+thinlinewidth# := 0.55pt#; % thin pen
+bigarrow# := 6.5pt#; % size of arrows
+littlearrow# := 4.5pt#;
+blobr# := 6.5pt#; % radius of blobs and crosses
+
+% We want the roman digits from the corresponding cmr font, and that's
+% all. Therefore, we don't want to obey the `generate' command in
+% cmr??.mf. To do this, we read in cmbase, and then set generate to
+% gobble its argument.
+def gobble primary g=enddef; % gobbles its argument
+input cmbase; % Read it explicitly, rather than
+ % implicitly within cmr10
+let generate=gobble;
+input cmr11; % ...but miss out the `generate roman'
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% To business....
+
+input feyn;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/feyn/feyn12.mf b/Master/texmf-dist/fonts/source/public/feyn/feyn12.mf
new file mode 100644
index 00000000000..38854808ba6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/feyn/feyn12.mf
@@ -0,0 +1,37 @@
+% Feynman diagram font, 12pt display size.
+%
+% Copyright 1991, 1994, 2001, Norman Gray <norman@astro.gla.ac.uk>
+% $Id: feyn12.mf,v 1.4 2001/08/20 21:40:32 norman Exp $
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% First the base size
+
+module# := 12pt#;
+
+% phfudge is ... what?!
+phfudge# := 0pt#; % must be, for \Diagram macro
+
+linewidth# := 0.9pt#; % pen width
+thinlinewidth# := 0.6pt#; % thin pen
+bigarrow# := 7pt#; % size of arrows
+littlearrow# := 5pt#;
+blobr# := 7.5pt#; % radius of blobs and crosses
+
+% We want the roman digits from the corresponding cmr font, and that's
+% all. Therefore, we don't want to obey the `generate' command in
+% cmr??.mf. To do this, we read in cmbase, and then set generate to
+% gobble its argument.
+def gobble primary g=enddef; % gobbles its argument
+input cmbase; % Read it explicitly, rather than
+ % implicitly within cmr10
+let generate=gobble;
+input cmr12; % ...but miss out the `generate roman'
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% To business....
+
+input feyn;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/feyn/feynmac.mf b/Master/texmf-dist/fonts/source/public/feyn/feynmac.mf
new file mode 100644
index 00000000000..568720d99be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/feyn/feynmac.mf
@@ -0,0 +1,188 @@
+% The following macros produce general gauge boson half-loops, and fermions
+% bosons and ghosts at arbitrary angles.
+%
+% They are:
+% def gbhalfloop (expr charno, wid, nopts, inv) =
+% charno character number
+% wid character width in double modules
+% (= length of fermion)
+% nopts number of intermediate points in the loop
+% inv if <> 0, invert the loop
+%
+% def gfermion (expr code, ang) =
+% def gboson (expr code, ang, stretch, taper) =
+% def gghost (expr code, ang) =
+% code character position
+% ang angle anticlockwise from x-axis
+% -90 <= ang <= +90, or all hell will break loose
+% stretch Produces a character which is of length
+% (2module*stretch). We need this so that we can
+% construct a vertical propagator which will
+% mesh smoothly with a photon half-loop.
+% taper When a vertical photon has to join a loop which
+% is raised at its central point, it has to taper
+% to squeeze into the gap.
+
+
+def looselink = ..tension 0.75.. enddef;
+def pen = pickup diagram_pen enddef;
+
+
+numeric nn;
+def dirlooselink(expr point,rtn) =
+ looselink{(-point) rotated (90-rtn)}point enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+def gbhalfloop (expr charno, wid, nopts, inv) =
+ % charno character number
+ % wid character width in double modules (= length of fermion)
+ % nopts number of intermediate points in the loop
+ % inv if <> 0, invert the loop
+ halfwidth# := wid*module# ;
+ define_pixels (halfwidth);
+ if odd (nopts): nn := nopts
+ else: nn := nopts+1
+ fi; % nn is odd
+ if inv <> 0: % invert it
+ beginchar (charno, 0, a#, halfwidth# + phfudge# - a#);
+ else:
+ beginchar (charno, 0, halfwidth# + phfudge# + a#, 0);
+ fi
+ pen; "gauge boson (half) loop";
+ z1 = (-halfwidth,0);
+ z[nn+1] = (halfwidth, 0);
+ for x = 2 upto nn:
+ z[x] = z1 rotated (- (x-1) * 180 / nn);
+ endfor
+ draw z1{dir (180-phangle)}
+ for x = 2 step 2 until nn:
+ dirlooselink(z[x], phangle) dirlooselink(z[x+1], -phangle)
+ endfor
+ looselink {dir (180+phangle)}z[nn+1];
+ if inv <> 0:
+ currentpicture := currentpicture reflectedabout ((0,0),(1,0)); fi
+ currentpicture := currentpicture shifted (0,a); % shift up to axis
+% labels (range 1 thru nn+1);
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The following characters are in boxes the same vertical size as the black
+% bit of the character, but they project out of the top by an amount equal to
+% the height of the math axis, and are that same height clear of the bottom
+% of the box.
+%
+%%%% -90 <= ang <= +90, or all hell will break loose
+
+
+
+def gfermion (expr code, ang) =
+ beginchar (code, 2module#*(cosd ang), 2module#*(abs sind ang), 0);
+ pen;
+ if ang > 0 : % slopes upward
+ draw (0,a) .. (w,h+a);
+ else :
+ draw (0,h+a) .. (w,a);
+ fi
+ endchar;
+enddef;
+
+def gboson (expr code, ang, stretch, taper) =
+ beginchar (code,
+ 2module#*(cosd ang)*stretch, 2module#*(abs sind ang)*stretch, 0);
+ pen;
+ if ang > 0 : % slopes upward
+ z1 = (0,a); z5 = (w,h+a);
+ else :
+ z1 = (0,h+a); z5 = (w,a);
+ fi
+ z2-z1 = z3-z2 = z4-z3 = z5-z4;
+ def ::(expr b) = {dir (ang+b)} looselink {dir (ang-b)} enddef;
+ draw z1 ::(phangle) z2 ::(-phangle) z3 ::(phangle) z4
+ if taper <> 0 : {dir (ang-phangle)} .. tension 1 and 0.8 ..
+ {dir (ang+phangle/2)}
+ else : ::(-phangle)
+ fi
+ z5;
+ endchar;
+enddef;
+
+def gghost (expr code, ang) =
+ beginchar (code, 2module#*(cosd ang), 2module#*(abs sind ang), 0);
+ pen;
+ if ang > 0 : % slopes upward
+ z1 = (0,a); z10 = (w,h+a);
+ else :
+ z1 = (0,h+a); z10 = (w,a);
+ fi
+ z4-z3 = 2(z2-z1);
+ z4-z3 = z6-z5 = z8-z7;
+ z2-z1 = z3-z2 = z5-z4 = z7-z6 = z9-z8 = z10-z9;
+ draw z1..z2; draw z3..z4; draw z5..z6; draw z7..z8; draw z9..z10;
+ endchar;
+enddef;
+
+def garrow (expr code, ang, onaxis) =
+% If onaxis is 1, the arrow will be on the math axis, if 0, it'll be at the
+% origin, and slightly smaller.
+% We need the latter behaviour because \arrow places the arrow in a
+% particular spot in the diagram.
+
+ numeric localarrowsize;
+
+ if onaxis = 1 :
+ localarrowsize := bigarrow;
+ else :
+ localarrowsize := littlearrow;
+ fi
+
+ beginchar (code, 0, 0, 0); "garrow";
+ pair t[];
+ z1 = (localarrowsize, onaxis*a);
+ z4 = (-localarrowsize/4,onaxis*a);
+ z0 = (-localarrowsize/2,onaxis*a);
+ z2 = z0 + (0,localarrowsize/2);
+ z3 = z0 - (0,localarrowsize/2);
+
+ forsuffixes s = 1,2,3,4 :
+ t[s] = z[s] rotated ang;
+ endfor
+
+ fill t4--t2--t1--t3--cycle;
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Error character.
+%
+% The parameter ht is the nominal height of the character.
+def errorchar (expr ht) =
+ begingroup
+ numeric rad,npetals,ilowest;
+ pair cent;
+ cent=(0,2ht/3); % centre of the flower
+ rad=ht/5; % radius of the inner points
+ npetals=5; % number of petals
+ pickup pencircle scaled (thinlinewidth#); % thin line
+ z0 = cent shifted (rad,0);
+ for i=1 upto npetals-1:
+ z[i] = z0 rotatedabout (cent, i*360/npetals);
+ endfor
+ draw z0{dir 0}
+ for i=1 upto npetals-1:
+ .. tension 0.75 ..{dir (i*360/npetals+180)}z[i]{dir (i*360/npetals)}
+ endfor
+ ..{dir 180}z0;
+ ilowest := 0;
+ for i=1 upto npetals-1:
+ if y[i] <= y[ilowest]: ilowest := i; fi
+ endfor
+ draw z[ilowest]{dir (ilowest*360/npetals)}..origin;
+ %draw z[npetals-2]{dir ((npetals-2)*360/npetals)}..origin;
+ draw origin{dir 0}..(rad,rad);
+ draw (rad,rad){dir 180}..origin;
+ endgroup
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/feyn/feyntext10.mf b/Master/texmf-dist/fonts/source/public/feyn/feyntext10.mf
new file mode 100644
index 00000000000..06760cd0a45
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/feyn/feyntext10.mf
@@ -0,0 +1,37 @@
+% Feynman diagram font, 10pt text size.
+%
+% Copyright 1991, 1994, 2001, Norman Gray <norman@astro.gla.ac.uk>
+% $Id: feyntext10.mf,v 1.2 2001/08/20 21:40:32 norman Exp $
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% First the base size
+
+module# := 5pt#;
+
+% phfudge is ... what?!
+phfudge# := 0pt#; % must be, for \Diagram macro
+
+linewidth# := 0.5pt#; % pen width
+thinlinewidth# := 0.4pt#; % thin pen
+bigarrow# := 4pt#; % size of arrows
+littlearrow# := 3pt#;
+blobr# := 3.5pt#; % radius of blobs and crosses
+
+% We want the roman digits from the corresponding cmr font, and that's
+% all. Therefore, we don't want to obey the `generate' command in
+% cmr??.mf. To do this, we read in cmbase, and then set generate to
+% gobble its argument.
+def gobble primary g=enddef; % gobbles its argument
+input cmbase; % Read it explicitly, rather than
+ % implicitly within cmr10
+let generate=gobble;
+input cmr10; % ...but miss out the `generate roman'
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% To business....
+
+input feyn;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/feyn/feyntext11.mf b/Master/texmf-dist/fonts/source/public/feyn/feyntext11.mf
new file mode 100644
index 00000000000..89666d6168e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/feyn/feyntext11.mf
@@ -0,0 +1,37 @@
+% Feynman diagram font, 11pt text size.
+%
+% Copyright 1991, 1994, 2001, Norman Gray <norman@astro.gla.ac.uk>
+% $Id: feyntext11.mf,v 1.2 2001/08/20 21:40:33 norman Exp $
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% First the base size
+
+module# := 5.5pt#;
+
+% phfudge is ... what?!
+phfudge# := 0pt#; % must be, for \Diagram macro
+
+linewidth# := 0.5pt#; % pen width
+thinlinewidth# := 0.4pt#; % thin pen
+bigarrow# := 4.5pt#; % size of arrows
+littlearrow# := 3.5pt#;
+blobr# := 3.5pt#; % radius of blobs and crosses
+
+% We want the roman digits from the corresponding cmr font, and that's
+% all. Therefore, we don't want to obey the `generate' command in
+% cmr??.mf. To do this, we read in cmbase, and then set generate to
+% gobble its argument.
+def gobble primary g=enddef; % gobbles its argument
+input cmbase; % Read it explicitly, rather than
+ % implicitly within cmr10
+let generate=gobble;
+input cmr11; % ...but miss out the `generate roman'
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% To business....
+
+input feyn;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/feyn/feyntext12.mf b/Master/texmf-dist/fonts/source/public/feyn/feyntext12.mf
new file mode 100644
index 00000000000..8df3015ec26
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/feyn/feyntext12.mf
@@ -0,0 +1,37 @@
+% Feynman diagram font, 12pt text size.
+%
+% Copyright 1991, 1994, 2001, Norman Gray <norman@astro.gla.ac.uk>
+% $Id: feyntext12.mf,v 1.3 2002/04/18 22:33:10 norman Exp $
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% First the base size
+
+module# := 6pt#;
+
+% phfudge is ... what?!
+phfudge# := 0pt#; % must be, for \Diagram macro
+
+linewidth# := 0.55pt#; % pen width
+thinlinewidth# := 0.45pt#; % thin pen
+bigarrow# := 5pt#; % size of arrows
+littlearrow# := 4pt#;
+blobr# := 4pt#; % radius of blobs and crosses
+
+% We want the roman digits from the corresponding cmr font, and that's
+% all. Therefore, we don't want to obey the `generate' command in
+% cmr??.mf. To do this, we read in cmbase, and then set generate to
+% gobble its argument.
+def gobble primary g=enddef; % gobbles its argument
+input cmbase; % Read it explicitly, rather than
+ % implicitly within cmr10
+let generate=gobble;
+input cmr12; % ...but miss out the `generate roman'
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% To business....
+
+input feyn;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frca10.mf b/Master/texmf-dist/fonts/source/public/frcursive/frca10.mf
new file mode 100644
index 00000000000..c80c3716798
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frca10.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the regular "academic" variant
+
+font_identifier := "FCA";
+font_size 10 pt#;
+
+mode_setup;
+
+ex# := 155.0/36 pt#;
+med# := 0.4 pt#;
+thin# := 0.2 pt#;
+thick# := 0.6 pt#;
+dot_size# := 0.8 pt#;
+
+base_width := .800;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 3;
+uc_ascend := 3;
+straight_descend := 1;
+loop_descend := 2;
+dot_height := 1.8;
+accent_bot := 1.6;
+accent_top := 2;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcbx10.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcbx10.mf
new file mode 100644
index 00000000000..2bfe39f6de9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcbx10.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the bold extended variant
+
+font_identifier := "FRCBX";
+font_size 10 pt#;
+
+mode_setup;
+
+ex# := 155.0/36 pt#;
+med# := .550 pt#;
+thin# := .200 pt#;
+thick# := .800 pt#;
+dot_size# := 1.250 pt#;
+
+base_width := .900;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcbx11.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcbx11.mf
new file mode 100644
index 00000000000..c9782baaa06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcbx11.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the bold extended variant
+
+font_identifier := "FRCBX";
+font_size 10.95 pt#;
+
+mode_setup;
+
+ex# := 169.725/36 pt#;
+med# := .602 pt#;
+thin# := .219 pt#;
+thick# := .876 pt#;
+dot_size# := 1.368 pt#;
+
+base_width := .886;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcbx12.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcbx12.mf
new file mode 100644
index 00000000000..6fbc0bf2f0d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcbx12.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the bold extended variant
+
+font_identifier := "FRCBX";
+font_size 12 pt#;
+
+mode_setup;
+
+ex# := 186.0/36 pt#;
+med# := .660 pt#;
+thin# := .240 pt#;
+thick# := .960 pt#;
+dot_size# := 1.500 pt#;
+
+base_width := .873;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcbx14.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcbx14.mf
new file mode 100644
index 00000000000..a834dcf76b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcbx14.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the bold extended variant
+
+font_identifier := "FRCBX";
+font_size 14.4 pt#;
+
+mode_setup;
+
+ex# := 223.20/36 pt#;
+med# := .792 pt#;
+thin# := .288 pt#;
+thick# := 1.152 pt#;
+dot_size# := 1.800 pt#;
+
+base_width := .848;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcbx17.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcbx17.mf
new file mode 100644
index 00000000000..6eb839a8006
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcbx17.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the bold extended variant
+
+font_identifier := "FRCBX";
+font_size 17.28 pt#;
+
+mode_setup;
+
+ex# := 267.840/36 pt#;
+med# := .950 pt#;
+thin# := .345 pt#;
+thick# := 1.382 pt#;
+dot_size# := 2.160 pt#;
+
+base_width := .821;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcbx7.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcbx7.mf
new file mode 100644
index 00000000000..0aeca1a64a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcbx7.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the bold extended variant
+
+font_identifier := "FRCBX";
+font_size 7 pt#;
+
+mode_setup;
+
+ex# := 108.5/36 pt#;
+med# := .385 pt#;
+thin# := .140 pt#;
+thick# := .560 pt#;
+dot_size# := .875 pt#;
+
+base_width := .955;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcbx8.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcbx8.mf
new file mode 100644
index 00000000000..083bda741e2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcbx8.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the bold extended variant
+
+font_identifier := "FRCBX";
+font_size 8 pt#;
+
+mode_setup;
+
+ex# := 124.0/36 pt#;
+med# := .440 pt#;
+thin# := .160 pt#;
+thick# := .640 pt#;
+dot_size# := 1.000 pt#;
+
+base_width := .934;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcbx9.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcbx9.mf
new file mode 100644
index 00000000000..43395b75b7b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcbx9.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the bold extended variant
+
+font_identifier := "FRCBX";
+font_size 9 pt#;
+
+mode_setup;
+
+ex# := 139.5/36 pt#;
+med# := .495 pt#;
+thin# := .180 pt#;
+thick# := .720 pt#;
+dot_size# := 1.125 pt#;
+
+base_width := .915;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcc10.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcc10.mf
new file mode 100644
index 00000000000..938d0789924
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcc10.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the calligraphic variant
+
+font_identifier := "FRCC";
+font_size 10 pt#;
+
+mode_setup;
+
+ex# := 155.0/36 pt#;
+med# := .300 pt#;
+thin# := .200 pt#;
+thick# := .800 pt#;
+dot_size# := .800 pt#;
+
+base_width := .800;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcc11.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcc11.mf
new file mode 100644
index 00000000000..4b938130358
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcc11.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the calligraphic variant
+
+font_identifier := "FRCC";
+font_size 10.95 pt#;
+
+mode_setup;
+
+ex# := 169.725/36 pt#;
+med# := .328 pt#;
+thin# := .219 pt#;
+thick# := .876 pt#;
+dot_size# := .876 pt#;
+
+base_width := .788;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcc12.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcc12.mf
new file mode 100644
index 00000000000..f83a3509f5c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcc12.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the calligraphic variant
+
+font_identifier := "FRCC";
+font_size 12 pt#;
+
+mode_setup;
+
+ex# := 186.0/36 pt#;
+med# := .360 pt#;
+thin# := .240 pt#;
+thick# := .960 pt#;
+dot_size# := .960 pt#;
+
+base_width := .776;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcc14.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcc14.mf
new file mode 100644
index 00000000000..3334a61d0aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcc14.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the calligraphic variant
+
+font_identifier := "FRCC";
+font_size 14.4 pt#;
+
+mode_setup;
+
+ex# := 223.20/36 pt#;
+med# := .432 pt#;
+thin# := .288 pt#;
+thick# := 1.152 pt#;
+dot_size# := 1.152 pt#;
+
+base_width := .754;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcf10.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcf10.mf
new file mode 100644
index 00000000000..592b3275295
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcf10.mf
@@ -0,0 +1,36 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the fixed-thickness variant
+
+font_identifier := "FRCF";
+font_size 10 pt#;
+
+mode_setup;
+
+ex# := 155.0/36 pt#;
+med# := .400 pt#;
+thin# := .400 pt#;
+thick# := .400 pt#;
+dot_size# := .800 pt#;
+
+base_width := .800;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+def penstroke text t =
+ begingroup
+ save e; def e = enddef;
+ draw t withpen pencircle scaled med;
+ endgroup
+enddef;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcf11.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcf11.mf
new file mode 100644
index 00000000000..9eb36c80d22
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcf11.mf
@@ -0,0 +1,36 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the fixed-thickness variant
+
+font_identifier := "FRCF";
+font_size 10.95 pt#;
+
+mode_setup;
+
+ex# := 169.725/36 pt#;
+med# := .438 pt#;
+thin# := .438 pt#;
+thick# := .438 pt#;
+dot_size# := .876 pt#;
+
+base_width := .788;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+def penstroke text t =
+ begingroup
+ save e; def e = enddef;
+ draw t withpen pencircle scaled med;
+ endgroup
+enddef;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcf12.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcf12.mf
new file mode 100644
index 00000000000..aca99f89a5b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcf12.mf
@@ -0,0 +1,36 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the fixed-thickness variant
+
+font_identifier := "FRCF";
+font_size 12 pt#;
+
+mode_setup;
+
+ex# := 186.0/36 pt#;
+med# := .480 pt#;
+thin# := .480 pt#;
+thick# := .480 pt#;
+dot_size# := .960 pt#;
+
+base_width := .776;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+def penstroke text t =
+ begingroup
+ save e; def e = enddef;
+ draw t withpen pencircle scaled med;
+ endgroup
+enddef;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcf14.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcf14.mf
new file mode 100644
index 00000000000..aebb69a256d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcf14.mf
@@ -0,0 +1,36 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the fixed-thickness variant
+
+font_identifier := "FRCF";
+font_size 14.4 pt#;
+
+mode_setup;
+
+ex# := 223.20/36 pt#;
+med# := .576 pt#;
+thin# := .576 pt#;
+thick# := .576 pt#;
+dot_size# := 1.152 pt#;
+
+base_width := .754;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+def penstroke text t =
+ begingroup
+ save e; def e = enddef;
+ draw t withpen pencircle scaled med;
+ endgroup
+enddef;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcr10.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcr10.mf
new file mode 100644
index 00000000000..2639c6e6a54
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcr10.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the regular variant
+
+font_identifier := "FRCR";
+font_size 10 pt#;
+
+mode_setup;
+
+ex# := 155.0/36 pt#;
+med# := .400 pt#;
+thin# := .200 pt#;
+thick# := .600 pt#;
+dot_size# := .800 pt#;
+
+base_width := .800;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcr11.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcr11.mf
new file mode 100644
index 00000000000..4c51063ecde
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcr11.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the regular variant
+
+font_identifier := "FRCR";
+font_size 10.95 pt#;
+
+mode_setup;
+
+ex# := 169.725/36 pt#;
+med# := .438 pt#;
+thin# := .219 pt#;
+thick# := .657 pt#;
+dot_size# := .876 pt#;
+
+base_width := .788;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcr12.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcr12.mf
new file mode 100644
index 00000000000..6d7513db266
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcr12.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the regular variant
+
+font_identifier := "FRCR";
+font_size 12 pt#;
+
+mode_setup;
+
+ex# := 186.0/36 pt#;
+med# := .480 pt#;
+thin# := .240 pt#;
+thick# := .720 pt#;
+dot_size# := .960 pt#;
+
+base_width := .776;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcr14.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcr14.mf
new file mode 100644
index 00000000000..beb9ff64c31
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcr14.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the regular variant
+
+font_identifier := "FRCR";
+font_size 14.4 pt#;
+
+mode_setup;
+
+ex# := 223.20/36 pt#;
+med# := .576 pt#;
+thin# := .288 pt#;
+thick# := .864 pt#;
+dot_size# := 1.152 pt#;
+
+base_width := .754;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcr17.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcr17.mf
new file mode 100644
index 00000000000..41527ce7352
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcr17.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the regular variant
+
+font_identifier := "FRCR";
+font_size 17.28 pt#;
+
+mode_setup;
+
+ex# := 267.840/36 pt#;
+med# := .691 pt#;
+thin# := .345 pt#;
+thick# := 1.036 pt#;
+dot_size# := 1.382 pt#;
+
+base_width := .730;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcr7.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcr7.mf
new file mode 100644
index 00000000000..c75eed11dd6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcr7.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the regular variant
+
+font_identifier := "FRCR";
+font_size 7 pt#;
+
+mode_setup;
+
+ex# := 108.5/36 pt#;
+med# := .280 pt#;
+thin# := .140 pt#;
+thick# := .420 pt#;
+dot_size# := .560 pt#;
+
+base_width := .849;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcr8.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcr8.mf
new file mode 100644
index 00000000000..784d1a1baa7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcr8.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the regular variant
+
+font_identifier := "FRCR";
+font_size 8 pt#;
+
+mode_setup;
+
+ex# := 124.0/36 pt#;
+med# := .320 pt#;
+thin# := .160 pt#;
+thick# := .480 pt#;
+dot_size# := .640 pt#;
+
+base_width := .830;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcr9.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcr9.mf
new file mode 100644
index 00000000000..1cb681b6274
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcr9.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the regular variant
+
+font_identifier := "FRCR";
+font_size 9 pt#;
+
+mode_setup;
+
+ex# := 139.5/36 pt#;
+med# := .360 pt#;
+thin# := .180 pt#;
+thick# := .540 pt#;
+dot_size# := .720 pt#;
+
+base_width := .813;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcsl10.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcsl10.mf
new file mode 100644
index 00000000000..e8297b01288
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcsl10.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted variant
+
+font_identifier := "FRCSL";
+font_size 10 pt#;
+
+mode_setup;
+
+ex# := 155.0/36 pt#;
+med# := .400 pt#;
+thin# := .200 pt#;
+thick# := .600 pt#;
+dot_size# := .800 pt#;
+
+base_width := .800;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcsl11.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcsl11.mf
new file mode 100644
index 00000000000..26df67a41ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcsl11.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted variant
+
+font_identifier := "FRCSL";
+font_size 10.95 pt#;
+
+mode_setup;
+
+ex# := 169.725/36 pt#;
+med# := .438 pt#;
+thin# := .219 pt#;
+thick# := .657 pt#;
+dot_size# := .876 pt#;
+
+base_width := .788;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcsl12.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcsl12.mf
new file mode 100644
index 00000000000..b4264aeec7e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcsl12.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted variant
+
+font_identifier := "FRCSL";
+font_size 12 pt#;
+
+mode_setup;
+
+ex# := 186.0/36 pt#;
+med# := .480 pt#;
+thin# := .240 pt#;
+thick# := .720 pt#;
+dot_size# := .960 pt#;
+
+base_width := .776;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcsl14.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcsl14.mf
new file mode 100644
index 00000000000..c1baa5c614e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcsl14.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted variant
+
+font_identifier := "FRCSL";
+font_size 14.4 pt#;
+
+mode_setup;
+
+ex# := 223.20/36 pt#;
+med# := .576 pt#;
+thin# := .288 pt#;
+thick# := .864 pt#;
+dot_size# := 1.152 pt#;
+
+base_width := .754;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcsl17.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcsl17.mf
new file mode 100644
index 00000000000..3b821255628
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcsl17.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted variant
+
+font_identifier := "FRCSL";
+font_size 17.28 pt#;
+
+mode_setup;
+
+ex# := 267.840/36 pt#;
+med# := .691 pt#;
+thin# := .345 pt#;
+thick# := 1.036 pt#;
+dot_size# := 1.382 pt#;
+
+base_width := .730;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcsl7.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcsl7.mf
new file mode 100644
index 00000000000..c813750d649
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcsl7.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted variant
+
+font_identifier := "FRCSL";
+font_size 7 pt#;
+
+mode_setup;
+
+ex# := 108.5/36 pt#;
+med# := .280 pt#;
+thin# := .140 pt#;
+thick# := .420 pt#;
+dot_size# := .560 pt#;
+
+base_width := .849;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcsl8.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcsl8.mf
new file mode 100644
index 00000000000..b8048d2938c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcsl8.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted variant
+
+font_identifier := "FRCSL";
+font_size 8 pt#;
+
+mode_setup;
+
+ex# := 124.0/36 pt#;
+med# := .320 pt#;
+thin# := .160 pt#;
+thick# := .480 pt#;
+dot_size# := .640 pt#;
+
+base_width := .830;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcsl9.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcsl9.mf
new file mode 100644
index 00000000000..df0985639c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcsl9.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted variant
+
+font_identifier := "FRCSL";
+font_size 9 pt#;
+
+mode_setup;
+
+ex# := 139.5/36 pt#;
+med# := .360 pt#;
+thin# := .180 pt#;
+thick# := .540 pt#;
+dot_size# := .720 pt#;
+
+base_width := .813;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcslbx10.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx10.mf
new file mode 100644
index 00000000000..346e50d2f30
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx10.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted bold extended variant
+
+font_identifier := "FRCSLBX";
+font_size 10 pt#;
+
+mode_setup;
+
+ex# := 155.0/36 pt#;
+med# := .550 pt#;
+thin# := .200 pt#;
+thick# := .800 pt#;
+dot_size# := 1.250 pt#;
+
+base_width := .900;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcslbx11.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx11.mf
new file mode 100644
index 00000000000..84405e482e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx11.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted bold extended variant
+
+font_identifier := "FRCSLBX";
+font_size 10.95 pt#;
+
+mode_setup;
+
+ex# := 169.725/36 pt#;
+med# := .602 pt#;
+thin# := .219 pt#;
+thick# := .876 pt#;
+dot_size# := 1.368 pt#;
+
+base_width := .886;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcslbx12.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx12.mf
new file mode 100644
index 00000000000..29dad3732ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx12.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted bold extended variant
+
+font_identifier := "FRCSLBX";
+font_size 12 pt#;
+
+mode_setup;
+
+ex# := 186.0/36 pt#;
+med# := .660 pt#;
+thin# := .240 pt#;
+thick# := .960 pt#;
+dot_size# := 1.500 pt#;
+
+base_width := .873;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcslbx14.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx14.mf
new file mode 100644
index 00000000000..6be48b62e37
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx14.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted bold extended variant
+
+font_identifier := "FRCSLBX";
+font_size 14.4 pt#;
+
+mode_setup;
+
+ex# := 223.20/36 pt#;
+med# := .792 pt#;
+thin# := .288 pt#;
+thick# := 1.152 pt#;
+dot_size# := 1.800 pt#;
+
+base_width := .848;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcslbx17.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx17.mf
new file mode 100644
index 00000000000..061fa88d15d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx17.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted bold extended variant
+
+font_identifier := "FRCSLBX";
+font_size 17.28 pt#;
+
+mode_setup;
+
+ex# := 267.840/36 pt#;
+med# := .950 pt#;
+thin# := .345 pt#;
+thick# := 1.382 pt#;
+dot_size# := 2.160 pt#;
+
+base_width := .821;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcslbx7.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx7.mf
new file mode 100644
index 00000000000..cb34a5f0e4c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx7.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted bold extended variant
+
+font_identifier := "FRCSLBX";
+font_size 7 pt#;
+
+mode_setup;
+
+ex# := 108.5/36 pt#;
+med# := .385 pt#;
+thin# := .140 pt#;
+thick# := .560 pt#;
+dot_size# := .875 pt#;
+
+base_width := .955;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcslbx8.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx8.mf
new file mode 100644
index 00000000000..f1f7e50dca6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx8.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted bold extended variant
+
+font_identifier := "FRCSLBX";
+font_size 8 pt#;
+
+mode_setup;
+
+ex# := 124.0/36 pt#;
+med# := .440 pt#;
+thin# := .160 pt#;
+thick# := .640 pt#;
+dot_size# := 1.000 pt#;
+
+base_width := .934;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcslbx9.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx9.mf
new file mode 100644
index 00000000000..07c79e6ee2f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcslbx9.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the slanted bold extended variant
+
+font_identifier := "FRCSLBX";
+font_size 9 pt#;
+
+mode_setup;
+
+ex# := 139.5/36 pt#;
+med# := .495 pt#;
+thin# := .180 pt#;
+thick# := .720 pt#;
+dot_size# := 1.125 pt#;
+
+base_width := .915;
+slant := 0.3;
+accent_wd := 0.7;
+link_width := 0.13;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcursive.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcursive.mf
new file mode 100644
index 00000000000..fa580ca0b1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcursive.mf
@@ -0,0 +1,2498 @@
+%%%% This is the main source for the French Cursive font.
+%%%% © Emanuel Beffara, 2001--2004. This work is covered by the GPL licence.
+%%%%
+%%%% You can get a pretty-printed document with the commented source code (and
+%%%% especially the first page with an explanation of the parameters) by first
+%%%% running "mft frcursive" to get the TeX source and then compiling the
+%%%% driver file "fcsource.tex" (normally shipped with this source file). This
+%%%% compilation needs the standard 10-pt version (driver "frcr10.mf") to be
+%%%% available. The document is 44 pages long.
+%%%%
+%%\title French Cursive,
+%% a cursive handwriting font in \MF \cr
+%% \fc so you can write like this.
+%%{\parindent=2em \parskip=1ex
+%%
+%% The main difficulty in the design of a good cursive font lies in the fact
+%% that words must appear to be written in a single pen stroke. So words will
+%% actually consist in a succession of letter glyphs and link glyphs, and the
+%% shapes of the links will have to be adapted to the surrounding letters.
+%% Here we fully exploit \MF's ligatures system by letting it insert the link
+%% glyphs automatically between letters.
+%%
+%% In the following definitions, the letter glyphs correspond to the
+%% invariable parts of a letter's shape. For instance, in the glyph of a
+%% letter with a high loop like {\def\fs#1{{\fc\smash#1}} \fs b, \fs f, \fs h,
+%% \fs k, or \fs l}, the stroke starts at the top of the loop because the
+%% initial part depends on the height the previous letter starts at. The link
+%% glyphs are located in the range 128--159, which is thankfully unallocated
+%% in the Latin-1 encoding.
+%%
+%% This file won't generate a font by itself. It is supposed to be read by a
+%% driver file after setting several parameters to control the actual shape of
+%% the font. The required parameters are the following:
+%% \item absolute dimensions: \deflist{%
+%% \\{ex}\SH & the base height (height of small letters like {\fc a})\cr
+%% \\{thin}\SH & the thickness of line ends\cr
+%% \\{med}\SH & the thickness of hairlines\cr
+%% \\{thick}\SH & the thickness of stems\cr
+%% \\{dot\_size}\SH & the diameter of dots\cr}
+%% \item ratios: \deflist{%
+%% \\{base\_width} & base width of the font with respect to \\{ex}\SH{}
+%% (this is the width of an unlinked {\fc a})\cr
+%% \\{slant} & the slant ratio to be applied\cr}
+%% \item widths, relative to \\{base\_width}: \deflist{%
+%% \\{accent\_wd} & base width of accents
+%% (width of acute and grave accents)\cr
+%% \\{link\_width} & half the width of inter-letter links\cr}
+%% \item heights, relative to \\{ex}\SH: \deflist{%
+%% \\{straight\_ascend} & height of ascending bars like {\fc t}\cr
+%% \\{loop\_ascend} & height of ascending loops like {\fc\smash l}\cr
+%% \\{uc\_ascend} & height of uppercase letters\cr
+%% \\{straight\_descend} & depth of descending bars like {\fc\smash p}\cr
+%% \\{loop\_descend} & depth of descending loops like {\fc\smash j}\cr
+%% \\{dot\_height} & height of the dot of {\fc i} and {\fc\smash j}
+%% above the base line\cr
+%% \\{accent\_bot} & height of the bottom of accents\cr
+%% \\{accent\_top} & height of the top of accents\cr
+%% \\{cedilla\_dp} & depth of the {\it top} of the cedilla's loop\cr}
+%%}
+%%%% These are MFT formatting definitions:
+%%% length penpos save_accent make_accented
+%%% length label penlabels range save_letter
+%%% and thru
+%%% end bye
+%%%% We don't want one-line comments to be right-aligned:
+%%\def\9{$\quad{\eightrm\%}}
+%%%% vim: set foldmethod=marker :
+
+%%\sec Global definitions. %{{{1
+
+%% Once all parameters are defined, we can compute the non-sharp values of the
+%% absolute dimensions according to the current mode.
+
+define_pixels(ex);
+define_whole_blacker_pixels(med, thin, thick, dot_size);
+
+%% The \cs\fontdimen\ registers are also computed here. The ones for spacing
+%% are kind of arbitrary, but these values look right.
+
+font_slant slant;
+font_normal_space 3/2 * base_width * ex#;
+font_normal_shrink 1/2 * base_width * ex#;
+font_normal_stretch 1/2 * base_width * ex#;
+font_x_height ex#;
+font_quad 2 * base_width * ex#;
+
+%% The following three constants describe the possible types of links. Low
+%% links are horizontal on the base line. High links are horizontal at height
+%% \\{hl\_y} with respect to \\{ex}\SH:
+
+hl_y := 1/2; % the height of high links
+
+%% Medium links are lower and directed upwards.
+
+ml_y := 1/6; % the height of medium links
+ml_a := 30; % the angle of medium links
+
+%% We take care of slanted shapes by simply applying a global transformation.
+
+currenttransform := currenttransform slanted slant;
+
+%% Some letter shapes have to be saved:
+%% \item a, c, e, n, o, u, y and uppercase letters are normal, they are used
+%% for making accented variants
+%% \item i is dotless, it is kept for making accented versions
+%% \item j is dotless, its shape appears in y, G, J and Y
+%% \item q and s are unlinked on the right (like at the end of words), they
+%% are kept to make linked versions
+%% \item exclamation and interrogation marks are used for the spanish
+%% reversed version
+
+forsuffixes ltr = a,c,e,i,j,n,o,q,s,u,y,A,C,E,I,N,O,U,Y,exclam,interg :
+ picture letter.ltr;
+endfor;
+
+%% The \\{save\_letter} macro saves the picture of a given glyph so that it
+%% can be reused (as explained above). The first argument is a suffix that
+%% represents the letter, the second one is the $x$ coordinate where accents
+%% should be placed (i.e. roughly the middle of the letter).
+
+def save_letter (text ltr) (expr pos) =
+ begingroup save ltr; % c'est nécessaire à cause de `u'
+ letter.ltr := currentpicture;
+ accpos.ltr := pos;
+ width.ltr := w;
+ height.ltr := h;
+ if proofing > 1: proofrule((pos,-d), (pos,h)); fi
+ width#.ltr := charwd; % for the accented version's width
+ height#.ltr := charht; % for the height of accented uppercase letters
+ depth#.ltr := chardp
+ endgroup
+enddef;
+
+%% Most characters have absolute widths of the same form:
+
+def ltr_wd(expr fb, fl) = (fb * base_width + fl * link_width) * ex# enddef;
+def ltr_w(expr fact) = ltr_wd(fact, 1) enddef;
+
+%% And some constants are useful:
+
+lnk := link_width / base_width;
+
+height_with_dot := dot_height * ex# + dot_size# / 2;
+
+ml_d := ml_a - 90; % the stroke angle for medium links
+pair ml_dir; ml_dir := dir ml_a; % and the line's direction
+
+%% And these multiplicative factors are simply everywhere:
+
+def u = scaled ex xscaled base_width enddef;
+def uu = xscaled (base_width * ex)
+ yscaled (uc_ascend * ex) enddef;
+def ua = xscaled (base_width * accent_wd * ex)
+ yscaled ((accent_top - accent_bot) * ex)
+ shifted (0, accent_bot * ex) enddef;
+v := base_width * ex;
+
+%% For proof-mode, we define the following macro to mark all useful
+%% information.
+
+def label(expr n) =
+ if proofing > 1:
+ penlabels(range 1 thru n);
+ if h > ex: proofrule((0, ex), (w, ex)); fi
+ fi
+enddef;
+
+%% Hinting...
+
+def goodx expr e =
+ begingroup save x, y; (x,y) = e; (good.x x, y) endgroup enddef;
+
+def goodxy expr e =
+ begingroup save x, y; (x,y) = e; (good.x x, good.y y) endgroup enddef;
+
+pickup pencircle scaled thick; thickpen := savepen;
+pickup pencircle scaled med; medpen := savepen;
+pickup pencircle scaled thin; thinpen := savepen;
+
+
+
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %%
+
+%%\sec Lowercase letters. %{{{1
+
+a_left := 1/3; % the height of the left end of small loops
+
+"The letter a";
+beginchar("a", ltr_w(7/6), ex#, 0);
+ penpos1(med, 0); x1r = hround (base_width * ex); y1 = 2/3 ex;
+ penpos2(med, 90); z2r = (3/5, 1) u;
+ penpos3(thick, 180); z3r = (0, a_left) u;
+ penpos4(med, 270); z4r = (1/2, 0) u;
+ penpos5(med, 0); x5 = x1; y5 = 1/3 ex;
+
+ penstroke z1e .. z2e .. tension 1.2 .. z3e .. z4e{right} .. z5e ;
+
+ penpos6(thick, 195); z6 = z1 + (1/10, 2/9) u;
+ penpos7(thick, 180); z7r = z1l;
+ penpos8(thick, 180); z8r = z5l;
+ penpos9(med, 270); z9r = (7/6 + lnk, 0) u;
+
+ penstroke z6e .. z7e .. tension 2 .. z8e .. {right}z9e ;
+
+ label(9);
+
+ save_letter(a)(x2);
+endchar;
+
+"The letter b";
+beginchar("b", ltr_w(1), loop_ascend * ex#, 0);
+ penpos2(med, 330); z2 = goodx (3/4, 2/3 * loop_ascend) u ;
+ penpos3(med, 100); z3r = (4/10, loop_ascend) u ;
+ penpos4(thick, 180); z4r = goodx (0, 3/5 * loop_ascend) u ;
+ penpos5(thick, 180); x5 = x4; y5 = ex ;
+ penpos6(med, 260); z6r = (1/2, 0) u ;
+ penpos7(med, 0); z7 = (v, y10l);
+ penpos8(thin, 135); z8 = z7l + (-1, 1) * ex / 6 ;
+ penpos9(med, 270); z9l = z7l ;
+ penpos10(med, 270); z10 = (1 + lnk, hl_y) u;
+
+ penstroke z2e{up} .. tension 1.2 .. z3e
+ .. controls (x4e,y3e) and (x4e,2/3[y3e,y4e]) .. z4e
+ .. z5e{down} .. z6e .. {up}z7e .. z8e .. {right}z9e .. {right}z10e
+ ;
+
+ label(10);
+endchar ;
+
+"The letter c";
+beginchar("c", ltr_w(1), ex#, 0);
+ penpos1(med, 30); z1r = (1, 3/4) u;
+ penpos2(med, 90); z2r = (3/5, 1) u;
+ penpos3(thick, 180); z3r = (0, a_left) u;
+ penpos4(med, 270); z4r = (1/2, 0) u;
+ penpos5(med, ml_d); z5 = (1 + lnk, ml_y) u;
+
+ penstroke z1e .. z2e .. tension 1.2 .. z3e .. z4e{right} .. {ml_dir}z5e ;
+
+ label(5);
+
+ save_letter(c)(3/5 v);
+endchar ;
+
+"The letter d";
+beginchar("d", ltr_w(7/6), straight_ascend * ex#, 0);
+ penpos1(med, 0); x1r = hround (base_width * ex); y1 = 2/3 ex;
+ penpos2(med, 90); z2r = (3/5, 1) u;
+ penpos3(thick, 180); z3r = (0, a_left) u;
+ penpos4(med, 270); z4r = (1/2, 0) u;
+ penpos5(med, 0); z5r = (1, 1/3) u;
+
+ penstroke z1e .. z2e .. tension 1.2 .. z3e .. z4e{right} .. z5e ;
+
+ penpos6(thick, 170); x6r = x1l; y6 = straight_ascend * ex;
+ penpos7(thick, 180); x7r = x1l; y7 = 2/3 * straight_ascend * ex;
+ penpos8(thick, 180); x8r = x7r; y8 = y5;
+ penpos9(med, 270); z9r = (7/6 + lnk, 0) u;
+
+ penstroke z6e .. {down}z7e .. {down}z8e .. {right}z9e ;
+
+ label(9);
+endchar;
+
+"The letter e";
+beginchar("e", ltr_w(1), ex#, 0);
+ penpos1(med, 270); z1 = (thin, 1/2 * ex) ;
+ penpos2(med, 270); z2 = (1/2, 1/2) u;
+ penpos3(med, 0); z3r = (1, 3/4) u;
+ penpos4(med, 90); z4r = (3/5, 1) u;
+ penpos5(thick, 180); z5r = (0, a_left) u;
+ penpos6(med, 270); z6r = (1/2, 0) u;
+ penpos7(med, ml_d); z7 = (1 + lnk, ml_y) u;
+
+ penstroke z1e .. z2e{right} .. tension 1.2 .. {up}z3e
+ .. z4e .. tension 1.2 .. z5e .. z6e{right} .. {ml_dir}z7e ;
+
+ label(7);
+
+ save_letter(e)(3/5 v);
+endchar ;
+
+"The letter f";
+beginchar("f", ltr_w(5/6), loop_ascend * ex#, loop_descend * ex#);
+ penpos2(med, 330); z2 = goodx (3/4, 2/3 * loop_ascend) u ;
+ penpos3(med, 100); z3r = (4/10, loop_ascend) u ;
+ penpos4(thick, 180); z4r = (0, 3/5 * loop_ascend) u ;
+ penpos5(thick, 180); z5r = (0, -1/3 * loop_descend) u ;
+ penpos6(med, 270); z6r = (4/10, - loop_descend) u ;
+ penpos7(med, 0); z7r = goodx (8/9, -2/5 * loop_descend) u ;
+ penpos8(med, 25); z8 = (2/3, 1/6) u ;
+ penpos9(thin, 135); z9 = z8 + (-2, 1) * ex / 9 ;
+ penpos10(med, 270); z10r = (2/3, 0) u ;
+ penpos11(med, ml_d); z11 = (5/6 + lnk, ml_y) u;
+
+ penstroke z2e{up} .. tension 1.2 .. z3e
+ .. controls (x4e,y3e) and (x4e,2/3[y3e,y4e]) .. z4e .. z5e
+ .. controls (x5e,2/3[y6e,y5e]) and (x5e,y6e) .. z6e .. tension 1.2
+ .. z7e {up} .. z8e {z9-z7} .. tension 1.1
+ .. {dir 225} z9e .. tension 1.1
+ .. {right}z10e .. {ml_dir}z11e ;
+
+ label(11);
+endchar ;
+
+"The letter g";
+beginchar("g", ltr_w(9/8), ex#, loop_descend * ex#);
+ penpos1(med, 0); x1r = hround (base_width * ex); y1 = 2/3 ex;
+ penpos2(med, 90); z2r = (3/5, 1) u;
+ penpos3(thick, 180); z3r = (0, a_left) u;
+ penpos4(med, 270); z4r = goodx (1/2, 0) u;
+ penpos5(med, 0); x5r = x1r; y5 = 1/3 ex;
+
+ penstroke z1e .. z2e .. tension 1.2 .. z3e .. z4e .. z5e ;
+
+ penpos6(thick, 190); z6 = z1 + (1/10, 2/9) u;
+ penpos7(thick, 180); z7r = z1l;
+ penpos8(thick, 180); x8r = x5l; y8 = -1/3 * loop_descend * ex;
+ penpos9(med, 90); x9 = x4; y9l = vround (-loop_descend * ex);
+ penpos10(med, 315); z10l = (1/4, -1/3 * loop_descend) u;
+ penpos11(med, ml_d); z11 = (9/8 + lnk, ml_y) u;
+
+ penstroke z6e .. z7e{down} .. {down}z8e .. tension 1.1
+ .. z9e .. z10e .. {ml_dir}z11e ;
+
+ label(11);
+endchar;
+
+"The letter h";
+beginchar("h", ltr_w(1), loop_ascend * ex#, 0);
+ penpos2(med, 330); z2 = goodx (3/4, 2/3 * loop_ascend) u ;
+ penpos3(med, 100); z3r = (4/10, loop_ascend) u ;
+ penpos4(thick, 180); z4r = goodx (0, 3/5 * loop_ascend) u ;
+ penpos5(thick, 180); z5r = (0, 0) u ;
+
+ penstroke z2e{up} .. tension 1.2 .. z3e
+ .. controls (x4e,y3e) and (x4e,2/3[y3e,y4e]) .. z4e .. z5e ;
+
+ penpos6(thick, 0); z6l = (0, 1/3) u;
+ penpos7(med, 270); z7l = (0.55, 1) u;
+ penpos8(thick, 180); x8l = hround (base_width * ex); y8 = 1/2 ex;
+ penpos9(med, 270); z9r = (1 + lnk, 0) u;
+
+ penstroke z6e{up} .. tension 1.4 .. z7e %.. tension 1.1
+ .. {down}z8e .. {right}z9e;
+
+ label(9);
+endchar;
+
+"The letter i";
+beginchar("i", ltr_w(1/2), height_with_dot, 0);
+ penpos1(thick, 180); x1r = hround (base_width * ex / 6); y1 = ex;
+ penpos2(thick, 180); x2r = x1r; y2r = 2/3 ex;
+ penpos3(med, 270); z3r = (1/2 + lnk, 0) u;
+
+ penstroke z1e -- z2e{down} .. {right}z3e;
+
+ save_letter(i)(x1);
+ height.i := ex; height#.i := ex#; % the letter is saved without the dot
+
+ pickup pencircle scaled thick;
+ x4 = x1; y4 = dot_height * ex;
+ pickup pencircle scaled dot_size;
+ drawdot z4;
+
+ label(4);
+endchar;
+
+"The letter j";
+beginchar("j", ltr_w(7/8), ex#, loop_descend * ex#);
+ penpos1(thick, 180); z1 = good.lft ((3/4, 1) u);
+ penpos2(thick, 180); x2 = x1; y2 = -1/3 loop_descend * ex;
+ penpos3(med, 90); x3 = x1/3; y3l = vround (-loop_descend * ex);
+ penpos4(med, 315); z4 = (0, -1/3 * loop_descend) u;
+ penpos5(med, ml_d); z5 = (7/8 + lnk, ml_y) u;
+
+ penstroke z1e{down} .. {down}z2e .. tension 1.1 .. z3e .. z4e .. {ml_dir}z5e;
+
+ save_letter(j)(x1);
+
+ pickup pencircle scaled thick;
+ x6 = x1; y6 = dot_height * ex;
+ pickup pencircle scaled dot_size;
+ drawdot z6;
+
+ label(6);
+endchar;
+
+"The letter k";
+beginchar("k", ltr_w(5/6), loop_ascend * ex#, 0);
+ penpos2(med, 330); z2 = goodx (3/4, 2/3 * loop_ascend) u ;
+ penpos3(med, 100); z3r = (4/10, loop_ascend) u ;
+ penpos4(thick, 180); z4r = (0, 3/5 * loop_ascend) u ;
+ penpos5(thick, 180); z5r = (0, 0) u ;
+
+ penstroke z2e{up} .. tension 1.2 .. z3e
+ .. controls (x4e,y3e) and (x4e,2/3[y3e,y4e]) .. z4e .. z5e ;
+
+ penpos6(med, 270); z6 = (thick, 13/16 * ex);
+ penpos7(med, 180); z7l = goodx (8/9, 9/16) u;
+ penpos8(med, 90); z8 = (1/8, 2/5) u;
+
+ penstroke z6e{dir 60} .. {down}z7e .. tension 1.3 .. {dir 140}z8e;
+
+ penpos9 (med, 270); z9 = z8;
+ penpos10(med, 270); z10r = (5/6 + lnk, 0) u;
+
+ penstroke z9e{dir 10} .. tension 0.8 ..{right}z10e;
+
+ label(11);
+endchar;
+
+"The letter l";
+beginchar("l", ltr_w(2/3), loop_ascend * ex#, 0);
+ penpos2(med, 330); z2 = goodx (3/4, 2/3 * loop_ascend) u;
+ penpos3(med, 100); z3r = (4/10, loop_ascend) u;
+ penpos4(thick, 180); z4r = (0, 3/5 * loop_ascend) u;
+ penpos5(thick, 180); z5r = (0, 1) u;
+ penpos6(med, 260); z6r = (1/2, 0) u;
+ penpos7(med, ml_d); z7 = (2/3 + lnk, ml_y) u;
+
+ penstroke z2e{up} .. tension 1.2 .. z3e
+ .. controls (x4e,y3e) and (x4e,2/3[y3e,y4e]) .. z4e -- z5e
+ .. controls (x5e,1/2[y5e,y6e]) and (x5e,y6e) .. z6e .. {ml_dir}z7e ;
+
+ label(7);
+endchar ;
+
+"The letter m";
+beginchar("m", ltr_w(13/6), ex#, 0);
+ pickup thickpen;
+ penpos1(med, 270); z1l = (1/3, 1) u;
+ penpos2(thick, 180); z2 = good.lft ((2/3, 1/3) u);
+ penpos3(thick, 180); x3 = x2; y3 = 0;
+
+ penstroke z1e{right} .. {down}z2e -- z3e;
+
+ penpos4(thick, 0); z4 = z2;
+ penpos5(med, 270); z5l = (1, 1) u;
+ penpos6(thick, 180); z6 = good.lft ((4/3, 1/3) u);
+ penpos7(thick, 180); x7 = x6; y7 = 0;
+
+ penstroke z4e{up} .. {right}z5e .. {down}z6e -- z7e;
+
+ penpos8 (thick, 0); z8 = z6;
+ penpos9 (med, 270); z9l = (5/3, 1) u;
+ penpos10(thick, 180); x10 - x6 = x6 - x2; y10 = 2/5 ex;
+ penpos11(med, 270); z11r = (13/6 + lnk, 0) u;
+
+ penstroke z8e{up} .. {right}z9e .. {down}z10e .. {right}z11e;
+
+ label(11);
+endchar;
+
+"The letter n";
+beginchar("n", ltr_w(3/2), ex#, 0);
+ pickup thickpen;
+ penpos1(med, 270); z1l = (1/3, 1) u;
+ penpos2(thick, 180); z2 = good.lft ((2/3, 1/3) u);
+ penpos3(thick, 180); z3 = (2/3, 0) u;
+
+ penstroke z1e{right} .. {down}z2e -- z3e;
+
+ penpos4(thick, 0); z4 = z2;
+ penpos5(med, 270); z5l = (1, 1) u;
+ penpos6(thick, 180); z6 = good.lft ((4/3, 2/5) u);
+ penpos7(med, 270); z7r = (3/2 + lnk, 0) u;
+
+ penstroke z4e{up} .. {right}z5e .. {down}z6e .. {right} z7e;
+
+ label(7);
+
+ save_letter(n)(x2);
+endchar;
+
+"The letter o";
+beginchar("o", ltr_w(9/8), ex#, 0);
+ penpos1(med, 330); z1r = (1, 7/10) u;
+ penpos2(med, 90); z2r = (1/2, 1) u;
+ penpos3(thick, 180); z3r = (0, a_left) u;
+ penpos4(med, 270); z4r = (3/5, 0) u;
+ penpos5(med, 0); z5r = (9/8, 1/2) u;
+ penpos6(med, 60); z6 = (7/8, 8/10) u;
+ penpos7(med, 220); z7 = (5/8, 3/5) u;
+ penpos8(med, 270); z8 = (9/8 + lnk, hl_y) u;
+
+ penstroke z1e .. z2e .. tension 1.1 .. z3e .. z4e
+ .. {up}z5e .. {dir 150}z6e .. {dir 310}z7e .. {right}z8e;
+
+ label(8);
+
+ save_letter(o)(1/2[x3r,x5r]);
+endchar ;
+
+"The letter p";
+beginchar("p", ltr_w(7/4), ex#, straight_descend * ex#);
+ pickup thickpen;
+ penpos1(thick, 180); z1 = good.lft ((3/4, 1) u);
+ penpos2(thick, 180); x2 = x1; y2 = vround (-straight_descend * ex);
+
+ penstroke z1e -- z2e;
+
+ penpos3(med, 0); z3r = (x1l, 0);
+ penpos4(med, 270); z4l = (5/4, 1) u;
+ penpos5(thick, 180);
+ penpos6(med, 270); z6r = (7/4 + lnk, 0) u;
+ z5 = good.lft ((1/2[x4,x6], 1/2 * ex));
+
+ penstroke z3e{up} .. tension 1.2 .. {right}z4e .. z5e .. {right}z6e;
+
+ label(6);
+endchar;
+
+"The letter q with no link";
+beginchar(150, ltr_w(1), ex#, straight_descend * ex#);
+ penpos1(med, 0); x1r = hround (base_width * ex); y1 = 2/3 ex;
+ penpos2(med, 90); z2r = (3/5, 1) u;
+ penpos3(thick, 180); z3r = (0, a_left) u;
+ penpos4(med, 270); z4r = (1/2, 0) u;
+ penpos5(med, 0); x5 = x1; y5 = 1/3 ex;
+
+ penstroke z1e .. z2e .. tension 1.2 .. z3e .. z4e{right} .. z5e ;
+
+ penpos6(thick, 195); z6 = z1 + (1/10, 2/9) u;
+ penpos7(thick, 180); z7r = z1l;
+ penpos8(thick, 180); x8r = x5l; y8 = vround (-straight_descend * ex);
+
+ penstroke z6e .. z7e --- z8e;
+
+ letter.q := currentpicture; % We keep the glyph for the linked version.
+
+ label(8);
+endchar;
+
+"The letter q with a right link";
+beginchar("q", ltr_w(7/6), ex#, straight_descend * ex#)
+ addto currentpicture also letter.q;
+ penpos0(med, 0); x0r = hround (base_width * ex); y0 = 1/3 ex;
+ penpos1(thick, 180); z1r = z0l;
+ penpos2(med, 270); z2r = (7/6 + lnk, 0) u;
+ penstroke z1e{down} .. {right}z2e;
+ label(2);
+endchar;
+
+
+"The letter r";
+beginchar("r", ltr_w(5/4), 6/5 ex#, 0);
+ penpos1(med, 0); z1l = (1/6, 1) u;
+ penpos2(med, 90); z2r = z1l + (-1/3,1)/5 u;
+ penpos3(med, 270); z3l = z1l;
+ penpos4(med, 220); %z4l = (1, 1) u;
+ %z4l = (x5l,y3l);
+ z4r = (x5r,y3r);
+ penpos5(thick, 180); z5l = (9/8, 2/5) u;
+ penpos6(med, 270); z6r = (5/4 + lnk, 0) u;
+
+ penstroke z1e{up} .. z2e .. z3e .. tension 1.4 .. z4e
+ .. tension 1.3 .. {down}z5e .. {right}z6e;
+
+ label(6);
+endchar;
+
+"The letter s with no link";
+beginchar(154, ltr_w(13/12), 7/6 ex#, 0);
+ penpos0(thick, 0); z0r = (3/4, 1) u;
+ penpos1(med, 0); z1l = z0l;
+ penpos2(med, 90); z2r = z1l + (0, 1/6) u;
+ penpos3(med, 210); z3l = z1l;
+ penpos4(thick, 180); z4l = (5/4, 1/3) u;
+ penpos5(med, 90); z5l = (5/8, 0) u;
+ penpos6(med, 300); z6 = (1/2, 2/5) u;
+
+ penstroke z1e{dir 60} .. z2e .. z3e{dir 315} .. tension 1.2 .. z4e
+ .. {left}z5e .. {dir 30}z6e;
+
+ letter.s := currentpicture; % Same trick as for the q.
+
+ label(6);
+endchar;
+
+"The letter s with a right link";
+beginchar("s", ltr_w(5/4), 7/6 ex#, 0);
+ addto currentpicture also letter.s;
+ penpos1(med, 180); z1l = (5/4, 1/3) u;
+ penpos2(med, 270); z2r = (5/4 + lnk, 0) u;
+ penstroke z1e .. {right}z2e;
+ label(2);
+endchar;
+
+"The letter t";
+beginchar("t", ltr_w(7/8), straight_ascend * ex#, 0);
+ penpos1(thick, 180); z1r = goodx (1/6, straight_ascend) u;
+ penpos2(thick, 180); z2r = goodx (1/6, 2/3) u;
+ penpos3(med, 270); z3r = (2/3, 0) u;
+ penpos4(med, ml_d); z4 = (7/8 + lnk, ml_y) u;
+
+ penstroke z1e -- z2e{down} .. {right}z3e .. {ml_dir}z4e;
+
+ penpos5(med, 270); z5l = goodxy (1/6 * v + med, 2/3 * straight_ascend * ex);
+ penpos6(med, 270); z6l = goodxy (1, 2/3 * straight_ascend) u;
+
+ penstroke z5e -- z6e;
+
+ label(6);
+endchar;
+
+"The letter u";
+beginchar("u", ltr_w(4/3), ex#, 0);
+ penpos1(thick, 180); z1r = goodx (1/6, 1) u;
+ penpos2(thick, 180); x2 = x1 ; y2 = 1/2 ex;
+ penpos3(med, 270); x3 = 1/2[x2,x4]; y3r = 0;
+ pickup thickpen;
+ penpos4(thick, 0); z4 = good.lft ((7/6, 1/2) u);
+ penpos5(thick, 0); x5 = x4 ; y5 = ex ;
+
+ penstroke z1e -- z2e{down} .. {right}z3e .. {up}z4e -- z5e;
+
+ penpos6(thick, 180); z6 = z4;
+ penpos7(med, 270); z7r = (4/3 + lnk, 0) u;
+
+ penstroke z6e{down}.. {right}z7e;
+
+ label(7);
+
+ save_letter(u)(1/2[x1,x5]);
+endchar;
+
+"The letter v";
+beginchar("v", ltr_w(10/6), ex#, 0);
+ pickup thickpen;
+ penpos1(med, 270); z1l = (1/3, 1) u;
+ penpos2(thick, 180); z2 = good.lft ((1/2, 1/2) u);
+ penpos3(med, 270); z3r = (1, 0) u;
+ penpos4(med, 0); z4 = goodx (3/2, 5/8) u;
+ penpos5(med, 150); z5r = (7/6, 15/16) u;
+ penpos6(med, 270); z6 = (10/6 + lnk, hl_y) u;
+
+ penstroke z1e{right} .. tension 1.2
+ .. {down} z2e .. {right}z3e .. {up}z4e
+ .. tension 0.8 .. {dir 240}z5e .. {right}z6e;
+
+ label(6);
+endchar;
+
+"The letter w";
+beginchar("w", ltr_w(13/6), ex#, 0);
+ pickup thickpen;
+ penpos1(med, 270); z1l = (1/3, 1) u;
+ penpos2(thick, 180); z2 = good.lft ((1/2, 1/2) u);
+ penpos3(med, 270); z3r = (7/8, 0) u;
+ penpos5(thick, 180); z5 = good.lft ((9/8, 7/8) u);
+ penpos4(med, 0); z4l = z5r;
+
+ penstroke z1e{right} .. tension 1.2 .. {down}z2e
+ .. {right}z3e .. tension 1.3 .. {up}z4e;
+
+ penpos6(med, 270); z6r = (13/8, 0) u;
+ penpos7(med, 0); z7 = goodx (2, 5/8) u;
+ penpos8(med, 150); z8r = (5/3, 15/16) u;
+ penpos9(med, 270); z9 = (13/6 + lnk, hl_y) u;
+
+ penstroke z5e{down} .. tension 1.3 .. {right}z6e
+ .. {up}z7e .. tension 0.8 .. {dir 240}z8e .. {right}z9e;
+
+ label(9);
+endchar;
+
+"The letter x";
+beginchar("x", ltr_w(8/5), ex#, 0);
+ penpos0(med, 300); z0 = (-1/5, 5/6) u;
+ penpos1(med, 270); z1l = (1/3, 1) u;
+ penpos2(thick, 180); z2 = (4/5, 1/2) u;
+ penpos3(med, 90); z3l = (1/3, 0) u;
+ penpos4(med, 45); z4 = (0, 1/8) u;
+
+ penstroke z1e{right} .. {dir 270}z2e .. {left}z3e .. {dir 135}z4e;
+
+ penpos5(med, 45); z2 = 1/2 [z4, z5];
+ penpos6(med, 270); z2 = 1/2 [z1, z6];
+ penpos7(med, ml_d); z7 = (8/5 + lnk, ml_y) u;
+
+ penstroke z5e{dir 135} .. {dir 270}z2e .. {right}z6e .. {ml_dir}z7e;
+
+ label(7);
+endchar;
+
+"The letter y";
+beginchar("y", width#.j + (3v/2 - accpos.j + lnk) / ex * ex#,
+ ex#, loop_descend * ex#);
+ pickup thickpen;
+ penpos1(med, 270); z1l = (1/3, 1) u;
+ penpos2(thick, 180); z2 = good.lft ((1/2, 1/2) u);
+ penpos3(med, 270); z3r = (1/2[x2,x4], 0);
+ penpos4(med, 0); z4l = z5r;
+ penpos5(thick, 180); z5 = (3/2, 1) u;
+ penstroke z1e{right} .. {down}z2e .. {right}z3e .. {up}z4e;
+
+ addto currentpicture also letter.j shifted (x5 - accpos.j, 0);
+
+ label(4);
+
+ save_letter(y)(x3);
+endchar;
+
+"The letter z";
+beginchar("z", ltr_w(11/6), 6/5 * ex#, loop_descend * ex#);
+ penpos1(med, 0); z1l = (1/6, 1) u;
+ penpos2(med, 90); z2r = z1l + (-1/3,1)/5 u;
+ penpos3(med, 270); z3l = z1l;
+ penpos4(thick, 210); z4l = (9/8, 1) u;
+ penpos5(med, 135); z5 = (2/3, 0) u;
+
+ penstroke z1e{up} .. z2e .. z3e .. z4e .. {dir 225}z5e;
+
+ penpos6(med, 315); z6 = z5;
+ penpos7(thick, 220); z7 = (5/4, 1/5) u;
+ penpos8(thick, 155); z8 = (7/4, -4/9 * loop_descend) u;
+ penpos9(med, 90); z9l = (1, -loop_descend) u;
+ penpos10(med, 315); z10 = (7/8, -1/3 * loop_descend) u;
+ penpos11(med, ml_d); z11 = (11/6 + lnk, ml_y) u;
+
+ penstroke z6e{dir 45} .. z7e .. z8e .. tension 1.3
+ .. z9e .. z10e .. tension 1.4 .. {ml_dir}z11e;
+
+ label(8);
+endchar;
+
+
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %%
+
+%%\sec Uppercase letters. %{{{1
+
+hgt := uc_ascend * ex#;
+
+%% The small loop at the beginning of H, I, J and K is the same.
+
+picture small_loop;
+
+
+"The letter A";
+beginchar("A", ltr_wd(3,0), hgt, 0);
+
+%% The left bar:
+
+ penpos1(thin, 0); z1 = (3/5, 2/9) uu;
+ penpos2(med, 90); z2l = (2/5, 1/3) uu;
+ penpos3(med, 180); z3r = (0, 1/6) uu;
+ penpos4(med, 280); z4r = (2/5, 0) uu;
+ penpos5(med, 0); z5 = (7/6, 1/2) uu;
+ penpos6(med, 320); z6 = (3/2, 1) uu;
+
+ penstroke z1e .. {left}z2e .. z3e
+ .. z4e .. {up}z5e .. z6e;
+
+%% The right bar:
+
+ penpos7(med, 145); z7 = z6;
+ penpos8(thick, 180); z8l = (3/2, 5/12) uu;
+ penpos9(med, 270); z9r = (6/3, 0) uu;
+ penpos10(med, 0); z10r = (3, 1/3) uu;
+ penpos11(med, 90); z11 = (5/2, 2/3) uu;
+ penpos12(thin, 240); z12 = (17/8, 1/3) uu;
+
+ penstroke z7e .. z8e{down} .. z9e .. z10e
+ .. tension 1.2 .. {left}z11e .. {dir 290}z12e;
+
+%% The horizontal bar:
+
+ penpos13(thin, 330); z13 = (7/8, 6/12) uu;
+ penpos14(med, 270); z14 = (13/8, 1/2) uu;
+ penpos15(thin, 0); z15 = (11/6, 4/6) uu;
+
+ penstroke z13e{dir 105} .. {right}z14e .. {dir 110}z15e;
+
+ label(15);
+
+ save_letter(A)(x6l);
+endchar;
+
+
+"The letter B";
+beginchar("B", ltr_wd(5/2,0), hgt, 0);
+
+%% The vertical bar:
+
+ penpos1(med, 135); z1 = (1, 1) uu;
+ penpos2(thick, 180); z2 = (1, 2/5) uu;
+ penpos3(med, 90); z3l = (3/5, 0) uu;
+ penpos4(med, 330); z4l = (1/5, 1/6) uu;
+
+ penstroke z1e{dir 255} .. z2e .. {left}z3e .. z4e;
+
+%% The two loops:
+
+ penpos5(thin, 180); z5 = (3/5, 3/5) uu;
+ penpos6(med, 90); z6 = (3/10, 1/3) uu;
+ penpos7(med, 0); z7l = (0, 3/5) uu;
+ penpos8(med, 270); z8l = (1, 1) uu;
+ penpos9(thick, 180); z9 = (2, 7/9) uu;
+ penpos10(med, 345); z10 = (9/8, 3/5) uu;
+ penpos11(thick, 180); z11l = (5/2, 2/9) uu;
+ penpos12(med, 90); z12l = (7/4, 0) uu;
+ penpos13(med, 0); z13 = (5/4, 1/6) uu;
+ penpos14(thin, 340); z14 = (3/2, 3/10) uu;
+
+ penstroke z5e{down} .. tension 1.2 .. z6e .. tension 1.3 .. {up}z7e
+ .. {right}z8e .. {down}z9e .. tension 1.4 .. {up}z10e .. tension 1.5
+ .. {down}z11e .. {left}z12e .. tension 1.0 .. z13e .. z14e;
+
+ label(14);
+endchar;
+
+
+"The letter C";
+beginchar("C", ltr_wd(2,0), hgt, 0);
+ penpos1(thin, 180); z1 = (2/5, 1) uu;
+ penpos2(med, 180); z2r = (0, 2/3) uu;
+ penpos3(med, 270); z3 = (1, 1/2) uu;
+ penpos4(med, 0); z4r = (2, 5/6) uu;
+ penpos5(med, 90); z5r = (8/5, 1) uu;
+ penpos6(thick, 180); z6r = (2/5, 2/5) uu;
+ penpos7(med, 270); z7r = (4/3, 0) uu;
+ penpos8(med, 0); z8 = (9/5, 1/4) u;
+ penpos9(thin, 130); z9 = (7/5, 1/3) uu;
+
+ penstroke z1e .. {down}z2e .. z3e .. z4e .. z5e
+ .. {down}z6e .. z7e .. z8e .. z9e;
+
+ label(9);
+
+ save_letter(C)(x7);
+endchar;
+
+
+"The letter D";
+beginchar("D", ltr_wd(13/6,0), hgt, 0);
+ penpos1(thin, 180); z1 = (4/3, 1) uu;
+ penpos2(thick, 180); z2 = (1, 1/2) uu;
+ penpos3(med, 90); z3l = (1/3, 0) uu;
+ penpos4(med, 0); z4l = (0, 1/6) uu;
+ penpos5(med, 270); z5 = (4/5, 1/6) uu;
+ penpos6(med, 270); z6r = (3/2, 0) uu;
+ penpos7(thick, 0); z7r = (13/6, 1/3) uu;
+ penpos8(med, 90); z8r = (6/7, 1) uu;
+ penpos9(med, 180); z9r = (0, 3/4) uu;
+ penpos10(thin, 240); z10 = (2/5, 1/2) uu;
+ penpos11(thin, 0); z11 = (2/3, 2/3) uu;
+
+ penstroke z1e .. z2e .. z3e .. z4e{up} .. z5e
+ .. z6e .. z7e .. z8e .. z9e .. z10e .. {up}z11e;
+
+ label(11);
+endchar;
+
+
+"The letter E";
+beginchar("E", ltr_wd(2,0), hgt, 0);
+ penpos1(thin, 180); z1 = (1/3, 1) uu;
+ penpos2(med, 270); z2 = (1/5, 3/4) uu;
+ penpos3(med, 0); z3 = (8/5, 7/8) uu;
+ penpos4(med, 90); z4r = (4/3, 1) uu;
+ penpos5(thick, 180); z5 = (2/3, 7/10) uu;
+ penpos6(thin, 270); z6l = (4/3, 12/20) uu;
+
+ penstroke z1e .. z2e .. tension 1.3 .. z3e .. z4e .. z5e .. {right}z6e;
+
+ penpos7(med, 90); z7r = z6l;
+ penpos8(thick, 180); z8r = (1/6, 1/6) uu;
+ penpos9(med, 270); z9r = (1, 0) uu;
+ penpos10(med, 0); z10r = (2, 1/4) uu;
+ penpos11(thin, 130); z11 = (7/6, 1/4) uu;
+
+ penstroke z7e{left} .. z8e .. z9e .. z10e{up} .. z11e;
+
+ label(11);
+
+ save_letter(E)(1/2[x3,x5]);
+endchar;
+
+
+"The letter F";
+beginchar("F", ltr_wd(9/4,0), hgt, 0);
+
+%% The vertical bar:
+
+ penpos1(thin, 135); z1 = (6/4, 1) uu;
+ penpos2(thick, 180); z2 = (5/4, 1/2) uu;
+ penpos3(med, 90); z3l = (2/3, 0) uu;
+ penpos4(thin, 330); z4 = (1/3, 1/6) uu;
+
+ penstroke z1e .. {down}z2e .. z3e .. z4e;
+
+%% The upper horizontal bar:
+
+ penpos5(thin, 180); z5 = (3/4, 2/3) uu;
+ penpos6(med, 90); z6 = (1/2, 1/3) uu;
+ penpos7(med, 0); z7l = (0, 1/2) uu;
+ penpos8(med, 270); z8l = (4/5, 1) uu;
+ penpos9(med, 270); z9 = (2, 5/6) uu;
+ penpos10(thin, 90); z10r = (2, 1) uu;
+
+ penstroke z5e .. tension 1.2 .. z6e .. z7e
+ .. tension 1.2 .. z8e{right} .. {right}z9e .. z10e;
+
+%% The middle bar:
+
+ penpos11(med, 270); z11 = z2r - (1/10, 0) uu;
+ penpos12(med, 270); z12 = z2r + (2/3, 0) uu;
+ penpos13(med, 110); z13 = z2r + (2/3, 1/12) uu;
+ penpos14(thin, 180); z14 = z2r + (1/2, -1/6) uu;
+
+ penstroke z11e .. z12e{right} .. z13e .. {down}z14e;
+
+ label(14);
+endchar;
+
+
+"The letter G";
+beginchar("G", ltr_wd(2,1), hgt, loop_descend * ex#);
+ penpos1(thin, 180); z1 = (1/2, 1) uu;
+ penpos2(med, 200); z2r = (0, 2/3) uu;
+ penpos3(med, 0); z3r = (2, 5/6) uu;
+ penpos4(med, 90); z4r = (5/3, 1) uu;
+ penpos5(thick, 180); z5r = (1/3, 1/3) uu;
+ penpos6(med, 270); z6r = (1, 0) uu;
+ penpos7(thick, 0); z7r = (15/8, 1) u;
+
+ penstroke z1e .. {down}z2e .. tension 1.2 .. z3e .. z4e
+ .. tension 1.2 .. z5e .. z6e .. {up}z7e;
+
+ addto currentpicture also letter.j shifted (9/8 * v, 0);
+
+ label(7);
+endchar;
+
+
+"The letter H";
+beginchar("H", ltr_wd(5/2,0), hgt, 0);
+
+%% The loop before the vertical bar:
+
+ penpos1(thin, 270); z1l = (0, 7/12) uu;
+ penpos2(med, 20); z2 = (1/6, 1) uu;
+ penpos3(med, 250); z3l = (1/10, 29/30) uu;
+ penpos4(thick, 0); z4 = (1, 1) uu;
+
+ penstroke z1e .. {dir 110}z2e .. {dir 340}z3e .. z4e;
+
+ small_loop := currentpicture;
+
+%% The letter's shape:
+
+ penpos5(thick, 180); z5 = z4;
+ penpos6(thick, 180); z6 = (1, 1/3) uu;
+ penpos7(med, 90); z7l = (1/2, 0) uu;
+ penpos8(med, 0); z8l = (0, 1/6) uu;
+ penpos9(med, 315); z9 = (5/4, 1/2) uu;
+ penpos10(med, 0); z9 = 1/2[z8, z10];
+ penpos11(med, 90); z9 = 1/2[z7, z11];
+ penpos12(thick, 180); z9 = 1/2[z6, z12];
+ penpos13(thick, 180); z13 = (3/2, 1/3) uu;
+ penpos14(med, 270); z14r = (2, 0) uu;
+ penpos15(thin, 90); z15 = (2, 1/3) uu;
+
+ penstroke z5e .. z6e .. z7e .. z8e .. z9e .. z10e .. z11e .. z12e .. z13e
+ .. z14e .. {dir 190}z15e;
+
+%% The small vertical bar in the middle:
+
+ penpos16(thin, 180); z16 = z9 + (0, 1/8) uu;
+ penpos17(thin, 180); z9 = 1/2[z16, z17];
+
+ penstroke z16e .. z17e;
+
+ label(18);
+endchar;
+
+
+"The letter I";
+beginchar("I", ltr_wd(1,0) + thick#/2, hgt, 0);
+
+ addto currentpicture also small_loop;
+
+ penpos1(thick, 180); z1 = (1, 1) uu;
+ penpos2(thick, 180); z2 = (1, 1/3) uu;
+ penpos3(med, 90); z3l = (3/5, 0) uu;
+ penpos4(med, 0); z4l = (0, 1/6) uu;
+ penpos5(thin, 270); z5 = (1/3, 1/3) uu;
+
+ penstroke z1e .. {down}z2e .. z3e .. z4e .. {right}z5e;
+
+ label(5);
+
+ save_letter(I)(x3);
+endchar;
+
+
+"The letter J";
+beginchar("J", ltr_wd(9/8,1) + thick#/2, hgt, loop_descend * ex#);
+ addto currentpicture also small_loop;
+ addto currentpicture also letter.j shifted (1/4 v + thick/2, 0);
+
+ penpos1(thick, 180); z1 = (1, 1) uu;
+ penpos2(thick, 180); z2 = (1, 0) uu;
+
+ penstroke z1e .. z2e;
+
+ label(2);
+endchar;
+
+
+"The letter K";
+beginchar("K", ltr_wd(7/3,0), hgt, 0);
+
+%% We get back the I's vertical bar:
+
+ addto currentpicture also letter.I;
+
+%% And we add the oblique bars:
+
+ penpos1(thin, 0); z1r = (7/3, 9/10) uu;
+ penpos2(med, 90); z2r = (2, 1) uu;
+ penpos3(thick, 180); z3 = 1/2[z2, z4];
+ penpos4(med, 90); z4 = (7/6, 5/12) uu;
+ penpos5(med, 0); z5 = (5/6, 11/24) uu;
+ penpos6(med, 270); z6 = (7/6, 1/2) uu;
+ penpos7(thick, 180); z7 = 1/2[z6, z8];
+ penpos8(med, 290); z8r = (2, 0) uu;
+ penpos9(med, 0); z9r = (7/3, 1/6) uu;
+ penpos10(thin, 90); z10 = (2, 1/3) uu;
+
+ penstroke z1e .. z2e .. z3e .. z4e .. z5e .. z6e .. z7e .. z8e
+ .. z9e .. z10e;
+
+ label(10);
+endchar;
+
+
+"The letter L";
+beginchar("L", ltr_wd(7/3,0), hgt, 0);
+ penpos1(thin, 180); z1r = (0, 1) uu;
+ penpos2(med, 270); z2 = (7/6, 1/2) uu;
+ penpos3(med, 0); z3r = (7/3, 5/6) uu;
+ penpos4(med, 110); z4r = (2, 1) uu;
+ penpos5(thick, 150); z5 = (7/6, 1/2) uu;
+ penpos6(med, 110); z6l = (1/2, 0) uu;
+ penpos7(med, 0); z7l = (0, 1/6) uu;
+ penpos8(med, 240); z8 = (2/3, 1/4) uu;
+ penpos9(med, 270); z9r = (5/3, 0) uu;
+ penpos10(med, 0); z10r = (7/3, 1/6) uu;
+ penpos11(thin, 180); z11 = (7/4, 1/4) uu;
+
+ penstroke z1e{down} .. z2e .. z3e .. z4e .. z5e .. z6e
+ .. z7e .. {dir -50}z8e .. {right}z9e .. z10e .. {down}z11e;
+
+ label(11);
+endchar;
+
+
+"The letter M";
+beginchar("M", ltr_wd(10/3,0), hgt, 0);
+
+%% The left bar:
+
+ penpos1(thin, 0); z1 = (1/2, 1/4) uu;
+ penpos2(med, 180); z2r = (0, 1/5) uu;
+ penpos3(med, 300); z3r = (1/2, 0) uu;
+ penpos4(med, 0); z4l = (1, 1) uu;
+
+ penstroke z1e{up} .. {down}z2e .. z3e .. tension 1.6 .. {up}z4e;
+
+%% The first middle bar:
+
+ penpos5(thick, 180); z5r = z4l;
+ penpos6(thick, 180); z6 = (4/3, 0) uu;
+
+ penstroke z5e .. z6e;
+
+%% The second middle bar:
+
+ penpos7(med, 0); z7r = z6l;
+ penpos8(med, 0); z8l = (2, 1) uu;
+
+ penstroke z7e .. {dir 70}z8e;
+
+%% The right bar:
+
+ penpos9(thick, 180); z9r = z8l;
+ penpos10(med, 270); z10r = (5/2, 0) uu;
+ penpos11(med, 0); z11r = (10/3, 1/3) uu;
+ penpos12(med, 90); z12 = (8/3, 2/3) uu;
+ penpos13(thin, 180); z13 = (7/3, 1/3) uu;
+
+ penstroke z9e{dir 250} .. tension 1.5 .. {right}z10e .. z11e
+ .. z12e .. {down}z13e;
+
+ label(13);
+endchar;
+
+
+"The letter N";
+beginchar("N", ltr_wd(3,0), hgt, 0);
+
+%% The left bar:
+
+ penpos1(thin, 0); z1 = (1/2, 1/4) uu;
+ penpos2(med, 180); z2r = (0, 1/5) uu;
+ penpos3(med, 300); z3r = (1/2, 0) uu;
+ penpos4(med, 0); z4l = (1, 1) uu;
+
+ penstroke z1e{up} .. {down}z2e .. z3e .. tension 1.6 .. {up}z4e;
+
+%% The middle bar:
+
+ penpos5(med, 180); z5r = z4l;
+ penpos6(thick, 180); z6 = (3/2, 0) uu;
+
+ penstroke z5e .. z6e;
+
+%% The right bar:
+
+ penpos7(med, 0); z7r = z6l;
+ penpos8(med, 290); z8l = (7/3, 1) uu;
+ penpos9(med, 180); z9l = (3, 2/3) uu;
+ penpos10(med, 90); z10 = (5/2, 1/3) uu;
+ penpos11(thin, 0); z11 = (2, 2/3) uu;
+
+ penstroke z7e{up} .. tension 1.2 .. z8e .. {down}z9e .. z10e
+ .. {dir 70}z11e;
+
+ label(11);
+
+ save_letter(N)(x6);
+endchar;
+
+
+"The letter O";
+beginchar("O", ltr_wd(2,0), hgt, 0);
+ penpos1(thin, 90); z1r = (9/8, 1) uu;
+ penpos2(thick, 180); z2r = (0, 1/2) uu;
+ penpos3(med, 270); z3r = (1, 0) uu;
+ penpos4(thick, 0); z4r = (2, 1/2) uu;
+ penpos5(med, 90); z5r = (6/5, 19/20) uu;
+ penpos6(thin, 180); z6 = (1/2, 1/3) uu;
+
+ penstroke z1e{left} .. z2e .. z3e .. z4e .. z5e .. {dir 300}z6e;
+
+ label(6);
+
+ save_letter(O)(x1);
+endchar;
+
+
+"The letter P";
+beginchar("P", ltr_wd(5/2,0), hgt, 0);
+ penpos1(thin, 180); z1r = (3/2, 1) uu;
+ penpos2(thick, 180); z2 = (3/2, 1/2) uu;
+ penpos3(med, 90); z3l = (1, 0) uu;
+ penpos4(thin, 0); z4 = (1/2, 1/4) uu;
+
+ penstroke z1e .. z2e .. z3e .. z4e;
+
+ penpos5(thin, 180); z5 = (1, 2/3) uu;
+ penpos6(med, 90); z6 = (1/2, 1/3) uu;
+ penpos7(med, 0); z7l = (0, 1/2) uu;
+ penpos8(med, 270); z8l = (4/3, 1) uu;
+ penpos9(thick, 180); z9l = (5/2, 3/4) uu;
+ penpos10(thin, 0); z10 = (5/3, 3/4) uu;
+
+ penstroke z5e .. z6e .. z7e{up} .. z8e .. z9e{down} .. z10e;
+
+ label(10);
+endchar;
+
+
+"The letter Q";
+beginchar("Q", ltr_wd(5/2,0), hgt, thick#/2);
+ addto currentpicture also letter.O;
+
+ penpos1(thin, 270); z1 = (4/5, 1/6) uu;
+ penpos2(thick, 270); z2 = (2, 0) uu;
+ penpos3(med, 0); z3r = (5/2, 1/8) uu;
+ penpos4(thin, 90); z4 = (13/6, 1/4) uu;
+
+ penstroke z1e{dir 20} .. z2e .. z3e .. z4e;
+
+ label(4);
+endchar;
+
+
+"The letter R";
+beginchar("R", ltr_wd(13/4,0), hgt, 0);
+ penpos1(thin, 180); z1r = (3/2, 1) uu;
+ penpos2(thick, 180); z2 = (3/2, 1/2) uu;
+ penpos3(med, 90); z3l = (1, 0) uu;
+ penpos4(thin, 0); z4 = (1/2, 1/4) uu;
+
+ penstroke z1e .. z2e .. z3e .. z4e;
+
+ penpos5(thin, 180); z5 = (1, 2/3) uu;
+ penpos6(med, 90); z6 = (1/2, 1/3) uu;
+ penpos7(med, 0); z7l = (0, 1/2) uu;
+ penpos8(med, 270); z8l = (4/3, 1) uu;
+ penpos9(thick, 180); z9 = (5/2, 3/4) uu;
+ penpos10(med, 345); z10 = (5/3, 3/5) uu;
+ penpos11(thick, 180); z11 = (7/3, 1/3) uu;
+ penpos12(med, 270); z12r = (11/4, 0) uu;
+ penpos13(med, 0); z13r = (13/4, 1/6) uu;
+ penpos14(thin, 90); z14 = (11/4, 1/3) uu;
+
+ penstroke z5e .. z6e .. z7e{up} .. z8e .. z9e .. tension 1.2 .. z10e{up}
+ .. tension 1.4 .. z11e .. z12e .. z13e .. z14e;
+
+ label(14);
+endchar;
+
+
+"The letter S";
+beginchar("S", ltr_wd(2,0), hgt, 0);
+ penpos1(thin, 180); z1 = (2/5, 1) uu;
+ penpos2(med, 180); z2r = (0, 2/3) uu;
+ penpos3(med, 270); z3 = (1, 1/2) uu;
+ penpos4(med, 0); z4r = (2, 5/6) uu;
+ penpos5(med, 90); z5r = (8/5, 1) uu;
+ penpos6(thick, 210); z6r = (1, 1/3) uu;
+ penpos7(med, 90); z7l = (1, 0) uu;
+ penpos8(med, 70); z8 = (2/5, 1/4) u;
+ penpos9(thin, 180); z9r = (0, 0) uu;
+
+ penstroke z1e .. {down}z2e .. z3e .. z4e .. z5e
+ .. z6e .. z7e .. z8e .. {dir 250}z9e;
+
+ label(9);
+endchar;
+
+
+"The letter T";
+beginchar("T", ltr_wd(11/4,0), hgt, 0);
+ penpos1(thin, 180); z1 = (1, 2/3) uu;
+ penpos2(med, 0); z2l = (0, 7/10) uu;
+ penpos3(med, 270); z3l = (2/3, 1) uu;
+ penpos4(thick, 200); z4 = (13/8, 2/3) uu;
+ penpos5(med, 0); z5r = (11/4, 3/4) uu;
+ penpos6(med, 90); z6r = (17/8, 1) uu;
+ penpos7(thick, 180); z7 = (9/8, 2/5) uu;
+ penpos8(med, 270); z8r = (2, 0) uu;
+ penpos9(med, 0); z9r = (5/2, 1/6) uu;
+ penpos10(thin, 180); z10 = (7/4, 1/4) uu;
+
+ penstroke z1e{down} .. {up}z2e .. z3e .. {dir 300}z4e .. z5e
+ .. {left}z6e .. tension 1.2 .. z7e .. {right}z8e .. z9e .. z10e;
+
+ label(10);
+endchar;
+
+
+"The letter U";
+beginchar("U", ltr_wd(3,0), hgt, 0);
+ penpos1(thin, 180); z1 = (3/4, 3/5) uu;
+ penpos2(med, 0); z2l = (0, 2/3) uu;
+ penpos3(med, 250); z3l = (3/5, 1) uu;
+ penpos4(thick, 180); z4 = (1, 1/4) uu;
+ penpos5(med, 270); z5r = (3/2, 0) uu;
+ penpos6(med, 0); z6 = (2, 1/6) uu;
+
+ penstroke z1e{down} .. z2e{up} .. z3e .. tension 1.1 .. z4e .. z5e .. z6e;
+
+ penpos7(med, 180); z7 = (2, 1) uu;
+ penpos8(thick, 180); z8 = z6;
+ penpos9(med, 270); z9r = (5/2, 0) uu;
+ penpos10(med, 0); z10r = (3, 1/6) uu;
+ penpos11(thin, 90); z11 = (12/5, 1/3) uu;
+
+ penstroke z7e{down} .. z8e{dir 280} .. z9e .. z10e .. z11e;
+
+ label(11);
+
+ save_letter(U)(1/2[x4,x7]);
+endchar;
+
+
+"The letter V";
+beginchar("V", ltr_wd(8/3,0), hgt, 0);
+ penpos1(thin, 180); z1 = (3/4, 3/5) uu;
+ penpos2(med, 0); z2l = (0, 2/3) uu;
+ penpos3(med, 250); z3l = (3/5, 1) uu;
+ penpos4(thick, 180); z4 = (1, 1/4) uu;
+ penpos5(med, 270); z5r = (3/2, 0) uu;
+ penpos6(med, 0); z6 = (9/4, 1/2) uu;
+ penpos7(med, 90); z7r = (11/6, 1) uu;
+ penpos8(med, 270); z8 = (2, 2/3) uu;
+ penpos9(thin, 0); z9r = (8/3, 1) uu;
+
+ penstroke z1e{down} .. z2e{up} .. z3e .. tension 1.1 .. z4e .. z5e
+ .. {up}z6e .. tension 1.3 .. z7e{left} .. {right}z8e .. {up}z9e;
+
+ label(9);
+endchar;
+
+
+"The letter W";
+beginchar("W", ltr_wd(11/3,0), hgt, 0);
+ penpos1(thin, 180); z1 = (3/4, 3/5) uu;
+ penpos2(med, 0); z2l = (0, 2/3) uu;
+ penpos3(med, 250); z3l = (3/5, 1) uu;
+ penpos4(thick, 180); z4 = (1, 1/4) uu;
+ penpos5(med, 270); z5r = (3/2, 0) uu;
+ penpos6(med, 0); z6 = (2, 1/6) uu;
+
+ penstroke z1e{down} .. z2e{up} .. z3e .. tension 1.1 .. z4e .. z5e .. z6e;
+
+ penpos7(med, 180); z7 = (15/8, 7/8) uu;
+ penpos8(thick, 180); z8 = z6;
+ penpos9(med, 270); z9r = (5/2, 0) uu;
+ penpos10(med, 0); z10 = (13/4, 1/2) uu;
+ penpos11(med, 90); z11r = (17/6, 1) uu;
+ penpos12(med, 270); z12 = (3, 2/3) uu;
+ penpos13(thin, 0); z13r = (11/3, 1) uu;
+
+ penstroke z7e{down} .. z8e{dir 280} .. z9e .. {up}z10e .. tension 1.3
+ .. z11e{left} .. {right}z12e .. {up}z13e;
+
+ label(13);
+endchar;
+
+
+"The letter X";
+beginchar("X", ltr_wd(8/3,0), hgt, 0);
+ penpos1(thin, 90); z1 = (2/3, 2/3) uu;
+ penpos2(med, 0); z2l = (0, 5/6) uu;
+ penpos3(med, 270); z3l = (2/3, 1) uu;
+ penpos4(thick, 180); z4 = (4/3, 1/2) uu;
+ penpos5(med, 90); z5l = (1/2, 0) uu;
+ penpos6(med, 0); z6l = (0, 1/6) uu;
+ penpos7(thin, 270); z7 = (1/3, 1/3) uu;
+
+ penstroke z1e .. z2e .. z3e .. z4e .. z5e .. z6e .. z7e;
+
+ penpos8(thin, 270); z8 = (2, 1/3) uu;
+ penpos9(med, 180); z9l = (8/3, 1/6) uu;
+ penpos10(med, 90); z10l = (2, 0) uu;
+ penpos11(thick, 0); z11 = (4/3, 1/2) uu;
+ penpos12(med, 270); z12l = (13/6, 1) uu;
+ penpos13(med, 180); z13l = (8/3, 5/6) uu;
+ penpos14(thin, 90); z14 = (7/3, 2/3) uu;
+
+ penstroke z8e .. z9e .. z10e .. z11e .. z12e .. z13e .. z14e;
+
+ label(14);
+endchar;
+
+
+"The letter Y";
+beginchar("Y", ltr_wd(19/8,1), hgt, loop_descend * ex#);
+ penpos1(thin, 180); z1 = (3/4, 3/5) uu;
+ penpos2(med, 0); z2l = (0, 2/3) uu;
+ penpos3(med, 250); z3l = (3/5, 1) uu;
+ penpos4(thick, 180); z4 = (1, 3/8) uu;
+ penpos5(med, 270); z5r = (3/2, 1/8) uu;
+ penpos6(med, 0); z6l = z8r;
+
+ penpos7(thick, 180); z7l = (9/4, 1) uu;
+ penpos8(thick, 180); z8l = (9/4, 1) u;
+
+ penstroke z1e{down} .. z2e{up} .. z3e .. tension 1.1 .. z4e
+ .. z5e .. {up}z6e;
+ penstroke z7e .. z8e;
+
+ addto currentpicture also letter.j shifted (3/2 * v, 0);
+
+ label(8);
+
+ save_letter(Y)(1/2[x4,x7]);
+endchar;
+
+
+"The letter Z";
+beginchar("Z", ltr_wd(3,0), hgt, 0);
+ penpos1(thin, 180); z1 = (3/4, 5/6) uu;
+ penpos2(med, 0); z2l = (0, 3/4) uu;
+ penpos3(med, 270); z3l = (1/2, 1) uu;
+ penpos4(med, 270); z4 = (5/2, 3/4) uu;
+ penpos5(med, 0); z5r = (3, 7/8) uu;
+ penpos6(med, 90); z6r = (8/3, 1) uu;
+ penpos7(thick, 135); z7 = (6/4, 1/2) uu;
+ penpos8(med, 90); z7 = 1/2[z6, z8];
+ penpos9(med, 0); z7 = 1/2[z5, z9];
+ penpos10(med, 270); z7 = 1/2[z4, z10];
+ penpos11(med, 270); z7 = 1/2[z3, z11];
+ penpos12(med, 0); z7 = 1/2[z2, z12];
+ penpos13(thin, 180); z7 = 1/2[z1, z13];
+
+ penstroke z1e .. z2e{up} .. z3e{right} .. z4e .. z5e{up} .. z6e{left}
+ .. z7e .. {left}z8e .. z9e .. z10e .. {right}z11e .. z12e{up} .. z13e;
+
+ penpos14(thin, 270); z14 = z7 - (1/2, 0) uu;
+ penpos15(med, 270); z15 = z7;
+ penpos16(thin, 270); z16 = z7 + (1/2, 0) uu;
+
+ penstroke z14e{dir 30} .. z15e .. {dir 30}z16e;
+
+ label(16);
+endchar;
+
+
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %%
+
+%%\sec Inter-letter links. %{{{1
+
+%% There is a special trick we use in all links: the initial $x$ coordinante
+%% is not 0 as would be expected but $-1$. This makes links begin one pixel to
+%% the left of their box, ensuring that they actually join with the letter
+%% before them.
+
+%%\subsec For small letters (a, c, d, e, g, o, q). %{{{2
+
+lw := link_width * ex#;
+
+"Low link for small letters";
+beginchar(128, lw, 0, 0);
+ penpos1(med, 270); z1r = (-1, 0);
+ penpos2(med, 0); z2l = (lnk, 1/3) u;
+ penstroke z1e{right} .. {up}z2e;
+ label(2);
+endchar ;
+
+"Medium link for small letters";
+beginchar(129, lw, 0, 0);
+ penpos1(med, ml_d); z1 = (-1, ml_y * ex);
+ penpos2(med, 0); z2l = (lnk, 1/3) u;
+ penstroke z1e{ml_dir} .. tension 3 .. {up}z2e;
+ label(2);
+endchar ;
+
+"High link for small letters";
+beginchar(130, lw, 0, 0);
+ penpos1(med, 270); z1 = (-1, hl_y * ex);
+ penpos2(thin, 270); z2l = (3/5 + lnk, 1) u;
+ penstroke z1e{right} .. {right}z2e ;
+ label(2);
+endchar ;
+
+%%\subsec For loops (b, f, h, l). %{{{2
+
+"Low link for large loops";
+beginchar(132, lw, loop_ascend*ex#, 0);
+ if proofing > 1: proofrule ((lnk,0) u, (lnk,loop_ascend)u); fi
+ penpos1(med, 270); z1r = (-1, 0);
+ penpos2(med, 330); z2 = (3/4 + lnk, 2/3 * loop_ascend) u + (0,0);
+ penstroke z1e{right} .. tension 2 .. {up}z2e ;
+ label(2);
+endchar;
+
+"Medium link for large loops";
+beginchar(133, lw, loop_ascend*ex#, 0);
+ if proofing > 1: proofrule ((lnk,0) u, (lnk,loop_ascend)u); fi
+ penpos1(med, ml_d); z1 = (-1, ml_y * ex);
+ penpos2(med, 330); z2 = (3/4 + lnk, 2/3 * loop_ascend) u + (0,0);
+ penstroke z1e{ml_dir} .. tension 1.2 .. {up}z2e ;
+ label(2);
+endchar;
+
+"High link for large loops";
+beginchar(134, lw, loop_ascend*ex#, 0);
+ if proofing > 1: proofrule ((lnk,0) u, (lnk,loop_ascend)u); fi
+ penpos1(med, 270); z1 = (-1, hl_y * ex);
+ penpos2(med, 330); z2 = (3/4 + lnk, 2/3 * loop_ascend) u + (0,0);
+ penstroke z1e{right} .. tension 1.4 .. {up}z2e ;
+ label(2);
+endchar;
+
+"Low to medium transition";
+beginchar(135, ltr_w(1/6), 0, 0);
+ penpos1(med, 270); z1r = (-1, 0);
+ penpos2(med, ml_d); z2 = (1/6 + lnk, ml_y) u;
+ penstroke z1e{right} .. {ml_dir}z2e ;
+ label(2);
+endchar;
+
+%%\subsec For those vertical on the left (i, u). %{{{2
+
+"Low link for verticals";
+beginchar(136, lw, 0, 0);
+ penpos1(med, 270); z1r = (-1, 0);
+ penpos2(med, 0); z2l = (1/6 + lnk, 2/3) u;
+ penpos3(med, 0); z3l = (1/6 + lnk, 1) u;
+ penstroke z1e{right} .. {up}z2e -- z3e;
+ label(3);
+endchar;
+
+"Medium link for verticals";
+beginchar(137, lw, 0, 0);
+ penpos1(med, ml_d); z1 = (-1, ml_y * ex);
+ penpos2(med, 0); z2l = (1/6 + lnk, 1) u;
+ penstroke z1e{ml_dir} .. tension 1.2 .. {up}z2e;
+ label(2);
+endchar;
+
+"High link for verticals";
+beginchar(138, lw, 0, 0);
+ penpos1(med, 270); z1 = (-1, hl_y * ex);
+ penpos2(med, 0); z2l = (1/6 + lnk, 1) u;
+ penstroke z1e{right} .. {up}z2e;
+ label(2);
+endchar;
+
+%%\subsec For the far verticals (j, p). %{{{2
+
+"Low link for far verticals";
+beginchar(140, ltr_w(1/4), 0, 0);
+ penpos1(med, 270); z1r = (-1, 0);
+ penpos2(med, 0); z2l = z3l;
+ pickup thickpen;
+ penpos3(thick, 0); z3 = good.rt ((1 + lnk, 1) u);
+ penstroke z1e{right} .. tension 1.2 .. {dir 60}z2e;
+ label(2);
+endchar;
+
+"Medium link for far verticals";
+beginchar(141, lw, 0, 0);
+ penpos1(med, ml_d); z1 = (-1, ml_y * ex);
+ penpos2(med, 0); z2l = z3l;
+ penpos3(thick, 0); z3r = (3/4 + lnk, 1) u;
+ penstroke z1e{ml_dir} .. tension 1.3 .. {dir 60}z2e;
+ label(2);
+endchar;
+
+"Long medium link for far verticals";
+beginchar(142, ltr_w(1/4), 0, 0);
+ penpos1(med, ml_d); z1 = (-1, ml_y * ex);
+ penpos2(med, 0); z2r = (1 + lnk, 1) u;
+ penstroke z1e{ml_dir} .. tension 1.3 .. {dir 70}z2e;
+ label(2);
+endchar;
+
+"High link for far verticals";
+beginchar(143, lw, 0, 0);
+ penpos1(med, 270); z1 = (-1, hl_y * ex);
+ penpos2(med, 0); z2l = z3l;
+ penpos3(thick, 0); z3r = (3/4 + lnk, 1) u;
+ penstroke z1e{right} .. {dir 50}z2e;
+ label(2);
+endchar;
+
+%%\subsec For high loops (h, k). %{{{2
+
+"Low link for high loops";
+beginchar(144, ltr_w(1/6), 0, 0)
+ penpos1(med, 270); z1r = (-1, 0);
+ penpos2(med, 0); z2l = (1/6 + lnk, 6/8) u;
+
+ penstroke z1e{right} .. {up}z2e;
+
+ penpos3(med, 270); z3l = z2l;
+ penpos4(med, 330); z4 = (11/12 + lnk, 2/3 * loop_ascend) u + (0,0);
+
+ penstroke z3e .. tension 1.2 .. {up}z4e;
+
+ label(4);
+endchar;
+
+"Medium link for high loops";
+beginchar(145, lw, 0, 0)
+ penpos1(med, ml_d); z1 = (-1, ml_y * ex);
+ penpos2(med, 0); z2l = (lnk, 6/8) u;
+
+ penstroke z1e{ml_dir} .. {up}z2e;
+
+ penpos3(med, 270); z3l = z2l;
+ penpos4(med, 330); z4 = (3/4 + lnk, 2/3 * loop_ascend) u + (0,0);
+
+ penstroke z3e .. tension 1.2 .. {up}z4e;
+
+ label(4);
+endchar;
+
+%%\subsec For m, n, v, and w. %{{{2
+
+"Low link for m and n";
+beginchar(146, ltr_w(1/6), 0, 0)
+ penpos1(med, 270); z1r = (-1, 0);
+ penpos2(med, 0); z2l = (1/12 + lnk, 1/2) u;
+ penpos3(med, 270); z3l = (1/2 + lnk, 1) u + (1,0);
+ penstroke z1e{right} .. tension 1.4 .. {up}z2e .. {right}z3e;
+ label(3);
+endchar;
+
+"Medium link for m and n";
+beginchar(147, ltr_w(1/12), 0, 0)
+ penpos1(med, ml_d); z1 = (-1, ml_y * ex);
+ penpos2(med, 0); z2l = ((1/24 + lnk) * v, 1/2 [y1, y3]);
+ penpos3(med, 270); z3l = (5/12 + lnk, 1) u + (1,0);
+ penstroke z1e{ml_dir} .. {up}z2e .. tension 1.1 .. {right}z3e;
+ label(3);
+endchar;
+
+"High link for m and n";
+beginchar(148, ltr_w(1/6), 0, 0)
+ penpos1(med, 270); z1 = (-1, hl_y * ex);
+ penpos2(med, 330); z2 = 1/2 [z1, z3];
+ penpos3(med, 270); z3l = (1/2 + lnk, 1) u + (1,0);
+ penstroke z1e{right} .. z2e .. {right}z3e;
+ label(3);
+endchar;
+
+"Beginning for m and n";
+beginchar(149, 0, 0, 0)
+ penpos1(med, 320); z1 = (-1, 2/5 * ex);
+ penpos2(med, 270); z2l = (1/3, 1) u + (1,0);
+ penstroke z1e{up} .. {right} z2e;
+ label(3);
+endchar;
+
+%%\subsec For the x. %{{{2
+
+"Low link for x";
+beginchar(155, ltr_w(1/2), 0, 0)
+ penpos1(med, 270); z1r = (-1, 0);
+ penpos2(med, 0); z2 = 1/2[z1,z3];
+ penpos3(med, 270); z3l = (5/6 + lnk, 1) u + (1,0);
+ penstroke z1e{right} .. {dir 80}z2e .. {right}z3e;
+ label(3);
+endchar;
+
+"Medium link for x";
+beginchar(156, ltr_w(1/4), 0, 0)
+ penpos1(med, ml_d); z1 = (-1, ml_y * ex);
+ penpos2(med, 0); z2 = 1/2[z1,z3];
+ penpos3(med, 270); z3l = (7/12 + lnk, 1) u + (1,0);
+ penstroke z1e{ml_dir} .. {dir 80}z2e .. {right}z3e;
+ label(3);
+endchar;
+
+%%\subsec Special links. %{{{2
+
+%% \chardef\HL=131
+%% This link has to be inserted by hand between the letters {\fc o} and
+%% {\fc e}, in order to produce ``{\fc o\HL e}'', which is different
+%% from the (fake) ligature ``{\fc oe}'' that is produced by typing
+%% ``{\tt oe}''.
+
+"High horizontal link";
+beginchar(131, lw, 0, 0);
+ penpos1(med, 270); z1 = (-1, hl_y * ex);
+ penpos2(med, 270); z2 = (lnk, 1/2) u + (1,0);
+ penstroke z1e{right} .. {right}z2e ;
+ label(2);
+endchar ;
+
+%% This one is the equivalent but at the level of the baseline. It is
+%% introduced for coherence.
+%% \par\nobreak
+
+"Low horizontal link";
+beginchar(139, lw, 0, 0);
+ penpos1(med, 270); z1r = (-1, 0);
+ penpos2(med, 270); z2r = (lnk * v + 1, 0);
+ penstroke z1e{right} .. {right}z2e ;
+ label(2);
+endchar ;
+
+
+
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %%
+
+%%\sec Accents and accented letters. %{{{1
+
+%% These constants are reference dimensions for all accents:
+
+a_wd := accent_wd * base_width * ex#;
+a_ht := accent_top * ex#;
+
+%% We use the following macro to save an accent's picture and dimensions in
+%% order to use it later when building accented characters:
+
+def save_accent (text acc) =
+ picture accent.acc;
+ accent.acc := currentpicture;
+ acc_wd.acc := w;
+ acc_ht#.acc := charht
+enddef;
+
+%%\subsec The glyphs for the accents. %{{{2
+
+"Grave accent";
+beginchar(0, a_wd, a_ht, 0);
+ penpos1(med, 225); z1 = (0, 1) ua;
+ penpos2(med, 270); z2 = (1, 0) ua;
+ penstroke z1e .. tension 1.4 .. {right}z2e;
+ label(2);
+ save_accent(grave);
+endchar;
+
+"Acute accent";
+beginchar(1, a_wd, a_ht, 0);
+ penpos1(med, 135); z1 = (1, 1) ua;
+ penpos2(med, 90); z2 = (0, 0) ua;
+ penstroke z1e .. tension 1.4 .. {left}z2e;
+ label(2);
+ save_accent(acute);
+endchar;
+
+"Circumflex";
+beginchar(2, 3/2 * a_wd, a_ht, 0);
+ penpos1(med, 270); z1 = (0, 0) ua;
+ penpos2(med, 0); z2 = (3/4, 1) ua;
+ penstroke z1e{right} .. z2e;
+ penpos3(med, 180); z3 = z2;
+ penpos4(med, 270); z4 = (3/2, 0) ua;
+ penstroke z3e .. {right}z4e;
+ label(4);
+ save_accent(circum);
+endchar;
+
+"Tilde";
+beginchar(3, 3/2 * a_wd, (2 accent_top + accent_bot)/3 * ex#, 0);
+ penpos1(med, 310); z1 = (0, 1/3) ua;
+ penpos2(med, 210); z2l = (3/4, 1/2) ua;
+ penpos4(med, 310); (x4, y4l) = (3/2, 2/3) ua;
+ penstroke z1e .. z2e{dir 315} .. z4e;
+ label(4);
+ save_accent(tilde);
+endchar;
+
+"Umlaut";
+beginchar(4, a_wd, height_with_dot, 0);
+ pickup pencircle scaled dot_size;
+ lft z1 = (0, dot_height) u;
+ rt z2 = (accent_wd, dot_height) u;
+ drawdot z1; drawdot z2;
+ label(2);
+ save_accent(umlaut);
+endchar;
+
+"Ring";
+beginchar(6, 3/4 a_wd, a_ht, 0);
+ penpos1(med, 90); z1r = (3/8, 1) ua;
+ penpos2(med, 180); z2r = (0, 1/2) ua;
+ penpos3(med, 270); z3r = (3/8, 0) ua;
+ penpos4(med, 0); z4r = (3/4, 1/2) ua;
+ penstroke z1e .. z2e .. z3e .. z4e .. cycle;
+ label(4);
+ save_accent(ring);
+endchar;
+
+"Cedilla";
+beginchar(11, ltr_wd(3/4,0), 0, (cedilla_dp + 1/3) * ex#);
+ penpos1(thick, 180); z1 = (3/8, 0) u;
+ penpos2(thick, 180); z2 = (3/8, -cedilla_dp) u;
+ penstroke z1e .. z2e;
+ penpos3(med, 270); z3r = z2l;
+ penpos4(thick, 180); x4l = 3/4 base_width * ex; y4 = 1/2[y3,y5];
+ penpos5(med, 90); z5l = (3/8, -cedilla_dp - 1/3) u;
+ penpos6(thin, 0); x6l = 0; y6 = y4;
+ penstroke z3e .. z4e .. z5e{left} .. z6e;
+ label(6);
+ save_accent(cedilla);
+endchar;
+
+
+%%\subsec The accented characters. %{{{2
+
+%% The definition of `make\_accented' produces characters with the same height
+%% as their unaccented version, so that the accented uppercase are not too
+%% high (otherwise it would force to space out successive lines too much).
+%% Is this a good choice ?
+
+def make_accented(expr name, chr)(text base, acc) =
+ begingroup save base;
+ name;
+ beginchar(chr, width#.base, height#.base, depth#.base)
+ addto currentpicture also letter.base;
+ addto currentpicture also accent.acc
+ shifted ((accpos.base - acc_wd.acc/2, height.base - ex) slanted slant);
+ endchar
+ endgroup
+enddef;
+
+make_accented("The letter a with gravis", "à")(a)(grave);
+make_accented("The letter a with acute", "á")(a)(acute);
+make_accented("The letter a with circumflex", "â")(a)(circum);
+make_accented("The letter a with tilde", "ã")(a)(tilde);
+make_accented("The letter a with umlaut", "ä")(a)(umlaut);
+make_accented("The letter a with ring", "å")(a)(ring);
+
+make_accented("The letter e with gravis", "è")(e)(grave);
+make_accented("The letter e with acute", "é")(e)(acute);
+make_accented("The letter e with circumflex", "ê")(e)(circum);
+make_accented("The letter e with umlaut", "ë")(e)(umlaut);
+
+make_accented("The letter i with gravis", "ì")(i)(grave);
+make_accented("The letter i with acute", "í")(i)(acute);
+make_accented("The letter i with circumflex", "î")(i)(circum);
+make_accented("The letter i with umlaut", "ï")(i)(umlaut);
+
+make_accented("The letter o with gravis", "ò")(o)(grave);
+make_accented("The letter o with acute", "ó")(o)(acute);
+make_accented("The letter o with circumflex", "ô")(o)(circum);
+make_accented("The letter o with tilde", "õ")(o)(tilde);
+make_accented("The letter o with umlaut", "ö")(o)(umlaut);
+
+make_accented("The letter u with gravis", "ù")(u)(grave);
+make_accented("The letter u with acute", "ú")(u)(acute);
+make_accented("The letter u with circumflex", "û")(u)(circum);
+make_accented("The letter u with umlaut", "ü")(u)(umlaut);
+
+make_accented("The letter y with acute", "ý")(y)(acute);
+make_accented("The letter y with umlaut", "ÿ")(y)(umlaut);
+make_accented("The letter n with tilde", "ñ")(n)(tilde);
+
+"The letter c with cedilla";
+beginchar("ç", width#.c, ex#, (cedilla_dp + 1/3) * ex#);
+ addto currentpicture also letter.c;
+ addto currentpicture also accent.cedilla
+ shifted (accpos.c - acc_wd.cedilla/2, 0);
+ endchar;
+
+make_accented("The letter A with gravis", "À")(A)(grave);
+make_accented("The letter A with acute", "Á")(A)(acute);
+make_accented("The letter A with circumflex", "Â")(A)(circum);
+make_accented("The letter A with tilde", "Ã")(A)(tilde);
+make_accented("The letter A with umlaut", "Ä")(A)(umlaut);
+make_accented("The letter A with ring", "Å")(A)(ring);
+
+make_accented("The letter E with gravis", "È")(E)(grave);
+make_accented("The letter E with acute", "É")(E)(acute);
+make_accented("The letter E with circumflex", "Ê")(E)(circum);
+make_accented("The letter E with umlaut", "Ë")(E)(umlaut);
+
+make_accented("The letter I with gravis", "Ì")(I)(grave);
+make_accented("The letter I with acute", "Í")(I)(acute);
+make_accented("The letter I with circumflex", "Î")(I)(circum);
+make_accented("The letter I with umlaut", "Ï")(I)(umlaut);
+
+make_accented("The letter O with gravis", "Ò")(O)(grave);
+make_accented("The letter O with acute", "Ó")(O)(acute);
+make_accented("The letter O with circumflex", "Ô")(O)(circum);
+make_accented("The letter O with tilde", "Õ")(O)(tilde);
+make_accented("The letter O with umlaut", "Ö")(O)(umlaut);
+
+make_accented("The letter U with gravis", "Ù")(U)(grave);
+make_accented("The letter U with acute", "Ú")(U)(acute);
+make_accented("The letter U with circumflex", "Û")(U)(circum);
+make_accented("The letter U with umlaut", "Ü")(U)(umlaut);
+
+make_accented("The letter Y with acute", "Ý")(Y)(acute);
+make_accented("The letter N with tilde", "Ñ")(N)(tilde);
+
+"The letter C with cedilla";
+beginchar("Ç", width#.C, height#.C, (cedilla_dp + 1/3) * ex#);
+ addto currentpicture also letter.C;
+ addto currentpicture also accent.cedilla
+ shifted (accpos.C - acc_wd.cedilla/2, 0);
+endchar;
+
+"The letter i with no dot";
+beginchar(25, width#.i, ex#, 0);
+ addto currentpicture also letter.i;
+endchar;
+
+"The letter j with no dot";
+beginchar(26, width#.j, ex#, loop_descend * ex#);
+ addto currentpicture also letter.j;
+endchar;
+
+
+
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %%
+
+%%\sec Digits. %{{{1
+
+%% All digits have the same height, fixed to $\frac3/2\,\\{base\_witdh}$, and
+%% they contain an extra spacing of $\frac1/6\,\\{base\_width}$ on each side.
+
+num_wd := 11/6 * base_width * ex#;
+num_ht := straight_ascend * ex#;
+
+def nu = shifted (1/6,0) u yscaled straight_ascend enddef;
+
+"The numeral 0";
+beginchar("0", num_wd, num_ht, 0);
+ penpos1(thin, 90); z1r = (9/10, 1) nu;
+ penpos2(thick, 180); z2r = (0, 1/2) nu;
+ penpos3(med, 270); z3r = (3/4, 0) nu;
+ penpos4(med, 0); z4r = (3/2, 1/2) nu;
+ penpos5(thin, 90); z5 = (7/10, 14/15) nu;
+
+ penstroke z1e{left} .. z2e{down} .. z3e .. {up}z4e .. {dir 210}z5e;
+
+ label(6);
+endchar;
+
+"The numeral 1";
+beginchar("1", num_wd, num_ht, 0);
+ penpos1(med, 270); z1 = (0, 1/2) nu;
+ penpos2(med, 0); z2l = z3r;
+
+ penpos3(thick, 180); z3 = (1, 1) nu;
+ penpos4(thick, 180); z4 = (1, 0) nu;
+
+ penstroke z1e .. {up}z2e;
+ penstroke z3e .. z4e;
+
+ penpos5(med, 270); z4 = 1/2[z5r, z6r];
+ penpos6(med, 270); z6r = (3/2, 0) nu;
+
+ penstroke z5e .. z6e;
+
+ label(6);
+endchar;
+
+"The numeral 2";
+beginchar("2", num_wd, num_ht, 0);
+ penpos1(thin, 90); z1 = (1/2, 1/2) nu;
+ penpos2(med, 0); z2l = (1/5, 2/3) nu;
+ penpos3(med, 270); x3 = 1/2[x2,x4]; y3l = straight_ascend * ex;
+ penpos4(thick, 180); z4 = (5/4, 2/3) nu;
+ penpos5(med, 90); z5l = (1/3, 0) nu;
+ penpos6(med, 0); z6l = (0, 1/8) nu;
+ penpos7(med, 240); z7 = (3/5, 1/8) nu;
+ penpos8(med, 270); z8r = (1, 0) nu;
+ penpos9(thin, 0); z9r = (3/2, 1/4) nu;
+
+ penstroke z1e .. z2e .. z3e .. z4e .. tension 1.6
+ .. z5e{left} .. z6e{up} .. z7e .. z8e{right} .. {up}z9e;
+
+ label(9);
+endchar;
+
+"The numeral 3";
+beginchar("3", num_wd, num_ht, 0);
+ penpos1(thin, 0); z1 = (1/4, 3/4) nu;
+ penpos2(med, 270); z2l = (3/4, 1) nu;
+ penpos3(thick, 180); z3 = (13/10, 3/4) nu;
+ penpos4(med, 90); z4 = (5/8, 1/2) nu;
+
+ penstroke z1e .. z2e{right} .. z3e .. {left}z4e;
+
+ penpos5(med, 270); z5 = z4;
+ penpos6(thick, 180); z6l = (3/2, 1/4) nu;
+ penpos7(med, 90); z7l = (3/4, 0) nu;
+ penpos8(thin, 0); z8l = (0, 3/10) nu;
+
+ penstroke z5e{right} .. z6e .. z7e .. z8e;
+
+ label(8);
+endchar;
+
+"The numeral 4";
+beginchar("4", num_wd, num_ht, 0);
+ penpos1(thick, 180); z1 = (3/4, 1) nu;
+ penpos2(med, 90); z2 = (0, 1/4) nu;
+
+ penstroke z1e{down} .. z2e;
+
+ penpos3(med, 270); z3 = z2;
+ penpos4(med, 270); z4 = (3/2, 1/4) nu;
+
+ penstroke z3e .. z4e;
+
+ penpos5(thick, 180); z5 = (1, 1/2) nu;
+ penpos6(thick, 180); z6 = (1, 0) nu;
+
+ penstroke z5e .. z6e;
+
+ label(6);
+endchar;
+
+"The numeral 5";
+beginchar("5", num_wd, num_ht, 0);
+ penpos1(med, 270); z1l = (1/6, 1) nu;
+ penpos2(med, 270); z2l = (4/3, 1) nu;
+
+ penstroke z1e{dir 340} .. z2e;
+
+ penpos3(thick, 180); z3r = z1;
+ penpos4(thick, 180); z4r = (1/6, 1/2) nu;
+
+ penstroke z3e .. z4e;
+
+ penpos5(med, 270); z5r = z4l;
+ penpos6(thick, 180); z6l = (3/2, 1/4) nu;
+ penpos7(med, 90); z7l = (3/4, 0) nu;
+ penpos8(thin, 0); z8l = (0, 1/4) nu;
+
+ penstroke z5e .. z6e .. z7e .. z8e;
+
+ label(8);
+endchar;
+
+"The numeral 6";
+beginchar("6", num_wd, num_ht, 0);
+ penpos1(thin, 90); z1r = (5/4, 1) nu;
+ penpos2(thick, 180); z2r = (0, 1/3) nu;
+ penpos3(med, 270); z3r = (3/4, 0) nu;
+ penpos4(med, 0); z4r = (3/2, 1/4) nu;
+ penpos5(med, 180); z5l = z2l;
+
+ penstroke z1e .. z2e{down} .. z3e .. z4e .. z5e;
+
+ label(5);
+endchar;
+
+"The numeral 7";
+beginchar("7", num_wd, num_ht, 0);
+ penpos1(med, 270); z1l = (0, 1) nu;
+ penpos2(med, 270); z2l = (3/2, 1) nu;
+
+ penstroke z1e{dir 340} .. z2e;
+
+ penpos3(thick, 180); z3l = z2r;
+ penpos4(thick, 180); z4r = (1/2, 0) nu;
+
+ penstroke z3e .. {down}z4e;
+
+ penpos5(med, 270);
+ penpos6(med, 270);
+ 1/2[z5, z6] = (z3 .. {down}z4)
+ intersectionpoint ((0,1/2) nu .. (3/2,1/2) nu);
+ z6 - z5 = (z2 - z1) / 2;
+
+ penstroke z5e .. z6e;
+
+ label(6);
+endchar;
+
+"The numeral 8";
+beginchar("8", num_wd, num_ht, 0);
+ penpos1(thin, 90); z1r = (9/10, 1) nu;
+ penpos2(thick, 180); z2 = (1/6, 3/4) nu;
+ penpos3(thick, 210); z3 = 1/2[z2, z4];
+ penpos4(thick, 180); z4l = (3/2, 1/4) nu;
+ penpos5(med, 90); z5l = (3/4, 0)nu;
+ penpos6(med, 0); z6l = (0, 1/4) nu;
+ penpos7(med, 330); z7 = 1/2[z6, z8];
+ penpos8(med, 0); z8 = (4/3, 3/4) nu;
+ penpos9(thin, 90); z9r = (6/10, 19/20) nu;
+
+ penstroke z1e{left} .. z2e .. z3e .. z4e .. z5e .. z6e .. z7e .. z8e .. z9e;
+
+ label(9);
+endchar;
+
+"The numeral 9";
+beginchar("9", num_wd, num_ht, 0);
+ penpos1(med, 90); z1r = (3/2, 9/10) nu;
+ penpos2(med, 90); z2r = (7/8, 1) nu;
+ penpos3(thick, 180); z3r = (1/6, 3/4) nu;
+ penpos4(med, 0); z4r = (3/2, 2/3) nu;
+
+ penstroke z1e .. z2e .. z3e .. z4e;
+
+ penpos5(thick, 180); z5l = (3/2, 19/20) nu;
+ penpos6(thick, 180); z6l = (3/2, 1/3) nu;
+ penpos7(med, 90); z7l = (3/4, 0) nu;
+ penpos8(thin, 0); z8l = (0, 1/4) nu;
+
+ penstroke z5e .. z6e{down} .. z7e{left} .. z8e;
+
+ label(8);
+endchar;
+
+
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %%
+
+%%\sec Punctuation marks. %{{{1
+
+%% In order to put inter-letter links at the right positions, we had to remove
+%% any spacing onthe right of letters. For this reason, we add a spacing,
+%% proportional to the links' widths, at the left of all punctuatin marks.
+
+"Exclamation mark";
+beginchar("!", ltr_wd(1/2,2), loop_ascend * ex#, 0);
+ penpos1(thick, 180);
+ z1 = ((base_width + 2 link_width) / 2, loop_ascend) * ex;
+ penpos2(med, 180); z2 = (x1, 3/5 ex);
+ penstroke z1e .. z2e;
+ pickup pencircle scaled dot_size;
+ bot z3 = (x1, 0);
+ drawdot z3;
+ label(3);
+ save_letter(exclam)(x1)
+endchar;
+
+"Spanish opening exclamation";
+beginchar(189, ltr_wd(1/2,2), (loop_ascend - straight_descend) * ex#,
+straight_descend * ex#);
+ addto currentpicture also letter.exclam scaled -1
+ shifted ((1/2 base_width + 2 link_width,
+ loop_ascend - straight_descend) * ex)
+endchar;
+
+"Apostrophe";
+beginchar("'", ltr_wd(1/3,2), straight_ascend * ex#, 0);
+ penpos1(thick, 180);
+ z1 = ((base_width + 3 link_width) / 3, straight_ascend) * ex;
+ penpos2(thin, 90);
+ z2 = ((base_width - 3 link_width) / 3, straight_ascend - 1/2) * ex;
+ penstroke z1e{down} .. z2e;
+ label(2);
+endchar;
+
+"High apostrophe";
+beginchar(152, ltr_wd(1/3,2), loop_ascend * ex#, 0);
+ penpos1(thick, 180);
+ z1 = ((base_width + 3 link_width) / 3, loop_ascend) * ex;
+ penpos2(thin, 90);
+ z2 = ((base_width - 3 link_width) / 3, loop_ascend - 1/2) * ex;
+ penstroke z1e{down} .. z2e;
+ label(2);
+endchar;
+
+"Reverse apostrophe";
+beginchar("`", ltr_wd(1/3,2), straight_ascend * ex#, 0);
+ penpos1(thick, 180);
+ z1 = ((base_width - 3 link_width) / 3, straight_ascend) * ex;
+ penpos2(thin, 270);
+ z2 = ((base_width + 3 link_width) / 3, straight_ascend - 1/2) * ex;
+ penstroke z1e{down} .. z2e;
+ label(2);
+endchar;
+
+"Comma";
+beginchar(",", ltr_wd(1/3,2), ex#, 1/3 ex#);
+ penpos1(thick, 180); z1 = ((base_width + 3 link_width) / 3, 1/4) * ex;
+ penpos2(thin, 90); z2l = ((base_width - 3 link_width) / 3, -1/3) * ex;
+ penstroke z1e{down} .. z2e;
+ label(2);
+endchar;
+
+"Hyphen";
+beginchar("-", ltr_wd(5/6,0), ex#, 0);
+ penpos1(thick, 260); z1 = (1/6, 1/2) u;
+ penpos2(thick, 260); z2 = (4/6, 1/2) u;
+ penstroke z1e .. z2e;
+ label(2);
+endchar;
+
+"En dash";
+beginchar(21, ltr_wd(1,0), ex#, 0);
+ penpos1(med, 270); z1 = (0, 1/2) u;
+ penpos2(med, 270); z2 = (1, 1/2) u;
+ penstroke z1e .. z2e;
+ label(2);
+endchar;
+
+"Em dash";
+beginchar(22, ltr_wd(2,0), ex#, 0);
+ penpos1(med, 270); z1 = (0, 1/2) u;
+ penpos2(med, 270); z2 = (2, 1/2) u;
+ penstroke z1e .. z2e;
+ label(2);
+endchar;
+
+"Period";
+beginchar(".", ltr_wd(1/2,2), ex#, 0);
+ pickup pencircle scaled dot_size;
+ bot z1 = ((base_width + 2 link_width) / 2 * ex, 0);
+ drawdot z1;
+ label(1)
+endchar;
+
+"Colon";
+beginchar(":", ltr_wd(1/2,2), ex#, 0);
+ pickup pencircle scaled dot_size;
+ bot z1 = ((base_width + 2 link_width) / 2 * ex, 0);
+ drawdot z1;
+ top z2 = ((base_width + 2 link_width) / 2 * ex, ex);
+ drawdot z2;
+ label(2)
+endchar;
+
+"Semicolon";
+beginchar(";", ltr_wd(1/3,2), ex#, 1/3 ex#);
+ penpos1(thick, 180); z1 = ((base_width + 3 link_width) / 3, 1/4) * ex;
+ penpos2(thin, 90); z2l = ((base_width - 3 link_width) / 3, -1/3) * ex;
+ penstroke z1e{down} .. z2e;
+ pickup pencircle scaled dot_size;
+ top z3 = ((base_width + 3 link_width) / 3 * ex, ex);
+ drawdot z3;
+ label(3);
+endchar;
+
+"Question mark";
+beginchar("?", ltr_wd(3/2,2), loop_ascend * ex#, 0);
+ penpos1(med, 90); z1 = z2 - (2/4, 4/5) u;
+ penpos2(med, 270); x2 = x4; y2l = loop_ascend * ex;
+ penpos3(thick, 180); z3l = z1 + (5/4, 1/5) u;
+ penpos4(med, 180); z4 = (3/5 base_width + 3 link_width, 5/6) * ex;
+ penpos5(thin, 180); z5 = z4 - (0, 1/3) u;
+ penstroke z1e .. z2e{right} .. z3e .. z4e .. z5e;
+
+ pickup pencircle scaled dot_size;
+ bot z6 = (x4, 0);
+ drawdot z6;
+ label(6);
+
+ save_letter(interg)(x2)
+endchar;
+
+"Spanish opening interrogation";
+beginchar(190, ltr_wd(3/2,2), (loop_ascend - straight_descend) * ex#,
+straight_descend * ex#);
+ addto currentpicture also letter.interg scaled -1
+ shifted ((3/2 base_width + 2 link_width,
+ loop_ascend - straight_descend) * ex);
+endchar;
+
+"Left parenthesis";
+beginchar("(", ltr_wd(1,0), loop_ascend * ex#, 1/2 loop_descend * ex#);
+ penpos1(med, 180); z1l = (5/6, loop_ascend) u;
+ penpos2(thick, 180); x2r = 1/6 v; y2 = 1/2[y1,y3];
+ penpos3(med, 180); z3l = (5/6, -1/2 loop_descend) u;
+ penstroke z1e .. z2e .. z3e;
+ label(3);
+endchar;
+
+"Right parenthesis";
+beginchar(")", ltr_wd(1,0), loop_ascend * ex#, 1/2 loop_descend * ex#);
+ penpos1(med, 180); z1r = (1/6, loop_ascend) u;
+ penpos2(thick, 180); x2l = 5/6 v; y2 = 1/2[y1,y3];
+ penpos3(med, 180); z3r = (1/6, -1/2 loop_descend) u;
+ penstroke z1e .. z2e .. z3e;
+ label(3);
+endchar;
+
+"Left bracket";
+beginchar("[", ltr_wd(1,0), loop_ascend * ex#, 1/2 loop_descend * ex#);
+ penpos1(med, 270); z1r = (5/6, loop_ascend) u;
+ penpos2(med, 270); z2r = (1/6, loop_ascend) u;
+
+ penstroke z1e .. z2e;
+
+ penpos3(thick, 180); z3r = (1/6, loop_ascend) u;
+ penpos4(thick, 180); z4r = (1/6, -1/2 loop_descend) u;
+
+ penstroke z3e .. z4e;
+
+ penpos5(med, 90); z5l = (1/6, -1/2 loop_descend) u;
+ penpos6(med, 90); z6l = (5/6, -1/2 loop_descend) u;
+
+ penstroke z5e .. z6e;
+
+ label(6);
+endchar;
+
+"Right bracket";
+beginchar("]", ltr_wd(1,0), loop_ascend * ex#, 1/2 loop_descend * ex#);
+ penpos1(med, 270); z1r = (5/6, loop_ascend) u;
+ penpos2(med, 270); z2r = (1/6, loop_ascend) u;
+
+ penstroke z1e .. z2e;
+
+ penpos3(thick, 180); z3l = (5/6, loop_ascend) u;
+ penpos4(thick, 180); z4l = (5/6, -1/2 loop_descend) u;
+
+ penstroke z3e .. z4e;
+
+ penpos5(med, 90); z5l = (1/6, -1/2 loop_descend) u;
+ penpos6(med, 90); z6l = (5/6, -1/2 loop_descend) u;
+
+ penstroke z5e .. z6e;
+
+ label(6);
+endchar;
+
+"Slash";
+beginchar("/", ltr_wd(3/2,0), loop_ascend * ex#, 1/2 loop_descend * ex#);
+ penpos1(thick, 180); z1l = (8/6, loop_ascend) u;
+ penpos2(thick, 180); z2r = (1/6, -1/2 loop_descend) u;
+ penstroke z1e .. z2e;
+ label(2);
+endchar;
+
+"Ampersand";
+beginchar("&", ltr_wd(3,0), uc_ascend * ex#, 0);
+ penpos1(thick, 180); z1 = (9/4, 1/2) uu;
+ penpos2(med, 90); z2l = (11/16, 0) uu;
+ penpos3(med, 0); z3l = (0, 1/6) uu;
+ penpos5(med, 0); z5 = (8/5, 13/16) uu;
+ penpos4(med, angle(z5-z3)-90); z4 = 1/2[z3,z5];
+ penpos6(med, 90); z6r = (9/8, 1) uu;
+ penpos7(thick, 180); z7 = (3/4, 1/2) uu;
+ penpos8(med, 270); z8r = (2, 0) uu;
+ penpos9(med, 0); z9r = (3, 1/5) uu;
+ penstroke z1e .. z2e .. z3e{up} .. z4e .. {up}z5e
+ .. z6e .. z7e .. z8e .. z9e;
+ label(9);
+endchar;
+
+"French opening quote";
+beginchar("«", ltr_wd(1,2), ex#, 0);
+ penpos1(med, 180); z1l = (1/2, 9/10) u;
+ penpos2(thick, 180); z2r = (0, 1/2) u;
+ penpos3(med, 180); z3l = (1/2, 1/10) u;
+ penstroke z1e{down} .. tension 1.3 .. z2e;
+ penstroke z2e .. tension 1.3 .. {down}z3e;
+ label(3);
+ addto currentpicture also currentpicture shifted (3/8 v, 0);
+endchar;
+
+"French closing quote";
+beginchar("»", ltr_wd(1,2), ex#, 0);
+ penpos1(med, 180); z1r = (2 link_width + 1/2, 9/10) u;
+ penpos2(thick, 180); z2l = (2 link_width + 1, 1/2) u;
+ penpos3(med, 180); z3r = (2 link_width + 1/2, 1/10) u;
+ penstroke z1e{down} .. tension 2 .. z2e;
+ penstroke z2e .. tension 2 .. {down}z3e;
+ label(3);
+ addto currentpicture also currentpicture shifted (-3/8 v, 0);
+endchar;
+
+
+
+%% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %% %%
+
+%%\sec The ligature table. %{{{1
+
+%% Here comes a crucial part of the French Cursive typeface: the ligature and
+%% kerning table. It has to play two major roles: first of all, it is
+%% responsible of the insertion of inter-letter links, a task for which the
+%% lig/kern system in \TeX\ and \MF\ is thankfully powerful enough. Secondly,
+%% this table is responsible for kerning, which is necessary for some
+%% successions of an uppercase and a lowercase, but also in some cases for
+%% punctuation.
+
+k# := base_width * ex#;
+
+"Right boundary pseudo-character";
+beginchar(23, 0, 0, 0) endchar;
+
+boundarychar := 23;
+
+def word_ends =
+ ".", ",", ";", ":", "'", ")", "]", "/", "»", "-", 21, 22 enddef;
+
+%% The following macros enumerate all variants of each vowel.
+
+def var_a = "a","à","á","â","ã","ä","å" enddef;
+def var_c = "c","ç" enddef;
+def var_e = "e","è","é","ê","ë" enddef;
+def var_i = "i","ì","í","î","ï" enddef;
+def var_o = "ò","ó","ô","õ","ö" enddef;
+% We don't include ``o'' because of the special kerning with the ``e''.
+def var_u = "u","ù","ú","û","ü" enddef;
+
+def lig_small (expr lig) =
+ for lt = var_a, var_c, var_e, "o", var_o: lt |=:| lig, endfor
+ "d" |=:| lig,
+ "g" |=:| lig,
+ "q" |=:| lig
+enddef;
+
+def lig_loop (expr lig) =
+ "b" |=:| lig,
+ "f" |=:| lig,
+ "h" |=:| lig,
+ "k" |=:| lig,
+ "l" |=:| lig
+enddef;
+
+def lig_vert (expr lig) =
+ for lt = var_i, var_u: lt |=:| lig, endfor
+ "r" |=:| lig,
+ "t" |=:| lig,
+ "u" |=:| lig,
+ "z" |=:| lig
+enddef;
+
+def lig_far (expr lig) =
+ "j" |=:| lig,
+ "p" |=:| lig,
+ "s" |=:| lig
+enddef;
+
+def lig_mn (expr lig) =
+ "m" |=:| lig,
+ "n" |=:| lig, "ñ" |=:| lig,
+ "v" |=:| lig,
+ "w" |=:| lig,
+ "x" |=:| lig,
+ "y" |=:| lig, "ý" |=:| lig, "ÿ" |=:| lig
+enddef;
+
+
+%%\subsec Ligatures between lowercase and punctuations. %{{{2
+
+ligtable "-": "-" =: 21, skipto 0;
+ligtable 21: "-" =: 22;
+
+ligtable "!": "`" =: 189;
+ligtable "?": "`" =: 190;
+
+ligtable "`": "`" kern -2 link_width * k#, skipto 0;
+ligtable "'": "'" kern -2 link_width * k#, skipto 0;
+ligtable 152: "'" =:| "'", skipto 0;
+
+%% % ligtable "<": "<" =: "«";
+%% % ligtable ">": ">" =: "»";
+
+ligtable ||: "(": "[": "/": 189: 190:
+0::
+ lig_far(140), lig_mn(149),
+ skipto 2;
+
+
+%%\subsec Ligatures between lowercase letters. %{{{2
+
+%% Special cases: the q and the s have a different shape at the end of words,
+%% they have no right link, contrary to the other letters.
+
+ligtable "q":
+ for c = boundarychar, word_ends: c =:| 150, endfor
+ skipto 2;
+ligtable "s":
+ for c = boundarychar, word_ends: c =:| 154, endfor
+ skipto 2;
+
+ligtable "h": "k": "'" |=: 152, skipto 1;
+ligtable for lt = var_a, var_i, var_u: lt: endfor
+1::
+ "d": "m": "n": "ñ": "p": "r":
+ for lt = boundarychar, word_ends: lt |=:| 135, endfor
+ skipto 2;
+ligtable 139:
+2::
+ "h" |=:| 144, "k" |=:| 144, "x" |=:| 155,
+ lig_small(128), lig_loop(132), lig_vert(136), lig_far(140), lig_mn(146);
+ligtable "f": "g": "j": "y": "ý": "ÿ": "z":
+ "j" |=:| 142, skipto 3;
+ligtable "l": "'" |=: 152, skipto 3;
+ligtable for lt = var_c, var_e: lt: endfor "t": "x":
+3::
+ "h" |=:| 145, "k" |=:| 145, "x" |=:| 156,
+ lig_small(129), lig_loop(133), lig_vert(137), lig_far(141), lig_mn(147);
+ligtable "o":
+ "e" kern -link_width*k# - med#, skipto 5;
+ligtable 131:
+ "e" kern -thin#, skipto 5;
+ligtable "b": "'" |=: 152, skipto 4;
+ligtable for lt = var_o: lt: endfor "v": "w":
+4::
+ "e" |=:| 131,
+5::
+ lig_small(130), lig_loop(134), lig_vert(138), lig_far(143), lig_mn(148);
+
+%%\subsec Ligatures and spacings after uppercase letters. %{{{2
+
+ligtable "G": "J": "Y": "Ý":
+ "h" |=:| 145, "j" |=:| 142, "k" |=:| 145, "x" |=:| 156,
+ lig_small(129), lig_loop(133), lig_vert(137), lig_far(141), lig_mn(147);
+
+ligtable "F": "S":
+ 128 kern -1/2 k#, % small letters are closer
+ 142 kern -1/5 k#, % j, p, s too
+ lig_small(128),
+ skipto 6;
+
+ligtable "I": "Ì": "Í": "Î": "Ï":
+ for l = 134, 136, 149: l kern 1/8ex#, endfor
+ skipto 6;
+
+ligtable "N": "Ñ":
+ 128 kern -1/3 k#,
+ 142 kern -1/5 k#,
+ skipto 6;
+
+ligtable "P":
+ 128 kern -5/8 k#,
+ 142 kern -1/3 k#,
+ 136 kern -5/12 k#,
+ skipto 6;
+
+ligtable "Q":
+ 149 kern 1/5 k#,
+ lig_small(128),
+ skipto 6;
+
+ligtable "H": "K": "L":
+ 128 kern 1/8 k#,
+ 149 kern 1/6 k#,
+ skipto 6;
+
+ligtable "B": "C": "D": "M": "R": "T": "V": "W": "X": "Z":
+ "A": "À": "Á": "Â": "Ã": "Ä":
+ "E": "È": "É": "Ê": "Ë":
+ "O": "Ò": "Ó": "Ô": "Õ": "Ö":
+ "U": "Ù": "Ú": "Û": "Ü":
+ 149 kern 1/6 k#,
+6::
+ lig_small(128),
+ "h" |=:| 145, "k" |=:| 145,
+ lig_loop(132),
+ lig_vert(136),
+ lig_far(142),
+ lig_mn(149);
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/frcursive/frcw10.mf b/Master/texmf-dist/fonts/source/public/frcursive/frcw10.mf
new file mode 100644
index 00000000000..0df51cdf09f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/frcursive/frcw10.mf
@@ -0,0 +1,29 @@
+%%% This file is part of the French Cursive font definition.
+%%% This is a parameter file for the wide-links variant
+
+font_identifier := "FCW";
+font_size 10 pt#;
+
+mode_setup;
+
+ex# := 155.0/36 pt#;
+med# := 0.4 pt#;
+thin# := 0.2 pt#;
+thick# := 0.6 pt#;
+dot_size# := 0.8 pt#;
+
+base_width := .800;
+slant := 0;
+accent_wd := 0.7;
+link_width := 0.4;
+straight_ascend := 2;
+loop_ascend := 2.5;
+uc_ascend := 2.5;
+straight_descend := 1.2;
+loop_descend := 1.5;
+dot_height := 1.4;
+accent_bot := 1.2;
+accent_top := 1.6;
+cedilla_dp = 0.2;
+
+input frcursive
diff --git a/Master/texmf-dist/fonts/source/public/futhark/futhol10.mf b/Master/texmf-dist/fonts/source/public/futhark/futhol10.mf
new file mode 100644
index 00000000000..6bf064d793a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/futhark/futhol10.mf
@@ -0,0 +1,38 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% futhol10.mf
+%
+% Das \"Altere Futhark (The Older Futhark)
+% 10pt version (1993/05/02)
+%
+% Design by Micaela "Stayka" Pantke + Sigrid "Shavana" Juckel
+%
+% Email: hz225wu@unidui.uni-duisburg.de (Micaela Pantke)
+% Snailmail: Micaela Pantke
+% Westhoffstrasse 111
+% 46149 Oberhausen
+% Germany
+%
+% You're free to use or copy this file as long as you leave this
+% header intact and don't change the contents.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_identifier:="futhold";
+font_size 10pt#; % design size
+ht#:=10pt#; % height of the letters
+u#:=.2pt#; % unit width
+s#:=.9pt#; % width correction right + left
+o#:=1/20pt#; % overshoot
+px#:=.7pt#; % horizontal thickness of the pen
+font_normal_space:=7pt#; % width of blank space
+font_normal_shrink:=.9pt#; % width correction for blank space
+font_x_height:=5pt#; % height of one "ex"
+input futhold % call parameter file
+end % and end!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% End of File
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/futhark/futhol20.mf b/Master/texmf-dist/fonts/source/public/futhark/futhol20.mf
new file mode 100644
index 00000000000..5449a19fb88
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/futhark/futhol20.mf
@@ -0,0 +1,38 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% futhol20.mf
+%
+% Das \"Altere Futhark (The Older Futhark)
+% 20pt version (1993/05/02)
+%
+% Design by Micaela "Stayka" Pantke + Sigrid "Shavana" Juckel
+%
+% Email: hz225wu@unidui.uni-duisburg.de (Micaela Pantke)
+% Snailmail: Micaela Pantke
+% Westhoffstrasse 111
+% 46149 Oberhausen
+% Germany
+%
+% You're free to use or copy this file as long as you leave this
+% header intact and don't change the contents.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_identifier:="futhold";
+font_size 20pt#; % design size
+ht#:=20pt#; % height of the letters
+u#:=.4pt#; % unit width
+s#:=1.1pt#; % width correction right + left
+o#:=1/10pt#; % overshoot
+px#:=1pt#; % horizontal thickness of the pen
+font_normal_space:=14pt#; % width of blank space
+font_normal_shrink:=1.1pt#; % width correction for blank space
+font_x_height:=10pt#; % height of one "ex"
+input futhold % call parameter file
+end % and end!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% End of File
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/futhark/futhol30.mf b/Master/texmf-dist/fonts/source/public/futhark/futhol30.mf
new file mode 100644
index 00000000000..731aee2723d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/futhark/futhol30.mf
@@ -0,0 +1,37 @@
+%
+% futhol30.mf
+%
+% Das \"Altere Futhark (The Older Futhark)
+% 30pt version (1993/05/02)
+%
+% Design by Micaela "Stayka" Pantke + Sigrid "Shavana" Juckel
+%
+% Email: hz225wu@unidui.uni-duisburg.de (Micaela Pantke)
+% Snailmail: Micaela Pantke
+% Westhoffstrasse 111
+% 46149 Oberhausen
+% Germany
+%
+% You're free to use or copy this file as long as you leave this
+% header intact and don't change the contents.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_identifier:="futhold";
+font_size 30pt#; % design size
+ht#:=30pt#; % height of the letters
+u#:=.6pt#; % unit width
+s#:=1.3pt#; % width correction right + left
+o#:=1/7pt#; % overshoot
+px#:=1.5pt#; % horizontal thickness of the pen
+font_normal_space:=21pt#; % width of blank space
+font_normal_shrink:=1.3pt#; % width correction for blank space
+font_x_height:=15pt#; % height of one "ex"
+input futhold % call parameter file
+end % and end!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% End of File
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/futhark/futhol40.mf b/Master/texmf-dist/fonts/source/public/futhark/futhol40.mf
new file mode 100644
index 00000000000..23f3679bdea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/futhark/futhol40.mf
@@ -0,0 +1,38 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% futhol40.mf
+%
+% Das \"Altere Futhark (The Older Futhark)
+% 40pt version (1993/05/02)
+%
+% Design by Micaela "Stayka" Pantke + Sigrid "Shavana" Juckel
+%
+% Email: hz225wu@unidui.uni-duisburg.de (Micaela Pantke)
+% Snailmail: Micaela Pantke
+% Westhoffstrasse 111
+% 46149 Oberhausen
+% Germany
+%
+% You're free to use or copy this file as long as you leave this
+% header intact and don't change the contents.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_identifier:="futhold";
+font_size 40pt#; % design size
+ht#:=40pt#; % height of the letters
+u#:=.8pt#; % unit width
+s#:=1.7pt#; % width correction right + left
+o#:=1/5pt#; % overshoot
+px#:=2pt#; % horizontal thickness of the pen
+font_normal_space:=28pt#; % width of blank space
+font_normal_shrink:=1.7pt#; % width correction for blank space
+font_x_height:=20pt#; % height of one "ex"
+input futhold % call parameter file
+end % and end!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% End of File
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/futhark/futhol50.mf b/Master/texmf-dist/fonts/source/public/futhark/futhol50.mf
new file mode 100644
index 00000000000..90029f04a3d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/futhark/futhol50.mf
@@ -0,0 +1,38 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% futhol50.mf
+%
+% Das \"Altere Futhark (The Older Futhark)
+% 50pt version (1993/05/02)
+%
+% Design by Micaela "Stayka" Pantke + Sigrid "Shavana" Juckel
+%
+% Email: hz225wu@unidui.uni-duisburg.de (Micaela Pantke)
+% Snailmail: Micaela Pantke
+% Westhoffstrasse 111
+% 46149 Oberhausen
+% Germany
+%
+% You're free to use or copy this file as long as you leave this
+% header intact and don't change the contents.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_identifier:="futhold";
+font_size 50pt#; % design size
+ht#:=50pt#; % height of the letters
+u#:=1pt#; % unit width
+s#:=3pt#; % width correction right + left
+o#:=1/2pt#; % overshoot
+px#:=4pt#; % horizontal thickness of the pen
+font_normal_space:=35pt#; % width of blank space
+font_normal_shrink:=3pt#; % width correction for blank space
+font_x_height:=25pt#; % height of one "ex"
+input futhold % call parameter file
+end % and end!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% End of File
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/futhark/futhold.mf b/Master/texmf-dist/fonts/source/public/futhark/futhold.mf
new file mode 100644
index 00000000000..5c849f5fef7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/futhark/futhold.mf
@@ -0,0 +1,237 @@
+% futhold.mf
+%
+% Das \"Altere Futhark (The Older Futhark)
+% Parameter File (1993/05/02)
+%
+% Design by Micaela "Stayka" Pantke + Sigrid "Shavana" Juckel
+%
+% Email: hz225wu@unidui.uni-duisburg.de (Micaela Pantke)
+% Snailmail: Micaela Pantke
+% Westhoffstrasse 111
+% 46149 Oberhausen
+% Germany
+%
+% You're free to use or copy this file as long as you leave this
+% header intact and don't change the contents.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup; % switches into Metafont mode
+
+ho#:=o#; % horizontal overshoot
+leftstemloc#:=2.5u#+s#; % position of left bottom lines
+py#:=.9px#; % vertical thickness of the pen
+
+define_pixels(s,u);
+define_blacker_pixels(px,py);
+pickup pencircle xscaled px yscaled py;
+runen_pen:=savepen;
+define_good_x_pixels(leftstemloc);
+define_corrected_pixels(o); % turns overshoot correction on
+define_horizontal_corrected_pixels(ho);
+
+def beginrunenchar(expr code, unit_width) =
+ beginchar(code,unit_width*u#+2s#,ht#,0);
+ pickup runen_pen enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% There they are: the runes
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginrunenchar("F",20);
+x1=x2=x3=x6=leftstemloc; x4=x5=w-s;
+bot y1=-o; y2=.4h; y3=.7h; y4=.6h; y5=.9h; top y6= h;
+draw z1--z6;
+draw z3--z5;
+draw z2--z4;
+labels(1,2,3,4,5);
+endchar;
+
+beginrunenchar("U",30);
+x1=x2=leftstemloc; x3=x4=w-s;
+bot y1=bot y4=-o; y3=.6h; top y2=h;
+draw z1--z2--z3--z4;
+labels(1,2,3,4);
+endchar;
+
+beginrunenchar("X",20); % This should be a "TH"
+x1=x2=x3=x4=leftstemloc; x5=w-s;
+bot y1=-o; y2=.25h; y5=.5h; y3=.75h; top y4=h;
+draw z1--z4;
+draw z2--z5--z3;
+labels(1,2,3,4,5);
+endchar;
+
+beginrunenchar("A",20);
+x1=x2=x3=leftstemloc; x4=x5=w-s;
+bot y1=-o; y2=.7h; y4=.5h; y5=.8h; top y3=h;
+draw z1--z3--z5;
+draw z2--z4;
+labels(1,2,3,4,5);
+endchar;
+
+beginrunenchar("R",20);
+x1=x2=x3=leftstemloc; x4=x5=w-s;
+bot y1=bot y4=-o; y2=.4h; y5=.7h; top y3=h;
+draw z1--z3--z5--z2--z4;
+labels(1,2,3,4,5);
+endchar;
+
+beginrunenchar("K",20);
+x2=leftstemloc; x1=x3=w-s;
+y1=.4h; y2=.7h; top y3=h;
+draw z1--z2--z3;
+labels(1,2,3);
+endchar;
+
+beginrunenchar("G",30);
+x1=x2=leftstemloc; x3=x4=w-s;
+bot y1=bot y3=-o; top y2=top y4=h;
+draw z1--z4;
+draw z2--z3;
+labels(1,2,3,4);
+endchar;
+
+beginrunenchar("W",20);
+x1=x2=x3=leftstemloc; x4=w-s;
+bot y1=-o; y2=.4h; y4=.7h; top y3=h;
+draw z1--z3--z4--z2;
+labels(1,2,3,4);
+endchar;
+
+beginrunenchar("H",30);
+x1=x2=x3=leftstemloc; x4=x5=x6=w-s;
+bot y1=bot y4=-o; y2=.65h; y5=.35h; top y3=top y6=h;
+draw z1--z3;
+draw z4--z6;
+draw z2--z5;
+labels(1,2,3,4,5,6);
+endchar;
+
+beginrunenchar("N",20);
+x1=leftstemloc; x2=x3=.5(w+s); x4=w-s;
+bot y2=-o; y1=.6h; y4=.4h; top y3=h;
+draw z1--z4;
+draw z2--z3;
+labels(1,2,3,4);
+endchar;
+
+beginrunenchar("I",10);
+x1=x2=leftstemloc;
+bot y1=-o; top y2=h;
+draw z1--z2;
+labels(1,2);
+endchar;
+
+beginrunenchar("J",30);
+x1=leftstemloc; x2=.3w; x3=x4=.5(w+s); x5=.7w; x6=w-s;
+bot y5=-o; y1=.3h; y3=.4h; y4=.6h; y6=.7h; top y2=h;
+draw z5--z1--z4;
+draw z3--z6--z2;
+labels(1,2,3,4,5,6);
+endchar;
+
+beginrunenchar("Y",30); % This should be an "EI"
+x1=leftstemloc; x2=x3=.5(w+s); x4=w-s;
+bot y2=-o; y1=.3h; y4=.7h; top y3=h;
+draw z1--z2--z3--z4;
+labels(1,2,3,4);
+endchar;
+
+beginrunenchar("P",30);
+x1=x2=leftstemloc; x3=x4=.5(w+s); x5=x6=w-s;
+bot y1=bot y5=-o; y3=.3h; y4=.7h; top y2=top y6=h;
+draw z5--z3--z1--z2--z4--z6;
+labels(1,2,3,4,5,6);
+endchar;
+
+beginrunenchar("Z",30);
+x1=leftstemloc; x2=x3=x4=.5(w+s); x5=w-s;
+bot y2=-o; y3=.6h; top y1=top y4=top y5=h;
+draw z2--z4;
+draw z1--z3--z5;
+labels(1,2,3,4,5);
+endchar;
+
+beginrunenchar("S",20);
+x1=x2=leftstemloc; x3=x4=w-s;
+bot y1=-o; y3=.3h; y2=.7h; top y4=h;
+draw z1--z3--z2--z4;
+labels(1,2,3,4);
+endchar;
+
+beginrunenchar("T",30);
+x1=leftstemloc; x2=x3=.5(w+s); x4=w-s;
+bot y2=-o; y1=y4=.7h; top y3=h;
+draw z2--z3;
+draw z1--z3--z4;
+labels(1,2,3,4);
+endchar;
+
+beginrunenchar("B",20);
+x1=x2=x3=leftstemloc; x4=x5=w-s;
+bot y1=-o; y4=.3h; y2=.5h; y5=.7h; top y3=h;
+draw z1--z3--z5--z2--z4--z1;
+labels(1,2,3,4,5);
+endchar;
+
+beginrunenchar("E",30);
+x1=x2=leftstemloc; x3=.5(w+s); x4=x5=w-s;
+bot y1=bot y5=-o; y3=.7h; top y2=top y4=h;
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+endchar;
+
+beginrunenchar("M",30);
+x1=x2=x3=leftstemloc; x4=x5=x6=w-s;
+bot y1=bot y4=-o; y2=y5=.4h; top y6=top y3=h;
+draw z1--z3--z5;
+draw z2--z6--z4;
+labels(1,2,3,4,5,6);
+endchar;
+
+beginrunenchar("L",20);
+x1=x2=leftstemloc; x3=w-s;
+bot y1=-o; y3=.6h; top y2=h;
+draw z1--z2--z3;
+labels(1,2,3);
+endchar;
+
+beginrunenchar("Q",30); % And this should be an "ING"
+x1=leftstemloc; x2=x3=.5(w+s); x4=w-s;
+y2=.4h; y1=y4=.7h; top y3=h;
+draw z1--z3--z4--z2--z1;
+labels(1,2,3,4);
+endchar;
+
+beginrunenchar("D",30);
+x1=x2=leftstemloc; x3=x4=w-s;
+bot y1=bot y3=-o; top y2=top y4=h;
+draw z1--z2--z3--z4--z1;
+labels(1,2,3,4);
+endchar;
+
+beginrunenchar("O",30);
+x1=x2=leftstemloc; x3=.5(w+s); x4=x5=w-s;
+bot y1= bot y4=-o; y2=y5=.7h; top y3=h;
+draw z1--z5--z3--z2--z4;
+labels(1,2,3,4,5);
+endchar;
+
+beginrunenchar(":",10);
+x1=x2=x3=x4=leftstemloc;
+y1=.2h; y2=.35h; y3=.65h; y4=.8h;
+draw z1--z2;
+draw z3--z4;
+labels(1,2,3,4);
+endchar;
+
+font_coding_scheme:="FUXARKGWHNIJYPZSTBEMLQDO: only";
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% End of File
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/genealogy/drgen.mf b/Master/texmf-dist/fonts/source/public/genealogy/drgen.mf
new file mode 100644
index 00000000000..10c0f42454c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/genealogy/drgen.mf
@@ -0,0 +1,131 @@
+% drgen.mf
+% D. Roegel, 20 april 1996
+% Adapted from rsym.mf and gen.mf
+
+cmchar "female";
+beginchar(hex"19",x_height#+2u#,1.7x_height#-desc_depth#,desc_depth#);
+italcorr 1/2x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x8=good.x (.5x_height + u);
+y6 = good.y (h-.5x_height); y8-y4=x2-x6;
+circle_points;
+x9 := x8;
+numeric a; a = round .5(h+d-x_height) + eps;
+x10=x8-a;
+x11=x8+a;
+y10 = y11; y11 = -d+a;
+y9 = -desc_depth;
+draw_circle;
+draw z10--z11; draw z4--z9;
+math_fit(0,ic#);
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "male";
+numeric this_size#;
+this_size# = x_height#*(1+0.9/sqrt2);
+beginchar(hex"1A",this_size#+1.7u#,this_size#,0);
+italcorr this_size#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x2=x_height+2u-x6; y2=.5x_height; bot y4=0;
+circle_points;
+z9 = 1.9[z5,z1];
+draw_circle;
+x9 := good.x x9;
+y9 := good.y y9;
+x10 = x9; y11 = y9;
+y10 = y9-3.5u; x11 = x9-3.5u;
+draw z1--z9;
+draw z10--z9--z11;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cross (death symbol)";
+beginchar("d",9u#,.65[x_height#,asc_height#],.1(asc_height#-x_height#));
+adjust_fit(0,0); pickup tiny.nib; light_stem=Vround .5[vair,stem];
+pos1(stem,0); pos2(.4[hair,stem],0); pos3(stem,0);
+%pos4(stem,90); pos5(.5[vair,stem],90); pos6(stem,90);
+pos4(light_stem,90); pos5(.5[vair,light_stem],90); pos6(light_stem,90);
+x1=x2=x3=.5w; top y1=h; bot y3=-d; y2=y4r;
+y4=y5=y6; y4l=good.y .6[-d,h]; x4=good.x u; x6=r-x4; x5=x2;
+filldraw z1l...z2l{down}...z3l--z3r...z2r{up}...z1r--cycle; % vertical stroke
+filldraw z4l...z5l...z6l--z6r...z5r...z4r--cycle; % horizontal stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Rings (marriage symbol)";
+beginchar("m",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+pos1(light_stem,90); pos3(light_stem,-90);
+pos2(light_stem,180); pos4(.3[hair,light_stem],0);
+x1=x3=.5[x2,x4]; lft x2r=hround(-u-.5light_stem); rt x4r=hround(.6w+.5stem);
+%top y1r=vround(h+.5light_stem); y2=y4=.5[y1,y3];
+%bot y3r=vround(-d-.5light_stem);
+top y1r=h; y2=y4=.5[y1,y3];
+bot y3r=-d;
+pos5(light_stem,90); pos7(light_stem,-90);
+pos6(.3[hair,light_stem],180); pos8(light_stem,0);
+x5-x1=x6-x2=x7-x3=x8-x4; rt x8r=hround(w+u+.5light_stem);
+y5-y1=y6-y2=y7-y3=y8-y4=0;
+filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4)
+ &pulled_arc.e(4,1); % left ring
+filldraw stroke pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8)
+ &pulled_arc.e(8,5); % right ring
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Five-pointed star (birth symbol)";
+beginchar("b",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric theta; theta=360/5; % degrees between points
+pos0(curve,0); pos1(rule_thickness,90); x0=x1=good.x .5w;
+top y1r=vround(math_axis+.5x_height+.5rule_thickness);
+ypart(.5[z1,z0+(z1-z2) rotated 2theta])=math_axis;
+pos2(curve,theta); pos3(rule_thickness,90+theta);
+z2=z0; z3-z0=(z1-z0) rotated theta;
+z4=whatever[z0l,z1r]=whatever[z2r,z3r];
+filldraw for n=0 upto 4:
+ z0+(z1r-z0)rotated(n*theta)--z0+(z4-z0)rotated(n*theta)--endfor
+ cycle; % star
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Divided rings (divorce symbol)";
+beginchar("1",9u#,v_center(x_height#));
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+pos11(stem,0); pos12(.4[hair,stem],0); pos13(stem,0);
+x11=x12=x13=.5w; top y11=round 1.3h; bot y13=round(-d-.3h); y12=.6[y13,y11];
+filldraw z11l...z12l{down}...z13l
+ --z13r...z12r{up}...z11r--cycle; % vertical stroke
+pos1(light_stem,90); pos3(light_stem,-90);
+pos2(light_stem,180); pos4(.3[hair,light_stem],0);
+x1=x3=.5[x2,x4]; lft x2r=hround(-3u-.5light_stem); rt x4r=hround(.25w+.5stem);
+top y1r=h; y2=y4=.5[y1,y3];
+bot y3r=-d;
+pos5(light_stem,90); pos7(light_stem,-90);
+pos6(.3[hair,light_stem],180); pos8(light_stem,0);
+x5-x1=x6-x2=x7-x3=x8-x4; rt x8r=hround(w+3u+.5light_stem);
+y5-y1=y6-y2=y7-y3=y8-y4=0;
+filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4)
+ &pulled_arc.e(4,1); % left ring
+filldraw stroke pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8)
+ &pulled_arc.e(8,5); % right ring
+penlabels(1,2,3,4,5,6,7,8,11,12,13); endchar;
+
+cmchar "Leaf";
+beginchar("l",18u#,asc_height#,0);
+adjust_fit(0,0); pickup pencircle scaled .6rule_thickness;
+z1=(0,0); z2=(w,h);
+z3=.5[z1,z2]+.25((z2-z1)rotated 90);
+z4=.5[z1,z2]+.25((z2-z1)rotated-90);
+path p[]; p3=z1...z3{z2-z1}...z2; p4=z1...z4{z2-z1}...z2;
+draw p3; % upper edge
+draw p4; % lower edge
+draw z1 -- z2; % stem
+z5=1/4[z1,z2]; z6=.55[z1,z2];
+z35=p3 intersectionpoint (z5--(x5,2h));
+z36=p3 intersectionpoint (z6--(x6,2h));
+z45=p4 intersectionpoint (z5--(2w,y5));
+z46=p4 intersectionpoint (z6--(2w,y6));
+draw z35--z5--z45; % vein
+draw z36--z6--z46; % vein
+labels(1,2,3,4,5,6,35,36,45,46); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/genealogy/drgen10.mf b/Master/texmf-dist/fonts/source/public/genealogy/drgen10.mf
new file mode 100644
index 00000000000..756d36e4aa2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/genealogy/drgen10.mf
@@ -0,0 +1,20 @@
+% drgen10.mf
+% D. Roegel, 20 april 1996
+% Adapted 1) from wasy10.mf, rsym.mf, wasychr.mf,
+% 2) from gen10.mf and gen.mf (Knuth's genealogical symbols)
+%
+
+if unknown cmbase: input cmbase fi % omit if CMMF can be assumed
+mode_setup;
+
+def generate suffix t= enddef;
+input cmr10; font_setup;
+
+font_identifier:="DRGEN";
+font_slant slant; font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+font_quad 18u#+4letter_fit#;
+
+input drgen; % symbols
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/go/go.mf b/Master/texmf-dist/fonts/source/public/go/go.mf
new file mode 100644
index 00000000000..6972493e353
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go.mf
@@ -0,0 +1,333 @@
+mode_setup;
+
+define_pixels(size);
+define_pixels(line_thickness,border_line_thickness);
+
+picture black_circle;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def set_black_circle =
+ currentpicture := nullpicture;
+ pickup pencircle scaled line_thickness;
+ lft x1=1/22size; y1=1/2size;
+ rt x2=23/22size; y2=1/2size;
+ filldraw z1..z2..cycle;
+ black_circle := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+set_black_circle;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(0,24/22size#,23/22size#,1/22size#); "punkt hoshi";
+ pickup pencircle scaled line_thickness;
+ z1=(0,11/24w);
+ z2=(.5w,h);
+ z3=(w,11/24w);
+ z4=(.5w,-d);
+ draw z1..z3;
+ draw z2..z4;
+ z5=(.5w-.1size,11/24w);
+ z6=(.5w+.1size,11/24w);
+ filldraw z5..z6..cycle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(1,24/22size#,23/22size#,1/22size#); "pelny krzyz";
+ pickup pencircle scaled line_thickness;
+ z1=(0,11/24w);
+ z2=(.5w,h);
+ z3=(w,11/24w);
+ z4=(.5w,-d);
+ draw z1..z3;
+ draw z2..z4;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(2,24/22size#,23/22size#,1/22size#); "lewy brzeg";
+ pickup pencircle scaled line_thickness;
+ lft x1=.5w; y1=11/24w;
+ z2=(.5w,h);
+ z3=(w,11/24w);
+ z4=(.5w,-d);
+ draw z1..z3;
+ pickup pencircle scaled border_line_thickness;
+ draw z2..z4;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(3,24/22size#,23/22size#,1/22size#); "prawy brzeg";
+ pickup pencircle scaled line_thickness;
+ z1=(0,11/24w);
+ z2=(.5w,h);
+ rt x3=.5w; y3=11/24w;
+ z4=(.5w,-d);
+ draw z1..z3;
+ pickup pencircle scaled border_line_thickness;
+ draw z2..z4;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(4,24/22size#,23/22size#,1/22size#); "gorny brzeg";
+ pickup pencircle scaled border_line_thickness;
+ z1=(0,11/24w);
+ x2=.5w; top y2=11/24w;
+ z3=(w,11/24w);
+ z4=(.5w,-d);
+ draw z1..z3;
+ pickup pencircle scaled line_thickness;
+ draw z2..z4;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(5,24/22size#,23/22size#,1/22size#); "dolny brzeg";
+ pickup pencircle scaled border_line_thickness;
+ z1=(0,11/24w);
+ z2=(.5w,h);
+ z3=(w,11/24w);
+ x4=.5w; bot y4=11/24w;
+ draw z1..z3;
+ pickup pencircle scaled line_thickness;
+ draw z2..z4;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(6,24/22size#,23/22size#,1/22size#); "lewy gorny rog";
+ pickup pencircle scaled border_line_thickness;
+ lft x1=.5w; y1=11/24w;
+ x2=.5w; top y2=11/24w;
+ z3=(w,11/24w);
+ z4=(.5w,-d);
+ draw z1..z3;
+ draw z2..z4;
+ pickup penrazor scaled border_line_thickness;
+ z5=(.5w,11/24w+.5border_line_thickness);
+ z6=(.5w,11/24w-.5border_line_thickness);
+ draw z5..z6;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(7,24/22size#,23/22size#,1/22size#); "prawy gorny rog";
+ pickup pencircle scaled border_line_thickness;
+ z1=(0,11/24w);
+ x2=.5w; top y2=11/24w;
+ rt x3=.5w; y3=11/24w;
+ z4=(.5w,-d);
+ draw z1..z3;
+ draw z2..z4;
+ pickup penrazor scaled border_line_thickness;
+ z5=(.5w,11/24w+.5border_line_thickness);
+ z6=(.5w,11/24w-.5border_line_thickness);
+ draw z5..z6;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(8,24/22size#,23/22size#,1/22size#); "lewy dolny rog";
+ pickup pencircle scaled border_line_thickness;
+ lft x1=.5w; y1=11/24w;
+ z2=(.5w,h);
+ z3=(w,11/24w);
+ x4=.5w; bot y4=11/24w;
+ draw z1..z3;
+ draw z2..z4;
+ pickup penrazor scaled border_line_thickness;
+ z5=(.5w,11/24w+.5border_line_thickness);
+ z6=(.5w,11/24w-.5border_line_thickness);
+ draw z5..z6;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(9,24/22size#,23/22size#,1/22size#); "prawy dolny rog";
+ pickup pencircle scaled border_line_thickness;
+ z1=(0,11/24w);
+ z2=(.5w,h);
+ rt x3=.5w; y3=11/24w;
+ x4=.5w; bot y4=11/24w;
+ draw z1..z3;
+ draw z2..z4;
+ pickup penrazor scaled border_line_thickness;
+ z5=(.5w,11/24w+.5border_line_thickness);
+ z6=(.5w,11/24w-.5border_line_thickness);
+ draw z5..z6;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(10,24/22size#,23/22size#,1/22size#); "pelny krzyz - pion";
+ pickup pencircle scaled line_thickness;
+ z1=(0,11/24w);
+ z2=(.5w,h);
+ z3=(w,11/24w);
+ z4=(.5w,-d);
+ draw z1..z3;
+ draw z2..z4;
+ cullit;
+ addto currentpicture also -black_circle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(11,24/22size#,23/22size#,1/22size#); "lewy brzeg - pion";
+ pickup pencircle scaled line_thickness;
+ lft x1=.5w; y1=11/24w;
+ z2=(.5w,h);
+ z3=(w,11/24w);
+ z4=(.5w,-d);
+ draw z1..z3;
+ pickup pencircle scaled border_line_thickness;
+ draw z2..z4;
+ cullit;
+ addto currentpicture also -black_circle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(12,24/22size#,23/22size#,1/22size#); "prawy brzeg - pion";
+ pickup pencircle scaled line_thickness;
+ z1=(0,11/24w);
+ z2=(.5w,h);
+ rt x3=.5w; y3=11/24w;
+ z4=(.5w,-d);
+ draw z1..z3;
+ pickup pencircle scaled border_line_thickness;
+ draw z2..z4;
+ cullit;
+ addto currentpicture also -black_circle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(13,24/22size#,23/22size#,1/22size#); "gorny brzeg - pion";
+ pickup pencircle scaled border_line_thickness;
+ z1=(0,11/24w);
+ x2=.5w; top y2=11/24w;
+ z3=(w,11/24w);
+ z4=(.5w,-d);
+ draw z1..z3;
+ pickup pencircle scaled line_thickness;
+ draw z2..z4;
+ cullit;
+ addto currentpicture also -black_circle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(14,24/22size#,23/22size#,1/22size#); "dolny brzeg - pion";
+ pickup pencircle scaled border_line_thickness;
+ z1=(0,11/24w);
+ z2=(.5w,h);
+ z3=(w,11/24w);
+ x4=.5w; bot y4=11/24w;
+ draw z1..z3;
+ pickup pencircle scaled line_thickness;
+ draw z2..z4;
+ cullit;
+ addto currentpicture also -black_circle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(15,24/22size#,23/22size#,1/22size#); "lewy gorny rog - pion";
+ pickup pencircle scaled border_line_thickness;
+ lft x1=.5w; y1=11/24w;
+ x2=.5w; top y2=11/24w;
+ z3=(w,11/24w);
+ z4=(.5w,-d);
+ draw z1..z3;
+ draw z2..z4;
+ pickup penrazor scaled border_line_thickness;
+ z5=(.5w,11/24w+.5border_line_thickness);
+ z6=(.5w,11/24w-.5border_line_thickness);
+ draw z5..z6;
+ cullit;
+ addto currentpicture also -black_circle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(16,24/22size#,23/22size#,1/22size#); "prawy gorny rog - pion";
+ pickup pencircle scaled border_line_thickness;
+ z1=(0,11/24w);
+ x2=.5w; top y2=11/24w;
+ rt x3=.5w; y3=11/24w;
+ z4=(.5w,-d);
+ draw z1..z3;
+ draw z2..z4;
+ pickup penrazor scaled border_line_thickness;
+ z5=(.5w,11/24w+.5border_line_thickness);
+ z6=(.5w,11/24w-.5border_line_thickness);
+ draw z5..z6;
+ cullit;
+ addto currentpicture also -black_circle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(17,24/22size#,23/22size#,1/22size#); "lewy dolny rog - pion";
+ pickup pencircle scaled border_line_thickness;
+ lft x1=.5w; y1=11/24w;
+ z2=(.5w,h);
+ z3=(w,11/24w);
+ x4=.5w; bot y4=11/24w;
+ draw z1..z3;
+ draw z2..z4;
+ pickup penrazor scaled border_line_thickness;
+ z5=(.5w,11/24w+.5border_line_thickness);
+ z6=(.5w,11/24w-.5border_line_thickness);
+ draw z5..z6;
+ cullit;
+ addto currentpicture also -black_circle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(18,24/22size#,23/22size#,1/22size#); "prawy dolny rog - pion";
+ pickup pencircle scaled border_line_thickness;
+ z1=(0,11/24w);
+ z2=(.5w,h);
+ rt x3=.5w; y3=11/24w;
+ x4=.5w; bot y4=11/24w;
+ draw z1..z3;
+ draw z2..z4;
+ pickup penrazor scaled border_line_thickness;
+ z5=(.5w,11/24w+.5border_line_thickness);
+ z6=(.5w,11/24w-.5border_line_thickness);
+ draw z5..z6;
+ cullit;
+ addto currentpicture also -black_circle;
+showit;
+endchar;
+
+% stop"";
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/go/go10.mf b/Master/texmf-dist/fonts/source/public/go/go10.mf
new file mode 100644
index 00000000000..e5bae4ddf6b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go10.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO"; font_size 10pt#;
+
+size#:=10pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=7/10size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go
diff --git a/Master/texmf-dist/fonts/source/public/go/go15.mf b/Master/texmf-dist/fonts/source/public/go/go15.mf
new file mode 100644
index 00000000000..7a86a9e7d7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go15.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO"; font_size 15pt#;
+
+size#:=15pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=7/10size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go
diff --git a/Master/texmf-dist/fonts/source/public/go/go1bla10.mf b/Master/texmf-dist/fonts/source/public/go/go1bla10.mf
new file mode 100644
index 00000000000..ebb13bf04d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go1bla10.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO1BLACK"; font_size 10pt#;
+
+size#:=10pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go1black
diff --git a/Master/texmf-dist/fonts/source/public/go/go1bla15.mf b/Master/texmf-dist/fonts/source/public/go/go1bla15.mf
new file mode 100644
index 00000000000..9f2299268b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go1bla15.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO1BLACK"; font_size 15pt#;
+
+size#:=15pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go1black
diff --git a/Master/texmf-dist/fonts/source/public/go/go1bla20.mf b/Master/texmf-dist/fonts/source/public/go/go1bla20.mf
new file mode 100644
index 00000000000..a4a21afe775
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go1bla20.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO1BLACK"; font_size 20pt#;
+
+size#:=20pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go1black
diff --git a/Master/texmf-dist/fonts/source/public/go/go1black.mf b/Master/texmf-dist/fonts/source/public/go/go1black.mf
new file mode 100644
index 00000000000..c6924a546e2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go1black.mf
@@ -0,0 +1,1341 @@
+mode_setup;
+
+define_pixels(size);
+define_pixels(line_thickness,border_line_thickness);
+define_pixels(dig_h,dig_w,dig_pen);
+
+picture digit[];
+picture black_circle;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def digit_zero =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.5dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=dig_w; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ draw z1...z2...z3...z4...cycle;
+ digit[0] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_one =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.5dig_w; bot y1=0;
+ x2=.5dig_w; top y2=dig_h;
+ draw z1--z2;
+ digit[1] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_two =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.8dig_w; y3=.9dig_h;
+ lft x4=0; bot y4=0;
+ draw z1{up}...z2...z3..{(-.8dig_w,-dig_h)}z4;
+ z5=z4;
+ rt x6=dig_w; bot y6=0;
+ draw z5--z6;
+ digit[2] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_three =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.8dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.52dig_h);
+ rt x5=dig_w; y5=.2dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1{up}..z2..z3..{left}z4{right}..z5..z6...{up}z7;
+ digit[3] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_four =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.75dig_w; bot y1=0;
+ x2=x1; top y2=dig_h;
+ lft x3=0; y3=.3dig_h;
+ rt x4=dig_w; y4=y3;
+ draw z1--z2--z3--z4;
+ digit[4] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_five =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=.95dig_w; top y1=dig_h;
+ lft x2=.05dig_w; y2=y1;
+ lft x3=0; y3=.45dig_h;
+ z4=(.5dig_w,.6dig_h);
+ rt x5=dig_w; y5=.3dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=.15dig_h;
+ draw z1--z2--z3{up}..z4..z5..z6...{up}z7;
+ digit[5] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_six =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=dig_w; y1=.8dig_h;
+ x2=.45dig_w; top y2=dig_h;
+ lft x3=0; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ rt x5=dig_w; y5=.3dig_h;
+ z6=(.53dig_w,.55dig_h);
+ z7=(.03dig_w+.6dig_pen,.25dig_h);
+ draw z1{up}...z2...z3...z4...z5...{left}z6{left}...{(1,-10)}z7;
+ digit[6] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_seven =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; top y1=dig_h;
+ rt x2=dig_w; y2=y1;
+ lft x3=.2dig_w; bot y3=0;
+ draw z1--z2--z3;
+ digit[7] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_eight =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.55dig_h);
+ rt x5=dig_w; y5=.25dig_h;
+ x6=.5dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1...z2...z3...z4...cycle;
+ draw z4...z5...z6...z7...cycle;
+ digit[8] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_nine =
+ currentpicture := nullpicture;
+ currentpicture := digit[6] rotated 180;
+ digit[9] := currentpicture shifted (dig_w,dig_h);
+ clearxy; clearit; clearpen;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(0,24/22size#,23/22size#,1/22size#); "pion czarny";
+ pickup pencircle scaled line_thickness;
+ lft x1=1/24w; y1=11/24w;
+ rt x2=23/24w; y2=11/24w;
+ filldraw z1..z2..cycle;
+ black_circle := currentpicture;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(1,24/22size#,23/22size#,1/22size#); "pion czarny z 1";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(2,24/22size#,23/22size#,1/22size#); "pion czarny z 2";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(3,24/22size#,23/22size#,1/22size#); "pion czarny z 3";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(4,24/22size#,23/22size#,1/22size#); "pion czarny z 4";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(5,24/22size#,23/22size#,1/22size#); "pion czarny z 5";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(6,24/22size#,23/22size#,1/22size#); "pion czarny z 6";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(7,24/22size#,23/22size#,1/22size#); "pion czarny z 7";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(8,24/22size#,23/22size#,1/22size#); "pion czarny z 8";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(9,24/22size#,23/22size#,1/22size#); "pion czarny z 9";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dig_w := .7dig_w;
+%%%dig_pen := .7dig_pen;
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(10,24/22size#,23/22size#,1/22size#); "pion czarny z 10";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(11,24/22size#,23/22size#,1/22size#); "pion czarny z 11";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(12,24/22size#,23/22size#,1/22size#); "pion czarny z 12";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(13,24/22size#,23/22size#,1/22size#); "pion czarny z 13";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(14,24/22size#,23/22size#,1/22size#); "pion czarny z 14";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(15,24/22size#,23/22size#,1/22size#); "pion czarny z 15";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(16,24/22size#,23/22size#,1/22size#); "pion czarny z 16";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(17,24/22size#,23/22size#,1/22size#); "pion czarny z 17";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(18,24/22size#,23/22size#,1/22size#); "pion czarny z 18";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(19,24/22size#,23/22size#,1/22size#); "pion czarny z 19";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(20,24/22size#,23/22size#,1/22size#); "pion czarny z 20";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(21,24/22size#,23/22size#,1/22size#); "pion czarny z 21";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(22,24/22size#,23/22size#,1/22size#); "pion czarny z 22";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(23,24/22size#,23/22size#,1/22size#); "pion czarny z 23";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(24,24/22size#,23/22size#,1/22size#); "pion czarny z 24";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(25,24/22size#,23/22size#,1/22size#); "pion czarny z 25";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(26,24/22size#,23/22size#,1/22size#); "pion czarny z 26";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(27,24/22size#,23/22size#,1/22size#); "pion czarny z 27";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(28,24/22size#,23/22size#,1/22size#); "pion czarny z 28";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(29,24/22size#,23/22size#,1/22size#); "pion czarny z 29";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(30,24/22size#,23/22size#,1/22size#); "pion czarny z 30";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(31,24/22size#,23/22size#,1/22size#); "pion czarny z 31";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(32,24/22size#,23/22size#,1/22size#); "pion czarny z 32";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(33,24/22size#,23/22size#,1/22size#); "pion czarny z 33";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(34,24/22size#,23/22size#,1/22size#); "pion czarny z 34";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(35,24/22size#,23/22size#,1/22size#); "pion czarny z 35";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(36,24/22size#,23/22size#,1/22size#); "pion czarny z 36";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(37,24/22size#,23/22size#,1/22size#); "pion czarny z 37";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(38,24/22size#,23/22size#,1/22size#); "pion czarny z 38";
+ currentpicture := black_circle
+ - digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(39,24/22size#,23/22size#,1/22size#); "pion czarny z 39";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(40,24/22size#,23/22size#,1/22size#); "pion czarny z 40";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(41,24/22size#,23/22size#,1/22size#); "pion czarny z 41";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(42,24/22size#,23/22size#,1/22size#); "pion czarny z 42";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(43,24/22size#,23/22size#,1/22size#); "pion czarny z 43";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(44,24/22size#,23/22size#,1/22size#); "pion czarny z 44";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(45,24/22size#,23/22size#,1/22size#); "pion czarny z 45";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(46,24/22size#,23/22size#,1/22size#); "pion czarny z 46";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(47,24/22size#,23/22size#,1/22size#); "pion czarny z 47";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(48,24/22size#,23/22size#,1/22size#); "pion czarny z 48";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(49,24/22size#,23/22size#,1/22size#); "pion czarny z 49";
+ currentpicture := black_circle
+ - digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(50,24/22size#,23/22size#,1/22size#); "pion czarny z 50";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(51,24/22size#,23/22size#,1/22size#); "pion czarny z 51";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(52,24/22size#,23/22size#,1/22size#); "pion czarny z 52";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(53,24/22size#,23/22size#,1/22size#); "pion czarny z 53";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(54,24/22size#,23/22size#,1/22size#); "pion czarny z 54";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(55,24/22size#,23/22size#,1/22size#); "pion czarny z 55";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(56,24/22size#,23/22size#,1/22size#); "pion czarny z 56";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(57,24/22size#,23/22size#,1/22size#); "pion czarny z 57";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(58,24/22size#,23/22size#,1/22size#); "pion czarny z 58";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(59,24/22size#,23/22size#,1/22size#); "pion czarny z 59";
+ currentpicture := black_circle
+ - digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(60,24/22size#,23/22size#,1/22size#); "pion czarny z 60";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(61,24/22size#,23/22size#,1/22size#); "pion czarny z 61";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(62,24/22size#,23/22size#,1/22size#); "pion czarny z 62";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(63,24/22size#,23/22size#,1/22size#); "pion czarny z 63";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(64,24/22size#,23/22size#,1/22size#); "pion czarny z 64";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(65,24/22size#,23/22size#,1/22size#); "pion czarny z 65";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(66,24/22size#,23/22size#,1/22size#); "pion czarny z 66";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(67,24/22size#,23/22size#,1/22size#); "pion czarny z 67";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(68,24/22size#,23/22size#,1/22size#); "pion czarny z 68";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(69,24/22size#,23/22size#,1/22size#); "pion czarny z 69";
+ currentpicture := black_circle
+ - digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(70,24/22size#,23/22size#,1/22size#); "pion czarny z 70";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(71,24/22size#,23/22size#,1/22size#); "pion czarny z 71";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(72,24/22size#,23/22size#,1/22size#); "pion czarny z 72";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(73,24/22size#,23/22size#,1/22size#); "pion czarny z 73";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(74,24/22size#,23/22size#,1/22size#); "pion czarny z 74";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(75,24/22size#,23/22size#,1/22size#); "pion czarny z 75";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(76,24/22size#,23/22size#,1/22size#); "pion czarny z 76";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(77,24/22size#,23/22size#,1/22size#); "pion czarny z 77";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(78,24/22size#,23/22size#,1/22size#); "pion czarny z 78";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(79,24/22size#,23/22size#,1/22size#); "pion czarny z 79";
+ currentpicture := black_circle
+ - digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(80,24/22size#,23/22size#,1/22size#); "pion czarny z 80";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(81,24/22size#,23/22size#,1/22size#); "pion czarny z 81";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(82,24/22size#,23/22size#,1/22size#); "pion czarny z 82";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(83,24/22size#,23/22size#,1/22size#); "pion czarny z 83";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(84,24/22size#,23/22size#,1/22size#); "pion czarny z 84";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(85,24/22size#,23/22size#,1/22size#); "pion czarny z 85";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(86,24/22size#,23/22size#,1/22size#); "pion czarny z 86";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(87,24/22size#,23/22size#,1/22size#); "pion czarny z 87";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(88,24/22size#,23/22size#,1/22size#); "pion czarny z 88";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(89,24/22size#,23/22size#,1/22size#); "pion czarny z 89";
+ currentpicture := black_circle
+ - digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(90,24/22size#,23/22size#,1/22size#); "pion czarny z 90";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(91,24/22size#,23/22size#,1/22size#); "pion czarny z 91";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(92,24/22size#,23/22size#,1/22size#); "pion czarny z 92";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(93,24/22size#,23/22size#,1/22size#); "pion czarny z 93";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(94,24/22size#,23/22size#,1/22size#); "pion czarny z 94";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(95,24/22size#,23/22size#,1/22size#); "pion czarny z 95";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(96,24/22size#,23/22size#,1/22size#); "pion czarny z 96";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(97,24/22size#,23/22size#,1/22size#); "pion czarny z 97";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(98,24/22size#,23/22size#,1/22size#); "pion czarny z 98";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(99,24/22size#,23/22size#,1/22size#); "pion czarny z 99";
+ currentpicture := black_circle
+ - digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dig_w := .6dig_w;
+dig_pen := .7dig_pen;
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(100,24/22size#,23/22size#,1/22size#); "pion czarny z 100";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(101,24/22size#,23/22size#,1/22size#); "pion czarny z 101";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(102,24/22size#,23/22size#,1/22size#); "pion czarny z 102";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(103,24/22size#,23/22size#,1/22size#); "pion czarny z 103";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(104,24/22size#,23/22size#,1/22size#); "pion czarny z 104";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(105,24/22size#,23/22size#,1/22size#); "pion czarny z 105";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(106,24/22size#,23/22size#,1/22size#); "pion czarny z 106";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(107,24/22size#,23/22size#,1/22size#); "pion czarny z 107";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(108,24/22size#,23/22size#,1/22size#); "pion czarny z 108";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(109,24/22size#,23/22size#,1/22size#); "pion czarny z 109";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(110,24/22size#,23/22size#,1/22size#); "pion czarny z 110";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(111,24/22size#,23/22size#,1/22size#); "pion czarny z 111";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(112,24/22size#,23/22size#,1/22size#); "pion czarny z 112";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(113,24/22size#,23/22size#,1/22size#); "pion czarny z 113";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(114,24/22size#,23/22size#,1/22size#); "pion czarny z 114";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.15dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(115,24/22size#,23/22size#,1/22size#); "pion czarny z 115";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(116,24/22size#,23/22size#,1/22size#); "pion czarny z 116";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(117,24/22size#,23/22size#,1/22size#); "pion czarny z 117";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(118,24/22size#,23/22size#,1/22size#); "pion czarny z 118";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(119,24/22size#,23/22size#,1/22size#); "pion czarny z 119";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(120,24/22size#,23/22size#,1/22size#); "pion czarny z 120";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(121,24/22size#,23/22size#,1/22size#); "pion czarny z 121";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(122,24/22size#,23/22size#,1/22size#); "pion czarny z 122";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(123,24/22size#,23/22size#,1/22size#); "pion czarny z 123";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(124,24/22size#,23/22size#,1/22size#); "pion czarny z 124";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(125,24/22size#,23/22size#,1/22size#); "pion czarny z 125";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(126,24/22size#,23/22size#,1/22size#); "pion czarny z 126";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(127,24/22size#,23/22size#,1/22size#); "pion czarny z 127";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/go/go1whi10.mf b/Master/texmf-dist/fonts/source/public/go/go1whi10.mf
new file mode 100644
index 00000000000..e39b02d0c1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go1whi10.mf
@@ -0,0 +1,14 @@
+font_identifier:="GO1WHITE"; font_size 10pt#;
+
+size#:=10pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go1white
+
diff --git a/Master/texmf-dist/fonts/source/public/go/go1whi15.mf b/Master/texmf-dist/fonts/source/public/go/go1whi15.mf
new file mode 100644
index 00000000000..6e5343e2ed8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go1whi15.mf
@@ -0,0 +1,14 @@
+font_identifier:="GO1WHITE"; font_size 15pt#;
+
+size#:=15pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go1white
+
diff --git a/Master/texmf-dist/fonts/source/public/go/go1whi20.mf b/Master/texmf-dist/fonts/source/public/go/go1whi20.mf
new file mode 100644
index 00000000000..20ffd1e544a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go1whi20.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO1WHITE"; font_size 20pt#;
+
+size#:=20pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go1white
diff --git a/Master/texmf-dist/fonts/source/public/go/go1white.mf b/Master/texmf-dist/fonts/source/public/go/go1white.mf
new file mode 100644
index 00000000000..7528fd1d6d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go1white.mf
@@ -0,0 +1,1341 @@
+mode_setup;
+
+define_pixels(size);
+define_pixels(line_thickness,border_line_thickness);
+define_pixels(dig_h,dig_w,dig_pen);
+
+picture digit[];
+picture white_circle;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def digit_zero =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.5dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=dig_w; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ draw z1...z2...z3...z4...cycle;
+ digit[0] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_one =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.5dig_w; bot y1=0;
+ x2=.5dig_w; top y2=dig_h;
+ draw z1--z2;
+ digit[1] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_two =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.8dig_w; y3=.9dig_h;
+ lft x4=0; bot y4=0;
+ draw z1{up}...z2...z3..{(-.8dig_w,-dig_h)}z4;
+ z5=z4;
+ rt x6=dig_w; bot y6=0;
+ draw z5--z6;
+ digit[2] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_three =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.8dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.52dig_h);
+ rt x5=dig_w; y5=.2dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1{up}..z2..z3..{left}z4{right}..z5..z6...{up}z7;
+ digit[3] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_four =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.75dig_w; bot y1=0;
+ x2=x1; top y2=dig_h;
+ lft x3=0; y3=.3dig_h;
+ rt x4=dig_w; y4=y3;
+ draw z1--z2--z3--z4;
+ digit[4] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_five =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=.95dig_w; top y1=dig_h;
+ lft x2=.05dig_w; y2=y1;
+ lft x3=0; y3=.45dig_h;
+ z4=(.5dig_w,.6dig_h);
+ rt x5=dig_w; y5=.3dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=.15dig_h;
+ draw z1--z2--z3{up}..z4..z5..z6...{up}z7;
+ digit[5] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_six =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=dig_w; y1=.8dig_h;
+ x2=.45dig_w; top y2=dig_h;
+ lft x3=0; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ rt x5=dig_w; y5=.3dig_h;
+ z6=(.53dig_w,.55dig_h);
+ z7=(.03dig_w+.6dig_pen,.25dig_h);
+ draw z1{up}...z2...z3...z4...z5...{left}z6{left}...{(1,-10)}z7;
+ digit[6] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_seven =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; top y1=dig_h;
+ rt x2=dig_w; y2=y1;
+ lft x3=.2dig_w; bot y3=0;
+ draw z1--z2--z3;
+ digit[7] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_eight =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.55dig_h);
+ rt x5=dig_w; y5=.25dig_h;
+ x6=.5dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1...z2...z3...z4...cycle;
+ draw z4...z5...z6...z7...cycle;
+ digit[8] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_nine =
+ currentpicture := nullpicture;
+ currentpicture := digit[6] rotated 180;
+ digit[9] := currentpicture shifted (dig_w,dig_h);
+ clearxy; clearit; clearpen;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(0,24/22size#,23/22size#,1/22size#); "pion bialy";
+ pickup pencircle scaled line_thickness;
+ lft x1=1/24w; y1=11/24w;
+ rt x2=23/24w; y2=11/24w;
+ draw z1..z2..cycle;
+ white_circle := currentpicture;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(1,24/22size#,23/22size#,1/22size#); "pion bialy z 1";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(2,24/22size#,23/22size#,1/22size#); "pion bialy z 2";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(3,24/22size#,23/22size#,1/22size#); "pion bialy z 3";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(4,24/22size#,23/22size#,1/22size#); "pion bialy z 4";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(5,24/22size#,23/22size#,1/22size#); "pion bialy z 5";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(6,24/22size#,23/22size#,1/22size#); "pion bialy z 6";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(7,24/22size#,23/22size#,1/22size#); "pion bialy z 7";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(8,24/22size#,23/22size#,1/22size#); "pion bialy z 8";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(9,24/22size#,23/22size#,1/22size#); "pion bialy z 9";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dig_w := .7dig_w;
+dig_pen := .7dig_pen;
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(10,24/22size#,23/22size#,1/22size#); "pion bialy z 10";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(11,24/22size#,23/22size#,1/22size#); "pion bialy z 11";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(12,24/22size#,23/22size#,1/22size#); "pion bialy z 12";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(13,24/22size#,23/22size#,1/22size#); "pion czarny z 13";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(14,24/22size#,23/22size#,1/22size#); "pion bialy z 14";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(15,24/22size#,23/22size#,1/22size#); "pion czarny z 15";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(16,24/22size#,23/22size#,1/22size#); "pion bialy z 16";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(17,24/22size#,23/22size#,1/22size#); "pion czarny z 17";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(18,24/22size#,23/22size#,1/22size#); "pion bialy z 18";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(19,24/22size#,23/22size#,1/22size#); "pion czarny z 19";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(20,24/22size#,23/22size#,1/22size#); "pion bialy z 20";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(21,24/22size#,23/22size#,1/22size#); "pion czarny z 21";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(22,24/22size#,23/22size#,1/22size#); "pion bialy z 22";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(23,24/22size#,23/22size#,1/22size#); "pion czarny z 23";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(24,24/22size#,23/22size#,1/22size#); "pion bialy z 24";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(25,24/22size#,23/22size#,1/22size#); "pion czarny z 25";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(26,24/22size#,23/22size#,1/22size#); "pion bialy z 26";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(27,24/22size#,23/22size#,1/22size#); "pion czarny z 27";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(28,24/22size#,23/22size#,1/22size#); "pion bialy z 28";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(29,24/22size#,23/22size#,1/22size#); "pion czarny z 29";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(30,24/22size#,23/22size#,1/22size#); "pion bialy z 30";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(31,24/22size#,23/22size#,1/22size#); "pion czarny z 31";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(32,24/22size#,23/22size#,1/22size#); "pion bialy z 32";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(33,24/22size#,23/22size#,1/22size#); "pion czarny z 33";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(34,24/22size#,23/22size#,1/22size#); "pion bialy z 34";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(35,24/22size#,23/22size#,1/22size#); "pion czarny z 35";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(36,24/22size#,23/22size#,1/22size#); "pion bialy z 36";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(37,24/22size#,23/22size#,1/22size#); "pion czarny z 37";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(38,24/22size#,23/22size#,1/22size#); "pion bialy z 38";
+ currentpicture := white_circle
+ + digit[3] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(39,24/22size#,23/22size#,1/22size#); "pion czarny z 39";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(40,24/22size#,23/22size#,1/22size#); "pion bialy z 40";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(41,24/22size#,23/22size#,1/22size#); "pion czarny z 41";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(42,24/22size#,23/22size#,1/22size#); "pion bialy z 42";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(43,24/22size#,23/22size#,1/22size#); "pion czarny z 43";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(44,24/22size#,23/22size#,1/22size#); "pion bialy z 44";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(45,24/22size#,23/22size#,1/22size#); "pion czarny z 45";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(46,24/22size#,23/22size#,1/22size#); "pion bialy z 46";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(47,24/22size#,23/22size#,1/22size#); "pion czarny z 47";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(48,24/22size#,23/22size#,1/22size#); "pion bialy z 48";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(49,24/22size#,23/22size#,1/22size#); "pion czarny z 49";
+ currentpicture := white_circle
+ + digit[4] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(50,24/22size#,23/22size#,1/22size#); "pion bialy z 50";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(51,24/22size#,23/22size#,1/22size#); "pion czarny z 51";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(52,24/22size#,23/22size#,1/22size#); "pion bialy z 52";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(53,24/22size#,23/22size#,1/22size#); "pion czarny z 53";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(54,24/22size#,23/22size#,1/22size#); "pion bialy z 54";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(55,24/22size#,23/22size#,1/22size#); "pion czarny z 55";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(56,24/22size#,23/22size#,1/22size#); "pion bialy z 56";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(57,24/22size#,23/22size#,1/22size#); "pion czarny z 57";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(58,24/22size#,23/22size#,1/22size#); "pion bialy z 58";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(59,24/22size#,23/22size#,1/22size#); "pion czarny z 59";
+ currentpicture := white_circle
+ + digit[5] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(60,24/22size#,23/22size#,1/22size#); "pion bialy z 60";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(61,24/22size#,23/22size#,1/22size#); "pion czarny z 61";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(62,24/22size#,23/22size#,1/22size#); "pion bialy z 62";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(63,24/22size#,23/22size#,1/22size#); "pion czarny z 63";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(64,24/22size#,23/22size#,1/22size#); "pion bialy z 64";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(65,24/22size#,23/22size#,1/22size#); "pion czarny z 65";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(66,24/22size#,23/22size#,1/22size#); "pion bialy z 66";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(67,24/22size#,23/22size#,1/22size#); "pion czarny z 67";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(68,24/22size#,23/22size#,1/22size#); "pion bialy z 68";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(69,24/22size#,23/22size#,1/22size#); "pion czarny z 69";
+ currentpicture := white_circle
+ + digit[6] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(70,24/22size#,23/22size#,1/22size#); "pion bialy z 70";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(71,24/22size#,23/22size#,1/22size#); "pion czarny z 71";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(72,24/22size#,23/22size#,1/22size#); "pion bialy z 72";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(73,24/22size#,23/22size#,1/22size#); "pion czarny z 73";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(74,24/22size#,23/22size#,1/22size#); "pion bialy z 74";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(75,24/22size#,23/22size#,1/22size#); "pion czarny z 75";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(76,24/22size#,23/22size#,1/22size#); "pion bialy z 76";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(77,24/22size#,23/22size#,1/22size#); "pion czarny z 77";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(78,24/22size#,23/22size#,1/22size#); "pion bialy z 78";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(79,24/22size#,23/22size#,1/22size#); "pion czarny z 79";
+ currentpicture := white_circle
+ + digit[7] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(80,24/22size#,23/22size#,1/22size#); "pion bialy z 80";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(81,24/22size#,23/22size#,1/22size#); "pion czarny z 81";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(82,24/22size#,23/22size#,1/22size#); "pion bialy z 82";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(83,24/22size#,23/22size#,1/22size#); "pion czarny z 83";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(84,24/22size#,23/22size#,1/22size#); "pion bialy z 84";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(85,24/22size#,23/22size#,1/22size#); "pion czarny z 85";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(86,24/22size#,23/22size#,1/22size#); "pion bialy z 86";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(87,24/22size#,23/22size#,1/22size#); "pion czarny z 87";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(88,24/22size#,23/22size#,1/22size#); "pion bialy z 88";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(89,24/22size#,23/22size#,1/22size#); "pion czarny z 89";
+ currentpicture := white_circle
+ + digit[8] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(90,24/22size#,23/22size#,1/22size#); "pion bialy z 90";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(91,24/22size#,23/22size#,1/22size#); "pion czarny z 91";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-.9dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(92,24/22size#,23/22size#,1/22size#); "pion bialy z 92";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(93,24/22size#,23/22size#,1/22size#); "pion czarny z 93";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(94,24/22size#,23/22size#,1/22size#); "pion bialy z 94";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(95,24/22size#,23/22size#,1/22size#); "pion czarny z 95";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(96,24/22size#,23/22size#,1/22size#); "pion bialy z 96";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(97,24/22size#,23/22size#,1/22size#); "pion czarny z 97";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(98,24/22size#,23/22size#,1/22size#); "pion bialy z 98";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(99,24/22size#,23/22size#,1/22size#); "pion czarny z 99";
+ currentpicture := white_circle
+ + digit[9] shifted (.5w-1.1dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.1dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dig_w := .6dig_w;
+dig_pen := .7dig_pen;
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(100,24/22size#,23/22size#,1/22size#); "pion bialy z 100";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(101,24/22size#,23/22size#,1/22size#); "pion czarny z 101";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(102,24/22size#,23/22size#,1/22size#); "pion bialy z 102";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(103,24/22size#,23/22size#,1/22size#); "pion czarny z 103";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(104,24/22size#,23/22size#,1/22size#); "pion bialy z 104";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(105,24/22size#,23/22size#,1/22size#); "pion czarny z 105";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(106,24/22size#,23/22size#,1/22size#); "pion bialy z 106";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(107,24/22size#,23/22size#,1/22size#); "pion czarny z 107";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(108,24/22size#,23/22size#,1/22size#); "pion bialy z 108";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(109,24/22size#,23/22size#,1/22size#); "pion czarny z 109";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(110,24/22size#,23/22size#,1/22size#); "pion bialy z 110";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(111,24/22size#,23/22size#,1/22size#); "pion czarny z 111";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.2dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(112,24/22size#,23/22size#,1/22size#); "pion bialy z 112";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(113,24/22size#,23/22size#,1/22size#); "pion czarny z 113";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(114,24/22size#,23/22size#,1/22size#); "pion bialy z 114";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.15dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(115,24/22size#,23/22size#,1/22size#); "pion czarny z 115";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(116,24/22size#,23/22size#,1/22size#); "pion bialy z 116";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(117,24/22size#,23/22size#,1/22size#); "pion czarny z 117";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(118,24/22size#,23/22size#,1/22size#); "pion bialy z 118";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(119,24/22size#,23/22size#,1/22size#); "pion czarny z 119";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.2dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(120,24/22size#,23/22size#,1/22size#); "pion bialy z 120";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(121,24/22size#,23/22size#,1/22size#); "pion czarny z 121";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(122,24/22size#,23/22size#,1/22size#); "pion bialy z 122";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(123,24/22size#,23/22size#,1/22size#); "pion czarny z 123";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(124,24/22size#,23/22size#,1/22size#); "pion bialy z 124";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(125,24/22size#,23/22size#,1/22size#); "pion czarny z 125";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(126,24/22size#,23/22size#,1/22size#); "pion bialy z 126";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(127,24/22size#,23/22size#,1/22size#); "pion czarny z 127";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/go/go20.mf b/Master/texmf-dist/fonts/source/public/go/go20.mf
new file mode 100644
index 00000000000..48fa2d43198
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go20.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO"; font_size 20pt#;
+
+size#:=20pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=7/10size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go
diff --git a/Master/texmf-dist/fonts/source/public/go/go2bla10.mf b/Master/texmf-dist/fonts/source/public/go/go2bla10.mf
new file mode 100644
index 00000000000..f851989fdd4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go2bla10.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO2BLACK"; font_size 10pt#;
+
+size#:=10pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go2black
diff --git a/Master/texmf-dist/fonts/source/public/go/go2bla15.mf b/Master/texmf-dist/fonts/source/public/go/go2bla15.mf
new file mode 100644
index 00000000000..2d0ec3c8c7e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go2bla15.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO2BLACK"; font_size 15pt#;
+
+size#:=15pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go2black
diff --git a/Master/texmf-dist/fonts/source/public/go/go2bla20.mf b/Master/texmf-dist/fonts/source/public/go/go2bla20.mf
new file mode 100644
index 00000000000..e08a3e34962
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go2bla20.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO2BLACK"; font_size 20pt#;
+
+size#:=20pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go2black
diff --git a/Master/texmf-dist/fonts/source/public/go/go2black.mf b/Master/texmf-dist/fonts/source/public/go/go2black.mf
new file mode 100644
index 00000000000..8d88b7c31a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go2black.mf
@@ -0,0 +1,1446 @@
+mode_setup;
+
+define_pixels(size);
+define_pixels(line_thickness,border_line_thickness);
+define_pixels(dig_h,dig_w,dig_pen);
+
+picture digit[];
+picture black_circle;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def digit_zero =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.5dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=dig_w; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ draw z1...z2...z3...z4...cycle;
+ digit[0] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_one =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.5dig_w; bot y1=0;
+ x2=.5dig_w; top y2=dig_h;
+ draw z1--z2;
+ digit[1] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_two =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.8dig_w; y3=.9dig_h;
+ lft x4=0; bot y4=0;
+ draw z1{up}...z2...z3..{(-.8dig_w,-dig_h)}z4;
+ z5=z4;
+ rt x6=dig_w; bot y6=0;
+ draw z5--z6;
+ digit[2] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_three =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.8dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.52dig_h);
+ rt x5=dig_w; y5=.2dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1{up}..z2..z3..{left}z4{right}..z5..z6...{up}z7;
+ digit[3] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_four =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.75dig_w; bot y1=0;
+ x2=x1; top y2=dig_h;
+ lft x3=0; y3=.3dig_h;
+ rt x4=dig_w; y4=y3;
+ draw z1--z2--z3--z4;
+ digit[4] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_five =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=.95dig_w; top y1=dig_h;
+ lft x2=.05dig_w; y2=y1;
+ lft x3=0; y3=.45dig_h;
+ z4=(.5dig_w,.6dig_h);
+ rt x5=dig_w; y5=.3dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=.15dig_h;
+ draw z1--z2--z3{up}..z4..z5..z6...{up}z7;
+ digit[5] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_six =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=dig_w; y1=.8dig_h;
+ x2=.45dig_w; top y2=dig_h;
+ lft x3=0; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ rt x5=dig_w; y5=.3dig_h;
+ z6=(.53dig_w,.55dig_h);
+ z7=(.03dig_w+.6dig_pen,.25dig_h);
+ draw z1{up}...z2...z3...z4...z5...{left}z6{left}...{(1,-10)}z7;
+ digit[6] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_seven =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; top y1=dig_h;
+ rt x2=dig_w; y2=y1;
+ lft x3=.2dig_w; bot y3=0;
+ draw z1--z2--z3;
+ digit[7] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_eight =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.55dig_h);
+ rt x5=dig_w; y5=.25dig_h;
+ x6=.5dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1...z2...z3...z4...cycle;
+ draw z4...z5...z6...z7...cycle;
+ digit[8] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_nine =
+ currentpicture := nullpicture;
+ currentpicture := digit[6] rotated 180;
+ digit[9] := currentpicture shifted (dig_w,dig_h);
+ clearxy; clearit; clearpen;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dig_w := .7dig_w;
+%%%dig_pen := .7dig_pen;
+
+dig_w := .6dig_w;
+dig_pen := .7dig_pen;
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(0,24/22size#,23/22size#,1/22size#); "pion czarny z 128";
+ pickup pencircle scaled line_thickness;
+ lft x1=1/24w; y1=11/24w;
+ rt x2=23/24w; y2=11/24w;
+ filldraw z1..z2..cycle;
+ black_circle := currentpicture;
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(1,24/22size#,23/22size#,1/22size#); "pion czarny z 129";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(2,24/22size#,23/22size#,1/22size#); "pion czarny z 130";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(3,24/22size#,23/22size#,1/22size#); "pion czarny z 131";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(4,24/22size#,23/22size#,1/22size#); "pion czarny z 132";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(5,24/22size#,23/22size#,1/22size#); "pion czarny z 133";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(6,24/22size#,23/22size#,1/22size#); "pion czarny z 134";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(7,24/22size#,23/22size#,1/22size#); "pion czarny z 135";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(8,24/22size#,23/22size#,1/22size#); "pion czarny z 136";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(9,24/22size#,23/22size#,1/22size#); "pion czarny z 137";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(10,24/22size#,23/22size#,1/22size#); "pion czarny z 138";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(11,24/22size#,23/22size#,1/22size#); "pion czarny z 139";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(12,24/22size#,23/22size#,1/22size#); "pion czarny z 140";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(13,24/22size#,23/22size#,1/22size#); "pion czarny z 141";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.6dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(14,24/22size#,23/22size#,1/22size#); "pion czarny z 142";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(15,24/22size#,23/22size#,1/22size#); "pion czarny z 143";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(16,24/22size#,23/22size#,1/22size#); "pion czarny z 144";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.65dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(17,24/22size#,23/22size#,1/22size#); "pion czarny z 145";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(18,24/22size#,23/22size#,1/22size#); "pion czarny z 146";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(19,24/22size#,23/22size#,1/22size#); "pion czarny z 147";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(20,24/22size#,23/22size#,1/22size#); "pion czarny z 148";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(21,24/22size#,23/22size#,1/22size#); "pion czarny z 149";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(22,24/22size#,23/22size#,1/22size#); "pion czarny z 150";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(23,24/22size#,23/22size#,1/22size#); "pion czarny z 151";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(24,24/22size#,23/22size#,1/22size#); "pion czarny z 152";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(25,24/22size#,23/22size#,1/22size#); "pion czarny z 153";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(26,24/22size#,23/22size#,1/22size#); "pion czarny z 154";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(27,24/22size#,23/22size#,1/22size#); "pion czarny z 155";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(28,24/22size#,23/22size#,1/22size#); "pion czarny z 156";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(29,24/22size#,23/22size#,1/22size#); "pion czarny z 157";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(30,24/22size#,23/22size#,1/22size#); "pion czarny z 158";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(31,24/22size#,23/22size#,1/22size#); "pion czarny z 159";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(32,24/22size#,23/22size#,1/22size#); "pion czarny z 160";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(33,24/22size#,23/22size#,1/22size#); "pion czarny z 161";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(34,24/22size#,23/22size#,1/22size#); "pion czarny z 162";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(35,24/22size#,23/22size#,1/22size#); "pion czarny z 163";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(36,24/22size#,23/22size#,1/22size#); "pion czarny z 164";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(37,24/22size#,23/22size#,1/22size#); "pion czarny z 165";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(38,24/22size#,23/22size#,1/22size#); "pion czarny z 166";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(39,24/22size#,23/22size#,1/22size#); "pion czarny z 167";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(40,24/22size#,23/22size#,1/22size#); "pion czarny z 168";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(41,24/22size#,23/22size#,1/22size#); "pion czarny z 169";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(42,24/22size#,23/22size#,1/22size#); "pion czarny z 170";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(43,24/22size#,23/22size#,1/22size#); "pion czarny z 171";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(44,24/22size#,23/22size#,1/22size#); "pion czarny z 172";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(45,24/22size#,23/22size#,1/22size#); "pion czarny z 173";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(46,24/22size#,23/22size#,1/22size#); "pion czarny z 174";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(47,24/22size#,23/22size#,1/22size#); "pion czarny z 175";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(48,24/22size#,23/22size#,1/22size#); "pion czarny z 176";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(49,24/22size#,23/22size#,1/22size#); "pion czarny z 177";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(50,24/22size#,23/22size#,1/22size#); "pion czarny z 178";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(51,24/22size#,23/22size#,1/22size#); "pion czarny z 179";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(52,24/22size#,23/22size#,1/22size#); "pion czarny z 180";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(53,24/22size#,23/22size#,1/22size#); "pion czarny z 181";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(54,24/22size#,23/22size#,1/22size#); "pion czarny z 182";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(55,24/22size#,23/22size#,1/22size#); "pion czarny z 183";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(56,24/22size#,23/22size#,1/22size#); "pion czarny z 184";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(57,24/22size#,23/22size#,1/22size#); "pion czarny z 185";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(58,24/22size#,23/22size#,1/22size#); "pion czarny z 186";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(59,24/22size#,23/22size#,1/22size#); "pion czarny z 187";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(60,24/22size#,23/22size#,1/22size#); "pion czarny z 188";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(61,24/22size#,23/22size#,1/22size#); "pion czarny z 189";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(62,24/22size#,23/22size#,1/22size#); "pion czarny z 190";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(63,24/22size#,23/22size#,1/22size#); "pion czarny z 191";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(64,24/22size#,23/22size#,1/22size#); "pion czarny z 192";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(65,24/22size#,23/22size#,1/22size#); "pion czarny z 193";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(66,24/22size#,23/22size#,1/22size#); "pion czarny z 194";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(67,24/22size#,23/22size#,1/22size#); "pion czarny z 195";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(68,24/22size#,23/22size#,1/22size#); "pion czarny z 196";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(69,24/22size#,23/22size#,1/22size#); "pion czarny z 197";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(70,24/22size#,23/22size#,1/22size#); "pion czarny z 198";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(71,24/22size#,23/22size#,1/22size#); "pion czarny z 199";
+ currentpicture := black_circle
+ - digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(72,24/22size#,23/22size#,1/22size#); "pion czarny z 200";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(73,24/22size#,23/22size#,1/22size#); "pion czarny z 201";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(74,24/22size#,23/22size#,1/22size#); "pion czarny z 202";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(75,24/22size#,23/22size#,1/22size#); "pion czarny z 203";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.45dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(76,24/22size#,23/22size#,1/22size#); "pion czarny z 204";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(77,24/22size#,23/22size#,1/22size#); "pion czarny z 205";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(78,24/22size#,23/22size#,1/22size#); "pion czarny z 206";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(79,24/22size#,23/22size#,1/22size#); "pion czarny z 207";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.45dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(80,24/22size#,23/22size#,1/22size#); "pion czarny z 208";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(81,24/22size#,23/22size#,1/22size#); "pion czarny z 209";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w-.45dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(82,24/22size#,23/22size#,1/22size#); "pion czarny z 210";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(83,24/22size#,23/22size#,1/22size#); "pion czarny z 211";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(84,24/22size#,23/22size#,1/22size#); "pion czarny z 212";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(85,24/22size#,23/22size#,1/22size#); "pion czarny z 213";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(86,24/22size#,23/22size#,1/22size#); "pion czarny z 214";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.4dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(87,24/22size#,23/22size#,1/22size#); "pion czarny z 215";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(88,24/22size#,23/22size#,1/22size#); "pion czarny z 216";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(89,24/22size#,23/22size#,1/22size#); "pion czarny z 217";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(90,24/22size#,23/22size#,1/22size#); "pion czarny z 218";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(91,24/22size#,23/22size#,1/22size#); "pion czarny z 219";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(92,24/22size#,23/22size#,1/22size#); "pion czarny z 220";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(93,24/22size#,23/22size#,1/22size#); "pion czarny z 221";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(94,24/22size#,23/22size#,1/22size#); "pion czarny z 222";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(95,24/22size#,23/22size#,1/22size#); "pion czarny z 223";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(96,24/22size#,23/22size#,1/22size#); "pion czarny z 224";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.55dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(97,24/22size#,23/22size#,1/22size#); "pion czarny z 225";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(98,24/22size#,23/22size#,1/22size#); "pion czarny z 226";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(99,24/22size#,23/22size#,1/22size#); "pion czarny z 227";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(100,24/22size#,23/22size#,1/22size#); "pion czarny z 228";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(101,24/22size#,23/22size#,1/22size#); "pion czarny z 229";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(102,24/22size#,23/22size#,1/22size#); "pion czarny z 230";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(103,24/22size#,23/22size#,1/22size#); "pion czarny z 231";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(104,24/22size#,23/22size#,1/22size#); "pion czarny z 232";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(105,24/22size#,23/22size#,1/22size#); "pion czarny z 233";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(106,24/22size#,23/22size#,1/22size#); "pion czarny z 234";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(107,24/22size#,23/22size#,1/22size#); "pion czarny z 235";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(108,24/22size#,23/22size#,1/22size#); "pion czarny z 236";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(109,24/22size#,23/22size#,1/22size#); "pion czarny z 237";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(110,24/22size#,23/22size#,1/22size#); "pion czarny z 238";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(111,24/22size#,23/22size#,1/22size#); "pion czarny z 239";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(112,24/22size#,23/22size#,1/22size#); "pion czarny z 240";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(113,24/22size#,23/22size#,1/22size#); "pion czarny z 241";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(114,24/22size#,23/22size#,1/22size#); "pion czarny z 242";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(115,24/22size#,23/22size#,1/22size#); "pion czarny z 243";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(116,24/22size#,23/22size#,1/22size#); "pion czarny z 244";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(117,24/22size#,23/22size#,1/22size#); "pion czarny z 245";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(118,24/22size#,23/22size#,1/22size#); "pion czarny z 246";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[6] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(119,24/22size#,23/22size#,1/22size#); "pion czarny z 247";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[7] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(120,24/22size#,23/22size#,1/22size#); "pion czarny z 248";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[8] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(121,24/22size#,23/22size#,1/22size#); "pion czarny z 249";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ - digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[9] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(122,24/22size#,23/22size#,1/22size#); "pion czarny z 250";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[0] shifted (.5w+.8dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(123,24/22size#,23/22size#,1/22size#); "pion czarny z 251";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ - digit[1] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(124,24/22size#,23/22size#,1/22size#); "pion czarny z 252";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[2] shifted (.5w+.8dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(125,24/22size#,23/22size#,1/22size#); "pion czarny z 253";
+ currentpicture := black_circle
+ - digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ - digit[5] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ - digit[3] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+%%%%%%%%%%%%%%%%%%%%%% other symbols %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(126,24/22size#,23/22size#,1/22size#); "pion czarny z kwadratem";
+ pickup pencircle scaled 1.25line_thickness;
+ z1=(.5w+.32size,11/24w+.32size);
+ z2=(.5w+.32size,11/24w-.32size);
+ z3=(.5w-.32size,11/24w-.32size);
+ z4=(.5w-.32size,11/24w+.32size);
+ currentpicture := black_circle;
+ erase draw z1--z2--z3--z4--cycle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(127,24/22size#,23/22size#,1/22size#); "pion czarny z trojkatem";
+ pickup pencircle scaled 1.25line_thickness;
+ lft x1=.08size+1/24w; bot y1=.24size;
+ x2=.5w; top y2=.98size;
+ rt x3=.92size+1/24w; bot y3=.24size;
+ currentpicture := black_circle;
+ erase draw z1--z2--z3--cycle;
+showit;
+endchar;
+
+% stop"";
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/go/go2whi10.mf b/Master/texmf-dist/fonts/source/public/go/go2whi10.mf
new file mode 100644
index 00000000000..e6ecf3554aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go2whi10.mf
@@ -0,0 +1,14 @@
+font_identifier:="GO2WHITE"; font_size 10pt#;
+
+size#:=10pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go2white
+
diff --git a/Master/texmf-dist/fonts/source/public/go/go2whi15.mf b/Master/texmf-dist/fonts/source/public/go/go2whi15.mf
new file mode 100644
index 00000000000..cd995b42e50
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go2whi15.mf
@@ -0,0 +1,14 @@
+font_identifier:="GO2WHITE"; font_size 15pt#;
+
+size#:=15pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go2white
+
diff --git a/Master/texmf-dist/fonts/source/public/go/go2whi20.mf b/Master/texmf-dist/fonts/source/public/go/go2whi20.mf
new file mode 100644
index 00000000000..605b0d7a18c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go2whi20.mf
@@ -0,0 +1,13 @@
+font_identifier:="GO2WHITE"; font_size 20pt#;
+
+size#:=20pt#;
+line_thickness#:=.04size#;
+border_line_thickness#:=.1size#;
+
+%%%
+
+dig_h#:=63/100size#;
+dig_w#:=4/10size#;
+dig_pen#:=1/10size#;
+
+input go2white
diff --git a/Master/texmf-dist/fonts/source/public/go/go2white.mf b/Master/texmf-dist/fonts/source/public/go/go2white.mf
new file mode 100644
index 00000000000..39640e5e691
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/go2white.mf
@@ -0,0 +1,1446 @@
+mode_setup;
+
+define_pixels(size);
+define_pixels(line_thickness,border_line_thickness);
+define_pixels(dig_h,dig_w,dig_pen);
+
+picture digit[];
+picture white_circle;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def digit_zero =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.5dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=dig_w; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ draw z1...z2...z3...z4...cycle;
+ digit[0] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_one =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.5dig_w; bot y1=0;
+ x2=.5dig_w; top y2=dig_h;
+ draw z1--z2;
+ digit[1] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_two =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.8dig_w; y3=.9dig_h;
+ lft x4=0; bot y4=0;
+ draw z1{up}...z2...z3..{(-.8dig_w,-dig_h)}z4;
+ z5=z4;
+ rt x6=dig_w; bot y6=0;
+ draw z5--z6;
+ digit[2] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_three =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.8dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.52dig_h);
+ rt x5=dig_w; y5=.2dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1{up}..z2..z3..{left}z4{right}..z5..z6...{up}z7;
+ digit[3] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_four =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.75dig_w; bot y1=0;
+ x2=x1; top y2=dig_h;
+ lft x3=0; y3=.3dig_h;
+ rt x4=dig_w; y4=y3;
+ draw z1--z2--z3--z4;
+ digit[4] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_five =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=.95dig_w; top y1=dig_h;
+ lft x2=.05dig_w; y2=y1;
+ lft x3=0; y3=.45dig_h;
+ z4=(.5dig_w,.6dig_h);
+ rt x5=dig_w; y5=.3dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=.15dig_h;
+ draw z1--z2--z3{up}..z4..z5..z6...{up}z7;
+ digit[5] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_six =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=dig_w; y1=.8dig_h;
+ x2=.45dig_w; top y2=dig_h;
+ lft x3=0; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ rt x5=dig_w; y5=.3dig_h;
+ z6=(.53dig_w,.55dig_h);
+ z7=(.03dig_w+.6dig_pen,.25dig_h);
+ draw z1{up}...z2...z3...z4...z5...{left}z6{left}...{(1,-10)}z7;
+ digit[6] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_seven =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; top y1=dig_h;
+ rt x2=dig_w; y2=y1;
+ lft x3=.2dig_w; bot y3=0;
+ draw z1--z2--z3;
+ digit[7] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_eight =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.55dig_h);
+ rt x5=dig_w; y5=.25dig_h;
+ x6=.5dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1...z2...z3...z4...cycle;
+ draw z4...z5...z6...z7...cycle;
+ digit[8] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_nine =
+ currentpicture := nullpicture;
+ currentpicture := digit[6] rotated 180;
+ digit[9] := currentpicture shifted (dig_w,dig_h);
+ clearxy; clearit; clearpen;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dig_w := .7dig_w;
+dig_pen := .7dig_pen;
+
+dig_w := .6dig_w;
+dig_pen := .7dig_pen;
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(0,24/22size#,23/22size#,1/22size#); "pion bialy z 128";
+ pickup pencircle scaled line_thickness;
+ lft x1=1/24w; y1=11/24w;
+ rt x2=23/24w; y2=11/24w;
+ draw z1..z2..cycle;
+ white_circle := currentpicture;
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(1,24/22size#,23/22size#,1/22size#); "pion bialy z 129";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(2,24/22size#,23/22size#,1/22size#); "pion bialy z 130";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(3,24/22size#,23/22size#,1/22size#); "pion bialy z 131";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(4,24/22size#,23/22size#,1/22size#); "pion bialy z 132";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(5,24/22size#,23/22size#,1/22size#); "pion bialy z 133";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(6,24/22size#,23/22size#,1/22size#); "pion bialy z 134";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(7,24/22size#,23/22size#,1/22size#); "pion bialy z 135";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(8,24/22size#,23/22size#,1/22size#); "pion bialy z 136";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(9,24/22size#,23/22size#,1/22size#); "pion bialy z 137";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(10,24/22size#,23/22size#,1/22size#); "pion bialy z 138";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(11,24/22size#,23/22size#,1/22size#); "pion bialy z 139";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(12,24/22size#,23/22size#,1/22size#); "pion bialy z 140";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(13,24/22size#,23/22size#,1/22size#); "pion bialy z 141";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.6dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(14,24/22size#,23/22size#,1/22size#); "pion bialy z 142";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(15,24/22size#,23/22size#,1/22size#); "pion bialy z 143";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(16,24/22size#,23/22size#,1/22size#); "pion bialy z 144";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.65dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(17,24/22size#,23/22size#,1/22size#); "pion bialy z 145";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(18,24/22size#,23/22size#,1/22size#); "pion bialy z 146";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(19,24/22size#,23/22size#,1/22size#); "pion bialy z 147";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(20,24/22size#,23/22size#,1/22size#); "pion bialy z 148";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(21,24/22size#,23/22size#,1/22size#); "pion bialy z 149";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(22,24/22size#,23/22size#,1/22size#); "pion bialy z 150";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(23,24/22size#,23/22size#,1/22size#); "pion bialy z 151";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(24,24/22size#,23/22size#,1/22size#); "pion bialy z 152";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(25,24/22size#,23/22size#,1/22size#); "pion bialy z 153";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(26,24/22size#,23/22size#,1/22size#); "pion bialy z 154";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(27,24/22size#,23/22size#,1/22size#); "pion bialy z 155";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(28,24/22size#,23/22size#,1/22size#); "pion bialy z 156";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(29,24/22size#,23/22size#,1/22size#); "pion bialy z 157";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(30,24/22size#,23/22size#,1/22size#); "pion bialy z 158";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(31,24/22size#,23/22size#,1/22size#); "pion bialy z 159";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(32,24/22size#,23/22size#,1/22size#); "pion bialy z 160";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(33,24/22size#,23/22size#,1/22size#); "pion bialy z 161";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(34,24/22size#,23/22size#,1/22size#); "pion bialy z 162";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(35,24/22size#,23/22size#,1/22size#); "pion bialy z 163";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(36,24/22size#,23/22size#,1/22size#); "pion bialy z 164";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(37,24/22size#,23/22size#,1/22size#); "pion bialy z 165";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(38,24/22size#,23/22size#,1/22size#); "pion bialy z 166";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(39,24/22size#,23/22size#,1/22size#); "pion bialy z 167";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(40,24/22size#,23/22size#,1/22size#); "pion bialy z 168";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(41,24/22size#,23/22size#,1/22size#); "pion bialy z 169";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(42,24/22size#,23/22size#,1/22size#); "pion bialy z 170";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(43,24/22size#,23/22size#,1/22size#); "pion bialy z 171";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(44,24/22size#,23/22size#,1/22size#); "pion bialy z 172";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(45,24/22size#,23/22size#,1/22size#); "pion bialy z 173";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(46,24/22size#,23/22size#,1/22size#); "pion bialy z 174";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(47,24/22size#,23/22size#,1/22size#); "pion bialy z 175";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(48,24/22size#,23/22size#,1/22size#); "pion bialy z 176";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(49,24/22size#,23/22size#,1/22size#); "pion bialy z 177";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(50,24/22size#,23/22size#,1/22size#); "pion bialy z 178";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(51,24/22size#,23/22size#,1/22size#); "pion bialy z 179";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(52,24/22size#,23/22size#,1/22size#); "pion bialy z 180";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(53,24/22size#,23/22size#,1/22size#); "pion bialy z 181";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(54,24/22size#,23/22size#,1/22size#); "pion bialy z 182";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(55,24/22size#,23/22size#,1/22size#); "pion bialy z 183";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(56,24/22size#,23/22size#,1/22size#); "pion bialy z 184";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(57,24/22size#,23/22size#,1/22size#); "pion bialy z 185";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(58,24/22size#,23/22size#,1/22size#); "pion bialy z 186";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(59,24/22size#,23/22size#,1/22size#); "pion bialy z 187";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(60,24/22size#,23/22size#,1/22size#); "pion bialy z 188";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(61,24/22size#,23/22size#,1/22size#); "pion bialy z 189";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(62,24/22size#,23/22size#,1/22size#); "pion bialy z 190";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(63,24/22size#,23/22size#,1/22size#); "pion bialy z 191";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.55dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(64,24/22size#,23/22size#,1/22size#); "pion bialy z 192";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(65,24/22size#,23/22size#,1/22size#); "pion bialy z 193";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(66,24/22size#,23/22size#,1/22size#); "pion bialy z 194";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.75dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.75dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(67,24/22size#,23/22size#,1/22size#); "pion bialy z 195";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(68,24/22size#,23/22size#,1/22size#); "pion bialy z 196";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(69,24/22size#,23/22size#,1/22size#); "pion bialy z 197";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.7dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.7dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(70,24/22size#,23/22size#,1/22size#); "pion bialy z 198";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(71,24/22size#,23/22size#,1/22size#); "pion bialy z 199";
+ currentpicture := white_circle
+ + digit[1] shifted (.5w-1.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w-.8dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.5dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(72,24/22size#,23/22size#,1/22size#); "pion bialy z 200";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(73,24/22size#,23/22size#,1/22size#); "pion bialy z 201";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(74,24/22size#,23/22size#,1/22size#); "pion bialy z 202";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(75,24/22size#,23/22size#,1/22size#); "pion bialy z 203";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.45dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(76,24/22size#,23/22size#,1/22size#); "pion bialy z 204";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(77,24/22size#,23/22size#,1/22size#); "pion bialy z 205";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(78,24/22size#,23/22size#,1/22size#); "pion bialy z 206";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(79,24/22size#,23/22size#,1/22size#); "pion bialy z 207";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.45dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(80,24/22size#,23/22size#,1/22size#); "pion bialy z 208";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(81,24/22size#,23/22size#,1/22size#); "pion bialy z 209";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w-.45dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(82,24/22size#,23/22size#,1/22size#); "pion bialy z 210";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(83,24/22size#,23/22size#,1/22size#); "pion bialy z 211";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(84,24/22size#,23/22size#,1/22size#); "pion bialy z 212";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(85,24/22size#,23/22size#,1/22size#); "pion bialy z 213";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(86,24/22size#,23/22size#,1/22size#); "pion bialy z 214";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.4dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(87,24/22size#,23/22size#,1/22size#); "pion bialy z 215";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(88,24/22size#,23/22size#,1/22size#); "pion bialy z 216";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(89,24/22size#,23/22size#,1/22size#); "pion bialy z 217";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(90,24/22size#,23/22size#,1/22size#); "pion bialy z 218";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(91,24/22size#,23/22size#,1/22size#); "pion bialy z 219";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.45dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(92,24/22size#,23/22size#,1/22size#); "pion bialy z 220";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(93,24/22size#,23/22size#,1/22size#); "pion bialy z 221";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(94,24/22size#,23/22size#,1/22size#); "pion bialy z 222";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(95,24/22size#,23/22size#,1/22size#); "pion bialy z 223";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(96,24/22size#,23/22size#,1/22size#); "pion bialy z 224";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.55dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(97,24/22size#,23/22size#,1/22size#); "pion bialy z 225";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(98,24/22size#,23/22size#,1/22size#); "pion bialy z 226";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(99,24/22size#,23/22size#,1/22size#); "pion bialy z 227";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(100,24/22size#,23/22size#,1/22size#); "pion bialy z 228";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(101,24/22size#,23/22size#,1/22size#); "pion bialy z 229";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(102,24/22size#,23/22size#,1/22size#); "pion bialy z 230";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(103,24/22size#,23/22size#,1/22size#); "pion bialy z 231";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(104,24/22size#,23/22size#,1/22size#); "pion bialy z 232";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(105,24/22size#,23/22size#,1/22size#); "pion bialy z 233";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(106,24/22size#,23/22size#,1/22size#); "pion bialy z 234";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.65dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(107,24/22size#,23/22size#,1/22size#); "pion bialy z 235";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(108,24/22size#,23/22size#,1/22size#); "pion bialy z 236";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(109,24/22size#,23/22size#,1/22size#); "pion bialy z 237";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(110,24/22size#,23/22size#,1/22size#); "pion bialy z 238";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(111,24/22size#,23/22size#,1/22size#); "pion bialy z 239";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(112,24/22size#,23/22size#,1/22size#); "pion bialy z 240";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(113,24/22size#,23/22size#,1/22size#); "pion bialy z 241";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.6dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(114,24/22size#,23/22size#,1/22size#); "pion bialy z 242";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(115,24/22size#,23/22size#,1/22size#); "pion bialy z 243";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(116,24/22size#,23/22size#,1/22size#); "pion bialy z 244";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(117,24/22size#,23/22size#,1/22size#); "pion bialy z 245";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(118,24/22size#,23/22size#,1/22size#); "pion bialy z 246";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[6] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(119,24/22size#,23/22size#,1/22size#); "pion bialy z 247";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[7] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(120,24/22size#,23/22size#,1/22size#); "pion bialy z 248";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[8] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(121,24/22size#,23/22size#,1/22size#); "pion bialy z 249";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.55dig_w,11/24w-.5dig_h)
+ + digit[4] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[9] shifted (.5w+.75dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(122,24/22size#,23/22size#,1/22size#); "pion bialy z 250";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[0] shifted (.5w+.8dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(123,24/22size#,23/22size#,1/22size#); "pion bialy z 251";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.5dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.4dig_w,11/24w-.5dig_h)
+ + digit[1] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(124,24/22size#,23/22size#,1/22size#); "pion bialy z 252";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[2] shifted (.5w+.8dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(125,24/22size#,23/22size#,1/22size#); "pion bialy z 253";
+ currentpicture := white_circle
+ + digit[2] shifted (.5w-1.6dig_w,11/24w-.5dig_h)
+ + digit[5] shifted (.5w-.5dig_w,11/24w-.5dig_h)
+ + digit[3] shifted (.5w+.7dig_w,11/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+%%%%%%%%%%%%%%%%%%%%%% other symbols %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(126,24/22size#,23/22size#,1/22size#); "pion bialy z kwadratem";
+ pickup pencircle scaled line_thickness;
+ z1=(.5w+.32size,11/24w+.32size);
+ z2=(.5w+.32size,11/24w-.32size);
+ z3=(.5w-.32size,11/24w-.32size);
+ z4=(.5w-.32size,11/24w+.32size);
+ draw z1--z2--z3--z4--cycle;
+ addto currentpicture also white_circle;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(127,24/22size#,23/22size#,1/22size#); "pion bialy z trojkatem";
+ pickup pencircle scaled line_thickness;
+ lft x1=.08size+1/24w; bot y1=.24size;
+ x2=.5w; top y2=.98size;
+ rt x3=.92size+1/24w; bot y3=.24size;
+ draw z1--z2--z3--cycle;
+ addto currentpicture also white_circle;
+showit;
+endchar;
+
+% stop"";
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/go/gosign50.mf b/Master/texmf-dist/fonts/source/public/go/gosign50.mf
new file mode 100644
index 00000000000..106a381e745
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/go/gosign50.mf
@@ -0,0 +1,169 @@
+font_identifier:="GOSIGN"; font_size 50pt#;
+
+size#:=50pt#;
+u#:=size#/18; % 50/18pt# for gosign50.pxl/tfm
+% u#:=10/18pt#; % 10/18pt# for gosign10.pxl/tfm
+
+mode_setup;
+beginchar(0,18u#,18u#,0);
+pickup pencircle scaled .1pt;
+x1=.5/18w; y1=14/18h;
+x2=2/18w; y2=16/18h;
+x3=17/18w; y3=15/18h;
+x4=x3; y4=y1;
+fill z1--z2--z3--z4--cycle;
+
+x5=2/18w; y5=7/18h;
+x6=3/18w; y6=8.2/18h;
+x7=16/18w; y7=8/18h;
+x8=x7; y8=7/18h;
+fill z5--z6--z7--z8--cycle;
+
+x9=4/18w; y9=16/18h;
+x10=6/18w; y10=17/18h;
+x11=7/18w; y11=8/18h;
+x12=6/18w; y12=y11;
+fill z9--z10{(1,-2)}..z11--z12..{(-2,3)}cycle;
+
+x13=13.5/18w; y13=17/18h;
+x14=15/18w; y14=16/18h;
+x15=11.7/18w; y15=8/18h;
+x16=11/18w; y16=y15;
+fill z13--z14{(-1,-2)}..z15--z16..{(2,3)}cycle;
+
+x17=6/18w; y17=11.5/18h;
+x18=x17; y18=13/18h;
+x19=12/18w; y19=y18;
+x20=x19; y20=y17;
+fill z17--z18--z19--z20--cycle;
+
+x21=x17; y21=9/18h;
+x22=x17; y22=10.5/18h;
+x23=x19; y23=y22;
+x24=x19; y24=y21;
+fill z21--z22--z23--z24--cycle;
+
+x25=6/18w; y25=7/18h;
+x26=7.5/18w; y26=y25;
+x27=1.5/18w; y27=1.5/18h;
+x28=0/18w; y28=2.5/18h;
+fill z25--z26{(-1,-2)}..{(-3,-1)}z27--z28{right}..{(1,2)}cycle;
+
+x29=10.5/18w; y29=7/18h;
+x30=11.7/18w; y30=y29;
+x31=18/18w; y31=2/18h;
+x32=16.5/18w; y32=1/18h;
+fill z29--z30{(2,-2)}..{right}z31--z32{(-3,2)}..{(-2,3)}cycle;
+
+x33=6.5/18w; y33=5/18h;
+x34=x33; y34=6/18h;
+x35=11.5/18w; y35=y34;
+x36=x35; y36=y33;
+fill z33--z34--z35--z36--cycle;
+
+x37=7/18w; y37=5/18h;
+x38=8/18w; y38=y37;
+x39=5/18w; y39=0.5/18h;
+x40=4/18w; y40=1/18h;
+fill z37--z38{(-1,-2)}..{left}z39--z40{right}..{(1,2)}cycle;
+
+x41=13/18w; y41=4/18h;
+x42=12/18w; y42=3/18h;
+% fill z37--z38{(1,-1)}...{right}z41--z42{left}...z47...z48...{(-1,2)}cycle;
+
+x43=11.5/18w; y43=2/18h;
+x44=x42; y44=1/18h;
+fill z41--z42--z43--z44--cycle;
+
+x45=8.5/18w; y45=0.7/18h;
+x46=9.2/18w; y46=y43;
+fill z43--z44--z45--z46--cycle;
+
+x47=9/18w; y47=3.3/18h;
+x48=8/18w; y48=y47;
+fill z45--z46--z47--z48--cycle;
+fill z37--z38{(1,-1)}...{right}z41--z42{left}...z47...z48...{(-1,2)}cycle;
+
+
+pickup pencircle scaled .01pt;
+
+x100=0/18w;
+x101=1/18w;
+x102=2/18w;
+x103=3/18w;
+x104=4/18w;
+x105=5/18w;
+x106=6/18w;
+x107=7/18w;
+x108=8/18w;
+x109=9/18w;
+x110=10/18w;
+x111=11/18w;
+x112=12/18w;
+x113=13/18w;
+x114=14/18w;
+x115=15/18w;
+x116=16/18w;
+x117=17/18w;
+x118=18/18w;
+
+y100=0/18h;
+y101=1/18h;
+y102=2/18h;
+y103=3/18h;
+y104=4/18h;
+y105=5/18h;
+y106=6/18h;
+y107=7/18h;
+y108=8/18h;
+y109=9/18h;
+y110=10/18h;
+y111=11/18h;
+y112=12/18h;
+y113=13/18h;
+y114=14/18h;
+y115=15/18h;
+y116=16/18h;
+y117=17/18h;
+y118=18/18h;
+
+% draw (x100,y100)--(x118,y100);
+% draw (x100,y101)--(x118,y101);
+% draw (x100,y102)--(x118,y102);
+% draw (x100,y103)--(x118,y103);
+% draw (x100,y104)--(x118,y104);
+% draw (x100,y105)--(x118,y105);
+% draw (x100,y106)--(x118,y106);
+% draw (x100,y107)--(x118,y107);
+% draw (x100,y108)--(x118,y108);
+% draw (x100,y109)--(x118,y109);
+% draw (x100,y110)--(x118,y110);
+% draw (x100,y111)--(x118,y111);
+% draw (x100,y112)--(x118,y112);
+% draw (x100,y113)--(x118,y113);
+% draw (x100,y114)--(x118,y114);
+% draw (x100,y115)--(x118,y115);
+% draw (x100,y116)--(x118,y116);
+% draw (x100,y117)--(x118,y117);
+% draw (x100,y118)--(x118,y118);
+%
+% draw (x100,y100)--(x100,y118);
+% draw (x101,y100)--(x101,y118);
+% draw (x102,y100)--(x102,y118);
+% draw (x103,y100)--(x103,y118);
+% draw (x104,y100)--(x104,y118);
+% draw (x105,y100)--(x105,y118);
+% draw (x106,y100)--(x106,y118);
+% draw (x107,y100)--(x107,y118);
+% draw (x108,y100)--(x108,y118);
+% draw (x109,y100)--(x109,y118);
+% draw (x110,y100)--(x110,y118);
+% draw (x111,y100)--(x111,y118);
+% draw (x112,y100)--(x112,y118);
+% draw (x113,y100)--(x113,y118);
+% draw (x114,y100)--(x114,y118);
+% draw (x115,y100)--(x115,y118);
+% draw (x116,y100)--(x116,y118);
+% draw (x117,y100)--(x117,y118);
+% draw (x118,y100)--(x118,y118);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/gothic/cmfrabase.mf b/Master/texmf-dist/fonts/source/public/gothic/cmfrabase.mf
new file mode 100644
index 00000000000..b91f6006ef9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/cmfrabase.mf
@@ -0,0 +1,231 @@
+def n_foot(suffix $) =
+w':=7.806u; penpos$.1(hair,90); penpos$.2(hair,0);
+penpos$.3(hair,-90);
+y$.1=y$.3=0.5foot; y$.2=-apex_o;
+x$.1=x$l-1/20w'; x$.3=x$r+1/20w';
+x$.2=x$;
+filldraw z$.2r{dir75}..z$.3r{dir15}--
+z$.3l{dir165}..z$r{up}--z$l{down}..
+z$.1r{dir195}--z$.1l{dir-15}..z$.2l{dir-65}
+--z$.2r & cycle;
+enddef;
+
+def o_umlaut(suffix $) =
+pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30;
+z$.1=z$+(0,0.1x_height);
+z$.2=z$.1+(stem,0.1x_height);
+x$.3=x$.2; y$.3=y$.2+0.1x_height;
+x$.4=x$.1; y$.4-y$.3=y$.2-y$.1;
+x$.5+x$.3=2x$.4; y$.5=y$.3;
+x$.6+x$.2=2x$.1; y$.6=y$.2;
+draw z$.1--z$.2--z$.3--z$.4--z$.5--z$.6--z$.1;
+penlabels(z$.1,z$.2,z$.3,z$.4,z$.5,z$.6);
+enddef;
+
+def e_umlaut(suffix $) =
+penpos$.1(2u,45); z$.1=z$;
+pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30;
+z$.2=z$.1r; z$.3=z$.1l; rt x$.4=rt x$.2; top y$.4=y$;
+draw z$.3--z$.2..z$.3..z$.4;
+enddef;
+
+def cap_e_umlaut(suffix $) =
+penpos$.1(2u,45); z$.1=z$;
+pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30;
+z$.2=z$.1r; z$.3=z$.1l; rt x$.4=rt x$.2; top y$.4=y$;
+draw z$.3--z$.2..z$.3..z$.4;
+enddef;
+
+def pointpoint =
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+penstroke z1e--z2e;
+enddef;
+
+
+
+def pointaccent(suffix $) =
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=x$;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o+y$+0.1x_height; y6r=1.1x_height+apex_o+y$;
+penstroke z1e--z2e;
+enddef;
+
+
+
+
+def old_e_umlaut(suffix $) =
+numeric ww;
+ww:=2u; penpos$.1(hair,147);
+penpos$.2(1.5hair,90); penpos$.3(2.5hair,0);
+penpos$.4(1.2hair,-90);
+penpos$.5(hair,-147);
+penpos$.6(hair,-57); penpos$.7(hair,-57);
+z$.1=z$+(0.4ww,-0.2ww);
+z$.2l=z$-(0.111ww,0.556ww);
+z$.3l=z$-(0.5ww,apex_o);
+z$.4l=(x$,y$+0.556ww);
+z$.6-z$=whatever*dir33; x$.6r=x$+0.5ww;
+z$.5l=z$.6l; z$.7=whatever[z$,z$.6];
+x$.7=x$.3;
+penstroke z$.1e..z$.2e{left}..z$.3e{up}
+..z$.4e{right}..z$.5e;
+penstroke z$.7e--z$.6e
+enddef;
+
+def umlaut (suffix $) =
+y0=0; 0.5[x0,x0']=x$-2u;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,y$+0.090x_height);
+z61=(x0+1.522stem,y$+0.387x_height);
+z62=(x0+1.956stem,y$+0.324x_height);
+z60'=(x0'+stem,y$+0.090x_height);
+z61'=(x0'+1.522stem,y$+0.387x_height);
+z62'=(x0'+1.956stem,y$+0.324x_height);
+filldraw z60l{dir34}..z62{up}..z61{left}
+..z60r{dir259}--z60l & cycle;
+penpos60'(hair,145);
+filldraw z60'l{dir34}..z62'{up}..z61'{left}
+..z60'r{dir259}--z60'l & cycle
+enddef;
+
+
+def hat (suffix $) =
+z60=(x$-2.5u,0.090x_height+y$);
+z61=(x$+0.3u,0.387x_height+y$);
+x62=x$-0.3u; y62=0.3333*(2y60+y61);
+y60'=y60; x60'+x60=2x$;
+filldraw z60--z61--z60'{left}..z62..{left}cycle;
+enddef;
+
+
+
+def hungarum (suffix $) =
+z60=(x$-2.5u-0.25stem,0.090x_height+y$);
+z63=z60+(0.5stem,0);
+z61=(x$,0.387x_height+y$);
+z62=z61+(stem,0);
+filldraw z60--z61--z62--z63--cycle;
+filldraw z60--z61--z62--z63--cycle shifted (2.5u,0);
+enddef;
+
+def ellbar (suffix $) =
+z60=(x$,y$-0.5u);
+z61=(x$+3.5u,0.5u+y$);
+pickup pensquare scaled 2hair;
+draw z60--z61;
+enddef;
+
+def hacek (suffix $) =
+z60=(x$-2.5u,0.387x_height+y$);
+z61=(x$-0.3u,0.090x_height+y$);
+x62=x$+0.3u; y62=0.3333*(2y60+y61);
+y60'=y60; x60'+x60=2x$;
+filldraw z60--z61--z60'{left}..z62..{left}cycle;
+enddef;
+
+def breve (suffix $) =
+z60=(x$-2.5u,0.387x_height+y$);
+z61=(x$-0.3u,0.090x_height+y$);
+x62=x$+0.3u; y62=0.3333*(2y60+y61);
+y63=y60; x63+x60=2x$;
+z60'=z60+(0,hair);
+z63'=z63+(0,hair);
+filldraw z60..{right}z61{right}..z63--z63'..{left}z62{left}..z60'--cycle;
+enddef;
+
+def tilde (suffix $) =
+z60=(x$-2.1u,0.090x_height+y$);
+z61=(x$-u,0.387x_height+y$);
+z62=(x$+u,0.090x_height+y$);
+z63=(x$+2.1u,0.387x_height+y$);
+pickup pensquare xscaled stem yscaled hair rotated 30;
+draw z60...{right}z61..z62{right}...z63;
+enddef;
+
+
+def cedilla (suffix $) =
+pickup pensquare scaled hair;
+z60=z$;
+z61=(x$+u+0.16w,y$-0.18x_height);
+x62=x$; y62=y61-0.12x_height;
+penpos60(stem,30); penpos61(stem,30); penpos62(stem,-30);
+penstroke z60e{dir-30}..{down}z61e..{left}z62e;
+enddef;
+
+
+def ogonek (suffix $) =
+pickup pensquare scaled hair;
+z60=z$;
+z61=(x$-u-0.16w,y$-0.18x_height);
+x62=x$; y62=y61-0.12x_height;
+penpos60(stem,-30); penpos61(stem,30); penpos62(stem,40);
+penstroke z60e{dir-135}..{down+0.25right}z61e..{right+0.3up}z62e;
+enddef;
+
+def acute (suffix $) =
+y0=0; 0.5[x0,x0']=x$-2u;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,y$+0.090x_height);
+z61=(x0+1.522stem,y$+0.387x_height);
+z62=(x0+1.956stem,y$+0.324x_height);
+z60'=(x0'+stem,y$+0.090x_height);
+z61'=(x0'+1.522stem,y$+0.387x_height);
+z62'=(x0'+1.956stem,y$+0.324x_height);
+penpos60'(hair,145);
+filldraw z60l{dir34}..z62'{up}..z61'{left}
+..z60r{dir259}--z60l & cycle
+enddef;
+
+def grave (suffix $) =
+y0=0; 0.5[x0,x0']=x$-2u;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,y$+0.090x_height);
+z61=(x0+1.522stem,y$+0.387x_height);
+z62=(x0+1.956stem,y$+0.324x_height);
+z60'=(x0'+stem,y$+0.090x_height);
+z61'=(x0'+1.522stem,y$+0.387x_height);
+z62'=(x0'+1.956stem,y$+0.324x_height);
+penpos60'(hair,145);
+filldraw (z60l{dir34}..z62'{up}..z61'{left}
+..z60r{dir259}--z60l & cycle) reflectedabout ((x$,x_height),(x$,0));
+enddef;
+
+
+def cap_grave (suffix $) =
+y0=0; 0.5[x0,x0']=x$-2u;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,1.090x_height-x_height+y$);
+z61=(x0+1.522stem,1.387x_height-x_height+y$);
+z62=(x0+1.956stem,1.324x_height-x_height+y$);
+z60'=(x0'+stem,1.090x_height-x_height+y$);
+z61'=(x0'+1.522stem,1.387x_height-x_height+y$);
+z62'=(x0'+1.956stem,1.324x_height-x_height+y$);
+filldraw (z60l{dir34}..z62'{up}..z61'{left}
+..z60r{dir259}--z60l & cycle) reflectedabout ((x$,x_height),(x$,0));
+enddef;
+
+picture last_char;
diff --git a/Master/texmf-dist/fonts/source/public/gothic/cmfrak.mf b/Master/texmf-dist/fonts/source/public/gothic/cmfrak.mf
new file mode 100644
index 00000000000..88b56d61585
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/cmfrak.mf
@@ -0,0 +1,8 @@
+% yfrak transformed to cmfrak by D. Taupin March 1994
+if unknown cmbase: input cmbase fi
+input cmfrabase; % -sl 15-3-1991 25-3-1994 D.T.
+
+font_identifier:="cmfrak"; font_size 10pt#;
+numeric dc_layout; dc_layout:=0;
+
+input xxfrak.mf
diff --git a/Master/texmf-dist/fonts/source/public/gothic/cmfraklow.mf b/Master/texmf-dist/fonts/source/public/gothic/cmfraklow.mf
new file mode 100644
index 00000000000..abae3b25569
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/cmfraklow.mf
@@ -0,0 +1,785 @@
+picture small_letter_e;
+picture small_letter_a;
+picture small_letter_i;
+picture small_letter_j;
+
+numeric nombre; nombre:= 5gencoef[1,1.155556];
+
+.cmchar "The Fraktur letter a";
+.beginchar("a",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51);
+penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h)));
+penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0);
+penpos12(whatever,-90); penpos11''(hair,-30);
+z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]);
+z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]);
+z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4];
+x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem;
+z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])];
+y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o;
+z10=whatever[z8l,z9l]; y10=0.228h;
+z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]);
+z11''r=(gencoef[0.78w,0.814w],-apex_o);
+z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l);
+z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r;
+z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); z11'=whatever[z11l,z12l];
+y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7];
+penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]);
+filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r..
+z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke
+z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down}
+..z7..z10{z9-z8} & z10--z8' & cycle;
+small_letter_a:=currentpicture;
+.endchar;
+
+nombre:= 4.722gencoef[1,1.129412];
+
+.cmchar "The Fraktur letter b";
+.beginchar("b",nombre*lower_u#,1.376x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); penpos2(stem,0);
+z1=(gencoef[0.241w,0.208w],gencoef[foot,0.322x_height]); z2=(x1,x_height);
+z3=(1/4[x2l,x2r],x_height+gencoef[foot,0.9foot]); z3'=(x2r,gencoef[y3,y2r]);
+z3''=(x2l,gencoef[0.633(y3-y2)+y2,y2l]); penpos4(gencoef[hair,2hair],74);
+z4=(gencoef[0.5x2l,0],gencoef[1.259x_height,1.205x_height]);
+penpos5(gencoef[hair,1.5hair],-90); z5l=(x2r+gencoef[0.875stem,0.396w],h);
+penstroke z1e--z2e; filldraw z2l--z3''{up}..z4l--z4r--
+z3{dir45}..z5l{right}--z5r{left} ...z3'{down}--z2r--z2l & cycle;
+penpos5'(gencoef[hair,1.5hair],gencoef[-40,-90]);
+z5'l=(0,gencoef[0.097x_height,0.219x_height]); penpos6(hair,gencoef[-42,-30]);
+penpos7(hair,gencoef[-42,-30]); z6r=(gencoef[0.441w,0.521w],-apex_o);
+z7-z6=whatever*((w,gencoef[0.36x_height,0.479x_height])-z6);
+x7=gencoef[0.653w,0.698w]; z6'=whatever[z6,z7]; y6'=gencoef[y6l+apex_o,y6l];
+penpos8(1.167stem,42); z8r=(w,gencoef[0.545x_height,0.664x_height]);
+penpos11(hair,gencoef[-42,-61]); penpos10(hair,gencoef[-42,-61]);
+z10l=(gencoef[x8l,0.729w],x_height+apex_o);
+z10-z11=whatever*(z7-z6-(0,gencoef[0,0.1x_height])); x11=x1;
+penpos9(5/4stem,angle(z10-z11)); z9=whatever[z11l,z10l];
+y9r=y10l+gencoef[-apex_o,0]; penstroke z11e--z10e; penstroke
+z6e---z7e...z8e{up}.. z9e; filldraw z5'l..z1l{up}--z1r--z7l--
+z6'{dir138}..z5'r--z5'l & cycle; .endchar;
+
+nombre:= 3.639gencoef[1,1.145038];
+
+.cmchar "The Fraktur letter c";
+.beginchar("c",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(gencoef[hair,1.5hair],gencoef[-30,-48]); penpos2(gencoef[hair,1.5hair],
+gencoef[-30,-48]);
+z2-z1=whatever*((w,gencoef[0.78h,0.5h]));
+z1r=(gencoef[0.565w,0.586667w],-apex_o); x2r=w; z1'=whatever[z1,z2];
+y1'=gencoef[y1l+apex_o,y1r]; x1':=gencoef[x1',x1r]; z3=whatever[z1l,z2l];
+x3=gencoef[0.809w,x2l]; z4=(gencoef[2/3w,0.64w],0.176h);
+penpos5(1.083stem,angle((w,gencoef[0.4h,0.452h])));
+z5=(gencoef[0.26w,0.226667w],0.214h); penpos6(stem,0); z6l=(0,0.5h);
+penpos9(gencoef[hair,1.5hair],gencoef[-68,-22]);
+penpos8(gencoef[hair,1.5hair],gencoef[-68,-22]);
+penpos8.5(gencoef[hair,1.5hair],gencoef[-68,-22]);
+z9l=(gencoef[0.832w,0.546667w],h+apex_o);
+z9-z8=whatever*((w,gencoef[0.25h,0.404h])); x8l=gencoef[0.458w,0.2666w];
+z7=whatever[z8l,z9l]; x7=gencoef[0.145w,x8l];
+penpos10(gencoef[stem,1.3stem],angle((w,gencoef[0.25h,0.883562h])));
+z10r=whatever[z9l,z9r]; x10r=w+gencoef[0,apex_o]; z10l-z8.5=whatever*(z10r-z9);
+z8.5=whatever[z8,z9]; penstroke z1e--z2e; filldraw z1'..z5l..z6l{up}--z6r{down}
+..z5r..z4..z3{z2-z1}--z2l--z2r--z1' & cycle; filldraw z6l{up}..z7 &
+z7--z9l--z10r-- z10l--z8.5r & z8.5r{z8-z9}..(x6r,0.738h)..z6r{down}-- z6l &
+cycle;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter c cedilla";
+.beginchar(oct"347",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.4*w,0); cedilla(100);
+endchar;
+
+
+.cmchar "The Fraktur letter c hacek";
+.beginchar(oct"243",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5*w,x_height); hacek(100);
+endchar;
+
+.cmchar "The Fraktur letter c acute";
+.beginchar(oct"242",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+.endchar;
+
+nombre:= 4.944gencoef[1,1.073034];
+
+.cmchar "The Fraktur letter d";
+.beginchar("d",nombre*lower_u#,gencoef[1.269x_height#,1.37x_height#],0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); penpos2(stem,0);
+z1=(gencoef[0.227w,0.2094w],gencoef[foot,0.274x_height]); z1'=(x1r,foot);
+z2=(x1,gencoef[0.817x_height,0.795x_height]); penpos4(hair,-90);
+z4=(gencoef[0.5x1l,0],gencoef[0.11x_height,0.188x_height]); penpos5(hair,-38);
+z5r=(gencoef[x1r+0.7stem,0.6073w],-apex_o);
+penpos6(whatever,gencoef[-18,-38]);
+z6l-z5l=whatever*((w,gencoef[0.356x_height,x_height]));
+z6r-z5r=whatever*((w,gencoef[0.356x_height,x_height]));
+z6-z1'=whatever*((w,gencoef[-0.2x_height,-0.1x_height]));
+penpos7(gencoef[1.271stem,0.65stem],gencoef[50,39]); z7r=(w,0.579x_height);
+penpos8(stem,angle((w,1.04h))); z8=(gencoef[0.545w,0.52w],0.959x_height);
+penpos9(gencoef[0.946stem,0.8stem],25);
+z9l=(gencoef[0,-2apex_o],gencoef[1.093x_height,1.178x_height]);
+z10=(gencoef[0.303w,0.209w],h); penpos11(hair,-90);
+z11l=gencoef[(0.416w,h-apex_o),z10]; penpos3(hair,-57);
+z3=z8;
+%z3l-z2l=whatever*((w,gencoef[0.39x_height,0.198x_height]));
+%y3l=x_height-gencoef[2apex_o,0.075x_height];
+%y3l=x_height-2apex_o;
+penstroke z1e--z2e; penstroke
+z5e---z6e...z7e{up}..z8e ..z9e{up}; filldraw z2l--z3l--z3r{z2l-z3l}..
+z2r{down}--z2l & cycle; filldraw z4r..{z5r-z5l}z5r--z6--z1'--z1r--
+z1l{down}..z4l--z4r & cycle; filldraw z9l{up}..z10{right}..z11l
+--z11r{left}..z9r{down}--z9l & cycle;
+last_char:=currentpicture; .endchar;
+
+.cmchar "The Fraktur letter d (\eth)";
+.beginchar(oct"360",nombre*lower_u#,gencoef[1.269x_height#,1.37x_height#],0);
+currentpicture:=last_char; z100=(0,1.15x_height); ellbar(100);
+.endchar;
+
+nombre:= 3.65gencoef[1,1.230769];
+
+.cmchar "The Fraktur letter e";
+.beginchar("e",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1l=(0,0.486h);
+penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]);
+penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]);
+z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w];
+x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8];
+y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l];
+x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h);
+penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69);
+y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69); z6r=(x1r,0.5h);
+z3l-z2=whatever*((w,gencoef[0.3h,0.25h])); x4r=w-gencoef[apex_o,0];
+z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6));
+z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e;
+filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69);
+z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w];
+z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e;
+filldraw z7'{dir135}..z1l{up}..z2 &
+z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10
+..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e;
+small_letter_e:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur ligature ae";
+.beginchar(oct"346",2*nombre*lower_u#,x_height#,0);
+currentpicture:=small_letter_a;
+addto currentpicture also small_letter_e shifted (4u,0);
+.endchar;
+
+.cmchar "The Fraktur ligature ae";
+.beginchar(ae_ligature,2*nombre*lower_u#,x_height#,0);
+currentpicture:=small_letter_a;
+addto currentpicture also small_letter_e shifted (4u,0);
+.endchar;
+
+.cmchar "The Fraktur letter f";
+.beginchar("f",4.539lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#);
+w':=w; penpos1.1(hair,0); z1.1=(0.318w',-d); penpos1.2(1.313stem,0); z1.2=(x1.1,0.795x_height);
+penpos1.4(3/4stem,-90); z1.4r=(0.857w',y1.2); z1.3=(0,y1.2); z1.12=whatever[z1.1l,z1.2l];
+z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height; z1.12'=z1.12-(0.5apex_o,0);
+z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4; penpos1.5(0.917stem,0);
+z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112; z1.6l-z1.5l=whatever*dir72;
+penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22); penpos1.11(hair,-22);
+z1.11r=(w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'; penpos1.8(whatever,68);
+z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w',1.366x_height); filldraw z1.1r..z1.13'..z1.2r...
+z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle; filldraw
+z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw
+z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle;
+.endchar;
+
+nombre:= 5.611gencoef[1,1.168317];
+
+.cmchar "The Fraktur letter g";
+.beginchar("g",nombre*lower_u#,x_height#,gencoef[2.389lower_u#,3.4446lower_u#]);
+.adjust_fit(usual_left#-gencoef[0.315u#,0.3u#],usual_right#);
+penpos1(hair,gencoef[0,30]); penpos2(gencoef[hair,1.2hair],gencoef[90,110]);
+z1l=(gencoef[0,0.1w],gencoef[0.059h,-0.532d]); z2l=(gencoef[0.426w,0.568w],-d);
+z3=gencoef[(0.743w,0),(0.78w,-0.42d)];
+z4=(w-gencoef[apex_o,0],gencoef[0.107h,-0.161d]); penpos5(whatever,0);
+z5=gencoef[(0.733w,0.455h),(0.763w,0.199h)]; x5r=gencoef[0.8627w,0.86w];
+penpos6(hair,gencoef[-57,-20]); z6r=(gencoef[w,0.932w],0.845h);
+penpos7(4/3stem,gencoef[46,50]); z7r=gencoef[(0.673w,h+apex_o),(0.466w,h)];
+penpos8(hair,gencoef[-24,angle(z6-z7r)]); z8l=z7l; z8'=whatever[z8l,z8r];
+x8'=gencoef[0.688w,0.67w]; penpos9(gencoef[1.292stem,1.1stem],36);
+z9=(gencoef[0.228w,0.186441w],0.462h); penpos10(gencoef[hair,1.25hair],-50);
+z10r=gencoef[(0.277w,-0.239d),(0.339w,0)]; penpos11(gencoef[hair,1.25hair],-50);
+z11-z10=whatever*dir(gencoef[40,32]); x11=gencoef[0.8w,0.763w];
+z13=whatever[z10l,z11l]; x13=gencoef[0.488w,0.466w]; penstroke
+z2e{left}..z1e{gencoef[up,dir135]}; filldraw z2l{right}..z4 & flex(z4,z5r,z6r) &
+z6r--z6l{left}.. {z6l-z6r}z7r---z7l...z9l{down}..z10r--z13 &
+z13..z9r{up}..z8r{z7r-z7l} & z8r--z8' & z8'..z5l{down}
+..z3{down}..z2r{left}--z2l & cycle; penstroke z10e--z11e;
+last_char:=currentpicture;
+ .endchar;
+
+
+.cmchar "The Fraktur letter g with breve";
+.beginchar(oct"247",nombre*lower_u#,x_height#,gencoef[2.389lower_u#,3.4446lower_u#]);
+currentpicture:=last_char; z100=(0.5w,x_height); breve(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter h";
+.beginchar("h",5.472lower_u#,1.376x_height#,2.556lower_u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot);
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3);
+z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height);
+penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e; filldraw
+z2l---z3''...z4l--z4r-- z3{dir45}..z5l{right}--z5r{left} ...z3'---z2r--z2l &
+cycle; penpos5'(hair,-40); z5'l=(0,0.097x_height); penpos6(hair,-37);
+penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.6w;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; penpos8(1.292stem,39);
+z8r=(w,0.478x_height); penpos11(hair,-50); penpos10(hair,-50); x10r=x8l;
+y10l=x_height+apex_o; z10-z11=whatever*((w,0.559x_height)); x11=x1;
+penpos9(1.229stem,angle((w,0.559x_height))); z9=whatever[z11,z10];
+y9r=y10r-apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z11e--z10e; penstroke z6e---z7e; penpos7'(1.2hair,-40); z7'r=(0.426w,-d);
+penstroke z7'e{dir50}...z8e{up}.. z9e; filldraw z5'l..z1l{up}--z1r-- z15--z7l--
+z6'{dir138}..z5'r--z5'l & cycle; .endchar;
+
+.cmchar "The Fraktur letter i";
+.beginchar("i",2.889lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(hair,-44); penpos2(hair,-44); penpos3(hair,-44); z1l=(0,0.834h);
+z2-z1=whatever*((w,0.37h)); y2l=h+apex_o; z3=whatever[z2l,z2r]; x3r=x5r+0.5stem;
+z4=(0.606w,0.931h); penpos5(stem,0); z5=(0.433w,0.759h); z6=(x5,0.238h);
+penpos6(stem,0); z7=(x6l,0.079h); z8-z7=whatever*dir-40; y8=-apex_o;
+penpos9(hair,-38); z9r-z8=whatever*dir52; x9r=w; z10=(0.788w,0.152h);
+z5'=whatever[z1,z2]; x5'=x5l; penstroke z5e--z6e; penstroke z1e--z2e; filldraw
+z5r{up}..z3r--z2--z5'--z5l{down} --z5r & cycle; filldraw z8--z9r--z9l{z8-z9r}
+..z6r{up}--z6l{down}..{z8-z7}z8 & cycle; penpos11(hair,0); z11r=(x2l,1.076h);
+z12=(0.56w,1.279h); z13=(0.73w,1.238h); filldraw z11l{up}..z12{right}..
+z13{down}..{z1-z2}z11r--z11l & cycle;
+small_letter_i:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter j";
+.beginchar("j",2.944lower_u#,x_height#,1.611lower_u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(hair,47); penpos2(1.3hair,-90); z2r=(0.16w,-d); penpos5(stem,0);
+z5=(0.523w,0.124h); penpos3(2/3stem,0); z3l=(x5l,0.048h); penpos6(stem,0);
+z6=(x5,0.824h); penpos7(hair,-90); z7=(0.906w,0.91h); penpos8(hair,-48);
+penpos9(hair,-48); z8l=(0.481w,h+apex_o); z8-z9=whatever*((w,0.3448h)); x9l=0;
+z9'=whatever[z9r,z8r]; y9'=y9l+apex_o; z1r=(x5r+0.5stem,-0.207d);penstroke
+z2e..z3e{up}; penstroke z5e--z6e; filldraw z1r{dir137}..z5r{up}--z5l
+--z3l--z3r..z1l{dir-43}--z1r & cycle; filldraw z6r{up}..z7r{right}--z7l...
+z8r---z8l--z9l--z9r--z9'.. z6l{down}--z6r & cycle; penpos11(hair,0);
+z11r=(x8l,1.076h); z12=(0.571w,1.279h); z13=(0.744w,1.238h); filldraw
+z11l{up}..z12{right}..z13{down} ..{z9-z8}z11r--z11l & cycle;
+last_char:=currentpicture;
+small_letter_j:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter ij";
+.beginchar(oct"274",5.5lower_u#,x_height#,1.611lower_u#);
+currentpicture:=small_letter_i;
+addto currentpicture also last_char shifted (5.5u-2.944u,0);
+.endchar;
+
+
+.cmchar "The Fraktur letter k";
+.beginchar("k",3.861lower_u#,1.366x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w':=1.223w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot);
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3);
+z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height);
+penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e;
+penpos5''(hair,-90); z5''=z5+(hair,-eps); filldraw z2l---z3''...z4l--z4r--
+z3{dir45}..z5l{right}..z5''l--z5''r..z5r{left} ...z3'---z2r--z2l & cycle;
+penpos5'(hair,-40); z5'l=(0,0.097x_height); penpos6(hair,-37); penpos7(hair,-37);
+y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.8w; z6'=whatever[z6,z7];
+y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l &
+cycle; penpos1.4(3/4stem,-90); z1.4=(0.928w,.859x_height); z1.3=(0,y1.4r);
+z1.35=(x2l,y1.4l); filldraw z1.3--z1.35--z1.4l--z1.4r-- z1.3 & cycle;
+penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43);
+z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
+x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60);
+z1.8r=(w,0.579[y1.4l,y5l]); penstroke z1.6e--z1.6'e; penstroke
+z1.5e{dir72}..z1.8e{up}..z1.7e{left}; filldraw z1.6r--z1.7l--z1.7r--z1.6l
+--z1.6r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter l";
+.beginchar("l",3lower_u#,1.366x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w':=1.574w; penpos1(stem,0); z1=(0.241w',foot); penpos5'(hair,-40);
+z5'l=(0,0.097x_height); penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o;
+x6r=x1r; z7-z6=whatever*dir48; x7=w; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke z6e---z7e; filldraw
+z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; penpos2(stem,0);
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3);
+z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height);
+penpos5(hair,-90); z5l=(x7,h); penstroke z1e--z2e; filldraw
+z2l---z3''...z4l--z4r-- z3{dir50}..z5l{right}--z5r{left} ...z3'---z2r--z2l &
+cycle; last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter l with bar";
+.beginchar(oct"252",3lower_u#,1.366x_height#,0);
+currentpicture:=last_char; z100=(0,0.5cap_height); ellbar(100);
+.endchar;
+
+.cmchar "The Fraktur letter l with acute";
+.beginchar(oct"250",3lower_u#,cap_height#,0);
+currentpicture:=last_char; z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+nombre:=7.806gencoef[1,1.227586];
+
+.cmchar "The Fraktur letter m";
+.beginchar("m",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+boolean itsm; itsm:=true;
+w':=w; if itsm: z0=(0.356w',0) else: z0=(0,0) fi; penpos1(stem,0);
+penpos2(stem,0); penpos3(stem,0); penpos4(stem,0); penpos5(stem,0);
+penpos6(stem,0); z1=(0.135w',foot); z3=(0.491w',foot); n_foot(1);
+z2=(x1,0.846h); z4=(x3,y2); z5=z3+z0; z6=z4+z0; penpos10(hair,-54);
+penpos11(hair,-54); penpos12(hair,-54); penpos13(hair,-54);
+z2r-z10l=whatever*dir36; x10r=x2r; z11-z10=whatever*dir36; y11l=h+apex_o;
+z14=whatever[z10r,z11r]; y14=0.881h; penpos16(2/3hair,-90);
+z16=(x6r+1/20w',y14); penstroke z1e--z2e; penstroke z5e--z6e; if itsm: penstroke
+z3e--z4e; n_foot(3); fi z12=z10+z0; z13=z11+z0; z15=z14+z0; x14'=x4l;
+z14'-z14=whatever*(z4r-z11); z15'=z14'+z0; if itsm: filldraw
+z14--z14'--z4l--z4r-- z11l--z10l--z10r--z14 & cycle; fi filldraw
+z12l--z13l---z13r...z16l{right} --z16r{left}..z6r--z6l--z15'--z15-- z12r--z12l &
+cycle; penpos18(hair,-37); penpos17(hair,-37); z17=(0.354[x5l,x5r],-apex_o);
+x18r=x5+0.157w'; y18l=foot; z20'=whatever[z17l,z18l]; x20'=x5r;
+z20=0.5[z20',z18l]; z19=(x5l,2/3foot); z17'=whatever[z17,z18]; y17'=0; filldraw
+z17'--z19--z5l--z5r{down} ..z20{z18r-z18l}--z17' & cycle; penstroke z17e--z18e;
+z8=(0,y2); z9=(x2,h+apex_o); z7=(x1l,0.194[y2,y1]); filldraw
+z7{up}..z8--z9..z2r{down} --z7 & cycle;
+.endchar;
+
+nombre:=5.028gencoef[1,1.227586];
+
+.cmchar "The Fraktur letter n";
+.beginchar("n",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+boolean itsm; itsm:=false;
+w':=1.553w; if itsm: z0=(0.356w',0) else: z0=(0,0) fi; penpos1(stem,0);
+penpos2(stem,0); penpos3(stem,0); penpos4(stem,0); penpos5(stem,0);
+penpos6(stem,0); z1=(0.135w',foot); z3=(0.491w',foot); n_foot(1);
+z2=(x1,0.846h); z4=(x3,y2); z5=z3+z0; z6=z4+z0; penpos10(hair,-54);
+penpos11(hair,-54); penpos12(hair,-54); penpos13(hair,-54);
+z2r-z10l=whatever*dir36; x10r=x2r; z11-z10=whatever*dir36; y11l=h+apex_o;
+z14=whatever[z10r,z11r]; y14=0.881h; penpos16(2/3hair,-90);
+z16=(x6r+1/20w',y14); penstroke z1e--z2e; penstroke z5e--z6e; if itsm: penstroke
+z3e--z4e; n_foot(3); fi z12=z10+z0; z13=z11+z0; z15=z14+z0; x14'=x4l;
+z14'-z14=whatever*(z4r-z11); z15'=z14'+z0; if itsm: filldraw
+z14--z14'--z4l--z4r-- z11l--z10l--z10r--z14 & cycle; fi filldraw
+z12l--z13l---z13r...z16l{right} --z16r{left}..z6r--z6l--z15'--z15-- z12r--z12l &
+cycle; penpos18(hair,-37); penpos17(hair,-37); z17=(0.354[x5l,x5r],-apex_o);
+x18r=x5+0.157w'; y18l=foot; z20'=whatever[z17l,z18l]; x20'=x5r;
+z20=0.5[z20',z18l]; z19=(x5l,2/3foot); z17'=whatever[z17,z18]; y17'=0; filldraw
+z17'--z19--z5l--z5r{down} ..z20{z18r-z18l}--z17' & cycle; penstroke z17e--z18e;
+z8=(0,y2); z9=(x2,h+apex_o); z7=(x1l,0.194[y2,y1]); filldraw
+z7{up}..z8--z9..z2r{down} --z7 & cycle;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter n tilde";
+.beginchar(oct"361",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char; z100=(0.5w,x_height); tilde(100);
+.endchar;
+
+.cmchar "The Fraktur letter n tilde";
+.beginchar(oct"253",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char; z100=(0.5w,x_height); acute(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter n hacek";
+.beginchar(oct"254",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char; z100=(0.5w,x_height); hacek(100);
+.endchar;
+
+nombre:=4.75gencoef[1,1.140351];
+
+.cmchar "The Fraktur letter o";
+.beginchar("o",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]);
+x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31);
+z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0);
+z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22);
+z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l;
+penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]);
+z2-z1=whatever*((w,0.786h)); x8'=x8r;
+y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e..
+z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw
+z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw
+z7l--z7'--z7r--z7l & cycle;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur ligature oe";
+if (dc_layout>0): xchar_code:=oct"367";
+ else: xchar_code:=oct"033";
+ fi;
+.beginchar(xchar_code,1.7*nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+addto currentpicture also small_letter_e shifted (4u,0);
+.endchar;
+nombre:=5.056gencoef[1,1.131868];
+
+.cmchar "The Fraktur letter p";
+.beginchar("p",nombre*lower_u#,x_height#,3.361lower_u#);
+.adjust_fit(usual_left#+gencoef[0,0.5u#],usual_right#);
+penpos1(stem,0); z1=(gencoef[0.242w,0.223w],foot); penpos2(stem,0);
+z2=(x1,0.834h); penpos3(hair,-27); z3=(x2l,1.05h);
+penpos4(stem,53); z4l=(-apex_o,0.86h); penpos5(hair,0);
+z5=(x1,-d); penstroke z5e--z1e--z2e; z6=(x1l,0.69h); filldraw z6{up}..
+z4l{up}--z4r{down}..{dir-45}z2r--z6 & cycle; penstroke
+z4e{up}..z3e{dir53};
+penpos8(hair,-49); penpos7(hair,-49);
+z8l=(gencoef[0.714w,0.7w],h+gencoef[apex_o,0]);
+z8-z7=whatever*dir(gencoef[41,35]); x7=x1; penstroke z7e--z8e;
+z11=(-0.5u,0.15h); z9-z11=whatever*dir-20; x9=gencoef[0.527w,0.592w];
+penpos9(hair,-20); penpos10(hair,-20); z10-z9=whatever*dir57.5;
+y10r=gencoef[0.1h,0.12h]; z12-z10=whatever*(z11-z9); z12-z11=whatever*(z10-z9);
+penpos13(stem,33); penpos14(5/4stem,41); z13r=(w,gencoef[0.5h,0.548h]);
+z14r=z8l; penstroke z9e---z10e...z13e...z14e {dir131}; filldraw
+z11--z12--z10r--z9r--z11 & cycle; .endchar;
+
+nombre:=4.639gencoef[1,1.269461];
+
+.cmchar "The Fraktur letter q";
+.beginchar("q",nombre*lower_u#,x_height#,3.361lower_u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,0); z1=(0.745w,-d); penpos2(stem,0); z2=(x1,foot); z3=(x2r,0.728h);
+z4=(w,0.879h); penpos5(hair,-33); penpos6(hair,-33); z5l=(0.485w,h+apex_o);
+z5-z6=whatever*dir52; x6=0.335w; penpos7(1.542stem,62); z7l=(0,0.445h);
+penpos8(1.125stem,45); z8l=(0.388w,-2apex_o); penpos9(hair,-45);
+penpos10(hair,-45); z9r=z8; z10-z9=whatever*dir45; x10=x2; penstroke z1e--z2e;
+z3'-z6=whatever*(z5r-z5l); x3'=x2l; filldraw z2r---z3...z4 & z4...z5r---z5l
+--z6l--z3'--z2l--z2r & cycle; penstroke z8e{(0,0.552h)-z8}..z7e{up}... z6e---z5e;
+penstroke z9e--z10e;
+.endchar;
+
+nombre:=3.944gencoef[1,1.281690];
+
+.cmchar "The Fraktur letter r";
+.beginchar("r",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+w':=1.197w;
+penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,x_height);
+z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90);
+z5l=(x2r+0.875stem,h); penpos5'(hair,-40); z5'l=(0,0.097x_height);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r;
+z7-z6=whatever*dir48; x7=0.817w; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+penpos8(1.292stem,39); z8r=(w,0.478x_height); penpos11(hair,-50);
+penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*dir40;
+x11=x1; penpos9(1.229stem,40); z9=whatever[z11,z10]; y9r=y10r-apex_o;
+z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke z6e---z7e;
+penpos7'(1.2hair,-40); z7'r=(0.426w,-d); filldraw z5'l..z1l{up}--z1r--
+z15--z7l-- z6{dir138}..z5'r--z5'l & cycle; penpos22(stem,0); z22=(x1,0.841h);
+z29=(x22,h+apex_o); z28=(0,y22); z27=(x22l,0.721h); filldraw
+z1l---z27...z28--z29... z22r---z1r--z1l & cycle; penpos30(hair,-70);
+penpos32(hair,-70); penpos31(1.083stem,45); z22r-z32l=whatever*dir45; x32r=x22r;
+z30-z32=whatever*dir45; y30l=h+apex_o; z31r=(w,y32);
+z33-z31l=whatever*(z30-z31r); z33=whatever[z32,z30]; penstroke z32e--z30e;
+filldraw z30--z31r--z31l--z33-- z30 & cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter r acute";
+.beginchar(oct"257",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char; z100=(0.5w,x_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter r hacek";
+.beginchar(oct"260",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char; z100=(0.5w,x_height); hacek(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter long s";
+.beginchar("s",4.539lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-1.932lower_u#);
+w':=w; penpos1.1(hair,0); z1.1=(0.318w',-d); penpos1.2(1.313stem,0); z1.2=(x1.1,0.795x_height);
+penpos1.4(3/4stem,-90); z1.4r=(0.857w',y1.2); z1.3=(0,y1.2); z1.12=whatever[z1.1l,z1.2l];
+z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height; z1.12'=z1.12-(0.5apex_o,0);
+z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4; penpos1.5(0.917stem,0);
+z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112; z1.6l-z1.5l=whatever*dir72;
+penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22); penpos1.11(hair,-22);
+z1.11r=(w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'; penpos1.8(whatever,68);
+z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w',1.366x_height); filldraw z1.1r..z1.13'..z1.2r...
+z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle; filldraw
+z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e;
+.endchar;
+
+nombre:=5.039gencoef[1,1.168688];
+
+.cmchar "The Fraktur letter short s";
+.beginchar(s_final,nombre*lower_u#,1.286x_height#,0);
+.adjust_fit(usual_left#,usual_right#); penpos0(hair,angle((w,x_height))-90);
+penpos0'(hair,angle((w,x_height))-90); z0l=(0,0.103x_height); x0'r=0.86w;
+z0'-z0=whatever*((w,x_height)); penstroke z0e--z0'e;
+penpos5(1.083stem,angle((w,gencoef[0.797x_height,0.63x_height])));
+penpos6(1.083stem,angle(z0'-z0)); z5l=(0.54w,-apex_o); z6l=z0r; penstroke z5e{dir142}..z6e;
+penpos1(hair,angle((w,0.797x_height))-90); penpos2(hair,angle((w,0.797x_height))-90);
+penpos3(1.083stem,39); z3r=(w,0.441x_height); z1r=z5l; z2r=z5r; z4=whatever[z0r,z0'r]; x4=0.595w;
+penpos4(5/4stem,angle(z0'-z0)); penstroke z1e--z2e{z2-z1}..z3e..z4e{dir(angle(z0'-z0)+90)};
+penpos7(hair,angle(z0'-z0)-90); z7r=z6; penpos8(1.125stem,angle((w,0.5x_height)));
+z8r=whatever[z0,z0']; x8r=0.433w; penpos9(1.292stem,54); z9l=(0,0.69x_height); filldraw
+z7--z8r--z8l{down}..z7l{z0-z0'}--z7 & cycle; penstroke z8e{up}..z9e{dir144}; penpos10(hair,-36);
+z10l=z9; z11=whatever[z9l,z9r]; y11=x_height+apex_o; penpos12(1.083stem,54); z12r=z11;
+penpos14(hair,-36); z14l=z12; penstroke z10e--z14e; z13-z12l=whatever*dir-21;
+z13=whatever[z0l,z0'l]; penpos15(0.538stem,-29); z15r=whatever[z0,z0']; y15r=y11; penpos16(hair,90);
+penpos17(hair,144); z16r=(0.568w,h); z17=(0.198w,1.124x_height); penstroke
+z15e{up}..z16e{left}..z17e; filldraw z12l--z13--z0'r & z0'r{z0'-z0}..z15r{up}--z15l{down}
+..z11{z12-z13}--z12l & cycle;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter short s acute";
+.beginchar(oct"261",nombre*lower_u#,1.286x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter short s hacek";
+.beginchar(oct"262",nombre*lower_u#,1.286x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hacek(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter short s cedilla";
+.beginchar(oct"263",nombre*lower_u#,1.286x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,0); cedilla(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter t";
+.beginchar("t",3.444lower_u#,1.186x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#-0.3u#);
+w':=1.371w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,0.828x_height);
+z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74);
+z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e;
+penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=w;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle;
+penpos1.4(3/4stem,-90); z1.4=(0.928w,.859x_height); z1.3=(0,y1.4r); z1.35=(x2l,y1.4l); filldraw
+z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)];
+penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
+x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60);
+z1.8r=(w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,h); filldraw z1.3--z30l--z30r..z2r{down}
+--(x2r,y1.3)--z1.3 & cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter t ogonek";
+.beginchar(oct"265",3.444lower_u#,1.186x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,0); ogonek(100);
+.endchar;
+
+
+nombre:=6.15gencoef[1,1.107527];
+
+.cmchar "The Fraktur letter u";
+.beginchar("u",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h);
+penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90);
+penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r;
+z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58;
+z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke
+z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle;
+penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}--
+z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l
+& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot);
+z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o);
+z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height);
+penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l];
+z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r
+--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e;
+penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o);
+z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up}
+..z15--z14r--z14l--z13 & cycle;
+.endchar;
+
+nombre:=5.444gencoef[1,1.122449];
+
+.cmchar "The Fraktur letter v";
+.beginchar("v",nombre*lower_u#,1.203x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.334w,1.05foot); penpos2(stem,0); z2=(x1,0.561x_height);
+penpos3(stem,50); z3=(0.158w,0.897x_height); penpos3'(1.042stem,37);
+z3'l=(0,0.928x_height); penpos4(hair,-44); z4l=(0.265w,h); penstroke
+z1e---z2e...z3e{dir140}.. z3'e{up}..z4e{dir46}; penpos5(hair,-90);
+penpos6(hair,0); penpos7(hair,-11); z5=(0.133w,0.11x_height);
+z6=(0.582w,-apex_o); z7r-z6r=whatever*dir58; z7-z1r=whatever*dir-11;
+z7'=whatever[z6l,z7l]; x7'=0.7w; filldraw z1l{down}..z5l--z5r{z1r-z5r}
+..z6l--z6r--z7r--z7l--z7'..{left}z1r--z1l & cycle; penpos8(1.125stem,44);
+z8r=(w,0.576x_height); penpos11(hair,-44); penpos12(hair,-44);
+z11=(0.735w,gencoef[1.055x_height,x_height]); z11-z12=whatever*dir46; x12=0.3w;
+penstroke z12e--z11e; penpos10(1.521stem,46); z10r=z11; penpos9(1.042stem,46);
+z9=(0.648w,0.928x_height); penstroke z6e---z7e...z8e..z9e; filldraw
+z9r{z10-z9}..z10r{z11-z12} --z10l{z11-z12}..z9l{z9-z10}-- z9r & cycle;
+.endchar;
+
+nombre:=7.111gencoef[1,1.2];
+
+.cmchar "The Fraktur letter w";
+.beginchar("w",nombre*lower_u#,1.083x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.154w,foot); n_foot(1); penpos2(stem,0);
+z2=(x1,0.831x_height); penstroke z1e--z2e; penpos3(hair,-53); penpos4(hair,-54);
+z3r=z2r; z4-z3=whatever*dir37; y4l=x_height+apex_o; z3'=whatever[z3l,z4l];
+x3'=x1r; penpos5(stem,40); z5l=(0,0.955x_height); penpos6(hair,-50);
+z6l=(0.145w,h); penstroke z3e--z4e; filldraw
+z2r--z3'..z5r-(0,2apex_o){up}..z6r{dir60} --z6l{z5l-z5r}..z5l{down}..z2l--z2r &
+cycle; penpos7(stem,0); penpos8(stem,0); z7=(0.531w,foot); z8=(x7,y2);
+penpos9(hair,-35); penpos10(hair,-35);
+z10-z7r=whatever*((0,0.621x_height)-(w,0)); z9r=(0.668w,-apex_o);
+z10-z9=whatever*((w,0.359x_height)-z9); z9-z11=whatever*(z10-z7r); x11=0.402w;
+filldraw z11..z7l{up}--z7r--z10r-- z9r--z11 & cycle; penstroke z7e--z8e;
+penpos14(1.083stem,47); z14r=(w,gencoef[0.462x_height,0.685x_height]);
+penpos11'(hair,-53); penpos12(hair,-53); z11'r=z8r; z12-z11'=whatever*dir37;
+y12l=x_height+apex_o; penstroke z11'e--z12e; penpos13(1.083stem,37); z13r=z12;
+penstroke z9e---z10e... z14e..z13e{dir(gencoef[110,130])};
+z11.5=whatever[z11'l,z12l]; x11.5=x8r; z8'=whatever[z3r,z4r];
+z8l-z8'=whatever*(z11.5-z4); filldraw z8'--z4--z11.5--z8r--z8l --z8' & cycle;
+.endchar;
+
+nombre:=3.944gencoef[1,1.194030];
+
+.cmchar "The Fraktur letter x";
+.beginchar("x",nombre*lower_u#,x_height#,0.5x_height#);
+.adjust_fit(usual_left#+u#,usual_right#); w':=1.197w;
+penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,x_height);
+z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90);
+z5l=(x2r+0.875stem,h); penpos5'(hair,-40); z5'l=(x1l,0.097x_height);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r;
+z7-z6=whatever*dir48; x7=0.817w; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+penpos8(1.292stem,39); z8r=(w,0.478x_height); penpos11(hair,-50);
+penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*dir40;
+x11=x1; penpos9(1.229stem,40); z9=whatever[z11,z10]; y9r=y10r-apex_o;
+z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke z6e---z7e;
+penpos7'(1.2hair,-40); z7'r=(0.426w,-d); filldraw z5'l..z1l{up}--z1r--
+z15--z7l-- z6{dir138}..z5'r--z5'l & cycle; penpos22(stem,0); z22=(x1,0.841h);
+z29=(x22,h+apex_o); z28=(0,y22); z27=(x22l,0.721h); filldraw
+z1l---z27...z28--z29... z22r---z1r--z1l & cycle; penpos30(hair,-70);
+penpos32(hair,-70); penpos31(1.083stem,45); z22r-z32l=whatever*dir45;
+x32r=x22r; z30-z32=whatever*dir45; y30l=h+apex_o; z31r=(w,y32);
+z33-z31l=whatever*(z30-z31r); z33=whatever[z32,z30]; penstroke z32e--z30e;
+filldraw z30--z31r--z31l--z33-- z30 & cycle;
+z40=(x1l,1.5foot); z40'=(x1r,1/3foot);
+penpos41(0.8stem,180); penpos42(1.5hair,-120); penpos43(hair,-142);
+ z41l=(apex_o,-0.129d); z42l=(x1r,-0.557143d); x43l=w; y43r=-d;
+filldraw z40{down}..z41r{down}--z41l{up}..z40'{right}--z40 & cycle;
+penstroke z41e{down}..z42e..z43e{dir-60}; .endchar;
+
+
+nombre:=5.472gencoef[1,1.107527];
+
+.cmchar "The Fraktur letter y";
+.beginchar("y",nombre*lower_u#,x_height#,2.556lower_u#);
+.adjust_fit(usual_left#,usual_right#);
+w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot);
+z2=(x1,0.846x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3);
+z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height);
+penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e; z2.8=(0,y2);
+z2.9=(x2,h+apex_o); z2.7=(x1l,0.194[y2,y1]); filldraw
+z2.7{up}..z2.8--z2.9..z2r{down} --z2.7 & cycle; penpos5'(hair,-40);
+z5'l=(0,0.097x_height); penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o;
+x6r=x1r; z7-z6=whatever*dir48; x7=0.6w; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+penpos8(1.292stem,39); z8r=(w,0.478x_height); penpos11(hair,-50);
+penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o;
+z10-z11=whatever*((w,0.559x_height)); x11=x1; penpos9(1.229stem,40);
+z9=whatever[z11,z10]; y9r=y10r-apex_o; z15=whatever[z6l,z7l];
+z15-z1r=whatever*dir-30; penstroke z11e--z10e; penstroke z6e---z7e;
+penpos7'(1.2hair,-40); z7'r=(0.426w,-d); penstroke z7'e{dir50}...z8e{up}.. z9e;
+filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6'{dir138}..z5'r--z5'l & cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter y acute";
+.beginchar(oct"375",nombre*lower_u#,x_height#,2.556lower_u#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter y Umlaut";
+if (dc_layout>0): xchar_code:=oct"270";
+ else: xchar_code:=oct"377";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,2.556lower_u#);
+currentpicture:=last_char;
+z100=(0.5w,x_height); umlaut(100);
+.endchar;
+
+
+
+nombre:=3.444gencoef[1,1.330645];
+
+.cmchar "The Fraktur letter z";
+.beginchar("z",nombre*lower_u#,x_height#,gencoef[2.15lower_u#,3.07lower_u#]);
+.adjust_fit(usual_left#,usual_right#); penpos1(hair,122);
+penpos2(gencoef[hair,1.5hair],180); penpos3(0.625stem,-42);
+penpos4(1.313stem,37); z1l=gencoef[(w,0.524h),(0.945w,0.459h)]; z2r=(0,-0.1d);
+z3r=(gencoef[0.548w,0.509w],-d); z4r=(w,gencoef[0.103h,0]); penstroke
+z1e..z2e{down}..z3e{right}..z4e{up}; penpos5(hair,-90);
+z5=gencoef[(0,0.414h),(0.145w,0.390h)]; z6-z5=whatever*dir38;
+x6=gencoef[0.484w,0.454w]; filldraw z5r{right}..z4l{down}-- z4r{up}..z6--z5r &
+cycle; penpos7(4/3stem,43); z7=gencoef[(0.629w,0.734h),(0.618w,0.699h)];
+z8=(gencoef[0.532w,0.4w],h+apex_o); z9=(gencoef[0.081w,0.107782w],0.793h);
+penpos9'(hair,-90); z9'l=z9; penstroke z5e{z6-z5r}..z7e{up}; filldraw
+z7l{up}..z9'r{z9-z8}--z9--z8.. z7r{down}--z7l & cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter z with point";
+.beginchar(oct"273",nombre*lower_u#,x_height#,gencoef[2.15lower_u#,3.07lower_u#]);
+currentpicture:=last_char;
+z100=(0.5w,x_height); pointaccent(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter z with acute";
+.beginchar(oct"271",nombre*lower_u#,x_height#,gencoef[2.15lower_u#,3.07lower_u#]);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter z with hacek";
+.beginchar(oct"272",nombre*lower_u#,x_height#,gencoef[2.15lower_u#,3.07lower_u#]);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hacek(100);
+.endchar;
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/cmfrakmis.mf b/Master/texmf-dist/fonts/source/public/gothic/cmfrakmis.mf
new file mode 100644
index 00000000000..12195b7d90a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/cmfrakmis.mf
@@ -0,0 +1,769 @@
+.cmchar "The Fraktur ligature ch";
+.beginchar(ch_ligature,3.639lower_u#+4.772lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w:=3.639u; penpos101(hair,-30); penpos102(hair,-30); z102l=(w+0.438u-0.5stem,foot);
+z101r=(0.565w,-apex_o); z101'=whatever[z101,z102]; y101'=y101l+apex_o; z103=whatever[z101l,z102l];
+x103=0.809w; z104=(2/3w,0.176h); penpos105(1.083stem,angle((w,0.4h))); z105=(0.26w,0.214h);
+penpos106(stem,0); z106l=(0,0.5h); penpos109(hair,-68); penpos108(hair,-68); penpos108.5(hair,-68);
+z109l=(0.832w,h+apex_o); z109-z108=whatever*((w,0.25h)); x108l=0.458w; z107=whatever[z108l,z109l];
+x107=0.145w; penpos110(stem,angle((w,0.25h))); z110r=whatever[z109l,z109r]; x110r=w;
+z110l-z108.5=whatever*(z110r-z109); z108.5=whatever[z108,z109]; penstroke z101e--z102e; filldraw
+z101'..z105l..z106l{up}--z106r{down} ..z105r...z103---z102l--z102r--z101' & cycle; filldraw
+z106l{up}..z107 & z107--z109l--z110r-- z110l--z108.5r &
+z108.5r{z108-z109}..(x106r,0.738h)..z106r{down}-- z106l & cycle; z0=(w-0.7u,0); w:=5.472u;
+h:=1.376x_height; d:=2.556u; w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1l=z102l;
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5[x0,x2l],1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h);
+penstroke z1e--z2e; filldraw z2l---z3''...z4l--z4r-- z3{dir45}..z5l{right}--z5r{left}
+...z3'---z2r--z2l & cycle; penpos5'(hair,-40); penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o;
+x6r=x1r; z7-z6=whatever*dir48; x7=0.6w+x0; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+penpos8(1.292stem,39); z5'=whatever[z101,z102]; z8r=(w,0.478x_height)+z0; penpos11(hair,-50);
+penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*((w,0.559x_height)); x11=x1;
+penpos9(1.229stem,angle((w,0.559x_height))); z9=whatever[z11,z10]; y9r=y10r-apex_o;
+z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; z5'r-z6'=whatever*(z1r-z15); penstroke z11e--z10e;
+penstroke z6e---z7e; penpos7'(1.2hair,-40); z7'r=(0.426w,-d)+z0; penstroke z7'e{dir50}...z8e{up}..
+z9e; filldraw z5'l--z1l--z1r-- z15--z7l--
+z6'--z5'r--z5'l & cycle; .endchar;
+
+.cmchar "The Fraktur ligature ck";
+.beginchar(ck_ligature,3.639lower_u#+3.161lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w:=3.639u; penpos101(hair,-30); penpos102(hair,-30); z102l=(w+0.438u-0.5stem,foot);
+z101r=(0.565w,-apex_o); z101'=whatever[z101,z102]; y101'=y101l+apex_o; z103=whatever[z101l,z102l];
+x103=0.809w; z104=(2/3w,0.176h); penpos105(1.083stem,angle((w,0.4h))); z105=(0.26w,0.214h);
+penpos106(stem,0); z106l=(0,0.5h); penpos109(hair,-68); penpos108(hair,-68); penpos108.5(hair,-68);
+z109l=(0.832w,h+apex_o); z109-z108=whatever*((w,0.25h)); x108l=0.458w; z107=whatever[z108l,z109l];
+x107=0.145w; penpos110(stem,angle((w,0.25h))); z110r=whatever[z109l,z109r]; x110r=w;
+z110l-z108.5=whatever*(z110r-z109); z108.5=whatever[z108,z109]; penstroke z101e--z102e; filldraw
+z101'..z105l..z106l{up}--z106r{down} ..z105r...z103---z102l--z102r--z101' & cycle; filldraw
+z106l{up}..z107 & z107--z109l--z110r-- z110l--z108.5r &
+z108.5r{z108-z109}..(x106r,0.738h)..z106r{down}-- z106l & cycle; z0=(w-0.7u,0);
+w:=3.861u; h:=1.366x_height; w':=1.223w; penpos1(stem,0); penpos2(stem,0); z1l=z102l;
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5[x0,x2l],1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h);
+penstroke z1e--z2e; penpos5''(hair,-90); z5''=z5+(hair,-eps); filldraw z2l---z3''...z4l--z4r--
+z3{dir45}..z5l{right}..z5''l--z5''r..z5r{left} ...z3'---z2r--z2l & cycle; penpos5'(hair,-40);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.8w+x0;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; z5'r-z6'=whatever*(z1r-z15); z5'=whatever[z101,z102]; filldraw z5'l..z1l{up}--z1r--
+z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; penpos1.4(3/4stem,-90); z1.4=(x0+0.928w,.859x_height);
+z1.3=(x0,y1.4r); z1.35=(x2l,y1.4l); filldraw z1.3--z1.35--z1.4l--z1.4r-- z1.3 & cycle;
+penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43);
+z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
+x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60);
+z1.8r=(x0+w,0.579[y1.4l,y5l]); penstroke z1.6e--z1.6'e; penstroke
+z1.5e{dir72}..z1.8e{up}..z1.7e{left}; filldraw z1.6r--z1.7l--z1.7r--z1.6l --z1.6r & cycle;
+.endchar;
+
+.cmchar "The Fraktur ligature st";
+.beginchar(st_ligature,6.5lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#);
+w':=0.698w; penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
+z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2);
+z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height;
+z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
+penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112;
+z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22);
+penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
+penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw
+z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle;
+filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
+z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+w':=0.726w; z100=(x0.14,0); penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot)+z100;
+z2=(x1,0.828x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke
+z1e--z2e; penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height)+z100;
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=x100+0.53w;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle;
+penpos1.4(3/4stem,-90); z1.4=(0.928x100+0.4916w,.859x_height); z1.3=(x100,y1.4r);
+z1.35=(x2l,y1.4l); filldraw z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0);
+z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]);
+penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47; x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43);
+z1.6'l=z1.7r; penpos1.8(stem,60);
+z1.8r=(x100+0.529w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,1.186x_height); filldraw
+z1.3--z30l--z30r..z2r{down} --(x2r,y1.3)--z1.3 & cycle; penpos30'(hair,180); z30'=z30;
+penpos30''(hair,-90); z30''r=(x30l,h); penstroke z0.11e{z0.11-z0.9}.. z30''e..z30'e{z1.3-z30l};
+.endchar;
+
+.cmchar "The Fraktur ligature ss";
+.beginchar(ss_ligature,6.928lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-1.932u#);
+w':=0.655w;
+penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0); z0.2=(x0.1,0.795x_height);
+penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2); z0.12=whatever[z0.1l,z0.2l];
+z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height; z0.12'=z0.12-(0.5apex_o,0);
+z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4; penpos0.5(0.917stem,0);
+z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112; z0.6l-z0.5l=whatever*dir72;
+penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22); penpos0.11(hair,-22);
+z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w'; penpos0.8(whatever,68);
+z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw z0.1r..z0.13'..z0.2r...
+z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; filldraw
+z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
+z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0);
+z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2);
+z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height;
+z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4;
+penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112;
+z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22);
+penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100;
+penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw
+z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle;
+filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e;
+.endchar;
+
+.cmchar "The Fraktur ligature sf";
+.beginchar(sf_ligature,6.928lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#);
+w':=0.655w; penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
+z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2);
+z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height;
+z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
+penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112;
+z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22);
+penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
+penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw
+z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle;
+filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
+z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0);
+z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2);
+z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height;
+z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4;
+penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112;
+z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22);
+penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100;
+penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw
+z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle;
+filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw
+z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle;
+.endchar;
+
+.cmchar "The Fraktur ligature ff";
+.beginchar(ff_ligature,6.928lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#);
+w':=0.655w; penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
+z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2);
+z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height;
+z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
+penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112;
+z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22);
+penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
+penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw
+z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle;
+filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
+z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0);
+z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2);
+z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height;
+z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4;
+penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112;
+z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22);
+penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100;
+penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw
+z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle;
+filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw
+z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle; filldraw z0.5--z0.4l--z0.4r--z0.2--z0.5 & cycle;
+.endchar;
+
+.cmchar "The Fraktur ligature sz";
+.beginchar(eszet,5.444lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#+0.5u#); w':=0.834w;
+penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
+z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2);
+z0.3=(0,y0.2); z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r];
+y0.12=y0.13=0.512x_height; z0.12'=z0.12-(0.5apex_o,0);
+z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
+penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68);
+z0.6-z0.5r=whatever*dir112; z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0);
+z0.7l=z0.5l; penpos0.9(hair,-22); penpos0.11(hair,-22);
+z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
+penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r;
+z0.14=(0.673w',1.366x_height); filldraw z0.1r..z0.13'..z0.2r... z0.5r---z0.6l &
+z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; filldraw
+z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw
+z0.6l{dir72}..z0.14{right}.. z0.8r{dir-22}--z0.8l{dir158}..
+z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+z100=(x0.2r-hair,hair); w':=0.633w; d':=0.679w; penpos1(hair,122);
+penpos2(hair,180); penpos3(0.625stem,-42); penpos4(1.313stem,37);
+z1l=(w',0.524h)+z100; z2r=(x0.2,-0.1d'+y100); z3r=(0.548w',-0.8d')+z100;
+z4r=(w'+u,0.103x_height)+z100; penstroke z2e{down}..z3e{right} ..z4e{up};
+penpos5(hair,-90); z5=(0,0.414x_height)+z100; z6-z5=whatever*dir38;
+x6=0.484w'+x100; filldraw z5r{right}..z4l{down}-- z4r{up}..z6--z5r &
+cycle; penpos7(4/3stem,43); z7=(0.629w',0.734x_height)+z100;
+z8=(0.532w',x_height+apex_o)+z100; z9=(0.081w',0.793x_height)+z100;
+penpos9'(hair,-90); z9'l=z9; penstroke z5e{z6-z5r}..z7e{up}; filldraw
+z7l{up}..z9'r{z9-z8}--z9--z8.. z7r{down}--z7l & cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+
+.cmchar "The Fraktur ligature sz";
+if (dc_layout>0): xchar_code:=oct"377";
+ else: xchar_code:=oct"337";
+ beginchar(xchar_code,5.444lower_u#,1.366x_height#,3.167lower_u#);
+ currentpicture:=last_char;
+ endchar;
+fi;
+
+.cmchar "The Fraktur ligature tz";
+.beginchar(tz_ligature,4.75lower_u#,1.186x_height#,3.167lower_u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#+u#);
+w':=0.994w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,0.828x_height);
+z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74);
+z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e;
+penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.632w;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle;
+penpos1.4(3/4stem,-90); z1.4=(x1r,.859x_height); z1.3=(0,y1.4r); z1.35=(x2l,y1.4l); filldraw
+z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)];
+penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
+x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r;
+penpos1.8(stem,60); z1.8r=(w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,h); filldraw
+z1.3--z30l--z30r..z2r{down} --(x2r,y1.3)--z1.3 & cycle; z100=(x1r-hair,hair); w':=0.725w;
+d':=0.679d; penpos0.1(hair,122); penpos0.2(hair,180); penpos0.3(0.625stem,-42);
+penpos0.4(1.313stem,37); z0.1l=(w',0.524h)+z100; z0.2r=(0,-0.1d')+z100; z0.3r=(0.548w',-d')+z100;
+z0.4r=(w'+u,0.103x_height)+z100; penstroke z0.2e{down}..z0.3e{right} ..z0.4e{up};
+penpos0.5(hair,-90); z0.5=(0,0.414x_height)+z100; z0.6-z0.5=whatever*dir38; x0.6=0.484w'+x100;
+filldraw z0.5r{right}..z0.4l{down}-- z0.4r{up}..z0.6--z0.5r & cycle; penpos0.7(4/3stem,43);
+z0.7=(0.629w',0.734x_height)+z100; z0.8=(0.532w',x_height+apex_o)+z100;
+z0.9=(0.081w',0.793x_height)+z100; penpos0.9'(hair,-90); z0.9'l=z0.9; penstroke
+z0.5e{z0.6-z0.5r}..z0.7e{up}; filldraw z0.7l{up}..z0.9'r{z0.9-z0.8}--z0.9--z0.8..
+z0.7r{down}--z0.7l & cycle; filldraw (x1r,y1.4l){right}.. z0.8{z0.8-z0.9}--z0.9--(x1r,y1.4l) &
+cycle;
+.endchar;
+
+numeric nombre; nombre:= 5gencoef[1,1.155556];
+
+.cmchar "The Fraktur letter a with little-e Umlaut";
+.beginchar(oct"211",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51);
+penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h)));
+penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0);
+penpos12(whatever,-90); penpos11''(hair,-30);
+z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]);
+z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]);
+z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4];
+x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem;
+z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])];
+y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o;
+z10=whatever[z8l,z9l]; y10=0.228h;
+z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]);
+z11''r=(gencoef[0.78w,0.814w],-apex_o);
+z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l);
+z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r;
+z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); z11'=whatever[z11l,z12l];
+y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7];
+penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]);
+filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r..
+z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke
+z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down}
+..z7..z10{z9-z8} & z10--z8' & cycle; z100=(x9l,1.214x_height);
+e_umlaut(100);.endchar;
+
+nombre:= 3.65gencoef[1,1.230769];
+
+.cmchar "The Fraktur letter e with little-e Umlaut";
+.beginchar(oct"220",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1l=(0,0.486h);
+penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]);
+penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]);
+z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w];
+x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8];
+y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l];
+x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h);
+penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69);
+y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69); z6r=(x1r,0.5h);
+z3l-z2=whatever*((w,gencoef[0.3h,0.25h])); x4r=w-gencoef[apex_o,0];
+z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6));
+z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e;
+filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69);
+z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w];
+z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e;
+filldraw z7'{dir135}..z1l{up}..z2 &
+z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10
+..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e; z100=(0.569w,1.214x_height);
+e_umlaut(100);
+.endchar;
+
+nombre:=4.75gencoef[1,1.140351];
+
+.cmchar "The Fraktur letter o with little-e Umlaut";
+.beginchar(oct"231",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]);
+x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31);
+z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0);
+z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22);
+z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l;
+penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]);
+z2-z1=whatever*((w,0.786h)); x8'=x8r;
+y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e..
+z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw
+z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw
+z7l--z7'--z7r--z7l & cycle; z100=(x4,1.214x_height);
+e_umlaut(100);
+.endchar;
+
+nombre:=6.15gencoef[1,1.107527];
+
+.cmchar "The Fraktur letter u with little-e Umlaut";
+.beginchar(oct"236",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h);
+penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90);
+penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r;
+z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58;
+z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke
+z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle;
+penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}--
+z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l
+& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot);
+z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o);
+z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height);
+penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l];
+z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r
+--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e;
+penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o);
+z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up}
+..z15--z14r--z14l--z13 & cycle; z100=(x2l-hair,1.214x_height);
+e_umlaut(100);
+.endchar;
+
+numeric nombre; nombre:= 5gencoef[1,1.155556];
+
+.cmchar "The Fraktur letter a with Umlaut";
+.beginchar(oct"344",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51);
+penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h)));
+penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0);
+penpos12(whatever,-90); penpos11''(hair,-30);
+z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]);
+z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]);
+z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4];
+x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem;
+z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])];
+y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o;
+z10=whatever[z8l,z9l]; y10=0.228h;
+z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]);
+z11''r=(gencoef[0.78w,0.814w],-apex_o);
+z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l);
+z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r;
+z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); z11'=whatever[z11l,z12l];
+y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7];
+penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]);
+filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r..
+z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke
+z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down}
+..z7..z10{z9-z8} & z10--z8' & cycle;
+ % z100=(x9l,1.214x_height);
+last_char:=currentpicture;
+z100=(0.5w,x_height);
+umlaut(100);.endchar;
+
+
+.cmchar "The Fraktur letter a with acute";
+.beginchar(oct"341",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter a with breve";
+.beginchar(oct"240",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); breve(100);
+endchar;
+
+.cmchar "The Fraktur letter a with ogonek";
+.beginchar(oct"241",nombre*lower_u#,x_height#,0.2x_height#);
+currentpicture:=last_char;
+z100=(0.8w,0); ogonek(100);
+endchar;
+
+.cmchar "The Fraktur letter a with tilde";
+.beginchar(oct"343",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); tilde(100);
+endchar;
+
+.cmchar "The Fraktur letter a with scandinavian circle";
+.beginchar(oct"345",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); o_umlaut(100);
+endchar;
+
+.cmchar "The Fraktur letter a with grave";
+.beginchar(oct"340",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+
+.cmchar "The Fraktur letter a with hat";
+.beginchar(oct"342",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+
+nombre:= 3.65gencoef[1,1.230769];
+
+.cmchar "The Fraktur letter e with Umlaut";
+.beginchar(oct"353",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1l=(0,0.486h);
+penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]);
+penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]);
+z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w];
+x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8];
+y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l];
+x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h);
+penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69);
+y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69); z6r=(x1r,0.5h);
+z3l-z2=whatever*((w,gencoef[0.3h,0.25h])); x4r=w-gencoef[apex_o,0];
+z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6));
+z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e;
+filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69);
+z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w];
+z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e;
+filldraw z7'{dir135}..z1l{up}..z2 &
+z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10
+..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e;
+z100=(0.6w,x_height);
+last_char:=currentpicture;
+umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter e with acute";
+.beginchar(oct"351",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter e with grave";
+.beginchar(oct"350",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+
+.cmchar "The Fraktur letter e with hacek";
+.beginchar(oct"245",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hacek(100);
+endchar;
+
+.cmchar "The Fraktur letter e with hat";
+.beginchar(oct"352",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+
+.cmchar "The Fraktur letter e with ogonek";
+.beginchar(oct"246",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.6w,0); ogonek(100);
+endchar;
+
+nombre:=4.75gencoef[1,1.140351];
+
+.cmchar "The Fraktur letter o with Umlaut";
+.beginchar(oct"366",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]);
+x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31);
+z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0);
+z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22);
+z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l;
+penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]);
+z2-z1=whatever*((w,0.786h)); x8'=x8r;
+y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e..
+z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw
+z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw
+z7l--z7'--z7r--z7l & cycle; z100=(x4,x_height);
+last_char:=currentpicture;
+umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter o with acute";
+.beginchar(oct"363",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter o with Hungarian umlaut";
+.beginchar(oct"256",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hungarum(100);
+endchar;
+
+.cmchar "The Fraktur letter o with tilde";
+.beginchar(oct"365",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); tilde(100);
+endchar;
+
+.cmchar "The Fraktur letter o with slash";
+.beginchar(oct"370",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+pickup penrazor xscaled 0.5stem yscaled hair rotated 30;
+draw (0,0)--(w,x_height);
+endchar;
+
+.cmchar "The Fraktur letter o with slash";
+if (dc_layout>0): xchar_code:=oct"370";
+ else: xchar_code:=oct"034";
+ fi;
+.beginchar(xchar_code,nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+pickup penrazor xscaled 0.5stem yscaled hair rotated 30;
+draw (0,0)--(w,x_height);
+endchar;
+
+.cmchar "The Fraktur letter o with grave";
+.beginchar(oct"362",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+
+.cmchar "The Fraktur letter o with hat";
+.beginchar(oct"364",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+
+nombre:=6.15gencoef[1,1.107527];
+
+.cmchar "The Fraktur letter u with Umlaut";
+.beginchar(oct"374",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h);
+penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90);
+penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r;
+z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58;
+z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke
+z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle;
+penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}--
+z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l
+& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot);
+z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o);
+z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height);
+penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l];
+z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r
+--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e;
+penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o);
+z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up}
+..z15--z14r--z14l--z13 & cycle; % z100=(x2l-hair,1.214x_height);
+last_char:=currentpicture;
+z100=(0.5w,x_height);
+umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter u with acute";
+.beginchar(oct"372",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter u with Hungarian umlaut";
+.beginchar(oct"266",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hungarum(100);
+endchar;
+
+.cmchar "The Fraktur letter u with grave";
+.beginchar(oct"371",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+
+.cmchar "The Fraktur letter u with hat";
+.beginchar(oct"373",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+
+
+.cmchar "The Fraktur letter u with scandinavian circle";
+.beginchar(oct"267",nombre*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); o_umlaut(100);
+endchar;
+
+.cmchar "The Fraktur hyphen";
+.beginchar(oct"055",4u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(0.5stem,-90);
+penpos2(0.5stem,-90);
+penpos3(0.5stem,-90);
+penpos4(0.5stem,-90); penpos5(stem,-90);
+z2-z1=whatever*dir35;
+z4-z3=whatever*dir35;
+z3r=z5l; z5r=z1l; x1=0;
+x2=x4=w;
+y1r=foot;
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+.endchar;
+
+def par_s(suffix $) =
+h':=cap_height; w':=0.379h';
+z$.1=z$+(0.5w',0.5h');
+penpos$.1(stem,30);
+penpos$.2(2hair,0);
+penpos$.3(hair,-90);
+penpos$.4(hair,180);
+penpos$.5(hair,90);
+z$.2l=z$+(0,0.8h'); z$.3l=(x$.1,y$+h');
+z$.4=z$+(0.84w',0.886h');
+z$.5=(x$.4r,y$+0.826h');
+penstroke z$.2e{up}..z$.3e
+{right} if panw: ..z$.4e{down}..z$.5e{left} fi;
+penpos$.6(2hair,90); z$.6l=z$.5l;
+if panw:
+filldraw z$.6r..z$.6l..z$.6r & cycle;
+fi
+penpos$.1'(stem,-150);
+penpos$.2'(2hair,180);
+penpos$.3'(hair,90);
+penpos$.4'(hair,0);
+penpos$.5'(hair,-90);
+z$.1=z$.1';
+z$.2'r=z$+(w',0.2h'); z$.3'r=(x$.1,y$);
+z$.4'=z$+(0.16w',0.114h');
+z$.5'=(x$.4'r,y$+0.174h');
+penpos$.2''(2hair,0); z$.2''=z$.2';
+z$.25=(z$.2''{up}..z$.2{up})
+intersectionpoint (z$+(0,0.5h')--
+z$+(w',0.5h'));
+penpos$.25(stem,30);
+penstroke z$.2''e{up}..z$.25e..
+z$.2e{up};
+penstroke z$.2'e{down}..z$.3'e
+{left} if katw: ..z$.4'e{up}..z$.5'e{right} fi;
+penpos$.6'(2hair,-90); z$.6'l=z$.5'l;
+if katw:
+filldraw z$.6'r..z$.6'l..z$.6'r & cycle;
+fi
+enddef;
+
+.cmchar "The Fraktur paragraph sign";
+.beginchar(oct"237",7.4u#,cap_height#,3.167u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+boolean panw, katw;
+panw:=true; katw:=false;
+z0=(0.17h,0); par_s(0);
+panw:=false; katw:=true;
+z1=(0,-0.3h); par_s(1);
+.endchar;
+
+.cmchar "The Fraktur Mitlaut J proposed by Sanders in 1879";
+.beginchar("$",8.541u#,cap_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,28); penpos2(cap_hair,-17.5); penpos3(0.889cap_stem,-116); penpos4(cap_stem,-126);
+penpos5(cap_hair,-44); penpos6(1.056cap_stem,53); penpos7(1.056cap_stem,21); penpos8(cap_hair,-90);
+penpos9(cap_hair,180); z1=(0.115w,-0.886d); z2r=(x1,-0.519d); z3=(0.234w,-0.1d); z4r=(0.517w,-d);
+z5=(0.795w,-0.329d); z6r=(0.966w,0.196h); z7=(0.636w,0.56h); z8=(0.808w,0.683h); z9l=(x6r,0.554h);
+penstroke z1e..z2e{up}..z3e{right} ..z4e{right}..z5e..z6e{up}..z7e{up} ..z8e{right}..z9e{down};
+penpos10(1.037cap_stem,50); penpos11(cap_hair,-45); penpos12(0.889cap_stem,43);
+penpos13(1.185cap_stem,-146); penpos14(0.741cap_stem,-119); penpos15(cap_hair,0);
+penpos16(cap_hair,28); z10l=z11r=(0.1w,0.515h); z12l=(0,0.69h); z13l=(0.506w,h+apex_o);
+z14r=z8l+(0,0.035h); z15r=(w,0.875h); z16=(x15l,0.924h); filldraw z11l{z12r-z11l}..z12l{up}--
+z12r{down}..z10r--z10l--z11l & cycle; penstroke z12e{up}..z13e{right}..
+z14e{right}..z15e{up}..z16e{dir118}; penpos20(hair,-41); penpos21(hair,-41);
+penpos22(2/3cap_stem,-90); penpos23(0.593cap_stem,-113); z20l=(0,0.235h); z21=(x8,0.48y8);
+z22=(0.261w,0.328h); z23=(0.586w,0.251h); penstroke z20e..z22e{right}..z23e{right} ..z21e;
+.endchar;
+
+% 311 --> 100 by D. Taupin
+.cmchar "The Fraktur symbol for etc"; .beginchar(oct"100",8.194lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); penpos1(hair,-52);
+penpos2(hair,-52); penpos3(stem,48); penpos4(stem,48); penpos5(hair,-42); penpos6(1.2stem,34);
+penpos8(hair,-49); z1r=(0.22w,-apex_o); z2-z1=whatever*dir38; x2=0.458w; z3l=z1r;
+z4l-z1r=whatever*dir140; x4l=0; z5l=z4; y6=0.707h; x6r=x2r; z7=(0.231w,h+apex_o);
+z9=(0.163w,0.841h); z8l=(0,0.793h); penstroke z1e--z2e; penstroke z3e--z4e; penstroke
+z5e{z4r-z4l}..z6e{up}; filldraw z6r{up}..z7{dir160} & z7-- z8l--z8r{z7-z8l}..z9{right}..z6l{down}
+--z6r & cycle; penpos10(hair,-59); penpos11(hair,-59); penpos12(whatever,50); penpos13(1.2stem,30);
+penpos14(stem,11.5); penpos15(hair,-75); penpos16(0.857stem,14); penpos17(0.857stem,14);
+z11r=(0.695w,-apex_o); z10-z11=whatever*dir31; x10r=w; z12l=z11r; z12r=whatever[z11l,z10l];
+z13=(0.631w,0.49h); z14=(0.678w,0.859h); z16r=(w,y8l); z15-z16r=whatever*dir105; y15l=h+apex_o;
+z17r=z15; penstroke z11e--z10e; penstroke z12e..z13e{up}..z14e.. z15e{z16r-z16l}; penstroke
+z16e--z17e;
+.endchar;
+
+.cmchar "Scandinavian circle accent";
+if (dc_layout>0): xchar_code:=oct"006";
+ else: xchar_code:=oct"027";
+ fi;
+.beginchar(xchar_code,9u#,cap_height#,0);
+z100=(0.5w,x_height); o_umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter dotless j";
+if (dc_layout>0): xchar_code:=oct"032";
+ else: xchar_code:=oct"021";
+ fi;
+.beginchar(xchar_code,2.944lower_u#,x_height#,1.611lower_u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(hair,47); penpos2(1.3hair,-90); z2r=(0.16w,-d); penpos5(stem,0);
+z5=(0.523w,0.124h); penpos3(2/3stem,0); z3l=(x5l,0.048h); penpos6(stem,0);
+z6=(x5,0.824h); penpos7(hair,-90); z7=(0.906w,0.91h); penpos8(hair,-48);
+penpos9(hair,-48); z8l=(0.481w,h+apex_o); z8-z9=whatever*((w,0.3448h)); x9l=0;
+z9'=whatever[z9r,z8r]; y9'=y9l+apex_o; z1r=(x5r+0.5stem,-0.207d);penstroke
+z2e..z3e{up}; penstroke z5e--z6e; filldraw z1r{dir137}..z5r{up}--z5l
+--z3l--z3r..z1l{dir-43}--z1r & cycle; filldraw z6r{up}..z7r{right}--z7l...
+z8r---z8l--z9l--z9r--z9'.. z6l{down}--z6r & cycle; penpos11(hair,0);
+z11r=(x8l,1.076h); z12=(0.571w,1.279h); z13=(0.744w,1.238h);
+.endchar;
+
+.cmchar "The Fraktur letter dotless i";
+if (dc_layout>0): xchar_code:=oct"031";
+ else: xchar_code:=oct"020";
+ fi;
+.beginchar(xchar_code,2.889lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(hair,-44); penpos2(hair,-44); penpos3(hair,-44); z1l=(0,0.834h);
+z2-z1=whatever*((w,0.37h)); y2l=h+apex_o; z3=whatever[z2l,z2r]; x3r=x5r+0.5stem;
+z4=(0.606w,0.931h); penpos5(stem,0); z5=(0.433w,0.759h); z6=(x5,0.238h);
+penpos6(stem,0); z7=(x6l,0.079h); z8-z7=whatever*dir-40; y8=-apex_o;
+penpos9(hair,-38); z9r-z8=whatever*dir52; x9r=w; z10=(0.788w,0.152h);
+z5'=whatever[z1,z2]; x5'=x5l; penstroke z5e--z6e; penstroke z1e--z2e; filldraw
+z5r{up}..z3r--z2--z5'--z5l{down} --z5r & cycle; filldraw z8--z9r--z9l{z8-z9r}
+..z6r{up}--z6l{down}..{z8-z7}z8 & cycle; penpos11(hair,0); z11r=(x2l,1.076h);
+z12=(0.56w,1.279h); z13=(0.73w,1.238h);
+last_char:=currentpicture;
+.endchar;
+
+
+
+.cmchar "The Fraktur letter i with Umlaut";
+.beginchar(oct"357",2.889*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); umlaut(100);
+endchar;
+
+.cmchar "The Fraktur letter i with acute";
+.beginchar(oct"355",2.889*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); acute(100);
+endchar;
+
+.cmchar "The Fraktur letter i with grave";
+.beginchar(oct"354",2.889*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); grave(100);
+endchar;
+
+.cmchar "The Fraktur letter i with hat";
+.beginchar(oct"356",2.889*lower_u#,x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,x_height); hat(100);
+endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/cmfraknum.mf b/Master/texmf-dist/fonts/source/public/gothic/cmfraknum.mf
new file mode 100644
index 00000000000..cb54c36b184
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/cmfraknum.mf
@@ -0,0 +1,193 @@
+.cmchar "The Fraktur numeral 1";
+.beginchar("1",2.778u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos2(w,0); z2=(0.5w,0);
+penpos1(stem,0); z1=(0.5w,foot);
+penpos3(hair,90); penpos4(hair,90);
+z3l=z2l; z4l=z2r; penpos5(stem,0);
+z5=(x1,0.79h); penpos6(hair,0);
+z6r=(x5r,h); penpos7(1.5hair,90);
+z7=(0,0.9h);
+filldraw z4l--z4r...z1r---z6r--
+z6l..z7r{left}--z7l{right}...
+z5l---z1l...z3r--z2l--z4l & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 2";
+.beginchar("2",5.694u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(0.625stem,-90); penpos2(stem,-90);
+penpos3(4/3stem,-115);
+z1r=(0,0); z2r=(0.722w,0.026h);
+x3l=w; y3r=-apex_o;
+penstroke z1e..z2e{right}..z3e;
+penpos4(0.917stem,20);
+z4r=(0.966w,0.721h);
+z5=(0.478w,0.848h);
+z6=(0.244w,h+apex_o);
+z7=(0.093w,0.822h);
+penpos8(hair,13); z8=(0.146w,3/4h);
+penstroke z1e{dir44}..z4e{up};
+filldraw z8r..z5{right}..z4l{down}
+--z4r{up}..z6{dir173} & z6--z7--z8l--z8r &
+cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 3";
+.beginchar("3",5.5u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.5hair,-90); penpos2(stem,18);
+penpos3(1.833stem,35);
+penpos4(hair,-90); penpos5(0.625stem,0);
+z1r=(0,-apex_o); z2=(0.788w,0.353h);
+z4r=(0.167w,0.489h); z5r=(w,h);
+z3l=z4r;
+penstroke z1e{dir12}..z2e{up}..z3e{left};
+penstroke z4e{dir30}..z5e{up};
+penpos7(0.917stem,-90);
+penpos8(0.417stem,-17);
+penpos9(hair,0);
+z8l=(0,0.796h); z9l-z8l=whatever*dir73;
+y9=h+apex_o; z7l=(0.273w,h-apex_o);
+z6=(z4l{dir30}..z5l{up}) intersectionpoint
+((0,y7r+apex_o)--(w,y7r+apex_o));
+filldraw z8l--z9l--z9r..z7l{right}...
+z5l---z5r--z6..z7r{left}..z8r{z8l-z9l}
+--z8l & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 4";
+.beginchar("4",7.361u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(stem,0); penpos2(stem,0);
+z1=(0.619w,foot); z2=(x1,0.831h);
+z3=(x1,h); z4=(0,0.444h);
+penpos6(0.521stem,90); z6=(0.796w,0.45h);
+y5=y6l; (x2r,h)-z5=whatever*dir50;
+z4'=(1/45w,y6r); z3'-z4'=whatever*dir50;
+x3'=x2l; penpos9(hair,90);
+penpos10(hair,-90); z9l=(x1-stem,0);
+z10r=(x1+stem,0);
+z8=(w,0.521h); z7=(0.921w,0.376h);
+filldraw z9l--z9r...z1l---z2l--
+z2r---z1r...z10l--z10r--z9l & cycle;
+z3''=whatever[z5,(x2r,h)]; x3''=x2l;
+filldraw z2l--z3''--z5--z4'---z3'...
+z3{right}..{down}z2r--z2l & cycle;
+filldraw z6l---z5...z4{up}..z4'{z3'-z4'}
+& z4'---z6r...z8{right}--z7..
+z6l{left} & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 5";
+.beginchar("5",5.528u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(0.458stem,-60); penpos2(1.125stem,25);
+penpos3(1.125stem,65); penpos4(1.167stem,53);
+penpos5(1.5hair,-25); penpos6(0.958stem,-77);
+z1=(0.221w,-apex_o); z2=(0.729w,0.417h);
+z3=(0.462w,0.578h); z4l=(0,0.618h);
+z5=(0.161w,0.814h); z6l=(0.349w,h);
+z7=(0.673w,0.98h); z8=(w,h);
+z9=(0.851w,0.828h);
+penstroke z1e{dir30}..z2e{up}..
+z3e{dir169}..z4e{up}..z5e{dir65}..z6e{right};
+filldraw z6l{right}..z7..z8 & z8--z9 &
+z9..{left}z6r--z6l & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 6";
+.beginchar("6",6.056u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.4hair,-42); penpos2(1.208stem,40);
+penpos3(1.125stem,54); penpos4(1.2hair,-36);
+penpos5(stem,30); penpos7(hair,-45);
+z1l=(0.716w,h+apex_o); z2l=(0,0.342h);
+z3l=(0.674w,-apex_o);
+penstroke z3e..z2e{up}..z1e{dir48};
+z4r=z3; z5r=(w,0.362h); z6=(0.573w,0.753h);
+z6-z7l=whatever*dir45; y7l=0.555h;
+z8=(0.477w,0.566h);
+filldraw z4r---z3r...z5r{up}..z6{dir135}
+--z7l--z7r{z6-z7l}..z8{right}..z5l{down}
+..z4l{z3l-z3r}--z4r & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 7";
+.beginchar("7",5.906u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.417stem,0); z1=(0.466w,0);
+penpos2(hair,-57); y2l=h; x2r=w;
+penstroke z1e{up}..z2e{dir64};
+penpos3(hair,-20); penpos5(stem,-90);
+z3l=(0,0.776h); z5l=(0.24w,h);
+z4-z3l=whatever*dir70; y4=h+apex_o;
+z6=(z5r--(w,y5r)) intersectionpoint
+(z1{up}..z2{dir64});
+filldraw z3r{z4-z3l}...z5r---z6--
+z2--z2l---z5l...z4 & z4--z3l--z3r &
+cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 8";
+.beginchar("8",6.722u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.042stem,61.5);
+penpos2(hair,110);
+z1=z2=(0.5w,0.51h);
+penpos3(0.917stem,24);
+z3l=(0.083w,0.721h);
+penpos5(0.917stem,-204);
+z5l=(w-x3l,y3l);
+penpos4(hair,-90); z4l=(0.5w,h+apex_o);
+penpos6(stem,180); z6r=(0,0.245h);
+penpos7(2hair,-90); z7r=(0.5w,-apex_o);
+penpos8(stem,0); z8r=(w,y6);
+penstroke z1e{dir151.5}..z3e{up}..
+z4e{right}..z5e{down}..z2e{dir200}..
+z6e{down}..z7e{right}..z8e{up}..
+z1e{dir151.5};
+.endchar;
+
+.cmchar "The Fraktur numeral 9";
+.beginchar("9",6.056u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.4hair,-42); penpos2(1.208stem,40);
+penpos3(1.125stem,54); penpos4(1.2hair,-36);
+penpos5(stem,30); penpos7(hair,-45);
+z1l=(0.716w,h+apex_o); z2l=(0,0.342h);
+z3l=(0.674w,-apex_o);
+penstroke z3e..z2e{up}..z1e{dir48};
+z4r=z3; z5r=(w,0.362h); z6=(0.573w,0.753h);
+z6-z7l=whatever*dir45; y7l=0.555h;
+z8=(0.477w,0.566h);
+filldraw z4r---z3r...z5r{up}..z6{dir135}
+--z7l--z7r{z6-z7l}..z8{right}..z5l{down}
+..z4l{z3l-z3r}--z4r & cycle;
+transform gurisma;
+gurisma=identity
+rotatedaround ((0.5w,0.5h),180);
+picture krufo;
+krufo:= currentpicture transformed
+gurisma;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The Fraktur numeral 0";
+.beginchar("0",7.332u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.059stem,-143);
+penpos2(stem,-140);
+penpos3(1.05stem,-136);
+penpos4(1.1stem,-142);
+penpos5(hair,128);
+penpos6(hair,127);
+z1l=(0.535w,h+apex_o); z4r=(w-x1l,-apex_o);
+z2l=(w,0.528h); x3r=0; y3=y2l+apex_o;
+z5l=z4; z6r=z1;
+penstroke z1e{dir-25}..z2e{down}..
+z5e{z4r-z4l};
+penstroke z6e{z1r-z1l}..z3e{down}..
+z4e{dir-31};
+.endchar;
diff --git a/Master/texmf-dist/fonts/source/public/gothic/cmfrakoth.mf b/Master/texmf-dist/fonts/source/public/gothic/cmfrakoth.mf
new file mode 100644
index 00000000000..b799ccd04d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/cmfrakoth.mf
@@ -0,0 +1,551 @@
+.cmchar "The Fraktur comma";
+.beginchar(",",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+%penstroke z1e--z2e;
+penpos10(0.11785*(x_height+2apex_o),-30);
+z10l=(x2l-apex_o,-1.3y2r);
+filldraw z10l--z2l+(2hair,0){up}..{down}
+z1r--z10r--z10l & cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "Apostrophe";
+.beginchar("'",3.5u#,asc_height#,0);
+currentpicture:=last_char
+ shifted (0,1.2x_height);
+.endchar;
+
+.cmchar "Opening Gaensefuesschen";
+.beginchar(open_gaens,9u#,x_height#,0);
+currentpicture:=last_char;
+addto currentpicture also last_char shifted (4u,0);
+.endchar;
+
+.cmchar "Closing Gaensefuesschen";
+.beginchar(oct"042",9u#,asc_height#,0);
+currentpicture:=(last_char rotatedaround((3u,0),180))
+ shifted (0,1.2x_height);
+addto currentpicture also (last_char rotatedaround((3u,0),180))
+ shifted (4u,1.2x_height);
+.endchar;
+
+.cmchar "Reverse apostrophe";
+.beginchar("`",5u#,asc_height#,0);
+currentpicture:=(last_char rotatedaround((3u,0),180))
+ shifted (0,1.2x_height);
+.endchar;
+
+.cmchar "The Fraktur colon";
+.beginchar(":",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+penstroke z1e--z2e;
+penstroke z5e--z6e;
+.endchar;
+
+.cmchar "The Fraktur semicolon";
+.beginchar(";",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+penstroke z1e--z2e;
+penstroke z5e--z6e;
+penpos10(hair,-30); z10l=(x2l,-y2r);
+filldraw z10l{z1r-z10r}..z2l{z2-z1}
+& z2l--z1r--z10r--z10l & cycle;
+.endchar;
+
+.cmchar "The Fraktur point";
+.beginchar(".",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+pointpoint;
+.endchar;
+
+
+.cmchar "Hachek (check) accent";
+if (dc_layout>0): xchar_code:=oct"007";
+ else: xchar_code:=oct"024";
+ fi;
+.beginchar(xchar_code,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+z100=(0.5w,x_height); hacek(100);
+.endchar;
+
+.cmchar "Breve accent";
+if (dc_layout>0): xchar_code:=oct"010";
+ else: xchar_code:=oct"025";
+ fi;
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w,x_height); breve(100);
+.endchar;
+
+.cmchar "Macron (bar) accent";
+if (dc_layout>0): xchar_code:=oct"011";
+ else: xchar_code:=oct"026";
+ fi;
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+.beginchar(xchar_code,6u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+.adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(2/3stem,70); pos2(2/3stem,70);
+top y1r=top y2r=h+o; lft x1r=w-rt x2l=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Cedilla accent";
+if (dc_layout>0): xchar_code:=oct"013";
+ else: xchar_code:=oct"030";
+ fi;
+.beginchar(xchar_code,9u#,0,.875desc_depth#);
+z100=(0.5w,0); cedilla(100);
+.endchar;
+
+.cmchar "Ogonek accent";
+if (dc_layout>0): xchar_code:=oct"014";
+beginchar(xchar_code,9u#,0,.875desc_depth#);
+z100=(0.5w,0); ogonek(100);
+endchar;
+fi;
+
+.cmchar "L-bar accent";
+if unknown l_width#:
+ l_width#:=3lower_u#; fi % nominal width of `l'
+ligtable oct"040": "l" kern -l_width#,
+ "L" kern -l_width#;
+.beginchar(oct"040",l_width#,x_height#,0);
+z100=(0,0.5cap_height); ellbar(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"012";
+ else: xchar_code:=oct"137";
+ fi;
+iff ligs>0: .cmchar "Dot accent";
+.beginchar(xchar_code,5u#,2x_height#,0);
+z100=(0.5w,x_height);
+pointaccent(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"005";
+ else: xchar_code:=oct"175";
+ fi;
+iff ligs>0: .cmchar "Long Hungarian umlaut accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w,x_height); hungarum(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"004";
+ else: xchar_code:=oct"177";
+ fi;
+iff ligs>0: .cmchar "umlaut accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w, x_height);
+umlaut(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"000";
+ else: xchar_code:=oct"022";
+ fi;
+iff ligs>0: .cmchar "grave accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w, x_height);
+grave(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"001";
+ else: xchar_code:=oct"023";
+ fi;
+iff ligs>0: .cmchar "acute accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w, x_height);
+acute(100);
+.endchar;
+
+if (dc_layout>0): xchar_code:=oct"002";
+ else: xchar_code:=oct"136";
+ fi;
+iff ligs>0: .cmchar "hat accent";
+.beginchar(xchar_code,9u#,min(asc_height#,2x_height#),0);
+z100=(0.5w, x_height);
+hat(100);
+.endchar;
+
+.cmchar "Tilde (squiggle) accent";
+if (dc_layout>0): xchar_code:=oct"003";
+ else: xchar_code:=oct"176";
+ fi;
+.beginchar(xchar_code,9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+z100=(0.5w,x_height); tilde(100);
+.endchar;
+
+
+
+.cmchar "En dash";
+.beginchar(en_dash,9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(0,0);
+pickup rule.nib;
+ pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Em dash";
+.beginchar(em_dash,18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(letter_fit#,letter_fit#);
+pickup rule.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Hash mark (number sign)";
+if monospace: compute_spread(.6x_height#,.7x_height#);
+else: compute_spread(.45x_height#,.55x_height#); fi
+.beginchar("#",15u#,asc_height#,asc_depth#);
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+.adjust_fit(0,0);
+pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); .endchar;
+
+.cmchar "Per cent sign";
+.beginchar("%",15u#,
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+.adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); .endchar;
+
+.cmchar "Left parenthesis";
+.beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+.adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); .endchar;
+
+.cmchar "Right parenthesis";
+.beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+.adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); .endchar;
+
+.cmchar "Asterisk";
+.beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+.adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); .endchar;
+
+.cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); .endchar;
+
+.cmchar "Virgule (slash)";
+.beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+.adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); .endchar;
+
+.cmchar "Backslash";
+.beginchar("\",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+.adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw (z1--z2) reflectedabout ((4.5u,0),(4.5u,u)); % diagonal
+penlabels(1,2); .endchar;
+
+.cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+.beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+.adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); .endchar;
+
+.cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,6u#);
+.beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+.adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); .endchar;
+
+.cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,6u#);
+.beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+.adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); .endchar;
+
+
+cmchar "Exclamation point";
+beginchar("!",5u#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pointpoint;
+pickup tiny.nib; pos103(dot_size,0); pos104(dot_size,90);
+lft x103l=hround(.5w-.5dot_size); bot y104l=0; z103=z104; % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos101(dot_size,0); pos102(bot_width,0);
+x101=x102=x103; bot y102=.25[top y104r,x_height]+1;
+if square_dots: top y101=h;
+ filldraw stroke z101e--z102e; % stem
+else: top z100=(x101,h+o); y101+.5dot_size=h+o;
+ filldraw z101r...z100...z101l---z102l--z102r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pointpoint;
+pickup tiny.nib; pos107(dot_size,0); pos108(dot_size,90);
+lft x107l=hround(.5w-.25u-.5dot_size); bot y108l=0; z107=z108; % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos102(vair,90); pos103(curve,0);
+pos104(vair,-90); pos105(bot_width,0); pos106(bot_width,0);
+x102=x104=x105=x106=x107; rt x103r=hround(w-u); bot y106=1+.25[top y108r,x_height];
+top y102r=h+oo; y103=.75[y106,y102]; y104=.5[y106,y102]; y105=.1[y106,y102];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(102,103)(superpull)
+ & subpath (0,1) of super_arc.e(103,104) .. z105e---z106e\\}}; % arc and stem
+if serifs: pos101(hair,180); pos100(flare,180);
+ lft x101r=hround u; y101=y103; bulb(102,101,100); % bulb
+else: pos101(Vround 5/7[vair,flare],110);
+ lft x101r=hround u; top y101r=vround .9[y106,top y102r];
+ filldraw stroke term.e(102,101,left,101,104); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "Ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o;
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(fudged.hair,0);
+ rt x0r+jut=hround(w-.9u); top y0=x_height;
+ pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)];
+ y1=max(y0-1.5bracket-.2x_height,2/3x_height);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u);
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(vair,theta); y5=.5h;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=w-3.5u; bot y10l=-o;
+pos9(fudged.stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height;
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[slab,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .07bar_height-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+cmchar "Left curly brace";
+beginchar(oct"173",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+cmchar "Right curly brace";
+beginchar(oct"175",9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+cmchar "Vertical line";
+beginchar(oct"174",5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+
+
+cmchar "Sterling sign";
+beginchar(oct"277",12u#,asc_height#,0);
+adjust_fit(0,.75asc_height#*slant-.5u#); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90); pos3(stem,180);
+pos4(stem,180); pos4'(stem,0); pos5(vair,-90); z4'=z4;
+x2=2/3w-.5u; rt x3l=rt x4l=hround(.5w-u+.5stem); x5=2.5u;
+y1=y3=.75h; top y2=h+oo; y4=.25h; bot y5r=-oo;
+rt x1r=hround(w-1.5u); bulb(2,1,0); % bulb
+filldraw stroke pulled_arc.e(2,3)..z4e; % stem
+numeric light_stem; light_stem=2/3[vair,vstem];
+pos6(.5[hair,light_stem],-180); pos7(light_stem,-300);
+pos8(light_stem,-300); pos9(hair,-180);
+lft x6r=hround u; x7=3u; x8=w-3.5u; rt x9r=hround(w-u);
+y6=.4[y5,y7]; top y7r=vround .2h; bot y8l=-oo; y9=good.y .2h;
+filldraw stroke pulled_arc.e(4',5)...z6e{up}...z7e{right}
+ ..{right}z8e...{up}z9e; % loop and arm
+pos10(bar,90); pos11(bar,90); x10=3u; x11=w-4.5u;
+top y10r=top y11r=vround(.5h+.5bar); filldraw stroke z10e--z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/cmfrakupp.mf b/Master/texmf-dist/fonts/source/public/gothic/cmfrakupp.mf
new file mode 100644
index 00000000000..7f4a5bf8e5f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/cmfrakupp.mf
@@ -0,0 +1,1749 @@
+
+.cmchar "The Fraktur letter A";
+.beginchar("A",9.522u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+% made in Athens, Greece on Friday July 27, 1990
+penpos1(cap_hair,-51);
+penpos2(cap_hair,-51);
+z2-z1=whatever*dir39;
+x2r=w; z1r=(0.722w,-apex_o);
+penpos4'(cap_hair,39); z4'l=z1l;
+z4'r=z4;
+penpos5(cap_stem,0);
+z5=(x1r,0.223h);
+penpos13(cap_hair,-62); z13r=z5r;
+z13l-z14=whatever*dir26;
+z13r-z14'=whatever*dir26;
+y14=0; y14'=-apex_o;
+z6=whatever[z14',z13r]; x6=x5l;
+filldraw z14--z13l--z13r{down}..
+z2l{z2-z1}--z2r--z1r--z1l--z4--
+z6--z14'--z14 & cycle;
+filldraw z5l--z6--z5r--z5l & cycle;
+z1.1=whatever[z6,z4]; y1.1=y4+cap_hair;
+filldraw z1l{z2-z1}..z1.1{z6-z4}--
+z2--z1r--z1l & cycle;
+%
+%
+%
+penpos7(cap_stem,0); z7=(x5,0.862h);
+penpos8(cap_hair,-57);
+penpos9(cap_hair,-57);
+z8l=z7l; z9-z8=whatever*dir33;
+y9=h; z10=(0.937w,h+apex_o);
+z11=(0.99w,0.981h); z12=(0.953w,0.955h);
+z9'=whatever[z8r,z9r];
+x9'=0.4[x7r,x9r];
+penstroke z5e--z7e;
+filldraw z7r{up}..z9'{z9-z8}--
+z9r..z12{right}..z11{up}..z10{left}
+...z9l---z8l--z7r & cycle;
+%
+%
+%
+penpos15(cap_hair,-90); z15=(0,0.213h);
+z15r-z16=whatever*dir137;
+x16=0.936x14; z17=whatever[z14,z13l];
+x17=0.392w;
+penpos18(cap_hair,-43);
+z18-z17=whatever*dir133;
+y18r=y15l; penpos19(0.815cap_stem,0);
+x19=0.5w; y19=0.521h;
+z14''=(x14'-cap_hair,0);
+filldraw z15l{right}..z18l..z19l{up}
+--z19r{down}..z18r{dir-162}--
+z17--z14''{dir72}...z16---z15r--
+z15l & cycle;
+%
+%
+%
+penpos20'(1.037cap_stem,29.5);
+z20'=(0.405w,0.846h);
+penpos20(0.889cap_stem,50);
+z20=(x18r,0.904h);
+penpos21(1.25cap_hair,180);
+z21r=(0,3/4h);
+penpos22(1.148cap_stem,-162);
+z22l=(x20,0.678h);
+penpos23(cap_hair,180);
+z23=(0.284w,0.535h);
+penpos24(0.685cap_stem,66.6);
+z24l=(x22,0.367h);
+z25=(0.027w,0.426h); z26=(0.079w,0.473h);
+penstroke z19e{up}..z20'e{dir135}..
+z20e{left}..z21e{down}..z22e{dir-45}
+..z23e{down}..z24e{left};
+filldraw z24l{left}..z25{up}..z26{right}
+..z24r{right}--z24l & cycle;
+ last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter A ogonek";
+.beginchar(oct"201",9.522u#,cap_height#,0.2x_height#);
+currentpicture:=last_char;
+z100=(0.9w,0); ogonek(100);
+.endchar;
+
+.cmchar "The Fraktur letter A Umlaut";
+.beginchar(oct"304",9.522u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter A breve";
+.beginchar(oct"200",9.522u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); breve(100);
+.endchar;
+
+.cmchar "The Fraktur letter A tilde";
+.beginchar(oct"303",9.522u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); tilde(100);
+.endchar;
+
+.cmchar "The Fraktur letter A o-Umlaut";
+.beginchar(oct"305",9.522u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); o_umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter A acute";
+.beginchar(oct"301",9.522u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter A grave";
+.beginchar(oct"300",9.522u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); cap_grave(100);
+.endchar;
+
+.cmchar "The Fraktur letter A hat";
+.beginchar(oct"302",9.522u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hat(100);
+.endchar;
+
+
+.cmchar "The Fraktur ligature Ae";
+.beginchar(oct"306",9.522u#+3u#,cap_height#,0)
+currentpicture:=last_char;
+addto currentpicture also small_letter_e shifted (8u,0);
+.endchar;
+
+
+.cmchar "The Fraktur ligature Ae";
+if (dc_layout>0): xchar_code:=oct"306";
+ else: xchar_code:=oct"035";
+ fi;
+.beginchar(xchar_code,9.522u#+3u#,cap_height#,0)
+currentpicture:=last_char;
+addto currentpicture also small_letter_e shifted (8u,0);
+.endchar;
+
+.cmchar "The Fraktur letter B";
+.beginchar("B",12.415u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0.045w,0.096h); z2=(0.081w,0.141h);
+z3=(0,0.165h); z4=(x1,0.213h);
+penpos5(cap_stem,-142);
+z5=(0.179w,0.301h);
+penpos6(1.259cap_stem,-147);
+z6r=(0.538w,-apex_o);
+penpos7(cap_hair,-65);
+z7=(0.775w,0.103h);
+penpos8(0.907cap_stem,30);
+z8r=(w,0.4h);
+penpos9(1.741cap_stem,27);
+z9l=(x6r,0.6h);
+filldraw z1{right}..z2{up}..z4 &
+z4..z5r{right}..z6r{right} &
+z6r---z7r...z8r{up}..z9r{left}--
+z9l{right}..z8l{down}..z7l..z6l{left}
+..z5l{left}..z3{down}..z1{right} &
+cycle;
+%
+%
+%
+penpos10(1.222cap_stem,-153);
+z10r=0.883[z9l,z9r];
+penpos11(2/3cap_hair,-63);
+z11r=whatever[z9,z10]; x11=x10l+cap_hair;
+penpos13(1.056cap_stem,-125);
+z13l=(0.691w,h);
+z12=(z13l{right}..z10l{dir-63})
+intersectionpoint ((x10l-1.5hair,0)--
+(x10l-1.5hair,h));
+penpos14(cap_hair,0);
+penpos16(0.889cap_stem,17); z16r=z9l;
+z14=(x16,0.686h);
+filldraw z14l{dir78}..z13l{right}..z12..
+z11l{z10-z9}--z11r--z10r{dir117}..
+z13r{left}..{dir258}z14r--z14l & cycle;
+%
+%
+%
+penpos15'(cap_hair,-90);
+z15'l=z5l;
+penpos15(0.889cap_stem,0);
+z14-z15=whatever*dir85; y15=y5l+2cap_hair;
+penpos17(cap_stem,76);
+z17r=(0.256w,h+apex_o);
+penpos18(cap_hair,180);
+z18=(0.055w,0.745h);
+penpos19(1.185cap_stem,-145);
+z19=(0.148w,0.644h);
+penpos20(cap_hair,197);
+z20=(0.246w,0.548h);
+penpos21(cap_hair,118);
+z21=whatever[(0,0),z17]; x21=0.108w;
+penstroke z15'e{right}
+..z15e..z16e{up}..z17e{left}
+..z18e{down}..z19e{dir-45}..z20e{z20l-z19l}..
+z21e{dir202};
+.endchar;
+
+.cmchar "The Fraktur letter C";
+.beginchar("C",10.406u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0.157w,0.08h); z2=(0.211w,0.138h);
+z3=(0.084w,0.141h);
+z5=(0.113w,0.209h); z4=0.4[z3,z5];
+penpos6(cap_hair,180);
+z6r=(0,0.117h); penpos7(cap_hair,-118);
+z7r=(0.189w,-apex_o);
+penpos8(cap_hair,-48);
+z8=(0.469w,0.136h);
+penpos9(1.074cap_stem,36);
+z9=(0.623w,0.367h); z10=(0.5w,0.721h);
+penpos10(0.889cap_stem,30);
+z11'=(0.736w,0.931h);
+z13=(0.803w,0.729h);
+z14=(w,0.777h); penpos11(cap_hair,
+angle(z13-z11'));
+z11l=z11'; z12-z11l=whatever*dir7;
+x12=0.912w; z16'-z12=whatever*(z13-z11);
+z16'=whatever[z13,z14];
+penpos15(cap_hair,angle(z13-z11));
+z15r=z14; z15l-z16=whatever*(z14-z13);
+z16=whatever[z12,z16'];
+penstroke z6e{down}..z7e{right}..
+z8e..z9e{up}..z10e{up}..z11e{z12-z11l};
+filldraw z11l--z12--z16--z15l--z15r
+--z13--z11l & cycle;
+filldraw z6l{up}..z4{right} &
+z4..z3{down}..z1{right}..z2{up}..
+z5{left}..z6r{down}--z6l & cycle;
+%
+%
+%
+penpos17(1.037cap_stem,90);
+z17l=(0.738w,-apex_o);
+penpos18(1.093cap_stem,38);
+z18=(0.17w,0.58h);
+penpos19(1.5cap_hair,-57);
+z19l=(0.45w,h+apex_o);
+penpos20(1.2cap_hair,-197);
+z20=(0.692w,0.824h);
+penpos21(cap_hair,-219);
+z21=(3/4[x9l,x9r],y10);
+penstroke z17e{left}..z18e{up}..
+z19e..z20e{down}..z21e;
+penpos22(cap_hair,-44);
+z22r-z17l=whatever*dir46;
+x22r=w;
+filldraw z17r{right}..z22l{z22r-z17l}
+--z22r--z17l--z17r & cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter C cedilla";
+.beginchar(oct"307",10.406u#,cap_height#,0.2x_height#);
+currentpicture:=last_char;
+z100=(0.6w,0); cedilla(100);
+endchar;
+
+.cmchar "The Fraktur letter C acute";
+.beginchar(oct"202",10.406u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+endchar;
+
+
+.cmchar "The Fraktur letter C hacek";
+.beginchar(oct"203",10.406u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+endchar;
+
+.cmchar "The Fraktur letter D";
+.beginchar("D",12.168u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0.073w,-apex_o);
+penpos2(0.6cap_stem,0);
+z2=(x1,0.04h); penpos4(1.204cap_stem,-148);
+z4=(0.229w,0.190h);
+penpos5(1.185cap_stem,-144);
+z5r=(0.545w,-apex_o);
+penpos6(cap_hair,-65); x6=0.787w;
+z6r-z5r=whatever*dir25;
+penpos7(0.815cap_stem,38);
+z7r=(w,0.418h); penpos8(0.926cap_stem,67.5);
+z8r=(0.41w,h+apex_o);
+penpos9(0.537cap_stem,-173);
+z9r=(0,0.685h); penpos10(2/3cap_hair,-90);
+z10=(0.242w,0.53h);
+penstroke z2e{up}..z4e{right}..z5e{right};
+penstroke z6e{dir25}..z7e{up}..z8e{left}
+..z9e{down}..z10e{right};
+filldraw z2l{down}..z1..z2r{up}--z2l
+& cycle;
+filldraw z5l{right}..z6l{dir25}--
+z6r--z5r--z5l & cycle;
+%
+%
+%
+z11=(0.171w,0.389h); z12=(0.197w,0.427h);
+penpos13(cap_hair,-90);
+z13=(x4l,0.3h); penpos14(cap_stem,0);
+z14=(0.462w,0.5[y11,y12]);
+penpos15(1.074cap_stem,34);
+z15=(0.353w,0.655h); z16=(0.488w,0.78h);
+penpos16(cap_hair,-90);
+penstroke z13e{right}..z14e{up}..
+z15e{up}..z16e{right};
+filldraw z11{up}..z12{right}..z13l{right}
+--z13r{left}..z11{up} & cycle;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter D with bar (\eth)";
+.beginchar(oct"320",12.168u#,cap_height#,0);
+currentpicture:=last_char; z0=(0,0.45cap_height-0.3u);
+z1=(0.6w,0.45cap_height+0.3u); pickup pensquare scaled 0.7stem;
+draw z0--z1;
+.endchar;
+
+.cmchar "The Fraktur letter D with hacek";
+.beginchar(oct"204",12.168u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+hacek(100);
+.endchar;
+
+.cmchar "The Fraktur letter E";
+.beginchar("E",8.508u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.074cap_stem,62.5);
+z1l=(0.623w,-apex_o);
+penpos2(0.796cap_stem,16);
+z2l=(0,0.485h); penpos3(4/3cap_hair,-90);
+z3l=(0.485w,h+apex_o);
+penpos6(cap_stem,-151.5);
+penpos5(cap_stem,-151.5);
+x6l=w; y5l=h; z6-z5=whatever*dir-37;
+x5l=0.808w;
+penstroke z5e--z6e;
+penpos4(cap_hair,-151.5);
+z4r=z5r; penstroke z3e{right}..
+z4e{z6-z5};
+penpos16(cap_hair,-90);
+z16=(w,0.149h);
+filldraw z1l--z16r--z16l..z1r{left}
+--z1l & cycle;
+penstroke z1e{left}..z2e{up}..z3e{right};
+%
+%
+%
+penpos7(cap_hair,-164); z7=whatever[z2l,z2r];
+x7=0.31w;
+penpos8(0.444cap_stem,-51.5);
+z8=(0.492w,0.393h);
+penpos9(0.796cap_stem,6.5);
+z9=(x1l,y2-eps);
+penpos10(0.963cap_stem,34);
+z10=(0.441w,0.767h);
+penpos11(cap_hair,-37); z11l=z4r;
+penstroke z7e{dir-74}..z8e{right}..
+z9e{up}..z10e{up}..z11e{z5l-z5r};
+%
+%
+%
+penpos12(cap_hair,-55.5);
+z12l=(z9{up}..z10{up})
+intersectionpoint (z9l--(x9l,h));
+z13-z12l=whatever*dir31.5;
+x13=0.854w; penpos14(whatever,0);
+z15=(x13,0.53h); z14r=(w,0.639h);
+z14l-z12r=whatever*(z13-z12l);
+filldraw z12l--z13--z14r--z15--
+z14l--z12r--z12l & cycle;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter E ogonek";
+.beginchar(oct"206",8.508u#,cap_height#,0.2x_height#);
+currentpicture:=last_char; z100=(0.8w,0);
+ogonek(100);
+.endchar;
+
+.cmchar "The Fraktur letter E Umlaut";
+.beginchar(oct"313",8.508u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter E acute";
+.beginchar(oct"311",8.508u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+acute(100);
+endchar;
+
+.cmchar "The Fraktur letter E grave";
+.beginchar(oct"310",8.508u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+cap_grave(100);
+endchar;
+
+.cmchar "The Fraktur letter E hat";
+.beginchar(oct"312",8.508u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+hat(100);
+endchar;
+
+.cmchar "The Fraktur letter E hacek";
+.beginchar(oct"205",8.508u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+hacek(100);
+endchar;
+
+
+.cmchar "The Fraktur letter F";
+.beginchar("F",8.213u#,cap_height#,3.010u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(2/3cap_hair,68);
+z1=(0.34w,0.535h); penpos2(cap_hair,0);
+z2l=(0.036w,0.739h);
+penpos3(4/3cap_stem,-150);
+z3l=(0.614w,h+apex_o);
+penpos4(cap_stem,-128); z4l-z3l=whatever*dir-37;
+x4l=w; penpos5(cap_hair,-38);
+x5l=w; z5r=whatever[z4r,z4l];
+penstroke z1e{dir158}..z2e{up}..
+z3e{right};
+z5'=whatever[z3l,z4l]; z5'-z5l=whatever*(z4-z5r);
+filldraw z3l--z5'--z5l--z5r--z4r
+{z3l-z4l}...z3r{left}--z3l & cycle;
+%
+%
+%
+penpos6(cap_hair,-23); penpos7(cap_hair,-90);
+penpos8(0.778cap_stem,-219);
+penpos9(0.741cap_stem,-203);
+penpos10(cap_hair,-90);
+penpos11(cap_stem,17);
+penpos12(1.111cap_stem,30);
+penpos13(eps,-63);
+z6l=(0,0.351h); z7=(x2r+cap_hair,0.44h);
+x8l=x1; y8=0.339h; z9r=(x2l,0);
+z10r=(0.462w,-d); z11l=(0.709w,0);
+z12=(0.542w,0.652h);
+z13=(0.789w,0.821h);
+penstroke z6e{dir67}..z7e{right}..z8e{down}
+..z9e{down}..z10e{right}..z11e{up}..
+z12e{up}..z13e{dir27};
+%
+%
+%
+penpos14(cap_hair,-47);
+penpos15(cap_hair,-47);
+z14=(z11{up}..z12{up}) intersectionpoint
+((0,0.476h)--(w,0.476h));
+z15-z14=whatever*dir43;
+x15l=x4r; penpos16(0.833cap_stem,-137);
+z16l=z15l; penpos17(0.833cap_stem,-137);
+x17l=w; z17-z16=whatever*dir-47;
+penstroke z14e--z15e;
+penstroke z16e--z17e;
+.endchar;
+
+.cmchar "The Fraktur letter G";
+.beginchar("G",10.638u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,0);
+penpos2(0.5cap_stem,90);
+penpos3(cap_stem,180);
+penpos4(cap_hair,-90);
+penpos5(0.926cap_stem,14);
+penpos7(cap_hair,-51);
+penpos9(cap_hair,-51);
+z1=(0.595w,0.739h); z2r=(0.385w,h+apex_o);
+z3r=(0,0.517h); z4r=(0.537w,-apex_o);
+z5r=(w,0.392h); z6=(0.686w,0.628h);
+z7=(x4,0.566h); z9-z7=whatever*dir39;
+x9=0.963w; z8=whatever[z7r,z9r];
+x8=0.817w;
+penstroke z1e{up}..z2e{left}..z3e{down}
+..z4e{right}..z5e{up};
+filldraw z7r{z9-z7}..z6{right}..
+z5l{down}--z5r{up}..z8--z9r--z9l--
+z7l--z7r & cycle;
+%
+%
+%
+penpos11(1.148cap_stem,39);
+penpos12(1.148cap_stem,39);
+z11=whatever[z7l,z9l]; x11=0.856w;
+penpos10(cap_hair,-51);
+z10=whatever[z9l,z9r]; y10l=h+apex_o;
+z12-z11=whatever*dir129;
+z10l-z12=whatever*dir39;
+penpos13(cap_hair,-51); z13l=z12l;
+penstroke z11e--z12e;
+penstroke z13e--z10e;
+%
+%
+%
+penpos14(cap_hair,180); penpos15(0.5cap_stem,-45);
+penpos16(0.796cap_stem,21.5);
+penpos17(0.926cap_stem,43);
+penpos18(cap_hair,-37);
+penpos19(cap_hair,-37);
+z14=(0.3w,0.58h); z15=(0.441w,0.385h);
+z16=(0.5[x7,x1],0.507h);
+z17=(0.385w,0.776h); z18=(0.442w,0.873h);
+z19-z18=whatever*dir53; y19=1.032h;
+penstroke z14e{down}..z15e{right}..
+z16e{up}..z17e{up}...z18e---z19e;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter G with breve";
+.beginchar(oct"207",10.638u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char; z100=(0.5w,cap_height); breve(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter H";
+.beginchar("H",10.275u#,cap_height#,1.996u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,111);
+penpos2(cap_hair,90);
+penpos3(cap_hair,0);
+penpos8(cap_hair,-45);
+penpos7(cap_hair,-45);
+penpos9(0.889cap_stem,0);
+penpos10(1.222cap_stem,48.5);
+penpos11(cap_hair,132);
+z1=(0.57w,-0.679d);
+z2l=(0.452w,-d); z3=(0.354w,-0.23d);
+z4=(0.503w,0.082h); z5=(0.621w,0.217h);
+z6=(0.71w,0.12h); z8l=(0.592w,-apex_o);
+z7r-z8r=whatever*dir45;
+x7r=0.809w; z9r=(w,0.429h);
+z10=(0.624w,3/4h); %z11=whatever[z1l,z1r];
+z11=(0.28w,0.543h);
+penstroke z1e..z2e{left}..z3e{up};
+filldraw z3r{up}..z4{right}..
+z8l{z8r-z7r}--z8r---z7r...z9r{up}--
+z9l{down}..z7l{z8r-z7r}..z6{left}..
+z5{dir123} & z5{dir211}..z3l{down}--
+z3r & cycle;
+penstroke z9e{up}..z10e{left}..
+z11e{dir222};
+%
+%
+%
+penpos12(1.259cap_stem,-131);
+penpos13(1.2cap_hair,-41);
+penpos14(1.074cap_stem,25);
+penpos15(cap_hair,-41);
+penpos18(cap_hair,-36);
+z12r=(0,0.141h); y13=0.2h; x13l=x11;
+z14=z11; z15=(x11,0.845h);
+z16=(0.478w,h); z17=(0.516w,0.837h);
+z18r-z17=whatever*dir54;
+y18r=h+apex_o;
+penstroke z12e{dir-41}..z13e{dir49}
+..z14e..z15e{dir49};
+filldraw z15r{dir49}..z17--z18r--
+z18l{z17-z18r}..z16{left}..z15l
+{dir229}--z15r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter I";
+.beginchar("I",8.541u#,cap_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,28);
+penpos2(cap_hair,-17.5);
+penpos3(0.889cap_stem,-116);
+penpos4(cap_stem,-126);
+penpos5(cap_hair,-44);
+penpos6(1.056cap_stem,53);
+penpos7(1.056cap_stem,21);
+penpos8(cap_hair,-90);
+penpos9(cap_hair,180);
+z1=(0.115w,-0.886d); z2r=(x1,-0.519d);
+z3=(0.234w,-0.1d); z4r=(0.517w,-d);
+z5=(0.795w,-0.329d); z6r=(0.966w,0.196h);
+z7=(0.636w,0.56h); z8=(0.808w,0.683h);
+z9l=(x6r,0.554h);
+penstroke z1e..z2e{up}..z3e{right}
+..z4e{right}..z5e..z6e{up}..z7e{up}
+..z8e{right}..z9e{down};
+%
+%
+%
+penpos10(1.037cap_stem,50);
+penpos11(cap_hair,-45);
+penpos12(0.889cap_stem,43);
+penpos13(1.185cap_stem,-146);
+penpos14(0.741cap_stem,-119);
+penpos15(cap_hair,0);
+penpos16(cap_hair,28);
+z10l=z11r=(0.1w,0.515h);
+z12l=(0,0.69h); z13l=(0.506w,h+apex_o);
+z14r=z8l+(0,0.035h);
+z15r=(w,0.875h); z16=(x15l,0.924h);
+filldraw z11l{z12r-z11l}..z12l{up}--
+z12r{down}..z10r--z10l--z11l & cycle;
+penstroke z12e{up}..z13e{right}..
+z14e{right}..z15e{up}..z16e{dir118};
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter Ij";
+.beginchar(oct"234",8.541u#+2.944lower_u#,cap_height#,2.497u#);
+currentpicture:=last_char;
+addto currentpicture also small_letter_j shifted (8.541u,-0.1x_height);
+endchar;
+
+
+.cmchar "The Fraktur letter I Umlaut";
+.beginchar(oct"317",8.541u#,cap_height#+0.3x_height#,2.497u#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+umlaut(100);
+endchar;
+
+.cmchar "The Fraktur letter I dot";
+.beginchar(oct"235",8.541u#,cap_height#+0.3x_height#,2.497u#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+pointaccent(100);
+endchar;
+
+.cmchar "The Fraktur letter I grave";
+.beginchar(oct"314",8.541u#,cap_height#+0.3x_height#,2.497u#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+cap_grave(100);
+endchar;
+
+.cmchar "The Fraktur letter I hat";
+.beginchar(oct"316",8.541u#,cap_height#+0.3x_height#,2.497u#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+hat(100);
+endchar;
+
+.cmchar "The Fraktur letter I acute";
+.beginchar(oct"315",8.541u#,cap_height#+0.3x_height#,2.497u#);
+currentpicture:=last_char; z100=(0.5w,cap_height);
+acute(100);
+endchar;
+
+.cmchar "The Fraktur letter J";
+.beginchar("J",8.541u#,cap_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,28);
+penpos2(cap_hair,-17.5);
+penpos3(0.889cap_stem,-116);
+penpos4(cap_stem,-126);
+penpos5(cap_hair,-44);
+penpos6(1.056cap_stem,53);
+penpos7(1.056cap_stem,21);
+penpos8(cap_hair,-90);
+penpos9(cap_hair,180);
+z1=(0.115w,-0.886d); z2r=(x1,-0.519d);
+z3=(0.234w,-0.1d); z4r=(0.517w,-d);
+z5=(0.795w,-0.329d); z6r=(0.966w,0.196h);
+z7=(0.636w,0.56h); z8=(0.808w,0.683h);
+z9l=(x6r,0.554h);
+penstroke z1e..z2e{up}..z3e{right}
+..z4e{right}..z5e..z6e{up}..z7e{up}
+..z8e{right}..z9e{down};
+%
+%
+%
+penpos10(1.037cap_stem,50);
+penpos11(cap_hair,-45);
+penpos12(0.889cap_stem,43);
+penpos13(1.185cap_stem,-146);
+penpos14(0.741cap_stem,-119);
+penpos15(cap_hair,0);
+penpos16(cap_hair,28);
+z10l=z11r=(0.1w,0.515h);
+z12l=(0,0.69h); z13l=(0.506w,h+apex_o);
+z14r=z8l+(0,0.035h);
+z15r=(w,0.875h); z16=(x15l,0.924h);
+filldraw z11l{z12r-z11l}..z12l{up}--
+z12r{down}..z10r--z10l--z11l & cycle;
+penstroke z12e{up}..z13e{right}..
+z14e{right}..z15e{up}..z16e{dir118};
+.endchar;
+
+.cmchar "The Fraktur letter K";
+.beginchar("K",9.478u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+cap_stem:=0.95cap_stem;
+%cap_hair:=0.95cap_hair;
+z1=(0,0.182h); z2=(0.177w,0.207h);
+z3=(0.033w,-apex_o);
+penpos4(cap_hair,-90);
+z4=(0.282w,0.045h); penpos5(cap_hair,0);
+z5=(0.4w,0.136h); z7=(0.434w,0.227h);
+z7'=(0.328w,0.556h);
+z8=(0.197w,0.732h); z6=(0.052w,0.566h);
+penpos9(1.25cap_hair,-90);
+z9l=(0.561w,h+apex_o);
+penpos9'(cap_hair,180);
+z9'l=(w-apex_o,0.707h);
+penpos10(cap_hair,140); z10=(0.813w,0.492h);
+filldraw z1--z3{dir30}..z4r{right}
+..z5r..z7{up}..z7'..z8{up}..z9r{right}
+--z9l{left}..z6{down} & z6{dir-52}
+..z5l..z4l{left}..z2{up}--z1 & cycle;
+penstroke z9e{right}..z9'e{down}..
+z10e;
+%
+%
+%
+penpos12(cap_hair,-78);
+penpos11(cap_hair,-78);
+z12l-z7'=whatever*dir12;
+z7'-z11l=whatever*dir12;
+x12=x10; x11=0.243w;
+penstroke z11e--z12e;
+penpos13(cap_hair,12); z13r=z7';
+penpos14(0.463cap_stem,-116);
+z14=(0.492w,0.8h);
+penpos16(1.074cap_stem,-168);
+z16=whatever[z11l,z12l]; x16l=x12-cap_hair;
+z12-z15=whatever*dir-78;
+penpos15(cap_hair,-78);
+y15=0.823h; z17-z15r=whatever*(z12-z11);
+z16l-z17=whatever*(z12-z15);
+filldraw z13r{dir102}..z14r{right}
+..z16r{dir-78}--z16l--z17--z15r--
+z15l{z13-z12}..z14l{left}..z13l{dir-78}
+--z13r & cycle;
+%
+%
+%
+penpos18(1.053cap_stem,-168);
+z18=0.5[z12r,z11r];
+penpos18'(1.053cap_stem,-168);
+z19=(0.767w,-apex_o); penpos21(cap_hair,-90);
+z21r-z19=whatever*dir45; x21=w;
+z20=(0.869w,0.149h);
+z18'-z18=whatever*dir-70; x18'l=x15;
+filldraw z18r---z18'r...z19--z21r--
+z21l{z19-z21r}..z20{left}...z18'l
+---z18l--z18r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter L";
+.beginchar("L",6.131u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+cap_stem:=1.022cap_stem;
+penpos1(cap_hair,0); penpos2(cap_hair,-60);
+penpos3(1.056cap_stem,30);
+penpos4(cap_stem,23); penpos5(0.481cap_stem,-67);
+penpos6(cap_hair,-149);
+penpos7(whatever,-140);
+penpos8(cap_hair,-147);
+penpos9(cap_hair,-90); penpos10(cap_hair,0);
+z1l=(0,0.082h); z2=(0.15w,0.207h);
+z3=(0.453w,0.37h); z4l=(0,0.731h);
+z5l=(0.539w,h+apex_o);
+z6=(0.829w,0.886h); z7l=(0.933w,0.739h);
+x7r=x3r;
+z8=(0.658w,0.53h); z9=(x6,0.476h);
+z10=(x7l,0.543h);
+penstroke z1e{up}..z2e..z3e{up}..
+z4e{up}..z5e{right}..z6e..z7e{down}
+..z8e..z9e{right}..z10e{up};
+%
+%
+%
+z11=(0.109w,0.111h); z13=(0.539w,-apex_o);
+z12=(0.731w,y11); penpos14(cap_hair,-21);
+z14r=(w,0.223h);
+z15'-z11=whatever*(z12-z13); x15'=w;
+z15=(z1{up}..z2..z3{up}) intersectionpoint
+((0.238w,0)--(0.238w,h));
+filldraw z1r{up}..z11{right}..z13{dir-25}
+& z13{dir25}..z14r{dir69}--z14l{dir249}
+..z12{left}..z15{left}& z15..z2..
+z1{down}--z1r & cycle;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter L with bar";
+.beginchar(oct"212",6.131u#,cap_height#,0);
+currentpicture:=last_char; z100=(0,0.40cap_height); ellbar(100);
+.endchar;
+
+.cmchar "The Fraktur letter L with acute";
+.beginchar(oct"210",6.131u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char; z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter M";
+.beginchar("M",13.432u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,-40); penpos2(cap_hair,-40);
+z1=(0.067w,0.035h); z2-z1=whatever*dir50;
+x2=0.176w; z3=(1/5w,-apex_o);
+penpos4(cap_hair,-41.5);
+z4r-z3=whatever*dir48.5;
+z4=whatever[z2l,z2r];
+penpos5(1.3cap_stem,48);
+% ant'i 1.111 pou j'aprepe n'anai
+z5=(0.4w,0.394h); penpos6(0.778cap_stem,44);
+z6=(0.148w,0.915h); penpos7(cap_hair,180);
+z7r=(0,0.782h); penpos8(1.111cap_stem,-147);
+z8l=(x6,0.649h); penpos9(2.2cap_hair,-171.5);
+penpos10(cap_hair,90); z9r=(x2l,0.46h);
+z10=(0.122w,0.378h); penpos11(cap_hair,58);
+z11=(0.047w,0.418h);
+z1'=whatever[z1r,z2r]; x1'=x1r+0.014117w;
+filldraw z1l--z2l--z4r--z3--z1'--z1r
+--z1l & cycle;
+penstroke z4e{z4r-z3}..z5e{up}..
+z6e{left}..z7e{down}..z8e..z9e{down}
+..z10e{left}..z11e;
+%
+%
+%
+penpos12(cap_hair,-40); penpos13(cap_hair,-40);
+z12=(0.329w,0.024h); z13-z12=whatever*dir50;
+x13=x5r; z13'=(0.466w,-apex_o);
+penpos14(cap_hair,-40); z14r-z13'=whatever*dir48;
+z14=whatever[z13l,z13r];
+penpos15(1.5cap_stem,-50);
+penpos16(0.741cap_stem,48);
+penpos17(cap_hair,180);
+z15=(0.647w,0.548h);
+x16=0.424w; y16r=h+apex_o;
+z17=(0.306w,0.843h);
+penstroke z12e--z13e;
+z12'=whatever[z12r,z13r]; x12'=x12r+0.014117w;
+filldraw z12'--z13'--z14r--z13l--
+z12' & cycle;
+penstroke z14e{z14r-z13'}..z15e{up}
+..z16e{left}..z17e{dir251};
+%
+%
+%
+penpos18(cap_hair,-46); penpos19(cap_hair,-46);
+penpos20(1.13cap_stem,37);
+penpos21(0.852cap_stem,-15);
+penpos22(cap_hair,-72);
+z18r=(0.814w,-apex_o);
+z19-z18=whatever*dir44;
+x19r=w; z20=(x18-eps,0.34h);
+z21=(x18r+eps,0.556h);
+z22=(0.906w,0.609h);
+z20'=0.7[z18l,z19l];
+penstroke z18e--z19e;
+filldraw z18l{up}..z20l{up}..z21l--
+z22l--z22r{z21l-z22l}..z21r..
+z20r{down}..z20'{dir-35}--z18l
+& cycle;
+%
+%
+%
+penpos23(1.148cap_stem,53);
+penpos24(0.944cap_stem,12);
+penpos27(2/3cap_hair,90);
+z23r=(w,0.670h); z24=(0.871w,0.84h);
+z25=(0.715w,0.947h); z26=(x25,0.87h);
+z27=(0.621w,0.824h);
+filldraw z23r{dir124}..z24r%{dir124}
+...z25---z27r--z27l{z25-z27r}..
+z26{right}..z24l%{dir-56}
+..z23l{dir-56}
+--z23r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter N";
+.beginchar("N",11.662u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,-45); penpos3(cap_hair,-45);
+penpos4(cap_hair,-90);
+penpos5(0.944cap_stem,0);
+penpos6(0.811cap_stem,64);
+penpos7(cap_hair,180);
+penpos8(1.094cap_stem,-132);
+penpos9(cap_hair,180); penpos10(cap_hair,90);
+penpos11(cap_hair,21);
+z1=(0.123w,0); z3-z1=whatever*dir52;
+x3=0.239w; 0.5[z1,z3]-z2=whatever*dir-45;
+x2=x1l-eps; z4r=(0.325w,-apex_o);
+z5=(0.55w,0.371h); z6=(x3,0.932h);
+z7r=(0,0.751h); z8=(0.197w,0.553h);
+z9=(x4,0.428h); z10=(x3,0.317h);
+z11=(0.125w,0.423h);
+penpos2(1/3cap_hair,52);
+filldraw z1l{dir71}..z2l--z2r
+..{dir31}z3l--z3r{z1-z3}..z4l{right}
+--z4r{left}..z1r{z1-z3}--z1l{z3-z1}
+& cycle;
+penstroke z4e{right}..z5e{up}..
+z6e{left}..z7e{down}..z8e{dir-22}..
+z9e{down}..z10e{left}..z11e;
+%
+%
+%
+penpos12(2/3cap_hair,0); penpos13(0.778cap_stem,-126);
+penpos14(0.944cap_stem,-162);
+penpos15(0.944cap_stem,-90);
+penpos16(cap_hair,0);
+penpos17(cap_hair,-32);
+penpos19(0.981cap_stem,0);
+penpos20(0.793cap_stem,0);
+penpos21(cap_hair,-90);
+z12=(0.516w,0.745h); y13l=h+apex_o;
+z14=(0.886w,0.751h);
+z15=(w,0.669h);
+z19=(0.769w,y5); x13=x19l;
+z16=(x19r,-apex_o);
+z17r-z16r=whatever*dir58;
+x17r=0.977w; z20=(0.798w,0.537h);
+z21r=z15r;
+filldraw z16r--z17r--z17l{z16r-z17r}
+..z19r{up}..z20r..z21r{dir18}--
+z21l{dir198}..z20l..z19l{down}..
+z16l--z16r & cycle;
+penstroke z12e{up}..z13e{right}..
+z14e{dir-71}..z15e{right};
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter N tilde";
+.beginchar(oct"321",11.662u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); tilde(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter N acute";
+.beginchar(oct"213",11.662u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter N hacek";
+.beginchar(oct"214",11.662u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+.endchar;
+
+.cmchar "The Fraktur letter O";
+.beginchar("O",12.01u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,41); penpos2(cap_hair,0);
+penpos3(cap_hair,-59);
+penpos5(1.037cap_stem,24);
+penpos6(1.074cap_stem,38);
+penpos7(cap_hair,-47); penpos8(2/3cap_hair,0);
+penpos4(1.315cap_stem,-146);
+penpos10(1.111cap_stem,70);
+penpos11(0.704cap_stem,22);
+penpos14(cap_hair,-46);
+z1r=(0.084w,0); z2l=(0,0.09h);
+z3=(0.234w,0.298h); z4=(0.184w,0.197h);
+z5=(0.332w,0.412h); z6=(0.179w,0.71h);
+z7=(0.263w,0.843h); z8=(0.389w,h+apex_o);
+z9=(x8,0.787h); z10=(0.595w,0.864h);
+z11r=(w,0.484h); z12=(0.637w,0.144h);
+z13=(2x10-x12,-apex_o);
+z14=(0.858w,0.227h);
+penstroke z1e..z2e{up}..z3e..z5e{up}
+..z6e{up}..z7e{dir43};
+penstroke z1e..z2e{up}..z4e{dir-19};
+filldraw z4r{dir-19}..{z13-(x4r,0.5y4r)}z13 &
+z13{dir27}..z14r..z11r{up}..z10r{left}..
+z8r{dir100}--z8l{down}..z7l{dir223}--
+z7r..z9..z10l{right}..z11l{down}..
+z14l..z12{left}..z4l{dir161}--z4r &
+cycle; last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter O Umlaut";
+.beginchar(oct"326",12.01u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter O tilde";
+.beginchar(oct"325",12.01u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); tilde(100);
+.endchar;
+
+.cmchar "The Fraktur letter O with Hungarian umlaut";
+.beginchar(oct"216",12.01u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hungarum(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter O slash";
+.beginchar(oct"330",12.01u#,cap_height#,0);
+currentpicture:=last_char;
+pickup penrazor xscaled stem yscaled hair rotated 30;
+draw (0,0)--(w,cap_height);
+.endchar;
+
+.cmchar "The Fraktur letter O slash";
+if (dc_layout>0): xchar_code:=oct"330";
+ else: xchar_code:=oct"037";
+beginchar(xchar_code,12.01u#,cap_height#,0);
+currentpicture:=last_char;
+pickup penrazor xscaled stem yscaled hair rotated 30;
+draw (0,0)--(w,cap_height);
+endchar;
+fi;
+
+.cmchar "The Fraktur letter O acute";
+.beginchar(oct"323",12.01u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter O grave";
+.beginchar(oct"322",12.01u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); cap_grave(100);
+.endchar;
+
+.cmchar "The Fraktur letter O hat";
+.beginchar(oct"324",12.01u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hat(100);
+.endchar;
+
+
+.cmchar "The Fraktur ligature Oe";
+if (dc_layout>0): xchar_code:=oct"327";
+ else: xchar_code:=oct"036";
+ fi;
+.beginchar(xchar_code,12.01u#+5.5u#,cap_height#,0)
+currentpicture:=last_char;
+addto currentpicture also small_letter_e shifted (11.5u,0);
+.endchar;
+
+.cmchar "The Fraktur letter P";
+.beginchar("P",9.482u#,cap_height#,2.651u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,0); penpos2(cap_stem,0);
+penpos3(cap_stem,0);
+penpos4(0.926cap_stem,58);
+penpos5(cap_hair,180);
+penpos8(1.5cap_hair,-145);
+penpos9(cap_hair,114);
+z1=(0.427w,-d); z2=(0.453w,0.09h);
+z3=(x2,0.7h); z4r=(0.227w,h+apex_o);
+z5r=(0,0.778h); z6=(0.173w,0.67h);
+z7=(0.083w,0.564h); z8=(0.275w,0.524h);
+z9r=(x7,0.4h);
+penstroke z1e...z2e---z3e..z4e{left}
+..z5e{down};
+penstroke z8e{down}..z9e;
+filldraw z5r{down}..z7 & z7{right}..
+z8r{down}--z8l{up}..z6..z5l{up}--
+z5r & cycle;
+%
+%
+%
+penpos18(cap_hair,0); penpos19(cap_hair,-80);
+penpos16(1.037cap_stem,23);
+penpos15(cap_stem,35);
+penpos14(cap_hair,-56);
+z18r=z3r; z19=(0.74w,0.931h);
+z16=(0.793w,0.782h);
+z15r=(w,0.42h); z14=(0.687w,0.059h);
+penstroke z14e{dir33}..z15e{up}..
+z16e{up};
+penstroke z18e{up}..z19e{dir22.5};
+z17'=(0.917w,h-apex_o);
+filldraw z16l{up}..z19l & z19l{dir22.5}
+..z17'{right} & z17'..z16r{down}--
+z16l & cycle;
+%
+%
+%
+penpos10(cap_stem,64); penpos11(cap_stem,71);
+penpos12(cap_hair,-36);
+penpos13(cap_hair,-23);
+z10=(0.713w,0.027h); z11=(0.387w,0.16h);
+z12=(x6,0.059h); z13l=(x8,0.266h);
+filldraw z10r..z11r...z13r---z13l
+& z13l..z12l{dir234}--z12r{dir54}...
+z11l---z10l--z10r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter Q";
+.beginchar("Q",13.559u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w':=12.01u;
+penpos1(cap_hair,41); penpos2(cap_hair,0);
+penpos3(cap_hair,-59);
+penpos5(1.037cap_stem,24);
+penpos6(1.074cap_stem,38);
+penpos7(cap_hair,-47); penpos8(2/3cap_hair,0);
+penpos4(1.315cap_stem,-146);
+penpos10(1.111cap_stem,70);
+penpos11(0.704cap_stem,22);
+penpos14(cap_hair,-46);
+penpos16(1.074cap_stem,-127);
+penpos17(cap_hair,-45);
+z1r=(0.084w',0); z2l=(0,0.09h);
+z3=(0.234w',0.298h); z4=(0.184w',0.197h);
+z5=(0.332w',0.412h); z6=(0.179w',0.71h);
+z7=(0.263w',0.843h); z8=(0.389w',h+apex_o);
+z9=(x8,0.787h); z10=(0.595w',0.864h);
+z11r=(0.925w,0.503h); z12=(0.637w',0.144h);
+z13=(2x10-x12,-apex_o);
+z14=(0.884w',0.227h);
+penpos15(1.3cap_stem,angle(z13-z14));
+z15l=z14; z16r=(0.825w,-apex_o);
+z17r=(w,0.144h);
+penstroke z1e..z2e{up}..z3e..z5e{up}
+..z6e{up}..z7e{dir43};
+penstroke z1e..z2e{up}..z4e{dir-19};
+filldraw z4r{dir-19}..{z13-(x4r,0.5y4r)}z13 &
+z13{dir27}..z14r..z11r{up}..z10r{left}..
+z8r{dir100}--z8l{down}..z7l{dir223}--
+z7r..z9..z10l{right}..z11l{down}..
+z14l..z12{left}..z4l{dir161}--z4r &
+cycle;
+penstroke z15e..z16e{dir-10} & z16e..z17e
+{dir45};
+.endchar;
+
+.cmchar "The Fraktur letter R";
+.beginchar("R",10.493u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#+0.3u#);
+penpos1(cap_hair,-49); penpos2(cap_hair,-49);
+penpos4(cap_hair,-90);
+z1l=(0,0.056h); z2=(0.253w,0.234h);
+z3=(apex_o,0.202h); z7=(0.036w,0.128h);
+z4r=(0.3w,-apex_o);
+z5=(0.181w,0.128h); z6=(0.084w,0.051h);
+filldraw z1l..z7..z3 & z3{dir-10}..
+z2l--z2r..z5..z4l{right}--z4r{left}
+..z6..z1r--z1l & cycle;
+penpos8(0.963cap_stem,19);
+penpos9(cap_stem,60); penpos10(cap_hair,180);
+penpos13(0.574cap_stem,-153);
+penpos14(cap_hair,90); penpos15(cap_hair,0);
+z8=(0.53w,0.375h); z9r=(0.247w,h+apex_o);
+z10r=(0,0.771h); z11=(0,0.614h);
+z12=(0.169w,0.641h); z13=(0.247w,0.481h);
+z14=(0.117w,0.348h); z15l=(0,0.468h);
+penstroke z4e{right}..z8e{up}..z9e
+{left}..z10e{down};
+penstroke z13e{down}..z14e{left}..
+z15e{up};
+filldraw z10r---z11..z13r{down}--
+z13l{up}..z12..z10l{up}--z10r &
+cycle;
+%
+%
+%
+penpos16(cap_hair,-90); penpos17(cap_hair,-90);
+penpos21(cap_hair,0); z16=(x8,0.585h);
+z17-z16=whatever*dir30;
+x17=0.934w; z21=(0.488w,3/4h);
+z20=(0.578w,0.936h); z22=(0.651w,0.91h);
+z19=(0.768w,h+apex_o);
+z23=whatever[z16l,z17l]; x23=x19;
+z18=(0.895w,0.867h);
+penstroke z16e--z17e;
+filldraw z21r{up}..z22{right}..
+z23{dir-76}--z17l{left}..z18..
+z19 & z19{z22-z19}..z20..z21l{down}
+--z21r & cycle;
+%
+%
+%
+penpos25(0.926cap_stem,-153);
+penpos26(1.074cap_stem,-174);
+penpos27(cap_hair,-32);
+z24=whatever[z16r,z17r]; x24=x23+0.18cap_stem;
+z25=(3/4w,0.612h); z26=(0.825w,0.205h);
+penpos26'(0.926cap_stem,-153); z26'r=z26r;
+y27r=0.189h; x27l=w; z28=(0.849w,-apex_o);
+z27'-z27l=whatever*(z28-z27r);
+x27'=w-cap_hair;
+filldraw z16r{z17-z16}...z25r
+---z26'r...z28 & z28--z27r--z27l &
+z27l---z27'...z26'l---
+z25l..z24--z16r & cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter R acute";
+.beginchar(oct"217",10.493u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter R hacek";
+.beginchar(oct"220",10.493u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+.endchar;
+
+
+
+.cmchar "The Fraktur letter S";
+.beginchar("S",12.813u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos0(0.032067w,-27); penpos0'(0.032067w,24);
+z0'r=z0l=(0.715w,0.745h);
+penpos1(1.5cap_hair,-156);
+penpos2(cap_hair,114);
+penpos7(cap_hair,114);
+penpos8(1.2cap_stem,-142);
+penpos9(cap_stem,-107);
+penpos10(0.926cap_stem,-123);
+penpos11(cap_hair,0);
+penpos16(0.722cap_stem,40);
+penpos17(cap_hair,-58);
+penpos18(cap_hair,-118);
+z1l=(w,0.952h); x2=0.93w;
+z3=(0.8w,0.859h); z5-z3=whatever*dir153;
+y5=h+apex_o; z4=z0r; z2l-z4=whatever*dir24;
+z6=whatever[z0r,z0l]; x6=0.462w;
+z7=(0.291w,0.931h); z8r=(0,0.505h);
+z9r=(0.562w,-apex_o);
+z10r=(0.76w,0.077h); z11=(0.933w,0.364h);
+z13=z0'l; z15-z13=whatever*dir204;
+x15=x14=0.407w; z12=(x9l,0.512h);
+z14-z12=whatever*(z15-z13);
+z16=(0.258w,0.649h);
+z17=(0.324w,0.782h); z18=(0.508w,0.739h);
+penstroke z7e{dir204}..z8e{down}..
+z9e{right}..z11e{up};
+penstroke z16e{up}..z17e{dir24}..
+z18e{dir-27};
+filldraw z1r{down}..z2r{z4-z2l}...
+z3---z5 & z5..z7r{dir204}--z7l
+{dir24}...z6---z4---z2l...z1l{up}
+& z1l--z1r & cycle;
+filldraw z11r{up}..z13{z6-z4} &
+z13---z15...z16r{up}--z16l{down}
+..z14{dir-27} & z14---z12...
+z11l{down}--z11r & cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter S acute";
+.beginchar(oct"221",12.813u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter S hacek";
+.beginchar(oct"222",12.813u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+.endchar;
+
+.cmchar "The Fraktur letter S cedilla";
+.beginchar(oct"223",12.813u#,cap_height#,0.2x_height#);
+currentpicture:=last_char;
+z100=(0.5w,0); cedilla(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter T";
+.beginchar("T",10.386u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0.041w,0.053h); z2=(0,0.104h);
+z3=(0.078w,y2); penpos4(1.037cap_stem,-133);
+z4=(0.165w,0.253h); z5=(0.592w,-apex_o);
+z6=(0.731w,0.123h); penpos7(cap_hair,0);
+z7r=(w,0.303h); penpos8(0.5cap_hair,-90);
+z8=(0.29w,0.271h); penpos9(1.185cap_stem,10);
+penpos10(1.148cap_stem,19);
+z9=(x5,0.415h); z10=(0.381w,0.691h);
+penpos11(0.5cap_hair,-90); z11=(0.677w,0.83h);
+penpos12(cap_hair,-112);
+penpos13(cap_hair,180);
+penpos14(1.111cap_stem,31);
+penpos14'(1.037cap_stem,57);
+z14'=(0.562w,0.939h);
+penpos15(1.185cap_stem,72);
+penpos16(cap_hair,-37.5);
+penpos17(cap_hair,-48);
+z12=(0.236w,0.6h); z13=(0.072w,0.761h);
+z14r=(0.436w,h+apex_o);
+z15=(0.858w,0.755h); z16=z15l;
+penpos15'(1.5cap_stem,72); z15'l=z15l;
+z17l=whatever[z16,z15r]; x17=0.956w;
+filldraw z1{right}..z3{up}..z4r{right}
+..z5{dir-29} & z5{dir22}..z7r{up}--
+z7l{down}..z6{left}..z4l{left}..
+z2{down}..z1{right} & cycle;
+penstroke z8e{right}..z9e{up}..z10e
+{up}..z11e{right};
+penstroke z15e{dir142.5}..z14'e..z14e{left}..z13e{down}
+..z12e{dir-22};
+penstroke z16e{z15r-z15l}..z17e
+{dir42};
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter T hacek";
+.beginchar(oct"224",10.386u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hacek(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter T ogonek";
+.beginchar(oct"225",10.386u#,cap_height#,0.2x_height#);
+currentpicture:=last_char;
+z100=(0.5w,0); ogonek(100);
+.endchar;
+
+
+.cmchar "The Fraktur letter U";
+.beginchar("U",10.608u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_stem,0); penpos2(whatever,39);
+penpos3(1.176cap_stem,48);
+penpos4(cap_hair,-42); penpos5(cap_hair,-42);
+penpos10(cap_hair,-47);
+penpos11(cap_hair,-47);
+penpos13(cap_stem,0);
+penpos14(cap_stem,0);
+penpos15(cap_hair,-90);
+penpos19(cap_hair,-41);
+z1=(0.258w,0.162h); z2r=(x1r,0.853h);
+x2l=x1l;
+z4l=(0,0.822h); z5-z4=whatever*dir48;
+y5l=h+apex_o; z3=whatever[z4r,z5r]; y3r=y5r-apex_o;
+z7=(x1l,0.26h); z8=(0.111w,y1);
+z9=(x1r,-apex_o); z8'=(0.278w,0.082h);
+z11r-z9=whatever*dir43; x11=0.737w;
+z12-z11l=whatever*(z9-z11r);
+x12=0.472w; z6-z12=whatever*(z8-z9);
+x6=x1r;
+penstroke z1e---z2e...z3e{dir138};
+penstroke z4e--z5e;
+filldraw z9--z11r--z11l--z12--z6--
+z7{down}..z8{dir231} &
+flex(z8,z8',z9) & cycle;
+%
+%
+%
+z13=(x11,y7); z14=(x13,y2r-cap_hair);
+z15=(0.573w,0.898h); z16=(0.737w,h+apex_o);
+z17=(0.886w,0.915h); z18=(x17,y1);
+z20=(0.786w,-apex_o);
+z21=(x13l,y1); x19r=w;
+z19r-z20=whatever*dir49;
+penstroke z13e--z14e;
+filldraw z15r{z16-z15l}..z14l{down}
+--z14r{up}..z17{right} & z17
+..z16 & z16..z15l--z15r & cycle;
+filldraw z20--z19r--z19l{z20-z19r}
+..z18{left}..z13r{up}--z13l--z21--
+z20 & cycle;
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter U Umlaut";
+.beginchar(oct"334",10.608u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter U with Hungarian umlaut";
+.beginchar(oct"226",10.608u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hungarum(100);
+.endchar;
+
+.cmchar "The Fraktur letter U acute";
+.beginchar(oct"332",10.608u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter U grave";
+.beginchar(oct"331",10.608u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); cap_grave(100);
+.endchar;
+
+.cmchar "The Fraktur letter U hat";
+.beginchar(oct"333",10.608u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); hat(100);
+.endchar;
+
+.cmchar "The Fraktur letter U with scandinavian circle";
+.beginchar(oct"227",10.608u#,cap_height#+0.3x_height#,0);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); o_umlaut(100);
+endchar;
+
+.cmchar "The Fraktur letter V";
+.beginchar("V",10.303u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,41); penpos2(cap_hair,0);
+penpos3(0.926cap_stem,-117);
+penpos6(cap_hair,-63);
+penpos7(0.704cap_stem,30);
+penpos8(cap_stem,44);penpos9(cap_hair,-65);
+penpos10(cap_hair,-65);
+penpos11(0.852cap_stem,-138);
+penpos12(2/3cap_hair,-55);
+penpos13(cap_hair,-48); penpos14(0.907cap_stem,-12);
+penpos15(1.037cap_stem,35);
+penpos16(0.889cap_stem,46);
+penpos17(cap_hair,155);
+penpos17'(0.489cap_stem,-123);
+penpos18(0.889cap_stem,-118);
+penpos20(0.537cap_stem,-147);
+penpos21(cap_hair,90);
+penpos22(cap_hair,44);
+z1=(0.115w,0.046h); z2=(0.072w,0.117h);
+z3=(0.209w,0.228h); z4=(0.613w,-apex_o);
+z5=(0.755w,0.103h); z5'=(x4,0.172h);
+z6=(0.853w,0.114h);
+z7r=(w,0.293h); z8=(0.742w,0.543h);
+z9=(0.822w,0.655h);
+z10r=(w,3/4h); z10'=(x7,0.788h);
+z11l=(0.75w,h+apex_o);
+z15=(0.414w,0.875h); z13=(0.288w,0.242h);
+z14=(0.534w,0.527h); z12=z15+(0.1w,-0.1h);
+z16r=(0.252w,h+apex_o);
+z17=(0.044w,0.859h);
+z17'r=(0,0.742h); z19=(0.043w,0.628h);
+z18=(0.096w,0.674h);
+z20=(0.267w,0.549h); z21l=(0.173w,0.435h);
+z22=(x19,0.516h);
+penstroke z1e..z2e{up}..z3e{right};
+filldraw z3r{right}..z4{dir-44} &
+z4---z6r...z7r{up}--z7l{down}..
+z6l..z5{left}..z5'..z3l{left}--z3r &
+cycle;
+penstroke z7e{up}..z8e{up}..z9e..
+z10e;
+penstroke z13e{dir42}..z14e{up}..
+z15e..z16e{left}..z17e..z17'e{down};
+filldraw z17'r{down}..z19{z3-z19} & z19---
+z18r...z20r{down}--z20l{up}..z18l..
+z17'l{up}--z17'r & cycle;
+penstroke z20e{down}..z21e{left}..
+z22e;
+filldraw z12r{up}..z11r{right}..
+1/10[z9,z10]{right} & 1/10[z9,z10]--z10--z10l &
+z10l{left}..z10'..z11l{left}..z12l{down}
+--z12r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter W";
+.beginchar("W",13.812u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,44); penpos2(cap_hair,22);
+penpos3(1.074cap_stem,-133);
+z1=(0.095w,0); z2=(0.055w,0.09h);
+z3=(0.16w,0.213h); z4=(0.366w,-apex_o);
+z5=(0.435w,0.118h); penpos6(cap_hair,-56);
+penpos7(4/3cap_stem,45);
+z6=(0.508w,0.126h); z7=(0.645w,0.41h);
+penpos9(1.222cap_stem,52);
+penpos10(cap_hair,0);
+z9=(0.532w,0.733h); z10=(0.604w,h+2apex_o);
+penstroke z1e..z2e..z3e{right};
+filldraw z3r{right}..z4{dir-30} &
+z4---z6r...z7r{dir72} & z7r{dir120}..
+z9r{up}..z10r--z10l..z9l{down}..
+z7l{down}..z6l{z4-z6r}...z3l{left}
+--z3r & cycle;
+%
+%
+%
+penpos11(cap_hair,-37); penpos12(0.778cap_stem,-140);
+penpos13(1.056cap_stem,-133);
+z11=(0.561w,0.865h); z12l=(0.735w,h+apex_o);
+z13l=(0.982w,0.756h);
+penstroke z11e{dir53}..z12e{right}..
+z13e{dir-60};
+%
+%
+%
+penpos14(cap_hair,-60); z14r=z13l+(apex_o,apex_o);
+penpos15(cap_stem,43); penpos16(0.741cap_stem,37.5);
+penpos17(cap_hair,-64); penpos18(1.222cap_stem,26);
+penpos17'(cap_hair,-64);
+z15=(0.808w,0.537h); z16r=(w,0.303h);
+z18l=(0.716w,-apex_o); z17r=z18; z17'r=z18r;
+z18.1-z18l=whatever*dir146;
+z18.2-z18r=whatever*dir146; x18.2=x18.1=0;
+z18'=(z6{z6r-z4}..z7{up}) intersectionpoint
+(z18l--z18.1);
+z18''=(z6{z6r-z4}..z7{up}) intersectionpoint
+(z18r--z18.2);
+filldraw z18l--z18'--z18''--z18r--z18l & cycle;
+penpos16'(whatever,54); z16'l=z16l; x16'r=w;
+penstroke z17e---z17'e...z16'e{up}..z15e{up}..
+z14e{dir36};
+%
+%
+%
+penpos19(cap_hair,-58); penpos22'(1.111cap_stem,44);
+penpos22(1.037cap_stem,41.5);
+penpos23(1.2cap_hair,-139);
+penpos24(cap_stem,-90); penpos25(0.556cap_stem,-140);
+penpos26(cap_hair,90); penpos27(cap_hair,37);
+z19=(0.224w,0.213h); x20=x5; z20-z19r=whatever*dir32;
+z21=(0.339w,0.483h); z22'=(0.326w,0.84h);
+z22r=(0.2w,h+apex_o); z23r=(0,0.767h);
+z24=(0.114w,0.654h); z25=(0.197w,0.551h);
+z26=(0.119w,0.437h); z27=(0.025w,0.5h);
+filldraw z19r--z20 & z20{up}..z22'r
+{dir129.5}--z22'l{dir-50.5}..z21{down}
+..z19l{z19r-z20}--z19r & cycle;
+penstroke z22'e{dir129.5}..z22e{left}
+..z23e{down}..z24e{right}..z25e{down}
+..z26e{left}..z27e{dir127};
+%
+%
+%
+penpos28(cap_hair,-32); penpos29(cap_hair,-90);
+penpos30(cap_hair,-141.5);
+z28=(0.357w,0.848h); z30=z11;
+z29=(0.5[x28,x30],0.958h);
+penstroke z28e..z29e..z30e;
+.endchar;
+
+.cmchar "The Fraktur letter X";
+.beginchar("X",9.418u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos0(cap_stem,0); z0=(0.5w,0.537h);
+z1=z0l; penpos5(cap_stem,-90); z5l=z0r;
+penpos2(cap_hair,0); z2r=(x0r,0.697h);
+penpos3(cap_hair,0); z3l=(x0l,0.253h);
+penpos6(cap_hair,-40); penpos7(cap_hair,-40);
+z6r=(0.758w,-apex_o); z7-z6=whatever*dir50;
+x7r=w; z7'=whatever[z6l,z7l];
+z6'=whatever[z6,z7]; y6'=apex_o;
+x7'=0.893w;
+penstroke z6e--z7e;
+filldraw z6'{left}...z3l---z1--z5l
+---z5r...z7'---z7l--z7--z6' & cycle;
+penpos12(cap_hair,-45); penpos13(cap_hair,-45);
+z13l=(0.289w,h+apex_o); z13-z12=whatever*dir45;
+x12l=apex_o; z13'=whatever[z12,z13];
+y13'=h-2apex_o;
+penstroke z12e--z13e;
+filldraw z12r{z13-z12}..z1{down}--
+z5l---z2r...z13'{dir148}--z12--z12r & cycle;
+%
+%
+%
+penpos15(0.852cap_stem,-116);
+penpos16(cap_hair,-21);
+penpos14(cap_hair,-21);
+z16=(0.852w,0.723h); z14-z16=whatever*dir69;
+y14=y15l+apex_o; z15=(0.77w,0.91h);
+penstroke z2e{up}..z15e{right};
+filldraw z15r{right}..z16l{z16-z14}
+--z16r--z14r--z14l{z1-z14l}
+..z15l{left}--z15r & cycle;
+%
+%
+%
+penpos9(cap_hair,-35); penpos10(cap_hair,-35);
+z9l=(0,0.069h); z10-z9=whatever*dir55;
+y10=0.229h; z8=(0.221w,-apex_o);
+z11=(0.297w,0.1h);
+filldraw z9r{dir20}..z8{right}..
+z3r{up}--z3l{down}..z11{left}..
+z10r{z10-z9}--z10l--z9l--z9r &
+cycle;
+%
+%
+%
+penpos20(cap_hair,0); penpos21(cap_hair,0);
+penpos22(cap_hair,0); penpos23(cap_hair,0);
+z21-z20=whatever*dir74;
+z23-z22=whatever*dir74;
+y22=y5r; y21=y5l; x22=0.772w;
+x21=0.235w; y23=y21+0.072h;
+y20=y22-0.072h;
+z20'=whatever[z20,z21]; z23'=whatever[z22,z23];
+y20'=y22; y23'=y21;
+penstroke z20e--z21e;
+penstroke z22e--z23e;
+filldraw z20'--z22--z23'--z21--z20' &
+cycle;
+z20''=whatever[z20',z22]; x20''=x20'+2cap_hair;
+z23''=whatever[z21,z23']; x23''=x23'-2cap_hair;
+filldraw z20r{z21-z20}..z20''{right}
+--z21--z20--z20r & cycle;
+filldraw z23''{right}..z23l{z23-z22}
+--z23--z22--z23'' & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter Y";
+.beginchar("Y",10.556u#,cap_height#,2.181u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0,0); z2=(0.079w,0.089h);
+z3=(2x2,0.025h); penpos4(0.611cap_stem,-35);
+penpos5(1.074cap_stem,13);
+penpos7'(1.111cap_stem,39);
+z4r=(0.338w,-d); z5r=(w,0.513h);
+z7'r=(0.778w,h); z6'=(0.656w,0.864h);
+penpos7(cap_hair,-51); penpos8(cap_hair,-51);
+z8=whatever[z7'l,z7'r]; y8r=h;
+z7=whatever[z7'l,z7'r]; y7=0.787h;
+filldraw z1{up}..z2{right}..z3{down}
+..z4l{right}--z4r{left}..z1{up} &
+cycle;
+penstroke z4e{right}..z5e{up}..z7'e
+{dir129};
+z6=(z5l{up}..z7'l{dir129}) intersectionpoint
+((0,0.8h)--(w,0.8h));
+filldraw z5l{up}..z6..z6'..z7r{z7-z8}--
+z7--z7'{dir-51}..z5{down}--z5l &
+cycle;
+penstroke z7e--z8e;
+%
+%
+%
+penpos11(cap_hair,-90); penpos9(cap_hair,-42);
+penpos10(cap_hair,-42); penpos22(1.148cap_stem,48);
+z9r=(0.359w,-apex_o); z10-z9=whatever*dir48;
+x10=0.719w; z22=whatever[z9,z10]; x22=0.479w;
+z11=(0.126w,0.215h); penpos12(2/3cap_hair,-42);
+z12-z22r=whatever*dir-42;
+x12=0.371w; penpos13(whatever,19);
+x13l=0.5w-0.5cap_stem; x13r=0.5w+0.5cap_stem;
+y13=0.585h;
+penstroke z9e--z10e;
+filldraw z11r{right}..z22l{dir-42}--
+z22r{dir138}--z12r{dir23}..z13r{up}
+--z13l{down}..z12l..z11l{left}--
+z11r & cycle;
+%
+%
+%
+penpos14(1.037cap_stem,32); penpos15(0.889cap_stem,42);
+penpos16(cap_hair,150); penpos17(0.389cap_stem,-134);
+penpos18(0.759cap_stem,-90);
+penpos19(cap_hair,180);
+penpos20(cap_hair,90);
+penpos21(1.5cap_hair,45);
+z14=(x13l,0.904h); z15r=(0.281w,h+apex_o);
+z16=(0.066w,0.883h); z17=(0.051w,0.822h);
+z18=(0.159w,0.713h); z19=(0.275w,0.606h);
+z20r=(0.189w,0.532h); z21=(0.087w,0.561h);
+penstroke z13e{up}..z14e{dir136}..
+z15e{left}..z16e..z17e{down}..z18e
+{right}..z19e{down}..z20e{left}..
+z21e{dir135};
+last_char:=currentpicture;
+.endchar;
+
+.cmchar "The Fraktur letter Y with acute";
+.beginchar(oct"335",10.556u#,cap_height#+0.3x_height#,2.181u#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter Y with umlaut";
+.beginchar(oct"230",10.556u#,cap_height#+0.3x_height#,2.181u#);
+currentpicture:=last_char;
+z100=(0.5w,cap_height); umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur letter Z";
+.beginchar("Z",8.407u#,cap_height#,2.528u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(0.704cap_stem,0); z1l=(0.038w,0.213h);
+penpos2(0.815cap_stem,-147);
+penpos3(1.148cap_stem,-152.5);
+penpos4(cap_hair,90);
+penpos1'(cap_hair,-66);
+z2=(0.395w,0.4h); z3l=(w-x1l,0.096h);
+z4l=(0.586w,-0.763d); z1'=(0.237w,0.372h);
+penstroke z1e{up}..z1'e..z2e..
+z3e{down}..z4e{left};
+z5=(0.368w,-0.525d); z6=(0.305w,-0.575d);
+z7=(0.338w,-0.15d); z8=(0.523w,0.077h);
+z9=(0.406w,0.061h); penpos10(cap_hair,90);
+z10r=(0.248w,0.077h);
+z8'=(x8,-0.288d);
+penpos11(cap_hair,180); z11=(0.068w,-0.3d);
+penpos12(1.5cap_hair,-90); z12r=(0.218w,-d);
+filldraw z4l{left}..z5{left}..z6 &
+z6..z7{up}..z10l{left}--z10r{right}
+..z9{right}..z8 & z8---z8'...z4r{right}
+--z4l & cycle;
+penstroke z10e{left}..z11e{down}
+..z12e{right};
+%
+%
+%
+penpos14(cap_hair,-90); penpos15(0.778cap_stem,25);
+penpos16(cap_stem,90); penpos17(0.5cap_stem,159);
+z15r=(w,0.7h); z16r=(0.5w,h+apex_o);
+z17r=(0,x15r); z14=(0.5w,0.415h);
+penstroke z15e{up}..z16e{left}..
+z17e{down}..z14e{right}..z15e{up};
+%
+%
+%
+z0=(x16,y17r); z18-z0=whatever*dir201;
+z13-z0=whatever*dir221;
+x18=x13=0;
+unfilldraw z18--z0--z13--z18 &
+cycle;
+last_char:=currentpicture;
+.endchar;
+
+
+.cmchar "The Fraktur letter Z acute";
+.beginchar(oct"231",8.407u#,cap_height#+0.3x_height#,2.528u#);
+currentpicture:=last_char; z100=(0.5w,cap_height); acute(100);
+.endchar;
+
+.cmchar "The Fraktur letter Z hacek";
+.beginchar(oct"232",8.407u#,cap_height#+0.3x_height#,2.528u#);
+currentpicture:=last_char; z100=(0.5w,cap_height); hacek(100);
+.endchar;
+
+.cmchar "The Fraktur letter Z point";
+.beginchar(oct"233",8.407u#,cap_height#+0.3x_height#,2.528u#);
+currentpicture:=last_char; z100=(0.5w,cap_height); pointaccent(100);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/schwell.mf b/Master/texmf-dist/fonts/source/public/gothic/schwell.mf
new file mode 100644
index 00000000000..37dcba9a1c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/schwell.mf
@@ -0,0 +1,100 @@
+% SUET Zeichensatz in schraeggestellter Form
+%
+%
+% ---------------------
+%
+% Wuensche, Fehler und Anregungen bitte an:
+%
+% B. Ludewig, Uni Siegen, HRZ, Hoelderlinstr. 3, 5900 Siegen.
+%
+% Ludewig@hrz.uni-siegen.dbp.de
+% oder
+% GZ006@DSIHRZ51.BITNET
+%
+% plain
+
+font_identifier "SCHWELL"; font_size 14pt#;
+font_coding_scheme:="SUETTERLIN Text";
+
+mode_setup;
+boolean serifs,monospace;
+%
+xpt#:=pt#;
+monospace:=false;
+serifs:=true;
+%
+ut#:=0.5;
+ut=ut#*hppp;
+% % <-----hier kann gedreht werden
+numeric top,mid,base,bot,an_top,an_mid,an_bot,ang;
+numeric Z_anf,I_anf,o_bogen,L_o,U_bogen,g_bogen,G_bogen,z_bogen;
+numeric alpha,beta,gamma,delta,mi_alpha,mi_beta,mi_gamma,mi_delta;
+ang:=20;
+alpha=-45-ang;mi_alpha=-45+180-ang;
+beta=85-ang;mi_beta=85+180-ang;
+gamma=50-ang;mi_gamma=50+180-ang;
+delta=30-ang;mi_delta=30+180-ang;
+%
+%
+top:=21ut; mid:=8ut; bas:=0ut; bot:=-14ut;
+%
+an_top=7ut; an_mid=4ut; an_bot=1ut;
+%
+Z_anf=17ut; I_anf=18ut; O_bogen=5ut; L_o=4.5ut; U_bogen=3ut;
+g_bogen=-12ut; G_bogen=-11ut;z_bogen=-10ut;
+%
+pen su_pen;
+su_pen := pencircle xscaled .151ut yscaled 2.5ut rotated -45;
+
+pen su_pen_small;
+%su_pen_small := pencircle scaled 1.51ut;
+su_pen_small := pencircle scaled 2.01ut;
+
+pen su_pen_big;
+su_pen_big := pencircle scaled 4.51ut;
+
+def makex(suffix i)(expr xnull,ang,yy)=
+ if yy=0: wi:=x.i:=xnull;
+ else: wi:=x.i:=((sind ang*yy)/cosd ang)+xnull; fi
+enddef;
+def makewi(suffix i)(expr xnull,ang,yy)=
+ if yy=0: wi:=x.i:=xnull;
+ else: if yy=mid: wi:=x.i:=((sind ang*yy)/cosd ang)+xnull-1.2*hppp;
+ else: if yy=an_top: wi:=x.i:=((sind ang*yy)/cosd ang)+xnull-1.0*hppp;
+ else: if yy=an_mid: wi:=x.i:=((sind ang*yy)/cosd ang)+xnull-0.5*hppp;
+ else: if yy=an_bot: wi:=x.i:=((sind ang*yy)/cosd ang)+xnull-0.1*hppp;
+ fi fi fi fi fi
+enddef;
+
+def makebox (text r) =
+ for y=-7ut step 1ut until 21ut: r((0,y),(28ut,y)); endfor;
+ for x=-2ut step 1ut until 28ut: r((x,-7ut),(x,21ut)); endfor;
+ for y=bas+.5,bas-.5,an_bot+.5,an_mid+.5,an_top+.5,mid-.5,mid+.5,
+ Z_anf,Z_anf+.5,I_anf,I_anf+.5,O_bogen,O_bogen+.5,L_o,L_o+.5,
+ U_bogen,U_bogen+.5,g_bogen,g_bogen+.5,G_bogen,G_bogen+.5,
+ z_bogen,z_bogen+.5: r((0,y),(28ut,y)); endfor;
+ z90=(32ut,mid);makelabel("mid",z90);makelabel("top",(32ut,top));
+ makelabel("an_mid",(32ut,an_mid));makelabel("an_bot",(32ut,an_bot));
+ makelabel("an_top",(32ut,an_top));makelabel("bot",(32ut,bot));
+ makelabel("Z_anf",(32ut,Z_anf)); makelabel("I_anf",(32ut,I_anf));
+ makelabel("O_bo",(32ut,O_bogen)); makelabel("L_o",(32ut,L_o));
+ makelabel("U_bo",(32ut,U_bogen)); makelabel("g_bo",(32ut,g_bogen));
+ makelabel("G_bo",(32ut,G_bogen)); makelabel("z_bo",(32ut,z_bogen));
+ makelabel("0",(0,24ut)); makelabel("5",(5ut,24ut)); makelabel("10",(10ut,24ut));
+ makelabel("15",(15ut,24ut)); makelabel("20",(20ut,24ut));
+ makelabel("25",(25ut,24ut));
+ makelabel(str[w],(w,-10ut));
+enddef;
+
+%
+input su-low;
+input su-spec;
+input su-upp;
+%
+font_quad 33pt#;
+font_normal_space 6.6pt#;
+font_normal_stretch 3pt#;
+font_normal_shrink 1pt#;
+%
+input su-lig;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/gothic/su-lig.mf b/Master/texmf-dist/fonts/source/public/gothic/su-lig.mf
new file mode 100644
index 00000000000..6fb1647dcf4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/su-lig.mf
@@ -0,0 +1,232 @@
+
+boundarychar:=oct"040";
+
+ligtable "c":
+ "h" =:| 30; % ch - Ligatur
+
+ligtable "Z": "k": "f": "E": "T": 29: %ST=29!
+ "a" |=:| 130,
+ "b" |=:| 130,
+ "c" |=:| 130,
+ 30 |=:| 130,
+ "d" |=:| 130,
+ "e" |=:| 130,
+ "f" |=:| 130,
+ "g" |=:| 130,
+ "h" |=:| 130,
+ "i" |=:| 130,
+ "j" |=:| 130,
+ "k" |=:| 130,
+ "l" |=:| 130,
+ "m" |=:| 130,
+ "n" |=:| 130,
+ "o" |=:| 130,
+ "p" |=:| 130,
+ "q" |=:| 130,
+ "r" |=:| 130,
+ "s" |=:| 130,
+ "t" |=:| 130,
+ "u" |=:| 130,
+ "v" |=:| 130,
+ "w" |=:| 130,
+ "x" |=:| 130,
+ "y" |=:| 130,
+ "z" |=:| 135,
+ 228 |=:| 130, %ae
+ 246 |=:| 130, %oe
+ 252 |=:| 130, %ue
+ 255 |=:| 130, %sz
+ 027 |=:| 130, %tz
+ 028 |=:| 130; % s am Ende
+
+ligtable "t":
+ "a" |=:| 130,
+ "b" |=:| 130,
+ "c" |=:| 130,
+ 30 |=:| 130,
+ "d" |=:| 130,
+ "e" |=:| 130,
+ "f" |=:| 130,
+ "g" |=:| 130,
+ "h" |=:| 130,
+ "i" |=:| 130,
+ "j" |=:| 130,
+ "k" |=:| 130,
+ "l" |=:| 130,
+ "m" |=:| 130,
+ "n" |=:| 130,
+ "o" |=:| 130,
+ "p" |=:| 130,
+ "q" |=:| 130,
+ "r" |=:| 130,
+ "s" |=:| 130,
+ "t" |=:| 130,
+ "u" |=:| 130,
+ "v" |=:| 130,
+ "w" |=:| 130,
+ "x" |=:| 130,
+ "y" |=:| 130,
+ "z" =: 27,
+ 228 |=:| 130, %ae
+ 246 |=:| 130, %oe
+ 252 |=:| 130, %ue
+ 255 |=:| 130, %sz
+ 027 |=:| 130, %tz
+ 028 |=:| 130; % s am Ende
+
+ligtable "a": 228: 255: 28: "A": "C": "D": "F": "H": "I": "J": "K": "L": "M":
+ 196: 220: 214: % AE, UE, OE
+ "N": "O": "P": "Q": "R": "U": "V": "W": "X": "Y":
+ % a,sz,s am Ende,A,C,D,F,H,I,....
+ "a" |=:| 128,
+ 228 |=:| 128,
+ "b" |=:| 128,
+ "c" |=:| 128,
+ 30 |=:| 128,
+ "d" |=:| 128,
+ "e" |=:| 128,
+ "f" |=:| 128,
+ "g" |=:| 128,
+ "h" |=:| 128,
+ "i" |=:| 128,
+ "j" |=:| 128,
+ "k" |=:| 128,
+ "l" |=:| 128,
+ "m" |=:| 128,
+ "n" |=:| 128,
+ "o" |=:| 128,
+ 246 |=:| 128,
+ "p" |=:| 128,
+ "q" |=:| 128,
+ "r" |=:| 128,
+ "s" |=:| 128,
+ "t" |=:| 128,
+ "u" |=:| 128,
+ 252 |=:| 128,
+ "v" |=:| 128,
+ "w" |=:| 128,
+ "x" |=:| 128,
+ "y" |=:| 128,
+ "z" |=:| 133,
+ 255 |=:| 128, %sz
+ 027 |=:| 128, %tz
+ 028 |=:| 128; % s am Ende
+
+ligtable "S": % wegen St-Ligatur
+ "a" |=:| 128,
+ "b" |=:| 128,
+ "c" |=:| 128,
+ 30 |=:| 128,
+ "d" |=:| 128,
+ "e" |=:| 128,
+ "f" |=:| 128,
+ "g" |=:| 128,
+ "h" |=:| 128,
+ "i" |=:| 128,
+ "j" |=:| 128,
+ "k" |=:| 128,
+ "l" |=:| 128,
+ "m" |=:| 128,
+ "n" |=:| 128,
+ "o" |=:| 128,
+ "p" |=:| 128,
+ "q" |=:| 128,
+ "r" |=:| 128,
+ "s" |=:| 128,
+ "t" =: 29,
+ "u" |=:| 128,
+ "v" |=:| 128,
+ "w" |=:| 128,
+ "x" |=:| 128,
+ "y" |=:| 128,
+ "z" |=:| 133,
+ 228 |=:| 128, %ae
+ 246 |=:| 128, %oe
+ 252 |=:| 128, %ue
+ 255 |=:| 128, %sz
+ 027 |=:| 128, %tz
+ 028 |=:| 128; % s am Ende
+
+ligtable "b": "B": "o": "r": 246: % b, s am Ende, sz, o und oe,
+ "a" |=:| 129,
+ "b" |=:| 129,
+ "c" |=:| 129,
+ 30 |=:| 129,
+ "d" |=:| 129,
+ "e" |=:| 129,
+ "f" |=:| 129,
+ "g" |=:| 129,
+ "h" |=:| 129,
+ "i" |=:| 129,
+ "j" |=:| 129,
+ "k" |=:| 129,
+ "l" |=:| 129,
+ "m" |=:| 129,
+ "n" |=:| 129,
+ "o" |=:| 129,
+ "p" |=:| 129,
+ "q" |=:| 129,
+ "r" |=:| 129,
+ "s" |=:| 129,
+ "t" |=:| 129,
+ "u" |=:| 129,
+ "v" |=:| 129,
+ "w" |=:| 129,
+ "x" |=:| 129,
+ "y" |=:| 129,
+ "z" |=:| 132,
+ 246 |=:| 129, %oe
+ 252 |=:| 129, %ue
+ 228 |=:| 129, %ae
+ 255 |=:| 129, %sz
+ 027 |=:| 129, %tz
+ 028 |=:| 129; % s am Ende
+
+ligtable "s":
+ " " =:| 28, % s gefolgt von Blanc
+ "." =:| 28,
+ "," =:| 28,
+ ";" =:| 28,
+ "!" =:| 28,
+ ")" =:| 28,
+ "/" =:| 28,
+ "?" =:| 28,
+ "+" =:| 28,
+ "-" =:| 28,
+ "=" =:| 28,
+ ":" =:| 28;
+%
+ligtable ||: "(": % Blanc, ( gefolgt von ..
+ "a" |=:| 128,
+ "b" |=:| 128,
+ "c" |=:| 128,
+ 30 |=:| 128,
+ "d" |=:| 128,
+ "e" |=:| 128,
+ "f" |=:| 128,
+ "g" |=:| 128,
+ "h" |=:| 128,
+ "i" |=:| 128,
+ "j" |=:| 128,
+ "k" |=:| 128,
+ "l" |=:| 128,
+ "m" |=:| 128,
+ "n" |=:| 128,
+ "o" |=:| 128,
+ "p" |=:| 128,
+ "q" |=:| 128,
+ "r" |=:| 128,
+ "s" |=:| 128,
+ "t" |=:| 128,
+ "u" |=:| 128,
+ "v" |=:| 128,
+ "w" |=:| 128,
+ "x" |=:| 128,
+ "y" |=:| 128,
+ "z" |=:| 133,
+ 246 |=:| 128, %oe
+ 252 |=:| 128, %ue
+ 228 |=:| 128, %ae
+ 255 |=:| 128, %sz
+ 027 |=:| 128, %tz
+ 028 |=:| 128; % s am Ende
diff --git a/Master/texmf-dist/fonts/source/public/gothic/su-low.mf b/Master/texmf-dist/fonts/source/public/gothic/su-low.mf
new file mode 100644
index 00000000000..f7703700123
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/su-low.mf
@@ -0,0 +1,796 @@
+ % su-low.mf -Input-File Zeichensatz
+
+
+% a
+makewi(7,10ut,ang,an_bot);
+beginchar("a",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y3=y4=mid;
+y2=y6=bas;
+y5=y7=an_bot;
+makex(1,0ut,ang,y1);
+makex(2,0ut,ang,y2);
+makex(3, 5ut,ang,y3);
+makex(4,7.5ut,ang,y4);
+makex(5,5.5ut,ang,y5);
+makex(6,7ut,ang,y6);
+makex(7, 10ut,ang,y7);
+%
+draw z1{dir mi_gamma}..z2{right}..z3{dir beta};
+draw z3{z5-z4}..z4{z4-z5};
+draw z4{z5-z4}..z5..z6{right}..{dir gamma}z7;
+labels(range 1 thru 7);
+endchar;
+
+
+% a-Umlaut
+makewi(7,10ut,ang,an_bot);
+beginchar(228,wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y3=y4=mid;
+y2=y6=bas;
+y5=y7=an_bot;
+y8=y9=3/7(top-mid)+mid;
+makex(1,0ut,ang,y1);
+makex(2,0ut,ang,y2);
+makex(3, 5ut,ang,y3);
+makex(4,7.5ut,ang,y4);
+makex(5,5.5ut,ang,y5);
+makex(6,7ut,ang,y6);
+makex(7, 10ut,ang,y7);
+makex(8,2ut,ang,y8);
+makex(9,5.5ut,ang,y9);
+%
+draw z1{dir mi_gamma}..z2{right}..z3{dir beta};
+draw z3{z5-z4}..z4{z4-z5};
+draw z4{z5-z4}..z5..z6{right}..{dir gamma}z7;
+draw z8..z8+(1ut,3ut);draw z9..z9+(1ut,3ut);
+labels(range 1 thru 9);
+endchar;
+
+% b
+makewi(10,7.5ut,ang,an_bot);
+beginchar("b",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y9=y11=mid;
+y2=Z_anf;
+y3=y5=I_anf;
+y4=top;
+y6=y8=an_mid;
+y7=bas;
+y10=an_top;
+
+makex(1, 0ut,ang,y1);
+makex(2, 2.7ut,ang,y2);
+makex(3, 3.5ut,ang,y3);
+makex(4, 2ut,ang,y4);
+makex(5, -.8ut,ang,y5);
+makex(6,-2.5ut,ang,y6);
+makex(7, 2ut,ang,y7);
+makex(8, 5.6ut,ang,y8);
+makex(9, 5ut,ang,y9);
+makex(10, 7.5ut,ang,y10);
+%
+draw z1{dir gamma}..z3{up}..z4{left}..z5{dir mi_beta}..z6{dir mi_beta}..z7{right}..z8{up}..z9;
+draw z9..z10{right};
+labels(range 1 thru 10);
+endchar;
+
+% c
+makewi(5,8.5ut,ang,an_bot);
+beginchar("c",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y3=y5=mid;
+y2=an_top;
+y4=bas;
+makex(1,0ut,ang,y1);
+makex(2,2.0ut,ang,y2);
+makex(3, 4ut,ang,y3);
+makex(4,-2ut,ang,y4);
+makex(5,8.5ut,ang,y5);
+%
+draw z1..z2{right}..z3{up};
+draw z1{z4-z1}..z4;
+draw z4..z5;
+labels(range 1 thru 5);
+endchar;
+
+
+% % c fuer ch-Ligatur c
+makewi(5,8.5ut,ang,an_bot);
+beginchar(30,wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y3=y5=mid;
+y2=an_top;
+y4=bas;
+makex(1,0ut,ang,y1);
+makex(2,2.0ut,ang,y2);
+makex(3, 4ut,ang,y3);
+makex(4,-2ut,ang,y4);
+makex(5,8.5ut,ang,y5);
+%
+%draw z1..z2{right}..z3{up};
+draw z1{z4-z1}..z4;
+draw z4..z5;
+labels(range 1 thru 5);
+endchar;
+
+
+% d
+makewi(5,10ut,ang,an_bot);
+beginchar("d",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y5=mid;
+y34=I_anf;
+y2=bas;
+y3=13/14*mid;
+y4=top;
+makex(1,0ut,ang,y1);
+makex(2,0ut,ang,y2);
+makex(3,5ut,ang,y3);
+makex(34,.5ut,ang,y34);
+makex(4,2.3ut,ang,y4);
+makex(5,10ut,ang,y5);
+%
+draw z1{dir mi_gamma}..z2{right}..z3..z4{left}..z34..{right}z3..z5;
+labels(range 1 thru 7,34);
+endchar;
+
+% e
+makewi(5,10.5ut,ang,mid);
+beginchar("e",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y3=y5=mid;
+y2=y4=bas;
+makex(1,0ut,ang,y1);
+makex(2,-2ut,ang,y2);
+makex(3,2.7ut,ang,y3);
+makex(4,0.5ut,ang,y4);
+makex(5,10.5ut,ang,y5);
+%
+draw z1..z2;
+draw z3..z4;
+draw z4..z5;
+labels(range 1 thru 7);
+endchar;
+
+% f
+makewi(8,4ut,ang,an_mid);
+beginchar("f",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=mid;
+y2=Z_anf;
+y3=y5=I_anf;
+y4=top;
+y6=bot;
+y7=an_mid+1/7(mid-an_mid);
+y8=an_mid;
+makex(1,0ut,ang,y1);
+makex(2, 2ut,ang,y2);
+makex(3,3.3ut,ang,y3);
+makex(4,2ut,ang,y4);
+makex(5,0ut,ang,y5);
+makex(6,-4.5ut,ang,y6);
+makex(7,-3.5ut,ang,y7);
+makex(8,4ut,ang,y8);
+%
+draw z1{dir gamma}..z3{up}..z4{left}..z5{z6-z5}..z6;
+draw z7..z8{dir delta};
+labels(range 1 thru 8);
+endchar;
+
+% g
+makewi(8,14ut,ang,mid);
+beginchar("g",wi/hppp,14ut#,7ut#);
+pickup su_pen;
+y1=y3=y4=y8=mid;
+y2=bas;
+y5=g_bogen;
+y6=bot;
+y7=1/2z_bogen;
+y23=5/7mid;
+makex(1,0ut,ang,y1);
+makex(2,.5ut,ang,y2);
+makex(3, 5 ut,ang,y3);
+makex(4,7.7 ut,ang,y4);
+makex(5, 4.3ut,ang,y5);
+makex(6, 2.2 ut,ang,y6);
+makex(7, 2 ut,ang,y7);
+makex(8, 14 ut,ang,y8);
+makex(23,4.7ut,ang,y23);
+%
+draw z1{dir mi_gamma}..z2{right}..z23..z3{up};
+draw z3{down}..z4{dir beta};
+draw z4{dir mi_beta}..z5{dir mi_beta}..z6{left}..z7{dir gamma}..z8;
+labels(range 1 thru 8,23);
+endchar;
+
+
+% h
+makewi(9,6.5ut,ang,mid);
+beginchar("h",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=y9=mid;
+y2=Z_anf;
+y3=y5=I_anf;
+y4=top;
+y6=G_bogen;
+y8=bas;
+y7=bot;
+makex(1,0ut,ang,y1);
+makex(2,2 ut,ang,y2);
+makex(3,3ut,ang,y3);
+makex(4,2ut,ang,y4);
+makex(5,-.4ut,ang,y5);
+makex(6,-3.7ut,ang,y6);
+makex(7,-6ut,ang,y7);
+makex(8, -5.7ut,ang,y8);
+makex(9, 6.5ut,ang,y9);
+%
+draw z1{dir gamma}..z3{dir beta}..z4{left}..z5{dir mi_beta}..z6{dir mi_beta}..
+ z7{left}..z8{dir gamma}..z9{dir gamma};
+ makelabel("T",z9);
+labels(range 1 thru 9);
+endchar;
+
+% i
+makewi(3,8ut,ang,mid);
+beginchar("i",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y3=mid;
+y2=bas;
+y4=4/7(top-mid)+mid;
+y5=6/7(top-mid)+mid;
+makex(1,0ut,ang,y1);
+makex(2,-2.7ut,ang,y2);
+makex(3,8ut,ang,y3);
+makex(4,1ut,ang,y4);
+makex(5,1.5ut,ang,y5);
+%
+draw z1..z2 ;
+draw z2..z3;
+draw z4{dir gamma}..z5{dir beta};
+labels(range 1 thru 7);
+endchar;
+
+% j
+makewi(5,7ut,ang,mid);
+beginchar("j",wi/hppp,21ut#,7ut#);
+% makelabel(str[w/hppp],(w/hppp,-10ut));
+pickup su_pen;
+y1=y5=mid;
+y2=g_bogen;
+y4=1/2z_bogen;
+y3=bot;
+y6=4/7(top-mid)+mid;
+y7=6/7(top-mid)+mid;
+makex(1,0ut,ang,y1);
+makex(2,-3.2ut,ang,y2);
+makex(3,-5.5ut,ang,y3);
+makex(4,-5ut,ang,y4);
+makex(5,7ut,ang,y5);
+makex(6,.8ut,ang,y6);
+makex(7,1.3ut,ang,y7);
+%
+draw z1{dir mi_beta}..z2{dir mi_beta}..z3{left}..z4{dir gamma}..z5{dir gamma};
+draw z6{dir gamma}..z7{dir beta};
+labels(range 1 thru 7);
+endchar;
+
+% k
+makewi(7,5ut,ang,an_mid);
+beginchar("k",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=mid;
+y2=y8=top;
+y3=Z_anf;
+y4=y6=an_mid+(3/14 an_mid);
+y5=bas;
+y7=an_mid;
+y9=I_anf;
+makex(1,0ut,ang,y1);
+makex(2,3.7 ut,ang,y2);
+makex(3,3ut,ang,y3);
+makex(4,1.3ut,ang,y4);
+makex(5,0ut,ang,y5);
+makex(6,-3ut,ang,y6);
+makex(7,5ut,ang,y7);
+makex(8,7.2ut,ang,y8);
+makex(9,7.8ut,ang,y9);
+%
+draw z1{dir gamma}..z2{dir beta};
+draw z2{dir mi_beta}..z5;
+draw z3{dir beta+dir 10}..z8{right}..z9..z4;
+draw z6..z7{dir delta};
+labels(range 1 thru 9);
+endchar;
+
+% l
+makewi(9,10ut,ang,an_bot);
+beginchar("l",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y9=mid;
+y2=Z_anf;
+y3=y5=I_anf;
+y4=top;
+y6=1/2 an_bot+an_bot;
+y7=bas;
+y8=an_bot-3/14 an_bot;
+makex(1,0ut,ang,y1);
+makex(2,2ut,ang,y2);
+makex(3,3.3ut,ang,y3);
+makex(4,1.8ut,ang,y4);
+makex(5,0ut,ang,y5);
+makex(6,-2.5ut,ang,y6);
+makex(7,-1.3ut,ang,y7);
+makex(8,1ut,ang,y8);
+makex(9,10ut,ang,y9);
+%
+draw z1{dir gamma}..z3{up}..z4{left}..z5{dir mi_beta}..z6{dir mi_beta}..
+ z7{right}..z8{dir gamma}..z9{dir gamma};
+labels(range 1 thru 9);
+endchar;
+
+% m
+makewi(7,24ut,ang,mid);
+beginchar("m",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y3=y5=y7=mid;
+y2=y4=y6=bas;
+makex(1,0ut,ang,y1);
+makex(2,-2ut,ang,y2);
+makex(3,8ut,ang,y3);
+makex(4,5.7ut,ang,y4);
+makex(5,16ut,ang,y5);
+makex(6,13.7ut,ang,y6);
+makex(7,24ut,ang,y7);
+%
+draw z1..z2 ; draw z2..z3; draw z3..z4; draw z3..z4; draw z4..z5;
+draw z5..z6; draw z6..z7;
+labels(range 1 thru 7);
+endchar;
+
+% n
+makewi(5,16.2ut,ang,mid);
+beginchar("n",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y3=y5=mid;
+y2=y4=bas;
+makex(1,0ut,ang,y1);
+makex(2,-2.5ut,ang,y2);
+makex(3,8.2ut,ang,y3);
+makex(4,6ut,ang,y4);
+makex(5,16.2ut,ang,y5);
+%
+draw z1..z2;
+draw z2..z3;
+draw z3..z4;
+draw z4..z5;
+labels(range 1 thru 5);
+endchar;
+
+
+% o
+makewi(6,8ut,ang,an_top);
+beginchar("o",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y5=mid;
+y6=an_top;
+y2=y4=2an_bot;
+y3=bas;
+makex(1,0ut,ang,y1);
+makex(2,-3.8ut,ang,y2);
+makex(3,-.5ut,ang,y3);
+makex(4,4ut,ang,y4);
+makex(5,3.3ut,ang,y5);
+makex(6,8ut,ang,y6);
+%
+draw z1{dir mi_gamma}..z2{dir mi_beta}..z3{right}..z4{dir beta}..z5;
+draw z5..z6{right};
+labels(range 1 thru 8);
+endchar;
+
+
+% o-Umlaut
+makewi(6,8ut,ang,an_top);
+beginchar(246,wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y5=mid;
+y6=an_top;
+y2=y4=2an_bot;
+y3=bas;
+y7=y8=3/7(top-mid)+mid;
+makex(1,0ut,ang,y1);
+makex(2,-3.8ut,ang,y2);
+makex(3,-.5ut,ang,y3);
+makex(4,4ut,ang,y4);
+makex(5,3.3ut,ang,y5);
+makex(6,8ut,ang,y6);
+makex(7,1.5ut,ang,y7);
+makex(8,4ut,ang,y8);
+%
+draw z1{dir mi_gamma}..z2{dir mi_beta}..z3{right}..z4{dir beta}..z5;
+draw z5..z6{right};
+draw z7..z7+(1ut,3ut);draw z8..z8+(1ut,3ut);
+labels(range 1 thru 8);
+endchar;
+
+% p
+makewi(9,13ut,ang,mid);
+beginchar("p",wi/hppp,14ut#,7ut#);
+pickup su_pen;
+y1=y4=y9=mid;
+y2=mid-2/7(mid);
+y5=mid-3/14(mid);
+y6=y8=3/2an_bot;
+y7=bas;
+y3=bot;
+makex(1,0ut,ang,y1);
+makex(2,-.7ut,ang,y2);
+makex(3,-3.5ut,ang,y3);
+makex(4,3ut,ang,y4);
+makex(5,5.5ut,ang,y5);
+makex(6,-.4ut,ang,y6);
+makex(7,1.7ut,ang,y7);
+makex(8,3.8ut,ang,y8);
+makex(9,13ut,ang,y9);
+%
+draw z1..z3;
+draw z2{dir beta}..z4{right}..z5{dir mi_beta}..z6;
+draw z6{right}..z7{right}..z8{dir gamma}..z9{dir gamma};
+labels(range 1 thru 9);
+endchar;
+
+% q
+makewi(7,16.1ut,ang,mid);
+beginchar("q",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y3=y4=y7=mid;
+y2=y6=bas;
+y5=bot;
+makex(1,0ut,ang,y1);
+makex(2,1ut,ang,y2);
+makex(3,5.3ut,ang,y3);
+makex(4,8.5ut,ang,y4);
+makex(5,5.0ut,ang,y5);
+makex(6,6.1ut,ang,y6);
+makex(7,16.1ut,ang,y7);
+%
+draw z1{dir mi_gamma}..z2{right}..z3{dir beta};
+draw z3..z4{dir gamma};
+draw z4..z5;
+draw z6..z7;
+labels(range 1 thru 7);
+endchar;
+
+% r
+makewi(5,10.3ut,ang,an_top);
+beginchar("r",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y4=mid;
+y5=an_top;
+y2=y3=bas;
+makex(1,0ut,ang,y1);
+makex(2,-2.5ut,ang,y2);
+makex(3,4.5ut,ang,y3);
+makex(4,5.7ut,ang,y4);
+makex(5,10.3ut,ang,y5);
+%
+draw z1..z2{dir mi_gamma};
+draw z2{dir gamma}..z3{dir mi_beta};
+draw z3{dir mi_alpha}..z4{dir beta};
+draw z4..z5{right};
+labels(range 1 thru 5);
+endchar;
+
+% s-am Ende
+makewi(4,2ut,ang,an_bot); % rundes s
+beginchar(28,wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=an_top;
+y2=mid;
+y3=an_top-1/14 mid;
+y4=y6=an_bot;
+y5=bas;
+y7=I_anf;
+y8=top;
+y9=Z_anf;
+%
+makex(1,-.5ut,ang,y1);
+makex(2,2ut,ang,y2);
+makex(3,4.1ut,ang,y3);
+makex(4,2ut,ang,y4);
+makex(5,-.5ut,ang,y5);
+makex(6,-2.2ut,ang,y6);
+makex(8,3.2ut,ang,y8);
+makex(7,0ut,ang,y7);
+makex(9,4.5ut,ang,y9);
+%
+draw z1{dir gamma}..z2{right}..z3{dir mi_beta}..z4..z5{left}..z6{dir beta}..
+ z7{dir beta}..z8{right}..z9{dir mi_beta};
+labels(range 1 thru 9);
+endchar;
+
+% s
+makewi(5,9.2ut,ang,an_bot);
+beginchar("s",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=y5=mid;
+y2=top;
+y3=bot;
+y4=bas;
+makex(1,0ut,ang,y1);
+makex(2,3.3ut,ang,y2);
+makex(3,-1.5ut,ang,y3);
+makex(4,0ut,ang,y4);
+makex(5,9.2ut,ang,y5);
+%
+draw z1{dir gamma}..z2{dir beta};
+draw z2{dir mi_beta}..z3;
+draw z4..z5;
+labels(range 1 thru 5);
+endchar;
+
+
+% sz
+makewi(10,6ut,ang,an_bot);
+beginchar(255,wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=mid;
+y2=top;
+y3=bot;
+y4=y6=Z_anf;
+y5=15/14I_anf;
+y7=mid;
+y8=an_mid;
+y9=1/2an_bot;
+y10=an_bot;
+makex(1,0ut,ang,y1);
+makex(2,3.3ut,ang,y2);
+makex(3,-1.5ut,ang,y3);
+makex(4,2.7ut,ang,y4);
+makex(5,5.5ut,ang,y5);
+makex(6,8ut,ang,y6);
+makex(7,4ut,ang,y7);
+makex(8,8ut,ang,y8);
+makex(9,1.5ut,ang,y9);
+makex(10,6ut,ang,y10);
+%
+draw z1{dir gamma}..z2{dir beta};
+draw z2{dir mi_beta}..z3;
+draw z4{dir beta}..z5{right}..z6{dir mi_beta}..z7{left};
+draw z7{right}..z8{dir mi_beta}..z9;
+labels(range 1 thru 10);
+endchar;
+
+% t
+makewi(5,4ut,ang,an_mid);
+beginchar("t",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=mid;
+y2=top;
+y3=bas;
+y4=an_mid+1/14an_mid;
+y5=an_mid;
+makex(1,0ut,ang,y1);
+makex(2,4ut,ang,y2);
+makex(3,-.7ut,ang,y3);
+makex(4,-3ut,ang,y4);
+makex(5,4ut,ang,y5);
+%
+draw z1{dir gamma}..z2{dir beta};
+draw z2..z3;
+draw z4..z5{dir delta};
+labels(range 1 thru 5);
+endchar;
+
+% u
+makewi(5,16.2ut,ang,mid);
+beginchar("u",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y3=y5=mid;
+y2=y4=bas;
+y6=5/7(top-mid)+mid;
+y7=4/7(top-mid)+mid;
+makex(1,0ut,ang,y1);
+makex(2,-2.5ut,ang,y2);
+makex(3,8.2ut,ang,y3);
+makex(4,6ut,ang,y4);
+makex(5,16.2ut,ang,y5);
+makex(6,2.2ut,ang,y6);
+makex(7,8.5ut,ang,y7);
+%
+draw z1..z2;
+draw z2..z3;
+draw z3..z4;
+draw z4..z5;
+draw z6..z7{dir gamma};
+labels(range 1 thru 7);
+endchar;
+
+
+% u-Umlaut
+makewi(5,16.2ut,ang,mid);
+beginchar(252,wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y3=y5=mid;
+y2=y4=bas;
+y6=3/7(top-mid)+mid;
+y7=3/7(top-mid)+mid;
+makex(1,0ut,ang,y1);
+makex(2,-2.5ut,ang,y2);
+makex(3,8.2ut,ang,y3);
+makex(4,6ut,ang,y4);
+makex(5,16.2ut,ang,y5);
+makex(6,2.5ut,ang,y6);
+makex(7,6.5ut,ang,y7);
+%
+draw z1..z2;
+draw z2..z3;
+draw z3..z4;
+draw z4..z5;
+draw z6..z6+(1ut,3ut);draw z7..z7+(1ut,3ut);
+labels(range 1 thru 7);
+endchar;
+% v
+makewi(6,15.5ut,ang,an_bot);
+beginchar("v",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y4=y6=mid;
+y2=y7=bas;
+y3=5/6an_top;
+y5=an_mid+1/7an_mid;
+makex(1,0ut,ang,y1);
+makex(2,-2.5ut,ang,y2);
+makex(3,2.9ut,ang,y3);
+makex(4,6.3ut,ang,y4);
+makex(5,8ut,ang,y5);
+makex(6,15.5ut,ang,y6);
+makex(7,4.3ut,ang,y7);
+%
+draw z1..z2{dir mi_gamma};
+draw z2{dir gamma}..z7;
+draw z7..z3{dir beta}..z4{right}..z5{dir mi_beta}..z7;
+draw z7..z6;
+labels(range 1 thru 7);
+endchar;
+
+% w
+makewi(9,22ut,ang,mid);
+beginchar("w",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y3=y7=y9=mid;
+y2=y4=y5=bas;
+y6=y8=an_mid+2/7(mid-an_mid);
+makex(1,0ut,ang,y1);
+makex(2,-2.5ut,ang,y2);
+makex(3,8ut,ang,y3);
+makex(4,5.5ut,ang,y4);
+makex(5,12ut,ang,y5);
+makex(6,10.5ut,ang,y6);
+makex(7,14.2ut,ang,y7);
+makex(8,15.7ut,ang,y8);
+makex(9,22ut,ang,y9);
+%
+draw z1..z2;
+draw z2..z3;
+draw z3..z4{dir mi_gamma};
+draw z4{dir gamma}..z5;
+draw z5..z6{dir beta}..z7{right}..z8{dir mi_beta}..z5;
+draw z5..z9;
+labels(range 1 thru 9);
+endchar;
+
+% x
+makewi(12,15.3ut,ang,mid);
+beginchar("x",wi/hppp,14ut#,7ut#);
+pickup su_pen;
+y1=y7=y12=mid;
+y2=y6=y8=an_mid;
+y3=y5=an_bot;
+y4=bas;
+y9=y11=g_bogen;
+y10=bot;
+makex(1,0ut,ang,y1);
+makex(2,0.8ut,ang,y2);
+makex(3,2.2ut,ang,y3);
+makex(4,4.2ut,ang,y4);
+makex(5,6.2ut,ang,y5);
+makex(6,7.3ut,ang,y6);
+makex(7,4.8ut,ang,y7);
+makex(8,0ut,ang,y8);
+makex(9,-0.9ut,ang,y9);
+makex(10,2ut,ang,y10);
+makex(11,4.8ut,ang,y11);
+makex(12,15.3ut,ang,y12);
+%
+draw z1{down}..z2..z3..z4{right}..z5..z6{dir beta}..z7{left}..
+ z8..z9..z10{right}..z11;
+draw z5..z12;
+labels(range 1 thru 12);
+endchar;
+
+% y
+makewi(10,17ut,ang,mid);
+beginchar("y",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y5=y10=mid;
+y2=y3=bas;
+y4=y6=an_mid+2/7(mid-an_mid);
+y7=G_bogen;
+y8=bot;
+y9=z_bogen;
+makex(1,0ut,ang,y1);
+makex(2,-2.6ut,ang,y2);
+makex(3,3.5ut,ang,y3);
+makex(4,2.8ut,ang,y4);
+makex(5,6.2ut,ang,y5);
+makex(6,8ut,ang,y6);
+makex(7,7ut,ang,y7);
+makex(8,5ut,ang,y8);
+makex(9,4.3ut,ang,y9);
+makex(10,17ut,ang,y10);
+%
+draw z1..z2{dir mi_gamma};
+draw z2{dir gamma}..z3;
+draw z3..z4{up}..z5{right}..z7{dir mi_beta}..z8{left}..z9{dir gamma}..z10;
+labels(range 1 thru 10);
+endchar;
+
+% z
+makewi(8,13.5ut,ang,mid);
+beginchar("z",wi/hppp,14ut#,7ut#);
+pickup su_pen;
+y1=y8=mid;
+y2=an_top-2/5(an_top-an_mid);
+y3=an_mid;
+y4=bas;
+y5=bot;
+y6=g_bogen;
+y7=z_bogen;
+makex(1,0ut,ang,y1);
+makex(2,5ut,ang,y2);
+makex(3,1ut,ang,y3);
+makex(4,5ut,ang,y4);
+makex(5,1.3ut,ang,y5);
+makex(6,-.6ut,ang,y6);
+makex(8,13.5ut,ang,y8);
+makex(7,1ut,ang,y7);
+%
+draw z1{right}..z2{dir mi_beta}..z3{left};
+draw z3{right}..z4{dir mi_beta}..z5{left}..z7{dir gamma}..z8;
+labels(range 1 thru 8);
+endchar;
+
+% tz
+makewi(12,18ut,ang,mid);
+beginchar(27,wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=y5=y12=mid;
+y2=top;
+y3=bas;
+y4=an_mid;
+y6=an_mid+3/14(mid-an_mid);
+y7=an_mid-3/10(an_mid-an_bot);
+y8=an_bot;
+y9=y11=G_bogen;
+y10=bot;
+makex(1,0ut,ang,y1);
+makex(2,3.3ut,ang,y2);
+makex(3,-.4ut,ang,y3);
+makex(4,0ut,ang,y4);
+makex(5,7.5ut,ang,y5);
+makex(6,10ut,ang,y6);
+makex(7,6.5ut,ang,y7);
+makex(8,9.6ut,ang,y8);
+makex(9,9ut,ang,y9);
+makex(10,6ut,ang,y10);
+makex(11,4.5ut,ang,y11);
+makex(12,18ut,ang,y12);
+%
+draw z1{dir gamma}..z2{dir beta};
+draw z2..z3;
+draw z4{dir gamma}..z5{right}..z6{dir mi_beta}..z7{left};
+draw z7{right}..z8..z9{dir mi_beta}..z10{left}..z11{dir gamma}..z12;
+labels(range 1 thru 12);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/gothic/su-spec.mf b/Master/texmf-dist/fonts/source/public/gothic/su-spec.mf
new file mode 100644
index 00000000000..347f81b9db0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/su-spec.mf
@@ -0,0 +1,555 @@
+% su-spec.mf -Input-File Zeichensatz
+
+makewi(8,13ut,ang,top);
+beginchar("0",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y7=y8=top;
+y2=y6=mid;
+y3=y5=an_bot;
+y4=bas;
+makex(1,7ut,ang,y1);
+makex(2,0ut,ang,y2);
+makex(3,1ut,ang,y3);
+makex(4,4ut,ang,y4);
+makex(5,6.5ut,ang,y5);
+makex(6,9ut,ang,y6);
+makex(7,8ut,ang,y7);
+makex(8,12ut,ang,y8);
+%
+draw z1{dir gamma-dir 10}..z2..z3..z4{right}..z5..z6..z7;
+draw z7..z8{dir gamma};
+labels(range 1 thru 8);
+endchar;
+
+
+makewi(2,8ut,ang,mid);
+beginchar("1",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=mid;
+y3=bas;
+y2=top;
+makex(1,0ut,ang,y1);
+makex(2,7ut,ang,y2);
+makex(3,3ut,ang,y3);
+%
+draw z1..z2;
+draw z2..z3;
+labels(range 1 thru 3);
+endchar;
+
+
+makewi(2,10ut,ang,mid);
+beginchar("2",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=Z_anf;
+y2=top;
+y3=mid;
+y4=an_mid;
+y5=y6=bas;
+y7=an_bot;
+makex(1,0ut,ang,y1);
+makex(2,4ut,ang,y2);
+makex(3,7ut,ang,y3);
+makex(4,3.3ut,ang,y4);
+makex(5,-2ut,ang,y5);
+makex(6,4.5ut,ang,y6);
+makex(7,7.3ut,ang,y7);
+%
+draw z1..z2{right}..z3..z4..z5{dir mi_beta};
+draw z5{dir gamma}..z6{right}..z7;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,9ut,ang,mid);
+beginchar("3",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=an_bot;
+y2=bas;
+y3=an_mid;
+y4=an_top;
+y5=y7=Z_anf;
+y6=top;
+makex(1,-2ut,ang,y1);
+makex(2,0ut,ang,y2);
+makex(3,6ut,ang,y3);
+makex(4,3ut,ang,y4);
+makex(5,8ut,ang,y5);
+makex(6,5ut,ang,y6);
+makex(7,0ut,ang,y7);
+%
+draw z7..z6{right}..z5..z4{left};
+draw z4{right}..z3..z2{left}..z1;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,10ut,ang,mid);
+beginchar("4",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=top;
+y2=an_mid;
+y3=1/2(mid-an_top)+an_top;
+y4=mid;
+y5=bas;
+makex(1,7ut,ang,y1);
+makex(2,0ut,ang,y2);
+makex(3,12ut,ang,y3);
+makex(4,8.3ut,ang,y4);
+makex(5,3.5ut,ang,y5);
+%
+draw z1..z2;
+draw z2{right}..z3;
+draw z4..{dir mi_beta}z5;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,11ut,ang,mid);
+beginchar("5",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y6=top;
+y2=y3=an_top;
+y4=bas;
+y5=an_bot;
+makex(1,5ut,ang,y1);
+makex(2,1ut,ang,y2);
+makex(3,8ut,ang,y3);
+makex(4,2ut,ang,y4);
+makex(5,-1ut,ang,y5);
+makex(6,10ut,ang,y6);
+%
+draw z1..z2;
+draw z2{dir gamma}..z3..z4{left}..z5;
+draw z1..z6{dir gamma};
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(1,12ut,ang,mid);
+beginchar("6",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=I_anf;
+y2=top;
+y3=O_bogen;
+y4=bas;
+y5=an_mid;
+y6=an_top;
+makex(1,11ut,ang,y1);
+makex(2,8.5ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,3ut,ang,y4);
+makex(5,8ut,ang,y5);
+makex(6,6ut,ang,y6);
+%
+draw z1..z2{left}..z3{dir mi_beta}..z4{right}..z5..
+ z6{left}..z3{dir mi_beta};
+labels(range 1 thru 6);
+endchar;
+
+
+makewi(2,10ut,ang,mid);
+beginchar("7",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=I_anf;
+y2=top;
+y3=bas;
+y4=an_top=y5;
+makex(1,0ut,ang,y1);
+makex(2,9ut,ang,y2);
+makex(3,3.5ut,ang,y3);
+makex(4,2ut,ang,y4);
+makex(5,8ut,ang,y5);
+%
+draw z1{dir beta}..z2{dir beta};
+draw z2..z3;
+draw z4..z5{dir beta-dir 90};
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(9,13ut,ang,mid);
+beginchar("8",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y8=y9=top;
+y2=y7=mid;
+y3=an_top;
+y4=y6=an_mid;
+y5=bas;
+makex(1,7ut,ang,y1);
+makex(2,3.4ut,ang,y2);
+makex(3,5ut,ang,y3);
+makex(4,7.5ut,ang,y4);
+makex(5,4ut,ang,y5);
+makex(6,0ut,ang,y6);
+makex(7,9ut,ang,y7);
+makex(8,9ut,ang,y8);
+makex(9,12ut,ang,y9);
+%
+draw z1{left}..z2..z3..z4..z5{left}..z6..z3..z7..z8;
+draw z8..z9{dir beta};
+labels(range 1 thru 9);
+endchar;
+
+
+makewi(2,10ut,ang,mid);
+beginchar("9",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=y3=mid;
+y4=top;
+y2=an_top;
+y5=y7=an_bot;
+y6=bas;
+makex(1,7.5ut,ang,y1);
+makex(2,4ut,ang,y2);
+makex(3,1.2ut,ang,y3);
+makex(4,5.2ut,ang,y4);
+makex(5,4.5ut,ang,y5);
+makex(6,1.3ut,ang,y6);
+makex(7,-1.5ut,ang,y7);
+%
+draw z1{dir mi_beta}..z2{left}..z3..z4{right}..z1{dir mi_beta}..
+ z5..z6{left}..z7;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,4ut,ang,mid);
+beginchar(131,wi/hppp,14ut#,0ut); % uebergang an_top{gamma} -> z
+pickup su_pen;
+y1=an_top;
+y2=mid;
+makex(1,0ut,ang,y1);
+makex(2,4ut,ang,y2);
+%
+draw z1{dir gamma}..z2{right};
+labels(range 1 thru 2);
+endchar;
+
+
+makewi(2,4ut,ang,mid);
+beginchar(132,wi/hppp,14ut#,0ut); % uebergang an_top{right} -> z
+pickup su_pen;
+y1=an_top;
+y2=mid;
+makex(1,0ut,ang,y1);
+makex(2,4ut,ang,y2);
+%
+draw z1{right}..z2{right};
+labels(range 1 thru 2);
+endchar;
+
+
+makewi(3,12ut,ang,mid);
+beginchar(133,wi/hppp,14ut#,0ut); % uberggang blank -> z
+pickup su_pen;
+y1=bas;
+y2=an_top;
+y3=mid;
+makex(1,0ut,ang,y1);
+makex(2,8.5ut,ang,y2);
+makex(3,12ut,ang,y3);
+%
+draw z1..z2..z3{right};
+labels(range 1 thru 3);
+endchar;
+
+
+makewi(3,7ut,ang,mid);
+beginchar(135,wi/hppp,14ut#,0ut); % uberggang an_mid -> z
+pickup su_pen;
+y1=an_mid;
+y2=an_top;
+y3=mid;
+makex(1,0ut,ang,y1);
+makex(2,3.5ut,ang,y2);
+makex(3,7ut,ang,y3);
+%
+draw z1..z2..z3{right};
+labels(range 1 thru 3);
+endchar;
+
+
+makewi(2,9ut,ang,mid);
+beginchar(128,wi/hppp,14ut#,0ut); %uebergang an_bot -> mid
+pickup su_pen;
+y1=an_bot;
+y2=mid;
+makex(1,0ut,ang,y1);
+makex(2,9ut,ang,y2);
+%
+draw z1..z2;
+labels(range 1 thru 7);
+endchar;
+
+makewi(2,4ut,ang,mid);
+beginchar(129,wi/hppp,14ut#,0ut); % uebergang an_top -> mid
+pickup su_pen;
+y1=an_top;
+y2=mid;
+makex(1,0ut,ang,y1);
+makex(2,4ut,ang,y2);
+%
+draw z1{right}..{dir gamma}z2;
+labels(range 1 thru 7);
+endchar;
+
+makewi(2,7ut,ang,mid);
+beginchar(130,wi/hppp,14ut#,0ut); % uebergang an_mid -> mid
+pickup su_pen;
+y1=an_mid;
+y2=mid;
+makex(1,0ut,ang,y1);
+makex(2,7ut,ang,y2);
+%
+draw z1{dir delta}..{dir gamma}z2;
+labels(range 1 thru 7);
+endchar;
+
+makewi(4,9ut,ang,mid);
+beginchar("+",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=an_top;
+y2=an_bot;
+y3=y4=an_mid;
+makex(1,5.3ut,ang,y1);
+makex(2,3ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,8.8ut,ang,y4);
+%
+draw z1..z2;
+draw z3..z4;
+labels(range 1 thru 4);
+endchar;
+
+
+makewi(4,9ut,ang,mid);
+beginchar("*",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=an_top;
+y2=an_bot;
+y3=y4=an_mid;
+y5=y6=6/7y1;
+y7=y8=9/7y2;
+makex(1,5.3ut,ang,y1);
+makex(2,4ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,8.8ut,ang,y4);
+makex(5,2ut,ang,y5);
+makex(6,8ut,ang,y6);
+makex(7,1ut,ang,y7);
+makex(8,6.8ut,ang,y8);
+%
+draw z1..z2;
+draw z3..z4;
+draw z5..z8;
+draw z6..z7;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,8ut,ang,mid);
+beginchar("-",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=y2=an_mid;
+makex(1,0ut,ang,y1);
+makex(2,8ut,ang,y2);
+%
+draw z1..z2;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,12.5ut,ang,mid);
+beginchar(134,wi/hppp,14ut#,0ut); % --
+pickup su_pen;
+y1=y2=an_mid;
+makex(1,0ut,ang,y1);
+makex(2,12.5ut,ang,y2);
+%
+draw z1..z2;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,9ut,ang,mid);
+beginchar(";",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=an_mid;
+y2=an_bot;
+y3=1/7bot;
+makex(1,2.5ut,ang,y1);
+makex(2,2.5ut,ang,y2);
+makex(3,1.5ut,ang,y3);
+%
+draw z2{dir mi_beta+dir 10}..z3{dir mi_beta};
+pickup su_pen_small;
+drawdot z1;
+labels(range 1 thru 3);
+endchar;
+
+
+makewi(2,9ut,ang,mid);
+beginchar(",",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y2=an_bot;
+y3=1/7bot;
+makex(2,2.5ut,ang,y2);
+makex(3,1.5ut,ang,y3);
+%
+draw z2{dir mi_beta+dir 10}..z3{dir mi_beta};
+pickup su_pen_small;
+drawdot z2;
+labels(range 2 thru 3);
+endchar;
+
+
+makewi(2,3ut,ang,mid);
+beginchar(".",wi/hppp,14ut#,0ut);
+y2=bas;
+makex(2,2ut,ang,y2);
+%
+pickup su_pen_small;
+drawdot z2;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,9ut,ang,top);
+beginchar("!",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=Z_anf;
+y2=an_mid;
+y3=bas;
+makex(1,4ut,ang,y1);
+makex(2,1ut,ang,y2);
+makex(3,0.5ut,ang,y3);
+%
+draw z1..z2;
+pickup su_pen_small;
+drawdot z3;
+labels(range 1 thru 3);
+endchar;
+
+
+makewi(2,4ut,ang,mid);
+beginchar(":",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=6/7an_top;;
+y2=an_bot;
+makex(1,1.5ut,ang,y1);
+makex(2,.3ut,ang,y2);
+%
+pickup su_pen_small;
+drawdot z1; drawdot z2;
+labels(range 1 thru 2);
+endchar;
+
+
+makewi(2,8ut,ang,top);
+beginchar("?",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=Z_anf;
+y2=top;
+y3=mid;
+y4=an_mid;
+y5=1/2an_bot;
+makex(1,1ut,ang,y1);
+makex(2,5.5ut,ang,y2);
+makex(3,7ut,ang,y3);
+makex(4,3.3ut,ang,y4);
+makex(5,3ut,ang,y5);
+%
+draw z1..z2{right}..z3..z4{dir mi_beta};
+pickup su_pen_small;
+drawdot z5;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,7ut,ang,mid);
+beginchar("=",wi/hppp,14ut#,0ut);
+pickup su_pen;
+y1=4/3an_mid=y2;
+y3=y4=2/3an_mid;
+makex(1,0ut,ang,y1);
+makex(2,6.5ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,6.5ut,ang,y4);
+%
+draw z1..z2{dir 5};
+draw z3..z4{dir 5};
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(2,6ut,ang,mid);
+beginchar("(",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=top;
+y2=bas;
+makex(1,5ut,ang,y1);
+makex(2,1ut,ang,y2);
+%
+draw z1{dir mi_gamma}..z2;
+labels(range 1 thru 2);
+endchar;
+
+
+makewi(2,6ut,ang,mid);
+beginchar(")",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=top;
+y2=bas;
+makex(1,5ut,ang,y1);
+makex(2,1ut,ang,y2);
+%
+draw z1..z2{dir mi_gamma};
+labels(range 1 thru 2);
+endchar;
+
+
+makewi(2,6ut,ang,mid);
+beginchar("/",wi/hppp,21ut#,0ut);
+pickup su_pen;
+y1=top;
+y2=bas;
+makex(1,5ut,ang,y1);
+makex(2,1ut,ang,y2);
+%
+draw z1..z2;
+labels(range 1 thru 2);
+endchar;
+
+
+makewi(2,6ut,ang,mid);
+beginchar(16,wi/hppp,21ut#,0ut); % einleitende Anfuehrungszeichen
+pickup su_pen;
+y1=an_bot;
+y2=an_bot;
+y3=y4=bas-1.5ut;
+makex(1,1ut,ang,y1);
+makex(2,3ut,ang,y2);
+makex(3,1ut,ang,y3);
+makex(4,3ut,ang,y4);
+%
+draw z1{dir mi_gamma+dir 20}..z3{dir mi_gamma};
+draw z2{dir mi_gamma+dir 20}..z4{dir mi_gamma};
+labels(range 1 thru 4);
+endchar;
+
+makewi(2,6ut,ang,mid);
+beginchar(17,wi/hppp,21ut#,0ut); %schliessendes Anfuehrungszeichen
+pickup su_pen;
+y1=y2=top;
+y3=top-1/2(top-mid)=y4;
+makex(1,1ut,ang,y1);
+makex(2,3ut,ang,y2);
+makex(3,1ut,ang,y3);
+makex(4,3ut,ang,y4);
+%
+draw z1{dir mi_gamma+dir 20}..z3{dir mi_gamma};
+draw z2{dir mi_gamma+dir 20}..z4{dir mi_gamma};
+labels(range 1 thru 4);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/su-upp.mf b/Master/texmf-dist/fonts/source/public/gothic/su-upp.mf
new file mode 100644
index 00000000000..6eeed919fb8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/su-upp.mf
@@ -0,0 +1,849 @@
+
+% su-upp.mf -Input-File Zeichensatz
+
+
+
+makewi(11,16ut,ang,an_bot); %A
+beginchar("A",wi/hppp,21ut#,0ut#); %A
+pickup su_pen;
+y1=y7=y8=top;
+y2=y6=mid;
+y3=y5=O_bogen;
+y4=y10=bas;
+y9=y11=an_bot;
+makex(1,7.5ut,ang,y1);
+makex(2,.5ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,4.5ut,ang,y4);
+makex(5,10.2ut,ang,y5);
+makex(6,12ut,ang,y6);
+makex(7,9ut,ang,y7);
+makex(8,16ut,ang,y8);
+makex(9,12ut,ang,y9);
+makex(10,13.5ut,ang,y10);
+makex(11,16ut,ang,y11);
+%
+draw z1{left}..z2..z3..z4{right}..z5..z6..z7;
+draw z7..z8{dir gamma};
+draw z8..z9{dir mi_beta}..z10..z11{dir gamma};
+labels(range 1 thru 11);
+endchar;
+
+
+makewi(11,16ut,ang,an_bot); %A
+beginchar(196,wi/hppp,27ut#,0ut#); %AE
+pickup su_pen;
+y1=y7=y8=top;
+y2=y6=mid;
+y3=y5=O_bogen;
+y4=y10=bas;
+y9=y11=an_bot;
+makex(1,7.5ut,ang,y1);
+makex(2,.5ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,4.5ut,ang,y4);
+makex(5,10.2ut,ang,y5);
+makex(6,12ut,ang,y6);
+makex(7,9ut,ang,y7);
+makex(8,16ut,ang,y8);
+makex(9,12ut,ang,y9);
+makex(10,13.5ut,ang,y10);
+makex(11,16ut,ang,y11);
+%
+draw z1{left}..z2..z3..z4{right}..z5..z6..z7;
+draw z7..z8{dir gamma};
+draw z8..z9{dir mi_beta}..z10..z11{dir gamma};
+y12=y13=top+6ut;
+makex(12,6ut,ang,y12);
+makex(13,10ut,ang,y13);
+draw z12..z12+(-.5ut,-3ut);
+draw z13..z13+(-.5ut,-3ut);
+labels(range 1 thru 13);
+endchar;
+
+
+
+makewi(13,16ut,ang,an_top); %B
+beginchar("B",wi/hppp,21ut#,0ut#); %B
+pickup su_pen;
+y1=Z_anf;
+y2=y12=mid;
+y3=y5=I_anf;
+y4=top;
+y6=y8=an_bot;
+y7=y10=bas;
+y9=L_o;
+y11=an_mid;
+y13=an_top;
+makex(1,2.5ut,ang,y1);
+makex(2,6.6ut,ang,y2);
+makex(3,10.4ut,ang,y3);
+makex(4,8.2ut,ang,y4);
+makex(5,6.7ut,ang,y5);
+makex(6,4ut,ang,y6);
+makex(7,1.7ut,ang,y7);
+makex(8,0ut,ang,y8);
+makex(9,2ut,ang,y9);
+makex(10,9ut,ang,y10);
+makex(11,13.2ut,ang,y11);
+makex(12,12.5ut,ang,y12);
+makex(13,16ut,ang,y13);
+%
+draw z1..z2{right}..z3..z4{left}..z5{dir mi_beta}..z6..z7{left}..
+ z8..z9{right}..z10{right}..z11..z12;
+draw z12..z13{right};
+labels(range 1 thru 13);
+endchar;
+
+makewi(9,13ut,ang,an_bot); %C
+beginchar("C",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=y2=top;
+y3=mid;
+y4=y6=y9=an_bot;
+y5=y8=bas;
+y7=L_o;
+makex(1,13ut,ang,y1);
+makex(2,8ut,ang,y2);
+makex(3,5ut,ang,y3);
+makex(4,4ut,ang,y4);
+makex(5,1.9ut,ang,y5);
+makex(6,0ut,ang,y6);
+makex(7,2.3ut,ang,y7);
+makex(8,9ut,ang,y8);
+makex(9,13ut,ang,y9);
+%
+draw z1{dir mi_gamma}..z2{left}..z3{dir mi_beta}..z4{dir mi_beta}..
+ z5{left}..z6..z7{right}..z8{right}..z9{dir gamma};
+labels(range 1 thru 9);
+endchar;
+
+
+makewi(12,18ut,ang,an_bot); %D
+beginchar("D",wi/hppp,14ut#,0ut#); %D
+pickup su_pen;
+y1=y5=bas;
+y2=y4=y6=an_mid;
+y3=y11=mid;
+y7=I_anf;
+y8=top;
+y9=Z_anf;
+y10=13/14mid;
+y12=an_bot;
+makex(1,0ut,ang,y1);
+makex(2,1.3ut,ang,y2);
+makex(3,7.4ut,ang,y3);
+makex(4,9.1ut,ang,y4);
+makex(5,13.5ut,ang,y5);
+makex(6,17ut,ang,y6);
+makex(7,17.4ut,ang,y7);
+makex(8,15.2ut,ang,y8);
+makex(9,12.2ut,ang,y9);
+makex(10,16ut,ang,y10);
+makex(11,20ut,ang,y11);
+makex(12,18ut,ang,y12);
+%
+draw z1..z2{dir beta}..z3{right}..z4..z5{right}..z6{dir beta}..z7..
+ z8{left}..z9..z10{right}..z11;
+labels(range 1 thru 12);
+endchar;
+
+
+
+makewi(10,7.5ut,ang,an_mid); %E
+beginchar("E",wi/hppp,21ut#,7ut#); %E
+pickup su_pen;
+y1=y3=Z_anf;
+y2=mid;
+y5=I_anf;
+y4=top;
+y6=y8=G_bogen;
+y7=bot;
+y9=15/14an_mid;
+y10=an_mid;
+makex(1,1.9ut,ang,y1);
+makex(2,7ut,ang,y2);
+makex(3,10.6ut,ang,y3);
+makex(4,8.8ut,ang,y4);
+makex(5,6.5ut,ang,y5);
+makex(6,3.3ut,ang,y6);
+makex(7,6ut,ang,y7);
+makex(8,9.6ut,ang,y8);
+makex(9,.5ut,ang,y9);
+makex(10,7.5ut,ang,y10);
+%
+draw z1..z2{right}..z3..z4{left}..z5..z6..z7{right}..z8{dir beta};
+draw z9..z10{dir delta};
+labels(range 1 thru 10);
+endchar;
+
+
+
+makewi(9,9ut,ang,an_bot); %F
+beginchar("F",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=y2=top;
+y3=I_anf;
+y4=an_bot;
+y5=bas;
+y6=1/2an_bot;
+y7=mid-3/28mid;
+y8=mid;
+y9=an_bot;
+makex(1,17ut,ang,y1);
+makex(2,11.8ut,ang,y2);
+makex(3,9.3ut,ang,y3);
+makex(4,5.5ut,ang,y4);
+makex(5,3ut,ang,y5);
+makex(6,0ut,ang,y6);
+makex(7,5ut,ang,y7);
+makex(8,12ut,ang,y8);
+makex(9,9ut,ang,y9);
+%
+draw z1{dir mi_beta}..z2{left}..z3{dir mi_beta}..z4..z5{left}..z6;
+draw z7{right}..z8{dir beta-dir 90};
+labels(range 1 thru 9);
+endchar;
+
+
+makewi(12,21ut,ang,mid); %G
+beginchar("G",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=y7=y8=top;
+y2=y6=y12=mid;
+y3=y5=O_bogen;
+y4=bas;
+y9=y11=G_bogen;
+y10=bot;
+makex(1,7.4ut,ang,y1);
+makex(2,1.4ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,4.6ut,ang,y4);
+makex(5,10ut,ang,y5);
+makex(6,12ut,ang,y6);
+makex(7,9ut,ang,y7);
+makex(8,16ut,ang,y8);
+makex(9,11ut,ang,y9);
+makex(10,8.3ut,ang,y10);
+makex(11,7ut,ang,y11);
+makex(12,21ut,ang,y12);
+%
+draw z1..z2{z3-z2}..z3..z4{right}..z5{z6-z5}..z6..z7;
+draw z7..z8{dir gamma};
+draw z8{dir mi_beta}..z9{dir mi_beta}..z10{left}..z11{dir gamma}..z12{dir gamma};
+labels(range 1 thru 12);
+endchar;
+
+makewi(13,14ut,ang,an_bot); %H
+beginchar("H",wi/hppp,21ut#,7ut#); %H
+pickup su_pen;
+y3=y1=Z_anf;
+y8=mid;
+y2=mid+5/14(top-mid);
+y5=I_anf;
+y4=top;
+y6=y7=bas;
+y9=an_top;
+y10=y12=g_bogen;
+y11=bot;
+y13=an_bot;
+makex(1,2ut,ang,y1);
+makex(2,6.8ut,ang,y2);
+makex(3,10ut,ang,y3);
+makex(4,8.2ut,ang,y4);
+makex(5,6.2ut,ang,y5);
+makex(6,2.3ut,ang,y6);
+makex(7,9.3ut,ang,y7);
+makex(8,11.2ut,ang,y8);
+makex(9,13.5ut,ang,y9);
+makex(10,12ut,ang,y10);
+makex(11,9.8ut,ang,y11);
+makex(12,8.2ut,ang,y12);
+makex(13,14ut,ang,y13);
+%
+draw z1..z2{right}..z3..z4{left}..z5..z6{dir mi_beta};
+draw z6{dir beta}..z7;
+draw z7{dir mi_alpha}..z8{right}..z9..z10..z11{left}..z12..z13{dir gamma};
+labels(range 1 thru 12);
+endchar;
+
+
+makewi(7,6.5ut,ang,an_bot); %I
+beginchar("I",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=I_anf;
+y2=y3=top;
+y4=U_bogen;
+y5=bas;
+y6=1/2an_bot;
+y7=an_bot;
+makex(1,1ut,ang,y1);
+makex(2,4ut,ang,y2);
+makex(3,9ut,ang,y3);
+makex(4,6.7ut,ang,y4);
+makex(5,3.5ut,ang,y5);
+makex(6,0ut,ang,y6);
+makex(7,6.5ut,ang,y7);
+%
+draw z1{dir beta}..z2{right}..z3{dir gamma};
+draw z3{dir mi_beta}..z4{dir mi_beta}..z5{left}..z6;
+labels(range 1 thru 7);
+endchar;
+
+
+makewi(7,7.3ut,ang,an_bot); %J
+beginchar("J",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=I_anf;
+y2=y3=top;
+y4=y6=g_bogen;
+y5=bot;
+y7=an_bot;
+makex(1,1ut,ang,y1);
+makex(2,4ut,ang,y2);
+makex(3,9.5ut,ang,y3);
+makex(4,5.7ut,ang,y4);
+makex(5,3.6ut,ang,y5);
+makex(6,2.4ut,ang,y6);
+makex(7,7.3ut,ang,y7);
+%
+draw z1{dir beta}..z2{right}..z3{dir gamma};
+draw z3{dir mi_beta}..z4{dir mi_beta}..z5{left}..z6{dir beta}..z7{dir gamma};
+labels(range 1 thru 7);
+endchar;
+
+makewi(14,18ut,ang,an_bot); %K
+beginchar("K",wi/hppp,21ut#,0ut#); %K
+pickup su_pen;
+y1=y2=top;
+y3=I_anf;
+y4=y6=y12=y14=an_bot;
+y5=y13=bas;
+y7=y11=an_mid;
+y8=Z_anf;
+y9=mid;
+y10=1/2(mid-an_mid)+an_mid;
+makex(1,16.5ut,ang,y1);
+makex(2,11.5ut,ang,y2);
+makex(3,9ut,ang,y3);
+makex(4,5ut,ang,y4);
+makex(5,2.7ut,ang,y5);
+makex(6,.4ut,ang,y6);
+makex(7,0ut,ang,y7);
+makex(8,13ut,ang,y8);
+makex(9,14.3ut,ang,y9);
+makex(10,10ut,ang,y10);
+makex(11,12.7ut,ang,y11);
+makex(12,13.8ut,ang,y12);
+makex(13,15.9ut,ang,y13);
+makex(14,18ut,ang,y14);
+%
+draw z1{dir mi_beta}..z2{left}..z3{dir mi_beta}..z4..z5{left}..z6..z7{dir beta}..
+ z8{dir beta-dir 90}..z9{dir mi_beta}..z10{left};
+draw z10{right}..z11..z12..z13{right}..z14{dir gamma};
+labels(range 1 thru 14);
+endchar;
+
+makewi(11,13ut,ang,an_bot); %L
+beginchar("L",wi/hppp,21ut#,0ut#); %L
+pickup su_pen;
+y1=Z_anf;
+y2=mid;
+y3=y5=I_anf;
+y4=top;
+y6=y8=y11=an_bot;
+y7=y10=bas;
+y9=L_o;
+makex(1,2.4ut,ang,y1);
+makex(2,6.5ut,ang,y2);
+makex(3,10.2ut,ang,y3);
+makex(4,8.1ut,ang,y4);
+makex(5,6.5ut,ang,y5);
+makex(6,4ut,ang,y6);
+makex(7,1.7ut,ang,y7);
+makex(8,0ut,ang,y8);
+makex(9,2.4ut,ang,y9);
+makex(10,9ut,ang,y10);
+makex(11,13ut,ang,y11);
+%
+draw z1..z2{right}..z3..z4{left}..z5{dir mi_beta}..z6..
+ z7{left}..z8..z9{right}..z10{right}..z11{dir gamma};
+labels(range 1 thru 11);
+endchar;
+
+
+
+makewi(18,28ut,ang,an_bot); %M
+beginchar("M",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=Z_anf;
+y2=y8=y14=y15=top;
+y3=y7=y9=y13=I_anf;
+y4=y6=y10=y18=an_bot;
+y12=3/2an_bot;
+y5=y11=y17=bas;
+y16=U_bogen;
+makex(1,1ut,ang,y1);
+makex(2,5.2ut,ang,y2);
+makex(3,7ut,ang,y3);
+makex(4,6ut,ang,y4);
+makex(5,4.1ut,ang,y5);
+makex(6,2ut,ang,y6);
+makex(7,6.3ut,ang,y7);
+makex(8,12.2ut,ang,y8);
+makex(9,16.1ut,ang,y9);
+makex(10,16.5ut,ang,y10);
+makex(11,13.8ut,ang,y11);
+makex(12,11.6ut,ang,y12);
+makex(13,17.2ut,ang,y13);
+makex(14,20.5ut,ang,y14);
+makex(15,26.7ut,ang,y15);
+makex(16,23.5ut,ang,y16);
+makex(17,25.0ut,ang,y17);
+makex(18,28ut,ang,y18);
+%
+draw z1..z2{right}..z3..z4{dir mi_beta}..z5{left}..z6..z7..z8{right}..
+ z9..z10..z11{left}..z12..z13..z14{right}..z15{dir gamma};
+draw z15{dir mi_beta}..z16{dir mi_beta}..z17{right}..z18{dir gamma};
+labels(range 1 thru 18);
+endchar;
+
+
+makewi(12,16ut,ang,an_bot); %N
+beginchar("N",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=Z_anf;
+y2=y8=y9=top;
+y3=y7=I_anf;
+y4=y6=y12=an_bot;
+y5=y11=bas;
+y10=U_bogen;
+makex(1,1ut,ang,y1);
+makex(2,5.2ut,ang,y2);
+makex(3,7ut,ang,y3);
+makex(4,6.3ut,ang,y4);
+makex(5,4.2ut,ang,y5);
+makex(6,1.5ut,ang,y6);
+makex(7,6ut,ang,y7);
+makex(8,10.3ut,ang,y8);
+makex(9,15.4ut,ang,y9);
+makex(10,12.3ut,ang,y10);
+makex(11,13.5ut,ang,y11);
+makex(12,16ut,ang,y12);
+%
+draw z1..z2{right}..z3..z4{dir mi_beta}..z5{left}
+ ..z6..z7{dir gamma}..z8{right}..z9{dir gamma};
+draw z9{dir mi_beta}..z10{dir mi_beta}..z11{right}..z12{dir gamma};
+labels(range 1 thru 12);
+endchar;
+
+
+makewi(5,11ut,ang,an_bot); %O
+beginchar("O",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=y7=y8=top;
+y2=y6=mid;
+y3=y5=O_bogen;
+y4=bas;
+makex(1,7.5ut,ang,y1);
+makex(2,1.3ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,4.5ut,ang,y4);
+makex(5,11ut,ang,y5);
+makex(6,11.8ut,ang,y6);
+makex(7,9ut,ang,y7);
+makex(8,17ut,ang,y8);
+%
+draw z1{dir mi_gamma-dir 10}..z2..z3..z4{right}..z5..z6..z7;
+draw z7..z8{dir gamma};
+labels(range 1 thru 8);
+endchar;
+
+
+makewi(5,11ut,ang,an_bot); %OE
+beginchar(214,wi/hppp,27ut#,0ut#);
+pickup su_pen;
+y1=y7=y8=top;
+y2=y6=mid;
+y3=y5=O_bogen;
+y4=bas;
+makex(1,7.5ut,ang,y1);
+makex(2,1.3ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,4.5ut,ang,y4);
+makex(5,11ut,ang,y5);
+makex(6,11.8ut,ang,y6);
+makex(7,9ut,ang,y7);
+makex(8,17ut,ang,y8);
+%
+draw z1{dir mi_gamma-dir 10}..z2..z3..z4{right}..z5..z6..z7;
+draw z7..z8{dir gamma};
+y12=y13=top+6ut;
+makex(12,6ut,ang,y12);
+makex(13,10ut,ang,y13);
+draw z12..z12+(-.5ut,-3ut);
+draw z13..z13+(-.5ut,-3ut);
+labels(range 1 thru 8,12,13);
+endchar;
+
+makewi(11,10.3ut,ang,an_bot); %P
+beginchar("P",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=I_anf;
+y2=y4=y7=top;
+y5=bot;
+y6=mid;
+y8=Z_anf;
+y9=y10=3/2an_bot;
+y11=an_bot;
+makex(1,0ut,ang,y1);
+makex(2,2ut,ang,y2);
+makex(4,9ut,ang,y4);
+makex(5,4.6ut,ang,y5);
+makex(6,8ut,ang,y6);
+makex(7,14.7ut,ang,y7);
+makex(8,17.4ut,ang,y8);
+makex(9,6.2ut,ang,y9);
+makex(10,3ut,ang,y10);
+makex(11,10.3ut,ang,y11);
+%
+draw z1{dir beta}..z2{right}..z4{dir gamma};
+draw z4{dir mi_beta}..z5;
+draw z6{dir beta}..z7{right}..z8{dir mi_beta}..z9;
+draw z10..z11{dir gamma};
+labels(range 1 thru 11);
+endchar;
+
+
+makewi(10,13ut,ang,an_bot); %Q
+beginchar("Q",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=y7=y8=top;
+y2=y6=mid;
+y3=y5=O_bogen;
+y4=bas;
+y9=bot;
+makex(1,7.5ut,ang,y1);
+makex(2,1.5ut,ang,y2);
+makex(3,0ut,ang,y3);
+makex(4,4.6ut,ang,y4);
+makex(5,11ut,ang,y5);
+makex(6,11.8ut,ang,y6);
+makex(7,9ut,ang,y7);
+makex(8,16ut,ang,y8);
+makex(9,11.5ut,ang,y9);
+%
+draw z1{dir mi_gamma-dir 10}..z2..z3..z4{right}..z5..z6{z6-z5}..z7;
+draw z7..z8{dir gamma};
+draw z8..z9;
+labels(range 1 thru 10);
+endchar;
+
+makewi(13,17.5ut,ang,an_bot); %R
+beginchar("R",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=Z_anf;
+y2=y7=top;
+y3=y5=y11=y13=an_bot;
+y4=y12=bas;
+y6=y23=y8=I_anf;
+y9=mid;
+y10=an_top;
+makex(1,1ut,ang,y1);
+makex(2,4.8ut,ang,y2);
+makex(23,7ut,ang,y23);
+makex(3,6.3ut,ang,y3);
+makex(4,4ut,ang,y4);
+makex(5,1.7ut,ang,y5);
+makex(6,5.8ut,ang,y6);
+makex(7,10.5ut,ang,y7);
+makex(8,14.3ut,ang,y8);
+makex(9,8ut,ang,y9);
+makex(10,10.7ut,ang,y10);
+makex(11,13.5ut,ang,y11);
+makex(12,15.5ut,ang,y12);
+makex(13,17.5ut,ang,y13);
+%
+draw z1{dir beta}..z2{right}..z23..z3{dir mi_beta}..z4{left}..z5..z6..
+ z7{right}..z8{dir mi_beta}..z9{left};
+draw z9{right}..z10{z11-z10}..z11..z12{right}..z13{dir gamma};
+labels(range 1 thru 13,23);
+endchar;
+
+
+makewi(10,8ut,ang,an_bot); %S
+beginchar("S",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=Z_anf;
+y2=y8=y9=top;
+y3=y7=I_anf;
+y4=y6=an_bot;
+y5=y10=bas;
+y11=5/7an_mid;
+y12=an_mid;
+makex(1,1ut,ang,y1);
+makex(2,5ut,ang,y2);
+makex(3,7ut,ang,y3);
+makex(4,6ut,ang,y4);
+makex(5,4.ut,ang,y5);
+makex(6,1.3ut,ang,y6);
+makex(7,6ut,ang,y7);
+makex(8,10.2ut,ang,y8);
+makex(9,15.7ut,ang,y9);
+makex(10,12ut,ang,y10);
+makex(11,10ut,ang,y11);
+makex(12,17ut,ang,y12);
+%
+draw z1{dir beta}..z2{right}..z3..z4{dir mi_beta}..z5{left}..z6..z7..z8{right}..z9{dir gamma};
+labels(range 1 thru 9);
+endchar;
+
+
+makewi(6,13ut,ang,an_mid); %T
+beginchar("T",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=I_anf;
+y2=y3=top;
+y4=bas;
+y5=6/7an_mid;
+y6=an_mid;
+makex(1,1.3ut,ang,y1);
+makex(2,3.5ut,ang,y2);
+makex(3,9.5ut,ang,y3);
+makex(4,6ut,ang,y4);
+makex(5,4ut,ang,y5);
+makex(6,13ut,ang,y6);
+%
+draw z1{dir beta}..z2{right}..z3{dir gamma};
+draw z3..z4;
+draw z5..z6{dir delta};
+labels(range 1 thru 6);
+endchar;
+
+
+makewi(12,17ut,ang,an_bot); %ST
+beginchar(29,wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=Z_anf;
+y2=y8=y9=top;
+y3=y7=I_anf;
+y4=y6=an_bot;
+y5=y10=bas;
+y11=5/7an_mid;
+y12=an_mid;
+makex(1,1ut,ang,y1);
+makex(2,5ut,ang,y2);
+makex(3,7ut,ang,y3);
+makex(4,6ut,ang,y4);
+makex(5,4.ut,ang,y5);
+makex(6,1.3ut,ang,y6);
+makex(7,6ut,ang,y7);
+makex(8,10.2ut,ang,y8);
+makex(9,15.7ut,ang,y9);
+makex(10,12ut,ang,y10);
+makex(11,10ut,ang,y11);
+makex(12,17ut,ang,y12);
+%
+draw z1{dir beta}..z2{right}..z3..z4{dir mi_beta}..z5{left}..z6..z7..z8{right}..z9{dir gamma};
+draw z9..z10;
+draw z11..z12{dir delta};
+labels(range 1 thru 12);
+endchar;
+
+
+
+makewi(11,16ut,ang,an_bot); %U
+beginchar("U",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=y3=Z_anf;
+y2=y7=y8=top;
+y4=y6=y9=U_bogen;
+y5=y10=bas;
+y11=an_bot;
+makex(1,0ut,ang,y1);
+makex(2,3ut,ang,y2);
+makex(3,4.2ut,ang,y3);
+makex(4,1.2ut,ang,y4);
+makex(5,4ut,ang,y5);
+makex(6,9ut,ang,y6);
+makex(7,12ut,ang,y7);
+makex(8,16ut,ang,y8);
+makex(9,12.6ut,ang,y9);
+makex(10,14ut,ang,y10);
+makex(11,16ut,ang,y11);
+%
+draw z1{dir beta}..z2{right}..z3{dir mi_beta}..z4{dir mi_beta}..z5{right}..z6..z7{dir beta};
+draw z7..z8{dir beta};
+draw z8{dir mi_beta}..z9{dir mi_beta}..z10{right}..z11{dir gamma};
+labels(range 1 thru 11);
+endchar;
+
+makewi(11,16ut,ang,an_bot); %UE
+beginchar(220,wi/hppp,27ut#,0ut#);
+pickup su_pen;
+y1=y3=Z_anf;
+y2=y7=y8=top;
+y4=y6=y9=U_bogen;
+y5=y10=bas;
+y11=an_bot;
+makex(1,0ut,ang,y1);
+makex(2,3ut,ang,y2);
+makex(3,4.2ut,ang,y3);
+makex(4,1.2ut,ang,y4);
+makex(5,4ut,ang,y5);
+makex(6,9ut,ang,y6);
+makex(7,12ut,ang,y7);
+makex(8,16ut,ang,y8);
+makex(9,12.6ut,ang,y9);
+makex(10,14ut,ang,y10);
+makex(11,16ut,ang,y11);
+%
+draw z1{dir beta}..z2{right}..z3{dir mi_beta}..z4{dir mi_beta}..z5{right}..z6..z7{dir beta};
+draw z7..z8{dir beta};
+draw z8{dir mi_beta}..z9{dir mi_beta}..z10{right}..z11{dir gamma};
+y12=y13=top+6ut;
+makex(12,6ut,ang,y12);
+makex(13,10ut,ang,y13);
+draw z12..z12+(-.5ut,-3ut);
+draw z13..z13+(-.5ut,-3ut);
+labels(range 1 thru 13);
+endchar;
+
+
+
+makewi(9,12ut,ang,an_bot); %V
+beginchar("V",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=y3=y6=y8=Z_anf;
+y2=y7=top;
+y4=y5=bas;
+makex(1,0ut,ang,y1);
+makex(2,4.3ut,ang,y2);
+makex(3,6.3ut,ang,y3);
+makex(4,3ut,ang,y4);
+makex(5,10.2ut,ang,y5);
+makex(6,9ut,ang,y6);
+makex(7,11.7ut,ang,y7);
+makex(8,14ut,ang,y8);
+%
+draw z1{dir gamma}..z2{right}..z3{dir mi_beta}..z4{dir mi_beta};
+draw z4{dir beta}..z5{z5-z3};
+draw z5{z3-z5}..z6{dir beta}..z7{right}..z8..z5;
+labels(range 1 thru 8);
+endchar;
+
+
+makewi(11,18ut,ang,bas); %W
+beginchar("W",wi/hppp,21ut#,0ut#);
+pickup su_pen;
+y1=Z_anf; y67=y112=mid;
+y2=y8=y13=top;
+y3=y7=y9=y12=y14=I_anf;
+y4=y6=an_bot;
+y5=y10=y11=bas;
+makex(1,1ut,ang,y1); makex(67,2.5ut,ang,y67);
+makex(2,5ut,ang,y2); makex(112,15.5ut,ang,y112);
+makex(3,7.5ut,ang,y3);
+makex(4,6.4ut,ang,y4);
+makex(5,4ut,ang,y5);
+makex(6,1.7ut,ang,y6);
+makex(7,5.2ut,ang,y7);
+makex(8,10.5ut,ang,y8);
+makex(9,13.4ut,ang,y9);
+makex(10,10ut,ang,y10);
+makex(11,16ut,ang,y11);
+makex(12,15.9ut,ang,y12);
+makex(13,19ut,ang,y13);
+makex(14,21.5ut,ang,y14);
+%
+draw z1..z2{right}..z3..z4..z5{left}..z6..z67..z7..z8{right}..z9..z10{dir mi_beta};
+draw z10{dir beta}..z11;
+draw z11..z112..z12..z13{right}..z14..z11;
+labels(range 1 thru 14,67,112);
+endchar;
+
+
+
+makewi(14,13ut,ang,an_bot); %X
+beginchar("X",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=y3=Z_anf;
+y2=y10=top;
+y4=y6=y12=U_bogen;
+y5=y13=bas;
+y7=an_mid;
+y8=mid;
+y9=y11=I_anf;
+y14=an_bot;
+makex(1,2.7ut,ang,y1);
+makex(2,6ut,ang,y2);
+makex(3,8ut,ang,y3);
+makex(4,5.7ut,ang,y4);
+makex(5,3.7ut,ang,y5);
+makex(6,1.3ut,ang,y6);
+makex(7,1ut,ang,y7);
+makex(8,9.2ut,ang,y8);
+makex(9,15ut,ang,y9);
+makex(10,13ut,ang,y10);
+makex(11,10.2ut,ang,y11);
+makex(12,8ut,ang,y12);
+makex(13,10ut,ang,y13);
+makex(14,13ut,ang,y14);
+%
+draw z1{dir beta}..z2{right}..z3{z4-z3}..z4..z5{left}..z6..z7{dir beta}
+ ..z8..z9{dir beta}..z10{left}..z11{dir mi_beta}..z12{dir mi_beta}..z13{right}..z14{dir gamma};
+labels(range 1 thru 14);
+endchar;
+
+
+makewi(12,15.8ut,ang,an_bot); %Y
+beginchar("Y",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=Z_anf;
+y2=y7=top;
+y3=y6=y8=I_anf;
+y4=y5=bas;
+y9=y11=g_bogen;
+y10=bot;
+y12=an_bot;
+makex(1,0ut,ang,y1);
+makex(2,5.5ut,ang,y2);
+makex(3,7ut,ang,y3);
+makex(4,3.2ut,ang,y4);
+makex(5,9.8ut,ang,y5);
+makex(6,9ut,ang,y6);
+makex(7,11.8ut,ang,y7);
+makex(8,14.3ut,ang,y8);
+makex(9,13.3ut,ang,y9);
+makex(10,11.2ut,ang,y10);
+makex(11,10ut,ang,y11);
+makex(12,15.8ut,ang,y12);
+%
+draw z1{dir beta}..z2{right}..z3{dir mi_beta}..z4{dir mi_beta};
+draw z4{dir beta}..z5;
+draw z5..z6{dir beta}..z7{right}..z8..z9{dir mi_beta}..z10{left}..z11{dir beta}..z12{dir gamma};
+labels(range 1 thru 12);
+endchar;
+
+makewi(7,10.5ut,ang,an_mid); %Z
+beginchar("Z",wi/hppp,21ut#,7ut#);
+pickup su_pen;
+y1=Z_anf;
+y2=top;
+y3=11/14*mid;
+y4=y6=g_bogen;
+y5=bot;
+y7=an_mid;
+makex(1,1ut,ang,y1);
+makex(2,5.5ut,ang,y2);
+makex(3,3.5ut,ang,y3);
+makex(4,2ut,ang,y4);
+makex(5,3.5ut,ang,y5);
+makex(6,6.3ut,ang,y6);
+makex(7,10.5ut,ang,y7);
+%
+draw z1{dir beta}..z2{right}..z3{left};
+draw z3{right}..z6..z5{left}..z4..{dir delta}z7;
+labels(range 1 thru 7);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/suet14.mf b/Master/texmf-dist/fonts/source/public/gothic/suet14.mf
new file mode 100644
index 00000000000..b0ab5d24cd3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/suet14.mf
@@ -0,0 +1,97 @@
+% SUET Zeichensatz
+%
+%
+% ---------------------
+%
+% Wuensche, Fehler und Anregungen bitte an:
+%
+% B. Ludewig, Uni Siegen, HRZ, Hoelderlinstr. 3, 5900 Siegen.
+%
+% Ludewig@hrz.uni-siegen.dbp.de
+% oder
+% GZ006@DSIHRZ51.BITNET
+%
+% plain
+
+font_identifier "SUET14"; font_size 14pt#;
+font_coding_scheme:="SUETTERLIN Text";
+
+mode_setup;
+boolean serifs,monospace;
+%
+xpt#:=pt#;
+monospace:=false;
+serifs:=true;
+%
+ut#:=0.4;
+ut=ut#*hppp;
+% % <-----hier kann gedreht werden
+numeric top,mid,base,bot,an_top,an_mid,an_bot,ang;
+numeric Z_anf,I_anf,o_bogen,L_o,U_bogen,g_bogen,G_bogen,z_bogen;
+numeric alpha,beta,gamma,delta,mi_alpha,mi_beta,mi_gamma,mi_delta;
+ang:=0;
+alpha=-45-ang;mi_alpha=-45+180-ang;
+beta=80-ang;mi_beta=80+180-ang;
+gamma=50-ang;mi_gamma=50+180-ang;
+delta=30-ang;mi_delta=30+180-ang;
+%
+%
+top:=21ut; mid:=14ut; bas:=0ut; bot:=-7ut;
+%
+an_top=12ut; an_mid=7ut; an_bot=2ut;
+%
+Z_anf=17ut; I_anf=18ut; O_bogen=5ut; L_o=4.5ut; U_bogen=3ut;
+g_bogen=-5ut; G_bogen=-4ut;z_bogen=-3ut;
+%
+pen su_pen;
+su_pen := pencircle xscaled 1.2ut yscaled 1.2ut;
+
+pen su_pen_small;
+%su_pen_small := pencircle scaled 1.51ut;
+su_pen_small := pencircle scaled 1.31ut;
+
+pen su_pen_big;
+su_pen_big := pencircle scaled 4.51ut;
+
+def makex(suffix i)(expr xnull,ang,yy)=
+ if yy=0: wi:=x.i:=xnull;
+ else: wi:=x.i:=((sind ang*yy)/cosd ang)+xnull; fi
+enddef;
+
+def makewi(suffix i)(expr xnull,ang,yy)=
+ if yy=0: wi:=x.i:=xnull;
+ else: wi:=x.i:=((sind ang*yy)/cosd ang)+xnull; fi
+enddef;
+
+def makebox (text r) =
+ for y=-7ut step 1ut until 21ut: r((0,y),(28ut,y)); endfor;
+ for x=-2ut step 1ut until 28ut: r((x,-7ut),(x,21ut)); endfor;
+ for y=bas+.5,bas-.5,an_bot+.5,an_mid+.5,an_top+.5,mid-.5,mid+.5,
+ Z_anf,Z_anf+.5,I_anf,I_anf+.5,O_bogen,O_bogen+.5,L_o,L_o+.5,
+ U_bogen,U_bogen+.5,g_bogen,g_bogen+.5,G_bogen,G_bogen+.5,
+ z_bogen,z_bogen+.5: r((0,y),(28ut,y)); endfor;
+ z90=(32ut,mid);makelabel("mid",z90);makelabel("top",(32ut,top));
+ makelabel("an_mid",(32ut,an_mid));makelabel("an_bot",(32ut,an_bot));
+ makelabel("an_top",(32ut,an_top));makelabel("bot",(32ut,bot));
+ makelabel("Z_anf",(32ut,Z_anf)); makelabel("I_anf",(32ut,I_anf));
+ makelabel("O_bo",(32ut,O_bogen)); makelabel("L_o",(32ut,L_o));
+ makelabel("U_bo",(32ut,U_bogen)); makelabel("g_bo",(32ut,g_bogen));
+ makelabel("G_bo",(32ut,G_bogen)); makelabel("z_bo",(32ut,z_bogen));
+ makelabel("0",(0,24ut)); makelabel("5",(5ut,24ut)); makelabel("10",(10ut,24ut));
+ makelabel("15",(15ut,24ut)); makelabel("20",(20ut,24ut));
+ makelabel("25",(25ut,24ut));
+ makelabel(str[w],(w,-10ut));
+enddef;
+
+%
+input su-low;
+input su-spec;
+input su-upp;
+%
+font_quad 33pt#;
+font_normal_space 6.6pt#;
+font_normal_stretch 3pt#;
+font_normal_shrink 1pt#;
+%
+input su-lig;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/gothic/xxfrak.mf b/Master/texmf-dist/fonts/source/public/gothic/xxfrak.mf
new file mode 100644
index 00000000000..b90eda26dad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/xxfrak.mf
@@ -0,0 +1,168 @@
+u#:=20/36pt#; % unit width
+lower_u#:=20/36pt#;
+
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=167/36pt#; % height of lowercase without ascenders
+%x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=7/36pt#; % lowercase hairline breadth
+%hair#:=9/36pt#; % lowercase hairline breadth
+%stem#:=25/36pt#; % lowercase stem breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+%cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_hair#:=8/36pt#;
+cap_amount#:=8/36pt#;
+%cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_stem#:=32/36pt#;
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+numeric usual_right, usual_left;
+usual_right#:=0.5u#;
+usual_left#:=0.3u#;
+
+granularity:=1.01;
+%aspect_ratio:=2/3aspect_ratio;
+
+mode_setup;
+font_setup;
+cap_amount:=8/36pt;
+foot:=0.207x_height;
+num_height:=1.242x_height;
+cap_kern:=4/36pt;
+boolean ligature; ligature:=false;
+numeric alpha; alpha:=0;
+numeric coef, gencoef; gencoef:=1;
+
+% The positions of characters depending on cm or dc layouts
+
+if dc_layout>0:
+ ae_ligature:=oct"346";
+ Ae_ligature:=oct"306";
+ ff_ligature:=oct"033";
+ ss_ligature:=oct"034";
+ st_ligature:=oct"035";
+ sf_ligature:=oct"036";
+ tz_ligature:=oct"037";
+ ch_ligature:=oct"027";
+ ck_ligature:=oct"275";
+ s_final:=oct"276";
+ en_dash:=oct"025";
+ em_dash:=oct"026";
+ eszet:=oct"377";
+ open_gaens:=oct"022";
+else:
+ ae_ligature:=oct"032";
+ Ae_ligature:=oct"035";
+ ff_ligature:=oct"013";
+ ss_ligature:=oct"014";
+ st_ligature:=oct"015";
+ sf_ligature:=oct"016";
+ tz_ligature:=oct"017";
+ ch_ligature:=oct"012";
+ ck_ligature:=oct"275";
+ s_final:=oct"276";
+ en_dash:=oct"173";
+ em_dash:=oct"174";
+ eszet:=oct"031";
+ open_gaens:=oct"134";
+fi;
+
+%granularity:=1.01;
+
+%readfrom("yfrakbase"); % -sl 15-3-1991
+
+%if proofing>1: generate ycurrent; fi % switch to the driver file%
+
+generate cmfrakmis; % -sl 15-3-1991 / 24-3-1994 DT
+
+generate cmfraklow; % -sl 15-3-1991 / 25-3-94 DT
+
+generate cmfrakupp; % -sl 15-3-1991 / 24-3-1994 DT
+
+generate cmfraknum;
+
+generate cmfrakoth; % -sl 15-3-1991 / 24-3-1994 DT
+
+font_slant slant; font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+ligtable "c": "h"=:ch_ligature, "k"=:ck_ligature;
+ligtable "f": "f"=:ff_ligature;
+ligtable "s": "z"=:eszet,
+ ":"=:s_final, "s"=:ss_ligature, "t"=:st_ligature,
+"f"=:sf_ligature, "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u#,
+"l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#;
+ %, " "=:s_final " ";
+ligtable "t": "z"=:tz_ligature;
+ligtable oct"042": "a"=:oct"344", "e"=:oct"353", "o"=:oct"366", "u"=:oct"374",
+ "s"=:eszet;
+% ligtable "*": "a"=:oct"211", "e"=:oct"220", "o"=:oct"231", "u"=:oct"236";
+ligtable "`": "`"=:open_gaens;
+ligtable "'": "'"=:oct"042";
+ligtable "-": "-"=:en_dash;
+ligtable en_dash: "-"=:em_dash;
+ligtable ss_ligature: "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u#
+, "l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yfrabase.mf b/Master/texmf-dist/fonts/source/public/gothic/yfrabase.mf
new file mode 100644
index 00000000000..d7a84eebc2d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yfrabase.mf
@@ -0,0 +1,73 @@
+def n_foot(suffix $) =
+w':=7.806u; penpos$.1(hair,90); penpos$.2(hair,0);
+penpos$.3(hair,-90);
+y$.1=y$.3=0.5foot; y$.2=-apex_o;
+x$.1=x$l-1/20w'; x$.3=x$r+1/20w';
+x$.2=x$;
+filldraw z$.2r{dir75}..z$.3r{dir15}--
+z$.3l{dir165}..z$r{up}--z$l{down}..
+z$.1r{dir195}--z$.1l{dir-15}..z$.2l{dir-65}
+--z$.2r & cycle;
+enddef;
+
+def e_umlaut(suffix $) =
+penpos$.1(2u,45); z$.1=z$;
+pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30;
+z$.2=z$.1r; z$.3=z$.1l; rt x$.4=rt x$.2; top y$.4=y$;
+draw z$.3--z$.2..z$.3..z$.4;
+enddef;
+
+def pointpoint =
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+penstroke z1e--z2e;
+enddef;
+
+
+
+
+def old_e_umlaut(suffix $) =
+numeric ww;
+ww:=2u; penpos$.1(hair,147);
+penpos$.2(1.5hair,90); penpos$.3(2.5hair,0);
+penpos$.4(1.2hair,-90);
+penpos$.5(hair,-147);
+penpos$.6(hair,-57); penpos$.7(hair,-57);
+z$.1=z$+(0.4ww,-0.2ww);
+z$.2l=z$-(0.111ww,0.556ww);
+z$.3l=z$-(0.5ww,apex_o);
+z$.4l=(x$,y$+0.556ww);
+z$.6-z$=whatever*dir33; x$.6r=x$+0.5ww;
+z$.5l=z$.6l; z$.7=whatever[z$,z$.6];
+x$.7=x$.3;
+penstroke z$.1e..z$.2e{left}..z$.3e{up}
+..z$.4e{right}..z$.5e;
+penstroke z$.7e--z$.6e
+enddef;
+
+def umlaut (suffix $) =
+y0=0; 0.5[x0,x0']=x$-2u;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,1.090x_height);
+z61=(x0+1.522stem,1.387x_height);
+z62=(x0+1.956stem,1.324x_height);
+z60'=(x0'+stem,1.090x_height);
+z61'=(x0'+1.522stem,1.387x_height);
+z62'=(x0'+1.956stem,1.324x_height);
+filldraw z60l{dir34}..z62{up}..z61{left}
+..z60r{dir259}--z60l & cycle;
+penpos60'(hair,145);
+filldraw z60'l{dir34}..z62'{up}..z61'{left}
+..z60'r{dir259}--z60'l & cycle
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yfrak.mf b/Master/texmf-dist/fonts/source/public/gothic/yfrak.mf
new file mode 100644
index 00000000000..eac47e0b304
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yfrak.mf
@@ -0,0 +1,137 @@
+if unknown cmbase: input cmbase fi
+input yfrabase; % -sl 15-3-1991
+
+font_identifier:="yfrak"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+lower_u#:=20/36pt#;
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=167/36pt#; % height of lowercase without ascenders
+%x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=7/36pt#; % lowercase hairline breadth
+%hair#:=9/36pt#; % lowercase hairline breadth
+%stem#:=25/36pt#; % lowercase stem breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+%cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_hair#:=8/36pt#;
+cap_amount#:=8/36pt#;
+%cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_stem#:=32/36pt#;
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+numeric usual_right, usual_left;
+usual_right#:=0.5u#;
+usual_left#:=0.3u#;
+
+granularity:=1.01;
+%aspect_ratio:=2/3aspect_ratio;
+
+mode_setup;
+font_setup;
+cap_amount:=8/36pt;
+foot:=0.207x_height;
+num_height:=1.242x_height;
+cap_kern:=4/36pt;
+boolean ligature; ligature:=false;
+numeric alpha; alpha:=0;
+numeric coef, gencoef; gencoef:=1;
+
+%granularity:=1.01;
+
+%readfrom("yfrakbase"); % -sl 15-3-1991
+%currenttransform:=identity xscaled 1.1;
+if proofing>1: generate ycurrent; fi % switch to the driver file%
+%generate yfrakmisc;
+generate yfrakmis; % -sl 15-3-1991
+%generate yfraklower;
+generate yfraklow; % -sl 15-3-1991
+%generate yfrakupper; % switch to the driver file
+generate yfrakupp; % -sl 15-3-1991
+generate yfraknum;
+%currenttransform:=identity;
+%generate yfrakother;
+generate yfrakoth; % -sl 15-3-1991
+
+font_slant slant; font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+%ligtable "a": "e"=:oct"032";
+ligtable "c": "h"=:oct"205", "k"=:oct"206";
+ligtable "f": "f"=:oct"204";
+ligtable "s": ":"=:oct"215", "s"=:oct"201", "t"=:oct"202", "z"=:oct"032",
+"f"=:oct"203", "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u#,
+"l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#;
+ligtable "t": "z"=:oct"213";
+ligtable oct"042": "a"=:oct"212", "e"=:oct"221", "o"=:oct"232", "u"=:oct"237",
+"s"=:oct"032";
+ligtable "*": "a"=:oct"211", "e"=:oct"220", "o"=:oct"231", "u"=:oct"236";
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042";
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+ligtable oct"201": "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u#
+, "l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yfraklow.mf b/Master/texmf-dist/fonts/source/public/gothic/yfraklow.mf
new file mode 100644
index 00000000000..4039ed91c90
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yfraklow.mf
@@ -0,0 +1,593 @@
+numeric nombre; nombre:= 5gencoef[1,1.155556];
+
+.cmchar "The Fraktur letter a";
+.beginchar("a",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51);
+penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h)));
+penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0);
+penpos12(whatever,-90); penpos11''(hair,-30);
+z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]);
+z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]);
+z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4];
+x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem;
+z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])];
+y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o;
+z10=whatever[z8l,z9l]; y10=0.228h;
+z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]);
+z11''r=(gencoef[0.78w,0.814w],-apex_o);
+z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l);
+z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r;
+z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); z11'=whatever[z11l,z12l];
+y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7];
+penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]);
+filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r..
+z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke
+z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down}
+..z7..z10{z9-z8} & z10--z8' & cycle; .endchar;
+
+nombre:= 4.722gencoef[1,1.129412];
+
+.cmchar "The Fraktur letter b";
+.beginchar("b",nombre*lower_u#,1.376x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); penpos2(stem,0);
+z1=(gencoef[0.241w,0.208w],gencoef[foot,0.322x_height]); z2=(x1,x_height);
+z3=(1/4[x2l,x2r],x_height+gencoef[foot,0.9foot]); z3'=(x2r,gencoef[y3,y2r]);
+z3''=(x2l,gencoef[0.633(y3-y2)+y2,y2l]); penpos4(gencoef[hair,2hair],74);
+z4=(gencoef[0.5x2l,0],gencoef[1.259x_height,1.205x_height]);
+penpos5(gencoef[hair,1.5hair],-90); z5l=(x2r+gencoef[0.875stem,0.396w],h);
+penstroke z1e--z2e; filldraw z2l--z3''{up}..z4l--z4r--
+z3{dir45}..z5l{right}--z5r{left} ...z3'{down}--z2r--z2l & cycle;
+penpos5'(gencoef[hair,1.5hair],gencoef[-40,-90]);
+z5'l=(0,gencoef[0.097x_height,0.219x_height]); penpos6(hair,gencoef[-42,-30]);
+penpos7(hair,gencoef[-42,-30]); z6r=(gencoef[0.441w,0.521w],-apex_o);
+z7-z6=whatever*((w,gencoef[0.36x_height,0.479x_height])-z6);
+x7=gencoef[0.653w,0.698w]; z6'=whatever[z6,z7]; y6'=gencoef[y6l+apex_o,y6l];
+penpos8(1.167stem,42); z8r=(w,gencoef[0.545x_height,0.664x_height]);
+penpos11(hair,gencoef[-42,-61]); penpos10(hair,gencoef[-42,-61]);
+z10l=(gencoef[x8l,0.729w],x_height+apex_o);
+z10-z11=whatever*(z7-z6-(0,gencoef[0,0.1x_height])); x11=x1;
+penpos9(5/4stem,angle(z10-z11)); z9=whatever[z11l,z10l];
+y9r=y10l+gencoef[-apex_o,0]; penstroke z11e--z10e; penstroke
+z6e---z7e...z8e{up}.. z9e; filldraw z5'l..z1l{up}--z1r--z7l--
+z6'{dir138}..z5'r--z5'l & cycle; .endchar;
+
+nombre:= 3.639gencoef[1,1.145038];
+
+.cmchar "The Fraktur letter c";
+.beginchar("c",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(gencoef[hair,1.5hair],gencoef[-30,-48]); penpos2(gencoef[hair,1.5hair],
+gencoef[-30,-48]);
+z2-z1=whatever*((w,gencoef[0.78h,0.5h]));
+z1r=(gencoef[0.565w,0.586667w],-apex_o); x2r=w; z1'=whatever[z1,z2];
+y1'=gencoef[y1l+apex_o,y1r]; x1':=gencoef[x1',x1r]; z3=whatever[z1l,z2l];
+x3=gencoef[0.809w,x2l]; z4=(gencoef[2/3w,0.64w],0.176h);
+penpos5(1.083stem,angle((w,gencoef[0.4h,0.452h])));
+z5=(gencoef[0.26w,0.226667w],0.214h); penpos6(stem,0); z6l=(0,0.5h);
+penpos9(gencoef[hair,1.5hair],gencoef[-68,-22]);
+penpos8(gencoef[hair,1.5hair],gencoef[-68,-22]);
+penpos8.5(gencoef[hair,1.5hair],gencoef[-68,-22]);
+z9l=(gencoef[0.832w,0.546667w],h+apex_o);
+z9-z8=whatever*((w,gencoef[0.25h,0.404h])); x8l=gencoef[0.458w,0.2666w];
+z7=whatever[z8l,z9l]; x7=gencoef[0.145w,x8l];
+penpos10(gencoef[stem,1.3stem],angle((w,gencoef[0.25h,0.883562h])));
+z10r=whatever[z9l,z9r]; x10r=w+gencoef[0,apex_o]; z10l-z8.5=whatever*(z10r-z9);
+z8.5=whatever[z8,z9]; penstroke z1e--z2e; filldraw z1'..z5l..z6l{up}--z6r{down}
+..z5r..z4..z3{z2-z1}--z2l--z2r--z1' & cycle; filldraw z6l{up}..z7 &
+z7--z9l--z10r-- z10l--z8.5r & z8.5r{z8-z9}..(x6r,0.738h)..z6r{down}-- z6l &
+cycle; .endchar;
+
+nombre:= 4.944gencoef[1,1.073034];
+
+.cmchar "The Fraktur letter d";
+.beginchar("d",nombre*lower_u#,gencoef[1.269x_height#,1.37x_height#],0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); penpos2(stem,0);
+z1=(gencoef[0.227w,0.2094w],gencoef[foot,0.274x_height]); z1'=(x1r,foot);
+z2=(x1,gencoef[0.817x_height,0.795x_height]); penpos4(hair,-90);
+z4=(gencoef[0.5x1l,0],gencoef[0.11x_height,0.188x_height]); penpos5(hair,-38);
+z5r=(gencoef[x1r+0.7stem,0.6073w],-apex_o);
+penpos6(whatever,gencoef[-18,-38]);
+z6l-z5l=whatever*((w,gencoef[0.356x_height,x_height]));
+z6r-z5r=whatever*((w,gencoef[0.356x_height,x_height]));
+z6-z1'=whatever*((w,gencoef[-0.2x_height,-0.1x_height]));
+penpos7(gencoef[1.271stem,0.65stem],gencoef[50,39]); z7r=(w,0.579x_height);
+penpos8(stem,angle((w,1.04h))); z8=(gencoef[0.545w,0.52w],0.959x_height);
+penpos9(gencoef[0.946stem,0.8stem],25);
+z9l=(gencoef[0,-2apex_o],gencoef[1.093x_height,1.178x_height]);
+z10=(gencoef[0.303w,0.209w],h); penpos11(hair,-90);
+z11l=gencoef[(0.416w,h-apex_o),z10]; penpos3(hair,-57);
+z3=z8;
+%z3l-z2l=whatever*((w,gencoef[0.39x_height,0.198x_height]));
+%y3l=x_height-gencoef[2apex_o,0.075x_height];
+%y3l=x_height-2apex_o;
+penstroke z1e--z2e; penstroke
+z5e---z6e...z7e{up}..z8e ..z9e{up}; filldraw z2l--z3l--z3r{z2l-z3l}..
+z2r{down}--z2l & cycle; filldraw z4r..{z5r-z5l}z5r--z6--z1'--z1r--
+z1l{down}..z4l--z4r & cycle; filldraw z9l{up}..z10{right}..z11l
+--z11r{left}..z9r{down}--z9l & cycle; .endchar;
+
+nombre:= 3.65gencoef[1,1.230769];
+
+.cmchar "The Fraktur letter e";
+.beginchar("e",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1l=(0,0.486h);
+penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]);
+penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]);
+z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w];
+x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8];
+y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l];
+x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h);
+penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69);
+y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69); z6r=(x1r,0.5h);
+z3l-z2=whatever*((w,gencoef[0.3h,0.25h])); x4r=w-gencoef[apex_o,0];
+z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6));
+z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e;
+filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69);
+z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w];
+z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e;
+filldraw z7'{dir135}..z1l{up}..z2 &
+z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10
+..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e; .endchar;
+
+.cmchar "The Fraktur letter f";
+.beginchar("f",4.539lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#);
+w':=w; penpos1.1(hair,0); z1.1=(0.318w',-d); penpos1.2(1.313stem,0); z1.2=(x1.1,0.795x_height);
+penpos1.4(3/4stem,-90); z1.4r=(0.857w',y1.2); z1.3=(0,y1.2); z1.12=whatever[z1.1l,z1.2l];
+z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height; z1.12'=z1.12-(0.5apex_o,0);
+z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4; penpos1.5(0.917stem,0);
+z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112; z1.6l-z1.5l=whatever*dir72;
+penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22); penpos1.11(hair,-22);
+z1.11r=(w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'; penpos1.8(whatever,68);
+z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w',1.366x_height); filldraw z1.1r..z1.13'..z1.2r...
+z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle; filldraw
+z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw
+z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle;
+.endchar;
+
+nombre:= 5.611gencoef[1,1.168317];
+
+.cmchar "The Fraktur letter g";
+.beginchar("g",nombre*lower_u#,x_height#,gencoef[2.389lower_u#,3.4446lower_u#]);
+.adjust_fit(usual_left#-gencoef[0.315u#,0.3u#],usual_right#);
+penpos1(hair,gencoef[0,30]); penpos2(gencoef[hair,1.2hair],gencoef[90,110]);
+z1l=(gencoef[0,0.1w],gencoef[0.059h,-0.532d]); z2l=(gencoef[0.426w,0.568w],-d);
+z3=gencoef[(0.743w,0),(0.78w,-0.42d)];
+z4=(w-gencoef[apex_o,0],gencoef[0.107h,-0.161d]); penpos5(whatever,0);
+z5=gencoef[(0.733w,0.455h),(0.763w,0.199h)]; x5r=gencoef[0.8627w,0.86w];
+penpos6(hair,gencoef[-57,-20]); z6r=(gencoef[w,0.932w],0.845h);
+penpos7(4/3stem,gencoef[46,50]); z7r=gencoef[(0.673w,h+apex_o),(0.466w,h)];
+penpos8(hair,gencoef[-24,angle(z6-z7r)]); z8l=z7l; z8'=whatever[z8l,z8r];
+x8'=gencoef[0.688w,0.67w]; penpos9(gencoef[1.292stem,1.1stem],36);
+z9=(gencoef[0.228w,0.186441w],0.462h); penpos10(gencoef[hair,1.25hair],-50);
+z10r=gencoef[(0.277w,-0.239d),(0.339w,0)]; penpos11(gencoef[hair,1.25hair],-50);
+z11-z10=whatever*dir(gencoef[40,32]); x11=gencoef[0.8w,0.763w];
+z13=whatever[z10l,z11l]; x13=gencoef[0.488w,0.466w]; penstroke
+z2e{left}..z1e{gencoef[up,dir135]}; filldraw z2l{right}..z4 & flex(z4,z5r,z6r) &
+z6r--z6l{left}.. {z6l-z6r}z7r---z7l...z9l{down}..z10r--z13 &
+z13..z9r{up}..z8r{z7r-z7l} & z8r--z8' & z8'..z5l{down}
+..z3{down}..z2r{left}--z2l & cycle; penstroke z10e--z11e; .endchar;
+
+.cmchar "The Fraktur letter h";
+.beginchar("h",5.472lower_u#,1.376x_height#,2.556lower_u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot);
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3);
+z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height);
+penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e; filldraw
+z2l---z3''...z4l--z4r-- z3{dir45}..z5l{right}--z5r{left} ...z3'---z2r--z2l &
+cycle; penpos5'(hair,-40); z5'l=(0,0.097x_height); penpos6(hair,-37);
+penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.6w;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; penpos8(1.292stem,39);
+z8r=(w,0.478x_height); penpos11(hair,-50); penpos10(hair,-50); x10r=x8l;
+y10l=x_height+apex_o; z10-z11=whatever*((w,0.559x_height)); x11=x1;
+penpos9(1.229stem,angle((w,0.559x_height))); z9=whatever[z11,z10];
+y9r=y10r-apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z11e--z10e; penstroke z6e---z7e; penpos7'(1.2hair,-40); z7'r=(0.426w,-d);
+penstroke z7'e{dir50}...z8e{up}.. z9e; filldraw z5'l..z1l{up}--z1r-- z15--z7l--
+z6'{dir138}..z5'r--z5'l & cycle; .endchar;
+
+.cmchar "The Fraktur letter i";
+.beginchar("i",2.889lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(hair,-44); penpos2(hair,-44); penpos3(hair,-44); z1l=(0,0.834h);
+z2-z1=whatever*((w,0.37h)); y2l=h+apex_o; z3=whatever[z2l,z2r]; x3r=x5r+0.5stem;
+z4=(0.606w,0.931h); penpos5(stem,0); z5=(0.433w,0.759h); z6=(x5,0.238h);
+penpos6(stem,0); z7=(x6l,0.079h); z8-z7=whatever*dir-40; y8=-apex_o;
+penpos9(hair,-38); z9r-z8=whatever*dir52; x9r=w; z10=(0.788w,0.152h);
+z5'=whatever[z1,z2]; x5'=x5l; penstroke z5e--z6e; penstroke z1e--z2e; filldraw
+z5r{up}..z3r--z2--z5'--z5l{down} --z5r & cycle; filldraw z8--z9r--z9l{z8-z9r}
+..z6r{up}--z6l{down}..{z8-z7}z8 & cycle; penpos11(hair,0); z11r=(x2l,1.076h);
+z12=(0.56w,1.279h); z13=(0.73w,1.238h); filldraw z11l{up}..z12{right}..
+z13{down}..{z1-z2}z11r--z11l & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter j";
+.beginchar("j",2.944lower_u#,x_height#,1.611lower_u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(hair,47); penpos2(1.3hair,-90); z2r=(0.16w,-d); penpos5(stem,0);
+z5=(0.523w,0.124h); penpos3(2/3stem,0); z3l=(x5l,0.048h); penpos6(stem,0);
+z6=(x5,0.824h); penpos7(hair,-90); z7=(0.906w,0.91h); penpos8(hair,-48);
+penpos9(hair,-48); z8l=(0.481w,h+apex_o); z8-z9=whatever*((w,0.3448h)); x9l=0;
+z9'=whatever[z9r,z8r]; y9'=y9l+apex_o; z1r=(x5r+0.5stem,-0.207d);penstroke
+z2e..z3e{up}; penstroke z5e--z6e; filldraw z1r{dir137}..z5r{up}--z5l
+--z3l--z3r..z1l{dir-43}--z1r & cycle; filldraw z6r{up}..z7r{right}--z7l...
+z8r---z8l--z9l--z9r--z9'.. z6l{down}--z6r & cycle; penpos11(hair,0);
+z11r=(x8l,1.076h); z12=(0.571w,1.279h); z13=(0.744w,1.238h); filldraw
+z11l{up}..z12{right}..z13{down} ..{z9-z8}z11r--z11l & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter k";
+.beginchar("k",3.861lower_u#,1.366x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w':=1.223w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot);
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3);
+z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height);
+penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e;
+penpos5''(hair,-90); z5''=z5+(hair,-eps); filldraw z2l---z3''...z4l--z4r--
+z3{dir45}..z5l{right}..z5''l--z5''r..z5r{left} ...z3'---z2r--z2l & cycle;
+penpos5'(hair,-40); z5'l=(0,0.097x_height); penpos6(hair,-37); penpos7(hair,-37);
+y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.8w; z6'=whatever[z6,z7];
+y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l &
+cycle; penpos1.4(3/4stem,-90); z1.4=(0.928w,.859x_height); z1.3=(0,y1.4r);
+z1.35=(x2l,y1.4l); filldraw z1.3--z1.35--z1.4l--z1.4r-- z1.3 & cycle;
+penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43);
+z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
+x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60);
+z1.8r=(w,0.579[y1.4l,y5l]); penstroke z1.6e--z1.6'e; penstroke
+z1.5e{dir72}..z1.8e{up}..z1.7e{left}; filldraw z1.6r--z1.7l--z1.7r--z1.6l
+--z1.6r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter l";
+.beginchar("l",3lower_u#,1.366x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w':=1.574w; penpos1(stem,0); z1=(0.241w',foot); penpos5'(hair,-40);
+z5'l=(0,0.097x_height); penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o;
+x6r=x1r; z7-z6=whatever*dir48; x7=w; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke z6e---z7e; filldraw
+z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; penpos2(stem,0);
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3);
+z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height);
+penpos5(hair,-90); z5l=(x7,h); penstroke z1e--z2e; filldraw
+z2l---z3''...z4l--z4r-- z3{dir50}..z5l{right}--z5r{left} ...z3'---z2r--z2l &
+cycle;
+.endchar;
+
+nombre:=7.806gencoef[1,1.227586];
+
+.cmchar "The Fraktur letter m";
+.beginchar("m",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+boolean itsm; itsm:=true;
+w':=w; if itsm: z0=(0.356w',0) else: z0=(0,0) fi; penpos1(stem,0);
+penpos2(stem,0); penpos3(stem,0); penpos4(stem,0); penpos5(stem,0);
+penpos6(stem,0); z1=(0.135w',foot); z3=(0.491w',foot); n_foot(1);
+z2=(x1,0.846h); z4=(x3,y2); z5=z3+z0; z6=z4+z0; penpos10(hair,-54);
+penpos11(hair,-54); penpos12(hair,-54); penpos13(hair,-54);
+z2r-z10l=whatever*dir36; x10r=x2r; z11-z10=whatever*dir36; y11l=h+apex_o;
+z14=whatever[z10r,z11r]; y14=0.881h; penpos16(2/3hair,-90);
+z16=(x6r+1/20w',y14); penstroke z1e--z2e; penstroke z5e--z6e; if itsm: penstroke
+z3e--z4e; n_foot(3); fi z12=z10+z0; z13=z11+z0; z15=z14+z0; x14'=x4l;
+z14'-z14=whatever*(z4r-z11); z15'=z14'+z0; if itsm: filldraw
+z14--z14'--z4l--z4r-- z11l--z10l--z10r--z14 & cycle; fi filldraw
+z12l--z13l---z13r...z16l{right} --z16r{left}..z6r--z6l--z15'--z15-- z12r--z12l &
+cycle; penpos18(hair,-37); penpos17(hair,-37); z17=(0.354[x5l,x5r],-apex_o);
+x18r=x5+0.157w'; y18l=foot; z20'=whatever[z17l,z18l]; x20'=x5r;
+z20=0.5[z20',z18l]; z19=(x5l,2/3foot); z17'=whatever[z17,z18]; y17'=0; filldraw
+z17'--z19--z5l--z5r{down} ..z20{z18r-z18l}--z17' & cycle; penstroke z17e--z18e;
+z8=(0,y2); z9=(x2,h+apex_o); z7=(x1l,0.194[y2,y1]); filldraw
+z7{up}..z8--z9..z2r{down} --z7 & cycle;
+.endchar;
+
+nombre:=5.028gencoef[1,1.227586];
+
+.cmchar "The Fraktur letter n";
+.beginchar("n",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+boolean itsm; itsm:=false;
+w':=1.553w; if itsm: z0=(0.356w',0) else: z0=(0,0) fi; penpos1(stem,0);
+penpos2(stem,0); penpos3(stem,0); penpos4(stem,0); penpos5(stem,0);
+penpos6(stem,0); z1=(0.135w',foot); z3=(0.491w',foot); n_foot(1);
+z2=(x1,0.846h); z4=(x3,y2); z5=z3+z0; z6=z4+z0; penpos10(hair,-54);
+penpos11(hair,-54); penpos12(hair,-54); penpos13(hair,-54);
+z2r-z10l=whatever*dir36; x10r=x2r; z11-z10=whatever*dir36; y11l=h+apex_o;
+z14=whatever[z10r,z11r]; y14=0.881h; penpos16(2/3hair,-90);
+z16=(x6r+1/20w',y14); penstroke z1e--z2e; penstroke z5e--z6e; if itsm: penstroke
+z3e--z4e; n_foot(3); fi z12=z10+z0; z13=z11+z0; z15=z14+z0; x14'=x4l;
+z14'-z14=whatever*(z4r-z11); z15'=z14'+z0; if itsm: filldraw
+z14--z14'--z4l--z4r-- z11l--z10l--z10r--z14 & cycle; fi filldraw
+z12l--z13l---z13r...z16l{right} --z16r{left}..z6r--z6l--z15'--z15-- z12r--z12l &
+cycle; penpos18(hair,-37); penpos17(hair,-37); z17=(0.354[x5l,x5r],-apex_o);
+x18r=x5+0.157w'; y18l=foot; z20'=whatever[z17l,z18l]; x20'=x5r;
+z20=0.5[z20',z18l]; z19=(x5l,2/3foot); z17'=whatever[z17,z18]; y17'=0; filldraw
+z17'--z19--z5l--z5r{down} ..z20{z18r-z18l}--z17' & cycle; penstroke z17e--z18e;
+z8=(0,y2); z9=(x2,h+apex_o); z7=(x1l,0.194[y2,y1]); filldraw
+z7{up}..z8--z9..z2r{down} --z7 & cycle; .endchar;
+
+nombre:=4.75gencoef[1,1.140351];
+
+.cmchar "The Fraktur letter o";
+.beginchar("o",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]);
+x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31);
+z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0);
+z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22);
+z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l;
+penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]);
+z2-z1=whatever*((w,0.786h)); x8'=x8r;
+y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e..
+z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw
+z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw
+z7l--z7'--z7r--z7l & cycle; .endchar;
+
+nombre:=5.056gencoef[1,1.131868];
+
+.cmchar "The Fraktur letter p";
+.beginchar("p",nombre*lower_u#,x_height#,3.361lower_u#);
+.adjust_fit(usual_left#+gencoef[0,0.5u#],usual_right#);
+penpos1(stem,0); z1=(gencoef[0.242w,0.223w],foot); penpos2(stem,0);
+z2=(x1,0.834h); penpos3(hair,-27); z3=(x2l,1.05h);
+penpos4(stem,53); z4l=(-apex_o,0.86h); penpos5(hair,0);
+z5=(x1,-d); penstroke z5e--z1e--z2e; z6=(x1l,0.69h); filldraw z6{up}..
+z4l{up}--z4r{down}..{dir-45}z2r--z6 & cycle; penstroke
+z4e{up}..z3e{dir53};
+penpos8(hair,-49); penpos7(hair,-49);
+z8l=(gencoef[0.714w,0.7w],h+gencoef[apex_o,0]);
+z8-z7=whatever*dir(gencoef[41,35]); x7=x1; penstroke z7e--z8e;
+z11=(-0.5u,0.15h); z9-z11=whatever*dir-20; x9=gencoef[0.527w,0.592w];
+penpos9(hair,-20); penpos10(hair,-20); z10-z9=whatever*dir57.5;
+y10r=gencoef[0.1h,0.12h]; z12-z10=whatever*(z11-z9); z12-z11=whatever*(z10-z9);
+penpos13(stem,33); penpos14(5/4stem,41); z13r=(w,gencoef[0.5h,0.548h]);
+z14r=z8l; penstroke z9e---z10e...z13e...z14e {dir131}; filldraw
+z11--z12--z10r--z9r--z11 & cycle; .endchar;
+
+nombre:=4.639gencoef[1,1.269461];
+
+.cmchar "The Fraktur letter q";
+.beginchar("q",nombre*lower_u#,x_height#,3.361lower_u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,0); z1=(0.745w,-d); penpos2(stem,0); z2=(x1,foot); z3=(x2r,0.728h);
+z4=(w,0.879h); penpos5(hair,-33); penpos6(hair,-33); z5l=(0.485w,h+apex_o);
+z5-z6=whatever*dir52; x6=0.335w; penpos7(1.542stem,62); z7l=(0,0.445h);
+penpos8(1.125stem,45); z8l=(0.388w,-2apex_o); penpos9(hair,-45);
+penpos10(hair,-45); z9r=z8; z10-z9=whatever*dir45; x10=x2; penstroke z1e--z2e;
+z3'-z6=whatever*(z5r-z5l); x3'=x2l; filldraw z2r---z3...z4 & z4...z5r---z5l
+--z6l--z3'--z2l--z2r & cycle; penstroke z8e{(0,0.552h)-z8}..z7e{up}... z6e---z5e;
+penstroke z9e--z10e;
+.endchar;
+
+nombre:=3.944gencoef[1,1.281690];
+
+.cmchar "The Fraktur letter r";
+.beginchar("r",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+w':=1.197w;
+penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,x_height);
+z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90);
+z5l=(x2r+0.875stem,h); penpos5'(hair,-40); z5'l=(0,0.097x_height);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r;
+z7-z6=whatever*dir48; x7=0.817w; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+penpos8(1.292stem,39); z8r=(w,0.478x_height); penpos11(hair,-50);
+penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*dir40;
+x11=x1; penpos9(1.229stem,40); z9=whatever[z11,z10]; y9r=y10r-apex_o;
+z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke z6e---z7e;
+penpos7'(1.2hair,-40); z7'r=(0.426w,-d); filldraw z5'l..z1l{up}--z1r--
+z15--z7l-- z6{dir138}..z5'r--z5'l & cycle; penpos22(stem,0); z22=(x1,0.841h);
+z29=(x22,h+apex_o); z28=(0,y22); z27=(x22l,0.721h); filldraw
+z1l---z27...z28--z29... z22r---z1r--z1l & cycle; penpos30(hair,-70);
+penpos32(hair,-70); penpos31(1.083stem,45); z22r-z32l=whatever*dir45; x32r=x22r;
+z30-z32=whatever*dir45; y30l=h+apex_o; z31r=(w,y32);
+z33-z31l=whatever*(z30-z31r); z33=whatever[z32,z30]; penstroke z32e--z30e;
+filldraw z30--z31r--z31l--z33-- z30 & cycle; .endchar;
+
+.cmchar "The Fraktur letter long s";
+.beginchar("s",4.539lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-1.932lower_u#);
+w':=w; penpos1.1(hair,0); z1.1=(0.318w',-d); penpos1.2(1.313stem,0); z1.2=(x1.1,0.795x_height);
+penpos1.4(3/4stem,-90); z1.4r=(0.857w',y1.2); z1.3=(0,y1.2); z1.12=whatever[z1.1l,z1.2l];
+z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height; z1.12'=z1.12-(0.5apex_o,0);
+z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4; penpos1.5(0.917stem,0);
+z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112; z1.6l-z1.5l=whatever*dir72;
+penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22); penpos1.11(hair,-22);
+z1.11r=(w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'; penpos1.8(whatever,68);
+z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w',1.366x_height); filldraw z1.1r..z1.13'..z1.2r...
+z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle; filldraw
+z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e;
+.endchar;
+
+nombre:=5.039gencoef[1,1.168688];
+
+.cmchar "The Fraktur letter short s"; .beginchar(oct"215",nombre*lower_u#,1.286x_height#,0);
+.adjust_fit(usual_left#,usual_right#); penpos0(hair,angle((w,x_height))-90);
+penpos0'(hair,angle((w,x_height))-90); z0l=(0,0.103x_height); x0'r=0.86w;
+z0'-z0=whatever*((w,x_height)); penstroke z0e--z0'e;
+penpos5(1.083stem,angle((w,gencoef[0.797x_height,0.63x_height])));
+penpos6(1.083stem,angle(z0'-z0)); z5l=(0.54w,-apex_o); z6l=z0r; penstroke z5e{dir142}..z6e;
+penpos1(hair,angle((w,0.797x_height))-90); penpos2(hair,angle((w,0.797x_height))-90);
+penpos3(1.083stem,39); z3r=(w,0.441x_height); z1r=z5l; z2r=z5r; z4=whatever[z0r,z0'r]; x4=0.595w;
+penpos4(5/4stem,angle(z0'-z0)); penstroke z1e--z2e{z2-z1}..z3e..z4e{dir(angle(z0'-z0)+90)};
+penpos7(hair,angle(z0'-z0)-90); z7r=z6; penpos8(1.125stem,angle((w,0.5x_height)));
+z8r=whatever[z0,z0']; x8r=0.433w; penpos9(1.292stem,54); z9l=(0,0.69x_height); filldraw
+z7--z8r--z8l{down}..z7l{z0-z0'}--z7 & cycle; penstroke z8e{up}..z9e{dir144}; penpos10(hair,-36);
+z10l=z9; z11=whatever[z9l,z9r]; y11=x_height+apex_o; penpos12(1.083stem,54); z12r=z11;
+penpos14(hair,-36); z14l=z12; penstroke z10e--z14e; z13-z12l=whatever*dir-21;
+z13=whatever[z0l,z0'l]; penpos15(0.538stem,-29); z15r=whatever[z0,z0']; y15r=y11; penpos16(hair,90);
+penpos17(hair,144); z16r=(0.568w,h); z17=(0.198w,1.124x_height); penstroke
+z15e{up}..z16e{left}..z17e; filldraw z12l--z13--z0'r & z0'r{z0'-z0}..z15r{up}--z15l{down}
+..z11{z12-z13}--z12l & cycle; .endchar;
+
+.cmchar "The Fraktur letter t";
+.beginchar("t",3.444lower_u#,1.186x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#-0.3u#);
+w':=1.371w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,0.828x_height);
+z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74);
+z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e;
+penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=w;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle;
+penpos1.4(3/4stem,-90); z1.4=(0.928w,.859x_height); z1.3=(0,y1.4r); z1.35=(x2l,y1.4l); filldraw
+z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)];
+penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
+x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60);
+z1.8r=(w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,h); filldraw z1.3--z30l--z30r..z2r{down}
+--(x2r,y1.3)--z1.3 & cycle;
+.endchar;
+
+nombre:=6.15gencoef[1,1.107527];
+
+.cmchar "The Fraktur letter u";
+.beginchar("u",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h);
+penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90);
+penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r;
+z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58;
+z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke
+z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle;
+penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}--
+z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l
+& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot);
+z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o);
+z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height);
+penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l];
+z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r
+--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e;
+penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o);
+z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up}
+..z15--z14r--z14l--z13 & cycle;
+.endchar;
+
+nombre:=5.444gencoef[1,1.122449];
+
+.cmchar "The Fraktur letter v";
+.beginchar("v",nombre*lower_u#,1.203x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.334w,1.05foot); penpos2(stem,0); z2=(x1,0.561x_height);
+penpos3(stem,50); z3=(0.158w,0.897x_height); penpos3'(1.042stem,37);
+z3'l=(0,0.928x_height); penpos4(hair,-44); z4l=(0.265w,h); penstroke
+z1e---z2e...z3e{dir140}.. z3'e{up}..z4e{dir46}; penpos5(hair,-90);
+penpos6(hair,0); penpos7(hair,-11); z5=(0.133w,0.11x_height);
+z6=(0.582w,-apex_o); z7r-z6r=whatever*dir58; z7-z1r=whatever*dir-11;
+z7'=whatever[z6l,z7l]; x7'=0.7w; filldraw z1l{down}..z5l--z5r{z1r-z5r}
+..z6l--z6r--z7r--z7l--z7'..{left}z1r--z1l & cycle; penpos8(1.125stem,44);
+z8r=(w,0.576x_height); penpos11(hair,-44); penpos12(hair,-44);
+z11=(0.735w,gencoef[1.055x_height,x_height]); z11-z12=whatever*dir46; x12=0.3w;
+penstroke z12e--z11e; penpos10(1.521stem,46); z10r=z11; penpos9(1.042stem,46);
+z9=(0.648w,0.928x_height); penstroke z6e---z7e...z8e..z9e; filldraw
+z9r{z10-z9}..z10r{z11-z12} --z10l{z11-z12}..z9l{z9-z10}-- z9r & cycle;
+.endchar;
+
+nombre:=7.111gencoef[1,1.2];
+
+.cmchar "The Fraktur letter w";
+.beginchar("w",nombre*lower_u#,1.083x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.154w,foot); n_foot(1); penpos2(stem,0);
+z2=(x1,0.831x_height); penstroke z1e--z2e; penpos3(hair,-53); penpos4(hair,-54);
+z3r=z2r; z4-z3=whatever*dir37; y4l=x_height+apex_o; z3'=whatever[z3l,z4l];
+x3'=x1r; penpos5(stem,40); z5l=(0,0.955x_height); penpos6(hair,-50);
+z6l=(0.145w,h); penstroke z3e--z4e; filldraw
+z2r--z3'..z5r-(0,2apex_o){up}..z6r{dir60} --z6l{z5l-z5r}..z5l{down}..z2l--z2r &
+cycle; penpos7(stem,0); penpos8(stem,0); z7=(0.531w,foot); z8=(x7,y2);
+penpos9(hair,-35); penpos10(hair,-35);
+z10-z7r=whatever*((0,0.621x_height)-(w,0)); z9r=(0.668w,-apex_o);
+z10-z9=whatever*((w,0.359x_height)-z9); z9-z11=whatever*(z10-z7r); x11=0.402w;
+filldraw z11..z7l{up}--z7r--z10r-- z9r--z11 & cycle; penstroke z7e--z8e;
+penpos14(1.083stem,47); z14r=(w,gencoef[0.462x_height,0.685x_height]);
+penpos11'(hair,-53); penpos12(hair,-53); z11'r=z8r; z12-z11'=whatever*dir37;
+y12l=x_height+apex_o; penstroke z11'e--z12e; penpos13(1.083stem,37); z13r=z12;
+penstroke z9e---z10e... z14e..z13e{dir(gencoef[110,130])};
+z11.5=whatever[z11'l,z12l]; x11.5=x8r; z8'=whatever[z3r,z4r];
+z8l-z8'=whatever*(z11.5-z4); filldraw z8'--z4--z11.5--z8r--z8l --z8' & cycle;
+.endchar;
+
+nombre:=3.944gencoef[1,1.194030];
+
+.cmchar "The Fraktur letter x";
+.beginchar("x",nombre*lower_u#,x_height#,0.5x_height#);
+.adjust_fit(usual_left#+u#,usual_right#); w':=1.197w;
+penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,x_height);
+z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90);
+z5l=(x2r+0.875stem,h); penpos5'(hair,-40); z5'l=(x1l,0.097x_height);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r;
+z7-z6=whatever*dir48; x7=0.817w; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+penpos8(1.292stem,39); z8r=(w,0.478x_height); penpos11(hair,-50);
+penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*dir40;
+x11=x1; penpos9(1.229stem,40); z9=whatever[z11,z10]; y9r=y10r-apex_o;
+z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke z6e---z7e;
+penpos7'(1.2hair,-40); z7'r=(0.426w,-d); filldraw z5'l..z1l{up}--z1r--
+z15--z7l-- z6{dir138}..z5'r--z5'l & cycle; penpos22(stem,0); z22=(x1,0.841h);
+z29=(x22,h+apex_o); z28=(0,y22); z27=(x22l,0.721h); filldraw
+z1l---z27...z28--z29... z22r---z1r--z1l & cycle; penpos30(hair,-70);
+penpos32(hair,-70); penpos31(1.083stem,45); z22r-z32l=whatever*dir45;
+x32r=x22r; z30-z32=whatever*dir45; y30l=h+apex_o; z31r=(w,y32);
+z33-z31l=whatever*(z30-z31r); z33=whatever[z32,z30]; penstroke z32e--z30e;
+filldraw z30--z31r--z31l--z33-- z30 & cycle;
+z40=(x1l,1.5foot); z40'=(x1r,1/3foot);
+penpos41(0.8stem,180); penpos42(1.5hair,-120); penpos43(hair,-142);
+ z41l=(apex_o,-0.129d); z42l=(x1r,-0.557143d); x43l=w; y43r=-d;
+filldraw z40{down}..z41r{down}--z41l{up}..z40'{right}--z40 & cycle;
+penstroke z41e{down}..z42e..z43e{dir-60}; .endchar;
+
+
+nombre:=5.472gencoef[1,1.107527];
+
+.cmchar "The Fraktur letter y";
+.beginchar("y",nombre*lower_u#,x_height#,2.556lower_u#);
+.adjust_fit(usual_left#,usual_right#);
+w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot);
+z2=(x1,0.846x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3);
+z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74); z4=(0.5x2l,1.259x_height);
+penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e; z2.8=(0,y2);
+z2.9=(x2,h+apex_o); z2.7=(x1l,0.194[y2,y1]); filldraw
+z2.7{up}..z2.8--z2.9..z2r{down} --z2.7 & cycle; penpos5'(hair,-40);
+z5'l=(0,0.097x_height); penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o;
+x6r=x1r; z7-z6=whatever*dir48; x7=0.6w; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+penpos8(1.292stem,39); z8r=(w,0.478x_height); penpos11(hair,-50);
+penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o;
+z10-z11=whatever*((w,0.559x_height)); x11=x1; penpos9(1.229stem,40);
+z9=whatever[z11,z10]; y9r=y10r-apex_o; z15=whatever[z6l,z7l];
+z15-z1r=whatever*dir-30; penstroke z11e--z10e; penstroke z6e---z7e;
+penpos7'(1.2hair,-40); z7'r=(0.426w,-d); penstroke z7'e{dir50}...z8e{up}.. z9e;
+filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6'{dir138}..z5'r--z5'l & cycle;
+.endchar;
+
+nombre:=3.444gencoef[1,1.330645];
+
+.cmchar "The Fraktur letter z";
+.beginchar("z",nombre*lower_u#,x_height#,gencoef[2.15lower_u#,3.07lower_u#]);
+.adjust_fit(usual_left#,usual_right#); penpos1(hair,122);
+penpos2(gencoef[hair,1.5hair],180); penpos3(0.625stem,-42);
+penpos4(1.313stem,37); z1l=gencoef[(w,0.524h),(0.945w,0.459h)]; z2r=(0,-0.1d);
+z3r=(gencoef[0.548w,0.509w],-d); z4r=(w,gencoef[0.103h,0]); penstroke
+z1e..z2e{down}..z3e{right}..z4e{up}; penpos5(hair,-90);
+z5=gencoef[(0,0.414h),(0.145w,0.390h)]; z6-z5=whatever*dir38;
+x6=gencoef[0.484w,0.454w]; filldraw z5r{right}..z4l{down}-- z4r{up}..z6--z5r &
+cycle; penpos7(4/3stem,43); z7=gencoef[(0.629w,0.734h),(0.618w,0.699h)];
+z8=(gencoef[0.532w,0.4w],h+apex_o); z9=(gencoef[0.081w,0.107782w],0.793h);
+penpos9'(hair,-90); z9'l=z9; penstroke z5e{z6-z5r}..z7e{up}; filldraw
+z7l{up}..z9'r{z9-z8}--z9--z8.. z7r{down}--z7l & cycle; .endchar;
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yfrakmis.mf b/Master/texmf-dist/fonts/source/public/gothic/yfrakmis.mf
new file mode 100644
index 00000000000..55cf5115690
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yfrakmis.mf
@@ -0,0 +1,574 @@
+.cmchar "The Fraktur ligature ch";
+.beginchar(oct"205",3.639lower_u#+4.772lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w:=3.639u; penpos101(hair,-30); penpos102(hair,-30); z102l=(w+0.438u-0.5stem,foot);
+z101r=(0.565w,-apex_o); z101'=whatever[z101,z102]; y101'=y101l+apex_o; z103=whatever[z101l,z102l];
+x103=0.809w; z104=(2/3w,0.176h); penpos105(1.083stem,angle((w,0.4h))); z105=(0.26w,0.214h);
+penpos106(stem,0); z106l=(0,0.5h); penpos109(hair,-68); penpos108(hair,-68); penpos108.5(hair,-68);
+z109l=(0.832w,h+apex_o); z109-z108=whatever*((w,0.25h)); x108l=0.458w; z107=whatever[z108l,z109l];
+x107=0.145w; penpos110(stem,angle((w,0.25h))); z110r=whatever[z109l,z109r]; x110r=w;
+z110l-z108.5=whatever*(z110r-z109); z108.5=whatever[z108,z109]; penstroke z101e--z102e; filldraw
+z101'..z105l..z106l{up}--z106r{down} ..z105r...z103---z102l--z102r--z101' & cycle; filldraw
+z106l{up}..z107 & z107--z109l--z110r-- z110l--z108.5r &
+z108.5r{z108-z109}..(x106r,0.738h)..z106r{down}-- z106l & cycle; z0=(w-0.7u,0); w:=5.472u;
+h:=1.376x_height; d:=2.556u; w':=0.863w; penpos1(stem,0); penpos2(stem,0); z1l=z102l;
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5[x0,x2l],1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h);
+penstroke z1e--z2e; filldraw z2l---z3''...z4l--z4r-- z3{dir45}..z5l{right}--z5r{left}
+...z3'---z2r--z2l & cycle; penpos5'(hair,-40); penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o;
+x6r=x1r; z7-z6=whatever*dir48; x7=0.6w+x0; z6'=whatever[z6,z7]; y6'=y6l+apex_o;
+penpos8(1.292stem,39); z5'=whatever[z101,z102]; z8r=(w,0.478x_height)+z0; penpos11(hair,-50);
+penpos10(hair,-50); x10r=x8l; y10l=x_height+apex_o; z10-z11=whatever*((w,0.559x_height)); x11=x1;
+penpos9(1.229stem,angle((w,0.559x_height))); z9=whatever[z11,z10]; y9r=y10r-apex_o;
+z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; z5'r-z6'=whatever*(z1r-z15); penstroke z11e--z10e;
+penstroke z6e---z7e; penpos7'(1.2hair,-40); z7'r=(0.426w,-d)+z0; penstroke z7'e{dir50}...z8e{up}..
+z9e; filldraw z5'l--z1l--z1r-- z15--z7l--
+z6'--z5'r--z5'l & cycle; .endchar;
+
+.cmchar "The Fraktur ligature ck";
+.beginchar(oct"206",3.639lower_u#+3.161lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w:=3.639u; penpos101(hair,-30); penpos102(hair,-30); z102l=(w+0.438u-0.5stem,foot);
+z101r=(0.565w,-apex_o); z101'=whatever[z101,z102]; y101'=y101l+apex_o; z103=whatever[z101l,z102l];
+x103=0.809w; z104=(2/3w,0.176h); penpos105(1.083stem,angle((w,0.4h))); z105=(0.26w,0.214h);
+penpos106(stem,0); z106l=(0,0.5h); penpos109(hair,-68); penpos108(hair,-68); penpos108.5(hair,-68);
+z109l=(0.832w,h+apex_o); z109-z108=whatever*((w,0.25h)); x108l=0.458w; z107=whatever[z108l,z109l];
+x107=0.145w; penpos110(stem,angle((w,0.25h))); z110r=whatever[z109l,z109r]; x110r=w;
+z110l-z108.5=whatever*(z110r-z109); z108.5=whatever[z108,z109]; penstroke z101e--z102e; filldraw
+z101'..z105l..z106l{up}--z106r{down} ..z105r...z103---z102l--z102r--z101' & cycle; filldraw
+z106l{up}..z107 & z107--z109l--z110r-- z110l--z108.5r &
+z108.5r{z108-z109}..(x106r,0.738h)..z106r{down}-- z106l & cycle; z0=(w-0.7u,0);
+w:=3.861u; h:=1.366x_height; w':=1.223w; penpos1(stem,0); penpos2(stem,0); z1l=z102l;
+z2=(x1,x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5[x0,x2l],1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h);
+penstroke z1e--z2e; penpos5''(hair,-90); z5''=z5+(hair,-eps); filldraw z2l---z3''...z4l--z4r--
+z3{dir45}..z5l{right}..z5''l--z5''r..z5r{left} ...z3'---z2r--z2l & cycle; penpos5'(hair,-40);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.8w+x0;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; z5'r-z6'=whatever*(z1r-z15); z5'=whatever[z101,z102]; filldraw z5'l..z1l{up}--z1r--
+z15--z7l-- z6r---z6l...z5'r--z5'l & cycle; penpos1.4(3/4stem,-90); z1.4=(x0+0.928w,.859x_height);
+z1.3=(x0,y1.4r); z1.35=(x2l,y1.4l); filldraw z1.3--z1.35--z1.4l--z1.4r-- z1.3 & cycle;
+penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43);
+z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
+x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r; penpos1.8(stem,60);
+z1.8r=(x0+w,0.579[y1.4l,y5l]); penstroke z1.6e--z1.6'e; penstroke
+z1.5e{dir72}..z1.8e{up}..z1.7e{left}; filldraw z1.6r--z1.7l--z1.7r--z1.6l --z1.6r & cycle;
+.endchar;
+
+.cmchar "The Fraktur ligature st";
+.beginchar(oct"202",6.5lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#);
+w':=0.698w; penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
+z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2);
+z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height;
+z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
+penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112;
+z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22);
+penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
+penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw
+z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle;
+filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
+z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+w':=0.726w; z100=(x0.14,0); penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot)+z100;
+z2=(x1,0.828x_height); z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2);
+penpos4(hair,74); z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke
+z1e--z2e; penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height)+z100;
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=x100+0.53w;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle;
+penpos1.4(3/4stem,-90); z1.4=(0.928x100+0.4916w,.859x_height); z1.3=(x100,y1.4r);
+z1.35=(x2l,y1.4l); filldraw z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0);
+z1.5=0.219[z1.4l,(x2r,y1.4l)]; penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]);
+penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47; x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43);
+z1.6'l=z1.7r; penpos1.8(stem,60);
+z1.8r=(x100+0.529w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,1.186x_height); filldraw
+z1.3--z30l--z30r..z2r{down} --(x2r,y1.3)--z1.3 & cycle; penpos30'(hair,180); z30'=z30;
+penpos30''(hair,-90); z30''r=(x30l,h); penstroke z0.11e{z0.11-z0.9}.. z30''e..z30'e{z1.3-z30l};
+.endchar;
+
+.cmchar "The Fraktur ligature ss";
+.beginchar(oct"201",6.928lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-1.932u#);
+w':=0.655w;
+penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0); z0.2=(x0.1,0.795x_height);
+penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2); z0.12=whatever[z0.1l,z0.2l];
+z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height; z0.12'=z0.12-(0.5apex_o,0);
+z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4; penpos0.5(0.917stem,0);
+z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112; z0.6l-z0.5l=whatever*dir72;
+penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22); penpos0.11(hair,-22);
+z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w'; penpos0.8(whatever,68);
+z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw z0.1r..z0.13'..z0.2r...
+z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; filldraw
+z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
+z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0);
+z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2);
+z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height;
+z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4;
+penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112;
+z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22);
+penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100;
+penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw
+z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle;
+filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e;
+.endchar;
+
+.cmchar "The Fraktur ligature sf";
+.beginchar(oct"203",6.928lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#);
+w':=0.655w; penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
+z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2);
+z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height;
+z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
+penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112;
+z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22);
+penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
+penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw
+z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle;
+filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
+z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0);
+z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2);
+z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height;
+z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4;
+penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112;
+z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22);
+penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100;
+penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw
+z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle;
+filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw
+z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle;
+.endchar;
+
+.cmchar "The Fraktur ligature ff";
+.beginchar(oct"204",6.928lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#-0.85u#);
+w':=0.655w; penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
+z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2); z0.3=(0,y0.2);
+z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r]; y0.12=y0.13=0.512x_height;
+z0.12'=z0.12-(0.5apex_o,0); z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
+penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68); z0.6-z0.5r=whatever*dir112;
+z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0); z0.7l=z0.5l; penpos0.9(hair,-22);
+penpos0.11(hair,-22); z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
+penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r; z0.14=(0.673w',1.366x_height); filldraw
+z0.1r..z0.13'..z0.2r... z0.5r---z0.6l & z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle;
+filldraw z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw z0.6l{dir72}..z0.14{right}..
+z0.8r{dir-22}--z0.8l{dir158}.. z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+z100=(x0.2r,0); penpos1.1(hair,0); z1.1=(0.318w'+x100,-d); penpos1.2(1.313stem,0);
+z1.2=(x1.1,0.795x_height); penpos1.4(3/4stem,-90); z1.4r=(0.857w'+x100,y1.2); z1.3=(x100,y1.2);
+z1.12=whatever[z1.1l,z1.2l]; z1.13=whatever[z1.1r,z1.2r]; y1.12=y1.13=0.512x_height;
+z1.12'=z1.12-(0.5apex_o,0); z1.13'=z1.13+(0.5apex_o,0); z1.35=whatever[z1.12,z1.2l]; y1.35=y1.4;
+penpos1.5(0.917stem,0); z1.5=(x1.1,y1.4l); penpos1.6(hair,-68); z1.6-z1.5r=whatever*dir112;
+z1.6l-z1.5l=whatever*dir72; penpos1.7(hair,0); z1.7l=z1.5l; penpos1.9(hair,-22);
+penpos1.11(hair,-22); z1.11r=(x100+w',1.321x_height); z1.11-z1.9=whatever*dir68; x1.9=0.831w'+x100;
+penpos1.8(whatever,68); z1.8l=z1.9l; y1.8r=y1.11r; z1.14=(0.673w'+x100,1.366x_height); filldraw
+z1.1r..z1.13'..z1.2r... z1.5r---z1.6l & z1.6l--z1.35--z1.2l.. z1.12'..z1.1l--z1.1r & cycle;
+filldraw z1.3..z1.6{z1.6-z1.5l}--z1.2l--z1.3 & cycle; filldraw z1.6l{dir72}..z1.14{right}..
+z1.8r{dir-22}--z1.8l{dir158}.. z1.6r{z1.5l-z1.6}--z1.6l & cycle; penstroke z1.9e--z1.11e; filldraw
+z1.5--z1.4l--z1.4r--z1.2--z1.5 & cycle; filldraw z0.5--z0.4l--z0.4r--z0.2--z0.5 & cycle;
+.endchar;
+
+.cmchar "The Fraktur ligature sz";
+.beginchar(oct"032",5.444lower_u#,1.366x_height#,3.167lower_u#);
+.adjust_fit(0,0.05alpha*w#+usual_right#+0.5u#); w':=0.834w;
+penpos0.1(hair,0); z0.1=(0.318w',-d); penpos0.2(1.313stem,0);
+z0.2=(x0.1,0.795x_height); penpos0.4(3/4stem,-90); z0.4r=(0.857w',y0.2);
+z0.3=(0,y0.2); z0.12=whatever[z0.1l,z0.2l]; z0.13=whatever[z0.1r,z0.2r];
+y0.12=y0.13=0.512x_height; z0.12'=z0.12-(0.5apex_o,0);
+z0.13'=z0.13+(0.5apex_o,0); z0.35=whatever[z0.12,z0.2l]; y0.35=y0.4;
+penpos0.5(0.917stem,0); z0.5=(x0.1,y0.4l); penpos0.6(hair,-68);
+z0.6-z0.5r=whatever*dir112; z0.6l-z0.5l=whatever*dir72; penpos0.7(hair,0);
+z0.7l=z0.5l; penpos0.9(hair,-22); penpos0.11(hair,-22);
+z0.11r=(w',1.321x_height); z0.11-z0.9=whatever*dir68; x0.9=0.831w';
+penpos0.8(whatever,68); z0.8l=z0.9l; y0.8r=y0.11r;
+z0.14=(0.673w',1.366x_height); filldraw z0.1r..z0.13'..z0.2r... z0.5r---z0.6l &
+z0.6l--z0.35--z0.2l.. z0.12'..z0.1l--z0.1r & cycle; filldraw
+z0.3..z0.6{z0.6-z0.5l}--z0.2l--z0.3 & cycle; filldraw
+z0.6l{dir72}..z0.14{right}.. z0.8r{dir-22}--z0.8l{dir158}..
+z0.6r{z0.5l-z0.6}--z0.6l & cycle; penstroke z0.9e--z0.11e;
+z100=(x0.2r-hair,hair); w':=0.633w; d':=0.679w; penpos1(hair,122);
+penpos2(hair,180); penpos3(0.625stem,-42); penpos4(1.313stem,37);
+z1l=(w',0.524h)+z100; z2r=(x0.2,-0.1d'+y100); z3r=(0.548w',-0.8d')+z100;
+z4r=(w'+u,0.103x_height)+z100; penstroke z2e{down}..z3e{right} ..z4e{up};
+penpos5(hair,-90); z5=(0,0.414x_height)+z100; z6-z5=whatever*dir38;
+x6=0.484w'+x100; filldraw z5r{right}..z4l{down}-- z4r{up}..z6--z5r &
+cycle; penpos7(4/3stem,43); z7=(0.629w',0.734x_height)+z100;
+z8=(0.532w',x_height+apex_o)+z100; z9=(0.081w',0.793x_height)+z100;
+penpos9'(hair,-90); z9'l=z9; penstroke z5e{z6-z5r}..z7e{up}; filldraw
+z7l{up}..z9'r{z9-z8}--z9--z8.. z7r{down}--z7l & cycle; .endchar;
+
+.cmchar "The Fraktur ligature tz";
+.beginchar(oct"213",4.75lower_u#,1.186x_height#,3.167lower_u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#+u#);
+w':=0.994w; penpos1(stem,0); penpos2(stem,0); z1=(0.241w',foot); z2=(x1,0.828x_height);
+z3=(1/4[x2l,x2r],x_height+foot); z3'=(x2r,y3); z3''=(x2l,0.633(y3-y2)+y2); penpos4(hair,74);
+z4=(0.5x2l,1.259x_height); penpos5(hair,-90); z5l=(x2r+0.875stem,h); penstroke z1e--z2e;
+penpos5''(hair,-90); z5''=z5+(hair,-eps); penpos5'(hair,-40); z5'l=(0,0.097x_height);
+penpos6(hair,-37); penpos7(hair,-37); y6r=-apex_o; x6r=x1r; z7-z6=whatever*dir48; x7=0.632w;
+z6'=whatever[z6,z7]; y6'=y6l+apex_o; z15=whatever[z6l,z7l]; z15-z1r=whatever*dir-30; penstroke
+z6e---z7e; filldraw z5'l..z1l{up}--z1r-- z15--z7l-- z6r---z6l...z5'r--z5'l & cycle;
+penpos1.4(3/4stem,-90); z1.4=(x1r,.859x_height); z1.3=(0,y1.4r); z1.35=(x2l,y1.4l); filldraw
+z1.3--(x1,y1.35)--z1.4l--z1.4r-- z1.3 & cycle; penpos1.5(hair,0); z1.5=0.219[z1.4l,(x2r,y1.4l)];
+penpos1.6(hair,-43); z1.6r=(x2r,0.283[y1.4l,y5l]); penpos1.7(stem,57); z1.7r-z1.6l=whatever*dir47;
+x1.7r=0.636[x2r,x1.4]; penpos1.6'(hair,-43); z1.6'l=z1.7r;
+penpos1.8(stem,60); z1.8r=(w,0.579[y1.4l,y5l]); penpos30(hair,0); z30l=(x1r,h); filldraw
+z1.3--z30l--z30r..z2r{down} --(x2r,y1.3)--z1.3 & cycle; z100=(x1r-hair,hair); w':=0.725w;
+d':=0.679d; penpos0.1(hair,122); penpos0.2(hair,180); penpos0.3(0.625stem,-42);
+penpos0.4(1.313stem,37); z0.1l=(w',0.524h)+z100; z0.2r=(0,-0.1d')+z100; z0.3r=(0.548w',-d')+z100;
+z0.4r=(w'+u,0.103x_height)+z100; penstroke z0.2e{down}..z0.3e{right} ..z0.4e{up};
+penpos0.5(hair,-90); z0.5=(0,0.414x_height)+z100; z0.6-z0.5=whatever*dir38; x0.6=0.484w'+x100;
+filldraw z0.5r{right}..z0.4l{down}-- z0.4r{up}..z0.6--z0.5r & cycle; penpos0.7(4/3stem,43);
+z0.7=(0.629w',0.734x_height)+z100; z0.8=(0.532w',x_height+apex_o)+z100;
+z0.9=(0.081w',0.793x_height)+z100; penpos0.9'(hair,-90); z0.9'l=z0.9; penstroke
+z0.5e{z0.6-z0.5r}..z0.7e{up}; filldraw z0.7l{up}..z0.9'r{z0.9-z0.8}--z0.9--z0.8..
+z0.7r{down}--z0.7l & cycle; filldraw (x1r,y1.4l){right}.. z0.8{z0.8-z0.9}--z0.9--(x1r,y1.4l) &
+cycle;
+.endchar;
+
+numeric nombre; nombre:= 5gencoef[1,1.155556];
+
+.cmchar "The Fraktur letter a with little-e Umlaut";
+.beginchar(oct"211",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51);
+penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h)));
+penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0);
+penpos12(whatever,-90); penpos11''(hair,-30);
+z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]);
+z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]);
+z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4];
+x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem;
+z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])];
+y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o;
+z10=whatever[z8l,z9l]; y10=0.228h;
+z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]);
+z11''r=(gencoef[0.78w,0.814w],-apex_o);
+z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l);
+z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r;
+z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); z11'=whatever[z11l,z12l];
+y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7];
+penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]);
+filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r..
+z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke
+z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down}
+..z7..z10{z9-z8} & z10--z8' & cycle; z100=(x9l,1.214x_height);
+e_umlaut(100);.endchar;
+
+nombre:= 3.65gencoef[1,1.230769];
+
+.cmchar "The Fraktur letter e with little-e Umlaut";
+.beginchar(oct"220",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1l=(0,0.486h);
+penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]);
+penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]);
+z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w];
+x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8];
+y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l];
+x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h);
+penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69);
+y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69); z6r=(x1r,0.5h);
+z3l-z2=whatever*((w,gencoef[0.3h,0.25h])); x4r=w-gencoef[apex_o,0];
+z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6));
+z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e;
+filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69);
+z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w];
+z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e;
+filldraw z7'{dir135}..z1l{up}..z2 &
+z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10
+..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e; z100=(0.569w,1.214x_height);
+e_umlaut(100);
+.endchar;
+
+nombre:=4.75gencoef[1,1.140351];
+
+.cmchar "The Fraktur letter o with little-e Umlaut";
+.beginchar(oct"231",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]);
+x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31);
+z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0);
+z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22);
+z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l;
+penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]);
+z2-z1=whatever*((w,0.786h)); x8'=x8r;
+y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e..
+z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw
+z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw
+z7l--z7'--z7r--z7l & cycle; z100=(x4,1.214x_height);
+e_umlaut(100);
+.endchar;
+
+nombre:=6.15gencoef[1,1.107527];
+
+.cmchar "The Fraktur letter u with little-e Umlaut";
+.beginchar(oct"236",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h);
+penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90);
+penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r;
+z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58;
+z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke
+z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle;
+penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}--
+z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l
+& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot);
+z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o);
+z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height);
+penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l];
+z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r
+--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e;
+penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o);
+z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up}
+..z15--z14r--z14l--z13 & cycle; z100=(x2l-hair,1.214x_height);
+e_umlaut(100);
+.endchar;
+
+numeric nombre; nombre:= 5gencoef[1,1.155556];
+
+.cmchar "The Fraktur letter a with Umlaut";
+.beginchar(oct"212",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#-gencoef[0.5u#,0]);
+penpos1(stem,0); penpos2(stem,0); penpos3(gencoef[hair,2hair],-51);
+penpos4(hair,-52); penpos5(hair,-52); penpos6(whatever,angle((w,0.35h)));
+penpos8(whatever,0); penpos9(hair,gencoef[-30,-50]); penpos11(whatever,0);
+penpos12(whatever,-90); penpos11''(hair,-30);
+z1=(gencoef[0.7w,0.779w],gencoef[0.345h,0.24h]);
+z2=(x1,gencoef[0.807h,0.74h]); z3r=(gencoef[0.911w,w],gencoef[0.925h,0.829h]);
+z4l=(gencoef[x2l,0.452w],h+apex_o); z5=whatever[(0,gencoef[0.74h,0.685h]),z4];
+x5l=gencoef[1/3w,0.288w]; z6l=(0,gencoef[0.462h,0.342h]); x6r=1.083stem;
+z9=(gencoef[0.694w,0.764w],y1); z8l=whatever[z9l,(w,gencoef[0.623h,0.404h])];
+y8=-apex_o; z9r-z8r=whatever*(z9l-z8l); z8'=whatever[z8l,z9l]; y8'=y8+apex_o;
+z10=whatever[z8l,z9l]; y10=0.228h;
+z7=(gencoef[0.439w,0.481w],gencoef[0.203h,0.171h]);
+z11''r=(gencoef[0.78w,0.814w],-apex_o);
+z12r-z11''r=whatever*((gencoef[x9l,0.6w],y9l)-z8l);
+z12l-z11''l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); x12=w; z11r=z11''r;
+z12l-z11l=whatever*((gencoef[x9l,0.6w],y9l)-z8l); z11'=whatever[z11l,z12l];
+y11'=y11+apex_o; z12'=whatever[z11l,z12l]; y12'=gencoef[0.217h,y7];
+penpos2'(stem,0); z2'=(x2,gencoef[y2,0.651h]);
+filldraw z11'..z1l{up}--z2l--z5r-- z4l{0.7[z2l,z3r]-z4l}..z3l--z3r..
+z2'r{down}---z1r...z12'--z12l--z12r --z11r--z11l--z11' & cycle; penstroke
+z6e{up}...z5e---z4e; penstroke z8e--z9e; filldraw z8'..z6l{up}--z6r{down}
+..z7..z10{z9-z8} & z10--z8' & cycle; z100=(x9l,1.214x_height);
+umlaut(100);.endchar;
+
+nombre:= 3.65gencoef[1,1.230769];
+
+.cmchar "The Fraktur letter e with Umlaut";
+.beginchar(oct"221",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1l=(0,0.486h);
+penpos7(gencoef[hair,1.2hair],gencoef[-45,-56]);
+penpos8(gencoef[hair,1.2hair],gencoef[-45,-56]);
+z8-z7=whatever*((w,gencoef[0.45h,0.356h])); x8r=gencoef[w,0.9w];
+x7r=gencoef[x1r,0.4125w]; y7r=-apex_o; z7'=whatever[z7,z8];
+y7'=gencoef[y7l,y7r]; x7':=gencoef[x7',x7r]; z9=whatever[z7l,z8l];
+x9=gencoef[0.8w,x8l]; z2=(gencoef[0.092w,0.07475w],0.828h);
+penpos3(gencoef[hair,1.2hair],-69); penpos4(gencoef[hair,1.2hair],-69);
+y3l=h+apex_o; penpos6(gencoef[hair,1.2hair],-69); z6r=(x1r,0.5h);
+z3l-z2=whatever*((w,gencoef[0.3h,0.25h])); x4r=w-gencoef[apex_o,0];
+z4-z6=whatever*((w,gencoef[0.3h,0.226h])); penpos5(1.083stem,angle(z4-z6));
+z5r=z4r; z5'=whatever[z2,z3l]; z5'-z5l=whatever*(z3-z4); penstroke z6e--z4e;
+filldraw z5l--z5'--z3l--z4r--z5l & cycle; penpos2'(gencoef[hair,1.2hair],-69);
+z3-z2'=whatever*(z4-z6); x2'r=gencoef[x1r,0.5w];
+z10=whatever[(0,0),(w,gencoef[0.301h,0.363h])]; y10=0.193h; penstroke z2'e--z3e;
+filldraw z7'{dir135}..z1l{up}..z2 &
+z2..z2'l{z4-z6}--z2'r{gencoef[down,z6-z4]}..{down}z1r..z10
+..z9{z8-z7}--z8l-- z8r--z7' & cycle; penstroke z7e--z8e; z100=(0.569w,1.214x_height);
+umlaut(100);
+.endchar;
+
+nombre:=4.75gencoef[1,1.140351];
+
+.cmchar "The Fraktur letter o with Umlaut";
+.beginchar(oct"232",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,-37); penpos2(hair,-37); z9=(0,gencoef[0.117h,0.19863h]);
+x1r=gencoef[0.5w,0.561224w]; y1r=-apex_o; penpos3(1.083stem,31);
+z3r=(w,gencoef[0.479h,0.589h]); penpos7(stem,0);
+z7=(gencoef[0.211w,0.184w],gencoef[0.866h,0.829h]); penpos4(1.083stem,22);
+z4-z7l=whatever*dir22; y4r=h+apex_o; penpos5'(hair,-68); z5'l=z7l;
+penpos6(hair,-68); z6l=z4; penpos8(stem,0); z8=(x7,gencoef[foot,0.267h]);
+z2-z1=whatever*((w,0.786h)); x8'=x8r;
+y8'=foot; z2-z8r=whatever*(z1-z9); penstroke z1e---z2e...z3e..
+z4e{dir122}; penstroke z5'e--z6e; penstroke z8e--z7e; filldraw
+z9..z8l{up}--z8r--z2l--z1l--z9 & cycle; z7'=whatever[z5',z6]; x7'=x7r; filldraw
+z7l--z7'--z7r--z7l & cycle; z100=(x4,1.214x_height);
+umlaut(100);
+.endchar;
+
+nombre:=6.15gencoef[1,1.107527];
+
+.cmchar "The Fraktur letter u with Umlaut";
+.beginchar(oct"237",nombre*lower_u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.727w,foot); penpos2(stem,0); z2=(x1,0.838h);
+penpos3(2/3hair,90); penpos4(2/3hair,0); penpos5(2/3hair,-90);
+penpos3'(1.5stem,0); z3'=(x1,0.5[y2,h+apex_o]); z3=z3'l; z5=z3'r;
+z4=(x1,h+apex_o); penpos16(hair,-32); penpos17(hair,-32); z17-z16=whatever*dir58;
+z16r=(0.795w,-apex_o); x17r=w; z18=whatever[z16,z17]; y18=0.179h; penstroke
+z1e--z2e; filldraw z1l--z16--z18{dir148}.. (x1r,0.31h){up}--z1l & cycle;
+penstroke z16e--z17e; filldraw z2l{up}..z3l{dir165}--
+z3r{dir15}..z4l{dir75}--z4r{dir-75} ..z5l{dir-15}--z5r{dir195}..z2r{down} --z2l
+& cycle; penpos11(stem,0); penpos12(stem,0); z11=(0.257w,foot);
+z12=(x11,0.71x_height); penpos7(hair,-41); penpos6(hair,-41); z7r=(x11r,-apex_o);
+z6r=whatever[z7r,z1l]; x6=x1; penpos9(hair,90); z9=(0.063w,0.11x_height);
+penpos8(whatever,0); z8r=z7r; x8l=x7l; z10=whatever[z7l,z6l];
+z10-z11r=whatever*dir-41; filldraw z9l{right}..z8l--z8r--z6r
+--z6l--z10--z11r--z11l{down}..z9r{dir195} --z9l & cycle; penstroke z11e--z12e;
+penpos14(hair,-38); z14l=(0,0.805x_height); z13=(0.217w,h+apex_o);
+z15-z14r=whatever*(z13-z14l); x15=0.097w; filldraw z13..z12r{down}--z12l{up}
+..z15--z14r--z14l--z13 & cycle; z100=(x2l-hair,1.214x_height);
+umlaut(100);
+.endchar;
+
+.cmchar "The Fraktur hyphen";
+.beginchar(oct"055",4u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(0.5stem,-90);
+penpos2(0.5stem,-90);
+penpos3(0.5stem,-90);
+penpos4(0.5stem,-90); penpos5(stem,-90);
+z2-z1=whatever*dir35;
+z4-z3=whatever*dir35;
+z3r=z5l; z5r=z1l; x1=0;
+x2=x4=w;
+y1r=foot;
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+.endchar;
+
+def par_s(suffix $) =
+h':=cap_height; w':=0.379h';
+z$.1=z$+(0.5w',0.5h');
+penpos$.1(stem,30);
+penpos$.2(2hair,0);
+penpos$.3(hair,-90);
+penpos$.4(hair,180);
+penpos$.5(hair,90);
+z$.2l=z$+(0,0.8h'); z$.3l=(x$.1,y$+h');
+z$.4=z$+(0.84w',0.886h');
+z$.5=(x$.4r,y$+0.826h');
+penstroke z$.2e{up}..z$.3e
+{right} if panw: ..z$.4e{down}..z$.5e{left} fi;
+penpos$.6(2hair,90); z$.6l=z$.5l;
+if panw:
+filldraw z$.6r..z$.6l..z$.6r & cycle;
+fi
+penpos$.1'(stem,-150);
+penpos$.2'(2hair,180);
+penpos$.3'(hair,90);
+penpos$.4'(hair,0);
+penpos$.5'(hair,-90);
+z$.1=z$.1';
+z$.2'r=z$+(w',0.2h'); z$.3'r=(x$.1,y$);
+z$.4'=z$+(0.16w',0.114h');
+z$.5'=(x$.4'r,y$+0.174h');
+penpos$.2''(2hair,0); z$.2''=z$.2';
+z$.25=(z$.2''{up}..z$.2{up})
+intersectionpoint (z$+(0,0.5h')--
+z$+(w',0.5h'));
+penpos$.25(stem,30);
+penstroke z$.2''e{up}..z$.25e..
+z$.2e{up};
+penstroke z$.2'e{down}..z$.3'e
+{left} if katw: ..z$.4'e{up}..z$.5'e{right} fi;
+penpos$.6'(2hair,-90); z$.6'l=z$.5'l;
+if katw:
+filldraw z$.6'r..z$.6'l..z$.6'r & cycle;
+fi
+enddef;
+
+.cmchar "The Fraktur paragraph sign";
+.beginchar(oct"074",7.4u#,cap_height#,3.167u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+boolean panw, katw;
+panw:=true; katw:=false;
+z0=(0.17h,0); par_s(0);
+panw:=false; katw:=true;
+z1=(0,-0.3h); par_s(1);
+.endchar;
+
+.cmchar "The Fraktur paragraph sign";
+.beginchar(oct"244",7.4u#,cap_height#,3.167u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+boolean panw, katw;
+panw:=true; katw:=false;
+z0=(0.17h,0); par_s(0);
+panw:=false; katw:=true;
+z1=(0,-0.3h); par_s(1);
+.endchar;
+
+.cmchar "The Fraktur Mitlaut J proposed by Sanders in 1879";
+.beginchar("$",8.541u#,cap_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,28); penpos2(cap_hair,-17.5); penpos3(0.889cap_stem,-116); penpos4(cap_stem,-126);
+penpos5(cap_hair,-44); penpos6(1.056cap_stem,53); penpos7(1.056cap_stem,21); penpos8(cap_hair,-90);
+penpos9(cap_hair,180); z1=(0.115w,-0.886d); z2r=(x1,-0.519d); z3=(0.234w,-0.1d); z4r=(0.517w,-d);
+z5=(0.795w,-0.329d); z6r=(0.966w,0.196h); z7=(0.636w,0.56h); z8=(0.808w,0.683h); z9l=(x6r,0.554h);
+penstroke z1e..z2e{up}..z3e{right} ..z4e{right}..z5e..z6e{up}..z7e{up} ..z8e{right}..z9e{down};
+penpos10(1.037cap_stem,50); penpos11(cap_hair,-45); penpos12(0.889cap_stem,43);
+penpos13(1.185cap_stem,-146); penpos14(0.741cap_stem,-119); penpos15(cap_hair,0);
+penpos16(cap_hair,28); z10l=z11r=(0.1w,0.515h); z12l=(0,0.69h); z13l=(0.506w,h+apex_o);
+z14r=z8l+(0,0.035h); z15r=(w,0.875h); z16=(x15l,0.924h); filldraw z11l{z12r-z11l}..z12l{up}--
+z12r{down}..z10r--z10l--z11l & cycle; penstroke z12e{up}..z13e{right}..
+z14e{right}..z15e{up}..z16e{dir118}; penpos20(hair,-41); penpos21(hair,-41);
+penpos22(2/3cap_stem,-90); penpos23(0.593cap_stem,-113); z20l=(0,0.235h); z21=(x8,0.48y8);
+z22=(0.261w,0.328h); z23=(0.586w,0.251h); penstroke z20e..z22e{right}..z23e{right} ..z21e;
+.endchar;
+
+.cmchar "The Fraktur symbol for etc"; .beginchar(oct"311",8.194lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#); penpos1(hair,-52);
+penpos2(hair,-52); penpos3(stem,48); penpos4(stem,48); penpos5(hair,-42); penpos6(1.2stem,34);
+penpos8(hair,-49); z1r=(0.22w,-apex_o); z2-z1=whatever*dir38; x2=0.458w; z3l=z1r;
+z4l-z1r=whatever*dir140; x4l=0; z5l=z4; y6=0.707h; x6r=x2r; z7=(0.231w,h+apex_o);
+z9=(0.163w,0.841h); z8l=(0,0.793h); penstroke z1e--z2e; penstroke z3e--z4e; penstroke
+z5e{z4r-z4l}..z6e{up}; filldraw z6r{up}..z7{dir160} & z7-- z8l--z8r{z7-z8l}..z9{right}..z6l{down}
+--z6r & cycle; penpos10(hair,-59); penpos11(hair,-59); penpos12(whatever,50); penpos13(1.2stem,30);
+penpos14(stem,11.5); penpos15(hair,-75); penpos16(0.857stem,14); penpos17(0.857stem,14);
+z11r=(0.695w,-apex_o); z10-z11=whatever*dir31; x10r=w; z12l=z11r; z12r=whatever[z11l,z10l];
+z13=(0.631w,0.49h); z14=(0.678w,0.859h); z16r=(w,y8l); z15-z16r=whatever*dir105; y15l=h+apex_o;
+z17r=z15; penstroke z11e--z10e; penstroke z12e..z13e{up}..z14e.. z15e{z16r-z16l}; penstroke
+z16e--z17e;
+.endchar;
+
+.cmchar "Scandinavian circle accent";
+.beginchar(oct"027",9u#,cap_height#,0);
+.adjust_fit(0,0);
+penpos0.1(2u,45); z0.1=z0=(0.5w,1.283x_height);
+pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30;
+z0.2=z0.1r; z0.3=z0.1l; rt x0.4=rt x0.2; top y0.4=y0;
+draw z0.2..z0.3..z0.2;
+penlabels(1,2,3,4); .endchar;
+
+.cmchar "The Fraktur letter dotless j";
+.beginchar(oct"021",2.944lower_u#,x_height#,1.611lower_u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(hair,47); penpos2(1.3hair,-90); z2r=(0.16w,-d); penpos5(stem,0);
+z5=(0.523w,0.124h); penpos3(2/3stem,0); z3l=(x5l,0.048h); penpos6(stem,0);
+z6=(x5,0.824h); penpos7(hair,-90); z7=(0.906w,0.91h); penpos8(hair,-48);
+penpos9(hair,-48); z8l=(0.481w,h+apex_o); z8-z9=whatever*((w,0.3448h)); x9l=0;
+z9'=whatever[z9r,z8r]; y9'=y9l+apex_o; z1r=(x5r+0.5stem,-0.207d);penstroke
+z2e..z3e{up}; penstroke z5e--z6e; filldraw z1r{dir137}..z5r{up}--z5l
+--z3l--z3r..z1l{dir-43}--z1r & cycle; filldraw z6r{up}..z7r{right}--z7l...
+z8r---z8l--z9l--z9r--z9'.. z6l{down}--z6r & cycle; penpos11(hair,0);
+z11r=(x8l,1.076h); z12=(0.571w,1.279h); z13=(0.744w,1.238h);
+.endchar;
+
+.cmchar "The Fraktur letter dotless i";
+.beginchar(oct"020",2.889lower_u#,x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(hair,-44); penpos2(hair,-44); penpos3(hair,-44); z1l=(0,0.834h);
+z2-z1=whatever*((w,0.37h)); y2l=h+apex_o; z3=whatever[z2l,z2r]; x3r=x5r+0.5stem;
+z4=(0.606w,0.931h); penpos5(stem,0); z5=(0.433w,0.759h); z6=(x5,0.238h);
+penpos6(stem,0); z7=(x6l,0.079h); z8-z7=whatever*dir-40; y8=-apex_o;
+penpos9(hair,-38); z9r-z8=whatever*dir52; x9r=w; z10=(0.788w,0.152h);
+z5'=whatever[z1,z2]; x5'=x5l; penstroke z5e--z6e; penstroke z1e--z2e; filldraw
+z5r{up}..z3r--z2--z5'--z5l{down} --z5r & cycle; filldraw z8--z9r--z9l{z8-z9r}
+..z6r{up}--z6l{down}..{z8-z7}z8 & cycle; penpos11(hair,0); z11r=(x2l,1.076h);
+z12=(0.56w,1.279h); z13=(0.73w,1.238h);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yfraknum.mf b/Master/texmf-dist/fonts/source/public/gothic/yfraknum.mf
new file mode 100644
index 00000000000..56ef6327e95
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yfraknum.mf
@@ -0,0 +1,194 @@
+.cmchar "The Fraktur numeral 1";
+.beginchar("1",2.778u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos2(w,0); z2=(0.5w,0);
+penpos1(stem,0); z1=(0.5w,foot);
+penpos3(hair,90); penpos4(hair,90);
+z3l=z2l; z4l=z2r; penpos5(stem,0);
+z5=(x1,0.79h); penpos6(hair,0);
+z6r=(x5r,h); penpos7(1.5hair,90);
+z7=(0,0.9h);
+filldraw z4l--z4r...z1r---z6r--
+z6l..z7r{left}--z7l{right}...
+z5l---z1l...z3r--z2l--z4l & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 2";
+.beginchar("2",5.694u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(0.625stem,-90); penpos2(stem,-90);
+penpos3(4/3stem,-115);
+z1r=(0,0); z2r=(0.722w,0.026h);
+x3l=w; y3r=-apex_o;
+penstroke z1e..z2e{right}..z3e;
+penpos4(0.917stem,20);
+z4r=(0.966w,0.721h);
+z5=(0.478w,0.848h);
+z6=(0.244w,h+apex_o);
+z7=(0.093w,0.822h);
+penpos8(hair,13); z8=(0.146w,3/4h);
+penstroke z1e{dir44}..z4e{up};
+filldraw z8r..z5{right}..z4l{down}
+--z4r{up}..z6{dir173} & z6--z7--z8l--z8r &
+cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 3";
+.beginchar("3",5.5u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.5hair,-90); penpos2(stem,18);
+penpos3(1.833stem,35);
+penpos4(hair,-90); penpos5(0.625stem,0);
+z1r=(0,-apex_o); z2=(0.788w,0.353h);
+z4r=(0.167w,0.489h); z5r=(w,h);
+z3l=z4r;
+penstroke z1e{dir12}..z2e{up}..z3e{left};
+penstroke z4e{dir30}..z5e{up};
+penpos7(0.917stem,-90);
+penpos8(0.417stem,-17);
+penpos9(hair,0);
+z8l=(0,0.796h); z9l-z8l=whatever*dir73;
+y9=h+apex_o; z7l=(0.273w,h-apex_o);
+z6=(z4l{dir30}..z5l{up}) intersectionpoint
+((0,y7r+apex_o)--(w,y7r+apex_o));
+filldraw z8l--z9l--z9r..z7l{right}...
+z5l---z5r--z6..z7r{left}..z8r{z8l-z9l}
+--z8l & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 4";
+.beginchar("4",7.361u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(stem,0); penpos2(stem,0);
+z1=(0.619w,foot); z2=(x1,0.831h);
+z3=(x1,h); z4=(0,0.444h);
+penpos6(0.521stem,90); z6=(0.796w,0.45h);
+y5=y6l; (x2r,h)-z5=whatever*dir50;
+z4'=(1/45w,y6r); z3'-z4'=whatever*dir50;
+x3'=x2l; penpos9(hair,90);
+penpos10(hair,-90); z9l=(x1-stem,0);
+z10r=(x1+stem,0);
+z8=(w,0.521h); z7=(0.921w,0.376h);
+filldraw z9l--z9r...z1l---z2l--
+z2r---z1r...z10l--z10r--z9l & cycle;
+z3''=whatever[z5,(x2r,h)]; x3''=x2l;
+filldraw z2l--z3''--z5--z4'---z3'...
+z3{right}..{down}z2r--z2l & cycle;
+filldraw z6l---z5...z4{up}..z4'{z3'-z4'}
+& z4'---z6r...z8{right}--z7..
+z6l{left} & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 5";
+.beginchar("5",5.528u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(0.458stem,-60); penpos2(1.125stem,25);
+penpos3(1.125stem,65); penpos4(1.167stem,53);
+penpos5(1.5hair,-25); penpos6(0.958stem,-77);
+z1=(0.221w,-apex_o); z2=(0.729w,0.417h);
+z3=(0.462w,0.578h); z4l=(0,0.618h);
+z5=(0.161w,0.814h); z6l=(0.349w,h);
+z7=(0.673w,0.98h); z8=(w,h);
+z9=(0.851w,0.828h);
+penstroke z1e{dir30}..z2e{up}..
+z3e{dir169}..z4e{up}..z5e{dir65}..z6e{right};
+filldraw z6l{right}..z7..z8 & z8--z9 &
+z9..{left}z6r--z6l & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 6";
+.beginchar("6",6.056u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.4hair,-42); penpos2(1.208stem,40);
+penpos3(1.125stem,54); penpos4(1.2hair,-36);
+penpos5(stem,30); penpos7(hair,-45);
+z1l=(0.716w,h+apex_o); z2l=(0,0.342h);
+z3l=(0.674w,-apex_o);
+penstroke z3e..z2e{up}..z1e{dir48};
+z4r=z3; z5r=(w,0.362h); z6=(0.573w,0.753h);
+z6-z7l=whatever*dir45; y7l=0.555h;
+z8=(0.477w,0.566h);
+filldraw z4r---z3r...z5r{up}..z6{dir135}
+--z7l--z7r{z6-z7l}..z8{right}..z5l{down}
+..z4l{z3l-z3r}--z4r & cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 7";
+.beginchar("7",5.906u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.417stem,0); z1=(0.466w,0);
+penpos2(hair,-57); y2l=h; x2r=w;
+penstroke z1e{up}..z2e{dir64};
+penpos3(hair,-20); penpos5(stem,-90);
+z3l=(0,0.776h); z5l=(0.24w,h);
+z4-z3l=whatever*dir70; y4=h+apex_o;
+z6=(z5r--(w,y5r)) intersectionpoint
+(z1{up}..z2{dir64});
+filldraw z3r{z4-z3l}...z5r---z6--
+z2--z2l---z5l...z4 & z4--z3l--z3r &
+cycle;
+.endchar;
+
+.cmchar "The Fraktur numeral 8";
+.beginchar("8",6.722u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.042stem,61.5);
+penpos2(hair,110);
+z1=z2=(0.5w,0.51h);
+penpos3(0.917stem,24);
+z3l=(0.083w,0.721h);
+penpos5(0.917stem,-204);
+z5l=(w-x3l,y3l);
+penpos4(hair,-90); z4l=(0.5w,h+apex_o);
+penpos6(stem,180); z6r=(0,0.245h);
+penpos7(2hair,-90); z7r=(0.5w,-apex_o);
+penpos8(stem,0); z8r=(w,y6);
+penstroke z1e{dir151.5}..z3e{up}..
+z4e{right}..z5e{down}..z2e{dir200}..
+z6e{down}..z7e{right}..z8e{up}..
+z1e{dir151.5};
+.endchar;
+
+.cmchar "The Fraktur numeral 9";
+.beginchar("9",6.056u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.4hair,-42); penpos2(1.208stem,40);
+penpos3(1.125stem,54); penpos4(1.2hair,-36);
+penpos5(stem,30); penpos7(hair,-45);
+z1l=(0.716w,h+apex_o); z2l=(0,0.342h);
+z3l=(0.674w,-apex_o);
+penstroke z3e..z2e{up}..z1e{dir48};
+z4r=z3; z5r=(w,0.362h); z6=(0.573w,0.753h);
+z6-z7l=whatever*dir45; y7l=0.555h;
+z8=(0.477w,0.566h);
+filldraw z4r---z3r...z5r{up}..z6{dir135}
+--z7l--z7r{z6-z7l}..z8{right}..z5l{down}
+..z4l{z3l-z3r}--z4r & cycle;
+transform gurisma;
+gurisma=identity
+rotatedaround ((0.5w,0.5h),180);
+picture krufo;
+krufo:= currentpicture transformed
+gurisma;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The Fraktur numeral 0";
+.beginchar("0",7.332u#,1.2x_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.059stem,-143);
+penpos2(stem,-140);
+penpos3(1.05stem,-136);
+penpos4(1.1stem,-142);
+penpos5(hair,128);
+penpos6(hair,127);
+z1l=(0.535w,h+apex_o); z4r=(w-x1l,-apex_o);
+z2l=(w,0.528h); x3r=0; y3=y2l+apex_o;
+z5l=z4; z6r=z1;
+penstroke z1e{dir-25}..z2e{down}..
+z5e{z4r-z4l};
+penstroke z6e{z1r-z1l}..z3e{down}..
+z4e{dir-31};
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yfrakoth.mf b/Master/texmf-dist/fonts/source/public/gothic/yfrakoth.mf
new file mode 100644
index 00000000000..b0f939e8e05
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yfrakoth.mf
@@ -0,0 +1,528 @@
+.cmchar "The Fraktur comma";
+.beginchar(",",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+%penstroke z1e--z2e;
+penpos10(0.11785*(x_height+2apex_o),-30);
+z10l=(x2l-apex_o,-1.3y2r);
+filldraw z10l--z2l+(2hair,0){up}..{down}
+z1r--z10r--z10l & cycle;
+.endchar;
+
+.cmchar "The Fraktur colon";
+.beginchar(":",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+penstroke z1e--z2e;
+penstroke z5e--z6e;
+.endchar;
+
+.cmchar "The Fraktur semicolon";
+.beginchar(";",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+penstroke z1e--z2e;
+penstroke z5e--z6e;
+penpos10(hair,-30); z10l=(x2l,-y2r);
+filldraw z10l{z1r-z10r}..z2l{z2-z1}
+& z2l--z1r--z10r--z10l & cycle;
+.endchar;
+
+.cmchar "The Fraktur point";
+.beginchar(".",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+pointpoint;
+.endchar;
+
+.cmchar "Grave accent";
+.beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+.adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); .endchar;
+
+.cmchar "Acute accent";
+.beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+.adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); .endchar;
+
+.cmchar "Hachek (check) accent";
+.beginchar(oct"024",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ .adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ .adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); .endchar;
+
+.cmchar "Breve accent";
+.beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+.adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); .endchar;
+
+.cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+.beginchar(oct"026",6u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+.adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(2/3stem,70); pos2(2/3stem,70);
+top y1r=top y2r=h+o; lft x1r=w-rt x2l=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Cedilla accent";
+.beginchar(oct"030",8u#,0,.875desc_depth#);
+.adjust_fit(0,0);
+x1=.5w+.5u;
+if serifs: pickup crisp.nib; pos1(eps,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); .endchar;
+
+.cmchar "Circumflex (hat) accent";
+.beginchar(oct"136",9u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ .adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ .adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); .endchar;
+
+iff ligs>0: .cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+.beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+.adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+penlabels(1,2); .endchar;
+
+iff ligs>0: .cmchar "Long Hungarian umlaut accent";
+.beginchar(oct"175",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+.adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); .endchar;
+
+.cmchar "Tilde (squiggle) accent";
+.beginchar(oct"176",9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+.adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); .endchar;
+
+.cmchar "Opening Gaensefuesschen";
+.beginchar(oct"134",9u#,asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+.adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y2-.5dot_size=0;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); .endchar;
+
+
+.cmchar "Closing Gaensefuesschen";
+.beginchar(oct"042",9u#,asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+.adjust_fit(0,0);
+x1-.5dot_size=hround .6u;
+ y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2);
+.endchar;
+
+.cmchar "En dash";
+.beginchar(oct"173",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Em dash";
+.beginchar(oct"174",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Hash mark (number sign)";
+if monospace: compute_spread(.6x_height#,.7x_height#);
+else: compute_spread(.45x_height#,.55x_height#); fi
+.beginchar("#",15u#,asc_height#,asc_depth#);
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+.adjust_fit(0,0);
+pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); .endchar;
+
+.cmchar "Per cent sign";
+.beginchar("%",15u#,
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+.adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); .endchar;
+
+.cmchar "Apostrophe";
+.beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+.adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); .endchar;
+
+.cmchar "Left parenthesis";
+.beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+.adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); .endchar;
+
+.cmchar "Right parenthesis";
+.beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+.adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); .endchar;
+
+.cmchar "Asterisk";
+.beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+.adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); .endchar;
+
+.cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); .endchar;
+
+.cmchar "Virgule (slash)";
+.beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+.adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); .endchar;
+
+.cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+.beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+.adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); .endchar;
+
+.cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,6u#);
+.beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+.adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); .endchar;
+
+.cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,6u#);
+.beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+.adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); .endchar;
+
+.cmchar "Reverse apostrophe";
+.beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+.adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); .endchar;
+
+cmchar "Exclamation point";
+beginchar("!",5u#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pointpoint;
+pickup tiny.nib; pos103(dot_size,0); pos104(dot_size,90);
+lft x103l=hround(.5w-.5dot_size); bot y104l=0; z103=z104; % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos101(dot_size,0); pos102(bot_width,0);
+x101=x102=x103; bot y102=.25[top y104r,x_height]+1;
+if square_dots: top y101=h;
+ filldraw stroke z101e--z102e; % stem
+else: top z100=(x101,h+o); y101+.5dot_size=h+o;
+ filldraw z101r...z100...z101l---z102l--z102r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pointpoint;
+pickup tiny.nib; pos107(dot_size,0); pos108(dot_size,90);
+lft x107l=hround(.5w-.25u-.5dot_size); bot y108l=0; z107=z108; % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos102(vair,90); pos103(curve,0);
+pos104(vair,-90); pos105(bot_width,0); pos106(bot_width,0);
+x102=x104=x105=x106=x107; rt x103r=hround(w-u); bot y106=1+.25[top y108r,x_height];
+top y102r=h+oo; y103=.75[y106,y102]; y104=.5[y106,y102]; y105=.1[y106,y102];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(102,103)(superpull)
+ & subpath (0,1) of super_arc.e(103,104) .. z105e---z106e\\}}; % arc and stem
+if serifs: pos101(hair,180); pos100(flare,180);
+ lft x101r=hround u; y101=y103; bulb(102,101,100); % bulb
+else: pos101(Vround 5/7[vair,flare],110);
+ lft x101r=hround u; top y101r=vround .9[y106,top y102r];
+ filldraw stroke term.e(102,101,left,101,104); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "Ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o;
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(fudged.hair,0);
+ rt x0r+jut=hround(w-.9u); top y0=x_height;
+ pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)];
+ y1=max(y0-1.5bracket-.2x_height,2/3x_height);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u);
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(vair,theta); y5=.5h;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=w-3.5u; bot y10l=-o;
+pos9(fudged.stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height;
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[slab,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .07bar_height-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yfrakupp.mf b/Master/texmf-dist/fonts/source/public/gothic/yfrakupp.mf
new file mode 100644
index 00000000000..df5a8046e0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yfrakupp.mf
@@ -0,0 +1,1342 @@
+.cmchar "The Fraktur letter A";
+.beginchar("A",9.522u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+% made in Athens, Greece on Friday July 27, 1990
+penpos1(cap_hair,-51);
+penpos2(cap_hair,-51);
+z2-z1=whatever*dir39;
+x2r=w; z1r=(0.722w,-apex_o);
+penpos4'(cap_hair,39); z4'l=z1l;
+z4'r=z4;
+penpos5(cap_stem,0);
+z5=(x1r,0.223h);
+penpos13(cap_hair,-62); z13r=z5r;
+z13l-z14=whatever*dir26;
+z13r-z14'=whatever*dir26;
+y14=0; y14'=-apex_o;
+z6=whatever[z14',z13r]; x6=x5l;
+filldraw z14--z13l--z13r{down}..
+z2l{z2-z1}--z2r--z1r--z1l--z4--
+z6--z14'--z14 & cycle;
+filldraw z5l--z6--z5r--z5l & cycle;
+z1.1=whatever[z6,z4]; y1.1=y4+cap_hair;
+filldraw z1l{z2-z1}..z1.1{z6-z4}--
+z2--z1r--z1l & cycle;
+%
+%
+%
+penpos7(cap_stem,0); z7=(x5,0.862h);
+penpos8(cap_hair,-57);
+penpos9(cap_hair,-57);
+z8l=z7l; z9-z8=whatever*dir33;
+y9=h; z10=(0.937w,h+apex_o);
+z11=(0.99w,0.981h); z12=(0.953w,0.955h);
+z9'=whatever[z8r,z9r];
+x9'=0.4[x7r,x9r];
+penstroke z5e--z7e;
+filldraw z7r{up}..z9'{z9-z8}--
+z9r..z12{right}..z11{up}..z10{left}
+...z9l---z8l--z7r & cycle;
+%
+%
+%
+penpos15(cap_hair,-90); z15=(0,0.213h);
+z15r-z16=whatever*dir137;
+x16=0.936x14; z17=whatever[z14,z13l];
+x17=0.392w;
+penpos18(cap_hair,-43);
+z18-z17=whatever*dir133;
+y18r=y15l; penpos19(0.815cap_stem,0);
+x19=0.5w; y19=0.521h;
+z14''=(x14'-cap_hair,0);
+filldraw z15l{right}..z18l..z19l{up}
+--z19r{down}..z18r{dir-162}--
+z17--z14''{dir72}...z16---z15r--
+z15l & cycle;
+%
+%
+%
+penpos20'(1.037cap_stem,29.5);
+z20'=(0.405w,0.846h);
+penpos20(0.889cap_stem,50);
+z20=(x18r,0.904h);
+penpos21(1.25cap_hair,180);
+z21r=(0,3/4h);
+penpos22(1.148cap_stem,-162);
+z22l=(x20,0.678h);
+penpos23(cap_hair,180);
+z23=(0.284w,0.535h);
+penpos24(0.685cap_stem,66.6);
+z24l=(x22,0.367h);
+z25=(0.027w,0.426h); z26=(0.079w,0.473h);
+penstroke z19e{up}..z20'e{dir135}..
+z20e{left}..z21e{down}..z22e{dir-45}
+..z23e{down}..z24e{left};
+filldraw z24l{left}..z25{up}..z26{right}
+..z24r{right}--z24l & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter B";
+.beginchar("B",12.415u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0.045w,0.096h); z2=(0.081w,0.141h);
+z3=(0,0.165h); z4=(x1,0.213h);
+penpos5(cap_stem,-142);
+z5=(0.179w,0.301h);
+penpos6(1.259cap_stem,-147);
+z6r=(0.538w,-apex_o);
+penpos7(cap_hair,-65);
+z7=(0.775w,0.103h);
+penpos8(0.907cap_stem,30);
+z8r=(w,0.4h);
+penpos9(1.741cap_stem,27);
+z9l=(x6r,0.6h);
+filldraw z1{right}..z2{up}..z4 &
+z4..z5r{right}..z6r{right} &
+z6r---z7r...z8r{up}..z9r{left}--
+z9l{right}..z8l{down}..z7l..z6l{left}
+..z5l{left}..z3{down}..z1{right} &
+cycle;
+%
+%
+%
+penpos10(1.222cap_stem,-153);
+z10r=0.883[z9l,z9r];
+penpos11(2/3cap_hair,-63);
+z11r=whatever[z9,z10]; x11=x10l+cap_hair;
+penpos13(1.056cap_stem,-125);
+z13l=(0.691w,h);
+z12=(z13l{right}..z10l{dir-63})
+intersectionpoint ((x10l-1.5hair,0)--
+(x10l-1.5hair,h));
+penpos14(cap_hair,0);
+penpos16(0.889cap_stem,17); z16r=z9l;
+z14=(x16,0.686h);
+filldraw z14l{dir78}..z13l{right}..z12..
+z11l{z10-z9}--z11r--z10r{dir117}..
+z13r{left}..{dir258}z14r--z14l & cycle;
+%
+%
+%
+penpos15'(cap_hair,-90);
+z15'l=z5l;
+penpos15(0.889cap_stem,0);
+z14-z15=whatever*dir85; y15=y5l+2cap_hair;
+penpos17(cap_stem,76);
+z17r=(0.256w,h+apex_o);
+penpos18(cap_hair,180);
+z18=(0.055w,0.745h);
+penpos19(1.185cap_stem,-145);
+z19=(0.148w,0.644h);
+penpos20(cap_hair,197);
+z20=(0.246w,0.548h);
+penpos21(cap_hair,118);
+z21=whatever[(0,0),z17]; x21=0.108w;
+penstroke z15'e{right}
+..z15e..z16e{up}..z17e{left}
+..z18e{down}..z19e{dir-45}..z20e{z20l-z19l}..
+z21e{dir202};
+.endchar;
+
+.cmchar "The Fraktur letter C";
+.beginchar("C",10.406u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0.157w,0.08h); z2=(0.211w,0.138h);
+z3=(0.084w,0.141h);
+z5=(0.113w,0.209h); z4=0.4[z3,z5];
+penpos6(cap_hair,180);
+z6r=(0,0.117h); penpos7(cap_hair,-118);
+z7r=(0.189w,-apex_o);
+penpos8(cap_hair,-48);
+z8=(0.469w,0.136h);
+penpos9(1.074cap_stem,36);
+z9=(0.623w,0.367h); z10=(0.5w,0.721h);
+penpos10(0.889cap_stem,30);
+z11'=(0.736w,0.931h);
+z13=(0.803w,0.729h);
+z14=(w,0.777h); penpos11(cap_hair,
+angle(z13-z11'));
+z11l=z11'; z12-z11l=whatever*dir7;
+x12=0.912w; z16'-z12=whatever*(z13-z11);
+z16'=whatever[z13,z14];
+penpos15(cap_hair,angle(z13-z11));
+z15r=z14; z15l-z16=whatever*(z14-z13);
+z16=whatever[z12,z16'];
+penstroke z6e{down}..z7e{right}..
+z8e..z9e{up}..z10e{up}..z11e{z12-z11l};
+filldraw z11l--z12--z16--z15l--z15r
+--z13--z11l & cycle;
+filldraw z6l{up}..z4{right} &
+z4..z3{down}..z1{right}..z2{up}..
+z5{left}..z6r{down}--z6l & cycle;
+%
+%
+%
+penpos17(1.037cap_stem,90);
+z17l=(0.738w,-apex_o);
+penpos18(1.093cap_stem,38);
+z18=(0.17w,0.58h);
+penpos19(1.5cap_hair,-57);
+z19l=(0.45w,h+apex_o);
+penpos20(1.2cap_hair,-197);
+z20=(0.692w,0.824h);
+penpos21(cap_hair,-219);
+z21=(3/4[x9l,x9r],y10);
+penstroke z17e{left}..z18e{up}..
+z19e..z20e{down}..z21e;
+penpos22(cap_hair,-44);
+z22r-z17l=whatever*dir46;
+x22r=w;
+filldraw z17r{right}..z22l{z22r-z17l}
+--z22r--z17l--z17r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter D";
+.beginchar("D",12.168u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0.073w,-apex_o);
+penpos2(0.6cap_stem,0);
+z2=(x1,0.04h); penpos4(1.204cap_stem,-148);
+z4=(0.229w,0.190h);
+penpos5(1.185cap_stem,-144);
+z5r=(0.545w,-apex_o);
+penpos6(cap_hair,-65); x6=0.787w;
+z6r-z5r=whatever*dir25;
+penpos7(0.815cap_stem,38);
+z7r=(w,0.418h); penpos8(0.926cap_stem,67.5);
+z8r=(0.41w,h+apex_o);
+penpos9(0.537cap_stem,-173);
+z9r=(0,0.685h); penpos10(2/3cap_hair,-90);
+z10=(0.242w,0.53h);
+penstroke z2e{up}..z4e{right}..z5e{right};
+penstroke z6e{dir25}..z7e{up}..z8e{left}
+..z9e{down}..z10e{right};
+filldraw z2l{down}..z1..z2r{up}--z2l
+& cycle;
+filldraw z5l{right}..z6l{dir25}--
+z6r--z5r--z5l & cycle;
+%
+%
+%
+z11=(0.171w,0.389h); z12=(0.197w,0.427h);
+penpos13(cap_hair,-90);
+z13=(x4l,0.3h); penpos14(cap_stem,0);
+z14=(0.462w,0.5[y11,y12]);
+penpos15(1.074cap_stem,34);
+z15=(0.353w,0.655h); z16=(0.488w,0.78h);
+penpos16(cap_hair,-90);
+penstroke z13e{right}..z14e{up}..
+z15e{up}..z16e{right};
+filldraw z11{up}..z12{right}..z13l{right}
+--z13r{left}..z11{up} & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter E";
+.beginchar("E",8.508u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(1.074cap_stem,62.5);
+z1l=(0.623w,-apex_o);
+penpos2(0.796cap_stem,16);
+z2l=(0,0.485h); penpos3(4/3cap_hair,-90);
+z3l=(0.485w,h+apex_o);
+penpos6(cap_stem,-151.5);
+penpos5(cap_stem,-151.5);
+x6l=w; y5l=h; z6-z5=whatever*dir-37;
+x5l=0.808w;
+penstroke z5e--z6e;
+penpos4(cap_hair,-151.5);
+z4r=z5r; penstroke z3e{right}..
+z4e{z6-z5};
+penpos16(cap_hair,-90);
+z16=(w,0.149h);
+filldraw z1l--z16r--z16l..z1r{left}
+--z1l & cycle;
+penstroke z1e{left}..z2e{up}..z3e{right};
+%
+%
+%
+penpos7(cap_hair,-164); z7=whatever[z2l,z2r];
+x7=0.31w;
+penpos8(0.444cap_stem,-51.5);
+z8=(0.492w,0.393h);
+penpos9(0.796cap_stem,6.5);
+z9=(x1l,y2-eps);
+penpos10(0.963cap_stem,34);
+z10=(0.441w,0.767h);
+penpos11(cap_hair,-37); z11l=z4r;
+penstroke z7e{dir-74}..z8e{right}..
+z9e{up}..z10e{up}..z11e{z5l-z5r};
+%
+%
+%
+penpos12(cap_hair,-55.5);
+z12l=(z9{up}..z10{up})
+intersectionpoint (z9l--(x9l,h));
+z13-z12l=whatever*dir31.5;
+x13=0.854w; penpos14(whatever,0);
+z15=(x13,0.53h); z14r=(w,0.639h);
+z14l-z12r=whatever*(z13-z12l);
+filldraw z12l--z13--z14r--z15--
+z14l--z12r--z12l & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter F";
+.beginchar("F",8.213u#,cap_height#,3.010u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(2/3cap_hair,68);
+z1=(0.34w,0.535h); penpos2(cap_hair,0);
+z2l=(0.036w,0.739h);
+penpos3(4/3cap_stem,-150);
+z3l=(0.614w,h+apex_o);
+penpos4(cap_stem,-128); z4l-z3l=whatever*dir-37;
+x4l=w; penpos5(cap_hair,-38);
+x5l=w; z5r=whatever[z4r,z4l];
+penstroke z1e{dir158}..z2e{up}..
+z3e{right};
+z5'=whatever[z3l,z4l]; z5'-z5l=whatever*(z4-z5r);
+filldraw z3l--z5'--z5l--z5r--z4r
+{z3l-z4l}...z3r{left}--z3l & cycle;
+%
+%
+%
+penpos6(cap_hair,-23); penpos7(cap_hair,-90);
+penpos8(0.778cap_stem,-219);
+penpos9(0.741cap_stem,-203);
+penpos10(cap_hair,-90);
+penpos11(cap_stem,17);
+penpos12(1.111cap_stem,30);
+penpos13(eps,-63);
+z6l=(0,0.351h); z7=(x2r+cap_hair,0.44h);
+x8l=x1; y8=0.339h; z9r=(x2l,0);
+z10r=(0.462w,-d); z11l=(0.709w,0);
+z12=(0.542w,0.652h);
+z13=(0.789w,0.821h);
+penstroke z6e{dir67}..z7e{right}..z8e{down}
+..z9e{down}..z10e{right}..z11e{up}..
+z12e{up}..z13e{dir27};
+%
+%
+%
+penpos14(cap_hair,-47);
+penpos15(cap_hair,-47);
+z14=(z11{up}..z12{up}) intersectionpoint
+((0,0.476h)--(w,0.476h));
+z15-z14=whatever*dir43;
+x15l=x4r; penpos16(0.833cap_stem,-137);
+z16l=z15l; penpos17(0.833cap_stem,-137);
+x17l=w; z17-z16=whatever*dir-47;
+penstroke z14e--z15e;
+penstroke z16e--z17e;
+.endchar;
+
+.cmchar "The Fraktur letter G";
+.beginchar("G",10.638u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,0);
+penpos2(0.5cap_stem,90);
+penpos3(cap_stem,180);
+penpos4(cap_hair,-90);
+penpos5(0.926cap_stem,14);
+penpos7(cap_hair,-51);
+penpos9(cap_hair,-51);
+z1=(0.595w,0.739h); z2r=(0.385w,h+apex_o);
+z3r=(0,0.517h); z4r=(0.537w,-apex_o);
+z5r=(w,0.392h); z6=(0.686w,0.628h);
+z7=(x4,0.566h); z9-z7=whatever*dir39;
+x9=0.963w; z8=whatever[z7r,z9r];
+x8=0.817w;
+penstroke z1e{up}..z2e{left}..z3e{down}
+..z4e{right}..z5e{up};
+filldraw z7r{z9-z7}..z6{right}..
+z5l{down}--z5r{up}..z8--z9r--z9l--
+z7l--z7r & cycle;
+%
+%
+%
+penpos11(1.148cap_stem,39);
+penpos12(1.148cap_stem,39);
+z11=whatever[z7l,z9l]; x11=0.856w;
+penpos10(cap_hair,-51);
+z10=whatever[z9l,z9r]; y10l=h+apex_o;
+z12-z11=whatever*dir129;
+z10l-z12=whatever*dir39;
+penpos13(cap_hair,-51); z13l=z12l;
+penstroke z11e--z12e;
+penstroke z13e--z10e;
+%
+%
+%
+penpos14(cap_hair,180); penpos15(0.5cap_stem,-45);
+penpos16(0.796cap_stem,21.5);
+penpos17(0.926cap_stem,43);
+penpos18(cap_hair,-37);
+penpos19(cap_hair,-37);
+z14=(0.3w,0.58h); z15=(0.441w,0.385h);
+z16=(0.5[x7,x1],0.507h);
+z17=(0.385w,0.776h); z18=(0.442w,0.873h);
+z19-z18=whatever*dir53; y19=1.032h;
+penstroke z14e{down}..z15e{right}..
+z16e{up}..z17e{up}...z18e---z19e;
+.endchar;
+
+.cmchar "The Fraktur letter H";
+.beginchar("H",10.275u#,cap_height#,1.996u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,111);
+penpos2(cap_hair,90);
+penpos3(cap_hair,0);
+penpos8(cap_hair,-45);
+penpos7(cap_hair,-45);
+penpos9(0.889cap_stem,0);
+penpos10(1.222cap_stem,48.5);
+penpos11(cap_hair,132);
+z1=(0.57w,-0.679d);
+z2l=(0.452w,-d); z3=(0.354w,-0.23d);
+z4=(0.503w,0.082h); z5=(0.621w,0.217h);
+z6=(0.71w,0.12h); z8l=(0.592w,-apex_o);
+z7r-z8r=whatever*dir45;
+x7r=0.809w; z9r=(w,0.429h);
+z10=(0.624w,3/4h); %z11=whatever[z1l,z1r];
+z11=(0.28w,0.543h);
+penstroke z1e..z2e{left}..z3e{up};
+filldraw z3r{up}..z4{right}..
+z8l{z8r-z7r}--z8r---z7r...z9r{up}--
+z9l{down}..z7l{z8r-z7r}..z6{left}..
+z5{dir123} & z5{dir211}..z3l{down}--
+z3r & cycle;
+penstroke z9e{up}..z10e{left}..
+z11e{dir222};
+%
+%
+%
+penpos12(1.259cap_stem,-131);
+penpos13(1.2cap_hair,-41);
+penpos14(1.074cap_stem,25);
+penpos15(cap_hair,-41);
+penpos18(cap_hair,-36);
+z12r=(0,0.141h); y13=0.2h; x13l=x11;
+z14=z11; z15=(x11,0.845h);
+z16=(0.478w,h); z17=(0.516w,0.837h);
+z18r-z17=whatever*dir54;
+y18r=h+apex_o;
+penstroke z12e{dir-41}..z13e{dir49}
+..z14e..z15e{dir49};
+filldraw z15r{dir49}..z17--z18r--
+z18l{z17-z18r}..z16{left}..z15l
+{dir229}--z15r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter I";
+.beginchar("I",8.541u#,cap_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,28);
+penpos2(cap_hair,-17.5);
+penpos3(0.889cap_stem,-116);
+penpos4(cap_stem,-126);
+penpos5(cap_hair,-44);
+penpos6(1.056cap_stem,53);
+penpos7(1.056cap_stem,21);
+penpos8(cap_hair,-90);
+penpos9(cap_hair,180);
+z1=(0.115w,-0.886d); z2r=(x1,-0.519d);
+z3=(0.234w,-0.1d); z4r=(0.517w,-d);
+z5=(0.795w,-0.329d); z6r=(0.966w,0.196h);
+z7=(0.636w,0.56h); z8=(0.808w,0.683h);
+z9l=(x6r,0.554h);
+penstroke z1e..z2e{up}..z3e{right}
+..z4e{right}..z5e..z6e{up}..z7e{up}
+..z8e{right}..z9e{down};
+%
+%
+%
+penpos10(1.037cap_stem,50);
+penpos11(cap_hair,-45);
+penpos12(0.889cap_stem,43);
+penpos13(1.185cap_stem,-146);
+penpos14(0.741cap_stem,-119);
+penpos15(cap_hair,0);
+penpos16(cap_hair,28);
+z10l=z11r=(0.1w,0.515h);
+z12l=(0,0.69h); z13l=(0.506w,h+apex_o);
+z14r=z8l+(0,0.035h);
+z15r=(w,0.875h); z16=(x15l,0.924h);
+filldraw z11l{z12r-z11l}..z12l{up}--
+z12r{down}..z10r--z10l--z11l & cycle;
+penstroke z12e{up}..z13e{right}..
+z14e{right}..z15e{up}..z16e{dir118};
+.endchar;
+
+.cmchar "The Fraktur letter J";
+.beginchar("J",8.541u#,cap_height#,2.497u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,28);
+penpos2(cap_hair,-17.5);
+penpos3(0.889cap_stem,-116);
+penpos4(cap_stem,-126);
+penpos5(cap_hair,-44);
+penpos6(1.056cap_stem,53);
+penpos7(1.056cap_stem,21);
+penpos8(cap_hair,-90);
+penpos9(cap_hair,180);
+z1=(0.115w,-0.886d); z2r=(x1,-0.519d);
+z3=(0.234w,-0.1d); z4r=(0.517w,-d);
+z5=(0.795w,-0.329d); z6r=(0.966w,0.196h);
+z7=(0.636w,0.56h); z8=(0.808w,0.683h);
+z9l=(x6r,0.554h);
+penstroke z1e..z2e{up}..z3e{right}
+..z4e{right}..z5e..z6e{up}..z7e{up}
+..z8e{right}..z9e{down};
+%
+%
+%
+penpos10(1.037cap_stem,50);
+penpos11(cap_hair,-45);
+penpos12(0.889cap_stem,43);
+penpos13(1.185cap_stem,-146);
+penpos14(0.741cap_stem,-119);
+penpos15(cap_hair,0);
+penpos16(cap_hair,28);
+z10l=z11r=(0.1w,0.515h);
+z12l=(0,0.69h); z13l=(0.506w,h+apex_o);
+z14r=z8l+(0,0.035h);
+z15r=(w,0.875h); z16=(x15l,0.924h);
+filldraw z11l{z12r-z11l}..z12l{up}--
+z12r{down}..z10r--z10l--z11l & cycle;
+penstroke z12e{up}..z13e{right}..
+z14e{right}..z15e{up}..z16e{dir118};
+.endchar;
+
+.cmchar "The Fraktur letter K";
+.beginchar("K",9.478u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+cap_stem:=0.95cap_stem;
+%cap_hair:=0.95cap_hair;
+z1=(0,0.182h); z2=(0.177w,0.207h);
+z3=(0.033w,-apex_o);
+penpos4(cap_hair,-90);
+z4=(0.282w,0.045h); penpos5(cap_hair,0);
+z5=(0.4w,0.136h); z7=(0.434w,0.227h);
+z7'=(0.328w,0.556h);
+z8=(0.197w,0.732h); z6=(0.052w,0.566h);
+penpos9(1.25cap_hair,-90);
+z9l=(0.561w,h+apex_o);
+penpos9'(cap_hair,180);
+z9'l=(w-apex_o,0.707h);
+penpos10(cap_hair,140); z10=(0.813w,0.492h);
+filldraw z1--z3{dir30}..z4r{right}
+..z5r..z7{up}..z7'..z8{up}..z9r{right}
+--z9l{left}..z6{down} & z6{dir-52}
+..z5l..z4l{left}..z2{up}--z1 & cycle;
+penstroke z9e{right}..z9'e{down}..
+z10e;
+%
+%
+%
+penpos12(cap_hair,-78);
+penpos11(cap_hair,-78);
+z12l-z7'=whatever*dir12;
+z7'-z11l=whatever*dir12;
+x12=x10; x11=0.243w;
+penstroke z11e--z12e;
+penpos13(cap_hair,12); z13r=z7';
+penpos14(0.463cap_stem,-116);
+z14=(0.492w,0.8h);
+penpos16(1.074cap_stem,-168);
+z16=whatever[z11l,z12l]; x16l=x12-cap_hair;
+z12-z15=whatever*dir-78;
+penpos15(cap_hair,-78);
+y15=0.823h; z17-z15r=whatever*(z12-z11);
+z16l-z17=whatever*(z12-z15);
+filldraw z13r{dir102}..z14r{right}
+..z16r{dir-78}--z16l--z17--z15r--
+z15l{z13-z12}..z14l{left}..z13l{dir-78}
+--z13r & cycle;
+%
+%
+%
+penpos18(1.053cap_stem,-168);
+z18=0.5[z12r,z11r];
+penpos18'(1.053cap_stem,-168);
+z19=(0.767w,-apex_o); penpos21(cap_hair,-90);
+z21r-z19=whatever*dir45; x21=w;
+z20=(0.869w,0.149h);
+z18'-z18=whatever*dir-70; x18'l=x15;
+filldraw z18r---z18'r...z19--z21r--
+z21l{z19-z21r}..z20{left}...z18'l
+---z18l--z18r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter L";
+.beginchar("L",6.131u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+cap_stem:=1.022cap_stem;
+penpos1(cap_hair,0); penpos2(cap_hair,-60);
+penpos3(1.056cap_stem,30);
+penpos4(cap_stem,23); penpos5(0.481cap_stem,-67);
+penpos6(cap_hair,-149);
+penpos7(whatever,-140);
+penpos8(cap_hair,-147);
+penpos9(cap_hair,-90); penpos10(cap_hair,0);
+z1l=(0,0.082h); z2=(0.15w,0.207h);
+z3=(0.453w,0.37h); z4l=(0,0.731h);
+z5l=(0.539w,h+apex_o);
+z6=(0.829w,0.886h); z7l=(0.933w,0.739h);
+x7r=x3r;
+z8=(0.658w,0.53h); z9=(x6,0.476h);
+z10=(x7l,0.543h);
+penstroke z1e{up}..z2e..z3e{up}..
+z4e{up}..z5e{right}..z6e..z7e{down}
+..z8e..z9e{right}..z10e{up};
+%
+%
+%
+z11=(0.109w,0.111h); z13=(0.539w,-apex_o);
+z12=(0.731w,y11); penpos14(cap_hair,-21);
+z14r=(w,0.223h);
+z15'-z11=whatever*(z12-z13); x15'=w;
+z15=(z1{up}..z2..z3{up}) intersectionpoint
+((0.238w,0)--(0.238w,h));
+filldraw z1r{up}..z11{right}..z13{dir-25}
+& z13{dir25}..z14r{dir69}--z14l{dir249}
+..z12{left}..z15{left}& z15..z2..
+z1{down}--z1r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter M";
+.beginchar("M",13.432u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,-40); penpos2(cap_hair,-40);
+z1=(0.067w,0.035h); z2-z1=whatever*dir50;
+x2=0.176w; z3=(1/5w,-apex_o);
+penpos4(cap_hair,-41.5);
+z4r-z3=whatever*dir48.5;
+z4=whatever[z2l,z2r];
+penpos5(1.3cap_stem,48);
+% ant'i 1.111 pou j'aprepe n'anai
+z5=(0.4w,0.394h); penpos6(0.778cap_stem,44);
+z6=(0.148w,0.915h); penpos7(cap_hair,180);
+z7r=(0,0.782h); penpos8(1.111cap_stem,-147);
+z8l=(x6,0.649h); penpos9(2.2cap_hair,-171.5);
+penpos10(cap_hair,90); z9r=(x2l,0.46h);
+z10=(0.122w,0.378h); penpos11(cap_hair,58);
+z11=(0.047w,0.418h);
+z1'=whatever[z1r,z2r]; x1'=x1r+0.014117w;
+filldraw z1l--z2l--z4r--z3--z1'--z1r
+--z1l & cycle;
+penstroke z4e{z4r-z3}..z5e{up}..
+z6e{left}..z7e{down}..z8e..z9e{down}
+..z10e{left}..z11e;
+%
+%
+%
+penpos12(cap_hair,-40); penpos13(cap_hair,-40);
+z12=(0.329w,0.024h); z13-z12=whatever*dir50;
+x13=x5r; z13'=(0.466w,-apex_o);
+penpos14(cap_hair,-40); z14r-z13'=whatever*dir48;
+z14=whatever[z13l,z13r];
+penpos15(1.5cap_stem,-50);
+penpos16(0.741cap_stem,48);
+penpos17(cap_hair,180);
+z15=(0.647w,0.548h);
+x16=0.424w; y16r=h+apex_o;
+z17=(0.306w,0.843h);
+penstroke z12e--z13e;
+z12'=whatever[z12r,z13r]; x12'=x12r+0.014117w;
+filldraw z12'--z13'--z14r--z13l--
+z12' & cycle;
+penstroke z14e{z14r-z13'}..z15e{up}
+..z16e{left}..z17e{dir251};
+%
+%
+%
+penpos18(cap_hair,-46); penpos19(cap_hair,-46);
+penpos20(1.13cap_stem,37);
+penpos21(0.852cap_stem,-15);
+penpos22(cap_hair,-72);
+z18r=(0.814w,-apex_o);
+z19-z18=whatever*dir44;
+x19r=w; z20=(x18-eps,0.34h);
+z21=(x18r+eps,0.556h);
+z22=(0.906w,0.609h);
+z20'=0.7[z18l,z19l];
+penstroke z18e--z19e;
+filldraw z18l{up}..z20l{up}..z21l--
+z22l--z22r{z21l-z22l}..z21r..
+z20r{down}..z20'{dir-35}--z18l
+& cycle;
+%
+%
+%
+penpos23(1.148cap_stem,53);
+penpos24(0.944cap_stem,12);
+penpos27(2/3cap_hair,90);
+z23r=(w,0.670h); z24=(0.871w,0.84h);
+z25=(0.715w,0.947h); z26=(x25,0.87h);
+z27=(0.621w,0.824h);
+filldraw z23r{dir124}..z24r%{dir124}
+...z25---z27r--z27l{z25-z27r}..
+z26{right}..z24l%{dir-56}
+..z23l{dir-56}
+--z23r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter N";
+.beginchar("N",11.662u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,-45); penpos3(cap_hair,-45);
+penpos4(cap_hair,-90);
+penpos5(0.944cap_stem,0);
+penpos6(0.811cap_stem,64);
+penpos7(cap_hair,180);
+penpos8(1.094cap_stem,-132);
+penpos9(cap_hair,180); penpos10(cap_hair,90);
+penpos11(cap_hair,21);
+z1=(0.123w,0); z3-z1=whatever*dir52;
+x3=0.239w; 0.5[z1,z3]-z2=whatever*dir-45;
+x2=x1l-eps; z4r=(0.325w,-apex_o);
+z5=(0.55w,0.371h); z6=(x3,0.932h);
+z7r=(0,0.751h); z8=(0.197w,0.553h);
+z9=(x4,0.428h); z10=(x3,0.317h);
+z11=(0.125w,0.423h);
+penpos2(1/3cap_hair,52);
+filldraw z1l{dir71}..z2l--z2r
+..{dir31}z3l--z3r{z1-z3}..z4l{right}
+--z4r{left}..z1r{z1-z3}--z1l{z3-z1}
+& cycle;
+penstroke z4e{right}..z5e{up}..
+z6e{left}..z7e{down}..z8e{dir-22}..
+z9e{down}..z10e{left}..z11e;
+%
+%
+%
+penpos12(2/3cap_hair,0); penpos13(0.778cap_stem,-126);
+penpos14(0.944cap_stem,-162);
+penpos15(0.944cap_stem,-90);
+penpos16(cap_hair,0);
+penpos17(cap_hair,-32);
+penpos19(0.981cap_stem,0);
+penpos20(0.793cap_stem,0);
+penpos21(cap_hair,-90);
+z12=(0.516w,0.745h); y13l=h+apex_o;
+z14=(0.886w,0.751h);
+z15=(w,0.669h);
+z19=(0.769w,y5); x13=x19l;
+z16=(x19r,-apex_o);
+z17r-z16r=whatever*dir58;
+x17r=0.977w; z20=(0.798w,0.537h);
+z21r=z15r;
+filldraw z16r--z17r--z17l{z16r-z17r}
+..z19r{up}..z20r..z21r{dir18}--
+z21l{dir198}..z20l..z19l{down}..
+z16l--z16r & cycle;
+penstroke z12e{up}..z13e{right}..
+z14e{dir-71}..z15e{right};
+.endchar;
+
+.cmchar "The Fraktur letter O";
+.beginchar("O",12.01u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,41); penpos2(cap_hair,0);
+penpos3(cap_hair,-59);
+penpos5(1.037cap_stem,24);
+penpos6(1.074cap_stem,38);
+penpos7(cap_hair,-47); penpos8(2/3cap_hair,0);
+penpos4(1.315cap_stem,-146);
+penpos10(1.111cap_stem,70);
+penpos11(0.704cap_stem,22);
+penpos14(cap_hair,-46);
+z1r=(0.084w,0); z2l=(0,0.09h);
+z3=(0.234w,0.298h); z4=(0.184w,0.197h);
+z5=(0.332w,0.412h); z6=(0.179w,0.71h);
+z7=(0.263w,0.843h); z8=(0.389w,h+apex_o);
+z9=(x8,0.787h); z10=(0.595w,0.864h);
+z11r=(w,0.484h); z12=(0.637w,0.144h);
+z13=(2x10-x12,-apex_o);
+z14=(0.858w,0.227h);
+penstroke z1e..z2e{up}..z3e..z5e{up}
+..z6e{up}..z7e{dir43};
+penstroke z1e..z2e{up}..z4e{dir-19};
+filldraw z4r{dir-19}..{z13-(x4r,0.5y4r)}z13 &
+z13{dir27}..z14r..z11r{up}..z10r{left}..
+z8r{dir100}--z8l{down}..z7l{dir223}--
+z7r..z9..z10l{right}..z11l{down}..
+z14l..z12{left}..z4l{dir161}--z4r &
+cycle;
+.endchar;
+
+.cmchar "The Fraktur letter P";
+.beginchar("P",9.482u#,cap_height#,2.651u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,0); penpos2(cap_stem,0);
+penpos3(cap_stem,0);
+penpos4(0.926cap_stem,58);
+penpos5(cap_hair,180);
+penpos8(1.5cap_hair,-145);
+penpos9(cap_hair,114);
+z1=(0.427w,-d); z2=(0.453w,0.09h);
+z3=(x2,0.7h); z4r=(0.227w,h+apex_o);
+z5r=(0,0.778h); z6=(0.173w,0.67h);
+z7=(0.083w,0.564h); z8=(0.275w,0.524h);
+z9r=(x7,0.4h);
+penstroke z1e...z2e---z3e..z4e{left}
+..z5e{down};
+penstroke z8e{down}..z9e;
+filldraw z5r{down}..z7 & z7{right}..
+z8r{down}--z8l{up}..z6..z5l{up}--
+z5r & cycle;
+%
+%
+%
+penpos18(cap_hair,0); penpos19(cap_hair,-80);
+penpos16(1.037cap_stem,23);
+penpos15(cap_stem,35);
+penpos14(cap_hair,-56);
+z18r=z3r; z19=(0.74w,0.931h);
+z16=(0.793w,0.782h);
+z15r=(w,0.42h); z14=(0.687w,0.059h);
+penstroke z14e{dir33}..z15e{up}..
+z16e{up};
+penstroke z18e{up}..z19e{dir22.5};
+z17'=(0.917w,h-apex_o);
+filldraw z16l{up}..z19l & z19l{dir22.5}
+..z17'{right} & z17'..z16r{down}--
+z16l & cycle;
+%
+%
+%
+penpos10(cap_stem,64); penpos11(cap_stem,71);
+penpos12(cap_hair,-36);
+penpos13(cap_hair,-23);
+z10=(0.713w,0.027h); z11=(0.387w,0.16h);
+z12=(x6,0.059h); z13l=(x8,0.266h);
+filldraw z10r..z11r...z13r---z13l
+& z13l..z12l{dir234}--z12r{dir54}...
+z11l---z10l--z10r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter Q";
+.beginchar("Q",13.559u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+w':=12.01u;
+penpos1(cap_hair,41); penpos2(cap_hair,0);
+penpos3(cap_hair,-59);
+penpos5(1.037cap_stem,24);
+penpos6(1.074cap_stem,38);
+penpos7(cap_hair,-47); penpos8(2/3cap_hair,0);
+penpos4(1.315cap_stem,-146);
+penpos10(1.111cap_stem,70);
+penpos11(0.704cap_stem,22);
+penpos14(cap_hair,-46);
+penpos16(1.074cap_stem,-127);
+penpos17(cap_hair,-45);
+z1r=(0.084w',0); z2l=(0,0.09h);
+z3=(0.234w',0.298h); z4=(0.184w',0.197h);
+z5=(0.332w',0.412h); z6=(0.179w',0.71h);
+z7=(0.263w',0.843h); z8=(0.389w',h+apex_o);
+z9=(x8,0.787h); z10=(0.595w',0.864h);
+z11r=(0.925w,0.503h); z12=(0.637w',0.144h);
+z13=(2x10-x12,-apex_o);
+z14=(0.884w',0.227h);
+penpos15(1.3cap_stem,angle(z13-z14));
+z15l=z14; z16r=(0.825w,-apex_o);
+z17r=(w,0.144h);
+penstroke z1e..z2e{up}..z3e..z5e{up}
+..z6e{up}..z7e{dir43};
+penstroke z1e..z2e{up}..z4e{dir-19};
+filldraw z4r{dir-19}..{z13-(x4r,0.5y4r)}z13 &
+z13{dir27}..z14r..z11r{up}..z10r{left}..
+z8r{dir100}--z8l{down}..z7l{dir223}--
+z7r..z9..z10l{right}..z11l{down}..
+z14l..z12{left}..z4l{dir161}--z4r &
+cycle;
+penstroke z15e..z16e{dir-10} & z16e..z17e
+{dir45};
+.endchar;
+
+.cmchar "The Fraktur letter R";
+.beginchar("R",10.493u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#+0.3u#);
+penpos1(cap_hair,-49); penpos2(cap_hair,-49);
+penpos4(cap_hair,-90);
+z1l=(0,0.056h); z2=(0.253w,0.234h);
+z3=(apex_o,0.202h); z7=(0.036w,0.128h);
+z4r=(0.3w,-apex_o);
+z5=(0.181w,0.128h); z6=(0.084w,0.051h);
+filldraw z1l..z7..z3 & z3{dir-10}..
+z2l--z2r..z5..z4l{right}--z4r{left}
+..z6..z1r--z1l & cycle;
+penpos8(0.963cap_stem,19);
+penpos9(cap_stem,60); penpos10(cap_hair,180);
+penpos13(0.574cap_stem,-153);
+penpos14(cap_hair,90); penpos15(cap_hair,0);
+z8=(0.53w,0.375h); z9r=(0.247w,h+apex_o);
+z10r=(0,0.771h); z11=(0,0.614h);
+z12=(0.169w,0.641h); z13=(0.247w,0.481h);
+z14=(0.117w,0.348h); z15l=(0,0.468h);
+penstroke z4e{right}..z8e{up}..z9e
+{left}..z10e{down};
+penstroke z13e{down}..z14e{left}..
+z15e{up};
+filldraw z10r---z11..z13r{down}--
+z13l{up}..z12..z10l{up}--z10r &
+cycle;
+%
+%
+%
+penpos16(cap_hair,-90); penpos17(cap_hair,-90);
+penpos21(cap_hair,0); z16=(x8,0.585h);
+z17-z16=whatever*dir30;
+x17=0.934w; z21=(0.488w,3/4h);
+z20=(0.578w,0.936h); z22=(0.651w,0.91h);
+z19=(0.768w,h+apex_o);
+z23=whatever[z16l,z17l]; x23=x19;
+z18=(0.895w,0.867h);
+penstroke z16e--z17e;
+filldraw z21r{up}..z22{right}..
+z23{dir-76}--z17l{left}..z18..
+z19 & z19{z22-z19}..z20..z21l{down}
+--z21r & cycle;
+%
+%
+%
+penpos25(0.926cap_stem,-153);
+penpos26(1.074cap_stem,-174);
+penpos27(cap_hair,-32);
+z24=whatever[z16r,z17r]; x24=x23+0.18cap_stem;
+z25=(3/4w,0.612h); z26=(0.825w,0.205h);
+penpos26'(0.926cap_stem,-153); z26'r=z26r;
+y27r=0.189h; x27l=w; z28=(0.849w,-apex_o);
+z27'-z27l=whatever*(z28-z27r);
+x27'=w-cap_hair;
+filldraw z16r{z17-z16}...z25r
+---z26'r...z28 & z28--z27r--z27l &
+z27l---z27'...z26'l---
+z25l..z24--z16r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter S";
+.beginchar("S",12.813u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos0(0.032067w,-27); penpos0'(0.032067w,24);
+z0'r=z0l=(0.715w,0.745h);
+penpos1(1.5cap_hair,-156);
+penpos2(cap_hair,114);
+penpos7(cap_hair,114);
+penpos8(1.2cap_stem,-142);
+penpos9(cap_stem,-107);
+penpos10(0.926cap_stem,-123);
+penpos11(cap_hair,0);
+penpos16(0.722cap_stem,40);
+penpos17(cap_hair,-58);
+penpos18(cap_hair,-118);
+z1l=(w,0.952h); x2=0.93w;
+z3=(0.8w,0.859h); z5-z3=whatever*dir153;
+y5=h+apex_o; z4=z0r; z2l-z4=whatever*dir24;
+z6=whatever[z0r,z0l]; x6=0.462w;
+z7=(0.291w,0.931h); z8r=(0,0.505h);
+z9r=(0.562w,-apex_o);
+z10r=(0.76w,0.077h); z11=(0.933w,0.364h);
+z13=z0'l; z15-z13=whatever*dir204;
+x15=x14=0.407w; z12=(x9l,0.512h);
+z14-z12=whatever*(z15-z13);
+z16=(0.258w,0.649h);
+z17=(0.324w,0.782h); z18=(0.508w,0.739h);
+penstroke z7e{dir204}..z8e{down}..
+z9e{right}..z11e{up};
+penstroke z16e{up}..z17e{dir24}..
+z18e{dir-27};
+filldraw z1r{down}..z2r{z4-z2l}...
+z3---z5 & z5..z7r{dir204}--z7l
+{dir24}...z6---z4---z2l...z1l{up}
+& z1l--z1r & cycle;
+filldraw z11r{up}..z13{z6-z4} &
+z13---z15...z16r{up}--z16l{down}
+..z14{dir-27} & z14---z12...
+z11l{down}--z11r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter T";
+.beginchar("T",10.386u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0.041w,0.053h); z2=(0,0.104h);
+z3=(0.078w,y2); penpos4(1.037cap_stem,-133);
+z4=(0.165w,0.253h); z5=(0.592w,-apex_o);
+z6=(0.731w,0.123h); penpos7(cap_hair,0);
+z7r=(w,0.303h); penpos8(0.5cap_hair,-90);
+z8=(0.29w,0.271h); penpos9(1.185cap_stem,10);
+penpos10(1.148cap_stem,19);
+z9=(x5,0.415h); z10=(0.381w,0.691h);
+penpos11(0.5cap_hair,-90); z11=(0.677w,0.83h);
+penpos12(cap_hair,-112);
+penpos13(cap_hair,180);
+penpos14(1.111cap_stem,31);
+penpos14'(1.037cap_stem,57);
+z14'=(0.562w,0.939h);
+penpos15(1.185cap_stem,72);
+penpos16(cap_hair,-37.5);
+penpos17(cap_hair,-48);
+z12=(0.236w,0.6h); z13=(0.072w,0.761h);
+z14r=(0.436w,h+apex_o);
+z15=(0.858w,0.755h); z16=z15l;
+penpos15'(1.5cap_stem,72); z15'l=z15l;
+z17l=whatever[z16,z15r]; x17=0.956w;
+filldraw z1{right}..z3{up}..z4r{right}
+..z5{dir-29} & z5{dir22}..z7r{up}--
+z7l{down}..z6{left}..z4l{left}..
+z2{down}..z1{right} & cycle;
+penstroke z8e{right}..z9e{up}..z10e
+{up}..z11e{right};
+penstroke z15e{dir142.5}..z14'e..z14e{left}..z13e{down}
+..z12e{dir-22};
+penstroke z16e{z15r-z15l}..z17e
+{dir42};
+.endchar;
+
+.cmchar "The Fraktur letter U";
+.beginchar("U",10.608u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_stem,0); penpos2(whatever,39);
+penpos3(1.176cap_stem,48);
+penpos4(cap_hair,-42); penpos5(cap_hair,-42);
+penpos10(cap_hair,-47);
+penpos11(cap_hair,-47);
+penpos13(cap_stem,0);
+penpos14(cap_stem,0);
+penpos15(cap_hair,-90);
+penpos19(cap_hair,-41);
+z1=(0.258w,0.162h); z2r=(x1r,0.853h);
+x2l=x1l;
+z4l=(0,0.822h); z5-z4=whatever*dir48;
+y5l=h+apex_o; z3=whatever[z4r,z5r]; y3r=y5r-apex_o;
+z7=(x1l,0.26h); z8=(0.111w,y1);
+z9=(x1r,-apex_o); z8'=(0.278w,0.082h);
+z11r-z9=whatever*dir43; x11=0.737w;
+z12-z11l=whatever*(z9-z11r);
+x12=0.472w; z6-z12=whatever*(z8-z9);
+x6=x1r;
+penstroke z1e---z2e...z3e{dir138};
+penstroke z4e--z5e;
+filldraw z9--z11r--z11l--z12--z6--
+z7{down}..z8{dir231} &
+flex(z8,z8',z9) & cycle;
+%
+%
+%
+z13=(x11,y7); z14=(x13,y2r-cap_hair);
+z15=(0.573w,0.898h); z16=(0.737w,h+apex_o);
+z17=(0.886w,0.915h); z18=(x17,y1);
+z20=(0.786w,-apex_o);
+z21=(x13l,y1); x19r=w;
+z19r-z20=whatever*dir49;
+penstroke z13e--z14e;
+filldraw z15r{z16-z15l}..z14l{down}
+--z14r{up}..z17{right} & z17
+..z16 & z16..z15l--z15r & cycle;
+filldraw z20--z19r--z19l{z20-z19r}
+..z18{left}..z13r{up}--z13l--z21--
+z20 & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter V";
+.beginchar("V",10.303u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,41); penpos2(cap_hair,0);
+penpos3(0.926cap_stem,-117);
+penpos6(cap_hair,-63);
+penpos7(0.704cap_stem,30);
+penpos8(cap_stem,44);penpos9(cap_hair,-65);
+penpos10(cap_hair,-65);
+penpos11(0.852cap_stem,-138);
+penpos12(2/3cap_hair,-55);
+penpos13(cap_hair,-48); penpos14(0.907cap_stem,-12);
+penpos15(1.037cap_stem,35);
+penpos16(0.889cap_stem,46);
+penpos17(cap_hair,155);
+penpos17'(0.489cap_stem,-123);
+penpos18(0.889cap_stem,-118);
+penpos20(0.537cap_stem,-147);
+penpos21(cap_hair,90);
+penpos22(cap_hair,44);
+z1=(0.115w,0.046h); z2=(0.072w,0.117h);
+z3=(0.209w,0.228h); z4=(0.613w,-apex_o);
+z5=(0.755w,0.103h); z5'=(x4,0.172h);
+z6=(0.853w,0.114h);
+z7r=(w,0.293h); z8=(0.742w,0.543h);
+z9=(0.822w,0.655h);
+z10r=(w,3/4h); z10'=(x7,0.788h);
+z11l=(0.75w,h+apex_o);
+z15=(0.414w,0.875h); z13=(0.288w,0.242h);
+z14=(0.534w,0.527h); z12=z15+(0.1w,-0.1h);
+z16r=(0.252w,h+apex_o);
+z17=(0.044w,0.859h);
+z17'r=(0,0.742h); z19=(0.043w,0.628h);
+z18=(0.096w,0.674h);
+z20=(0.267w,0.549h); z21l=(0.173w,0.435h);
+z22=(x19,0.516h);
+penstroke z1e..z2e{up}..z3e{right};
+filldraw z3r{right}..z4{dir-44} &
+z4---z6r...z7r{up}--z7l{down}..
+z6l..z5{left}..z5'..z3l{left}--z3r &
+cycle;
+penstroke z7e{up}..z8e{up}..z9e..
+z10e;
+penstroke z13e{dir42}..z14e{up}..
+z15e..z16e{left}..z17e..z17'e{down};
+filldraw z17'r{down}..z19{z3-z19} & z19---
+z18r...z20r{down}--z20l{up}..z18l..
+z17'l{up}--z17'r & cycle;
+penstroke z20e{down}..z21e{left}..
+z22e;
+filldraw z12r{up}..z11r{right}..
+1/10[z9,z10]{right} & 1/10[z9,z10]--z10--z10l &
+z10l{left}..z10'..z11l{left}..z12l{down}
+--z12r & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter W";
+.beginchar("W",13.812u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(cap_hair,44); penpos2(cap_hair,22);
+penpos3(1.074cap_stem,-133);
+z1=(0.095w,0); z2=(0.055w,0.09h);
+z3=(0.16w,0.213h); z4=(0.366w,-apex_o);
+z5=(0.435w,0.118h); penpos6(cap_hair,-56);
+penpos7(4/3cap_stem,45);
+z6=(0.508w,0.126h); z7=(0.645w,0.41h);
+penpos9(1.222cap_stem,52);
+penpos10(cap_hair,0);
+z9=(0.532w,0.733h); z10=(0.604w,h+2apex_o);
+penstroke z1e..z2e..z3e{right};
+filldraw z3r{right}..z4{dir-30} &
+z4---z6r...z7r{dir72} & z7r{dir120}..
+z9r{up}..z10r--z10l..z9l{down}..
+z7l{down}..z6l{z4-z6r}...z3l{left}
+--z3r & cycle;
+%
+%
+%
+penpos11(cap_hair,-37); penpos12(0.778cap_stem,-140);
+penpos13(1.056cap_stem,-133);
+z11=(0.561w,0.865h); z12l=(0.735w,h+apex_o);
+z13l=(0.982w,0.756h);
+penstroke z11e{dir53}..z12e{right}..
+z13e{dir-60};
+%
+%
+%
+penpos14(cap_hair,-60); z14r=z13l+(apex_o,apex_o);
+penpos15(cap_stem,43); penpos16(0.741cap_stem,37.5);
+penpos17(cap_hair,-64); penpos18(1.222cap_stem,26);
+penpos17'(cap_hair,-64);
+z15=(0.808w,0.537h); z16r=(w,0.303h);
+z18l=(0.716w,-apex_o); z17r=z18; z17'r=z18r;
+z18.1-z18l=whatever*dir146;
+z18.2-z18r=whatever*dir146; x18.2=x18.1=0;
+z18'=(z6{z6r-z4}..z7{up}) intersectionpoint
+(z18l--z18.1);
+z18''=(z6{z6r-z4}..z7{up}) intersectionpoint
+(z18r--z18.2);
+filldraw z18l--z18'--z18''--z18r--z18l & cycle;
+penpos16'(whatever,54); z16'l=z16l; x16'r=w;
+penstroke z17e---z17'e...z16'e{up}..z15e{up}..
+z14e{dir36};
+%
+%
+%
+penpos19(cap_hair,-58); penpos22'(1.111cap_stem,44);
+penpos22(1.037cap_stem,41.5);
+penpos23(1.2cap_hair,-139);
+penpos24(cap_stem,-90); penpos25(0.556cap_stem,-140);
+penpos26(cap_hair,90); penpos27(cap_hair,37);
+z19=(0.224w,0.213h); x20=x5; z20-z19r=whatever*dir32;
+z21=(0.339w,0.483h); z22'=(0.326w,0.84h);
+z22r=(0.2w,h+apex_o); z23r=(0,0.767h);
+z24=(0.114w,0.654h); z25=(0.197w,0.551h);
+z26=(0.119w,0.437h); z27=(0.025w,0.5h);
+filldraw z19r--z20 & z20{up}..z22'r
+{dir129.5}--z22'l{dir-50.5}..z21{down}
+..z19l{z19r-z20}--z19r & cycle;
+penstroke z22'e{dir129.5}..z22e{left}
+..z23e{down}..z24e{right}..z25e{down}
+..z26e{left}..z27e{dir127};
+%
+%
+%
+penpos28(cap_hair,-32); penpos29(cap_hair,-90);
+penpos30(cap_hair,-141.5);
+z28=(0.357w,0.848h); z30=z11;
+z29=(0.5[x28,x30],0.958h);
+penstroke z28e..z29e..z30e;
+.endchar;
+
+.cmchar "The Fraktur letter X";
+.beginchar("X",9.418u#,cap_height#,0);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos0(cap_stem,0); z0=(0.5w,0.537h);
+z1=z0l; penpos5(cap_stem,-90); z5l=z0r;
+penpos2(cap_hair,0); z2r=(x0r,0.697h);
+penpos3(cap_hair,0); z3l=(x0l,0.253h);
+penpos6(cap_hair,-40); penpos7(cap_hair,-40);
+z6r=(0.758w,-apex_o); z7-z6=whatever*dir50;
+x7r=w; z7'=whatever[z6l,z7l];
+z6'=whatever[z6,z7]; y6'=apex_o;
+x7'=0.893w;
+penstroke z6e--z7e;
+filldraw z6'{left}...z3l---z1--z5l
+---z5r...z7'---z7l--z7--z6' & cycle;
+penpos12(cap_hair,-45); penpos13(cap_hair,-45);
+z13l=(0.289w,h+apex_o); z13-z12=whatever*dir45;
+x12l=apex_o; z13'=whatever[z12,z13];
+y13'=h-2apex_o;
+penstroke z12e--z13e;
+filldraw z12r{z13-z12}..z1{down}--
+z5l---z2r...z13'{dir148}--z12--z12r & cycle;
+%
+%
+%
+penpos15(0.852cap_stem,-116);
+penpos16(cap_hair,-21);
+penpos14(cap_hair,-21);
+z16=(0.852w,0.723h); z14-z16=whatever*dir69;
+y14=y15l+apex_o; z15=(0.77w,0.91h);
+penstroke z2e{up}..z15e{right};
+filldraw z15r{right}..z16l{z16-z14}
+--z16r--z14r--z14l{z1-z14l}
+..z15l{left}--z15r & cycle;
+%
+%
+%
+penpos9(cap_hair,-35); penpos10(cap_hair,-35);
+z9l=(0,0.069h); z10-z9=whatever*dir55;
+y10=0.229h; z8=(0.221w,-apex_o);
+z11=(0.297w,0.1h);
+filldraw z9r{dir20}..z8{right}..
+z3r{up}--z3l{down}..z11{left}..
+z10r{z10-z9}--z10l--z9l--z9r &
+cycle;
+%
+%
+%
+penpos20(cap_hair,0); penpos21(cap_hair,0);
+penpos22(cap_hair,0); penpos23(cap_hair,0);
+z21-z20=whatever*dir74;
+z23-z22=whatever*dir74;
+y22=y5r; y21=y5l; x22=0.772w;
+x21=0.235w; y23=y21+0.072h;
+y20=y22-0.072h;
+z20'=whatever[z20,z21]; z23'=whatever[z22,z23];
+y20'=y22; y23'=y21;
+penstroke z20e--z21e;
+penstroke z22e--z23e;
+filldraw z20'--z22--z23'--z21--z20' &
+cycle;
+z20''=whatever[z20',z22]; x20''=x20'+2cap_hair;
+z23''=whatever[z21,z23']; x23''=x23'-2cap_hair;
+filldraw z20r{z21-z20}..z20''{right}
+--z21--z20--z20r & cycle;
+filldraw z23''{right}..z23l{z23-z22}
+--z23--z22--z23'' & cycle;
+.endchar;
+
+.cmchar "The Fraktur letter Y";
+.beginchar("Y",10.556u#,cap_height#,2.181u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+z1=(0,0); z2=(0.079w,0.089h);
+z3=(2x2,0.025h); penpos4(0.611cap_stem,-35);
+penpos5(1.074cap_stem,13);
+penpos7'(1.111cap_stem,39);
+z4r=(0.338w,-d); z5r=(w,0.513h);
+z7'r=(0.778w,h); z6'=(0.656w,0.864h);
+penpos7(cap_hair,-51); penpos8(cap_hair,-51);
+z8=whatever[z7'l,z7'r]; y8r=h;
+z7=whatever[z7'l,z7'r]; y7=0.787h;
+filldraw z1{up}..z2{right}..z3{down}
+..z4l{right}--z4r{left}..z1{up} &
+cycle;
+penstroke z4e{right}..z5e{up}..z7'e
+{dir129};
+z6=(z5l{up}..z7'l{dir129}) intersectionpoint
+((0,0.8h)--(w,0.8h));
+filldraw z5l{up}..z6..z6'..z7r{z7-z8}--
+z7--z7'{dir-51}..z5{down}--z5l &
+cycle;
+penstroke z7e--z8e;
+%
+%
+%
+penpos11(cap_hair,-90); penpos9(cap_hair,-42);
+penpos10(cap_hair,-42); penpos22(1.148cap_stem,48);
+z9r=(0.359w,-apex_o); z10-z9=whatever*dir48;
+x10=0.719w; z22=whatever[z9,z10]; x22=0.479w;
+z11=(0.126w,0.215h); penpos12(2/3cap_hair,-42);
+z12-z22r=whatever*dir-42;
+x12=0.371w; penpos13(whatever,19);
+x13l=0.5w-0.5cap_stem; x13r=0.5w+0.5cap_stem;
+y13=0.585h;
+penstroke z9e--z10e;
+filldraw z11r{right}..z22l{dir-42}--
+z22r{dir138}--z12r{dir23}..z13r{up}
+--z13l{down}..z12l..z11l{left}--
+z11r & cycle;
+%
+%
+%
+penpos14(1.037cap_stem,32); penpos15(0.889cap_stem,42);
+penpos16(cap_hair,150); penpos17(0.389cap_stem,-134);
+penpos18(0.759cap_stem,-90);
+penpos19(cap_hair,180);
+penpos20(cap_hair,90);
+penpos21(1.5cap_hair,45);
+z14=(x13l,0.904h); z15r=(0.281w,h+apex_o);
+z16=(0.066w,0.883h); z17=(0.051w,0.822h);
+z18=(0.159w,0.713h); z19=(0.275w,0.606h);
+z20r=(0.189w,0.532h); z21=(0.087w,0.561h);
+penstroke z13e{up}..z14e{dir136}..
+z15e{left}..z16e..z17e{down}..z18e
+{right}..z19e{down}..z20e{left}..
+z21e{dir135};
+.endchar;
+
+.cmchar "The Fraktur letter Z";
+.beginchar("Z",8.407u#,cap_height#,2.528u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+penpos1(0.704cap_stem,0); z1l=(0.038w,0.213h);
+penpos2(0.815cap_stem,-147);
+penpos3(1.148cap_stem,-152.5);
+penpos4(cap_hair,90);
+penpos1'(cap_hair,-66);
+z2=(0.395w,0.4h); z3l=(w-x1l,0.096h);
+z4l=(0.586w,-0.763d); z1'=(0.237w,0.372h);
+penstroke z1e{up}..z1'e..z2e..
+z3e{down}..z4e{left};
+z5=(0.368w,-0.525d); z6=(0.305w,-0.575d);
+z7=(0.338w,-0.15d); z8=(0.523w,0.077h);
+z9=(0.406w,0.061h); penpos10(cap_hair,90);
+z10r=(0.248w,0.077h);
+z8'=(x8,-0.288d);
+penpos11(cap_hair,180); z11=(0.068w,-0.3d);
+penpos12(1.5cap_hair,-90); z12r=(0.218w,-d);
+filldraw z4l{left}..z5{left}..z6 &
+z6..z7{up}..z10l{left}--z10r{right}
+..z9{right}..z8 & z8---z8'...z4r{right}
+--z4l & cycle;
+penstroke z10e{left}..z11e{down}
+..z12e{right};
+%
+%
+%
+penpos14(cap_hair,-90); penpos15(0.778cap_stem,25);
+penpos16(cap_stem,90); penpos17(0.5cap_stem,159);
+z15r=(w,0.7h); z16r=(0.5w,h+apex_o);
+z17r=(0,x15r); z14=(0.5w,0.415h);
+penstroke z15e{up}..z16e{left}..
+z17e{down}..z14e{right}..z15e{up};
+%
+%
+%
+z0=(x16,y17r); z18-z0=whatever*dir201;
+z13-z0=whatever*dir221;
+x18=x13=0;
+unfilldraw z18--z0--z13--z18 &
+cycle;
+.endchar; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/gothic/ygotbase.mf b/Master/texmf-dist/fonts/source/public/gothic/ygotbase.mf
new file mode 100644
index 00000000000..f450a47d0f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/ygotbase.mf
@@ -0,0 +1,79 @@
+def podi(suffix $)=
+z$.1=z$l-(2apex_o,0);
+penpos$.2(stem,40); z$.2l=z$.1;
+penpos$.3(stem,40);
+z$.3r-z$.2r=whatever*dir-50;
+y$.3l=-apex_o;
+penstroke z$.3e--z$.2e
+enddef;
+
+def qeri(suffix $)=
+z$.1=z$r+(2apex_o,0);
+penpos$.2(stem,40); z$.2r=z$.1;
+penpos$.3(stem,40);
+z$.2r-z$.3r=whatever*dir-50;
+y$.3r=y$+foot+apex_o;
+penstroke z$.2e--z$.3e
+enddef;
+
+def panwqeri(suffix $)=
+z$.1=z$r+(2apex_o,0);
+penpos$.2(stem,40); z$.2r=z$.1;
+penpos$.3(stem,40);
+z$.2r-z$.3r=whatever*dir-50;
+y$.3r=y$+foot+apex_o;
+penstroke z$.2e--z$.3e;
+penpos$.4(hair,-50);
+z$.4l=z$.3r; z$.5=whatever[z$.3r,z$.3l];
+x$.5=x$l-1.233stem; x$.6=x$.5;
+z$.6-z$.4r=whatever*(z$.5-z$.3);
+filldraw z$.5--z$.4l--z$.4r--z$.6--z$.5
+& cycle;
+unfilldraw z$.5--(x$.5,y$.3l)
+--z$.3l--z$.5 & cycle;
+enddef;
+
+def katwpodi(suffix $)=
+z$.1=z$l-(2apex_o,0);
+penpos$.2(stem,40); z$.2l=z$.1;
+penpos$.3(stem,40);
+z$.3r-z$.2r=whatever*dir-50;
+y$.3l=-apex_o;
+penstroke z$.3e--z$.2e;
+penpos$.4(hair,-50);
+z$.4r=z$.3l; z$.5=whatever[z$.3r,z$.3l];
+x$.5=x$r+1.233stem; x$.6=x$.5;
+z$.6-z$.4l=whatever*(z$.5-z$.3);
+filldraw z$.5--z$.4r--z$.4l--z$.6--z$.5
+& cycle;
+unfilldraw z$.5--(x$.5,y$.3l)
+--z$.3l--z$.5 & cycle;
+enddef;
+
+def Umlaut(suffix $) =
+penpos$.1(stem,45); penpos$.2(stem,45);
+penpos$.3(stem,45); penpos$.4(stem,45);
+penpos$.5(stem,-45); penpos$.6(stem,-45);
+y$.1=y$.3;
+z$.5l=z$.1l; z$.5r=z$.2l;
+z$.6l=z$.3l; z$.6r=z$.4l;
+%
+%
+%
+0.5[y$.1,y$.2]=x_height+2apex_o+2/3stem;
+x$.3l-x$.2r=0;
+%
+%
+%
+0.5[x$.2r,x$.3l]=x$;
+penstroke z$.1e--z$.2e;
+penstroke z$.3e--z$.4e;
+enddef;
+
+def ygoth_dot (suffix $) =
+penpos$.1(stem,45); penpos$.2(stem,45);
+penpos$.3(stem,-45);
+z$.1l=z$.3l; z$.2l=z$.3r;
+z$=.5[z$.1l,z$.2r];
+penstroke z$.1e--z$.2e;
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/gothic/ygoth.mf b/Master/texmf-dist/fonts/source/public/gothic/ygoth.mf
new file mode 100644
index 00000000000..a4c68d7cdb3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/ygoth.mf
@@ -0,0 +1,134 @@
+if unknown cmbase: input cmbase fi
+input ygotbase; % -sl 15-3-1991
+
+font_identifier:="ygoth"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+%x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+%hair#:=9/36pt#; % lowercase hairline breadth
+%stem#:=25/36pt#; % lowercase stem breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+%cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_hair#:=8/36pt#;
+cap_amount#:=8/36pt#;
+%cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_stem#:=36/36pt#;
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+mode_setup;
+font_setup;
+cap_amount:=8/36pt;
+foot:=27/36pt;
+num_height:=1.242x_height;
+boolean ligature; ligature:=false;
+
+
+%readfrom("ygothbase"); % -sl 15-3-1991
+%readfrom("ygothgen_l"); % -sl 15-3-1991
+input ygothgen % -sl 15-3-1991
+%generate ycurrent; % switch to the driver file%
+%generate ygothupper; % switch to the driver file
+generate ygothupp; % -sl 15-3-1991
+%generate ygothlower;
+generate ygothlow; % -sl 15-3-1991
+generate ygothlig;
+generate ygothnum;
+%generate ygothmisc;
+generate ygothmis; % -sl 15-3-1991
+
+font_slant slant; font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+ligtable oct"140": "s"=:oct"052", "t"=:oct"075", "`"=:oct"137";
+ligtable oct"052": "i"=:oct"057";
+ligtable "a": "e"=:oct"032";
+ligtable "b": "e"=:oct"001", "a"=:oct"000", "o"=:oct"002";
+ligtable "c": "h"=:oct"003", "k"=:oct"004", "t"=:oct"005";
+ligtable "d": "e"=:oct"007", "a"=:oct"006", "o"=:oct"010";
+ligtable "h": "e"=:oct"012", "a"=:oct"011", "o"=:oct"022";
+ligtable "i": "j"=:oct"026";
+ligtable "f": "i"=:oct"014", "f"=:oct"013", "l"=:oct"015";
+ %"'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#;
+ligtable oct"013": "i"=:oct"016", "l"=:oct"017";
+ %"'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#;
+ligtable "l": "l"=:oct"035";
+ligtable "p": "p"=:oct"043", "e"=:oct"024","a"=:oct"023","o"=:oct"025";
+ligtable "q": "q"=:oct"044", "z"=:oct"027";
+ligtable "s": "s"=:oct"046", "t"=:oct"074", "z"=:oct"031", ":"=:oct"140",
+"i" kern -u#;
+ligtable "o": "e"=:oct"033";
+ligtable oct"046": "i"=:oct"053";
+ligtable "t": "z"=:oct"076";
+ligtable "v": "e"=:oct"036", "a"=:oct"030", "u"=:oct"037";
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+ligtable "'": "'"=:oct"042";
+ligtable oct"042": "a"=:oct"133", "e"=:oct"134", "o"=:oct"135", "u"=:oct"136",
+"s"=:oct"031";
+end.
diff --git a/Master/texmf-dist/fonts/source/public/gothic/ygothgen.mf b/Master/texmf-dist/fonts/source/public/gothic/ygothgen.mf
new file mode 100644
index 00000000000..81f1538d81d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/ygothgen.mf
@@ -0,0 +1,452 @@
+def ygoth_a(suffix $) =
+w':=6.278u; penpos501(stem,0);
+z501=(x$+0.726w',foot);
+penpos502(stem,0);
+z502=(x501,0.732x_height);
+penstroke z501e--z502e;
+penpos511(stem,0); z511l=(x$+apex_o,y501);
+podi(511);
+if not ligature: podi(501); fi
+z512-z511l+(2apex_o,0)=whatever*dir-50;
+y512=-apex_o; penpos512'(hair,-50);
+z512'r=z512; z512.2-z512'l=whatever*(z501l-z512);
+x512.2=x501l;
+filldraw z512'r--z501l--z512.2--z512'l--z512'r & cycle;
+%
+%
+%
+penpos517(stem,0); z517=(x511,0.438x_height);
+penpos508(hair,-90); penpos509(hair,-90);
+z508r=z517r; z509r=(x501l,y508r);
+z510=whatever[z517l,z508l]; x510=x$;
+z510'=whatever[z510,z511]; x510'=x$+apex_o;
+filldraw z510--z508l--z508r--z510'--z510 & cycle;
+penstroke z508e--z509e; penstroke z511e--z517e;
+%
+%
+%
+penpos505(hair,125); z505=(x$+0.243w',0.830x_height);
+z504-z505r=whatever*dir35; y504=x_height+apex_o;
+penpos506(stem,40); z506r=z504;
+penpos503(stem,40); z503-z506=whatever*dir-30;
+x503=x501r; z506'=whatever[z506l,z503l];
+x506'=x$+0.5w'; penpos507(hair,180);
+y507=0.5[x_height,y517]; penpos505'(hair,125);
+z505'r=whatever[z505r,z504]; y505'r=0.9x_height;%0.856h;
+x507=x$+0.12w'; penpos509'(hair,-90);
+z509'=0.5[z508,z509];
+z503''=whatever[z503r,z506r]; x503''=x502r;
+if ligature: filldraw z503''--z504 & z504---z505'r...z507r...z509'r{right}
+& z509'r--z509'l & z509'l{left}...z507l...z505'l{z504-z505r}...
+z506'---(x502l,y503)---z503l--z503--z503'' & cycle;
+else:
+filldraw z503r--z504 & z504---z505'r...z507r...z509'r{right}
+& z509'r--z509'l & z509'l{left}...z507l...z505'l{z504-z505r}...
+z506'---(x502l,y503)---z503l--z503r & cycle; fi
+z520=1/3[z517r,z511r]; z521=1/3[z508r,z509r];
+filldraw z520{up}..z521{right} &
+z521--z508r--z520 & cycle;
+filldraw z502r--z503--(x502l,y503)--z502l--z502r & cycle;
+enddef;
+
+
+def ygoth_c (suffix $) =
+w':=4.306u; penpos401(stem,0); penpos402(stem,0);
+z401l=(x$+apex_o,foot);
+z402l=(x401l,0.748x_height);
+penpos403(stem,60); penpos404(stem,60);
+z404l=z401l-(apex_o,0); z403-z404=whatever*dir-30;
+y403l=-apex_o; penstroke z403e--z404e;
+penstroke z401e--z402e;
+penpos405(hair,-60); z405r-z403l=whatever*dir30;
+x405r=w'+apex_o; z403'=whatever[z404l,z403l];
+z403'-z405l=whatever*(z403l-z405r);
+z405'=whatever[z403',z405l];
+z405'-z404r=whatever*(z403r-z404r);
+filldraw z403l--z405r--z405l--z405'--z403r--z403l &
+cycle;
+%
+%
+%
+z406=(x$+0.581w',x_height+apex_o);
+z409=z402l-(apex_o,0);
+penpos407(stem,60); z406-z407r=whatever*dir150;
+x407r=x$+w'; z408'=whatever[z409,z406];
+z408'-z407l=whatever*(z406-z407r);
+z408=whatever[z408',z407l]; x408=x408'+apex_o;
+z410-z409=whatever*(z405r-z405l);
+x410=x402l; z408''=whatever[z408,z407l]; x408''=x402r;
+filldraw z410--z409 & flex(z409,z408,z406) & z406--z407r
+--z407l--z408''--z402r--z402l--z410 & cycle;
+penpos409.5(hair,-60); penpos408.5(hair,-60);
+penpos406.5(hair,-60); z409.5l=z409; z408.5l=z408;
+z406.5l=z406;
+penstroke z409.5e..z408.5e..z406.5e;
+enddef;
+
+def ygoth_e (suffix $) =
+w':=5u; penpos601(stem,0);
+z601l=(x$+apex_o,foot);
+z602'=(x$+0.5w',-apex_o); z601'=z601l-(apex_o,0);
+penpos602(stem,0); z602=(x601,0.804x_height);
+penpos603(stem,angle(z602'-z601')+90);
+z603l=z602';
+penpos604(stem,angle(z602'-z601')+90);
+z604l=z601'; penstroke z601e--z602e;
+penstroke z603e--z604e;
+penpos615(hair,-60); z615r=z602';
+z616-z615r=whatever*dir30; x616=x$+w'-apex_o;
+x616=x616'; z616'-z615l=whatever*(z616-z615r);
+z616''=whatever[z615,z616'];
+y616''=0.5[foot,y616'];
+filldraw z603r{z603-z604}...z616''---z616' &
+z616'--z616--z615r--z615l--z603r & cycle;
+%
+%
+%
+z606=(x$+0.611w',x_height+apex_o);
+z610-z606=whatever*dir-45; x610=x$+w';
+penpos622(hair,angle(z610-z606));
+penpos621(hair,angle(z610-z606));
+penpos620(hair,angle(z610-z606));
+penpos621'(hair,angle(z610-z606));
+z622=z602l-(apex_o,0); z620l=z606; z621'l=0.5[z622l,z620l];
+z621l=z621';
+penstroke z622e..z621e..z620e;
+z608=(x601r,0.637[y602,y601]); penpos609(hair,angle(z610-z606));
+penpos610'(hair,angle(z610-z606));
+z609r=z608; z610'r=z610;
+penstroke z609e--z610'e;
+penpos611(stem,angle(z610-z606)+90); z611r=z610;
+z630=whatever[z622l,z606];
+z630-z611l=whatever*(z606-z610);
+z631=(z630--z611l) intersectionpoint
+(z622..z621..z620);
+filldraw z631..z620--z610--z611l--z631 & cycle;
+z633=(z622..z621..z620) intersectionpoint
+(z601r--(x601r,x_height));
+filldraw z602r--z633..z602l--z602r & cycle;
+enddef;
+
+def ygoth_s (suffix $) =
+w':=4.389u; penpos201(stem,0);
+z201l=(x$+apex_o,foot); z202=(x201,1.144x_height);
+penpos202(stem,0);
+penstroke z201e--z202e; z201'=z201l-(apex_o,0);
+penpos205(hair,-60);
+z205r-z201'=whatever*dir-50; y205r=-apex_o;
+penpos206(hair,-60); z206-z205=whatever*dir30;
+y206=foot; penpos203(stem,50);
+z203l=z201'; z207-z203r=whatever*(z205r-z201');
+z207=whatever[z205r,z206r];
+filldraw z201'--z205r--z206r--z206l--z205l--z201' &
+cycle;
+filldraw z201'--z203r--z207--z205r--z201' & cycle;
+%
+%
+%
+penpos220(hair,-40); penpos221(hair,-40);
+penpos222(hair,-40);
+z222l=(2/3[x201l,x206],1.405x_height);
+penpos208(stem,angle(z222l-z202l)); z208r=z222l;
+z209-z222l=whatever*dir-40; x209=x$+w'-hair;
+z210-z209=whatever*dir240;
+z210-z208l=whatever*(z209-z222l);
+z211=whatever[z208l,z210]; x211=x202r;
+z220l=z202l; penpos221'(hair,-40); z221'l=z208l;
+z221l=z221';
+penstroke z220e..z221e..z222e;
+filldraw z221..z222 & z222--z209--
+z210--z221 & cycle;
+z211'=(z220..z221..z222) intersectionpoint
+(z201r--(x201r,2x_height));
+filldraw z202l..z211' & z211'--z202r--z202l
+& cycle;
+x251=x252=x201l; y250=y251=0.732x_height;
+y252=y251+4/5stem; x250=x251-hair;
+filldraw z250--z252--z251--z250 & cycle;
+enddef;
+
+def ygoth_makru_s (suffix $) =
+w':=4.389u; penpos201(stem,0);
+z201l=(x$+apex_o,foot); z202=(x201,1.144x_height);
+penpos202(stem,0);
+penstroke z201e--z202e; z201'=z201l-(apex_o,0);
+penpos205(hair,-60);
+z205r-z201'=whatever*dir-50; y205r=-apex_o;
+penpos206(hair,-60); z206-z205=whatever*dir30;
+y206=foot; penpos203(stem,50);
+z203l=z201'; z207-z203r=whatever*(z205r-z201');
+z207=whatever[z205r,z206r];
+penpos270(0.5hair,0); x270l=x201l; y270=-0.3x_height;
+penpos271(stem,0); z271=(x201,0);
+penstroke z270e--z271e--z201e;
+%
+%
+%
+penpos220(hair,-40); penpos221(hair,-40);
+penpos222(hair,-40);
+z222l=(2/3[x201l,x206],1.405x_height);
+penpos208(stem,angle(z222l-z202l)); z208r=z222l;
+z209-z222l=whatever*dir-40; x209=x$+w'-hair;
+z210-z209=whatever*dir240;
+z210-z208l=whatever*(z209-z222l);
+z211=whatever[z208l,z210]; x211=x202r;
+z220l=z202l; penpos221'(hair,-40); z221'l=z208l;
+z221l=z221';
+penstroke z220e..z221e..z222e;
+filldraw z221..z222 & z222--z209--
+z210--z221 & cycle;
+z211'=(z220..z221..z222) intersectionpoint
+(z201r--(x201r,2x_height));
+filldraw z202l..z211' & z211'--z202r--z202l
+& cycle;
+x251=x252=x201l; y250=y251=0.732x_height;
+y252=y251+4/5stem; x250=x251-hair;
+filldraw z250--z252--z251--z250 & cycle;
+enddef;
+
+def ygoth_h (suffix $) =
+w':=6.111u; d':=2.778u;
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(x$+0.243w',foot); z2=(x1,1.271x_height);
+z9l=z1l-(apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=x$+w'-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+podi(1);
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x3r+apex_o,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+z21=0.267[z2l,z2r];
+z20=(x6,0.5[1.431x_height,y2]);
+penpos20(3/4hair,-135);
+z22=(0.545[x21,x20],1.431x_height-apex_o);
+z21'=(x1r,1/4[y21,y6]);
+filldraw z21..z22..{down}z20l & z20l--z20r
+& z20r{up}..z21'{down} & z21'--z2r--z21 &
+cycle;
+penpos18(hair,angle(z6-z17));
+x18r=x$;y18r=1/3[1.431x_height,y21];
+z21''=(x1l,0.5[y21,y6]);
+filldraw z21''{up}..{z18-z21}z18l &
+z18l--z18r--z21--z2l--z21'' & cycle;
+%
+%
+%
+z40=z3r+(apex_o,-0.5y3r); z41=(x3l-0.6hair,0);
+penpos42(hair,90); z42l=(x1,-d');
+filldraw z3r{down}..z40 & z40{dir225}..
+z42l{left} & z42l--z42r & z42r{right}..
+z3l{up} & z3l--z3r & cycle;
+enddef;
+
+def ygoth_k (suffix $) =
+w':=6.111u; d':=2.778u;
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(x$+0.243w',foot); z2=(x1,1.271x_height);
+z9l=z1l-(apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; %z3r-z7=whatever*dir30;
+z3r=(x$+w'-apex_o,foot);
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e;
+%penstroke z3e--z4e;
+podi(1);
+%
+%
+%
+penpos5(1.1stem,30); z6=(x3l,x_height);
+z6-z17=whatever*dir30; x17=x1r;
+z5r-z6=whatever*dir-60; x5r=x3r;
+penpos6'(hair,-60);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+z21=0.267[z2l,z2r];
+z20=(0.821[x1r,x3l],0.5[1.431x_height,y2]);
+penpos20(3/4hair,-135);
+z22=(0.545[x21,x20],1.431x_height-apex_o);
+z21'=(x1r,1/4[y21,y6]);
+filldraw z21..z22..{down}z20l & z20l--z20r
+& z20r{up}..z21'{down} & z21'--z2r--z21 &
+cycle;
+penpos18(hair,angle(z6-z17));
+x18r=x$;y18r=1/3[1.431x_height,y21];
+z21''=(x1l,0.5[y21,y6]);
+filldraw z21''{up}..{z18-z21}z18l &
+z18l--z18r--z21--z2l--z21'' & cycle;
+%
+%
+%
+penpos30(hair,-60); z30r=z5r; x31=x32=x1r;
+z31-z30r=whatever*(z17-z6);
+z32-z30l=whatever*(z17-z6);
+filldraw z31--z32--z30l--z30r--z31 & cycle;
+penpos4.5(stem,0); penpos33(stem,angle(z30r-z31));
+x4.5=x3; z4.5-z33=whatever*dir-25;
+penpos33'(1.2hair,angle(z30r-z31));
+z33'r=z5l; z33r=z5l; podi(3);
+penstroke z3e--z4.5e;
+penpos34(stem,angle(z30r-z31));
+x34r=x$+w'+apex_o;
+z34r-z33r=whatever*dir-25;
+penstroke z34e--z33e;
+if y34r > y4.5:
+filldraw z4.5r--(x4.5r,y34r)--(x4.5l,y34r)
+--z4.5l--z4.5r & cycle; fi
+enddef;
+
+def ygoth_o (suffix $) =
+w':=6.111u;
+penpos801(stem,0); penpos802(stem,0);
+penpos803(stem,0); penpos804(stem,0);
+penpos808(stem,60); penpos809(stem,60);
+z801=(x$+0.243w',foot); z802=(x801,0.888x_height);
+z809l=z801l-(apex_o,0);
+x807=0.359[x801r,x803l]; y807=-apex_o;
+z808l=z807; z803r-z807=whatever*dir30;
+x803r=x$+w'-apex_o;
+z804r=(x803r,0.88x_height); %0.833
+z807'=whatever[z809r,z808r]; z807'=whatever[z807,z803r];
+z807''=whatever[z807,z803r]; x807''=x803l;
+penstroke z808e--z809e;
+penstroke z803e--z804e;
+filldraw z808r--z807'--z807--z808r & cycle;
+filldraw z807''--z803l--z803r--z807'' & cycle;
+penpos700(hair,angle(z803r-z807)-90);
+penpos701(hair,angle(z803r-z807)-90);
+z700r=z807; z701r=whatever[z807,z803r]; x701l=x803r;
+penstroke z700e--z701e;
+%
+%
+%
+penpos805(stem,60); z817=(x801r,0.824x_height);
+z806=(0.821[x801r,x803l],x_height);
+z805r=(x701r,y804);
+penpos806'(hair,angle(z806-z817)-90);
+z806'l=z806; z817'-z806'r=whatever*(z817-z806);
+x817'=x801r; z805.1=whatever[z817',z806'r];
+z805.1-z805l=whatever*(z806-z805r);
+filldraw z805r--z806--z817--z817'--z805.1--z805l--z805r
+& cycle;
+%
+%
+%
+penpos802'(stem,0); z802'r=z817';
+z831=whatever[z806,z805r]; x831=x801l;
+z830=whatever[z831,z805r];
+z830-z802'l=whatever*(z802'r-z806'r);
+x834=x$; z834=whatever[z805.1,z805l];
+z832=(x831-0.5hair,y831+hair);
+z833=(2(x832-x$),y834); z835=whatever[z802'l,z830];
+z835=whatever[z834,z805.1];
+penpos750(hair,angle(z830-z802'l)-90);
+z750l=0.5[z802'l,z830];
+filldraw z802'r--z806'r--z806--z830
+& flex(z830,z750r,z802'l) & z802'l--z802'r & cycle;
+penstroke z801e--z802'e;
+enddef;
+
+def ygoth_t (suffix $) =
+w':=4.389u; h':=1.242x_height;
+penpos501(stem,0);
+z501l=(x$+apex_o,foot); z502=(x501,x_height-foot);
+penpos502(stem,0);
+penstroke z501e--z502e; z501'=z501l-(apex_o,0);
+penpos505(hair,-60);
+z505r-z501'=whatever*dir-50; y505r=-apex_o;
+penpos506(hair,-60); z506-z505=whatever*dir30;
+y506=foot; penpos503(stem,50);
+z503l=z501'; z507-z503r=whatever*(z505r-z501');
+z507=whatever[z505r,z506r];
+filldraw z501'--z505r--z506r--z506l--z505l--z501' &
+cycle;
+filldraw z501'--z503r--z507--z505r--z501' & cycle;
+%
+%
+%
+penpos510(0.767stem,90); penpos521(hair,0);
+z510l=(x501r+stem,y502); z520=(x501l-0.5stem,y502);
+z522=(x501r,y510r); z521=(x501r,h');
+filldraw z510l--z520--z521l--z521r..z522{down}
+& z522--z510r--z510l & cycle;
+enddef;
+
+def ygoth_u (suffix $) =
+w':=5.5u;
+penpos601(stem,0); penpos602(stem,0);
+penpos603(stem,0); penpos604(stem,0);
+x601l=x$+hair;
+x602=x601; x604l=x603l=x601r+1.233stem;
+y601=y603=foot; y602=y604=x_height-foot;
+penstroke z601e--z602e;
+penstroke z603e--z604e;
+ podi(603); katwpodi(601);
+if not ligature: qeri(602); fi qeri(604);
+enddef;
+
+def ygoth_z (suffix $) =
+w':=4.306u; d':=3.333u;
+penpos701(hair,-40); penpos702(hair,-40);
+penpos703(hair,-40); penpos704(hair,-40);
+penpos705(1.1stem,50); penpos706(1.1stem,50);
+penpos707(1.3stem,50); penpos710(hair,-90);
+y701l=0.242x_height;
+x701l=x$-2apex_o; x702r=x$+w'+apex_o; y710r=-d';
+z702r-z701r=whatever*dir50;
+penstroke z701e--z702e;
+z704r-z702r=whatever*dir150;
+y704l=x_height+apex_o;
+z704l-z703l=whatever*(z701-z702);
+x703l=x701l; z705=0.5[z703r,z704r];
+z706r-z705r=whatever*(z702r-z704r);
+z706=whatever[z701l,z702l];
+z707=whatever[z701r,z702r];
+x707=1/3[x701l+2apex_o,x702r-apex_o];
+z709=(x702r,0.163x_height);
+z708=(0.632[x701l+2apex_o,x702r-apex_o],0);
+x710=0.123[x701l+2apex_o,x702r-apex_o];
+penstroke z703e--z704e;
+penstroke z706e--z705e;
+filldraw z710r{right}..z709{dir70}
+& z709..z707r{z702l-z702r}
+& z707r--z707l & z707l{z702r-z702l}..z708{down}..
+z710l{left} & z710l--z710r & cycle;
+z711=(z707l{z702r-z702l}..z708{down}..
+z710l{left}) intersectionpoint
+((x707,0)--z707);
+filldraw z711--z707--z701r & z701r{z707-z701r}..
+{z701r-z701l}z711 & cycle;
+z712=whatever[z705l,z706l];
+x712=x705; filldraw z712{z705l-z706l}..z703r{z703r-z704r}
+& z703r--z705--z712 & cycle;
+enddef; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/gothic/ygothlig.mf b/Master/texmf-dist/fonts/source/public/gothic/ygothlig.mf
new file mode 100644
index 00000000000..8973089b3b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/ygothlig.mf
@@ -0,0 +1,1578 @@
+.cmchar "The gothic ligature sz";
+.beginchar(oct"031",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+1.6u#);
+z0=(hair,0); ygoth_makru_s(0); z50=(apex_o+stem,0);
+ygoth_z(50);
+.endchar;
+
+.cmchar "The gothic ligature fi";
+.beginchar(oct"014",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+1.3u#);
+z0=(hair,0); ygoth_s(0);
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+penstroke z260e--z261e;
+penpos1(stem,0); penpos2(stem,0);
+z1l=(x206l,foot);
+z2=(x1,x_height-foot);
+podi(1); qeri(2); penstroke z1e--z2e;
+z261.5=0.5[z260,z261]; penpos261.5(stem,-90);
+unfilldraw z261.5r--z261r--z261l--z261.5l--
+z261.5r & cycle;
+%
+%
+%
+z5.1=z2r+(2apex_o,0);
+penpos5.2(stem,40); z5.2r=z5.1;
+penpos5.3(stem,40);
+z5.2r-z5.3r=whatever*dir-50;
+y5.3r=y2+foot+apex_o;
+z3=z5.3r+(0,0.5hair);
+penpos4(0.8stem,0); y4=1.379x_height;
+x4r=x2r+hair;
+filldraw z3--z4l--z4r--z3 & cycle;
+penpos3'(x3-x210,0); penpos4'(x3-x210,0);
+z3'r=z3; z4'r=z4l;
+unfilldraw z3'r--z4'r--z4'l--z3'l--z3'r &
+cycle;
+.endchar;
+
+.cmchar "The gothic ligature ffi";
+.beginchar(oct"016",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#-u#,cap_serif_fit#+5.3u#);
+z0=(hair,0); ygoth_s(0);
+transform metatopish;
+metatopish=identity
+shifted (x201l-x206l,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+%
+%
+%
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+penstroke z260e--z261e;
+penpos1(stem,0); penpos2(stem,0);
+z1l=(x206l,foot);
+z2=(x1,x_height-foot);
+podi(1); qeri(2); penstroke z1e--z2e;
+z261.5=0.5[z260,z261]; penpos261.5(stem,-90);
+unfilldraw z261.5r--z261r--z261l--z261.5l--
+z261.5r & cycle;
+%
+%
+%
+penpos275(4/5stem,-90); z275=(2x201l-x206l,y261);
+penstroke z275e--z260e;
+penpos276(stem,angle(z222l-z202l));
+z276l=whatever[z211+(x201l-x206l,0),z210+(x201l-x206l,0)];
+x276r=x201r;
+filldraw z276r--z209+(x201l-x206l,0)--
+z210+(x201l-x206l,0)--z276l--z276r & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+%
+%
+%
+z5.1=z2r+(2apex_o,0);
+penpos5.2(stem,40); z5.2r=z5.1;
+penpos5.3(stem,40);
+z5.2r-z5.3r=whatever*dir-50;
+y5.3r=y2+foot+apex_o;
+z3=z5.3r+(0,0.5hair);
+penpos4(0.8stem,0); y4=1.379x_height;
+x4r=x2r+hair;
+filldraw z3--z4l--z4r--z3 & cycle;
+penpos3'(x3-x210,0); penpos4'(x3-x210,0);
+z3'r=z3; z4'r=z4l;
+unfilldraw z3'r--z4'r--z4'l--z3'l--z3'r &
+cycle;
+transform metatopish;
+metatopish=identity
+shifted (4u,0);
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The gothic ligature fl";
+.beginchar(oct"015",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+2.7u#);
+z0=(hair,0); ygoth_s(0); z100=(x206l,0);
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+penstroke z260e--z261e;
+%
+%
+%
+w':=4.278u; h':=1.431x_height;
+penpos301(stem,0); penpos302(stem,0);
+penpos303(stem,0); penpos304(stem,0);
+penpos308(stem,60); penpos309(stem,60);
+z301=(x206l+0.243w'-apex_o,foot); z302=(x301,0.888h');
+penstroke z301e--z302e; podi(301);
+%
+%
+%
+z321=0.267[z302l,z302r];
+z320l=(x206l-apex_o+1.243w',0.5[h',y302]);
+penpos320(3/4hair,-135);
+z322=(0.7[x321,x320],h'-apex_o);
+z321'=(x301r,1/4[y321,x_height]);
+penpos325(0.7hair,-90); z325l=z322;
+filldraw z321..z325l{right} & z325l--z325r &
+z325r{left}..z321'{down} & z321'--z302r--z321 &
+cycle;
+.endchar;
+
+.cmchar "The gothic ligature ffl";
+.beginchar(oct"017",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+5.5u#);
+z0=(hair,0); ygoth_s(0); z100=(x206l,0);
+transform metatopish;
+metatopish=identity
+shifted (x201l-x206l,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+penstroke z260e--z261e;
+%
+%
+%
+penpos275(4/5stem,-90); z275=(2x201l-x206l,y261);
+penstroke z275e--z260e;
+penpos276(stem,angle(z222l-z202l));
+z276l=whatever[z211+(x201l-x206l,0),z210+(x201l-x206l,0)];
+x276r=x201r;
+filldraw z276r--z209+(x201l-x206l,0)--
+z210+(x201l-x206l,0)--z276l--z276r & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+%
+%
+%
+w':=4.278u; h':=1.431x_height;
+penpos301(stem,0); penpos302(stem,0);
+penpos303(stem,0); penpos304(stem,0);
+penpos308(stem,60); penpos309(stem,60);
+z301=(x206l+0.243w'-apex_o,foot); z302=(x301,0.888h');
+penstroke z301e--z302e; podi(301);
+%
+%
+%
+z321=0.267[z302l,z302r];
+z320l=(x206l-apex_o+1.243w',0.5[h',y302]);
+penpos320(3/4hair,-135);
+z322=(0.7[x321,x320],h'-apex_o);
+z321'=(x301r,1/4[y321,x_height]);
+penpos325(0.7hair,-90); z325l=z322;
+filldraw z321..z325l{right} & z325l--z325r &
+z325r{left}..z321'{down} & z321'--z302r--z321 &
+cycle;
+
+
+transform metatopish;
+metatopish=identity
+shifted (3u,0);
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The gothic ligature ff";
+.beginchar(oct"013",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+3u#);
+z0=(hair,0); ygoth_s(0); z100=(x206l,0);
+transform metatopish;
+metatopish=identity
+shifted (x201l-x206l,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+penstroke z260e--z261e;
+%
+%
+%
+penpos275(4/5stem,-90); z275=(2x201l-x206l,y261);
+penstroke z275e--z260e;
+penpos276(stem,angle(z222l-z202l));
+z276l=whatever[z211+(x201l-x206l,0),z210+(x201l-x206l,0)];
+x276r=x201r;
+filldraw z276r--z209+(x201l-x206l,0)--
+z210+(x201l-x206l,0)--z276l--z276r & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+transform metatopish;
+metatopish=identity
+shifted (3u,0);
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The gothic ligature tz";
+.beginchar(oct"076",4.389u#,1.242x_height#,0);
+.adjust_fit(2cap_serif_fit#+0.3u#,cap_serif_fit#+1.7u#);
+z0=(0,0); ygoth_t(0); z100=(x522,0);
+ygoth_z(100);
+z704'=whatever[z704l,z703l]; y704'=y510;
+filldraw z522{right}..z704l{z704-z703} &
+z704l--z704'--z522 & cycle;
+.endchar;
+
+.cmchar "The gothic ligature ss";
+.beginchar(oct"046",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#+0.6u#,cap_serif_fit#+2.5u#);
+z0=(hair,0); ygoth_makru_s(0); z100=(x206l,0);
+transform metatopish;
+metatopish=identity
+shifted (x201l-x206l,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+%
+%
+%
+penpos275(4/5stem,-90); z275=(2x201l-x206l,y261);
+penpos276(stem,angle(z222l-z202l));
+z276l=whatever[z211+(x201l-x206l,0),z210+(x201l-x206l,0)];
+x276r=x201r;
+filldraw z276r--z209+(x201l-x206l,0)--
+z210+(x201l-x206l,0)--z276l--z276r & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+transform metatopish;
+metatopish=identity
+shifted (2.5u,0);
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The gothic ligature ssi";
+.beginchar(oct"053",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#+0.65u#,cap_serif_fit#+3.8u#);
+z0=(hair,0); ygoth_makru_s(0);
+transform metatopish;
+metatopish=identity
+shifted (x201l-x206l,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+%
+%
+%
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+penpos1(stem,0); penpos2(stem,0);
+z1l=(x206l,foot);
+z2=(x1,x_height-foot);
+podi(1); qeri(2); penstroke z1e--z2e;
+z261.5=0.5[z260,z261]; penpos261.5(stem,-90);
+unfilldraw z261.5r--z261r--z261l--z261.5l--
+z261.5r & cycle;
+%
+%
+%
+penpos275(4/5stem,-90); z275=(2x201l-x206l,y261);
+penpos276(stem,angle(z222l-z202l));
+z276l=whatever[z211+(x201l-x206l,0),z210+(x201l-x206l,0)];
+x276r=x201r;
+filldraw z276r--z209+(x201l-x206l,0)--
+z210+(x201l-x206l,0)--z276l--z276r & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+%
+%
+%
+z5.1=z2r+(2apex_o,0);
+penpos5.2(stem,40); z5.2r=z5.1;
+penpos5.3(stem,40);
+z5.2r-z5.3r=whatever*dir-50;
+y5.3r=y2+foot+apex_o;
+z3=z5.3r+(0,0.5hair);
+penpos4(0.8stem,0); y4=1.379x_height;
+x4r=x2r+hair;
+filldraw z3--z4l--z4r--z3 & cycle;
+penpos3'(x3-x210,0); penpos4'(x3-x210,0);
+z3'r=z3; z4'r=z4l;
+unfilldraw z3'r--z4'r--z4'l--z3'l--z3'r &
+cycle;
+transform metatopish;
+metatopish=identity
+shifted (2.5u,0);
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The gothic ligature st";
+.beginchar(oct"074",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#+0.3u#,cap_serif_fit#+1.6u#);
+z0=(0,0); ygoth_makru_s(0);
+z100=(x209-stem+0.5u,0); ygoth_t(100);
+.endchar;
+
+.cmchar "The gothic ligature ct";
+.beginchar(oct"005",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#+0.2u#,cap_serif_fit#+2.9u#);
+z0=(0,0); ygoth_c(0);
+z100=(x405'+apex_o,0); ygoth_t(100);
+%
+%
+%
+penpos450(hair,90);
+penpos451(hair,angle(z520-z521l));
+penpos452(hair,0); z452=(x410,1/3[y521,y522]);
+z450r=z406; z451l=z521l;
+penstroke z450e..z452e..
+z451e{z510r-z521l};
+.endchar;
+
+.cmchar "The gothic ligature ch";
+.beginchar(oct"003",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+5u#);
+z0=(0,0); ygoth_c(0);
+z100=(x405'-hair,0); ygoth_h(100);
+.endchar;
+
+.cmchar "The gothic ligature ck";
+.beginchar(oct"004",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+5.4u#);
+z0=(0,0); ygoth_c(0);
+z100=(x405'-hair,0); ygoth_k(100);
+.endchar;
+
+
+.cmchar "The gothic ligature ll";
+.beginchar(oct"035",4.278u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+2u#);
+penpos301(stem,0); penpos302(stem,0);
+penpos303(stem,0); penpos304(stem,0);
+penpos308(stem,60); penpos309(stem,60);
+z301=(0.243w,foot); z302=(x301,0.888h);
+penstroke z301e--z302e; podi(301);
+%
+%
+%
+z321=0.267[z302l,z302r]; z320l=(w,0.5[h,y302]);
+penpos320(3/4hair,-135);
+z322=(0.7[x321,x320],h-apex_o);
+z321'=(x301r,1/4[y321,x_height]);
+penpos325(0.7hair,-90); z325l=z322;
+filldraw z321..z325l{right} & z325l--z325r &
+z325r{left}..z321'{down} & z321'--z302r--z321 &
+cycle;
+transform metatopish;
+metatopish=identity
+shifted (x320r-x301l-hair,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+penpos318(hair,45);
+x318r=0;y318r=1/3[h,y321];
+z321''=(x301l,0.5[y321,x_height]);
+filldraw z321''{up}..{z318-z321}z318l &
+z318l--z318r--z321--z302l--z321'' & cycle;
+%
+%
+%
+penpos328(hair,180);
+z328r=z302l+(x320r-x301l-hair,0);
+penstroke z325e{right}..z328e;
+.endchar;
+
+.cmchar "The gothic ligature oldstyle ssi";
+.beginchar(oct"057",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#+0.5u#,cap_serif_fit#+4u#);
+z0=(hair,0); ygoth_s(0);
+transform metatopish;
+metatopish=identity
+shifted (x201l-x206l,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+%
+%
+%
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+penpos1(stem,0); penpos2(stem,0);
+z1l=(x206l,foot);
+z2=(x1,x_height-foot);
+podi(1); qeri(2); penstroke z1e--z2e;
+z261.5=0.5[z260,z261]; penpos261.5(stem,-90);
+unfilldraw z261.5r--z261r--z261l--z261.5l--
+z261.5r & cycle;
+%
+%
+%
+penpos275(4/5stem,-90); z275=(2x201l-x206l,y261);
+penpos276(stem,angle(z222l-z202l));
+z276l=whatever[z211+(x201l-x206l,0),z210+(x201l-x206l,0)];
+x276r=x201r;
+filldraw z276r--z209+(x201l-x206l,0)--
+z210+(x201l-x206l,0)--z276l--z276r & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+%
+%
+%
+z5.1=z2r+(2apex_o,0);
+penpos5.2(stem,40); z5.2r=z5.1;
+penpos5.3(stem,40);
+z5.2r-z5.3r=whatever*dir-50;
+y5.3r=y2+foot+apex_o;
+z3=z5.3r+(0,0.5hair);
+penpos4(0.8stem,0); y4=1.379x_height;
+x4r=x2r+hair;
+filldraw z3--z4l--z4r--z3 & cycle;
+penpos3'(x3-x210,0); penpos4'(x3-x210,0);
+z3'r=z3; z4'r=z4l;
+unfilldraw z3'r--z4'r--z4'l--z3'l--z3'r &
+cycle;
+transform metatopish;
+metatopish=identity
+shifted (2.5u,0);
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The gothic ligature oldstyle st";
+.beginchar(oct"075",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#+0.3u#,cap_serif_fit#+1.6u#);
+z0=(0,0); ygoth_s(0);
+z100=(x209-stem+0.5u,0); ygoth_t(100);
+.endchar;
+
+.cmchar "The gothic ligature oldstyle ss";
+.beginchar(oct"052",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#+0.5u#,cap_serif_fit#+2.5u#);
+z0=(hair,0); ygoth_s(0); z100=(x206l,0);
+transform metatopish;
+metatopish=identity
+shifted (x201l-x206l,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+%
+%
+%
+penpos275(4/5stem,-90); z275=(2x201l-x206l,y261);
+penpos276(stem,angle(z222l-z202l));
+z276l=whatever[z211+(x201l-x206l,0),z210+(x201l-x206l,0)];
+x276r=x201r;
+filldraw z276r--z209+(x201l-x206l,0)--
+z210+(x201l-x206l,0)--z276l--z276r & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+unfilldraw z220l..z221l..z222l--
+(x201l,y222)--z220l & cycle;
+transform metatopish;
+metatopish=identity
+shifted (2.5u,0);
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The gothic scandinavian o-slash";
+.beginchar(oct"034",6.111u#,x_height#,0);
+.adjust_fit(cap_serif_fit#-0.5u#,cap_serif_fit#);
+z0=(0,0); ygoth_o(0);
+z40=whatever[z809r,z808r]; x40=x801r;
+z41=whatever[z805l,z805.1]; x41=x803l;
+penpos40'(hair,angle(z41-z40)-90);
+z40'l=whatever[z40,z41]; y40'r=-2apex_o;
+penpos41'(hair,angle(z41-z40)-90);
+z41'l-z40'l=whatever*(z41-z40'r);;
+y41'l=x_height+2apex_o;
+penstroke z40'e--z41'e;
+.endchar;
+
+.cmchar "The gothic ligature oe";
+.beginchar(oct"033",6.111u#,x_height#,0);
+.adjust_fit(cap_serif_fit#-0.6u#,cap_serif_fit#+3.1u#);
+z0=(0,0); ygoth_o(0); z217=(x803l-apex_o,0);
+ygoth_e(217);
+unfilldraw z601l--z601'--(x601',y604r)--
+(x601l,y604r)--z601l & cycle;
+.endchar;
+
+.cmchar "The gothic ligature ae";
+.beginchar(oct"032",6.111u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+2.4u#);
+z0=(0,0); ligature:=true;
+ygoth_a(0); z217=(x502l-apex_o,0);
+ygoth_e(217);
+.endchar;
+
+.cmchar "The gothic ligature be";
+.beginchar(oct"001",6.111u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+3u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(2apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+z21=0.267[z2l,z2r]; z20=(x6,0.5[h,y2]);
+penpos20(3/4hair,-135);
+z22=(0.545[x21,x20],h-apex_o);
+z21'=(x1r,1/4[y21,y6]);
+filldraw z21..z22..{down}z20l & z20l--z20r
+& z20r{up}..z21'{down} & z21'--z2r--z21 &
+cycle;
+penpos18(hair,angle(z6-z17));
+x18r=0;y18r=1/3[h,y21];
+z21''=(x1l,0.5[y21,y6]);
+filldraw z21''{up}..{z18-z21}z18l &
+z18l--z18r--z21--z2l--z21'' & cycle;
+z500=whatever[z5l,z5r]; x500=x501=x3r;
+z501=whatever[z6,z5r];
+unfilldraw z500--z5r--z501--z500 & cycle;
+z217=(x3l-apex_o,0); ygoth_e(217);
+unfilldraw z601l--z601'--(x601',y604r)--
+(x601l,y604r)--z601l & cycle;
+.endchar;
+
+.cmchar "The gothic ligature de";
+.beginchar(oct"007",6.111u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+3.15u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.88x_height); %0.833
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos2'(stem,0); z2'r=z17';
+z31=whatever[z6,z5r]; x31=x1l;
+z30=whatever[z31,z5r];
+z30-z2'l=whatever*(z2'r-z6'r);
+x34=0; z34=whatever[z5.1,z5l];
+z32=(x31-0.5hair,y31+hair);
+z33=(2x32,y34); z35=whatever[z2'l,z30];
+z35=whatever[z34,z5.1];
+filldraw z2'r--z6'r--z6--z31--z34--z35
+--z2'l--z2'r & cycle;
+filldraw z34{up}..z32 & z32..{down}z33 &
+z33--z34 & cycle;
+penstroke z1e--z2'e;
+%
+%
+%
+penpos150(1.2hair,angle(z5.1-z35));
+z150l=z35;
+unfilldraw z2'r{up}..{z30-z35}z150r & z150r
+--z5.1--z2'r & cycle;
+unfilldraw z2'r{up}..{z30-z35}z150r & z150r
+--z5.1--z2'r & cycle;
+z500=whatever[z5l,z5r]; x500=x501=x3r;
+z501=whatever[z6,z5r];
+unfilldraw z500--z5r--z501--z500 & cycle;
+z217=(x3l-apex_o,0); ygoth_e(217);
+unfilldraw z601l--z601'--(x601',y604r)--
+(x601l,y604r)--z601l & cycle;
+.endchar;
+
+.cmchar "The gothic ligature he";
+.beginchar(oct"012",6.111u#,1.431x_height#,2.778u#);
+.adjust_fit(cap_serif_fit#+0.2u#,cap_serif_fit#+3.15u#);
+z0=(0,0); ygoth_h(0);
+z500=whatever[z5l,z5r]; x500=x501=x3r;
+z501=whatever[z6,z5r];
+unfilldraw z500--z5r--z501--z500 & cycle;
+z217=(x3l-apex_o,0); ygoth_e(217);
+unfilldraw z601l--z601'--(x601',y604r)--
+(x601l,y604r)--z601l & cycle;
+.endchar;
+
+.cmchar "The gothic ligature pp";
+.beginchar(oct"043",6.111u#,x_height#,0.431x_height#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+3.7u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,h-foot);
+z9l=z1l-(3apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+%
+%
+%
+penpos200(stem,0); z200=(x2,-0.271x_height);
+z21=0.267[z200l,z200r]; z20=(x6,0.5[-d,y200]);
+penpos20(3/4hair,-45);
+z22=(0.545[x21,x20],-d+apex_o);
+z21'=(x1r,1/4[y21,0]);
+filldraw z21..z22..{up}z20r & z20r--z20l
+& z20l{down}..z21'{up} & z21'--z200r--z21 &
+cycle;
+penpos18(hair,angle(z9-z8));
+x18r=0;y18r=1/3[-d,y21];
+z21''=(x1l,0.5[y21,0]);
+filldraw z21''{down}..{z18-z21}z18r &
+z18r--z18l--z21--z200l--z21'' & cycle;
+penstroke z200e--z1e;
+transform metatopish;
+metatopish=identity
+shifted (-x1l+x3l,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+qeri(2);
+.endchar;
+
+.cmchar "The gothic ligature qq";
+.beginchar(oct"044",6.111u#,x_height#,0.431x_height#);
+.adjust_fit(cap_serif_fit#-0.5u#,cap_serif_fit#+4u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.88x_height); %0.833
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101r=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r+hair,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos2'(stem,0); z2'r=z17';
+z31=whatever[z6,z5r]; x31=x1l;
+z30=whatever[z31,z5r];
+z30-z2'l=whatever*(z2'r-z6'r);
+x34=0; z34=whatever[z5.1,z5l];
+z32=(x31-0.5hair,y31+hair);
+z33=(2x32,y34); z35=whatever[z2'l,z30];
+z35=whatever[z34,z5.1];
+penpos150(0.9hair,angle(z30-z2'l)-90);
+z150l=0.5[z2'l,z30];
+filldraw z2'r--z6'r--z6--z30
+& flex(z30,z150r,z2'l) & z2'l--z2'r & cycle;
+penstroke z1e--z2'e;
+%
+%
+%
+penpos200(stem,0); z200=(x3,-0.271x_height);
+z210=0.267[z200r,z200l]; z201=(x7,0.5[-d,y200]);
+penpos201(3/4hair,45);
+z220=(0.545[x201,x210],-d+apex_o);
+z210'=(x3l,1/4[y210,0]);
+filldraw z210..z220..{up}z201l & z201l--z201r
+& z201r{down}..z210'{up} & z210'--z200r--z210 &
+cycle;
+penpos180(hair,angle(z17-z6));
+x180r=w; y180r=1/3[-d,y210];
+z210''=(x3r,0.5[y210,0]);
+filldraw z210''{down}..{z180-z210}z180l &
+z180l--z180r--z210--z200r--z210'' & cycle;
+penstroke z200e--z3e;
+transform metatopish;
+metatopish=identity
+shifted (-x1l+x3l,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+.endchar;
+
+.cmchar "The gothic ligature ij";
+.beginchar(oct"026",2.889u#,1.431x_height#,2.778u#);
+.adjust_fit(cap_serif_fit#+0.5u#,cap_serif_fit#+2.2u#);
+penpos101(stem,0); penpos102(stem,0);
+x101l=x102l=apex_o; y101=foot; y102=x_height-foot;
+podi(101); qeri(102); penstroke z101e--z102e;
+%
+%
+%
+z105.1=z102r+(2apex_o,0);
+penpos105.2(stem,40); z105.2r=z105.1;
+penpos105.3(stem,40);
+z105.2r-z105.3r=whatever*dir-50;
+y105.3r=y102+foot+apex_o;
+z103=z105.3r+(0,0.5hair);
+penpos104(0.8stem,0); y104=1.379x_height;
+x104r=x102r+hair;
+filldraw z103--z104l--z104r--z103 & cycle;
+%
+%
+%
+penpos1(stem,0); penpos2(stem,0);
+x1l=x2l=x101r+1.233stem; y1=foot; y2=x_height-foot;
+panwqeri(2); penstroke z1e--z2e;
+%
+%
+%
+z5.1=z2r+(2apex_o,0);
+penpos5.2(stem,40); z5.2r=z5.1;
+penpos5.3(stem,40);
+z5.2r-z5.3r=whatever*dir-50;
+y5.3r=y2+foot+apex_o;
+z3=z5.3r+(0,0.5hair);
+penpos4(0.8stem,0); y4=1.379x_height;
+x4r=x2r+hair;
+filldraw z3--z4l--z4r--z3 & cycle;
+%
+%
+%
+z40=z1r+(apex_o,-0.5y1r); z41=(x1l-0.6hair,0);
+penpos42(hair,90); z42l=(x1l-1.733stem,-d);
+filldraw z1r{down}..z40 & z40{dir225}..
+z42l{left} & z42l--z42r & z42r{right}..
+z1l{up} & z1l--z1r & cycle;
+.endchar;
+
+.cmchar "The gothic letter a with Umlaut";
+.beginchar(oct"133",6.278u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#-.2u#);
+z0=(0,0); ligature:= false; ygoth_a(0);
+z100=z506r;Umlaut(100);
+.endchar;
+
+.cmchar "The gothic letter e with Umlaut";
+.beginchar(oct"134",4.306u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+0.8u#);
+z0=(0,0); ygoth_e(0); Umlaut(606);
+.endchar;
+
+.cmchar "The gothic letter o with Umlaut";
+.beginchar(oct"135",4.306u#,x_height#,0);
+.adjust_fit(cap_serif_fit#-0.6u#,cap_serif_fit#+2u#);
+z0=(0,0); ygoth_o(0); Umlaut(830);
+.endchar;
+
+.cmchar "The gothic letter u with Umlaut";
+.beginchar(oct"136",5.5u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+0.2u#);
+z0=(0,0); ygoth_u(0);
+z100=(0.5[x601r,x603l]-2/3hair,0);
+Umlaut(100);
+.endchar;
+
+.cmchar "The gothic dotless i";
+.beginchar(oct"020",2.889u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#+0.3u#,cap_serif_fit#-.7u#);
+penpos1(stem,0); penpos2(stem,0);
+x1l=x2l=apex_o; y1=foot; y2=x_height-foot;
+podi(1); qeri(2); penstroke z1e--z2e;
+.endchar;
+
+.cmchar "The gothic dotless j";
+.beginchar(oct"021",2.889u#,1.431x_height#,2.778u#);
+.adjust_fit(cap_serif_fit#+0.3u#,cap_serif_fit#-u#);
+penpos1(stem,0); penpos2(stem,0);
+x1l=x2l=apex_o; y1=foot; y2=x_height-foot;
+qeri(2); penstroke z1e--z2e;
+%
+%
+%
+z40=z1r+(apex_o,-0.5y1r); z41=(x1l-0.6hair,0);
+penpos42(hair,90); z42l=(x1l-1.733stem,-d);
+filldraw z1r{down}..z40 & z40{dir225}..
+z42l{left} & z42l--z42r & z42r{right}..
+z1l{up} & z1l--z1r & cycle;
+.endchar;
+
+.cmchar "The gothic ligature ba";
+.beginchar(oct"000",6.111u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+4.2u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(2apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height+apex_o);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+z21=0.267[z2l,z2r]; z20=(x6,0.5[h,y2]);
+penpos20(3/4hair,-135);
+z22=(0.545[x21,x20],h-apex_o);
+z21'=(x1r,1/4[y21,y6]);
+filldraw z21..z22..{down}z20l & z20l--z20r
+& z20r{up}..z21'{down} & z21'--z2r--z21 &
+cycle;
+penpos18(hair,angle(z6-z17));
+x18r=0;y18r=1/3[h,y21];
+z21''=(x1l,0.5[y21,y6]);
+filldraw z21''{up}..{z18-z21}z18l &
+z18l--z18r--z21--z2l--z21'' & cycle;
+z0=(x7',0); ygoth_a(0);
+.endchar;
+
+.cmchar "The gothic ligature bo";
+.beginchar(oct"002",6.111u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+3.7u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(2apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height+apex_o);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+z21=0.267[z2l,z2r]; z20=(x6,0.5[h,y2]);
+penpos20(3/4hair,-135);
+z22=(0.545[x21,x20],h-apex_o);
+z21'=(x1r,1/4[y21,y6]);
+filldraw z21..z22..{down}z20l & z20l--z20r
+& z20r{up}..z21'{down} & z21'--z2r--z21 &
+cycle;
+penpos18(hair,angle(z6-z17));
+x18r=0;y18r=1/3[h,y21];
+z21''=(x1l,0.5[y21,y6]);
+filldraw z21''{up}..{z18-z21}z18l &
+z18l--z18r--z21--z2l--z21'' & cycle;
+z0=(x8r,0); ygoth_o(0);
+.endchar;
+
+.cmchar "The gothic ligature da";
+.beginchar(oct"006",6.111u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+4.4u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.88x_height); %0.833
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos2'(stem,0); z2'r=z17';
+z31=whatever[z6,z5r]; x31=x1l;
+z30=whatever[z31,z5r];
+z30-z2'l=whatever*(z2'r-z6'r);
+x34=0; z34=whatever[z5.1,z5l];
+z32=(x31-0.5hair,y31+hair);
+z33=(2x32,y34); z35=whatever[z2'l,z30];
+z35=whatever[z34,z5.1];
+filldraw z2'r--z6'r--z6--z31--z34--z35
+--z2'l--z2'r & cycle;
+filldraw z34{up}..z32 & z32..{down}z33 &
+z33--z34 & cycle;
+penstroke z1e--z2'e;
+%
+%
+%
+penpos150(1.2hair,angle(z5.1-z35));
+z150l=z35;
+unfilldraw z2'r{up}..{z30-z35}z150r & z150r
+--z5.1--z2'r & cycle;
+unfilldraw z2'r{up}..{z30-z35}z150r & z150r
+--z5.1--z2'r & cycle;
+z0=(x7',0); ygoth_a(0);
+.endchar;
+
+.cmchar "The gothic ligature do";
+.beginchar(oct"010",6.111u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+4u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.88x_height); %0.833
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos2'(stem,0); z2'r=z17';
+z31=whatever[z6,z5r]; x31=x1l;
+z30=whatever[z31,z5r];
+z30-z2'l=whatever*(z2'r-z6'r);
+x34=0; z34=whatever[z5.1,z5l];
+z32=(x31-0.5hair,y31+hair);
+z33=(2x32,y34); z35=whatever[z2'l,z30];
+z35=whatever[z34,z5.1];
+filldraw z2'r--z6'r--z6--z31--z34--z35
+--z2'l--z2'r & cycle;
+filldraw z34{up}..z32 & z32..{down}z33 &
+z33--z34 & cycle;
+penstroke z1e--z2'e;
+%
+%
+%
+penpos150(1.2hair,angle(z5.1-z35));
+z150l=z35;
+unfilldraw z2'r{up}..{z30-z35}z150r & z150r
+--z5.1--z2'r & cycle;
+unfilldraw z2'r{up}..{z30-z35}z150r & z150r
+--z5.1--z2'r & cycle;
+z0=(x8r,0); ygoth_o(0);
+.endchar;
+
+.cmchar "The gothic ligature ho";
+.beginchar(oct"022",6.111u#,1.431x_height#,2.778u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+3.8u#);
+z0=(0,0); ygoth_h(0);
+z50=(x8r,0); ygoth_o(50);
+.endchar;
+
+.cmchar "The gothic ligature ha";
+.beginchar(oct"011",6.111u#,1.431x_height#,2.778u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+4.3u#);
+z0=(0,0); ygoth_h(0);
+z50=(x7',0); ygoth_a(50);
+.endchar;
+
+.cmchar "The gothic ligature pa";
+.beginchar(oct"023",6.111u#,x_height#,0.431x_height#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+4.4u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,h-foot);
+qeri(2); z9l=z1l-(3apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+%
+%
+%
+penpos200(stem,0); z200=(x2,-0.271x_height);
+z21=0.267[z200l,z200r]; z20=(x6,0.5[-d,y200]);
+penpos20(3/4hair,-45);
+z22=(0.545[x21,x20],-d+apex_o);
+z21'=(x1r,1/4[y21,0]);
+filldraw z21..z22..{up}z20r & z20r--z20l
+& z20l{down}..z21'{up} & z21'--z200r--z21 &
+cycle;
+penpos18(hair,angle(z9-z8));
+x18r=0;y18r=1/3[-d,y21];
+z21''=(x1l,0.5[y21,0]);
+filldraw z21''{down}..{z18-z21}z18r &
+z18r--z18l--z21--z200l--z21'' & cycle;
+penstroke z200e--z1e;
+z50=(x7',0); ygoth_a(50);
+.endchar;
+
+.cmchar "The gothic ligature po";
+.beginchar(oct"025",6.111u#,x_height#,0.431x_height#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+4u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,h-foot);
+qeri(2); z9l=z1l-(3apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+%
+%
+%
+penpos200(stem,0); z200=(x2,-0.271x_height);
+z21=0.267[z200l,z200r]; z20=(x6,0.5[-d,y200]);
+penpos20(3/4hair,-45);
+z22=(0.545[x21,x20],-d+apex_o);
+z21'=(x1r,1/4[y21,0]);
+filldraw z21..z22..{up}z20r & z20r--z20l
+& z20l{down}..z21'{up} & z21'--z200r--z21 &
+cycle;
+penpos18(hair,angle(z9-z8));
+x18r=0;y18r=1/3[-d,y21];
+z21''=(x1l,0.5[y21,0]);
+filldraw z21''{down}..{z18-z21}z18r &
+z18r--z18l--z21--z200l--z21'' & cycle;
+penstroke z200e--z1e;
+z50=(x8r,0); ygoth_o(50);
+.endchar;
+
+.cmchar "The gothic ligature pe";
+.beginchar(oct"024",6.111u#,x_height#,0.431x_height#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+3.4u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,h-foot);
+qeri(2); z9l=z1l-(3apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+%
+%
+%
+penpos200(stem,0); z200=(x2,-0.271x_height);
+z21=0.267[z200l,z200r]; z20=(x6,0.5[-d,y200]);
+penpos20(3/4hair,-45);
+z22=(0.545[x21,x20],-d+apex_o);
+z21'=(x1r,1/4[y21,0]);
+filldraw z21..z22..{up}z20r & z20r--z20l
+& z20l{down}..z21'{up} & z21'--z200r--z21 &
+cycle;
+penpos18(hair,angle(z9-z8));
+x18r=0;y18r=1/3[-d,y21];
+z21''=(x1l,0.5[y21,0]);
+filldraw z21''{down}..{z18-z21}z18r &
+z18r--z18l--z21--z200l--z21'' & cycle;
+penstroke z200e--z1e;
+z50=(x7',0); ygoth_e(50);
+.endchar;
+
+.cmchar "The gothic ligature ve";
+.beginchar(oct"036",6.111u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+3.4u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,x_height-foot);
+z9l=z1l-(2apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+penpos202(hair,-45); x202l=x1l;
+y202l=1.333x_height;
+z203=(x1r,0.5[y2,x_height]);
+z204=(x1l,y2-0.5stem);
+penpos205(stem,45); x205=x1l;
+y205l=x_height-hair;
+penstroke z2e{up}..z205e{dir(angle(z205r-z205l)+90)}
+..z202e{dir45};
+z50=(x7',0); ygoth_e(50);
+.endchar;
+
+.cmchar "The gothic ligature va";
+.beginchar(oct"030",6.111u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+4.3u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,x_height-foot);
+z9l=z1l-(2apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+penpos202(hair,-45); x202l=x1l;
+y202l=1.333x_height;
+z203=(x1r,0.5[y2,x_height]);
+z204=(x1l,y2-0.5stem);
+penpos205(stem,45); x205=x1l;
+y205l=x_height-hair;
+penstroke z2e{up}..z205e{dir(angle(z205r-z205l)+90)}
+..z202e{dir45};
+z50=(x7',0); ygoth_a(50);
+.endchar;
+
+.cmchar "The gothic ligature vu";
+.beginchar(oct"037",6.111u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+4u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,x_height-foot);
+z9l=z1l-(2apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+penpos202(hair,-45); x202l=x1l;
+y202l=1.333x_height;
+z203=(x1r,0.5[y2,x_height]);
+z204=(x1l,y2-0.5stem);
+penpos205(stem,45); x205=x1l;
+y205l=x_height-hair;
+penstroke z2e{up}..z205e{dir(angle(z205r-z205l)+90)}
+..z202e{dir45}; ligature:=true;
+z50=(x8r+0.5u,0); ygoth_u(50);
+.endchar;
+
+.cmchar "The gothic ligature qz";
+.beginchar(oct"027",6.111u#,x_height#,0.431x_height#);
+.adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#+4.3u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.88x_height); %0.833
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101r=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r+hair,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos2'(stem,0); z2'r=z17';
+z31=whatever[z6,z5r]; x31=x1l;
+z30=whatever[z31,z5r];
+z30-z2'l=whatever*(z2'r-z6'r);
+x34=0; z34=whatever[z5.1,z5l];
+z32=(x31-0.5hair,y31+hair);
+z33=(2x32,y34); z35=whatever[z2'l,z30];
+z35=whatever[z34,z5.1];
+penpos150(0.9hair,angle(z30-z2'l)-90);
+z150l=0.5[z2'l,z30];
+filldraw z2'r--z6'r--z6--z30
+& flex(z30,z150r,z2'l) & z2'l--z2'r & cycle;
+penstroke z1e--z2'e;
+%
+%
+%
+penpos200(stem,0); z200=(x3,-0.271x_height);
+z210=0.267[z200r,z200l]; z201=(x7,0.5[-d,y200]);
+penpos201(3/4hair,45);
+z220=(0.545[x201,x210],-d+apex_o);
+z210'=(x3l,1/4[y210,0]);
+filldraw z210..z220..{up}z201l & z201l--z201r
+& z201r{down}..z210'{up} & z210'--z200r--z210 &
+cycle;
+penpos180(hair,angle(z17-z6));
+x180r=w; y180r=1/3[-d,y210];
+z210''=(x3r,0.5[y210,0]);
+filldraw z210''{down}..{z180-z210}z180l &
+z180l--z180r--z210--z200r--z210'' & cycle;
+penstroke z200e--z3e;
+z0=(x3r,0); ygoth_z(0);
+.endchar; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/gothic/ygothlow.mf b/Master/texmf-dist/fonts/source/public/gothic/ygothlow.mf
new file mode 100644
index 00000000000..bd893026f2d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/ygothlow.mf
@@ -0,0 +1,768 @@
+
+.cmchar "The gothic letter a";
+.beginchar("a",6.278u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#-0.3u#);
+z0=(0,0); ygoth_a(0); .endchar;
+
+.cmchar "The gothic letter b";
+.beginchar("b",6.111u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(2apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+z21=0.267[z2l,z2r]; z20=(x6,0.5[h,y2]);
+penpos20(3/4hair,-135);
+z22=(0.545[x21,x20],h-apex_o);
+z21'=(x1r,1/4[y21,y6]);
+filldraw z21..z22..{down}z20l & z20l--z20r
+& z20r{up}..z21'{down} & z21'--z2r--z21 &
+cycle;
+penpos18(hair,angle(z6-z17));
+x18r=0;y18r=1/3[h,y21];
+z21''=(x1l,0.5[y21,y6]);
+filldraw z21''{up}..{z18-z21}z18l &
+z18l--z18r--z21--z2l--z21'' & cycle;
+.endchar;
+
+.cmchar "The gothic letter c";
+.beginchar("c",4.306u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+z0=(0,0); ygoth_c(0);
+.endchar;
+
+.cmchar "The gothic letter d";
+.beginchar("d",6.111u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.88x_height); %0.833
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos2'(stem,0); z2'r=z17';
+z31=whatever[z6,z5r]; x31=x1l;
+z30=whatever[z31,z5r];
+z30-z2'l=whatever*(z2'r-z6'r);
+x34=0; z34=whatever[z5.1,z5l];
+z32=(x31-0.5hair,y31+hair);
+z33=(2x32,y34); z35=whatever[z2'l,z30];
+z35=whatever[z34,z5.1];
+filldraw z2'r--z6'r--z6--z31--z34--z35
+--z2'l--z2'r & cycle;
+filldraw z34{up}..z32 & z32..{down}z33 &
+z33--z34 & cycle;
+penstroke z1e--z2'e;
+%
+%
+%
+penpos150(1.2hair,angle(z5.1-z35));
+z150l=z35;
+unfilldraw z2'r{up}..{z30-z35}z150r & z150r
+--z5.1--z2'r & cycle;
+unfilldraw z2'r{up}..{z30-z35}z150r & z150r
+--z5.1--z2'r & cycle;
+.endchar;
+
+.cmchar "The gothic letter e";
+.beginchar("e",4.306u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+.7u#);
+z0=(0,0); ygoth_e(0);
+.endchar;
+
+.cmchar "The gothic letter f";
+.beginchar("f",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#-.2u#);
+z0=(hair,0); ygoth_s(0);
+penpos260(4/5stem,-90); penpos261(4/5stem,-90);
+y260r=y261r=0.732x_height;
+x260=x0+apex_o+stem;
+x261=x0+apex_o+2stem;
+penstroke z260e--z261e;
+.endchar;
+
+.cmchar "The gothic letter g";
+.beginchar("g",7.556u#,x_height#,3u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#-0.3u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+x1l=x2l=apex_o; x3l=x4l=0.574w;
+penpos5(1.083stem,63); penpos6(1.083stem,63);
+penpos20(2hair,-51); penpos21(2hair,-45);
+penpos22(2hair,-28);
+y1=0.108x_height; %y2=0.788x_height;
+y3=0.235x_height; y4=0.843x_height;
+y5r=x_height; x5l=x2r; y2=y5l;
+z6r=(w,0.915x_height); y20l=y2; x20=x1l;
+z21r=z2r; z22l=whatever[z5r,z5l]; y22l=h+apex_o;
+penpos6'(1.083stem,63);
+z6'l=whatever[z5l,z6l]; x6'=x6-hair;
+penstroke z1e--z2e; penstroke z3e--z4e;
+penstroke z6'e--z5e; penstroke z20e..z21e..z22e;
+penpos6''(1.083stem,63);
+z6''=whatever[z6l,z6r]; z6''l=1/5[z6l,z6r];
+penstroke z6'e{z6-z5}..z6''e;
+%
+%
+%
+penpos16(stem,65); z16l=(0,y1);
+penpos7(hair,-41);
+z7r=(x1l,-d); penpos8(hair,-41); z8l=z3l;
+z7'=whatever[z7l,z8l]; y7'=-d;
+filldraw z7'--z8l--z8r--z7r--z7' & cycle;
+z15'=whatever[z16l,(x1r,0)];
+z15'=whatever[z7r,z8r]; z15-z16r=
+whatever*(z15'-z16l); z15=whatever[z7r,z8r];
+filldraw z16l--z16r--z15--z15'--z16l &
+cycle;
+penpos9(stem,30); z9l=z3l;
+x12=x6r; z12-z9r=whatever*dir-60;
+penpos10(whatever,45); z10r=z12;
+z10l-z9l=whatever*(z12-z9r);
+z13''=whatever[z7l,z8l]; x13''=x1r;
+penpos11'(hair,-45);
+z11'r=z12; z11''=whatever[z9l,z10l];
+z11''-z11'l=whatever*(z10l-z10r);
+penpos13'(stem,angle(z11''-z13'')+90);
+z13'r=z13''; z11-z13'l=whatever*(z11''-z13'');
+z11=whatever[z10l,z10r];
+z13=whatever[z7l,z8l];
+z13=whatever[z13'l,z11];
+filldraw z13--z11--z12--z11'l--z11''--
+z13'r--z13 & cycle;
+penstroke z10e--z9e;
+filldraw z7r{z15-z7r}..z13'l{z11-z13}
+& z13'l--z13--z7r & cycle;
+.endchar;
+
+.cmchar "The gothic letter h";
+.beginchar("h",6.111u#,1.431x_height#,2.778u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+0.2u#);
+z0=(0,0); ygoth_h(0);
+.endchar;
+
+.cmchar "The gothic letter i";
+.beginchar("i",2.889u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#+0.6u#,cap_serif_fit#-.7u#);
+penpos1(stem,0); penpos2(stem,0);
+x1l=x2l=apex_o; y1=foot; y2=x_height-foot;
+podi(1); qeri(2); penstroke z1e--z2e;
+%
+%
+%
+z5.1=z2r+(2apex_o,0);
+penpos5.2(stem,40); z5.2r=z5.1;
+penpos5.3(stem,40);
+z5.2r-z5.3r=whatever*dir-50;
+y5.3r=y2+foot+apex_o;
+z3=z5.3r+(0,0.5hair);
+penpos4(0.8stem,0); y4=1.379x_height;
+x4r=x2r+hair;
+filldraw z3--z4l--z4r--z3 & cycle;
+.endchar;
+
+.cmchar "The gothic letter j";
+.beginchar("j",2.889u#,1.431x_height#,2.778u#);
+.adjust_fit(cap_serif_fit#+0.6u#,cap_serif_fit#-.85u#);
+penpos1(stem,0); penpos2(stem,0);
+x1l=x2l=apex_o; y1=foot; y2=x_height-foot;
+qeri(2); penstroke z1e--z2e;
+%
+%
+%
+z5.1=z2r+(2apex_o,0);
+penpos5.2(stem,40); z5.2r=z5.1;
+penpos5.3(stem,40);
+z5.2r-z5.3r=whatever*dir-50;
+y5.3r=y2+foot+apex_o;
+z3=z5.3r+(0,0.5hair);
+penpos4(0.8stem,0); y4=1.379x_height;
+x4r=x2r+hair;
+filldraw z3--z4l--z4r--z3 & cycle;
+%
+%
+%
+z40=z1r+(apex_o,-0.5y1r); z41=(x1l-0.6hair,0);
+penpos42(hair,90); z42l=(x1l-1.733stem,-d);
+filldraw z1r{down}..z40 & z40{dir225}..
+z42l{left} & z42l--z42r & z42r{right}..
+z1l{up} & z1l--z1r & cycle;
+.endchar;
+
+.cmchar "The gothic letter k";
+.beginchar("k",6.111u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+.4u#);
+z0=(0,0); ygoth_k(0);
+.endchar;
+
+.cmchar "The gothic letter l";
+.beginchar("l",4.278u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#-u#);
+penpos301(stem,0); penpos302(stem,0);
+penpos303(stem,0); penpos304(stem,0);
+penpos308(stem,60); penpos309(stem,60);
+z301=(0.243w,foot); z302=(x301,0.888h);
+penstroke z301e--z302e; podi(301);
+%
+%
+%
+z321=0.267[z302l,z302r]; z320l=(w,0.5[h,y302]);
+penpos320(3/4hair,-135);
+z322=(0.7[x321,x320],h-apex_o);
+z321'=(x301r,1/4[y321,x_height]);
+penpos325(0.7hair,-90); z325l=z322;
+filldraw z321..z325l{right} & z325l--z325r &
+z325r{left}..z321'{down} & z321'--z302r--z321 &
+cycle;
+penpos318(hair,45);
+x318r=0;y318r=1/3[h,y321];
+z321''=(x301l,0.5[y321,x_height]);
+filldraw z321''{up}..{z318-z321}z318l &
+z318l--z318r--z321--z302l--z321'' & cycle;
+.endchar;
+
+.cmchar "The gothic letter m";
+.beginchar("m",9u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos5(stem,0); penpos6(stem,0);
+x1l=hair;
+x2=x1; x4l=x3l=x1r+1.233stem;
+x6l=x5l=x3r+1.233stem;
+y1=y3=y5=foot; y2=y4=y6=x_height-foot;
+penstroke z1e--z2e; penstroke z3e--z4e;
+penstroke z5e--z6e;
+podi(1); podi(3); podi(5);
+qeri(2); panwqeri(4); panwqeri(6);
+.endchar;
+
+.cmchar "The gothic letter n";
+.beginchar("n",5.5u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+.2u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+x1l=hair;
+x2=x1; x4l=x3l=x1r+1.233stem;
+y1=y3=foot; y2=y4=x_height-foot;
+penstroke z1e--z2e; penstroke z3e--z4e;
+podi(1); podi(3);
+qeri(2); panwqeri(4);
+.endchar;
+
+.cmchar "The gothic letter o";
+.beginchar("o",6.111u#,x_height#,0);
+.adjust_fit(cap_serif_fit#-.4u#,cap_serif_fit#+0.2u#);
+z0=(0,0); ygoth_o(0);
+.endchar;
+
+.cmchar "The gothic letter p";
+.beginchar("p",6.111u#,x_height#,0.431x_height#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,h-foot);
+qeri(2); z9l=z1l-(3apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+%
+%
+%
+penpos200(stem,0); z200=(x2,-0.271x_height);
+z21=0.267[z200l,z200r]; z20=(x6,0.5[-d,y200]);
+penpos20(3/4hair,-45);
+z22=(0.545[x21,x20],-d+apex_o);
+z21'=(x1r,1/4[y21,0]);
+filldraw z21..z22..{up}z20r & z20r--z20l
+& z20l{down}..z21'{up} & z21'--z200r--z21 &
+cycle;
+penpos18(hair,angle(z9-z8));
+x18r=0;y18r=1/3[-d,y21];
+z21''=(x1l,0.5[y21,0]);
+filldraw z21''{down}..{z18-z21}z18r &
+z18r--z18l--z21--z200l--z21'' & cycle;
+penstroke z200e--z1e;
+.endchar;
+
+.cmchar "The gothic letter q";
+.beginchar("q",6.111u#,x_height#,0.431x_height#);
+.adjust_fit(cap_serif_fit#-.3u#,cap_serif_fit#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,0.888h);
+z9l=z1l-(apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.88x_height); %0.833
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101r=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r+hair,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos2'(stem,0); z2'r=z17';
+z31=whatever[z6,z5r]; x31=x1l;
+z30=whatever[z31,z5r];
+z30-z2'l=whatever*(z2'r-z6'r);
+x34=0; z34=whatever[z5.1,z5l];
+z32=(x31-0.5hair,y31+hair);
+z33=(2x32,y34); z35=whatever[z2'l,z30];
+z35=whatever[z34,z5.1];
+penpos150(0.9hair,angle(z30-z2'l)-90);
+z150l=0.5[z2'l,z30];
+filldraw z2'r--z6'r--z6--z30
+& flex(z30,z150r,z2'l) & z2'l--z2'r & cycle;
+penstroke z1e--z2'e;
+%
+%
+%
+penpos200(stem,0); z200=(x3,-0.271x_height);
+z210=0.267[z200r,z200l]; z201=(x7,0.5[-d,y200]);
+penpos201(3/4hair,45);
+z220=(0.545[x201,x210],-d+apex_o);
+z210'=(x3l,1/4[y210,0]);
+filldraw z210..z220..{up}z201l & z201l--z201r
+& z201r{down}..z210'{up} & z210'--z200r--z210 &
+cycle;
+penpos180(hair,angle(z17-z6));
+x180r=w; y180r=1/3[-d,y210];
+z210''=(x3r,0.5[y210,0]);
+filldraw z210''{down}..{z180-z210}z180l &
+z180l--z180r--z210--z200r--z210'' & cycle;
+penstroke z200e--z3e;
+.endchar;
+
+.cmchar "The gothic letter r";
+.beginchar("r",4.389u#,x_height#,0);
+.adjust_fit(2cap_serif_fit#+0.3u#,cap_serif_fit#);
+penpos1(stem,0); z1l=(apex_o,foot);
+z2'=(0.5w,-apex_o); z1'=z1l-(2apex_o,0);
+penpos2(stem,0); z2=(x1,0.804x_height);
+penpos3(stem,angle(z2'-z1')+90);
+z3l=z2';
+penpos4(stem,angle(z2'-z1')+90);
+z4l=z1'; penstroke z1e--z2e; qeri(2);
+penstroke z3e--z4e;
+penpos15(hair,-60); z15r=z2';
+z16-z15r=whatever*dir30; x16=w-apex_o;
+x16=x16'; z16'-z15l=whatever*(z16-z15r);
+z16''=whatever[z15,z16'];
+y16''=0.5[foot,y16'];
+filldraw z3r{z3-z4}...z16''---z16' &
+z16'--z16--z15r--z15l--z3r & cycle;
+%
+%
+%
+penpos10(hair,-60); z10r=(x1r,2/3x_height);
+penpos11(1.1stem,27); z11r=(w,0.739x_height);
+z12-z10l=whatever*dir60; y12=x_height+hair;
+z13-z11r=whatever*(z10l-z12);
+z14-z11l=whatever*(z12-z11r);
+z14-z10r=whatever*(z12-z10l);
+z13=whatever[z14,z11l];
+filldraw z10l--z12--z11r--z13--z14--z10r--
+z10l & cycle;
+z15'=whatever[z10l,z12]; x15'=x10r;
+unfilldraw z15'--(x15',x_height)--z12--z15'
+& cycle;
+.endchar;
+
+.cmchar "The gothic letter long s";
+.beginchar("s",4.389u#,11.944u#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+z0=(hair,0); ygoth_s(0);
+.endchar;
+
+.cmchar "The gothic letter short s";
+.beginchar(oct"140",5.2u#,x_height#,0);
+.adjust_fit(cap_serif_fit#+.7u#,cap_serif_fit#+.3u#);
+penpos1(hair,-45); penpos2(hair,-45);
+z1r=(0,foot); z2l=(w,0.9h);
+penstroke z1e--z2e;
+%
+% panw meroc
+%
+penpos3(stem,angle(z2-z1)); z3=whatever[z1l,z2l];
+penpos4(stem,angle(z2-z1));
+z4-z3=whatever*(z1l-z1r);
+z4l=(-2apex_o,0.458h);
+penstroke z3e--z4e;
+y5=y4l; penpos5(stem,0); x5l=0;
+penpos6(stem,0); x6=x5; y6=h-foot;
+penstroke z5e--z6e;
+penpos7(stem,60); x7=0.5w; y7r=h;
+z7l-z9=whatever*dir147;
+z7r-z8=whatever*dir147;
+z9=whatever[z1l,z2l]; z8=whatever[z1l,z2l];
+penpos10(hair,-66); z10l=whatever[z7l,z9];
+x10l=x6r; penpos11(hair,-90); z11l=z6l;
+penpos12(hair,angle(z8-z7r)); z12l=z7r;
+filldraw z9--z7l--z7r--z8--z9 & cycle;
+penstroke z11e{z6r-z6l}..{z7r-z7l}z12e;
+z13=whatever[z7l,z7r]; y13=h+apex_o;
+z13'=0.3[z7r,z8];
+filldraw z7r--z13 & z13..{z8-z12}z13'
+& z13'--z7r & cycle;
+penpos14(0.4stem,0);
+x14l=x2l; y14=h+hair;
+filldraw z2l{z2l-z1l}..z14l{dir110} &
+flex(z14l,z14+(0,apex_o),z14r) &
+z14r{down}..z2r{z1r-z2r} & z2r--z2l & cycle;
+z10'=whatever[z7l,z9]; x10'=0;
+z10''=(z10'--z9) intersectionpoint
+(z11{right}..z12{z7r-z7l});
+filldraw z10''..z7r{z7r-z7l} & z7r--z7l--
+z10'' & cycle;
+%
+% katw meroc
+%
+penpos20(stem,60); z20r=(w+2apex_o,0.542h);
+z21-z20r=whatever*(z12-z8);
+z22-z20l=whatever*(z12-z8);
+z21=whatever[z1r,z2r];
+z22=whatever[z1r,z2r];
+filldraw z20r--z21--z22--z20l--z20r & cycle;
+penpos23(stem,0); x23r=w; y23=y20r;
+penpos24(stem,0); x24=x23; y24=0.216h;%0.216h;
+penstroke z24e--z23e;
+penpos25(hair,-50); x25l=x24r;
+z25r-z24r=whatever*dir30;
+penpos26(hair,-50); z26r=whatever[z24r,z25r];
+y26r=-apex_o; penstroke z26e--z25e;
+z31=whatever[z1r,z2r];
+z31-z26r=whatever*dir140;
+penpos27(stem,50); z27l=z26r;
+z29-z27r=whatever*(z31-z27l);
+z29=whatever[z1r,z2r];
+z28=whatever[z26r,z25r];
+z28=whatever[z29,z27r];
+filldraw z31--z26r--z28--z29--z31 & cycle;
+z32=whatever[z26,z25]; x32=x24l;
+filldraw z32--z24r--z24l--z32 & cycle;
+penpos30(0.6stem,45); x30r=x4l;
+y30r=-hair;
+filldraw z30r{dir135}..z1r{z2r-z1r} &
+z1r--z1l & z1l{z1r-z2r}..{dir290}z30l
+& z30l--z30r & cycle;
+.endchar;
+
+.cmchar "The gothic letter t";
+.beginchar("t",4.389u#,1.242x_height#,0);
+.adjust_fit(2cap_serif_fit#,cap_serif_fit#-u#);
+z0=(0,0); ygoth_t(0);
+.endchar;
+
+.cmchar "The gothic letter u";
+.beginchar("u",5.5u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+.2u#);
+z0=(0,0); ligature:=false;
+ygoth_u(0);
+.endchar;
+
+.cmchar "The gothic letter v";
+.beginchar("v",6.111u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,x_height-foot);
+z9l=z1l-(2apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+penpos202(hair,-45); x202l=x1l;
+y202l=1.333x_height;
+z203=(x1r,0.5[y2,x_height]);
+z204=(x1l,y2-0.5stem);
+penpos205(stem,45); x205=x1l;
+y205l=x_height-hair;
+penstroke z2e{up}..z205e{dir(angle(z205r-z205l)+90)}
+..z202e{dir45};
+.endchar;
+
+.cmchar "The gothic letter w";
+.beginchar("w",10.7u#,x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#-.8u#);
+w:=6.111u;
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+penpos8(stem,60); penpos9(stem,60);
+z1=(0.243w,foot); z2=(x1,x_height-foot);
+z9l=z1l-(2apex_o,0);
+x7=0.359[x1r,x3l]; y7=-apex_o;
+z8l=z7; z3r-z7=whatever*dir30;
+x3r=w-apex_o;
+z4r=(x3r,0.833x_height);
+z7'=whatever[z9r,z8r]; z7'=whatever[z7,z3r];
+z7''=whatever[z7,z3r]; x7''=x3l;
+penstroke z1e--z2e; penstroke z8e--z9e;
+penstroke z3e--z4e;
+filldraw z8r--z7'--z7--z8r & cycle;
+filldraw z7''--z3l--z3r--z7'' & cycle;
+penpos100(hair,angle(z3r-z7)-90);
+penpos101(hair,angle(z3r-z7)-90);
+z100r=z7; z101r=whatever[z7,z3r]; x101l=x3r;
+penstroke z100e--z101e;
+%
+%
+%
+penpos5(stem,60); z17=(x1r,0.824x_height);
+z6=(0.821[x1r,x3l],x_height);
+z5r=(x101r,y4);
+penpos6'(hair,angle(z6-z17)-90);
+z6'l=z6; z17'-z6'r=whatever*(z17-z6);
+x17'=x1r; z5.1=whatever[z17',z6'r];
+z5.1-z5l=whatever*(z6-z5r);
+filldraw z5r--z6--z17--z17'--z5.1--z5l--z5r
+& cycle;
+%
+%
+%
+transform metatopish;
+metatopish=identity
+shifted (x3-x1,0);
+addto currentpicture also currentpicture
+transformed metatopish;
+z201=whatever[z9r,z7'];
+z201=whatever[z100l,z101l];
+z200=whatever[z100l,z101l];
+x200=x3l;
+unfilldraw z200--z201--(x201,y9r)--
+(x200,y9r)--z200 & cycle;
+%
+%
+%
+penpos6.5(hair,angle(z6-z17)-90);
+z6.5l=whatever[z17,z6'l];
+y6.5l=x_height+hair;
+penstroke z6'e--z6.5e;
+penpos202(hair,-45); x202l=x1l;
+y202l=1.333x_height;
+z203=(x1r,0.5[y2,x_height]);
+z204=(x1l,y2-0.5stem);
+penpos205(stem,45); x205=x1l;
+y205l=x_height-hair;
+penstroke z2e{up}..z205e{dir(angle(z205r-z205l)+90)}
+..z202e{dir45};
+.endchar;
+
+.cmchar "The gothic letter x";
+.beginchar("x",4.389u#,x_height#,0);
+.adjust_fit(2cap_serif_fit#+.3u#,cap_serif_fit#);
+penpos1(stem,0); z1l=(apex_o,foot);
+z2'=(0.5w,-apex_o); z1'=z1l-(apex_o,0);
+penpos2(stem,0); z2=(x1,0.804x_height);
+penpos3(stem,angle(z2'-z1')+90);
+z3l=z2';
+penpos4(stem,angle(z2'-z1')+90);
+z4l=z1'; penstroke z1e--z2e; qeri(2);
+penstroke z3e--z4e;
+penpos15(hair,-60); z15r=z2';
+z16-z15r=whatever*dir30; x16=w-apex_o;
+x16=x16'; z16'-z15l=whatever*(z16-z15r);
+z16''=whatever[z15,z16'];
+y16''=0.5[foot,y16'];
+filldraw z3r{z3-z4}...z16''---z16' &
+z16'--z16--z15r--z15l--z3r & cycle;
+%
+%
+%
+penpos10(hair,-60); z10r=(x1r,2/3x_height);
+penpos11(1.1stem,27); z11r=(w,0.739x_height);
+z12-z10l=whatever*dir60; y12=x_height+hair;
+z13-z11r=whatever*(z10l-z12);
+z14-z11l=whatever*(z12-z11r);
+z14-z10r=whatever*(z12-z10l);
+z13=whatever[z14,z11l];
+filldraw z10l--z12--z11r--z13--z14--z10r--
+z10l & cycle;
+z15'=whatever[z10l,z12]; x15'=x10r;
+unfilldraw z15'--(x15',x_height)--z12--z15'
+& cycle;
+%
+%
+%
+penpos100(1.2hair,angle(z3r-z4r));
+penpos101(hair,angle(z3r-z4r));
+z100l=z4l; z100-z101=whatever*(z4r-z4l);
+y101=-.8stem; penstroke z101e--z100e;
+.endchar;
+
+.cmchar "The gothic letter y";
+.beginchar("y",5.5u#,x_height#,3.056u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+.1u#);
+penpos1(stem,0); penpos2(stem,0);
+penpos3(stem,0); penpos4(stem,0);
+x1l=hair;
+x2=x1; x4l=x3l=x1r+1.233stem;
+y1=foot; y2=y4=x_height-foot;
+y3=0.242x_height;
+penstroke z1e--z2e; penstroke z3e--z4e;
+qeri(2); panwqeri(4);
+penpos101(hair,-70); penpos100(hair,-70);
+x101l=x4r; y101r=y3;
+z101-z100=whatever*dir18;
+x100r=x1r;
+penstroke z100e--z101e;
+z100.5=whatever[z100,z101]; x100.5=x4l;
+filldraw z100.5--z3l--z3r--z100.5 & cycle;
+penpos102(1.2hair,180);
+penpos103(hair,-90); penpos104(hair,0);
+z102=(x1l-0.1stem,-.5d);
+z104=(0.361[x1r,x3l],-0.611d);
+x103=0.522[x102,x104]; y103r=-d;
+filldraw z1l{down}..z102r..z103r..z104r{up}
+& z104r--z104l & z104l{down}..z103l..z102l
+..z100r{z101-z100} & z100r--z1r--z1l &
+cycle;
+penpos200(stem,0); z200r=z104r;
+filldraw z200r..z200l..z200r..cycle;
+.endchar;
+
+.cmchar "The gothic letter z";
+.beginchar("z",4.306u#,x_height#,3.333u#);
+.adjust_fit(cap_serif_fit#+.2u#,cap_serif_fit#+.2u#);
+z0=(0,0); ygoth_z(0);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/ygothmis.mf b/Master/texmf-dist/fonts/source/public/gothic/ygothmis.mf
new file mode 100644
index 00000000000..b35cbc9bcb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/ygothmis.mf
@@ -0,0 +1,177 @@
+.cmchar "The gothic point";
+.beginchar(".",5u#,1.431x_height#,0);
+.adjust_fit(0,0);
+z1=(0.5w,-apex_o+0.707stem);
+ygoth_dot(1);
+.endchar;
+
+.cmchar "The gothic colon";
+.beginchar(":",5u#,1.431x_height#,0);
+.adjust_fit(0,0);
+z1=(0.5w,-apex_o+0.707stem);
+ygoth_dot(1);
+z2=(0.5w,x_height+apex_o-0.707stem);
+ygoth_dot(2)
+.endchar;
+
+.cmchar "The gothic semicolon";
+.beginchar(";",5u#,1.431x_height#,0);
+.adjust_fit(0,0);
+z1=(0.5w,-apex_o+0.707stem);
+ygoth_dot(1);
+z2=(0.5w,x_height+apex_o-0.707stem);
+ygoth_dot(2)
+penpos3(hair,-90); penpos4(stem,45);
+z3l=(0.5w-0.707stem,-stem);
+z4l=(0.5w,-apex_o);
+penstroke z3e..z4e{up};
+.endchar;
+
+.cmchar "The gothic comma";
+.beginchar(",",5u#,1.431x_height#,0);
+.adjust_fit(0,0);
+z2=(0.5w,-apex_o+0.707stem);
+ygoth_dot(2)
+penpos3(hair,-90); penpos4(stem,45);
+z3l=(0.5w-0.707stem,-stem);
+z4l=(0.5w,-apex_o);
+penstroke z3e..z4e{up};
+.endchar;
+
+.cmchar "The gothic exclamation point";
+.beginchar("!",5u#,1.431x_height#,0);
+.adjust_fit(0,0);
+z1=(0.5w,-apex_o+0.707stem);
+ygoth_dot(1);
+z2=(0.5w,cap_height+apex_o-0.707stem);
+ygoth_dot(2);
+penpos3(1.414stem,0); penpos4(hair,0);
+x3=x4=0.5w; y3=y2; y4=y1+1.414stem;
+penstroke z4e--z3e;
+.endchar;
+
+.cmchar "The gothic question mark";
+.beginchar("?",7.591u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(hair,25); z1=(0.171w,0.514h);
+z1'=(0.293w,0.88h); z2=(0.5w,cap_height+apex_o);
+penpos4(cap_stem,0);
+z4l=(0.673w,0.676h);%x_height);
+penpos5(hair,0); penpos6(hair,-15);
+z7=(0.38w,0.077h); z3=(x2,0.82h);
+z8=(0.624w,0.225h); z6=(0,0);
+z5=(0.5w,-apex_o+2.121stem);
+penpos9(1.15cap_stem,-128);
+x9l=w; y9r=-apex_o;
+z10=(0.5w,-apex_o+0.707stem);
+ygoth_dot(10);
+penpos50(0.5cap_stem,-45); penpos51(cap_stem,45);
+z50l=z2; z51r=z2;
+penstroke z1e{dir115}...z50e{dir45};
+penstroke z5e{up}..z4e{up}..z51e{dir135};
+.endchar;
+
+.cmchar "Left parenthesis";
+.beginchar("(",7u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+.adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); .endchar;
+
+.cmchar "Right parenthesis";
+.beginchar(")",7u#,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+.adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); .endchar;
+
+.cmchar "Opening Gaensefuesschen";
+.beginchar(oct"137",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+.adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y2-.5dot_size=0;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); .endchar;
+
+
+.cmchar "Closing Gaensefuesschen";
+.beginchar(oct"042",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+.adjust_fit(0,0);
+x1-.5dot_size=hround .6u;
+ y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2);
+.endchar;
+
+.cmchar "The gothic apostrophe";
+.beginchar("'",2hair#+stem#,1.431x_height#,0);
+.adjust_fit(0,0);
+penpos1(0.5stem,0);
+penpos2(stem,0);
+z1l=(hair,h-foot-0.707stem); z2l=(x1l,h);
+penstroke z1e--z2e;
+.endchar;
+
+.cmchar "The gothic hyphen";
+.beginchar("-",2u#,1.431x_height#,0);
+.adjust_fit(cap_serif_fit#+0.3u#,cap_serif_fit#);
+penpos1(stem,-90); penpos2(stem,-90);
+penpos3(stem,-90); penpos4(stem,-90);
+x1=x2=0; x3=x4=w; z3-z1=whatever*dir40;
+z4-z2=whatever*dir40;
+0.5[y2,y3]=.5x_height; y1-y2=2.5stem;
+penstroke z1e--z3e; penstroke z2e--z4e;
+.endchar;
+
+
+.cmchar "Closing quotes";
+.beginchar(oct"042",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+.adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); .endchar;
+
+.cmchar "Opening quotes";
+.beginchar(oct"137",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+.adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); .endchar;
+
+.cmchar "En dash";
+.beginchar(oct"173",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Em dash";
+.beginchar(oct"174",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/ygothnum.mf b/Master/texmf-dist/fonts/source/public/gothic/ygothnum.mf
new file mode 100644
index 00000000000..f2d1580652e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/ygothnum.mf
@@ -0,0 +1,229 @@
+.cmchar "The gothic numeral 1";
+.beginchar("1",4.591u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_stem,0); penpos2(cap_stem,0);
+x1=x2=0.68w; y1=0.211h; y2=0.827h;
+y6=y1; x6=x1r+0.235cap_stem;
+penpos5(hair,-45); y5=0; x5=0.08w;
+penpos4(cap_hair,-26); y4=h; x4r=x1r;
+penpos3(hair,-72); x3=0; y3=0.704h;
+penpos7(cap_stem,0); x7=x1; y7=0.289h;
+z8=(z3{dir18}..{dir64}z4) intersectionpoint
+(z7l--(x7l,h));
+penstroke z3e{dir18}..{dir64}z4e;
+filldraw z1l--z8..z4--z4r--z1r--z1l &
+cycle;
+filldraw z5l{z1-z5}..z7l{up} & z7l--z7r &
+z7r{down}..z6 & z6{left}..{z5-z1}z5r &
+z5r--z5l & cycle;
+.endchar;
+
+.cmchar "The gothic numeral 2";
+.beginchar("2",7.591u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(hair,25); z1=(0.171w,0.514h);
+z1'=(0.293w,0.88h); z2=(0.624w,h+apex_o);
+penpos4(cap_stem,180); z4r=(0.673w,0.676h);
+penpos5(cap_hair,-32); penpos6(hair,-15);
+z7=(0.38w,0.077h); z3=(0.424w,0.82h);
+z8=(0.624w,0.225h); z6=(0,0);
+z5=(0.229w,0.225h);
+penpos9(1.15cap_stem,-128);
+x9l=w; y9r=-apex_o;
+filldraw z6l{dir75}..z5l..z4r{up}..z3{left}
+..z1r{dir-65} & z1r--z1l &
+z1l{dir115}...z1'---z2 & z2{dir-40}..
+z4l{down}..z5r..z6r{dir-105} & z6r--z6l &
+cycle;
+filldraw z6l{dir75}..z8{right}..z9l &
+z9l--z9r & z9r..z7{left}..z6r{dir-105} &
+z6r--z6l & cycle;
+.endchar;
+
+.cmchar "The gothic numeral 3";
+.beginchar("3",7.517u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(hair,0); z1=(0.177w,0.729h);
+z1'=(0.281w,0.9h); z2=(0.645w,h+apex_o);
+penpos3(1.15cap_stem,-164);
+z3=(0.837w,0.676h); penpos4(cap_hair,-90);
+z4=(0.232w,0.521h); z5=(w-1.13cap_stem,0.232h);
+z6=(w,0.303h); penpos7(cap_hair,90);
+z7l=(0.448w,-apex_o); z8=(0,0.134h);
+penpos10(hair,-45); x10l=x1;
+z10l-z8=whatever*dir57;
+filldraw z1l{up}...z1'---z2 &
+z2..{dir-74}z3l & z3l..{left}z4r &
+z4r--z4l & z4l{right}..z3r &
+z3r{dir106}..z1r{down} & z1r--z1l & cycle;
+filldraw z4l{right}..z6{down}..z7l..z8
+& z8--z10l--z10r & z10r{dir-95}..z7r..
+z5{up}..z4r{left} & z4r--z4l & cycle;
+.endchar;
+
+.cmchar "The gothic numeral 4";
+.beginchar("4",8.813u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(hair,-47); z2=(0,0.345h);
+z1r-z2=whatever*dir47; y1r=h;
+z2'-z1l=whatever*(z2-z1r); x2'=x2;
+penpos4(stem,-90); x4=.5[x1r,w]; y4r=y2;
+z3=whatever[z2,z1r]; y3=y4l;
+penpos7(cap_stem,0); x7r=x1r;
+y7=0.197h; z6=whatever[z2,z1r];
+x6=x7l; penpos5(hair,-30);
+x5r=w; z5r-z4r=whatever*dir55;
+penpos8(cap_hair,-90);
+z8=(0.273w,0); z9=(x8+1/3cap_stem,y8r);
+penpos10(cap_hair,-90); z10=(0.782w,0.077h);
+filldraw z2'--z1l--z1r---z7r...z10l &
+z10l--z10r & z10r{left}...z9---z8r &
+z8r--z8l{right}..z7l{up}--z6--z2--z2' &
+cycle;
+filldraw z2--z3---z4l...z5l{z5-z4r} &
+z5l--z5r--z4r--z2 & cycle;
+.endchar;
+
+.cmchar "The gothic numeral 5";
+.beginchar("5",7.332u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(hair,-68); penpos2(1.17cap_stem,62);
+z1=(w,h); z1r=z2r;
+penpos5(1.5cap_hair,-10); z5l=(0.354w,h+apex_o);
+penpos6(hair,-34);
+z6=(0.0707w,0.458h);
+z2'-z5l=whatever*(z5r-z5l);
+z2'=whatever[z2l,z2r];
+z4'-z2l=whatever*(z5-z2');
+z4'=whatever[z6r,z5r];
+penpos7(cap_stem,-90); z7=(0.439w,0.637h);
+z9=(w,0.394h); z8=(0.783w,0.285h);
+penpos10(1.5cap_hair,90);
+z10l=(x7,-apex_o); penpos11(1.06cap_stem,40);
+z11l=(-apex_o,0.183h); penpos12(hair,-50);
+z12l=z11r;
+z3=2/3[z5,z2'];
+penstroke z6e--z5e; filldraw z4'--z5r---
+z3...z1l & z1l--z1r--z2l--z4' & cycle;
+filldraw z6r{dir56}..z7r..z8{down}..z10r
+{left}..z12r{up} & z12r--z11r--z11l &
+z11l..z10l{right}..z9{up}..z7l..z6l{dir-124}
+& z6l--z6r & cycle;
+.endchar;
+
+.cmchar "The gothic numeral 6";
+.beginchar("6",7.332u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(hair,90); z1=(0.889w,h);
+penpos2(1.059cap_stem,-153);
+z2r=(0,0.465h); penpos3(1.1cap_stem,-133);
+z3r=(0.535w,-apex_o); penpos4(cap_hair,-43);
+z4r=z3; penpos5(1.059cap_stem,35);
+z5r=(w,0.387h);
+z6=(0.394w,0.549h); z7=(0.586w,0.746h);
+penpos8(cap_hair,-50);
+z7-z8l=whatever*dir40; x8=x2;
+penstroke z1e{left}..z2e..z3e;
+filldraw z4r---z3l...z5r{up}..z7 &
+z7--z8l--z8r{z7-z8l}..z6{right}..z5l{down}..
+z4l{z3r-z3l} & z4l--z4r & cycle;
+.endchar;
+
+.cmchar "The gothic numeral 7";
+.beginchar("7",7.591u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos4(1.765cap_stem,23); x4=0.39w;
+y4l=-hair; penpos5(hair,-45); z5r=(w,h);
+penpos1(cap_hair,-20); penpos2(cap_hair,-20);
+z1l=(0,0.729h); z2-z1=whatever*dir70;
+y2r=h; penpos3(1.078cap_stem,70);
+z3=whatever[z1,z2]; y3r=h;
+z6=(z3l--(w,y3l)) intersectionpoint
+(z4..z5{dir45});
+z3'=0.284[z3l,z6];
+filldraw z1r{z2-z1}..z3'{right} &
+z3'--z2r--z2l--z1l--z1r & cycle;
+filldraw z3l--z6..z5r--z3r--z3l & cycle;
+filldraw z4r{z3'-z4r}..z5r{dir45} &
+z5r--z5l & z5l{dir225}..z4l & z4l--z4r &
+cycle;
+.endchar;
+
+.cmchar "The gothic numeral 8";
+.beginchar("8",7.332u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(1.176cap_stem,-142);
+penpos2(0.824cap_stem,-147);
+penpos3(cap_hair,117);
+penpos4(0.824cap_stem,-151);
+penpos5(1.412cap_stem,-126);
+z1l=(0.465w,h+apex_o); z2l=(w-hair,0.796h);
+z3=(0.5w,0.531h); z4r=(0,0.248h);
+z5r=(2/3w,-apex_o);
+penstroke z1e{dir-10}..
+z2e{down}..z3e{dir203}..
+z4e{down}..z5e{right};
+penpos6(cap_hair,-36); z6r=z5;
+penpos7(0.824cap_stem,41); x7r=w; y7l=y4;
+z8=z3; penpos8(cap_stem,75);
+penpos9(0.853cap_stem,45);
+x9l=hair; y9=y2r; penpos10(cap_hair,-52);
+z10l=z1r; z11=(z1r..z2r{down})
+intersectionpoint ((x1l,0)--(x1l,h));
+penstroke z6e{z5l-z5r}..z7e{up}..z8e{dir165}
+..z9e{up}..z10e{z1l-z1r};
+filldraw z10r{z1l-z1r}..z11..z2r{down} &
+z2r--z2 & z2{up}..z1 & z1--z10l--z10r &
+cycle; .endchar;
+
+.cmchar "The gothic numeral 9";
+.beginchar("9",7.332u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(hair,90); z1=(0.889w,h);
+penpos2(1.059cap_stem,-153);
+z2r=(0,0.465h); penpos3(1.1cap_stem,-133);
+z3r=(0.535w,-apex_o); penpos4(cap_hair,-43);
+z4r=z3; penpos5(1.059cap_stem,35);
+z5r=(w,0.387h);
+z6=(0.394w,0.549h); z7=(0.586w,0.746h);
+penpos8(cap_hair,-50);
+z7-z8l=whatever*dir40; x8=x2;
+penstroke z1e{left}..z2e..z3e;
+filldraw z4r---z3l...z5r{up}..z7 &
+z7--z8l--z8r{z7-z8l}..z6{right}..z5l{down}..
+z4l{z3r-z3l} & z4l--z4r & cycle;
+transform metatopish;
+metatopish=identity
+reflectedabout ((0,0.5h),(w,0.5h));
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+transform metatopish;
+metatopish=identity
+reflectedabout ((0.5w,0),(0.5w,h));
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The gothic numeral 0";
+.beginchar("0",7.332u#,1.242x_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(1.059cap_stem,-143);
+penpos2(cap_stem,-140);
+penpos3(1.05cap_stem,-136);
+penpos4(1.1cap_stem,-142);
+penpos5(cap_hair,128);
+penpos6(cap_hair,127);
+z1l=(0.535w,h+apex_o); z4r=(w-x1l,-apex_o);
+z2l=(w,0.528h); x3r=0; y3=y2l+apex_o;
+z5l=z4; z6r=z1;
+penstroke z1e{dir-25}..z2e{down}..
+z5e{z4r-z4l};
+penstroke z6e{z1r-z1l}..z3e{down}..
+z4e{dir-31};
+.endchar;
diff --git a/Master/texmf-dist/fonts/source/public/gothic/ygothupp.mf b/Master/texmf-dist/fonts/source/public/gothic/ygothupp.mf
new file mode 100644
index 00000000000..27b06293d6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/ygothupp.mf
@@ -0,0 +1,2399 @@
+.cmchar "The gothic letter A";
+.beginchar("A",10.65u#,1.065cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+x1=x2=.75w; y1=0.157h; y2=0.762h;
+penpos1(cap_stem,0);
+penpos2(cap_stem,0);
+penpos3(stem,-90);
+x3=x1l; y3=0.4h; x4=0.15w;
+y4=y1-cap_hair; penpos4(cap_hair,-30);
+x5=x1; z5-z4=whatever*dir60;
+penpos5(cap_hair,-30);
+penpos6(cap_hair,60);
+penpos7(cap_curve,-120);
+z7l=z5l; y6r=y3r;
+z6=whatever[z5l,z4l];
+penstroke z6e{dir150}...{dir-30}z7e;
+penstroke z4e--z5e;
+penstroke z1e--z2e;
+y3.1=y3r; y3.2=y3l;
+z3.1=whatever[z4r,z5r];
+z3.2=whatever[z4r,z5r];
+filldraw z3r--z3.1 & z3.1--z3.2
+& z3.2--z3l & z3l--z3r & cycle;
+penpos8(cap_stem,60);
+penpos9(cap_stem,60);
+y8l=0; x8l=0.45w;
+z9-z8=whatever*dir150;
+z9=whatever[z4r,z5r];
+penstroke z8e...z9e;
+y1.1=0; x1.1=0.8w;
+penpos1.2(cap_hair,-42);
+z1.2r-z1.1=whatever*dir48;
+x1.2r=w=x1.3;
+z1.3-z1.2l=whatever*(z1.2r-z1.1);
+x1.4=x1r; x1.5=x1l;
+z1.5-z8l=whatever*(z1.2r-z1.1);
+y1.4=y1.3;
+filldraw z1l--z1.1 & z1.1--z1.2r
+& z1.2r--z1.3 & z1.3--z1.2l...
+z1.4{up} & z1.4--z1r & z1r--z1l
+& cycle;
+x1.6=x1l;
+z1.6-z8r=whatever*(z1.5-z8l);
+filldraw z8l--z1.5 & z1.5--z1.6
+& z1.6--z8r & z8r--z8l & cycle;
+x5.1=x1.1;
+z5.1=whatever[z5r,z5l];
+x5.3=x5.2=w; y5.2=0.5[y5.1,h];
+y5.3=y5.2-0.5cap_hair;
+x2.1=x2l; z2.1=whatever[z4r,z5r];
+filldraw z5r--z5.1 &
+z5.1{z5.1-(0,y3l)}...{right}z5.2
+& z5.2--z5.3 & z5.3{left}...
+{down}z2r & z2r--z2l &
+z2l--z2.1 & z2.1--z5r & cycle;
+x4.1=x4; y4.1=0;
+filldraw z4l{z4l-z5l}...
+z4.1{right}...z4r{dir120} &
+z4r--z4l & cycle;
+x10=x3.2;
+y10=y2;
+x5.15=x5.1; y5.15=0.75[y2,y5.1];
+filldraw z10{z5.1-z10}...
+z2.1{right} & z2.1--z5.15 &
+z5.15{left}...z10{dir225} &
+cycle;
+transform katebasma;
+katebasma=identity
+shifted (0,-apex_o);
+%transform megalwma;
+%megalwma=identity scaled 1.065;
+picture krufo;
+%krufo= currentpicture transformed
+%megalwma;
+krufo:= currentpicture transformed
+katebasma;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+
+.cmchar "The gothic letter B";
+.beginchar("B",10.72u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+x1=x2=0.39w; y2=0.85h;
+y1=y7=y18=1/6h;
+penpos1(cap_stem,0);
+penpos2(cap_stem,0);
+penstroke z1e--z2e;
+penpos3(cap_hair,0);
+penpos2'(cap_stem,180); z2'=z2;
+x3l=0; y3=y2;
+x3.5=0.5[x3,x2];
+penpos3.5(0.5[cap_hair,cap_stem],
+-90); y3.5l=h+apex_o;
+penstroke z3e{dir60}...z3.5e...
+z2'e{down};
+penpos4(1.2cap_hair,-90);
+penpos9(1.2cap_hair,-90);
+x4=x3r;
+y4r=0.56h;
+y9l=y12.2-2cap_hair=0.56h;
+z4.1-z4l=whatever*(z2r-z4r);
+y4.1=y2;
+filldraw z4r--z2r--z4.1--z4l--z4r &
+cycle;
+penpos5(1.2cap_hair,-90); z5l=z2r;
+penpos6(whatever,angle(z2r-z4r)-90);
+z6l=whatever[z4r,z5l];
+z6r-z5r=whatever*(z5l-z4r);
+y6l=h+apex_o;
+filldraw z5l--z6l--z6r--z5r--z5l
+& cycle;
+x7=0.54w; penpos7(0.9cap_hair,0);
+z8.1=whatever[z4r,z6l];
+x8.1=x7l; x8.2=x7r;
+z8.2=whatever[z4r,z6l];
+filldraw z7r--z8.2--z8.1--z7l--z7r
+& cycle;
+penpos11(1.118cap_stem,
+angle(z6l-z4r));
+z11=whatever[z4r,z6l]; x11r=x6l;
+x9l=x7l;
+z10.1-z6=whatever*(z6r-z6l);
+z10.1-z9l=whatever*(z6l-z4r);
+z10.4=whatever[z9l,z10.1];
+z10.4-z11l=whatever*(z10.1-z6);
+filldraw z10.4--z11l--z11r--z10.1
+--z10.4 & cycle;
+z10.2-z9r=whatever*(z10.1-z9l);
+z10.2=whatever[z6,z10.1];
+z12.1=whatever[z9r,z10.2];
+z12.1=whatever[z11l,z10.4];
+filldraw z9l--z10.1--z10.2--z9r
+--z9l & cycle;
+x12.2=w;
+z12.4=(x7l,y9l);
+%z12.4=whatever[z9l,z10.1];
+%x12.4=x7r;
+x12.2-x12.3=1.2cap_stem;
+z12.3-z12.4=whatever*(z12.2-z12.1);
+filldraw z12.4--z12.1--z12.2--z12.3
+--z12.4 & cycle;
+x1.1=x1l; y1.1=0.247h;
+x13.2=x1l; y13.2=0.56h;
+z13.1-z13.2=
+whatever*dir(angle(z6l-z4r)+100);
+z13.1=whatever[z4r,z5l];
+filldraw z4l{dir-30}...z1.1{down}
+& z1.1--z13.2--z13.1--z4l &
+cycle;
+unfill z4l{dir-30}...z1.1{down}
+& z1.1--(x4l,y1.1)--z4l &
+cycle;
+z15=(0,-apex_o); z17=(0.73w,-apex_o);
+x18=w; z19=(x12.3,y18);
+filldraw z15{dir80}...{right}(x1,y1.1)
+...(w,-apex_o){dir-50} &
+(w,-apex_o)--z17 & z17{dir135}...
+z15{dir225} & cycle;
+x18.2=x18.1=x12.3+cap_stem;
+y18.2=7/8[y18,y12.2];
+y18.1=1/8[y18,y12.2];
+filldraw z12.3--(x12.3,y12.2)--z12.2 &
+z12.2{left}...z18.2{down}--
+z18.1{down}...z18{right} &
+z18--(w,-apex_o)--(0.8w,-apex_o)
+--z12.3 & cycle;
+unfilldraw z17{dir60}...z18{right}
+& z18--(w,-apex_o)--z17 &
+cycle;
+unfilldraw z17{dir60}...z18{right}
+& z18--(w,-apex_o)--z17 &
+cycle;
+.endchar;
+
+.cmchar "The gothic letter C";
+.beginchar("C",11.39u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#-0.5u#);
+penpos1(0.765cap_stem,0);
+z1l=(0,0.5h);
+penpos2(cap_stem,37.5);
+z2l=(2/3w,-apex_o);
+penpos3(cap_hair,-40);
+penpos4(cap_hair,0);
+z4r-z2r=whatever*dir153;
+x4=0.5w; %x3r=x4r;
+penpos2'(cap_stem,37.5);
+x2'r=0.36w-0.5cap_stem;
+z2'-z2=whatever*(z4r-z2r);
+z4'=(x4,h); penpos4'(cap_hair,0);
+%penstroke z4e--z4'e;
+penpos2.1(cap_hair,angle(z2'-z2));
+z2.1=z2'l;
+z5=whatever[z2'l,z2'r];
+z6=whatever[z2'l,z2'r];
+x5=x4r; x6=0.86w;
+penpos5(whatever,-90);
+z5l-z2.1l=whatever*(z5-z2.1);
+penpos6(whatever,-27.5);
+z6l-z2.1l=whatever*(z6-z2.1);
+z7.1=whatever[z5l,z6l];
+x7.1=x2'r; x7.2=x7.1+1.2cap_stem;
+z7.2=whatever[z5l,z6l];
+z14'=(x2l,h);
+z3l=z14';
+penpos8.1(1.2cap_hair,-40);
+z8.1=(x7.1,0.8h);
+penstroke z2e..z2'e..z1e{up}...
+z8.1e---z3e{dir24};
+z8.2=(z1{up}..z3{dir34})
+intersectionpoint (z7.2--(x7.2,h));
+penpos12(1.2cap_stem,angle(z8.2-z8.1));
+ z12r=z14';
+%
+%
+%
+filldraw z7.1--z7.2--z8.2--z8.1--
+z7.1 & cycle;
+x7.3=x7.2+slab; y7.3=0.5[y7.1,y7.2];
+filldraw z7.1--
+z7.3 & z7.3..{z8.2-z7.2}z7.2
+& z7.2--z7.1 & cycle;
+%
+%
+%
+x9=w-slab; penpos9(cap_hair,-90);
+z9r=whatever[z2l,z2r];
+z9.1=whatever[z2.1,z2l];
+z9.1-z9l=whatever*(z2l-z9r);
+filldraw z9.1--z2l--z9r--z9l--
+z9.1 & cycle;
+z9.2=whatever[z9.1,z9l];
+x9.2=0.5[x2,x9];
+z9.4=whatever[z9.1,z9];
+z9.4=whatever[z4r,z2r];
+filldraw z7.1{z2r-z4r}..
+z9l{z9-z9.2} & z9l--z2l--z7.1
+& cycle;
+%
+%
+%
+penpos11'(cap_stem,-27.5);
+z11'l=whatever[z5l,z6l];
+y11'r=y1+0.8slab;
+z10=whatever[z6l,z6r];
+z10-z11'r=whatever*(z6r-z5r);
+z10.1=whatever[z6,z10];
+z10.2=whatever[z11'r,z10];
+x10.1=x10.2=w;
+penpos13(0.8cap_hair,angle(z6-z5));
+z13=whatever[z6r,z5r];
+z13r=z6r;
+%
+%
+%
+z13.1-z3l=whatever*(z3r-z3l);
+x13.1=x9-cap_hair;
+z13.2-z13.1=whatever*(z12r-z12l);
+z13.2-z12l=whatever*(z13.1-z3);
+filldraw z12l--z13.2--z13.1--z12r
+--z12l & cycle;
+z13.3=0.5[z13.2,z13.1];
+z13.4=1/3[z6r,z5r];
+z14=whatever[z12r,z13.1];
+y14=h+apex_o;
+penpos15(cap_hair,-90);
+x15=x9; z15r=whatever[z13.2,z13.1];
+z15.1=whatever[z12r,z13.1];
+z15.1-z15l=whatever*(z13.2-z13.1);
+filldraw z13.1--z15r--z15l--
+z15.1--z13.1 & cycle;
+%
+%
+%
+x20=x2l=x20'; y20=y2;
+z20'=whatever[z12,z13.3];
+penpos20(cap_hair,0);
+penpos20'(cap_hair,0);
+penstroke z20e--z20'e;
+z30=whatever[z13.2,z13.1];
+z30-z8.2=whatever*(z13.1-z14);
+z31=(x7.1,y7.2);
+filldraw z31{down}..z2' & z2'--
+z7.1--z31 & cycle;
+%
+%
+%
+z30'-z13.2=whatever*(z13.1-z14');
+z15r-z30'=whatever*dir(angle(z12l-z13.2)+90);
+filldraw z13.2--z30'--z15r--z13.2
+& cycle;
+.endchar;
+
+
+.cmchar "The gothic letter D";
+.beginchar("D",12.055u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_stem,0);
+penpos2(cap_stem,0);
+penpos3(cap_stem,90);
+penpos4(cap_stem,90);
+z1r=(w,-apex_o); z2r=(w,h-1.5cap_stem);
+z3r=(w-1.5cap_stem,h); z4r=(0.19w,h);
+penpos5(0.5cap_hair,0);
+z5l=(0,h+2apex_o);
+penstroke z1e--z2e{up}...z3e{left}
+--z4e{left}...z5e{up};
+penpos6(0.8cap_hair,-45);
+x6l=0; y6r=-apex_o;
+z6.4=(0.83w,-apex_o);
+z6.3=(w,0.8cap_stem-apex_o);
+x6.2=0.5w; y6.2=0.28h;
+x6.1=0.433w;
+z6.1-z6l=whatever*dir30;
+filldraw z6r{dir30}...z6.4{dir-45}
+& z6.4--z6.3 & z6.3{dir140}...
+z6.2{left}...z6.1---z6l &
+z6l--z6r & cycle;
+unfilldraw z6.4{dir60}...
+(w,cap_stem){right} &
+(w,cap_stem)--(w,-apex_o)--
+z6.4 & cycle;
+unfilldraw z6.4{dir60}...
+(w,cap_stem){right} &
+(w,cap_stem)--(w,-apex_o)--
+z6.4 & cycle;
+x7=x8=0.5w; x9=x10=0.6w;
+y8=y10=y3l; y7=y9=0.225h;
+penpos7(0.9cap_hair,0);
+penpos8(0.9cap_hair,0);
+penpos9(0.9cap_hair,0);
+penpos10(0.9cap_hair,0);
+penstroke z7e--z8e;
+penstroke z9e--z10e;
+x11=x12=0.5[x9r,x1l];
+y11=0.59h; y12=0.44h;
+penpos11(0.9cap_hair,-90);
+penpos12(0.9cap_hair,-90);
+x11.1=x12.1=x9r; x11.2=x12.2=x1l;
+penpos11.1(0.9cap_hair,-90);
+penpos11.2(0.9cap_hair,-90);
+penpos12.1(0.9cap_hair,-90);
+penpos12.2(0.9cap_hair,-90);
+y11.1r=y11l=y11.2r;
+y12.1l=y12r=y12.2l;
+penstroke z11.1e...{right}z11e...
+z11.2e;
+penstroke z12.1e...{right}z12e...
+z12.2e;
+penpos6'(cap_hair,-45);
+z6'r=z6l; penpos13(0.9cap_hair,-45);
+z13-z6'l=whatever*(z6.1-z6l);
+x13=1/3cap_stem; penpos14(cap_stem,0);
+penpos15(cap_stem,0);
+penpos16(0.9cap_hair,-45);
+y14=y12; y15=y11;
+x14=x15=1/3w; z16r=z8l;
+x13.1=x14l;
+z13.1-z13r=whatever*(z6.1-z6l);
+filldraw z13r{dir45}--z13.1..
+z14r{up}--z15r{up}..z16r{dir45}
+& z16r--z16l & z16l{dir225}..
+z15l{down}--z14l{down}..z13l{dir225}
+& z13l--z13r & cycle;
+x17=0.6cap_stem; y17=y12l;
+x17.1=0.5[x17,x14l]; y17.1=1/3[y11,y12];
+filldraw z13l{dir45}..z14{up}..
+z17.1{left}..z17{down} & z17{up}..
+(x14l-2apex_o,0.5[y13.1,y15])
+{down}..
+z13l{dir225} & cycle;
+z20=(z6.3{dir140}...
+z6.2{left}...z6.1---z6l)
+intersectionpoint (z1l--z2l);
+penpos20(.5cap_stem,0);
+%filldraw z20r..z20l..cycle;
+
+.endchar;
+
+.cmchar "The gothic letter E";
+.beginchar("E",11.39u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(0.765cap_stem,0);
+z1l=(0,0.5h);
+penpos2(cap_stem,37.5);
+z2l=(2/3w,-apex_o);
+penpos3(cap_hair,-66);
+penpos4(cap_hair,0);
+z4r-z2r=whatever*dir153;
+x4=0.6w; x3r=x4r; y3r=0.9h;
+penpos2'(cap_stem,37.5);
+x2'r=0.36w-0.5cap_stem;
+z2'-z2=whatever*(z4r-z2r);
+penstroke z2e--z2'e..z1e{up}..
+z3e{dir34};
+z4'=(x4,h); penpos4'(cap_hair,0);
+penstroke z4e--z4'e;
+penpos2.1(cap_hair,angle(z2'-z2));
+z2.1=z2'l;
+z5=whatever[z2'l,z2'r];
+z6=whatever[z2'l,z2'r];
+x5=x4r; x6=0.86w;
+penpos5(whatever,-90);
+z5l-z2.1l=whatever*(z5-z2.1);
+penpos6(whatever,-27.5);
+z6l-z2.1l=whatever*(z6-z2.1);
+filldraw z5r--z6r--z6l--z5l--z5r
+& cycle;
+z7.1=whatever[z5l,z6l];
+x7.1=x2'r; x7.2=x7.1+1.2cap_stem;
+z7.2=whatever[z5l,z6l];
+x8.1=x7.1; x8.2=x7.2;
+z3-z8.1=whatever*dir24;
+z8.2=whatever[z8.1,z3];
+filldraw z7.1--z7.2--z8.2--z8.1--
+z7.1 & cycle;
+x7.3=x7.2; y7.3=0.5[y7.1,y7.2];
+filldraw z7.1{z7.2-z7.1}..{right}
+z7.3 & z7.3--z7.2--z7.1 & cycle;
+x9=w-slab; penpos9(cap_hair,-90);
+z9r=whatever[z2l,z2r];
+z9.1=whatever[z2.1,z2l];
+z9.1-z9l=whatever*(z2l-z9r);
+filldraw z9.1--z2l--z9r--z9l--
+z9.1 & cycle;
+z9.2=whatever[z9.1,z9l];
+x9.2=0.5[x2,x9];
+z9.4=whatever[z9.1,z9];
+z9.4=whatever[z4r,z2r];
+filldraw z4r{z2r-z4r}..
+z9.2{z9-z9.2} & z9.2--z9.4--z4r
+& cycle;
+penpos11'(cap_stem,-27.5);
+z11'l=whatever[z5l,z6l];
+y11'r=y1+0.8slab;
+z10=whatever[z6l,z6r];
+z10-z11'r=whatever*(z6r-z5r);
+filldraw z11'l--z11'r--z10
+--z6r--z11'l & cycle;
+z10.1=whatever[z6,z10];
+z10.2=whatever[z11'r,z10];
+x10.1=x10.2=w;
+unfilldraw z10.1--z10--z10.2--
+z10.1 & cycle;
+penpos12(whatever,angle(z8.2-z8.1));
+z12l=z3l; y12r=h;
+penpos13(0.8cap_hair,angle(z6-z5));
+z13=whatever[z6r,z5r];
+z13r=z6r; z13.2=whatever[z3r,z13l];
+y13.2=y6r;
+z13.1-z13.2=whatever*(z12r-z12l);
+z13.1-z12r=whatever*(z13.2-z3r);
+filldraw z3r--z13.2--z13.1--z12r
+--z12l--z3r & cycle;
+z13.3=0.5[z13.2,z13.1];
+z13.4=1/3[z6r,z5r];
+filldraw z13.4--z6r & z6r{up}..
+{z13.1-z13.3}z13.3 &
+z13.3--z13.2 & z13.2{down}..
+{z5r-z6r}z13.4 & cycle;
+z14=whatever[z12r,z13.1];
+y14=h+apex_o;
+filldraw z12{z12r-z12l}..{dir60}
+z14 & z14--z12r--z12 & cycle;
+penpos15(cap_hair,-90);
+x15=w; z15r=whatever[z13.2,z13.1];
+z15.1=whatever[z12r,z13.1];
+z15.1-z15l=whatever*(z13.2-z13.1);
+if x15>x13.1: filldraw z13.1--z15r--z15l--
+z15.1--z13.1 & cycle; fi
+
+
+.endchar;
+
+
+.cmchar "The gothic letter F";
+.beginchar("F",13.6u#,cap_height#,2.5u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(0.5cap_hair,0);
+y1=-d+apex_o; x1l=0;
+z2=(0.085w,0.5y1);
+penpos6(0.8cap_stem,0);
+penpos7(0.5cap_stem,0);
+penpos8(0.8cap_stem,0);
+x7=0.555w; y7=2/3u;
+z6r=z7l; z8l=z7r;
+x3=0.5x6l; y3=0;
+x4=0.75[x3,x6l]; y4=0.2y1;
+y5=-d-apex_o; x5=3/4x6l;
+x10=0.5[x6l,x6]; y10=-3/5d;
+penpos10(0.9cap_hair,-90);
+penpos9(0.8cap_stem,0);
+penpos6'(0.8cap_stem,0);
+penpos9'(0.8cap_stem,0);
+x9=x9'=x8; x6'=x6;
+y6'=y9'=0.82h; y9=0.2h;
+filldraw z1r{dir60}..z2{right}..
+z5{right}..z9r{up}--z9'r &
+z9'r--z9'l--z8l & z8l{down}..
+z10r{z10r-z8r} & z10r--z10l &
+z10l{z8l-z10l}..z6r{up}--z6'r
+& z6'r--z6'l--z6l & z6l{down}..
+z4{left}..z3{left}..z1l{dir270} &
+z1l--z1r & cycle;
+%
+% mpara
+%
+penpos11(0.9cap_stem,-90);
+penpos12(0.9cap_stem,-90);
+y11=y12=0.538h; x11=x6l; x12=x8r;
+penpos13(0.8cap_hair,-60);
+y13=y11r-0.45cap_stem;
+x13=0.127w; z11.1=whatever[z11l,z12l];
+z12.1=whatever[z11l,z12l];
+x11-x11.1=x12.1-x12=0.18w;
+z12.2=whatever[z11r,z12r];
+x12.2=0.8[x12,x12.1];
+filldraw z13r{dir45}..z11r{right}
+--z11l--z11.1--
+z13l--z13r & cycle;
+filldraw z12r--z12.2
+& z12.2--z12.1--z12l--z12r & cycle;
+%
+% panw meroc
+%
+numeric jhta; jhta:=32;
+penpos14(cap_stem,90-jhta); y14r=h+apex_o;
+x14r=x9r+cap_hair;
+penpos15(cap_stem,90-jhta); x15r=w-apex_o;
+z15r-z14r=whatever*dir(180-jhta);
+penpos17(0.8cap_hair,-jhta);
+z17r=whatever[z15l,z15r];
+x17r=w; z16=whatever[z14l,z15l];
+z9'r-z16=whatever*(z15l-z15r);
+z18=whatever[z14r,z15r];
+x18=0.75[x14r,x15r];
+filldraw z6'l{right}..z14r{z14r-z14l}
+& z14r--z18{z15r-z14r}..
+{z15r-z15l}z17l & z17l--z17r--z15l
+--z16--z9'r--z6'l & cycle;
+%
+%
+%
+z19=z6'l+(-0.4cap_hair,0.4cap_hair);
+penpos19(0.1cap_hair,45);
+z19.1=z6'l+(0,-cap_hair);
+z19.2=z6'l+(cap_hair,0);
+filldraw z19.1{up}..{z19-z6'l}z19l
+& z19l--z19r & z19r{z6'l-z19}..
+z19.2{right} & z19.2--z19.1 &
+cycle;
+%
+%
+%
+penpos20(0.5cap_stem,0);
+penpos21(0.5cap_stem,0);
+x20=x21=x7; y20=y9'-cap_hair;
+y21=y20-0.5cap_hair;
+filldraw z21l{up}..z20{right}..
+z21r{down} & z21r--z9'l--z6'r--
+z21l & cycle;
+.endchar;
+
+
+.cmchar "The gothic letter G";
+.beginchar("G",12.6u#,cap_height#,0); %prin htan 11.6u#
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(0.8cap_hair,111);
+penpos2(0.9cap_stem,-150);
+penpos3(0.8cap_hair,-57.5);
+penpos4(cap_stem,0);
+penpos5(1.765cap_stem,48);
+z1=(0.43w,0.87h); z2=(0.115w,0.318h);
+z3=(0.742w,0.141h);
+z4r=(w,0.427h);
+z6=(0.517w,-apex_o);
+y5=0.6h; x5l=x6+cap_hair;
+filldraw z1r..z2r..z6 & z6..z3r
+..z4r{up}..z5r & z5r--z5l &
+z5l{z5r-z5l}..z4l..z3l..z2l..z1l
+& z1l--z1r & cycle;
+%
+%
+%
+penpos6'(cap_hair,0);
+penpos7(cap_hair,0);
+x6'l=x7l=x6; y7=y1r;
+y6'=y6+0.5cap_stem;
+penstroke z6'e--z7e;
+penpos8(cap_hair,-42);
+penpos9(cap_hair,-42);
+z8r=z5l; z9r=whatever[z5l,z5r];
+x9r=w-slab;
+penstroke z8e--z9e;
+penpos11(cap_hair,48); z11l=z5r;
+penpos10(whatever,48);
+z10l=z1r; y10r=h+apex_o;
+z11.1=whatever[z11,z9r];
+z11.1-z10r=whatever*(z11r-z1r);
+z11.2=0.5[z10r,z11.1];
+filldraw z1r--z11r--z9r--z9l &
+z9l{z8l-z9l}..z11.2{z10r-z11.1}
+--z10r & z10r--z1r & cycle;
+%
+%
+%
+x14=0.3445w=x14';
+penpos14(1.05cap_stem,0);
+penpos14'(1.05cap_stem,0);
+penpos12(cap_hair,-60);
+penpos13(cap_hair,-60);
+z12l=z2; z13r-z12r=whatever*(z2l-z2r);
+x13r=x14r+apex_o;
+penstroke z12e--z13e;
+z14.1=whatever[z12l,z13l];
+x14.1=x14l; y14=y13r;
+y14'=h;
+z15=(z1r..z2r..z6)
+intersectionpoint (z14l--z14'l);
+x15.05=x15; y15.05=0.5[y15,y1];
+z15'=whatever[z1,z15.05];
+x15'=0.5[x15,x1];
+x13.1=x14r; y13.1=y13l+cap_hair;
+filldraw z2l{z2l-z2r}..z14l{up}
+& z14l--z15--z15'--z1r--z13.1
+& z13.1{down}..z13r & z13r--z12r
+--z2l & cycle;
+%
+% grammoulec
+%
+z20=(z5l{z5r-z5l}..z4l..z3l..
+z2l..z1l) intersectionpoint
+(z6'r--(x6'r,1/3h));
+y16=2/3[y20,y8r];
+y18=1/3[y20,y8r];
+x16=x18=x20;
+penpos16(cap_hair,-90);
+penpos17(cap_hair,-90);
+penpos18(cap_hair,-90);
+penpos19(cap_hair,-90);
+x17=x19=0.5[x4l,x4];
+z17-z16=whatever*(z13-z12);
+z19-z18=whatever*(z13-z12);
+penstroke z18e--z19e;
+penstroke z16e--z17e;
+%
+%
+%
+z21=whatever[z6'l,z7l];
+z21=whatever[z11r,z1r];
+filldraw z1l{dir21}...z21{z11r-z21}
+& z21--z10l--z1l & cycle;
+.endchar;
+
+
+.cmchar "The gothic letter H";
+.beginchar("H",11.444u#,cap_height#,2.61u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(0.45cap_stem,0);
+penpos2(0.9cap_stem,0);
+penpos3(0.9cap_stem,0);
+x1=0.367w; z2r=z1l; z3l=z1r;
+y1=0.323h;
+penpos4(0.9cap_stem,0);
+penpos5(0.9cap_stem,0);
+x4=x3; x5=x2; y5=0.706h;
+y4=0.8h;
+penstroke z2e--z5e;
+penstroke z3e--z4e;
+penpos6(0.6cap_hair,-90);
+penpos7(cap_hair,-90);
+x6=5/6[x4l,x4r]; x7=0.84w;
+y6l=y7l=h;
+penstroke z5e{up}..z6e{right};
+penstroke z4e{up}..z7e{right};
+%
+%
+%
+penpos8(cap_hair,-90);
+z10=(x2r,0.426h); z9-z10=whatever*dir45;
+x9=x7; z8l=whatever[z10,z9];
+x8=x4r;
+penpos10'(1.12cap_stem,angle(z9-z8l));
+z10'r=z9; penpos11(cap_stem,0);
+x11r=w; y11=y10;
+penpos12(cap_hair,-45);
+y12l=0; x12l=0.607w;
+penstroke z12e{dir45}..z11e{up}..z10'e;
+z10''-z8r=whatever*(z10'-z8l);
+x10''=x10';
+filldraw z8l--z10'--z10''--z8r--
+z8l & cycle;
+%
+% dexi stroggulo
+%
+penpos12'(0.9cap_stem,0);
+x12'=x12l; y12'=-d-apex_o+0.45cap_stem;
+filldraw z12l{dir225}..z12'l{down}
+..z12'r{up}..z12r{z12l-z12r}
+& z12r--z12l & cycle;
+%
+% aristero stroggulo
+%
+penpos13(0.9cap_stem,90);
+y13=-apex_o-0.45cap_stem;
+x13=0.5cap_hair+0.45cap_stem;
+x13'=x13-apex_o; y13'=-apex_o;
+x14=0; y14=2/3y13;
+x15=x13; x16=x2l;
+penpos20(0.6cap_hair,-90);
+y20r=0.1636h; x20=2/3[x2l,x2r];
+y16=0.5[y20r,y2]; y15=0.5[y14,y16];
+x17=x3r; y17=2/3[y20r,y3];
+z18=(x3l,y20r); z19=(x12',y18);
+penpos21(cap_hair,-90);
+y21r=y19+apex_o; x21=x9-0.7cap_stem;
+z23=(x20,0.5y19);
+z22'=whatever[z3l,z18];
+z22'-z21r=whatever*(z10-z9);
+z22=(z13'..z23{right}..z12'r)
+intersectionpoint (z21r--z22');
+%
+filldraw z13'..z23{right}..z22
+& z22--z21r--z21l & z21l{z22-z21r}
+..z19{left}--z18 & z18--z17--z3r
+--z3l & z3l{down}..z20r{dir215}
+& z20r--z20l & z20l{z1-z20l}..
+z2r{up} & z2r--z2l--z16 &
+z16{down}..z15..z14{down}..
+z13l{right}..z13r{left}--z13'
+& cycle;
+%
+% pterugia
+%
+penpos24(0.5cap_hair,0);
+penpos25(0.75cap_stem,-90);
+penpos26(0.62cap_stem,-90);
+x24l=0; y25l=h+apex_o;
+y26=0.5[y24,y25l];
+y24=0.85h; x25=1/8w; x26=0.271w;
+penstroke z24e{up}..z25e{right}..
+z26e..z6e{right};
+x27=0; y27=0.547h; y28=2/3[y27,y5];
+x28=0.5x5l; x30=x29=x5l; y29=5/6[y27,y28];
+y32=y2;
+x30-x32=min(cap_stem,x30-0.5cap_hair);
+x31=0.5[x32,x30]; y31=y10;
+y30=3/3[y32,y31];
+x33=0.43[x32,x30]; y33=1/5[y32,y31];
+filldraw z16{up}..z33..z32 &
+z32{up}..z31..z30 &
+z30{up}..z27{left} &
+z27{up}..z28..z29{dir-30} & z29--z16
+& cycle;
+%
+% grammoulec
+%
+penpos34(0.8cap_hair,-90);
+penpos35(0.8cap_hair,-90);
+penpos36(0.8cap_hair,-90);
+penpos37(0.8cap_hair,-90);
+penpos38(0.8cap_hair,-90);
+penpos39(0.8cap_hair,-90);
+x34=x35=x17; x36=x37=w-cap_stem;
+x38=x39=1/2[x34,x36];
+y34l=y36r=y27;
+y38l=y34r; y39r=y35l;
+y35r=y37l=y32;
+penstroke z34e..z38e..z36e;
+penstroke z35e..z39e..z37e;
+
+.endchar;
+
+
+.cmchar "The gothic letter I";
+.beginchar("I",10.555u#,cap_height#,2.167u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos2(1/3cap_stem,-58);
+y2r=-d-apex_o; x2r=0.321w;
+x3=0.442w; y3=-apex_o;
+penpos4(1/3cap_stem,-53); y4l=0;
+x4l=0.637w; x5=0.579w;
+y5=0.144h; penpos5(0.7cap_stem,0);
+y5.1=y5.4=0.386h; y5.2=y5.3=0.45h;
+penpos6(1/3cap_stem,-51);
+penpos7(1/3cap_stem,-30);
+y6r=y7r=0.83h; x7r=x5.4=0.86w;
+x5.3=x5.4-0.9cap_stem;
+x5.1=x3; x5.2=x5.1+0.9cap_stem;
+x6r=0.758w;
+penpos8(0.5cap_hair,-45);
+z8=(w,h);
+filldraw z2r..z5r..z5.2..z6r..z8r
+& z8r--z8l & z8l..z6l..z5.1..z5l..
+z3..z2l & z2l--z2r & cycle;
+filldraw z2r..z4r..z5.4..z7r..
+z8r & z8r--z8l & z8l..z7l..z5.3
+..z4l..z2l & z2l--z2r & cycle;
+%
+% panw meroc
+%
+penpos9(cap_hair,0); x9l=0;
+y9=y6r; penpos10(0.88cap_stem,-90);
+y10l=h+apex_o; x10=0.276w;
+penpos11(cap_stem,-90);
+y11r=y9; x11=x5.2;
+penstroke z9e{up}..z10e..z11e..
+z8e;
+%
+% mpalla
+%
+penpos12(cap_stem,90); x12=0.134w;
+y12r=y9-apex_o;
+filldraw z12r..z12l..cycle;
+filldraw z12l{left}..z9l{up} &
+z9l--z9r & z9r{down}..z12{right}
+& z12--z12l & cycle;
+%
+% katw meroc
+%
+penpos1(cap_hair,0); z1=(0,-d);
+z13=(0.279w,0.031h);
+filldraw z1r..z2r{z2r-z2l} &
+z2r--z3 & z3..z13{left}..z1l{down}
+& z1l--z1r & cycle;
+%
+% pterugia
+%
+x14=0.5[x5.1,x5.2]; y14=y15=y5.2;
+x15=x17=0.2w; y17=1/4h;
+x18=1/2[x17,x5l]; y18=1/4[y17,y5.1];
+filldraw z15{dir77}..z14--z5l
+& z5l{up}..z18..z17 &
+z17{dir76}..z5.1{right} &
+z5.1..z15{dir198} & cycle;
+.endchar;
+
+
+.cmchar "The gothic letter J, which is the same as I";
+.beginchar("J",10.555u#,cap_height#,2.167u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos2(1/3cap_stem,-58);
+y2r=-d-apex_o; x2r=0.321w;
+x3=0.442w; y3=-apex_o;
+penpos4(1/3cap_stem,-53); y4l=0;
+x4l=0.637w; x5=0.579w;
+y5=0.144h; penpos5(0.7cap_stem,0);
+y5.1=y5.4=0.386h; y5.2=y5.3=0.45h;
+penpos6(1/3cap_stem,-51);
+penpos7(1/3cap_stem,-30);
+y6r=y7r=0.83h; x7r=x5.4=0.86w;
+x5.3=x5.4-0.9cap_stem;
+x5.1=x3; x5.2=x5.1+0.9cap_stem;
+x6r=0.758w;
+penpos8(0.5cap_hair,-45);
+z8=(w,h);
+filldraw z2r..z5r..z5.2..z6r..z8r
+& z8r--z8l & z8l..z6l..z5.1..z5l..
+z3..z2l & z2l--z2r & cycle;
+filldraw z2r..z4r..z5.4..z7r..
+z8r & z8r--z8l & z8l..z7l..z5.3
+..z4l..z2l & z2l--z2r & cycle;
+%
+% panw meroc
+%
+penpos9(cap_hair,0); x9l=0;
+y9=y6r; penpos10(0.88cap_stem,-90);
+y10l=h+apex_o; x10=0.276w;
+penpos11(cap_stem,-90);
+y11r=y9; x11=x5.2;
+penstroke z9e{up}..z10e..z11e..
+z8e;
+%
+% mpalla
+%
+penpos12(cap_stem,90); x12=0.134w;
+y12r=y9-apex_o;
+filldraw z12r..z12l..cycle;
+filldraw z12l{left}..z9l{up} &
+z9l--z9r & z9r{down}..z12{right}
+& z12--z12l & cycle;
+%
+% katw meroc
+%
+penpos1(cap_hair,0); z1=(0,-d);
+z13=(0.279w,0.031h);
+filldraw z1r..z2r{z2r-z2l} &
+z2r--z3 & z3..z13{left}..z1l{down}
+& z1l--z1r & cycle;
+%
+% pterugia
+%
+x14=0.5[x5.1,x5.2]; y14=y15=y5.2;
+x15=x17=0.2w; y17=1/4h;
+x18=1/2[x17,x5l]; y18=1/4[y17,y5.1];
+filldraw z15{dir77}..z14--z5l
+& z5l{up}..z18..z17 &
+z17{dir76}..z5.1{right} &
+z5.1..z15{dir198} & cycle;
+.endchar;
+
+.cmchar "The gothic letter K";
+.beginchar("K",13.111u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+z1=(0,0); x2=1/3w; x3=0.37w;
+x4=0.40w; x5=0.52w; x6=0.614w;
+y2=0.3h; y3=0.506h; y4=0.7h;
+y5=0.886h;
+penpos1(cap_hair,-63);
+penpos2(cap_stem,-23);
+penpos3(cap_stem,-10);
+penpos4(0.765cap_stem,-21);
+penpos5(1/3cap_stem,-41);
+penpos6(cap_hair,-58);
+penpos1'(0.05cap_hair,-63);
+z1'l=z1l;
+y6l=h+apex_o;
+penstroke z1'e..z2e..z3e..z4e..
+z5e..z6e{dir32};
+penpos7(cap_hair,-33);
+penpos8(0.88cap_stem,-115);
+x7=slab; x8=0.26w; x8.1=0.345w;
+x8.2=0.466w; y7=0.785h; y8=0.919h;
+y8.1=0.796h; y8.2=0.92h;
+filldraw z7r..z8r..z8.1..z6l{dir32} &
+ z6l{dir212}..z8.2..z8l..z7l
+& z7l--z7r & cycle;
+penpos10(cap_hair,-23);
+penpos10'(1.5cap_hair,-23);
+penpos11(cap_hair,-10);
+penpos11'(1.5cap_hair,-10);
+penpos12(cap_hair,-21);
+penpos12'(1.5cap_hair,-21);
+penpos13(cap_hair,-41);
+penpos13'(cap_hair,-41);
+penpos14(cap_hair,-58);
+penpos9(cap_hair,-65);
+z2r=z10'l; z10'r=z10l;
+z3r=z11'l; z11'r=z11l;
+z4r=z12'l; z12'r=z12l;
+z5r=z13'l; z13'r=z13l;
+x14=0.684w; x9=0.3w; y14l=h;
+y9r=0.06h;
+penstroke z9e..z10e..z11e..z12e
+..z13e..z14e;
+%
+%
+%
+x15=x10r; y15=0.1w;
+penpos15(0.8cap_stem,-90);
+penpos16(1.176cap_stem,-126.5);
+y16r=-apex_o; x16l=x14;
+filldraw z1r..z9r..z15r..z16r
+& z16r--z16l & z16l..z15l{left}
+..z1l
+& z1l--z1r & cycle;
+%
+% panw podi
+%
+penpos17(cap_hair,-60);
+penpos18(cap_hair,-60);
+z18r=z12r; z17l=z11r;
+x20=0.773w;
+penpos20(cap_hair,-60);
+penpos19(cap_hair,-60);
+z20-z18=whatever*dir30;
+z19-z17=whatever*(z20-z18);
+z19=whatever[z20l,z20r];
+z17''=whatever[z17r,z19r];
+x17''=0;
+z17'=(z9..z10..z11..z12..z13..z14)
+intersectionpoint (z17''--z19r);
+filldraw z17'--z11--z11r--z17r--
+z17' & cycle;
+penstroke z18e--z20e;
+penstroke z17e--z19e;
+penpos21(cap_stem,angle(z19-z17));
+penpos22(cap_stem,angle(z19-z17));
+z21=2/3[z17,z19];
+z22-z21=whatever*(z20l-z20r);
+z22=whatever[z18,z20];
+penstroke z21e--z22e;
+%
+% katw podi
+%
+penpos22'(1.09cap_stem,angle(z19-z17));
+penpos23(1.09cap_stem,angle(z19-z17));
+penpos24(1.09cap_stem,angle(z19-z17));
+z22'l=z17r; x23=x14; y23=y17r;
+x24=0.82w; y24=y16l;
+penstroke z22'e{z22'r-z22'l}..
+z23e{z24-z23}--z24e;
+z25=(0.86w,-apex_o);
+penpos26(cap_hair,-90);
+z26r-z25=whatever*(z16l-z16r);
+x26=w;
+filldraw z24r{z24-z23}..
+z26l{z26r-z25} & z26l--z26r &
+z26r--z25 & z25{left}..z24l
+{z23-z24} & z24l--z24r & cycle;
+penpos27(cap_hair,angle(z16l-z16r)-90);
+z27r=z16;
+z29=whatever[z23,z24];
+z29-z16=whatever*(z16l-z16r);
+z28=whatever[z23,z24];
+z28-z27l=whatever*(z29-z16);
+filldraw z27r--z29--z28--z27l--
+z27r & cycle;
+%
+% pterugia
+%
+z2''=z2; penpos2''(0.7cap_hair,
+angle(z2r-z2l));
+x27.1=x8r; y27.1=y10;
+x28.1=0.093w+cap_hair; y28.1=0.377h;
+x29.1=0.127w+cap_hair; y29.1=0.605h;
+filldraw z1l{z10-z1}..z27.1{up}..
+z28.1{left} & z28.1{dir60}..z2''r
+& z2''r--z2''l &
+ z2''l..z29.1{left} & z29.1{dir60}..
+z3 & z3--z2..z1r{z1-z10} &
+ z1r--z1l & cycle;
+
+
+.endchar;
+
+
+.cmchar "The gothic letter L";
+.beginchar("L",11.27u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+z1=(0,0); x2=0.43w; x3=0.46w;
+x4=0.495w; x5=0.66w; x6=0.74w;
+y2=0.31h; y3=0.515h; y4=0.71h;
+y5=0.933h;
+penpos1(cap_hair,-67.5);
+penpos2(cap_stem,-10);
+penpos3(1.06cap_stem,-7.5);
+penpos4(0.823cap_stem,-9);
+penpos5(1/3cap_stem,-36);
+penpos6(cap_hair,-55);
+penpos1'(0.05cap_hair,-67.5);
+z1'l=z1l;
+y6l=h+apex_o;
+penstroke z1'e{dir22.5}..z2e..z3e..z4e..
+z5e..z6e{dir35};
+penpos7(cap_hair,-30);
+penpos8(0.85cap_stem,-100);
+x7=1/8w; x8=0.35w; x8.1=x3;
+x8.2=0.625w; y7=0.77h; y8l=h+apex_o;
+y8.1=0.86h; y8.2=0.955h;
+filldraw z7r..z8r..z8.1..z6l{dir35} &
+ z6l{dir215}..z8.2..z8l..z7l{dir240}
+& z7l--z7r & cycle;
+penpos10(0.56cap_stem,-14);
+penpos10'(1.4cap_hair,-14);
+penpos11(0.91cap_stem,-7.5);
+penpos11'(1.5cap_hair,-7.5);
+penpos12(0.82cap_stem,-9);
+penpos12'(1.3cap_hair,-9);
+penpos13(0.56cap_stem,-36);
+penpos13'(0.7cap_hair,-36);
+penpos14(0.75cap_hair,-90);
+penpos9(cap_hair,-90);
+z2r=z10'l; z10'r=z10l;
+z3r=z11'l; z11'r=z11l;
+z4r=z12'l; z12'r=z12l;
+z5r=z13'l; z13'r=z13l;
+x14=w-slab; x9=0.325w; y14l=h-slab;
+y9r=0.085h;
+penstroke z9e..z10e..z11e..z12e
+..z13e..z14e{right};
+%
+%
+%
+x15=x5r; y15=0.134w;
+penpos15(0.82cap_stem,-90);
+penpos16(1.06cap_stem,-126.5);
+y16r=-apex_o; x16l=x14;
+penpos30(cap_hair,angle(z16l-z16r)-90);
+z30r=whatever[z16l,z16r];
+x30r=w+apex_o;
+filldraw z1r..z9r..z15r..z16r
+& z16r--z30r--z30l
+& z30l{z16r-z16l}..z15l{left}
+..z1l
+& z1l--z1r & cycle;
+%
+%
+% pterugia
+%
+z2''=z2; penpos2''(0.7cap_hair,
+angle(z2r-z2l));
+z27.1=(z1l{dir22.5}..z2l..z3l..
+z4l..z5l..z6.)
+intersectionpoint (z9r--(x9r,h));
+x28.1=x7r+cap_hair; y28.1=0.4h;
+x29.1=x7r+0.5cap_hair; y29.1=0.58h;
+filldraw z27.1{up}..
+z28.1{left} & z28.1{dir60}..z2''r
+& z2''r--z2''l &
+ z2''l..z29.1{left} & z29.1{dir60}..
+z3 & z3--z2--z27.1 & cycle;
+%
+%
+%
+
+.endchar;
+
+.cmchar "The gothic letter M";
+.beginchar("M",16.39u#,cap_height#,2u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric theta; theta=-45;
+penpos1(cap_stem,0);
+penpos2(cap_stem,0);
+penpos3(cap_stem,0);
+penpos4(cap_stem,0);
+penpos4''(cap_stem,0);
+z4''=(x4,y4+cap_hair);
+penpos5(2/3cap_stem,0);
+penpos7(2/3cap_stem,0);
+x1=x3=0.525w;
+x2=x4=0.86w;
+x5=x7=1/4w;
+y1=y2=y5=0.2h;
+y3=0.7h; y4=0.7h; y7=0.623h;
+penstroke z5e--z7e;
+penstroke z1e--z3e;
+penstroke z2e--z4e;
+penpos6(cap_hair,0);
+penpos6'(1.5cap_hair,0);
+penpos8(cap_hair,0);
+penpos8'(1.5cap_hair,0);
+z6'l=z5r; z6l=z6'r;
+z8'l=z7r; z8l=z8'r;
+penstroke z6e--z8e;
+penpos11(cap_hair,-90);
+z11=z3r; penpos1'(1.7cap_stem,0);
+x1'=x1; y1'=0.5y1;
+z14=(0.534w,-apex_o);
+penpos13(cap_hair,0);
+x13=0.5[x1r,x2l]; z13'=z13;
+y13=y1; penpos13'(cap_hair,90-theta);
+penpos15(cap_hair,90-theta);
+z15l=whatever[z14,z13'l];
+x15r=0.5[x13,x2l];
+z15'=whatever[z1'l,z14];
+z15'=whatever[z13'r,z15r];
+filldraw z1l{down}..z1'l{left}
+& z1'l--z14--z1'r &
+z1'r{left}..z1r{up} &
+z1r--z1l & cycle;
+filldraw z15'--z14--z15l--
+z15r--z15' & cycle;
+z13.1=whatever[z13l,z15'];
+x13.1=x1r;
+z13.2=0.5[z13.1,z13l];
+filldraw z1r{down}..
+z13.2{z15r-z15'} & z13.2--
+z14--z1'--z1r & cycle;
+y12=h+apex_o;
+z12-z11l=whatever*(z15r-z14);
+x11.1=x13r;
+z11.1-z11=whatever*(z12-z11l);
+z11.2=whatever[z11,z11.1];
+ x11.2=x13l;
+filldraw z13r--z11.1--z11.2
+--z13l--z13r & cycle;
+z11.3=0.5[z11.1,z11.2];
+z16-z12=whatever*(z4l-z11.3);
+z16-z4''r=whatever*(z12-z11l);
+penpos18(cap_hair,theta);
+z18r=whatever[z4''r,z16];
+x18r=w-apex_o;
+penpos18'(cap_hair,theta);
+z18'r=z4''r;
+penstroke z18'e--z18e;
+z11.4-z11r=whatever*(z11.3-z11);
+z11.4-z4''l=whatever*(z12-z16);
+filldraw z11r--z11.4--z4''l--
+z4''r--z16--z12--z11l--z11r &
+cycle;
+z9=(0.271w,0.8h+cap_hair);
+%z17-z9=whatever*(z12-z11l);
+y17=h+apex_o;x180=x11;
+y180=y11+cap_stem;
+z180-z17=whatever*(z16-z12);
+penpos19(cap_hair,-90);
+penpos19'(cap_hair,-60);
+x19=x19'=x17;
+y19=y19'=0.9h+cap_hair;
+z3'=z3l+(0,-3cap_hair);
+%x20=0.5[x6r,x1l];
+%y20=3/4[y8,y19];
+z20=(z8r{up}..z19'r)
+intersectionpoint
+((0,y9-cap_hair)--
+(w,y9-cap_hair));
+filldraw z8r{up}..z20
+..z19'r & z19'r--z19'l &
+z19'l..z8l{down} &
+z8l--z8r & cycle;
+filldraw z7r{up}..z19r &
+z19r--z19l & z19l--z17---z9...z7l{down}
+& z7l--z7r & cycle;
+%
+%
+%
+filldraw z3l{up}
+..z9{z9-z17}
+& z9--z17--z180--z3r--z3l
+& cycle;
+z21=(x2l,y1');
+z22-z21=whatever*(z14-z1'l);
+y22=y14;
+penpos23(cap_hair,-45);
+z23r-z22=whatever*dir45;
+x23r=w;
+filldraw z2l--z21--z22--
+z23r--z23l & z23l{z22-z23r}..
+{up}z2r & z2r--z2l & cycle;
+y24=y26=0.462h-0.4cap_stem;
+y25=y27=y24+0.8cap_stem;
+x25=x1l-0.15cap_stem;
+x27=x13r+0.6cap_stem;
+x24=x1l-0.6cap_stem;
+x26=x13r+0.15cap_stem;
+filldraw z24--z25--z27--z26--
+z24 & cycle;
+z10=(0,-d); penpos10(cap_hair,0);
+penpos30(cap_stem,-90);
+x30=x5l;
+y30r=2/3y10;
+penpos31(0.5cap_stem,-90);
+x31=0.5[x10,x5]; y31r=0;
+penstroke z10e{up}..z31e{right}..
+z5e{up};
+penstroke z10e{up}..z30e{right}
+..z6e{up};
+y33=y24; z31'=z31+(2cap_hair,0);
+z34=(z9{z9-z17}..z31'{down})
+intersectionpoint
+((0,y25)--z25);
+y32=y33-0.5cap_hair;
+x32=2cap_hair; x33=0.5[x32,x34];
+%
+%
+%
+filldraw z5l{up}..z33..z32
+& z32{up}..z34{right} &
+z34{dir80}..z9{z17-z9} & z9--z5l
+& cycle;
+filldraw z4''l--z4''r--z4r--z4l--z4''l
+& cycle;
+.endchar;
+
+.cmchar "The gothic letter N";
+.beginchar("N",12.78u#,cap_height#,2u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_hair,0); z1l=(0,-d);
+penpos2(cap_stem,0); x2=0.323w;
+y2=0.43h; y3=0.834h;
+x5=0.572w; x3=x2l;
+y5=h+apex_o; z4=whatever[z3,z5];
+x4=x2r; y6=y3; x6=0.7w;
+penpos6(cap_stem,47);
+z7=(0.753w,0.533h);
+%z8=(0.893w,0.646h);
+z8=(0.893w,0.6h);
+z8'=(0.57w,y3);
+penpos9(2/3cap_stem,-22);
+x9=0.77w; y9=y2;
+penpos10(cap_hair,-35);
+z10=(0.557w,-0.556d);
+penpos11'(1.5cap_amount,0);
+penpos11(cap_hair,0);
+z12.1=whatever[z3,z5];
+z12.2=whatever[z3,z5];
+z12.3=whatever[z3,z5];
+z11'l=(x2r,0.2h);
+z11l=z11'r;
+x12.1=x4; x12.2=x11'r;
+x12.3=x11r; z3'=(x2,y3);
+filldraw z2l--z3--z4--z2r--z2l &
+cycle; filldraw
+z5{dir-31}..z8{down}..z10r{dir234} &
+z10r--z10l & z10l{dir54}..z7{up}
+..z8'..z3' & z3'--z3--z5 & cycle;
+filldraw z11l--z12.2--z12.3--
+z11r--z11l & cycle;
+z14=(0.275w,-0.5cap_amount);
+penpos14(1.08cap_stem,-90);
+penstroke z1e{up}..z14e{right}..z11e{up};
+penpos15(2/3cap_stem,0);
+z15r=z11'l;
+penstroke z1e{up}..z15e{up}..
+z2e{up};
+penpos13(1.32cap_stem,-121);
+z13r=(x8-0.5cap_amount,-apex_o);
+penstroke z10e{dir54}..z13e{dir-30};
+penpos16(cap_hair,-31);
+z16r=whatever[z13r,z13l];
+x16r=w;
+penpos16'(cap_hair,-31);
+z16'r=z13r;
+penstroke z16'e--z16e;
+penpos20(cap_hair,-90);
+penpos21(cap_hair,-90);
+penpos22(cap_hair,-90);
+penpos23(cap_hair,-90);
+penpos24(cap_hair,-90);
+penpos25(cap_hair,-90);
+z23=(x11r,y2); x20=x23;
+x22=x25=x7;
+x21=x24=0.5[x23,x25];
+y21=y24+cap_stem; y21l=y20r;
+y24r=y23l; y25l=y24r;
+y22r=y20l;
+penstroke z20e..z21e..z22e;
+penstroke z23e..z24e..z25e;
+z26=(0.083w,0.623h);
+filldraw (x2l,0.48h){up}..z26 &
+z26{dir40}..(x2r,0.48h){down} &
+(x2r,0.48h)--(x2l,0.48h) &
+cycle;
+z27=(x26,0.47h);
+filldraw z15l{up}..z27{left} & z27{dir40}
+..z2r & z2r--z15l & cycle;
+z28=(x26+0.5cap_amount,0.265h);
+filldraw z15l{up}..z28{dir210} &
+z28{dir60}..(x15r,y28) & (x15r,y28)--
+z15l & cycle;
+.endchar;
+
+.cmchar "The gothic letter O";
+.beginchar("O",12.86u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_stem,-90);
+x1=0.6w; y1r=-apex_o;
+penpos2(0.8cap_stem,180);
+y2=0.467w; x2r=0;
+penpos7(0.8cap_stem,0); y7=0.53h;
+x7r=w; penpos5(cap_hair,0);
+z5r=z1;
+x4.1=x1-cap_hair; y4.1=h;
+z4.2=(z7r{up}..z4.1{dir158})
+intersectionpoint
+((x1,0)--(x1,h));
+z3.1=(0.0756w,0.628h);
+z3.1-z3.2=whatever*(z4.1-z4.2);
+z3.2-z4.2=whatever*(z3.1-z4.1);
+z3.3=whatever[z3.2,z4.2];
+x3.3=0.216w;
+penstroke z2e{down}..z1e{dir-16};
+filldraw z2l{up}...z3.3{z4.2-z3.3}
+---z4.2 & z4.2--z4.1 &
+z4.1---z3.1...z2r{down} &
+z2r--z2l & cycle;
+filldraw z5r--z4.2--z4.1--z5l--
+z5r & cycle;
+%
+%
+%
+penpos1'(cap_hair,-90);
+z1'r=z1;
+penpos2'(0.4cap_stem,180);
+z2'r=z2;
+penpos6(1.1cap_stem,63);
+z6r=(x4.1-cap_hair,h+apex_o);
+penpos8(cap_hair,angle(z4.2-z3.2)-90);
+z8=(0.78w,0.161h);
+filldraw z1l{dir-16}...
+z8l{z4.2-z3.2}..
+z7l{up}..z6l{left} & z6l--z6r &
+z6r..z7r{down}...
+z8r{z3.2-z4.2}..{dir-117}z1r &
+z1r--z1l & cycle;
+z10=(z2l{down}..z1l{dir-16})
+intersectionpoint ((0.3w,0)--
+(0.3w,h));
+z11-z10=whatever*(z4.1-z3.1);
+x11=x10+cap_stem;
+z12=whatever[z3.2,z4.2];
+z13=whatever[z3.2,z4.2];
+x12=x10; x13=x11;
+filldraw z10--z11--z13--z12--z10
+& cycle;
+z15'=whatever[z10,z11];
+x15'=0;
+z15=(z2r{down}..z1r{dir-16})
+intersectionpoint
+(z15'--z11);
+penpos15''(0.1cap_hair,-90);
+z15''r=z15;
+z14=(x10,0.5[y10,y2]);
+filldraw z15''l{z11-z10}..z14{up}
+& z14--z10 & z10--z15''r &
+z15''r--z15''l & cycle;
+z16=whatever[z4.1,z3.1];
+z17=whatever[z4.1,z3.1];
+y17=y6l; x16=x11;
+filldraw z6l{left}--z17 &
+z17---z16...z6r{z6r-z6l} &
+z6r--z6l & cycle;
+z11.1=whatever[z10,z11];
+x11.1=x11+2/3cap_hair;
+z11.2=(x11,y2);
+filldraw z11.2{down}..z11.1 &
+z11.1--z11--z11.2 & cycle;
+%
+% 2 grammoulec
+%
+penpos20(cap_hair,-90);
+penpos21(cap_hair,-90);
+penpos22(cap_hair,-90);
+penpos23(cap_hair,-90);
+z22r=(x1,y2); z20r=(x1,0.29h);
+z23'-z22r=whatever*(z3.2-z4.2);
+z21'-z20r=whatever*(z3.2-z4.2);
+x21'=x23'=0;
+z23''=whatever[z23',z22r];
+z21''=whatever[z21',z20r];
+x21''=x23''=w;
+z23r=(z8{z4.2-z3.2}..z7{up}..
+z6) intersectionpoint
+(z23'--z23'');
+z21r=(z8{z4.2-z3.2}..z7{up}..
+z6) intersectionpoint
+(z21'--z21'');
+penstroke z22e--z23e;
+penstroke z20e--z21e;
+.endchar;
+
+.cmchar "The gothic letter P";
+.beginchar("P",12.33u#,cap_height#,2.72u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos4(cap_stem,0);
+z4r=(0.48w,-d);
+penpos4'(0.5cap_stem,-90);
+z4'r=z4l;
+penpos6(4/3cap_amount,0);
+penpos5(cap_hair,0);
+z6l=z4r; z5l=z6r;
+penpos4''(0.5cap_stem,-90);
+z4''r=z5r;
+penpos3(cap_stem,0);
+penpos7(cap_hair,0);
+x3=x4; x7=x5;
+y3=0.8h; y7=h;
+penstroke z4e--z3e;
+penstroke z5e--z7e;
+penstroke z4'e--z4''e;
+penpos17(cap_hair,90); x17=x5r;
+y17=y3;
+y18=y17; x18=x17+1.5cap_amount;
+y16=h+apex_o; x16=0.765w;
+penpos19(1.06cap_stem,43);
+y19=y18+1/4cap_amount;
+x19=0.8w;
+penpos20(cap_stem,0);
+x20r=w; y20=0.423h;
+x15=0.9685w; y15=0.193h;
+z13=(0.8w,-apex_o);
+z14=0.5[z13,z15]+(0,3/4cap_amount);
+penpos12(0.85cap_stem,-90);
+x12=x4; y12=0.175h;
+z11=(0.23w,0.242h);
+z10=(x11-0.3cap_amount,y11-0.8cap_stem);
+penpos9(cap_hair,0);
+z9=(0.108w,0);
+penpos19.5(1.09cap_stem,22);
+x19.5=0.63[x19,x20];
+y19.5=0.433[y19,y20];
+filldraw z17r--z16 & z16..
+z19.5r..z20r..z15 & z15..z14..z13 &
+z13..z20l{dir94}..z19l{dir125}..z18..z17l &
+z17l--z17r & cycle;
+z14'=(z9l{dir82}..z11..
+z12l..z14) intersectionpoint
+(z13..z20l{dir94}..
+z19l{dir123}..z18..z17l);
+z14.5=0.5[z14',z14];
+filldraw z9l{dir82}..z11..z12l..z14.5
+& z14.5--z13 & z13..z12r..z10..
+z9r{dir262} & z9r--z9l & cycle;
+unfilldraw (x6l,0)--(x6l,y20)--
+(x6r,y20)--(x6r,0)--(x6l,0) &
+cycle;
+penpos1(cap_hair,0);
+z1l=(0,y3);
+z1'=(0.5[x1r,x3l],y1+3cap_amount);
+z2=0.5[z3r,(x3r,h+apex_o)];
+z2'=(0.266w,h);
+filldraw z1r..z1'..z3l & z3l--
+z3r--z2 & z2..z2'..z1l &
+z1l--z1r & cycle;
+penpos21(1.32cap_stem,50);
+penpos23(0.5cap_hair,-40);
+z21l=(0.063w,0.5w); z23l=z21l;
+z21.2=(x4r,y20); z21.1=(x4l,y11);
+filldraw z21.2--z21r--z21l--z23r &
+z23r{dir30}..z21.1{down} &
+z21.1--z21.2 & cycle;
+%
+%
+%
+x25=x28=x5r;
+y25=0.59h; y28=0.386h;
+penpos25(cap_hair,-90);
+penpos26(cap_hair,-90);
+penpos27(cap_hair,-90);
+penpos28(cap_hair,-90);
+penpos29(cap_hair,-90);
+penpos30(cap_hair,-90);
+x30=x20l+apex_o;
+y30l=y28r;
+y25l=y27r; x27=x30;
+x26=x29=0.5[x25,x27];
+y26l=y25r; y29r=y28l;
+penstroke z25e..z26e..z27e;
+penstroke z28e..z29e..z30e;
+.endchar;
+
+
+.cmchar "The gothic letter Q";
+.beginchar("Q",12.86u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_stem,-90);
+x1=0.6w; y1r=-apex_o;
+penpos2(0.8cap_stem,180);
+y2=0.467w; x2r=0;
+penpos7(0.8cap_stem,0); y7=0.53h;
+x7r=w; penpos5(cap_hair,0);
+z5r=z1;
+x4.1=x1-cap_hair; y4.1=h;
+z4.2=(z7r{up}..z4.1{dir158})
+intersectionpoint
+((x1,0)--(x1,h));
+z3.1=(0.0756w,0.628h);
+z3.1-z3.2=whatever*(z4.1-z4.2);
+z3.2-z4.2=whatever*(z3.1-z4.1);
+z3.3=whatever[z3.2,z4.2];
+x3.3=0.216w;
+penstroke z2e{down}..z1e{dir-16};
+filldraw z2l{up}...z3.3{z4.2-z3.3}
+---z4.2 & z4.2--z4.1 &
+z4.1---z3.1...z2r{down} &
+z2r--z2l & cycle;
+filldraw z5r--z4.2--z4.1--z5l--
+z5r & cycle;
+%
+%
+%
+penpos1'(cap_hair,-90);
+z1'r=z1;
+penpos2'(0.4cap_stem,180);
+z2'r=z2;
+penpos6(1.1cap_stem,63);
+z6r=(x4.1-cap_hair,h+apex_o);
+penpos8(cap_hair,angle(z4.2-z3.2)-90);
+z8=(0.78w,0.161h);
+filldraw z1l{dir-16}...
+z8l{z4.2-z3.2}..
+z7l{up}..z6l{left} & z6l--z6r &
+z6r..z7r{down}...
+z8r{z3.2-z4.2}..{dir-117}z1r &
+z1r--z1l & cycle;
+z10=(z2l{down}..z1l{dir-16})
+intersectionpoint ((0.3w,0)--
+(0.3w,h));
+z11-z10=whatever*(z4.1-z3.1);
+x11=x10+cap_stem;
+z12=whatever[z3.2,z4.2];
+z13=whatever[z3.2,z4.2];
+x12=x10; x13=x11;
+filldraw z10--z11--z13--z12--z10
+& cycle;
+z15'=whatever[z10,z11];
+x15'=0;
+z15=(z2r{down}..z1r{dir-16})
+intersectionpoint
+(z15'--z11);
+penpos15''(0.1cap_hair,-90);
+z15''r=z15;
+z14=(x10,0.5[y10,y2]);
+filldraw z15''l{z11-z10}..z14{up}
+& z14--z10 & z10--z15''r &
+z15''r--z15''l & cycle;
+z16=whatever[z4.1,z3.1];
+z17=whatever[z4.1,z3.1];
+y17=y6l; x16=x11;
+filldraw z6l{left}--z17 &
+z17---z16...z6r{z6r-z6l} &
+z6r--z6l & cycle;
+z11.1=whatever[z10,z11];
+x11.1=x11+2/3cap_hair;
+z11.2=(x11,y2);
+filldraw z11.2{down}..z11.1 &
+z11.1--z11--z11.2 & cycle;
+%
+% 2 grammoulec
+%
+penpos20(cap_hair,-90);
+penpos21(cap_hair,-90);
+penpos22(cap_hair,-90);
+penpos23(cap_hair,-90);
+z22r=(x1,y2); z20r=(x1,0.29h);
+z23'-z22r=whatever*(z3.2-z4.2);
+z21'-z20r=whatever*(z3.2-z4.2);
+x21'=x23'=0;
+z23''=whatever[z23',z22r];
+z21''=whatever[z21',z20r];
+x21''=x23''=w;
+z23r=(z8{z4.2-z3.2}..z7{up}..
+z6) intersectionpoint
+(z23'--z23'');
+z21r=(z8{z4.2-z3.2}..z7{up}..
+z6) intersectionpoint
+(z21'--z21'');
+penstroke z22e--z23e;
+penstroke z20e--z21e;
+%
+% Q
+%
+z33=(x7l-cap_hair,-apex_o);
+z34-z33=whatever*dir45;
+x34=w;
+penpos33'(cap_stem,angle(z34-z33));
+z33'l=z33;
+z33-z33''=whatever*dir-50;
+x33''=0;
+z33'r-z33.1''=whatever*(z33-z33'');
+x33.1''=0;
+z30=(z1..z8..z7{up})
+intersectionpoint (z33''--z33);
+z31=(z1..z8..z7{up})
+intersectionpoint (z33.1''--z33'r);
+filldraw z30--z31--z33'r--z33--
+z30 & cycle;
+penpos35(cap_hair,-90);
+z35r=z34;
+filldraw z31{z33'r-z31}..z35l{
+z34-z33} & z35l--z35r & z35r--
+z33 & z33--z31 & cycle;
+z100=(z1r{dir63}..z33{z33-z30})
+intersectionpoint
+(0.5[z1r,z33]--(0.5[x1r,x33],h));
+filldraw z1..
+%z100+(0,0.5cap_hair)..
+z33{z33-z30} & z33--z30--z1
+ & cycle;
+.endchar;
+
+.cmchar "The gothic letter R";
+.beginchar("R",10.72u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#+2.05u#);
+x1=x2=0.39w; y2=0.85h;
+y1=y7=y18=1/6h;
+penpos1(cap_stem,0);
+penpos2(cap_stem,0);
+penstroke z1e--z2e;
+penpos3(cap_hair,0);
+penpos2'(cap_stem,180); z2'=z2;
+x3l=0; y3=y2;
+x3.5=0.5[x3,x2];
+penpos3.5(0.5[cap_hair,cap_stem],
+-90); y3.5l=h+apex_o;
+penstroke z3e{dir60}...z3.5e...
+z2'e{down};
+penpos4(1.2cap_hair,-90);
+penpos9(1.2cap_hair,-90);
+x4=x3r;
+y4r=0.56h;
+y9l=y12.2-2cap_hair=0.5h;
+z4.1-z4l=whatever*(z2r-z4r);
+y4.1=y2;
+filldraw z4r--z2r--z4.1--z4l--z4r &
+cycle;
+penpos5(1.2cap_hair,-90); z5l=z2r;
+penpos6(whatever,angle(z2r-z4r)-90);
+z6l=whatever[z4r,z5l];
+z6r-z5r=whatever*(z5l-z4r);
+y6l=h+apex_o;
+filldraw z5l--z6l--z6r--z5r--z5l
+& cycle;
+x7=0.54w; penpos7(0.9cap_hair,0);
+z8.1=whatever[z4r,z6l];
+x8.1=x7l; x8.2=x7r;
+z8.2=whatever[z4r,z6l];
+filldraw z7r--z8.2--z8.1--z7l--z7r
+& cycle;
+penpos11(1.118cap_stem,
+angle(z6l-z4r));
+z11=whatever[z4r,z6l]; x11r=x6l;
+x9l=x7l;
+z10.1-z6=whatever*(z6r-z6l);
+z10.1-z9l=whatever*(z6l-z4r+(0,1/3cap_stem));
+z10.4=whatever[z9l,z10.1];
+z10.4-z11l=whatever*(z10.1-z6);
+filldraw z10.4--z11l--z11r--z10.1
+--z10.4 & cycle;
+z10.2-z9r=whatever*(z10.1-z9l);
+z10.2=whatever[z6,z10.1];
+z12.1=whatever[z9r,z10.2];
+z12.1=whatever[z11l,z10.4];
+filldraw z9l--z10.1--z10.2--z9r
+--z9l & cycle;
+x12.2=w;
+z12.4=(x7l,y9l);
+x12.2-x12.3=1.2cap_stem;
+z12.3-z12.4=whatever*(z12.2-z12.1);
+x1.1=x1l; y1.1=0.247h;
+x13.2=x1l; y13.2=0.56h;
+z13.1-z13.2=
+whatever*dir(angle(z6l-z4r)+100);
+z13.1=whatever[z4r,z5l];
+filldraw z4l{dir-30}...z1.1{down}
+& z1.1--z13.2--z13.1--z4l &
+cycle;
+unfill z4l{dir-30}...z1.1{down}
+& z1.1--(x4l,y1.1)--z4l &
+cycle;
+z15=(0,-apex_o); z17=(0.73w,-apex_o);
+x18=w; z19=(x12.3,y18);
+%
+%
+%
+penpos40(1.09cap_stem,-114);
+z40r=(x7r+0.5cap_stem,-apex_o);
+filldraw z15{dir80}%...{right}(x1,y1.1)
+...z40l{dir-24} &
+z40l--z40r & z40r{dir156}...
+z15{dir225} & cycle;
+penpos41(cap_hair,-24);
+penpos41'(0.5cap_stem,-114);
+z41'r=z40l; z41r=z41'l;
+penpos40'(cap_hair,-24);
+z40'r=z40;
+penstroke z40'e--z41e;
+x18.2=x18.1=x12.3+cap_stem;
+y18.2=7/8[y18,y12.2];
+y18.1=1/8[y18,y12.2];
+z101=0.5[z9r,z10.2];
+z104=(1.09w,1.1176cap_stem);
+penpos105(cap_hair,-37);
+z105r=(1.192w,0.193h);
+z106=(w,-apex_o);
+z107=whatever[z106,z40l];
+x107=x106-0.44cap_stem;
+penpos103(0.9cap_stem,-157);
+penpos102(cap_stem,-138);
+z102l=z101+(0.6cap_amount,-0.7cap_amount);
+z103l=(w+1.1cap_hair,0.18h);
+z100=whatever[z9r,z101];
+x100=x7r;
+filldraw z101..z102l..z103l..
+z104..z105l{dir52} &
+z105l--z105r & z105r--z106 &
+z106---z107...%z103r---
+z102r{dir(angle(z102l-z102r)+90)}
+...z100 & z100--
+z100+(0,0.3cap_amount)--z101 & cycle;
+.endchar;
+
+.cmchar "The gothic letter S";
+.beginchar("S",12.28u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(1.32cap_stem,44);
+penpos2(cap_stem,70);
+penpos2'(0.82cap_stem,90);
+penpos3(cap_hair,-16);
+penpos4(0.5cap_stem,180);
+penpos5(cap_hair,-90);
+penpos6(1.3cap_hair,-24);
+penpos7(1.148cap_stem,50);
+penpos8(0.975cap_stem,90);
+penpos9(1.1cap_stem,90);
+penpos10(0.56cap_stem,0);
+penpos11(cap_hair,-39);
+penpos12(cap_hair,-46);
+penpos13(0.65cap_stem,0);
+penpos14(cap_stem,90);
+penpos15(1.07cap_stem,90);
+penpos16(0.56cap_stem,0);
+penpos3'(cap_hair,-16);
+penpos20(cap_stem,-106);
+penpos19(1.2cap_hair,-50);
+x1=0.718w; x2=0.55w; x3=0.367w;
+x2'=0.252w; x4r=0;
+x5=0.164w; x6=0.725w;
+x7=0.734w; x8=x1l; x9=x2';
+x10=x4l; x11r=x5; z12r=z1;
+x13r=w; x14=x1r-1/4cap_amount;
+x15=0.302w; x16=x10r; x17=x10;
+ x18=x15; x20=0.595w;
+z3'-z3=whatever*dir74;
+y3'l=h+apex_o;
+y1l=-apex_o; y2=0.114h;
+y3=0.143h; y2'=0.157h;
+y4=0.027h; y5=-0.067h; y6=0.211h;
+y7=0.374h; y8r=0.462h;
+y9=0.365h; y10=0.52h;
+y11=0.659h; y13=y10; y14=0.652h;
+y15=0.628h; y16=0.789h;
+y17=0.839h;
+z19l=0.285[z17,z18];
+y18=h+apex_o; y20=y19;
+penpos5'(cap_hair,-66);
+z5'=(0.5w,0);
+penstroke z3e--z3'e;
+penstroke z1e{dir141}..z2'e..z4e..
+z5e{right}..z5'e..z6e{dir66}..z7e..z8e{left}..z9e..z10e..
+z11e{dir51};
+filldraw z1--z1r{z1r-z1l}...z13r{up}..
+z14r{left}..z15r..z16r..%z19r..
+z20r{z20l-z18} & z20r--z20l--z18
+& z18---z17...z16l{down}..
+z15l{right}..z14l{right}..
+z13l..z12l{z1l-z1r} &
+z12l--z1 & cycle;
+.endchar;
+
+.cmchar "The gothic letter T";
+.beginchar("T",12.82u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_hair,121);
+penpos3(cap_stem,211);
+penpos5(cap_hair,-45);
+x3l=0.288w; x1=0.455w; x5r=w-0.6cap_amount;
+y1=0.9h; y3l=0.324h; y5=0.277h;
+z4=(0.613w,-apex_o);
+filldraw z1r..z3r..
+{dir-15}z4 & z4{dir25}..z5r &
+z5r--z5l & z5l..z3l..z1l &
+z1l--z1r & cycle;
+penpos6(cap_hair,0);
+penpos7(cap_stem,-90);
+penpos8(0.853cap_stem,-90);
+penpos9(cap_hair,-35);
+x6l=0; x9=w; x7=0.347w;
+x8=0.779w;
+y6=0.7h; y7l=h+apex_o;
+y8l=0.915h; y9=h-cap_amount;
+penstroke z6e{up}..z7e..z8e..z9e;
+%
+%
+%
+penpos10(cap_hair,0);
+penpos10'(cap_hair,0);
+x10l=x10'l=0.64w;
+z10'=whatever[z7,z8];
+y10=0.5cap_stem;
+penstroke z10e--z10'e;
+%
+%
+%
+z20=(z6r{up}..z7r..z8r..z9r)
+intersectionpoint
+(z5l..z3l..z1l);
+penpos11(cap_stem,0);
+penpos12(cap_stem,0);
+y11=0.44h;
+x11l=x12l=x20;
+z12=whatever[z7,z8];
+z21=(z1..z3..z5)
+intersectionpoint
+((0.3w,0)--(0.3w,y11));
+penpos21(1.2cap_hair,-50);
+penstroke z21e{dir40}..z11e{up}
+--z12e;
+.endchar;
+
+.cmchar "The gothic letter U";
+.beginchar("U",13.72u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_hair,90);
+penpos4(cap_hair,-90);
+z2=(0.053w,0.404h);
+z2'=(x2+cap_stem,0.462h);
+z3=(0.409w,-apex_o);
+z3'=(x3,0.123h);
+z1=(0.555w,0.888h);
+z4=(0.735w,0.215h);
+filldraw z1r{left}..z2..z3{dir-18}
+& z3--z4r--z4l &
+z4l{dir209}..z3'..z2'..z1l{right}
+& z1l--z1r & cycle;
+%
+%
+%
+penpos5(cap_hair,0);
+penpos6(cap_hair,0);
+z5r=whatever[z3,z4r];
+x5r=x1; z6=(x5,h+apex_o);
+penstroke z5e--z6e;
+%
+%
+%
+z7=(z1{left}..0.5[z2,z2']..
+0.5[z3,z3']..z4)
+intersectionpoint
+((0.255w,0)--(0.255w,y2));
+penpos7(cap_hair,-50);
+penpos8(cap_stem,0);
+y8=0.561h; x8r=x5l-cap_amount;
+penpos9(cap_hair,-43);
+y9=0.928h; x9=x5;
+penstroke z7e{dir41}..z8e{up}
+..z9e{dir48};
+%
+%
+%
+x10=0; y10=0.673h;
+penpos10(cap_hair,0);
+penpos11(cap_stem,-90);
+x11=0.19w; y11l=h+apex_o;
+penpos12(0.588cap_stem,-90);
+z12=(0.457w,0.906h);
+penstroke z10e{up}..z11e{right}..
+z12e..z6e{up};
+%
+%
+%
+penpos20(cap_stem,0);
+penpos21(cap_stem,0);
+z20l=z4l;
+z21=(x20,0.841h);
+penstroke z20e--z21e;
+%
+%
+%
+z25=(x20l,0.405y20);
+z26=(x25+0.824cap_stem,-apex_o);
+penpos27(cap_hair,-45);
+z27r-z26=whatever*dir47;
+x27r=w;
+filldraw z20l--z25--z26--z27r--
+z27l & z27l{z26-z27}..{up}z20r
+& z20r--z20l & cycle;
+%
+%
+%
+penpos24(cap_hair,145);
+z24=(0.291[x5r,x20l],0.789h);
+z23=(x20l,h+apex_o);
+z22=z21r+(0.6cap_hair,cap_hair);
+filldraw z21l{up}..z24l{z24r-z23}
+& z24l--z24r--z23--z22 &
+z22..{down}z21r & z21r--z21l
+& cycle;
+%
+%
+%
+z250=(x1,0.574h);
+z270=(x1,0.413h);
+z260=(x20l,y250);
+z280=(x20l,y270);
+penpos250(cap_hair,-90);
+penpos260(cap_hair,-90);
+penpos270(cap_hair,-90);
+penpos280(cap_hair,-90);
+penpos290(cap_hair,-90);
+penpos300(cap_hair,-90);
+x290=x300=0.5[x250,x260];
+y290l=y250r; y300r=y270l;
+penstroke z250e..z290e..z260e;
+penstroke z270e..z300e..z280e;
+.endchar;
+
+.cmchar "The gothic letter V";
+.beginchar("V",15.44u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_hair,0);
+penpos2(0.765cap_stem,-90);
+penpos4(cap_hair,-100);
+x1=0; y1=y3=0.83h; y2l=h+apex_o;
+x2=0.094w; x3=0.205w;
+h-y3'=0.4cap_stem; x3'=0.288w;
+y4l=h; x4=0.549w;
+filldraw z1r{up}..z2r..z3..
+z4r{dir-13} & z4r--z4l &
+z4l{dir167}..z3'..z2l..z1l{down}
+& z1l--z1r & cycle;
+%
+%
+%
+penpos5(cap_hair,-90);
+penpos6(1.118cap_stem,20);
+penpos7(0.882cap_stem,0);
+y5r=0; x5=0.197w; y6=0.516h;
+x6=1/3w; z7=(0.3w,0.744h);
+penstroke z5e{right}..z6e..z7e
+..z4e{dir-13};
+%
+%
+%
+penpos8(cap_hair,-90); x8=x6;
+y8=0; z9=(0.78w,0.657h);
+z9'=(x9+1.5cap_hair,y9);
+z10=(0.586w,h-1.06cap_stem);
+z11=(0.545[x10,x9],h);
+z13=(w,y10-0.5cap_amount);
+z12=(0.5[x9',w],h-0.6cap_amount);
+z10'=(0.345[x10,x9],y10+0.7cap_amount);
+filldraw z5r..z8r..z9'{up}..
+z11{left}..z10{down} &
+z10{dir27}..z10'{right}..z9{down}..z8l..z5l
+& z5l--z5r & cycle;
+filldraw z9{up}..z12{right}..z13{down}
+& z13{dir146}..z9'{down} & z9'--z9 &
+cycle;
+%
+%
+%
+penpos14(cap_hair,0);
+penpos15(cap_hair,18);
+penpos16(cap_hair,0);
+z14l=(0.46w,0.408h);
+z15l=(0.432w,0.628h);
+z16l=(0.387w,0.87h);
+penstroke z5e{right}..z14e{up}..
+z15e..z16e{up}..z4e{dir-13};
+%
+%
+%
+x17=0.152[x14r,x9];
+x18=0.405[x14r,x9];
+y17=0.691h; y18=0.556h;
+filldraw z15{z15r-z15l}..z17{right}
+..z18{dir241} & z18{dir152}..
+z14r{down} & z14r--z14..z15 &
+cycle;
+.endchar;
+
+.cmchar "The gothic letter W";
+.beginchar("W",14.556u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(1.2cap_hair,-42.5);
+penpos2(cap_stem,0);
+penpos3(cap_hair,180);
+y1l=0; x3=0; y3=y2=0.7h;
+x2r=0.349w; x1l=0.05w;
+z2'=(0.143w,0.897h);
+penpos2'(cap_stem,60);
+penstroke z1e{dir47.5}..z2e{up}..z2'e..
+z3e{down};
+%
+%
+%
+penpos4(cap_hair,-34);
+penpos5(1.06cap_stem,0);
+penpos6(1.4cap_stem,35);
+z4r=(0.42w,0); z6r=(0.6w,h+apex_o);
+z5r=(0.672w,0.632h);
+penstroke z4e{dir56}..z5e{up}..z6e{dir125};
+%
+%
+%
+penpos7(cap_hair,-44);
+penpos8(1.06cap_stem,0);
+penpos9(1.4cap_stem,35);
+y7r=0; x8r=w; y9r=h+apex_o;
+x7r=0.626w; y8=0.655h; x9r=w-0.4cap_stem;
+penstroke z7e{dir46}..z8e{up}..
+z9e{dir125};
+%
+%
+%
+z10'=(x2r,0.161h);
+z10=(z1l{dir47.5}..z10'..z7r)
+intersectionpoint
+(z4{dir56}..z5{up});
+filldraw z1r{dir47.5}..z4r{z4r-z4l}
+& z4r--z10 & z10..z10'..
+z1l{dir227.5} & z1l--z1r &
+cycle;
+%
+%
+%
+z11'=(x5r,0.175h);
+z11.1=(0.935w,0);
+z11=(z7{dir46}..z8{up})
+intersectionpoint (z4l{dir56}..
+z11'..z11.1);
+filldraw z4r{dir56}..z7r{z7r-z7l}
+& z7r--z11 & z11..z11'..
+z4l{dir236} & z4l--z4r & cycle;
+%
+%
+%
+penpos6.1(cap_hair,-55);
+penpos6.2(cap_hair,-55);
+penpos9.1(cap_hair,-55);
+penpos9.2(cap_hair,-55);
+z6.1l=z6; z9.1l=z9;
+z6.2l=whatever[z6l,z6r];
+z9.2l=whatever[z9l,z9r];
+x6.2=x2; x9.2=x5;
+penstroke z6.2e--z6.1e;
+penstroke z9.2e--z9.1e;
+%
+%
+%
+penpos100(cap_hair,-90);
+penpos110(cap_hair,-90);
+penpos120(cap_hair,-90);
+penpos130(cap_hair,-90);
+penpos140(cap_hair,-90);
+penpos150(cap_hair,-90);
+penpos160(cap_hair,-90);
+penpos170(cap_hair,-90);
+penpos180(cap_hair,-90);
+penpos190(cap_hair,-90);
+penpos200(cap_hair,-90);
+x100=x2; y100=0.677h; z120=z5;
+y110l=y120-cap_amount;
+x110=0.47[x100,x120];
+y130=y110; y140=y120; x140=x8;
+x130=0.47[x120,x140];
+penstroke z100e..z110e..z120e;
+penstroke z120e..z130e..z140e;
+%
+z150=(x2l,0.309h);
+y170l=y180r=y150;
+x170=x180=x6.1r;
+z200=((0,y180r)--(w,y180r))
+intersectionpoint
+(z7{dir46}..z8{up});
+y190=y160=y180l+cap_hair;
+x160=0.536[x150,x170];
+x190=0.532[x180,x200];
+penstroke z150e..z160e..z170e;
+penstroke z170e..z190e..z200e;
+%
+%
+%
+z21=(x3l,0.404h);
+z20=(x1r,y21+0.5cap_amount);
+z22=(0.095w,0.552h);
+filldraw z1l{dir47.5}..z20{left}
+..z21 & z21{up}..z22{right}..
+z1r{dir227.5} & z1r--z1l & cycle;
+.endchar;
+
+.cmchar "The gothic letter X";
+.beginchar("X",8.556u#,cap_height#,1.11u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+z1=(0.442w,0.202h);
+penpos1(cap_stem,0);
+penpos2(cap_stem,0);
+x2=x1; y2=0.843h;
+penstroke z1e--z2e;
+z3=(0,-d); penpos3(0.5cap_hair,-45);
+z4=(x1l,0.108h);
+z5=(0.61w,-apex_o);
+penpos6(cap_hair,-45);
+z6r-z5=whatever*(z4-z3r);
+x6r=w-cap_amount;
+z5'-z6l=whatever*(z5-z6r);
+z5'=whatever[z4,z5];
+z7-z1r=whatever*(z5-z4);
+z7=whatever[z5',z6l];
+filldraw z3r--z4--z5--z6r--
+z6l--z7--z1r--z1l--z3l--z3r
+& cycle;
+%
+%
+%
+penpos8(cap_hair,-34);
+x8=cap_amount; y8=0.74h;
+z9=(x2l-0.5cap_hair,h+apex_o);
+z9'=whatever[z9,z2r];
+z9'-z8r=whatever*(z9-z8l);
+penpos9.5(1.1cap_stem,angle(z9'-z8r));
+z9.5r=z9';
+z10=z9.5l;
+z10'-z10=whatever*(z2r-z9);
+x10'=x2l;
+filldraw z8l--z9--z2r--z10'--
+z10--z8r--z8l & cycle;
+%
+%
+%
+penpos11(cap_hair,-49);
+penpos11'(cap_hair,-49);
+penpos12(1.176cap_stem,-145);
+penpos13(1.176cap_stem,-145);
+x11=x2; y11=0.717h;
+z11'l=z2r;
+z12.5=whatever[z11l,z11'l];
+y12.5=h+apex_o;
+z13l=(w,y2);
+z12l=0.5[z12.5,z13l];
+z12.3=0.3[z12.5,z13l];
+z12.1=whatever[z11l,z12.5];
+y12.1=y12.3;
+filldraw z11l--z11'l---z12.1...
+z12.3---z12l--z13l & z13l--z13r
+& z13r---z12r...z11'r---z11r &
+z11r--z11l & cycle;
+%
+%
+%
+z4.1=whatever[z3r,z4];
+z4.2=whatever[z4,z5];
+y4.1=y4.2=0.5y4;
+filldraw z4.1{z4-z3r}..
+z4.2{z5-z4} & z4.2--z4--z4.1 &
+cycle;
+%
+%
+%
+penpos14(1.4cap_hair,-90);
+penpos15(1.4cap_hair,-90);
+penpos16(1.4cap_hair,-90);
+penpos17(1.4cap_hair,-90);
+penpos14'(1.4cap_amount,-90);
+x14=x16=x8; x15=x17=x13;
+x14'=0;
+y14'=0.475h;
+y14r=y15r=y14'l;
+y16l=y17l=y14'r;
+penstroke z14e--z15e;
+penstroke z16e--z17e;
+.endchar;
+
+.cmchar "The gothic letter Y";
+.beginchar("Y",9.167u#,cap_height#,4/3u#);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_stem,0);
+penpos4(cap_hair,0);
+penpos5(cap_hair,90);
+penpos6(cap_hair,130);
+penpos7(cap_hair,90);
+penpos8(cap_hair,0);
+penpos9(cap_hair,-90);
+x1=0.285w; y1=0.8h;%762
+z2=(x1l,0.535y1);
+z4l=(0,0.045h);
+z3=(0.5x2,0.629[y2,y4]);
+y5l=-d; x5=0.218w;
+z6l=(0.491w,0);
+z7=(0.679w,0.1h);
+z8=(0.788w,0.5y4);
+z9r=(0.63w,-d);
+z9'=(x9,y9r+2cap_hair);
+z11=(w,0.283h);
+z12=z11+(0,1.2cap_hair);
+z10=(x2,0.12h);
+z12-z13=whatever*(z11-z10);
+x13=x1r;
+z12'=whatever[z12,z13];
+x12'=x11-cap_hair;
+filldraw z9'..z9r..z9'..cycle;
+filldraw z9r{right}..z8r..z7r..
+z6r..z5r..z4r{up}...z10---z11 &
+z11--z12'--z13--z1r--z1l---
+z2...z3...z4l{down}..z5l..z6l..
+z7l..z8l..z9l{left} &
+z9l--z9r & cycle;
+%
+%
+%
+z17=(0.788w,h+apex_o);
+z14=(0,0.9h);%avant:848
+y15=h+apex_o;
+z15-z14=whatever*(z17-z1r);
+z16=whatever[z1r,z17];
+x16=x1r+2cap_amount;
+z18-z17=whatever*(z16-z15);
+x18=w; penpos18'(cap_stem,0);
+x18'r=w-cap_amount;
+y18'=y18;
+z19=whatever[z12,z13];
+z19''=whatever[z12,z13];
+x19''=x18'r;
+x19=x18'l;
+filldraw z19--z18'l--z18'r--
+z19''--z19 & cycle;
+penpos15'(cap_hair,angle(z15-z14));
+z15'r=z15;
+z15.1-z15'l=whatever*(z16-z15);
+x15.1=x13.2=x16+cap_hair;
+z15.2=whatever[z15,z16];
+x15.2=x15.1;
+filldraw z15.1--z15'l--z15'r--
+z15.2--z15.1 & cycle;
+filldraw z14--z15--z16--z1r--
+z1l & z1l{up}..{left}z14 &
+cycle;
+x13.1=x16; z13.1=whatever[z13,z12];
+z13.2=whatever[z13,z12];
+z16'=whatever[z16,z17]; x16'=x13.2;
+filldraw z13.1--z16--z16'--z13.2
+--z13.1 & cycle;
+%
+%
+%
+penpos20(1.1cap_stem,angle(z17-z16));
+z20r=z17;
+z21-z20l=whatever*(z18-z17);
+x21=x19;
+penpos17'(cap_hair,angle(z18-z17));
+z17'l=z17;
+z16''-z17'r=whatever*(z16-z17);
+x16''=x16;
+filldraw z16--z17--z17'r--z16''
+--z16 & cycle;
+filldraw z20r--z18 & z18..
+{down}(x19'',y18-0.5cap_stem) &
+(x19'',y18-0.5cap_stem)--z18'r--
+z18'l--z21--z20l--z20r & cycle;
+z11.5=whatever[z10,z11];
+x11.5=x19;
+filldraw z11..{up}
+(x19'',y11+0.5cap_stem)
+& (x19'',y11+0.5cap_stem)--
+z19''--z19--z11.5--
+z11 & cycle;
+%
+%
+%
+x31=x33=x19; x30=x32=x13.2;
+x35=x37=x2; x34=x36=-apex_o;
+penpos30(cap_hair,-90);
+penpos31(cap_hair,-90);
+penpos32(cap_hair,-90);
+penpos33(cap_hair,-90);
+penpos34(0.5cap_hair,-90);
+penpos36(0.5cap_hair,-90);
+penpos35(0.647cap_stem,-90);
+penpos37(0.647cap_stem,-90);
+y31=0.3[y18,y19];
+y33=0.6[y18,y19];
+z31-z30=whatever*dir20;
+z33-z32=whatever*dir20;
+y34=y35=0.5[y30,y31];
+y36=y37=0.5[y32,y33];
+penstroke z30e--z31e;
+penstroke z32e--z33e;
+penstroke z34e--z35e;
+penstroke z36e--z37e;
+.endchar;
+
+.cmchar "The gothic letter Z";
+.beginchar("Z",10.667u#,cap_height#,0);
+.adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(1.414cap_hair,-90);
+penpos2(1.414cap_hair,-90);
+penpos3(1.414cap_hair,-90);
+penpos4(1.414cap_hair,-90);
+penpos5(1.414cap_hair,-90);
+penpos6(1.414cap_hair,-90);
+x1=x2=x5=cap_amount;
+x3=x4=x6=w;
+y2r=-apex_o;
+y5r=y2l; y1r=y5l;
+y3l=h+apex_o; y6l=y3r; y4l=y6r;
+penstroke z1e--z3e;
+penstroke z2e--z4e;
+%
+%
+%
+z7=(0.281w,0.076h);
+z8=(0.505w,0.22h);
+z9=(0.708w,-apex_o);
+z10=(0.839w,0.103h);
+penpos11(cap_hair,0);
+x11r=w; y11=0.224h;
+penpos12(0.91cap_stem,0);
+z12r=z11r;
+filldraw z2r{z4-z2}..z7..z9..
+z11r{up}
+& z11r--z11l & z11l{down}..z10
+..z8..z2l{z2-z4} & z2l--z2r &
+cycle;
+filldraw z12r..z12l..z12r..cycle;
+%
+%
+%
+y17=y14=0.673h;
+penpos14(cap_hair,180);
+penpos15(0.88cap_stem,0);
+penpos16(cap_hair,90);
+penpos17(cap_hair,0);
+x14=0.297w;
+x17l=0; z15r=z14l;
+filldraw z15r..z15l..z15r..cycle;
+x16=0.148w; y16=0.565h;
+z18=(0.255w,0.843h);
+z19=(0.349w,h+apex_o);
+z20=(0.656w,0.758h);
+z21=(0.781w,0.892h);
+filldraw z14r{down}..z16r..z17r
+..z18..z20..z3r{z3-z1} & z3r--z3l
+& z3l{z1-z3}..z21..z19..z17l..
+z16l..z14l{up} & z14l--z14r &
+cycle;
+.endchar;
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinit.mf b/Master/texmf-dist/fonts/source/public/gothic/yinit.mf
new file mode 100644
index 00000000000..516afda9a31
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinit.mf
@@ -0,0 +1,110 @@
+% This is CMR10.MF in text format, as of Mar 31, 1986.
+% Computer Modern Roman 10 point
+if unknown cmbase: input cmbase fi
+input yintbase % -sl 15-3-1991
+
+font_identifier:="CMR"; font_size 10pt#;
+
+u#:=160/36pt#;
+v#:=160/36pt#;
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=40/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=40pt#; % height of tallest characters
+asc_height#:=40pt#; % height of lowercase ascenders
+cap_height#:=40pt#; % height of caps
+fig_height#:=40pt#; % height of numerals
+x_height#:=800/36pt#; % height of lowercase without ascenders
+math_axis#:=720/36pt#; % axis of symmetry for math symbols
+bar_height#:=320/36pt#; % height of crossbar in lowercase e
+comma_depth#:=560/36pt#; % depth of comma below baseline
+desc_depth#:=560/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=32/36pt#; % diameter of rounded corners
+fine#:=28/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+numeric m; m:=1;
+hair#:=2/36u#;
+stem#:=200/36pt#; % lowercase stem breadth
+curve#:=240/36pt#; % lowercase curve breadth
+ess#:=216/36pt#; % breadth in middle of lowercase s
+flare#:=264/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=288/36pt#; % diameter of dots
+cap_hair#:=88/36pt#; % uppercase hairline breadth
+cap_stem#:=256/36pt#; % uppercase stem breadth
+cap_curve#:=296/36pt#; % uppercase curve breadth
+cap_ess#:=280/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.6pt#; % thickness of lines in math symbols
+
+dish#:=8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=160/36pt#; % vertical distance from serif base to tangent
+jut#:=224/36pt#; % protrusion of lowercase serifs
+cap_jut#:=296/36pt#; % protrusion of uppercase serifs
+beak_jut#:=80/36pt#; % horizontal protrusion of beak serifs
+beak#:=560/36pt#; % vertical protrusion of beak serifs
+vair#:=64/36pt#; % vertical diameter of hairlines
+notch_cut#:=80pt#; % maximum breadth above or below notches
+bar#:=88/36pt#; % lowercase bar thickness
+slab#:=88/36pt#; % serif and arm thickness
+cap_bar#:=88/36pt#; % uppercase bar thickness
+cap_band#:=88/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=80pt#; % max breadth above/below uppercase notches
+serif_drop#:=32/36pt#; % vertical drop of sloped serifs
+stem_corr#:=8/36pt#; % for small refinements of stem breadth
+vair_corr#:=8/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=64/36pt#; % amount of overshoot for curves
+apex_o#:=64/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+mode_setup;
+font_setup;
+u:=160/36pt;
+v:=160/36pt; uv:=u;
+boolean zero_depth;
+zero_depth:=true;
+%readfrom("yinitbase"); % -sl 15-3-1991
+generate yinitA;
+generate yinitB;
+generate yinitC;
+generate yinitD;
+generate yinitE;
+generate yinitF;
+generate yinitG;
+generate yinitH;
+generate yinitJ;
+generate yinitK;
+generate yinitL;
+generate yinitM;
+generate yinitN;
+generate yinitO;
+generate yinitP;
+generate yinitQ;
+generate yinitR;
+generate yinitS;
+generate yinitT;
+generate yinitU;
+generate yinitV;
+generate yinitW;
+generate yinitX;
+generate yinitY;
+generate yinitZ;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitA.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitA.mf
new file mode 100644
index 00000000000..533331665c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitA.mf
@@ -0,0 +1,139 @@
+.cmchar "The letter A";
+.beginchar("A",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0);
+penpos1(hair,90); penpos1'(hair,-270); penpos2(hair,0); penpos3(hair,-40);
+penpos4(hair,-40); penpos7(1.5hair,180); penpos8(hair,-135); penpos13(hair,-62);
+z1=(.3u,-.2v); z2=(0,.2v); z3=(.5u,v); z4=(1.35u,1.75v); z5=(1.45u,2.4v);
+z6=(.9u,2.8v); z7=(0,2.1v); z8=z3; z9=(1.7u,.5v); z10=(3.3u,1.25v);
+z11=(4.1u,2.9v); z12=(4.1u,4.8v); z13=(4.9u,7.2v); z14=(3.4u,5v); z15=(3.5u,3v);
+z16=(3u,1.45v); z17=z9+(0,vround(1.5hair)); z32=(.1u,2v); z31=(1.3u,3.15v);
+z30=(2.2u,2.7v); z29=(2.6u,2.7v); z1'=(.5[x2,x1],-.2v); penstroke
+z1e{left}...z2e{up}...z3e...z4e; fill z4r{z4-z3}...{right}z29 &
+z29{left}...{z31-z29}z30...{left}z31.. {down}z7r & z7r--z7l &
+z7l{up}...z6{right}...z5{z4-z6}...{z3-z4}z4l & z4l--z4r & cycle; penstroke
+z7e{down}..{(1.6u,0)-(0,1.5v)}z8e; fill
+z8r{(1.6u,0)-(0,1.5v)}...z9{right}...{(5u,2.9v)-(2.1u,0)}z10...
+z11{up}...z12{up}...z13r{(6.7u,8v)-(0,5v)} & z13r--z13l &
+z13l{(0,5.3v)-(7u,8v)}...z14{down}...z15{down}...z16{(2u,0)-(5u,4.1v)}
+...z17{left}...z8l{(0,1.5v)-(1.6u,0)} & z8l--z8r & cycle; z33=(6.45u,7.65v);
+z34=(8.55u,5.75v); z35=(6.6u,3.4v); z36=(4.9u,5v); z37=z33-(0,1.2v);
+z38=z34-(u,.35v); z39=z35+(0,.9v); z40=z36+(.8u,0); z41=z37-(0,.65v);
+z42=z38-(.6u,0); z43=(6.7u,5v); penpos33(hair,-90); penpos34(hair,-180);
+penpos35(hair,-270); penpos36(hair,0); penpos37(hair,-90); penpos38(hair,-180);
+penpos39(hair,-270); penpos40(hair,0); penpos41(hair,-90); penpos42(hair,-180);
+penpos43(hair,-270); penstroke
+z13e...z33e...z34e...z35e...z36e...z37e...z38e...z39e...z40e...z41e...
+z42e...z43e; z44=(6.8u,7.8v); z45=(7.25u,7.8v); z46=(7.9u,8.05v); z47=(8u,7.6v);
+z48=(6.9u,6.75v); z49=(5.1u,7.6v); z50=(3.2u,8.25v); z51=(.95u,6.1v);
+z52=(2.7u,4.5v); z53=(4.45u,6v); z54=(4u,7v); z55=(3.25u,7.35v); z56=(2.6u,7v);
+z57=(2.7u,6.5v); z59=(2.2u,5.65v); z60=(1.9u,5.9v); penpos44(hair,-110);
+penpos45(.35u,-30); penpos46(hair,-110); penpos47(hair,-180);
+penpos48(.35u,-270); penpos49(.85u,45); penpos50(.5v,-270);
+penpos51(1.5hair,-180); penpos52(hair,-90); penpos53(hair,0); penpos54(hair,50);
+penpos55(hair,90); penpos56(.45u,-195); penpos57(.65u,-120);
+penpos58(.65u,-180); z58r=z57r; penpos59(1.5hair,-270); penpos60(hair,0);
+penstroke z44e{(7.5u,6.4v)-(5.4u,9v)}...z45e{dir45}...
+z46e{(7.5u,6.4v)-(5.4u,9v)}...z47e{down}...z48e...z49e...z50e...z51e...z52e...
+z53e...z54e...z55e...z56e...z57e...z58e...z59e...z60e; z61=(6.8u,6.6v);
+z62=(6.5u,5.5v); z63=(6.5u,2.6v); z64=(8.4u,1.9v); z64'=z64-(hair,0);
+z65=(7u,0.2v); z66=(6.7u,0.7v); z67=(5.8u,2v); z68=(5.8u,5v); z69=(7.6u,1.25v);
+unfill z61{(0,0.7v)-(5u,5v)}...z62{down}---z63{down}...z69{right}...
+z64'{up}--z64 & z64{down}... z65{down} &
+z65{up}...z66{(0,3.3v)-(8.5u,0)}...z67{up}...z68{(6.5u,10v)-
+(5.1u,0)}...z61{(5u,5v)-(0,0.7v)} & cycle; z70=(4.5u,2.65v); z71=(4.1u,3.25v);
+z72=(4.6u,3.7v); z73=(5.1u,3.6v); z74=(5.7u,4.1v); z75=(5.3u,4.5v);
+penpos70(hair,90); penpos71(hair,0); penpos72(.45v,-105); penpos73(.45v,-105);
+penpos74(hair,0); penpos75(hair,90); penstroke
+z70e{left}...z71e{up}...z72e...z73e...z74e{up}...{left}z75e; z76=(7.65u,3.7v);
+z76'=(6.2u,2.75v); z77=(4.1u,0.8v); z78=(4.9u,0); z138=(5.4u,1.1v);
+z79=(5.6u,0.7v); z80=(5.05u,1.3v); z81=(4.65u,.7v); z82=(4.95u,.45v);
+z83=(5.3u,.7v); z84=(5.05u,.9v); penpos76(hair,-233); penpos76'(hair,-244);
+penpos77(hair,-180); penpos138(hair,45); penpos78(hair,-90); penpos79(hair,0);
+penpos80(hair,90); penpos81(hair,180); penpos82(hair,-90); penpos83(hair,0);
+penpos84(hair,90); penstroke
+z76e...z76'e...z77e...z78e...z79e...z138e...z80e...z81e...z82e...z83e...z84e;
+z85=(-.1u,1.1v); z86=(1.7u,0.2v); z87=(3.8u,1.4v); z88=(4.5u,3.9v);
+z89=(4.65u,6v); z90=(6.4u,7.15v); z90'=(7.5u,6.7v); z89'=(7.9u,6.1v);
+penpos85(hair,-135); penpos86(hair,-90); penpos87(hair,-35); penpos88(hair,0);
+penpos89(hair,-35); penpos90(hair,-90); penpos90'(hair,-135);
+penpos89'(hair,-180); penstroke
+z85e...z86e...z87e...z88e...z89e...z90e...z90'e...z89'e; z91=(1u,2.2v);
+z92=(.75u,2.4v); z93=(0.35u,1.7v); z94=(1.5u,0.9v); z95=(2.9u,2.75v);
+z95'=(2.6u,4.2v); z96=(2.5u,4.6v); penpos91(hair,0); penpos92(hair,90);
+penpos93(hair,180); penpos94(1.5hair,-90); penpos95(.5u,0); penpos95'(u,33);
+penpos96(1.7u,34); penpos95.3(hair,90); penpos95.4(hair,-90); z95.3r=z96l;
+z95.4l=z96r; penstroke z91e...z92e...z93e...z94e{right}; filldraw
+z94r{right}..z95r..z95'r ..z95.4r{z96r-z96l}--z95.4l--
+z95.3r--z95.3l{z96r-z96l}..z95'l ..z95l..z94l{left}--z94r & cycle;
+z97=(1.2u,1.2v); z97'=(2.3u,2.4v); z98=(1.1u,4.3v); z98'=(-.1u,3.6v);
+z99=(.3u,3.1v); z99'=(.3u,3.6v); penpos97(hair,-90); penpos97'(hair,0);
+penpos98(hair,90); penpos98'(hair,180); penpos99(hair,-90); penpos99'(hair,90);
+penstroke z97e{right}...z97'e...z98e...z98'e...z99e...z99'e; z100=(7.25u,0);
+z101=(7.4u,0.4v); z101'=(8.3u,0.3v); z102'=(8.1u,0); z102=(8.65u,1.9v);
+z103=(7.9u,2.7v); z103'=(7.1u,2.1v); z104=(7.7u,1.45v); z104'=(7.8u,2.45v);
+z105=(7.45u,2.2v); z105'=(7.8u,1.9v); z106=(8u,2.05v); z107=(8.15u,2.1v);
+z108=(6.9u,2.1v); z109=(6.9u,4.1v); z110=(8u,5.4v); z111=(8.8u,4.6v);
+z112=(8.6u,4v); z113=(8.1u,3.3v); z114=(8.3u,3v); z115=(8.1u,3.8v);
+z116=(7.5u,4.3v); z117=(8u,4.8v); z118=(8.4u,4.4v); z119=(8u,4.1v);
+z120=(7.6u,3.2v); z121=(7.9u,2.9v); z100'=(8.3u,1.1v); penpos100(hair,-20);
+penpos101(hair,-53); penpos101'(hair,-180); penpos102'(hair,-270);
+penpos102(hair,0); penpos103(hair,90); penpos103'(hair,-180);
+penpos104(hair,-90); penpos104'(hair,90); penpos105(3hair,-180);
+penpos105'(0.2v,-90); penpos106(hair,-44); penpos107(hair,-116);
+penpos108(hair,0); penpos109(hair,0); penpos110(hair,-90); penpos111(hair,-180);
+penpos112(hair,-225); penpos113(hair,-180); penpos114(hair,-90);
+penpos115(hair,90); penpos116(hair,0); penpos117(hair,-90);
+penpos118(hair,-180); penpos119(hair,90); penpos120(hair,-90);
+penpos121(hair,-180); penpos100'(hair,-45); penstroke
+z100e...z101e{(1,1)-(0,0)}...z101'e...{left}z102'e; z640=z64; penpos640(hair,0);
+penstroke z101e{(1,1)-(0,0)}...z100'e...z102e...z103e...z103'e...
+z104e...z640e...z104'e...z105e...z105'e...z106e...z107e; z108'=z104;
+penpos108'(hair,90); penstroke
+z108'e{left}...z108e{up}...z109e{up}...z110e...z111e...z112e
+...z113e...{right}z114e; penstroke z112e...z115e...z116e...z117e...z118e...z119e;
+penstroke z108e{up}...z120e{right}...{down}z121e; z122=(2.2u,4.2v);
+z123=(0.6u,5.4v); z124=(0.4u,6.4v); z125=(0.7u,7.5v); z126=(1.65u,8.5v);
+z127=(0.9u,8.3v); z128=(0.6u,8.5v); z129=(0.4u,8.4v); z130=(0.1u,8.2v);
+z131=(-0.1u,8.5v); z132=(5u,8.35v); z133=(5.4u,8.6v); z134=(5.9u,7.9v);
+z135=(6.4u,8.55v); z136=(6.75u,8.3v); z137=(6.5u,8v); z139=(5.1u,1.7v);
+z140=(5.4u,1.95v); z135'=(7.7u,7.9v); z136'=(6.9u,7.25v); penpos122(hair,71);
+penpos123(hair,25); penpos124(hair,0); penpos125(hair,-26); penpos126(hair,0);
+penpos127(hair,0); penpos128(2.5hair,90); penpos129(0.3u,150);
+penpos130(2hair,90); penpos131(hair,0); penpos132(hair,180); penpos133(hair,90);
+penpos134(hair,20);penpos135(hair,-90); penpos136(hair,-180);
+penpos137(hair,90); penpos139(hair,0); penpos140(hair,-90);
+penpos135'(hair,-180); penpos136'(hair,90); penstroke z122e...z123e...z124e{up};
+penstroke z125e{dir70}...{up}z126e; penstroke
+z124e{up}...z125e...z127e...z128e...z129e...z130e...{up}z131e; penstroke
+z134e{(4u,10v)-(10u,3.8v)}...z133e...{down}z132e; penstroke
+z135'e{down}...z136'e...z134e{(4u,10v)-(10u,3.8v)}
+...z135e...z136e...{left}z137e; penstroke
+z79e{up}...z138e...z139e...{right}z140e; z141=(3.2u,7v); z142=(3.7u,6.1v);
+z143=(3.2u,5.4v); z144=(2.3u,5.2v); z145=(1.35u,6.3v); z146=(3u,7.7v);
+z147=(4.5u,7.1v); penpos141(hair,-90); penpos142(hair,-180);
+penpos143(hair,-240); penpos144(hair,90); penpos145(hair,0);
+penpos146(hair,-90); penpos147(hair,-131); penstroke
+z141e{right}...z142e...z143e...z144e...z145e...z146e...
+{(6.7u,5v)-(1.2u,10v)}z147e; kouki(126,1,1); kouki(132,6,1); kouki(137,5,1);
+kouki(141,7,1); kouki(60,2,1.5); kouki(99',7,1); kouki(75,7,2);
+kouki(70,6,2.25); kouki(140,8,1); kouki(84,7,1); kouki(102',5,1.5);
+kouki(121,3,1.5); kouki(114,6,1); kouki(119,5,1.5); kouki(89',3,1);
+kouki(1,6,1.5); z148=(5.8u,8.7v); z149=(4.7u,1.6v); mpalla(148,1);
+mpalla(149,1.5); mpalla(123,2); z150.1=(4.3u,4.95v); z150.2=(5.1u.,4.95v);
+z150.3=(5.1u,4.7v); z150.4=(4.3u,4.7v); filldraw
+z150.1--z150.2--z150.3--z150.4--cycle; z34.1=z34+(-.15u,.1v);
+z34.2=z34+(.15u,.1v); z34.3=z34+(.15u,-.1v); z34.4=z34+(-.15u,-.1v); filldraw
+z34.1--z34.2--z34.3--z34.4--cycle; z200=z79; ka(200,180); z201=(6.2u,0);
+ka(201,-90); z202=(x201,0.8v); ka(202,90); z203=(x79+0.4u,0.65[y201,y202]);
+ka(203,180); kouki(203,4,1); z201'=(x201+0.3u,y203); ka(201',0); penstroke
+z200e{down}..z201e{right}.. z202e{left}..z203e{down}; z204=z77; ka(204,180);
+z205=(3.6u,0); ka(205,90); z206=(x205-0.05v,y83+0.05v);
+z207=(x205+0.05u,0.35[y205,y206]); ka(206,-90); ka(207,90); kouki(207,5,1);
+penstroke z204e{down}..z205e{left}.. z206e{right}..z207e{left}; z220=(5.45u,3v);
+z221=(u,3.7v); z225=(x34,y135); z226=(x34+0.1u,y135-0.6v);
+z227=(x34,y125-0.5v); z228=(x34+0.1u,y227+0.5v); ka(225,-90); ka(226,90);
+ka(227,90); ka(228,-90); kouki(226,5,1); kouki(228,7,1); z47''=z47; ka(47'',0);
+penstroke z228e{right}..z227e{left} ..z47''e{up}..z225e{right}..z226e{left};
+z230=(x112,0.5[y101',y100']); mpalla(230,1.5); penlabels(range 1 thru 230);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitB.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitB.mf
new file mode 100644
index 00000000000..388ed974840
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitB.mf
@@ -0,0 +1,135 @@
+.cmchar "The letter B"; .beginchar("B",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0); z1=(.9u,.9v); z2=(1.3u,1.1v); z3=(1.1u,1.4v);
+z4=(0.9u,1.7v); z5=(1.3u,1.9v); z6=(1.85u,1.3v); z7=(1.1u,.5v); z8=(0.2u,1.1v);
+z8'=(0,1.5v); z9=(1.4u,2.8v); z10=(2.8u,2.2v); z10'=(4.35u,.7v); z11=(6.3u,v);
+z12=(7.55u,3.95v); z13=(4.9u,4.2v); z14=(4.3u,3.5v); z15=(5.5u,1.7v);
+z16=(6.8u,3v); z17=(6u,3.9v); z18=(5.2u,3.3v); z19=(5.4u,2.9v);
+z20=(5.75u,2.95v); z21=(6.05u,2.7v); z22=(5.9u,2.45v); penpos1(hair,-110);
+penpos2(.3u,0); penpos3(.4u,74); penpos4(.3u,0); penpos5(1.5hair,-90);
+penpos6(hair,-180); penpos7(hair,90); penpos8(1.5hair,12); penpos8'(hair,0);
+penpos9(.2v,-84); penpos10(.5[u,v],-144); penpos10'(0.55u,-119);
+penpos11(1.5hair,-61); penpos12(.9u,30); penpos13(.2v,-225);
+penpos14(hair,-180); penpos15(hair,-90); penpos16(hair,0); penpos17(1.2hair,90);
+penpos18(.3u,-180); penpos19(.6v,-90); penpos20(0.5v,-73); penpos21(.2u,-180);
+penpos22(hair,110); penstroke
+z1e{(2.6u,0)-(0,1.4v)}...z2e...z3e...z4e...z5e...z6e...z7e...
+z8e...z9e{right}...z10e...z10'e...z11e...z12e...z13e...z14e...z15e...z16e...
+z17e...z18e...z19e...z20e...z21e...{(2u,0)-(9.8u,5v)}z22e; z23=(1.85u,2.25v);
+z24=(4.8u,0.05v); z25=(5.3u,0.07v); z26=(5.7u,0.15v); z27=(8.6u,3.15v);
+z28=(7.2u,5.35v); z29=(6.8u,5.4v); z30=(6.5u,5.3v); z31=(2.3u,1.3v);
+z32=(1.3u,0); z33=(0.9u,0.2v); z34=(2.6u,0.8v); z23'=(2.2u,1.7v);
+z34'=(2.5u,0.5v); z35=(2.1u,0.2v); z35'=(3u,-0.1v); z36=(3.1u,0.4v);
+z37=(3.3u,0.4v); penpos23(hair,-144); penpos24(hair,-90); penpos25(hair,-90);
+penpos26(hair,-75); penpos27(hair,0); penpos28(hair,82); penpos29(hair,90);
+penpos30(hair,98); penpos31(hair,-180); penpos32(hair,90); penpos33(hair,33);
+penpos34(hair,-180); penpos34'(hair,-180); penpos35(hair,90);
+penpos35'(hair,-90); penpos36(hair,-90); penpos37(hair,-45);
+penpos23'(hair,-144); penstroke
+z23e{(3.3u,0)-(0,5v)}...z23'e...z24e...z25e...z26e...z27e...z28e...z29e...
+{(0,4.5v)-(3.9u,5v)}z30e; penstroke
+z23'e{(3.7u,0)-(0,4.3v)}...z31e...z32e...{(0,1.8v)-(u,0)}z33e; penstroke
+z23'e{(3.5u,0)-(0,4.5v)}...z34e...z34'e...{left}z35e; penstroke
+z34'e...{right}z35'e; penstroke
+z23'e{(3.3u,0)-(0,5v)}...{right}z36e..z36e...z37e; z38=(6.25u,0.3v);
+z39=(7.55u,1.3v); z40=(8.4u,0.65v); z41=(7.8u,0); z42=(7.4u,0.4v);
+z43=(7.75u,0.75v); z44=(7.9u,0.5v); z45=(6.65u,1.7v); z46=(5.9u,2.35v);
+z47=(5.2u,1.75v); z48=(4.85u,1.05v); z49=(5.75u,1.25v); z50=(6.05u,1.65v);
+penpos38(hair,-35); penpos39(hair,-90); penpos40(hair,-180); penpos41(hair,90);
+penpos42(hair,0); penpos43(hair,-90); penpos44(hair,-180); penpos45(hair,0);
+penpos46(hair,90); penpos47(hair,-180); penpos48(hair,90); penpos49(hair,-90);
+penpos50(hair,0); penstroke
+z38e{(10u,5.6v)-(6u,0)}...z39e...z40e...z41e...z42e...z43e...z44e;
+kouki(44,3,1.25); penstroke z41e{left}...{up}z38e &
+z38e{(10u,5.6v)-(6u,0)}...z45e...z46e..z47e ...{left}z48e; kouki(48,5,1);
+penstroke z47e{down}...z49e...{up}z50e; kouki(50,1,1.5); mpalla(24,1);
+mpalla(25,1); mpalla(26,1); z51=(1.85u,3.7v); z52=(1.5u,3.9v); z53=(1.15u,3.5v);
+z54=(1.7u,3.1v); z55=(2.3u,3.75v); z56=(1.45u,4.55v); z57=(0.3u,3.5v);
+z58=(1.6u,2.2v); z59=(3.1u,3.4v); z60=(3.45u,4.8v); z61=(2.45u,6.25v);
+z62=(2.05u,6.35v); z63=(2.6u,2.4v); z64=(4.3u,5.5v); z65=(2.5u,7.75v);
+z66=(1.6u,7.5v); z67=(0.7u,7.5v); z68=(0.35u,8.75v); z68'=(0.7u,8.85v);
+z69=(1.1u,8.6v); z70=(1.4u,8.35v); z71=(1.6u,8.5v); z60'=(3.1u,5.7v);
+penpos51(hair,0); penpos52(hair,90); penpos53(hair,-180); penpos54(hair,-90);
+penpos55(hair,0); penpos56(hair,90); penpos57(hair,-180); penpos58(hair,-90);
+penpos59(0.1u,-45); penpos60(0.5u,0); penpos61(1.2u,37); penpos62(1.8u,37);
+penpos63(hair,-42); penpos64(0.75u,0); penpos65(0.9v,90); penpos66(0.9v,110);
+penpos67(0.7v,62); penpos68(1.5hair,-45); penpos68'(hair,-90);
+penpos69(0.35u,-150); penpos70(2hair,-90); penpos71(hair,0); penpos60'(0.7u,38);
+penstroke z51e{up}...z52e...z53e...z54e...z55e...z56e...z57e...z58e...z59e...
+z60e...z60'e...z61e...{(0,7.6v)-(4.6u,5v)}z62e; penstroke
+z63e{(5u,4.75v)-(0,0)}...z64e...z65e...z66e...z67e...z68e...z68'e...
+z69e...z70e...{up}z71e; kouki(51,3,2); z72=(7.8u,5.8v); z73=(8.05u,5.6v);
+z74=(8.4u,5.9v); z75=(8u,6.3v); z76=(7.1u,5v); z77=(4.7u,2.7v); z78=(2.9u,4.8v);
+z79=(3.9u,7v); z80=(5.6u,7.9v); z81=(6.65u,7.65v); z82=(7.05u,6.95v);
+z83=(7.3u,6.35v); penpos72(hair,-180); penpos73(hair,-90); penpos74(hair,0);
+penpos75(hair,90); penpos76(hair,-180); penpos77(hair,90); penpos78(hair,0);
+penpos79(hair,-39); penpos80(0.5v,-90); penpos81(0.875u,-134);
+penpos82(1.1u,-144); penpos83(1.5u,-141); penstroke
+z72e{down}...z73e...z74e...z75e{left}...z76e{down}...z77e{left}...
+z78e{up}...{(7.6u,10v)-(0,3.7v)}z79e; kouki(72,2,1.3); z84l=z82l; z84r=z83;
+z85=(8.15u,7.15v); z86=(8.35u,7.7v); z87=(7.9u,8.3v); z88=(7.6u,8v);
+z89=(7.7u,7.95v); z90=(8.1u,7.8v); z91=(7.7u,7.5v); z92=(7.2u,8v);
+z93'=(8.45u,8.4v); z93=(7.9u,8.7v); z94=(8.6u,7.7v); z94'=z30;
+penpos85(2hair,-53); penpos86(hair,0); penpos87(hair,90); penpos88(1.5hair,-180);
+penpos89(0.3v,-90); penpos90(hair,-180); penpos91(hair,90); penpos92(hair,0);
+penpos93(hair,-90); penpos93'(hair,-135); penpos94(hair,-180);
+penpos94'(hair,-236); penstroke
+z85e{(10u,9.5v)-(0,0.6v)}...z86e{up}..z87e{left}..z88e...z89e...z90e{down}..
+z91e{left}..z92e...z93e...z93'e...z94e...{(0,1.1v)-(10u,7.9v)}z94'e; z93.2=z93';
+z92'=z93.2+(-.1u,.6v); penpos93.2(hair,39); penpos92'(hair,-90); penstroke
+z93.2e{(7.2,10)-(10,6.5)}...{right}z92'e; kouki(92',8,1); z95=(6.35u,5.6v);
+penpos95'(hair,-225); z95'r=z13r; penpos95(1.5hair,128.5); penstroke
+z95e{(0,0.4v)-(10u,8.6v)}...z95'e; filldraw
+z79l{(7.6u,10v)-(0,3.7v)}...z80l...z81l...
+z82l{(8.9u,5v)-(5.7u,10v)}...{(10u,8.2v)-(0,2.6v)}z85l & z85l--z85r & z85r--z95l
+& z95l--z95r & z95r{z83r-z95l}...{(6.4u,10v)-(7.25u,0)}z82r...z81r...z80r...
+{(0,3.7v)-(7.6u,10v)}z79r & z79r--z79l & cycle; z100=(2.7u,2.3v);
+z101=(4.5u,4.25v); z102=(5.05u,6.1v); z103=(4.6u,7.6v); z104=(2.35u,8.8v);
+z105=(0.2u,6.7v); z106=(1.9u,5.1v); z107=(3u,6.5v); z108=(2.2u,7.1v);
+z109=(1.3u,6.3v); z110=(1.9u,5.75v); z111=(2.4u,6.3v); z112=(2u,6.7v);
+z113=(1.7u,6.5v); penpos100(hair,-51); penpos101(hair,-30); penpos102(hair,0);
+penpos103(hair,25); penpos104(hair,90); penpos105(hair,180);
+penpos106(hair,-90); penpos107(hair,0); penpos108(hair,90); penpos109(hair,180);
+penpos110(hair,-90); penpos111(hair,0); penpos112(hair,90); penpos113(hair,180);
+kouki(113,4,1); penstroke
+z100e{(6.4u,5v)-(0,.3v)}...z101e...z102e...z103e...z104e...z105e...
+z106e...z107e...z108e...z109e...z110e...z111e...z112e...{down}z113e;
+z106'=(7.65u,6.25v); mpalla(106',2); z114=(6.1u,6.1v); z115=(4.2u,5.2v);
+z116=(5.3u,4.1v); z117=(6.2u,5.1v); z118=(5.6u,5.7v); z120=(5.35u,6.9v);
+z121=(5.8u,7.25v); z122=(6.2u,6.8v); z123=(5.85u,6.6v); z114'=(5.4u,8.9v);
+z115'=(5.7u,8.65v); z116'=(5.5u,8.3v); z117'=(4.1u,9.1v); z29'=z76;
+z119=(5.3u,5.3v); penpos29'(hair,0); penpos114(hair,65); penpos115(hair,-180);
+penpos116(hair,-90); penpos117(hair,0); penpos118(hair,90); penpos119(hair,180);
+penpos120(hair,0); penpos121(hair,-90); penpos122(hair,-180);
+penpos123(hair,90); penpos114'(hair,-90); penpos115'(hair,-180);
+penpos116'(hair,90); penpos117'(hair,20); penstroke
+z103e{(4.7u,10v)-(5.7u,5v)}---z117'e; penstroke
+z103e{(4.7u,10v)-(5.7u,5v)}...z114'e...z115'e...{left}z116'e; kouki(116',5,1);
+penstroke z29'e{up}...z114e...z115e...z116e...z117e...z118e... {down}z119e;
+kouki(119,4,2); mpalla(106,1.5); z125=(2.25u,2.65v); z126=(1.85u,5.55v);
+z127=(1.05u,4.8v); z128=(1.6u,4.2v); z129=(2.1u,4.7v); z130=(1.8u,5v);
+mpalla(27,1.5); penpos125(hair,-38); penpos126(hair,90); penpos127(hair,180);
+penpos128(hair,-90); penpos129(hair,0); penpos130(hair,90); kouki(130,7,1.5);
+penstroke z125e{(4.3u,5v)-(0,0)}...z78e...
+z126e...z127e...z128e...z129e...{left}z130e; penstroke
+z114e{(0,8v)-(9.3u,5v)}...z120e...z121e...{left}z123e; kouki(123,5,1.5);
+z131=(3.7u,3.1v); z132=(3.9u,2.6v); z133=(3.6u,2.3v); z134=(3.4u,2.4v);
+z135=(0.3u,7.8v); z136=(-0.2u,7.5v); z137=(-0.5u,7.7v); z138=(7.8u,1.3v);
+z139=(8.6u,1.8v); penpos131(hair,-131); penpos132(hair,-180);
+penpos133(hair,90); penpos134(hair,0); kouki(134,2,1.2); penpos135(hair,-230);
+penpos136(hair,90); penpos137(hair,0); kouki(137,2,1.2); penpos138(hair,-42);
+penpos139(hair,-90); kouki(139,8,1.5); penstroke
+z131e{(7u,0)-(0,6.7v)}...z132e...z133e...{up}z134e; penstroke
+z135e{(0,0)-(5u,5v)}...z136e...{up}z137e; penstroke
+z138e{(10u,3.5v)-(6.6u,0)}...{right}z139e; z200=(-0.3u,2.9v);
+z201=z200+(-0.15u,0.5v); z202=z200+(1.3u,0.5v); triaina(200,201,202,0.6);
+z210=(1.1u,6.8v); z211=z210+(0.6u,-1.2v); z212=z210+(-1.8u,-1.1v);
+triaina(210,211,212,0.4); z207=(3.75u,8.3v); z208=z207+(-0.15u,0.55v);
+z209=z207+(1.1u,0.3v); triaina(207,208,209,0.8); kouki(35',6,1.2);
+z220=0.5[z14,z10'l]; mpalla(220,2); z240=z114; penpos240(0.25u,-35);
+penpos241(0.6v,55); z241=z114; z240.1=z241r; z240.2=z241l;
+penpos240.1(0.25u,-35); penpos240.2(0.25u,-35); penstroke z240.1e--z240.2e;
+z250=((8.4u,0)--(8.4u,9v)) intersectionpoint (z27{up}..z28..z29);
+z251=(8.3u,5.1v); ka(250,45); ka(251,0); penstroke z250e{dir110}..z251e{up};
+kouki(251,2,1.2); kouki(35,5,1); penlabels(range 1 thru 250);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitC.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitC.mf
new file mode 100644
index 00000000000..8f5ecd77ea3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitC.mf
@@ -0,0 +1,122 @@
+.cmchar "The letter C";
+.beginchar("C",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(3.4u,6.6v); z2=(1.75u,3.85v); z3=(2.7u,1.7v); z4=(4.7u,.85v); z5=(6.6u,1.5v);
+z6=(7.55u,3.4v); z7=(6.65u,4.3v); z8=(6.2u,4v); penpos1(hair,116);
+penpos2(.65u,-180); penpos3(.9*.5[u,v],-135); penpos4(.9v,-90);
+penpos5(.6*.5[u,v],-55); penpos6(1.5hair,0); penpos7(hair,90);
+penpos8(hair,180); kouki(7,7,3); penstroke
+z1e{(0,4.9v)-(5u,7.4v)}...z2e...z3e...z4e...z5e...z6e...{left}z7e; z9=(4u,7.2v);
+z10=(1.05u,3.5v); z11=(4.65u,0); z12=(7.9u,2.9v); z13=(7.9u,3.55v);
+z14=(2.7u,7.2v); z15=(2.4u,7.1v); z16=(2.7u,6.8v); z17=(3.15u,6.55v);
+z18=(2.6u,5.95v); z19=(1.8u,6.75v); z20=(2.65u,7.7v); z21=(4u,6.5v);
+z22=(2.5u,5.05v); z23=(0.85u,6.55v); z24=(2.9u,8.55v); z25=(5.3u,7.4v);
+z26=(6.1u,4.7v); z27=(4.25u,2.5v); z28=(3.1u,3.3v); z29=(3.5u,3.8v);
+z30=(3.95u,3.6v); penpos9(hair,95); penpos10(hair,180); penpos11(hair,-90);
+penpos12(hair,0); penpos13(hair,4); penstroke
+z9e{(0,6.15v)-(10u,8.1v)}...z10e...z11e...z12e... {(7.2u,9v)-(8.1u,0)}z13e;
+penpos14(hair,90); penpos15(1.5hair,180); penpos16(.3u,-90);
+penpos17(1.5hair,180); penpos18(hair,90); penpos19(hair,0); penpos20(hair,-90);
+penpos21(hair,-90); penpos22(hair,90); penpos23(hair,0); penpos24(hair,-90);
+penpos25(hair,-146); penpos26(hair,-180); mpalla(20,2); mpalla(26,1.5);
+penpos27(hair,90); penpos28(1.2hair,0); penpos29(0.35v,-90); penpos30(0.5u,-180);
+penpos29'(0.5u,-135); z29'r=z29r; penstroke
+z14e{left}...z15e{down}...z16e{right}...z17e{down}...z18e...z19e...
+z20e...z21e...z22e...z23e...z24e...z25e...z26e{down}...z27e...{up}z28e; filldraw
+z28r{up}...{down}z30r...{up}z30l...{down}z28l & z28l--z28r & cycle;
+z31=(4.3u,7.7v); z32=(6u,8.5v); z33=(7.4u,7.4v); z34=(5.8u,6.55v);
+penpos31(hair,-58); penpos33(.15v,-63); penpos34(hair,-243); filldraw
+flex(z31l,(5.6u,8.1v),z32) & flex(z32,(6.45u,7.75v),z33l) & z33l--z33r &
+z33r--z34l & z34l--z34r & flex(z34r,(5.9u,7.4v),z31r) & z31r--z31l & cycle;
+z38=(3.9u,7.2v); z39=(4.1u,6v); z40=(5.1u,5.25v); z41=(5.5u,4.4v);
+penpos38(0.45u,180); penpos39(0.95u,-132); penpos40(0.95u,-132);
+penpos41(0.7u,-173); z31'=z31; penpos31'(hair,122); penstroke
+z31'e{z31-z32}...z38e...z39e...z40e...z41e...{left}z27e; z42=(3.3u,4.9v);
+z43=(3.8u,4.8v); z44=(4.75u,3.6v); penpos42(1.4*.5[u,v],45); penpos43(0.7v,65);
+penpos44(0.3u,0); filldraw flex(z42l,z42+(0.05u,-0.05v),z42r) & z42r{down}...
+{(7.8u,3v)-(0,7.4v)}z43r...{down}z44r & z44r--z44l & z44l{up}...z43l...
+{(0,3.3v)-(10u,7.2v)}z42l & cycle; z45=(4u,2.7v); z46=(3.3u,3.3v);
+penpos45(hair,-90); penpos46(hair,180); penstroke z46e{down}...z45e...{up}z44e;
+z47=(3.9u,3.7v); z48=(5.3u,2v); z48'=(7.4u,2.5v); z49=(8.8u,1.35v);
+z50=(7.85u,0.3v); z51=(7u,1.2v); z52=(7.7u,1.85v); z53=(8.35u,1.25v);
+z54=(7.85u,0.7v); z55=(7.45u,1.1v); z56=(7.6u,1.2v); z57=(7.8u,1.15v);
+z58=(7.95u,1.15v); z59=(8.05u,1.4v); penpos47(hair,180); penpos48(hair,-90);
+penpos48'(hair,-90); penpos49(hair,-180); penpos50(hair,90); penpos51(hair,0);
+penpos52(hair,-90); penpos53(hair,-180); penpos54(hair,90); penpos55(hair,0);
+penpos56(0.3v,-90); penpos57(0.25v,-135); penpos58(0.2v,-90); penpos59(hair,0);
+penstroke z34e{z34-z33}...z47e...z48e{right}...{right}z48'e...z49e...z50e...
+z51e...z52e...z53e...z54e...{up}z55e; kordella(55,59); z60.1=(0,0.5v);
+z61=(0.55u,0); z62=(1.25u,0.75v); z63=(u,2.15v); z64=(2u,3.3v); z65=(3.5u,2v);
+z66=(1.9u,0.55v); z67=(0.55u,2.2v); z68=(3.4u,4.25v); z69=(4.8u,3.4v); z68'=z68;
+z70=(1.8u,4.1v); z71=(0.25u,5.2v); z72=(0.8u,5.7v); z73=(1.2u,5.3v);
+z74=(0.85u,4.95v); z75=(0.55u,5.25v); z60=(0.5u,0.95v); z60'=z60;
+z76=(0.8u,5.45v); penpos60(hair,90); penpos60'(hair,-90); kouki(60',8,2);
+penpos60.1(hair,-180); penpos61(hair,-90); penpos62(hair,0); penpos63(hair,0);
+penpos64(hair,-90); penpos65(hair,-180); penpos66(hair,90); penpos67(hair,0);
+penpos68(hair,-90); penpos69(hair,-148); penpos68'(hair,90); penpos70(hair,90);
+penpos71(hair,0); penpos72(hair,-90); penpos73(hair,180); penpos74(hair,90);
+penpos75(hair,0); penpos76(hair,-90); kouki(76,8,1); penstroke
+z60e{left}...z60.1e...z61e...z62e{up}...{up}z63e...z64e...z65e...z66e...
+z67e{up}...{right}z68e...{(7.7u,0)-(3.9u,5v)}z69e; penstroke
+z68'e{left}...z70e{left}...z71e...z72e...z73e...z74e...z75e... {right}z76e;
+z77=(6.3u,3v); z78=(5.9u,3.3v); z79=(5.6u,3v); z80=(5.85u,2.75v);
+z81=(4.9u,5.4v); z82=(6.75u,6.15v); z83=(8.55u,6.7v); z84=(8.2u,7.2v);
+z85=(7.75u,6.75v); z86=(8u,6.5v); z87=(7.85u,5.1v); z88=(7.15u,4.45v);
+z89=(6.6u,5v); z90=(7.1u,5.5v); z91=(7.45u,5.1v); z92=(7.1u,4.8v);
+z93=(6.85u,6.65v); z94=(7.55u,7v); z95=(8.25u,8.1v); z96=(7.3u,9v);
+z97=(6.65u,8.5v); z98=(7.25u,7.8v); z99=(8.7u,8.65v); z100=(9u,8.3v);
+penpos77(hair,0); penpos78(hair,90); penpos79(hair,180); penpos80(hair,-90);
+kouki(80,6,1.2); penstroke z48e{right}...{up}z77e...z78e...z79e...{right}z80e;
+penpos81(hair,-45); penpos82(hair,-90); penpos83(hair,0); penpos84(hair,90);
+penpos85(hair,180); penpos86(hair,-90); kouki(86,6,1.2); penstroke
+z81e{(1,1)-(0,0)}...{right}z82e...z83e{up}...z84e...z85e...{right}z86e;
+penpos87(hair,-180); penpos88(hair,90); penpos89(hair,0); penpos90(hair,-90);
+penpos91(hair,180); penpos92(hair,90); kouki(92,5,1.3); penstroke
+z82e{right}...z87e{down}...z88e...z89e... z90e...z91e...{left}z92e;
+penpos93(hair,-69); penpos94(hair,-60); penpos95(hair,0); penpos96(hair,90);
+penpos97(hair,180); penpos98(hair,-90); penpos99(hair,-90); penpos100(hair,180);
+kouki(100,3,1.4); z93'=0.5[z93,z94]; penpos93'(hair,-65); mpalla(93',1.8);
+penstroke z81e{(1,1)-(0,0)}...z93e...z94e...{up}z95e...z96e...z97e...z98e{right}
+...{right}z99e...{down}z100e; z101=(5.3u,6.15v); z102=(5.2u,8.8v); z101'=z31;
+z103=(5.5u,8.55v); z104=(5.3u,8.3v); z26'=z26; penpos26'(hair,0);
+penpos101(hair,45); penpos101'(hair,0); penpos102(hair,-90);
+penpos103(hair,180); penpos104(hair,90); kouki(104,5,1); penstroke
+z26'e{up}...z101e...{up}z101'e...z102e{right}...z103e...{left}z104e;
+mpalla(93,1.2); mpalla(94,1.2); z105=(7.85u,8.1v); z106=(7.4u,8.5v);
+z107=(7.15u,8.2v); penpos105(1.1hair,0); penpos106(hair,90);
+penpos107(hair,180);kouki(107,4,1.5); penstroke
+z33e{z33-z34}...z105e...z106e...{down}z107e; z108=(8.5u,3.45v);
+z109=(8.8u,3.9v); z110=(8.5u,4.15v); z111=(8.3u,3.95v); z112=(8.25u,3.1v);
+z113=(8.6u,2.75v); penpos108(hair,-90); penpos109(hair,0); penpos110(hair,90);
+penpos111(hair,-180); kouki(111,4,1); z108'=z7; penpos108'(hair,-90);
+penpos112(hair,-141); penpos113(hair,-90); penstroke
+z108'e{right}...z108e{right}...z109e...z110e...{down}z111e; penstroke
+z108'e{right}...z112e...{right}z113e; kouki(113,6,1); mpalla(112,1);
+z114=(4.1u,8.3v); z115=(3.4u,8.55v); z116=(0.7u,8.2v); z117=(0.1u,8.8v);
+z118=(0.2u,7.15v); z119=(0.6u,6.15v); z120=(0.15u,6.6v); z116'=(1.2u,8.3v);
+z117'=(1.2u,8.05v);penpos116'(hair,90); penpos117'(hair,90); penpos114(hair,64);
+penpos115(hair,76.5); penpos116(hair,90); penpos117(hair,0);
+penpos118(hair,180); penpos119(hair,90); penpos120(hair,0); z114'=.5[z114,z115];
+mpalla(114',1.5); mpalla(114,1.2); mpalla(115,1.2); penstroke
+z114e{(0,9.9v)-(10u,6v)}...{(0,9.05v)-(10u,7.5v)}z115e...z116'e...{left}z116e
+...{up}z117e; z118'=z117+(0.8u,0.4v); penpos118'(hair,0); kordella(117,118');
+penstroke
+z114e{(0,9.9v)-(10u,6v)}...{(0,9.05v)-(10u,7.5v)}z115e...z117'e...{down}z118e;
+kouki(118,4,1); z20'=z20; penpos20'(hair,90); penstroke
+z20'e{left}...z119e{left}...z120e{up}; kouki(120,2,1.3); z200=(1.45u,3.1v);
+z201=(0.85u,2.4v); z202=(0.6u,3.9v); triaina(200,201,202,0.8); z210=(1.3u,7.5v);
+z211=(0.6u,7.05v); z212=(0.6u,8.55v); triaina(210,211,212,0.5); z220=(8.2u,6v);
+z221=(8.75u,5.7v); z222=(7.75u,5.2v); triaina(220,221,222,0.7);
+z230=(8.8u,5.2v); ka(230,-90); penstroke z82e{right}..z230e{right};
+kouki(230,6,1); z231=(8.7u,0.2v); ka(231,-90); penstroke
+z53e{down}..z231e{right}; kouki(231,6,1); z232=((3.1u,0)--(3.1u,8v))
+intersectionpoint (z10{down}..z11{right}); ka(232,90); z233=(2.4u,0.15v);
+ka(233,180); penstroke z232e{left}..z233e{down}; kouki(233,4,1); z240=z27;
+ka(240,-90); z241=(4.1u,1.6v); ka(241,90); penstroke z240e{right}.. z241e{left};
+kouki(241,5,1); z242=z22; ka(242,-90); z243=(3u,5.6v); ka(243,0); kouki(243,1,1);
+mpalla(25,1.2); z244=(2.3u,4.7v); ka(244,0); kouki(244,2,1); penstroke
+z68'e{left}..z244e{up}; penstroke z242e{right}..z243e{up}; z245=(7.05u,3.5v);
+z246=(6.6u,4v); ka(245,0); ka(246,90); penstroke z48e{right}..z245e{up}..
+z246e{left}; penlabels(range 1 thru 230);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitD.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitD.mf
new file mode 100644
index 00000000000..83ecb2b11e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitD.mf
@@ -0,0 +1,121 @@
+.cmchar "The letter D";
+.beginchar("D",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0); % 9911558 ajhna
+z1=(2.5u,8.1v); mpalla(1,1.5); z2=(2.5u,8v); z3=(2.1u,7.8v); z4=(1.75u,8.25v);
+z5=(0.75u,7.8v); z6=(2.1u,6.65v); z7=(2.7u,6.8v); z8=(4.4u,7.5v);
+z8'=(6.85u,6.7v); z9=(7.65u,5v); z10=(6.5u,1.4v); z11=(4.8u,0.7v);
+z12=(3.3u,1.55v); z13=(1.8u,2.25v); z14=(0.65u,1.2v); z15=(1.35u,0.4v);
+z16=(1.85u,0.8v); z17=(1.75u,1.05v); z18=(1.5u,1.1v); z19=(1.35u,1.3v);
+z20=(1.5u,1.45v); ka(2,-180); penpos3(0.35v,43); penpos4(0.4v,41);
+penpos5(0.1u,180); penpos6(0.75v,-90); penpos7(0.9v,-65); penpos8(0.95v,-73);
+penpos8'(0.9uv,-134); penpos9(0.75u,-180); ka(10,133); penpos11(0.5v,90);
+penpos12(0.9uv,45); penpos13(0.4v,90); ka(14,180); ka(15,-90);
+penpos16(0.25u,0); penpos17(0.35uv,45); penpos18(0.25v,90); penpos19(0.15u,0);
+ka(20,-90); penstroke
+z2e{down}...z3e...z4e...z5e...z6e...z7e...z8e...z9e...z10e...z11e...
+z12e...z13e...z14e...z15e...z16e...z17e...z18e...z19e...{right}z20e;
+z21=(4.85u,5.9v); z22=(5u,5.8v); z23=(5.35u,6.2v); z24=(4.3u,6.3v);
+z25=(3.8u,5.55v); z26=(4.1u,4.95v); z27=(4.75u,4.15v); z28=(5u,3.3v);
+z29=(3.5u,1.4v); penpos21(hair,180); penpos22(0.25v,-90); penpos23(0.35u,0);
+penpos24(2hair,117); penpos25(0.55u,180); penpos26(0.8uv,-144);
+penpos27(0.8uv,-144); penpos28(0.55u,180); penpos29(hair,121); penstroke
+z21e{down}...z22e...z23e...z24e...z25e...z26e...z27e...z28e...
+{(1.2u,0)-(9u,4.8v)}z29e; z30=(2.95u,4.15v); z30.2=(3.5u,3.85v);
+z31=(3.3u,1.55v); penpos30(1.35uv,36.5); penpos30.2(0.7uv,45.5);
+penpos31(hair,133); z30'=z30+(0.1u,0); filldraw flex(z30l,z30',z30r) &
+z30r{down}...z30.2r...{(1.8u,0)-(9u,7v)}z31l & z31l--z31r &
+z31r{(9u,7v)-(1.8u,0)}...z30.2l...z30l & cycle; z32=(2.7u,1.3v);
+z33=(1.6u,2.5v); z34=(2.5u,3.35v); z35=(3.1u,3.05v); z36=(2.8u,2.7v); ka(32,90);
+ka(33,0); penpos34(0.12v,-90); penpos35(0.3u,180); penpos36(0.5v,90);
+mpalla(36,2.5); penstroke
+z31e{(0.7u,0)-(9u,4.8v)}...z32e...z33e...z34e...{down}z35e...{left}z36e;
+z37=(5.8u,8.5v); z38=(5.4u,8.1v); z39=(4.7u,8.5v); z40=(3.9u,8.2v);
+z41=(3.35u,8v); z42=(2.3u,8.5v); z43=(1.45u,8.8v); z44=(0.05u,7.65v);
+z45=(0,7.2v); z46=(1.9u,5.5v); z66'=(4.25u,6.6v); z47=(5u,6.7v); z48=(7.05u,4v);
+z49=(5.5u,1.2v); ka(37,180); z37'=z37; ka(37',0); kouki(37',1,1.2); ka(38,90);
+ka(39,90); ka(40,126); ka(41,90); ka(42,60); mpalla(42,1.1); ka(43,90);
+ka(44,170); ka(45,180); ka(46,-90); ka(66',-75); ka(47,-90); ka(48,180);
+ka(49,108); penstroke
+z37e{down}...z38e{left}...z39e{left}...z40e...z41e{left}...z42e...
+z43e...z44e...z45e...z46e...{(9u,8v)-(0,5.3v)}z66'e...z47e...z48e...
+{(2u,0)-(9u,2.4v)}z49e; mpalla(44,1.2); mpalla(45,1); mpalla(66',1);
+z50=(1.35u,7.3v); z51=(1.5u,7.1v); z52=(1.7u,7.5v); z53=(1.35u,7.7v);
+z54=(0.7u,6.9v); z55=(1.4u,6.05v); z55.2=(0.2u,5.5v); z55.3=(0.5u,5.1v);
+z55.4=(0.8u,5.4v); z55.5=(0.6u,5.55v); z55'=z55; ka(55,-112); ka(55',68);
+ka(55.2,180); ka(55.3,-90); ka(55.4,0); ka(55.5,90); kouki(55.5,7,1); penstroke
+z55'e{(0,6.6v)-(9u,3.2v)}...z55.2e{down}...z55.3e{right}...z55.4e{up}
+...{left}z55.5e; z56=(2.15u,5.9v); mpalla(56,1); z57=(0.6u,4.3v);
+z58=(0.7u,4.2v); z59=(u,4.5v); z60=(0.6u,4.8v); z61=(0.25u,4.4v);
+z62=(0.95u,3.7v); z63=(1.8u,4.3v); mpalla(63,1.2); z64=(2.25u,4.8v);
+z65=(3.2u,5v); z67=(3.4u,4.2v); ka(50,180); z50'=z50; ka(50',0);
+kouki(50',2,1); ka(51,-90); ka(52,0); ka(53,90); ka(54,180); ka(56,-90);
+z66=z66'; ka(66,-71); penstroke
+z50e{down}...z51e...z52e...z53e...z54e...z55e...z56e... {(9u,8v)-(0,5.3v)}z66'e;
+ka(57,180); ka(58,-90); ka(59,0); ka(60,90); ka(61,180); ka(62,-90); ka(63,-40);
+ka(64,-40); ka(67,32); ka(65,0); z57'=z57; ka(57',0); kouki(57',2,1); penstroke
+z57e{down}...z58e...z59e...z60e...z61e...z62e...z63e---z64e...
+{(9u,8v)-(0,5.3v)}z66'e; penstroke
+z67e{(0,8.2v)-(7u,0)}...z65e...{(9u,8v)-(0,5.3v)}z66'e; z68=(1.35u,0.75v);
+z69=(0.9u,1.2v); z70=(1.5u,1.7v); z71=(2.3u,0.9v); z72=(1.3u,0);
+z73=(0.15u,1.4v); mpalla(73,1.2); z74=(2.1u,3v); z75=(4.5u,1.3v); z76=(3.5u,0);
+z77=(2.8u,0.65v); ka(68,90); ka(69,0); ka(70,-90); ka(71,180); ka(72,90);
+ka(73,0); ka(74,-90); ka(75,180); ka(76,90); ka(77,0); kouki(77,2,1);
+z76'=z76+(0,0.2v); mpalla(76',2); penstroke
+z68e{left}...z69e...z70e...z71e...z72e...z73e...z74e...z75e...
+{left}z76e...{up}z77e; z78=(3.7u,1.2v); z78'=(5u,2.25v); z79=(6.6u,2.9v);
+z80=(8.35u,1.2v); mpalla(80,1.2); z81=(7.15u,0); z82=(5.95u,v); z83=(6.8u,2.1v);
+z84=(7.6u,1.5v); z85=(7.2u,v); z86=(6.7u,1.3v); z87=(5.95u,4.1v);
+z88=(7.2u,6.3v); z89=(7.8u,7.8v); z90=(7.2u,8.5v); z91=(6.7u,8.3v);
+z92=(6.2u,8.1v); z93=(6.9u,7.9v); z94=(5.6u,4v); z95=z89; z96=(8.8u,7v);
+z97=(8.3u,6.2v); z98=(7.7u,6.7v); z98'=z98+(0.15u,0); mpalla(98',1.5);
+z99=(8.1u,7.2v); z100=(8.35u,6.9v); ka(78,-54); ka(78',-54); ka(79,-90);
+ka(80,180); ka(81,90); ka(82,0); ka(83,-90); ka(84,180); ka(85,90); ka(86,0);
+penstroke
+z78e{(9u,5v)-(2u,0)}...z78'e{(9u,5v)-(2u,0)}...z79e...z80e...z81e{left}...
+z82e...z83e...z84e...z85e...{up}z86e; ka(87,-11); ka(88,-35); ka(89,0);
+ka(90,90); ka(91,135); ka(92,90); ka(93,-90); ka(94,0); ka(95,-90); ka(96,180);
+ka(97,90); ka(98,0); ka(99,-90); ka(100,180); penstroke
+z78'e{(9u,5v)-(2u,0)}...z87e...z88e...z89e...z90e...
+{(0,2v)-(7.5u,9v)}z91e...{left}z92e; kouki(92,5,1); penstroke
+z91e{(0,2v)-(7.5u,9v)}...{right}z93e; kouki(93,6,1.2); penstroke
+z78'e{(9u,5v)-(2u,0)}...{up}z94e...z95e{right}...z96e...z97e...z98e
+...z99e...{down}z100e; z101=(5.3u,3v); z102=(6.35u,4.1v); z103=(5.25u,5.5v);
+z104=(4.25u,5.8v); z105=(4.5u,6.15v); z106=(4.5u,4.8v); z107=(5.4u,4.05v);
+z108=(6.3u,3.9v); z109=(6.5u,3.6v); z110=(6.75u,3.4v); z111=(6.6u,3.2v);
+ka(101,-90); ka(102,0); ka(103,90); ka(104,0); ka(105,-90); ka(106,180);
+ka(107,-90); ka(108,-126); ka(109,-90); ka(110,180); ka(111,90); z101'=z101;
+ka(101',90); penstroke z101'e{left}...{(0,8v)-(7.3u,0)}z67e; penstroke
+z101e{right}...z102e{up}...z103e{left}...z104e...{right}z105e; kouki(105,8,1);
+penstroke z103e{left}...z106e...z107e{right}...{(9u,1.2v)-(u,9v)}z108e;
+penstroke z101e{right}...z109e...z110e...{left}z111e; kouki(111,5,1);
+z112=(7.6u,2.6v); z113=(8.3u,2.4v); z114=(8.6u,2.8v); z115=(8.25u,3.15v);
+z116=(7.95u,2.85v); z117=(8.2u,2.6v); ka(112,-122); ka(113,-90); ka(114,0);
+ka(115,90); ka(116,180); ka(117,-90); kouki(117,6,1.1); penstroke
+z112e...z113e...z114e...z115e...z116e...{right}z117e; z118=(8.05u,1.6v);
+z119=(7.85u,0.5v); z120=(8.5u,0); z121=(8.8u,0.3v); z122=(8.65u,0.45v);
+ka(118,180); ka(119,180); ka(120,-90); ka(121,0); ka(122,90); kouki(122,7,1.1);
+penstroke z112e...z118e...z119e...z120e...z121e...{left}z122e;
+z123=(0.8u,2.45v); z124=(1.4u,3.5v); z125=(0.8u,4.15v); z126=(0.25u,3.6v);
+z127=(0.6u,3.2v); z128=(0.8u,3.4v); z128'=(0.65u,3.55v); ka(123,-49); ka(124,0);
+ka(125,90); ka(126,180); ka(127,-90); ka(128,0); ka(128',90); kouki(128',7,1);
+penstroke z123e{(7.9u,9v)-(0,1.7v)}...z124e...z125e...z126e...z127e...z128e
+...{left}z128'e; z129=(5.3u,1.9v); z130=(5.65u,1.6v); ka(129,-90); ka(130,180);
+penstroke z78e...z129e...{down}z130e; kouki(130,3,1); z131=(5.7u,2.55v);
+z132=(6.2u,2.25v); z133=(6u,2.05v); ka(131,-90); ka(132,180); ka(133,90);
+kouki(133,5,1.2); penstroke z78'e...z131e...z132e...{left}z133e; mpalla(85,1.3);
+z200=(2.3u,3.65v); z201=(3.05u,4.45v); z202=(1.65u,5.7v);
+triaina(201,200,202,0.3); z203=z11; ka(203,180); z204=(5.4u,0.1v); ka(204,-90);
+penstroke z203e{down}..z204e{right}; kouki(204,6,1); z205=(8.2u,1.05v);
+z206=(7.8u,0.4v); z207=(7u,1.75v); triaina(205,206,207,0.6); z208=(8u,6.1v);
+z209=(8.7u,5.2v); z210=(7.8u,4v); ka(208,-90); ka(209,180); ka(210,90);
+penstroke z102e{up}..z208e{right}.. z209e{down}..z210e{left}; z211=(8.5u,3.6v);
+mpalla(211,1.3); z212=(6.55u,3.95v); z213=(6.55u,4.5v); z214=(7.5u,3.95v);
+triaina(212,213,214,0.7); z215=(5.2u,5.05v); ka(215,90); penstroke
+z107e{right}..z215e{left}; z216=(4.9u,1.45v); mpalla(216,1.3); z217=z40;
+ka(217,90); z218=(3.2u,8.75v); ka(218,0); penstroke z217e{dir210} ..z218e{up};
+kouki(218,2,1.1); z219=(8.9u,8.5v); ka(219,0); penstroke z95e{right}..
+z219e{up}; kouki(219,1,1.3); z220=(6.05u,5.8v); mpalla(220,1); z221=(7.8u,5.6v);
+z222=(8.4u,5.2v); ka(221,-90); ka(222,180); penstroke z221e{right}..z222e{down};
+kouki(222,3,1);
+penlabels(range 1 thru 225); .endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitE.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitE.mf
new file mode 100644
index 00000000000..2d3a3378439
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitE.mf
@@ -0,0 +1,100 @@
+.cmchar "The letter E";
+.beginchar("E",8.9u#-1mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(1.5u,1.6v); z2=(1.8u,1.5v); z3=(2.2u,1.8v); z4=(2.2u,2.25v);
+z5=(2.6u,2.3v);z6=(3u,1.5v); z7=(2u,0.55v); z8=(0.7u,1.8v); z9=(2u,3.3v);
+z10=(3.6u,2.8v); z11=(4.7u,1.5v); z12=(6.7u,0.8v); z13=(8.15u,2.2v);
+z14=(7.2u,3.25v); z15=(6.45u,2.8v); z16=(6.7u,2.3v); z17=(7u,1.95v);
+z18=(6.7u,1.7v); z19=(4.45u,1.75v); z20=(4.5u,1.65v); z21=(5.75u,4v);
+z22=(5.55u,4.6v); z23=(4.05u,5.7v); z24=(3.7u,6.5v); z25=(4.4u,7.5v);
+z26=(6.05u,7.3v); z27=(6.45u,6.7v);z28=(5.25u,5v); z29=(7.1u,4.95v);
+z30=(7.3u,4.55v); penpos1(hair,180); z1'=z1; ka(1',0); kouki(1',2,1.2);
+penpos2(0.2v,-90); penpos3(0.5u,9.5); penpos4(0.55u,-20); penpos5(0.2v,-90);
+ka(6,180); ka(7,90); ka(8,0); penpos9(0.45v,-90); penpos10(0.85uv,-138);
+penpos11(0.8uv,-142);penpos12(0.45v,-90); penpos13(1.2hair,0); ka(14,90);
+penpos15(0.4u,180); penpos16(0.5uv,-109); penpos17(0.2u,180); ka(18,90);
+penstroke z1e...z2e{right}... z3e{up}...z4e...z5e...z6e...z7e...
+z8e...z9e...z10e...z11e...z12e... z13e{up}...{left}z14e...z15e{down}...z16e...
+z17e{down}...{left}z18e; penpos19(hair,-41); ka(20,-50); penpos21(0.6u,0);
+penpos22(0.75uv,40); penpos23(0.9uv,58); penpos24(0.5u,0);
+penpos25(1.5hair,-64); penpos26(0.6uv,-145); penpos27(2uv,-145); penstroke
+z20e{(9u,5.5v)-(2.6u,0)}... z21e...z22e...z23e...z24e...z25e... {z27-z26}z26e;
+z19.1=(5u,3.3v); z19.2=(3.7u,4.6v); z19.3=(3.2u,4.5v); penpos19.1(0.4u,0);
+penpos19.2(0.75uv,63); penpos19.3(1.6uv,43); penstroke z19e{(9u,7v)-(3.1u,0)}...
+z19.1e{up}...z19.2e{(0,5.1v)-(9u,3.9v)} ...{z19.3-z19.2}z19.3e; ka(28,-58);
+penpos29(0.55uv,-139); penpos30(1.5uv,-139); penstroke z28e{(9u,7.4v)-(0,2v)}...
+{z30-z29}z29e; penpos27.1(1.5hair,-235); z27.1l=z27r; penpos27.2(hair,-55);
+z27.2r=z27l; filldraw z26l{z27-z26}...{z27.2-z27.1} z27.2l & z27.2l--z27.2r &
+z27.2r--z27.1l & z27.1l--z27.1r & z27.1r{z27.2-z27.1} ...{z26-z27}z26r &
+z26r--z26l & cycle; penpos30.1(1.5hair,-49); z30.1r=z30l; filldraw
+z29l{z30-z29}...{z30l-z30r} z30.1l & z30.1l--z30.1r & z30.1r--z30r &
+z30r{z30l-z30r}...z29r & z29r--z29l & cycle; z31=(4.4u,4.8v); z32=(3.5u,2.8v);
+z33=(3u,0.4v); z34=(2u,0); z35=(1.5u,0.1v); z36=(0.1u,2v); z37=(0.15u,2.4v);
+z38=(1.5u,3.9v); z39=(2.35u,4v); z40=(4.65u,2.5v); z40'=(4.45u,2.15v);
+z41=(4.25u,2.5v); z42=(5.35u,3.2v); z43=(6.55u,2v); z44=(5.2u,0.4v);
+z45=(3.45u,1.55v); z46=(4.1u,3.8v); z47=(7.4u,7.8v); z48=(6.9u,8.35v);
+z49=(6.7u,7.9v); z50=(8u,5.3v); z51=(7.8u,5.6v); ka(31,-141); ka(32,180);
+ka(33,127); ka(34,90); ka(35,77); mpalla(33,1.5); mpalla(35,1.3); ka(36,0);
+ka(37,-9); ka(38,-65); ka(39,-90); ka(40,180); ka(40',90); ka(41,0); ka(42,-90);
+ka(43,180); ka(44,90); ka(45,31); ka(46,-31); ka(47,0); ka(48,90); ka(49,-90);
+kouki(49,6,1.2); ka(50,0); ka(51,90); kouki(51,7,1.5); penstroke
+z27.1e{z27r-z27l}...z31e... z32e...z33e...z34e...z35e...z36e...z37e
+...z38e...z39e...{down}z40e...z40'e... {up}z41e...z42e...z43e...z44e...z45e...
+z46e...z28e{(9u,7.4v)-(0,2v)}; penstroke z27.2e{z27l-z27r}...z47e...
+z48e{left}...{right}z49e; penstroke z30.1e{z30l-z30r}...z50e... {left}z51e;
+z52=(7.5u,4.1v); z53=(8.15u,4.3v); z54=(8.2u,3.4v); z55=(7.8u,2.7v);
+z56=(7.2u,3.4v); z57=(7.6u,3.65v); z58=(6.25u,4.2v); z59=(7.2u,6.85v);
+z60=(8u,6v); z61=(7.4u,5.5v); z62=(6.9u,6v); z63=(7.2u,6.3v);
+z64=(5.75u,6.3v); z65=(6.8u,8.65v); z66=(8u,7.5v); z67=(7.35u,6.6v);
+z68=(6.7u,7.2v); z69=(7.15u,7.3v); z70=(7.55u,7.5v); z71=(6.5u,8.1v);
+z72=(6u,8.55v); z73=(5.8u,8.4v); z74=(6u,8.2v); z75=(4.7u,8.8v);
+z75.1=(5u,8.6v); z75.2=(4.9u,8.35v); z75.3=(5u,8.05v); penpos75.1(0.25u,180);
+penpos75.2(0.4uv,-147); ka(75.3,-124); z76=(2.5u,8.3v); z77=(0.75u,7v);
+z78=(1.9u,5.9v); z78'=(2.6u,6.1v); z79=(3u,6.8v); z80=(2.1u,7.8v);
+z81=(1.5u,7.3v); z82=(1.8u,6.9v); z83=(2.05u,6.95v); z84=(2.4u,6.5v);
+z85=(2.1u,6.35v); z86=(2.05u,5.2v); z87=(2.7u,4.55v); z88=(3.25u,5v);
+z89=(3u,5.4v); z90=(2.75u,5.25v); z91=(0.7u,4.4v); z92=(0,5v);
+z93=(0.5u,5.55v); z94=(0.8u,5.2v); z94'=(0.7u,4.9v); z95=(0.3u,5.9v);
+z96=(3u,7.6v); z97=(1.5u,7.4v); z98=(0,8.3v); z98'=(0.5u,8.7v);
+z99=(0.5u,8.2v); z100=(0.35u,8.35v); z101=(1.9u,8.7v); z102=(3.3u,7v);
+z103=(1.2u,5.2v); z104=(2.6u,3.6v); z105=(8.3u,0.7v); z106=(7.8u,0);
+z107=(7.45u,0.4v); z108=(7.7u,0.65v); ka(52,-90); ka(53,0); ka(54,180);
+ka(55,90); ka(56,0); ka(57,-90); ka(58,0); ka(59,-90); ka(60,180); ka(61,90);
+ka(62,0); ka(63,-90); ka(64,27); ka(65,-90); ka(66,180); ka(67,90); ka(68,0);
+ka(69,-90); ka(70,180); ka(71,0); ka(72,90); ka(73,180); ka(74,-90);
+ka(75,-90); ka(76,90); ka(77,180); mpalla(77,1.5); ka(78,-90); ka(79,0);
+ka(80,90); penpos81(2hair,180); penpos82(0.5v,-90); ka(94',90);
+penpos83(0.45uv,-59); ka(84,180); ka(85,90); ka(86,180); ka(87,-90); ka(88,0);
+ka(89,90); ka(90,90); ka(91,90); ka(92,0); ka(93,-90); ka(94,180); ka(95,0);
+ka(96,90); ka(97,90); ka(98,0); ka(98',-90); ka(99,90); ka(100,0); ka(101,-85);
+ka(102,90); ka(103,180); ka(104,-90); ka(105,180); ka(106,90); ka(107,0);
+ka(108,-90); z52'=(4.65u,1.65v); ka(52',-57); z52.2=(6.05u,2.95v); ka(52.2,-38);
+penstroke z52'e{(9u,4.7v)-(2.3u,0)}...z52.2e...{right}z52e...{up}z53e;
+kouki(53,1,1.2); penstroke z52e{right}...{down}z54e...z55e...z56e...{right}z57e;
+penstroke z52'e{(9u,4.7v)-(2.3u,0)}...{up}z58e...{right}z59e...z60e...z61e...
+z62e...{right}z63e; kouki(63,8,1.5); penstroke
+z58e{up}...z64e...z65e{right}...z66e...z67e...z68e...z69e... {down}z70e;
+kouki(70,3,1.2); z75.4=(4.3u,8.4v);ka(75.4,0); penstroke
+z68e{up}...z71e...z72e...z73e...{right}z74e; penstroke
+z64e{(4.2u,9v)-(9u,0.6v)}...z75.4e...{right}z75e...z75.1e{down}...z75.2e{(0,4v)-(5.6u,9v)}
+...{(9u,5.8v)-(3.4u,9v)}z75.3e; penstroke
+z64e{(4.2u,9v)-(9u,0.6v)}...z76e...z77e...z78e...z79e...z80e...
+z81e...{right}z82e...z83e...{down}z84e...{left}z85e; ka(78',126); penstroke
+z78'e{(0,4v)-(6.25u,9v)}...{down}z86e...z87e...z88e... {left}z89e;
+kouki(89,7,1); penstroke z89e...z90e...z91e...z92e...z93e...z94e...{left}z94'e;
+kouki(94',5,1.2); penstroke z92e{up}...{up}z95e; kouki(95,1,1.2); penstroke
+z58e{up}...{left}z96e...{left}z97e...z98e...z98'e...z99e...z100e...
+{right}z101e; z23'=z23; penpos23'(hair,0); penstroke
+z58e{up}...z102e{left}...z103e...z104e...z23'e; z105.1=(5.5u,1.65v);
+z105.2=(6.9u,1.3v); z105.3=(7.7u,2.2v); z105.4=(7.1u,2.75v); ka(105.1,-120);
+ka(105.2,-90); ka(105.3,0); ka(105.4,90); penstroke
+z105.1e{(8.5u,0)-(0,4.6v)}...z105.2e...z105.3e...{left}z105.4e; penstroke
+z105.2e{right}...z105e{down}...z106e...z107e...{right}z108e; kouki(108,8,1.5);
+kouki(57,8,1.2); mpalla(105.2,1.2); mpalla(45,1.5); mpalla(37,1.6);
+z109=(3.85u,v); z110=(4.4u,0.55v); z111=(4.2u,0.3v); z112=(3.9u,0.5v);
+z113=(3.5u,0.4v); ka(109,-90); ka(110,180); penpos111(0.2v,90);
+penpos112(0.2uv,45); ka(113,180); kouki(113,4,1); z33'=z33; ka(33',-53);
+penstroke z33'e{(9u,5.6v)-(2.5u,0)}...z109e...
+z110e...z111e...z112e...{down}z113e;
+penlabels(range 1 thru 120); .endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitF.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitF.mf
new file mode 100644
index 00000000000..7e45909d367
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitF.mf
@@ -0,0 +1,109 @@
+.cmchar "The letter F";
+.beginchar("F",8.9u#+0.3mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(3.2u,5.3v); z2=(3.6u,5.7v); z3=(3.45u,6.05v); z4=(2.95u,6.25v);
+z5=(2.45u,6.65v); z6=(2.5u,7v); z7=(3.25u,7.45v); z8=(4.45u,6.25v);
+z9=(3u,4.65v); z10=(1.35u,6.4v); z11=(3.35u,8.45v); z12=(5.5u,7.45v);
+z13=(7.8u,6.4v); z14=(8.8u,7.6v); z15=(7.8u,8.5v); z16=(7.15u,7.9v);
+z17=(7.7u,7.45v); z18=(8.1u,7.4v); z19=(8.25u,7.75v); z20=(4.7u,0.95v);
+z21=(5.7u,1.7v); z22=(6.8u,3.4v); z23=(6.4u,4.25v); z24=(5.1u,5.15v);
+z25=(4.9u,6v); z26=(5.9u,7v); z27=(4.3u,0.2v); z28=(4.4u,1.5v);
+z29=(2.2u,2.3v); z30=(1.85u,3.3v); z31=(3u,4.3v); z32=(3.75u,3.6v);
+z33=(3.15u,2.85v); z34=(2.6u,3.35v); z35=(2.85u,3.75v); z36=(4.25u,4.2v);
+z37=(4.65u,4v); z38=(5.9u,2.8v); z39=(5.45u,1.95v); z41=(6.2u,4.75v);
+z42=(8u,4.6v); penpos1(hair,-90); penpos2(0.1u,0); penpos3(0.5uv,42);
+penpos4(0.9v,90); penpos5(0.65uv,37); penpos6(0.25u,0); penpos7(1.5hair,-90);
+penpos8(1.5hair,180); penpos9(1.5hair,90); penpos10(1.5hair,0);
+penpos11(0.7v,-90); penpos12(uv,-140); penpos13(0.5uv,-90); penpos14(0.2u,0);
+penpos15(hair,90); penpos16(hair,180); penpos17(0.4v,-90); penpos18(0.2v,-90);
+penpos19(hair,0); penpos20(hair,-35); penpos22(0.8u,0); penpos21(1.5hair,-35);
+penpos23(uv,51); penpos24(uv,51); penpos25(0.475u,0); penpos26(hair,-52);
+penpos27(hair,-23); penpos28(1.05uv,60); penpos29(0.8uv,42); penpos30(0.4u,0);
+penpos31(1.5hair,-90); penpos32(hair,180); penpos33(hair,90);
+penpos34(hair,0); penpos35(hair,-90); penpos36(1.4uv,50); penpos37(0.8uv,52);
+penpos38(0.3u,0); penpos39(hair,-53); penpos41(hair,40);
+penpos42(0.8uv,-140); penstroke
+z1e{right}...{up}z2e...z3e...{left}z4e...z5e...z6e...z7e...z8e...z9e...z10e...
+z11e...z12e...z13e...z14e...{left}z15e...{down}z16e...z17e...z18e...{up}z19e;
+penstroke z20e{(9u,9v)-(4.1u,0)}...z21e...z22e...z23e...z24e...z25e...
+{(8.8u,9v)-(0,2.9v)}z26e; penstroke
+z27e{(7.2u,9v)-(4.2u,0)}...z28e{(0,4.3v)-(6.9u,0)}...z29e...z30e...
+z31e...z32e...z33e...z34e...{right}z35e; kouki(35,8,2); z36'=z36+(0.1u,0);
+z37'=(5.7u,3.8v); filldraw flex(z36l,z36',z36r) &
+z36r{down}...z37r...z37'...z38r...{(2.95u,0)-(9u,4.7v)}z39r & z39r--z39l &
+z39l{(9u,4.7v)-(2.95u,0)}...z38l...z37l...{(0,2.3v)-(9u,5.5v)}z36l & cycle;
+penpos42.1(1.5hair,-50); penpos42.2(1.5hair,-230); z42.1r=z42l; z42.2l=z42r;
+penpos43(hair,-50); penpos44(hair,-230); z43=(8.7u,5.15v); z44=(7.4u,4v);
+z41'=(7.5u,5.45v); filldraw z41l{(9u,8v)-(2u,0)}...z41'...z42.1l...z43l &
+z43l--z43r & z43r--z44l & z44l--z44r & z44r...z42.2r...{(2u,0)-(9u,8v)}z41r &
+z41r--z41l & cycle; z50=(7.55u,1.8v); z51=(7.05u,1.85v); z52=(7.1u,2.15v);
+z53=(7.5u,2.4v); z54=(8.15u,1.7v); z55=(6.85u,0.85v); mpalla(55,1.2);
+z56=(5.2u,0.45v); z57=(5.8u,0.1v); z58=(6.15u,0.4v); z59=(5.9u,0.6v);
+z60=(5.4u,1.55v); z61=(2.8u,3.25v); z62=(1.4u,2.8v); z63=(0.8u,1.5v);
+z64=(1.2u,0.4v); z65=(2.15u,0); z66=(3.2u,1.7v); z67=(2.25u,2.05v);
+z68=(1.4u,1.3v); z69=(1.7u,0.8v); z70=(2.25u,0.8v); z71=(2.6u,1.2v);
+z72=(0.6u,0); z73=(0.1u,0.5v); z74=(0.45u,v); z75=(0.8u,0.7v);
+z76=(0.65u,2.4v); z77=(0.05u,3v); z78=(0.5u,3.4v); z79=(0.8u,3.1v);
+z80=(0.65u,2.85v); z81=(2.7u,5.3v); z82=(1.55u,4.3v); z83=(0.8u,3.65v);
+z84=(0.4u,4v); z85=(0.6u,4.2v); z86=(2.2u,3.65v); z87=(2.7u,4.15v);
+z88=(2.3u,4.5v); z89=(4.2u,5v); z89'=(3.9u,6.3v); z90=(1.8u,8v);
+z91=(0.15u,6.5v); mpalla(91,1.3); z92=(1.25u,5v); z93=(2.15u,6.05v);
+z94=(1.4u,6.9v); z95=(0.65u,6.3v); z96=(1.25u,5.7v); z97=(1.7u,6.1v);
+z98=(2.45u,7.4v); z99=(1.4u,8.6v); z100=(1.9u,9.15v); z101=(2.25u,8.8v);
+z102=(2u,8.6v); z103=(1.5u,7.3v); z104=(0,8.5v); z105=(0.75u,9.15v);
+z106=(1.05u,9v); z107=(0.95u,8.65v); z108=(0.7u,8.4v); z109=(0.8u,8.2v);
+z110=(5.55u,4.8v); z111=(7.4u,8v); z112=(5.9u,9.3v); z113=(4.3u,7.7v);
+z114=(5.5u,6.5v); z115=(6.85u,7.7v); z116=(5.9u,8.6v); z117=(7.5u,5.8v);
+z118=(9.05u,4.25v); mpalla(118,1.2); z119=(7.9u,3v); z120=(6.8u,3.9v);
+z121=(7.65u,4.8v); z122=(8.35u,4.2v); z123=(7.9u,3.6v); z124=(7.25u,1.65v);
+z125=(8.3u,1.3v); z126=(9.05u,2.05v); z127=(8.6u,2.5v); z128=(8.3u,2.2v);
+z129=(8.5u,1.95v); z130=(9u,0.55v); z131=(8.65u,0.15v); z132=(8.4u,0.4v);
+z133=(7.85u,0.6v); z134=(7.5u,0.05v); z135=(7.15u,0.3v); z136=(7.3u,0.55v);
+z137=(2.6u,8.75v); z138=(3.65u,9.1v); z139=(6.2u,7.9v); z140=(7.7u,6.9v);
+z141=(8.1u,8.2v); z141'=(7.3u,9v); mpalla(141',1.2); ka(50,90);
+penpos51(0.5uv,45); penpos52(0.2u,0); ka(53,-90); ka(54,180); ka(55,90);
+ka(56,180); penpos57(0.25v,-90); ka(58,0); ka(59,90); ka(60,49); ka(61,90);
+ka(62,125); ka(63,180); ka(64,-135); ka(65,-90); ka(66,0); ka(67,90);
+ka(68,180); ka(69,-122); penpos70(0.2v,-90); ka(71,0); ka(72,90); ka(73,0);
+ka(74,-90); ka(75,180); ka(76,90); ka(77,0); ka(78,-90); ka(79,180); ka(80,90);
+ka(81,90); ka(82,180); ka(83,90); ka(84,0); ka(85,-90); ka(86,-90); ka(87,0);
+ka(88,90); ka(89,12); ka(89',25); ka(90,90); ka(91,180); ka(92,-90); ka(93,0);
+ka(94,90); ka(95,180); ka(96,-90); ka(97,0); kouki(97,1,1.5); ka(98,65);
+ka(99,0); ka(100,-90); ka(101,180); ka(102,90); kouki(102,5,1.1); ka(103,86);
+ka(104,0); ka(105,-90); penpos106(0.2u,180); penpos107(0.3uv,132);
+penpos108(0.2u,180); ka(109,-90); ka(110,-43); ka(111,0); ka(112,90);
+ka(113,180); ka(114,-90); ka(115,0); ka(116,90); kouki(106,7,1.2); ka(117,-90);
+ka(118,180); ka(119,90); ka(120,0); ka(121,-90); ka(122,180); ka(123,90);
+kouki(123,5,1); penpos124(0.3uv,-140); ka(125,-90); ka(126,0); ka(127,90);
+ka(128,180); ka(129,-90); kouki(129,6,1.1); ka(130,180); ka(131,90); ka(132,0);
+kouki(132,2,1.1); ka(133,180); ka(134,90); ka(135,0); ka(136,-90);
+kouki(136,8,1.1); ka(137,-51); ka(138,-90); ka(139,-135); ka(140,-90);
+ka(141,90); kouki(141,7,1); penstroke
+z50e{left}...z51e...z52e...z53e...z54e...z55e{left}...z56e...z57e...
+z58e...{left}z59e; penstroke
+z55e{left}...z60e...z61e...z62e{(0,1.6v)-(8.8u,9v)}...z63e...z64e...
+z65e...z66e...z67e...z68e...z69e...z70e...{up}z71e; penstroke
+z68e{down}...z72e...z73e...z74e...{down}z75e; kouki(75,5,1.2); penstroke
+z62e{(0,1.6v)-(8.8u,9v)}...z76e...z77e...z78e...z79e...{left}z80e;
+kouki(80,5,1.2); penstroke
+z60e{(0,7v)-(7u,0)}...z81e...z82e{down}...z83e...z84e...{right}z85e;
+kouki(85,8,1); penstroke z82e{down}...z86e...z87e...{left}z88e; kouki(88,7,1.3);
+penstroke z60e{(0,7v)-(7u,0)}...z89e{up}...z89'e...z90e...z91e...z92e...z93e...
+z94e...z95e...z96e...{up}z97e; penstroke
+z89'e{(3u,9v)-(6.1,0)}...z90e...z91e...z92e...z93e...z94e...z95e...
+z96e...{up}z97e; penstroke
+z89'e{(3u,9v)-(6.1,0)}...z98e...z99e...z100e...z101e...{left}z102e; penstroke
+z89'e{(3u,9v)-(6.1,0)}...z103e...z104e...z105e...z106e...z107e...
+z108e...{right}z109e; penstroke
+z60e{(0,7v)-(7u,0)}...z110e...z111e...z112e...z113e...z114e...z115e
+...{left}z116e; kouki(116,7,1.1); penstroke
+z110e{(9u,7.8v)-(0,0.3v)}...z117e...z118e...z119e...z120e...z121e...
+z122e...{left}z123e; mpalla(124,1.8); penstroke
+z124e...z125e...z126e...z127e...z128e...{right}z129e; penstroke
+z124e{(9u,0.5v)-(0,7v)}...z130e...z131e...{up}z132e; penstroke
+z124e{(9u,0.5v)-(0,7v)}...z133e...z134e...z135e...{right}z136e;
+z140'=(8.5u,7.5v); ka(140',0); penstroke
+z137e{(3u,9v)-(0,7.2v)}...z138e...z139e...z140e{right}...z140'e...{left}z141e;
+penlabels(range 1 thru 145);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitG.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitG.mf
new file mode 100644
index 00000000000..57e62eb1633
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitG.mf
@@ -0,0 +1,89 @@
+.cmchar "The letter G";
+.beginchar("G",8.9u#+0.1mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(4.45u,1.4v); z2=(4.35u,2.25v); z3=(3.8u,2.4v); z4=(3.05u,3.2v);
+z5=(3.75u,3.95v); z6=(4.15u,3.55v); penpos1(hair,0); penpos2(0.85uv,62);
+penpos3(0.8v,90); penpos4(0.3u,0); ka(5,-90); ka(6,-180); kouki(6,3,2);
+penstroke z1e{up}...z2e{(0,2.75v)- (5.1u,0)}...z3e{left}...z4e{up}...
+z5e{right}...z6e{down}; z11=(4.5u,1.9v); z12=(5.1u,2.45v); z13=(6.2u,4v);
+z14=(5.8u,4.9v); z15=(4.1u,5.8v); z16=(3.75u,6.5v); z17=(4.35u,7.6v);
+ka(11,-48); ka(12,-48); penpos13(0.65u,0); penpos14(0.95uv,50);
+penpos15(0.95uv,53); penpos16(0.65u,0); ka(17,-51); penstroke
+z11e{(9u,6.1v)-(2.5u,0)}... z12e{(9u,6.1v)-(2.5u,0)}...z13e{up}...
+z14e{(0.7u,9v)-(9u,2.3v)}... z15e{(0.7u,9v)-(9u,2.3v)}...z16e...
+{(6.8u,9v)-(0,5v)}z17e; z17.1=(6.45u,8.95v); z17.2=(7.75u,7.35v);
+z17.3=(6.33u,6.3v); z17.4=(6.2u,7.7v); z17.45=(5.2u,8.05v); z17.5=(6.2u,8.5v);
+z17.6=(7.3u,7.45v); z17.7=(8.45u,8.45v); penpos17.1(hair,-23.5);
+penpos17.2(0.3uv,-57); penpos17.3(hair,123); penpos17.7(hair,0); filldraw
+z17l{(6.8u,9v)-(0,5v)}... z17.45 & flex(z17.45,z17.5,z17.1l) & z17.1l--z17.1r &
+flex(z17.1r,z17.6,z17.7l) & z17.7l--z17.7r{up} & z17.7r{down}...z17.2r--z17.3l &
+z17.3l--z17.3r & flex(z17.3r,z17.4,z17r) & z17r--z17l & cycle; z18=(5.1u,5.3v);
+z19=(4.3u,3.6v); z20=(5.85u,2.3v); z21=(7.2u,3.5v); z22=(6.8u,3.95v);
+z23=(6.5u,3.7v);
+ z25=(7.8u,9v); z26=(7.2u,8.5v); z27=(7.6u,8v); z28=(8u,8.3v); ka(18,123);
+ka(19,-180); ka(20,-90); ka(21,0); ka(22,90); ka(23,-180); kouki(23,4,1.5);
+ka(25,90); ka(26,180); ka(27,-90); ka(28,0); kouki(28,1,1.2); penstroke
+z17.3e{z17.3-z17.2}...z18e... z19e...z20e...z21e...z22e...z23e{down}; penstroke
+z17.7e{up}... z25e...z26e...z27e...z28e{up}; z29=z18+(0.3u,-0.15v);
+z30=(8.1u,4.55v); z31=(6.7u,1.2v); z32=(2.15u,2.4v); z33=(3.35u,7.25v);
+z34=(4.4u,7.5v); z35=(6.55u,5.5v); z36=(4.4u,3.4v); z37.1=(2.9u,4.15v);
+z37=(2.6u,5v); z38=(4.45u,6.6v); z39=(5.3u,5.7v); ka(29,-57);
+penpos30(0.85uv,-152); penpos31(1.5hair,121); penpos32(uv,28);
+penpos33(1.5hair,-60.5); ka(34,-90); ka(35,-180); ka(36,90); ka(37,0);
+ka(37.1,38); ka(38,-90); ka(39,-180); penstroke z29e{(8.7u,9v)-(1.45u,0)}...
+z30e{(9u,2.8v)-(5.75u,9v)}...z31e... z32e...z33e...z34e...z35e...z36e...
+z37e...z38e...z39e... {(1.45u,0)-(8.7u,9v)}z18e; z7=(5.1u,2.7v); z8=(5.35u,3.4v);
+z9=(4.5u,4.35v); z10=(3.85u,4.55v); ka(7,-30); penpos9(0.6uv,58);
+penpos8(0.3u,0); penpos10(0.7uv,59); z10.1=z89=(2.3u,3.9v); z10.2=z15l;
+z10.3=(3.3u,4.6v); filldraw z7l{(9u,9v)-(3.4u,0)}... flex(z8l,(4.1u,4.1v),z10.1)
+& flex(z10.1,z10.3,z10.2) & z10.2...z10r... z9r...z8r...{(3.4u,0)-(9u,9v)}z7r &
+z7r--z7l & cycle; z29.2=z18; z40=(6.9u,6.05v); z41=(8.9u,4v); z42=(6.9u,0.8v);
+z43=(4.5u,0); z44=(1.9u,0.9v); z45=(0.65u,4v); z46=(1.45u,6.5v);
+z47=(5.3u,8.8v); z47.1=(7.9u,8.15v); z48=(8.85u,6.6v); z49=(8.1u,5.9v);
+z50=(7.55u,6.45v); z51=(7.95u,6.85v); z52=(8.3u,6.6v); z53=(0,0.8v);
+z54=(0.7u,0.1v); z55=(1.2u,0.7v); z56=(0.75u,1.1v); z57=(0.4u,0.8v);
+z58=(2.2u,0.95v); z59=(2.65u,0.5v); z60=(2.4u,0.1v); z61=(2.3u,8.35v);
+z62=(1.35u,9.25v); z63=(0.5u,8.5v); z64=(1.15u,7.7v); z65=(1.7u,8.25v);
+z66=(1.35u,8.65v); z67=(0.25u,7.7v); z68=(0.6u,7.2v); z69=(3.4u,7.8v);
+z70=(4u,8.65v); z71=(3.5u,9.25v); z72=(3u,8.9v); z73=(8.8u,7.7v); z74=(9.1u,8v);
+z74.1=(8.9u,8.25v); z75=(6.8u,2.65v); z76=(7.3u,2.8v); z77=(6.3u,1.5v);
+z78=(7.55u,0); z79=(8.6u,v); z80=(8u,1.75v); z81=(7.3u,1.2v); z82=(7.8u,0.6v);
+z83=(8.3u,1.45v); z84=(8.8u,2.25v); z85=(9u,2v); z86=(1.15u,5.1v);
+z87=(0.15u,4v); z88=(1.2u,2.9v); z90=(1.4u,4.6v); z91=(0.1u,5.4v);
+z92=(0.6u,6.5v); z92.1=(0.4u,6.85v); ka(29.2,-57); ka(40,-90); ka(41,180);
+ka(42,120); ka(43,90); ka(44,43); ka(45,0); ka(46,-32); ka(47,-78);
+ka(47.1,-126); ka(48,-168); ka(49,90); ka(50,0); ka(51,-90); ka(52,180);
+kouki(52,3,1.5); ka(53,180); ka(54,-90); ka(55,0); ka(56,90); ka(57,180);
+kouki(57,4,1.2); ka(58,-90); ka(59,180); ka(60,90); z60.2=(2.05u,0.35v);
+z60.3=(1.7u,0.4v); penpos60.2(0.2u,15); ka(60.3,100); ka(61,0); ka(62,90);
+ka(63,180); ka(64,-90); ka(65,0); mpalla(61,0.5); ka(66,90); ka(67,180);
+ka(68,-90);
+ ka(69,-70); mpalla(69,1); ka(70,0); ka(71,90); ka(72,180); kouki(72,4,1);
+ka(73,-90); ka(74,0); ka(74.1,90); kouki(74.1,7,1); mpalla(75,1.5); ka(75,129);
+ka(76,90); z76.1=z76; ka(76.1,-90); kouki(76.1,8,1.2); ka(77,180); ka(78,-90);
+ka(79,0); ka(80,90); ka(81,180); ka(82,-90); ka(83,45); ka(84,-90); ka(85,180);
+kouki(85,3,1.2); ka(86,90); ka(87,180); ka(88,-90); ka(89,0); ka(90,77);
+ka(91,0); ka(92,0); ka(92.1,54); penstroke z29e{(7.6u,9v)-(1.6u,0)}...
+z40e...z41e...z42e...z43e... {(0,2.7v)-(2.8u,0)}z44e...z45e...
+{(2.9u,9v)-(0,4v)}z46e...z47e... z47.1e{(9u,7.5v)-(6.6u,9v)}...
+z48e...z49e...z50e...z51e... {down}z52e; penstroke z44e{(0,2.7v)-(2.8u,0)}...
+z53e{down}...z54e{right}...z55e... z56e...{down}z57e; penstroke
+z54e{right}...z58e...z59e... z60e{left}...z60.2e{(0,3.8v)-(2.3u,0)}...
+{(u,0)-(9u,5.1v)}z60.3e; penstroke z46e{(2.9u,9v)-(0,4v)}...
+z61e{up}...z62e...z63e...z64e...z65e... z66e{left}; z150=(1.4u,8.2v);
+z151=(0.2u,8.2v); z152=(1.4u,9.3v); triaina(150,151,152,0.6); mpalla(42,1.5);
+mpalla(87,1.5); penstroke z46e{(2.9u,9v)-(0,4v)}...
+z69e...z70e...z71e...{down}z72e; penstroke z47.1e{(9u,7.5v)-(6.6u,9v)}...
+z73e...z74e...{left}z74.1e; penstroke z76e{left}...z75e...z77e...
+z78e...z79e...z80e...z81e...z82e... z83e...z84e...{down}z85e; penstroke
+z37.1e{(0,8v)-(6u,0)}...z86e...z87e... z88e...z89e...z90e...z91e...z92e...
+{(0,v)-(u,0.2v)}z92.1e; z100=(1.2u,7.2v); z101=(1.8u,8v); z102=(2.2u,6.5v);
+triaina(100,101,102,1/2); z103=(6.6u,1.6v); z104=(5.8u,1.1v); z105=(5.9u,2.6v);
+triaina(103,104,105,1/2); z106=(1.3u,0.9v); z107=(u,1.3v); z108=(2u,1.4v);
+triaina(106,107,108,0.7); mpalla(38,1.5); z109=(5.4u,7.25v); z110=(5.1u,7.6v);
+z111=(4.8u,7.35v); ka(109,0); ka(110,90); ka(111,180); penstroke
+z38e{right}...z109e...z110e ...{down}z111e; kouki(111,4,1); z111.1=(5.5u,6.45v);
+mpalla(111.1,2); z112=(1.85u,4.75v); z113=(1.85u,5.6v); z114=(3.4u,4.75v);
+triaina(112,113,114,0.6); penlabels(range 1 thru 115);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitH.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitH.mf
new file mode 100644
index 00000000000..269cc8401af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitH.mf
@@ -0,0 +1,123 @@
+.cmchar "The letter H";
+.beginchar("H",8.9u#+0.2mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(1.9u,0.3v); z2=(2.7u,1.1v); z3=(4.3u,3.55v); z4=(3.7u,4.9v);
+z5=(2.85u,6.35v); z6=(3.8u,7.8v); z7=(5.1u,5.85v); z8=(6.15u,8.6v);
+z9=(7.6u,7.1v); z10=(8.1u,8v); z11=(7.55u,8.55v); z12=(7.25u,8.3v);
+z13=(7.4u,8.1v); z14=(7.6u,8.2v); z15=(7.8u,8.1v); z16=(1.7u,1.8v);
+z17=(0.8u,2.9v); z18=(1.7u,3.75v); z19=(2.3u,3.2v); z20=(1.9u,2.75v);
+z21=(1.55u,3v); z22=(1.75u,3.25v); z23=(1.92u,3.15v); z27.2=(2.2u,4.65v);
+z24=(2u,3.1v); z25=(2.3u,1.4v); z26=(3.35u,3v); z27=(1.4u,4.3v);
+z28=(2.4u,5.3v); z28'=(3.1u,3.85v); z29=(5.6u,5.5v); z30=(7.6u,4.55v);
+z31=(7.9u,3.6v); z32=(6u,0.8v); z33=(4.85u,1.75v); z34=(5.65u,2.65v);
+z35=(6.45u,3.5v); z36=(6u,4.05v); z37=(5.75u,3.9v); z38=(5.9u,3.5v); ka(1,-31);
+ka(2,-55); penpos3(0.8u,0); penpos4(0.85uv,40); penpos5(0.65u,0);
+penpos6(1.5hair,-52); ka(7,117); ka(8,158); ka(9,-63); ka(10,0); ka(11,90);
+penpos12(1.5hair,180); penpos13(0.3v,-90); penpos14(0.2uv,-49); ka(15,-133);
+penpos16(0.85uv,62); penpos17(0.3u,0); penpos18(1.5hair,-90); ka(19,180);
+ka(20,90); penpos21(1.5hair,0); penpos22(0.3v,-90); penpos23(0.2uv,-135);
+ka(24,-135); ka(25,-59); penpos26(0.3u,0); ka(27,-68); ka(28,168);
+penpos27.2(0.9uv,43); ka(28',-21); penpos29(0.35v,-90); penpos30(0.85uv,-149);
+penpos31(0.75u,180); ka(32,90); ka(33,0); penpos34(0.8v,-90); penpos35(0.12u,0);
+ka(36,90); ka(37,180); ka(38,-90); kouki(38,6,1.5); filldraw
+z1r{(7.3u,9v)-(1.6u,0)}... z2r{(9u,5v)-(0.8u,0)}...z3r{up} & z3r--z3l &
+z3l{down}...z2l{(0.8u,0)-(9u,5v)} & z2l{(0,7.8v)-(3.2u,0)}... z16r ...z17r{up} &
+z17r--z17l & z17l{down}... z16l... flex(z16l,(1.9u,v),z1l) & z1l--z1r & cycle;
+penstroke z17e{up}...z18e...z19e... z20e...z21e...z22e...z23e...z24e; filldraw
+z25r{(9u,5.4v)-(0,0)}... z26r{up}...(3.3u,4.05v)...
+z27.2r...z28l{(3.2u,9v)-(1.1u,0)} & z28l--z28r & flex(z28r,(2u,4.8v),z27l) &
+z27l--z27r & z27r{(9u,7.2v)-(0,3.7v)}
+...z27.2l...(2.6u,4v)...z26l{down}...z25l{(0,0)-(9u,5.4v)} & z25l--z25r & cycle;
+penstroke z3e{up}...z4e...z5e{up}... z6e{(6u,9v)-(0,5.8v)}; filldraw
+z6r{(6u,9v)-(0,5.8v)}... (5.7u,7.3v)...z7r{(0,3.3v)-(9u,7.8v)}
+...z28'l{(1.4u,0)-(5.3u,9v)} & z28'l--z28'r & z28'r{(5.3u,9v)-(1.4u,0)}...
+{(9u,7.8v)-(0,3.3v)}z7l---z9r...z10r{up} & z10r--z10l & z10l{down}...z9l...
+(6.4u,7.35v)...z8l{(6.3u,9v)-(3u,0)} & z8l--z8r & z8r{(3u,0)-(6.3u,9v)}...
+z6l{(0,5.8v)-(6u,9v)} & z6l--z6r & cycle; penstroke z28'e{(5.3u,9v)-(1.4u,0)}...
+z29e...z30e...z31e...z32e{left}...z33e{up}
+...{right}z34e...{up}z35e...z36e...z37e ...{right}z38e; penstroke
+z10e{up}...z11e...z12e...z13e... z14e...z15e; z40=(2.1u,0.2v); z41=(3.3u,1.15v);
+z42=(5.3u,4.5v); z43=(4.1u,7.4v); z44=(2u,8.2v); z45=(0.1u,6.5v);
+z46=(1.2u,5.5v); z47=(2.4u,6.55v); z48=(1.5u,7.5v); z49=(0.8u,6.9v);
+z50=(1.3u,6.4v); z50'=(1.65u,6.75v); z51=(1.45u,7.05v); z52=(1.2u,6.8v);
+z53=(0,8.35v); z54=(0.55u,8.9v); z55=(u,8.5v); z56=(0.7u,8.2v);
+z57=(0.4u,8.45v); z58=(1.4u,8.6v); z59=(1.55u,8.8v); z60=(5u,3.1v);
+z61=(4.05u,5.75v); z62=(3.85u,6.1v); z63=(3.7u,6.6v); z64=(4.7u,7.55v);
+z65=(5.4u,6.85v); z66=(4.8u,6.15v); z67=(4.3u,6.7v); z68=(4.75u,7.15v);
+z69=(5.05u,6.9v); z70=(3.85u,8.2v); z71=(4.55u,9.05v); z72=(5.15u,8.7v);
+z73=(4.8u,8.3v); z74=(4.6u,8.55v); z75=(5.5u,8.55v); z76=(5.7u,8.8v);
+z77=(2.45u,3.8v); z78=(0.65u,4.55v); z79=(0.4u,5.35v); z80=(1.3u,6.25v);
+z81=(2u,5.5v); z82=(1.5u,5.05v); z83=(1.25u,5.25v); z84=(1.35u,5.5v);
+z85=(1.4u,5.7v); z86=(1.1u,5.8v); z87=(2.6u,2.3v); z88=(1.2u,3.2v);
+z89=(0.3u,3.6v); z90=(0.6u,4v); z91=(0.2u,3.1v); z92=(0.15u,2v);
+z93=(0.4u,1.3v); z94=(1.2u,0.9v); z94'=(2u,1.7v); z95=(1.5u,2.5v);
+z96=(0.7u,1.8v); z97=(1.1u,1.3v); z97'=(1.5u,1.8v); z98=(0.4u,0);
+z99=(0.1u,0.3v); z100=(0.3u,0.5v); ka(40,-46); ka(41,-56); ka(60,-27); ka(42,0);
+ka(43,49); ka(44,90); ka(45,180); ka(46,-90); ka(47,0); ka(48,90); ka(49,180);
+ka(50,-90); penpos50'(1.5hair,0); penpos51(0.3v,90); ka(52,138); ka(53,0);
+ka(54,-90); ka(55,180); ka(56,90); ka(57,0); ka(58,-90); ka(59,0); ka(61,30);
+ka(62,30); ka(63,0); ka(64,-90); ka(65,180); ka(66,90); ka(67,0); ka(68,-90);
+ka(69,180); ka(70,0); ka(71,-90); ka(72,-142); ka(73,90); ka(74,0); ka(75,-90);
+ka(76,0); ka(77,62); ka(78,37); ka(79,0); ka(80,-90); ka(81,180); ka(82,90);
+penpos83(0.3u,0); penpos84(0.3uv,-51); penpos85(0.2u,0); ka(86,90); ka(87,0);
+ka(88,90); ka(89,0); ka(90,-90); mpalla(91,1.5); ka(92,180); ka(93,-141);
+ka(94,-90); ka(94',0); ka(95,90); ka(96,180); penpos97(1.5hair,-90);
+penpos97'(0.3u,0); ka(98,90); ka(99,0); ka(100,-90); penstroke
+z40e{(9u,5.5v)-(1.9u,0)}... z41e...z60e{(7.6u,9v)-(3.7u,0)}...
+z42e...z43e{(2.4u,9v)-(9u,2.5v)} ...z44e...z45e...z46e...z47e
+...z48e{left}...z49e...z50e...z50'e{up}... z51e{left}...z52e; filldraw
+(4.85u,3v)--(4.95u,3.2v)-- (5.2u,3.15v)--(5.1u,2.95v)--cycle; penstroke
+z48e{left}...z53e{up}... z54e...z55e...z56e...z57e{up}; kouki(57,2,1.2);
+penstroke z55e...z58e...z59e{up}; kouki(59,1,1); penstroke
+z60e{(7.6u,9v)-(3.7u,0)}... z61e...z62e...z63e...z64e...z65e...
+z66e...z67e...z68e...z69e{down}; kouki(69,3,1.8); mpalla(62,1.5); filldraw
+(3.9u,5.5v)--(3.75u,5.6v)-- (4.2u,6v)--(4.35u,5.85v)--cycle; penstroke
+z43e{(2.4u,9v)-(9u,2.5v)}... z70e{up}...z71e...
+z72e{(9u,3.15v)-(4.9u,9v)}...z75e{right} ...z76e{up}; kouki (76,1,1); penstroke
+z72e...z73e...z74e{up}; kouki(74,2,1.1); penstroke z25e{(9u,5.4v)-(0,0)}...
+z77e...z78e...z79e...z80e...z81e... z82e{left}...z83e{up}...
+{(5.2u,9v)-(0,4.2v)}z84e...z85e{up}... z86e; mpalla(78,1.2); penstroke
+z25e{(9u,5.4v)-(0,0)}... z87e{up}...z88e{left}...z89e...z90e{right};
+kouki(90,8,1); penstroke z88e{left}...z92e...
+z93e{(1.5u,0)-(0,1.7v)}...z94e...z95e... z96e...z97e...z97'e{up}; penstroke
+z93e{(1.5u,0)-(0,1.7v)}... z98e{left}...z99e...z100e{right}; mpalla(93,1.5);
+kouki(100,8,1); z101=(2.45u,7.25v); z102=(1.7u,7.5v); z103=(2.9u,9v);
+z104=(3u,8.05v); triaina(101,102,103,0.5); mpalla(104,1.7); z110=(2.8u,2.6v);
+z111=(4.25u,0.5v); z112=(4.8u,0.35v); z113=(6.35u,1.3v); z114=(5.7u,1.9v);
+z115=(5.25u,1.6v); z116=(5.5u,1.4v); z117=(5.25u,5v); z118=(7u,3.5v);
+z119=(6.6u,1.85v); z120=(6.85u,1.6v); z121=(7.05u,1.8v); z122=(6.1u,2.2v);
+z123=(5.35u,3v); z124=(5.7u,3.35v); z125=(6u,3v); z126=(5.1u,5.6v);
+z127=(8.4u,8v); z128=(7.4u,9.05v); z129=(6.65u,8.3v); z130=(7.3u,7.55v);
+z131=(7.15u,7.3v); z132=(6.25u,8.2v); z133=(6.7u,8.7v); z134=(7u,8.4v);
+z135=(6.2u,6v); z136=(8.8u,6.6v); z137=(8.25u,7.2v); z138=(7.6u,6.7v);
+z139=(8.1u,6.25v); z140=(8.35u,6.6v); z141=(7.65u,5.5v); z142=(8.9u,5.45v);
+z143=(8.6u,5.75v); z144=(8.35u,5.6v); z144'=(8.5u,5.4v); z145=(8.7u,3.4v);
+z146=(8.2u,v); z147=(8.8u,0.4v); z148=(9.1u,0.7v); z148'=(8.95u,0.85v);
+z149=(7.9u,1.5v); z150=(6.5u,0.5v); z151=(6.2u,0.25v); z152=(6.4u,0.05v);
+z153=(6.65u,0.2v); z154=(6.8u,0.3v); z155=(7.3u,0); z156=(7.5u,0.2v);
+z157=(3.6u,-0.3v); z158=(2.45u,0.3v); z159=(5.15u,1.1v); z28.25=z28';
+ka(28.25,159); ka(110,180); ka(111,-109); ka(112,-90); ka(113,0); ka(114,90);
+ka(115,180); ka(116,-90); kouki(116,6,1.3); ka(117,-90); ka(118,180);
+ka(119,180); ka(120,-90); ka(121,0); kouki(121,1,1); ka(122,90); ka(123,0);
+ka(124,-90); ka(125,180); ka(126,-59); ka(127,0); ka(128,90); ka(129,180);
+ka(130,-90); ka(131,90); ka(132,0); ka(133,-90); ka(134,180); ka(135,-90);
+ka(136,0); ka(137,90); ka(138,180); ka(139,-90); ka(140,0); ka(141,-62);
+ka(142,0); ka(143,90); ka(144,180); ka(145,180); ka(146,180); ka(147,-90);
+ka(148,0); kouki(148,1,1.6); ka(149,145); ka(150,112); ka(151,180);
+penpos152(1.5hair,-90); penpos153(0.3uv,-45); penpos154(0.25v,-90);
+ka(155,-90); ka(156,0); kouki(156,1,1.8); triaina(157,158,159,0.4); penstroke
+z28.25e{(1.55u,0)-(5.1u,9v)}... z110e...z111e...z112e...z113e...z114e...
+z115e...z116e{right}; mpalla(112,1.5); penstroke z28'e{(5.3u,9v)-(1.4u,0)}...
+z117e...z118e{down}...z119e...z120e... z121e{up}; mpalla(118,1.2); penstroke
+z118e{down}...z122e...z123e ...z124e...z125e{down}; z15'=z15; ka(15',0);
+penstroke z126e{(9u,7.7v)-(0,2.8v)}... z127e{up}...z128e...z129e...z130e...
+z15'e{up}; penstroke z15e{down}...z131e...z132e... z133e...z134e{down};
+kouki(134,3,1.2); penstroke z126e{(9u,7.7v)-(0,2.8v)}...
+z135e{right}...z136e{up}...z137e... z138e...z139e...z140e{up}; kouki(140,1,1.5);
+penstroke z135e{right}... z141e{(9u,4.6v)-(2.1u,9v)}...z142e{up}
+...z143e...z144e{down}; kouki(144,4,1); penstroke z141e{(9u,4.6v)-(2.1u,9v)}...
+z145e{down}...z146e{down}...z147e... z148e{up}; penstroke
+z145e{down}...z149e...z150e... z151e{down}...z152e{left}...z153e...
+z154e...z155e...z156e{up}; penlabels(range 1 thru 156);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitJ.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitJ.mf
new file mode 100644
index 00000000000..af8b930e1b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitJ.mf
@@ -0,0 +1,122 @@
+def the_letter_I=
+z1=(3.35u,6.25v); z2=(3.45u,6.5v); z3=(3.2u,6.75v); z4=(2.9u,6.65v);
+z5=(2.7u,7v); z6=(3.2u,7.35v); z7=(3.9u,6.5v); z8=(2.9u,5.55v); z9=(1.6u,6.8v);
+z10=(3.4u,8.3v); z11=(4.5u,7.85v); z12=(6.1u,7v); z13=(6.95u,7.8v);
+z14=(6.5u,8.3v); z15=(1.2u,0.9v); z16=(1.05u,1.1v); z17=(1.4u,1.45v);
+z18=(1.95u,0.9v); z19=(1.3u,0.35v); z20=(0.5u,1.3v); z21=(1.7u,2.5v);
+z22=(3.25u,1.6v); z23=(4.65u,0.53v); z24=(5.8u,0.85v); z25=(6.8u,2.9v);
+z26=(6.23u,4.23v); z27=(5.3u,5.8v); z28=(6.2u,6.7v); z29=(6.6u,6.4v);
+z30=(2.85u,3v); z31=(4.7u,4.5v); z32=(4.65u,3.9v); z33=(6u,2.3v); z34=(5u,1.13v);
+z35=(4.35u,1.7v); z36=(4.66u,2.15v); z37=(5u,1.85v); ka(1,-52);
+penpos2(1.5hair,0); penpos3(0.5v,90); penpos4(0.55v,90); penpos5(0.2u,0);
+ka(6,-90); ka(7,180); ka(8,90); ka(9,0); penpos10(0.6v,-90);
+penpos11(0.95uv,-138); penpos12(0.25v,-90); penpos13(hair,0); penpos14(hair,90);
+kouki(14,7,2.6); penstroke z1e{(6.1u,9v)-(0,3v)}...z2e{up}
+...z3e{left}...z4e{left}...z5e{up}... z6e...z7e...z8e...z9e...z10e...z11e...
+z12e...z13e...z14e{left}; ka(15,90); ka(16,0); ka(17,-90); ka(18,180);
+ka(19,90); penpos20(1.5hair,0); penpos21(0.55v,-90); penpos22(1.06uv,-139);
+penpos23(0.4v,-90); penpos24(1.5hair,-57); penpos25(0.55u,0);
+penpos26(0.85uv,40); penpos27(0.5u,0); penpos28(hair,-90); ka(29,180);
+kouki(29,3,2.5); z15'=z15; ka(15',-90); kouki(15',6,1.8); penstroke
+z15e{left}...z16e...z17e... z18e...z19e...z20e...z21e...z22e...
+z23e...z24e...z25e...z26e...z27e... z28e...z29e{down}; ka(30,-52); ka(31,180);
+penpos32(0.9uv,34); penpos33(0.3u,0); ka(34,90); ka(35,0); penpos36(0.5v,-90);
+penpos37(0.5u,180); filldraw z30l--z31r & z31r--z31l &
+z31l{(5.1u,0)-(4.4u,9v)}...z32r... z33r...z34l{left}...z35l{up}...z36l...
+z37l{down}..z37r{up}... z35r{down}...z34r{right}...z33l...(4.5u,3.5v)...
+z30r{z30-z31} & z30r--z30l & cycle; z40=(1.2u,0.1v); z41=(0.15u,1.4v);
+z41'=(0.23u,1.95v); z42=(2u,3.35v); z43=(3.6u,2v); z44=(2.7u,0.6v);
+z45=(2.3u,0.85v); z46=(3.8u,4.7v); z47=(3.1u,5.45v); z48=(2.6u,4.9v);
+z49=(3.1u,4.4v); z49'=(3.5u,4.75v); z50=(3.3u,5.1v); z51=(0.9u,4.1v);
+z52=(1.6u,4.5v); z53=(2.35u,3.6v); z54=(1.5u,2.7v); z55=(0.4u,4.1v);
+z56=(1.4u,5.65v); z57=(3.35u,7.3v); z58=(2u,8.65v); z59=(0.4u,7.6v);
+z60=(0.25u,7v); z61=(0.8u,4.9v); z62=(2.9u,3.45v); z63=(5.65u,2.05v);
+z63'=(5.1u,1.37v); z64=(4.8u,1.45v); z65=(5u,1.55v); z66=(5.45u,2.05v);
+z67=(4.55u,2.85v); z68=(2.7u,1.2v); z69=(3.75u,0); z70=(4.6u,0.7v);
+z70'=(3.8u,1.5v); z71=(4.8u,0.9v); z72=(5u,0.85v); z73=(6.35u,2.5v);
+z74=(5.65u,3.9v); z75=(4.4u,6.6v); z76=(5u,8v); z77=(5.65u,8v); z78=(5.3u,8.5v);
+z79=(5.9u,9v); z80=(4.9u,9v); z81=(4.5u,8.7v); z82=(4.75u,8.4v);
+z83=(6.65u,8.67v); z83'=(7u,8.6v); z83''=(7.4u,8.5v); z84=(8.4u,7.2v);
+z85=(7u,5.5v); z86=(6u,5.8v); z87=(4.6u,0.2v); z88=(7.6u,1.35v);
+z89=(8.43u,0.6v); z90=(7.9u,0); z91=(7.35u,0.5v); z92=(7.75u,v);
+z93=(8.1u,0.65v); z94=(7.9u,0.4v); z91'=z91; z95=(6.55u,0); z96=(6.6u,1.2v);
+z96'=(7.5u,3v); z97=(7.9u,2.3v); z98=(8.15u,2.7v); z99=(8.15u,3.25v);
+z100=(8.5u,3.45v); z101=(8.9u,3.1v); z102=(8.75u,2.95v); z103=(6.8u,4.5v);
+z104=(6.3u,5.7v); z105=(7.4u,6.9v); z106=(8.3u,5.9v); z107=(7.6u,5v);
+z108=(7.5u,4.35v); z109=(8u,4v); z110=(8.3u,4.35v); z111=(8u,4.6v);
+z111'=(7.85u,4.5v); z112=(6.9u,5.6v); z113=(7.5u,6.05v); z114=(7.9u,5.8v);
+z115=(7.7u,5.5v); z116=(0.7u,8.5v); z117=(0.4u,8.8v); z118=(0,8.55v);
+z119=(0.25u,8.3v); z120=(0,5.7v); z121=(-0.3u,5.5v); z122=(-0.1u,5.25v);
+z123=(0.85u,6.25v); z124=(u,6.15v); z125=(0,3.5v); z126=(-0.2u,3.7v);
+z127=(0,3v); z128=(-0.3u,2.7v); z129=(2.15u,5.85v); z130=(1.05u,6.85v);
+z131=(1.8u,7.7v); z132=(2.5u,7.1v); z133=(2.3u,6.85v); z134=(1.3u,5.6v);
+z135=(1.9u,4.9v); z136=(4.85u,4.75v); z137=(4.15u,5.2v); z138=(4.8u,6v);
+z139=(6.9u,2.6v); z140=(7.5u,3.2v); z141=(8.1u,1.4v); z13'=z13;
+z142=(8.4u,8.2v); z143=(8.1u,8.6v); z144=(4.6u,5.7v); ka(40,90); ka(41,0);
+ka(41',-9); ka(42,-90); ka(43,180); ka(44,90); ka(45,0); ka(46,0); ka(47,90);
+ka(48,180); ka(49,-90); ka(49',0); ka(50,90); ka(51,180); ka(52,90); ka(53,0);
+ka(54,-90); ka(55,180); ka(56,119); ka(57,180); ka(58,-90); ka(59,-22);
+ka(60,0); ka(61,32); ka(62,76); ka(63,0); ka(63',-90); ka(64,-124); ka(65,-90);
+ka(66,0); ka(67,90); ka(68,180); ka(69,-90); ka(70,0); ka(70',90); ka(71,-103);
+ka(72,-90); ka(73,0); ka(74,46); ka(75,0); ka(76,-51); ka(77,180); ka(78,0);
+ka(79,-90); ka(80,90); ka(81,180); ka(82,-90); ka(83,-90); ka(83',-103);
+ka(83'',-111); ka(84,180); ka(85,90); ka(86,64); ka(87,-90); ka(88,-90);
+ka(89,180); ka(90,90); ka(91,0); ka(92,-90); ka(93,180); ka(94,90); z91=z94';
+ka(94',90); ka(95,90); ka(96',0); ka(96,-49); ka(97,-46); penpos98(0.3u,0);
+penpos99(0.2uv,-35); ka(100,-90); ka(101,180); ka(102,90); ka(103,33);
+ka(104,0); ka(105,-90); ka(106,180); ka(107,90); ka(108,180); ka(109,-90);
+ka(110,0); ka(111,90); ka(111',180); ka(112,0); penpos113(0.4v,-90);
+ka(114,180); ka(115,90); ka(116,0); ka(117,90); ka(118,180); ka(119,-90);
+ka(120,90); ka(121,180); ka(122,-90); ka(123,-90); ka(124,180); ka(125,90);
+ka(126,0); ka(127,90); ka(128,180); ka(129,90); ka(130,0); ka(131,-90);
+ka(132,180); ka(133,90); ka(134,0); ka(135,-90); ka(136,44); ka(137,90);
+ka(138,-90); ka(13',-100); ka(142,0); ka(143,90); ka(144,0); penstroke
+z18e{down}...z40e...z41e... z41'e...z42e{right}...z43e...z44e... z45e{up};
+kouki(45,2,1.2); mpalla(41',1.8); penstroke z42e{right}...z46e{up}...
+z47e...z48e...z49e...z49'e...z50e{left}; kouki(50,7,2); penstroke
+z64e{(6.7u,0)-(0,5v)}... z63'e...z63e{up}...z62e...
+z61e{(0,6.4v)-(3.4u,0)}...z60e... z59e{(1.3u,9v)-(0,7.2v)}...z58e
+...z57e...z56e{(0,4.4v)-(9u,9v)} ...z55e{down}...
+z54e...z53e...z52e...z51e...{right}z42e; mpalla(60,1.5); mpalla(59,1.2);
+mpalla(61,1.2); penstroke z65e{right}...z66e{up}...
+z67e...z68e...z69e...z70e...z70'e{left}; penstroke z71e{(7.4u,0)-(0,2.75v)}...
+z72e...z73e...z74e... z136e{(u,9v)-(9u,0.35v)}...z75e...
+z76e{(6.3u,9v)-(0,4.2v)}...z77e{down}; mpalla(75,1.8); kouki(77,3,1); penstroke
+z76e{(6.3u,9v)-(0,4.2v)}... z78e{up}...z79e{right}; penstroke
+z78e{up}...z80e{left}... z81e...z82e{right}; kouki(82,6,1); penstroke
+z76e{(6.3u,9v)-(0,4.2v)}... z83e...z83'e...z83''e...z84e...z85e...
+z86e{(0,8.6v)-(9u,4.5v)}; mpalla(83,1.2); mpalla(83',1.7); mpalla(83'',1.2);
+mpalla(86,1.2); penstroke z87e{right}...z88e{right}...
+z89e...z90e...z91e...z92e...z93e... z94e...z94'e{left}...z95e{left};
+kouki(95,5,1.5); penstroke z87e{right}... z96e{(9u,3.2v)-(5.2u,0)}---z97e...
+z98e{up}...z99e{(9u,4.3v)-(5.5u,0)}... z100e{right}...z101e...z102e{left};
+kouki(102,5,1); penstroke z96e{(9u,3.2v)-(5.2u,0)}...
+z96'e{up}...z103e...z104e...z105e... z106e...z107e{left}...z108e...z109e...
+z110e...z111e{left}; kouki(111,7,1.3); penstroke z107e{left}...z112e; filldraw
+z112r{up}... z113r{(9u,4.6v)-(3.4u,9v)} & z113r{(9u,5.7v)-(0,0)}...z114r{down}
+& z114r--z114l & z114l{up}...z113l... z112l{down} & z112l--z112r & cycle;
+penstroke z114e{down}...z115e{left}; kouki(115,5,1); penstroke
+z59e{(0.8u,9v)-(0,6v)}... z116e...z117e...z118e...z119e{right}; kouki(119,6,1);
+penstroke z61e{(0,6.4v)-(3.4u,0)}... z120e...z121e...z122e{right};
+kouki(122,6,1.3); penstroke z61e{(0,6.4v)-(3.4u,0)}... z123e...z124e{down};
+kouki(124,3,1); penstroke z55e{down}...z125e...z126e{up}; kouki(126,2,1);
+penstroke z41'e{up}...z127e...z128e{down}; kouki(128,4,1.5); penstroke
+z57e{down}...z129e...z130e... z131e...z132e...z133e{left}; kouki(133,5,1.8);
+penstroke z56e{(0,4.4v)-(9u,9v)}... z134e{up}; kouki(134,2,1.3); penstroke
+z56e{(0,4.4v)-(9u,9v)}... z135e{right}; kouki(135,6,1); penstroke
+z136e{(u,9v)-(9u,0.35v)}... z137e{left}; kouki(137,7,1); penstroke
+z136e{(u,9v)-(9u,0.35v)}... z138e{right}; kouki(138,2,1);
+triaina(139,140,141,0.55); penstroke z13'e{(9u,7.2v)-(2.6u,9v)}...
+z142e...z143e{left}; kouki(143,7,1); kouki(94,5,1.3); mpalla(106,1.5);
+kouki(51,4,1.4); kouki(79,8,1.1); mpalla(58,1.2); penlabels(range 1 thru 145);
+enddef;
+
+
+.cmchar "The letter I";
+.beginchar("I",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0); the_letter_I; .endchar;
+
+.cmchar "The letter J";
+.beginchar("J",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0); the_letter_I; .endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitK.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitK.mf
new file mode 100644
index 00000000000..fe3562aa448
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitK.mf
@@ -0,0 +1,125 @@
+.cmchar "The letter K";
+.beginchar("K",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(2.2u,0.5v); z2=(2.8u,1.7v); z3=(4.17u,4.05v); z2'=(4.05u,3.15v);
+z4=(3.92u,4.75v); z5=(2.85u,5.95v); z6=(4u,7.95v); z7=(4.6u,5.85v);
+z8=(5.95u,8.8v); z9=(7.15u,7.4v); z10=(7.65u,8.2v); z11=(7.15u,8.85v);
+z12=(6.85u,8.7v); z16=(1.95u,1.95v); z17=(0.75u,3v); z18=(1.5u,3.85v);
+z19=(2.3u,3.2v); z20=(1.8u,2.7v); z21=(1.45u,2.95v); z22=(1.6u,3.2v);
+z23=(1.8u,3.15v); z27.2=(2.2u,4.7v); z24=(1.95u,3v); z25=(2.3u,1.7v);
+z26=(3.35u,3v); z27=(1u,4.2v); z28=(2.2u,5.6v); z28'=(3.1u,4.1v);
+z30=(6.6u,5.5v); z31=(7u,4.85v); z32=(7.85u,5.7v); z33=(7.5u,6.2v);
+z31'=(5.75u,4.15v); z34=(4.7u,3.1v); z35=(4.5u,2.5v); z36=(5.2u,1.9v);
+z37=(5.5u,2.4v); z38=(6.15u,3.45v); z39=(6.45u,1.95v); z40=(6.75u,1.35v);
+z41=(7.7u,1.5v); z42=(8.3u,2.2v); z43=(7.8u,2.7v); z44=(7.55u,2.4v);
+z45=(7.08u,0.5v); z46=(3.8u,4.9v); ka(1,-9); ka(2,-57); penpos3(0.8u,0);
+penpos4(uv,31); penpos5(uv,31); penpos6(1.5hair,-74); ka(7,120); ka(8,155);
+penpos9(2hair,-60); ka(10,0); ka(11,90); ka(12,180); penpos2'(0.45uv,-30);
+penpos16(0.85uv,70); penpos17(0.3u,0); penpos18(1.5hair,-90); ka(19,180);
+ka(20,90); penpos21(1.5hair,0); penpos22(0.3v,-90); penpos23(0.2uv,-135);
+ka(24,-135); ka(25,-47); penpos26(0.3u,0); ka(27,-67); ka(28,175);
+penpos27.2(0.9uv,59); ka(28',-20); penpos30(0.8uv,-150); ka(31,120); ka(32,180);
+ka(33,-90); z33'=z33; ka(33',90); ka(31',120); ka(34,160); ka(35,180);
+ka(36,-90); ka(37,0); penpos38(0.8uv,-150); penpos39(0.8u,180);
+penpos40(0.9uv,-132.5); penpos41(1.5hair,-90); ka(42,0); ka(43,90); ka(44,180);
+ka(45,0); ka(46,-53); filldraw z1r{(3.5u,9v)-(2.1u,0)}...
+z2r{(9u,6.7v)-(0.7u,0)}... (4.55u,4.1v){up}... z4r{(0,8.7v)-(7.25u,0)} &
+z4r--z4l & z4l{(7.25u,0)-(0,8.7v)}... (3.8u,3.55v){down}...
+z2l{(0.7u,0)-(9u,6.7v)} & z2l{(0.8,9v)-(3.2u,0)}... z16r...z17r{up} & z17r--z17l
+& z17l{down}... z16l...flex(z16l,(2.2u,1.2v),z1l) & z1l--z1r & cycle; penstroke
+z4e{(0,8.7v)-(7.25u,0)}...z5e... z6e{(6u,9v)-(0,6.6v)}; penstroke
+z17e{up}...z18e...z19e... z20e...z21e...z22e...z23e...z24e; filldraw
+z25r{(9u,8.2v)-(0.7u,0)}... z26r{up}...(3.55u,3.45v)...
+z27.2r...z28l{(1.8u,9v)-(2.8u,0)} & z28l--z28r & flex(z28r,(1.9u,4.8v),z27l) &
+z27l--z27r & z27r{(9u,7v)-(0,3.8v)} ...z27.2l...(3.1u,3.45v)...z26l{down}...
+z25l{(0.7u,0)-(9u,8.2v)} & z25l--z25r & cycle; filldraw z6r{(6u,9v)-(0,6.6v)}...
+(5.7u,7.4v)...z7r{z7-z9} ...z28'l{(1.4u,0)-(5.1u,9v)} & z28'l--z28'r &
+z28'r{(5.1u,9v)-(1.4u,0)}... z7l---z9r...z10r{up} & z10r--z10l &
+z10l{down}...z9l... (6.2u,7.75v)...z8l{(6.05u,9v)-(1.8u,0)} & z8l--z8r &
+z8r{(1.8u,0)-(6.05u,9v)}... (5.5u,8.3v)... z6l{(0,6.6v)-(6u,9v)} & z6l--z6r &
+cycle; penstroke z10e{up}...z11e...z12e{down}; kouki(12,4,1.5); filldraw
+z28'r{(5.1u,9v)-(1.4u,0)}... z46r... z30r{(8.7u,0)-(4.4u,9v)}... z31'r{z31'-z31}
+& z31'r--z31'l & z31'l{z31-z31'}...z31l...z32l{up}... z33l{left} & z33l--z33r &
+z33r{right}... z32r...z31r{z31'-z31} & z31r{up}...z30l{(5u,9v)-(9u,2.2v)}...
+z46l...z28'l{(1.4u,0)-(5.1u,9v)} & z28'l--z28'r & cycle; filldraw
+z31'r{z31'-z31}... z34r{(3.4u,0)-(7.2u,9v)}... z35r{down} & z35r--z35l &
+z35l{up}... z34l{(7.2u,9v)-(3.4u,0)}... z38r...z39r{down}...z40r...z45l{down} &
+z45l--z45r & z45r{up}... z41r{(9u,2.1v)-(4.6u,0)}... z42r{up} & z42r--z42l &
+z42l{down}... z41l{(4.6u,0)-(9u,2.1v)}... z40l...z39l{up}...z38l... z31'l{left}
+& z31'l--z31'r & cycle; kouki(33',7,1.5); penstroke z35e{down}...z36e...z37e{up};
+kouki(37,1,2); penstroke z42e{up}...z43e...z44e{down}; kouki(44,4,1.8);
+z50=(2.45u,0.4v); z51=(3.25u,1.75v); z52=(4.8u,4.1v); z53=(4.3u,5.46v);
+z54=(3.6u,6.9v); z55=(4.6u,7.75v); z56=(5.3u,7v); z57=(4.7u,6.45v);
+z58=(4.3u,6.85v); z59=(4.5u,7.15v); z60=(2.65u,0.2v); z61=(4.4u,1.75v);
+z62=(5.7u,0.8v); z63=(6.55u,0); z64=(6.85u,0.3v); z65=(4.9u,0);
+z66=(4.15u,0.65v); z67=(4.6u,1.25v); z68=(4.95u,v); z69=(4.775u,0.73v);
+z70=(4.73u,0.53v); z71=(5u,0.35v); z72=(2.1u,6.5v); z73=(4.6u,9.05v);
+z73'=(6u,8.6v); z74=(6.8u,7.2v); z75=(5.5u,5.5v); z76=(2.2u,8.9v);
+z77=(0.7u,7.5v); z78=(1.4u,5v); z79=(0.8u,4.2v); z80=(0.3u,4.6v); z81=(0.6u,5v);
+z82=(1.8u,5.4v); z83=(2.1u,5.8v); z84=(3.2u,6.8v); z85=(2.25u,8v);
+z86=(0.25u,8.5v); z87=(0.7u,9v); z88=(1.1u,8.7v); z89=(0.8u,8.4v);
+z90=(1.4u,7.3v); z91=(1.9u,6.7v); z92=(2.25u,7v); z93=(2.15u,7.2v);
+z94=(1.95u,7.4v); z95=(2.05u,7.55v); z96=(3.8u,8.35v); z97=(3.45u,8.05v);
+z98=(3u,8.55v); z99=(3.65u,9.1v); z100=(4.95u,7.6v); z101=(2.9u,3.2v);
+z102=(5u,0.8v); z103=(7.2u,2.4v); z104=(6.15u,4.14v); z105=(8.2u,5.75v);
+z106=(7.4u,6.55v); z107=(6.9u,6.1v); z108=(7.3u,5.7v); z108'=(7.55u,5.85v);
+z109=(8u,6.65v); z110=(8.6u,7.3v); z111=(8.15u,7.8v); z112=(7.8u,7.4v);
+z113=(8.1u,7.1v); z113'=(8.3u,7.3v); z114=(7.9u,8.6v); z115=(8.2u,9v); z116=z30;
+z117=(7.6u,3.8v); z118=(8.15u,4.3v); z119=(7.6u,4.8v); z120=(7.4u,4.5v);
+z121=(1.7u,3.05v); z122=(0.2u,1.8v); z123=(0.8u,0.35v); z124=(0.5u,0);
+z125=(0.2u,0.3v); z126=(1.2u,0.75v); z126.1=(2u,1.5v); z126.2=(1.4u,2.25v);
+z126.3=(0.8u,1.7v); z126.4=(1.1u,1.25v); z127=(7.4u,0.2v); z128=(7.55u,0.9v);
+z129=(8.6u,2.2v); z130=(7.9u,3v); z131=(8u,1.15v); z132=(8.5u,0.5v);
+z133=(8.1u,0.1v); z134=(7.7u,0.5v); z135=(7.9u,0.8v); z136=(8.15u,0.7v);
+z137=(5u,5.35v); z138=(5.85u,4.7v); z139=(5.4u,4.2v); z140=(5u,4.6v);
+z141=(5.3u,4.95v); z142=(5.5u,4.8v); z143=(8u,3.65v); z144=(8.35u,3.5v);
+z145=(3.1u,0.65v); z146=(3.35u,0.55v); z147=(3.6u,0.5v); z148=(3.75u,0.8v);
+z150=(1.2u,7.5v); z151=(1.85u,6.35v); z152=(0,6.4v); ka(50,-9); ka(51,-50);
+ka(52,0); ka(53,37); ka(54,0); ka(55,-90); ka(56,180); ka(57,90); ka(58,0);
+ka(59,-90); ka(60,-9); ka(61,-90); ka(62,180); ka(63,-90); ka(64,0); ka(65,90);
+ka(66,0); ka(67,-90); penpos68(0.3u,180); penpos69(0.35uv,141);
+penpos70(0.2u,180); ka(71,-114); ka(72,0); ka(73,-90); ka(73',-125); ka(74,180);
+ka(75,90); ka(76,90); ka(77,180); ka(78,180); ka(79,90); ka(80,0); ka(81,-90);
+mpalla(82,1.3); ka(83,-90); ka(84,0); ka(85,90); ka(86,0); ka(87,-90);
+ka(88,180); ka(89,90); ka(90,180); ka(91,-90); penpos92(0.2u,0);
+penpos93(0.3uv,53); penpos94(.15u,0); ka(95,-45); ka(96,180); z96'=z96;
+ka(96',0); ka(97,90); ka(98,0); ka(99,-90); ka(100,180); ka(101,180);
+ka(102,-90); ka(103,0); ka(104,90); z104'=z104; ka(104',-90); ka(105,0);
+ka(106,90); ka(107,180); ka(108,-90); ka(108',-22); ka(109,-90); ka(110,0);
+ka(111,90); ka(112,180); ka(113,-90); ka(113',0); ka(114,0); ka(115,-90);
+ka(116,180); ka(117,-90); ka(118,0); ka(119,90); ka(120,180); ka(121,90);
+ka(122,180); ka(123,180); ka(124,90); ka(125,0); ka(126,-90); ka(126.1,0);
+ka(126.2,90); ka(126.3,180); ka(126.4,-90); ka(127,0); ka(128,-40); ka(129,0);
+ka(130,90); ka(131,-90); ka(132,180); ka(133,90); ka(134,0); ka(135,-90);
+ka(136,180); ka(137,-90); ka(138,180); ka(139,90); ka(140,0); ka(141,-90);
+ka(142,180); ka(143,-90); ka(144,180); penpos145(0.15v,-90);
+penpos146(0.3uv,-124); penpos147(0.2v,-90); ka(148,0); penstroke
+z50e{(3.5u,9v)-(2.1u,0)}... z51e{(9u,6.4v)-(1.1u,0)}...z52e{up}...
+z53e...z54e{up}... z55e...z56e...z57e...z58e...z59e{right}; kouki(59,8,1.7);
+penstroke z60e{(3.5u,9v)-(2.1u,0)}... z61e...z62e{down}...z63e...z64e{up};
+kouki(64,1,1.2); penstroke z62e{down}...z65e...z66e...
+z67e{right}...z68e{down}...z69e... z70e{down}...z71e; z28''=z28; ka(28'',0);
+penstroke z28''e...z72e...z73e...z73'e...z74e
+...z75e...z58e...z76e...z77e{down}...z78e ...z79e...z80e...z81e{right};
+mpalla(76,1.2); mpalla(77,1.4); triaina(150,151,152,0.5); kouki(81,8,1.2);
+penstroke z77e{down}...z83e...z84e... z85e{left}...z86e....z87e...z88e...z89e;
+kouki(89,5,1); penstroke z85e{left}... z90e...z91e...z92e{up}...z93e...
+z94e{up}...z95e; kouki(96',1,2); z51''=z51'=z51; ka(51',-145); ka(51'',35);
+penstroke z96e{down}...z97e...z98e... z99e...z100e...z101e...z51'e...
+z102e...z103e...z104e{left}; penstroke z104'e{right}...z105e...z106e...
+z107e...z108e...z108'e; penstroke z73'e{(9u,6.4v)-(5.5u,9v)}...
+z109e...z110e...z111e...z112e... z113e...z113'e{up}; kouki(113,1,1.2); penstroke
+z111e{left}...z10e{up}... z115e{right}; kouki(115,8,1.1); z30'=z30; ka(30',180);
+penstroke z30'e{down} ...z117e...z118e...z119e... z120e{down}; kouki(120,4,1.6);
+penstroke z51''e...z121e...z122e...z123e ...z124e...z125e{up}; kouki(125,2,1);
+penstroke z122e{down}...z126e... z126.1e...z126.2e...z126.3e... z126.4e{right};
+kouki(126.4,6,1); penstroke z127e{up}...
+z128e{(u,v)-(0,0)}...z129e...z130e{left}; penstroke z128e{(u,v)-(0,0)}...z131e...
+z132e...z133e...z134e...z135e... z136e{down}; kouki(136,3,1); penstroke
+z28'e{(5.1u,9v)-(1.4u,0)}... z137e...z138e...z139e...z140e...
+z141e...z142e{down}; kouki(142,3,1.1); penstroke z103e...z143e...z144e{down};
+kouki(144,3,1); penstroke z60e{(3.5u,9v)-(2.1u,0)}...
+z145e...z146e{(4.5u,0)-(0,2.35v)}... z147e{right}...z148e; penlabels(range 1
+thru 150);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitL.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitL.mf
new file mode 100644
index 00000000000..b88fe0bf03e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitL.mf
@@ -0,0 +1,107 @@
+.cmchar "The letter L";
+.beginchar("L",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(2.15u,1.45v); z2=(2.3u,1.7v); z3=(2.1u,1.95v); z4=(1.7u,1.9v);
+z5=(1.55u,2.3v); z6=(2.1u,2.65v); z7=(2.9u,1.7v); z8=(1.9u,0.8v); z9=(0.75u,2v);
+z10=(2.3u,3.4v); z11=(3.65u,2.75v); z12=(4.9u,1.4v); z13=(6.35u,v);
+z14=(7.9u,2.5v); z15=(7.1u,3.4v); z16=(6.4u,3v); z17=(6.45u,2.6v);
+z18=(6.85u,2.45v); z19=(6.8u,2.05v); z20=(6.5u,1.9v); z21=(4.05u,2.25v);
+z22=(4.2u,2.05v); z23=(4.3u,1.9v); z24=(4.4u,1.85v); z25=(4.4u,1.7v);
+z26=(4.6u,1.6v); z24'=(5.1u,3.3v); z25'=(3.85u,4.55v); z26'=(3.75u,5.2v);
+z27=(2.35u,3.95v); z28=(5.8u,4v); z29=(5.55u,4.8v); z30=(4.3u,5.7v);
+z31=(4.05u,6.5v); z32=(4.5u,7.4v); z33=(6.45u,8.3v); z34=(7.95u,7.25v);
+z35=(5u,5.25v); z36=(8.35u,8v); z37=(7.65u,8.7v); z38=(7.1u,8.2v);
+z39=(7.45u,7.7v); z40=(7.8u,8v); ka(1,-53); penpos2(0.2u,0); penpos3(0.45v,90);
+penpos4(0.6v,90); penpos5(0.3u,0); penpos6(1.2hair,-90); ka(7,180); ka(8,90);
+penpos9(1.2hair,0); penpos10(0.55v,-90); penpos11(0.85uv,-139);
+penpos12(0.9uv,-138); penpos13(0.5v,-90); penpos14(1.2hair,0); ka(15,90);
+penpos16(0.3u,180); penpos17(0.55uv,-123); penpos18(0.55uv,-121);
+penpos19(0.15u,180); ka(20,90); ka(21,-21.5); ka(22,-52); ka(23,-53);
+ka(24,-55); ka(25,-59); ka(26,-59); penpos24'(0.2u,0); penpos25'(0.75uv,69);
+ka(26',180); ka(27,-60); penpos28(0.4u,0); penpos29(0.85uv,46);
+penpos30(0.9uv,32); penpos31(0.55u,0); penpos32(1.5hair,-57); ka(33,156);
+ka(34,-56); ka(36,0); ka(37,90); ka(38,180); ka(39,-90); ka(40,0); ka(35,125);
+penstroke z1e...z3e{left}... z4e...z6e...z7e...z8e...
+z9e...z10e...z11e...z12e...z13e... z14e...z15e... z17e{(9u,1.3v)-(0,6.2v)}...
+z18e{(9u,1.3v)-(0,6.2v)} ...z20e{left}; filldraw z22l{(9u,6v)-(2u,0)}...
+z24'l...z25'l{(0,4.6v)-(9u,3.6v)}... z27r{z27-z34} & z27r--z27l &
+z27l{z34-z27}...z26'r{up} & z26'r--z26'l & z26'l{down}...
+z25'r{(9u,2.5v)-(0,6.75v)}... z24'r...z22r{(2u,0)-(9u,6v)} & z22r--z22l & cycle;
+penstroke z23e{(9u,5v)-(1.6u,0)}... z28e...z29e...z30e...z31e...
+z32e{(7.5u,9v)-(0,5v)}; filldraw z32r{(7.5u,9v)-(0,5v)}...
+(6.25u,7.1v)...z35r{z35-z34} & z35r--z35l & z35l---z34r...z36r{up} & z36r--z36l
+& z36l{down}...z34l{z35-z34} ...(6.6u,7.35v)...z33l{z33-z35} & z33l--z33r &
+z33r{z35-z33}... (6u,7.9v)...z32l{(0,5v)-(7.5u,9v)} & z32l--z32r & cycle;
+penstroke z36e{up}...z37e...z38e... z39e...z40e{up}; kouki(40,1,1.5);
+z41=(2.85u,4.15v); z42=(0.4u,2.5v); z43=(0.9u,0.8v); z44=(1.9u,0.5v);
+z45=(3.15u,1.7v); z46=(2u,2.9v); z47=(1.05u,2v); z48=(1.6u,1.2v);
+z49=(1.9u,1.1v); z50=(2.6u,1.8v); z51=(2u,2.4v); z41'=(1.3u,3.85v);
+z45'=(2.8u,2.6v); z52=(3.4u,0.5v); z53=(2.9u,0.1v); z54=(4.45u,0.15v);
+z54'=(3.7u,1.45v); z55=(6.1u,0.3v); z56=(7.3u,0.6v); z57=(8.4u,2.5v);
+z56'=(8u,1.3v); z58=(8.2u,3.4v); z59=(6.7u,4.3v); z60=(5.2u,3v);
+z61=(6.45u,1.6v); z62=(7.4u,2.5v); z63=(6.8u,3v); z64=(8.6u,0.3v); z65=(8.3u,0);
+z66=(8u,0.25v); z67=(8.5u,4v); z68=(6.15u,3v); z69=(6.8u,4.3v); z70=(7.9u,5.45v);
+z71=(8.7u,5.8v); z72=(8.6u,4.7v); z73=(8u,4.15v); z74=(7.6u,4.5v);
+z75=(5.9u,3.1v); z75'=(6.4u,4.2v); z76=(5.55u,5.65v); z77=(4.8u,7.2v);
+z78=(6.5u,8.8v); z79=(8u,7.2v); z80=(6.8u,5.85v); z81=(5.6u,7v);
+z82=(6.5u,7.9v); z83=(6.9u,7.6v); z84=(8.35u,8v); z85=(8.9u,8.35v);
+z86=(6.7u,5.5v); z87=(5.15u,8.25v); z88=(3.5u,8.7v); z89=(2.35u,8.4v);
+z90=(0.9u,7.7v); z91=(0.35u,8.4v); z92=(0.8u,8.9v); z93=(1.25u,8.75v);
+z94=(1.7u,8.65v); z95=(1.3u,8.4v); z95'=(0.95u,8.15v); z96=(u,6.4v);
+z97=(1.85u,5v); z98=(u,5.85v); z99=(0.35u,6.15v); z100=(0.3u,5.15v);
+z101=(0.9u,4.55v); z102=(1.35u,5v); z103=(1.05u,5.35v); z104=(4.75u,6.25v);
+z105=(3.1u,7.7v); z106=(2.5u,7.5v); z107=(2.05u,6.6v); z108=(2.25u,6v);
+z109=(3.2u,5.65v); z110=(0,0.65v); z111=(0.55u,0); z112=(u,0.3v);
+z113=(0.65u,0.8v); z114=(0.45u,0.7v); z115=(4.6u,2.9v); z120=(7.7u,1.9v);
+z121=(7.9u,2.5v); z122=(8.85u,1.4v); z130=(-0.2u,3.4v); z131=(0.3u,4.3v);
+z132=(1.1u,2.7v); z140=(3.5u,7v); z141=(2.9u,7.2v); z142=(4u,8.2v);
+z150=(3u,7v); z151=(3.7u,6.7v); z152=(1.9u,5v); z160=(2.1u,7.15v);
+z161=(1.8u,6.2v); z162=(0.25u,7.7v); ka(41,90); ka(41',123); ka(42,174);
+ka(43,-124); ka(44,-90); ka(45,0); ka(45',50); ka(46,90); ka(47,180);
+ka(48,-113); ka(49,-90); ka(50,0); ka(51,90); ka(52,180); ka(53,90); ka(54,-90);
+ka(55,-87); ka(54',-139); ka(56,-62); ka(56',-28); ka(57,0); ka(58,23);
+ka(59,90); ka(60,180); ka(61,-90); ka(62,0); ka(63,90); ka(64,180); ka(65,90);
+ka(66,0); ka(67,-90); ka(68,-36); ka(69,-17); ka(70,-90); ka(71,0); ka(72,180);
+ka(73,90); ka(74,0); ka(75,-35); ka(75',0); ka(76,50); ka(77,0); ka(78,-90);
+ka(79,180); ka(80,90); ka(81,0); ka(82,-90); ka(83,-153); ka(84,-90); ka(85,0);
+ka(86,0); ka(87,61); ka(88,90); ka(89,121); ka(90,90); ka(91,0); ka(92,-90);
+ka(93,-134); ka(94,-90); ka(95,180); ka(95',90); ka(96,180); ka(97,0); ka(98,90);
+ka(99,0); ka(100,180); ka(101,-90); ka(102,0); ka(103,90); ka(104,0);
+ka(105,90); ka(106,128); ka(107,180); ka(108,-129); ka(109,-112); ka(110,180);
+ka(111,-90); ka(112,0); ka(113,90); ka(114,180); ka(115,0); penstroke
+z21e{(8.3u,9v)-(2.7u,0)}... z41e{left}...z41'e...z42e...z43e... z44e...z45e...
+z45'e{(0,5.4v)-(5.4u,0)}...z46e... z47e...z48e...z49e...z50e...z51e;
+mpalla(42,1.8); z45''=z45'; ka(45'',-134); penstroke z45''e{(5.4u,0)-(0,5.4v)}...
+z52e...z53e{left}; kouki(53,5,1); penstroke z54'e{(5u,0)-(0,5.8v)}...
+z54e{right}; kouki(54,6,1); penstroke z45''e{(5.4u,0)-(0,5.4v)}...
+z54'e{(5u,0)-(0,5.8v)}... z55e...z56e{(9u,1.4v)-(6u,0)}...
+z56'...z57e...z58e...z59e...z60e... z61e...z62e...z63e; mpalla(56',1.5);
+mpalla(55,1.2); triaina(120,121,122,0.6); penstroke
+z56e{(9u,1.4v)-(6u,0)}...z64e...z65e... z66e{up}; kouki(66,2,1.2); penstroke
+z58e...z67e{right}; kouki(67,8,1.1); penstroke z26e{(9u,4.3v)-(2u,0)}...
+z68e...z69e...z70e{right}...z71e{up}; kouki(71,1,1.6); penstroke
+z70e{right}...z72e...z73e... z74e{up}; kouki(74,2,2); z77'=z87; ka(77',-39);
+z76'=(6.2u,5v); ka(76',30); penstroke z25e{(9u,4.3v)-(2u,0)}...
+z75e...z75'e...z76'e... z76e...z77e...z77'e...
+z78e...z79e...z80e...z81e...z82e... z83e{down}; kouki(83,3,1); z84'=(7.5u,8.4v);
+ka(84',-121); penstroke z84'e...z84e...z85e{up}; kouki(85,1,1.5); penstroke
+z75'e{(7.8u,9v)-(5.2u,0)}... z86e...z87e...z88e...
+z89e{(0,7v)-(3.4u,9v)}...z90e...z91e... z92e...z93e{(9u,2v)-(u,9v)}...
+z94e{right}; kouki(94,6,1.3); penstroke z93e{(9u,2v)-(u,9v)}...
+z95e...z95'e{left}; kouki(95',5,1.3); mpalla(89,1.6); z41''=z41; ka(41'',-90);
+penstroke z89e{(0,7v)-(3.4u,9v)}... z96e...z41''e{right}; mpalla(41',1.5);
+z41.2=z41'; ka(41.2,-55); penstroke z41.2... z97e...z98e{left}...z99e{up};
+kouki(99,2,1.2); penstroke z98e{left}...z100e...z101e... z102e...z103e{left};
+kouki(103,7,1.8); penstroke z41''e{right}...z104e...
+z105e...z106e...z107e...z108e--- z109e; z48'=z48; ka(48',66); penstroke
+z48'e{(0,2v)-(4u,0)}... z110e{down}...z111e...z112e...z113e ...z114e{down};
+kouki(114,4,1.3); penstroke z21e{(9u,6v)-(1.7u,0)}... z115e{up};
+kouki(115,1,1.1); triaina(130,131,132,0.4); triaina(140,141,142,0.5);
+triaina(150,151,152,0.39); triaina(160,161,162,0.5); z107.1=(3.2u,5.65v);
+z107.2=(3.6u,5.9v); z107.3=(3.95u,5.4v); z107.4=(3.4u,5.25v); filldraw
+z107.1{z107.3-z107.1}... z107.4{z107.4-z107.2} & z107.4{z107.2-z107.4}...
+z107.3{z107.3-z107.1} & z107.3{z107.1-z107.3}... z107.2{z107.2-z107.4} &
+z107.2{z107.4-z107.2}... z107.1{z107.1-z107.3} & cycle; penlabels(range 1 thru
+170);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitM.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitM.mf
new file mode 100644
index 00000000000..7fead3879ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitM.mf
@@ -0,0 +1,123 @@
+.cmchar "The letter M";
+.beginchar("M",8.9u#+1mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(2u,0.6v); z2=(2.5u,1.5v); z3=(1.95u,1.65v); z4=(0.65u,2.35v);
+z5=(0.45u,3.05v); z6=(1.4u,4.1v); z7=(2.2u,3.4v); z8=(1.65u,2.8v);
+z9=(1.2u,3.15v); z10=(5.25u,0.7v); z19=(5.9u,1.45v); z11=(5.2u,1.7v);
+z12=(3.7u,2.4v); z13=(3.4u,3.1v); z14=(4.35u,4.3v); z15=(5.3u,3.5v);
+z16=(4.65u,2.8v); z17=(4.05u,3.3v); z18=(8.15u,0.55v); z29=(7.85u,1.45v);
+z20=(8.8u,1.5v); z21=(9.5u,2.3v); z22=(6.6u,2.2v); z23=(6.2u,2.65v);
+z24=(5.8u,2.35v); z25=(6u,2v); z26=(8.85u,3.05v); z27=(8.3u,2.5v);
+z28=(8.7u,2.1v); z29=(7.85u,1.45v); z30=(7.37u,2.3u); z31=(7.1u,4.8v);
+z32=(7.4u,5.75v); z33=(8.05u,6.45v); z12'=z12; z34=(5.1u,5.45v);
+z35=(4.05u,7.3v); z36=(1.95u,7.2v); z37=(0.9u,6.85v); z38=(0,7.7v);
+z39=(0.6u,8.2v); z40=(0.95u,8.1v); z41=(1.4u,7.85v); z42=(1.65u,8.3v);
+z43=(1.7u,1.8v); z44=(3.15u,4.45v); z45=(2.45u,5.6v); z46=(u,5.3v);
+z47=(2.55u,6.4v); z48=(5.8u,3.45v); z49=(5.65u,3.7v); z50=(6.05u,4.05v);
+z51=(6.5u,3.5v); z52=(5.65u,2.8v); z53=(4.1u,5v); z54=(5u,7.2v);
+z55=(6.3u,7.75v); z56=(7.15u,7.35v); z57=(8.1u,6.75v); z58=(9u,7.6v);
+z59=(8.5u,8.1v); z60=(8.2u,7.8v); ka(1,0); ka(2,-58); penpos3(0.85uv,46);
+penpos4(0.75uv,53.5); penpos5(0.35u,0); ka(6,-90); ka(7,180); ka(8,90); ka(9,0);
+ka(10,0); ka(19,-58); penpos11(uv,49); penpos12(0.65uv,42.5); penpos13(0.3u,0);
+ka(14,-90); ka(15,180); ka(16,90); ka(17,0); ka(12',-47); ka(18,0);
+penpos20(0.2uv,-57); ka(21,0); ka(26,90); ka(27,180); ka(28,-90); ka(22,0);
+ka(23,90); ka(24,180); ka(25,-90); penpos29(0.85uv,56.5); penpos30(0.75u,0);
+penpos31(0.65u,0); penpos32(0.3uv,-34); ka(33,-58); penpos34(0.8u,0);
+penpos35(0.9uv,61); penpos36(0.8uv,121); penpos37(0.6v,90); ka(38,0);
+penpos39(0.3v,-90); penpos40(0.47uv,-138); penpos41(0.15v,-90); ka(42,0);
+ka(43,-39); penpos44(0.55u,0); penpos45(0.8uv,35); ka(47,180); ka(46,-61);
+ka(48,90); ka(49,0); ka(50,-90); ka(51,180); ka(52,90); ka(53,0);
+penpos54(1.5hair,-40); penpos55(0.4v,-90); penpos56(0.9uv,-140);
+penpos57(0.3v,-90); ka(58,0); ka(59,90); ka(60,180); filldraw z1l{up}...
+z3l{(0,2.6v)-(3.5u,0)}... z4l{(0,2.5v)-(2.3u,0)}...
+z5l{(1.3u,9v)-(0,1.7v)}...z6l{right} & z6l--z6r & z6r{left}...
+z5r{(1.6u,0)-(0,5.1v)}...z4r... z3r{(4.8u,0)-(0,3.6v)}... z2l{(3.15u,0)-(0,7v)}
+& z2l{(9u,5.6v)}...z12'l{(9u,7v)-(1.1u,0)} & z12'l--z12'r &
+z12'r{(1.1u,0)-(9u,7v)}...z2r{(-9u,-5.6v)} ...z1r{down} & z1r--z1l & cycle;
+penstroke z6e{right}...z7e...z8e... z9e{up}; kouki(9,2,2); filldraw
+z43r{(8u,9v)-(0.2u,0)}... z44r...(3.2u,5.3v)...z45r...z47l{up} & z47l--z47r &
+z47r{(0,3.5v)-z47}... z46l{z46-(9u,9v)} & z46l--z46r &
+z46r{(9u,8v)-z46}...z45l...z44l... z43l{(0.2u,0)-(8u,9v)} & z43l--z43r & cycle;
+penstroke z12'e{(9u,7v)-(1.1u,0)}... z34e...z35e...z36e...z37e...z38e...
+z39e...z40e...z41e...z42e{up}; filldraw z10l{up}...z11l...z12l...
+z13l...z14l{right} & z14l--z14r & z14r{left}...z13r...z12r...z11r
+...z19l{(6.4u,0)-(3u,9v)} & z19l{(9u,3.3v)-(3.4u,0)}...z22l{up} & z22l--z22r &
+z22r{down}... z19r{(3.4u,0)-(9u,3.3v)}... z10r{down} & z10r--z10l & cycle;
+penstroke z14e{right}...z15e...z16e... z17e{up}; kouki(17,2,1.5); penstroke
+z22e{up}...z23e...z24e... z25e{right}; kouki(25,6,1.1); filldraw
+z18l{up}...z29l... (7.1u,1.8v)...z30l... z31l...z32l...z33l{(9u,6.8v)-z33} &
+z33l--z33r & z33r{z33-(9u,6.8v)}... z32r...z31r...z30r...z29r...z20l ...z21l{up}
+& z21l--z21r & z21r{down}...z20r...z18r{down} & z18r--z18l & cycle; penstroke
+z21e{up}...z26e...z27e... z28e{right}; kouki(28,6,1.8); penstroke
+z48e{left}...z49e...z50e... z51e...z52e...z53e{up}...z54e...
+z55e...z56e{(9u,5.2v)-(5.7u,9v)} ...z57e...z58e...z59e... z60e{down};
+kouki(60,4,1.3); mpalla(53,1.4); z48'=z48; ka(48',-90); kouki(48',6,1.2);
+z61=(1.75u,0.35v); z62=(1.1u,1.3v); z63=(0.6u,0.7v); z64=(1.1u,0.3v);
+z65=(1.5u,0.7v); z66=(1.1u,v); z67=(0.95u,0.85v); z68=(-0.2u,3v);
+z69=(-0.15u,3.5v); z70=(0.7u,4.5v); z71=(1.3u,4.6v); z72=(2.4u,3.6v);
+z73=(1.6u,2.5v); z74=(0.9u,3.3v); z75=(1.1u,3.7v); z76=(2.2u,0.4v);
+z77=(4u,2.15v); z78=(5.85u,5.5v); z79=(5.7u,6.5v); z80=(5u,7.75v);
+z81=(3.15u,8.55v); z82=(0.05u,6.1v); z83=(2.2u,3.85v); z84=(3.8u,5.5v);
+z85=(2.6u,6.75v); z86=(1.5u,6v); z87=(2.2u,4.9v); z88=(3u,5.7v);
+z89=(0.4u,4.5v); z90=(-0.1u,5.1v); z91=(0.1u,5.5v); z92=(0.5u,6.15v);
+z93=(0.1u,6.6v); z94=(-0.2u,6.3v); z95=(0.45u,5.6v); z96=(0.8u,5.2v);
+z97=(0.5u,4.75v); z98=(0.6u,5.8v); z99=(0,7.7v); z100=(-0.5u,8.25v);
+z101=(-0.2u,8.6v); z102=(3.8u,1.3v); z103=(4.8u,0.45v); z104=(4.2u,-0.2v);
+z105=(3.65u,0.3v); z106=(4u,0.7v); z107=(4.2u,0.6v); z108=(4.1u,0.2v);
+z109=(4.4u,0.15v); z110=(4.7u,8.55v); z111=(4.3u,8.2v); z112=(4.5u,7.9v);
+z113=(6.6u,8.45v); z114=(7.6u,8v); z115=(8.8u,7v); z114'=(5.5u,8.5v);
+z116=(9.5u,7.9v); z117=(8.65u,8.6v); z118=(7.4u,7v); z119=(5.25u,0);
+z120=(7.4u,2.05v); z121=(8.4u,4.1v); z122=(7.6u,6.1v); z123=(6.6u,6.4v);
+z124=(5.45u,5.5v); z125=(6.4u,4.55v); z126=(7.15u,5.2v); z127=(6.5u,5.8v);
+z128=(6.15u,5.5v); z129=(6.5u,1.15v); z130=(7.25u,0.85v); z131=(6.8u,-0.15v);
+z132=(6.3u,0.3v); z133=(6.65u,0.65v); z134=(6.7u,0.35v); z135=(6.9u,0.2v);
+z136=(8.5u,-0.05v); z137=(9.15u,0.6v); z138=(8.85u,0.95v); z139=(8.7u,1.8v);
+z140=(7.9u,2.7v); z141=(7.7u,4.3v); z141'=(7.9u,5.8v); z142=(8.8u,6.2v);
+z143=(9.5u,5.6v); z144=(9.3u,5.15v); z145=(8.7u,5.4v); z146=(8.8u,4.5v);
+z147=(8.6u,4.95v); ka(61,0); ka(62,90); ka(63,180); ka(64,-90); ka(65,0);
+ka(66,90); ka(67,180); ka(68,0); ka(69,-17.5); ka(70,-65); ka(71,-90);
+ka(72,180); ka(73,90); ka(74,0); ka(75,-50); ka(76,-30); ka(77,-50); ka(78,0);
+ka(79,15); ka(80,45); ka(81,90); ka(82,180); ka(83,-90); ka(84,0); ka(85,90);
+ka(86,180); ka(87,-90); ka(88,0); ka(89,90); ka(90,0); ka(91,-51); ka(92,0);
+ka(93,90); ka(94,180); ka(95,-90); ka(96,180); ka(97,90); ka(99,90);
+ka(100,0); ka(101,-90); ka(102,-90); ka(103,180); ka(104,90); ka(105,0);
+ka(106,-90); penpos107(0.25uv,-160); penpos108(0.222uv,-157); ka(114,-146);
+ka(109,-90); ka(110,90); ka(111,180); ka(112,-90); ka(113,-90); ka(115,-90);
+ka(116,0); ka(117,90); ka(118,180); ka(119,-23); ka(120,-42); ka(121,0);
+ka(122,48); ka(123,90); ka(124,180); ka(125,-90); ka(126,0); ka(127,90);
+ka(128,180); ka(129,-90); ka(130,-139); ka(131,90); ka(132,0);
+penpos133(0.2uv,-134); penpos134(0.2u,180); ka(135,-90); ka(136,-90);
+ka(137,0); ka(138,90); ka(139,90); ka(140,0); ka(141,0); ka(141',-29);
+ka(142,-90); ka(143,180); ka(144,131); ka(145,0); ka(146,180); penstroke
+z61e{up}...z62e{left}... z63e...z64e...z65e... z66e...z67e{down};
+kouki(67,4,1.1); penstroke z62e{left}...z68e...z69e...
+z70e...z71e...z72e...z73e...z74e... z75e{(7u,9v)-z75}; z88'=z47+(0,-0.1v);
+ka(88',90); penstroke z76e{(7u,9v)-z76}... z77e...z78e...z79e...z80e...z81e...
+z82e...z83e...z84e...z85e...z86e{down}... z87e...z88e...z88'e; z70'=z70;
+ka(70',107); penstroke z86e{down}... z70'e...z89e...z90e... z91e...z95e...
+z96e...z97e{left}; kouki(97,5,1.2); mpalla(98,1.1); penstroke
+z91e{(4u,9v)-z91}...z92e... z93e...z94e{down}; kouki(94,4,1.1); z99'=(u,7.95v);
+ka(99',121); penstroke z99'e{(-u,-0.4v)}...z99e ...z100e...z101e{right};
+kouki(101,8,1); penstroke z76e{(7u,9v)-z76}... z102e{right}...z103e...z104e...
+z105e{up}...z106e{right}...z107e...z108e... z109e{right}; z84'=(4.3u,7.1v);
+z84''=z80; ka(84',-43); ka(84'',-54); penstroke z84e{up}...z84'e...
+z84''e{(6u,9v)-z84''} ...z110e...z111e...z112e{right}; kouki(112,6,1.1);
+penstroke z84''e{(6u,9v)-z84''}... z113e...z114e...z115e...z116e...
+z117e...z118e{down}; mpalla(114',1.5); mpalla(113,1.4); mpalla(116,1.3);
+penstroke z119e{(9u,9v)-z119}... z120e...z121e...z122e{(-3u,3v)}...
+z123e...z124e...z125e...z126e... z127e...z128e{down}; kouki(128,4,1.6);
+z118'=z118; ka(118',0); penstroke z122e{(-3u,3v)}...z118'e{up}; penstroke
+z119e{(9u,9v)-z119}... z129e...z130e{(8u,0)-z130}...
+z131e...z132e...z133e...z134e... z135e{right}; penstroke z130e{(8u,0)-z130}...
+z136e...z137e...z138e{left}; kouki(138,7,1.5); penstroke z139e{left}...z140e...
+z141e...z141'e...z142e...z143e... z144e{left}...z145e{up}; kouki(145,2,1.5);
+penstroke z144e{left}...z146e{down}; kouki(146,4,1.3); mpalla(147,1.2);
+z150=(2.7u,8.2v); z151=(1.9u,7.9v); z152=(2.4u,9v); z160=(5.2u,6.3v);
+z161=(4.9u,6.75v); z162=(6.2u,6.9v); triaina(150,151,152,0.8);
+triaina(160,161,162,0.45); mpalla(114,1.5); z148=(3.05u,0.65v); z149=(3.4u,0.6v);
+z149'=(3.7u,0.8v); z148'=(2.7u,0.85v); penpos148(0.4uv,-113);
+penpos149(0.1v,-90); ka(149',0); penpos148'(0.1v,-90); penstroke
+z76e{(7u,9v)-z76}... z148'e...z148e...z149e...z149'e{up}; kouki(149',1,1.2);
+penlabels(range 1 thru 150);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitN.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitN.mf
new file mode 100644
index 00000000000..218bc1349e9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitN.mf
@@ -0,0 +1,109 @@
+.cmchar "The letter N";
+.beginchar("N",8.9u#+0.3mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(3.9u,0.6v); z2=(4.45u,1.55v); z3=(3.6u,1.75v); z4=(1.75u,2.3v);
+z5=(1.4u,3.15v); z6=(2.3u,4.15v); z7=(2.9u,3.5v); z8=(2.45u,2.95v);
+z9=(2u,3.3v); z10=(2.2u,3.52v); z11=(2.5u,3.45v); z12=(2.7u,3.6v);
+z13=(5.1u,2.1v); z14=(6.1u,3.3v); z15=(5.5u,4.05v); z16=(5u,3.65v);
+z17=(5.2u,3.3v); z18=(5.4u,3.35v); z19=(5.6u,3.3v); z20=(5.6u,3v);
+z21=(7.75u,0.8v); z22=(8.6u,1.8v); z23=(7.5u,1.7v); z24=(7u,2.6v);
+z25=(6.8u,4.95v); z26=(7.45u,6.2v); z27=(2.5u,2v); z28=(3.75u,4.5v);
+z29=(3.05u,6.05v); z30=(3u,6.6v); z31=(1.9u,5.65v); z32=(2.8u,2v);
+z33=(4.5u,5.55v); z35=(3u,7.45v); z34=(3.95u,6.9v); z36=(1.7u,7.15v);
+z37=(0.5u,7.65v); z38=(0.55u,8.05v); z39=(1.3u,8.3v); z40=(1.55u,8.15v);
+z41=(1.95u,8.25v); z42=(1.9u,8.5v); z43=(5.65u,7.95v);z44=(6.65u,7.55v);
+z45=(7.3u,6.8v); z34'=z34; z46=(8.2u,6.65v); z47=(8.8u,7.4v); z48=(8.3u,7.9v);
+z49=(7.9u,7.5v); z50=(9.05u,2.5v); z51=(8.5u,3.1v); z52=(8.05u,2.7v);
+z53=(8.25u,2.45v); ka(1,0); penpos2(1.5hair,-45); penpos3(0.9uv,60);
+penpos4(0.65uv,41); penpos5(0.25u,0); ka(6,-90); ka(7,180); ka(8,90); ka(9,0);
+penpos10(0.25v,-90); penpos11(0.2v,-111); ka(12,0); ka(13,-51); ka(14,0);
+ka(15,90); ka(16,180); penpos17(0.25uv,-108); penpos18(0.3uv,-57);
+penpos19(0.2uv,-133); ka(20,180); ka(21,0); penpos22(1.5hair,-54);
+penpos23(0.8uv,48); penpos24(0.75uv,15); penpos25(0.6u,-18); ka(26,-40);
+ka(27,-46); penpos28(0.35u,0); penpos29(0.8uv,40); ka(30,180); ka(31,-69);
+ka(32,-44); penpos33(0.6u,0); penpos34(0.85uv,42); ka(34',-52);
+penpos35(0.9uv,78); penpos36(0.75uv,110); penpos37(0.2u,18); ka(38,-35);
+penpos39(0.4uv,-129); penpos40(0.4uv,-106); penpos41(0.1uv,-45); ka(42,0);
+penpos43(0.3uv,-83); penpos44(0.8uv,-134); penpos45(0.6uv,-140);
+penpos46(0.1v,-90); ka(47,0); ka(48,90); ka(49,180); ka(50,0); ka(51,90);
+ka(52,180); ka(53,-90); filldraw z1r{up}...z2r{z2-(3u,0)}... z13r{(9u,5v)-z13} &
+z13r--z13l & z13l{z13-(9u,5v)}...z2l{(3u,0)-z2} &
+z2l{(0,9v)-z2}...z3r...z4r...z5r... z6r{right} & z6r--z6l & z6l{left}...
+z5l...z4l...z3l...z1l{down} & z1l--z1r & cycle; penstroke
+z6e{right}...z7e...z8e{left}... z9e{up}...z10e...z11e...z12e{up}; penstroke
+z13e{(9u,5v)-z13}...z14e... z15e...z16e...z17e...z18e...z19e... z20e{down};
+filldraw z21r{up}...z22r...z50r{up} & z50r--z50l & z50l{down}...z22l...
+z23r...z24r...z25r...z26r{(9u,8.3v)-z26} & z26r--z26l & z26l{z26-(9u,7.2v)}...
+z25l...z24l...z23l...z21l{down} & z21l--z21r & cycle; penstroke
+z50e{up}...z51e... z52e{down}; kouki(52,4,2); penstroke
+z34'e{(6.5u,9v)-z34'}...z43e... z44e...z45e...z46e...z47e...z48e... z49e{down};
+kouki(49,4,2); penstroke z32e{(9u,8.4v)-z32}...z33e
+...z34e...z35e...z36e...z37e...z38e... z39e...z40e...z41e...z42e; filldraw
+z27r{(8.6u,9v)-z27}...z28r... z29r...z30l{up} & z30l--z30r &
+z30r{(0,0)-z30}...z31l{z31-(8u,9v)} & z31l--z31r & z31r{(9u,7.2v)-z31}...
+z29l...z28l...z27l{z27-(8.6u,9v)} & z27l--z27r & cycle; z50'=(3.7u,0.2v);
+z51'=(2.9u,1.1v); z52'=(2.35u,0.6v); z53'=(2.8u,0.15v); z54=(3.15u,0.5v);
+z55=(2.9u,0.85v); z56=(0.85u,1.85v); z57=(0.25u,3.05v); z58=(3.75u,0.25v);
+z58'=(0.7u,4.55v); z580=(0,4.3v); z59=(1.9u,5.1v); z60=(3.25u,3.9v);
+z61=(1.8u,2.25v); z62=(0.3u,v); z63=(1.2u,0); z64=(1.9u,0.7v);
+z65=(1.3u,1.3v); z66=(0.85u,0.8v); z67=(0.3u,-0.05v); z68=(0.85u,3.3v);
+z69=(2u,4.5v); z70=(3.1u,4.4v); z71=(3.2u,2v); z72=(4.65u,3v);
+z73=(5.05u,2.65v); z74=(4.7u,2.3v); z75=(5.05u,4.7v); z76=(5.2u,6v);
+z77=(4.5u,8.3v); z78=(5.05u,8.9v); z79=(5.5u,8.5v); z80=(5.15u,8.2v);
+z81=(4.15u,8.75v); z82=(3.45u,8.25v); z83=(0.7u,6.35v); z84=(0.5u,7.75v);
+z85=(-0.05u,8.4v); z86=(0.25u,8.75v); z87=(0.55u,8.5v); z88=(0.1u,4.8v);
+z89=(1.3u,5.6v); z90=(2.3u,4.8v); z91=(4u,6.5v); z92=(1.4u,6.5v);
+z93=(2.2u,5.6v); z94=(2.9u,6.15v); z95=(2.4u,6.6v); z96=(6.9u,9v);
+z97=(8.3u,7.7v); z98=(7u,6.4v); z99=(6.1u,7.3v); z100=(7u,8.35v);
+z101=(8.15u,8.2v); z102=(8.6u,8.6v); z103=(3.95u,0.2v); z104=(4.4u,1.1v);
+z105=(5.95u,2.35v); z106=(8.3u,4.5v); z107=(7u,6v); z108=(5.5u,4.5v);
+z109=(6.7u,3.3v); z110=(7.75u,4.35v); z111=(6.8u,5.2v); z112=(6.05u,4.5v);
+z113=(6.8u,3.8v); z114=(5.5u,1.8v); z115=(7u,v); z116=(6.2u,0);
+z117=(5.6u,0.35v); z118=(6u,1.2v); z119=(4.8u,0.95v); z120=(4.35u,0.5v);
+z121=(6.45u,0.8v); z122=(6.2u,0.5v); z123=(8.15u,0); z124=(8.8u,0.7v);
+z125=(8.4u,1.2v); z126=(8u,0.8v); z127=(8.3u,0.45v); z128=(8.5u,2.9v);
+z129=(8.85u,2.5v); z130=(8.4u,2v); z131=(7.45u,4v); z132=(7.6u,5.4v);
+z133=(8.5u,6.3v); ka(50',6); ka(51',84); ka(52',180); ka(53',-90); ka(54,0);
+ka(55,90); ka(56,48); ka(57,0); ka(58,0); ka(58',-44); ka(59,-90); ka(60,180);
+ka(61,90); ka(62,180); ka(63,-90); ka(64,0); ka(65,90); ka(66,163); ka(67,90);
+ka(68,0); ka(69,-90); ka(70,-90); ka(580,0); ka(71,-45); ka(72,-90);
+ka(73,180); ka(74,90); ka(75,-13); ka(76,0); ka(77,0); ka(78,-90); ka(79,180);
+ka(80,90); ka(81,90); ka(82,69); ka(83,180); ka(84,90); ka(85,0); ka(86,-90);
+ka(87,180); ka(88,90); ka(89,-90); ka(90,-90); ka(91,0); ka(92,180);
+ka(93,-90); ka(94,0); ka(95,90); ka(96,-90); ka(97,180); ka(98,90); ka(99,0);
+ka(100,-90); ka(101,-105); ka(102,0); ka(103,-17); ka(104,-40); ka(105,-65);
+ka(106,0); ka(107,90); ka(108,180); ka(109,-90); ka(110,0); ka(111,90);
+ka(112,180); ka(113,-90); ka(114,-90); ka(115,-153); ka(116,90); ka(117,40);
+ka(118,-90); ka(119,90); ka(120,180); ka(121,180); ka(122,90); ka(123,-90);
+ka(124,0); ka(125,90); ka(126,180); ka(127,-90); ka(128,-90); ka(129,180);
+ka(130,90); ka(131,0); ka(132,-18); ka(133,-90); penstroke
+z50'e{(3u,9v)-z50'}... z51'e{left}...z52'e...z53'e...z54e... z55e{left};
+kouki(55,7,1.2); penstroke z51'e{left}...z56e...z57e{up}...
+z58'e...z59e...z60e...{left}z61e...z62e...
+z63e...z64e...z65e...z66e...z67e{left}; kouki(67,5,1.5); mpalla(57,1.3);
+mpalla(58',1.4); penstroke z57e{up}...z580e{up}; kouki(580,1,1); z61'=z61;
+ka(61',90); penstroke z61'e{left}...z68e...z69e... z70e{right}; kouki(70,6,1.2);
+penstroke z71e{(9u,7.5v)-z71}...z72e ...z73e...z74e{left}; kouki(74,5,1.3);
+penstroke z71e{(9u,7.5v)-z71}...z75e ...z76e{up}...z77e...z78e...z79e...z80e...
+z81e{left}; kouki(81,7,1); kouki(80,5,1.3); penstroke z76e{up}...z96e...z97e...
+z98e...z99e...z100e...z101e...z102e{up}; kouki(102,1,1.8); penstroke
+z103e{(7u,9v)-z103}... z104e{(9u,7v)-z104}...z105e...
+z106e...z107e...z108e...z109e...z110e... z111e...z112e...z113e; mpalla(105,1.5);
+mpalla(106,1.2); mpalla(107,1.4); z82'=z41; ka(82',75); penstroke
+z76e{up}...z82e... z82'e{(0,7.4v)-z82'}...z84e...z85e... z86e...z87e{down};
+kouki(87,3,1.1); penstroke z82'e{(0,7.4v)-z82'}... z83e{down}...z88e{left};
+kouki(88,5,1.2); penstroke z83e{down}...z90e...z91e...
+z92e...z93e...z94e...z95e{left}; kouki(95,7,1.4); z134=(5.8u,6.6v); ka(134,-90);
+penstroke z75e{(5.7u,9v)-z75}... z134e{right}; kouki(134,8,1); mpalla(75,1.5);
+z150=(3.05u,7.75v); z151=(2.35u,7.85v); z152=(3.15u,9v);
+triaina(150,151,152,0.5); penstroke z104e{(9u,7v)-z104}...
+z114e...z115e{z115-(4u,9v)}... z116e...z117e{(0.7u,9v)-z117}...
+z118e...z121e...z122e{left}; kouki(122,5,1.6); penstroke
+z117e{(0.7u,9v)-z117}... z119e...z120e{down}; kouki(120,4,1.6); penstroke
+z115e{z115-(4u,9v)}... z123e...z124e...z125e...z126e... z127e{right};
+kouki(127,6,1.6); mpalla(117,1.2); mpalla(83,1.7); z83'=(7.15u,0.3v);
+mpalla(83',1.3); penstroke z128e{right}...z129e...
+z130e...z131e...z132e...z133e{right}; kouki(133,8,1.1); penlabels(range 1 thru
+140);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitO.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitO.mf
new file mode 100644
index 00000000000..6c24b75cd5a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitO.mf
@@ -0,0 +1,86 @@
+.cmchar "The letter O";
+.beginchar("O",8.9u#+0.1mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(4.9u,6.9v); z2=(3.1u,6.4v); z3=(1.65u,3.35v); z4=(2.35u,1.6v);
+z5=(4.4u,0.6v); z6=(7u,1.7v); z7=(7.9u,4.8v); z8=(5.65u,7.7v); z9=(3.35u,7.7v);
+z10=(1.85u,7.25v); z11=(0.75u,8.15v); z12=(1.4u,8.75v); z13=(1.9u,8.5v);
+z14=(2u,8.15v); z15=(2.5u,8.2v); z16=(3.7u,2.4v); z17=(4u,2.25v);
+z18=(4.7u,2.9v); z19=(4.35u,3.7v); z20=(3.4u,4.05v); z21=(3.4u,4.6v);
+z22=(2.3u,3.4v); z23=(3.85u,2.8v); z24=(3.5u,2.95v); z25=(3.35u,2.4v);
+z26=(4.4u,1.95v); z27=(5.7u,3.7v); z28=(5.4u,4.35v); z29=(3.9u,5.55v);
+z30=(4.9u,6.6v); z31=(5.8u,5.9v); z32=(5.6u,5.45v); z33=(4.85u,1.7v);
+z34=(5.6u,2.2v); z35=(6.6u,1.7v); z36=(7.15u,0.6v); z37=(8.15u,0.25v);
+z38=(8.85u,1.1v); z39=(8.4u,1.7v); ka(1,95); penpos2(1.5hair,119);
+penpos3(0.9u,183); penpos4(1.1uv,-135); penpos5(0.7v,-90); penpos6(0.15uv,-42);
+penpos7(0.65u,0); penpos8(1.05uv,65); penpos9(uv,106); penpos10(0.6v,90);
+penpos11(1.5hair,0); penpos12(0.2v,-90); penpos13(0.55v,-173);
+penpos14(0.4v,-156); ka(15,-27); penstroke z1e{(0,6.6v)-z1}...z2e...
+z3e...z4e...z5e...z6e...z7e...z8e... z9e...z10e...z11e...z12e...z13e...
+z14e...z15e; ka(16,180); penpos17(0.1v,-90); penpos18(0.5u,0);
+penpos19(0.62uv,59); penpos20(0.8uv,60); ka(21,180); ka(22,-58); filldraw
+z16r{down}...z17r...z18r... z19r...z20r...z21l{up} & z21l--z21r &
+z21r{down}...{z22-(9u,8.5v)}z22l & z22l--z22r &
+z22r{(9u,6.5v)-z22}...z20l...z19l...z18l...z17l... z16l{up} & z16l--z16r & cycle;
+penpos23(0.5u,12); penpos24(0.4v,90); ka(25,180); penpos26(0.1v,-90); filldraw
+z16l{right}...z23r...z24r ...{z25-(0,9v)}z25r...z26r{right} & z26r--z26l &
+z26l{left}... z25l{(0,9v)-z25}...z24l...z16l{down} & cycle; penpos27(0.9u,0);
+penpos28(uv,47); penpos29(0.9uv,12); penpos30(0.15v,-90); penpos31(0.1u,180);
+ka(32,90); kouki(31,3,3); penstroke z26e{right}...z27e...z28e
+...z29e...z30e...z31e{down}; z40=(2.6u,0.3v); z41=(2.35u,0.4v);
+z42=(1.55u,0.1v); z43=(1.2u,-0.05v); z44=(0.15u,1.15v); z45=(2.5u,3.9v);
+z46=(3.4u,5.5v); z47=(2.4u,6.9v); z48=(1.6u,6.3v); z49=(1.85u,5.95v);
+z50=(1.9u,0.8v); z51=(1.3u,1.35v); z52=(0.9u,0.75v); z53=(1.2u,0.45v);
+z54=(0.55u,0.75v); z55=(0.05u,0); z56=(4u,0); z57=(8.6u,4.6v); z58=(4.2u,9v);
+z59=(0.5u,6.55v); z60=(0.9u,5.2v); z61=(1.9u,4.65v); z62=(2.8u,3v);
+z63=(2.3u,1.55v); z64=(0,2.7v); z65=(u,3.7v); z66=(u,2.3v); z67=(0.6u,2.8v);
+z68=(0.3u,5.25v); z69=(-0.15u,4.85v); z70=(0.1u,4.5v); z71=(1.35u,8.2v);
+z72=(0.35u,7.6v); z73=(-0.1u,8.1v); z74=(0.3u,8.5v); z67'=(0.8u,4.75v);
+z75=(0.65u,8.2v); z76=(0.5u,8.8v); z77=(3.8u,3.4v); z78=(2.95u,2.8v);
+z79=(3.7u,1.65v); z80=(4.45u,1.5v); z81=(6.45u,3.7v); z82=(5.8u,5.35v);
+z83=(4.9u,7v); z84=(6.7u,9v); z84'=(7.5u,8.8v); z85=(8.4u,7.4v); z86=(7u,5.95v);
+z87=(5.85u,7.1v); z88=(7u,8.35v); z89=(7.75u,7.6v); z90=(8.7u,8.4v);
+z91=(9u,8.8v); z92=(8.75u,9.05v); z93=(6.8u,3.6v); z94=(6.7u,5.4v);
+z95=(6.25u,5.55v); z96=(7.2u,3.5v); z97=(8.6u,5.15v); z98=(8.6u,4.55v);
+z99=(8.7u,6.6v); z100=(7.3u,2.65v); z101=(8.15u,2.55v); z102=(9u,2.9v);
+z103=(8.7u,3.2v); z104=(8.7u,1.5v); z105=(7.7u,0.5v); z106=(6.9u,1.2v);
+z107=(7.6u,1.9v); z108=(8.15u,1.5v); z109=(7.75u,v); z110=(1.25u,6.8v);
+z111=(1.25u,5.9v); z112=(-0.2u,6.85v); z113=(0.85u,4v); z114=(2.4u,4.35v);
+z115=(6.1u,0.35v); z116=(6.6u,0.2v); z117=(6.95u,0.15v); z118=(7u,0.4v);
+ka(115,-66); penpos116(0.25uv,-147); ka(44,180); ka(43,-90); ka(42,-60);
+ka(41,-90); ka(40,180); ka(50,0); ka(51,90); ka(52,180); ka(53,-90); ka(54,161);
+ka(55,90); z44'=z44; ka(44',0); ka(45,-49); ka(46,0); ka(47,90); ka(48,180);
+ka(49,-90); ka(56,-92); ka(57,0); ka(58,90); ka(59,180); ka(60,-139); ka(61,-90);
+ka(62,180); ka(63,90); ka(64,0); ka(65,-90); ka(66,90); ka(67,0); ka(67',0);
+ka(68,90); ka(69,180); ka(70,-90); ka(71,120); ka(72,90); ka(73,0); ka(74,-90);
+ka(75,180); ka(76,0); ka(77,90); ka(78,180); ka(79,-114); ka(80,-90); ka(81,0);
+ka(82,36); ka(83,0); ka(84,-90); ka(85,180); ka(86,90); ka(87,0); ka(88,-90);
+ka(89,180); ka(90,-90); ka(91,0); ka(92,90); ka(93,0); ka(94,35); ka(95,90);
+ka(96,-24); ka(97,0); penpos98(0.3v,90); ka(99,-90); ka(100,-90); ka(101,-115);
+ka(102,0); ka(103,90); ka(104,180); ka(105,90); ka(106,0); ka(107,-90);
+ka(108,180); ka(109,90); ka(84',-74); penstroke z44e{down}...z43e...
+z42e{(9u,4.6v)-z42}...z41e... z40e{down}; kouki(40,3,1.2); penstroke
+z42e{(9u,4.6v)-z42}... z50e...z51e{left}...z54e...z55e{left}; kouki(55,5,1.5);
+penstroke z51e{left}...z52e... z53e{right}; kouki(53,6,1.1); penstroke
+z44'e{up}...z45e...z46e... z47e...z48e...z49e{right}; kouki(49,6,1.2);
+penstroke z56e{(9u,-0.2v)-z56}...z115e{(9u,1.5v)-z115}...
+z57e...z58e...z71e{(0,7.3v)-z71}...z59e... z60e{(4.8u,0)-z60}...z61e...z46e{up};
+mpalla(58,1.1); mpalla(60,1.5); penstroke z60e{(4.8u,0)-z60}...
+z62e...z63e...z64e{up}...z65e... z66e...z67e{up}; kouki(67,2,1.2);
+mpalla(64,1.2); penstroke z64e{up}...z67'e...z68e... z69e...z70e{right};
+kouki(70,6,1.5); penstroke z71e{(0,7.3v)-z71}...z72e
+...z73e...z74e{right}...z75e{down}; penstroke z74e{right}...z76e{up};
+kouki(75,3,1.2); kouki(76,1,1.4); penstroke z77e{left}...z78e...z79e
+...z80e{right}...z81e...z82e...z83e ...z84e...z84'e{(9u,8v)-z84'}...
+z85e...z86e...z87e...z88e... z89e{down}; kouki(89,3,1.4); penstroke
+z84'e{(9u,8v)-z84'}... z90e...z91e...z92e{left}; kouki(92,7,1.2);
+mpalla(84',1.4); mpalla(79,1.4); mpalla(81,1.5); penstroke
+z80e{right}...z93e...z94e ...z95e; penstroke z80e{right}...z100e...
+z101e{(9u,2.2v)-z101}...z104e... z105e...z106e...z107e...z108e... z109e{left};
+kouki(109,5,1.4); penstroke z101e{(9u,2.2v)-z101}... z102e...z103e{left};
+kouki(103,7,1.3); z97'=z97; ka(97',-90); penstroke z93e...z97'e{right}...
+z98e{left}; penstroke z97e{up}...z99e{right}; kouki(95,7,1); kouki(99,8,1.3);
+penpos117(0.1uv,-51); ka(118,0); penstroke z115e{(9u,1.5v)-z115}...
+z116e...z117e...z118e{up}; mpalla(114,1.3); mpalla(113,1.5);
+triaina(110,111,112,0.65); penlabels(range 1 thru 120);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitP.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitP.mf
new file mode 100644
index 00000000000..d86c000ca88
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitP.mf
@@ -0,0 +1,100 @@
+.cmchar "The letter P";
+.beginchar("P",8.9u#-0.4mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(4.7u,0); z2=(5.1u,1.27v); z3=(4.65u,1.65v); z4=(2.35u,2.45v);
+z5=(1.8u,3.4v); z6=(2.65u,4.35v); z7=(3.35u,3.75v); z8=(3u,3.3v);
+z9=(2.7u,2.3v); z10=(3.1u,2.1v); z11=(4.1u,4.7v); z12=(3.45u,6v);
+z13=(2.2u,5.6v); z14=(3.5u,6.7v); z15=(5u,5.55v); z16=(3.9u,7.4v);
+z17=(3u,7.6v); z18=(1.6u,7.2v); z19=(0.25u,8v); z20=(0.6u,8.55v);
+z21=(u,8.4v); z22=(1.15u,8.15v); z23=(1.6u,8.2v); z24=(4.65u,6.4v);
+z25=(5.9u,7.15v); z26=(6.5u,7.45v); z27=(7.45u,8.2v); z28=(7u,7.25v);
+z29=(8.15u,5.55v); z30=(6.2u,3.5v); z31=(5.2u,4.5v); z32=(5.9u,5.3v);
+z33=(6.5u,4.95v); z34=(7.35u,5.35v); z35=(6.05u,3.95v); z36=(5.6u,1.1v);
+z37=(6.8u,2.3v); z38=(6.1u,3.1v); z39=(5.5u,2.6v); penpos1(0.1u,0);
+penpos3(uv,62); penpos2(uv,28.5); penpos4(0.6uv,47); penpos5(0.3u,0);
+penpos6(1.5hair,-90); ka(7,180); ka(8,90); ka(9,-56); ka(10,-56);
+penpos11(0.5u,0); penpos12(0.95uv,35); ka(13,-67); ka(14,180); penpos15(0.7u,0);
+penpos16(uv,58); penpos17(1.05v,90); penpos18(0.8uv,106); ka(19,0);
+penpos20(0.15v,-90); penpos21(0.4uv,-137); penpos22(0.4uv,-137); ka(23,-50);
+penpos24(2hair,-56); penpos25(2hair,-63); penpos26(2hair,-63); ka(27,152);
+penpos28(1.05uv,39); penpos29(0.8u,0); penpos30(0.1v,-90); ka(31,180);
+penpos32(0.4v,90); penpos33(0.7uv,36); ka(35,180); ka(34,0);
+penpos36(1.5hair,-65); penpos37(1.2hair,0); ka(38,90); ka(39,180); filldraw
+z1r{(9u,9v)-z1}...z36r{z36-(2.5u,0)}... z37r...z38r{left} & z38r--z38l &
+z38l{right}...z37l... z36l{(2.5u,0)-z36} & z36l...z2r...z3r
+...z4r...z5r...z6r{right} & z6r--z6l & z6l{left}...z5l...z4l...
+z3l...z2l...z1l{z1-(7u,9v)} & z1l--z1r & cycle; penstroke
+z38e{left}...z39e{down}; kouki(39,4,2.5); penstroke z6e{right}...z7e...z8e{left};
+kouki(8,5,2.5); filldraw z9r{(9u,7v)-z9}...z11r... z12r...z14l{up} & z14l--z14r
+& z14r{(0,v)-z14}...z13l{z13-(9u,8v)} & z13l--z13r &
+z13r{(9u,7.6v)-z13}...z12l...z11l... z9l{z9-(9u,7v)} & z9l--z9r & cycle;
+penstroke z10e{(9u,7v)-z10}... z15e...z16e...z17e...z18e...z19e...
+z20e...z21e...z22e...z23e; filldraw z24r...z25r...z26r & z26r{down}
+...z28l...z29l...z30l...z31l{up}...z32l ...z33l...z35r{down} & z35r--z35l &
+z35l{up}...(6.4u,4.5v)---(7.2u,5v)... z34r{up} & z34r--z34l & z34l{down}...
+z33r...z32r{left}...z31r{down}...z30r...z29r... z28r...z27l{(8u,9v)-z27} &
+z27l--z27r & z27r{z27-(8u,9v)}...z26l...z25l... z24l & z24l--z24r & cycle;
+kouki(35,4,1.5); kouki(34,1,1.5); z40=(4.6u,0); z41=(3.4u,v); z42=(2.7u,0.3v);
+z43=(3.15u,-0.15v); z44=(3.45u,0.15v); z45=(3.4u,1.1v); z46=(2.45u,0.9v);
+z47=(0.9u,0); z48=(0,0.8v); z49=(0.4u,v); z50=(1.5u,0.7v); z51=(1.1u,1.05v);
+z52=(3.4u,1.2v); z53=(2.8u,1.3v); z54=(0.8u,3.3v); z55=(2.5u,5.2v);
+z56=(3.6u,4v); z57=(2.75u,2.9v); z60'=(1.5u,2.3v); z58=(2.15u,3.45v);
+z59=(2.5u,4v); z60=(1.4u,2.5v); z61=(2u,4.55v); z62=(2.3u,5.3v); z63=(1.4u,6.2v);
+z64=(0.6u,5.5v); z65=(0.7u,5.1v); z66=(0.55u,4.1v); z67=(1.3u,4.85v);
+z68=(1.6u,5.4v); z69=(1.05u,5.65v); z70=(0.8u,2.7v); z71=(0.25u,2.05v);
+z72=(0.8u,1.6v); z73=(1.2u,2v); z74=(3.6u,2v); z75=(5.6u,5.5v); z77=(3u,8.85v);
+z78=(0.5u,6.8v); z77.1=(u,8.95v); z77.2=(2.1u,8.5v); z77.3=(1.4u,8.75v);
+z79=(4u,5.9v); z80=(3.05u,6.85v); z81=(2u,6.1v); z82=(2.5u,5.2v);
+z83=(6.3u,7.35v); z84=(5.3u,8.9v); z85=(4.55u,8.5v); z86=(4u,8.2v);
+z87=(3.5u,8.55v); z88=(3.9u,9v); z89=(4.15u,8.75v); z76=(5.6u,5.8v);
+z90=(5.1u,7.5v); z91=(5.65u,8v); z92=(7.25u,8.75v); z93=(8.55u,7.4v);
+z94=(7.2u,6.15v); z95=(7.2u,8.2v); z96=(8.5u,7.9v); z97=(8.85u,8.3v);
+z98=(8.5u,8.65v); z99=(6.15u,6.45v); z100=(3.75u,1.9v); z100'=(5.6u,3.75v);
+z101=(6.75u,4.2v); z102=(8.45u,2.5v); z103=(8u,2.1v); z104=(7.1u,0.95v);
+z105=(5.85u,2v); z106=(6.8u,3.1v); z107=(7.55u,2.3v); z108=(7.5u,2v);
+z109=(7u,1.65v); z110=(6.45u,2.1v); z111=(5.6u,0.5v); z112=(7u,0.7v);
+z113=(7.6u,0); z114=(8u,0.6v); z115=(7.7u,0.9v); z116=(8.45u,0.35v);
+z117=(6.1u,-0.1v); z117'=(6.7u,v); z118=(4.8u,3.4v); z119=(5u,3.6v);
+z120=(5.4u,3.2v); z121=(5.2u,3v); ka(40,0); ka(41,90); ka(42,180); ka(43,-90);
+ka(44,0); ka(45,90); ka(46,125); ka(47,90); ka(48,0); ka(49,-90); ka(50,90);
+ka(51,0); ka(52,90); ka(53,76); ka(54,0); ka(55,-90); ka(56,180); ka(57,90);
+ka(58,0); ka(59,-71); ka(60,0); ka(61,-47); ka(62,0); ka(63,90); ka(64,180);
+ka(65,-146); ka(66,90); ka(60',23); ka(67,-90); ka(68,0); ka(69,140); ka(70,90);
+ka(71,180); ka(72,-90); ka(73,0); ka(74,-50); ka(75,-10); ka(76,0); ka(77,90);
+ka(78,180); ka(77.1,0); ka(77.2,180); ka(77.3,90); ka(79,0); ka(80,90);
+ka(81,180); ka(82,-90); ka(83,0); ka(84,90); ka(85,180); ka(86,90); ka(87,0);
+ka(88,-90); ka(89,180);ka(100',-48); ka(90,-90); ka(91,0); ka(92,-90);
+ka(93,180); ka(94,90); ka(95,-90); ka(96,-90); ka(97,0); ka(98,90); ka(100,-51);
+ka(101,-90); ka(102,180); ka(103,90); ka(104,90); ka(105,0); ka(106,-90);
+ka(107,180); ka(108,144); ka(109,90); ka(110,0); ka(111,180); ka(112,180);
+ka(113,-90); ka(114,0); ka(115,90); ka(116,-90); ka(117,90); ka(117',147);
+penstroke z40e{up}...z41e{left}... z42e...z43e...z44e{up}; kouki(44,1,1.6);
+penstroke z45e{left}...z46e...z47e... z48e...z49e{right}; kouki(49,8,1.7);
+penstroke z46e...z50e...z51e{up}; kouki(51,2,1.1); penstroke z40e{up}...z52e...
+z53e{(0,2v)-z53}... z60'e{(0,5v)-z60'}...z60e...z61e... z62e...z63e...z64e...
+z65e{(5u,0)-z65}...z66e{left}; kouki(66,5,1.3); penstroke
+z65e{(5u,0)-z65}...z67e... z68e...z69e{(0,4.5v)-z69}; ka(6',-90); z6l=z6'l;
+penstroke z60'e{(0,5v)-z60'}...z70e... z71e...z72e...z73e{up}; kouki(73,1,1.6);
+penstroke z74e{(9u,6.8v)-z74}...z75e ...z76e{up}...z77e...z78e...z6'e...
+z79e...z80e...z81e...z82e{right}; kouki(82,6,1); mpalla(76,1.3); mpalla(77,1.4);
+mpalla(53,1.2); penstroke z53e{(0,2v)-z53}...z54e...
+z55e...z56e...z57e...z58e...z59e{right}; penstroke
+z77e{left}...z77.3e...z77.1e{up}; penstroke z77e{left}...z77.2e{down};
+kouki(77.1,2,1); kouki(77.2,4,1); penstroke z76e{up}...z83e...z84e...
+z85e{(0,3v)-z85}...z86e...z87e... z88e...z89e; kouki(89,3,1.5); penstroke
+z85e{(0,3v)-z85}...z90e... z91e{up}; kouki(91,1,1.8); penstroke
+z76e{up}...z92e...z93e... z94e...z83e...z95e...z96e...z97e... z98e{left};
+kouki(98,7,1.5); mpalla(92,1.4); mpalla(99,1.5); penstroke z100e{(9u,6v)-z100}...
+z100'e...{right}z101e ...z102e{down}...z103e{left}; kouki(103,5,1.1); penstroke
+z102e{down}...z104e... z105e...z106e...z107e...
+z108e{(6u,0)-z108}...z109e...z110e{up}; kouki(110,2,1.7); penstroke
+z108e{(6u,0)-z108}...z111e {down}; kouki(111,4,1); penstroke
+z108e{(6u,0)-z108}...z112e ...z113e{right}...z114e...z115e{left};
+kouki(115,7,1.3); penstroke z108e{(6u,0)-z108}... z117'e...z117e {left};
+kouki(117,5,1.1); penstroke z113e{right}...z116e{right}; kouki(116,8,1);
+filldraw z118--z119--z120--z121-- cycle; z122=(6.35u,6v); z123=(7.4u,4.5v);
+ka(122,180); ka(123,0); penstroke z94e{left}...z122e{down}; penstroke
+z101e{right}...z123e{up}; kouki(122,4,1.1); kouki(123,1,1); mpalla(78,1.3);
+penlabels(range 1 thru 130);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitQ.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitQ.mf
new file mode 100644
index 00000000000..74cf5090ce8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitQ.mf
@@ -0,0 +1,106 @@
+.cmchar "The letter Q";
+.beginchar("Q",8.9u#+1mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(4.9u,6.9v); z2=(3.1u,6.4v); z3=(1.65u,3.35v); z4=(2.35u,1.6v);
+z5=(4.4u,0.6v); z6=(7u,1.7v); z7=(7.9u,4.8v); z8=(5.65u,7.7v); z9=(3.35u,7.7v);
+z10=(1.85u,7.25v); z11=(0.75u,8.15v); z12=(1.4u,8.75v); z13=(1.9u,8.5v);
+z14=(2u,8.15v); z15=(2.5u,8.2v); z16=(3.7u,2.4v); z17=(4u,2.25v);
+z18=(4.7u,2.9v); z19=(4.35u,3.7v); z20=(3.4u,4.05v); z21=(3.4u,4.6v);
+z22=(2.3u,3.4v); z23=(3.85u,2.8v); z24=(3.5u,2.95v); z25=(3.35u,2.4v);
+z26=(4.4u,1.95v); z27=(5.7u,3.7v); z28=(5.4u,4.35v); z29=(3.9u,5.55v);
+z30=(4.9u,6.6v); z31=(5.8u,5.9v); z32=(5.6u,5.45v); z33=(4.85u,1.7v);
+z34=(5.6u,2.2v); z35=(6.6u,1.7v); z36=(7.15u,0.6v); z37=(8.15u,0.25v);
+z38=(8.85u,1.1v); z39=(8.4u,1.7v); ka(1,95); penpos2(1.5hair,119);
+penpos3(0.9u,183); penpos4(1.1uv,-135); penpos5(0.7v,-90); penpos6(0.15uv,-42);
+penpos7(0.65u,0); penpos8(1.05uv,65); penpos9(uv,106); penpos10(0.6v,90);
+penpos11(1.5hair,0); penpos12(0.2v,-90); penpos13(0.55v,-173);
+penpos14(0.4v,-156); ka(15,-27); penstroke z1e{(0,6.6v)-z1}...z2e...
+z3e...z4e...z5e...z6e...z7e...z8e... z9e...z10e...z11e...z12e...z13e...
+z14e...z15e; ka(16,180); penpos17(0.1v,-90); penpos18(0.5u,0);
+penpos19(0.62uv,59); penpos20(0.8uv,60); ka(21,180); ka(22,-58); filldraw
+z16r{down}...z17r...z18r... z19r...z20r...z21l{up} & z21l--z21r &
+z21r{down}...{z22-(9u,8.5v)}z22l & z22l--z22r &
+z22r{(9u,6.5v)-z22}...z20l...z19l...z18l...z17l... z16l{up} & z16l--z16r & cycle;
+penpos23(0.5u,12); penpos24(0.4v,90); ka(25,180); penpos26(0.1v,-90); filldraw
+z16l{right}...z23r...z24r ...{z25-(0,9v)}z25r...z26r{right} & z26r--z26l &
+z26l{left}... z25l{(0,9v)-z25}...z24l...z16l{down} & cycle; penpos27(0.9u,0);
+penpos28(uv,47); penpos29(0.9uv,12); penpos30(0.15v,-90); penpos31(0.1u,180);
+ka(32,90); kouki(31,3,3); penstroke z26e{right}...z27e...z28e
+...z29e...z30e...z31e{down}; ka(33,180); penpos34(0.25v,90);
+penpos35(0.75uv,30); penpos36(0.75uv,29); penpos37(0.4v,90); penpos38(0.1u,180);
+ka(39,-90); penstroke z39e{right}...z38e...z37e
+...z36e...z35e...z34e...z33e{down}; z39=z39'; ka(39',90); kouki(39',7,2.5);
+kouki(33,4,2.5); z40=(2.6u,0.3v); z41=(2.35u,0.4v); z42=(1.55u,0.1v);
+z43=(1.2u,-0.05v); z44=(0.15u,1.15v); z45=(2.5u,3.9v); z46=(3.4u,5.5v);
+z47=(2.4u,6.9v); z48=(1.6u,6v); z49=(2.4u,5.3v); z49.1=(2.9u,5.9v);
+z49.2=(2.45u,6.3v); z50=(1.9u,0.8v); z51=(1.3u,1.35v); z52=(0.9u,0.75v);
+z53=(1.2u,0.45v); z54=(0.55u,0.75v); z55=(0.05u,0); z56=(4u,0); z57=(8.6u,4.6v);
+z58=(4.2u,9v); z59=(0.5u,6.55v); z60=(0.9u,5.2v); z61=(1.9u,4.65v);
+z62=(2.8u,3v); z63=(2.3u,1.55v); z64=(0,2.7v); z65=(u,3.7v); z66=(u,2.3v);
+z67=(0.6u,2.8v); z68=(0.3u,5.25v); z69=(-0.15u,4.85v); z70=(0.1u,4.5v);
+z71=(1.35u,8.2v); z72=(0.35u,7.6v); z73=(-0.1u,8.1v); z74=(0.3u,8.5v);
+z67'=(0.8u,4.75v); z75=(0.65u,8.2v); z76=(0.5u,8.8v); z77=(3.8u,3.4v);
+z78=(2.95u,2.8v); z79=(3.7u,1.65v); z80=(4.45u,1.5v); z81=(6.45u,3.7v);
+z82=(5.8u,5.35v); z83=(4.9u,7v); z84=(6.7u,9v); z84'=(7.5u,8.8v);
+z85=(8.4u,7.4v); z86=(7u,5.95v); z87=(5.85u,7.1v); z88=(7u,8.35v);
+z89=(7.75u,7.6v); z90=(8.7u,8.4v); z91=(9u,8.8v); z92=(8.75u,9.05v);
+z93=(6.8u,3.6v); z94=(6.7u,5.4v); z95=(6.25u,5.55v); z96=(7.2u,3.5v);
+z97=(8.6u,5.15v); z98=(8.6u,4.55v); z99=(8.7u,6.6v); z100=(7.3u,2.65v);
+z101=(8.15u,2.55v); z102=(9u,2.9v); z103=(8.7u,3.2v); z104=(8.7u,1.5v);
+z105=(7.7u,0.5v); z106=(6.9u,1.2v); z107=(7.6u,1.9v); z108=(8.15u,1.5v);
+z109=(7.75u,v); z110=(1.25u,6.8v); z111=(1.25u,5.9v); z112=(-0.2u,6.85v);
+z113=(0.85u,4v); z114=(2.4u,4.35v); ka(44,180); ka(43,-90); ka(42,-60);
+ka(41,-90); ka(40,180); ka(50,0); ka(49.1,0); ka(49.2,90); ka(51,90);
+ka(52,180); ka(53,-90); ka(54,161); ka(55,90); z44'=z44; ka(44',0); ka(45,-49);
+ka(46,0); ka(47,90); ka(48,180); ka(49,-90); ka(56,-92); ka(57,0); ka(58,90);
+ka(59,180); ka(60,-139); ka(61,-90); ka(62,180); ka(63,90); ka(64,0);
+ka(65,-90); ka(66,90); ka(67,0); ka(67',0); ka(68,90); ka(69,180); ka(70,-90);
+ka(71,120); ka(72,90); ka(73,0); ka(74,-90); ka(75,180); ka(76,0); ka(77,90);
+ka(78,180); ka(79,-114); ka(80,-90); ka(81,0); ka(82,36); ka(83,0); ka(84,-90);
+ka(85,180); ka(86,90); ka(87,0); ka(88,-90); ka(89,180); ka(90,-90); ka(91,0);
+ka(92,90); ka(93,0); ka(94,35); ka(95,90); ka(96,-24); ka(97,-90);
+penpos98(0.3v,90); ka(99,-90); ka(100,-90); ka(101,-115); ka(102,0); ka(103,90);
+ka(104,180); ka(105,90); ka(106,0); ka(107,-90); ka(108,180); ka(109,90);
+ka(84',-74); penstroke z44e{down}...z43e... z42e{(9u,4.6v)-z42}...z41e...
+z40e{down}; kouki(40,3,1.2); penstroke z42e{(9u,4.6v)-z42}...
+z50e...z51e{left}...z54e...z55e{left}; kouki(55,5,1.5); penstroke
+z51e{left}...z52e... z53e{right}; kouki(53,6,1.1); penstroke
+z44'e{up}...z45e...z46e... z47e...z48e...z49e...z49.1e...z49.2e{left};
+kouki(49.2,7,1.3); penstroke z56e{(9u,-0.2v)-z56}...
+z57e...z58e...z71e{(0,7.3v)-z71}...z59e... z60e{(4.8u,0)-z60}...z61e...z46e{up};
+mpalla(58,1.1); mpalla(60,1.5); penstroke z60e{(4.8u,0)-z60}...
+z62e...z63e...z64e{up}...z65e... z66e...z67e{up}; kouki(67,2,1.2);
+mpalla(64,1.2); penstroke z64e{up}...z67'e...z68e... z69e...z70e{right};
+kouki(70,6,1.5); penstroke z71e{(0,7.3v)-z71}...z72e
+...z73e...z74e{right}...z75e{down}; penstroke z74e{right}...z76e{up};
+kouki(75,3,1.2); kouki(76,1,1.4); penstroke z77e{left}...z78e...z79e
+...z80e{right}...z81e...z82e...z83e ...z84e...z84'e{(9u,8v)-z84'}...
+z85e...z86e...z87e...z88e... z89e{down}; kouki(89,3,1.4); penstroke
+z84'e{(9u,8v)-z84'}... z90e...z91e...z92e{left}; kouki(92,7,1.2);
+mpalla(84',1.4); mpalla(79,1.4); z200=(6.2u,2.2v); z201=(7u,4.1v);
+z202=(6.85u,5.05v); z203=(6.5u,5.7v); z204=(6.25u,6.4v); z205=(6.3u,5.4v);
+z206=(5.75u,5v); z207=(6.1u,4.6v); z208=(6.4u,4.8v); z209=(6.4u,2.2v);
+z210=(7.2u,3.3v); z211=(7.7u,4.2v); z212=(7.5u,4.7v); z213=(8.4u,3.8v);
+z214=(9.35u,3v); z215=(8.6u,2.05v); z216=(7.7u,2.8v); z217=(8.4u,3.4v);
+z218=(8.75u,3.1v); z219=(5.3u,-0.1v); z220=(7.5u,1.25v); z221=(8.35u,2.3v);
+z222=(8.8u,2.5v); z223=(9.1u,2.7v); z224=(9u,2.9v); z225=(6.55u,0.1v);
+z226=(6.85u,-0.1v); z227=(8.4u,0.3v); z228=(9u,0.15v); z229=(9.2u,0.6v);
+ka(200,-36); ka(201,0); ka(202,19); ka(203,30); ka(204,0); ka(205,90);
+ka(206,180); ka(207,-90); ka(208,0); ka(209,-36); ka(210,-36); ka(211,0);
+ka(212,90); ka(213,-90); ka(214,180); ka(215,90); ka(216,0); ka(217,-90);
+ka(218,180); ka(219,-71); ka(220,-45); ka(221,-40); penpos222(0.2v,-90);
+ka(223,0); ka(224,20); penpos225(0.15uv,-142); ka(226,-90); ka(227,-70);
+penpos228(0.2v,-90); ka(229,0); z230=(6.45u,2.05v); z231=(7.2u,2.75v);
+ka(230,-46); ka(231,-90); penstroke z200e{(9u,6v)-z200}...z201e
+...z202e{(4.6u,9v)-z202}...z203e... z204e{up}; kouki(204,2,1.2); penstroke
+z202e{(4.6u,9v)-z202}... z205e...z206e...z207e...z208e{up}; kouki(208,1,1.6);
+mpalla(201,1.4); penstroke z209e{(9u,5.4v)-z209}... z210e{z210-z209}...z211e...
+z212e{left}; kouki(212,7,1.2); penstroke z210e{z210-z209}...z213e...
+z214e...z215e...z216e...z217e... z218e{down}; kouki(218,3,1.4); penstroke
+z219e{(9u,1.2v)-z219}... z220e...z221e...z222e...z223e... z224e; penstroke
+z219e{(9u,1.2v)-z219}... z225e...z226e{right}; kouki(226,6,1); penstroke
+z227e{(9u,0.5v)-z227}... z228e...z229e{up}; penstroke z230e{(9u,4.5v)-z230}...
+z231e{right}; kouki(231,8,1.1); mpalla(114,1.3); mpalla(113,1.5);
+triaina(110,111,112,0.65); penlabels(range 1 thru 231);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitR.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitR.mf
new file mode 100644
index 00000000000..e83e87a99e9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitR.mf
@@ -0,0 +1,120 @@
+.cmchar "The letter R";
+.beginchar("R",8.9u#+0.3mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(3.8u,0.15v); z2=(4.6u,1.1v); z3=(5.05u,1.35v); z4=(4u,1.2v);
+z5=(2.65u,1.65v); z6=(1.5u,2.35v); z7=(1.32u,3v); z8=(2.3u,3.9v);
+z9=(2.9u,3.4v); z10=(2.6u,3v); z11=(2.3u,1.8v); z12=(2.5u,1.7v);
+z13=(2.75u,1.6v); z14=(3.6u,3.25v); z15=(3.95u,3.1v); z16=(3.85u,4.3v);
+z17=(4.6u,5.55v); z18=(3u,5.9v); z19=(3.1u,6.55v); z20=(1.8u,5.5v);
+z21=(3.8u,7.25v); z22=(2.8u,7.45v); z23=(1.6u,7.15v); z24=(0.5u,7.15v);
+z25=(0.1u,7.8v); z26=(0.6u,8.3v); z27=(0.95u,8.15v); z28=(1.3u,8.1v);
+z29=(1.55u,8.4v); z30=(4.35u,6.7v); z31=(6.15u,7.55v); z32=(6.85u,8.4v);
+z33=(6.7u,7.35v); z34=(7.35u,6.85v); z35=(7.7u,6.2v); z36=(6.35u,4.65v);
+z37=(5.5u,4v); z38=(5.05u,3.2v); z39=(5.45u,2.9v); z40=(5.75u,3.1v);
+z41=(6.35u,4.05v); z42=(6.75u,3.55v); z43=(7u,1.75v); z44=(7.6u,1.1v);
+z45=(7.5u,0.4v); z46=(8.4u,1.45v); z47=(8.75u,2v); z48=(8.3u,2.55v); ka(1,-16);
+penpos2(0.1uv,-57); penpos3(0.1uv,-62); penpos4(0.95uv,38); penpos5(0.8v,101);
+penpos6(0.45uv,35); penpos7(0.25u,0); penpos8(1.5hair,-90);
+penpos9(1.5hair,180); ka(10,90); ka(11,-47); ka(12,-49); ka(13,-50);
+penpos14(0.12uv,-14); penpos15(0.1uv,-14); penpos16(0.45u,0); penpos17(0.65u,0);
+penpos18(0.9uv,49); ka(19,180); ka(20,-71); penpos21(0.9uv,55);
+penpos22(0.9v,90); penpos23(0.85uv,105); penpos24(0.41uv,59); ka(25,0);
+penpos26(0.35v,-90); penpos27(0.4uv,-134); penpos28(0.2v,-90); ka(29,0);
+penpos30(0.1uv,-63); penpos31(0.1uv,-63); ka(32,164); penpos33(0.9uv,36);
+penpos34(0.77uv,40); penpos35(0.67u,0); ka(36,-61); penpos37(0.3uv,121.5);
+penpos38(1.5hair,180); ka(39,-90); ka(40,0); penpos41(0.7uv,51);
+penpos42(0.8u,8); penpos43(0.85u,12); penpos44(uv,49); ka(45,0);
+penpos46(0.15uv,-60); penpos47(1.5hair,0); ka(48,90); filldraw
+z1l{up}...z4l...z5l... z6l...z7l...z8l{right} & z8l--z8r & z8r{left}...
+z7r...z6r...z5r... z4r...{z2l-(u,9v)}z2l & {(9u,4v)-z2l}z2l...z3l & z3l--z3r &
+z3r...{z2r-(9u,4v)}z2r...z1r & z1r--z1l & cycle; penstroke z8e{right}...z9e...
+z10e{left}; kouki(10,5,2.5); filldraw z11l{(9u,8v)-z11}...z14l...
+z16l...z18l...z20r{(0,5.3v)-z20} & z20r--z20l & z20l{z20-(0,5.3v)}...
+z19r{(4.7u,9v)-z19} & z19r--z19l & z19l{z19-(2.6u,9v)}...z18r...
+(3.7u,5.85v)...z16r ...z14r...z11r{z11-(9u,8v)} & z11r--z11l & cycle; penstroke
+z12e{(9u,7.5v)-z12}... z15e...z17e...z21e...z22e...z23e...
+z24e...z25e...z26e...z27e...z28e... z29e{up}; kouki(29,1,1.2); filldraw z30l---
+z31l...z32r{(7.1u,9v)-z32} & z32r--z32l & z32l{down}...z33r...
+z34r...z35r{down}...z36r{z37r-z36r} & z36r--z36l & z36l{z36r-z37r}...
+z35l...z34l...z33l...z31r{up} & z31r--z30r--z30l & cycle; filldraw
+z39r{left}...z38r...z37r... z36l{z36r-z37r} & z36l--z36r &
+z36r{z37r-z36r}...z41r...z42r... z43r...z44r...z46l...z47l{up} & z47l--z47r &
+z47r{down}...z46r... z45r & z45r--z45l & z45l{up}...z44l
+...z43l...z42l...z41l...z37l... z38l...z39l{right} & z39l--z39r & cycle;
+penstroke z39e{right}...z40e{up}; penstroke z47e{up}...z48e{left};
+kouki(40,1,2); kouki(48,7,1.9); z50=(3.5u,-0.1v); z51=(2.75u,0.8v);
+z52=(2.15u,0.2v); z53=(2.5u,-0.1v); z54=(2.8u,0.2v); z55=(2.3u,0.9v);
+z56=(0.8u,0); z57=(0.25u,0.5v); z58=(0.35u,0.85v); z59=(0.7u,0.9v);
+z60=(0.9u,0.6v); z61=(0.55u,1.4v); z62=(0.95u,1.7v); z63=(0.75u,2.05v);
+z64=(0.55u,2.55v); z65=(u,3.4v); z66=(2.2u,5.3v); z67=(1.1u,6.4v);
+z68=(0.05u,5.3v); z69=(0.3u,4.7v); z70=(0.7u,4.1v); z71=(0.4u,3.8v);
+z72=(0.2u,4v); z73=(u,4.45v); z74=(1.7u,5.2v); z75=(1.2u,5.8v); z76=(0.8u,5.5v);
+z77=(0,6.3v); z78=(2.3u,4.55v); z79=(3.3u,3.5v); z80=(2.5u,2.55v);
+z81=(1.75u,3.2v); z82=(2.3u,3.7v); z83=(2.5u,3.2v); z84=(5.3u,5.3v);
+z85=(2.8u,8.7v); z86=(2.8u,8.2v); z87=(3.1u,9v); z88=(0.85u,7v);
+z89=(1.7u,5.85v); z90=(2.25u,6.15v); z91=(5.1u,8v); z92=(5u,8.4v);
+z93=(6.2u,8.9v); z94=(6.55u,8.6v); z95=(6u,6.45v); z96=(2.95u,3.8v);
+z97=(5.5u,1.6v); z98=(7.9u,3.3v); z99=(7.1u,4.55v); z100=(8.1u,5.2v);
+z101=(8.4u,5.75v); z102=(8.05u,4.1v); z103=(7.7u,5v); z104=(7.2u,5.55v);
+z105=(6.5u,7.1v); z106=(7.75u,8.6v); z107=(8.2u,8.5v); z108=(8.8u,8.7v);
+z109=(8.6u,7.8v); z110=(8.05u,7.2v); z111=(7.6u,7.6v); z112=(7.9u,8.05v);
+z113=(8.2u,7.8v); z114=(8.2u,6.8v); z115=(8.7u,6.6v); z116=(8.6u,6.3v);
+z117=(5.9u,5.85v); z118=(3.7u,4.3v); z119=(4u,3.25v); z120=(5.4u,2.5v);
+z121=(6.9u,4v); z122=(5.9u,5v); z123=(4.6u,3.9v); z124=(6.4u,0.6v);
+z125=(5.6u,-0.2v); z126=(5u,0.1v); z127=(4.35u,0.4v); z128=(4.9u,0.5v);
+z129=(5.45u,1.1v); z130=(5.9u,0.95v); z131=(5.7u,0.3v); z132=(6.7u,-0.1v);
+z133=(7.1u,0.2v); z134=(7.5u,0); z135=(8u,0.6v); z136=(9u,2v); z137=(8.8u,2.7v);
+z138=(8.4u,3.45v); z139=(8.65u,3.8v); z140=(9u,3.6v); z141=(8.3u,2.85v);
+z142=(7.7u,2.2v); z143=(8.1u,1.75v); z144=(8.5u,2.05v); z145=(8.75u,0.85v);
+z146=(8.75u,0.3v); ka(50,0); ka(51,90); ka(52,180); ka(53,-90); ka(54,0);
+ka(55,90); ka(56,90); ka(57,0); ka(58,-43); ka(59,-90); ka(60,180); ka(61,0);
+ka(62,32); ka(63,21); ka(64,0); ka(65,-40); ka(66,0); ka(67,90); ka(68,180);
+ka(69,-137); ka(70,180); ka(71,90); ka(72,0); ka(73,-90); ka(74,0); ka(75,90);
+ka(76,180); ka(77,0); ka(78,-90); ka(79,180); ka(80,90); ka(81,0); ka(82,-90);
+ka(83,90); ka(84,-3); ka(85,90); ka(88,180); ka(89,-90); ka(90,0); ka(91,16);
+ka(92,16); ka(93,-90); ka(94,180); ka(95,-90); ka(96,180); ka(97,-90);
+ka(98,-14); ka(99,90); ka(100,0); ka(101,-90); ka(102,0); ka(103,38); ka(104,54);
+ka(105,0); ka(106,-90); ka(107,-126); ka(108,0); ka(109,180); ka(110,90);
+ka(111,0); ka(112,-90); ka(113,180); ka(114,-137); ka(115,-139); ka(116,126);
+ka(117,90); ka(118,180); ka(119,-130); ka(120,-90); ka(121,0); ka(122,90);
+ka(123,180); ka(124,180); ka(125,90); ka(126,42); ka(127,90); ka(128,0);
+ka(129,-90); ka(130,-147); ka(131,90); ka(132,-90); ka(133,0); ka(134,-33);
+ka(135,-45); ka(136,0); ka(137,42); ka(138,0); ka(139,-90); ka(140,180);
+ka(141,90); ka(142,180); ka(143,-90); ka(144,0); ka(145,-78); ka(146,180);
+penstroke z50e{up}...z51e...z55e... z62e... z64e{up}...z78e...
+z79e...z80e...z81e... z82e...z83e{left}; penstroke z51e{left}...z52e...z53e...
+z54e{up}; kouki(54,1,1.5); penstroke z55e{left}...z56e...z57e...
+z58e{(8u,9v)-z58}...z61e{up}; kouki(61,1,1.5); penstroke
+z58e{(8u,9v)-z58}...z59e... z60e{down}; kouki(60,3,1.4); z200=(2u,0.2v);
+z201=(1.7u,-0.2v); z202=(1.5u,1.1v); triaina(200,201,202,0.7); penstroke
+z64e{up}...z65e...z66e... z67e...z68e... z69e{(5u,0)-z69}...z70e...z71e...
+z72e{up}; kouki(72,2,1.3); penstroke z69e{(5u,0)-z69}...z73e...
+z74e...z75e{left}...z76e{down}; kouki(76,4,2); penstroke z75e{left}...z77e{up};
+kouki(77,2,1.3); penstroke z13e{(9u,6v)-z13}...z84e
+{(5.6u,9v)-z84}...z85e...z88e... z89e...z90e{up}; kouki(90,1,1.6);
+mpalla(86,1.3); mpalla(87,1.3); mpalla(84,1.6); penstroke z84e{(5.6u,9v)-z84}...
+z91e...z92e; z210=(4.6u,7.9v); z211=(4.5u,8.3v); z212=(5.5u,8.15v);
+triaina(210,211,212,0.5); penstroke z84e{(5.6u,9v)-z84}...
+z93e{right}...z94e{down}; kouki(94,3,1.5); penstroke z84e{(5.6u,9v)-z84}...
+z95e{right}; kouki(95,8,1.4); z30'=z30; ka(30',117); z38'=z38; ka(38',-90);
+mpalla(64,1.5); mpalla(62,1.2); penstroke z30'e{z30-z31}...z96e...
+z97e...z98e{(9u,7v)-z98}...z102e... z103e...z104e{z86-z104}...z117e...
+z118e...z119e{z133-z119}...z120e... z121e...z122e...z123e...z38'e{right};
+penstroke z98e{(9u,7v)-z98}... z99e{left}; kouki(99,7,1.2); penstroke
+z98e{(9u,7v)-z98}...z100e ...z101e{right}; kouki(101,8,1.2); mpalla(103,1.3);
+penstroke z104e{z86-z104}...z105e... z106e...z107e...z109e...z110e...z111e
+...z112e...z113e{down}; penstroke z109e{down}...z114e... z115e...z116e{left};
+kouki(116,5,1); penstroke z107e{right}...z108e{up}; kouki(108,1,1);
+z119'=(5.6u,1.9v); ka(119',-71); penstroke z119e{z133-z119}...
+z119'e...{down}z124e... z125e...z126e...z128e...z129e...z130e ...z131e{left};
+kouki(131,5,1.8); penstroke z126e...z127e{left}; z130'=(6.2u,0.3v);
+ka(130',-167); penstroke z130e{(6.5u,0)-z130} ...z130'e...z132e{right}...z133e
+{up}; kouki(133,1,1.5); z230=(5.1u,2.8v); z231=(6.3u,2.1v); z232=(4.5u,2v);
+triaina(230,231,232,0.5); penstroke z134e{z136-z134}...z135e
+{(9u,1.5v)-z135}...z136e... z137e{z86-z137}...z141e...z142e... z143e...z144e{up};
+penstroke z135e{(9u,1.5v)-z135}... z145e{right}; penstroke
+z135e{(9u,1.5v)-z135}... z146e{down}; kouki(146,3,1.7); mpalla(137,1.2);
+penstroke z137e{z86-z137}...z138e... z139e...z140e{down}; kouki(140,3,1.25);
+penlabels(range 1 thru 150);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitS.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitS.mf
new file mode 100644
index 00000000000..e381e372758
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitS.mf
@@ -0,0 +1,117 @@
+.cmchar "The letter S";
+.beginchar("S",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(3.85u,0); z2=(4.7u,0.95v); z3=(4.05u,1.1v); z4=(3.2u,1.35v);
+z5=(1.85u,1.8v); z6=(1.55u,2.6v); z7=(2.4u,3.4v); z8=(3u,2.8v); z9=(2.6u,2.35v);
+z10=(2.25u,2.6v); z11=(6.2u,1.8v); z12=(7.35u,3.6v); z13=(7.05u,4.85v);
+z14=(5.55u,5.55v); z15=(4u,4.95v); z16=(3.25u,3.5v); z17=(4.4u,2.2v);
+z18=(6.2u,3.6v); z19=(5.3u,4.55v); z20=(4.4u,3.7v); z21=(4.9u,3.1v);
+z22=(5.6u,3.9v); z23=(6.1u,4.3v); z24=(6.4u,4.1v); z25=(6.2u,3.8v);
+z26=(6.05u,3.95v); z27=(5.4u,6.35v); z28=(7.1u,7.5v); z29=(7.6u,8.4v);
+z30=(7u,9.05v); z31=(6.5u,8.6v); z32=(6.85u,8.15v); z33=(7.05u,8.4v);
+z34=(5.5u,8.6v); z35=(3u,7.4v); z36=(2u,5.7v); z37=(2.4u,4.7v); z38=(3.4u,4.15v);
+z39=(5.3u,6v); z40=(4u,7.2v); z41=(3u,6.3v); z42=(3.2u,5.65v);
+z43=(3.75u,5.45v); z44=(4.4u,6v); z45=(4u,6.45v); ka(1,-13); ka(2,-59);
+penpos3(uv,51); penpos4(0.9uv,77); penpos5(0.65uv,33); penpos6(0.35u,0);
+penpos7(0.15v,-90); penpos8(0.1u,180); ka(9,90); ka(10,0); kouki(10,2,2.2);
+penpos11(0.2uv,-61); penpos12(0.9u,0); penpos13(uv,39); penpos14(0.4v,90);
+penpos15(0.15uv,122); ka(16,180); ka(17,-90); ka(18,0); ka(19,90); ka(20,180);
+ka(21,-90); ka(22,-23); ka(23,-90); ka(24,180); ka(25,90); ka(26,0);
+penpos27(0.1uv,-55); penpos28(0.25uv,-55); ka(29,0); ka(30,90); ka(31,180);
+ka(32,-90); ka(33,0); kouki(33,1,1.7); ka(34,156); penpos35(1.5hair,-61);
+penpos36(0.7u,0); penpos37(0.85uv,47); penpos38(0.7v,90); penpos39(0.15u,180);
+ka(40,-90); ka(41,0); ka(42,42); ka(43,90); ka(44,180); ka(45,-90); z45'=z45;
+ka(45',90); kouki(45',7,2); filldraw z1r{z34-z1}...z2r...z11r
+...z12r...z13r{(4.4u,9v)-z13r} & z13r--z13l & z13l{z13r-(4.4u,9v)}...
+z12l...z11l...z2l{(3u,0)-z2l} & z2l{up}...z3r...z4r...z5r...z6r...
+z7r...z8r...z9r...z10r{up} & z10r--z10l & z10l{down}...z9l...
+z8l...z7l...z6l...z5l...z4l...z3l... z1l{down} & z1l--z1r & cycle; penstroke
+z13e{(4.4u,9v)-z13r}... z14e...z15e...z16e...z17e{right}...
+z18e...z19e...z20e...z21e{right}... z22e...z23e...z24e...z25e... z26e{up};
+ka(15',-40); z15'l=z15r; filldraw z27l{z28-z27}... (5.4u,7.15v)...z35r{z35-z34} &
+z35r--z35l & z35l{z34-z35}... (4.95u,8.15v)...z34r{z34-z13} & z34r--z34l &
+z34l{z13-z34}... (5.7u,7.7v)...z28l{z28-z27}.. z29l{up} & z29l--z29r &
+z29r{down}...z28r{z27-z28}---z27r & z27r--z27l & cycle; kouki(26,2,1); penstroke
+z15'e{z32-z15}... z27e{z28-z27}; penstroke z29e{up}...z30e...z31e...
+z32e...z33e{up}; penstroke z45e{right}...z44e...z43e...
+z42e...z41e...z40e...z39e...z38e... z37e...z36e...z35e{z34-z35};
+z50=(5.45u,5.55v); z51=(4.8u,3.85v); z51'=(3.3u,2.2v); z52=(3.4u,2.8v);
+z53=(1.3u,1.8v); z54=(0.75u,v); z55=(1.5u,0.1v); z56=(2.6u,0.5v);
+z57=(3.2u,0.2v); z58=(2.05u,0.6v); z59=(1.7u,1.1v); z60=(0.5u,0);
+z60'=(0.15u,0.3v); z61=(1.9u,2.9v); z62=(0.25u,2.2v); z63=(0.65u,1.8v);
+z64=(0.9u,2v); z65=(0.5u,4v); z66=(0.7u,4.3v); z67=(0.5u,3v); z68=(0.05u,3.4v);
+z69=(3.2u,3.2v); z70=(1.4u,4.15v); z71=(0.8u,5.6v); z72=(1.05u,7v);
+z73=(1.4u,8.2v); z74=(0.7u,9v); z75=(0.1u,8.8v); z76=(-0.1u,9v); z77=(0,8.35v);
+z78=(0.5u,7.75v); z79=(u,8.1v); z80=(0.95u,8.3v); z81=(0.65u,8.4v);
+z82=(0.55u,8.15v); z83=(0.3u,8.3v); z84=(0.9u,7.4v); z85=(1.9u,7.95v);
+z86=(4.25u,8.9v); z87=(3.15u,8.5v); z88=(4.5u,8.4v); z89=(5.1u,8.9v);
+z90=(4.9u,9.2v); z91=(4.25u,7.5v); z92=(3.5u,6.7v); z93=(2.75u,7.4v);
+z94=(3.3u,7.95v); z95=(3.75u,7.5v); z96=(6.1u,8.3v); z97=(7.45u,7.15v);
+z98=(7.85u,6.45v); z98.1=(7.65u,6.7v); z98.2=(8.2u,6.2v); z99=(8.55u,6.1v);
+z100=(7.1u,6.85v); z101=(6.5u,6.1v); z102=(8u,7.4v); z103=(8.7u,8v);
+z104=(8.45u,8.25v); z105=(8.3u,8v); z106=(8u,7.9v); z107=(7.8u,8.9v);
+z108=(8.05u,8.75v); z109=(8.4u,8.85v); z110=(8.7u,8.7v); z111=(4.1u,0);
+z112=(5.75u,1.15v); z113=(8u,2.95v); z114=(7.85u,5.25v); z115=(8.8u,4.05v);
+z116=(6.5u,6.2v); z117=(4.4u,5.4v); z118=(4.3u,0); z119=(5.2u,0.3v);
+z120=(5.5u,0.6v); z121=(6.5u,0.3v); z122=(7.6u,0); z123=(8.25u,0.15v);
+z124=(8.25u,0.55v); z125=(8.7u,0.3v); z126=(8.65u,v); z127=(8.05u,1.6v);
+z128=(7.7u,1.3v); z129=(7.8u,1.05v); z130=(7.5u,0.65v); z131=(7.15u,0.9v);
+z132=(6.85u,0.85v); z133=(6.5u,v); z134=(6.5u,0.7v); z135=(5.5u,0.8v);
+z136=(6.25u,0.9v); z137=(4.9u,2.6v); z138=(4.65u,1.5v); z139=(5.5u,1.75v);
+z140=(5.1u,1.55v); ka(42.1,-138); z42.1=z42; ka(50,180); ka(51,136); ka(52,114);
+ka(51',180); ka(53,127); ka(54,180); ka(55,-90); penpos56(0.2v,-90);
+ka(57,-90); ka(58,0); ka(59,90); ka(60,90); ka(60',0); ka(61,90); ka(62,180);
+ka(63,-90); ka(64,0); ka(65,0); ka(66,-90); ka(67,90); ka(68,0); ka(69,90);
+ka(70,39); ka(71,0); ka(72,-29); ka(73,0); ka(74,90); ka(75,90); ka(76,0);
+ka(77,180); ka(78,-90); ka(79,0); penpos80(0.1uv,64); penpos81(0.3v,90);
+penpos82(0.25uv,129); ka(83,36); ka(84,180); ka(85,-50); ka(86,-90);
+ka(87,-90); ka(88,-90); ka(89,0); ka(90,90); ka(91,180); ka(92,90); ka(93,0);
+ka(94,-90); ka(95,180); ka(96,-130); ka(97,-145); ka(98.1,-130);
+penpos98(0.32uv,-130); ka(98.2,-130); ka(99,-90); ka(100,180); ka(101,90);
+ka(102,-90); ka(103,0); penpos104(0.25uv,113); penpos105(0.22v,180);
+ka(106,90); ka(107,-90); ka(108,-132); ka(109,-90); ka(110,-90); ka(111,-21);
+ka(112,-67); ka(113,-21); ka(114,36); ka(115,-90); ka(116,90); ka(117,129);
+ka(118,-44); ka(119,-90); ka(120,-90); ka(121,-112); ka(122,-90); ka(123,-56);
+ka(124,0); ka(125,-90); ka(126,0); penpos127(1.3hair,90); penpos128(0.33u,180);
+penpos129(0.4uv,-148); penpos130(1.3hair,90); ka(131,0); ka(135,-81);
+penpos136(0.15v,-81); ka(137,0); ka(138,90); ka(139,-90);
+% z50l=z39l;
+penstroke z50e{down}...z51e{z58-z51}...z52e...
+z53e...z54e...z55e...
+z58e...z59e{left}...z60e{left}...z60'e{up}; kouki(60',2,1.6); penstroke
+z55e{right}...z56e... {right}z57e; kouki(57,6,1.4); penstroke
+z51e{z58-z51}...z51'e{down}; kouki(51',4,1.2); penstroke
+z51e{z58-z51}...z61e{left} ...z62e{down}...z63e...z64e{up}; kouki(64,1,1.5);
+penstroke z61e{left}...z65e...z66e{right}; kouki(66,8,1.4); penstroke
+z61e{left}...z67e...z68e{up}; mpalla(67,1.3); kouki(68,2,1.3); penstroke
+z51e{z58-z51}...z69e...z70e ...z71e...z72e...z73e...z74e
+...z77e...z78e...z79e...z80e...z81e ...z82e...z83e{z83-z137}; penstroke
+z74e{left}...z75e... z76e{up}; kouki(76,2,1); penstroke z78e{right}...z84e{down};
+kouki(84,3,1); penstroke z72e{z73-z72}...z85e...z86e ...z96e{z99-z96}...z97e...
+z98.1e--z98e--z98.2e... z99e{right}; kouki(99,6,1.3); mpalla(70,1.3);
+mpalla(71,1.5); mpalla(85,1.4); penstroke z85e...z87e{right}...z88e
+...z89e...z90e{left}; kouki(90,7,1.4); penstroke z87e{right}...z91e...z92e...
+z93e...z94e...z95e{down}; kouki(95,3,1.5); penstroke z96e{z99-z96}...z102e...
+z103e...z104e...z105e...z106e{left}; penstroke z96e{z99-z96}...z100e...
+z101e{left}; kouki(101,5,1.75); penstroke z32e{right}...z107e{right}
+...z108e...z109e...z110e{right}; kouki(110,6,1.1); z42'=(3.15u,4.85v);
+ka(42',90); penstroke z42.1e{z51-z42}...z42'e{left}; kouki(42',5,1.2); penstroke
+z111e{z29-z111}...z112e... z113e...z114e...z116e...z117e; mpalla(113,1.7);
+mpalla(114,1.3); penstroke z113e{z98-z112}...z115e{right}; kouki(115,8,1);
+penstroke z118e{z115-z118}...z119e {right}; kouki(119,8,1.2); penstroke
+z118e{z115-z118}...z120e... z121e...z122e...z123e...z126e...
+z127e...z128e...z129e...z130e... z131e{up}; kouki(131,2,1.2); mpalla(132,1.2);
+mpalla(133,1.2); mpalla(134,1.2); filldraw z135r--z136r & z136r..z136l &
+z136l--z135l & z135l--z135r & cycle; penstroke z123e...z125e{right};
+kouki(125,8,1.2); penstroke z122e{right}...z124e{up}; kouki(124,1,1.15);
+penstroke z17e{right}...z137e{up}; kouki(137,1,1.2); penstroke
+z17e{right}...z138e{left}; kouki(138,5,1.25); penstroke
+z17e{right}...z139e{right}; kouki(139,6,1.3); mpalla(140,1.2);
+z200=(0.05u,6.1v); z201=(0.2u,7.15v); z202=(1.5u,5.9v); z210=(1.7u,8.65v);
+z211=(2.4u,9.1v); z212=(2.4u,7.5v); z220=(4.85u,3.7v); z221=(5.15u,4.15v);
+z222=(5.8u,3v); z230=(6.75u,2.4v); z231=(7.3u,3.05v); z232=(8.1u,1.6v);
+z240=(8.2u,7.6v); z241=(8.7u,7v); z242=(6.6u,6.4v); triaina(200,201,202,0.4);
+triaina(210,211,212,0.6); triaina(220,221,222,0.5); triaina(230,231,232,0.5);
+triaina(240,241,242,0.6); penlabels(range 1 thru 250);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitT.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitT.mf
new file mode 100644
index 00000000000..8ca2c14e165
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitT.mf
@@ -0,0 +1,113 @@
+.cmchar "The letter T";
+.beginchar("T",8.9u#+0.2mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(1.5u,1.3v); z2=(1.8u,1.1v); z3=(2.15u,1.4v); z4=(2.1u,1.7v); z5=(2.3u,2.1v);
+z6=(2.9u,1.8v); z7=(3u,1.3v); z8=(1.9u,0.4v); z9=(0.65u,1.7v);
+z10=(2.35u,3.15v); z11=(3.25u,3v); z12=(4.15u,2.15v); z13=(4.8u,1.25v);
+z14=(6.3u,0.7v); z15=(7.7u,1.3v); z16=(8.2u,2.6v); z17=(7.1u,3.7v);
+z18=(6.45u,3.25v); z19=(6.7u,2.75v); z20=(7u,2.75v); z21=(7.25u,2.4v);
+z22=(7u,2.25v); z23=(4.4u,1.85v); z24=(5.3u,3v); z25=(4.9u,3.8v);
+z26=(4.3u,4.1v); z27=(4.2u,4.65v); z28=(3.25u,3.7v); z29=(4.6u,1.6v);
+z30=(6u,3.3v); z31=(5.7u,4.4v); z32=(4.57u,5.25v); z33=(4.3u,6v);
+z34=(4.8u,6.55v); z35=(5.6u,6.1v); z36=(1.9u,6.2v); z37=(2.2u,6.1v);
+z38=(2.6u,6.55v); z39=(2.35u,6.85v); z40=(2.4u,7.4v); z41=(3.35u,7.35v);
+z42=(3.6u,6.5v); z43=(2.4u,5.4v); z44=(1.15u,6.8v); z45=(3.05u,8.6v);
+z46=(4.45u,8.1v); z47=(5.45u,7.35v); z48=(6.8u,6.75v); z49=(8.05u,7.95v);
+z50=(7.25u,8.65v); z51=(6.55u,8.1v); z52=(6.8u,7.7v); ka(1,-136);
+penpos2(0.08v,-90); penpos3(0.5u,0); penpos4(0.55uv,22); penpos5(0.3uv,-55);
+penpos6(1.5hair,-155); ka(7,180); ka(8,90); ka(9,0); penpos10(0.6v,-90);
+penpos11(0.92uv,-123); penpos12(1.05uv,-143); penpos13(uv,-143);
+penpos14(0.65v,-90); penpos15(0.2uv,-23); ka(16,0); penpos17(1.5hair,90);
+penpos18(0.25u,180); penpos19(0.6uv,-117); penpos20(0.55v,-90);
+penpos21(0.2uv,-163); ka(22,105); ka(23,-53); penpos24(0.25u,0);
+penpos25(0.55uv,48); penpos26(0.8uv,45); ka(27,180); ka(28,-65); ka(29,-57);
+penpos30(0.37u,0); penpos31(0.8uv,37); penpos32(0.9uv,44);penpos33(0.5u,0);
+penpos34(0.2uv,-67); ka(35,180); ka(36,-132); penpos37(0.1v,-90);
+penpos38(0.5u,6); penpos39(0.55uv,42); penpos40(0.3uv,-60);
+penpos41(1.5hair,-138); ka(42,180); ka(43,90); penpos44(1.5hair,0);
+penpos45(0.65v,-90); penpos46(1.1uv,-130); penpos47(1.03uv,-130);
+penpos48(0.6v,-90); penpos49(1.5hair,0); ka(50,90); ka(51,180); ka(52,-90);
+penstroke z1e{(1.6u,0)-z1}...z2e... z3e...z4e...z5e...z6e...z7e...z8e{left}...
+z9e{up}...z10e...z11e...z12e...z13e... z14e...z15e...z16e...z17e...z18e...
+z19e...z20e...z21e...z22e{left}; penstroke z29e{(9u,4.6v)-z29}...z30e
+...z31e...z32e...z33e...z34e... z35e{down}; kouki(35,3,2.1); filldraw
+z23r{(9u,4.6v)-z29}...z24r ...z25r...z26r...z27l{up} & z27l--z27r &
+z27r{z11r-z27}...z28l & z28l--z28r & z28r{z26r-z28}...z26l ...z25l...z24l...
+z23l{z29-(9u,4.6v)} & z23l--z23r & cycle; penstroke z36e{z30r-z36}...z37e...
+z38e...z39e{z39-z16}...z40e...z41e...z42e... z43e...z44e...z45e...z46e...z47e...
+z48e...z49e...z50e...z51e... z52e{right}; kouki(52,6,2.1); z60=(2.3u,1.7v);
+z61=(2.7u,1.4v); z62=(1.9u,0.7v); z63=(1.1u,1.5v); z64=(2.2u,2.55v);
+z65=(3.25u,1.9v); z66=(2u,0); z67=(0.1u,1.8v); z68=(1.1u,3.55v);
+z69=(2.5u,4.05v); z70=(4.3u,3.3v); z71=(4.65u,2.75v); z72=(4.8u,3.1v);
+z73=(5.15u,0.1v); z74=(6u,-0.05v); z75=(7.1u,0.2v); z76=(8.5u,0.8v);
+z77=(9u,0.4v); z78=(8.65u,0); z79=(8.4u,0.2v); z80=(8.87u,1.15v);
+z81=(8.75u,2.6v); z82=(8.6u,3.5v); z82'=(8.45u,3.7v); z82.1=z82;
+z83=(7.15u,4.45v); z84=(5.5u,3v); z85=(5.95u,1.75v); z86=(6.7u,2v);
+z87=(6.8u,1.4v); z88=(7.9u,2.6v); z89=(7.1u,3.4v); z90=(3.1u,0); z91=(4.3u,0);
+z92=(4.8u,1.4v); z93=(6.5u,3.7v); z94=(6u,5.2v); z95=(3.8u,6.25v);
+z96=(1.85u,5.2v); z97=(0.65u,3.9v); z98=(0.05u,4.4v); z99=(0.3u,4.8v);
+z100=(0.65u,4.75v); z101=(0.7u,4.5v); z102=(0.9u,4.3v); z103=(1.1u,4.5v);
+z104=(2.8u,3.5v); z105=(3.9u,4.5v); z106=(3u,5.3v); z107=(2.35u,4.8v);
+z108=(2.8u,4.25v); z109=(3.2u,4.6v); z110=(1.65u,6.5v); z111=(2.65u,7.9v);
+z112=(3.9u,6.6v); z113=(2.3u,4.8v); z114=(0.5u,7v); z115=(0.4u,8.05v);
+z116=(1.9u,8.9v); z117=(4.6u,8.9v); z118=(7u,7.3v); z119=(7.7u,7.9v);
+z120=(7.3u,8.3v); z121=(7.05u,8v); z122=(3u,6.1v); z123=(4.9u,8.85v);
+z124=(6.3u,9.2v); z125=(7.65u,9.05v); z126=(9u,6.4v); z127=(7.5u,4.8v);
+z128=(6.8u,5.25v); z129=(6.4u,6.2v); z130=(5.7u,6.4v); z131=(7u,7.75v);
+z131.1=(8.3u,7.5v); z131.2=(9u,8.1v); z131.3=(8.6u,8.5v); z131.4=(8.2u,8.2v);
+z131.5=(8.5u,7.95v); z132=(8.2u,6.5v); z133=(7.5u,5.65v); z134=(6.95u,6.15v);
+z135=(6.3u,8.4v); z136=(0.6u,8.45v); z137=(0.05u,8.9v); z138=(0.55u,9.15v);
+z139=(0.65u,8.95v); z140=(0.9u,8.85v); z141=(u,9v); z117'=(5.85u,8v);
+ka(60,-90); ka(61,180); ka(62,90); ka(63,0); ka(64,-90); ka(65,-145); ka(66,90);
+ka(67,0); ka(68,-51); ka(69,-90); ka(70,-133); ka(71,-180); ka(72,-90);
+ka(73,-106); ka(74,-90); ka(75,-68); ka(76,-90); ka(77,180); ka(78,90);
+ka(79,0); ka(81,0); ka(82,26); ka(82',32); penpos82.1(0.5uv,26); ka(83,90);
+ka(84,180); ka(85,-127); ka(86,0); ka(87,-90); ka(88,0); ka(89,90); ka(90,90);
+ka(91,-90); ka(92,-55); ka(93,0); ka(94,39); ka(95,90); ka(96,159); ka(97,90);
+ka(98,0); ka(99,-67.5); penpos100(0.3uv,-148); penpos101(0.25u,180);
+penpos102(1.5hair,-90); ka(103,0); ka(104,-90); ka(105,0); ka(106,90);
+ka(107,180); ka(108,-90); ka(109,0); ka(110,39); ka(111,-90); ka(112,180);
+ka(113,90); ka(114,0); ka(116,-61); ka(117,-115); ka(118,-90); ka(119,0);
+ka(120,90); ka(121,180); z70'=z70; ka(70',47); ka(122,0); ka(123,-59);
+ka(124,-90); ka(125,-120); ka(126,180); ka(127,90); ka(128,30); ka(129,90);
+ka(130,0); ka(131,-90); ka(131.1,-90); ka(131.2,0); ka(131.3,90); ka(131.4,180);
+ka(131.5,-90); ka(132,180); ka(133,90); ka(134,0); ka(135,180); z116'=z116;
+ka(116',119); ka(136,90); ka(137,0); penpos138(0.25uv,-139);
+penpos139(0.2uv,-145); ka(117',-133); penpos140(1.5hair,-90); ka(141,0);
+ka(142,0); z142=(8.9u,9.2v); penstroke z60e{right}...z61e...z62e
+...z63e...z64e...z65e{z91-z65}...z66e...z67e ...z68e...z69e...z70e{z85-z70}
+...z71e{down}; penstroke z70e{z85-z70}...z72e{right}; kouki(63,2,1.5);
+mpalla(68,1.4); mpalla(70,1.4); kouki(71,3,1.15); kouki(72,6,1.1); penstroke
+z65e{z91-z65}...z73e... z74e...z75e...z81e...z82e...z82'e...
+z83e...z84e...z85e...z87e...z88e... z89e{left}; mpalla(73,1.3); mpalla(75,1.3);
+penstroke z75e...z76e{right}...z77e ...z78e...z79e{up}; kouki(79,2,1.3);
+mpalla(80,1.4); z200=(8.6u,2.45v); kouti(81,200); penstroke z85e...z86e{up};
+kouki(86,1,1.3); penstroke z65e{z91-z65}...z90e{left}; z91'=(3.75u,0.5v);
+ka(91',-158); penstroke z65e{z91-z65}... z91'e...z91e{right}; kouki(90,5,0.8);
+kouki(91,6,0.8); penstroke z92e{z19-z92}...z93e...z94e
+...z95e...z96e{z9-z96}...z97e...z98e ...z99e...z100e{dir-45}...z101e...z102e...
+z103e{up}; penstroke z96e{z9-z96}...z104e... z105e...z106e...z107e...z108e...
+z109e{up}; z201=(5.95u,4.9v); kouti(94,201); kouki(109,1,1); z202=(3.7u,4.9v);
+z203=(3.6u,4.7v); ka(202,22); kouti(202,203); filldraw
+z81r{up}...z82.1r{z82r-z82l} & z82.1r{z82l-z82r}...z82'r & z82'r--z82'l &
+z82'l...z82.1l{z82l-z82r} & z82.1l{z82r-z82l}...z81l{down} & z81l--z81r & cycle;
+penstroke z110e{z138-z110}...z111e... z112e...z113e...z114e...z116e...z117e
+...z117'e ...z118e...z119e...z120e...z121e{down}; z205=(0.35u,6.9v);
+kouti(114,205); penstroke z70'e{z70-z85}...z122e...
+z123e...z124e...z125e{(9u,8.5v)-z125}...z126e...
+z127e{left}...z128e...z129e{left}; penstroke z127e{left}...z130e...
+z131e{right}...z131.1e...z131.2e... z131.3e...z131.4e...z131.5e{right};
+penstroke z131e{right}...z132e... z133e...z134e{up}; penstroke
+z123e{z124-z123}...z135e{down}; kouki(135,3,1.2); penstroke
+z125e{(9u,8.5v)-z125}...z142e{up}; kouki(142,1,1.1); mpalla(126,1.2);
+mpalla(115,1.5); kouki(128,2,1.4); kouki(131.5,6,1.1); kouki(133,5,1.9);
+penstroke z116'e{z115-z116}...z136e... z137e...z138e...z139e...z140e...
+z141e{up}; kouki(129,7,1.2); z143=(4.1u,7.15v); z144=(4.4u,6.9v); ka(143,-90);
+ka(144,180); penstroke z122e{up}...z143e...z144e {down}; kouki(144,3,1.2);
+z250=(7.5u,3.2v); z251=(6.9u,4.15v); z252=(9.3u,4.3v); z260=(-0.15u,3.3v);
+z261=(0.2u,3.9v); z262=(1.05u,2.6v); z270=(1.4u,6.5v); z271=(1.7u,5.55v);
+z272=(-0.2u,6v); z280=(0.4u,-0.2v); z281=(0,0.3v); z282=(1.4u,0.6v);
+triaina(250,251,252,0.5); triaina(260,261,262,0.45); triaina(270,271,272,0.6);
+triaina(280,281,282,0.4); penlabels(range 1 thru 282);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitU.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitU.mf
new file mode 100644
index 00000000000..17be2c16308
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitU.mf
@@ -0,0 +1,120 @@
+.cmchar "The letter U";
+.beginchar("U",8.9u#+0.2mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(4.3u,0.45v); z2=(5.15u,1.4v); z3=(4.45u,1.55v); z4=(3.25u,2v);
+z5=(2u,3.35v); z6=(2.8u,4v); z7=(3.4u,3.5v); z8=(3.2u,3.2v); z9=(7u,3.1v);
+z10=(7.85u,0.75v); z11=(8.5u,1.65v); z12=(9u,2.4v); z13=(8.5u,2.9v);
+z14=(8.1u,2.5v); z15=(7.7u,1.5v); z16=(7u,3.05v); z17=(7.05u,6v);
+z18=(7.4u,7.35v); z19=(7.8u,7.85v); z20=(8.65u,8.3v); z21=(8.8u,8.65v);
+z22=(3.6u,2v); z23=(5u,5.7v); z24=(4.25u,7.4v); z25=(3.1u,7.4v); z26=(1.4u,7.3v);
+z27=(1.1u,8v); z28=(1.8u,8.35v); z29=(2.4u,8.15v); z30=(2.9u,8.5v);
+z31=(3.4u,2v); z32=(4.15u,4.3v); z33=(4u,5.45v); z34=(3.4u,6v);
+z35=(3.65u,6.6v); z36=(2.6u,5.7v); ka(1,0); penpos2(0.18uv,-61); penpos3(uv,49);
+penpos4(0.85uv,112); penpos5(0.2u,0); penpos6(1.5hair,-90); ka(7,180); ka(8,90);
+penpos9(2hair,-48); penpos2'(2hair,-48); x2'=5.3u; z2'r=whatever[z2r,z9r];
+ka(10,0); penpos11(0.2uv,-58); penpos12(1.5hair,0); ka(13,90); ka(14,180);
+penpos15(0.95uv,54); penpos16(0.8u,0); penpos17(0.7u,0); penpos18(0.3uv,-34);
+penpos19(1.5hair,-58); ka(20,-61); ka(21,0); ka(22,-33); penpos23(0.7u,5);
+penpos24(1.1uv,59); penpos25(0.95uv,117); penpos26(0.35uv,61); ka(27,0);
+penpos28(0.55uv,-130); penpos29(0.2v,-90); ka(30,-77); ka(31,-27);
+penpos32(0.3u,0); penpos33(0.67uv,36); penpos34(uv,37); ka(35,160); ka(36,-74);
+filldraw z1r---z2r---z2'r---z9r & z9r--z9l & z9l---z2'l...z2l...z3r...
+z4r...z5r...z6r{right} & z6r--z6l & z6l{left}...z5l...z4l...z3l... z1l{down} &
+z1l--z1r & cycle; penstroke z6e{right}...z7e...z8e{left}; kouki(8,5,2.3);
+filldraw z10r{z13-z10}...z11r... z12r{up} & z12r--z12l & z12l{down}...
+z11l...z15r...z16r...z17r...z18r... z19r...z20r...z21r{up} & z21r--z21l &
+z21l{down}...z20l...z19l...z18l... z17l...z16l...z15l...z10l{z10-z25r} &
+z10l--z10r & cycle; kouki(21,1,1.8); penstroke z12e{up}...z13e...z14e{down};
+kouki(14,4,1.8); penstroke z22e{(8.1u,9v)-z22}...z23e
+...z24e...z25e...z26e...z27e... z28e...z29e...z30e{(5.5u,9v)-z30}; filldraw
+z31r{(7.3u,9v)-z31}...z32r ...z33r...z34r...z35l{up} & z35l--z35r &
+z35r{z34l-z35}...z36l{z36-z34r} & z36l--z36r & z36r...z34l...z33l...
+z32l...z31l{z31-(7.3u,9v)} & z31l--z31r & cycle; z40=(4.1u,0); z41=(3.55u,v);
+z42=(3.05u,0.4v); z43=(3.5u,-0.05v); z44=(3.85u,0.4v); z45=(3.65u,0.65v);
+z46=(2.8u,0.6v); z47=(2.75u,0.2v); z48=(2.65u,-0.1v); z49=(1.5u,0.1v);
+z50=(u,0.25v); z51=(0.6u,0.3v); z52=(0.65u,v); z53=(0.75u,1.6v);
+z54=(1.25u,1.5v); z55=(1.75u,v); z56=(1.4u,0.55v); z57=(1.1u,0.8v);
+z58=(1.2u,v); z59=(1.45u,0.97v); z60=(1.6u,1.1v); z61=(1.1u,2.4v);
+z62=(0.95u,3v); z63=(2.5u,4.75v); z64=(3.75u,3.7v); z65=(3u,2.8v);
+z66=(2.4u,3.3v); z67=(2.8u,3.75v); z68=(3u,3.45v); z69=(1.9u,5v);
+z70=(1.6u,5.4v); z71=(1.1u,6v); z72=(0.55u,5.25v); z73=(0.6u,4.55v);
+z74=(0.9u,5.05v); z75=(1.2u,5.4v); z76=(4u,5.6v); z77=(3u,6.6v);
+z78=(2.05u,5.9v); z79=(2.7u,5.15v); z80=(3.2u,5.7v); z81=(2.8u,6.15v);
+z81'=(4.05u,1.85v); z82=(3.2u,1.35v); z83=(1.5u,3v); z84=(2.8u,4.2v);
+z85=(4.8u,2.6v); z86=(5u,3.3v); z87=(5.85u,4.5v); z88=(5.6u,5.1v);
+z89=(5.95u,5.6v); z90=(3.8u,8.5v); z91=(1.65u,8v); z92=(u,7.75v);
+z93=(0.3u,8.4v); z94=(0.5u,8.7v); z94'=(0.3u,9v); z95=(0.85u,8.85v);
+z96=(1.15u,8.5v); z97=(0.9u,8.2v); z97'=(u,7v); z98=(0.85u,6v); z99=(4.3u,1.7v);
+z100=(5.6u,3.05v); z101=(5.5u,4.35v); z102=(5.25u,4.1v); z103=(6.1u,3.35v);
+z104=(7.7u,4.85v); z105=(8.8u,3.8v); z106=(8u,3v); z107=(7.4u,3.6v);
+z108=(7.95u,4.25v); z109=(8.4u,3.8v); z110=(8.1u,3.45v); z111=(4.4u,1.5v);
+z112=(6u,2.8v); z113=z111; z114=(5.8u,2v); z115=(6.3u,1.6v); z116=(6.9u,1.05v);
+z117=(6.2u,0.1v); z118=(4.85u,0.6v); z119=(5.65u,0.65v); z120=(6.1u,1.1v);
+z121=(6.45u,0.8v); z122=(6.3u,0.55v); z123=(7.35u,0); z124=(7.85u,0.3v);
+z125=(8.6u,0.4v); z126=(8.6u,1.1v); z127=(8.4u,1.6v); z128=(8.4u,2.7v);
+z129=(8.75u,2.4v); z130=(8.3u,1.95v); z131=(7.65u,3.2v); z132=(7.65u,6.65v);
+z133=(8.5u,7.8v); z134=(8.6u,7.6v); z135=(7.8u,8.7v); z136=(8.9u,7.4v);
+z137=(7.85u,6.25v); z138=(6.9u,7.15v); z139=(7.65u,8.05v); z140=(8.35u,7.4v);
+z141=(8u,7v); z142=(7u,8.1v); z143=(5.9u,8.8v); z144=(5.3u,8.2v);
+z145=(5.7u,7.8v); z146=(6.1u,8.2v); z147=(5.1u,8.6v); z148=(7.8u,3.8v);
+z149=(8.8u,4.95v); z150=(8.85u,6v); z151=(8.7u,6.3v); z152=(8.2u,5.8v);
+z152'=(8.5u,5.5v); z153=(8.5u,5.6v); z154=(8.45u,5.25v); ka(40,0); ka(41,90);
+ka(42,180); ka(43,-90); ka(44,0); ka(45,90); ka(46,166); ka(48,166);
+penpos47(0.3uv,166); ka(49,90); ka(50,62); ka(51,90); ka(52,0); ka(53,0);
+ka(54,-90); ka(55,180); ka(56,90); ka(57,0); penpos58(0.3uv,-69);
+penpos59(0.15v,-90); ka(60,0); ka(61,16); ka(62,0); ka(63,-90); ka(64,180);
+ka(65,90); ka(66,0); ka(67,-90); ka(68,180); ka(70,0); ka(71,90); ka(72,-140);
+ka(73,90); ka(74,-90); ka(75,0); ka(76,0); ka(77,90); ka(78,180); ka(79,-90);
+ka(80,0); ka(81,90); ka(81',-45); z82'=z81'; ka(82',135); ka(82,90); ka(83,0);
+ka(84,-90); ka(85,-41); ka(86,0); ka(87,-15); ka(88,90); ka(89,0); ka(90,90);
+ka(91,79); ka(92,90); ka(93,0); ka(94,-49); ka(94',131); ka(95,-90); ka(96,180);
+ka(97,90); ka(97',164); ka(98,180); ka(99,-50); ka(100,-36); ka(101,90);
+ka(102,180); ka(103,-90); ka(104,-90); ka(105,180); ka(106,90); ka(107,0);
+ka(108,-90); ka(109,180); ka(110,90); ka(111,-45); ka(112,-90); ka(113,-66);
+ka(114,-90); ka(115,180); ka(116,-165); ka(117,90); ka(118,90); ka(119,0);
+ka(120,-90); ka(121,180); ka(122,90); ka(123,-90); ka(124,-90); ka(125,-90);
+ka(126,0); ka(127,15); ka(128,-90); ka(129,180); ka(130,90); ka(131,0);
+ka(132,-6); ka(133,-90); ka(134,180); ka(135,-90); ka(136,180); ka(137,90);
+ka(138,0); ka(139,-90); ka(140,180); ka(141,90); ka(143,90); ka(144,180);
+ka(145,-90); ka(146,0); ka(147,90); ka(148,0); ka(149,-28); ka(150,0);
+ka(151,0); ka(152,180); ka(153,-90); ka(154,180); penstroke
+z40e{up}...z41e{left}... z42e...z43e...z44e...z45e{left}; kouki(45,7,1.4);
+penstroke z46e--z47e--z48e; penstroke z41e{left}...z49e{left}...
+z50e...z52e...z54e...z55e... z56e{left}...z57e{up}...z58e...z59e... z60e{up};
+penstroke z50e{(0,0.8v)-z50}...z51e{left}; kouki(51,7,1.25); penstroke
+z52e{up}...z53e{up}; kouki(53,1,1.2); penstroke z41e{left}...z61e...z62e...
+z63e...z64e...z65e...z66e...z67e... z68e{down}; penstroke
+z82'e{z81'-z153}...z83e... z84e...z7e{down}; mpalla(61,1.5); mpalla(69,1.5);
+penstroke z62e{up}...z70e...z71e... z72e{z65-z72}...z74e...z75e{up};
+kouki(75,1,1.5); penstroke z72e{z65-z72}...z73e{left}; kouki(73,5,1.6);
+penstroke z81'e{z153-z81'}...z85e... z87e...z89e...z90e...z91e{(0,6.85v)-z91}
+...z97'e...z98e...z84e{right}... z76e...z77e...z78e...z79e...z80e... z81e{left};
+kouki(81,7,1.1); penstroke z85e...z86e{up}; kouki(86,1,1); penstroke
+z87e...z88e{left}; kouki(88,7,1); mpalla(90,1.8); mpalla(89,2); mpalla(97',1.3);
+penstroke z91e{(0,6.85v)-z91}...z92e ...z93e...z94e...z95e...z96e... z97e{left};
+kouki(97,5,1.4); penstroke z99e{z153-z99}... z100e{z136-z100}...z104e...z105e...
+z106e...z107e...z108e...z109e... z110e{left}...z148e...z149e...z150e
+...z152e...z153e{right}; kouki(110,5,1.65); kouki(153,6,1); penstroke
+z100e{z136-z100}...z101e... z102e{down}; kouki(102,4,1.5); penstroke
+z100e{z136-z100}...z103e {right}; kouki(103,8,1.1); penstroke
+z152e{down}...z154e{down}; kouki(154,3,1.2); penstroke z150e{up}...z151e{up};
+kouki(151,2,1.5); penstroke z89e{up}...z135e...z136e...
+z137e...z138e{up}...z139e...z140e... z141e{left}; kouki(141,5,2.1); penstroke
+z138e{up}...z143e...z144e ...z145e...z146e{up}...z147e{left}; kouki(146,1,1.4);
+kouki(147,5,1.25); mpalla(142,1.5); z145'=z145; ka(145',3); penstroke
+z89e{up}...z145'e; penstroke z111e{z154-z111}...z112e {right}; kouki(112,8,1.2);
+penstroke z113e{z9r-z113}...z114e... z116e{z116-z103}...z117e...z118e {left};
+kouki(118,7,1.4); penstroke z117e{left}...z119e{up}...
+z120e...z121e...z122e{left}; kouki(122,5,1.5); mpalla(116,1.35); penstroke
+z114e{right}...z115e{down}; kouki(115,3,1.1); penstroke z116e{z116-z103}...z123e
+{right}; kouki(123,6,1); penstroke z116e{z116-z103}...z124e
+{right}...z125e{right}; kouki(125,8,1.5); penstroke z124e{right}...z126e...
+z127e; z131'=(7.6u,5v); ka(131',0); penstroke z128e{right}...z129e...z130e
+...z131e...z131'e...z132e...z133e...z134e {down}; kouki(134,3,1.1);
+z200=(0.35u,3.05v); z201=(0.35u,4.25v); z202=(1.6u,3.05v); z210=(5u,6v);
+z211=(6.9u,6v); z212=(5u,7.15v); z220=(1.35u,6.55v); z221=(1.35u,6.15v);
+z222=(0.35u,6.6v); triaina(200,201,202,0.5); triaina(210,212,211,0.4);
+triaina(220,221,222,0.6); z240=0.5[z112,z116]; mpalla(240,1.3); penlabels(range
+1 thru 240);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitV.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitV.mf
new file mode 100644
index 00000000000..029fcc4dcc0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitV.mf
@@ -0,0 +1,96 @@
+.cmchar "The letter V";
+.beginchar("V",8.9u#+0.3mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(3.1u,1.05v); z2=(2.65u,1.35v); z3=(2.3u,1.1v); z4=(1.8u,0.8v);
+z5=(1.05u,1.6v); z6=(2.5u,2.7v); z7=(3.7u,2.1v); z8=(4.3u,1.4v); z9=(7u,1.1v);
+z10=(8u,3.7v); z11=(7.3u,5.05v); z12=(7.9u,6.47v); z13=(8.7u,6v);
+z14=(8.35u,5.65v); z15=(3.6u,2.2v); z16=(5.2u,5.4v); z17=(4.3u,7.3v);
+z18=(3.1u,7.6v); z19=(1.7u,6.8v); z20=(0.3u,7.6v); z21=(1.2u,8.15v);
+z22=(1.6u,8.05v); z23=(1.6u,8.6v); z24=z7; z25=(4.45u,4.6v); z26=(3.7u,6v);
+z27=(3.85u,6.55v); z28=(2.8u,5.8v); z29=(4.7u,7v); z30=(6.7u,7.75v);
+z31=(7.5u,6.95v); z32=(8.1u,6.8v); z33=(8.85u,7.6v); z34=(8.2u,8.3v);
+z35=(7.75u,7.9v); z36=(8.05u,7.55v); z36.1=(2.7u,1.9v); z36.2=(1.35u,3.2v);
+z36.3=(2.35u,4.15v); z36.4=(3.35u,3.5v); z1'=z1; ka(1,0); ka(1',180);
+penpos2(0.4v,90); penpos3(0.5uv,136); penpos4(0.4v,90); ka(5,0);
+penpos6(0.5v,-90); penpos7(0.95uv,-141); penpos8(0.9uv,-140);
+penpos9(1.5hair,-55); penpos10(0.9uv,17); penpos11(0.8uv,32.5);
+penpos12(1.5hair,-73); ka(13,180); ka(14,90); ka(15,-53); penpos16(0.63u,5);
+penpos17(1.1uv,56); penpos18(1.1uv,98); penpos19(0.85uv,121.5);
+penpos20(1.5hair,-14); penpos21(0.55uv,-130); penpos22(0.35v,-90); ka(23,38);
+ka(24,-29); penpos25(0.47u,0); penpos26(0.93uv,42); ka(27,171); ka(28,-78);
+ka(29,-50); penpos30(0.75uv,-137); penpos31(0.7uv,-142); penpos32(0.3v,-90);
+penpos33(1.5hair,0); ka(34,90); ka(35,180); ka(36,-90); ka(36.1,90); ka(36.2,0);
+penpos36.3(0.3v,-90); ka(36.4,180); kouki(1',3,1.4); penstroke
+z1e{up}...z2e...z3e...z4e... z5e...z6e...z7e...z8e...z9e...z10e...
+z11e...z12e...z13e...z14e{left}; kouki(14,5,1.6); penstroke
+z15e{z13-z15}...z16e...z17e... z18e...z19e...z20e...z21e...z22e... {z23-z9}z23e;
+penstroke z29e{z29-(0,3v)}...z30e... z31e...z32e...z33e...z34e...z35e...
+z36e{right}; kouki(36,6,1.85); filldraw z24r{(7.65u,9v)-z24}...z25r
+...z26r...z27l{up} & z27l--z27r & z27r{z5-z27}...{z28-z34}z28l & z28l--z28r &
+z28r...z26l...z25l... z24l{z24-(7.65u,9v)} & z24l--z24r & cycle; z15'=z15;
+ka(15',127); penstroke z15'e{z15-z13}...z36.1e{left}...
+z36.2e{up}...z36.3e...z36.4e{down}; kouki(36.4,3,1.3); z40=(2.3u,0.8v);
+z41=(1.85u,0.15v); z42=(0.6u,1.5v); z43=(2.5u,3.3v); z44=(3.7u,2.95v);
+z45=(0.7u,0); z46=(1.3u,0.9v); z47=(1.7u,1.8v); z48=(1.7u,1.3v); z49=(1.3u,1.7v);
+z50=(2u,2.3v); z51=(3.3u,1.55v); z52=(2.75u,0.25v); z53=(5.4u,0.2v);
+z54=(3.75u,0.45v); z55=(6.8u,0.5v); z56=(8.8u,0.5v); z57=(8.3u,0);
+z58=(7.9u,0.2v); z59=(7.35u,0.4v); z60=(8.15u,0.7v); z61=(8.9u,1.2v);
+z62=(8.1u,1.4v); z63=(8.5u,1.9v); z64=(8.85u,2.6v); z65=(9u,3.5v);
+z66=(6.2u,5.85v); z67=(5.8u,4.6v); z68=(6.85u,3.5v); z69=(6.85u,5.2v);
+z70=(6.6u,4.4v); z71=(4u,1.8v); z72=(5.2u,2.15v); z73=(5.2u,2.9v);
+z74=(6.1u,3.3v); z75=(7.05u,2.3v); z76=(6.3u,1.4v); z77=(5.85u,1.15v);
+z78=(5.45u,2.1v); z79=(5.9u,2.8v); z80=(6.45u,2.5v); z81=(6.3u,2.15v);
+z82=(6u,2.25v); z83=(5.8u,2v); z84=(5.9u,1.8v); z85=(6.9u,3.7v);
+z86=(6.5u,4.2v); z87=(6.25u,4.1v); z88=(6.45u,6.1v); z89=(8.1u,8.7v);
+z90=(8.8u,8.65v); z91=(3.8u,2v); z92=(5.87u,5.8v); z93=(5.4u,8.3v); z94=(6u,9v);
+z95=(6.35u,8.65v); z96=(6.15u,8.3v); z97=(5.9u,8.4v); z98=(6.8u,8.6v);
+z99=(4.7u,8.95v); z99'=(5.25u,8.05v); z100=(3u,8.6v); z101=(0.95u,6.5v);
+z102=(1.5u,5.6v); z103=(2.6u,4.5v); z104=(3.9u,5.7v); z105=(3u,6.6v);
+z106=(2.15u,5.7v); z107=(2.7u,5.3v); z108=(3.35u,2.4v); z109=(3.95u,3.8v);
+z109'=(1.55u,5.15v); z110=(0.45u,4.2v); z111=(u,4v); z112=(1.65u,3.4v);
+z113=(2.2u,4v); z114=(1.7u,4.5v); z115=(0.4u,5v); z116=(0.7u,7.7v);
+z117=(0.15u,8.2v); z118=(0.75u,8.65v); ka(40,-131); ka(41,90); ka(42,0);
+ka(43,-90); ka(44,-121.5); ka(45,-90); ka(46,0); ka(47,-90); ka(48,90); ka(49,0);
+ka(50,-90); ka(51,-147); ka(52,90); ka(53,-90); ka(55,-67); ka(56,180);
+ka(57,90); ka(58,31.5); ka(59,90); ka(60,-90); ka(61,0); ka(62,-42); ka(63,-90);
+ka(64,-18); ka(65,0); ka(66,90); ka(67,180); ka(68,-90); ka(69,90); ka(70,-90);
+ka(71,-51); ka(72,180); ka(73,-44); ka(74,-90); ka(75,180); ka(76,90);
+ka(77,180); ka(78,0); ka(79,-90); penpos80(1.5hair,180); penpos81(0.35v,99);
+penpos82(0.32uv,74); penpos83(0.1uv,155); ka(84,-137); ka(85,0); ka(86,90);
+ka(87,180); ka(88,-11); ka(89,-90); ka(90,-90); ka(91,-51); ka(92,0); ka(93,11);
+ka(94,-90); ka(95,180); ka(96,90); ka(97,0); ka(98,0); ka(99,24); ka(99',22);
+ka(100,90); ka(101,180); ka(102,-90); ka(103,-90); ka(104,0); ka(105,90);
+ka(106,180); ka(107,77); ka(108,-35); ka(109,0); ka(110,132); ka(109',118);
+ka(111,180); ka(112,-90); ka(113,0); ka(114,90); ka(115,0); ka(116,90);
+ka(117,0); penpos118(0.1uv,-131); penstroke z40e{z40-z47}...z41e...
+z42e...z43e...z44e{z72-z44}; z45'=z45; ka(45',90); kouki(45',5,1.4); penstroke
+z45e{right}...z46e...z47e ...z48e...z49e...z50e...z51e{z51-z114}...
+z53e...z55e... z62e...z64e...z65e...z66e... z67e...z68e...z69e...z70e{right};
+kouki(70,6,1.1); mpalla(54,1.4); mpalla(55,1.3); mpalla(64,1.5); penstroke
+z51e{z51-z114}...z52e{left}; kouki(52,5,1.2); kouki(47,7,1.1); penstroke
+z55e{(9u,1.5v)-z55}... z56e...z57e...z58e...z59e{left}; penstroke
+z58e...z60e{right}...z61e {up}; kouki(59,7,1.3); kouki(60,8,1.5);
+kouki(61,1,1.2); z200=(4.85u,2.75v); z201=(4.55u,2.85v); penpos200(0.1uv,-47);
+penstroke z71e{z71-z41}...z73e... z88e...z89e...z90e{right}; kouki(90,6,1.6);
+kouti(200,201); z202=(6.25u,6v); kouti(88,202); penstroke
+z73e...z74e...z75e...z76e ...z78e...z79e{right}...z80e...
+z81e...z82e...z83e...z84e{z84-z19}; penstroke z76e...z77e{down}; kouki(77,4,1);
+penstroke z79e{right}...z85e...z86e ...z87e{down}; kouki(87,4,1.3); penstroke
+z71e{z71-z41}...z72e{down}; kouki(72,3,1); z91.1=z2r; ka(91.1,-90); penstroke
+z91.1e{right}...z91e... z92e{up}...z93e...z94e...z95e{z11r-z95} ...z98e{up};
+penstroke z95e{z11r-z95}...z96e... z97e{up}; kouki(98,1,1.3); kouki(97,2,1.3);
+z203=(5.7u,5.65v); kouti(92,203); penstroke z92e{up}...z99'e...z99e; penstroke
+z92e{up}...z100e...z101e {down}...z103e...z104e... z105e...z106e{down};
+kouki(106,4,1.65); penstroke z101e{down}...z102e{right}; kouki(102,6,1.2);
+kouki(103,6,1.3); kouki(105,7,1.5); penstroke z108e{z89-z108}...z109e...
+z107e...z109'e{z109'-z98}...z115e{up}; penstroke z109'e{z109'-z98}...
+z110e{left}; kouki(110,5,0.8); penstroke z109'e{z109'-z98}...z111e
+...z112e...z113e...z114e{left}; kouki(114,7,1.4); kouki(115,2,1.5); z204=z22;
+ka(204,130); penstroke z204e{z102-z97}...z116e... z117e{up}; filldraw
+z117l{up}... {z85-z118}z118l & z118l..z118r & z118r{z118-z85}...z117r{down} &
+z117r--z117l & cycle; z210=(4.55u,8.1v); z211=(4.35u,8.65v); z212=(5.6u,8.55v);
+z220=(5.95u,6.55v); z221=(6.05u,7.1v); z222=(7.1u,6.3v); z230=(8.25u,4.6v);
+z231=(8u,5.05v); z232=(9.15u,5v); triaina(210,211,212,0.4);
+triaina(220,221,222,0.5); triaina(230,231,232,0.6); penlabels(range 1 thru 240);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitW.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitW.mf
new file mode 100644
index 00000000000..4006e0450aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitW.mf
@@ -0,0 +1,138 @@
+.cmchar "The letter W";
+.beginchar("W",8.9u#+2mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(2.5u,0.5v); z2=(3.4u,1.3v); z3=(3u,1.55v); z4=(2.55u,2v); z5=(1.2u,3.4v);
+z6=(2.2u,4.45v); z7=(2.85u,3.75v); z8=(2.35u,3.2v); z9=(2u,3.55v);
+z10=(2.2u,3.8v); z11=(2.35u,3.7v); z12=(2.6u,3.8v); z13=(5.9u,5.7v);
+z14=(4.65u,7.8v); z15=(3.45u,7.95v); z16=(2.05u,7.3v); z17=(0.1u,7.9v);
+z18=(0.9u,8.45v); z19=(1.3u,8.2v); z20=(1.5u,8.3v); z21=(1.55u,8.6v);
+z22=(6.5u,0.5v); z23=(7.2u,1.5v); z24=(6.7u,1.65v); z25=(6.25u,2v);
+z26=(5.2u,2.25v); z27=(4.5u,3.5v); z28=(5.4u,4.4v); z29=(6.25u,3.7v);
+z30=(5.65u,3.05v); z31=(5u,3.5v); z32=(8.45u,2.4v); z33=(8.85u,3.5v);
+z34=(8.45u,4.45v); z35=(7.95u,5.75v); z36=(8.7u,6.5v); z37=(9.3u,6v);
+z38=(9u,5.7v); z39=(5.35u,7.25v); z40=(7.2u,8.05v); z41=(7.82u,7.72v);
+z42=(8.2u,7.1v); z43=(9.25u,7.05v); z44=(9.5u,7.5v); z45=(9u,8.1v);
+z46=(2.9u,2.55v); z47=(3.85u,4.3v); z48=(3.4u,5.5v); z49=(2.8u,6v);
+z50=(3.1u,6.7v); z51=(1.6u,5.6v); ka(1,-29); ka(2,-69); penpos3(0.8uv,36);
+penpos4(0.9uv,64); penpos5(0.25u,0); penpos6(1.5hair,-90); ka(7,180); ka(8,90);
+ka(9,0); penpos10(0.3v,-90); penpos11(0.2uv,-118); ka(12,-31); penpos13(0.7u,0);
+penpos14(0.93uv,61); penpos15(0.85v,90); penpos16(0.75uv,119); ka(17,0);
+penpos18(0.4uv,-138); penpos19(0.35uv,-141); ka(20,-42); ka(21,0); ka(22,-17);
+ka(23,-54); penpos24(0.8uv,38); penpos25(0.9uv,77); penpos26(0.72uv,74);
+penpos27(0.22u,0); penpos28(1.5hair,-90); ka(29,180); ka(30,90); ka(31,0);
+penpos32(0.12uv,-40); penpos33(0.7u,2); penpos34(0.9uv,43); penpos35(0.37u,0);
+penpos36(1.5hair,-90); ka(37,180); ka(38,90); ka(39,-55); penpos40(0.5v,-90);
+penpos41(0.85uv,-151); penpos42(0.9uv,-152); penpos43(0.15uv,-61); ka(44,0);
+ka(45,90); ka(46,-46); penpos47(0.5u,0); penpos48(0.75uv,42);
+penpos49(0.85uv,43); ka(50,148); ka(51,-74); filldraw
+z1r{z40l-z1}...z2r{z33l-z2r} & z2r--z2l & z2l{up}...z3r...z4r...
+z5r...z6r{right} & z6r--z6l & z6l{left}...z5l...z4l...z3l... z1l{z1-z40l} &
+z1l--z1r & cycle; penstroke z6e{right}...z7e...z8e{left}...
+z9e{up}...z10e...z11e...z12e{z49r-z12}; penstroke z2e{z33l-z2r}...z13e...z14e
+...z15e...z16e...z17e{up}; filldraw z17r{up}...z18r...
+(1.05u,8v){right}...z20r... z21r{up} & z21r--z21l & z21l{down}...z20l...z19l...
+z18l...z17l{down} & z17l--z17r & cycle; filldraw z22r{z45-z22}...z23r{z36-z27l} &
+z23r--z23l & z23l{z14-z23}...z24r ...z25r...z26r...z27r...z28r{right} &
+z28r--z28l & z28l{left}...z27l... z26l...z25l...z24l...z22l{z22-z45} &
+z22l--z22r & cycle; penstroke z23e{z36-z27l}...z32e...
+z33e...z34e...z35e...z36e...z37e... z38e{left}; kouki(38,5,1.5);
+z31'=(5.15u,3.85v); penpos31'(0.2uv,-38); penstroke z28e{right}...z29e...z30e
+...z31e...z31'e; penstroke z39e{z40l-z6}...z40e...
+z41e...z42e...z43e...z44e...z45e{left}; kouki(45,7,1.4); filldraw
+z46r{z42r-z46}...z47r{up} ...z48r...z50l{z15-z50} & z50l--z50r & z50r{z50-z15}...
+z51l{z51-z49} & z51l--z51r & z51r{z49-z51}...z49l...z48l...
+z47l...z46l{z46-z42r} & z46l--z46r & cycle; z60=(2.3u,0.4v); z61=(2.4u,1.2v);
+z62=(0.5u,3.5v); z63=(1.9u,5.1v); z64=(3.3u,3.85v); z65=(3u,3v); z66=(2.5u,2.8v);
+z67=(1.6u,3.6v); z68=(2.2u,4.2v); z69=(0.5u,0.7v); z70=(1.35u,0); z71=(2u,0.7v);
+z72=(1.5u,1.25v); z73=(u,0.8v); z74=(1.35u,0.45v); z75=(0.2u,0); z76=(0.2u,2.1v);
+z77=(0.75u,2.6v); z78=(1.1u,2.25v); z79=(0.8u,1.9v); z80=(2.75u,0.5v);
+z81=(3.3u,v); z82=(6u,3.7v); z83=(6.45u,6v); z84=(4.55u,8.7v); z85=(2.2u,8.5v);
+z86=(0.95u,6.3v); z87=(2.6u,4.5v); z88=(4.15u,6v); z89=(3.1u,7.15v);
+z90=(u,5.4v); z91=(0.2u,5.1v); z92=(0.35u,6v); z93=(0.85u,6.55v);
+z94=(1.3u,6.2v); z95=(u,5.9v); z96=(2.2u,6.4v); z98=(3.6u,6.2v);
+z100=(2.5u,5.2v); z101=z3; z102=(4.1u,2.4v); z103=(4u,2.75v); z104=(3.9u,3.2v);
+z105=(3.35u,2.45v); z106=(3.6u,2.2v); z107=(6.45u,5.45v); z108=(6.8u,5v);
+z109=(6.15u,4.35v); z110=(5.25u,5.2v); z111=(6.3u,6.3v); z112=(7.5u,5v);
+z113=(6.1u,3.5v); z114=(4.65u,4.85v); z115=(6.5u,7.05v); z116=(7.2u,6.7v);
+z117=(6.5u,7.6v); z118=(5.6u,8.1v); z119=(5.85u,8.7v); z120=(5.55u,9v);
+z121=(5.3u,8.75v); z122=(7.8u,8.9v); z123=(9.35u,8.35v); z124=(10u,6.8v);
+z125=(8.7u,5.35v); z126=(7.5u,6.4v); z127=(8.5u,7.55v); z128=(9.4u,6.8v);
+z129=(2.95u,0.55v); z130=(3.9u,0.9v); z131=(5u,1.45v); z132=(4.8u,1.7v);
+z133=(4.85u,0.65v); z134=(5.7u,0.3v); z135=(6.15u,0.85v); z136=(5.65u,1.35v);
+z137=(5.25u,v); z138=(5.45u,0.75v); z139=(5.65u,0.9v); z141=(5.9u,0.8v);
+z142=(4.55u,0.45v); z143=(4.2u,0); z144=(3.2u,0.45v); z145=(3.05u,0.3v);
+z146=(3.75u,0.4v); z147=(4u,0.6v); z148=(6.6u,0.4v); z149=(8.1u,1.7v);
+z150=(9.5u,3.8v); z151=(8.65u,5.3v); z152=(8.35u,5.8v); z153=(8.75u,6.3v);
+z154=(6.75u,0.1v); z155=(8.45u,1.4v); z156=(9.5u,2.2v); z157=(9.1u,2.55v);
+z158=(9.2u,1.4v); z159=(9.75u,1.2v); z160=(9.15u,0.8v); z161=(9.5u,0.1v);
+z162=(8.6u,0.05v); z163=(8.15u,0.25v); z164=(8.7u,0.4v); z163'=(8.55u,0.65v);
+z165=(8.9u,0.6v); z166=(7.5u,0.65v); z167=(7.25u,0.4v); z168=(6.8u,1.4v);
+z169=(8.1u,2.9v); z170=(7.6u,4v); z171=(7.45u,3.55v); z172=(6.9u,3v);
+z173=(6.3u,3v); z174=(7.35u,2.45v); z175=(7.7u,2.7v); z176=(0.85u,7.75v);
+z177=(0,8.5v); z178=(0.4u,9v); z179=z123; z180=(9.65u,8.5v); z181=(9.5u,8.7v);
+z182=(9.7u,8.9v); ka(60,-18); ka(61,24); ka(62,0); ka(63,-90); ka(64,180);
+ka(65,134); ka(66,90); ka(67,0); ka(68,-90); ka(69,180); ka(70,-90); ka(71,0);
+ka(72,90); ka(73,180); ka(74,-90); ka(75,90); ka(76,0); ka(77,-90); ka(78,180);
+ka(79,90); ka(80,-8.5); ka(81,-55); ka(82,-27); ka(83,0); ka(84,76); ka(85,121);
+ka(86,180); ka(87,-90); ka(88,0); ka(89,90); ka(90,90); ka(91,180); ka(92,0);
+ka(93,-90); ka(94,180); ka(95,90); ka(96,180); ka(98,0); ka(100,0); ka(101,-90);
+ka(102,0); ka(103,33); ka(104,0); ka(105,180); ka(106,-90); ka(107,-126);
+ka(108,180); ka(109,90); ka(110,0); ka(111,-90); ka(112,180); ka(113,90);
+ka(114,0); ka(115,-90); ka(116,180); ka(118,-40); ka(119,0); ka(120,90);
+ka(121,180); ka(122,-90); ka(123,-130); ka(124,180); ka(125,90); ka(126,0);
+ka(127,-90); ka(128,180); ka(129,-57.5); ka(130,-90); ka(131,0); ka(132,90);
+ka(133,-127); ka(134,-90); ka(135,0); ka(136,90); ka(137,180);
+penpos138(0.2v,-90); penpos139(0.2uv,-34); ka(140,-129); ka(141,-129);
+ka(142,180); ka(143,90); ka(144,90); ka(145,180); ka(146,0); ka(147,-90);
+ka(148,-13); ka(149,-57); ka(150,0); ka(151,48); ka(152,0); ka(153,-90);
+ka(154,-13); ka(155,-90); ka(156,0); ka(157,90); ka(158,-90); ka(159,180);
+ka(160,180); ka(161,-90); ka(162,90); ka(163,47); penpos163'(0.25uv,-119);
+penpos164(0.15v,-90); ka(165,-41); ka(166,90); ka(167,180); ka(168,-53.5);
+ka(169,0); ka(170,0); ka(171,90); ka(172,180); ka(173,0); ka(174,-90);
+ka(175,0); ka(176,90); ka(177,0); ka(178,-90); ka(179,-45); penpos180(0.4u,0);
+penpos181(0.2uv,34); ka(182,-90); z12'=z12; ka(12',180); z61'=(1.65u,1.65v);
+ka(61',66); z65'=(1.9u,2.35v); ka(65',120); z81'=(5.25u,2.3v); ka(81',-41);
+z85'=(1.55u,8v); ka(85',140); penstroke z85'e{z63-z119}...z176e{left}
+...z177e...z178e{right}; penstroke z60e{z64-z60}...z61e... z61'e...
+z62e...z63e...z64e...z65e{z65-z83} ...z66e...z67e...z68e...z12'e{down};
+penstroke z65e{z65-z83}... z65'e...{down}z69e ...z70e...z71e...z72e{left}...
+z73e...z74e{right}; penstroke z69e{down}...z75e{left}; penstroke
+z72e{left}...z76e... z77e...z78e...z79e{left}; kouki(74,6,1.5); kouki(75,5,1.2);
+kouki(79,5,1.4); penstroke z80e{z121-z80}...z81e... z81'e...
+z83e...z84e...z85e{z176-z85} ...z86e...z87e...z88e...z89e{left}
+...z90e{left}...z92e...z93e... z94e...z95e{left}; z200=(4.65u,8.5v);
+kouti(84,200); mpalla(85,1.5); penstroke z85e{z176-z85}...z176e
+...z177e...z178e{right}; z99=(1.4u,5.1v); ka(99,-137.5); penstroke
+z99e{z103-z99}...z100e{up}; penstroke z89e{left}...z96e{down} ...z98e{up};
+penstroke z90e{left}...z91e{down}; kouki(178,8,1.1); kouki(100,1,1.3);
+kouki(98,1,1.3); kouki(91,4,1.15); kouki(95,5,1.4); penstroke
+z101e{right}...z102e{up} ...z105e{down}...z106e{right}; penstroke
+z102e...z104e{up}; kouki(106,6,1.3); kouki(104,2,1.1); penstroke
+z107e{z33r-z107}... z108e...z109e...z110e...z111e... z112e...z113e...z114e{up}...
+z115e...z116e{down}; z201=(4.4u,4.6v); kouti(114,201); kouki(116,3,1.4);
+mpalla(112,1.4); kouki(108,3,1.2); penstroke z114e{up}...z39e{z40l-z6};
+penstroke z114e{up}...z118e{z118-z77}... z122e...z123e...z124e...z125e...
+z126e...z127e...z128e{down}; penstroke z118e{z118-z77}...z119e
+...z120e...z121e{down}; kouki(121,4,1.2); kouki(126,2,1.2); kouki(128,3,1.3);
+mpalla(122,1.4); mpalla(117,1.4); penstroke z179e...z180e...z181e
+...z182e{z37-z115}; z202=(4.4u,6.9v); mpalla(202,1.4); penstroke
+z129e{z132-z129}... z130e{right}...z131e...z132e{left}; penstroke
+z130e{right}...z133e... z134e...z135e...z136e...z137e... z138e...z139e...
+z141e{z141-z96}; penstroke z130e{right}...z142e... z143e...z144e...z145e{down};
+penstroke z143e...z146e...z147e {right}; kouki(132,7,1.3); kouki(147,8,1.1);
+kouki(145,4,1.3); mpalla(130,1.3); z206=(7.9u,3.4v); ka(206,54); penstroke
+z168e{z168-z135}... z169e...z206e...z171e...z172e...z174e... z175e{up};
+kouki(175,1,1.7); z204=(9u,6v); ka(204,180); penstroke z206e{z15r-z206}...
+z170e{up}; kouki(170,2,1.3); penstroke z148e{z175-z148}...
+z149e...z150e...z151e...z152e... z153e...z204e{down}; penstroke
+z154e{z34r-z154}... z155e{right}...z156e...z157e {left}; penstroke
+z155e{right}...z158e... z159e{down}; penstroke z155e{right}...z160e
+{down}...z162e...z163e{z173-z163}...z163'e... z164e...z165e{up}; penstroke
+z160e{down}...z161e {right}; penstroke z163e{z173-z163}...z166e{left}...
+z167e{down}; z205=(8.3u,1.6v); kouti(155,205); kouki(157,7,1.3);
+kouki(159,3,0.8); kouki(161,6,1.3); kouki(167,4,1.4); penstroke
+z172e{down}...z173e{up}; kouki(173,2,1.25); z210=(0,4v); z211=(0.25u,4.85v);
+z212=(u,3.6v); triaina(210,211,212,0.75); mpalla(62,1.25); penlabels(range 1
+thru 220);
+.endchar;
+ \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitX.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitX.mf
new file mode 100644
index 00000000000..38f319dc405
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitX.mf
@@ -0,0 +1,126 @@
+.cmchar "The letter X";
+.beginchar("X",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(1.7u,0.5v); z2=(2.65u,1.65v); z3=(2u,1.8v); z12=(3.9u,5v);
+z13=(3.75u,4.55v); z14=(2.6u,3.6v);z15=(3.2u,3.05v); z16=(3.6u,3.4v);
+z17=(5.05u,4v); z18=(5.05u,4.9v); z19=(5.25u,4.4v); z20=(6.75u,5.4v);
+z21=(6.1u,6.2v); z22=(5.55u,5.75v); z23=(5.75u,5.45v); z24=(5.25u,6.75v);
+z25=(6.4u,7.85v); z26=(6.8u,7.6v); z27=(7.8u,7.15v); z28=(8.4u,7.8v);
+z29=(7.95u,8.35v); z30=(7.7u,8.2v);z31=(6.1u,0.55v); z32=(6.85u,1.55v);
+z33=(8u,2.8v); z34=(7.35u,3.7v); z35=(6.75u,3.15v); z36=(7u,2.75v);
+z37=(6u,1.35v); z38=(4.8u,2.05v);z39=(4.5u,3.35v); z40=(4.4u,6.3v);
+z41=(3.65u,7.65v); z42=(2.85u,7.85v); z43=(1.6u,7.35v); z44=(0.4u,8v);
+z45=(1.15u,8.65v); z46=(1.35u,8.4v); z47=(1.8u,8.45v); z48'=z48;
+z48=(1.75u,8.85v); z4=(1.05u,2.35v); z5=(0.65u,3.15v); z6=(1.5u,3.95v);
+z7=(2.05u,3.35v); z8=(1.7u,2.95v); z9=(1.35u,3.2v);z10=(2.95u,1.8v);
+z11=(3.9u,4.1v); ka(1,-30); penpos2(0.2u,-64); penpos3(0.9uv,51);
+penpos4(0.7uv,67); penpos5(0.235u,0); penpos6(1.5hair,-90); ka(7,180); ka(8,90);
+ka(9,0); ka(10,-53); ka(11,0); ka(12,0); penpos13(0.67v,90);
+penpos14(0.12u,180); ka(15,-90); ka(16,0); ka(17,0); ka(18,0);
+penpos19(0.65u,-90); penpos20(1.5hair,0); ka(21,90); ka(22,180); ka(23,-90);
+penpos24(1.5hair,-14); penpos25(0.6v,-90); penpos26(0.7uv,-136);
+penpos27(0.45v,-90); ka(28,0); ka(29,90); ka(30,180); ka(31,-9);
+penpos32(0.35uv,-32); penpos33(1.5hair,0); ka(34,90); ka(35,180); ka(36,-90);
+penpos37(0.88uv,69); penpos38(0.92uv,42); penpos39(0.72u,5); penpos40(0.8u,0);
+penpos41(0.9uv,56); penpos42(0.95v,90); penpos43(0.75uv,113.5);
+penpos44(1.5hair,0); penpos45(0.5uv,-120); penpos46(0.45u,-149);
+penpos47(0.1uv,-56); ka(48,34); filldraw z1l{z13l-z1}...z3l...z4l...
+z5l...z6l{right} & z6l--z6r & z6r{left}...z5r...z4r...(2.1u,2.4v) ...z3r...
+z2l...z10l{z39r-z10}...z11l{up}... z13l{left}...z14l{down}...z15l {right} &
+z15l--z15r & z15r{left}...z14r{up}...z13r{right} ...z12l{up} & z12l--z12r &
+z12r---z11r{down}...z10r{z10-z39r}... z2r...z1r{z1-z13l} & z1r--z1l & cycle;
+penstroke z6e{right}...z7e...z8e... z9e{up}; kouki(9,2,1.7); penstroke
+z15e{right}...z16e{up}; kouki(16,1,1.7); filldraw
+z21r{right}...z20r{down}...z19r {left}...z17r{down} & z17r--z17l &
+z17l---z18l{up}...z24l...z25l... z26l...z27l...z28l{up} & z28l--z28r &
+z28r{down}...z27r...z26r...(6.1u,7.65v)... z24r...z18r{down}...z19l{right}...
+z20l{up}...z21l{left} & z21l--z21r & cycle; penstroke
+z21e{left}...z22e...z23e{right}; kouki(23,6,1.7); penstroke
+z28e{up}...z29e...z30e{down}; kouki(30,4,1.7); filldraw
+z31l{z26-z31}...z37l...z38l ...z39l...z40l...z41l...z42l...z43l ...z44l{up} &
+z44l--z44r & z44r{down} ...z43r...(2u,8.05v)...z42r...z41r...z40r...z39r
+...z38r...z37r...z32l...z33l{up} & z33l--z33r & z33r{down}...z32r...
+z31r{z31-z26} & z31r--z31l & cycle; penstroke z33e{up}...z34e...z35e...
+z36e{right}; kouki(36,6,1.7); penstroke z44e{up}...z45e...z46e...
+z47e...z48e{z48-z17}; z50=(2.15u,1.65v); z51=(2.9u,2.6v); z52=(2.5u,3.05v);
+z53=(2.3u,2.8v); z53'=(2.3u,1.55v); z54=(3.6u,4.3v); z55=(3.35u,5.45v);
+z56=(3.1u,7v); z57=(5.1u,9.05v); z58=(6.55u,7.7v); z59=(5.45u,6.4v);
+z60=(4.6u,7.75v); z61=(5.1u,8.05v); z62=(5.8u,7.4v); z63=(5.4u,7v);
+z64=(5.05u,7.3v); z65=(5.35u,8.4v); z66=(6.5u,8.55v); z67=(6.85u,8.8v);
+z68=(4.8u,8.5v); z69=(4.15u,9.2v); z70=(2.6u,8.5v); z71=(2.25u,8.8v);
+z72=(3.6u,8.6v); z73=(4u,8.2v); z74=(4.3u,8.4v); z78=(1.7u,6.7v);
+z79=(0.67u,6.3v); z80=(0.4u,6.05v); z81=(0.2u,5.7v); z82=(0.1u,5.15v);
+z83=(0.7u,4.5v); z84=(1.15u,3.5v); z85=(1.9u,2.15v); z86=(1.5u,2v);
+z87=(0.75u,0.95v); z88=(0,0.3v); z89=(0.9u,2.4v); z90=(0.15u,1.7v);
+z91=(1.05u,0.5v); z92=(3.2u,1.5v); z93=(4.25u,0.68v); z94=(3.65u,0);
+z95=(3.1u,0.55v); z96=(3.5u,1.05v); z97=(4.1u,1.7v); z98=(3.75u,2.05v);
+z99=(2.1u,0.5v); z100=(2.7u,v); z101=(4.8u,0.1v); z102=(5.3u,0.5v);
+z103=(5u,0.95v); z104=(5.8u,0.5v); z105=(6.55u,0.3v); z106=(1.5u,3.6v);
+z107=(2.65u,4.8v); z108=(2.35u,5.55v); z109=(1.7u,5.85v); z110=(0.95u,5.2v);
+z111=(1.4u,4.8v); z112=(1.85u,4.9v); z113=(2.15u,4.5v); z114=(0,8v);
+z115=(u,9.15v); z116=(7.2u,3v); z117=(7u,3.25v); z118=(7.3u,3.45v);
+z119=(7.75u,2.85v); z120=(6.7u,2v); z121=(5.9u,2.75v); z122=(6.1u,3.15v);
+z123=(6.35u,3.75v); z124=(6.05u,4.05v); z125=(5.85u,3.95v); z126=(6.6u,3v);
+z127=(5.3u,3.8v); z128=(7.45u,6.7v); z129=(8.53u,6.13v); z130=(8.8u,5.3v);
+z131=(8.3u,4.7v); z132=(7.5u,3.9v); z133=(6.4u,5v); z134=(7.25u,6.1v);
+z135=(7.95u,5.45v); z141=(6.85u,1.55v); z142=(8u,0.25v); z143=(8.85u,1.15v);
+z144=(8.5u,1.8v); z145=(8.2u,2.45v); z146=(8.4u,2.7v); z147=(7.55u,1.3v);
+z148=(7.9u,0.8v); z150=(8.4u,1.05v); z149=(8.8u,0.3v); y136=y135;
+x136=x135-0.5u; z137=z136+(0,-0.5v); z138=(7.3u,4.6v); z137.5=(7.7u,4.85v);
+z139=(7.5u,4.3v); ka(50,-45); ka(51,0); ka(52,90); ka(53,180); ka(53',-47);
+ka(54,0); ka(55,20); ka(56,0); ka(57,-90); ka(58,180); ka(59,90); ka(60,-35);
+ka(61,-90); ka(62,180); ka(63,90); ka(64,0); ka(65,-70); ka(66,-90); ka(67,0);
+ka(68,0); ka(69,90); ka(70,90); ka(71,0); ka(72,180); ka(73,-90); ka(74,0);
+ka(78,90); ka(79,128); ka(80,143); ka(81,157); ka(82,180); ka(83,-90);
+ka(84,-125); ka(85,141); ka(86,180); ka(87,77); ka(88,180); ka(89,122);
+ka(90,158); ka(91,-90); ka(92,-90); ka(93,180); ka(94,90); ka(95,0); ka(96,-59);
+ka(97,0); ka(98,90); ka(99,0); ka(100,-90); ka(101,-90); ka(102,0); ka(103,90);
+ka(104,-90); ka(105,-90); ka(106,-90); ka(107,0); ka(108,41); ka(109,90);
+ka(110,180); penpos111(0.4uv,-67.5); penpos112(0.3v,-90); ka(113,180);
+ka(114,0); ka(115,-90); ka(48',-146); ka(116,90); ka(117,0); ka(118,-90);
+ka(119,180); ka(120,90); ka(121,0); ka(122,-53); ka(123,0); ka(124,90);
+ka(125,180); ka(126,180); ka(127,0); ka(128,-90); ka(129,-146); ka(130,180);
+ka(131,90); ka(132,90); ka(133,0); ka(134,-90); ka(135,180);
+penpos138(1.5hair,180); ka(139,-90); ka(141,-171); ka(142,-90); ka(143,0);
+ka(144,54); ka(145,0); ka(146,-90); ka(147,180); ka(148,-90); ka(149,180);
+ka(150,0); penstroke z50e{z128-z50}...z51e... z52e...z53e{down};
+kouki(53,4,1.3); penstroke z53'e{z20-z53'}...z54e...
+z55e{z55-z103}...z56e...z57e...z58e ...z59e...z60e{z60-z8}...z61e...
+z62e...z63e...z64e{up}; kouki(64,2,1.2); mpalla(55,1.45); penstroke
+z55e{z55-z103}...z78e... z79e...z80e...z81e...z82e{down}...z83e{right}; penstroke
+z60e{z60-z8}...z65e...z66e ...z67e{up}; kouki(67,1,1.3); penstroke
+z60e{z60-z8}...z68e...z69e {left}...z72e...z73e...z74e{up}; kouki(74,1,1.25);
+penstroke z69e{left}...z70e...z71e{up}; kouki(71,2,1.5); penstroke
+z82e{down}...z106e...z107e...
+z108e{z108-z37}...z109e{left}...{down}z110e...z111e... z112e...z113e{down};
+kouki(113,3,1.6); penstroke z108e{z108-z37}...z114e...z115e... z48'e;
+kouki(83,6,1.2); penstroke z106e{right}...z85e{z85-z59}; penstroke
+z89e{z89-z18}...z90e...z91e ...z92e...z93e...z94e...z95e...z96e
+{right}...z97e...z98e{left}; kouki(98,7,1.4); kouki(96,8,1.4); penstroke
+z99e{up}...z100e...z101e... z102e...z103e{left}; z99'=z99; ka(99',180);
+kouki(99',4,1.3); penstroke z101e{right}...z104e...z105e{right};
+kouki(105,6,1.4); penstroke z86e{down}...z87e...z88e{down}; kouki(88,4,1.5);
+kouki(103,7,1.75); penstroke z141e{down}...z142e...z143e
+...z144e{z12-z144}...z147e...z148e {right}...z150e{up}; kouki(150,1,1.75);
+penstroke z144e{z12-z144}...z145e... z146e{right}; kouki(146,8,1.6); penstroke
+z148e{right}...z149e{down}; kouki(149,3,1.3); z151=(3.3u,6.85v);
+z152=(2.7u,7.125v); z153=(1.9u,6.4v); z154=(2.4u,5.9v); z155=(2.8u,6.25v);
+ka(151,44); ka(152,90); ka(153,180); ka(154,-90); ka(155,0); penstroke
+z12e{up}...z151e...z152e... z153e...z154e...z155e{up}; kouki(155,1,1.6);
+mpalla(108,1.4); mpalla(79,1.25); mpalla(81,1.25); mpalla(80,1.45);
+mpalla(57,1.4); penstroke z116e{left}... z118e...z119e...z120e{left}...z17e{up};
+penstroke z120e{left}...z127e... z128e...z129e...z130e...z132e...
+z133e...z134e{right}...z135e{down}; filldraw z135r{down}...z136{up} &
+z136{left}...z137{right} & z137{left} ...z138r{down} & z138r--z138l &
+z138l{up}...z137.5...z135l{up} & z135l--z135r & cycle; penstroke
+z138e{down}...z139e{right}; kouki(139,6,1.25); mpalla(134,1.35);
+z156=(8.8u,7.8v); z157=(7.9u,8.9v); z158=(7.25u,8.2v); z159=(7.7u,7.7v);
+z160=(7.85u,7.95v); ka(156,0); ka(157,90); ka(158,180); ka(159,-90); ka(160,0);
+penstroke z134e{right}...z156e...z157e ...z158e...z159e...z160e{up}; penstroke
+z120e{left}...z121e... z122e{z131-z122}...z126e{down}; penstroke
+z122e{z131-z122}...z123e... z124e...z125e{down}; kouki(126,3,1.3);
+kouki(125,4,1.25); penstroke z130e{down}...z131e{left}; kouki(131,5,1.3);
+z200=(1.7u,0.9v); z201=(1.25u,0.55v); z202=(0.85u,1.85v);
+triaina(200,201,202,0.5); penlabels(range 1 thru 210);
+.endchar;
+ \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitY.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitY.mf
new file mode 100644
index 00000000000..d4ad77f0f00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitY.mf
@@ -0,0 +1,110 @@
+.cmchar "The letter Y";
+.beginchar("Y",8.9u#+0.3mm#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(1.5u,1.7v); z2=(1.75u,1.9v); z3=(2.25u,1.4v); z4=(1.6u,0.8v);
+z5=(0.95u,1.6v); z6=(2.3u,2.65v); z7=(3.3u,2.05v); z8=(4.15u,1.05v);
+z9=(7u,1.15v); z10=(7.9u,3.2v); z11=(7.05u,5.25v); z12=(7.75u,7.1v);
+z13=(8.65u,7v); z14=(8.25u,8.55v); z15=(8.6u,8v); z16=(8.1u,7.5v);
+z17=(7u,7.95v); z18=(5.35u,8v); z19=(4.65u,7.5v); z20=(3.55u,1.9v);
+z21=(5.2u,3.35v); z22=(6.1u,4.5v); z23=(5.5u,5.2v); z24=(4.65u,3.6v);
+z25=(3.8u,4.05v); z26=(2.95u,5.15v); z27=(3.55u,5.7v); z28=(3.8u,5.5v); z29=z25;
+z30=(4.35u,5.5v); z31=(3.8u,6.75v); z32=(3.7u,7.4v); z33=(2.6u,6.5v);
+z34=(4.1u,4.05v); z35=(5.05u,6.5v); z36=(4.05u,8.1v); z37=(3.3u,8.25v);
+z38=(2.5u,7.95v); z39=(0.6u,8.1v); z40=(1.15u,8.75v); z41=(1.5u,8.6v);
+z42=(2u,8.65v); z43=(2u,9.1v); ka(1,0); ka(2,-90); ka(3,180); ka(4,90);
+penpos5(1.5hair,0); penpos6(0.6v,-90); penpos7(0.9uv,-149); penpos8(0.9uv,-136);
+penpos9(1.5hair,-54); penpos10(0.75uv,22); penpos11(0.875uv,28);
+penpos12(1.5hair,-59); ka(13,180); ka(14,-90); ka(15,180); penpos16(0.25v,90);
+penpos17(0.8uv,44); penpos18(1.5hair,129); ka(19,129); ka(20,-46);
+penpos21(2hair,-53); penpos22(1.5hair,0); ka(23,90); penpos24(uv,45);
+penpos25(0.9v,90); penpos26(0.22u,0); penpos27(1.5hair,-90); ka(28,180);
+ka(29,-26); penpos30(0.3u,0); penpos31(0.7uv,53); ka(32,180); ka(33,-73);
+ka(34,-35); penpos35(0.62u,5); penpos36(0.9uv,62); penpos37(0.95v,90);
+penpos38(0.83v,110); penpos39(1.5hair,16); penpos40(0.3v,-90);
+penpos41(0.5uv,-127); penpos42(1.5hair,-44); ka(43,21); penstroke
+z1e{up}...z2e...z3e...z4e ...z5e...z6e...z7e...z8e...z9e...z10e
+...z11e...z12e...z13e{down}; z1'=z1; ka(1',180); kouki(1',4,2.25);
+kouki(13,3,1.7); z23'=(5.2u,4.9v); ka(23',180); filldraw
+z20r{z11-z20}...z21r{z21-z4} & z21r--z21l & z21l{z37-z21}...z24r...z25r...z26r
+...z27r{right} & z27r--z27l & z27l{left}...z26l...z25l...z24l... z20l{z20-z11}
+& z20l--z20r & cycle; penstroke z21e{z21-z4}...z22e... z23e...z23'e{down};
+kouki(23',4,2.2); penstroke z27e{right}...z28e{down}; kouki(28,3,2); filldraw
+z29r{z29-z4}...z30r...z31r ...z32l{up} & z32l--z32r & z32r{z4-z32}
+...z33l{z33-z16} & z33l--z33r & z33r{z16-z33}...z31l...z30l... z29l{z4-z29} &
+z29l--z29r & cycle; penstroke z34e{z34-z4}...z35e...z36e
+...z37e...z38e...z39e...z40e...z41e ...z42e...z43e{z43-z28}; penstroke
+z19e{z19-z31}...z18e... z17e...z16e...z15e...z14e{left}; kouki(14,7,2);
+z50=(2.1u,2.05v); z51=(2.7u,1.3v); z52=(2.2u,0.35v); z53=(1.6u,0.15v);
+z54=(0.05u,1.65v); z55=(2.15u,3.4v); z56=(4u,2.3v); z57=(5.5u,1.2v);
+z58=(7.05u,2.6v); z59=(4.8u,4.9v); z60=(2.3u,2.4v); z61=(5.3u,0);
+z62=(5.8u,0.05v); z63=(6.3u,0.15v); z65=(8.6u,3.2v); z66=(8u,5v);
+z67=(7.55u,6.2v); z68=(4.4u,1.75v); z69=(4.5u,2.45v); z70=(5.2u,4v);
+z71=(6.15u,3.2v); z72=(5u,1.75v); z73=(5u,4.35v); z74=(6.45u,6.55v);
+z75=(8.4u,9.15v); z76=(8.9u,8.8v); z77=(6.25u,7.4v); z78=(6.2u,8.9v);
+z79=(6.55u,9.02v); z80=(6.85u,9v); z81=(7.25u,9.2v); z82=(5.8u,6.8v);
+z83=(5.55u,8.15v); z84=(4.9u,8.7v); z85=(5.4u,9.2v); z86=(3.05u,9.25v);
+z87=(0.5u,8.15v); z88=(0.1u,8.4v); z89=(0.3u,8.7v); z90=(0.25u,9.1v);
+z91=(1.8u,7.6v); z92=(3.3u,6v); z93=(3.75u,8.85v); z94=(3.2u,7.3v);
+z95=(3.7u,7.8v); z96=(3.6u,5.7v); z97=(2.1u,6.7v); z98=(0.45u,5v);
+z99=(1.55u,3.9v); z100=(2.5u,4.7v); z101=(1.8u,5.55v); z102=(1.25u,5.15v);
+z103=(u,5.95v); z104=(0.45u,6.55v); z105=(0.8u,7.1v); z106=(1.05u,6.9v);
+z108=(8.5u,2.5v); z109=(9u,3.35v); z110=(8.5u,4.8v); z111=(7.9u,5.9v);
+z112=(8.4u,7.1v); z113=(8.6u,5.5v); z114=(9u,6v); z115=(8.55u,6.3v);
+z116=(8.4u,6.1v); z117=(8u,0.1v); z118=(8.9u,v); z119=(8.2u,1.7v);
+z120=(7.7u,1.3v); z121=(8.1u,0.8v); z122=(8.3u,1.05v); z56.1=(4.3u,3.9v);
+z56.2=(4.4u,3.75v); ka(56.1,-32); ka(56.2,-41); ka(50,-90); ka(51,180);
+ka(52,124); ka(53,90); ka(54,0); ka(55,-90); ka(56,-144); ka(57,-90); ka(58,0);
+ka(59,90); ka(60,180); ka(61,-79); ka(63,-72); ka(65,0); ka(66,27); ka(67,0);
+ka(68,-145); ka(69,-90); ka(70,-90); ka(71,180); ka(72,180); ka(73,-48);
+ka(74,-22); ka(75,-90); ka(76,180); ka(77,-6); ka(78,0); penpos79(0.25v,-108);
+penpos80(0.15uv,-59); ka(81,-90); ka(82,0); ka(83,27); ka(84,90); ka(85,0);
+ka(86,106); ka(87,90); ka(88,0); ka(90,90); penpos89(0.15uv,-42); ka(91,180);
+ka(92,-90); ka(93,90); ka(94,-90); ka(95,0); ka(96,0); ka(97,90); ka(98,180);
+ka(99,-90); ka(100,0); ka(101,90); ka(102,160); ka(103,90); ka(104,0);
+ka(105,-90); ka(106,180); ka(108,-90); ka(109,0); ka(110,31); ka(111,26.5);
+ka(112,-90); ka(113,-90); ka(114,0); ka(115,90); ka(116,180); ka(117,-90);
+ka(118,0); ka(119,90); ka(120,180); penpos121(0.3v,-90); penpos122(0.25u,0);
+penstroke z1e{up}...z50e...z51e... z52e...z53e...z54e...z55e...z56e...
+z57e...z58e...z59e...z60e... z61e{z63-z61}; z112'=z112+(0.15u,-0.15v);
+ka(112',180); penstroke z63e{z63-z61}...z65e...z66e
+...z67e...z112e{right}...z112'e{down}; mpalla(61,1.3); mpalla(62,1.6);
+mpalla(63,1.3); z58'=z58; ka(58',180); penstroke z58'e{down}...
+z117e...z118e...z119e...z120e... z121e...z122e{up}; filldraw z122l--z122r &
+z122r{up}..z122l & cycle; z56'=z56; ka(56',36); penstroke
+z56'e{z97-z56}...z96e{up}...z97e...z98e ...z99e...z100e...z101e...z102e{down};
+mpalla(99,1.4); penstroke z56'e{z97-z56}...z56.2e...z70e... z71e{down};
+kouki(72,4,1.4); mpalla(101,1.3); penstroke z56.2e{z75-z56.2}...z73e...
+z74e...z75e...z76e{down}; kouki(76,3,1.2); z56.4=(5.15u,4.9v); ka(56.4,-40);
+penstroke z56'e{z97-z56}...z56.1e ...z56.4e...z82e...
+z83e{z83-z10}...z86e{z87-z86}... z91e{down}...z92e{right}...z93e{left}
+...z94e{right}...z95e{up}; penstroke z83e{z83-z10}...z85e{up}; kouki(85,2,1.3);
+penstroke z83e{z83-z10}...z84e{left}; kouki(84,7,1.2); mpalla(86,1.2); penstroke
+z86e...z87e{left} ...z88e...z89e...z90e{left}; kouki(90,7,1.1); penstroke
+z91e{down}...z103e...z104e ...z105e...z106e{down}; kouki(106,3,1.6);
+z200=(6.15u,2.9v); z201=(5.8u,2.45v); z203=(5.3u,2.9v); z204=(6.15u,1.7v);
+z205=(5.35u,2.15v); ka(200,180); penpos201(2hair,131); ka(203,0); ka(204,-90);
+ka(205,76); penpos206(0.4uv,131); z206=z201; z207=z206l; z208=z206r; penstroke
+z71e{down}...z200e...z201e {z201-z110}...z205e...z72e{down}; penstroke
+z201e{z201-z110}... z203e{up}; penstroke z201e{z201-z110}... z204e{right};
+mpalla(200,1.5); mpalla(207,1.7); mpalla(208,1.7); mpalla(205,1.5);
+kouki(203,2,1); kouki(204,6,1); z123=(2.6u,6.5v); z124=(2.05u,6v);
+z125=(2.3u,5.75v); ka(123,90); ka(124,180); ka(125,-90); penstroke
+z96e{up}...z123e...z124e ...z125e{right}; kouki(125,6,1.3); z56.3=z23+(0.05u,0);
+ka(56.3,-20); penstroke z56.3e{z17-z56.3}...z77e...
+z78e{up}...z79e{z15-z79}...z80e...z81e{right}; mpalla(77,1.5); mpalla(54,1.35);
+z68'=z68; ka(68',38); penstroke z68'e{z105-z68}...z69e{right}; kouki(69,8,1.5);
+penstroke z108e{right}...z109e... z110e...z111e...z112e{right}; z108'=z108;
+ka(108',90); kouki(108',5,1.3); z111'=z111; ka(111',-151); penstroke
+z111'e{z111-z78}...z113e... z114e...z115e...z116e{down}; kouki(116,4,1);
+z52'=z52; ka(52',-55); z126=(3.2u,0.8v); z127=(3.65u,0.45v); z128=(3.4u,0);
+ka(126,-90); ka(127,180); ka(128,90); penstroke z52'e{z110-z52}...z126e...
+z127e...z128e{left}; kouki(128,5,1.3); z210=(1.9u,5.05v); z211=(1.9u,4.5v);
+z212=(0.65u,5.05v); z220=(1.6u,2.55v); z221=(0.8u,2.2v); z222=(u,4v);
+z230=(1.05u,1.15v); z231=(1.35u,0.6v); z232=(-0.3u,0.4v);
+triaina(210,211,212,0.45); triaina(220,221,222,0.3); triaina(230,231,232,0.5);
+z131=z6l; z129=(2.8u,3.6v); z130=(2u,3.8v); ka(131,0); ka(130,90); ka(129,-90);
+kouki(130,7,1.1); kouki(129,8,1.2); penstroke z131e{up}...z129e{right};
+penstroke z131e{up}...z130e{left}; z240=(6.3u,5.3v); mpalla(240,1.4);
+penlabels(range 1 thru 240);
+.endchar;
+ \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitZ.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitZ.mf
new file mode 100644
index 00000000000..7ab4aa07ab6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitZ.mf
@@ -0,0 +1,114 @@
+.cmchar "The letter Z";
+.beginchar("Z",8.9u#,8.7m*u#,0);
+.adjust_fit(0,0);
+z1=(4.05u,-0.1v); z2=(4.9u,1.1v); z3=(4.2u,1.3v); z4=(3.25u,1.55v);
+z5=(1.75u,3.15v); z6=(3u,4.2v); z7=(3.85u,3.4v); z8=(3.2u,2.65v);
+z9=(2.65u,3.2v); z10=(2.85u,3.45v); z11=(7.15u,4.15v); z12=(4.5u,5v);
+z13=(4.27u,4.32v); z21=(5.5u,5.55v); z20=(4.85u,4.45v); z22=(7.35u,8.25v);
+z23=(7.7u,8v); z24=(6.25u,6.95v); z25=(4.85u,7.6v); z26=(3.3u,8.3v);
+z27=(1.5u,6.6v); z28=(2.55u,5.45v); z29=(3.4u,6.2v); z30=(3u,6.95v);
+z31=(2.5u,6.75v); z32=(2.7u,6.35v); z33=(2.5u,5.95v); z34=(2.2u,6v);
+z14=(4.6u,5.7v); z15=(5u,6.2v); z16=(5.35u,6.02v); z17=(6u,5.75v);
+z18=(6.4u,6.1v); z19=(6.2u,6.4v); ka(1,-15); penpos2(1.5hair,-55);
+penpos3(1.2uv,42); penpos4(0.9uv,81); penpos5(0.45u,-11); penpos6(1.5hair,-90);
+ka(7,180); ka(8,90); ka(9,0); ka(10,-90); penpos11(uv,7); penpos12(2hair,73);
+penpos13(0.3uv,-155); ka(20,-50); ka(21,-17); ka(22,-90); ka(23,180);
+penpos24(0.4v,90); penpos25(1.15uv,39); penpos26(0.65v,90);
+penpos27(1.5hair,180); ka(28,-90); ka(29,0); penpos30(2hair,90);
+penpos31(0.6u,170); penpos32(0.5u,-150); penpos33(0.2uv,111); ka(34,90);
+ka(14,90); penpos15(0.35v,-90); penpos16(0.4uv,-134); penpos17(0.27v,-90);
+penpos18(1.5hair,0); ka(19,90); filldraw z1r{z22-z1}...z2r{(9u,4v)-z2} &
+z2r--z2l & z2l{up}...z3r...z4r... z5r...z6r...z7r...z8r...z9r...z10r{right} &
+z10r--z10l & z10l{left}...z9l... z8l...z7l...z6l...z5l...z4l...z3l... z1l{down}
+& z1l--z1r & cycle; penstroke z2e{(9u,4v)-z2}...z11e...
+z12e...z13e...z20e...z21e...z22e... z23e...z24e...z25e...z26e...z27e...
+z28e...z29e{up}...z30e...z31e...z32e... z33e...z34e{left}; penstroke
+z14e{left}...z15e...z16e... z17e...z18e...z19e{left}; kouki(10,8,2.2);
+kouki(14,6,1.3); kouki(19,7,1.3); z50=(3.7u,1.45v); z51=(1.6u,0);
+z52=(0.9u,0.25v); z53=(0.4u,v); z54=(1.1u,1.65v); z55=(1.6u,1.15v);
+z56=(1.25u,0.75v); z57=(0.85u,1.1v); z58=(0.3u,2v); z59=(0,1.7v);
+z60=(7.15u,4.85v); z61=(8.7u,3.4v); z62=(7.4u,2.05v); z63=(6.3u,3v);
+z64=(7.15u,4.1v); z65=(8.1u,3.5v); z66=(6.5u,1.55v); z67=(4.45u,0); z67'=z67;
+z68=(5.6u,0.35v); z69=(6.1u,0.3v); z70=(6.8u,0.15v); z71=(7.7u,0.4v);
+z72=(8u,1.2v); z73=(7.4u,1.75v); z74=(6.85u,1.2v); z75=(7.25u,0.85v);
+z76=(7.6u,1.1v); z77=(8.4u,0.6v); z78=(8.5u,2.65v); z79=(8.15u,1.8v);
+z80=(7.7u,2.6v); z81=(8.15u,4v); z82=(5.6u,6.2v); z83=(2.9u,3.8v);
+z84=(4.6u,2.05v); z85=(5.9u,3.3v); z86=(5.5u,4.1v); z87=(4.1u,3.4v);
+z88=(4.8u,2.75v); z89=(5.4u,3.35v); z90=(4.9u,3.8v); z91=(4.6u,3.55v);
+z92=(4.45u,6.5v); z93=(5.15u,8.15v); z94=(5.9u,8.3v); z95=(6.35u,8.2v);
+z96=(6.6u,8.4v); z97=(6.05u,7.95v); z98=(5.8u,7.7v); z99=(6.8u,8.9v);
+z100=(8u,8.5v); z101=(8.6u,8.65v); z102=(8.45u,7.65v); z103=(8.15u,6.6v);
+z104=(7.4u,6.25v); z105=(6.5u,7v); z106=(7.35u,7.9v); z107=(7.9u,7.3v);
+z108=(7.5u,6.8v); z109=(8.1u,5.15v); z110=(8.3u,5v); z111=(7.65u,5.9v);
+z112=(4.4u,3.9v); z113=(4u,6.25v); z114=(3u,8.3v); z115=(3.6u,9.05v);
+z116=(4.15u,8.8v); z117=(4.5u,9v); z118=(3.85u,7.1v); z119=(1.3u,8.4v);
+z120=(2.05u,8.95v); z121=(2.25u,8.6v); z122=(2.55u,8.85v); z123=(2.1u,6.45v);
+z124=(0.5u,5v); z125=(1.5u,4v); z126=(2.4u,4.8v); z127=(1.8u,5.4v);
+z128=(1.25u,5v); z129=(1.8u,4.5v); z130=(3.3u,5.25v); z131=(3.8u,4.8v);
+z132=(3.55u,4.5v); z133=(3.3u,4.7v); z134=(0.4u,7.6v); z135=(0.55u,8.15v);
+z136=(0.75u,8.8v); z137=(1.35u,8.55v); z138=(2.1u,7.75v); z139=(1.5u,7v);
+z140=(0.85u,7.6v); z141=(1.25u,7.95v); z142=(1.45u,7.75v); z143=(0.2u,5.8v);
+z144=(0.2u,6.8v); z145=(1.05u,3.3v); z146=(0.8u,2.6v); z147=(0.7u,2v);
+z148=(0,3v); z149=(0.15u,3.3v); z150=(0.45u,3.9v); z151=(0.6u,3.3v);
+z152=(0.55u,2.95v); z153=(0.2u,4.25v); z154=(1.3u,3.65v); ka(50,147); ka(51,90);
+ka(52,59); ka(53,0); ka(54,-90); ka(55,180); ka(56,90); ka(57,0);
+penpos58(0.4v,90); ka(59,180); z50'=z50; ka(50',-33); ka(60,-90); ka(61,180);
+ka(62,90); ka(63,0); ka(65',0); ka(64,-90); ka(65,180); ka(66,117); ka(67,152);
+ka(67',-28); ka(68,-90); ka(69,-109); ka(70,-90); ka(71,-58); ka(72,0);
+ka(73,90); ka(74,180); ka(75,-90); ka(76,0); ka(77,-90); ka(78,147); ka(79,180);
+ka(80,146); z65'=z65; ka(82,90); ka(83,180); ka(84,-90); ka(85,0); ka(86,57);
+ka(87,180); ka(88,-90); ka(89,0); ka(90,90); ka(91,180); ka(92,0); ka(93,-46);
+ka(94,-128); ka(95,-90); ka(96,0); ka(97,180); ka(98,90); ka(99,-90);
+ka(100,-126); ka(101,0); ka(102,180); ka(103,141); ka(104,90); ka(105,0);
+ka(106,-90); ka(107,180); ka(108,90); ka(109,180); ka(110,-90); ka(112,0);
+ka(113,26); ka(114,0); ka(115,-90); ka(116,-90); ka(117,-90); ka(118,0);
+ka(119,0); penpos120(0.3uv,-135); penpos121(0.3uv,-111); ka(122,-8); ka(123,90);
+ka(124,180); ka(125,-90); ka(126,0); ka(127,90); ka(128,180); ka(129,-90);
+ka(130,-90); ka(131,180); ka(132,90); ka(133,0); ka(134,0); ka(135,-32);
+ka(136,0); ka(137,-90); ka(138,180); ka(139,90); ka(140,0); ka(141,-90);
+ka(142,180); ka(143,180); ka(144,0); ka(145,180); ka(146,135); ka(147,-90);
+ka(148,0); ka(149,-49); ka(150,0); ka(151,-146); ka(152,90); ka(153,90);
+penstroke z50e{z50-z104}...z51e... z52e...z53e{up}...z54e...z55e...
+z56e...z57e{up}; kouki(57,2,1.5); penstroke z53e{up}...z58e{left}... z59e{down};
+z52'=(0.35u,0.5v); ka(52',90); penstroke z52e{z150-z5r}...z52'e{left};
+kouki(52',7,1.6); z155=(3.7u,-0.05v); z156=(3.15u,0.35v); z157=(2.7u,0.15v);
+z158=(2.6u,0.95v); z159=(2.3u,0.6v); z160=(1.6u,0.5v); ka(155,0); ka(156,90);
+ka(157,180); ka(158,90); ka(159,180); ka(160,180); penstroke
+z155e{z123-z155}...z156e... z157e{down}; kouki(157,4,1); penstroke
+z155e{z123-z155}...z158e{left} ...z159e{down}; kouki(159,4,1.1); penstroke
+z158e{left}...z160e{down}; kouki(160,4,1.2); penstroke z50'e{z104-z50}...z60e...
+z61e...z78e{z79-z78}...z62e...z63e...z64e...
+z65e{down}...z80e...z66e...z67e{z67-z103}; penstroke z78e{z79-z78}..z79e{down};
+kouki(79,4,1.6); kouki(65,3,1.5); z200=z65; ka(200,180); kouki(200,4,1.5);
+mpalla(80,1.75); penstroke z67'e{z79-z67}..z68e...
+z69e...z70e...z71e...z72e...z73e... z74e...z75e...z76e{up}; kouki(76,1,1.6);
+penstroke z65'e{up}...z82e...z83e... z84e...z85e...z86e...z87e...z88e...
+z89e...z90e...z91e{down}; kouki(91,4,1.8); penstroke z50'e{z104-z50}...
+z92e...z93e{z93-z150}...z99e...z100e {z85-z28}...z102e...z103e{z51-z103}
+...z104e...z105e...z106e...z107e... z108e{left}; kouki(108,5,1.4);
+mpalla(99,1.5); penstroke z100e{z85-z28}...z101e{up}; kouki(101,1,1.5);
+mpalla(102,1.4); penstroke z103e{z51-z103}...z109e{down} ...z110e{right};
+kouki(110,6,1.3); mpalla(111,1.3); penstroke z93e{z93-z150}...
+z94e{z103-z94}...z95e...z96e{up}; kouki(96,1,1.3); penstroke
+z94e{z103-z94}...z97e.. z98e{left}; kouki(98,5,1.2); penstroke
+z112e{up}...z113e{z113-z66} ...z118e{up}; kouki(118,2,1.2); penstroke
+z113e{z113-z66}...z114e... z115e...z116e...z117e{right}; kouki(117,8,1.25);
+penstroke z113e{z113-z66}...z119e{up} ...z120e...z121e...z122e{z122-z54};
+penstroke z112e{up}...z123e{z123-z111}... z134e...z135e{z26-z124}...z137e...z138e
+...z139e...z140e...z141e...z142e{down}; kouki(142,3,1.5); penstroke
+z135e{z26-z124}...z136e{up}; kouki(136,1,1.55); penstroke
+z123e{z123-z111}...z144e{up}; kouki(144,2,1.4); penstroke
+z123e{z123-z111}...z143e{down}; kouki(143,4,1.4); penstroke
+z123e{z123-z111}...z124e... z125e...z126e...z127e...z128e...z129e
+...z130e...z131e...z132e...z133e{up}; kouki(133,2,1.3); penstroke
+z124e{down}..z145e{down} ...z146e{z146-z18}...z148e...z149e
+{z94-z149}...z150e...z153e{left}; kouki(153,7,1.3); penstroke
+z146e{z146-z18}...z147e{right}; kouki(147,6,1.3); penstroke
+z149e{z94-z149}...z151e... z152e{left}; kouki(152,5,1.2); mpalla(154,1.3);
+z250=(1.7u,5v); ka(250,-90); penstroke z123e{left}...z250e{right};
+kouki(250,6,1.2); x251=0.5[x69,x70]; y251=y75+0.1v; ka(251,0); penstroke
+z68e{right}...z251e{up}; kouki(251,1,1.1); penstroke z71e...z77e{right};
+kouki(77,8,1.55); z252=(5.5u,4.61v); mpalla(252,1.6); penlabels(range 1 thru
+252);
+.endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitas.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitas.mf
new file mode 100644
index 00000000000..da8530d32be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitas.mf
@@ -0,0 +1,114 @@
+% THIS IS A PATCHED VERSION OF YINIT.MF
+% patched on march 27, 1994 by Andeas Schrell
+% patches affect the size and positioning of the letters.
+
+% This is CMR10.MF in text format, as of Mar 31, 1986.
+% Computer Modern Roman 10 point
+if unknown cmbase: input cmbase fi
+input yintbase % -sl 15-3-1991
+
+font_identifier:="YINITAS";
+
+u#:=160/36pt#;
+v#:=160/36pt#;
+
+font_size 8.7u#;
+
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=40/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=40pt#; % height of tallest characters
+asc_height#:=40pt#; % height of lowercase ascenders
+cap_height#:=40pt#; % height of caps
+fig_height#:=40pt#; % height of numerals
+x_height#:=800/36pt#; % height of lowercase without ascenders
+math_axis#:=720/36pt#; % axis of symmetry for math symbols
+bar_height#:=320/36pt#; % height of crossbar in lowercase e
+comma_depth#:=560/36pt#; % depth of comma below baseline
+desc_depth#:=560/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=32/36pt#; % diameter of rounded corners
+fine#:=28/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+numeric m; m:=1;
+hair#:=2/36u#;
+stem#:=200/36pt#; % lowercase stem breadth
+curve#:=240/36pt#; % lowercase curve breadth
+ess#:=216/36pt#; % breadth in middle of lowercase s
+flare#:=264/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=288/36pt#; % diameter of dots
+cap_hair#:=88/36pt#; % uppercase hairline breadth
+cap_stem#:=256/36pt#; % uppercase stem breadth
+cap_curve#:=296/36pt#; % uppercase curve breadth
+cap_ess#:=280/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.6pt#; % thickness of lines in math symbols
+
+dish#:=8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=160/36pt#; % vertical distance from serif base to tangent
+jut#:=224/36pt#; % protrusion of lowercase serifs
+cap_jut#:=296/36pt#; % protrusion of uppercase serifs
+beak_jut#:=80/36pt#; % horizontal protrusion of beak serifs
+beak#:=560/36pt#; % vertical protrusion of beak serifs
+vair#:=64/36pt#; % vertical diameter of hairlines
+notch_cut#:=80pt#; % maximum breadth above or below notches
+bar#:=88/36pt#; % lowercase bar thickness
+slab#:=88/36pt#; % serif and arm thickness
+cap_bar#:=88/36pt#; % uppercase bar thickness
+cap_band#:=88/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=80pt#; % max breadth above/below uppercase notches
+serif_drop#:=32/36pt#; % vertical drop of sloped serifs
+stem_corr#:=8/36pt#; % for small refinements of stem breadth
+vair_corr#:=8/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=64/36pt#; % amount of overshoot for curves
+apex_o#:=64/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+mode_setup;
+font_setup;
+u:=160/36pt;
+v:=160/36pt; uv:=u;
+generate yinitA;
+generate yinitB;
+generate yinitC;
+generate yinitD;
+generate yinitE;
+generate yinitF;
+generate yinitG;
+generate yinitH;
+generate yinitJ;
+generate yinitK;
+generate yinitL;
+generate yinitM;
+generate yinitN;
+generate yinitO;
+generate yinitP;
+generate yinitQ;
+generate yinitR;
+generate yinitS;
+generate yinitT;
+generate yinitU;
+generate yinitV;
+generate yinitW;
+generate yinitX;
+generate yinitY;
+generate yinitZ;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yinitdd.mf b/Master/texmf-dist/fonts/source/public/gothic/yinitdd.mf
new file mode 100644
index 00000000000..7b9fe2f1b35
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yinitdd.mf
@@ -0,0 +1,109 @@
+% This is CMR10.MF in text format, as of Mar 31, 1986.
+% Computer Modern Roman 10 point
+if unknown cmbase: input cmbase fi
+input yintbase % -sl 15-3-1991
+
+font_identifier:="CMR"; font_size 10pt#;
+
+u#:=160/36pt#;
+v#:=160/36pt#;
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=40/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=40pt#; % height of tallest characters
+asc_height#:=40pt#; % height of lowercase ascenders
+cap_height#:=40pt#; % height of caps
+fig_height#:=40pt#; % height of numerals
+x_height#:=800/36pt#; % height of lowercase without ascenders
+math_axis#:=720/36pt#; % axis of symmetry for math symbols
+bar_height#:=320/36pt#; % height of crossbar in lowercase e
+comma_depth#:=560/36pt#; % depth of comma below baseline
+desc_depth#:=560/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=32/36pt#; % diameter of rounded corners
+fine#:=28/36pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+numeric m; m:=1;
+hair#:=2/36u#;
+stem#:=200/36pt#; % lowercase stem breadth
+curve#:=240/36pt#; % lowercase curve breadth
+ess#:=216/36pt#; % breadth in middle of lowercase s
+flare#:=264/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=288/36pt#; % diameter of dots
+cap_hair#:=88/36pt#; % uppercase hairline breadth
+cap_stem#:=256/36pt#; % uppercase stem breadth
+cap_curve#:=296/36pt#; % uppercase curve breadth
+cap_ess#:=280/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1.6pt#; % thickness of lines in math symbols
+
+dish#:=8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=160/36pt#; % vertical distance from serif base to tangent
+jut#:=224/36pt#; % protrusion of lowercase serifs
+cap_jut#:=296/36pt#; % protrusion of uppercase serifs
+beak_jut#:=80/36pt#; % horizontal protrusion of beak serifs
+beak#:=560/36pt#; % vertical protrusion of beak serifs
+vair#:=64/36pt#; % vertical diameter of hairlines
+notch_cut#:=80pt#; % maximum breadth above or below notches
+bar#:=88/36pt#; % lowercase bar thickness
+slab#:=88/36pt#; % serif and arm thickness
+cap_bar#:=88/36pt#; % uppercase bar thickness
+cap_band#:=88/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=80pt#; % max breadth above/below uppercase notches
+serif_drop#:=32/36pt#; % vertical drop of sloped serifs
+stem_corr#:=8/36pt#; % for small refinements of stem breadth
+vair_corr#:=8/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=64/36pt#; % amount of overshoot for curves
+apex_o#:=64/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+mode_setup;
+font_setup;
+u:=160/36pt;
+v:=160/36pt;
+uv:=u; % -sl 15-3-1991
+%readfrom("yinitbase"); % -sl 15-3-1991
+generate yinitD; end.
+generate yinitB;
+generate yinitC;
+generate yinitD;
+generate yinitE;
+generate yinitF;
+generate yinitG;
+generate yinitH;
+generate yinitJ;
+generate yinitK;
+generate yinitL;
+generate yinitM;
+generate yinitN;
+generate yinitO;
+generate yinitP;
+generate yinitQ;
+generate yinitR;
+generate yinitS;
+generate yinitT;
+generate yinitU;
+generate yinitV;
+generate yinitW;
+generate yinitX;
+generate yinitY;
+generate yinitZ;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yintbase.mf b/Master/texmf-dist/fonts/source/public/gothic/yintbase.mf
new file mode 100644
index 00000000000..05b45f1178e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yintbase.mf
@@ -0,0 +1,229 @@
+def kouki(suffix $)(expr arij, meg)=
+if arij=1: penpos$.1(hair,0); penpos$.2(hair,90);
+z$.1=z$; z$.2=z$.1+(-.1meg*u-.5hair,.2meg*v-.5hair);
+z$.3=z$.2r-(.1meg*u,.1meg*v); z$.4=z$.2r-(0,.2meg*v);
+z$.5=z$.2r+(.1meg*u,-.1meg*v); penstroke z$.1e{up}...{left}z$.2e;
+filldraw z$.2r...z$.3...z$.4...z$.5...cycle;
+fi
+if arij=2: penpos$.1(hair,0); penpos$.2(hair,-90);
+z$.1=z$; z$.2=z$.1+(.1meg*u+.5hair,.2meg*v-.5hair);
+z$.3=z$.2l+(.1meg*u,-.1meg*v); z$.4=z$.2l-(0,.2meg*v);
+z$.5=z$.2l-(.1meg*u,.1meg*v); penstroke z$.1e{up}...{right}z$.2e;
+filldraw z$.2l...z$.3...z$.4...z$.5...cycle;
+fi
+if arij=3: penpos$.1(hair,-180); penpos$.2(hair,90);
+z$.1=z$; z$.2=z$.1+(-.1meg*u-.5hair,-.2meg*v+.5hair);
+z$.3=z$.2l-(.1meg*u,-.1meg*v); z$.4=z$.2l+(0,.2meg*v);
+z$.5=z$.2l+(.1meg*u,+.1meg*v); penstroke z$.1e{down}...{left}z$.2e;
+filldraw z$.2l...z$.3...z$.4...z$.5...cycle;
+fi
+if arij=4: penpos$.1(hair,-180); penpos$.2(hair,-90);
+z$.1=z$; z$.2=z$.1+(.1meg*u+.5hair,-.2meg*v+.5hair);
+z$.3=z$.2r-(-.1meg*u,-.1meg*v); z$.4=z$.2r+(0,.2meg*v);
+z$.5=z$.2r+(-.1meg*u,+.1meg*v); penstroke z$.1e{down}...{right}z$.2e;
+filldraw z$.2r...z$.3...z$.4...z$.5...cycle;
+fi
+if arij=5: penpos$.1(hair,90); penpos$.2(hair,0);
+z$.1=z$; z$.2=z$.1-(.2meg*u-.5hair,-.1meg*v-.5hair);
+z$.3=z$.2l+(.1meg*u,.1meg*v); z$.4=z$.2l+(.2meg*u,0);
+z$.5=z$.2l+(.1meg*u,-.1meg*v); penstroke z$.1e{left}...{up}z$.2e;
+filldraw z$.2l...z$.3...z$.4...z$.5...cycle;
+fi
+if arij=6: penpos$.1(hair,-90); penpos$.2(hair,0);
+z$.1=z$; z$.2=z$.1-(-.2meg*u+.5hair,-.1meg*v-.5hair);
+z$.3=z$.2r+(-.1meg*u,.1meg*v); z$.4=z$.2r+(-.2meg*u,0);
+z$.5=z$.2r+(-.1meg*u,-.1meg*v); penstroke z$.1e{right}...{up}z$.2e;
+filldraw z$.2r...z$.3...z$.4...z$.5...cycle;
+fi
+if arij=7: penpos$.1(hair,90); penpos$.2(hair,-180);
+z$.1=z$; z$.2=z$.1-(.2meg*u-.5hair,.1meg*v+.5hair);
+z$.3=z$.2r+(.1meg*u,-.1meg*v); z$.4=z$.2r+(.2meg*u,0);
+z$.5=z$.2r+(.1meg*u,.1meg*v); penstroke z$.1e{left}...{down}z$.2e;
+filldraw z$.2r...z$.3...z$.4...z$.5...cycle;
+fi
+if arij=8: penpos$.1(hair,-90); penpos$.2(hair,-180);
+z$.1=z$; z$.2=z$.1+(.2meg*u-.5hair,-.1meg*v-.5hair);
+z$.3=z$.2l-(.1meg*u,.1meg*v); z$.4=z$.2l-(.2meg*u,0);
+z$.5=z$.2l-(.1meg*u,-.1meg*v); penstroke z$.1e{right}...{down}z$.2e;
+filldraw z$.2l...z$.3...z$.4...z$.5...cycle;
+fi
+enddef;
+def mpalla(suffix $)(expr meg)= z$.1=z$; z$.2=z$.1+(0,.1meg*v);
+z$.3=z$.1+(-.1meg*u,0); z$.4=z$.1+(0,-.1meg*v); z$.5=z$.1+(.1meg*u,0);
+filldraw z$.2...z$.3...z$.4...z$.5...cycle
+enddef;
+def kordella(suffix $,$$)=
+(z$.1-z$$)=whatever * (z$$l-z$$r); z$.1-z$=whatever * dir(angle(z$r-z$l)+90);
+(z$.2-z$)=whatever * (z$l-z$r); z$.2-z$$=whatever * dir(angle(z$$r-z$$l)+90);
+z$.3=.5[z$,z$.2]; z$.4=.25[z$,z$$];
+z$.5-z$$=z$-z$.4; z$.6-z$.2=z$-z$.4;
+z$.7=0.25[z$.1,z$$];
+filldraw z$r{z$.1-z$}...{z$.2-z$}z$.4...{z$-z$.1}z$.3...
+{z$.2-z$}z$.6...{z$.1-z$}z$$r
+& z$$r--z$$l & z$$l{z$-z$.1}...{z$-z$.2}z$.5...{z$-z$.2}z$.7...
+{z$-z$.1}z$l & z$l--z$r & cycle
+enddef;
+def ka(suffix $)(expr angle)= penpos$(hair,angle) enddef;
+
+def triaina(suffix $,$$,$$$)(expr alpha)=
+numeric theta;
+theta:= angle(z$$$-z$);
+z$.1=(0.5-0.5alpha)[z$,z$$$];
+z$.1'=(0.5-0.5alpha)[z$$$,z$];
+z$.2=.5[z$.1,z$.1']+1/8(z$$-z$);
+z$.3=.5[z$.1,z$.1']+5/8(z$$-z$);
+z$.4=.25[z$.1,z$.1']+5/8(z$$-z$);
+z$.4'=.75[z$.1,z$.1']+5/8(z$$-z$);
+z$.5=z$.1+1/6(z$$-z$);
+z$.5'=z$.1'+1/6(z$$-z$);
+z$.7=z$$+.25(z$$$-z$);
+z$.7'=z$$+.75(z$$$-z$);
+z$.8=2/3[z$,z$$]; z$.8'=z$.8+(z$$$-z$);
+penpos$.8(hair,theta);
+penpos$.7(hair,theta-90);
+penpos$.4(hair,theta+180);
+penpos$.5(hair,theta+180);
+penpos$.1(hair,theta-135);
+penpos$.2(3hair,theta-90);
+penpos$.1'(hair,theta-45);
+penpos$.5'(hair,theta);
+penpos$.4'(hair,theta);
+penpos$.7'(hair,theta-90);
+penpos$.8'(hair,theta+180);
+%filldraw z$.1--z$.3 & z$.3--z$.1' &
+%z$.1' -- z$.1 & cycle;
+penstroke z$.8e{z$$-z$}...z$.7e{z$$$-z$}
+...z$.4e{z$-z$$}...z$.5e...z$.1e...
+{z$$$-z$}z$.2e...z$.1'e...z$.5'e...
+z$.4'e{z$$-z$}...z$.7'e{z$$$-z$}...
+z$.8'e{z$-z$$};
+z$.11=z$.8l; z$.13=z$.11+(alpha/3)*(z$$$-z$);
+z$.11'=z$.8'l; z$.13'=z$.11'-(alpha/3)*(z$$$-z$);
+filldraw z$.11...z$.13...cycle;
+filldraw z$.11'...z$.13'...cycle
+enddef;
+
+def kouti(suffix $,$$)=
+z$$.2=z$r+(z$l-z$$); z$'=z$;
+z$$.1-z$$=whatever*dir(angle(z$r-z$l)+90);
+z$$.1-z$$.2=whatever*(z$l-z$r);
+z$$.3=z$$+(z$$.2-z$$.1);
+filldraw z$$--z$$.1--z$$.2--z$$.3--z$$ & cycle
+enddef;
+
+def louloudi(suffix $) (expr alpha) =
+x$.2=x$.6=x$-0.5alpha*u; x$.8=x$.4=x$+0.5alpha*u;
+x$.1=x$.5=x$-0.05alpha*u; x$.3=x$.7=x$+0.05alpha*u;
+z$.3-z$=whatever*dir45; z$.4=whatever[z$,z$.3];
+z$.5=whatever[z$,z$.3]; z$.6=whatever[z$,z$.3];
+z$.1-z$=whatever*dir135; z$.2=whatever[z$,z$.1];
+z$.7=whatever[z$,z$.1]; z$.8=whatever[z$,z$.1];
+filldraw z$.3{right}..z$.4{up} & z$.4{left}..z$.3{down} & cycle;
+filldraw z$.1{up}..z$.2{left} & z$.2{down}..z$.1{right} & cycle;
+filldraw z$.6{right}..z$.5{up} & z$.5{left}..z$.6{down} & cycle;
+filldraw z$.8{up}..z$.7{left} & z$.7{down}..z$.8{right} & cycle;
+enddef;
+
+def laimoc_swab =
+penpos1.1(stem,0); penpos1.3(stem,0);
+penpos1.4(hair,90); penpos1.5(hair,-90);
+y1.1=y1.1'=foot; x1.1l=x1.2=0.413stem;
+x1.1'=x1.4=0; x1.3=x1.1; x1.5=x1.1r+0.761stem;
+y1.5l=cap_height+apex_o;
+z1.5l-z1.4r=whatever*dir17;
+y1.3=0.828cap_height; y1.2=0.273cap_height;
+filldraw z1.1'...z1.2---z1.3l...
+z1.4l & z1.4l--z1.4r--z1.5l--z1.5r
+& z1.5r{left}...z1.3r---z1.1r &
+z1.1r--z1.1' & cycle enddef;
+
+def podi_swab (expr theta) =
+penpos2.1(1.304stem,theta);
+penpos2.2(1.304stem,theta);
+z2.1l=(0,foot);
+z2.1l-z2.2l=whatever*dir151;
+y2.2l=-apex_o; penpos2.3(hair,theta-90);
+z2.3r=z2.2;
+z2.05=(2/3apex_o,2/3apex_o);
+penpos2.1'(1.304stem,theta);
+z2.1'=0.5[z2.1,z2.2]+z2.05;
+penstroke z2.2e..z2.1'e..z2.1e
+enddef;
+
+def long_s = numeric w',h',d';
+w':=6.038u; h':=1.414x_height;
+d':=3.208u;
+penpos1.1(2/3hair,0);
+z1.1=(0.313w',-d');
+penpos1.2(1.283stem,0);
+z1.2=(0.344w',0.589h');
+penpos1.4(hair,90);
+z1.4l=(0,y1.2-1/3stem);
+z1.3=(z1.1l..{dir92.5}z1.2l)
+intersectionpoint
+((0,y1.4l)--(w',y1.4l));
+z1.5=(0.35w',0.761h');
+penpos1.6(0.957stem,-118);
+z1.6l=(0.669w',h');
+penpos1.7(1.174stem,-125);
+z1.7l=(w',0.962h'); penpos1.8(hair,-35);
+z1.8r=z1.7l; z1.9-z1.8l=whatever*(z1.7l-z1.7r);
+x1.9=0.9w';
+penpos1.11(2/3stem,-90); y1.11=y1.2;
+x1.11=0.763w';
+penpos1.12(2/3stem,-90); z1.12=z1.2;
+filldraw z1.1r..z1.2r{dir87} &
+z1.2r{dir126}..z1.5{up}..z1.6r{right}
+..z1.7r{right}--z1.8r--z1.8l--z1.9
+& z1.9{left}..z1.6l{left}..
+z1.4r{dir218}--z1.4l{right}--
+z1.3{dir272.5}..z1.1l--z1.1r & cycle;
+if isitf: filldraw z1.11r--z1.12r--
+z1.12l--z1.5{down}...(x1.2r,y1.11l){right}
+---z1.11l--z1.11r & cycle; fi
+enddef;
+
+def dexi_podi_swab (expr yy) =
+penpos1.2(stem,0);
+z1.2r=(1.63stem,0.694x_height);
+penpos1.1(whatever,24);
+penpos1.3(whatever,43);
+x1.1l=x1.2l; z1.3l=z1.2l;
+x1.1r=x1.2r=x1.3r; y1.1l=yy;
+penpos1.4(1.348stem,43);
+x1.4l=0; y1.4r=x_height+apex_o;
+penstroke z1.1e---z1.3e...
+z1.4e{dir133} enddef;
+
+def aristero_podi_swab (expr xx) =
+w':=5.057u; penpos2.1(stem,0);
+z2.1l=(xx+1.261stem,0.694x_height);
+penpos2.2(whatever,34);
+z2.2l=(x2.1l,-apex_o); x2.2r=xx+w';
+penpos2.3(hair,-90); z2.3r=z2.2r;
+z2.4=(x2.1r,0.378x_height);
+z2.6=(xx+0.545w',x_height+apex_o);
+penpos2.5(hair,-90);
+z2.5l-z2.6=whatever*dir-40;
+x2.5=xx+0.9w';
+penpos2.7(hair,-90);
+z2.6-z2.7l=whatever*dir33;
+x2.7=xx; z2.8-z2.7r=whatever*(z2.6-z2.7l);
+z2.8=whatever[z2.6,z2.5r];
+penpos2.9(1.217stem,33);
+z2.9r=z2.8;
+z2.9l-z2.11=whatever*(z2.6-z2.5l);
+x2.11=x2.1l;
+filldraw z2.7r--z2.9l--z2.11--
+z2.2l--z2.3r--z2.3l{z2.2l-z2.2r}..{up}
+z2.4---z2.1r...z2.5r{right}--
+z2.5l--z2.6--z2.7l--z2.7r &
+cycle enddef;
+
+def e_umlaut(suffix $) =
+penpos$.1(2u,45); z$.1=z$;
+pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30;
+z$.2=z$.1r; z$.3=z$.1l; rt x$.4=rt x$.2; top y$.4=y$;
+draw z$.3--z$.2..z$.3..z$.4;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/ysmfrak.mf b/Master/texmf-dist/fonts/source/public/gothic/ysmfrak.mf
new file mode 100644
index 00000000000..366b7f9f433
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/ysmfrak.mf
@@ -0,0 +1,137 @@
+if unknown cmbase: input cmbase fi
+input yfrabase; % -sl 15-3-1991
+
+font_identifier:="ysmfrak"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+lower_u#:=20/36pt#;
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=167/36pt#; % height of lowercase without ascenders
+%x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=6/36pt#; % lowercase hairline breadth
+%hair#:=9/36pt#; % lowercase hairline breadth
+%stem#:=25/36pt#; % lowercase stem breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+%cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_hair#:=7/36pt#;
+cap_amount#:=8/36pt#;
+%cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_stem#:=30/36pt#;
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+numeric usual_right, usual_left;
+usual_right#:=0.75u#;
+usual_left#:=0.45u#;
+
+granularity:=1.01;
+%aspect_ratio:=2/3aspect_ratio;
+
+mode_setup;
+font_setup;
+cap_amount:=8/36pt;
+foot:=0.207x_height;
+num_height:=1.242x_height;
+cap_kern:=4/36pt;
+boolean ligature; ligature:=false;
+numeric alpha; alpha:=0;
+numeric coef, gencoef; gencoef:=1;
+
+%granularity:=1.01;
+
+%readfrom("yfrakbase"); % -sl 15-3-1991
+%currenttransform:=identity xscaled 1.1;
+if proofing>1: generate ycurrent; fi % switch to the driver file%
+%generate yfraklower;
+generate yfraklow; % -sl 15-3-1991
+%generate yfrakmisc;
+generate yfrakmis; % -sl 15-3-1991
+%generate yfrakupper; % switch to the driver file
+generate yfrakupp; % -sl 15-3-1991
+generate yfraknum;
+%currenttransform:=identity;
+%generate yfrakother;
+generate yfrakoth; % -sl 15-3-1991
+
+font_slant slant; font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+%ligtable "a": "e"=:oct"032";
+ligtable "c": "h"=:oct"205", "k"=:oct"206";
+ligtable "f": "f"=:oct"204";
+ligtable "s": ":"=:oct"215", "s"=:oct"201", "t"=:oct"202", "z"=:oct"032",
+"f"=:oct"203", "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u#,
+"l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#;
+ligtable "t": "z"=:oct"213";
+ligtable oct"042": "a"=:oct"212", "e"=:oct"221", "o"=:oct"232", "u"=:oct"237",
+"s"=:oct"032";
+ligtable "*": "a"=:oct"211", "e"=:oct"220", "o"=:oct"231", "u"=:oct"236";
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042";
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+ligtable oct"201": "b" kern 1.03u#, "d" kern 1.03u#, "h" kern 1.03u#, "k" kern 1.03u#
+, "l" kern 1.03u#, "i" kern 0.4u#, "j" kern 0.4u#;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yswab.mf b/Master/texmf-dist/fonts/source/public/gothic/yswab.mf
new file mode 100644
index 00000000000..8e6bc4ef3b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yswab.mf
@@ -0,0 +1,138 @@
+if unknown cmbase: input cmbase fi
+input yswabase % -sl 15-3-1991
+
+font_identifier:="yswab"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=167/36pt#; % height of lowercase without ascenders
+%x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+%hair#:=9/36pt#; % lowercase hairline breadth
+%stem#:=25/36pt#; % lowercase stem breadth
+stem#:=34/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+%cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_hair#:=9/36pt#;
+cap_amount#:=8/36pt#;
+%cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_stem#:=42/36pt#;
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+numeric usual_right, usual_left;
+usual_right#:=0.3u#;
+usual_left#:=0.2u#;
+
+mode_setup;
+font_setup;
+cap_amount:=8/36pt;
+foot:=27/36pt;
+num_height:=1.242x_height;
+cap_kern:=4/36pt;
+boolean ligature; ligature:=false;
+numeric alpha;
+alpha:=0;
+
+
+if proofing>1: generate ycurrent; fi % switch to the driver file%
+%generate yswablower;
+%generate yswabnum;
+%generate yswabmisc;
+%generate yswabupper; % switch to the driver file
+generate yswablow; % -sl 15-3-1991
+generate yswabnum; % -sl 15-3-1991
+generate yswabmis; % -sl 15-3-1991
+generate yswabupp; % -sl 15-3-1991
+
+font_slant slant; font_x_height x_height#;
+font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+ligtable "f": "f"=:oct"204", "b" kern 0.78u#, "h" kern 0.78u#, "k" kern 0.78u#,
+"l" kern 0.78u#;
+ligtable "s": ":"=:oct"215", "s"=:oct"201", "t"=:oct"202", "z"=:oct"032",
+"f"=:oct"203", "b" kern 2u#, "h" kern 2u#, "k" kern 2u#, "l" kern 2u#,
+"d" kern 1.03u#, "i" kern 0.815u#, "j" kern 0.815u#;
+ligtable oct"042": "a"=:oct"212", "e"=:oct"221", "o"=:oct"232", "u"=:oct"237",
+"s"=:oct"032";
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042";
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+ligtable "*": "a"=:oct"211", "e"=:oct"220", "o"=:oct"231", "u"=:oct"236";
+ligtable oct"201": "b" kern 2u#, "h" kern 2u#, "k" kern 2u#, "l" kern 2u#,
+"d" kern 1.03u#, "i" kern 0.815u#, "j" kern 0.815u#;
+ligtable oct"203": "b" kern 0.78u#, "h" kern 0.78u#, "k" kern 0.78u#,
+"l" kern 0.78u#;
+ligtable oct"204": "b" kern 0.78u#, "h" kern 0.78u#, "k" kern 0.78u#,
+"l" kern 0.78u#;
+ligtable "c": "h"=:oct"205", "k"=:oct"206";
+ligtable "r": "z" kern -0.565u#;
+ligtable "x": "z" kern -0.565u#; % -sl 15-3-1991
+ligtable "l": "b" kern -0.71u#, "f" kern -0.85u#, "h" kern -0.71u#, "k" kern -0.71u#,
+"l" kern -0.71u#, "m" kern -0.85u#, "n" kern -0.85u#, "t" kern -u#, "x" kern -0.85u#,
+"y" kern -0.85u#;
+ligtable "L": "A" kern -1.7u#;
+ligtable "C": "I" kern -1.7u#, "J" kern -1.7u#, "K" kern -1.275u#;
+ligtable "D": "Y" kern -2u#;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yswabase.mf b/Master/texmf-dist/fonts/source/public/gothic/yswabase.mf
new file mode 100644
index 00000000000..6e9afdfa4d5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yswabase.mf
@@ -0,0 +1,103 @@
+def laimoc_swab =
+penpos1.1(stem,0); penpos1.3(stem,0);
+penpos1.4(hair,90); penpos1.5(hair,-90);
+y1.1=y1.1'=foot; x1.1l=x1.2=0.413stem;
+x1.1'=x1.4=0; x1.3=x1.1; x1.5=x1.1r+0.761stem;
+y1.5l=cap_height+apex_o;
+z1.5l-z1.4r=whatever*dir17;
+y1.3=0.828cap_height; y1.2=0.273cap_height;
+filldraw z1.1'...z1.2---z1.3l...
+z1.4l & z1.4l--z1.4r--z1.5l--z1.5r
+& z1.5r{left}...z1.3r---z1.1r &
+z1.1r--z1.1' & cycle enddef;
+
+def podi_swab (expr theta) =
+penpos2.1(1.304stem,theta);
+penpos2.2(1.304stem,theta);
+z2.1l=(0,foot);
+z2.1l-z2.2l=whatever*dir151;
+y2.2l=-apex_o; penpos2.3(hair,theta-90);
+z2.3r=z2.2;
+z2.05=(2/3apex_o,2/3apex_o);
+penpos2.1'(1.304stem,theta);
+z2.1'=0.5[z2.1,z2.2]+z2.05;
+penstroke z2.2e..z2.1'e..z2.1e
+enddef;
+
+def long_s = numeric w',h',d';
+w':=6.038u; h':=1.414x_height;
+d':=3.208u;
+penpos1.1(2/3hair,0);
+z1.1=(0.313w',-d');
+penpos1.2(1.283stem,0);
+z1.2=(0.344w',0.589h');
+penpos1.4(hair,90);
+z1.4l=(0,y1.2-1/3stem);
+z1.3=(z1.1l..{dir92.5}z1.2l)
+intersectionpoint
+((0,y1.4l)--(w',y1.4l));
+z1.5=(0.35w',0.761h');
+penpos1.6(0.957stem,-118);
+z1.6l=(0.669w',h');
+penpos1.7(1.174stem,-125);
+z1.7l=(w',0.962h'); penpos1.8(hair,-35);
+z1.8r=z1.7l; z1.9-z1.8l=whatever*(z1.7l-z1.7r);
+x1.9=0.9w';
+penpos1.11(2/3stem,-90); y1.11=y1.2;
+x1.11=0.763w';
+penpos1.12(2/3stem,-90); z1.12=z1.2;
+filldraw z1.1r..z1.2r{dir87} &
+z1.2r{dir126}..z1.5{up}..z1.6r{right}
+..z1.7r{right}--z1.8r--z1.8l--z1.9
+& z1.9{left}..z1.6l{left}..
+z1.4r{dir218}--z1.4l{right}--
+z1.3{dir272.5}..z1.1l--z1.1r & cycle;
+if isitf: filldraw z1.11r--z1.12r--
+z1.12l--z1.5{down}...(x1.2r,y1.11l){right}
+---z1.11l--z1.11r & cycle; fi
+enddef;
+
+def dexi_podi_swab (expr yy) =
+penpos1.2(stem,0);
+z1.2r=(1.63stem,0.694x_height);
+penpos1.1(whatever,24);
+penpos1.3(whatever,43);
+x1.1l=x1.2l; z1.3l=z1.2l;
+x1.1r=x1.2r=x1.3r; y1.1l=yy;
+penpos1.4(1.348stem,43);
+x1.4l=0; y1.4r=x_height+apex_o;
+penstroke z1.1e---z1.3e...
+z1.4e{dir133} enddef;
+
+def aristero_podi_swab (expr xx) =
+w':=5.057u; penpos2.1(stem,0);
+z2.1l=(xx+1.261stem,0.694x_height);
+penpos2.2(whatever,34);
+z2.2l=(x2.1l,-apex_o); x2.2r=xx+w';
+penpos2.3(hair,-90); z2.3r=z2.2r;
+z2.4=(x2.1r,0.378x_height);
+z2.6=(xx+0.545w',x_height+apex_o);
+penpos2.5(hair,-90);
+z2.5l-z2.6=whatever*dir-40;
+x2.5=xx+0.9w';
+penpos2.7(hair,-90);
+z2.6-z2.7l=whatever*dir33;
+x2.7=xx; z2.8-z2.7r=whatever*(z2.6-z2.7l);
+z2.8=whatever[z2.6,z2.5r];
+penpos2.9(1.217stem,33);
+z2.9r=z2.8;
+z2.9l-z2.11=whatever*(z2.6-z2.5l);
+x2.11=x2.1l;
+filldraw z2.7r--z2.9l--z2.11--
+z2.2l--z2.3r--z2.3l{z2.2l-z2.2r}..{up}
+z2.4---z2.1r...z2.5r{right}--
+z2.5l--z2.6--z2.7l--z2.7r &
+cycle enddef;
+
+def e_umlaut(suffix $) =
+penpos$.1(2u,45); z$.1=z$;
+pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30;
+z$.2=z$.1r; z$.3=z$.1l; rt x$.4=rt x$.2; top y$.4=y$;
+draw z$.3--z$.2..z$.3..z$.4;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yswablow.mf b/Master/texmf-dist/fonts/source/public/gothic/yswablow.mf
new file mode 100644
index 00000000000..383dfe5a669
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yswablow.mf
@@ -0,0 +1,700 @@
+.cmchar "The Schwabacher letter a";
+.beginchar("a",6.943u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.13stem,45);
+penpos3(stem,45); x1r=w; y1l=-apex_o;
+z3l=(0.337w,-apex_o);
+penpos2(hair,-45); z2r=z3;
+penpos4(hair,-45);
+z4-z2=whatever*dir45; x4r=x1l-hair;
+z5=whatever[z2r,z4r];
+z5-z1l=whatever*dir130;
+penpos11(0.913stem,29); z11l=(0,0.396h);
+penpos9(1.217stem,35);
+z9r=(0.658w,h+apex_o);
+penpos8(1.13stem,50);
+x8r=w; z9r-z8r=whatever*dir144;
+penpos7(cap_hair,angle(z8l-z9l));
+z7r=z8l; penpos10(cap_hair,angle(z7r-z7l));
+z10l=z9l;
+z6=(x7,0.459h);
+filldraw z1r{z5-z1l}..z6{up}...
+z8l---z8r--z9r---z9l...z11l{down}
+..z3l--z3r..z11r{up}..z10r{z9r-z9l}
+& z10r--z7l--z5--z1l--z1r & cycle;
+penstroke z2e--z4e;
+.endchar;
+
+.cmchar "The Schwabacher letter b";
+.beginchar("b",7.358u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+laimoc_swab; podi_swab(27);
+penpos3(1.087stem,27);
+z3=whatever[z2.1l,z2.1r]; x3r=w;
+penpos4(1.304stem,40);
+z4r=(0.711w,x_height+apex_o);
+penpos5(hair,-50);
+penpos6(hair,-50); z6l=z4;
+z6-z5=whatever*dir40; x5=x1.1;
+penstroke z2.3e{z2.2r-z2.2l}..
+z3e{up}..z4e;
+penstroke z5e--z6e;
+.endchar;
+
+.cmchar "The Schwabacher letter c";
+.beginchar("c",5.057u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.935stem,53);
+penpos2(whatever,34);
+z1r=(w,0.874h); y2r=h+apex_o;
+z2-z1=whatever*dir148;
+z2r-z1r=whatever*dir148;
+penpos3(hair,angle(z1l-z2l));
+z3l=z2l; penpos4(1.348stem,45);
+z4l=(0,0.45h); z5=(0.422w,-apex_o);
+penpos7(hair,-57);
+z7r-z5=whatever*dir33; x7r=w;
+z6=(0.627w,0.176h);
+penstroke z1e--z2e;
+filldraw z7l{z5-z7r}..z6{left}..
+z4r{up}..z3r{z2r-z2l} & z3r--z3l &
+z3l{z2l-z2r}..z4l{down}..z5 &
+z5--z7r--z7l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter d";
+.beginchar("d",7.208u#,1.383x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,109); penpos2(stem,205);
+z1=(0.524w,0.619h);
+z2r=(0,0.326h); z3=(0.429w,-apex_o);
+z4=(0.639w,0.107h);
+penpos5(hair,-67); x5=0.733w;
+z5r-z3=whatever*dir23;
+penpos6(0.978stem,39);
+z6r=(w,y2); z7=z1; penpos7(1.043stem,56.5);
+penpos8(1.109stem,7);
+z8l=(0.094w,0.821h);
+penpos9(hair,-90); z9l=(0.461w,h);
+filldraw z5r{z5r-z3}..z6r{up}..z7r
+..z8r{up}..z9r--z9l &
+z9l{left}..z8l{down}..z7l..z6l{down}
+..z5l{z3-z5r} & z5l--z5r & cycle;
+filldraw z1r{dir199}..z2r{down}..
+z3 & z3--z5r--z5l & z5l..z4{left}..
+z2l{up}..z1l{dir19} & z1l--z1r &
+cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter e";
+.beginchar("e",5.17u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-90); z1r=(0.934w,0.189h);
+z3=(0.642w,y1r); z2=(0.343w,-apex_o);
+penpos4(1.391stem,42); z4l=(0,0.459h);
+z5=(0.175w,0.874h);
+penpos6(hair,-57); penpos8(hair,-57);
+z6l=(0.693w,h+apex_o);
+z8=whatever[z6l,z6r]; x8r=w;
+penpos10(stem,angle(z6l-z5)); z10r=z6l;
+penpos7(hair,-57);
+z8-z7=whatever*dir33; x7=x4;
+penpos9(whatever,angle(z8r-z7r));
+z9r=z8r;
+z9l-z10l=whatever*(z8r-z10r);
+filldraw z1r--z2..z4l{up}...z5---
+z6l--z6r{z5-z6l}..z4r{down}..
+z3{right}..z1l{z1r-z2}--z1r & cycle;
+penstroke z7e--z8e;
+penstroke z9e--z10e;
+.endchar;
+
+.cmchar "The Schwabacher letter f";
+.beginchar("f",6.038u#,1.414x_height#,3.208u#);
+.adjust_fit(usual_left#,usual_right#-1.12u#);
+boolean isitf; isitf:=true; long_s; .endchar;
+
+.cmchar "The Schwabacher letter g";
+.beginchar("g",8.528u#,x_height#,3.623u#);
+.adjust_fit(usual_left#-0.35u#,usual_right#);
+penpos1(1.217stem,-130); z1r=(0,-2/3d);
+penpos2(hair,-90); z2l=z1r;
+penpos3(0.8stem,-130); z3r=(0.4w,-d);
+penpos3'(hair,-47);
+z3'=(0.704w,-0.594d);
+penpos4(1.283stem,49); z4=(0.832w,-0.5apex_o);
+penpos6(stem,0); z6=(x4-0.5stem,0.898h);
+penpos5(whatever,28); x5l=x6l;
+x5r=x6r; z9=(0.261w,0);
+z5-z9=whatever*dir28;
+penpos8(hair,-62); z8r=z5r;
+penpos10(stem,0);
+z10=(0.235w,y6);
+z9-z11=whatever*dir-62; x11=x10l;
+z9'-z8l=whatever*(z9-z8r);
+z9'=whatever[z11,z9]; z11'=(x10r,y11);
+z9''-z11'=whatever*(z9-z11);
+z9''=whatever[z9',z8l];
+penpos13(stem,-90); z13l=z10l;
+z12=(x10,h+apex_o); z7=(x6,h+apex_o);
+penpos14(whatever,-108); x14l=w;
+y14l=y13l; y14r=y13r;
+%
+%
+%
+filldraw z2r..z3r{right}..z3'r..z4r{up}
+..z5r--z5l..z4l{down}..z3'l..z3l{left}
+..z1l{dir140} & z1l--z2l--z2r &
+cycle;
+filldraw z9--z8r--z8l--z9''--z11'
+--z10r--z12--z10l--z11--z9 & cycle;
+filldraw z5l--z6l--z7--z6r--z5r--
+z5l & cycle;
+penstroke z13e--z14e;
+.endchar;
+
+.cmchar "The Schwabacher letter h";
+.beginchar("h",7.585u#,cap_height#,3.358u#);
+.adjust_fit(usual_left#,usual_right#);
+laimoc_swab; z2=(0.279w,-apex_o);
+penpos3(hair,-90); z3r=(0.547w,y1.1);
+z4=(0.428w,y1.1); z5=(x1.1r,y1.2);
+filldraw z1.1'--z2--z3r--z3l
+{z2-z3r}..z4{left}..z5{up}--z1.1--
+z1.1' & cycle;
+%
+%
+%
+penpos6(hair,-40); penpos8(1.217stem,50);
+penpos9(1.043stem,24);
+penpos10(hair,-45);
+z10r=(x5,-d); z9r=(w,0.459x_height);
+z7=(0.582w,x_height+apex_o);
+x6=x1.1; z7-z6l=whatever*dir50;
+z8r=z7;
+penpos8'(hair,-40); z8'l=z8;
+penstroke z6e--z8'e;
+penstroke z10e{dir45}..z9e{up}..
+z8e{dir140};
+.endchar;
+
+.cmchar "The Schwabacher letter i";
+.beginchar("i",4u#,1.387x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); penpos2(1.739stem,0);
+penpos3(0.5hair,90); penpos4(0.5hair,-90);
+z2l=(0,0.815x_height); x1=x2;
+y1=0.252x_height; z3l=z2l; z4r=z2r;
+z5=(x1,x_height+apex_o);
+penpos1'(stem,0); x1'=x1; y1'=0.7x_height;
+filldraw z1r---z1'r...{right}z2r--z4l--z5--
+z3r--z2l{right}...z1'l---z1l--z1r & cycle;
+%
+% teleia
+%
+penpos6(hair,145);
+z6=(0.375[x2l,x2r],1.090x_height);
+z7=(0.875[x2l,x2r],1.387x_height);
+z8=(1.125[x2l,x2r],1.324x_height);
+filldraw z6l{dir34}..z8{up}..z7{left}
+..z6r{dir259}--z6l & cycle;
+%
+% podi tou i
+%
+penpos9(hair,90); penpos11(hair,-90);
+z9r=(0,foot); z11r=(w,foot);
+z12=(0.717w,foot); z10=(0.472w,-apex_o);
+filldraw z1l{down}..z9r{left}--z9l
+--z10--z11r--z11l{z10-z11r}..z12{left}
+..z1r{up} & z1r--z1l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter j";
+.beginchar("j",3.283u#,1.387x_height#,2.943u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); penpos2(1.739stem,0);
+penpos3(0.5hair,90); penpos4(0.5hair,-90);
+z2l=(0,0.815x_height); x1=x2;
+y1=0.252x_height; z3l=z2l; z4r=z2r;
+z5=(x1,x_height+apex_o);
+penpos1'(stem,0); x1'=x1; y1'=0.7x_height;
+filldraw z1r---z1'r...{right}z2r--z4l--z5--
+z3r--z2l{right}...z1'l---z1l--z1r & cycle;
+%
+% teleia
+%
+penpos6(hair,145);
+z6=(0.375[x2l,x2r],1.090x_height);
+z7=(0.875[x2l,x2r],1.387x_height);
+z8=(1.125[x2l,x2r],1.324x_height);
+filldraw z6l{dir34}..z8{up}..z7{left}
+..z6r{dir259}--z6l & cycle;
+%
+% podi tou j
+%
+penpos9(hair,0); z9l=(0,-d);
+penpos10(stem,0); z10=(x1,0);
+filldraw z9l{z10r-z9r}...z10l---
+z1l--z1r--z10r--z9r--z9l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter k";
+.beginchar("k",6.189u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+laimoc_swab;
+penpos10(1.305hair,-90); z10=(x1.2,x_height);
+penpos20(hair,-50);
+penpos3(1.087stem,40); z3r=z20l;
+z3-z10l=whatever*dir40;
+y20l=1.423x_height; penpos4(0.957stem,37);
+z4r=(w,1.194x_height);
+penpos6(0.957stem,-117);
+z6l=(w-2/3apex_o,x_height-apex_o);
+penpos8(whatever,-90);
+y8l=y6l; y8r=y6r; z7=(0,y6r);
+z8l-z7=whatever*dir48;
+penpos5(hair,-90);z5r=(x1.1r,y6r);
+penstroke z10e--z20e;
+penstroke z5e{dir40}..z4e{up}..
+z3e{dir130};
+filldraw z7--z6r--z6l--z8l--z7 &
+cycle;
+podi_swab(37);
+penpos11(hair,angle(z2.3r-z2.3l));
+z11-z2.3=whatever*dir37;
+x11r=0.921w;
+penstroke z2.3e--z11e;
+.endchar;
+
+.cmchar "The Schwabacher letter l";
+.beginchar("l",4.149u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+laimoc_swab; w:=7.585u;
+z2=(0.279w,-apex_o);
+penpos3(hair,-90); z3r=(0.547w,y1.1);
+z4=(0.428w,y1.1); z5=(x1.1r,y1.2);
+filldraw z1.1'--z2--z3r--z3l
+{z2-z3r}..z4{left}..z5{up}--z1.1--
+z1.1' & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter m";
+.beginchar("m",11.925u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+dexi_podi_swab(-apex_o);
+penpos3(stem,0); z3=(1/2w,y1.2);
+aristero_podi_swab (x3r);
+z0=z2.1r-z3r;
+penpos4(hair,-90); y4=y2.7;
+x4=x1.2r;
+z5=z2.6-z0; z6=z2.8-z0;
+z8=z2.11-z0; penpos7(1.217stem,33);
+z7=z2.9-z0;
+z9=whatever[z5,z6]; x9=x3r;
+filldraw z4r--z7l--z8--z3l--
+z3r--z9--z5--z4l--z4r & cycle;
+penpos10(whatever,24);
+z10l=(x3l,-apex_o); x10r=x3r;
+penstroke z10e--z3e;
+.endchar;
+
+.cmchar "The Schwabacher letter n";
+.beginchar("n",7.925u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+dexi_podi_swab(-apex_o);
+aristero_podi_swab (x1.2r);
+.endchar;
+
+.cmchar "The Schwabacher letter o";
+.beginchar("o",7.849u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,0); z1=(0.428w,-apex_o);
+penpos4(1.326stem,53); z4l=z1;
+penpos2(1.065stem,47);
+z2l=(0,0.491h);
+penpos6(hair,angle((w,0)-(0,h)));
+z6=whatever[(w,0),(0,h)];
+x6=0.202w;
+penpos7(hair,angle((w,0)-(0,h)));
+z7=whatever[(w,0),(0,h)];
+x7=0.798w;
+z6'=((0,h)--(w,0)) intersectionpoint
+((x2r,0)--(x2r,h));
+z7'=((0,h)--(w,0)) intersectionpoint
+((0,y4r)--(w,y4r));
+penpos5(whatever,-133);
+z5=whatever[z2l,z2r]; y5r=y6';
+y5l=h+2apex_o;
+penpos3(whatever,40);
+x3l=x7'; x3r=w; y3r=0.563h;
+%
+%
+%
+filldraw z1r{dir45}..z3r{up}..
+z5l{dir150}--z5r{right}..z3l{down}
+..z4r{left}..z2r{up}..z6r..
+z5r{right}--z5l & z5l{z5r-z5l}
+..z6l..z2l{down}..z1l{dir-45}--z1r
+& cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter p";
+.beginchar("p",8.151u#,x_height#,3.057u#);
+.adjust_fit(usual_left#,usual_right#);
+dexi_podi_swab(-apex_o);
+z2=(0.457[x1.1l,x1.1r],-d);
+filldraw z2..z1.1l{up}--z1.1r{down}
+..z2 & cycle;
+penpos3(1.152stem,36);
+penpos4(1.152stem,36);
+z3l=(0.574w,0);
+z4-z3=whatever*dir157;
+x4=x1.1l;
+penstroke z3e--z4e;
+penpos6(1.217stem,36); z6r=(w,0.586h);
+penpos5(hair,angle(z3r-z4r));
+z5r=z3r; penpos7(1.196stem,45);
+z7r=(0.722w,h+apex_o);
+penpos8(hair,-45);
+z8l=z7; penpos9(hair,-45);
+z8-z9=whatever*dir45; x9=x2;
+penstroke z9e--z8e;
+penstroke z5e{z3r-z3l}..z6e{up}..
+z7e{dir135};
+.endchar;
+
+.cmchar "The Schwabacher letter q";
+.beginchar("q",7.774u#,x_height#,3.057u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); z1=(0.791w,0.1h);
+penpos7(1.174stem,18); z7l=(0,0.523h);
+penpos5(1.196stem,30);
+x5l=x7r; y5r=h+apex_o;
+penpos4(2/3hair,-90); x4=w;
+z5r-z4l=whatever*dir155;
+penpos3(whatever,30); z3r=z4r;
+z3l-z5l=whatever*(z4l-z5r);
+penpos11(stem,0); z11=(x1,y4);
+z2=(x1,-d); penpos2(eps,0);
+penstroke z2e...z1e---z11e;
+filldraw z5l--z3l--z4r--z4l &
+flex(z4l,0.5[z5r,z4l]-
+(apex_o,apex_o),z5r) &
+z5r--z5l & cycle;
+penpos8(1.152stem,40);
+z8l=(0.379w,0);
+penpos6(hair,angle(z3l-z5l));
+z6l=z5l; penpos9(hair,-50);
+penpos10(hair,-50);
+z9r=z8; z10-z9=whatever*dir40;
+x10=x1;
+penstroke z8e{dir130}..z7e{up}..
+z6e{z5r-z5l};
+penstroke z9e--z10e;
+.endchar;
+
+.cmchar "The Schwabacher letter r";
+.beginchar("r",6.038u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.152stem,35);
+penpos2(1.152stem,35);
+x2l=0; z1l=(1.5stem,-apex_o);
+z2-z1=whatever*dir148;
+penpos3(hair,-55); penpos4(hair,-55);
+z3r=z1; z4r=whatever[z1l,z1r];
+x4=0.813w;
+dexi_podi_swab(y2l-hair);
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+%
+%
+%
+penpos7(2/3hair,-90);
+penpos6(hair,-55);
+penpos10(hair,-55);
+z6l=(0.838w,h+apex_o);
+z6-z10=whatever*dir35; x10=x1.1;
+z7l-z6l=whatever*dir-45; x7=w;
+z7r-z8=whatever*dir45;
+x8=0.825w; z9-z8=whatever*(z6l-z7l);
+z9=whatever[z10r,z6r];
+penstroke z10e--z6e;
+filldraw z6l--z7l--z7r--z8--z9--
+z6l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher long s";
+.beginchar("s",6.038u#,1.414x_height#,3.208u#);
+.adjust_fit(usual_left#,usual_right#-2.33u#);
+boolean isitf; isitf:=false; long_s;
+.endchar;
+
+.cmchar "The Schwabacher short s";
+.beginchar(oct"215",6.34u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1'(hair,-40); penpos2(hair,-40);
+z1'l=(0,0.108h); z2r=(w-0.5apex_o,0.919h);
+penpos1(whatever,0); z1l=z1'l;
+z1r=whatever[z1'r,z2r];
+penstroke z1e--z2e;
+penpos5(0.826stem,37); z5r=(w,0.387h);
+penpos6(whatever,0);
+z6l=whatever[z1l,z2l];
+z6r=whatever[z1r,z2r]; y6=0.275h;
+z7=whatever[z1r,z2r]; x7=0.488w;
+z8=whatever[z1r,z2r]; x8=0.702w;
+z3=(0.435w,-apex_o);
+penpos4(hair,-55);
+z4r-z3=whatever*dir35; x4=0.774w;
+penpos9(0.6stem,90); z9l=z1l;
+filldraw z1l---z1r...{dir-28}z3 &
+z3---z4r...z5r{up}..z8 & z8--z7
+{right}..z5l{down}..z4l{z3-z4r}
+..z6r{z1r-z3}--z6l{z1-z2}..
+z9r{left}--z1l & cycle;
+%
+%
+%
+penpos10(0.913stem,37);
+z10l=(0,0.613h); z12=(0.524w,h+apex_o);
+penpos11(hair,-53);
+z12-z11l=whatever*dir37; x11l=x10r+0.5apex_o;
+z15=0.488[z1l,z2l];
+z14=0.736[z1l,z2l];
+z13=(0.827w,y2r);
+filldraw z6l{z2l-z1l}..z10l{up}
+...z11l---z12 & z12{dir-30}..z13{right}..
+z2l{z2-z1} & z2l--z2r--z14 &
+z14{z12-z13}..z11r{z11l-z12}..z10r{down}
+..z15{z2r-z2l}--z6l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter t";
+.beginchar("t",5.66u#,1.27x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.152stem,35);
+penpos2(1.152stem,35);
+x2l=hair; z1l=(1.826stem,-apex_o);
+z2-z1=whatever*dir148;
+penpos3(hair,-55); penpos4(hair,-55);
+z3r=z1; z4r=whatever[z1l,z1r];
+x4r=w;
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+%
+%
+%
+penpos5(stem,0); z5r=(x1l-apex_o,y2l);
+penpos6(stem,0); z6=(x5,0.811x_height);
+penpos7(0.826stem,-90);
+z7r=(w,y6); z8=(0,y6); z9=(x6r,h);
+filldraw z5l--z6l--z8--z9--(x9,y7l)
+--z7l--z7r--z6r--z5r--z5l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter u";
+.beginchar("u",7.849u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.283stem,35);
+penpos2(1.283stem,35);
+z1l=(0.337w,-apex_o);
+z2-z1=whatever*dir142; x2=0.168w;
+penpos3(hair,-55); penpos4(hair,-55);
+z3r=z1; z4-z3=whatever*dir35;
+penpos8(stem,0); x8=0.798w=x4;
+z8l=whatever[z3r,z4r];
+penpos10(stem,0); z10=(x2+0.5stem-apex_o,y2l);
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+z11=(x10l,0.775h); z12=(0.478[x10l,x10r],h+apex_o);
+penpos13(hair,-90); x13=0;
+z12-z13l=whatever*dir33;
+filldraw z13r{z12-z13l}...z11---
+z10l--z10r---(x10r,y11)...z12
+& z12--z13l--z13r & cycle;
+%
+%
+%
+z5=(0.609[x8l,x8r],-apex_o);
+penpos9(whatever,24);
+y9r=h+apex_o; x9l=x8l; x9r=x8r;
+penpos6(eps,-90);
+z6r-z5=whatever*dir43;
+x6=w; z7=whatever[z1l,z1r]; x7=x8r;
+filldraw z5...z8l---z9l--z9r---
+z7...z6l--z6r--z5 & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter v";
+.beginchar("v",8.302u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.261stem,37);
+penpos2(1.261stem,45);
+penpos4(1.261stem,38);
+penpos3(1/3hair,-52);
+x1l=0; y1r=h+apex_o; z2=(0.295w,0.586h);
+z4=(0.145w,0.239h); z3r=z4l;
+filldraw z3r--z4r..z2r{up}..z1r--
+z1l..z2l{down}..z3l{z4l-z4r}--
+z3r & cycle;
+%
+%
+%
+penpos5(whatever,48); z5l=(0.473w,-apex_o);
+z5r-z4r=whatever*(z5l-z4l);
+penpos6(1.174stem,34); z6r=(w,0.631h);
+z8=(0.695w,h+apex_o);
+penpos9(hair,-55);
+z8-z9l=whatever*dir35; x9=x2;
+x7=0.518w; z7=whatever[z2l,z8];
+filldraw z9r{z8-z9l}..z7{right}..
+z6l{down}...z5r---z5l & z5l{dir39}..
+z6r{up}..z8--z9l--z9r & cycle;
+penstroke z5e--z4e;
+.endchar;
+
+.cmchar "The Schwabacher letter w";
+.beginchar("w",12.604u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+podi_swab(36);
+dexi_podi_swab(foot);
+unfilldraw (0,0)--(hair,0)--
+(hair,0.5h)--(0,0.5h)--(0,0) &
+cycle;
+penpos3(hair,-54); penpos4(stem,0);
+z3-z2.3=whatever*dir36;
+x4=0.539w; z4l-z2.3=whatever*dir36;
+x3=x4; penpos15(whatever,28);
+x15l=x4l; x15r=x4r;
+penpos8(1.304stem,42);
+z8r=(0.796w,h+apex_o);
+z15r=whatever[z8l,z8r];
+penpos9(hair,-48);
+z8-z9l=whatever*dir42; x9=x4;
+penpos13(hair,-48); z13l=z8;
+penstroke z2.3e--z3e;
+penpos6(1.174stem,37);
+z6r=(0.431w,h+apex_o);
+penpos5(hair,-53); z6-z5l=whatever*dir37;
+x5=x1.1; penpos14(hair,-53); z14l=z6;
+penstroke z5e--z14e;
+penstroke z4e---z15e...z6e{dir147};
+penpos10(1.087stem,31.5);
+z10l=(x8l,-apex_o); penpos10'(whatever,36);
+z10'r-z10r=whatever*dir142;
+z10'l-z10l=whatever*dir142;
+z10'=whatever[z2.3,z3];
+penstroke z10e--z10'e;
+penpos11(hair,-58.5);
+z11r=z10; penpos12(1.304stem,43);
+z12r=(w,0.595h);
+penstroke z9e--z13e;
+penstroke z11e{z10r-z10l}..z12e{up}
+..z8e{dir148};
+.endchar;
+
+.cmchar "The Schwabacher letter x";
+.beginchar("x",6.038u#,x_height#,3.019u#);
+.adjust_fit(usual_left#,usual_right#);
+dexi_podi_swab(0.162h);
+penpos1(1.043stem,45);
+penpos2(1.043stem,45);
+x2l=x1.1l; z1l=(0.606w,-apex_o);
+z2-z1=whatever*dir153;
+penpos3(hair,-45); penpos4(hair,-45);
+z3r=z1; z4r=whatever[z1l,z1r];
+x4r=w-apex_o;
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+%
+%
+%
+penpos7(2/3hair,-90);
+penpos6(hair,-55);
+penpos10(hair,-55);
+z6l=(0.838w,h+apex_o);
+z6-z10=whatever*dir35; x10=x1.1;
+z7l-z6l=whatever*dir-45; x7=w;
+z7r-z8=whatever*dir45;
+x8=0.825w; z9-z8=whatever*(z6l-z7l);
+z9=whatever[z10r,z6r];
+penstroke z10e--z6e;
+filldraw z6l--z7l--z7r--z8--z9--
+z6l & cycle;
+%
+%
+%
+penpos11(0.783stem,0);
+z11l=z1.1l+(0,apex_o);
+penpos12(hair,0); z12r=(0,-d);
+penstroke z12e{dir63}..z11e{up};
+.endchar;
+
+.cmchar "The Schwabacher letter y";
+.beginchar("y",7.585u#,x_height#,3.547u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.2hair,0); penpos2(1.2hair,0);
+z2=(0.896w,0.649h);
+z2-z1=whatever*dir62; y1=-d;
+penstroke z1e--z2e;
+penpos3(1.522stem,62);
+penpos4(1.522stem,62);
+z3=whatever[z1,z2]; y3=0;
+z4-z3=whatever*dir107; x4=0.25w;
+penpos5(1.174stem,55); y5r=h+apex_o;
+x5l=0;
+penstroke z3e---z4e...z5e;
+%
+%
+%
+penpos9(0.565stem,0); z9r=z2r;
+penpos6(whatever,42); z6l=z9l;
+x6r=w; penpos7(1.087stem,53);
+z7r=(0.7w,h+apex_o);
+penpos8(hair,151); z8=whatever[z3,z4];
+x8=0.31w; z9'=whatever[z1l,z2l];
+y9'=y8l;
+filldraw z9'{z2-z1}..%z6l{up}..
+z7l{left}..z8l{z1-z2}--z8r{z2-z1}
+..z7r{right}..z6r{down}..z9r{z1-z2}
+--z9' & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter z";
+.beginchar("z",5.358u#,x_height#,3.321u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.87stem,-139);
+penpos2(0.85stem,-139);
+penpos3(1.043stem,41);
+z1r=(0,-0.682d); z2r=(0.239w,-d);
+x3r=w; y3l=0; z4=(0.38w,0.261h);
+penpos6(hair,-38);
+z5-z6l=whatever*dir45; x5=0.577w;
+z6=(0.12w,0.189h);
+penpos2'(hair,-45);
+z2'=(0.648w,-0.625d);
+penstroke z1e{dir-49}..
+z2e{right}..z2'e..z3e{up};
+filldraw z3r{up}..z5{dir142} &
+z5--z6l--z6r{z5-z6l}..z4{right}..
+z3l{down} & z3l--z3r & cycle;
+%
+%
+%
+penpos7(hair,-38); penpos8(hair,-38);
+penpos9(hair,-38); penpos10(hair,-38);
+z9r=z5; z7-z9=whatever*dir45;
+z8-z10=whatever*dir45;
+x10l=0; y8l=h+apex_o; x7r=0.93w;
+x8=0.479w;
+penstroke z10e--z8e;
+penpos11(1.217stem,45); z11l=z9l;
+penpos12(1.217stem,45);
+z12-z11=whatever*(z8-z7);
+z12=whatever[z10r,z8r];
+penstroke z9e--z7e;
+penstroke z11e--z12e;
+z9'=whatever[z6l,z5]; x9'=x8l;
+filldraw z6l{z5-z6l}..z9l{z11r-z11l}
+--z9r--z6l & cycle;
+.endchar; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yswabmis.mf b/Master/texmf-dist/fonts/source/public/gothic/yswabmis.mf
new file mode 100644
index 00000000000..8e0ace7c38c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yswabmis.mf
@@ -0,0 +1,1300 @@
+cmchar "The Schwabacher exclamation point";
+beginchar("!",5u#+width_adj#,x_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; %dot(3,4); % dot
+penpos10(stem,45); penpos11(stem,45);
+penpos10'(stem,-45);
+x10l=x3; z10l=z10'r; z11l=z10'l;
+y10l=-apex_o; penstroke z10e--z11e;
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.2[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+.cmchar "The schwabacher question mark";
+.beginchar("?",4.83u#,1.027x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,45); penpos1'(stem,-45);
+penpos2(stem,45);
+z1l=(0.5w,-apex_o); z1'r=z1l;
+z2l=z1'l;
+penstroke z1e--z2e;
+penpos3(hair,-8); penpos4(hair,-8);
+z3l=(0.086w,0.289h);
+z4l-z3l=whatever*dir82; y4l=0.539h;
+penpos5(0.87stem,-98);
+penpos6(0.87stem,-98);
+z5l=z4l; z8'=(w,0.798h);
+z8'-z6=whatever*dir82;
+z6l=whatever[z4l,z4r];
+penpos7(hair,-8); z7r=z6r;
+penpos9(0.87stem,82); z9r=z8';
+penpos8(whatever,0); z8r=z8';
+z8l-z7l=whatever*(z8r-z7r);
+penstroke z5e--z6e;
+penstroke z3e--z4e;
+penstroke z7e--z8e;
+penpos10(whatever,74);
+z10r-z8r=whatever*dir159;
+z10l-z9l=whatever*dir159;
+x10l=0; penpos11(hair,0); z11l=(0,1.088h);
+penstroke z9e--z10e;
+filldraw z10l--z11l--z11r--z10r--z10l
+& cycle;
+.endchar;
+
+.cmchar "The Schwabacher comma";
+.beginchar(",",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+%penstroke z1e--z2e;
+penpos10(0.11785*(x_height+2apex_o),-30);
+z10l=(x2l-apex_o,-1.3y2r);
+filldraw z10l--z2l+(hair,0){up}..{down}
+z1r--z10r--z10l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher Umlaut";
+.beginchar(oct"175",6u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+y0=0; 0.5[x60,x62']=0.5w;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,1.090x_height);
+z61=(x0+1.522stem,1.387x_height);
+z62=(x0+1.956stem,1.324x_height);
+z60'=(x0'+stem,1.090x_height);
+z61'=(x0'+1.522stem,1.387x_height);
+z62'=(x0'+1.956stem,1.324x_height);
+filldraw z60l{dir34}..z62{up}..z61{left}
+..z60r{dir259}--z60l & cycle;
+penpos60'(hair,145);
+filldraw z60'l{dir34}..z62'{up}..z61'{left}
+..z60'r{dir259}--z60'l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher dotless i";
+.beginchar(oct"020",4u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); penpos2(1.739stem,0);
+penpos3(0.5hair,90); penpos4(0.5hair,-90);
+z2l=(0,0.815x_height); x1=x2;
+y1=0.252x_height; z3l=z2l; z4r=z2r;
+z5=(x1,x_height+apex_o);
+penpos1'(stem,0); x1'=x1; y1'=0.7x_height;
+filldraw z1r---z1'r...{right}z2r--z4l--z5--
+z3r--z2l{right}...z1'l---z1l--z1r & cycle;
+%
+% podi tou i
+%
+penpos9(hair,90); penpos11(hair,-90);
+z9r=(0,foot); z11r=(w,foot);
+z12=(0.717w,foot); z10=(0.472w,-apex_o);
+filldraw z1l{down}..z9r{left}--z9l
+--z10--z11r--z11l{z10-z11r}..z12{left}
+..z1r{up} & z1r--z1l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher dotless j";
+.beginchar(oct"021",3.019u#,x_height#,2.943u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(stem,0); penpos2(1.739stem,0);
+penpos3(0.5hair,90); penpos4(0.5hair,-90);
+z2l=(0,0.815x_height); x1=x2;
+y1=0.252x_height; z3l=z2l; z4r=z2r;
+z5=(x1,x_height+apex_o);
+penpos1'(stem,0); x1'=x1; y1'=0.7x_height;
+filldraw z1r---z1'r...{right}z2r--z4l--z5--
+z3r--z2l{right}...z1'l---z1l--z1r & cycle;
+%
+% podi tou j
+%
+penpos9(hair,0); z9l=(0,-d);
+penpos10(stem,0); z10=(x1,0);
+filldraw z9l{z10r-z9r}...z10l---
+z1l--z1r--z10r--z9r--z9l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter a with Umlaut";
+.beginchar(oct"212",6.943u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.13stem,45);
+penpos3(stem,45); x1r=w; y1l=-apex_o;
+z3l=(0.337w,-apex_o);
+penpos2(hair,-45); z2r=z3;
+penpos4(hair,-45);
+z4-z2=whatever*dir45; x4r=x1l-hair;
+z5=whatever[z2r,z4r];
+z5-z1l=whatever*dir130;
+penpos11(0.913stem,29); z11l=(0,0.396h);
+penpos9(1.217stem,35);
+z9r=(0.658w,h+apex_o);
+penpos8(1.13stem,50);
+x8r=w; z9r-z8r=whatever*dir144;
+penpos7(cap_hair,angle(z8l-z9l));
+z7r=z8l; penpos10(cap_hair,angle(z7r-z7l));
+z10l=z9l;
+z6=(x7,0.459h);
+filldraw z1r{z5-z1l}..z6{up}...
+z8l---z8r--z9r---z9l...z11l{down}
+..z3l--z3r..z11r{up}..z10r{z9r-z9l}
+& z10r--z7l--z5--z1l--z1r & cycle;
+penstroke z2e--z4e;
+%
+%
+%
+y0=0; x62'=w;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,1.090x_height);
+z61=(x0+1.522stem,1.387x_height);
+z62=(x0+1.956stem,1.324x_height);
+z60'=(x0'+stem,1.090x_height);
+z61'=(x0'+1.522stem,1.387x_height);
+z62'=(x0'+1.956stem,1.324x_height);
+filldraw z60l{dir34}..z62{up}..z61{left}
+..z60r{dir259}--z60l & cycle;
+penpos60'(hair,145);
+filldraw z60'l{dir34}..z62'{up}..z61'{left}
+..z60'r{dir259}--z60'l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter e with Umlaut";
+.beginchar(oct"221",5.17u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-90); z1r=(0.934w,0.189h);
+z3=(0.642w,y1r); z2=(0.343w,-apex_o);
+penpos4(1.391stem,42); z4l=(0,0.459h);
+z5=(0.175w,0.874h);
+penpos6(hair,-57); penpos8(hair,-57);
+z6l=(0.693w,h+apex_o);
+z8=whatever[z6l,z6r]; x8r=w;
+penpos10(stem,angle(z6l-z5)); z10r=z6l;
+penpos7(hair,-57);
+z8-z7=whatever*dir33; x7=x4;
+penpos9(whatever,angle(z8r-z7r));
+z9r=z8r;
+z9l-z10l=whatever*(z8r-z10r);
+filldraw z1r--z2..z4l{up}...z5---
+z6l--z6r{z5-z6l}..z4r{down}..
+z3{right}..z1l{z1r-z2}--z1r & cycle;
+penstroke z7e--z8e;
+penstroke z9e--z10e;
+%
+%
+%
+y0=0; x62'=w;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,1.090x_height);
+z61=(x0+1.522stem,1.387x_height);
+z62=(x0+1.956stem,1.324x_height);
+z60'=(x0'+stem,1.090x_height);
+z61'=(x0'+1.522stem,1.387x_height);
+z62'=(x0'+1.956stem,1.324x_height);
+filldraw z60l{dir34}..z62{up}..z61{left}
+..z60r{dir259}--z60l & cycle;
+penpos60'(hair,145);
+filldraw z60'l{dir34}..z62'{up}..z61'{left}
+..z60'r{dir259}--z60'l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter o with Umlaut";
+.beginchar(oct"232",7.849u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,0); z1=(0.428w,-apex_o);
+penpos4(1.326stem,53); z4l=z1;
+penpos2(1.065stem,47);
+z2l=(0,0.491h);
+penpos6(hair,angle((w,0)-(0,h)));
+z6=whatever[(w,0),(0,h)];
+x6=0.202w;
+penpos7(hair,angle((w,0)-(0,h)));
+z7=whatever[(w,0),(0,h)];
+x7=0.798w;
+z6'=((0,h)--(w,0)) intersectionpoint
+((x2r,0)--(x2r,h));
+z7'=((0,h)--(w,0)) intersectionpoint
+((0,y4r)--(w,y4r));
+penpos5(whatever,-133);
+z5=whatever[z2l,z2r]; y5r=y6';
+y5l=h+2apex_o;
+penpos3(whatever,40);
+x3l=x7'; x3r=w; y3r=0.563h;
+%
+%
+%
+filldraw z1r{dir45}..z3r{up}..
+z5l{dir150}--z5r{right}..z3l{down}
+..z4r{left}..z2r{up}..z6r..
+z5r{right}--z5l & z5l{z5r-z5l}
+..z6l..z2l{down}..z1l{dir-45}--z1r
+& cycle;
+%
+%
+%
+y0=0; 0.5[x60,x60']=x5l-hair;
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,1.090x_height);
+z61=(x0+1.522stem,1.387x_height);
+z62=(x0+1.956stem,1.324x_height);
+z60'=(x0'+stem,1.090x_height);
+z61'=(x0'+1.522stem,1.387x_height);
+z62'=(x0'+1.956stem,1.324x_height);
+filldraw z60l{dir34}..z62{up}..z61{left}
+..z60r{dir259}--z60l & cycle;
+penpos60'(hair,145);
+filldraw z60'l{dir34}..z62'{up}..z61'{left}
+..z60'r{dir259}--z60'l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter u with Umlaut";
+.beginchar(oct"237",7.849u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.283stem,35);
+penpos2(1.283stem,35);
+z1l=(0.337w,-apex_o);
+z2-z1=whatever*dir142; x2=0.168w;
+penpos3(hair,-55); penpos4(hair,-55);
+z3r=z1; z4-z3=whatever*dir35;
+penpos8(stem,0); x8=0.798w=x4;
+z8l=whatever[z3r,z4r];
+penpos10(stem,0); z10=(x2+0.5stem-apex_o,y2l);
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+z11=(x10l,0.775h); z12=(0.478[x10l,x10r],h+apex_o);
+penpos13(hair,-90); x13=0;
+z12-z13l=whatever*dir33;
+filldraw z13r{z12-z13l}...z11---
+z10l--z10r---(x10r,y11)...z12
+& z12--z13l--z13r & cycle;
+%
+%
+%
+z5=(0.609[x8l,x8r],-apex_o);
+penpos9(whatever,24);
+y9r=h+apex_o; x9l=x8l; x9r=x8r;
+penpos6(eps,-90);
+z6r-z5=whatever*dir43;
+x6=w; z7=whatever[z1l,z1r]; x7=x8r;
+filldraw z5...z8l---z9l--z9r---
+z7...z6l--z6r--z5 & cycle;
+%
+%
+%
+y0=0; 0.5[x60,x60']=0.5[x10,x9];
+z0'=z0+(2.5u,0);
+penpos60(hair,145);
+z60=(x0+stem,1.090x_height);
+z61=(x0+1.522stem,1.387x_height);
+z62=(x0+1.956stem,1.324x_height);
+z60'=(x0'+stem,1.090x_height);
+z61'=(x0'+1.522stem,1.387x_height);
+z62'=(x0'+1.956stem,1.324x_height);
+filldraw z60l{dir34}..z62{up}..z61{left}
+..z60r{dir259}--z60l & cycle;
+penpos60'(hair,145);
+filldraw z60'l{dir34}..z62'{up}..z61'{left}
+..z60'r{dir259}--z60'l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter a with variant Umlaut";
+.beginchar(oct"211",6.943u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.13stem,45);
+penpos3(stem,45); x1r=w; y1l=-apex_o;
+z3l=(0.337w,-apex_o);
+penpos2(hair,-45); z2r=z3;
+penpos4(hair,-45);
+z4-z2=whatever*dir45; x4r=x1l-hair;
+z5=whatever[z2r,z4r];
+z5-z1l=whatever*dir130;
+penpos11(0.913stem,29); z11l=(0,0.396h);
+penpos9(1.217stem,35);
+z9r=(0.658w,h+apex_o);
+penpos8(1.13stem,50);
+x8r=w; z9r-z8r=whatever*dir144;
+penpos7(cap_hair,angle(z8l-z9l));
+z7r=z8l; penpos10(cap_hair,angle(z7r-z7l));
+z10l=z9l;
+z6=(x7,0.459h);
+filldraw z1r{z5-z1l}..z6{up}...
+z8l---z8r--z9r---z9l...z11l{down}
+..z3l--z3r..z11r{up}..z10r{z9r-z9l}
+& z10r--z7l--z5--z1l--z1r & cycle;
+penstroke z2e--z4e;
+%
+%
+%
+y0=x_height+2u; x0=0.5w;
+z0'=z0+(u,0);
+e_umlaut(0');
+.endchar;
+
+.cmchar "The Schwabacher letter e with variant Umlaut";
+.beginchar(oct"220",5.17u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-90); z1r=(0.934w,0.189h);
+z3=(0.642w,y1r); z2=(0.343w,-apex_o);
+penpos4(1.391stem,42); z4l=(0,0.459h);
+z5=(0.175w,0.874h);
+penpos6(hair,-57); penpos8(hair,-57);
+z6l=(0.693w,h+apex_o);
+z8=whatever[z6l,z6r]; x8r=w;
+penpos10(stem,angle(z6l-z5)); z10r=z6l;
+penpos7(hair,-57);
+z8-z7=whatever*dir33; x7=x4;
+penpos9(whatever,angle(z8r-z7r));
+z9r=z8r;
+z9l-z10l=whatever*(z8r-z10r);
+filldraw z1r--z2..z4l{up}...z5---
+z6l--z6r{z5-z6l}..z4r{down}..
+z3{right}..z1l{z1r-z2}--z1r & cycle;
+penstroke z7e--z8e;
+penstroke z9e--z10e;
+%
+%
+%
+y0=x_height+2u; x0=0.5w;
+z0'=z0+(u,0);
+e_umlaut(0');
+.endchar;
+
+.cmchar "The Schwabacher letter o with variant Umlaut";
+.beginchar(oct"231",7.849u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(hair,0); z1=(0.428w,-apex_o);
+penpos4(1.326stem,53); z4l=z1;
+penpos2(1.065stem,47);
+z2l=(0,0.491h);
+penpos6(hair,angle((w,0)-(0,h)));
+z6=whatever[(w,0),(0,h)];
+x6=0.202w;
+penpos7(hair,angle((w,0)-(0,h)));
+z7=whatever[(w,0),(0,h)];
+x7=0.798w;
+z6'=((0,h)--(w,0)) intersectionpoint
+((x2r,0)--(x2r,h));
+z7'=((0,h)--(w,0)) intersectionpoint
+((0,y4r)--(w,y4r));
+penpos5(whatever,-133);
+z5=whatever[z2l,z2r]; y5r=y6';
+y5l=h+2apex_o;
+penpos3(whatever,40);
+x3l=x7'; x3r=w; y3r=0.563h;
+%
+%
+%
+filldraw z1r{dir45}..z3r{up}..
+z5l{dir150}--z5r{right}..z3l{down}
+..z4r{left}..z2r{up}..z6r..
+z5r{right}--z5l & z5l{z5r-z5l}
+..z6l..z2l{down}..z1l{dir-45}--z1r
+& cycle;
+%
+%
+%
+y0=x_height+2u; x0=0.5w;
+z0'=z0+(u,0);
+e_umlaut(0');
+.endchar;
+
+.cmchar "The Schwabacher letter u with variant Umlaut";
+.beginchar(oct"236",7.849u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.283stem,35);
+penpos2(1.283stem,35);
+z1l=(0.337w,-apex_o);
+z2-z1=whatever*dir142; x2=0.168w;
+penpos3(hair,-55); penpos4(hair,-55);
+z3r=z1; z4-z3=whatever*dir35;
+penpos8(stem,0); x8=0.798w=x4;
+z8l=whatever[z3r,z4r];
+penpos10(stem,0); z10=(x2+0.5stem-apex_o,y2l);
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+z11=(x10l,0.775h); z12=(0.478[x10l,x10r],h+apex_o);
+penpos13(hair,-90); x13=0;
+z12-z13l=whatever*dir33;
+filldraw z13r{z12-z13l}...z11---
+z10l--z10r---(x10r,y11)...z12
+& z12--z13l--z13r & cycle;
+%
+%
+%
+z5=(0.609[x8l,x8r],-apex_o);
+penpos9(whatever,24);
+y9r=h+apex_o; x9l=x8l; x9r=x8r;
+penpos6(eps,-90);
+z6r-z5=whatever*dir43;
+x6=w; z7=whatever[z1l,z1r]; x7=x8r;
+filldraw z5...z8l---z9l--z9r---
+z7...z6l--z6r--z5 & cycle;
+%
+%
+%
+y0=x_height+2u; x0=0.5w;
+z0'=z0+(u,0);
+e_umlaut(0');
+.endchar;
+
+.cmchar "The Schwabacher ligature ch";
+.beginchar(oct"205",5.057u#+6.585u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+w:=5.057u;
+penpos101(0.935stem,53); penpos102(whatever,34); z101r=(w,0.874h); y102r=h+apex_o;
+z102-z101=whatever*dir148; z102r-z101r=whatever*dir148;
+penpos103(hair,angle(z101l-z102l)); z103l=z102l; penpos104(1.348stem,45);
+z104l=(0,0.45h); z105=(0.422w,-apex_o); penpos107(hair,-57);
+z107r-z105=whatever*dir33; x107r=w; z106=(0.627w,0.176h); penstroke z101e--z102e;
+filldraw z107l{z105-z107r}..z106{left}.. z104r{up}.. z103r{z102r-z102l} &
+z103r--z103l & z103l{z102l-z102r}..z104l{down}..z105 & z105--z107r--z107l & cycle;
+z0=(w-u,0); w:=7.585u; h:=cap_height; d:=3.358u; penpos1.1(stem,0);
+penpos1.3(stem,0); penpos1.4(hair,90); penpos1.5(hair,-90); y1.1=y1.1'=foot;
+x1.1l=x1.2=x0+0.413stem; x1.1'=x1.4=x0; x1.3=x1.1; x1.5=x1.1r+0.761stem;
+y1.5l=cap_height+apex_o; z1.5l-z1.4r=whatever*dir17; y1.3=0.828cap_height;
+y1.2=0.273cap_height; filldraw z1.1'...z1.2---z1.3l... z1.4l &
+z1.4l--z1.4r--z1.5l--z1.5r & z1.5r{left}...z1.3r---z1.1r & z1.1r--z1.1' & cycle;
+z2=(x0+0.279w,-apex_o); penpos3(hair,-90); z3r=(x0+0.547w,y1.1);
+z4=(x0+0.428w,y1.1); z5=(x1.1r,y1.2); filldraw z1.1'--z2--z3r--z3l
+{z2-z3r}..z4{left}..z5{up}--z1.1-- z1.1' & cycle; penpos6(hair,-40);
+penpos8(1.217stem,50); penpos9(1.043stem,24); penpos10(hair,-45); z10r=(x5,-d);
+z9r=(x0+w,0.459x_height); z7=(x0+0.582w,x_height+apex_o); x6=x1.1;
+z7-z6l=whatever*dir50; z8r=z7; penpos8'(hair,-40); z8'l=z8; penstroke z6e--z8'e;
+penstroke z10e{dir45}..z9e{up}.. z8e{dir140};
+.endchar;
+
+.cmchar "The Schwabacher ligature ck";
+.beginchar(oct"206",5.057u#+5.189u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+w:=5.057u;
+penpos101(0.935stem,53); penpos102(whatever,34); z101r=(w,0.874h); y102r=h+apex_o;
+z102-z101=whatever*dir148; z102r-z101r=whatever*dir148;
+penpos103(hair,angle(z101l-z102l)); z103l=z102l; penpos104(1.348stem,45);
+z104l=(0,0.45h); z105=(0.422w,-apex_o); penpos107(hair,-57);
+z107r-z105=whatever*dir33; x107r=w; z106=(0.627w,0.176h); penstroke z101e--z102e;
+filldraw z107l{z105-z107r}..z106{left}.. z104r{up}.. z103r{z102r-z102l} &
+z103r--z103l & z103l{z102l-z102r}..z104l{down}..z105 & z105--z107r--z107l & cycle;
+z0=(w-u,0); w:=6.189u; h:=cap_height; penpos1.1(stem,0); penpos1.3(stem,0);
+penpos1.4(hair,90); penpos1.5(hair,-90); y1.1=y1.1'=foot; x1.1l=x1.2=x0+0.413stem;
+x1.1'=x1.4=x0; x1.3=x1.1; x1.5=x1.1r+0.761stem; y1.5l=cap_height+apex_o;
+z1.5l-z1.4r=whatever*dir17; y1.3=0.828cap_height; y1.2=0.273cap_height; filldraw
+z1.1'...z1.2---z1.3l... z1.4l & z1.4l--z1.4r--z1.5l--z1.5r &
+z1.5r{left}...z1.3r---z1.1r & z1.1r--z1.1' & cycle; penpos10(1.305hair,-90);
+z10=(x1.2,x_height); penpos20(hair,-50); penpos3(1.087stem,40); z3r=z20l;
+z3-z10l=whatever*dir40; y20l=1.423x_height; penpos4(0.957stem,37);
+z4r=(x0+w,1.194x_height); penpos6(0.957stem,-117);
+z6l=(x0+w-2/3apex_o,x_height-apex_o); penpos8(whatever,-90); y8l=y6l; y8r=y6r;
+z7=(x0,y6r); z8l-z7=whatever*dir48; penpos5(hair,-90);z5r=(x1.1r,y6r); penstroke
+z10e--z20e; penstroke z5e{dir40}..z4e{up}.. z3e{dir130}; filldraw
+z7--z6r--z6l--z8l--z7 & cycle; penpos2.1(1.304stem,37); penpos2.2(1.304stem,37);
+z2.1l=(x0,foot); z2.1l-z2.2l=whatever*dir151; y2.2l=-apex_o; penpos2.3(hair,-53);
+z2.3r=z2.2; z2.05=(x0+2/3apex_o,2/3apex_o); penpos2.1'(1.304stem,37);
+z2.1'=0.5[z2.1,z2.2]+z2.05-z0; penstroke z2.2e..z2.1'e..z2.1e;
+penpos11(hair,angle(z2.3r-z2.3l)); z11-z2.3=whatever*dir37; x11r=x0+0.921w;
+penstroke z2.3e--z11e;
+.endchar;
+
+.cmchar "The Schwabacher ligature sz";
+.beginchar(oct"032",7.9u#,1.414x_height#,3.208u#);
+.adjust_fit(usual_left#,usual_right#);
+w:=6.038u;
+boolean isitf; isitf:=false; long_s;
+penpos10(hair,-41);
+penpos9(hair,-41);
+penpos8(1.154stem,49);
+penpos7(1.14stem,49);
+penpos6(hair,-41);
+x6l=w+0.5u; y6r=y1.11l;
+z9=whatever[z6l,z6r];
+z10=(x1.1,0.6x_height);
+z8r=z9l; z9l-z10l=whatever*dir49;
+z7r=z6l; penpos4(hair,-41);
+z6-z4=whatever*dir49; y4=0.324x_height;
+z5=whatever[z4r,z6r]; x5=x1.11+0.5u;
+penpos3(0.731stem,35); z3r=(w+0.5u,0.27x_height);
+penpos2(hair,-49); z2=(0.556w,-0.541d);
+filldraw z2r{dir41}..z3r{up}..
+z5{z9-z6}--z4l--z4r{z6r-z4r}..
+z3l{down}..z2l{dir221}--z2r &
+cycle;
+penstroke z4e--z6e;
+penstroke z10e--z9e;
+penstroke z7e--z8e;
+.endchar;
+
+.cmchar "The Schwabacher ligature sz";
+.beginchar(oct"247",7.9u#,1.414x_height#,3.208u#);
+.adjust_fit(usual_left#,usual_right#);
+w:=6.038u;
+boolean isitf; isitf:=false; long_s;
+penpos10(hair,-41);
+penpos9(hair,-41);
+penpos8(1.154stem,49);
+penpos7(1.14stem,49);
+penpos6(hair,-41);
+x6l=w+0.5u; y6r=y1.11l;
+z9=whatever[z6l,z6r];
+z10=(x1.1,0.6x_height);
+z8r=z9l; z9l-z10l=whatever*dir49;
+z7r=z6l; penpos4(hair,-41);
+z6-z4=whatever*dir49; y4=0.324x_height;
+z5=whatever[z4r,z6r]; x5=x1.11+0.5u;
+penpos3(0.731stem,35); z3r=(w+0.5u,0.27x_height);
+penpos2(hair,-49); z2=(0.556w,-0.541d);
+filldraw z2r{dir41}..z3r{up}..
+z5{z9-z6}--z4l--z4r{z6r-z4r}..
+z3l{down}..z2l{dir221}--z2r &
+cycle;
+penstroke z4e--z6e;
+penstroke z10e--z9e;
+penstroke z7e--z8e;
+.endchar;
+
+.cmchar "The Schwabacher ligature st";
+.beginchar(oct"202",8.338u#,1.414x_height#,3.208u#);
+.adjust_fit(usual_left#,usual_right#);
+boolean isitf; isitf:=false;
+numeric w',h',d';
+w':=6.038u; h':=1.414x_height;
+d':=3.208u;
+penpos1.1(2/3hair,0);
+z1.1=(0.313w',-d');
+penpos1.2(1.283stem,0);
+z1.2=(0.344w',0.589h');
+penpos1.4(hair,90);
+z1.4l=(0,y1.2-1/3stem);
+z1.3=(z1.1l..{dir92.5}z1.2l)
+intersectionpoint
+((0,y1.4l)--(w',y1.4l));
+z1.5=(0.35w',0.761h');
+penpos1.6(0.957stem,-118);
+z1.6l=(0.669w',h');
+penpos1.7(1.174stem,-125);
+z1.7l=(w',0.962h'); penpos1.8(hair,-35);
+z1.8r=z1.7l; z1.9-z1.8l=whatever*(z1.7l-z1.7r);
+x1.9=0.9w';
+penpos1.11(2/3stem,-90); y1.11=y1.2;
+x1.11=0.763w';
+penpos1.12(2/3stem,-90); z1.12=z1.2;
+filldraw z1.1r..z1.2r{dir87} &
+z1.2r{dir126}..z1.5{up}..z1.6r{right}
+--z1.6l{left}..
+z1.4r{dir218}--z1.4l{right}--
+z1.3{dir272.5}..z1.1l--z1.1r & cycle;
+if isitf: filldraw z1.11r--z1.12r--
+z1.12l--z1.5{down}...(x1.2r,y1.11l){right}
+---z1.11l--z1.11r & cycle; fi
+w':=4.2u; h':=1.27x_height;
+penpos1(1.152stem,35);
+penpos2(1.152stem,35);
+z0=(x1.6l-hair,0);
+x2l=x0+hair; z1l=(x0+1.826stem,-apex_o);
+z2-z1=whatever*dir148;
+penpos3(hair,-55); penpos4(hair,-55);
+z3r=z1; z4r=whatever[z1l,z1r];
+x4r=x0+w';
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+%
+%
+%
+penpos5(stem,0); z5r=(x1l-apex_o,y2l);
+penpos6(stem,0); z6=(x5,0.811x_height);
+penpos7(0.826stem,-90);
+z7r=(x0+w',y6); z8=(x0,y6); z9=(x6r,h');
+filldraw z5l--z6l--z8--z9--(x9,y7l)
+--z7l--z7r--z6r--z5r--z5l & cycle;
+%
+%
+%
+penpos20(hair,angle(z9-z8));
+z20r=z9; penpos21(stem,angle(z9-z8));
+z21r=z20l;
+filldraw z1.6l{right}..z21r--z21l
+..z1.6r{left}--z1.6l & cycle;
+.endchar;
+
+def long_ss (expr xx) = numeric w',h',d';
+w':=6.038u; h':=1.414x_height;
+d':=3.208u;
+penpos1.1(2/3hair,0);
+z1.1=(xx+0.313w',-d');
+penpos1.2(1.283stem,0);
+z1.2=(xx+0.344w',0.589h');
+penpos1.4(hair,90);
+z1.4l=(xx,y1.2-1/3stem);
+z1.3=(z1.1l..{dir92.5}z1.2l)
+intersectionpoint
+((0,y1.4l)--(w',y1.4l));
+z1.5=(xx+0.35w',0.761h');
+penpos1.6(0.957stem,-118);
+z1.6l=(xx+0.669w',h');
+penpos1.7(1.174stem,-125);
+z1.7l=(xx+w',0.962h'); penpos1.8(hair,-35);
+z1.8r=z1.7l; z1.9-z1.8l=whatever*(z1.7l-z1.7r);
+x1.9=xx+0.9w';
+penpos1.11(2/3stem,-90); y1.11=y1.2;
+x1.11=xx+0.763w';
+penpos1.12(2/3stem,-90); z1.12=z1.2;
+filldraw z1.1r..z1.2r{dir87} &
+z1.2r{dir126}..z1.5{up}..z1.6r{right}
+..z1.7r{right}--z1.8r--z1.8l--z1.9
+& z1.9{left}..z1.6l{left}..
+z1.4r{dir218}--z1.4l{right}--
+z1.3{dir272.5}..z1.1l--z1.1r & cycle;
+if isitf: filldraw z1.11r--z1.12r--
+z1.12l--z1.5{down}...(x1.2r,y1.11l){right}
+---z1.11l--z1.11r & cycle; fi
+enddef;
+
+.cmchar "The Schwabacher ligature ss";
+.beginchar(oct"201",9.738u#,1.414x_height#,3.208u#);
+.adjust_fit(usual_left#,usual_right#-2.33u#);
+boolean isitf; isitf:=false;
+numeric w',h',d'; w':=6.038u;
+h':=1.414x_height; d':=3.208u;
+penpos1.1'(2/3hair,0);
+z1.1'=(0.313w',-d');
+penpos1.2'(1.283stem,0);
+z1.2'=(0.344w',0.589h');
+penpos1.4'(hair,90);
+z1.4'l=(0,y1.2'-1/3stem);
+z1.3'=(z1.1'l..{dir92.5}z1.2'l)
+intersectionpoint
+((0,y1.4'l)--(w',y1.4'l));
+z1.5'=(0.35w',0.761h');
+penpos1.6'(0.957stem,-118);
+z1.6'l=(0.669w',h');
+penpos1.7'(1.174stem,-125);
+z1.7'l=(w',0.962h'); penpos1.8'(hair,-35);
+z1.8'r=z1.7'l; z1.9'-z1.8'l=whatever*(z1.7'l-z1.7'r);
+x1.9'=0.9w';
+penpos1.11'(2/3stem,-90); y1.11'=y1.2';
+x1.11'=0.763w';
+penpos1.12'(2/3stem,-90); z1.12'=z1.2';
+filldraw z1.1'r..z1.2'r{dir87} &
+z1.2'r{dir126}..z1.5'{up}..z1.6'r{right}
+--z1.6'l{left}..
+z1.4'r{dir218}--z1.4'l{right}--
+z1.3'{dir272.5}..z1.1'l--z1.1'r & cycle;
+if isitf: filldraw z1.11'r--z1.12'r--
+z1.12'l--z1.5'{down}...(x1.2'r,y1.11'l){right}
+---z1.11'l--z1.11'r & cycle; fi
+long_ss(x1.11'-2hair);
+%
+%
+%
+z7=(z1.4r{dir38}..z1.6l{right})
+intersectionpoint ((0,y1.7r)--
+(w,y1.7r));
+penpos8(stem,-125); z8r=z7;
+penstroke z1.6'e{right}..z8e;
+.endchar;
+
+.cmchar "The Schwabacher ligature sf";
+.beginchar(oct"203",9.738u#,1.414x_height#,3.208u#);
+.adjust_fit(usual_left#,usual_right#-1.12u#);
+boolean isitf; isitf:=false;
+numeric w',h',d'; w':=6.038u;
+h':=1.414x_height; d':=3.208u;
+penpos1.1'(2/3hair,0);
+z1.1'=(0.313w',-d');
+penpos1.2'(1.283stem,0);
+z1.2'=(0.344w',0.589h');
+penpos1.4'(hair,90);
+z1.4'l=(0,y1.2'-1/3stem);
+z1.3'=(z1.1'l..{dir92.5}z1.2'l)
+intersectionpoint
+((0,y1.4'l)--(w',y1.4'l));
+z1.5'=(0.35w',0.761h');
+penpos1.6'(0.957stem,-118);
+z1.6'l=(0.669w',h');
+penpos1.7'(1.174stem,-125);
+z1.7'l=(w',0.962h'); penpos1.8'(hair,-35);
+z1.8'r=z1.7'l; z1.9'-z1.8'l=whatever*(z1.7'l-z1.7'r);
+x1.9'=0.9w';
+penpos1.11'(2/3stem,-90); y1.11'=y1.2';
+x1.11'=0.763w';
+penpos1.12'(2/3stem,-90); z1.12'=z1.2';
+filldraw z1.1'r..z1.2'r{dir87} &
+z1.2'r{dir126}..z1.5'{up}..z1.6'r{right}
+--z1.6'l{left}..
+z1.4'r{dir218}--z1.4'l{right}--
+z1.3'{dir272.5}..z1.1'l--z1.1'r & cycle;
+if isitf: filldraw z1.11'r--z1.12'r--
+z1.12'l--z1.5'{down}...(x1.2'r,y1.11'l){right}
+---z1.11'l--z1.11'r & cycle; fi
+isitf:=true;
+long_ss(x1.11'-2hair);
+%
+%
+%
+z7=(z1.4r{dir38}..z1.6l{right})
+intersectionpoint ((0,y1.7r)--
+(w,y1.7r));
+penpos8(stem,-125); z8r=z7;
+penstroke z1.6'e{right}..z8e;
+.endchar;
+
+.cmchar "The Schwabacher ligature ff";
+.beginchar(oct"204",9.738u#,1.414x_height#,3.208u#);
+.adjust_fit(usual_left#,usual_right#-1.12u#);
+boolean isitf; isitf:=true;
+numeric w',h',d'; w':=6.038u;
+h':=1.414x_height; d':=3.208u;
+penpos1.1'(2/3hair,0);
+z1.1'=(0.313w',-d');
+penpos1.2'(1.283stem,0);
+z1.2'=(0.344w',0.589h');
+penpos1.4'(hair,90);
+z1.4'l=(0,y1.2'-1/3stem);
+z1.3'=(z1.1'l..{dir92.5}z1.2'l)
+intersectionpoint
+((0,y1.4'l)--(w',y1.4'l));
+z1.5'=(0.35w',0.761h');
+penpos1.6'(0.957stem,-118);
+z1.6'l=(0.669w',h');
+penpos1.7'(1.174stem,-125);
+z1.7'l=(w',0.962h'); penpos1.8'(hair,-35);
+z1.8'r=z1.7'l; z1.9'-z1.8'l=whatever*(z1.7'l-z1.7'r);
+x1.9'=0.9w';
+penpos1.11'(2/3stem,-90); y1.11'=y1.2';
+x1.11'=0.763w';
+penpos1.12'(2/3stem,-90); z1.12'=z1.2';
+filldraw z1.1'r..z1.2'r{dir87} &
+z1.2'r{dir126}..z1.5'{up}..z1.6'r{right}
+--z1.6'l{left}..
+z1.4'r{dir218}--z1.4'l{right}--
+z1.3'{dir272.5}..z1.1'l--z1.1'r & cycle;
+if isitf: filldraw z1.11'r--z1.12'r--
+z1.12'l--z1.5'{down}...(x1.2'r,y1.11'l){right}
+---z1.11'l--z1.11'r & cycle; fi
+long_ss(x1.11'-2hair);
+%
+%
+%
+z7=(z1.4r{dir38}..z1.6l{right})
+intersectionpoint ((0,y1.7r)--
+(w,y1.7r));
+penpos8(stem,-125); z8r=z7;
+penstroke z1.6'e{right}..z8e;
+.endchar;
+
+.cmchar "The Schwabacher semicolon";
+.beginchar(":",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+penstroke z1e--z2e;
+penstroke z5e--z6e;
+.endchar;
+
+.cmchar "The Schwabacher point";
+.beginchar(".",5u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.23570*(x_height+2apex_o),45);
+penpos2(0.23570*(x_height+2apex_o),45);
+penpos3(0.23570*(x_height+2apex_o),45);
+penpos4(0.23570*(x_height+2apex_o),45);
+penpos5(0.23570*(x_height+2apex_o),45);
+penpos6(0.23570*(x_height+2apex_o),45);
+x1l=x3l=x5l=0.5w;
+z2r=z3l; z4r=z5l;
+z2-z1=whatever*dir135;
+z4-z3=whatever*dir135;
+z6-z5=whatever*dir135;
+y1l=-apex_o; y6r=x_height+apex_o;
+penstroke z1e--z2e;
+.endchar;
+
+.cmchar "Grave accent";
+.beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+.adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); .endchar;
+
+.cmchar "Acute accent";
+.beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+.adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); .endchar;
+
+.cmchar "Hachek (check) accent";
+.beginchar(oct"024",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ .adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ .adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); .endchar;
+
+.cmchar "Breve accent";
+.beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+.adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); .endchar;
+
+.cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+.beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+.adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Scandinavian circle accent";
+.beginchar(oct"027",9u#,cap_height#,0);
+.adjust_fit(0,0);
+penpos0.1(2u,45); z0.1=z0=(0.5w,1.283x_height);
+pickup pensquare yscaled 0.5hair xscaled 0.3[hair,stem] rotated 30;
+z0.2=z0.1r; z0.3=z0.1l; rt x0.4=rt x0.2; top y0.4=y0;
+draw z0.2..z0.3..z0.2;
+penlabels(1,2,3,4); .endchar;
+
+def par_s(suffix $) =
+h':=cap_height; w':=0.379h';
+z$.1=z$+(0.5w',0.5h');
+penpos$.1(stem,30);
+penpos$.2(2hair,0);
+penpos$.3(hair,-90);
+penpos$.4(hair,180);
+penpos$.5(hair,90);
+z$.2l=z$+(0,0.8h'); z$.3l=(x$.1,y$+h');
+z$.4=z$+(0.84w',0.886h');
+z$.5=(x$.4r,y$+0.826h');
+penstroke z$.2e{up}..z$.3e
+{right} if panw: ..z$.4e{down}..z$.5e{left} fi;
+penpos$.6(2hair,90); z$.6l=z$.5l;
+if panw:
+filldraw z$.6r..z$.6l..z$.6r & cycle;
+fi
+penpos$.1'(stem,-150);
+penpos$.2'(2hair,180);
+penpos$.3'(hair,90);
+penpos$.4'(hair,0);
+penpos$.5'(hair,-90);
+z$.1=z$.1';
+z$.2'r=z$+(w',0.2h'); z$.3'r=(x$.1,y$);
+z$.4'=z$+(0.16w',0.114h');
+z$.5'=(x$.4'r,y$+0.174h');
+penpos$.2''(2hair,0); z$.2''=z$.2';
+z$.25=(z$.2''{up}..z$.2{up})
+intersectionpoint (z$+(0,0.5h')--
+z$+(w',0.5h'));
+penpos$.25(stem,30);
+penstroke z$.2''e{up}..z$.25e..
+z$.2e{up};
+penstroke z$.2'e{down}..z$.3'e
+{left} if katw: ..z$.4'e{up}..z$.5'e{right} fi;
+penpos$.6'(2hair,-90); z$.6'l=z$.5'l;
+if katw:
+filldraw z$.6'r..z$.6'l..z$.6'r & cycle;
+fi
+enddef;
+
+.cmchar "The Fraktur paragraph sign";
+.beginchar(oct"074",7.4u#,cap_height#,3.167u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+boolean panw, katw;
+panw:=true; katw:=false;
+z0=(0.17h,0); par_s(0);
+panw:=false; katw:=true;
+z1=(0,-0.3h); par_s(1);
+.endchar;
+
+.cmchar "The Fraktur paragraph sign";
+.beginchar(oct"244",7.4u#,cap_height#,3.167u#);
+.adjust_fit(0.05alpha*w#+usual_left#,0.05alpha*w#+usual_right#);
+boolean panw, katw;
+panw:=true; katw:=false;
+z0=(0.17h,0); par_s(0);
+panw:=false; katw:=true;
+z1=(0,-0.3h); par_s(1);
+.endchar;
+
+.cmchar "Cedilla accent";
+.beginchar(oct"030",8u#,0,.875desc_depth#);
+.adjust_fit(0,0);
+x1=.5w+.5u;
+if serifs: pickup crisp.nib; pos1(eps,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); .endchar;
+
+.cmchar "Circumflex (hat) accent";
+.beginchar(oct"136",9u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ .adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ .adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); .endchar;
+
+iff ligs>0: .cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+.beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+.adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+penlabels(1,2); .endchar;
+
+iff ligs>0: .cmchar "Long Hungarian umlaut accent";
+.beginchar(oct"175",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+.adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); .endchar;
+
+.cmchar "Tilde (squiggle) accent";
+.beginchar(oct"176",9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+.adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); .endchar;
+
+.cmchar "The Schwabacher hyphen";
+.beginchar(oct"055",4u#,x_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(2hair,-90);
+penpos2(2hair,-90);
+penpos3(2hair,-90);
+penpos4(2hair,-90); penpos5(2hair,-90);
+z2-z1=whatever*dir35;
+z4-z3=whatever*dir35;
+z3r=z5l; z5r=z1l; x1=0;
+x2=x4=w;
+y1r=foot;
+penstroke z1e--z2e;
+penstroke z3e--z4e;
+.endchar;
+
+.cmchar "Opening Gaensefuesschen";
+.beginchar(oct"134",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+.adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y2-.5dot_size=0;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); .endchar;
+
+
+.cmchar "Closing Gaensefuesschen";
+.beginchar(oct"042",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+.adjust_fit(0,0);
+x1-.5dot_size=hround .6u;
+ y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2);
+.endchar;
+
+.cmchar "En dash";
+.beginchar(oct"173",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Em dash";
+.beginchar(oct"174",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+.adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); .endchar;
+
+.cmchar "Hash mark (number sign)";
+if monospace: compute_spread(.6x_height#,.7x_height#);
+else: compute_spread(.45x_height#,.55x_height#); fi
+.beginchar("#",15u#,asc_height#,asc_depth#);
+italcorr (math_axis#+.5(spread#+rule_thickness#))*slant-.5u#;
+.adjust_fit(0,0);
+pickup rule.nib; lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+lft x6=hround 3u; rt x7=hround(w-3u); x5-x6=x7-x8;
+x8=good.x if monospace: .6 else: .5 fi\\w;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+y15=y1; z15=whatever[z5,z6]; y36=y3; z36=whatever[z5,z6];
+y27=y2; z27=whatever[z7,z8]; y48=y4; z48=whatever[z7,z8];
+draw z5--if x5>x6+1:(good.x(x15+.5),y1)--(good.x(x15-.5),y1)
+ --(good.x(x36+.5),y3)--(good.x(x36-.5),y3)--fi\\z6; % left diagonal
+draw z7--if x7>x8+1:(good.x(x27+.5),y2)--(good.x(x27-.5),y2)
+ --(good.x(x48+.5),y4)--(good.x(x48-.5),y4)--fi\\z8; % right diagonal
+labels(1,2,3,4,5,6,7,8,15,27,36,48); .endchar;
+
+.cmchar "Per cent sign";
+.beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+.adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); .endchar;
+
+.cmchar "Apostrophe";
+.beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+.adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); .endchar;
+
+.cmchar "Left parenthesis";
+.beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+.adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); .endchar;
+
+.cmchar "Right parenthesis";
+.beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+.adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); .endchar;
+
+.cmchar "Asterisk";
+.beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+.adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); .endchar;
+
+.cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); .endchar;
+
+.cmchar "Virgule (slash)";
+.beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+.adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); .endchar;
+
+.cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+.beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+.adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); .endchar;
+
+.cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+.beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+.adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); .endchar;
+
+.cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+.beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+.adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); .endchar;
+
+.cmchar "Reverse apostrophe";
+.beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+.adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); .endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yswabnum.mf b/Master/texmf-dist/fonts/source/public/gothic/yswabnum.mf
new file mode 100644
index 00000000000..d79136dd70f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yswabnum.mf
@@ -0,0 +1,288 @@
+.cmchar "The Schwabacher numeral 0";
+.beginchar("0",8.377u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.107cap_stem,47);
+z1l=(0.432w,-apex_o);
+penpos5(0.946cap_stem,33);
+z5l=(0,0.475h); z7=(0.365w,0.85h);
+penpos2(whatever,52.5); z2r=(0.55w,h+apex_o);
+penpos7(cap_hair,-47);
+z2l=whatever[z7l,z7r];
+penpos4(cap_hair,-37.5); z4l=z2;
+penstroke z1e{dir137}..z5e{up}..
+z7e..z4e{dir52.5};
+%
+%
+%
+penpos3(cap_hair,-64);
+penpos6(0.893cap_stem,28);
+z1r=2/3[z3l,z3r]; z6r=(w,0.529h);
+filldraw z1l{z1r-z1l}..
+%z3r{dir26}..
+z6r{up}..
+z2r{dir133}--z2l{dir-24}..z6l{down}
+..z3l{dir206}--(x1,y3l)--z1l
+& cycle;
+.endchar;
+
+.cmchar "The Schwabacher numeral 1";
+.beginchar("1",5.509u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-58); x1l=0;
+y1r=-apex_o; penpos2(cap_hair,60);
+z2=(0.932w,0.171h);
+penpos3(0.93cap_stem,0);
+penpos4(0.93cap_stem,0);
+x3=x4=0.589w; y3=0.354h; y4=0.823h;
+penpos5(cap_hair,-90);
+penpos6(cap_hair,-90);
+z6l=(w,h+apex_o); z5l=(0.301w,0.951h);
+filldraw z1r{dir32}..z2l{dir-30} &
+z2l--z2r{dir150}...z3r---z4r...
+z6r--z6l--z5l--z5r...z4l---
+z3l...z1l{dir212}--z1r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher numeral 2";
+.beginchar("2",8.415u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-45); z2=(0.359w,h-apex_o);
+x1l=0; z2-z1l=whatever*dir48;
+z3=whatever[z1l,z2]; y3=h+apex_o;
+penpos5(1.154cap_stem,27);
+z5=(0.789w,0.607h);
+z4=(0.323w,0.768h);
+filldraw z5r{up}..z2{dir149}--
+z1l--z1r{z2-z1l}..z4..z5l{down}
+& z5l--z5r & cycle;
+z3'=(z5r{up}..z2{dir149})
+intersectionpoint ((0,0.963h)--
+(w,0.963h));
+filldraw z3'{dir149}..z3{up} &
+z3--z1l--z3' & cycle;
+%
+%
+%
+penpos6(1.3cap_hair,-53);
+penpos7(hair,0); z7l=(0,-apex_o);
+z6=(0.363w,0.314h);
+penstroke z7e{up}..z6e..z5e{up};
+penpos8(cap_stem,-124);
+penpos9(1.179cap_stem,-123);
+z8=(0.395w,0.14h); z9r=(0.731w,-apex_o);
+penstroke z7e{up}..z8e{right}..
+z9e;
+penpos10(cap_hair,-33);
+penpos11(cap_hair,-33);
+z10r=z9; z11-z10=whatever*dir57;
+x11r=w;
+penstroke z10e--z11e;
+.endchar;
+
+.cmchar "The Schwabacher numeral 3";
+.beginchar("3",6.302u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos5(cap_hair,-72); z5=(0.132w,0.454h);
+z4=(0.749w,0.753h);
+penpos4(0.857cap_stem,34);
+penpos2(0.964cap_stem,90);
+x2=0.377w; y2r=h+apex_o;
+penpos1(cap_hair,-41);
+z1l=(0,0.78h);
+penstroke z5e{dir18}..z4e{up}..
+z2e{left};
+filldraw z1l--z2r--z2l{left}..
+z1r{z1l-z2r}--z1l & cycle;
+%
+%
+%
+penpos11(1.071cap_stem,56);
+penpos10(cap_stem,32);
+penpos9(cap_hair,-64);
+penpos8(0.571cap_stem,-135);
+y11l=y5l; x11r=x4l; x10r=w;
+y10=0.332h; z9=(0.515w,0.049h);
+z8r=(0.228w,-apex_o);
+penstroke z8e{right}..z9e..
+z10e{up}..z11e{left};
+filldraw z5{dir18}..z11r{z11r-z11l}
+--z11l{left}..z5r--z5 & cycle;
+z6=(apex_o,y8l); z7=(0.198w,0.146h);
+filldraw z8r{left}..z6{up}..
+z7{right}..z8l{right}--z8r &
+cycle;
+.endchar;
+
+.cmchar "The Schwabacher numeral 4";
+.beginchar("4",8.377u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(3/4cap_stem,90);
+penpos2(whatever,56);
+x1=w; x2l=0; y1=0.46h; y2l=y1l;
+y2r=y1r; z3'=whatever[z2l,z2r];
+y3'=h; penpos4(0.93cap_stem,0);
+z4l=z3'; penpos12(cap_hair,-34);
+penpos13(cap_hair,-34);
+z12l=z2; z13l=z3';
+penpos5(whatever,25); x5l=x4l;
+x5r=x4r; y5=0.268h;
+penstroke z12e--z13e;
+penstroke z5e--z4e;
+penstroke z1e--z2e;
+%
+%
+%
+penpos10(cap_hair,-90);
+penpos11(cap_hair,-90);
+y10=0; x10=0.36w; z11=(0.964w,0.162h);
+filldraw z10r{right}..z11r{right}
+--z11l{left}..z5r{up}--z5l{down}
+..z10l{left}--z10r & cycle;
+penpos6(0.5cap_hair,90);
+penpos8(0.5cap_hair,0);
+z6r=(w-cap_hair,h); z8r=(w,0.61h);
+z7=(x4r,0.841h);
+filldraw z7{up}..z6l{right}--
+z6r--z4r--z7 & cycle;
+filldraw z1r--z8r--z8l{down}..
+{left}(x4r,y1r)--z1l--z1r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher numeral 5";
+.beginchar("5",5.623u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-65);
+penpos2(0.93cap_stem,33);
+penpos3(0.964cap_stem,57.5);
+z1=(0.134w,0); z2=(0.779w,0.369h);
+z3=(0.477w,0.567h);
+z4=(0,0.579h); z5=(0.174w,0.759h);
+z6=(0.221w,h);
+penpos8(2/3cap_hair,0);
+z8r=(w,h+apex_o);
+penpos9(1.161cap_stem,-108);
+z9l=z8r;
+filldraw z1r..z2r{up}..
+z3r..z5{up}..z9r{right}--z9l--
+z8l & flex(z8l,(0.5[x6,x8],h-apex_o),
+z6) & z6..z4{down} & z4..z3l..
+z2l{down}..z1l--z1r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher numeral 6";
+.beginchar("6",7.472u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.464cap_stem,-43);
+z1r=(0.187w,-apex_o);
+z2=(0.737w,0.433h); penpos2(cap_hair,-32);
+penpos3(0.964cap_stem,44);
+z3r=(w,0.747h);
+z4=(0.631w,h+apex_o);
+z5=(0.5w,0.838h); penpos6(0.93cap_stem,-150);
+z6r=(0,0.579h);
+z7=(0.343w,0.341h); z8=(x5,0.482h);
+penpos9(cap_hair,-48);
+z9=(2/3w,0.512h); penpos10(cap_hair,132);
+y10r=y5; x10l=x7;
+penstroke z1e..z2e..z3e{up};
+filldraw z3r{up}..z4{dir156}---z10r...
+z6r{down}..z7--z9r--z9l{z7-z9r}..
+z8{left}..z6l{up}..z5{right}..z3l
+{down}--z3r & cycle;
+%
+%
+%
+transform metatopish;
+metatopish=identity
+reflectedabout ((0,0.5h),(w,0.5h));
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+transform metatopish;
+metatopish=identity
+reflectedabout ((0.5w,0),(0.5w,h));
+picture krufo;
+krufo:= currentpicture transformed
+metatopish;
+picture currentpicture;
+currentpicture=krufo;
+.endchar;
+
+.cmchar "The Schwabacher numeral 7";
+.beginchar("7",8.302u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos2(1.068cap_stem,61);
+z2r=(w,0.95h);
+penpos3(2/3cap_hair,0);
+penpos4(2/3cap_hair,0);
+z3l=(0,0.686h); z4-z3=whatever*dir73;
+y4=h; penpos1(whatever,73);
+y1l=y2l; y1r=y2r; z1=whatever[z3l,z4l];
+penpos1'(whatever,73);
+y1'r=y1r; y1'l=y1l; x1'=x1+0.182w;
+penpos6(cap_hair,0);
+penpos5(0.939cap_stem,0);
+z6r=z2l; z5=(0.382w,0);
+filldraw z2r---z1'r...z4r{up}--z4l
+--z3l--z3r{z4r-z3r}...z1'l---z2l
+--z2r & cycle;
+penstroke z5e{up}..z6e{z2r-z2l};
+.endchar;
+
+.cmchar "The Schwabacher numeral 8";
+.beginchar("8",8.226u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.5cap_hair,0);
+z1=(0.45w,-apex_o); penpos2(cap_hair,-60);
+z2=(0.761w,0.157h); penpos3(0.857cap_stem,37);
+z3r=(w,0.383h); penpos4(0.93cap_stem,72);
+z4=(0.463w,0.546h); penpos5(0.714cap_stem,31);
+z5=(0.138w,0.735h);
+penpos6(cap_hair,-56);
+z7=(0.523w,h+apex_o);
+z7-z6l=whatever*dir34; x6=0.266w;
+penpos8(3/4cap_stem,65);
+z8=(0.596w,0.895h); penpos9(0.875cap_stem,33);
+y9l=y5l; x9=x3l+apex_o;
+penpos10(cap_hair,-56); x10=x8;
+y10l=y4; penpos11(cap_hair,-48);
+y11l=y4; x11l=x6r; penpos12(0.8cap_stem,30);
+z12l=(0,y3l); penpos13(0.893cap_stem,48);
+x13=x6l; y13=y2l;
+%
+%
+%
+filldraw z1r{dir60}..z2r..z3r{up}..
+z4r{dir162}..z5r{up}..z6r..z8l..
+z9l{down}..z10l{dir214}--z10r
+{dir34}..z9r{up}..z8r..z7 &
+z7---z6l...z5l{down}..z4l{dir-18}
+..z3l{down}..z2l..z13r..%{dir161}..
+z12r{up}..z11r{dir34}--z11l{dir214}
+..z12l{down}..z13l..z1l{dir-60}--
+z1r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher numeral 9";
+.beginchar("9",7.472u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.464cap_stem,-43);
+z1r=(0.187w,-apex_o);
+z2=(0.737w,0.433h); penpos2(cap_hair,-32);
+penpos3(0.964cap_stem,44);
+z3r=(w,0.747h);
+z4=(0.631w,h+apex_o);
+z5=(0.5w,0.838h); penpos6(0.93cap_stem,-150);
+z6r=(0,0.579h);
+z7=(0.343w,0.341h); z8=(x5,0.482h);
+penpos9(cap_hair,-48);
+z9=(2/3w,0.512h); penpos10(cap_hair,132);
+y10r=y5; x10l=x7;
+penstroke z1e..z2e..z3e{up};
+filldraw z3r{up}..z4{dir156}---z10r...
+z6r{down}..z7--z9r--z9l{z7-z9r}..
+z8{left}..z6l{up}..z5{right}..z3l
+{down}--z3r & cycle;
+.endchar; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/gothic/yswabupp.mf b/Master/texmf-dist/fonts/source/public/gothic/yswabupp.mf
new file mode 100644
index 00000000000..d1fd5976a5f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/gothic/yswabupp.mf
@@ -0,0 +1,1179 @@
+.cmchar "The Schwabacher letter A";
+.beginchar("A",11.755u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);penpos1(0.714cap_stem,16);
+z1l=(apex_o,0.718h);
+z2=(0,0.767h); penpos3(cap_hair,-58);
+y3=0.474[h,y2]; x3=0.13w;
+z4=(0.278w,h+apex_o);
+penpos5(1.036cap_stem,-158);
+x5l=0.574w; y5=0.638h+cap_hair;
+penpos6(0.6cap_hair,-155); x6=x3r;
+y6l=0.132h; penpos7(1.286cap_stem,33);
+penpos8(1.143cap_stem,33);
+penpos9(1.071cap_stem,33);
+z7l=z6l; x9r=x5l; y9l=-apex_o;
+z8=0.472[z7,z9]+(0.5cap_hair,0.5cap_hair);
+penpos10(cap_hair,-57); z10r=z9l;
+penpos17(cap_stem,0); x17l=0.657w;
+y17=0.724h; penpos11(cap_hair,-57);
+z11-z10=whatever*dir33; x11=x17;
+z15=whatever[z10,z11]; x15=x17l;
+z15-z12=whatever*dir123; y12=-apex_o;
+penpos13(cap_hair,-90); z13r=(w,y6l);
+z14=(0.567[x17r,w],y13r);
+z16=(x17r,0.591[y17,y14]);
+penpos18(0.6cap_hair,-90); z18l=(w,h);
+z19=(x17l,0.822h);
+z7'=(z6{z7r-z7l}..z5{up})
+intersectionpoint (z7r+(2u,-2u)--
+z7r--z7r+(-2u,2u));
+%
+%
+%
+filldraw z1r{z3l-z3r}..z3r{z4-z3l}
+..z5r{down}..z6r{z7l-z7r} & z6r--z6l
+& z6l{z7r-z7l}..z5l{up}..z4{dir155}
+& z4---z3l...z2{down}..z1l &
+z1l--z1r & cycle;
+penstroke z9e..z8e..z7e;
+penstroke z10e--z11e;
+filldraw z12--z13r--z13l & z13l{z12-z13r}
+..z14{left}...z16---z17r...z18r{right}
+& z18r--z18l & z18l{left}..z19{z5r-z19}
+& z19--z15--z12 & cycle;
+filldraw z7r--z7' & z7'{z6-z7'}..
+z6{z7l-z7r} & z6--z6l--z7r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter B";
+.beginchar("B",13.811u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);penpos1(cap_hair,-70);
+penpos2(1.667cap_hair,-70);
+penpos3(1.071cap_stem,23);
+penpos4(2/3cap_hair,90);
+penpos5(1.571cap_stem,32);
+x1l=0; y1=0.282h; z2r-z1r=whatever*dir12.5;
+x2=0.24w; z3=(0.464w,0.672h);
+y5r=h+apex_o; x5r=0.295w; z4r=z5l;
+filldraw z1r---z2r...z3r{up}..
+z5r{dir163} & z5r--z5l--z4l &
+z4l{right}..z3l{down}..z2l..z1l
+{z1r-z2r} & z1l--z1r & cycle;
+%
+%
+%
+penpos6(cap_hair,-46); penpos7(cap_hair,-46);
+penpos9(cap_stem,44); penpos10(cap_hair,-46);
+z6r=z3; z7-z6=whatever*dir44;
+y7l=h+apex_o; z9r=z7l;
+z10=whatever[z7l,z7r]; x10r=0.951w;
+z8=(x6,0.552h); penpos8(cap_hair,-90);
+z11'-z9l=whatever*(z10-z7);
+x11'=w;
+z11=(z8{right}..z10{dir44})
+intersectionpoint (z11'--z9l);
+penstroke z8e{right}..z10e{dir44};
+penstroke z6e--z7e;
+filldraw z9r--z10r--z11--z9l--z9r &
+cycle;
+%
+%
+%
+%.endchar; end.
+path pipi;
+pipi:=z8{right}..z10{dir44};
+numeric titi,uuuu;
+(titi,uuuu)=pipi
+intersectiontimes
+((0.781w,0)--(0.781w,h));
+z12= point titi of pipi;
+penpos13(0.964cap_stem,39);
+z13r=(w,0.362h); penpos14(cap_hair,-57);
+z14=(0.822w,0.071h); z14'=(0.623w,-apex_o);
+z15=whatever[z1l,z1r];
+penpos15(cap_hair,-70);
+y1r-y15l=cap_hair;
+penpos16(1.857cap_stem,-167.5);
+z16r=z15l;
+filldraw subpath (0,titi) of pipi
+ & z12{right}
+..{down}z13r..z14r..z14'{left}..
+z15r{left} & z15r--z15l--z16l &
+z16l{dir-34}..z14l..z13l{up}..
+z8r{left} & z8r--z8 & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter C";
+.beginchar("C",10.151u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);z1=(w,0.276h); penpos2(cap_stem,68);
+z2l=(0.533w,-apex_o); penpos3(0.911cap_stem,45);
+z3l=(0,0.442h);
+penpos4(cap_hair,-60);
+z4l=(x2l-cap_stem,0.914h);
+penpos5(cap_stem,-90); z5l=(x2l,h);
+penpos6(1.1cap_stem,-72);
+z7=(0.911w,h+apex_o);
+z6l=(0.5[x5,x7],h-apex_o);
+penpos8(cap_stem,0); z8r=(x2l,0.337h);
+penpos10(cap_hair,-56);
+z8r-z10r=whatever*dir34; x10=x8l-0.5cap_stem;
+z9=z8l-(0,cap_hair);
+filldraw z1..z2r{left}..z3r{up}..
+z4r{z5l-z4l} & z4r--z4l &
+z4l{z4l-z5l}..z3l{down}..z2l{right}
+..z1{up} & cycle;
+filldraw z10l{z8r-z10r}..z9{up}--
+z4l--z5l..z6l{right}..z7 &
+z7{down}..z6r{left}..z5r{dir170} &
+z5r--z8r--z10r--z10l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter D";
+.beginchar("D",13.736u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-50); penpos2(1.071cap_stem,-118);
+z1=(0.06w,0); z2=(0.302w,0.15h);
+z3=(0.585w,-apex_o);
+penpos4(cap_hair,-41);
+z4=(0.876w,0.193h); penpos5(0.5cap_stem,38);
+z5r=(w,0.472h); penpos6(cap_stem,74);
+penpos7(cap_stem,74); penpos8(cap_stem,74);
+penpos10(0.5cap_hair,0);
+z6l=(0.72w,0.675h);
+z8l-z6l=whatever*dir170;
+x8l=cap_hair; x10r=x8; y10=h+apex_o;
+z7=0.426[z8,z6]+(0,-apex_o);
+z9=whatever[z7l,z8l]; x9=0;
+filldraw z1r{dir40}..z2r{right}..z3
+& z3..z4r..z5r{up}...
+z7r---z8r
+{z8r-z7r}..z10r{up} & z10r--z10l & z10l..
+z9{down} & z9..z8l{z7r-z8r}---z7l
+...z5l{down}..z4l..z2l{left}..z1l{dir220}
+& z1l--z1r & cycle;
+%
+%
+%
+penpos17(cap_hair,0); z17r=z2;
+penpos18(0.536cap_stem,34);
+z19=(cap_hair,y5l); y18=0.464[y2l,y19];
+x18=x2r-apex_o; z20=(0.203w,0.52h);
+penpos21(cap_hair,-60);
+z21=whatever[z7,z6]; x21=0.44w;
+filldraw z17r{up}..z18r..z20{up}..
+z21r{dir30} & z21r--z21l &
+z21l{dir210}..z19 & z19{right}..
+z17l{down} & z17l--z17r & cycle;
+%
+%
+%
+penpos12(cap_hair,-60); penpos13(cap_hair,-60);
+penpos14(cap_hair,-60); penpos11(cap_hair,-60);
+penpos15(cap_stem,30); penpos16(cap_stem,30);
+z16r=z12r; z15l=z13l; z14=whatever[z6,z7];
+z12=(0.563w,0.387h);
+z15r-z12=whatever*(z12l-z12r);
+x13l=0.287w;
+z14l=whatever[z15l,z15r];
+z11r=whatever[z16l,z16r]; x11=x17;
+penstroke z11e--z12e;
+penstroke z16e--z15e;
+penstroke z13e--z14e;
+z22=(z17r{up}..z18r..z20{up})
+intersectionpoint ((0,y2l+cap_hair)
+--(w,y2l+cap_hair));
+z23=1/3[z11l,z12l];
+z23'=2/3[z13l,z16l];
+z24=1/3[z15r,z12r];
+z25=whatever[z6l,z7l];
+z25=whatever[z13r,z14r];
+filldraw z22{right}..z23{z12l-z11l}
+..z23'{z13-z16l} & z23'--z16--z11
+--z22 & cycle;
+filldraw z24{z15r-z12}..z25{z14r-z13r}
+& z25--z15--z24 & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter E";
+.beginchar("E",12.302u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-90); z1r=(0,0.227h);
+penpos2(cap_stem,0); penpos3(cap_stem,0);
+penpos4(cap_hair,-90);
+z2r=(0.31w,0.509h);
+z3=(x2,0.761h); y4l=h+apex_o;
+x4=0.393w;
+penstroke z1e{dir31}..z2e---z3e...
+z4e{dir22};
+penpos5(cap_hair,-64); penpos6(cap_hair,-51);
+penpos7(cap_stem,0); penpos8(cap_stem,0);
+penpos9(1.607cap_stem,18);
+penpos10(cap_hair,-90);
+z5=(0.049w,0.12h); z6l=(x4,0.337h);
+x9=x8=x7; z7l=(0.446w,y2);
+y8=y3; z10r=z9r; y10l=h+apex_o;
+penstroke z5e{dir31}..z6e{dir36}...z7e---
+z8e...z9e;
+filldraw z9l--z10l--z10r--z9l & cycle;
+%
+%
+%
+penpos11(0.6cap_hair,-90);
+z11=whatever[z7r,z8r]; y11r=0.862h;
+z12-z11l=whatever*dir30;
+penpos14(0.679cap_stem,-90);
+y14=0.589h; x14=x11;
+penpos15(whatever,-114);
+x15=0.926w; y15r=y14r; y15l=y14l;
+penstroke z14e--z15e;
+z13=(x15l,y11r);
+z17=(x12-apex_o,0.588[y13,y15l]);
+z12-z11l=whatever*dir30; y12=h+apex_o;
+penpos16(cap_hair,0);
+z16=whatever[z14l,z15l]; x16r=x17;
+filldraw z11l--z12 & z12..z13{down}
+--z16r{dir222} & z16r--z16l &
+z16l..z17{up}..z11r{left} &
+z11r--z11l & cycle;
+%
+%
+%
+z18=(0.417w,0.3h); z19=(0.267w,0.169h);
+z20=(0.834w,0.101h); z21=(0.7w,-apex_o);
+penpos22(cap_hair,-50);
+x22r=w; y22=0.132h;
+filldraw z5r{dir31}..z19{right}..
+z21{right}..z22r{dir40} &
+z22r--z22l & z22l{dir220}..z20{left}
+..z18{left}..z5l{dir211} & z5l--z5r
+& cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter F";
+.beginchar("F",9.925u#,cap_height#,2.943u#);
+.adjust_fit(usual_left#,usual_right#);penpos1(2/3cap_hair,-90);
+penpos2(1.286cap_stem,180);
+penpos2'(1.071cap_stem,-142.5);
+penpos3(cap_hair,-90);
+penpos4(1.214cap_stem,42.5);
+penpos5(1.125cap_stem,40);
+penpos6(0.786cap_stem,38);
+penpos6'(1.2cap_stem,53);
+penpos7(4/3cap_hair,-127);
+z1r=(0,3/2cap_hair); z2r=z1l;
+y3r=-d-apex_o; x3=0.55w;
+x4=0.821w; y4=-y4l; z5=(0.687w,0.368h);
+z6=(0.439w,0.807h);
+x7l=x5; y7l=h+apex_o;
+z8=(w,y7r); z10=z8-(0,cap_stem);
+z9=z10-(cap_stem,0);
+z2'l=z2l; z6'r=z6r;
+filldraw z2l{dir-79}..z3l{right}..
+z4l{up}..z5l..z6'l{up}..z7l{right}
+..z8 & z8--z10--z9 &
+z9{up}..z7r{left}..z6r{down}..
+z5r..z4r{down}..z3r{left}..
+z2'r..z1r{left} & z1r--z1l--z2l
+& cycle;
+%
+%
+%
+penpos11(2/3cap_hair,-90);
+penpos12(0.786cap_stem,-114);
+y11r=y12r=0.506h; x12l=w-apex_o;
+x11=0.29w;
+filldraw z11r--z11l & z11l{dir40}..
+z6{up} & z6--z6r--(x6r,y12l)--
+z12l--z12r--z11r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter G";
+.beginchar("G",13.434u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);penpos1(2cap_stem,-142);
+z1l=(0.815w,0.742h);
+penpos1'(cap_hair,-90); z1'l=z1r;
+penpos2(1.179cap_stem,-142);
+z2l=(w,0.466h); penpos3(cap_hair,77);
+z3=(0.764w,0.067h);
+z4=(0.59w,-apex_o);
+penpos5(1.179cap_stem,32);
+z5l=(0,0.457h);
+penpos6(cap_hair,-56.5);
+z7=(x4-0.643cap_stem,h+apex_o);
+z7-z6l=whatever*dir33.5;
+penpos8(1.286cap_stem,-130);
+z8r=z1l+(-apex_o,apex_o);
+z6r-z8r=whatever*(z7-z8l);
+filldraw z1'r{dir45}..z2r{down}..
+z3r{dir207}..z5r{up}..z6r{z7-z6l} &
+z6r--z8r--z8l--z7---z6l...
+z5l{down}..z4{right}..z3l{dir27}..
+z2l{up}..z1l{1/3[z6l,z7]-z1l}
+& z1l--z1r--z1'r & cycle;
+%
+%
+%
+penpos9(cap_stem,0); penpos10(cap_stem,0);
+penpos11(cap_hair,-32);
+penpos12(cap_hair,-52);
+x9r=x10r=x4; y9=0.3h; y10=0.681h;
+z12-z8=whatever*(z7-z8l);
+z12l-z10l=whatever*dir27;
+z9-z11''=whatever*dir58; y11''=0;
+z11=(z2{down}..z3{dir207}..z5{up})
+intersectionpoint (z11''--z9);
+z11'=whatever[z11,z9]; x11'=x9l;
+penstroke z9e--z10e;
+filldraw z11r{z9-z11}..z9r{z9r-z11'}
+& z9r--z9l & z9l{down}..z11l{z11-z9}
+& z11l--z11r & cycle;
+filldraw z10r{up}..z12r{z12l-z10l}
+& z12r--z12l--z10l--z10r & cycle;
+%
+%
+%
+penpos13(cap_hair,angle(z8l-z7));
+z13r=z8l; penpos14(1.5cap_hair,-15);
+x14r=w-cap_hair; y14l=h+apex_o;
+penstroke z13e{z8l-z8r}..z14e{up};
+.endchar;
+
+.cmchar "The Schwabacher letter H";
+.beginchar("H",11.736u#,cap_height#,2.566u#);
+.adjust_fit(usual_left#,usual_right#);penpos1(1.5cap_stem,-16);
+z1l=(0.637w,h); penpos2(cap_hair,-106);
+z2l=whatever[z1l,z1r]; y2l=h+apex_o;
+penpos3(cap_hair,-106); z3l=z1;
+penstroke z2e--z3e;
+penpos4(1.071cap_stem,18);
+penpos5(1.071cap_stem,18);
+z4l=(0,0.393h);
+z4r-z5r=whatever*dir120; x5r=0.286w;
+filldraw z4l---z4r...z1r{dir59} &
+z1r--z1l & z1l{dir260}..{dir208}z4l & cycle;
+penstroke z5e--z4e;
+%
+%
+%
+penpos6(cap_hair,angle(z5r-z4r));
+z6r=z5r; z7=(0.804w,0.503h);
+z8=(x1l,0.337h); penpos9(1.071cap_stem,180);
+z9r=(x7,0.147h); z10=(0.592w,-d-apex_o);
+z11=(0.498w,-0.809d);
+z12=(0.386w,-0.397d);
+z13=(0.473w,0.043h);
+z14=(x12,0.123h);
+z15=(x5r,0);
+filldraw z6r{z5r-z5l}..z8{right}..
+z9r{down}..z11{left}..z12{up}..
+z13{up}..z14{left}..z15{down}..
+z10{right}..z9l{up}..z7 & z7--z6l
+--z6r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter I";
+.beginchar("I",12.943u#,cap_height#,3.019u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.786cap_stem,32);
+z1l=(apex_o,0.653h);
+penpos2(0.821cap_stem,29);
+z2l=(0,0.715h); z4=(0.198w,0.85h);
+z5=(0.321w,h+apex_o);
+penpos3(cap_hair,-55); y3=y4;
+z5-z3l=whatever*dir35;
+penpos6(1.125cap_stem,-119);
+penpos8(cap_hair,-37);
+z6=(0.636w,0.822h);
+z8=(0.845w,h); penpos9(cap_hair,-37);
+penpos9'(cap_amount,-37);
+z9'l=z8r; z9l=z9'r;
+penpos10(1.304cap_stem,47);
+x10r=x8; y10r=y2;
+penpos11(1.107cap_stem,26);
+z11r=(w,0.215h); z12=(x10l,-0.313d);
+z13=(0.545w,-d-apex_o);
+z14=(0.19w,-0.45d);
+penpos15(cap_hair,-37); x15l=0;
+y15=-0.688d; penpos16(2.25cap_stem,-131);
+z16r=z15l;
+filldraw z1r{dir122}..z2r{up}..
+z3r..z4{right}..z6r{right}..
+z8r{dir57} & z8r--z8l &
+z8l{dir237}..z6l{left}..z5 &
+z5---z3l...z2l{down}..z1l{dir302}
+& z1l--z1r & cycle;
+%
+%
+%
+filldraw z15r{dir49}..z14{right}..
+z13 & z13{dir31}..z11r{up}..z10r{up}
+..z9r{dir57} & z9r--z9l &
+z9l{dir237}..z10l{down}..z11l{down}
+..z12{left}..z16l{dir139} &
+z16l--z16r--z15r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter J";
+.beginchar("J",12.943u#,cap_height#,3.019u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(0.786cap_stem,32);
+z1l=(apex_o,0.653h);
+penpos2(0.821cap_stem,29);
+z2l=(0,0.715h); z4=(0.198w,0.85h);
+z5=(0.321w,h+apex_o);
+penpos3(cap_hair,-55); y3=y4;
+z5-z3l=whatever*dir35;
+penpos6(1.125cap_stem,-119);
+penpos8(cap_hair,-37);
+z6=(0.636w,0.822h);
+z8=(0.845w,h); penpos9(cap_hair,-37);
+penpos9'(cap_amount,-37);
+z9'l=z8r; z9l=z9'r;
+penpos10(1.304cap_stem,47);
+x10r=x8; y10r=y2;
+penpos11(1.107cap_stem,26);
+z11r=(w,0.215h); z12=(x10l,-0.313d);
+z13=(0.545w,-d-apex_o);
+z14=(0.19w,-0.45d);
+penpos15(cap_hair,-37); x15l=0;
+y15=-0.688d; penpos16(2.25cap_stem,-131);
+z16r=z15l;
+filldraw z1r{dir122}..z2r{up}..
+z3r..z4{right}..z6r{right}..
+z8r{dir57} & z8r--z8l &
+z8l{dir237}..z6l{left}..z5 &
+z5---z3l...z2l{down}..z1l{dir302}
+& z1l--z1r & cycle;
+%
+%
+%
+filldraw z15r{dir49}..z14{right}..
+z13 & z13{dir31}..z11r{up}..z10r{up}
+..z9r{dir57} & z9r--z9l &
+z9l{dir237}..z10l{down}..z11l{down}
+..z12{left}..z16l{dir139} &
+z16l--z16r--z15r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter K";
+.beginchar("K",12.943u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-90); z1=(1/10w,0);
+penpos3(cap_stem,0); z3=(0.419w,0.5h);
+z2=(x3l,0.261h); z4=(x3,0.853h);
+penpos4(cap_stem,0);
+penpos5(1.286cap_stem,-140);
+z5r=(0,0.773h); z6=(0.131w,0.69h);
+z7=(0.251w,0.828h); penpos8(cap_hair,-50);
+x8r=x3r; y8=h;
+filldraw z1r{right}...z3r---z4r--
+z8r--z4l---z2...z1l{left} & z1l--z1r &
+cycle;
+filldraw z8r--z8l & z8l{z4l-z8r}..z7{left}
+..z5l{dir130} & z5l--z5r & z5r{dir-50}
+..z6{right}..z8r{z8r-z4l} & cycle;
+%
+%
+%
+penpos9(whatever,-90);
+penpos10(cap_hair,-50);
+z10=(0.681w,h); z9l=z4r;
+z9r-z10r=whatever*(z9l-z10l);
+penpos12(cap_hair,-50);
+z12=whatever[z10l,z10r];
+penpos11(whatever,-90);
+z11r=z3r; z11r-z12r=whatever*(z9r-z10r);
+z11l-z12l=whatever*(z9r-z10r);
+penpos13(1.107cap_stem,angle(z12-z11));
+penpos14(1.107cap_stem,angle(z12-z11));
+z13r=z12r; z14r=z10r;
+penstroke z9e--z10e;
+penstroke z11e--z12e;
+penstroke z13e--z14e;
+%
+%
+%
+penpos16(1.071cap_stem,30);
+x16r=w; y16l=-apex_o;
+penpos15(whatever,angle(z12-z11));
+z15=whatever[z11r,z12r];
+z15r-z16r=whatever*dir124;
+z15l-z16l=whatever*dir124;
+penstroke z16e--z15e;
+%
+%
+%
+z17=(x3,1.5cap_amount);
+z18=(x3r,0.221h);
+penpos19(1.071cap_stem,45);
+z19l=(0.613w,-apex_o);
+filldraw z1r{right}..z17{right}..
+z19l & z19l--z19r--z18 &
+z18{dir220}..z1l{left} & z1l--z1r &
+cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter L";
+.beginchar("L",10.377u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-90);
+penpos1'(cap_amount,-90);
+penpos2(cap_hair,-90);
+x1=x1'=x2=0; y1r=y1'l; y1'r=y2l;
+y1'=0.135h; penpos3(whatever,28);
+penpos6(whatever,28);
+x3r=0.349w; x6l=0.505w;
+x3l=x3r-.95cap_stem; x6r=x6l+.95cap_stem;
+y3r=0.472h;
+z6=whatever[z3l,z3r]+(0,-u);
+penpos4(whatever,18);
+penpos7(whatever,0);
+x4l=x3l; x4r=x3r; x7l=x6l; x7r=x6r;
+y4r=0.779h; z7=whatever[z4l,z4r];
+penpos5(cap_hair,-70);
+x5=x7r; y5=0.45[h,y7];
+penpos8(cap_hair,-57);
+x8=0.753w; y8=h;
+penpos9(cap_stem,-148);
+penpos10(0.893cap_stem,-137);
+penpos11(cap_hair,-53);
+z9=(0.287w,0.178h);
+x10=x8; y10r=-apex_o;
+x11r=w; y11r=y9r;
+%
+%
+%
+penstroke z1e{dir23}...z3e---z4e...
+z5e{right};
+penstroke z1e{dir23}...z6e---z7e...
+z8e{right};
+penstroke z2e{dir23}..z9e{right}
+..z10e{right}..z11e{dir37};
+.endchar;
+
+.cmchar "The Schwabacher letter M";
+.beginchar("M",17.736u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.25cap_stem,47);
+penpos2(1.25cap_stem,47);
+penpos3(1.107cap_stem,42.5);
+penpos4(1.143cap_stem,47);
+penpos5(0.5cap_hair,0);
+penpos6(cap_hair,-43);
+penpos7(cap_hair,-43);
+x2l=0; y1l=-apex_o;
+z2-z1=whatever*dir143;
+y2l=0.141h; z3r=(0.207w,0.638h);
+x4l=0; y4r=h+apex_o; z5l=z4r;
+z6r=z1; z7r=whatever[z1l,z1r];
+penpos11(cap_stem,0);
+x11=0.494w; x9=0.423[x3r,x11l];
+x9=x7;
+penstroke z6e--z7e;
+penstroke z1e--z2e;
+filldraw z2r{z2r-z2l}..z3r{up}..
+z5r{up} & z5r--z5l--z4l &
+z4l{dir-56}..z3l{down}..z2l{z2l-z2r}
+& z2l--z2r & cycle;
+%
+%
+%
+penpos8(1.214cap_hair,-90);
+z8=(x3,y3r); y11=0.709h;
+z10=(x11l,h+apex_o);
+z9-z8r=whatever*(z10-z8l);
+filldraw z8r---z9...z11l{down} &
+z11l--z11r & z11r{up}..z10{left}
+& z10--z8l--z8r & cycle;
+penpos12(whatever,30);
+y12l=-apex_o; x12l=x11l; x12r=x11r;
+penstroke z12e--z11e;
+%
+%
+%
+penpos13(1.25cap_hair,-90);
+z13r=z11r; %penpos24(1.036cap_stem,-129);
+%penpos25(1.036cap_stem,-129);
+penpos20(2/3cap_hair,-52);
+penpos18(whatever,11);
+penpos19(whatever,31);
+x18l=x19l=0.768w;
+x18r=x19r=x18l+cap_stem;
+y18l=0.187h; y19l=0.54h;
+z20r=(w,0.856h); penpos22(cap_hair,-61);
+z22r=(w,0.184h); penpos21(cap_hair,-61);
+y21=0; x21r=0.749w;
+filldraw z21r--z22r--z22l &
+z22l{z21r-z22r}...z18r{up}---
+z19r..z20r{dir34} & z20r--z20l &
+z20l{dir214}...z19l{down}---z18l..
+z21l{dir235} & z21l--z21r & cycle;
+%
+%
+%
+penpos24(1.036cap_stem,-128);
+penpos25(1.036cap_stem,-128);
+z25=(0.789w,0.911h);
+z24=z25-(0.714cap_stem,0);
+z26-z25r=whatever*dir-34;
+x26=w;
+z17=(z18{up}---z19...z20{dir34})
+intersectionpoint (z25r--z26);
+filldraw z13r---z24r...z25r---
+z17 & z17--z20--z20l &
+z20l{dir214}..{z25r-z17}z25l...
+z24l---z13l & z13l--z13r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter N";
+.beginchar("N",14.868u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.107cap_stem,55);
+z1l=(0.348w,-apex_o);
+z3=(0.056w,0.184h);
+z2=(0.231w,0.089h);penpos4(cap_hair,0);
+z4l=(0.152w,0.445h);
+penpos5(1.25cap_stem,49);
+x5l=0; y5r=h+apex_o; penpos6(0.5cap_hair,0);
+z7=(0.129w,0.945h);
+penpos15(cap_hair,-35);
+z15-z14=whatever*dir55;
+penpos14(cap_hair,-35);
+z14r=z1; x15=0.576w; z8'=(x15r,0);
+penpos16(cap_stem,-123.5);
+x16=0.497w; y16l=h+apex_o;
+penpos10(1.071cap_stem,-135);
+z10r=(0.797w,0.656h);
+filldraw z1l--z1r{z3-z1l}..z4r{up}
+& z4r--z4l & z4l{down}..z3 &
+flex(z3,z2,z1l) & cycle;
+penstroke z14e--z15e;
+penstroke z4e{up}..z16e{right}..
+z10e{dir-45};
+z6l=z5r;
+%z8'-z7=whatever*dir-58; y8'=0;
+z8=(z7--z8') intersectionpoint
+(z4{up}..z16{right});
+filldraw z4l{up}..z5l--z5r--z6r
+& z6r...z7---z8 & z8--z4--z4l &
+cycle;
+%
+%
+%
+penpos11(cap_hair,-45); penpos12(cap_hair,-45);
+z11r=z10; z12-z11=whatever*dir45;
+x12r=w; z13=(0.891w,0.862h);
+filldraw z16--z16l{right}..z13..
+z12l{z12-z11} & z12l--z12r--z11r
+--z11l & z11l..z16{left} & cycle;
+%
+%
+%
+penpos19(2/3cap_hair,0);
+penpos20(cap_hair,-90);
+z19r=(x11r,-apex_o);
+x20=w; z20-z19=whatever*dir40;
+z21=(0.694[x19,x20],y20r);
+z18=(0.701w,0.301h);
+z22=(0.827w,0.485h);
+filldraw z19r--z20r--z20l &
+z20l..z21{left}..z22{up}..z12r{z12r-z11r}
+& z12r--z12l--z10r &
+z10r{z10r-z10l}..z18{down}..z19l &
+z19l--z19r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter O";
+.beginchar("O",12.528u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,115);
+penpos8(cap_stem,0); x8r=0.536w;
+y8=0.451h; penpos9(whatever,25);
+x9l=x8l; x9r=x8r; y9r=h+apex_o;
+z1r=z9l; penpos2(0.929cap_stem,-154);
+z2r=(0,0.5h); penpos3(1.071cap_stem,-128.5);
+x3=x8r; y3r=-apex_o;
+penpos4(0.946cap_stem,29);
+z4r=(w,0.54h); z5=(0.735w,0.837h);
+penpos5(1.107cap_stem,44);
+penpos6(1.286cap_stem,47);
+z6r=(x5,h+apex_o);
+penpos10(cap_hair,-43);
+penpos11(cap_hair,-43);
+z11l=z6; z11-z10=whatever*dir47;
+x10=x8;
+z8r-z7'=whatever*dir49;
+y7'=0; penpos7(cap_hair,-41);
+z7r=(z7'--z8r) intersectionpoint
+(z2{down}..z3{right});
+z3''=whatever[z2,z4]; x3''=x8r;
+z3'=whatever[z3'',(w,cap_hair)];
+penpos3'(cap_hair,angle((w,cap_hair)-z3''));
+x3'=0.819w;
+penstroke z1e{z9l-z9r}..z2e{down}
+..z3e{right}..z3'e..z4e{up}...z5e{z6-z5}...
+z6e;
+filldraw z7r--z8r--z9r--z9l---z8l
+...z7l{z7r-z8r} & z7l--z7r & cycle;
+penstroke z10e--z11e;
+.endchar;
+
+.cmchar "The Schwabacher letter P";
+.beginchar("P",11.849u#,cap_height#,3.2u#);
+.adjust_fit(usual_left#,usual_right#);
+penpos2(cap_stem,0); x2=0.226w;
+y2=0.08h; penpos1(0.1cap_hair,0);
+z1=(x2,-d-apex_o);
+penpos3(whatever,35);
+penpos4(1.25cap_stem,47);
+x4l=0; y4r=h+apex_o;
+x3l=x2l; x3r=x2r; y3r=0.761h;
+penstroke z1e--z2e---z3e{up}...z4e;
+%
+%
+%
+penpos5(whatever,-122);
+x5r=0; x5l=x2l;
+y5r=y2+2/3cap_hair;
+penpos6(cap_stem,-140);
+z6r=(0.534w,-apex_o);
+penpos8(cap_hair,-50);
+z8r=whatever[z6l,z6r]; x8=0.752w;
+penpos9(1.107cap_stem,36);
+z9r=(w,y3l); z10=(0.536w,h+apex_o);
+z11=(0.513w,0.831h);
+penpos12(cap_hair,90); x12=x1;
+y12=2/3h; z7=(0.634w,0.156h);
+z5'=(x2l,0.135h);
+filldraw z5r{right}..z6r &
+z6r---z6l...z8r..z9r{up}..z10 &
+z10--z12r--z12l & z12l{z10-z12r}..
+z11{right}..z9l{down}..z8l..z7{left}..
+z5l{left} & z5l--z5r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter Q";
+.beginchar("Q",12.528u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#+1.208u#);
+penpos1(cap_hair,115);
+penpos8(cap_stem,0); x8r=0.536w;
+y8=0.451h; penpos9(whatever,25);
+x9l=x8l; x9r=x8r; y9r=h+apex_o;
+z1r=z9l; penpos2(0.929cap_stem,-154);
+z2r=(0,0.5h); penpos3(1.071cap_stem,-128.5);
+x3=x8r; y3r=-apex_o;
+penpos4(0.946cap_stem,29);
+z4r=(w,0.54h); z5=(0.735w,0.837h);
+penpos5(1.107cap_stem,44);
+penpos6(1.286cap_stem,47);
+z6r=(x5,h+apex_o);
+penpos10(cap_hair,-43);
+penpos11(cap_hair,-43);
+z11l=z6; z11-z10=whatever*dir47;
+x10=x8;
+z8r-z7'=whatever*dir49;
+y7'=0; penpos7(cap_hair,-41);
+z7r=(z7'--z8r) intersectionpoint
+(z2{down}..z3{right});
+z3''=whatever[z2,z4]; x3''=x8r;
+z3'=whatever[z3'',(w,cap_hair)];
+penpos3'(cap_hair,angle((w,cap_hair)-z3''));
+x3'=0.819w;
+penstroke z1e{z9l-z9r}..z2e{down}
+..z3e{right}..z3'e..z4e{up}...z5e{z6-z5}...
+z6e;
+filldraw z7r--z8r--z9r--z9l---z8l
+...z7l{z7r-z8r} & z7l--z7r & cycle;
+penstroke z10e--z11e;
+%
+%
+%
+penpos12(cap_hair,-30);
+x12=0.3[x5,x3']; y12=cap_hair;
+penpos13(1.179cap_stem,-118);
+z13l=(w+1.408u,0.288h);
+penstroke z12e{dir60}..z13e{dir-28};
+.endchar;
+
+.cmchar "The Schwabacher letter R";
+.beginchar("R",12.792u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.143cap_stem,33);
+penpos2(1.143cap_stem,33);
+z1l=(0.342w,-apex_o);
+penpos16(cap_hair,-57);
+penpos17(cap_hair,-57);
+z16r=z1; z17-z16=whatever*dir33;
+x17=0.625w; x2=0.242w; z2-z1=whatever*dir133;
+penpos3(cap_hair,-47);
+z3r=z2l; penpos4(cap_stem,22);
+z4=(0.451w,0.583h);
+penpos5(1.5cap_stem,48);
+x5l=0; y5r=h+apex_o;
+penstroke z16e--z17e;
+penstroke z1e--z2e;
+filldraw z3r---z2r...z4r{up}..z5r{left}
+& z5r--z5l & z5l{right}..z4l{down}..
+z3l{z2l-z2r} & z3l--z3r & cycle;
+z7=(0.687w,h+apex_o);
+z7-z7'=whatever*dir45;
+x7'=0; z6=(z7'--z7) intersectionpoint
+(z4r{up}..z5r{left});
+z6'=z6-(0,cap_hair);
+penpos8(cap_stem,-147);
+penpos12(cap_hair,90);
+z8=(0.802w,0.804h); x12=x4; y12=0.552h;
+penpos8'(1.179cap_stem,-135);
+z8'l=z8l;
+penpos13(cap_stem,17);
+z13=(0.708w,0.506h);
+penpos14(1.464cap_stem,25);
+x14r=w; y14l=-apex_o; penpos15(2/3cap_hair,-90);
+z15r=z14r; z13'-z13r=whatever*(z13l-z14l);
+z13'=whatever[z4r,z8];
+z11=(0.735w,0.712h);
+penpos11'(cap_hair,angle(z13'-z13r));
+z11'r=z11;
+filldraw z6--z7..z8'l{down}..z11'l
+{dir201} & z11'l---z13r...z15l{right}
+& z15l--z15r--z14l---z13l...z12l{dir187}
+& z12l--z12r & z12r{dir7}..z11..
+z8'r{up}..z6'{dir208} & z6'--z6 &
+cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter S";
+% made in Athens, Greece on july 21, 1990
+.beginchar("S",13.887u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,148);
+penpos2(cap_hair,180);
+penpos3(cap_hair,-90);
+penpos4(1.107cap_stem,25);
+penpos5(1.125cap_stem,72);
+penpos6(1.071cap_stem,84);
+penpos7(0.875cap_stem,48);
+penpos8(1.036cap_stem,-136);
+penpos9(1.161cap_stem,-111);
+penpos10(cap_hair,-42); penpos11(cap_hair,-42);
+z1=(0.109w,0.799h); z2r=(0,0.552h);
+z3r=(0.533w,-apex_o); z4r=(w,0.345h);
+z5=(0.685w,0.497h); z6=(0.402w,0.451h);
+z7=whatever[z2r,z1l]; x7r=x1l;
+z8l=(0.413w,h+apex_o); z9r=(0.832w,0.683h);
+y10r=y9l; x10r=w-apex_o;
+z10r-z11r=whatever*dir48; y11=y5;
+penstroke z1e..z2e{down}..z3e{right}
+..z4e{up}..z5e{left}..z6e{left}..
+z7e{up}..z8e{right}..z9e{right};
+penstroke z11e--z10e;
+filldraw z9l{right}..{z10-z11}z10l--z10r--
+z9r--z9l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter T";
+.beginchar("T",11.811u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.893cap_stem,51);
+y1l=-apex_o; x1r=w-1.3apex_o;
+penpos2(cap_hair,-61);
+z2l=z1r; %x2r=w;
+penpos3(cap_hair,angle(z2r-z2l));
+z2-z3=whatever*dir45; y3r=-apex_o;
+penpos4(cap_stem,90);
+x4=0.633w; y4l=-apex_o;
+penpos5(3/4cap_stem,30);
+z5r=(0.217w,0.5h);
+penpos6(cap_hair,-51);
+z6r=(0.396w,h-apex_o-cap_stem);
+penstroke z3e--z2e;
+penstroke z4e{left}...
+z5e{up}..z6e{dir39};
+filldraw z4r{right}..z2l{z2-z3} &
+z2l--z3r--z4l--z4r & cycle;
+%
+%
+%
+penpos10(cap_stem,-90);
+penpos11(whatever,-115);
+x10=0.115w; y10l=h-apex_o;
+z11l=(w,h+apex_o); penpos10'(cap_stem,-90);
+y11r=y10r; y10'=y10; x10'=x3;
+penstroke z10e---z10'e...z11e;
+penpos13(cap_hair,-34);
+x13l=0; y13=0.732h;
+z12=whatever[z10r,z11r]; x12=x5;
+filldraw z13r{dir56}..z12{right} &
+z12--z10l--z13l--z13r & cycle;
+%
+%
+%
+penpos9(cap_stem,0);
+penpos8(cap_stem,0);
+z9=(0.511w,y10r); z8=(x9,0.381h);
+penstroke z8e--z9e;
+penpos7(0.5cap_hair,-52);
+z8r-z7r=whatever*dir38;
+y7r=y4r; z14=(x8l,0.1[y8,y4r]);
+filldraw z7r--z8r--z8l---z14...
+z7l{z7r-z8r} & z7l--z7r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter U";
+.beginchar("U",11.811u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_stem,0); penpos2(cap_stem,0);
+penpos3(2.375cap_stem,0); penpos5(cap_stem,0);
+penpos6(cap_stem,0);
+x1=w-1.188cap_stem=x2=x3=x4;
+y1=0.152h; y2=0.72h; y3=0.848h;
+y4=h+apex_o;
+penstroke z1e--z2e;
+filldraw z2r{up}..z3r{right} &
+z3r--z4--z3l & z3l{right}..z2l{down}
+& z2l--z2r & cycle;
+penpos9(cap_hair,90); penpos10(whatever,40);
+z10l=(x1l,-apex_o); y10r=y1;
+x9=w-0.04w; z9r=whatever[z10l,z10r];
+filldraw z10l--z9l
+& z9l--z9r & z9r{left}..(x1r,0.274h){up}
+--z1l--z10l & cycle;
+%
+%
+%
+penpos11(1.148cap_stem,39);
+penpos12(1.148cap_stem,39);
+x5r=0.288w; y5=y1; x6=x5; y6=0.817h;
+z11l=(0.393w,-apex_o);
+z12l=z5l; penpos13(cap_hair,-51);
+penpos14(cap_hair,-51);
+z14r=whatever[z11l,z11r];
+z13r=z11; x14l=x1l;
+penstroke z13e--z14e;
+penstroke z11e--z12e;
+penstroke z5e--z6e;
+penpos8(cap_hair,90); z8l=(w-x9,y9l);
+filldraw z11l{z12l-z11l}..z8l
+& z8l--z8r & z8r{right}..(x5l,0.274h){up}
+--z5r--z11l & cycle;
+penpos7(whatever,55);
+z7l=(0,y6); y7r=h+apex_o;
+filldraw z6r{up}..z7r{dir138} &
+z7r--z7l & z7l{right}..(x6l,y2) &
+(x6l,y2)--z6r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter V";
+.beginchar("V",12.189u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.143cap_stem,43);
+penpos2(1.5cap_stem,25);
+penpos3(1.2cap_stem,16);
+penpos4(1.393cap_stem,50);
+z1l=(0.526w,-apex_o);
+z2=(0.251w,0.186h);
+z3=(0.303w,0.494h); x4l=0; y4r=h+apex_o;
+%filldraw z1l{dir138}..z2l{left}
+%& z2l{dir68}..z3l{up}..z4l{dir150}
+%& z4l--z4r & z4r{dir-30}..z3r{down}
+%..z2r & z2r{dir-13}..z1r{dir-33} &
+%z1r--z1l & cycle;
+penstroke z2e..z3e{up}..z4e{dir150};
+penstroke z1e{dir143}..z2e{left};
+%
+%
+%
+penpos5(1.232cap_stem,46);
+z5r=(w,0.61h); z6=(0.557w,0.82h);
+z8=(0.681w,h+apex_o);
+penpos7(cap_hair,-55);
+z8-z7l=whatever*dir37;
+x7r=x3;
+filldraw z1l{dir30}..z5r{up}..z8 &
+z8--z7l--z7r & z7r{z8-z7l}..z6{right}
+..z5l{down}..z1r{dir210} &
+z1r--z1l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter W";
+.beginchar("W",18.189u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(cap_hair,-56);
+penpos2(cap_hair,-56);
+z2r=(0.245w,-apex_o);
+z1r-z2r=whatever*dir34;
+y1l=0.216h-cap_hair;
+penstroke z2e--z1e;
+penpos3(cap_hair,90);
+y3l=y1l; x3=x2r-1.393cap_stem;
+penpos6(cap_stem,0); z6r=(x2r,y3r);
+z4=0.592[z2l,z1l];
+z5-z4=whatever*(z3l-z2r); x5=x6r;
+z7=(x6l,0.36h);
+penpos8(cap_stem,0); x8=x6;
+y8=0.704h;
+penpos9(1.179cap_stem,57);
+x9l=0; y9r=h+apex_o;
+penstroke z6e---z8e...z9e;
+filldraw z2r--z3l--z3r..z7{up}
+& z7--(x6r,y7)--
+z5--z4--z2r & cycle;
+%
+%
+%
+penpos11(cap_hair,-90); z12=(0.444w,h+apex_o);
+z11r=z8r; z13=(.763[x11,x12],0.802h);
+penpos16(cap_stem,0); x16=0.548w;
+y16=0.104h; penpos14(cap_stem,0);
+z14=(x16,y8); z14'=(x14r,y13);
+filldraw z11r{z12-z11l}...z13{right}
+...z14l---z16l--z16r---z14'...z12{dir170}
+& z12--z11l--z11r & cycle;
+penpos18(1.179cap_stem,40);
+penpos18'(1.179cap_stem,40);
+penpos17(1.179cap_stem,40);
+z17l=z16l; z18-z17=whatever*dir-23;
+y18l=-apex_o;
+z18'=0.4[z17,z18]+(apex_o,apex_o);
+penstroke z18e..z18'e..z17e;
+%
+%
+%
+penpos15(cap_hair,-90); z22=(x15-x11+0.444w,h+apex_o);
+z15r=z14r; z21=(.763[x15,x22],0.802h);
+penpos20(1.071cap_stem,35); x20r=w;
+y20=0.552h; penpos19(cap_hair,-60);
+z19r=z18l;
+penstroke z19e{dir30}..z20e{up};
+filldraw z20l{up}..z21{left}..
+z15r{z15l-z22} & z15r--z15l--z22 &
+z22..z20r{down} & z20r--z20l & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter X";
+.beginchar("X",11.472u#,cap_height#,0);
+.adjust_fit(usual_left#,usual_right#);
+penpos1(1.179cap_stem,-130);
+penpos2(1.179cap_stem,-122);
+penpos3(0.8cap_hair,-17);
+penpos4(cap_hair,-22);
+penpos5(1.2cap_hair,-23);
+penpos6(1.107cap_stem,-120);
+penpos7(1.125cap_stem,-124);
+z1r=(0,0.065h); z2r=(0.128w,-apex_o);
+z3=(0.414w,0.28h);
+z4=(0.49w,0.509h); z5=(0.625w,0.765h);
+z6l=(0.878w,h+apex_o);
+z7l=(w,0.945h);
+penstroke z1e..z2e{right}..z3e..z4e
+..z5e..z6e{right}..z7e;
+%
+%
+%
+penpos8(cap_hair,90); penpos9(1.393cap_stem,40);
+penpos10(0.964cap_stem,82);
+penpos11(1.036cap_stem,42);
+penpos12(cap_stem,0);
+penpos13(1.036cap_stem,43);
+penpos14(1.321cap_stem,43);
+x9r=w; y9l=-apex_o; z8l=z9r; z10l=z9l;
+z11=(0.612w,0.186h); z12=z4;
+z13=(0.395w,0.835h); z14r=(0.217w,h+apex_o);
+penstroke z10e{left}..z11e..z12e..z13e..
+z14e{left};
+filldraw z9r--z8r..z10r{left}--z10l
+--z9r & cycle;
+%
+%
+%
+penpos15(cap_hair,0);
+penpos21(0.8cap_stem,-90);
+penpos17(cap_hair,0);
+z21=z4; y19=y18=y21r; y16=y20=y21l;
+y15=y21-0.821cap_stem; y17=y21+0.643cap_stem;
+x15=0.118w; x16=0.204w; x17=0.928w;
+x18=0.836w; x19=0.263w; x20=3/4w;
+filldraw z15r...z19---z18--z17r--
+z17l...z20---z16--z15l--z15r & cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter Y";
+.beginchar("Y",12.302u#,cap_height#,2.34u#);
+.adjust_fit(usual_left#,usual_right#);
+z1=(0.868w,-d); penpos2(cap_stem,7);
+z4=(0.788w,-0.274d);
+z2=(0.856w,-0.613d);
+penpos5(5/3cap_hair,120);
+penpos6(1.2cap_hair,158);
+penpos7(1.2cap_hair,-55);
+penpos8(1.161cap_stem,22);
+z5l=(0.294w,0.171h);
+z6r=(0,0.035h);
+z7r=(0.221w,-0.6d);
+z8r=(w,0.683h); z11=(0.767w,h+apex_o);
+penpos12(cap_stem,0); z12=(0.485w,0.421h);
+x9=0.325[x12r,x8l]; y9=0.835h;
+penpos10(cap_hair,128.5);
+z11-z10r=whatever*dir38.5;
+x10l=x12;
+penstroke z5e{left}..z6e{down}..z7e{right}
+..z8e{up};
+filldraw z1{right}..z2r{up}..z5r{left}
+& z5r--z5l & z5l{right}..z4{down}..
+z2l{down}..z1{right} & cycle;
+filldraw z8l{up}..z9{left}..z10l
+{z10r-z11} & z10l--z10r--z11 &
+z11..z8r{down} & z8r--z8l & cycle;
+%
+%
+%
+penpos13(whatever,33); x13r=x12r;
+z13=(z7{right}..z8{up})
+intersectionpoint ((x12,-d)--z12);
+penpos14(cap_hair,90);
+penpos15(1.464cap_stem,31);
+y15r=h+apex_o; x15l=0; z14r=z15l;
+filldraw z13r---z12r...z15r{left}
+& z15r--z15l--z14l &
+z14l{dir20}...z12l---z13l--z13r &
+cycle;
+.endchar;
+
+.cmchar "The Schwabacher letter Z";
+.beginchar("Z",7.736u#,cap_height#,1.132u#);
+.adjust_fit(usual_left#,usual_right#);
+z1=(apex_o,0.866h);
+penpos2(1.125cap_stem,-135);
+penpos3(1.125cap_stem,-135);
+penpos4(1.125cap_stem,-135);
+penpos5(cap_hair,-45);
+z5r=(w,0.89h);
+penpos6(whatever,-90); x6=0.205w;
+z5r-z6r=whatever*dir45;
+z5l-z6l=whatever*dir45;
+z4l=z5l; z3=(0.722w,0.826h);
+z2l=(0.312w,h+apex_o);
+penstroke z2e{right}..z3e{right}..
+z4e;
+penstroke z6e--z5e;
+filldraw z1..z2l{right}--z2r{left}
+..z1 & cycle;
+%
+%
+%
+z10=(0,0.128h); z12=(0.327w,y10);
+z13=(0.263w,apex_o);
+penpos9(cap_hair,-90);
+z9r=(0.439w,-d);
+penpos8(1.071cap_stem,36);
+z8r=(w,0.317h);
+penpos7(cap_stem,68);
+z7r=whatever[z6r,z5r];
+y7l=y6l; penstroke z9e{right}..
+z8e{up}..z7e{left};
+filldraw z6r{z5r-z6r}..z7l{right}
+& z7l--z7r--z6r & cycle;
+filldraw z9r{left}..z10{up}..z12{down}
+..z13{down}..z9l{right} & z9l--z9r &
+cycle;
+.endchar;
diff --git a/Master/texmf-dist/fonts/source/public/greenpoint/greenpoint.mf b/Master/texmf-dist/fonts/source/public/greenpoint/greenpoint.mf
new file mode 100644
index 00000000000..5922e4ecd8c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/greenpoint/greenpoint.mf
@@ -0,0 +1,65 @@
+% greenpoint.mf - "The Green Point" in METAFONT
+% Copyright (C) 2001, 2003 Markus Triska
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or
+% (at your option) any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 USA
+%
+% Contact me at triska@gmx.at
+%
+
+font_identifier := "GPOINT"; font_size 10pt#;
+
+mode_setup;
+
+% The breadth of the tip of the arrow on either side of the stem
+side_breadth#:=.9pt#;
+% The distance from the uppermost point of the stem to the boarder
+boarder_dist#:=1.4pt#;
+% The length of the tip of the arrow
+tip_length#:=2.3pt#;
+% The significance of the curvature of the tip of the arrow
+curve_factor:=2.3;
+
+define_whole_vertical_pixels(boarder_dist, side_breadth);
+define_whole_pixels(tip_length);
+
+beginchar("G", 8pt#, 8pt#, 0);
+"The Green Point, version 1.0";
+pickup pencircle scaled .2pt;
+% The surrounding circle
+top z1' = (.5w, h); rt z2' = (w, .5h); bot z3' = (.5w, 0); lft z4' = (0, .5h);
+path p; p = z1'{right}..{down}z2'..{left}z3'..{up}z4'..cycle;
+draw p;
+
+path arc;
+archeight = h - boarder_dist;
+z4 = (.07w, .5archeight);
+arc = (.5w, 0){left}..{up}z4..{right}(.5w, archeight);
+fill arc--cycle;
+
+% The tip of the arrow
+z1 = (.5w, archeight + side_breadth);
+z2 = (.5w + tip_length, .5[y1, y3]);
+z3 = (.5w, .5h - .5side_breadth);
+path tip;
+tip = z1{(curve_factor*(x2-x1), y2-y1)}..{(x2-x1, curve_factor*(y2-y1))}z2;
+tip := tip & z2{(x3-x2, curve_factor*(y3-y2))}..{(curve_factor*(x3-x2), y3-y2)}z3--cycle;
+fill tip;
+labels(1, 2, 3, 4);
+tip := tip rotatedaround ((.5w, .5h), 180);
+unfill tip;
+arc := arc rotatedaround((.5w, .5h), 180);
+fill arc--(.5w, 0){right}..{up}(w, .5h)..{left}(.5w, h)..cycle;
+endchar;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/grtimes/lgrligs.mf b/Master/texmf-dist/fonts/source/public/grtimes/lgrligs.mf
new file mode 100644
index 00000000000..64f68d0864d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/grtimes/lgrligs.mf
@@ -0,0 +1,69 @@
+%%
+%% This is file `lgrligs.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% grtimes.dtx (with options: `LGRligs')
+%%
+%% (c) copyright 1999-2002 Apostolos Syropoulos
+%% This program can be redistributed and/or modified under the terms
+%% of the LaTeX Project Public License Distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt; either
+%% version 1 of the License, or any later version.
+%%
+%% However, the above copyright notice does not apply in the case of
+%% ``Crete University Press'' as this publisher is not allowed to
+%% use or alter this file in any way.
+%%
+%% Please report errors or suggestions for improvement to
+%%
+%% Apostolos Syropoulos
+%% 366, 28th October Str.
+%% GR-671 00 Xanthi, GREECE
+%% apostolo@ocean1.ee.duth.gr or apostolo@obelix.ee.duth.gr
+%%
+%% \CharacterTable
+%% {Upper-case \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
+%% Lower-case \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
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+boundarychar:=oct"040";
+diaer=oct"042";
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable oct"000": "-" =: oct"177"; % em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+ligtable diaer: % diaeresis
+ "'" =: oct"043",
+ "i" =: oct"360", "u" =: oct"364",
+ "I" =: oct"333", "U" =: oct"337";
+
+ligtable oct"043": % diaeresis and acute
+ "i" =: oct"362", "u" =: oct"366";
+ligtable "'": % acute
+ diaer =: oct"043", "'" =: oct"035",
+ "a" =: oct"210", "h" =: oct"240", "w" =: oct"270",
+ "e" =: oct"350", "o" =: oct"354", "i" =: oct"320",
+ "u" =: oct"324",
+ "A" =: oct"200", "H" =: oct"230", "W" =: oct"260",
+ "I" =: oct"310", "E" =: oct"340", "U" =: oct"314",
+ "O" =: oct"344";
+ligtable "s":"." =:| "c", "," =:| "c", ";" =:| "c",
+ ":" =:| "c", "?" =:| "c", "!" =:| "c",
+ ")" =:| "c", "/" =:| "c", "]" =:| "c",
+ oct"052" =:| "c", oct"035" =:| "c", oct"040" =:| "c";
+endinput;
+%%
+%%
+%% End of file `lgrligs.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/hands/hands.mf b/Master/texmf-dist/fonts/source/public/hands/hands.mf
new file mode 100644
index 00000000000..2268e4542f1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/hands/hands.mf
@@ -0,0 +1,83 @@
+%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% A Handy Little Font %
+% %
+% This collection produces a series of "pointing hand" dingbats %
+% in various orientations, including pointing left and right, %
+% and "reverse video" versions in the same directions. %
+% %
+% Design work was originally by Georgia K.M. Tobin, and was %
+% published in TUGBoat Vol. 10, Number 1 (1989). Unfortunately, %
+% that publishing lost all of its braces, so as printed it would %
+% not work. This version corrects all of those problems. %
+% %
+% Assembled by Norman E. Powroz, with thanks to Don Hosek, who %
+% picked out all of the errors. %
+% %
+% -- 16 May 1989 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Implementation consists of five files in total. Filenames %
+% have been shortened to fit on PCs and their ilk, as this work %
+% was done on such a beast. The filenames, and contents are: %
+% %
+% HANDS.MF -- driver file controlling all else (this file) %
+% HANDSDEF.MF -- contains the actual definition of the hand %
+% MIRROR.MF -- contains the macro to mirror-image the hand %
+% REVERSE.MF -- the macro to create "inverse video" version %
+% RVMIRROR.MF -- the macro for "inverse video mirror-image" %
+% %
+% Parameters such as size have been moved to this driver file, %
+% so that they may be changed without impacting the rest of the %
+% files. Default size is 48pt. To change it, just change the %
+% value of "size" below, and rerun this driver file. %
+% %
+% Have Fun!! %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%
+
+% Setup basic parameters
+
+mode_setup;
+size=48pt#;
+font_size size;
+em#:=size; cap#:=7/10em#; desc#:=3/10em#;
+thinline#:=1/100em#;
+define_pixels(em,cap,desc);
+define_blacker_pixels(thinline);
+
+% Read the actual definition
+input handsdef;
+
+
+% The basic hand, pointing to the right
+beginchar("A",16/15em#,cap#,desc#);
+handpointing;
+endchar;
+
+% The basic hand, mirror-imaged
+beginchar("B",16/15em#,cap#,desc#);
+input mirror;
+pattern;
+handpointing;
+endchar;
+
+% The "inverse video" hand, pointing to the right
+beginchar("C",16/15em#,cap#,desc#);
+input reverse;
+pattern;
+handpointing;
+endchar;
+
+% And the "inverse video" hand, mirror-imaged
+beginchar("D",16/15em#,cap#,desc#);
+input rvmirror;
+pattern;
+handpointing;
+endchar;
+
+% That's all folks
+bye
diff --git a/Master/texmf-dist/fonts/source/public/hands/handsdef.mf b/Master/texmf-dist/fonts/source/public/hands/handsdef.mf
new file mode 100644
index 00000000000..c9f6363abc0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/hands/handsdef.mf
@@ -0,0 +1,66 @@
+% handsdef.mf
+% Defines the actual pointing hand
+% Standard hand points to the right
+
+def handpointing=
+% define points for thumb and cuff
+x1=x3=1/2[0,1/15w];
+x2=x5=x4=x23=4/16w;
+y1=y2=10/15[-desc,cap];
+y3=y4=2/15[-desc,cap];
+y5=6/7[y4,y2]; y23=1/7[y4,y2];
+x6=9.75/16w;
+y6=y2;
+x7=11.25/16w;
+y7=4/5[y23,y5];
+x8=8.75/16w;
+y8=1/4[y7,y6];
+x17=14.5/16w;
+y17=9.25/15[-desc,cap];
+
+% find a point at a certain height on
+% the curve from z6 to z7
+ path dummyCurve; path dummyLine;
+ x.dummy=1/2[x8,x7];
+ y.dummy=y17;
+ dummyCurve:=z6{z5-z2}..z7..tension1.4..z8;
+ dummyLine:=z.dummy--z17;
+ z18=dummyCurve intersectionpoint dummyLine;
+
+x16=x17;
+y16=y7;
+x9=7/16w;
+y9=y8;
+x10=6/16w;
+y10=2/5[y23,y5];
+
+% find another point on the
+% curve from z6 to z7
+ x.dummy2=x5;
+ y.dummy2=y16;
+ x.dummy3:=1/2[x8,x7];
+ y.dummy3=y.dummy2;
+ dummyLine:=z.dummy3--z.dummy2;
+ z12=dummyCurve intersectionpoint dummyLine;
+
+% define points for curled fingers
+x15=x14=x19=x22=1/3[x18,x17];
+x13=x20=x21=x12;
+y15=y16;
+y13=y14=y15-(y17-y16);
+y20=y19=y13-(y17-y16);
+y21=y22=y20-(y17-y16);
+
+% pick up pen and draw whole image
+pickup pencircle scaled thinline;
+draw z1--z2--z4--z3--cycle;
+draw z5{(1,1)}..tension 1.5..z6
+ &z6{z5-z2}..z7..tension 1.4..z8
+ &z8{down}..tension 3..z9
+ &z9..tension 1.8..{left}z10;
+draw z18--z17{right}..z16--z7;
+draw z7--z15{right}..z14--z13{left}..z12;
+draw z14{right}..z19--z20{left}..z13;
+draw z19{right}..z22--z21{left}..z20;
+draw z21{(-1,-1)}..tension 1.5..z23;
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/hands/mirror.mf b/Master/texmf-dist/fonts/source/public/hands/mirror.mf
new file mode 100644
index 00000000000..10befb7eded
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/hands/mirror.mf
@@ -0,0 +1,20 @@
+% pattern_mirror (for PCs, written as mirror.mf)
+def pattern=
+def endchar=
+tracingequations:=1;
+cullit;
+picture normalchar;
+normalchar:=currentpicture;
+
+picture mirrorimage;
+ mirrorimage:=normalchar
+ reflectedabout ((0,0),(0,h))
+ shifted (w,0);
+currentpicture:=mirrorimage;
+scantokens extra_endchar;
+chardx:=w;
+shipit;
+if displaying>0: showit; fi
+endgroup;
+enddef;
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/hands/reverse.mf b/Master/texmf-dist/fonts/source/public/hands/reverse.mf
new file mode 100644
index 00000000000..e182755265b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/hands/reverse.mf
@@ -0,0 +1,20 @@
+% pattern_rev (for PCs, written as reverse.mf)
+def pattern=
+def endchar=
+tracingequations:=1;
+cullit;
+picture phaseone; phaseone=currentpicture;
+currentpicture:=nullpicture;
+fill (0,-desc)--(w,-desc)--(w,cap)--(0,cap)--cycle;
+cullit;
+
+picture phasetwo;
+phasetwo=currentpicture-phaseone;
+currentpicture:=phasetwo;
+scantokens extra_endchar;
+chardx:=w;
+shipit;
+if displaying>0: showit; fi
+endgroup;
+enddef;
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/hands/rvmirror.mf b/Master/texmf-dist/fonts/source/public/hands/rvmirror.mf
new file mode 100644
index 00000000000..19714abe815
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/hands/rvmirror.mf
@@ -0,0 +1,27 @@
+% pattern_revmirror.mf (for PCs written as rvmirror.mf)
+def pattern=
+def endchar=
+tracingequations:=1;
+cullit;
+
+picture phaseone;
+phaseone=currentpicture;
+currentpicture:=nullpicture;
+fill (0,-desc)--(w,-desc)--(w,cap)--(0,cap)--cycle;
+cullit;
+
+picture phasetwo;
+phasetwo=currentpicture-phaseone;
+
+picture phasethree;
+phasethree:=phasetwo
+ reflectedabout ((0,0),(0,h))
+ shifted (w,0);
+currentpicture:=phasethree;
+scantokens extra_endchar;
+chardx:=w;
+shipit;
+if displaying>0: showit; fi
+endgroup;
+enddef;
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/hieroglf/pmhg.mf b/Master/texmf-dist/fonts/source/public/hieroglf/pmhg.mf
new file mode 100644
index 00000000000..2d37a6872f7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/hieroglf/pmhg.mf
@@ -0,0 +1,3550 @@
+%%
+%% This is file `pmhg.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% hieroglf.dtx (with options: `maj')
+%%
+%% Copyright 2000 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA)
+%% now at: peter.r.wilson@boeing.com
+%%
+%% PMHG.MF Program file for poor man's hieroglyphic font.
+%%
+%% It is a concatenation of parts of the font definitions
+%% from the hieroglyphic package. The fonts in that package
+%% are declared to be in the public domain, so these font
+%% definitions are similarly in the public domain.
+%%
+true_design_size# := 14pt#;
+%%%input Hibzrstp;
+
+%%%%%%%%%%%%%%%%%%%% file Hibzrstp.mf from the hieroglyph package %%%%%%
+
+default_design_size# := 10pt#;
+if designsize = 0: designsize := default_design_size#; fi;
+
+if unknown mag: mag := 1; fi;
+mag := mag * designsize / default_design_size#;
+
+u# := default_design_size# / true_design_size#;
+
+designsize := default_design_size#;
+
+def cand (text q) = startif true q else: false fi enddef;
+def cor (text q) = startif true true else: q fi enddef;
+tertiarydef p startif true = if p: enddef;
+
+if unknown mode cor ((mode = proof) or (mode = smoke)):
+ % Given in inches:
+ if unknown proof_size: proof_size := 7; fi;
+
+ % Given in pixels per inch:
+ if unknown proof_resolution: proof_resolution := 300; fi;
+
+ % Set up the new mode to be the same as the old one, except for the
+ % resolution.
+ original_mode := if known mode: mode else: proof fi;
+ mode_def bzr_proof_mode =
+ if original_mode = proof:
+ proof_;
+ else:
+ smoke_;
+ fi;
+ pixels_per_inch
+ := (proof_size * proof_resolution)
+ * (72.27 / proof_resolution)
+ * (72.27 / designsize);
+ enddef;
+ mode := bzr_proof_mode;
+fi;
+
+if (known proofing) cand (proofing > 2):
+ save_proofing := proofing;
+fi
+
+mode_setup;
+
+if known save_proofing:
+ proofing := save_proofing;
+fi;
+
+define_pixels (u);
+
+special "titlefont cmss8";
+
+
+def general_label (text point_list, suffixes) =
+ forsuffixes point_suffix = ,suffixes:
+ forsuffixes point = point_list:
+ % Unfortunately, the way in which the |str| operator formats its
+ % argument (which is an arbitrary suffix) cannot be changed, so
+ % the proofsheets end up showing "0 0" for the variable |z[0][0]|.
+ makelabel (str point.point_suffix, z.point.point_suffix);
+ endfor
+ endfor
+enddef;
+
+def proof_labels (text t) =
+ % We need to delimit the arguments here, so \MF\ knows where the
+ % second |text| argument begins. Our output uses the suffix |"s"| for
+ % startpoints of segments, and the suffixes |"c1"| and |"c2"| for
+ % control points.
+ if proofing > 1: general_label (t) (s); fi;
+ if proofing > 2: general_label (t) (c1,c2); fi;
+enddef;
+
+autorounding := 0; % 0 avant pour les deux!
+%%% granularity:=0;
+smoothing := 0;
+
+path temp_path;
+
+def fill_or_unfill expr p =
+ temp_path := p;
+ if turningnumber temp_path > 0: fill else: unfill fi temp_path;
+enddef;
+
+turningcheck := 1;
+
+def begin_no_dimen_char (expr c) =
+ begingroup
+ transform save_currenttransform;
+ save_currenttransform := currenttransform;
+ charcode:=if known c: byte c else: 0 fi;
+ charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
+enddef;
+
+def end_no_dimen_char =
+ currenttransform := save_currenttransform;
+ endchar;
+enddef;
+
+def set_char_dimens (expr w_sharp,h_sharp,d_sharp) =
+ charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp;
+ w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp);
+enddef;
+
+def move (expr h_amount, v_amount) =
+ currenttransform := currenttransform shifted (h_amount, v_amount);
+enddef;
+
+def hmove (expr amount) = move (amount, 0); enddef;
+def vmove (expr amount) = move (0, amount); enddef;
+
+%%
+%% BEGINNING OF PATCH
+%%
+def depart= -31; enddef;
+
+transform modif;
+modif := identity;
+def mamodif= identity; enddef;
+
+def beginchar(expr c,w_sharp,h_sharp,d_sharp) =
+ begingroup
+ charcode:=c + depart;
+ charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp;
+ w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp);
+ charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
+ transform save_currenttransform;
+ save_currenttransform= currenttransform;
+ modif:= mamodif;
+ currenttransform:= currenttransform transformed modif;
+ enddef;
+
+def endchar =
+ scantokens extra_endchar;
+ if proofing>0: makebox(proofrule); fi
+ chardx:=w; % desired width of the character in pixels
+ shipit;
+ if displaying>0: makebox(screenrule); showit; fi
+ currenttransform:= save_currenttransform;
+ endgroup enddef;
+
+%%%%%%%%%%%%%%%%%%%% end of file Hibzrstp.mf %%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_coding_scheme := "Poor Man's Hieroglyphs";
+font_identifier := "pmhg";
+font_normal_space 2pt#;
+
+side# := 2pt#;
+
+%% A2: man pointing at his mouth
+%% (code as I(73) 73+31 = 104)
+beginchar (104, 12.749u# + side#, 17.744u#, 0.000u#);
+ "A2";
+ z33\0\0s = (0.482u,8.672u);
+ z33\0\0 = (5.401u,10.415u);
+ z33\0\1 = (6.467u,8.598u);
+ z33\0\2 = (6.467u,5.541u);
+ z33\0\3 = (6.022u,5.541u);
+ z33\0\4c1 = (5.682u,6.417u);
+ z33\0\4c2 = (3.120u,8.839u);
+ z33\0\4 = (2.340u,7.538u);
+ z33\0\5c1 = (1.197u,5.629u);
+ z33\0\5c2 = (5.269u,3.047u);
+ z33\0\5 = (0.000u,0.482u);
+ z33\0\6 = (0.000u,0.000u);
+ z33\0\7 = (5.782u,0.240u);
+ z33\0\8 = (12.527u,0.000u);
+ z33\0\9c1 = (11.896u,1.017u);
+ z33\0\9c2 = (10.644u,0.867u);
+ z33\0\9 = (10.279u,1.607u);
+ z33\0\10c1 = (10.011u,2.156u);
+ z33\0\10c2 = (10.278u,2.799u);
+ z33\0\10 = (10.279u,3.372u);
+ z33\0\11c1 = (10.277u,5.615u);
+ z33\0\11c2 = (9.641u,8.036u);
+ z33\0\11 = (10.840u,10.118u);
+ z33\0\12c1 = (11.829u,8.140u);
+ z33\0\12c2 = (11.955u,7.059u);
+ z33\0\12 = (11.742u,4.837u);
+ z33\0\13c1 = (11.640u,3.767u);
+ z33\0\13c2 = (11.169u,3.083u);
+ z33\0\13 = (11.322u,1.927u);
+ z33\0\14c1 = (11.780u,2.096u);
+ z33\0\14c2 = (12.380u,2.334u);
+ z33\0\14 = (12.570u,2.811u);
+ z33\0\15c1 = (12.888u,3.412u);
+ z33\0\15c2 = (12.563u,4.403u);
+ z33\0\15 = (12.570u,5.068u);
+ z33\0\16 = (12.749u,7.709u);
+ z33\0\17c1 = (12.748u,8.573u);
+ z33\0\17c2 = (12.018u,10.815u);
+ z33\0\17 = (11.627u,11.627u);
+ z33\0\18c1 = (11.262u,12.382u);
+ z33\0\18c2 = (10.468u,12.750u);
+ z33\0\18 = (10.301u,13.149u);
+ z33\0\19c1 = (10.030u,13.799u);
+ z33\0\19c2 = (11.529u,17.741u);
+ z33\0\19 = (8.191u,17.744u);
+ z33\0\20c1 = (5.327u,17.746u);
+ z33\0\20c2 = (6.043u,15.169u);
+ z33\0\20 = (4.806u,14.225u);
+ z33\0\21 = (3.624u,13.721u);
+ z33\0\22c1 = (2.401u,12.841u);
+ z33\0\22c2 = (0.017u,10.220u);
+ z33\1\0s = (9.395u,13.490u);
+ z33\1\0 = (8.637u,15.630u);
+ z33\1\1 = (6.745u,16.863u);
+ z33\1\2c1 = (9.201u,17.234u);
+ z33\1\2c2 = (10.919u,16.079u);
+ z33\2\0s = (8.191u,15.177u);
+ z33\2\0c1 = (7.584u,12.276u);
+ z33\2\0c2 = (10.108u,13.176u);
+ z33\2\0 = (10.840u,11.322u);
+ z33\2\1c1 = (9.148u,10.518u);
+ z33\2\1c2 = (9.832u,6.122u);
+ z33\2\1 = (9.079u,5.375u);
+ z33\2\2c1 = (8.745u,5.043u);
+ z33\2\2c2 = (7.693u,4.891u);
+ z33\2\2 = (7.227u,4.818u);
+ z33\2\3 = (6.572u,9.945u);
+ z33\2\4 = (5.541u,12.045u);
+ z33\2\5c1 = (6.294u,12.168u);
+ z33\2\5c2 = (7.817u,12.550u);
+ z33\2\5 = (6.888u,13.635u);
+ z33\2\6 = (6.112u,14.255u);
+ z33\2\7c1 = (5.604u,14.962u);
+ z33\2\7c2 = (6.583u,14.979u);
+ z33\2\7 = (6.986u,14.936u);
+ z33\2\8 = (6.986u,15.418u);
+ z33\3\0s = (6.504u,12.768u);
+ z33\3\0 = (4.119u,11.299u);
+ z33\3\1 = (2.168u,10.359u);
+ z33\3\2c1 = (3.310u,13.450u);
+ z33\3\2c2 = (4.682u,12.247u);
+ z33\3\2 = (5.300u,13.490u);
+ z33\4\0s = (6.263u,4.336u);
+ z33\4\0 = (3.854u,3.613u);
+ z33\4\1 = (3.372u,6.745u);
+ z33\4\2c1 = (4.870u,6.596u);
+ z33\4\2c2 = (5.591u,5.611u);
+ z33\5\0s = (9.636u,4.577u);
+ z33\5\0c1 = (9.636u,0.804u);
+ z33\5\0c2 = (9.524u,1.366u);
+ z33\5\0 = (6.260u,1.442u);
+ z33\5\1 = (2.891u,1.204u);
+ z33\5\2c1 = (3.305u,3.075u);
+ z33\5\2c2 = (7.896u,4.422u);
+ fill_or_unfill z33\0\0s
+ --z33\0\0
+ --z33\0\1
+ --z33\0\2
+ --z33\0\3
+ ..controls z33\0\4c1 and z33\0\4c2..z33\0\4
+ ..controls z33\0\5c1 and z33\0\5c2..z33\0\5
+ --z33\0\6
+ --z33\0\7
+ --z33\0\8
+ ..controls z33\0\9c1 and z33\0\9c2..z33\0\9
+ ..controls z33\0\10c1 and z33\0\10c2..z33\0\10
+ ..controls z33\0\11c1 and z33\0\11c2..z33\0\11
+ ..controls z33\0\12c1 and z33\0\12c2..z33\0\12
+ ..controls z33\0\13c1 and z33\0\13c2..z33\0\13
+ ..controls z33\0\14c1 and z33\0\14c2..z33\0\14
+ ..controls z33\0\15c1 and z33\0\15c2..z33\0\15
+ --z33\0\16
+ ..controls z33\0\17c1 and z33\0\17c2..z33\0\17
+ ..controls z33\0\18c1 and z33\0\18c2..z33\0\18
+ ..controls z33\0\19c1 and z33\0\19c2..z33\0\19
+ ..controls z33\0\20c1 and z33\0\20c2..z33\0\20
+ --z33\0\21
+ ..controls z33\0\22c1 and z33\0\22c2..cycle;
+ fill_or_unfill z33\1\0s
+ --z33\1\0
+ --z33\1\1
+ ..controls z33\1\2c1 and z33\1\2c2..cycle;
+ fill_or_unfill z33\2\0s
+ ..controls z33\2\0c1 and z33\2\0c2..z33\2\0
+ ..controls z33\2\1c1 and z33\2\1c2..z33\2\1
+ ..controls z33\2\2c1 and z33\2\2c2..z33\2\2
+ --z33\2\3
+ --z33\2\4
+ ..controls z33\2\5c1 and z33\2\5c2..z33\2\5
+ --z33\2\6
+ ..controls z33\2\7c1 and z33\2\7c2..z33\2\7
+ --z33\2\8
+ --cycle;
+ fill_or_unfill z33\3\0s
+ --z33\3\0
+ --z33\3\1
+ ..controls z33\3\2c1 and z33\3\2c2..z33\3\2
+ --cycle;
+ fill_or_unfill z33\4\0s
+ --z33\4\0
+ --z33\4\1
+ ..controls z33\4\2c1 and z33\4\2c2..cycle;
+ fill_or_unfill z33\5\0s
+ ..controls z33\5\0c1 and z33\5\0c2..z33\5\0
+ --z33\5\1
+ ..controls z33\5\2c1 and z33\5\2c2..cycle;
+ proof_labels (
+ 33\0\0,
+ 33\0\1,
+ 33\0\2,
+ 33\0\3,
+ 33\0\4,
+ 33\0\5,
+ 33\0\6,
+ 33\0\7,
+ 33\0\8,
+ 33\0\9,
+ 33\0\10,
+ 33\0\11,
+ 33\0\12,
+ 33\0\13,
+ 33\0\14,
+ 33\0\15,
+ 33\0\16,
+ 33\0\17,
+ 33\0\18,
+ 33\0\19,
+ 33\0\20,
+ 33\0\21,
+ 33\0\22,
+ 33\1\0,
+ 33\1\1,
+ 33\1\2,
+ 33\2\0,
+ 33\2\1,
+ 33\2\2,
+ 33\2\3,
+ 33\2\4,
+ 33\2\5,
+ 33\2\6,
+ 33\2\7,
+ 33\2\8,
+ 33\2\9,
+ 33\3\0,
+ 33\3\1,
+ 33\3\2,
+ 33\3\3,
+ 33\4\0,
+ 33\4\1,
+ 33\4\2,
+ 33\5\0,
+ 33\5\1,
+ 33\5\2,
+);
+endchar; % A2
+
+
+%% A28. Man with raised arms.
+%% (code as Y(89) 89+31 = 120)
+beginchar (120, 11.332u# + side#, 18.029u#, 0.000u#);
+ "A28";
+ z62\0\0s = (0.000u,18.029u); z62\0\0c1 = (0.039u,17.276u);
+ z62\0\0c2 = (1.481u,13.837u); z62\0\0 = (1.972u,13.256u);
+ z62\0\1c1 = (2.699u,12.397u); z62\0\1c2 = (4.029u,12.670u);
+ z62\0\1 = (4.552u,12.223u); z62\0\2c1 = (5.270u,11.610u);
+ z62\0\2c2 = (5.224u,10.208u); z62\0\2 = (4.336u,9.839u);
+ z62\0\3 = (4.948u,8.566u); z62\0\4 = (3.641u,1.379u);
+ z62\0\5 = (1.927u,0.684u); z62\0\6 = (1.927u,0.203u);
+ z62\0\7c1 = (6.311u,-1.170u); z62\0\7c2 = (4.615u,4.822u);
+ z62\0\7 = (6.278u,4.903u); z62\0\8c1 = (6.907u,4.934u);
+ z62\0\8c2 = (8.278u,1.237u); z62\0\8 = (5.541u,0.925u);
+ z62\0\9 = (5.541u,0.203u); z62\0\10c1 = (6.119u,0.203u);
+ z62\0\10c2 = (7.440u,0.112u); z62\0\10 = (7.873u,0.518u);
+ z62\0\11c1 = (8.808u,1.397u); z62\0\11c2 = (7.563u,9.975u);
+ z62\0\11 = (8.271u,11.926u); z62\0\12c1 = (8.675u,13.040u);
+ z62\0\12c2 = (9.676u,12.467u); z62\0\12 = (10.308u,13.262u);
+ z62\0\13c1 = (10.652u,13.695u); z62\0\13c2 = (11.740u,17.295u);
+ z62\0\13 = (11.173u,17.594u); z62\0\14c1 = (10.601u,17.896u);
+ z62\0\14c2 = (10.174u,17.157u); z62\0\14 = (10.078u,16.705u);
+ z62\0\15c1 = (9.705u,14.955u); z62\0\15c2 = (10.283u,13.907u);
+ z62\0\15 = (7.950u,13.693u); z62\0\16c1 = (8.806u,19.335u);
+ z62\0\16c2 = (2.784u,16.978u); z62\0\16 = (4.336u,13.693u);
+ z62\0\17c1 = (0.564u,13.740u); z62\0\17c2 = (3.512u,17.272u);
+ z62\1\0s = (7.227u,14.416u); z62\1\0c1 = (6.879u,15.524u);
+ z62\1\0c2 = (7.215u,15.698u); z62\1\0 = (5.781u,15.861u);
+ z62\1\1 = (5.781u,16.343u); z62\1\2c1 = (7.175u,16.204u);
+ z62\1\2c2 = (7.685u,15.880u); z62\2\0s = (6.022u,14.898u);
+ z62\2\0c1 = (6.384u,12.937u); z62\2\0c2 = (7.169u,13.552u);
+ z62\2\0 = (7.519u,12.824u); z62\2\1c1 = (8.065u,11.690u);
+ z62\2\1c2 = (6.892u,10.044u); z62\2\1 = (5.781u,9.839u);
+ z62\2\2 = (5.611u,13.565u); z62\2\3 = (4.818u,14.657u);
+ z62\3\0s = (7.468u,9.116u); z62\3\0c1 = (7.113u,8.002u);
+ z62\3\0c2 = (7.568u,6.917u); z62\3\0 = (7.338u,6.274u);
+ z62\3\1c1 = (7.228u,5.968u); z62\3\1c2 = (7.033u,5.853u);
+ z62\3\1 = (6.716u,5.817u); z62\3\2c1 = (4.885u,5.607u);
+ z62\3\2c2 = (5.264u,9.719u);
+ fill_or_unfill z62\0\0s
+ ..controls z62\0\0c1 and z62\0\0c2..z62\0\0
+ ..controls z62\0\1c1 and z62\0\1c2..z62\0\1
+ ..controls z62\0\2c1 and z62\0\2c2..z62\0\2
+ --z62\0\3 --z62\0\4 --z62\0\5 --z62\0\6
+ ..controls z62\0\7c1 and z62\0\7c2..z62\0\7
+ ..controls z62\0\8c1 and z62\0\8c2..z62\0\8
+ --z62\0\9
+ ..controls z62\0\10c1 and z62\0\10c2..z62\0\10
+ ..controls z62\0\11c1 and z62\0\11c2..z62\0\11
+ ..controls z62\0\12c1 and z62\0\12c2..z62\0\12
+ ..controls z62\0\13c1 and z62\0\13c2..z62\0\13
+ ..controls z62\0\14c1 and z62\0\14c2..z62\0\14
+ ..controls z62\0\15c1 and z62\0\15c2..z62\0\15
+ ..controls z62\0\16c1 and z62\0\16c2..z62\0\16
+ ..controls z62\0\17c1 and z62\0\17c2..cycle;
+ fill_or_unfill z62\1\0s
+ ..controls z62\1\0c1 and z62\1\0c2..z62\1\0
+ --z62\1\1
+ ..controls z62\1\2c1 and z62\1\2c2..cycle;
+ fill_or_unfill z62\2\0s
+ ..controls z62\2\0c1 and z62\2\0c2..z62\2\0
+ ..controls z62\2\1c1 and z62\2\1c2..z62\2\1
+ --z62\2\2 --z62\2\3 --cycle;
+ fill_or_unfill z62\3\0s
+ ..controls z62\3\0c1 and z62\3\0c2..z62\3\0
+ ..controls z62\3\1c1 and z62\3\1c2..z62\3\1
+ ..controls z62\3\2c1 and z62\3\2c2..cycle;
+endchar; % A28
+
+
+%% D1. Man's head in profile.
+%% (code as Q(81) 81+31 = 112)
+beginchar (112, 9.197u# + side#, 8.871u#, 0.000u#);
+ "D1";
+ z32\0\0s = (0.000u,3.851u); z32\0\0c1 = (0.075u,3.245u);
+ z32\0\0c2 = (0.844u,3.732u); z32\0\0 = (0.778u,3.123u);
+ z32\0\1c1 = (0.905u,1.801u); z32\0\1c2 = (0.869u,1.324u);
+ z32\0\1 = (0.723u,0.442u); z32\0\2c1 = (1.068u,0.407u);
+ z32\0\2c2 = (1.302u,0.317u); z32\0\2 = (1.665u,0.442u);
+ z32\0\3c1 = (2.107u,0.511u); z32\0\3c2 = (2.518u,0.947u);
+ z32\0\3 = (2.919u,0.986u); z32\0\4c1 = (3.440u,1.037u);
+ z32\0\4c2 = (4.199u,-0.053u); z32\0\4 = (6.022u,0.000u);
+ z32\0\5c1 = (9.824u,0.111u); z32\0\5c2 = (10.897u,7.849u);
+ z32\0\5 = (5.541u,8.798u); z32\0\6c1 = (4.348u,9.010u);
+ z32\0\6c2 = (3.169u,8.766u); z32\0\6 = (2.213u,7.995u);
+ z32\0\7c1 = (1.579u,7.484u); z32\0\7c2 = (1.269u,6.777u);
+ z32\0\7 = (1.068u,5.950u); z32\0\8c1 = (0.582u,5.274u);
+ z32\0\8c2 = (0.202u,4.513u); z32\1\0s = (7.709u,1.683u);
+ z32\1\0c1 = (3.871u,2.694u); z32\1\0c2 = (8.669u,4.546u);
+ z32\1\0 = (4.577u,5.746u); z32\1\1c1 = (3.584u,6.038u);
+ z32\1\1c2 = (2.987u,6.250u); z32\1\1 = (1.927u,6.260u);
+ z32\1\2c1 = (3.658u,10.462u); z32\1\2c2 = (10.910u,7.565u);
+ z32\2\0s = (5.348u,4.895u); z32\2\0c1 = (5.561u,5.047u);
+ z32\2\0c2 = (6.353u,4.407u); z32\2\0 = (5.531u,3.280u);
+ z32\2\1c1 = (5.531u,2.792u); z32\2\1c2 = (5.772u,2.060u);
+ z32\2\1 = (6.745u,0.719u); z32\2\2c1 = (4.453u,0.720u);
+ z32\2\2c2 = (5.129u,0.972u); z32\2\2 = (3.348u,1.751u);
+ z32\2\3c1 = (2.255u,1.480u); z32\2\3c2 = (1.359u,1.438u);
+ z32\2\3 = (1.243u,2.075u); z32\2\4c1 = (1.488u,3.478u);
+ z32\2\4c2 = (1.032u,3.759u); z32\2\4 = (0.752u,3.899u);
+ z32\2\5c1 = (0.815u,4.745u); z32\2\5c2 = (1.068u,5.253u);
+ z32\2\5 = (1.512u,5.506u); z32\2\6 = (1.639u,5.760u);
+ z32\2\7c1 = (2.273u,5.739u); z32\2\7c2 = (2.913u,5.576u);
+ z32\2\7 = (3.342u,5.500u); z32\2\8c1 = (4.628u,5.124u);
+ z32\2\8c2 = (4.010u,4.269u); z32\3\0s = (1.588u,4.851u);
+ z32\3\0c1 = (1.775u,4.371u); z32\3\0c2 = (3.428u,4.317u);
+ z32\3\0 = (3.641u,4.851u); z32\3\1c1 = (2.921u,5.197u);
+ z32\3\1c2 = (2.175u,5.171u);
+ fill_or_unfill z32\0\0s
+ ..controls z32\0\0c1 and z32\0\0c2..z32\0\0
+ ..controls z32\0\1c1 and z32\0\1c2..z32\0\1
+ ..controls z32\0\2c1 and z32\0\2c2..z32\0\2
+ ..controls z32\0\3c1 and z32\0\3c2..z32\0\3
+ ..controls z32\0\4c1 and z32\0\4c2..z32\0\4
+ ..controls z32\0\5c1 and z32\0\5c2..z32\0\5
+ ..controls z32\0\6c1 and z32\0\6c2..z32\0\6
+ ..controls z32\0\7c1 and z32\0\7c2..z32\0\7
+ ..controls z32\0\8c1 and z32\0\8c2..cycle;
+ fill_or_unfill z32\1\0s
+ ..controls z32\1\0c1 and z32\1\0c2..z32\1\0
+ ..controls z32\1\1c1 and z32\1\1c2..z32\1\1
+ ..controls z32\1\2c1 and z32\1\2c2..cycle;
+ fill_or_unfill z32\2\0s
+ ..controls z32\2\0c1 and z32\2\0c2..z32\2\0
+ ..controls z32\2\1c1 and z32\2\1c2..z32\2\1
+ ..controls z32\2\2c1 and z32\2\2c2..z32\2\2
+ ..controls z32\2\3c1 and z32\2\3c2..z32\2\3
+ ..controls z32\2\4c1 and z32\2\4c2..z32\2\4
+ ..controls z32\2\5c1 and z32\2\5c2..z32\2\5
+ --z32\2\6
+ ..controls z32\2\7c1 and z32\2\7c2..z32\2\7
+ ..controls z32\2\8c1 and z32\2\8c2..cycle;
+ fill_or_unfill z32\3\0s
+ ..controls z32\3\0c1 and z32\3\0c2..z32\3\0
+ ..controls z32\3\1c1 and z32\3\1c2..cycle;
+endchar; % D1
+
+
+%% D2: full face
+%% (code as E(69) 69+31 = 100)
+%% (code as q(113) 113+31 = 144)
+beginchar (144, 7.553u# + side#, 8.079u#, 0.000u#);
+ "D2";
+ z33\0\0s = (0.829u,5.895u); z33\0\0c1 = (-0.154u,5.895u);
+ z33\0\0c2 = (-0.400u,4.667u); z33\0\0 = (0.829u,3.930u);
+ z33\0\1c1 = (1.074u,3.439u); z33\0\1c2 = (1.811u,2.456u);
+ z33\0\1 = (2.794u,0.982u); z33\0\2 = (2.794u,0.000u);
+ z33\0\3 = (4.759u,0.000u); z33\0\4 = (4.759u,0.982u);
+ z33\0\5c1 = (5.742u,2.456u); z33\0\5c2 = (6.478u,3.439u);
+ z33\0\5 = (6.724u,3.930u); z33\0\6c1 = (7.952u,4.667u);
+ z33\0\6c2 = (7.706u,5.895u); z33\0\6 = (6.724u,5.895u);
+ z33\0\7c1 = (5.742u,8.843u); z33\0\7c2 = (1.811u,8.843u);
+ z33\1\0s = (6.724u,5.404u); z33\1\0c1 = (7.706u,5.404u);
+ z33\1\0c2 = (7.215u,4.421u); z33\1\0 = (6.233u,3.930u);
+ z33\1\1c1 = (5.250u,2.211u); z33\1\1c2 = (4.759u,1.474u);
+ z33\1\1 = (3.776u,1.474u); z33\1\2c1 = (2.794u,1.474u);
+ z33\1\2c2 = (2.303u,2.211u); z33\1\2 = (1.320u,3.930u);
+ z33\1\3c1 = (0.338u,4.421u); z33\1\3c2 = (-0.154u,5.404u);
+ z33\1\3 = (0.829u,5.404u); z33\1\4c1 = (2.794u,7.860u);
+ z33\1\4c2 = (4.759u,7.860u); z33\2\0s = (4.309u,5.198u);
+ z33\2\0c1 = (4.309u,4.461u); z33\2\0c2 = (5.782u,4.461u);
+ z33\2\0 = (5.782u,5.198u); z33\3\0s = (2.556u,2.694u);
+ z33\3\0c1 = (2.556u,2.202u); z33\3\0c2 = (5.012u,2.202u);
+ z33\3\0 = (5.012u,2.694u); z33\4\0s = (1.694u,5.160u);
+ z33\4\0c1 = (1.694u,4.423u); z33\4\0c2 = (3.168u,4.423u);
+ z33\4\0 = (3.168u,5.160u);
+ fill_or_unfill z33\0\0s
+ ..controls z33\0\0c1 and z33\0\0c2..z33\0\0
+ ..controls z33\0\1c1 and z33\0\1c2..z33\0\1
+ --z33\0\2 --z33\0\3 --z33\0\4
+ ..controls z33\0\5c1 and z33\0\5c2..z33\0\5
+ ..controls z33\0\6c1 and z33\0\6c2..z33\0\6
+ ..controls z33\0\7c1 and z33\0\7c2..cycle;
+ fill_or_unfill z33\1\0s
+ ..controls z33\1\0c1 and z33\1\0c2..z33\1\0
+ ..controls z33\1\1c1 and z33\1\1c2..z33\1\1
+ ..controls z33\1\2c1 and z33\1\2c2..z33\1\2
+ ..controls z33\1\3c1 and z33\1\3c2..z33\1\3
+ ..controls z33\1\4c1 and z33\1\4c2..cycle;
+ fill_or_unfill z33\2\0s
+ ..controls z33\2\0c1 and z33\2\0c2..z33\2\0
+ --cycle;
+ fill_or_unfill z33\3\0s
+ ..controls z33\3\0c1 and z33\3\0c2..z33\3\0
+ --cycle;
+ fill_or_unfill z33\4\0s
+ ..controls z33\4\0c1 and z33\4\0c2..z33\4\0
+ --cycle;
+endchar; % D2
+
+
+%% D4 An eye.
+%% (code as e(101) 101+31 = 132)
+beginchar (132, 17.146u# + side#, 5.017u#, 0.000u#);
+ "D4";
+ z35\0\0s = (17.146u,2.935u); z35\0\0 = (15.625u,2.935u);
+ z35\0\1c1 = (10.096u,5.838u); z35\0\1c2 = (4.379u,5.305u);
+ z35\0\1 = (2.942u,3.764u); z35\0\2c1 = (2.409u,3.193u);
+ z35\0\2c2 = (1.307u,1.993u); z35\0\2 = (0.000u,0.884u);
+ z35\0\3 = (0.654u,0.474u); z35\0\4 = (1.309u,1.047u);
+ z35\0\5c1 = (4.253u,-0.344u); z35\0\5c2 = (8.022u,-0.659u);
+ z35\0\5 = (15.625u,2.036u); z35\0\6 = (17.077u,2.036u);
+ z35\1\0s = (14.660u,2.489u); z35\1\0c1 = (9.069u,0.625u);
+ z35\1\0c2 = (4.987u,0.448u); z35\1\0 = (1.970u,1.601u);
+ z35\1\1c1 = (3.429u,4.037u); z35\1\1c2 = (6.079u,4.448u);
+ z35\1\1 = (8.627u,4.155u); z35\1\2c1 = (11.174u,3.862u);
+ z35\1\2c2 = (13.617u,2.866u); z35\2\0s = (6.938u,4.933u);
+ z35\2\0c1 = (3.451u,4.470u); z35\2\0c2 = (4.581u,0.105u);
+ z35\2\0 = (7.209u,0.304u); z35\2\1c1 = (9.933u,0.511u);
+ z35\2\1c2 = (10.271u,4.895u); z35\3\0s = (6.756u,4.082u);
+ z35\3\0c1 = (8.893u,4.271u); z35\3\0c2 = (9.026u,1.478u);
+ z35\3\0 = (7.264u,1.204u); z35\3\1c1 = (5.423u,0.917u);
+ z35\3\1c2 = (4.808u,3.599u);
+ fill_or_unfill z35\0\0s
+ --z35\0\0
+ ..controls z35\0\1c1 and z35\0\1c2..z35\0\1
+ ..controls z35\0\2c1 and z35\0\2c2..z35\0\2
+ --z35\0\3 --z35\0\4
+ ..controls z35\0\5c1 and z35\0\5c2..z35\0\5
+ --z35\0\6 --cycle;
+ fill_or_unfill z35\1\0s
+ ..controls z35\1\0c1 and z35\1\0c2..z35\1\0
+ ..controls z35\1\1c1 and z35\1\1c2..z35\1\1
+ ..controls z35\1\2c1 and z35\1\2c2..cycle;
+ fill_or_unfill z35\2\0s
+ ..controls z35\2\0c1 and z35\2\0c2..z35\2\0
+ ..controls z35\2\1c1 and z35\2\1c2..cycle;
+ fill_or_unfill z35\3\0s
+ ..controls z35\3\0c1 and z35\3\0c2..z35\3\0
+ ..controls z35\3\1c1 and z35\3\1c2..cycle;
+endchar; % D4
+
+
+%% D21: a pointy ellipse, or mouth
+%% (code as r(114) 114+31 = 145)
+beginchar (145, 17.532u# + side#, 4.914u#, 0.000u#);
+ "D21";
+ z52\0\0s = (17.532u,2.457u); z52\0\0c1 = (13.149u,5.744u);
+ z52\0\0c2 = (4.383u,5.744u); z52\0\0 = (0.000u,2.457u);
+ z52\0\1c1 = (4.383u,-0.831u); z52\0\1c2 = (13.149u,-0.831u);
+ z52\1\0s = (16.437u,2.457u); z52\1\0c1 = (14.519u,1.635u);
+ z52\1\0c2 = (11.509u,0.944u); z52\1\0 = (8.766u,0.950u);
+ z52\1\1c1 = (5.750u,0.957u); z52\1\1c2 = (3.698u,1.224u);
+ z52\1\1 = (1.370u,2.457u); z52\1\2c1 = (3.698u,3.416u);
+ z52\1\2c2 = (6.023u,3.970u); z52\1\2 = (8.766u,3.964u);
+ z52\1\3c1 = (11.783u,3.957u); z52\1\3c2 = (14.245u,3.279u);
+ fill_or_unfill z52\0\0s
+ ..controls z52\0\0c1 and z52\0\0c2..z52\0\0
+ ..controls z52\0\1c1 and z52\0\1c2..cycle;
+ fill_or_unfill z52\1\0s
+ ..controls z52\1\0c1 and z52\1\0c2..z52\1\0
+ ..controls z52\1\1c1 and z52\1\1c2..z52\1\1
+ ..controls z52\1\2c1 and z52\1\2c2..z52\1\2
+ ..controls z52\1\3c1 and z52\1\3c2..cycle;
+endchar; % D21
+
+
+%% D36: a forearm and hand
+%% (code as a(97) 97+31 = 128)
+%% (code as A(65) 65+31 = 96)
+beginchar (96, 18.328u# + side#, 5.598u#, 0.000u#);
+ "D36";
+ z69\0\0s = (15.422u,1.609u);
+ z69\0\0 = (9.159u,1.638u); z69\0\1 = (6.267u,1.427u);
+ z69\0\2c1 = (3.977u,1.549u); z69\0\2c2 = (4.014u,3.167u);
+ z69\0\2 = (0.969u,1.917u); z69\0\3c1 = (0.891u,1.128u);
+ z69\0\3c2 = (3.543u,2.109u); z69\0\3 = (3.615u,0.940u);
+ z69\0\4c1 = (2.670u,0.339u); z69\0\4c2 = (0.027u,1.622u);
+ z69\0\4 = (0.000u,0.476u); z69\0\5c1 = (0.840u,0.214u);
+ z69\0\5c2 = (1.763u,0.004u); z69\0\5 = (2.648u,0.000u);
+ z69\0\6 = (6.986u,0.445u); z69\0\7 = (17.917u,0.395u);
+ z69\0\8c1 = (18.406u,0.774u); z69\0\8c2 = (18.315u,2.448u);
+ z69\0\8 = (18.320u,3.042u); z69\0\9c1 = (18.324u,3.501u);
+ z69\0\9c2 = (18.372u,4.502u); z69\0\9 = (18.184u,4.895u);
+ z69\0\10c1 = (17.845u,5.603u); z69\0\10c2 = (16.233u,5.933u);
+ z69\0\10 = (15.823u,5.144u); z69\0\11c1 = (15.544u,4.609u);
+ z69\0\11c2 = (15.428u,2.296u); z69\1\0s = (17.587u,0.876u);
+ z69\1\0c1 = (13.966u,1.319u); z69\1\0c2 = (17.541u,7.304u);
+ z69\1\0 = (17.598u,3.285u);
+ fill_or_unfill z69\0\0s
+ --z69\0\0 --z69\0\1
+ ..controls z69\0\2c1 and z69\0\2c2..z69\0\2
+ ..controls z69\0\3c1 and z69\0\3c2..z69\0\3
+ ..controls z69\0\4c1 and z69\0\4c2..z69\0\4
+ ..controls z69\0\5c1 and z69\0\5c2..z69\0\5
+ --z69\0\6 --z69\0\7
+ ..controls z69\0\8c1 and z69\0\8c2..z69\0\8
+ ..controls z69\0\9c1 and z69\0\9c2..z69\0\9
+ ..controls z69\0\10c1 and z69\0\10c2..z69\0\10
+ ..controls z69\0\11c1 and z69\0\11c2..cycle;
+ fill_or_unfill z69\1\0s
+ ..controls z69\1\0c1 and z69\1\0c2..z69\1\0
+ --cycle;
+endchar; % D36
+
+
+%% D46: a mitt
+%% (code as d(100) 100+31 = 131)
+beginchar (131, 17.000u# + side#, 5.558u#, 0.000u#);
+ "D46";
+ z79\0\0s = (3.284u,3.373u); z79\0\0c1 = (-1.287u,3.975u);
+ z79\0\0c2 = (-0.979u,0.007u); z79\0\0 = (3.284u,0.000u);
+ z79\0\1 = (17.000u,0.416u); z79\0\2 = (16.998u,3.725u);
+ z79\0\3c1 = (15.015u,3.708u); z79\0\3c2 = (12.289u,4.189u);
+ z79\0\3 = (10.579u,4.509u); z79\0\4c1 = (6.678u,5.858u);
+ z79\0\4c2 = (3.470u,5.953u); z79\0\4 = (3.951u,4.135u);
+ z79\0\5c1 = (4.112u,3.654u); z79\0\5c2 = (6.944u,3.975u);
+ z79\0\5 = (7.960u,3.013u); z79\1\0s = (16.363u,3.083u);
+ z79\1\0 = (16.346u,1.193u); z79\1\1 = (14.632u,1.205u);
+ z79\1\2 = (8.850u,0.723u); z79\1\3 = (3.069u,0.723u);
+ z79\1\4c1 = (0.017u,0.739u); z79\1\4c2 = (-0.004u,3.280u);
+ z79\1\4 = (3.069u,2.650u); z79\1\5c1 = (5.225u,2.655u);
+ z79\1\5c2 = (7.725u,2.383u); z79\1\5 = (9.289u,2.829u);
+ z79\1\6c1 = (7.796u,4.562u); z79\1\6c2 = (4.630u,4.024u);
+ z79\1\6 = (4.593u,4.349u); z79\1\7c1 = (4.152u,6.593u);
+ z79\1\7c2 = (11.977u,2.770u);
+ fill_or_unfill z79\0\0s
+ ..controls z79\0\0c1 and z79\0\0c2..z79\0\0
+ --z79\0\1 --z79\0\2
+ ..controls z79\0\3c1 and z79\0\3c2..z79\0\3
+ ..controls z79\0\4c1 and z79\0\4c2..z79\0\4
+ ..controls z79\0\5c1 and z79\0\5c2..z79\0\5
+ --cycle;
+ fill_or_unfill z79\1\0s
+ --z79\1\0 --z79\1\1 --z79\1\2 --z79\1\3
+ ..controls z79\1\4c1 and z79\1\4c2..z79\1\4
+ ..controls z79\1\5c1 and z79\1\5c2..z79\1\5
+ ..controls z79\1\6c1 and z79\1\6c2..z79\1\6
+ ..controls z79\1\7c1 and z79\1\7c2..cycle;
+endchar; % D46
+
+
+%%% D47. Palm of hand.
+%%% (code as P(80) 80+31 = 111)
+beginchar (111, 17.566u# + side#, 4.327u#, 0.000u#);
+ "D47";
+ z80\0\0s = (5.461u,4.327u); z80\0\0c1 = (5.841u,2.049u);
+ z80\0\0c2 = (8.256u,2.694u); z80\0\0 = (10.038u,2.652u);
+ z80\0\1 = (10.038u,2.170u); z80\0\2c1 = (8.450u,2.170u);
+ z80\0\2c2 = (7.028u,2.230u); z80\0\2 = (5.461u,2.513u);
+ z80\0\3c1 = (4.546u,2.678u); z80\0\3c2 = (1.477u,3.625u);
+ z80\0\3 = (0.897u,3.517u); z80\0\4c1 = (0.395u,3.424u);
+ z80\0\4c2 = (0.114u,3.132u); z80\0\4 = (0.000u,2.639u);
+ z80\0\5c1 = (-0.526u,0.354u); z80\0\5c2 = (5.167u,0.020u);
+ z80\0\5 = (6.665u,0.003u); z80\0\6c1 = (8.021u,-0.013u);
+ z80\0\6c2 = (9.454u,0.027u); z80\0\6 = (10.760u,0.434u);
+ z80\0\7 = (12.929u,1.398u); z80\0\8c1 = (13.826u,1.565u);
+ z80\0\8c2 = (14.895u,1.431u); z80\0\8 = (15.819u,1.398u);
+ z80\0\9c1 = (18.062u,1.490u); z80\0\9c2 = (18.171u,3.727u);
+ z80\0\9 = (16.059u,3.645u); z80\0\10 = (12.756u,3.357u);
+ z80\0\11c1 = (11.371u,3.466u); z80\0\11c2 = (10.438u,4.404u);
+ z80\0\11 = (8.833u,4.327u); z80\1\0s = (10.038u,3.615u);
+ z80\1\0c1 = (12.912u,2.713u); z80\1\0c2 = (13.460u,2.382u);
+ z80\1\0 = (16.542u,3.133u); z80\1\1 = (16.783u,2.176u);
+ z80\1\2 = (13.031u,2.176u); z80\1\3c1 = (12.013u,2.038u);
+ z80\1\3c2 = (11.082u,1.234u); z80\1\3 = (10.038u,0.975u);
+ z80\1\4c1 = (8.557u,0.609u); z80\1\4c2 = (1.372u,0.561u);
+ z80\1\4 = (0.683u,1.996u); z80\1\5c1 = (0.270u,2.856u);
+ z80\1\5c2 = (1.308u,2.917u); z80\1\5 = (1.848u,2.795u);
+ z80\1\6c1 = (4.094u,2.289u); z80\1\6c2 = (6.250u,1.527u);
+ z80\1\6 = (8.592u,1.457u); z80\1\7c1 = (10.131u,1.411u);
+ z80\1\7c2 = (11.752u,2.028u); z80\1\7 = (9.797u,3.374u);
+ fill_or_unfill z80\0\0s
+ ..controls z80\0\0c1 and z80\0\0c2..z80\0\0
+ --z80\0\1
+ ..controls z80\0\2c1 and z80\0\2c2..z80\0\2
+ ..controls z80\0\3c1 and z80\0\3c2..z80\0\3
+ ..controls z80\0\4c1 and z80\0\4c2..z80\0\4
+ ..controls z80\0\5c1 and z80\0\5c2..z80\0\5
+ ..controls z80\0\6c1 and z80\0\6c2..z80\0\6
+ --z80\0\7
+ ..controls z80\0\8c1 and z80\0\8c2..z80\0\8
+ ..controls z80\0\9c1 and z80\0\9c2..z80\0\9
+ --z80\0\10
+ ..controls z80\0\11c1 and z80\0\11c2..z80\0\11
+ --cycle;
+ fill_or_unfill z80\1\0s
+ ..controls z80\1\0c1 and z80\1\0c2..z80\1\0
+ --z80\1\1 --z80\1\2
+ ..controls z80\1\3c1 and z80\1\3c2..z80\1\3
+ ..controls z80\1\4c1 and z80\1\4c2..z80\1\4
+ ..controls z80\1\5c1 and z80\1\5c2..z80\1\5
+ ..controls z80\1\6c1 and z80\1\6c2..z80\1\6
+ ..controls z80\1\7c1 and z80\1\7c2..z80\1\7
+ --cycle;
+endchar; % D47
+
+
+%% D54: legs walking leftwards
+%% (code as U(85) 85+31 = 116)
+%% (code as L(76) 76+31 = 107)
+beginchar (107, 10.043u# + side#, 7.983u#, 0.000u#);
+ "D54";
+ z88\0\0s = (0.000u,0.963u); z88\0\0 = (0.241u,0.000u);
+ z88\0\1 = (3.301u,0.518u); z88\0\2 = (6.745u,6.745u);
+ z88\0\3c1 = (7.666u,5.981u); z88\0\3c2 = (8.001u,5.197u);
+ z88\0\3 = (8.416u,4.095u); z88\0\4c1 = (9.989u,-0.087u);
+ z88\0\4c2 = (7.088u,2.355u); z88\0\4 = (6.263u,0.241u);
+ z88\0\5c1 = (6.844u,0.253u); z88\0\5c2 = (9.399u,0.347u);
+ z88\0\5 = (9.732u,0.647u); z88\0\6c1 = (10.785u,1.595u);
+ z88\0\6c2 = (9.007u,7.983u); z88\0\6 = (6.989u,7.983u);
+ z88\0\7c1 = (4.516u,7.983u); z88\0\7c2 = (5.267u,1.710u);
+ fill_or_unfill z88\0\0s
+ --z88\0\0 --z88\0\1 --z88\0\2
+ ..controls z88\0\3c1 and z88\0\3c2..z88\0\3
+ ..controls z88\0\4c1 and z88\0\4c2..z88\0\4
+ ..controls z88\0\5c1 and z88\0\5c2..z88\0\5
+ ..controls z88\0\6c1 and z88\0\6c2..z88\0\6
+ ..controls z88\0\7c1 and z88\0\7c2..cycle;
+endchar; % D54
+
+
+%% D58: leg and foot
+%% (code as b(98) 98+31 = 129)
+beginchar (129, 9.836u# + side#, 16.353u#, 0.000u#);
+ "D58";
+ z92\0\0s = (7.558u,16.134u); z92\0\0c1 = (6.778u,15.139u);
+ z92\0\0c2 = (7.527u,8.027u); z92\0\0 = (7.558u,6.263u);
+ z92\0\1c1 = (7.485u,1.739u); z92\0\1c2 = (0.817u,2.085u);
+ z92\0\1 = (0.088u,0.842u); z92\0\2c1 = (-0.380u,0.042u);
+ z92\0\2c2 = (1.097u,0.008u); z92\0\2 = (1.493u,0.000u);
+ z92\0\3 = (6.311u,0.198u); z92\0\4c1 = (7.107u,0.198u);
+ z92\0\4c2 = (7.908u,-0.089u); z92\0\4 = (8.707u,0.035u);
+ z92\0\5c1 = (9.112u,0.098u); z92\0\5c2 = (9.358u,0.194u);
+ z92\0\5 = (9.632u,0.557u); z92\0\6c1 = (10.065u,1.351u);
+ z92\0\6c2 = (9.685u,3.346u); z92\0\6 = (9.632u,4.335u);
+ z92\0\7 = (9.499u,15.995u); z92\0\8c1 = (9.028u,16.550u);
+ z92\0\8c2 = (8.169u,16.352u); z92\1\0s = (8.961u,0.722u);
+ z92\1\0 = (2.698u,0.722u); z92\1\1c1 = (4.054u,1.922u);
+ z92\1\1c2 = (6.176u,2.208u); z92\1\1 = (7.449u,3.465u);
+ z92\1\2c1 = (9.291u,5.284u); z92\1\2c2 = (7.462u,12.926u);
+ z92\1\2 = (8.238u,15.658u); z92\1\3 = (8.881u,14.882u);
+ z92\1\4 = (8.720u,7.708u);
+ fill_or_unfill z92\0\0s
+ ..controls z92\0\0c1 and z92\0\0c2..z92\0\0
+ ..controls z92\0\1c1 and z92\0\1c2..z92\0\1
+ ..controls z92\0\2c1 and z92\0\2c2..z92\0\2
+ --z92\0\3
+ ..controls z92\0\4c1 and z92\0\4c2..z92\0\4
+ ..controls z92\0\5c1 and z92\0\5c2..z92\0\5
+ ..controls z92\0\6c1 and z92\0\6c2..z92\0\6
+ --z92\0\7
+ ..controls z92\0\8c1 and z92\0\8c2..cycle;
+ fill_or_unfill z92\1\0s
+ --z92\1\0
+ ..controls z92\1\1c1 and z92\1\1c2..z92\1\1
+ ..controls z92\1\2c1 and z92\1\2c2..z92\1\2
+ --z92\1\3 --z92\1\4 --cycle;
+endchar; % D58
+
+
+%% E23: A lion lying down
+%% (code as l(108) = 108+31 = 139)
+beginchar (139, 17.288u# + side#, 7.010u#, 0.000u#);
+ "E23";
+ z55\0\0s = (4.577u,2.690u); z55\0\0c1 = (4.426u,0.077u);
+ z55\0\0c2 = (1.837u,1.353u); z55\0\0 = (0.000u,0.763u);
+ z55\0\1 = (0.000u,0.301u); z55\0\2 = (5.502u,0.301u);
+ z55\0\3 = (6.766u,0.845u); z55\0\4 = (10.840u,1.003u);
+ z55\0\5 = (10.600u,0.246u); z55\0\6c1 = (11.421u,0.017u);
+ z55\0\6c2 = (16.303u,-0.169u); z55\0\6 = (16.931u,0.246u);
+ z55\0\7c1 = (18.276u,1.020u); z55\0\7c2 = (15.533u,3.569u);
+ z55\0\7 = (14.695u,3.893u); z55\0\8 = (15.417u,5.099u);
+ z55\0\9c1 = (12.738u,5.073u); z55\0\9c2 = (13.048u,3.553u);
+ z55\0\9 = (9.955u,4.214u); z55\0\10c1 = (8.491u,4.526u);
+ z55\0\10c2 = (8.068u,7.437u); z55\0\10 = (5.347u,6.972u);
+ z55\0\11c1 = (4.792u,6.877u); z55\0\11c2 = (2.583u,4.731u);
+ z55\0\11 = (2.632u,4.179u); z55\0\12c1 = (2.693u,3.496u);
+ z55\0\12c2 = (4.009u,2.815u); z55\1\0s = (5.781u,6.544u);
+ z55\1\0 = (6.504u,6.303u); z55\2\0s = (8.191u,4.376u);
+ z55\2\0 = (6.745u,3.893u); z55\2\1 = (6.504u,6.062u);
+ z55\2\2c1 = (7.466u,5.850u); z55\2\2c2 = (7.979u,5.338u);
+ z55\3\0s = (5.300u,5.581u); z55\3\0c1 = (6.216u,4.989u);
+ z55\3\0c2 = (6.597u,4.122u); z55\3\0 = (5.161u,3.837u);
+ z55\3\1c1 = (4.665u,3.738u); z55\3\1c2 = (4.103u,4.033u);
+ z55\3\1 = (3.613u,4.135u); z55\3\2 = (3.854u,4.858u);
+ z55\3\3 = (5.300u,4.858u); z55\4\0s = (12.768u,2.449u);
+ z55\4\0 = (7.135u,1.613u); z55\4\1 = (5.059u,1.003u);
+ z55\4\2c1 = (6.022u,2.341u); z55\4\2c2 = (7.345u,3.787u);
+ z55\4\2 = (9.114u,3.612u); z55\4\3 = (11.460u,3.273u);
+ z55\4\4c1 = (12.325u,3.308u); z55\4\4c2 = (12.366u,3.185u);
+ z55\5\0s = (16.622u,1.003u); z55\5\0c1 = (15.199u,1.235u);
+ z55\5\0c2 = (13.442u,1.807u); z55\5\0 = (13.249u,3.412u);
+ z55\5\1c1 = (15.022u,3.251u); z55\5\1c2 = (15.814u,2.541u);
+ z55\6\0s = (13.972u,1.243u); z55\6\0 = (11.563u,1.243u);
+ fill_or_unfill z55\0\0s
+ ..controls z55\0\0c1 and z55\0\0c2..z55\0\0
+ --z55\0\1 --z55\0\2 --z55\0\3 --z55\0\4 --z55\0\5
+ ..controls z55\0\6c1 and z55\0\6c2..z55\0\6
+ ..controls z55\0\7c1 and z55\0\7c2..z55\0\7
+ --z55\0\8
+ ..controls z55\0\9c1 and z55\0\9c2..z55\0\9
+ ..controls z55\0\10c1 and z55\0\10c2..z55\0\10
+ ..controls z55\0\11c1 and z55\0\11c2..z55\0\11
+ ..controls z55\0\12c1 and z55\0\12c2..cycle;
+ fill_or_unfill z55\1\0s
+ --z55\1\0 --cycle;
+ fill_or_unfill z55\2\0s
+ --z55\2\0 --z55\2\1
+ ..controls z55\2\2c1 and z55\2\2c2..cycle;
+ fill_or_unfill z55\3\0s
+ ..controls z55\3\0c1 and z55\3\0c2..z55\3\0
+ ..controls z55\3\1c1 and z55\3\1c2..z55\3\1
+ --z55\3\2 --z55\3\3 --cycle;
+ fill_or_unfill z55\4\0s
+ --z55\4\0 --z55\4\1
+ ..controls z55\4\2c1 and z55\4\2c2..z55\4\2
+ --z55\4\3
+ ..controls z55\4\4c1 and z55\4\4c2..cycle;
+ fill_or_unfill z55\5\0s
+ ..controls z55\5\0c1 and z55\5\0c2..z55\5\0
+ ..controls z55\5\1c1 and z55\5\1c2..cycle;
+ fill_or_unfill z55\6\0s
+ --z55\6\0 --cycle;
+endchar; % E23
+
+
+%% F1. An ox head.
+%% (code as K(75) 75+31 = 106)
+%% (code as X(88) 88+31 = 119)
+beginchar (119, 8.026u# + side#, 8.087u#, 0.000u#);
+ "F1";
+ z32\0\0s = (0.744u,8.087u); z32\0\0 = (1.984u,5.678u);
+ z32\0\1 = (0.000u,0.911u); z32\0\2 = (1.467u,0.000u);
+ z32\0\3 = (6.376u,0.526u); z32\0\4 = (6.767u,4.233u);
+ z32\0\5c1 = (7.823u,4.835u); z32\0\5c2 = (8.183u,5.148u);
+ z32\0\5 = (7.971u,6.401u); z32\0\6 = (5.803u,5.678u);
+ z32\0\7 = (7.008u,8.087u); z32\0\8 = (4.358u,6.318u);
+ z32\1\0s = (3.639u,5.302u); z32\1\0c1 = (6.050u,5.699u);
+ z32\1\0c2 = (7.211u,2.079u); z32\1\0 = (5.055u,1.103u);
+ z32\1\1c1 = (4.404u,0.808u); z32\1\1c2 = (3.611u,0.872u);
+ z32\1\1 = (2.912u,0.792u); z32\1\2c1 = (-1.360u,0.301u);
+ z32\1\2c2 = (1.868u,4.461u); z32\2\0s = (6.810u,5.175u);
+ z32\3\0s = (2.672u,3.028u); z32\3\0 = (3.635u,4.233u);
+ z32\3\1c1 = (2.716u,4.071u); z32\3\1c2 = (2.544u,3.984u);
+ fill_or_unfill z32\0\0s
+ --z32\0\0 --z32\0\1 --z32\0\2 --z32\0\3 --z32\0\4
+ ..controls z32\0\5c1 and z32\0\5c2..z32\0\5
+ --z32\0\6 --z32\0\7 --z32\0\8 --cycle;
+ fill_or_unfill z32\1\0s
+ ..controls z32\1\0c1 and z32\1\0c2..z32\1\0
+ ..controls z32\1\1c1 and z32\1\1c2..z32\1\1
+ ..controls z32\1\2c1 and z32\1\2c2..cycle;
+ fill_or_unfill z32\2\0s
+ --cycle;
+ fill_or_unfill z32\3\0s
+ --z32\3\0
+ ..controls z32\3\1c1 and z32\3\1c2..cycle;
+endchar; % F1
+
+
+%% F34: stoppered jar
+%% (code as G(71) 71+31 = 102)
+beginchar (102, 8.179u# + side#, 7.922u#, 0.000u#);
+ "F34";
+ z65\0\0s = (2.168u,7.922u); z65\0\0 = (1.927u,6.477u);
+ z65\0\1c1 = (1.174u,6.696u); z65\0\1c2 = (0.019u,6.971u);
+ z65\0\1 = (0.000u,5.759u); z65\0\2c1 = (-0.013u,4.961u);
+ z65\0\2c2 = (1.117u,4.366u); z65\0\2 = (1.482u,3.576u);
+ z65\0\3c1 = (1.896u,2.678u); z65\0\3c2 = (2.014u,1.538u);
+ z65\0\3 = (2.611u,0.730u); z65\0\4c1 = (2.993u,0.213u);
+ z65\0\4c2 = (3.455u,0.000u); z65\0\4 = (4.094u,0.000u);
+ z65\0\5c1 = (6.062u,0.000u); z65\0\5c2 = (6.110u,2.494u);
+ z65\0\5 = (6.709u,3.817u); z65\0\6c1 = (7.075u,4.624u);
+ z65\0\6c2 = (8.368u,5.128u); z65\0\6 = (8.163u,5.992u);
+ z65\0\7c1 = (7.801u,7.510u); z65\0\7c2 = (6.390u,6.037u);
+ z65\0\7 = (5.781u,7.922u); z65\1\0s = (5.059u,7.441u);
+ z65\1\0 = (3.131u,7.200u); z65\2\0s = (7.468u,5.995u);
+ z65\2\0 = (6.144u,4.299u); z65\2\1c1 = (5.738u,3.433u);
+ z65\2\1c2 = (4.750u,-1.275u); z65\2\1 = (2.945u,1.453u);
+ z65\2\2c1 = (2.334u,2.377u); z65\2\2c2 = (2.429u,3.584u);
+ z65\2\2 = (1.889u,4.500u); z65\2\3 = (0.722u,5.995u);
+ z65\2\4 = (4.336u,6.473u);
+ fill_or_unfill z65\0\0s
+ --z65\0\0
+ ..controls z65\0\1c1 and z65\0\1c2..z65\0\1
+ ..controls z65\0\2c1 and z65\0\2c2..z65\0\2
+ ..controls z65\0\3c1 and z65\0\3c2..z65\0\3
+ ..controls z65\0\4c1 and z65\0\4c2..z65\0\4
+ ..controls z65\0\5c1 and z65\0\5c2..z65\0\5
+ ..controls z65\0\6c1 and z65\0\6c2..z65\0\6
+ ..controls z65\0\7c1 and z65\0\7c2..z65\0\7
+ --cycle;
+ fill_or_unfill z65\1\0s
+ --z65\1\0 --cycle;
+ fill_or_unfill z65\2\0s
+ --z65\2\0
+ ..controls z65\2\1c1 and z65\2\1c2..z65\2\1
+ ..controls z65\2\2c1 and z65\2\2c2..z65\2\2
+ --z65\2\3 --z65\2\4 --cycle;
+endchar; % F34
+
+
+%% F40: organ pipes
+%% (code as R(82) 82+31 = 113)
+%% (code as Z(90) 90+31 = 121)
+beginchar (121, 16.316u# + side#, 14.206u#, 0.000u#);
+ "F40";
+ z71\0\0s = (4.285u,5.936u); z71\0\0 = (5.730u,5.213u);
+ z71\0\1 = (5.730u,5.919u); z71\0\2 = (9.101u,5.919u);
+ z71\0\3 = (11.240u,5.296u); z71\0\4 = (12.476u,6.177u);
+ z71\0\5 = (13.805u,3.768u); z71\0\6c1 = (14.197u,2.801u);
+ z71\0\6c2 = (14.119u,0.433u); z71\0\6 = (15.157u,0.071u);
+ z71\0\7c1 = (16.775u,-0.494u); z71\0\7c2 = (16.295u,2.307u);
+ z71\0\7 = (16.079u,3.045u); z71\0\8c1 = (15.779u,4.066u);
+ z71\0\8c2 = (15.314u,5.080u); z71\0\8 = (14.662u,5.926u);
+ z71\0\9c1 = (13.698u,7.176u); z71\0\9c2 = (12.595u,7.215u);
+ z71\0\9 = (12.759u,9.068u); z71\0\10c1 = (12.968u,11.411u);
+ z71\0\10c2 = (15.066u,14.204u); z71\0\10 = (11.281u,14.114u);
+ z71\0\11c1 = (10.011u,14.083u); z71\0\11c2 = (6.276u,14.577u);
+ z71\0\11 = (5.563u,13.574u); z71\0\12c1 = (5.222u,13.098u);
+ z71\0\12c2 = (4.952u,11.623u); z71\0\12 = (4.798u,10.995u);
+ z71\0\13c1 = (4.597u,10.166u); z71\0\13c2 = (4.416u,8.858u);
+ z71\0\13 = (3.979u,8.155u); z71\0\14c1 = (3.606u,7.558u);
+ z71\0\14c2 = (2.966u,7.291u); z71\0\14 = (2.481u,6.806u);
+ z71\0\15c1 = (1.941u,6.264u); z71\0\15c2 = (1.217u,5.180u);
+ z71\0\15 = (0.872u,4.490u); z71\0\16c1 = (0.520u,3.787u);
+ z71\0\16c2 = (-1.075u,-0.585u); z71\0\16 = (1.132u,0.083u);
+ z71\0\17c1 = (2.864u,0.607u); z71\0\17c2 = (1.351u,3.779u);
+ z71\1\0s = (6.454u,13.404u); z71\1\0c1 = (6.634u,12.209u);
+ z71\1\0c2 = (6.176u,8.343u); z71\1\0 = (5.008u,7.863u);
+ z71\2\0s = (8.380u,13.404u); z71\2\0c1 = (8.257u,12.033u);
+ z71\2\0c2 = (7.805u,8.349u); z71\2\0 = (6.454u,7.863u);
+ z71\2\1c1 = (6.521u,9.307u); z71\2\1c2 = (6.915u,12.896u);
+ z71\3\0s = (9.585u,13.404u); z71\3\0 = (8.863u,7.863u);
+ z71\3\1 = (7.900u,8.104u); z71\4\0s = (11.271u,13.404u);
+ z71\4\0 = (10.067u,7.863u); z71\4\1 = (9.585u,7.863u);
+ z71\4\2 = (9.345u,8.104u); z71\4\3c1 = (9.640u,9.576u);
+ z71\4\3c2 = (10.045u,12.539u); z71\5\0s = (12.717u,13.163u);
+ z71\5\0c1 = (12.686u,11.778u); z71\5\0c2 = (12.457u,8.376u);
+ z71\5\0 = (11.030u,7.863u); z71\6\0s = (11.513u,7.140u);
+ z71\6\0 = (11.513u,6.659u); z71\6\1 = (4.767u,6.659u);
+ z71\6\2 = (4.767u,7.140u); z71\7\0s = (1.395u,2.804u);
+ z71\7\0 = (1.154u,0.877u);
+ fill_or_unfill z71\0\0s
+ --z71\0\0 --z71\0\1 --z71\0\2 --z71\0\3 --z71\0\4 --z71\0\5
+ ..controls z71\0\6c1 and z71\0\6c2..z71\0\6
+ ..controls z71\0\7c1 and z71\0\7c2..z71\0\7
+ ..controls z71\0\8c1 and z71\0\8c2..z71\0\8
+ ..controls z71\0\9c1 and z71\0\9c2..z71\0\9
+ ..controls z71\0\10c1 and z71\0\10c2..z71\0\10
+ ..controls z71\0\11c1 and z71\0\11c2..z71\0\11
+ ..controls z71\0\12c1 and z71\0\12c2..z71\0\12
+ ..controls z71\0\13c1 and z71\0\13c2..z71\0\13
+ ..controls z71\0\14c1 and z71\0\14c2..z71\0\14
+ ..controls z71\0\15c1 and z71\0\15c2..z71\0\15
+ ..controls z71\0\16c1 and z71\0\16c2..z71\0\16
+ ..controls z71\0\17c1 and z71\0\17c2..cycle;
+ fill_or_unfill z71\1\0s
+ ..controls z71\1\0c1 and z71\1\0c2..z71\1\0
+ --cycle;
+ fill_or_unfill z71\2\0s
+ ..controls z71\2\0c1 and z71\2\0c2..z71\2\0
+ ..controls z71\2\1c1 and z71\2\1c2..cycle;
+ fill_or_unfill z71\3\0s
+ --z71\3\0 --z71\3\1 --cycle;
+ fill_or_unfill z71\4\0s
+ --z71\4\0 --z71\4\1 --z71\4\2
+ ..controls z71\4\3c1 and z71\4\3c2..cycle;
+ fill_or_unfill z71\5\0s
+ ..controls z71\5\0c1 and z71\5\0c2..z71\5\0
+ --cycle;
+ fill_or_unfill z71\6\0s
+ --z71\6\0 --z71\6\1 --z71\6\2 --cycle;
+ fill_or_unfill z71\7\0s
+ --z71\7\0 --cycle;
+endchar; % F40
+
+
+%% G1: a falcon in profile
+%% (code as A(65) 65+31 = 96)
+%% (code as a(97) 97+31 = 128)
+beginchar (128, 15.899u# + side#, 17.164u#, 0.000u#);
+ "G1";
+ z32\0\0s = (0.482u,15.514u); z32\0\0 = (0.723u,15.273u);
+ z32\0\1c1 = (1.489u,15.375u); z32\0\1c2 = (2.628u,15.514u);
+ z32\0\1 = (3.228u,14.892u); z32\0\2c1 = (3.843u,14.255u);
+ z32\0\2c2 = (3.514u,12.552u); z32\0\2 = (3.707u,11.660u);
+ z32\0\3 = (4.490u,9.492u); z32\0\4c1 = (5.042u,7.603u);
+ z32\0\4c2 = (5.459u,3.570u); z32\0\4 = (4.490u,1.818u);
+ z32\0\5c1 = (3.469u,0.030u); z32\0\5c2 = (0.863u,2.552u);
+ z32\0\5 = (0.000u,0.096u); z32\0\6 = (11.081u,0.096u);
+ z32\0\7c1 = (10.576u,1.677u); z32\0\7c2 = (9.338u,1.301u);
+ z32\0\7 = (7.950u,1.301u); z32\0\8 = (8.191u,2.987u);
+ z32\0\9 = (9.636u,2.505u); z32\0\10 = (10.118u,4.674u);
+ z32\0\11c1 = (11.597u,2.734u); z32\0\11c2 = (12.753u,-0.622u);
+ z32\0\11 = (15.899u,0.096u); z32\0\12 = (15.601u,2.265u);
+ z32\0\13c1 = (15.044u,4.208u); z32\0\13c2 = (11.994u,8.802u);
+ z32\0\13 = (10.680u,10.455u); z32\0\14c1 = (9.776u,11.593u);
+ z32\0\14c2 = (8.400u,12.583u); z32\0\14 = (7.693u,13.828u);
+ z32\0\15c1 = (7.205u,14.686u); z32\0\15c2 = (7.353u,16.521u);
+ z32\0\15 = (6.808u,16.961u); z32\0\16c1 = (6.158u,17.487u);
+ z32\0\16c2 = (1.942u,16.905u); z32\0\16 = (1.237u,16.476u);
+ z32\0\17c1 = (0.816u,16.219u); z32\0\17c2 = (0.694u,15.927u);
+ z32\1\0s = (7.468u,12.142u); z32\1\0c1 = (2.270u,12.313u);
+ z32\1\0c2 = (8.088u,7.679u); z32\1\0 = (8.948u,6.339u);
+ z32\1\1c1 = (9.487u,5.499u); z32\1\1c2 = (9.394u,4.423u);
+ z32\1\1 = (9.395u,3.469u); z32\1\2 = (7.981u,4.068u);
+ z32\1\3 = (4.526u,11.660u); z32\1\4 = (3.372u,16.237u);
+ z32\1\5c1 = (7.797u,16.277u); z32\1\5c2 = (6.332u,16.505u);
+ z32\2\0s = (4.796u,15.777u); z32\3\0s = (13.731u,4.192u);
+ z32\3\0c1 = (12.368u,4.893u); z32\3\0c2 = (8.039u,7.768u);
+ z32\3\0 = (7.197u,8.872u); z32\3\1c1 = (6.474u,9.738u);
+ z32\3\1c2 = (5.399u,11.470u); z32\3\1 = (7.197u,11.575u);
+ z32\3\2c1 = (7.681u,11.600u); z32\3\2c2 = (8.195u,11.622u);
+ z32\3\2 = (8.604u,11.405u); z32\3\3c1 = (10.006u,10.659u);
+ z32\3\3c2 = (13.224u,5.786u); z32\4\0s = (6.022u,7.324u);
+ z32\4\0 = (6.986u,3.710u); z32\4\1c1 = (5.511u,4.360u);
+ z32\4\1c2 = (5.475u,5.944u); z32\5\0s = (11.081u,5.155u);
+ z32\5\0c1 = (13.154u,3.964u); z32\5\0c2 = (14.139u,2.942u);
+ z32\5\0 = (14.695u,0.578u); z32\5\1c1 = (13.162u,1.331u);
+ z32\5\1c2 = (10.961u,3.287u); z32\6\0s = (13.972u,4.192u);
+ z32\7\0s = (7.227u,1.060u); z32\7\0 = (5.300u,1.301u);
+ z32\7\1 = (5.781u,3.228u); z32\7\2c1 = (7.239u,2.855u);
+ z32\7\2c2 = (7.211u,2.445u);
+ fill_or_unfill z32\0\0s
+ --z32\0\0
+ ..controls z32\0\1c1 and z32\0\1c2..z32\0\1
+ ..controls z32\0\2c1 and z32\0\2c2..z32\0\2
+ --z32\0\3
+ ..controls z32\0\4c1 and z32\0\4c2..z32\0\4
+ ..controls z32\0\5c1 and z32\0\5c2..z32\0\5
+ --z32\0\6
+ ..controls z32\0\7c1 and z32\0\7c2..z32\0\7
+ --z32\0\8 --z32\0\9 --z32\0\10
+ ..controls z32\0\11c1 and z32\0\11c2..z32\0\11
+ --z32\0\12
+ ..controls z32\0\13c1 and z32\0\13c2..z32\0\13
+ ..controls z32\0\14c1 and z32\0\14c2..z32\0\14
+ ..controls z32\0\15c1 and z32\0\15c2..z32\0\15
+ ..controls z32\0\16c1 and z32\0\16c2..z32\0\16
+ ..controls z32\0\17c1 and z32\0\17c2..cycle;
+ fill_or_unfill z32\1\0s
+ ..controls z32\1\0c1 and z32\1\0c2..z32\1\0
+ ..controls z32\1\1c1 and z32\1\1c2..z32\1\1
+ --z32\1\2 --z32\1\3 --z32\1\4
+ ..controls z32\1\5c1 and z32\1\5c2..cycle;
+ fill_or_unfill z32\2\0s
+ --cycle;
+ fill_or_unfill z32\3\0s
+ ..controls z32\3\0c1 and z32\3\0c2..z32\3\0
+ ..controls z32\3\1c1 and z32\3\1c2..z32\3\1
+ ..controls z32\3\2c1 and z32\3\2c2..z32\3\2
+ ..controls z32\3\3c1 and z32\3\3c2..cycle;
+ fill_or_unfill z32\4\0s
+ --z32\4\0
+ ..controls z32\4\1c1 and z32\4\1c2..cycle;
+ fill_or_unfill z32\5\0s
+ ..controls z32\5\0c1 and z32\5\0c2..z32\5\0
+ ..controls z32\5\1c1 and z32\5\1c2..cycle;
+ fill_or_unfill z32\6\0s
+ --cycle;
+ fill_or_unfill z32\7\0s
+ --z32\7\0 --z32\7\1
+ ..controls z32\7\2c1 and z32\7\2c2..cycle;
+endchar; % G1
+
+
+%% G17: bird in profile but head looking out
+%% (code as m(109) 109+31 = 140)
+beginchar (140, 16.379u# + side#, 17.653u#, 0.000u#);
+ "G17";
+ z50\0\0s = (3.620u,1.743u); z50\0\0c1 = (2.365u,2.029u);
+ z50\0\0c2 = (0.028u,2.327u); z50\0\0 = (0.000u,0.560u);
+ z50\0\1 = (7.209u,0.552u); z50\0\2 = (8.205u,3.162u);
+ z50\0\3 = (9.407u,2.674u); z50\0\4 = (10.140u,4.356u);
+ z50\0\5c1 = (11.518u,1.448u); z50\0\5c2 = (12.706u,-0.796u);
+ z50\0\5 = (16.379u,0.225u); z50\0\6 = (15.905u,1.673u);
+ z50\0\7c1 = (16.753u,2.555u); z50\0\7c2 = (14.380u,4.980u);
+ z50\0\7 = (13.764u,5.780u); z50\0\8 = (10.046u,11.583u);
+ z50\0\9 = (7.202u,14.772u); z50\0\10c1 = (6.627u,15.552u);
+ z50\0\10c2 = (6.721u,16.741u); z50\0\10 = (6.215u,17.242u);
+ z50\0\11c1 = (5.815u,17.640u); z50\0\11c2 = (5.196u,17.623u);
+ z50\0\11 = (4.674u,17.635u); z50\0\12c1 = (4.183u,17.648u);
+ z50\0\12c2 = (2.759u,17.705u); z50\0\12 = (2.368u,17.512u);
+ z50\0\13c1 = (1.794u,17.228u); z50\0\13c2 = (1.797u,16.521u);
+ z50\0\13 = (1.778u,15.967u); z50\0\14c1 = (1.638u,12.002u);
+ z50\0\14c2 = (3.566u,11.804u); z50\0\14 = (4.186u,8.967u);
+ z50\0\15c1 = (4.695u,6.635u); z50\0\15c2 = (4.361u,3.981u);
+ z50\1\0s = (5.867u,15.703u); z50\1\0 = (2.494u,15.481u);
+ z50\1\1 = (2.501u,16.686u); z50\1\2c1 = (3.725u,16.679u);
+ z50\1\2c2 = (5.391u,17.087u); z50\2\0s = (3.925u,13.063u);
+ z50\2\0 = (4.407u,13.061u); z50\2\1 = (4.900u,14.986u);
+ z50\2\2 = (6.105u,15.219u); z50\2\3 = (8.954u,11.822u);
+ z50\2\4 = (12.796u,5.545u); z50\2\5c1 = (11.481u,6.065u);
+ z50\2\5c2 = (5.220u,10.392u); z50\2\5 = (5.562u,11.778u);
+ z50\2\6c1 = (5.675u,12.239u); z50\2\6c2 = (6.874u,12.686u);
+ z50\2\6 = (7.298u,13.044u); z50\2\7c1 = (-0.045u,12.897u);
+ z50\2\7c2 = (11.248u,5.797u); z50\2\7 = (12.427u,4.742u);
+ z50\2\8c1 = (13.438u,3.838u); z50\2\8c2 = (14.939u,1.958u);
+ z50\2\8 = (15.418u,0.712u); z50\2\9c1 = (10.849u,0.753u);
+ z50\2\9c2 = (12.397u,4.018u); z50\2\9 = (9.184u,5.806u);
+ z50\2\10 = (8.931u,3.640u); z50\2\11c1 = (7.677u,4.436u);
+ z50\2\11c2 = (3.742u,11.219u); z50\2\11 = (3.047u,12.828u);
+ z50\2\12c1 = (2.717u,13.592u); z50\2\12c2 = (2.598u,14.421u);
+ z50\2\12 = (2.493u,15.240u); z50\3\0s = (5.340u,7.515u);
+ z50\3\0c1 = (5.600u,7.125u); z50\3\0c2 = (5.888u,6.737u);
+ z50\3\0 = (6.080u,6.306u); z50\3\1c1 = (7.294u,3.575u);
+ z50\3\1c2 = (3.973u,4.128u); z50\4\0s = (12.755u,6.281u);
+ z50\5\0s = (7.002u,3.410u); z50\5\0c1 = (6.965u,1.453u);
+ z50\5\0c2 = (6.683u,1.400u); z50\5\0 = (4.824u,1.736u);
+ z50\5\1 = (5.318u,3.660u);
+ fill_or_unfill z50\0\0s
+ ..controls z50\0\0c1 and z50\0\0c2..z50\0\0
+ --z50\0\1 --z50\0\2 --z50\0\3 --z50\0\4
+ ..controls z50\0\5c1 and z50\0\5c2..z50\0\5
+ --z50\0\6
+ ..controls z50\0\7c1 and z50\0\7c2..z50\0\7
+ --z50\0\8 --z50\0\9
+ ..controls z50\0\10c1 and z50\0\10c2..z50\0\10
+ ..controls z50\0\11c1 and z50\0\11c2..z50\0\11
+ ..controls z50\0\12c1 and z50\0\12c2..z50\0\12
+ ..controls z50\0\13c1 and z50\0\13c2..z50\0\13
+ ..controls z50\0\14c1 and z50\0\14c2..z50\0\14
+ ..controls z50\0\15c1 and z50\0\15c2..cycle;
+ fill_or_unfill z50\1\0s
+ --z50\1\0 --z50\1\1
+ ..controls z50\1\2c1 and z50\1\2c2..cycle;
+ fill_or_unfill z50\2\0s
+ --z50\2\0 --z50\2\1 --z50\2\2 --z50\2\3 --z50\2\4
+ ..controls z50\2\5c1 and z50\2\5c2..z50\2\5
+ ..controls z50\2\6c1 and z50\2\6c2..z50\2\6
+ ..controls z50\2\7c1 and z50\2\7c2..z50\2\7
+ ..controls z50\2\8c1 and z50\2\8c2..z50\2\8
+ ..controls z50\2\9c1 and z50\2\9c2..z50\2\9
+ --z50\2\10
+ ..controls z50\2\11c1 and z50\2\11c2..z50\2\11
+ ..controls z50\2\12c1 and z50\2\12c2..z50\2\12
+ --cycle;
+ fill_or_unfill z50\3\0s
+ ..controls z50\3\0c1 and z50\3\0c2..z50\3\0
+ ..controls z50\3\1c1 and z50\3\1c2..cycle;
+ fill_or_unfill z50\4\0s
+ --cycle;
+ fill_or_unfill z50\5\0s
+ ..controls z50\5\0c1 and z50\5\0c2..z50\5\0
+ --z50\5\1 --cycle;
+endchar; % G17
+
+
+%% G36: bird (wr)
+%% (code as Z(90) 90+31 = 121)
+%% (code as R(82) 82+31 = 113)
+beginchar (113, 17.104u# + side#, 11.458u#, 0.000u#);
+ "G36";
+ z70\0\0s = (0.000u,10.358u); z70\0\0 = (0.000u,9.877u);
+ z70\0\1c1 = (0.461u,9.641u); z70\0\1c2 = (0.931u,9.443u);
+ z70\0\1 = (1.290u,9.054u); z70\0\2 = (4.946u,3.613u);
+ z70\0\3c1 = (5.134u,3.212u); z70\0\3c2 = (5.214u,2.849u);
+ z70\0\3 = (5.118u,2.410u); z70\0\4c1 = (4.550u,-0.197u);
+ z70\0\4c2 = (1.694u,2.019u); z70\0\4 = (0.482u,0.000u);
+ z70\0\5 = (9.154u,0.000u); z70\0\6 = (7.709u,1.204u);
+ z70\0\7 = (8.191u,2.649u); z70\0\8 = (16.381u,0.481u);
+ z70\0\9c1 = (15.806u,2.562u); z70\0\9c2 = (16.530u,1.812u);
+ z70\0\9 = (17.104u,3.372u); z70\0\10 = (14.433u,4.277u);
+ z70\0\11 = (11.564u,5.417u); z70\0\12 = (6.273u,9.300u);
+ z70\0\13c1 = (5.667u,9.839u); z70\0\13c2 = (4.641u,11.277u);
+ z70\0\13 = (3.851u,11.458u); z70\0\14c1 = (2.875u,11.681u);
+ z70\0\14c2 = (0.963u,10.633u); z70\1\0s = (5.300u,8.913u);
+ z70\1\0c1 = (3.206u,8.243u); z70\1\0c2 = (3.384u,8.278u);
+ z70\1\0 = (4.095u,6.263u); z70\1\1c1 = (3.373u,6.811u);
+ z70\1\1c2 = (1.402u,9.318u); z70\1\1 = (1.763u,10.283u);
+ z70\1\2c1 = (1.870u,10.569u); z70\1\2c2 = (2.151u,10.692u);
+ z70\1\2 = (2.424u,10.764u); z70\1\3c1 = (3.964u,11.170u);
+ z70\1\3c2 = (4.670u,10.072u); z70\2\0s = (11.804u,4.095u);
+ z70\2\0c1 = (9.049u,4.222u); z70\2\0c2 = (4.852u,5.135u);
+ z70\2\0 = (4.095u,8.190u); z70\2\1 = (5.541u,8.672u);
+ z70\3\0s = (4.336u,6.263u); z70\4\0s = (4.577u,6.022u);
+ z70\4\0c1 = (7.312u,3.929u); z70\4\0c2 = (12.000u,3.047u);
+ z70\4\0 = (15.417u,2.890u); z70\4\1 = (15.417u,1.686u);
+ z70\4\2c1 = (12.740u,1.969u); z70\4\2c2 = (9.962u,4.417u);
+ z70\4\2 = (7.227u,2.890u); z70\5\0s = (6.745u,2.649u);
+ z70\5\0c1 = (7.032u,1.503u); z70\5\0c2 = (6.954u,1.097u);
+ z70\5\0 = (5.781u,0.722u); z70\6\0s = (3.462u,10.135u);
+ z70\6\0c1 = (3.230u,10.490u); z70\6\0c2 = (2.706u,10.201u);
+ z70\6\0 = (2.851u,9.912u); z70\6\1c1 = (3.013u,9.587u);
+ z70\6\1c2 = (3.645u,9.822u);
+ fill_or_unfill z70\0\0s
+ --z70\0\0
+ ..controls z70\0\1c1 and z70\0\1c2..z70\0\1
+ --z70\0\2
+ ..controls z70\0\3c1 and z70\0\3c2..z70\0\3
+ ..controls z70\0\4c1 and z70\0\4c2..z70\0\4
+ --z70\0\5 --z70\0\6 --z70\0\7 --z70\0\8
+ ..controls z70\0\9c1 and z70\0\9c2..z70\0\9
+ --z70\0\10 --z70\0\11 --z70\0\12
+ ..controls z70\0\13c1 and z70\0\13c2..z70\0\13
+ ..controls z70\0\14c1 and z70\0\14c2..cycle;
+ fill_or_unfill z70\1\0s
+ ..controls z70\1\0c1 and z70\1\0c2..z70\1\0
+ ..controls z70\1\1c1 and z70\1\1c2..z70\1\1
+ ..controls z70\1\2c1 and z70\1\2c2..z70\1\2
+ ..controls z70\1\3c1 and z70\1\3c2..cycle;
+ fill_or_unfill z70\2\0s
+ ..controls z70\2\0c1 and z70\2\0c2..z70\2\0
+ --z70\2\1 --cycle;
+ fill_or_unfill z70\3\0s
+ --cycle;
+ fill_or_unfill z70\4\0s
+ ..controls z70\4\0c1 and z70\4\0c2..z70\4\0
+ --z70\4\1
+ ..controls z70\4\2c1 and z70\4\2c2..z70\4\2
+ --cycle;
+ fill_or_unfill z70\5\0s
+ ..controls z70\5\0c1 and z70\5\0c2..z70\5\0
+ --cycle;
+ fill_or_unfill z70\6\0s
+ ..controls z70\6\0c1 and z70\6\0c2..z70\6\0
+ ..controls z70\6\1c1 and z70\6\1c2..cycle;
+endchar; % G36
+
+
+%% G43: a small bird standing up in profile
+%% (code as w(119) 119+31 = 150)
+beginchar (150, 12.188u# + side#, 17.371u#, 0.000u#);
+ "G43";
+ z77\0\0s = (0.723u,16.381u); z77\0\0 = (0.723u,15.899u);
+ z77\0\1 = (2.003u,14.904u); z77\0\2 = (2.522u,12.527u);
+ z77\0\3 = (5.624u,5.540u); z77\0\4 = (4.577u,1.445u);
+ z77\0\5c1 = (3.101u,1.377u); z77\0\5c2 = (0.304u,1.772u);
+ z77\0\5 = (0.000u,0.000u); z77\0\6 = (9.395u,0.000u);
+ z77\0\7 = (7.950u,1.204u); z77\0\8 = (8.913u,5.299u);
+ z77\0\9c1 = (9.714u,5.367u); z77\0\9c2 = (11.932u,5.621u);
+ z77\0\9 = (12.177u,6.538u); z77\0\10c1 = (12.363u,7.234u);
+ z77\0\10c2 = (11.099u,8.549u); z77\0\10 = (10.705u,9.154u);
+ z77\0\11 = (6.403u,14.716u); z77\0\12c1 = (5.993u,15.304u);
+ z77\0\12c2 = (5.916u,16.035u); z77\0\12 = (5.437u,16.587u);
+ z77\0\13c1 = (5.188u,16.873u); z77\0\13c2 = (4.929u,17.065u);
+ z77\0\13 = (4.573u,17.200u); z77\0\14c1 = (3.231u,17.710u);
+ z77\0\14c2 = (1.878u,16.980u); z77\1\0s = (7.468u,12.045u);
+ z77\1\0c1 = (6.334u,11.350u); z77\1\0c2 = (6.183u,11.190u);
+ z77\1\0 = (6.504u,9.877u); z77\1\1c1 = (5.142u,10.559u);
+ z77\1\1c2 = (4.167u,11.971u); z77\1\1 = (5.781u,13.008u);
+ z77\1\2c1 = (3.995u,13.471u); z77\1\2c2 = (4.263u,12.099u);
+ z77\1\2 = (4.336u,10.840u); z77\1\3 = (2.168u,15.899u);
+ z77\1\4 = (2.168u,16.381u); z77\1\5c1 = (5.269u,17.376u);
+ z77\1\5c2 = (4.497u,16.048u); z77\1\5 = (5.717u,14.234u);
+ z77\1\6c1 = (6.260u,13.428u); z77\1\6c2 = (6.977u,12.939u);
+ z77\2\0s = (3.132u,16.381u); z77\2\0 = (3.132u,15.658u);
+ z77\2\1 = (3.854u,15.899u); z77\3\0s = (11.563u,6.504u);
+ z77\3\0c1 = (7.921u,5.772u); z77\3\0c2 = (5.400u,6.024u);
+ z77\3\0 = (4.577u,10.358u); z77\3\1 = (7.227u,8.913u);
+ z77\3\2 = (6.986u,11.081u); z77\3\3c1 = (8.971u,11.404u);
+ z77\3\3c2 = (10.815u,8.120u); z77\4\0s = (4.458u,10.602u);
+ z77\5\0s = (6.745u,5.781u); z77\5\0c1 = (8.474u,4.047u);
+ z77\5\0c2 = (8.002u,1.235u); z77\5\0 = (5.300u,1.204u);
+ fill_or_unfill z77\0\0s
+ --z77\0\0 --z77\0\1 --z77\0\2 --z77\0\3 --z77\0\4
+ ..controls z77\0\5c1 and z77\0\5c2..z77\0\5
+ --z77\0\6 --z77\0\7 --z77\0\8
+ ..controls z77\0\9c1 and z77\0\9c2..z77\0\9
+ ..controls z77\0\10c1 and z77\0\10c2..z77\0\10
+ --z77\0\11
+ ..controls z77\0\12c1 and z77\0\12c2..z77\0\12
+ ..controls z77\0\13c1 and z77\0\13c2..z77\0\13
+ ..controls z77\0\14c1 and z77\0\14c2..cycle;
+ fill_or_unfill z77\1\0s
+ ..controls z77\1\0c1 and z77\1\0c2..z77\1\0
+ ..controls z77\1\1c1 and z77\1\1c2..z77\1\1
+ ..controls z77\1\2c1 and z77\1\2c2..z77\1\2
+ --z77\1\3 --z77\1\4
+ ..controls z77\1\5c1 and z77\1\5c2..z77\1\5
+ ..controls z77\1\6c1 and z77\1\6c2..cycle;
+ fill_or_unfill z77\2\0s
+ --z77\2\0 --z77\2\1 --cycle;
+ fill_or_unfill z77\3\0s
+ ..controls z77\3\0c1 and z77\3\0c2..z77\3\0
+ --z77\3\1 --z77\3\2
+ ..controls z77\3\3c1 and z77\3\3c2..cycle;
+ fill_or_unfill z77\4\0s
+ --cycle;
+ fill_or_unfill z77\5\0s
+ ..controls z77\5\0c1 and z77\5\0c2..z77\5\0
+ --cycle;
+endchar; % G43
+
+
+%% H8: The egg sign (tilted ellipse).
+%% (code as O(79) 79+31 = 110)
+beginchar (110, 6.176u# + side#, 8.644u#, 0.000u#);
+ "H8";
+ z40\0\0s = (1.112u,8.644u); z40\0\0c1 = (-2.114u,7.227u);
+ z40\0\0c2 = (2.364u,-0.989u); z40\0\0 = (5.183u,0.015u);
+ z40\0\1c1 = (7.767u,0.935u); z40\0\1c2 = (5.151u,9.387u);
+ z40\1\0s = (1.950u,8.132u); z40\1\0c1 = (4.118u,7.717u);
+ z40\1\0c2 = (5.423u,3.971u); z40\1\0 = (5.312u,2.035u);
+ z40\1\1c1 = (5.056u,-2.442u); z40\1\1c2 = (-2.061u,7.364u);
+ fill_or_unfill z40\0\0s
+ ..controls z40\0\0c1 and z40\0\0c2..z40\0\0
+ ..controls z40\0\1c1 and z40\0\1c2..cycle;
+ fill_or_unfill z40\1\0s
+ ..controls z40\1\0c1 and z40\1\0c2..z40\1\0
+ ..controls z40\1\1c1 and z40\1\1c2..cycle;
+endchar; % H8
+
+
+%% I9: horizontal snake
+%% (code as f(102) 102+31 = 133)
+beginchar (133, 17.586u# + side#, 5.776u#, 0.000u#);
+ "I9";
+ z41\0\0s = (0.000u,5.776u); z41\0\0 = (0.000u,5.294u);
+ z41\0\1 = (1.204u,4.331u); z41\0\2c1 = (0.976u,4.246u);
+ z41\0\2c2 = (0.763u,4.211u); z41\0\2 = (0.558u,4.059u);
+ z41\0\3c1 = (-1.327u,2.673u); z41\0\3c2 = (2.135u,2.350u);
+ z41\0\3 = (2.572u,2.129u); z41\0\4c1 = (3.328u,1.748u);
+ z41\0\4c2 = (3.719u,0.973u); z41\0\4 = (4.581u,0.666u);
+ z41\0\5c1 = (6.081u,0.016u); z41\0\5c2 = (8.030u,0.759u);
+ z41\0\5 = (9.636u,0.666u); z41\0\6c1 = (12.228u,0.624u);
+ z41\0\6c2 = (15.059u,-0.685u); z41\0\6 = (17.586u,0.476u);
+ z41\0\7 = (16.810u,1.259u); z41\0\8 = (13.490u,1.531u);
+ z41\0\9 = (9.154u,2.773u); z41\0\10 = (5.442u,2.439u);
+ z41\0\11 = (2.650u,4.331u); z41\0\12 = (4.095u,5.776u);
+ z41\0\13 = (1.927u,5.506u); z41\1\0s = (2.891u,3.367u);
+ z41\1\0 = (0.963u,3.126u); z41\1\1 = (0.963u,3.608u);
+ z41\2\0s = (3.613u,2.885u); z41\3\0s = (3.854u,2.644u);
+ z41\3\0c1 = (6.153u,1.024u); z41\3\0c2 = (6.375u,2.081u);
+ z41\3\0 = (8.672u,2.081u); z41\3\1c1 = (9.639u,2.081u);
+ z41\3\1c2 = (10.653u,1.736u); z41\3\1 = (11.563u,1.438u);
+ z41\3\2c1 = (10.682u,1.190u); z41\3\2c2 = (9.608u,1.458u);
+ z41\3\2 = (8.672u,1.438u); z41\3\3c1 = (7.348u,1.406u);
+ z41\3\3c2 = (3.886u,0.334u);
+ fill_or_unfill z41\0\0s
+ --z41\0\0 --z41\0\1
+ ..controls z41\0\2c1 and z41\0\2c2..z41\0\2
+ ..controls z41\0\3c1 and z41\0\3c2..z41\0\3
+ ..controls z41\0\4c1 and z41\0\4c2..z41\0\4
+ ..controls z41\0\5c1 and z41\0\5c2..z41\0\5
+ ..controls z41\0\6c1 and z41\0\6c2..z41\0\6
+ --z41\0\7 --z41\0\8 --z41\0\9 --z41\0\10 --z41\0\11
+ --z41\0\12 --z41\0\13 --cycle;
+ fill_or_unfill z41\1\0s
+ --z41\1\0 --z41\1\1 --cycle;
+ fill_or_unfill z41\2\0s
+ --cycle;
+ fill_or_unfill z41\3\0s
+ ..controls z41\3\0c1 and z41\3\0c2..z41\3\0
+ ..controls z41\3\1c1 and z41\3\1c2..z41\3\1
+ ..controls z41\3\2c1 and z41\3\2c2..z41\3\2
+ ..controls z41\3\3c1 and z41\3\3c2..cycle;
+endchar; % I9
+
+
+%% I10: snake with dropping tail
+%% (code as D(68) 68+31 = 99)
+beginchar (99, 15.899u# + side#, 6.745u#, 10.600u#);
+ "I10";
+ z42\0\0s = (2.168u,4.577u); z42\0\0 = (1.869u,3.132u);
+ z42\0\1c1 = (1.697u,1.693u); z42\0\1c2 = (2.360u,1.469u);
+ z42\0\1 = (3.614u,1.446u); z42\0\2c1 = (6.350u,1.397u);
+ z42\0\2c2 = (8.864u,2.071u); z42\0\2 = (11.563u,1.070u);
+ z42\0\3c1 = (14.672u,-0.083u); z42\0\3c2 = (13.899u,-2.250u);
+ z42\0\3 = (13.753u,-4.818u); z42\0\4c1 = (13.683u,-6.058u);
+ z42\0\4c2 = (14.057u,-7.262u); z42\0\4 = (14.427u,-8.431u);
+ z42\0\5c1 = (14.736u,-9.409u); z42\0\5c2 = (14.882u,-10.002u);
+ z42\0\5 = (15.899u,-10.359u); z42\0\6 = (15.186u,-6.504u);
+ z42\0\7c1 = (15.091u,-4.320u); z42\0\7c2 = (16.039u,-1.852u);
+ z42\0\7 = (15.530u,0.241u); z42\0\8c1 = (14.546u,4.295u);
+ z42\0\8c2 = (6.481u,3.776u); z42\0\8 = (3.372u,2.891u);
+ z42\0\9c1 = (3.359u,3.784u); z42\0\9c2 = (3.876u,4.958u);
+ z42\0\9 = (3.516u,5.768u); z42\0\10c1 = (2.486u,8.085u);
+ z42\0\10c2 = (-1.652u,5.671u); z42\0\10 = (0.976u,4.804u);
+ z42\1\0s = (2.650u,5.300u); z42\1\0 = (0.821u,5.680u);
+ z42\1\1c1 = (1.626u,6.588u); z42\1\1c2 = (2.761u,6.175u);
+ z42\2\0s = (14.936u,-2.409u); z42\2\0c1 = (14.570u,-1.518u);
+ z42\2\0c2 = (14.566u,-0.612u); z42\2\0 = (13.980u,0.216u);
+ z42\2\1c1 = (12.073u,2.910u); z42\2\1c2 = (7.586u,2.229u);
+ z42\2\1 = (4.818u,2.168u); z42\2\2c1 = (6.243u,3.217u);
+ z42\2\2c2 = (13.053u,2.897u); z42\2\2 = (14.297u,1.392u);
+ z42\2\3c1 = (15.132u,0.383u); z42\2\3c2 = (14.936u,-1.180u);
+ fill_or_unfill z42\0\0s
+ --z42\0\0
+ ..controls z42\0\1c1 and z42\0\1c2..z42\0\1
+ ..controls z42\0\2c1 and z42\0\2c2..z42\0\2
+ ..controls z42\0\3c1 and z42\0\3c2..z42\0\3
+ ..controls z42\0\4c1 and z42\0\4c2..z42\0\4
+ ..controls z42\0\5c1 and z42\0\5c2..z42\0\5
+ --z42\0\6
+ ..controls z42\0\7c1 and z42\0\7c2..z42\0\7
+ ..controls z42\0\8c1 and z42\0\8c2..z42\0\8
+ ..controls z42\0\9c1 and z42\0\9c2..z42\0\9
+ ..controls z42\0\10c1 and z42\0\10c2..z42\0\10
+ --cycle;
+ fill_or_unfill z42\1\0s
+ --z42\1\0
+ ..controls z42\1\1c1 and z42\1\1c2..cycle;
+ fill_or_unfill z42\2\0s
+ ..controls z42\2\0c1 and z42\2\0c2..z42\2\0
+ ..controls z42\2\1c1 and z42\2\1c2..z42\2\1
+ ..controls z42\2\2c1 and z42\2\2c2..z42\2\2
+ ..controls z42\2\3c1 and z42\2\3c2..cycle;
+endchar; % I10
+
+
+%% K1. A fish.
+%% (code as F(70) 70+31 = 101)
+beginchar (101, 17.658u# + side#, 8.816u#, 0.000u#);
+ "K1";
+ z32\0\0s = (7.799u,0.000u); z32\0\0 = (7.558u,1.204u);
+ z32\0\1 = (13.339u,0.963u); z32\0\2 = (13.098u,2.409u);
+ z32\0\3c1 = (14.327u,2.396u); z32\0\3c2 = (16.068u,1.130u);
+ z32\0\3 = (16.658u,1.310u); z32\0\4c1 = (18.022u,1.725u);
+ z32\0\4c2 = (18.048u,6.132u); z32\0\4 = (16.445u,6.066u);
+ z32\0\5c1 = (15.936u,6.045u); z32\0\5c2 = (14.422u,5.086u);
+ z32\0\5 = (13.821u,4.818u); z32\0\6 = (15.507u,8.672u);
+ z32\0\7 = (4.448u,8.816u); z32\0\8 = (2.073u,6.146u);
+ z32\0\9 = (0.000u,3.602u); z32\0\10 = (0.826u,2.481u);
+ z32\0\11 = (3.703u,1.656u); z32\1\0s = (14.544u,7.950u);
+ z32\1\0 = (12.814u,5.454u); z32\1\1 = (7.076u,6.711u);
+ z32\1\2 = (3.703u,6.711u); z32\1\3c1 = (4.253u,7.935u);
+ z32\1\3c2 = (4.481u,8.372u); z32\1\3 = (5.872u,8.427u);
+ z32\1\4 = (11.412u,8.191u); z32\1\5c1 = (12.500u,8.186u);
+ z32\1\5c2 = (13.477u,8.209u); z32\2\0s = (14.062u,4.095u);
+ z32\2\0c1 = (13.316u,1.907u); z32\2\0c2 = (6.428u,1.681u);
+ z32\2\0 = (4.426u,2.168u); z32\2\1c1 = (5.177u,3.939u);
+ z32\2\1c2 = (6.645u,2.976u); z32\2\1 = (8.280u,3.372u);
+ z32\2\2 = (4.185u,5.300u); z32\2\3c1 = (4.612u,1.387u);
+ z32\2\3c2 = (2.761u,3.198u); z32\2\3 = (0.812u,3.613u);
+ z32\2\4c1 = (3.063u,8.065u); z32\2\4c2 = (10.552u,5.444u);
+ z32\3\0s = (16.471u,1.927u); z32\3\0c1 = (15.039u,2.633u);
+ z32\3\0c2 = (14.846u,2.778u); z32\3\0 = (14.544u,4.336u);
+ z32\3\1c1 = (17.285u,6.189u); z32\3\1c2 = (17.432u,4.002u);
+ z32\4\0s = (2.499u,4.577u); z32\4\0 = (2.499u,3.854u);
+ z32\4\1 = (3.221u,3.854u); z32\4\2 = (3.221u,4.577u);
+ fill_or_unfill z32\0\0s
+ --z32\0\0 --z32\0\1 --z32\0\2
+ ..controls z32\0\3c1 and z32\0\3c2..z32\0\3
+ ..controls z32\0\4c1 and z32\0\4c2..z32\0\4
+ ..controls z32\0\5c1 and z32\0\5c2..z32\0\5
+ --z32\0\6 --z32\0\7 --z32\0\8 --z32\0\9 --z32\0\10
+ --z32\0\11 --cycle;
+ fill_or_unfill z32\1\0s
+ --z32\1\0 --z32\1\1 --z32\1\2
+ ..controls z32\1\3c1 and z32\1\3c2..z32\1\3
+ --z32\1\4
+ ..controls z32\1\5c1 and z32\1\5c2..cycle;
+ fill_or_unfill z32\2\0s
+ ..controls z32\2\0c1 and z32\2\0c2..z32\2\0
+ ..controls z32\2\1c1 and z32\2\1c2..z32\2\1
+ --z32\2\2
+ ..controls z32\2\3c1 and z32\2\3c2..z32\2\3
+ ..controls z32\2\4c1 and z32\2\4c2..cycle;
+ fill_or_unfill z32\3\0s
+ ..controls z32\3\0c1 and z32\3\0c2..z32\3\0
+ ..controls z32\3\1c1 and z32\3\1c2..cycle;
+ fill_or_unfill z32\4\0s
+ --z32\4\0 --z32\4\1 --z32\4\2 --cycle;
+endchar; % K1
+
+
+%% M3: a branch
+%% (code as c(99) 99+31 = 130)
+%% (code as N(78) 78+31 = 109)
+beginchar (109, 16.863u# + side#, 4.105u#, 0.000u#);
+ "M3";
+ z34\0\0s = (0.000u,4.105u); z34\0\0c1 = (0.245u,2.350u);
+ z34\0\0c2 = (1.152u,1.827u); z34\0\0 = (2.409u,0.733u);
+ z34\0\1 = (0.723u,0.733u); z34\0\2c1 = (2.218u,-1.688u);
+ z34\0\2c2 = (7.643u,2.733u); z34\0\2 = (10.118u,1.937u);
+ z34\0\3 = (8.431u,0.973u); z34\0\4 = (11.804u,1.674u);
+ z34\0\5 = (16.863u,1.214u); z34\0\6 = (16.863u,2.178u);
+ z34\0\7 = (5.541u,3.383u); z34\0\8 = (5.541u,2.901u);
+ z34\0\9 = (7.709u,2.901u); z34\0\10c1 = (6.977u,2.123u);
+ z34\0\10c2 = (6.277u,1.882u); z34\0\10 = (5.300u,1.504u);
+ z34\0\11c1 = (2.091u,0.263u); z34\0\11c2 = (2.138u,2.778u);
+ fill_or_unfill z34\0\0s
+ ..controls z34\0\0c1 and z34\0\0c2..z34\0\0
+ --z34\0\1
+ ..controls z34\0\2c1 and z34\0\2c2..z34\0\2
+ --z34\0\3 --z34\0\4 --z34\0\5 --z34\0\6 --z34\0\7
+ --z34\0\8 --z34\0\9
+ ..controls z34\0\10c1 and z34\0\10c2..z34\0\10
+ ..controls z34\0\11c1 and z34\0\11c2..cycle;
+endchar; % M3
+
+
+%% M8: A lotus pool.
+%% (code as L(76) 76+31 = 107)
+%% (code as E(69) 69+31 = 100)
+beginchar (100, 16.674u# + side#, 8.723u#, 0.000u#);
+ "M8";
+ z39\0\0s = (0.294u,8.699u); z39\0\0c1 = (0.981u,7.666u);
+ z39\0\0c2 = (2.042u,6.753u); z39\0\0 = (1.953u,5.601u);
+ z39\0\1c1 = (1.868u,4.488u); z39\0\1c2 = (0.796u,4.280u);
+ z39\0\1 = (0.321u,3.401u); z39\0\2c1 = (-0.933u,1.076u);
+ z39\0\2c2 = (1.625u,0.054u); z39\0\2 = (3.447u,0.051u);
+ z39\0\3c1 = (5.281u,0.047u); z39\0\3c2 = (14.440u,-0.164u);
+ z39\0\3 = (15.470u,0.293u); z39\0\4c1 = (16.298u,0.660u);
+ z39\0\4c2 = (16.663u,1.333u); z39\0\4 = (16.674u,2.219u);
+ z39\0\5c1 = (16.699u,4.239u); z39\0\5c2 = (15.127u,3.935u);
+ z39\0\5 = (14.850u,5.135u); z39\0\6c1 = (14.577u,6.317u);
+ z39\0\6c2 = (15.889u,7.369u); z39\0\6 = (16.246u,8.699u);
+ z39\0\7 = (12.280u,8.743u); z39\0\8c1 = (13.742u,6.473u);
+ z39\0\8c2 = (14.038u,6.865u); z39\0\8 = (14.047u,4.628u);
+ z39\0\9 = (11.879u,4.628u); z39\0\10 = (11.879u,8.241u);
+ z39\0\11 = (11.397u,8.241u); z39\0\12 = (11.397u,4.628u);
+ z39\0\13 = (8.506u,4.628u); z39\0\14c1 = (8.515u,6.833u);
+ z39\0\14c2 = (8.823u,6.694u); z39\0\14 = (10.077u,8.743u);
+ z39\0\15 = (6.199u,8.743u); z39\0\16 = (6.338u,8.000u);
+ z39\0\17c1 = (7.703u,6.843u); z39\0\17c2 = (7.777u,6.346u);
+ z39\0\17 = (7.784u,4.628u); z39\0\18 = (5.616u,4.628u);
+ z39\0\19 = (5.616u,8.241u); z39\0\20 = (5.134u,8.241u);
+ z39\0\21 = (5.134u,4.628u); z39\0\22c1 = (2.215u,4.630u);
+ z39\0\22c2 = (1.533u,5.994u); z39\0\22 = (3.929u,8.000u);
+ z39\0\23 = (3.929u,8.723u); z39\1\0s = (3.054u,8.218u);
+ z39\1\0c1 = (2.605u,7.096u); z39\1\0c2 = (2.057u,7.096u);
+ z39\1\0 = (1.609u,8.218u); z39\2\0s = (8.988u,8.241u);
+ z39\2\0c1 = (8.400u,7.213u); z39\2\0c2 = (7.890u,7.213u);
+ z39\2\0 = (7.302u,8.241u); z39\3\0s = (15.252u,8.000u);
+ z39\3\0 = (15.252u,7.518u); z39\3\1c1 = (14.247u,7.258u);
+ z39\3\1c2 = (13.971u,7.232u); z39\3\1 = (13.565u,8.241u);
+ z39\4\0s = (1.772u,3.782u); z39\4\0c1 = (3.225u,4.046u);
+ z39\4\0c2 = (13.943u,4.070u); z39\4\0 = (15.000u,3.629u);
+ z39\4\1c1 = (16.265u,3.102u); z39\4\1c2 = (16.516u,1.547u);
+ z39\4\1 = (15.201u,0.951u); z39\4\2c1 = (14.724u,0.735u);
+ z39\4\2c2 = (13.855u,0.774u); z39\4\2 = (13.324u,0.773u);
+ z39\4\3 = (3.447u,0.773u); z39\4\4c1 = (1.320u,0.784u);
+ z39\4\4c2 = (-0.931u,2.509u);
+ fill_or_unfill z39\0\0s
+ ..controls z39\0\0c1 and z39\0\0c2..z39\0\0
+ ..controls z39\0\1c1 and z39\0\1c2..z39\0\1
+ ..controls z39\0\2c1 and z39\0\2c2..z39\0\2
+ ..controls z39\0\3c1 and z39\0\3c2..z39\0\3
+ ..controls z39\0\4c1 and z39\0\4c2..z39\0\4
+ ..controls z39\0\5c1 and z39\0\5c2..z39\0\5
+ ..controls z39\0\6c1 and z39\0\6c2..z39\0\6
+ --z39\0\7
+ ..controls z39\0\8c1 and z39\0\8c2..z39\0\8
+ --z39\0\9 --z39\0\10 --z39\0\11 --z39\0\12 --z39\0\13
+ ..controls z39\0\14c1 and z39\0\14c2..z39\0\14
+ --z39\0\15 --z39\0\16
+ ..controls z39\0\17c1 and z39\0\17c2..z39\0\17
+ --z39\0\18 --z39\0\19 --z39\0\20 --z39\0\21
+ ..controls z39\0\22c1 and z39\0\22c2..z39\0\22
+ --z39\0\23 --cycle;
+ fill_or_unfill z39\1\0s
+ ..controls z39\1\0c1 and z39\1\0c2..z39\1\0
+ --cycle;
+ fill_or_unfill z39\2\0s
+ ..controls z39\2\0c1 and z39\2\0c2..z39\2\0
+ --cycle;
+ fill_or_unfill z39\3\0s
+ --z39\3\0
+ ..controls z39\3\1c1 and z39\3\1c2..z39\3\1
+ --cycle;
+ fill_or_unfill z39\4\0s
+ ..controls z39\4\0c1 and z39\4\0c2..z39\4\0
+ ..controls z39\4\1c1 and z39\4\1c2..z39\4\1
+ ..controls z39\4\2c1 and z39\4\2c2..z39\4\2
+ --z39\4\3
+ ..controls z39\4\4c1 and z39\4\4c2..cycle;
+endchar; % M8
+
+
+%% M17: a machette
+%% (code as i(105) 105+31 = 136)
+beginchar (136, 4.197u# + side#, 17.824u#, 0.000u#);
+ "M17";
+ z48\0\0s = (1.412u,17.824u); z48\0\0c1 = (1.533u,16.738u);
+ z48\0\0c2 = (-0.254u,7.357u); z48\0\0 = (0.020u,6.582u);
+ z48\0\1c1 = (0.024u,4.308u); z48\0\1c2 = (2.993u,6.108u);
+ z48\0\1 = (2.993u,0.000u); z48\0\2 = (4.197u,0.000u);
+ z48\0\3 = (4.197u,13.009u); z48\0\4c1 = (4.171u,14.928u);
+ z48\0\4c2 = (3.494u,16.916u); z48\1\0s = (2.029u,16.622u);
+ z48\1\0 = (3.096u,15.176u); z48\1\1 = (3.041u,4.308u);
+ z48\1\2 = (0.749u,7.026u);
+ fill_or_unfill z48\0\0s
+ ..controls z48\0\0c1 and z48\0\0c2..z48\0\0
+ ..controls z48\0\1c1 and z48\0\1c2..z48\0\1
+ --z48\0\2 --z48\0\3
+ ..controls z48\0\4c1 and z48\0\4c2..cycle;
+ fill_or_unfill z48\1\0s
+ --z48\1\0 --z48\1\1 --z48\1\2 --cycle;
+endchar; % M17
+
+
+%% N29: triangle with wavy hypotenuse
+%% (code as q(113) 113+31 = 144)
+%% (code as K(75) 75+31 = 106)
+beginchar (106, 7.468u# + side#, 7.649u#, 0.000u#);
+ "N29";
+ z60\0\0s = (0.000u,0.000u); z60\0\0 = (7.468u,0.000u);
+ z60\0\1 = (7.083u,6.951u); z60\0\2c1 = (6.513u,8.259u);
+ z60\0\2c2 = (4.994u,7.504u); z60\0\2 = (4.358u,6.700u);
+ z60\0\3c1 = (3.551u,5.680u); z60\0\3c2 = (3.170u,4.484u);
+ z60\0\3 = (2.551u,3.372u); z60\0\4c1 = (1.828u,2.075u);
+ z60\0\4c2 = (0.439u,1.425u); z60\1\0s = (6.504u,6.986u);
+ z60\1\0 = (6.504u,0.722u); z60\1\1 = (1.445u,0.722u);
+ z60\1\2 = (3.150u,3.131u); z60\1\3 = (5.152u,6.601u);
+ fill_or_unfill z60\0\0s
+ --z60\0\0 --z60\0\1
+ ..controls z60\0\2c1 and z60\0\2c2..z60\0\2
+ ..controls z60\0\3c1 and z60\0\3c2..z60\0\3
+ ..controls z60\0\4c1 and z60\0\4c2..cycle;
+ fill_or_unfill z60\1\0s
+ --z60\1\0 --z60\1\1 --z60\1\2 --z60\1\3 --cycle;
+endchar; % N29
+
+
+%% N35: long jagged line
+%% (code as n(110) 110+31 = 141)
+beginchar (141, 15.398u# + side#, 2.357u#, 0.000u#);
+ "N35";
+ z66\0\0s = (1.194u,2.357u); z66\0\0 = (0.032u,1.291u);
+ z66\0\1 = (0.000u,0.097u); z66\0\2 = (1.194u,1.259u);
+ z66\0\3 = (2.486u,0.162u); z66\0\4 = (3.745u,1.227u);
+ z66\0\5 = (5.068u,0.162u); z66\0\6 = (6.327u,1.227u);
+ z66\0\7 = (7.650u,0.129u); z66\0\8 = (8.942u,1.227u);
+ z66\0\9 = (10.233u,0.129u); z66\0\10 = (11.524u,1.227u);
+ z66\0\11 = (12.847u,0.000u); z66\0\12 = (14.074u,1.259u);
+ z66\0\13 = (15.398u,0.097u); z66\0\14 = (15.365u,1.227u);
+ z66\0\15 = (14.042u,2.324u); z66\0\16 = (12.847u,1.259u);
+ z66\0\17 = (11.492u,2.324u); z66\0\18 = (10.233u,1.227u);
+ z66\0\19 = (8.942u,2.357u); z66\0\20 = (7.650u,1.227u);
+ z66\0\21 = (6.359u,2.357u); z66\0\22 = (5.100u,1.227u);
+ z66\0\23 = (3.745u,2.324u); z66\0\24 = (2.518u,1.388u);
+ fill_or_unfill z66\0\0s
+ --z66\0\0 --z66\0\1 --z66\0\2 --z66\0\3 --z66\0\4
+ --z66\0\5 --z66\0\6 --z66\0\7 --z66\0\8 --z66\0\9
+ --z66\0\10 --z66\0\11 --z66\0\12 --z66\0\13 --z66\0\14
+ --z66\0\15 --z66\0\16 --z66\0\17 --z66\0\18 --z66\0\19
+ --z66\0\20 --z66\0\21 --z66\0\22 --z66\0\23 --z66\0\24
+ --cycle;
+endchar; % N35
+
+
+%% N37: Rectangular slab
+%% (code as S(83) 83+31 = 114)
+%% (code as z(121) 121+31 = 153)
+beginchar (153, 17.586u# + side#, 4.336u#, 0.000u#);
+ "N37";
+ z69\0\0s = (0.000u,4.336u); z69\0\0 = (0.000u,0.000u);
+ z69\0\1 = (17.586u,0.000u); z69\0\2 = (17.586u,4.336u);
+ z69\1\0s = (16.863u,3.614u); z69\1\0 = (16.863u,0.723u);
+ z69\1\1 = (0.723u,0.723u); z69\1\2 = (0.723u,3.614u);
+ fill_or_unfill z69\0\0s
+ --z69\0\0 --z69\0\1 --z69\0\2 --cycle;
+ fill_or_unfill z69\1\0s
+ --z69\1\0 --z69\1\1 --z69\1\2 --cycle;
+endchar; % N37
+
+
+%% O1. rectangle with part of base open (house).
+%% (code as j(106) 106+31 = 137)
+beginchar (137, 14.213u# + side#, 7.468u#, 0.000u#);
+ "O1";
+ z32\0\0s = (0.000u,7.468u); z32\0\0 = (0.000u,0.000u);
+ z32\0\1 = (4.577u,0.000u); z32\0\2 = (4.577u,0.722u);
+ z32\0\3 = (0.723u,0.722u); z32\0\4 = (0.723u,6.745u);
+ z32\0\5 = (13.490u,6.745u); z32\0\6 = (13.490u,0.722u);
+ z32\0\7 = (9.636u,0.722u); z32\0\8 = (9.636u,0.000u);
+ z32\0\9 = (14.213u,0.000u); z32\0\10 = (14.213u,7.468u);
+ fill_or_unfill z32\0\0s
+ --z32\0\0 --z32\0\1 --z32\0\2 --z32\0\3 --z32\0\4
+ --z32\0\5 --z32\0\6 --z32\0\7 --z32\0\8 --z32\0\9
+ --z32\0\10 --cycle;
+endchar; % O1
+
+
+%% O4: square spiral
+%% (code as h(104) 104+31 = 135)
+beginchar (135, 10.359u# + side#, 8.190u#, 0.000u#);
+ "O4";
+ z35\0\0s = (0.000u,8.190u); z35\0\0 = (0.000u,0.000u);
+ z35\0\1 = (0.963u,0.000u); z35\0\2 = (0.963u,7.227u);
+ z35\0\3 = (9.395u,7.227u); z35\0\4 = (9.395u,0.963u);
+ z35\0\5 = (5.300u,0.963u); z35\0\6 = (5.300u,5.540u);
+ z35\0\7 = (4.336u,5.540u); z35\0\8 = (4.336u,0.000u);
+ z35\0\9 = (10.359u,0.000u); z35\0\10 = (10.359u,8.190u);
+ fill_or_unfill z35\0\0s
+ --z35\0\0 --z35\0\1 --z35\0\2 --z35\0\3 --z35\0\4
+ --z35\0\5 --z35\0\6 --z35\0\7 --z35\0\8 --z35\0\9
+ --z35\0\10 --cycle;
+endchar; % O4
+
+
+%% O34: Horizontal line with two blobs
+%% (code as z(122) 122+31 = 153)
+%% (code as S(83) 83+31 = 114)
+beginchar (114, 16.863u# + side#, 2.542u#, 0.000u#);
+ "O34";
+ z65\0\0s = (-0.007u,1.572u); z65\0\0 = (-0.007u,1.044u);
+ z65\0\1 = (5.138u,1.044u); z65\0\2c1 = (5.930u,0.516u);
+ z65\0\2c2 = (7.777u,0.120u); z65\0\2 = (8.436u,1.044u);
+ z65\0\3c1 = (8.964u,0.120u); z65\0\3c2 = (10.679u,0.384u);
+ z65\0\3 = (11.602u,1.044u); z65\0\4 = (16.879u,1.044u);
+ z65\0\5 = (16.879u,1.572u); z65\0\6 = (11.602u,1.572u);
+ z65\0\7c1 = (10.679u,2.231u); z65\0\7c2 = (8.964u,2.495u);
+ z65\0\7 = (8.436u,1.572u); z65\0\8c1 = (7.777u,2.495u);
+ z65\0\8c2 = (6.062u,2.231u); z65\0\8 = (5.138u,1.572u);
+ z65\1\0s = (5.666u,1.308u); z65\1\0c1 = (6.194u,1.703u);
+ z65\1\0c2 = (7.645u,1.703u); z65\1\0 = (8.172u,1.308u);
+ z65\1\1c1 = (7.645u,0.912u); z65\1\1c2 = (6.194u,0.912u);
+ z65\2\0s = (8.700u,1.308u); z65\2\0c1 = (9.096u,1.703u);
+ z65\2\0c2 = (10.547u,1.703u); z65\2\0 = (11.206u,1.308u);
+ z65\2\1c1 = (10.547u,0.912u); z65\2\1c2 = (9.096u,0.912u);
+ fill_or_unfill z65\0\0s
+ --z65\0\0 --z65\0\1
+ ..controls z65\0\2c1 and z65\0\2c2..z65\0\2
+ ..controls z65\0\3c1 and z65\0\3c2..z65\0\3
+ --z65\0\4 --z65\0\5 --z65\0\6
+ ..controls z65\0\7c1 and z65\0\7c2..z65\0\7
+ ..controls z65\0\8c1 and z65\0\8c2..z65\0\8
+ --cycle;
+ fill_or_unfill z65\1\0s
+ ..controls z65\1\0c1 and z65\1\0c2..z65\1\0
+ ..controls z65\1\1c1 and z65\1\1c2..cycle;
+ fill_or_unfill z65\2\0s
+ ..controls z65\2\0c1 and z65\2\0c2..z65\2\0
+ ..controls z65\2\1c1 and z65\2\1c2..cycle;
+endchar; % O34
+
+
+%% Q3: a square
+%% (code as p(112) 112+31 = 143)
+beginchar (143, 5.300u# + side#, 6.986u#, 0.000u#);
+ "Q3";
+ z34\0\0s = (0.000u,6.986u); z34\0\0 = (0.000u,0.000u);
+ z34\0\1 = (5.300u,0.000u); z34\0\2 = (5.300u,6.986u);
+ z34\1\0s = (4.577u,6.263u); z34\1\0 = (4.577u,0.723u);
+ z34\1\1 = (0.723u,0.723u); z34\1\2 = (0.723u,6.263u);
+ fill_or_unfill z34\0\0s
+ --z34\0\0 --z34\0\1 --z34\0\2 --cycle;
+ fill_or_unfill z34\1\0s
+ --z34\1\0 --z34\1\1 --z34\1\2 --cycle;
+endchar; % Q3
+
+
+%% R7: A bucket with something sticking up.
+%% (code as B(66) 66+31 = 97)
+beginchar (97, 7.709u# + side#, 13.249u#, 0.000u#);
+ "R7";
+ z38\0\0s = (1.445u,13.249u); z38\0\0c1 = (1.650u,12.116u);
+ z38\0\0c2 = (3.518u,8.187u); z38\0\0 = (2.552u,7.473u);
+ z38\0\1c1 = (2.129u,7.160u); z38\0\1c2 = (0.838u,7.156u);
+ z38\0\1 = (0.241u,6.986u); z38\0\2 = (1.135u,2.891u);
+ z38\0\3c1 = (1.210u,2.310u); z38\0\3c2 = (1.135u,1.282u);
+ z38\0\3 = (1.382u,0.793u); z38\0\4c1 = (1.835u,-0.103u);
+ z38\0\4c2 = (5.723u,0.241u); z38\0\4 = (6.745u,0.241u);
+ z38\0\5 = (7.949u,7.227u); z38\0\6c1 = (7.395u,7.229u);
+ z38\0\6c2 = (6.568u,7.173u); z38\0\6 = (6.088u,7.473u);
+ z38\0\7c1 = (4.809u,8.274u); z38\0\7c2 = (4.664u,12.563u);
+ z38\1\0s = (2.890u,11.563u); z38\2\0s = (3.131u,11.322u);
+ z38\2\0 = (5.058u,7.468u); z38\2\1c1 = (3.356u,7.109u);
+ z38\2\1c2 = (2.696u,9.996u); z38\3\0s = (7.226u,6.504u);
+ z38\3\0 = (5.980u,1.342u); z38\3\1c1 = (5.481u,0.711u);
+ z38\3\1c2 = (2.463u,0.764u); z38\3\1 = (2.067u,1.521u);
+ z38\3\2 = (0.963u,6.504u);
+ fill_or_unfill z38\0\0s
+ ..controls z38\0\0c1 and z38\0\0c2..z38\0\0
+ ..controls z38\0\1c1 and z38\0\1c2..z38\0\1
+ --z38\0\2
+ ..controls z38\0\3c1 and z38\0\3c2..z38\0\3
+ ..controls z38\0\4c1 and z38\0\4c2..z38\0\4
+ --z38\0\5
+ ..controls z38\0\6c1 and z38\0\6c2..z38\0\6
+ ..controls z38\0\7c1 and z38\0\7c2..cycle;
+ fill_or_unfill z38\1\0s
+ --cycle;
+ fill_or_unfill z38\2\0s
+ --z38\2\0
+ ..controls z38\2\1c1 and z38\2\1c2..cycle;
+ fill_or_unfill z38\3\0s
+ --z38\3\0
+ ..controls z38\3\1c1 and z38\3\1c2..z38\3\1
+ --z38\3\2 --cycle;
+endchar; % R7
+
+
+%% S12: fringed piano stool (nbw)
+%% (code as v(118) 118+31 = 149)
+beginchar (149, 17.104u# + side#, 8.913u#, 0.000u#);
+ "S12";
+ z43\0\0s = (1.927u,0.482u); z43\0\0c1 = (1.927u,1.592u);
+ z43\0\0c2 = (1.522u,7.119u); z43\0\0 = (2.685u,7.319u);
+ z43\0\1c1 = (3.175u,7.404u); z43\0\1c2 = (4.328u,6.524u);
+ z43\0\1 = (4.818u,6.263u); z43\0\2 = (4.336u,4.336u);
+ z43\0\3 = (5.552u,5.522u); z43\0\4 = (5.300u,3.854u);
+ z43\0\5 = (6.504u,5.059u); z43\0\6 = (6.924u,3.588u);
+ z43\0\7c1 = (7.733u,4.397u); z43\0\7c2 = (7.803u,4.537u);
+ z43\0\7 = (7.662u,4.432u); z43\0\8 = (8.432u,5.059u);
+ z43\0\9 = (8.432u,3.372u); z43\0\10c1 = (9.597u,3.412u);
+ z43\0\10c2 = (9.632u,3.130u); z43\0\10 = (9.456u,4.994u);
+ z43\0\11 = (10.118u,3.613u); z43\0\12 = (10.600u,3.613u);
+ z43\0\13 = (10.863u,5.065u); z43\0\14 = (12.286u,3.854u);
+ z43\0\15 = (12.045u,5.541u); z43\0\16 = (13.490u,4.336u);
+ z43\0\17 = (13.009u,6.263u); z43\0\18 = (15.418u,7.468u);
+ z43\0\19 = (15.899u,0.241u); z43\0\20 = (17.344u,0.241u);
+ z43\0\21 = (17.344u,5.541u); z43\0\22c1 = (17.330u,6.730u);
+ z43\0\22c2 = (17.229u,7.758u); z43\0\22 = (16.128u,8.467u);
+ z43\0\23c1 = (14.814u,9.311u); z43\0\23c2 = (6.193u,8.917u);
+ z43\0\23 = (4.095u,8.913u); z43\0\24c1 = (-0.427u,8.906u);
+ z43\0\24c2 = (0.218u,5.855u); z43\0\24 = (0.241u,2.409u);
+ z43\0\25c1 = (0.244u,1.970u); z43\0\25c2 = (0.204u,1.224u);
+ z43\0\25 = (0.487u,0.867u); z43\0\26c1 = (0.819u,0.448u);
+ z43\0\26c2 = (1.451u,0.498u); z43\1\0s = (14.213u,7.468u);
+ z43\1\0c1 = (11.513u,5.676u); z43\1\0c2 = (9.178u,4.907u);
+ z43\1\0 = (6.022u,6.112u); z43\1\1c1 = (5.382u,6.357u);
+ z43\1\1c2 = (4.416u,6.803u); z43\1\1 = (4.136u,7.476u);
+ z43\1\2c1 = (3.742u,8.421u); z43\1\2c2 = (4.969u,8.420u);
+ z43\1\2 = (5.541u,8.430u); z43\1\3c1 = (7.460u,8.466u);
+ z43\1\3c2 = (13.129u,8.957u); z43\2\0s = (15.928u,7.070u);
+ z43\2\0 = (16.701u,7.140u); z43\2\1c1 = (16.490u,6.120u);
+ z43\2\1c2 = (17.581u,0.950u); z43\2\1 = (16.315u,1.126u);
+ z43\3\0s = (1.120u,7.316u); z43\3\0 = (1.472u,7.034u);
+ z43\3\1c1 = (1.331u,1.196u); z43\3\1c2 = (1.402u,1.196u);
+ z43\3\1 = (1.331u,1.196u); z43\3\2 = (0.733u,1.266u);
+ z43\4\0s = (5.422u,5.062u);
+ fill_or_unfill z43\0\0s
+ ..controls z43\0\0c1 and z43\0\0c2..z43\0\0
+ ..controls z43\0\1c1 and z43\0\1c2..z43\0\1
+ --z43\0\2 --z43\0\3 --z43\0\4 --z43\0\5 --z43\0\6
+ ..controls z43\0\7c1 and z43\0\7c2..z43\0\7
+ --z43\0\8 --z43\0\9
+ ..controls z43\0\10c1 and z43\0\10c2..z43\0\10
+ --z43\0\11 --z43\0\12 --z43\0\13 --z43\0\14 --z43\0\15
+ --z43\0\16 --z43\0\17 --z43\0\18 --z43\0\19 --z43\0\20
+ --z43\0\21
+ ..controls z43\0\22c1 and z43\0\22c2..z43\0\22
+ ..controls z43\0\23c1 and z43\0\23c2..z43\0\23
+ ..controls z43\0\24c1 and z43\0\24c2..z43\0\24
+ ..controls z43\0\25c1 and z43\0\25c2..z43\0\25
+ ..controls z43\0\26c1 and z43\0\26c2..cycle;
+ fill_or_unfill z43\1\0s
+ ..controls z43\1\0c1 and z43\1\0c2..z43\1\0
+ ..controls z43\1\1c1 and z43\1\1c2..z43\1\1
+ ..controls z43\1\2c1 and z43\1\2c2..z43\1\2
+ ..controls z43\1\3c1 and z43\1\3c2..cycle;
+ fill_or_unfill z43\2\0s
+ --z43\2\0
+ ..controls z43\2\1c1 and z43\2\1c2..z43\2\1
+ --cycle;
+ fill_or_unfill z43\3\0s
+ --z43\3\0
+ ..controls z43\3\1c1 and z43\3\1c2..z43\3\1
+ --z43\3\2 --cycle;
+ fill_or_unfill z43\4\0s
+ --cycle;
+endchar; % S12
+
+
+%% S29: tall hook
+%% (code as s(115) 115+31 = 146)
+beginchar (146, 3.216u# + side#, 16.750u#, 0.000u#);
+ "S29";
+ z63\0\0s = (0.000u,0.000u); z63\0\0 = (0.838u,0.030u);
+ z63\0\1 = (0.821u,14.333u); z63\0\2c1 = (0.838u,15.981u);
+ z63\0\2c2 = (2.414u,15.981u); z63\0\2 = (2.414u,14.209u);
+ z63\0\3 = (2.414u,5.544u); z63\0\4 = (3.201u,5.544u);
+ z63\0\5 = (3.216u,14.504u); z63\0\6c1 = (3.201u,17.557u);
+ z63\0\6c2 = (0.051u,17.557u); z63\0\6 = (0.034u,14.333u);
+ fill_or_unfill z63\0\0s
+ --z63\0\0 --z63\0\1
+ ..controls z63\0\2c1 and z63\0\2c2..z63\0\2
+ --z63\0\3 --z63\0\4 --z63\0\5
+ ..controls z63\0\6c1 and z63\0\6c2..z63\0\6
+ --cycle;
+endchar; % S29
+
+
+%% S39: shepherd's crook (awt)
+%% (code as y(121) 121+31 = 152)
+%% (code as ?(63) 63+31 = 94)
+beginchar (94, 3.854u# + side#, 17.345u#, 0.000u#);
+ "S39";
+ z74\0\0s = (0.484u,13.357u); z74\0\0 = (1.351u,13.253u);
+ z74\0\1c1 = (1.169u,14.445u); z74\0\1c2 = (1.188u,15.777u);
+ z74\0\1 = (1.961u,16.100u); z74\0\2c1 = (3.141u,16.592u);
+ z74\0\2c2 = (3.358u,14.959u); z74\0\2 = (3.372u,14.213u);
+ z74\0\3 = (3.372u,0.241u); z74\0\4 = (4.095u,0.241u);
+ z74\0\5 = (4.095u,14.213u); z74\0\6c1 = (4.087u,19.120u);
+ z74\0\6c2 = (-0.312u,17.646u);
+ fill_or_unfill z74\0\0s
+ --z74\0\0
+ ..controls z74\0\1c1 and z74\0\1c2..z74\0\1
+ ..controls z74\0\2c1 and z74\0\2c2..z74\0\2
+ --z74\0\3 --z74\0\4 --z74\0\5
+ ..controls z74\0\6c1 and z74\0\6c2..cycle;
+endchar;
+
+
+%% S41: hanging piece of string (Dwm)
+%% (code as 0(48) 48+31 = 79)
+%% (code as c(99) 99+31 = 130)
+beginchar (130, 5.064u# + side#, 17.147u#, 0.000u#);
+ "S41";
+ z76\0\0s = (3.903u,12.649u); z76\0\0c1 = (3.361u,13.686u);
+ z76\0\0c2 = (2.532u,14.515u); z76\0\0 = (2.532u,14.930u);
+ z76\0\1 = (2.532u,15.759u); z76\0\2c1 = (2.947u,16.589u);
+ z76\0\2c2 = (5.435u,16.589u); z76\0\2 = (5.020u,17.003u);
+ z76\0\3c1 = (2.117u,17.833u); z76\0\3c2 = (-0.371u,14.930u);
+ z76\0\3 = (0.043u,12.027u); z76\0\4c1 = (0.043u,11.197u);
+ z76\0\4c2 = (0.458u,13.686u); z76\0\4 = (1.702u,14.515u);
+ z76\0\5c1 = (2.117u,14.100u); z76\0\5c2 = (2.532u,13.686u);
+ z76\0\5 = (3.073u,12.649u); z76\0\6c1 = (3.488u,11.820u);
+ z76\0\6c2 = (1.829u,10.161u); z76\0\6 = (2.532u,8.709u);
+ z76\0\7c1 = (3.488u,7.258u); z76\0\7c2 = (1.415u,5.599u);
+ z76\0\7 = (2.532u,4.562u); z76\0\8c1 = (1.495u,2.903u);
+ z76\0\8c2 = (1.288u,2.073u); z76\0\8 = (2.117u,0.000u);
+ z76\0\9c1 = (2.532u,0.000u); z76\0\9c2 = (2.117u,1.244u);
+ z76\0\9 = (2.117u,1.659u); z76\0\10c1 = (2.117u,2.488u);
+ z76\0\10c2 = (2.739u,2.903u); z76\0\10 = (2.947u,2.903u);
+ z76\0\11c1 = (3.154u,2.903u); z76\0\11c2 = (3.776u,2.488u);
+ z76\0\11 = (3.776u,1.659u); z76\0\12c1 = (3.776u,1.244u);
+ z76\0\12c2 = (3.361u,0.000u); z76\0\12 = (3.776u,0.000u);
+ z76\0\13c1 = (4.605u,2.073u); z76\0\13c2 = (4.398u,2.903u);
+ z76\0\13 = (3.361u,4.562u); z76\0\14c1 = (2.659u,5.599u);
+ z76\0\14c2 = (4.318u,7.672u); z76\0\14 = (3.361u,8.709u);
+ z76\0\15c1 = (2.659u,10.161u); z76\0\15c2 = (4.318u,11.820u);
+ fill_or_unfill z76\0\0s
+ ..controls z76\0\0c1 and z76\0\0c2..z76\0\0
+ --z76\0\1
+ ..controls z76\0\2c1 and z76\0\2c2..z76\0\2
+ ..controls z76\0\3c1 and z76\0\3c2..z76\0\3
+ ..controls z76\0\4c1 and z76\0\4c2..z76\0\4
+ ..controls z76\0\5c1 and z76\0\5c2..z76\0\5
+ ..controls z76\0\6c1 and z76\0\6c2..z76\0\6
+ ..controls z76\0\7c1 and z76\0\7c2..z76\0\7
+ ..controls z76\0\8c1 and z76\0\8c2..z76\0\8
+ ..controls z76\0\9c1 and z76\0\9c2..z76\0\9
+ ..controls z76\0\10c1 and z76\0\10c2..z76\0\10
+ ..controls z76\0\11c1 and z76\0\11c2..z76\0\11
+ ..controls z76\0\12c1 and z76\0\12c2..z76\0\12
+ ..controls z76\0\13c1 and z76\0\13c2..z76\0\13
+ ..controls z76\0\14c1 and z76\0\14c2..z76\0\14
+ ..controls z76\0\15c1 and z76\0\15c2..cycle;
+endchar; % S41
+
+
+%% T3: Upright with a ball at the top
+%% (code as ?(63) 63+31 = 94)
+%% (code as u(117) 117+31 = 148)
+beginchar (148, 3.853u# + side#, 17.436u#, 0.000u#);
+ "T3";
+ z34\0\0s = (1.561u,0.000u); z34\0\0 = (2.284u,0.000u);
+ z34\0\1 = (2.284u,10.118u); z34\0\2c1 = (2.298u,12.877u);
+ z34\0\2c2 = (3.432u,12.589u); z34\0\2 = (3.827u,14.454u);
+ z34\0\3c1 = (4.025u,15.389u); z34\0\3c2 = (3.106u,17.445u);
+ z34\0\3 = (2.034u,17.436u); z34\0\4c1 = (1.021u,17.427u);
+ z34\0\4c2 = (-0.062u,15.627u); z34\0\4 = (0.000u,14.695u);
+ z34\0\5c1 = (0.113u,13.018u); z34\0\5c2 = (1.557u,12.748u);
+ z34\0\5 = (1.561u,9.877u); z34\1\0s = (1.586u,16.027u);
+ z34\1\0c1 = (3.996u,16.148u); z34\1\0c2 = (3.128u,13.490u);
+ z34\1\0 = (2.201u,13.049u); z34\1\1c1 = (1.310u,12.626u);
+ z34\1\1c2 = (-0.361u,15.136u);
+ fill_or_unfill z34\0\0s
+ --z34\0\0 --z34\0\1
+ ..controls z34\0\2c1 and z34\0\2c2..z34\0\2
+ ..controls z34\0\3c1 and z34\0\3c2..z34\0\3
+ ..controls z34\0\4c1 and z34\0\4c2..z34\0\4
+ ..controls z34\0\5c1 and z34\0\5c2..z34\0\5
+ --cycle;
+ fill_or_unfill z34\1\0s
+ ..controls z34\1\0c1 and z34\1\0c2..z34\1\0
+ ..controls z34\1\1c1 and z34\1\1c2..cycle;
+endchar; % T3
+
+
+%% T14. Throw stick.
+%% (code as 7(55) 55+31 = 86)
+%% (code as /(47) 47+31 = 78)
+beginchar (78, 4.817u# + side#, 16.880u#, 0.000u#);
+ "T14";
+ z49\0\0s = (0.000u,16.863u); z49\0\0c1 = (1.276u,14.384u);
+ z49\0\0c2 = (3.848u,12.804u); z49\0\0 = (3.854u,9.877u);
+ z49\0\1 = (3.854u,0.000u); z49\0\2 = (4.817u,0.000u);
+ z49\0\3 = (4.817u,10.600u); z49\0\4c1 = (4.783u,12.416u);
+ z49\0\4c2 = (3.367u,13.795u); z49\0\4 = (2.308u,15.177u);
+ z49\0\5c1 = (1.597u,16.105u); z49\0\5c2 = (1.287u,17.030u);
+ fill_or_unfill z49\0\0s
+ ..controls z49\0\0c1 and z49\0\0c2..z49\0\0
+ --z49\0\1 --z49\0\2 --z49\0\3
+ ..controls z49\0\4c1 and z49\0\4c2..z49\0\4
+ ..controls z49\0\5c1 and z49\0\5c2..cycle;
+endchar; % T14
+
+
+%% U36: upright club
+%% (code as 4(52) 52+31 = 83)
+%% (code as J(74) 74+31 = 105)
+beginchar (105, 3.371u# + side#, 17.516u#, 0.000u#);
+ "U36";
+ z70\0\0s = (0.481u,0.000u); z70\0\0 = (3.131u,0.000u);
+ z70\0\1 = (2.890u,6.746u); z70\0\2 = (3.371u,14.214u);
+ z70\0\3c1 = (3.366u,15.331u); z70\0\3c2 = (3.280u,17.157u);
+ z70\0\3 = (1.914u,17.472u); z70\0\4c1 = (0.137u,17.883u);
+ z70\0\4c2 = (0.014u,15.637u); z70\0\4 = (0.000u,14.454u);
+ z70\0\5 = (0.722u,6.746u); z70\1\0s = (1.459u,16.644u);
+ z70\1\0c1 = (2.651u,16.405u); z70\1\0c2 = (2.634u,15.474u);
+ z70\1\0 = (2.648u,14.454u); z70\1\1 = (2.167u,3.373u);
+ z70\1\2c1 = (2.170u,2.841u); z70\1\2c2 = (2.436u,1.047u);
+ z70\1\2 = (2.028u,0.764u); z70\1\3c1 = (1.033u,0.072u);
+ z70\1\3c2 = (1.440u,2.848u); z70\1\3 = (1.459u,3.132u);
+ z70\1\4 = (1.459u,6.987u); z70\1\5c1 = (1.435u,8.927u);
+ z70\1\5c2 = (-0.331u,15.602u);
+ fill_or_unfill z70\0\0s
+ --z70\0\0 --z70\0\1 --z70\0\2
+ ..controls z70\0\3c1 and z70\0\3c2..z70\0\3
+ ..controls z70\0\4c1 and z70\0\4c2..z70\0\4
+ --z70\0\5 --cycle;
+ fill_or_unfill z70\1\0s
+ ..controls z70\1\0c1 and z70\1\0c2..z70\1\0
+ --z70\1\1
+ ..controls z70\1\2c1 and z70\1\2c2..z70\1\2
+ ..controls z70\1\3c1 and z70\1\3c2..z70\1\3
+ --z70\1\4
+ ..controls z70\1\5c1 and z70\1\5c2..cycle;
+endchar; % U36
+
+
+%% V4 a small balloon hanging down.
+%% (code as o(111) = 111+31 = 142)
+beginchar (142, 14.454u# + side#, 16.393u#, 0.000u#);
+ "V4";
+ z35\0\0s = (0.000u,8.454u); z35\0\0 = (0.000u,7.709u);
+ z35\0\1c1 = (0.747u,7.708u); z35\0\1c2 = (2.716u,7.789u);
+ z35\0\1 = (3.162u,7.092u); z35\0\2c1 = (3.630u,6.361u);
+ z35\0\2c2 = (1.412u,3.700u); z35\0\2 = (2.414u,1.959u);
+ z35\0\3c1 = (3.296u,0.427u); z35\0\3c2 = (5.218u,1.182u);
+ z35\0\3 = (5.658u,2.651u); z35\0\4c1 = (6.101u,4.127u);
+ z35\0\4c2 = (5.059u,5.648u); z35\0\4 = (4.577u,6.986u);
+ z35\0\5c1 = (5.460u,6.787u); z35\0\5c2 = (6.788u,6.323u);
+ z35\0\5 = (7.674u,6.580u); z35\0\6c1 = (9.204u,7.023u);
+ z35\0\6c2 = (8.273u,9.961u); z35\0\6 = (4.577u,7.950u);
+ z35\0\7c1 = (4.577u,9.133u); z35\0\7c2 = (4.428u,12.042u);
+ z35\0\7 = (4.819u,13.008u); z35\0\8c1 = (5.970u,15.848u);
+ z35\0\8c2 = (9.863u,16.583u); z35\0\8 = (11.463u,13.727u);
+ z35\0\9c1 = (12.615u,11.672u); z35\0\9c2 = (12.247u,9.205u);
+ z35\0\9 = (12.089u,6.986u); z35\0\10c1 = (11.980u,5.457u);
+ z35\0\10c2 = (12.449u,3.811u); z35\0\10 = (13.009u,2.409u);
+ z35\0\11c1 = (13.430u,1.352u); z35\0\11c2 = (13.581u,0.784u);
+ z35\0\11 = (14.454u,0.000u); z35\0\12c1 = (14.618u,1.699u);
+ z35\0\12c2 = (12.848u,4.020u); z35\0\12 = (12.947u,6.745u);
+ z35\0\13c1 = (13.059u,9.851u); z35\0\13c2 = (13.533u,15.923u);
+ z35\0\13 = (9.154u,16.356u); z35\0\14c1 = (8.334u,16.437u);
+ z35\0\14c2 = (7.268u,16.406u); z35\0\14 = (6.504u,16.086u);
+ z35\0\15c1 = (2.249u,14.303u); z35\0\15c2 = (4.808u,9.334u);
+ z35\0\15 = (3.269u,8.454u); z35\0\16c1 = (2.952u,8.301u);
+ z35\0\16c2 = (0.553u,8.431u); z35\1\0s = (7.709u,7.950u);
+ z35\1\0 = (7.709u,7.227u); z35\1\1 = (5.541u,7.468u);
+ z35\2\0s = (4.336u,5.781u); z35\2\0c1 = (4.539u,5.304u);
+ z35\2\0c2 = (4.722u,4.844u); z35\2\0 = (4.841u,4.336u);
+ z35\2\1c1 = (5.591u,1.131u); z35\2\1c2 = (2.256u,0.950u);
+ z35\2\1 = (3.018u,4.095u); z35\2\2c1 = (3.236u,4.993u);
+ z35\2\2c2 = (3.542u,5.358u);
+ fill_or_unfill z35\0\0s
+ --z35\0\0
+ ..controls z35\0\1c1 and z35\0\1c2..z35\0\1
+ ..controls z35\0\2c1 and z35\0\2c2..z35\0\2
+ ..controls z35\0\3c1 and z35\0\3c2..z35\0\3
+ ..controls z35\0\4c1 and z35\0\4c2..z35\0\4
+ ..controls z35\0\5c1 and z35\0\5c2..z35\0\5
+ ..controls z35\0\6c1 and z35\0\6c2..z35\0\6
+ ..controls z35\0\7c1 and z35\0\7c2..z35\0\7
+ ..controls z35\0\8c1 and z35\0\8c2..z35\0\8
+ ..controls z35\0\9c1 and z35\0\9c2..z35\0\9
+ ..controls z35\0\10c1 and z35\0\10c2..z35\0\10
+ ..controls z35\0\11c1 and z35\0\11c2..z35\0\11
+ ..controls z35\0\12c1 and z35\0\12c2..z35\0\12
+ ..controls z35\0\13c1 and z35\0\13c2..z35\0\13
+ ..controls z35\0\14c1 and z35\0\14c2..z35\0\14
+ ..controls z35\0\15c1 and z35\0\15c2..z35\0\15
+ ..controls z35\0\16c1 and z35\0\16c2..cycle;
+ fill_or_unfill z35\1\0s
+ --z35\1\0 --z35\1\1 --cycle;
+ fill_or_unfill z35\2\0s
+ ..controls z35\2\0c1 and z35\2\0c2..z35\2\0
+ ..controls z35\2\1c1 and z35\2\1c2..z35\2\1
+ ..controls z35\2\2c1 and z35\2\2c2..cycle;
+endchar; % V4
+
+
+%% V13: Pair of sugar tongs
+%% (code as T(84) 84+31 = 115)
+beginchar (115, 16.805u# + side#, 4.390u#, 0.000u#);
+ "V13";
+ z44\0\0s = (15.821u,1.146u); z44\0\0 = (5.463u,1.146u);
+ z44\0\1c1 = (4.177u,1.154u); z44\0\1c2 = (3.293u,1.682u);
+ z44\0\1 = (2.090u,1.823u); z44\0\2c1 = (1.311u,1.915u);
+ z44\0\2c2 = (-0.795u,1.487u); z44\0\2 = (0.311u,0.391u);
+ z44\0\3c1 = (1.104u,-0.505u); z44\0\3c2 = (4.260u,0.422u);
+ z44\0\3 = (5.463u,0.391u); z44\0\4 = (14.376u,0.391u);
+ z44\0\5c1 = (14.907u,0.425u); z44\0\5c2 = (15.752u,0.368u);
+ z44\0\5 = (16.203u,0.670u); z44\0\6c1 = (17.237u,1.363u);
+ z44\0\6c2 = (16.846u,2.932u); z44\0\6 = (15.796u,3.378u);
+ z44\0\7c1 = (15.113u,3.668u); z44\0\7c2 = (11.723u,3.555u);
+ z44\0\7 = (10.762u,3.555u); z44\0\8 = (5.944u,3.555u);
+ z44\0\9c1 = (4.650u,3.557u); z44\0\9c2 = (4.274u,3.617u);
+ z44\0\9 = (3.054u,4.059u); z44\0\10c1 = (-0.065u,5.187u);
+ z44\0\10c2 = (-0.465u,3.114u); z44\0\10 = (0.912u,2.695u);
+ z44\0\11c1 = (1.860u,2.407u); z44\0\11c2 = (3.659u,2.831u);
+ z44\0\11 = (4.740u,2.833u); z44\0\12c1 = (6.279u,2.835u);
+ z44\0\12c2 = (14.481u,3.062u); z44\0\12 = (15.276u,2.596u);
+ z44\0\13c1 = (15.884u,2.239u); z44\0\13c2 = (15.839u,1.756u);
+ z44\1\0s = (2.572u,3.555u); z44\1\0c1 = (1.748u,3.026u);
+ z44\1\0c2 = (1.229u,2.927u); z44\1\0 = (0.645u,3.796u);
+ z44\2\0s = (2.813u,0.905u); z44\2\0 = (0.645u,0.664u);
+ z44\2\1 = (0.645u,1.146u);
+ fill_or_unfill z44\0\0s
+ --z44\0\0
+ ..controls z44\0\1c1 and z44\0\1c2..z44\0\1
+ ..controls z44\0\2c1 and z44\0\2c2..z44\0\2
+ ..controls z44\0\3c1 and z44\0\3c2..z44\0\3
+ --z44\0\4
+ ..controls z44\0\5c1 and z44\0\5c2..z44\0\5
+ ..controls z44\0\6c1 and z44\0\6c2..z44\0\6
+ ..controls z44\0\7c1 and z44\0\7c2..z44\0\7
+ --z44\0\8
+ ..controls z44\0\9c1 and z44\0\9c2..z44\0\9
+ ..controls z44\0\10c1 and z44\0\10c2..z44\0\10
+ ..controls z44\0\11c1 and z44\0\11c2..z44\0\11
+ ..controls z44\0\12c1 and z44\0\12c2..z44\0\12
+ ..controls z44\0\13c1 and z44\0\13c2..cycle;
+ fill_or_unfill z44\1\0s
+ ..controls z44\1\0c1 and z44\1\0c2..z44\1\0
+ --cycle;
+ fill_or_unfill z44\2\0s
+ --z44\2\0 --z44\2\1 --cycle;
+endchar; % V13
+
+
+%% V24: vertical line with center ellipse (wD)
+%% (code as 6(54) 54+31 = 85)
+%% (code as U(85) 85+31 = 116)
+beginchar (116, 3.136u# + side#, 17.344u#, 0.000u#);
+ "V24";
+ z55\0\0s = (1.058u,17.344u); z55\0\0 = (1.058u,13.249u);
+ z55\0\1 = (0.000u,10.118u); z55\0\2 = (1.094u,5.059u);
+ z55\0\3 = (1.094u,0.000u); z55\0\4 = (2.083u,0.000u);
+ z55\0\5 = (2.083u,6.022u); z55\0\6 = (3.136u,9.636u);
+ z55\0\7 = (2.094u,13.249u); z55\0\8 = (2.094u,17.344u);
+ z55\1\0s = (1.817u,12.045u); z55\1\0c1 = (2.720u,10.183u);
+ z55\1\0c2 = (2.528u,9.347u); z55\1\0 = (1.817u,7.468u);
+ z55\1\1 = (1.335u,7.468u); z55\1\2c1 = (0.490u,9.258u);
+ z55\1\2c2 = (0.434u,10.275u); z55\1\2 = (1.335u,12.045u);
+ fill_or_unfill z55\0\0s
+ --z55\0\0 --z55\0\1 --z55\0\2 --z55\0\3 --z55\0\4
+ --z55\0\5 --z55\0\6 --z55\0\7 --z55\0\8 --cycle;
+ fill_or_unfill z55\1\0s
+ ..controls z55\1\0c1 and z55\1\0c2..z55\1\0
+ --z55\1\1
+ ..controls z55\1\2c1 and z55\1\2c2..z55\1\2
+ --cycle;
+endchar; % V24
+
+
+%% V28: Twisted flax
+%% (code as H(72) 72+31 = 103)
+beginchar (103, 4.450u# + side#, 17.255u#, 0.000u#);
+ "V28";
+ z59\0\0s = (0.000u,0.036u); z59\0\0 = (0.482u,0.036u);
+ z59\0\1 = (1.927u,3.409u); z59\0\2 = (2.409u,3.409u);
+ z59\0\3 = (3.870u,0.028u); z59\0\4 = (4.450u,0.000u);
+ z59\0\5 = (2.964u,4.132u); z59\0\6c1 = (2.778u,5.069u);
+ z59\0\6c2 = (3.485u,5.858u); z59\0\6 = (3.541u,6.782u);
+ z59\0\7c1 = (3.589u,7.582u); z59\0\7c2 = (3.106u,8.197u);
+ z59\0\7 = (3.068u,8.950u); z59\0\8 = (3.516u,10.877u);
+ z59\0\9c1 = (3.545u,11.625u); z59\0\9c2 = (3.052u,12.298u);
+ z59\0\9 = (3.203u,13.045u); z59\0\10c1 = (3.454u,14.290u);
+ z59\0\10c2 = (4.693u,15.171u); z59\0\10 = (3.648u,16.604u);
+ z59\0\11c1 = (2.669u,17.947u); z59\0\11c2 = (0.769u,17.038u);
+ z59\0\11 = (0.793u,15.454u); z59\0\12c1 = (0.806u,14.567u);
+ z59\0\12c2 = (1.427u,13.882u); z59\0\12 = (1.506u,13.045u);
+ z59\0\13c1 = (1.574u,12.314u); z59\0\13c2 = (1.099u,11.616u);
+ z59\0\13 = (1.062u,10.877u); z59\0\14c1 = (1.026u,10.170u);
+ z59\0\14c2 = (1.437u,9.623u); z59\0\14 = (1.458u,8.950u);
+ z59\0\15c1 = (1.481u,8.220u); z59\0\15c2 = (1.041u,7.530u);
+ z59\0\15 = (1.030u,6.782u); z59\0\16c1 = (1.018u,5.928u);
+ z59\0\16c2 = (1.600u,5.207u); z59\0\16 = (1.523u,4.373u);
+ z59\1\0s = (2.650u,13.527u); z59\1\0 = (2.168u,13.527u);
+ z59\1\1c1 = (0.149u,17.589u); z59\1\1c2 = (4.681u,17.562u);
+ z59\2\0s = (2.317u,12.124u); z59\2\0c1 = (3.031u,11.856u);
+ z59\2\0c2 = (3.001u,9.803u); z59\2\0 = (2.347u,9.565u);
+ z59\2\1c1 = (1.633u,9.892u); z59\2\1c2 = (1.722u,11.916u);
+ z59\3\0s = (2.409u,8.227u); z59\3\0c1 = (2.977u,6.991u);
+ z59\3\0c2 = (3.010u,6.444u); z59\3\0 = (2.168u,5.336u);
+ z59\3\1c1 = (1.668u,6.541u); z59\3\1c2 = (1.465u,7.201u);
+ fill_or_unfill z59\0\0s
+ --z59\0\0 --z59\0\1 --z59\0\2 --z59\0\3 --z59\0\4 --z59\0\5
+ ..controls z59\0\6c1 and z59\0\6c2..z59\0\6
+ ..controls z59\0\7c1 and z59\0\7c2..z59\0\7
+ --z59\0\8
+ ..controls z59\0\9c1 and z59\0\9c2..z59\0\9
+ ..controls z59\0\10c1 and z59\0\10c2..z59\0\10
+ ..controls z59\0\11c1 and z59\0\11c2..z59\0\11
+ ..controls z59\0\12c1 and z59\0\12c2..z59\0\12
+ ..controls z59\0\13c1 and z59\0\13c2..z59\0\13
+ ..controls z59\0\14c1 and z59\0\14c2..z59\0\14
+ ..controls z59\0\15c1 and z59\0\15c2..z59\0\15
+ ..controls z59\0\16c1 and z59\0\16c2..z59\0\16
+ --cycle;
+ fill_or_unfill z59\1\0s
+ --z59\1\0
+ ..controls z59\1\1c1 and z59\1\1c2..cycle;
+ fill_or_unfill z59\2\0s
+ ..controls z59\2\0c1 and z59\2\0c2..z59\2\0
+ ..controls z59\2\1c1 and z59\2\1c2..cycle;
+ fill_or_unfill z59\3\0s
+ ..controls z59\3\0c1 and z59\3\0c2..z59\3\0
+ ..controls z59\3\1c1 and z59\3\1c2..cycle;
+endchar; % V28
+
+
+%% V31: Bowl with small handle
+%% (code as k(107) 107+31 = 138)
+beginchar (138, 17.252u# + side#, 5.244u#, 0.000u#);
+ "V31";
+ z62\0\0s = (0.000u,5.244u); z62\0\0c1 = (0.335u,0.575u);
+ z62\0\0c2 = (7.394u,-0.832u); z62\0\0 = (11.081u,0.449u);
+ z62\0\1c1 = (12.794u,1.045u); z62\0\1c2 = (13.573u,2.027u);
+ z62\0\1 = (14.936u,3.076u); z62\0\2c1 = (15.442u,0.705u);
+ z62\0\2c2 = (17.419u,0.854u); z62\0\2 = (17.252u,2.594u);
+ z62\0\3c1 = (17.053u,4.666u); z62\0\3c2 = (15.506u,5.241u);
+ z62\0\3 = (13.731u,5.244u); z62\1\0s = (14.213u,4.280u);
+ z62\1\0c1 = (13.001u,-0.504u); z62\1\0c2 = (2.997u,-0.009u);
+ z62\1\0 = (0.963u,4.280u); z62\2\0s = (15.658u,4.040u);
+ z62\2\0 = (16.622u,2.111u); z62\2\1c1 = (15.615u,2.456u);
+ z62\2\1c2 = (15.322u,3.014u);
+ fill_or_unfill z62\0\0s
+ ..controls z62\0\0c1 and z62\0\0c2..z62\0\0
+ ..controls z62\0\1c1 and z62\0\1c2..z62\0\1
+ ..controls z62\0\2c1 and z62\0\2c2..z62\0\2
+ ..controls z62\0\3c1 and z62\0\3c2..z62\0\3
+ --cycle;
+ fill_or_unfill z62\1\0s
+ ..controls z62\1\0c1 and z62\1\0c2..z62\1\0
+ --cycle;
+ fill_or_unfill z62\2\0s
+ --z62\2\0
+ ..controls z62\2\1c1 and z62\2\1c2..cycle;
+endchar; % V31
+
+
+%% W11: Chockstone of a stone arch, with a triangle
+%% (code as g(103) 103+31 = 134)
+beginchar (134, 9.395u# + side#, 8.431u#, 0.000u#);
+ "W11";
+ z44\0\0s = (0.241u,8.431u); z44\0\0 = (1.069u,6.931u);
+ z44\0\1 = (0.000u,1.204u); z44\0\2c1 = (2.626u,0.170u);
+ z44\0\2c2 = (7.668u,0.222u); z44\0\2 = (9.468u,1.456u);
+ z44\0\3 = (7.976u,7.064u); z44\0\4 = (8.851u,8.402u);
+ z44\1\0s = (6.986u,7.468u); z44\1\0 = (8.336u,2.416u);
+ z44\1\1c1 = (8.195u,0.447u); z44\1\1c2 = (1.971u,1.326u);
+ z44\1\1 = (0.723u,1.927u); z44\1\2c1 = (3.118u,7.785u);
+ z44\1\2c2 = (-0.953u,7.468u); z44\2\0s = (4.336u,6.263u);
+ z44\2\0c1 = (4.101u,5.611u); z44\2\0c2 = (3.246u,2.860u);
+ z44\2\0 = (3.553u,2.330u); z44\2\1c1 = (3.920u,1.698u);
+ z44\2\1c2 = (5.788u,1.794u); z44\2\1 = (5.915u,2.675u);
+ z44\2\2 = (4.818u,6.263u); z44\3\0s = (5.059u,4.336u);
+ z44\3\0 = (5.300u,2.650u); z44\3\1 = (4.095u,2.650u);
+ z44\3\2 = (4.577u,4.336u);
+ fill_or_unfill z44\0\0s
+ --z44\0\0 --z44\0\1
+ ..controls z44\0\2c1 and z44\0\2c2..z44\0\2
+ --z44\0\3 --z44\0\4 --cycle;
+ fill_or_unfill z44\1\0s
+ --z44\1\0
+ ..controls z44\1\1c1 and z44\1\1c2..z44\1\1
+ ..controls z44\1\2c1 and z44\1\2c2..cycle;
+ fill_or_unfill z44\2\0s
+ ..controls z44\2\0c1 and z44\2\0c2..z44\2\0
+ ..controls z44\2\1c1 and z44\2\1c2..z44\2\1
+ --z44\2\2 --cycle;
+ fill_or_unfill z44\3\0s
+ --z44\3\0 --z44\3\1 --z44\3\2 --cycle;
+endchar; % W11
+
+
+%% X1: Upper half of circle
+%% (code as t(116) 116+31 = 147)
+beginchar (147, 8.913u# + side#, 4.760u#, 0.000u#);
+ "X1";
+ z32\0\0s = (0.000u,0.000u); z32\0\0 = (8.913u,0.000u);
+ z32\0\1c1 = (8.613u,6.425u); z32\0\1c2 = (0.300u,6.425u);
+ z32\1\0s = (8.191u,0.723u); z32\1\0 = (0.723u,0.723u);
+ z32\1\1c1 = (1.785u,4.957u); z32\1\1c2 = (7.128u,4.957u);
+ fill_or_unfill z32\0\0s
+ --z32\0\0
+ ..controls z32\0\1c1 and z32\0\1c2..cycle;
+ fill_or_unfill z32\1\0s
+ --z32\1\0
+ ..controls z32\1\1c1 and z32\1\1c2..cycle;
+endchar; % X1
+
+
+%% Y1* (aka Y1v) upright board with a W on it
+%% (code as 9(57) 57+31 = 88)
+%% (code as V(86) 86+31 = 117)
+beginchar (117, 4.095u# + side#, 17.345u#, 0.000u#);
+ "Y1*";
+ z40\0\0s = (1.686u,17.345u); z40\0\0 = (1.686u,10.600u);
+ z40\0\1c1 = (-0.008u,10.639u); z40\0\1c2 = (-0.108u,6.333u);
+ z40\0\1 = (1.686u,6.504u); z40\0\2 = (1.686u,0.000u);
+ z40\0\3 = (4.095u,0.000u); z40\0\4 = (4.095u,17.345u);
+ z40\1\0s = (3.373u,16.863u); z40\1\0 = (3.373u,0.723u);
+ z40\1\1 = (2.409u,0.723u); z40\1\2 = (2.409u,16.863u);
+ z40\2\0s = (1.714u,9.744u); z40\2\0 = (1.681u,7.360u);
+ z40\2\1 = (0.919u,8.155u); z40\2\2 = (0.952u,9.214u);
+ z40\3\0s = (2.030u,6.662u); z40\3\0 = (1.454u,7.055u);
+ z40\3\1 = (0.418u,5.544u); z40\3\2 = (0.981u,5.126u);
+ z40\4\0s = (0.980u,11.981u); z40\4\0 = (0.404u,11.588u);
+ z40\4\1 = (1.452u,10.052u); z40\4\2 = (2.029u,10.445u);
+ fill_or_unfill z40\0\0s
+ --z40\0\0
+ ..controls z40\0\1c1 and z40\0\1c2..z40\0\1
+ --z40\0\2 --z40\0\3 --z40\0\4 --cycle;
+ fill_or_unfill z40\1\0s
+ --z40\1\0 --z40\1\1 --z40\1\2 --cycle;
+ fill_or_unfill z40\2\0s
+ --z40\2\0 --z40\2\1 --z40\2\2 --cycle;
+ fill_or_unfill z40\3\0s
+ --z40\3\0 --z40\3\1 --z40\3\2 --cycle;
+ fill_or_unfill z40\4\0s
+ --z40\4\0 --z40\4\1 --z40\4\2 --cycle;
+endchar; % Y1*
+
+
+%% Z1: short vertical bar
+%% (code as 1(49) 49+31 = 80)
+%% (code as |(124) 124+31 = 155)
+beginchar (155, 0.723u# + side#, 7.227u#, 0.000u#);
+ "Z1";
+ z32\0\0s = (0.000u,7.227u); z32\0\0 = (0.000u,0.000u);
+ z32\0\1 = (0.723u,0.000u); z32\0\2 = (0.723u,7.227u);
+ fill_or_unfill z32\0\0s
+ --z32\0\0 --z32\0\1 --z32\0\2 --cycle;
+endchar; % Z1
+
+
+%% Z7: spiral
+%% (code as W(87) 87+31 = 118)
+beginchar (118, 5.720u# + side#, 9.319u#, 0.000u#);
+ "Z7";
+ z40\0\0s = (4.646u,0.000u); z40\0\0 = (4.887u,0.241u);
+ z40\0\1 = (4.887u,0.723u); z40\0\2c1 = (2.963u,1.925u);
+ z40\0\2c2 = (-1.492u,6.231u); z40\0\2 = (2.247u,8.148u);
+ z40\0\3c1 = (3.399u,8.738u); z40\0\3c2 = (5.200u,7.509u);
+ z40\0\3 = (4.815u,6.269u); z40\0\4c1 = (4.677u,5.825u);
+ z40\0\4c2 = (3.915u,5.065u); z40\0\4 = (3.512u,5.651u);
+ z40\0\5c1 = (3.371u,5.855u); z40\0\5c2 = (3.270u,6.694u);
+ z40\0\5 = (3.201u,6.986u); z40\0\6c1 = (2.014u,6.196u);
+ z40\0\6c2 = (1.806u,4.768u); z40\0\6 = (3.445u,4.416u);
+ z40\0\7c1 = (6.648u,3.729u); z40\0\7c2 = (6.545u,9.699u);
+ z40\0\7 = (2.719u,9.319u); z40\0\8c1 = (1.875u,9.235u);
+ z40\0\8c2 = (1.184u,8.616u); z40\0\8 = (0.718u,7.946u);
+ z40\0\9c1 = (-1.411u,4.882u); z40\0\9c2 = (1.564u,0.909u);
+ fill_or_unfill z40\0\0s
+ --z40\0\0 --z40\0\1
+ ..controls z40\0\2c1 and z40\0\2c2..z40\0\2
+ ..controls z40\0\3c1 and z40\0\3c2..z40\0\3
+ ..controls z40\0\4c1 and z40\0\4c2..z40\0\4
+ ..controls z40\0\5c1 and z40\0\5c2..z40\0\5
+ ..controls z40\0\6c1 and z40\0\6c2..z40\0\6
+ ..controls z40\0\7c1 and z40\0\7c2..z40\0\7
+ ..controls z40\0\8c1 and z40\0\8c2..z40\0\8
+ ..controls z40\0\9c1 and z40\0\9c2..cycle;
+endchar; % Z7
+
+
+%% Z11: Crossed planks.
+%% (code as +(43) 43+31 = 74)
+beginchar (74, 10.600u# + side#, 17.104u#, 0.000u#);
+ "Z11";
+ z46\0\0s = (4.336u,17.104u); z46\0\0 = (4.336u,9.395u);
+ z46\0\1 = (0.000u,9.395u); z46\0\2 = (0.000u,7.227u);
+ z46\0\3 = (4.336u,7.227u); z46\0\4 = (4.336u,0.000u);
+ z46\0\5 = (6.263u,0.000u); z46\0\6 = (6.263u,7.227u);
+ z46\0\7 = (10.600u,7.227u); z46\0\8 = (10.600u,9.395u);
+ z46\0\9 = (6.263u,9.395u); z46\0\10 = (6.263u,17.104u);
+ z46\1\0s = (5.541u,16.140u); z46\1\0 = (5.541u,0.723u);
+ z46\1\1 = (5.059u,0.723u); z46\1\2 = (5.059u,16.140u);
+ z46\2\0s = (4.336u,8.672u); z46\2\0 = (4.336u,7.950u);
+ z46\2\1 = (0.723u,7.950u); z46\2\2 = (0.723u,8.672u);
+ z46\3\0s = (9.877u,8.672u); z46\3\0 = (9.877u,7.950u);
+ z46\3\1 = (6.263u,7.950u); z46\3\2 = (6.263u,8.672u);
+ fill_or_unfill z46\0\0s
+ --z46\0\0 --z46\0\1 --z46\0\2 --z46\0\3 --z46\0\4
+ --z46\0\5 --z46\0\6 --z46\0\7 --z46\0\8 --z46\0\9
+ --z46\0\10 --cycle;
+ fill_or_unfill z46\1\0s
+ --z46\1\0 --z46\1\1 --z46\1\2 --cycle;
+ fill_or_unfill z46\2\0s
+ --z46\2\0 --z46\2\1 --z46\2\2 --cycle;
+ fill_or_unfill z46\3\0s
+ --z46\3\0 --z46\3\1 --z46\3\2 --cycle;
+endchar; % Z11
+
+
+%% Aa1: horizontally shaded circle
+%% (code as x(120) 120+31 = 151)
+%% (code as C(67) 67+31 = 98)
+beginchar (98, 8.183u# + side#, 8.249u#, 0.000u#);
+ "Aa1";
+ z32\0\0s = (8.157u,4.040u); z32\0\0c1 = (8.157u,9.664u);
+ z32\0\0c2 = (-0.023u,9.664u); z32\0\0 = (-0.023u,4.040u);
+ z32\0\1c1 = (-0.023u,-1.327u); z32\0\1c2 = (8.157u,-1.327u);
+ z32\1\0s = (7.390u,4.040u); z32\1\0c1 = (7.134u,-0.305u);
+ z32\1\0c2 = (1.000u,-0.305u); z32\1\0 = (0.744u,4.040u);
+ z32\1\1c1 = (0.744u,8.386u); z32\1\1c2 = (7.390u,8.386u);
+ z32\2\0s = (7.193u,6.336u); z32\2\0 = (1.314u,6.336u);
+ z32\2\1 = (0.803u,5.825u); z32\2\2 = (7.193u,5.825u);
+ z32\3\0s = (7.747u,3.528u); z32\3\0 = (0.590u,3.528u);
+ z32\3\1 = (0.590u,3.016u); z32\3\2 = (7.747u,3.016u);
+ z32\4\0s = (7.154u,2.254u); z32\4\0 = (1.020u,2.254u);
+ z32\4\1 = (1.187u,1.735u); z32\4\2 = (6.680u,1.735u);
+ z32\5\0s = (7.618u,5.007u); z32\5\0 = (0.461u,5.007u);
+ z32\5\1 = (0.461u,4.496u); z32\5\2 = (7.618u,4.496u);
+ fill_or_unfill z32\0\0s
+ ..controls z32\0\0c1 and z32\0\0c2..z32\0\0
+ ..controls z32\0\1c1 and z32\0\1c2..cycle;
+ fill_or_unfill z32\1\0s
+ ..controls z32\1\0c1 and z32\1\0c2..z32\1\0
+ ..controls z32\1\1c1 and z32\1\1c2..cycle;
+ fill_or_unfill z32\2\0s
+ --z32\2\0 --z32\2\1 --z32\2\2 --cycle;
+ fill_or_unfill z32\3\0s
+ --z32\3\0 --z32\3\1 --z32\3\2 --cycle;
+ fill_or_unfill z32\4\0s
+ --z32\4\0 --z32\4\1 --z32\4\2 --cycle;
+ fill_or_unfill z32\5\0s
+ --z32\5\0 --z32\5\1 --z32\5\2 --cycle;
+endchar; % Aa1
+
+
+%% Aa12: horizontal parallels joined at left
+%% (code as M(77) 77+31 = 108)
+beginchar (108, 16.863u# + side#, 4.096u#, 0.000u#);
+ "Aa12";
+ z43\0\0s = (0.241u,0.241u); z43\0\0 = (17.104u,0.241u);
+ z43\0\1 = (17.104u,0.964u); z43\0\2 = (1.927u,0.964u);
+ z43\0\3c1 = (5.650u,4.349u); z43\0\3c2 = (7.436u,3.139u);
+ z43\0\3 = (11.804u,3.132u); z43\0\4 = (17.104u,3.132u);
+ z43\0\5 = (17.104u,3.855u); z43\0\6 = (13.731u,3.855u);
+ z43\0\7c1 = (9.041u,3.862u); z43\0\7c2 = (3.064u,5.385u);
+ fill_or_unfill z43\0\0s
+ --z43\0\0 --z43\0\1 --z43\0\2
+ ..controls z43\0\3c1 and z43\0\3c2..z43\0\3
+ --z43\0\4 --z43\0\5 --z43\0\6
+ ..controls z43\0\7c1 and z43\0\7c2..cycle;
+endchar; % Aa12
+
+
+%% PW created char (the door sign)
+%% (code as C(67) 67+31 = 98)
+%% (code as x(120) 120+31 = 151)
+beginchar (151, 4u# + side#, 16.750u#, 0.000u#);
+ "PW1";
+%% the exterior
+ numeric lw; lw:=0.723u; % `linewidth'
+ x5=x6=0; % left vertical
+ x1=x2=4u; % w-side; % right vertical
+ x8=x7=x4=x3=0.5[x5,x1]; % center vertical
+ y1=y8=0; % bottom horizontal
+ y6=y7=y8+(x7-x6); % bottom mid horizontal
+ y3=y2=h; % top horizontal
+ y5=y4=y3-(x7-x6); % top mid horizontal
+%% the interior
+ x25=x26=x5+lw;
+ x28=x27=x24=x23=x8+lw;
+ x21=x22=x1-lw;
+ y21=y28=y1+lw;
+ y26=y27=y6+lw;
+ y25=y24=y5-lw;
+ y23=y22=y3-lw;
+ fill_or_unfill z1--z2--z3--z4--z5--z6--z7--z8--cycle;
+ fill_or_unfill z28--z27--z26--z25--z24--z23--z22--z21--cycle;
+ proof_labels(1,2,3,4,5,6,7,8,21,22,23,24,25,26,27,28);
+endchar; % PW1
+
+
+%% PW2: two machettes
+%% (code as y(121) 121+31 = 152)
+%% numeric width = (4.197u# + pwshift)
+beginchar (152, 10.197u# + side#, 17.824u#, 0.000u#);
+ "PW2";
+ numeric pwshift; pwshift := 6u;
+%% first machette
+ z48\0\0s = (1.412u,17.824u); z48\0\0c1 = (1.533u,16.738u);
+ z48\0\0c2 = (-0.254u,7.357u); z48\0\0 = (0.020u,6.582u);
+ z48\0\1c1 = (0.024u,4.308u); z48\0\1c2 = (2.993u,6.108u);
+ z48\0\1 = (2.993u,0.000u); z48\0\2 = (4.197u,0.000u);
+ z48\0\3 = (4.197u,13.009u); z48\0\4c1 = (4.171u,14.928u);
+ z48\0\4c2 = (3.494u,16.916u); z48\1\0s = (2.029u,16.622u);
+ z48\1\0 = (3.096u,15.176u); z48\1\1 = (3.041u,4.308u);
+ z48\1\2 = (0.749u,7.026u);
+ fill_or_unfill z48\0\0s
+ ..controls z48\0\0c1 and z48\0\0c2..z48\0\0
+ ..controls z48\0\1c1 and z48\0\1c2..z48\0\1
+ --z48\0\2 --z48\0\3
+ ..controls z48\0\4c1 and z48\0\4c2..cycle;
+ fill_or_unfill z48\1\0s
+ --z48\1\0 --z48\1\1 --z48\1\2 --cycle;
+
+%% second machette is the first shifted right by pwshift
+ z1 = z48\0\0s shifted(pwshift, 0);
+ z2 = z48\0\0c1 shifted(pwshift, 0);
+ z3 = z48\0\0c2 shifted(pwshift, 0);
+ z4 = z48\0\0 shifted (pwshift, 0);
+ z5 = z48\0\1c1 shifted (pwshift, 0);
+ z6 = z48\0\1c2 shifted (pwshift, 0);
+ z7 = z48\0\1 shifted (pwshift, 0);
+ z8 = z48\0\2 shifted (pwshift, 0);
+ z9 = z48\0\3 shifted (pwshift, 0);
+ z10 = z48\0\4c1 shifted (pwshift, 0);
+ z11 = z48\0\4c2 shifted (pwshift, 0);
+ z12 = z48\1\0s shifted (pwshift, 0);
+ z13 = z48\1\0 shifted (pwshift, 0);
+ z14 = z48\1\1 shifted (pwshift, 0);
+ z15 = z48\1\2 shifted (pwshift, 0);
+ fill_or_unfill z1
+ ..controls z2 and z3..z4
+ ..controls z5 and z6..z7
+ --z8 --z9
+ ..controls z10 and z11..cycle;
+ fill_or_unfill z12
+ --z13 --z14 --z15 --cycle;
+endchar; % PW2
+
+
+%% F31: three brambles hanging down (ms)
+%% (code as Delta(1) 1+31 = 32)
+beginchar (32, 8.122u#+side#, 16.893u#, 0.000u#);
+ "F31";
+ z62\0\0s = (1.238u,10.489u); z62\0\0 = (4.280u,12.476u);
+ z62\0\1 = (8.122u,13.851u); z62\0\2 = (7.331u,15.471u);
+ z62\0\3 = (3.885u,13.286u); z62\0\4 = (0.447u,12.109u);
+ z62\1\0s = (2.129u,7.974u); z62\1\0 = (1.926u,11.602u);
+ z62\1\1 = (1.027u,11.663u); z62\1\2 = (0.331u,8.097u);
+ z62\2\0s = (2.188u,3.224u); z62\2\0 = (1.738u,6.829u);
+ z62\2\1 = (0.836u,6.829u); z62\2\2 = (0.386u,3.224u);
+ z62\3\0s = (2.183u,0.000u); z62\3\0 = (1.733u,3.605u);
+ z62\3\1 = (0.831u,3.605u); z62\3\2 = (0.381u,0.000u);
+ z62\4\0s = (4.945u,9.232u); z62\4\0 = (4.495u,12.837u);
+ z62\4\1 = (4.945u,16.893u); z62\4\2 = (3.143u,16.893u);
+ z62\4\3 = (3.594u,12.837u); z62\4\4 = (3.143u,9.232u);
+ z62\5\0s = (4.997u,6.481u); z62\5\0 = (4.547u,10.086u);
+ z62\5\1 = (3.645u,10.086u); z62\5\2 = (3.195u,6.481u);
+ z62\6\0s = (4.991u,3.224u); z62\6\0 = (4.541u,6.829u);
+ z62\6\1 = (3.639u,6.829u); z62\6\2 = (3.189u,3.224u);
+ z62\7\0s = (4.986u,0.000u); z62\7\0 = (4.536u,3.605u);
+ z62\7\1 = (3.635u,3.605u); z62\7\2 = (3.184u,0.000u);
+ z62\8\0s = (7.645u,12.023u); z62\8\0 = (4.227u,13.257u);
+ z62\8\1 = (0.818u,15.499u); z62\8\2 = (0.000u,13.893u);
+ z62\8\3 = (3.819u,12.454u); z62\8\4 = (6.827u,10.417u);
+ z62\9\0s = (7.761u,7.922u); z62\9\0 = (7.256u,11.520u);
+ z62\9\1 = (6.355u,11.506u); z62\9\2 = (5.958u,7.895u);
+ z62\10\0s = (7.734u,3.212u); z62\10\0 = (7.284u,6.817u);
+ z62\10\1 = (6.383u,6.817u); z62\10\2 = (5.932u,3.212u);
+ z62\11\0s = (7.730u,-0.012u); z62\11\0 = (7.279u,3.594u);
+ z62\11\1 = (6.378u,3.594u); z62\11\2 = (5.927u,-0.012u);
+ z62\12\0s = (2.194u,6.481u); z62\12\0 = (1.743u,10.086u);
+ z62\12\1 = (0.842u,10.086u); z62\12\2 = (0.392u,6.481u);
+ z62\13\0s = (7.740u,6.469u); z62\13\0 = (7.290u,10.074u);
+ z62\13\1 = (6.388u,10.074u); z62\13\2 = (5.938u,6.469u);
+ fill_or_unfill z62\0\0s
+ --z62\0\0 --z62\0\1 --z62\0\2 --z62\0\3 --z62\0\4 --cycle;
+ fill_or_unfill z62\1\0s
+ --z62\1\0 --z62\1\1 --z62\1\2 --cycle;
+ fill_or_unfill z62\2\0s
+ --z62\2\0 --z62\2\1 --z62\2\2 --cycle;
+ fill_or_unfill z62\3\0s
+ --z62\3\0 --z62\3\1 --z62\3\2 --cycle;
+ fill_or_unfill z62\4\0s
+ --z62\4\0 --z62\4\1 --z62\4\2 --z62\4\3 --z62\4\4 --cycle;
+ fill_or_unfill z62\5\0s
+ --z62\5\0 --z62\5\1 --z62\5\2 --cycle;
+ fill_or_unfill z62\6\0s
+ --z62\6\0 --z62\6\1 --z62\6\2 --cycle;
+ fill_or_unfill z62\7\0s
+ --z62\7\0 --z62\7\1 --z62\7\2 --cycle;
+ fill_or_unfill z62\8\0s
+ --z62\8\0 --z62\8\1 --z62\8\2 --z62\8\3 --z62\8\4 --cycle;
+ fill_or_unfill z62\9\0s
+ --z62\9\0 --z62\9\1 --z62\9\2 --cycle;
+ fill_or_unfill z62\10\0s
+ --z62\10\0 --z62\10\1 --z62\10\2 --cycle;
+ fill_or_unfill z62\11\0s
+ --z62\11\0 --z62\11\1 --z62\11\2 --cycle;
+ fill_or_unfill z62\12\0s
+ --z62\12\0 --z62\12\1 --z62\12\2 --cycle;
+ fill_or_unfill z62\13\0s
+ --z62\13\0 --z62\13\1 --z62\13\2 --cycle;
+endchar;
+
+
+%% G26: an ibis on a post
+%% (code as Theta(2) 2+31 = 33)
+beginchar (33, 16.417u#+side#, 17.184u#, 0.000u#);
+ "G26";
+ z59\0\0s = (0.000u,13.250u); z59\0\0c1 = (0.757u,13.785u);
+ z59\0\0c2 = (2.400u,15.478u); z59\0\0 = (3.334u,15.206u);
+ z59\0\1c1 = (4.287u,14.929u); z59\0\1c2 = (3.736u,13.312u);
+ z59\0\1 = (4.032u,12.527u); z59\0\2c1 = (4.517u,11.241u);
+ z59\0\2c2 = (5.852u,10.696u); z59\0\2 = (6.567u,9.615u);
+ z59\0\3c1 = (7.346u,8.439u); z59\0\3c2 = (6.465u,5.731u);
+ z59\0\3 = (5.249u,5.203u); z59\0\4c1 = (4.723u,4.975u);
+ z59\0\4c2 = (2.397u,5.059u); z59\0\4 = (1.686u,5.059u);
+ z59\0\5 = (1.686u,3.614u); z59\0\6c1 = (4.909u,3.614u);
+ z59\0\6c2 = (9.008u,4.600u); z59\0\6 = (9.154u,0.000u);
+ z59\0\7 = (9.877u,0.000u); z59\0\8 = (9.877u,3.614u);
+ z59\0\9 = (11.563u,3.614u); z59\0\10 = (11.563u,5.059u);
+ z59\0\11 = (10.118u,5.059u); z59\0\12 = (10.359u,8.432u);
+ z59\0\13c1 = (11.154u,8.496u); z59\0\13c2 = (11.972u,8.704u);
+ z59\0\13 = (12.768u,8.591u); z59\0\14c1 = (13.611u,8.472u);
+ z59\0\14c2 = (14.279u,8.058u); z59\0\14 = (15.175u,8.147u);
+ z59\0\15c1 = (15.683u,8.197u); z59\0\15c2 = (16.719u,8.559u);
+ z59\0\15 = (16.341u,9.266u); z59\0\16c1 = (16.154u,9.615u);
+ z59\0\16c2 = (14.641u,10.203u); z59\0\16 = (14.213u,10.421u);
+ z59\0\17c1 = (9.520u,12.821u); z59\0\17c2 = (10.177u,13.013u);
+ z59\0\17 = (4.818u,13.009u); z59\0\18c1 = (4.902u,13.948u);
+ z59\0\18c2 = (5.587u,15.601u); z59\0\18 = (5.443u,16.356u);
+ z59\0\19c1 = (4.969u,18.842u); z59\0\19c2 = (-0.069u,15.136u);
+ z59\1\0s = (15.176u,8.673u); z59\1\0c1 = (14.066u,8.814u);
+ z59\1\0c2 = (13.121u,9.220u); z59\1\0 = (11.976u,9.189u);
+ z59\1\1c1 = (9.389u,9.119u); z59\1\1c2 = (6.523u,9.722u);
+ z59\1\1 = (5.300u,12.270u); z59\1\2c1 = (6.341u,12.295u);
+ z59\1\2c2 = (7.401u,12.448u); z59\1\2 = (8.431u,12.270u);
+ z59\1\3c1 = (9.855u,11.986u); z59\1\3c2 = (14.467u,9.816u);
+ z59\2\0s = (9.395u,5.059u); z59\2\0 = (6.504u,5.300u);
+ z59\2\1 = (8.190u,8.914u); z59\2\2c1 = (10.058u,7.998u);
+ z59\2\2c2 = (9.400u,6.787u); z59\3\0s = (9.395u,3.614u);
+ z59\3\0 = (9.154u,2.891u); z59\3\1 = (8.672u,3.614u);
+ fill_or_unfill z59\0\0s
+ ..controls z59\0\0c1 and z59\0\0c2..z59\0\0
+ ..controls z59\0\1c1 and z59\0\1c2..z59\0\1
+ ..controls z59\0\2c1 and z59\0\2c2..z59\0\2
+ ..controls z59\0\3c1 and z59\0\3c2..z59\0\3
+ ..controls z59\0\4c1 and z59\0\4c2..z59\0\4
+ --z59\0\5
+ ..controls z59\0\6c1 and z59\0\6c2..z59\0\6
+ --z59\0\7 --z59\0\8 --z59\0\9 --z59\0\10 --z59\0\11 --z59\0\12
+ ..controls z59\0\13c1 and z59\0\13c2..z59\0\13
+ ..controls z59\0\14c1 and z59\0\14c2..z59\0\14
+ ..controls z59\0\15c1 and z59\0\15c2..z59\0\15
+ ..controls z59\0\16c1 and z59\0\16c2..z59\0\16
+ ..controls z59\0\17c1 and z59\0\17c2..z59\0\17
+ ..controls z59\0\18c1 and z59\0\18c2..z59\0\18
+ ..controls z59\0\19c1 and z59\0\19c2..cycle;
+ fill_or_unfill z59\1\0s
+ ..controls z59\1\0c1 and z59\1\0c2..z59\1\0
+ ..controls z59\1\1c1 and z59\1\1c2..z59\1\1
+ ..controls z59\1\2c1 and z59\1\2c2..z59\1\2
+ ..controls z59\1\3c1 and z59\1\3c2..cycle;
+ fill_or_unfill z59\2\0s
+ --z59\2\0 --z59\2\1
+ ..controls z59\2\2c1 and z59\2\2c2..cycle;
+ fill_or_unfill z59\3\0s
+ --z59\3\0 --z59\3\1 --cycle;
+endchar;
+
+
+%% G26*: an ibis walking
+%% (code as Lambda(3) 3+31 = 34)
+beginchar (34, 17.176u#+side#, 17.690u#, 0.000u#);
+ "G26*";
+ z60\0\0s = (0.000u,12.527u); z60\0\0c1 = (1.707u,13.586u);
+ z60\0\0c2 = (0.866u,15.559u); z60\0\0 = (3.613u,15.418u);
+ z60\0\1c1 = (3.536u,14.499u); z60\0\1c2 = (3.028u,13.124u);
+ z60\0\1 = (3.424u,12.296u); z60\0\2c1 = (3.752u,11.609u);
+ z60\0\2c2 = (4.485u,11.178u); z60\0\2 = (5.059u,10.718u);
+ z60\0\3c1 = (8.157u,8.232u); z60\0\3c2 = (9.439u,7.709u);
+ z60\0\3 = (7.776u,3.855u); z60\0\4c1 = (6.426u,0.725u);
+ z60\0\4c2 = (7.154u,1.354u); z60\0\4 = (4.095u,0.482u);
+ z60\0\5 = (8.191u,0.000u); z60\0\6 = (7.227u,0.723u);
+ z60\0\7 = (9.636u,6.987u); z60\0\8 = (10.118u,6.987u);
+ z60\0\9 = (10.394u,1.697u); z60\0\10 = (8.672u,0.000u);
+ z60\0\11 = (12.286u,0.000u); z60\0\12 = (11.224u,1.476u);
+ z60\0\13 = (10.840u,7.709u); z60\0\14 = (16.540u,7.366u);
+ z60\0\15c1 = (19.752u,8.828u); z60\0\15c2 = (10.471u,12.758u);
+ z60\0\15 = (9.395u,13.076u); z60\0\16c1 = (7.517u,13.631u);
+ z60\0\16c2 = (5.637u,12.605u); z60\0\16 = (4.882u,12.922u);
+ z60\0\17c1 = (3.346u,13.566u); z60\0\17c2 = (7.092u,17.767u);
+ z60\0\17 = (3.854u,17.690u); z60\0\18c1 = (1.943u,17.645u);
+ z60\0\18c2 = (0.043u,14.219u); z60\1\0s = (3.372u,16.605u);
+ z60\2\0s = (4.463u,16.540u); z60\3\0s = (15.177u,9.396u);
+ z60\3\0c1 = (13.424u,8.702u); z60\3\0c2 = (9.320u,10.190u);
+ z60\3\0 = (7.709u,11.082u); z60\3\1 = (8.913u,11.564u);
+ z60\3\2 = (6.745u,12.046u); z60\3\3c1 = (7.452u,9.661u);
+ z60\3\3c2 = (11.277u,8.854u); z60\3\3 = (13.490u,8.673u);
+ z60\3\4c1 = (10.690u,7.562u); z60\3\4c2 = (6.430u,9.527u);
+ z60\3\4 = (5.059u,12.046u); z60\3\5 = (7.950u,12.509u);
+ z60\3\6c1 = (9.966u,12.509u); z60\3\6c2 = (13.473u,10.504u);
+ z60\4\0s = (15.245u,8.182u);
+ fill_or_unfill z60\0\0s
+ ..controls z60\0\0c1 and z60\0\0c2..z60\0\0
+ ..controls z60\0\1c1 and z60\0\1c2..z60\0\1
+ ..controls z60\0\2c1 and z60\0\2c2..z60\0\2
+ ..controls z60\0\3c1 and z60\0\3c2..z60\0\3
+ ..controls z60\0\4c1 and z60\0\4c2..z60\0\4
+ --z60\0\5 --z60\0\6 --z60\0\7 --z60\0\8 --z60\0\9
+ --z60\0\10 --z60\0\11 --z60\0\12 --z60\0\13 --z60\0\14
+ ..controls z60\0\15c1 and z60\0\15c2..z60\0\15
+ ..controls z60\0\16c1 and z60\0\16c2..z60\0\16
+ ..controls z60\0\17c1 and z60\0\17c2..z60\0\17
+ ..controls z60\0\18c1 and z60\0\18c2..cycle;
+ fill_or_unfill z60\1\0s
+ --cycle;
+ fill_or_unfill z60\2\0s
+ --cycle;
+ fill_or_unfill z60\3\0s
+ ..controls z60\3\0c1 and z60\3\0c2..z60\3\0
+ --z60\3\1 --z60\3\2
+ ..controls z60\3\3c1 and z60\3\3c2..z60\3\3
+ ..controls z60\3\4c1 and z60\3\4c2..z60\3\4
+ --z60\3\5
+ ..controls z60\3\6c1 and z60\3\6c2..cycle;
+ fill_or_unfill z60\4\0s
+ --cycle;
+endchar;
+
+
+%% G27: a short-necked ibis pecking
+%% (code as Xi(4) 4+31 = 35)
+beginchar (35, 16.910u#+side#, 12.315u#, 0.000u#);
+ "G27";
+ z61\0\0s = (0.529u,6.305u); z61\0\0 = (1.492u,9.919u);
+ z61\0\1c1 = (1.548u,7.468u); z61\0\1c2 = (3.139u,6.110u);
+ z61\0\1 = (4.624u,8.714u); z61\0\2c1 = (7.115u,6.722u);
+ z61\0\2c2 = (7.948u,6.209u); z61\0\2 = (7.123u,2.932u);
+ z61\0\3c1 = (6.968u,2.317u); z61\0\3c2 = (6.819u,1.371u);
+ z61\0\3 = (6.238u,1.014u); z61\0\4c1 = (5.146u,0.344u);
+ z61\0\4c2 = (4.368u,1.692u); z61\0\4 = (2.938u,0.282u);
+ z61\0\5c1 = (4.032u,0.066u); z61\0\5c2 = (9.359u,-0.363u);
+ z61\0\5 = (9.901u,0.599u); z61\0\6 = (9.901u,5.823u);
+ z61\0\7c1 = (13.270u,5.790u); z61\0\7c2 = (13.429u,3.528u);
+ z61\0\7 = (16.910u,5.100u); z61\0\8c1 = (16.368u,6.795u);
+ z61\0\8c2 = (14.205u,7.789u); z61\0\8 = (12.815u,8.764u);
+ z61\0\9c1 = (10.960u,10.064u); z61\0\9c2 = (5.392u,14.161u);
+ z61\0\9 = (3.419u,11.364u); z61\0\10c1 = (0.411u,15.015u);
+ z61\0\10c2 = (-0.828u,7.322u); z61\1\0s = (1.974u,11.846u);
+ z61\1\0 = (2.456u,9.437u); z61\2\0s = (14.501u,6.546u);
+ z61\2\0 = (7.036u,8.910u); z61\2\1 = (5.106u,10.641u);
+ z61\2\2 = (6.069u,8.714u); z61\2\3c1 = (4.987u,9.101u);
+ z61\2\3c2 = (4.761u,9.387u); z61\2\3 = (3.893u,8.473u);
+ z61\2\4c1 = (3.732u,9.068u); z61\2\4c2 = (3.818u,9.546u);
+ z61\2\4 = (3.893u,10.158u); z61\2\5c1 = (4.358u,14.529u);
+ z61\2\5c2 = (13.264u,7.960u); z61\3\0s = (2.456u,9.196u);
+ z61\3\0 = (3.660u,8.473u); z61\3\1c1 = (2.835u,7.895u);
+ z61\3\1c2 = (2.128u,8.099u); z61\4\0s = (6.310u,8.714u);
+ z61\5\0s = (6.656u,8.264u); z61\6\0s = (7.274u,7.991u);
+ z61\6\0 = (12.574u,6.546u); z61\6\1c1 = (10.782u,5.843u);
+ z61\6\1c2 = (8.544u,6.826u); z61\6\1 = (7.033u,7.750u);
+ z61\7\0s = (8.180u,6.305u); z61\7\0c1 = (9.712u,4.973u);
+ z61\7\0c2 = (9.201u,2.600u); z61\7\0 = (9.201u,0.764u);
+ z61\7\1 = (7.515u,0.764u); z61\7\2 = (8.180u,4.378u);
+ z61\8\0s = (15.223u,5.100u); z61\8\0 = (12.574u,6.305u);
+ fill_or_unfill z61\0\0s
+ --z61\0\0
+ ..controls z61\0\1c1 and z61\0\1c2..z61\0\1
+ ..controls z61\0\2c1 and z61\0\2c2..z61\0\2
+ ..controls z61\0\3c1 and z61\0\3c2..z61\0\3
+ ..controls z61\0\4c1 and z61\0\4c2..z61\0\4
+ ..controls z61\0\5c1 and z61\0\5c2..z61\0\5
+ --z61\0\6
+ ..controls z61\0\7c1 and z61\0\7c2..z61\0\7
+ ..controls z61\0\8c1 and z61\0\8c2..z61\0\8
+ ..controls z61\0\9c1 and z61\0\9c2..z61\0\9
+ ..controls z61\0\10c1 and z61\0\10c2..cycle;
+ fill_or_unfill z61\1\0s
+ --z61\1\0
+ --cycle;
+ fill_or_unfill z61\2\0s
+ --z61\2\0 --z61\2\1 --z61\2\2
+ ..controls z61\2\3c1 and z61\2\3c2..z61\2\3
+ ..controls z61\2\4c1 and z61\2\4c2..z61\2\4
+ ..controls z61\2\5c1 and z61\2\5c2..cycle;
+ fill_or_unfill z61\3\0s
+ --z61\3\0
+ ..controls z61\3\1c1 and z61\3\1c2..cycle;
+ fill_or_unfill z61\4\0s
+ --cycle;
+ fill_or_unfill z61\5\0s
+ --cycle;
+ fill_or_unfill z61\6\0s
+ --z61\6\0
+ ..controls z61\6\1c1 and z61\6\1c2..z61\6\1
+ --cycle;
+ fill_or_unfill z61\7\0s
+ ..controls z61\7\0c1 and z61\7\0c2..z61\7\0
+ --z61\7\1 --z61\7\2 --cycle;
+ fill_or_unfill z61\8\0s
+ --z61\8\0 --cycle;
+endchar;
+
+
+%% G28: a long-necked ibis pecking
+%% (code as Pi(5) 5+31 = 36)
+beginchar (36, 20.626u#+side#, 10.514u#, 0.000u#);
+ "G28";
+ z62\0\0s = (0.000u,6.022u); z62\0\0c1 = (1.302u,6.853u);
+ z62\0\0c2 = (1.064u,8.015u); z62\0\0 = (3.132u,8.351u);
+ z62\0\1c1 = (4.703u,8.607u); z62\0\1c2 = (4.812u,7.723u);
+ z62\0\1 = (6.026u,7.228u); z62\0\2c1 = (6.827u,6.901u);
+ z62\0\2c2 = (7.624u,7.096u); z62\0\2 = (8.431u,6.914u);
+ z62\0\3c1 = (9.703u,6.626u); z62\0\3c2 = (11.355u,5.020u);
+ z62\0\3 = (10.980u,3.613u); z62\0\4c1 = (9.878u,-0.517u);
+ z62\0\4c2 = (7.249u,2.042u); z62\0\4 = (6.022u,0.000u);
+ z62\0\5 = (7.709u,0.163u); z62\0\6 = (14.454u,0.481u);
+ z62\0\7 = (13.972u,5.058u); z62\0\8c1 = (14.744u,5.075u);
+ z62\0\8c2 = (15.632u,5.292u); z62\0\8 = (16.381u,5.185u);
+ z62\0\9c1 = (17.553u,5.018u); z62\0\9c2 = (17.875u,4.429u);
+ z62\0\9 = (19.231u,4.838u); z62\0\10c1 = (22.624u,5.864u);
+ z62\0\10c2 = (18.956u,7.416u); z62\0\10 = (17.826u,8.024u);
+ z62\0\11c1 = (16.434u,8.773u); z62\0\11c2 = (15.016u,9.718u);
+ z62\0\11 = (13.490u,10.170u); z62\0\12c1 = (9.251u,11.423u);
+ z62\0\12c2 = (8.299u,8.888u); z62\0\12 = (6.990u,8.951u);
+ z62\0\13c1 = (6.159u,8.990u); z62\0\13c2 = (5.779u,10.068u);
+ z62\0\13 = (4.809u,10.278u); z62\0\14c1 = (3.817u,10.493u);
+ z62\0\14c2 = (0.969u,8.509u); z62\0\14 = (0.446u,7.695u);
+ z62\0\15c1 = (0.110u,7.172u); z62\0\15c2 = (0.056u,6.622u);
+ z62\1\0s = (19.272u,6.504u); z62\1\0 = (11.106u,7.669u);
+ z62\1\1 = (9.877u,9.154u); z62\1\2c1 = (9.151u,6.581u);
+ z62\1\2c2 = (13.753u,6.398u); z62\1\2 = (15.417u,6.263u);
+ z62\1\3 = (15.417u,5.788u); z62\1\4 = (12.286u,5.788u);
+ z62\1\5 = (6.745u,7.708u); z62\1\6c1 = (12.071u,11.658u);
+ z62\1\6c2 = (14.157u,9.174u); z62\2\0s = (4.787u,9.373u);
+ z62\3\0s = (5.300u,9.154u); z62\4\0s = (5.541u,8.913u);
+ z62\5\0s = (5.663u,8.434u); z62\6\0s = (18.549u,5.299u);
+ z62\6\0 = (17.586u,5.540u); z62\7\0s = (12.286u,5.058u);
+ z62\7\0c1 = (12.818u,4.743u); z62\7\0c2 = (13.429u,4.423u);
+ z62\7\0 = (13.704u,3.832u); z62\7\1c1 = (14.068u,3.051u);
+ z62\7\1c2 = (13.570u,1.252u); z62\7\1 = (12.733u,0.933u);
+ z62\7\2c1 = (12.140u,0.656u); z62\7\2c2 = (11.227u,0.881u);
+ z62\7\2 = (10.600u,0.933u); z62\7\3 = (11.806u,3.372u);
+ fill_or_unfill z62\0\0s
+ ..controls z62\0\0c1 and z62\0\0c2..z62\0\0
+ ..controls z62\0\1c1 and z62\0\1c2..z62\0\1
+ ..controls z62\0\2c1 and z62\0\2c2..z62\0\2
+ ..controls z62\0\3c1 and z62\0\3c2..z62\0\3
+ ..controls z62\0\4c1 and z62\0\4c2..z62\0\4
+ --z62\0\5 --z62\0\6 --z62\0\7
+ ..controls z62\0\8c1 and z62\0\8c2..z62\0\8
+ ..controls z62\0\9c1 and z62\0\9c2..z62\0\9
+ ..controls z62\0\10c1 and z62\0\10c2..z62\0\10
+ ..controls z62\0\11c1 and z62\0\11c2..z62\0\11
+ ..controls z62\0\12c1 and z62\0\12c2..z62\0\12
+ ..controls z62\0\13c1 and z62\0\13c2..z62\0\13
+ ..controls z62\0\14c1 and z62\0\14c2..z62\0\14
+ ..controls z62\0\15c1 and z62\0\15c2..cycle;
+ fill_or_unfill z62\1\0s
+ --z62\1\0 --z62\1\1
+ ..controls z62\1\2c1 and z62\1\2c2..z62\1\2
+ --z62\1\3 --z62\1\4 --z62\1\5
+ ..controls z62\1\6c1 and z62\1\6c2..cycle;
+ fill_or_unfill z62\2\0s
+ --cycle;
+ fill_or_unfill z62\3\0s
+ --cycle;
+ fill_or_unfill z62\4\0s
+ --cycle;
+ fill_or_unfill z62\5\0s
+ --cycle;
+ fill_or_unfill z62\6\0s
+ --z62\6\0 --cycle;
+ fill_or_unfill z62\7\0s
+ ..controls z62\7\0c1 and z62\7\0c2..z62\7\0
+ ..controls z62\7\1c1 and z62\7\1c2..z62\7\1
+ ..controls z62\7\2c1 and z62\7\2c2..z62\7\2
+ --z62\7\3 --cycle;
+endchar;
+
+
+%% Z6: stick with a V at righthand end
+%% (code as Sigma(6) 6+31 = 37)
+beginchar (37, 17.812u#+side#, 9.154u#, 0.000u#);
+ "Z6";
+ z39\0\0s = (0.241u,9.154u); z39\0\0 = (0.000u,7.950u);
+ z39\0\1 = (13.968u,3.990u); z39\0\2 = (17.104u,0.000u);
+ z39\0\3 = (17.812u,0.699u); z39\0\4 = (15.540u,3.797u);
+ z39\0\5 = (17.458u,5.449u); z39\0\6 = (16.986u,6.364u);
+ z39\0\7 = (15.177u,4.818u);
+ fill_or_unfill z39\0\0s
+ --z39\0\0 --z39\0\1 --z39\0\2 --z39\0\3 --z39\0\4
+ --z39\0\5 --z39\0\6 --z39\0\7 --cycle;
+endchar;
+
+
+%% A1: Kneeling man pointing
+%% (code as Upsilon(7) 7+31 = 38)
+%%beginchar (32, 13.490u#, 17.826u#, 0.000u#);
+beginchar (38, 13.490u#+side#, 17.826u#, 0.000u#);
+ "A1";
+ z32\0\0s = (6.986u,13.490u); z32\0\0c1 = (5.734u,12.830u);
+ z32\0\0c2 = (4.749u,11.724u); z32\0\0 = (3.763u,10.591u);
+ z32\0\1 = (2.002u,12.281u); z32\0\2c1 = (1.748u,12.963u);
+ z32\0\2c2 = (1.261u,13.873u); z32\0\2 = (0.241u,13.972u);
+ z32\0\3c1 = (-0.169u,13.191u); z32\0\3c2 = (0.708u,13.320u);
+ z32\0\3 = (0.903u,12.541u); z32\0\4c1 = (0.416u,12.281u);
+ z32\0\4c2 = (0.806u,11.728u); z32\0\4 = (1.391u,11.598u);
+ z32\0\5 = (3.739u,9.086u); z32\0\6 = (6.263u,10.840u);
+ z32\0\7 = (6.504u,5.781u); z32\0\8c1 = (5.858u,6.247u);
+ z32\0\8c2 = (2.226u,9.941u); z32\0\8 = (2.232u,7.003u);
+ z32\0\9 = (2.778u,4.002u); z32\0\10c1 = (2.954u,2.417u);
+ z32\0\10c2 = (0.428u,1.546u); z32\0\10 = (0.000u,0.241u);
+ z32\0\11 = (6.022u,0.702u); z32\0\12 = (8.632u,0.702u);
+ z32\0\13 = (12.527u,0.482u); z32\0\14 = (10.406u,1.774u);
+ z32\0\15 = (10.406u,8.431u); z32\0\16 = (13.490u,7.709u);
+ z32\0\17c1 = (13.275u,10.070u); z32\0\17c2 = (11.486u,12.990u);
+ z32\0\17 = (9.877u,13.731u); z32\0\18c1 = (9.476u,14.172u);
+ z32\0\18c2 = (10.296u,14.660u); z32\0\18 = (10.562u,15.413u);
+ z32\0\19c1 = (11.120u,17.558u); z32\0\19c2 = (7.583u,19.092u);
+ z32\0\19 = (6.476u,16.579u); z32\0\20c1 = (5.962u,15.872u);
+ z32\0\20c2 = (5.544u,15.165u); z32\0\20 = (6.251u,15.390u);
+ z32\0\21c1 = (6.251u,14.634u); z32\0\21c2 = (6.589u,14.409u);
+ z32\0\21 = (7.087u,14.329u); z32\0\22c1 = (7.473u,14.329u);
+ z32\0\22c2 = (7.409u,14.007u); z32\1\0s = (9.154u,14.695u);
+ z32\1\0c1 = (9.567u,16.868u); z32\1\0c2 = (8.022u,16.275u);
+ z32\1\0 = (7.468u,17.104u); z32\1\1c1 = (8.501u,18.205u);
+ z32\1\1c2 = (11.226u,16.366u); z32\2\0s = (7.931u,14.711u);
+ z32\2\0c1 = (6.943u,14.694u); z32\2\0c2 = (6.261u,15.718u);
+ z32\2\0 = (6.997u,16.581u); z32\2\1c1 = (7.302u,16.068u);
+ z32\2\1c2 = (8.610u,15.918u); z32\2\1 = (8.609u,15.591u);
+ z32\2\2 = (8.546u,14.722u); z32\2\3c1 = (8.683u,14.115u);
+ z32\2\3c2 = (9.290u,14.408u); z32\2\3 = (9.173u,13.840u);
+ z32\2\4c1 = (9.010u,12.651u); z32\2\4c2 = (10.482u,13.462u);
+ z32\2\4 = (10.086u,11.784u); z32\2\5 = (9.731u,9.918u);
+ z32\2\6 = (9.231u,10.044u); z32\2\7c1 = (9.088u,10.512u);
+ z32\2\7c2 = (7.590u,11.279u); z32\2\7 = (7.227u,11.081u);
+ z32\2\8c1 = (6.757u,10.269u); z32\2\8c2 = (8.941u,9.661u);
+ z32\2\8 = (8.982u,8.832u); z32\2\9 = (9.618u,8.583u);
+ z32\2\10 = (9.632u,7.705u); z32\2\11c1 = (9.694u,5.540u);
+ z32\2\11c2 = (9.293u,5.395u); z32\2\11 = (7.227u,5.059u);
+ z32\2\12c1 = (7.232u,6.830u); z32\2\12c2 = (7.526u,10.663u);
+ z32\2\12 = (6.263u,12.045u); z32\2\13 = (7.880u,13.480u);
+ z32\3\0s = (10.840u,11.081u); z32\3\0c1 = (11.159u,10.590u);
+ z32\3\0c2 = (11.523u,9.826u); z32\3\0 = (11.668u,9.389u);
+ z32\3\1 = (10.613u,9.680u); z32\4\0s = (6.263u,4.577u);
+ z32\4\0c1 = (4.619u,3.776u); z32\4\0c2 = (3.779u,3.298u);
+ z32\4\0 = (3.603u,5.520u); z32\4\1c1 = (3.533u,6.235u);
+ z32\4\1c2 = (3.414u,6.510u); z32\4\1 = (3.603u,7.227u);
+ z32\5\0s = (2.650u,1.445u); z32\5\0c1 = (2.907u,3.036u);
+ z32\5\0c2 = (7.018u,4.463u); z32\5\0 = (8.533u,4.697u);
+ z32\5\1c1 = (10.033u,4.928u); z32\5\1c2 = (10.418u,1.658u);
+ z32\5\1 = (7.956u,1.699u); z32\5\2 = (5.781u,1.920u);
+ fill_or_unfill z32\0\0s
+ ..controls z32\0\0c1 and z32\0\0c2..z32\0\0
+ --z32\0\1
+ ..controls z32\0\2c1 and z32\0\2c2..z32\0\2
+ ..controls z32\0\3c1 and z32\0\3c2..z32\0\3
+ ..controls z32\0\4c1 and z32\0\4c2..z32\0\4
+ --z32\0\5 --z32\0\6 --z32\0\7
+ ..controls z32\0\8c1 and z32\0\8c2..z32\0\8
+ --z32\0\9
+ ..controls z32\0\10c1 and z32\0\10c2..z32\0\10
+ --z32\0\11 --z32\0\12 --z32\0\13 --z32\0\14 --z32\0\15
+ --z32\0\16
+ ..controls z32\0\17c1 and z32\0\17c2..z32\0\17
+ ..controls z32\0\18c1 and z32\0\18c2..z32\0\18
+ ..controls z32\0\19c1 and z32\0\19c2..z32\0\19
+ ..controls z32\0\20c1 and z32\0\20c2..z32\0\20
+ ..controls z32\0\21c1 and z32\0\21c2..z32\0\21
+ ..controls z32\0\22c1 and z32\0\22c2..cycle;
+ fill_or_unfill z32\1\0s
+ ..controls z32\1\0c1 and z32\1\0c2..z32\1\0
+ ..controls z32\1\1c1 and z32\1\1c2..cycle;
+ fill_or_unfill z32\2\0s
+ ..controls z32\2\0c1 and z32\2\0c2..z32\2\0
+ ..controls z32\2\1c1 and z32\2\1c2..z32\2\1
+ --z32\2\2
+ ..controls z32\2\3c1 and z32\2\3c2..z32\2\3
+ ..controls z32\2\4c1 and z32\2\4c2..z32\2\4
+ --z32\2\5 --z32\2\6
+ ..controls z32\2\7c1 and z32\2\7c2..z32\2\7
+ ..controls z32\2\8c1 and z32\2\8c2..z32\2\8
+ --z32\2\9 --z32\2\10
+ ..controls z32\2\11c1 and z32\2\11c2..z32\2\11
+ ..controls z32\2\12c1 and z32\2\12c2..z32\2\12
+ --z32\2\13 --cycle;
+ fill_or_unfill z32\3\0s
+ ..controls z32\3\0c1 and z32\3\0c2..z32\3\0
+ --z32\3\1 --cycle;
+ fill_or_unfill z32\4\0s
+ ..controls z32\4\0c1 and z32\4\0c2..z32\4\0
+ ..controls z32\4\1c1 and z32\4\1c2..z32\4\1
+ --cycle;
+ fill_or_unfill z32\5\0s
+ ..controls z32\5\0c1 and z32\5\0c2..z32\5\0
+ ..controls z32\5\1c1 and z32\5\1c2..z32\5\1
+ --z32\5\2 --cycle;
+endchar;
+
+
+%% F20: Tongue (ns)
+%% (code as Phi(8) 8+31 = 39)
+%%beginchar (51, 17.353u#, 13.250u#, 0.000u#);
+beginchar (39, 17.353u#+side#, 13.250u#, 0.000u#);
+ "F20";
+ z51\0\0s = (17.112u,0.000u); z51\0\0 = (17.353u,0.241u);
+ z51\0\1 = (16.094u,2.650u); z51\0\2 = (14.462u,9.395u);
+ z51\0\3 = (16.629u,9.395u); z51\0\4 = (16.629u,9.877u);
+ z51\0\5c1 = (14.076u,10.962u); z51\0\5c2 = (11.191u,11.327u);
+ z51\0\5 = (8.439u,11.322u); z51\0\6c1 = (6.032u,11.319u);
+ z51\0\6c2 = (3.304u,10.515u); z51\0\6 = (0.970u,11.082u);
+ z51\0\7 = (1.453u,13.250u); z51\0\8c1 = (0.039u,13.007u);
+ z51\0\8c2 = (-0.651u,10.694u); z51\0\8 = (0.766u,10.055u);
+ z51\0\9c1 = (1.293u,9.817u); z51\0\9c2 = (2.532u,9.871u);
+ z51\0\9 = (3.140u,9.878u); z51\0\10 = (9.644u,10.118u);
+ z51\0\11c1 = (16.720u,10.107u); z51\0\11c2 = (13.331u,3.308u);
+ fill_or_unfill z51\0\0s
+ --z51\0\0 --z51\0\1 --z51\0\2 --z51\0\3 --z51\0\4
+ ..controls z51\0\5c1 and z51\0\5c2..z51\0\5
+ ..controls z51\0\6c1 and z51\0\6c2..z51\0\6
+ --z51\0\7
+ ..controls z51\0\8c1 and z51\0\8c2..z51\0\8
+ ..controls z51\0\9c1 and z51\0\9c2..z51\0\9
+ --z51\0\10
+ ..controls z51\0\11c1 and z51\0\11c2..cycle;
+endchar;
+
+
+%% Y4: Scribe (sb)
+%% (code as Psi(9) 9+31 = 40)
+%%beginchar (35, 14.398u#, 17.497u#, 0.000u#);
+beginchar (40, 14.398u#+side#, 17.497u#, 0.000u#);
+ "Y4";
+ z35\0\0s = (5.967u,8.913u); z35\0\0c1 = (5.303u,9.656u);
+ z35\0\0c2 = (2.672u,11.573u); z35\0\0 = (2.510u,12.070u);
+ z35\0\1c1 = (2.021u,13.572u); z35\0\1c2 = (4.793u,15.149u);
+ z35\0\1 = (3.663u,16.410u); z35\0\2c1 = (2.677u,17.510u);
+ z35\0\2c2 = (0.500u,17.430u); z35\0\2 = (0.024u,15.850u);
+ z35\0\3c1 = (-0.255u,14.922u); z35\0\3c2 = (1.450u,13.797u);
+ z35\0\3 = (1.564u,12.523u); z35\0\4c1 = (1.658u,11.469u);
+ z35\0\4c2 = (0.870u,10.940u); z35\0\4 = (0.943u,10.139u);
+ z35\0\5c1 = (1.027u,9.216u); z35\0\5c2 = (1.623u,8.599u);
+ z35\0\5 = (1.631u,7.468u); z35\0\6 = (1.631u,0.000u);
+ z35\0\7 = (2.353u,0.000u); z35\0\8 = (2.353u,8.672u);
+ z35\0\9c1 = (6.113u,7.741u); z35\0\9c2 = (3.562u,5.101u);
+ z35\0\9 = (5.107u,3.791u); z35\0\10c1 = (6.209u,2.857u);
+ z35\0\10c2 = (7.771u,3.611u); z35\0\10 = (7.863u,5.060u);
+ z35\0\11 = (7.863u,6.986u); z35\0\12c1 = (7.396u,7.242u);
+ z35\0\12c2 = (7.057u,7.405u); z35\0\12 = (6.834u,7.963u);
+ z35\0\13c1 = (6.452u,8.917u); z35\0\13c2 = (6.562u,15.074u);
+ z35\0\13 = (7.145u,15.845u); z35\0\14c1 = (8.676u,17.872u);
+ z35\0\14c2 = (10.994u,16.229u); z35\0\14 = (11.026u,13.972u);
+ z35\0\15 = (11.026u,9.154u); z35\0\16 = (8.858u,9.154u);
+ z35\0\17 = (8.858u,0.241u); z35\0\18 = (14.398u,0.241u);
+ z35\0\19 = (14.398u,9.154u); z35\0\20 = (11.749u,9.154u);
+ z35\0\21c1 = (11.749u,10.603u); z35\0\21c2 = (11.945u,14.774u);
+ z35\0\21 = (11.453u,15.890u); z35\0\22c1 = (10.319u,18.465u);
+ z35\0\22c2 = (6.017u,18.064u); z35\0\22 = (5.967u,13.972u);
+ z35\1\0s = (2.113u,16.863u); z35\1\0 = (2.113u,15.659u);
+ z35\2\0s = (0.908u,15.900u); z35\2\0 = (1.390u,14.936u);
+ z35\3\0s = (3.558u,15.900u); z35\3\0 = (2.835u,15.177u);
+ z35\4\0s = (2.835u,15.177u); z35\5\0s = (1.631u,14.936u);
+ z35\5\0 = (2.353u,13.972u); z35\6\0s = (2.594u,14.695u);
+ z35\7\0s = (5.967u,7.227u); z35\7\0c1 = (4.911u,7.791u);
+ z35\7\0c2 = (2.555u,9.440u); z35\7\0 = (2.353u,10.600u);
+ z35\7\1c1 = (4.350u,10.181u); z35\7\1c2 = (5.197u,9.001u);
+ z35\8\0s = (13.676u,8.431u); z35\8\0 = (13.676u,0.964u);
+ z35\8\1 = (9.581u,0.964u); z35\8\2 = (9.581u,8.431u);
+ z35\9\0s = (11.529u,7.761u); z35\9\0c1 = (9.905u,7.161u);
+ z35\9\0c2 = (10.857u,5.565u); z35\9\0 = (11.955u,5.940u);
+ z35\9\1c1 = (13.043u,6.311u); z35\9\1c2 = (12.777u,7.618u);
+ z35\10\0s = (12.230u,6.263u); z35\10\0 = (11.026u,6.504u);
+ z35\10\1c1 = (11.610u,7.490u); z35\10\1c2 = (12.043u,7.341u);
+ z35\11\0s = (6.931u,6.467u); z35\11\0 = (7.177u,5.303u);
+ z35\11\1c1 = (7.355u,2.183u); z35\11\1c2 = (3.337u,5.642u);
+ z35\11\1 = (6.002u,6.467u); z35\11\2c1 = (6.294u,6.515u);
+ z35\11\2c2 = (6.629u,6.494u); z35\12\0s = (11.320u,4.626u);
+ z35\12\0c1 = (9.933u,3.665u); z35\12\0c2 = (11.082u,2.340u);
+ z35\12\0 = (12.135u,2.792u); z35\12\1c1 = (13.085u,3.201u);
+ z35\12\1c2 = (12.896u,4.793u);
+ fill_or_unfill z35\0\0s
+ ..controls z35\0\0c1 and z35\0\0c2..z35\0\0
+ ..controls z35\0\1c1 and z35\0\1c2..z35\0\1
+ ..controls z35\0\2c1 and z35\0\2c2..z35\0\2
+ ..controls z35\0\3c1 and z35\0\3c2..z35\0\3
+ ..controls z35\0\4c1 and z35\0\4c2..z35\0\4
+ ..controls z35\0\5c1 and z35\0\5c2..z35\0\5
+ --z35\0\6 --z35\0\7 --z35\0\8
+ ..controls z35\0\9c1 and z35\0\9c2..z35\0\9
+ ..controls z35\0\10c1 and z35\0\10c2..z35\0\10
+ --z35\0\11
+ ..controls z35\0\12c1 and z35\0\12c2..z35\0\12
+ ..controls z35\0\13c1 and z35\0\13c2..z35\0\13
+ ..controls z35\0\14c1 and z35\0\14c2..z35\0\14
+ --z35\0\15 --z35\0\16 --z35\0\17 --z35\0\18 --z35\0\19
+ --z35\0\20
+ ..controls z35\0\21c1 and z35\0\21c2..z35\0\21
+ ..controls z35\0\22c1 and z35\0\22c2..z35\0\22
+ --cycle;
+ fill_or_unfill z35\1\0s
+ --z35\1\0 --cycle;
+ fill_or_unfill z35\2\0s
+ --z35\2\0 --cycle;
+ fill_or_unfill z35\3\0s
+ --z35\3\0 --cycle;
+ fill_or_unfill z35\4\0s
+ --cycle;
+ fill_or_unfill z35\5\0s
+ --z35\5\0 --cycle;
+ fill_or_unfill z35\6\0s
+ --cycle;
+ fill_or_unfill z35\7\0s
+ ..controls z35\7\0c1 and z35\7\0c2..z35\7\0
+ ..controls z35\7\1c1 and z35\7\1c2..cycle;
+ fill_or_unfill z35\8\0s
+ --z35\8\0 --z35\8\1 --z35\8\2 --cycle;
+ fill_or_unfill z35\9\0s
+ ..controls z35\9\0c1 and z35\9\0c2..z35\9\0
+ ..controls z35\9\1c1 and z35\9\1c2..cycle;
+ fill_or_unfill z35\10\0s
+ --z35\10\0
+ ..controls z35\10\1c1 and z35\10\1c2..cycle;
+ fill_or_unfill z35\11\0s
+ --z35\11\0
+ ..controls z35\11\1c1 and z35\11\1c2..z35\11\1
+ ..controls z35\11\2c1 and z35\11\2c2..cycle;
+ fill_or_unfill z35\12\0s
+ ..controls z35\12\0c1 and z35\12\0c2..z35\12\0
+ ..controls z35\12\1c1 and z35\12\1c2..cycle;
+endchar;
+
+
+%% Z2: plural (3 short vertical lines).
+%% (code as Omega(10) 10+31 = 41)
+%%beginchar (33, 17.345u#, 5.300u#, 0.000u#);
+beginchar (41, 17.345u#+side#, 5.300u#, 0.000u#);
+ "Z2";
+ z33\0\0s = (0.000u,5.300u); z33\0\0 = (0.000u,0.000u);
+ z33\0\1 = (0.963u,0.000u); z33\0\2 = (0.963u,5.300u);
+ z33\1\0s = (8.191u,5.300u); z33\1\0 = (8.191u,0.000u);
+ z33\1\1 = (9.154u,0.000u); z33\1\2 = (9.154u,5.300u);
+ z33\2\0s = (16.381u,5.300u); z33\2\0 = (16.381u,0.000u);
+ z33\2\1 = (17.345u,0.000u); z33\2\2 = (17.345u,5.300u);
+ fill_or_unfill z33\0\0s
+ --z33\0\0 --z33\0\1 --z33\0\2 --cycle;
+ fill_or_unfill z33\1\0s
+ --z33\1\0 --z33\1\1 --z33\1\2 --cycle;
+ fill_or_unfill z33\2\0s
+ --z33\2\0 --z33\2\1 --z33\2\2 --cycle;
+endchar;
+
+
+%% Z4: dual (2 short sloping lines).
+%% (code as ff(11) 11+31 = 42)
+%%beginchar (37, 7.361u#, 6.369u#, 0.000u#);
+beginchar (42, 7.361u#+side#, 6.369u#, 0.000u#);
+ "Z4";
+ z37\0\0s = (2.714u,5.848u); z37\0\0 = (6.614u,0.246u);
+ z37\0\1 = (7.361u,0.766u); z37\0\2 = (3.461u,6.369u);
+ z37\1\0s = (0.000u,5.602u); z37\1\0 = (3.901u,0.000u);
+ z37\1\1 = (4.648u,0.520u); z37\1\2 = (0.747u,6.123u);
+ fill_or_unfill z37\0\0s
+ --z37\0\0 --z37\0\1 --z37\0\2 --cycle;
+ fill_or_unfill z37\1\0s
+ --z37\1\0 --z37\1\1 --z37\1\2 --cycle;
+endchar;
+
+
+%% C11: numeral 1,000,000 (man kneeling with upraised arms)
+%% (code as 7(55) 55+31 = 86)
+%%beginchar (42, 13.972u#, 17.135u#, 0.000u#);
+beginchar (86, 13.972u#+side#, 17.135u#, 0.000u#);
+ "C11";
+ z42\0\0s = (4.782u,10.334u); z42\0\0c1 = (4.097u,10.541u);
+ z42\0\0c2 = (2.976u,10.724u); z42\0\0 = (2.361u,10.891u);
+ z42\0\1c1 = (1.865u,12.176u); z42\0\1c2 = (1.573u,14.132u);
+ z42\0\1 = (1.193u,14.570u); z42\0\2c1 = (1.135u,16.030u);
+ z42\0\2c2 = (0.843u,16.352u); z42\0\2 = (0.346u,16.322u);
+ z42\0\3c1 = (0.250u,15.022u); z42\0\3c2 = (0.084u,13.869u);
+ z42\0\3 = (0.843u,13.782u); z42\0\4c1 = (1.223u,9.606u);
+ z42\0\4c2 = (1.719u,9.547u); z42\0\4 = (4.063u,9.343u);
+ z42\0\5c1 = (3.939u,9.191u); z42\0\5c2 = (3.526u,8.797u);
+ z42\0\5 = (3.732u,8.690u); z42\0\6c1 = (3.862u,8.623u);
+ z42\0\6c2 = (4.008u,8.570u); z42\0\6 = (4.423u,8.950u);
+ z42\0\7 = (4.613u,9.070u); z42\0\8c1 = (6.038u,8.809u);
+ z42\0\8c2 = (5.781u,5.554u); z42\0\8 = (5.781u,4.793u);
+ z42\0\9c1 = (4.576u,5.262u); z42\0\9c2 = (3.793u,6.962u);
+ z42\0\9 = (2.594u,7.101u); z42\0\10c1 = (0.231u,7.376u);
+ z42\0\10c2 = (2.730u,3.007u); z42\0\10 = (1.776u,1.571u);
+ z42\0\11c1 = (1.366u,0.953u); z42\0\11c2 = (0.638u,0.768u);
+ z42\0\11 = (0.000u,0.457u); z42\0\12 = (0.987u,0.000u);
+ z42\0\13 = (3.855u,0.215u); z42\0\14 = (7.505u,0.413u);
+ z42\0\15 = (10.136u,0.038u); z42\0\16 = (11.081u,0.216u);
+ z42\0\17c1 = (9.787u,1.895u); z42\0\17c2 = (8.919u,0.240u);
+ z42\0\17 = (8.913u,3.348u); z42\0\18c1 = (8.911u,4.625u);
+ z42\0\18c2 = (8.738u,7.574u); z42\0\18 = (9.424u,8.618u);
+ z42\0\19c1 = (10.114u,9.668u); z42\0\19c2 = (12.268u,8.839u);
+ z42\0\19 = (12.861u,10.241u); z42\0\20c1 = (13.196u,11.033u);
+ z42\0\20c2 = (13.144u,12.068u); z42\0\20 = (13.326u,12.907u);
+ z42\0\21c1 = (13.548u,13.929u); z42\0\21c2 = (13.946u,14.508u);
+ z42\0\21 = (13.972u,15.634u); z42\0\22c1 = (13.036u,15.288u);
+ z42\0\22c2 = (12.297u,14.919u); z42\0\22 = (12.398u,13.799u);
+ z42\0\23c1 = (12.660u,10.879u); z42\0\23c2 = (11.719u,9.930u);
+ z42\0\23 = (8.913u,10.334u); z42\0\24c1 = (8.913u,11.100u);
+ z42\0\24c2 = (9.016u,12.542u); z42\0\24 = (8.646u,13.198u);
+ z42\0\25c1 = (8.368u,13.691u); z42\0\25c2 = (8.038u,13.911u);
+ z42\0\25 = (7.552u,14.192u); z42\0\26 = (6.347u,14.327u);
+ z42\0\27c1 = (5.786u,14.054u); z42\0\27c2 = (5.410u,13.676u);
+ z42\0\27 = (5.248u,12.970u); z42\0\28c1 = (4.956u,12.723u);
+ z42\0\28c2 = (4.742u,12.306u); z42\0\28 = (4.641u,11.800u);
+ z42\0\29c1 = (4.877u,11.653u); z42\0\29c2 = (5.001u,11.473u);
+ z42\0\29 = (4.978u,11.304u); z42\0\30c1 = (4.843u,11.057u);
+ z42\0\30c2 = (5.271u,10.741u); z42\1\0s = (7.217u,9.227u);
+ z42\1\0c1 = (7.466u,11.921u); z42\1\0c2 = (7.685u,12.072u);
+ z42\1\0 = (5.870u,13.442u); z42\1\1c1 = (6.864u,14.647u);
+ z42\1\1c2 = (8.310u,13.442u); z42\1\1 = (8.482u,12.224u);
+ z42\1\2c1 = (8.542u,11.348u); z42\1\2c2 = (8.558u,10.944u);
+ z42\1\2 = (8.493u,9.899u); z42\2\0s = (5.589u,13.097u);
+ z42\2\0c1 = (6.194u,12.880u); z42\2\0c2 = (6.757u,12.115u);
+ z42\2\0 = (6.667u,11.122u); z42\2\1c1 = (6.071u,10.933u);
+ z42\2\1c2 = (5.860u,10.522u); z42\2\1 = (5.270u,10.851u);
+ z42\2\2c1 = (5.192u,11.288u); z42\2\2c2 = (5.326u,11.897u);
+ z42\2\2 = (4.917u,11.910u); z42\2\3c1 = (4.891u,12.411u);
+ z42\2\3c2 = (5.550u,12.820u); z42\3\0s = (6.745u,10.093u);
+ z42\3\0 = (6.745u,8.407u); z42\3\1 = (8.913u,9.611u);
+ z42\3\2c1 = (8.870u,7.689u); z42\3\2c2 = (8.486u,5.044u);
+ z42\3\2 = (6.459u,4.311u); z42\3\3 = (6.459u,7.395u);
+ z42\3\4 = (5.781u,9.852u); z42\4\0s = (5.234u,4.244u);
+ z42\4\0 = (2.983u,2.798u); z42\4\1c1 = (1.537u,6.856u);
+ z42\4\1c2 = (2.288u,7.802u); z42\5\0s = (8.191u,4.552u);
+ z42\5\0c1 = (9.327u,1.016u); z42\5\0c2 = (5.690u,0.481u);
+ z42\5\0 = (3.789u,0.964u); z42\5\1 = (3.132u,0.698u);
+ z42\5\2 = (2.168u,0.939u); z42\6\0s = (6.826u,14.092u);
+ z42\6\0 = (7.286u,13.863u); z42\6\1 = (7.286u,16.392u);
+ z42\6\2c1 = (7.286u,16.977u); z42\6\2c2 = (7.946u,16.448u);
+ z42\6\2 = (7.961u,16.887u); z42\6\3c1 = (7.970u,17.138u);
+ z42\6\3c2 = (7.578u,17.135u); z42\6\3 = (7.353u,17.135u);
+ z42\6\4c1 = (6.813u,17.135u); z42\6\4c2 = (6.846u,16.484u);
+ z42\6\4 = (6.824u,16.200u); z42\6\5c1 = (6.835u,15.806u);
+ z42\6\5c2 = (6.210u,15.783u); z42\6\5 = (6.205u,15.412u);
+ z42\6\6c1 = (6.199u,15.063u); z42\6\6c2 = (6.779u,14.984u);
+ z42\6\6 = (6.835u,14.319u); z42\7\0s = (6.166u,10.555u);
+ z42\7\0 = (6.322u,10.243u); z42\7\1 = (5.372u,10.175u);
+ z42\7\2 = (5.614u,10.383u); z42\8\0s = (5.419u,12.331u);
+ z42\8\0c1 = (5.653u,12.255u); z42\8\0c2 = (5.838u,12.271u);
+ z42\8\0 = (6.167u,12.321u); z42\8\1c1 = (5.967u,12.545u);
+ z42\8\1c2 = (5.439u,12.573u);
+ fill_or_unfill z42\0\0s
+ ..controls z42\0\0c1 and z42\0\0c2..z42\0\0
+ ..controls z42\0\1c1 and z42\0\1c2..z42\0\1
+ ..controls z42\0\2c1 and z42\0\2c2..z42\0\2
+ ..controls z42\0\3c1 and z42\0\3c2..z42\0\3
+ ..controls z42\0\4c1 and z42\0\4c2..z42\0\4
+ ..controls z42\0\5c1 and z42\0\5c2..z42\0\5
+ ..controls z42\0\6c1 and z42\0\6c2..z42\0\6
+ --z42\0\7
+ ..controls z42\0\8c1 and z42\0\8c2..z42\0\8
+ ..controls z42\0\9c1 and z42\0\9c2..z42\0\9
+ ..controls z42\0\10c1 and z42\0\10c2..z42\0\10
+ ..controls z42\0\11c1 and z42\0\11c2..z42\0\11
+ --z42\0\12 --z42\0\13 --z42\0\14 --z42\0\15 --z42\0\16
+ ..controls z42\0\17c1 and z42\0\17c2..z42\0\17
+ ..controls z42\0\18c1 and z42\0\18c2..z42\0\18
+ ..controls z42\0\19c1 and z42\0\19c2..z42\0\19
+ ..controls z42\0\20c1 and z42\0\20c2..z42\0\20
+ ..controls z42\0\21c1 and z42\0\21c2..z42\0\21
+ ..controls z42\0\22c1 and z42\0\22c2..z42\0\22
+ ..controls z42\0\23c1 and z42\0\23c2..z42\0\23
+ ..controls z42\0\24c1 and z42\0\24c2..z42\0\24
+ ..controls z42\0\25c1 and z42\0\25c2..z42\0\25
+ --z42\0\26
+ ..controls z42\0\27c1 and z42\0\27c2..z42\0\27
+ ..controls z42\0\28c1 and z42\0\28c2..z42\0\28
+ ..controls z42\0\29c1 and z42\0\29c2..z42\0\29
+ ..controls z42\0\30c1 and z42\0\30c2..cycle;
+ fill_or_unfill z42\1\0s
+ ..controls z42\1\0c1 and z42\1\0c2..z42\1\0
+ ..controls z42\1\1c1 and z42\1\1c2..z42\1\1
+ ..controls z42\1\2c1 and z42\1\2c2..z42\1\2
+ --cycle;
+ fill_or_unfill z42\2\0s
+ ..controls z42\2\0c1 and z42\2\0c2..z42\2\0
+ ..controls z42\2\1c1 and z42\2\1c2..z42\2\1
+ ..controls z42\2\2c1 and z42\2\2c2..z42\2\2
+ ..controls z42\2\3c1 and z42\2\3c2..cycle;
+ fill_or_unfill z42\3\0s
+ --z42\3\0 --z42\3\1
+ ..controls z42\3\2c1 and z42\3\2c2..z42\3\2
+ --z42\3\3 --z42\3\4 --cycle;
+ fill_or_unfill z42\4\0s
+ --z42\4\0
+ ..controls z42\4\1c1 and z42\4\1c2..cycle;
+ fill_or_unfill z42\5\0s
+ ..controls z42\5\0c1 and z42\5\0c2..z42\5\0
+ --z42\5\1 --z42\5\2 --cycle;
+ fill_or_unfill z42\6\0s
+ --z42\6\0 --z42\6\1
+ ..controls z42\6\2c1 and z42\6\2c2..z42\6\2
+ ..controls z42\6\3c1 and z42\6\3c2..z42\6\3
+ ..controls z42\6\4c1 and z42\6\4c2..z42\6\4
+ ..controls z42\6\5c1 and z42\6\5c2..z42\6\5
+ ..controls z42\6\6c1 and z42\6\6c2..z42\6\6
+ --cycle;
+ fill_or_unfill z42\7\0s
+ --z42\7\0 --z42\7\1 --z42\7\2 --cycle;
+ fill_or_unfill z42\8\0s
+ ..controls z42\8\0c1 and z42\8\0c2..z42\8\0
+ ..controls z42\8\1c1 and z42\8\1c2..cycle;
+endchar;
+
+
+%% D50: numeral 10,000 (looks like a ship's ventilator)
+%% (code as 5(53) 53+31 = 84)
+%%beginchar (84, 3.582u#, 17.331u#, 0.000u#);
+beginchar (84, 3.582u#+side#, 17.331u#, 0.000u#);
+ "D50";
+ z84\0\0s = (0.001u,0.014u); z84\0\0c1 = (1.814u,0.015u);
+ z84\0\0c2 = (2.849u,-0.293u); z84\0\0 = (2.891u,1.942u);
+ z84\0\1 = (3.582u,9.629u); z84\0\2c1 = (3.569u,11.174u);
+ z84\0\2c2 = (2.697u,12.734u); z84\0\2 = (2.853u,14.227u);
+ z84\0\3c1 = (2.955u,15.213u); z84\0\3c2 = (4.145u,17.753u);
+ z84\0\3 = (1.928u,17.279u); z84\0\4c1 = (0.020u,16.871u);
+ z84\0\4c2 = (-0.106u,14.324u); z84\0\4 = (0.041u,12.781u);
+ z84\0\5 = (0.482u,8.687u); z84\1\0s = (0.964u,14.709u);
+ z84\1\0c1 = (3.684u,12.042u); z84\1\0c2 = (2.421u,8.134u);
+ z84\1\0 = (2.190u,4.832u); z84\1\1c1 = (2.134u,4.027u);
+ z84\1\1c2 = (2.301u,1.467u); z84\1\1 = (1.560u,1.018u);
+ z84\1\2c1 = (0.509u,0.382u); z84\1\2c2 = (0.747u,3.008u);
+ z84\1\2 = (0.791u,3.387u); z84\1\3 = (1.205u,8.446u);
+ z84\1\4c1 = (1.202u,10.426u); z84\1\4c2 = (0.223u,12.840u);
+ fill_or_unfill z84\0\0s
+ ..controls z84\0\0c1 and z84\0\0c2..z84\0\0
+ --z84\0\1
+ ..controls z84\0\2c1 and z84\0\2c2..z84\0\2
+ ..controls z84\0\3c1 and z84\0\3c2..z84\0\3
+ ..controls z84\0\4c1 and z84\0\4c2..z84\0\4
+ --z84\0\5 --cycle;
+ fill_or_unfill z84\1\0s
+ ..controls z84\1\0c1 and z84\1\0c2..z84\1\0
+ ..controls z84\1\1c1 and z84\1\1c2..z84\1\1
+ ..controls z84\1\2c1 and z84\1\2c2..z84\1\2
+ --z84\1\3
+ ..controls z84\1\4c1 and z84\1\4c2..cycle;
+endchar;
+
+
+%% I8: numeral 100,000 (a mongoose)
+%% (code as 6(54) 54+31 = 85)
+%%beginchar (40, 13.204u#, 17.105u#, 0.000u#);
+beginchar (85, 13.204u#+side#, 17.105u#, 0.000u#);
+ "I8";
+ z40\0\0s = (12.765u,0.000u); z40\0\0c1 = (14.104u,2.910u);
+ z40\0\0c2 = (12.145u,9.931u); z40\0\0 = (10.043u,12.276u);
+ z40\0\1c1 = (8.801u,13.662u); z40\0\1c2 = (7.244u,14.308u);
+ z40\0\1 = (5.783u,15.365u); z40\0\2c1 = (4.056u,16.613u);
+ z40\0\2c2 = (2.415u,18.220u); z40\0\2 = (0.335u,16.021u);
+ z40\0\3c1 = (-0.138u,15.534u); z40\0\3c2 = (-0.092u,15.078u);
+ z40\0\3 = (0.335u,14.600u); z40\0\4c1 = (1.074u,13.806u);
+ z40\0\4c2 = (2.032u,13.533u); z40\0\4 = (2.627u,12.523u);
+ z40\0\5c1 = (3.616u,10.842u); z40\0\5c2 = (3.654u,8.485u);
+ z40\0\5 = (5.441u,7.207u); z40\0\6c1 = (6.118u,6.723u);
+ z40\0\6c2 = (8.023u,7.001u); z40\0\6 = (8.911u,6.985u);
+ z40\0\7c1 = (12.345u,6.922u); z40\0\7c2 = (10.867u,1.899u);
+ z40\1\0s = (12.043u,5.300u); z40\1\0c1 = (11.170u,6.504u);
+ z40\1\0c2 = (10.873u,8.449u); z40\1\0 = (9.152u,8.672u);
+ z40\1\1 = (9.874u,7.949u); z40\1\2c1 = (8.611u,7.299u);
+ z40\1\2c2 = (7.162u,8.231u); z40\1\2 = (7.069u,9.637u);
+ z40\1\3c1 = (7.033u,10.173u); z40\1\3c2 = (7.307u,10.810u);
+ z40\1\3 = (7.465u,11.322u); z40\1\4c1 = (6.073u,10.193u);
+ z40\1\4c2 = (6.377u,9.797u); z40\1\4 = (6.502u,8.190u);
+ z40\1\5 = (5.150u,8.748u); z40\1\6 = (2.406u,15.176u);
+ z40\1\7 = (1.443u,15.417u); z40\1\8 = (1.443u,15.899u);
+ z40\1\9c1 = (3.915u,16.915u); z40\1\9c2 = (3.656u,15.966u);
+ z40\1\9 = (5.538u,14.606u); z40\1\10c1 = (9.328u,11.866u);
+ z40\1\10c2 = (11.801u,10.481u);
+ fill_or_unfill z40\0\0s
+ ..controls z40\0\0c1 and z40\0\0c2..z40\0\0
+ ..controls z40\0\1c1 and z40\0\1c2..z40\0\1
+ ..controls z40\0\2c1 and z40\0\2c2..z40\0\2
+ ..controls z40\0\3c1 and z40\0\3c2..z40\0\3
+ ..controls z40\0\4c1 and z40\0\4c2..z40\0\4
+ ..controls z40\0\5c1 and z40\0\5c2..z40\0\5
+ ..controls z40\0\6c1 and z40\0\6c2..z40\0\6
+ ..controls z40\0\7c1 and z40\0\7c2..cycle;
+ fill_or_unfill z40\1\0s
+ ..controls z40\1\0c1 and z40\1\0c2..z40\1\0
+ --z40\1\1
+ ..controls z40\1\2c1 and z40\1\2c2..z40\1\2
+ ..controls z40\1\3c1 and z40\1\3c2..z40\1\3
+ ..controls z40\1\4c1 and z40\1\4c2..z40\1\4
+ --z40\1\5 --z40\1\6 --z40\1\7 --z40\1\8
+ ..controls z40\1\9c1 and z40\1\9c2..z40\1\9
+ ..controls z40\1\10c1 and z40\1\10c2..cycle;
+endchar;
+
+
+%% M12: numeral 1,000 (a lotus)
+%% (code as 4(52) 52+31 = 83)
+%%beginchar (43, 5.781u#, 17.752u#, 0.000u#);
+beginchar (83, 5.781u#+side#, 17.752u#, 0.000u#);
+ "M12";
+ z43\0\0s = (2.650u,13.731u); z43\0\0 = (2.650u,3.372u);
+ z43\0\1 = (0.482u,4.095u); z43\0\2 = (1.686u,3.132u);
+ z43\0\3 = (0.000u,0.000u); z43\0\4 = (5.781u,0.000u);
+ z43\0\5 = (4.095u,3.132u); z43\0\6 = (5.300u,4.336u);
+ z43\0\7 = (3.613u,3.613u); z43\0\8 = (3.613u,13.972u);
+ z43\0\9 = (5.300u,14.454u); z43\0\10 = (5.300u,14.936u);
+ z43\0\11 = (3.854u,15.659u); z43\0\12 = (3.854u,16.140u);
+ z43\0\13 = (5.300u,17.345u); z43\0\14c1 = (-0.747u,19.305u);
+ z43\0\14c2 = (-1.505u,14.175u); z43\1\0s = (4.095u,17.104u);
+ z43\1\0 = (2.891u,16.140u); z43\1\1 = (4.095u,14.454u);
+ z43\1\2c1 = (-0.807u,13.915u); z43\1\2c2 = (0.196u,18.040u);
+ z43\2\0s = (4.818u,0.964u); z43\2\0 = (0.963u,0.964u);
+ z43\2\1c1 = (1.913u,2.745u); z43\2\1c2 = (3.883u,2.824u);
+ fill_or_unfill z43\0\0s
+ --z43\0\0 --z43\0\1 --z43\0\2 --z43\0\3 --z43\0\4
+ --z43\0\5 --z43\0\6 --z43\0\7 --z43\0\8 --z43\0\9
+ --z43\0\10 --z43\0\11 --z43\0\12 --z43\0\13
+ ..controls z43\0\14c1 and z43\0\14c2..cycle;
+ fill_or_unfill z43\1\0s
+ --z43\1\0 --z43\1\1
+ ..controls z43\1\2c1 and z43\1\2c2..cycle;
+ fill_or_unfill z43\2\0s
+ --z43\2\0
+ ..controls z43\2\1c1 and z43\2\1c2..cycle;
+endchar;
+
+
+%% V1: numeral 100 (a coil of rope)
+%% (code as 3(51) 51+31 = 82)
+%%beginchar (32, 4.415u#, 9.110u#, 0.000u#);
+beginchar (82, 4.415u#+side#, 9.110u#, 0.000u#);
+ "V1";
+ z32\0\0s = (3.557u,0.000u); z32\0\0 = (4.040u,0.000u);
+ z32\0\1 = (4.281u,0.241u); z32\0\2c1 = (3.562u,3.301u);
+ z32\0\2c2 = (1.219u,4.407u); z32\0\2 = (0.843u,6.264u);
+ z32\0\3c1 = (0.443u,8.237u); z32\0\3c2 = (2.933u,8.981u);
+ z32\0\3 = (3.462u,7.691u); z32\0\4c1 = (3.838u,6.715u);
+ z32\0\4c2 = (2.243u,5.499u); z32\0\4 = (1.872u,7.691u);
+ z32\0\5 = (1.390u,7.691u); z32\0\6c1 = (1.496u,4.682u);
+ z32\0\6c2 = (4.225u,5.255u); z32\0\6 = (4.415u,6.990u);
+ z32\0\7c1 = (4.702u,9.639u); z32\0\7c2 = (0.876u,9.825u);
+ z32\0\7 = (0.117u,7.464u); z32\0\8c1 = (-0.544u,5.410u);
+ z32\0\8c2 = (1.748u,3.455u); z32\0\8 = (2.701u,1.927u);
+ z32\0\9c1 = (3.079u,1.321u); z32\0\9c2 = (3.300u,0.661u);
+ fill_or_unfill z32\0\0s
+ --z32\0\0 --z32\0\1
+ ..controls z32\0\2c1 and z32\0\2c2..z32\0\2
+ ..controls z32\0\3c1 and z32\0\3c2..z32\0\3
+ ..controls z32\0\4c1 and z32\0\4c2..z32\0\4
+ --z32\0\5
+ ..controls z32\0\6c1 and z32\0\6c2..z32\0\6
+ ..controls z32\0\7c1 and z32\0\7c2..z32\0\7
+ ..controls z32\0\8c1 and z32\0\8c2..z32\0\8
+ ..controls z32\0\9c1 and z32\0\9c2..cycle;
+endchar;
+
+
+%% V20: numeral 10 (a cattle hobble)
+%% (code as 2(50) 50+31 = 81)
+%%beginchar (51, 5.830u#, 6.186u#, 0.000u#);
+beginchar (81, 5.830u#+side#, 6.186u#, 0.000u#);
+ "V20";
+ z51\0\0s = (0.025u,0.000u); z51\0\0 = (0.748u,0.000u);
+ z51\0\1c1 = (0.748u,0.945u); z51\0\1c2 = (0.638u,2.776u);
+ z51\0\1 = (0.904u,3.613u); z51\0\2c1 = (1.554u,5.660u);
+ z51\0\2c2 = (4.001u,5.863u); z51\0\2 = (4.841u,3.851u);
+ z51\0\3c1 = (5.211u,2.967u); z51\0\3c2 = (5.084u,1.017u);
+ z51\0\3 = (5.084u,0.000u); z51\0\4 = (5.806u,0.000u);
+ z51\0\5c1 = (5.806u,1.207u); z51\0\5c2 = (5.955u,3.257u);
+ z51\0\5 = (5.530u,4.337u); z51\0\6c1 = (4.542u,6.847u);
+ z51\0\6c2 = (1.277u,6.815u); z51\0\6 = (0.301u,4.337u);
+ z51\0\7c1 = (-0.124u,3.258u); z51\0\7c2 = (0.025u,1.206u);
+ fill_or_unfill z51\0\0s
+ --z51\0\0
+ ..controls z51\0\1c1 and z51\0\1c2..z51\0\1
+ ..controls z51\0\2c1 and z51\0\2c2..z51\0\2
+ ..controls z51\0\3c1 and z51\0\3c2..z51\0\3
+ --z51\0\4
+ ..controls z51\0\5c1 and z51\0\5c2..z51\0\5
+ ..controls z51\0\6c1 and z51\0\6c2..z51\0\6
+ ..controls z51\0\7c1 and z51\0\7c2..cycle;
+endchar;
+
+def mamodif= identity reflectedabout((w/2,h), (w/2,0)); enddef;
+def depart= 128 -31; enddef;
+%% repeat the above list of characters now
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/abary4.mf b/Master/texmf-dist/fonts/source/public/ibycus/abary4.mf
new file mode 100644
index 00000000000..c007564b560
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/abary4.mf
@@ -0,0 +1,14 @@
+savedpicture = barypicture; % it was cleared at the end of a.mf
+%% but the dimensions set in a.mf remain.
+
+cmchar "Lowercase alpha with rough breathing and grave";
+beginchar(a_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing and grave";
+beginchar(a_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/cigma4.mf b/Master/texmf-dist/fonts/source/public/ibycus/cigma4.mf
new file mode 100644
index 00000000000..e8a87171ef3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/cigma4.mf
@@ -0,0 +1,22 @@
+def dims=8u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos4(hair,-180); y4=.5h; lft x4r=hround .75u; %left bulge
+ pos6(hair,-90); rt x6l=hround(w-.75u); %bottom right
+ top y3r=h+oo; x3+.5stem=rt x6l; pos3(stem,90); %top right
+ pos5(stem,-90); bot y5r=-o; x5=.5w; %low pt
+% bot y6r= top y5l;
+ bot y6 = 0; % The rise y5-y6 must be very slight.
+ % In some hands, it is even a drop.
+ filldraw double_circ_stroke %bowl
+ z6e...z5e{left}...z4e{up}...z3e{right};
+enddef;
+
+cmchar "Lowercase lunate sigma";
+beginchar(cigmalunate,dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/digamma4.mf b/Master/texmf-dist/fonts/source/public/ibycus/digamma4.mf
new file mode 100644
index 00000000000..52f6ef979b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/digamma4.mf
@@ -0,0 +1,28 @@
+def dims = 7.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+% composed of a modified pi-bar and the tail of eta
+
+def gen_letter=
+ pickup fine.nib;
+ pos3(vstem,-90); rt x3=hround(w-.75u); top y3l=x_height; %top right
+ pos2(vstem,-90); y2=y3; x2=1/3w; %top left
+ x1-.5hair=hround1.75u; y1-.5hair=4/3[top y2l,bot y2r]; %tip of bar
+ numeric slope; slope=angle((z2-z1)yscaled 2); pos1(hair,slope-90);
+ forsuffixes e=l,r: z1'e=(z2e-z1e)yscaled 2; endfor
+ filldraw circ_stroke z1e{z1'e}...z2e---z3e; %bar
+ pos4(hair,0); z4=z1; %attachment
+ x5=x6; x6=x1-.5u;
+ y5=y6; bot y6l-.5stem=-d-o; pos5(stem,0); pos6(stem,90);
+ pos7(vstem,-90); rt x7=hround(w-.85u); top y7l=bar_height;
+ pos8(vstem,angle(z5-z1)); top y8l=bar_height; z8 = whatever[z5,z1];
+ filldraw circ_stroke z5e...z1e;
+ filldraw stroke z8e--z7e;
+enddef;
+
+cmchar "Lowercase digamma";
+beginchar(digamma,dims);
+this_letter; penlabels(1,2,3,5,7,8); endchar;
+
+picture savedpicture; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/ebary4.mf b/Master/texmf-dist/fonts/source/public/ibycus/ebary4.mf
new file mode 100644
index 00000000000..05e5598eace
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/ebary4.mf
@@ -0,0 +1,81 @@
+savedpicture = barypicture; % it was cleared at the end of e.mf
+%% but the dimensions set in e.mf remain.
+
+% The acute and grave accents are lifted above the normal position and
+% are also shortened slightly, with the reduction at the bottom of the
+% accent. This is because epsilon has a much larger overshoot than
+% other rounded characters, and the accent tends to bleed into it.
+
+
+def eps_grave(expr center) =
+if serifs: x22-x21=1/4w; x21-.5stem=hround(center-2/3(x22-x21)-.5stem);
+else: lft x21l=hround (1/4w-.5stem); rt x22r=hround(center+.25u+.5vair); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=saved_h + .75vair;
+ x_height = saved_x_height + vair;
+generate_grave; penlabels(21,22);
+ endgroup;
+enddef;
+
+def eps_acute(expr center) =
+if serifs: x21-x22=1/4w; x21+.5stem=hround(center+2/3(x21-x22)+.5stem);
+else: rt x21r=hround (3/4w+.5stem); lft x22l=hround(center-.25u-.5vair); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h:=saved_h+.75vair;
+ x_height = saved_x_height + vair;
+generate_grave; penlabels(21,22);
+ endgroup;
+enddef;
+
+cmchar "Lowercase epsilon with adjusted grave";
+beginchar(e_bary,width#,acc_ht#,0);
+this_letter; eps_grave(x_baryctr);
+endchar;
+
+cmchar "Lowercase epsilon with adjusted acute";
+beginchar(e_oxy,width#,acc_ht#,0);
+this_letter; eps_acute(x_baryctr); endchar;
+
+%cmchar "Lowercase epsilon with rough breathing and acute";
+%beginchar(e_asproxy,width#,acc_ht#,0);
+%this_letter; spirit_acute(x_baryctr)<; endchar;
+
+%cmchar "Lowercase epsilon with smooth breathing and acute";
+%beginchar(e_lenoxy,width#,acc_ht#,0);
+%this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with rough breathing and grave";
+beginchar(e_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and grave";
+beginchar(e_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with circumflex (Attic)";
+beginchar(e_peri,width#,acc_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase epsilon with rough breathing and circumflex (Attic)";
+beginchar(e_asprperi,width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and circumflex (Attic)";
+beginchar(e_lenperi,width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/fibb84.mf b/Master/texmf-dist/fonts/source/public/ibycus/fibb84.mf
new file mode 100644
index 00000000000..f4eae460d54
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/fibb84.mf
@@ -0,0 +1,83 @@
+% Ibycus4 Greek Bold (Levy Bold) 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4B"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders %was 70
+acc_ht#:=250/36pt#;
+circ_ht#:=230/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=13/36pt#; % lowercase hairline breadth (was 17)
+stem#:=38/36pt#; % lowercase stem breadth (was 41)
+curve#:=41/36pt#; % lowercase curve breadth (was 46)
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=41/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/fibb848.mf b/Master/texmf-dist/fonts/source/public/ibycus/fibb848.mf
new file mode 100644
index 00000000000..8dbfd1327c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/fibb848.mf
@@ -0,0 +1,83 @@
+% Ibycus4 Greek Bold (Levy Bold) 8 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4B"; font_size 8pt#;
+
+u#:=17.6/36pt#; % unit width
+width_adj#:=9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216.0/36pt#; % height of tallest characters
+asc_height#:=200.0/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128.0/36pt#; % height of lowercase without ascenders
+math_axis#:=72.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=68.0/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56.0/36pt#; % depth of comma below baseline
+desc_depth#:=54.0/36pt#; % depth of lowercase descenders
+acc_ht#:=200.0/36pt#;
+circ_ht#:=184.0/36pt#;
+Circ_ht#:=200.0/36pt#;
+iota_dp#:=57.6/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=104.0/36pt#; % diameter of rounded corners
+fine#:=70.0/36pt#; % diameter of sharply rounded corners
+thin_join#:=70.0/36pt#; % width of extrafine details
+hair#:=11.7/36pt#; % lowercase hairline breadth
+stem#:=34.2/36pt#; % lowercase stem breadth
+curve#:=32.8/36pt#; % lowercase curve breadth
+ess#:=34.2/36pt#; % breadth in middle of lowercase s
+flare#:=36.9/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=44.8/36pt#; % diameter of dots
+cap_hair#:=17.1/36pt#; % uppercase hairline breadth
+cap_stem#:=40.8/36pt#; % uppercase stem breadth
+cap_curve#:=44.0/36pt#; % uppercase curve breadth
+cap_ess#:=42.4/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8.0/36pt#; % vertical distance from serif base to tangent
+jut#:=20.0/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31.2/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=56.0/36pt#; % vertical protrusion of beak serifs
+vair#:=8.8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=15.3/36pt#; % lowercase bar thickness
+slab#:=15.3/36pt#; % serif and arm thickness
+cap_bar#:=15.3/36pt#; % uppercase bar thickness
+cap_band#:=15.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2.0/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3.2/36pt#; % amount of overshoot for curves
+apex_o#:=2.4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/fibb849.mf b/Master/texmf-dist/fonts/source/public/ibycus/fibb849.mf
new file mode 100644
index 00000000000..82a47a1ad71
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/fibb849.mf
@@ -0,0 +1,83 @@
+% Ibycus4 Greek Bold (Levy Bold) 9 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4B"; font_size 9pt#;
+
+u#:=19.8/36pt#; % unit width
+width_adj#:=10.0/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243.0/36pt#; % height of tallest characters
+asc_height#:=225.0/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144.0/36pt#; % height of lowercase without ascenders
+math_axis#:=81.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=76.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63.0/36pt#; % depth of comma below baseline
+desc_depth#:=72.0/36pt#; % depth of lowercase descenders %was 70
+acc_ht#:=225.0/36pt#;
+circ_ht#:=207.0/36pt#;
+Circ_ht#:=225.0/36pt#;
+iota_dp#:=64.8/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=58.5/36pt#; % diameter of rounded corners
+fine#:=40.0/36pt#; % diameter of sharply rounded corners
+thin_join#:=40.0/36pt#; % width of extrafine details
+hair#:=12.3/36pt#; % lowercase hairline breadth (was 17)
+stem#:=36.1/36pt#; % lowercase stem breadth (was 41)
+curve#:=36.9/36pt#; % lowercase curve breadth (was 46)
+ess#:=36.1/36pt#; % breadth in middle of lowercase s
+flare#:=39.0/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50.4/36pt#; % diameter of dots
+cap_hair#:=18.1/36pt#; % uppercase hairline breadth
+cap_stem#:=45.9/36pt#; % uppercase stem breadth
+cap_curve#:=49.5/36pt#; % uppercase curve breadth
+cap_ess#:=47.7/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9.0/36pt#; % vertical distance from serif base to tangent
+jut#:=22.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35.1/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=63.0/36pt#; % vertical protrusion of beak serifs
+vair#:=9.9/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=16.1/36pt#; % lowercase bar thickness
+slab#:=16.1/36pt#; % serif and arm thickness
+cap_bar#:=16.1/36pt#; % uppercase bar thickness
+cap_band#:=16.1/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2.0/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3.6/36pt#; % amount of overshoot for curves
+apex_o#:=2.7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/fibo84.mf b/Master/texmf-dist/fonts/source/public/ibycus/fibo84.mf
new file mode 100644
index 00000000000..b6d6861c1c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/fibo84.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek Obliqued (Levy Regular) 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4SL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=235/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=270/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=110/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/fibo848.mf b/Master/texmf-dist/fonts/source/public/ibycus/fibo848.mf
new file mode 100644
index 00000000000..2366f06d0fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/fibo848.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek Obliqued (Levy Regular) 8 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4SL"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+acc_ht#:=210/36pt#;
+circ_ht#:=188/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=216/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=72/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=23/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=6.6/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/fibo849.mf b/Master/texmf-dist/fonts/source/public/ibycus/fibo849.mf
new file mode 100644
index 00000000000..1732b895a62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/fibo849.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek Obliqued (Levy Regular) 9 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4SL"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=243.0/36pt#; % height of tallest characters
+asc_height#:=225.0/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=75.8/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63.0/36pt#; % depth of comma below baseline
+desc_depth#:=73.0/36pt#; % depth of lowercase descenders
+acc_ht#:=230.0/36pt#;
+circ_ht#:=211.5/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=243.0/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=91/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=25.5/36pt#; % lowercase stem breadth
+curve#:=27.8/36pt#; % lowercase curve breadth
+ess#:=25.0/36pt#; % breadth in middle of lowercase s
+flare#:=25.0/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35.0/36pt#; % diameter of dots
+cap_hair#:=10.3/36pt#; % uppercase hairline breadth
+cap_stem#:=29.3/36pt#; % uppercase stem breadth
+cap_curve#:=33.5/36pt#; % uppercase curve breadth
+cap_ess#:=31.0/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18.0/36pt#; % vertical distance from serif base to tangent
+jut#:=25.0/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33.0/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63.0/36pt#; % vertical protrusion of beak serifs
+vair#:=7.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=9.00pt#; % maximum breadth above or below notches
+bar#:=10.3/36pt#; % lowercase bar thickness
+slab#:=10.3/36pt#; % serif and arm thickness
+cap_bar#:=10.3/36pt#; % uppercase bar thickness
+cap_band#:=10.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.0/36pt#; % amount of overshoot for curves
+apex_o#:=7.0/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.20; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/fibr84.mf b/Master/texmf-dist/fonts/source/public/ibycus/fibr84.mf
new file mode 100644
index 00000000000..cc64c8638ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/fibr84.mf
@@ -0,0 +1,89 @@
+% Ibycus 4 Greek (Levy Regular) 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4R"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=235/36pt#; % give the circumflex a lot more roll
+Circ_ht#:=270/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=110/36pt#; % get the hook of iota subscript right on the
+ % bottom shoulder.
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/fibr848.mf b/Master/texmf-dist/fonts/source/public/ibycus/fibr848.mf
new file mode 100644
index 00000000000..a685e963624
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/fibr848.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek (Levy Regular) 8 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4R"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+acc_ht#:=210/36pt#;
+circ_ht#:=188/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=216/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=72/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=23/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=6.6/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/fibr849.mf b/Master/texmf-dist/fonts/source/public/ibycus/fibr849.mf
new file mode 100644
index 00000000000..13da345708e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/fibr849.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek (Levy Regular) 9 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4R"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=243.0/36pt#; % height of tallest characters
+asc_height#:=225.0/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=75.8/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63.0/36pt#; % depth of comma below baseline
+desc_depth#:=73.0/36pt#; % depth of lowercase descenders
+acc_ht#:=230.0/36pt#;
+circ_ht#:=211.5/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=243.0/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=91/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=25.5/36pt#; % lowercase stem breadth
+curve#:=27.8/36pt#; % lowercase curve breadth
+ess#:=25.0/36pt#; % breadth in middle of lowercase s
+flare#:=25.0/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35.0/36pt#; % diameter of dots
+cap_hair#:=10.3/36pt#; % uppercase hairline breadth
+cap_stem#:=29.3/36pt#; % uppercase stem breadth
+cap_curve#:=33.5/36pt#; % uppercase curve breadth
+cap_ess#:=31.0/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18.0/36pt#; % vertical distance from serif base to tangent
+jut#:=25.0/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33.0/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63.0/36pt#; % vertical protrusion of beak serifs
+vair#:=7.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=9.00pt#; % maximum breadth above or below notches
+bar#:=10.3/36pt#; % lowercase bar thickness
+slab#:=10.3/36pt#; % serif and arm thickness
+cap_bar#:=10.3/36pt#; % uppercase bar thickness
+cap_band#:=10.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.0/36pt#; % amount of overshoot for curves
+apex_o#:=7.0/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.20; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/hbary4.mf b/Master/texmf-dist/fonts/source/public/ibycus/hbary4.mf
new file mode 100644
index 00000000000..f18b66a3e80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/hbary4.mf
@@ -0,0 +1,25 @@
+savedpicture = barypicture; % it was cleared at the end of h.mf
+%% but the dimensions set in h.mf remain.
+
+% The opened out accent clusters make an adjustment of "center"
+% necessary.
+
+cmchar "recentered Lowercase eta with rough breathing and acute";
+beginchar(h_asproxy,width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr -.75u)<; endchar;
+
+cmchar "recentered Lowercase eta with smooth breathing and acute";
+beginchar(h_lenoxy,width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr -.75u)>; endchar;
+
+cmchar "Lowercase eta with rough breathing and grave";
+beginchar(h_asprbary,width#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr -.75u)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and grave";
+beginchar(h_lenbary,width#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr -.75u)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/ibary4.mf b/Master/texmf-dist/fonts/source/public/ibycus/ibary4.mf
new file mode 100644
index 00000000000..1bcead5dd7c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/ibary4.mf
@@ -0,0 +1,15 @@
+savedpicture = barypicture; % it was cleared at the end of i.mf
+%% but the dimensions set in i.mf remain.
+
+cmchar "Lowercase iota with rough breathing and grave";
+beginchar(i_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing and grave";
+beginchar(i_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
+
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/ibyacc4.mf b/Master/texmf-dist/fonts/source/public/ibycus/ibyacc4.mf
new file mode 100644
index 00000000000..a8acfae64d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/ibyacc4.mf
@@ -0,0 +1,608 @@
+% Make sure the macros we want to replace are loaded
+if unknown gen_acc : readfrom("gen_acc") fi
+numeric doing_u; doing_u=0; % flag to position diaeresis
+
+def rough(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,180); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,180); pos@1(comma_join_,180);
+ pos@2(comma_bot_,180); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; lft x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,180); pos@3(vair,-90);
+ z@1r=z$r; y@1l:=y$; lft x@2r=hround(x$-.5depth+.5shear);
+ x@3+.5vair=x$+.5dot_size+shear;
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ % position a vertical path through the left side of the bulb
+ x@1'=x@1-.5dot_size;
+ % At the intersection of that path with SL's tail, get the direction
+ pair d@@; d@@=( direction
+ (xpart( (z@2{down}...z@3) intersectiontimes ((x@1',0){up}--(x@1',y@1))))
+ of (z@2{down}...z@3));
+ % Tilt a pen at a right angle to that direction
+ pos@3'(vair,angle(d@@)-90);
+ % Place it at the intersection. This will be the new end of the tail.
+ z@3'=directionpoint d@@ of(z@2{down}...z@3);
+ y_:=ypart((z@1{left}...z@2{down}...z@3)
+ intersectiontimes (z$l{left}..{right}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{right}..subpath (0,y_) of (z$l{left}..{right}z$r)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{down}...{d@@}z@3'e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+def smooth(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-90);
+ z@1r=z$r; y@1l:=y$; rt x@2r=hround(x$+.5depth+.5shear);
+ x@3-.5vair=hround(x$-.5dot_size+shear);
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ path pp; pp = (z@2{down}...z@3);
+ % position a vertical path through the right side of the bulb
+ x@1'=x@1+.5dot_size;
+ % At the intersection of that path with SL's tail, get the direction
+ pair d@@; d@@=( direction
+ (xpart( (z@2{down}...z@3) intersectiontimes ((x@1',0){up}--(x@1',y@1))))
+ of (z@2{down}...z@3));
+ % Tilt a pen at a right angle to that direction
+ pos@3'(vair,angle(d@@)+90);
+ % Place it at the intersection. This will be the new end of the tail.
+ z@3'=directionpoint d@@ of(z@2{down}...z@3);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ filldraw stroke z@1e{right}...z@2e{down}...{d@@}z@3'e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+
+% Improve spacing with sprit plus accent groups.
+% The original spacing was governed by the placement of the accent.
+% One of the variables set the position of the accent bottom .5stem
+% to the right of center (plus other adjustments). By increasing this
+% to 1.2stem, we get the accent still within the set-width, but far enough
+% right that the breathings (which are placed relative to the bottom
+% of the accent) can be pulled to the left by .7stem.
+% This ensures that there will be more than a stem width between
+% any element of breathing and any element of either acute or
+% grave.
+
+vardef spirit_acute(expr center) text type =
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+if serifs: x21-x22=1/6w;
+ x21+.5stem=hround(center+.25u+.5vair+(x21-x22)+1.2stem); %lft x22r ~ center+.25u
+else: rt x21r=hround (4/5w+.5stem); lft x22l=hround(center+.25u); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=saved_h + .75vair;
+ x_height = saved_x_height + .3vair;
+generate_grave; penlabels(21,22);
+ endgroup;
+if 1type0: %spirit and accent separated by .1u (rough) or .25u (smooth)
+ x31=hround(lft x22 if serifs:r-.5sp_height else:l-.5dot_diam fi -.7stem -.25u);
+else: x31+.5dot_diam=hround(lft x22 if serifs:r else: l fi -.7stem-.1u); fi
+y31+.5dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+enddef;
+
+
+vardef spirit_grave(expr center) text type =
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+% x22 is set to the right of x21 by 1/6w. The tilt is only 1/6w here.
+% x21 is set out to the right of the midpoint by the sum of .5stem and
+% .25u. Let's try a full stem width
+%if serifs: x22-x21=1/6w; x21-.5stem=hround(center+.25u);
+if serifs: x22-x21=1/6w; x21-1.2stem=hround(center+.25u);
+else: rt x22r=hround (4/5w+.5stem); lft x21l=hround(center+.25u); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=saved_h + .75vair;
+ x_height = saved_x_height + .3vair;
+generate_grave; penlabels(21,22);
+ endgroup;
+% In the original, the following spacing adjustments tracked |spirit_acute|.
+% This was wrong way round. When the accent is barytone, lft x21l is nowhere
+% near the left edge of the picture, and the crowding effect is the reverse
+% of what it is with the oxytone accent. Added an extra .15u to make
+% up for the first problem, and an extra .45u to relieve the crowding
+% against the smooth breathing. But the more general widening set up
+% above is more significant. PAM, 10 May, 1997
+% remember that "type" is a macro replaced by either < or >
+if 1type0: %spirit and accent separated by .65u (rough) or .85u (smooth)
+ x31=hround(lft x21l-.5 if serifs:sp_height else:dot_diam fi -.7stem -.45u);
+else: x31+.5dot_diam=hround(lft x21l - .7stem -.65u); fi
+y31+.5dot_diam=h;
+%y31+dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+enddef;
+
+% Reshape the iota subscript, but only for resolutions above 600
+% Thin it out so that it can have a slight hook.
+% Lengthen both the simple and the refined form, so that the
+% simple form drops as low as the tail of eta, and the refined form
+% drops to the bottom of the shoulder. Since we only make it up
+% three times, we do not save the picture, but this means that
+% all the necessary values must be known when the three iota
+% subscript characters are written. The iota subscript under
+% eta will be made shorter to open a larger space under the
+% right vertical stroke of eta.
+
+def iota_sub(expr pos_stem) =
+if known pic.iota:
+ addto currentpicture also pic.iota shifted (hround(pos_stem),0);
+else:
+ picture temp_picture; temp_picture=currentpicture; clearit;
+ pickup fine.nib;
+ x51=0; pos51(stem,180); top y51=vround(-o-2separator);
+ x52=x51; pos52(stem,180);
+ % Use the original simple subscript for lower resolutions.
+ if ( ((pixels_per_inch / mag) < 599) or (pixels_per_inch < 420) ) :
+ bot y52=-desc_depth;
+ filldraw circ_stroke z52e--z51e;
+ else :
+ % longer iota subscript with narrower tapering stem and slight hook
+ bot y52=-iota_dp;
+ pos51'(.6[hair,stem],180); pos51''(.3[hair,stem],180);
+ pos52'(.3[hair,stem],270); pos53'(.2[hair,stem],0);
+ x51'r = x51''r = x51r;
+ bot y52'r = -iota_dp; x53'r = x51l+hair; x52' = 1/2[x51',x53'];
+ y51' = y51-separator; top y53' = 5/6[y51,y52];
+ y51'' = -desc_depth; % y51'' = y53';
+ filldraw double_circ_stroke z51'e--z51''e..z52'e..z53'e;
+ fi;
+% Need to make sure that this is drawn each time (it's only four times).
+%%%%% if not working_hard : picture pic.iota; pic.iota=currentpicture; fi
+ currentpicture:=currentpicture shifted (hround(pos_stem),0);
+ addto currentpicture also temp_picture;
+fi;
+enddef;
+
+% Rewrite the width and height management of circumflex
+% Put limit on horizontal spread, and give the plain
+% circumflex more roll (depends on parameter circ_ht# in parameter file.)
+% change the shape to supply points at the ends and a thickening at the
+% center. This is more traditional and gives more shape to the
+% squeezed variant. The ends are set to vair, and the middle to
+% mid_width + vair. (Silvio Levy's mid_width is actually quite small and
+% is used at the ends as well as the mid-point. I use it at the intermediate
+% points. The result harmonizes well with other proportions.
+
+def generate_circumflex(expr center,squeeze)=
+numeric mid_width; mid_width=if squeeze:.1 else: .5 fi [vair,stem];
+if serifs:
+%pickup fine.nib; pos21(hround(mid_width-eps),180); pos22(vair,90);
+% pos23(mid_width,90); pos24(vair,90); pos25(hround(mid_width-eps),180);
+pickup fine.nib; pos21(hround(vair-eps),180); pos22(mid_width,90);
+ pos23(mid_width+vair,90); pos24(mid_width,90); pos25(hround(vair-eps),180);
+ % limit spread of circumflex while retaining scaling for narrow characters.
+ lft x21r=w-rt x25l=hround (center-if(w<9u):w/3 else:3u fi);
+ x22-x21=x23-x22=x24-x23=x25-x24;
+ % The "squeezed" circumflex tops out at body_height.
+ bot y21=bot y24l=vround(if squeeze:.75else:.6fi[x_height,h]-vair);
+ top y22r=top y25=h; y23=.5[y22,y24];
+ filldraw stroke z21e{up}...z22e{right}..z23e..{right}z24e...{up}z25e; % stroke
+else:
+ pos21(vair,-180); pos23(vair,0); y21=y23;
+ lft x21r=hround(center-w/3); rt x23r=hround(center+w/3);
+ bot y23=vround max(x_height+o+separator,
+ if squeeze: 2/3 else: 1/3 fi [x_height,h]-.5mid_width);
+ x22=center; pos22(mid_width,90); top y22r=h;
+ filldraw stroke z21e{up}...z22e...{down}z23e;
+fi
+enddef;
+
+% The spirit_circumflex height ( Circ_ht#) has been raised
+% to give more room to the breathing under it
+% Also rewrite the position of x31 below
+
+vardef spirit_circumflex(expr center) text type=
+generate_circumflex(center,true); %variable `squeeze'
+numeric sp_bottom, sp_height, sp_top, box_top;
+box_top=bot if serifs: y21l else: y22l fi;
+sp_top=sp_bottom+sp_height=vround(.15[box_top,x_height]);
+sp_top+sp_bottom=box_top+x_height;
+numeric dot_diam#; dot_diam# = 5/8dot_size#;
+define_whole_blacker_pixels(dot_diam);
+pickup fine.nib;
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height-eps)));
+x31 if1type0:+.5dot_diam fi=hround(center);
+% The code that was here was equivalent to x31=hround(center);
+% By shifting x31 leftward only for the smooth breathing, we move the
+% "optical center" of the smooth breathing to about where
+% the "optical center" of the rough breathing is. This relieves
+% the crowding under the downcurve of the circumflex.
+y31+.5dot_diam=vround(sp_top);
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+penlabels(31);
+enddef;
+
+% Spread out the accented diareses; pull acute a bit to the left
+% and shove grave a bit to the right (1/8u in both instances).
+% Raise the accent slightly, and shorten it by changing
+% h and x_height within a save group. 10 May, 1997.
+% The angle of the accent is governed by the width of iota, since
+% this gives the cleanest association of accent and diaeresis.
+% The older calculation depended on the width of the underlying character,
+% which flattens out the angle and makes the accent crowd the dot it
+% is closest to.
+% An adjustment is required to raise the dots away from the tips
+% of the upsilon. Once they are spaced out, they bleed into the
+% character. This undoes much of the effect of the raising of
+% the accent mentioned above, but since prau+ is about the only
+% even slightly common root with a upsilon diaeresis, this does not
+% too much matter.
+
+vardef diaeresis_acute(expr center)=
+ if serifs: x21-x22=1.25u; x21+.5stem=hround(center+5/6(x21-x22)+.5stem-1/8u);
+ else: rt x21r=hround (3.75u+.5stem); lft x22l=hround(center-.5vair); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=Circ_ht;
+ x_height = saved_x_height + 1.5(h - saved_h);
+ generate_grave; penlabels(21,22);
+ endgroup;
+ generate_diaeresis(center,.9dot_size,2.25dot_size,
+ if doing_u > 0: .35 else : .5 fi [h,x_height],x_height+separator);
+enddef;
+
+vardef diaeresis_grave(expr center)=
+ if serifs: x22-x21=1.25u; x21-.5stem=hround(center-5/6(x22-x21)-.5stem+1/8u);
+ else: lft x21l=hround (1.25u-.5stem); rt x22r=hround(center+.5vair); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=Circ_ht;
+ x_height = saved_x_height + 1.5(h - saved_h);
+ generate_grave; penlabels(21,22);
+ endgroup;
+ generate_diaeresis(center,.9dot_size,2.25dot_size,
+ if doing_u > 0: .35 else : .5 fi [h,x_height],x_height+separator);
+enddef;
+
+vardef generate_underdot(expr center,base)=
+ pickup tiny.nib;
+ pos31(dot_diam,0); pos32(dot_diam,90);
+ x31l=hround(center+(x31l-x31)); x31=x32;
+ y32l=vround(base); y31=y32; dot(31,32);
+ penlabels(31,32);
+enddef;
+
+% Set up remapping of Grave and Acute, Asper and Lenis.
+% This allows a more natural setting of single quotes, apostrophe
+% and angle brackets.
+% Move two accents out of the way of Ibycus
+% Xi and digamma. Correct height of "Smooth breathing
+% with grave" and "Rough breathing with circumflex"
+% composites.
+% Slight redesign of freestanding "Iota subscript".
+% Reposition Breve and Macron, but these will usually
+% be got from the prosody font anyway.
+%
+def selectaccent expr t =
+ currenttitle:= t;
+ if t = "Grave accent" :
+ code_offset := bary_tone - ASCII"`" ; let next_ = use_it_
+ elseif t = "Acute accent" :
+ code_offset := oxy_tone - ASCII"'" ; let next_ = use_it_
+ elseif t = "Rough breathing" : let next_ = lose_it_
+ elseif t = "Smooth breathing" : let next_ = lose_it_
+ elseif t = "Rough breathing with acute" : let next_ = lose_it_
+ elseif t = "Rough breathing with grave" : let next_ = lose_it_
+ elseif t = "Rough breathing with circumflex" : let next_ = lose_it_
+ elseif t = "Smooth breathing with acute" : let next_ = lose_it_
+ elseif t = "Smooth breathing with grave" : let next_ = lose_it_
+ elseif t = "Smooth breathing and circumflex" : let next_ = lose_it_
+ elseif t = "Diaeresis with circumflex" : let next_ = lose_it_
+ elseif t = "Iota subscript" : let next_ = lose_it_
+ elseif t = "Breve accent" :
+ code_offset := breve - oct"036" ; let next_ = use_it_
+ elseif t = "Macron (bar) accent" :
+ code_offset := longum - oct"037"; let next_ = use_it_
+ else: code_offset := 0 ; let next_ = use_it_ fi; next_ enddef;
+
+def selectaspirate expr t =
+ currenttitle:= t;
+ if t = "Italic letter h" :
+ code_offset := aspirate - ASCII"h" ; let next_ = use_it_
+ else: let next_ = lose_it_ fi; next_ enddef;
+
+let cmchar = selectaspirate;
+
+input itall
+
+code_offset:=0;
+let cmchar = relax;
+
+% Use adjust fit to kern the accents that go with
+% uppercase out a bit to the left so that accented uppercase does not
+% take more than its proper letterspace. Should have been applied
+% to trailing side bearing too, but there is too much water under
+% the bridge now. Silvio Levy's accents have no
+% adjust_fit, and a character with no adjust_fit picks up
+% the values of the previous character.
+
+cmchar "Rough breathing";
+beginchar(asper_glyph,9u#,acc_ht#,0);
+adjust_fit(-4u#,0);
+spirit(.5w)<;
+endchar;
+
+cmchar "Smooth breathing";
+beginchar(lenis_glyph,9u#,acc_ht#,0);
+adjust_fit(-5u#,0);
+spirit(.5w)>;
+endchar;
+
+cmchar "Rough breathing with acute";
+beginchar(asper_oxy,9u#,acc_ht#,0);
+adjust_fit(-3u#,0);
+spirit_acute(.5w)<;
+endchar;
+
+cmchar "Rough breathing with grave";
+beginchar(asper_bary,9u#,acc_ht#,0);
+adjust_fit(-3u#,0);
+spirit_grave(.5w)<;
+endchar;
+
+% Do asper_perispomenon with corrected heights.
+cmchar "Rough breathing with circumflex";
+beginchar(asper_peri,9u#,Circ_ht#,0);
+adjust_fit(-3u#,0);
+spirit_circumflex(.5w)<;
+endchar;
+
+cmchar "Smooth breathing with acute";
+beginchar(lenis_oxy,9u#,acc_ht#,0);
+adjust_fit(-3u#,0);
+spirit_acute(.5w)>;
+endchar;
+
+% Do lenis_barytone with corrected height.
+cmchar "Smooth breathing with grave";
+beginchar(lenis_bary,9u#,acc_ht#,0);
+adjust_fit(-3u#,0);
+spirit_grave(.5w)>;
+endchar;
+
+cmchar "Smooth breathing and circumflex";
+beginchar(lenis_peri,9u#,Circ_ht#,0);
+adjust_fit(-3u#,0);
+spirit_circumflex(.5w)>;
+endchar;
+
+% Provide an alternative for the depth of iota subscript.
+
+cmchar "Iota subscript";
+beginchar("|",9u#,0,
+ if ( ((pixels_per_inch / mag) < 599) or (pixels_per_inch < 420)) :
+ desc_depth#
+ else :
+ iota_dp#
+ fi );
+adjust_fit(0,0); % Don't omit this---see note following.
+iota_sub(.5w);
+endchar;
+
+% The adjust_fit macro really ought to be used with all characters,
+% because if it isn't, the chardx value (pixel displacement in the
+% gf file) will not be recalculated, but will be picked up from
+% the last character that did have an adjust_fit line. Here, I
+% leave the sloppy side-effect in place because I know I want
+% the few affected accents to have the same 9u width.
+%
+
+let cmchar = selectaccent;
+
+readfrom("graccent");
+
+code_offset:=0;
+let cmchar = relax;
+
+
+% Zero-width space
+% Takes the place of "Diaeresis with circumflex", which cannot occur.
+% iota and upsilon only affected by diaeresis when short.
+% This is useful for deligaturing sigma. with the "s|" digraph.
+% Besides, it can often help to have a zero-width character available.
+% But you can't draw the box so proofing and displaying must be off.
+%
+% Adjust_fit has to be used to get a true zero-width. A curious side-effect
+% of setting the character width to eps is that the u value is recalculated
+% to a colossal negative value. It is not worth the trouble to discover
+% why, since a saved u value will obviate the errors and oversized
+% shift values that happen with the recalculated u. The effect noted here
+% is absent from proof mode calculations. It is only a problem when
+% usable rasters are being laid down.
+%
+begingroup;
+numeric saved_u; saved_u:=u;
+save u;
+save proofing; proofing:=0;
+save displaying; displaying:=0;
+
+cmchar "Zero-width Space";
+beginchar(null_space, eps,0,0); % The adjust-fit calculation
+adjust_fit(-eps,0); % does a division, so w must be > 0.
+endchar; % canceling it out with "-eps" is
+ % unnecessary, but it feels better.
+
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+
+
+beginchar(doti,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-2.5saved_u, -d);
+endchar;
+
+beginchar(dotI,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-3.25saved_u, -d);
+endchar;
+
+beginchar(dote,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-3.75saved_u, -d);
+endchar;
+
+beginchar(dotbt,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-4saved_u, -d);
+endchar;
+
+beginchar(dotJdlmnpqu,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-4.5saved_u, -d);
+endchar;
+
+beginchar(dotkos,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.25saved_u, -d);
+endchar;
+
+beginchar(dotGZ,eps,0,desc_depth#); % Also upper case Koppa
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.5saved_u, -d);
+endchar;
+
+beginchar(dotchjz,eps,0,desc_depth# + dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.5saved_u, -d);
+endchar;
+
+beginchar(dotCEVaw,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-6saved_u, -d);
+endchar;
+
+beginchar(dotBFLNPRSTW,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-6.5saved_u, -d);
+endchar;
+
+beginchar(dotH,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-6.75saved_u, -d);
+endchar;
+
+beginchar(dotAOQUXY,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-7.25saved_u, -d);
+endchar;
+
+beginchar(dotDK,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-7.5saved_u, -d);
+endchar;
+
+beginchar(dotM,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-8.75saved_u, -d);
+endchar;
+
+beginchar(dotgx,eps,0,desc_depth# + 1.5dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.5saved_u, -d);
+endchar;
+
+beginchar(dotr,eps,0,desc_depth# + 1.5dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-4.5saved_u, -d);
+endchar;
+
+beginchar(dotfy,eps,0,desc_depth# + 2dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.75saved_u, -d);
+endchar;
+
+beginchar(dotkoppa,eps,0,desc_depth# + 2dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5saved_u, -d);
+endchar;
+
+% The three positions for iota subscript
+% Equivalent to Times Ten Greek's /iotasubscripta etc., except that these
+% are designed as postpositives kerned strongly to the left. Setwidth 0
+% but I am not sure that the type1 version can get away with that
+
+% /iotasubscripta
+beginchar(a_isub,eps,0,iota_dp#);
+adjust_fit(-eps,0);
+iota_sub(-5saved_u);
+endchar;
+
+% The top position of iota subscript under eta is dropped to
+% provide better spacing between the letter and the subscript.
+%
+% /iotasubscripte
+beginchar(h_isub,eps,0,iota_dp#);
+adjust_fit(-eps,0);
+begingroup;
+numeric saved_o;
+saved_o = o;
+save o;
+o = 3saved_o;
+iota_sub(-6.85saved_u);
+endgroup;
+endchar;
+
+% /iotasubscripto
+beginchar(w_isub,eps,0,iota_dp#);
+adjust_fit(-eps,0);
+iota_sub(-6saved_u);
+endchar;
+
+endgroup;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/ibycus4.mf b/Master/texmf-dist/fonts/source/public/ibycus/ibycus4.mf
new file mode 100644
index 00000000000..1261eee1f09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/ibycus4.mf
@@ -0,0 +1,39 @@
+mode_setup;
+font_setup;
+
+font_coding_scheme:="Ibycus4 /based on TLG/";
+input ibycus4.map; % File which can be read by both TeX and MF
+picture barypicture;
+string currenttitle;
+string subtitle;
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+% Add _ to the macro names used by iff to avoid confusion.
+def use_it_ =
+ if unknown barypicture:
+ if known savedpicture: barypicture := savedpicture; fi fi
+ enddef;
+def lose_it_ = let endchar = fi; let ; = fix_ semi_
+ if false: enddef;
+% redefine readfrom, to take advantage of path searching
+% This requires a METAFONT compiled with Karl Berry's kpathsea
+def readfrom(expr filename) =
+ scantokens ("input " & filename); enddef;
+input ibyupr4
+input ibyacc4
+input ibylwr4
+input romand
+input ibypnct4
+input ibylig4
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+input version4
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/ibylig4.mf b/Master/texmf-dist/fonts/source/public/ibycus/ibylig4.mf
new file mode 100644
index 00000000000..9334cd88992
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/ibylig4.mf
@@ -0,0 +1,250 @@
+% Version 4.3. 7 July, 1998. Response to a bug report. The wrong
+% angle was in the line for ligtable angleright: ">" =: guillemotright;
+% All tfm files corrected to reflect this change.
+
+% Version 4.2. 18 July, 1997. Small adjustments to the space between
+% accent clusters and Uppercase H and I. A little more space after
+% accented iota and before taller consonants.
+
+% Version 4.1. 28 April, 1996. Sevaral kerns for iota changed
+% before p t and u to avoid crowding. Medial sigma is default
+% before <> [] and other non standard symbols. (Final
+% at word end, sentence punctuation, and parentheses).
+%
+% Ligature table for ibycus4 Version 4.0 using the \bang
+% character as the postpositive indication of a dot under
+% any letter or letter-and-accent combination except for
+% iota subscript composites.
+
+% CAUTION: With this arrangement the exclamation point must
+% set with \sfcode`\!=1000 or you get very odd spacing.
+% This setting is supplied in ibycus4.tex
+
+ligtable "-": "-" =: endash; % en-dash
+ligtable endash: "-" =: emdash; % em-dash
+ligtable quotesnglleft: quotesnglleft =: quotedblleft;
+ligtable quotesnglright: quotesnglright =: quotedblright;
+% The Adobe names guillemotleft and guillemotright (\it sic})
+% are retained.
+ligtable angleleft: "<" =: guillemotleft;
+ligtable angleright: ">" =: guillemotright;
+
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of back kerning
+i#:=.5u#; ii#:=1.5u#; iii#:=2u#; % three degrees of forward kerning
+%
+% the glyphs for the breathings (spiritus) and the acute and
+% grave accents are not in the same code location as the digraph
+% input characters "'" "`" "=" ")" "(", and "`" "'" are pretty
+% well available for normal use when not immediately contiguous to
+% accentable characters. This is achieved by a change from
+% Silvio Levy's mapping to modified TLG Betacode.
+%
+ligtable "(": "(" =: ASCII"(", peri_spomenon =: asper_peri,
+ quotesnglright =: asper_oxy, quotesnglleft =: asper_bary,
+ "A" =:| asper_glyph, "E" =:| asper_glyph, "H" =:| asper_glyph,
+ "O" =:| asper_glyph, "W" =:| asper_glyph, "I" =:| asper_glyph,
+ "U" =:| asper_glyph, "R" =:| asper_glyph;
+ligtable ")": ")" =: ASCII")", peri_spomenon =: lenis_peri,
+ quotesnglright =: lenis_oxy, quotesnglleft =: lenis_bary,
+ "A" =:| lenis_glyph, "E" =:| lenis_glyph, "H" =:| lenis_glyph,
+ "O" =:| lenis_glyph, "W" =:| lenis_glyph, "I" =:| lenis_glyph,
+ "U" =:| lenis_glyph, "R" =:| lenis_glyph;
+%
+ligtable asper_glyph:
+ "A" kern -7u#, "E" kern -3u#, "H" kern -3u#, "R" kern -3u#,
+ "O" kern -3.5u#, "W" kern -2.5u#, "I" kern -3u#, "U" kern -3u#;
+ligtable lenis_glyph:
+ "A" kern -6u#, "E" kern kkk#, "H" kern kkk#, "R" kern kkk#,
+ "O" kern -2.5u#, "W" kern kkk#, "I" kern kkk#, "U" kern kkk#;
+ligtable asper_oxy: lenis_oxy:
+ "A" kern -6u#, "E" kern -1u#, "H" kern -1u#,
+ "O" kern -2.5u#, "W" kern kk#, "I" kern -1u#, "U" kern kk#;
+ligtable asper_bary: lenis_bary:
+ "A" kern -5u#, "E" kern kk#, "H" kern kk#,
+ "O" kern kkk#, "W" kern -1u#, "I" kern kkk#, "U" kern -1u#;
+ligtable asper_peri:
+ "A" kern -6.5u#, "E" kern kkk#, "H" kern kkk#, "I" kern kkk#,
+ "O" kern -3u#, "W" kern -3u#, "U" kern kkk#;
+ligtable lenis_peri:
+ "A" kern -6.5u#, "E" kern kkk#, "H" kern kkk#, "I" kern kkk#,
+ "O" kern -3u#, "W" kern -2.5u#, "U" kern kkk#;
+
+ligtable "a": quotesnglleft =: a_bary, quotesnglright =: a_oxy,
+ peri_spomenon =: a_peri, iotasubscript |=: a_isub, dubious |=: dotCEVaw,
+ "(" =: a_aspr, ")" =: a_len, "i" kern i#; % Post-positive breathings
+ligtable "h": "+" =: aspirate, quotesnglleft =: h_bary, quotesnglright =: h_oxy,
+ peri_spomenon =: h_peri, iotasubscript |=: h_isub, dubious |=: dotchjz,
+ "(" =: h_aspr, ")" =: h_len, "i" kern ii#,
+ i_bary kern ii#, i_oxy kern ii#, i_peri kern ii#,
+ i_asproxy kern ii#, i_asprbary kern ii#, i_asprperi kern ii#,
+ i_lenoxy kern ii#, i_lenbary kern ii#, i_lenperi kern ii#;
+ligtable "w": quotesnglleft =: w_bary, quotesnglright =: w_oxy,
+ peri_spomenon =: w_peri, iotasubscript |=: w_isub, dubious |=: dotCEVaw,
+ "(" =: w_aspr, ")" =: w_len, "i" kern i#, "n" kern k#;
+ligtable "e": quotesnglleft =: e_bary, quotesnglright =: e_oxy,
+ peri_spomenon =: e_peri,
+ "(" =: e_aspr, ")" =: e_len, dubious |=: dote, "i" kern i#;
+ligtable "o": quotesnglleft =: o_bary, quotesnglright =: o_oxy,
+ peri_spomenon =: o_peri,
+ "(" =: o_aspr, ")" =: o_len, dubious |=: dotkos,
+ "n" kern k#, "h" kern k#, "l" kern k#;
+ligtable "i": quotesnglleft =: i_bary, quotesnglright =: i_oxy,
+ peri_spomenon =: i_peri, dubious |=: doti,
+ "(" =: i_aspr, ")" =: i_len, dieresis =: i_diaer,
+ "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern -1u#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#;
+ligtable "u": quotesnglleft =: u_bary, quotesnglright =: u_oxy,
+ peri_spomenon =: u_peri, dubious |=: dotJdlmnpqu,
+ "(" =: u_aspr, ")" =: u_len, dieresis =: u_diaer, "i" kern i#;
+ligtable "r": "(" =: r_aspr, ")" =: r_len,
+ r_aspr: r_len: dubious |=: dotr, "i" kern i#;
+
+ligtable a_aspr: quotesnglright =: a_asproxy, quotesnglleft =: a_asprbary,
+ peri_spomenon =: a_asprperi, iotasubscript |=: a_isub, dubious |=: dotCEVaw,
+ "i" kern i#;
+ligtable h_aspr: quotesnglright =: h_asproxy, quotesnglleft =: h_asprbary,
+ peri_spomenon =: h_asprperi, iotasubscript |=: h_isub, dubious |=: dotchjz,
+ "i" kern ii#;
+ligtable w_aspr: quotesnglright =: w_asproxy, quotesnglleft =: w_asprbary,
+ peri_spomenon =: w_asprperi, iotasubscript |=: w_isub, dubious |=: dotCEVaw,
+ "n" kern k#;
+ligtable e_aspr: quotesnglright =: e_asproxy, quotesnglleft =: e_asprbary,
+ peri_spomenon =: e_asprperi, dubious |=: dote;
+ligtable o_aspr: quotesnglright =: o_asproxy, quotesnglleft =: o_asprbary,
+ peri_spomenon =: o_asprperi, dubious |=: dotkos, "n" kern k#, "h" kern k#;
+ligtable i_aspr: quotesnglright =: i_asproxy, quotesnglleft =: i_asprbary,
+ peri_spomenon =: i_asprperi, dubious |=: doti,
+ "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern -1u#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#;
+ligtable u_aspr: quotesnglright =: u_asproxy, quotesnglleft =: u_asprbary,
+ peri_spomenon =: u_asprperi, dubious |=: dotJdlmnpqu;
+
+ligtable a_len: quotesnglright =: a_lenoxy, quotesnglleft =: a_lenbary,
+ dubious |=: dotCEVaw,
+ peri_spomenon =: a_lenperi, iotasubscript |=: a_isub;
+ligtable h_len: quotesnglright =: h_lenoxy, quotesnglleft =: h_lenbary, dubious |=: dotchjz,
+ peri_spomenon =: h_lenperi, iotasubscript |=: h_isub, "i" kern ii#;
+ligtable w_len: quotesnglright =: w_lenoxy, quotesnglleft =: w_lenbary,
+ dubious |=: dotCEVaw,
+ peri_spomenon =: w_lenperi, iotasubscript |=: w_isub, "n" kern k#;
+ligtable e_len: quotesnglright =: e_lenoxy, quotesnglleft =: e_lenbary,
+ peri_spomenon =: e_lenperi, dubious |=: dote;
+ligtable o_len: quotesnglright =: o_lenoxy, quotesnglleft =: o_lenbary,
+ peri_spomenon =: o_lenperi, dubious |=: dotkos, "n" kern k#, "h" kern k#;
+ligtable i_len: quotesnglright =: i_lenoxy, quotesnglleft =: i_lenbary,
+ peri_spomenon =: i_lenperi, dubious |=: doti,
+ "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern -1u#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#;
+ligtable u_len: quotesnglright =: u_lenoxy, quotesnglleft =: u_lenbary,
+ peri_spomenon =: u_lenperi, dubious |=: dotJdlmnpqu;
+
+ligtable "K": "+" =: Koppa, dubious |=: dotDK; % Uppercase Koppa
+ligtable Koppa: dubious |=: dotGZ;
+
+% The curve of o and the hook at the top of h make kerns with
+% m desirable
+ligtable "m": dubious |=: dotJdlmnpqu,
+ "o" kern k#, o_oxy kern k#, o_bary kern k#,
+ "h" kern k#, h_oxy kern k#, h_bary kern k#, h_peri kern k#,
+ h_isub kern k#;
+
+% backward kerns for letters following accented iota
+ligtable dieresis: quotesnglright =: diaeroxy, quotesnglleft =: diaerbary;
+
+ligtable i_diaer: quotesnglright =: i_diaeroxy, quotesnglleft =: i_diaerbary;
+ligtable i_bary: dieresis=: i_diaerbary, i_oxy: dieresis=:i_diaeroxy, dubious |=: doti,
+ "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern -1u#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#;
+% The widely spaced accent clusters on iota need more space before many
+% consonants. Particularly lambda and ksi.
+ligtable i_peri: i_asproxy: i_asprbary: i_asprperi:
+ i_lenoxy: i_lenbary: i_lenperi: i_diaerbary: i_diaeroxy: dubious |=: doti,
+ "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern k#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#;
+% all needed forward kerns except for vowels, rho and sigma
+% also a back kern for dh, but only when h is unaccented.
+ligtable "k": "+" =: koppa, dubious |=: dotkos, "i" kern i#;
+ligtable "A": dubious |=: dotAOQUXY, "E": dubious |=: dotCEVaw,
+ "W": dubious |=: dotBFLNPRSTW, "i" kern i#;
+ligtable "n": "p": "q": dubious |=: dotJdlmnpqu, "t": dubious |=: dotbt,
+ "f": "y": dubious |=: dotfy, h_isub:
+ "i" kern i#;
+ligtable "d": dubious |=: dotJdlmnpqu, "i" kern i#, "h" kern k#;
+ligtable "b": dubious |=: dotbt,
+ "i" kern ii#;
+ligtable dotbt: "i" kern i#;
+
+% forward kerns for accented upsilon and epsilon
+ligtable o_oxy: o_bary: "h" kern k#, "l" kern k#, "n" kern k#,
+ o_asproxy: o_lenoxy: o_asprbary: o_lenbary: o_asprperi: o_lenperi:
+ dubious |=: dotkos;
+ligtable u_diaer: quotesnglright =: u_diaeroxy, quotesnglleft =: u_diaerbary;
+ligtable u_bary: dieresis =: u_diaerbary;
+ligtable u_oxy: dieresis =: u_diaeroxy,
+ u_asprbary: u_asproxy: u_lenoxy: u_lenbary:
+ u_peri: u_asprperi: u_lenperi:
+ u_diaeroxy: u_diaerbary: dubious |=: dotJdlmnpqu,
+ e_oxy: e_asproxy: e_lenoxy: e_bary: e_lenbary: e_asprbary:
+ e_peri: e_asprperi: e_lenperi: dubious |=: dote,
+ "i" kern i#;
+
+% iota subscripts and forward kerns for alpha, eta and omega
+ligtable a_bary: iotasubscript |=: a_isub,
+ dubious |=: dotCEVaw, "i" kern
+i#;
+% iota after simple barytone unused nught be iota adscript.
+ligtable a_oxy: a_asproxy: a_lenoxy: a_asprbary: a_peri: a_asprperi:
+ a_lenperi: a_lenbary:
+ iotasubscript |=: a_isub, dubious |=: dotCEVaw, "i" kern i#;
+
+ligtable h_bary: h_asprbary: h_oxy: h_asproxy: h_lenoxy: h_lenbary:
+ h_peri: h_asprperi: h_lenperi:
+ iotasubscript |=: h_isub, dubious |=: dotchjz, "i" kern i#;
+
+ligtable w_bary: w_asprbary: w_oxy: w_asproxy: w_lenoxy: w_lenbary:
+ w_peri: w_asprperi: w_lenperi:
+ iotasubscript |=: w_isub, dubious |=: dotCEVaw, "i" kern i#, "n" kern k#;
+
+
+ligtable "C": "+" =: Cigmalunate, Cigmalunate: dubious |=: dotCEVaw;
+ligtable "c": "+" =: cigmalunate, cigmalunate: "z": dubious |=: dotchjz;
+ligtable sigmafinal: dubious |=: dotchjz;
+
+% One ligature for (lowercase only) sampi, one kern with lowercase iota
+% and all practicable arrangements for final sigma.
+% It is assumed that sigma before a punctuation mark such as . , ; ?
+% and probably ) should be final but before > ] } it is more likely
+% to be medial. The treatment of ( matches ) and of { [ < matches
+% > ] } (anything elxe would be more confusing.
+% Final sigma can always be forced by using the letter "j"
+% The last ligature s| is the way to force medial sigma at word end.
+% Note the trick at the end which allows a dot under a forced medial
+% sigma.
+ligtable "s": "+" =: sampi, "i" kern i#,
+ boundarychar =: sigmafinal,
+ "." =:| sigmafinal, "," =:| sigmafinal, "?" =:| sigmafinal,
+ ":" =:| sigmafinal, ";" =:| sigmafinal, "(" =:| sigmafinal,
+ ")" =:| sigmafinal, "|" |=: null_space, null_space: dubious |=: dotkos;
+
+ligtable "l": dubious |=: dotJdlmnpqu;
+ligtable "g": "x": dubious |=: dotgx;
+ligtable "v": dubious |=: doti;
+ligtable koppa: dubious |=: dotkoppa;
+ligtable "I": dubious |=: dotI;
+ligtable "G": "Z": dubious |=: dotGZ;
+ligtable "V": dubious |=: dotCEVaw;
+ligtable "B": "F": "L": "N": "P": "R": "S": "T": dubious |=: dotBFLNPRSTW;
+ligtable "H": dubious |=: dotH;
+ligtable "O": "Q": "U": "X": "Y": dubious |=: dotAOQUXY;
+ligtable "D": dubious |=: dotDK;
+ligtable "M": dubious |=: dotM; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/ibylwr4.mf b/Master/texmf-dist/fonts/source/public/ibycus/ibylwr4.mf
new file mode 100644
index 00000000000..5d12a74ee74
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/ibylwr4.mf
@@ -0,0 +1,195 @@
+def selectlower expr t =
+ currenttitle:= t;
+ subtitle := substring(0,27) of currenttitle;
+ if subtitle = "Lowercase sigma followed by" : let next_ = lose_it_
+% Four composites need corrected heights. See abary4.mf and wbary4.mf
+ elseif t =
+ "Lowercase alpha with grave and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with rough breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with smooth breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with rough breathing, acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with smooth breathing and acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with circumflex and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with rough breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with smooth breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase epsilon with grave":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase epsilon with acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with rough breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with smooth breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with grave and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with rough breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with smooth breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with rough breathing, acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with smooth breathing and acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with circumflex and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with rough breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with smooth breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase upsilon with smooth breathing":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase upsilon with rough breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase upsilon with smooth breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with rough breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with smooth breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with grave and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with rough breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with smooth breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with rough breathing, acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with smooth breathing and acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with circumflex and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with rough breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with smooth breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with iota subscript":
+ let next_ = lose_it_
+% diaeresis occurs only on short iota and upsilon, so never with circumflex
+ elseif t =
+ "Lowercase iota with diaeresis and circumflex" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase upsilon with diaeresis and circumflex" :
+ let next_ = lose_it_
+% Remapping to BetaCode
+ elseif t = "Lowercase theta" :
+ code_offset := ASCII"q" - ASCII"j"; let next_ = use_it_
+ elseif t = "Lowercase chi" :
+ code_offset := ASCII"x" - ASCII"q"; let next_ = use_it_
+ elseif t = "Lowercase xi" :
+ code_offset := ASCII"c" - ASCII"x"; let next_ = use_it_
+ elseif t = "Final lowercase sigma" :
+ code_offset := ASCII"j" - ASCII"s"; let next_ = use_it_
+ elseif t = "Initial and medial lowercase sigma" :
+ code_offset := ASCII"s" - ASCII"c"; let next_ = use_it_
+ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef;
+
+let cmchar = selectlower;
+
+readfrom("a")
+input abary4
+readfrom("e")
+input ebary4
+readfrom("h")
+input hbary4
+readfrom("i")
+input ibary4
+readfrom("o")
+input obary4
+doing_u:=1;
+readfrom("u")
+input ubary4
+doing_u:=0;
+readfrom("w")
+input wbary4
+readfrom("b")
+readfrom("g")
+readfrom("d")
+readfrom("z")
+readfrom("j")
+readfrom("k")
+readfrom("l")
+readfrom("m")
+readfrom("n")
+readfrom("x")
+readfrom("p")
+readfrom("r")
+readfrom("s")
+readfrom("t")
+readfrom("f")
+readfrom("q")
+readfrom("y")
+
+code_offset:=0; % let's be really sure of this
+
+def selectkoppa expr t =
+ currenttitle:= t;
+ if t =
+ "Lowercase koppa" : let next_ = use_it_
+ else: let next_ = lose_it_ fi; next_ enddef;
+let cmchar = selectkoppa;
+
+input koppa4
+
+let cmchar = relax;
+input cigma4
+input digamma4
+input sampi4
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/ibypnct4.mf b/Master/texmf-dist/fonts/source/public/ibycus/ibypnct4.mf
new file mode 100644
index 00000000000..34b285ba67c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/ibypnct4.mf
@@ -0,0 +1,73 @@
+def selectpunct expr t =
+ currenttitle:= t;
+ if t = "Hash mark (number sign)" : let next_ = lose_it_
+ elseif t = "At sign" : let next_ = lose_it_
+ elseif t = "Semicolon" :
+ code_offset := ASCII"?" - ASCII";"; let next_ = use_it_
+ elseif t = "Apostrophe" :
+ code_offset := quotesnglright - ASCII"'"; let next_ = use_it_
+ elseif t = "Reverse apostrophe" :
+ code_offset := quotesnglleft - ASCII"`"; let next_ = use_it_
+ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef;
+
+def remapcomlig expr t =
+ currenttitle:= t;
+ if t = "Closing quotes" :
+ code_offset := quotedblright - oct"42"; let next_ = use_it_
+ elseif t = "Opening quotes" :
+ code_offset := quotedblleft - oct"134"; let next_ = use_it_
+ elseif t = "En dash" :
+ code_offset := endash - oct"173"; let next_ = use_it_
+ elseif t = "Em dash" :
+ code_offset := emdash - ASCII"|"; let next_ = use_it_
+ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef;
+
+% Get a good set of critical edition marks for this font.
+
+def selectsym expr t =
+ currenttitle:= t;
+ if t = "Left curly brace" :
+ code_offset := braceleft - oct"146"; let next_ = use_it_
+ elseif t = "Right curly brace" :
+ code_offset := braceright - oct"147"; let next_ = use_it_
+ elseif t = "Left floor bracket" :
+ code_offset := bracketleftbt - oct"142"; let next_ = use_it_
+ elseif t = "Right floor bracket" :
+ code_offset := bracketrightbt - oct"143"; let next_ = use_it_
+ elseif t = "Left angle bracket" :
+ code_offset := angleleft - oct"150"; let next_ = use_it_
+ elseif t = "Right angle bracket" :
+ code_offset := angleright - oct"151"; let next_ = use_it_
+ elseif t = "Dagger mark" :
+ code_offset := dagger - oct"171"; let next_ = use_it_
+ elseif t = "Double dagger mark" :
+ code_offset := daggerdbl - oct"172"; let next_ = use_it_
+ else: let next_ = lose_it_ fi; next_ enddef;
+
+% Use Computer modern characters for as many signs as possible.
+
+let cmchar = selectpunct;
+input punct
+let ligtable_ = ligtable;
+def ligtable text t = enddef;
+let cmchar = remapcomlig;
+input comlig
+let cmchar = relax;
+let ligtable = ligtable_;
+let cmchar = selectsym;
+input symbol
+
+code_offset := 0;
+
+% Special Greek punctuation from Silvio Levy's src/punct.mf.
+
+def selectgrpunct expr t =
+ currenttitle:= t;
+ if t = "'Anw tele'ia" : let next_ = use_it_
+ elseif t = "Open quotes (eisagwgik'a)" : let next_ = use_it_
+ elseif t = "Close quotes (eisagwgik'a)" : let next_ = use_it_
+ else: code_offset := 0; let next_ = lose_it_ fi; next_ enddef;
+
+let cmchar = selectgrpunct;
+readfrom("grpunct");
+
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/ibyupr4.mf b/Master/texmf-dist/fonts/source/public/ibycus/ibyupr4.mf
new file mode 100644
index 00000000000..080298bbcc1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/ibyupr4.mf
@@ -0,0 +1,54 @@
+def selectupper expr t =
+ currenttitle:= t;
+ if t = "The letter C" :
+ code_offset := Cigmalunate - ASCII"C"; let next_ = use_it_
+ elseif t = "The letter D" : let next_ = lose_it_
+ elseif t = "The letter F" :
+ code_offset := Digamma - ASCII"F"; let next_ = use_it_
+ elseif t = "The letter G" : let next_ = lose_it_
+ elseif t = "The letter J" : let next_ = lose_it_
+ elseif t = "The letter L" : let next_ = lose_it_
+ elseif t = "The letter Q" : let next_ = lose_it_
+ elseif t = "The letter R" : let next_ = lose_it_
+ elseif t = "The letter S" : let next_ = lose_it_
+ elseif t = "The letter U" : let next_ = lose_it_
+ elseif t = "The letter V" : let next_ = lose_it_
+ elseif t = "The letter W" : let next_ = lose_it_
+ elseif t = "The letter Y" : let next_ = lose_it_
+ elseif t = "The letter P" :
+ code_offset := ASCII"R" - ASCII"P"; let next_ = use_it_
+ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef;
+
+def recodeupper expr t =
+ currenttitle:= t;
+ if t = "Uppercase Greek Xi" : code_offset := ASCII"C" - oct"004";
+ elseif t = "Uppercase Greek Delta" : code_offset := ASCII"D" - oct"001";
+ elseif t = "Uppercase Greek Phi" : code_offset := ASCII"F" - oct"010";
+ elseif t = "Uppercase Greek Gamma" : code_offset := ASCII"G" - oct"000";
+ elseif t = "Uppercase Greek Lambda" : code_offset := ASCII"L" - oct"003";
+ elseif t = "Uppercase Greek Pi" : code_offset := ASCII"P" - oct"005";
+ elseif t = "Uppercase Greek Theta" : code_offset := ASCII"Q" - oct"002";
+ elseif t = "Uppercase Greek Sigma" : code_offset := ASCII"S" - oct"006";
+ elseif t = "Uppercase Greek Upsilon" : code_offset := ASCII"U" - oct"007";
+ elseif t = "Uppercase Greek Omega" : code_offset := ASCII"W" - oct"012";
+ elseif t = "Uppercase Greek Psi" : code_offset := ASCII"Y" - oct"011";
+ else: code_offset := 0; fi; next_ enddef;
+
+let cmchar = selectupper;
+input romanu
+let cmchar = recodeupper;
+input greeku
+
+code_offset := 0;
+
+def selectkoppa expr t =
+ currenttitle:= t;
+ if t =
+ "Uppercase koppa" : let next_ = use_it_
+ else: let next_ = lose_it_ fi; next_ enddef;
+let cmchar = selectkoppa;
+
+input koppa4
+
+let cmchar = relax;
+
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/koppa4.mf b/Master/texmf-dist/fonts/source/public/ibycus/koppa4.mf
new file mode 100644
index 00000000000..7a2d04e6372
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/koppa4.mf
@@ -0,0 +1,50 @@
+cmchar "Uppercase koppa";
+beginchar(Koppa,11u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem,light_curve;
+shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=y5; bot y2=0;
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(h+o); y4=y6=.5[y3,y5];
+y5r=vround(.30h if serifs:+slab fi);
+penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+if serifs: dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi
+filldraw stroke z1e--z2e; % stem
+math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+def dims = 9.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+% Elements borrowed from phi and tail of eta
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h;
+ x6r=.5[x4r,x8r]; bot y6r=-oo;
+ numeric tilt; tilt:=min(2*otilt,.5);
+ filldraw stroke gr_arc.e(6,7,8)(vair,stem,tilt) ;
+% filldraw stroke gr_arc.e(4,5,6)(vair,.4[vair,stem],tilt) ;
+ filldraw stroke gr_arc.e(4,5,6)(vair,stem,tilt) ;
+ top y2r = h + o; x2r=x6r;
+% filldraw stroke gr_arc.e(2,3,4)(vair,.4[vair,stem],tilt) ;
+% Can't remember why I lightened up the northwest side of this.
+% It doesn't seem like a good idea now.
+ filldraw stroke gr_arc.e(2,3,4)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(8,1,2)(vair,stem,tilt) ;
+ pos10(stem,180); pos11(.4[vair,stem],180); % Thicken a bit at join
+ y10-.5stem=-d-o; y11=y6; x10=x11=x6;
+ filldraw circ_stroke z10e..z11e{up};
+enddef;
+
+cmchar "Lowercase koppa";
+beginchar(koppa,dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,20,21); endchar;
+
+picture savedpicture; % erase it
+
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/obary4.mf b/Master/texmf-dist/fonts/source/public/ibycus/obary4.mf
new file mode 100644
index 00000000000..ca0ef25a8ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/obary4.mf
@@ -0,0 +1,26 @@
+savedpicture = barypicture; % it was cleared at the end of o.mf
+%% but the dimensions set in o.mf remain.
+
+cmchar "Lowercase omicron with rough breathing and grave";
+beginchar(o_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing and grave";
+beginchar(o_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+cmchar "Lowercase omicron with circumflex (Attic)";
+beginchar(o_peri,width#,acc_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase omicron with rough breathing and circumflex (Attic)";
+beginchar(o_asprperi,width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing and circumflex (Attic)";
+beginchar(o_lenperi,width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/sampi4.mf b/Master/texmf-dist/fonts/source/public/ibycus/sampi4.mf
new file mode 100644
index 00000000000..a4e1e111b6c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/sampi4.mf
@@ -0,0 +1,27 @@
+% Rather mechanical design. A tipped
+% close parenthesis, with two legs near
+% the center.
+cmchar "sampi";
+beginchar(sampi,10u# ,asc_height#,desc_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(u); lft x2l=hround(x1+4u);
+top y1=h-u; y2=.5[y1,y3]=math_axis;
+numeric sampi_tilt;
+x4 = w-2u; y4=y3; sampi_tilt=angle(z4-z1)+90;
+pos6(vstem,90); pos7(vstem,90);
+pos2'(.75[hair,stem],sampi_tilt); pos3'(vair,sampi_tilt);
+forsuffixes $=6,7,8,9:
+ pos$'(vstem,90+sampi_tilt); endfor
+x5=3(x2-x1); x6l=x7l=x2l;
+y5=y6l+.15(y1-y3)=y7r-.15(y1-y3)=y2;
+x8=x9=.2(x2-x1); y8=y6;y9=y7;
+forsuffixes $=2,3,5,6,7,8,9:
+ z$'=z$ rotatedaround(z1,sampi_tilt); endfor
+y5':=min(y5',y1-eps);
+filldraw stroke z1e{z5'-z1}...z2'e
+ ...{z3'-z5'}z3'e; % arc
+filldraw stroke z6'e--z8'e; filldraw stroke z7'e--z9'e;
+penlabels(1,forsuffixes $=2,3,6,7,8,9:$',endfor 4); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/ubary4.mf b/Master/texmf-dist/fonts/source/public/ibycus/ubary4.mf
new file mode 100644
index 00000000000..3944e2652f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/ubary4.mf
@@ -0,0 +1,29 @@
+savedpicture = barypicture; % it was cleared at the end of u.mf
+%% but the dimensions set in u.mf remain.
+
+% The opened out accent clusters make an adjustment of "center"
+% necessary. This helps with the smooth breathing too.
+
+cmchar "recentered Lowercase upsilon with smooth breathing";
+beginchar(u_len,width#,acc_ht#,0);
+this_letter; spirit(x_baryctr -.75u)>; endchar;
+
+cmchar "recentered Lowercase upsilon with rough breathing and acute";
+beginchar(u_asproxy,width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr -.75u)<; endchar;
+
+cmchar "recentered Lowercase upsilon with smooth breathing and acute";
+beginchar(u_lenoxy,width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr -.75u)>; endchar;
+
+cmchar "Lowercase upsilon with rough breathing and grave";
+beginchar(u_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr-.75u)<; endchar;
+
+cmchar "Lowercase upsilon with smooth breathing and grave";
+beginchar(u_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr-.75u)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/version4.mf b/Master/texmf-dist/fonts/source/public/ibycus/version4.mf
new file mode 100644
index 00000000000..e1d318e7eb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/version4.mf
@@ -0,0 +1 @@
+special "Ibycus Polytonic Greek. Version 4.2";
diff --git a/Master/texmf-dist/fonts/source/public/ibycus/wbary4.mf b/Master/texmf-dist/fonts/source/public/ibycus/wbary4.mf
new file mode 100644
index 00000000000..d3140cddced
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibycus/wbary4.mf
@@ -0,0 +1,25 @@
+savedpicture = barypicture; % it was cleared at the end of w.mf
+%% but the dimensions set in w.mf remain.
+
+% The opened out accent clusters make an adjustment of "center"
+% necessary.
+
+cmchar "recentered Lowercase omega with rough breathing and acute";
+beginchar(w_asproxy,width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr -.75u)<; endchar;
+
+cmchar "recentered Lowercase omega with smooth breathing and acute";
+beginchar(w_lenoxy,width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr -.75u)>; endchar;
+
+cmchar "Lowercase omega with rough breathing and grave";
+beginchar(w_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr -.75u)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing and grave";
+beginchar(w_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr -.75u)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/abary4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/abary4.mf
new file mode 100644
index 00000000000..c007564b560
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/abary4.mf
@@ -0,0 +1,14 @@
+savedpicture = barypicture; % it was cleared at the end of a.mf
+%% but the dimensions set in a.mf remain.
+
+cmchar "Lowercase alpha with rough breathing and grave";
+beginchar(a_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing and grave";
+beginchar(a_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/cigma4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/cigma4.mf
new file mode 100644
index 00000000000..e8a87171ef3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/cigma4.mf
@@ -0,0 +1,22 @@
+def dims=8u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos4(hair,-180); y4=.5h; lft x4r=hround .75u; %left bulge
+ pos6(hair,-90); rt x6l=hround(w-.75u); %bottom right
+ top y3r=h+oo; x3+.5stem=rt x6l; pos3(stem,90); %top right
+ pos5(stem,-90); bot y5r=-o; x5=.5w; %low pt
+% bot y6r= top y5l;
+ bot y6 = 0; % The rise y5-y6 must be very slight.
+ % In some hands, it is even a drop.
+ filldraw double_circ_stroke %bowl
+ z6e...z5e{left}...z4e{up}...z3e{right};
+enddef;
+
+cmchar "Lowercase lunate sigma";
+beginchar(cigmalunate,dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/digamma4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/digamma4.mf
new file mode 100644
index 00000000000..52f6ef979b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/digamma4.mf
@@ -0,0 +1,28 @@
+def dims = 7.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+% composed of a modified pi-bar and the tail of eta
+
+def gen_letter=
+ pickup fine.nib;
+ pos3(vstem,-90); rt x3=hround(w-.75u); top y3l=x_height; %top right
+ pos2(vstem,-90); y2=y3; x2=1/3w; %top left
+ x1-.5hair=hround1.75u; y1-.5hair=4/3[top y2l,bot y2r]; %tip of bar
+ numeric slope; slope=angle((z2-z1)yscaled 2); pos1(hair,slope-90);
+ forsuffixes e=l,r: z1'e=(z2e-z1e)yscaled 2; endfor
+ filldraw circ_stroke z1e{z1'e}...z2e---z3e; %bar
+ pos4(hair,0); z4=z1; %attachment
+ x5=x6; x6=x1-.5u;
+ y5=y6; bot y6l-.5stem=-d-o; pos5(stem,0); pos6(stem,90);
+ pos7(vstem,-90); rt x7=hround(w-.85u); top y7l=bar_height;
+ pos8(vstem,angle(z5-z1)); top y8l=bar_height; z8 = whatever[z5,z1];
+ filldraw circ_stroke z5e...z1e;
+ filldraw stroke z8e--z7e;
+enddef;
+
+cmchar "Lowercase digamma";
+beginchar(digamma,dims);
+this_letter; penlabels(1,2,3,5,7,8); endchar;
+
+picture savedpicture; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/ebary4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/ebary4.mf
new file mode 100644
index 00000000000..05e5598eace
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/ebary4.mf
@@ -0,0 +1,81 @@
+savedpicture = barypicture; % it was cleared at the end of e.mf
+%% but the dimensions set in e.mf remain.
+
+% The acute and grave accents are lifted above the normal position and
+% are also shortened slightly, with the reduction at the bottom of the
+% accent. This is because epsilon has a much larger overshoot than
+% other rounded characters, and the accent tends to bleed into it.
+
+
+def eps_grave(expr center) =
+if serifs: x22-x21=1/4w; x21-.5stem=hround(center-2/3(x22-x21)-.5stem);
+else: lft x21l=hround (1/4w-.5stem); rt x22r=hround(center+.25u+.5vair); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=saved_h + .75vair;
+ x_height = saved_x_height + vair;
+generate_grave; penlabels(21,22);
+ endgroup;
+enddef;
+
+def eps_acute(expr center) =
+if serifs: x21-x22=1/4w; x21+.5stem=hround(center+2/3(x21-x22)+.5stem);
+else: rt x21r=hround (3/4w+.5stem); lft x22l=hround(center-.25u-.5vair); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h:=saved_h+.75vair;
+ x_height = saved_x_height + vair;
+generate_grave; penlabels(21,22);
+ endgroup;
+enddef;
+
+cmchar "Lowercase epsilon with adjusted grave";
+beginchar(e_bary,width#,acc_ht#,0);
+this_letter; eps_grave(x_baryctr);
+endchar;
+
+cmchar "Lowercase epsilon with adjusted acute";
+beginchar(e_oxy,width#,acc_ht#,0);
+this_letter; eps_acute(x_baryctr); endchar;
+
+%cmchar "Lowercase epsilon with rough breathing and acute";
+%beginchar(e_asproxy,width#,acc_ht#,0);
+%this_letter; spirit_acute(x_baryctr)<; endchar;
+
+%cmchar "Lowercase epsilon with smooth breathing and acute";
+%beginchar(e_lenoxy,width#,acc_ht#,0);
+%this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with rough breathing and grave";
+beginchar(e_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and grave";
+beginchar(e_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with circumflex (Attic)";
+beginchar(e_peri,width#,acc_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase epsilon with rough breathing and circumflex (Attic)";
+beginchar(e_asprperi,width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and circumflex (Attic)";
+beginchar(e_lenperi,width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/fibb84.mf b/Master/texmf-dist/fonts/source/public/ibygrk/fibb84.mf
new file mode 100644
index 00000000000..f4eae460d54
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/fibb84.mf
@@ -0,0 +1,83 @@
+% Ibycus4 Greek Bold (Levy Bold) 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4B"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders %was 70
+acc_ht#:=250/36pt#;
+circ_ht#:=230/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=13/36pt#; % lowercase hairline breadth (was 17)
+stem#:=38/36pt#; % lowercase stem breadth (was 41)
+curve#:=41/36pt#; % lowercase curve breadth (was 46)
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=41/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/fibb848.mf b/Master/texmf-dist/fonts/source/public/ibygrk/fibb848.mf
new file mode 100644
index 00000000000..8dbfd1327c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/fibb848.mf
@@ -0,0 +1,83 @@
+% Ibycus4 Greek Bold (Levy Bold) 8 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4B"; font_size 8pt#;
+
+u#:=17.6/36pt#; % unit width
+width_adj#:=9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216.0/36pt#; % height of tallest characters
+asc_height#:=200.0/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128.0/36pt#; % height of lowercase without ascenders
+math_axis#:=72.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=68.0/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56.0/36pt#; % depth of comma below baseline
+desc_depth#:=54.0/36pt#; % depth of lowercase descenders
+acc_ht#:=200.0/36pt#;
+circ_ht#:=184.0/36pt#;
+Circ_ht#:=200.0/36pt#;
+iota_dp#:=57.6/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=104.0/36pt#; % diameter of rounded corners
+fine#:=70.0/36pt#; % diameter of sharply rounded corners
+thin_join#:=70.0/36pt#; % width of extrafine details
+hair#:=11.7/36pt#; % lowercase hairline breadth
+stem#:=34.2/36pt#; % lowercase stem breadth
+curve#:=32.8/36pt#; % lowercase curve breadth
+ess#:=34.2/36pt#; % breadth in middle of lowercase s
+flare#:=36.9/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=44.8/36pt#; % diameter of dots
+cap_hair#:=17.1/36pt#; % uppercase hairline breadth
+cap_stem#:=40.8/36pt#; % uppercase stem breadth
+cap_curve#:=44.0/36pt#; % uppercase curve breadth
+cap_ess#:=42.4/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8.0/36pt#; % vertical distance from serif base to tangent
+jut#:=20.0/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31.2/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=56.0/36pt#; % vertical protrusion of beak serifs
+vair#:=8.8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=15.3/36pt#; % lowercase bar thickness
+slab#:=15.3/36pt#; % serif and arm thickness
+cap_bar#:=15.3/36pt#; % uppercase bar thickness
+cap_band#:=15.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2.0/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3.2/36pt#; % amount of overshoot for curves
+apex_o#:=2.4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/fibb849.mf b/Master/texmf-dist/fonts/source/public/ibygrk/fibb849.mf
new file mode 100644
index 00000000000..82a47a1ad71
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/fibb849.mf
@@ -0,0 +1,83 @@
+% Ibycus4 Greek Bold (Levy Bold) 9 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4B"; font_size 9pt#;
+
+u#:=19.8/36pt#; % unit width
+width_adj#:=10.0/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243.0/36pt#; % height of tallest characters
+asc_height#:=225.0/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144.0/36pt#; % height of lowercase without ascenders
+math_axis#:=81.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=76.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63.0/36pt#; % depth of comma below baseline
+desc_depth#:=72.0/36pt#; % depth of lowercase descenders %was 70
+acc_ht#:=225.0/36pt#;
+circ_ht#:=207.0/36pt#;
+Circ_ht#:=225.0/36pt#;
+iota_dp#:=64.8/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=58.5/36pt#; % diameter of rounded corners
+fine#:=40.0/36pt#; % diameter of sharply rounded corners
+thin_join#:=40.0/36pt#; % width of extrafine details
+hair#:=12.3/36pt#; % lowercase hairline breadth (was 17)
+stem#:=36.1/36pt#; % lowercase stem breadth (was 41)
+curve#:=36.9/36pt#; % lowercase curve breadth (was 46)
+ess#:=36.1/36pt#; % breadth in middle of lowercase s
+flare#:=39.0/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50.4/36pt#; % diameter of dots
+cap_hair#:=18.1/36pt#; % uppercase hairline breadth
+cap_stem#:=45.9/36pt#; % uppercase stem breadth
+cap_curve#:=49.5/36pt#; % uppercase curve breadth
+cap_ess#:=47.7/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9.0/36pt#; % vertical distance from serif base to tangent
+jut#:=22.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35.1/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=63.0/36pt#; % vertical protrusion of beak serifs
+vair#:=9.9/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=16.1/36pt#; % lowercase bar thickness
+slab#:=16.1/36pt#; % serif and arm thickness
+cap_bar#:=16.1/36pt#; % uppercase bar thickness
+cap_band#:=16.1/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2.0/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3.6/36pt#; % amount of overshoot for curves
+apex_o#:=2.7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/fibo84.mf b/Master/texmf-dist/fonts/source/public/ibygrk/fibo84.mf
new file mode 100644
index 00000000000..b6d6861c1c1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/fibo84.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek Obliqued (Levy Regular) 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4SL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=235/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=270/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=110/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/fibo848.mf b/Master/texmf-dist/fonts/source/public/ibygrk/fibo848.mf
new file mode 100644
index 00000000000..2366f06d0fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/fibo848.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek Obliqued (Levy Regular) 8 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4SL"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+acc_ht#:=210/36pt#;
+circ_ht#:=188/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=216/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=72/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=23/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=6.6/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/fibo849.mf b/Master/texmf-dist/fonts/source/public/ibygrk/fibo849.mf
new file mode 100644
index 00000000000..1732b895a62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/fibo849.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek Obliqued (Levy Regular) 9 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4SL"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=243.0/36pt#; % height of tallest characters
+asc_height#:=225.0/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=75.8/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63.0/36pt#; % depth of comma below baseline
+desc_depth#:=73.0/36pt#; % depth of lowercase descenders
+acc_ht#:=230.0/36pt#;
+circ_ht#:=211.5/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=243.0/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=91/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=25.5/36pt#; % lowercase stem breadth
+curve#:=27.8/36pt#; % lowercase curve breadth
+ess#:=25.0/36pt#; % breadth in middle of lowercase s
+flare#:=25.0/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35.0/36pt#; % diameter of dots
+cap_hair#:=10.3/36pt#; % uppercase hairline breadth
+cap_stem#:=29.3/36pt#; % uppercase stem breadth
+cap_curve#:=33.5/36pt#; % uppercase curve breadth
+cap_ess#:=31.0/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18.0/36pt#; % vertical distance from serif base to tangent
+jut#:=25.0/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33.0/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63.0/36pt#; % vertical protrusion of beak serifs
+vair#:=7.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=9.00pt#; % maximum breadth above or below notches
+bar#:=10.3/36pt#; % lowercase bar thickness
+slab#:=10.3/36pt#; % serif and arm thickness
+cap_bar#:=10.3/36pt#; % uppercase bar thickness
+cap_band#:=10.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.0/36pt#; % amount of overshoot for curves
+apex_o#:=7.0/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.20; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/fibr84.mf b/Master/texmf-dist/fonts/source/public/ibygrk/fibr84.mf
new file mode 100644
index 00000000000..cc64c8638ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/fibr84.mf
@@ -0,0 +1,89 @@
+% Ibycus 4 Greek (Levy Regular) 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4R"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=235/36pt#; % give the circumflex a lot more roll
+Circ_ht#:=270/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=110/36pt#; % get the hook of iota subscript right on the
+ % bottom shoulder.
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/fibr848.mf b/Master/texmf-dist/fonts/source/public/ibygrk/fibr848.mf
new file mode 100644
index 00000000000..a685e963624
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/fibr848.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek (Levy Regular) 8 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4R"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+acc_ht#:=210/36pt#;
+circ_ht#:=188/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=216/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=72/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=23/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=6.6/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/fibr849.mf b/Master/texmf-dist/fonts/source/public/ibygrk/fibr849.mf
new file mode 100644
index 00000000000..13da345708e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/fibr849.mf
@@ -0,0 +1,88 @@
+% Ibycus 4 Greek (Levy Regular) 9 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="IBY4R"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+% circ_ht is raised to allow more roll to circumflex
+% iota subscript is brought down to the bottom shoulder.
+% more or less proportions of the OCT Porson hand. Asked
+% for by editor of Classical Antiquity (U.C.Berkeley)
+
+body_height#:=243.0/36pt#; % height of tallest characters
+asc_height#:=225.0/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=75.8/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63.0/36pt#; % depth of comma below baseline
+desc_depth#:=73.0/36pt#; % depth of lowercase descenders
+acc_ht#:=230.0/36pt#;
+circ_ht#:=211.5/36pt#; % x_height# + 16/19(asc_height#-x_height#)
+Circ_ht#:=243.0/36pt#; % move circumflex over breathing up to top shoulder
+iota_dp#:=91/36pt#; % right on the bottom shoulder
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=25.5/36pt#; % lowercase stem breadth
+curve#:=27.8/36pt#; % lowercase curve breadth
+ess#:=25.0/36pt#; % breadth in middle of lowercase s
+flare#:=25.0/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35.0/36pt#; % diameter of dots
+cap_hair#:=10.3/36pt#; % uppercase hairline breadth
+cap_stem#:=29.3/36pt#; % uppercase stem breadth
+cap_curve#:=33.5/36pt#; % uppercase curve breadth
+cap_ess#:=31.0/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18.0/36pt#; % vertical distance from serif base to tangent
+jut#:=25.0/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33.0/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63.0/36pt#; % vertical protrusion of beak serifs
+vair#:=7.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=9.00pt#; % maximum breadth above or below notches
+bar#:=10.3/36pt#; % lowercase bar thickness
+slab#:=10.3/36pt#; % serif and arm thickness
+cap_bar#:=10.3/36pt#; % uppercase bar thickness
+cap_band#:=10.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.0/36pt#; % amount of overshoot for curves
+apex_o#:=7.0/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.20; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate ibycus4;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/hbary4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/hbary4.mf
new file mode 100644
index 00000000000..f18b66a3e80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/hbary4.mf
@@ -0,0 +1,25 @@
+savedpicture = barypicture; % it was cleared at the end of h.mf
+%% but the dimensions set in h.mf remain.
+
+% The opened out accent clusters make an adjustment of "center"
+% necessary.
+
+cmchar "recentered Lowercase eta with rough breathing and acute";
+beginchar(h_asproxy,width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr -.75u)<; endchar;
+
+cmchar "recentered Lowercase eta with smooth breathing and acute";
+beginchar(h_lenoxy,width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr -.75u)>; endchar;
+
+cmchar "Lowercase eta with rough breathing and grave";
+beginchar(h_asprbary,width#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr -.75u)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and grave";
+beginchar(h_lenbary,width#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr -.75u)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/ibary4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/ibary4.mf
new file mode 100644
index 00000000000..1bcead5dd7c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/ibary4.mf
@@ -0,0 +1,15 @@
+savedpicture = barypicture; % it was cleared at the end of i.mf
+%% but the dimensions set in i.mf remain.
+
+cmchar "Lowercase iota with rough breathing and grave";
+beginchar(i_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing and grave";
+beginchar(i_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
+
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/ibyacc4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/ibyacc4.mf
new file mode 100644
index 00000000000..a8acfae64d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/ibyacc4.mf
@@ -0,0 +1,608 @@
+% Make sure the macros we want to replace are loaded
+if unknown gen_acc : readfrom("gen_acc") fi
+numeric doing_u; doing_u=0; % flag to position diaeresis
+
+def rough(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,180); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,180); pos@1(comma_join_,180);
+ pos@2(comma_bot_,180); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; lft x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,180); pos@3(vair,-90);
+ z@1r=z$r; y@1l:=y$; lft x@2r=hround(x$-.5depth+.5shear);
+ x@3+.5vair=x$+.5dot_size+shear;
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ % position a vertical path through the left side of the bulb
+ x@1'=x@1-.5dot_size;
+ % At the intersection of that path with SL's tail, get the direction
+ pair d@@; d@@=( direction
+ (xpart( (z@2{down}...z@3) intersectiontimes ((x@1',0){up}--(x@1',y@1))))
+ of (z@2{down}...z@3));
+ % Tilt a pen at a right angle to that direction
+ pos@3'(vair,angle(d@@)-90);
+ % Place it at the intersection. This will be the new end of the tail.
+ z@3'=directionpoint d@@ of(z@2{down}...z@3);
+ y_:=ypart((z@1{left}...z@2{down}...z@3)
+ intersectiontimes (z$l{left}..{right}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{right}..subpath (0,y_) of (z$l{left}..{right}z$r)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{down}...{d@@}z@3'e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+def smooth(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-90);
+ z@1r=z$r; y@1l:=y$; rt x@2r=hround(x$+.5depth+.5shear);
+ x@3-.5vair=hround(x$-.5dot_size+shear);
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ path pp; pp = (z@2{down}...z@3);
+ % position a vertical path through the right side of the bulb
+ x@1'=x@1+.5dot_size;
+ % At the intersection of that path with SL's tail, get the direction
+ pair d@@; d@@=( direction
+ (xpart( (z@2{down}...z@3) intersectiontimes ((x@1',0){up}--(x@1',y@1))))
+ of (z@2{down}...z@3));
+ % Tilt a pen at a right angle to that direction
+ pos@3'(vair,angle(d@@)+90);
+ % Place it at the intersection. This will be the new end of the tail.
+ z@3'=directionpoint d@@ of(z@2{down}...z@3);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ filldraw stroke z@1e{right}...z@2e{down}...{d@@}z@3'e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+
+% Improve spacing with sprit plus accent groups.
+% The original spacing was governed by the placement of the accent.
+% One of the variables set the position of the accent bottom .5stem
+% to the right of center (plus other adjustments). By increasing this
+% to 1.2stem, we get the accent still within the set-width, but far enough
+% right that the breathings (which are placed relative to the bottom
+% of the accent) can be pulled to the left by .7stem.
+% This ensures that there will be more than a stem width between
+% any element of breathing and any element of either acute or
+% grave.
+
+vardef spirit_acute(expr center) text type =
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+if serifs: x21-x22=1/6w;
+ x21+.5stem=hround(center+.25u+.5vair+(x21-x22)+1.2stem); %lft x22r ~ center+.25u
+else: rt x21r=hround (4/5w+.5stem); lft x22l=hround(center+.25u); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=saved_h + .75vair;
+ x_height = saved_x_height + .3vair;
+generate_grave; penlabels(21,22);
+ endgroup;
+if 1type0: %spirit and accent separated by .1u (rough) or .25u (smooth)
+ x31=hround(lft x22 if serifs:r-.5sp_height else:l-.5dot_diam fi -.7stem -.25u);
+else: x31+.5dot_diam=hround(lft x22 if serifs:r else: l fi -.7stem-.1u); fi
+y31+.5dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+enddef;
+
+
+vardef spirit_grave(expr center) text type =
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+% x22 is set to the right of x21 by 1/6w. The tilt is only 1/6w here.
+% x21 is set out to the right of the midpoint by the sum of .5stem and
+% .25u. Let's try a full stem width
+%if serifs: x22-x21=1/6w; x21-.5stem=hround(center+.25u);
+if serifs: x22-x21=1/6w; x21-1.2stem=hround(center+.25u);
+else: rt x22r=hround (4/5w+.5stem); lft x21l=hround(center+.25u); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=saved_h + .75vair;
+ x_height = saved_x_height + .3vair;
+generate_grave; penlabels(21,22);
+ endgroup;
+% In the original, the following spacing adjustments tracked |spirit_acute|.
+% This was wrong way round. When the accent is barytone, lft x21l is nowhere
+% near the left edge of the picture, and the crowding effect is the reverse
+% of what it is with the oxytone accent. Added an extra .15u to make
+% up for the first problem, and an extra .45u to relieve the crowding
+% against the smooth breathing. But the more general widening set up
+% above is more significant. PAM, 10 May, 1997
+% remember that "type" is a macro replaced by either < or >
+if 1type0: %spirit and accent separated by .65u (rough) or .85u (smooth)
+ x31=hround(lft x21l-.5 if serifs:sp_height else:dot_diam fi -.7stem -.45u);
+else: x31+.5dot_diam=hround(lft x21l - .7stem -.65u); fi
+y31+.5dot_diam=h;
+%y31+dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+enddef;
+
+% Reshape the iota subscript, but only for resolutions above 600
+% Thin it out so that it can have a slight hook.
+% Lengthen both the simple and the refined form, so that the
+% simple form drops as low as the tail of eta, and the refined form
+% drops to the bottom of the shoulder. Since we only make it up
+% three times, we do not save the picture, but this means that
+% all the necessary values must be known when the three iota
+% subscript characters are written. The iota subscript under
+% eta will be made shorter to open a larger space under the
+% right vertical stroke of eta.
+
+def iota_sub(expr pos_stem) =
+if known pic.iota:
+ addto currentpicture also pic.iota shifted (hround(pos_stem),0);
+else:
+ picture temp_picture; temp_picture=currentpicture; clearit;
+ pickup fine.nib;
+ x51=0; pos51(stem,180); top y51=vround(-o-2separator);
+ x52=x51; pos52(stem,180);
+ % Use the original simple subscript for lower resolutions.
+ if ( ((pixels_per_inch / mag) < 599) or (pixels_per_inch < 420) ) :
+ bot y52=-desc_depth;
+ filldraw circ_stroke z52e--z51e;
+ else :
+ % longer iota subscript with narrower tapering stem and slight hook
+ bot y52=-iota_dp;
+ pos51'(.6[hair,stem],180); pos51''(.3[hair,stem],180);
+ pos52'(.3[hair,stem],270); pos53'(.2[hair,stem],0);
+ x51'r = x51''r = x51r;
+ bot y52'r = -iota_dp; x53'r = x51l+hair; x52' = 1/2[x51',x53'];
+ y51' = y51-separator; top y53' = 5/6[y51,y52];
+ y51'' = -desc_depth; % y51'' = y53';
+ filldraw double_circ_stroke z51'e--z51''e..z52'e..z53'e;
+ fi;
+% Need to make sure that this is drawn each time (it's only four times).
+%%%%% if not working_hard : picture pic.iota; pic.iota=currentpicture; fi
+ currentpicture:=currentpicture shifted (hround(pos_stem),0);
+ addto currentpicture also temp_picture;
+fi;
+enddef;
+
+% Rewrite the width and height management of circumflex
+% Put limit on horizontal spread, and give the plain
+% circumflex more roll (depends on parameter circ_ht# in parameter file.)
+% change the shape to supply points at the ends and a thickening at the
+% center. This is more traditional and gives more shape to the
+% squeezed variant. The ends are set to vair, and the middle to
+% mid_width + vair. (Silvio Levy's mid_width is actually quite small and
+% is used at the ends as well as the mid-point. I use it at the intermediate
+% points. The result harmonizes well with other proportions.
+
+def generate_circumflex(expr center,squeeze)=
+numeric mid_width; mid_width=if squeeze:.1 else: .5 fi [vair,stem];
+if serifs:
+%pickup fine.nib; pos21(hround(mid_width-eps),180); pos22(vair,90);
+% pos23(mid_width,90); pos24(vair,90); pos25(hround(mid_width-eps),180);
+pickup fine.nib; pos21(hround(vair-eps),180); pos22(mid_width,90);
+ pos23(mid_width+vair,90); pos24(mid_width,90); pos25(hround(vair-eps),180);
+ % limit spread of circumflex while retaining scaling for narrow characters.
+ lft x21r=w-rt x25l=hround (center-if(w<9u):w/3 else:3u fi);
+ x22-x21=x23-x22=x24-x23=x25-x24;
+ % The "squeezed" circumflex tops out at body_height.
+ bot y21=bot y24l=vround(if squeeze:.75else:.6fi[x_height,h]-vair);
+ top y22r=top y25=h; y23=.5[y22,y24];
+ filldraw stroke z21e{up}...z22e{right}..z23e..{right}z24e...{up}z25e; % stroke
+else:
+ pos21(vair,-180); pos23(vair,0); y21=y23;
+ lft x21r=hround(center-w/3); rt x23r=hround(center+w/3);
+ bot y23=vround max(x_height+o+separator,
+ if squeeze: 2/3 else: 1/3 fi [x_height,h]-.5mid_width);
+ x22=center; pos22(mid_width,90); top y22r=h;
+ filldraw stroke z21e{up}...z22e...{down}z23e;
+fi
+enddef;
+
+% The spirit_circumflex height ( Circ_ht#) has been raised
+% to give more room to the breathing under it
+% Also rewrite the position of x31 below
+
+vardef spirit_circumflex(expr center) text type=
+generate_circumflex(center,true); %variable `squeeze'
+numeric sp_bottom, sp_height, sp_top, box_top;
+box_top=bot if serifs: y21l else: y22l fi;
+sp_top=sp_bottom+sp_height=vround(.15[box_top,x_height]);
+sp_top+sp_bottom=box_top+x_height;
+numeric dot_diam#; dot_diam# = 5/8dot_size#;
+define_whole_blacker_pixels(dot_diam);
+pickup fine.nib;
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height-eps)));
+x31 if1type0:+.5dot_diam fi=hround(center);
+% The code that was here was equivalent to x31=hround(center);
+% By shifting x31 leftward only for the smooth breathing, we move the
+% "optical center" of the smooth breathing to about where
+% the "optical center" of the rough breathing is. This relieves
+% the crowding under the downcurve of the circumflex.
+y31+.5dot_diam=vround(sp_top);
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+penlabels(31);
+enddef;
+
+% Spread out the accented diareses; pull acute a bit to the left
+% and shove grave a bit to the right (1/8u in both instances).
+% Raise the accent slightly, and shorten it by changing
+% h and x_height within a save group. 10 May, 1997.
+% The angle of the accent is governed by the width of iota, since
+% this gives the cleanest association of accent and diaeresis.
+% The older calculation depended on the width of the underlying character,
+% which flattens out the angle and makes the accent crowd the dot it
+% is closest to.
+% An adjustment is required to raise the dots away from the tips
+% of the upsilon. Once they are spaced out, they bleed into the
+% character. This undoes much of the effect of the raising of
+% the accent mentioned above, but since prau+ is about the only
+% even slightly common root with a upsilon diaeresis, this does not
+% too much matter.
+
+vardef diaeresis_acute(expr center)=
+ if serifs: x21-x22=1.25u; x21+.5stem=hround(center+5/6(x21-x22)+.5stem-1/8u);
+ else: rt x21r=hround (3.75u+.5stem); lft x22l=hround(center-.5vair); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=Circ_ht;
+ x_height = saved_x_height + 1.5(h - saved_h);
+ generate_grave; penlabels(21,22);
+ endgroup;
+ generate_diaeresis(center,.9dot_size,2.25dot_size,
+ if doing_u > 0: .35 else : .5 fi [h,x_height],x_height+separator);
+enddef;
+
+vardef diaeresis_grave(expr center)=
+ if serifs: x22-x21=1.25u; x21-.5stem=hround(center-5/6(x22-x21)-.5stem+1/8u);
+ else: lft x21l=hround (1.25u-.5stem); rt x22r=hround(center+.5vair); fi
+ begingroup;
+ numeric saved_h;
+ numeric saved_x_height;
+ saved_x_height = x_height;
+ saved_h=h;
+ save h;
+ save x_height;
+ h=Circ_ht;
+ x_height = saved_x_height + 1.5(h - saved_h);
+ generate_grave; penlabels(21,22);
+ endgroup;
+ generate_diaeresis(center,.9dot_size,2.25dot_size,
+ if doing_u > 0: .35 else : .5 fi [h,x_height],x_height+separator);
+enddef;
+
+vardef generate_underdot(expr center,base)=
+ pickup tiny.nib;
+ pos31(dot_diam,0); pos32(dot_diam,90);
+ x31l=hround(center+(x31l-x31)); x31=x32;
+ y32l=vround(base); y31=y32; dot(31,32);
+ penlabels(31,32);
+enddef;
+
+% Set up remapping of Grave and Acute, Asper and Lenis.
+% This allows a more natural setting of single quotes, apostrophe
+% and angle brackets.
+% Move two accents out of the way of Ibycus
+% Xi and digamma. Correct height of "Smooth breathing
+% with grave" and "Rough breathing with circumflex"
+% composites.
+% Slight redesign of freestanding "Iota subscript".
+% Reposition Breve and Macron, but these will usually
+% be got from the prosody font anyway.
+%
+def selectaccent expr t =
+ currenttitle:= t;
+ if t = "Grave accent" :
+ code_offset := bary_tone - ASCII"`" ; let next_ = use_it_
+ elseif t = "Acute accent" :
+ code_offset := oxy_tone - ASCII"'" ; let next_ = use_it_
+ elseif t = "Rough breathing" : let next_ = lose_it_
+ elseif t = "Smooth breathing" : let next_ = lose_it_
+ elseif t = "Rough breathing with acute" : let next_ = lose_it_
+ elseif t = "Rough breathing with grave" : let next_ = lose_it_
+ elseif t = "Rough breathing with circumflex" : let next_ = lose_it_
+ elseif t = "Smooth breathing with acute" : let next_ = lose_it_
+ elseif t = "Smooth breathing with grave" : let next_ = lose_it_
+ elseif t = "Smooth breathing and circumflex" : let next_ = lose_it_
+ elseif t = "Diaeresis with circumflex" : let next_ = lose_it_
+ elseif t = "Iota subscript" : let next_ = lose_it_
+ elseif t = "Breve accent" :
+ code_offset := breve - oct"036" ; let next_ = use_it_
+ elseif t = "Macron (bar) accent" :
+ code_offset := longum - oct"037"; let next_ = use_it_
+ else: code_offset := 0 ; let next_ = use_it_ fi; next_ enddef;
+
+def selectaspirate expr t =
+ currenttitle:= t;
+ if t = "Italic letter h" :
+ code_offset := aspirate - ASCII"h" ; let next_ = use_it_
+ else: let next_ = lose_it_ fi; next_ enddef;
+
+let cmchar = selectaspirate;
+
+input itall
+
+code_offset:=0;
+let cmchar = relax;
+
+% Use adjust fit to kern the accents that go with
+% uppercase out a bit to the left so that accented uppercase does not
+% take more than its proper letterspace. Should have been applied
+% to trailing side bearing too, but there is too much water under
+% the bridge now. Silvio Levy's accents have no
+% adjust_fit, and a character with no adjust_fit picks up
+% the values of the previous character.
+
+cmchar "Rough breathing";
+beginchar(asper_glyph,9u#,acc_ht#,0);
+adjust_fit(-4u#,0);
+spirit(.5w)<;
+endchar;
+
+cmchar "Smooth breathing";
+beginchar(lenis_glyph,9u#,acc_ht#,0);
+adjust_fit(-5u#,0);
+spirit(.5w)>;
+endchar;
+
+cmchar "Rough breathing with acute";
+beginchar(asper_oxy,9u#,acc_ht#,0);
+adjust_fit(-3u#,0);
+spirit_acute(.5w)<;
+endchar;
+
+cmchar "Rough breathing with grave";
+beginchar(asper_bary,9u#,acc_ht#,0);
+adjust_fit(-3u#,0);
+spirit_grave(.5w)<;
+endchar;
+
+% Do asper_perispomenon with corrected heights.
+cmchar "Rough breathing with circumflex";
+beginchar(asper_peri,9u#,Circ_ht#,0);
+adjust_fit(-3u#,0);
+spirit_circumflex(.5w)<;
+endchar;
+
+cmchar "Smooth breathing with acute";
+beginchar(lenis_oxy,9u#,acc_ht#,0);
+adjust_fit(-3u#,0);
+spirit_acute(.5w)>;
+endchar;
+
+% Do lenis_barytone with corrected height.
+cmchar "Smooth breathing with grave";
+beginchar(lenis_bary,9u#,acc_ht#,0);
+adjust_fit(-3u#,0);
+spirit_grave(.5w)>;
+endchar;
+
+cmchar "Smooth breathing and circumflex";
+beginchar(lenis_peri,9u#,Circ_ht#,0);
+adjust_fit(-3u#,0);
+spirit_circumflex(.5w)>;
+endchar;
+
+% Provide an alternative for the depth of iota subscript.
+
+cmchar "Iota subscript";
+beginchar("|",9u#,0,
+ if ( ((pixels_per_inch / mag) < 599) or (pixels_per_inch < 420)) :
+ desc_depth#
+ else :
+ iota_dp#
+ fi );
+adjust_fit(0,0); % Don't omit this---see note following.
+iota_sub(.5w);
+endchar;
+
+% The adjust_fit macro really ought to be used with all characters,
+% because if it isn't, the chardx value (pixel displacement in the
+% gf file) will not be recalculated, but will be picked up from
+% the last character that did have an adjust_fit line. Here, I
+% leave the sloppy side-effect in place because I know I want
+% the few affected accents to have the same 9u width.
+%
+
+let cmchar = selectaccent;
+
+readfrom("graccent");
+
+code_offset:=0;
+let cmchar = relax;
+
+
+% Zero-width space
+% Takes the place of "Diaeresis with circumflex", which cannot occur.
+% iota and upsilon only affected by diaeresis when short.
+% This is useful for deligaturing sigma. with the "s|" digraph.
+% Besides, it can often help to have a zero-width character available.
+% But you can't draw the box so proofing and displaying must be off.
+%
+% Adjust_fit has to be used to get a true zero-width. A curious side-effect
+% of setting the character width to eps is that the u value is recalculated
+% to a colossal negative value. It is not worth the trouble to discover
+% why, since a saved u value will obviate the errors and oversized
+% shift values that happen with the recalculated u. The effect noted here
+% is absent from proof mode calculations. It is only a problem when
+% usable rasters are being laid down.
+%
+begingroup;
+numeric saved_u; saved_u:=u;
+save u;
+save proofing; proofing:=0;
+save displaying; displaying:=0;
+
+cmchar "Zero-width Space";
+beginchar(null_space, eps,0,0); % The adjust-fit calculation
+adjust_fit(-eps,0); % does a division, so w must be > 0.
+endchar; % canceling it out with "-eps" is
+ % unnecessary, but it feels better.
+
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+
+
+beginchar(doti,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-2.5saved_u, -d);
+endchar;
+
+beginchar(dotI,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-3.25saved_u, -d);
+endchar;
+
+beginchar(dote,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-3.75saved_u, -d);
+endchar;
+
+beginchar(dotbt,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-4saved_u, -d);
+endchar;
+
+beginchar(dotJdlmnpqu,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-4.5saved_u, -d);
+endchar;
+
+beginchar(dotkos,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.25saved_u, -d);
+endchar;
+
+beginchar(dotGZ,eps,0,desc_depth#); % Also upper case Koppa
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.5saved_u, -d);
+endchar;
+
+beginchar(dotchjz,eps,0,desc_depth# + dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.5saved_u, -d);
+endchar;
+
+beginchar(dotCEVaw,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-6saved_u, -d);
+endchar;
+
+beginchar(dotBFLNPRSTW,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-6.5saved_u, -d);
+endchar;
+
+beginchar(dotH,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-6.75saved_u, -d);
+endchar;
+
+beginchar(dotAOQUXY,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-7.25saved_u, -d);
+endchar;
+
+beginchar(dotDK,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-7.5saved_u, -d);
+endchar;
+
+beginchar(dotM,eps,0,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-8.75saved_u, -d);
+endchar;
+
+beginchar(dotgx,eps,0,desc_depth# + 1.5dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.5saved_u, -d);
+endchar;
+
+beginchar(dotr,eps,0,desc_depth# + 1.5dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-4.5saved_u, -d);
+endchar;
+
+beginchar(dotfy,eps,0,desc_depth# + 2dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5.75saved_u, -d);
+endchar;
+
+beginchar(dotkoppa,eps,0,desc_depth# + 2dot_diam#);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(-eps,0);
+generate_underdot(-5saved_u, -d);
+endchar;
+
+% The three positions for iota subscript
+% Equivalent to Times Ten Greek's /iotasubscripta etc., except that these
+% are designed as postpositives kerned strongly to the left. Setwidth 0
+% but I am not sure that the type1 version can get away with that
+
+% /iotasubscripta
+beginchar(a_isub,eps,0,iota_dp#);
+adjust_fit(-eps,0);
+iota_sub(-5saved_u);
+endchar;
+
+% The top position of iota subscript under eta is dropped to
+% provide better spacing between the letter and the subscript.
+%
+% /iotasubscripte
+beginchar(h_isub,eps,0,iota_dp#);
+adjust_fit(-eps,0);
+begingroup;
+numeric saved_o;
+saved_o = o;
+save o;
+o = 3saved_o;
+iota_sub(-6.85saved_u);
+endgroup;
+endchar;
+
+% /iotasubscripto
+beginchar(w_isub,eps,0,iota_dp#);
+adjust_fit(-eps,0);
+iota_sub(-6saved_u);
+endchar;
+
+endgroup;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/ibycus4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/ibycus4.mf
new file mode 100644
index 00000000000..1261eee1f09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/ibycus4.mf
@@ -0,0 +1,39 @@
+mode_setup;
+font_setup;
+
+font_coding_scheme:="Ibycus4 /based on TLG/";
+input ibycus4.map; % File which can be read by both TeX and MF
+picture barypicture;
+string currenttitle;
+string subtitle;
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+% Add _ to the macro names used by iff to avoid confusion.
+def use_it_ =
+ if unknown barypicture:
+ if known savedpicture: barypicture := savedpicture; fi fi
+ enddef;
+def lose_it_ = let endchar = fi; let ; = fix_ semi_
+ if false: enddef;
+% redefine readfrom, to take advantage of path searching
+% This requires a METAFONT compiled with Karl Berry's kpathsea
+def readfrom(expr filename) =
+ scantokens ("input " & filename); enddef;
+input ibyupr4
+input ibyacc4
+input ibylwr4
+input romand
+input ibypnct4
+input ibylig4
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+input version4
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/ibylig4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/ibylig4.mf
new file mode 100644
index 00000000000..9334cd88992
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/ibylig4.mf
@@ -0,0 +1,250 @@
+% Version 4.3. 7 July, 1998. Response to a bug report. The wrong
+% angle was in the line for ligtable angleright: ">" =: guillemotright;
+% All tfm files corrected to reflect this change.
+
+% Version 4.2. 18 July, 1997. Small adjustments to the space between
+% accent clusters and Uppercase H and I. A little more space after
+% accented iota and before taller consonants.
+
+% Version 4.1. 28 April, 1996. Sevaral kerns for iota changed
+% before p t and u to avoid crowding. Medial sigma is default
+% before <> [] and other non standard symbols. (Final
+% at word end, sentence punctuation, and parentheses).
+%
+% Ligature table for ibycus4 Version 4.0 using the \bang
+% character as the postpositive indication of a dot under
+% any letter or letter-and-accent combination except for
+% iota subscript composites.
+
+% CAUTION: With this arrangement the exclamation point must
+% set with \sfcode`\!=1000 or you get very odd spacing.
+% This setting is supplied in ibycus4.tex
+
+ligtable "-": "-" =: endash; % en-dash
+ligtable endash: "-" =: emdash; % em-dash
+ligtable quotesnglleft: quotesnglleft =: quotedblleft;
+ligtable quotesnglright: quotesnglright =: quotedblright;
+% The Adobe names guillemotleft and guillemotright (\it sic})
+% are retained.
+ligtable angleleft: "<" =: guillemotleft;
+ligtable angleright: ">" =: guillemotright;
+
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of back kerning
+i#:=.5u#; ii#:=1.5u#; iii#:=2u#; % three degrees of forward kerning
+%
+% the glyphs for the breathings (spiritus) and the acute and
+% grave accents are not in the same code location as the digraph
+% input characters "'" "`" "=" ")" "(", and "`" "'" are pretty
+% well available for normal use when not immediately contiguous to
+% accentable characters. This is achieved by a change from
+% Silvio Levy's mapping to modified TLG Betacode.
+%
+ligtable "(": "(" =: ASCII"(", peri_spomenon =: asper_peri,
+ quotesnglright =: asper_oxy, quotesnglleft =: asper_bary,
+ "A" =:| asper_glyph, "E" =:| asper_glyph, "H" =:| asper_glyph,
+ "O" =:| asper_glyph, "W" =:| asper_glyph, "I" =:| asper_glyph,
+ "U" =:| asper_glyph, "R" =:| asper_glyph;
+ligtable ")": ")" =: ASCII")", peri_spomenon =: lenis_peri,
+ quotesnglright =: lenis_oxy, quotesnglleft =: lenis_bary,
+ "A" =:| lenis_glyph, "E" =:| lenis_glyph, "H" =:| lenis_glyph,
+ "O" =:| lenis_glyph, "W" =:| lenis_glyph, "I" =:| lenis_glyph,
+ "U" =:| lenis_glyph, "R" =:| lenis_glyph;
+%
+ligtable asper_glyph:
+ "A" kern -7u#, "E" kern -3u#, "H" kern -3u#, "R" kern -3u#,
+ "O" kern -3.5u#, "W" kern -2.5u#, "I" kern -3u#, "U" kern -3u#;
+ligtable lenis_glyph:
+ "A" kern -6u#, "E" kern kkk#, "H" kern kkk#, "R" kern kkk#,
+ "O" kern -2.5u#, "W" kern kkk#, "I" kern kkk#, "U" kern kkk#;
+ligtable asper_oxy: lenis_oxy:
+ "A" kern -6u#, "E" kern -1u#, "H" kern -1u#,
+ "O" kern -2.5u#, "W" kern kk#, "I" kern -1u#, "U" kern kk#;
+ligtable asper_bary: lenis_bary:
+ "A" kern -5u#, "E" kern kk#, "H" kern kk#,
+ "O" kern kkk#, "W" kern -1u#, "I" kern kkk#, "U" kern -1u#;
+ligtable asper_peri:
+ "A" kern -6.5u#, "E" kern kkk#, "H" kern kkk#, "I" kern kkk#,
+ "O" kern -3u#, "W" kern -3u#, "U" kern kkk#;
+ligtable lenis_peri:
+ "A" kern -6.5u#, "E" kern kkk#, "H" kern kkk#, "I" kern kkk#,
+ "O" kern -3u#, "W" kern -2.5u#, "U" kern kkk#;
+
+ligtable "a": quotesnglleft =: a_bary, quotesnglright =: a_oxy,
+ peri_spomenon =: a_peri, iotasubscript |=: a_isub, dubious |=: dotCEVaw,
+ "(" =: a_aspr, ")" =: a_len, "i" kern i#; % Post-positive breathings
+ligtable "h": "+" =: aspirate, quotesnglleft =: h_bary, quotesnglright =: h_oxy,
+ peri_spomenon =: h_peri, iotasubscript |=: h_isub, dubious |=: dotchjz,
+ "(" =: h_aspr, ")" =: h_len, "i" kern ii#,
+ i_bary kern ii#, i_oxy kern ii#, i_peri kern ii#,
+ i_asproxy kern ii#, i_asprbary kern ii#, i_asprperi kern ii#,
+ i_lenoxy kern ii#, i_lenbary kern ii#, i_lenperi kern ii#;
+ligtable "w": quotesnglleft =: w_bary, quotesnglright =: w_oxy,
+ peri_spomenon =: w_peri, iotasubscript |=: w_isub, dubious |=: dotCEVaw,
+ "(" =: w_aspr, ")" =: w_len, "i" kern i#, "n" kern k#;
+ligtable "e": quotesnglleft =: e_bary, quotesnglright =: e_oxy,
+ peri_spomenon =: e_peri,
+ "(" =: e_aspr, ")" =: e_len, dubious |=: dote, "i" kern i#;
+ligtable "o": quotesnglleft =: o_bary, quotesnglright =: o_oxy,
+ peri_spomenon =: o_peri,
+ "(" =: o_aspr, ")" =: o_len, dubious |=: dotkos,
+ "n" kern k#, "h" kern k#, "l" kern k#;
+ligtable "i": quotesnglleft =: i_bary, quotesnglright =: i_oxy,
+ peri_spomenon =: i_peri, dubious |=: doti,
+ "(" =: i_aspr, ")" =: i_len, dieresis =: i_diaer,
+ "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern -1u#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#;
+ligtable "u": quotesnglleft =: u_bary, quotesnglright =: u_oxy,
+ peri_spomenon =: u_peri, dubious |=: dotJdlmnpqu,
+ "(" =: u_aspr, ")" =: u_len, dieresis =: u_diaer, "i" kern i#;
+ligtable "r": "(" =: r_aspr, ")" =: r_len,
+ r_aspr: r_len: dubious |=: dotr, "i" kern i#;
+
+ligtable a_aspr: quotesnglright =: a_asproxy, quotesnglleft =: a_asprbary,
+ peri_spomenon =: a_asprperi, iotasubscript |=: a_isub, dubious |=: dotCEVaw,
+ "i" kern i#;
+ligtable h_aspr: quotesnglright =: h_asproxy, quotesnglleft =: h_asprbary,
+ peri_spomenon =: h_asprperi, iotasubscript |=: h_isub, dubious |=: dotchjz,
+ "i" kern ii#;
+ligtable w_aspr: quotesnglright =: w_asproxy, quotesnglleft =: w_asprbary,
+ peri_spomenon =: w_asprperi, iotasubscript |=: w_isub, dubious |=: dotCEVaw,
+ "n" kern k#;
+ligtable e_aspr: quotesnglright =: e_asproxy, quotesnglleft =: e_asprbary,
+ peri_spomenon =: e_asprperi, dubious |=: dote;
+ligtable o_aspr: quotesnglright =: o_asproxy, quotesnglleft =: o_asprbary,
+ peri_spomenon =: o_asprperi, dubious |=: dotkos, "n" kern k#, "h" kern k#;
+ligtable i_aspr: quotesnglright =: i_asproxy, quotesnglleft =: i_asprbary,
+ peri_spomenon =: i_asprperi, dubious |=: doti,
+ "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern -1u#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#;
+ligtable u_aspr: quotesnglright =: u_asproxy, quotesnglleft =: u_asprbary,
+ peri_spomenon =: u_asprperi, dubious |=: dotJdlmnpqu;
+
+ligtable a_len: quotesnglright =: a_lenoxy, quotesnglleft =: a_lenbary,
+ dubious |=: dotCEVaw,
+ peri_spomenon =: a_lenperi, iotasubscript |=: a_isub;
+ligtable h_len: quotesnglright =: h_lenoxy, quotesnglleft =: h_lenbary, dubious |=: dotchjz,
+ peri_spomenon =: h_lenperi, iotasubscript |=: h_isub, "i" kern ii#;
+ligtable w_len: quotesnglright =: w_lenoxy, quotesnglleft =: w_lenbary,
+ dubious |=: dotCEVaw,
+ peri_spomenon =: w_lenperi, iotasubscript |=: w_isub, "n" kern k#;
+ligtable e_len: quotesnglright =: e_lenoxy, quotesnglleft =: e_lenbary,
+ peri_spomenon =: e_lenperi, dubious |=: dote;
+ligtable o_len: quotesnglright =: o_lenoxy, quotesnglleft =: o_lenbary,
+ peri_spomenon =: o_lenperi, dubious |=: dotkos, "n" kern k#, "h" kern k#;
+ligtable i_len: quotesnglright =: i_lenoxy, quotesnglleft =: i_lenbary,
+ peri_spomenon =: i_lenperi, dubious |=: doti,
+ "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern -1u#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#;
+ligtable u_len: quotesnglright =: u_lenoxy, quotesnglleft =: u_lenbary,
+ peri_spomenon =: u_lenperi, dubious |=: dotJdlmnpqu;
+
+ligtable "K": "+" =: Koppa, dubious |=: dotDK; % Uppercase Koppa
+ligtable Koppa: dubious |=: dotGZ;
+
+% The curve of o and the hook at the top of h make kerns with
+% m desirable
+ligtable "m": dubious |=: dotJdlmnpqu,
+ "o" kern k#, o_oxy kern k#, o_bary kern k#,
+ "h" kern k#, h_oxy kern k#, h_bary kern k#, h_peri kern k#,
+ h_isub kern k#;
+
+% backward kerns for letters following accented iota
+ligtable dieresis: quotesnglright =: diaeroxy, quotesnglleft =: diaerbary;
+
+ligtable i_diaer: quotesnglright =: i_diaeroxy, quotesnglleft =: i_diaerbary;
+ligtable i_bary: dieresis=: i_diaerbary, i_oxy: dieresis=:i_diaeroxy, dubious |=: doti,
+ "c" kern k#, "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "k" kern k#, "l" kern k#, "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern -1u#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#, "y" kern k#;
+% The widely spaced accent clusters on iota need more space before many
+% consonants. Particularly lambda and ksi.
+ligtable i_peri: i_asproxy: i_asprbary: i_asprperi:
+ i_lenoxy: i_lenbary: i_lenperi: i_diaerbary: i_diaeroxy: dubious |=: doti,
+ "d" kern k#, "f" kern k#, "g" kern -1u#, "h" kern k#,
+ "n" kern kk#, "o" kern k#, "p" kern k#,
+ "q" kern k#, "s" kern k#, "t" kern k#,
+ "u" kern -1u#, "w" kern k#, "x" kern k#;
+% all needed forward kerns except for vowels, rho and sigma
+% also a back kern for dh, but only when h is unaccented.
+ligtable "k": "+" =: koppa, dubious |=: dotkos, "i" kern i#;
+ligtable "A": dubious |=: dotAOQUXY, "E": dubious |=: dotCEVaw,
+ "W": dubious |=: dotBFLNPRSTW, "i" kern i#;
+ligtable "n": "p": "q": dubious |=: dotJdlmnpqu, "t": dubious |=: dotbt,
+ "f": "y": dubious |=: dotfy, h_isub:
+ "i" kern i#;
+ligtable "d": dubious |=: dotJdlmnpqu, "i" kern i#, "h" kern k#;
+ligtable "b": dubious |=: dotbt,
+ "i" kern ii#;
+ligtable dotbt: "i" kern i#;
+
+% forward kerns for accented upsilon and epsilon
+ligtable o_oxy: o_bary: "h" kern k#, "l" kern k#, "n" kern k#,
+ o_asproxy: o_lenoxy: o_asprbary: o_lenbary: o_asprperi: o_lenperi:
+ dubious |=: dotkos;
+ligtable u_diaer: quotesnglright =: u_diaeroxy, quotesnglleft =: u_diaerbary;
+ligtable u_bary: dieresis =: u_diaerbary;
+ligtable u_oxy: dieresis =: u_diaeroxy,
+ u_asprbary: u_asproxy: u_lenoxy: u_lenbary:
+ u_peri: u_asprperi: u_lenperi:
+ u_diaeroxy: u_diaerbary: dubious |=: dotJdlmnpqu,
+ e_oxy: e_asproxy: e_lenoxy: e_bary: e_lenbary: e_asprbary:
+ e_peri: e_asprperi: e_lenperi: dubious |=: dote,
+ "i" kern i#;
+
+% iota subscripts and forward kerns for alpha, eta and omega
+ligtable a_bary: iotasubscript |=: a_isub,
+ dubious |=: dotCEVaw, "i" kern
+i#;
+% iota after simple barytone unused nught be iota adscript.
+ligtable a_oxy: a_asproxy: a_lenoxy: a_asprbary: a_peri: a_asprperi:
+ a_lenperi: a_lenbary:
+ iotasubscript |=: a_isub, dubious |=: dotCEVaw, "i" kern i#;
+
+ligtable h_bary: h_asprbary: h_oxy: h_asproxy: h_lenoxy: h_lenbary:
+ h_peri: h_asprperi: h_lenperi:
+ iotasubscript |=: h_isub, dubious |=: dotchjz, "i" kern i#;
+
+ligtable w_bary: w_asprbary: w_oxy: w_asproxy: w_lenoxy: w_lenbary:
+ w_peri: w_asprperi: w_lenperi:
+ iotasubscript |=: w_isub, dubious |=: dotCEVaw, "i" kern i#, "n" kern k#;
+
+
+ligtable "C": "+" =: Cigmalunate, Cigmalunate: dubious |=: dotCEVaw;
+ligtable "c": "+" =: cigmalunate, cigmalunate: "z": dubious |=: dotchjz;
+ligtable sigmafinal: dubious |=: dotchjz;
+
+% One ligature for (lowercase only) sampi, one kern with lowercase iota
+% and all practicable arrangements for final sigma.
+% It is assumed that sigma before a punctuation mark such as . , ; ?
+% and probably ) should be final but before > ] } it is more likely
+% to be medial. The treatment of ( matches ) and of { [ < matches
+% > ] } (anything elxe would be more confusing.
+% Final sigma can always be forced by using the letter "j"
+% The last ligature s| is the way to force medial sigma at word end.
+% Note the trick at the end which allows a dot under a forced medial
+% sigma.
+ligtable "s": "+" =: sampi, "i" kern i#,
+ boundarychar =: sigmafinal,
+ "." =:| sigmafinal, "," =:| sigmafinal, "?" =:| sigmafinal,
+ ":" =:| sigmafinal, ";" =:| sigmafinal, "(" =:| sigmafinal,
+ ")" =:| sigmafinal, "|" |=: null_space, null_space: dubious |=: dotkos;
+
+ligtable "l": dubious |=: dotJdlmnpqu;
+ligtable "g": "x": dubious |=: dotgx;
+ligtable "v": dubious |=: doti;
+ligtable koppa: dubious |=: dotkoppa;
+ligtable "I": dubious |=: dotI;
+ligtable "G": "Z": dubious |=: dotGZ;
+ligtable "V": dubious |=: dotCEVaw;
+ligtable "B": "F": "L": "N": "P": "R": "S": "T": dubious |=: dotBFLNPRSTW;
+ligtable "H": dubious |=: dotH;
+ligtable "O": "Q": "U": "X": "Y": dubious |=: dotAOQUXY;
+ligtable "D": dubious |=: dotDK;
+ligtable "M": dubious |=: dotM; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/ibylwr4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/ibylwr4.mf
new file mode 100644
index 00000000000..5d12a74ee74
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/ibylwr4.mf
@@ -0,0 +1,195 @@
+def selectlower expr t =
+ currenttitle:= t;
+ subtitle := substring(0,27) of currenttitle;
+ if subtitle = "Lowercase sigma followed by" : let next_ = lose_it_
+% Four composites need corrected heights. See abary4.mf and wbary4.mf
+ elseif t =
+ "Lowercase alpha with grave and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with rough breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with smooth breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with rough breathing, acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with smooth breathing and acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with circumflex and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with rough breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with smooth breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase alpha with iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase epsilon with grave":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase epsilon with acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with rough breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with smooth breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with grave and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with rough breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with smooth breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with rough breathing, acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with smooth breathing and acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with circumflex and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with rough breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with smooth breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase eta with iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase upsilon with smooth breathing":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase upsilon with rough breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase upsilon with smooth breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with rough breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with smooth breathing and acute":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with grave and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with rough breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with smooth breathing and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with rough breathing, acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with smooth breathing and acute and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with circumflex and iota subscript":
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with rough breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with smooth breathing, circumflex and iota subscript" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase omega with iota subscript":
+ let next_ = lose_it_
+% diaeresis occurs only on short iota and upsilon, so never with circumflex
+ elseif t =
+ "Lowercase iota with diaeresis and circumflex" :
+ let next_ = lose_it_
+ elseif t =
+ "Lowercase upsilon with diaeresis and circumflex" :
+ let next_ = lose_it_
+% Remapping to BetaCode
+ elseif t = "Lowercase theta" :
+ code_offset := ASCII"q" - ASCII"j"; let next_ = use_it_
+ elseif t = "Lowercase chi" :
+ code_offset := ASCII"x" - ASCII"q"; let next_ = use_it_
+ elseif t = "Lowercase xi" :
+ code_offset := ASCII"c" - ASCII"x"; let next_ = use_it_
+ elseif t = "Final lowercase sigma" :
+ code_offset := ASCII"j" - ASCII"s"; let next_ = use_it_
+ elseif t = "Initial and medial lowercase sigma" :
+ code_offset := ASCII"s" - ASCII"c"; let next_ = use_it_
+ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef;
+
+let cmchar = selectlower;
+
+readfrom("a")
+input abary4
+readfrom("e")
+input ebary4
+readfrom("h")
+input hbary4
+readfrom("i")
+input ibary4
+readfrom("o")
+input obary4
+doing_u:=1;
+readfrom("u")
+input ubary4
+doing_u:=0;
+readfrom("w")
+input wbary4
+readfrom("b")
+readfrom("g")
+readfrom("d")
+readfrom("z")
+readfrom("j")
+readfrom("k")
+readfrom("l")
+readfrom("m")
+readfrom("n")
+readfrom("x")
+readfrom("p")
+readfrom("r")
+readfrom("s")
+readfrom("t")
+readfrom("f")
+readfrom("q")
+readfrom("y")
+
+code_offset:=0; % let's be really sure of this
+
+def selectkoppa expr t =
+ currenttitle:= t;
+ if t =
+ "Lowercase koppa" : let next_ = use_it_
+ else: let next_ = lose_it_ fi; next_ enddef;
+let cmchar = selectkoppa;
+
+input koppa4
+
+let cmchar = relax;
+input cigma4
+input digamma4
+input sampi4
+
+
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/ibypnct4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/ibypnct4.mf
new file mode 100644
index 00000000000..34b285ba67c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/ibypnct4.mf
@@ -0,0 +1,73 @@
+def selectpunct expr t =
+ currenttitle:= t;
+ if t = "Hash mark (number sign)" : let next_ = lose_it_
+ elseif t = "At sign" : let next_ = lose_it_
+ elseif t = "Semicolon" :
+ code_offset := ASCII"?" - ASCII";"; let next_ = use_it_
+ elseif t = "Apostrophe" :
+ code_offset := quotesnglright - ASCII"'"; let next_ = use_it_
+ elseif t = "Reverse apostrophe" :
+ code_offset := quotesnglleft - ASCII"`"; let next_ = use_it_
+ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef;
+
+def remapcomlig expr t =
+ currenttitle:= t;
+ if t = "Closing quotes" :
+ code_offset := quotedblright - oct"42"; let next_ = use_it_
+ elseif t = "Opening quotes" :
+ code_offset := quotedblleft - oct"134"; let next_ = use_it_
+ elseif t = "En dash" :
+ code_offset := endash - oct"173"; let next_ = use_it_
+ elseif t = "Em dash" :
+ code_offset := emdash - ASCII"|"; let next_ = use_it_
+ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef;
+
+% Get a good set of critical edition marks for this font.
+
+def selectsym expr t =
+ currenttitle:= t;
+ if t = "Left curly brace" :
+ code_offset := braceleft - oct"146"; let next_ = use_it_
+ elseif t = "Right curly brace" :
+ code_offset := braceright - oct"147"; let next_ = use_it_
+ elseif t = "Left floor bracket" :
+ code_offset := bracketleftbt - oct"142"; let next_ = use_it_
+ elseif t = "Right floor bracket" :
+ code_offset := bracketrightbt - oct"143"; let next_ = use_it_
+ elseif t = "Left angle bracket" :
+ code_offset := angleleft - oct"150"; let next_ = use_it_
+ elseif t = "Right angle bracket" :
+ code_offset := angleright - oct"151"; let next_ = use_it_
+ elseif t = "Dagger mark" :
+ code_offset := dagger - oct"171"; let next_ = use_it_
+ elseif t = "Double dagger mark" :
+ code_offset := daggerdbl - oct"172"; let next_ = use_it_
+ else: let next_ = lose_it_ fi; next_ enddef;
+
+% Use Computer modern characters for as many signs as possible.
+
+let cmchar = selectpunct;
+input punct
+let ligtable_ = ligtable;
+def ligtable text t = enddef;
+let cmchar = remapcomlig;
+input comlig
+let cmchar = relax;
+let ligtable = ligtable_;
+let cmchar = selectsym;
+input symbol
+
+code_offset := 0;
+
+% Special Greek punctuation from Silvio Levy's src/punct.mf.
+
+def selectgrpunct expr t =
+ currenttitle:= t;
+ if t = "'Anw tele'ia" : let next_ = use_it_
+ elseif t = "Open quotes (eisagwgik'a)" : let next_ = use_it_
+ elseif t = "Close quotes (eisagwgik'a)" : let next_ = use_it_
+ else: code_offset := 0; let next_ = lose_it_ fi; next_ enddef;
+
+let cmchar = selectgrpunct;
+readfrom("grpunct");
+
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/ibyupr4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/ibyupr4.mf
new file mode 100644
index 00000000000..080298bbcc1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/ibyupr4.mf
@@ -0,0 +1,54 @@
+def selectupper expr t =
+ currenttitle:= t;
+ if t = "The letter C" :
+ code_offset := Cigmalunate - ASCII"C"; let next_ = use_it_
+ elseif t = "The letter D" : let next_ = lose_it_
+ elseif t = "The letter F" :
+ code_offset := Digamma - ASCII"F"; let next_ = use_it_
+ elseif t = "The letter G" : let next_ = lose_it_
+ elseif t = "The letter J" : let next_ = lose_it_
+ elseif t = "The letter L" : let next_ = lose_it_
+ elseif t = "The letter Q" : let next_ = lose_it_
+ elseif t = "The letter R" : let next_ = lose_it_
+ elseif t = "The letter S" : let next_ = lose_it_
+ elseif t = "The letter U" : let next_ = lose_it_
+ elseif t = "The letter V" : let next_ = lose_it_
+ elseif t = "The letter W" : let next_ = lose_it_
+ elseif t = "The letter Y" : let next_ = lose_it_
+ elseif t = "The letter P" :
+ code_offset := ASCII"R" - ASCII"P"; let next_ = use_it_
+ else: code_offset := 0; let next_ = use_it_ fi; next_ enddef;
+
+def recodeupper expr t =
+ currenttitle:= t;
+ if t = "Uppercase Greek Xi" : code_offset := ASCII"C" - oct"004";
+ elseif t = "Uppercase Greek Delta" : code_offset := ASCII"D" - oct"001";
+ elseif t = "Uppercase Greek Phi" : code_offset := ASCII"F" - oct"010";
+ elseif t = "Uppercase Greek Gamma" : code_offset := ASCII"G" - oct"000";
+ elseif t = "Uppercase Greek Lambda" : code_offset := ASCII"L" - oct"003";
+ elseif t = "Uppercase Greek Pi" : code_offset := ASCII"P" - oct"005";
+ elseif t = "Uppercase Greek Theta" : code_offset := ASCII"Q" - oct"002";
+ elseif t = "Uppercase Greek Sigma" : code_offset := ASCII"S" - oct"006";
+ elseif t = "Uppercase Greek Upsilon" : code_offset := ASCII"U" - oct"007";
+ elseif t = "Uppercase Greek Omega" : code_offset := ASCII"W" - oct"012";
+ elseif t = "Uppercase Greek Psi" : code_offset := ASCII"Y" - oct"011";
+ else: code_offset := 0; fi; next_ enddef;
+
+let cmchar = selectupper;
+input romanu
+let cmchar = recodeupper;
+input greeku
+
+code_offset := 0;
+
+def selectkoppa expr t =
+ currenttitle:= t;
+ if t =
+ "Uppercase koppa" : let next_ = use_it_
+ else: let next_ = lose_it_ fi; next_ enddef;
+let cmchar = selectkoppa;
+
+input koppa4
+
+let cmchar = relax;
+
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/koppa4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/koppa4.mf
new file mode 100644
index 00000000000..7a2d04e6372
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/koppa4.mf
@@ -0,0 +1,50 @@
+cmchar "Uppercase koppa";
+beginchar(Koppa,11u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem,light_curve;
+shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=y5; bot y2=0;
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(h+o); y4=y6=.5[y3,y5];
+y5r=vround(.30h if serifs:+slab fi);
+penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+if serifs: dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi
+filldraw stroke z1e--z2e; % stem
+math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+def dims = 9.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+% Elements borrowed from phi and tail of eta
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h;
+ x6r=.5[x4r,x8r]; bot y6r=-oo;
+ numeric tilt; tilt:=min(2*otilt,.5);
+ filldraw stroke gr_arc.e(6,7,8)(vair,stem,tilt) ;
+% filldraw stroke gr_arc.e(4,5,6)(vair,.4[vair,stem],tilt) ;
+ filldraw stroke gr_arc.e(4,5,6)(vair,stem,tilt) ;
+ top y2r = h + o; x2r=x6r;
+% filldraw stroke gr_arc.e(2,3,4)(vair,.4[vair,stem],tilt) ;
+% Can't remember why I lightened up the northwest side of this.
+% It doesn't seem like a good idea now.
+ filldraw stroke gr_arc.e(2,3,4)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(8,1,2)(vair,stem,tilt) ;
+ pos10(stem,180); pos11(.4[vair,stem],180); % Thicken a bit at join
+ y10-.5stem=-d-o; y11=y6; x10=x11=x6;
+ filldraw circ_stroke z10e..z11e{up};
+enddef;
+
+cmchar "Lowercase koppa";
+beginchar(koppa,dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,20,21); endchar;
+
+picture savedpicture; % erase it
+
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/obary4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/obary4.mf
new file mode 100644
index 00000000000..ca0ef25a8ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/obary4.mf
@@ -0,0 +1,26 @@
+savedpicture = barypicture; % it was cleared at the end of o.mf
+%% but the dimensions set in o.mf remain.
+
+cmchar "Lowercase omicron with rough breathing and grave";
+beginchar(o_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing and grave";
+beginchar(o_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+cmchar "Lowercase omicron with circumflex (Attic)";
+beginchar(o_peri,width#,acc_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase omicron with rough breathing and circumflex (Attic)";
+beginchar(o_asprperi,width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing and circumflex (Attic)";
+beginchar(o_lenperi,width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/sampi4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/sampi4.mf
new file mode 100644
index 00000000000..a4e1e111b6c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/sampi4.mf
@@ -0,0 +1,27 @@
+% Rather mechanical design. A tipped
+% close parenthesis, with two legs near
+% the center.
+cmchar "sampi";
+beginchar(sampi,10u# ,asc_height#,desc_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(u); lft x2l=hround(x1+4u);
+top y1=h-u; y2=.5[y1,y3]=math_axis;
+numeric sampi_tilt;
+x4 = w-2u; y4=y3; sampi_tilt=angle(z4-z1)+90;
+pos6(vstem,90); pos7(vstem,90);
+pos2'(.75[hair,stem],sampi_tilt); pos3'(vair,sampi_tilt);
+forsuffixes $=6,7,8,9:
+ pos$'(vstem,90+sampi_tilt); endfor
+x5=3(x2-x1); x6l=x7l=x2l;
+y5=y6l+.15(y1-y3)=y7r-.15(y1-y3)=y2;
+x8=x9=.2(x2-x1); y8=y6;y9=y7;
+forsuffixes $=2,3,5,6,7,8,9:
+ z$'=z$ rotatedaround(z1,sampi_tilt); endfor
+y5':=min(y5',y1-eps);
+filldraw stroke z1e{z5'-z1}...z2'e
+ ...{z3'-z5'}z3'e; % arc
+filldraw stroke z6'e--z8'e; filldraw stroke z7'e--z9'e;
+penlabels(1,forsuffixes $=2,3,6,7,8,9:$',endfor 4); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/ubary4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/ubary4.mf
new file mode 100644
index 00000000000..3944e2652f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/ubary4.mf
@@ -0,0 +1,29 @@
+savedpicture = barypicture; % it was cleared at the end of u.mf
+%% but the dimensions set in u.mf remain.
+
+% The opened out accent clusters make an adjustment of "center"
+% necessary. This helps with the smooth breathing too.
+
+cmchar "recentered Lowercase upsilon with smooth breathing";
+beginchar(u_len,width#,acc_ht#,0);
+this_letter; spirit(x_baryctr -.75u)>; endchar;
+
+cmchar "recentered Lowercase upsilon with rough breathing and acute";
+beginchar(u_asproxy,width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr -.75u)<; endchar;
+
+cmchar "recentered Lowercase upsilon with smooth breathing and acute";
+beginchar(u_lenoxy,width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr -.75u)>; endchar;
+
+cmchar "Lowercase upsilon with rough breathing and grave";
+beginchar(u_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr-.75u)<; endchar;
+
+cmchar "Lowercase upsilon with smooth breathing and grave";
+beginchar(u_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr-.75u)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/version4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/version4.mf
new file mode 100644
index 00000000000..e1d318e7eb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/version4.mf
@@ -0,0 +1 @@
+special "Ibycus Polytonic Greek. Version 4.2";
diff --git a/Master/texmf-dist/fonts/source/public/ibygrk/wbary4.mf b/Master/texmf-dist/fonts/source/public/ibygrk/wbary4.mf
new file mode 100644
index 00000000000..d3140cddced
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ibygrk/wbary4.mf
@@ -0,0 +1,25 @@
+savedpicture = barypicture; % it was cleared at the end of w.mf
+%% but the dimensions set in w.mf remain.
+
+% The opened out accent clusters make an adjustment of "center"
+% necessary.
+
+cmchar "recentered Lowercase omega with rough breathing and acute";
+beginchar(w_asproxy,width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr -.75u)<; endchar;
+
+cmchar "recentered Lowercase omega with smooth breathing and acute";
+beginchar(w_lenoxy,width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr -.75u)>; endchar;
+
+cmchar "Lowercase omega with rough breathing and grave";
+beginchar(w_asprbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr -.75u)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing and grave";
+beginchar(w_lenbary,width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr -.75u)>; endchar;
+
+picture barypicture;
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifclk.gen b/Master/texmf-dist/fonts/source/public/ifsym/ifclk.gen
new file mode 100644
index 00000000000..8b332933d6a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifclk.gen
@@ -0,0 +1,111 @@
+%%%%%%%%%%%%%%%%%% ifclk.gen %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% generates clock symbols with 5 min increment
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+% clock for hh:mm -> \symbol{hh*12+mm/5}
+
+picture clk, % Zifferblatt
+ clkb, % Zifferblatt mit Zeiger 13:00
+ clks; % Stopuhr
+
+path button; button = (5.5pt,10pt)--(5.5pt,11pt)--(6pt,11pt)..
+ (6.5pt,11.5pt)..(6pt,12pt)--(4pt,12pt)..(3.5pt,11.5pt)..
+ (4pt,11pt)--(4.5pt,11pt)--(4.5pt,10pt)--cycle;
+
+% Zifferblatt
+beginchar(149,10pt#,10pt#,0);
+ pickup pencircle scaled .75linewidth;
+ draw fullcircle scaled 10pt shifted (5pt,5pt);
+ path s; s=(8pt,5pt)--(9pt,5pt);
+ for i=0 upto 11:
+ draw s rotatedaround ((5pt,5pt),(i*30));
+ endfor;
+ clk := currentpicture;
+endchar;
+
+n := 0;
+for h=3 downto -8:
+ for m=15 step -5 until -40:
+ beginchar((char n),10pt#,10pt#,0);
+ currentpicture := clk;
+ pickup pencircle scaled .75linewidth;
+ draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),(m*6));
+ draw (5pt,5pt)--(7pt,5pt) rotatedaround ((5pt,5pt),(h*30-(15-m)/2));
+ endchar;
+ n := n+1;
+ endfor;
+endfor;
+
+% Taschenuhr
+beginchar(150,10pt#,14pt#,0);
+ currentpicture := clk;
+ pickup pencircle scaled .75linewidth;
+ draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),0);
+ draw (5pt,5pt)--(7pt,5pt) rotatedaround ((5pt,5pt),22.5);
+ clkb := currentpicture;
+ draw fullcircle scaled 4pt shifted (5pt,12pt);
+ fill button;
+endchar;
+
+% Taschenuhr2
+beginchar(148,11pt#,16pt#,0);
+ currentpicture := clkb shifted(0,1pt);
+ pickup pencircle scaled .75linewidth;
+ draw fullcircle scaled 12pt shifted (5pt,6pt);
+ draw fullcircle scaled 4pt shifted (5pt,14pt);
+ fill button shifted(0,2pt);
+endchar;
+
+% stop watch start
+beginchar(151,12pt#,12pt#,0);
+ currentpicture := clk;
+ pickup pencircle scaled .75linewidth;
+ draw fullcircle scaled 2pt shifted (5pt,11pt);
+ fill button rotatedaround((5pt,5pt),40);
+ fill button rotatedaround((5pt,5pt),-40);
+ clks := currentpicture;
+ draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),90);
+endchar;
+
+% stop watch stop
+beginchar(152,10pt#,12pt#,0);
+ currentpicture := clks;
+ pickup pencircle scaled .75linewidth;
+ draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),-60);
+endchar;
+
+% interval
+beginchar(153,10pt#,10pt#,0);
+ currentpicture := clk;
+ fill quartercircle scaled 10pt shifted(5pt,5pt)--(5pt,5pt)--cycle;
+ fill quartercircle rotated -30 scaled 10pt shifted(5pt,5pt)
+ --(5pt,5pt)--cycle;
+endchar;
+
+% Wecker
+beginchar(154,14pt#,12pt#,0);
+ fill unitsquare xscaled 14pt yscaled 12pt;
+ unfill fullcircle scaled 10pt shifted(7pt,6pt);
+ currentpicture := currentpicture + clkb shifted(2pt,1pt);
+endchar;
+
+% another clock
+beginchar(155,10pt#,10pt#,0);
+ pickup pencircle scaled .75linewidth;
+ draw fullcircle scaled 10pt shifted (5pt,5pt);
+ fill fullcircle scaled 1pt shifted (5pt,5pt);
+ draw (5pt,5pt)--(9pt,5pt) rotatedaround ((5pt,5pt),90);
+ draw (5pt,5pt)--(7pt,5pt) rotatedaround ((5pt,5pt),60);
+endchar;
+
+end.
+%%%%%%%%%%%%%%%%%% end of ifclk.gen %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifclk10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifclk10.mf
new file mode 100644
index 00000000000..10eaa770c9f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifclk10.mf
@@ -0,0 +1,21 @@
+%%%%%%%%%%%%%%%%%% ifclk10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% clocks showing time in 5 min increment
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=0.5pt;
+
+input ifclk.gen;
+
+%%%%%%%%%%%%%%%%%% end of ifclk10.mf %%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifclkb10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifclkb10.mf
new file mode 100644
index 00000000000..c36fb9c13fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifclkb10.mf
@@ -0,0 +1,21 @@
+%%%%%%%%%%%%%%%%%% ifclkb10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% clocks showing time in 5 min increment
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=1.0pt;
+
+input ifclk.gen;
+
+%%%%%%%%%%%%%%%%%% end of ifclkb10.mf %%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifgeo.gen b/Master/texmf-dist/fonts/source/public/ifsym/ifgeo.gen
new file mode 100644
index 00000000000..c983ccdee81
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifgeo.gen
@@ -0,0 +1,265 @@
+%%%%%%%%%%%%%%%%%% ifgeo.gen %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% geometric symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+
+pen normalpen;
+normalpen := pencircle scaled 1linewidth;
+
+shadow_x := 2pt;
+shadow_y := 2pt;
+
+
+% some internal utility functions
+def Tri(expr n, s, phi) =
+if ((phi=90) or (phi=-90)):
+ beginchar((char n),ystretch*(10pt#),xstretch*(10pt#),0);
+else:
+ beginchar((char n),xstretch*(10pt#),ystretch*(10pt#),0);
+fi;
+ pickup normalpen;
+ bot lft z0 = (-0.5pt*s*xstretch, -0.5pt*s*ystretch) rotated (phi);
+ bot rt z1 = (0.5pt*s*xstretch, -0.5pt*s*ystretch) rotated (phi);
+ top z2 = (0pt, 0.5pt*s*ystretch) rotated (phi);
+ draw z0--z1--z2--cycle shifted(.5w,.5h);
+endchar;
+enddef;
+
+def FillTri(expr n, s, phi) =
+if ((phi=90) or (phi=-90)):
+ beginchar((char n),ystretch*(10pt#),xstretch*(10pt#),0);
+else:
+ beginchar((char n),xstretch*(10pt#),ystretch*(10pt#),0);
+fi;
+ pickup normalpen;
+ fill (-0.5pt,-0.5pt)--(0.5pt,-0.5pt)--(0pt,0.5pt)--cycle
+ xscaled (s*xstretch) yscaled (s*ystretch) rotated (phi)
+ shifted(.5w,.5h);
+endchar;
+enddef;
+
+def Cir(expr n, s) =
+beginchar((char n),10pt#,10pt#,0);
+ pickup normalpen;
+ numeric t;
+ t:=s*1pt;
+ draw fullcircle scaled t shifted(5pt,5pt);
+endchar;
+enddef;
+
+def FillCir(expr n, s) =
+beginchar((char n),10pt#,10pt#,0);
+ pickup normalpen;
+ numeric t;
+ t:=s*1pt;
+ fill fullcircle scaled t shifted(5pt,5pt);
+endchar;
+enddef;
+
+def Sq(expr n, s, shadow) =
+ beginchar((char n),xstretch*(10pt#),ystretch*(10pt#),0);
+ pickup normalpen;
+ bot lft z0 = (-0.5pt*s*xstretch, -0.5pt*s*ystretch);
+ bot rt z1 = (0.5pt*s*xstretch, -0.5pt*s*ystretch);
+ top rt z2 = (0.5pt*s*xstretch, 0.5pt*s*ystretch);
+ top lft z3 = (-0.5pt*s*xstretch, 0.5pt*s*ystretch);
+ if shadow=1:
+ path p; p := z0--z1--z2;
+ draw p shifted(.5w+shadow_x,.5h-shadow_y);
+ elseif shadow=2:
+ path p; p := z0--z1--z2--z3--cycle;
+ fill p shifted(.5w+shadow_x,.5h-shadow_y);
+ unfill p shifted(.5w,.5h);
+ elseif shadow=3:
+ path p; p := z0--z1--z2--z3--cycle;
+ draw p shifted(.5w+shadow_x,.5h-shadow_y);
+ unfill p shifted(.5w,.5h);
+ fi;
+ draw z0--z1--z2--z3--cycle shifted(.5w,.5h);
+endchar;
+enddef;
+
+def FillSq(expr n, s, shadow) =
+ beginchar((char n),xstretch*(10pt#),ystretch*(10pt#),0);
+ pickup normalpen;
+ bot lft z0 = (-0.5pt*s*xstretch, -0.5pt*s*ystretch);
+ bot rt z1 = (0.5pt*s*xstretch, -0.5pt*s*ystretch);
+ top rt z2 = (0.5pt*s*xstretch, 0.5pt*s*ystretch);
+ top lft z3 = (-0.5pt*s*xstretch, 0.5pt*s*ystretch);
+ if shadow=1:
+ path p; p := z0--z1--z2;
+ draw p shifted(.5w+shadow_x,.5h-shadow_y);
+ elseif shadow=3:
+ path p; p := z0--z1--z2--z3--cycle;
+ draw p shifted(.5w+shadow_x,.5h-shadow_y);
+ fi;
+ fill z0--z1--z2--z3--cycle shifted(.5w,.5h);
+endchar;
+enddef;
+
+def CrossedSq(expr n, s) =
+ beginchar((char n),xstretch*(10pt#),ystretch*(10pt#),0);
+ pickup normalpen;
+ bot lft z0 = (-0.5pt*s*xstretch, -0.5pt*s*ystretch) shifted(.5w,.5h);
+ bot rt z1 = (0.5pt*s*xstretch, -0.5pt*s*ystretch) shifted(.5w,.5h);
+ top rt z2 = (0.5pt*s*xstretch, 0.5pt*s*ystretch) shifted(.5w,.5h);
+ top lft z3 = (-0.5pt*s*xstretch, 0.5pt*s*ystretch) shifted(.5w,.5h);
+ draw z0--z2; draw z1--z3;
+endchar;
+enddef;
+
+def Diamond(expr n, s, shadow, fillshape) =
+ beginchar((char n),xstretch*(10pt#),ystretch*(10pt#),0);
+ pickup normalpen;
+ x0 = 0pt; bot y0 = -0.5pt*s*ystretch;
+ rt x1 = 0.5pt*s*xstretch; y1 = 0pt;
+ x2 = 0pt; top y2 = 0.5pt*s*ystretch;
+ lft x3 = -0.5pt*s*xstretch; y3 = 0pt;
+ if shadow=1:
+ path p; p := z0--z1--z2;
+ draw p shifted(.5w+shadow_x,.5h);
+ elseif shadow=2:
+ path p; p := z0--z1--z2--z3--cycle;
+ fill p shifted(.5w+shadow_x,.5h);
+ unfill p shifted(.5w,.5h);
+ elseif shadow=3:
+ path p; p := z0--z1--z2--z3--cycle;
+ draw p shifted(.5w+shadow_x,.5h);
+ unfill p shifted(.5w,.5h);
+ fi;
+ draw z0--z1--z2--z3--cycle shifted(.5w,.5h);
+ if fillshape=1: % right half filled
+ fill z0--z1--z2--cycle shifted(.5w,.5h);
+ elseif fillshape=2: % lower half filled
+ fill z0--z1--z3--cycle shifted(.5w,.5h);
+ fi;
+endchar;
+enddef;
+
+def FillDiamond(expr n, s, shadow) =
+ beginchar((char n),xstretch*(10pt#),ystretch*(10pt#),0);
+ pickup normalpen;
+ x0 = 0pt; bot y0 = -0.5pt*s*ystretch;
+ rt x1 = 0.5pt*s*xstretch; y1 = 0pt;
+ x2 = 0pt; top y2 = 0.5pt*s*ystretch;
+ lft x3 = -0.5pt*s*xstretch; y3 = 0pt;
+ if shadow=1:
+ path p; p := z0--z1--z2;
+ draw p shifted(.5w+shadow_x,.5h);
+ elseif shadow=3:
+ path p; p := z0--z1--z2--z3--cycle;
+ draw p shifted(.5w+shadow_x,.5h);
+ fi;
+ fill z0--z1--z2--z3--cycle shifted(.5w,.5h);
+endchar;
+enddef;
+
+def DiamondBar(expr n, s, barshape) =
+ beginchar((char n),xstretch*(10pt#),ystretch*(10pt#),0);
+ pickup normalpen;
+ x0 = 0pt; bot y0 = -0.5pt*s*ystretch;
+ rt x1 = 0.5pt*s*xstretch; y1 = 0pt;
+ x2 = 0pt; top y2 = 0.5pt*s*ystretch;
+ lft x3 = -0.5pt*s*xstretch; y3 = 0pt;
+ path p;
+ if barshape=1: % horizontal bar
+ p := z1--z3;
+ draw p shifted(.5w,.5h);
+ elseif barshape=2: % vertical bar
+ p := z0--z2;
+ draw p shifted(.5w,.5h);
+ fi;
+endchar;
+enddef;
+
+"Bigsquare"; Sq(32,10,0);
+"Square"; Sq(48,8,0);
+"Smallsquare"; Sq(64,6,0);
+"FilledBigsquare"; FillSq(80,10,0);
+"FilledSquare"; FillSq(96,8,0);
+"FilledSmallsquare"; FillSq(112,6,0);
+
+"SquareShadow1"; Sq(0,8,1);
+"SquareShadow2"; Sq(1,8,2);
+"SquareShadow3"; Sq(2,8,3);
+"FilledSquareShadow1"; FillSq(3,8,1);
+"FilledSquareShadow3"; FillSq(4,8,3);
+
+
+"BigtriangleUp"; Tri(33,10,0);
+"TriangleUp"; Tri(49,8,0);
+"SmalltriangleUp"; Tri(65,6,0);
+"FilledBigtriangleUp"; FillTri(81,10,0);
+"FilledTriangleUp"; FillTri(97,8,0);
+"FilledSmalltriangleUp"; FillTri(113,6,0);
+
+"BigtriangleLeft"; Tri(34,10,90);
+"TriangleLeft"; Tri(50,8,90);
+"SmalltriangleLeft"; Tri(66,6,90);
+"FilledBigtriangleLeft"; FillTri(82,10,90);
+"FilledTriangleLeft"; FillTri(98,8,90);
+"FilledSmalltriangleLeft"; FillTri(114,6,90);
+
+"BigtriangleDown"; Tri(35,10,180);
+"TriangleDown"; Tri(51,8,180);
+"SmalltriangleDown"; Tri(67,6,180);
+"FilledBigtriangleDown"; FillTri(83,10,180);
+"FilledTriangleDown"; FillTri(99,8,180);
+"FilledSmalltriangleDown"; FillTri(115,6,180);
+
+"BigtriangleRight"; Tri(36,10,-90);
+"TriangleRight"; Tri(52,8,-90);
+"SmalltriangleRight"; Tri(68,6,-90);
+"FilledBigtriangleRight"; FillTri(84,10,-90);
+"FilledTriangleRight"; FillTri(100,8,-90);
+"FilledSmalltriangleRight"; FillTri(116,6,-90);
+
+"Bigcircle"; Cir(37,10);
+"Circle"; Cir(53,8);
+"Smallcircle"; Cir(69,6);
+"FilledBigcircle"; FillCir(85,10);
+"Filledcircle"; FillCir(101,8);
+"FilledSmallcircle"; FillCir(117,6);
+
+
+"BigDiamond"; Diamond(38,10,0,0);
+"Diamond"; Diamond(54,8,0,0);
+"SmallDiamond"; Diamond(70,6,0,0);
+"FilledBigDiamond"; FillDiamond(86,10,0);
+"FilledDiamond"; FillDiamond(102,8,0);
+"FilledSmallDiamond"; FillDiamond(118,6,0);
+"BigRightDiamond"; Diamond(47,10,0,1);
+"RightDiamond"; Diamond(63,8,0,1);
+"SmallRightDiamond"; Diamond(79,6,0,1);
+"BigLowerDiamond"; Diamond(95,10,0,2);
+"LowerDiamond"; Diamond(111,8,0,2);
+"SmallLowerDiamond"; Diamond(127,6,0,2);
+
+"DiamondShadow1"; Diamond(5,8,1,0);
+"DiamondShadow2"; Diamond(6,8,2,0);
+"DiamondShadow3"; Diamond(7,8,3,0);
+"DiamondSquareShadow1"; FillDiamond(8,8,1);
+"DiamondSquareShadow3"; FillDiamond(9,8,3);
+
+"BigCross"; CrossedSq(13,10);
+"Cross"; CrossedSq(14,8);
+"SmallCross"; CrossedSq(15,6);
+"BigHorBar"; DiamondBar(26,10,1);
+"HorBar"; DiamondBar(27,8,1);
+"SmallHorBar"; DiamondBar(28,6,1);
+"BigVertBar"; DiamondBar(29,10,2);
+"VertBar"; DiamondBar(30,8,2);
+"SmallVertBar"; DiamondBar(31,6,2);
+
+end.
+
+%%%%%%%%%%%%%%%%%% end of ifgeo.gen %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifgeo10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifgeo10.mf
new file mode 100644
index 00000000000..dbe93703bf6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifgeo10.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%% ifgeo10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% miscellaneous and alpinistic symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=0.5pt; xstretch=1; ystretch=1;
+input ifgeo.gen;
+%%%%%%%%%%%%%%%%%% end of ifgeo10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifgeob10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifgeob10.mf
new file mode 100644
index 00000000000..c20c458bc3b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifgeob10.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%% ifgeob10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% weather and miscellaneous symbols, bold-faced
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=1.25pt; xstretch=1; ystretch=1;
+input ifgeo.gen;
+%%%%%%%%%%%%%%%%%% end of ifgeob10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifgeobn10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifgeobn10.mf
new file mode 100644
index 00000000000..6aabb47b216
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifgeobn10.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%% ifgeobn10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% weather and miscellaneous symbols, bold-faced
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=1.25pt; xstretch=0.5; ystretch=1;
+input ifgeo.gen;
+%%%%%%%%%%%%%%%%%% end of ifgeobn10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifgeobw10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifgeobw10.mf
new file mode 100644
index 00000000000..e5c710e4a53
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifgeobw10.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%% ifgeobw10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% weather and miscellaneous symbols, bold-faced
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=1.25pt; xstretch=1; ystretch=0.5;
+input ifgeo.gen;
+%%%%%%%%%%%%%%%%%% end of ifgeobw10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifgeon10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifgeon10.mf
new file mode 100644
index 00000000000..2b35afed6bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifgeon10.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%% ifgeon10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% miscellaneous and alpinistic symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=0.5pt; xstretch=0.5; ystretch=1;
+input ifgeo.gen;
+%%%%%%%%%%%%%%%%%% end of ifgeon10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifgeow10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifgeow10.mf
new file mode 100644
index 00000000000..062a7f41428
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifgeow10.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%% ifgeow10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% miscellaneous and alpinistic symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=0.5pt; xstretch=1; ystretch=0.5;
+input ifgeo.gen;
+%%%%%%%%%%%%%%%%%% end of ifgeow10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifsym.gen b/Master/texmf-dist/fonts/source/public/ifsym/ifsym.gen
new file mode 100644
index 00000000000..cda89206142
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifsym.gen
@@ -0,0 +1,591 @@
+%%%%%%%%%%%%%%%%%% ifsym.gen %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+% 25.05.2000 v1.1 IK ligtable for pulse diagrams improved
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% miscellaneous and alpinistic symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+
+pen normalpen, boldpen;
+normalpen := pencircle scaled 1linewidth;
+if boldface=1:
+ boldpen = pencircle scaled 2linewidth;
+else:
+ boldpen = pencircle scaled 4linewidth;
+fi;
+
+transform t;
+if italic=0:
+ t := identity;
+else:
+ t := identity slanted 0.2;
+fi;
+
+
+%
+% miscellaneous symbols
+%
+% sectioning symbols
+"Diamonds1";
+beginchar(1,10pt#,10pt#,0);
+ pickup normalpen;
+ path p;
+ p = (2pt,0pt)--(0pt,2pt)--(-2pt,0pt)--(0pt,-2pt)--cycle;
+ draw p shifted (5pt,9pt); draw p shifted (5pt,1pt);
+ draw p shifted (2pt,5pt); draw p shifted (8pt,5pt);
+endchar;
+
+"FilledDiamonds1";
+beginchar(2,10pt#,10pt#,0);
+ pickup normalpen;
+ path p;
+ p = (2pt,0pt)--(0pt,2pt)--(-2pt,0pt)--(0pt,-2pt)--cycle;
+ fill p shifted (5pt,9pt); fill p shifted (5pt,1pt);
+ fill p shifted (2pt,5pt); fill p shifted (8pt,5pt);
+endchar;
+
+% paper symbol
+"Portrait";
+beginchar(3,6pt#,10pt#,0);
+ pickup normalpen;
+ draw (0pt,0pt)--(6pt,0pt)--(6pt,10pt)--(2pt,10pt)--(0pt,8pt)--cycle;
+ pickup pencircle scaled .7linewidth;
+ draw (2pt,10pt)--(2pt,8pt)--(0pt,8pt);
+ pickup pencircle scaled .3linewidth;
+ for i=1.5 upto 7.5:
+ draw (1pt,i*1pt)--(5pt,i*1pt);
+ endfor
+endchar;
+
+"Landscape";
+beginchar(4,10pt#,6pt#,0);
+ pickup normalpen;
+ draw (0pt,0pt)--(10pt,0pt)--(10pt,6pt)--(2pt,6pt)--(0pt,4pt)--cycle;
+ pickup pencircle scaled .7linewidth;
+ draw (2pt,6pt)--(2pt,4pt)--(0pt,4pt);
+ pickup pencircle scaled .3linewidth;
+ for i=1.5 upto 4.5:
+ draw (2pt,i*1pt)--(8pt,i*1pt);
+ endfor
+endchar;
+
+"Envelope";
+beginchar(0,10pt#,7pt#,0);
+ pickup normalpen;
+ draw unitsquare xscaled w yscaled h;% shifted(w/2,h/2);
+ z0=(0,h); z1=(w/2,h/3); z2=(w,h);
+ z3=(0,0); z4=(w/2,2*h/3); z5=(w,0);
+ numeric s; s[z3,z4] = whatever[z0,z1];
+ draw z0--z1--z2; draw z3--s[z3,z4]; draw z5--s[z5,z4];
+endchar;
+
+% seven-segment digits
+path seg[];
+seg[0] = (.5pt,8.5pt)--(1pt,9pt)--(4pt,9pt)--(4.5pt,8.5pt)--
+ (4pt,8pt)--(1pt,8pt)--cycle;
+seg[1] = (4.5pt,8.5pt)--(5pt,8pt)--(5pt,5pt)--(4.5pt,4.5pt)--
+ (4pt,5pt)--(4pt,8pt)--cycle;
+seg[2] = (4.5pt,4.5pt)--(5pt,4pt)--(5pt,1pt)--(4.5pt,0.5pt)--
+ (4pt,1pt)--(4pt,4pt)--cycle;
+seg[3] = (.5pt,0.5pt)--(1pt,1pt)--(4pt,1pt)--(4.5pt,0.5pt)--
+ (4pt,0)--(1pt,0)--cycle;
+seg[5] = (0.5pt,8.5pt)--(1pt,8pt)--(1pt,5pt)--(0.5pt,4.5pt)--
+ (0pt,5pt)--(0pt,8pt)--cycle;
+seg[4] = (0.5pt,4.5pt)--(1pt,4pt)--(1pt,1pt)--(0.5pt,0.5pt)--
+ (0pt,1pt)--(0pt,4pt)--cycle;
+seg[6] = (.5pt,4.5pt)--(1pt,5pt)--(4pt,5pt)--(4.5pt,4.5pt)--
+ (4pt,4pt)--(1pt,4pt)--cycle;
+
+beginchar("0",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[0] transformed t; fill seg[1] transformed t;
+ fill seg[2] transformed t; fill seg[3] transformed t;
+ fill seg[4] transformed t; fill seg[5] transformed t;
+endchar;
+beginchar("1",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[1] transformed t; fill seg[2] transformed t;
+endchar;
+beginchar("2",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[0] transformed t; fill seg[1] transformed t;
+ fill seg[6] transformed t; fill seg[4] transformed t;
+ fill seg[3] transformed t;
+endchar;
+beginchar("3",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[0] transformed t; fill seg[1] transformed t;
+ fill seg[6] transformed t; fill seg[2] transformed t;
+ fill seg[3] transformed t;
+endchar;
+beginchar("4",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[5] transformed t; fill seg[6] transformed t;
+ fill seg[1] transformed t; fill seg[2] transformed t;
+endchar;
+beginchar("5",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[0] transformed t; fill seg[5] transformed t;
+ fill seg[6] transformed t; fill seg[2] transformed t;
+ fill seg[3] transformed t;
+endchar;
+beginchar("6",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[0] transformed t; fill seg[5] transformed t;
+ fill seg[4] transformed t; fill seg[3] transformed t;
+ fill seg[2] transformed t; fill seg[6] transformed t;
+endchar;
+beginchar("7",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[5] transformed t; fill seg[0] transformed t;
+ fill seg[1] transformed t; fill seg[2] transformed t;
+endchar;
+beginchar("8",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[0] transformed t; fill seg[1] transformed t;
+ fill seg[2] transformed t; fill seg[3] transformed t;
+ fill seg[4] transformed t; fill seg[5] transformed t;
+ fill seg[6] transformed t;
+endchar;
+beginchar("9",7pt#,10pt#,0);
+ pickup normalpen;
+ fill seg[6] transformed t; fill seg[5] transformed t;
+ fill seg[0] transformed t; fill seg[1] transformed t;
+ fill seg[2] transformed t; fill seg[3] transformed t;
+endchar;
+beginchar("-",7pt#,10pt#,0); % minus
+ pickup normalpen;
+ fill seg[6] transformed t;
+endchar;
+beginchar(".",0pt#,10pt#,0);
+ pickup boldpen; drawdot (-1pt,0) transformed t;
+endchar;
+beginchar("b",7pt#,10pt#,0);
+endchar; % space (width of 1 digit)
+
+def basis_cube =
+ pickup normalpen;
+ draw unitsquare scaled 10pt;
+ pickup boldpen;
+enddef;
+
+"Cube1";
+beginchar(5,10pt#,10pt#,0);
+ basis_cube; drawdot (5pt,5pt);
+endchar;
+
+"Cube2";
+beginchar(6,10pt#,10pt#,0);
+ basis_cube; drawdot (2pt,2pt); drawdot (8pt,8pt);
+endchar;
+
+"Cube3";
+beginchar(7,10pt#,10pt#,0);
+ basis_cube; drawdot (2pt,8pt); drawdot (5pt,5pt); drawdot (8pt,2pt);
+endchar;
+
+"Cube4";
+beginchar(8,10pt#,10pt#,0);
+ basis_cube;
+ drawdot (2pt,2pt); drawdot (2pt,8pt); drawdot (8pt,2pt); drawdot (8pt,8pt);
+endchar;
+
+"Cube5";
+beginchar(9,10pt#,10pt#,0);
+ basis_cube; drawdot (2pt,2pt); drawdot (2pt,8pt);
+ drawdot (8pt,2pt); drawdot (8pt,8pt); drawdot (5pt,5pt);
+endchar;
+
+"Cube6";
+beginchar(10,10pt#,10pt#,0);
+ basis_cube;
+ drawdot (2pt,2pt); drawdot (2pt,5pt); drawdot (2pt,8pt);
+ drawdot (8pt,2pt); drawdot (8pt,5pt); drawdot (8pt,8pt);
+endchar;
+
+
+% dangerous symbols
+"Irritant";
+beginchar(11,10pt#,10pt#,0);
+ pickup normalpen;
+ fill (0.5pt,1.5pt)--(1.5pt,0.5pt)--(9.5pt,8.5pt)--(8.5pt,9.5pt)--cycle;
+ fill (0.5pt,8.5pt)--(1.5pt,9.5pt)--(9.5pt,1.5pt)--(8.5pt,0.5pt)--cycle;
+endchar;
+
+%"Fire";
+beginchar(12,10pt#,10pt#,0);
+ pickup normalpen;
+ fill (1pt,1.5pt)--(9pt,1.5pt)--(9pt,0.5pt)--(1pt,0.5pt)--cycle;
+ fill (2.2pt,4.9pt){dir -40}..{dir -45}(3.4pt,2.2pt)..(4.8pt,1.5pt)..
+ {dir 120}(6.8pt,4.4pt){dir -90}..{dir -40}(6pt,3pt){dir 100}..
+ (6.3pt,5pt)..{dir 100}(4pt,7.3pt){dir -100}..{dir -135}(4.5pt,3.3pt){dir 120}..
+ {dir 120}(3pt,5.2pt){dir -80}..{dir -100}(3.7pt,2.8pt){dir 90}..{dir 160}cycle;
+ fill (4.7pt,3pt){dir 140}..{dir 110}(3.7pt,6.2pt){dir -40}..{dir -120}cycle;
+ fill (3.5pt,5.9pt){dir 80}..{dir 120}(2.2pt,7.5pt){dir -80}..{dir -50}cycle;
+ fill (2.5pt,5.2pt){dir 90}..{dir 135}(1.5pt,6.5pt){dir -100}..{dir -45}cycle;
+ fill (7.1pt,4.6pt){dir 60}..{dir 160}(6.4pt,6.1pt){dir -60}..{dir -100}cycle;
+ fill (5pt,7.6pt){dir 80}..{dir 140}(4pt,8.6pt){dir -100}..{dir -50}cycle;
+endchar;
+
+%"Death";
+%beginchar(13,10pt#,10pt#,0);
+% pickup pencircle scaled 1linewidth;
+% fill (5pt,9.4pt){dir 180}..{dir -90}(1.8pt,7.5pt)..{dir -60}(2.8p,5.4pt)..
+% {dir 0}(5pt,2.9pt){dir 0}..(7.2pt,5.4pt){dir 60}..
+% (8.2pt,7.5pt){dir90}..{dir 180}cycle;
+% unfill (2.9pt,7.6pt)..(3.3pt,7.1pt)..(4.2pt,8pt)..(3.7pt,8.3pt)..cycle;
+% unfill (7.1pt,7.6pt)..(6.7pt,7.1pt)..(5.8pt,8pt)..(6.3pt,8.3pt)..cycle;
+% % Nase
+% unfill (5pt,6.4pt)..{dir -120}(4.7pt,5.8pt)..{dir 0}(5pt,5.4pt){dir 0}..
+% (5.3pt,8.3pt){dir 120}..cycle;
+% % Mund
+% unfill (4.1pt,4.7pt){dir -80}..{dir 0}(5pt,4.4pt}{dir 0}..{dir 80}(5.9pt,4.7pt){dir -90}..
+% {dir 180}(5pt,3.8pt){dir 180}..{dir 90}cycle;
+% % Knochen
+% fill (5pt,2.5pt){dir 180}..{dir 135}(3.1pt,3.6pt)..{dir 180}(1.8pt,5.2pt)..
+% {dir -90}(1.8pt,4.2pt)..{dir -90}(1.2pt,3.8pt)..{dir -30}(2.2pt,3.3pt)..
+% {dir -90}(3.4pt,2.2pt)..{dir -135}(2.6pt,1.6pt)..{dir 180}(1.2pt,.6pt)..
+% {dir -90}(0.8pt,1.2pt)..{dir -45}(1.3pt,0.8pt)..{dir 0}(1.7pt,0pt)..
+% {dir 30}(2.4pt,0.8pt)..{dir 50}(3.8pt,1.4pt)..{dir 0}(5pt,1.9pt)--cycle;
+%endchar;
+
+"Radiation";
+beginchar(14,10pt#,10pt#,0);
+ pickup normalpen;
+ fill fullcircle scaled 3pt shifted(5pt,5pt);
+ z0=(7pt,5pt); z1=(10pt,5pt);
+ z2=z0 rotatedaround((5pt,5pt),60);
+ z3=z1 rotatedaround((5pt,5pt),60);
+ path p; p := z0--z1{dir 90}..{dir 150}z3--z2{dir -30}..{dir -90}cycle;
+ fill p rotatedaround((5pt,5pt),60);
+ fill p rotatedaround((5pt,5pt),180);
+ fill p rotatedaround((5pt,5pt),300);
+endchar;
+
+% telephone
+beginchar(40,15pt#,10pt#,0);
+ pickup normalpen;
+ numeric x[], y[];
+ z0=(1.8pt,0); z1=(1.8pt,2.25pt); z2=(w/2,3.9pt);
+ z3=(w-1.8pt,2.25pt); z4=(w-1.8pt,0);
+ fill z0--z1..z2..z3--z4--cycle;
+ % Hoerer
+ z5=(0.3pt,3.3pt); z6=(3.3pt,3.3pt); z7=(3.3pt,4.2pt);
+ z8=(7.5pt,4.95pt);
+ z9=(w-3.3pt,4.2pt); z10=(w-3.3pt,3.3pt); z11=(w-0.3pt,3.3pt);
+ z12=(w-0.3pt,4.2pt);
+ z13=(7.5pt,5.7pt);
+ z14=(0.3pt,4.2pt);
+ fill z5--z6--z7..z8..z9--z10--z11--z12..z13..z14--cycle;
+ % keyboard
+ unfill fullcircle xscaled 4.5pt yscaled 2.4pt shifted(7.5pt,2.25pt);
+endchar;
+
+% up arrow symbolizing spin +1/2
+beginchar(41,5pt#,10pt#,0);
+ pickup normalpen;
+ draw (2.5pt,2pt)--(2.5pt,8pt);
+ draw (1pt,6pt)--(2.5pt,8pt)--(4pt,6pt);
+endchar;
+
+% down arrow symbolizing spin -1/2
+beginchar(42,10pt#,10pt#,0);
+ pickup normalpen;
+ draw (7.5pt,2pt)--(7.5pt,8pt);
+ draw (6pt,4pt)--(7.5pt,2pt)--(9pt,4pt);
+endchar;
+
+% bar (one stroke for "1")
+beginchar(58,2pt#,10pt#,0);
+ pickup normalpen;
+ numeric x[], y[]; path p;
+ lft z0=(0,0); lft z1=(0,8pt); p := z0--z1;
+ draw p transformed t;
+endchar;
+% bar group (five strokes for "5")
+beginchar(59,10pt#,10pt#,0);
+ pickup normalpen;
+ path p; p:=(0,0)--(0,8pt);
+ draw p shifted(1pt,0) transformed t; draw p shifted(3pt,0) transformed t;
+ draw p shifted(5pt,0) transformed t; draw p shifted(7pt,0) transformed t;
+ path p; p := (0,2pt)--(8pt,6pt);
+ draw p transformed t;
+endchar;
+
+
+%
+% electronic symbols
+%
+%
+% first, some symbols for pulse/clock diagrams
+%
+"RaisingEdge";
+beginchar(32,8pt#,6pt#,0);
+ pickup normalpen;
+ draw (0pt,0pt)--(4pt,0pt)--(4pt,6pt)--(8pt,6pt);
+endchar;
+
+"FallingEdge";
+beginchar(33,8pt#,6pt#,0);
+ pickup normalpen;
+ draw (0pt,6pt)--(4pt,6pt)--(4pt,0pt)--(8pt,0pt);
+endchar;
+
+"ShortPulseHigh";
+beginchar(34,10pt#,6pt#,0);
+ pickup normalpen;
+ draw (0pt,0pt)--(4pt,0pt)--(4pt,6pt)--(6pt,6pt)--(6pt,0pt)--(10pt,0pt);
+endchar;
+
+"ShortPulseLow";
+beginchar(35,10pt#,6pt#,0);
+ pickup normalpen;
+ draw (0pt,6pt)--(4pt,6pt)--(4pt,0pt)--(6pt,0pt)--(6pt,6pt)--(10pt,6pt);
+endchar;
+
+"PulseHigh";
+beginchar(36,14pt#,6pt#,0);
+ pickup normalpen;
+ draw (0pt,0pt)--(4pt,0pt)--(4pt,6pt)--(10pt,6pt)--(10pt,0pt)--(14pt,0pt);
+endchar;
+
+"PulseLow";
+beginchar(37,14pt#,6pt#,0);
+ pickup normalpen;
+ draw (0pt,6pt)--(4pt,6pt)--(4pt,0pt)--(10pt,0pt)--(10pt,6pt)--(14pt,6pt);
+endchar;
+
+"LongPulseHigh";
+beginchar(38,18pt#,6pt#,0);
+ pickup normalpen;
+ draw (0pt,0pt)--(4pt,0pt)--(4pt,6pt)--(14pt,6pt)--(14pt,0pt)--(18pt,0pt);
+endchar;
+
+"LongPulseLow";
+beginchar(39,18pt#,6pt#,0);
+ pickup normalpen;
+ draw (0pt,6pt)--(4pt,6pt)--(4pt,0pt)--(14pt,0pt)--(14pt,6pt)--(18pt,6pt);
+endchar;
+
+%
+% constructing pulse diagrams out of basic characters
+%
+"RaiseFall";
+beginchar("|",0pt#,10pt#,0);
+ pickup normalpen; draw (0pt,0pt)--(0pt,10pt);
+endchar;
+
+"LowLineShort";
+beginchar("l",5pt#,10pt#,0);
+ pickup normalpen; draw (0pt,0pt)--(5pt,0pt);
+endchar;
+
+"MiddleLineShort";
+beginchar("m",5pt#,10pt#,0);
+ pickup normalpen; draw (0pt,5pt)--(5pt,5pt);
+endchar;
+
+"DoubleLineShort";
+beginchar("d",5pt#,10pt#,0);
+ pickup normalpen; draw (0pt,0pt)--(5pt,0pt); draw (0pt,10pt)--(5pt,10pt);
+endchar;
+
+"HighLineShort";
+beginchar("h",5pt#,10pt#,0);
+ pickup normalpen; draw (0pt,10pt)--(5pt,10pt);
+endchar;
+
+"LowLineLong";
+beginchar("L",10pt#,10pt#,0);
+ pickup normalpen; draw (0pt,0pt)--(10pt,0pt);
+endchar;
+
+"MiddleLineLong";
+beginchar("M",10pt#,10pt#,0);
+ pickup normalpen; draw (0pt,5pt)--(10pt,5pt);
+endchar;
+
+"DoubleLineLong";
+beginchar("D",10pt#,10pt#,0);
+ pickup normalpen; draw (0pt,0pt)--(10pt,0pt); draw (0pt,10pt)--(10pt,10pt);
+endchar;
+
+"HighLineLong";
+beginchar("H",10pt#,10pt#,0);
+ pickup normalpen; draw (0pt,10pt)--(10pt,10pt);
+endchar;
+
+"Opening";
+beginchar("<",5pt#,10pt#,0);
+ pickup normalpen; draw (w,h)--(0,.5h)--(w,0);
+endchar;
+
+"Closing";
+beginchar(">",5pt#,10pt#,0);
+ pickup normalpen; draw (0,h)--(w,.5h)--(0,0);
+endchar;
+
+"LongOpening"; % <<
+beginchar(61,10pt#,10pt#,0);
+ pickup normalpen; draw (w,h)--(0,.5h)--(w,0);
+endchar;
+
+"LongClosing"; % >>
+beginchar(63,10pt#,10pt#,0);
+ pickup normalpen; draw (0,h)--(w,.5h)--(0,0);
+endchar;
+
+ligtable "l":
+ "l" =: "L",
+ "h" |=:| "|",
+ "H" |=:| "|";
+ligtable "h":
+ "h" =: "H",
+ "l" |=:| "|",
+ "L" |=:| "|";
+ligtable "L":
+ "h" |=:| "|",
+ "H" |=:| "|";
+ligtable "H":
+ "l" |=:| "|",
+ "L" |=:| "|";
+ligtable "<":
+ "<" =: 61;
+ligtable ">":
+ ">" =: 63;
+
+%
+% alpine symbols
+%
+"SummitSign";
+beginchar(16,8pt#,9pt#,0);
+ pickup boldpen;
+ draw (4pt,1pt)--(4pt,8pt); draw (1pt,6pt)--(7pt,6pt);
+endchar;
+
+"StoneMan";
+beginchar(17,6pt#,8pt#,0);
+ pickup normalpen;
+ fill (0pt,1pt)--(5pt,1pt)--(2.5pt,8pt)--cycle;
+endchar;
+
+"Hut";
+beginchar(18,8pt#,9pt#,0);
+ pickup normalpen;
+ draw (1pt,5pt)--(1pt,1pt)--(7pt,1pt)--(7pt,5pt)--
+ (8pt,5pt)--(4pt,9pt)--(0pt,5pt)--cycle;
+endchar;
+
+"FilledHut";
+beginchar(19,8pt#,9pt#,0);
+ pickup normalpen;
+ fill (1pt,5pt)--(1pt,1pt)--(7pt,1pt)--(7pt,5pt)--
+ (8pt,5pt)--(4pt,9pt)--(0pt,5pt)--cycle;
+endchar;
+
+"Summit";
+beginchar(20,10pt#,10pt#,0);
+ pickup normalpen;
+ fill (-0.5pt,-0.5pt)--(0.5pt,-0.5pt)--(0pt,0.5pt)--cycle
+ scaled 10 shifted(5pt,5pt);
+endchar;
+
+"Mountain";
+beginchar(21,10pt#,0pt#,0);
+ pickup normalpen;
+ fill (0pt,0pt)--(10pt,0pt)--(7pt,5pt)--cycle;
+ fill (0pt,0pt)--(3pt,8pt)--(7pt,0pt)--cycle;
+endchar;
+
+"IceMountain";
+beginchar(22,10pt#,0pt#,0);
+ pickup normalpen;
+ fill (0pt,0pt)--(10pt,0pt)--(7pt,5pt)--cycle;
+ draw (0pt,0pt)--(3pt,8pt)--(7pt,0pt)--cycle;
+endchar;
+
+"Mountain2";
+beginchar(23,10pt#,0pt#,0);
+ pickup normalpen;
+ fill (0pt,0pt)--(2pt,6.5pt)--(3.4pt,3.3pt)--(5.6pt,4.3pt)--
+ (6.5pt,3pt)--(7.2pt,3.8pt)--(10pt,0pt)--cycle;
+endchar;
+
+"IceMountain2";
+beginchar(24,10pt#,0pt#,0);
+ pickup normalpen;
+ fill (0pt,0pt)--(2pt,6.5pt)--(3.4pt,3.3pt)--(5.6pt,4.3pt)--
+ (6.5pt,3pt)--(7.2pt,3.8pt)--(10pt,0pt)--cycle;
+ unfill (0.6pt,1.6pt)--(1.9pt,6.1pt)--(1.9pt,3.9pt)--(3.2pt,2.9pt)--
+ (5.6pt,4.1pt)--(5.2pt,3.4pt)--(6.2pt,3.1pt)--(4.0pt,2.1pt)--cycle;
+ unfill (3.5pt,1.2pt)--(5.9pt,2.7pt)--(7.2pt,3.6pt)--(6.9pt,1.7pt)--cycle;
+endchar;
+
+"Vermessung";
+beginchar(25,8pt#,8pt#,0);
+ pickup normalpen;
+ draw (0pt,0pt)--(8pt,0pt)--(4pt,8pt)--cycle;
+ pickup boldpen;
+ drawdot (4pt,3pt);
+endchar;
+
+"Joch";
+beginchar(26,6pt#,8pt#,0);
+ pickup normalpen;
+ fill (0pt,0pt)--(2pt,2pt)--(2pt,6pt)--(0pt,8pt)--
+ (1pt,6pt)--(1pt,2pt)--cycle;
+ fill (6pt,0pt)--(4pt,2pt)--(4pt,6pt)--(6pt,8pt)--
+ (5pt,6pt)--(5pt,2pt)--cycle;
+endchar;
+
+"Fahne";
+beginchar(27,10pt#,10pt#,0);
+ pickup normalpen;
+ draw (3pt,0pt)--(3pt,10pt);
+ fill (3pt,10pt)--(0pt,8pt)--(3pt,6pt)--cycle;
+endchar;
+
+"varFahne";
+beginchar(29,10pt#,10pt#,0);
+ pickup normalpen;
+ draw (3pt,0pt)--(3pt,10pt);
+ fill (3pt,10pt)--(0pt,10pt)--(0pt,7pt)--(3pt,7pt)--cycle;
+endchar;
+
+"Zelt";
+beginchar(28,10pt#,10pt#,0);
+ z0 = (0pt,0pt);
+ z1 = (10pt,0pt);
+ z2 = (5pt,7pt);
+ pickup normalpen;
+ fill z0--z1--z2--cycle;
+ draw 1.3[z0,z2]--z0--z1--1.3[z1,z2];
+ unfill (3pt,0pt)--(7pt,0pt)--(5pt,3pt)--cycle;
+endchar;
+
+"HalfFilledHut";
+beginchar(31,8pt#,9pt#,0);
+ pickup normalpen;
+ draw (1pt,5pt)--(1pt,1pt)--(7pt,1pt)--(7pt,5pt)--
+ (8pt,5pt)--(4pt,9pt)--(0pt,5pt)--cycle;
+ fill (1pt,1pt)--(7pt,1pt)--(7pt,5pt)--cycle;
+endchar;
+
+"WhiteSummit";
+beginchar(30,10pt#,10pt#,0);
+ pickup normalpen;
+ path p;
+ p:= (-0.5pt,-0.5pt)--(0.5pt,-0.5pt)--(0pt,0.5pt)--cycle;
+ draw p scaled 10 shifted(5pt,5pt);
+endchar;
+
+end.
+
+%%%%%%%%%%%%%%%%%% end of ifsym.gen %%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifsym10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifsym10.mf
new file mode 100644
index 00000000000..87c084a2d81
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifsym10.mf
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%% ifsym10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% miscellaneous and alpinistic symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=0.5pt;
+italic=0; boldface=0;
+input ifsym.gen;
+%%%%%%%%%%%%%%%%%% end of ifsym10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifsymb10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifsymb10.mf
new file mode 100644
index 00000000000..28fece69a2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifsymb10.mf
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%% ifsymb10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% weather and miscellaneous symbols, bold-faced
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=1.25pt;
+italic=0; boldface=1;
+input ifsym.gen;
+%%%%%%%%%%%%%%%%%% end of ifsymb10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifsymbi10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifsymbi10.mf
new file mode 100644
index 00000000000..2071a6c6786
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifsymbi10.mf
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%% ifsymi10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% miscellaneous and alpinistic symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=1.25pt;
+italic=1; boldface=1;
+input ifsym.gen;
+%%%%%%%%%%%%%%%%%% end of ifsymi10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifsymi10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifsymi10.mf
new file mode 100644
index 00000000000..3b2e07bf820
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifsymi10.mf
@@ -0,0 +1,20 @@
+%%%%%%%%%%%%%%%%%% ifsymi10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% miscellaneous and alpinistic symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=0.5pt;
+italic=1; boldface=0;
+input ifsym.gen;
+%%%%%%%%%%%%%%%%%% end of ifsymi10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifwea.gen b/Master/texmf-dist/fonts/source/public/ifsym/ifwea.gen
new file mode 100644
index 00000000000..9f70d2b8ee4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifwea.gen
@@ -0,0 +1,313 @@
+%%%%%%%%%%%%%%%%%% ifwea.gen %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% weather symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+
+pen normalpen;
+normalpen := pencircle scaled .75linewidth;
+
+%
+% centers of wind symbol
+%
+"BlueSky";
+beginchar(0,4pt#,4pt#,0);
+ pickup normalpen;
+ draw fullcircle scaled 4pt shifted (2pt,2pt);
+endchar;
+
+"BlueSky3/4";
+beginchar(1,4pt#,4pt#,0);
+ pickup normalpen;
+ draw fullcircle scaled 4pt shifted (2pt,2pt);
+ fill quartercircle scaled 4pt shifted(2pt,2pt)--(2pt,2pt)--cycle;
+endchar;
+
+"BlueSky2/4";
+beginchar(2,4pt#,4pt#,0);
+ pickup normalpen;
+ draw fullcircle scaled 4pt shifted (2pt,2pt);
+ fill halfcircle scaled 4pt shifted (2pt,2pt)--(2pt,2pt)--cycle;
+endchar;
+
+"BlueSky1/4";
+beginchar(3,4pt#,4pt#,0);
+ pickup normalpen;
+ draw fullcircle scaled 4pt shifted (2pt,2pt);
+ fill halfcircle scaled 4pt rotated 180 shifted(2pt,2pt)--(2pt,2pt)--cycle;
+ fill quartercircle scaled 4pt rotated -90 shifted(2pt,2pt)--(2pt,2pt)--cycle;
+endchar;
+
+"CloudySky";
+beginchar(4,4pt#,4pt#,0);
+ pickup normalpen;
+ fill fullcircle scaled 4pt shifted (2pt,2pt);
+endchar;
+
+%
+% nice thermometers
+%
+def Thermo(expr n, height) =
+ beginchar((char n),3pt#,10pt#,0);
+ pickup pencircle scaled .5linewidth;
+ fill fullcircle scaled 3pt shifted (1.5pt,1.5pt);
+
+ pickup pencircle scaled .2linewidth;
+ draw (0.5pt,2pt)--(0.5pt,9pt)..(1.5pt,10pt)..(2.5pt,9pt)--(2.5pt,2pt)--cycle;
+ draw (1.5pt,2pt)--(1.5pt,9pt);
+ path p; p := (1pt,1pt)--(2pt,1pt);
+ for i=2 upto 8:
+ draw p shifted(0, i*1pt);
+ endfor;
+
+ fill (1.2pt,2pt)--(1.2pt,height*1pt)--(1.8pt,height*1pt)--(1.8pt,2pt)--cycle;
+endchar;
+enddef;
+
+"Thermoa"; Thermo(5,3);
+"Thermob"; Thermo(6,4);
+"Thermoc"; Thermo(7,5);
+"Thermod"; Thermo(8,6);
+"Thermoe"; Thermo(9,7);
+"Thermof"; Thermo(10,8);
+"Thermog"; Thermo(11,9);
+
+%
+% popular weather symbols
+%
+"Sun";
+beginchar(16,10pt#,10pt#,0);
+ pickup normalpen;
+ draw fullcircle scaled 5pt shifted (5pt,5pt);
+ path p;
+ p=(7.5pt,5pt)--(10pt,5pt);
+ for i=0 upto 7:
+ draw p rotatedaround ((5pt,5pt),(i*45));
+ endfor;
+endchar;
+
+"Halfsun";
+beginchar(17,10pt#,10pt#,0);
+ pickup normalpen;
+ draw fullcircle scaled 5pt shifted (5pt,5pt);
+ fill halfcircle--cycle scaled 5pt rotated (180) shifted (5pt,5pt);
+ path p;
+ p=(7.5pt,5pt)--(10pt,5pt);
+ for i=0 upto 4:
+ draw p rotatedaround ((5pt,5pt),(i*45));
+ endfor;
+endchar;
+
+"Nosun";
+beginchar(18,10pt#,10pt#,0);
+ pickup normalpen;
+ fill fullcircle scaled 7pt shifted (5pt,5pt);
+endchar;
+
+"Fog";
+beginchar(19,10pt#,10pt#,0);
+pickup pencircle scaled 0.5linewidth;
+ for i=.1h step .1h until .9h:
+ for j=0 step .3w until .7w:
+ draw (j,i)--(j+.2w,i);
+ endfor
+ endfor
+endchar;
+
+
+"ThinFog";
+beginchar(20,10pt#,10pt#,0);
+pickup pencircle scaled .25linewidth;
+ for i=.1h step .1h until .9h:
+ for j=0 step .3w until .7w:
+ draw (j,i)--(j+.2w,i);
+ endfor
+ endfor
+endchar;
+
+"Rain";
+beginchar(21,10pt#,10pt#,0);
+pickup normalpen;
+for i=1 step 2 until 7:
+ draw (i*1pt,1pt)--((i+2)*1pt,4pt); draw((i+1)*1pt,5pt)--((i+3)*1pt,8pt);
+endfor;
+endchar;
+
+"WeakRain";
+beginchar(22,10pt#,10pt#,0);
+pickup pencircle scaled .5linewidth;
+for i:=1 step 2 until 7:
+ draw (i*1pt,1pt)--((i+1)*1pt,2pt);
+ draw((i+1)*1pt,4pt)--((i+2)*1pt,5pt);
+ draw((i+2)*1pt,7pt)--((i+3)*1pt,8pt);
+endfor;
+endchar;
+
+"Hagel";
+beginchar(23,10pt#,10pt#,0);
+pickup pencircle scaled 4linewidth;
+drawdot(3pt,3pt); drawdot(1pt,8pt); drawdot(6pt,7pt);
+drawdot(1pt,1pt); drawdot(8pt,2pt); drawdot(3pt,6pt);
+drawdot(7pt,3pt); drawdot(3pt,8pt); drawdot(6pt,1pt);
+endchar;
+
+"Graupel";
+beginchar(24,10pt#,10pt#,0);
+pickup pencircle scaled 2linewidth;
+drawdot(3pt,3pt); drawdot(1pt,8pt); drawdot(6pt,7pt);
+drawdot(1pt,1pt); drawdot(8pt,2pt); drawdot(3pt,6pt);
+drawdot(7pt,3pt); drawdot(3pt,8pt); drawdot(6pt,1pt);
+endchar;
+
+"Snow";
+beginchar(25,10pt#,10pt#,0);
+ pickup normalpen;
+ path p[];
+ p1 = (0,0)--(4pt,0);
+ p2 = (4pt,-1pt)--(3pt,0)--(4pt,1pt);
+ for i:=0 upto 5:
+ draw p1 rotated (i*60) shifted(5pt,5pt);
+ draw p2 shifted(-2pt,0) rotated (i*60) shifted(5pt,5pt);
+ draw p2 shifted(-1pt,0) rotated (i*60) shifted(5pt,5pt);
+ draw p2 rotated (i*60) shifted(5pt,5pt);
+ endfor;
+endchar;
+
+"Blitz";
+beginchar(26,10pt#,10pt#,0);
+ pickup normalpen;
+ fill (6.4pt,10pt)--(8.7pt,8.4pt)--(5.6pt,4.1pt)--(4.4pt,4.9pt)--(2.4pt,2.1pt)--
+ (3.9pt,1.6pt)--(0,0)--(1.1pt,4pt)--(1.6pt,2.4pt)--(3.5pt,8.5pt)--
+ (5pt,6pt)--cycle;
+endchar;
+
+path cloud;
+cloud = (5.0pt,0.0pt){left}..{up}(0.0pt,3.2pt){up}..{right}(2.1pt,5.7pt){right}..
+ {dir -60}(4.0pt,4.2pt){dir 40}..{dir -40}(5.5pt,4.1pt){dir -40}..
+ {dir -80}(6.1pt,2.4pt){dir 60}..{right}(7.8pt,3.3pt){right}..
+ {down}(9.3pt,2.0pt){down}..{left}cycle;
+
+"Cloud";
+beginchar(27,10pt#,6pt#,0);
+ pickup normalpen;
+ draw cloud;
+endchar;
+
+"RainCloud";
+beginchar(28,10pt#,10pt#,0);
+ pickup normalpen;
+ draw cloud shifted(0, 4pt);
+ for i=0 step 3 until 6:
+ draw (i*1pt,1pt)--((i+1)*1pt,4pt);
+ draw ((i+1)*1pt,0)--((i+2)*1pt,3pt);
+ endfor;
+endchar;
+
+"WeakRainCloud";
+beginchar(29,10pt#,6pt#,0);
+ pickup normalpen;
+ draw cloud shifted(0, 4pt);
+ for i=0 step 3 until 6:
+ draw (i*1pt,1pt)--((i+1)*1pt,4pt);
+ endfor;
+endchar;
+
+"SunCloud";
+beginchar(30,10pt#,10pt#,0);
+ pickup normalpen;
+ draw fullcircle scaled 4pt shifted (6pt,5pt);
+ path p;
+ p=(8pt,5pt)--(10pt,5pt);
+ for i=0 upto 7:
+ draw p rotatedaround ((6pt,5pt),(i*45));
+ endfor;
+ unfill cloud; draw cloud;
+endchar;
+
+"SnowCloud";
+beginchar(31,10pt#,10pt#,0);
+ pickup normalpen;
+ draw cloud shifted(0, 4pt);
+ pickup pencircle scaled 2linewidth;
+ drawdot(3pt,3pt); drawdot(6pt,2pt); drawdot(2pt,3pt);
+ drawdot(1pt,0); drawdot(8pt,1pt); drawdot(9pt,3pt);
+ drawdot(7pt,3pt); drawdot(4pt,0); drawdot(5pt,2pt);
+endchar;
+
+"FilledCloud";
+beginchar(32,10pt#,6pt#,0);
+ pickup normalpen;
+ fill cloud;
+endchar;
+
+"FilledRainCloud";
+beginchar(33,10pt#,10pt#,0);
+ pickup normalpen;
+ fill cloud shifted(0, 4pt);
+ for i=0 step 3 until 6:
+ draw (i*1pt,1pt)--((i+1)*1pt,4pt);
+ draw ((i+1)*1pt,0)--((i+2)*1pt,3pt);
+ endfor;
+endchar;
+
+"FilledWeakRainCloud";
+beginchar(34,10pt#,6pt#,0);
+ pickup normalpen;
+ fill cloud shifted(0, 4pt);
+ for i=0 step 3 until 6:
+ draw (i*1pt,1pt)--((i+1)*1pt,4pt);
+ endfor;
+endchar;
+
+"FilledSunCloud";
+beginchar(35,10pt#,10pt#,0);
+ pickup normalpen;
+ draw fullcircle scaled 4pt shifted (6pt,5pt);
+ path p;
+ p=(8pt,5pt)--(10pt,5pt);
+ for i=0 upto 7:
+ draw p rotatedaround ((6pt,5pt),(i*45));
+ endfor;
+ fill cloud;
+endchar;
+
+"FilledSnowCloud";
+beginchar(36,10pt#,10pt#,0);
+ pickup normalpen;
+ fill cloud shifted(0, 4pt);
+ pickup pencircle scaled 2linewidth;
+ drawdot(3pt,3pt); drawdot(6pt,2pt); drawdot(2pt,3pt);
+ drawdot(1pt,0); drawdot(8pt,1pt); drawdot(9pt,3pt);
+ drawdot(7pt,3pt); drawdot(4pt,0); drawdot(5pt,2pt);
+endchar;
+
+%HalfWeakRainCloud 165
+%CloudBlitz 166
+
+def wind(expr n, strength) =
+ beginchar((char n),0pt#,11pt#,0);
+ pickup normalpen;
+ draw (0,4pt)--(0,10pt);
+ for k=0 upto strength/2:
+ draw (0,(10-k)*1pt)--(-2pt,(11-k)*1pt);
+ endfor
+ if (strength mod 2 = 1):
+ draw (0,(9.5-strength/2)*1pt)--(-1pt,(10-strength/2)*1pt);
+ fi
+endchar;
+enddef;
+
+for j=0 step 1 until 10:
+ wind(48+j,j);
+endfor;
+
+end.
+%%%%%%%%%%%%%%%%%% end of ifwea.gen %%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifwea10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifwea10.mf
new file mode 100644
index 00000000000..a0086ad9cc8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifwea10.mf
@@ -0,0 +1,22 @@
+%%%%%%%%%%%%%%%%%% ifwea10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% weather symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=0.5pt;
+
+input ifwea.gen;
+
+%%%%%%%%%%%%%%%%%% end of ifwea10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ifsym/ifweab10.mf b/Master/texmf-dist/fonts/source/public/ifsym/ifweab10.mf
new file mode 100644
index 00000000000..63d7373298b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ifsym/ifweab10.mf
@@ -0,0 +1,22 @@
+%%%%%%%%%%%%%%%%%% ifwea10.mf %%%%%%%%%%%%%%%%%%%%%%%
+% (c) Ingo Kloeckl
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+% History
+% 20.12.1999 v1.0 IK
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% weather symbols
+% by I.Kloeckl, ingo.kloeckl@2k-software.de
+
+font_size=10pt#;
+mode_setup;
+design_size=10pt#;
+linewidth=1.0pt;
+
+input ifwea.gen;
+
+%%%%%%%%%%%%%%%%%% end of ifwea10.mf %%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kan12.mf b/Master/texmf-dist/fonts/source/public/itrans/kan12.mf
new file mode 100644
index 00000000000..77c76cd2d2d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kan12.mf
@@ -0,0 +1,7 @@
+%kan12%
+%input kanmode;
+font_size 12pt#;
+slant:=0;
+pen_width#:=0.5pt#;
+input kanmain;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kan12b.mf b/Master/texmf-dist/fonts/source/public/itrans/kan12b.mf
new file mode 100644
index 00000000000..24b4b8bcf21
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kan12b.mf
@@ -0,0 +1,7 @@
+%kan12b%
+%input kanmode;
+font_size 12pt#;
+slant:=0;
+pen_width#:=0.68pt#;
+input kanmain;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kan12nx.mf b/Master/texmf-dist/fonts/source/public/itrans/kan12nx.mf
new file mode 100644
index 00000000000..4c08daab7a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kan12nx.mf
@@ -0,0 +1,10 @@
+%kan12nx% non-uniform pen(x-axis)
+%input kanmode;
+font_size 12pt#;
+slant:=0;
+pen_width#:=0.74pt#;
+vardef special_kanpen =
+ pickup pencircle xscaled (pen_width/2) yscaled (pen_width);
+enddef;
+input kanmain;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kan12ny.mf b/Master/texmf-dist/fonts/source/public/itrans/kan12ny.mf
new file mode 100644
index 00000000000..7c75f240bd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kan12ny.mf
@@ -0,0 +1,10 @@
+%kan12ny% non-uniform pen(y-axis)
+%input kanmode;
+font_size 12pt#;
+slant:=0;
+pen_width#:=0.65pt#;
+vardef special_kanpen =
+ pickup pencircle xscaled pen_width yscaled (pen_width/2);
+enddef;
+input kanmain;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kan12s.mf b/Master/texmf-dist/fonts/source/public/itrans/kan12s.mf
new file mode 100644
index 00000000000..a06fd7485a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kan12s.mf
@@ -0,0 +1,7 @@
+%kan12s%
+%input kanmode;
+font_size 12pt#;
+slant:=1/4;
+pen_width#:=0.61pt#;
+input kanmain;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kan18.mf b/Master/texmf-dist/fonts/source/public/itrans/kan18.mf
new file mode 100644
index 00000000000..eaa54528774
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kan18.mf
@@ -0,0 +1,7 @@
+%kan18%
+%input kanmode;
+font_size 18pt#;
+slant:=0;
+pen_width#:=0.86pt#;
+input kanmain;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kanbase.mf b/Master/texmf-dist/fonts/source/public/itrans/kanbase.mf
new file mode 100644
index 00000000000..8aab7aeb8cf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kanbase.mf
@@ -0,0 +1,896 @@
+% This file is part of the KannadaTeX Software Package.
+%Copyright (c) 1991 G.S. Jagadeesh & Venkatesh. Gopinath.
+%
+%Author: Modified from TeluguTex by, GS. Jagadeesh.
+%The KannadaTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the KannadaTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the KannadaTeX Software Package, but only under the conditions described in the
+%KannadaTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with KannadaTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+
+% This file contains several macros. These are used for setting
+% up the environment and character generation. Before you change
+% anything in this file you should be very clear about the impact
+% of the change.
+%
+ % when testing is false all symbols in the font are
+ % generated automatically else when testing is true
+ % only selected symbols will be generated.
+
+
+if unknown testing:boolean testing; testing:=false; fi
+showstopping := 1; % for debugging only
+let kanchar=\;
+let generate=input;
+let sketch=draw;
+let pos=penpos;
+let stop=bye;
+string tl_symname,tl_stra,tl_strb,tl_strc,tl_strw,tl_strx,tl_stry;
+ % contains the name of the symbol being created
+tl_symname:=""; % used for creating substitute commands on log file
+tl_stra:="OFFSETA{"; tl_strb:="OFFSETB{"; tl_strc:="OFFSETC{";
+tl_strw:="CODE{";
+tl_strx:="\def\";tl_stry:="}%";
+
+
+if testing:
+ %To test different characters use following definitions of
+ % stest and etest.
+ def stest (text s) =
+ quote def s =
+ enddef;
+ let etest=enddef;
+else:
+ %To generate all the characters use following definitions of
+ % stest and etest.
+ def stest (text s) =
+ tl_symname := str s;% symbol name - used in various messages
+ enddef;
+ let etest=;;
+fi;
+
+let ee:=end;
+
+% We should be very careful about implications of currenttransform
+% (particularly 'slanted' transform). When a path is drawn/filled
+% currenttransform is applied. When a transform is applied to
+% currentpicture, the transform is really applied to slanted (or
+% whatever currenttransform is) path.
+def font_setup =
+ let adjust_fit = normal_adjust_fit;
+ currenttransform := currenttransform slanted slant;
+ define_pixels(u,v,uh,asc_height,des_depth,x_height);
+ define_pixels(pen_width,ul,ur,em_width);
+
+ define_pixels(pen_thick,ul,ur,em_width);
+
+ define_pixels(bot_depth,top_height);
+ define_pixels(fig_height,kfig_height,kfig_width);
+ define_pixels(ascunit,vmwidth);
+ define_pixels(top_accent,bot_accent);
+ define_pixels(bot_cc_ceiling,bot_cc_floor,bot_cc_width,ccwidth);
+ define_pixels(c_height,w_height,j_height);
+ define_pixels(asc_height1,asc_height2);
+ define_pixels(dot_radius,wedge_height,wedge_depth);
+ define_pixels(half_plus_width,sc_height);
+
+ define_pixels(v_a_width,v_e_width,v_u_width, v_uu_width);
+ define_pixels(v_ro_width,v_ea_width,v_i_width);
+
+ define_pixels(vm_a_width,vm_aa_width,vm_e_width,vm_ee_width,vm_e_height1);
+ define_pixels(vm_e_height2,vm_e_heightx,vm_e_heightj, vm_u_width, vm_uu_width);
+ define_pixels(vm_ro_width,vm_y_width,vm_bar_width, vm_ao_width,vm_aoo_width);
+ define_pixels(vm_ea_width, vm_ea_height, vm_ea1_width, vm_ah_height, vm_ah_width, vm_au_width);
+
+ define_pixels(cb_ka_width,cb_kha_width,cb_ga_width,cb_cha_width);
+ define_pixels(cb_ja_width,cb_tta_width,cb_nna_width);
+ define_pixels(cb_ta_width,cb_da_width,cb_na_width);
+ define_pixels(cb_ba_width,cb_ya_width,cb_ra_width, cb_rra_width);
+ define_pixels(cb_la_width,cb_lla_width,cb_pa_width,cb_ca_width);
+ define_pixels(cb_sha_width,cb_ksha_width);
+ define_pixels(cb_ksha_depth);
+ define_pixels(cb_np_width,cb_vg_width, cb_ha_width);
+
+ define_pixels(cv_pu_width,cv_pu_depth);
+
+ define_pixels(p_comma_width);
+
+ %define pen
+ if unknown special_kanpen:
+ pickup pencircle scaled pen_width;
+ %pickup pencircle xscaled 1/2pt yscaled 1/3 rotated -35;
+ %pickup pencircle yscaled pen_width xscaled pen_thick rotated 30 ;
+ kanpen:=savepen;
+ else:
+ special_kanpen;
+ kanpen:=savepen;
+ fi;
+
+ %print titles if generating font
+ if unknown offsets_only:
+ tracingtitles:=1;
+ fi;
+enddef;
+
+newinternal l,r; %adjustment to spacing
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l := -hround(left_adjustment*hppp);
+ interim xoffset := -l;
+ charwd := charwd + left_adjustment + right_adjustment;
+ r := l+hround(charwd*hppp) ;
+ w := r - hround(right_adjustment*hppp) ;
+enddef;
+
+def makebox(text rule) =
+ for y=0,asc_height,-des_depth,x_height,-bot_depth,
+ top_height,w_height,c_height,
+ j_height: rule((l,y)t_,(r,y)t_); % horizontal rules
+ endfor;
+ rule((0,h),(r+pen_width,h)); rule((0,-d),(r+pen_width,-d));%height,depth markers
+ for x=l,r:rule((x,-bot_depth)t_,(x,top_height)t_); % vertical
+ endfor;
+ for x=u*(1+floor(l/u)) step u until r-1:
+ rule((x,-bot_depth)t_,(x,top_height)t_);
+ endfor; % vertical lines at each u
+ if charic <> 0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_));
+ fi % italic correction
+enddef;
+
+rulepen := pensquare;
+
+def begintchar(expr a,b,c,d,e,f,g) =
+ beginchar(a,b,c,d);
+ italcorr e;
+ if known offsets_only:
+ message tl_strx&tl_symname&tl_strw&decimal(a)&tl_stry;
+ fi;
+ numeric left_space,right_space,l_s,r_s;
+ l_s:=f; r_s:=g;
+ left_space:=hround(hppp*f); right_space:=hround(hppp*g);
+ pickup kanpen;
+ enddef;
+
+extra_endchar := extra_endchar&"w:=r-l;";
+
+def endtchar =
+ charwd:=w/hppp; charht:= h/vppp; chardp:= d/vppp;
+ adjust_fit(l_s,r_s);
+ penlabels(range 1 thru 20);
+ message "";
+ % If any special effects are needed then those should be
+ % defined as special_effects macro.
+ if known special_effects: special_effects; fi;
+ endchar;
+ enddef;
+
+% pivot_message macro is used to print offsets to certain points
+% in the symbol being generated. These offsets are used by syllable
+% building macros to allign vowel modifiers/consonant conjuncts.
+% Unlike in english where all symbols stand alone, in Kannada
+% various symbols in the font combine to form text.
+% For consonant bases two/three offsets are identified. One is used to place
+% vowel modifiers and the other is used to place consonant conjuncts(excluding
+% those that appear on side). Third offset is used in attaching vowel modifiers
+% in some special cases. Offsets have suffixes A,B and C.
+% Vowel modifiers, accents and consonant
+% conjuncts that appear above/below base consonant indicate one offset value.
+% Same macro works in all cases.
+% The messages are in the form of TeX macros.
+% The log file contains TeX macros mixed with other messages. Use
+% some pattern matching program like grep to eliminate all lines containing
+% not begining with a \ sign. Name this file tloffsets.
+% grep '^\\' xxxxx.log>tloffsets.tex
+% The offsets are in em units. So the offsets would be same for any designsize
+% and pen width combination.
+% Print the offsets only when offsets are being generated.
+if unknown offsets_only: % do not print offsets
+ def pivot_message (text t) =
+ enddef;
+else: %print offsets
+ def pivot_message (text t) =
+ numeric count,piv[],index;
+ % count indicates the number of arguments
+ count:=0;
+ for index=t: count:=count+1; piv[count]:=index; endfor;
+ if count=1:
+ message tl_strx&tl_symname&tl_stra&decimal((piv[1]+left_space)/em_width)&tl_stry;
+ elseif count=2:
+ message tl_strx&tl_symname&tl_stra&decimal((piv[1]+left_space)/em_width)&tl_stry;
+ message tl_strx&tl_symname&tl_strb&decimal((piv[2]+left_space)/em_width)&tl_stry;
+ else:
+ message tl_strx&tl_symname&tl_stra&decimal((piv[1]+left_space)/em_width)&tl_stry;
+ message tl_strx&tl_symname&tl_strb&decimal((piv[2]+left_space)/em_width)&tl_stry;
+ message tl_strx&tl_symname&tl_strc&decimal((piv[3]+left_space)/em_width)&tl_stry;
+
+ fi;
+ enddef;
+fi;%end of if unknown offsets
+
+def fill_dot(suffix $) =
+ z$t = (x$,y$+dot_radius);
+ z$l = (x$-dot_radius,y$);
+ z$b = (x$,y$-dot_radius);
+ z$r = (x$+dot_radius,y$);
+ path fill_dot_p;
+ fill_dot_p = z$t..z$l..z$b..z$r..cycle;
+ fill fill_dot_p;
+ penlabels($t,$l,$b,$r);
+ enddef;
+
+def fill_dotb(suffix $) =
+ z$t = (x$,y$+.75dot_radius);
+ z$l = (x$-.75dot_radius,y$);
+ z$b = (x$,y$-.75dot_radius);
+ z$r = (x$+.75dot_radius,y$);
+ path fill_dot_p;
+ fill_dot_p = z$t..z$l..z$b..z$r..cycle;
+ fill fill_dot_p;
+ penlabels($t,$l,$b,$r);
+ enddef;
+
+def lit_cir_form =
+ lft z61l = (0,c_height/2); top z61t = (c_height/2,c_height);
+ rt z61 = (c_height,c_height/2); bot z61b = (c_height/2,0);
+ path lit_cir_p;
+ lit_cir_p = z61..z61t..z61l..z61b..cycle;
+ sketch lit_cir_p;
+ penlabels(61t,61l,61b);
+ enddef;
+
+def barandhook_formk (suffix $)(expr bar_width,t) =
+ z$a=(x$+bar_width-u,y$); rt z$b=(x$a+u,y$-uh);
+ bot z$c =(x$b-u,y$-2uh); lft z$d=(x$b-2u,y$b);
+ top z$e=(x$a-u,y$); rt z$f=(x$b,y$+1.5uh);
+ top z$g=(x$a,y$f+uh); z$h=(x$d,y$f);
+path barandhook_p;
+barandhook_p= subpath(0,t) of (rt z$--z$a..z$b..z$c..z$d..z$e..z$f..z$g..z$h);
+sketch barandhook_p;
+penlabels($a,$b,$c,$d);
+enddef;
+
+def wedge(suffix $) =
+bot z$w=(x$,-wedge_depth);
+ path wedge_p;
+ wedge_p = z$--z$w;
+ sketch wedge_p;
+ penlabels($u,$v,$w,$x,$y);
+ enddef;
+
+
+def vm_hook_form (suffix $)(expr t) =
+ z$a = (x$,y$+1.5ascunit);
+ z$b = (x$+u,y$+3ascunit);
+ z$c = (x$+2u,y$+1.5ascunit);
+ sketch subpath (0,t) of (z$..z$a..z$b..z$c);
+ penlabels ($a,$b,$c);
+ h:=top y$b;
+enddef;
+
+ def v_a_form =
+ top z1=(1/4v_a_width,x_height);
+ z10=(x1-u,y1-uh); z11=(x1,y1-2(y1-y10));
+ lft z3=(0,2/3x_height); bot z4=(1/2v_a_width,0);
+ rt z5=(v_a_width,2/3x_height); top z6=(v_a_width-1.5u,x_height);
+ z7=(3.5/5x5,1/2x_height); z8=(1/4w,1/2x_height);
+ z12=(.65v_a_width,5/6x_height); rt z2=(v_a_width,1/2x_height);
+ enddef;
+
+def v_e_form =
+ lft z1=(0,j_height); top z2=(1/5v_e_width,x_height);
+ z3=(2/5v_e_width,1.2j_height); top z4=(3/5v_e_width,x_height);
+ rt z5=(v_e_width,1/2x_height); z6=(4/5v_e_width,1/5x_height);
+ bot z7=(1/2v_e_width,0); z8=(1/5v_e_width,1/4x_height);
+ z9=(1/2v_e_width,1/2x_height); rt z10=(v_e_width,-1/5des_depth);
+ path v_e_p;
+ v_e_p = z1..z2..tension 1.2..z3&z3..tension 1.2..z4..z5..z6..z7..z8..z9..z10;
+ sketch v_e_p;
+ enddef;
+
+def v_u_form =
+ z1=(v_u_width-1/2w_height,1/2w_height); z2=(v_u_width-u,w_height);
+ rt z3=(v_u_width,1/6x_height); bot z4=(3/4v_u_width,0);
+ z5=(1/2v_u_width,w_height); bot z6=(1/3v_u_width,0);
+ lft z7=(0,1/2x_height); top z8=(1/2v_u_width,x_height);
+ top z9=(v_u_width-w_height,x_height);
+path v_u_p;
+v_u_p=z1..z2..z3..z4..tension 1.2..z5&z5..tension 1.2..z6..z7..z8..z9;
+sketch v_u_p;
+ enddef;
+
+def v_lo_form =
+ lft z1=(0,j_height); top z2=(v_lo_width/5,x_height);
+ z3=(2/5v_lo_width,j_height); top z4=(3/5v_lo_width,x_height);
+ z5=(4/5v_lo_width,j_height); z6=(3/5v_lo_width,w_height);
+ bot z7=(4/5v_lo_width,0); rt z8=(v_lo_width,1/2x_height);
+ top z9=(9/10v_lo_width,x_height);
+ path v_lo_p;
+v_lo_p= z1..z2..z3&z3..z4..z5..z6..z7..z8..z9;
+sketch v_lo_p;
+ enddef;
+
+def v_ea_form =
+ lit_cir_form;
+ bot z2=(2/3v_ea_width,0); rt z3=(v_ea_width,1/3x_height);
+ z4=(2/3v_ea_width,4/5x_height);top z5=(1/3v_ea_width,x_height);
+sketch z1..z2..z3..z4..z5;
+ enddef;
+
+ def vm_a_form (suffix $) =
+ path vm_a_p ;
+ top lft z$a=(x$-2/5vm_a_width,asc_height1);
+ top rt z$b=(x$+3/5vm_a_width,asc_height);
+ z$c = z$;
+ vm_a_p = z$a..tension 6..z$c..tension 16..z$b;
+ sketch vm_a_p;
+ penlabels($a,$b,$c);
+ enddef;
+
+def vm_e_form =
+ lft z1 = (0,x_height+1.2ascunit);
+ top z2 = (1/2vm_e_width,x_height);
+ rt z3 = (vm_e_width,x_height+2ascunit);
+ lft z5 = (0,x_height+3ascunit);
+ z6 = (1/2vm_e_width,y5);
+ top z7=(1/2vm_e_width,vm_e_height1+ascunit);
+ sketch subpath (0.4,1) of z1{down}..{right}z2..z3..z7..z5..z6;
+ % hook can be attached at z7
+enddef;
+
+def vm_e_form_a (expr xcoord) =
+% used for vowel modifier e for some consonants (eg. khe, che, ne etc)
+% 999 was chosen arbitrarily. we needed something not used elsewhere!
+% same suffix should be used by vm_ee_form_a.
+ top z999=(xcoord,vm_e_height1); rt z999i=((lft x999)-1.8u,(y999+y999j)/2);
+ top z999j=(x999,asc_height1);
+ path vm_e_pa;
+ vm_e_pa=z999..z999i..z999j..cycle; h:= (top y999)+pen_width;
+ penlabels(z999,z999i,z999j);
+enddef;
+
+def vm_ee_form_a (expr xcoord) =
+% used for vowel modifier ee for some consonants (eg. khee, chee, nee etc)
+% 999 was chosen arbitrarily. we needed something not used elsewhere!
+% same suffix should be used by vm_e_form_a.
+ vm_e_form_a(xcoord); vm_hook_form(999,3);
+enddef;
+
+def vm_u_form (suffix $) =
+ bot z$a = (x$+vm_u_width/2,0);
+ rt z$b = (x$+vm_u_width,y$);
+ z$c = (x$+3/4vm_u_width,3/4x_height);
+ top z$d = (x$+.55vm_u_width,x_height);
+path vm_u_p;
+ vm_u_p=z$..z$a..z$b..z$c..z$d;
+ sketch vm_u_p;
+ penlabels($a,$b,$c,$d);
+ enddef;
+
+def vm_ro_form =
+ z1 = (1/3vm_ro_width,-1/2des_depth);
+ z2 = (1/2vm_ro_width,-1/2des_depth);
+ z3 = (1/3vm_ro_width,0);
+ lft z4 = (0,-1/2des_depth);
+ bot z5 = (1/2vm_ro_width,-des_depth);
+ rt z6 = (vm_ro_width,(y5+y7)/2);
+ top z7 = (1/2vm_ro_width,x_height);
+sketch z1..z2..z3..z4..z5..z6..z7;
+enddef;
+
+def vm_ea_form(suffix $) (expr bar_width) =
+ z$a=(5/7bar_width,y$);
+ z$b=(x$a,asc_height2);
+ lft z$c=(0,y$b);
+ rt z$d=(bar_width,(y$+y$b)/2);
+penlabels ($a,$b,$c,$d);
+ sketch z$c--z$b..z$d..z$a--z$;
+enddef;
+
+def vm_ao_form(suffix $)(expr x_offset) =
+ z$a = (1/6vm_ao_width+x_offset,x_height);
+ lft z$b = (0+x_offset,asc_height1);
+ z$c = (1/6vm_ao_width+x_offset,asc_height2);
+ z$d = (2/6vm_ao_width+x_offset,asc_height1);
+ z$e = (3/6vm_ao_width+x_offset,asc_height2);
+ z$f = (5/6vm_ao_width+x_offset,asc_height2);
+ rt z$g = (vm_ao_width+x_offset,1/2(asc_height1+asc_height2));
+ top z$h = (5/6vm_ao_width+x_offset,asc_height1);
+ z$i = (4/6vm_ao_width+x_offset,asc_height2);
+ top z$j = (5/6vm_ao_width+x_offset,asc_height);
+ top z$k = (vm_aoo_width+x_offset-1.5u,asc_height);
+ rt z$l = (vm_aoo_width+x_offset,asc_height2);
+ %rt z$l = (vm_aoo_width+x_offset,1/2(asc_height+asc_height2));
+ %rt z$k = (vm_ao_width+x_offset,1/2(asc_height+asc_height2));
+ path vm_ao_pa,vm_ao_pb;
+ vm_ao_pa = z$a..z$b..z$c..tension1.2..z$d;
+ vm_ao_pb= z$d..tension1.2..z$e..tension 1.8..z$f..z$g..z$h..z$i..z$j..tension 1.8..z$k..z$l;
+ w:= rt x$g; h:= top y$c;
+ penlabels ($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l);
+enddef;
+
+% b---------c--------------d
+% | |_|
+% $------a
+def vm_au_form (suffix $)(expr bar_width) = % see the above diagram
+ numeric na;
+ top z$e=z$;
+ z$a = (x$e+2/10(bar_width-u),y$e);
+ z1000 = (x$-u,asc_height2);
+ % 1000 was chosen arbitrarily
+ % we needed some suffix not used by any user of
+ % this macro
+ barandhook_form(1000,bar_width,5);
+ z$d=z1000a;
+ %next two statements solve for c
+ x$c = x$a;
+ z$c = whatever[z1000,z$d];
+ na:=x$c+(x1000a-x$c)/3; % used for alligning pa,pha,sha..
+ sketch z$e--z$a{right}..{left}z$c;
+ penlabels($a,$b,$c,$d,$e,1000);
+enddef;
+
+def cb_ka_form =
+rt x1=rt x5=cb_ka_width; y1=8/10x_height; y5=1/4x_height;
+x2=x4=x6=1/2cb_ka_width; top y2=x_height; y4=1/2x_height; bot y6=0;
+lft x3=lft x7=0; y3=3/4x_height; y7=x_height-y1;
+path cb_ka_p;
+%cb_ka_p=z7..z6..z5..z4..z3..z2..z1..cycle;
+% added a .. cycle to make a kannada "ka"
+cb_ka_p=z7..z6..z5..z4..z3..z2..z1..cycle;
+enddef;
+
+def cb_kha_form =
+z1=(4/15cb_kha_width,5/6x_height);z2=(2/15cb_kha_width,y1-uh);
+lft z3=(0,y1); top z4=(x6,x_height);
+z5=(5/12cb_kha_width,1/8x_height); bot z6=(1/4cb_kha_width,0);
+lft z7=(0,1/4x_height); z8=(1/4cb_kha_width,1/3x_height);
+bot z9=(3/4cb_kha_width,0); rt z10=(cb_kha_width,1/3x_height);
+top z11=(x9,x_height);
+path cb_kha_p;
+cb_kha_p=z1..z2..z3..z4..z5..z6..z7..z8..z9..z10..z11;
+sketch cb_kha_p;
+numeric a,b;
+(a,b)=(subpath (3,5) of cb_kha_p) intersectiontimes
+ subpath (6,9) of cb_kha_p;
+z15 = point a of (subpath (3,5) of cb_kha_p); wedge(15);
+enddef;
+
+def cb_ga_form =
+bot z1=(u,0); x5=cb_ga_width-x1; bot y5=0;
+y2=y4=1/3x_height; lft x2=0; rt x4=cb_ga_width;
+top z3=(1/2cb_ga_width,x_height);
+path cb_ga_p,cv_ge_p;
+ cb_ga_p=z1..z2..z3..z4..z5;
+ sketch cb_ga_p;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_ga_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_ga_width,vm_e_height2));
+ z30= point na of cb_ga_p;
+ (nc,nd)= cb_ga_p intersectiontimes
+ ((1/2cb_ga_width,vm_e_height2)--(cb_ga_width,vm_e_height2));
+ z32= point nc of cb_ga_p;
+ top z31=(1/2cb_ga_width,vm_e_height3);
+ cv_ge_p=z30..z31..z32;
+enddef;
+
+def cb_cha_form =
+ lft z1=(0,x_height/2); z2=(cb_cha_width/3,x_height/2);
+ z3=(cb_cha_width/6,w_height); bot z4=(cb_cha_width/4,0);
+z5=(cb_cha_width/2,w_height); bot z6=(3/4cb_cha_width,0);
+ rt z7=(cb_cha_width,w_height); top z8=(cb_cha_width/2,x_height);
+ path cb_cha_p;
+ cb_cha_p=z1--z2..z3..z4..tension1.2..z5&z5..tension1.2..z6..z7..z8;
+ sketch cb_cha_p;
+ enddef;
+
+def cb_ja_form =
+ lft z1 = (0,j_height); top z2 = (cb_ja_width/4,x_height);
+ z3 = (cb_ja_width/2,j_height); z4 = (cb_ja_width/4,x_height/2);
+ lft z5 = (0,w_height); bot z6 = (cb_ja_width/4,0);
+ z7 = (cb_ja_width/2,w_height); bot z8 = (3/4cb_ja_width,0);
+ rt z9 = (cb_ja_width,w_height);
+ %following are useful for defining a bowl at the top
+ bot lft z3w=top z3; z3x=(x8,y1); rt z3y=(w,5/6x_height);
+ top z3z=(4/5w,x_height);
+ path cb_ja_pa,cb_ja_pb;
+ cb_ja_pa=z1..z2..z3..z4..z5..z6..tension1.2..z7&z7..tension1.2..z8..z9;
+ cb_ja_pb=z3w..z3x..z3y..z3z;
+ sketch cb_ja_pa;
+ penlabels(3w,3x,3y,3z);
+ enddef;
+
+def cb_tta_form =
+ top z1=(1/4cb_tta_width,x_height);
+ y2=y6=1/2x_height;
+ lft x2=0; rt x6=cb_tta_width;
+ x3=x1; x5=cb_tta_width-x3;
+ bot y3=bot y5=0;
+ top z4=(1/2cb_tta_width,w_height);
+ top z7=(cb_tta_width-x1,x_height);
+ z11=(x1+1.5u,y1-1.45uh);
+ path cb_tta_p,cb_tta_pa,cb_tta_pb;
+ cb_tta_pb=z1..z2..z3..tension1.2..z4&z4..tension1.2..z5..z6..z7;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_tta_pb intersectiontimes
+ ((0,5/6x_height)--(1/2cb_tta_width,5/6x_height));
+ z8=point na of cb_tta_pb;
+ (nc,nd)= cb_tta_pb intersectiontimes
+ ((0.6cb_tta_width,w_height)--(cb_tta_width,w_height));
+ z20=point nc of cb_tta_pb;
+ z19=rt z20;
+ cb_tta_pa=bot z8..z11..z1;
+ cb_tta_p=cb_tta_pa..cb_tta_pb;
+ bot lft z18= z1;% used for placing a vertical line
+ enddef;
+
+def cb_nna_form =
+z1a=(1/3cb_nna_width,1/2sc_height);
+bot z1=(1/4cb_nna_width,0); lft z2=(0,1/4x_height);
+z3=(1/6cb_nna_width,1/2x_height); lft z4=(0,3/4x_height);
+top z5=(1/4cb_nna_width,x_height); z6=(1/2cb_nna_width,j_height);
+top z7=(5/8cb_nna_width,x_height); rt z8=(cb_nna_width,1/2x_height);
+bot z9=(2/3cb_nna_width,0); z10=(x9-1/2sc_height,sc_height);
+z11=(x9,3/2sc_height); z12=(x9+1/2sc_height,sc_height);
+ path cb_nna_p;
+cb_nna_p= z1a..z1..z2..z3&z3..z4..z5..z6&z6..z7..z8..z9..z10..z11..z12;
+sketch cb_nna_p;
+ penlabels(1a);
+enddef;
+
+def cb_ta_form =
+lft z1=(0,1/2x_height);
+z2=(x1+u,y1-uh); z3=(x1+2u,y1); z4=(x2,y1+uh);
+bot z5=(1/2cb_ta_width,0); rt z6=(cb_ta_width,1/2x_height);
+z7=(x6-u,y6+uh); z8=(x6-2u,y6); z9=(x7,y6-uh);
+top z10=(1/2cb_ta_width,x_height);
+ path cb_ta_p;
+ cb_ta_p = z1..z2..z3..z4..z1..z5..z6..z7..z8..z9..z6..{left}z10;
+enddef;
+
+def cb_da_form =
+ top z1=(1/2cb_da_width,x_height); lft z2=(0,w_height);
+ bot z3=(1/3cb_da_width,0);z4=(1/2cb_da_width,w_height);
+ bot z5=(2/3cb_da_width,0);rt z6=(cb_da_width,1/2x_height);
+ path cb_da_p,cv_de_p;
+ cb_da_p= z4..tension 1.2..z5..z6..z1..z2..z3..tension 1.2..z4;
+ sketch cb_da_p;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_da_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_da_width,vm_e_height2));
+ z30= point na of cb_da_p;
+ (nc,nd)= cb_da_p intersectiontimes
+ ((1/2cb_da_width,vm_e_height2)--(cb_da_width,vm_e_height2));
+ z32= point nc of cb_da_p;
+ top z31=(1/2cb_da_width,vm_e_height3);
+ cv_de_p=z30..z31..z32;
+ enddef;
+
+def cb_na_form =
+ bot lft z1=(0,0); lft z2=(0,1/2w_height);
+ z3=(1/3cb_na_width,w_height); bot z4=(2/3cb_na_width,0);
+ rt z5=(cb_na_width,1/3x_height); top z6=(1/2cb_na_width,x_height);
+ path cb_na_p;
+ cb_na_p=z1..z2..z3..z4..z5..z6;
+ enddef;
+
+def cb_ba_form =
+ lft z1 = (u/2,j_height); top z2 = (cb_ba_width/5,x_height);
+ z3 = (cb_ba_width/3,j_height); lft z4 = (0,w_height);
+ bot z5 = (cb_ba_width/4,0); bot z6 = (cb_ba_width/2,w_height);
+ bot z7 = (3/4cb_ba_width,0);
+ rt z8 = (cb_ba_width,w_height); %z8 contact point
+ top z9 = (2/3cb_ba_width,x_height); % z9 another contact point
+ path cb_ba_p;
+ cb_ba_p = z1..z2..z3..z4..z5..tension 1.2..z6&z6..tension 1.2..z7..z8..z9;
+ sketch cb_ba_p;
+ enddef;
+
+def cb_ya_form =
+ lft z1 = (0,2/5x_height);
+ top z2 = (3/10cb_ya_width,8/10x_height);
+ rt z3 = (3/5cb_ya_width,y1);
+ bot z4 = (x2,0);
+ bot z5 = (4/5cb_ya_width,0);
+ rt z6 = (cb_ya_width,w_height);
+ z7 = ((x5+x6)/2,7.3/10x_height);
+ top z8 = (9/20cb_ya_width,x_height);
+enddef;
+
+def cb_ra_form =
+ top z1=(cb_ra_width/2,x_height);
+ lft z2 = (0,w_height);
+ bot z3 = (cb_ra_width/2,0);
+ rt z4 = (cb_ra_width,y2);
+ path cb_ra_p,cv_re_p;
+ cb_ra_p = z1..z2..z3..z4..cycle;
+ sketch cb_ra_p;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_ra_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_ra_width,vm_e_height2));
+ z30= point na of cb_ra_p;
+ (nc,nd)= cb_ra_p intersectiontimes
+ ((1/2cb_ra_width,vm_e_height2)--(cb_ra_width,vm_e_height2));
+ z32= point nc of cb_ra_p;
+ top z31=(1/2cb_ra_width,vm_e_height3);
+ cv_re_p=z30..z31..z32;
+ enddef;
+
+def cb_rra_form =
+cb_tta_form;
+z14=(cb_tta_width-1.5x1,x_height-sc_height);
+z15=(x7,1/2x_height);z16=(x1,y15);
+ path cb_rra_p;
+ cb_rra_p= cb_tta_p..z14..z15--z16;
+ sketch cb_rra_p;
+enddef;
+
+def cb_la_form =
+top z1=(1/4cb_la_width,x_height);
+lft z2=(0,x_height/2); bot z3=(1/2cb_la_width,0);
+rt z4=(cb_la_width,y2); top z5=(cb_la_width-x1,x_height);
+z7=(x1+1.5u,2/3x_height);
+ path cb_la_pa,cb_la_pb,cb_la_p;
+ cb_la_pb=z1..z2..z3..z4..z5;
+z6=point 0.35 of cb_la_pb;
+ cb_la_pa= bot rt z6..z7..z1;
+ cb_la_p=cb_la_pa..cb_la_pb;
+% z8 is useful for la+u and la+uu
+numeric na,nb;
+(na,nb)=cb_la_pb intersectiontimes
+ ((cb_la_width/2,w_height)..(cb_la_width,w_height));
+z9=point na of cb_la_pb;
+z8=rt z9;
+enddef;
+
+def cb_lla_form =
+top z1=(cb_lla_width/2,w_height);
+bot z2 =(x1,0);
+z6=(1/3cb_lla_width,x_height-2uh); z3=(x6+u/2,y6-uh);
+z4=(x6,.6x_height); z5=(x6+u/2,y3); lft z7=(0,2/3x_height);
+bot z8=top z1; rt z9=(cb_lla_width,y7); top z10=(1/2cb_lla_width,x_height);
+path cb_lla_pa,cb_lla_pb;
+cb_lla_pa=z3..z4..z5..z6..z7..z8..z9..z10;
+cb_lla_pb=z1..z2..cycle;
+sketch cb_lla_pa;
+sketch cb_lla_pb;
+% z12 is useful for lla+u and lla+uu
+numeric na,nb;
+(na,nb)=cb_lla_pa intersectiontimes
+ ((cb_lla_width/2,x_height/2)..(cb_lla_width,x_height/2));
+z13=point na of cb_lla_pa;
+z12=rt z13;
+enddef;
+
+def cb_va_form =
+ lit_cir_form;
+ bot z62 = (3/5cb_pa_width,0); rt z63 = (cb_pa_width,w_height);
+ z64 = (7/8cb_pa_width,j_height); top lft z65 = (x1,x_height);
+path cb_va_p,cv_paa_p;
+cb_va_p=z61..z62..z63..z64..z65;
+top z20=(cb_pa_width/2,h);
+cv_paa_p=subpath(0,2) of cb_va_p{up}..z20;
+% z22 is useful for alligning au modifier
+numeric na,nb;
+(na,nb)=cv_paa_p intersectiontimes
+ ((cb_pa_width/2,asc_height2)..(cb_pa_width,asc_height2));
+z22=point na of cv_paa_p;
+ enddef;
+
+def cb_ca_form =
+lft z1=(0,1/2x_height); z2=(1/3cb_ca_width,6/8x_height);
+bot z3=(1/3cb_ca_width,0); z4=(3/4cb_ca_width,1/3x_height);
+rt z5=(cb_ca_width,2/3x_height); top z6=(1/2cb_ca_width,x_height);
+lft z7=(0,1/6x_height);
+path cb_ca_p,cb_ca_pa;
+cb_ca_p=z1..z2{right}..z4..z3..z7..z4..z5..z6;
+sketch cb_ca_p;
+% z10 is useful for ca+u and ca+uu
+cb_ca_pa=subpath(1,3) of cb_ca_p;
+numeric na,nb;
+(na,nb)=cb_ca_pa intersectiontimes
+ ((0,w_height)..(cb_ca_width,w_height));
+z11=point na of cb_ca_pa;
+z10=rt z11;
+enddef;
+
+def cb_ksha_form =
+ cb_ka_form;
+ top z11 = (1/5cb_ka_width,0);
+ lft z12 = (0,-1/2cb_ksha_depth);
+ bot z13 = (x11,-cb_ksha_depth);
+ z14 = (2/5cb_ka_width,-2/3cb_ksha_depth);
+ bot z15 = (3/5cb_ka_width,-cb_ksha_depth);
+ z16 = (4/5cb_ka_width,-1/2cb_ksha_depth);
+ top z17 = (x15,0);
+ bot rt z18 = (cb_ka_width,-cb_ksha_depth);
+ sketch z11..z12..z13..z14; sketch z14..z15..z16..z17;
+ sketch z16..z18;
+ enddef;
+
+
+def cc_clear =
+%erase all that is drawn so far.
+ clearit;
+ lft z99=(0,100);
+ left_spill := xpart(lft (z99 scaled cc_scale)) - xpart(lft z99);
+ bot z98=(100,0);
+ bot_spill := ypart(bot (z98 scaled cc_scale)) - ypart(bot z98);
+ top((z97 scaled cc_scale)
+ shifted (0,-bot_accent-(x_height*cc_scale))
+ shifted (-left_spill,-bot_spill))=
+ (w*cc_scale/2,x_height);
+enddef;
+
+def cc_transform(text t) =
+% used to obtain consonant conjuncts for some consonants and vowels lo&loo
+path cc_transformed_path;
+cc_transformed_path = t scaled cc_scale
+ shifted (0,-bot_accent-(x_height*cc_scale));
+sketch cc_transformed_path;
+enddef;
+
+def cc_my_transform(text t) =
+% used to obtain consonant conjuncts for some consonants and vowels lo&loo
+path cc_transformed_path;
+cc_transformed_path = t scaled cc_scale
+ shifted (0,-bot_accent-(x_height*cc_scale));
+sketch cc_transformed_path;
+enddef;
+
+def cc_f_transform(text t) =
+% used to obtain consonant conjuncts for some consonants and vowels lo&loo
+fill t scaled cc_scale
+ shifted (0,-bot_accent-(x_height*cc_scale));
+enddef;
+
+def cc_whd (expr hh,dd) =
+%this macro sets w, h and d for accents that appear below baseline.
+% for some consonant conjuncts that result from transforming
+% consonant bases the height is not zero (eg. cha, ba ,pa etc)
+% for such symbols hh should be 1 and for others hh should be 0.
+% Some consonant bases have wedges that hang below base line (eg. bha, pha
+% ddha etc. ). For these dd should be 1 and for others dd should be 0.
+%
+%When a picture is scaled, what really happens is the componant paths
+% are scaled and the picture is redrawn. Hence we need to adjust w,h and d.
+% Still consonant conjunct for nya needs special care( for d).
+w:=w*cc_scale-pen_width*cc_scale+pen_width;;
+h:=hh*x_height;
+d:=bot_accent+((x_height+(dd*wedge_depth))*cc_scale)+dd*bot_spill;
+% (x,y) slanted s shifted (a,b) is (x+sy+a,y+b) whereas
+% (x,y) shifted (a,b) slanted s is (x+sy+a+ bs,y+b). Hence we
+% need to add the correction 'bs'. 'bs' is -bot_spill*slant
+currentpicture:=currentpicture shifted
+ (-left_spill+((-bot_spill)*slant),-bot_spill);
+enddef;
+
+def cv_ngu_form =
+ z1=(0,j_height); z2=(cb_ja_width/4,j_height-uh#);
+ rt z3=(cb_ja_width/2,5/6x_height); top z4=(4/10cb_ja_width,x_height);
+ sketch z1..z2..z3..z4;
+enddef;
+
+def cv_ju_form =
+ z1=(0,5/6x_height); z2=(cb_ja_width/4,j_height);
+ rt z3=(cb_ja_width/2,y1); top z4=(4/10cb_ja_width,x_height);
+ sketch z1..z2..z3..z4;
+enddef;
+
+def cv_pu_form =
+ top lft z1=(0,c_height/2); bot z2=(cv_pu_width/2,-cv_pu_depth);
+ rt z3=(cv_pu_width,h/2); top z4=(cv_pu_width-2u,x_height);
+ sketch z1..z2..z3..z4;
+enddef;
+
+def dr_sixnine_form =
+ path dr_sixnine_p;
+ top rt z1 = (w,fig_height);
+ z2 = (w/2+u,y1-uh);
+ bot z4 = (w/2,0);
+ rt z5 = (w,x4);
+ z6 = (x4,x5-x7);
+ lft z7 = (0,y5);
+ dr_sixnine_p = z1..z2..z7..z4..z5..z6..z7;
+enddef;
+
+def cc_arkavattu=
+path dt_six_pa,dt_six_pb;
+ top z1=(w/5,h); lft z2=(0,3h/4); z3=(x1,h/2);
+ z4=(w/3,h/2); lft z5=(0,h/4); bot z6=(x1,0);
+ bot rt z7=(w,0);
+arka_pa= flex(z1,z2,z3)& z3--z4;
+arka_pb=flex(z3,z5,z6)& z6--z7;
+enddef;
+
+
+def p_comma_form =
+path p_comma_p;
+ z1 = (dot_radius,dot_radius);
+ rt z2 = (p_comma_width,0);
+ bot lft z3 = (x1-1/2dot_radius,-des_depth);
+fill_dot(1); p_comma_p= flex(z1,z2,z3);
+sketch p_comma_p;
+enddef;
+
+def p_bar_form =
+path p_bar_p;
+ bot lft z1 = (0,0);
+ top lft z2 = (0,x_height);
+p_bar_p= z1--z2;
+enddef;
+
+def p_slash_form =
+path p_slash_p;
+ bot lft z1 = (0,-des_depth);
+ top rt z2 = (6u,asc_height);
+p_slash_p= z1--z2;
+enddef;
+
+def p_lbracket_form = % square bracket
+path p_lbracket_p;
+ top lft z1 = (0,top_height);
+ bot lft z2 = (0,-bot_depth);
+ rt z3 = (w,y1);
+ rt z4 = (w,y2);
+p_lbracket_p=z3--z1--z2--z4;
+enddef;
+
+
+def p_rparen_form =
+path p_rparen_p;
+ top lft z1 = (0,top_height); bot lft z2 = (0,-bot_depth);
+ rt z3 = (w,(-d+h)/2);
+p_rparen_p= flex(z1,z3,z2);
+enddef;
+
+
+def p_lbrace_form =
+path p_lbrace_p;
+ top rt z1 = (w,h); lft z4 = (0,(h-d)/2);
+ z2 = (w/2,-d+7/8(h+d));
+ z3 = (x2,-d+5/8(h+d));
+p_lbrace_p= z1..z2..z3..z4;
+p_lbrace_p:=(p_lbrace_p reflectedabout (z4,z4+(w,0)) )..reverse(p_lbrace_p);
+enddef;
+
+
+def dk_five_form =
+ z1 = (.2w, .7h); lft z2 = (0, 3h/4);
+ top z3 = (1/4w, h) ; z4 = (.5w, .5h);
+ bot z5 = (1/4w, 0) ; lft z6 = (0, 1/4 h);
+ z6a = (.45w, .45h) ;
+ z7 = (.5w, .5h); z8 = (.95w, .8h) ;
+ top z9 = (.9w, .96h); z10 = (.6w, .8h) ;
+ rt z11 = (w, 1/4h) ; bot z12 = (.85w, 0) ;
+ sketch z1..z2..z3..z4..z5..z6..tension 1.3..z7..z8..z9..z10..z11..tension 1.2..z12;
+enddef;
+
+def dk_six_form =
+ lft top z1 = (.05w, h); lft z2 = (.12w, .8h);
+ z3 = (.25w, .45h); z4 = (x3, .65h) ;
+ z4a = (.4w, (y3+y4)/2);
+ lft z5 = (0, .25h) ; bot z6 = (.25w, 0) ;
+ rt bot z7 = (w, 0) ;
+ sketch z1..z2..z3..z4a..z4..tension 1.2..z5...z6--z7 ;
+
+enddef;
+
+def cb_dollar_form =
+ rt x1=rt x5=cb_ka_width; y1=8/10x_height; y5=1/4x_height;
+ x2=x4=x6=1/2cb_ka_width; top y2=x_height; y4=1/2x_height; bot y6=0;
+ lft x3=lft x7=0; y3=3/4x_height; y7=x_height-y1;
+ path dol_p;
+ dol_p = z1..z2..z3..z4..z5..z6..z7;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kancodes.mf b/Master/texmf-dist/fonts/source/public/itrans/kancodes.mf
new file mode 100644
index 00000000000..c5a1d2c71f5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kancodes.mf
@@ -0,0 +1,269 @@
+% This file is part of the KannadaTeX Software Package.
+%Copyright (c) 1991 G.S. Jagadeesh & Venkatesh. Gopinath.
+%
+%Author: Modified from TeluguTex by, GS. Jagadeesh. & Venkatesh Gopinath.
+%The KannadaTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the KannadaTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the KannadaTeX Software Package, but only under the conditions described in the
+%KannadaTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with KannadaTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+
+% This file contains codes to determine where various symbols
+% are placed in the font. The symbols that are also part of ASCII
+% character set are placed at the same location as in ASCII code.
+% Any revision of this file MUST maintain this assignment.
+% All kannada digits are given contiguous codes in the order
+% 0,1,2,3,4,5,6,7,8,9. Any revision of this file MUST maintain
+% this property.
+%
+% vowels
+
+v_a_code := oct"027";
+v_aa_code := v_a_code +1;
+v_e_code := v_aa_code +1;
+v_ee_code := v_e_code +1;
+v_u_code := v_ee_code +1;
+v_uu_code := v_u_code +1;
+v_ro_code := v_uu_code +1;
+v_roo_code := v_ro_code +1;
+v_ea_code := v_roo_code +1;
+v_eae_code := v_ea_code +1;
+v_i_code := oct"101" ;
+v_ao_code := v_i_code +1;
+v_aoo_code := v_ao_code +1;
+v_au_code := v_aoo_code +1;
+
+% vowel modifiers
+%vm_a_code := v_au_code +1;
+vm_a_code := oct"200";
+vm_aa_code := vm_a_code +1;
+vm_ah_code := vm_aa_code +1;
+vm_e_code := vm_ah_code +1;
+vm_ee_code := vm_e_code +1;
+vm_u_code := vm_ee_code +1;
+vm_uu_code := vm_u_code +1;
+vm_ro_code := vm_uu_code +1;
+vm_roo_code := vm_ro_code +1;
+vm_ea_code := vm_roo_code +1;
+vm_ea1_code := vm_ea_code +1;
+vm_y_code := vm_ea1_code +1;
+vm_au_code := vm_y_code +1;
+vm_p_code := vm_au_code +1;
+
+% Consonant bases
+%cb_ka_code := vm_p_code +1;
+cb_ka_code := v_au_code +1;
+cb_kha_code := cb_ka_code +1;
+cb_ga_code := cb_kha_code +1;
+cb_gha_code := cb_ga_code +1;
+cb_nga_code := cb_gha_code +1;
+cb_cha_code := cb_nga_code +1;
+cb_ccha_code := cb_cha_code +1;
+cb_ja_code := cb_ccha_code +1;
+cb_jha_code := cb_ja_code +1;
+cb_nya_code := cb_jha_code +1;
+cb_tta_code := cb_nya_code +1;
+cb_ttha_code := cb_tta_code +1;
+cb_dda_code := cb_ttha_code +1;
+cb_ddha_code := cb_dda_code +1;
+cb_nna_code := cb_ddha_code +1;
+cb_ta_code := cb_nna_code +1;
+cb_tha_code := cb_ta_code +1;
+cb_da_code := cb_tha_code +1;
+cb_dha_code := cb_da_code +1;
+cb_na_code := cb_dha_code +1;
+cb_naa_code := cb_na_code +1;
+cb_pa_code := cb_naa_code +1;
+
+cb_pha_code := oct"141";
+%cb_pha_code := cb_pa_code +1;
+cb_ba_code := cb_pha_code +1;
+cb_bha_code := cb_ba_code +1;
+cb_ma_code := cb_bha_code +1;
+cb_ya_code := cb_ma_code +1;
+cb_ra_code := cb_ya_code +1;
+cb_rra_code := cb_ra_code +1;
+cb_la_code := cb_rra_code +1;
+cb_lla_code := cb_la_code +1;
+cb_llaa_code := cb_lla_code +1;
+cb_va_code := cb_llaa_code +1;
+cb_ca_code := cb_va_code +1;
+cb_sha_code := cb_ca_code +1;
+cb_sa_code := cb_sha_code +1;
+cb_ha_code := cb_sa_code +1;
+cb_ksha_code := cb_ha_code +1;
+cb_dt_code := cb_ksha_code +1;
+cb_np_code := cb_dt_code +1;
+cb_vg_code := cb_np_code +1;
+cb_bb_code := cb_vg_code +1; % boxes(bb,bo,be)(used for demonstrating
+% vowel modifiers, cons. conjuncts)
+cb_bo_code := cb_bb_code +1;
+cb_be_code := cb_bo_code +1;
+
+% Consonant conjuncts
+cc_ka_code := vm_p_code;
+cc_kha_code := cc_ka_code +1;
+cc_ga_code := cc_kha_code +1;
+cc_gha_code := cc_ga_code +1;
+cc_nga_code := cc_gha_code +1;
+cc_cha_code := cc_nga_code +1;
+cc_ccha_code := cc_cha_code +1;
+cc_ja_code := cc_ccha_code +1;
+cc_jha_code := cc_ja_code +1;
+cc_nya_code := cc_jha_code +1;
+cc_tta_code := cc_nya_code +1;
+cc_ttha_code := cc_tta_code +1;
+cc_dda_code := cc_ttha_code +1;
+cc_ddha_code := cc_dda_code +1;
+cc_nna_code := cc_ddha_code +1;
+cc_ta_code := cc_nna_code +1;
+cc_tha_code := cc_ta_code +1;
+cc_da_code := cc_tha_code +1;
+cc_dha_code := cc_da_code +1;
+cc_na_code := cc_dha_code +1;
+cc_pa_code := cc_na_code +1;
+cc_pha_code := cc_pa_code +1;
+cc_ba_code := cc_pha_code +1;
+cc_bha_code := cc_ba_code +1;
+cc_ma_code := cc_bha_code +1;
+cc_ya_code := cc_ma_code +1;
+cc_ra_code := cc_ya_code +1;
+cc_rra_code := cc_ra_code +1;
+cc_ara_code := cc_rra_code +1;
+cc_la_code := cc_ara_code +1;
+cc_lla_code := cc_la_code +1;
+cc_va_code := cc_lla_code +1;
+cc_ca_code := cc_va_code +1;
+cc_sha_code := cc_ca_code +1;
+cc_sa_code := cc_sha_code +1;
+cc_ha_code := cc_sa_code +1;
+
+% bars used for transliteration of vedic hymns
+% and other symbols used for singing
+b_udatta1_code := oct"005";
+b_udatta2_code := b_udatta1_code +1;
+b_anudatta_code := b_udatta2_code +1;
+
+% Roman digits
+dr_zero_code := ASCII"0";
+dr_one_code := dr_zero_code +1;
+dr_two_code := dr_one_code +1;
+dr_three_code := dr_two_code +1;
+dr_four_code := dr_three_code +1;
+dr_five_code := dr_four_code +1;
+dr_six_code := dr_five_code +1;
+dr_seven_code := dr_six_code +1;
+dr_eight_code := dr_seven_code +1;
+dr_nine_code := dr_eight_code +1;
+
+% Kannada digits
+dk_zero_code := oct"015";
+dk_one_code := dk_zero_code +1;
+dk_two_code := dk_one_code +1;
+dk_three_code := dk_two_code +1;
+dk_four_code := dk_three_code +1;
+dk_five_code := dk_four_code +1;
+dk_six_code := dk_five_code +1;
+dk_seven_code := dk_six_code +1;
+dk_eight_code := dk_seven_code +1;
+dk_nine_code := dk_eight_code +1;
+
+% Punctuations
+p_period_code := ASCII".";
+p_comma_code := ASCII",";
+p_equal_code := ASCII"=";
+p_bar_code := oct"177";
+p_dbar_code := oct"000";
+p_colon_code := ASCII":";
+p_scolon_code := ASCII";";
+p_cquote_code := ASCII"'";
+p_cquotes_code := oct"001";
+p_oquote_code := ASCII"`";
+p_oquotes_code := oct"002";
+p_dquotes_code := ASCII ditto; %ASCII "
+p_slash_code := ASCII"/";
+p_hash_code := ASCII"#";
+p_excla_code := ASCII"!";
+p_asterisk_code := ASCII"*";
+p_plus_code := ASCII"+";
+p_lbracket_code := ASCII"[";
+p_rbracket_code := ASCII"]";
+p_lparen_code := ASCII"(";
+p_rparen_code := ASCII")";
+p_lbrace_code := ASCII"{";
+p_rbrace_code := ASCII"}";
+p_percent_code := ASCII"%";
+p_bslash_code := ASCII"\";
+p_lbar_code := ASCII"|";
+p_hyphen_code := ASCII"-";
+p_lhyphen_code := oct"003";
+p_vlhyphen_code := oct"004";
+p_ubar_code := ASCII"_";
+p_question_code := ASCII"?";
+p_dollar_code := ASCII"$";
+p_greater_code := ASCII">";
+p_less_code := ASCII"<";
+p_at_code := ASCII"@";
+p_tilde_code := ASCII"~";
+p_hat_code := ASCII"^";
+p_ampersand_code := ASCII"&";
+
+% Ubayaksharas
+u_sunna_code := oct"010" ;
+u_visarga_code := u_sunna_code +1;
+u_uss_code := u_visarga_code +1;
+%u_ardhavisarga_code := u_visarga_code +1;
+%u_avagraha_code := u_ardhavisarga_code +1;
+
+%some consonant+vowel's need special symbols. Next we will
+%define codes for these symbols.
+cv_ke_code := cc_ha_code+1;
+cv_khe_code := cv_ke_code+1;
+cv_ge_code := cv_khe_code+1;
+cv_ghe_code := cv_ge_code+1;
+cv_che_code := cv_ghe_code+1;
+cv_cche_code := cv_che_code+1;
+cv_je_code := cv_cche_code+1;
+cv_jhe_code := cv_je_code+1;
+cv_tte_code := cv_jhe_code+1;
+cv_tthe_code := cv_tte_code+1;
+cv_dde_code := cv_tthe_code+1;
+cv_ddhe_code := cv_dde_code+1;
+cv_te_code := cv_ddhe_code+1;
+cv_the_code := cv_te_code+1;
+cv_de_code := cv_the_code+1;
+cv_dhe_code := cv_de_code+1;
+cv_ne_code := cv_dhe_code+1;
+cv_pe_code := cv_ne_code+1;
+cv_phe_code := cv_pe_code+1;
+cv_be_code := cv_phe_code+1;
+cv_bhe_code := cv_be_code+1;
+cv_me_code := cv_bhe_code+1;
+cv_re_code := cv_me_code+1;
+cv_le_code := cv_re_code+1;
+cv_ye_code := cv_le_code+1;
+cv_lle_code := cv_ye_code+1;
+cv_ve_code := cv_lle_code+1;
+cv_vu_code := cv_ve_code+1;
+cv_vuu_code := cv_vu_code+1;
+cv_ce_code := cv_vuu_code+1;
+cv_she_code := cv_ce_code+1;
+cv_se_code := cv_she_code+1;
+cv_he_code := cv_se_code+1;
+cv_kshe_code := cv_he_code+1;
+
+
+
+% Some Special characters
+kn_spla_code := cv_kshe_code +1 ;
+kn_splb_code := kn_spla_code +1;
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kanlets.mf b/Master/texmf-dist/fonts/source/public/itrans/kanlets.mf
new file mode 100644
index 00000000000..3445e2ca81b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kanlets.mf
@@ -0,0 +1,220 @@
+% This file is part of the KannadaTeX Software Package.
+%Copyright (c) 1991 G.S. Jagadeesh & Venkatesh. Gopinath.
+%
+%Author: GS. Jagadeesh.
+%The KannadaTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the KannadaTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the KannadaTeX Software Package, but only under the conditions described in the
+%KannadaTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with KannadaTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+
+CBKA;
+CCKA;
+CBKHA;
+CCKHA;
+CBGA;
+CCGA;
+CBGHA ;
+CCGHA;
+CBNGA ;
+CCNGA ;
+CBCHA ;
+CCCHA ;
+CBCCHA;
+CCCCHA;
+CBJA ;
+CCJA ;
+CBJHA ;
+CCJHA ;
+CBNYA;
+CCNYA;
+CBTTA;
+CCTTA;
+CBTTHA;
+CCTTHA;
+CBDDA;
+CCDDA;
+CBDDHA;
+CCDDHA;
+CBNNA;
+CCNNA;
+CBTA;
+CCTA;
+CBTHA;
+CCTHA;
+CBDA;
+CCDA;
+CBDHA;
+CCDHA;
+CBNA;
+CBNAA;
+CCNA;
+CBPA;
+CCPA;
+CBPHA;
+CCPHA;
+CBBA;
+CCBA;
+CBBHA;
+CCBHA;
+CBMA;
+CCMA;
+CBYA;
+CCYA;
+CBRA ;
+CBRRA ;
+CCRA ;
+CCRRA ;
+CBLA ;
+CCLA ;
+CBVA;
+CVVE;
+CVVU;
+CVVUU;
+CCVA;
+CBCA;
+CCCA;
+CBSA ;
+CCSA ;
+CBHA ;
+CCHA ;
+CBLLA ;
+CBLLAA ;
+CCLLA ;
+CBSHA;
+CCSHA;
+CBKSHA ;
+VA ;
+VAA;
+VE;
+VEE ;
+VU;
+VUU;
+VRO;
+VROO;
+VEA;
+VEAE;
+VI ;
+VAO ;
+VAOO ;
+VAU;
+VMAH ;
+VMA ;
+VMAA ;
+VMEE;
+VMU ;
+VMUU ;
+VMRO ;
+VMROO ;
+VMEA ;
+VMEAA ;
+VMY ;
+VMAU;
+CVKE ;
+CVKHE ;
+CVGE;
+CVGHE;
+CVCHE ;
+CVCCHE;
+CVJE ;
+CVJHE ;
+CVTTE;
+CVTTHE ;
+CVDDE;
+CVDDHE;
+CVTE;
+CVTHE;
+CVDE;
+CVDHE;
+CVNE;
+CVPE;
+CVPHE;
+CVBE;
+CVBHE;
+CVME;
+CVYE;
+CVRE ;
+CVLE ;
+CVCE;
+CVSHE ;
+CVSE ;
+CVHE ;
+CVLLE ;
+CVKSHE ;
+VME;
+
+
+DRZERO
+DRONE
+DRTWO
+DRTHREE
+DRFOUR
+DRFIVE
+DRSIX
+DRSEVEN
+DREIGHT
+DRNINE
+DKZERO
+DKONE
+DKTWO
+DKTHREE
+DKFOUR
+DKFIVE
+DKSIX
+DKSEVEN
+DKEIGHT
+DKNINE
+PPERIOD
+PCOMMA
+PEQUAL
+PBAR
+PDBAR
+PCOLON
+PSCOLON
+PCQUOTE
+PCQUOTES
+POQUOTE
+POQUOTES
+PDQUOTES
+PSLASH
+PHASH
+PEXCLA
+PASTERISK
+PPLUS
+PLBRACKET
+PRBRACKET
+PLPAREN
+PRPAREN
+PLBRACE
+PRBRACE
+PPERCENT
+PBSLASH
+PLBAR
+PHYPHEN
+PLHYPHEN
+PVLHYPHEN
+PUBAR
+PQUESTION
+PDOLLAR
+PGREATER
+PLESS
+PAT
+PTILDE
+PHAT
+PAMPERSAND
+BOXA
+BOXB
+BOXC
+
+FROWN
+SMILE
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kanmain.mf b/Master/texmf-dist/fonts/source/public/itrans/kanmain.mf
new file mode 100644
index 00000000000..783a6b6d389
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kanmain.mf
@@ -0,0 +1,1298 @@
+% This file is part of the KannadaTeX Software Package.
+%Copyright (c) 1991 G.S. Jagadeesh & Venkatesh. Gopinath.
+%
+%Author: GS. Jagadeesh.
+%The KannadaTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the KannadaTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the KannadaTeX Software Package, but only under the conditions described in the
+%KannadaTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with KannadaTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+
+font_coding_scheme := "TeX text";
+
+%font_size 10pt#; slant:=0; pen_width#:=0.35pt#; penangle := 30 ;
+
+% avinash: June 1998: do not set mode here, that is set by MakeTeXPK
+% mode=localfont;
+
+input kancodes; % codes for kannada symbols
+input kanparam;
+
+font_coding_scheme := "TeX text";
+
+mode_setup; font_setup;
+
+
+def v_e_form =
+ lft z1=(0,j_height); top z2=(1/5v_e_width,x_height);
+ z3=(2/5v_e_width,1.2j_height); top z4=(3/5v_e_width,x_height);
+ rt z5=(v_e_width,1/2x_height); z6=(4/5v_e_width,1/5x_height);
+ bot z7=(1/2v_e_width,0); z8=(1/5v_e_width,1/4x_height);
+ z9=(1/2v_e_width,1/2x_height); rt z10=(v_e_width,-1/5des_depth);
+ path v_e_p;
+ v_e_p = z1..z2..tension 1.2..z3&z3..tension 1.2..z4..z5..z6..z7..z8..z9..z10;
+ sketch v_e_p;
+enddef;
+
+def place_lit_circ (suffix $) (expr sc) =
+ lit_cir_form;
+ erase sketch lit_cir_p;
+ path pl_lit_cir_p ;
+ transform t;
+ t=identity scaled sc shifted z$ ;
+ %sketch lit_cir_p transformed t;
+ pl_lit_cir_p = lit_cir_p transformed t;
+ sketch pl_lit_cir_p ;
+enddef ;
+
+def bar_form(suffix $) (expr width) =
+ path bar_p;
+ z$b= (x$+width-2u, y$);
+ bar_p = z$--z$b;
+ sketch bar_p;
+enddef;
+
+def bar_forma(expr width) =
+ path bar_pa;
+ z300=rt bot (0,x_height); z301= bot(width-2u, x_height);
+ bar_pa=z300--z301;
+ sketch bar_pa;
+enddef;
+
+def vmfa_form(suffix $) = % tale-kattu
+ path bar_p;
+ z$c= (x$+1.4u, y$);
+ top z$d= (x$c+.5u, y$+2.5u);
+ bar_p = z$--z$c{z$c-z$}..z$d;
+ sketch bar_p;
+enddef;
+
+def vm_aa_form =
+ top z1 = (0+u,x_height);
+ top z2 = (vm_aa_width-2u,x_height);
+ rt z3 = (vm_aa_width, 1/2y1);
+ bot z4 = (x2, 0);
+ z5 = (x2-x1, y4+.1y1);
+ z6 = (x2-1/4x1, y4+.2y1);
+ z7 = (x2-1/8x1, y4+.1y1);
+ sketch z1..tension 7..z2..tension 1.8..z3..z4..z5..z6..z7;
+ flop(4);
+enddef;
+
+def vmfaa_form(suffix $) = % tale-a ile.
+ top z1a = (x$+0,x_height);
+ z1b = (x$+4.2u,y1a);
+ rt z1c = (x1b+2u, .5y1a);
+ bot z1d = (x1b-.4u, 0);
+ bot z1e = (x1d, 1.5u);
+ z1f = (x1e+.25u, y1e-.5u);
+
+ sketch z1a---z1b..tension 1.8..z1c..tension 1.2..z1d..z1e..z1f;
+ %sketch z1a..tension 10..z1b..tension 1.8..z1c..tension 1.2..z1d..z1e..z1f;
+ %sketch z1a; draw z1b; draw z1c; draw z1d; draw z1e; draw z1f; draw z1f;
+enddef;
+
+
+def vmfea_form(suffix $) = % tale-athwa
+ path bar_p;
+ z$c= (x$+1.5u, y$);
+ z$d= (x$c+.5u, y$+2.5u);
+ z$e= (x$+1u, y$+1.5u);
+ z$f= (x$+1.5u, y$e-.4u);
+ bar_p = z$---z$c{z$c-z$}..z$d..z$e..z$f;
+ sketch bar_p;
+enddef;
+
+def vmah_form(suffix $) = % tale-ardha akshara
+ path bar_p;
+ z$c= (x$+1.2u, y$);
+ z$cc= (x$c+1.5u, y$);
+ z$d= (x$cc-.75u, y$-1u);
+ %z$e= (x$+2.75u, y$+1.25u); % adjust if you want it..
+ z$e= (x$+3u, y$+1.5u);
+ bar_p = z$--z$c..z$cc{dir 2}..z$d..tension 1.4..z$e;
+ sketch bar_p;
+enddef;
+
+def cb_ka_form =
+ path cb_ka_pa, cb_ka_pb, cb_ka_pc;
+ rt top z1=(0.5cb_ka_width, 0.75x_height); lft z2=(0, 3/8x_height);
+ bot z3=(.5cb_ka_width, 0);
+ rt z4=(cb_ka_width, 3/8x_height);
+ lft z5=(0, 0.75x_height); rt z6=(cb_ka_width, .75x_height);
+ top z7=(0.5cb_ka_width, 0.75x_height);
+ top z8=(0.55cb_ka_width, x_height);
+ path cb_ka_p;
+ cb_ka_pa = z1..z2..z3..z4..cycle;
+ cb_ka_pb = z5--z6;
+ cb_ka_pc = z7..{dir 125}z8;
+ sketch cb_ka_pa;
+ sketch cb_ka_pb;
+ sketch cb_ka_pc;
+ lft top z0 = (0, x_height);
+ bar_forma(cb_ka_width-.5u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %bar_form(0,cb_ka_width);
+
+ % to compute the joining point of "kombu for ka".
+ path inter;
+ inter = (1/2cb_ka_width, .3x_height)--(1.1cb_ka_width, .3x_height);
+ z400 = cb_ka_pa intersectionpoint inter;
+
+enddef;
+
+def cb_kha_form =
+ z1=(4/15cb_kha_width,5/6x_height);z2=(2/15cb_kha_width,y1-uh);
+ lft z3=(0,y1); top z4=(x6,x_height);
+ z5=(5/12cb_kha_width,1/8x_height); bot z6=(1/4cb_kha_width,0);
+ lft z7=(0,1/4x_height); z8=(1/4cb_kha_width,1/3x_height);
+ bot z9=(3/4cb_kha_width,0); rt z10=(cb_kha_width,1/3x_height);
+ top z11=(x9,x_height);
+ path cb_kha_p;
+ cb_kha_p=z1..z2..z3..z4..z5..z6..z7..z8..z9..z10..z11;
+ %sketch cb_kha_p;
+ z12 = lft z11;
+ %vmfaa_form(12) ;
+ %vmfea_form(12);
+
+ % to compute the joining point of "kombu for ka".
+ path inter;
+ inter = (.8cb_kha_width, .3x_height)--(1.1cb_kha_width, .3x_height);
+ z400 = cb_kha_p intersectionpoint inter;
+
+enddef;
+
+def cb_ga_form =
+ bot z1=(u,0); x5=cb_ga_width-x1; bot y5=0;
+ y2=y4=1/3x_height; lft x2=0; rt x4=cb_ga_width;
+ top z3=(1/2cb_ga_width,x_height);
+ path cb_ga_p, cv_ge_p, cb_ga_pt;
+ cb_ga_p=z1..z2..z3..z4..z5;
+ %sketch cb_ga_p;
+
+ % following is for vowel modifier "e".
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_ga_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_ga_width,vm_e_height2));
+ z30= point na of cb_ga_p;
+ top z31=(1/6cb_ga_width,.9vm_e_heightx);
+ %top z31=(1/2cb_ga_width,vm_e_heightx);
+ (nc,nd)= cb_ga_p intersectiontimes
+ ((1/2cb_ga_width,vm_e_height2)--(cb_ga_width,vm_e_height2));
+ z32= point nc of cb_ga_p;
+ cv_ge_p=z30..z31..tension1.2..z32;
+
+ % to compute the joining point of "kombu for ka".
+ path inter;
+ inter = (.8cb_ga_width, .3x_height)--(1.1cb_ga_width, .3x_height);
+ z400 = cb_ga_p intersectionpoint inter;
+
+enddef;
+
+% following macro is used for many derivatives of "pa" like gha, va etc.,
+def cb_pa_form =
+ top z41=0.85(1/8cb_pa_width+1/2u, 1/4x_height+1/4u);
+ top z42=0.85(1/4cb_pa_width, 3/8x_height);
+ top z43=0.85(1/8cb_pa_width, 1/2x_height);
+ top z44=0.85(0, 3/8x_height);
+ bot z45=(1/4cb_pa_width, 0);
+ bot z46=(1/2cb_pa_width, 0.6w_height);
+ bot z47=(3/4cb_pa_width, 0);
+ rt top z48=(cb_pa_width, 1/2x_height);
+ rt z33=(0.9cb_pa_width, .85x_height) ;
+
+ path cb_pa_p,cb_paa_p;
+ cb_pa_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z33;
+
+
+ % to compute the joining point of "kombu for pa and its derivatives".
+ path inter;
+ inter = (.8cb_pa_width, .25x_height)--(1.1cb_pa_width, .25x_height);
+ z400 = cb_pa_p intersectionpoint inter;
+
+enddef;
+
+def vm_ghu_form (suffix $) =
+ numeric diff_ht;
+ numeric mx, my, mz;
+ diff_ht = x_height-y$;
+ bot z$x = (x$+vm_u_width/4,y$-1/9diff_ht);
+ rt z$y = (x$+vm_u_width/2,y$+1/2diff_ht);
+ top rt z$z = (x$+vm_u_width/3,y$+diff_ht-0.3u);
+ path vm_ghu_p;
+ vm_ghu_p=z$..z$x..z$y..z$z;
+ sketch vm_ghu_p;
+ %penlabels($aa,$bb,$cc,$d);
+enddef;
+
+def cb_cch_form =
+ path cb_ccha_pa, cb_ccha_pb, cb_ccha_pc;
+ numeric k_w, k_yo, k_h, k_xo;
+ k_w=1/4cb_ja_width; % Kondi width
+ k_xo=1/6cb_ja_width;
+ k_yo=3/4x_height;
+ k_h=1/4x_height;
+
+ top rt rt z1=(k_xo+1/3k_w, k_yo+1/2k_h);
+ rt top z2=(k_xo+1/2k_w, k_yo);
+ rt top z3=(k_xo+k_w, k_yo+1/2k_h);
+ rt top z4=(k_xo+1/2k_w,k_yo+k_h);
+
+ rt z5=(0.075cb_ja_width, 3/4x_height);
+
+ z6=(0, 1/2x_height);
+ bot z7=(1/4cb_ja_width, 0);
+ z8=(1/2cb_ja_width, .6w_height);
+ bot z9=(3/4cb_ja_width, 0);
+ rt z10=(cb_ja_width, 1/2x_height);
+ top z11=(0.80cb_ja_width, x_height);
+
+ cb_ccha_pa = z1..z2..z3..z4..z5..z6..z7..z8..z8..z9..z10..z11;
+ sketch cb_ccha_pa;
+ z12 = (x11-.5u, y11);
+
+ %vmfa_form(12); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(12) ;
+ %vmfea_form(12);
+ %bar_form(0,cb_ja_width);
+ %vm_au_form(12,w);
+
+ % to compute the joining point of "kombu for ka".
+ path inter;
+ inter = (.8cb_ja_width, .3x_height)--(1.1cb_ja_width, .3x_height);
+ z400 = cb_ccha_pa intersectionpoint inter;
+
+enddef ;
+
+
+def cb_ch_ja_base=
+ numeric j_offset;
+ j_offset = 0.08cb_ja_width;
+ lft z1 = (0,j_height); top z2 = (cb_ja_width/8,x_height);
+ z3 = (cb_ja_width/4+j_offset,j_height);
+ z4 = (cb_ja_width/8+j_offset,x_height/2);
+ lft z5 = (0,w_height); bot z6 = (cb_ja_width/8,0);
+ %z7 = (cb_ja_width/2,0.8w_height); bot z8 = (3/4cb_ja_width,0);
+ z7 = (cb_ja_width/2,0.8w_height); bot z8 = (.8cb_ja_width,0);
+enddef ;
+
+def cb_ja_form =
+
+ cb_ch_ja_base; % Defines some base points for ja, ch O etc.,
+ rt z9 = (cb_ja_width,w_height);
+ path cb_ja_pa,cb_ja_pb, cb_nga_p, cb_ja_pc, cb_ja_pe;
+ cb_ja_pa=z1..z2..z3..z4..z5..z6..tension1.15..z7&z7..tension1.2..z8..z9;
+
+ % to define BOWL for ja.
+ z40 = (0.2cb_ja_width, .9x_height); top z41=(.95cb_ja_width, x_height);
+ z60= (z40..z41) intersectionpoint cb_ja_pa ;
+ z50 = (1.4x3,0.8x_height);
+ cb_ja_pb=z60..z50..z41;
+
+ % to define BOWL for nga.
+ z20 = (0.2cb_ja_width, .8x_height); top z21=(.95cb_ja_width, .9x_height);
+ z30= (z20..z21) intersectionpoint cb_ja_pa ;
+ top z10 = (1.4x3,.95x_height);
+ cb_nga_p=z30..z10..z21;
+
+ z42= (x41, y41+1.5u) ;
+ z43= (x41-u, y42-.75u) ;
+ z44= (x41-.7u, y42-1.4u) ;
+ cb_ja_pe = z60..z50..z41..z42..z43..z44 ;
+ z35=(0.62cb_ja_width, y40-u) ;
+ cb_ja_pc = rt bot z35 ;
+ sketch cb_ja_pa;
+ %penlabels(3w,3x,3y,3z);
+
+ % for "ile" and "tale kattu"
+
+ z52=(x41-u, y41);
+ %vmfa_form(52); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(52) ;
+ %vmfea_form(52);
+ %bar_form(0,cb_ka_width);
+ %vm_au_form(52,w);
+
+ % to compute the joining point of "kombu for ka".
+ path inter;
+ inter = (.8cb_ja_width, .3x_height)--(1.1cb_ja_width, .3x_height);
+ z400 = cb_ja_pa intersectionpoint inter;
+
+ enddef;
+
+def cb_ch_form =
+ path cb_cha_pa, cb_cha_pb, cb_cha_pc;
+ cb_ch_ja_base;
+ rt rt z9 = (0.9cb_ja_width, .6x_height);
+ cb_cha_pa=z1..z2..z3..z4..z5..z6..tension1.2..z7&z7..tension1.15..z8..tension1.1..z9;
+ sketch cb_cha_pa;
+ y11 = y10 = y9; x10=cb_ja_width; x11=x9-(x10-x9);
+
+ top z12 = (x9, x_height);
+ cb_cha_pb = z10--z11;
+ cb_cha_pc = z9{dir 40}..z12;
+ sketch cb_cha_pb ;
+ sketch cb_cha_pc ;
+
+ z20 = (x12-.1u,y12) ;
+ %vmfa_form(20); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(20) ;
+ %vmfea_form(20);
+ %bar_form(0,cb_ka_width);
+ %vm_au_form(20,w);
+
+ % to compute the joining point of "kombu for ka".
+ path inter;
+ inter = (.8cb_ja_width, .3x_height)--(1.2cb_ja_width, .3x_height);
+ %sketch inter;
+ z400 = cb_cha_pa intersectionpoint inter;
+
+enddef ;
+
+def cb_nya_form=
+ v_e_form;
+ path cb_ny_pb;
+ z14= v_e_p intersectionpoint ((x4,.8x_height)--(w,.8x_height));
+ z15=z14;
+ z16=(v_e_width+half_plus_width, .9y14);
+ cb_ny_pb = z14{dir 60}..z16;
+ sketch cb_ny_pb;
+ z17=top(.6(x14+x16), x_height);
+ %pivot_message(x15c,x7);
+ %vmfa_form(17); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(17) ;
+ %vmfea_form(17);
+ %bar_form(0,cb_ka_width);
+ %vm_au_form(400,w);
+
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8v_e_width, .3x_height)--(1.1v_e_width, .3x_height);
+ z500 = v_e_p intersectionpoint inter;
+ z400=(x500+3u,y500);
+ %vm_u_form(400);
+
+enddef ;
+
+def cb_ta_form =
+ lft z1=(0,.35x_height); bot z2=(.55cb_ta_width, 0);
+ rt z3=(cb_ta_width, .35x_height); z4=(.55cb_ta_width, .55x_height);
+ rt z5=(.4cb_ta_width, .42x_height);
+ top z6=(.7cb_ta_width, .48x_height);
+ bot z7=(.75cb_ta_width, .68x_height);
+ bot z8=(.7cb_ta_width, .78x_height);
+ top z9=(.5cb_ta_width, x_height);
+
+ top z10 = (.4cb_ta_width, x_height) ;
+ z11 = (.41cb_ta_width, .8x_height) ;
+ z12 = (.5cb_ta_width, .85x_height) ;
+
+ path cb_ta_p, cb_te_p;
+ cb_ta_p = z1..z2..z3..z4..tension 1.2..z5..tension1.2..z6..z7..z8..z9;
+ cb_te_p = cb_ta_p softjoin z9..z10..z11..z12 ;
+ bar_forma(cb_ta_width-.5u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_ta_width, .3x_height)--(1.1cb_ta_width, .3x_height);
+ z400 = cb_ta_p intersectionpoint inter;
+ %vm_u_form(400);
+
+enddef;
+
+def cb_tta_form =
+ path cb_tta_p, cb_tta_pa, cb_tta_pe;
+ lft top z1=(0.12cb_tta_width,x_height);
+ lft top z2=(0.1cb_tta_width,x_height);
+ top z3=(0,.75x_height);
+ lft z4=(.15cb_tta_width, 0.43x_height);
+ lft z5=(.2cb_tta_width, 0.55x_height);
+ z6=(0, .25x_height);
+ bot z7=(1/4cb_tta_width, 0);
+
+ z8=(1/2cb_tta_width, 0.6w_height);%(wedge)
+
+ bot z9=(3/4cb_tta_width, 0);
+ lft z10=(cb_tta_width, 1/4x_height);
+
+ z11=(0.85cb_tta_width, 1/2x_height); %(wedge)
+ rt lft z12=(cb_tta_width, 3/4x_height);
+ rt top z13=(.9cb_tta_width, x_height);
+
+ %For consanant +e
+ z14=(.8cb_tta_width, .9x_height);
+ z15=(.89cb_tta_width, .8x_height);
+
+ %cb_tta_pa = z1..tension1.2..z2..z3..tension1.2..z4;
+ cb_tta_pa = z1..tension1.2..z2..z3..{curl 6.3}z4;
+ cb_tta_p = z4..z5..tension1.2..z6..z7
+ ..z8..z8..z9..z10..z11..z11..z12..z13;
+ %For consanant +e
+ cb_tta_pe = z4..z5..tension1.2..z6..z7
+ ..z8..z8..z9..z10..z11..z11..z12..z13..z14..z15;
+ sketch cb_tta_pa ;sketch cb_tta_p;
+ z20=(x13-u,y13);
+
+ %vmfa_form(20); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(20) ;
+ %vmfea_form(20);
+ %bar_form(0,cb_ka_width);
+ %vm_au_form(20,w);
+
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_tta_width, .3x_height)--(1.1cb_tta_width, .3x_height);
+ z400 = cb_tta_p intersectionpoint inter;
+ %vm_u_form(400);
+
+enddef;
+
+
+def cb_da_form =
+ top z1=(1/2cb_da_width,x_height); lft z2=(0,w_height);
+ bot z3=(1/3cb_da_width,0);z4=(1/2cb_da_width,.6w_height);
+ bot z5=(2/3cb_da_width,0);rt z6=(cb_da_width,1/2x_height);
+ path cb_da_p,cv_de_p;
+ cb_da_p= z4..tension 1.2..z5..z6..z1..z2..z3..tension 1.2..z4;
+ sketch cb_da_p;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_da_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_da_width,vm_e_height2));
+ z30= point na of cb_da_p;
+ (nc,nd)= cb_da_p intersectiontimes
+ ((1/2cb_da_width,vm_e_height2)--(cb_da_width,vm_e_height2));
+ z32= point nc of cb_da_p;
+ top z31=(1/2cb_da_width,.95vm_e_heightx);
+ cv_de_p=z30{curl 3}..z31..z32;
+ bar_forma(cb_da_width-.5u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_da_width, .3x_height)--(1.1cb_da_width, .3x_height);
+ z400 = cb_da_p intersectionpoint inter;
+ %vm_u_form(400);
+
+ enddef;
+
+def cb_dda_form =
+ path cb_dda_p, cv_dde_p;
+ rt z1=(0.1cb_da_width, .5x_height); bot z2=(0.25cb_da_width, 0);
+ bot z3=(1/2cb_da_width,0.6w_height);
+ bot z4=(0.7cb_da_width,0); lft z5=(0.9cb_da_width, 0.4x_height);
+ top z6=(0.6cb_da_width, 0.6x_height);
+ lft z7=(0.79cb_da_width, 0.7x_height);
+ top z8=(0.45cb_da_width, .99x_height);
+
+ cb_dda_p=z1...z2..z3..z3...z4...z5..{curl 2.5}z6..z7..z8..tension 1.0..cycle;
+ sketch cb_dda_p;
+
+ bar_forma(cb_da_width-u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_dda_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_da_width,vm_e_height2));
+ z30= point na of cb_dda_p;
+ (nc,nd)= cb_dda_p intersectiontimes
+ ((1/2cb_da_width,vm_e_height2)--(cb_da_width,vm_e_height2));
+ z32= point nc of cb_dda_p;
+ top z31=(1/2cb_da_width,.92vm_e_heightx);
+ cv_dde_p=z30{curl 3}..z31...z32;
+
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_da_width, .3x_height)--(1.1cb_da_width, .3x_height);
+ z400 = cb_dda_p intersectionpoint inter;
+ %vm_u_form(400);
+
+enddef;
+
+def cb_na_form =
+ bot lft z1=(0,0); lft z2=(0,1/2w_height);
+ bot lft z1=(0,0); lft z2=(0,1/2w_height);
+ z3=(1/3cb_na_width,w_height); bot z4=(2/3cb_na_width,0);
+ rt z5=(cb_na_width,1/3x_height); top z6=(1/2cb_na_width,x_height);
+ bot z10=(.12cb_na_width, -.65w_height);
+
+ % For consonant+e
+ top z7 = (.3cb_na_width, x_height);
+ z8 = (.3cb_na_width, .7x_height);
+ z9 = (.45cb_na_width, .8x_height);
+
+ path cb_na_p, cb_ne_p;
+
+ cb_na_p=z10..z1..z2..z3..z4..z5..z6;
+ cb_ne_p = cb_na_p softjoin z6..tension1.3..z7..z8..z9;
+
+ bar_forma(cb_na_width-.5u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_na_width, .3x_height)--(1.1cb_na_width, .3x_height);
+ z400 = cb_na_p intersectionpoint inter;
+ %vm_u_form(400);
+
+enddef;
+
+def cb_nna_form =
+ z1a=(1/3cb_nna_width,1/2sc_height);
+ bot z1=(1/4cb_nna_width,0); lft z2=(0,1/4x_height);
+ z3=(1/6cb_nna_width,1/2x_height); lft z4=(0,3/4x_height);
+ top z5=(1/4cb_nna_width,x_height); z6=(1/2cb_nna_width,.8x_height);
+ top z7=(5/8cb_nna_width,x_height); rt z8=(cb_nna_width,1/2x_height);
+ bot z9=(2/3cb_nna_width,0); bot z10=(x9-1/2sc_height,sc_height);
+ bot z11=(x9,3/2sc_height); bot z12=(x9+1/2sc_height,sc_height);
+ path cb_nna_p;
+ cb_nna_p= z1a..z1..z2..z3&z3..z4..z5..z6&z6..z7..z8..z9..z10
+ ..tension 1.1..z11..z12;
+ sketch cb_nna_p;
+ z20=bot(.8cb_na_width, x_height);
+ %bar_forma(vm_ea1_width);
+ %bar_forma(cb_nna_width);
+ %vmfa_form(20); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(20) ;
+ %vmfea_form(301);
+ %vm_au_form(20,vm_au_width);
+
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_nna_width, .3x_height)--(1.1cb_nna_width, .3x_height);
+ z400 = cb_nna_p intersectionpoint inter;
+ %vm_u_form(400);
+
+ penlabels(1a);
+enddef;
+
+def cb_ba_form =
+ lft z1 = (u/2,j_height); top z2 = (cb_ba_width/5,x_height);
+ z3 = (cb_ba_width/3,j_height); lft z4 = (0,w_height);
+ bot z5 = (cb_ba_width/4,0); bot z6 = (cb_ba_width/2,.6w_height);
+ bot z7 = (3/4cb_ba_width,0);
+ rt z8 = (cb_ba_width,w_height); %z8 contact point
+ top z9 = (.8cb_ba_width,x_height); % z9 another contact point
+
+ %for consant+e
+ z10 = (.65cb_ba_width, 1.1x_height);
+ z11 = (.65cb_ba_width, .91x_height);
+
+ path cb_ba_p, cb_be_p;
+ cb_ba_p = z1..z2..z3..z4..z5..tension 1.2..z6&z6..tension 1.2..z7..z8..z9;
+ cb_be_p = cb_ba_p softjoin z9..tension1.7..z10..z11;
+ sketch cb_ba_p;
+
+ z12 = (x9-u,y9);
+ %vmfa_form(12); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(12) ;
+ %vmfea_form(12);
+ %vm_au_form(12,vm_au_width);
+
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_ba_width, .3x_height)--(1.1cb_ba_width, .3x_height);
+ z400 = cb_ba_p intersectionpoint inter;
+ %vm_u_form(400);
+
+enddef;
+
+def vb_ea_form =
+ cb_pa_form ;
+ path vb_a_p,vb_a_pa;
+ top z9 = (.80cb_ba_width,.80x_height); % z9 another contact point
+ top z10 = (.35cb_ba_width,x_height); % z9 another contact point
+ vb_a_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..tension 1.2..z10;
+enddef ;
+
+def vb_eae_form =
+ vb_ea_form;
+ path vb_a_pb;
+ z11 = (.25cb_ba_width,.82x_height);
+ top z12 = (.13cb_ba_width,x_height);
+ vb_a_pb = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..tension 1.2..z10..z10..z11..z12
+enddef ;
+
+def vb_i_form =
+ cb_pa_form;
+ path vb_a_pb;
+ top z9 = (3/4cb_pa_width, x_height); z10 = ( 1/2cb_pa_width, .8x_height);
+ top z11 = (1/4cb_pa_width, x_height); lft z12 = (0, .75x_height);
+ vb_a_pb = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..z10..z10..z11..z12
+enddef ;
+
+%def cb_va_form =
+% cb_pa_form ;
+% path cb_va_p,cb_va_pa;
+% top z9 = (.82cb_ba_width,.83x_height); % z9 another contact point
+% top z10 = (.4cb_ba_width,x_height); % z9 another contact point
+% cb_va_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..z10;
+% z20 = (.6cb_ba_width,w_height);
+% z21 = (cb_ba_width, w_height);
+% z30= (z20--z21) intersectionpoint cb_va_p ;
+% vm_u_form(30);
+%enddef ;
+
+def cb_ya_form =
+
+ path cb_ya_pa, cb_ya_pb, cb_ya_pc, cb_ye_p;
+ lft z1 = (0, .49x_height); bot z2 = (3/10cb_ya_width, 0);
+ rt z3 = (3/5cb_ya_width, y1) ; top z4 = (x2, 2y1);
+ z20 = (.7x2, 3/10x_height);
+ z21 = (cb_ya_width+vm_u_width, 3/10x_height);
+ cb_ya_pa = superellipse( z3, z4, z1, z2, .7) ;
+ top z30 = (z20--z21) intersectionpoint cb_ya_pa ;
+ bot z5 = (8/10cb_ya_width, 0); lft z6 = (.85*2x3, .5x_height);
+ %top z7 = (.9x5, x_height);
+ top z7 = (.77cb_ya_width, x_height);
+
+ %for consonant+e
+ z50 = (.75x5, 1.15x_height);
+ z51 = (.68x5, .98x_height);
+ z52 = (.89x5, .92x_height);
+ cb_ya_pb = z30..tension 1.12..z5..z6..z7;
+ cb_ye_p = z30..tension 1.12..z5..z6..z7..tension 1.4..z50..z51..z52;
+ %cb_ye_p = z30..tension 1.12..z5..z6..z7;
+ %sketch z6;sketch z7;sketch z50;sketch z51;sketch z52;
+ %cb_ye_p = z30..tension 1.12..z5..z6..z7..tension 1.6..z50; sketch z51; sketch z52;
+
+ top z40 = (z20--z21) intersectionpoint cb_ya_pb ;
+ numeric ya_width ;
+ ya_width = cb_ya_width + vm_u_width ;
+ bot z8 = (.79(ya_width), 0); rt z9 = (ya_width, .5x_height);
+ top z10 = (.8ya_width, x_height) ;
+ cb_ya_pc = z40..z8..z9..z10 ;
+ draw cb_ya_pa ;
+ draw cb_ya_pb ;
+ draw cb_ya_pc ;
+
+ z90=(x7-1.5u, y7);
+ bar_form(90, .4cb_ya_width);
+ %vmfa_form(7); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(10) ;
+ %vmfea_form(7);
+ %vm_au_form(10,vm_au_width);
+
+ % to compute the joining point of "kombu for ya".
+ path inter;
+ inter = (.7ya_width, .3x_height)--(1.1ya_width, .3x_height);
+ z400 = cb_ya_pc intersectionpoint inter;
+ %vm_u_form(400);
+
+enddef;
+
+def cb_la_form =
+ top z1=(1/4cb_la_width,x_height);
+ lft z2=(0,x_height/2); bot z3=(1/2cb_la_width,0);
+ rt z4=(cb_la_width,y2); top z5=(cb_la_width-.8x1,x_height);
+ z7=(x1+1.5u,2/3x_height);
+ path cb_la_pa,cb_la_pb,cb_la_p, cb_le_p, cb_le_pb;
+ cb_la_pb=z1..z2..z3..z4..z5;
+ z6=point 0.35 of cb_la_pb;
+ cb_la_pa= bot rt z6..z7..z1;
+ cb_la_p=cb_la_pa..cb_la_pb;
+
+ %for consonant+e
+
+ z20=(x5-1.5u, x_height+.7u);
+ z21=(x5-2.3u, x_height-.75u);
+ z22=(x5-.1u, x_height-.4u);
+ %draw z21;
+
+ %cb_le_pb=z1..z2..z3..z4..z5..{curl 2}z20..z21;
+ cb_le_pb=z1..z2..z3..z4..z5..tension1.6..z20..z21..z22;
+ cb_le_p=cb_la_pa..cb_le_pb;
+
+ % z8 is useful for la+u and la+uu
+ numeric na,nb;
+ (na,nb)=cb_la_pb intersectiontimes
+ ((cb_la_width/2,w_height)..(cb_la_width,w_height));
+ z9=point na of cb_la_pb;
+ z8=rt z9;
+ z55= lft z5;
+ %bar_forma(cb_ra_width); % z301 is comming from bar_forma...
+ %vmfa_form(55); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(55) ;
+ %vmfea_form(55);
+ %vm_au_form(55,vm_au_width);
+ %vmah_form(55); % tale-ardha akshara
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_la_width, .5x_height)--(1.1cb_la_width, .3x_height);
+ z400 = cb_la_p intersectionpoint inter;
+ %vm_u_form(400);
+enddef;
+
+def cb_ra_form =
+ top z1=(cb_ra_width/2,x_height);
+ lft z2 = (0,w_height);
+ bot z3 = (cb_ra_width/2,0);
+ rt z4 = (cb_ra_width,y2);
+ path cb_ra_p,cv_re_p;
+ cb_ra_p = z1..z2..z3..z4..cycle;
+ sketch cb_ra_p;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_ra_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_ra_width,vm_e_height2));
+ z30= point na of cb_ra_p;
+ (nc,nd)= cb_ra_p intersectiontimes
+ ((1/2cb_ra_width,vm_e_height2)--(cb_ra_width,vm_e_height2));
+ z32= point nc of cb_ra_p;
+ top z31=(.05cb_ra_width,.8vm_e_heightx);
+ cv_re_p=z30..z31..tension1.2..z32;
+
+ bar_forma(cb_ra_width); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+ %vmah_form(301); % tale-ardha akshara
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_ra_width, .3x_height)--(1.1cb_ra_width, .3x_height);
+ z400 = cb_ra_p intersectionpoint inter;
+ %vm_u_form(400);
+ enddef;
+
+def cb_rra_form =
+ top z1=(1/4cb_rra_width,x_height);
+ y2=y6=1/2x_height;
+ lft x2=0; rt x6=cb_rra_width;
+ x3=x1; x5=cb_rra_width-x3;
+ bot y3=bot y5=0;
+ top z4=(1/2cb_rra_width,w_height);
+ top z7=(cb_rra_width-x1,x_height);
+ z11=(x1+1.5u,y1-1.45uh);
+ path cb_rra_p,cb_rra_pa,cb_rra_pb;
+ cb_rra_pb=z1..z2..z3..tension1.2..z4&z4..tension1.2..z5..z6..z7;
+ numeric na,nb,nc,nd, ne, nf;
+ (na,nb)= cb_rra_pb intersectiontimes
+ ((0,5/6x_height)--(1/2cb_rra_width,5/6x_height));
+ z8=point na of cb_rra_pb;
+ (nc,nd)= cb_rra_pb intersectiontimes
+ ((0.6cb_rra_width,w_height)--(cb_rra_width,w_height));
+ z20=point nc of cb_rra_pb;
+ z19=rt z20;
+ cb_rra_pa=bot z8..z11..z1;
+ cb_rra_p=cb_rra_pa..cb_rra_pb;
+ bot lft z18= z1;% used for placing a vertical line
+
+ z14=(cb_rra_width-1.6x1,x_height-sc_height);
+ %z15=(x7,1/2x_height);z16=(x1,y15);
+ z15 = cb_rra_p intersectionpoint
+ ((0.7cb_rra_width,y8-.6u)--(cb_rra_width,y8-.6u));
+
+ z22 = cb_rra_p intersectionpoint
+ ((0, .6x_height)--(.4cb_rra_width, .6x_height)) ;
+ z23 = cb_rra_p intersectionpoint
+ ((.6cb_rra_width, .6x_height)--(cb_rra_width, .6x_height)) ;
+
+ z16=(x1,y15);
+ path cb_rra_pc, cb_rra_pd;
+ %cb_rra_pc= cb_rra_p..z14..z15--z16;
+ cb_rra_pc= cb_rra_p..z14..z15;%--z16;
+ cb_rra_pd = z22--z23 ;
+ sketch cb_rra_pc;
+ sketch cb_rra_pd ;
+
+ path inter;
+ inter = (.8cb_rra_width, .3x_height)--(1.1cb_rra_width, .3x_height);
+ z400 = cb_rra_pc intersectionpoint inter;
+ enddef;
+
+def arkavattu =
+ path arka_pa, arka_pb ;
+ top z1=(w/5,h); lft z2=(0,3h/4); z3=(x1,h/2);
+ z4=(w/3,h/2); lft z5=(0,h/4); bot z6=(x1,0);
+ bot rt z7=(w,0);
+ arka_pa= flex(z1,z2,z3)& z3--z4;
+ arka_pb=flex(z3,z5,z6)& z6--z7;
+enddef;
+
+
+def flop(expr e) =
+ for d = 1 step 1 until e:
+ draw z[d];
+ endfor;
+enddef ;
+
+def cb_ca_form =
+ path cb_ca_p, cb_ce_p, cb_ca_pb;
+ lft z1 = (0, .25x_height); bot z2= (.5cb_ca_width, 0);
+ rt z3 = (cb_ca_width, .42x_height); z4 = (.75cb_ca_width, .82 x_height);
+ top lft z5 = (.3cb_ca_width, .98x_height) ;
+ top lft z6 = (.15cb_ca_width, .8x_height) ;
+ top lft z7 = (.2cb_ca_width, .74x_height) ;
+ top lft z8 = (.35cb_ca_width, .78x_height) ;
+ top z9 = (.33cb_ca_width, .85x_height) ;
+ z22 = (.3cb_ca_width, y3);
+ z21 = (.58cb_ca_width, .7x_height);
+ top z20 = (.45cb_ca_width, x_height);
+
+ z30 = (x20-1.25u, x_height+1u);
+ z31 = (x20-2.25u, x_height+.5u);
+ z32 = (x20-1.25u, x_height+.1u);
+
+
+ cb_ca_p = z20..z21..z22..z1..z2..{dir 92}z3..z4..z5..z6..z7..z8..z9;
+ cb_ca_pb = z32..z31..z30..tension1.6..z20;
+
+ cb_ce_p = cb_ca_pb softjoin cb_ca_p ;
+ bar_forma(cb_ca_width-.5u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+ %vmah_form(301); % tale-ardha akshara
+
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_ca_width, .3x_height)--(1.1cb_ca_width, .3x_height);
+ z400 = cb_ca_p intersectionpoint inter;
+ %vm_u_form(400);
+
+enddef;
+
+def cb_va_form =
+ cb_pa_form ;
+ path cb_va_p, cb_va_pa, cb_ve_p;
+ top z9 = (.82cb_ba_width,.8x_height); % z9 another contact point
+ top z10 = (.5cb_ba_width,x_height); % z9 another contact point
+
+ %for consonant +e
+ top z11 = (.3cb_ba_width, .8x_height);
+ z12 = (.5cb_ba_width, .85x_height);
+
+ %cb_va_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..{left}z10;
+ cb_va_p = z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..z10;
+ cb_ve_p =z41..z42..z43..z43..z44..z45..z46 & z46..z47..z48..z9..z10..z11..z12;
+
+ bar_forma(cb_pa_width-.2u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfea_form(301);
+ %vm_u_form(46);
+
+enddef ;
+
+def cv_vu_form(suffix $) =
+ path cv_vu_p;
+ z$a = z$;
+ bot z$b = (x$a+.25cb_ba_width, -.5des_depth) ;
+ z$c = (cb_ba_width+.5vm_u_width, .4x_height);
+ rt z$d = (cb_ba_width+.35vm_u_width, .8x_height);
+ sketch z$..z$b..z$c..z$d;
+enddef;
+
+def cv_vuu_form(suffix $) =
+ path cv_vu_p;
+ z$a = z$;
+ bot z$b = (x$a+.25cb_ba_width, -.5des_depth) ;
+ z$c = (cb_ba_width+.2vm_uu_width, .4x_height);
+ rt z$d = (cb_ba_width+.5vm_uu_width, .9x_height);
+ z$e = (cb_ba_width+.8vm_uu_width, .5x_height);
+ rt z$g = (cb_ba_width+.7vm_uu_width, .05x_height);
+ z$h = (cb_ba_width+.55vm_uu_width, .1x_height);
+ z$i = (cb_ba_width+.65vm_uu_width, .25x_height);
+ sketch z$..z$b..z$c..z$d..z$e..z$g..z$h..z$i;
+enddef;
+
+def vm_a_form(suffix $) =
+ path vm_a_p ;
+ rt x$a = vm_a_width; y$a = y$;
+ x$b = x$a ; y$b = 1.3y$a;
+ vm_a_p = z$--z$a..{dir 160}z$b;
+ penlabels($a,$b,$c);
+enddef ;
+
+def vm_a_forma(suffix $) =
+ path vm_a_p ;
+ top z51$=(x$-1/6vm_a_width,x_height);
+ top z52$=(x$+.6vm_a_width,x_height);
+ top top z53$=(x$+.6vm_a_width,1.3x_height);
+ vm_a_p = z51$--z52$..{dir 160}z53$;
+enddef ;
+
+def cb_sa_form =
+ bot lft z1=(0,0); lft z2=(0,1/2w_height);
+ z3=(.5cb_na_width,.4x_height); bot rt z4=(.85cb_na_width,.02x_height);
+ rt z44=(.98cb_na_width,.1x_height);
+
+ rt z5=(cb_na_width,.5x_height); top z6=(.8cb_na_width,.9x_height);
+ path cb_sa_p;
+ top lft z77=(1/3cb_na_width-1/2c_height, top (x_height - c_height));
+ place_lit_circ(77, 1);
+ cb_sa_p=z1..z2..z3..{z5-z6}z4.. z44..z5..z6;
+ bar_forma(cb_na_width-u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+ %vmah_form(301); % tale-ardha akshara
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_na_width, .3x_height)--(1.1cb_na_width, .3x_height);
+ z400 = cb_sa_p intersectionpoint inter;
+ %vm_u_form(400);
+enddef;
+
+def cb_ha_form =
+ lft z1 = (0, .45x_height) ; bot z2 = (.24cb_ha_width, 0);
+ z3 = (.48cb_ha_width, .3x_height); z4 = (cb_ha_width-x3, .6x_height);
+ z5 = (.76cb_ha_width, .8x_height); rt z6 = (cb_ha_width, .4x_height);
+ bot z7 = (.76cb_ha_width, 0); z8 = (cb_ha_width-x3, y3);
+ z9 = (x3, y4); z10 = (x2, y5);
+ z11 = (x3,.65x_height); top z12 = (.4cb_ha_width, x_height);
+ path cb_ha_p, cb_ha_pa ;
+ cb_ha_p = z1..z2..z3..z4..z5..z6..z7..z8..z9..z10..cycle;
+ cb_ha_pa = z11..{dir 130}z12;
+ sketch cb_ha_p ;
+ sketch cb_ha_pa ;
+ bar_forma(cb_ha_width-u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+ %vmah_form(301); % tale-ardha akshara
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.8cb_ha_width, .3x_height)--(1.1cb_ha_width, .3x_height);
+ z400 = cb_ha_p intersectionpoint inter;
+ %vm_u_form(400);
+enddef ;
+
+def cb_lla_form =
+ z1=(.18cb_lla_width,.84x_height); z2=(.25cb_lla_width,.8x_height);
+ top z3=(.32cb_lla_width,.86x_height); top z4=(x2,x_height);
+ lft z5 =(0, .8x_height);
+ z6 = (1/2cb_lla_width, .4x_height);
+ z7 = (3/4cb_lla_width, .2x_height);
+ bot z8 = (1/2cb_lla_width,0);
+ z9 = (1/4cb_lla_width,y7);
+ rt z10 = (cb_lla_width,.75x_height);
+
+ top z11 = (.8cb_lla_width,x_height);
+
+ z19 = (.9cb_lla_width, .9x_height);
+ z20 = (x19-1.2u, y19+1.2u);
+ z21 = (x19-1.5u, y19);
+ z22 = (x19-.95u, y19+.15u);
+ path cb_lla_p, cb_lle_p, cb_lla_pb;
+
+ cb_lla_p = z1..z2..z3..z4..z5..z6..z7..z8..z9..z6..z10..z11;
+
+ %cb_lla_pb = z11..tension 1.3..z20..z21;
+
+ %cb_lle_pb = cb_lla_p softjoin cb_lla_pb ;
+ cb_lle_p = z1..z2..z3..z4..z5..z6..z7..z8..z9..z6..z10..z19..tension 1.6..z20...z21..z22;
+ %cb_lle_p = z1..z2..z3..z4..z5..z6..z7..z8..z9..z6..z10..z19..z11;
+ z12 = lft lft z11;
+ %vmfa_form(12); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(12) ;
+ %vmfea_form(12);
+ %vm_au_form(12,vm_au_width);
+ %vmah_form(12); % tale-ardha akshara
+ % to compute the joining point of "kombu for nya".
+ path inter;
+ inter = (.6cb_lla_width, .22x_height)--(1.1cb_lla_width, .22x_height);
+ z400 = cb_lla_p intersectionpoint inter;
+ %vm_u_form(400);
+
+enddef;
+
+def cb_sha_form =
+ cb_va_form;
+ top lft z77=(1/2cb_pa_width-1/2c_height-.5u, top (x_height - c_height));
+ place_lit_circ(77, 1);
+ bot rt z66 = (cb_pa_width, 0);
+ path cb_sha_pb;
+ z65 = (.65cb_pa_width, .6x_height);
+ cb_sha_pb = z65--z66;
+ %bar_forma(cb_ra_width); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+ %vmah_form(301); % tale-ardha akshara
+enddef ;
+
+def cb_ksha_form =
+ cb_ka_form;
+ top z11 = (1/6cb_ka_width, -.4cb_ksha_depth);
+ lft z12 = (0,-1/2cb_ksha_depth);
+ bot z13 = (1/4cb_ka_width,-cb_ksha_depth);
+ z14 = (.48cb_ka_width,-2/3cb_ksha_depth);
+ bot z15 = (3/4cb_ka_width,-cb_ksha_depth);
+ rt z16 = (.95cb_ka_width,-1/2cb_ksha_depth);
+ top z17 = (.8cb_ka_width, -.01cb_ksha_depth);
+ bot rt z18 = (cb_ka_width,-cb_ksha_depth);
+ bot z19 = (.9cb_ka_width, y16);
+ sketch z11..z12..z13..z14; sketch z14..z15..z16..z17;
+ sketch z19..z18;
+enddef;
+
+def v_a_form =
+ top z1=(1/4v_a_width,x_height);
+ z10=(x1-u,y1-uh); z11=(x1,y1-2(y1-y10));
+ lft z3=(0,2/3x_height); bot z4=(1/2v_a_width,0);
+ rt z5=(v_a_width,2/3x_height); top z6=(v_a_width-1.5u,x_height);
+ z7=(4/5x5,.55x_height); z8=(1/4w,y7);
+ z12=(.65v_a_width,5/6x_height); rt z2=(v_a_width,1/2x_height);
+enddef;
+
+def v_aa_form =
+ z1=(.1v_a_width,.7x_height); z2=(.3v_a_width,.85x_height);
+ top z3 = (.15v_a_width, x_height); lft z4 = (0, .75x_height);
+ lft z4a = (.12v_a_width, .2x_height);
+ bot z5 = (.5v_a_width, 0); rt z6 = (v_a_width, .3x_height);
+ bot z66 = (.85v_a_width, .55x_height);
+ top z7 = (.76v_a_width, .7x_height); top z8 = (.88v_a_width, x_height);
+ rt z9 =(v_a_width, .85x_height);
+ rt z11 =(x7, y7);
+ rt z12 =(.4v_a_width, y11);
+ sketch z1..z2..z3..z4..z4a..z5 ..tension 1.2..z6..z66..z7..z8..z9..z7..z11--z12;
+enddef;
+
+def v_u_form =
+ path v_u_pa, v_u_pb;
+ z1 = (.13v_u_width, .78x_height); z2= (2x1, .88x_height); z3a=(.09v_u_width,y2);
+ top lft z3 = (x1, x_height);
+ lft z4 = (0, .43x_height); bot z5 = lft (.2v_u_width, 0);
+ z5a = (.38v_u_width, .53y6);
+ %top z6 = (.52v_u_width, x_height); z6a = (.65v_u_width, 1.2y5a);
+ top z6 = (.52v_u_width, x_height); z6a = (.66v_u_width, y5a);
+ bot z7 = (.8v_u_width, 0); rt z7a = (v_u_width, .5x_height);
+ rt z8 = (.94v_u_width, .9x_height) ; top rt z8a = (.91v_u_width,x_height);
+
+ %v_u_pa = z1..z2..z3..z3a..tension 1.2..z4..z5...z5a..tension 1.2..z6
+ % {dir 9}..z6a{dir -85}..z7..z7a..z8..z8a;
+ v_u_pa = z1..z2..z3..z3a..z4..z5...z5a..z6..z6a..z7..z7a..z8..z8a;
+ %v_u_pb = z1..z2..z3..z3a..tension 1.2..z4..z5..z5a..tension 1.2..z6
+ % {dir 5}..z6a{dir -85}..z7;
+ %flop(8); draw z3a; draw z5a; draw z6a; draw z7a; draw z8a ;
+ sketch v_u_pa;
+enddef;
+
+def vm_uu_form (suffix $) =
+ bot z1$ = (x$+.1vm_uu_width, 0); z2$ = (x$+.4vm_uu_width, .66x_height);
+ top z3$ = (x$+.52vm_uu_width,x_height);
+ rt z4$ = (x$+vm_uu_width, .5x_height);
+ bot z5$ = (x$+.75vm_uu_width, 0); z6$ = (x$+.65vm_uu_width, .1x_height);
+ rt z7$ =(x$+.85vm_uu_width, .25x_height);
+ sketch z$..z1$..z2$..z3$..z4$..z5$..z6$..z7$;
+enddef;
+
+def v_uu_form =
+ numeric wid, het ;
+ wid = v_uu_width ; het = x_height ;
+ z1 = (1/10wid,8/10het) ; z2 = (2x1, y1); top z3 = (x1, het) ;
+ lft z4 = (0-.5u, 1/2 het) ; bot z5 = (1/8wid, 0) ;
+ z6 = (1/4wid, 1/2het) ; top z7 = (3/8wid, het) ;
+ z8 = (1/2wid, 1/2het) ; bot z9 = (5/8wid, 0) ;
+ z10 = (3/4wid, 1/2het); top z11 = (7/8wid, het) ;
+ rt z12 = (wid+.5u, 1/2het) ;bot z13 = (wid-x3, 0) ;
+ z14 = (wid-x2, het-y2) ; z15 = (wid-x1, het-y1) ;
+ %sketch z1...z2...z3...z4...z5...z6...z7...z8...z9...z10...z11...z12...z13...z14...z15;
+ sketch z1..z2..z3..z4..tension 1.2..z5..tension 1.2..z6..tension 1.2..z7..tension 1.2..z8..tension 1.2..z9..tension 1.2..z10..tension 1.2..z11..tension 1.2..z12..z13..z14..z15;
+enddef;
+
+def v_ro_form =
+ path v_ro_p;
+ z1 = (.5v_ro_width, .8x_height); z2 = (.25v_ro_width, .7x_height);
+ lft z3 = (0, .8x_height); top z4 = (.5v_ro_width, x_height);
+ rt z5 = (v_ro_width, .5x_height);
+ bot z6 = (x4, 0); lft z7 = (0, .2x_height); z8 = (x2, .3x_height);
+ z9 = (x1, .2x_height);
+ v_ro_p = z1..z2..z3..z4..z5..z6..z7..z8..z9;
+
+ z10 = (.6v_ro_width, y8); z11 = (v_ro_width+2vm_u_width, y10);
+ sketch v_ro_p;
+ z19 = (z10--z11) intersectionpoint v_ro_p;
+ vm_u_form(19);
+ z29 = (x19+.4vm_u_width, x_height);
+ vm_a_forma(29);
+ sketch vm_a_p;
+ z20=z19b;
+ vm_u_form(20);
+ z39 = z20b;
+enddef;
+
+def barandhook_formk (suffix $)(expr bar_width,t) =
+ z$a=(x$+bar_width-u,y$); rt z$b=(x$a+u,y$-uh);
+ bot z$c =(x$b-u,y$-2uh); lft z$d=(x$b-2u,y$b);
+ top z$e=(x$a-u,y$); rt z$f=(x$b,y$+1.5uh);
+ top z$g=(x$a,y$f+uh); z$h=(x$d,y$f);
+ path barandhook_p;
+ barandhook_p= subpath(0,t) of (rt z$--z$a..z$b..z$c..z$d..z$e..z$f..z$g..z$h);
+ sketch barandhook_p;
+ penlabels($a,$b,$c,$d);
+enddef;
+
+def barandhook_form (suffix $)(expr bar_width,t) =
+ z$a=(x$+bar_width-u,y$); rt z$bb=(x$a+u,y$-1/2des_depth);
+ rt z$b=(x$a+u,y$-des_depth+uh);
+ bot z$c =(x$b-u,y$b-uh); lft z$d=(x$b-1.75u,y$b);
+ top z$e=(x$d+.75u,y$b+.5u); rt z$f=(x$b,y$+1.5uh);
+ path barandhook_p;
+ barandhook_p= (rt z$--z$a..z$bb..z$b..z$c..z$d..z$e);
+ %barandhook_p= subpath(0,t) of (rt z$--z$a..z$bb..z$b..z$c..z$d..z$e);
+ sketch barandhook_p;
+ penlabels($a,$b,$c,$d);
+enddef;
+
+%Following is old version it's obsolete...............
+def vm_au_forma (suffix $)(expr bar_width) = % see the above diagram
+ numeric na;
+ %top z$e=z$; % screwed up GHA+AU.
+ %z$e=z$;
+ z$e=(x$, y$);
+ z$a = (x$e+2/10(bar_width-u),y$e);
+ z1000 = (x$-.5u,asc_height2);
+ % 1000 was chosen arbitrarily
+ % we needed some suffix not used by any user of
+ % this macro
+ barandhook_form(1000,bar_width,5);
+ z$d=z1000a;
+ %next two statements solve for c
+ x$c = x$a;
+ z$c = whatever[z1000,z$d];
+ na:=x$c+(x1000a-x$c)/3; % used for alligning pa,pha,sha..
+ sketch z$e--z$a{right}..{left}z$c;
+ penlabels($a,$b,$c,$d,$e,1000);
+enddef;
+
+def vm_au_form (suffix $)(expr bar_width) = % see the above diagram
+ numeric na;
+ %top z$e=z$; % screwed up GHA+AU.
+ %z$e=z$;
+ z$e=(x$, y$);
+ z$a = (x$e+5/10(bar_width-u),y$e);
+ z1000 = (x$+2.3u,asc_height2);
+ % 1000 was chosen arbitrarily
+ % we needed some suffix not used by any user of
+ % this macro
+ barandhook_form(1000,.9bar_width,5);
+ z$d=z1000a;
+ %next two statements solve for c
+ x$c = x$a;
+ z$c = whatever[z1000,z$d];
+ na:=x$c+(x1000a-x$c)/3; % used for alligning pa,pha,sha..
+ sketch z$e--z$a{right}..{left}z$c;
+ penlabels($a,$b,$c,$d,$e,1000);
+enddef;
+
+% Begin of Vowel Modifiers.....
+
+def vm_ee_form =
+ z0 = (.5vm_ee_width+u, y2);
+ z1 = (.7vm_ee_width+u, 2/3x_height);
+ rt z2 = (vm_ee_width+u, y1+1/6x_height);
+ top z3 = (1/2vm_ee_width+u, x_height);
+ lft z4 = (0+u, .6x_height); bot z5 = (3/5vm_ee_width+u, 0);
+ sketch z0..z1..z2..z3..z4..z5;
+enddef;
+
+def vm_ro_form =
+ z1=(.8vm_ro_width,3/5x_height);rt z2=(vm_ro_width,0);
+ bot z3=(1/2vm_ro_width,-des_depth);z4=(.15vm_ro_width,-.1des_depth);
+ z5=(.2vm_ro_width,.05x_height); z6 = (.25vm_ro_width, .1x_height);
+ z7=(.3vm_ro_width,-.2des_depth);
+ path vm_ro_p;
+ vm_ro_p = z1..z2..z3..z4..z5..z6..z7;
+ path ct;
+ ct = vm_ro_p scaled 1 shifted (-3u, -.5des_depth) rotated 0 ;
+ sketch ct;
+enddef;
+
+def vm_y_form =
+ top z1=(.75vm_y_width, 3/5x_height); rt z1a=(vm_y_width,3/10x_height);
+ rt z2=(.8vm_y_width,.1x_height);
+ rt z3a=(vm_y_width,-1/2des_depth);
+ bot z3=(1/2vm_y_width,-des_depth);z4=(.15vm_y_width,-.1des_depth);
+ z5=(.2vm_y_width,.05x_height); z6 = (.25vm_y_width, .1x_height);
+ z7=(.3vm_y_width,-.2des_depth);
+ path vm_y_p ;
+ vm_y_p = z1..z1a..z2..z2..z3a..z3..z4..z5..z6..z7;
+enddef;
+
+%def vm_e_form_a (suffix $) (expr xoff, yoff) =
+% z$1 = (x$+xoff, y$+yoff);
+% z$2 = (x$1+u, y$1+u);
+% z$3 = (x$1, y$1+2u);
+% z$4 = (x$1-u, y$1+u);
+% z$5 = (x$1-.7u, y$1+.1u);
+% path vm_e_p;
+% vm_e_p = z$..z$1..z$2..z$3..z$4..z$5;
+%enddef;
+
+def vm_e_form_a (suffix $) (expr xoff, yoff) =
+ z31 = (x$+xoff, y$+yoff);
+ z32 = (x31+u, y31+u);
+ z33 = (x31, y31+2u);
+ z34 = (x31-u, y31+u);
+ z35 = (x31-.7u, y31+.1u);
+ path vm_e_p;
+ vm_e_p = z$..z31..z32..z33..z34..z35;
+enddef;
+
+def vm_e_formb(suffix $) (expr a, b) =
+ z50 = (a-1/2u, b+u) ;
+ z51 = (a, b) ;
+ sketch z$..z50..z51 ;
+enddef;
+
+def vm_e_form =
+ path vm_e_p;
+ lft z551 = (0,x_height+1.2ascunit);
+ top z552 = (1/2vm_e_width,x_height);
+ rt z553 = (vm_e_width,x_height+2ascunit);
+ z554 = z553;
+ lft z555 = (0,x_height+3ascunit);
+ z556 = (1/2vm_e_width,y555);
+ top z557=(1/2vm_e_width,vm_e_height1+ascunit);
+ vm_e_p = subpath (0.4,1) of z551{down}..{right}z552..z553..z557..z555..z556;
+ sketch vm_e_p;
+ %sketch subpath (0.4,1) of z551{down}..{right}z552..z553..z557..z5..z556;
+ % hook can be attached at z7
+enddef;
+
+def naa_form =
+ path naa_p ;
+ z1 = bot lft (cb_na_width, x_height) ; z2 = bot ( 2u, x_height) ;
+ z3 = rt (0, 5/6x_height) ;
+ z4 = bot (u, 2/3x_height) ; z5 = (3/4cb_na_width, y4) ;
+ z6 = rt (0, 1/2x_height) ;
+ z7 = bot (u, 1/3x_height); z8 = (1/2cb_na_width, y7) ;
+ z9 = rt (0, 1/6x_height) ;
+ z10 = top (u, 0) ;
+
+ naa_p = z1--z2...z3...z4--z5 &z5--z4...z6...z7--z8 & z8--z7...z9..z10 ;
+ sketch naa_p ;
+enddef ;
+
+input kanvarna ;
+input kanlets;
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kanparam.mf b/Master/texmf-dist/fonts/source/public/itrans/kanparam.mf
new file mode 100644
index 00000000000..8346ee22b24
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kanparam.mf
@@ -0,0 +1,181 @@
+% This file is part of the KannadaTeX Software Package.
+%Copyright (c) 1991 G.S. Jagadeesh & Venkatesh. Gopinath.
+%
+%Author: Modified from TeluguTex by, GS. Jagadeesh & Venkatesh Gopinath.
+%The KannadaTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the KannadaTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the KannadaTeX Software Package, but only under the conditions described in the
+%KannadaTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with KannadaTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+
+%%%%%%%%
+% This file contains various parameters used in making a font
+% for kannada. Many of the parameters are used in several places.
+% Before changing anything here you should be very clear about
+% the possible impact.
+%
+%
+input kanbase % read basefile
+
+font_identifier :="KANNADA";
+
+% parameters
+
+u#:=designsize/18; % unit width
+v#:=designsize; % total height
+uh#:=v#/18; % unit height
+top_shoulder:=2/36; % top shoulder proportion
+bot_shoulder:=2/36; % bottom shoulder proportion
+xheight:=15/36; % x height proportion
+ascheight:=10/36; % ascender height proportion
+desdepth:=7/36; % descender depth proportion
+figheight:=6/36; % height of roman digits
+
+em_width#:=18u#; % same as font_quad
+%font_quad em_width#;
+
+asc_height#:=(ascheight+xheight)*v#;
+des_depth#:=desdepth*v#;
+x_height#:=xheight*v#;
+bot_depth#:=(bot_shoulder+desdepth)*v#;
+top_height#:=(top_shoulder+ascheight+xheight)*v#;
+fig_height#:=(figheight+xheight)*v#; % height of roman digits
+kfig_width#:=7.5u#; % width of kannada digits
+kfig_height#:=x_height#; % height of kannada digits
+
+asc_height1#:=(1/3ascheight+xheight)*v#;
+asc_height2#:=(2/3ascheight+xheight)*v#;
+
+%j_height#:=2/3x_height#; % height of bowls in ja,ta etc
+j_height#:=.6x_height#; % height of bowls in ja,ta etc
+c_height#:=1/3x_height#; % height of circle in ma, pa etc
+% c_height is used to draw small circles. If we use a wide pen then the circle
+% may not be clearly visible. Hence the following statement.
+if c_height# < (3.2*pen_width#):c_height#:=3.2pen_width#; fi;
+w_height#:=1/3x_height#; % height of wedge in da,ta etc
+ascunit#:=1/6(asc_height#-x_height#); % a unit for acsender area
+vmwidth#:=7u#; % width of vowel modifiers
+top_accent#:=1.5uh#; % base for accents that appear at top
+bot_accent#:=1.5uh#; % base for accents that appear below
+cc_scale:=0.65; % scale factor for consonant conjuncts
+ccwidth#:=vmwidth#; % width of co.conjuncts that appear on % the side
+dot_radius#:=u#; % radius of dot
+wedge_height#:=x_height#/4; % height of wedge (in dha, uu etc)
+wedge_depth#:=4/9des_depth#; % depth of wedge(in dha,uu etc)
+sc_height#:=1/6x_height#; % misc. usage
+
+v_a_width#:=10u#; % width of vowel a
+v_e_width#:=7.5u#; % width of vowel e
+v_u_width#:=10u#; % width of vowel u (like dda no hat
+v_uu_width#:=13u#; % width of vowel u (like dda no hat
+v_lo_width#:=11u#; % width of vowel lo(inverted ja)
+v_ea_width#:=6u#; % width of vowel ea(like pa without
+v_i_width#:=7u#; % width of vowel i
+v_ro_width#:=4.5u#; % width of vowel ro
+
+vm_ah_width# :=4u#;
+vm_ah_height# :=3u#;
+vm_a_width#:=2u#; % width of vowel modifier a
+vm_aa_width#:=6u#; % width of vowel modifier aa
+vm_e_width#:=4u#; % width of vowel modifier e
+vm_ee_width#:=4u#; % width of vowel modifier e
+vm_e_height1#:=asc_height2#; % height of vowelmodifier e (used
+vm_ea_width# := 2u#;
+vm_ea1_width# := 8u#;
+vm_ea_height# := 2u#;
+vm_e_height2#:=5/6x_height#; % vowel mod. e for ra,ga.da sits
+vm_e_heightx#:=(1/2ascheight+xheight)*v#; % between vm_e_height2 and 3
+ % with certain consonants kha,cha,
+ % ccha,ja,ta,na,ba,bha,ma,la,va etc)
+vm_u_width#:=4.5u#; % width of ubowl (attached to letter
+vm_uu_width#:=8u#; % width of uubowl (attchd to lett).
+vm_ro_width#:=6u#; % width of vowel modifier ro
+vm_y_width#:=6u#; % width of vowel modifier ro
+vm_bar_width#:=4u#; % width of vowel modifier ro
+vm_ao_width#:=8u#; % width of vowel modifier ao
+vm_aoo_width#:=vm_ao_width#+1.5u#; % width of vowel modifier aoo
+vm_au_width#:=8u#; % width of vowel modifier ao
+
+vm_e_width1#:=3u#; % width of vowel modifier e
+vm_e_heightj#:=2.25u#; % height of vowel modifier e
+
+%vm_e_width#:=3u#; % width of vowel modifier ao
+%vm_e_height#:=2u#; % width of vowel modifier ao
+
+cb_ka_width#:=6u#; % width of ka
+cb_kha_width#:=7.5u#; % width of kha
+cb_ga_width#:=6u#; % width of ga
+cb_cha_width#:=9u#; % width of cha
+cb_ja_width#:=7.5u#; % width of ja
+%cb_tta_width#:=10.5u#; % width of tta
+cb_tta_width#:=7.5u#; % width of tta
+cb_nna_width#:=9u#; % width of nna
+cb_ta_width#:=7u#; % width of ta
+cb_da_width#:=9.0u#; % width of da
+cb_ha_width#:=9.0u#; % width of da
+cb_na_width#:=7u#; % width of na
+cb_ba_width#:=7.5u#; % width of ba
+cb_ya_width#:=10u#; % width of ya (without bowl)
+cb_ra_width#:=6u#; % width of ra
+cb_rra_width#:=9u#; % width of rra
+cb_la_width#:=9u#; % width of la
+cb_lla_width#:=6u#; % width of lla
+cb_pa_width#:=7.5u#; % width of pa
+cb_ca_width#:=5.5u#; % width of ca
+cb_sha_width#:=cb_pa_width#+1.5u#; % width of sha
+cb_ksha_width#:=cb_ka_width#; % width of ksha
+cb_ksha_depth#:=des_depth#; % floor of ksha
+cb_np_width#:=ccwidth#; % width of nakarapollu
+cb_vg_width#:=ccwidth#; % width of valapalagilaka
+
+cv_pu_width#:=cb_pa_width#+2u#; % width of u modifier for pa
+cv_pu_depth#:=1.5uh#; % depth of u modifier for pa
+
+p_comma_width#:=2dot_radius#+u#; % width of comma
+half_plus_width#:=cb_ja_width#/2; % width of symbol like truncated +
+
+% ul#, ur# indicate the amount of white space that is added
+% to a symbol. Following are the criteria used to add space
+% consonant base, vowels - none
+% punctuation,digits - on right
+% consonant conjuncts that appear below,vowel modifiers that appear
+% above/below - none
+% accents that appear below/above - none
+% consonant conjuncts that appear on the side - on left
+% vowel modifiers for u, uu - none
+% vowel modifiers for ro, roo - on left
+% While composing Kannada text using TeX, space is added after a syllable
+% by the macros that build a syllable.
+ul#:=2u#; % white space (on left)
+ur#:=2u#; % white space (on right)
+
+
+%generate kannada; % switch to driver files
+% Font Dimensions
+
+font_slant slant;
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad em_width#;
+font_extra_space 2u#;
+
+%ligature and kern information
+
+%ligtable "'": "'" =: p_cquotes_code; % close quotes
+%ligtable "`": "`" =: p_oquotes_code; % open quotes
+%ligtable "-": "-" =: p_lhyphen_code; % en dash
+%ligtable p_lhyphen_code: "-" =: p_vlhyphen_code; % em dash
+
+%if not testing: expandafter stop fi;
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kanspc.mf b/Master/texmf-dist/fonts/source/public/itrans/kanspc.mf
new file mode 100644
index 00000000000..98d74be993f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kanspc.mf
@@ -0,0 +1,52 @@
+%kanspc%
+% generates striped characters with shading
+%input kanmode;
+font_size 72pt#;
+slant:=0;
+pen_width#:=2.5pt#;
+% Following code(with minor modifications) is taken from the article,
+% The ABC's of Special Effects by Georgia K. M. Tobin,
+% that appeared in TUGboat, Volume 9(1988), No. 1
+vardef special_effects=
+% creates characters filled with stripes and followed by a shadow.
+ cullit;
+ picture Normalchar;
+ Normalchar:=currentpicture;
+ clearit;
+% Depending on the output device, pen size(0.1pt) may need to be
+% changed.
+ pickup pencircle scaled 0.1pt;
+ filldraw (0,-d)--(w,-d)--
+ (w,h)--(0,h)--cycle;
+ picture Blackbox;
+ Blackbox:=currentpicture;
+ picture Reversevideo;
+ Reversevideo:=Blackbox-Normalchar;
+ clearit;
+% Depending on the output device,stepsize(uh/3) may need to be
+% changed.
+ for f=-d step uh/3 until h:
+ draw(0,f)--(w,f);
+ endfor;
+ currentpicture:=
+ currentpicture-Reversevideo;
+ cullit;
+ picture Stripedchar;
+ Stripedchar:=currentpicture;
+ clearit;
+% Depending on the output device,offset(1.5pt) may need to be
+% changed.
+ currentpicture:=Normalchar shifted(1.5pt,-1.5pt);
+ picture Shadow;
+ Shadow:=currentpicture;
+ clearit;
+ currentpicture:=Shadow-Normalchar;
+ cullit;
+ picture Shadowonly;
+ Shadowonly:=currentpicture;
+ clearit;
+
+ currentpicture:=Shadowonly+Stripedchar;
+enddef;
+input kanmain;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/kanvarna.mf b/Master/texmf-dist/fonts/source/public/itrans/kanvarna.mf
new file mode 100644
index 00000000000..f2a429c2dd3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/kanvarna.mf
@@ -0,0 +1,2359 @@
+% This file is part of the KannadaTeX Software Package.
+%Copyright (c) 1991 G.S. Jagadeesh & Venkatesh. Gopinath.
+%
+%Author: GS. Jagadeesh.
+%The KannadaTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the KannadaTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the KannadaTeX Software Package, but only under the conditions described in the
+%KannadaTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with KannadaTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+% This file contains all Kannada aksharas in it's varnamale.
+% along vowel modifiers and consonant conjunctions.
+
+%-------------- Begin of are the Vowel and Vowel modifiers.---------------
+def VA =
+ stest(va); kanchar "vowel a";
+ begintchar(v_a_code,v_a_width#,x_height#,0,0,0,0);
+ v_a_form;
+ sketch z10..z11..z1..z3..z4..z5..z6..z7--z8;
+ endtchar; etest;
+enddef ;
+
+def VAA=
+ stest(vaa); kanchar "vowel aa";
+ begintchar(v_aa_code,v_a_width#,x_height#,0,0,0,0);
+ v_a_form;
+ sketch z10..z11..z1..z3..z4..z2 &z2{(0,1)}..{up}z12..z6..z5..{left}z7--z8;
+ endtchar; etest;
+enddef ;
+
+def VE=
+ stest(ve); kanchar "vowel e";
+ begintchar(v_e_code,v_e_width#,x_height#,des_depth#,0,0,0);
+ v_e_form;
+ endtchar; etest;
+enddef ;
+
+def VEE =
+ stest(vee); kanchar "vowel ee";
+ begintchar(v_ee_code,cb_ra_width#+2.6u#,asc_height#,0,0,0,0);
+ cb_ra_form;
+ z1a = (0, 1/2x_height);
+ z1b = (cb_ra_width+1.1u, y1a);
+ rt z1c = (x1b+1.5u, .7x_height);
+ z1d = (x1b+.75u, .85x_height);
+ rt z1e = (x1b+1.5u, .25x_height);
+ bot z1f = (x1b+.5u, 0);
+ draw z1a--z1b..z1c..z1d..z1b..z1e..z1f;
+ vmfa_form(301); % Following are test to see How vowel modifer looks.
+ endtchar; etest;
+enddef ;
+
+def VU=
+ stest(vu); kanchar "vowel u";
+ begintchar(v_u_code,v_u_width#,asc_height#,0,0,0,0);
+ v_u_form;
+ %sketch v_u_pa;
+ endtchar; etest;
+enddef;
+
+def VUU=
+ stest(vuu); kanchar "vowel uu";
+ begintchar(v_uu_code,v_uu_width#+.5u#,x_height#,0,0,0,0);
+ v_uu_form;
+ endtchar; etest;
+enddef;
+
+def VRO=
+ stest(vro); kanchar "vowel ro";
+ begintchar(v_ro_code,v_ro_width#+1.7vm_u_width#,x_height#+2u#,0,0,0,0);
+ v_ro_form;
+ endtchar; etest;
+enddef;
+
+def VROO=
+ stest(vroo); kanchar "vowel roo";
+ begintchar(v_roo_code,v_ro_width#+2vm_u_width#+vm_uu_width#,x_height#+2u#,0,0,0,0);
+ v_ro_form;
+ %z3a = (0, .7w_height);
+ vm_uu_form(39);
+ endtchar; etest;
+enddef;
+
+def VEA=
+ stest(vea); kanchar "vowel ea";
+ begintchar(v_ea_code,cb_pa_width#,x_height#,0,0,0,0);
+ vb_ea_form;
+ sketch vb_a_p;
+ endtchar; etest;
+enddef ;
+
+def VEAE=
+ stest(veae); kanchar "vowel eae";
+ begintchar(v_eae_code,cb_pa_width#,x_height#,0,0,0,0);
+ vb_eae_form;
+ sketch vb_a_pb;
+ endtchar; etest;
+enddef ;
+
+def VI =
+ stest(vi); kanchar "vowel y";
+ begintchar(v_i_code,cb_pa_width#,x_height#,0,0,0,0);
+ vb_i_form;
+ draw vb_a_pb;
+ endtchar; etest;
+enddef;
+
+def VAO =
+ stest(vao); kanchar "vowel ao";
+ begintchar(v_ao_code,cb_ja_width#,x_height#,0,0,0,0);
+ cb_ja_form;
+ endtchar; etest;
+enddef;
+
+def VAOO =
+ stest(vaoo); kanchar "vowel aoo";
+ begintchar(v_aoo_code,cb_ja_width#,x_height#,0,0,0,0);
+ cb_ja_form;
+ vm_hook_form(2,2);
+ endtchar; etest;
+enddef;
+
+def VAU=
+ stest(vau); kanchar "vowel ow";
+ begintchar(v_au_code,5/4cb_ja_width#,asc_height#,0,0,0,0);
+ cb_ja_form;
+ z12=top z2;
+ vm_au_form(12,w);
+ h:=top y12c; w:=rt x1000b;
+ endtchar; etest;
+enddef;
+
+% Begin of Vowel Modifiers.......
+
+def VMAH =
+ stest(vmp); kanchar "vowel modifier of ah";
+ begintchar(vm_ah_code,vm_ah_width#,x_height#+vm_ah_height#,0,0,0,0);
+ lft top z77 = (0, x_height);
+ vmah_form(77);
+ pivot_message(x77);
+ endtchar; etest;
+enddef;
+
+def VMA =
+ stest(vma); kanchar "vowel modifier of a";
+ begintchar(vm_a_code,vm_a_width#,asc_height#,0,0,0,0);
+ lft top z1=(0,x_height);
+ vmfa_form(1);
+ pivot_message(x1);
+ endtchar; etest;
+enddef ;
+
+def VMAA =
+ stest(vmaa); kanchar "vowel modifier of aa";
+ % used for kha,nga,ja,nya etc.
+ begintchar(vm_aa_code,vm_aa_width#,asc_height#,0,0,0,0);
+ lft top z0 = (0, x_height);
+ vmfaa_form(0) ;
+ pivot_message(x0);
+ endtchar; etest;
+enddef ;
+
+def VME=
+ stest(vme); kanchar "vowel modifer of e ";
+ begintchar(vm_e_code,vm_e_width#,vm_e_height1#+ascunit#,0,0,0,0);
+ vm_e_form;
+ pivot_message(.5u);
+ endtchar; etest;
+enddef ;
+
+def VMEE=
+ stest(vmee); kanchar "vowel modifier of ee";
+ begintchar(vm_ee_code,vm_e_width#,asc_height#,0,0,0,0);
+ vm_ee_form;
+ %vm_hook_form(7,3);
+ pivot_message(x2);
+ endtchar; etest;
+enddef;
+
+def VMU =
+ stest(vmu); kanchar "vowel modifier of u";
+ begintchar(vm_u_code,vm_u_width#,x_height#,0,0,0,0);
+ rt z1 = (0,.6w_height);
+ vm_u_form(1);
+ w:=rt x1b;
+ pivot_message(x1d);
+ endtchar; etest;
+enddef;
+
+def VMUU =
+ stest(vmuu); kanchar "vowel modifier of uu";
+ begintchar(vm_uu_code,vm_uu_width#,x_height#,0,0,0,0);
+ rt z1 = (0,.6w_height);
+ vm_uu_form(1);
+ endtchar; etest;
+enddef;
+
+def VMRO =
+ stest(vmro); kanchar "vowel modifier of ro";
+ begintchar(vm_ro_code,vm_ro_width#-3u#,x_height#,.5des_depth#,0,ul#,0);
+ cc_clear ;
+ vm_ro_form; %cc_whd(0,1);
+ %cc_whd(0,1);
+ endtchar; etest;
+enddef;
+
+
+def VMROO =
+ stest(vmroo); kanchar "vowel modifier of roo";
+ begintchar(vm_roo_code,vm_ro_width#+vm_bar_width#-3u#,x_height#,.5des_depth#,0,ul#,0);
+ cc_clear ;
+ vm_ro_form;
+ z10 =(x1+.9vm_bar_width, y1);
+ rt z11 = (x1+vm_bar_width, y1 -2u);
+ z12 = (x1+.9vm_bar_width, y1 -u);
+ path cd, bar_p;
+ bar_p = z1---z10..z11..z12;
+ cd = bar_p scaled 1 shifted (-3u, -.5des_depth) rotated 0 ;
+ sketch cd;
+ endtchar; etest;
+enddef;
+
+def VMEA =
+ stest(vmea); kanchar "vowel modifier of ea";
+ begintchar(vm_ea_code,vm_ea_width#,x_height#+vm_ea_height#,0,0,0,0);
+ lft top z77 = (0, x_height);
+ vmfea_form(77);
+ pivot_message(x77);
+ endtchar; etest;
+enddef;
+
+def VMEAA =
+ stest(vmeaa); kanchar "vowel modifier of ea";
+ begintchar(vm_ea1_code,vm_ea1_width#,x_height#+vm_ea_height#,0,0,0,0);
+ bar_forma(vm_ea1_width) ;
+ %lft top z77 = (0, x_height);
+ vmfea_form(301);
+ pivot_message(x300);
+ endtchar; etest;
+enddef;
+
+def VMY =
+ stest(vmy); kanchar "vowel modifier of y";
+ begintchar(vm_y_code,.5vm_ro_width#,x_height#,des_depth#+1.4u#,0,ul#,0);
+ vm_y_form; %cc_whd(0,1);
+ path ct ;
+ %ct = vm_y_p scaled 1.3 shifted (-1.5u, 4.3u) rotated 0 ;
+ ct = vm_y_p scaled .85 shifted (-2.0u, -.5des_depth) rotated 0 ;
+ sketch ct;
+ %cc_clear; cc_transform(ct);
+ %cc_whd(1,0);
+ endtchar; etest;
+enddef;
+
+def VMAU=
+ stest(vmau); kanchar "vowel modifier au";
+ begintchar(vm_au_code,vm_au_width#,asc_height#,0,0,0,0);
+ lft z12 = (0, x_height);
+ vm_au_form(12,w);
+ pivot_message(x12);
+ endtchar; etest;
+enddef;
+
+% --------------------End of the Vowel and Vowel modifiers.------------
+
+%---------------------Begin of Kannada Consonant and its conjunctions.--------
+def CBKA=
+ stest(cbka); kanchar "base of consonant ka";
+ begintchar(cb_ka_code,cb_ka_width#,x_height#,0,0,0,0);
+ cb_ka_form;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCKA=
+ stest(ccka); kanchar "consonant conjunction of ka";
+ begintchar(cc_ka_code,cb_ka_width#,x_height#,0,0,0,0);
+ cb_ka_form;
+ cc_clear; cc_transform(cb_ka_pa);
+ cc_transform(cb_ka_pb); cc_transform(cb_ka_pc);
+ cc_whd(1,0);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+def CBKHA=
+ stest(cbkha); kanchar "base of consonant kha";
+ begintchar(cb_kha_code,cb_kha_width#,x_height#,wedge_depth#,0,0,0);
+ cb_kha_form;
+ sketch cb_kha_p;
+ pivot_message(x12,x400);
+ endtchar; etest;
+enddef ;
+
+def CCKHA=
+ stest(cckha); kanchar "consonant conjunction of kha";
+ begintchar(cc_kha_code,cb_kha_width#,x_height#,0#,0,0,0);
+ cb_kha_form;
+ cc_clear; cc_transform(cb_kha_p);
+ cc_whd(1,0);
+ pivot_message(.6w);
+ endtchar; etest;
+enddef ;
+
+def CBGA=
+ stest(cbga); kanchar "base of consonant ga";
+ begintchar(cb_ga_code,cb_ga_width#,x_height#,0,0,0,0);
+ cb_ga_form;
+ sketch cb_ga_p;
+ bar_forma(cb_ga_width-.5u);
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCGA=
+ stest(ccga); kanchar "consonant conjunct of ga";
+ begintchar(cc_ga_code,cb_ga_width#,x_height#,0,0,0,0);
+ cb_ga_form;
+ cc_clear; cc_transform(cb_ga_p);cc_whd(0,0);
+ %pivot_message(x3*cc_scale);
+ cc_whd(1,0);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+
+def CBGHA =
+ stest(cbgha); kanchar "base of consonant gha";
+ begintchar(cb_gha_code,cb_pa_width#+1/2vm_u_width#,x_height#,wedge_depth#,0,0,0);
+ cb_pa_form;
+ top lft z77=(1/2cb_pa_width-1/2c_height-.5u, top (x_height - c_height));
+ place_lit_circ(77, 1);
+ path new_path ;
+
+ sketch cb_pa_p ;
+ top z10=1/2[z46,z46];
+ %z50=(x48+1/4u,y48) ;
+ wedge(10);
+ vm_ghu_form(48);
+ bar_forma(.9cb_pa_width); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %bar_form(0,cb_ka_width);
+ %vm_au_form(301,w);
+ %vmah_form(301); % tale-ardha akshara
+ %vm_u_form(400);
+
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def transform_gha(text t) =
+ path ct_p ;
+ cc_transform(t) ;
+ undraw cc_transformed_path ;
+ ct_p = cc_transformed_path scaled .95 shifted (-1.5u, 2u) rotated 0 ;
+ sketch ct_p ;
+enddef ;
+
+def CCGHA=
+ stest(ccgha); kanchar "consonant conjunct of gha";
+ begintchar(cc_gha_code,cb_pa_width#+1/4vm_u_width#-2u#,x_height#,0,0,0,0);
+ cb_pa_form;
+
+ top lft z77=(1/2cb_pa_width-1/2c_height-.5u, top (x_height - c_height));
+ place_lit_circ(77, 1);
+
+ sketch cb_pa_p;
+ top z10=1/2[z46,z46];
+ z50=(x48+1/4u,y48) ;
+ wedge(10);
+ vm_ghu_form(48);
+
+ path ca, cb, cc ;
+ cc_clear; %cc_transform(pl_lit_cir_p);
+ transform_gha(cb_pa_p);
+ transform_gha(wedge_p);
+ transform_gha(vm_ghu_p);cc_whd(1,1);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+
+def CBNGA =
+ stest(cbnga); kanchar "base of consonant nga";
+ begintchar(cb_nga_code,cb_ja_width#,x_height#,0,0,0,0);
+ cb_ja_form;
+ sketch cb_ja_pc;
+ sketch cb_nga_p; % puts bowl to nga.
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(21) ;
+ %vmfea_form(21);
+ %vm_au_form(21,w);
+
+ pivot_message(x21-1.5u,x400);
+ endtchar; etest;
+enddef ;
+
+def CCNGA =
+ stest(ccnga); kanchar "base of consonant nga";
+ begintchar(cc_nga_code,cb_ja_width#,x_height#,0,0,0,0);
+ cb_ja_form;
+ cc_clear; cc_transform(cb_ja_pa);
+ cc_transform(cb_nga_p); cc_transform(cb_ja_pc);
+ cc_whd(1,0);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+
+def CBCHA =
+ stest(cbcha); kanchar "base of consonant cha";
+ begintchar(cb_cha_code,cb_ja_width#+.5u#,x_height#,0,0,0,0);
+ cb_ch_form;
+ pivot_message(x20-u,x400);
+ endtchar; etest;
+enddef ;
+
+def transform_char(text t) =
+ path ct_p ;
+ cc_transform(t) ;
+ undraw cc_transformed_path ;
+ ct_p = cc_transformed_path scaled 1 shifted (-u, 1.5u) rotated 0 ;
+ sketch ct_p ;
+enddef ;
+
+def CCCHA =
+ stest(cccha); kanchar "consonant conjunction of cha";
+ begintchar(cc_cha_code,cb_ja_width#-2.5u#,x_height#,0,0,0,0);
+ cb_ch_form;
+ cc_clear; transform_char(cb_cha_pa);
+ transform_char(cb_cha_pb);
+ transform_char(cb_cha_pc);
+ cc_whd(1,1);
+ endtchar; etest;
+enddef ;
+
+def CBCCHA=
+ stest(cbccha); kanchar "base of consonant ccha";
+ begintchar(cb_ccha_code,cb_ja_width#,x_height#,0,0,0,0);
+ cb_cch_form;
+ wedge(8);
+ pivot_message(x12-u,x400);
+ endtchar; etest;
+enddef ;
+
+def CCCCHA=
+ stest(ccccha); kanchar "consonant conjunction ccha";
+ begintchar(cc_ccha_code,cb_ja_width#-2u#,x_height#,0,0,0,0);
+ cb_cch_form;
+ wedge(8);
+ cc_clear; transform_char(cb_ccha_pa);
+ transform_char(wedge_p);
+ cc_whd(0,0);
+ endtchar; etest;
+enddef ;
+
+
+def CBJA =
+ stest(cbja); kanchar "base of consonant ja";
+ begintchar(cb_ja_code,cb_ja_width#,x_height#,0,0,0,0);
+ cb_ja_form;
+ sketch cb_ja_pb; % puts bowl to ja.
+ pivot_message(x52-u,x400);
+ %vmfa_form(52); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(52) ;
+ %vmfea_form(52);
+ %vm_au_form(52,vm_au_width);
+ %vmah_form(52); % tale-ardha akshara
+ endtchar; etest;
+enddef ;
+
+def CCJA =
+ stest(ccja); kanchar "base of consonant ja";
+ begintchar(cc_ja_code,cb_ja_width#-2u#,x_height#,0,0,0,0);
+ cb_ja_form;
+ %sketch cb_ja_pb; % puts bowl to ja.
+ cc_clear; transform_char(cb_ja_pa);
+ transform_char(cb_ja_pb);cc_whd(0,0);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+def CBJHA =
+stest(cbjha); kanchar "base of consonant jha";
+ begintchar(cb_jha_code,cb_ra_width#+2vm_u_width#,x_height#,wedge_depth#,
+ 0,0,0);
+ cb_ra_form;
+ % The next statement will identify the point on ra_form
+ % where the bowl will be attached.
+ z5 = (cb_ra_p) intersectionpoint ((x1,w_height)--(x1+w,w_height));
+ vm_u_form(5);
+ z6 = z5b;
+ wedge(6);
+ z7 = z6;
+ vm_u_form(7);
+ w:=rt x7b;
+ z8a=(x7d-.5u,y7d);
+
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(8a) ;
+ %vmfea_form(301);
+ %bar_form(0,cb_ka_width);
+ %vm_au_form(8a,w);
+
+ % to compute the joining point of "kombu for jha".
+ path inter;
+ inter = (.9w, .3x_height)--(1.1w, .3x_height);
+ z401 = vm_u_p intersectionpoint inter;
+ %vm_u_form(401);
+
+ pivot_message(x301,x401,x8a);
+
+ endtchar; etest;
+enddef;
+
+def CCJHA =
+ stest(ccjha); kanchar "consonant conjunct of jha";
+ begintchar(cc_jha_code,cb_ra_width#+2vm_u_width#-2.5u#,x_height#,0,0,0,0);
+ cb_ra_form;
+ % The next statement will identify the point on ra_form
+ % where the bowl will be attached.
+ z5=z4;
+ vm_u_form(5);
+ path p; p:=vm_u_p;
+ z6 = z5b;
+ wedge(6);
+ z7 = z6;
+ vm_u_form(7);
+ w:=rt x7b;
+ cc_clear; transform_char(cb_ra_p);
+ transform_char(p); transform_char(vm_u_p);
+ transform_char(wedge_p);cc_whd(1,0);
+ penlabels(5,6);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+def CBNYA=
+ stest(cbnya); kanchar "base mf consonant nya";
+ begintchar(cb_nya_code,v_e_width#+half_plus_width#,x_height#,0,0,0,0);
+ cb_nya_form;
+ pivot_message(x17-u,x400);
+ endtchar; etest;
+enddef ;
+
+def CCNYA=
+ stest(ccnya); kanchar "consonant conjunction of nya";
+ begintchar(cc_nya_code,v_e_width#+half_plus_width#,x_height#,0,0,0,0);
+ cb_nya_form;
+ cc_clear; cc_transform(v_e_p);
+ cc_transform(cb_ny_pb); cc_whd(0,1);
+ pivot_message(0) ;
+ endtchar; etest;
+enddef;
+
+def CBTTA=
+ stest(cbtta); kanchar "base of consonant tta";
+ begintchar(cb_tta_code,cb_tta_width#,x_height#,0,0,0,0);
+ cb_tta_form;
+ pivot_message(x13-u,x400);
+ endtchar; etest;
+enddef ;
+
+def CCTTA=
+ stest(cctta); kanchar "base of consonant tta";
+ begintchar(cc_tta_code,cb_tta_width#-1.75u#,x_height#,0,0,0,0);
+ cb_tta_form;
+ cc_clear; transform_char(cb_tta_p);; cc_whd(1,0);
+ pivot_message(w);
+ endtchar; etest;
+enddef ;
+
+def CBTTHA=
+ stest(cbttha); kanchar "base of consonant ttha";
+ begintchar(cb_ttha_code,cb_ra_width#,x_height#,0,0,0,0);
+ cb_ra_form;
+ z10 = (x1,1/2x_height);
+ fill_dot(10);
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCTTHA=
+ stest(ccttha); kanchar "consonant conjunct of ttha";
+ begintchar(cc_ttha_code,cb_ra_width#,x_height#,0,0,0,0);
+ cb_ra_form;
+ z10 = (x1,1/2x_height);
+ fill_dot(10);
+ cc_clear; cc_transform(cb_ra_p);
+ cc_f_transform(fill_dot_p);cc_whd(0,0);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+
+def CBDDA=
+ stest(cbdda); kanchar "base of consonant dda";
+ begintchar(cb_dda_code,.9cb_da_width#,x_height#,0,0,0,0);
+ cb_dda_form;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCDDA=
+ stest(ccdda); kanchar "consonant conjunction of dda";
+ begintchar(cc_dda_code,.9cb_da_width#-2u#,x_height#,0,0,0,0);
+ cb_dda_form;
+ cc_clear; cc_transform(cb_dda_p);cc_whd(0,0);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+def CBDDHA=
+ stest(cbddha); kanchar "base of consonant ddha";
+ begintchar(cb_ddha_code,.9cb_da_width#,x_height#,0,0,0,0);
+ cb_dda_form;
+ wedge(3);
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCDDHA=
+ stest(ccddha); kanchar "consonant conjunction of ddha";
+ begintchar(cc_ddha_code,.9cb_da_width#-2u#,x_height#,0,0,0,0);
+ cb_dda_form;
+ wedge(3);
+ cc_clear; cc_transform(cb_dda_p);
+ cc_transform(wedge_p);cc_whd(1,1);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+def CBNNA=
+ stest(cbnna); kanchar "base of consonant nna";
+ begintchar(cb_nna_code,cb_nna_width#,x_height#,0,0,0,0);
+ cb_nna_form;
+ pivot_message(x400-.5u);
+ endtchar; etest;
+enddef ;
+
+def CCNNA=
+ stest(ccnna); kanchar "consonant conjunct of nna";
+ begintchar(cc_nna_code,cb_nna_width#-u#,x_height#,0,0,0,0);
+ cb_nna_form;
+ cc_clear; cc_transform(cb_nna_p);cc_whd(0,0);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+def CBTA=
+ stest(cbta); kanchar "base of consonant ta";
+ begintchar(cb_ta_code,cb_ta_width#,x_height#,0,0,0,0);
+ cb_ta_form;
+ sketch cb_ta_p;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCTA=
+ stest(ccta); kanchar "consonant conjunct of ta";
+ begintchar(cc_ta_code,vmwidth#,0,0,0,0,0);
+ % d is set later
+ top z1=(0,0); barandhook_formk(1,w,5); erase sketch barandhook_p;
+ sketch barandhook_p reflectedabout ( top z1, top z1+(w,0))
+ shifted (0, (-bot_accent+ (bot y1c)));
+ d:=bot_accent- (bot y1c);
+ pivot_message(w);
+ endtchar; etest;
+enddef ;
+
+def CBTHA=
+ stest(cbtha); kanchar "base of consonant tha";
+ begintchar(cb_tha_code,cb_da_width#,x_height#,wedge_depth#,0,0,0);
+ cb_da_form;
+ wedge(4);
+ z10 = (x1,2/3x_height-uh);
+ fill_dot(10);
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCTHA=
+ stest(cctha); kanchar "consonant conjunct of tha";
+ begintchar(cc_tha_code,cb_da_width#-2u#,x_height#,0,0,0,0);
+ cb_da_form;
+ wedge(4);
+ z10 = (x1,2/3x_height-uh);
+ fill_dot(10);
+ cc_clear; cc_transform(cb_da_p);
+ cc_transform(wedge_p); cc_f_transform(fill_dot_p);
+ cc_whd(0,1);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+def CBDA=
+ stest(cbda); kanchar "base of consonant da";
+ begintchar(cb_da_code,cb_da_width#,x_height#,0,0,0,0);
+ cb_da_form;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCDA=
+ stest(ccda); kanchar "consonant conjunct of da";
+ begintchar(cc_da_code,cb_da_width#-2u#,x_height#,0,0,0,0);
+ cb_da_form;
+ cc_clear; cc_transform(cb_da_p);
+ cc_whd(0,0);
+ %pivot_message(x4*cc_scale);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+
+def CBDHA=
+ stest(cbdha); kanchar "base of consonant dha";
+ begintchar(cb_dha_code,cb_da_width#,x_height#,0,0,0,0);
+ cb_da_form;
+ wedge(4);
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCDHA=
+ stest(ccdha); kanchar "consonant conjunct of da";
+ begintchar(cc_dha_code,cb_da_width#-2u#,x_height#,0,0,0,0);
+ cb_da_form;
+ wedge(4);
+ cc_clear; cc_transform(cb_da_p);
+ cc_transform(wedge_p);
+ cc_whd(1,1);
+ pivot_message(w/2);
+ %pivot_message(x4*cc_scale);
+ endtchar; etest;
+enddef ;
+
+
+def CBNA=
+ stest(cbna);kanchar "base of consonant na";
+ begintchar(cb_na_code,cb_na_width#,x_height#,wedge_depth#,0,0,0);
+ cb_na_form;
+ sketch cb_na_p;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CBNAA=
+ stest(cbnaa); kanchar "consonant of nX (alternative)";
+ begintchar(cb_naa_code,cb_na_width#,x_height#,0,0,0,0);
+ naa_form ;
+ pivot_message(0);
+ endtchar; etest;
+enddef ;
+
+def CCNA=
+ stest(ccna); kanchar "consonant conjunct of na";
+ begintchar(cc_na_code,2.5u#,x_height#-3u#,des_depth#,0,ul#,0);
+ numeric wid;
+ wid = 7u ;
+ top lft z1 = (.4wid,.5x_height);
+ z2 = (.55wid,(x_height-d)/2);
+ bot z3 = (1/4wid,-d);
+ lft z4 = (0,-d+1/2sc_height);
+ z5 = (x3,y3+sc_height);
+ bot z6 = (3/4wid,-d);
+ rt z7 = (wid,y4);
+ path cc_na_p, ct;
+ cc_na_p = z1..z2..z3..z4..z5..z6..z7;
+ ct = cc_na_p scaled 1 shifted (-3u, 6u) rotated -10 ;
+ cc_clear; transform_char(ct);
+ cc_whd(1,0);
+ pivot_message(w/2);
+ endtchar; etest;
+enddef ;
+
+def CBPA=
+ stest(cbpa); kanchar "base of consonant pa";
+ begintchar(cb_pa_code,cb_pa_width#,x_height#,0,0,0,0);
+ cb_pa_form;
+ top lft z77=(1/2cb_pa_width-1/2c_height-.5u, top (x_height - c_height));
+ place_lit_circ(77, 1);
+ sketch cb_pa_p;
+
+ bar_forma(cb_pa_width-.5u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def transform_charb(text t) =
+ path ct_p ;
+ cc_transform(t) ;
+ undraw cc_transformed_path ;
+ ct_p = cc_transformed_path scaled 1 shifted (-2u, 2.5u) rotated 0 ;
+ sketch ct_p ;
+enddef ;
+
+def CCPA=
+ stest(ccpa); kanchar "consonant conpunction of pa";
+ begintchar(cc_pa_code,cb_pa_width#-2u#,x_height#,0,0,0,0);
+ cb_pa_form;
+ pivot_message(3/4w);
+ cc_clear; transform_charb(cb_pa_p);
+ cc_whd(1,0);
+ endtchar; etest;
+enddef ;
+
+
+def CBPHA=
+ stest(cbpha); kanchar "base of consonant pha";
+ begintchar(cb_pha_code,cb_pa_width#,x_height#,0,0,0,0);
+ cb_pa_form;
+ %pivot_message(x1,x1);
+ top lft z77=(1/2cb_pa_width-1/2c_height-.5u, top (x_height - c_height));
+ place_lit_circ(77, 1);
+ top z10=1/2[z46,z46];
+ wedge(10);
+ sketch cb_pa_p;
+ sketch wedge_p;
+ bar_forma(cb_pa_width-.5u); % z301 is comming from bar_forma...
+ %vmfa_form(301); % Following are test to see How vowel modifer looks.
+ %vmfaa_form(301) ;
+ %vmfea_form(301);
+ %vm_au_form(301,vm_au_width);
+
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCPHA=
+ stest(ccpha); kanchar "consonant conpunction of pha";
+ begintchar(cc_pha_code,cb_pa_width#-2u#,x_height#,0,0,0,0);
+ cb_pa_form;
+
+ sketch cb_pa_p;
+ top z10=1/2[z46,z46];
+ wedge(10);
+
+ cc_clear; transform_charb(cb_pa_p);
+ transform_charb(wedge_p);
+ cc_whd(1,1);
+ endtchar; etest;
+
+enddef ;
+
+def CBBA=
+ stest(cbba); kanchar "base of consonant ba";
+ begintchar(cb_ba_code,cb_ba_width#,x_height#,0,0,0,0);
+ cb_ba_form;
+ pivot_message(x9-u,x400);
+ endtchar; etest;
+enddef ;
+
+def CCBA=
+ stest(ccba); kanchar "consonant conjunct of ba";
+ begintchar(cc_ba_code,cb_ba_width#-3.5u#,top_height#,0,0,ul#,0);
+ cb_ba_form;
+ cc_clear; transform_charb(((subpath(0,7) of cb_ba_p)..(x9,1.3y9)));
+ cc_whd(1,0);
+ endtchar; etest;
+enddef;
+
+def CBBHA=
+ stest(cbbha); kanchar "base of consonant bha";
+ begintchar(cb_bha_code,cb_ba_width#,x_height#,0,0,0,0);
+ cb_ba_form;
+ wedge(6);
+ %vmah_form(9); % tale-ardha akshara
+ pivot_message(x9-u,x400);
+ endtchar; etest;
+enddef ;
+
+def CCBHA=
+ stest(ccbha); kanchar "consonant conjunct of bha";
+ begintchar(cc_bha_code,cb_ba_width#-3.5u#,top_height#,0,0,ul#,0);
+ cb_ba_form;
+ wedge(6);
+ cc_clear; transform_charb(((subpath(0,7) of cb_ba_p)..(x9,1.3y9)));
+ transform_charb(wedge_p);
+ cc_whd(1,1);
+ pivot_message(x12,x400);
+ endtchar; etest;
+enddef;
+
+
+def CBMA=
+ stest(cbma); kanchar "base of consonant ma";
+ begintchar(cb_ma_code,cb_pa_width#+vm_u_width#,x_height#,0,0,0,0);
+ cb_va_form;
+ sketch cb_va_p;
+ z65 = (cb_va_p) intersectionpoint ((x46,.8w_height)--(x46+cb_pa_width,.8w_height));
+ vm_u_form(65);
+
+ % to compute the joining point of "kombu for nya".
+ z500=z65b;
+ %vm_u_form(500);
+ z67=(x65d-.5u, y65d);
+ %vm_au_form(67,vm_au_width);
+ %vmfaa_form(67) ;
+ %vmah_form(301); % tale-ardha akshara
+
+ pivot_message(x301,x500, x67);
+
+ endtchar; etest;
+enddef ;
+
+def CCMA=
+ stest(ccma); kanchar "consonant conjunct of ma";
+ begintchar(cc_ma_code,4u#,x_height#,des_depth#,0,ul#,0);
+ path cc_ma_p;
+ numeric wid;
+ wid = 6u;
+ rt z1=(wid,-.8d+uh);bot z2=(wid/2,-d);
+ lft z3=(0,-.1d); z4=(.3wid,.15x_height); %z4=(2/3wid,x_height/5);
+ rt z5=(.6wid,0); z6=(.3wid,-.075d);
+ z7=(.15wid,.1x_height); z8=(.075wid,.25x_height);
+ z9=(.14wid,.55x_height);
+ cc_ma_p = z1..z2..z3..z4..z5..z6..z7..tension1.2..z8..tension 1.2..z9;
+ sketch cc_ma_p;
+ path ct;
+ ct = cc_ma_p scaled 1 shifted (0, 3.5u) ;
+ %cc_clear; cc_transform(cc_ma_p); cc_whd(0,0);
+ cc_clear; transform_charb(ct); cc_whd(0,0);
+ endtchar; etest;
+enddef ;
+
+
+def CBYA=
+ stest(cbya); kanchar "base of consonant ya";
+ begintchar(cb_ya_code,cb_ya_width#+vm_u_width#,x_height#,0,0,0,0);
+ cb_ya_form;
+ pivot_message(x7,x400, x10);
+ endtchar; etest;
+enddef;
+
+def CCYA=
+ stest(ccya); kanchar "consonant conjunct of ya";
+ %begintchar(cc_ya_code,6u#,x_height#,des_depth#,0,ul#,0);
+ begintchar(cc_ya_code,4.5u#,x_height#,des_depth#+2.5u#,0,0,0);
+ numeric y_width ;
+ y_width = 6u ;
+ lft z1 = (0,-1/3des_depth); z2 = (y_width/4,0); z3 = (1/4y_width,-1/2des_depth);
+ bot z4 = (1/3y_width,-des_depth); z5 = (2/3y_width,0); z6 = (.45y_width,.45j_height);
+ z7 = (.6y_width,.7j_height); z8=(.65y_width,.4j_height);
+
+ path cc_ya_p, ct ;
+ cc_ya_p = z1..z2..z3..z4..z5..{up}z6..z7..z8;
+ %ct = cc_ya_p scaled 1.3 shifted (0, -3.5u) ;
+ ct = cc_ya_p scaled 1.0 shifted (0, -2u) ;
+ sketch ct;
+ %cc_clear; cc_transform(ct); cc_whd(1,0);
+ pivot_message(0);
+ endtchar; etest
+enddef;
+
+def CBRA =
+ stest(cbra); kanchar "base of consonant ra";
+ begintchar(cb_ra_code,cb_ra_width#,x_height#,0,0,0,0);
+ cb_ra_form;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CBRRA =
+ stest(cbrra); kanchar "base of consonant rra";
+ begintchar(cb_rra_code,cb_rra_width#,x_height#,0,0,0,0);
+ cb_rra_form;
+ pivot_message(x7,x400);
+ endtchar; etest;
+enddef ;
+
+% For arkavattu;
+def CCRRA =
+ stest(ccara); kanchar "base of consonant ra(as arkavattu)";
+ begintchar(cc_ara_code,cb_ra_width#,x_height#,0,0,0,0);
+ arkavattu ;
+ sketch arka_pa reflectedabout((0,0),(w,0)) shifted (0,h);
+ sketch arka_pb reflectedabout((0,0),(w,0)) shifted (0,h);
+ endtchar; etest;
+enddef ;
+
+
+def CCRA =
+ stest(ccra); kanchar "consonant conjunct of ra";
+ begintchar(cc_ra_code,7u#,0,3.5uh#,0,0,0);
+ top lft z1=(0,-bot_accent); bot z2=(w/2,-d); top rt z3=(w,-bot_accent);
+ sketch z1..z2..z3;
+ pivot_message(w);
+ endtchar; etest;
+enddef ;
+
+
+def CBLA =
+ stest(cbla); kanchar "base of consonant la";
+ begintchar(cb_la_code,cb_la_width#,x_height#,0,0,0,0);
+ cb_la_form;
+ sketch cb_la_p;
+ pivot_message(x55-u,x400);
+ endtchar; etest;
+enddef ;
+
+def CCLA =
+ stest(ccla); kanchar "consonant conjunct of la";
+ begintchar(cc_la_code,7u#,0,4.5uh#,0,0,0);
+ path s,t;
+ bot z1=(w/4,-d); lft z2 =(0,-1/2d); top z3=(x1,-bot_accent);
+ top z4=(w/2,y2);
+ s= z1..z2..z3..z4;
+ t=s reflectedabout ((w/2,h),(w/2,-d));
+ sketch s;sketch t;
+ pivot_message(.8w);
+ endtchar; etest;
+enddef ;
+
+def CBVA=
+ stest(cbva); kanchar "base of consonant va";
+ begintchar(cb_va_code,cb_pa_width#,x_height#,0,0,0,0);
+ cb_va_form;
+ sketch cb_va_p ;
+ %pivot_message(x46,x400);
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCVA=
+ stest(ccva); kanchar "consonant conjunction of va";
+ begintchar(cc_va_code,cb_pa_width#,x_height#,0,0,0,0);
+ cb_va_form;
+ vmfa_form(301); % Following are test to see How vowel modifer looks.
+ cc_clear; cc_transform(cb_va_p);
+ cc_transform(bar_pa) ; cc_transform(bar_p) ;
+ cc_whd(1, 0);
+ endtchar; etest;
+enddef ;
+
+def CBCA=
+ stest(cbca); kanchar "base of consonant ca";
+ begintchar(cb_ca_code,cb_ca_width#,x_height#,0,0,0,0);
+ cb_ca_form;
+ draw cb_ca_p;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCCA=
+ stest(ccca); kanchar "consonant conjunct of ca";
+ begintchar(cc_ca_code,cb_ca_width#-2.5u#,asc_height#,0,0,ul#,0);
+ cb_ca_form;
+ cc_clear; transform_charb(((x5, .8asc_height)..cb_ca_p)); cc_whd(1,0);
+ endtchar; etest;
+enddef ;
+
+def CBSA =
+ stest(cbsa); kanchar "base of consonant sa";
+ begintchar(cb_sa_code,cb_na_width#,x_height#,0,0,0,0);
+ cb_sa_form;
+ sketch cb_sa_p;
+ pivot_message(x301+.2u,x400);
+ endtchar; etest;
+enddef ;
+
+def CCSA =
+ stest(ccsa); kanchar "consonant conjunct of sa";
+ begintchar(cc_sa_code,cb_na_width#-2.5u#,x_height#,0,0,ul#,0);
+ cb_sa_form;
+ %sketch cb_na_p;
+ cc_clear; transform_charb(cb_sa_p); cc_whd(1,0);
+ endtchar; etest;
+enddef ;
+
+def CBHA =
+ stest(cbha); kanchar "base of consonant ha";
+ begintchar(cb_ha_code,cb_ha_width#,x_height#,0,0,0,0);
+ cb_ha_form;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCHA =
+ stest(ccha); kanchar "consonant conjunct of ha";
+ begintchar(cc_ha_code,cb_ha_width#,x_height#,0,0,0,0);
+ cb_ha_form;
+ cc_clear; cc_transform(cb_ha_p);
+ cc_whd(0,0);
+ pivot_message(0) ;
+ endtchar; etest;
+enddef ;
+
+def CBLLA =
+ stest(cblla); kanchar "base of consonant lla";
+ begintchar(cb_lla_code,cb_lla_width#,x_height#,0,0,0,0);
+ cb_lla_form;
+ sketch cb_lla_p;
+ pivot_message(x12-u,x400);
+ endtchar; etest;
+enddef ;
+
+def CBLLAA =
+ stest(cbllaa); kanchar "base of consonant lla";
+ begintchar(cb_llaa_code,cb_rra_width#,x_height#,0,0,0,0);
+ cb_rra_form;
+ undraw cb_rra_pd ;
+ pivot_message(x7,x400);
+ endtchar; etest;
+enddef ;
+
+def CCLLA =
+ stest(cclla); kanchar "consonant conjunct of lla";
+ begintchar(cc_lla_code,cb_lla_width#,asc_height#,0,0,ul#,0);
+ cb_lla_form;
+ cc_clear; cc_transform(cb_lla_p);
+ cc_whd(1,0);
+ endtchar; etest;
+enddef ;
+
+def CBSHA=
+ stest(cbsha); kanchar "base of consonant sha";
+ begintchar(cb_sha_code,cb_pa_width#,x_height#,0,0,0,0);
+ cb_sha_form;
+ sketch cb_pa_p;
+ sketch cb_sha_pb;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CCSHA=
+ stest(ccsha); kanchar "consonant conjunct of sha";
+ begintchar(cc_sha_code,cb_pa_width#-2u#,x_height#,0,0,0,0);
+ cb_sha_form;
+ cc_clear; transform_charb(cb_pa_p);
+ transform_charb(cb_sha_pb); cc_whd(0,0);
+ endtchar; etest;
+enddef ;
+
+def CBKSHA =
+ stest(cbksha); kanchar "base of consonant ksha";
+ begintchar(cb_ksha_code,cb_ka_width#,x_height#,cb_ksha_depth#,0,0,0);
+ cb_ksha_form;
+ sketch cb_ka_pa;
+ sketch cb_ka_pb;
+ sketch cb_ka_pc;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+% ----------------End of Kannada Consonant and its conjunctions.----------
+
+% ----------------Begin of Kannada Vowel modifed Consonants(special)----------
+
+def CVKE =
+ stest(cvke); kanchar "consonant+vowel ka+e";
+ begintchar(cv_ke_code,cb_ka_width#,x_height#+vm_e_heightj#,0,0,0,0);
+ cb_ka_form;
+ undraw bar_pa; %cb_ka_pc;
+ vm_e_form_a(8,.1u, .3u); %sketch vm_e_p;
+ path vm_e_pa,vm_e_pb,vm_e_pc ;
+ vm_e_pa = cb_ka_pc softjoin vm_e_p;
+ sketch vm_e_pa;
+ endtchar; etest;
+enddef;
+
+def CVKHE =
+ stest(cvkhe); kanchar "consonant+vowel kha+e";
+ begintchar(cv_khe_code,cb_kha_width#,x_height#+vm_e_heightj#,0,0,0,0);
+ cb_kha_form;
+ sketch cb_kha_p;
+ vm_e_form_a(11,.6u, 1.u);
+ path vm_e_pa,vm_e_pb,vm_e_pc ;
+ vm_e_pa = vm_e_p reflectedabout(z11, z11+(.1u, .8u));
+ vm_e_pb = vm_e_pa reflectedabout(z11, z11+(-.45u, .8u));
+ %sketch cb_kha_p softjoin vm_e_pb ;
+ sketch vm_e_pb ;
+ pivot_message(1.99u);
+ endtchar; etest;
+enddef;
+
+def CVGE=
+ stest(cvge); kanchar "consonant+vowel e ga+e";
+ begintchar(cv_ge_code,cb_ga_width#,x_height#+2ascunit#,0,0,0,0);
+ cb_ga_form;
+ sketch cv_ge_p;
+ sketch cb_ga_p;
+ %vm_e_form;
+ endtchar; etest;
+enddef ;
+
+def CVGHE =
+ stest(cvghe); kanchar "base of consonant gha+ Vowel modifer e";
+ begintchar(cv_ghe_code,cb_pa_width#+1/2vm_u_width#,x_height#+.8u#,wedge_depth#,0,0,0);
+ cb_pa_form;
+ top lft z77=(1/2cb_pa_width-1/2c_height, top (x_height - c_height));
+ %place_lit_circ(77, 1);
+ path new_path ;
+
+ sketch cb_pa_p ;
+ top z10=1/2[z46,z46];
+ wedge(10);
+ vm_ghu_form(48);
+ vm_e_form;
+ undraw vm_e_p;
+ path ct;
+ ct = vm_e_p scaled .75 shifted (2u, -u) rotated 0 ;
+ sketch ct;
+
+ %pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CVCHE =
+ stest(cvche); kanchar "consonant+vowel e cha+e";
+ begintchar(cv_che_code,cb_ja_width#,x_height#,0,0,0,0);
+ cb_ch_form;
+ vm_e_form_a(9,.6u, 1.u);
+ undraw cb_cha_pc ;
+ path vm_e_pa,vm_e_pb,vm_e_pc ;
+ vm_e_pa = vm_e_p reflectedabout(z9, z9+(.1u, .8u));
+ vm_e_pb = vm_e_pa reflectedabout(z9, z9+(-.1u, .8u));
+ sketch vm_e_pb ;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVCCHE=
+ stest(cvcche); kanchar "consonant+vowel e ccha+e";
+ begintchar(cv_cche_code,cb_ja_width#,x_height#+2.6u#,0,0,0,0);
+ cb_cch_form;
+ wedge(8);
+ vm_e_form_a(11,.6u, 1.u);
+ path vm_e_pa,vm_e_pb,vm_e_pc ;
+ vm_e_pa = vm_e_p reflectedabout(z11, z11+(.1u, .8u));
+ vm_e_pb = vm_e_pa reflectedabout(z11, z11+(-.28u, .8u));
+ sketch vm_e_pb ;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVJE =
+ stest(cvje); kanchar "consonant+vowel e cbja+e";
+ begintchar(cv_je_code,cb_ja_width#,x_height#+1.5u#,0,0,0,0);
+ cb_ja_form;
+ sketch cb_ja_pe; % puts bowl to ja.
+ %pivot_message(x3c,x7);
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVJHE =
+ stest(cvjhe); kanchar "consonant+vowel e cbjha+e";
+ begintchar(cv_jhe_code,cb_ra_width#+2vm_u_width#,.9vm_e_heightx#,
+ wedge_depth#,0,0,0);
+ cb_ra_form;
+ % The next statement will identify the point on ra_form
+ % where the bowl will be attached.
+ z5 = (cb_ra_p) intersectionpoint ((x1,w_height)--(x1+w,w_height));
+ vm_u_form(5);
+ z6 = z5b;
+ wedge(6);
+ z7 = z6;
+ vm_u_form(7);
+ w:=rt x7b;
+ sketch cv_re_p;
+ undraw bar_pa;
+ endtchar; etest;
+enddef;
+
+def CVTTE=
+ stest(cvtte); kanchar "consonant+vowel e cbtta+e";
+ begintchar(cv_tte_code,cb_tta_width#,x_height#,0,0,0,0);
+ cb_tta_form;
+ undraw cb_tta_p ;
+ sketch cb_tta_pe ;
+ endtchar; etest;
+enddef ;
+
+def CVTTHE =
+ stest(cvtthe); kanchar "consonant+vowel e cbttha+e";
+ begintchar(cv_tthe_code,cb_ra_width#,.9vm_e_heightx#,0,0,0,0);
+ cb_ra_form;
+ undraw bar_pa;
+ z10 = (x1,1/2x_height);
+ fill_dot(10);
+ sketch cv_re_p;
+ %pivot_message(x1,x1);
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVDDE=
+ stest(cvdde); kanchar "consonant+vowel e cbdda+e";
+ begintchar(cv_dde_code,cb_da_width#,x_height#+1.7u#,0,0,0,0);
+ cb_dda_form;
+ undraw bar_pa ;
+ sketch cv_dde_p ;
+ %pivot_message(x1,x4);
+ endtchar; etest;
+enddef ;
+
+def CVDDHE=
+ stest(cvddhe); kanchar "consonant+vowel e cbddha+e";
+ begintchar(cv_ddhe_code,cb_da_width#,x_height#+1.7u#,0,0,0,0);
+ cb_dda_form;
+ sketch cv_dde_p ;
+ undraw bar_pa ;
+ wedge(3);
+ %pivot_message(x1,x4);
+ endtchar; etest;
+enddef ;
+
+def CVTE=
+ stest(cvte); kanchar "consonant+vowel e cbta+e";
+ begintchar(cv_te_code,cb_ta_width#,x_height#,0,0,0,0);
+ cb_ta_form;
+ sketch cb_te_p;
+ undraw bar_pa ;
+ %pivot_message(x10,x5);
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVTHE=
+ stest(cvthe); kanchar "consonant+vowel e cbtha+e";
+ begintchar(cv_the_code,cb_da_width#,x_height#+1.9u#,wedge_depth#,0,0,0);
+ cb_da_form;
+ undraw bar_pa ;
+ wedge(4);
+ z10 = (x1,2/3x_height-uh);
+ fill_dot(10);
+ %pivot_message(x1,x4);
+ pivot_message(.199u);
+ sketch cv_de_p;
+ endtchar; etest;
+enddef ;
+
+def CVDE=
+ stest(cvde); kanchar "consonant+vowel e cbda+e";
+ begintchar(cv_de_code,cb_da_width#,x_height#+1.9u#,0,0,0,0);
+ cb_da_form;
+ undraw bar_pa ;
+ sketch cv_de_p;
+ %pivot_message(x1,x4);
+ endtchar; etest;
+enddef ;
+
+def CVDHE=
+ stest(cvdhe); kanchar "consonant+vowel e cbda+e";
+ begintchar(cv_dhe_code,cb_da_width#,x_height#+1.9u#,0,0,0,0);
+ cb_da_form;
+ undraw bar_pa ;
+ sketch cv_de_p;
+ wedge(4);
+ %pivot_message(x1,x4);
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVNE=
+ stest(cvne);kanchar "consonant+vowel e cbna+e";
+ begintchar(cv_ne_code,cb_na_width#,x_height#,wedge_depth#,0,0,0);
+ cb_na_form;
+ sketch cb_ne_p;
+ undraw bar_pa ;
+ %pivot_message(x6,x6);
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVPE=
+ stest(cvpe); kanchar "consonant pa+ e";
+ begintchar(cv_pe_code,cb_pa_width#,x_height#+.8u#,0,0,0,0);
+ cb_pa_form;
+ top lft z77=(1/2cb_pa_width-1/2c_height, top (x_height - c_height));
+ sketch cb_pa_p;
+ vm_e_form;
+ undraw vm_e_p;
+ path ct;
+ ct = vm_e_p scaled .75 shifted (2u, -.5u) rotated 0 ;
+ sketch ct;
+ %pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CVPHE=
+ stest(cvphe); kanchar "consonant pha+ e";
+ begintchar(cv_phe_code,cb_pa_width#,x_height#+.8u#,0,0,0,0);
+ cb_pa_form;
+ top lft z77=(1/2cb_pa_width-1/2c_height, top (x_height - c_height));
+ sketch cb_pa_p;
+ top z10=1/2[z46,z46];
+ wedge(10);
+ vm_e_form;
+ undraw vm_e_p;
+ path ct;
+ ct = vm_e_p scaled .75 shifted (2u, -.5u) rotated 0 ;
+ sketch ct;
+ %pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CVBE=
+ stest(cvbe); kanchar "consonant+vowel e cbba+e";
+ begintchar(cv_be_code,cb_ba_width#,x_height#+1u#,0,0,0,0);
+ cb_ba_form;
+ undraw cb_ba_p;
+ sketch cb_be_p;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVBHE=
+ stest(cvbhe); kanchar "consonant+vowel e cbbha+e";
+ begintchar(cv_bhe_code,cb_ba_width#,x_height#+1u#,0,0,0,0);
+ cb_ba_form;
+ undraw cb_ba_p;
+ sketch cb_be_p;
+ wedge(6);
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVME=
+ stest(cvme); kanchar "consonant+vowel e cbma+e";
+ begintchar(cv_me_code,cb_pa_width#+vm_u_width#,x_height#,0,0,0,0);
+ cb_va_form;
+ sketch cb_ve_p;
+ z65 = (cb_va_p) intersectionpoint ((x46,.8w_height)--(x46+cb_pa_width,.8w_height));
+ vm_u_form(65);
+ undraw bar_pa ;
+ %w:=rt x3b;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVYE=
+ stest(cvye); kanchar "consonant+vowel e cbya+e";
+ begintchar(cv_ye_code,cb_ya_width#+vm_u_width#,x_height#+1.5u#,0,0,0,0);
+ cb_ya_form;
+ undraw cb_ya_pb ;
+ undraw bar_p ;
+ draw cb_ye_p ;
+ endtchar; etest;
+enddef;
+
+def CVRE =
+ stest(cvre); kanchar "consonant+vowel e cbra+e";
+ begintchar(cv_re_code,cb_ra_width#,x_height#,0,0,0,0);
+ cb_ra_form;
+ sketch cv_re_p;
+ undraw bar_pa ;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVLE =
+ stest(cvle); kanchar "consonant+vowel e cbla+e";
+ begintchar(cv_le_code,cb_la_width#,x_height#+1u#,0,0,0,0);
+ cb_la_form;
+ sketch cb_le_p;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVCE=
+ stest(cvce); kanchar "consonant+vowel e cbca+e";
+ begintchar(cv_ce_code,cb_ca_width#,x_height#,0,0,0,0);
+ cb_ca_form;
+ draw cb_ce_p;
+ undraw bar_pa ;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVLLE =
+ stest(cvlle); kanchar "consonant+vowel e cblla+e";
+ begintchar(cv_lle_code,cb_lla_width#,x_height#,0,0,0,0);
+ cb_lla_form;
+ sketch cb_lle_p;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVVE=
+ stest(cvve); kanchar "consonant+vowel e cbma+e";
+ begintchar(cv_ve_code,cb_pa_width#,x_height#,0,0,0,0);
+ cb_va_form;
+ sketch cb_ve_p;
+ z65 = (cb_va_p) intersectionpoint ((x46,.8w_height)--(x46+cb_pa_width,.8w_height));
+ undraw bar_pa ;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVVU=
+ stest(cvvu); kanchar "consonant va+u";
+ begintchar(cv_vu_code,cb_pa_width#+.6vm_u_width#,x_height#,.5des_depth#,0,0,0);
+ cb_va_form;
+ sketch cb_va_p ;
+ %pivot_message(x46,x400);
+ cv_vu_form(46);
+ pivot_message(x301);
+ endtchar; etest;
+enddef ;
+
+def CVVUU=
+ stest(cvvuu); kanchar "consonant va+uu";
+ begintchar(cv_vuu_code,cb_pa_width#+.8vm_uu_width#,x_height#,.5des_depth#,0,0,0);
+ cb_va_form;
+ sketch cb_va_p ;
+cv_vuu_form(46);
+ pivot_message(x301);
+ endtchar; etest;
+enddef ;
+
+def CVSHE=
+ stest(cvshe); kanchar "consonant sha+e";
+ begintchar(cv_she_code,cb_pa_width#,x_height#+.8u#,0,0,0,0);
+ cb_sha_form;
+ sketch cb_pa_p;
+ sketch cb_sha_pb;
+ undraw pl_lit_cir_p ;
+ undraw bar_pa; %cb_ka_pc;
+ vm_e_form;
+ undraw vm_e_p;
+ path ct;
+ ct = vm_e_p scaled .75 shifted (2u, -.5u) rotated 0 ;
+ sketch ct;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CVSE =
+ stest(cvse); kanchar "consonant sa+e";
+ begintchar(cv_se_code,cb_na_width#,x_height#+.8u#,0,0,0,0);
+ cb_sa_form;
+ sketch cb_sa_p;
+ undraw pl_lit_cir_p ;
+ undraw bar_pa; %cb_ka_pc;
+ vm_e_form;
+ undraw vm_e_p;
+ path ct;
+ ct = vm_e_p scaled .75 shifted (1.8u, -.5u) rotated 0 ;
+ sketch ct;
+ pivot_message(.199u);
+ endtchar; etest;
+enddef ;
+
+def CVHE =
+ stest(cvhe); kanchar "consonant ha+e";
+ begintchar(cv_he_code,cb_ha_width#,x_height#+1.8u#,0,0,0,0);
+ cb_ha_form;
+ vm_e_form;
+ undraw bar_pa; %cb_ka_pc;
+ undraw cb_ha_pa ;
+ undraw vm_e_p;
+ path ct;
+ ct = vm_e_p scaled .75 shifted (.26u, +.5u) rotated 0 ;
+ sketch ct;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+def CVKSHE =
+ stest(cvkshe); kanchar "base of consonant ksha+vowel modifer e";
+ begintchar(cv_kshe_code,cb_ka_width#,x_height#,cb_ksha_depth#,0,0,0);
+ cb_ksha_form;
+ %sketch cb_kha_p;
+ sketch cb_ka_pa;
+ sketch cb_ka_pb;
+ sketch cb_ka_pc;
+ undraw bar_pa; %cb_ka_pc;
+ vm_e_form_a(8,.1u, .3u); %sketch vm_e_p;
+ path vm_e_pa,vm_e_pb,vm_e_pc ;
+ vm_e_pa = cb_ka_pc softjoin vm_e_p;
+ sketch vm_e_pa;
+ pivot_message(x301,x400);
+ endtchar; etest;
+enddef ;
+
+% ----------------End of Kannada Vowel modifed Consonants(special)----------
+
+% ---------- start of ubayaksharas -----------
+
+
+%stest(uas); kanchar "accent ardhasunna";
+%begintchar(u_ardhasunna_code,x_height#/2,x_height#,0,0,0,ur#);
+%top rt z2=(w,h); bot rt z1=(w,0); lft z3=(0,h/2);
+%sketch z1..z3..z2;
+%endtchar; etest;
+
+ stest(uss); kanchar "accent s";
+ begintchar(u_uss_code,x_height#,x_height#,0,0,0,0);
+ cb_dollar_form ;
+ cc_clear; cc_transform(dol_p);
+ cc_whd(1,0);
+ endtchar; etest;
+
+ stest(us); kanchar "accent sunna";
+ begintchar(u_sunna_code,x_height#,x_height#,0,0,0,ur#);
+ top z2=(w/2,h); bot z1=(x2,0);
+ sketch z1..z2..cycle;
+ endtchar; etest;
+
+ stest(uvi); kanchar "accent visarga";
+ begintchar(u_visarga_code,2/5x_height#,x_height#,0,0,0,ur#);
+ top z2 = (w/2,h); bot z1 =(x2,3h/5);
+ path puvi;
+ puvi= z1..z2..cycle;
+ sketch puvi; sketch puvi shifted (0,-2h/3);
+ endtchar; etest;
+
+%stest(uav); kanchar "accent ardhavisarga";
+%begintchar(u_ardhavisarga_code,2/5x_height#,x_height#,0,0,0,ur#);
+%path puav;
+%top z2 = (w/2,h); bot z1 =(x2,3h/5);
+%puav = subpath (0.25,1.75) of (z1..z2..cycle);
+%sketch puav;sketch puav shifted (0,-2h/3);
+%endtchar; etest;
+
+%stest(ua); kanchar "accent avagraha";
+%begintchar(u_avagraha_code,kfig_width#,x_height#,0,0,0,ur#);
+%top lft z1=(0,h); lft z2=(0,h/4); z3=(w/2,(y1+y2)/2);
+%bot lft z4=(0,0); bot rt z5=(w,0);
+%sketch flex (z1,z3,z2,z4)& z4--z5;
+%endtchar; etest;
+
+% ----------- end of ubhayaksharas ----------
+
+%----------- Begin of bars used for transliteration of vedic hymns-------------
+
+ stest(buone); kanchar "b udatta(one bar)";
+ begintchar(b_udatta1_code,u#,top_accent#+3uh#,0,0,0,0);
+ bot z1=(w/2,top_accent); top z2=(x1,h);
+ sketch z1--z2;
+ pivot_message((w/2));
+ endtchar; etest;
+
+ stest(butwo); kanchar "b udatta (two bars)";
+ begintchar(b_udatta2_code,3.5u#,top_accent#+3uh#,0,0,0,0);
+ bot z1=(w/4,top_accent); top z2=(x1,h);
+ bot z3=(w/4+w/2,top_accent); z4=z2+(w/2,0);
+ sketch z1--z2; sketch z3-- z4;
+ pivot_message((w/2));
+ endtchar; etest;
+
+ stest(ba); kanchar "b anudatta";
+ begintchar(b_anudatta_code,4u#,0,0,0,0,0);
+ % d is set later
+ top lft z1=(0,-bot_accent);top rt z2=(w,-bot_accent);
+ sketch z1--z2;
+ d:=- (bot y1);
+ pivot_message((w/2));
+ endtchar; etest;
+
+%----------- end of fonts for vedic hymns---------------
+
+% kannada digits and punctuation symbols
+%
+% --------- start of roman digits ------------
+
+def DRZERO =
+ stest(drzero); kanchar "Roman digit zero";
+ begintchar(dr_zero_code,7u#,fig_height#,0,0,0,ur#);
+ top z1=(w/2,h); lft z2=(0,1/2h);
+ bot z3=(w/2,0); rt z4=(w,1/2h);
+ sketch superellipse(z4,z1,z2,z3,0.707);
+ endtchar; etest;
+enddef;
+
+def DRONE =
+ stest(drone); kanchar "Roman digit one";
+ begintchar(dr_one_code,4u#,fig_height#,0,0,0,ur#);
+ bot lft z1=(0,0); bot rt z2=(w,0); top z3=(x5,h);
+ lft z4=(x1,x_height+uh); bot z5=1/2[z1,z2];
+ sketch z1--z2; sketch z3--z5;
+ sketch z4..{up}z3;
+ endtchar; etest;
+enddef;
+
+def DRTWO =
+ stest(drtwo); kanchar "Roman digit two";
+ begintchar(dr_two_code,7u#,fig_height#,0,0,0,ur#);
+ bot lft z1=(0,0); bot rt z2=(w,0); lft z3=(0,x_height);
+ top z4=(w/2,h); rt z5=(w,y3);
+ sketch z1--z2; sketch z3..z4..z5..{-1,-1}z1;
+ endtchar; etest;
+enddef;
+
+def DRTHREE =
+ stest(drthree); kanchar "Roman digit three";
+ begintchar(dr_three_code,7u#,fig_height#,0,0,0,ur#);
+ path pa;
+ top lft z1=(0,3/4h); top z2=(w/2,h);
+ rt z3=(w,y1); z4=(w/2-u,1/2h);
+ pa= z1..z2..z3..{(-1,0)}z4;
+ sketch pa; sketch pa reflectedabout (z4,(w,y4));
+ endtchar; etest;
+enddef;
+
+def DRFOUR =
+ stest(drfour); kanchar "Roman digit four";
+ begintchar(dr_four_code,7u#,fig_height#,0,0,0,ur#);
+ bot z1=(w-1.5u,0); top z2=(x1,h);
+ lft z3=(0,w_height); rt z4=(w,y3);
+ bot z1a=(x1-(x4-x1),0); bot z1b=(x4,0);
+ sketch z1a--z1b; sketch z1--z2;
+ sketch z3--z2; sketch z3--z4;
+ penlabels(1a,1b);
+ endtchar; etest;
+enddef;
+
+def DRFIVE =
+ stest(drfive); kanchar "Roman digit five";
+ begintchar(dr_five_code,7u#,fig_height#,0,0,0,ur#);
+ top rt z1=(w,h); top lft z2=(0,h); lft z3=(0,6/10h);
+ z4=(1/2w,y3+uh); rt z5=(w,(y4+y6)/2); bot z6=(x4,0); lft z7=(0,1/4h);
+ sketch z1--z2; sketch z2--z3;
+ sketch z3..z4..z5..z6..z7;
+ endtchar; etest;
+enddef;
+
+def DRSIX =
+ stest(drsix); kanchar "Roman digit six";
+ begintchar(dr_six_code,6u#,fig_height#,0,0,0,ur#);
+ dr_sixnine_form;
+ sketch dr_sixnine_p;
+ endtchar; etest;
+enddef;
+
+def DRSEVEN =
+ stest(drseven); kanchar "Roman digit seven";
+ begintchar(dr_seven_code,7u#,fig_height#,0,0,0,ur#);
+ top lft z1=(0,h); top rt z3=(w,h);
+ bot z4=(1/4w,0);
+ sketch z1--z3{(-1,-1)}..{down}z4;
+ endtchar; etest;
+enddef;
+
+def DREIGHT =
+ stest(dreight); kanchar "Roman digit eight";
+ begintchar(dr_eight_code,7u#,fig_height#,0,0,0,ur#);
+ top z1=(w/2,h); z2=(x1,0.6h);
+ bot z3=(x1,0); lft z4=(0,y2/2); rt z5=(w,y4);
+ z6=(x4+u,1/2(y1+y2)); z7=(w-u,y6);
+ sketch superellipse(z7,z1,z6,z2,0.707);
+ sketch superellipse(z5,z2,z4,z3,0.707);
+ endtchar; etest;
+enddef;
+
+def DRNINE =
+ stest(drnine); kanchar "Roman digit nine";
+ begintchar(dr_nine_code,6u#,fig_height#,0,0,0,ur#);
+ dr_sixnine_form;
+ bot lft z10 = z1;
+ sketch dr_sixnine_p rotatedaround(z10,-180) shifted(-w,-h);
+ endtchar; etest;
+enddef;
+
+%---------------------end of roman digits------------------------
+
+% ------------- start of kannada digits ------------
+
+def DKZERO =
+ stest(dkzero); kanchar "kannada digit zero";
+ begintchar(dk_zero_code,kfig_width#,kfig_height#,0,0,0,ur#);
+ top z1=(w/2,h); lft z2=(0,h/2); bot z3=(x1,0); rt z4=(w,y2);
+ sketch superellipse(z4,z1,z2,z3,0.707);
+ endtchar; etest;
+enddef;
+
+def DKONE =
+ stest(dkone); kanchar "kannada digit one";
+ begintchar(dk_one_code,kfig_width#,kfig_height#,0,0,0,ur#);
+ bot z1=(w/4,0); lft z2=(0,h/2); top z3=(w/2,h);
+ rt z4=(w,h/2); bot z5=(w-(w/4),0);
+ sketch z1..tension 1.2..z2..z3..z4..tension 1.2..z5;
+ endtchar; etest;
+enddef;
+
+def DKTWO =
+ stest(dktwo); kanchar "kannada digit two";
+ begintchar(dk_two_code,kfig_width#,kfig_height#,0,0,0,ur#);
+ z1=(3w/5+.75u,5h/6); z2=(x1-.75u,4h/6); z3=(w/2,y1);
+ top z4=(x1,h); z5=((x8+x1)/2,y3); bot z6=(x1,0);
+ bot lft z7=(0+u,0);rt z8=(w,h/2);
+ sketch z1..z2..z3..z4..z8..{(-1,0)}z6--z7;
+ endtchar; etest;
+enddef;
+
+
+def DKTHREE =
+ stest(dkthree); kanchar "kannada digit three";
+ begintchar(dk_three_code,kfig_width#-2u#,kfig_height#,0,0,0,ur#);
+ path pa;
+ %lft z1=(0,4h/5); top z2=(w/2,h); top z3=(4w/5,h);
+ %rt z4=(w,3h/4); z5=(3w/4,h/2); z6=(w/3,h/2);
+ %pa= z1..z2..z3..z4..z5;
+ %sketch pa; sketch pa reflectedabout(z5,z6);
+ %sketch z5--z6;
+ cb_kha_form;
+ path dkg_three ;
+ dkg_three = z1..z2..z3..z4..z5..z6..z7..z8..z9;
+ sketch dkg_three ;
+ endtchar; etest;
+enddef;
+
+def DKFOUR =
+ stest(dkfour); kanchar "kannada digit four";
+ begintchar(dk_four_code,kfig_width#-2u#,kfig_height#,0,0,0,ur#);
+ %top z1=(w/5,h); lft z2=(0,2h/3); z4=(w/2,h/3);
+ %bot z5=(x4,0); z3=(w/3,1/2(y4+y5));
+ %forsuffixes s=6,7,8:
+ % z.s=z.[s-5] reflectedabout(z4,z5); endfor;
+ %sketch z1..z2..z4..z7..z6;
+ %sketch z4..z3..z5..z8..z4;
+ cb_lla_form;
+ sketch cb_lla_p ;
+ endtchar; etest;
+enddef;
+
+def DKFIVE =
+ stest(dkfive); kanchar "kannada digit five";
+ begintchar(dk_five_code,kfig_width#,kfig_height#,0,0,0,ur#);
+ %lft z1=(0,8h/10); lft z2=(0,3h/10); z3=(2w/3,(y1+y2)/2);
+ %top z11=(w/3,h); z12 = z11 reflectedabout ((0,y3),(w,y3));
+ %sketch z1..z11..z3..z12..z2;
+ %top z4=(x3+(w-x3)/2,h);
+ %rt z5=(w,(y3+y4)/2);
+ %bot z7=(x4,0); rt z8=(x9,y9-uh); rt z9=(w,y2);
+ %sketch z3..z5..z4..z3..z7..z8..z9;
+ dk_five_form ;
+
+ endtchar; etest;
+enddef;
+
+def DKSIX =
+ stest(dksix); kanchar "kannada digit six";
+ begintchar(dk_six_code,kfig_width#,kfig_height#,0,0,0,ur#);
+ dk_six_form;
+ endtchar; etest;
+enddef;
+
+def DKSEVEN =
+ stest(dkseven); kanchar "kannada digit seven";
+ begintchar(dk_seven_code,kfig_width#-2u#,kfig_height#,0,0,0,ur#);
+ %lft z1=(0,3h/4); top z2=(w/2,h); rt z3=(w,y1); z4=(w/2,h/2);
+ %forsuffixes i=6,7,8:
+ % z.i=z.[i-5] rotatedaround (z4,0);
+ %endfor;
+ z1 = (.5w, .75h) ; top z2 = (.3w, .95h) ;
+ top z3 = (x1+u, y1) ; lft z4 = (0, .2h) ;
+ bot z5 = (.1w, 0) ; bot z6 = (w, 0) ;
+ sketch z1..z2..z3..tension 1.1..z4...z5--z6 ;
+ endtchar; etest;
+enddef;
+
+
+def DKEIGHT =
+ stest(dkeight); kanchar "kannada digit eight";
+ begintchar(dk_eight_code,kfig_width#+u#,kfig_height#,0,0,0,ur#);
+ z1 =(.2w, .75h) ; top z2 = (.3w, h) ; z2a = (.075w, .75h) ;
+ lft z3 = (.0w, .5h) ; bot z4 = (.35w, .03h ) ;
+ rt z5 = (.9w, .45h) ; z6 = (.7w, .8h) ;
+ top z7 = (.75w, h) ; rt top z8 = (w, h) ;
+ sketch z1..z2..z2a..z3..z4...z5..z6...z7--z8 ;
+
+ sketch z1 ; sketch z2; sketch z3; sketch z4 ; ;sketch z5; sketch z6; sketch z7;
+ endtchar; etest;
+enddef;
+
+def DKNINE =
+ stest(dknine); kanchar "kannada digit nine";
+ begintchar(dk_nine_code,kfig_width#,kfig_height#,0,0,0,ur#);
+ rt top z1 = (w, h) ; top z2 = (.25w, h) ; z2a = (.05w, .9h) ;
+ lft z3 = (0, .75h) ; z4 = (.2w, .4h) ;
+ z6 = (x4, .6h) ; z5 = ( .35w, (y4+y6)/2) ;
+ lft z7 = (0, .25h) ; bot z8 = (.2w, 0) ;
+ bot z9 = (.3w, 0 ) ;
+ sketch z1---z2..z3..z4..z5..z6..z7...z8---z9 ;
+
+ endtchar; etest;
+enddef;
+
+% end of kannada digits
+
+% --------- start of punctuation ----------
+
+def PPERIOD =
+ stest(pperiod); kanchar "punctuation period";
+ begintchar(p_period_code,2*dot_radius#,2*dot_radius#,0,0,0,ur#);
+ z1=(dot_radius,dot_radius);
+ fill_dot(1);
+ endtchar; etest;
+enddef;
+
+def PCOMMA =
+ stest(pcomma); kanchar "punctuation comma";
+ begintchar(p_comma_code, p_comma_width#,2*dot_radius#,des_depth#,0,0,ur#);
+ p_comma_form;
+ endtchar; etest;
+enddef;
+
+def PEQUAL =
+ stest(pequal); kanchar "punctuation equal";
+ begintchar(p_equal_code,10u#,3/4x_height#,0,0,0,ur#);
+ top lft z1=(0,h); top rt z2=(w,h);
+ bot lft z3=(0,1/4x_height); bot rt z4=(w,1/4x_height);
+ sketch z1--z2; sketch z3--z4;
+ endtchar; etest;
+enddef;
+
+def PBAR =
+ stest(pbar); kanchar "punctuation vertical bar";
+ begintchar(p_bar_code,u#,x_height#,0,0,0,ur#);
+ p_bar_form;
+ sketch p_bar_p;
+ endtchar; etest;
+enddef;
+
+def PDBAR =
+ stest(pdbar); kanchar "punctuation double bar";
+ begintchar(p_dbar_code,2.5u#,x_height#,0,0,0,ur#);
+ p_bar_form;
+ sketch p_bar_p;sketch p_bar_p reflectedabout ((w/2,0),(w/2,h));
+ endtchar; etest;
+enddef;
+
+def PCOLON =
+ stest(pcolon); kanchar "punctuation colon";
+ begintchar(p_colon_code,2*dot_radius#,x_height#,0,0,0,ur#);
+ z1=(dot_radius,dot_radius);
+ fill_dot(1);
+ z2=(x1,x_height-dot_radius);
+ fill_dot(2);
+ endtchar; etest;
+enddef;
+
+def PSCOLON =
+ stest(pscolon); kanchar "punctuation semicolon";
+ begintchar(p_scolon_code,p_comma_width#,x_height#,des_depth#,0,0,ur#);
+ p_comma_form;
+ z5=(x1,x_height-dot_radius);
+ fill_dot(5);
+ endtchar; etest;
+enddef;
+
+def PCQUOTE =
+ stest(pcquote); kanchar "punctuation closing quote";
+ begintchar(p_cquote_code,p_comma_width#,asc_height#,0,0,0,ur#);
+ p_comma_form;
+ erase fill fill_dot_p; erase sketch p_comma_p;
+ fill fill_dot_p shifted (0,asc_height-2*dot_radius);
+ sketch p_comma_p shifted (0,asc_height-2*dot_radius);
+ endtchar; etest;
+enddef;
+
+def PCQUOTES =
+ stest(pcquotes); kanchar "punctuation closing quotes";
+ begintchar(p_cquotes_code,2*p_comma_width#+u#,asc_height#,0,0,0,ur#);
+ p_comma_form;
+ erase fill fill_dot_p; erase sketch p_comma_p;
+ fill fill_dot_p shifted (0,asc_height-2*dot_radius);
+ sketch p_comma_p shifted (0,asc_height-2*dot_radius);
+ fill fill_dot_p shifted (0,asc_height-2*dot_radius)
+ shifted (p_comma_width+u,0);
+ sketch p_comma_p shifted (0,asc_height-2*dot_radius)
+ shifted (p_comma_width+u,0);
+ endtchar; etest;
+enddef;
+
+def POQUOTE =
+ stest(poquote); kanchar "punctuation opening quote";
+ begintchar(p_oquote_code,p_comma_width#,asc_height#,0,0,0,ur#);
+ p_comma_form;
+ erase fill fill_dot_p; erase sketch p_comma_p;
+ lft z5 = z2;
+ top rt z6 =z3;
+ fill fill_dot_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6));
+ sketch p_comma_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6));
+ endtchar; etest;
+enddef;
+
+def POQUOTES =
+ stest(poquotes); kanchar "punctuation opening quotes";
+ begintchar(p_oquotes_code,2*p_comma_width#+u#,asc_height#,0,0,0,ur#);
+ p_comma_form;
+ erase fill fill_dot_p; erase sketch p_comma_p;
+ lft z5 = z2;
+ top rt z6 =z3;
+ fill fill_dot_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6));
+ sketch p_comma_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6));
+ fill fill_dot_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6))
+ shifted(p_comma_width+u,0);
+ sketch p_comma_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6))
+ shifted(p_comma_width+u,0);
+ endtchar; etest;
+enddef;
+
+def PDQUOTES =
+ stest(pdquotes);kanchar "punctuation double quotes";
+ begintchar(p_dquotes_code,4.5u#,asc_height#,0,0,0,ur#);
+ top lft z1=(1.5u,h); bot lft z2=(0,x_height);
+ top rt z3=(w,h); bot rt z4=(x1+1.5u,x_height);
+ sketch z1--z2; sketch z3--z4;
+ endtchar; etest;
+enddef;
+
+%stest(pdquotes);kanchar "punctuation double quotes";
+%begintchar(p_dquotes_code,2*dot_radius#+u#,asc_height#,0,0,0,ur#);
+%%begintchar(p_dquotes_code,4*dot_radius#+u#,asc_height#,0,0,0,ur#);
+%path pa;
+%%z1=(dot_radius,h-dot_radius);z1l=(0,y1);z1r=(2x1,y1);z1t=(x1,h);
+%z1=(dot_radius/2,h-dot_radius/2);z1l=(0,y1);z1r=(2x1,y1);z1t=(x1,h);
+%z2=(x1,x_height);
+%%z2=(x1,x_height);z2l=(dot_radius/2,y2);z2r=(x2+(x2-x2l),y2);
+%%pa= z2l--z1l & flex(z1l,z1t,z1r) & z1r--z2r--cycle; fill pa;
+%pa= z2--z1l & flex(z1l,z1t,z1r) & z1r--z2--cycle; filldraw pa;
+%filldraw pa shifted(dot_radius+u,0);
+%%fill pa shifted(2dot_radius+u,0);
+%endtchar; etest;
+
+def PSLASH =
+ stest(pslash); kanchar "punctuation virgule (slash)";
+ begintchar(p_slash_code,6u#,asc_height#,des_depth#,0,0,ur#);
+ p_slash_form;
+ sketch p_slash_p;
+ endtchar; etest;
+enddef;
+
+def PHASH =
+ stest(phash); kanchar "punctuation hash mark (number sign)";
+ begintchar(p_hash_code,12u#,asc_height#,des_depth#,0,0,ur#);
+ numeric midpoint;
+ midpoint = (-des_depth+asc_height)/2;
+ lft z1=(0,midpoint+2u); rt z2=(w,y1);
+ lft z3=(0,midpoint-2u); rt z4=(w,y3);
+ bot z5=(2u,-d); top z6=(x5+4u,h);
+ z7=(x5+4u,y5); z8=(x7+4u,y6);
+ sketch z1--z2; sketch z3--z4;
+ sketch z5--z6; sketch z7--z8;
+ endtchar; etest;
+enddef;
+
+%stest(pexcla); kanchar "punctuation exclamation point";
+%begintchar(p_excla_code,dot_radius#,asc_height#,0,0,0,ur#);
+%pickup pencircle;
+%z1=(dot_radius/2,dot_radius/2);
+%filldraw fullcircle scaled 2x1 shifted z1;
+%z2=(x1,5*y1); z3 =(x1,h-y1);
+%z2l=(x1-dot_radius/4,y2); z2r=(x1+dot_radius/4,y2);
+%z3l=(0,y3); z3r=(x1+dot_radius/2,y3); z3t=(x1,h);
+%filldraw z2l--z3l & flex(z3l,z3t,z3r) & z3r--z2r--cycle;
+%endtchar; etest;
+
+def PEXCLA =
+ stest(pexcla); kanchar "punctuation exclamation point";
+ begintchar(p_excla_code,dot_radius#,asc_height#,0,0,0,ur#);
+ z1=(dot_radius,dot_radius);
+ fill_dot(1);
+ fill fullcircle scaled 2x1 shifted z1;
+ top z2=(x1,h); bot z3 =(x1,4*y1);
+ sketch z2--z3;
+ endtchar; etest;
+enddef;
+
+def PASTERISK =
+ stest(pasterisk); kanchar "punctuation asterisk";
+ begintchar(p_asterisk_code,x_height#,x_height#,0,0,0,ur#);
+ z1=(1/2w,1/2h);
+ for d=30 step 60 until 330:
+ z[d]=z1+0.5 dir d xscaled w yscaled h;
+ sketch z1--z[d];
+ penlabels(z[d]);
+ endfor;
+ endtchar; etest;
+enddef;
+
+def PPLUS =
+ stest(pplus); kanchar "punctuation plus";
+ begintchar(p_plus_code,x_height#,x_height#,0,0,0,ur#);
+ lft z1=(0,h/2); rt z2=(w,y1); top z3=(w/2,h); bot z4=(x3,0);
+ sketch z1--z2; sketch z3--z4;
+ endtchar; etest;
+enddef;
+
+
+def PLBRACKET =
+ stest(plbracket); kanchar "punctuation left bracket";
+ begintchar(p_lbracket_code,3u#,top_height#,bot_depth#,0,0,ur#);
+ p_lbracket_form;
+ sketch p_lbracket_p;
+ endtchar; etest;
+enddef;
+
+def PRBRACKET =
+ stest(prbracket); kanchar "punctuation right bracket";
+ begintchar(p_rbracket_code,3u#,top_height#,bot_depth#,0,0,ur#);
+ p_lbracket_form;
+ sketch p_lbracket_p shifted (-w,0) reflectedabout ((0,0),(0,h));
+ endtchar; etest;
+enddef;
+
+def PLPAREN =
+ stest(plparen); kanchar "punctuation left parenthesis";
+ begintchar(p_lparen_code,3u#,top_height#,bot_depth#,0,0,ur#);
+ p_rparen_form;
+ sketch p_rparen_p shifted (-w,0) reflectedabout ((0,0),(0,h));
+ endtchar; etest;
+enddef;
+
+def PRPAREN =
+ stest(prparen); kanchar "punctuation right parenthesis";
+ begintchar(p_rparen_code,3u#,top_height#,bot_depth#,0,0,ur#);
+ p_rparen_form;
+ sketch p_rparen_p;
+ endtchar; etest;
+enddef;
+
+def PLBRACE =
+ stest(plbrace); kanchar "punctuation left brace";
+ begintchar(p_lbrace_code,4u#,top_height#,bot_depth#,0,0,ur#);
+ p_lbrace_form;
+ sketch p_lbrace_p;
+ endtchar; etest;
+enddef;
+
+def PRBRACE =
+ stest(prbrace); kanchar "punctuation right brace";
+ begintchar(p_rbrace_code,4u#,top_height#,bot_depth#,0,0,ur#);
+ p_lbrace_form;
+ sketch (p_lbrace_p shifted (-w,0) reflectedabout ((0,0),(0,h)) );
+ endtchar; etest;
+enddef;
+
+def PPERCENT =
+ stest(ppercent); kanchar "punctuation percent sign";
+ begintchar(p_percent_code,6u#,asc_height#,des_depth#,0,0,ur#);
+ p_slash_form;
+ sketch p_slash_p;
+ z3=(3(x1+x2)/8,-d+7/8(h+d));
+ z4=(w-x3,-d+(h-y3));
+ sketch fullcircle scaled (1.5u) shifted z3;
+ sketch fullcircle scaled (1.5u) shifted z4;
+ endtchar; etest;
+enddef;
+
+def PBSLASH =
+ stest(pbslash); kanchar "punctuation backslash";
+ begintchar(p_bslash_code,6u#,asc_height#,des_depth#,0,0,ur#);
+ p_slash_form;
+ sketch p_slash_p reflectedabout ((w/2,h),(w/2,0));
+ endtchar; etest;
+enddef;
+
+def PLBAR =
+ stest(plbar); kanchar "punctuation long bar";
+ begintchar(p_lbar_code,u#,asc_height#,des_depth#,0,0,ur#);
+ top z1=(w/2,h); bot z2=(x1,-d);
+ sketch z1--z2;
+ endtchar; etest;
+enddef;
+
+def PHYPHEN =
+ stest(phyphen); kanchar "punctuation hyphen";
+ begintchar(p_hyphen_code,6u#,1/2x_height#,0,0,0,ur#);
+ top lft z1=(0,h); top rt z2=(w,h);
+ sketch z1--z2;
+ endtchar; etest;
+enddef;
+
+def PLHYPHEN =
+ stest(plhyphen); kanchar "punctuation long hyphen";
+ begintchar(p_lhyphen_code,9u#,1/2x_height#,0,0,0,ur#);
+ top lft z1=(0,h); top rt z2=(w,h);
+ sketch z1--z2;
+ endtchar; etest;
+enddef;
+
+def PVLHYPHEN =
+ stest(pvlhyphen); kanchar "punctuation very long hyphen";
+ begintchar(p_vlhyphen_code,15u#,1/2x_height#,0,0,0,ur#);
+ top lft z1=(0,h); top rt z2=(w,h);
+ sketch z1--z2;
+ endtchar; etest;
+enddef;
+
+def PUBAR =
+ stest(pubar); kanchar "punctuation underbar";
+ begintchar(p_ubar_code,x_height#,0,uh#,0,0,ur#);
+ bot lft z1=(0,-d); bot rt z2=(w,-d);
+ sketch z1--z2;
+ endtchar; etest;
+enddef;
+
+def PQUESTION =
+ stest(pquestion); kanchar "punctuation question mark";
+ begintchar(p_question_code,6u#,asc_height#,0,0,0,ur#);
+ lft z1=(0,h-2dot_radius); top z2=(w/2,h);
+ rt z3=(w,y1); z4=(x2,1/2x_height);
+ z5=(x2,1/3(y2+y4)); z6=(x2,dot_radius);fill_dot(6);
+ sketch z1..z2..z3..z5..tension 1.5..z4;
+ endtchar; etest;
+enddef;
+
+def PDOLLAR =
+ stest(pdollar); kanchar "punctuation dollar sign";
+ begintchar(p_dollar_code,cb_ka_width#,x_height#+1.5uh#,1.5uh#,0,0,ur#);
+ cb_dollar_form;
+ sketch dol_p ;
+ top z11 = (w/2,h); bot z12 = (w/2,-d);
+ sketch z11--z12;
+ endtchar; etest;
+enddef;
+
+def PGREATER =
+ stest(pgreater); kanchar "punctuation greater than";
+ begintchar(p_greater_code,7u#,x_height#,0,0,0,ur#);
+ bot lft z1=(0,0); top lft z2=(0,x_height); rt z3=(w,1/2(y1+y2));
+ sketch z1--z3; sketch z2--z3;
+ endtchar; etest;
+enddef;
+
+def PLESS =
+ stest(pless); kanchar "punctuation less than";
+ begintchar(p_less_code,7u#,x_height#,0,0,0,ur#);
+ bot rt z1=(w,0); top rt z2=(w,x_height); lft z3=(0,1/2(y1+y2));
+ sketch z1--z3; sketch z2--z3;
+ endtchar; etest;
+enddef;
+
+def PAT =
+ stest(pat); kanchar "punctuation at sign";
+ begintchar(p_at_code,10u#,asc_height#,0,0,0,ur#);
+ z1=(w/2,3/4h); z2=(1/5w,1/2h);
+ z3=(x1,1/4h); z4=(4/5w,5/8h);
+ z5=(4/5w,3/8h); z6=(9/10w,y3);
+ rt z7=(w,y2); top z8=(x1,h);
+ lft z9=(0,y2); bot z10=(x1,0); rt z11=(x7,1/8h);
+ sketch z5..z3..z2..z1..z4&z4--z5& z5..z6..z7{up}..{left}z8..z9..z10..z11;
+ endtchar; etest;
+enddef;
+
+def PTILDE =
+ stest(ptilde); kanchar "punctuation tilde sign";
+ begintchar(p_tilde_code,9u#,asc_height#,0,0,0,ur#);
+ top lft z1=(0,asc_height2); top z2=(w/3,h);
+ z3=(2/3w,y1); top rt z4=(w,y2);
+ sketch z1..z2..z3..z4;
+ endtchar; etest;
+enddef;
+
+def PHAT =
+ stest(phat); kanchar "punctuation circumflex(hat)";
+ begintchar(p_hat_code,5u#,asc_height#,0,0,0,ur#);
+ lft z1=(0,asc_height1); rt z2=(w,y1); top z3=(1/2(x1+x2),h);
+ sketch z1--z3; sketch z3--z2;
+ endtchar; etest;
+enddef;
+
+def PAMPERSAND =
+ stest(pampersand); kanchar "punctuation ampersand";
+ begintchar(p_ampersand_code,11u#,asc_height#,0,0,0,ur#);
+ rt z11=(w,1/4x_height); bot z10=(3/4w,0);
+ z1=(x10+u,x_height); y1a=y1; x1-x1a=w-x1; rt z1b=(w,x_height);
+ bot z2=(w/4,0);lft z3=(0,y11); z4=(w/8,1/2x_height+uh);
+ z5=(x2,3/4x_height); z6=(w/2,asc_height1);
+ top z7=(5/12w,h); z8=(5/24w,y6); %z9=(x7,1/2x_height);
+ sketch z1a--z1b;
+ sketch z1..{left}z2..z3..z4..z5..z6..z7..z8..z5..z10..z11;
+ penlabels (1a,1b);
+ endtchar; etest;
+enddef;
+
+% ---------------- end of punctuation ------------
+
+%-------Begin of glyps to demonstrate conjunctions and vowel modifers-----
+def BOXA =
+ stest(cbbb); kanchar "consonant blackbox(bb)";
+ %This is not really a letter in Kannada. However this character
+ % is useful for demonstrating vowel modifiers, cons. conjuncts, accents etc.
+ begintchar(cb_bb_code,0.2em_width#,0.8x_height#,0.25x_height#,0,0,0);
+ fill (0,-d)--(w,-d)--(w,h)--(0,h)--cycle;
+ pivot_message((w/2),(w/2));
+ endtchar; etest;
+enddef ;
+
+def BOXB =
+ stest(cbbo); kanchar "consonant outlinebox(bo)";
+ %This is not really a letter in Kannada. However this character
+ % is useful for demonstrating vowel modifiers, cons. conjuncts, accents etc.
+ begintchar(cb_bo_code,0.2em_width#,x_height#,0,0,0,0);
+ bot lft z1=(0,-d);bot rt z2=(w,-d);top rt z3=(w,h); top lft z4=(0,h);
+ z1a=(0,y1);z2a=(w,y2);z3a=(w,y3);z4a=(0,y4);
+ sketch z1--z4; sketch z2--z3; sketch z1a--z2a; sketch z4a--z3a;
+ cutoff(z1a,180);cutoff(z2a,0);cutoff(z3a,0);cutoff(z4a,180);
+ pivot_message((w/2),(w/2));
+ endtchar; etest;
+enddef ;
+
+def BOXC =
+ stest(cbbe); kanchar "consonant emptybox(be)";
+ %This is not really a letter in Kannada. However this character
+ % is useful for demonstrating vowel modifiers, cons. conjuncts, accents etc.
+ begintchar(cb_be_code,0.2em_width#,x_height#,0,0,0,0);
+ pivot_message((w/2),(w/2));
+ endtchar; etest;
+enddef ;
+
+%-------End of glyps to demonstrate conjunctions and vowel modifers-----
+
+% ----------------Begin of Misc glyphs for emotional expression--------------
+
+def SMILE =
+ stest(grin); kanchar "Grin face";
+ begintchar(kn_spla_code,7u#,x_height#+u#,0,0,0,0);
+ top z1 = (w/2, h) ; rt z2 = (0, 1/2h) ;
+ bot z3 = (x1, 0) ; lft z4 = (w, 1/2h) ;
+ top z5 = (1/4w, 2/3h) ; top z6 = (3/4w, 2/3h) ;
+ fill_dotb(5) ;
+ fill_dotb(6) ;
+ sketch z1..z2..z3..z4..z1 ;
+ z7 = (x5+.15u, 1/3h); z8 = (w-x7, y7) ;
+ z9 = ((x7+x8)/2, .2h) ;
+ draw z7...z9...z8 ;
+ endtchar; etest;
+enddef ;
+
+def FROWN =
+ stest(weep); kanchar "Weep face";
+ begintchar(kn_splb_code,7u#,x_height#+u#,0,0,0,0);
+ top z1 = (w/2, h) ; rt z2 = (0, 1/2h) ;
+ bot z3 = (x1, 0) ; lft z4 = (w, 1/2h) ;
+ top z5 = (1/4w, 2/3h) ; top z6 = (3/4w, 2/3h) ;
+ fill_dotb(5) ;
+ fill_dotb(6) ;
+ sketch z1..z2..z3..z4..z1 ;
+ z7 = (x5+.15u, 1/3h); z8 = (w-x7, y7) ;
+ z9 = ((x7+x8)/2, .4h) ;
+ draw z7...z9...z8 ;
+ endtchar; etest;
+enddef ;
+
+% ----------------End of Misc glyphs for emotional expression--------------
+
+
diff --git a/Master/texmf-dist/fonts/source/public/itrans/tamilORG.mf b/Master/texmf-dist/fonts/source/public/itrans/tamilORG.mf
new file mode 100644
index 00000000000..d2c30d53140
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/tamilORG.mf
@@ -0,0 +1,2020 @@
+boolean dodraw;
+dodraw=true;
+boolean goleft;
+goleft=false;
+def tthinnest=max(hair,2) enddef;
+def tthinner=max(1.4hair,2) enddef;
+def tthin=max(1.8hair,2) enddef;
+def tmed=max(.75curve,2) enddef;
+def tthick=curve enddef;
+def tthicker=1.2curve enddef;
+def tthickest=1.4curve enddef;
+
+string callchar;
+numeric oldh; numeric oldw; numeric oldd;
+
+def charspec(expr c, w_sharp, h_sharp, d_sharp) =
+ oldh:=h; oldw:=w; oldd:=d;
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+enddef;
+
+input tamilmax;
+
+def cloney(suffix $,@) =
+ y$=y@; y$r=y@r; y$l=y@l;
+enddef;
+
+def clonex(suffix $,@) =
+ x$=x@; x$r=x@r; x$l=x@l;
+enddef;
+
+def small_iito (suffix @,$)(expr iheight) =
+x$99=x@; y$99=y@; pos$99(tthin,180);
+x$100=x$99-2.5u; y$100=.5[y$99,y$1]; pos$100(tthin,135);
+x$1=x@+.5u; top y$1r=iheight; pos$1(tthick,90);
+x$2=x$1+u; y$2=y$1-.5u; pos$2(.7tthick,60);
+x$3=x$2; y$3=y$2-2u; pos$3(tthin,-90);
+x$4=x$4l=x$4r=x$2; y$4=y$2; y$4r=y$4+1; y$4l=y$4-1;
+filldraw stroke z$99e{left}...{up}z$100e...{right}z$1e...z$2e...{left}z$3e...{right}z$4e;
+penlabels($1,$2,$3,$4);
+enddef;
+
+def help_uu =
+charspec("9",x_height#,.75x_height#,0);
+x181=x101=u; x106=x107=x108=x109=.55w; x111=x112=.8w; x110=w;
+x103=x105=.5[x101,x106]; x102=x104=.5[x101,x103];
+bot y104r=y106=y107=y111=0; top y105r=y108=top y109r=top y110r=y112=h;
+y101=y181=y103=.5y102; y102=.6h;
+pos101(.8tthinner,180); pos102(.8tthin,90); pos103(.8tmed,0);
+pos104(.8tthin,-90); pos181(.8tthinner,-180); pos105(.8tthick,-270);
+pos106(.8tthin,-360); pos107(.8tthin,0); pos108(.8tthin,0);
+pos109(.8tthin,90); pos110(.8tthin,90); pos111(.8tthick,0); pos112(.8tthick,0);
+if dodraw:
+filldraw stroke z101e...{right}z102e...{down}z103e...{left}z104e..z181e...{right}z105e...{down}z106e;
+filldraw stroke z107e---z108e; filldraw stroke z109e---z110e;
+filldraw stroke z111e---z112e;
+fi
+enddef;
+
+
+cmchar "Tamil vii";
+beginchar(115,1.5x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21r=x10l; x21l=x10r; x21=x10; cloney(21,10); small_iito(21,s,h);
+endchar;
+
+cmchar "tamil a";
+beginchar(0,2x_height#,x_height#,.6desc_depth#);
+adjust_fit(0,0);
+x3=.5[x9,x11]; top y1r=h; y5=y12=h; y2=y4=y6=.5[y3,y1]; y3=.8bar_height; x1=x3;
+x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=w-u;
+x9=u; x10=.15[x9,x11]; y8=-.8d; y13=-d; y7=bar_height; y9=.2bar_height; y10=y11=.25bar_height;
+z20=z1;
+pos1(tthinnest,90); pos2(tthin,0); pos3(tthinnest,-90); pos4(tthinnest,-180);
+pos5(hair,90); pos6(curve,0); pos7(tthick,-360); pos8(tthinner,-450);
+pos9(tthinnest,-580); pos10(tthinnest,-630); pos11(tthinnest,-630); pos12(tthick,0);
+pos13(tthick,0);pos20(tthinner,-270);
+filldraw stroke z1e...z2e...z3e...z4e...z20e...{down}z7e...{left}z8e...{up}z9e...z10e---z11e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "tamil aa";
+beginchar(1,2.5x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+x3=.5[x9,x11]; top y1r=h; y5=y12=h; y2=y4=y6=.5[y3,y1]; y3=.8bar_height; x1=x3;
+x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=2x_height-u;
+x9=u; x10=.15[x9,x11]; y8=-.48desc_depth; y13=-.6desc_depth; y7=bar_height; y9=.2bar_height; y10=y11=.25bar_height;
+z20=z1; x31=x31r=x31l=x11+u; cloney(31,11);
+x32r=x13r; y32=y13; pos32(tthinner,0); x34=w-u; y34=y32; pos34(tthinner,-720);
+x33=.5[x32,x34]; y33=0; pos33(tthin,-90); x35=.1[x13,x8]; y35=-1.2d; %bot y35l=-d;
+pos35(.8tthick,-810); x36=.2[x8,x13]; y36=-desc_depth; pos36(tthin,-900);
+x37=.5[x8,x13]; y37=y13; pos37(tthinner,-990);
+pos1(tthinnest,90); pos2(tthin,0); pos3(tthinnest,-90); pos4(tthinnest,-180);
+pos5(hair,90); pos6(curve,0); pos7(tthick,-360); pos8(tthinner,-450);
+pos9(tthinnest,-580); pos10(tthinnest,-630); pos11(tthinnest,-630); pos12(tthick,0);
+pos13(tthick,0);pos20(tthinner,-270);
+filldraw stroke z1e...z2e...z3e...z4e...z20e...{down}z7e...{left}z8e...{up}z9e...z10e---z31e{right}
+ ...{down}z34e...{left}z35e...{up}z36e...{right}z37e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,31,32,33,34,35,36,37);
+endchar;
+
+cmchar "tamil i";
+beginchar(2,2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+pickup crisp.nib;
+x6=.6w; x11=x13=x15=.5w; x16=x17=.9w; x12=.75w;
+x5=x7=.55w; x4=.3w; x3=.4w; x2=.5w; x1=.35w;
+x8=x10=x14=.15w; x9=.1w;
+y15=h; y5=x_height; y14=y11=.1h; y10=0; y16=.8x_height;
+y7=-.1d; y8=y13=y17=-d; y9=y12=-.6d;
+y2=y4=y6=.6x_height; y1=.8x_height; y3=.4x_height;
+z20=z1; pos20(tthinnest,-200);
+z65=.5[z6,z7]; pos65(tthicker,-370);
+pos1(tmed,45); pos2(tmed,0); pos3(tthin,-90); pos4(tthinnest,-180);
+pos5(tmed,-270); pos6(tthick,-360); pos7(tthicker,-380); pos8(tmed,-450);
+pos9(tthinner,-540); pos10(tthinnest,-585); pos11(tthin,-630);
+pos12(tthick,-720); pos13(tthin,-810); pos14(tthinner,-880);
+pos15(tthick,-990); pos16(tthin,-1060); pos17(tthin,-1060);
+filldraw stroke z1e..z2e..z3e..z4e..z20e..z5e..z65e..z8e..z9e..z10e..z11e..z12e..z13e..z14e..z15e...{down}z16e---z17e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17); endchar;
+
+cmchar "Tamil ii";
+beginchar(3,1.125x_height#+2u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="r";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=.5[x1,x6]; x8=x4-.5dot_size;
+top y77r=top y88r=bar_height+.375dot_size;
+y7=y8=.5[y77r,y77l];
+x77=x7; x88=x8; pos7(.75dot_size,0); pos77(.75dot_size,90);
+pos8(.75dot_size,0); pos88(.75dot_size,90);
+dot(7,77); dot(8,88);
+penlabels(7,8); endchar;
+
+cmchar "tamil u";
+beginchar(4,2x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="u";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+
+cmchar "tamil uu";
+beginchar(5,2.8x_height#,x_height#,0);
+adjust_fit(0,0);
+help_uu;
+picture V; transform t;
+t=identity shifted(1.4x_height,.25x_height);
+V=currentpicture transformed t; currentpicture:=V;
+h:=oldh; w:=oldw; d:=oldd;
+callchar:="u";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x12=w-u; y12=y11; pos12(tthin,-290);
+filldraw stroke z11e--z12e;
+endchar;
+
+cmchar "tamil e";
+beginchar(6,1.6x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "tamil ai";
+beginchar(7,1.75x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+pickup crisp.nib;
+y7=y10=h; y4=y8=y9=.2h; y15=y19=-d; y12=.9bar_height;
+y21=.25h; y13=-.2d; y14=-.6d; y16=-.8d; y17=y18=-.3d; y20=-.2d;
+y1=y3=.4h; y2=.7h; y11=.75h; y85=0;
+%
+x14=x1=u; x11=x12=w-u; x8=x9=x17=x18=.55[x1,x11]; x85=x8;
+x7=.6[x1,x8]; x10=.5[x9,x11]; x3=.6[x1,x8]; x2=x4=.5[x1,x3];
+x13=x2; x15=x7-.7u; x16=x17; x19=.5[x18,x11]; x20=.95x11; x21=.9x11;
+%
+x77=x8; y77=.6h; z99=z77;
+pos77(tthick,-360); pos99(tthick,0);
+pos1(tthinner,180); pos2(tmed,90); pos3(tthick,0); pos4(tmed,-90);
+z55=z1; pos55(tthinner,-180);
+%pos6 ?
+pos7(tthick,-270); pos8(tthick,-405);
+pos9(tthick,-45); pos10(tthin,-90); pos11(tthick,-180); pos12(tthick,-200);
+pos21(tthin,-240); pos13(tthin,-240); pos14(tmed,-180);
+pos15(tthick,-90); pos16(tthick,-45); pos17(tthick,-45);
+pos18(tthick,-45); pos19(tthick,90); pos20(tmed,225);
+pos85(tthin,-270);
+%pickup pencircle scaled .2pt
+filldraw stroke z1e..z2e{right}..z3e{down}..z4e{left}..z55e...{right}z7e...{down}z77e---z8e;
+%pickup crisp.nib
+%filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e..z21e---z13e..z14e{down}...z15e{right}...z16e...{up}z17e;
+filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e...{left}z85e{left}..z14e{down}...z15e{right}...z16e...{up}z17e;
+filldraw stroke z18e{down}...z19e{right}...z20e;
+%pickup pencircle scaled .2pt
+%draw stroke z18e{down}...z19e{right}...z20e;
+penlabels(1,2,3,4,55,7,8,9,10,11,12,21,13,14,15,16,17,19,20); endchar;
+
+cmchar "Tamil k";
+beginchar(8,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="k";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil o";
+beginchar(9,1.6x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+x1=x5=x16=u; x7=rt x12r=rt x13r=w-u;
+x6=.5[x1,x7]; x15=.5[x16,x12]; x17=.1[x16,x12]; x14=.85[x16,x12];
+x11=x9; x8=.4[x9,x7]; x9=x10=.7[x1,x7];
+x3=.3[x1,x7]; x2=x4=.5[x1,x3];
+top y6r=h; bot y15r=-d;
+y2=.5h; y1=y5=y3=.5y2;
+bot y4r=bot y8r=0;
+y9=y10=y2; y7=.3h; y11=-.1d; y12=y13=-.3d;
+y14=-.6d; y16=-.5d; y17=-.2d;
+pos1(tthin,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos5(tthin,-180); pos6(tmed,-270); pos7(tthick,-360); pos8(tmed,-450);
+pos9(tthin,-540); pos10(tthin,0); pos11(tmed,5); pos12(tthin,10);
+pos13(tthick,10); pos14(tthick,0); pos15(tmed,-90); pos16(tthinner,-180);
+pos17(tmed,-250);
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e...z5e...{right}z6e
+ ...{down}z7e...{left}z8e...z9e;
+% pickup pencircle scaled .2pt;
+filldraw stroke z10e..z11e...{right}z12e;
+filldraw stroke z13e...z14e...{left}z15e...{up}z16e...z17e;
+penlabels(1,2,3,4,6,7,8,9,11,12,14,15,16,17);
+endchar;
+
+
+cmchar "Tamil ki";
+beginchar(10,1.8x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="k";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z45=z21; x46=x3; top y46r=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,270); pos46(tthick,90); pos47(tthinner,0);
+x48l=x48-.5; x48r=x48+.5; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+penlabels(46,47,48);
+endchar;
+
+cmchar "Tamil kii";
+beginchar(11,1.5x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="k";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z45=z21; x46=x3; top y46r=h;
+pos45(tthinnest,270); pos46(tmed,90);
+x47=.6[x3,x4]; y47=.9[y3,y46]; x48=x4; y48=.5[y3,y46];
+y49=.3[y3,y46]; x49=x47; x50=.2[x3,x4]; y50=y48; z51=z47;
+pos47(.7tmed,45); pos48(tthinner,0); pos49(tthinnest,-90);
+pos50(tthinnest,-180); pos51(tthinnest,-225);
+filldraw stroke z45e{left}...{right}z46e...z47e...{down}z48e...{left}z49e...{up}z50e...z51e;
+penlabels(46,47,48,49,50);
+endchar;
+
+cmchar "Tamil ku";
+beginchar(12,2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x45=x5; bot y45r=-d; pos45(tthick,-450);
+x46=x46r=x46l=x2; y46=y2; y46r=y46+1; y46l=y46-1;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=.7[x3,x4];
+x47=-.25x_height; y47=y8; pos47(tthin,-540);
+filldraw stroke z25e---z26e{right}...z45e...{up}z47e...{right}z46e;
+picture V; transform t; t=identity shifted(.4x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(26,45,46,47);
+endchar;
+
+cmchar "Tamil kuu";
+beginchar(13,2.1x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+cloney(26,25); x26=x26l=x26r=.6[x3,x4];
+x28=x4; y28=0; x30=x28+(x4-x3); y30=0; top y29l=bar_height; x29=.5[x28,x30];
+x31=x30; bot y31l=0; pos31(tthin,90); x32=w-u; bot y32l=0; pos32(tthin,90);
+pos28(tthin,0); pos29(tthinner,-90); pos30(tthin,-180);
+filldraw stroke z25e--z26e{right}...{down}z28e;
+filldraw stroke z28e{up}...{right}z29e...{down}z30e;
+filldraw stroke z31e--z32e;
+penlabels(26,28,29,30,31); endchar;
+
+cmchar "Tamil long o";
+beginchar(14,1.6x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+x1=x5=x16=u; x7=rt x12r=rt x13r=w-u;
+x6=.5[x1,x7]; x15=.5[x16,x12]; x17=.25[x16,x12]; x14=.85[x16,x12];
+x11=x9; x8=.4[x9,x7]; x9=x10=.7[x1,x7];
+x3=.3[x1,x7]; x2=x4=.5[x1,x3];
+top y6r=h; bot y15r=-d;
+y2=.5h; y1=y5=y3=.5y2;
+bot y4r=bot y8r=0;
+y9=y10=y2; y7=.3h; y11=-.1d; y12=y13=-.3d;
+y14=-.6d; y16=-.5d; y17=-.2d;
+x18=.4[x16,x12]; y18=-.5d; pos18(tthinner,-360);
+pos1(tthin,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos5(tthin,-180); pos6(tmed,-270); pos7(tthick,-360); pos8(tmed,-450);
+pos9(tthin,-540); pos10(tthin,0); pos11(tmed,5); pos12(tthin,10);
+pos13(tthick,10); pos14(tthick,0); pos15(tmed,-90); pos16(tthinner,-180);
+pos17(tmed,-250);
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e...z5e...{right}z6e
+ ...{down}z7e...{left}z8e...z9e;
+% pickup pencircle scaled .2pt;
+filldraw stroke z10e..z11e...{right}z12e;
+filldraw stroke z13e...z14e...{left}z15e...{up}z16e...{right}z17e...{down}z18e;
+penlabels(1,2,3,4,6,7,8,9,11,12,14,15,16,17,18);
+endchar;
+
+cmchar "tamil long e";
+beginchar(15,1.6x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x10=x4; bot y10r=-d; pos10(tthick,-90);
+x11=x9; bot y11r=0; pos11(tthick,-90);
+filldraw stroke z11e--z10e;
+penlabels(10);
+endchar;
+
+cmchar "tamil ng";
+beginchar(16,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil ai matra";
+beginchar(17,2x_height#,x_height#,0);
+adjust_fit(0,0);
+w:=3x_height;
+x1=x81=u; x6=.6x10; x8=.6[x1,x6]; x7=.5[x8,x6];
+x5=.5[x1,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
+x9=.5[x8,x10]; x10=.7w; x12=.6[x8,x10]; x11=.5[x12,x10];
+top y5r=top y9r=h;
+bot y4r=bot y7r=bot y11r=0;
+y2=y8=y6=y12=y10=.5h;
+y81=y1=y3=.5y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
+pos7(tmed,-450); pos8(tthin,-540); pos9(tmed,-630); pos10(tthicker,-720);
+pos11(tmed,-810); pos12(tthin,-900);
+x30=x11; y30=y10; x31=x12; bot y31r=0; pos30(tthick,-720); pos31(tmed,-790);
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z30e...z31e;
+penlabels(1,2,3,4,5,6,7,8,9,30,31);
+endchar;
+
+cmchar "tamil ngi";
+beginchar(18,1.85x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x40=x13; y40=y13; pos40(tthin,0); x41=x40; top y41l=h; pos41(tthick,-90);
+x50=x40-2u; y50=.5[y40,y41]; pos50(tmed,-30);
+x42=w-u; y42=x_height; x43=x42; y43=y43l=y43r=0; pos42(tthin,-180);
+x43r=x43-.6; x43l=x43+.6;
+filldraw stroke z40e{left}...{right}z41e...{down}z42e--z43e;
+penlabels(41,42,43,44);
+endchar;
+
+
+
+cmchar "tamil ngii";
+beginchar(19,1.75x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+small_iito(13,s,h);
+endchar;
+
+cmchar "tamil ngu";
+beginchar(20,1.5x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(40,12); y40=y40l=y40r=-d;
+filldraw stroke z12e--z40e;
+endchar;
+
+cmchar "tamil nguu";
+beginchar(21,1.85x_height#,x_height#,1.5desc_depth#);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(40,12); y40=y40l=y40r=-.5d;
+filldraw stroke z12e--z40e;
+x22=w-u; y22=.5y40; x21=.6[x12,x22]; y21=.25d;
+pos21(tthinner,-90); pos22(tthin,-180);
+x23=.7[x1,x12]; bot y23l=-d; pos23(tthick,-270);
+x24=x2; y24=-.5d; pos24(tthin,-360); x25=x7; y25=-.25d; pos25(tthinner,-450);
+x26=.5[x1,x12]; y26=-.5d; pos26(tthinnest,-540);
+filldraw stroke z40e{up}...{right}z21e...{down}z22e...{left}z23e...{up}z24e
+ ...{right}z25e...{down}z26e;
+penlabels(40,21,22,23,24,25,26);
+endchar;
+
+cmchar "tamil e matra";
+beginchar(22,1.4x_height#,body_height#,0);
+adjust_fit(0,0);
+x1=x3=x5=.6w; x2=x1-1.5u; x4=x1+1.5u; top y3l=bar_height;
+pos3(1.2tthin,-90); y2=y4=.5[y1,y3]; bot y1l=.25u; pos1(tthin,90);
+pos2(tthin,0); pos4(tmed,-180); y5=y1; pos5(tthin,-270);
+x6=u; y6=.5h; pos6(tthinner,-360); top y7l=h; x7=.5w; pos7(1.2tmed,-450);
+x8=w-u; y8=x_height; pos8(tthin,-540); x9=x8; y9=0; x9r=x9-.6; x9l=x9+.6;
+y9r=y9l=y9; x75=x7; bot y75l=0; pos75(tthin,-280);
+filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...z5e...{left}z75e
+ ...{up}z6e...{right}z7e...z8e--z9e;
+penlabels(1,2,3,4,5,75,6,7,8,9);
+endchar;
+
+cmchar "tamil long e matra";
+beginchar(23,1.4x_height#,body_height#,0);
+adjust_fit(0,0);
+x1=x3=x5=x10=x8=x12=w-2.5u; x2=x11=x1-1.5u; x4=x9=x1+1.5u; top y3l=bar_height;
+pos3(1.2tthin,-90); y2=y4=.5[y1,y3]; bot y1l=.25u; pos1(tthin,90);
+pos2(tthin,0); pos4(tmed,-180); y5=y1; pos5(tthin,-270);
+x6=u; y6=.5h; pos6(tthinner,-360); top y7l=h; x7=.55w; pos7(1.2tmed,-450);
+x75=x7; bot y75l=0; pos75(tthin,-280);
+top y8l=h-.25u; pos8(.8tmed,-460); y9=y11=.5[y8,y10]; y10=y8-y3+y1;
+y12=y8; pos9(tthin,-540); pos10(tthin,-630); pos11(tthinner,-720);
+pos12(tthinnest,-810);
+filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...z5e...{left}z75e
+ ...{up}z6e...{right}z7e...z8e...{down}z9e...{left}z10e...{up}z11e...z12e;
+penlabels(1,2,3,4,5,75,6,7,8,9,10,11,12);
+endchar;
+
+cmchar "Tamil c";
+beginchar(24,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u;
+filldraw stroke z25e---z26e;
+penlabels(26);
+endchar;
+
+cmchar "Tamil ci";
+beginchar(26,1.7x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u-.2x_height;
+filldraw stroke z25e---z26e;
+z45=z21; x46=x3; top y46r=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,270); pos46(tthick,90); pos47(tthinner,0);
+x48l=x48-.5; x48r=x48+.5; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+penlabels(26,46,47,48);
+endchar;
+
+cmchar "Tamil cii";
+beginchar(27,1.6x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u-.1x_height;
+filldraw stroke z25e---z26e;
+z45=z21; x46=x3; top y46r=h;
+pos45(tthinnest,270); pos46(tmed,90);
+x47=.6[x3,x4]; y47=.9[y3,y46]; x48=x4; y48=.5[y3,y46];
+y49=.3[y3,y46]; x49=x47; x50=.2[x3,x4]; y50=y48; z51=z47;
+pos47(.7tmed,45); pos48(tthinner,0); pos49(tthinnest,-90);
+pos50(tthinnest,-180); pos51(tthinnest,-225);
+filldraw stroke z45e{left}...{right}z46e...z47e...{down}z48e...{left}z49e...{up}z50e...z51e;
+penlabels(26,46,47,48,49,50);
+endchar;
+
+cmchar "Tamil cu";
+beginchar(28,1.65x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u;
+filldraw stroke z25e---z26e;
+x27=x28=.5[x25,x26]; y27=y26; y28=0; pos27(tmed,0); pos28(tmed,0);
+filldraw stroke z27e--z28e;
+penlabels(26,27,28);
+endchar;
+
+cmchar "Tamil cuu";
+beginchar(29,2x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=1.65x_height;
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u;
+filldraw stroke z25e---z26e;
+x27=x28=.5[x25,x26]; y27=y26; y28=0; pos27(tmed,0); pos28(tmed,0);
+filldraw stroke z27e--z28e;
+x40=x6; bot y40r=-d; pos40(tthick,-90);
+x41=-.25x_height; y41=y8; x42=x42l=x42r=x2; y42=y2; y42r=y42+.6; y42l=y42-.6;
+pos41(tthinner,-180);
+x48=x28; y48=0; pos48(tthinner,180); x49=w-u; y49=0; pos49(tthin,0);
+filldraw stroke z48e{up}...{down}z49e...{left}z40e...{up}z41e...{right}z42e;
+picture V; transform t; t=identity shifted(.35x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(26,27,28,40,41);
+endchar;
+
+cmchar "tamil ny";
+beginchar(32,2x_height#+2u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; bot y12l=-d; pos12(tthick,-270);
+x13=-.2x_height; y13=.3bar_height; pos13(tthin,-360); x14=x5-.75u; y14=y5; pos14(tthinner,-400);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...z14e;
+picture V; transform t; t=identity shifted(.3x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "tamil nyi";
+beginchar(34,2.2x_height#+2u#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; bot y12l=-d; pos12(tthick,-270);
+x13=-.2x_height; y13=.3bar_height; pos13(tthin,-360); x14=x5-.75u; y14=y5; pos14(tthinner,-400);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...z14e;
+x30=x8; y30=x_height; pos30(tthin,0); x31=x30; top y31l=h; pos31(tthick,-90);
+x33=x32=x11+2u; y32=x_height; y33=y33l=y33r=0; pos32(tthin,-180); x33l=x33+.6;
+x33r=x33-.6; filldraw stroke z30e{left}...{right}z31e...{down}z32e--z33e;
+picture V; transform t; t=identity shifted(.3x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "tamil nyii";
+beginchar(35,2x_height#+2u#,body_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; bot y12l=-d; pos12(tthick,-270);
+x13=-.2x_height; y13=.3bar_height; pos13(tthin,-360); x14=x5-.75u; y14=y5; pos14(tthinner,-400);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...z14e;
+small_iito(8,s,h);
+picture V; transform t; t=identity shifted(.3x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "tamil nyu";
+beginchar(36,2x_height#+u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; y12=-d; pos12(tthick,-270);
+x13=0; y13=-.3d; pos13(tthin,-360); x14=x13+.2u; y14=y13+.2u; pos14(tthin,-450);
+x15=x11+1.5u; y15=y14; pos15(tthin,-450);
+x16=x15; y16=y15r; pos16(tthick,0); x17=x16; y17=x_height; pos17(tthick,0);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...{right}z14e--z15e;
+filldraw stroke z16e--z17e;
+penlabels(10,11,12,13,14,15,16,17);
+endchar;
+
+
+cmchar "tamil nyuu";
+beginchar(37,2.4x_height#+2u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; y12=-d; pos12(tthick,-270);
+x13=0; y13=-.3d; pos13(tthin,-360); x14=x13+.2u; y14=y13+.2u; pos14(tthin,-450);
+x15=x11+2u; y15=y14; pos15(tthin,-450);
+x16=x15; y16=y15r; pos16(tthin,0); x17=x16; y17=x_height; pos17(tthin,0);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...{right}z14e--z15e;
+filldraw stroke z16e--z17e;
+w:=2.4x_height+2u;
+top y18r=y17; x18=x17l; pos18(tmed,90); y19=y18; x19=w-u; x40r=x19-u;
+y40=y17; x21=x40; y21=0; pos19(tmed,90); pos40(tmed,0); pos21(tmed,0);
+filldraw stroke z18e--z19e; filldraw stroke z40e--z21e;
+penlabels(10,11,12,13,14,15,16,17,18,19,40,21);
+endchar;
+
+cmchar "Tamil t dot";
+beginchar(40,1.75x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="T";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil t dot i";
+beginchar(42,1.75x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="T";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x5=.7[x3,x4]; bot y5r=0; pos5(tthin,270); x6=x5-1.5u; top y6r=h; pos6(tthick,90);
+x7=x5; y7=bar_height; pos7(tthin,0); x8=x7; y8=-d; pos8(tthinnest,0);
+x40=x1; y40=.6[y1,y2];
+filldraw stroke z5e{z40-z5}...{right}z6e...{down}z7e--z8e;
+penlabels(5,6,7,8); endchar;
+
+cmchar "Tamil t dot ii";
+beginchar(43,1.75x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="T";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x5=.7[x3,x4]; y5=0; pos5(tmed,180);
+small_iito(5,s,x_height);
+penlabels(5,6,7,8); endchar;
+
+cmchar "tamil t dot u";
+beginchar(44,1.6x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+x1=x2=.45w; y1=x_height; y2=0; pos1(tmed,0); pos2(tmed,0);
+x3r=x2r; y3=y2; pos3(tthinner,0); x5l=w-2.5u; y5=.5[y4,y6]; pos5(tthinner,-180);
+x4=.5[x3,x5]; y4=bar_height; pos4(tthin,-90);
+x6=x3; bot y6l=-d; pos6(tthick,-270); x7=u; y7=.5[y6,y8]; pos7(tthinner,-360);
+x8=x1+u; top y8l=h; pos8(tmed,-450); x9=x10=w-u; y9=y1; pos9(tthin,-540);
+y10=y10r=y10l=0; x10l=x10+.6; x10r=x10-.6;
+filldraw stroke z1e--z2e;
+filldraw stroke z3e{up}...{right}z4e...{down}z5e...{left}z6e...{up}z7e...{right}z8e...{down}z9e--z10e;
+penlabels(1,2,4,5,6,7,8,9,10);
+endchar;
+
+cmchar "tamil t dot uu";
+beginchar(45,1.6x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+x1=x2=.45w; y1=x_height; y2=0; pos1(tmed,0); pos2(tmed,0);
+x3r=x2r; y3=y2; pos3(tthinner,0); x5l=w-2.5u; y5=.5[y4,y6]; pos5(tthinner,-180);
+x4=.5[x3,x5]; y4=bar_height; pos4(tthin,-90);
+x6=x3; bot y6l=-d; pos6(tthick,-270); x7=u; y7=.5[y6,y8]; pos7(tthinner,-360);
+x8=x1+u; top y8l=h; pos8(tmed,-450); x9=w-3.5u; y9=asc_height-.25u;
+x10=x9+1.5u; y10=.5[y9,y11]; x11=x9; y11=y9-4u; x12=x9-1.5u; y12=y10;
+x13=x9; y13=y9; pos9(tthin,-470); pos10(tthin,-540); pos11(tthinner,-630);
+pos12(tthinnest,-720); x13l=x13r=x13; y13l=y13+.6; y13r=y13-.6;
+filldraw stroke z1e--z2e;
+filldraw stroke z3e{up}...{right}z4e...{down}z5e...{left}z6e...{up}z7e...{right}z8e
+ ...z9e...{down}z10e...{left}z11e...{up}z12e...{right}z13e;
+penlabels(1,2,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+cmchar "Tamil n dot";
+beginchar(48,2.8x_height#+u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+endchar;
+
+cmchar "Tamil n.aa";
+beginchar(49,2.8x_height#+3u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1; y23=.8x_height;
+pos21(tthick,-1080); pos22(tthin,-1170);
+y23l+.5=y23r-.5=y23; x23l=x23; x23r=x23-1;
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{right}z23e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+%penlabels(21,22,23);
+endchar;
+
+cmchar "Tamil n.i";
+beginchar(50,3x_height#+u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+x17=.5[x13,x14]; top y17l=x_height; x18=x17; top y18r=h;
+pos17(tthin,270); pos18(tthick,90);
+x20=x19=x14+u; y19=x_height; y20=y20r=y20l=0;
+pos19(tthin,0); x20l=x20-.6; x20r=x20+.6;
+filldraw stroke z17e{left}...{right}z18e...{down}z19e--z20e;
+penlabels(17,18,19,20);
+endchar;
+
+cmchar "Tamil n.ii";
+beginchar(51,3x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+x17=.5[x13,x14]; top y17l=x_height; pos17(tthin,270);
+small_iito(17,s,h);
+penlabels(17);
+endchar;
+
+cmchar "Tamil n.u";
+beginchar(52,2.8x_height#+3u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.6[x1,x21];
+x23=x1; y23=-.3d; x24=x23+.2u; y24=y23+.2u; x25=w-u; y25=y24;
+x27r=x26r=x25; y27=x_height; y26=y25r;
+pos21(tthin,-1080); pos22(tthick,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350); pos25(tthin,-1350);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e...{right}z24e--z25e;
+pos26(tmed,0); pos27(tmed,0); filldraw stroke z26e--z27e;
+penlabels(21,22,23,24,25,27);
+endchar;
+
+cmchar "Tamil n.uu";
+beginchar(53,3.6x_height#+u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=3x_height+u;
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.6[x1,x21];
+x23=x1; y23=-.3d; x24=x23+.2u; y24=y23+.2u; x25=w-u; y25=y24;
+x27r=x26r=x25; y27=x_height; y26=y25r;
+pos21(tthin,-1080); pos22(tthick,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350); pos25(tthin,-1350);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e...{right}z24e--z25e;
+pos26(tmed,0); pos27(tmed,0); filldraw stroke z26e--z27e;
+w:=3.6x_height+u; x28=x27l; top y28r=y27; y29=y28; y30=y27; x29=w-u; x30=x29-2u;
+x31=x30; y31=0;
+pos28(tthin,90); pos29(tthin,90); pos30(tthin,0); pos31(tthin,0);
+filldraw stroke z28e--z29e; filldraw stroke z30e--z31e;
+penlabels(21,22,23,24,25,27,28,29,30,31);
+endchar;
+
+
+
+cmchar "Tamil n dot ai";
+beginchar(54,3.8x_height#+u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+dodraw:=false;
+tspecs;
+dodraw:=true;
+h:=oldh; w:=oldw; d:=oldd;
+aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z10e
+ ...{left}z11e...{up}z12e...{right}z13e---z14e;
+filldraw stroke z15e---z16e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil t";
+beginchar(56,1.7x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=w-u; y62=.5y61; pos62(tthick,0);
+y63=y64=-.3d; lft y66l=-d; y65=.4[y64,y66];
+x63=x61; x64=x2; x65=u; x66=.7[x65,x64];
+pos63(tthin,-90); pos64(tthin,-90); pos65(tthinner,0);
+pos66(tthick,45);
+%filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e---z64e{left}...{down}z65e..z66e;
+filldraw stroke z66e...{up}z65e...{right}z64e---z63e{right}...{up}z62e...{left}z61e---z25e;
+penlabels(45,47,48,61,62,63,64,65,66);
+endchar;
+
+
+cmchar "Tamil ti";
+beginchar(58,1.85x_height#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% draw the i loop
+z45=z21; x46=x3; top y46r=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,270); pos46(tthick,90); pos47(tthinner,0);
+x48l=x48-.5; x48r=x48+.5; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=.5[x4,x48]; % note this is based on position of i-loop
+y62=.5y61; pos62(tthick,0);
+y63=y64=-.3d; lft y66l=-d; y65=.4[y64,y66];
+x63=x61; x64=x2; x65=u; x66=.7[x65,x64];
+pos63(tthinner,-90); pos64(tthinner,-90); pos65(tthinner,0);
+pos66(tthick,45);
+%filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e---z64e{left}...{down}z65e..z66e;
+filldraw stroke z66e...{up}z65e...{right}z64e---z63e{right}...{up}z62e...{left}z61e---z25e;
+penlabels(45,47,48,61,62,63,64,65,66);
+endchar;
+
+cmchar "Tamil tii";
+beginchar(59,1.65x_height#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% do the upper loop for ii
+z45=z21; x46=x3; top y46r=h;
+pos45(tthinnest,270); pos46(tmed,90);
+x47=.6[x3,x4]; y47=.9[y3,y46]; x48=x4; y48=.5[y3,y46];
+y49=.3[y3,y46]; x49=x47; x50=.2[x3,x4]; y50=y48; z51=z47;
+pos47(.7tmed,45); pos48(tthinner,0); pos49(tthinnest,-90);
+pos50(tthinnest,-180); pos51(tthinnest,-225);
+filldraw stroke z45e{left}...{right}z46e...z47e...{down}z48e...{left}z49e...{up}z50e...z51e;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=w-u; y62=.5y61; pos62(tthick,0);
+y63=y64=-.3d; lft y66l=-d; y65=.4[y64,y66];
+x63=x61; x64=x2; x65=u; x66=.7[x65,x64];
+pos63(tthin,-90); pos64(tthin,-90); pos65(tthinner,0);
+pos66(tthick,45);
+%filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e---z64e{left}...{down}z65e..z66e;
+filldraw stroke z66e...{up}z65e...{right}z64e---z63e{right}...{up}z62e...{left}z61e---z25e;
+penlabels(45,47,48,49,50,61,62,63,64,65,66);
+endchar;
+
+cmchar "Tamil tu";
+beginchar(60,2.2x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=w-2u;
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=.35[x4,x90]; y62=.5y61; pos62(tthick,0);
+x63=x7; y63=-d; x64=x8-2u; y64=.85[y63,y65]; y66=y65=-.3d;
+x65=.25[x64,x8]; x66=w-u;rt x67r=x66; y67=bot y66l; x90=x67; y90=x_height;
+pos63(tthin,-90); pos64(tthinner,-180); pos65(tthinner,-270);
+pos66(tthinner,-270); pos67(.8tthick,0); pos90(.8tthick,0);
+filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e...{up}z64e
+ ...{right}z65e---z66e;
+filldraw stroke z67e---z90e;
+picture V; transform t; t= identity shifted(2u,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(61,62,63,64,65,66,90);
+endchar;
+
+cmchar "Tamil tuu";
+beginchar(61,2.6x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=2.2x_height-2u;
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=.35[x4,x90]; y62=.5y61; pos62(tthick,0);
+x63=x7; y63=-d; x64=x8-2u; y64=.85[y63,y65]; y66=y65=-.3d;
+x65=.25[x64,x8]; x66=w-u;rt x67r=x66; y67=bot y66l; x90=x67; y90=x_height;
+pos63(tthin,-90); pos64(tthinner,-180); pos65(tthinner,-270);
+pos66(tthinner,-270); pos67(tthin,0); pos90(tthin,0);
+filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e...{up}z64e
+ ...{right}z65e---z66e;
+filldraw stroke z67e---z90e;
+w:=2.6x_height-2u;
+x201=x90l; top y201r=x_height; y202=y201; x202=w-u; pos201(tthin,90);
+pos202(tthin,90); x203=.6[x201,x202]; y203=x_height; x204=x203;
+y204=0; pos203(tmed,0); pos204(tmed,0);
+filldraw stroke z201e--z202e; filldraw stroke z203e--z204e;
+picture V; transform t; t= identity shifted(2u,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(61,62,63,64,65,66,90);
+endchar;
+
+cmchar "Tamil n";
+beginchar(64,1.5x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+endchar;
+
+cmchar "Tamil ni";
+beginchar(66,1.75x_height#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+% draw the i loop
+x45=.8[x5,x4]; top y45r=x_height; x46=x45; top y46l=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,90); pos46(tthick,-90); pos47(tthinner,-180);
+x48l=x48+.65; x48r=x48-.65; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+penlabels(45,46,47,48);
+endchar;
+
+cmchar "Tamil nii";
+beginchar(67,1.65x_height#,body_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+x31=x9l; y31=x_height; small_iito(31,s,h);
+endchar;
+
+cmchar "Tamil nu";
+beginchar(68,1.8x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+x70=.5[x1,x6]; y70=-d; x72=w-u; y72=y82; rt x73r=x72;
+y73=y72; x74=x73; y74=x_height;
+z81=z12; z82=z11; pos70(tthinner,-90); pos81(tthinner,-180);
+pos82(tthinner,-270); pos72(tthinner,-270);
+pos73(.8tthick,0); pos74(.8tthick,0);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z70e...{up}z81e
+ ...{right}z82e---z72e;
+filldraw stroke z73e--z74e;
+penlabels(70,72,73,74,81,82);
+endchar;
+
+cmchar "Tamil nuu";
+beginchar(69,2.1x_height#,x_height#,.5x_height#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+x70=.5[x1,x6]; y70=-d; x72=w-3u; y72=y82; rt x73r=x72;
+y73=y72; x74=x73; y74=x_height;
+z81=z12; z82=z11; pos70(tthinner,-90); pos81(tthinner,-180);
+pos82(tthinner,-270); pos72(tthinner,-270);
+pos73(tthinner,0); pos74(tthinner,0);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z70e...{up}z81e
+ ...{right}z82e---z72e;
+filldraw stroke z73e--z74e;
+top y90r=x_height; x90=lft x73l; x91=w-u; y91=y90;
+pos90(tthinner,90); pos91(tthinner,90); filldraw stroke z90e--z91e;
+rt x92r=x91; y92=x_height; y93=0; x93=x92;
+pos92(.8tthick,0); pos93(.8tthick,0); filldraw stroke z92e--z93e;
+penlabels(70,72,73,74,81,82,90,91,92,93);
+endchar;
+
+cmchar "Tamil p";
+beginchar(72,1.4x_height#+u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil pi";
+beginchar(74,1.5x_height#+2u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; top y7l=h; pos7(tthick,-90); x8=x9=w-u; y8=x_height; y9=y9r=y9l=0;
+x9r=x9-.6; x9l=x9+.6; pos8(tthin,-180);
+filldraw stroke z6e{left}...{right}z7e...{down}z8e--z9e;
+penlabels(7,8,9); endchar;
+
+cmchar "Tamil pii";
+beginchar(75,1.4x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; x7r=x6l; x7l=x6r; cloney(7,6);
+small_iito(7,s,h);
+endchar;
+
+cmchar "Tamil pu";
+beginchar(76,1.4x_height#+u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(7,5); y7r=y7l=y7=-d; filldraw stroke z5e--z7e;
+endchar;
+
+cmchar "Tamil puu";
+beginchar(77,1.4x_height#+4u#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(7,5); y7r=y7l=y7=-.5d; filldraw stroke z5e--z7e;
+x8=x7; y8=y7; pos8(tthin,0); x10=w-u; y10=.5[y9,y11]; pos10(tthin,-180);
+x9=.5[x8,x10]; top y9l=0; pos9(tthin,-90); x11=.5[x1,x10]; y11=-d;
+x12=x1; y12=-.4d; x13=.25[x1,x4]; y13=-.2d; x14=.5[x1,x4]; y14=-.45d;
+pos11(tthick,-270); pos12(tthin,-360); pos13(tthin,-450); pos14(tthinner,-540);
+filldraw stroke z8e{up}...{right}z9e...{down}z10e...{left}z11e...{up}z12e
+ ...{right}z13e...{down}z14e;
+endchar;
+
+cmchar "Tamil m";
+beginchar(80,1.6x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil mi";
+beginchar(82,1.85x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x10=x6; top y10l=h; y11=x_height; x12=x11=w-u; y12=0;
+pos10(tthick,-90); pos11(tthin,-180); y12r=y12l=y12;
+x12r=x12-.6; x12l=x12+.6;
+filldraw stroke z6e{left}...{right}z10e...{down}z11e--z12e;
+penlabels(10,11,12); endchar;
+
+cmchar "Tamil mii";
+beginchar(83,1.6x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x10=x6; y10l=x_height; x10r=x10-.6; x10l=x10+.6; y10=y10l-.6; y10r=y10-.6;
+small_iito(10,s,h);
+endchar;
+
+cmchar "Tamil mu";
+beginchar(84,2.2x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=1.6x_height;
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x8; y9=0; pos9(tthick,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=x1-.5u; y12l=h;
+pos11(tthin,-360); x12l=x12r=x12; y12=y12l-.6; y12r=y12-.6;
+filldraw stroke z9e{down}...{left}z10e...{up}z11e...{right}z12e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+
+cmchar "Tamil muu";
+beginchar(85,2.2x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=1.6x_height;
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x8; y9=0; pos9(tthick,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=x1-2.5u; y12l=h;
+pos11(tthin,-360); pos12(tthinnest,-450);
+x13=x12+u; y14=y12-u; x14=x13-2u; y14=y13;
+pos13(tthinnest,-540); x14l=x14-.6; x14r=x14+.6; y14r=y14l=y14;
+filldraw stroke z9e{down}...{left}z10e...{up}z11e...{right}z12e...{down}z13e...{z14-z2}z14e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+cmchar "Tamil y";
+beginchar(88,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil yi";
+beginchar(90,1.9x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x20=x9; y20l=h; pos20(tthick,-90); x21=w-u; y21=x_height; pos21(tthin,-180);
+x22=x21; y22=y22l=y22r=0; x22r=x22-.6; x22l=x22+.6;
+filldraw stroke z9e{left}...{right}z20e...{down}z21e--z22e;
+penlabels(20,21,22); endchar;
+
+cmchar "Tamil yii";
+beginchar(91,1.65x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x20=x9; y20=y9; pos20(tthin,180);
+small_iito(20,s,h);
+endchar;
+
+cmchar "Tamil yu";
+beginchar(92,1.5x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(20,10); y20=y20l=y20r=-d;
+filldraw stroke z10e--z20e;
+penlabels(20); endchar;
+
+cmchar "Tamil yuu";
+beginchar(93,1.75x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(20,10); y20=y20l=y20r=-.5d;
+filldraw stroke z10e--z20e;
+x22=w-u; y22=0; x21=.6[x10,x22]; y21=.25d;
+pos21(tthinner,-90); pos22(tthin,-180);
+x23=.7[x7,x8]; y23=-1.2d; pos23(tthick,-270);
+x24=x2; y24=-.5d; pos24(tthin,-360); x25=x7; y25=-.25d; pos25(tthinner,-450);
+x26=.5[x7,x8]; y26=-.5d; pos26(tthinnest,-540);
+filldraw stroke z20e{up}...{right}z21e...{down}z22e...{left}z23e...{up}z24e
+ ...{right}z25e...{down}z26e;
+penlabels(20,21,22,23,24,25,26); endchar;
+
+cmchar "Tamil r";
+beginchar(96,.9x_height#+2u#,x_height#,.75desc_depth#);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; bot y7l=y6; x8=x1; bot y8l=-d;
+pos7(tthin,90); pos8(tthin,90);
+filldraw stroke z7e--z8e;
+penlabels(7,8); endchar;
+
+cmchar "Tamil aa matra";
+beginchar(97,.9x_height#+2u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil ri";
+beginchar(98,.9x_height#+3.5u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=.5[x5,x4]; y7=y5; x8=x7; top y8r=h; x9=x10=w-u; y9=x_height; y10=0;
+pos7(tthinner,-90); pos8(tthick,90); pos9(tthin,0);
+x10l=x10-.6; x10r=x10+.6; y10r=y10l=0;
+filldraw stroke z7e{left}...{right}z8e...{down}z9e--z10e;
+penlabels(7,8,9,10); endchar;
+
+cmchar "Tamil rii";
+beginchar(99,.9x_height#+2.5u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=.5[x5,x4]; y7=x_height; pos7(tthinner,-90);
+small_iito(7,s,body_height);
+penlabels(7,8,9,10); endchar;
+
+cmchar "Tamil ru";
+beginchar(100,.9x_height#+7u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; y7=y6; x8=.7[x5,x4]; top y8l=bar_height; pos8(tthick,-90);
+pos7(tthin,0); x9=1.4[x5,x4]; y9=0; pos9(tthin,-180);
+x10=.7[x1,x6]; bot y10l=-d; pos10(tthinner,-270); x11=x1-4u; y11=.5bar_height;
+pos11(tthinner,-360); x12=x2-u; top y12l=x_height; pos12(tthinnest,-450);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{up}z11e...{right}z12e;
+picture V; transform t; t=identity shifted(3.75u,0);
+V=currentpicture transformed t; currentpicture:= V;
+penlabels(7,8,9,10,11,12); endchar;
+
+
+cmchar "Tamil ruu";
+beginchar(101,.9x_height#+9u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; y7=y6; x8=.7[x5,x4]; top y8l=bar_height; pos8(tthick,-90);
+pos7(tthin,0); x9=1.4[x5,x4]; y9=0; pos9(tthin,-180);
+x10=.7[x1,x6]; bot y10l=-d; pos10(tthinner,-270); x11=x1-6u; y11=.5bar_height;
+pos11(tthinner,-360); x12=.5[x11,x2]; top y12l=x_height; pos12(tthin,-450);
+x13=.8[x11,x2]; y13=y12-1.5u; x14=.3[x11,x2]; y14=y12-3u;
+pos13(tthin,-540); pos14(tthinner,-600);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{up}z11e...{right}z12e
+ ...{down}z13e...z14e;
+picture V; transform t; t=identity shifted(5.75u,0);
+V=currentpicture transformed t; currentpicture:= V;
+penlabels(7,8,9,10,11,12); endchar;
+
+
+cmchar "Tamil l";
+beginchar(104,1.4x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x11=x9; top y11r=h; x12=x11+.5u; y12=y11-.25u; pos11(tthick,90); pos12(.7tthick,60);
+x13=x12; y13=x12-2u; pos13(tthin,-90); x14r=x14l=x14=x12; y14=y12; y14r=y14+1; y14l=y14-1;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e;
+endchar;
+
+cmchar "Tamil li";
+beginchar(106,1.6x_height#+2u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x11=x10; top y11r=h; pos11(tthick,90); x13=x12=w-u; y12=x_height;
+y13r=y13l=y13=0; x13l=x13-.6; x13r=x13+.6; pos12(tthin,0);
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e...{right}z11e...{down}z12e--z13e;
+%filldraw stroke z10e...{right}z11e...{down}z12e--z13e;
+penlabels(11,12,13);
+endchar;
+
+cmchar "Tamil lii";
+beginchar(107,1.5x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x11=x9; top y11r=h; x12=x11+.5u; y12=y11-.25u; pos11(tthick,90); pos12(.7tthick,60);
+x13=x12; y13=x12-2u; pos13(tthin,-90); x14r=x14l=x14=x12; y14=y12; y14r=y14+1; y14l=y14-1;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e...{right}z11e..z12e...{left}z13e...{right}z14e;
+%small_iito(10,s,h);
+endchar;
+
+cmchar "Tamil lu";
+beginchar(108,2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e;
+z21=z8; pos21(tthin,0); x22=.15[x5,x21]; bot y22r=-d; pos22(tthick,-90);
+x23=x81-u; y23=-.4d; x24=x23+.5u; y24=y23+.5u; pos23(tthin,-180); pos24(tthin,-270);
+x25=w-u; y25=y24; pos25(tthin,-270); x26r=x25; x27=x26; pos26(tmed,0);
+y26=y25l; y27=x_height; pos27(tmed,0);
+filldraw stroke z21e{down}...{left}z22e...{up}z23e...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+penlabels(21,22,23,24,25,26,27);
+endchar;
+
+cmchar "Tamil luu";
+beginchar(109,2.4x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+w:=1.9x_height;
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e;
+z21=z8; pos21(tthin,0); x22=.15[x5,x21]; bot y22r=-d; pos22(tthick,-90);
+x23=x81-u; y23=-.4d; x24=x23+.5u; y24=y23+.5u; pos23(tthin,-180); pos24(tthin,-270);
+x25=w-u; y25=y24; pos25(tthin,-270); x26r=x25; x27=x26; pos26(tthin,0);
+y26=y25l; y27=x_height; pos27(tthin,0);
+filldraw stroke z21e{down}...{left}z22e...{up}z23e...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+w:=2.4x_height;
+x28=x27l; y28r=y27; y29=y28; x29=w-u; pos28(tthin,90); pos29(tthin,90);
+filldraw stroke z28e--z29e;
+x31=x30=.65[x28,x29]; y30=y27; y31=0; pos30(tmed,0); pos31(tmed,0);
+filldraw stroke z30e--z31e;
+penlabels(21,22,23,24,25,26,27,28,29,30);
+endchar;
+
+cmchar "Tamil lai";
+beginchar(110,2.8x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e...{up}z81e...{right}z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e...{left}z10e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+
+
+cmchar "Tamil v";
+beginchar(112,1.4x_height#+2u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil vi";
+beginchar(114,1.65x_height#+2u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x21r=x10l; x21l=x10r; x21=x10; cloney(21,10);
+x11=x10; top y11r=h; pos11(tthick,90); x13=x12=w-u; y12=x_height;
+y13r=y13l=y13=0; x13l=x13-.6; x13r=x13+.6; pos12(tthin,0);
+filldraw stroke z21e{left}...{right}z11e...{down}z12e--z13e;
+penlabels(11,12,13);
+endchar;
+
+cmchar "Tamil vii";
+beginchar(115,1.5x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21r=x10l; x21l=x10r; x21=x10; cloney(21,10); small_iito(21,s,h);
+endchar;
+
+cmchar "Tamil vu";
+beginchar(116,1.5x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(11,9); y11r=y11l=y11=-d; filldraw stroke z9e--z11e;
+penlabels(11); endchar;
+
+cmchar "Tamil vuu";
+beginchar(117,1.5x_height#+3u#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(11,9); y11r=y11l=y11=-.5d; filldraw stroke z9e--z11e;
+x18=x11; y18=y11; pos18(tthin,0); x20=w-u; y20=.5[y19,y21]; pos20(tthin,-180);
+x19=.5[x18,x20]; top y19l=0; pos19(tthin,-90); x21=.5[x1,x20]; y21=-d;
+x22=x1; y22=-.4d; x23=.25[x1,x9]; y23=-.2d; x24=.5[x1,x9]; y24=-.45d;
+pos21(tthick,-270); pos22(tthin,-360); pos23(tthin,-450); pos24(tthinner,-540);
+filldraw stroke z18e{up}...{right}z19e...{down}z20e...{left}z21e...{up}z22e
+ ...{right}z23e...{down}z24e;
+penlabels(11); endchar;
+
+cmchar "Tamil z";
+beginchar(120,1.6x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x9r=x9l=x5; y9=-.3d; y9l=y9+.6;y9r=y9-.6; filldraw stroke z8e{down}...{right}z9e;
+x90l=x9l; y90l=y9l; pos90(tthin,-170);
+x10=.4[x1,x5]; bot y10r=-d; x11=x1; y11=.3[y9,y10]; pos10(tthick,-90); pos11(tthin,-180);
+x12=.25[x2,x5]; y12=.5[y2,y11]; pos12(tthinner,40);
+filldraw stroke z9e{left}...{left}z10e...{up}z11e...z12e;
+penlabels(9,10,11,12);
+endchar;
+
+cmchar "Tamil zi";
+beginchar(122,1.9x_height#,asc_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x9r=x9l=x5; y9=-.3d; y9l=y9+.6;y9r=y9-.6; filldraw stroke z8e{down}...{right}z9e;
+x90l=x9l; y90l=y9l; pos90(tthin,-170);
+x10=.4[x1,x5]; bot y10r=-d; x11=x1; y11=.3[y9,y10]; pos10(tthick,-90); pos11(tthin,-180);
+x12=.25[x2,x5]; y12=.5[y2,y11]; pos12(tthinner,40);
+filldraw stroke z9e{left}...{left}z10e...{up}z11e...z12e;
+x30=x6; top y30l=h; y31=x_height; x32=x31=w-u; y32=0;
+pos30(tthick,-90); pos31(tthin,-180); y32r=y32l=y32;
+x32r=x32-.6; x32l=x32+.6;
+filldraw stroke z6e{left}...{right}z30e...{down}z31e--z32e;
+penlabels(9,10,11,12,30,31,32);
+endchar;
+
+cmchar "Tamil zii";
+beginchar(123,1.6x_height#,body_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x9r=x9l=x5; y9=-.3d; y9l=y9+.6;y9r=y9-.6; filldraw stroke z8e{down}...{right}z9e;
+x90l=x9l; y90l=y9l; pos90(tthin,-170);
+x10=.4[x1,x5]; bot y10r=-d; x11=x1; y11=.3[y9,y10]; pos10(tthick,-90); pos11(tthin,-180);
+x12=.25[x2,x5]; y12=.5[y2,y11]; pos12(tthinner,40);
+filldraw stroke z9e{left}...{left}z10e...{up}z11e...z12e;
+small_iito(6,s,h);
+penlabels(9,10,11,12);
+endchar;
+
+cmchar "Tamil zu";
+beginchar(124,2.2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(88,8); y88r=y88l=y88=-.5d; filldraw stroke z8e--z88e;
+x9=x88; y9=y88; pos9(tthin,-360); x99=x4; y99=y9; pos99(tthin,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=x1-.5u; y12l=h;
+pos11(tthin,-360); x12l=x12r=x12; y12=y12l-.6; y12r=y12-.6;
+filldraw stroke z9e{up}...{down}z99e...{left}z10e...{up}z11e...{right}z12e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+cmchar "Tamil zuu";
+beginchar(125,2.2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(88,8); y88r=y88l=y88=-.5d; filldraw stroke z8e--z88e;
+x9=x88; y9=y88; pos9(tthin,-360); x99=x4; y99=y9; pos99(tthin,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=.5[x11,x1]; top y12l=h;
+pos11(tthin,-360); pos12(tthin,-450); x13=.8[x11,x1]; y13=y12-1.5u;
+pos13(tthin,-540); x14=.3[x11,x1]; y14=y13-1.5u; pos14(tthinner,-600);
+filldraw stroke z9e{up}...{down}z99e...{left}z10e...{up}z11e...{right}z12e
+ ...{down}z13e...z14e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+
+
+cmchar "Tamil l dot";
+beginchar(128,1.75x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil l dot i";
+beginchar(130,1.75x_height#+2u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y13=y12; x13=x12r; x14=x13; top y14r=h; x15=x16=w-u; y15=y12; y16l=y16r=y16=0;
+x16l=x16-.6; x16r=x16+.6; pos13(tthin,180); pos14(tthick,90); pos15(tthin,0);
+filldraw stroke z13e{left}...{right}z14e...{down}z15e--z16e;
+penlabels(14,15,16); endchar;
+
+cmchar "Tamil l dot ii";
+beginchar(131,1.75x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y13=y12; x13=x12r;
+pos13(tthin,0);
+small_iito(13,s,h);
+endchar;
+
+cmchar "Tamil l dot u";
+beginchar(132,2.05x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=2.05x_height; d:=oldd;
+x31=x11; y31=0; pos31(tthin,0); x33=w-u; y33=.5[y32,y34]; pos33(tthin,-180);
+x32=.5[x31,x33]; y32=bar_height; pos32(tthin,-90);
+x35=x1-3u; y35=.5[y1,y2]; pos35(tthin,-360); x34=.5[x35,x33]; bot y34l=-d;
+pos34(tthick,-270); x36=x1; y36=y5; x36r=x36+.6; x36l=x36-.6;
+y36r=y36-.6; y36l=y36+.6;
+filldraw stroke z31e{up}...{right}z32e...{down}z33e...{left}z34e...{up}z35e..{right}z36e;
+picture V; transform t; t=identity shifted(3u,0); V=currentpicture transformed t;
+currentpicture:=V;
+endchar;
+
+cmchar "Tamil l dot uu";
+beginchar(133,2.05x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=2.05x_height; d:=oldd;
+x31=x11; y31=0; pos31(tthin,0); x33=w-u; y33=.5[y32,y34]; pos33(tthin,-180);
+x32=.5[x31,x33]; y32=bar_height; pos32(tthin,-90);
+x35=x1-3u; y35=.5[y1,y2]; pos35(tthin,-360); x34=.5[x35,x33]; bot y34l=-d;
+pos34(tthick,-270); x36=.5[x35,x1]; top y36l=h; pos36(tthin,-450);
+x37=.9[x35,x1]; y37=y36-u; pos37(tthin,-540); x38=.3[x35,x1]; y38=y37-u;
+pos38(tthinner,-600);
+filldraw stroke z31e{up}...{right}z32e...{down}z33e...{left}z34e...{up}z35e..{right}z36e
+ ...{down}z37e...z38e;
+picture V; transform t; t=identity shifted(3u,0); V=currentpicture transformed t;
+currentpicture:=V;
+endchar;
+
+cmchar "Tamil l dot ai";
+beginchar(134,2.75x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+dodraw:=false;
+tspecs;
+dodraw:=true;
+h:=oldh; w:=oldw; d:=oldd;
+aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e...{up}z1e...{right}z5e...{down}z6e;
+filldraw stroke z7e---z8e; filldraw stroke z9e---z10e;
+filldraw stroke z11e---z12e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil alv. r";
+beginchar(136,1.3x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+endchar;
+
+cmchar "Tamil alv. raa";
+beginchar(137,1.3x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x77=x7; y77=.4[y6,y7]; pos77(tthin,-180);
+x7:=x7-u; x7r:=x7r-u; x7l:=x7l-u;
+x88=x77; y88=0; pos88(tthin,-180);
+x31=x5; bot y31l=-d; x32=-2u; y32=.3bar_height;
+pos31(tthick,-270); pos32(tthin,-360);
+x33=x33r=x33l=x11-.5u; y33=y11; y33l=y33+.6; y33r=y33-.6;
+filldraw stroke z4e{up}...{right}z6e...{down}z77e...{down}z7e...{down}z88e...{left}z31e...{up}z32e...z33e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil alv. ri";
+beginchar(138,1.7x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+x77=x6; top y77r=h; pos77(tthick,-270);
+x78=w-u; y78=x_height; x79=x78; y79=y79r=y79l=0;
+x79r=x79+.6; x79l=x79-.6; pos78(tthin,-360);
+filldraw stroke z6e{left}...{right}z77e...{down}z78e--z79e;
+endchar;
+
+cmchar "Tamil alv. rii";
+beginchar(139,1.3x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+small_iito(6,s,h);
+endchar;
+
+cmchar "Tamil alv. ru";
+beginchar(140,1.75x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x77=x7; y77=y7; pos77(tthin,-180);
+x31=x5; bot y31l=-d; x32=x1; y32=-.5d; y33=y32+.5u; x33=x32+.5u; x34=w-u; y34=y33;
+pos31(tthick,-270); pos32(tthin,-360); pos33(tthin,-450); pos34(tthin,-450);
+filldraw stroke z4e{up}...{right}z6e...{down}z77e...{left}z31e...{up}z32e...{right}z33e--z34e;
+x35r=x34; y35=y34r; x36=x35; y36=x_height; pos35(tthick,0); pos36(tthick,0);
+filldraw stroke z35e--z36e;
+endchar;
+
+cmchar "Tamil alv. ruu";
+beginchar(141,2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x77=x7; y77=y7; pos77(tthin,-180);
+x31=x5; bot y31l=-d; x32=x1; y32=-.5d; y33=y32+.5u; x33=x32+.5u; x34=w-3.3u; y34=y33;
+pos31(tthick,-270); pos32(tthin,-360); pos33(tthin,-450); pos34(tthin,-450);
+filldraw stroke z4e{up}...{right}z6e...{down}z77e...{left}z31e...{up}z32e...{right}z33e--z34e;
+x35r=x34; y35=y34r; x36=x35; y36=x_height; pos35(tthin,0); pos36(tthin,0);
+filldraw stroke z35e--z36e;
+x37=x36l; top y37r=x_height; x38=w-.3u; y38=y37; pos37(tthin,90); pos38(tthin,90);
+filldraw stroke z37e--z38e;
+x39r=x38-.7u; y39=x_height; x40=x39; y40=0; pos39(tthick,0); pos40(tthick,0);
+filldraw stroke z39e--z40e;
+endchar;
+
+
+cmchar "Tamil 2loop n";
+beginchar(144,2x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+endchar;
+
+cmchar "Tamil 2loop naa";
+beginchar(145,2x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=2x_height;
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1; y23=.8x_height;
+pos21(tthick,-1080); pos22(tthin,-1170);
+y23l+.5=y23r-.5=y23; x23l=x23; x23r=x23-1;
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{right}z23e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+
+
+cmchar "Tamil 2loop ni";
+beginchar(146,2.25x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+x21=x16; y21=x_height; pos21(tthin,0); x22=x21; top y22l=h; pos22(tthick,-90);
+x23=w-u; y23=x_height; x24=x23; y24=y24l=y24r=0; x24r=x24-.6; x24l=x24+.6;
+pos23(tthin,-180);
+filldraw stroke z21e{left}...{right}z22e...{down}z23e--z24e;
+penlabels(22,23,24);
+endchar;
+
+cmchar "Tamil 2loop nii";
+beginchar(147,2x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+small_iito(16,s,h);
+endchar;
+
+cmchar "Tamil 2loop nu";
+beginchar(148,2.5x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=2x_height;
+callchar:="N";
+tspecs;
+h:=oldh; w:=2.5x_height; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1-3u; y23=-.43d; x24=x23+u; y24=-.25d;
+pos21(tthick,-1080); pos22(tthin,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350);
+y25=y24; x25=w-2u; pos25(tthin,-1350);
+rt x26r=x25; y26=y25; pos26(tthick,0); x27=x26; y27=h; pos27(tthick,0);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e{up}...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil 2loop nuu";
+beginchar(149,2.8x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=2x_height;
+callchar:="N";
+tspecs;
+h:=oldh; w:=2.5x_height; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1-3u; y23=-.43d; x24=x23+u; y24=-.25d;
+pos21(tthick,-1080); pos22(tthin,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350);
+y25=y24; x25=w-3u; pos25(tthin,-1350);
+rt x26r=x25; y26=y25; pos26(tthin,0); x27=x26; y27=h; pos27(tthin,0);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e{up}...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+w:=2.8x_height;
+x28=lft x27l; top y28r=h; x29=w-u; y29=y28; pos28(tthin,90); pos29(tthin,90);
+rt x30r=x29-.7u; y30=h; x31=x30; y31=0; pos30(tthick,0); pos31(tthick,0);
+filldraw stroke z28e--z29e; filldraw stroke z30e--z31e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil 2loop n ai";
+beginchar(150,3x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+dodraw:=false;
+tspecs;
+dodraw:=true;
+h:=oldh; w:=oldw; d:=oldd;
+aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z13e---z14e;
+filldraw stroke z15e---z16e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "grantha s dot";
+beginchar(176,2.2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="S";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "grantha s dot i";
+beginchar(178,2.5x_height#,body_height#+2u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="S";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x50=x44; y50=y44; pos50(tthin,90);
+x51=x50; top y51l=h; pos51(tthick,-90);
+x52=x53=w-u; y52=x_height; y53=y53r=y53l=0; pos52(tthin,-180);
+x53r=x53-.6; x53l=x53+.6;
+filldraw stroke z50e{left}...{right}z51e...{down}z52e--z53e;
+penlabels(50,51,52,53);
+endchar;
+
+cmchar "grantha s dot ii";
+beginchar(179,2.4x_height#,body_height#+4u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="S";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x50=x44; y50=y44; pos50(tthin,0);
+small_iito(50,s,h);
+endchar;
+
+cmchar "grantha s";
+beginchar(184,2.4x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="s";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "grantha si";
+beginchar(186,2.6x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="s";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z82=z16; x83=x16; top y83l=h; pos82(tthin,45); pos83(tthick,-90);
+x85=x84=w-u; y84=x_height; y85=y85r=y85l=0; x85r=x85-.6; x85l=x85+.6;
+pos84(tthin,-180);
+filldraw stroke z82e{left}...{right}z83e...{down}z84e--z85e;
+penlabels(83,84,85);
+endchar;
+
+cmchar "grantha sii";
+beginchar(187,2.4x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="s";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x100=x16-2.5u; x101=x16+.5u; top y101l=h; pos101(tthick,-90);
+y100=.5[y16,y101]; pos100(tthin,0);
+x102=x101+u; y102=y101-.5u; pos102(.7tthick,-135); x103=x102;
+y103=y102-2u; pos103(tthin,-270); x104=x104r=x104l=x102;
+y104=y101; y104r=y104-.6; y104l=y104+.6;
+filldraw stroke z16e{left}...{up}z100e...{right}z101e...z102e...{left}z103e...{right}z104e;
+endchar;
+
+cmchar "grantha j";
+beginchar(192,1.75x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+callchar:="j";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+
+cmchar "grantha ji";
+beginchar(194,2.05x_height#,asc_height#,.8x_height#);
+adjust_fit(0,0);
+callchar:="j";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z182=z10; x183=x10; top y183l=h; pos182(tthin,90); pos183(tthick,-90);
+x185=x184=w-u; y184=x_height; y185=y185r=y185l=0; x185r=x185-.6; x185l=x185+.6;
+pos184(tthin,-180);
+filldraw stroke z182e{left}...{right}z183e...{down}z184e--z185e;
+penlabels(183,184,185);
+endchar;
+
+cmchar "grantha jii";
+beginchar(195,1.75x_height#,body_height#,.8x_height#);
+adjust_fit(0,0);
+callchar:="j";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z82=z10; pos82(tthinner,0); small_iito(82,s,h);
+endchar;
+
+
+
+
+
+cmchar "grantha h";
+beginchar(200,3x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="h";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+
+cmchar "grantha hi";
+beginchar(202,3.2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="h";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z180=z106; pos180(tthin,90); x181=x180; top y181l=h; pos181(tthick,-90);
+x182=x183=w-u; y182=x_height; y183=y183r=y183l=0; pos182(tthin,-180);
+x183r=x183-.6; x183l=x183+.6;
+filldraw stroke z180e{left}...{right}z181e...{down}z182e--z183e;
+penlabels(180,181,182,183);
+endchar;
+
+cmchar "grantha hii";
+beginchar(203,3x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="h";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+small_iito(106,s,h);
+endchar;
+
+cmchar "grantha ksh";
+beginchar(208,3.6x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y202=y25; x202=x4+2.5u; pos202(tthin,90); x241r=w-u;
+x206=.4[x202,x241]; x207=.3[x202,x241]; x205=.2[x202,x241];
+top y205r=x_height; pos205(tthin,-270); y206=.5[y205,y207]; pos206(tthick,-360);
+bot y207r=0; pos207(tmed,-450); x240=.8[x207,x241]; bot y240r=0;
+pos240(tmed,-450); y241=.5bar_height; pos241(tthick,-360);
+x243=.5[x207,x240]; y243=h-y241; z242=.5[z241,z243];
+pos242(.5(tthick+tthin),-315); pos243(tthin,-360);
+x244=.5[x243,x245]; top y244l=h; pos244(tmed,-450); x245=x243+4u; y245=y243;
+pos245(tthin,-540); x246=.5[x207,x243]; bot y246l=-d; pos246(tthinner,-585);
+x203=.4[x202,x207]; y203=.5[y202,y204]; pos203(tthick,0); x204=x202;
+bot y204r=0; pos204(tthin,-90); x201=2x202-x203; y201=y203; pos201(tthin,-180);
+filldraw stroke z25e--z202e{right}...{down}z203e...{left}z204e...z201e...{right}z205e
+ ...{down}z206e...{left}z207e;
+filldraw stroke z207e--z240e{right}...{up}z241e...{z243-z241}z242e...{up}z243e
+ ...{right}z244e...z245e--z246e;
+endchar;
+
+cmchar "grantha kshi";
+beginchar(210,3.6x_height#+2.6u#,body_height#+2u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=3.6x_height; d:=oldd;
+y202=y25; x202=x4+2.5u; pos202(tthin,90); x241r=w-u;
+x206=.4[x202,x241]; x207=.3[x202,x241]; x205=.2[x202,x241];
+top y205r=x_height; pos205(tthin,-270); y206=.5[y205,y207]; pos206(tthick,-360);
+bot y207r=0; pos207(tmed,-450); x240=.8[x207,x241]; bot y240r=0;
+pos240(tmed,-450); y241=.5bar_height; pos241(tthick,-360);
+x243=.5[x207,x240]; y243=asc_height-y241; z242=.5[z241,z243];
+pos242(.5(tthick+tthin),-315); pos243(tthin,-360);
+x244=.5[x243,x245]; top y244l=asc_height; pos244(tmed,-450); x245=x243+4u; y245=y243;
+pos245(tthin,-540); x246=.5[x207,x243]; bot y246l=-d; pos246(tthinner,-585);
+x203=.4[x202,x207]; y203=.5[y202,y204]; pos203(tthick,0); x204=x202;
+bot y204r=0; pos204(tthin,-90); x201=2x202-x203; y201=y203; pos201(tthin,-180);
+filldraw stroke z25e--z202e{right}...{down}z203e...{left}z204e...z201e...{right}z205e
+ ...{down}z206e...{left}z207e;
+filldraw stroke z207e--z240e{right}...{up}z241e...{z243-z241}z242e...{up}z243e
+ ...{right}z244e...z245e--z246e;
+w:=oldw;
+x250=x244; top y250l=asc_height; pos250(tthin,-90); x251=x245; top y251=h;
+pos251(tthick,90); x252=w-u; y252=x_height; pos252(tthin,0); x253=x252;
+y253=y253r=y253l=0; x253l=x253-.6; x253r=x253+.6;
+filldraw stroke z250e{left}...{right}z251e...{down}z252e--z253e;
+endchar;
+
+cmchar "grantha kshii";
+beginchar(211,3.6x_height#,body_height#+4u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y202=y25; x202=x4+2.5u; pos202(tthin,90); x241r=w-u;
+x206=.4[x202,x241]; x207=.3[x202,x241]; x205=.2[x202,x241];
+top y205r=x_height; pos205(tthin,-270); y206=.5[y205,y207]; pos206(tthick,-360);
+bot y207r=0; pos207(tmed,-450); x240=.8[x207,x241]; bot y240r=0;
+pos240(tmed,-450); y241=.5bar_height; pos241(tthick,-360);
+x243=.5[x207,x240]; y243=asc_height-y241; z242=.5[z241,z243];
+pos242(.5(tthick+tthin),-315); pos243(tthin,-360);
+x244=.5[x243,x245]; top y244l=asc_height; pos244(tmed,-450); x245=x243+4u; y245=y243;
+pos245(tthin,-540); x246=.5[x207,x243]; bot y246l=-d; pos246(tthinner,-585);
+x203=.4[x202,x207]; y203=.5[y202,y204]; pos203(tthick,0); x204=x202;
+bot y204r=0; pos204(tthin,-90); x201=2x202-x203; y201=y203; pos201(tthin,-180);
+filldraw stroke z25e--z202e{right}...{down}z203e...{left}z204e...z201e...{right}z205e
+ ...{down}z206e...{left}z207e;
+filldraw stroke z207e--z240e{right}...{up}z241e...{z243-z241}z242e...{up}z243e
+ ...{right}z244e...z245e--z246e;
+small_iito(244,s,h)
+endchar;
+
+cmchar "Tamil ayyatham";
+beginchar(240,asc_height#+2u#,asc_height#,0);
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=5u-x6; bot y4=0; y2=2u; circle_points; draw_circle;
+transform ta; ta=identity shifted(w-5u,0); transform tb; tb=identity shifted(.5w-2.5u,h-6u);
+picture VA; VA=currentpicture transformed ta;
+picture VB; VB=currentpicture transformed tb;
+addto currentpicture also VA; addto currentpicture also VB;
+endchar;
+
+% following taken directly from cmr's accent.mf
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(241,5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "grantha u";
+beginchar(242,x_height#,asc_height#,0);
+adjust_fit(0,0);
+x1=u; x2=w-u; top y1r=h; y2=y1; pos1(tthinner,90); pos2(tthinner,90);
+rt x3r=x2; x4=x3; y3=h; y4=h-3u; pos3(tthinner,0); pos4(tthinner,0);
+x5=x2; bot y5l=y4; x6=x5-3u; y6=y5; pos5(tthinner,90); pos6(tthinner,90);
+lft x7l=x6; y7=y4; y8=y3; x8=x7; pos7(tthinner,0); pos8(tthinner,0);
+filldraw stroke z1e--z2e;
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+filldraw stroke z7e--z8e;
+%picture V; transform t; t=identity shifted(-x_height,0);
+%V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "grantha uu";
+beginchar(243,1.2x_height#,asc_height#+3u#,0);
+adjust_fit(0,0);
+w:=x_height; h:=asc_height;
+x1=u; x2=w-u; top y1r=h; y2=y1; pos1(tthinner,90); pos2(tthinner,90);
+rt x3r=x2; x4=x3; y3=h; y4=h-3u; pos3(tthinner,0); pos4(tthinner,0);
+x5=x2; bot y5l=y4; x6=x5-3u; y6=y5; pos5(tthinner,90); pos6(tthinner,90);
+lft x7l=x6; y7=y4; y8=y3; x8=x7; pos7(tthinner,0); pos8(tthinner,0);
+filldraw stroke z1e--z2e;
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+filldraw stroke z7e--z8e;
+w:=1.2x_height; h:=asc_height+3u;
+x10=w-u; x11=.5[x10,x12]; y11=y4-3u; y10=.5[y9,y11]; top y9l=h; x9=.5[x8,x10];
+pos9(tthinner,-90); pos10(tthinner,-180); pos11(tthinner,-270);
+y12=y4; x12=x6-2u; pos12(tthinner,-360);
+filldraw stroke z8e{up}...{right}z9e...{down}z10e...{left}z11e...{up}z12e;
+%picture V; transform t; t=identity shifted(-x_height,0);
+%V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/itrans/tel12.mf b/Master/texmf-dist/fonts/source/public/itrans/tel12.mf
new file mode 100644
index 00000000000..c33adccf1cf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/tel12.mf
@@ -0,0 +1,7 @@
+%tel12%
+input telmode;
+font_size 12pt#;
+slant:=0;
+pen_width#:=0.5pt#;
+input telparam;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/tel12b.mf b/Master/texmf-dist/fonts/source/public/itrans/tel12b.mf
new file mode 100644
index 00000000000..b54210f2ee9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/tel12b.mf
@@ -0,0 +1,7 @@
+%tel12b%
+input telmode;
+font_size 12pt#;
+slant:=0;
+pen_width#:=0.68pt#;
+input telparam;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/tel12nx.mf b/Master/texmf-dist/fonts/source/public/itrans/tel12nx.mf
new file mode 100644
index 00000000000..b012a6547a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/tel12nx.mf
@@ -0,0 +1,10 @@
+%tel12nx% non-uniform pen(x-axis)
+input telmode;
+font_size 12pt#;
+slant:=0;
+pen_width#:=0.74pt#;
+vardef special_telpen =
+ pickup pencircle xscaled (pen_width/2) yscaled (pen_width);
+enddef;
+input telparam;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/tel12ny.mf b/Master/texmf-dist/fonts/source/public/itrans/tel12ny.mf
new file mode 100644
index 00000000000..ea0f796e09a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/tel12ny.mf
@@ -0,0 +1,10 @@
+%tel12ny% non-uniform pen(y-axis)
+input telmode;
+font_size 12pt#;
+slant:=0;
+pen_width#:=0.65pt#;
+vardef special_telpen =
+ pickup pencircle xscaled pen_width yscaled (pen_width/2);
+enddef;
+input telparam;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/tel12s.mf b/Master/texmf-dist/fonts/source/public/itrans/tel12s.mf
new file mode 100644
index 00000000000..6816c2d6d56
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/tel12s.mf
@@ -0,0 +1,7 @@
+%tel12s%
+input telmode;
+font_size 12pt#;
+slant:=1/4;
+pen_width#:=0.61pt#;
+input telparam;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/tel18.mf b/Master/texmf-dist/fonts/source/public/itrans/tel18.mf
new file mode 100644
index 00000000000..a54da7079ec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/tel18.mf
@@ -0,0 +1,7 @@
+%tel18%
+input telmode;
+font_size 18pt#;
+slant:=0;
+pen_width#:=0.86pt#;
+input telparam;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/telbase.mf b/Master/texmf-dist/fonts/source/public/itrans/telbase.mf
new file mode 100644
index 00000000000..9234fcdc269
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/telbase.mf
@@ -0,0 +1,871 @@
+% This file is part of the TeluguTeX Software Package.
+%Copyright (c) 1991 Lakshmankumar Mukkavilli
+%
+%The TeluguTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the TeluguTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the TeluguTeX Software Package, but only under the conditions described in the
+%TeluguTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with TeluguTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+% This file contains several macros. These are used for setting
+% up the environment and character generation. Before you change
+% anything in this file you should be very clear about the impact
+% of the change.
+%
+ % when testing is false all symbols in the font are
+ % generated automatically else when testing is true
+ % only selected symbols will be generated.
+if unknown testing:boolean testing; testing:=false; fi
+showstopping := 1; % for debugging only
+let telchar=\;
+let generate=input;
+let sketch=draw;
+let pos=penpos;
+let stop=bye;
+string tl_symname,tl_stra,tl_strb,tl_strc,tl_strw,tl_strx,tl_stry;
+ % contains the name of the symbol being created
+tl_symname:=""; % used for creating substitute commands on log file
+tl_stra:="OFFSETA{"; tl_strb:="OFFSETB{"; tl_strc:="OFFSETC{";
+tl_strw:="CODE{";
+tl_strx:="\def\";tl_stry:="}%";
+
+
+if testing:
+ %To test different characters use following definitions of
+ % stest and etest.
+ def stest (text s) =
+ quote def s =
+ enddef;
+ let etest=enddef;
+else:
+ %To generate all the characters use following definitions of
+ % stest and etest.
+ def stest (text s) =
+ tl_symname := str s;% symbol name - used in various messages
+ enddef;
+ let etest=;;
+fi;
+
+% We should be very careful about implications of currenttransform
+% (particularly 'slanted' transform). When a path is drawn/filled
+% currenttransform is applied. When a transform is applied to
+% currentpicture, the transform is really applied to slanted (or
+% whatever currenttransform is) path.
+def font_setup =
+ let adjust_fit = normal_adjust_fit;
+ currenttransform := currenttransform slanted slant;
+ define_pixels(u,v,uh,asc_height,des_depth,x_height);
+ define_pixels(pen_width,ul,ur,em_width);
+ define_pixels(bot_depth,top_height);
+ define_pixels(fig_height,tfig_height,tfig_width);
+ define_pixels(ascunit,vmwidth);
+ define_pixels(top_accent,bot_accent);
+ define_pixels(bot_cc_ceiling,bot_cc_floor,bot_cc_width,ccwidth);
+ define_pixels(c_height,w_height,j_height);
+ define_pixels(asc_height1,asc_height2);
+ define_pixels(dot_radius,wedge_height,wedge_depth);
+ define_pixels(half_plus_width,sc_height);
+
+ define_pixels(v_a_width,v_e_width,v_u_width);
+ define_pixels(v_lo_width,v_ea_width,v_i_width);
+
+ define_pixels(vm_a_width,vm_e_width,vm_e_height1);
+ define_pixels(vm_e_height2,vm_e_height3,vm_u_width);
+ define_pixels(vm_ro_width,vm_ao_width,vm_aoo_width);
+
+ define_pixels(cb_ka_width,cb_kha_width,cb_ga_width,cb_cha_width);
+ define_pixels(cb_ja_width,cb_tta_width,cb_nna_width);
+ define_pixels(cb_ta_width,cb_da_width,cb_na_width);
+ define_pixels(cb_ba_width,cb_ya_width,cb_ra_width);
+ define_pixels(cb_la_width,cb_lla_width,cb_va_width,cb_ca_width);
+ define_pixels(cb_sha_width,cb_ksha_width);
+ define_pixels(cb_ksha_depth);
+ define_pixels(cb_np_width,cb_vg_width);
+
+ define_pixels(cv_pu_width,cv_pu_depth);
+
+ define_pixels(p_comma_width);
+
+ %define pen
+ if unknown special_telpen:
+ pickup pencircle scaled pen_width;
+ telpen:=savepen;
+ else:
+ special_telpen;
+ telpen:=savepen;
+ fi;
+
+ %print titles if generating font
+ if unknown offsets_only:
+ tracingtitles:=1;
+ fi;
+enddef;
+
+newinternal l,r; %adjustment to spacing
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l := -hround(left_adjustment*hppp);
+ interim xoffset := -l;
+ charwd := charwd + left_adjustment + right_adjustment;
+ r := l+hround(charwd*hppp) ;
+ w := r - hround(right_adjustment*hppp) ;
+enddef;
+
+def makebox(text rule) =
+ for y=0,asc_height,-des_depth,x_height,-bot_depth,
+ top_height,w_height,c_height,
+ j_height: rule((l,y)t_,(r,y)t_); % horizontal rules
+ endfor;
+ rule((0,h),(r+pen_width,h)); rule((0,-d),(r+pen_width,-d));%height,depth markers
+ for x=l,r:rule((x,-bot_depth)t_,(x,top_height)t_); % vertical
+ endfor;
+ for x=u*(1+floor(l/u)) step u until r-1:
+ rule((x,-bot_depth)t_,(x,top_height)t_);
+ endfor; % vertical lines at each u
+ if charic <> 0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_));
+ fi % italic correction
+enddef;
+
+def maketicks(text rule) =
+ for y=0,h.o_,-d.o_;
+ rule((l,y),(l+10,y));rule((r-10,y),(r,y)); % horizontals
+ endfor
+ for x=l,r:
+ rule((x,10-d.o_),(x,-d.o_));
+ rule((x,h.o_-10),(x,h.o_)); % verticals
+ endfor
+ if charic <> 0:
+ rule((r+charic*pt,h.o_-10),(r+charic*pt,h.o_)); % italic corr
+ fi
+enddef;
+
+rulepen := pensquare;
+
+def begintchar(expr a,b,c,d,e,f,g) =
+ beginchar(a,b,c,d);
+ italcorr e;
+ if known offsets_only:
+ message tl_strx&tl_symname&tl_strw&decimal(a)&tl_stry;
+ fi;
+ numeric left_space,right_space,l_s,r_s;
+ l_s:=f; r_s:=g;
+ left_space:=hround(hppp*f); right_space:=hround(hppp*g);
+ pickup telpen;
+ enddef;
+
+extra_endchar := extra_endchar&"w:=r-l;";
+
+def endtchar =
+ charwd:=w/hppp; charht:= h/vppp; chardp:= d/vppp;
+ adjust_fit(l_s,r_s);
+ penlabels(range 1 thru 20);
+ message "";
+ % If any special effects are needed then those should be
+ % defined as special_effects macro.
+ if known special_effects: special_effects; fi;
+ endchar;
+ enddef;
+
+% pivot_message macro is used to print offsets to certain points
+% in the symbol being generated. These offsets are used by syllable
+% building macros to allign vowel modifiers/consonant conjuncts.
+% Unlike in english where all symbols stand alone, in Telugu
+% various symbols in the font combine to form text.
+% For consonant bases two/three offsets are identified. One is used to place
+% vowel modifiers and the other is used to place consonant conjuncts(excluding
+% those that appear on side). Third offset is used in attaching vowel modifiers
+% in some special cases. Offsets have suffixes A,B and C.
+% Vowel modifiers, accents and consonant
+% conjuncts that appear above/below base consonant indicate one offset value.
+% Same macro works in all cases.
+% The messages are in the form of TeX macros.
+% The log file contains TeX macros mixed with other messages. Use
+% some pattern matching program like grep to eliminate all lines containing
+% not begining with a \ sign. Name this file tloffsets.
+% grep '^\\' xxxxx.log>tloffsets.tex
+% The offsets are in em units. So the offsets would be same for any designsize
+% and pen width combination.
+% Print the offsets only when offsets are being generated.
+if unknown offsets_only: % do not print offsets
+ def pivot_message (text t) =
+ enddef;
+else: %print offsets
+ def pivot_message (text t) =
+ numeric count,piv[],index;
+ % count indicates the number of arguments
+ count:=0;
+ for index=t: count:=count+1; piv[count]:=index; endfor;
+ if count=1:
+ message tl_strx&tl_symname&tl_stra&decimal((piv[1]+left_space)/em_width)&tl_stry;
+ elseif count=2:
+ message tl_strx&tl_symname&tl_stra&decimal((piv[1]+left_space)/em_width)&tl_stry;
+ message tl_strx&tl_symname&tl_strb&decimal((piv[2]+left_space)/em_width)&tl_stry;
+ else:
+ message tl_strx&tl_symname&tl_stra&decimal((piv[1]+left_space)/em_width)&tl_stry;
+ message tl_strx&tl_symname&tl_strb&decimal((piv[2]+left_space)/em_width)&tl_stry;
+ message tl_strx&tl_symname&tl_strc&decimal((piv[3]+left_space)/em_width)&tl_stry;
+
+ fi;
+ enddef;
+fi;%end of if unknown offsets
+
+def fill_dot(suffix $) =
+ z$t = (x$,y$+dot_radius);
+ z$l = (x$-dot_radius,y$);
+ z$b = (x$,y$-dot_radius);
+ z$r = (x$+dot_radius,y$);
+ path fill_dot_p;
+ fill_dot_p = z$t..z$l..z$b..z$r..cycle;
+ fill fill_dot_p;
+ penlabels($t,$l,$b,$r);
+ enddef;
+
+def lit_cir_form =
+ lft z1l = (0,c_height/2); top z1t = (c_height/2,c_height);
+ rt z1 = (c_height,c_height/2); bot z1b = (c_height/2,0);
+ path lit_cir_p;
+ lit_cir_p = z1..z1t..z1l..z1b..cycle;
+ sketch lit_cir_p;
+ penlabels(1t,1l,1b);
+ enddef;
+
+def half_plus_form(suffix $) =
+ z$a=(x$+1/2half_plus_width,y$); rt z$b=(x$+half_plus_width,y$);
+ top z$c=(x$+1/2half_plus_width,x_height);
+ lft z$d = z$;
+ path half_plus_pa,half_plus_pb;
+ half_plus_pa = z$d--z$a--z$b;
+ half_plus_pb = z$a--z$c;
+ sketch half_plus_pa; sketch half_plus_pb;
+ penlabels($a,$b,$c,$d);
+enddef;
+
+def barandhook_form (suffix $)(expr bar_width,t) =
+ z$a=(x$+bar_width-u,y$); rt z$b=(x$a+u,y$-uh);
+ bot z$c =(x$b-u,y$-2uh); lft z$d=(x$b-2u,y$b);
+ top z$e=(x$a-u,y$); rt z$f=(x$b,y$+1.5uh);
+ top z$g=(x$a,y$f+uh); z$h=(x$d,y$f);
+path barandhook_p;
+barandhook_p= subpath(0,t) of (rt z$--z$a..z$b..z$c..z$d..z$e..z$f..z$g..z$h);
+sketch barandhook_p;
+penlabels($a,$b,$c,$d);
+enddef;
+
+def barandhook_forma (suffix $)(expr bar_width,t) =
+barandhook_form($,bar_width,t);
+erase sketch barandhook_p;
+barandhook_p:= subpath(0,t) of (z$--z$a..z$b..z$c..z$d..z$e..z$f..z$g..z$h);
+sketch barandhook_p;
+enddef;
+
+def wedge(suffix $) =
+bot z$w=(x$,-wedge_depth);
+ path wedge_p;
+ wedge_p = z$--z$w;
+ sketch wedge_p;
+ penlabels($u,$v,$w,$x,$y);
+ enddef;
+
+def vwedge(suffix $) =
+ z$a=(x$,y$+wedge_height);
+ path vwedge_p;
+ vwedge_p =z$--z$a;
+ sketch vwedge_p;
+ penlabels($a);
+ enddef;
+
+
+def vm_hook_form (suffix $)(expr t) =
+ z$a = (x$,y$+1.5ascunit);
+ z$b = (x$+u,y$+3ascunit);
+ z$c = (x$+2u,y$+1.5ascunit);
+ sketch subpath (0,t) of (z$..z$a..z$b..z$c);
+ penlabels ($a,$b,$c);
+ h:=top y$b;
+enddef;
+
+ def v_a_form =
+ top z1=(1/4v_a_width,x_height);
+ z10=(x1-u,y1-uh); z11=(x1,y1-2(y1-y10));
+ lft z3=(0,2/3x_height); bot z4=(1/2v_a_width,0);
+ rt z5=(v_a_width,2/3x_height); top z6=(v_a_width-1.5u,x_height);
+ z7=(3.5/5x5,1/2x_height); z8=(1/4w,1/2x_height);
+ z12=(.65v_a_width,5/6x_height); rt z2=(v_a_width,1/2x_height);
+ enddef;
+
+def v_e_form =
+ lft z1=(0,j_height); top z2=(1/5v_e_width,x_height);
+ z3=(2/5v_e_width,j_height); top z4=(3/5v_e_width,x_height);
+ rt z5=(v_e_width,1/2x_height); z6=(4/5v_e_width,1/5x_height);
+ bot z7=(1/2v_e_width,0); z8=(1/5v_e_width,1/4x_height);
+ z9=(1/2v_e_width,1/2x_height); rt z10=(v_e_width,-1/5des_depth);
+ path v_e_p;
+ v_e_p = z1..z2..tension 1.2..z3&z3..tension 1.2..z4..z5..z6..z7..z8..z9..z10;
+ sketch v_e_p;
+ enddef;
+
+def v_u_form =
+ z1=(v_u_width-1/2w_height,1/2w_height); z2=(v_u_width-u,w_height);
+ rt z3=(v_u_width,1/6x_height); bot z4=(3/4v_u_width,0);
+ z5=(1/2v_u_width,w_height); bot z6=(1/3v_u_width,0);
+ lft z7=(0,1/2x_height); top z8=(1/2v_u_width,x_height);
+ top z9=(v_u_width-w_height,x_height);
+path v_u_p;
+v_u_p=z1..z2..z3..z4..tension 1.2..z5&z5..tension 1.2..z6..z7..z8..z9;
+sketch v_u_p;
+ enddef;
+
+def v_lo_form =
+ lft z1=(0,j_height); top z2=(v_lo_width/5,x_height);
+ z3=(2/5v_lo_width,j_height); top z4=(3/5v_lo_width,x_height);
+ z5=(4/5v_lo_width,j_height); z6=(3/5v_lo_width,w_height);
+ bot z7=(4/5v_lo_width,0); rt z8=(v_lo_width,1/2x_height);
+ top z9=(9/10v_lo_width,x_height);
+ path v_lo_p;
+v_lo_p= z1..z2..z3&z3..z4..z5..z6..z7..z8..z9;
+sketch v_lo_p;
+ enddef;
+
+def v_ea_form =
+ lit_cir_form;
+ bot z2=(2/3v_ea_width,0); rt z3=(v_ea_width,1/3x_height);
+ z4=(2/3v_ea_width,4/5x_height);top z5=(1/3v_ea_width,x_height);
+sketch z1..z2..z3..z4..z5;
+ enddef;
+
+ def vm_a_form (suffix $) =
+ top lft z$a=(x$-2/5vm_a_width,asc_height1);
+ top rt z$b=(x$+3/5vm_a_width,asc_height);
+ z$c = z$;
+ sketch z$a..tension 6..z$c..tension 16..z$b;
+ penlabels($a,$b,$c);
+ enddef;
+
+def vm_e_form =
+ lft z1 = (0,x_height+1.2ascunit);
+ top z2 = (1/2vm_e_width,x_height);
+ rt z3 = (vm_e_width,x_height+2ascunit);
+ lft z5 = (0,x_height+3ascunit);
+ z6 = (1/2vm_e_width,y5);
+ top z7=(1/2vm_e_width,vm_e_height1+ascunit);
+ sketch subpath (0.4,1) of z1{down}..{right}z2..z3..z7..z5..z6;
+ % hook can be attached at z7
+enddef;
+
+def vm_e_form_a (expr xcoord) =
+% used for vowel modifier e for some consonants (eg. khe, che, ne etc)
+% 999 was chosen arbitrarily. we needed something not used elsewhere!
+% same suffix should be used by vm_ee_form_a.
+ top z999=(xcoord,vm_e_height1); rt z999i=((lft x999)-1.8u,(y999+y999j)/2);
+ top z999j=(x999,asc_height1);
+ path vm_e_pa;
+ vm_e_pa=z999..z999i..z999j..cycle; h:= (top y999)+pen_width;
+ penlabels(z999,z999i,z999j);
+enddef;
+
+def vm_ee_form_a (expr xcoord) =
+% used for vowel modifier ee for some consonants (eg. khee, chee, nee etc)
+% 999 was chosen arbitrarily. we needed something not used elsewhere!
+% same suffix should be used by vm_e_form_a.
+ vm_e_form_a(xcoord); vm_hook_form(999,3);
+enddef;
+
+def vm_u_form (suffix $) =
+ bot z$a = (x$+vm_u_width/2,0);
+ rt z$b = (x$+vm_u_width,y$);
+ z$c = (x$+3/4vm_u_width,3/4x_height);
+ top z$d = (x$+vm_u_width/2,x_height);
+path vm_u_p;
+ vm_u_p=z$..z$a..z$b..z$c..z$d;
+ sketch vm_u_p;
+ penlabels($a,$b,$c,$d);
+ enddef;
+
+def vm_ro_form =
+ z1 = (1/3vm_ro_width,-1/2des_depth);
+ z2 = (1/2vm_ro_width,-1/2des_depth);
+ z3 = (1/3vm_ro_width,0);
+ lft z4 = (0,-1/2des_depth);
+ bot z5 = (1/2vm_ro_width,-des_depth);
+ rt z6 = (vm_ro_width,(y5+y7)/2);
+ top z7 = (1/2vm_ro_width,x_height);
+sketch z1..z2..z3..z4..z5..z6..z7;
+enddef;
+
+def vm_ea_form(suffix $) (expr bar_width) =
+ z$a=(5/7bar_width,y$);
+ z$b=(x$a,asc_height2);
+ lft z$c=(0,y$b);
+ rt z$d=(bar_width,(y$+y$b)/2);
+penlabels ($a,$b,$c,$d);
+ sketch z$c--z$b..z$d..z$a--z$;
+enddef;
+
+def vm_ao_form(suffix $)(expr x_offset) =
+ z$a = (1/6vm_ao_width+x_offset,x_height);
+ lft z$b = (0+x_offset,asc_height1);
+ z$c = (1/6vm_ao_width+x_offset,asc_height2);
+ z$d = (2/6vm_ao_width+x_offset,asc_height1);
+ z$e = (3/6vm_ao_width+x_offset,asc_height2);
+ z$f = (5/6vm_ao_width+x_offset,asc_height2);
+ rt z$g = (vm_ao_width+x_offset,1/2(asc_height1+asc_height2));
+ top z$h = (5/6vm_ao_width+x_offset,asc_height1);
+ z$i = (4/6vm_ao_width+x_offset,asc_height2);
+ top z$j = (5/6vm_ao_width+x_offset,asc_height);
+ top z$k = (vm_aoo_width+x_offset-1.5u,asc_height);
+ rt z$l = (vm_aoo_width+x_offset,asc_height2);
+ %rt z$l = (vm_aoo_width+x_offset,1/2(asc_height+asc_height2));
+ %rt z$k = (vm_ao_width+x_offset,1/2(asc_height+asc_height2));
+ path vm_ao_pa,vm_ao_pb;
+ vm_ao_pa = z$a..z$b..z$c..tension1.2..z$d;
+ vm_ao_pb= z$d..tension1.2..z$e..tension 1.8..z$f..z$g..z$h..z$i..z$j..tension 1.8..z$k..z$l;
+ w:= rt x$g; h:= top y$c;
+ penlabels ($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l);
+enddef;
+
+% b---------c--------------d
+% | |_|
+% $------a
+def vm_au_form (suffix $)(expr bar_width) = % see the above diagram
+ numeric na;
+ top z$e=z$;
+ z$a = (x$e+2/10(bar_width-u),y$e);
+ z1000 = (x$-u,asc_height2);
+ % 1000 was chosen arbitrarily
+ % we needed some suffix not used by any user of
+ % this macro
+ barandhook_form(1000,bar_width,5);
+ z$d=z1000a;
+ %next two statements solve for c
+ x$c = x$a;
+ z$c = whatever[z1000,z$d];
+ na:=x$c+(x1000a-x$c)/3; % used for alligning pa,pha,sha..
+ sketch z$e--z$a{right}..{left}z$c;
+ penlabels($a,$b,$c,$d,$e,1000);
+enddef;
+
+def cb_ka_form =
+rt x1=rt x5=cb_ka_width; y1=8/10x_height; y5=1/4x_height;
+x2=x4=x6=1/2cb_ka_width; top y2=x_height; y4=1/2x_height; bot y6=0;
+lft x3=lft x7=0; y3=3/4x_height; y7=x_height-y1;
+path cb_ka_p;
+cb_ka_p=z7..z6..z5..z4..z3..z2..z1;
+enddef;
+
+def cb_kha_form =
+z1=(4/15cb_kha_width,5/6x_height);z2=(2/15cb_kha_width,y1-uh);
+lft z3=(0,y1); top z4=(x6,x_height);
+z5=(5/12cb_kha_width,1/8x_height); bot z6=(1/4cb_kha_width,0);
+lft z7=(0,1/4x_height); z8=(1/4cb_kha_width,1/3x_height);
+bot z9=(3/4cb_kha_width,0); rt z10=(cb_kha_width,1/3x_height);
+top z11=(x9,x_height);
+path cb_kha_p;
+cb_kha_p=z1..z2..z3..z4..z5..z6..z7..z8..z9..z10..z11;
+sketch cb_kha_p;
+numeric a,b;
+(a,b)=(subpath (3,5) of cb_kha_p) intersectiontimes
+ subpath (6,9) of cb_kha_p;
+z15 = point a of (subpath (3,5) of cb_kha_p); wedge(15);
+enddef;
+
+def cb_ga_form =
+bot z1=(u,0); x5=cb_ga_width-x1; bot y5=0;
+y2=y4=1/3x_height; lft x2=0; rt x4=cb_ga_width;
+top z3=(1/2cb_ga_width,x_height);
+path cb_ga_p,cv_ge_p;
+ cb_ga_p=z1..z2..z3..z4..z5;
+ sketch cb_ga_p;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_ga_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_ga_width,vm_e_height2));
+ z30= point na of cb_ga_p;
+ (nc,nd)= cb_ga_p intersectiontimes
+ ((1/2cb_ga_width,vm_e_height2)--(cb_ga_width,vm_e_height2));
+ z32= point nc of cb_ga_p;
+ top z31=(1/2cb_ga_width,vm_e_height3);
+ cv_ge_p=z30..z31..z32;
+enddef;
+
+def cb_cha_form =
+ lft z1=(0,x_height/2); z2=(cb_cha_width/3,x_height/2);
+ z3=(cb_cha_width/6,w_height); bot z4=(cb_cha_width/4,0);
+z5=(cb_cha_width/2,w_height); bot z6=(3/4cb_cha_width,0);
+ rt z7=(cb_cha_width,w_height); top z8=(cb_cha_width/2,x_height);
+ path cb_cha_p;
+ cb_cha_p=z1--z2..z3..z4..tension1.2..z5&z5..tension1.2..z6..z7..z8;
+ sketch cb_cha_p;
+ enddef;
+
+def cb_ja_form =
+ lft z1 = (0,j_height); top z2 = (cb_ja_width/4,x_height);
+ z3 = (cb_ja_width/2,j_height); z4 = (cb_ja_width/4,x_height/2);
+ lft z5 = (0,w_height); bot z6 = (cb_ja_width/4,0);
+ z7 = (cb_ja_width/2,w_height); bot z8 = (3/4cb_ja_width,0);
+ rt z9 = (cb_ja_width,w_height);
+ %following are useful for defining a bowl at the top
+ bot lft z3w=top z3; z3x=(x8,y1); rt z3y=(w,5/6x_height);
+ top z3z=(4/5w,x_height);
+ path cb_ja_pa,cb_ja_pb;
+ cb_ja_pa=z1..z2..z3..z4..z5..z6..tension1.2..z7&z7..tension1.2..z8..z9;
+ cb_ja_pb=z3w..z3x..z3y..z3z;
+ sketch cb_ja_pa;
+ penlabels(3w,3x,3y,3z);
+ enddef;
+
+def cb_tta_form =
+ top z1=(1/4cb_tta_width,x_height);
+ y2=y6=1/2x_height;
+ lft x2=0; rt x6=cb_tta_width;
+ x3=x1; x5=cb_tta_width-x3;
+ bot y3=bot y5=0;
+ top z4=(1/2cb_tta_width,w_height);
+ top z7=(cb_tta_width-x1,x_height);
+ z11=(x1+1.5u,y1-1.45uh);
+ path cb_tta_p,cb_tta_pa,cb_tta_pb;
+ cb_tta_pb=z1..z2..z3..tension1.2..z4&z4..tension1.2..z5..z6..z7;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_tta_pb intersectiontimes
+ ((0,5/6x_height)--(1/2cb_tta_width,5/6x_height));
+ z8=point na of cb_tta_pb;
+ (nc,nd)= cb_tta_pb intersectiontimes
+ ((0.6cb_tta_width,w_height)--(cb_tta_width,w_height));
+ z20=point nc of cb_tta_pb;
+ z19=rt z20;
+ cb_tta_pa=bot z8..z11..z1;
+ cb_tta_p=cb_tta_pa..cb_tta_pb;
+ bot lft z18= z1;% used for placing a vertical line
+ enddef;
+
+def cb_nna_form =
+z1a=(1/3cb_nna_width,1/2sc_height);
+bot z1=(1/4cb_nna_width,0); lft z2=(0,1/4x_height);
+z3=(1/6cb_nna_width,1/2x_height); lft z4=(0,3/4x_height);
+top z5=(1/4cb_nna_width,x_height); z6=(1/2cb_nna_width,j_height);
+top z7=(5/8cb_nna_width,x_height); rt z8=(cb_nna_width,1/2x_height);
+bot z9=(2/3cb_nna_width,0); z10=(x9-1/2sc_height,sc_height);
+z11=(x9,3/2sc_height); z12=(x9+1/2sc_height,sc_height);
+ path cb_nna_p;
+cb_nna_p= z1a..z1..z2..z3&z3..z4..z5..z6&z6..z7..z8..z9..z10..z11..z12;
+sketch cb_nna_p;
+ penlabels(1a);
+enddef;
+
+def cb_ta_form =
+lft z1=(0,1/2x_height);
+z2=(x1+u,y1-uh); z3=(x1+2u,y1); z4=(x2,y1+uh);
+bot z5=(1/2cb_ta_width,0); rt z6=(cb_ta_width,1/2x_height);
+z7=(x6-u,y6+uh); z8=(x6-2u,y6); z9=(x7,y6-uh);
+top z10=(1/2cb_ta_width,x_height);
+ path cb_ta_p;
+ cb_ta_p = z1..z2..z3..z4..z1..z5..z6..z7..z8..z9..z6..{left}z10;
+enddef;
+
+def cb_da_form =
+ top z1=(1/2cb_da_width,x_height); lft z2=(0,w_height);
+ bot z3=(1/3cb_da_width,0);z4=(1/2cb_da_width,w_height);
+ bot z5=(2/3cb_da_width,0);rt z6=(cb_da_width,1/2x_height);
+ path cb_da_p,cv_de_p;
+ cb_da_p= z4..tension 1.2..z5..z6..z1..z2..z3..tension 1.2..z4;
+ sketch cb_da_p;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_da_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_da_width,vm_e_height2));
+ z30= point na of cb_da_p;
+ (nc,nd)= cb_da_p intersectiontimes
+ ((1/2cb_da_width,vm_e_height2)--(cb_da_width,vm_e_height2));
+ z32= point nc of cb_da_p;
+ top z31=(1/2cb_da_width,vm_e_height3);
+ cv_de_p=z30..z31..z32;
+ enddef;
+
+def cb_na_form =
+ bot lft z1=(0,0); lft z2=(0,1/2w_height);
+ z3=(1/3cb_na_width,w_height); bot z4=(2/3cb_na_width,0);
+ rt z5=(cb_na_width,1/3x_height); top z6=(1/2cb_na_width,x_height);
+ path cb_na_p;
+ cb_na_p=z1..z2..z3..z4..z5..z6;
+ enddef;
+
+def cb_ba_form =
+ lft z1 = (u/2,j_height); top z2 = (cb_ba_width/5,x_height);
+ z3 = (cb_ba_width/3,j_height); lft z4 = (0,w_height);
+ bot z5 = (cb_ba_width/4,0); bot z6 = (cb_ba_width/2,w_height);
+ bot z7 = (3/4cb_ba_width,0);
+ rt z8 = (cb_ba_width,w_height); %z8 contact point
+ top z9 = (2/3cb_ba_width,x_height); % z9 another contact point
+ path cb_ba_p;
+ cb_ba_p = z1..z2..z3..z4..z5..tension 1.2..z6&z6..tension 1.2..z7..z8..z9;
+ sketch cb_ba_p;
+ enddef;
+
+def cb_ya_form =
+ lft z1 = (0,2/5x_height);
+ top z2 = (3/10cb_ya_width,8/10x_height);
+ rt z3 = (3/5cb_ya_width,y1);
+ bot z4 = (x2,0);
+ bot z5 = (4/5cb_ya_width,0);
+ rt z6 = (cb_ya_width,w_height);
+ z7 = ((x5+x6)/2,7.3/10x_height);
+ top z8 = (9/20cb_ya_width,x_height);
+enddef;
+
+def cb_ra_form =
+ top z1=(cb_ra_width/2,x_height);
+ lft z2 = (0,w_height);
+ bot z3 = (cb_ra_width/2,0);
+ rt z4 = (cb_ra_width,y2);
+ path cb_ra_p,cv_re_p;
+ cb_ra_p = z1..z2..z3..z4..cycle;
+ sketch cb_ra_p;
+ numeric na,nb,nc,nd;
+ (na,nb)= cb_ra_p intersectiontimes
+ ((0,vm_e_height2)--(1/2cb_ra_width,vm_e_height2));
+ z30= point na of cb_ra_p;
+ (nc,nd)= cb_ra_p intersectiontimes
+ ((1/2cb_ra_width,vm_e_height2)--(cb_ra_width,vm_e_height2));
+ z32= point nc of cb_ra_p;
+ top z31=(1/2cb_ra_width,vm_e_height3);
+ cv_re_p=z30..z31..z32;
+ enddef;
+
+def cb_rra_form =
+cb_tta_form;
+z14=(cb_tta_width-1.5x1,x_height-sc_height);
+z15=(x7,1/2x_height);z16=(x1,y15);
+ path cb_rra_p;
+ cb_rra_p= cb_tta_p..z14..z15--z16;
+ sketch cb_rra_p;
+enddef;
+
+def cb_la_form =
+top z1=(1/4cb_la_width,x_height);
+lft z2=(0,x_height/2); bot z3=(1/2cb_la_width,0);
+rt z4=(cb_la_width,y2); top z5=(cb_la_width-x1,x_height);
+z7=(x1+1.5u,2/3x_height);
+ path cb_la_pa,cb_la_pb,cb_la_p;
+ cb_la_pb=z1..z2..z3..z4..z5;
+z6=point 0.35 of cb_la_pb;
+ cb_la_pa= bot rt z6..z7..z1;
+ cb_la_p=cb_la_pa..cb_la_pb;
+% z8 is useful for la+u and la+uu
+numeric na,nb;
+(na,nb)=cb_la_pb intersectiontimes
+ ((cb_la_width/2,w_height)..(cb_la_width,w_height));
+z9=point na of cb_la_pb;
+z8=rt z9;
+enddef;
+
+def cb_lla_form =
+top z1=(cb_lla_width/2,w_height);
+bot z2 =(x1,0);
+z6=(1/3cb_lla_width,x_height-2uh); z3=(x6+u/2,y6-uh);
+z4=(x6,.6x_height); z5=(x6+u/2,y3); lft z7=(0,2/3x_height);
+bot z8=top z1; rt z9=(cb_lla_width,y7); top z10=(1/2cb_lla_width,x_height);
+path cb_lla_pa,cb_lla_pb;
+cb_lla_pa=z3..z4..z5..z6..z7..z8..z9..z10;
+cb_lla_pb=z1..z2..cycle;
+sketch cb_lla_pa;
+sketch cb_lla_pb;
+% z12 is useful for lla+u and lla+uu
+numeric na,nb;
+(na,nb)=cb_lla_pa intersectiontimes
+ ((cb_lla_width/2,x_height/2)..(cb_lla_width,x_height/2));
+z13=point na of cb_lla_pa;
+z12=rt z13;
+enddef;
+
+def cb_va_form =
+ lit_cir_form;
+ bot z2 = (3/5cb_va_width,0); rt z3 = (cb_va_width,w_height);
+ z4 = (7/8cb_va_width,j_height); top lft z5 = (x1,x_height);
+path cb_va_p,cv_paa_p;
+cb_va_p=z1..z2..z3..z4..z5;
+top z20=(cb_va_width/2,h);
+cv_paa_p=subpath(0,2) of cb_va_p{up}..z20;
+% z22 is useful for alligning au modifier
+numeric na,nb;
+(na,nb)=cv_paa_p intersectiontimes
+ ((cb_va_width/2,asc_height2)..(cb_va_width,asc_height2));
+z22=point na of cv_paa_p;
+ enddef;
+
+def cb_ca_form =
+lft z1=(0,1/2x_height); z2=(1/3cb_ca_width,6/8x_height);
+bot z3=(1/3cb_ca_width,0); z4=(3/4cb_ca_width,1/3x_height);
+rt z5=(cb_ca_width,2/3x_height); top z6=(1/2cb_ca_width,x_height);
+lft z7=(0,1/6x_height);
+path cb_ca_p,cb_ca_pa;
+cb_ca_p=z1..z2{right}..z4..z3..z7..z4..z5..z6;
+sketch cb_ca_p;
+% z10 is useful for ca+u and ca+uu
+cb_ca_pa=subpath(1,3) of cb_ca_p;
+numeric na,nb;
+(na,nb)=cb_ca_pa intersectiontimes
+ ((0,w_height)..(cb_ca_width,w_height));
+z11=point na of cb_ca_pa;
+z10=rt z11;
+enddef;
+
+def cb_ksha_form =
+ cb_ka_form;
+ top z11 = (1/5cb_ka_width,0);
+ lft z12 = (0,-1/2cb_ksha_depth);
+ bot z13 = (x11,-cb_ksha_depth);
+ z14 = (2/5cb_ka_width,-2/3cb_ksha_depth);
+ bot z15 = (3/5cb_ka_width,-cb_ksha_depth);
+ z16 = (4/5cb_ka_width,-1/2cb_ksha_depth);
+ top z17 = (x15,0);
+ bot rt z18 = (cb_ka_width,-cb_ksha_depth);
+ sketch z11..z12..z13..z14; sketch z14..z15..z16..z17;
+ sketch z16..z18;
+ enddef;
+
+
+def cc_clear =
+%erase all that is drawn so far.
+ clearit;
+ lft z99=(0,100);
+ left_spill := xpart(lft (z99 scaled cc_scale)) - xpart(lft z99);
+ bot z98=(100,0);
+ bot_spill := ypart(bot (z98 scaled cc_scale)) - ypart(bot z98);
+ top((z97 scaled cc_scale)
+ shifted (0,-bot_accent-(x_height*cc_scale))
+ shifted (-left_spill,-bot_spill))=
+ (w*cc_scale/2,x_height);
+enddef;
+
+def cc_transform(text t) =
+% used to obtain consonant conjuncts for some consonants and vowels lo&loo
+path cc_transformed_path;
+cc_transformed_path = t scaled cc_scale
+ shifted (0,-bot_accent-(x_height*cc_scale));
+sketch cc_transformed_path;
+enddef;
+
+def cc_f_transform(text t) =
+% used to obtain consonant conjuncts for some consonants and vowels lo&loo
+fill t scaled cc_scale
+ shifted (0,-bot_accent-(x_height*cc_scale));
+enddef;
+
+def cc_whd (expr hh,dd) =
+%this macro sets w, h and d for accents that appear below baseline.
+% for some consonant conjuncts that result from transforming
+% consonant bases the height is not zero (eg. cha, ba ,pa etc)
+% for such symbols hh should be 1 and for others hh should be 0.
+% Some consonant bases have wedges that hang below base line (eg. bha, pha
+% ddha etc. ). For these dd should be 1 and for others dd should be 0.
+%
+%When a picture is scaled, what really happens is the componant paths
+% are scaled and the picture is redrawn. Hence we need to adjust w,h and d.
+% Still consonant conjunct for nya needs special care( for d).
+w:=w*cc_scale-pen_width*cc_scale+pen_width;;
+h:=hh*x_height;
+d:=bot_accent+((x_height+(dd*wedge_depth))*cc_scale)+dd*bot_spill;
+% (x,y) slanted s shifted (a,b) is (x+sy+a,y+b) whereas
+% (x,y) shifted (a,b) slanted s is (x+sy+a+ bs,y+b). Hence we
+% need to add the correction 'bs'. 'bs' is -bot_spill*slant
+currentpicture:=currentpicture shifted
+ (-left_spill+((-bot_spill)*slant),-bot_spill);
+enddef;
+
+def cv_ngu_form =
+ z1=(0,j_height); z2=(cb_ja_width/4,j_height-uh#);
+ rt z3=(cb_ja_width/2,5/6x_height); top z4=(4/10cb_ja_width,x_height);
+ sketch z1..z2..z3..z4;
+enddef;
+
+def cv_ju_form =
+ z1=(0,5/6x_height); z2=(cb_ja_width/4,j_height);
+ rt z3=(cb_ja_width/2,y1); top z4=(4/10cb_ja_width,x_height);
+ sketch z1..z2..z3..z4;
+enddef;
+
+def cv_pu_form =
+ top lft z1=(0,c_height/2); bot z2=(cv_pu_width/2,-cv_pu_depth);
+ rt z3=(cv_pu_width,h/2); top z4=(cv_pu_width-2u,x_height);
+ sketch z1..z2..z3..z4;
+enddef;
+
+def dr_sixnine_form =
+ path dr_sixnine_p;
+ top rt z1 = (w,fig_height);
+ z2 = (w/2+u,y1-uh);
+ bot z4 = (w/2,0);
+ rt z5 = (w,x4);
+ z6 = (x4,x5-x7);
+ lft z7 = (0,y5);
+ dr_sixnine_p = z1..z2..z7..z4..z5..z6..z7;
+enddef;
+
+def dt_six_form=
+path dt_six_pa,dt_six_pb;
+ top z1=(w/5,h); lft z2=(0,3h/4); z3=(x1,h/2);
+ z4=(w/3,h/2); lft z5=(0,h/4); bot z6=(x1,0);
+ bot rt z7=(w,0);
+dt_six_pa= flex(z1,z2,z3)& z3--z4;
+dt_six_pb=flex(z3,z5,z6)& z6--z7;
+enddef;
+
+
+def p_comma_form =
+path p_comma_p;
+ z1 = (dot_radius,dot_radius);
+ rt z2 = (p_comma_width,0);
+ bot lft z3 = (x1-1/2dot_radius,-des_depth);
+fill_dot(1); p_comma_p= flex(z1,z2,z3);
+sketch p_comma_p;
+enddef;
+
+def p_bar_form =
+path p_bar_p;
+ bot lft z1 = (0,0);
+ top lft z2 = (0,x_height);
+p_bar_p= z1--z2;
+enddef;
+
+def p_slash_form =
+path p_slash_p;
+ bot lft z1 = (0,-des_depth);
+ top rt z2 = (6u,asc_height);
+p_slash_p= z1--z2;
+enddef;
+
+def p_lbracket_form = % square bracket
+path p_lbracket_p;
+ top lft z1 = (0,top_height);
+ bot lft z2 = (0,-bot_depth);
+ rt z3 = (w,y1);
+ rt z4 = (w,y2);
+p_lbracket_p=z3--z1--z2--z4;
+enddef;
+
+
+def p_rparen_form =
+path p_rparen_p;
+ top lft z1 = (0,top_height); bot lft z2 = (0,-bot_depth);
+ rt z3 = (w,(-d+h)/2);
+p_rparen_p= flex(z1,z3,z2);
+enddef;
+
+
+def p_lbrace_form =
+path p_lbrace_p;
+ top rt z1 = (w,h); lft z4 = (0,(h-d)/2);
+ z2 = (w/2,-d+7/8(h+d));
+ z3 = (x2,-d+5/8(h+d));
+p_lbrace_p= z1..z2..z3..z4;
+p_lbrace_p:=(p_lbrace_p reflectedabout (z4,z4+(w,0)) )..reverse(p_lbrace_p);
+enddef;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/itrans/telchrs1.mf b/Master/texmf-dist/fonts/source/public/itrans/telchrs1.mf
new file mode 100644
index 00000000000..b811a075515
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/telchrs1.mf
@@ -0,0 +1,1061 @@
+% This file is part of the TeluguTeX Software Package.
+%Copyright (c) 1991 Lakshmankumar Mukkavilli
+%
+%The TeluguTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the TeluguTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the TeluguTeX Software Package, but only under the conditions described in the
+%TeluguTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with TeluguTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+% This file contains code to generate vowels, vowel modifiers,
+% consonant bases, consonant conjuncts and accents
+
+stest(va); telchar "vowel a";
+begintchar(v_a_code,v_a_width#,x_height#,0,0,0,0);
+v_a_form;
+sketch z10..z11..z1..z3..z4..z5..z6..z7--z8;
+endtchar; etest;
+
+stest(vaa); telchar "vowel aa";
+begintchar(v_aa_code,v_a_width#,x_height#,0,0,0,0);
+v_a_form;
+sketch z10..z11..z1..z3..z4..z2 &z2{(0,1)}..{up}z12..z6..z5..{left}z7--z8;
+endtchar; etest;
+
+stest(ve); telchar "vowel e";
+begintchar(v_e_code,v_e_width#,x_height#,des_depth#,0,0,0);
+v_e_form;
+d:=abs(bot y10);
+endtchar; etest;
+
+stest(vee); telchar "vowel ee";
+begintchar(v_ee_code,cb_ra_width#+4u#,asc_height#,0,0,0,0);
+cb_ra_form;
+z10=top z1;
+vm_a_form(1);
+currentpicture := currentpicture shifted (u,0);
+z6 = (0,1/2x_height);
+barandhook_form(6,w,8);
+endtchar; etest;
+
+stest(vu); telchar "vowel u";
+begintchar(v_u_code,v_u_width#,asc_height#,0,0,0,0);
+v_u_form;
+barandhook_form(7,v_u_width,1); z20=0.5[z8,z9];
+vwedge(20);
+h:=top y20a;
+endtchar; etest;
+
+stest(vuu); telchar "vowel uu";
+begintchar(v_uu_code,v_u_width#+2.5u#,asc_height#,0,0,0,0);
+v_u_form;
+barandhook_form(7,w-x7,8); vwedge(8); vwedge(9);
+h:=top y8a;
+endtchar; etest;
+
+stest(vro); telchar "vowel ro";
+begintchar(v_ro_code,cb_ba_width#+2vm_u_width#,x_height#,0,0,0,0);
+cb_ba_form;
+vm_u_form(8);
+vm_u_form(8b);
+w:=rt x8b.b;
+endtchar; etest;
+
+stest(vroo); telchar "vowel roo";
+begintchar(v_roo_code,cb_ba_width#+2vm_u_width#+vmwidth#,x_height#,0,0,0,0);
+cb_ba_form;
+vm_u_form(8);
+z10=z8b;
+vm_u_form(10);
+z11=z10d;
+barandhook_forma(11,vmwidth,5);
+w:=rt x11b;
+endtchar; etest;
+
+stest(vlo); telchar "vowel lo";
+begintchar(v_lo_code,v_lo_width#,x_height#,0,0,0,0);
+v_lo_form;
+endtchar; etest;
+
+stest(vloo); telchar "vowel loo";
+begintchar(v_loo_code,v_lo_width#+vmwidth#,x_height#,0,0,0,0);
+v_lo_form;
+barandhook_forma(9,vmwidth,5);
+w:=rt x9b;
+endtchar; etest;
+
+stest(vea); telchar "vowel ea";
+begintchar(v_ea_code,v_ea_width#,x_height#,0,0,0,0);
+v_ea_form;
+endtchar; etest;
+
+stest(veae); telchar "vowel eae";
+begintchar(v_eae_code,v_ea_width#,asc_height1#,0,0,0,0);
+v_ea_form;
+lft z10 = (0,5/6x_height);
+z11 = (1/2v_ea_width,asc_height1);
+sketch z10{up}..{right}z11;
+h:=top y11;
+endtchar; etest;
+
+stest(vi); telchar "vowel i";
+begintchar(v_i_code,v_i_width#,x_height#,0,0,0,0);
+lit_cir_form;
+bot z2=(x1+2u,0); rt z3=(v_i_width,1/2x_height);
+top z4=(x2,x_height); z5=(x1,x_height-y1); top z6=(1/2x1,x_height);
+lft z7=(0,y5);
+ sketch rt z1..z2..z3..z4..z5;
+ sketch z5..z6..z7;
+endtchar; etest;
+
+stest(vao); telchar "vowel ao";
+begintchar(v_ao_code,cb_ja_width#,x_height#,0,0,0,0);
+cb_ja_form;
+endtchar; etest;
+
+
+stest(vaoo); telchar "vowel aoo";
+begintchar(v_aoo_code,cb_ja_width#,x_height#,0,0,0,0);
+cb_ja_form;
+vm_hook_form(2,2);
+endtchar; etest;
+
+
+stest(vau); telchar "vowel au";
+begintchar(v_au_code,5/4cb_ja_width#,asc_height#,0,0,0,0);
+cb_ja_form;
+z12=top z2;
+vm_au_form(12,w);
+h:=top y12c; w:=rt x1000b;
+endtchar; etest;
+
+%--------------------end of vowels-------------------
+stest(vma); telchar "vowel modifier of a";
+begintchar(vm_a_code,vm_a_width#,asc_height#,0,0,0,0);
+top z1=(2/5vm_a_width,x_height); vm_a_form(1);
+pivot_message(x1);
+endtchar; etest;
+
+stest(vmaa); telchar "vowel modifier of aa";
+begintchar(vm_aa_code,11u#,asc_height#,0,0,0,0);
+top z1 = (0,x_height);
+barandhook_form(1,w,5);
+pivot_message((w/3));
+h:=top y1;
+endtchar; etest;
+
+stest(vmaaa); telchar "vowel modifier of aa";
+% used for kha,nga,ja,nya etc.
+begintchar(vm_aaa_code,8.3u#,asc_height#,0,0,0,0);
+top z1 = (0,x_height);
+barandhook_form(1,w,5);
+pivot_message((1.6u),rt x1);
+h:=top y1;
+endtchar; etest;
+
+stest(vme); telchar "vowel modifier of e";
+begintchar(vm_e_code,vm_e_width#,asc_height#,0,0,0,0);
+vm_e_form;
+pivot_message(x2);
+h:=top y7;
+endtchar; etest;
+
+stest(vmee); telchar "vowel modifier of ee";
+begintchar(vm_ee_code,vm_e_width#,asc_height#,0,0,0,0);
+vm_e_form;
+vm_hook_form(7,3);
+pivot_message(x2);
+endtchar; etest;
+
+stest(vmeea); telchar "vowel modifier of ee";
+% Used with kha,cha,ccha,ja,ta,na,ba,bha,ma,la,lla,va etc.
+begintchar(vm_eea_code,vm_e_width#,asc_height#,0,0,0,0);
+% w and h are revised
+top z1=(0,vm_e_height1);
+vm_hook_form(1,3); w:=rt x1c;
+pivot_message(x1);
+endtchar; etest;
+
+stest(vmeeb); telchar "vowel modifier of ee";
+% Used with ra,ga and da(and its variations)
+begintchar(vm_eeb_code,vm_e_width#,asc_height#,0,0,0,0);
+% w and h are revised
+top z1=(0,vm_e_height3);
+vm_hook_form(1,3); w:=rt x1c;
+pivot_message(x1);
+endtchar; etest;
+
+stest(vmu); telchar "vowel modifier of u";
+begintchar(vm_u_code,vm_u_width#,x_height#,0,0,0,0);
+rt z1 = (0,w_height);
+vm_u_form(1);
+w:=rt x1b;
+pivot_message(x1d);
+endtchar; etest;
+
+stest(vmuu); telchar "vowel modifier of uu";
+begintchar(vm_uu_code,vm_u_width#+vmwidth#-2.5u#,x_height#,0,0,0,0);
+rt z1 = (0,w_height);
+vm_u_form(1);
+barandhook_forma(1d,vmwidth,5);
+w:=rt x1d.b;
+endtchar; etest;
+
+stest(vmro); telchar "vowel modifier of ro";
+begintchar(vm_ro_code,vm_ro_width#,x_height#,des_depth#,0,ul#,0);
+vm_ro_form;
+endtchar; etest;
+
+stest(vmroo); telchar "vowel modifier of roo";
+begintchar(vm_roo_code,vm_ro_width#+vmwidth#,x_height#,des_depth#,0,ul#,0);
+vm_ro_form;
+barandhook_forma(7,vmwidth,5);
+w:=rt x7b;
+endtchar; etest;
+
+stest(vmlo); telchar "vowel modifier of lo";
+begintchar(vm_lo_code,v_lo_width#,x_height#,0,0,0,0);
+%w,h and d are revised later
+v_lo_form;
+cc_clear;cc_transform(v_lo_p);cc_whd(0,0);
+pivot_message((x3*cc_scale));
+endtchar; etest;
+
+stest(vmloo); telchar "vowel modifier of loo";
+begintchar(vm_loo_code,v_lo_width#+vmwidth#,x_height#,0,0,0,0);
+%w,h and d are revised later
+v_lo_form;
+barandhook_forma(9,vmwidth,5);
+w:=rt x9b;
+cc_clear;cc_transform(v_lo_p);cc_transform(barandhook_p);cc_whd(0,0);
+pivot_message((x3*cc_scale));
+endtchar; etest;
+
+stest(vmea); telchar "vowel modifier of ea";
+begintchar(vm_ea_code,vmwidth#,asc_height#,0,0,0,0);
+top z1 = (4/7w,x_height);
+vm_ea_form(1,w);
+pivot_message(x1a);
+h:=top y1c;
+endtchar; etest;
+
+stest(vmeae); telchar "vowel modifier of eae";
+begintchar(vm_eae_code,vmwidth#,asc_height#,0,0,0,0);
+top z1 = (4/7w,x_height);
+vm_ea_form(1,w);
+z2 = z1b;
+vm_hook_form(2,3);
+pivot_message(x1a);
+w:=rt x2c;
+endtchar; etest;
+
+stest(vmib); telchar "vowel modifier of i(bottom)";
+%top of vm_i is same as vm_ea
+begintchar(vm_i2_code,vmwidth#,0,des_depth#,0,0,0);
+top z1=(0,0);
+barandhook_form(1,w,5); erase sketch barandhook_p;
+transform t;
+t:= identity rotated 180 shifted (vmwidth,-(bot_accent+(top y1a - bot y1c)));
+sketch barandhook_p transformed t;
+pivot_message((w/2));
+d:=abs(ypart (top z1 transformed t));
+endtchar; etest;
+
+stest(vmao); telchar "vowel modifier of ao";
+begintchar(vm_ao_code,vm_ao_width#,asc_height#,0,0,0,0);
+vm_ao_form(1,0);sketch vm_ao_pa;
+sketch subpath(0,5) of vm_ao_pb;
+pivot_message(x1a);
+endtchar; etest;
+
+stest(vmaoo); telchar "vowel modifier of aoo";
+begintchar(vm_aoo_code,vm_aoo_width#,asc_height#,0,0,0,0);
+vm_ao_form(1,0);sketch vm_ao_pa; % place the hook
+sketch vm_ao_pb;
+pivot_message(x1a);
+w:=rt x1l; h:=top y1j;
+endtchar; etest;
+
+stest(vmaooa); telchar "vowel modifier of aoo(alternate)";
+% This is basically a hook to be attached on top of ao modifier
+begintchar(vm_aoo_code_a,0#,asc_height#,0,0,0,0);
+vm_ao_form(1,0); % place the hook
+sketch vm_ao_pb; erase sketch subpath (0,5) of vm_ao_pb;
+numeric left_shift;left_shift:=x1i;
+currentpicture := currentpicture shifted (-left_shift,0);
+h:=top y1j;w:=(rt x1l)-left_shift;
+pivot_message(x1i-left_shift);
+endtchar; etest;
+
+stest(vmau); telchar "vowel modifier of au";
+begintchar(vm_au_code,vmwidth#+4u#,asc_height#,0,0,0,0);
+z1 = (0,x_height);
+vm_au_form(1,w);
+pivot_message(x1,na);
+w:=rt x1000b; h:=top y1c;
+endtchar; etest;
+
+
+stest(vmp); telchar "absence of vowel modifier(pollu)";
+begintchar(vm_p_code,cb_vg_width#,asc_height#,0,0,0,0);
+top z1=(1/3w,x_height); top z2 = (1/5w,x_height);
+z3=(x2,(x_height+asc_height)/2); z4=(w/2,y3);
+top z5=(x2,h); top rt z6=(w,h);
+sketch z1--z2{left}..{right}z3--z4;
+sketch z3{left}..{right}z5--z6;
+pivot_message(x1);
+endtchar; etest;
+%------------End of Vowel Modifiers-------------------
+
+stest(cbka); telchar "base of consonant ka";
+begintchar(cb_ka_code,cb_ka_width#,x_height#,0,0,0,0);
+cb_ka_form;
+sketch cb_ka_p;
+pivot_message(x2,x2);
+endtchar; etest;
+
+stest(cbkha); telchar "base of consonant kha";
+begintchar(cb_kha_code,cb_kha_width#,x_height#,wedge_depth#,0,0,0);
+cb_kha_form;
+pivot_message(x11,x5);
+endtchar; etest;
+
+stest(cbga); telchar "base of consonant ga";
+begintchar(cb_ga_code,cb_ga_width#,x_height#,0,0,0,0);
+cb_ga_form;
+pivot_message(x3,x3);
+endtchar; etest;
+
+stest(cbgha); telchar "base of consonant gha";
+begintchar(cb_gha_code,cb_va_width#+vm_u_width#,x_height#,wedge_depth#,0,0,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+top z10=1/2[rt z1,z1];
+wedge(10);
+vm_u_form(3);
+w:=rt x3b;
+pivot_message(x1,x1,x3d);
+endtchar; etest;
+
+stest(cbnga); telchar "base of consonant nga";
+begintchar(cb_nga_code,cb_ja_width#,x_height#,0,0,0,0);
+cb_ja_form;
+half_plus_form(3);
+pivot_message(x3c,x7);
+endtchar; etest;
+
+stest(cbcha); telchar "base of consonant cha";
+begintchar(cb_cha_code,cb_cha_width#,x_height#,0,0,0,0);
+cb_cha_form;
+pivot_message(x8,x5);
+endtchar; etest;
+
+stest(cbccha); telchar "base of consonant ccha";
+begintchar(cb_ccha_code,cb_cha_width#,x_height#,wedge_depth#,0,0,0);
+cb_cha_form;
+z10 = 1/2[rt z5,z5];
+wedge(10);
+pivot_message(x8,x5);
+endtchar; etest;
+
+stest(cbja); telchar "base of consonant ja";
+begintchar(cb_ja_code,cb_ja_width#,x_height#,0,0,0,0);
+cb_ja_form;
+sketch cb_ja_pb;
+pivot_message(x3z,x7);
+endtchar; etest;
+
+stest(cbjha); telchar "base of consonant jha";
+begintchar(cb_jha_code,cb_ra_width#+2vm_u_width#,x_height#,wedge_depth#,0,0,0);
+cb_ra_form;
+% The next statement will identify the point on ra_form
+% where the bowl will be attached.
+z5 = (cb_ra_p) intersectionpoint ((x1,w_height)--(x1+w,w_height));
+vm_u_form(5);
+z6 = z5b;
+wedge(6);
+z7 = z6;
+vm_u_form(7);
+w:=rt x7b;
+pivot_message(x1,x5,lft x7d);
+endtchar; etest;
+
+stest(cbnya); telchar "base of consonant nya";
+begintchar(cb_nya_code,v_e_width#+half_plus_width#,x_height#,0,0,0,0);
+v_e_form;
+z14= v_e_p intersectionpoint ((x4,j_height)--(w,j_height));
+z15=z14;
+half_plus_form(15);
+pivot_message(x15c,x7);
+w:=rt x15b;d:=abs(bot y10);
+endtchar; etest;
+
+stest(cbtta); telchar "base of consonant tta";
+begintchar(cb_tta_code,cb_tta_width#,x_height#,0,0,0,0);
+cb_tta_form;
+vwedge(18);
+sketch cb_tta_p;
+pivot_message(x7,x4,x19);
+h:=top y18a;
+endtchar; etest;
+
+stest(cbttha); telchar "base of consonant ttha";
+begintchar(cb_ttha_code,cb_ra_width#,x_height#,0,0,0,0);
+cb_ra_form;
+z10 = (x1,1/2x_height);
+fill_dot(10);
+pivot_message(x1,x1);
+endtchar; etest;
+
+stest(cbdda); telchar "base of consonant dda";
+begintchar(cb_dda_code,v_u_width#,x_height#,0,0,0,0);
+v_u_form;
+pivot_message((x8+x9)/2,x5);
+endtchar; etest;
+
+stest(cbddha); telchar "base of consonant ddha";
+begintchar(cb_ddha_code,v_u_width#,x_height#,wedge_depth#,0,0,0);
+v_u_form;
+z12=3/4[rt z5,z5];
+wedge(12);
+pivot_message((x8+x9)/2,x5);
+endtchar; etest;
+
+stest(cbnna); telchar "base of consonant nna";
+begintchar(cb_nna_code,cb_nna_width#,x_height#,0,0,0,0);
+cb_nna_form;
+pivot_message(x7,x6);
+endtchar; etest;
+
+stest(cbta); telchar "base of consonant ta";
+begintchar(cb_ta_code,cb_ta_width#,x_height#,0,0,0,0);
+cb_ta_form;
+ sketch cb_ta_p;
+pivot_message(x10,x5);
+endtchar; etest;
+
+stest(cbtha); telchar "base of consonant tha";
+begintchar(cb_tha_code,cb_da_width#,x_height#,wedge_depth#,0,0,0);
+cb_da_form;
+wedge(4);
+z10 = (x1,2/3x_height-uh);
+fill_dot(10);
+pivot_message(x1,x4);
+endtchar; etest;
+
+stest(cbda); telchar "base of consonant da";
+begintchar(cb_da_code,cb_da_width#,x_height#,0,0,0,0);
+cb_da_form;
+pivot_message(x1,x4);
+endtchar; etest;
+
+stest(cbdha); telchar "base of consonant dha";
+begintchar(cb_dha_code,cb_da_width#,x_height#,wedge_depth#,0,0,0);
+cb_da_form;
+wedge(4);
+pivot_message(x1,x4);
+endtchar; etest;
+
+stest(cbna);telchar "base of consonant na";
+begintchar(cb_na_code,cb_na_width#,x_height#,0,0,0,0);
+cb_na_form;
+sketch cb_na_p;
+pivot_message(x6,x6);
+endtchar; etest;
+
+stest(cbpa); telchar "base of consonant pa";
+begintchar(cb_pa_code,cb_va_width#,x_height#,0,0,0,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+pivot_message(x1,x1);
+endtchar; etest;
+
+stest(cbpha); telchar "base of consonant pha";
+begintchar(cb_pha_code,cb_va_width#,x_height#,wedge_depth#,0,0,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+top z10 = 1/2[rt z1,z1];
+wedge(10);
+pivot_message(x1,x1);
+endtchar; etest;
+
+stest(cbba); telchar "base of consonant ba";
+begintchar(cb_ba_code,cb_ba_width#,x_height#,0,0,0,0);
+cb_ba_form;
+pivot_message(x9,x6);
+endtchar; etest;
+
+stest(cbbha); telchar "base of consonant bha";
+begintchar(cb_bha_code,cb_ba_width#,x_height#,wedge_depth#,0,0,0);
+cb_ba_form;
+wedge(6);
+pivot_message(x9,x6);
+endtchar; etest;
+
+stest(cbma); telchar "base of consonant ma";
+begintchar(cb_ma_code,cb_va_width#+vm_u_width#,x_height#,0,0,0,0);
+cb_va_form;
+sketch cb_va_p;
+vm_u_form(3);
+w:=rt x3b;
+pivot_message(x5,x1,x3d);
+endtchar; etest;
+
+stest(cbya); telchar "base of consonant ya";
+begintchar(cb_ya_code,cb_ya_width#+vm_u_width#,x_height#,0,0,0,0);
+cb_ya_form;
+ sketch z1..z2..z3..z4..cycle;
+ sketch z3{down}..{right}z5..z6..z7..z8;
+vm_u_form(6);
+w:=rt x6b;
+pivot_message(x8,x3,x6d);
+endtchar; etest;
+
+stest(cbra); telchar "base of consonant ra";
+begintchar(cb_ra_code,cb_ra_width#,x_height#,0,0,0,0);
+cb_ra_form;
+pivot_message(x1,x3);
+endtchar; etest;
+
+stest(cbrra); telchar "base of consonant rra";
+begintchar(cb_rra_code,cb_tta_width#,x_height#,0,0,0,0);
+cb_rra_form;
+pivot_message(x7,x4,x19);
+endtchar; etest;
+
+stest(cbla); telchar "base of consonant la";
+begintchar(cb_la_code,cb_la_width#,x_height#,0,0,0,0);
+cb_la_form;
+ sketch cb_la_p;
+pivot_message(x5,x3,x8);
+endtchar; etest;
+
+stest(cblla); telchar "base of consonant lla";
+begintchar(cb_lla_code,cb_lla_width#,x_height#,0,0,0,0);
+ cb_lla_form;
+pivot_message(x10,x1);
+endtchar; etest;
+
+stest(cbva); telchar "base of consonant va";
+begintchar(cb_va_code,cb_va_width#,x_height#,0,0,0,0);
+cb_va_form;
+sketch cb_va_p;
+pivot_message(x5,x1);
+endtchar; etest;
+
+stest(cbca); telchar "base of consonant ca";
+begintchar(cb_ca_code,cb_ca_width#,x_height#,0,0,0,0);
+ cb_ca_form;
+pivot_message(x6,x3,x10);
+endtchar; etest;
+
+stest(cbsha); telchar "base of consonant sha";
+begintchar(cb_sha_code,cb_sha_width#,x_height#,wedge_depth#,0,0,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+bot rt z25 = (cb_sha_width,-d);
+sketch bot z3{down}..{right}z25;
+pivot_message(x1,x1);
+endtchar; etest;
+
+stest(cbsa); telchar "base of consonant sa";
+begintchar(cb_sa_code,cb_na_width#,x_height#,0,0,0,0);
+cb_na_form;
+sketch subpath (0,4.7) of cb_na_p;
+pivot_message(x3,x6);
+endtchar; etest;
+
+stest(cbha); telchar "base of consonant ha";
+begintchar(cb_ha_code,cb_va_width#+vmwidth#,x_height#,0,0,0,0);
+cb_va_form;
+z10 = point 3.6 of cb_va_p;
+top z11 = (x10,x_height);
+sketch subpath(0,3) of cb_va_p..z11;
+barandhook_forma(11,vmwidth,5);
+pivot_message(x5,x2,x11a);
+w:=rt x11b;
+endtchar; etest;
+
+stest(cbksha); telchar "base of consonant ksha";
+begintchar(cb_ksha_code,cb_ka_width#,x_height#,cb_ksha_depth#,0,0,0);
+cb_ksha_form;
+sketch cb_ka_p;
+pivot_message(x2,x6);
+endtchar; etest;
+
+stest(cbdt); telchar "dantyam accent(sits at top)";
+begintchar(cb_dt_code,vmwidth#,0,0,0,0,0);
+% h is set later
+top z1=(0,top_accent);
+barandhook_form(1,w,5);erase sketch barandhook_p;
+transform t;
+t:=identity reflectedabout (top z1, top z1 + (w,0));
+sketch barandhook_p transformed t;
+h:=ypart((bot z1c) transformed t);
+pivot_message((w/2));
+endtchar; etest;
+
+stest(cbnp); telchar "consonant nakaarapollu(np)";
+begintchar(cb_np_code,cb_np_width#,x_height#,0,0,0,ur#);
+bot z1 = (1/2w,0);
+bot z2 = (1/5w,0);
+z3 = (x2,1/3x_height);
+z4 = (x1,y3);
+z5 = (x3,2/3x_height);
+z6 = (x1,y5);
+top z7 = (x2,x_height);
+top rt z8 = (w,x_height);
+sketch z1--z2{left}..{right}z3--z4;
+sketch z3{left}..{right}z5--z6;
+sketch z5{left}..{right}z7--z8;
+endtchar; etest;
+
+stest(cbvg); telchar "consonant valapalagilaka(vg)";
+begintchar(cb_vg_code,cb_vg_width#,x_height#,0,0,0,ur#);
+bot z1 = (1/2w,0);
+bot z2 = (1/5w,0);
+z3 = (x2,1/3x_height);
+z4 = (x1,y3);
+top z5 = (x2,2/3x_height);
+top rt z6 = (w,2/3x_height);
+sketch z1--z2{left}..{right}z3--z4;
+sketch z3{left}..{right}z5--z6;
+h:=top y5;
+endtchar; etest;
+
+stest(cbbb); telchar "consonant blackbox(bb)";
+%This is not really a letter in Telugu. However this character
+% is useful for demonstrating vowel modifiers, cons. conjuncts, accents etc.
+begintchar(cb_bb_code,0.2em_width#,0.8x_height#,0.25x_height#,0,0,0);
+fill (0,-d)--(w,-d)--(w,h)--(0,h)--cycle;
+pivot_message((w/2),(w/2));
+endtchar; etest;
+
+stest(cbbo); telchar "consonant outlinebox(bo)";
+%This is not really a letter in Telugu. However this character
+% is useful for demonstrating vowel modifiers, cons. conjuncts, accents etc.
+begintchar(cb_bo_code,0.2em_width#,x_height#,0,0,0,0);
+bot lft z1=(0,-d);bot rt z2=(w,-d);top rt z3=(w,h); top lft z4=(0,h);
+z1a=(0,y1);z2a=(w,y2);z3a=(w,y3);z4a=(0,y4);
+sketch z1--z4; sketch z2--z3; sketch z1a--z2a; sketch z4a--z3a;
+cutoff(z1a,180);cutoff(z2a,0);cutoff(z3a,0);cutoff(z4a,180);
+pivot_message((w/2),(w/2));
+endtchar; etest;
+
+stest(cbbe); telchar "consonant emptybox(be)";
+%This is not really a letter in Telugu. However this character
+% is useful for demonstrating vowel modifiers, cons. conjuncts, accents etc.
+begintchar(cb_be_code,0.2em_width#,x_height#,0,0,0,0);
+pivot_message((w/2),(w/2));
+endtchar; etest;
+%----------------End of Consonants(Base)----------
+
+stest(ccka); telchar "consonant conjunct of ka";
+begintchar(cc_ka_code,6u#,x_height#,des_depth#,0,ul#,0);
+top lft z1 = (0,h);
+z2 = (w/4,(-d+h)/2);
+lft z3 = (0,-1/3d);
+bot z4 = (1/3w,-d);
+z5 = (w/2,0);
+rt z6 = (w,0);
+sketch z1..z2..z3..z4{right}..{up}z5--z6;
+endtchar; etest;
+
+stest(cckha); telchar "consonant conjunct of kha";
+begintchar(cc_kha_code,cb_kha_width#,x_height#,0,0,0,0);
+cb_kha_form;
+cc_clear; cc_transform(cb_kha_p);
+cc_transform(wedge_p);cc_whd(0,1);
+pivot_message(x5*cc_scale);
+endtchar; etest;
+
+stest(ccga); telchar "consonant conjunct of ga";
+begintchar(cc_ga_code,cb_ga_width#,x_height#,0,0,0,0);
+cb_ga_form;
+cc_clear; cc_transform(cb_ga_p);cc_whd(0,0);
+pivot_message(x3*cc_scale);
+endtchar; etest;
+
+stest(ccgha); telchar "consonant conjunct of gha";
+begintchar(cc_gha_code,cb_va_width#+vm_u_width#,x_height#,0,0,0,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+top z10=1/2[rt z1,z1];
+wedge(10);
+vm_u_form(3);
+cc_clear; cc_transform(subpath(0,3.4) of cb_va_p);
+cc_transform(lit_cir_p);
+cc_transform(wedge_p);cc_transform(vm_u_p);cc_whd(0,1);
+pivot_message(x1*cc_scale);
+endtchar; etest;
+
+stest(ccnga); telchar "consonant conjunct of nga";
+begintchar(cc_nga_code,cb_ja_width#,x_height#,0,0,0,0);
+cb_ja_form;
+half_plus_form(3);
+cc_clear; cc_transform(cb_ja_pa);
+cc_transform(half_plus_pa);
+cc_transform(half_plus_pb);cc_whd(0,0);
+pivot_message(x7*cc_scale);
+endtchar; etest;
+
+stest(cccha); telchar "consonant conjunct of cha";
+begintchar(cc_cha_code,cb_cha_width#,x_height#,0,0,ul#,0);
+cb_cha_form;
+cc_clear; cc_transform(((subpath (0,6) of cb_cha_p) .. z97));
+cc_whd(1,0);
+endtchar; etest;
+
+stest(ccccha); telchar "consonant conjunct of ccha";
+begintchar(cc_ccha_code,cb_cha_width#,x_height#,0,0,ul#,0);
+cb_cha_form;
+z10 = 1/2[rt z5,z5];
+wedge(10);
+cc_clear; cc_transform(((subpath (0,6) of cb_cha_p) .. z97));
+cc_transform(wedge_p);cc_whd(1,1);
+endtchar; etest;
+
+stest(ccja); telchar "consonant conjunct of ja";
+begintchar(cc_ja_code,cb_ja_width#,x_height#,0,0,0,0);
+cb_ja_form;
+cc_clear; cc_transform(cb_ja_pa);
+cc_transform(cb_ja_pb); cc_whd(0,0);
+pivot_message(x7*cc_scale);
+endtchar; etest;
+
+stest(ccjha); telchar "consonant conjunct of jha";
+begintchar(cc_jha_code,cb_ra_width#+2vm_u_width#,x_height#,0,0,0,0);
+cb_ra_form;
+% The next statement will identify the point on ra_form
+% where the bowl will be attached.
+z5=z4;
+vm_u_form(5);
+path p; p:=vm_u_p;
+z6 = z5b;
+wedge(6);
+z7 = z6;
+vm_u_form(7);
+w:=rt x7b;
+cc_clear; cc_transform(cb_ra_p);
+cc_transform(p); cc_transform(vm_u_p);
+cc_transform(wedge_p);cc_whd(0,1);
+penlabels(5,6);
+pivot_message(x5*cc_scale);
+endtchar; etest;
+
+stest(ccnya); telchar "consonant conjunct of nya";
+begintchar(cc_nya_code,v_e_width#+half_plus_width#,x_height#,0,0,0,0);
+v_e_form;
+z14= v_e_p intersectionpoint ((x4,j_height)--(w,j_height));
+z15=rt z14;
+half_plus_form(15);
+w:=rt x15b;d:=abs(bot y10);
+cc_clear; cc_transform(v_e_p);
+cc_transform(half_plus_pa);
+cc_transform(half_plus_pb);cc_whd(0,0);
+d:=d+(abs(bot y10) - pen_width/2)*cc_scale + pen_width/2+bot_spill;
+pivot_message(x7*cc_scale);
+endtchar; etest;
+
+stest(cctta); telchar "consonant conjunct of tta";
+begintchar(cc_tta_code,cb_tta_width#,top_height#,0,0,0,0);
+cb_tta_form;
+vwedge(18);
+cc_clear; cc_transform(cb_tta_p); cc_whd(0,0);
+pivot_message(x4*cc_scale);
+endtchar; etest;
+
+stest(ccttha); telchar "consonant conjunct of ttha";
+begintchar(cc_ttha_code,cb_ra_width#,x_height#,0,0,0,0);
+cb_ra_form;
+z10 = (x1,1/2x_height);
+fill_dot(10);
+cc_clear; cc_transform(cb_ra_p);
+cc_f_transform(fill_dot_p);cc_whd(0,0);
+pivot_message(x1*cc_scale);
+endtchar; etest;
+
+stest(ccdda); telchar "consonant conjunct of dda";
+begintchar(cc_dda_code,v_u_width#,top_height#,0,0,0,0);
+v_u_form;
+cc_clear; cc_transform(v_u_p); cc_whd(0,0);
+pivot_message(x5*cc_scale);
+endtchar; etest;
+
+stest(ccddha); telchar "consonant conjunct of ddha";
+begintchar(cc_ddha_code,v_u_width#,x_height#,0,0,0,0);
+v_u_form;
+z12=3/4[rt z5,z5];
+wedge(12);
+cc_clear; cc_transform(v_u_p);
+cc_transform(wedge_p);cc_whd(0,1);
+pivot_message(x5*cc_scale);
+endtchar; etest;
+
+stest(ccnna); telchar "consonant conjunct of nna";
+begintchar(cc_nna_code,cb_nna_width#,x_height#,0,0,0,0);
+cb_nna_form;
+cc_clear; cc_transform(cb_nna_p);cc_whd(0,0);
+pivot_message(x6*cc_scale);
+endtchar; etest;
+
+stest(ccta); telchar "consonant conjunct of ta";
+begintchar(cc_ta_code,vmwidth#,0,0,0,0,0);
+% d is set later
+top z1=(0,0); barandhook_form(1,w,5); erase sketch barandhook_p;
+sketch barandhook_p reflectedabout ( top z1, top z1+(w,0))
+ shifted (0, (-bot_accent+ (bot y1c)));
+d:=bot_accent- (bot y1c);
+pivot_message((w/2));
+endtchar; etest;
+
+stest(cctha); telchar "consonant conjunct of tha";
+begintchar(cc_tha_code,cb_da_width#,x_height#,0,0,0,0);
+cb_da_form;
+wedge(4);
+z10 = (x1,2/3x_height-uh);
+fill_dot(10);
+cc_clear; cc_transform(cb_da_p);
+cc_transform(wedge_p); cc_f_transform(fill_dot_p);
+cc_whd(0,1);
+pivot_message(x4*cc_scale);
+endtchar; etest;
+
+stest(ccda); telchar "consonant conjunct of da";
+begintchar(cc_da_code,cb_da_width#,x_height#,0,0,0,0);
+cb_da_form;
+cc_clear; cc_transform(cb_da_p);
+cc_whd(0,0);
+pivot_message(x4*cc_scale);
+endtchar; etest;
+
+stest(ccdha); telchar "consonant conjunct of dha";
+begintchar(cc_dha_code,cb_da_width#,x_height#,0,0,0,0);
+cb_da_form;
+wedge(4);
+cc_clear; cc_transform(cb_da_p);
+cc_transform(wedge_p);
+cc_whd(0,1);
+pivot_message(x4*cc_scale);
+endtchar; etest;
+
+stest(ccna); telchar "consonant conjunct of na";
+begintchar(cc_na_code,7u#,x_height#,des_depth#,0,ul#,0);
+top lft z1 = (0,h);
+z2 = (1/2w,(h-d)/2);
+bot z3 = (1/4w,-d);
+lft z4 = (0,-d+1/2sc_height);
+z5 = (x3,y3+sc_height);
+bot z6 = (3/4w,-d);
+rt z7 = (w,y4);
+sketch z1..z2..z3..z4..z5..z6..z7;
+endtchar; etest;
+
+stest(ccpa); telchar "consonant conjunct of pa";
+begintchar(cc_pa_code,cb_va_width#,top_height#,0,0,ul#,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+cc_clear; cc_transform(((subpath(0,2) of cb_va_p)..z97));
+cc_transform(lit_cir_p);
+cc_whd(1,0);
+endtchar; etest;
+
+stest(ccpha); telchar "consonant conjunct of pha";
+begintchar(cc_pha_code,cb_va_width#,x_height#,0,0,ul#,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+top z10 = 1/2[rt z1,z1];
+wedge(10);
+cc_clear; cc_transform(((subpath(0,2) of cb_va_p)..z97));
+cc_transform(lit_cir_p);cc_transform(wedge_p); cc_whd(1,1);
+endtchar; etest;
+
+stest(ccba); telchar "consonant conjunct of ba";
+begintchar(cc_ba_code,cb_ba_width#,top_height#,0,0,ul#,0);
+cb_ba_form;
+cc_clear; cc_transform(((subpath(0,7) of cb_ba_p)..z97));
+cc_whd(1,0);
+endtchar; etest;
+
+stest(ccbha); telchar "consonant conjunct of bha";
+begintchar(cc_bha_code,cb_ba_width#,x_height#,0,0,ul#,0);
+cb_ba_form;
+wedge(6);
+cc_clear; cc_transform(((subpath(0,7) of cb_ba_p)..z97));
+cc_transform(wedge_p); cc_whd(1,1);
+endtchar; etest;
+
+stest(ccma); telchar "consonant conjunct of ma";
+begintchar(cc_ma_code,6u#,x_height#,des_depth#,0,ul#,0);
+rt z1=(w,-d+uh);bot z2=(w/2,-d);
+lft z3=(0,-d/3); z4=(2/3w,x_height/5);
+rt z5=(w,0); z6=(x4,-5/10d);
+z7=(w/2,y5); z8=(2/3w,x_height/2);
+top lft z9=(0,h);
+sketch z1..z2..z3..z4..z5..z6..z7..z8..z9;
+endtchar; etest;
+
+stest(ccya); telchar "consonant conjunct of ya";
+begintchar(cc_ya_code,6u#,x_height#,des_depth#,0,ul#,0);
+lft z1 = (0,-1/3d); z2 = (w/4,0); z3 = (1/4w,-1/2d);
+bot z4 = (1/3w,-d); z5 = (2/3w,0); z6 = (1/3w,j_height);
+top z7 = (2/3w,h); rt z8=(w,y6);
+sketch z1..z2..z3..z4..z5..z6..z7..z8;
+endtchar; etest;
+
+stest(ccra); telchar "consonant conjunct of ra";
+begintchar(cc_ra_code,7u#,0,3.5uh#,0,0,0);
+top lft z1=(0,-bot_accent); bot z2=(w/2,-d); top rt z3=(w,-bot_accent);
+sketch z1..z2..z3;
+pivot_message(x2);
+endtchar; etest;
+
+stest(ccrra); telchar "consonant conjunct of rra";
+begintchar(cc_rra_code,cb_tta_width#,x_height#,0,0,0,0);
+cb_rra_form;
+cc_clear; cc_transform(cb_rra_p); cc_whd(0,0);
+pivot_message(x4*cc_scale);
+endtchar; etest;
+
+stest(ccla); telchar "consonant conjunct of la";
+begintchar(cc_la_code,7u#,0,4.5uh#,0,0,0);
+path s,t;
+bot z1=(w/4,-d); lft z2 =(0,-1/2d); top z3=(x1,-bot_accent);
+top z4=(w/2,y2);
+s= z1..z2..z3..z4;
+t=s reflectedabout ((w/2,h),(w/2,-d));
+sketch s;sketch t;
+pivot_message(x4);
+endtchar; etest;
+
+stest(cclla); telchar "consonant conjunct of lla";
+begintchar(cc_lla_code,cb_lla_width#,asc_height#,0,0,ul#,0);
+ cb_lla_form;
+cc_clear; cc_transform(((subpath (0,6) of cb_lla_pa)..z97));
+cc_transform(cb_lla_pb); cc_whd(1,0);
+endtchar; etest;
+
+stest(ccva); telchar "consonant conjunct of va";
+begintchar(cc_va_code,6u#,x_height#,des_depth#,0,ul#,0);
+lit_cir_form; erase sketch lit_cir_p;
+transform t;
+t= identity shifted (0,-d);
+sketch lit_cir_p transformed t;
+z10=z1 transformed t;
+z2 = (0,y1); bot z3 = (2/3w,-d); rt z4 = (w,-1/2d);
+z5 = (1/3w,w_height); top z6 = (2/3w,h); rt z7 = (w,j_height);
+sketch z10..z3..z4..z5..z6..z7;
+endtchar; etest;
+
+stest(ccca); telchar "consonant conjunct of ca";
+begintchar(cc_ca_code,cb_ca_width#,asc_height#,0,0,ul#,0);
+ cb_ca_form;
+cc_clear; cc_transform(((subpath (0,6) of cb_ca_p){up}..z97)); cc_whd(1,0);
+endtchar; etest;
+
+stest(ccsha); telchar "consonant conjunct of sha";
+begintchar(cc_sha_code,cb_sha_width#,x_height#,0,0,0,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+bot rt z10 = (cb_sha_width,0);
+sketch z3..z10;
+cc_clear; cc_transform(subpath(0,3.4) of cb_va_p);
+cc_transform(lit_cir_p);
+cc_transform((z3..z10)); cc_whd(0,0);
+pivot_message(x2*cc_scale);
+endtchar; etest;
+
+stest(ccsa); telchar "consonant conjunct of sa";
+begintchar(cc_sa_code,cb_na_width#,x_height#,0,0,ul#,0);
+cb_na_form;
+sketch subpath (0,4.7) of cb_na_p;
+cc_clear; cc_transform(((subpath (0,4) of cb_na_p)..z97)); cc_whd(1,0);
+endtchar; etest;
+
+stest(ccha); telchar "consonant conjunct of ha";
+begintchar(cc_ha_code,cb_va_width#+vmwidth#-3.5u#,x_height#,0,0,0,0);
+cb_va_form;
+z10 = point 3.6 of cb_va_p;
+top z11 = (x10,x_height);
+sketch subpath(0,3) of cb_va_p..z11;
+barandhook_forma(11,vmwidth,5);
+cc_clear; cc_transform((subpath(0,3) of cb_va_p..z11));
+cc_transform(lit_cir_p);
+cc_transform(barandhook_p); cc_whd(0,0);
+pivot_message(x2*cc_scale);
+endtchar; etest;
+
+% ---------- start of ubayaksharas -----------
+
+stest(uas); telchar "accent ardhasunna";
+begintchar(u_ardhasunna_code,x_height#/2,x_height#,0,0,0,ur#);
+top rt z2=(w,h); bot rt z1=(w,0); lft z3=(0,h/2);
+sketch z1..z3..z2;
+endtchar; etest;
+
+stest(us); telchar "accent sunna";
+begintchar(u_sunna_code,x_height#,x_height#,0,0,0,ur#);
+top z2=(w/2,h); bot z1=(x2,0);
+sketch z1..z2..cycle;
+endtchar; etest;
+
+stest(uvi); telchar "accent visarga";
+begintchar(u_visarga_code,2/5x_height#,x_height#,0,0,0,ur#);
+top z2 = (w/2,h); bot z1 =(x2,3h/5);
+path puvi;
+puvi= z1..z2..cycle;
+sketch puvi; sketch puvi shifted (0,-2h/3);
+endtchar; etest;
+
+stest(uav); telchar "accent ardhavisarga";
+begintchar(u_ardhavisarga_code,2/5x_height#,x_height#,0,0,0,ur#);
+path puav;
+top z2 = (w/2,h); bot z1 =(x2,3h/5);
+puav = subpath (0.25,1.75) of (z1..z2..cycle);
+sketch puav;sketch puav shifted (0,-2h/3);
+endtchar; etest;
+
+stest(ua); telchar "accent avagraha";
+begintchar(u_avagraha_code,tfig_width#,x_height#,0,0,0,ur#);
+top lft z1=(0,h); lft z2=(0,h/4); z3=(w/2,(y1+y2)/2);
+bot lft z4=(0,0); bot rt z5=(w,0);
+sketch flex (z1,z3,z2,z4)& z4--z5;
+endtchar; etest;
+
+% ----------- end of ubhayaksharas ----------
+
+% bars used for transliteration of vedic hymns
+
+stest(buone); telchar "b udatta(one bar)";
+begintchar(b_udatta1_code,u#,top_accent#+3uh#,0,0,0,0);
+bot z1=(w/2,top_accent); top z2=(x1,h);
+sketch z1--z2;
+pivot_message((w/2));
+endtchar; etest;
+
+stest(butwo); telchar "b udatta (two bars)";
+begintchar(b_udatta2_code,3.5u#,top_accent#+3uh#,0,0,0,0);
+bot z1=(w/4,top_accent); top z2=(x1,h);
+bot z3=(w/4+w/2,top_accent); z4=z2+(w/2,0);
+sketch z1--z2; sketch z3-- z4;
+pivot_message((w/2));
+endtchar; etest;
+
+stest(ba); telchar "b anudatta";
+begintchar(b_anudatta_code,4u#,0,0,0,0,0);
+% d is set later
+top lft z1=(0,-bot_accent);top rt z2=(w,-bot_accent);
+sketch z1--z2;
+d:=- (bot y1);
+pivot_message((w/2));
+endtchar; etest;
+
diff --git a/Master/texmf-dist/fonts/source/public/itrans/telchrs2.mf b/Master/texmf-dist/fonts/source/public/itrans/telchrs2.mf
new file mode 100644
index 00000000000..595ad923c86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/telchrs2.mf
@@ -0,0 +1,506 @@
+% This file is part of the TeluguTeX Software Package.
+%Copyright (c) 1991 Lakshmankumar Mukkavilli
+%
+%The TeluguTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the TeluguTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the TeluguTeX Software Package, but only under the conditions described in the
+%TeluguTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with TeluguTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+% This file contains code to generate
+% symbols for Consonant + Vowel's that need special handling
+
+stest(cvku); telchar "consonant+vowel ka+u";
+begintchar(cv_ku_code,cb_ka_width#,asc_height#,0,0,0,0);
+cb_ka_form;
+vm_a_form(2);
+z20=(cb_ka_width+u,w_height);
+vm_u_form(20); erase sketch vm_u_p;
+sketch cb_ka_p..vm_u_p;w:=rt x20b;
+pivot_message(x20d);
+endtchar; etest;
+
+stest(cvkhe); telchar "consonant+vowel kha+e";
+begintchar(cv_khe_code,cb_kha_width#,vm_e_height1#,wedge_depth#,0,0,0);
+cb_kha_form;erase sketch cb_kha_p;
+vm_e_form_a(cb_kha_width/2); sketch (subpath (0,9) of cb_kha_p)..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvkhao); telchar "consonant+vowel kha+ao";
+begintchar(cv_khao_code,cb_kha_width#,vm_e_height1#,wedge_depth#,0,0,0);
+cb_kha_form;erase sketch cb_kha_p;
+vm_ao_form(17,cb_kha_width/2);
+sketch (subpath (0,9) of cb_kha_p)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x17i);
+endtchar; etest;
+
+stest(cvge); telchar "consonant+vowel ga+e";
+begintchar(cv_ge_code,cb_ga_width#,vm_e_height3#,0,0,0,0);
+cb_ga_form;
+sketch cv_ge_p;
+pivot_message(x31);
+endtchar; etest;
+
+stest(cvngu); telchar "consonant+vowel nga+u";
+begintchar(cv_ngu_code,cb_ja_width#/2,x_height#,0,0,0,0);
+cv_ngu_form;
+endtchar; etest;
+
+stest(cvnguu); telchar "consonant+vowel nga+uu";
+begintchar(cv_nguu_code,cb_ja_width#/2,x_height#,0,0,0,0);
+cv_ngu_form;
+barandhook_forma(4,3/4vmwidth,5);
+w:=rt x4b;
+endtchar; etest;
+
+stest(cvche); telchar "consonant+vowel cha+e";
+begintchar(cv_che_code,cb_cha_width#,vm_e_height1#,0,0,0,0);
+cb_cha_form; erase sketch cb_cha_p;
+vm_e_form_a(cb_cha_width/2);
+sketch (subpath(0,6) of cb_cha_p)..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvchao); telchar "consonant+vowel cha+ao";
+begintchar(cv_chao_code,cb_cha_width#,vm_e_height1#,0,0,0,0);
+cb_cha_form; erase sketch cb_cha_p;
+vm_ao_form(11,cb_cha_width/2);
+sketch (subpath (0,6) of cb_cha_p)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvcche); telchar "consonant+vowel ccha+e";
+begintchar(cv_cche_code,cb_cha_width#,vm_e_height1#,wedge_depth#,0,0,0);
+cb_cha_form; erase sketch cb_cha_p;
+vm_e_form_a(cb_cha_width/2);
+sketch (subpath(0,6) of cb_cha_p)..vm_e_pa;
+z10 = 1/2[rt z5,z5];
+wedge(10);
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvcchao); telchar "consonant+vowel ccha+ao";
+begintchar(cv_cchao_code,cb_cha_width#,vm_e_height1#,wedge_depth#,0,0,0);
+cb_cha_form; erase sketch cb_cha_p;
+vm_ao_form(11,cb_cha_width/2);
+sketch (subpath (0,6) of cb_cha_p)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+z10 = 1/2[rt z5,z5];
+wedge(10);
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvje); telchar "consonant+vowel ja+e";
+begintchar(cv_je_code,cb_ja_width#,vm_e_height1#,0,0,0,0);
+cb_ja_form;vm_e_form_a(0.8cb_ja_width);
+sketch (subpath (0,1) of cb_ja_pb)..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvju); telchar "consonant+vowel ja+u";
+begintchar(cv_ju_code,cb_ja_width#/2,x_height#,0,0,0,0);
+cv_ju_form;
+endtchar; etest;
+
+stest(cvjuu); telchar "consonant+vowel ja+uu";
+begintchar(cv_juu_code,cb_ja_width#/2,x_height#,0,0,0,0);
+cv_ju_form;
+barandhook_forma(4,3/4vmwidth,5);
+w:=rt x4b;
+endtchar; etest;
+
+stest(cvjao); telchar "consonant+vowel ja+ao";
+begintchar(cv_jao_code,cb_ja_width#,vm_e_height1#,0,0,0,0);
+cb_ja_form;
+vm_ao_form(11,0.65cb_ja_width);
+sketch (subpath (0,2) of cb_ja_pb)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvttao); telchar "consonant+vowel tta+ao";
+begintchar(cv_ttao_code,cb_tta_width#,x_height#,0,0,0,0);
+cb_tta_form;
+vwedge(18);
+vm_ao_form(16,cb_tta_width/2);
+sketch cb_tta_p..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+h:=max(top y18a,h);
+pivot_message(x16i);
+endtchar; etest;
+
+stest(cvtthe); telchar "consonant+vowel ttha+e";
+begintchar(cv_tthe_code,cb_ra_width#,vm_e_height3#,0,0,0,0);
+cb_ra_form;
+sketch cv_re_p;
+z10 = (x1,1/2x_height);
+fill_dot(10);
+pivot_message(x31);
+endtchar; etest;
+
+stest(cvddu); telchar "consonant+vowel dda+u";
+begintchar(cv_ddu_code,v_u_width#,asc_height#,0,0,0,0);
+v_u_form;z14=((x8+x9)/2,y8);vm_a_form(14);
+vm_u_form(3); w:=rt x3b+4u/10;
+pivot_message(x3d);
+endtchar; etest;
+
+stest(cvddhu); telchar "consonant+vowel ddha+u";
+begintchar(cv_ddhu_code,v_u_width#,asc_height#,wedge_depth#,0,0,0);
+v_u_form;z14=((x8+x9)/2,y8);vm_a_form(14);
+z12=3/4[rt z5,z5];
+wedge(12);
+vm_u_form(3); w:=rt x3b;
+pivot_message(x3d);
+endtchar; etest;
+
+stest(cvte); telchar "consonant+vowel ta+e";
+begintchar(cv_te_code,cb_ta_width#,vm_e_height1#,0,0,0,0);
+cb_ta_form;
+vm_e_form_a(3/5cb_ta_width);
+ sketch (subpath (0,10) of cb_ta_p)..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvtao); telchar "consonant+vowel ta+ao";
+begintchar(cv_tao_code,cb_ta_width#,vm_e_height1#,0,0,0,0);
+cb_ta_form;
+vm_ao_form(11,2.2/5cb_ta_width);
+sketch (subpath (0,10) of cb_ta_p)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvthe); telchar "consonant+vowel tha+e";
+begintchar(cv_the_code,cb_da_width#,vm_e_height3#,wedge_depth#,0,0,0);
+cb_da_form;
+sketch cv_de_p;
+wedge(4);
+z10 = (x1,2/3x_height-uh);
+fill_dot(10);
+pivot_message(x31);
+endtchar; etest;
+
+stest(cvde); telchar "consonant+vowel da+e";
+begintchar(cv_de_code,cb_da_width#,vm_e_height3#,0,0,0,0);
+cb_da_form;
+sketch cv_de_p;
+pivot_message(x31);
+endtchar; etest;
+
+stest(cvdhe); telchar "consonant+vowel dha+e";
+begintchar(cv_dhe_code,cb_da_width#,vm_e_height3#,wedge_depth#,0,0,0);
+cb_da_form;
+sketch cv_de_p;
+wedge(4);
+pivot_message(x31);
+endtchar; etest;
+
+stest(cvne);telchar "consonant+vowel na+e";
+begintchar(cv_ne_code,cb_na_width#,vm_e_height1#,0,0,0,0);
+cb_na_form;
+vm_e_form_a(cb_na_width/2);
+sketch (subpath (0,4) of cb_na_p)..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvnao);telchar "consonant+vowel na+ao";
+begintchar(cv_nao_code,cb_na_width#,vm_e_height1#,0,0,0,0);
+cb_na_form;
+vm_ao_form(11,0.4cb_na_width);
+sketch (subpath (0,4) of cb_na_p)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvpaa); telchar "consonant+vowel pa+aa";
+begintchar(cv_paa_code,cb_va_width#,asc_height#,0,0,0,0);
+cb_va_form;
+sketch cv_paa_p;
+pivot_message(x2,x22);% x22 is used for alligning au modifier
+endtchar; etest;
+
+stest(cvpu); telchar "consonant+vowel pa+u";
+begintchar(cv_pu_code,cv_pu_width#,x_height#,cv_pu_depth#,0,0,0);
+cv_pu_form;
+pivot_message(x1);
+endtchar; etest;
+
+stest(ccvpu); telchar "consonant conjunct of pa + vowel u";
+begintchar(ccv_pu_code,cb_va_width#,top_height#,0,0,ul#,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+cc_clear; cc_transform(((subpath(0,2) of cb_va_p)..z97));
+numeric na,nb;
+(na,nb)=cc_transformed_path intersectiontimes
+ ((0,w_height)..(cb_va_width,w_height));
+z10=point na of cc_transformed_path;
+vm_u_form(10);
+cc_transform(lit_cir_p);
+cc_whd(1,0);
+w:=rt x10b;
+endtchar; etest;
+
+stest(cvpuu); telchar "consonant+vowel pa+uu";
+begintchar(cv_puu_code,cv_pu_width#,x_height#,cv_pu_depth#,0,0,0);
+cv_pu_form;barandhook_forma(4,3/4vmwidth,5);
+w:=rt x4b;
+pivot_message(x1);
+endtchar; etest;
+
+stest(ccvpuu); telchar "consonant conjunct of pa + vowel uu";
+begintchar(ccv_puu_code,cb_va_width#,top_height#,0,0,ul#,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+cc_clear; cc_transform(((subpath(0,2) of cb_va_p)..z97));
+numeric na,nb;
+(na,nb)=cc_transformed_path intersectiontimes
+ ((0,w_height)..(cb_va_width,w_height));
+z10=point na of cc_transformed_path;
+vm_u_form(10);barandhook_forma(10d,vmwidth,5);
+cc_transform(lit_cir_p);
+cc_whd(1,0);
+w:= rt x10d.b;
+endtchar; etest;
+
+stest(cvphaa); telchar "consonant+vowel pha+aa";
+begintchar(cv_phaa_code,cb_va_width#,asc_height#,wedge_depth#,0,0,0);
+cb_va_form;
+sketch cv_paa_p;
+top z13 = 1/2[rt z1,z1];
+wedge(13);
+pivot_message(x2,x22); %x22 is used for alligning au modifier
+endtchar; etest;
+
+stest(ccvphu); telchar "consonant conjunct of pha + vowel u";
+begintchar(ccv_phu_code,cb_va_width#,x_height#,0,0,ul#,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+top z10 = 1/2[rt z1,z1];
+wedge(10);
+cc_clear; cc_transform(((subpath(0,2) of cb_va_p)..z97));
+numeric na,nb;
+(na,nb)=cc_transformed_path intersectiontimes
+ ((0,w_height)..(cb_va_width,w_height));
+z11=point na of cc_transformed_path;
+vm_u_form(11);
+cc_transform(lit_cir_p);cc_transform(wedge_p); cc_whd(1,1);
+w:=rt x11b;
+endtchar; etest;
+
+stest(ccvphuu); telchar "consonant conjunct of pha + vowel uu";
+begintchar(ccv_phuu_code,cb_va_width#,x_height#,0,0,ul#,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+top z10 = 1/2[rt z1,z1];
+wedge(10);
+cc_clear; cc_transform(((subpath(0,2) of cb_va_p)..z97));
+numeric na,nb;
+(na,nb)=cc_transformed_path intersectiontimes
+ ((0,w_height)..(cb_va_width,w_height));
+z11=point na of cc_transformed_path;
+vm_u_form(11);barandhook_forma(11d,vmwidth,5);
+cc_transform(lit_cir_p);cc_transform(wedge_p); cc_whd(1,1);
+w:=rt x11d.b;
+endtchar; etest;
+
+stest(cvbe); telchar "consonant+vowel ba+e";
+begintchar(cv_be_code,cb_ba_width#,vm_e_height1#,0,0,0,0);
+cb_ba_form;erase sketch cb_ba_p;
+vm_e_form_a(cb_ba_width/2);
+sketch (subpath(0,7) of cb_ba_p)..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvbao); telchar "consonant+vowel ba+ao";
+begintchar(cv_bao_code,cb_ba_width#,vm_e_height1#,0,0,0,0);
+cb_ba_form;erase sketch cb_ba_p;
+vm_ao_form(11,cb_ba_width/2);
+sketch (subpath (0,7) of cb_ba_p)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvbhe); telchar "consonant+vowel bha+e";
+begintchar(cv_bhe_code,cb_ba_width#,vm_e_height1#,wedge_depth#,0,0,0);
+cb_ba_form;erase sketch cb_ba_p;
+vm_e_form_a(cb_ba_width/2);
+sketch (subpath(0,7) of cb_ba_p)..vm_e_pa;
+wedge(6);
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvbhao); telchar "consonant+vowel bha+ao";
+begintchar(cv_bhao_code,cb_ba_width#,vm_e_height1#,wedge_depth#,0,0,0);
+cb_ba_form;erase sketch cb_ba_p;
+vm_ao_form(11,cb_ba_width/2);
+sketch (subpath (0,7) of cb_ba_p)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+wedge(6);
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvre); telchar "consonant+vowel ra+e";
+begintchar(cv_re_code,cb_ra_width#,vm_e_height3#,0,0,0,0);
+cb_ra_form;
+sketch cv_re_p;
+pivot_message(x31);
+endtchar; etest;
+
+stest(cvle); telchar "consonant+vowel la+e";
+begintchar(cv_le_code,cb_la_width#,vm_e_height1#,0,0,0,0);
+cb_la_form;
+vm_e_form_a(0.6cb_la_width);
+sketch (subpath(0,6) of cb_la_p)..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvlao); telchar "consonant+vowel la+ao";
+begintchar(cv_lao_code,cb_la_width#,vm_e_height1#,0,0,0,0);
+cb_la_form;
+vm_ao_form(11,0.6cb_la_width);
+sketch (subpath (0,6) of cb_la_p)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvlle); telchar "consonant+vowel lla+e";
+begintchar(cv_lle_code,cb_lla_width#,vm_e_height1#,0,0,0,0);
+ cb_lla_form; erase sketch cb_lla_pa;
+vm_e_form_a(cb_lla_width/2);
+sketch (subpath(0,6) of cb_lla_pa)..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvllu); telchar "consonant+vowel lla+u";
+begintchar(cv_llu_code,cb_lla_width#,asc_height#,0,0,0,0);
+ cb_lla_form;vm_a_form(10);
+vm_u_form(12); w:=rt x12b;
+pivot_message(lft x12d);
+endtchar; etest;
+
+stest(cvllao); telchar "consonant+vowel lla+ao";
+begintchar(cv_llao_code,cb_lla_width#,vm_e_height1#,0,0,0,0);
+ cb_lla_form; erase sketch cb_lla_pa;
+vm_ao_form(11,cb_lla_width/2);
+sketch (subpath (0,6) of cb_lla_pa)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvve); telchar "consonant+vowel va+e";
+begintchar(cv_ve_code,cb_va_width#,vm_e_height1#,0,0,0,0);
+cb_va_form;
+vm_e_form_a(cb_va_width/2);
+sketch (subpath(0,2) of cb_va_p)..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvvao); telchar "consonant+vowel va+ao";
+begintchar(cv_vao_code,cb_va_width#,vm_e_height1#,0,0,0,0);
+cb_va_form;
+vm_ao_form(11,0.4cb_va_width);
+sketch (subpath (0,2) of cb_va_p)..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvce); telchar "consonant+vowel ca+e";
+begintchar(cv_ce_code,cb_ca_width#,vm_e_height1#,0,0,0,0);
+ cb_ca_form; erase sketch cb_ca_p;
+vm_e_form_a(cb_ca_width/3);
+sketch (subpath(0,6) of cb_ca_p){up}..vm_e_pa;
+pivot_message(x999);
+endtchar; etest;
+
+stest(cvcao); telchar "consonant+vowel ca+ao";
+begintchar(cv_cao_code,cb_ca_width#,vm_e_height1#,0,0,0,0);
+ cb_ca_form; erase sketch cb_ca_p;
+vm_ao_form(11,cb_ca_width/3);
+sketch (subpath (0,6) of cb_ca_p){up}..subpath (1,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+pivot_message(x11i);
+endtchar; etest;
+
+stest(cvshaa); telchar "consonant+vowel sha+aa";
+begintchar(cv_shaa_code,cb_sha_width#,asc_height#,wedge_depth#,0,0,0);
+cb_va_form;
+sketch cv_paa_p;
+bot rt z25 = (cb_sha_width,-d);
+sketch bot z3{down}..{right}z25;
+pivot_message(x2,x22); %x22 used for alligning au modifier
+endtchar; etest;
+
+stest(cvshu); telchar "consonant+vowel sha+u";
+begintchar(cv_shu_code,cb_va_width#,asc_height#,1.25wedge_depth#,0,0,0);
+cb_va_form;
+sketch subpath(0,3.4) of cb_va_p;
+top z30=(x1,x_height);vm_a_form(30);
+bot rt z25 = (cb_sha_width,-d);
+sketch bot z3{down}..{right}z25;
+ vm_u_form(3);w:=rt x3b;
+pivot_message(lft x3d);
+endtchar; etest;
+
+stest(cvsaa); telchar "consonant+vowel sa+aa";
+begintchar(cv_saa_code,cb_na_width#,asc_height#,0,0,0,0);
+cb_na_form;top z20=(w/2,h);
+path cv_saa_p;
+cv_saa_p=subpath (0,4) of cb_na_p..z20;
+sketch cv_saa_p;
+numeric aa; aa= (x3+x4)/2;
+numeric na,nb;
+(na,nb)=cv_saa_p intersectiontimes
+ ((0,asc_height2)..(cb_na_width,asc_height2));
+z21=point na of cv_saa_p;
+pivot_message(aa,x21); %x21 is used for alligning au modifier
+endtchar; etest;
+
+stest(cvhaa); telchar "consonant+vowel ha+aa";
+begintchar(cv_haa_code,cb_va_width#+vmwidth#,asc_height#,0,0,0,0);
+cb_va_form;
+z10 = point 3.6 of cb_va_p;
+top z11 = (x10,x_height);
+sketch subpath(0,3) of cb_va_p..z11;
+barandhook_forma(11,vmwidth,5);
+vm_a_form(5);vm_hook_form(11e,3);
+w:=max(rt x11e.c,rt x11b);
+endtchar; etest;
+
+stest(cvhao); telchar "consonant+vowel ha+ao";
+begintchar(cv_hao_code,cb_va_width#+vmwidth#,asc_height#,0,0,0,0);
+cb_va_form;
+z10 = point 3.6 of cb_va_p;
+top z11 = (x10,x_height);
+sketch subpath(0,3) of cb_va_p..z11;
+barandhook_forma(11,vmwidth,4);
+numeric oldh;
+vm_a_form(5);erase sketch barandhook_p;oldh:=h;
+vm_ao_form(12,0.63w); sketch barandhook_p..subpath (2,3) of vm_ao_pa;
+sketch subpath (0,5) of vm_ao_pb;
+h:=max(h,oldh);
+pivot_message(x12i);
+endtchar; etest;
+
+stest(cvkshu); telchar "consonant+vowel ksha+u";
+begintchar(cv_kshu_code,cb_ka_width#,asc_height#,cb_ksha_depth#,0,0,0);
+cb_ksha_form;
+vm_a_form(2);
+z20=(cb_ka_width+u,w_height);
+vm_u_form(20); erase sketch vm_u_p;
+sketch cb_ka_p..vm_u_p; w := rt x20b;
+pivot_message(x20d);
+endtchar; etest;
+
diff --git a/Master/texmf-dist/fonts/source/public/itrans/telchrs3.mf b/Master/texmf-dist/fonts/source/public/itrans/telchrs3.mf
new file mode 100644
index 00000000000..9cff20d6994
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/telchrs3.mf
@@ -0,0 +1,502 @@
+% This file is part of the TeluguTeX Software Package.
+%Copyright (c) 1991 Lakshmankumar Mukkavilli
+%
+%The TeluguTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the TeluguTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the TeluguTeX Software Package, but only under the conditions described in the
+%TeluguTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with TeluguTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%
+% This file contains code to generate roman digits,
+% telugu digits and punctuation symbols
+% --------- start of roman digits ------------
+stest(drzero); telchar "Roman digit zero";
+begintchar(dr_zero_code,7u#,fig_height#,0,0,0,ur#);
+top z1=(w/2,h); lft z2=(0,1/2h);
+bot z3=(w/2,0); rt z4=(w,1/2h);
+sketch superellipse(z4,z1,z2,z3,0.707);
+endtchar; etest;
+
+stest(drone); telchar "Roman digit one";
+begintchar(dr_one_code,4u#,fig_height#,0,0,0,ur#);
+bot lft z1=(0,0); bot rt z2=(w,0); top z3=(x5,h);
+lft z4=(x1,x_height+uh); bot z5=1/2[z1,z2];
+sketch z1--z2; sketch z3--z5;
+sketch z4..{up}z3;
+endtchar; etest;
+
+stest(drtwo); telchar "Roman digit two";
+begintchar(dr_two_code,7u#,fig_height#,0,0,0,ur#);
+bot lft z1=(0,0); bot rt z2=(w,0); lft z3=(0,x_height);
+top z4=(w/2,h); rt z5=(w,y3);
+sketch z1--z2; sketch z3..z4..z5..{-1,-1}z1;
+endtchar; etest;
+
+stest(drthree); telchar "Roman digit three";
+begintchar(dr_three_code,7u#,fig_height#,0,0,0,ur#);
+path pa;
+top lft z1=(0,3/4h); top z2=(w/2,h);
+rt z3=(w,y1); z4=(w/2-u,1/2h);
+pa= z1..z2..z3..{(-1,0)}z4;
+sketch pa; sketch pa reflectedabout (z4,(w,y4));
+endtchar; etest;
+
+stest(drfour); telchar "Roman digit four";
+begintchar(dr_four_code,7u#,fig_height#,0,0,0,ur#);
+bot z1=(w-1.5u,0); top z2=(x1,h);
+lft z3=(0,w_height); rt z4=(w,y3);
+bot z1a=(x1-(x4-x1),0); bot z1b=(x4,0);
+sketch z1a--z1b; sketch z1--z2;
+sketch z3--z2; sketch z3--z4;
+penlabels(1a,1b);
+endtchar; etest;
+
+stest(drfive); telchar "Roman digit five";
+begintchar(dr_five_code,7u#,fig_height#,0,0,0,ur#);
+top rt z1=(w,h); top lft z2=(0,h); lft z3=(0,6/10h);
+z4=(1/2w,y3+uh); rt z5=(w,(y4+y6)/2); bot z6=(x4,0); lft z7=(0,1/4h);
+sketch z1--z2; sketch z2--z3;
+sketch z3..z4..z5..z6..z7;
+endtchar; etest;
+
+stest(drsix); telchar "Roman digit six";
+begintchar(dr_six_code,6u#,fig_height#,0,0,0,ur#);
+dr_sixnine_form;
+sketch dr_sixnine_p;
+endtchar; etest;
+
+stest(drseven); telchar "Roman digit seven";
+begintchar(dr_seven_code,7u#,fig_height#,0,0,0,ur#);
+top lft z1=(0,h); top rt z3=(w,h);
+bot z4=(1/4w,0);
+sketch z1--z3{(-1,-1)}..{down}z4;
+endtchar; etest;
+
+stest(dreight); telchar "Roman digit eight";
+begintchar(dr_eight_code,7u#,fig_height#,0,0,0,ur#);
+top z1=(w/2,h); z2=(x1,0.6h);
+bot z3=(x1,0); lft z4=(0,y2/2); rt z5=(w,y4);
+z6=(x4+u,1/2(y1+y2)); z7=(w-u,y6);
+sketch superellipse(z7,z1,z6,z2,0.707);
+sketch superellipse(z5,z2,z4,z3,0.707);
+endtchar; etest;
+
+stest(drnine); telchar "Roman digit nine";
+begintchar(dr_nine_code,6u#,fig_height#,0,0,0,ur#);
+dr_sixnine_form;
+bot lft z10 = z1;
+sketch dr_sixnine_p rotatedaround(z10,-180) shifted(-w,-h);
+endtchar; etest;
+
+%---------------------end of roman digits------------------------
+
+% ------------- start of telugu digits ------------
+
+stest(dtzero); telchar "telugu digit zero";
+begintchar(dt_zero_code,tfig_width#,tfig_height#,0,0,0,ur#);
+top z1=(w/2,h); lft z2=(0,h/2); bot z3=(x1,0); rt z4=(w,y2);
+sketch superellipse(z4,z1,z2,z3,0.707);
+endtchar; etest;
+
+stest(dtone); telchar "telugu digit one";
+begintchar(dt_one_code,tfig_width#+u#,tfig_height#,0,0,0,ur#);
+bot z1=(w/5,0); lft z2=(0,h/2); top z3=(w/2,h);
+rt z4=(w,h/2); bot z5=(w-(w/5),0);
+sketch z1..z2..z3..z4..z5;
+endtchar; etest;
+
+stest(dttwo); telchar "telugu digit two";
+begintchar(dt_two_code,tfig_width#,tfig_height#,0,0,0,ur#);
+z1=(3w/5,5h/6); z2=(x1,4h/6); z3=(w/2,y1);
+top z4=(x1,h); z5=((x8+x1)/2,y3); bot z6=(x1,0);
+bot lft z7=(0,0);rt z8=(w,h/2);
+sketch z1..z2..z3..z4..z8..{(-1,0)}z6--z7;
+endtchar; etest;
+
+
+stest(dtthree); telchar "telugu digit three";
+begintchar(dt_three_code,tfig_width#-2u#,tfig_height#,0,0,0,ur#);
+path pa;
+lft z1=(0,4h/5); top z2=(w/2,h); top z3=(4w/5,h);
+rt z4=(w,3h/4); z5=(3w/4,h/2); z6=(w/3,h/2);
+pa= z1..z2..z3..z4..z5;
+sketch pa; sketch pa reflectedabout(z5,z6);
+sketch z5--z6;
+endtchar; etest;
+
+stest(dtfour); telchar "telugu digit four";
+begintchar(dt_four_code,tfig_width#-u#,tfig_height#,0,0,0,ur#);
+top z1=(w/5,h); lft z2=(0,2h/3); z4=(w/2,h/3);
+bot z5=(x4,0); z3=(w/3,1/2(y4+y5));
+forsuffixes s=6,7,8:
+ z.s=z.[s-5] reflectedabout(z4,z5); endfor;
+sketch z1..z2..z4..z7..z6;
+sketch z4..z3..z5..z8..z4;
+endtchar; etest;
+
+stest(dtfive); telchar "telugu digit five";
+begintchar(dt_five_code,tfig_width#+u#,tfig_height#,0,0,0,ur#);
+lft z1=(0,8h/10); lft z2=(0,3h/10); z3=(2w/3,(y1+y2)/2);
+top z11=(w/3,h); z12 = z11 reflectedabout ((0,y3),(w,y3));
+sketch z1..z11..z3..z12..z2;
+top z4=(x3+(w-x3)/2,h);
+rt z5=(w,(y3+y4)/2);
+bot z7=(x4,0); rt z8=(x9,y9-uh); rt z9=(w,y2);
+sketch z3..z5..z4..z3..z7..z8..z9;
+endtchar; etest;
+
+stest(dtsix); telchar "telugu digit six";
+begintchar(dt_six_code,tfig_width#,tfig_height#,0,0,0,ur#);
+dt_six_form;
+sketch dt_six_pa; sketch dt_six_pb;
+endtchar; etest;
+
+stest(dtseven); telchar "telugu digit seven";
+begintchar(dt_seven_code,tfig_width#-2u#,tfig_height#,0,0,0,ur#);
+lft z1=(0,3h/4); top z2=(w/2,h); rt z3=(w,y1); z4=(w/2,h/2);
+forsuffixes i=6,7,8:
+ z.i=z.[i-5] rotatedaround (z4,180);
+endfor;
+sketch z1..z2..z3..z4..z8..z7..z6;
+endtchar; etest;
+
+
+stest(dteight); telchar "telugu digit eight";
+begintchar(dt_eight_code,tfig_width#+u#,tfig_height#,0,0,0,ur#);
+z2=(1.5u,w/2); lft z7=(0,(y2+y3)/2);
+bot z3=(w/4,0); z4=z2+(3(x3-x2),0);
+top z5=(x3,h); top rt z6=(w,h);
+sketch z2..z7..z3..z4..z5 & z5--z6;
+endtchar; etest;
+
+stest(dtnine); telchar "telugu digit nine";
+begintchar(dt_nine_code,tfig_width#,tfig_height#,0,0,0,ur#);
+dt_six_form;
+sketch dt_six_pa reflectedabout((0,0),(w,0)) shifted (0,h);
+sketch dt_six_pb reflectedabout((0,0),(w,0)) shifted (0,h);
+endtchar; etest;
+
+% end of telugu digits
+
+% --------- start of punctuation ----------
+
+stest(pperiod); telchar "punctuation period";
+begintchar(p_period_code,2*dot_radius#,2*dot_radius#,0,0,0,ur#);
+z1=(dot_radius,dot_radius);
+fill_dot(1);
+endtchar; etest;
+
+stest(pcomma); telchar "punctuation comma";
+begintchar(p_comma_code, p_comma_width#,2*dot_radius#,des_depth#,0,0,ur#);
+p_comma_form;
+endtchar; etest;
+
+stest(pequal); telchar "punctuation equal";
+begintchar(p_equal_code,10u#,3/4x_height#,0,0,0,ur#);
+top lft z1=(0,h); top rt z2=(w,h);
+bot lft z3=(0,1/4x_height); bot rt z4=(w,1/4x_height);
+sketch z1--z2; sketch z3--z4;
+endtchar; etest;
+
+stest(pbar); telchar "punctuation vertical bar";
+begintchar(p_bar_code,u#,x_height#,0,0,0,ur#);
+p_bar_form;
+sketch p_bar_p;
+endtchar; etest;
+
+stest(pdbar); telchar "punctuation double bar";
+begintchar(p_dbar_code,2.5u#,x_height#,0,0,0,ur#);
+p_bar_form;
+sketch p_bar_p;sketch p_bar_p reflectedabout ((w/2,0),(w/2,h));
+endtchar; etest;
+
+stest(pcolon); telchar "punctuation colon";
+begintchar(p_colon_code,2*dot_radius#,x_height#,0,0,0,ur#);
+z1=(dot_radius,dot_radius);
+fill_dot(1);
+z2=(x1,x_height-dot_radius);
+fill_dot(2);
+endtchar; etest;
+
+stest(pscolon); telchar "punctuation semicolon";
+begintchar(p_scolon_code,p_comma_width#,x_height#,des_depth#,0,0,ur#);
+p_comma_form;
+z5=(x1,x_height-dot_radius);
+fill_dot(5);
+endtchar; etest;
+
+stest(pcquote); telchar "punctuation closing quote";
+begintchar(p_cquote_code,p_comma_width#,asc_height#,0,0,0,ur#);
+p_comma_form;
+erase fill fill_dot_p; erase sketch p_comma_p;
+fill fill_dot_p shifted (0,asc_height-2*dot_radius);
+sketch p_comma_p shifted (0,asc_height-2*dot_radius);
+endtchar; etest;
+
+stest(pcquotes); telchar "punctuation closing quotes";
+begintchar(p_cquotes_code,2*p_comma_width#+u#,asc_height#,0,0,0,ur#);
+p_comma_form;
+erase fill fill_dot_p; erase sketch p_comma_p;
+fill fill_dot_p shifted (0,asc_height-2*dot_radius);
+sketch p_comma_p shifted (0,asc_height-2*dot_radius);
+fill fill_dot_p shifted (0,asc_height-2*dot_radius)
+ shifted (p_comma_width+u,0);
+sketch p_comma_p shifted (0,asc_height-2*dot_radius)
+ shifted (p_comma_width+u,0);
+endtchar; etest;
+
+stest(poquote); telchar "punctuation opening quote";
+begintchar(p_oquote_code,p_comma_width#,asc_height#,0,0,0,ur#);
+p_comma_form;
+erase fill fill_dot_p; erase sketch p_comma_p;
+lft z5 = z2;
+top rt z6 =z3;
+fill fill_dot_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6));
+sketch p_comma_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6));
+endtchar; etest;
+
+stest(poquotes); telchar "punctuation opening quotes";
+begintchar(p_oquotes_code,2*p_comma_width#+u#,asc_height#,0,0,0,ur#);
+p_comma_form;
+erase fill fill_dot_p; erase sketch p_comma_p;
+lft z5 = z2;
+top rt z6 =z3;
+fill fill_dot_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6));
+sketch p_comma_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6));
+fill fill_dot_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6))
+ shifted(p_comma_width+u,0);
+sketch p_comma_p rotatedaround (z5,-180) shifted(-x5,asc_height-abs(y6))
+ shifted(p_comma_width+u,0);
+endtchar; etest;
+
+stest(pdquotes);telchar "punctuation double quotes";
+begintchar(p_dquotes_code,4.5u#,asc_height#,0,0,0,ur#);
+top lft z1=(1.5u,h); bot lft z2=(0,x_height);
+top rt z3=(w,h); bot rt z4=(x1+1.5u,x_height);
+sketch z1--z2; sketch z3--z4;
+endtchar; etest;
+
+%stest(pdquotes);telchar "punctuation double quotes";
+%begintchar(p_dquotes_code,2*dot_radius#+u#,asc_height#,0,0,0,ur#);
+%%begintchar(p_dquotes_code,4*dot_radius#+u#,asc_height#,0,0,0,ur#);
+%path pa;
+%%z1=(dot_radius,h-dot_radius);z1l=(0,y1);z1r=(2x1,y1);z1t=(x1,h);
+%z1=(dot_radius/2,h-dot_radius/2);z1l=(0,y1);z1r=(2x1,y1);z1t=(x1,h);
+%z2=(x1,x_height);
+%%z2=(x1,x_height);z2l=(dot_radius/2,y2);z2r=(x2+(x2-x2l),y2);
+%%pa= z2l--z1l & flex(z1l,z1t,z1r) & z1r--z2r--cycle; fill pa;
+%pa= z2--z1l & flex(z1l,z1t,z1r) & z1r--z2--cycle; filldraw pa;
+%filldraw pa shifted(dot_radius+u,0);
+%%fill pa shifted(2dot_radius+u,0);
+%endtchar; etest;
+
+stest(pslash); telchar "punctuation virgule (slash)";
+begintchar(p_slash_code,6u#,asc_height#,des_depth#,0,0,ur#);
+p_slash_form;
+sketch p_slash_p;
+endtchar; etest;
+
+stest(phash); telchar "punctuation hash mark (number sign)";
+begintchar(p_hash_code,12u#,asc_height#,des_depth#,0,0,ur#);
+numeric midpoint;
+midpoint = (-des_depth+asc_height)/2;
+lft z1=(0,midpoint+2u); rt z2=(w,y1);
+lft z3=(0,midpoint-2u); rt z4=(w,y3);
+bot z5=(2u,-d); top z6=(x5+4u,h);
+z7=(x5+4u,y5); z8=(x7+4u,y6);
+sketch z1--z2; sketch z3--z4;
+sketch z5--z6; sketch z7--z8;
+endtchar; etest;
+
+%stest(pexcla); telchar "punctuation exclamation point";
+%begintchar(p_excla_code,dot_radius#,asc_height#,0,0,0,ur#);
+%pickup pencircle;
+%z1=(dot_radius/2,dot_radius/2);
+%filldraw fullcircle scaled 2x1 shifted z1;
+%z2=(x1,5*y1); z3 =(x1,h-y1);
+%z2l=(x1-dot_radius/4,y2); z2r=(x1+dot_radius/4,y2);
+%z3l=(0,y3); z3r=(x1+dot_radius/2,y3); z3t=(x1,h);
+%filldraw z2l--z3l & flex(z3l,z3t,z3r) & z3r--z2r--cycle;
+%endtchar; etest;
+
+stest(pexcla); telchar "punctuation exclamation point";
+begintchar(p_excla_code,dot_radius#,asc_height#,0,0,0,ur#);
+z1=(dot_radius,dot_radius);
+fill_dot(1);
+fill fullcircle scaled 2x1 shifted z1;
+top z2=(x1,h); bot z3 =(x1,4*y1);
+sketch z2--z3;
+endtchar; etest;
+
+stest(pasterisk); telchar "punctuation asterisk";
+begintchar(p_asterisk_code,x_height#,x_height#,0,0,0,ur#);
+z1=(1/2w,1/2h);
+ for d=30 step 60 until 330:
+ z[d]=z1+0.5 dir d xscaled w yscaled h;
+ sketch z1--z[d];
+ penlabels(z[d]);
+ endfor;
+endtchar; etest;
+
+stest(pplus); telchar "punctuation plus";
+begintchar(p_plus_code,x_height#,x_height#,0,0,0,ur#);
+lft z1=(0,h/2); rt z2=(w,y1); top z3=(w/2,h); bot z4=(x3,0);
+sketch z1--z2; sketch z3--z4;
+endtchar; etest;
+
+
+stest(plbracket); telchar "punctuation left bracket";
+begintchar(p_lbracket_code,3u#,top_height#,bot_depth#,0,0,ur#);
+p_lbracket_form;
+sketch p_lbracket_p;
+endtchar; etest;
+
+stest(prbracket); telchar "punctuation right bracket";
+begintchar(p_rbracket_code,3u#,top_height#,bot_depth#,0,0,ur#);
+p_lbracket_form;
+sketch p_lbracket_p shifted (-w,0) reflectedabout ((0,0),(0,h));
+endtchar; etest;
+
+stest(plparen); telchar "punctuation left parenthesis";
+begintchar(p_lparen_code,3u#,top_height#,bot_depth#,0,0,ur#);
+p_rparen_form;
+sketch p_rparen_p shifted (-w,0) reflectedabout ((0,0),(0,h));
+endtchar; etest;
+
+stest(prparen); telchar "punctuation right parenthesis";
+begintchar(p_rparen_code,3u#,top_height#,bot_depth#,0,0,ur#);
+p_rparen_form;
+sketch p_rparen_p;
+endtchar; etest;
+
+stest(plbrace); telchar "punctuation left brace";
+begintchar(p_lbrace_code,4u#,top_height#,bot_depth#,0,0,ur#);
+p_lbrace_form;
+sketch p_lbrace_p;
+endtchar; etest;
+
+stest(prbrace); telchar "punctuation right brace";
+begintchar(p_rbrace_code,4u#,top_height#,bot_depth#,0,0,ur#);
+p_lbrace_form;
+ sketch (p_lbrace_p shifted (-w,0) reflectedabout ((0,0),(0,h)) );
+endtchar; etest;
+
+stest(ppercent); telchar "punctuation percent sign";
+begintchar(p_percent_code,6u#,asc_height#,des_depth#,0,0,ur#);
+p_slash_form;
+sketch p_slash_p;
+z3=(3(x1+x2)/8,-d+7/8(h+d));
+z4=(w-x3,-d+(h-y3));
+sketch fullcircle scaled (1.5u) shifted z3;
+sketch fullcircle scaled (1.5u) shifted z4;
+endtchar; etest;
+
+stest(pbslash); telchar "punctuation backslash";
+begintchar(p_bslash_code,6u#,asc_height#,des_depth#,0,0,ur#);
+p_slash_form;
+sketch p_slash_p reflectedabout ((w/2,h),(w/2,0));
+endtchar; etest;
+
+stest(plbar); telchar "punctuation long bar";
+begintchar(p_lbar_code,u#,asc_height#,des_depth#,0,0,ur#);
+top z1=(w/2,h); bot z2=(x1,-d);
+sketch z1--z2;
+endtchar; etest;
+
+stest(phyphen); telchar "punctuation hyphen";
+begintchar(p_hyphen_code,6u#,1/2x_height#,0,0,0,ur#);
+top lft z1=(0,h); top rt z2=(w,h);
+sketch z1--z2;
+endtchar; etest;
+
+stest(plhyphen); telchar "punctuation long hyphen";
+begintchar(p_lhyphen_code,9u#,1/2x_height#,0,0,0,ur#);
+top lft z1=(0,h); top rt z2=(w,h);
+sketch z1--z2;
+endtchar; etest;
+
+stest(pvlhyphen); telchar "punctuation very long hyphen";
+begintchar(p_vlhyphen_code,15u#,1/2x_height#,0,0,0,ur#);
+top lft z1=(0,h); top rt z2=(w,h);
+sketch z1--z2;
+endtchar; etest;
+
+stest(pubar); telchar "punctuation underbar";
+begintchar(p_ubar_code,x_height#,0,uh#,0,0,ur#);
+bot lft z1=(0,-d); bot rt z2=(w,-d);
+sketch z1--z2;
+endtchar; etest;
+
+stest(pquestion); telchar "punctuation question mark";
+begintchar(p_question_code,6u#,asc_height#,0,0,0,ur#);
+lft z1=(0,h-2dot_radius); top z2=(w/2,h);
+rt z3=(w,y1); z4=(x2,1/2x_height);
+z5=(x2,1/3(y2+y4)); z6=(x2,dot_radius);fill_dot(6);
+sketch z1..z2..z3..z5..tension 1.5..z4;
+endtchar; etest;
+
+stest(pdollar); telchar "punctuation dollar sign";
+begintchar(p_dollar_code,cb_ka_width#,x_height#+1.5uh#,1.5uh#,0,0,ur#);
+cb_ka_form;
+sketch z1..z2..z3..z4..z5..z6..z7;
+top z11 = (w/2,h); bot z12 = (w/2,-d);
+sketch z11--z12;
+endtchar; etest;
+
+stest(pgreater); telchar "punctuation greater than";
+begintchar(p_greater_code,7u#,x_height#,0,0,0,ur#);
+bot lft z1=(0,0); top lft z2=(0,x_height); rt z3=(w,1/2(y1+y2));
+sketch z1--z3; sketch z2--z3;
+endtchar; etest;
+
+stest(pless); telchar "punctuation less than";
+begintchar(p_less_code,7u#,x_height#,0,0,0,ur#);
+bot rt z1=(w,0); top rt z2=(w,x_height); lft z3=(0,1/2(y1+y2));
+sketch z1--z3; sketch z2--z3;
+endtchar; etest;
+
+stest(pat); telchar "punctuation at sign";
+begintchar(p_at_code,10u#,asc_height#,0,0,0,ur#);
+z1=(w/2,3/4h); z2=(1/5w,1/2h);
+z3=(x1,1/4h); z4=(4/5w,5/8h);
+z5=(4/5w,3/8h); z6=(9/10w,y3);
+rt z7=(w,y2); top z8=(x1,h);
+lft z9=(0,y2); bot z10=(x1,0); rt z11=(x7,1/8h);
+sketch z5..z3..z2..z1..z4&z4--z5& z5..z6..z7{up}..{left}z8..z9..z10..z11;
+endtchar; etest;
+
+stest(ptilde); telchar "punctuation tilde sign";
+begintchar(p_tilde_code,9u#,asc_height#,0,0,0,ur#);
+top lft z1=(0,asc_height2); top z2=(w/3,h);
+z3=(2/3w,y1); top rt z4=(w,y2);
+sketch z1..z2..z3..z4;
+endtchar; etest;
+
+stest(phat); telchar "punctuation circumflex(hat)";
+begintchar(p_hat_code,5u#,asc_height#,0,0,0,ur#);
+lft z1=(0,asc_height1); rt z2=(w,y1); top z3=(1/2(x1+x2),h);
+sketch z1--z3; sketch z3--z2;
+endtchar; etest;
+
+stest(pampersand); telchar "punctuation ampersand";
+begintchar(p_ampersand_code,11u#,asc_height#,0,0,0,ur#);
+rt z11=(w,1/4x_height); bot z10=(3/4w,0);
+z1=(x10+u,x_height); y1a=y1; x1-x1a=w-x1; rt z1b=(w,x_height);
+bot z2=(w/4,0);lft z3=(0,y11); z4=(w/8,1/2x_height+uh);
+z5=(x2,3/4x_height); z6=(w/2,asc_height1);
+top z7=(5/12w,h); z8=(5/24w,y6); %z9=(x7,1/2x_height);
+sketch z1a--z1b;
+sketch z1..{left}z2..z3..z4..z5..z6..z7..z8..z5..z10..z11;
+penlabels (1a,1b);
+endtchar; etest;
+
+% ---------------- end of punctuation ------------
diff --git a/Master/texmf-dist/fonts/source/public/itrans/telcodes.mf b/Master/texmf-dist/fonts/source/public/itrans/telcodes.mf
new file mode 100644
index 00000000000..98f94481881
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/telcodes.mf
@@ -0,0 +1,282 @@
+% This file is part of the TeluguTeX Software Package.
+%Copyright (c) 1991 Lakshmankumar Mukkavilli
+%
+%The TeluguTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the TeluguTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the TeluguTeX Software Package, but only under the conditions described in the
+%TeluguTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with TeluguTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%%%
+% This file contains codes to determine where various symbols
+% are placed in the font. The symbols that are also part of ASCII
+% character set are placed at the same location as in ASCII code.
+% Any revision of this file MUST maintain this assignment.
+% All telugu digits are given contiguous codes in the order
+% 0,1,2,3,4,5,6,7,8,9. Any revision of this file MUST maintain
+% this property.
+%
+% vowels
+v_a_code := oct"027";
+v_aa_code := v_a_code +1;
+v_e_code := v_aa_code +1;
+v_ee_code := v_e_code +1;
+v_u_code := v_ee_code +1;
+v_uu_code := v_u_code +1;
+v_ro_code := v_uu_code +1;
+v_roo_code := v_ro_code +1;
+v_lo_code := v_roo_code +1;
+v_loo_code := v_lo_code +1;
+v_ea_code := oct"101";
+v_eae_code := v_ea_code +1;
+v_i_code := v_eae_code +1;
+v_ao_code := v_i_code +1;
+v_aoo_code := v_ao_code +1;
+v_au_code := v_aoo_code +1;
+
+% vowel modifiers
+vm_a_code := oct"200";
+vm_aa_code := vm_a_code +1;
+vm_aaa_code := vm_aa_code +1;
+vm_e_code := vm_aaa_code +1;
+vm_ee_code := vm_e_code +1;
+vm_eea_code := vm_ee_code +1;
+vm_eeb_code := vm_eea_code +1;
+vm_u_code := vm_eeb_code +1;
+vm_uu_code := vm_u_code +1;
+vm_ro_code := vm_uu_code +1;
+vm_roo_code := vm_ro_code +1;
+vm_lo_code := vm_roo_code +1;
+vm_loo_code := vm_lo_code +1;
+vm_ea_code := vm_loo_code +1;
+vm_eae_code := vm_ea_code +1;
+vm_i1_code := vm_ea_code;
+vm_i2_code := vm_eae_code +1;
+vm_ao_code := vm_i2_code +1;
+vm_aoo_code := vm_ao_code +1;
+vm_aoo_code_a := vm_aoo_code +1;
+vm_au_code := vm_aoo_code_a+1;
+vm_p_code := vm_au_code +1;
+
+% Consonant bases
+cb_ka_code := v_au_code +1;
+cb_kha_code := cb_ka_code +1;
+cb_ga_code := cb_kha_code +1;
+cb_gha_code := cb_ga_code +1;
+cb_nga_code := cb_gha_code +1;
+cb_cha_code := cb_nga_code +1;
+cb_ccha_code := cb_cha_code +1;
+cb_ja_code := cb_ccha_code +1;
+cb_jha_code := cb_ja_code +1;
+cb_nya_code := cb_jha_code +1;
+cb_tta_code := cb_nya_code +1;
+cb_ttha_code := cb_tta_code +1;
+cb_dda_code := cb_ttha_code +1;
+cb_ddha_code := cb_dda_code +1;
+cb_nna_code := cb_ddha_code +1;
+cb_ta_code := cb_nna_code +1;
+cb_tha_code := cb_ta_code +1;
+cb_da_code := cb_tha_code +1;
+cb_dha_code := cb_da_code +1;
+cb_na_code := cb_dha_code +1;
+cb_pa_code := oct"141";
+cb_pha_code := cb_pa_code +1;
+cb_ba_code := cb_pha_code +1;
+cb_bha_code := cb_ba_code +1;
+cb_ma_code := cb_bha_code +1;
+cb_ya_code := cb_ma_code +1;
+cb_ra_code := cb_ya_code +1;
+cb_rra_code := cb_ra_code +1;
+cb_la_code := cb_rra_code +1;
+cb_lla_code := cb_la_code +1;
+cb_va_code := cb_lla_code +1;
+cb_ca_code := cb_va_code +1;
+cb_sha_code := cb_ca_code +1;
+cb_sa_code := cb_sha_code +1;
+cb_ha_code := cb_sa_code +1;
+cb_ksha_code := cb_ha_code +1;
+cb_dt_code := cb_ksha_code +1;
+cb_np_code := cb_dt_code +1;
+cb_vg_code := cb_np_code +1;
+cb_bb_code := cb_vg_code +1; % boxes(bb,bo,be)(used for demonstrating
+% vowel modifiers, cons. conjuncts)
+cb_bo_code := cb_bb_code +1;
+cb_be_code := cb_bo_code +1;
+
+% Consonant conjuncts
+cc_ka_code := vm_p_code +1;
+cc_kha_code := cc_ka_code +1;
+cc_ga_code := cc_kha_code +1;
+cc_gha_code := cc_ga_code +1;
+cc_nga_code := cc_gha_code +1;
+cc_cha_code := cc_nga_code +1;
+cc_ccha_code := cc_cha_code +1;
+cc_ja_code := cc_ccha_code +1;
+cc_jha_code := cc_ja_code +1;
+cc_nya_code := cc_jha_code +1;
+cc_tta_code := cc_nya_code +1;
+cc_ttha_code := cc_tta_code +1;
+cc_dda_code := cc_ttha_code +1;
+cc_ddha_code := cc_dda_code +1;
+cc_nna_code := cc_ddha_code +1;
+cc_ta_code := cc_nna_code +1;
+cc_tha_code := cc_ta_code +1;
+cc_da_code := cc_tha_code +1;
+cc_dha_code := cc_da_code +1;
+cc_na_code := cc_dha_code +1;
+cc_pa_code := cc_na_code +1;
+cc_pha_code := cc_pa_code +1;
+cc_ba_code := cc_pha_code +1;
+cc_bha_code := cc_ba_code +1;
+cc_ma_code := cc_bha_code +1;
+cc_ya_code := cc_ma_code +1;
+cc_ra_code := cc_ya_code +1;
+cc_rra_code := cc_ra_code +1;
+cc_la_code := cc_rra_code +1;
+cc_lla_code := cc_la_code +1;
+cc_va_code := cc_lla_code +1;
+cc_ca_code := cc_va_code +1;
+cc_sha_code := cc_ca_code +1;
+cc_sa_code := cc_sha_code +1;
+cc_ha_code := cc_sa_code +1;
+
+% bars used for transliteration of vedic hymns
+% and other symbols used for singing
+b_udatta1_code := oct"005";
+b_udatta2_code := b_udatta1_code +1;
+b_anudatta_code := b_udatta2_code +1;
+
+% Roman digits
+dr_zero_code := ASCII"0";
+dr_one_code := dr_zero_code +1;
+dr_two_code := dr_one_code +1;
+dr_three_code := dr_two_code +1;
+dr_four_code := dr_three_code +1;
+dr_five_code := dr_four_code +1;
+dr_six_code := dr_five_code +1;
+dr_seven_code := dr_six_code +1;
+dr_eight_code := dr_seven_code +1;
+dr_nine_code := dr_eight_code +1;
+
+% Telugu digits
+dt_zero_code := oct"015";
+dt_one_code := dt_zero_code +1;
+dt_two_code := dt_one_code +1;
+dt_three_code := dt_two_code +1;
+dt_four_code := dt_three_code +1;
+dt_five_code := dt_four_code +1;
+dt_six_code := dt_five_code +1;
+dt_seven_code := dt_six_code +1;
+dt_eight_code := dt_seven_code +1;
+dt_nine_code := dt_eight_code +1;
+
+% Punctuations
+p_period_code := ASCII".";
+p_comma_code := ASCII",";
+p_equal_code := ASCII"=";
+p_bar_code := oct"177";
+p_dbar_code := oct"000";
+p_colon_code := ASCII":";
+p_scolon_code := ASCII";";
+p_cquote_code := ASCII"'";
+p_cquotes_code := oct"001";
+p_oquote_code := ASCII"`";
+p_oquotes_code := oct"002";
+p_dquotes_code := ASCII ditto; %ASCII "
+p_slash_code := ASCII"/";
+p_hash_code := ASCII"#";
+p_excla_code := ASCII"!";
+p_asterisk_code := ASCII"*";
+p_plus_code := ASCII"+";
+p_lbracket_code := ASCII"[";
+p_rbracket_code := ASCII"]";
+p_lparen_code := ASCII"(";
+p_rparen_code := ASCII")";
+p_lbrace_code := ASCII"{";
+p_rbrace_code := ASCII"}";
+p_percent_code := ASCII"%";
+p_bslash_code := ASCII"\";
+p_lbar_code := ASCII"|";
+p_hyphen_code := ASCII"-";
+p_lhyphen_code := oct"003";
+p_vlhyphen_code := oct"004";
+p_ubar_code := ASCII"_";
+p_question_code := ASCII"?";
+p_dollar_code := ASCII"$";
+p_greater_code := ASCII">";
+p_less_code := ASCII"<";
+p_at_code := ASCII"@";
+p_tilde_code := ASCII"~";
+p_hat_code := ASCII"^";
+p_ampersand_code := ASCII"&";
+
+% Ubayaksharas
+u_ardhasunna_code := oct"010";
+u_sunna_code := u_ardhasunna_code +1;
+u_visarga_code := u_sunna_code +1;
+u_ardhavisarga_code := u_visarga_code +1;
+u_avagraha_code := u_ardhavisarga_code +1;
+
+%some consonant+vowel's need special symbols. Next we will
+%define codes for these symbols.
+cv_ku_code := cc_ha_code+1;
+cv_khe_code := cv_ku_code+1;
+cv_khao_code := cv_khe_code+1;
+cv_ge_code := cv_khao_code+1;
+cv_ngu_code := cv_ge_code+1;
+cv_nguu_code := cv_ngu_code+1;
+cv_che_code := cv_nguu_code+1;
+cv_chao_code := cv_che_code+1;
+cv_cche_code := cv_chao_code+1;
+cv_cchao_code := cv_cche_code+1;
+cv_je_code := cv_cchao_code+1;
+cv_ju_code := cv_je_code+1;
+cv_juu_code := cv_ju_code+1;
+cv_jao_code := cv_juu_code+1;
+cv_ttao_code := cv_jao_code+1;
+cv_tthe_code := cv_ttao_code+1;
+cv_ddu_code := cv_tthe_code+1;
+cv_ddhu_code := cv_ddu_code+1;
+cv_te_code := cv_ddhu_code+1;
+cv_tao_code := cv_te_code+1;
+cv_the_code := cv_tao_code+1;
+cv_de_code := cv_the_code+1;
+cv_dhe_code := cv_de_code+1;
+cv_ne_code := cv_dhe_code+1;
+cv_nao_code := cv_ne_code+1;
+cv_paa_code := cv_nao_code+1;
+cv_pu_code := cv_paa_code+1;
+ccv_pu_code := cv_pu_code+1; %con. conjunct for pa + vowel u
+cv_puu_code := ccv_pu_code+1;
+ccv_puu_code := cv_puu_code+1; %con. conjunct for pa + vowel uu
+cv_phaa_code := ccv_puu_code+1;
+ccv_phu_code := cv_phaa_code+1; %con. conjunct for pha + vowel u
+ccv_phuu_code := ccv_phu_code+1; %con. conjunct for pha + vowel uu
+cv_be_code := ccv_phuu_code+1;
+cv_bao_code := cv_be_code+1;
+cv_bhe_code := cv_bao_code+1;
+cv_bhao_code := cv_bhe_code+1;
+cv_re_code := cv_bhao_code+1;
+cv_le_code := cv_re_code+1;
+cv_lao_code := cv_le_code+1;
+cv_lle_code := cv_lao_code+1;
+cv_llu_code := cv_lle_code+1;
+cv_llao_code := cv_llu_code+1;
+cv_ve_code := cv_llao_code+1;
+cv_vao_code := cv_ve_code+1;
+cv_ce_code := cv_vao_code+1;
+cv_cao_code := cv_ce_code+1;
+cv_shaa_code := cv_cao_code+1;
+cv_shu_code := cv_shaa_code+1;
+cv_saa_code := cv_shu_code+1;
+cv_haa_code := cv_saa_code+1;
+cv_hao_code := cv_haa_code+1;
+cv_kshu_code := cv_hao_code+1;
diff --git a/Master/texmf-dist/fonts/source/public/itrans/telmode.mf b/Master/texmf-dist/fonts/source/public/itrans/telmode.mf
new file mode 100644
index 00000000000..63760d2a2bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/telmode.mf
@@ -0,0 +1,21 @@
+% This file is part of the TeluguTeX Software Package.
+%Copyright (c) 1991 Lakshmankumar Mukkavilli
+%
+%The TeluguTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the TeluguTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the TeluguTeX Software Package, but only under the conditions described in the
+%TeluguTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with TeluguTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+
+% avinash: comment out the mode line, since MakeTeXPK or MakeTeXTFM will
+% pass the correct mode to mf anyway, no need to hardcode it here.
+% mode=localfont;
diff --git a/Master/texmf-dist/fonts/source/public/itrans/telparam.mf b/Master/texmf-dist/fonts/source/public/itrans/telparam.mf
new file mode 100644
index 00000000000..74cb3f0efe0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/telparam.mf
@@ -0,0 +1,135 @@
+% This file is part of the TeluguTeX Software Package.
+%Copyright (c) 1991 Lakshmankumar Mukkavilli
+%
+%The TeluguTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the TeluguTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the TeluguTeX Software Package, but only under the conditions described in the
+%TeluguTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with TeluguTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%%%%
+% This file contains various parameters used in making a font
+% for telugu. Many of the parameters are used in several places.
+% Before changing anything here you should be very clear about
+% the possible impact.
+%
+input telbase % read basefile
+
+font_identifier :="TELUGU";
+
+% parameters
+
+u#:=designsize/18; % unit width
+v#:=designsize; % total height
+uh#:=v#/18; % unit height
+top_shoulder:=2/36; % top shoulder proportion
+bot_shoulder:=2/36; % bottom shoulder proportion
+xheight:=15/36; % x height proportion
+ascheight:=10/36; % ascender height proportion
+desdepth:=7/36; % descender depth proportion
+figheight:=6/36; % height of roman digits
+
+em_width#:=18u#; % same as font_quad
+
+asc_height#:=(ascheight+xheight)*v#;
+des_depth#:=desdepth*v#;
+x_height#:=xheight*v#;
+bot_depth#:=(bot_shoulder+desdepth)*v#;
+top_height#:=(top_shoulder+ascheight+xheight)*v#;
+fig_height#:=(figheight+xheight)*v#; % height of roman digits
+tfig_width#:=7.5u#; % width of telugu digits
+tfig_height#:=x_height#; % height of telugu digits
+
+asc_height1#:=(1/3ascheight+xheight)*v#;
+asc_height2#:=(2/3ascheight+xheight)*v#;
+
+j_height#:=2/3x_height#; % height of bowls in ja,ta etc
+c_height#:=1/3x_height#; % height of circle in ma, va etc
+% c_height is used to draw small circles. If we use a wide pen then the circle
+% may not be clearly visible. Hence the following statement.
+if c_height# < (3.2*pen_width#):c_height#:=3.2pen_width#; fi;
+w_height#:=1/3x_height#; % height of wedge in da,ta etc
+ascunit#:=1/6(asc_height#-x_height#); % a unit for acsender area
+vmwidth#:=7u#; % width of vowel modifiers
+top_accent#:=1.5uh#; % base for accents that appear at top
+bot_accent#:=1.5uh#; % base for accents that appear below
+cc_scale:=0.7; % scale factor for consonant conjuncts
+ccwidth#:=vmwidth#; % width of co.conjuncts that appear on % the side
+dot_radius#:=u#; % radius of dot
+wedge_height#:=x_height#/4; % height of wedge (in dha, uu etc)
+wedge_depth#:=4/9des_depth#; % depth of wedge(in dha,uu etc)
+sc_height#:=1/6x_height#; % misc. usage
+
+v_a_width#:=10u#; % width of vowel a
+v_e_width#:=7.5u#; % width of vowel e
+v_u_width#:=8u#; % width of vowel u (like dda no hat
+v_lo_width#:=11u#; % width of vowel lo(inverted ja)
+v_ea_width#:=6u#; % width of vowel ea(like va without
+v_i_width#:=7u#; % width of vowel i
+
+vm_a_width#:=5u#; % width of vowel modifier a
+vm_e_width#:=4u#; % width of vowel modifier e
+vm_e_height1#:=asc_height2#; % height of vowelmodifier e (used
+ % with certain consonants kha,cha,
+ % ccha,ja,ta,na,ba,bha,ma,la,va etc)
+vm_e_height2#:=5/6x_height#; % vowel mod. e for ra,ga.da sits
+vm_e_height3#:=(1/2ascheight+xheight)*v#; % between vm_e_height2 and 3
+vm_u_width#:=5u#; % width of ubowl (attached to letter
+vm_ro_width#:=6u#; % width of vowel modifier ro
+vm_ao_width#:=8u#; % width of vowel modifier ao
+vm_aoo_width#:=vm_ao_width#+1.5u#; % width of vowel modifier aoo
+
+cb_ka_width#:=6u#; % width of ka
+cb_kha_width#:=7.5u#; % width of kha
+cb_ga_width#:=6u#; % width of ga
+cb_cha_width#:=9u#; % width of cha
+cb_ja_width#:=7.5u#; % width of ja
+cb_tta_width#:=10.5u#; % width of tta
+cb_nna_width#:=10u#; % width of nna
+cb_ta_width#:=8u#; % width of ta
+cb_da_width#:=9.0u#; % width of da
+cb_na_width#:=7.5u#; % width of na
+cb_ba_width#:=7.5u#; % width of ba
+cb_ya_width#:=10u#; % width of ya (without bowl)
+cb_ra_width#:=6u#; % width of ra
+cb_la_width#:=9u#; % width of la
+cb_lla_width#:=6u#; % width of lla
+cb_va_width#:=7.5u#; % width of va
+cb_ca_width#:=5u#; % width of ca
+cb_sha_width#:=cb_va_width#+1.5u#; % width of sha
+cb_ksha_width#:=cb_ka_width#; % width of ksha
+cb_ksha_depth#:=des_depth#; % floor of ksha
+cb_np_width#:=ccwidth#; % width of nakarapollu
+cb_vg_width#:=ccwidth#; % width of valapalagilaka
+
+cv_pu_width#:=cb_va_width#+2u#; % width of u modifier for pa
+cv_pu_depth#:=1.5uh#; % depth of u modifier for pa
+
+p_comma_width#:=2dot_radius#+u#; % width of comma
+half_plus_width#:=cb_ja_width#/2; % width of symbol like truncated +
+
+% ul#, ur# indicate the amount of white space that is added
+% to a symbol. Following are the criteria used to add space
+% consonant base, vowels - none
+% punctuation,digits - on right
+% consonant conjuncts that appear below,vowel modifiers that appear
+% above/below - none
+% accents that appear below/above - none
+% consonant conjuncts that appear on the side - on left
+% vowel modifiers for u, uu - none
+% vowel modifiers for ro, roo - on left
+% While composing Telugu text using TeX, space is added after a syllable
+% by the macros that build a syllable.
+ul#:=2u#; % white space (on left)
+ur#:=2u#; % white space (on right)
+
+
+generate telugu; % switch to driver files
diff --git a/Master/texmf-dist/fonts/source/public/itrans/telspc.mf b/Master/texmf-dist/fonts/source/public/itrans/telspc.mf
new file mode 100644
index 00000000000..c2ae45d132e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/telspc.mf
@@ -0,0 +1,52 @@
+%telspc%
+% generates striped characters with shading
+input telmode;
+font_size 72pt#;
+slant:=0;
+pen_width#:=2.5pt#;
+% Following code(with minor modifications) is taken from the article,
+% The ABC's of Special Effects by Georgia K. M. Tobin,
+% that appeared in TUGboat, Volume 9(1988), No. 1
+vardef special_effects=
+% creates characters filled with stripes and followed by a shadow.
+ cullit;
+ picture Normalchar;
+ Normalchar:=currentpicture;
+ clearit;
+% Depending on the output device, pen size(0.1pt) may need to be
+% changed.
+ pickup pencircle scaled 0.1pt;
+ filldraw (0,-d)--(w,-d)--
+ (w,h)--(0,h)--cycle;
+ picture Blackbox;
+ Blackbox:=currentpicture;
+ picture Reversevideo;
+ Reversevideo:=Blackbox-Normalchar;
+ clearit;
+% Depending on the output device,stepsize(uh/3) may need to be
+% changed.
+ for f=-d step uh/3 until h:
+ draw(0,f)--(w,f);
+ endfor;
+ currentpicture:=
+ currentpicture-Reversevideo;
+ cullit;
+ picture Stripedchar;
+ Stripedchar:=currentpicture;
+ clearit;
+% Depending on the output device,offset(1.5pt) may need to be
+% changed.
+ currentpicture:=Normalchar shifted(1.5pt,-1.5pt);
+ picture Shadow;
+ Shadow:=currentpicture;
+ clearit;
+ currentpicture:=Shadow-Normalchar;
+ cullit;
+ picture Shadowonly;
+ Shadowonly:=currentpicture;
+ clearit;
+
+ currentpicture:=Shadowonly+Stripedchar;
+enddef;
+input telparam;
+%%
diff --git a/Master/texmf-dist/fonts/source/public/itrans/telugu.mf b/Master/texmf-dist/fonts/source/public/itrans/telugu.mf
new file mode 100644
index 00000000000..f442599c9f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/telugu.mf
@@ -0,0 +1,48 @@
+% This file is part of the TeluguTeX Software Package.
+%Copyright (c) 1991 Lakshmankumar Mukkavilli
+%
+%The TeluguTeX Software Package is distributed in the hope that
+%it will be useful,but WITHOUT ANY WARRANTY. No author or distributor
+%accepts responsibility to anyone for the consequences of using it
+%or for whether it serves any particular purpose or works at all,
+%unless he says so in writing. Refer to the TeluguTeX Software Package
+%General Public License for full details.
+%
+%Everyone is granted permission to copy, modify and redistribute
+%the TeluguTeX Software Package, but only under the conditions described in the
+%TeluguTeX Software Package General Public License. A copy of this license is
+%supposed to have been given to you along with TeluguTeX Software Package so you
+%can know your rights and responsibilities. It should be in a
+%file named CopyrightLong. Among other things, the copyright notice
+%and this notice must be preserved on all copies.
+%%%%%%%
+% This file contains font dimensions, ligature definitions etc.
+%
+font_coding_scheme := "TeX text";
+
+mode_setup; font_setup;
+
+input telcodes; % codes for telugu symbols
+input telchrs1; % vowels,vowel modifiers, consonant bases,
+% % consonant conjuncts, accents, c+v's
+input telchrs2; % consonant + vowel that need special care
+input telchrs3; % digits(roman&Telugu), punctuation
+
+% Font Dimensions
+
+font_slant slant;
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad em_width#;
+font_extra_space 2u#;
+
+%ligature and kern information
+
+ligtable "'": "'" =: p_cquotes_code; % close quotes
+ligtable "`": "`" =: p_oquotes_code; % open quotes
+ligtable "-": "-" =: p_lhyphen_code; % en dash
+ligtable p_lhyphen_code: "-" =: p_vlhyphen_code; % em dash
+
+if not testing: expandafter stop fi;
diff --git a/Master/texmf-dist/fonts/source/public/itrans/wntml12.mf b/Master/texmf-dist/fonts/source/public/itrans/wntml12.mf
new file mode 100644
index 00000000000..46d97df59aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/wntml12.mf
@@ -0,0 +1,77 @@
+% This is WNTML12.MF (Washington Tamil 12pt)
+% based on CMR12.MF
+% Created by Avinash Chopde, from the existing U of Wash definition
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNTML"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate wntamil % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/itrans/wntml17.mf b/Master/texmf-dist/fonts/source/public/itrans/wntml17.mf
new file mode 100644
index 00000000000..57fc94db469
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/itrans/wntml17.mf
@@ -0,0 +1,77 @@
+% This is WNTML12.MF (Washington Tamil 12pt)
+% based on CMR12.MF
+% Created by Avinash Chopde, from the existing U of Wash definition
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNTML"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=425/36pt#; % height of caps
+fig_height#:=401/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=150/36pt#; % height of crossbar in lowercase e
+comma_depth#:=121/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=13/36pt#; % uppercase hairline breadth
+cap_stem#:=41/36pt#; % uppercase stem breadth
+cap_curve#:=47/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=34/36pt#; % vertical distance from serif base to tangent
+jut#:=42/36pt#; % protrusion of lowercase serifs
+cap_jut#:=50/36pt#; % protrusion of uppercase serifs
+beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs
+beak#:=121/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=17pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches
+serif_drop#:=7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate wntamil % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdaccent.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdaccent.mf
new file mode 100644
index 00000000000..6ac1114a8b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdaccent.mf
@@ -0,0 +1,489 @@
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Font Accents
+% KDACCENT.MF: defines all Greek diacritic marks.
+%
+% K J Dryllerakis May 1991. Code based on Haralambous Package.
+%
+if one_accent: gen_acc:=0; else: gen_acc:=1; fi
+def acc_corr=0 enddef;
+def separator=
+ if one_accent :
+ max(1,vround(1/12x_height))
+ else:
+ max(1,vround(1/20x_height))
+ fi
+enddef;
+
+def grave(expr center) =
+ if serifs: x22-x21=1/4w; x21-.5stem=hround(center-2/3(x22-x21)-.5stem);
+ else: lft x21l=hround (1/4w-.5stem); rt x22r=hround(center+.25u+.5vair); fi
+ generate_grave; penlabels(21,22);
+enddef;
+
+def acute(expr center) =
+ if one_accent:
+ generate_universal(center);
+ else:
+ if serifs: x21-x22=1/4w; x21+.5stem=hround(center+2/3(x21-x22)+.5stem);
+ else: rt x21r=hround (3/4w+.5stem); lft x22l=hround(center-.25u-.5vair); fi
+ generate_grave; penlabels(21,22);
+ fi
+enddef;
+
+vardef search(expr xyzzy) =
+ pair p;ypart(p)=y22l;p-(x22,xyzzy)=whatever*((z21-(x22,xyzzy))rotated 90);
+ length(p-(x22,xyzzy))>.5(hair-currentbreadth)
+enddef;
+
+vardef generate_grave=
+ if serifs: pickup crisp.nib;
+ y21+.5stem=h+eps; bot y22l=max(.8[h,x_height],x_height+o+separator);
+ y22=solve search(y21,y22l); x22l=xpart(p); z22r=2z22-z22l;
+ pos21(stem,angle(z22r-z22l));
+ filldraw circ_stroke z21e--z22e; % diagonal
+ else: pickup fine.nib; pos21(stem,0); pos22(vair,0);
+ top y21=h; bot y22=vround .8[h,x_height];
+ filldraw stroke z21e--z22e; % diagonal
+ fi
+enddef;
+
+def corr_circumflex(expr center,corr)=
+ if one_accent:
+ generate_universal(center);
+ else:
+ w:=w+corr;
+ generate_circumflex(center,false);
+ w:=w-corr;
+ fi
+enddef;
+
+def circumflex(expr center)=
+ if one_accent:
+ generate_universal(center);
+ else:
+ if italics: w:= w + acc_corr; fi
+ generate_circumflex(center,false); % variable `squeeze'
+ if italics: w:=wi-acc_corr; fi
+ fi
+enddef;
+
+def generate_circumflex(expr center,squeeze)=
+ numeric mid_width; mid_width=if squeeze:.1 else: .5 fi [vair,stem];
+ if serifs:
+ pickup fine.nib; pos21(hround(mid_width-eps),180); pos22(vair,90);
+ pos23(mid_width,90); pos24(vair,90); pos25(hround(mid_width-eps),180);
+ lft x21r=w-rt x25l=hround (center-w/3); x22-x21=x23-x22=x24-x23=x25-x24;
+ bot y21=bot y24l=vround(.75[x_height,h]-vair);
+ top y22r=top y25=h; y23=.5[y22,y24];
+ filldraw stroke z21e{up}...z22e{right}..z23e..{right}z24e...{up}z25e;
+ else:
+ pos21(vair,-180); pos23(vair,0); y21=y23;
+ lft x21r=hround(center-w/3); rt x23r=hround(center+w/3);
+ bot y23=vround max(x_height+o+separator,
+ if squeeze: 2/3 else: 1/3 fi [x_height,h]-.5mid_width);
+ x22=center; pos22(mid_width,90); top y22r=h;
+ filldraw stroke z21e{up}...z22e...{down}z23e;
+ fi
+enddef;
+
+vardef diaeresis(expr center)=
+ generate_diaeresis(center,dot_size,dot_size+1/8w,h,x_height+separator);
+enddef;
+
+vardef diaeresis_acute(expr center)=
+ if serifs: x21-x22=1/4w; x21+.5stem=hround(center+5/6(x21-x22)+.5stem);
+ else: rt x21r=hround (3/4w+.5stem); lft x22l=hround(center-.5vair); fi
+ generate_grave; penlabels(21,22);
+ generate_diaeresis(center,.9dot_size,-1,.5[h,x_height],x_height+separator);
+enddef;
+
+vardef diaeresis_grave(expr center)=
+ if serifs: x22-x21=1/4w; x21-.5stem=hround(center-5/6(x22-x21)-.5stem);
+ else: lft x21l=hround (1/4w-.5stem); rt x22r=hround(center+.5vair); fi
+ generate_grave; penlabels(21,22);
+ generate_diaeresis(center,.9dot_size,-1,.5[h,x_height],x_height+separator);
+enddef;
+
+vardef diaeresis_circumflex(expr center)=
+ if italics: w:= w + acc_corr; fi
+ generate_circumflex(center,true);
+ if italics: w:=w-acc_corr; fi
+ numeric sp_bottom, sp_top;
+ sp_top=vround(.15[bot y21l,x_height]); sp_top+sp_bottom=bot y21l+x_height;
+ generate_diaeresis(center,5/8dot_size,5/8dot_size+1/4w,sp_top,sp_bottom);
+enddef;
+
+vardef generate_diaeresis(expr center,target_dot_diam,sep,eff_h,base)=
+ pickup tiny.nib; numeric dot_diam;
+ dot_diam:=max(tiny.breadth,hround(target_dot_diam));
+ pos31(dot_diam,0); pos32(dot_diam,90); x31=x32; top y32r=vround(eff_h);
+ if bot y32l<base: y32l:=min(y32r-eps,base+.5currentbreadth); fi
+ y31=.5[y32l,y32r];
+ pos33(dot_diam,0); penpos34(y32r-y32l,90); y33=y34=y31; x33=x34;
+ if sep>0 : center=.5[x31,x33]; x33-x31=sep;
+ else:
+ y35l=y35r=.5[y31,y32]; z35l=whatever[z21l,z22l]; z35r=whatever[z21r,z22r];
+ rt x31r=hround((min(x35l,x35r)-.5currentbreadth)-.05w);
+ lft x33l=hround((max(x35l,x35r)+.5currentbreadth)+.05w);
+ fi
+ dot(31,32); dot(33,34);
+ penlabels(31,32,33,34,35);
+enddef;
+
+def rough(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,180); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,180); pos@1(comma_join_,180);
+ pos@2(comma_bot_,180); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; lft x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,180); pos@3(vair,-90);
+ z@1r=z$r; lft x@2r=hround(x$-.5depth+.5shear);
+ x@3+.5vair=x$+.5dot_size+shear;
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ y_:=ypart((z@1{left}...z@2{down}...z@3)
+ intersectiontimes (z$l{left}..{right}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{right}..subpath (0,y_) of (z$l{left}..{right}z$r)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{down}...{right}z@3e; fi % tail
+ penlabels(@1,@2,@3);
+enddef;
+
+def smooth(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-90);
+ z@1r=z$r; rt x@2r=hround(x$+.5depth+.5shear);
+ x@3-.5vair=hround(x$-.5dot_size+shear);
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ filldraw stroke z@1e{right}...z@2e{down}...{left}z@3e; fi % tail
+ penlabels(@1,@2,@3);
+enddef;
+
+vardef spirit(expr center) text type=
+ if one_accent:
+ ;
+ else:
+ numeric sp_bottom, sp_height;
+ sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+ numeric dot_diam#; dot_diam# = 3/4dot_size#;
+ define_whole_blacker_pixels(dot_diam);
+ dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+ x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam);
+ y31+.5dot_diam=h;
+ if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+ penlabels(31);
+ fi
+enddef;
+
+vardef spirit_acute(expr center) text type =
+ if one_accent:
+ generate_universal(center);
+ else:
+ numeric sp_bottom, sp_height;
+ sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+ numeric dot_diam#; dot_diam# = 3/4dot_size#;
+ define_whole_blacker_pixels(dot_diam);
+ dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+ if serifs: x21-x22=1/6w;
+ x21+.5stem=hround(center+.25u+.5vair+(x21-x22)+.5stem);
+ else: rt x21r=hround (4/5w+.5stem); lft x22l=hround(center+.25u); fi
+ generate_grave; penlabels(21,22);
+ if 1type0: % spirit and accent separated by .5u (rough) or .25u (smooth)
+ x31=hround(lft x22 if serifs:r-.5sp_height else:l-.5dot_diam fi -.25u);
+ else: x31+.5dot_diam=hround(lft x22 if serifs:r else: l fi -.5u); fi
+ y31+.5dot_diam=h;
+ if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+ fi
+enddef;
+
+vardef spirit_grave(expr center) text type =
+ numeric sp_bottom, sp_height;
+ sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+ numeric dot_diam#; dot_diam# = 3/4dot_size#;
+ define_whole_blacker_pixels(dot_diam);
+ dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+ if serifs: x22-x21=1/6w; x21-.5stem=hround(center+.25u);
+ else: rt x22r=hround (4/5w+.5stem); lft x21l=hround(center+.25u); fi
+ generate_grave; penlabels(21,22);
+ if 1type0: % spirit and accent separated by .5u (rough) or .25u (smooth)
+ x31=hround(lft x21l-.5 if serifs:sp_height else:dot_diam fi -.25u);
+ else: x31+.5dot_diam=hround(lft x21l-.5u); fi
+ y31+.5dot_diam=h;
+ if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+enddef;
+
+vardef spirit_circumflex(expr center) text type=
+ if one_accent:
+ generate_universal(center);
+ else:
+ if italics: w:= w + acc_corr; fi
+ generate_circumflex(center,true);
+ if italics: w:=w-acc_corr; fi
+ numeric sp_bottom, sp_height, sp_top, box_top;
+ box_top=bot if serifs: y21l else: y22l fi;
+ sp_top=sp_bottom+sp_height=vround(.15[box_top,x_height]);
+ sp_top+sp_bottom=box_top+x_height;
+ numeric dot_diam#; dot_diam# = 5/8dot_size#;
+ define_whole_blacker_pixels(dot_diam);
+ pickup fine.nib;
+ dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height-eps)));
+ x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam);
+ y31+.5dot_diam=vround(sp_top);
+ if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+ penlabels(31);
+ fi
+enddef;
+
+def iota_sub(expr pos_stem) =
+ if known pic.iota:
+ addto currentpicture also pic.iota shifted (hround(pos_stem),0);
+ else:
+ picture temp_picture; temp_picture=currentpicture; clearit;
+ pickup fine.nib;
+ x51=0; pos51(stem,180); top y51=vround(-o-2separator);
+ x52=x51; pos52(stem,180); bot y52=-iota_dp;
+ filldraw circ_stroke z52e--z51e;
+ %
+ % edw arqizei to diko mou
+ %
+ % z54=z52;x53=x54+0.5(y51-y54); y53=y54;
+ % pos54(stem,90); pos53(stem,90);
+ % filldraw circ_stroke z54e---z53e;
+ % lft x55=0.5(rt x52+x52); bot y55=0.5(y52-bot y52)+y52;
+ % x56=x55;top y56=y51; pos55(stem,180); pos56(stem,180);
+ % unfilldraw circ_stroke z55e--z56e;
+ %
+ if not working_hard : picture pic.iota; pic.iota=currentpicture; fi
+ currentpicture:=currentpicture shifted (hround(pos_stem),0);
+ addto currentpicture also temp_picture;
+ fi;
+enddef;
+
+vardef generate_universal(expr center)=
+ x91=center+.15u;x94=center-.15u;
+ y91=y94=x_height+1.5separator;
+ x92=x91+.3univ_acc_breadth*(body_height-x_height);
+ x93=x91-.3univ_acc_breadth*(body_height-x_height);
+ y93=y92=y91+univ_acc_breadth*(body_height-x_height);
+ fill z91--z92--z93--z94--cycle;
+enddef;
+
+vardef universal(expr center)=
+ generate_universal(center);
+enddef;
+
+vardef diaeresis_universal(expr center)=
+ x91=center;
+ y91=x_height+separator+dot_size;
+ x92=x91+.5univ_acc_breadth*(body_height-x_height);
+ x93=x91-.5univ_acc_breadth*(body_height-x_height);
+ y93=y92=y91+.866univ_acc_breadth*(body_height-x_height);
+ fill z91--z92--z93--cycle;
+ generate_diaeresis(center,dot_size,
+ 1.3univ_acc_breadth*(body_height-x_height),.6[h,x_height],
+ x_height+separator);
+enddef;
+
+%
+% Generate the Accents
+%
+cmchar "Acute accent";
+beginchar("'",9u#,acc_ht#,0);
+ adjust_fit(0,0);
+ if one_accent:
+ universal(.5w);
+ else:
+ acute(.5w);
+ fi
+endchar;
+%
+cmchar "Grave accent";
+beginchar("`",9u#,acc_ht#,0);
+ adjust_fit(0,0);
+ if one_accent:
+ universal(.5w);
+ else:
+ grave(.5w);
+ fi
+endchar;
+%
+cmchar "Circumflex accent";
+beginchar("~",9u#,circ_ht#,0);
+ adjust_fit(0,0);
+ if one_accent:
+ universal(.5w);
+ else:
+ circumflex(.5w);
+ fi
+endchar;
+%
+
+cmchar "Rough breathing";
+if one_accent:
+ beginchar("<",.1u#,acc_ht#,0);
+ adjust_fit(0,0);
+else:
+ beginchar("<",9u#,acc_ht#,0);
+ adjust_fit(0,0);spirit(.5w)<;
+fi
+endchar;
+
+cmchar "Rough breathing with grave";
+beginchar(oct"001",9u#,acc_ht#,0);
+ adjust_fit(0,0);
+ spirit_grave(.5w)<;
+endchar;
+%
+cmchar "Rough breathing with acute";
+beginchar(oct"126",9u#,acc_ht#,0);
+ adjust_fit(0,0);
+ if one_accent:
+ universal(.5w);
+ else:
+ spirit_acute(.5w)<;
+ fi
+endchar;
+
+cmchar "Rough breathing with circumflex";
+beginchar(oct"100",9u#,acc_ht#,0);
+adjust_fit(0,0);
+ if one_accent:
+ universal(.5w);
+ else:
+ spirit_circumflex(.5w)<;
+ fi
+endchar;
+
+cmchar "Smooth breathing";
+if one_accent:
+ beginchar(">",.1u#,acc_ht#,0);
+ adjust_fit(0,0);
+else:
+ beginchar(">",9u#,acc_ht#,0);
+ adjust_fit(0,0);spirit(.5w)>;
+fi
+endchar;
+
+cmchar "Smooth breathing with acute";
+beginchar(oct"136",9u#,acc_ht#,0);
+adjust_fit(0,0);
+ if one_accent:
+ universal(.5w);
+ else:
+ spirit_acute(.5w)>;
+ fi
+endchar;
+
+cmchar "Smooth breathing with grave";
+beginchar(oct"002",9u#,Circ_ht#,0);
+adjust_fit(0,0);
+ spirit_grave(.5w)>;
+endchar;
+
+cmchar "Smooth breathing and circumflex";
+beginchar(oct"134",9u#,Circ_ht#,0);
+adjust_fit(0,0);
+ if one_accent:
+ universal(.5w);
+ else:
+ spirit_circumflex(.5w)>;
+ fi
+endchar;
+
+cmchar "Diaeresis";
+beginchar(oct"042",9u#,circ_ht#,0);
+ adjust_fit(0,0);diaeresis(.5w);
+endchar;
+
+cmchar "Diaeresis with acute";
+beginchar(oct"043",9u#,acc_ht#,0);
+adjust_fit(0,0);
+ if one_accent:
+ diaeresis_universal(.5w);
+ else:
+ diaeresis_acute(.5w);
+ fi
+endchar;
+
+cmchar "Diaeresis with grave";
+beginchar(oct"044",9u#,acc_ht#,0);
+adjust_fit(0,0);
+ diaeresis_grave(.5w);
+endchar;
+
+cmchar "Diaeresis with circumflex";
+beginchar(oct"040",9u#,Circ_ht#,0);
+adjust_fit(0,0);
+ diaeresis_circumflex(.5w);
+endchar;
+
+cmchar "Iota subscript";
+beginchar("|",9u#,0,.6desc_depth#);
+adjust_fit(0,0);
+ if one_accent:
+ ;
+ else:
+ iota_sub(.5w);
+ fi
+endchar;
+
+
+cmchar "Breve accent";
+beginchar(oct"036",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+endchar;
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"037",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdbase.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdbase.mf
new file mode 100644
index 00000000000..ec4311ce07e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdbase.mf
@@ -0,0 +1,300 @@
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Base File for Computer Classic Greek Fonts
+%
+% By K J Dryllerakis May 1991. Based on Sylvio-Levy's
+% grbase.
+
+numeric kdbase; kdbase:=1; %don't read this file twice
+%
+% make reference to file in subdirectories less painful
+%
+def readfrom(expr filename) = scantokens ("input " & filename); enddef;
+%
+% Parameter Definitions
+%
+boolean one_accent; % are we working in |one_accent|-system?
+boolean monowidth; % do characters have single width?
+boolean straight; % are certain strokes straight?
+boolean italics; % are we going to make italics?
+numeric univ_acc_breadth; % from 0 to 1:the breadth of the univ. accent
+%
+% Expand the Standard Font setup
+%
+let old_font_setup = font_setup;
+def font_setup =
+ define_whole_vertical_pixels(acc_ht,circ_ht,Circ_ht,iota_dp); %accent heights
+ old_font_setup;
+enddef;
+
+% This part defines macros for saving pictures to facilitate
+% the design of composite characters
+% But if we're using various definitions for the same letter (as when
+% running 6test.mf) we can't use this trick,
+% so we set |working_hard:=true|.
+
+boolean working_hard;
+working_hard:=false;
+
+def this_letter =
+ italcorr ital; adjust_fit(fit_params);
+ if known savedpicture: currentpicture:=savedpicture; else: gen_letter; fi
+ if not working_hard : picture savedpicture; savedpicture=currentpicture; fi
+enddef;
+%
+% The following routines are for use with double characters.
+%
+boolean is_double; is_double:=false;
+let oldendchar=endchar;
+
+def begindoublechar(expr c,w_sharp,h_sharp,d_sharp) =
+is_double:=true; beginchar(c,w_sharp,h_sharp,d_sharp);
+enddef;
+%
+def doublecharkern(expr k_sharp) =
+if not monospace: k:=hround(k_sharp*hppp); r:=r+k; charwd:=charwd+k_sharp; fi
+enddef;
+%
+def middoublechar(expr w_sharp,h_sharp,d_sharp) =
+ scantokens extra_endchar;
+ forsuffixes e=r,l,w,charwd: numeric first.e; first.e:=e; endfor
+
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+ charwd:=w_sharp; charht:=max(charht,h_sharp); chardp:=max(chardp,d_sharp);
+ picture first.glyph; first.glyph=currentpicture;
+ clearxy; clearpen; clearit; clearpen;
+enddef;
+
+def endchar =
+ if is_double :
+ charwd:=first.charwd+charwd;
+ picture second_glyph; second_glyph=currentpicture shifted (first.r-l,0);
+ currentpicture:= first.glyph; addto currentpicture also second_glyph;
+ scantokens extra_endchar;
+ w:=first.w+w; r:=first.r-l+r; l:=first.l;
+ chardx:=first.w+w; interim xoffset:= -l;
+ if proofing>0: makebox(proofrule); fi
+ shipit;
+ if displaying>0: makebox(screenrule); showit; fi
+ endgroup;
+ is_double:=false
+ else :
+ oldendchar
+ fi
+enddef;
+
+% By convention, we reserve the name z1' for the direction at z1, and so on.
+% The direction at |z1r| is |z1'r|, or |zdir1r|.
+vardef zdir[]@#= z@'@# enddef;
+vardef assign_z@#(expr zz)= x@#:=xpart(zz); y@#:=ypart(zz) enddef;
+vardef sgn(expr x)= if (x>0): 1 elseif (x<0): -1 else: 0 fi enddef;
+
+vardef double_circ_stroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: errmessage "Beware: `stroke' isn't intended for cycles"; fi
+ path_.l .. reverse path_.r .. cycle
+enddef;
+
+%vardef drawloop(suffix $,$$,@@,@)=
+%numeric temp[], sup;
+%sup=superness;
+%forsuffixes e=r,l:
+%path curv[]e; numeric S[]e;
+%curv1e=pulled_super_arc.e($,$$)(.5superpull);
+%curv2e=pulled_super_arc.e(@,@@)(.5superpull); endfor
+%(S1r,S2r)=curv1r intersectiontimes curv2r;
+%(temp1,S2l)=curv1r intersectiontimes curv2l;
+%(S1l,temp2)=curv1l intersectiontimes curv2r;
+%for i=1 upto 4:
+%exitif (temp1>=S1r) and (temp2>=S2r);
+%begingroup
+%numeric S[]r, S[]l, temp[]; pair p;
+%interim superness:=(i/10)[sup,1];
+%message"change in superness required; increased to "; show superness;
+%curv1r:=pulled_super_arc.r($,$$)(0);
+%curv2r:=pulled_super_arc.r(@,@@)(0);
+%(S1r,S2r)=curv1r intersectiontimes curv2r;
+%(temp1,S2l)=curv1r intersectiontimes curv2l;
+%(S1l,temp2)=curv1l intersectiontimes curv2r;
+%endgroup;
+%endfor;
+%if S1l=-1 : S1l:=2; fi
+%if S2l=-1 : S2l:=2; fi
+%filldraw stroke subpath(0,S1e+eps) of curv1e;
+%filldraw stroke subpath(0,S2e+eps) of curv2e;
+%filldraw subpath (S1r+eps,2) of curv1r...subpath(2,S2r+eps) of curv2r..cycle;
+%enddef ;
+
+vardef drawloop(suffix $,$$,@@,@)=
+ numeric temp[], sup;
+ sup=superness;
+ forsuffixes e=r,l:
+ path curv[]e; numeric S[]e;
+ curv1e=pulled_super_arc.e($,$$)(.5superpull);
+ curv2e=pulled_super_arc.e(@,@@)(.5superpull); endfor
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (temp1,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,temp2)=curv1l intersectiontimes curv2r;
+ for i=1 upto 9:
+ exitif (temp1>=S1r) and (temp2>=S2r);
+ begingroup
+ numeric S[]r, S[]l, temp[]; pair p;
+ interim superness:=(i/10)[sup,1];
+ message"change in superness required; increased to "; show superness;
+ curv1r:=pulled_super_arc.r($,$$)(0);
+ curv2r:=pulled_super_arc.r(@,@@)(0);
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (temp1,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,temp2)=curv1l intersectiontimes curv2r;
+ endgroup;
+ endfor;
+ if S1l=-1 : S1l:=2; fi
+ if S2l=-1 : S2l:=2; fi
+ filldraw stroke subpath(0,S1e+eps) of curv1e;
+ filldraw stroke subpath(0,S2e+eps) of curv2e;
+ filldraw subpath (S1r+eps,2) of curv1r...subpath(2,S2r+eps) of curv2r..cycle;
+enddef ;
+
+vardef gr_arc.r(suffix $,$$,$$$)(expr min,max,tilt)=
+ pair center, corner;
+ if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+ center=(x$$$r,y$r); corner=(x$r,y$$$r);
+ else :
+ center=(x$r,y$$$r); corner=(x$$$r,y$r);
+ fi
+ z$r{corner-z$r}...superness[center,corner]{z$$$r-z$r}...
+ {z$$$r-corner}z$$$r
+enddef;
+
+vardef gr_arc.l(suffix $,$$,$$$)(expr min,max,tilt)=
+ save p,q,wdth;
+ pair center, corner, temp;
+ numeric wdth, t, s;
+ path p,q;
+ if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+ center=(x$$$r,y$r); corner=(x$r,y$$$r);
+ if tilt>=0 : wdth:=min; other_wdth:=max; t:=2(1-tilt);
+ else : wdth:=max; other_wdth:=min; t:=-2tilt; fi
+ else :
+ center=(x$r,y$$$r); corner=(x$$$r,y$r);
+ if tilt>=0 : wdth:=max; other_wdth:=min; t:=2(1-tilt);
+ else : wdth:=min; other_wdth:=max; t:=-2tilt; fi
+ fi
+ p:=z$r{corner-z$r}...superness[center,corner]{z$$$r-z$r}...
+ {z$$$r-corner}z$$$r;
+ pos$$(wdth,angle direction t of p - 90);
+ z$$r=point t of p;
+ assign_z$$'l(direction t of p);
+ assign_z$$'r(z$$'l);
+ if other_wdth<=currentbreadth: errmessage "bad pos"; fi
+ temp:=point (2-t) of p-
+ (other_wdth-currentbreadth,0) rotated (angle direction (2-t) of p - 90);
+ boolean k[]; k1:=false; k2:=false;
+ if unknown x$l:
+ k1:=true;
+ assign_z$l(temp);
+ assign_z$'l(direction(2-t) of p);
+ if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+ y$l:=2ypart center-y$l;
+ x$'l:=-x$'l;
+ else:
+ x$l:=2xpart center-x$l;
+ y$'l:=-y$'l;
+ fi
+ fi
+ if unknown x$$$l:
+ k2:=true;
+ assign_z$$$l(temp);
+ assign_z$$$'l(direction(2-t) of p);
+ if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+ x$$$l:=2xpart center-x$$$l;
+ y$$$'l:=-y$$$'l;
+ else:
+ y$$$l:=2ypart center-y$$$l;
+ x$$$'l:=-x$$$'l;
+ fi
+ fi
+ q:=z$l{z$'l}...z$$l{z$$'l}...z$$$l{z$$$'l};
+ if k1 :
+ t := xpart(q intersectiontimes (center---z$r));
+ if t=-1 : t:=0; fi
+ assign_z$l(point t of q);
+ assign_z$'l(direction t of q);
+ assign_z$'r(corner-z$r);
+ z$l+z$r=2z$;
+ else: t:=0;
+ fi
+ if k2 :
+ s := xpart(q intersectiontimes (center---z$$$r));
+ if s=-1 : s:=2; fi
+ assign_z$$$l(point s of q);
+ assign_z$$$'l(direction s of q);
+ assign_z$$$'r(z$$$r-corner);
+ z$$$l+z$$$r=2z$$$;
+ else: s:=2;
+ fi
+ subpath (t,s) of q
+enddef;
+
+vardef doodah(suffix $,$$,$$$)=
+ if known x$$:
+ vardef ward(expr gr)=
+ sgn(xpart direction 1 of (z${zdir$}..(x$$,gr)..{zdir$$$}z$$$)) <> sgn(x$-x$$)
+ enddef;
+ y$$=solve ward(y$,y$$$);
+ else:
+ vardef ward(expr gr)=
+ sgn(ypart direction 1 of (z${zdir$}..(gr,y$$)..{zdir$$$}z$$$)) <> sgn(y$-y$$)
+ enddef;
+ x$$=solve ward(x$,x$$$);
+ fi
+ (z${zdir$}..z$$..{zdir$$$}z$$$)
+enddef;
+
+forsuffixes e=r,l:
+vardef club.e(suffix $,$$,$$$)= doodah($e,$$e,$$$e) enddef; endfor
+
+
+vardef alpha_tail(suffix $,$$) =
+ pos$$(hair,180); top y$$=vround 4/3[bot y$l,top y$r]; %tip of hook
+ rt x$$l=hround(x$+(y$$-y$)+.5hair); %central arc is round
+enddef;
+
+vardef pi_bar =
+ pos3(vstem,-90); rt x3=hround(w-.75u); top y3l=x_height; %top right
+ pos2(vstem,-90); y2=y3; x2=.25w; %top left
+ x1-.5hair=hround.75u; y1-.5hair=4/3[top y2l,bot y2r]; %tip of bar
+ numeric slope; slope=angle((z2-z1)yscaled 2); pos1(hair,slope-90);
+ forsuffixes e=l,r: z1'e=(z2e-z1e)yscaled 2; endfor
+ filldraw circ_stroke z1e{z1'e}...z2e---z3e; %bar
+enddef;
+
+def traba(expr poso) = transform t; t = identity shifted (poso,0);
+currentpicture := currentpicture transformed t;
+enddef;
+
+% End of KD Base
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdbf10.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdbf10.mf
new file mode 100644
index 00000000000..2102a1dbf96
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdbf10.mf
@@ -0,0 +1,126 @@
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Fonts.
+% -----------------------------
+% Font: Boldface
+% Dimn: 10pt
+%
+% Revision Date: 10.05.91 [KJD]
+% -----------------------------
+% Load Bases
+%
+if unknown cmbase: input cmbase fi
+if unknown kdbase: input kdbase fi
+
+font_identifier:="KDBF"; font_size 10pt#;
+%
+% CM Base Parameters
+%
+u#:=22/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders %was 70
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=13/36pt#; % lowercase hairline breadth (was 17)
+stem#:=40/36pt#; % lowercase stem breadth (was 41)
+curve#:=41/36pt#; % lowercase curve breadth (was 46)
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=41/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+italics:=false; % are we creating italics ?
+%
+% KD Bases Parameters
+%
+acc_ht#:=250/36pt#; % Height of accent
+circ_ht#:=230/36pt#; %
+Circ_ht#:=250/36pt#; %
+iota_dp#:=72/36pt#; %
+one_accent:=false; % are we generating one_accent font ?
+%
+% Switch to Driver
+%
+generate kdgreek;
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdbf8.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdbf8.mf
new file mode 100644
index 00000000000..dbd29e05b70
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdbf8.mf
@@ -0,0 +1,126 @@
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Fonts.
+% -----------------------------
+% Font: Boldface
+% Dimn: 8pt
+%
+% Revision Date: 10.05.91 [KJD]
+% -----------------------------
+% Load Bases
+%
+if unknown cmbase: input cmbase fi
+if unknown kdbase: input kdbase fi
+
+font_identifier:="KDBF"; font_size 8pt#;
+%
+% CM Base Parameters
+%
+u#:=17.6/36pt#; % unit width
+width_adj#:=9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216.0/36pt#; % height of tallest characters
+asc_height#:=200.0/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128.0/36pt#; % height of lowercase without ascenders
+math_axis#:=72.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=68.0/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56.0/36pt#; % depth of comma below baseline
+desc_depth#:=54.0/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=104.0/36pt#; % diameter of rounded corners
+fine#:=70.0/36pt#; % diameter of sharply rounded corners
+thin_join#:=70.0/36pt#; % width of extrafine details
+hair#:=11.7/36pt#; % lowercase hairline breadth
+stem#:=34.2/36pt#; % lowercase stem breadth
+curve#:=32.8/36pt#; % lowercase curve breadth
+ess#:=34.2/36pt#; % breadth in middle of lowercase s
+flare#:=36.9/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=44.8/36pt#; % diameter of dots
+cap_hair#:=17.1/36pt#; % uppercase hairline breadth
+cap_stem#:=40.8/36pt#; % uppercase stem breadth
+cap_curve#:=44.0/36pt#; % uppercase curve breadth
+cap_ess#:=42.4/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.54pt#;% thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8.0/36pt#; % vertical distance from serif base to tangent
+jut#:=20.0/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31.2/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=56.0/36pt#; % vertical protrusion of beak serifs
+vair#:=8.8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=15.3/36pt#; % lowercase bar thickness
+slab#:=15.3/36pt#; % serif and arm thickness
+cap_bar#:=15.3/36pt#; % uppercase bar thickness
+cap_band#:=15.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8.00pt#;% max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2.0/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3.2/36pt#; % amount of overshoot for curves
+apex_o#:=2.4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+italics:=false; % are we creating italics ?
+%
+% KD Bases Parameters
+%
+acc_ht#:=200.0/36pt#;
+circ_ht#:=184.0/36pt#;
+Circ_ht#:=200.0/36pt#;
+iota_dp#:=57.6/36pt#;
+one_accent:=false; % are we generating one_accent font ?
+%
+% Switch to Driver
+%
+generate kdgreek;
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdbf9.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdbf9.mf
new file mode 100644
index 00000000000..50f6346c3ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdbf9.mf
@@ -0,0 +1,127 @@
+%
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Fonts.
+% -----------------------------
+% Font: Boldface
+% Dimn: 9pt
+%
+% Revision Date: 10.05.91 [KJD]
+% -----------------------------
+% Load Bases
+%
+if unknown cmbase: input cmbase fi
+if unknown kdbase: input kdbase fi
+
+font_identifier:="KDBF"; font_size 9pt#;
+%
+% CM Base Parameters
+%
+u#:=19.8/36pt#; % unit width
+width_adj#:=10.0/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243.0/36pt#; % height of tallest characters
+asc_height#:=225.0/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144.0/36pt#; % height of lowercase without ascenders
+math_axis#:=81.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=75.8/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63.0/36pt#; % depth of comma below baseline
+desc_depth#:=72.0/36pt#; % depth of lowercase descenders %was 70
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=58.5/36pt#; % diameter of rounded corners
+fine#:=40.0/36pt#; % diameter of sharply rounded corners
+thin_join#:=40.0/36pt#; % width of extrafine details
+hair#:=12.3/36pt#; % lowercase hairline breadth (was 17)
+stem#:=36.1/36pt#; % lowercase stem breadth (was 41)
+curve#:=36.9/36pt#; % lowercase curve breadth (was 46)
+ess#:=36.1/36pt#; % breadth in middle of lowercase s
+flare#:=39.0/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50.4/36pt#; % diameter of dots
+cap_hair#:=18.1/36pt#; % uppercase hairline breadth
+cap_stem#:=45.9/36pt#; % uppercase stem breadth
+cap_curve#:=49.5/36pt#; % uppercase curve breadth
+cap_ess#:=47.7/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.57pt#;% thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9.0/36pt#; % vertical distance from serif base to tangent
+jut#:=22.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35.1/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=63.0/36pt#; % vertical protrusion of beak serifs
+vair#:=9.9/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=16.1/36pt#; % lowercase bar thickness
+slab#:=16.1/36pt#; % serif and arm thickness
+cap_bar#:=16.1/36pt#; % uppercase bar thickness
+cap_band#:=16.1/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9.00pt#;% max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2.0/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3.6/36pt#; % amount of overshoot for curves
+apex_o#:=2.7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+italics:=false; % are we creating italics ?
+%
+% KD Bases Parameters
+%
+acc_ht#:=225.0/36pt#;
+circ_ht#:=207.0/36pt#;
+Circ_ht#:=225.0/36pt#;
+iota_dp#:=64.8/36pt#;
+one_accent:=false; % are we generating one_accent font ?
+%
+% Switch to Driver
+%
+generate kdgreek;
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kddigits.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kddigits.mf
new file mode 100644
index 00000000000..02944c833af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kddigits.mf
@@ -0,0 +1,347 @@
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% This file is the essentially the same as Computer Modern's romand.mf.
+% It contains the ten digits in so-called roman style.
+% Character codes \0060 through \0071 are generated.
+
+% All digits have the same height, width, depth, and italic correction.
+
+cmchar "The numeral 0";
+beginchar("0",9u#,fig_height#,0);
+ italcorr fig_height#*slant-.5u#;
+ adjust_fit(0,0);
+ penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+ if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+ x2r=hround max(.7u,1.45u-.5curve); x4r=w-x2r; x1=x3=.5w;
+ y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+ penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+ penlabels(1,2,3,4);
+endchar;
+
+cmchar "The numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+if light_stem <= tiny: light_stem:=tiny+eps; fi
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+cmchar "The numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75h+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 4";
+beginchar("4",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab,h-light_stem]+1
+ else:.35(h-light_stem) fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=0;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=vround .61803h+o;
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull)
+ & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(eps,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3h; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull)
+ & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdgr10.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdgr10.mf
new file mode 100644
index 00000000000..22914e8fda1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdgr10.mf
@@ -0,0 +1,120 @@
+%
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Font at 10 points
+%
+if unknown cmbase: input cmbase fi
+if unknown kdbase: input kdbase fi
+
+font_identifier:="KDGR10"; font_size 10pt#;
+
+% Definitions for CMBase
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#;% extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#;% height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% Definitions For KDBase
+
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+one_accent:=false; % are we generating a one accent system?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+italics:=false; % are we generating italics ?
+
+% Switch to device driver
+
+generate kdgreek;
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdgr8.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdgr8.mf
new file mode 100644
index 00000000000..34e144c0c1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdgr8.mf
@@ -0,0 +1,123 @@
+%
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Fonts.
+% -----------------------------
+% Font: Regular
+% Dimn: 8pt
+% -----------------------------
+% Load Bases
+%
+if unknown cmbase: input cmbase fi
+if unknown kdbase: input kdbase fi
+
+font_identifier:="KDGR"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=23/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=6.6/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% CC Base Parameters
+
+acc_ht#:=210/36pt#;
+circ_ht#:=180/36pt#;
+Circ_ht#:=210/36pt#;
+iota_dp#:=57.6/36pt#;
+
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+italics:=false; % Are we generating Italics?
+one_accent:=false; % Are we generating one_accent font?
+
+generate kdgreek; % Switch to driver
+
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdgr9.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdgr9.mf
new file mode 100644
index 00000000000..61a5e39f9db
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdgr9.mf
@@ -0,0 +1,122 @@
+%
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Font at 9 points
+%
+if unknown cmbase: input cmbase fi
+if unknown kdbase: input kdbase fi
+
+font_identifier:="KDGR9"; font_size 9pt#;
+
+% Definitions for CMBase
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=75.8/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=73/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=25.5/36pt#; % lowercase stem breadth
+curve#:=27.8/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10.3/36pt#; % uppercase hairline breadth
+cap_stem#:=29.3/36pt#; % uppercase stem breadth
+cap_curve#:=33.5/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=7.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10.3/36pt#; % lowercase bar thickness
+slab#:=10.3/36pt#; % serif and arm thickness
+cap_bar#:=10.3/36pt#; % uppercase bar thickness
+cap_band#:=10.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% Definitions For KDBase
+
+acc_ht#:=230/36pt#;
+circ_ht#:=202.5/36pt#;
+Circ_ht#:=230/36pt#; %
+iota_dp#:=64.8/36pt#; % Depth of i under vowel
+one_accent:=false; % are we generating a one accent system?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+italics:=false; % are we generating italics ?
+
+% Switch to greek device driver
+
+generate kdgreek;
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdgreek.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdgreek.mf
new file mode 100644
index 00000000000..0f4702eb002
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdgreek.mf
@@ -0,0 +1,59 @@
+%
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Family of Fonts
+% Adapted by K J Dryllerakis
+%
+if ligs>1: font_coding_scheme:="TeX greek text";
+else: font_coding_scheme:="TeX greek typewriter text";fi
+
+mode_setup; font_setup;
+
+readfrom("kdaccent"); % accents
+if italics:
+ readfrom("kdilower");
+ readfrom("kdidigit");
+else:
+ readfrom("kdlower");
+ readfrom("kddigits");
+fi
+if ligs>0:
+ readfrom("kdlig");
+else:
+ readfrom("kdligcom");
+fi
+readfrom("kdupper");
+readfrom("kdpunct");
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+font_quad 18u#; font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#; font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#; font_extra_space 2u#;fi
+
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdidigit.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdidigit.mf
new file mode 100644
index 00000000000..329906df90e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdidigit.mf
@@ -0,0 +1,287 @@
+% This is KDITALD.MF
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% This file contains the ten digits in so-called italic style.
+% Character codes \0060 through \0071 are generated.
+
+% The characters all have the same italic correction.
+
+cmchar "Italic numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround(1.5u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Italic numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=.8h+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u); tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..{left}z4e; % point
+penlabels(1,2,3,4); endchar;
+
+cmchar "Italic numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(curve,-360); pos7(hair,-405); pos8(hair,-360);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair);
+x3=.6[x2,x4]; lft x4r=hround(u-.5hair);
+x5=x7=.5w-.5u; rt x6r=hround(w-u); lft x8l=hround(1.5u-.5hair);
+y1=.5[x_height,h]; y2=1/3[y1,y3]; y4=x_height; bot y3r=vround .78y4;
+top y5r=h+o; y6=.5[y5,y7]; y7=.52y4; bot y8=-o;
+filldraw stroke if not hefty:z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6)
+ ...z7e{2(x7-x6),y7-y6}...{down}z8e; % main stroke
+pos9(vair,-90); pos10(vstem+curve-stem,-90); pos11(hair,0);
+x9=w-x10=2.5u; rt x11r=hround(w-.5u+.5hair);
+y9=.25[y10,y7]; bot y10r=-o; y11=.38x_height;
+filldraw stroke z8e{up}...z9e{right}..{right}z10e...{up}z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Italic numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(stem,-360); pos7(bar,-450); pos8(bar,-450);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
+x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
+y1=.5[x_height,h]; y2=.5[y1,y3]; y7=y8=.52h; bot y3r=vround 1/4[y7,h];
+y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
+filldraw stroke if not hefty: z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
+pos7'(vair,90); z7'l=z7r;
+pos9(curve,0); pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
+y9=.25h; bot y10r=-o; y11=1/3x_height; bulb(10,11,12); % bulb
+filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Italic numeral 4";
+beginchar("4",9u#,fig_height#,desc_depth#);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos6(stem,0); pos7(stem,0);
+pos2(bar,-45); pos3(bar,-90); pos4(bar,-90); pos5(bar,-45);
+rt x1r=hround(.5w+.5u+.5stem); lft x2l=hround .25u;
+x3=2.75u; x4=w-2u; rt x5r=hround(w-.25u);
+rt x6r=rt x7r=hround(2/3w+.5stem);
+y1+.5stem=h+o; bot y2r=0; bot y3r=vround(.08h-.5bar);
+bot y4r=vround-.5bar; bot y5r=vround(.03h-.5bar);
+y6+.5stem=bar_height; y7-.5stem=-d;
+filldraw circ_stroke z1e{down}...{3(x2-x1),y2-y1}z2e; % diagonal
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{x5-x4,2(y5-y4)}z5e; % bar
+filldraw z6l---z7l..z7r---z6r..cycle; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull)
+ & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic numeral 7";
+beginchar("7",9u#,fig_height#,desc_depth#);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric fat_curve; fat_curve=1.4[stem,curve];
+pos1(hair,0); pos2(hair,0); pos3(vstem+curve-stem,-90);
+pos4(vair,-90); pos5(hair,0); pos6(fat_curve,0);
+top y1=h+o; y2=x_height; y3l=y5=y1;
+bot y4r=vround(.5[y2,h]-.5vair); y6-.5fat_curve=-o;
+lft x2l=hround(.5u-.5hair); x3=.5w-.5u; x4=2/3w;
+rt x5r=hround(w-.75u+.5hair); rt x6r=hround(.5w+u+.5fat_curve);
+z1=z2+whatever*(z5-z6); filldraw stroke z1e--z2e; % serif
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{2(x5-x6),y5-y6}z5e; % bar
+filldraw circ_stroke z6e{up}...{2(x5-x6),y5-y6}z5e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Italic numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense;
+ pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdilower.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdilower.mf
new file mode 100644
index 00000000000..a94780a8958
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdilower.mf
@@ -0,0 +1,1282 @@
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+%
+% File : kdilower.mf
+%
+%
+%
+
+% ======================================================================
+% ALFA
+% ======================================================================
+
+def width = 8.5u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5u# enddef;
+def acc_corr = 1.5u enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+.5u;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+ numeric x_baryctr; x_baryctr=.25[x1,x4]; %accent reference
+ numeric pos_stem; pos_stem=x_baryctr; %iota reference
+ traba(-.5u);
+enddef;
+
+cmchar "Lowercase alpha";
+beginchar("a",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase alpha with rough breathing";
+beginchar(oct"200",width#+u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing";
+beginchar(oct"210",width#+u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+cmchar "Lowercase alpha with acute";
+beginchar(oct"220",width#+u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase alpha with rough breathing and acute";
+beginchar(oct"230",width#+u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase alpha with smooth breathing and acute";
+beginchar(oct"240",width#+u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase alpha with rough breathing and grave";
+beginchar(oct"260",width#+u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase alpha with smooth breathing and grave";
+beginchar(oct"270",width#+u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase alpha with circumflex";
+beginchar(oct"207",width#+u#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+%
+cmchar "Lowercase alpha with grave";
+beginchar(oct"250",width#+u#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+
+cmchar "Lowercase alpha with rough breathing and circumflex";
+beginchar(oct"300",width#+u#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing and circumflex";
+beginchar(oct"310",width#+u#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+%
+cmchar "Lowercase alpha with iota subscript";
+beginchar(oct"320",width#+u#,height#,iota_dp#);
+this_letter; iota_sub(pos_stem); endchar;
+%
+cmchar "Lowercase alpha with acute and iota subscript";
+beginchar(oct"301",width#+u#,acc_ht#,iota_dp#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with grave and iota subscript";
+beginchar(oct"330",width#+u#,acc_ht#,iota_dp#);
+this_letter; grave(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing and iota subscript";
+beginchar(oct"340",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing and iota subscript";
+beginchar(oct"350",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing, grave and iota subscript";
+beginchar(oct"360",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_grave(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing, grave and iota subscript";
+beginchar(oct"361",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_grave(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing and acute and iota subscript";
+beginchar(oct"311",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing and acute and iota subscript";
+beginchar(oct"321",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with circumflex and iota subscript";
+beginchar(oct"331",width#+u#,circ_ht#,iota_dp#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing, circumflex and iota subscript";
+beginchar(oct"341",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing, circumflex and iota subscript";
+beginchar(oct"351",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+picture pic.iota;
+picture savedpicture;
+
+% ======================================================================
+% BHTA
+% ======================================================================
+
+def dims = 8u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+1.5u;
+pos0(.5[hair,stem],180); pos1(.5[hair,stem],180); pos2(vair,90);
+pos3(stem,0); pos4(vair,-90); pos5(hair,-180);
+pos6(vair,-270); pos7(curve,-360); pos8(vair,-450); pos9(hair,-540);
+x0=x1=x9; lft x0l=hround(1.5u-.5hair); x2=x4=x6=x8=.5w+.25u;
+rt x3r=hround(w-1.5u); rt x7r=hround(w-1.5u+.5curve); rt x5l=hround(x4-u);
+bot y0=-d; y1=top y6r=x_height; top y2r=h+oo; y3=.5[y2,y4];
+y5=.5[y4,y6]; top y6r-bot y4r=vstem+eps; bot y8=-oo; y7=y9=.5[y6,y8];
+if y6l<y4l: y6l:=y4l:=y5; fi
+filldraw stroke z0e---z1e...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{up}z5e; % stem and upper bowl
+filldraw stroke z5e{up}...pulled_arc.e(6,7)
+ & pulled_arc.e(7,8)...{up}z9e; % lower bowl
+math_fit(desc_depth#*slant+.5hair#-u#,.7x_height#*slant+.5curve#-1.5u#);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase beta";
+beginchar("b",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+picture savedpicture;
+
+% ======================================================================
+% GAMMA
+% ======================================================================
+
+def dims = 8.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ adjust_fit(0,0); pickup fine.nib; w:=w+1.5u;
+pos1(hair,180); pos2(vstem+dw,90);
+pos4(hair,0); pos5(vair,-90); pos6(hair,-180); pos7(hair,-180);
+bot y1=.5772156649h; top y2r=h+oo; y4=y6=-.5d;
+bot y5r=-d-o; top y7=h;
+lft x1r=hround(.5u-.5hair); x2=2.5u; rt x4r=hround(w-3u); x5=.5[x4,x6];
+rt x4l-lft x6l=curve; rt x7l=hround(w-u);
+if x4l<x6l: x4l:=x6l:=x5; fi
+pos3(hair,angle(z4-z2)+90); x3=superness[x2,x4]; y3=superness[y4,y2];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4-z2}
+ ...z4e{down}...{left}z5e; % arc
+filldraw stroke z5e{left}...z6e{up}..{2(x7-x6),y7-y6}z7e; % stem
+math_fit(-.5772156649x_height#*slant,ic#-u#);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase gamma";
+beginchar("g",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+
+picture savedpicture;
+
+% ======================================================================
+% DELTA
+% ======================================================================
+
+def dims = 7.25u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ adjust_fit(0,0); pickup fine.nib; w:=w+.75u;
+pos1(hair,-180); pos2(vair,-90);
+numeric theta; theta=angle(18u,-h); pos9(hair,theta);
+pos3(stem,theta+90); pos4(stem,theta+90); pos5(1/4[hair,stem],20);
+pos6(vair,-90); pos7(curve,-180); pos8(vair,-270);
+rt x1l=hround(w-2u+.5hair); x2=.5w; x3r=3u; rt x5r=hround(w-u);
+x9l=hround(x1+u); y9=y1;
+x4=x6=x8=.5w+.5u; lft x7r=hround(1.5u-.5curve);
+top y2l=h+oo; y1=min(.9h,y2r-eps); top y8r=x_height+oo; y4=y8;
+z4-z3=whatever*(18u,-h); y5=y7=.5[y6,y8]; bot y6=-oo;
+filldraw stroke z1e{x2-x1,3(y2-y1)}...z2e{left}...z3e---z4e
+ ....z5e{down}...pulled_arc.e(6,7) & pulled_arc.e(7,8); % hook and bowl
+filldraw stroke z1{x1-x2,3(y1-y2)}...{x1-x2,3(y2-y1)}z9;
+math_fit(-.3x_height#*slant+.5curve#-u#,.7x_height#*slant-.5u#);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase delta";
+beginchar("d",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture;
+%
+% ======================================================================
+% EYILON
+% ======================================================================
+%
+def width = 6.5u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+def acc_corr = 1.5u enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+1.5u;
+numeric light_vstem; light_vstem=Vround 2/3[vair,vstem];
+pos2(light_vstem,90); x2=x8=.5w+.5u; top y2r=h+o;
+x1+.5light_vstem=hround(w-u); y1=.2[y2,bar_height];
+pos1(light_vstem,angle(x1-x2,2(y1-y2))+90); pos3(hair,180); pos4(vair,270);
+pos5(hair,360); pos6(vair,450); pos7(hair,540); pos8(light_vstem,630);
+lft x3r=hround u; x4=x6=.5w; rt x5r=hround(w-2.5u); x7=x3;
+y3=.5[y2,y4]; y5=bar_height=.5[y4,y6]; y7=.5[y6,y8]; bot y8r=-o;
+top y6r-bot y4r=vstem+eps; if y6l<y4l: y6l:=y4l:=y5; fi
+x9+.5vair=hround(w-.5u); y9=1/3[y8,bar_height];
+pos9(vair,angle(x8-x9,2(y8-y9))+90);
+filldraw circ_stroke z1e{x2-x1,2(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & super_arc.e(3,4)...{up}z5e; % upper arc
+filldraw circ_stroke z9e{x8-x9,8(y8-y9)}...pulled_arc.e(8,7)
+ & super_arc.e(7,6)...{down}z5e; % lower arc
+math_fit(-.5bar_height#*slant-.5u#,ic#);
+ numeric x_baryctr; x_baryctr=x2; % accent reference
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase epsilon";
+beginchar("e",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+%
+cmchar "Lowercase epsilon with rough breathing";
+beginchar(oct"201",width#+1.2u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing";
+beginchar(oct"211",width#+1.2u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with acute";
+beginchar(oct"221",width#+1.2u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase epsilon with rough breathing and acute";
+beginchar(oct"231",width#+1.2u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and acute";
+beginchar(oct"241",width#+1.2u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with rough breathing and grave";
+beginchar(oct"261",width#+1.2u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and grave";
+beginchar(oct"271",width#+1.2u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with grave";
+beginchar(oct"251",width#+1.2u#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% ZHTA
+% ======================================================================
+%
+def dims = 7u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+pos0(hair,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90);
+numeric theta; theta=90-angle(25u,x_height); slope:=-x_height/25u;
+pos6(stem,theta); pos7(vair,-90); pos8(vair,-135);
+lft x0l=hround 3.5u; x1=x3=.5[x0,x2]; rt x2l=hround max(rt x0r,w-2u)+eps;
+top y0=h; top y3l=bot y1l+vstem+eps=vround(y0-.25(h-x_height)); y2=.5[y1,y3];
+if y1r>y3r: y1r:=y3r:=y2; fi
+lft x4l=hround u; x4r-x4l=(hround .6[vair,stem])-fine;
+x6+.5u=x7=w-2u; x8=.5w+.75u;
+y6=-.1d; y8=-3/4d-oo; bot y7r=-d-oo;
+ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r);
+y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r];
+filldraw circ_stroke z0e{down}...z1e{right}...{up}z2e; % opening hook
+filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}
+ ...z6e---z5e....{up}z4e
+ ..tension 1 and atleast1.5..{right}z3e...{down}z2e; % main stroke
+math_fit(-.2asc_height#*slant-.5u#,0);
+traba(-.5u);
+enddef;
+%
+cmchar "Lowercase zeta";
+beginchar("z",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% HTA [Bug fixed by Knappen June 1992]
+% ======================================================================
+%
+def width = 8.5u enddef;
+def dims = width#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = if straight: .75 else: .5 fi u#,0 enddef;
+def acc_corr = 1.5u enddef;
+%
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+.5u;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-1.5u+.5stem); ital_arch(2,3,4); % arch
+pos5(stem,0); x5=x4; y5-.5stem=-d-o;
+filldraw circ_stroke z5e--z4e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+ numeric x_baryctr; x_baryctr=.1[x3,x0]; % accent reference
+ numeric pos_stem; pos_stem=x2; % iota reference
+enddef;
+%
+cmchar "Lowercase eta";
+beginchar("h",dims);
+this_letter; penlabels(0,a,1,2,3,4,5); endchar;
+%
+cmchar "Lowercase eta with rough breathing";
+beginchar(oct"202",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing";
+beginchar(oct"212",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase eta with acute";
+beginchar(oct"222",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase eta with rough breathing and acute";
+beginchar(oct"232",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and acute";
+beginchar(oct"242",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase eta with rough breathing and grave";
+beginchar(oct"262",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and grave";
+beginchar(oct"272",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase eta with circumflex";
+beginchar(oct"217",width#+1.3u#,circ_ht#,desc_depth#);
+this_letter; circumflex(x_baryctr); endchar;
+%
+cmchar "Lowercase eta with grave";
+beginchar(oct"252",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; grave(x_baryctr); endchar;
+%
+
+cmchar "Lowercase eta with rough breathing and circumflex";
+beginchar(oct"302",width#+1.3u#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and circumflex";
+beginchar(oct"312",width#+1.3u#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+cmchar "Lowercase eta with grave and iota subscript";
+beginchar(oct"332",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; grave(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing and iota subscript";
+beginchar(oct"342",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing and iota subscript";
+beginchar(oct"352",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with acute and iota subscript";
+beginchar(oct"303",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing, acute and iota subscript";
+beginchar(oct"313",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing and acute and iota subscript";
+beginchar(oct"323",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing, grave and iota subscript";
+beginchar(oct"362",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing and grave and iota subscript";
+beginchar(oct"363",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with circumflex and iota subscript";
+beginchar(oct"333",width#+1.3u#,circ_ht#,desc_depth#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing, circumflex and iota subscript";
+beginchar(oct"343",width#+1.3u#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing, circumflex and iota subscript";
+beginchar(oct"353",width#+1.3u#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with iota subscript";
+beginchar(oct"322",width#+1.3u#,x_height#,desc_depth#);
+this_letter; iota_sub(pos_stem); endchar;
+
+picture pic.iota;
+picture savedpicture;
+%
+% ======================================================================
+% JHTA
+% ======================================================================
+%
+def dims = 7u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+1.25u;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l;
+filldraw stroke z2'e--z4'e; % bar
+math_fit(-.3asc_height#*slant-u#+.5curve#,ic#-.5u#);
+traba(-.5u);
+enddef;
+%
+cmchar "Lowercase theta";
+beginchar("j",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% IWTA
+% ======================================================================
+%
+def width = 5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = if monospace: u#,u# else:0,2curve#-3u# fi enddef;
+def acc_corr = 0 enddef;
+%
+def gen_letter=
+adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo;
+x2=x1-.25u; x4=w; hook_out(2,3,4)(skewed); % closing hook
+filldraw circ_stroke z1e{down}...{-u,-x_height}z2e; % stem
+math_fit(0,ic#); numeric x_baryctr; x_baryctr=x1;
+enddef;
+%
+cmchar "Lowercase iota";
+beginchar("i",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+%
+cmchar "Lowercase iota with rough breathing";
+beginchar(oct"205",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: +.25u fi)<; endchar;
+%
+cmchar "Lowercase iota with smooth breathing";
+beginchar(oct"215",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: -.25u fi)>; endchar;
+%
+cmchar "Lowercase iota with acute";
+beginchar(oct"225",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase iota with rough breathing and acute";
+beginchar(oct"235",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase iota with smooth breathing and acute";
+beginchar(oct"245",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase iota with rough breathing and grave";
+beginchar(oct"265",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase iota with smooth breathing and grave";
+beginchar(oct"275",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase iota with circumflex";
+beginchar(oct"237",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+%
+cmchar "Lowercase iota with grave";
+beginchar(oct"255",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+cmchar "Lowercase iota with rough breathing and circumflex";
+beginchar(oct"305",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing and circumflex";
+beginchar(oct"315",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+cmchar "Lowercase iota with diaeresis";
+beginchar(oct"010",width#,circ_ht#,0);
+this_letter; diaeresis(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis and grave";
+beginchar(oct"012",width#,acc_ht#,0);
+this_letter; diaeresis_grave(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis and acute";
+beginchar(oct"011",width#,acc_ht#,0);
+this_letter; diaeresis_acute(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis and circumflex";
+beginchar(oct"013",width#,Circ_ht#,0);
+this_letter; diaeresis_circumflex(x_baryctr); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% KAPPA
+% ======================================================================
+%
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+.5u;
+pos1(stem,0); pos2(stem,0); pos3(vair,90); pos4(vair,90); pos5(flare,90);
+x1=x2=x3; lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; y2-.5stem=-oo;
+filldraw z1l---z2l..z2r---z1r..cycle; % stem
+y3=bar_height; top y4r=h; x4+.5flare=hround(w-1.5u); z5r=z4r;
+path p,q; p=z3l{right}..{right}z4l; q=z5r{right}..z5l{left}...cycle;
+numeric t; t=ypart(p intersectiontimes q);
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+filldraw subpath(0,t) of q--cycle; % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-epsilon); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,ic#);
+traba(-.5u);
+enddef;
+%
+cmchar "Lowercase kappa";
+beginchar("k",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% LAMBDA
+% ======================================================================
+%
+def dims = 8u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25u#,-.25u# enddef;
+def krn = -.75u# enddef;
+%
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+2.5u;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e;
+traba(-u);% short diagonal
+enddef;
+%
+cmchar "Lowercase lambda";
+beginchar("l",dims);
+this_letter; penlabels(1,2,3,4,5,6); endchar;
+
+picture savedpicture;
+
+% ======================================================================
+% MI
+% ======================================================================
+
+def dims = 8.25u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5stem# enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib;
+w:=w+.75u; interim superness:=more_super;
+pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem);
+y1+.5stem=h+oo; y2-.5stem=-d-o;
+filldraw z1r---z2r..z2l---z1l..cycle; % left stem
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+traba(-.75u);
+enddef;
+
+cmchar "Lowercase mu";
+beginchar("m",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+picture savedpicture;
+
+% ======================================================================
+% NI
+% ======================================================================
+
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib;
+pos3(vair,-90); pos4(stem,0); bot y3r=0; y4+.5stem=h+oo;
+x3-.5stem=hround(1.5u-.5stem); x4+.5stem=hround(w-1.5u+.5stem);
+filldraw circ_stroke z4e{down}...{-36u,-h}z3e; % diagonal
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+top y1=h+min(oo,serif_drop); bot y2=0; x1=x2=x3;
+z=((z4{down}...{-36u,-h}z3)intersectionpoint((x2r,0)--(x2r,h)));
+filldraw z1l--z2l--z--z1r--cycle; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); traba(.5u);% upper left serif
+math_fit(0,ic#-1/3x_height#*slant-.5u#); enddef;
+
+cmchar "Lowercase nu";
+beginchar("n",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+
+picture savedpicture;
+
+% ======================================================================
+% XI
+% ======================================================================
+
+def dims = 7u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+pos10(hair,-720); pos11(vair,-630); pos12(hair,-540); pos13(vair,-450);
+lft x10l=hround 1/3w; x11=x13=.5[x10,x12]; rt x12l=hround(w-2.5u);
+top y10=h; top y13l=bot y11l+vstem+eps=vround(y10-.25(h-x_height));
+y12=.5[y11,y13]; if y11r>y13r: y11r:=y13r:=y12; fi
+pos0(curve,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90);
+numeric theta; theta=90-angle(22u,x_height); slope:=-x_height/22u;
+pos6(stem,theta); pos7(vair,-90); pos8(vair,-135);
+lft x0l=hround u; x1=x3=x11; x2=x12;
+y0=.5[y13,y1]; top y3l=vround .5h=bot y1l+vstem+eps; y2=.5[y1,y3];
+if y1r>y3r: y1r:=y3r:=y2; fi
+lft x4l=hround u; x4r-x4l=hround .5[vair,stem]-fine;
+x6=x7=w-2u; x8=.5w+.5u; y6=-.3d; bot y7r=-d-oo; y8=max(-3/4d-oo,y7l);
+ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r);
+y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r];
+filldraw circ_stroke z10e{down}...z11e{right}...{up}z12e; % opening hook
+filldraw stroke z12e{up}...z13e{left}...z0e{down}
+ ...z1e{right}...{up}z2e; % upper arc
+filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e
+ ---z5e...{up}z4e...{right}z3e...{down}z2e; % main stroke
+math_fit(-.2asc_height#*slant-.5u#,0);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase xi";
+beginchar("x",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+picture savedpicture;
+%
+% ======================================================================
+% OMIKRON
+% ======================================================================
+%
+def width = 8u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+ numeric x_baryctr; x_baryctr=.1[x1,x2];
+traba(-.5u); % accent reference
+enddef;
+%
+cmchar "Lowercase omicron";
+beginchar("o",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+%
+cmchar "Lowercase omicron with rough breathing";
+beginchar(oct"203",width#+.6u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omicron with smooth breathing";
+beginchar(oct"213",width#+.6u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omicron with acute";
+beginchar(oct"223",width#+.6u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase omicron with rough breathing and acute";
+beginchar(oct"233",width#+.6u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omicron with smooth breathing and acute";
+beginchar(oct"243",width#+.6u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omicron with rough breathing and grave";
+beginchar(oct"263",width#+.6u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omicron with smooth breathing and grave";
+beginchar(oct"273",width#+.6u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omicron with grave";
+beginchar(oct"253",width#+.6u#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% PI
+% ======================================================================
+%
+def dims = 9u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+%
+def gen_letter =
+adjust_fit(0,0); w:=w+u; pi_stroke; % hook and bar
+pos4(hair,0); pos6(hair,0); x4=3.5u; x6=w-4u; y4=y6=y2;
+x5=3u; x7=w-2.5u; y5=y7=.5stem-oo;
+pair v[]; v1=(z4-z5) xscaled 3.14159; v2=(z6-z7) xscaled 3.14159;
+pos5(stem,angle v1-90); pos7(stem,angle v2-90);
+filldraw circ_stroke z5e{v1}...{up}z4e; % left stem
+filldraw circ_stroke z7e{v2}...{up}z6e; % right stem
+math_fit(-.7x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+enddef;
+%
+cmchar "Lowercase pi";
+beginchar("p",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% RO
+% ======================================================================
+%
+def width = 7u enddef;
+def height = x_height enddef;
+def depth = desc_depth enddef;
+def dims = width#,height#,depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+1.25u;
+pos2(stem,180); pos3(vair,90); pos4(curve,0); pos5(vair,-90); pos6(stem,-180);
+lft x2r=hround(1.5u-.5stem); x2=x6; x3=x5=.5[x2,x4];
+rt x4r=hround(w-1.5u+.5curve);
+y2=y4=y6=.5[y3,y5]; top y3r=h+oo; bot y5r=-oo;
+filldraw circ_stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & pulled_arc.e(5,6); % bowl
+pos2'(hair,-180); z2'r=z2r; pos1(vstem,-90); pos1'(vstem,90); z1'=z1;
+pos0(hair,0); rt x0r=hround(w-u); bot y0=-d; bot y1r=vround-.9d; x1=x5;
+interim superness:=sqrt superness;
+filldraw stroke pulled_arc.e(0,1'); filldraw stroke pulled_arc.e(1,2'); % tail
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+ numeric x_baryctr; x_baryctr=x3;
+ traba(-.5u); % breathing placement
+enddef;
+%
+cmchar "Lowercase rho";
+beginchar("r",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+%
+
+cmchar "Lowercase rho with rough breathing";
+beginchar(oct"346",width#,acc_ht#,depth#);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase rho with smooth breathing";
+beginchar(oct"356",width#,acc_ht#,depth#);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+picture savedpicture;
+
+% ======================================================================
+% SIGMA TELIKO
+% ======================================================================
+
+def dims= 7u#,x_height#,.5min(desc_depth#,.5x_height#) enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+numeric heavy_vair; heavy_vair=.25[vair,vstem];
+pos1(heavy_vair,-110); pos2(vair,-90);
+x1+.5heavy_vair=hround(w-u); y1=.1[y2r,bar_height];
+x2=min(.5w+u,x1r-eps); top y2l=h+oo;
+filldraw circ_stroke z1e{x2-x1,2(y2-y1)}...{left}z2e; % upper bulb
+numeric theta; theta=90-angle(16u,x_height); slope:=-x_height/16u;
+pos6(stem,theta); pos7(vair,-90); pos8(vair,-135);
+lft x4l=hround u; x4r-x4l=(hround .5[vair,stem])-fine;
+x6=x7=w-2u; x8=.5w+u; y6=.25[y8,y2]; y8=y7+1/8d; bot y7r=-d-oo;
+ellipse_set(2l,4l,5l,6l); ellipse_set(2r,4r,5r,6r); y4=y4r;
+filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e
+ ---z5e...{up}z4e...{right}z2e; % main stroke
+math_fit(-.5x_height#*slant-.5u#,0);
+traba(-.5u);
+enddef;
+
+cmchar "Final lowercase sigma";
+beginchar("c",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+numeric gen_sigma; gen_sigma=1;
+
+% ======================================================================
+% SIGMA
+% ======================================================================
+
+def dim_sigma = 8.75u#,x_height#,0 enddef;
+def ital_sigma = 0 enddef;
+def fit_params_sigma = 0,.75u# enddef;
+
+def mid_sigma=
+italcorr ital_sigma; adjust_fit(fit_params_sigma);
+if known pic.c: currentpicture:=pic.c; else: gen_mid_sigma; fi
+if not working_hard : picture pic.c; pic.c=currentpicture; fi
+enddef;
+
+def gen_mid_sigma =
+adjust_fit(0,0); pickup fine.nib; w:=w+1.5u;
+pos1(vstem,90); pos2(stem,0); pos3(vair,-90);
+pos4(stem,-180); pos5(vstem,-270); pos6(vstem,-270);
+x1=x3=x5=.5[x2,x4]; rt x2r=hround(w-2.5u);
+lft x4r=hround(1.5u-.5curve);x6=w-1.5u;
+top y1r=h; y2=y4=.5[y1,y3]; bot y3r=-oo; y5=y6=y1;
+filldraw circ_stroke z6e..pulled_arc.e(5,4) & pulled_arc.e(4,3)
+ & pulled_arc.e(3,2) & pulled_arc.e(2,1); % ear and bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant);
+traba(-.5u);
+enddef;
+
+cmchar "Initial and medial lowercase sigma";
+beginchar("s",dim_sigma);
+mid_sigma; penlabels(1,2,3,4,5,6); endchar;
+
+picture savedpicture;
+
+% ======================================================================
+% TAU
+% ======================================================================
+
+def dims = 7.2u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); w:=w+u; pi_stroke; % hook and bar
+pos4(stem,0);
+x4-.5stem=hround(.5w-.5u-.5stem); y4=y2; x5=x4-.25u; x7=x4+3u;
+hook_out(5,6,7)(skewed);
+filldraw circ_stroke z4e{down}...{-u,-x_height}z5e; % stem
+math_fit(-.7x_height#*slant+.5hair#+.5u#,-.5u#);
+enddef;
+
+cmchar "Lowercase tau";
+beginchar("t",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+
+picture savedpicture;
+
+% ======================================================================
+% YPSILON
+% ======================================================================
+
+
+def width = 8.5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+def acc_corr =.5u enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib;
+w:=w+.5u; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+ numeric x_baryctr; x_baryctr=x4-u;
+enddef;
+
+cmchar "Lowercase upsilon";
+beginchar("u",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7); endchar;
+
+%
+cmchar "Lowercase upsilon with rough breathing";
+beginchar(oct"206",width#+.9u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+%
+cmchar "Lowercase upsilon with smooth breathing";
+beginchar(oct"216",width#+.9u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+cmchar "Lowercase upsilon with acute";
+beginchar(oct"226",width#+.9u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase upsilon with rough breathing and acute";
+beginchar(oct"236",width#+.9u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase upsilon with smooth breathing and acute";
+beginchar(oct"246",width#+.9u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase upsilon with rough breathing and grave";
+beginchar(oct"266",width#+.9u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase upsilon with smooth breathing and grave";
+beginchar(oct"276",width#+.9u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase upsilon with circumflex";
+beginchar(oct"247",width#+.9u#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+%
+cmchar "Lowercase upsilon with grave";
+beginchar(oct"256",width#+.9u#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+cmchar "Lowercase upsilon with rough breathing and circumflex";
+beginchar(oct"306",width#+.9u#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+%
+cmchar "Lowercase upsilon with smooth breathing and circumflex";
+beginchar(oct"316",width#+.9u#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+%
+cmchar "Lowercase upsilon with diaeresis";
+beginchar(oct"014",width#+.9u#,circ_ht#,0);
+this_letter; diaeresis(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis and grave";
+beginchar(oct"016",width#+.9u#,acc_ht#,0);
+this_letter; diaeresis_grave(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis and acute";
+beginchar(oct"015",width#+.9u#,acc_ht#,0);
+this_letter; diaeresis_acute(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis and circumflex";
+beginchar(oct"017",width#+.9u#,Circ_ht#,0);
+this_letter; diaeresis_circumflex(x_baryctr); endchar;
+
+picture savedpicture;
+%
+% ======================================================================
+% FI
+% ======================================================================
+%
+def dims = 10.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+.5u;
+pos1(hair,-180); x1=x2+.75u; top y1=h;
+pos2(hair,-180); lft x2r=hround .5u; y2=bar_height;
+pos3(vstem,-90); x3=.5(w+u); bot y3r=-oo;
+pos4(hair,0); rt x4r=hround(w-.5u); y4=y2;
+pos5(vstem,90); x5=.52[x6,x4]; top y5r=h+oo;
+pos6(hair,180); x6=x7; y6=1/3h;
+pos7(stem,180); lft x7r=hround(.5w-.5u-.5stem); y7-.5stem=-d-o;
+filldraw circ_stroke z7e---z6e...{right}z5e...{down}z4e...{left}z3e
+ ...{up}z2e...{3(x1-x2),y1-y2}z1e; % bowl and stem
+math_fit(-.3x_height#*slant,ic#);
+enddef;
+%
+cmchar "Lowercase phi";
+beginchar("f",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% QI
+% ======================================================================
+%
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+def dims = 9u#,x_height#,desc_depth# enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180);
+x1-.5hair=hround-.5hair; x6=w-x1; x2=w-x5=u;
+y1=y2l-h/8; top y2r=h+oo; bot y5l=-d-oo; y6=y5r+h/8;
+z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0);
+numeric theta; theta=angle(z5'-z2')+90;
+pos3(stem,theta); pos4(stem,theta);
+y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5'];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l}
+ ..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks
+x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d;
+numeric theta; theta=angle(z7-z8)-90;
+pos7(hair,theta); pos8(hair,theta);
+filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal
+math_fit((desc_depth#-x_height#)*slant+ic#,ic#);traba(.3u);
+enddef;
+
+cmchar "Lowercase chi";
+beginchar("q",dims);
+this_letter; penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar;
+
+picture savedpicture;
+
+% ======================================================================
+% YI
+% ======================================================================
+
+def dims = 10.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib;
+w:=w+.5u; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+pos7(.5[hair,stem],0); pos8(.5[hair,stem],0); x7=x8=.5w+.5u;
+top y7=h; bot y8=-d-oo;
+filldraw stroke z7e--z8e; % stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+enddef;
+
+cmchar "Lowercase psi";
+beginchar("y",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture;
+%
+% ======================================================================
+% WMEGA
+% ======================================================================
+%
+def width = 8.3u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+def acc_corr=.5u enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+1.2u;
+pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height;
+y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90);
+pos3(vstem+dw,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vstem+dw,270); pos8(hair,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair);
+x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5w+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw circ_stroke z1e{2(x2-x1),y2-y1}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}...{up}z8e; % right arc
+v_bulb(8,9); % closing bulb
+math_fit(-bar_height#*slant,2/3ic#);
+ numeric x_baryctr; x_baryctr=.5[x4,x6];
+ numeric pos_stem; pos_stem=x_baryctr; traba(-.5u);
+enddef;
+
+cmchar "Lowercase omega";
+beginchar("w",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+%
+cmchar "Lowercase omega with rough breathing";
+beginchar(oct"204",width#+u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omega with smooth breathing";
+beginchar(oct"214",width#+u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omega with acute";
+beginchar(oct"224",width#+u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase omega with rough breathing and acute";
+beginchar(oct"234",width#+u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omega with smooth breathing and acute";
+beginchar(oct"244",width#+u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omega with rough breathing and grave";
+beginchar(oct"264",width#+u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omega with smooth breathing and grave";
+beginchar(oct"274",width#+u#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omega with circumflex";
+beginchar(oct"227",width#+u#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+%
+%
+cmchar "Lowercase omega with grave";
+beginchar(oct"254",width#+u#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+cmchar "Lowercase omega with rough breathing and circumflex";
+beginchar(oct"304",width#+u#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing and circumflex";
+beginchar(oct"314",width#+u#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omega with grave and iota subscript";
+beginchar(oct"334",width#+u#,acc_ht#,iota_dp#);
+this_letter; grave(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing and iota subscript";
+beginchar(oct"344",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing and iota subscript";
+beginchar(oct"354",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with acute and iota subscript";
+beginchar(oct"325",width#+u#,acc_ht#,iota_dp#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing, acute and iota subscript";
+beginchar(oct"335",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing and acute and iota subscript";
+beginchar(oct"345",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing, grave and iota subscript";
+beginchar(oct"364",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_grave(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing and grave and iota subscript";
+beginchar(oct"365",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_grave(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with circumflex and iota subscript";
+beginchar(oct"355",width#+u#,circ_ht#,iota_dp#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing, circumflex and iota subscript";
+beginchar(oct"326",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing, circumflex and iota subscript";
+beginchar(oct"336",width#+u#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with iota subscript";
+beginchar(oct"324",width#+u#,height#,iota_dp#);
+this_letter; iota_sub(pos_stem); endchar;
+
+picture pic.iota;
+picture savedpicture;
+
+endinput;
+% ======================================================================
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdlig.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdlig.mf
new file mode 100644
index 00000000000..570a3d6d9f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdlig.mf
@@ -0,0 +1,264 @@
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% File : kdlig.mf
+%
+% Main ligature Table for Greek Characters
+%
+% K J Dryllerakis May 1991
+%
+% JK 3-Jun-1992: included ligatures for <`a and >`a etc.
+%
+k#:=-.7u#;kk#:=-1.8u#;kkk#:=-2.5u#; % Some units
+mk#:=-1.2u#; % more units
+diaer=oct"042"; % double quote
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable oct"000": "-" =: oct"177"; % em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+%
+% Dase'ia + something
+%
+ligtable "<":
+ "~" =: oct"100", "'" =: oct"126",
+ "`" =: oct"001", "r" =: oct"346",
+ "a" =: oct"200", "e" =: oct"201", "h" =: oct"202",
+ "o" =: oct"203", "w" =: oct"204", "i" =: oct"205", "u" =: oct"206",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+% Psili + Something
+%
+ligtable ">":
+ "~" =: oct"134", "'" =: oct"136",
+ "`" =: oct"002", "r" =: oct"356",
+ "a" =: oct"210", "e" =: oct"211", "h" =: oct"212",
+ "o" =: oct"213", "w" =: oct"214", "i" =: oct"215", "u" =: oct"216",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+% Daseia + Ojeia + Something
+%
+ligtable oct"126": % rough breathing and acute,
+ "a" =: oct"230", "e" =: oct"231", "h" =: oct"232",
+ "o" =: oct"233", "w" =: oct"234", "i" =: oct"235", "u" =: oct"236",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+% Psili + Ojeia + something
+%
+ligtable oct"136": % smooth breathing and acute
+ "a" =: oct"240", "e" =: oct"241", "h" =: oct"242",
+ "o" =: oct"243", "w" =: oct"244", "i" =: oct"245", "u" =: oct"246",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+% Daseia + Vareia + Something
+%
+ligtable oct"001": % rough breathing and grave,
+ "a" =: oct"260", "e" =: oct"261", "h" =: oct"262",
+ "o" =: oct"263", "w" =: oct"264", "i" =: oct"265", "u" =: oct"266",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+% Psili + Vareia + something
+%
+ligtable oct"002": % smooth breathing and grave
+ "a" =: oct"270", "e" =: oct"271", "h" =: oct"272",
+ "o" =: oct"273", "w" =: oct"274", "i" =: oct"275", "u" =: oct"276",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+%
+% Daseia + Perisp + Something
+%
+ligtable oct"100": % smooth breathing and acute
+ "a" =: oct"300", "h" =: oct"302",
+ "w" =: oct"304", "i" =: oct"305", "u" =: oct"306",
+ "A" kern 2kk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+% Psili + Perisp + something
+%
+ligtable oct"134": % rough breathing and acute,
+ "a" =: oct"310", "h" =: oct"312",
+ "w" =: oct"314", "i" =: oct"315", "u" =: oct"316",
+ "A" kern 2kk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+% Diairesis
+%
+ligtable diaer: "'" =: oct"043", "`" =: oct"044", "~" =: oct"040",
+ "i" =: oct"010", "u" =: oct"014";
+ligtable oct"043": "i" =: oct"011", "u" =: oct"015";
+ligtable oct"044": "i" =: oct"012", "u" =: oct"016";
+ligtable oct"040": "i" =: oct"013", "u" =: oct"017";
+%
+% Ojeia + something
+%
+ligtable "'": diaer =: oct"043", "'" =: oct"035",
+ "a" =: oct"220", "e" =: oct"221", "h" =: oct"222",
+ "o" =: oct"223", "w" =: oct"224", "i" =: oct"225", "u" =: oct"226",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+%
+% Perisp + something
+%
+ligtable "~": diaer =: oct"040",
+ "a" =: oct"207", "h" =: oct"217", "i" =: oct "237", "u" =: oct "247",
+ "w" =: oct"227";
+%
+% Vareia + something
+%
+ligtable "`": diaer =: oct"044", "`" =: oct"034",
+ "a" =: oct"250", "e" =: oct"251", "h" =: oct"252",
+ "o" =: oct"253", "w" =: oct"254", "i" =: oct"255", "u" =: oct"256",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+%
+
+%
+ligtable "l":
+ "h" kern mk#,
+ oct"262" kern mk#, oct"272" kern mk#, oct"363" kern mk#, oct"363" kern mk#,
+ oct"222" kern mk#, oct"252" kern mk#, oct"322" kern mk#,
+ oct"332" kern mk#, oct"303" kern mk#, oct"333" kern mk#, oct"217" kern mk#,
+ "u" kern mk#, oct"226" kern mk#, oct"256" kern mk#, oct"247" kern mk#,
+ oct"266" kern mk#, oct"276" kern mk#,
+ "o" kern k#, oct"223" kern k#, oct"253" kern k#, oct"263" kern k#,
+ oct"273" kern k#,
+ "a" kern k#,
+ oct"220" kern mk#, oct"250" kern mk#, oct"320" kern mk#,
+ oct"330" kern mk#, oct"301" kern mk#, oct"331" kern mk#, oct"207" kern mk#,
+ "i" kern k#, oct"225" kern k#, oct"255" kern k#, oct"237" kern k#,
+ oct"265" kern k#, oct"275" kern k#;
+
+ligtable "u": oct"206" : oct"216" : oct"226" : oct"236" : oct"246" : oct"256":
+ oct"306": oct"316": oct"247": oct"266" : oct"276":
+ "g" kern k#, "r" kern -k#;
+
+ligtable "e": oct"201" : oct"211" : oct"221" : oct"231" : oct"241" : oct"251":
+ oct"261" : oct"271":
+ "i" kern k#, oct"205" kern k#, oct"215" kern k#, oct"225" kern k#,
+ oct"235" kern k#, oct"245" kern k#, oct"255" kern k#,
+ oct"305" kern k#, oct"315" kern k#, oct"010" kern k#,
+ oct"011" kern k#, oct"012" kern k#, oct"013" kern k#, "n" kern k#;
+
+ligtable "D" : "u" kern k#, oct"226" kern k#, oct"256" kern k#, "h" kern mk#,
+ oct"222" kern mk#, oct"252" kern mk#;
+
+ligtable "k" : "o" kern k#, oct"223" kern k#, oct"253" kern k#;
+
+ligtable "R" : "a" kern k#, oct"220" kern k#, oct"250" kern k#,
+ oct"270" kern k#, oct"260" kern k#, oct"360" kern k#, oct"361" kern k#,
+ oct"207" kern k#, "w" kern k#,
+ oct"224" kern k#, oct"244" kern k#, oct"227" kern k#;
+ligtable "h": "|" =: oct"322", "m" kern -k#, "r" kern -k#;
+ligtable oct"202": "|" =: oct"342", "m" kern -k#, "r" kern -k#;
+ligtable oct"212": "|" =: oct"352", "m" kern -k#, "r" kern -k#;
+ligtable oct"222": "|" =: oct"303", "m" kern -k#, "r" kern -k#;
+ligtable oct"232": "|" =: oct"313", "m" kern -k#, "r" kern -k#;
+ligtable oct"242": "|" =: oct"323", "m" kern -k#, "r" kern -k#;
+ligtable oct"252": "|" =: oct"332", "m" kern -k#, "r" kern -k#;
+ligtable oct"302": "|" =: oct"343", "m" kern -k#, "r" kern -k#;
+ligtable oct"312": "|" =: oct"353", "m" kern -k#, "r" kern -k#;
+ligtable oct"217": "|" =: oct"333", "m" kern -k#, "r" kern -k#;
+ligtable oct"262": "|" =: oct"362", "m" kern -k#, "r" kern -k#;
+ligtable oct"272": "|" =: oct"363", "m" kern -k#, "r" kern -k#;
+
+ligtable "m" : "n" kern k#, "a" kern k#, oct"220" kern k#, oct"250" kern k#,
+ oct"270" kern k#, oct"260" kern k#, oct"360" kern k#, oct"361" kern k#,
+ oct"207" kern k#;
+
+ligtable "o" : oct"203" : oct"213" : oct"223" : oct"233" : oct"243" :
+ oct"253" :
+ "u" kern k#, oct"206" kern k#, oct"216" kern k#, oct"226" kern k#,
+ oct"236" kern k#, oct"246" kern k#, oct"256" kern k#,
+ oct"306" kern k#, oct"316" kern k#, oct"247" kern k#,
+ "k" kern k#,
+ "q" kern k#, "n" kern k#, "m" kern -k#;
+ligtable "r" : "m" kern -k#;
+
+ligtable "z" : "o" kern k#, oct"223" kern k#, "a" kern k#,
+ oct"270" kern k#, oct"260" kern k#, oct"360" kern k#, oct"361" kern k#,
+ oct"220" kern k#, oct"250" kern k#, oct"320" kern k#,
+ oct"330" kern k#, oct"301" kern k#, oct"331" kern k#, oct"207" kern k#,
+ oct"262" kern k#, oct"272" kern k#, oct"363" kern k#, oct"363" kern k#,
+ "h" kern k#, oct"222" kern k#, oct"252" kern k#, oct"217" kern k#;
+
+ligtable "K" : "a" kern k#,
+ oct"220" kern k#, oct"250" kern k#, oct"320" kern k#,
+ oct"270" kern k#, oct"260" kern k#, oct"360" kern k#, oct"361" kern k#,
+ oct"330" kern k#, oct"301" kern k#, oct"331" kern k#, oct"207" kern k#;
+
+ligtable "w": "|" =: oct"324", "q" kern k#;
+ligtable oct"204": "|" =: oct"344", "q" kern k#;
+ligtable oct"214": "|" =: oct"354", "q" kern k#;
+ligtable oct"224": "|" =: oct"325", "q" kern k#;
+ligtable oct"234": "|" =: oct"335", "q" kern k#;
+ligtable oct"244": "|" =: oct"345", "q" kern k#;
+ligtable oct"254": "|" =: oct"334", "q" kern k#;
+ligtable oct"304": "|" =: oct"326", "q" kern k#;
+ligtable oct"314": "|" =: oct"336", "q" kern k#;
+ligtable oct"227": "|" =: oct"355", "q" kern k#;
+ligtable oct"264": "|" =: oct"364", "q" kern k#;
+ligtable oct"274": "|" =: oct"365", "q" kern k#;
+
+ligtable "g" : "w" kern k#, oct"227" kern k#, oct"254" kern k#, oct"224" kern k#;
+
+ligtable "T" : "h" kern k#,
+ oct"222" kern k#, oct"252" kern k#, oct"322" kern k#,
+ oct"262" kern k#, oct"272" kern k#, oct"363" kern k#, oct"363" kern k#,
+ oct"332" kern k#, oct"303" kern k#, oct"333" kern k#, oct"217" kern k#,
+ "o" kern mk#,
+ oct"223" kern mk#, oct"253" kern mk#;
+
+ligtable "x" : "o" kern k#, oct"223" kern k#, oct"253" kern k#,
+ "a" kern k#,
+ oct"220" kern k#, oct"250" kern k#, oct"320" kern k#,
+ oct"270" kern k#, oct"260" kern k#, oct"360" kern k#, oct"361" kern k#,
+ oct"330" kern k#, oct"301" kern k#, oct"331" kern k#, oct"207" kern k#;
+
+ligtable "A" : "g" kern mk#, "d" kern k#;
+ligtable "O" : "l" kern k#;
+
+ligtable "a": "|" =: oct"320", "n" kern k#;
+ligtable oct"200": "|" =: oct"340", "n" kern k#;
+ligtable oct"210": "|" =: oct"350", "n" kern k#;
+ligtable oct"220": "|" =: oct"301", "n" kern k#;
+ligtable oct"230": "|" =: oct"311", "n" kern k#;
+ligtable oct"240": "|" =: oct"321", "n" kern k#;
+ligtable oct"250": "|" =: oct"330", "n" kern k#;
+ligtable oct"300": "|" =: oct"341", "n" kern k#;
+ligtable oct"310": "|" =: oct"351", "n" kern k#;
+ligtable oct"207": "|" =: oct"331", "n" kern k#;
+ligtable oct"260": "|" =: oct"360", "n" kern k#;
+ligtable oct"270": "|" =: oct"361", "n" kern k#;
+
+ligtable "U" : "p" kern mk#;
+
+endinput;
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdligcom.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdligcom.mf
new file mode 100644
index 00000000000..5bb7a6f7b6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdligcom.mf
@@ -0,0 +1,142 @@
+%
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Fonts
+%
+% Ligature Table for MonoSpace Greek Characters
+%
+% K J Dryllerakis May 1991
+%
+k#:=-.7u#;kk#:=-1.8u#;kkk#:=-2.5u#; % Some units
+mk#:=-1.2u#; % more units
+diaer=oct"042"; % double quote
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable oct"000": "-" =: oct"177"; % em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+%
+% Dase'ia + something
+%
+ligtable "<":
+ "~" =: oct"100", "'" =: oct"126",
+ "`" =: oct"001", "r" =: oct"346",
+ "a" =: oct"200", "e" =: oct"201", "h" =: oct"202",
+ "o" =: oct"203", "w" =: oct"204", "i" =: oct"205", "u" =: oct"206";
+%
+% Psili + Something
+%
+ligtable ">":
+ "~" =: oct"134", "'" =: oct"136",
+ "`" =: oct"002", "r" =: oct"356",
+ "a" =: oct"210", "e" =: oct"211", "h" =: oct"212",
+ "o" =: oct"213", "w" =: oct"214", "i" =: oct"215", "u" =: oct"216";
+%
+% Daseia + Ojeia + Something
+%
+ligtable oct"126": % rough breathing and acute,
+ "a" =: oct"230", "e" =: oct"231", "h" =: oct"232",
+ "o" =: oct"233", "w" =: oct"234", "i" =: oct"235", "u" =: oct"236";
+%
+% Psili + Ojeia + something
+%
+ligtable oct"136": % smooth breathing and acute
+ "a" =: oct"240", "e" =: oct"241", "h" =: oct"242",
+ "o" =: oct"243", "w" =: oct"244", "i" =: oct"245", "u" =: oct"246";
+%
+%
+% Daseia + Perisp + Something
+%
+ligtable oct"134": % rough breathing and acute,
+ "a" =: oct"300", "h" =: oct"302",
+ "w" =: oct"304", "i" =: oct"305", "u" =: oct"306";
+%
+% Psili + Perisp + something
+%
+ligtable oct"100": % smooth breathing and acute
+ "a" =: oct"310", "h" =: oct"312",
+ "w" =: oct"314", "i" =: oct"315", "u" =: oct"316";
+%
+% Diairesis
+%
+ligtable diaer: "'" =: oct"043", "`" =: oct"044", "~" =: oct"040",
+ "i" =: oct"010", "u" =: oct"014";
+ligtable oct"043": "i" =: oct"011", "u" =: oct"015";
+ligtable oct"044": "i" =: oct"012", "u" =: oct"016";
+ligtable oct"040": "i" =: oct"013", "u" =: oct"017";
+%
+% Ojeia + something
+%
+ligtable "'": diaer =: oct"043", "'" =: oct"035",
+ "a" =: oct"220", "e" =: oct"221", "h" =: oct"222",
+ "o" =: oct"223", "w" =: oct"224", "i" =: oct"225", "u" =: oct"226";
+%
+%
+% Perisp + something
+%
+ligtable "~": diaer =: oct"040",
+ "a" =: oct"207", "h" =: oct"217", "i" =: oct "237", "u" =: oct "247",
+ "w" =: oct"227";
+%
+% Vareia + something
+%
+ligtable "`": diaer =: oct"044", "`" =: oct"034",
+ "a" =: oct"250", "e" =: oct"251", "h" =: oct"252",
+ "o" =: oct"253", "w" =: oct"254", "i" =: oct"255", "u" =: oct"256";
+%
+%
+ligtable "h": "|" =: oct"322";
+ligtable oct"202": "|" =: oct"342";
+ligtable oct"212": "|" =: oct"352";
+ligtable oct"222": "|" =: oct"303";
+ligtable oct"232": "|" =: oct"313";
+ligtable oct"242": "|" =: oct"323";
+ligtable oct"252": "|" =: oct"332";
+ligtable oct"302": "|" =: oct"343";
+ligtable oct"312": "|" =: oct"353";
+ligtable oct"217": "|" =: oct"333";
+
+ligtable "w": "|" =: oct"324";
+ligtable oct"204": "|" =: oct"344";
+ligtable oct"214": "|" =: oct"354";
+ligtable oct"224": "|" =: oct"325";
+ligtable oct"234": "|" =: oct"335";
+ligtable oct"244": "|" =: oct"345";
+ligtable oct"254": "|" =: oct"334";
+ligtable oct"304": "|" =: oct"326";
+ligtable oct"314": "|" =: oct"336";
+ligtable oct"227": "|" =: oct"355";
+
+ligtable "a": "|" =: oct"320";
+ligtable oct"200": "|" =: oct"340";
+ligtable oct"210": "|" =: oct"350";
+ligtable oct"220": "|" =: oct"301";
+ligtable oct"230": "|" =: oct"311";
+ligtable oct"240": "|" =: oct"321";
+ligtable oct"250": "|" =: oct"330";
+ligtable oct"300": "|" =: oct"341";
+ligtable oct"310": "|" =: oct"351";
+ligtable oct"207": "|" =: oct"331";
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdlower.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdlower.mf
new file mode 100644
index 00000000000..a3cca3604ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdlower.mf
@@ -0,0 +1,1383 @@
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% File : kdlower.mf
+%
+% Lower Case Greek Letters KD PAckage
+%
+% ======================================================================
+% Lowercase alfa
+% ======================================================================
+%
+def width = 9u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5u# enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ pos1(stem,0); top y1=x_height+oo; rt x1r=hround(w-.5u); %top right
+ pos2(vstem,-90); pos4(vstem,-270); x4=x2=.5w-u;
+ bot y2r=-oo; top y4r=x_height+oo; %bottom and top bulges
+ pos3(hair,-180); lft x3r=hround .75u; y3=.5[y2,y4]; %left bulge
+ pos6(vstem,90); x6=w-u; y6=y2; %bottom right
+ % numeric theta; theta=angle((x4-x6),2.5(y4-y6))-90;
+ pos5(hair,0); x5=.65[x4,x6]; y5=y3; %point of inflection
+ alpha_tail(6,7); %hook
+ filldraw stroke z1e{(x2-x1,2(y2-y1))}... %diagonal
+ pulled_arc.e(2,3) & pulled_arc.e(3,4) %bowl
+ ...z5e{down}...z6e{right}...{up}z7e; %diagonal and
+ numeric x_baryctr; x_baryctr= .25[x4,x1];
+ numeric pos_stem; pos_stem=x_baryctr; %iota reference
+enddef;
+%
+cmchar "Lowercase alpha";
+beginchar("a",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase alpha with rough breathing";
+beginchar(oct"200",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing";
+beginchar(oct"210",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+cmchar "Lowercase alpha with acute";
+beginchar(oct"220",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase alpha with rough breathing and acute";
+beginchar(oct"230",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase alpha with smooth breathing and acute";
+beginchar(oct"240",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase alpha with rough breathing and grave";
+beginchar(oct"260",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase alpha with smooth breathing and grave";
+beginchar(oct"270",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase alpha with circumflex";
+beginchar(oct"207",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+%
+cmchar "Lowercase alpha with grave";
+beginchar(oct"250",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+
+cmchar "Lowercase alpha with rough breathing and circumflex";
+beginchar(oct"300",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing and circumflex";
+beginchar(oct"310",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+%
+cmchar "Lowercase alpha with iota subscript";
+beginchar(oct"320",width#,height#,iota_dp#);
+this_letter; iota_sub(pos_stem); endchar;
+%
+cmchar "Lowercase alpha with grave and iota subscript";
+beginchar(oct"330",width#,acc_ht#,iota_dp#);
+this_letter; grave(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing and iota subscript";
+beginchar(oct"340",width#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing and iota subscript";
+beginchar(oct"350",width#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with acute and iota subscript";
+beginchar(oct"301",width#,acc_ht#,iota_dp#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing, acute and iota subscript";
+beginchar(oct"311",width#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing and acute and iota subscript";
+beginchar(oct"321",width#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing, grave and iota subscript";
+beginchar(oct"360",width#,acc_ht#,iota_dp#);
+this_letter; spirit_grave(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing and grave and iota subscript";
+beginchar(oct"361",width#,acc_ht#,iota_dp#);
+this_letter; spirit_grave(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with circumflex and iota subscript";
+beginchar(oct"331",width#,circ_ht#,iota_dp#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing, circumflex and iota subscript";
+beginchar(oct"341",width#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing, circumflex and iota subscript";
+beginchar(oct"351",width#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+
+picture pic.iota;
+picture savedpicture;
+%
+% ======================================================================
+% lowercase beta [KJD 19.02.91]
+% ======================================================================
+%
+def dims = 9u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+
+def gen_letter=
+ pickup fine.nib;
+ numeric thin_stem; thin_stem=.6[hair,stem]; %for upper bowl
+ numeric tilt; tilt=min(2*otilt,.5); %for both bowls
+ pos1(stem,180); y1-.5stem=-d-o; %bottom left
+ pos2(hair,180); y2=.5bar_height; %self-intersection (cf. z15)
+ x1=x2; lft x1r=hround(.75u+.5(hair-stem)); %i.e., lft x2r ~ .75u
+ x3r=x2r; %beginning of curve
+ top y5r=h+oo; bot y14r=-oo; x5r=x14r; %top and bottom bulges
+ top y10r=vstem+bot y9r=x_height; x9r=x10r; %top and bottom of cusp
+ rt x12r=hround(w-.75u); %lower right bulge
+ x5r=.5[lft x2r,rt x12r]; x9r-.5vstem=hround(x5r-.5u-.5vstem);
+ % we want to simulate the following relations, to make slopes consistent
+ % (where z7 is the upper right bulge):
+ % z5r-z3r=whatever*(z9r-z7r)=whatever*(z14r-z12r);
+ % z7r-z5r=whatever*(z12r-z10r)=whatever*(z5r-z3r) yscaled -1;
+ numeric slope;
+ slope=((y10r-y12r)+(y12r-y14r))/((x12r-x10r)+(x12r-x14r));
+ z7'r=z9r+whatever*(1,slope); z7'r=z5r+whatever*(1,-slope);
+ y7r=y7'r; rt x7r=hround rt x7'r;
+ z12r=z14r+whatever*(1,slope); z3r=z5r+whatever*(1,slope);
+ filldraw double_circ_stroke gr_arc.e(7,6,5)(hair,thin_stem,tilt)..
+ gr_arc.e(5,4,3)(hair,thin_stem,tilt)..{down}z2e..z1e; %top and left
+ z2=z15; pos15(hair,slope-90); %intersection pt
+ numeric slope;
+ slope=angle((z14r-z15)yscaled 2);
+ filldraw stroke z15e{dir slope}...gr_arc.e(14,13,12)(hair,stem,tilt); %bottom
+ forsuffixes e=r,l:
+ path curv[]e; numeric S[]e;
+ curv1e=reverse gr_arc.e(9,8,7)(hair,thin_stem,tilt); %cusp bottom
+ curv2e=gr_arc.e(12,11,10)(hair,stem,tilt); endfor %cusp top
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (whatever,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,whatever)=curv1l intersectiontimes curv2r;
+ if S1l=-1 : S1l:=2; fi
+ if S2l=-1 : S2l:=2; fi
+ filldraw stroke subpath(0,S1e+eps) of curv1e; %fill in cusp
+ filldraw stroke subpath(0,S2e+eps) of curv2e;
+ filldraw subpath (S1r+eps,2) of curv1r...subpath(2,S2r+eps) of curv2r..cycle;
+enddef;
+
+cmchar "Lowercase beta";
+beginchar("b",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+picture savedpicture;
+%
+% ======================================================================
+% lowercase gamma
+% ======================================================================
+%
+def dims = 10u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ begingroup
+ save t; t:=superness; interim superness:=.95t;
+ pos2(curve,90); top y2r=h+oo; %top of left branch
+ pos1(hair,180); bot y1=top y2r-4/3curve; %tip of hook
+ lft x1r=hround .5u; x2-x1=y2-y1; %central arc is round
+ pos3(hair,0); pos4(hair,-180); rt x3r-lft x4r=stem; %bottom of cusp
+ y4=y3; .5[x3,x4]=.5w; if monowidth: y3=0 else: y3-.5stem=vround(-.8d) fi;
+ pos5(curve,-270); top y5r=h+oo; x5+.5curve=hround(w-.75u); %right branch
+ pos5'(curve,0); z5'=z5;
+ filldraw stroke z1e{up}...z2e{right}; drawloop(2,3,4,5); %hook and cusp
+ filldraw z5l{right}...z5'r{up}...z5r{left}--cycle; %right branch
+ if monowidth: %complete stem
+ x3'=x3r; x4'=x4r; y3'=y4'; y3'-.5stem=vround(-.8d);
+ filldraw z3r--z3'{down}...{up}z4'--z4r--cycle; fi
+ endgroup;
+enddef;
+%
+cmchar "Lowercase gamma";
+beginchar("g",dims);
+this_letter; penlabels(1,2,3,3',4,4',5); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% DELTA
+% ======================================================================
+%
+def dims = 8.5u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ top y1r=vround(if not monowidth:.95 fi x_height+oo); x1r=.5w; % top of loop
+ x5r=.5w; bot y5r=-oo; % bottom of ditto
+ lft x3r=w-rt x7r=hround(.75u); y3r=y7r=.5[y1r,y5r]; % left and right bulge
+ filldraw stroke gr_arc.e(1,2,3)(vair,stem,.5otilt) % three quadrants of l
+ & gr_arc.e(3,4,5)(vair,stem,.5otilt) & gr_arc.e(5,6,7)(vair,stem,.5otilt);
+
+ % we now draw the hook |z8..z9..z10|. It must satisfy the following ints:
+ % its outer contour is symmetric with respect to some axis containing |z9l|;
+ % one end is known, the width there is |thin_stem|, and the width at |z10|
+ % is, ideally, stem. (But since we may have to change that we callt |Stem|.)
+ z8l=z1l; numeric thin_stem, med_stem; thin_stem=.5[hair,Stem];
+ % the aperture, measured perpendicular to the axis, equals |Stem|
+ numeric apert; apert=2Stem+thin_stem-currentbreadth; % |apeth(z10l-z8l);|
+ numeric left_goal; lft left_goal=vround(lft x3r+.5u); % most tangent known
+ numeric top_goal; top top_goal=h+oo; % highest tangent known
+
+ % if by taking |Stem=stem| we got |apert > top_goal-y1l|, the problem might
+ % not have a solution with a horizontal tangent; in that case the
+ % constraint is on |apert|:
+ if 2stem+.7[hair,stem]-currentbreadth>top_goal-y8l: apert=top_goal-y8l;
+ else: Stem=stem; fi
+
+ % we first estimate the slope of the axis by imagining that, in the vicinity
+ % of |z9l|, the hook looks like a semicircle of diameter |apert/2|.
+ % (this value is empiric, but reasonable because the tension is high)
+ z0l=(left_goal+.25apert,top_goal-.25apert); % center of semicircle
+ numeric axis; axis=angle(z0l-z8l)+angle(length(z0l-z8l)+-+.5apert,.5apert);
+ z9l=z0l+(.25apert,0)rotated(axis); z10l=z8l+(0,-apert)rotated(axis);
+%
+ % we now iterate, correcting |z9l| until the tangencies are satisfied
+ path hook; numeric left_real; numeric top_real;
+ forever:
+%
+ hook:=z8l{dir(axis)}..tension 1.5..z9l..tension 1.5..{-dir(axis)}z10l;
+ if directiontime up of hook=-1:
+ left_error:=0; message "hook has no vertical tangent!";
+ else: left_error:=xpart directionpoint up of hook-left_goal; fi
+ if directiontime right of hook=-1:
+ top_error:=0; message "hook has no horizontal tangent!";
+ else: top_error:=ypart directionpoint right of hook-top_goal; fi
+%
+ exitif (abs(left_error)<.05) and (abs(top_error)<.05);
+ x9l:=x9l-left_error; y9l:=y9l-top_error;
+ axis:=angle(z9l-z8l)+angle(length(z9l-z8l)+-+.5apert,.5apert);
+ x10l:=x8l+apert*sind axis; y10l:=y8l-apert*cosd axis;
+ endfor
+%
+ pos8(thin_stem,axis-90); pos10(Stem,axis+90); pos9(.3[hair,Stem],axis+180);
+ filldraw stroke
+ z7e{z7'e}..{dir axis}z8e..tension 1.5..z9e..tension 1.5..{-dir axis}z10e;
+enddef;
+%
+cmchar "Lowercase delta";
+beginchar("d",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% Lowercase Epsilon [KJD 19.02.91]
+% ======================================================================
+%
+def width = 7.75u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ pos2(vstem,90); % * pos2(.75vstem,90)
+ x2=.5w; top y2r=x_height+o; %top point
+ pos7(vstem,630); x2=x7; bot y7r=-o; %bottom point
+ rt x1r=hround(w-.75u); bot y1l=.3[bot y2l,bar_height];%top end
+ % * rt x1r=w;
+ z1'=(x1r,y1l+.5(flare-currentbreadth)); %approximation to z1
+ numeric slope; slope=angle((z2-z1')yscaled 2);
+ pos1(flare,slope-90); % * pos1(.5flare,slope-90);
+ bar_height=.5[y1,y8]; x8=x1; pos8(flare,slope+90); %bottom end
+ pos3(vstem,120); lft x3r=hround .75u; y3=.5[y4r,y2r]; %top left bulge
+ pos6(vstem,600); x6=x3; y6=.5[y5r,y7r]; %bottom left bulge
+ y6:=y6r;y3:=y3r; %for the benefit of pulled_arc
+ top y5r-bot y4r=curve; y5+y4=2bar_height; x5=x4=x2; %loop
+ pos4(vair,-90); pos5(vair,90);
+ filldraw stroke z1e{dir slope}...pulled_arc.e(2,3); %top
+ drawloop(3,4,5,6); %loop and bottom
+ forsuffixes e=l,r:
+ path foo.e; foo.e= z8e...pulled_arc.e(7,6);
+ if angle(direction 0 of foo.e) > angle(z8r-z8l):
+ foo.e:= z8e{z8r-z8l}...pulled_arc.e(7,6); fi
+ endfor;
+ filldraw stroke foo.e;
+ numeric x_baryctr; x_baryctr=x2; %accent reference
+enddef;
+%
+cmchar "Lowercase epsilon";
+beginchar("e",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+%
+cmchar "Lowercase epsilon with rough breathing";
+beginchar(oct"201",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing";
+beginchar(oct"211",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with acute";
+beginchar(oct"221",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase epsilon with rough breathing and acute";
+beginchar(oct"231",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and acute";
+beginchar(oct"241",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with rough breathing and grave";
+beginchar(oct"261",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and grave";
+beginchar(oct"271",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with grave";
+beginchar(oct"251",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+picture savedpicture;
+%
+% ======================================================================
+% ZHTA
+% ======================================================================
+%
+def dims = 8.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ pos4(hair,-180); y4=bar_height; lft x4r=hround(.75u); % left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); y6=-.5stem; % bottom right
+ y3+.5stem=h+o; x3+.5stem=hround(rt x6l-.25u); % top right
+ numeric slope; slope=angle((z3-z4)xscaled 2); pos3(hair,slope+90);
+ pos5(stem,-90); bot y5r=0; x5=.5w; % inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+ pos2(stem,slope+90); z2l=z3l; filldraw double_circ_stroke
+ % bowl and tail
+ z7e{right}...z6e{up}...z5e{left}...z4e{up}...z2e{dir slope};
+ % where handle attaches
+ pos1(curve,0); lft x1l=hround(lft x4r+.25u); y1+.5curve=h+o; % end of handle
+ filldraw circ_stroke z1e{down}...z3e{dir slope};
+enddef;
+%
+cmchar "Lowercase zeta";
+beginchar("z",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% HTA
+% ======================================================================
+%
+def width = 8.5u enddef;
+def dims = width#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = if straight: .75 else: .5 fi u#,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ y1r-.5stem=-d-o; pos1(stem,0);
+ rt x2r=hround(w-.75u); y2r=.5x_height; pos2(hair,0);
+ lft x5r=hround(1.5u); y5-.5stem=-o; pos5(stem,-180);
+ top y4r=x_height+o; x4r=.5[lft x2l,rt x5l];
+ pos6(hair,180); y6=y2;
+ if straight:
+ x1=x2;x5=x6; pos4(stem,90);
+ filldraw double_circ_stroke z1e--pulled_arc.e(2,4)&pulled_arc.e(4,6)--z5e;
+ else:
+ x1r=x2r; z2'l=z2'r=up;
+ filldraw circ_stroke z1e{up}...gr_arc.e(2,3,4)(hair,stem,.8); % right leg
+ filldraw circ_stroke z5e{(z4-z5) yscaled 4}...z4e{-z4'e}; % left leg
+ z6r=((0,y2)--(w,y2)) intersectionpoint (z5r{(z4-z5) yscaled 4}...z4r{-z4'r});
+ fi
+ pos8(vstem,0); rt x8r=hround(lft x6r-.75u); % end of handle
+ pos7(vstem,-90); top y7l=x_height+o; z8r=z7r; % top of handle
+ filldraw circ_stroke z8e{up}...z7e{right}...z6e{down};
+ numeric x_baryctr; x_baryctr=.1[x4,x7]; % accent reference
+ numeric pos_stem; pos_stem=x5; % iota reference
+enddef;
+%
+cmchar "Lowercase eta";
+beginchar("h",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+%
+cmchar "Lowercase eta with rough breathing";
+beginchar(oct"202",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing";
+beginchar(oct"212",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase eta with acute";
+beginchar(oct"222",width#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase eta with rough breathing and acute";
+beginchar(oct"232",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and acute";
+beginchar(oct"242",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase eta with rough breathing and grave";
+beginchar(oct"262",width#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and grave";
+beginchar(oct"272",width#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase eta with circumflex";
+beginchar(oct"217",width#,circ_ht#,desc_depth#);
+this_letter; circumflex(x_baryctr); endchar;
+%
+cmchar "Lowercase eta with grave";
+beginchar(oct"252",width#,acc_ht#,desc_depth#);
+this_letter; grave(x_baryctr); endchar;
+%
+cmchar "Lowercase eta with rough breathing and circumflex";
+beginchar(oct"302",width#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and circumflex";
+beginchar(oct"312",width#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+%
+cmchar "Lowercase eta with grave and iota subscript";
+beginchar(oct"332",width#,acc_ht#,desc_depth#);
+this_letter; grave(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing and iota subscript";
+beginchar(oct"342",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing and iota subscript";
+beginchar(oct"352",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with acute and iota subscript";
+beginchar(oct"303",width#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing, acute and iota subscript";
+beginchar(oct"313",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing and acute and iota subscript";
+beginchar(oct"323",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing, grave and iota subscript";
+beginchar(oct"362",width#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing and grave and iota subscript";
+beginchar(oct"363",width#,acc_ht#,desc_depth#);
+this_letter; spirit_grave(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with circumflex and iota subscript";
+beginchar(oct"333",width#,circ_ht#,desc_depth#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing, circumflex and iota subscript";
+beginchar(oct"343",width#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing, circumflex and iota subscript";
+beginchar(oct"353",width#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with iota subscript";
+beginchar(oct"322",width#,x_height#,desc_depth#);
+this_letter; iota_sub(pos_stem); endchar;
+
+picture pic.iota;
+picture savedpicture;
+%
+% ======================================================================
+% JHTA
+% ======================================================================
+%
+def dims = 9u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h; % left and right bulges
+ x2r=x6r=.5w; top y2r=h+o; bot y6r=-o; % top and bottom
+ filldraw stroke
+ gr_arc.e(8,1,2)(vair,stem,otilt) & gr_arc.e(2,3,4)(vair,stem,otilt) &
+ gr_arc.e(4,5,6)(vair,stem,otilt) & gr_arc.e(6,7,8)(vair,stem,otilt);
+ pos4`(bar,90); pos8`(bar,90); x4`=x4; x8`=x8; y4`=y8`=.05[y4,y2];
+ filldraw stroke z4`e--z8`e; % bar
+enddef;
+%
+cmchar "Lowercase theta";
+beginchar("j",dims);
+this_letter; penlabels(1,2,3,4,4`,5,6,7,8,8`); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% IWTA
+% ======================================================================
+%
+def width = 5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = if monospace: u#,u# else:0,2curve#-3u# fi enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ pos1(flare,180); lft x1r=hround u; top y1=x_height+oo; % top
+ numeric neck; neck=.2[hair,stem];
+ pos2(neck,180); .2[lft x2r,rt x2l]=.2[lft x1r,rt x1l]; % neck
+ pos3(curve,-90); bot y3r=-oo; % bottom
+ y2r=if monowidth:
+ 2 else: 1.5 fi[bot y3r,top y3l]; z3r-z2r=whatever*(1,-1.25);
+ if monowidth:
+ y4r+.5neck=vround y2r; x3=.5[x2,x4]; pos4(neck,0); % tip of hook
+ filldraw stroke z4e...z3e...z2e---z1e;
+ else:
+ z4l=z4r; top y4r=y2r; z4l-z3l=whatever*(1,1);
+ path p.r, p.l; forsuffixes e=r,l: p.e=z1e---z2e...z3e...z4e; endfor
+ rt x3.5r=hround(rt xpart directionpoint up of p.r);
+ z4'r=direction 3 of p.r; z3'r=direction 2 of p.r;
+ forever: % avoid bad vertical tangent between 2l and 3l
+ x2.5l:= rt xpart directionpoint down of p.l;
+ exitif abs(hround(x2.5l)-x2.5l)<.05;
+ x2l:=x2l+hround(x2.5l)-x2.5l; p.l:=(z1l---z2l...z3l...z4l);
+ endfor
+ p.r:=z1r---z2r...club.r(3,3.5,4);
+ % avoid bad vertical tangent between 3r and 4r
+ filldraw stroke p.e;
+ fi
+ numeric x_baryctr; x_baryctr=x1;
+enddef;
+%
+cmchar "Lowercase iota";
+beginchar("i",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+%
+cmchar "Lowercase iota with rough breathing";
+beginchar(oct"205",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: +.25u fi)<; endchar;
+%
+cmchar "Lowercase iota with smooth breathing";
+beginchar(oct"215",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: -.25u fi)>; endchar;
+%
+cmchar "Lowercase iota with acute";
+beginchar(oct"225",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase iota with rough breathing and acute";
+beginchar(oct"235",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase iota with smooth breathing and acute";
+beginchar(oct"245",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase iota with rough breathing and grave";
+beginchar(oct"265",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase iota with smooth breathing and grave";
+beginchar(oct"275",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase iota with circumflex";
+beginchar(oct"237",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+%
+cmchar "Lowercase iota with grave";
+beginchar(oct"255",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+cmchar "Lowercase iota with rough breathing and circumflex";
+beginchar(oct"305",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing and circumflex";
+beginchar(oct"315",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+cmchar "Lowercase iota with diaeresis";
+beginchar(oct"010",width#,circ_ht#,0);
+this_letter; diaeresis(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis and grave";
+beginchar(oct"012",width#,acc_ht#,0);
+this_letter; diaeresis_grave(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis and acute";
+beginchar(oct"011",width#,acc_ht#,0);
+this_letter; diaeresis_acute(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis and circumflex";
+beginchar(oct"013",width#,Circ_ht#,0);
+this_letter; diaeresis_circumflex(x_baryctr); endchar;
+
+picture savedpicture;
+%
+% ======================================================================
+% KAPPA
+% ======================================================================
+%
+def dims = 9.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1-.5stem=-o; % lower left
+ z1+z3=(w,h); z2=.5[z1,z3]; % upper right and mid
+ z1'=(z3-z1) if monowidth: xscaled 1/2 fi; % slope at 1 and 3
+ pos1(stem,angle z1'+90); pos2(.6[hair,stem],angle z1'+90);
+ pos3(stem,angle z1'+90);
+ filldraw double_circ_stroke z1e{z1'}..z2e..{z1'}z3e; % diagonal stroke
+ z4=if monowidth: z1 else: 1/3[z1,z3] fi; z4-z1=z3-z7; % handle attachments
+ z4'=if monowidth: z1' else: (z3-z1) xscaled .25 fi; % slope at 4 and 7
+ pos4(hair,angle z4'-90); pos7(hair,angle z4'+90);
+ pos5(vstem,90); top y5r=h+o; pos6(vstem,180); z6l=z5l;
+ lft x6r=hround(x1-.5stem-.25u);
+ filldraw circ_stroke z6e{up}...z5e{right}...z4e{-z4'}; % left handle
+ pos8(.5[vstem,stem],-90); bot y8r=-o; rt x9r=hround(x3+.5stem+.25u);
+ pos9(.5[vstem,stem],0); z9l=z8l;
+ filldraw circ_stroke z9e{down}...z8e{left}...z7e{z4'}; % right handle
+enddef;
+%
+cmchar "Lowercase kappa";
+beginchar("k",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% LAMBDA
+% ======================================================================
+%
+def dims = 9.5u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25u#,-.25u# enddef;
+def krn = -.75u# enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1+.5stem=h; % top left
+ z1'=(1,.2); pos1(stem,angle z1'+90); % direction at z1
+ x3+x1=w; y3-.5stem=-oo; pos3(stem,-angle z1'+90); % bottom right
+ y2=x_height-.5u; x2=.5[x1,x3]; % attachment
+ z2'=(z3-z1)yscaled 2; pos2(hair,angle z2'+90); % direction at z4
+ filldraw double_circ_stroke z1e{z1'}...
+ z2e{(z3-z1)yscaled 2}...{z1' yscaled -1}z3e; % diagonal
+ lft x4l=hround.75u; bot y4l=0; % bottom left
+ numeric stem'; stem'=stem-currentbreadth; numeric slope; % from z4 to z4
+ slope=angle(z2-z4l)+angle(length(z2-z4l)+-+.5stem',.5stem');
+ x4r=x4l+(stem'/sind slope); y4r=y4l; z4=.5[z4r,z4l];
+ path p; p=z1{z1'}...z2{(z3-z1)yscaled 2}...{z1' yscaled -1}z3;
+ forsuffixes e=r,l: z5e=(z4e--(z4e+2(z2-z4))) intersectionpoint p; endfor
+ filldraw stroke z4e{(z2-z4)if not monowidth: xscaled 1.2 fi}..z5e;
+enddef;
+%
+cmchar "Lowercase lambda";
+beginchar("l",dims);
+this_letter; penlabels(1,2,3,4,5); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% MI
+% ======================================================================
+%
+def dims = 9.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5stem# enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ y6+.5stem=h+o; pos6(stem,0); rt x6r=hround(w-vstem); % top right
+ x5r=.5[x1,x6]; bot y5r=-oo; % bottom of bowl
+ if straight:
+ lft x1r=hround .75 u; y1+.5stem=h+o; pos1(stem,180); % top left
+ x4=x1; x9=x6; y9=y4=.5x_height; pos4(stem,180); pos9(stem,0);
+ pos5(vstem, 270);
+ filldraw double_circ_stroke z1e..pulled_arc.e(4,5)&pulled_arc.e(5,9)..z6e;
+ y8-.5stem=-d-oo; x8=x1; pos8(stem,180); % end of handle
+ filldraw circ_stroke z8e..z4e;
+ else:
+ lft x2r=rt x2l-stem=hround .75u; % vertical tangents of left bulb
+ top y1r=h+o; x1r=.5[x2r,x2l]; z1=z1l=z1r; z1'r=-z1'l=left; % top left
+ y3r=.4[y1r,y5r]; lft x3r=x1r-.5hair; % middle left
+ numeric tilt; tilt:=.6; path p.r, p.l;
+ p.l=gr_arc.l(3,4,5)(hair,.4[hair,stem],tilt)...{up}z6l;
+ p.r=subpath (2(1-tilt),2) of gr_arc.r(3,4,5)(fie,fo,fum)...{up}z6r;
+ z3.5r=z4r; z3.5'r=z4'r; z3.5l=z3l; z3.5'l=z3'l; % a hybrid
+ filldraw double_circ_stroke club.e(1,2,3.5) & p.e; % bowl
+ x8=lft x2r+.5stem; bot y8=-d-oo; % end of handle
+ pos8(stem,angle(z4'l xscaled 2)-120); z8'r=z8'l=z4'l xscaled 2;
+ assign_z3'r(z3'l); % so club.r won't get confused
+ lft x7r=rt x7l-max(hair,2)=lft x2r; % vertical tangents of handle
+ filldraw double_circ_stroke club.e(3,7,8); % handle
+ y9r=max(y4r+epsilon,-oo+2vstem); % where hook attaches
+ z9r=((0,y9r)--(w,y9r)) intersectionpoint p.r; pos9(hair,0);
+ fi
+ pos10(vstem,90); y10l=y5r; x10-x9=vstem; % bottom of hook
+ pos11(hair,180); top y11=bot y10l+4/3vstem; % tip of hook
+ rt x11l=hround(x10+(y11-y10)+.5hair); % central arc is round
+ filldraw stroke z9e{down}..z10e{right}..{up}z11e; % hook
+enddef;
+%
+cmchar "Lowercase mu";
+beginchar("m",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% NI
+% ======================================================================
+%
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ rt x4r=hround(w-.75u); lft x4l-rt x4r=hround -.2[hair,stem]; % vert tangents
+ x5=lft x4l; y5+.5hair=h+oo; z5'l=z5'r=(u,-.2h); % right tip
+ pos5(hair,angle z5'l+90);
+pos3(whatever,-90); bot y3r=-oo; x3=.5w; z3'l=z3'r=z5'l xscaled -2; % bottom
+z3l+whatever*z3'l=z3r+(stem-currentbreadth)*(dir(angle z3'l-90)); % width=stem
+ filldraw circ_stroke club.e(5,4,3); % right stroke
+ y1+.5stem=h+oo; x1-.5stem=hround.75u; % left tip
+ z1'=(9u,-h); pos1(stem,angle z1'-90);
+ z2r=z3r; z2l-z3l=(hair-currentbreadth,0);
+ filldraw circ_stroke z1e{z1'}...{down}z2e; % left stroke
+enddef;
+%
+cmchar "Lowercase nu";
+beginchar("n",dims);
+this_letter; penlabels(1,2,3,4,5); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% XI
+% ======================================================================
+%
+def dims = 8.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ lft x7r=rt x7l-hair=hround(.75u); x7=.5[x7r,x7r]; % big bulge
+ pos8(stem,-90); bot y8r=0; x8=.5w; z8'r=z8'l=left; % inflection pt
+ pos9(hair,-180); rt x9l=hround(w-.75u); y9=-.5stem; % bottom right
+ y6+.5stem=x_height+o; x6+.5stem=hround(rt x9l-1.5u); % middle right
+ numeric slope; slope=angle(5(x6-x7),y6-y8); pos6(stem,slope+90);
+ z6'r=z6'l=dir slope;
+ pos10(vstem,-270); y9=.5[y10r,y8r]; x10-.5vstem=hround x8;
+ filldraw double_circ_stroke % bowl and tail
+ z10e{right}...z9e{up}...club.e(8,7,6);
+ pos5(hair,slope-90); z5l=z6r; % attachment
+ z4=.5[z3,z5]+whatever*dir slope; % small bulge
+ pos4(hair,-180); lft x4r=hround(lft x7r+1.5u);
+y3+.5stem=h+o; x3+.5stem=hround(rt x9l-.25u); pos3(hair,slope+90); % top rt
+ pos2(stem,slope+90); z2l=z3l;
+ filldraw circ_stroke z2e{-dir slope}..z4{down}...z5e{dir slope};
+ % where handle attaches
+ pos1(curve,0); lft x1l=hround(lft x7r+.25u); y1+.5curve=h+o; % end of handle
+ filldraw circ_stroke z1e{down}...z3e{dir slope};
+enddef;
+%
+cmchar "Lowercase xi";
+beginchar("x",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% OMIKRON
+% ======================================================================
+%
+def width = 9.5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5x_height; % top and bottom
+ top y2r=x_height+oo; bot y6r=-oo; x2r=x6r=.5w; % right and left
+ filldraw stroke
+ gr_arc.e(8,1,2)(vair,curve,otilt) & gr_arc.e(2,3,4)(vair,curve,otilt) &
+ gr_arc.e(4,5,6)(vair,curve,otilt) & gr_arc.e(6,7,8)(vair,curve,otilt) ;
+ numeric x_baryctr; x_baryctr=x2; % accent reference
+enddef;
+%
+cmchar "Lowercase omicron";
+beginchar("o",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+%
+cmchar "Lowercase omicron with rough breathing";
+beginchar(oct"203",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omicron with smooth breathing";
+beginchar(oct"213",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omicron with acute";
+beginchar(oct"223",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase omicron with rough breathing and acute";
+beginchar(oct"233",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omicron with smooth breathing and acute";
+beginchar(oct"243",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omicron with rough breathing and grave";
+beginchar(oct"263",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omicron with smooth breathing and grave";
+beginchar(oct"273",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omicron with grave";
+beginchar(oct"253",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% PI
+% ======================================================================
+%
+def dims = 9.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ pi_bar; % bar
+ pos4(hair,0); pos7(hair,0); y4=y7=y2; % attachments
+ lft x4l-(x1-.5hair)=lft x7l-rt x4r=rt x3-rt x7r;
+ pos5(hair,0); pos8(hair,0); y5=y8=.5x_height; x5=x4; x8=x7; % midstems
+ x6+.5stem=hround(rt x4r if not straight:-.25u fi); y6-.7stem=-oo; % left stem
+ numeric slope; slope=angle((z5-z6)xscaled2); pos6(1.2stem,slope-90);
+ filldraw circ_stroke z6e...z5e---z4e;
+ x9=x7+1.5u; bot y9l=-oo; pos9(stem,90); alpha_tail(9,10); % right stem
+ filldraw stroke z10e...z9e{left}...z8e---z7e;
+enddef;
+%
+cmchar "Lowercase pi";
+beginchar("p",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% RO
+% ======================================================================
+%
+def width = 8.5u enddef;
+def height = x_height enddef;
+def depth = desc_depth enddef;
+def dims = width#,height#,depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5h; % left and right
+ top y2r=h+oo; bot y6r=-oo; x2r=x6r=.5w; % top and bottom
+ filldraw stroke
+ gr_arc.e(4,5,6)(curve,vair,-otilt) & gr_arc.e(6,7,8)(curve,vair,-otilt) &
+ gr_arc.e(8,1,2)(curve,vair,-otilt) & gr_arc.e(2,3,4)(curve,vair,-otilt);
+ if straight:
+ y9-.5stem=-d-oo; x9=x4; pos9(stem,180); % end of handle
+ filldraw circ_stroke z9e..z4e;
+ else:
+ y9=-d-oo; x9=lft x4r+.5stem; % end of handle
+ pos9(stem,angle((z9-z4)xscaled3)-120); z9'r=z9'l=(z9-z4)xscaled3;
+ rt x10l=lft x10r+vair; % vertical tangents of handle
+ x10r=x4r-epsilon; assign_z4'r((-2eps,-1)); % so club.r won't get confused
+ filldraw double_circ_stroke club.e(4,10,9);
+ fi
+ numeric x_baryctr; x_baryctr=x2; % breathing placement
+enddef;
+%
+cmchar "Lowercase rho";
+beginchar("r",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+%
+
+cmchar "Lowercase rho with rough breathing";
+beginchar(oct"346",width#,acc_ht#,depth#);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase rho with smooth breathing";
+beginchar(oct"356",width#,acc_ht#,depth#);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% SIGMA
+% ======================================================================
+%
+def dims= 8u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ pos4(hair,-180); y4=.5h; lft x4r=hround .75u; % left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); y6=-.5stem; % bottom right
+ top y3r=h+oo; x3+.5stem=rt x6l; pos3(stem,90); % top right
+pos5(stem,-90); bot y5r=0; x5=.5w; % inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+filldraw double_circ_stroke % bowl and tail
+ z7e{right}...z6e{up}...z5e{left}...z4e{up}...z3e{right};
+enddef;
+%
+cmchar "Final lowercase sigma";
+beginchar("c",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+%
+numeric gen_sigma; gen_sigma=1;
+%
+def dim_sigma = 9.5u#,x_height#,0 enddef;
+def ital_sigma = 0 enddef;
+def fit_params_sigma = 0,.75u# enddef;
+%
+def mid_sigma=
+italcorr ital_sigma; adjust_fit(fit_params_sigma);
+if known pic.c: currentpicture:=pic.c; else: gen_mid_sigma; fi
+if not working_hard : picture pic.c; pic.c=currentpicture; fi
+enddef;
+%
+def gen_mid_sigma =
+ pickup fine.nib;
+ lft x4r=hround .75u; rt x8r=w-lft x4r; % left and right bulge
+ top y2r=h; bot y6r=-oo; x2r=x6r; % top and bottom
+ numeric fake; fake=y2r-(vstem-currentbreadth); % approx height of |z2l|
+ 2y4r=y2r+y6r; 2y8r=fake+y6r;
+ (x8r-x6r)/(y8r-y6r)=-(x4r-x6r)/(y4r-y6r); % determine |x6r|
+ y1r=y2r;rt x1=hround(rt x8r+u); pos1(flare,90); % tip
+ filldraw stroke z1e..gr_arc.e(2,3,4)(vstem,curve,otilt)
+ & gr_arc.e(4,5,6)(vair,curve,otilt) % top stroke and left bowl
+ & gr_arc.e(6,7,8)(vair,curve,otilt); % bottom part of right bowl
+ z9l=z2l; pos9(vair,180); z9'l=z2'l; z9'r=left;
+ filldraw stroke z8e{z8'e}..z9e{z9'e}; % top part of right bowl
+enddef;
+%
+cmchar "Initial and medial lowercase sigma";
+beginchar("s",dim_sigma);
+mid_sigma; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% TAU
+% ======================================================================
+%
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ pi_bar; % bar
+ pos4(hair,0); y4=y2; lft x4l-(x1-.5hair)=rt x3-rt x4r; % attachment
+ pos5(hair,0); y5=.5x_height; x5=x4; % midstems
+ x6=x4+1.5u; bot y6l=-oo; pos6(stem,90); alpha_tail(6,7); % stem
+ filldraw stroke z7e...z6e{left}...z5e---z4e;
+enddef;
+%
+cmchar "Lowercase tau";
+beginchar("t",dims);
+this_letter; penlabels(1,2,3,6,7,8); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% UPSILON
+% ======================================================================
+%
+def width = 9u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ y2+.5stem=x_height+o; x2-.5stem=hround.75u; % left tip
+ lft x4r=hround(x2-.5stem+.75u); y4r=.5x_height; % left middle
+ y8r=y4r; rt x8r=hround(w-.75u); % right bulge
+ x6r=.5[x4r,x8r]; bot y6r=-oo; % bottom
+ numeric tilt;
+ tilt:=min(2*otilt,.5);
+ filldraw stroke
+ gr_arc.e(6,7,8)(vair,stem,tilt) ;
+ filldraw stroke
+ gr_arc.e(4,5,6)(vair,.4[vair,stem],tilt) ;
+ y9+.5hair=x_height+o; x9=x8-u; pos9(hair,angle ((z8-z9) xscaled 2)+90);
+ filldraw circ_stroke z9e...{-z8'e}z8e;
+ pos2(stem,angle((z4-z2) xscaled 2)-90);
+ filldraw circ_stroke z2e...{z4'e}z4e;
+ numeric x_baryctr; x_baryctr=.5w;
+enddef;
+%
+cmchar "Lowercase upsilon";
+beginchar("u",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+%
+cmchar "Lowercase upsilon with rough breathing";
+beginchar(oct"206",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+%
+cmchar "Lowercase upsilon with smooth breathing";
+beginchar(oct"216",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+cmchar "Lowercase upsilon with acute";
+beginchar(oct"226",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase upsilon with rough breathing and acute";
+beginchar(oct"236",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase upsilon with smooth breathing and acute";
+beginchar(oct"246",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase upsilon with rough breathing and grave";
+beginchar(oct"266",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase upsilon with smooth breathing and grave";
+beginchar(oct"276",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase upsilon with circumflex";
+beginchar(oct"247",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+%
+cmchar "Lowercase upsilon with grave";
+beginchar(oct"256",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+cmchar "Lowercase upsilon with rough breathing and circumflex";
+beginchar(oct"306",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+%
+cmchar "Lowercase upsilon with smooth breathing and circumflex";
+beginchar(oct"316",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+%
+cmchar "Lowercase upsilon with diaeresis";
+beginchar(oct"014",width#,circ_ht#,0);
+this_letter; diaeresis(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis and grave";
+beginchar(oct"016",width#,acc_ht#,0);
+this_letter; diaeresis_grave(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis and acute";
+beginchar(oct"015",width#,acc_ht#,0);
+this_letter; diaeresis_acute(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis and circumflex";
+beginchar(oct"017",width#,Circ_ht#,0);
+this_letter; diaeresis_circumflex(x_baryctr); endchar;
+
+
+picture savedpicture;
+%
+% ======================================================================
+% FI
+% ======================================================================
+%
+def dims = 10.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h;
+ x6r=.5[x4r,x8r]; bot y6r=-oo;
+ numeric tilt; tilt:=min(2*otilt,.5);
+ filldraw stroke gr_arc.e(6,7,8)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(4,5,6)(vair,.5[vair,stem],tilt) ;
+ y2+.5stem=h+o; x2+.5stem=hround(x6-1.5u);
+ pos2(stem,angle((z2-z4)xscaled 2)+90);
+ filldraw circ_stroke z2e...{z4'e}z4e;
+ pos10(stem,180); pos11(hair,180);
+ y10-.5stem=-d-o; y11=.25h; x10=x11=x6;
+ x9r=.5[x10r,x8r]; top y9r=h+o;
+ filldraw stroke gr_arc.e(8,20,9)(.25[vair,stem],.5[vair,stem],.5tilt);
+ filldraw circ_stroke z10e..z11e{up}..{-z9'e}z9e;
+enddef;
+%
+cmchar "Lowercase phi";
+beginchar("f",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,20,21); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% HI
+% ======================================================================
+%
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+def dims = 10u#,x_height#,desc_depth# enddef;
+%
+def gen_letter=
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1+.5stem=h+oo; % top left
+ z1'=(1,.2); pos1(stem,angle z1'+90); % direction at z1
+ x3+x1=w; y3-.5stem=-d-oo; pos3(stem,angle z1'+90); % bottom right
+ z2=.5[z1,z3]; % attachment
+ z2'=(z3-z1)yscaled 2; pos2(hair,angle z2'+90); % direction at z4
+ filldraw double_circ_stroke z1e{z1'}... z2e{(z3-z1)yscaled 2}...{z1'}z3e;
+ lft x7l=hround .75u; bot y7l=-d-oo; z2=.5[z7l,z8r]=.5[z7r,z8l];
+ numeric stem'; stem'=stem-currentbreadth;
+ numeric theta; theta=angle(z8r-z7l)+angle((x8r-x7l)++(y8r-y7l)+-+stem',stem');
+ x7r=x7l+(stem'/sind theta); y7r=y7l;
+ filldraw stroke z7e..z8e;
+enddef;
+%
+cmchar "Lowercase chi";
+beginchar("q",dims);
+this_letter; penlabels(1,2,3,7,8); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% YI
+% ======================================================================
+%
+def dims = 10.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ lft x2r=w-rt x6r=.75u; y2r=y6r=.6x_height; %left and right bulges
+ x4r=.5[x2r,x6r]; bot y4r=-oo; %bottom
+ numeric tilt; tilt:=min(2*otilt,.5);
+ filldraw stroke gr_arc.e(4,5,6)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(2,3,4)(vair,.4[vair,stem],tilt) ;
+ y7+.5hair=x_height+o; x7+.5hair=hround(rt x6r-.75u); %right tip
+ pos7(hair,angle ((z6-z7) xscaled 2)+90);
+ filldraw circ_stroke z7e...{-z6'e}z6e;
+ y1+.5stem=x_height+o; x1-.5stem=hround(lft x2r+.5u); %left tip
+ pos1(stem,angle((z2-z1) xscaled 2)-90);
+ filldraw circ_stroke z1e...{z2'e}z2e;
+ pos10(stem,0); pos9(hair,0); pos8(stem,0); %vertical stroke
+ y10-.5stem=-d-o; y9=.25x_height; y8+.5stem=h+o; x10=x9=x8=x4;
+ filldraw double_circ_stroke z10e..z9e{up}..z8e;
+enddef;
+%
+cmchar "Lowercase psi";
+beginchar("y",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+%
+picture savedpicture;
+%
+% ======================================================================
+% WMEGA
+% ======================================================================
+%
+def width = 12u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+%
+def gen_letter =
+ pickup fine.nib;
+ pos2(stem,-180); pos8(stem,360); lft x2r=w-rt x8r=hround.75u;
+ y2=y8=.8bar_height; % left and right bulges
+ y4=y6=bar_height; .5[x4,x6]=.5w; rt x4r-lft x6r=stem;
+pos4(hair,0); pos6(hair,180); % left and right of loop
+ bot y3r=bot y7r=-oo; x3=.5[x2,x4]; x7+.25u=.5[x6,x8];
+ pos3(vstem,-150); pos7(vstem,330); % left and right bottom
+ top y1r=x_height+o=top y9r; % left tip
+ x1=.5[x2,.5w]; pos1(.2[stem,hair],angle(-.5w,y2-x_height)-90);
+x9=.5[x8,.5w]; pos9(.8[stem,hair],angle(-.5w,x_height-y2)-90); % rt tip
+ filldraw stroke z1e{(z2-z1) xscaled 2}...z2e{down}...z3e{right};
+ filldraw stroke z7e{right}...{up}z8e...{(z9-z8) xscaled 2}z9e;
+ drawloop(3,4,6,7);
+ numeric x_baryctr; x_baryctr=.5[x4,x6];
+ numeric pos_stem; pos_stem=x_baryctr;
+enddef;
+%
+cmchar "Lowercase omega";
+beginchar("w",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+%
+cmchar "Lowercase omega with rough breathing";
+beginchar(oct"204",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omega with smooth breathing";
+beginchar(oct"214",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omega with acute";
+beginchar(oct"224",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+%
+cmchar "Lowercase omega with rough breathing and acute";
+beginchar(oct"234",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omega with smooth breathing and acute";
+beginchar(oct"244",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omega with rough breathing and grave";
+beginchar(oct"264",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)<; endchar;
+%
+cmchar "Lowercase omega with smooth breathing and grave";
+beginchar(oct"274",width#,acc_ht#,0);
+this_letter; spirit_grave(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omega with circumflex";
+beginchar(oct"227",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+%
+%
+cmchar "Lowercase omega with grave";
+beginchar(oct"254",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+%
+cmchar "Lowercase omega with rough breathing and circumflex";
+beginchar(oct"304",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing and circumflex";
+beginchar(oct"314",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+%
+cmchar "Lowercase omega with grave and iota subscript";
+beginchar(oct"334",width#,acc_ht#,iota_dp#);
+this_letter; grave(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing and iota subscript";
+beginchar(oct"344",width#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing and iota subscript";
+beginchar(oct"354",width#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with acute and iota subscript";
+beginchar(oct"325",width#,acc_ht#,iota_dp#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing, acute and iota subscript";
+beginchar(oct"335",width#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing and acute and iota subscript";
+beginchar(oct"345",width#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing, grave and iota subscript";
+beginchar(oct"364",width#,acc_ht#,iota_dp#);
+this_letter; spirit_grave(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing and grave and iota subscript";
+beginchar(oct"365",width#,acc_ht#,iota_dp#);
+this_letter; spirit_grave(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with circumflex and iota subscript";
+beginchar(oct"355",width#,circ_ht#,iota_dp#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing, circumflex and iota subscript";
+beginchar(oct"326",width#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing, circumflex and iota subscript";
+beginchar(oct"336",width#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with iota subscript";
+beginchar(oct"324",width#,height#,iota_dp#);
+this_letter; iota_sub(pos_stem); endchar;
+
+picture pic.iota;
+picture savedpicture;
+
+endinput;
+% ======================================================================
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdpunct.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdpunct.mf
new file mode 100644
index 00000000000..faba0c168c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdpunct.mf
@@ -0,0 +1,336 @@
+
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+cmchar "Open quotes (eisagwgik'a)";
+ beginchar("{",7.5u#,x_height#,0);
+ adjust_fit(0,0);
+ pos0(.5[hair,stem],0); pos1(1.5stem,0); pos2(.5[hair,stem],0);
+ pos3(.5[hair,stem],0); pos4(1.5stem,0); pos5(.5[hair,stem],0);
+ y0=y3=.9h; y1=y4=.5h; y2=y5=h-y0;
+ x1-.1stem=hround(.5u);
+ x3r=w-u;
+ x4-x1=2stem; x3-x4=x0-x1; x0=x2; x3=x5;
+ if x1>=x0: x1:=x0-1; x4:=x3-1;
+ x1l:=x1-.5stem; x1r:=x1+.5stem;
+ x4l:=x4-.5stem; x4r:=x4+.5stem; fi
+ filldraw stroke z0e---z1e---z2e;
+ filldraw stroke z3e---z4e---z5e;
+ penlabels(0,1,2,3,4,5);
+endchar;
+
+cmchar "Close quotes (eisagwgik'a)";
+ beginchar("}",7.5u#,x_height#,0);
+ adjust_fit(0,0);
+ pos0(.5[hair,stem],0); pos1(1.5stem,0); pos2(.5[hair,stem],0);
+ pos3(.5[hair,stem],0); pos4(1.5stem,0); pos5(.5[hair,stem],0);
+ y0=y3=.9h; y1=y4=.5h; y2=y5=h-y0;
+ x1+.1stem=hround(w-.5u);
+ x3l=u;
+ x1-x4=2stem; x3-x4=x0-x1; x0=x2; x3=x5;
+ if x1<=x0: x1:=x0+1; x4:=x3+1;
+ x1l:=x1-.5stem; x1r:=x1+.5stem;
+ x4l:=x4-.5stem; x4r:=x4+.5stem; fi
+ filldraw stroke z0e---z1e---z2e;
+ filldraw stroke z3e---z4e---z5e;
+ penlabels(0,1,2,3,4,5);
+endchar;
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+ italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+ adjust_fit(0,0);
+ pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+ lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+ numeric bot_width;
+ bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+ pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+ x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+ if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+ else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+ penlabels(0,1,2,3,4);
+endchar;
+
+cmchar "Per cent sign";
+beginchar("% ",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+ italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+ adjust_fit(0,0); pickup fine.nib;
+ numeric left_curve,right_curve;
+ left_curve=hround 5/6[fudged.hair,fudged.stem];
+ right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+ pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+ top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+ bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+ x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+ filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+ filldraw stroke super_arc.e(3,4)
+ & super_arc.e(4,1); % right half of upper bowl
+ pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+ bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+ top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+ x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+ filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+ filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bo
+ pickup rule.nib; top y9=h; bot y10=-d;
+ if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+ else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+def dims = 6u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ x1-.5dot_size=hround(.5w-u-.5dot_size); y1+.5dot_size=h;
+ if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+ else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+enddef;
+
+cmchar "Apostrophe";
+ beginchar(oct"035",dims);
+ this_letter; penlabels(1);
+endchar;
+
+picture savedpicture;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+ italcorr body_height#*slant-.5u#;
+ adjust_fit(0,0); pickup fine.nib;
+ pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+ rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+ top y1=h; y2=.5[y1,y3]=math_axis;
+ filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+ penlabels(1,2,3);
+endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+ italcorr math_axis#*slant-.5u#;
+ adjust_fit(0,0); pickup fine.nib;
+ pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+ lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+ top y1=h; y2=.5[y1,y3]=math_axis;
+ filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+ penlabels(1,2,3);
+endchar;
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+ italcorr h#*slant-.75u#;
+ adjust_fit(0,0);
+ numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+ x0=.5w; y0=h-.5x_height;
+ for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+ labels(0,[-150],[-90],[-30],30,90,150);
+endchar;
+
+cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+ x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+ lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+ draw z1--z2; % stem
+ draw z3--z4; % crossbar
+ labels(1,2,3,4);
+endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+ adjust_fit(0,0);
+ x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+ comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+ penlabels(1);
+endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+ adjust_fit(0,0); pickup fine.nib;
+ pos1(dot_diam,0); pos2(dot_diam,90);
+ lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+ penlabels(1,2);
+endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+ italcorr body_height#*slant-.5u#;
+ adjust_fit(0,0); pickup rule.nib;
+ rt x1=hround(w-u)+eps; top y1=h+eps;
+ lft x2=hround u-eps; bot y2=-d-eps;
+ draw z1--z2; % diagonal
+ penlabels(1,2);
+endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+ italcorr x_height#*slant+.5dot_diam#-2u#;
+ adjust_fit(0,0); pickup fine.nib;
+ pos1(dot_diam,0); pos2(dot_diam,90);
+ lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+ pos3(dot_diam,0); pos4(dot_diam,90);
+ x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+ penlabels(1,2,3,4);
+endchar;
+
+cmchar "'Anw tele'ia";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,0);
+ italcorr x_height#*slant+.5dot_diam#-2u#;
+ adjust_fit(0,0); pickup fine.nib;
+ pos1(dot_diam,0); pos2(dot_diam,90);
+ lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+ penlabels(1,2);
+endchar;
+
+cmchar "Question mark";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar("?",5u#,x_height#,comma_depth#);
+ italcorr x_height#*slant+.5dot_diam#-2u#;
+ adjust_fit(0,0); pickup fine.nib;
+ pos1(dot_diam,0); pos2(dot_diam,90);
+ lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+ x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+ comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+ penlabels(1,2,3);
+endchar;
+
+cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+ italcorr h#*slant-.5u#;
+ adjust_fit(0,0); pickup rule.nib;
+ lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+ y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+ draw z1--z2; % upper bar
+ draw z3--z4; % lower bar
+ labels(1,2,3,4);
+endchar;
+
+
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+ italcorr .5x_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+ pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+ top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+ if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+ filldraw stroke z1e--z2e; % bar
+ penlabels(1,2);
+endchar;
+
+cmchar "En dash";
+beginchar(oct"000",9u#,x_height#,0);
+ italcorr .61803x_height#*slant+.5u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+ top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+ filldraw stroke z1e--z2e; % bar
+ penlabels(1,2);
+endchar;
+
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Reverse apostrophe";
+beginchar(oct"034",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+cmchar "Em dash";
+beginchar(oct"177",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdsl10.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdsl10.mf
new file mode 100644
index 00000000000..e5b0dc31230
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdsl10.mf
@@ -0,0 +1,117 @@
+%
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Fonts.
+% -----------------------------
+% Font: Slanted
+% Dimn: 10pt
+% -----------------------------
+% Load Bases
+%
+if unknown cmbase: input cmbase fi
+if unknown kdbase: input kdbase fi
+
+font_identifier:="KDSL"; font_size 10pt#;
+%
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+%
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+%
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+%
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+%
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+%
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+%
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at th
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+italics:=false;
+one_accent:=false;
+%
+generate kdgreek;
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdti10.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdti10.mf
new file mode 100644
index 00000000000..96dc05ac54a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdti10.mf
@@ -0,0 +1,119 @@
+%
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Fonts.
+% -----------------------------
+% Font: Italics
+% Dimn: 10pt
+% -----------------------------
+% Load Bases
+%
+if unknown cmbase: input cmbase fi
+if unknown kdbase: input kdbase fi
+
+font_identifier:="KDTI"; font_size 10pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2;
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false;
+monowidth:=false;
+italics:=true;
+
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+one_accent:=false;
+
+generate kdgreek % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdtt10.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdtt10.mf
new file mode 100644
index 00000000000..a66e2b5d6c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdtt10.mf
@@ -0,0 +1,122 @@
+%
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Computer Classic Greek Fonts.
+% -----------------------------
+% Font: Typewriter
+% Dimn: 10pt
+% Rev : 1.0a [EXP]
+% -----------------------------
+%
+% Load Bases
+%
+if unknown cmbase: input cmbase fi
+if unknown kdbase: input kdbase fi
+
+font_identifier:="KDTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=230/36pt#; % height of lowercase ascenders %was 220
+cap_height#:=230/36pt#; % height of caps %was 220
+fig_height#:=230/36pt#; % height of numerals %was 220
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=24/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=true; % should stems, etc. be straight?
+monowidth:=true; % are stem and hair more or less the same width?
+italics:=false;
+
+% KD Base Definitions
+
+acc_ht#:=230/36pt#;
+circ_ht#:=230/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=64/36pt#;
+one_accent:=false;
+
+generate kdgreek;
diff --git a/Master/texmf-dist/fonts/source/public/kdgreek/kdupper.mf b/Master/texmf-dist/fonts/source/public/kdgreek/kdupper.mf
new file mode 100644
index 00000000000..2e47c90737b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kdgreek/kdupper.mf
@@ -0,0 +1,645 @@
+% Computer Classic Greek Font
+% ======================================================================
+% KD Classical Greek Family of Fonts
+% ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+%
+% A set of MF source fonts for use with TeX version 3.0 or higher
+% accompanied with macros and hyphenation tables to facilitate
+% the typesetting of greek texts
+%
+% This piece of work is partially based on original work of
+% Sylvio Levi (design of an excellent set of fonts)
+% and Yianni Haralambous (ideas about macros other fonts).
+%
+% This file is part of the greektex package and abides to
+% copyright laws of the GNU general public software licence
+%
+% You are allowed to use or modify this file as long as the
+% original authors are clearly mentioned. It is ILLEGAL to sell
+% any part of this work or work derived from it. You may not
+% charge for this work except to cover for reasonable media
+% expensess.
+%
+% K J Dryllerakis (C) 1991-1992
+%
+% ======================================================================
+%
+% Upper Case Letter driver
+% This file is a rearrangement of code in Computer Modern's romanu.mf
+%
+
+cmchar "Uppercase alpha";
+beginchar("A",13u#,cap_height#,0);
+ adjust_fit(cap_serif_fit#,cap_serif_fit#);
+ numeric left_stem,right_stem,outer_jut,alpha;
+ right_stem=cap_stem-stem_corr;
+ left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+ outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+ x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+ alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+ penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+ penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+ penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+ penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+ if hefty: y5r else: y5 fi =5/12y0;
+ y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+ if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+ penlabels(0,1,2,3,4,5,6);
+endchar;
+
+cmchar "Uppercase beta";
+beginchar("B",12.5u#,cap_height#,0);
+ italcorr .75cap_height#*slant-.5u#;
+ adjust_fit(cap_serif_fit#,0);
+ numeric left_stem,right_curve,middle_weight;
+ left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+ pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ penpos3(cap_band,90); penpos4(cap_band,90);
+ penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+ penpos8(middle_weight,90); penpos9(middle_weight,90);
+ penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+ penpos11(cap_band,-90); penpos12(cap_band,-90);
+ z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+ z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+ x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+ x5r=hround(w-1.5u); x10r=hround(w-u);
+ if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+ else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+ x6l:=x6l-.5u; x11l:=x11l-.5u;
+ fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+ fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+ if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+ math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+cmchar "Uppercase epsilon";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+ italcorr cap_height#*slant-beak_jut#-.5u#;
+ adjust_fit(cap_serif_fit#,0);
+ h:=vround(h-stem_corr);
+ pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+ top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+ arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+ pos5(cap_bar,-90); pos6(hair,0);
+ top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+ pos0(cap_bar,90); pos7(hair,0);
+ z0=z5; x6=x7; y6-y5l=y0l-y7;
+ if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+ else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+ arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and seri
+ pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+ bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+ arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+ if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+ math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9);
+endchar;
+
+cmchar "Uppercase eta";
+beginchar("H",13u#+width_adj#,cap_height#,0);
+ italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+ adjust_fit(cap_serif_fit#,cap_serif_fit#);
+ pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+ pos3(cap_stem,0); pos4(cap_stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+ top y1=top y3=h; bot y2=bot y4=0;
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ penpos5(cap_bar,90); penpos6(cap_bar,90);
+ x5=x1; x6=x3; y5=y6=.52h;
+ fill stroke z5e--z6e; % bar
+ if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+ math_fit(0,.5ic#); penlabels(1,2,3,4,5,6);
+endchar;
+
+cmchar "Uppercase iota";
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "Uppercase kappa";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal seri
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal ser
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase mu";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "Uppercase nu";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+cmchar "Uppercase omicron";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase rho";
+beginchar("R",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: dish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Uppercase tau";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper bracketin
+ dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); fi % lower serif
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase chi";
+beginchar("Q",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "Uppercase zeta";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase gamma";
+beginchar("G",11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase delta";
+beginchar("D",15u#,cap_height#,0);
+adjust_fit(0,0);
+numeric left_stem,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+x1l=w-x4r=.75u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+y5=y6=cap_vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ unfill z0+.5right{down}...{z4-z3}z6--z5{z2-z1}
+ ...{up}z0+.5left--cycle; % counter
+else: unfill z0--z5--z6--cycle; fi % counter
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase theta";
+beginchar("J",14u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=hround(cap_curve-2stem_corr);
+penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup crisp.nib; pos5(cap_vstem,90); pos6(cap_vstem,90);
+lft x5=w-rt x6=hround(x2l+u)+1; y5=y6=.5[y1l,y3l];
+filldraw stroke z5e--z6e; % bar
+if serifs: pos7(hair,0); pos8(hair,0); pos9(hair,0); pos10(hair,0);
+ x7l=x8l=x5; x9r=x10r=x6;
+ y7-y5r=y9-y6r=y5l-y8=y6l-y10=vround .05h;
+ filldraw stroke z7e--z8e; % left serif
+ filldraw stroke z9e--z10e; fi % right serif
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Uppercase lambda";
+beginchar("L",12u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,outer_jut,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase xi";
+beginchar("X",12u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem];
+pickup crisp.nib; pos1(shaved_stem,90); pos2(hair,0);
+top y1r=h; x1=.5w; rt x2r=hround(w-.85u); y2=good.y(y1l-4/9beak)-eps;
+arm(1,2,a,.4beak_darkness,.3beak_jut); % upper right arm and beak
+pos3(hair,180); x3=w-x2; y3=y2;
+arm(1,3,b,.4beak_darkness,-.3beak_jut); % upper left arm and beak
+pos4(shaved_stem,-90); pos5(hair,0);
+bot y4r=0; x4=.5w; rt x5r=hround(w-.75u); y5=good.y(y4l+.5beak)+eps;
+arm(4,5,c,.4beak_darkness,.3beak_jut); % lower right arm and beak
+pos6(hair,180); x6=w-x5; y6=y5;
+arm(4,6,d,.4beak_darkness,-.3beak_jut); % lower left arm and beak
+pos7(shaved_stem,90); pos8(shaved_stem,90);
+lft x7=w-rt x8=hround if serifs: 2.5 else: 2 fi\\ u;
+top y7r=top y8r=vround(.52h+.5shaved_stem);
+filldraw stroke z7e--z8e; % middle bar
+if serifs: numeric xjut;
+ if bot y2>top y7r+.75cap_jut: xjut=.5cap_jut;
+ else: bot y2=top y7r+1.5xjut; fi
+ pos11(hair,0); pos12(hair,0); y11=y12;
+ pos13(hair,0); pos14(hair,0); y13=y14;
+ lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u;
+ top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7;
+ filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; fi % middle serifs
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,11,12,13,14); endchar;
+
+cmchar "Uppercase pi";
+beginchar("P",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib;
+h:=vround(h-stem_corr);
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5r=y6r=h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,eps); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,eps,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase sigma";
+beginchar("S",13u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(0,0);
+numeric bot_arm_thickness;
+bot_arm_thickness=Vround .25[slab,cap_vstem];
+pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l;
+top y1=h; bot y2=h-slab; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0);
+penpos3(alpha1*(cap_stem-tiny),0);
+alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(cap_hair-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
+arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase upsilon";
+beginchar("U",13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase phi";
+beginchar("F",13u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem,light_curve;
+shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5];
+y5r=vround(.15h if serifs:+slab fi);
+penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase psi";
+beginchar("Y",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem;
+shaved_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(shaved_stem,-180); pos4(shaved_stem,-180);
+pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi);
+pos6(shaved_stem,0); pos7(shaved_stem,0);
+lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4;
+pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r;
+y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3');
+interim superness:=more_super;
+filldraw z3'l{right}...z4r{down} & super_arc.r(4,5)
+ & super_arc.r(5,6) & z6r{up}...z7'l{right}
+ --z7r---z7l...z6l{down} & super_arc.l(6,5)
+ & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.8cap_height#*slant-.5u#,.4cap_height#*slant-1.25u#);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Uppercase omega";
+beginchar("W",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/kixfont/kix.mf b/Master/texmf-dist/fonts/source/public/kixfont/kix.mf
new file mode 100644
index 00000000000..8ac60382909
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kixfont/kix.mf
@@ -0,0 +1,121 @@
+% KIX, a font for typesetting snail mail zipcodes.
+%
+% The KIX code is a barcodish format used to encode country codes, zip codes
+% and street numbers in a machine-readable format. If printed below the
+% address line on bulk mailings, a discount can be obtained.
+%
+% This font is according to the Dutch specifications. The sizes are
+% optimal for printing on a printer with a resolution which is a multiple
+% of 150dpi. This optimisation means that the sizes in the TFM file for
+% this font match almost exactly on an integer number of pixels.
+%
+% Install this font in your TeX distribution and update any distro caches.
+% Include this file with \font\kix=kix and use it to format properly coded
+% KIX-information, for instance {\kix 1234AB56} for zipcode 1234AB and street
+% number 56. For more information on the data to encode in KIX, please refer
+% to the following site in Dutch:
+% http://www.tpgpostbusiness.nl/kix/
+% KIX is also used in a few other countries, but not worldwide.
+%
+% Metafont scripting by Rick van Rein, KIX-knowledge from Ivo Terhorst.
+%
+% Available for any purpose, no warranties.
+
+
+mode_setup;
+font_identifier "kix";
+
+
+% The bar in the code is barw# wide, spaces are #spcw wide
+% The sync portion is synch# high, plus additional stickh# to either side
+barw# := 0.508mm#;
+spcw# := 0.677mm#;
+synch# := 1.27mm#;
+stickh# := 2.08mm#;
+
+define_pixels (barw, spcw, synch, stickh);
+
+
+% Character dimensions:
+% wd, ht, dp
+
+wd# := 4 * (barw# + spcw#);
+ht# := synch# + stickh# + 2mm#;
+dp# := stickh#;
+
+define_pixels (wd, ht, dp)
+
+
+% Routine to start a character definition
+
+def defchar (expr ch) =
+ beginchar (ch, wd#, ht#, dp#);
+ x := 0;
+enddef;
+
+% Routine to draw a sync alone
+
+def sync =
+ fill (x,0)--(x+barw,0)--(x+barw,synch)--(x,synch)--cycle;
+ x := x + barw + spcw
+enddef;
+
+% Routine to draw a stick down
+
+def down =
+ fill (x,-stickh)--(x+barw,-stickh)--(x+barw,synch)--(x,synch)--cycle;
+ x := x + barw + spcw
+enddef;
+
+% Routine to draw a stick up
+
+def up =
+ fill (x,0)--(x+barw,0)--(x+barw,synch+stickh)--(x,synch+stickh)--cycle;
+ x := x + barw + spcw
+enddef;
+
+% Routine to draw a long line
+
+def updown =
+ fill (x,-stickh)--(x+barw,-stickh)--(x+barw,synch+stickh)--(x,synch+stickh)--cycle;
+ x := x + barw + spcw
+enddef;
+
+defchar ("1"); sync; down; up; updown; endchar;
+defchar ("2"); sync; down; updown; up; endchar;
+defchar ("3"); down; sync; up; updown; endchar;
+defchar ("4"); down; sync; updown; up; endchar;
+defchar ("5"); down; down; up; up; endchar;
+defchar ("6"); sync; up; down; updown; endchar;
+defchar ("7"); sync; updown; sync; updown; endchar;
+defchar ("8"); sync; updown; down; up; endchar;
+defchar ("9"); down; up; sync; updown; endchar;
+defchar ("0"); sync; sync; updown; updown; endchar;
+defchar ("A"); down; up; down; up; endchar;
+defchar ("B"); down; updown; sync; up; endchar;
+defchar ("C"); sync; up; updown; down; endchar;
+defchar ("D"); sync; updown; up; down; endchar;
+defchar ("E"); sync; updown; updown; sync; endchar;
+defchar ("F"); down; up; up; down; endchar;
+defchar ("G"); down; up; updown; sync; endchar;
+defchar ("H"); down; updown; up; sync; endchar;
+defchar ("I"); up; sync; down; updown; endchar;
+defchar ("J"); up; down; sync; updown; endchar;
+defchar ("K"); up; down; down; up; endchar;
+defchar ("L"); updown; sync; sync; updown; endchar;
+defchar ("M"); updown; sync; down; up; endchar;
+defchar ("N"); updown; down; sync; up; endchar;
+defchar ("O"); up; sync; updown; down; endchar;
+defchar ("P"); up; down; up; down; endchar;
+defchar ("Q"); up; down; updown; sync; endchar;
+defchar ("R"); updown; sync; up; down; endchar;
+defchar ("S"); updown; sync; updown; sync; endchar;
+defchar ("T"); updown; down; up; sync; endchar;
+defchar ("U"); up; up; down; down; endchar;
+defchar ("V"); up; updown; sync; down; endchar;
+defchar ("W"); up; updown; down; sync; endchar;
+defchar ("X"); updown; up; sync; down; endchar;
+defchar ("Y"); updown; up; down; sync; endchar;
+defchar ("Z"); updown; updown; sync; sync; endchar;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1.mf
new file mode 100644
index 00000000000..5c0dadc05a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1.mf
@@ -0,0 +1,2105 @@
+input font1base
+proofing:=0; % :=1 for pts/labels, :=.5 for smoke proofs, :=0 for fontmaking!
+fontmaking:=1;
+
+hppp:=722.909/72.27;
+vppp:=hppp;
+designsize:=29;
+
+if known Xerox_world:
+ font_family "CLASS";
+ coding_scheme "ASCII LETTERS ONLY";
+fi
+
+% A by Ann Lasko-Harvill
+vardef char.A=
+ setwidth .6em;
+ pos1(1.3 thickwidth,45);
+ pos2(1.5 thickwidth,0);
+ x1=.3em;
+ y1=capheight;
+ x2l=.5em;
+ y2=0;
+ pos3(1.3thinwidth,75);
+ pos4(thinwidth,65);
+ x3=.1em;
+ y3=.55xheight;
+ x4=.4em;
+ y4=y3;
+ pos5(thinwidth,0);
+ pos6(thinwidth,-50);
+ x5=.1em;
+ y5=0;
+ x6=x1;
+ y6l=y1l;
+ stroke(1,2,.75,.3,.1);
+ stroke(3,4,.5,.23,.1);
+ stroke(5,6,.2,.2,.1);
+ labelpos(1,2,3,4,5,6);
+enddef;
+
+% B by William Burley
+vardef char.B =
+ setwidth .57em;
+ pos1(thinwidth,90);
+ pos2(thinwidth,90);
+ pos3(.75[thinwidth,thickwidth],0);
+ pos4(thinwidth,-90);
+ pos5(thinwidth,270);
+ pos6(.75[thinwidth,thickwidth],180);
+ pos7(thinwidth,90);
+ pos8(thinwidth,90);
+ pos9(thickwidth,0);
+ pos10(thickwidth,0);
+ pos11(thinwidth,-90);
+ x1=x10l=x9l=x8=.17w;
+ x2=x4=.48w;
+ x5=x7=.52w;
+ x11=x9r;
+ x3=x4+.45(y2-y4);
+ x6=x7+.45(y5-y7);
+ y8l=y7l=0;
+ y1r=y2r=capheight;
+ y9=y8r;
+ y10=y1l;
+ y11=y4=y5=.52capheight;
+ y3=.5[y4,y2];
+ y6=.5[y7,y5];
+ dz2=(1,0); dz4=(-1,0);
+ dz5=(-1,0); dz7=(1,0);
+ stroke(1,2,0,0,0);
+ stroke(9,10,0,0,0);
+ stroke(8,7,0,0,0);
+ stroke(5,11,0,0,0);
+ curve(2,3,4);
+ curve(7,6,5);
+ labelpos(1,2,3,4,5,6,7,8,9,10,11);
+enddef;
+
+% C by Arthur Samuel
+vardef char.C =
+ setwidth .7em; % do this first; it sets the character width
+ pos1(thickwidth,180);
+ pos2(thickwidth,145);
+ pos3(thinwidth,90);
+ pos4(thinwidth,45);
+ pos5(.7thickwidth,0);
+ pos6(thickwidth,0);
+ pos7(thickwidth,45);
+ pos8(thinwidth,90);
+ pos9(thinwidth,135);
+ pos10(.7thickwidth,180);
+ z1=(.15w+.5thickwidth,.5capheight); dz1=(0,1);
+% z2=(.22w+.5thickwidth,.83capheight);
+ x2=.72[x3,x1]; y2=.72[y1,y3];
+ z3=(.56w,capheight); dz3=(1,0);
+ z4=(.650[x3,x5],.300[y3,y5]);
+ z5=(.83w,.8capheight); dz5=(1,-2);
+ z6=(.15w+.5thickwidth,.5capheight); dz6=(0,-1);
+% z7=(.22w+.5thickwidth,.17capheight);
+ x7=.72[x8,x1]; y7=.72[y1,y8];
+ z8=(.56w,0); dz8=(1,0);
+ z9=(.650[x8,x10],.300[y8,y10]);
+ z10=(.83w,.2capheight);
+ curve(1,2,3); curve(3,4,5);
+ curve(6,7,8); curve(8,9,10);
+ labelpos(1,2,3,4,5,6,7,8,9,10);
+enddef;
+
+% D by Dan Mills
+vardef char.D =
+ begingroup
+% charcd := 'D;
+ save glyphwidth,lsb,rsb,cuthru,baseline;
+ numeric glyphwidth,lsb,rsb,cuthrubaseline;
+ baseline=0;
+
+ glyphwidth = .5em;
+ lsb = .2glyphwidth;
+ rsb = .1glyphwidth;
+ cuthru = .02xheight;
+ setwidth( lsb+glyphwidth+rsb );
+
+% positions:
+ % 1 is special
+ pos2(.55[thinwidth,thickwidth],45);
+ pos3(thickwidth,0);
+ pos4(.5[thinwidth,thickwidth],-45);
+ % 5 is special
+
+% coordinates:
+ % 1 is special
+ x2 = lsb + .7glyphwidth; y2 = .92capheight;
+ x3r = lsb + glyphwidth; y3 = .55capheight;
+ x4 = lsb + .7glyphwidth; y4 = .15capheight;
+ % 5 is special
+
+% specials:
+ x1r = lsb; y1r = capheight;
+ x1l = x1r + .85thickwidth; y1l = y1r - thinwidth;
+ z1 = .5[z1l,z1r];
+
+ x5r = lsb; y5r = baseline;
+ x5l = x1r + .85thickwidth; y5l = y5r + thinwidth;
+ z5 = .5[z5l,z5r];
+
+% draw straights:
+ stroke(1,5,.45,.2,.2);
+
+% add slopes for curves:
+ dz1 = (1,0);
+ dz3 = (0,-1);
+ dz5 = (-1,0);
+
+% draw curves:
+ curve(1,2,3);
+ curve(3,4,5);
+
+ labelpos(1,2,3,4,5);
+ endgroup;
+enddef;
+
+% E by Joey Tuttle
+vardef char.E =
+ setwidth .63em;
+ pos1(1.5thinwidth,45); pos2(1.25thinwidth,135);
+ pos3(1.4thinwidth,90); pos4(.9thinwidth,90);
+ pos5(1.5thinwidth,-45); pos6(1.25thinwidth,-135);
+ pos7(thickwidth,0); pos8(thickwidth,0);
+ x1=w-.1em; y1r=capheight; x2=.1em; % fixed points
+ y2r=y1r; x3=.95[x7,x1l]; y3=.55[y6,y2]; x4=x7; y4=y3;
+ x5=x1; x6=x2; y5r=0; y6r=y5r;
+ z7l=z6; z8l=z2;
+ stroke(1,2,.1,.2,0); stroke(3,4,.1,.2,.2);
+ stroke(5,6,.1,.2,0); stroke(7,8,.5,.15,.05);
+ labelpos(1,2,3,4,5,6,7,8);
+enddef;
+
+% F by Pavel Curtis
+vardef char.F =
+ setwidth .6em;
+
+ numeric len; % clear this value for redefinition
+
+ pos0(thickwidth, 0);
+ pos1(1.1thickwidth, 0);
+ pos2(len, 10); % Length will be set below
+ pos3(thinwidth, 90);
+ pos4(1.5thinwidth, 120);
+ pos5(thinwidth, 90);
+ pos6(1.5thinwidth, 90);
+
+ x1.l = 0.1em; % Leave 0.1em sidebars
+ x4.r = w - 0.1em;
+
+ z0.r = (x1.r,xheight);
+ y1 = capheight;
+ x2.l = x1.l; x2.r = x1.r; % This determines len, above
+ y2 = 0;
+ z3.r = (x1,capheight);
+ y4.r = capheight;
+ z5 = (x1,y6);
+ z6.r = (.9[x1.r, x4.r], xheight);
+
+ % Vertical stroke
+ dz0 = (0,1);
+ stroke(0, 1, .8, .15, 0);
+ stroke(2, 0, .2, .15, 0);
+ % Top stroke
+ stroke(3, 4, .8, .38, 0);
+ % Middle stroke
+ stroke(5, 6, .8, .25, .25);
+
+ labelpos(0, 1, 2, 3, 4, 5, 6);
+enddef;
+
+% G by Jean-Luc Bonnetain
+vardef char.G =
+ setwidth .75em;
+ pos1(.5[thinwidth,thickwidth],10); % upper righmost pt of curve
+ pos2(.95[thinwidth,thickwidth],45); % intermediary pt for curve
+ pos3(1.3[thinwidth,thickwidth],90); % uppermost pt
+ pos4(1.3[thinwidth,thickwidth],135); % intermediary pt for curve
+ pos5(1.7[thinwidth,thickwidth],180); % lefmost pt
+ pos6(1.3[thinwidth,thickwidth],225); % intermediary pt for curve
+ pos7(1.3[thinwidth,thickwidth],270); % lowest pt
+ pos8(1.1[thinwidth,thickwidth],270); % intermediary pt for curve
+ pos9(.6thinwidth/(thickwidth-thinwidth)[thinwidth,thickwidth],270);
+ % lower righmost pt of curve
+ pos10(.5[thinwidth,thickwidth],10);% junction pt for 2 strokes
+ pos11(.5[thinwidth,thickwidth],0); % lowest pt vertical stroke
+ pos12(.5[thinwidth,thickwidth],90);
+ pos13(.5[thinwidth,thickwidth],80);
+
+ x1r = x10r = x12 = w - .1em ; y1 = 8/15[y3,y5];
+ x2 = .707[x3,x1]; y2 = .707[y1,y3];
+ x3 = x7; y3r = 1.05capheight;
+ x4 = x6; y4 = .707[y5,y3];
+ x5r = .1em ; y5 = 1/2capheight;
+ x6 = .707[x7,x5] ; y6 = .707[y5,y7];
+ x7 = 1/2[x5,x1]; y7r = -.05capheight;
+ x8 = .53[x7,x1]; y8 = .85[y91,y7]; % .707 --> .5
+ y91 = 3/5[y7,y5];
+ x9 = x1l + .02w; y9 = 11/16y91;
+ y10 = y7r;
+ x11 = x10 ; y11 = y12 = y13 = 7/8y5;
+ x13 = x12 -.25w;
+
+ dz1 = (0,1);
+ dz3 = (-1,0);
+ dz5 = (0,-1);
+ dz7 = (1,0);
+
+ curve(1,2,3);
+ curve(3,4,5);
+ curve(5,6,7);
+ curve(7,8,9);
+ stroke(10,11,0,0,0);
+ stroke(12,13,0,0,0);
+
+ labelpos(1,2,3,4,5,6,7,8,9,10,11,12,13);
+
+enddef;
+
+% H by John Hershberger
+vardef char.H =
+
+% The capital H is just not as nice as the small j. It is not very interesting
+% to the eye, and is in fact rather blocky and ugly in some of its
+% incarnations. Sigh.
+
+lwidth := thickwidth; % Left and right verticals are different
+rwidth := .5[thinwidth,thickwidth]; % ...widths
+
+barheight := .8[ xheight, .5capheight]; % Bar is a bit above center
+
+setwidth .68em; %
+
+% Left vertical stroke
+pos1( 1.1lwidth, 10 ); % To match top of U
+pos2( lwidth, 10 ); % and bottom, sort of
+x1l = .1em; y1=capheight;
+x2=x1; y2=0;
+
+% Right vertical stroke
+pos3( 1.1rwidth, 10 ); % Different width than lvertical
+pos4( rwidth, 10 );
+x3r = w-.1em; y3=capheight;
+x4=x3; y4=0;
+
+% Horizontal stroke
+x5=x1; y5=barheight;
+x6=x3; y6= .2[barheight, xheight]; % Gets steeper for bx. May not be right.
+pos5(1.25thinwidth, 70 ); % Thicker thin stroke!
+pos6(1.25thinwidth, 80 ); % getting no wider
+
+% Now draw it
+stroke( 1, 2, .2, .05, .05 ); % Slight taper below the tops of both verticals
+stroke( 3, 4, .2, .05, .05 );
+stroke( 5, 6, .5, .4, .4 ); % Noticeable taper in the horizontal
+
+labelpos(1,2,3,4,5,6);
+enddef;
+
+% I by Nori Tokusue
+vardef char.I =
+ setwidth .5em; % temporary value
+ pos1(1.4thickwidth,5);
+ pos2(thickwidth,0);
+ pos3(1.4thickwidth,2.5); % temporary value
+ x1=x2=x3; % straight I
+ z3=(.5w,0); % the botom of 'I' is at the base line
+ % midway between left and right ends.
+ y1=capheight;
+ y2=.5capheight;
+
+ % OK now draw 'I'
+ stroke(1,2,.1,.24,.24); % temporary value.
+ stroke(2,3,.9,.24,.24); % temporary value (bottom half)
+
+ labelpos(1,2,3);
+enddef;
+
+% J by Lynn Ruggles
+vardef char.J = % character 'J'
+ setwidth .5em; % width is 1/2 em
+ pos1(thickwidth,0);
+ z1=(.2w,1/4capheight);
+ dz1=(0,-1);
+
+ pos2(.7thickwidth,90);
+ z2=(.5[x1,x3],.01capheight);
+ dz2=(1,0);
+
+ pos3(thickwidth,175);
+ z3=(.75w,y1);
+ dz3=(0,1);
+
+ pos4(thickwidth,180);
+ z4=(x3,capheight);
+
+ curve (1,2,3);
+ stroke (3,4,.5,.01,.01);
+
+ labelpos(1,2,3,4,5);
+enddef;
+
+% K by Dikran Karagueuzian
+vardef char.K =
+ setwidth .65em;
+
+ pos1(1.1thickwidth,0); % the pen starts out slightly thick
+ pos2(1.1thickwidth,0); % the pen finishes with start thickness
+ pos3(0.8thinwidth,-75);
+ pos4(1.4thinwidth,0);
+ pos5(1.2thickwidth,0);
+
+ x1l=x2l=.1em;
+ x3r=x1r-.1thickwidth; %l edge of K
+ x4r=x5r=w-.1em; %r edges of K
+ y1=y4=capheight; %1 and 4 fully defined
+ y2=y5=0;
+ y3r=.5[y2,y1];
+ z7=.33[z3,z4];
+ pos7(0.9thickwidth,angle(z4-z3));
+ stroke(1,2,.4,.175,.085);
+ stroke(4,3,.3,.175,.085);
+ stroke(5,7,.3,.175,.085);
+ labelpos(1,2,3,4,5,7); % all positions should be listed
+enddef;
+
+% alternate K by Jim Bratnober
+vardef char.?=
+ setwidth .8em;
+ pos1(1.1thickwidth,10);
+ pos2(thickwidth,10);
+ pos3(1.4thickwidth,90);
+ pos4(1.6thickwidth,190);
+ pos5(1.1thickwidth,45);
+ pos6(1.3thickwidth,10);
+ z1=(.125w+.56thickwidth,capheight);
+ z2=(x1-.06thickwidth,0);
+ z3=.3[z2,z1];
+ z4=(x6-.7thickwidth,capheight);
+ z5=.5[z3,z4];
+ z6=(.875w-.7thickwidth,0);
+ stroke(1,2,.2,.05,.05);
+ stroke(4,3,.1,.1,.2);
+ stroke(6,5,.1,.1,.1);
+ labelpos(1,2,3,4,5,6);
+enddef;
+
+% L by Bruce Leban
+vardef char.L =
+ setwidth 0.6em;
+
+ bottomslant := 5; % how much slant at bottom of vertical stroke
+
+ x1l = 0.1em; % left margin
+ y1 = capheight;
+ pos1 (1.15thickwidth, 10); % semi-serif at top
+
+ x2 = x1; % more or less straight down
+ y2 = 0;
+ pos2 (1.05thickwidth, bottomslant);
+
+ dz3 = (cosd bottomslant, sind bottomslant);
+ z3l = 0.5[z2,z2r]; % bottom of strokes align
+ pos3 (thinwidth,90);
+
+ x4 = w-0.06em; % right margin
+ y4l = 0; % bottom of stroke is at baseline
+ pos4 (thickwidth, 85); % grows to thickwidth
+
+ stroke (1,2,.2,.15,.05); % slight taper on vertical stroke
+ stroke (3,4,.8,0,1-thinwidth/thickwidth);
+ % extreme taper on horizontal
+ % should change to compute based on thick-thin??
+ labelpos (1,2,3,4);
+enddef;
+
+% M by Kwang-Chun Park
+vardef char.M = %draw letter "M"
+
+ setwidth 0.7em;
+ pos1(thinwidth,0);
+ pos2(thinwidth,10);
+ pos3(1.1thickwidth,0);
+ pos4(1.1thickwidth,0);
+ pos5(thinwidth,0);
+ pos6(thinwidth,0);
+ pos7(1.1thickwidth,0);
+ pos8(1.1thickwidth,10);
+ y1=capheight; x1=x2;
+ z2l=(0.1em,0);
+ y3=capheight; z4=(0.5w,0);
+ x3l=x1;
+ y6=capheight; x5l=x4; y5=0;
+ x6r=x7; x7r=w - 0.1em;
+ y7=capheight;
+ y8=0; x8=x7;
+ stroke(1,2,0.3,0,0.1);
+ stroke(3,4,0.8,0,0.1);
+ stroke(5,6,0.2,0.1,0);
+ stroke(7,8,0.3,0.1,0);
+ labelpos(1,2,3,4,5,6,7,8);
+ % end of the fourth brush
+
+enddef;
+
+% N by Dave Siegel
+vardef char.N =
+begingroup
+save side_right, side_left, charwidth, slidex;
+
+side_right = .07em; %left sidebearing.
+side_left = .1em; %right sidebearing.
+
+charwidth = .5em; %width of character.
+
+slidex = .6thinwidth;
+
+ setwidth side_left + charwidth + side_right;
+
+
+ %DRAW THE LEFT VERTICAL STEM
+
+ pos1(1.05thickwidth,10);
+ pos2(1.15thickwidth,10);
+
+ x1l = side_left; y1 = capheight;
+ x2r = x1r; y2 = 0;
+
+ stroke(1,2,0.7,0.1,0.1);
+
+
+ %DRAW THE DIAGONAL STROKE
+
+ pos3(1.05thickwidth,20);
+
+ x3r = side_left + charwidth; y3 = y2;
+
+ stroke(1,3,.5,0.1,0.1);
+
+
+ %DRAW THE RIGHT VERTICAL STEM
+
+ pos4(1.2thickwidth,20);
+
+ x4l = x3l; y4 = y1;
+
+ stroke(4,3,.5,0.1,0.1);
+
+
+ %MARK LABELS
+
+ labelpos(1,2,3,4);
+endgroup
+enddef;
+
+% O by Bruce Fleischer
+vardef char.O =
+
+% the O is defined by four points, at roughly the top, bottom, left and right.
+%The positions of the thick and thin points are controlled by the pen widths at
+%these points, and by the angles. The simplest case has the pens pointing
+%vertically at the top and bot, and horizontally at the sides. To slant the
+%counter to the left a little, we tilt the top and bottom pens clockwise, and
+%the side pens ccw. This will also tend to tilt the outside shape of the 'O' to
+%right. To make it look more upright, we slide the top point a bit to the left,
+%and the bottom point a bit to the right.
+
+ setwidth .8em; %fairly wide - make it nice and round
+ ang:=80;
+ topwidth := thinwidth;
+ sidewidth := thickwidth;
+ topedge := .03 capheight;
+ sidebar := .07em;
+
+ % go clockwise -- r=outside, l=inside
+ % z1=top,z2=r,z3=b,z4=l
+
+ pos1(topwidth,ang);
+ pos2(sidewidth,90-ang);
+ pos3(topwidth,ang-180);
+ pos4(sidewidth,-90-ang);
+
+ y1r = capheight + topedge;
+ y3r = -topedge;
+ x2r = w - sidebar;
+ x4r = sidebar;
+
+ x1 = .48w; x3 = w-x1;
+ y2 = .5 capheight; y4 = capheight-y2;
+
+ dz1=-dz3=z2-z4;
+
+ curve(1,2,3); curve(3,4,1);
+
+ labelpos(1,2,3,4);
+enddef;
+
+% P by Ed Williams
+vardef char.P =
+setwidth .65em;
+pos1(thickwidth,0);
+pos2(1.05thickwidth,10);
+pos3(thinwidth,-90);
+pos4(.3[thinwidth,thickwidth],-105);
+pos5(.8[thinwidth, thickwidth],-140);
+pos6(thickwidth,180);
+pos7(.5[thickwidth,thinwidth],150);
+pos8(.2[thinwidth,thickwidth],115);
+pos9(thinwidth,90);
+z1l=(.1w,capheight);
+y3l=capheight;
+x3=x2r=x1r;y2=0;dz3=(1,.-.05);
+z9=(x3+.01em,.55xheight);dz9=(-1,-0.05);
+x6l=w-.15em;
+y6=.95xheight;dz6=(0,-1);
+x4=.5[x3,x6];y4l=.99capheight;
+x8=.5[x6,x9];y8=.05[y9,y6];
+x5=.7[x4,x6]; y5=.3[y4,y6];
+x7=.7[x8,x6]; y7=.3[y8,y6];
+
+stroke(1,2,.1,.1,0);
+stroke(3,4,.8,0,.1);
+curve(4,5,6); curve(6,7,8);
+stroke(8,9,.2,0,.05);
+
+labelpos(1,2,3,4,5,6,7,8,9);
+enddef;
+
+% Q by Neenie Billawala
+vardef char.Q=
+ setwidth.8em;
+ %numeric a; %numeric b;
+ pos1(.85thinwidth,90-10 ); dz1=(-1,0);
+ pos2(.5[thinwidth,thickwidth],135+10 );
+ pos3(1.13thickwidth,180+10 ); dz3=(0,-1);
+ pos4(.5[thickwidth,thinwidth],225-10 );
+ pos5(.85thinwidth,270-10 ); dz5=(1,0);
+ pos6(.5[thinwidth,thickwidth],315+10 );
+ pos7(1.13thickwidth,0+10 ); dz7=(0,1);
+ pos8(.5[thickwidth,thinwidth],45-10 );
+ x1=.5w; y1=capheight;
+ x2=.71[x1,x3]; y2=.71[y3,y1];
+ x3r=.08w; y3=.49capheight;
+ x4=.71[x3,x5]; y4=.71[y5,y3];
+ x5=w-x1; y5=0;
+ x6=.71[x5,x7]; y6=.71[y7,y5];
+ x7=w-x3; y7=capheight-y3;
+ x8=.71[x7,x1]; y8=.71[y1,y7];
+ curve(1,3,5);
+ curve(5,7,1);
+ %curve(1,2,3);
+ %curve(3,4,5);
+ %curve(5,6,7);
+ %curve(7,8,1);
+ labelpos(1,2,3,4,5,6,7,8);
+
+ pos9(.7thickwidth,60);
+ pos10(.85thinwidth,90); %dz10=(z12-z9);
+ pos11(.8[thinwidth,thickwidth],60);
+ pos12(1.05thickwidth,60);
+ pos13(thickwidth,60);
+ x9l=x3l; y9r=y5r;
+ z10=(x5-.05w,y5);
+ x11r=.5[x12,x10]; y11l=.5[y12l,y10l];
+ x12r=.97w; y12r=y10l;
+ z12=z13r;
+ %curve(9,10,11);
+ %stroke(10,13,.9,.1,0);
+ dz9=(1,.4);
+ %dz10=(1,0);
+ dz12=(1,.7);
+ curve(9,10,12);
+ labelpos(9,10,11,12,13);
+
+enddef;
+
+% R by Renata Byl
+vardef char.R =
+ setwidth .75em;
+ pos1(1.1thickwidth,10);
+ pos2(1.05thickwidth,10);
+ x1=.15em;
+ y1=capheight;
+ x2=.15em;
+ y2=0;
+ pos3(thickwidth,90);
+ pos4(thickwidth,75);
+ pos5(.5[thickwidth,thinwidth],40);
+ pos6(.5[thickwidth,thinwidth],0);
+ pos7(.5[thickwidth,thinwidth],320);
+ pos8(thinwidth,285);
+ pos9(thinwidth,270);
+ x3r=x9=x1;
+ y3r=capheight;
+
+ x4r=x8r=.3em;
+ y4=.95capheight;
+ dz4=(1,0);
+
+ x5=.71[x4,x6];
+ y5=.71[y6,y4];
+ dz5=(1,-1);
+
+ x6r=.45em;
+ y6=.80capheight;
+ dz6=(0,-1);
+
+ x7=.71[x8,x6];
+ y7=.71[y6,y8];
+ dz7=(-1,-1);
+
+ y8=.60capheight;
+ dz8=(-1,0);
+
+ y9=.58capheight;
+
+ pos10(1.05thinwidth,45);
+ pos11(1.2thickwidth,10);
+ x10=.2em;
+ y10=.59capheight;
+ x11=.47em;
+ y11=.02capheight;
+
+ stroke(1,2,.1,.2,0);
+ stroke(3,4,0,0,0);
+ curve(4,5,6);
+ curve(6,7,8);
+ stroke(8,9,0,0,0);
+ stroke(10,11,.9,0,.2);
+ labelpos(1,2,3,4,5,6,7,8,9,10,11);
+enddef;
+
+% S by pinch-hitter Joey Tuttle
+%
+%
+% Don,
+% If you look at this, please don't pay too much attention to it...
+% As it turns out, after dredging up a copy of font1base, the version
+% Metafont available (-87) doesn't execute test. functions -- so I have
+% been totally unable to look at the S and I've no idea whether my
+% "tricks" will make anything other than a big mess!!
+%
+% I'll try to get back in tomorrow to see if someone has fixed things up.
+%
+% Joey
+%1984-5-26 21:50:00
+%
+%1984-5-27 20:30:00 -- Situation unchanged. We'll keep trying....
+%1984-5-29 00:20:00 -- Finally - as I expected, it was a mess... However,
+% I'll at least get something that I'm not too ashamed of.
+%
+%1984-5-29 01:05:00 -- OK, it's not perfect (especially the bold) but
+% I'm happy. (and It's too late)
+%
+vardef char.S =
+ setwidth .56em;
+ x2=.5[x4r,x5r]; y1=.54[0,capheight]; % the center of S
+ x3=x1=w/2; % top and bottom also at center
+ y3r=1.05capheight; y2l=-.05capheight; % centers slightly extended
+ x4l=.1w; y4=.6[y1,0]; % lower left
+ x5r=.9w; y5=.6[y1,capheight]; % upper right
+ x6l=x5r; y6=y4; % center of lower curve
+ x7r=x4; y7=y5; % center of top curve
+% This character goes 5..3..7..1..6..2..4 (top to bottom)
+ pos5(1.3thinwidth,45); pos3(.7thinwidth,90);
+ pos7(1.2thinwidth,180); pos1(1.1thickwidth,270);
+ pos6(1.2thinwidth,180); pos2(.7thinwidth,90);
+ pos4(1.3thinwidth,45);
+ dz3=(-1,0);dz7=(0,-1);
+ dz1=(3,-2); % this one is important!
+ dz6=(0,-1);dz2=(-1,0);
+ curve(5,3,7); curve(7,1,6); curve(6,2,4);
+ labelpos(1,2,3,4,5,6,7);
+enddef;
+
+% T by Tuan Pham
+vardef char.T=
+setwidth .75em;
+pos1(1.5thickwidth,45);
+pos2(1.2thickwidth,60);
+pos3(1.2thickwidth,0);
+pos4(1.1thickwidth,10);
+x1=0.125em; x2=w-0.125em;
+y1=y2=capheight-0.5thickwidth;
+x3=x4=0.5w; y3=capheight-0.5thickwidth;
+y4=0;
+stroke (1,2,.2,.3,.2);
+stroke (3,4,.6,.3,.2);
+labelpos(1,2,3,4);
+enddef;
+
+% alternate T by Theresa-Marie Rhyne
+vardef char.exclamation=
+ charcode:=ASCII"!";
+ setwidth .75em;
+ pos1(1.5thickwidth,10);
+ pos2(1.1thickwidth,45);
+ pos3(1.1thickwidth,45);
+ pos4(1.1thickwidth,45);
+ z1=(.5w,0);%y1=0;
+ y2r=capheight; x1r=x2r;
+ y3r=y4r=capheight; x3r=w-x4r=.1em;
+ stroke(1,2,.2,.05,.05);
+ stroke(3,4,.2,.05,.05);
+ labelpos(1,2,3,4);
+enddef;
+
+% U by Don Knuth
+vardef char.U =
+ setwidth .75em;
+ pos1(1.1thickwidth,10);
+ pos2(thickwidth,10);
+ pos3(thickwidth,40);
+ pos4(.5[thickwidth,thinwidth],75);
+ pos5(.9[thickwidth,thinwidth],130);
+ pos6(thinwidth,180);
+ pos7(1.1thinwidth,190);
+ x1l=.1em; x7l=w-.1em;
+ y1=y7=capheight;
+ x2=x1; y2=.3capheight; dz2=(0,-1);
+ x3=.75[x4,x2]; y3=.75[y2,y4];
+ x4r=.5[x2r,x6r]; y4l=-.05capheight; dz4=(1,0);
+ x5=.71[x4,x6]; y5=.71[y6,y4];
+ x6=x7; y6=1/3capheight; dz6=(0,1);
+ stroke(1,2,.2,.05,.05);
+ curve(2,3,4); curve(4,5,6);
+ stroke(6,7,.8,.05,.05);
+ labelpos(1,2,3,4,5,6,7);
+enddef;
+
+% V by Kanchi Gopinath
+vardef char.V=
+ setwidth .75em;
+
+ pos1(1.6thickwidth,10);
+ pos2(1.5thickwidth,65);
+ pos3(thinwidth,0);
+ pos4(1.1thinwidth,10);
+
+ x1l=.1em;
+ x4l=w-.1em;
+ y1=y4=capheight;
+
+ y2l=0;
+ x2l=w/2;
+
+ x3l=x2l;
+ y3l=y2l;
+
+ stroke(1,2,.1,.4,.1);
+ stroke(4,3,.1,.4,.1);
+ stroke(2,3,0,0,0);
+ labelpos(1,2,3,4);
+enddef;
+
+% W by Stan Osborne
+vardef char.W =
+ setwidth .9em; % set up our char width and variables
+
+ pos1(2thickwidth,-30); % position upper left vector vec(1)
+ y1 = capheight; % don't set height as tall as an "h"
+ x1l = .02w; % all the way to the left
+
+ pos2(1.0thickwidth,-4); % position lower left vector vec(2)
+ z2 = (0.325w,0); % at baseline, center is at .3w
+
+ stroke(1,2,.3,.2,.1); % left most stroke
+
+ pos3(.5[2thickwidth,2thinwidth],-88);% position middle vector vec(3)
+ z3l = (0.51w,1.07xheight); % in the middle, top as high as "x"
+
+ stroke(2,3,.4,.2,0); % center left stroke
+
+ pos4(.5[2thickwidth,2thinwidth],92);% position other middle vector vec(4)
+ z4r = z3l; % vec(4) is a 180 of vec(3)
+ z4l = z3r; %
+
+ pos5(1.0thickwidth,0); % position lower left vector vec(5)
+ z5 = (0.70w,0); % at baseline, ceter is at .7w
+
+ stroke(4,5,.6,0,.1); % center right stroke
+
+ pos6(1.5thickwidth,30); % position upper right vector vec(6)
+ y6 = capheight; % don't set height as tall as an "h"
+ x6r = 1.0w; % all the way to the right
+
+ stroke(5,6,.7,.1,.2); % right most stroke
+
+ labelpos(1,2,3,4,5,6); % label the vectors (1,2,3,4,5, and 6)
+
+enddef;
+
+% X by Alan Spragens
+vardef char.X =
+setwidth .8em;
+pos1(1.5 thickwidth,10);
+pos2(1.8 thickwidth,10);
+pos3(1.5 thinwidth,10);
+pos4(1.8 thinwidth,10);
+y1=capheight;
+x1l=.1em;
+x4r=w-.1em;
+y4=capheight;
+y3=0;
+y2=0;
+x3=x1;
+x2=x4;
+stroke(1,2,.1,.1,.3);
+stroke(3,4,.9,.2,0);
+labelpos(1,2,3,4);
+enddef;
+
+% Y by Arnie Olds
+vardef char.Y = setwidth .75em; pos1(1.2thickwidth,10);
+pos2(1.1thickwidth,10); pos3(2thinwidth,10);
+pos4(thinwidth,-5); pos5(1.5thickwidth,10);
+x2=.5w; x1r=x2r; z4r=z2r; x3r=w-.05em; x5l=.03em;
+y1=0; y2r=.75xheight; y3=y5=capheight; stroke(1,2,.3,.1,0);
+stroke(3,4,.1,.1,0); stroke(5,2,.1,.1,0); labelpos(1,2,3,4,5);
+enddef;
+
+% Z by Malcolm Brown
+% This `Z' uses the Helvetica Z as its basis.
+% It also departs from the Helvetica design in the
+% hopes of creating a more interesting letter.
+%
+vardef char.Z =
+ setwidth .8em; % same proportion as in Helvetica
+ pos1(1.5thickwidth,75); % stroke 1 goes from 1 to 2
+ pos2(.6thickwidth,90); % (top horizontal stroke)
+%
+ pos3(1.5thickwidth,-10); % stroke 2 goes from 3 to 4
+ pos4(1.5thickwidth,-10); % (diagonal stroke)
+%
+ pos5(.65thickwidth,90); % stroke 3 goes from 5 to 6
+ pos6(1.5thickwidth,75); % (bottom horizontal)
+%
+ x1=.125w; % determing position 1
+ y1r = capheight;
+%
+ x2=w - x1; % determines position 2
+ y2r = capheight;
+%
+ x3r=x2l; % positions 2 and 3 share a point
+ y3r=y2l;
+%
+ x4l=x5r; % positions 4 and 5 share a point
+ y4l=y5r;
+%
+ x5=.5x1; % determines 5
+ y5l=0;
+%
+ x6=w-x5; % determines 6
+ y6l=0;
+% %
+ stroke(1,2,.3,.6,0); % top horizontal stroke
+ stroke(5,6,.7,0,.6); % bottom horizontal stroke
+ stroke(3,4,0,0,0); % diagonal stroke
+%
+ labelpos(1,2,3,4,5,6);
+enddef;
+
+% a by Ann Lasko-Harvill
+vardef char.a=setwidth .5em;% NOTE TO GRADER: THIS ISN'T AS
+ pos1(1.1thickwidth,10);% FINISHED AS I WOULD LIKE IT.
+ x1l=.12em;
+ y1l=.75xheight;
+ dz1=(0.2,1);
+ pos2(.5[1.1thickwidth,.75thinwidth],-30);
+ x2=.24[x1,x3];
+ y2=.76[y1,y3];
+% dz2=(1,1);
+ pos3(.75thinwidth,-90);
+ x3=.27em;
+ y3=xheight;
+ dz3=(1,0);
+ pos4(.25[thickwidth,.75thinwidth],-155);
+ x4l=.75[x3l,x5l];
+ y4l=.75[y5l,y3l];
+ dz4=(1,-1);
+ pos5(thickwidth,-180);
+ x5=.42em;
+ y5=y1;
+ dz5=(0,-1);
+
+ pos6(thickwidth,-180);
+ x6=x5;
+ y6=y7l;
+ dz6=(0,-1);
+ pos7(1.2thickwidth,-135);
+ x7l=x6l;
+ y7r=0;
+ dz7=(1,-1);
+ pos8(1.5thickwidth,-135);
+ x8r=x6l;
+ y8l=y6;
+ dz8=(1,0);
+ pos9(thinwidth,-90);
+ x9=x5r+1;
+ y9=.65xheight;
+ dz9=(-1,-.05);
+ pos10(.5[thickwidth,thinwidth],-45);
+ x10=.2[x11,x9];
+ y10=.2[y9,y11];
+ dz10=(-1,-1);
+ pos11(thickwidth,0);
+ x11=.5[x1l,x1];
+ y11=.45[y10,y12];
+ dz11=(0,-1);
+ pos12(.35[thickwidth, thinwidth],55);
+ x12=.4[x11,x13];
+ y12l=-.01;
+ dz12=(1,0);
+ pos13(thinwidth,90);
+ x13=x6r+1;
+ y13=y6;
+ dz13=(1,1);
+ curve(1,2,3);curve(3,4,5);
+ stroke(5,6,.5,0,.05);curve(6,7,8);
+ curve(9,10,11);curve(11,12,13);
+ labelpos(1,2,3,4,5,13,6,7,8,9,10,11,12);
+enddef;
+
+% b by Dave Siegel
+vardef char.b =
+begingroup
+save side_right, side_left, charwidth, slidex;
+save zero_width, thinner_width, half_width, corner_width;
+
+side_right = .07em; %left sidebearing.
+side_left = .1em; %right sidebearing.
+
+charwidth = .4em; %width of character.
+
+
+
+zero_width = .01thinwidth;
+thinner_width = .6thinwidth;
+half_width = .9thinwidth;
+corner_width = .6[thinwidth,thickwidth];
+
+slidex = .6thinwidth;
+
+
+ setwidth side_left + charwidth + side_right;
+
+ %DEFINE HEADINGS AT ALL POINTS ON CURVES
+
+ dz3 = (0,-1);
+ dz4 = (1,-1);
+ dz5 = (1,0);
+ dz6 = (1,1);
+ dz7 = (0,1);
+ dz8 = (-1,1);
+ dz9 = (-1,0);
+ dz10 = (-1,-1);
+ dz11 = (0,-1);
+
+ %DEFINE PEN RELATIONSHIPS FOR BOTH STROKES
+
+ pos1(1.5thickwidth,45);
+ pos2(1.05thickwidth,10);
+ pos3(zero_width,0);
+ pos4(thinner_width,45);
+ pos5(.9half_width,90);
+ pos6(corner_width,150);
+ pos7(thickwidth,180);
+ pos8(.9corner_width,225);
+ pos9(half_width,270);
+ pos10(thinner_width,315);
+ pos11(zero_width,0);
+
+ %DEFINE COORDINATES
+ x1r = x2r; y1 = hheight;
+ x2l = side_left; y2 = 0;
+ x3 = x2 + slidex + .2slidex;y3 = .32xheight;
+ x4 = .22[x3,x5]; y4 = .28[y5,y3];
+ x5l = .4[x3,x7]; y5 = y2r;
+ x6 = .65[x5,x7]; y6 = .18[y5,y7];
+ x7r = charwidth + slidex; y7 = .5[y5,y9];
+ x8 = .65[x9,x7]; y8 = .18[y9,y7];
+ x9 = .45[x3,x7]; y9 = .98[0,xheight];
+ x10 = .3[x11,x9]; y10 = .2[y9,y11];
+ x11 = x3; y11 = .5xheight;
+
+
+ %DRAW STEM
+
+ stroke(1,2,0.1,0.2,0);
+
+ %DRAW BOWL
+
+ curve(3,4,5);
+ curve(5,6,7);
+ curve(7,8,9);
+ curve(9,10,11);
+ curve(11,3,3);
+
+ %MARK LABELS
+
+ labelpos(1,2,3,4,5,6,7,8,9,10,11);
+endgroup
+enddef;
+
+% c by Alan Spragens
+vardef char.c =
+setwidth .5em;
+pos1(thickwidth,90);
+pos2(.8[thickwidth,thinwidth],90);
+pos3(1.1 thickwidth,180);
+pos4(.2[thickwidth,thinwidth],220);
+pos5(1.1thickwidth,260);
+z1=(w-.075em,.85 xheight);
+z2=(.5w,xheight);
+y3=.5 xheight;
+x3l=.1em;
+x4=.5w;
+y4=0;
+x5=w-.05em;
+y5=.2xheight;
+dz2=(-1,0);dz3=(0,-1);dz4=(1,0);
+curve(1,2,3);curve(3,4,5);
+labelpos(1,2,3,4,5);
+enddef;
+
+% d by Jean-Luc Bonnetain
+vardef char.d =
+ setwidth .6em;
+ pos1(1.5[thinwidth,thickwidth],45); % top of stem
+ pos2(.7[thinwidth,thickwidth],10); % bottom of stem
+ pos3(.9(thinwidth/(thickwidth - thinwidth))[thinwidth,thickwidth],90);
+ % junction upper part of bowl / stem
+ % this is a trick here, to make sure that the junction does not
+ % become too black with bold versions.
+% but actually the formula gives 1.9thinwidth in all cases!
+ % in the normal version, thindwidth/(thickwidth-thinwidth) = 11/4
+ % while in the bolder version the value is 14/10 < 11/4
+ % this way the width of the curve when it joins the stem will
+ % be relatively smaller in bold version (less far of the way from
+ % thinwidth and thickwidth).
+ % there is a small problem due to the digitization process here:
+ % in the small size / 3 together test, the bold extended version
+ % has its stem widened just after the upper junction of the bowl
+ % and the stem, which creates an ugly white recess (this does not
+ % appear in the large size tests). Since this depends on the size
+ % on the letter and on the digitizing algorithm, a solution for
+ % one size will look terrible at another one, so i haven't tried
+ % to fix that problem (i don't know what will happen in the actual
+ % size that will be used for typesetting text with font1(version
+ % -1000) ).
+
+ pos4(.8[thinwidth,thickwidth],90); % uppermost pt upper part bowl
+ pos5(thickwidth,180); % leftmost pt of bowl
+ pos6(.8[thinwidth,thickwidth],270); % lowermost pt bottom part bowl
+ pos7(.4(thinwidth/(thickwidth - thinwidth))[thinwidth,thickwidth],270);
+ % junction lower part of bowl / stem
+
+ x1r = x2r ; y1 = hheight;
+ z2r = (w - .1em , 0);
+ x3 = x2l + .05w; y3 = 7.55/10y4 ;
+ x4 = x6 = 1/2[x2,x5] ; y4 = xheight;
+ x5r = .1em; y5 = 1/2y4;
+ y6r = -.02capheight;
+ x7 = x2l + .02w; y7 = 3/10y4;
+
+ dz3 = (-1,50); % avoids possible loop at z3l
+ dz4 = (-1,0);
+ dz5 = (0,-1);
+ dz6 = (1,0);
+
+ stroke(1,2,.1,.2,0);
+ curve(3,4,5);
+ curve(5,6,7);
+
+ labelpos(1,2,3,4,5,6,7);
+
+enddef;
+
+% e by Dan Mills
+vardef char.e =
+ begingroup
+% charcd := 'e;
+ save glyphwidth,lsb,rsb,cuthru;
+ numeric glyphwidth,lsb,rsb,cuthru;
+
+ glyphwidth = .45em;
+ lsb = rsb = .2glyphwidth;
+ cuthru = .02xheight;
+ setwidth( lsb+glyphwidth+rsb );
+
+% positions:
+ pos1(thinwidth,-90);
+ pos2(.1[thinwidth,thickwidth],-100);
+ pos3(thickwidth,-180);
+ pos4(thinwidth,-270);
+ % 5 is special
+ pos6(thinwidth,-90);
+
+% coordinates:
+ x1 = lsb + .97glyphwidth; y1 = .2xheight;
+ x2 = lsb + .55glyphwidth; y2r = -cuthru;
+ x3r = lsb; y3 = y6;
+ x4 = lsb + .5glyphwidth; y4r = xheight + cuthru;
+ % 5 is special
+ x6 = x3; y6 = .52 xheight;
+
+% specials:
+ x5r = lsb + glyphwidth; y5r = y6r;
+ x5l = x5r - thickwidth; y5l = y6l;
+ x5 = .5[x5l,x5r]; y5 = .5[y5l,y5r];
+
+ dz1 = z2 - z1 + (0,1.5(y2-y1));
+ dz2 = (-1,0);
+ dz3 = (0,1);
+ dz4 = (1,0);
+
+% draw straights:
+ stroke(5,6,0,0,0);
+
+% add a slope for the curves:
+ dz5 = .999[(z5-z4),(0,-1)];
+
+% draw curves:
+ curve(1,2,3);
+ curve(3,4,5);
+
+ labelpos(1,2,3,4,5,6);
+ endgroup;
+enddef;
+
+% f by Malcolm Brown
+vardef char.f =
+ setwidth .35em; % roughly the same as Helvetica f
+ pos1(1.05thickwidth,190); % R's start on the left!
+ pos2(.15[thickwidth,thinwidth],180);
+%
+ pos5(.80[thickwidth,thinwidth],95);
+ pos7(.75[thickwidth,thinwidth],45);
+%
+ pos8(1.1thinwidth,80); % stroke 8 to 9 is the crossbar
+ pos9(thinwidth,80);
+%
+ y1=0; % determines 1
+ x1=.35w;
+%
+ x2=x1; % determines 2
+ y2=xheight;
+ dz2=(0,1); % heading north
+%
+ y5=.33[hheight,capheight];
+ x5=.2[x2,x7];
+%
+ y7=.125[capheight,xheight];
+ x7=.82w;
+%
+% Crossbar
+%
+ y8r=xheight; % determines 8
+ x8=.33[0,x2r];
+%
+ y9r=xheight; % determines 9
+ x9=w-1.67x8;
+%
+ stroke(1,2,0,0,0);
+ curve(2,5,7);
+ stroke(8,9,0,0,0);
+%
+ labelpos(1,2,5,7,8,9);
+enddef;
+
+% g by Bruce Leban
+
+def down = (0,-1) enddef;
+def up = (0,1) enddef;
+def right = (1,0) enddef;
+def left = (-1,0) enddef;
+vardef circle@# (expr xc,yc,xrad,yrad,adjustpen,tilt,pentilt) =
+
+ z[@#] = (xc,yc);
+ z[@#+1] = (xc+xrad*cosd (180-tilt), yc+yrad*sind (180-tilt));
+ z[@#+2] = (xc+xrad*cosd (90-tilt), yc+yrad*sind (90-tilt));
+ z[@#+3] = (xc+xrad*cosd (0-tilt), yc+yrad*sind (0-tilt));
+ z[@#+4] = (xc+xrad*cosd (-90-tilt), yc+yrad*sind (-90-tilt));
+
+ dz[@#+1] = z[@#+2] - z[@#+4];
+ dz[@#+3] = z[@#+4] - z[@#+2];
+
+ pos[@#+1] (adjustpen*thinwidth, 180-tilt+pentilt);
+ pos[@#+2] (adjustpen*thickwidth, 90-tilt-pentilt);
+ pos[@#+3] (adjustpen*thinwidth, 0-tilt+pentilt);
+ pos[@#+4] (adjustpen*thickwidth,-90-tilt-pentilt);
+
+ curve ([@#+1],[@#+2],[@#+3]);
+ curve ([@#+3],[@#+4],[@#+1]);
+enddef;
+
+vardef char.g =
+ setwidth 0.5em;
+
+ pentilt := 20; % degree of "tilt" for pens
+
+ circle10 (
+ .47w,.55xheight, % center of circle
+ (w - 0.22em)/2, % "radius" in x direction
+ .4xheight, % and y direction
+ 1, % pen width multiplier
+ 0, % don't rotate control points
+ pentilt
+ );
+
+ xadjust := 1/3thinwidth; % move the down stroke over xadjust
+
+ % top of downstroke
+ x2r = x13r + xadjust;
+ y2 = xheight;
+ pos2 (1.2thickwidth, 45);
+
+ % bottom of down stroke and right side of descender
+ x3r = x2r; % position below pen 2
+ y3 = .10xheight; % just above base line
+ pos3 (.5[thinwidth,thickwidth],pentilt);
+
+ dz3 = down; % going down at this point
+
+ % bottom of descender
+ x4 = .65[x5,x3]; % closer to right side of g
+ y4r = -ydepth; % positioned at -ydepth
+ pos4 (thinwidth,-90+pentilt);
+
+ % left side of descender
+ x5r = x11r; % x5r and x11r are really on left side
+ y5 = .8[-ydepth,0]; % ends below base line
+ pos5 (thickwidth,180+pentilt);
+
+ stroke (2,3,0.5,0.5,0);
+
+ curve (3,4,5);
+
+ labelpos (2,3,4,5,10,11,12,13,14);
+enddef;
+
+% I had hoped to do a tradional style g, but I didn't have enough time.
+%
+% vardef char.var.g = etc
+
+% h by Arnie Olds
+vardef char.h = setwidth .6em; pos1(1.5thickwidth,45);
+pos2(1.05thickwidth,10); x2l=.1em; x8l=w-.1em;
+x1=x2; x3r=x2r; x7=x8; y1=hheight; y2=0; y8=0; y3=.55xheight;
+y7=.7xheight; pos3(.8thinwidth,-45);
+pos4(thinwidth,-55);
+pos5(.25[thickwidth,thinwidth],-110); pos6(thickwidth,-150);
+pos7(thickwidth,-170); pos8(1.05thickwidth,-170);
+x5=.75[x3,x7]; y5l=1.05xheight; x4=.5[x3,x5]; y4=.85[y3,y5];
+x6=.75[x5,x7]; y6=.33[y5,y7]; stroke(1,2,.1,.2,0);
+curve(3,4,5); curve(5,6,7); dz3=(0,1); dz7=(0,-1);
+dz5=(1,0); stroke(7,8,.3,0,.1); labelpos(1,2,3,4,5,6,7,8); enddef;
+
+% i by Bruce Fleischer
+vardef char.i =
+ setwidth 1/3em; %same width as 'l'
+ botangle:=10; %same angle at bottom of stroke
+ pos1(1.15thickwidth, botangle); %stroke of 'i' very much like 'l',
+ pos2(1.05thickwidth, botangle); %only top has same angle as bottom
+ z2=(.5w,0);
+ y1=xheight;
+ x1r=x2r;
+ stroke(1, 2, .2, .2, 0);
+
+ pos3(1.15thickwidth, botangle); %top and bottom of dot are parallel to
+ pos4(1.15thickwidth, botangle); %and same length as top of stroke
+ .4[x3r,x4r] = x2r; %keep dot from falling off to the left
+ x3r=x4r-.07(hheight-xheight); %slant sides of dot
+ y4=.25[xheight,hheight]; %space dot between xheight and hheight
+ y3=.55[xheight,hheight];
+ stroke(3,4, 0, 0, 0); %make it a parallelogram
+
+ labelpos(1,2,3,4);
+enddef;
+
+% j by John Hershberger
+vardef char.j =
+
+lspace := .08em; % How much space at left of j; adjust to look right
+jwidth := .34em + lspace; % Total width of character and whitespace
+lcurve := .71; % Fairly round curve at end of bottom loop
+rcurve := .73; % Squarish round curve at start of bottom loop
+
+% Dot parameters should be coordinated with 'i' dot.
+dotdy := .4*(hheight-xheight); % Height of dot
+dotwidth := 1.3thickwidth; % Width of dot
+lswell := -.1; % Reverse taper for left of dot
+rswell := -.05; % Reverse taper for right of dot
+eps := -.3rswell*thickwidth; % Amount to move dot left to make it look
+ % more centered. Try to make right side of
+ % j's vertical stroke ~ bisect dot's swell.
+ % We're at the level of single pixels, so it's
+ % hard to make it right.
+
+setwidth jwidth;
+pos1( 1.5thickwidth, 45 ); % As in 'l'
+pos2( thickwidth, 10 );
+pos3( .7[thinwidth, thickwidth], -35 );
+pos4( .3[thinwidth, thickwidth], -80 );
+pos5( .15[thinwidth, thickwidth], -120 );
+pos6( thinwidth, -135 ); % No slight flare at the end of j stroke
+ % Slope matches top of j stroke--unimportant?
+y1=xheight; x1r = w-.1em; % Right side straight and .1 em in.
+ % It would be tempting to put the top of the
+ % stroke a little bit to the left so that the
+ % "j" doesn't look like it's falling over
+ % backward. (See next line.)
+fudge:= .005em; % This was originally used to move the bottom
+ % of the stroke right to achieve an equivalent
+ % effect. Setting fudge to .005em works fairly
+ % nicely, except that the pixel-jagged right
+ % edge of the
+ % stroke is then a little disconcerting.
+x2r=x1r+fudge; y2r = .3[-ydepth,xheight]; % Top of curve
+dz2=(0,-1); % Heading down
+x3= rcurve[x4,x2]; y3 = rcurve[y2,y4]; % See below
+y4r=-ydepth -.05capheight; x4l= .5[x6l,x2l];
+ % Inside of curve is flat in center
+dz4=(-1,0); % Heading left
+x5 = lcurve[x4,x6]; y5 = lcurve[y6,y4];
+x6r = lspace; y6l = .8[-ydepth, y2r]; % Pen is flipped, curve ends just
+ % below where it starts on other side.
+
+% Dot definition
+x7r = x1r-eps; y7 = y1+ 1.7dotdy ; % Start 1.7dotdy above j-stroke
+x8r = x7r-eps; y8 = y7 - dotdy; % And come down dotdy.
+pos7( dotwidth, 45 ); % Same slope as top of stroke
+pos8( dotwidth, 45 ); % Same slope as top of stroke
+
+% Draw the thing
+stroke( 1, 2, .1, .2, 0 ); % To match top of 'l'
+curve(2,3,4); curve(4,5,6);
+
+stroke( 7, 8, .5, lswell, rswell); % Swell out a little on the dot
+
+labelpos( 1,2,3,4,5,6,7,8 );
+enddef;
+
+% k by Renata Byl
+vardef char.k =
+ setwidth .6em;
+ pos1(1.5thickwidth,45);
+ pos2(1.05thickwidth,10);
+ z2=(.1667em,0);
+ y1=hheight; x1r=x2r;
+ pos3(1.5thickwidth,90);
+ pos4(1.05thickwidth,90);
+ y3=.5hheight;
+ y4=.75hheight;
+ z3=(x2r,y3);
+ z4=(.45em,y4);
+ pos5(1.00thickwidth,45);
+ pos6(1.05thickwidth,10);
+ y5=.5hheight;
+ y6=.02capheight;
+ z5=(.25em,y5);
+ z6=(.45em,y6);
+
+ stroke(1,2,.1,.2,0);
+ stroke(3,4,.9,0,.2);
+ stroke(5,6,.9,.2,0);
+ labelpos(1,2,3,4,5,6);
+enddef;
+
+% l by Don Knuth
+vardef char.l =
+ setwidth 1/3em;
+ pos1(1.5thickwidth,45);
+ pos2(1.05thickwidth,10);
+ z2=(.5w,0);
+ y1=hheight; x1r=x2r;
+ stroke(1,2,.1,.2,0);
+ labelpos(1,2);
+enddef;
+
+% m by Jim Bratnober
+vardef char.m =
+%offset:=(.3333em-thickwidth)/2;
+ offset:=(.3em-thickwidth)/2;
+%setwidth 1em+2offset;
+ setwidth .95em;
+ chwid:=w-2offset;
+ pos1(1.5thickwidth,45); % upper left nub
+ pos2(.9thickwidth,10); % moving down the left vertical
+ pos3(1.05thickwidth,10); % at the bottom
+ pos4(.9[thickwidth,thinwidth],-50); % left hump
+ pos5(.5[thickwidth,thinwidth],-105);
+ pos6(thickwidth,-140);
+ pos7(thickwidth,-170); % middle vertical, top
+ pos8(thickwidth,10); % duplicate since directions of pen differ
+ pos9(1.1thickwidth,-170); % bottom
+ pos10(.9[thickwidth,thinwidth],-50); % right hump
+ pos11(.5[thickwidth,thinwidth],-105);
+ pos12(thickwidth,-140);
+ pos13(thickwidth,-170); % top of right vertical
+ pos14(1.05thickwidth,-170); % bottom
+
+numeric xxheight;
+ y1=1.02xheight;
+ x1r=x2r=x3r=offset+thickwidth;
+ y2=.55xxheight;
+ dz2=(0,1);
+ y3=0;
+ x4=x2+.054chwid;
+ y4=.95xxheight;
+ z5=(.287chwid+offset,1.05xxheight); dz5=(1,0); y5l=1.03xheight;
+ z6=(.46chwid+offset,y4);
+ humpwid:=(chwid-(x3r-x3l))/2;
+ z7=(x9,y2+.1xxheight); dz7=(0,-1);
+ x9l=x3r+humpwid;
+ y9=0;
+ z8=z7; dz8=(0,1);
+% Note: instead of humpwid, better to say `x9l-x3r=x14l-x9l; x14l-x3l=chwid'!
+ z10=(x7+x4-x2,y4);
+ z11=(x7+x5-x2,y5); dz11=(1,0);
+ z12=(x7+x6-x2,y4);
+ z13=(x14,y2+.1xxheight); dz13=(0,-1);
+ x14l=x9l+humpwid;
+ y14=0;
+
+ stroke(1,3,.1,.3,0);
+ curve(2,4,5);
+ curve(5,6,7);
+ stroke(7,9,0,0,0);
+ curve(8,10,11);
+ curve(11,12,13);
+ stroke(13,14,0,0,0);
+ labelpos(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+enddef;
+
+% n by Lynn Ruggles
+vardef char.n = % character 'n'
+ setwidth .6em; % width is slightly larger than 1/2 em
+ x1=.25w; y1=xheight;
+ pos1(2thickwidth,0); % pen is thick and 0 degree angle
+
+ x2=.3w; y2=y1;
+ pos2(thickwidth,15); % pen is thick and 15 degree angle
+
+ pos3(1.2thickwidth,0); % ditto
+ x3=.3w; y3=0;
+
+ x4=x3; y4=2/3xheight-thinwidth;
+ pos4(thickwidth,75);
+ dz4=(10,11);
+
+ x5=.6w; y5=xheight-.5thinwidth;
+ pos5(thickwidth,60);
+ dz5=(1,0);
+
+ x6=.8w; y6=y4;
+ pos6(1.1thickwidth,30);
+ dz6=(0,-1);
+
+ pos7(1.5thickwidth,0);
+ x7=.85w; y7=y3;
+
+% stroke (1,2,.2,0,.30;
+ stroke (1,3,.2,.8,0);
+ curve (4,5,6);
+ stroke (6,7,.7,0,.5);
+ labelpos(1,2,3,4,5,6,7);
+enddef;
+
+% o by Stan Osborne
+vardef char.o =
+ setwidth .6em; % make the "o" 60% of an em
+numeric mythin,mymid[],mythick;
+ mythin = thinwidth;
+ mymid1 = .27[thinwidth,thickwidth];
+ mymid2 = .75[thinwidth,thickwidth];
+ mythick = thickwidth;
+
+ pos1(mythin,-92); % vertical and thin for vec(1)
+ z1l = (.5w,1.05xheight); % in the middle and top at xheight
+
+ pos2(mymid1,-48); % getting flatter for vec(2)
+ x2l = .27w; % moved over to the left
+ y2l = .91y1l; % it is near xheight
+
+ pos3(mythick,0); % flat and thicker for vec(3)
+ z3 = (.22w,.65y1l); % moved to the left and down
+
+ curve(1,2,3); % draw the upper left curve
+
+ pos4(mythick,0); % same as vec(3) for vec(4)
+ z4 = (x3,.35[y6l,y1l]); % symetrical with z3
+y6l=-.05xheight;
+ stroke(3,4,.5,-.1,.1); % left center stroke
+
+ pos5(mymid1,45); % lifting up for vec(5)
+ x5l = x2l; % moved over to the right
+ y5l-y6l = y1l-y2l; % it is near the bottom
+
+ pos6(mythin,88); % vertical and thin for vec(6)
+ z6l = (.5w,-.05xheight); % in the middle and bottom at baseline
+dz6=(1,0);
+ curve(4,5,6); % draw the lower left curve
+
+ pos7(mythin,-92); % vec(7) is a 180 of vec(6)
+ z7r = z6l; % must match with vec(6)
+
+ pos8(mymid1,-50); % lifting up for veck(8)
+ x8r = .97w-x5l; % mirror image of vec(5)
+ y8r = y5l; % same height
+
+ pos9(mymid2,0); % flat and thicker for vec(9)
+ z9 = (.97w-x3,y4); % mirror of vec(4)
+dz7=(1,0);
+ curve(7,8,9); % draw the lower right curve
+
+ pos10(mymid2,0); % same as vec(9)
+ z10 = (x9,y3); % mirror of vec(3)
+
+ stroke(9,10,.5,.1,-.1); % right center stroke
+
+ pos11(mymid1,48); % lifting up for vec(11)
+ x11r = x8r; % same as vec(8)
+ y11r = y2l; % same height as vec(2)
+
+ pos12(mythin,88); % vertical and thicker for vec(12)
+ x12r = x1l; % a 180 of vec(1)
+ y12r = y1l; % same height as vec(1)
+
+ curve(10,11,12); % draw the upper right curve
+
+ labelpos(1,2,3,4,5,6,7,8,9,10,11,12); % label the vectors
+
+enddef;
+
+% p by Theresa-Marie Rhyne
+vardef char.p=
+ setwidth .55em;
+ pos1(1.5thickwidth,45);
+ pos2(1.05thickwidth,10);
+ pos3(.9thinwidth,80);
+ pos4(thinwidth,80);
+ pos5(thinwidth,135);
+ pos6(thickwidth,180);
+ pos7(thickwidth,215);
+ pos8(thinwidth,250);
+ pos9(.5thinwidth,270);
+ z2=(.1em,xheight);
+ y1=-ydepth;
+ x1r=x2r; x3=x9r=.1em;
+ y3=.1xheight; y9=.9xheight;
+ y4=0; x4=x8=.4w;
+ dz4=(1,0);
+
+ y8=xheight;
+ x6r=.7w; y6l=.5xheight;
+ dz6=(0,1);
+ x5r=.75[x4r,x6r]; y5r=.75[y6r,y4r];
+ x7=.75[x8,x6]; y7=.75[y6,y8];
+
+ dz8=(-1,0);
+ stroke(1,2,.1,.2,0);
+ stroke(3,4,.5,-.4,.2);
+ curve(4,5,6); curve(6,7,8);
+ stroke(8,9,.5,-.4,.2);
+ labelpos(1,2,3,4,5,6,7,8,9);
+enddef;
+
+% q by Pavel Curtis
+vardef char.q =
+% setwidth .5em;
+ setwidth .6em;
+ cw := .75[thinwidth,thickwidth]; % Corner pen width
+ cp := .72; % Corner positioning coeff.
+
+
+ pos1(1.5thickwidth, 45);
+ pos2(thickwidth, 0);
+ pos3(cw, 45);
+ pos4(thinwidth, 90);
+ pos5(cw, 135);
+ pos6(thickwidth, 180);
+ pos7(cw, 225);
+ pos8(thinwidth, 270);
+ pos9(cw, 315);
+
+ x6.r = 0.1em; % Again .1em sidebars
+ x2.r = w - 0.1em;
+
+ x1.l = x2.l;
+ y1 = -ydepth;
+ y2 = xheight/2;
+ x4 = 1/2[x6, x2];
+ y4.r = 1.05xheight;
+ y6 = y2;
+ x8 = x4;
+ y8.r = -.05xheight;
+ x3 = x9 = cp[x4, x2];
+ x5 = x7 = cp[x4, x6];
+ y3 = y5 = cp[y2, y4];
+ y7 = y9 = cp[y2, y8];
+ dz2 = (0,1);
+ dz4 = (-1,0);
+ dz6 = (0,-1);
+ dz8 = (1,0);
+
+ % Stem
+ stroke(1, 2, .1, 0, .2);
+ % Bowl
+ curve(2, 3, 4);
+ curve(4, 5, 6);
+ curve(6, 7, 8);
+ curve(8, 9, 2);
+
+ labelpos(1, 2, 3, 4, 5, 6, 7, 8, 9);
+enddef;
+
+% r by Arthur Samuel
+vardef char.r =
+ setwidth .5em; % do this first; it sets the character width
+ pos1(1.5thickwidth,45); % the pen is "thicker than thick" at the top
+ pos2(1.05thickwidth,10); % and also slightly flared at the bottom
+ pos3(.8thinwidth,90); % The starting place for the right branch
+ pos4(.65[.8thinwidth,thickwidth],90);
+ pos5(1.2thickwidth,90); % Joining point of two curves
+ pos6(.85[thinwidth,thickwidth],45); % at point with slope for line 5,7
+ z2=(.2w+.5thickwidth,0);
+ y1=xheight; x1r=x2r; % at the hheight, aligned at the right
+ x3=x2+.5thickwidth; y3=.65xheight; dz3=(1,2);
+ x4=.5[x3,x5]; y4=.83[y3,y5];
+ z5=(.8w,xheight-.3thickwidth); dz5=(1,0);
+
+
+ stroke(1,2,.1,.2,0); % taper at the left but not the right
+ curve(3,4,5);
+ labelpos(1,2,3,4,5);
+enddef;
+
+% s by Kwang-Chun Park
+vardef char.s =
+
+ setwidth 0.4em;
+ pos1(thickwidth,-100);
+ pos2(.5[thickwidth,thinwidth],-95);
+ pos3(thinwidth,-90);
+ pos4(.375[thinwidth,thickwidth],-40);
+ pos5(.75[thinwidth,thickwidth],0);
+ pos6(thickwidth,45);
+ pos7(1.1thickwidth,75);
+ pos8(thickwidth,45);
+ pos9(.75[thinwidth,thickwidth],0);
+ pos10(.375[thinwidth,thickwidth],-40);
+ pos11(thinwidth,-90);
+ pos12(.5[thinwidth,thickwidth],-95);
+ pos13(thickwidth,-100);
+
+ y3l=1.03xheight; y1=0.85xheight;
+ y5=.75xheight; y7= 0.5xheight; y9= 0.25xheight;
+ y11r= -0.03xheight; y13=y9;
+ x3 = 0.5w; x1r=w-.05em;
+ x5l=x3-0.5w; x7 = x3; x9r = w;
+ x11 = x3; x13= x5l;
+
+ x2l = 0.71[x3l,x1l];
+ y2l = 0.71[y1l,y3l];
+ dz3= (-1,0);
+ x4l = 0.75[x3l,x5l];
+ y4l = 0.75[y5l,y3l];
+ dz5=(0,-1);
+ x6 = 0.29[x5,x7];
+ y6 = 0.29[y7,y5];
+ dz7=(1,0);
+ x8 = 0.29[x9,x7];
+ y8 = 0.71[y9,y7];
+ dz9=(0,-1);
+ x10= 0.75[x11,x9];
+ y10= 0.25[y11,y9];
+ dz11=(-1,0);
+ x12= 0.35[x13,x11];
+ y12= 0.29[y11,y13];
+
+ curve(1,2,3); curve(3,4,5);
+ curve(5,6,7); curve(7,8,9);
+ curve(9,10,11); curve(11,12,13);
+ labelpos(1,2,3,4,5,6,7,8,9,10,11,12,13);
+
+enddef;
+
+% t by Tuan Pham
+vardef char.t=
+setwidth .6em;
+pos1(1.1thickwidth,45);
+pos2(thickwidth,10);
+pos3(thickwidth,40);
+pos4(.5[thickwidth,thinwidth],75);
+pos5(.9[thickwidth,thinwidth],130);
+pos6(thinwidth,200);
+pos7(1.2thinwidth,80);
+pos8(1.5thinwidth,45);
+x1l=0.15em;y1=.5[xheight,hheight];
+x2=x1;y2=0.25xheight;dz2=(0,-1);
+x3=.71[x4,x2];y3=.71[y2,y4];
+x4r=.5[x2r,x6r];y4l=-.05xheight;dz4=(1,0);
+x5=.7[x4,x6];y5=.7[y6,y4];
+x6l=w-0.15em;y6=0.3xheight;
+x7=.1em;x8=w-.18em;
+y7r=y8r=xheight;
+stroke(1,2,.2,.05,.05);
+curve(2,3,4);curve(4,5,6);
+stroke(7,8,.8,0,.3);
+labelpos(1,2,3,4,5,6,7,8);
+enddef;
+
+% u by Nori Tokusue
+vardef char.u =
+ setwidth .50em; %temp value
+ pos1(1.05thickwidth,10);
+ pos2(thickwidth,10);
+ pos3(.65[thickwidth,thinwidth],40);
+ pos4(.80[thickwidth,thinwidth],75);
+ pos5(.95[thickwidth,thinwidth],130);
+ pos6(thickwidth,180);
+ pos7(thickwidth,190);
+ pos8(1.1thickwidth,190);
+ % coordinate information
+
+ x1l=.075em;
+ x7=w-x1l;
+ y1=y7=xheight;
+ x1=x2;
+ x6=x7;x6r=x8r;
+
+ % left curve
+ y2=.30xheight; dz2=(0,-1); % going down at z2
+ x3=.75[x4,x2]; y3=.75[y2,y4];
+ x4r=.5[x2r,x6r]; y4l=-.05xheight;
+ dz4=(1,0); % rightward
+
+ % right curve
+ x5=.70[x4,x6]; y5=.3[y4,y6];
+ y6=.33xheight; dz6=(0,1); % upward at z6
+ y8=0;
+ % now draw the line
+ stroke(1,2,.3,.05,0); % temp values.
+ curve(2,3,4);
+
+ curve(4,5,6);
+ stroke(6,7,.7,0,.05);
+ dy6:=-1;
+ stroke(6,8,.5,.05,.05);
+
+ labelpos(1,2,3,4,5,6,7,8);
+enddef;
+
+% v by Ed Williams
+vardef char.v =
+setwidth .55em;
+pos1(1.1thickwidth,05); z1=(.2w,xheight);
+pos5(1.3thinwidth, -170); z5=(.85w,xheight);
+pos3(1.8thickwidth,87); x3l=.5[x1,x5]; y3l=-.02w;
+pos2(.9thickwidth, 25);z2=.5[z1,z3];
+pos4(1.1thinwidth,155); z4=.5[z5,z3];
+
+stroke (1,2,.2,.05,.05); stroke(2,3,.8,0,0);
+stroke(5,4,.2,.05,.05); stroke(4,3,.8,.02,0);
+labelpos(1,2,3,4,5);
+enddef;
+
+% w by Joey Tuttle
+vardef char.w =
+ setwidth .74em; % this from "average character width table" TSS
+ pos1(1.5thickwidth,30);
+ pos2(1.05thickwidth,10);
+ pos21(thinwidth,10);
+ pos3(thinwidth,30);
+ pos31(thickwidth,30);
+ pos4(1.05thickwidth,10);
+ pos41(thinwidth,10);
+ pos5(1.5thinwidth,30);
+ y1=xheight; x1l=.1em; x5r=w-.1em; % some fixed points
+ x2=.45[x1,x3]; x3=.5[x1,x5]; x4=.45[x3,x5]; % relating corners
+ z21r=z2r; z31l=z3l; z41r=z4r; % tie corners of strokes
+ y31r=y1; y5=y1; % the tops of the strokes
+ y2=0; y4=y2; % the baseline
+ stroke(1,2,.1,.2,0);
+ stroke(21,3,.2,.0,.2);
+ stroke(31,4,.1,.2,.2);
+ stroke(41,5,.9,.2,0);
+ labelpos(1,21,2,31,3,41,4,5);
+enddef;
+
+% x by William Burley
+vardef char.x =
+ setwidth .45em;
+ pos1(1.4thickwidth,0);
+ pos2(.9thickwidth,45);
+ pos3(1.4thickwidth,0);
+ pos4(1.4thinwidth,0);
+ pos5(.9thinwidth,-45);
+ pos6(1.4thinwidth,0);
+ x1l=x4l=.1w;
+ x3r=x6r=.9w;
+ y1=y6=xheight;
+ y3=y4=0;
+ x2=x5=.5w;
+ y2=y5=.5xheight;
+ stroke(1,2,.15,0,.25);
+ stroke(2,3,.85,.25,0);
+ stroke(4,5,.15,0,.25);
+ stroke(5,6,.85,.25,0);
+ labelpos(1,2,3,4,5,6);
+enddef;
+
+% y by Neenie Billawala
+vardef char.y=
+ setwidth .57em;
+ pos1(1.4thickwidth,15); dz2=z2r-z1r;
+ pos2(1.25thickwidth,60);
+ pos3(1.65thinwidth,15);
+ pos4(.85thinwidth,-45);
+ pos5(1.65thinwidth,10);
+ pos6(1.23thickwidth,50);
+ pos7(1.5thinwidth,15);
+ pos8(1.4thinwidth,0);
+ y1=y3=xheight;
+ z2=z4; y4r=0; x4l=.5w;
+ numeric a;
+ y5=-ydepth;
+ x1l=.07w;
+ x3r=w-.09x1l-.02em;
+ z5=a[z3,z4];
+ dz4=(z5-z3);
+ z6r=.02[z1r,z2r];
+ dz6=z2l-z1l; curve(1,6,2);
+ %z7r=.08[z3r,z4r];
+ %dz7=z4l-z3l; curve(3,7,4);
+ %z8l=.92[z3l,z4l];
+ %dz8=z4r-z3r; %curve(4,8,5);
+ stroke(3,4,.2,.4,0);
+ stroke(4,5,.8,0,.4);
+ labelpos(1,2,3,4,5,6,7,8);
+enddef;
+
+% z by Kanchi Gopinath
+vardef char.z=
+ setwidth .43em;
+
+ pos1(thickwidth,80);
+ pos2(2thickwidth,30);
+ pos3(2thickwidth,30);
+ pos4(thickwidth,90); % 90 is changed to 110 in his other file...
+
+ x1l=0;
+ y1l=xheight-thickwidth;
+
+
+ y2r=xheight;
+ x2r=w;
+
+ x3l=0;
+ y3l=0;
+
+ x4l=w;
+ y4l=0;
+
+ stroke(1,2,.4,.3,.2);
+ stroke(2,3,.5,.5,.5);
+ stroke(3,4,0.6,0.2,0.3);
+ labelpos(1,2,3,4);
+enddef;
+
+% - by Dan Mills
+vardef char.hyphen =
+ begingroup charcode:=ASCII"-";
+% charcd := '-;
+ save glyphwidth,lsb,rsb;
+ numeric glyphwidth,lsb,rsb;
+
+ glyphwidth = .25em;
+ lsb = .1glyphwidth;
+ rsb = .1glyphwidth;
+ setwidth( lsb+glyphwidth+rsb );
+
+% positions:
+ pos1(thinwidth,90);
+ pos2(thinwidth,90);
+
+% coordinates:
+ x1 = lsb; y1 = .55xheight;
+ x2 = lsb + glyphwidth; y2 = y1;
+
+% specials:
+ % none
+
+% draw stroke:
+ stroke(1,2,0,0,0);
+
+ labelpos(1,2);
+ endgroup;
+enddef; % char.hyphen
+
+
+% . by Dan Mills
+vardef char.period =
+ begingroup charcode:=ASCII".";
+% charcd := '.;
+ save glyphwidth,lsb,rsb;
+ numeric glyphwidth,lsb,rsb;
+
+ glyphwidth = thickwidth;
+ lsb = .6glyphwidth;
+ rsb = .6glyphwidth;
+ setwidth( lsb+glyphwidth+rsb );
+
+% positions:
+ pos1(thickwidth,90);
+ pos2(thickwidth,90);
+
+% coordinates:
+ x1 = lsb; y1l = 0;
+ x2 = lsb + glyphwidth; y2l = y1l;
+
+% specials:
+ % none
+
+% draw stroke:
+ stroke(1,2,0,0,0);
+
+ labelpos(1,2);
+ endgroup;
+enddef; % char.period
+
+
+% , by Dan Mills
+vardef char.comma =
+ begingroup charcode:=ASCII",";
+% charcd := ',;
+ save glyphwidth,lsb,rsb;
+ numeric glyphwidth,lsb,rsb;
+
+ glyphwidth = thickwidth;
+ lsb = .6glyphwidth;
+ rsb = .6glyphwidth;
+ setwidth( lsb+glyphwidth+rsb );
+
+% positions:
+ pos1(thickwidth,90);
+ pos2(thickwidth,90);
+ pos3(.7thickwidth,0);
+ pos4(.3thickwidth,0);
+
+% coordinates:
+ x1 = lsb; y1l = 0;
+ x2 = lsb + glyphwidth; y2l = y1l;
+ x3r = x2; y3 = y1l;
+ x4l = x1; y4 = -1.5thickwidth;
+
+% specials:
+ % none
+
+% draw stroke:
+ stroke(1,2,0,0,0);
+ stroke(3,4,0,0,0);
+
+ labelpos(1,2,3,4);
+ endgroup;
+enddef; % char.comma
+
+% now we generate the font
+% SELECT THE CORRECT init.... STATEMENT!
+
+openwindow 0 from (0,0) to (420,500) at (-40,310);
+window:=0;
+%init.normal(1.618033);
+%init.bold(1.618033);
+init.boldx(1.618033);
+vardef init.wierd(expr f) =
+ begingroup
+ numeric thinwidth,thickwidth,capheight,xheight,hheight,ydepth,em;
+ thinwidth = 13f; thickwidth = 13f; em = 180f;
+ capheight = 170f; xheight = 90f; hheight = 180f; ydepth = 60f;
+ endgroup
+enddef;
+%init.wierd(sqrt2);
+
+
+vardef make@#(expr ls,rs)=begingroup clear; charcode:=ASCII str@#;
+ "the character "&str @#; char@#; chardx:=w+ls+rs; charwd:=chardx/hppp;
+if proofing>.5: shipit;
+else:
+proofrule((0,hheight),(w+ls+rs,hheight));
+proofrule((0,-ydepth),(w+ls+rs,-ydepth));
+proofrule((0,-ydepth),(0,hheight));
+proofrule((w+ls+rs,-ydepth),(w+ls+rs,hheight));
+proofrule((0-10,0),(0+10,0));
+proofrule((w+ls+rs-10,0),(w+ls+rs+10,0));
+ shipout (currentpicture shifted (ls,0)); fi
+endgroup enddef;
+
+
+tracingtitles:=1;
+make.A(-.025em,.05em);
+make.B(0,-.025em);
+make.C(-.02em,-.02em);
+make.D(-.02em,0);
+make.E(0,-.05em);
+make.F(0,-.05em);
+make.G(0,0);
+make.H(0,0);
+make.I(-.05em,-.05em);
+make.J(0,0);
+make.K(0,-.05em);
+make.?(0,0);
+make.L(0,-.02em);
+make.M(0,0);
+make.N(0,0);
+make.O(0,0);
+make.P(.05em,-.075em);
+make.Q(0,0);
+make.R(0,-.275em+thickwidth);
+make.S(0,0);
+make.T(-.05em,-.075em);
+make.exclamation(0,-.075em);
+make.U(0,0);
+make.V(-.075em,0);
+make.W(0,0);
+make.X(-.05em,0);
+make.Y(0,0);
+make.Z(0,0);
+make.a(-.05em,.5thickwidth);
+make.b(0,-.025em);
+make.c(.05em,0);
+make.d(-.025em,0);
+make.e(0,0);
+make.f(0,0);
+make.g(0,.01em);
+make.h(0,0);
+make.i(0,0);
+make.j(-.05em,0);
+make.k(-.02em,-.05em);
+make.l(0,0);
+make.m(0,0);
+make.n(-.05em,.01em);
+make.o(0,0);
+make.p(.05em,0);
+make.q(-.02em,0);
+make.r(0,-.07em);
+make.s(.05em,.05em);
+make.t(-.025em,-.1em);
+make.u(0,.04em);
+make.v(-.025em,-.025em);
+make.w(-.05em,-.05em);
+make.x(0,0);
+make.y(0,0);
+make.z(.05em,.05em);
+make.hyphen(0,0);
+make.period(0,0);
+make.comma(0,0);
+fontdimen 1: 0, 1/3em/hppp, 1/6em/hppp, 1/9em/hppp, xheight/vppp,
+ em/hppp, 1/9em/hppp;
+end
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf
new file mode 100644
index 00000000000..ecf5f91c319
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/committee/font1base.mf
@@ -0,0 +1,113 @@
+delimiters ();
+smoothing:=1; autorounding:=2; % this adjusts curves to the raster
+turningcheck:=2; % this will warn about a "strange path"
+
+vardef z@# = (x@#,y@#) enddef;
+vardef dz@# = (dx@#,dy@#) enddef;
+
+picture currentpicture;
+currentpicture=nullpicture; % this initializes an empty set of pixels
+
+def fill expr c = addto currentpicture contour c enddef;
+def shipit = shipout currentpicture enddef;
+def showit = display currentpicture inwindow window enddef;
+
+def unknown = not known enddef;
+
+vardef pos@#(expr length,theta) =
+ z@#=.5[z@#l,z@#r];
+ z@#r-z@#l=(length,0) rotated theta enddef;
+def stroke(suffix $,$$)(expr t,lt,rt) =
+ fill z$l
+ if known dz$: {dz$} fi
+ if t<>0: ..lt[ t[z$l,z$$l],t[z$,z$$] ]{z$$l-z$l} fi
+ .. z$$l
+ if known dz$$: {dz$$} fi
+ & z$$l..z$$r
+ & z$$r
+ if known dz$$: {-dz$$} fi
+ if t<>0: ..rt[ t[z$r,z$$r],t[z$,z$$] ]{z$r-z$$r} fi
+ .. z$r
+ if known dz$: {-dz$} fi
+ & z$r..z$l & cycle;
+ showit; enddef;
+def curve(suffix $,$$,$$$) =
+ fill z$l
+ if known dz$: {dz$} fi
+ .. z$$l{if known dz$$: dz$$ else: z$$$l-z$l fi}
+ .. z$$$l
+ if known dz$$$: {dz$$$} fi
+ & z$$$l..z$$$r
+ & z$$$r
+ if known dz$$$: {-dz$$$} fi
+ .. z$$r{if known dz$$: -dz$$ else: z$r-z$$$r fi}
+ .. z$r
+ if known dz$: {-dz$} fi
+ & z$r..z$l & cycle;
+ showit; enddef;
+
+def proofrule(expr a,b) =
+ special "rule"; numspecial xpart a; numspecial ypart a;
+ numspecial xpart b; numspecial ypart b enddef;
+string lcode_;
+lcode_=" 0"; % change to " /" to avoid listing in overflow column
+def makelabel(expr s,z) = % puts string s at point z
+ if known z: special lcode_ & s;
+ numspecial xpart z; numspecial ypart z fi enddef;
+def labelpos(text t) =
+ if proofing>.5:
+ forsuffixes $$=l,,r: forsuffixes $=t:
+ makelabel(str $.$$, z$.$$); endfor endfor fi enddef;
+
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ currentpicture:=nullpicture;
+enddef;
+
+def setwidth expr x =
+ chardx:=x;
+ numeric w; w=chardx;
+ if proofing>.5:
+ for n:=0 step .1em until chardx-1:
+ proofrule((n,-ydepth),(n,hheight)); endfor
+ proofrule((chardx,-ydepth),(chardx,hheight));
+ proofrule((0,-ydepth),(chardx,-ydepth));
+ proofrule((0,0),(chardx,0));
+ proofrule((0,xheight),(chardx,xheight));
+ proofrule((0,capheight),(chardx,capheight));
+ proofrule((0,hheight),(chardx,hheight));
+ fi
+enddef;
+
+vardef init.normal(expr f) =
+ begingroup
+ numeric thinwidth,thickwidth,capheight,xheight,hheight,ydepth,em;
+ thinwidth = 11f; thickwidth = 15f; em = 200f;
+ capheight = 130f; xheight = 90f; hheight = 140f; ydepth = 40f;
+ endgroup
+enddef;
+
+vardef init.bold(expr f) =
+ init.normal(f); thinwidth:= 14f; thickwidth:= 24f;
+enddef;
+
+vardef init.boldx(expr f) =
+ init.bold(f); xheight:=95f; em:= 220f;
+enddef;
+
+
+vardef test@#(text #)=
+ begingroup
+ if str @# = "": % test all three
+ openwindow 1 from (0,0) to (420,167) at (-20,310);
+ openwindow 2 from (0,167) to (420,333) at (-20,310);
+ openwindow 3 from (0,333) to (420,500) at (-20,310);
+ window:=1; init.normal(1); clear; #; "normal"; shipit;
+ window:=2; init.bold(1); clear; #; "bold"; shipit;
+ window:=3; init.boldx(1); clear; #; "boldx"; shipit;
+ else: openwindow 0 from (0,0) to (420,500) at (-40,310);
+ window:=0; init@#(2); clear; #; str @#; shipit;
+ fi;
+ endgroup
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/aphalf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/aphalf.mf
new file mode 100644
index 00000000000..6f386e63da1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/aphalf.mf
@@ -0,0 +1,3 @@
+% Halftone font for APS
+mode:=aps;
+input halftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddhalf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddhalf.mf
new file mode 100644
index 00000000000..70bb1a8f923
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddhalf.mf
@@ -0,0 +1,3 @@
+% Halftone font for Datadisk
+mode:=DD;
+input halftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddralf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddralf.mf
new file mode 100644
index 00000000000..a754ee9774a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/ddralf.mf
@@ -0,0 +1,3 @@
+% Halftone font for Datadisk
+mode:=DD;
+input ralftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/halftone.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/halftone.mf
new file mode 100644
index 00000000000..d93a540e5ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/halftone.mf
@@ -0,0 +1,45 @@
+% halftone font with 65 levels of gray, characters "0" (white) to "p" (black)
+
+pair p[]; % the pixels in order (first p0 becomes black, then p1, etc)
+p0=(1,1);
+p8=(2,0);
+p16=(1,0);
+p24=(0,0);
+p32=(3,-1);
+p40=(2,-1);
+p48=(1,-1);
+p56=(2,-2);
+transform r; r=identity rotatedaround ((1.5,1.5),90);
+
+for i=0 step 8 until 56:
+ p[i+2]=p[i] transformed r;
+ p[i+6]=p[i+2] transformed r;
+ p[i+5]=p[i+6] transformed r;
+ p[i+1]=p[i] shifted (4,4);
+ p[i+3]=p[i+2] shifted (4,4);
+ p[i+7]=p[i+6] shifted (4,4);
+ p[i+4]=p[i+5] shifted (4,4);
+ endfor
+
+for i=32 step 1 until 63:
+ p[i] := (xpart p[i] mod 8, ypart p[i] mod 8);
+endfor
+
+mode_setup;
+designsize:=64/pt; % that's 64 pixels
+
+def makebox(text t)= enddef; % shut off boxes
+
+picture prevchar;
+
+prevchar=nullpicture;
+for i=0 upto 64:
+ beginchar(i+ASCII"0",designsize/8,designsize/8,0);
+ currentpicture:=prevchar;
+ if i>0: fill unitsquare shifted p[i-1]; fi
+ prevchar:=currentpicture;
+ endchar;
+ endfor
+
+font_quad=designsize/8;
+end
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imhalf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imhalf.mf
new file mode 100644
index 00000000000..1cd246f8d5a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imhalf.mf
@@ -0,0 +1,3 @@
+% Halftone font for Imagen
+mode:=imagen;
+input halftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imralf.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imralf.mf
new file mode 100644
index 00000000000..b2ef9b1b750
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/halftone/imralf.mf
@@ -0,0 +1,3 @@
+% Halftone font for Imagen
+mode:=imagen;
+input ralftone
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/logobase.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/logobase.mf
new file mode 100644
index 00000000000..4a728758654
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/logobase.mf
@@ -0,0 +1,34 @@
+% Base file for the METAFONT logo
+logobase:=1; % when logobase is known, this file has been input
+
+def font_setup =
+ if unknown slant: slant:=0 else: currenttransform:=
+ identity slanted slant yscaled aspect_ratio fi;
+
+ ygap#:=(ht#/13.5u#)*xgap#; % vertical adjustment
+ ho#:=o#; % horizontal overshoot
+ leftstemloc#:=2.5u#+s#; % position of left stem
+ barheight#:=.45ht#; % height of bar lines
+ py#:=.9px#; % vertical pen thickness
+
+ define_pixels(s,u);
+ define_whole_pixels(xgap);
+ define_whole_vertical_pixels(ygap);
+ define_blacker_pixels(px,py);
+ pickup pencircle xscaled px yscaled py;
+ logo_pen:=savepen;
+ define_good_x_pixels(leftstemloc);
+ define_good_y_pixels(barheight);
+ define_corrected_pixels(o);
+ define_horizontal_corrected_pixels(ho); enddef;
+
+def beginlogochar(expr code, unit_width) =
+ beginchar(code,unit_width*u#+2s#,ht#,0);
+ pickup logo_pen enddef;
+
+def super_half(suffix i,j,k) =
+ draw z.i{0,y.j-y.i}
+ ... (.8[x.j,x.i],.8[y.i,y.j]){z.j-z.i}
+ ... z.j{x.k-x.i,0}
+ ... (.8[x.j,x.k],.8[y.k,y.j]){z.k-z.j}
+ ... z.k{0,y.k-y.j} enddef;
diff --git a/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/metafon.mf b/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/metafon.mf
new file mode 100644
index 00000000000..aeb1764b885
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/knuthotherfonts/mfbook/metafon.mf
@@ -0,0 +1,50 @@
+beginlogochar("M",18);
+x1=x2=leftstemloc; x4=x5=w-x1; x3=w-x3;
+y1=y5; y2=y4; bot y1=-o;
+top y2=h+o; y3=y1+ygap;
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5); endchar;
+
+beginlogochar("E",14);
+x1=x2=x3=leftstemloc;
+x4=x6=w-x1+ho; x5=x4-xgap;
+y1=y6; y2=y5; y3=y4;
+bot y1=0; top y3=h; y2=barheight;
+draw z6--z1--z3--z4; draw z2--z5;
+labels(1,2,3,4,5,6); endchar;
+
+beginlogochar("T",13);
+italcorr ht#*slant + .5u#;
+if .5w<>good.x .5w: change_width; fi
+lft x1=-eps; x2=w-x1; x3=x4=.5w;
+y1=y2=y3; top y1=h; bot y4=-o;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+beginlogochar("A",15);
+x1=.5w; x2=x4=leftstemloc; x3=x5=w-x2;
+top y1=h+o; y2=y3=barheight;
+bot y4=bot y5=-o;
+draw z4--z2--z3--z5; super_half(2,1,3);
+labels(1,2,3,4,5); endchar;
+
+beginlogochar("F",14);
+x1=x2=x3=leftstemloc;
+x4=w-x1+ho; x5=x4-xgap;
+y2=y5; y3=y4; bot y1=-o;
+top y3=h; y2=barheight;
+draw z1--z3--z4; draw z2--z5;
+labels(1,2,3,4,5); endchar;
+
+beginlogochar("O",15);
+x1=x4=.5w; top y1=h+o; bot y4=-o;
+x2=w-x3=good.x(1.5u+s); y2=y3=barheight;
+super_half(2,1,3); super_half(2,4,3);
+labels(1,2,3,4); endchar;
+
+beginlogochar("N",15);
+x1=x2=leftstemloc; x3=x4=x5=w-x1;
+bot y1=bot y4=-o;
+top y2=top y5=h+o; y3=y4+ygap;
+draw z1--z2--z3; draw z4--z5;
+labels(1,2,3,4,5); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/kuvio/arrsy.mf b/Master/texmf-dist/fonts/source/public/kuvio/arrsy.mf
new file mode 100644
index 00000000000..d48792b9f82
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kuvio/arrsy.mf
@@ -0,0 +1,116 @@
+% arrsy.mf
+% Anders G S Svensson
+% $Date: 1993/08/29 06:19:19 $
+% $Revision: 1.1 $
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Computer Modern parameters from cmsy10.mf
+%%
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% Font parameters are explained in {\sl The \TeX book}, Appendix G
+%
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will
+ % now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Modified from mathsy.mf
+%%
+font_coding_scheme:="TeX math symbols";
+mode_setup; font_setup;
+
+slant:=mono_charic#:=0; % Symbols shouldn't be slanted.
+
+font_slant slant;
+font_x_height x_height#;
+font_quad 18u#;
+
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/kuvio/arrsy10.mf b/Master/texmf-dist/fonts/source/public/kuvio/arrsy10.mf
new file mode 100644
index 00000000000..a73fa349a15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kuvio/arrsy10.mf
@@ -0,0 +1,45 @@
+% arrsy10.mf
+% Anders G S Svensson
+% $Date: 1995/03/31 21:55:19 $
+% $Revision: 1.10 $
+
+if unknown cmbase: input cmbase fi
+font_identifier:="ARRSY"; font_size 10pt#;
+
+input arrsy; % Computer modern parameters.
+input arrsym; % Macros for the symbols.
+
+% Encoding
+%
+rightallo(hex "00");
+leftallo(hex "01");
+upallo(hex "02");
+downallo(hex "03");
+rightpara(hex "04");
+leftpara(hex "05");
+uppara(hex "06");
+downpara(hex "07");
+righttriple(hex "08");
+lefttriple(hex "09");
+equiv(hex "0A");
+dashbar(hex "0B");
+rightarrow(hex "0C", 10);
+leftarrow(hex "0D", 10);
+rightmonotail(hex "0E");
+leftmonotail(hex "0F");
+squiggle(hex "10");
+rightarrow(hex "11", 18);
+leftarrow(hex "12", 18);
+leftrightarrow(hex "13");
+leftharpoonup(hex "14");
+leftharpoondown(hex "15");
+rightharpoonup(hex "16");
+rightharpoondown(hex "17");
+vector(hex "18");
+ofcirc(hex "19");
+dotp(hex "1A");
+cupp(hex "1B");
+capp(hex "1C");
+
+bye
+
diff --git a/Master/texmf-dist/fonts/source/public/kuvio/arrsym.mf b/Master/texmf-dist/fonts/source/public/kuvio/arrsym.mf
new file mode 100644
index 00000000000..81b113bc79c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/kuvio/arrsym.mf
@@ -0,0 +1,477 @@
+% arrsym.mf
+% Anders G S Svensson
+
+% This file was tangled from arrsym.fw.
+% $Revision: 1.9 $
+% $Date: 1995/04/01 02:31:13 $
+
+compute_spread(.45x_height#,.55y_height#);
+numeric thin_spread#; thin_spread#:=4/5spread#;
+define_pixels(thin_spread);
+
+def rightallo(expr code) =
+ beginchar(code, 18u#, v_center(spread#+rule_thickness#));
+ pickup rule.nib;
+ lft x1=hround u - eps; x2=x1; x7=x8=w-x1;
+ y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+ draw z1--z7; draw z2--z8;
+ pickup crisp.nib; rt x0=hround(w-u)+eps; y0=y2;
+ pos3(rule_thickness,0);
+ y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0-6u-eps;
+ pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ erase filldraw z0..{z3-z9}z3--(w,y3)--z0&cycle;
+ filldraw z5l..{z3-z9}z3r---{z9-z3}z3l..z5r--cycle;
+ endchar;
+enddef;
+
+def rightpara(expr code) =
+ beginchar(code, 18u#, v_center(spread#+rule_thickness#));
+ pickup rule.nib;
+ lft x1=hround u - eps; x2=x1; x7=x8=w-x1;
+ y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+ draw z1--z7; draw z2--z8;
+ pickup crisp.nib; rt x0=hround(w-u)+eps; y0=y1;
+ pos4(rule_thickness,0);
+ y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0-6u-eps;
+ pos5(rule_thickness,angle(z3-z0)); z5l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ erase filldraw z0..{z4-z9}z4--(w,y4)--z0&cycle;
+ filldraw z5r..{z4-z9}z4l---{z9-z4}z4r..z5l--cycle;
+ endchar;
+enddef;
+
+def leftpara(expr code) =
+ beginchar(code, 18u#, v_center(spread#+rule_thickness#));
+ pickup rule.nib;
+ lft x7=hround u - eps; x8=x7; x1=x2=w-x7;
+ y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+ draw z1--z7; draw z2--z8;
+ pickup crisp.nib; lft x0=hround u - eps; y0=y2;
+ pos3(rule_thickness,0);
+ y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+6u+eps;
+ pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ erase filldraw z0..{z3-z9}z3--(0,y3)--z0&cycle;
+ filldraw z5r..{z3-z9}z3r---{z9-z3}z3l..z5l--cycle;
+ endchar;
+enddef;
+
+def leftallo(expr code) =
+ beginchar(code, 18u#, v_center(spread#+rule_thickness#));
+ pickup rule.nib;
+ lft x7=hround u - eps; x8=x7; x1=x2=w-x7;
+ y1=y7; y2=y8; y1-y2=spread; .5[y1,y2]=math_axis;
+ draw z1--z7; draw z2--z8;
+ pickup crisp.nib; lft x0=hround u - eps; y0=y1;
+ pos4(rule_thickness,0);
+ y3-y1=y2-y4=.24asc_height+eps; x3=x4=x0+6u+eps;
+ pos5(rule_thickness,angle(z3-z0)); z5l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ erase filldraw z0..{z4-z9}z4--(0,y4)--z0&cycle;
+ filldraw z5l..{z4-z9}z4l---{z9-z4}z4r..z5r--cycle;
+ endchar;
+enddef;
+
+def downallo(expr code) =
+ beginchar(code, 11u#, asc_height#, asc_depth#);
+ pickup rule.nib;
+ top y1=top y2=h+eps; bot y7=-d; y8=y7;
+ x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+ draw z1--z7; draw z2--z8;
+ pickup crisp.nib;
+ bot y0=-d-eps; x0=x2;
+ pos4(rule_thickness,90);
+ x2-x3=x4-x1=3u+eps; y3=y4=y0+.48asc_height-eps;
+ pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ erase filldraw z0..{z4-z9}z4--(x4,-d-eps)--z0&cycle;
+ filldraw z6l..{z4-z9}z4l---{z9-z4}z4r..z6r--cycle;
+ endchar;
+enddef;
+
+def downpara(expr code) =
+ beginchar(code, 11u#, asc_height#, asc_depth#);
+ pickup rule.nib;
+ top y1=top y2=h+eps; bot y7=-d; y8=y7;
+ x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+ draw z1--z7; draw z2--z8;
+ pickup crisp.nib;
+ bot y0=-d-eps; x0=x1;
+ pos3(rule_thickness,90);
+ x2-x3=x4-x1=3u+eps; y3=y4=y0+.48asc_height-eps;
+ pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ erase filldraw z0..{z3-z9}z3--(x3,-d-eps)--z0&cycle;
+ filldraw z5r..{z3-z9}z3r---{z9-z3}z3l..z5l--cycle;
+ endchar;
+enddef;
+
+def uppara(expr code) =
+ beginchar(code, 11u#, asc_height#, asc_depth#);
+ pickup rule.nib;
+ bot y1=bot y2=-d-eps; top y7=h; y8=y7;
+ x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+ draw z1--z7; draw z2--z8;
+ pickup crisp.nib;
+ top y0=h+eps; x0=x2;
+ pos4(rule_thickness,90);
+ x2-x3=x4-x1=3u+eps; y3=y4=y0-.48asc_height-eps;
+ pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ erase filldraw z0..{z4-z9}z4--(x4,h+eps)--z0&cycle;
+ filldraw z6r..{z4-z9}z4l---{z9-z4}z4r..z6l--cycle;
+ endchar;
+enddef;
+
+def upallo(expr code) =
+ beginchar(code, 11u#, asc_height#, asc_depth#);
+ pickup rule.nib;
+ bot y1=bot y2=-d-eps; top y7=h; y8=y7;
+ x1=x7; x2=x8; x1-x2=spread; .5[x1,x2]=crisp.lft hround(crisp.rt .5w);
+ draw z1--z7; draw z2--z8;
+ pickup crisp.nib;
+ top y0=h+eps; x0=x1;
+ pos3(rule_thickness,90);
+ x2-x3=x4-x1=3u+eps; y3=y4=y0-.48asc_height-eps;
+ pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ erase filldraw z0..{z3-z9}z3--(x3,h+eps)--z0&cycle;
+ filldraw z5l..{z3-z9}z3r---{z9-z3}z3l..z5r--cycle;
+ endchar;
+enddef;
+
+def righttriple(expr code) =
+ beginchar(code, 18u#, v_center(2spread#+rule_thickness#));
+ pickup rule.nib;
+ lft x1=hround u - eps; x3=x5=x1; x2=x4=x6=w-x1;
+ y1=y2; y3=y4=math_axis; y5=y6; y1-y3=y3-y5=thin_spread;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+ pickup crisp.nib; rt x0=hround(w-u)+eps; y0=y4;
+ pos7(rule_thickness,0); pos8(rule_thickness,0);
+ y7-y2=y6-y8=.24asc_height+eps; x7=x8=x0-6u-eps;
+ pos9(rule_thickness,angle(z8-z0)); z9l=z0;
+ pos10(rule_thickness,angle(z7-z0)); z10l=z0;
+ z11=.381966[.5[z7,z8],z0];
+ erase filldraw z0..{z7-z11}z7--(w,y7)--(w,y8)--
+ z8{z11-z8}..z0&cycle;
+ filldraw z9l..{z7-z11}z7r---z7l{z11-z7}..z9r--cycle;
+ filldraw z10r..{z8-z11}z8l---z8r{z11-z8}..z10l--cycle;
+ endchar;
+enddef;
+
+def lefttriple(expr code) =
+ beginchar(code, 18u#, v_center(2spread#+rule_thickness#));
+ pickup rule.nib;
+ lft x1=hround u - eps; x3=x5=x1; x2=x4=x6=w-x1;
+ y1=y2; y3=y4=math_axis; y5=y6; y1-y3=y3-y5=thin_spread;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+ pickup crisp.nib; lft x0=hround u-eps; y0=y4;
+ pos7(rule_thickness,0); pos8(rule_thickness,0);
+ y7-y2=y6-y8=.24asc_height+eps; x7=x8=x0+6u+eps;
+ pos9(rule_thickness,angle(z8-z0)); z9l=z0;
+ pos10(rule_thickness,angle(z7-z0)); z10l=z0;
+ z11=.381966[.5[z7,z8],z0];
+ erase filldraw z0..{z7-z11}z7--(0,y7)--(0,y8)--
+ z8{z11-z8}..z0&cycle;
+ filldraw z9r..{z7-z11}z7r---z7l{z11-z7}..z9l--cycle;
+ filldraw z10l..{z8-z11}z8l---z8r{z11-z8}..z10r--cycle;
+ endchar;
+enddef;
+
+def equiv(expr code) =
+ beginchar(code, 14u#, v_center(2spread#+rule_thickness#));
+ pickup rule.nib;
+ lft x1=hround u - eps; x3=x5=x1; x2=x4=x6=w-x1;
+ y1=y2; y3=y4=math_axis; y5=y6; y1-y3=y3-y5=thin_spread;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ endchar;
+enddef;
+
+def dashbar(expr code) =
+ beginarithchar(code);
+ pickup rule.nib;
+ lft x1=hround u-eps;
+ x2=.3w; x3=.7w;
+ x4=w-x1;
+ y1=y2=y3=y4=math_axis;
+ draw z1--z2;
+ draw z3--z4;
+ endchar;
+enddef;
+
+def rightarrow(expr code, width) =
+ beginchar(code, width*u#, v_center(spread#+rule_thickness#));
+ adjust_fit(0,0); pickup crisp.nib;
+ pos1(rule_thickness,90); pos2(rule_thickness,90);
+ pos3(bar,0); pos4(bar,0);
+ y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+ y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+ pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ numeric t; path p; p=z4l{z9-z4}..z6r;
+ t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+ filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+ endchar;
+enddef;
+
+def leftarrow(expr code, width) =
+ beginchar(code, width*u#, v_center(spread#+rule_thickness#));
+ adjust_fit(0,0); pickup crisp.nib;
+ pos1(rule_thickness,90); pos2(rule_thickness,90);
+ pos3(bar,0); pos4(bar,0);
+ y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+ y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+ pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ numeric t; path p; p=z4r{z9-z4}..z6r;
+ t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+ filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+ endchar;
+enddef;
+
+def leftrightarrow(expr code) =
+ beginchar(code, 18u#, v_center(spread#+rule_thickness#));
+ adjust_fit(0,0); pickup crisp.nib;
+ pos1(rule_thickness,90); pos2(rule_thickness,90);
+ pos3(bar,0); pos4(bar,0);
+ y0=y1=y2=math_axis; lft x0=hround u;
+ x1=.5w;
+ y3-y0=y0-y4=.24asc_height+eps;
+ x3=x4=x0+3u+eps;
+ pos5(bar,angle(z4-z0)); z5l=z0;
+ pos6(bar,angle(z3-z0)); z6l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ numeric t; path p; p=z4r{z9-z4}..z6r;
+ t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+ x2=xpart point t of p;
+ filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead and stem
+ pos11(rule_thickness,90); pos12(rule_thickness,90);
+ pos13(bar,0); pos14(bar,0);
+ y10=y11=y12=math_axis;
+ rt x10=hround(w-u);
+ x11=.5w;
+ y13-y10=y10-y14=.24asc_height+eps;
+ x13=x14=x10-3u-eps;
+ pos15(bar,angle(z14-z10)); z15l=z10;
+ pos16(bar,angle(z13-z10)); z16l=z10;
+ z19=.381966[.5[z13,z14],z10];
+ numeric t; path p; p=z14l{z19-z14}..z16r;
+ t=xpart(p intersectiontimes((0,y12l)--(w,y12l)));
+ x12=xpart point t of p;
+ filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z12l---z11l..z11r---z12r--subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead and stem
+ endchar;
+enddef;
+
+def rightmonotail(expr code) =
+ beginchar(code,10u#,v_center(spread#+rule_thickness#));
+ adjust_fit(0,0); pickup crisp.nib;
+ pos1(rule_thickness,90); pos2(rule_thickness,90);
+ pos3(bar,0); pos4(bar,0);
+ x3=x4=.5rule_thickness+hround u;
+ y0=y1=y2=math_axis;
+ y3-y0=y0-y4=.24asc_height+eps;
+ x0=x3+3u+eps;
+ rt x1=hround(w-u);
+ pos5(bar,angle(z4-z0)); z5l=z0;
+ pos6(bar,angle(z3-z0)); z6l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ numeric t; path p; p=z4l{z9-z4}..z6r;
+ t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+ filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle;
+ filldraw z1l..z1r---z2r..z2l---z1l & cycle;
+ endchar;
+enddef;
+
+def leftmonotail(expr code) =
+ beginchar(code,10u#,v_center(spread#+rule_thickness#));
+ adjust_fit(0,0); pickup crisp.nib;
+ pos1(rule_thickness,90); pos2(rule_thickness,90);
+ pos3(bar,0); pos4(bar,0);
+ x3=x4=hround(w-u)-.5rule_thickness;
+ y0=y1=y2=math_axis;
+ y3-y0=y0-y4=.24asc_height+eps;
+ x0=x3-3u-eps;
+ lft x1=hround u;
+ pos5(bar,angle(z4-z0)); z5l=z0;
+ pos6(bar,angle(z3-z0)); z6l=z0;
+ z9=.381966[.5[z3,z4],z0];
+ numeric t; path p; p=z4r{z9-z4}..z6r;
+ t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+ filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+ filldraw z1l..z1r---z2r..z2l---z1l & cycle;
+ endchar;
+enddef;
+
+def squiggle(expr code) =
+ beginarithchar(code);
+ pickup rule.nib;
+ x2=.12w; x3=.3w;
+ x4=.7w; x5=.88w;
+ y2=y5=math_axis;
+ y3-y2=y2-y4=.5spread;
+ draw z2{right}..z3{right}..z4{right}..z5{right};
+ endchar;
+enddef;
+
+def leftharpoonup(expr code) =
+ beginchar(code, 18u#, v_center(spread#+rule_thickness#));
+ adjust_fit(0,0); pickup crisp.nib;
+ pos1(rule_thickness,90); pos2(rule_thickness,90);
+ pos3(bar,0); pos4(bar,0);
+ y0=y1=y2=math_axis;
+ x1+.5rule_thickness=hround(w-u);
+ lft x0=hround u;
+ y3-y0=y0-y4=.24asc_height+eps;
+ x3=x4=x0+3u+eps;
+ pos5(bar,angle(z4-z0)); z5l=z0;
+ pos6(bar,angle(z3-z0)); z6l=z0;
+ numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+ t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+ x2=xpart point t of p;
+ filldraw z0--(x0,y2l)---z1l..z1r---z2r
+ ..subpath (t,0) of\\(z3r..{2(x0-x3),y0-y3}z5r)
+ --z3l..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+ endchar;
+enddef;
+
+def leftharpoondown(expr code) =
+ beginchar(code, 18u#, v_center(spread#+rule_thickness#));
+ adjust_fit(0,0); pickup crisp.nib;
+ pos1(rule_thickness,90); pos2(rule_thickness,90);
+ pos3(bar,0); pos4(bar,0);
+ y0=y1=y2=math_axis;
+ x1+.5rule_thickness=hround(w-u);
+ lft x0=hround u;
+ y3-y0=y0-y4=.24asc_height+eps;
+ x3=x4=x0+3u+eps;
+ pos5(bar,angle(z4-z0)); z5l=z0;
+ pos6(bar,angle(z3-z0)); z6l=z0;
+ numeric t; path p; p=z4r..{2(x0-x4),y0-y4}z6r;
+ t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+ x2=xpart point t of p;
+ filldraw z0{2(x4-x0),y4-y0}..z4l
+ --subpath (0,t) of\\(z4r..{2(x0-x4),y0-y4}z6r)
+ ..z2l---z1l..z1r---(x0,y2r)--cycle; % arrowhead and stem
+ endchar;
+enddef;
+
+def rightharpoonup(expr code) =
+ beginchar(code, 18u#, v_center(spread#+rule_thickness#));
+ adjust_fit(0,0); pickup crisp.nib;
+ pos1(rule_thickness,90); pos2(rule_thickness,90);
+ pos3(bar,0); pos4(bar,0);
+ y0=y1=y2=math_axis;
+ x1-.5rule_thickness=hround u;
+ rt x0=hround(w-u);
+ y3-y0=y0-y4=.24asc_height+eps;
+ x3=x4=x0-3u-eps;
+ pos5(bar,angle(z4-z0)); z5l=z0;
+ pos6(bar,angle(z3-z0)); z6l=z0;
+ numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
+ t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+ x2=xpart point t of p;
+ filldraw z0--(x0,y2l)---z1l..z1r---z2r
+ ..subpath (t,0) of\\(z3l..{2(x0-x3),y0-y3}z5r)
+ --z3r..{2(x0-x3),y0-y3}cycle; % arrowhead and stem
+ endchar;
+enddef;
+
+def rightharpoondown(expr code) =
+ beginchar(code, 18u#, v_center(spread#+rule_thickness#));
+ adjust_fit(0,0); pickup crisp.nib;
+ pos1(rule_thickness,90); pos2(rule_thickness,90);
+ pos3(bar,0); pos4(bar,0);
+ y0=y1=y2=math_axis;
+ x1-.5rule_thickness=hround u;
+ rt x0=hround(w-u);
+ y3-y0=y0-y4=.24asc_height+eps;
+ x3=x4=x0-3u-eps;
+ pos5(bar,angle(z4-z0)); z5l=z0;
+ pos6(bar,angle(z3-z0)); z6l=z0;
+ numeric t; path p; p=z4l..{2(x0-x4),y0-y4}z6r;
+ t=xpart(p intersectiontimes((0,y2l)--(w,y2l)));
+ x2=xpart point t of p;
+ filldraw z0{2(x4-x0),y4-y0}..z4r
+ --subpath (0,t) of\\(z4l..{2(x0-x4),y0-y4}z6r)
+ ..z2l---z1l..z1r---(x0,y2r)--cycle; % arrowhead and stem
+ endchar;
+enddef;
+
+def vector(expr code) =
+ beginchar(code, 9u#, asc_height#+.5rule_thickness#,0);
+ italcorr .7[x_height#,asc_height#]*slant;
+ adjust_fit(0,0); pickup rule.nib;
+ lft x1=hround .5u; x2=w-x1; y1=y2=good.x .7[x_height,asc_height];
+ draw z1--z2; % bar
+ rt x3=hround(x2-u);
+ y3=y2+.3(asc_height-x_height);
+ draw z3{x2-x3,2(y2-y3)}...{2(x2-x3),y2-y3}z2; % upper point
+ endchar;
+enddef;
+
+def ofcirc(expr code) =
+ beginchar(code, 7u#, v_center(7u#));
+ adjust_fit(0,0); pickup rule.nib; autorounded;
+ lft x6=hround u; x2=w-x6;
+ z0=.5[z2,z6];
+ y8-y0=x2-x0;
+ y2=math_axis;
+ circle_points; draw_circle; % circle
+ endchar;
+enddef;
+
+def dotp(expr code) =
+ beginchar(code, 5u#, v_center(7u#));
+ adjust_fit(0,0); pickup fine.nib;
+ numeric dot_diam#; dot_diam#=2dot_size#;
+ define_whole_blacker_pixels(dot_diam);
+ pos1(dot_diam,0); pos2(dot_diam,90);
+ lft x1l=hround(.5w-.5dot_diam);
+ y1+.5dot_diam=vround(math_axis+.5dot_diam);
+ z1=z2; dot(1,2); % dot
+ endchar;
+enddef;
+
+def cupp(expr code) =
+ beginchar(code, 10u#, v_center(7u#));
+ adjust_fit(0,0); pickup rule.nib; autorounded;
+ lft x1=hround u; y1=vround(math_axis+.15x_height);
+ x3=w-x1; y3=y1;
+ penpos2(rule_thickness,90); x2=.5w;
+ y2=good.y(math_axis-.15x_height);
+ numeric theta; theta=angle((z2-z1)yscaled 3);
+ penpos1(rule_thickness,90+theta);
+ penpos3(rule_thickness,90-theta);
+ draw z1{dir theta}...z2...{dir-theta}z3;
+ endchar;
+enddef;
+
+def capp(expr code) =
+ beginchar(code, 10u#, v_center(7u#));
+ adjust_fit(0,0); pickup rule.nib; autorounded;
+ lft x1=hround u; y1=vround(math_axis-.15x_height);
+ x3=w-x1; y3=y1;
+ penpos2(rule_thickness,90); x2=.5w;
+ y2=good.y(.15x_height+math_axis);
+ numeric theta; theta=angle((z2-z1)yscaled 3);
+ penpos1(rule_thickness,90+theta);
+ penpos3(rule_thickness,90-theta);
+ draw z1{dir theta}...z2...{dir-theta}z3;
+ endchar;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams1.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams1.mf
new file mode 100644
index 00000000000..8dd700d5e4c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lamstex/lams1.mf
@@ -0,0 +1,675 @@
+% LAMS1.MF VERSION 1.0
+% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
+% ALL RIGHTS RESERVED
+
+if unknown cmbase: input cmbase fi
+% replace the macro adjust_fit by version used in earlier cmbase files to
+% avoid division by zero error caused by newer versions of cmbase
+% Patch by Ingo Hadan (Jan 97)
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l:=-hround(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-letter_fit;
+ enddef;
+
+def mono_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric expansion_factor;
+ mono_charwd#=2letter_fit#
+ +expansion_factor*(charwd+left_adjustment+right_adjustment);
+ forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
+ $:=$.#*expansion_factor*hppp; endfor
+ l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
+ interim xoffset:=-l;
+ r:=l+mono_charwd-shrink_fit;
+ w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
+ charwd:=mono_charwd#; charic:=mono_charic#;
+ enddef;
+
+
+font_identifier:="LAMS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=360/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=0/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+autorounding:=0;
+
+font_slant slant; font_x_height 0#; %x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+
+% **********************************************
+% Macros and character definitions.
+% **********************************************
+
+def Shaft (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=hround 0; x0=hround w;
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+pickup pencircle scaled rule_thickness;
+draw z1--z0;
+endchar;
+enddef;
+
+Shaft(0,1/6);
+Shaft(13,1/5);
+Shaft(26,1/4);
+Shaft(39,1/3);
+Shaft(52,2/5);
+Shaft(65,1/2);
+Shaft(78,3/5);
+Shaft(91,2/3);
+Shaft(104,3/4);
+
+def DashedShaft (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=w;
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+x2=hround w;
+y2=h;
+%filldraw z2l---z1l{z1-z2}..{z2-z1}z1r---z2r{z2-z1}..{z1-z2}cycle;
+pickup pencircle scaled rule_thickness;
+draw z1--1/6z2;
+draw 2/6z2--4/6z2;
+draw 5/6z2--z2;
+endchar;
+enddef;
+
+DashedShaft(1,1/6);
+DashedShaft(14,1/5);
+DashedShaft(27,1/4);
+DashedShaft(40,1/3);
+DashedShaft(53,2/5);
+DashedShaft(66,1/2);
+DashedShaft(79,3/5);
+DashedShaft(92,2/3);
+DashedShaft(105,3/4);
+
+
+def UpperHead (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup rule.nib;
+x1=0; x0=w;
+y1=-d; y0= h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+enddef;
+
+
+UpperHead(2,1/6);
+UpperHead(15,1/5);
+UpperHead(28,1/4);
+UpperHead(41,1/3);
+UpperHead(54,2/5);
+UpperHead(67,1/2);
+UpperHead(80,3/5);
+UpperHead(93,2/3);
+UpperHead(106,3/4);
+
+def LowerHead (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup rule.nib;
+x1=w ; x0=0;
+y1=h; y0=-d;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2l..{z4-z9}z4l---{z9-z4}z4r..z2r--cycle;
+
+endchar;
+enddef;
+
+LowerHead(3,1/6);
+LowerHead(16,1/5);
+LowerHead(29,1/4);
+LowerHead(42,1/3);
+LowerHead(55,2/5);
+LowerHead(68,1/2);
+LowerHead(81,3/5);
+LowerHead(94,2/3);
+LowerHead(107,3/4);
+
+
+
+def UpperTopBarb (expr ChCode, ChHeightFrac)=
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=-d; y0=h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r{dir -(90-theta)}..{z1-z0}z0l--z2l--cycle;
+endchar;
+enddef;
+
+UpperTopBarb(4,1/6);
+UpperTopBarb(17,1/5);
+UpperTopBarb(30,1/4);
+UpperTopBarb(43,1/3);
+UpperTopBarb(56,2/5);
+UpperTopBarb(69,1/2);
+UpperTopBarb(82,3/5);
+UpperTopBarb(95,2/3);
+UpperTopBarb(108,3/4);
+
+def UpperBotBarb (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=-d; y0=h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
+endchar;
+enddef;
+
+
+
+UpperBotBarb(5,1/6);
+UpperBotBarb(18,1/5);
+UpperBotBarb(31,1/4);
+UpperBotBarb(44,1/3);
+UpperBotBarb(57,2/5);
+UpperBotBarb(70,1/2);
+UpperBotBarb(83,3/5);
+UpperBotBarb(96,2/3);
+UpperBotBarb(109,3/4);
+
+
+def LowerTopBarb (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=h; y0=-d;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2l{dir -(90-theta)}..{z1-z0}z0l--z2r--cycle;
+endchar;
+enddef;
+
+LowerTopBarb(6,1/6);
+LowerTopBarb(19,1/5);
+LowerTopBarb(32,1/4);
+LowerTopBarb(45,1/3);
+LowerTopBarb(58,2/5);
+LowerTopBarb(71,1/2);
+LowerTopBarb(84,3/5);
+LowerTopBarb(97,2/3);
+LowerTopBarb(110,3/4);
+
+def LowerBotBarb (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=h; y0=-d;
+numeric theta,delta;theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
+endchar;
+enddef;
+
+LowerBotBarb(7,1/6);
+LowerBotBarb(20,1/5);
+LowerBotBarb(33,1/4);
+LowerBotBarb(46,1/3);
+LowerBotBarb(59,2/5);
+LowerBotBarb(72,1/2);
+LowerBotBarb(85,3/5);
+LowerBotBarb(98,2/3);
+LowerBotBarb(111,3/4);
+
+def LowerTopHook (expr ChCode, ChHeightFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=h; y0=-d;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled spread yscaled spread;
+%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
+%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup rule.nib;
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+%penstroke z2e..{z4-z9}z4e;
+endchar;
+enddef;
+
+LowerTopHook(8,1/6);
+LowerTopHook(21,1/5);
+LowerTopHook(34,1/4);
+LowerTopHook(47,1/3);
+LowerTopHook(60,2/5);
+LowerTopHook(73,1/2);
+LowerTopHook(86,3/5);
+LowerTopHook(99,2/3);
+LowerTopHook(112,3/4);
+
+def LowerBotHook (expr ChCode, ChHeightFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0= 0;
+y1=h; y0=-d;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
+%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
+%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+%penstroke z2e..{z4-z9}z4e;
+
+endchar;
+enddef;
+
+LowerBotHook(9,1/6);
+LowerBotHook(22,1/5);
+LowerBotHook(35,1/4);
+LowerBotHook(48,1/3);
+LowerBotHook(61,2/5);
+LowerBotHook(74,1/2);
+LowerBotHook(87,3/5);
+LowerBotHook(100,2/3);
+LowerBotHook(113,3/4);
+
+
+
+def UpperTopHook (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
+%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+%penstroke z2e..{z3-z9}z3e;
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+endchar;
+enddef;
+
+UpperTopHook(10,1/6);
+UpperTopHook(23,1/5);
+UpperTopHook(36,1/4);
+UpperTopHook(49,1/3);
+UpperTopHook(62,2/5);
+UpperTopHook(75,1/2);
+UpperTopHook(88,3/5);
+UpperTopHook(101,2/3);
+UpperTopHook(114,3/4);
+
+
+def UpperBotHook (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=w;
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
+%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+%penstroke z2e..{z3-z9}z3e;
+
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+endchar;
+enddef;
+UpperBotHook(11,1/6);
+UpperBotHook(24,1/5);
+UpperBotHook(37,1/4);
+UpperBotHook(50,1/3);
+UpperBotHook(63,2/5);
+UpperBotHook(76,1/2);
+UpperBotHook(89,3/5);
+UpperBotHook(102,2/3);
+UpperBotHook(115,3/4);
+
+
+
+def Squiggle (expr ChCode, ChHeightFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0);
+x0= 0; x1=w;
+y0=-d; y1=h;
+numeric theta,delta; theta=angle(z1-z0);
+delta=3u;
+z2=.5/6[z0,z1];
+z8=5.5/6[z0,z1];
+z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+
+pickup pencircle scaled rule_thickness;
+draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
+endchar;
+enddef;
+
+Squiggle(12,1/6);
+Squiggle(25,1/5);
+Squiggle(38,1/4);
+Squiggle(51,1/3);
+Squiggle(64,2/5);
+Squiggle(77,1/2);
+Squiggle(90,3/5);
+Squiggle(103,2/3);
+Squiggle(116,3/4);
+
+def RevShaft (expr ChCode,ChWidthFrac,ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+pickup pencircle scaled rule_thickness;
+draw z1--z0;
+endchar;
+enddef;
+
+RevShaft(117,1/6,1);
+
+def RevDashedShaft (expr ChCode, ChWidthFrac, ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+x2= w;
+y2=-d;
+
+%filldraw z2l---z1l{z1-z2}..{z2-z1}z1r---z2r{z2-z1}..{z1-z2}cycle;
+pickup pencircle scaled rule_thickness;
+draw z1--1/6[z1,z2];
+draw 2/6[z1,z2]--4/6[z1,z2];
+draw 5/6[z1,z2]--z2;
+endchar;
+enddef;
+
+
+RevDashedShaft(118,1/6,1);
+
+beginchar(119,0,math_axis#,0);
+adjust_fit(0,0); pickup rule.nib;
+x0=0;
+y0=y2=math_axis;
+x2r=0; % was z2l
+pos2(1.5rule_thickness,180);
+pos3(bar,180); pos4(bar,180);
+z4=z0+ dir (180-45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z3=z0+ dir (180+45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z9=.381966[.5[z3,z4],z2];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+
+beginchar(120,0,math_axis#,0);
+adjust_fit(0,0); pickup rule.nib;
+x0=0;
+y0=math_axis;
+pos2(1.5rule_thickness,0);
+pos3(bar,0); pos4(bar,0);
+z4=z0+ dir -45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z3=z0+ dir 45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z2r=z0; %was z2l
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+
+endchar;
+
+beginchar(121,0,math_axis#,0);
+adjust_fit(0,0); pickup rule.nib;
+x0=0;
+y0=math_axis;
+pos1(rule_thickness,90);
+pos2(1.5rule_thickness,180);
+pos0(rule_thickness,90);
+pos3(bar,180); pos4(bar,180);
+z4=z0+ dir (180-45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z3=z0+ dir (180+45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z2r=z0; %was z2l
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2l{down}..{left}z0l--z2r--cycle;
+endchar;
+
+
+beginchar(122,0,math_axis#,0);
+adjust_fit(0,0); pickup rule.nib;
+x0=0;
+y0=math_axis;
+pos2(1.5rule_thickness,180);
+pos0(rule_thickness,90);
+pos3(bar,180); pos4(bar,180);
+z4=z0+ dir (180-45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z3=z0+ dir (180+45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z2r=z0; % was z2l
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2l{up}..{left}z0r--z2r--cycle;
+endchar;
+
+compute_spread(.45x_height#,.55x_height);
+beginchar(123,spread#,math_axis#,0#);
+adjust_fit(0,0); pickup rule.nib;
+x0=0;
+y0=math_axis;
+numeric delta; delta=3u++.24asc_height;
+z4=z0+ dir (90) xscaled spread yscaled spread;
+pickup rule.nib;
+rt x40=hround(w);
+y40=good.y 1/2[y0,y4];
+draw z0{right}..z40..{left}z4;
+endchar;
+
+beginchar(124,spread#,math_axis#,0#);
+adjust_fit(0,0); pickup rule.nib;
+x0=0;
+y0=math_axis;
+z4=z0+ dir (-90) xscaled spread yscaled spread;
+pickup rule.nib;
+rt x40=hround(w);
+y40=good.y 1/2[y0,y4];
+%draw z0..{z4-z0}z40..z4;
+draw z0{right}..z40..{left}z4;
+endchar;
+
+
+beginchar(125,18u#,math_axis#,0#);
+adjust_fit(0,0);
+x0=hround 0; x1=hround(w);
+y0=math_axis; y1=math_axis;
+numeric theta,delta; theta=angle(z1-z0);
+delta=3u;
+z2=.5/6[z0,z1];
+z8=5.5/6[z0,z1];
+z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+
+pickup pencircle scaled rule_thickness;
+draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
+endchar;
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams2.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams2.mf
new file mode 100644
index 00000000000..49c18c18ef3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lamstex/lams2.mf
@@ -0,0 +1,623 @@
+% LAMS2.MF VERSION 1.0
+% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
+% ALL RIGHTS RESERVED
+
+if unknown cmbase: input cmbase fi
+% replace the macro adjust_fit by version used in earlier cmbase files to
+% avoid division by zero error caused by newer versions of cmbase
+% Patch by Ingo Hadan (Jan 97)
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l:=-hround(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-letter_fit;
+ enddef;
+
+def mono_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric expansion_factor;
+ mono_charwd#=2letter_fit#
+ +expansion_factor*(charwd+left_adjustment+right_adjustment);
+ forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
+ $:=$.#*expansion_factor*hppp; endfor
+ l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
+ interim xoffset:=-l;
+ r:=l+mono_charwd-shrink_fit;
+ w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
+ charwd:=mono_charwd#; charic:=mono_charic#;
+ enddef;
+
+font_identifier:="LAMS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=360/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=0/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+autorounding:=0;
+
+font_slant slant; font_x_height 0;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+% **********************************************
+% Macros and character definitions.
+% **********************************************
+
+def Shaft (expr ChCode, ChWidthFrac,ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+x2= w;
+y2=h;
+%filldraw z2l---z1l{z1-z2}..{z2-z1}z1r---z2r{z2-z1}..{z1-z2}cycle;
+pickup pencircle scaled rule_thickness;
+draw z1--z0;
+penlabels(1,2); endchar;
+enddef;
+
+Shaft(0,1,4/5);
+Shaft(13,1,5/6);
+Shaft(26,1,1);
+Shaft(39,5/6,1);
+Shaft(52,4/5,1);
+Shaft(65,3/4,1);
+Shaft(78,2/3,1);
+Shaft(91,3/5,1);
+Shaft(104,1/2,1);
+
+def DashedShaft (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+x2= w;
+y2=h;
+%filldraw z2l---z1l{z1-z2}..{z2-z1}z1r---z2r{z2-z1}..{z1-z2}cycle;
+pickup pencircle scaled rule_thickness;
+draw z1--1/6z2;
+draw 2/6z2--4/6z2;
+draw 5/6z2--z2;
+penlabels(1,2); endchar;
+enddef;
+
+DashedShaft(1,1,4/5);
+DashedShaft(14,1,5/6);
+DashedShaft(27,1,1);
+DashedShaft(40,5/6,1);
+DashedShaft(53,4/5,1);
+DashedShaft(66,3/4,1);
+DashedShaft(79,2/3,1);
+DashedShaft(92,3/5,1);
+DashedShaft(105,1/2,1);
+
+
+def UpperHead (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=-d; y0=h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+enddef;
+
+UpperHead(2,1,4/5);
+UpperHead(15,1,5/6);
+UpperHead(28,1,1);
+UpperHead(41,5/6,1);
+UpperHead(54,4/5,1);
+UpperHead(67,3/4,1);
+UpperHead(80,2/3,1);
+UpperHead(93,3/5,1);
+UpperHead(106,1/2,1);
+
+def LowerHead (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w; x0=0;
+y1=h; y0=-d;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+enddef;
+
+LowerHead(3,1,4/5);
+LowerHead(16,1,5/6);
+LowerHead(29,1,1);
+LowerHead(42,5/6,1);
+LowerHead(55,4/5,1);
+LowerHead(68,3/4,1);
+LowerHead(81,2/3,1);
+LowerHead(94,3/5,1);
+LowerHead(107,1/2,1);
+
+
+
+
+
+def UpperTopBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=-d; y0=h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r{dir -(90-theta)}..{z1-z0}z0l--z2l--cycle;
+endchar;
+enddef;
+
+UpperTopBarb(4,1,4/5);
+UpperTopBarb(17,1,5/6);
+UpperTopBarb(30,1,1);
+UpperTopBarb(43,5/6,1);
+UpperTopBarb(56,4/5,1);
+UpperTopBarb(69,3/4,1);
+UpperTopBarb(82,2/3,1);
+UpperTopBarb(95,3/5,1);
+UpperTopBarb(108,1/2,1);
+
+
+def UpperBotBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=-d; y0=h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
+endchar;
+enddef;
+
+UpperBotBarb(5,1,4/5);
+UpperBotBarb(18,1,5/6);
+UpperBotBarb(31,1,1);
+UpperBotBarb(44,5/6,1);
+UpperBotBarb(57,4/5,1);
+UpperBotBarb(70,3/4,1);
+UpperBotBarb(83,2/3,1);
+UpperBotBarb(96,3/5,1);
+UpperBotBarb(109,1/2,1);
+
+
+def LowerTopBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=h; y0=-d;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2l{dir -(90-theta)}..{z1-z0}z0l--z2r--cycle;
+endchar;
+enddef;
+
+
+LowerTopBarb(6,1,4/5);
+LowerTopBarb(19,1,5/6);
+LowerTopBarb(32,1,1);
+LowerTopBarb(45,5/6,1);
+LowerTopBarb(58,4/5,1);
+LowerTopBarb(71,3/4,1);
+LowerTopBarb(84,2/3,1);
+LowerTopBarb(97,3/5,1);
+LowerTopBarb(110,1/2,1);
+
+def LowerBotBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=h; y0=-d;
+numeric theta,delta;theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
+endchar;
+enddef;
+
+
+LowerBotBarb(7,1,4/5);
+LowerBotBarb(20,1,5/6);
+LowerBotBarb(33,1,1);
+LowerBotBarb(46,5/6,1);
+LowerBotBarb(59,4/5,1);
+LowerBotBarb(72,3/4,1);
+LowerBotBarb(85,2/3,1);
+LowerBotBarb(98,3/5,1);
+LowerBotBarb(111,1/2,1);
+
+def LowerTopHook (expr ChCode, ChWidthFrac,ChHeightFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=h; y0=-d;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled spread yscaled spread;
+%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
+%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup rule.nib;
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+%penstroke z2e..{z4-z9}z4e;
+
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+LowerTopHook(8,1,4/5);
+LowerTopHook(21,1,5/6);
+LowerTopHook(34,1,1);
+LowerTopHook(47,5/6,1);
+LowerTopHook(60,4/5,1);
+LowerTopHook(73,3/4,1);
+LowerTopHook(86,2/3,1);
+LowerTopHook(99,3/5,1);
+LowerTopHook(112,1/2,1);
+
+def LowerBotHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=h; y0=-d;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
+%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
+%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+%penstroke z2e..{z4-z9}z4e;
+
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+LowerBotHook(9,1,4/5);
+LowerBotHook(22,1,5/6);
+LowerBotHook(35,1,1);
+LowerBotHook(48,5/6,1);
+LowerBotHook(61,4/5,1);
+LowerBotHook(74,3/4,1);
+LowerBotHook(87,2/3,1);
+LowerBotHook(100,3/5,1);
+LowerBotHook(113,1/2,1);
+
+
+
+def UpperTopHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
+%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+%penstroke z2e..{z3-z9}z3e;
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+UpperTopHook(10,1,4/5);
+UpperTopHook(23,1,5/6);
+UpperTopHook(36,1,1);
+UpperTopHook(49,5/6,1);
+UpperTopHook(62,4/5,1);
+UpperTopHook(75,3/4,1);
+UpperTopHook(88,2/3,1);
+UpperTopHook(101,3/5,1);
+UpperTopHook(114,1/2,1);
+
+
+def UpperBotHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
+%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+%penstroke z2e..{z3-z9}z3e;
+
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+UpperBotHook(11,1,4/5);
+UpperBotHook(24,1,5/6);
+UpperBotHook(37,1,1);
+UpperBotHook(50,5/6,1);
+UpperBotHook(63,4/5,1);
+UpperBotHook(76,3/4,1);
+UpperBotHook(89,2/3,1);
+UpperBotHook(102,3/5,1);
+UpperBotHook(115,1/2,1);
+
+
+
+def Squiggle (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0);
+x0= 0; x1=(w);
+y0=-d; y1=h;
+numeric theta,delta; theta=angle(z1-z0);
+delta=3u;
+z2=.5/6[z0,z1];
+z8=5.5/6[z0,z1];
+z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+
+pickup pencircle scaled rule_thickness;
+draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
+penlabels(1,2); endchar;
+enddef;
+
+Squiggle(12,1,4/5);
+Squiggle(25,1,5/6);
+Squiggle(38,1,1);
+Squiggle(51,5/6,1);
+Squiggle(64,4/5,1);
+Squiggle(77,3/4,1);
+Squiggle(90,2/3,1);
+Squiggle(103,3/5,1);
+Squiggle(116,1/2,1);
+
+beginchar(117,0,math_axis#,0);
+adjust_fit(0,0); pickup crisp.nib;
+x0=0;
+y0=math_axis;
+pos2(1.5rule_thickness,0);
+pos3(bar,0); pos4(bar,0);
+z4=z0+ dir -45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z3=z0+ dir 45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z2r=z0; %was z2l
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+
+beginchar(118,0,math_axis#,0);
+adjust_fit(0,0); pickup crisp.nib;
+x0=0;
+y0=math_axis;
+pos2(1.5rule_thickness,180);
+pos3(bar,180); pos4(bar,180);
+z4=z0+ dir (180-45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z3=z0+ dir (180+45) xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+
+beginchar(119,0,math_axis#,0);
+adjust_fit(0,0); pickup crisp.nib;
+x0=0;
+y0=math_axis;
+pos2(1.5rule_thickness,0);
+pos3(bar,0); pos4(bar,0);
+pos0(rule_thickness,90);
+z4=z0+ dir -45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z3=z0+ dir 45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2l{down}..{right}z0l--z2r--cycle;
+endchar;
+
+beginchar(120,0,math_axis#,0);
+adjust_fit(0,0); pickup crisp.nib;
+x0=0;
+y0=math_axis;
+pos0(rule_thickness,90);
+pos2(1.5rule_thickness,0);
+pos3(bar,0); pos4(bar,0);
+z4=z0+ dir -45 scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir 45 xscaled ((3u++.24asc_height)+eps-rule_thickness) yscaled ((3u++.24asc_height)+eps-rule_thickness);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2l{up}..{right}z0r--z2r--cycle;
+endchar;
+
+compute_spread(.45x_height#,.55x_height);
+beginchar(121,spread#,math_axis#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x0=w;
+y0=math_axis;
+z4=z0+ dir (90) xscaled spread yscaled spread;
+pickup rule.nib;
+lft x40=0;
+y40=good.y 1/2[y0,y4];
+draw z0{left}..z40..{right}z4;
+endchar;
+
+beginchar(122,spread#,math_axis#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x0=w;
+y0=math_axis;
+z4=z0+ dir (-90) xscaled spread yscaled spread;
+pickup rule.nib;
+lft x40=0;
+y40=good.y 1/2[y0,y4];
+draw z0{left}..z40..{right}z4;
+endchar;
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams3.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams3.mf
new file mode 100644
index 00000000000..1a0bb214e61
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lamstex/lams3.mf
@@ -0,0 +1,902 @@
+% LAMS3.MF VERSION 1.0
+% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
+% ALL RIGHTS RESERVED
+
+if unknown cmbase: input cmbase fi
+% replace the macro adjust_fit by version used in earlier cmbase files to
+% avoid division by zero error caused by newer versions of cmbase
+% Patch by Ingo Hadan (Jan 97)
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l:=-hround(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-letter_fit;
+ enddef;
+
+def mono_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric expansion_factor;
+ mono_charwd#=2letter_fit#
+ +expansion_factor*(charwd+left_adjustment+right_adjustment);
+ forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
+ $:=$.#*expansion_factor*hppp; endfor
+ l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
+ interim xoffset:=-l;
+ r:=l+mono_charwd-shrink_fit;
+ w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
+ charwd:=mono_charwd#; charic:=mono_charic#;
+ enddef;
+
+font_identifier:="LAMS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=360/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=0/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+autorounding:=0;
+
+font_slant slant; font_x_height 0;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+def Shaft (expr ChCode, ChWidthFrac,ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+x2= w;
+y2=h;
+pickup pencircle scaled rule_thickness;
+draw z1--z0;
+penlabels(1,2); endchar;
+enddef;
+
+Shaft(0,2/5,1);
+Shaft(13,1/3,1);
+Shaft(26,1/4,1);
+Shaft(39,1/5,1);
+Shaft(52,1/6,1);
+
+def DashedShaft (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+x2= w;
+y2=h;
+pickup pencircle scaled rule_thickness;
+draw z1--1/6z2;
+draw 2/6z2--4/6z2;
+draw 5/6z2--z2;
+penlabels(1,2); endchar;
+enddef;
+
+DashedShaft(1,2/5,1);
+DashedShaft(14,1/3,1);
+DashedShaft(27,1/4,1);
+DashedShaft(40,1/5,1);
+DashedShaft(53,1/6,1);
+
+def UpperHead (expr ChCode, ChWidthFrac, ChHeightFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=-d; y0=h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+enddef;
+
+UpperHead(2,2/5,1);
+UpperHead(15,1/3,1);
+UpperHead(28,1/4,1);
+UpperHead(41,1/5,1);
+UpperHead(54,1/6,1);
+
+def LowerHead (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0= 0;
+y1=h; y0=-d;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+enddef;
+
+LowerHead(3,2/5,1);
+LowerHead(16,1/3,1);
+LowerHead(29,1/4,1);
+LowerHead(42,1/5,1);
+LowerHead(55,1/6,1);
+
+
+def UpperTopBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=-d; y0=h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r{dir -(90-theta)}..{z1-z0}z0l--z2l--cycle;
+endchar;
+enddef;
+
+
+
+
+
+
+UpperTopBarb(4,2/5,1);
+UpperTopBarb(17,1/3,1);
+UpperTopBarb(30,1/4,1);
+UpperTopBarb(43,1/5,1);
+UpperTopBarb(56,1/6,1);
+
+def UpperBotBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=-d; y0=h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
+endchar;
+enddef;
+UpperBotBarb(5,2/5,1);
+UpperBotBarb(18,1/3,1);
+UpperBotBarb(31,1/4,1);
+UpperBotBarb(44,1/5,1);
+UpperBotBarb(57,1/6,1);
+
+
+def LowerTopBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=h; y0=-d;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2l{dir -(90-theta)}..{z1-z0}z0l--z2r--cycle;
+endchar;
+enddef;
+
+
+
+LowerTopBarb(6,2/5,1);
+LowerTopBarb(19,1/3,1);
+LowerTopBarb(32,1/4,1);
+LowerTopBarb(45,1/5,1);
+LowerTopBarb(58,1/6,1);
+
+def LowerBotBarb (expr ChCode, ChWidthFrac,ChHeightFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=h; y0=-d;
+numeric theta,delta;theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
+endchar;
+enddef;
+
+
+LowerBotBarb(7,2/5,1);
+LowerBotBarb(20,1/3,1);
+LowerBotBarb(33,1/4,1);
+LowerBotBarb(46,1/5,1);
+LowerBotBarb(59,1/6,1);
+
+def LowerTopHook (expr ChCode, ChWidthFrac,ChHeightFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=h; y0=-d;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled spread yscaled spread;
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup rule.nib;
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+LowerTopHook(8,2/5,1);
+LowerTopHook(21,1/3,1);
+LowerTopHook(34,1/4,1);
+LowerTopHook(47,1/5,1);
+LowerTopHook(60,1/6,1);
+
+def LowerBotHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=h; y0=-d;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+LowerBotHook(9,2/5,1);
+LowerBotHook(22,1/3,1);
+LowerBotHook(35,1/4,1);
+LowerBotHook(48,1/5,1);
+LowerBotHook(61,1/6,1);
+
+def UpperTopHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
+%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+%penstroke z2e..{z3-z9}z3e;
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+UpperTopHook(10,2/5,1);
+UpperTopHook(23,1/3,1);
+UpperTopHook(36,1/4,1);
+UpperTopHook(49,1/5,1);
+UpperTopHook(62,1/6,1);
+
+def UpperBotHook (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
+%z3=z0+ dir -(180+(45-theta)) xscaled (delta+eps) yscaled (delta+eps);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+%penstroke z2e..{z3-z9}z3e;
+
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+UpperBotHook(11,2/5,1);
+UpperBotHook(24,1/3,1);
+UpperBotHook(37,1/4,1);
+UpperBotHook(50,1/5,1);
+UpperBotHook(63,1/6,1);
+
+def Squiggle (expr ChCode, ChWidthFrac, ChHeightFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,ChHeightFrac*18u#,0#);
+adjust_fit(0,0);
+x0= 0; x1=(w);
+y0=-d; y1=h;
+numeric theta,delta; theta=angle(z1-z0);
+delta=3u;
+z2=.5/6[z0,z1];
+z8=5.5/6[z0,z1];
+z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+
+pickup pencircle scaled rule_thickness;
+draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
+penlabels(1,2); endchar;
+enddef;
+
+Squiggle(12,2/5,1);
+Squiggle(25,1/3,1);
+Squiggle(38,1/4,1);
+Squiggle(51,1/5,1);
+Squiggle(64,1/6,1);
+
+def RevShaft (expr ChCode,ChHeightFrac,ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+pickup pencircle scaled rule_thickness;
+draw z1--z0;
+penlabels(1,2); endchar;
+enddef;
+
+RevShaft(65,0,1/6);
+RevShaft(78,0,1/5);
+RevShaft(91,0,1/4);
+RevShaft(104,0,1/3);
+
+
+def RevDashedShaft (expr ChCode, ChHeightFrac, ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+x2= w;
+y2=-d;
+pickup pencircle scaled rule_thickness;
+draw z1--1/6z2;
+draw 2/6z2--4/6z2;
+draw 5/6z2--z2;
+penlabels(1,2); endchar;
+enddef;
+
+RevDashedShaft(66,0,1/6);
+RevDashedShaft(79,0,1/5);
+RevDashedShaft(92,0,1/4);
+RevDashedShaft(105,0,1/3);
+
+def RevUpperHead (expr ChCode, ChHeightFrac, ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+enddef;
+
+RevUpperHead(67,0,1/6);
+RevUpperHead(80,0,1/5);
+RevUpperHead(93,0,1/4);
+RevUpperHead(106,0,1/3);
+
+def RevLowerHead (expr ChCode, ChHeightFrac, ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0= 0;
+y1=-d; y0=h;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+RevLowerHead(68,0,1/6);
+RevLowerHead(81,0,1/5);
+RevLowerHead(94,0,1/4);
+RevLowerHead(107,0,1/3);
+
+def RevUpperTopBarb (expr ChCode, ChHeightFrac, ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r{dir (270+theta)}..{z1-z0}z0l--z2l--cycle;
+endchar;
+enddef;
+
+RevUpperTopBarb(69,0,1/6);
+RevUpperTopBarb(82,0,1/5);
+RevUpperTopBarb(95,0,1/4);
+RevUpperTopBarb(108,0,1/3);
+
+def RevUpperBotBarb (expr ChCode,ChHeightFrac,ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
+
+endchar;
+enddef;
+
+RevUpperBotBarb(70,0,1/6);
+RevUpperBotBarb(83,0,1/5);
+RevUpperBotBarb(96,0,1/4);
+RevUpperBotBarb(109,0,1/3);
+
+def RevLowerTopBarb (expr ChCode, ChHeightFrac, ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=-d; y0=h;
+
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2l{dir (180+90+theta)}..{z1-z0}z0l--z2r--cycle;
+endchar;
+enddef;
+
+RevLowerTopBarb(71,0,1/6);
+RevLowerTopBarb(84,0,1/5);
+RevLowerTopBarb(97,0,1/4);
+RevLowerTopBarb(110,0,1/3);
+
+
+def RevLowerBotBarb (expr ChCode, ChHeightFrac,ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=-d; y0=h;
+numeric theta,delta;theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
+
+endchar;
+enddef;
+
+RevLowerBotBarb(72,0,1/6);
+RevLowerBotBarb(85,0,1/5);
+RevLowerBotBarb(98,0,1/4);
+RevLowerBotBarb(111,0,1/3);
+
+def RevLowerTopHook (expr ChCode, ChHeightFrac, ChDepthFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=-d; y0=h;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled spread yscaled spread;
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup rule.nib;
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+endchar;
+enddef;
+
+RevLowerTopHook(73,0,1/6);
+RevLowerTopHook(86,0,1/5);
+RevLowerTopHook(99,0,1/4);
+RevLowerTopHook(112,0,1/3);
+
+
+def RevLowerBotHook (expr ChCode, ChHeightFrac, ChDepthFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
+%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
+%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+%penstroke z2e..{z4-z9}z4e;
+
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+RevLowerBotHook(74,0,1/6);
+RevLowerBotHook(87,0,1/5);
+RevLowerBotHook(100,0,1/4);
+RevLowerBotHook(113,0,1/3);
+
+def RevUpperTopHook (expr ChCode, ChHeightFrac, ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+endchar;
+enddef;
+
+RevUpperTopHook(75,0,1/6);
+RevUpperTopHook(88,0,1/5);
+RevUpperTopHook(101,0,1/4);
+RevUpperTopHook(114,0,1/3);
+
+def RevUpperBotHook (expr ChCode, ChHeightFrac, ChDepthFrac)=
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+RevUpperBotHook(76,0,1/6);
+RevUpperBotHook(89,0,1/5);
+RevUpperBotHook(102,0,1/4);
+RevUpperBotHook(115,0,1/3);
+
+
+
+def RevSquiggle (expr ChCode, ChHeightFrac,ChDepthFrac)=
+
+beginchar(ChCode,18u#,ChHeightFrac*18u#,ChDepthFrac*18u#);
+adjust_fit(0,0);
+x0= 0; x1=(w);
+y0=h; y1=-d;
+numeric theta,delta; theta=angle(z1-z0);
+delta=3u;
+z2=.5/6[z0,z1];
+z8=5.5/6[z0,z1];
+z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+
+pickup pencircle scaled rule_thickness;
+draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
+penlabels(1,2); endchar;
+enddef;
+
+
+RevSquiggle(77,0,1/6);
+RevSquiggle(90,0,1/5);
+RevSquiggle(103,0,1/4);
+RevSquiggle(116,0,1/3);
+
+
+beginchar(117,0,0,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x0 =0;
+y0=0;
+lft x2=0;
+y2=y0;
+pos2(1.5rule_thickness,90);
+pos3(bar,90); pos4(bar,90);
+z4=z0+ dir (270-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir (270+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+
+beginchar(118,0,10/3pt#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x0 =0; y0=0;
+lft x2=0; y2=y0;
+pos2(1.5rule_thickness,270);
+pos3(bar,270); pos4(bar,270);
+z4=z0+ dir (90-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir (90+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+
+beginchar(119,0,0,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x0 =0;
+y0=0;
+lft x2=0;
+y2=y0;
+pos0(rule_thickness,0);
+pos2(1.5rule_thickness,90);
+pos3(bar,90); pos4(bar,80);
+z4=z0+ dir (270-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir (270+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2r{right}..{down}z0r--z2l--cycle;
+endchar;
+
+beginchar(120,0,0,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x0 =0;
+y0=0;
+lft x2=0;
+y2=0;
+pos0(rule_thickness,0);
+pos2(1.5rule_thickness,90);
+pos3(bar,90); pos4(bar,80);
+z4=z0+ dir (270-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir (270+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r{left}..{down}z0l--z2l--cycle;
+endchar;
+
+compute_spread(.45x_height#,.55x_height);
+beginchar(121,0,10/3pt#,0#);
+adjust_fit(0,0); pickup rule.nib;
+lft x0=0;
+y0=0;
+z4=z0+ dir 180 xscaled spread yscaled spread;
+pickup rule.nib;
+top z40= 1/2[z0,z4] + dir 90 xscaled 2.5u yscaled 2.5u;
+draw z0{up}..{z4-z0}z40..{down}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+compute_spread(.45x_height#,.55x_height);
+beginchar(122,0,10/3pt#,0#);
+adjust_fit(0,0); pickup rule.nib;
+lft x0=0;
+y0=0;
+z4=z0- dir 180 xscaled spread yscaled spread;
+pickup rule.nib;
+top z40= 1/2[z0,z4] + dir 90 xscaled 2.5u yscaled 2.5u;
+draw z0{up}..{z4-z0}z40..{down}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+
+beginchar(123,0,18u#,0#);
+adjust_fit(0,0);
+pickup rule.nib;
+lft x0=lft x1=0;
+y0=-d; y1=h;
+numeric theta,delta; theta=angle(z1-z0);
+delta=3u;
+z2=.5/6[z0,z1];
+z8=5.5/6[z0,z1];
+z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+
+pickup pencircle scaled rule_thickness;
+draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
+penlabels(1,2); endchar;
+bye. (3u++.24asc_height)+eps-rule_thickness
+
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams4.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams4.mf
new file mode 100644
index 00000000000..f86836c8bba
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lamstex/lams4.mf
@@ -0,0 +1,614 @@
+% LAMS4.MF VERSION 1.0
+% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
+% ALL RIGHTS RESERVED
+
+if unknown cmbase: input cmbase fi
+% replace the macro adjust_fit by version used in earlier cmbase files to
+% avoid division by zero error caused by newer versions of cmbase
+% Patch by Ingo Hadan (Jan 97)
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l:=-hround(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-letter_fit;
+ enddef;
+
+def mono_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric expansion_factor;
+ mono_charwd#=2letter_fit#
+ +expansion_factor*(charwd+left_adjustment+right_adjustment);
+ forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
+ $:=$.#*expansion_factor*hppp; endfor
+ l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
+ interim xoffset:=-l;
+ r:=l+mono_charwd-shrink_fit;
+ w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
+ charwd:=mono_charwd#; charic:=mono_charic#;
+ enddef;
+
+font_identifier:="LAMS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=360/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=0/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+autorounding:=0;
+
+font_slant slant; font_x_height 0;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+
+def RevShaft (expr ChCode,ChWidthFrac,ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+pickup pencircle scaled rule_thickness;
+draw z1--z0;
+penlabels(1,2); endchar;
+enddef;
+
+
+def RevDashedShaft (expr ChCode, ChWidthFrac, ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+x2= w;
+y2=-d;
+pickup pencircle scaled rule_thickness;
+draw z1--1/6[z1,z2];
+draw 2/6[z1,z2]--4/6[z1,z2];
+draw 5/6[z1,z2]--z2;
+penlabels(1,2); endchar;
+enddef;
+
+
+def RevUpperHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0, ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled delta;
+z3=z0+ dir -(180+(45-theta)) scaled delta;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+enddef;
+
+
+def RevLowerHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0= 0;
+y1=-d; y0=h;
+numeric theta; theta=angle(z1-z0);
+numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled delta;
+z3=z0+ dir -(45-theta) scaled delta;
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+def RevUpperTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r{dir (270+theta)}..{z1-z0}z0l--z2l--cycle;
+endchar;
+enddef;
+
+
+def RevUpperBotBarb (expr ChCode,ChWidthFrac,ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
+
+endchar;
+
+enddef;
+
+
+def RevLowerTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=-d; y0=h;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2l{dir (180+90+theta)}..{z1-z0}z0l--z2r--cycle;
+endchar;
+
+enddef;
+
+
+def RevLowerBotBarb (expr ChCode, ChWidthFrac,ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=-d; y0=h;
+numeric theta,delta;theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
+
+endchar;
+
+enddef;
+
+def RevLowerTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=-d; y0=h;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled spread yscaled spread;
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup rule.nib;
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+endchar;
+enddef;
+
+
+def RevLowerBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
+%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
+%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+%penstroke z2e..{z4-z9}z4e;
+
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+def RevUpperTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=(w);
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+endchar;
+enddef;
+
+def RevUpperBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+
+def RevSquiggle (expr ChCode, ChWidthFrac,ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0);
+x0= 0; x1=(w);
+y0=h; y1=-d;
+numeric theta,delta; theta=angle(z1-z0);
+delta=3u;
+z2=.5/6[z0,z1];
+z8=5.5/6[z0,z1];
+z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+
+pickup pencircle scaled rule_thickness;
+draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
+penlabels(1,2); endchar;
+enddef;
+
+
+RevShaft(0,1,2/5);
+RevShaft(13,1,1/2);
+RevShaft(26,1,3/5);
+RevShaft(39,1,2/3);
+RevShaft(52,1,3/4);
+RevShaft(65,1,4/5);
+RevShaft(78,1,5/6);
+RevShaft(91,1,1);
+RevShaft(104,5/6,1);
+
+RevDashedShaft(1,1,2/5);
+RevDashedShaft(14,1,1/2);
+RevDashedShaft(27,1,3/5);
+RevDashedShaft(40,1,2/3);
+RevDashedShaft(53,1,3/4);
+RevDashedShaft(66,1,4/5);
+RevDashedShaft(79,1,5/6);
+RevDashedShaft(92,1,1);
+RevDashedShaft(105,5/6,1);
+
+RevUpperHead(2,1,2/5);
+RevUpperHead(15,1,1/2);
+RevUpperHead(28,1,3/5);
+RevUpperHead(41,1,2/3);
+RevUpperHead(54,1,3/4);
+RevUpperHead(67,1,4/5);
+RevUpperHead(80,1,5/6);
+RevUpperHead(93,1,1);
+RevUpperHead(106,5/6,1);
+
+RevLowerHead(3,1,2/5);
+RevLowerHead(16,1,1/2);
+RevLowerHead(29,1,3/5);
+RevLowerHead(42,1,2/3);
+RevLowerHead(55,1,3/4);
+RevLowerHead(68,1,4/5);
+RevLowerHead(81,1,5/6);
+RevLowerHead(94,1,1);
+RevLowerHead(107,5/6,1);
+
+
+RevUpperTopBarb(4,1,2/5);
+RevUpperTopBarb(17,1,1/2);
+RevUpperTopBarb(30,1,3/5);
+RevUpperTopBarb(43,1,2/3);
+RevUpperTopBarb(56,1,3/4);
+RevUpperTopBarb(69,1,4/5);
+RevUpperTopBarb(82,1,5/6);
+RevUpperTopBarb(95,1,1);
+RevUpperTopBarb(108,5/6,1);
+
+
+RevUpperBotBarb(5,1,2/5);
+RevUpperBotBarb(18,1,1/2);
+RevUpperBotBarb(31,1,3/5);
+RevUpperBotBarb(44,1,2/3);
+RevUpperBotBarb(57,1,3/4);
+RevUpperBotBarb(70,1,4/5);
+RevUpperBotBarb(83,1,5/6);
+RevUpperBotBarb(96,1,1);
+RevUpperBotBarb(109,5/6,1);
+
+
+RevLowerTopBarb(6,1,2/5);
+RevLowerTopBarb(19,1,1/2);
+RevLowerTopBarb(32,1,3/5);
+RevLowerTopBarb(45,1,2/3);
+RevLowerTopBarb(58,1,3/4);
+RevLowerTopBarb(71,1,4/5);
+RevLowerTopBarb(84,1,5/6);
+RevLowerTopBarb(97,1,1);
+RevLowerTopBarb(110,5/6,1);
+
+
+
+RevLowerBotBarb(7,1,2/5);
+RevLowerBotBarb(20,1,1/2);
+RevLowerBotBarb(33,1,3/5);
+RevLowerBotBarb(46,1,2/3);
+RevLowerBotBarb(59,1,3/4);
+RevLowerBotBarb(72,1,4/5);
+RevLowerBotBarb(85,1,5/6);
+RevLowerBotBarb(98,1,1);
+RevLowerBotBarb(111,5/6,1);
+
+
+RevLowerTopHook(8,1,2/5);
+RevLowerTopHook(21,1,1/2);
+RevLowerTopHook(34,1,3/5);
+RevLowerTopHook(47,1,2/3);
+RevLowerTopHook(60,1,3/4);
+RevLowerTopHook(73,1,4/5);
+RevLowerTopHook(86,1,5/6);
+RevLowerTopHook(99,1,1);
+RevLowerTopHook(112,5/6,1);
+
+RevLowerBotHook(9,1,2/5);
+RevLowerBotHook(22,1,1/2);
+RevLowerBotHook(35,1,3/5);
+RevLowerBotHook(48,1,2/3);
+RevLowerBotHook(61,1,3/4);
+RevLowerBotHook(74,1,4/5);
+RevLowerBotHook(87,1,5/6);
+RevLowerBotHook(100,1,1);
+RevLowerBotHook(113,5/6,1);
+
+
+RevUpperTopHook(10,1,2/5);
+RevUpperTopHook(23,1,1/2);
+RevUpperTopHook(36,1,3/5);
+RevUpperTopHook(49,1,2/3);
+RevUpperTopHook(62,1,3/4);
+RevUpperTopHook(75,1,4/5);
+RevUpperTopHook(88,1,5/6);
+RevUpperTopHook(101,1,1);
+RevUpperTopHook(114,5/6,1);
+
+
+RevUpperBotHook(11,1,2/5);
+RevUpperBotHook(24,1,1/2);
+RevUpperBotHook(37,1,3/5);
+RevUpperBotHook(50,1,2/3);
+RevUpperBotHook(63,1,3/4);
+RevUpperBotHook(76,1,4/5);
+RevUpperBotHook(89,1,5/6);
+RevUpperBotHook(102,1,1);
+RevUpperBotHook(115,5/6,1);
+
+RevSquiggle(12,1,2/5);
+RevSquiggle(25,1,1/2);
+RevSquiggle(38,1,3/5);
+RevSquiggle(51,1,2/3);
+RevSquiggle(64,1,3/4);
+RevSquiggle(77,1,4/5);
+RevSquiggle(90,1,5/6);
+RevSquiggle(103,1,1);
+RevSquiggle(116,5/6,1);
+
+beginchar(117,0,0,0);
+adjust_fit(0,0); pickup crisp.nib;
+numeric delta; delta=3u++.24asc_height;
+pickup rule.nib;
+lft x0=0;
+y0=0;
+lft x2=0;
+y2=y0; %top
+pos2(1.5rule_thickness,270);
+pos3(bar,270); pos4(bar,270);
+z4=z0+ dir (90-45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir (90+45) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+
+endchar;
+
+beginchar(118,0,0,10/3pt#);
+adjust_fit(0,0); pickup rule.nib;
+numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+lft x0=0;
+y0=0;
+lft x2=0;
+y2=y0; %top
+pos2(1.5rule_thickness,90);
+pos3(bar,90); pos4(bar,90);
+z4=z0+ dir (270-45) xscaled (delta+eps) yscaled (delta+eps);
+z3=z0+ dir (270+45) xscaled (delta+eps) yscaled (delta+eps);
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+
+beginchar(119,0,0,0);
+adjust_fit(0,0); pickup rule.nib;
+numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+lft x0=0;
+y0=0;
+lft x2=0;
+y2=y0;
+pos0(rule_thickness,0);
+pos2(1.5rule_thickness,270);
+pos3(bar,270); pos4(bar,270);
+z4=z0+ dir (90-45) xscaled (delta+eps) yscaled (delta+eps);
+z3=z0+ dir (90+45) xscaled (delta+eps) yscaled (delta+eps);
+z9=.381966[.5[z3,z4],z0];
+
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r{right}..{up}z0r--z2l--cycle;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+beginchar(120,0,0,0);
+adjust_fit(0,0); pickup rule.nib;
+numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+lft x0=0;
+y0=0;
+lft x2=y0; y2=0;
+pos0(rule_thickness,0);
+pos2(1.5rule_thickness,270);
+pos3(bar,270); pos4(bar,270);
+z4=z0+ dir (90-45) xscaled (delta+eps) yscaled (delta+eps);
+z3=z0+ dir (90+45) xscaled (delta+eps) yscaled (delta+eps);
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2r{left}..{up}z0l--z2l--cycle;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+compute_spread(.45x_height#,.55x_height);
+beginchar(121,0,0,10/3pt#);
+adjust_fit(0,0); pickup rule.nib;
+lft x0=0;
+y0=0;
+z4=z0+ dir 180 xscaled spread yscaled spread;
+bot z40= 1/2[z0,z4] + dir 270 xscaled 2.5u yscaled 2.5u;
+draw z0{down}..{z4-z0}z40..{up}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+compute_spread(.45x_height#,.55x_height);
+beginchar(122,0,0,10/3pt#);
+adjust_fit(0,0); pickup rule.nib;
+lft x0=0;
+y0=0;
+z4=z0 - dir 180 xscaled spread yscaled spread;
+bot z40= 1/2[z0,z4] + dir 270 xscaled 2.5u yscaled 2.5u;
+%draw z0{down}..{z4-z0}z40..{up}z4;
+draw z0{down}..{z4-z0}z40..{up}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+bye.
+
+
diff --git a/Master/texmf-dist/fonts/source/public/lamstex/lams5.mf b/Master/texmf-dist/fonts/source/public/lamstex/lams5.mf
new file mode 100644
index 00000000000..02f3eec76b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lamstex/lams5.mf
@@ -0,0 +1,533 @@
+% LAMS5.MF VERSION 1.0
+% COPYRIGHT (C) 1989 BY THE TEXPLORATORS CORPORATION
+% ALL RIGHTS RESERVED
+
+if unknown cmbase: input cmbase fi
+% replace the macro adjust_fit by version used in earlier cmbase files to
+% avoid division by zero error caused by newer versions of cmbase
+% Patch by Ingo Hadan (Jan 97)
+
+def normal_adjust_fit(expr left_adjustment,right_adjustment) =
+ l:=-hround(left_adjustment*hppp)-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#+left_adjustment+right_adjustment;
+ r:=l+hround(charwd*hppp)-shrink_fit;
+ w:=r-hround(right_adjustment*hppp)-letter_fit;
+ enddef;
+
+def mono_adjust_fit(expr left_adjustment,right_adjustment) =
+ numeric expansion_factor;
+ mono_charwd#=2letter_fit#
+ +expansion_factor*(charwd+left_adjustment+right_adjustment);
+ forsuffixes $=u,jut,cap_jut,beak_jut,apex_corr:
+ $:=$.#*expansion_factor*hppp; endfor
+ l:=-hround(left_adjustment*expansion_factor*hppp)-letter_fit;
+ interim xoffset:=-l;
+ r:=l+mono_charwd-shrink_fit;
+ w:=r-hround(right_adjustment*expansion_factor*hppp)-letter_fit;
+ charwd:=mono_charwd#; charic:=mono_charic#;
+ enddef;
+
+font_identifier:="LAMS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=360/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=0/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+mode_setup; font_setup;
+autorounding:=0;
+
+font_slant slant; font_x_height 0;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+
+def RevShaft (expr ChCode,ChWidthFrac,ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+pickup pencircle scaled rule_thickness;
+draw z1--z0;
+penlabels(1,2); endchar;
+enddef;
+
+
+def RevDashedShaft (expr ChCode, ChWidthFrac, ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(1.5rule_thickness,90+theta);
+x2= w;
+y2=-d;
+pickup pencircle scaled rule_thickness;
+draw z1--1/6[z1,z2];
+draw 2/6[z1,z2]--4/6[z1,z2];
+draw 5/6[z1,z2]--z2;
+penlabels(1,2); endchar;
+enddef;
+
+
+def RevUpperHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled delta;
+z3=z0+ dir -(180+(45-theta)) scaled delta;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+endchar;
+enddef;
+
+
+def RevLowerHead (expr ChCode, ChWidthFrac, ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0= 0;
+y1=-d; y0=h;
+numeric theta; theta=angle(z1-z0);
+numeric delta; delta=((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled delta;
+z3=z0+ dir -(45-theta) scaled delta;
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+def RevUpperTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2r{dir (270+theta)}..{z1-z0}z0l--z2l--cycle;
+endchar;
+enddef;
+
+
+def RevUpperBotBarb (expr ChCode,ChWidthFrac,ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=0; x0=w;
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(180+(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2r{dir (90+theta)}..{z1-z0}z0r--z2l--cycle;
+
+endchar;
+
+enddef;
+
+
+def RevLowerTopBarb (expr ChCode, ChWidthFrac, ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=-d; y0=h;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z4-z9}z4r---{z9-z4}z4l..z2l--cycle;
+filldraw z2l{dir (180+90+theta)}..{z1-z0}z0l--z2r--cycle;
+endchar;
+
+enddef;
+
+
+def RevLowerBotBarb (expr ChCode, ChWidthFrac,ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=w ; x0=0;
+y1=-d; y0=h;
+numeric theta,delta;theta=angle(z1-z0);
+pos1(rule_thickness,90+theta);
+pos0(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90-(45-theta)) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+z3=z0+ dir -(45-theta) scaled ((3u++.24asc_height)+eps-rule_thickness-.5crisp.breadth);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup crisp.nib;
+filldraw z2r..{z3-z9}z3r---{z9-z3}z3l..z2l--cycle;
+filldraw z2l{dir (90+theta)}..{z1-z0}z0r--z2r--cycle;
+
+endchar;
+
+enddef;
+
+
+
+def RevLowerTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=-d; y0=h;
+numeric theta; theta=angle(z1-z0);
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled spread yscaled spread;
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+pickup rule.nib;
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+endchar;
+enddef;
+
+
+def RevLowerBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
+compute_spread(.45x_height#,.55x_height);
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1=(w) ; x0= 0;
+y1=-d; y0=h;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled spread yscaled spread;
+%dir (90-theta) xscaled (delta+eps) yscaled (delta+eps);
+%z3=z0+ dir -(45-theta) xscaled (delta+eps) yscaled (delta+eps);
+pos5(bar,90-(45-theta)); z5l=z0; pos6(bar,-(45-theta)); z6l=z0;
+z2l=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir (180+theta) xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+%penstroke z2e..{z4-z9}z4e;
+
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+def RevUpperTopHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir (90+theta) xscaled (spread) yscaled (spread);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+endchar;
+enddef;
+
+def RevUpperBotHook (expr ChCode, ChWidthFrac, ChDepthFrac)=
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0); pickup crisp.nib;
+x1= 0; x0=(w);
+y1=h; y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta);
+pos2(1.5rule_thickness,theta);
+pos3(bar,theta); pos4(bar,theta);
+z4=z0+ dir -(90-theta) xscaled (spread) yscaled (spread);
+z2r=z0;
+z9=.381966[.5[z3,z4],z0];
+z40= 1/2[z0,z4] + dir theta xscaled 2.5u yscaled 2.5u;
+pickup rule.nib;
+draw z0{z0-z1}..{z4-z0}z40..{z1-z0}z4;
+penlabels(0,1,2,3,4,5,6,9); endchar;
+enddef;
+
+
+def RevSquiggle (expr ChCode, ChWidthFrac,ChDepthFrac)=
+
+beginchar(ChCode,ChWidthFrac*18u#,0,ChDepthFrac*18u#);
+adjust_fit(0,0);
+x0= 0; x1=(w);
+y0=h; y1=-d;
+numeric theta,delta; theta=angle(z1-z0);
+delta=3u;
+z2=.5/6[z0,z1];
+z8=5.5/6[z0,z1];
+z3=1/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z5=3/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z7=5/6[z0,z1] + dir (90+theta) xscaled (delta+eps) yscaled (delta+eps);
+z4=2/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+z6=4/6[z0,z1] + dir -(90-theta) xscaled (delta+eps) yscaled (delta+eps);
+
+pickup pencircle scaled rule_thickness;
+draw z0--z2--z3--z4--z5--z6--z7--z8--z1;
+penlabels(1,2); endchar;
+enddef;
+
+RevShaft(0,4/5,1);
+RevShaft(13,3/4,1);
+RevShaft(26,2/3,1);
+RevShaft(39,3/5,1);
+RevShaft(52,1/2,1);
+RevShaft(65,2/5,1);
+RevShaft(78,1/3,1);
+RevShaft(91,1/4,1);
+RevShaft(104,1/5,1);
+
+
+RevDashedShaft(1,4/5,1);
+RevDashedShaft(14,3/4,1);
+RevDashedShaft(27,2/3,1);
+RevDashedShaft(40,3/5,1);
+RevDashedShaft(53,1/2,1);
+RevDashedShaft(66,2/5,1);
+RevDashedShaft(79,1/3,1);
+RevDashedShaft(92,1/4,1);
+RevDashedShaft(105,1/5,1);
+
+
+RevUpperHead(2,4/5,1);
+RevUpperHead(15,3/4,1);
+RevUpperHead(28,2/3,1);
+RevUpperHead(41,3/5,1);
+RevUpperHead(54,1/2,1);
+RevUpperHead(67,2/5,1);
+RevUpperHead(80,1/3,1);
+RevUpperHead(93,1/4,1);
+RevUpperHead(106,1/5,1);
+
+RevLowerHead(3,4/5,1);
+RevLowerHead(16,3/4,1);
+RevLowerHead(29,2/3,1);
+RevLowerHead(42,3/5,1);
+RevLowerHead(55,1/2,1);
+RevLowerHead(68,2/5,1);
+RevLowerHead(81,1/3,1);
+RevLowerHead(94,1/4,1);
+RevLowerHead(107,1/5,1);
+
+RevUpperTopBarb(4,4/5,1);
+RevUpperTopBarb(17,3/4,1);
+RevUpperTopBarb(30,2/3,1);
+RevUpperTopBarb(43,3/5,1);
+RevUpperTopBarb(56,1/2,1);
+RevUpperTopBarb(69,2/5,1);
+RevUpperTopBarb(82,1/3,1);
+RevUpperTopBarb(95,1/4,1);
+RevUpperTopBarb(108,1/5,1);
+
+RevUpperBotBarb(5,4/5,1);
+RevUpperBotBarb(18,3/4,1);
+RevUpperBotBarb(31,2/3,1);
+RevUpperBotBarb(44,3/5,1);
+RevUpperBotBarb(57,1/2,1);
+RevUpperBotBarb(70,2/5,1);
+RevUpperBotBarb(83,1/3,1);
+RevUpperBotBarb(96,1/4,1);
+RevUpperBotBarb(109,1/5,1);
+
+RevLowerTopBarb(6,4/5,1);
+RevLowerTopBarb(19,3/4,1);
+RevLowerTopBarb(32,2/3,1);
+RevLowerTopBarb(45,3/5,1);
+RevLowerTopBarb(58,1/2,1);
+RevLowerTopBarb(71,2/5,1);
+RevLowerTopBarb(84,1/3,1);
+RevLowerTopBarb(97,1/4,1);
+RevLowerTopBarb(110,1/5,1);
+
+
+RevLowerBotBarb(7,4/5,1);
+RevLowerBotBarb(20,3/4,1);
+RevLowerBotBarb(33,2/3,1);
+RevLowerBotBarb(46,3/5,1);
+RevLowerBotBarb(59,1/2,1);
+RevLowerBotBarb(72,2/5,1);
+RevLowerBotBarb(85,1/3,1);
+RevLowerBotBarb(98,1/4,1);
+RevLowerBotBarb(111,1/5,1);
+
+RevLowerTopHook(8,4/5,1);
+RevLowerTopHook(21,3/4,1);
+RevLowerTopHook(34,2/3,1);
+RevLowerTopHook(47,3/5,1);
+RevLowerTopHook(60,1/2,1);
+RevLowerTopHook(73,2/5,1);
+RevLowerTopHook(86,1/3,1);
+RevLowerTopHook(99,1/4,1);
+RevLowerTopHook(112,1/5,1);
+
+
+RevLowerBotHook(9,4/5,1);
+RevLowerBotHook(22,3/4,1);
+RevLowerBotHook(35,2/3,1);
+RevLowerBotHook(48,3/5,1);
+RevLowerBotHook(61,1/2,1);
+RevLowerBotHook(74,2/5,1);
+RevLowerBotHook(87,1/3,1);
+RevLowerBotHook(100,1/4,1);
+RevLowerBotHook(113,1/5,1);
+
+
+RevUpperTopHook(10,4/5,1);
+RevUpperTopHook(23,3/4,1);
+RevUpperTopHook(36,2/3,1);
+RevUpperTopHook(49,3/5,1);
+RevUpperTopHook(62,1/2,1);
+RevUpperTopHook(75,2/5,1);
+RevUpperTopHook(88,1/3,1);
+RevUpperTopHook(101,1/4,1);
+RevUpperTopHook(114,1/5,1);
+
+RevUpperBotHook(11,4/5,1);
+RevUpperBotHook(24,3/4,1);
+RevUpperBotHook(37,2/3,1);
+RevUpperBotHook(50,3/5,1);
+RevUpperBotHook(63,1/2,1);
+RevUpperBotHook(76,2/5,1);
+RevUpperBotHook(89,1/3,1);
+RevUpperBotHook(102,1/4,1);
+RevUpperBotHook(115,1/5,1);
+
+
+RevSquiggle(12,4/5,1);
+RevSquiggle(25,3/4,1);
+RevSquiggle(38,2/3,1);
+RevSquiggle(51,3/5,1);
+RevSquiggle(64,1/2,1);
+RevSquiggle(77,2/5,1);
+RevSquiggle(90,1/3,1);
+RevSquiggle(103,1/4,1);
+RevSquiggle(116,1/5,1);
+
+
+RevUpperHead(117,1/6,1);
+RevLowerHead(118,1/6,1);
+RevUpperTopBarb(119,1/6,1);
+RevUpperBotBarb(120,1/6,1);
+RevLowerTopBarb(121,1/6,1);
+RevLowerBotBarb(122,1/6,1);
+RevLowerTopHook(123,1/6,1);
+RevLowerBotHook(124,1/6,1);
+RevUpperTopHook(125,1/6,1);
+RevUpperBotHook(126,1/6,1);
+RevSquiggle(127,1/6,1);
+bye.
+
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/circle.mf b/Master/texmf-dist/fonts/source/public/latex/circle.mf
new file mode 100644
index 00000000000..fecca410faf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/circle.mf
@@ -0,0 +1,551 @@
+fontdimen 1: 0,0,0,0,0,0,0,thickness#;
+font_coding_scheme:="LaTeX circle";
+
+let cmchar=\; % cmchar should precede each character, for testing purposes
+
+thickness:=ceiling(thickness#*hppp); % the way rules thicknesses are done
+% thickness#:=thickness/hppp; % and let thickness# round to right value
+% NO, I deleted this BAD line! --- DEK, 9 Jul 87
+pickup pencircle scaled thickness; nib:=savepen;
+
+% arcs sets up the points 1, 2, ..., 8 as follows:
+%
+% |1
+% |*
+% * *
+% 8| 2
+% * | *
+% 7* | *3
+% --*-----*--
+% 6| 4
+% * *
+% |5
+%
+% <----w---->
+
+pair upleft,upright,downleft,downright;
+upright=-downleft=(1,1); downright=-upleft=(1,-1);
+
+% a quarter-circle has width, height and depth set as explained on
+% page 389 of the TeXbook, not the real width, height, and depth
+
+def qbeginchar (expr c, diam_sharp) =
+numeric hh, dd; hh:=.5*(diam_sharp+thickness#);
+dd:=.5*(diam_sharp-thickness#);
+beginchar(c,diam_sharp,hh,dd);
+enddef;
+
+def arcs =
+numeric delta;
+delta:=.5 round((1-sqrt.5)*w); % distance from axis to arc's 45 degree points
+bot y3=0; y7=y3=.5[y5,y1]; y1-y5=w;
+lft x1=0; x5=x1=.5[x7,x3]; x3-x7=w;
+x2-x1=delta; x1-x8=delta; x8=x6; x2=x4;
+y8-y7=delta; y7-y6=delta; y8=y2; y6=y4;
+enddef;
+
+cmchar "2pt, top right";
+qbeginchar(0,4pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "2pt, bottom right";
+qbeginchar(1,4pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "2pt, bottom left";
+qbeginchar(2,4pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "2pt, top left";
+qbeginchar(3,4pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "4pt, top right";
+qbeginchar(4,8pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "4pt, bottom right";
+qbeginchar(5,8pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "4pt, bottom left";
+qbeginchar(6,8pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "4pt, top left";
+qbeginchar(7,8pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "6pt, top right";
+qbeginchar(8,12pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "6pt, bottom right";
+qbeginchar(9,12pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "6pt, bottom left";
+qbeginchar(10,12pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "6pt, top left";
+qbeginchar(11,12pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "8pt, top right";
+qbeginchar(12,16pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "8pt, bottom right";
+qbeginchar(13,16pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "8pt, bottom left";
+qbeginchar(14,16pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "8pt, top left";
+qbeginchar(15,16pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "10pt, top right";
+qbeginchar(16,20pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "10pt, bottom right";
+qbeginchar(17,20pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "10pt, bottom left";
+qbeginchar(18,20pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "10pt, top left";
+qbeginchar(19,20pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "12pt, top right";
+qbeginchar(20,24pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "12pt, bottom right";
+qbeginchar(21,24pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "12pt, bottom left";
+qbeginchar(22,24pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "12pt, top left";
+qbeginchar(23,24pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "14pt, top right";
+qbeginchar(24,28pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "14pt, bottom right";
+qbeginchar(25,28pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "14pt, bottom left";
+qbeginchar(26,28pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "14pt, top left";
+qbeginchar(27,28pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "16pt, top right";
+qbeginchar(28,32pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "16pt, bottom right";
+qbeginchar(29,32pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "16pt, bottom left";
+qbeginchar(30,32pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "16pt, top left";
+qbeginchar(31,32pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "18pt, top right";
+qbeginchar(32,36pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "18pt, bottom right";
+qbeginchar(33,36pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "18pt, bottom left";
+qbeginchar(34,36pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "18pt, top left";
+qbeginchar(35,36pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "20pt, top right";
+qbeginchar(36,40pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "20pt, bottom right";
+qbeginchar(37,40pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "20pt, bottom left";
+qbeginchar(38,40pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "20pt, top left";
+qbeginchar(39,40pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+% The full circles have height and depth 0pt because otherwise there
+% are too many heights and depths for the TFM files
+
+cmchar "1pt, circle";
+beginchar(96,1pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "2pt, circle";
+beginchar(97,2pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "3pt, circle";
+beginchar(98,3pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "4pt, circle";
+beginchar(99,4pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "5pt, circle";
+beginchar(100,5pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "6pt, circle";
+beginchar(101,6pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "7pt, circle";
+beginchar(102,7pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "8pt, circle";
+beginchar(103,8pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "9pt, circle";
+beginchar(104,9pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "10pt, circle";
+beginchar(105,10pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "11pt, circle";
+beginchar(106,11pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "12pt, circle";
+beginchar(107,12pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "13pt, circle";
+beginchar(108,13pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "14pt, circle";
+beginchar(109,14pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "15pt, circle";
+beginchar(110,15pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "1pt, blob";
+beginchar(112,1pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "2pt, blob";
+beginchar(113,2pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "3pt, blob";
+beginchar(114,3pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "4pt, blob";
+beginchar(115,4pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "5pt, blob";
+beginchar(116,5pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "6pt, blob";
+beginchar(117,6pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "7pt, blob";
+beginchar(118,7pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "8pt, blob";
+beginchar(119,8pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "9pt, blob";
+beginchar(120,9pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "10pt, blob";
+beginchar(121,10pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "11pt, blob";
+beginchar(122,11pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "12pt, blob";
+beginchar(123,12pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "13pt, blob";
+beginchar(124,13pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "14pt, blob";
+beginchar(125,14pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "15pt, blob";
+beginchar(126,15pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+bye
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/icmcsc10.mf b/Master/texmf-dist/fonts/source/public/latex/icmcsc10.mf
new file mode 100644
index 00000000000..b99e3615fb0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/icmcsc10.mf
@@ -0,0 +1,115 @@
+% Computer Modern Roman Caps and Small Caps 10 point invisible
+% RmS 91/10/27
+% RmS corrected 92/08/14: moved redefinition of extra_endchar
+% before generate csc and added semicolon
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ICMCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+extra_endchar := extra_endchar & "clearit;";
+
+generate csc % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/latex/icmex10.mf b/Master/texmf-dist/fonts/source/public/latex/icmex10.mf
new file mode 100644
index 00000000000..283d45a24dc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/icmex10.mf
@@ -0,0 +1,89 @@
+% Computer Modern Math Extension 10 point invisible
+if unknown cmbase: input cmbase fi
+
+% RmS 91/10/27: corrected font identifier
+
+font_identifier:="ICMEX"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 40/36pt#, % big\_op\_spacing1
+ 60/36pt#, % big\_op\_spacing2
+ 72/36pt#, % big\_op\_spacing3
+ 216/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+extra_endchar := extra_endchar & "clearit;";
+
+generate mathex % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/icmmi8.mf b/Master/texmf-dist/fonts/source/public/latex/icmmi8.mf
new file mode 100644
index 00000000000..40f3c93e9cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/icmmi8.mf
@@ -0,0 +1,79 @@
+% Computer Modern Math Italic 8 point invisible
+if unknown cmbase: input cmbase fi
+
+% RmS 91/10/27: corrected font identifier
+
+font_identifier:="ICMMI"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+extra_endchar := extra_endchar & "clearit;";
+
+generate mathit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/latex/icmsy8.mf b/Master/texmf-dist/fonts/source/public/latex/icmsy8.mf
new file mode 100644
index 00000000000..51583b51397
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/icmsy8.mf
@@ -0,0 +1,100 @@
+% Computer Modern Math Symbols 8 point invisible
+if unknown cmbase: input cmbase fi
+
+% RmS 91/10/27: corrected font identifier
+
+font_identifier:="ICMSY"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=21.5/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=26.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=25.5/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=26/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=6/8; % subscripts to 8pt will normally be in 6pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+36/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+24/36pt#, % num2
+ math_axis#+1.51rth#+38/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-98/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-24/36pt#), % denom2
+ 7.49pt#-subs*asc_height#, % sup1
+ 6.99pt#-subs*asc_height#, % sup2
+ 82/36pt#, % sup3
+ 36/36pt#, % sub1
+ 72/36pt#, % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 11.9pt#, % delim1
+ 9.1pt#, % delim2
+ math_axis#; % axis\_height
+
+extra_endchar := extra_endchar & "clearit;";
+
+generate mathsy % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/icmtt8.mf b/Master/texmf-dist/fonts/source/public/latex/icmtt8.mf
new file mode 100644
index 00000000000..ab3dc68c0f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/icmtt8.mf
@@ -0,0 +1,80 @@
+% Computer Modern Typewriter Text for use with 8 point (invisible)
+if unknown cmbase: input cmbase fi
+
+% RmS 91/10/27: corrected font identifier
+
+font_identifier:="ICMTT"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=200/36pt#; % height of tallest characters
+asc_height#:=176/36pt#; % height of lowercase ascenders
+cap_height#:=176/36pt#; % height of caps
+fig_height#:=176/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=88/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=64/36pt#; % depth of lowercase descenders
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=27/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+extra_endchar := extra_endchar & "clearit;";
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/ilasy8.mf b/Master/texmf-dist/fonts/source/public/latex/ilasy8.mf
new file mode 100644
index 00000000000..bb08023786d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/ilasy8.mf
@@ -0,0 +1,11 @@
+% lasy8 invisible for SLITeX
+% Use parameter settings from cmsy8
+if unknown cmbase: input cmbase fi
+def generate suffix t= enddef;
+input icmsy8;
+%% RmS 91/11/14: a bit of hacking...
+%% to get the correct font identifier
+let _bye=bye;
+def bye = font_identifier:="ILASY"; _bye enddef;
+input lasy;
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/ilcmss8.mf b/Master/texmf-dist/fonts/source/public/latex/ilcmss8.mf
new file mode 100644
index 00000000000..0683529ef50
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/ilcmss8.mf
@@ -0,0 +1,82 @@
+% SliTeX Sans Serif 8 point invisible, derived from
+% Computer Modern Sans Serif Quotation Style
+% by Pierre A. MacKay, 19 August, 1986
+if unknown cmbase: input cmbase fi
+
+% RmS 91/10/27: corrected font identifier
+
+font_identifier:="ILCMSS"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+extra_endchar := extra_endchar & "clearit;";
+
+generate sroman % switch to the driver file for SliTeX
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/ilcmssb8.mf b/Master/texmf-dist/fonts/source/public/latex/ilcmssb8.mf
new file mode 100644
index 00000000000..468e26e70d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/ilcmssb8.mf
@@ -0,0 +1,82 @@
+% SliTeX Sans-Serif bold 8 point invisible, derived from
+% Computer Modern Sans Serif Quotation Style
+% by Pierre A. MacKay, 19 August, 1986
+if unknown cmbase: input cmbase fi
+
+% RmS 91/10/27: corrected font identifier
+
+font_identifier:="ILCMSSB"; font_size 8pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=3/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=200/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=42/36pt#; % lowercase hairline breadth
+stem#:=42/36pt#; % lowercase stem breadth
+curve#:=42/36pt#; % lowercase curve breadth
+ess#:=40/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=42/36pt#; % uppercase hairline breadth
+cap_stem#:=46/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=46/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=26/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=48/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=24/36pt#; % serif and arm thickness
+cap_bar#:=23/36pt#; % uppercase bar thickness
+cap_band#:=30/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=42/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=15/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.85; % factor applied to weights of heavy characters
+math_spread:=0.5; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/9; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+extra_endchar := extra_endchar & "clearit;";
+
+generate sroman % switch to the driver file for SliTeX
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/ilcmssi8.mf b/Master/texmf-dist/fonts/source/public/latex/ilcmssi8.mf
new file mode 100644
index 00000000000..075853802ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/ilcmssi8.mf
@@ -0,0 +1,82 @@
+% SliTeX Sans-Serif Slanted 8 point invisible, derived from
+% Computer Modern Sans Serif Quotation Style Slanted
+% by Pierre A. MacKay, 19 August, 1986
+if unknown cmbase: input cmbase fi
+
+% RmS 91/10/27: corrected font identifier
+
+font_identifier:="ILCMSSI"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+extra_endchar := extra_endchar & "clearit;";
+
+generate sroman % switch to the SliTeX driver file.
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/lasy.mf b/Master/texmf-dist/fonts/source/public/latex/lasy.mf
new file mode 100644
index 00000000000..6d4949300b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lasy.mf
@@ -0,0 +1,375 @@
+font_identifier:="LASY";
+font_coding_scheme:="LaTeX symbols";
+
+% Here we steal a bit from mathsy
+
+mode_setup; font_setup;
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+cmchar "Leftward arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"050",6u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,0); pos4(bar,0);
+y0=math_axis; lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t[]; path p[];
+(t1,t2)=(z4r{z9-z4}..z6r) intersectiontimes (z3r{z9-z3}..z5r);
+z10=(z4r{z9-z4}..z6r) intersectionpoint (z3r{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4l--subpath (0,t1) of (z4r{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle;
+ % arrowhead
+penlabels(0,3,4,5,6,9,10); endchar;
+
+% This character is an alteration of the leftward arrow
+% The tip of the arrowhead rests one unit from left edge, same as left arrow
+% Changes:
+% 1) deletion of the stem ... points z1,z2 etc
+% The rest of the numbers stay the same, for any referencing
+% 2) new intersectinpoint z10 is introduced and path slightly altered
+% 3) name, code number and width changed, otherwise essentially the same
+
+
+
+cmchar "Rightward arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"051",6u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,0); pos4(bar,0);
+y0=math_axis; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t[]; path p[];
+(t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r);
+z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle;
+ % arrowhead
+penlabels(0,3,4,5,6,9,10); endchar;
+
+% This character is an alteration of the rightward arrow
+% The tip of the arrowhead rests one unit from right edge, same as right arrow
+% Changes:
+% 1) deletion of the stem ... points z1,z2 etc
+% The rest of the numbers stay the same, for any referencing
+% 2) new intersectinpoint z10 is introduced and path slightly altered
+% 3) name, code number and width changed, otherwise essentially the same
+
+
+
+cmchar "Upward arrowhead";
+beginchar(oct"052",9u#,asc_height#,asc_depth#);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,90); pos4(bar,90);
+top z0=(.5w,0); x0-x3=x4-x0=3u+eps;
+y3=y4=y0-.24asc_height-eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t[]; path p[];
+(t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r);
+z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle;
+ % arrowhead
+penlabels(0,3,4,5,6,9,10); endchar;
+
+% This character is an alteration of the upward arrow
+% The tip of the arrowhead rests on the baseline for reference
+% Changes:
+% 1) deletion of the stem ... points z1,z2 etc
+% The rest of the numbers stay the same, for any referencing
+% 2) point z0 is moved down from the ascender line; the tip touches
+% the baseline
+% 3) new intersectinpoint z10 is introduced and path slightly altered
+% 4) name and code number changed, otherwise essentially the same
+
+
+
+cmchar "Downward arrowhead";
+beginchar(oct"053",9u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,90); pos4(bar,90);
+bot z0=(.5w,0); x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0]; % z9 iintroduces curve to arrowhead
+numeric t[]; path p[]; % rather direction{z9-z4} does this
+(t1,t2)=(z4r{z9-z4}..z6r) intersectiontimes (z3r{z9-z3}..z5r);
+z10=(z4r{z9-z4}..z6r) intersectionpoint (z3r{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4l--subpath (0,t1) of (z4r{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle;
+ % arrowhead
+penlabels(0,3,4,5,6,9,10); endchar;
+
+% This character is an alteration of the downward arrow
+% The tip of the arrowhead rests on the baseline for reference
+% Changes:
+% 1) deletion of the stem ... points z1,z2 etc
+% The rest of the numbers stay the same, for any referencing
+% 2) point z0 is moved up from the descender line to rest on the baseline
+% 3) new intersectinpoint z10 is introduced and path slightly altered
+% 4) name and code number changed, otherwise essentially the same
+
+
+
+cmchar "Square subset sign";
+compute_spread(5/4x_height#,3/2x_height#); % the spread of `$=$'
+beginchar(oct"074",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround(1.5u+oo); x1=x4=hround(w-1.5u)+eps; x3=x2;
+y1-y4=spread; y2=y1; y3=y4; y1=math_axis+.5spread;
+draw z1--z2--z3--z4; % bars and stem
+labels(1,2,3,4); endchar;
+
+% This character is an alteration of the square subset or equal to sign
+% Changes:
+% 1) changed position of y1 to be .5 of the spread above the math_axis
+% 2) got rid of lower bar (points z8/z9,etc) and the extra spread#' amount
+% which was used in calculations for the lower bar
+% 3) name and code number and height changed, otherwise essentially the same
+
+
+
+cmchar "Square superset sign";
+compute_spread(5/4x_height#,3/2x_height#); % the spread of `$=$'
+beginchar(oct"075",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=x4=hround 1.5u-eps; rt x2=hround(w-1.5u-oo); x3=x2;
+y1-y4=spread; y2=y1; y3=y4; y1=math_axis+.5spread;
+draw z1--z2--z3--z4; % bars and stem
+labels(1,2,3,4); endchar;
+
+% This character is an alteration of the square superset or equal to sign
+% Changes:
+% 1) changed position of y1 to be .5 of the spread above the math_axis
+% 2) got rid of lower bar (points z8/z9,etc) and the extra spread#' amount
+% which was used in calculations for the lower bar
+% 3) name and code number and height changed, otherwise essentially the same
+
+
+
+cmchar "Diamond";
+beginchar(oct"063",2(.85asc_height#-math_axis#)+2u#,v_center(7u#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=.85asc_height-math_axis;
+x4=x8=good.x .5w; w:=r:=2x4; rt x2=w-lft x6=good.x(x4+a);
+y2=y6=.5[y4,y8]=.5cap_height; top y8=good.y(y2+a);
+draw z2--z4--z6--z8--cycle;
+labels(2,4,6,8); endchar;
+
+% This character is an alteration of the diamond operator
+% The four tips are equidistant from the center point (.5w,math_axis),
+% this distance being half of the cap height
+% and related to that in the square character
+% slightly less though, since it looks too big if the actually have same
+% length
+% Changes:
+% 1) To the amount a, which gives the distance of the tips from the center
+% 2) The width is related to the asc_height, so it changes with it
+% 3) name and code number and width changed, otherwise essentially the same
+% The numbers stay the same, for any referencing
+
+
+
+cmchar "Square";
+beginchar(oct"062",2.1math_axis#+4u#,v_center(7u#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=round(2.1math_axis);
+x1=x4=good.x 2u; x2=x3=x1+a;
+y3=y4=.5(cap_height-a); y1=y2=y3+a;
+draw z1--z2--z3--z4--cycle;
+labels(1,2,3,4); endchar;
+
+% The size of this character is related to the diamond character, it's
+% sightly larger.
+% It is NOT the diamond character which has been rotated
+% Vertical alignment raised to .5 cap height from math-axis height
+% 2 units of sidebearing space on each side, since vertical lines usually
+% need a little more space, actually it's 2 units-.5rule.nib
+
+
+
+cmchar "Bowtie operator";
+beginchar(oct"061",13u#,v_center(7u#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=round(1.1*math_axis);
+x1=x4=good.x 1.5u; x2=x3=w-x1;
+y1=y2=good.y(.5(cap_height-2a)); y3=y4=y1+2a;
+draw z1--z3--z2--z4--cycle;
+labels(1,2,3,4); endchar;
+
+% Arbitrary width given
+% Length of the bars at the edges are 2.2*math_axis length
+% and it's vertically aligned on the high, i.e., .5 cap height as opposed
+% to being aligned on the math axis
+
+
+
+cmchar "Upside-down Uppercase Greek Omega";
+beginchar(oct"060",13u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#; %italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,-90); pos2(cap_curve,0);
+pos3(vair,0); pos4(cap_curve,180); pos5(vair,180);
+x1=.5w; bot y1r=0-o; lft x4r=hround u; y2=y4=1/3h; x2=w-x4;
+rt x5l=hround(1/3(w+.5u)+.5hair); top y3=top y5=h; x3=w-x5;
+filldraw stroke z3e{down}...{down}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{up}...{up}z5e; % bowl
+numeric arm_thickness; path p; p=z3{down}...{down}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,90); pos7(fudged.hair,0);
+top y6r=h; x6=x3; rt x7r=hround (w-.8u); y7=good.y(y6l-.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w+h,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,1.2beak_jut); % right arm and beak
+pos8(arm_thickness,90); pos9(fudged.hair,180);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,-1.2beak_jut); % left arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+% This character is taken from the Upper Case Omega of cmr
+% Directions and reference points are reversed and flipped
+% pos angles are flipped by 180 degrees
+% vertical values are reversed, up/down directions in the
+% filldraw stroke are reversed
+% left strokes same, but changes reference points
+% italic correction based on furthest pont of character , so made it
+% full cap_height minus amount for the beak, taken from the cap XI
+% I suppose a transformation of paths would have worked also, but this
+% way, limits are maintained better, i think
+% w+h instead of just w in intersection to make sure paths do intersect
+
+
+
+cmchar "Leads to character extension";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"072",12u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=round(.45math_axis);
+y11=y13=y15=math_axis; y12-a=y14+a=good.y math_axis;
+x11=0; x15=w; x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15];
+path p; p=z12{right}...z13...z14{right};
+draw z11{dir(-angle direction 1 of p)}...z12{right}...z13...
+ z14{right}...z15{dir(-angle direction 1 of p)};
+penlabels(11,12,13,14,15); endchar;
+
+% This character is an extension to fit with the Leads to character with
+% arrowhead
+% This character goes from edge to edge and a series of these can be linked
+% as desired.
+% It has 2/3 the width of that character, and if this relation is kept, the
+% the curves should all match
+
+
+
+cmchar "Leads to character with arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"073",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,0); pos4(bar,0);
+y0=math_axis; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t[]; path p[];
+(t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r);
+z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle;
+ % arrowhead
+pickup rule.nib;
+numeric a; a=round(.45math_axis);
+y11=y13=y15=y16=y0; y12-a=y14+a=good.y math_axis;
+x11=0; x15=2/3w; z17=lft z10;
+x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15]; x16=.3[x15,x0];
+path p; p=z12{right}...z13...z14{right};
+draw z11{dir(-angle direction 1 of p)}...
+ z12{right}...z13...z14{right}...z16{right}...z17;
+penlabels(0,3,4,5,6,9,10,11,12,13,14,15,16); endchar;
+
+% This character uses the rightward arrow arrowhead
+% The width is the same as that of the regular arrow
+% An extension character can be added for longer squiggles
+
+
+cmchar "LASY \lhd triangle";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"001",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+% taken directly from CMR "less than" character
+% the path was closed to make a triangle
+
+
+
+cmchar "LASY \unlhd triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"002",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3--cycle; % triangle
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+% taken directly from CMR "less than or equal to sign"
+% the "less than" path was closed to make a triangle
+
+
+
+cmchar "LASY \rhd triangle";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"003",14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+% taken directly from CMR "greater than" character
+% the path was closed to make a triangle
+
+
+
+cmchar "LASY \unrhd triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(oct"004",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3--cycle; % triangle
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+% taken directly from CMR "greater than or equal to sign"
+% the "greater than" path was closed to make a triangle
+
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/latex/lasy10.mf b/Master/texmf-dist/fonts/source/public/latex/lasy10.mf
new file mode 100644
index 00000000000..72439f08227
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lasy10.mf
@@ -0,0 +1,5 @@
+% Use parameter settings from cmsy10
+if unknown cmbase: input cmbase fi
+def generate suffix t= enddef;
+input cmsy10;
+input lasy;
diff --git a/Master/texmf-dist/fonts/source/public/latex/lasy5.mf b/Master/texmf-dist/fonts/source/public/latex/lasy5.mf
new file mode 100644
index 00000000000..e81d42e6d95
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lasy5.mf
@@ -0,0 +1,5 @@
+% Use parameter settings from cmsy5
+if unknown cmbase: input cmbase fi
+def generate suffix t= enddef;
+input cmsy5;
+input lasy;
diff --git a/Master/texmf-dist/fonts/source/public/latex/lasy6.mf b/Master/texmf-dist/fonts/source/public/latex/lasy6.mf
new file mode 100644
index 00000000000..c55f8011760
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lasy6.mf
@@ -0,0 +1,5 @@
+% Use parameter settings from cmsy6
+if unknown cmbase: input cmbase fi
+def generate suffix t= enddef;
+input cmsy6;
+input lasy;
diff --git a/Master/texmf-dist/fonts/source/public/latex/lasy7.mf b/Master/texmf-dist/fonts/source/public/latex/lasy7.mf
new file mode 100644
index 00000000000..567bf8529ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lasy7.mf
@@ -0,0 +1,5 @@
+% Use parameter settings from cmsy7
+if unknown cmbase: input cmbase fi
+def generate suffix t= enddef;
+input cmsy7;
+input lasy;
diff --git a/Master/texmf-dist/fonts/source/public/latex/lasy8.mf b/Master/texmf-dist/fonts/source/public/latex/lasy8.mf
new file mode 100644
index 00000000000..a8706e33982
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lasy8.mf
@@ -0,0 +1,5 @@
+% Use parameter settings from cmsy8
+if unknown cmbase: input cmbase fi
+def generate suffix t= enddef;
+input cmsy8;
+input lasy;
diff --git a/Master/texmf-dist/fonts/source/public/latex/lasy9.mf b/Master/texmf-dist/fonts/source/public/latex/lasy9.mf
new file mode 100644
index 00000000000..598c4ab91e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lasy9.mf
@@ -0,0 +1,5 @@
+% Use parameter settings from cmsy9
+if unknown cmbase: input cmbase fi
+def generate suffix t= enddef;
+input cmsy9;
+input lasy;
diff --git a/Master/texmf-dist/fonts/source/public/latex/lasyb10.mf b/Master/texmf-dist/fonts/source/public/latex/lasyb10.mf
new file mode 100644
index 00000000000..b6dba7ad897
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lasyb10.mf
@@ -0,0 +1,5 @@
+% Use parameter settings from cmbsy10
+if unknown cmbase: input cmbase fi
+def generate suffix t= enddef;
+input cmbsy10;
+input lasy;
diff --git a/Master/texmf-dist/fonts/source/public/latex/lcircle.mf b/Master/texmf-dist/fonts/source/public/latex/lcircle.mf
new file mode 100644
index 00000000000..1d0fa48c076
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lcircle.mf
@@ -0,0 +1,550 @@
+fontdimen 1: 0,0,0,0,0,0,0,thickness#;
+font_coding_scheme:="LaTeX circle";
+
+let cmchar=\; % cmchar should precede each character, for testing purposes
+
+thickness:=ceiling(thickness#*hppp); % the way rules thicknesses are done
+% thickness#:=thickness/hppp; % and let thickness# round to right value
+% NO, I deleted this BAD line! --- DEK, 9 Jul 87
+pickup pencircle scaled thickness; nib:=savepen;
+
+% arcs sets up the points 1, 2, ..., 8 as follows:
+%
+% |1
+% |*
+% * *
+% 8| 2
+% * | *
+% 7* | *3
+% --*-----*--
+% 6| 4
+% * *
+% |5
+%
+% <----w---->
+
+pair upleft,upright,downleft,downright;
+upright=-downleft=(1,1); downright=-upleft=(1,-1);
+
+% a quarter-circle has width, height and depth set as explained on
+% page 389 of the TeXbook, not the real width, height, and depth
+
+def qbeginchar (expr c, diam_sharp) =
+numeric hh, dd; hh:=.5*(diam_sharp+thickness#);
+dd:=.5*(diam_sharp-thickness#);
+beginchar(c,diam_sharp,hh,dd);
+enddef;
+
+def arcs =
+numeric delta;
+delta:=.5 round((1-sqrt.5)*w); % distance from axis to arc's 45 degree points
+bot y3=0; y7=y3=.5[y5,y1]; y1-y5=w;
+lft x1=0; x5=x1=.5[x7,x3]; x3-x7=w;
+x2-x1=delta; x1-x8=delta; x8=x6; x2=x4;
+y8-y7=delta; y7-y6=delta; y8=y2; y6=y4;
+enddef;
+
+cmchar "2pt, top right";
+qbeginchar(0,4pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "2pt, bottom right";
+qbeginchar(1,4pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "2pt, bottom left";
+qbeginchar(2,4pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "2pt, top left";
+qbeginchar(3,4pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "4pt, top right";
+qbeginchar(4,8pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "4pt, bottom right";
+qbeginchar(5,8pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "4pt, bottom left";
+qbeginchar(6,8pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "4pt, top left";
+qbeginchar(7,8pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "6pt, top right";
+qbeginchar(8,12pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "6pt, bottom right";
+qbeginchar(9,12pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "6pt, bottom left";
+qbeginchar(10,12pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "6pt, top left";
+qbeginchar(11,12pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "8pt, top right";
+qbeginchar(12,16pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "8pt, bottom right";
+qbeginchar(13,16pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "8pt, bottom left";
+qbeginchar(14,16pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "8pt, top left";
+qbeginchar(15,16pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "10pt, top right";
+qbeginchar(16,20pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "10pt, bottom right";
+qbeginchar(17,20pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "10pt, bottom left";
+qbeginchar(18,20pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "10pt, top left";
+qbeginchar(19,20pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "12pt, top right";
+qbeginchar(20,24pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "12pt, bottom right";
+qbeginchar(21,24pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "12pt, bottom left";
+qbeginchar(22,24pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "12pt, top left";
+qbeginchar(23,24pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "14pt, top right";
+qbeginchar(24,28pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "14pt, bottom right";
+qbeginchar(25,28pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "14pt, bottom left";
+qbeginchar(26,28pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "14pt, top left";
+qbeginchar(27,28pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "16pt, top right";
+qbeginchar(28,32pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "16pt, bottom right";
+qbeginchar(29,32pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "16pt, bottom left";
+qbeginchar(30,32pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "16pt, top left";
+qbeginchar(31,32pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "18pt, top right";
+qbeginchar(32,36pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "18pt, bottom right";
+qbeginchar(33,36pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "18pt, bottom left";
+qbeginchar(34,36pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "18pt, top left";
+qbeginchar(35,36pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+cmchar "20pt, top right";
+qbeginchar(36,40pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z7{right}..z6{downright}..z5{down};
+endchar;
+
+cmchar "20pt, bottom right";
+qbeginchar(37,40pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z1{down}..z8{downleft}..z7{left};
+endchar;
+
+cmchar "20pt, bottom left";
+qbeginchar(38,40pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z3{left}..z2{upleft}..z1{up};
+endchar;
+
+cmchar "20pt, top left";
+qbeginchar(39,40pt#);
+numeric delta;
+pickup nib;
+arcs;
+draw z5{up}..z4{upright}..z3{right};
+endchar;
+
+% The full circles have height and depth 0pt because otherwise there
+% are too many heights and depths for the TFM files
+
+cmchar "1pt, circle";
+beginchar(96,1pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "2pt, circle";
+beginchar(97,2pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "3pt, circle";
+beginchar(98,3pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "4pt, circle";
+beginchar(99,4pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "5pt, circle";
+beginchar(100,5pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "6pt, circle";
+beginchar(101,6pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "7pt, circle";
+beginchar(102,7pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "8pt, circle";
+beginchar(103,8pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "9pt, circle";
+beginchar(104,9pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "10pt, circle";
+beginchar(105,10pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "11pt, circle";
+beginchar(106,11pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "12pt, circle";
+beginchar(107,12pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "13pt, circle";
+beginchar(108,13pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "14pt, circle";
+beginchar(109,14pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "15pt, circle";
+beginchar(110,15pt#,0pt#,0pt#);
+pickup nib;
+draw fullcircle scaled w;
+endchar;
+
+cmchar "1pt, blob";
+beginchar(112,1pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "2pt, blob";
+beginchar(113,2pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "3pt, blob";
+beginchar(114,3pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "4pt, blob";
+beginchar(115,4pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "5pt, blob";
+beginchar(116,5pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "6pt, blob";
+beginchar(117,6pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "7pt, blob";
+beginchar(118,7pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "8pt, blob";
+beginchar(119,8pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "9pt, blob";
+beginchar(120,9pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "10pt, blob";
+beginchar(121,10pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "11pt, blob";
+beginchar(122,11pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "12pt, blob";
+beginchar(123,12pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "13pt, blob";
+beginchar(124,13pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "14pt, blob";
+beginchar(125,14pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+cmchar "15pt, blob";
+beginchar(126,15pt#,0pt#,0pt#);
+pickup pencircle scaled w;
+drawdot origin;
+endchar;
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/latex/lcircle10.mf b/Master/texmf-dist/fonts/source/public/latex/lcircle10.mf
new file mode 100644
index 00000000000..082614fa747
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lcircle10.mf
@@ -0,0 +1,14 @@
+%% RmS 91/11/14: check that cmbase is NOT loaded
+%% RmS 92/03/18: changed message to errmessage
+inner bye;
+if not unknown cmbase:
+ errhelp "This font must be generated using the plain base.";
+ errmessage "You can't use cmbase for this font!";
+ expandafter bye fi
+font_identifier "CIRCLE"; font_size 10pt#;
+font_coding_scheme:="LATEX CIRCLE";
+mode_setup;
+
+thickness#:=.4pt#;
+
+input circle
diff --git a/Master/texmf-dist/fonts/source/public/latex/lcirclew10.mf b/Master/texmf-dist/fonts/source/public/latex/lcirclew10.mf
new file mode 100644
index 00000000000..7a828eb363c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lcirclew10.mf
@@ -0,0 +1,13 @@
+%% RmS 91/11/14: check that cmbase is NOT loaded
+%% RmS 92/03/18: changed message to errmessage
+inner bye;
+if not unknown cmbase:
+ errhelp "This font must be generated using the plain base.";
+ errmessage "You can't use cmbase for this font!";
+ expandafter bye fi
+font_identifier "CIRCLEW"; font_size 10pt#;
+font_coding_scheme:="LATEX CIRCLE";
+mode_setup;
+
+thickness#:=.8pt#;
+input circle
diff --git a/Master/texmf-dist/fonts/source/public/latex/lcmss8.mf b/Master/texmf-dist/fonts/source/public/latex/lcmss8.mf
new file mode 100644
index 00000000000..142ae142e6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lcmss8.mf
@@ -0,0 +1,78 @@
+% SliTeX Sans Serif 8 point, derived from
+% Computer Modern Sans Serif Quotation Style
+% by Pierre A. MacKay, 19 August, 1986
+if unknown cmbase: input cmbase fi
+
+font_identifier:="LCMSS"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate sroman % switch to the driver file for SliTeX
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/lcmssb8.mf b/Master/texmf-dist/fonts/source/public/latex/lcmssb8.mf
new file mode 100644
index 00000000000..1393336a379
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lcmssb8.mf
@@ -0,0 +1,78 @@
+% SliTeX Sans-Serif bold 8 point, derived from
+% Computer Modern Sans Serif Quotation Style
+% by Pierre A. MacKay, 19 August, 1986
+if unknown cmbase: input cmbase fi
+
+font_identifier:="LCMSSB"; font_size 8pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=3/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-15/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=200/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=42/36pt#; % lowercase hairline breadth
+stem#:=42/36pt#; % lowercase stem breadth
+curve#:=42/36pt#; % lowercase curve breadth
+ess#:=40/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=42/36pt#; % uppercase hairline breadth
+cap_stem#:=46/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=46/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=26/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=48/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=24/36pt#; % serif and arm thickness
+cap_bar#:=23/36pt#; % uppercase bar thickness
+cap_band#:=30/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=42/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=15/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.85; % factor applied to weights of heavy characters
+math_spread:=0.5; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/9; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate sroman % switch to the driver file for SliTeX
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/lcmssi8.mf b/Master/texmf-dist/fonts/source/public/latex/lcmssi8.mf
new file mode 100644
index 00000000000..7c03c65f147
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/lcmssi8.mf
@@ -0,0 +1,78 @@
+% SliTeX Sans-Serif Slanted 8 point, derived from
+% Computer Modern Sans Serif Quotation Style Slanted
+% by Pierre A. MacKay, 19 August, 1986
+if unknown cmbase: input cmbase fi
+
+font_identifier:="LCMSSI"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate sroman % switch to the SliTeX driver file.
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/legal.txt b/Master/texmf-dist/fonts/source/public/latex/legal.txt
new file mode 100644
index 00000000000..bc50ae84058
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/legal.txt
@@ -0,0 +1,37 @@
+The files specifying the LaTeX fonts may be distributed and/or modified
+under the conditions of the LaTeX Project Public License, either version
+1.2 of this license or (at your option) any later version. The latest
+version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.2 or later is part of all distributions of LaTeX version
+1999/12/01 or later.
+
+The complete listing of files covered by this license is
+ circle.mf icmtt8.mf lasy.mf lasy8.mf lcmss8.mf linew10.mf
+ icmcsc10.mf ilasy8.mf lasy10.mf lasy9.mf lcmssb8.mf sroman.mf
+ icmex10.mf ilcmss8.mf lasy5.mf lasyb10.mf lcmssi8.mf sromanu.mf
+ icmmi8.mf ilcmssb8.mf lasy6.mf lcircle10.mf line.mf
+ icmsy8.mf ilcmssi8.mf lasy7.mf lcirclew10.mf line10.mf
+
+In addition, permission to distribute faithful renderings of the
+details of these fonts, in common font formats, such as (but not
+limited to) TFM, AFM, GF, PK, PFA, PFB and TTF, is also granted. The
+copyright holder applies no restrictions to the use of these fonts in
+documents, however published.
+
+(For other fonts, distributed via this directory, please refer to the
+licence statement of the copyright holder, the American Mathematical
+Society. These fonts are:
+
+ cmbsy5.mf cmbsy8.mf cmcsc9.mf cmex9.mf cmmib7.mf
+ cmbsy6.mf cmbsy9.mf cmex7.mf cmmib5.mf cmmib8.mf
+ cmbsy7.mf cmcsc8.mf cmex8.mf cmmib6.mf cmmib9.mf
+
+They are part of the AMSfonts collections, see
+
+ http://www.ams.org/tex/amsfonts.html
+)
+
+May 2002, Robin Fairbairns, for the LaTeX Team.
+
+latex-team@latex-project.org
diff --git a/Master/texmf-dist/fonts/source/public/latex/line.mf b/Master/texmf-dist/fonts/source/public/latex/line.mf
new file mode 100644
index 00000000000..c9ae71d3fc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/line.mf
@@ -0,0 +1,552 @@
+qqs:=ceiling(qqs#*hppp); % the way rule widths are calculated
+define_pixels(qqh,qqw,arrowlen,arrowht,arrowcurve);
+
+def line (expr delx, dely) =
+numeric qht,qwd,absdely;
+
+if dely > 0:
+ if delx > dely: qwd# := qqw#; qht# := dely*qqw#/delx;
+ else: qht# := qqw#; qwd# := delx*qqw#/dely; fi;
+ beginchar( 8(delx-1)+(dely-1),qwd#,qht#,0pt#);
+ x0=0; y0=0;
+ x1=w; y1=h;
+ else:
+ absdely=-dely;
+ if delx > absdely: qwd# := qqw#; qht# := absdely*qqw#/delx;
+ else: qht# := qqw#; qwd# := delx*qqw#/absdely; fi;
+ beginchar(64+8(delx-1)+(absdely-1),qwd#,qht#,0pt#);
+ x0=0; y0=h;
+ x1=w; y1=0;
+fi;
+pickup pencircle scaled qqs;
+draw z0..z1
+enddef;
+
+def larrow (expr char, delx, dely) =
+numeric rxa,rxb,rxc,rxd,rxe,rya,ryb,ryc,ryd,rye;
+numeric qht,qwd,absdely;
+if dely > 0:
+ if delx > dely: qwd# := qqw#; qht# := dely*qqw#/delx;
+ else: qht# := qqw#; qwd# := delx*qqw#/dely; fi;
+ % fixed by DEK on 24 Jan 89; previous code buggy but caused no harm
+ else:
+ absdely=-dely;
+ if delx > absdely: qwd# := qqw#; qht# := absdely*qqw#/delx;
+ else: qht# := qqw#; qwd# := delx*qqw#/absdely; fi;
+fi;
+
+beginchar(char,qwd#,qht#,0pt#);
+if dely > 0: y0=0; else: y0=h; fi;
+
+x0=0;
+rxa=arrowlen; rya=0;
+rxb=arrowlen; ryb=arrowht;
+rxc=arrowlen; ryc=-arrowht;
+rxd=.5rxa; ryd=.5ryb-arrowcurve;
+rxe=rxd; rye=-ryd;
+
+numeric rlen;
+rlen = sqrt(delx*delx + dely*dely);
+
+x1=(rxa*delx - rya*dely)/rlen;
+y1=(rxa*dely+rya*delx)/rlen + y0;
+
+%x2=rxb; y2=ryb;
+x2=(rxb*delx - ryb*dely)/rlen;
+y2=(rxb*dely+ryb*delx)/rlen + y0;
+
+%x3=rxc; y3=ryc;
+x3=(rxc*delx - ryc*dely)/rlen;
+y3=(rxc*dely+ryc*delx)/rlen + y0;
+
+%x4=rxd; y4=ryd;
+x4=(rxd*delx - ryd*dely)/rlen;
+y4=(rxd*dely+ryd*delx)/rlen + y0;
+
+%x5=rxe; y5=rye;
+x5=(rxe*delx - rye*dely)/rlen;
+y5=(rxe*dely+rye*delx)/rlen + y0;
+
+fill z0..z5..z3--z1--z2..z4..z0--cycle
+enddef;
+
+def rarrow (expr char, delx, dely) =
+
+numeric rxa,rxb,rxc,rxd,rxe,rya,ryb,ryc,ryd,rye;
+numeric qht,qwd,absdely;
+if dely > 0:
+ if delx > dely: qwd# := qqw#; qht# := dely*qqw#/delx;
+ else: qht# := qqw#; qwd# := delx*qqw#/dely; fi;
+ else:
+ absdely=-dely;
+ if delx > absdely: qwd# := qqw#; qht# := absdely*qqw#/delx;
+ else: qht# := qqw#; qwd# := delx*qqw#/absdely; fi;
+fi;
+
+beginchar(char,qwd#,qht#,0pt#);
+
+if dely > 0: y0=h; else: y0=0; fi;
+
+x0=w;
+rxa=-arrowlen; rya=0;
+rxb=rxa; ryb=arrowht;
+rxc=rxa; ryc=-arrowht;
+rxd=.5rxa; ryd=.5ryb-arrowcurve;
+rxe=rxd; rye=-ryd;
+
+numeric rlen;
+rlen = sqrt(delx*delx + dely*dely);
+
+%x1= rxa;y1=rya; %%%% replace the following by rotations
+x1=(rxa*delx - rya*dely)/rlen + x0;
+y1=(rxa*dely+rya*delx)/rlen + y0;
+
+%x2=rxb; y2=ryb;
+x2=(rxb*delx - ryb*dely)/rlen + x0;
+y2=(rxb*dely+ryb*delx)/rlen + y0;
+
+%x3=rxc; y3=ryc;
+x3=(rxc*delx - ryc*dely)/rlen + x0;
+y3=(rxc*dely+ryc*delx)/rlen + y0;
+
+%x4=rxd; y4=ryd;
+x4=(rxd*delx - ryd*dely)/rlen + x0;
+y4=(rxd*dely+ryd*delx)/rlen + y0;
+
+%x5=rxe; y5=rye;
+x5=(rxe*delx - rye*dely)/rlen + x0;
+y5=(rxe*dely+rye*delx)/rlen + y0;
+
+fill z0..z5..z3--z1--z2..z4..z0--cycle
+enddef;
+
+% character code rules, for
+% line(x,y):
+% 0 < x,y <= 6 : 8*(x-1) + (y-1)
+%
+% larrow(x,y):
+% 0 < x,y <= 4 : 8*(2x-1) + (2y-1)
+% y=0 : '33
+% rarrow(x,y):
+% 0 < x,y < 3 : 8*(3x-1) + (3y-1)
+% 0 < x <= 4, y=3 : 8*(2x-1) + 6
+% 0 < x < 4, y = 4 : 8*(2x) + 7
+% x=3, 0 < y <=4 : 8*6 + (2y-1)
+% x = 4, 0 < y < 4 : 8*7 + 2y
+% y=0 : 55
+%
+% for y < 0: value is 64 + value for (x, |y|)
+%
+% up arrow: '66 down arrow: '77
+
+fontdimen 1: 0,0,0,0,0,0,0,qqs#; % line thickness in points
+let cmchar=\; % cmchar should precede each character, for testing purposes
+
+
+font_coding_scheme:= "LaTeX line";
+
+cmchar "Character '00";
+line(1,1);
+endchar;
+
+cmchar "Character '11";
+larrow(9,1,1);
+endchar;
+
+cmchar "Character '22";
+rarrow(18,1,1);
+endchar;
+
+cmchar "Character '01";
+line(1,2);
+endchar;
+
+cmchar "Character '13";
+larrow(11,1,2);
+endchar;
+
+cmchar "Character '25";
+rarrow(21,1,2);
+endchar;
+
+cmchar "Character '02";
+line(1,3);
+endchar;
+
+cmchar "Character '15";
+larrow(13,1,3);
+endchar;
+
+cmchar "Character '16";
+rarrow(14,1,3);
+endchar;
+
+cmchar "Character '03";
+line(1,4);
+endchar;
+
+cmchar "Character '17";
+larrow(15,1,4);
+endchar;
+
+cmchar "Character '27";
+rarrow(23,1,4);
+endchar;
+
+cmchar "Character '04";
+line(1,5);
+endchar;
+
+cmchar "Character '05";
+line(1,6);
+endchar;
+
+cmchar "Character '10";
+line(2,1);
+endchar;
+
+cmchar "Character '31";
+larrow(25,2,1);
+endchar;
+
+cmchar "Character '52";
+rarrow(42,2,1);
+endchar;
+
+cmchar "Character '12";
+line(2,3);
+endchar;
+
+cmchar "Character '35";
+larrow(29,2,3);
+endchar;
+
+cmchar "Character '36";
+rarrow(30,2,3);
+endchar;
+
+cmchar "Character '14";
+line(2,5);
+endchar;
+
+cmchar "Character '20";
+line(3,1);
+endchar;
+
+cmchar "Character '51";
+larrow(41,3,1);
+endchar;
+
+cmchar "Character '61";
+rarrow(49,3,1);
+endchar;
+
+cmchar "Character '21";
+line(3,2);
+endchar;
+
+cmchar "Character '53";
+larrow(43,3,2);
+endchar;
+
+cmchar "Character '63";
+rarrow(51,3,2);
+endchar;
+
+cmchar "Character '23";
+line(3,4);
+endchar;
+
+cmchar "Character '57";
+larrow(47,3,4);
+endchar;
+
+cmchar "Character '67";
+rarrow(55,3,4);
+endchar;
+
+cmchar "Character '24";
+line(3,5);
+endchar;
+
+cmchar "Character '30";
+line(4,1);
+endchar;
+
+cmchar "Character '71";
+larrow(57,4,1);
+endchar;
+
+cmchar "Character '72";
+rarrow(58,4,1);
+endchar;
+
+cmchar "Character '32";
+line(4,3);
+endchar;
+
+cmchar "Character '75";
+larrow(61,4,3);
+endchar;
+
+cmchar "Character '76";
+rarrow(62,4,3);
+endchar;
+
+cmchar "Character '34";
+line(4,5);
+endchar;
+
+cmchar "Character '40";
+line(5,1);
+endchar;
+
+cmchar "Character '41";
+line(5,2);
+endchar;
+
+cmchar "Character '42";
+line(5,3);
+endchar;
+
+cmchar "Character '43";
+line(5,4);
+endchar;
+
+cmchar "Character '45";
+line(5,6);
+endchar;
+
+cmchar "Character '50";
+line(6,1);
+endchar;
+
+cmchar "Character '54";
+line(6,5);
+endchar;
+
+cmchar "Character '100";
+line(1,-1);
+endchar;
+
+cmchar "Character '111";
+larrow(73,1,-1);
+endchar;
+
+cmchar "Character '122";
+rarrow(82,1,-1);
+endchar;
+
+cmchar "Character '101";
+line(1,-2);
+endchar;
+
+cmchar "Character '113";
+larrow(75,1,-2);
+endchar;
+
+cmchar "Character '125";
+rarrow(85,1,-2);
+endchar;
+
+cmchar "Character '102";
+line(1,-3);
+endchar;
+
+cmchar "Character '115";
+larrow(77,1,-3);
+endchar;
+
+cmchar "Character '116";
+rarrow(78,1,-3);
+endchar;
+
+cmchar "Character '103";
+line(1,-4);
+endchar;
+
+cmchar "Character '117";
+larrow(79,1,-4);
+endchar;
+
+cmchar "Character '127";
+rarrow(87,1,-4);
+endchar;
+
+cmchar "Character '104";
+line(1,-5);
+endchar;
+
+cmchar "Character '105";
+line(1,-6);
+endchar;
+
+cmchar "Character '110";
+line(2,-1);
+endchar;
+
+cmchar "Character '131";
+larrow(89,2,-1);
+endchar;
+
+cmchar "Character '152";
+rarrow(106,2,-1);
+endchar;
+
+cmchar "Character '112";
+line(2,-3);
+endchar;
+
+cmchar "Character '135";
+larrow(93,2,-3);
+endchar;
+
+cmchar "Character '136";
+rarrow(94,2,-3);
+endchar;
+
+cmchar "Character '114";
+line(2,-5);
+endchar;
+
+cmchar "Character '120";
+line(3,-1);
+endchar;
+
+cmchar "Character '151";
+larrow(105,3,-1);
+endchar;
+
+cmchar "Character '161";
+rarrow(113,3,-1);
+endchar;
+
+cmchar "Character '121";
+line(3,-2);
+endchar;
+
+cmchar "Character '153";
+larrow(107,3,-2);
+endchar;
+
+cmchar "Character '163";
+rarrow(115,3,-2);
+endchar;
+
+cmchar "Character '123";
+line(3,-4);
+endchar;
+
+cmchar "Character '157";
+larrow(111,3,-4);
+endchar;
+
+cmchar "Character '167";
+rarrow(119,3,-4);
+endchar;
+
+cmchar "Character '124";
+line(3,-5);
+endchar;
+
+cmchar "Character '130";
+line(4,-1);
+endchar;
+
+cmchar "Character '171";
+larrow(121,4,-1);
+endchar;
+
+cmchar "Character '172";
+rarrow(122,4,-1);
+endchar;
+
+cmchar "Character '132";
+line(4,-3);
+endchar;
+
+cmchar "Character '175";
+larrow(125,4,-3);
+endchar;
+
+cmchar "Character '176";
+rarrow(126,4,-3);
+endchar;
+
+cmchar "Character '134";
+line(4,-5);
+endchar;
+
+cmchar "Character '140";
+line(5,-1);
+endchar;
+
+cmchar "Character '141";
+line(5,-2);
+endchar;
+
+cmchar "Character '142";
+line(5,-3);
+endchar;
+
+cmchar "Character '143";
+line(5,-4);
+endchar;
+
+cmchar "Character '145";
+line(5,-6);
+endchar;
+
+cmchar "Character '150";
+line(6,-1);
+endchar;
+
+cmchar "Character '154";
+line(6,-5);
+endchar;
+
+%%%Horizontal arrows:
+
+
+cmchar "Character '33";
+larrow(27,1,0);
+endchar;
+
+cmchar "Character '55"; %right arrow
+beginchar(45,qqw#,qqw#,0pt#);
+x0=w; y0=0;
+x1=x0-arrowlen; y1=0;
+x2=x1; y2=arrowht;
+x3=x1; y3=-y2;
+x4=.5[x0,x1]; y4=.5y2-arrowcurve;
+x5=x4; y5=-y4;
+fill z0..z4..z2--z1--z3..z5..z0--cycle;
+endchar;
+
+%%%vertical arrows
+
+
+cmchar "Character '66"; %up arrow
+beginchar(54,qqw#,qqw#,0pt#);
+x0=0; y0=w;
+y1=y0-arrowlen; x1=0;
+y2=y1; x2=arrowht;
+y3=y1; x3=-x2;
+y4=.5[y0,y1]; x4=.5x2-arrowcurve;
+y5=y4; x5=-x4;
+fill z0..z4..z2--z1--z3..z5..z0--cycle;
+endchar;
+
+
+cmchar "Character '77"; %down arrow
+beginchar(63,qqw#,qqw#,0pt#);
+x0=0; y0=0;
+y1=arrowlen; x1=0;
+y2=y1; x2=arrowht;
+y3=y1; x3=-x2;
+y4=.5y1; x4=.5x2-arrowcurve;
+y5=y4; x5=-x4;
+fill z0..z4..z2--z1--z3..z5..z0--cycle;
+endchar;
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/latex/line10.mf b/Master/texmf-dist/fonts/source/public/latex/line10.mf
new file mode 100644
index 00000000000..5f93014fbad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/line10.mf
@@ -0,0 +1,18 @@
+%% RmS 91/11/14: check that cmbase is NOT loaded
+%% RmS 92/03/18: changed message to errmessage
+inner bye;
+if not unknown cmbase:
+ errhelp "This font must be generated using the plain base.";
+ errmessage "You can't use cmbase for this font!";
+ expandafter bye fi
+font_identifier "LINE"; font_size 10pt#;
+font_coding_scheme:="LATEX LINE";
+mode_setup;
+
+qqs#=.4pt#; %width of lines
+qqh#=10pt#; %height of vertical stroke.
+qqw#=10pt#; %length of horizontal stroke.
+
+%arrow dimensions:
+arrowlen#=.4*qqw#; arrowht#=.15*qqw#; arrowcurve#=.1*arrowht#;
+input line;
diff --git a/Master/texmf-dist/fonts/source/public/latex/linew10.mf b/Master/texmf-dist/fonts/source/public/latex/linew10.mf
new file mode 100644
index 00000000000..1110232291f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/linew10.mf
@@ -0,0 +1,18 @@
+%% RmS 91/11/14: check that cmbase is NOT loaded
+%% RmS 92/03/18: changed message to errmessage
+inner bye;
+if not unknown cmbase:
+ errhelp "This font must be generated using the plain base.";
+ errmessage "You can't use cmbase for this font!";
+ expandafter bye fi
+font_identifier "LINEW"; font_size 10pt#;
+font_coding_scheme:="LATEX LINE";
+mode_setup;
+
+qqs#=.8pt#; %width of lines
+qqh#=10pt#; %height of vertical stroke.
+qqw#=10pt#; %length of horizontal stroke.
+
+%arrow dimensions:
+arrowlen#=.6*qqw#; arrowht#=.22*qqw#; arrowcurve#=.1*arrowht#;
+input line;
diff --git a/Master/texmf-dist/fonts/source/public/latex/sroman.mf b/Master/texmf-dist/fonts/source/public/latex/sroman.mf
new file mode 100644
index 00000000000..722937ca371
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/sroman.mf
@@ -0,0 +1,70 @@
+% This is the driver file sroman.mf based on roman.mf in the
+% Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+% It differs from roman.mf only in that it has been
+% adjusted to call for sromanu.mf with a special uppercase I
+% for the SLITeX fonts: lcmss8, lcmssb8, and lcmssi8.
+% Written by Pierre A. MacKay, 16 Sept. 1986
+
+if ligs>1: font_coding_scheme:="TeX text";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+mode_setup; font_setup;
+
+input sromanu; % upper case (majuscules)
+input romanl; % lower case (minuscules)
+input greeku; % upper case Greek letters
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to roman and italic text
+input accent; % accents common to roman and italic text
+if ligs>1: input romlig; fi % letter ligatures
+if ligs>0: input comlig; fi % ligatures common with italic text
+if ligs<=1: input romsub; fi % substitutes for ligatures
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "k": if serifs: "v": "a" kern -u#, fi\\"w": "e" kern k#,
+ "a" kern k#, "o" kern k#, "c" kern k#;
+ ligtable "P": "A" kern kk#,
+ "y": "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, "," kern kk#;
+ ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#, "u" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ else: "o" kern k#, "e" kern k#, "u" kern k#,
+ "r" kern k#, "a" kern k#, "A" kern kk#, fi
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": "y" kern if serifs: k# else: kk# fi,
+ "Y": "e" kern kk#, "o" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ if serifs: ligtable "h": "m": "n":
+ "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern k#, "w" kern k#;
+ ligtable "c": "h" kern k#, "k" kern k#; fi
+ ligtable "o": "b": "p": "e" kern -k#, "o" kern -k#, "x" kern k#,
+ "d" kern -k#, "c" kern -k#, "q" kern -k#,
+ "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "t": "y" kern k#,
+ "u": "w" kern k#;
+ ligtable "A": if serifs: "R": fi\\ "t" kern k#,
+ "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#;
+ ligtable "g": "j" kern -k#; % logjam
+ ligtable "I": "I" kern -k#; fi % Richard III
+ % there are ligature/kern programs for |"f"| in the {\tt romlig} file
+ % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/latex/sromanu.mf b/Master/texmf-dist/fonts/source/public/latex/sromanu.mf
new file mode 100644
index 00000000000..ddc3b215b0b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/latex/sromanu.mf
@@ -0,0 +1,54 @@
+% File: MF Inputs sromanu.mf
+% Author: Pierre A. MacKay
+% Internet: mackay@cs.washington.edu
+% Date: June 25, 1991
+%
+% This for the SLITeX fonts: lcmss8, lcmssb8, lcmssi8.
+% All characters in romanu.mf except I are generated
+% A special I with slab serifs is then substituted for the
+% normal, confusing, sans-serif I of cmss* fonts.
+% Based on the macros in the METAFONTbook, Appendix E,
+% page 307 & 312. Just as in the case of the iff
+% macro, this depends on the expectation that every
+% character program will end with endchar.
+
+string currenttitle;
+def exclude_I expr t =
+ currenttitle:= t;
+ if t = "The letter I" : let next_ = lose_it_
+ else: let next_ = use_it_ fi; next_ enddef;
+% Add _ to the macro names used by iff to avoid confusion.
+def use_it_ = relax; enddef;
+def lose_it_ = let endchar = fi; let ; = fix_ semi_
+ if false: enddef;
+let cmchar = exclude_I;
+input romanu
+let cmchar=relax;
+
+% Uppercase I provided by Pierre A. MacKay, in June l986.
+% The I has slab serifs based on the proportions of
+% the upper and lower horizontals of upper case E.
+
+cmchar "The letter I";
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % arms based on proportions of uppercase E
+pos3(slab,90); pos4(slab if not serifs:+2stem_corr fi,-90);
+x3=x4=x1; top y3r=h; bot y4r=0;
+pos5(hair,0); pos6(hair,0); % top and bottom right arms
+rt x5r=rt x6r=hround(w-u);
+pos7(hair,180); pos8(hair,180); % top and bottom left arms
+lft x7r=lft x8r=hround(u);
+y5=y7=good.y(y3l-beak)-eps; % beak in case we ever want a beaked serif!
+y6=y8=good.y(y4l+beak)+eps; % watch that this doesn't get too heavy
+arm(3,5,a,darkness,jut); arm(3,7,b,darkness,jut); % top left and right arms
+arm(4,6,c,darkness,jut); arm(4,8,d,darkness,jut); % bottom left and right
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/levy/a.mf b/Master/texmf-dist/fonts/source/public/levy/a.mf
new file mode 100644
index 00000000000..2ab28b905bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/a.mf
@@ -0,0 +1,145 @@
+if unknown gen_acc : readfrom("gen_acc") fi
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def width = 9u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5u# enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos1(stem,0); top y1=x_height+oo; rt x1r=hround(w-.5u); %top right
+ pos2(vstem,-90); pos4(vstem,-270); x4=x2=.5w-u;
+ bot y2r=-oo; top y4r=x_height+oo; %bottom and top bulges
+ pos3(hair,-180); lft x3r=hround .75u; y3=.5[y2,y4]; %left bulge
+ pos6(vstem,90); x6=w-u; y6=y2; %bottom right
+ numeric theta; theta=angle((x4-x6),2.5(y4-y6))-90;
+ pos5(hair,theta); x5=.55[x4,x6]; y5=y3; %point of inflection
+ alpha_tail(6,7); %hook
+ filldraw stroke z1e{(x2-x1,2(y2-y1))}... %diagonal
+ pulled_arc.e(2,3) & pulled_arc.e(3,4) %bowl
+ ...z5e{(x6-x4,2.5(y6-y4))}...z6e{right}...{up}z7e; %diagonal and hook
+ numeric x_baryctr; x_baryctr=.25[x4,x1]; %accent reference
+ numeric pos_stem; pos_stem=x_baryctr; %iota reference
+enddef;
+
+cmchar "Lowercase alpha";
+beginchar("a",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase alpha with grave";
+beginchar(oct"200",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase alpha with rough breathing";
+beginchar(oct"201",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing";
+beginchar(oct"202",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by alpha with grave";
+begindoublechar(oct"203",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase alpha with grave and iota subscript";
+beginchar(oct"204",width#,acc_ht#,iota_dp#);
+this_letter; grave(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing and iota subscript";
+beginchar(oct"205",width#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing and iota subscript";
+beginchar(oct"206",width#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by alpha with iota subscript";
+begindoublechar(oct"207",dim_sigma);
+mid_sigma;
+middoublechar(width#,height#,iota_dp#);
+this_letter; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with acute";
+beginchar(oct"210",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase alpha with rough breathing and acute";
+beginchar(oct"211",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing and acute";
+beginchar(oct"212",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by alpha with acute";
+begindoublechar(oct"213",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase alpha with acute and iota subscript";
+beginchar(oct"214",width#,acc_ht#,iota_dp#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing, acute and iota subscript";
+beginchar(oct"215",width#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing and acute and iota subscript";
+beginchar(oct"216",width#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by alpha with acute and iota subscript";
+begindoublechar(oct"217",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,iota_dp#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with circumflex";
+beginchar(oct"220",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase alpha with rough breathing and circumflex";
+beginchar(oct"221",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing and circumflex";
+beginchar(oct"222",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by alpha with circumflex";
+begindoublechar(oct"223",dim_sigma);
+mid_sigma; middoublechar(width#,Circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase alpha with circumflex and iota subscript";
+beginchar(oct"224",width#,circ_ht#,iota_dp#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with rough breathing, circumflex and iota subscript";
+beginchar(oct"225",width#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with smooth breathing, circumflex and iota subscript";
+beginchar(oct"226",width#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by alpha with circumflex and iota subscript";
+begindoublechar(oct"227",dim_sigma);
+mid_sigma; middoublechar(width#,Circ_ht#,0);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase alpha with iota subscript";
+beginchar(oct"370",width#,height#,iota_dp#);
+this_letter; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by alpha";
+begindoublechar(oct"001",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/b.mf b/Master/texmf-dist/fonts/source/public/levy/b.mf
new file mode 100644
index 00000000000..d6636d9a533
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/b.mf
@@ -0,0 +1,58 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 9u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ numeric thin_stem; thin_stem=.6[hair,stem]; %for upper bowl
+ numeric tilt; tilt=min(2*otilt,.5); %for both bowls
+ pos1(stem,180); y1-.5stem=-d-o; %bottom left
+ pos2(hair,180); y2=.5bar_height; %self-intersection (cf. z15)
+ x1=x2; lft x1r=hround(.75u+.5(hair-stem)); %i.e., lft x2r ~ .75u
+ x3r=x2r; %beginning of curve
+ top y5r=h+oo; bot y14r=-oo; x5r=x14r; %top and bottom bulges
+ top y10r=vstem+bot y9r=x_height; x9r=x10r; %top and bottom of cusp
+ rt x12r=hround(w-.75u); %lower right bulge
+ x5r=.5[lft x2r,rt x12r]; x9r-.5vstem=hround(x5r-.5u-.5vstem);
+ % we want to simulate the following relations, to make slopes consistent
+ % (where z7 is the upper right bulge):
+ % z5r-z3r=whatever*(z9r-z7r)=whatever*(z14r-z12r);
+ % z7r-z5r=whatever*(z12r-z10r)=whatever*(z5r-z3r) yscaled -1;
+ numeric slope;
+ slope=((y10r-y12r)+(y12r-y14r))/((x12r-x10r)+(x12r-x14r));
+ z7'r=z9r+whatever*(1,slope); z7'r=z5r+whatever*(1,-slope);
+ y7r=y7'r; rt x7r=hround rt x7'r;
+ z12r=z14r+whatever*(1,slope); z3r=z5r+whatever*(1,slope);
+ filldraw double_circ_stroke gr_arc.e(7,6,5)(hair,thin_stem,tilt)..
+ gr_arc.e(5,4,3)(hair,thin_stem,tilt)..{down}z2e..z1e; %top and left
+ z2=z15; pos15(hair,slope-90); %intersection pt
+ numeric slope;
+ slope=angle((z14r-z15)yscaled 2);
+ filldraw stroke z15e{dir slope}...gr_arc.e(14,13,12)(hair,stem,tilt); %bottom
+ forsuffixes e=r,l:
+ path curv[]e; numeric S[]e;
+ curv1e=reverse gr_arc.e(9,8,7)(hair,thin_stem,tilt); %cusp bottom
+ curv2e=gr_arc.e(12,11,10)(hair,stem,tilt); endfor %cusp top
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (whatever,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,whatever)=curv1l intersectiontimes curv2r;
+ if S1l=-1 : S1l:=2; fi
+ if S2l=-1 : S2l:=2; fi
+ filldraw stroke subpath(0,S1e+eps) of curv1e; %fill in cusp
+ filldraw stroke subpath(0,S2e+eps) of curv2e;
+ filldraw subpath (S1r+eps,2) of curv1r...subpath(2,S2r+eps) of curv2r..cycle;
+enddef;
+
+cmchar "Lowercase beta";
+beginchar("b",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by beta";
+begindoublechar(oct"002",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/d.mf b/Master/texmf-dist/fonts/source/public/levy/d.mf
new file mode 100644
index 00000000000..1c6dcd333b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/d.mf
@@ -0,0 +1,73 @@
+if unknown gen_sigma: readfrom("gen_sigma") fi
+
+def dims = 8.5u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ top y1r=vround(if not monowidth:.95 fi x_height+oo); x1r=.5w; %top of loop
+ x5r=.5w; bot y5r=-oo; %bottom of ditto
+ lft x3r=w-rt x7r=hround(.75u); y3r=y7r=.5[y1r,y5r]; %left and right bulge
+ filldraw stroke gr_arc.e(1,2,3)(vair,stem,.5otilt) %three quadrants of loop
+ & gr_arc.e(3,4,5)(vair,stem,.5otilt) & gr_arc.e(5,6,7)(vair,stem,.5otilt);
+
+ %we now draw the hook z8..z9..z10. It must satisfy the following constraints:
+ %its outer contour is symmetric with respect to some axis containing z9l;
+ %one end is known, the width there is thin_stem, and the width at z10
+ %is, ideally, stem. (But since we may have to change that we call it Stem.)
+ z8l=z1l; numeric thin_stem, med_stem; thin_stem=.7[hair,Stem];
+ %the aperture, measured perpendicular to the axis, equals Stem
+ numeric apert; apert=2Stem+thin_stem-currentbreadth; %apert=length(z10l-z8l);
+ numeric left_goal; lft left_goal=vround(lft x3r+.5u); %leftmost tangent known
+ numeric top_goal; top top_goal=h+oo; %highest tangent known
+
+ %if by taking Stem=stem we got apert > top_goal-y1l, the problem might
+ %not have a solution with a horizontal tangent; in that case the
+ %constraint is on apert:
+ if 2stem+.7[hair,stem]-currentbreadth>top_goal-y8l: apert=top_goal-y8l;
+ else: Stem=stem; fi
+
+ %we first estimate the slope of the axis by imagining that, in the vicinity
+ %of z9l, the hook looks like a semicircle of diameter apert/2.
+ %(this value is empiric, but reasonable because the tension is high)
+ z0l=(left_goal+.25apert,top_goal-.25apert); %center of semicircle
+ numeric axis; axis=angle(z0l-z8l)+angle(length(z0l-z8l)+-+.5apert,.5apert);
+ z9l=z0l+(.25apert,0)rotated(axis); z10l=z8l+(0,-apert)rotated(axis);
+
+ %we now iterate, correcting z9l until the tangencies are satisfied
+ path hook; numeric left_real; numeric top_real;
+ forever:
+
+ hook:=z8l{dir(axis)}..tension 1.5..z9l..tension 1.5..{-dir(axis)}z10l;
+ if directiontime up of hook=-1:
+ left_error:=0; message "hook has no vertical tangent!";
+ else: left_error:=xpart directionpoint up of hook-left_goal; fi
+ if directiontime right of hook=-1:
+ top_error:=0; message "hook has no horizontal tangent!";
+ else: top_error:=ypart directionpoint right of hook-top_goal; fi
+
+%message "top_error:"; show top_error; message "left_error:"; show left_error;
+
+ exitif (abs(left_error)<.05) and (abs(top_error)<.05);
+ x9l:=x9l-left_error; y9l:=y9l-top_error;
+ axis:=angle(z9l-z8l)+angle(length(z9l-z8l)+-+.5apert,.5apert);
+ x10l:=x8l+apert*sind axis; y10l:=y8l-apert*cosd axis;
+ endfor
+
+ pos8(thin_stem,axis-90); pos10(Stem,axis+90); pos9(.3[hair,Stem],axis+180);
+ filldraw stroke
+ z7e{z7'e}..{dir axis}z8e..tension 1.5..z9e..tension 1.5..{-dir axis}z10e;
+enddef;
+
+cmchar "Lowercase delta";
+beginchar("d",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by delta";
+begindoublechar(oct"004",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/digits.mf b/Master/texmf-dist/fonts/source/public/levy/digits.mf
new file mode 100644
index 00000000000..ea07f0eacd8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/digits.mf
@@ -0,0 +1,317 @@
+% This file is the same as Computer Modern's romand.mf.
+% It contains the ten digits in so-called roman style.
+% Character codes \0060 through \0071 are generated.
+
+% All digits have the same height, width, depth, and italic correction.
+
+cmchar "The numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround max(.7u,1.45u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pickup tiny.nib;
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if not serifs: save slab; slab=bar; fi
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+o; top y4l=if monospace: .8 else: .9 fi\\ h+o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u);
+tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+o+1)--(x3l,h+o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..z4e{left}; % point
+penlabels(1,2,3,4); endchar;
+
+cmchar "The numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,-90); pos8(hair,0);
+bot y7r=0; lft x7=hround .9u; rt x8r=hround(w-.9u); y8=good.y(y7l+beak/2)+eps;
+arm(7,8,a,.3beak_darkness,beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,90); pos3(.4[curve,cap_curve],0);
+top y2r=h+o; x2=.5(w-.5u); rt x3r=hround(w-.9u); y3+.5vair=.75h;
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,180); pos1(cap_hair,180);
+ lft x1r=hround .9u; y1-.5bulb_diam=2/3h;
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l-.25u; pos1(flare,angle(-9u,h));
+ lft x1r=hround .75u; bot y1l=vround .7h; y1r:=good.y y1r; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],0);
+pos5(hair_vair,0); pos6(hair_vair,0);
+y5=arm_thickness; y4=.3[y5,y3]; top y6=min(y5,slab,top y7l);
+lft x6l=crisp.lft x7; z4l=whatever[z6l,(x3l,bot .58h)]; z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--lft z6l--(lft x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{right}..tension atleast .9 and atleast 1
+ ..z3e{down}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(cap_curve,0); rt x7r=hround(w-.75u); lft x5=min(hround 3u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h));
+ lft x1r=hround u; bot y1l=vround .75h+o;
+ y1r:=good.y y1r+eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,left,1,4); % upper terminal
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 4";
+beginchar("4",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab,h-light_stem]+1
+ else:.35(h-light_stem) fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=0;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+if serifs: dish_serif(7,2',a,1/3,1.75u,
+ b,1/3,min(1.75u,w-.5u-rt x7r)); fi % serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=vround .61803h+o;
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The numeral 7";
+beginchar("7",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness, bot_width, top_shift, top_hair;
+if hefty: arm_thickness=Vround(slab+2stem_corr); top_shift=0;
+ bot_width=hround .51[curve,cap_curve]; top_hair=.4[thin_join,bot_width];
+else: arm_thickness=Vround .4[stem,cap_stem]; top_shift=.5u;
+ bot_width=flare; top_hair=cap_hair; fi
+if top_hair<tiny.breadth: top_hair:=tiny.breadth; fi
+pickup crisp.nib; pos2(arm_thickness,90); pos1(hair,180);
+top y2r=h; rt x2=hround(w-.75u+top_shift);
+lft x1r=hround(.75u+.5top_shift); y1=good.y(y2l-beak/2)-eps;
+arm(2,1,a,.3beak_darkness,-beak_jut); % arm and beak
+pos3(hair,180); y3=good.y(y2r+beak/6)+eps; z3r=whatever[z1r,z.a0];
+penpos2'(eps,-90); z2'=z2r;
+arm(2',3,b,beak_darkness,x3r-x.a0); % upward extension of beak
+pickup tiny.nib; pos4(top_hair,0); pos6(bot_width,0);
+bot y4=max(h-arm_thickness,h-slab,bot y2l); rt x4r=crisp.rt x2;
+lft x6l=hround(3.5u+top_shift-.5bot_width);
+if serifs: y6-.5bot_width=-o; filldraw z6l{down}..{up}z6r--cycle; % bulb
+else: bot y6=-oo; fi
+if hefty: erase fill rt z4r--z4r...{down}z6r
+ --(rt x4r,y6)--cycle; % erase excess at top
+ filldraw stroke z4e...{down}z6e; % stroke
+else: pos5(top_hair,0); y5=2/3h; z5=whatever[z4,(.75u,y6)];
+ erase fill rt z4r--z4r--z5r--(rt x4r,y5)--cycle; % erase excess at top
+ filldraw stroke z4e---z5e...{down}z6e; fi % stroke
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/levy/e.mf b/Master/texmf-dist/fonts/source/public/levy/e.mf
new file mode 100644
index 00000000000..ef3cb22f8d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/e.mf
@@ -0,0 +1,78 @@
+if unknown gen_acc : readfrom("gen_acc") fi
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def width = 7.75u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos2(vstem,90); x2=.5w; top y2r=x_height+o; %top point
+ pos7(vstem,630); x2=x7; bot y7r=-o; %bottom point
+ rt x1r=hround(w-.75u); bot y1l=.3[bot y2l,bar_height]; %top end
+ z1'=(x1r,y1l+.5(flare-currentbreadth)); %approximation to z1
+ numeric slope; slope=angle((z2-z1')yscaled 2); pos1(flare,slope-90);
+ bar_height=.5[y1,y8]; x8=x1; pos8(flare,slope+90); %bottom end
+ pos3(vstem,120); lft x3r=hround .75u; y3=.5[y4r,y2r]; %top left bulge
+ pos6(vstem,600); x6=x3; y6=.5[y5r,y7r]; %bottom left bulge
+ y6:=y6r;y3:=y3r; %for the benefit of pulled_arc
+ top y5r-bot y4r=curve; y5+y4=2bar_height; x5=x4=x2; %loop
+ pos4(vair,-90); pos5(vair,90);
+ filldraw stroke z1e{dir slope}...pulled_arc.e(2,3); %top
+ drawloop(3,4,5,6); %loop and bottom
+ forsuffixes e=l,r:
+ path foo.e; foo.e= z8e...pulled_arc.e(7,6);
+ if angle(direction 0 of foo.e) > angle(z8r-z8l):
+ foo.e:= z8e{z8r-z8l}...pulled_arc.e(7,6); fi
+ endfor;
+ filldraw stroke foo.e;
+ numeric x_baryctr; x_baryctr=x2; %accent reference
+enddef;
+
+cmchar "Lowercase epsilon";
+beginchar("e",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase epsilon with grave";
+beginchar(oct"340",width#,acc_ht#,0); this_letter; grave(x_baryctr);
+endchar;
+
+cmchar "Lowercase epsilon with rough breathing";
+beginchar(oct"341",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing";
+beginchar(oct"342",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by epsilon with grave";
+begindoublechar(oct"343",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase epsilon with acute";
+beginchar(oct"350",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase epsilon with rough breathing and acute";
+beginchar(oct"351",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and acute";
+beginchar(oct"352",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by epsilon with acute";
+begindoublechar(oct"353",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase sigma followed by epsilon";
+begindoublechar(oct"005",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/f.mf b/Master/texmf-dist/fonts/source/public/levy/f.mf
new file mode 100644
index 00000000000..7de55c6526f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/f.mf
@@ -0,0 +1,34 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 10.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h;
+ x6r=.5[x4r,x8r]; bot y6r=-oo;
+ numeric tilt; tilt:=min(2*otilt,.5);
+ filldraw stroke gr_arc.e(6,7,8)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(4,5,6)(vair,.4[vair,stem],tilt) ;
+ y2+.5stem=h+o; x2+.5stem=hround(x6-1.5u);
+ pos2(stem,angle((z2-z4)xscaled 2)+90);
+ filldraw circ_stroke z2e...{z4'e}z4e;
+ pos10(stem,180); pos11(hair,180);
+ y10-.5stem=-d-o; y11=.25h; x10=x11=x6;
+ x9r=.5[x10r,x8r]; top y9r=h+o;
+ filldraw stroke gr_arc.e(8,20,9)(vair,.4[vair,stem],.5tilt);
+ filldraw circ_stroke z10e..z11e{up}..{-z9'e}z9e;
+enddef;
+
+cmchar "Lowercase phi";
+beginchar("f",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,20,21); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by phi";
+begindoublechar(oct"006",dims);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/g.mf b/Master/texmf-dist/fonts/source/public/levy/g.mf
new file mode 100644
index 00000000000..37b2574bda7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/g.mf
@@ -0,0 +1,36 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 10u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ begingroup
+ save t; t:=superness; save superness; superness:=.95t;
+ pos2(curve,90); top y2r=h+oo; %top of left branch
+ pos1(hair,180); bot y1=top y2r-4/3curve; %tip of hook
+ lft x1r=hround .5u; x2-x1=y2-y1; %central arc is round
+ pos3(hair,0); pos4(hair,-180); rt x3r-lft x4r=stem; %bottom of cusp
+ y4=y3; .5[x3,x4]=.5w; if monowidth: y3=0 else: y3-.5stem=vround(-.8d) fi;
+ pos5(curve,-270); top y5r=h+oo; x5+.5curve=hround(w-.75u); %right branch
+ pos5'(curve,0); z5'=z5;
+ filldraw stroke z1e{up}...z2e{right}; drawloop(2,3,4,5); %hook and cusp
+ filldraw z5l{right}...z5'r{up}...z5r{left}--cycle; %right branch
+ if monowidth: %complete stem
+ x3'=x3r; x4'=x4r; y3'=y4'; y3'-.5stem=vround(-.8d);
+ filldraw z3r--z3'{down}...{up}z4'--z4r--cycle; fi
+ endgroup;
+enddef;
+
+cmchar "Lowercase gamma";
+beginchar("g",dims);
+this_letter; penlabels(1,2,3,3',4,4',5); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by gamma";
+begindoublechar(oct"007",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/gen_acc.mf b/Master/texmf-dist/fonts/source/public/levy/gen_acc.mf
new file mode 100644
index 00000000000..43a2713c7f1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/gen_acc.mf
@@ -0,0 +1,213 @@
+%This file contains some code from Computer Modern's accent.mf.
+%It defines all Greek diacritic marks.
+
+gen_acc:=1;
+
+def separator=max(1,vround(1/20x_height)) enddef;
+
+def grave(expr center) =
+if serifs: x22-x21=1/4w; x21-.5stem=hround(center-2/3(x22-x21)-.5stem);
+else: lft x21l=hround (1/4w-.5stem); rt x22r=hround(center+.25u+.5vair); fi
+generate_grave; penlabels(21,22);
+enddef;
+
+def acute(expr center) =
+if serifs: x21-x22=1/4w; x21+.5stem=hround(center+2/3(x21-x22)+.5stem);
+else: rt x21r=hround (3/4w+.5stem); lft x22l=hround(center-.25u-.5vair); fi
+generate_grave; penlabels(21,22);
+enddef;
+
+vardef search(expr xyzzy) =
+pair p;ypart(p)=y22l;p-(x22,xyzzy)=whatever*((z21-(x22,xyzzy))rotated 90);
+length(p-(x22,xyzzy))>.5(hair-currentbreadth) enddef;
+
+vardef generate_grave=
+if serifs: pickup crisp.nib;
+ y21+.5stem=h+eps; bot y22l=max(.8[h,x_height],x_height+o+separator);
+ y22=solve search(y21,y22l); x22l=xpart(p); z22r=2z22-z22l;
+ pos21(stem,angle(z22r-z22l));
+ filldraw circ_stroke z21e--z22e; % diagonal
+else: pickup fine.nib; pos21(stem,0); pos22(vair,0);
+ top y21=h; bot y22=vround .8[h,x_height];
+ filldraw stroke z21e--z22e; % diagonal
+fi
+enddef;
+
+def circumflex(expr center)=
+generate_circumflex(center,false); %variable `squeeze'
+enddef;
+
+def generate_circumflex(expr center,squeeze)=
+numeric mid_width; mid_width=if squeeze:.1 else: .5 fi [vair,stem];
+if serifs:
+pickup fine.nib; pos21(hround(mid_width-eps),180); pos22(vair,90);
+ pos23(mid_width,90); pos24(vair,90); pos25(hround(mid_width-eps),180);
+ lft x21r=w-rt x25l=hround (center-w/3); x22-x21=x23-x22=x24-x23=x25-x24;
+ bot y21=bot y24l=vround(.75[x_height,h]-vair);
+ top y22r=top y25=h; y23=.5[y22,y24];
+ filldraw stroke z21e{up}...z22e{right}..z23e..{right}z24e...{up}z25e; % stroke
+else:
+ pos21(vair,-180); pos23(vair,0); y21=y23;
+ lft x21r=hround(center-w/3); rt x23r=hround(center+w/3);
+ bot y23=vround max(x_height+o+separator,
+ if squeeze: 2/3 else: 1/3 fi [x_height,h]-.5mid_width);
+ x22=center; pos22(mid_width,90); top y22r=h;
+ filldraw stroke z21e{up}...z22e...{down}z23e;
+fi
+enddef;
+
+vardef diaeresis(expr center)=
+ generate_diaeresis(center,dot_size,dot_size+1/8w,h,x_height+separator);
+enddef;
+
+vardef diaeresis_acute(expr center)=
+ if serifs: x21-x22=1/4w; x21+.5stem=hround(center+5/6(x21-x22)+.5stem);
+ else: rt x21r=hround (3/4w+.5stem); lft x22l=hround(center-.5vair); fi
+ generate_grave; penlabels(21,22);
+ generate_diaeresis(center,.9dot_size,-1,.5[h,x_height],x_height+separator);
+enddef;
+
+vardef diaeresis_grave(expr center)=
+ if serifs: x22-x21=1/4w; x21-.5stem=hround(center-5/6(x22-x21)-.5stem);
+ else: lft x21l=hround (1/4w-.5stem); rt x22r=hround(center+.5vair); fi
+ generate_grave; penlabels(21,22);
+ generate_diaeresis(center,.9dot_size,-1,.5[h,x_height],x_height+separator);
+enddef;
+
+vardef diaeresis_circumflex(expr center)=
+ generate_circumflex(center,true);
+ numeric sp_bottom, sp_top;
+ sp_top=vround(.15[bot y21l,x_height]); sp_top+sp_bottom=bot y21l+x_height;
+ generate_diaeresis(center,5/8dot_size,5/8dot_size+1/4w,sp_top,sp_bottom);
+enddef;
+
+vardef generate_diaeresis(expr center,target_dot_diam,sep,eff_h,base)=
+pickup tiny.nib; numeric dot_diam;
+dot_diam:=max(tiny.breadth,hround(target_dot_diam));
+pos31(dot_diam,0); pos32(dot_diam,90); x31=x32; top y32r=vround(eff_h);
+if bot y32l<base: y32l:=min(y32r-eps,base+.5currentbreadth); fi
+y31=.5[y32l,y32r];
+pos33(dot_diam,0); penpos34(y32r-y32l,90); y33=y34=y31; x33=x34;
+if sep>0 : center=.5[x31,x33]; x33-x31=sep;
+else:
+ y35l=y35r=.5[y31,y32]; z35l=whatever[z21l,z22l]; z35r=whatever[z21r,z22r];
+ rt x31r=hround((min(x35l,x35r)-.5currentbreadth)-.05w);
+ lft x33l=hround((max(x35l,x35r)+.5currentbreadth)+.05w);
+fi
+dot(31,32); dot(33,34);
+penlabels(31,32,33,34,35);
+enddef;
+
+def rough(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,180); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,180); pos@1(comma_join_,180);
+ pos@2(comma_bot_,180); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; lft x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,180); pos@3(vair,-90);
+ z@1r=z$r; lft x@2r=hround(x$-.5depth+.5shear);
+ x@3+.5vair=x$+.5dot_size+shear;
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ y_:=ypart((z@1{left}...z@2{down}...z@3)
+ intersectiontimes (z$l{left}..{right}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{right}..subpath (0,y_) of (z$l{left}..{right}z$r)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{down}...{right}z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+def smooth(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-90);
+ z@1r=z$r; rt x@2r=hround(x$+.5depth+.5shear);
+ x@3-.5vair=hround(x$-.5dot_size+shear);
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ filldraw stroke z@1e{right}...z@2e{down}...{left}z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+vardef spirit(expr center) text type=
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam);
+y31+.5dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+penlabels(31);
+enddef;
+
+vardef spirit_acute(expr center) text type =
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+if serifs: x21-x22=1/6w;
+ x21+.5stem=hround(center+.25u+.5vair+(x21-x22)+.5stem); %lft x22r ~ center+.25u
+else: rt x21r=hround (4/5w+.5stem); lft x22l=hround(center+.25u); fi
+generate_grave; penlabels(21,22);
+if 1type0: %spirit and accent separated by .5u (rough) or .25u (smooth)
+ x31=hround(lft x22 if serifs:r-.5sp_height else:l-.5dot_diam fi -.25u);
+else: x31+.5dot_diam=hround(lft x22 if serifs:r else: l fi -.5u); fi
+y31+.5dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+enddef;
+
+vardef spirit_grave(expr center) text type =
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+if serifs: x22-x21=1/6w; x21-.5stem=hround(center+.25u);
+else: rt x22r=hround (4/5w+.5stem); lft x21l=hround(center+.25u); fi
+generate_grave; penlabels(21,22);
+if 1type0: %spirit and accent separated by .5u (rough) or .25u (smooth)
+ x31=hround(lft x21l-.5 if serifs:sp_height else:dot_diam fi -.25u);
+else: x31+.5dot_diam=hround(lft x21l-.5u); fi
+y31+.5dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+enddef;
+
+vardef spirit_circumflex(expr center) text type=
+generate_circumflex(center,true); %variable `squeeze'
+numeric sp_bottom, sp_height, sp_top, box_top;
+box_top=bot if serifs: y21l else: y22l fi;
+sp_top=sp_bottom+sp_height=vround(.15[box_top,x_height]);
+sp_top+sp_bottom=box_top+x_height;
+numeric dot_diam#; dot_diam# = 5/8dot_size#;
+define_whole_blacker_pixels(dot_diam);
+pickup fine.nib;
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height-eps)));
+x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam);
+y31+.5dot_diam=vround(sp_top);
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+penlabels(31);
+enddef;
+
+def iota_sub(expr pos_stem) =
+if known pic.iota:
+ addto currentpicture also pic.iota shifted (hround(pos_stem),0);
+else:
+ picture temp_picture; temp_picture=currentpicture; clearit;
+ pickup fine.nib;
+ x51=0; pos51(stem,180); top y51=vround(-o-2separator);
+ x52=x51; pos52(stem,180); bot y52=-iota_dp;
+ filldraw circ_stroke z52e--z51e;
+ if not working_hard : picture pic.iota; pic.iota=currentpicture; fi
+ currentpicture:=currentpicture shifted (hround(pos_stem),0);
+ addto currentpicture also temp_picture;
+fi;
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/levy/gen_sigma.mf b/Master/texmf-dist/fonts/source/public/levy/gen_sigma.mf
new file mode 100644
index 00000000000..6f0062fda52
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/gen_sigma.mf
@@ -0,0 +1,26 @@
+numeric gen_sigma; gen_sigma=1;
+
+def dim_sigma = 9.5u#,x_height#,0 enddef;
+def ital_sigma = 0 enddef;
+def fit_params_sigma = 0,.75u# enddef;
+
+def mid_sigma=
+italcorr ital_sigma; adjust_fit(fit_params_sigma);
+if known pic.c: currentpicture:=pic.c; else: gen_mid_sigma; fi
+if not working_hard : picture pic.c; pic.c=currentpicture; fi
+enddef;
+
+def gen_mid_sigma =
+ pickup fine.nib;
+ lft x4r=hround .75u; rt x8r=w-lft x4r; %left and right bulge
+ top y2r=h; bot y6r=-oo; x2r=x6r; %top and bottom
+ numeric fake; fake=y2r-(vstem-currentbreadth); %approx height of z2l
+ 2y4r=y2r+y6r; 2y8r=fake+y6r;
+ (x8r-x6r)/(y8r-y6r)=-(x4r-x6r)/(y4r-y6r); %determine x6r
+ y1r=y2r;rt x1=hround(rt x8r+u); pos1(flare,90); %tip
+ filldraw stroke z1e..gr_arc.e(2,3,4)(vstem,curve,otilt)
+ & gr_arc.e(4,5,6)(vair,curve,otilt) %top stroke and left bowl
+ & gr_arc.e(6,7,8)(vair,curve,otilt); %bottom part of right bowl
+ z9l=z2l; pos9(vair,180); z9'l=z2'l; z9'r=left;
+ filldraw stroke z8e{z8'e}..z9e{z9'e}; %top part of right bowl
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/levy/graccent.mf b/Master/texmf-dist/fonts/source/public/levy/graccent.mf
new file mode 100644
index 00000000000..bd65d29e7c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/graccent.mf
@@ -0,0 +1,105 @@
+if unknown gen_acc : readfrom("gen_acc") fi
+
+cmchar "Grave accent";
+beginchar("`",9u#,acc_ht#,0);
+grave(.5w);
+endchar;
+
+cmchar "Acute accent";
+beginchar("'",9u#,acc_ht#,0);
+acute(.5w);
+endchar;
+
+cmchar "Circumflex accent";
+beginchar("~",9u#,circ_ht#,0);
+circumflex(.5w);
+endchar;
+
+cmchar "Diaeresis";
+beginchar(oct"042",9u#,circ_ht#,0);
+diaeresis(.5w);
+endchar;
+
+cmchar "Rough breathing";
+beginchar("<",9u#,acc_ht#,0);
+spirit(.5w)<;
+endchar;
+
+cmchar "Smooth breathing";
+beginchar(">",9u#,acc_ht#,0);
+spirit(.5w)>;
+endchar;
+
+cmchar "Rough breathing with acute";
+beginchar(oct"126",9u#,acc_ht#,0);
+spirit_acute(.5w)<;
+endchar;
+
+cmchar "Rough breathing with grave";
+beginchar(oct"103",9u#,acc_ht#,0);
+spirit_grave(.5w)<;
+endchar;
+
+cmchar "Rough breathing with circumflex";
+beginchar(oct"100",9u#,acc_ht#,0);
+spirit_circumflex(.5w)<;
+endchar;
+
+cmchar "Smooth breathing with acute";
+beginchar(oct"136",9u#,acc_ht#,0);
+spirit_acute(.5w)>;
+endchar;
+
+cmchar "Smooth breathing with grave";
+beginchar(oct"137",9u#,Circ_ht#,0);
+spirit_grave(.5w)>;
+endchar;
+
+cmchar "Smooth breathing and circumflex";
+beginchar(oct"134",9u#,Circ_ht#,0);
+spirit_circumflex(.5w)>;
+endchar;
+
+cmchar "Diaeresis with acute";
+beginchar(oct"043",9u#,acc_ht#,0);
+diaeresis_acute(.5w);
+endchar;
+
+cmchar "Diaeresis with grave";
+beginchar(oct"044",9u#,acc_ht#,0);
+diaeresis_grave(.5w);
+endchar;
+
+cmchar "Diaeresis with circumflex";
+beginchar(oct"040",9u#,Circ_ht#,0);
+diaeresis_circumflex(.5w);
+endchar;
+
+cmchar "Iota subscript";
+beginchar("|",9u#,0,.6desc_depth#);
+iota_sub(.5w);
+endchar;
+
+cmchar "Breve accent";
+beginchar(oct"036",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+endchar;
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"037",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/levy/grbase.mf b/Master/texmf-dist/fonts/source/public/levy/grbase.mf
new file mode 100644
index 00000000000..a8406350ad7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/grbase.mf
@@ -0,0 +1,223 @@
+numeric grbase; grbase:=1; %don't read this file twice
+
+%make reference to file in subdirectories less painful
+def readfrom(expr filename) = scantokens ("input " & filename); enddef;
+
+%we start by defining a few more font parameters:
+boolean monowidth; %are the widths of all strokes roughly the same?
+boolean straight; %are certain strokes straight?
+
+let old_font_setup = font_setup;
+def font_setup =
+ define_whole_vertical_pixels(acc_ht,circ_ht,Circ_ht,iota_dp); %accent heights
+ old_font_setup;
+enddef;
+
+%Since many of our characters are composite (for instance, s+letter),
+%we avoid recomputing many pictures by saving them.
+%But if we're using various definitions for the same letter (as when
+%running 6test.mf) we can't use this trick, so we set working_hard:=true.
+
+boolean working_hard; %are we to recompute letters every time?
+working_hard:=false;
+
+def this_letter =
+ italcorr ital; adjust_fit(fit_params);
+ if known savedpicture: currentpicture:=savedpicture; else: gen_letter; fi
+ if not working_hard : picture savedpicture; savedpicture=currentpicture; fi
+enddef;
+
+%The following routines are for use with double characters.
+boolean is_double; is_double:=false;
+let oldendchar=endchar;
+
+def begindoublechar(expr c,w_sharp,h_sharp,d_sharp) =
+ is_double:=true; beginchar(c,w_sharp,h_sharp,d_sharp);
+enddef;
+
+def doublecharkern(expr k_sharp) =
+ if not monospace: k:=hround(k_sharp*hppp); r:=r+k; charwd:=charwd+k_sharp; fi
+enddef;
+
+def middoublechar(expr w_sharp,h_sharp,d_sharp) =
+ scantokens extra_endchar;
+ forsuffixes e=r,l,w,charwd: numeric first.e; first.e:=e; endfor
+
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+ charwd:=w_sharp; charht:=max(charht,h_sharp); chardp:=max(chardp,d_sharp);
+ picture first.glyph; first.glyph=currentpicture;
+ clearxy; clearpen; clearit; clearpen;
+enddef;
+
+def endchar =
+ if is_double :
+ charwd:=first.charwd+charwd;
+ picture second_glyph; second_glyph=currentpicture shifted (first.r-l,0);
+ currentpicture:= first.glyph; addto currentpicture also second_glyph;
+ scantokens extra_endchar;
+ w:=first.w+w; r:=first.r-l+r; l:=first.l;
+ chardx:=first.w+w; interim xoffset:= -l;
+ if proofing>0: makebox(proofrule); fi
+ shipit;
+ if displaying>0: makebox(screenrule); showit; fi
+ endgroup;
+ is_double:=false
+ else : oldendchar
+ fi
+enddef;
+
+%By convention, we reserve the name z1' for the direction at z1, and so on.
+%The direction at z1r is z1'r, or zdir1r.
+vardef zdir[]@#= z@'@# enddef;
+vardef assign_z@#(expr zz)= x@#:=xpart(zz); y@#:=ypart(zz) enddef;
+vardef sgn(expr x)= if (x>0): 1 elseif (x<0): -1 else: 0 fi enddef;
+
+vardef double_circ_stroke text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: errmessage "Beware: `stroke' isn't intended for cycles"; fi
+ path_.l .. reverse path_.r .. cycle enddef;
+
+vardef drawloop(suffix $,$$,@@,@)=
+ numeric temp[], sup;
+ sup=superness;
+ forsuffixes e=r,l:
+ path curv[]e; numeric S[]e;
+ curv1e=pulled_super_arc.e($,$$)(.5superpull);
+ curv2e=pulled_super_arc.e(@,@@)(.5superpull); endfor
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (temp1,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,temp2)=curv1l intersectiontimes curv2r;
+ for i=1 upto 9:
+ exitif (temp1>=S1r) and (temp2>=S2r);
+ begingroup
+ numeric S[]r, S[]l, temp[]; pair p;
+ interim superness:=(i/10)[sup,1];
+ message"change in superness required; increased to "; show superness;
+ curv1r:=pulled_super_arc.r($,$$)(0);
+ curv2r:=pulled_super_arc.r(@,@@)(0);
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (temp1,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,temp2)=curv1l intersectiontimes curv2r;
+ endgroup;
+ endfor;
+ if S1l=-1 : S1l:=2; fi
+ if S2l=-1 : S2l:=2; fi
+ filldraw stroke subpath(0,S1e+eps) of curv1e;
+ filldraw stroke subpath(0,S2e+eps) of curv2e;
+ filldraw subpath (S1r+eps,2) of curv1r...subpath(2,S2r+eps) of curv2r..cycle;
+enddef ;
+
+vardef gr_arc.r(suffix $,$$,$$$)(expr min,max,tilt)=
+ pair center, corner;
+ if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+ center=(x$$$r,y$r); corner=(x$r,y$$$r);
+ else :
+ center=(x$r,y$$$r); corner=(x$$$r,y$r);
+ fi
+ z$r{corner-z$r}...superness[center,corner]{z$$$r-z$r}...
+ {z$$$r-corner}z$$$r
+enddef;
+
+vardef gr_arc.l(suffix $,$$,$$$)(expr min,max,tilt)=
+ save p,q,wdth;
+ pair center, corner, temp;
+ numeric wdth, t, s;
+ path p,q;
+ if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+ center=(x$$$r,y$r); corner=(x$r,y$$$r);
+ if tilt>=0 : wdth:=min; other_wdth:=max; t:=2(1-tilt);
+ else : wdth:=max; other_wdth:=min; t:=-2tilt; fi
+ else :
+ center=(x$r,y$$$r); corner=(x$$$r,y$r);
+ if tilt>=0 : wdth:=max; other_wdth:=min; t:=2(1-tilt);
+ else : wdth:=min; other_wdth:=max; t:=-2tilt; fi
+ fi
+ p:=z$r{corner-z$r}...superness[center,corner]{z$$$r-z$r}...
+ {z$$$r-corner}z$$$r;
+ pos$$(wdth,angle direction t of p - 90);
+ z$$r=point t of p;
+ assign_z$$'l(direction t of p);
+ assign_z$$'r(z$$'l);
+ if other_wdth<=currentbreadth: errmessage "bad pos"; fi
+ temp:=point (2-t) of p-
+ (other_wdth-currentbreadth,0) rotated (angle direction (2-t) of p - 90);
+ boolean k[]; k1:=false; k2:=false;
+ if unknown x$l:
+ k1:=true;
+ assign_z$l(temp);
+ assign_z$'l(direction(2-t) of p);
+ if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+ y$l:=2ypart center-y$l;
+ x$'l:=-x$'l;
+ else:
+ x$l:=2xpart center-x$l;
+ y$'l:=-y$'l;
+ fi
+ fi
+ if unknown x$$$l:
+ k2:=true;
+ assign_z$$$l(temp);
+ assign_z$$$'l(direction(2-t) of p);
+ if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+ x$$$l:=2xpart center-x$$$l;
+ y$$$'l:=-y$$$'l;
+ else:
+ y$$$l:=2ypart center-y$$$l;
+ x$$$'l:=-x$$$'l;
+ fi
+ fi
+ q:=z$l{z$'l}...z$$l{z$$'l}...z$$$l{z$$$'l};
+ if k1 :
+ t := xpart(q intersectiontimes (center---z$r));
+ if t=-1 : t:=0; fi
+ assign_z$l(point t of q);
+ assign_z$'l(direction t of q);
+ assign_z$'r(corner-z$r);
+ z$l+z$r=2z$;
+ else: t:=0;
+ fi
+ if k2 :
+ s := xpart(q intersectiontimes (center---z$$$r));
+ if s=-1 : s:=2; fi
+ assign_z$$$l(point s of q);
+ assign_z$$$'l(direction s of q);
+ assign_z$$$'r(z$$$r-corner);
+ z$$$l+z$$$r=2z$$$;
+ else: s:=2;
+ fi
+ subpath (t,s) of q
+enddef;
+
+vardef doodah(suffix $,$$,$$$)=
+ if known x$$:
+ vardef ward(expr gr)=
+ sgn(xpart direction 1 of (z${zdir$}..(x$$,gr)..{zdir$$$}z$$$)) <> sgn(x$-x$$)
+ enddef;
+ y$$=solve ward(y$,y$$$);
+ else:
+ vardef ward(expr gr)=
+ sgn(ypart direction 1 of (z${zdir$}..(gr,y$$)..{zdir$$$}z$$$)) <> sgn(y$-y$$)
+ enddef;
+ x$$=solve ward(x$,x$$$);
+ fi
+ (z${zdir$}..z$$..{zdir$$$}z$$$)
+enddef;
+
+forsuffixes e=r,l:
+ vardef club.e(suffix $,$$,$$$)= doodah($e,$$e,$$$e) enddef; endfor
+
+screen_rows:=600; screen_cols:=1000;
+
+vardef alpha_tail(suffix $,$$) =
+ pos$$(hair,180); top y$$=vround 4/3[bot y$l,top y$r]; %tip of hook
+ rt x$$l=hround(x$+(y$$-y$)+.5hair); %central arc is round
+enddef;
+
+vardef pi_bar =
+ pos3(vstem,-90); rt x3=hround(w-.75u); top y3l=x_height; %top right
+ pos2(vstem,-90); y2=y3; x2=.25w; %top left
+ x1-.5hair=hround.75u; y1-.5hair=4/3[top y2l,bot y2r]; %tip of bar
+ numeric slope; slope=angle((z2-z1)yscaled 2); pos1(hair,slope-90);
+ forsuffixes e=l,r: z1'e=(z2e-z1e)yscaled 2; endfor
+ filldraw circ_stroke z1e{z1'e}...z2e---z3e; %bar
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/levy/grbld10.mf b/Master/texmf-dist/fonts/source/public/levy/grbld10.mf
new file mode 100644
index 00000000000..a618c1a76df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/grbld10.mf
@@ -0,0 +1,83 @@
+% Greek Bold 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="grbld"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders %was 70
+acc_ht#:=250/36pt#;
+circ_ht#:=230/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=13/36pt#; % lowercase hairline breadth (was 17)
+stem#:=38/36pt#; % lowercase stem breadth (was 41)
+curve#:=41/36pt#; % lowercase curve breadth (was 46)
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=41/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+
+generate greek;
diff --git a/Master/texmf-dist/fonts/source/public/levy/grbld8.mf b/Master/texmf-dist/fonts/source/public/levy/grbld8.mf
new file mode 100644
index 00000000000..115ab2d690b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/grbld8.mf
@@ -0,0 +1,83 @@
+% Greek Bold 8 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="grbld"; font_size 8pt#;
+
+u#:=17.6/36pt#; % unit width
+width_adj#:=9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216.0/36pt#; % height of tallest characters
+asc_height#:=200.0/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128.0/36pt#; % height of lowercase without ascenders
+math_axis#:=72.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=68.0/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56.0/36pt#; % depth of comma below baseline
+desc_depth#:=54.0/36pt#; % depth of lowercase descenders
+acc_ht#:=200.0/36pt#;
+circ_ht#:=184.0/36pt#;
+Circ_ht#:=200.0/36pt#;
+iota_dp#:=57.6/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=104.0/36pt#; % diameter of rounded corners
+fine#:=70.0/36pt#; % diameter of sharply rounded corners
+thin_join#:=70.0/36pt#; % width of extrafine details
+hair#:=11.7/36pt#; % lowercase hairline breadth
+stem#:=34.2/36pt#; % lowercase stem breadth
+curve#:=32.8/36pt#; % lowercase curve breadth
+ess#:=34.2/36pt#; % breadth in middle of lowercase s
+flare#:=36.9/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=44.8/36pt#; % diameter of dots
+cap_hair#:=17.1/36pt#; % uppercase hairline breadth
+cap_stem#:=40.8/36pt#; % uppercase stem breadth
+cap_curve#:=44.0/36pt#; % uppercase curve breadth
+cap_ess#:=42.4/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8.0/36pt#; % vertical distance from serif base to tangent
+jut#:=20.0/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31.2/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=56.0/36pt#; % vertical protrusion of beak serifs
+vair#:=8.8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=15.3/36pt#; % lowercase bar thickness
+slab#:=15.3/36pt#; % serif and arm thickness
+cap_bar#:=15.3/36pt#; % uppercase bar thickness
+cap_band#:=15.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2.0/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3.2/36pt#; % amount of overshoot for curves
+apex_o#:=2.4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+
+generate greek;
diff --git a/Master/texmf-dist/fonts/source/public/levy/grbld9.mf b/Master/texmf-dist/fonts/source/public/levy/grbld9.mf
new file mode 100644
index 00000000000..b4b70c5e4c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/grbld9.mf
@@ -0,0 +1,83 @@
+% Greek Bold 9.00point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="grbld"; font_size 9.00pt#;
+
+u#:=19.8/36pt#; % unit width
+width_adj#:=10.0/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243.0/36pt#; % height of tallest characters
+asc_height#:=225.0/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144.0/36pt#; % height of lowercase without ascenders
+math_axis#:=81.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=76.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63.0/36pt#; % depth of comma below baseline
+desc_depth#:=72.0/36pt#; % depth of lowercase descenders %was 70
+acc_ht#:=225.0/36pt#;
+circ_ht#:=207.0/36pt#;
+Circ_ht#:=225.0/36pt#;
+iota_dp#:=64.8/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=58.5/36pt#; % diameter of rounded corners
+fine#:=40.0/36pt#; % diameter of sharply rounded corners
+thin_join#:=40.0/36pt#; % width of extrafine details
+hair#:=12.3/36pt#; % lowercase hairline breadth (was 17)
+stem#:=36.1/36pt#; % lowercase stem breadth (was 41)
+curve#:=36.9/36pt#; % lowercase curve breadth (was 46)
+ess#:=36.1/36pt#; % breadth in middle of lowercase s
+flare#:=39.0/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50.4/36pt#; % diameter of dots
+cap_hair#:=18.1/36pt#; % uppercase hairline breadth
+cap_stem#:=45.9/36pt#; % uppercase stem breadth
+cap_curve#:=49.5/36pt#; % uppercase curve breadth
+cap_ess#:=47.7/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9.0/36pt#; % vertical distance from serif base to tangent
+jut#:=22.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35.1/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=63.0/36pt#; % vertical protrusion of beak serifs
+vair#:=9.9/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=16.1/36pt#; % lowercase bar thickness
+slab#:=16.1/36pt#; % serif and arm thickness
+cap_bar#:=16.1/36pt#; % uppercase bar thickness
+cap_band#:=16.1/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2.0/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=3.6/36pt#; % amount of overshoot for curves
+apex_o#:=2.7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+
+generate greek;
diff --git a/Master/texmf-dist/fonts/source/public/levy/greek.mf b/Master/texmf-dist/fonts/source/public/levy/greek.mf
new file mode 100644
index 00000000000..9c95a83fece
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/greek.mf
@@ -0,0 +1,25 @@
+mode_setup;
+font_setup;
+
+if not boolean barebones:
+ readfrom("upper");
+ readfrom("graccent");
+fi
+readfrom("lower");
+if not boolean barebones:
+ readfrom("digits");
+ readfrom("grpunct");
+fi
+readfrom("lig");
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/levy/grpunct.mf b/Master/texmf-dist/fonts/source/public/levy/grpunct.mf
new file mode 100644
index 00000000000..70301ee63c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/grpunct.mf
@@ -0,0 +1,294 @@
+cmchar "Open quotes (eisagwgik'a)";
+beginchar("{",6.5u#,x_height#,0);
+adjust_fit(0,0);
+pos0(hair,0); pos1(stem,0); pos2(hair,0);
+pos3(hair,0); pos4(stem,0); pos5(hair,0);
+y0=y3=.9h; y1=y4=.5h; y2=y5=h-y0;
+x1-.5stem=hround(.5u);
+x3+.5hair=w-(x1-.5stem);
+x4-x1=2stem; x3-x4=x0-x1; x0=x2; x3=x5;
+if x1>=x0: x1:=x0-1; x4:=x3-1;
+x1l:=x1-.5stem; x1r:=x1+.5stem;
+x4l:=x4-.5stem; x4r:=x4+.5stem; fi
+filldraw stroke z0e...z1e...z2e;
+filldraw stroke z3e...z4e...z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Close quotes (eisagwgik'a)";
+beginchar("}",6.5u#,x_height#,0);
+adjust_fit(0,0);
+pos0(hair,0); pos1(stem,0); pos2(hair,0);
+pos3(hair,0); pos4(stem,0); pos5(hair,0);
+y0=y3=.9h; y1=y4=.5h; y2=y5=h-y0;
+x1+.5stem=hround(w-.5u);
+x3-.5hair=x5-.5hair=w-(x1+.5stem);
+x1-x4=2stem; x3-x4=x0-x1; x0=x2;
+if x1<=x0: x1:=x0+1; x4:=x3+1;
+x1l:=x1-.5stem; x1r:=x1+.5stem;
+x4l:=x4-.5stem; x4r:=x4+.5stem; fi
+filldraw stroke z0e...z1e...z2e;
+filldraw stroke z3e...z4e...z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Per cent sign";
+beginchar("%",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 5u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+enddef;
+
+cmchar "Apostrophe";
+beginchar(oct"035",dims);
+this_letter; penlabels(1); endchar;
+
+cmchar "Lowercase sigma followed by apostrophe";
+begindoublechar(oct"003",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "'Anw tele'ia";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+penlabels(1,2); endchar;
+
+cmchar "Question mark";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar("?",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Reverse apostrophe";
+beginchar(oct"034",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "En dash";
+beginchar(oct"000",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Em dash";
+beginchar(oct"177",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/levy/grreg10.mf b/Master/texmf-dist/fonts/source/public/levy/grreg10.mf
new file mode 100644
index 00000000000..d797644678f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/grreg10.mf
@@ -0,0 +1,83 @@
+% Greek Regular 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="grreg"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate greek;
diff --git a/Master/texmf-dist/fonts/source/public/levy/grreg8.mf b/Master/texmf-dist/fonts/source/public/levy/grreg8.mf
new file mode 100644
index 00000000000..192b2a23d34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/grreg8.mf
@@ -0,0 +1,83 @@
+% Greek Regular 8 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="grreg"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+acc_ht#:=210/36pt#;
+circ_ht#:=180/36pt#;
+Circ_ht#:=210/36pt#;
+iota_dp#:=57.6/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=23/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=6.6/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate greek;
diff --git a/Master/texmf-dist/fonts/source/public/levy/grreg9.mf b/Master/texmf-dist/fonts/source/public/levy/grreg9.mf
new file mode 100644
index 00000000000..fc3660fd781
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/grreg9.mf
@@ -0,0 +1,83 @@
+% Greek Regular 9.00point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="grreg"; font_size 9.00pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243.0/36pt#; % height of tallest characters
+asc_height#:=225.0/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81.0/36pt#; % axis of symmetry for math symbols
+bar_height#:=75.8/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63.0/36pt#; % depth of comma below baseline
+desc_depth#:=73.0/36pt#; % depth of lowercase descenders
+acc_ht#:=230.0/36pt#;
+circ_ht#:=202.5/36pt#;
+Circ_ht#:=230.0/36pt#;
+iota_dp#:=64.8/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=25.5/36pt#; % lowercase stem breadth
+curve#:=27.8/36pt#; % lowercase curve breadth
+ess#:=25.0/36pt#; % breadth in middle of lowercase s
+flare#:=25.0/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35.0/36pt#; % diameter of dots
+cap_hair#:=10.3/36pt#; % uppercase hairline breadth
+cap_stem#:=29.3/36pt#; % uppercase stem breadth
+cap_curve#:=33.5/36pt#; % uppercase curve breadth
+cap_ess#:=31.0/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=0.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18.0/36pt#; % vertical distance from serif base to tangent
+jut#:=25.0/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33.0/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63.0/36pt#; % vertical protrusion of beak serifs
+vair#:=7.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=9.00pt#; % maximum breadth above or below notches
+bar#:=10.3/36pt#; % lowercase bar thickness
+slab#:=10.3/36pt#; % serif and arm thickness
+cap_bar#:=10.3/36pt#; % uppercase bar thickness
+cap_band#:=10.3/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9.00pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.0/36pt#; % amount of overshoot for curves
+apex_o#:=7.0/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0.20; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+
+generate greek;
diff --git a/Master/texmf-dist/fonts/source/public/levy/grtt10.mf b/Master/texmf-dist/fonts/source/public/levy/grtt10.mf
new file mode 100644
index 00000000000..989bf7f6aef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/grtt10.mf
@@ -0,0 +1,83 @@
+% Greek Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input grbase fi
+
+font_identifier:="grtt"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=230/36pt#; % height of lowercase ascenders %was 220
+cap_height#:=230/36pt#; % height of caps %was 220
+fig_height#:=230/36pt#; % height of numerals %was 220
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+acc_ht#:=230/36pt#;
+circ_ht#:=230/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=64/36pt#;
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=24/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=true; % should stems, etc. be straight?
+monowidth:=true; %are stem and hair more or less the same width?
+
+generate greek;
diff --git a/Master/texmf-dist/fonts/source/public/levy/h.mf b/Master/texmf-dist/fonts/source/public/levy/h.mf
new file mode 100644
index 00000000000..525e7067290
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/h.mf
@@ -0,0 +1,150 @@
+if unknown gen_acc : readfrom("gen_acc") fi
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def width = 8.5u enddef;
+def dims = width#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = if straight: .75 else: .5 fi u#,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ y1r-.5stem=-d-o; pos1(stem,0); %bottom right
+ rt x2r=hround(w-.75u); y2r=.5x_height; pos2(hair,0); %right bulge
+ lft x5r=hround(1.5u); y5-.5stem=-o; pos5(stem,-180); %bottom left
+ top y4r=x_height+o; x4r=.5[lft x2l,rt x5l]; %top of arch
+ pos6(hair,180); y6=y2; %where handle attaches
+ if straight:
+ x1=x2; x5=x6; pos4(stem,90); %yawn...
+ filldraw double_circ_stroke z1e--pulled_arc.e(2,4)&pulled_arc.e(4,6)--z5e;
+ else:
+ rt x1r=hround (rt x2r-.25u); z2'l=z2'r=up;
+ filldraw circ_stroke z1e{up}...gr_arc.e(2,3,4)(hair,stem,.8); %right leg
+ filldraw circ_stroke z5e{(z4-z5) yscaled 3}...z4e{-z4'e}; %left leg
+ z6r=((0,y2)--(w,y2)) intersectionpoint (z5r{(z4-z5) yscaled 3}...z4r{-z4'r});
+ fi
+ pos8(vstem,0); rt x8r=hround(lft x6r-.75u); %end of handle
+ pos7(vstem,-90); top y7l=x_height+o; z8r=z7r; %top of handle
+ filldraw circ_stroke z8e{up}...z7e{right}...z6e{down};
+ numeric x_baryctr; x_baryctr=.1[x4,x7]; %accent reference
+ numeric pos_stem; pos_stem=x5; %iota reference
+enddef;
+
+cmchar "Lowercase eta";
+beginchar("h",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase eta with grave";
+beginchar(oct"230",width#,acc_ht#,desc_depth#);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase eta with rough breathing";
+beginchar(oct"231",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing";
+beginchar(oct"232",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by eta with grave";
+begindoublechar(oct"233",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,desc_depth#);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase eta with grave and iota subscript";
+beginchar(oct"234",width#,acc_ht#,desc_depth#);
+this_letter; grave(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing and iota subscript";
+beginchar(oct"235",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing and iota subscript";
+beginchar(oct"236",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by eta with iota subscript";
+begindoublechar(oct"237",dim_sigma);
+mid_sigma;
+middoublechar(width#,x_height#,desc_depth#);
+this_letter; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with acute";
+beginchar(oct"240",width#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase eta with rough breathing and acute";
+beginchar(oct"241",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and acute";
+beginchar(oct"242",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by eta with acute";
+begindoublechar(oct"243",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase eta with acute and iota subscript";
+beginchar(oct"244",width#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing, acute and iota subscript";
+beginchar(oct"245",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing and acute and iota subscript";
+beginchar(oct"246",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by eta with acute and iota subscript";
+begindoublechar(oct"247",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with circumflex";
+beginchar(oct"250",width#,circ_ht#,desc_depth#);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase eta with rough breathing and circumflex";
+beginchar(oct"251",width#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and circumflex";
+beginchar(oct"252",width#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by eta with circumflex";
+begindoublechar(oct"253",dim_sigma);
+mid_sigma; middoublechar(width#,circ_ht#,desc_depth#);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase eta with circumflex and iota subscript";
+beginchar(oct"254",width#,circ_ht#,desc_depth#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with rough breathing, circumflex and iota subscript";
+beginchar(oct"255",width#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with smooth breathing, circumflex and iota subscript";
+beginchar(oct"256",width#,Circ_ht#,desc_depth#);
+this_letter; spirit_circumflex(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by eta with circumflex and iota subscript";
+begindoublechar(oct"257",dim_sigma);
+mid_sigma; middoublechar(width#,circ_ht#,desc_depth#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase eta with iota subscript";
+beginchar(oct"371",width#,x_height#,desc_depth#);
+this_letter; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by eta";
+begindoublechar(oct"010",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/i.mf b/Master/texmf-dist/fonts/source/public/levy/i.mf
new file mode 100644
index 00000000000..8847b6c3b5e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/i.mf
@@ -0,0 +1,113 @@
+if unknown gen_acc : readfrom("gen_acc") fi
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def width = 5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = if monospace: u#,u# else:0,2curve#-3u# fi enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ pos1(flare,180); lft x1r=hround u; top y1=x_height+oo; %top
+ numeric neck; neck=.2[hair,stem];
+ pos2(neck,180); .2[lft x2r,rt x2l]=.2[lft x1r,rt x1l]; %neck
+ pos3(curve,-90); bot y3r=-oo; %bottom
+ y2r=if monowidth: 2 else: 1.5 fi[bot y3r,top y3l]; z3r-z2r=whatever*(1,-1.25);
+ if monowidth:
+ y4r+.5neck=vround y2r; x3=.5[x2,x4]; pos4(neck,0); %tip of hook
+ filldraw stroke z4e...z3e...z2e---z1e;
+ else:
+ z4l=z4r; top y4r=y2r; z4l-z3l=whatever*(1,1);
+ path p.r, p.l; forsuffixes e=r,l: p.e=z1e---z2e...z3e...z4e; endfor
+ rt x3.5r=hround(rt xpart directionpoint up of p.r);
+ z4'r=direction 3 of p.r; z3'r=direction 2 of p.r;
+ forever: %avoid bad vertical tangent between 2l and 3l
+ x2.5l:= rt xpart directionpoint down of p.l;
+ exitif abs(hround(x2.5l)-x2.5l)<.05;
+ x2l:=x2l+hround(x2.5l)-x2.5l; p.l:=(z1l---z2l...z3l...z4l);
+ endfor
+ p.r:=z1r---z2r...club.r(3,3.5,4);
+ %avoid bad vertical tangent between 3r and 4r
+ filldraw stroke p.e;
+ fi
+ numeric x_baryctr; x_baryctr=x1;
+enddef;
+
+cmchar "Lowercase iota";
+beginchar("i",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase iota with grave";
+beginchar(oct"310",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase iota with rough breathing";
+beginchar(oct"311",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: +.25u fi)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing";
+beginchar(oct"312",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: -.25u fi)>; endchar;
+
+cmchar "Lowercase sigma followed by iota with grave";
+begindoublechar(oct"313",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase iota with acute";
+beginchar(oct"320",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase iota with rough breathing and acute";
+beginchar(oct"321",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing and acute";
+beginchar(oct"322",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by iota with acute";
+begindoublechar(oct"323",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase iota with circumflex";
+beginchar(oct"330",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase iota with rough breathing and circumflex";
+beginchar(oct"331",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing and circumflex";
+beginchar(oct"332",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by iota with circumflex";
+begindoublechar(oct"333",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis";
+beginchar(oct"360",width#,circ_ht#,0);
+this_letter; diaeresis(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis and grave";
+beginchar(oct"361",width#,acc_ht#,0);
+this_letter; diaeresis_grave(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis and acute";
+beginchar(oct"362",width#,acc_ht#,0);
+this_letter; diaeresis_acute(x_baryctr); endchar;
+
+cmchar "Lowercase iota with diaeresis and circumflex";
+beginchar(oct"363",width#,Circ_ht#,0);
+this_letter; diaeresis_circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase sigma followed by iota";
+begindoublechar(oct"011",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/j.mf b/Master/texmf-dist/fonts/source/public/levy/j.mf
new file mode 100644
index 00000000000..80fa114f68d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/j.mf
@@ -0,0 +1,29 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 8.5u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h; %left and right bulges
+ x2r=x6r=.5w; top y2r=h+o; bot y6r=-o; %top and bottom
+ filldraw stroke
+ gr_arc.e(8,1,2)(vair,stem,otilt) & gr_arc.e(2,3,4)(vair,stem,otilt) &
+ gr_arc.e(4,5,6)(vair,stem,otilt) & gr_arc.e(6,7,8)(vair,stem,otilt);
+ pos4`(bar,90); pos8`(bar,90); x4`=x4; x8`=x8; y4`=y8`=.05[y4,y2];
+ filldraw stroke z4`e--z8`e; %bar
+enddef;
+
+cmchar "Lowercase theta";
+beginchar("j",dims);
+this_letter; penlabels(1,2,3,4,4`,5,6,7,8,8`); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by theta";
+begindoublechar(oct"012",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter;
+endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/k.mf b/Master/texmf-dist/fonts/source/public/levy/k.mf
new file mode 100644
index 00000000000..d78ca2bb956
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/k.mf
@@ -0,0 +1,36 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 10u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1-.5stem=-o; %lower left
+ z1+z3=(w,h); z2=.5[z1,z3]; %upper right and middle
+ z1'=(z3-z1) if monowidth: xscaled 1/2 fi; %slope at 1 and 3
+ pos1(stem,angle z1'+90); pos2(.6[hair,stem],angle z1'+90);
+ pos3(stem,angle z1'+90);
+ filldraw double_circ_stroke z1e{z1'}..z2e..{z1'}z3e; %diagonal stroke
+ z4=if monowidth: z1 else: 1/4[z1,z3] fi; z4+z7=z3+z1; %handle attachments
+ z4'=if monowidth: z1' else: (z3-z1) xscaled .25 fi; %slope at 4 and 7
+ pos4(hair,angle z4'-90); pos7(hair,angle z4'+90);
+ pos5(vstem,90); top y5r=h+o; pos6(vstem,180); z6l=z5l;
+ lft x6r=hround(x1-.5stem-.25u);
+ filldraw circ_stroke z6e{up}...z5e{right}...z4e{-z4'}; %left handle
+ pos8(.5[vstem,stem],-90); bot y8r=-o; rt x9r=hround(x3+.5stem+.25u);
+ pos9(.5[vstem,stem],0); z9l=z8l;
+ filldraw circ_stroke z9e{down}...z8e{left}...z7e{z4'}; %right handle
+enddef;
+
+cmchar "Lowercase kappa";
+beginchar("k",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by kappa";
+begindoublechar(oct"013",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/l.mf b/Master/texmf-dist/fonts/source/public/levy/l.mf
new file mode 100644
index 00000000000..8189178f465
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/l.mf
@@ -0,0 +1,36 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 9.5u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25u#,-.25u# enddef;
+def krn = -.75u# enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1+.5stem=h; %top left
+ z1'=(1,.2); pos1(stem,angle z1'+90); %direction at z1
+ x3+x1=w; y3-.5stem=-oo; pos3(stem,-angle z1'+90); %bottom right
+ y2=x_height; x2=.5[x1,x3]; %attachment
+ z2'=(z3-z1)yscaled 2; pos2(hair,angle z2'+90); %direction at z4
+ filldraw double_circ_stroke z1e{z1'}...
+ z2e{(z3-z1)yscaled 2}...{z1' yscaled -1}z3e; %diagonal
+ lft x4l=hround.75u; bot y4l=0; %bottom left
+ numeric stem'; stem'=stem-currentbreadth; numeric slope; %from z4 to z4
+ slope=angle(z2-z4l)+angle(length(z2-z4l)+-+.5stem',.5stem');
+ x4r=x4l+(stem'/sind slope); y4r=y4l; z4=.5[z4r,z4l];
+ path p; p=z1{z1'}...z2{(z3-z1)yscaled 2}...{z1' yscaled -1}z3;
+ forsuffixes e=r,l: z5e=(z4e--(z4e+2(z2-z4))) intersectionpoint p; endfor
+ filldraw stroke z4e{(z2-z4)if not monowidth: xscaled 1.2 fi}..z5e;
+enddef;
+
+cmchar "Lowercase lambda";
+beginchar("l",dims);
+this_letter; penlabels(1,2,3,4,5); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by lambda";
+begindoublechar(oct"014",dim_sigma);
+mid_sigma; doublecharkern(krn); middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/lig.mf b/Master/texmf-dist/fonts/source/public/levy/lig.mf
new file mode 100644
index 00000000000..85f8b466d43
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/lig.mf
@@ -0,0 +1,80 @@
+diaer=oct"042"; % double quote
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable oct"000": "-" =: oct"177"; % em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+ligtable "<":
+ "~" =: oct"100", "'" =: oct"126", "`" =: oct"103",
+ "a" =: oct"201", "e" =: oct"341", "h" =: oct"231", "r" =: oct"373",
+ "o" =: oct"345", "w" =: oct"261", "i" =: oct"311", "u" =: oct"315";
+ligtable ">":
+ "~" =: oct"134", "'" =: oct"136", "`" =: oct"137",
+ "a" =: oct"202", "e" =: oct"342", "h" =: oct"232", "r" =: oct"374",
+ "o" =: oct"346", "w" =: oct"262", "i" =: oct"312", "u" =: oct"316";
+ligtable diaer: "~" =: oct"040", "'" =: oct"043", "`" =: oct"044",
+ "i" =: oct"360", "u" =: oct"364";
+ligtable oct"044": % diaeresis and grave
+ "i" =: oct"361", "u" =: oct"365";
+ligtable oct"043": % diaeresis and acute
+ "i" =: oct"362", "u" =: oct"366";
+ligtable oct"040": % diaeresis and circumflex
+ "i" =: oct"363", "u" =: oct"367";
+ligtable "`": diaer =: oct"044",
+ "a" =: oct"200", "h" =: oct"230", "w" =: oct"260",
+ "e" =: oct"340", "o" =: oct"344", "i" =: oct"310", "u" =: oct"314";
+ligtable "'": diaer =: oct"043", "'" =: oct"035",
+ "a" =: oct"210", "h" =: oct"240", "w" =: oct"270",
+ "e" =: oct"350", "o" =: oct"354", "i" =: oct"320", "u" =: oct"324";
+ligtable oct"126": % rough breathing and acute
+ "a" =: oct"211", "h" =: oct"241", "w" =: oct"271",
+ "e" =: oct"351", "o" =: oct"355", "i" =: oct"321", "u" =: oct"325";
+ligtable oct"136": % smooth breathing and acute
+ "a" =: oct"212", "h" =: oct"242", "w" =: oct"272",
+ "e" =: oct"352", "o" =: oct"356", "i" =: oct"322", "u" =: oct"326";
+ligtable "~": diaer =: oct"040",
+ "a" =: oct"220", "h" =: oct"250", "w" =: oct"300",
+ "i" =: oct"330", "u" =: oct"334";
+ligtable oct"100": % rough breathing and circumflex
+ "a" =: oct"221", "h" =: oct"251", "w" =: oct"301",
+ "i" =: oct"331", "u" =: oct"335";
+ligtable oct"134": % smooth breathing and circumflex
+ "a" =: oct"222", "h" =: oct"252", "w" =: oct"302",
+ "i" =: oct"332", "u" =: oct"336";
+ligtable "a": "|" =: oct"370"; %iota subscripts
+ligtable "h": "|" =: oct"371";
+ligtable "w": "|" =: oct"372";
+ligtable oct"200": "|" =: oct"204"; ligtable oct"201": "|" =: oct"205";
+ligtable oct"202": "|" =: oct"206"; ligtable oct"203": "|" =: oct"207";
+ligtable oct"210": "|" =: oct"214"; ligtable oct"211": "|" =: oct"215";
+ligtable oct"212": "|" =: oct"216"; ligtable oct"213": "|" =: oct"217";
+ligtable oct"220": "|" =: oct"224"; ligtable oct"221": "|" =: oct"225";
+ligtable oct"222": "|" =: oct"226"; ligtable oct"223": "|" =: oct"227";
+ligtable oct"230": "|" =: oct"234"; ligtable oct"231": "|" =: oct"235";
+ligtable oct"232": "|" =: oct"236"; ligtable oct"233": "|" =: oct"237";
+ligtable oct"240": "|" =: oct"244"; ligtable oct"241": "|" =: oct"245";
+ligtable oct"242": "|" =: oct"246"; ligtable oct"243": "|" =: oct"247";
+ligtable oct"250": "|" =: oct"254"; ligtable oct"251": "|" =: oct"255";
+ligtable oct"252": "|" =: oct"256"; ligtable oct"253": "|" =: oct"257";
+ligtable oct"260": "|" =: oct"264"; ligtable oct"261": "|" =: oct"265";
+ligtable oct"262": "|" =: oct"266"; ligtable oct"263": "|" =: oct"267";
+ligtable oct"270": "|" =: oct"274"; ligtable oct"271": "|" =: oct"275";
+ligtable oct"272": "|" =: oct"276"; ligtable oct"273": "|" =: oct"277";
+ligtable oct"300": "|" =: oct"304"; ligtable oct"301": "|" =: oct"305";
+ligtable oct"302": "|" =: oct"306"; ligtable oct"303": "|" =: oct"307";
+
+ligtable "s": "a" =: oct"001", "b" =: oct"002",
+"d" =: oct"004", "e" =: oct"005", "f" =: oct"006", "g" =: oct"007",
+"h" =: oct"010", "i" =: oct"011", "j" =: oct"012", "k" =: oct"013",
+"l" =: oct"014", "m" =: oct"015", "n" =: oct"016", "o" =: oct"017",
+"p" =: oct"020", "q" =: oct"021", "r" =: oct"022", "s" =: oct"023",
+"t" =: oct"024", "u" =: oct"025", "w" =: oct"027",
+"x" =: oct"030", "y" =: oct"031", "z" =: oct"032", "`" =: oct"375",
+"'" =: oct"376", "~" =: oct"377";
+
+ligtable oct"375": "a" =: oct"203", "h" =: oct"233", "w" =: oct"263",
+ "e" =: oct"343", "i" =: oct"313", "o" =: oct"347", "u" =: oct"317";
+ligtable oct"376": "a" =: oct"213", "h" =: oct"243", "w" =: oct"273",
+ "e" =: oct"353", "i" =: oct"323", "o" =: oct"357", "u" =: oct"327",
+ "'" =: oct"003";
+ligtable oct"377": "a" =: oct"223", "h" =: oct"253", "w" =: oct"303",
+ "i" =: oct"333", "u" =: oct"337";
diff --git a/Master/texmf-dist/fonts/source/public/levy/lower.mf b/Master/texmf-dist/fonts/source/public/levy/lower.mf
new file mode 100644
index 00000000000..e0ff467221c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/lower.mf
@@ -0,0 +1,24 @@
+readfrom("a")
+readfrom("b")
+readfrom("g")
+readfrom("d")
+readfrom("e")
+readfrom("z")
+readfrom("h")
+readfrom("j")
+readfrom("i")
+readfrom("k")
+readfrom("l")
+readfrom("m")
+readfrom("n")
+readfrom("x")
+readfrom("o")
+readfrom("p")
+readfrom("r")
+readfrom("s")
+readfrom("t")
+readfrom("u")
+readfrom("f")
+readfrom("q")
+readfrom("y")
+readfrom("w")
diff --git a/Master/texmf-dist/fonts/source/public/levy/m.mf b/Master/texmf-dist/fonts/source/public/levy/m.mf
new file mode 100644
index 00000000000..b671662ba45
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/m.mf
@@ -0,0 +1,51 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 9.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5stem# enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ y6+.5stem=h+o; pos6(stem,0); rt x6r=hround(w-vstem); %top right
+ x5r=.5[x1,x6]; bot y5r=-oo; %bottom of bowl
+ if straight:
+ lft x1r=hround .75 u; y1+.5stem=h+o; pos1(stem,180); %top left
+ x4=x1; x9=x6; y9=y4=.5x_height; pos4(stem,180); pos9(stem,0);
+ pos5(vstem, 270);
+ filldraw double_circ_stroke z1e..pulled_arc.e(4,5)&pulled_arc.e(5,9)..z6e;
+ y8-.5stem=-d-oo; x8=x1; pos8(stem,180); %end of handle
+ filldraw circ_stroke z8e..z4e;
+ else:
+ lft x2r=rt x2l-stem=hround .75u; %vertical tangents of left bulb
+ top y1r=h+o; x1r=.5[x2r,x2l]; z1=z1l=z1r; z1'r=-z1'l=left; %top left
+ y3r=.4[y1r,y5r]; lft x3r=x1r-.5hair; %middle left
+ numeric tilt; tilt:=.6; path p.r, p.l;
+ p.l=gr_arc.l(3,4,5)(hair,.4[hair,stem],tilt)...{up}z6l;
+ p.r=subpath (2(1-tilt),2) of gr_arc.r(3,4,5)(fie,fo,fum)...{up}z6r;
+ z3.5r=z4r; z3.5'r=z4'r; z3.5l=z3l; z3.5'l=z3'l; %a hybrid
+ filldraw double_circ_stroke club.e(1,2,3.5) & p.e; %bowl
+ x8=lft x2r+stem; y8-.5stem=-d-oo; %end of handle
+ pos8(stem,angle(z4'l xscaled 2)-90); z8'r=z8'l=z4'l xscaled 2;
+ assign_z3'r(z3'l); %so club.r won't get confused
+ lft x7r=rt x7l-max(hair,2)=lft x2r; %vertical tangents of handle
+ filldraw double_circ_stroke club.e(3,7,8); %handle
+ y9r=max(y4r+epsilon,-oo+2vstem); %where hook attaches
+ z9r=((0,y9r)--(w,y9r)) intersectionpoint p.r; pos9(hair,0);
+ fi
+ pos10(vstem,90); y10l=y5r; x10-x9=vstem; %bottom of hook
+ pos11(hair,180); top y11=bot y10l+4/3vstem; %tip of hook
+ rt x11l=hround(x10+(y11-y10)+.5hair); %central arc is round
+ filldraw stroke z9e{down}..z10e{right}..{up}z11e; %hook
+enddef;
+
+cmchar "Lowercase mu";
+beginchar("m",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by mu";
+begindoublechar(oct"015",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/n.mf b/Master/texmf-dist/fonts/source/public/levy/n.mf
new file mode 100644
index 00000000000..32bc611f023
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/n.mf
@@ -0,0 +1,31 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ rt x4r=hround(w-.75u); lft x4l-rt x4r=hround -.2[hair,stem]; %vert tangents
+ x5=lft x4l; y5+.5hair=h+oo; z5'l=z5'r=(u,-.2h); %right tip
+ pos5(hair,angle z5'l+90);
+ pos3(whatever,-90); bot y3r=-oo; x3=.5w; z3'l=z3'r=z5'l xscaled -2; %bottom
+ z3l+whatever*z3'l=z3r+(stem-currentbreadth)*(dir(angle z3'l-90)); %width=stem
+ filldraw circ_stroke club.e(5,4,3); %right stroke
+ y1+.5stem=h+oo; x1-.5stem=hround.75u; %left tip
+ z1'=(9u,-h); pos1(stem,angle z1'-90);
+ z2r=z3r; z2l-z3l=(hair-currentbreadth,0);
+ filldraw circ_stroke z1e{z1'}...{down}z2e; %left stroke
+enddef;
+
+cmchar "Lowercase nu";
+beginchar("n",dims);
+this_letter; penlabels(1,2,3,4,5); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by nu";
+begindoublechar(oct"016",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/o.mf b/Master/texmf-dist/fonts/source/public/levy/o.mf
new file mode 100644
index 00000000000..7af13f7c110
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/o.mf
@@ -0,0 +1,64 @@
+if unknown gen_acc : readfrom("gen_acc") fi
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def width = 9.5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5x_height; %top and bottom
+ top y2r=x_height+oo; bot y6r=-oo; x2r=x6r=.5w; %right and left
+ filldraw stroke
+ gr_arc.e(8,1,2)(vair,curve,otilt) & gr_arc.e(2,3,4)(vair,curve,otilt) &
+ gr_arc.e(4,5,6)(vair,curve,otilt) & gr_arc.e(6,7,8)(vair,curve,otilt) ;
+ numeric x_baryctr; x_baryctr=x2; %accent reference
+enddef;
+
+
+cmchar "Lowercase omicron";
+beginchar("o",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase omicron with grave";
+beginchar(oct"344",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase omicron with rough breathing";
+beginchar(oct"345",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing";
+beginchar(oct"346",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by omicron with grave";
+begindoublechar(oct"347",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase omicron with acute";
+beginchar(oct"354",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase omicron with rough breathing and acute";
+beginchar(oct"355",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing and acute";
+beginchar(oct"356",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by omicron with acute";
+begindoublechar(oct"357",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase sigma followed by omicron";
+begindoublechar(oct"017",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/p.mf b/Master/texmf-dist/fonts/source/public/levy/p.mf
new file mode 100644
index 00000000000..912970c101d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/p.mf
@@ -0,0 +1,30 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 9.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pi_bar; %bar
+ pos4(hair,0); pos7(hair,0); y4=y7=y2; %attachments
+ lft x4l-(x1-.5hair)=lft x7l-rt x4r=rt x3-rt x7r;
+ pos5(hair,0); pos8(hair,0); y5=y8=.5x_height; x5=x4; x8=x7; %midstems
+ x6+.5stem=hround(rt x4r if not straight:-.25u fi); y6-.5stem=-oo; %left stem
+ numeric slope; slope=angle((z5-z6)xscaled2); pos6(stem,slope-90);
+ filldraw circ_stroke z6e...z5e---z4e;
+ x9=x7+1.5u; bot y9l=-oo; pos9(stem,90); alpha_tail(9,10); %right stem
+ filldraw stroke z10e...z9e{left}...z8e---z7e;
+enddef;
+
+cmchar "Lowercase pi";
+beginchar("p",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by pi";
+begindoublechar(oct"020",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/q.mf b/Master/texmf-dist/fonts/source/public/levy/q.mf
new file mode 100644
index 00000000000..3f485a10400
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/q.mf
@@ -0,0 +1,32 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+def dims = 10u#,x_height#,desc_depth# enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1+.5stem=h+oo; %top left
+ z1'=(1,.2); pos1(stem,angle z1'+90); %direction at z1
+ x3+x1=w; y3-.5stem=-d-oo; pos3(stem,angle z1'+90); %bottom right
+ z2=.5[z1,z3]; %attachment
+ z2'=(z3-z1)yscaled 2; pos2(hair,angle z2'+90); %direction at z4
+ filldraw double_circ_stroke z1e{z1'}... z2e{(z3-z1)yscaled 2}...{z1'}z3e;
+ lft x7l=hround .75u; bot y7l=-d-oo; z2=.5[z7l,z8r]=.5[z7r,z8l];
+ numeric stem'; stem'=stem-currentbreadth;
+ numeric theta; theta=angle(z8r-z7l)+angle((x8r-x7l)++(y8r-y7l)+-+stem',stem');
+ x7r=x7l+(stem'/sind theta); y7r=y7l;
+ filldraw stroke z7e..z8e;
+enddef;
+
+cmchar "Lowercase chi";
+beginchar("q",dims);
+this_letter; penlabels(1,2,3,7,8); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by chi";
+begindoublechar(oct"021",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/r.mf b/Master/texmf-dist/fonts/source/public/levy/r.mf
new file mode 100644
index 00000000000..0eb31fb6294
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/r.mf
@@ -0,0 +1,49 @@
+if unknown gen_acc : readfrom("gen_acc") fi
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def width = 8.5u enddef;
+def height = x_height enddef;
+def depth = desc_depth enddef;
+def dims = width#,height#,depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5h; %left and right
+ top y2r=h+oo; bot y6r=-oo; x2r=x6r=.5w; %top and bottom
+ filldraw stroke
+ gr_arc.e(4,5,6)(curve,vair,-otilt) & gr_arc.e(6,7,8)(curve,vair,-otilt) &
+ gr_arc.e(8,1,2)(curve,vair,-otilt) & gr_arc.e(2,3,4)(curve,vair,-otilt);
+ if straight:
+ y9-.5stem=-d-oo; x9=x4; pos9(stem,180); %end of handle
+ filldraw circ_stroke z9e..z4e;
+ else:
+ y9-.5stem=-d-oo; x9=lft x4r+stem; %end of handle
+ pos9(stem,angle((z9-z4)xscaled3)-90); z9'r=z9'l=(z9-z4)xscaled3;
+ rt x10l=lft x10r+vair; %vertical tangents of handle
+ x10r=x4r-epsilon; assign_z4'r((-2eps,-1)); %so club.r won't get confused
+ filldraw double_circ_stroke club.e(4,10,9);
+ fi
+ numeric x_baryctr; x_baryctr=x2; %breathing placement
+enddef;
+
+cmchar "Lowercase rho";
+beginchar("r",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase rho with rough breathing";
+beginchar(oct"373",width#,acc_ht#,depth#);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase rho with smooth breathing";
+beginchar(oct"374",width#,acc_ht#,depth#);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by rho";
+begindoublechar(oct"022",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/s.mf b/Master/texmf-dist/fonts/source/public/levy/s.mf
new file mode 100644
index 00000000000..f5fbe10b9c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/s.mf
@@ -0,0 +1,45 @@
+def dims=8u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos4(hair,-180); y4=.5h; lft x4r=hround .75u; %left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); y6=-.5stem; %bottom right
+ top y3r=h+oo; x3+.5stem=rt x6l; pos3(stem,90); %top right
+ pos5(stem,-90); bot y5r=0; x5=.5w; %inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+ filldraw double_circ_stroke %bowl and tail
+ z7e{right}...z6e{up}...z5e{left}...z4e{up}...z3e{right};
+enddef;
+
+cmchar "Final lowercase sigma";
+beginchar("s",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+if unknown gen_acc : readfrom("gen_acc") fi
+readfrom("gen_sigma") %to establish ital and fit_params
+
+cmchar "Initial and medial lowercase sigma";
+beginchar("c",dim_sigma);
+mid_sigma; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by sigma";
+begindoublechar(oct"023",dim_sigma);
+mid_sigma; middoublechar(dim_sigma); mid_sigma; endchar;
+
+cmchar "Lowercase sigma followed by grave";
+begindoublechar(oct"375",dim_sigma);
+mid_sigma; middoublechar(9u#,acc_ht#,0); grave(.5w); endchar;
+
+cmchar "Lowercase sigma followed by acute";
+begindoublechar(oct"376",dim_sigma);
+mid_sigma; middoublechar(9u#,acc_ht#,0); acute(.5w); endchar;
+
+cmchar "Lowercase sigma followed by circumflex";
+begindoublechar(oct"377",dim_sigma);
+mid_sigma; middoublechar(9u#,circ_ht#,0); circumflex(.5w); endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/t.mf b/Master/texmf-dist/fonts/source/public/levy/t.mf
new file mode 100644
index 00000000000..6290c3e06b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/t.mf
@@ -0,0 +1,26 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ pi_bar; %bar
+ pos4(hair,0); y4=y2; lft x4l-(x1-.5hair)=rt x3-rt x4r; %attachment
+ pos5(hair,0); y5=.5x_height; x5=x4; %midstems
+ x6=x4+1.5u; bot y6l=-oo; pos6(stem,90); alpha_tail(6,7); %stem
+ filldraw stroke z7e...z6e{left}...z5e---z4e;
+enddef;
+
+cmchar "Lowercase tau";
+beginchar("t",dims);
+this_letter; penlabels(1,2,3,6,7,8); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by tau";
+begindoublechar(oct"024",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/u.mf b/Master/texmf-dist/fonts/source/public/levy/u.mf
new file mode 100644
index 00000000000..d357e7d6de4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/u.mf
@@ -0,0 +1,105 @@
+if unknown gen_acc : readfrom("gen_acc") fi
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def width = 9u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ y2+.5stem=x_height+o; x2-.5stem=hround.75u; %left tip
+ lft x4r=hround(x2-.5stem+.75u); y4r=.5x_height; %left middle
+ y8r=y4r; rt x8r=hround(w-.75u); %right bulge
+ x6r=.5[x4r,x8r]; bot y6r=-oo; %bottom
+ numeric tilt;
+ tilt:=min(2*otilt,.5);
+ filldraw stroke
+ gr_arc.e(6,7,8)(vair,stem,tilt) ;
+ filldraw stroke
+ gr_arc.e(4,5,6)(vair,.4[vair,stem],tilt) ;
+ y9+.5hair=x_height+o; x9=x8-u; pos9(hair,angle ((z8-z9) xscaled 2)+90);
+ filldraw circ_stroke z9e...{-z8'e}z8e;
+ pos2(stem,angle((z4-z2) xscaled 2)-90);
+ filldraw circ_stroke z2e...{z4'e}z4e;
+ numeric x_baryctr; x_baryctr=.5w;
+enddef;
+
+cmchar "Lowercase upsilon";
+beginchar("u",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase upsilon with grave";
+beginchar(oct"314",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with rough breathing";
+beginchar(oct"315",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase upsilon with smooth breathing";
+beginchar(oct"316",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by upsilon with grave";
+begindoublechar(oct"317",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with acute";
+beginchar(oct"324",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with rough breathing and acute";
+beginchar(oct"325",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase upsilon with smooth breathing and acute";
+beginchar(oct"326",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by upsilon with acute";
+begindoublechar(oct"327",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with circumflex";
+beginchar(oct"334",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with rough breathing and circumflex";
+beginchar(oct"335",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase upsilon with smooth breathing and circumflex";
+beginchar(oct"336",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by upsilon with circumflex";
+begindoublechar(oct"337",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis";
+beginchar(oct"364",width#,circ_ht#,0);
+this_letter; diaeresis(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis and grave";
+beginchar(oct"365",width#,acc_ht#,0);
+this_letter; diaeresis_grave(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis and acute";
+beginchar(oct"366",width#,acc_ht#,0);
+this_letter; diaeresis_acute(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with diaeresis and circumflex";
+beginchar(oct"367",width#,Circ_ht#,0);
+this_letter; diaeresis_circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase sigma followed by upsilon";
+begindoublechar(oct"025",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/upper.mf b/Master/texmf-dist/fonts/source/public/levy/upper.mf
new file mode 100644
index 00000000000..ba86ba52d32
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/upper.mf
@@ -0,0 +1,603 @@
+%This file is a rearrangement of code in Computer Modern's romanu.mf
+%It contains definitions for Greek capitals.
+
+cmchar "Uppercase alpha";
+beginchar("A",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase beta";
+beginchar("B",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Uppercase epsilon";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Uppercase eta";
+beginchar("H",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase iota";
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "Uppercase kappa";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase mu";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "Uppercase nu";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+cmchar "Uppercase omicron";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase rho";
+beginchar("R",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: dish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Uppercase tau";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper bracketing
+ dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); fi % lower serif
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase chi";
+beginchar("Q",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "Uppercase zeta";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase gamma";
+beginchar("G",11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase delta";
+beginchar("D",15u#,cap_height#,0);
+adjust_fit(0,0);
+numeric left_stem,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+x1l=w-x4r=.75u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+y5=y6=cap_vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ unfill z0+.5right{down}...{z4-z3}z6--z5{z2-z1}
+ ...{up}z0+.5left--cycle; % counter
+else: unfill z0--z5--z6--cycle; fi % counter
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase theta";
+beginchar("J",14u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=hround(cap_curve-2stem_corr);
+penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup crisp.nib; pos5(cap_vstem,90); pos6(cap_vstem,90);
+lft x5=w-rt x6=hround(x2l+u)+1; y5=y6=.5[y1l,y3l];
+filldraw stroke z5e--z6e; % bar
+if serifs: pos7(hair,0); pos8(hair,0); pos9(hair,0); pos10(hair,0);
+ x7l=x8l=x5; x9r=x10r=x6;
+ y7-y5r=y9-y6r=y5l-y8=y6l-y10=vround .05h;
+ filldraw stroke z7e--z8e; % left serif
+ filldraw stroke z9e--z10e; fi % right serif
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Uppercase lambda";
+beginchar("L",12u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,outer_jut,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase xi";
+beginchar("X",12u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem];
+pickup crisp.nib; pos1(shaved_stem,90); pos2(hair,0);
+top y1r=h; x1=.5w; rt x2r=hround(w-.85u); y2=good.y(y1l-4/9beak)-eps;
+arm(1,2,a,.4beak_darkness,.3beak_jut); % upper right arm and beak
+pos3(hair,180); x3=w-x2; y3=y2;
+arm(1,3,b,.4beak_darkness,-.3beak_jut); % upper left arm and beak
+pos4(shaved_stem,-90); pos5(hair,0);
+bot y4r=0; x4=.5w; rt x5r=hround(w-.75u); y5=good.y(y4l+.5beak)+eps;
+arm(4,5,c,.4beak_darkness,.3beak_jut); % lower right arm and beak
+pos6(hair,180); x6=w-x5; y6=y5;
+arm(4,6,d,.4beak_darkness,-.3beak_jut); % lower left arm and beak
+pos7(shaved_stem,90); pos8(shaved_stem,90);
+lft x7=w-rt x8=hround if serifs: 2.5 else: 2 fi\\ u;
+top y7r=top y8r=vround(.52h+.5shaved_stem);
+filldraw stroke z7e--z8e; % middle bar
+if serifs: numeric xjut;
+ if bot y2>top y7r+.75cap_jut: xjut=.5cap_jut;
+ else: bot y2=top y7r+1.5xjut; fi
+ pos11(hair,0); pos12(hair,0); y11=y12;
+ pos13(hair,0); pos14(hair,0); y13=y14;
+ lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u;
+ top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7;
+ filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; fi % middle serifs
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,11,12,13,14); endchar;
+
+cmchar "Uppercase pi";
+beginchar("P",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib;
+h:=vround(h-stem_corr);
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5r=y6r=h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,eps); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,eps,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase sigma";
+beginchar("S",13u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(0,0);
+numeric bot_arm_thickness;
+bot_arm_thickness=Vround .25[slab,cap_vstem];
+pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l;
+top y1=h; bot y2=h-slab; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0);
+penpos3(alpha1*(cap_stem-tiny),0);
+alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(cap_hair-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
+arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase upsilon";
+beginchar("U",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); y1=.5h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(.6cap_stem,0); penpos4(.75cap_curve,90); penpos5(cap_hair,180);
+z3l=lft z1l; x5r=hround u; y5=bot .8h; x4=.61803[x3l,x5l]; y4r=h+o;
+penpos5'(cap_hair,180); x5'=x5; y5'=h;
+fill z3r{up}...z4r{left}...{down}diag_end(5'r,5r,1,1,5l,5'l){up}
+ ...{right}z4l...{down}z3l--cycle; % left arc
+penpos6(.6cap_stem,0); penpos7(.75cap_curve,-90); penpos8(cap_hair,-180);
+z6r=rt z1r; x8=w-x5; y8=y5; x7=w-x4; y7=y4;
+penpos8'(cap_hair,-180); x8'=x8; y8'=h;
+fill z6r{up}...z7r{right}...{down}diag_end(8'r,8r,1,1,8l,8'l){up}
+ ...{left}z7l...{down}z6l--cycle; % right arc
+if serifs: dish_serif(2,1,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); fi % serif
+math_fit(-.8cap_height#*slant-.5u#,ic#-2.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase phi";
+beginchar("F",13u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem,light_curve;
+shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5];
+y5r=vround(.15h if serifs:+slab fi);
+penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase psi";
+beginchar("Y",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem;
+shaved_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(shaved_stem,-180); pos4(shaved_stem,-180);
+pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi);
+pos6(shaved_stem,0); pos7(shaved_stem,0);
+lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4;
+pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r;
+y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3');
+interim superness:=more_super;
+filldraw z3'l{right}...z4r{down} & super_arc.r(4,5)
+ & super_arc.r(5,6) & z6r{up}...z7'l{right}
+ --z7r---z7l...z6l{down} & super_arc.l(6,5)
+ & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.8cap_height#*slant-.5u#,.4cap_height#*slant-1.25u#);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Uppercase omega";
+beginchar("W",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/levy/w.mf b/Master/texmf-dist/fonts/source/public/levy/w.mf
new file mode 100644
index 00000000000..3bd2bbc9f73
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/w.mf
@@ -0,0 +1,145 @@
+if unknown gen_acc : readfrom("gen_acc") fi
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def width = 12u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos2(stem,-180); pos8(stem,360); lft x2r=w-rt x8r=hround.75u;
+ y2=y8=.8bar_height; %left and right bulges
+ y4=y6=bar_height; .5[x4,x6]=.5w; rt x4r-lft x6r=stem;
+ pos4(hair,0); pos6(hair,180); %left and right of loop
+ bot y3r=bot y7r=-oo; x3=.5[x2,x4]; x7+.25u=.5[x6,x8];
+ pos3(vstem,-150); pos7(vstem,330); %left and right bottom
+ top y1r=x_height+o=top y9r; %left tip
+ x1=.5[x2,.5w]; pos1(.2[stem,hair],angle(-.5w,y2-x_height)-90);
+ x9=.5[x8,.5w]; pos9(.8[stem,hair],angle(-.5w,x_height-y2)-90); %rt tip
+ filldraw stroke z1e{(z2-z1) xscaled 2}...z2e{down}...z3e{right};
+ filldraw stroke z7e{right}...{up}z8e...{(z9-z8) xscaled 2}z9e;
+ drawloop(3,4,6,7);
+ numeric x_baryctr; x_baryctr=.5[x4,x6];
+ numeric pos_stem; pos_stem=x_baryctr;
+enddef;
+
+cmchar "Lowercase omega";
+beginchar("w",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase omega with grave";
+beginchar(oct"260",width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase omega with rough breathing";
+beginchar(oct"261",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing";
+beginchar(oct"262",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by omega with grave";
+begindoublechar(oct"263",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; grave(x_baryctr); endchar;
+
+cmchar "Lowercase omega with grave and iota subscript";
+beginchar(oct"264",width#,acc_ht#,iota_dp#);
+this_letter; grave(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing and iota subscript";
+beginchar(oct"265",width#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing and iota subscript";
+beginchar(oct"266",width#,acc_ht#,iota_dp#);
+this_letter; spirit(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by omega with iota subscript";
+begindoublechar(oct"267",dim_sigma);
+mid_sigma; middoublechar(width#,height#,iota_dp#);
+this_letter; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with acute";
+beginchar(oct"270",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase omega with rough breathing and acute";
+beginchar(oct"271",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing and acute";
+beginchar(oct"272",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by omega with acute";
+begindoublechar(oct"273",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase omega with acute and iota subscript";
+beginchar(oct"274",width#,acc_ht#,iota_dp#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing, acute and iota subscript";
+beginchar(oct"275",width#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing and acute and iota subscript";
+beginchar(oct"276",width#,acc_ht#,iota_dp#);
+this_letter; spirit_acute(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by omega with acute and iota subscript";
+begindoublechar(oct"277",dim_sigma);
+mid_sigma; middoublechar(width#,acc_ht#,iota_dp#);
+this_letter; acute(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with circumflex";
+beginchar(oct"300",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase omega with rough breathing and circumflex";
+beginchar(oct"301",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing and circumflex";
+beginchar(oct"302",width#,Circ_ht#,0);
+this_letter; spirit_circumflex(x_baryctr)>; endchar;
+
+cmchar "Lowercase sigma followed by omega with circumflex";
+begindoublechar(oct"303",dim_sigma);
+mid_sigma; middoublechar(width#,Circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+cmchar "Lowercase omega with circumflex and iota subscript";
+beginchar(oct"304",width#,circ_ht#,iota_dp#);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with rough breathing, circumflex and iota subscript";
+beginchar(oct"305",width#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)<; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with smooth breathing, circumflex and iota subscript";
+beginchar(oct"306",width#,acc_ht#,iota_dp#);
+this_letter; spirit_circumflex(x_baryctr)>; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by omega with circumflex and iota subscript";
+begindoublechar(oct"307",dim_sigma);
+mid_sigma; middoublechar(width#,Circ_ht#,0);
+this_letter; circumflex(x_baryctr); iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase omega with iota subscript";
+beginchar(oct"372",width#,height#,iota_dp#);
+this_letter; iota_sub(pos_stem); endchar;
+
+cmchar "Lowercase sigma followed by omega";
+begindoublechar(oct"027",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture pic.iota;
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/x.mf b/Master/texmf-dist/fonts/source/public/levy/x.mf
new file mode 100644
index 00000000000..0db8aabd7b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/x.mf
@@ -0,0 +1,38 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 8.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ lft x7r=rt x7l-hair=hround(.75u); x7=.5[x7r,x7r]; %big bulge
+ pos8(stem,-90); bot y8r=0; x8=.5w; z8'r=z8'l=left; %inflection pt
+ pos9(hair,-180); rt x9l=hround(w-.75u); y9=-.5stem; %bottom right
+ y6+.5stem=x_height+o; x6+.5stem=hround(rt x9l-1.5u); %middle right
+ numeric slope; slope=angle(5(x6-x7),y6-y8); pos6(stem,slope+90);
+ z6'r=z6'l=dir slope;
+ pos10(vstem,-270); y9=.5[y10r,y8r]; x10-.5vstem=hround x8;
+ filldraw double_circ_stroke %bowl and tail
+ z10e{right}...z9e{up}...club.e(8,7,6);
+ pos5(hair,slope-90); z5l=z6r; %attachment
+ z4=.5[z3,z5]+whatever*dir slope; %small bulge
+ pos4(hair,-180); lft x4r=hround(lft x7r+1.5u);
+ y3+.5stem=h+o; x3+.5stem=hround(rt x9l-.25u); pos3(stem,slope+90); %top rt
+ filldraw circ_stroke z3e{-dir slope}..z4{down}...z5e{dir slope};
+ pos2(hair,slope+90); z2r=z3r; %where handle attaches
+ pos1(curve,0); lft x1l=hround(lft x7r+.25u); y1+.5curve=h+o; %end of handle
+ filldraw circ_stroke z1e{down}...z2e{dir slope};
+enddef;
+
+cmchar "Lowercase xi";
+beginchar("x",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by xi";
+begindoublechar(oct"030",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/y.mf b/Master/texmf-dist/fonts/source/public/levy/y.mf
new file mode 100644
index 00000000000..809047e82fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/y.mf
@@ -0,0 +1,35 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 10.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ lft x2r=w-rt x6r=.75u; y2r=y6r=.6x_height; %left and right bulges
+ x4r=.5[x2r,x6r]; bot y4r=-oo; %bottom
+ numeric tilt; tilt:=min(2*otilt,.5);
+ filldraw stroke gr_arc.e(4,5,6)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(2,3,4)(vair,.4[vair,stem],tilt) ;
+ y7+.5hair=x_height+o; x7+.5hair=hround(rt x6r-.75u); %right tip
+ pos7(hair,angle ((z6-z7) xscaled 2)+90);
+ filldraw circ_stroke z7e...{-z6'e}z6e;
+ y1+.5stem=x_height+o; x1-.5stem=hround(lft x2r+.5u); %left tip
+ pos1(stem,angle((z2-z1) xscaled 2)-90);
+ filldraw circ_stroke z1e...{z2'e}z2e;
+ pos10(stem,0); pos9(hair,0); pos8(stem,0); %vertical stroke
+ y10-.5stem=-d-o; y9=.25x_height; y8+.5stem=h+o; x10=x9=x8=x4;
+ filldraw double_circ_stroke z10e..z9e{up}..z8e;
+enddef;
+
+cmchar "Lowercase psi";
+beginchar("y",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by psi";
+begindoublechar(oct"031",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/levy/z.mf b/Master/texmf-dist/fonts/source/public/levy/z.mf
new file mode 100644
index 00000000000..d9db0c1bd97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/levy/z.mf
@@ -0,0 +1,32 @@
+if unknown gen_sigma : readfrom("gen_sigma") fi
+
+def dims = 8.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ pos4(hair,-180); y4=bar_height; lft x4r=hround(.75u); %left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); y6=-.5stem; %bottom right
+ y3+.5stem=h+o; x3+.5stem=hround(rt x6l-.25u); %top right
+ numeric slope; slope=angle((z3-z4)xscaled 2); pos3(stem,slope+90);
+ pos5(stem,-90); bot y5r=0; x5=.5w; %inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+ filldraw double_circ_stroke %bowl and tail
+ z7e{right}...z6e{up}...z5e{left}...z4e{up}...z3e{dir slope};
+ pos2(hair,slope+90); z2r=z3r; %where handle attaches
+ pos1(curve,0); lft x1l=hround(lft x4r+.25u); y1+.5curve=h+o; %end of handle
+ filldraw circ_stroke z1e{down}...z2e{dir slope};
+enddef;
+
+cmchar "Lowercase zeta";
+beginchar("z",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+if boolean barebones: picture savedpicture; endinput; fi
+
+cmchar "Lowercase sigma followed by zeta";
+begindoublechar(oct"032",dim_sigma);
+mid_sigma; middoublechar(dims); this_letter; endchar;
+
+picture savedpicture;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/accents.mf b/Master/texmf-dist/fonts/source/public/lfb/accents.mf
new file mode 100644
index 00000000000..5290e9271af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/accents.mf
@@ -0,0 +1,670 @@
+
+ %% accents.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% Every character that wishes to use these accents should
+% define accent_centre (numeric) to be the x coordinate
+% around which the accent should be centred.
+
+
+def acc_smooth =
+ penpos101(thick, 90);
+ penpos102(medthin, 0);
+ penpos103(thin, -90);
+ z100=z101+(4/3(z101l-z101) rotated -60);
+ y103r=x_height+.85u;
+ y102=y103l+.85u;
+ y101l=y102+.7u;
+ x100=accent_centre-1/2breathingwidth;
+ x102r=x100+breathingwidth;
+ x103=x100+1/3breathingwidth;
+ fill z100..z101l..z102l..{dir -150}z103l
+ --z103r{dir 30}..z102r..{left}z101r..cycle;
+enddef;
+
+
+def acc_rough =
+ penpos111(thick, -90);
+ penpos112(medthin, 0);
+ penpos113(thin, 90);
+ z110=z111+(4/3(z111l-z111) rotated -120);
+ y113l=x_height+.85u;
+ y112=y113r+.85u;
+ y111r=y112+.7u;
+ x110=x112l+breathingwidth;
+ x112l=accent_centre-1/2breathingwidth;
+ x113=x112l+2/3breathingwidth;
+ fill z110..z111l..z112l..{dir -30}z113l
+ --z113r{dir 150}..z112r..{right}z111r..cycle;
+enddef;
+
+
+def acc_acute =
+ penpos121(thick, acuteangle-90);
+ penpos122(thin, acuteangle-90);
+ z120=z121+((z121l-z121) rotated -90);
+ z123=z122+((z122l-z122) rotated 90);
+ y123=x_height+.85u;
+ y120=y123+1.55u+thick+thin;
+ x122=accent_centre;
+ z310=dir acuteangle;
+ (x121-x122)/x310=(y121-y122)/y310;
+ fill z120..z121l---z122l..z123..z122r---z121r..cycle;
+enddef;
+
+
+def acc_grave =
+ penpos131(thick, graveangle-90);
+ penpos132(thin, graveangle-90);
+ z130=z131+((z131l-z131) rotated -90);
+ z133=z132+((z132l-z132) rotated 90);
+ y133=x_height+.85u;
+ y130=y133+1.55u+thick+thin;
+ x132=accent_centre;
+ z310=dir graveangle;
+ (x131-x132)/x310=(y131-y132)/y310;
+ fill z130..z131l---z132l..z133..z132r---z131r..cycle;
+enddef;
+
+
+def acc_circ =
+ penpos141(thin, 80);
+ penpos142(medium, 90);
+ penpos143(medium, 90);
+ penpos144(thin, 80);
+ y141l=x_height+thick;
+ y143l=y141l+tiny;
+ y142l=y141l+medium;
+ y144r=y142r+tiny;
+ x141=accent_centre-1/2circwidth;
+ x144=accent_centre+1/2circwidth;
+ x142=1/4[x141, x144];
+ x143=3/4[x141, x144];
+ penstroke z141e..z142e..z143e..z144e;
+enddef;
+
+
+def mini_circ =
+ penpos141(thin, 80);
+ penpos142(medium, 90);
+ penpos143(medium, 90);
+ penpos144(thin, 80);
+ y141l=x_height+4u;
+ y143l=y141l+tiny;
+ y142l=y141l+medium;
+ y144r=y142r+tiny;
+ x141=accent_centre-1/2circwidth;
+ x144=accent_centre+1/2circwidth;
+ x142=1/4[x141, x144];
+ x143=3/4[x141, x144];
+ penstroke z141e..z142e..z143e..z144e;
+enddef;
+
+
+def acc_smoothacute =
+ accent_centre:=accent_centre-breathingwidth/2-tiny;
+ acc_smooth;
+ accent_centre:=accent_centre+breathingwidth/2+medium;
+ acc_acute;
+enddef;
+
+
+def acc_smoothgrave =
+ accent_centre:=accent_centre-breathingwidth/2-tiny;
+ acc_smooth;
+ accent_centre:=accent_centre+breathingwidth/2+2u;
+
+ penpos131(thick, graveangle-100);
+ penpos132(thin, graveangle-100);
+ z130=z131+((z131l-z131) rotated -90);
+ z133=z132+((z132l-z132) rotated 90);
+ y133=x_height+.85u;
+ y130=y133+1.55u+thick+thin;
+ x132=accent_centre;
+ z310=dir (graveangle-10);
+ (x131-x132)/x310=(y131-y132)/y310;
+ fill z130..z131l---z132l..z133..z132r---z131r..cycle;
+enddef;
+
+
+def acc_smoothcirc =
+ numeric rc;
+ rc := 5/6;
+ penpos101(rc*thick, 90);
+ penpos102(rc*medthin, 0);
+ penpos103(rc*thin, -90);
+ z100=z101+(4/3(z101l-z101) rotated -60);
+ y103r=x_height+.85u;
+ y102=y103l+rc*.85u;
+ y101l=y102+rc*.7u;
+ x100=accent_centre-rc*1/2breathingwidth;
+ x102r=x100+rc*breathingwidth;
+ x103=x100+rc*1/3breathingwidth;
+ fill z100..z101l..z102l..{dir -150}z103l
+ --z103r{dir 30}..z102r..{left}z101r..cycle;
+
+ mini_circ;
+enddef;
+
+
+def acc_roughacute =
+ accent_centre:=accent_centre-breathingwidth/2-tiny;
+ acc_rough;
+ accent_centre:=accent_centre+breathingwidth/2+medium;
+ acc_acute;
+enddef;
+
+
+def acc_roughgrave =
+ accent_centre:=accent_centre-breathingwidth/2-tiny;
+ acc_rough;
+ accent_centre:=accent_centre+breathingwidth/2+2u;
+
+ penpos131(thick, graveangle-100);
+ penpos132(thin, graveangle-100);
+ z130=z131+((z131l-z131) rotated -90);
+ z133=z132+((z132l-z132) rotated 90);
+ y133=x_height+.85u;
+ y130=y133+1.55u+thick+thin;
+ x132=accent_centre;
+ z310=dir (graveangle-10);
+ (x131-x132)/x310=(y131-y132)/y310;
+ fill z130..z131l---z132l..z133..z132r---z131r..cycle;
+enddef;
+
+
+def acc_roughcirc =
+ numeric rc;
+ rc := 5/6;
+ penpos111(rc*thick, -90);
+ penpos112(rc*medthin, 0);
+ penpos113(rc*thin, 90);
+ z110=z111+(4/3(z111l-z111) rotated -120);
+ y113l=x_height+.85u;
+ y112=y113r+rc*.85u;
+ y111r=y112+rc*.7u;
+ x110=x112l+rc*breathingwidth;
+ x112l=accent_centre-rc*1/2breathingwidth;
+ x113=x112l+rc*2/3breathingwidth;
+ fill z110..z111l..z112l..{dir -30}z113l
+ --z113r{dir 150}..z112r..{right}z111r..cycle;
+
+ mini_circ;
+enddef;
+
+
+def acc_diaer =
+ numeric diameter;
+ diameter=6/7quotewidth;
+
+ x151 = x152+1/2diameter = x153 = x154-1/2diameter
+ = accent_centre - 1.5u;
+ x155 = x156+1/2diameter = x157 = x158-1/2diameter
+ = accent_centre + 1.5u;
+ y151-1/2diameter = y152 = y153+1/2diameter = y154
+ = y155-1/2diameter = y156 = y157+1/2diameter = y158
+ = x_height+2u;
+
+ fill z151..z152..z153..z154..cycle;
+ fill z155..z156..z157..z158..cycle;
+enddef;
+
+
+def acc_diaeracute =
+ numeric diameter;
+ diameter=6/7quotewidth;
+
+ x151 = x152+1/2diameter = x153 = x154-1/2diameter
+ = accent_centre - 2u;
+ x155 = x156+1/2diameter = x157 = x158-1/2diameter
+ = accent_centre + 2u;
+ y151-1/2diameter = y152 = y153+1/2diameter = y154
+ = y155-1/2diameter = y156 = y157+1/2diameter = y158
+ = x_height+2u;
+
+ fill z151..z152..z153..z154..cycle;
+ fill z155..z156..z157..z158..cycle;
+
+ penpos121(thick, acuteangle-90);
+ penpos122(thin, acuteangle-90);
+ z120=z121+((z121l-z121) rotated -90);
+ z123=z122+((z122l-z122) rotated 90);
+ y123=x_height+.85u;
+ y120=y123+1.55u+thick+thin;
+ x122=accent_centre-.5u;
+ z310=dir acuteangle;
+ (x121-x122)/x310=(y121-y122)/y310;
+ fill z120..z121l---z122l..z123..z122r---z121r..cycle;
+enddef;
+
+
+def acc_diaergrave =
+ numeric diameter;
+ diameter=quotewidth;
+
+ x151 = x152+1/2diameter = x153 = x154-1/2diameter
+ = accent_centre - 2u;
+ x155 = x156+1/2diameter = x157 = x158-1/2diameter
+ = accent_centre + 2u;
+ y151-1/2diameter = y152 = y153+1/2diameter = y154
+ = y155-1/2diameter = y156 = y157+1/2diameter = y158
+ = x_height+2u;
+
+ fill z151..z152..z153..z154..cycle;
+ fill z155..z156..z157..z158..cycle;
+
+ penpos131(thick, graveangle-90);
+ penpos132(thin, graveangle-90);
+ z130=z131+((z131l-z131) rotated -90);
+ z133=z132+((z132l-z132) rotated 90);
+ y133=x_height+.85u;
+ y130=y133+1.55u+thick+thin;
+ x132=accent_centre+.5u;
+ z310=dir graveangle;
+ (x131-x132)/x310=(y131-y132)/y310;
+ fill z130..z131l---z132l..z133..z132r---z131r..cycle;
+enddef;
+
+
+def acc_breve =
+ penpos161(thin, 0);
+ penpos162(medium, 90);
+ penpos163(thin, 180);
+
+ y161=y163=ascender;
+ y162l=x_height+1u;
+ x161l=x162-1/2circwidth;
+ x163l=x162+1/2circwidth;
+ x162=accent_centre;
+
+ penstroke z161e{down}..z162e..{up}z163e;
+enddef;
+
+
+def acc_macron =
+ penpos171(medium, 90);
+ penpos172(medium, 90);
+
+ y171l=y172l=x_height+1.2u;
+ x171=accent_centre-1/2circwidth;
+ x172=accent_centre+1/2circwidth;
+
+ penstroke z171e--z172e;
+enddef;
+
+
+def acc_iotasub =
+ penpos181(medium, 0);
+ penpos182(medium, 0);
+ penpos183(medthin, 90);
+
+ x181=x182=accent_centre;
+ x183=x182r+tiny;
+ y181=0-medthin;
+ y182=y183r+tiny;
+ y183l=0-descender-thin;
+ z184=z183+((z183l-z183) rotated 120);
+
+ fill z181l---z182l..z183l..z184..z183r..z182r---z181r--cycle;
+enddef;
+
+
+
+width#:=breathingwidth#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_smooth;
+enddef;
+
+beginchar(smooth, width#+extra#, ascender#, 0);
+gen_letter; penlabels(100,101,102,103);
+endchar;
+
+
+width#:=breathingwidth#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_rough;
+enddef;
+
+beginchar(rough, width#+extra#, ascender#, 0);
+gen_letter; penlabels(110,111,112,113);
+endchar;
+
+
+width#:=3u#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width-1u;
+ acc_acute;
+enddef;
+
+beginchar(acute, width#+extra#, ascender#, 0);
+gen_letter; penlabels(120,121,122,123);
+endchar;
+
+
+width#:=3u#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_grave;
+enddef;
+
+beginchar(grave, width#+extra#, ascender#, 0);
+gen_letter; penlabels(130,131,132,133);
+endchar;
+
+
+width#:=circwidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_circ;
+enddef;
+
+beginchar(circ, width#+extra#, ascender#, 0);
+gen_letter; penlabels(140,141,142,143,144);
+endchar;
+
+
+width#:=1.5u#+2thin#+breathingwidth#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_smoothacute;
+enddef;
+
+beginchar(smoothacute, width#+extra#, ascender#, 0);
+gen_letter;
+endchar;
+
+
+width#:=1.5u#+2thin#+breathingwidth#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_smoothgrave;
+enddef;
+
+beginchar(smoothgrave, width#+extra#, ascender#, 0);
+gen_letter;
+endchar;
+
+
+width#:=3/4circwidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_smoothcirc;
+enddef;
+
+beginchar(smoothcirc, width#+extra#, ascender#, 0);
+gen_letter;
+endchar;
+
+
+width#:=1.5u#+2thin#+breathingwidth#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_roughacute;
+enddef;
+
+beginchar(roughacute, width#+extra#, ascender#, 0);
+gen_letter;
+endchar;
+
+
+width#:=1.5u#+2thin#+breathingwidth#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_roughgrave;
+enddef;
+
+beginchar(roughgrave, width#+extra#, ascender#, 0);
+gen_letter;
+endchar;
+
+
+width#:=3/4circwidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_roughcirc;
+enddef;
+
+beginchar(roughcirc, width#+extra#, ascender#, 0);
+gen_letter;
+endchar;
+
+
+width#:=quotewidth#+3u#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_diaer;
+enddef;
+
+beginchar(diaer, width#+extra#, ascender#, 0);
+gen_letter; penlabels(151,152,153,154,155,156,157,158);
+endchar;
+
+
+width#:=quotewidth#+4u#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_diaeracute;
+enddef;
+
+beginchar(diaeracute, width#+extra#, ascender#, 0);
+gen_letter;
+endchar;
+
+
+width#:=quotewidth#+4u#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_diaergrave;
+enddef;
+
+beginchar(diaergrave, width#+extra#, ascender#, 0);
+gen_letter;
+endchar;
+
+
+width#:=circwidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_breve;
+enddef;
+
+beginchar(breve, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; penlabels(161,162,163);
+endchar;
+
+
+width#:=circwidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_macron;
+enddef;
+
+beginchar(macron, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; penlabels(171,172);
+endchar;
+
+
+width#:=2u#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_iotasub;
+enddef;
+
+beginchar(iotasub, width#+extra#, 0, descender#);
+gen_letter; penlabels(181,182,183,184);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/alpha.mf b/Master/texmf-dist/fonts/source/public/lfb/alpha.mf
new file mode 100644
index 00000000000..b719df3904d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/alpha.mf
@@ -0,0 +1,203 @@
+
+ %% alpha.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7.5u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thick, 180);
+ penpos2(medthick, 150);
+ penpos3(thin, 90);
+ penpos4(thick, 0);
+ penpos5(thin, -90);
+ penpos6(medthick, -180);
+ x1l=width-.5u-small;
+ x3=1/2x1; x5=x3+thin;
+ x4l=0;
+ y5l=x_height; y1=y5l-tiny;
+ y3l=0;
+ y4=x_height/2;
+ z2r=2/3[z1l,z3l]+(small,0);
+ z6=1/2[z1l,z3l]+(thin,0);
+ penstroke z1e..tension 1.4..z2e..z3e..z4e..z5e..tension 1.2..z6e;
+
+ penpos7(medium, 30);
+ penpos8(medium, 30);
+ penpos9(medthick, 90);
+ penpos10(thin, tailangle);
+ z7l=3/5[z1l,z3l]+(thin,0);
+ z8r=z9r+(-tiny, tiny);
+ x9=width-3u+thick+thin;
+ y10l=tailheight;
+ y9l=tinyoffset;
+ x10l=width;
+ fill z7l..z8l..z9l..tension 1.5..z10l--z10r
+ ..tension 2..z9r..z8r..z7r--cycle;
+
+ numeric accent_centre;
+ accent_centre=x5;
+ iotasubalphaback:=width+extra-accent_centre;
+enddef;
+
+beginchar(alpha, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(alpha_acc+smooth, width#+extra#, ascender#, 0);
+gen_letter; acc_smooth;
+endchar;
+
+beginchar(alpha_acc+rough, width#+extra#, ascender#, 0);
+gen_letter; acc_rough;
+endchar;
+
+beginchar(alpha_acc+acute, width#+extra#, ascender#, 0);
+gen_letter; acc_acute;
+endchar;
+
+beginchar(alpha_acc+grave, width#+extra#, ascender#, 0);
+gen_letter; acc_grave;
+endchar;
+
+beginchar(alpha_acc+circ, width#+extra#, ascender#, 0);
+gen_letter; acc_circ;
+endchar;
+
+beginchar(alpha_acc+smoothacute, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothacute;
+endchar;
+
+beginchar(alpha_acc+smoothgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothgrave;
+endchar;
+
+beginchar(alpha_acc+smoothcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothcirc;
+endchar;
+
+beginchar(alpha_acc+roughacute, width#+extra#, ascender#, 0);
+gen_letter; acc_roughacute;
+endchar;
+
+beginchar(alpha_acc+roughgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_roughgrave;
+endchar;
+
+beginchar(alpha_acc+roughcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_roughcirc;
+endchar;
+
+beginchar(alpha_acc+breve, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_breve;
+endchar;
+
+beginchar(alpha_acc+macron, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_macron;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/beta.mf b/Master/texmf-dist/fonts/source/public/lfb/beta.mf
new file mode 100644
index 00000000000..99e21ffc2c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/beta.mf
@@ -0,0 +1,154 @@
+
+ %% beta.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(thick, 90);
+ penpos3(medthin, 0);
+ penpos4(medthin, 0);
+ penpos5(medthick, -90);
+ penpos6(thick, betaangle-180);
+ penpos7(thin, betaangle+90);
+ penpos8(2u, betaangle);
+ penpos9(thin, betaangle-90);
+ penpos10(xthick, 180);
+ penpos11(medthin, 90);
+ penpos12(medthick, 80);
+ z1=z2+((z2l-z2) rotated 120);
+ x2=2.7u;
+ x3l=tiny;
+ x4l=0;
+ x5=3/5width;
+ x6l=x10;
+ x8l=thick;
+ x10l=width;
+ x11=1/2x10l;
+ y2l=-descender;
+ y3r=0;
+ y4=1/2(ascender-descender);
+ y5l=ascender;
+ y6=1/2[y8r,y5l];
+ y8r=5/9y5l;
+ y10=1/2y8r;
+ y11l=0;
+ z7r=z8r=z9r;
+ z12=1/2[z3,z4]+(-tiny,0);
+ fill z1..z2l..z3l{dir 95}..{dir 85}z4l..{right}z5l..z6l
+ ..{dir (betaangle-170)}z7l..z8l..z9l{dir (betaangle-10)}
+ ..z10l..z11l..z12l
+ --z12r..z11r..z10r..{dir (betaangle-180)}z9r..z8r..z7r{dir betaangle}
+ ..z6r..z5r{left}..z4r{dir -95}..{dir -85}z3r..z2r..cycle;
+enddef;
+
+beginchar(beta, width#+extra#, ascender#, descender#);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/capitals.mf b/Master/texmf-dist/fonts/source/public/lfb/capitals.mf
new file mode 100644
index 00000000000..a00c4aa9456
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/capitals.mf
@@ -0,0 +1,717 @@
+
+ %% capitals.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ z1=(1/2[x2,x12], ascender);
+ z2=(width-xthick-.5thick, 0);
+ z12=(xthick+.5thin, 0);
+ singlestem(4,5,6,7,8)(z1, z2, 90-angle(z1-z2), thick, slab, xthick);
+ z11=z4l+.5thin*dir(angle(z1-z12)-90); % cheap hack, but close enough
+ singlestem(14,15,16,17,18)(z11, z12, 90-angle(z11-z12), thin, slab, xthick);
+
+ penpos21(thin, angle(z11-z12));
+ penpos22(thin, angle(z1-z2));
+ y21=y22;
+ z21=whatever[z11,z12];
+ z22=4/7[z1,z2];
+ penstroke z21e..z22e;
+enddef;
+
+beginchar(Alpha, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,11,12,21,22);
+endchar;
+
+
+width#:=9u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ stem(1,2,3,4,5,6,7,8)((xthick+.5thick,ascender),
+ (xthick+.5thick,0), 0, 0, thick, slab, xthick);
+ penpos11(slab, 90);
+ penpos12(slab, 90);
+ penpos13(thick, 0);
+ penpos14(slab, -90);
+ penpos15(slab, -90);
+ penpos16(thick, 180);
+ penpos17(slab, 90);
+ penpos18(slab, 90);
+ x11=x15=x18=x1;
+ x12=x14=x17=5u;
+ y11r=y12r=ascender;
+ y14=y15=.55ascender;
+ y17l=y18l=0;
+ x13r=width-.5u;
+ x16l=width;
+ y13=1/2[y11,y15];
+ y16=1/2[y15,y18];
+ penstroke z11e..z12e{right}..z13e..{left}z14e..z15e;
+ penstroke z15e..z14e{right}..z16e..{left}z17e..z18e;
+enddef;
+
+beginchar(Beta, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18);
+endchar;
+
+
+width#:=9u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ stem(1,2,3,4,5,6,7,8)((xthick+.5thick,ascender),
+ (xthick+.5thick,0), 0, 0, thick, slab, xthick);
+
+ barrightserif(11,12,13,14)
+ ((x1,ascender),(width,ascender),slab,thin,2u,small);
+enddef;
+
+beginchar(Gamma, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,11,12,13,14);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ z1=(1/2[x2,x12], ascender);
+ z2=(width-.5thick, 0);
+ z12=(.5thin, 0);
+ z11=z1l+.5thin*dir(angle(z1-z12)-90); % cheap hack, but close enough
+ % penpos's come last because angle needs a known pair at all times
+ penpos1(thick, angle(z1-z2)-90);
+ penpos2(thick, 0);
+ penpos11(thin, angle(z11-z12)-90);
+ penpos12(thin, 0);
+ penstroke z1e..z2e;
+ penstroke z11e..z12e;
+
+ penpos21(slab, angle(z11l-z12l));
+ penpos22(slab, angle(z1l-z2l));
+ z21l=(0,0); z22l=(width,0);
+ penstroke z21e..z22e;
+enddef;
+
+beginchar(Delta, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,11,12,21,22);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ stem(1,2,3,4,5,6,7,8)((xthick+.5thick,ascender),
+ (xthick+.5thick,0), 0, 0, thick, slab, xthick);
+
+ barrightserif(11,12,13,14)
+ ((x1,ascender),(width-.5u,ascender),slab,thin,2u,small);
+ fill z11r--z13r--(z13r+(0,-slab))--(z11r+(0,-slab))--cycle;
+ barleftserif(15,16,17,18)
+ ((x1,0),(width,0),slab,thin,2.5u,small);
+ fill z15r--z17r--(z17r+(0,slab))--(z15r+(0,slab))--cycle;
+
+ numeric centreheight;
+ centreheight=.52ascender;
+ singlestem(19,20,21,22,23)
+ ((x1,centreheight),(width-2.5u,centreheight), 0, thin, slab, xthick);
+enddef;
+
+beginchar(Epsilon, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,19,20,21,22,23);
+endchar;
+
+
+width#:=9u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric topinset;
+ topinset=tiny;
+ barleftserif(1,2,3,4)
+ ((width-topinset,ascender),(topinset,ascender),slab,thin,2u,small);
+ barleftserif(5,6,7,8)
+ ((0,0),(width,0),slab,thin,2.5u,small);
+
+ z9r=z1l+(0,1);
+ z10l=z5l+(0,-1);
+ penpos9(thick/sind(angle(z9r-z10l)), 0); % close enough, again
+ penpos10(thick/sind(angle(z9r-z10l)), 0);
+ penstroke z9e..z10e;
+enddef;
+
+beginchar(Zeta, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+
+width#:=4xthick#+4thick#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ stem(1,2,3,4,5,6,7,8)((xthick+.5thick,ascender),
+ (xthick+.5thick,0), 0, 0, thick, slab, xthick);
+ stem(11,12,13,14,15,16,17,18)((width-xthick-.5thick,ascender),
+ (width-xthick-.5thick,0), 0, 0, thick, slab, xthick);
+ penpos20(thin, 90);
+ penpos21(thin, 90);
+ z20=whatever[z1,z2];
+ z21=whatever[z11,z12];
+ y20=y21=1/2ascender;
+ penstroke z20e..z21e;
+enddef;
+
+beginchar(Eta, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thick, 0);
+ penpos2(thin, 90);
+ penpos3(thick, 180);
+ penpos4(thin, -90);
+ y1=y3=ascender/2;
+ x2=x4=width/2;
+ x1l=0; x3l=width;
+ y2l=0; y4l=ascender;
+ penstroke z1e..z2e..z3e..z4e..cycle;
+
+ stem(5,6,7,8,9,10,11,12)((3u,1/2ascender),(width-3u,1/2ascender),
+ 0, 0, thick, slab, xthick);
+enddef;
+
+beginchar(Theta, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+
+width#:=2xthick#+1thick#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ stem(1,2,3,4,5,6,7,8)((1/2width,ascender),(1/2width,0),
+ 0, 0, thick, slab, xthick);
+enddef;
+
+beginchar(Iota, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+
+width#:=12u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ stem(1,2,3,4,5,6,7,8)((xthick+.5thick,ascender),
+ (xthick+.5thick,0), 0, 0, thick, slab, xthick);
+
+ z9=3/7[z8,z5];
+ z10=(width-thin-xthick-.5thin, ascender);
+ singlestem(11,12,13,14,15)(z9, z10, 90-angle(z10-z9), thin, slab, xthick);
+
+ z19=whatever[z9,z10];
+ z19=z20+whatever*(dir(angle(z10-z9)+90));
+ z20=(width-xthick-.5thick, 0);
+ singlestem(21,22,23,24,25)(z19, z20, 90-angle(z19-z20), thick, slab, xthick);
+enddef;
+
+beginchar(Kappa, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,21,22,23,24,25);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ z1=(1/2[x2,x12], ascender);
+ z2=(width-xthick-.5thick, 0);
+ z12=(xthick+.5thin, 0);
+ singlestem(4,5,6,7,8)(z1, z2, 90-angle(z1-z2), thick, slab, xthick);
+ z11=z4l+.5thin*dir(angle(z1-z12)-90); % cheap hack, but close enough
+ singlestem(14,15,16,17,18)(z11, z12, 90-angle(z11-z12), thin, slab, xthick);
+enddef;
+
+beginchar(Lambda, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,11,12);
+endchar;
+
+
+width#:=4xthick#+5thick#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ oneandlefthalfstem(1,2,3,4,5,6,7,8)((xthick+.5thin,ascender),
+ (xthick+.5thin,0), 0, 0, thin, slab, xthick);
+ oneandrighthalfstem(11,12,13,14,15,16,17,18)((width-xthick-.5thick,ascender),
+ (width-xthick-.5thick,0), 0, 0, thick, slab, xthick);
+
+ z20l=z4r-(thin,0);
+ z21l=1/2[z7l,z16l]+(0,thin);
+ numeric topwidth;
+ topwidth*cosd(angle(z20l-z21l)-90)=thick; % close enough
+
+ z22l=z13r;
+ z23l=z21l;
+ numeric topwidthright;
+ topwidthright*cosd(angle(z22l-z23l)-90)=thin; % again, close enough
+ penpos22(topwidthright, 0);
+ penpos23(topwidthright, 0);
+ penstroke z22e..z23e;
+
+ penpos20(topwidth, 0);
+ penpos21(whatever, angle(z22r-z23l));
+ z20r-z21r=whatever*(z20l-z21l);
+ penstroke z20e..z21e;
+enddef;
+
+beginchar(Mu, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,20,21,22,23);
+endchar;
+
+
+width#:=4xthick#+4thick#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ oneandlefthalfstem(1,2,3,4,5,6,7,8)((xthick+.5thin,ascender),
+ (xthick+.5thin,0), 0, 0, thin, slab, xthick);
+ singlestem(11,12,13,14,15)((width-xthick-.5thin,0),
+ (width-xthick-.5thin,ascender), 0, thin, slab, xthick);
+ z20=z4r;
+ z21l=z11r;
+ numeric topwidth;
+ topwidth*cosd(angle(z20-z21l)-90)=thick; % again, close enough
+ penpos20(topwidth, 0);
+ penpos21(whatever, 90);
+ z20r-z21r=whatever*(z20l-z21l);
+ penstroke z20e..z21e;
+enddef;
+
+beginchar(Nu, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,21);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric topinset;
+ topinset=.5u;
+ barleftserif(1,2,3,4)
+ ((.5width,ascender),(topinset,ascender),medthick,thin,1.5u,small);
+ barrightserif(5,6,7,8)
+ ((.5width,ascender),(width-topinset,ascender),medthick,thin,1.5u,small);
+ fill z3r--z7r--(z7r+(0,-medthick-1))--(z3r+(0,-medthick-1))--cycle;
+
+ barleftserif(11,12,13,14)
+ ((.5width,0),(width,0),medthick,thin,2u,small);
+ barrightserif(15,16,17,18)
+ ((.5width,0),(0,0),medthick,thin,2u,small);
+ fill z13r--z17r--(z17r+(0,medthick+1))--(z13r+(0,medthick+1))--cycle;
+
+ stem(21,22,23,24,25,26,27,28)((2u,.52ascender),(width-2u,.52ascender),
+ 0, 0, thick, slab, xthick);
+enddef;
+
+beginchar(Xi, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18,21,22,23,24,25,26,27,28);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thick, 0);
+ penpos2(thin, 90);
+ penpos3(thick, 180);
+ penpos4(thin, -90);
+ y1=y3=ascender/2;
+ x2=x4=width/2;
+ x1l=0; x3l=width;
+ y2l=0; y4l=ascender;
+ penstroke z1e..z2e..z3e..z4e..cycle;
+enddef;
+
+beginchar(Omikron, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4);
+endchar;
+
+
+width#:=4xthick#+4thick#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ stem(1,2,3,4,5,6,7,8)((xthick+.5thick,ascender),
+ (xthick+.5thick,0), 0, 0, thick, slab, xthick);
+ stem(11,12,13,14,15,16,17,18)((width-xthick-.5thick,ascender),
+ (width-xthick-.5thick,0), 0, 0, thick, slab, xthick);
+ penpos20(slab, 90);
+ penpos21(slab, 90);
+ z20r=z3r; z21r=z14r;
+ penstroke z20e..z21e;
+enddef;
+
+beginchar(Pi, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22);
+endchar;
+
+
+width#:=9u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ stem(1,2,3,4,5,6,7,8)((xthick+.5thick,ascender),
+ (xthick+.5thick,0), 0, 0, thick, slab, xthick);
+ penpos11(slab, 90);
+ penpos12(slab, 90);
+ penpos13(thick, 0);
+ penpos14(slab, -90);
+ penpos15(slab, -90);
+ x11=x15=x1;
+ x12=x14=5u;
+ y11r=y12r=ascender;
+ y14=y15=1/2ascender;
+ x13r=width;
+ y13=1/2[y11,y15];
+ penstroke z11e..z12e{right}..z13e..{left}z14e..z15e;
+enddef;
+
+beginchar(Rho, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ barrightserif(1,2,3,4)
+ ((0,ascender),(width-.5u,ascender),slab,thin,2u,small);
+
+ z9l=z1l;
+ z10=(.5width,.55ascender);
+ penpos9(thick/sind(angle(z9l-z10)-90), 0);
+ penpos10(thick/sind(angle(z9l-z10)-angle(z10)), angle(z10));
+ penstroke z9e..z10e;
+
+ z11l=z10r;
+ z12l=(0,0);
+ penpos11(thin/sind(angle(z9l-z10)-angle(z10)), angle(z9l-z10)-180);
+ penpos12(thin/sind(angle(z10)), 0);
+ penstroke z11e..z12e;
+
+ barleftserif(5,6,7,8)
+ ((x12r+thick*sind(90-angle(z10))/sind(angle(z10)),0),
+ (width,0),thick,thin,2u,small);
+ fill z12l--z5l--z5r--cycle;
+enddef;
+
+beginchar(Sigma, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ stem(1,2,3,4,5,6,7,8)((.5width,ascender),
+ (.5width,0), 0, 0, thick, slab, xthick);
+
+ barrightserif(11,12,13,14)
+ ((x1,ascender),(width,ascender),slab,thin,2u,small);
+ barleftserif(15,16,17,18)
+ ((x1,ascender),(0,ascender),slab,thin,2u,small);
+enddef;
+
+beginchar(Tau, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+
+width#:=8u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ singlestem(1,2,3,4,5)((.5width,.5ascender),
+ (.5width,0), 0, thick, slab, xthick);
+
+ penpos6(medthin, 0);
+ z6l=(0,ascender);
+ penstroke z6e..{down}z1e;
+
+ numeric diameter;
+ diameter=1.5u;
+ penpos7(thin, -90);
+ y9=y7r=ascender-1/2diameter;
+ x7=width-diameter;
+ y8=ascender;
+ x8=x10=width-.5diameter;
+ x9=width;
+ y10=ascender-diameter;
+
+ fill z1{up}..tension 1.3..z7l..z8..z9..z10..z7r & z7r..{down}z1r--cycle;
+enddef;
+
+beginchar(Upsilon, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thick, 0);
+ penpos2(thin, 90);
+ penpos3(thick, 180);
+ penpos4(thin, -90);
+ y1=y3=ascender/2;
+ x2=x4=width/2;
+ x1l=0; x3l=width;
+ y2l=ascender-y4l=2u;
+ penstroke z1e..z2e..z3e..z4e..cycle;
+
+ stem(11,12,13,14,15,16,17,18)((1/2width,ascender),(1/2width,0),
+ 0, 0, thick, slab, xthick);
+enddef;
+
+beginchar(Phi, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,11,12,13,14,15,16,17,18);
+endchar;
+
+
+width#:=4xthick#+4thick#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ z20=(thin+xthick+.5thick,ascender);
+ z21=(width-xthick-.5thick,0);
+ z22=(width-thin-.5thin-xthick,ascender);
+ z23=(.5thin+xthick,0);
+ stem(1,2,3,4,5,6,7,8)(z20, z21,
+ 90-angle(z20-z21), 90-angle(z20-z21), thick, slab, xthick);
+ stem(11,12,13,14,15,16,17,18)(z22, z23,
+ 90-angle(z22-z23), 90-angle(z22-z23), thin, slab, xthick);
+ penpos20(thin, 90);
+ penpos21(thin, 90);
+enddef;
+
+beginchar(Khi, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+
+width#:=10u#;
+extra#:=3letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(medium, 225);
+ penpos2(medthin, 90);
+ penpos3(thick, 0);
+ penpos4(thick, 0);
+ penpos5(thin, 90);
+ penpos6(thin, 135);
+ penpos7(thick, 180);
+ penpos8(tiny, 180);
+
+ offset=1/2(ascender-x_height);
+ y2r=x_height-tiny+offset;
+ y1l=y2l-thick;
+ y3=y2l-thin;
+ y4=y3-2u;
+ y5l=0+offset;
+ y7=1/2(y8-offset)+offset;
+ y8=x_height+offset;
+ x1r=0;
+ x2=x1+medium;
+ x4l=x3l=x2+thin;
+ x5=(x3r+width)/2;
+ x7r=width;
+ x8r=x7r-thin;
+
+ fill z1l..tension 1.8..z2l..z3l---z4l..z5l..z7l..z8l
+ --z8r..z7r..z5r..z4r---z3r..z2r..tension 1.5..z1r--cycle;
+
+ stem(11,12,13,14,15,16,17,18)((x5-.1u,ascender),(x5-.1u,0),
+ 0, 0, thick, slab, xthick);
+enddef;
+
+beginchar(Psi, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18);
+endchar;
+
+
+width#:=10u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ barleftserif(1,2,3,4)
+ ((.6width,0),(width,0),thick,thin,2u,small);
+ barrightserif(5,6,7,8)
+ ((.4width,0),(0,0),thick,thin,2u,small);
+
+ penpos9(thin, 0);
+ penpos10(thin, 0);
+ penpos11(thin, 0);
+ penpos12(thin, 0);
+ z9=z5r; z11=z1r;
+ z10-z9=z12-z11=(0, 2thick);
+ penstroke z9e..z10e;
+ penstroke z11e..z12e;
+
+ penpos13(thin, 90);
+ penpos14(thick, 0);
+ penpos15(thin, -90);
+ penpos16(thick, 180);
+ penpos17(thin, 90);
+ z13r=z10r; z17r=z12l;
+ z15l=(.5width, ascender);
+ y14=y16=.5[y13l,y15l];
+ x14l=0; x16l=width;
+ penstroke z13e..{up}z14e..z15e..z16e{down}..z17e;
+enddef;
+
+beginchar(Omega, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/charmap.mf b/Master/texmf-dist/fonts/source/public/lfb/charmap.mf
new file mode 100644
index 00000000000..d001e73ce2a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/charmap.mf
@@ -0,0 +1,216 @@
+
+ %% charmap.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% accent codes
+smooth := oct"000";
+rough := oct"001";
+acute := oct"002";
+grave := oct"003";
+circ := oct"004";
+smoothacute := oct"005";
+smoothgrave := oct"006";
+smoothcirc := oct"007";
+roughacute := oct"010";
+roughgrave := oct"011";
+roughcirc := oct"012";
+diaer := oct"013";
+diaeracute := oct"014";
+diaergrave := oct"015";
+breve := oct"016";
+macron := oct"017";
+
+% capitals
+Alpha := oct"101"; % "A"
+Beta := oct"102"; % "B"
+Gamma := oct"107"; % "G"
+Delta := oct"104"; % "D"
+Epsilon := oct"105"; % "E"
+Zeta := oct"132"; % "Z"
+Eta := oct"112"; % "J"
+Theta := oct"121"; % "Q"
+Iota := oct"111"; % "I"
+Kappa := oct"113"; % "K"
+Lambda := oct"114"; % "L"
+Mu := oct"115"; % "M"
+Nu := oct"116"; % "N"
+Xi := oct"130"; % "X"
+Omikron := oct"117"; % "O"
+Pi := oct"120"; % "P"
+Rho := oct"122"; % "R"
+Sigma := oct"123"; % "S"
+Tau := oct"124"; % "T"
+Upsilon := oct"125"; % "U"
+Phi := oct"106"; % "F"
+Khi := oct"103"; % "C"
+Psi := oct"131"; % "Y"
+Omega := oct"127"; % "W"
+
+% lowercase
+alpha := oct"141"; % "a"
+beta := oct"142"; % "b"
+gamma := oct"147"; % "g"
+delta := oct"144"; % "d"
+epsilon := oct"145"; % "e"
+zeta := oct"172"; % "z"
+eta := oct"152"; % "j"
+theta := oct"161"; % "q"
+iota := oct"151"; % "i"
+kappa := oct"153"; % "k"
+lambda := oct"154"; % "l"
+mu := oct"155"; % "m"
+nu := oct"156"; % "n"
+xi := oct"170"; % "x"
+omikron := oct"157"; % "o"
+pi := oct"160"; % "p"
+rho := oct"162"; % "r"
+sigma := oct"163"; % "s"
+sigmafinal := oct"166"; % "v"
+tau := oct"164"; % "t"
+upsilon := oct"165"; % "u"
+phi := oct"146"; % "f"
+khi := oct"143"; % "c"
+psi := oct"171"; % "y"
+omega := oct"167"; % "w"
+
+% accent references
+alpha_acc := oct"200";
+epsilon_acc := oct"220";
+eta_acc := oct"240";
+iota_acc := oct"260";
+omikron_acc := oct"300";
+upsilon_acc := oct"320";
+omega_acc := oct"340";
+rho_acc := oct"360";
+
+% miscellaneous
+iotasub := oct"057"; % "/"
+iotasubalpha := oct"043"; % "#"
+iotasubeta := oct"044"; % "$"
+iotasubomega := oct"045"; % "%"
+hyphen := oct"055"; % "-"
+emdash := oct"173"; % "{"
+aspirate := oct"150"; % "h"
+Aspirate := oct"110"; % "H"
+coronis := oct"052"; % "*"
+apostrophe := oct"047"; % "'"
+backquote := oct"140"; % "`"
+circumflex := oct"075"; % "="
+diaeresis := oct"042"; % """
+brevechar := oct"053"; % "+"
+macronchar := oct"072"; % ":"
+dividerchar := oct"174"; % "|"
+fullstop := oct"056"; % "."
+comma := oct"054"; % ","
+semicolon := oct"073"; % ";"
+questionmark := oct"077"; % "?"
+openparenthesis := oct"050"; % "("
+closeparenthesis := oct"051"; % ")"
+openbracket := oct"133"; % "["
+closebracket := oct"135"; % "]"
+boundarychar := oct"377"; % used to determine if a sigma is final
diff --git a/Master/texmf-dist/fonts/source/public/lfb/delta.mf b/Master/texmf-dist/fonts/source/public/lfb/delta.mf
new file mode 100644
index 00000000000..8f8e5a9a9c6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/delta.mf
@@ -0,0 +1,149 @@
+
+ %% delta.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=6.5u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(thick, 0);
+ penpos3(thin, 90);
+ penpos4(thick, 180);
+ penpos5(medthin, -90);
+ penpos6(thick, 180);
+ penpos7(thin, 90);
+ penpos8(thick, 0);
+
+ z1=z2+(2/3(z2l-z2) rotated 90);
+ x8l=0;
+ x4r=x8l+thin;
+ x7=1/2width;
+ x5=x7+thin;
+ x3=x7-medthin;
+ x6l=width;
+ x2r=x6l-thin;
+ y7l=0;
+ y6=y8=1/2x_height;
+ y5l=x_height;
+ y4=1/2(x_height+y3r)+thin;
+ y2=y4-medium;
+ y3r=x_height+3.3u;
+
+ numeric crossangle;
+ crossangle=angle(z4-z6)+20;
+
+ fill z1..z2l{up}..{left}z3l..z4l..z5l{dir(crossangle-180)}
+ ..z6l..z7l..z8l..{right}z5l
+ --z5r{left}..z8r..z7r..z6r..{dir(crossangle)}z5r
+ ..z4r..z3r{right}..{down}z2r..cycle;
+enddef;
+
+beginchar(delta, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/epsilon.mf b/Master/texmf-dist/fonts/source/public/lfb/epsilon.mf
new file mode 100644
index 00000000000..9f13bd02d1e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/epsilon.mf
@@ -0,0 +1,195 @@
+
+ %% epsilon.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=5.5u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thick, 0);
+ penpos2(thin, 90);
+ penpos3(thick, 180);
+ penpos4(thin, 270);
+ penpos5(thick, 0);
+ penpos6(thin, 90);
+ penpos7(thick, 180);
+ penpos8(medium, 270);
+ penpos9(thin, 10);
+ z20=z1+(2/3(z1l-z1) rotated 90);
+ y3=(x_height+y4)/2;
+ y1=y4+3/5(x_height-y4);
+ x8=x2=x4=width/2;
+ x7r=0; x9r=width; x3r=small; x1r=width-small;
+ y2r=x_height; y4l=3/5x_height;
+ z6l=z5l=z4l;
+ y7=y6/2;
+ y9=y6/3;
+ y8r=0;
+ fill z1r..z2r..z3r..z4r..z5r..z6r..z7r..z8r..z9r--z9l..z8l..z7l
+ ..{right}z6l..z5l..z4l{left}..z3l..z2l..z1l{down}..z20..{up}cycle;
+
+ numeric accent_centre;
+ accent_centre=x2;
+enddef;
+
+beginchar(epsilon, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,20);
+endchar;
+
+beginchar(epsilon_acc+smooth, width#+extra#, ascender#, 0);
+gen_letter; acc_smooth;
+endchar;
+
+beginchar(epsilon_acc+rough, width#+extra#, ascender#, 0);
+gen_letter; acc_rough;
+endchar;
+
+beginchar(epsilon_acc+acute, width#+extra#, ascender#, 0);
+gen_letter; acc_acute;
+endchar;
+
+beginchar(epsilon_acc+grave, width#+extra#, ascender#, 0);
+gen_letter; acc_grave;
+endchar;
+
+beginchar(epsilon_acc+circ, width#+extra#, ascender#, 0);
+gen_letter; acc_circ;
+endchar;
+
+beginchar(epsilon_acc+smoothacute, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothacute;
+endchar;
+
+beginchar(epsilon_acc+smoothgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothgrave;
+endchar;
+
+beginchar(epsilon_acc+smoothcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothcirc;
+endchar;
+
+beginchar(epsilon_acc+roughacute, width#+extra#, ascender#, 0);
+gen_letter; acc_roughacute;
+endchar;
+
+beginchar(epsilon_acc+roughgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_roughgrave;
+endchar;
+
+beginchar(epsilon_acc+roughcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_roughcirc;
+endchar;
+
+beginchar(epsilon_acc+breve, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_breve;
+endchar;
+
+beginchar(epsilon_acc+macron, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_macron;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/eta.mf b/Master/texmf-dist/fonts/source/public/lfb/eta.mf
new file mode 100644
index 00000000000..10074d9e5df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/eta.mf
@@ -0,0 +1,204 @@
+
+ %% eta.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=9u#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(xthick, 90);
+ penpos3(medium, 30);
+ penpos4(thick, 0);
+ penpos5(thick, 0);
+ z1=z2+((z2l-z2) rotated -90);
+ x1=0;
+ y2r=x_height;
+ y3=y2l+tiny;
+ x3=x2l+medthick;
+ z4l=z3l+(medthin,-3u);
+ x5l=x4l-tinyoffset;
+ y5=0;
+ fill z1..{dir 10}z2l..z3l..z4l---z5l--z5r---z4r..z3r..{dir -170}z2r..cycle;
+
+ penpos6(medthin, -90);
+ penpos7(medium, 180);
+ penpos8(thick, 180);
+ penpos9(thick, -90);
+ x6=2/3[x4l,x7l];
+ y6l=x_height;
+ x7l=width-1.5u;
+ y7=y4+1.5u;
+ x8l=x7l;
+ y8=1/3y9r;
+ y9r=-descender;
+ x9=width-medium;
+ z10=z9+((z9l-z9) rotated -90);
+ fill z4l{up}..z6l..z7l..tension 1.5..z8l..z9l..z10
+ ..z9r..z8r..tension 1.5..z7r..z6r..{down}z4r--cycle;
+
+ numeric accent_centre;
+ accent_centre=2/3[x4,x6];
+ iotasubetaback:=width+extra-x4;
+enddef;
+
+beginchar(eta, width#+extra#, x_height#, descender#);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(eta_acc+smooth, width#+extra#, ascender#, descender#);
+gen_letter; acc_smooth;
+endchar;
+
+beginchar(eta_acc+rough, width#+extra#, ascender#, descender#);
+gen_letter; acc_rough;
+endchar;
+
+beginchar(eta_acc+acute, width#+extra#, ascender#, descender#);
+gen_letter; acc_acute;
+endchar;
+
+beginchar(eta_acc+grave, width#+extra#, ascender#, descender#);
+gen_letter; acc_grave;
+endchar;
+
+beginchar(eta_acc+circ, width#+extra#, ascender#, descender#);
+gen_letter; acc_circ;
+endchar;
+
+beginchar(eta_acc+smoothacute, width#+extra#, ascender#, descender#);
+gen_letter; acc_smoothacute;
+endchar;
+
+beginchar(eta_acc+smoothgrave, width#+extra#, ascender#, descender#);
+gen_letter; acc_smoothgrave;
+endchar;
+
+beginchar(eta_acc+smoothcirc, width#+extra#, ascender#, descender#);
+gen_letter; acc_smoothcirc;
+endchar;
+
+beginchar(eta_acc+roughacute, width#+extra#, ascender#, descender#);
+gen_letter; acc_roughacute;
+endchar;
+
+beginchar(eta_acc+roughgrave, width#+extra#, ascender#, descender#);
+gen_letter; acc_roughgrave;
+endchar;
+
+beginchar(eta_acc+roughcirc, width#+extra#, ascender#, descender#);
+gen_letter; acc_roughcirc;
+endchar;
+
+beginchar(eta_acc+breve, width#+extra#, ascender#-macronbreveshorter#, descender#);
+gen_letter; acc_breve;
+endchar;
+
+beginchar(eta_acc+macron, width#+extra#, ascender#-macronbreveshorter#, descender#);
+gen_letter; acc_macron;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/gamma.mf b/Master/texmf-dist/fonts/source/public/lfb/gamma.mf
new file mode 100644
index 00000000000..79738a32ee7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/gamma.mf
@@ -0,0 +1,141 @@
+
+ %% gamma.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7u#;
+extra#:=1.5letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(medium, 225);
+ penpos2(medthin, 90);
+ penpos3(thick, 0);
+ penpos5(medium, 0);
+ penpos6(1.5u, -90);
+ penpos7(thin, 180);
+ penpos8(thick, 180);
+
+ y2r=x_height;
+ y1l=y2l-thick;
+ y3=y2l-thin;
+ x1r=0;
+ x2=x1+medium;
+ x3l=x2+thick;
+ z5l=z6l=z7l;
+ y6r=-descender;
+ x6l=.55width;
+ y8=x_height;
+ x8l=width;
+
+ fill z1l..tension 1.8..z2l..z3l..{down}z5l..z6l..z7l{up}..z8l
+ --z8r..{down}z7r..z6r..z5r{up}..z3r..z2r..tension 1.5..z1r--cycle;
+enddef;
+
+beginchar(gamma, width#+extra#, x_height#, descender#);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/iota.mf b/Master/texmf-dist/fonts/source/public/lfb/iota.mf
new file mode 100644
index 00000000000..b5ca7867980
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/iota.mf
@@ -0,0 +1,200 @@
+
+ %% iota.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=3u#;
+extra#:=1.5letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(.5[medthick,thick], 0);
+ penpos2(.5[medthick,thick], 0);
+ penpos3(medium, 90);
+ penpos4(thin, tailangle);
+ x1l=tinyoffset;
+ x2l=0;
+ y1=x_height;
+ y2=thick;
+ x3=thick+tiny;
+ y4l=tailheight;
+ y3l=tinyoffset;
+ x4l=width;
+ fill z1l---z2l..z3l..tension 1.5..z4l
+ --z4r..tension 2.5..z3r..z2r---z1r--z1l..cycle;
+
+ numeric accent_centre;
+ accent_centre=x1;
+enddef;
+
+beginchar(iota, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4);
+endchar;
+
+beginchar(iota_acc+smooth, width#+extra#, ascender#, 0);
+gen_letter; acc_smooth;
+endchar;
+
+beginchar(iota_acc+rough, width#+extra#, ascender#, 0);
+gen_letter; acc_rough;
+endchar;
+
+beginchar(iota_acc+acute, width#+extra#, ascender#, 0);
+gen_letter; acc_acute;
+endchar;
+
+beginchar(iota_acc+grave, width#+extra#, ascender#, 0);
+gen_letter; acc_grave;
+endchar;
+
+beginchar(iota_acc+circ, width#+extra#, ascender#, 0);
+gen_letter; acc_circ;
+endchar;
+
+beginchar(iota_acc+smoothacute, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothacute;
+endchar;
+
+beginchar(iota_acc+smoothgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothgrave;
+endchar;
+
+beginchar(iota_acc+smoothcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothcirc;
+endchar;
+
+beginchar(iota_acc+roughacute, width#+extra#, ascender#, 0);
+gen_letter; acc_roughacute;
+endchar;
+
+beginchar(iota_acc+roughgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_roughgrave;
+endchar;
+
+beginchar(iota_acc+roughcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_roughcirc;
+endchar;
+
+beginchar(iota_acc+diaer, width#+extra#, ascender#, 0);
+gen_letter; acc_diaer;
+endchar;
+
+beginchar(iota_acc+diaeracute, width#+extra#, ascender#, 0);
+gen_letter; acc_diaeracute;
+endchar;
+
+beginchar(iota_acc+diaergrave, width#+extra#, ascender#, 0);
+gen_letter; acc_diaergrave;
+endchar;
+
+beginchar(iota_acc+breve, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_breve;
+endchar;
+
+beginchar(iota_acc+macron, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_macron;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/kappa.mf b/Master/texmf-dist/fonts/source/public/lfb/kappa.mf
new file mode 100644
index 00000000000..98f00232fd6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/kappa.mf
@@ -0,0 +1,147 @@
+
+ %% kappa.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(xthick, 90);
+ penpos3(thin, 0);
+ penpos4(small, -90);
+ penpos5(medium, 135);
+ penpos6(medium, 135);
+ penpos7(small, -90);
+ penpos8(thin, 0);
+ penpos9(medthick, 90);
+ penpos10(thin, tailangle);
+ z1=z2+((z2l-z2) rotated -90);
+ x1=0;
+ y2r=x_height;
+ y8=y3=1/2x_height;
+ x3r=3u; x8l=width-x3r;
+ z4l=z5l;
+ y4r=0;
+ x4=medium;
+ z6r=z7r;
+ y7l=x_height;
+ x7=width-medium;
+ x9=width-1u;
+ y10l=tailheight;
+ y9l=tinyoffset;
+ x10l=width;
+ fill z1..{right}z2l..z3l{down}..{dir -125}z4l..z5l{dir 55}
+ ..{dir 55}z6l..z7l..tension 1.5..{down}z8l..tension 1.5..z9l..tension 1.8..z10l
+ --z10r..tension 1.5..z9r..tension 1.5..z8r..{dir 55}z7r..z6r{dir -125}
+ ..{dir -125}z5r..z4r..tension 1.5..{up}z3r..z2r{left}..cycle;
+enddef;
+
+beginchar(kappa, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/khi.mf b/Master/texmf-dist/fonts/source/public/lfb/khi.mf
new file mode 100644
index 00000000000..83e379a2c56
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/khi.mf
@@ -0,0 +1,144 @@
+
+ %% khi.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7.5u#;
+extra#:=1.5letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thick, 0);
+ penpos2(thick, 0);
+ x1r=width-.5u;
+ y1=x_height;
+ x2l=0;
+ y2=-descender;
+ penstroke z1e..z2e;
+
+ penpos5(xthick, 90);
+ penpos6(medthin, 25);
+ penpos7(medthin, 25);
+ penpos9(thick, 90);
+ penpos10(thin, tailangle);
+ z4=z5+(4/3(z5l-z5) rotated -60);
+ x4=0;
+ y5r=x_height;
+ x6l=width-x7r=3u;
+ y6r=y5l-2u;
+ y7l+descender=x_height-y6r;
+ x9=width-3u+thick+medium;
+ y10l=tailheight-descender;
+ y9l=tiny-descender;
+ x10l=width;
+ fill z4..z5l{right}..z6l---z7l..z9l..tension 1.8..z10l
+ --z10r..tension 2..z9r..z7r---z6r..{left}z5r..cycle;
+enddef;
+
+beginchar(khi, width#+extra#, x_height#, descender#);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lambda.mf b/Master/texmf-dist/fonts/source/public/lfb/lambda.mf
new file mode 100644
index 00000000000..6b96d652df1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lambda.mf
@@ -0,0 +1,146 @@
+
+ %% lambda.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=8.5u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(xthick, 120);
+ penpos3(medthick, 90);
+ penpos4(medium, 30);
+ penpos8(thick, 30);
+ penpos9(medthick, 90);
+ penpos10(thin, tailangle);
+ z1=z2+((z2l-z2) rotated -90);
+ x2r=1u;
+ x3=2.2u;
+% x4l=3.5u;
+ y2r=y3;
+ y3r=ascender;
+% y4r=y2l-thin;
+ z4l=z3l+(thick, -xthick);
+ z8r=z9r+(-medium, medium);
+ x9=width-3u+thick+thin;
+ y10l=tailheight;
+ y9l=tinyoffset;
+ x10l=width;
+ fill z1..z2l..z3l..z4l---z8l..z9l..tension 1.5..z10l--z10r
+ ..tension 2..z9r..z8r---z4r..z3r..z2r..cycle;
+
+ penpos11(medium, 0);
+ penpos12(xthick, 0);
+ z11=1/5[z4,z8];
+ z12l=(0,tiny/2);
+ penstroke z11e..z12e;
+enddef;
+
+beginchar(lambda, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfb.mf b/Master/texmf-dist/fonts/source/public/lfb/lfb.mf
new file mode 100644
index 00000000000..aaeb44a899c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfb.mf
@@ -0,0 +1,165 @@
+
+ %% lfb.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+mode_setup;
+
+% font dimensions
+font_size thefontsize#;
+font_x_height x_height#;
+font_normal_space 6u#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+font_quad 18u#;
+font_extra_space 3u#;
+
+input charmap;
+
+define_pixels(u, thefontsize, x_height, ascender, descender, xthick,
+ thick, medthick, medium, medthin, thin, slab, small, tiny,
+ tinyoffset, dishdepth, tailheight, breathingwidth, quotewidth,
+ circwidth, macronbreveshorter, letterspace);
+
+numeric iotasubalphaback, iotasubetaback, iotasubomegaback;
+
+input accents;
+
+input serifs;
+input capitals;
+
+input alpha;
+input beta;
+input gamma;
+input delta;
+input epsilon;
+input zeta;
+input eta;
+input theta;
+input iota;
+input kappa;
+input lambda;
+input mu;
+input nu;
+input xi;
+input omikron;
+input pi;
+input rho;
+input sigma;
+input sigmafin;
+input tau;
+input upsilon;
+input phi;
+input khi;
+input psi;
+input omega;
+
+input others;
+
+input ligature;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfb10.mf b/Master/texmf-dist/fonts/source/public/lfb/lfb10.mf
new file mode 100644
index 00000000000..2f0e03ccd4d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfb10.mf
@@ -0,0 +1,149 @@
+
+ %% lfb10.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 22/36pt#;
+thefontsize# := 10pt#;
+x_height# := 155/36pt#;
+ascender# := 234/36pt#;
+descender# := 64/36pt#;
+
+% line thicknesses & gaps
+xthick# := 32/36pt#;
+tiny# := 6/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 60/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfb11.mf b/Master/texmf-dist/fonts/source/public/lfb/lfb11.mf
new file mode 100644
index 00000000000..f1bbab1d22c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfb11.mf
@@ -0,0 +1,149 @@
+
+ %% lfb11.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 23.5/36pt#;
+thefontsize# := 11pt#;
+x_height# := 171/36pt#;
+ascender# := 257/36pt#;
+descender# := 71/36pt#;
+
+% line thicknesses & gaps
+xthick# := 33.5/36pt#;
+tiny# := 6.5/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 66/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfb12.mf b/Master/texmf-dist/fonts/source/public/lfb/lfb12.mf
new file mode 100644
index 00000000000..c8b556dae48
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfb12.mf
@@ -0,0 +1,149 @@
+
+ %% lfb12.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 25/36pt#;
+thefontsize# := 12pt#;
+x_height# := 186/36pt#;
+ascender# := 280/36pt#;
+descender# := 78/36pt#;
+
+% line thicknesses & gaps
+xthick# := 36/36pt#;
+tiny# := 7/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 72/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfb5.mf b/Master/texmf-dist/fonts/source/public/lfb/lfb5.mf
new file mode 100644
index 00000000000..b1c594b91b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfb5.mf
@@ -0,0 +1,149 @@
+
+ %% lfb5.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 14/36pt#;
+thefontsize# := 5pt#;
+x_height# := 77.5/36pt#;
+ascender# := 126/36pt#;
+descender# := 31/36pt#;
+
+% line thicknesses & gaps
+xthick# := 20/36pt#;
+tiny# := 4.5/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 33/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfb6.mf b/Master/texmf-dist/fonts/source/public/lfb/lfb6.mf
new file mode 100644
index 00000000000..8a83404178d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfb6.mf
@@ -0,0 +1,149 @@
+
+ %% lfb6.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 15.5/36pt#;
+thefontsize# := 6pt#;
+x_height# := 93/36pt#;
+ascender# := 140/36pt#;
+descender# := 37/36pt#;
+
+% line thicknesses & gaps
+xthick# := 21.5/36pt#;
+tiny# := 5/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 38/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfb7.mf b/Master/texmf-dist/fonts/source/public/lfb/lfb7.mf
new file mode 100644
index 00000000000..3c77c84b429
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfb7.mf
@@ -0,0 +1,149 @@
+
+ %% lfb7.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 17/36pt#;
+thefontsize# := 7pt#;
+x_height# := 108.5/36pt#;
+ascender# := 163.5/36pt#;
+descender# := 43/36pt#;
+
+% line thicknesses & gaps
+xthick# := 25/36pt#;
+tiny# := 5.5/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 44/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfb8.mf b/Master/texmf-dist/fonts/source/public/lfb/lfb8.mf
new file mode 100644
index 00000000000..77ffd978fba
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfb8.mf
@@ -0,0 +1,149 @@
+
+ %% lfb8.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 18.5/36pt#;
+thefontsize# := 8pt#;
+x_height# := 124/36pt#;
+ascender# := 187/36pt#;
+descender# := 47/36pt#;
+
+% line thicknesses & gaps
+xthick# := 28/36pt#;
+tiny# := 5.5/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 49/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfb9.mf b/Master/texmf-dist/fonts/source/public/lfb/lfb9.mf
new file mode 100644
index 00000000000..3151929fb6b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfb9.mf
@@ -0,0 +1,149 @@
+
+ %% lfb9.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 20/36pt#;
+thefontsize# := 9pt#;
+x_height# := 139.5/36pt#;
+ascender# := 210.5/36pt#;
+descender# := 55/36pt#;
+
+% line thicknesses & gaps
+xthick# := 30/36pt#;
+tiny# := 6/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 55/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfbb10.mf b/Master/texmf-dist/fonts/source/public/lfb/lfbb10.mf
new file mode 100644
index 00000000000..964f3321715
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfbb10.mf
@@ -0,0 +1,149 @@
+
+ %% lfbb10.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 24/36pt#;
+thefontsize# := 10pt#;
+x_height# := 155/36pt#;
+ascender# := 234/36pt#;
+descender# := 64/36pt#;
+
+% line thicknesses & gaps
+xthick# := 40/36pt#;
+tiny# := 8/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 2/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 65/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.6u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfbb11.mf b/Master/texmf-dist/fonts/source/public/lfb/lfbb11.mf
new file mode 100644
index 00000000000..a9026025cac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfbb11.mf
@@ -0,0 +1,149 @@
+
+ %% lfbb11.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 26/36pt#;
+thefontsize# := 11pt#;
+x_height# := 171/36pt#;
+ascender# := 257/36pt#;
+descender# := 71/36pt#;
+
+% line thicknesses & gaps
+xthick# := 44/36pt#;
+tiny# := 8.5/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 72/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfbb12.mf b/Master/texmf-dist/fonts/source/public/lfb/lfbb12.mf
new file mode 100644
index 00000000000..90cae8849a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfbb12.mf
@@ -0,0 +1,149 @@
+
+ %% lfbb12.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 28/36pt#;
+thefontsize# := 12pt#;
+x_height# := 186/36pt#;
+ascender# := 280/36pt#;
+descender# := 78/36pt#;
+
+% line thicknesses & gaps
+xthick# := 47/36pt#;
+tiny# := 9/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 2/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 78/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.6u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfbb5.mf b/Master/texmf-dist/fonts/source/public/lfb/lfbb5.mf
new file mode 100644
index 00000000000..bfbea614482
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfbb5.mf
@@ -0,0 +1,149 @@
+
+ %% lfbb5.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 15.5/36pt#;
+thefontsize# := 5pt#;
+x_height# := 77.5/36pt#;
+ascender# := 126/36pt#;
+descender# := 31/36pt#;
+
+% line thicknesses & gaps
+xthick# := 22/36pt#;
+tiny# := 6/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 39/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfbb6.mf b/Master/texmf-dist/fonts/source/public/lfb/lfbb6.mf
new file mode 100644
index 00000000000..83b22d5c1ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfbb6.mf
@@ -0,0 +1,149 @@
+
+ %% lfbb6.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 17/36pt#;
+thefontsize# := 6pt#;
+x_height# := 93/36pt#;
+ascender# := 140/36pt#;
+descender# := 37/36pt#;
+
+% line thicknesses & gaps
+xthick# := 24/36pt#;
+tiny# := 6.5/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 44/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfbb7.mf b/Master/texmf-dist/fonts/source/public/lfb/lfbb7.mf
new file mode 100644
index 00000000000..9be83a8b444
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfbb7.mf
@@ -0,0 +1,149 @@
+
+ %% lfbb7.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 19/36pt#;
+thefontsize# := 7pt#;
+x_height# := 108.5/36pt#;
+ascender# := 163.5/36pt#;
+descender# := 43/36pt#;
+
+% line thicknesses & gaps
+xthick# := 28/36pt#;
+tiny# := 7.5/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 50/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfbb8.mf b/Master/texmf-dist/fonts/source/public/lfb/lfbb8.mf
new file mode 100644
index 00000000000..6e766dd9200
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfbb8.mf
@@ -0,0 +1,149 @@
+
+ %% lfbb8.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 20.5/36pt#;
+thefontsize# := 8pt#;
+x_height# := 124/36pt#;
+ascender# := 187/36pt#;
+descender# := 47/36pt#;
+
+% line thicknesses & gaps
+xthick# := 32/36pt#;
+tiny# := 7.5/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 55/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/lfbb9.mf b/Master/texmf-dist/fonts/source/public/lfb/lfbb9.mf
new file mode 100644
index 00000000000..16edeb3ee8d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/lfbb9.mf
@@ -0,0 +1,149 @@
+
+ %% lfbb9.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% basic units
+u# := 22/36pt#;
+thefontsize# := 9pt#;
+x_height# := 139.5/36pt#;
+ascender# := 210.5/36pt#;
+descender# := 55/36pt#;
+
+% line thicknesses & gaps
+xthick# := 36/36pt#;
+tiny# := 8/36pt#;
+thick# := .84[tiny#,xthick#];
+medthick# := .69[tiny#,xthick#];
+medium# := .50[tiny#,xthick#];
+medthin# := .37[tiny#,xthick#];
+slab# := .31[tiny#,xthick#];
+thin# := .24[tiny#,xthick#];
+small# := .09[tiny#,xthick#];
+tinyoffset# := 1/36pt#;
+dishdepth# := 0/36pt#; % can't get them to look good
+
+% miscellaneous dimensions
+tailheight# := 60/36pt#;
+breathingwidth# := 2u#;
+quotewidth# := 2u#;
+circwidth# := 5.5u#;
+macronbreveshorter# := 1.8u#;
+letterspace# := 0.8u#;
+
+% miscellaneous angles
+tailangle := 210;
+barangle := 150;
+barendangle := 220;
+betaangle := 25;
+zetaangle := 35;
+xiangle := 10;
+acuteangle := 65;
+graveangle := 115;
+
+
+input lfb;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/ligature.mf b/Master/texmf-dist/fonts/source/public/lfb/ligature.mf
new file mode 100644
index 00000000000..0562676286d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/ligature.mf
@@ -0,0 +1,477 @@
+
+ %% ligature.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+% final sigma
+ligtable sigma:
+ boundarychar =:| sigmafinal,
+ fullstop =:| sigmafinal,
+ comma =:| sigmafinal,
+ semicolon =:| sigmafinal,
+ questionmark =:| sigmafinal,
+ closeparenthesis =:| sigmafinal,
+ closebracket =:| sigmafinal,
+ macronchar =: sigmafinal; % to force final sigma
+
+
+% aspirated consanant alternatives
+ligtable kappa: gamma: khi:
+ aspirate =: khi,
+ sigma =: xi;
+ligtable tau: delta: theta:
+ aspirate =: theta;
+ligtable pi: beta: phi:
+ aspirate =: phi,
+ sigma =: psi;
+ligtable Kappa: Gamma: Khi:
+ aspirate =: Khi,
+ Aspirate =: Khi,
+ sigma =: Xi,
+ Sigma =: Xi;
+ligtable Tau: Delta: Theta:
+ aspirate =: Theta,
+ Aspirate =: Theta;
+ligtable Pi: Beta: Phi:
+ aspirate =: Phi,
+ Aspirate =: Phi,
+ sigma =: Psi,
+ Sigma =: Psi;
+
+% kerning accents into Alpha
+ligtable
+ smooth:
+ rough:
+ acute:
+ grave:
+ circ:
+ smoothacute:
+ smoothgrave:
+ smoothcirc:
+ roughacute:
+ roughgrave:
+ roughcirc:
+ Alpha kern -2letterspace#;
+
+
+% quotes
+ligtable apostrophe: apostrophe kern -2.5letterspace#, skipto 2;
+ligtable backquote: backquote kern -2.5letterspace#, skipto 3;
+
+
+% em-dash (no en-dash)
+ligtable hyphen: hyphen =: emdash;
+
+
+% initial vowels and diphthongs
+ligtable 2::
+ Alpha =:| smoothacute,
+ Epsilon =:| smoothacute,
+ Eta =:| smoothacute,
+ Iota =:| smoothacute,
+ Omikron =:| smoothacute,
+ Upsilon =:| smoothacute,
+ Omega =:| smoothacute;
+ligtable 3::
+ Alpha =:| smoothgrave,
+ Epsilon =:| smoothgrave,
+ Eta =:| smoothgrave,
+ Iota =:| smoothgrave,
+ Omikron =:| smoothgrave,
+ Upsilon =:| smoothgrave,
+ Omega =:| smoothgrave,
+ skipto 1;
+ligtable coronis:
+ apostrophe =: smoothacute,
+ backquote =: smoothgrave,
+ circumflex =: smoothcirc,
+ alpha =: alpha_acc+smooth,
+ epsilon =: epsilon_acc+smooth,
+ eta =: eta_acc+smooth,
+ iota =: iota_acc+smooth,
+ omikron =: omikron_acc+smooth,
+ upsilon =: upsilon_acc+smooth,
+ omega =: omega_acc+smooth,
+ rho =: rho_acc+smooth,
+ Alpha =:| smooth,
+ Epsilon =:| smooth,
+ Eta =:| smooth,
+ Iota =:| smooth,
+ Omikron =:| smooth,
+ Upsilon =:| smooth,
+ Omega =:| smooth,
+ Rho =:| smooth;
+ligtable ||: openparenthesis: emdash: 1::
+ alpha |=: alpha_acc+smooth,
+ epsilon |=: epsilon_acc+smooth,
+ eta |=: eta_acc+smooth,
+ iota |=: iota_acc+smooth,
+ omikron |=: omikron_acc+smooth,
+ upsilon |=: upsilon_acc+smooth,
+ omega |=: omega_acc+smooth,
+ rho |=: rho_acc+rough, % initial rho should be rough
+ Alpha |=:| smooth,
+ Epsilon |=:| smooth,
+ Eta |=:| smooth,
+ Iota |=:| smooth,
+ Omikron |=:| smooth,
+ Upsilon |=:| smooth,
+ Omega |=:| smooth,
+ Rho |=:| rough;
+ligtable circumflex:
+ Alpha =:| smoothcirc,
+ Epsilon =:| smoothcirc,
+ Eta =:| smoothcirc,
+ Iota =:| smoothcirc,
+ Omikron =:| smoothcirc,
+ Upsilon =:| smoothcirc,
+ Omega =:| smoothcirc;
+ligtable alpha_acc+smooth:
+ iota |=: iota_acc+smooth,
+ iota_acc+smooth =:| alpha,
+ upsilon |=: upsilon_acc+smooth,
+ upsilon_acc+smooth =:| alpha,
+ apostrophe =: alpha_acc+smoothacute,
+ backquote =: alpha_acc+smoothgrave,
+ circumflex =: alpha_acc+smoothcirc,
+ brevechar =: alpha_acc+breve,
+ macronchar =: alpha_acc+macron,
+ iotasub |=: iotasubalpha;
+ligtable epsilon_acc+smooth:
+ iota |=: iota_acc+smooth,
+ iota_acc+smooth =:| epsilon,
+ upsilon |=: upsilon_acc+smooth,
+ upsilon_acc+smooth =:| epsilon,
+ apostrophe =: epsilon_acc+smoothacute,
+ backquote =: epsilon_acc+smoothgrave,
+ circumflex =: epsilon_acc+smoothcirc,
+ brevechar =: epsilon_acc+breve,
+ macronchar =: epsilon_acc+macron;
+ligtable eta_acc+smooth:
+ iota |=: iota_acc+smooth,
+ iota_acc+smooth =:| eta,
+ upsilon |=: upsilon_acc+smooth,
+ upsilon_acc+smooth =:| eta,
+ apostrophe =: eta_acc+smoothacute,
+ backquote =: eta_acc+smoothgrave,
+ circumflex =: eta_acc+smoothcirc,
+ brevechar =: eta_acc+breve,
+ macronchar =: eta_acc+macron,
+ iotasub |=: iotasubeta;
+ligtable iota_acc+smooth:
+ apostrophe =: iota_acc+smoothacute,
+ backquote =: iota_acc+smoothgrave,
+ circumflex =: iota_acc+smoothcirc,
+ brevechar =: iota_acc+breve,
+ macronchar =: iota_acc+macron;
+ligtable omikron_acc+smooth:
+ iota |=: iota_acc+smooth,
+ iota_acc+smooth =:| omikron,
+ upsilon |=: upsilon_acc+smooth,
+ upsilon_acc+smooth =:| omikron,
+ apostrophe =: omikron_acc+smoothacute,
+ backquote =: omikron_acc+smoothgrave,
+ circumflex =: omikron_acc+smoothcirc,
+ brevechar =: omikron_acc+breve,
+ macronchar =: omikron_acc+macron;
+ligtable upsilon_acc+smooth:
+ iota |=: iota_acc+smooth,
+ iota_acc+smooth =:| upsilon,
+ apostrophe =: upsilon_acc+smoothacute,
+ backquote =: upsilon_acc+smoothgrave,
+ circumflex =: upsilon_acc+smoothcirc,
+ brevechar =: upsilon_acc+breve,
+ macronchar =: upsilon_acc+macron;
+ligtable omega_acc+smooth:
+ iota |=: iota_acc+smooth,
+ iota_acc+smooth =:| omega,
+ upsilon |=: upsilon_acc+smooth,
+ upsilon_acc+smooth =:| omega,
+ apostrophe =: omega_acc+smoothacute,
+ backquote =: omega_acc+smoothgrave,
+ circumflex =: omega_acc+smoothcirc,
+ brevechar =: omega_acc+breve,
+ macronchar =: omega_acc+macron,
+ iotasub |=: iotasubomega;
+ligtable rho_acc+smooth:
+ rho |=: rho_acc+rough;
+
+% aspirated vowels and diphthongs
+ligtable aspirate: Aspirate:
+ alpha =: alpha_acc+rough,
+ epsilon =: epsilon_acc+rough,
+ eta =: eta_acc+rough,
+ iota =: iota_acc+rough,
+ omikron =: omikron_acc+rough,
+ upsilon =: upsilon_acc+rough,
+ omega =: omega_acc+rough,
+ rho =: rho_acc+rough,
+ Alpha =:| rough,
+ Epsilon =:| rough,
+ Eta =:| rough,
+ Iota =:| rough,
+ Omikron =:| rough,
+ Upsilon =:| rough,
+ Omega =:| rough,
+ Rho =:| rough,
+ apostrophe =: roughacute,
+ backquote =: roughgrave,
+ circumflex =: roughcirc;
+ligtable alpha_acc+rough:
+ iota |=: iota_acc+rough,
+ iota_acc+rough =:| alpha,
+ upsilon |=: upsilon_acc+rough,
+ upsilon_acc+rough =:| alpha,
+ apostrophe =: alpha_acc+roughacute,
+ backquote =: alpha_acc+roughgrave,
+ circumflex =: alpha_acc+roughcirc,
+ iotasub |=: iotasubalpha;
+ligtable epsilon_acc+rough:
+ iota |=: iota_acc+rough,
+ iota_acc+rough =:| epsilon,
+ upsilon |=: upsilon_acc+rough,
+ upsilon_acc+rough =:| epsilon,
+ apostrophe =: epsilon_acc+roughacute,
+ backquote =: epsilon_acc+roughgrave,
+ circumflex =: epsilon_acc+roughcirc;
+ligtable eta_acc+rough:
+ iota |=: iota_acc+rough,
+ iota_acc+rough =:| eta,
+ upsilon |=: upsilon_acc+rough,
+ upsilon_acc+rough =:| eta,
+ apostrophe =: eta_acc+roughacute,
+ backquote =: eta_acc+roughgrave,
+ circumflex =: eta_acc+roughcirc,
+ iotasub |=: iotasubeta;
+ligtable iota_acc+rough:
+ apostrophe =: iota_acc+roughacute,
+ backquote =: iota_acc+roughgrave,
+ circumflex =: iota_acc+roughcirc;
+ligtable omikron_acc+rough:
+ iota |=: iota_acc+rough,
+ iota_acc+rough =:| omikron,
+ upsilon |=: upsilon_acc+rough,
+ upsilon_acc+rough =:| omikron,
+ apostrophe =: omikron_acc+roughacute,
+ backquote =: omikron_acc+roughgrave,
+ circumflex =: omikron_acc+roughcirc;
+ligtable upsilon_acc+rough:
+ iota |=: iota_acc+rough,
+ iota_acc+rough =:| upsilon,
+ apostrophe =: upsilon_acc+roughacute,
+ backquote =: upsilon_acc+roughgrave,
+ circumflex =: upsilon_acc+roughcirc;
+ligtable omega_acc+rough:
+ iota |=: iota_acc+rough,
+ iota_acc+rough =:| omega,
+ upsilon |=: upsilon_acc+rough,
+ upsilon_acc+rough =:| omega,
+ apostrophe =: omega_acc+roughacute,
+ backquote =: omega_acc+roughgrave,
+ circumflex =: omega_acc+roughcirc,
+ iotasub |=: iotasubomega;
+
+% acute, grave, circ vowels
+ligtable alpha:
+ apostrophe =: alpha_acc+acute,
+ backquote =: alpha_acc+grave,
+ circumflex =: alpha_acc+circ,
+ brevechar =: alpha_acc+breve,
+ macronchar =: alpha_acc+macron,
+ iotasub |=: iotasubalpha;
+ligtable epsilon:
+ apostrophe =: epsilon_acc+acute,
+ backquote =: epsilon_acc+grave,
+ circumflex =: epsilon_acc+circ,
+ brevechar =: epsilon_acc+breve,
+ macronchar =: epsilon_acc+macron;
+ligtable eta:
+ apostrophe =: eta_acc+acute,
+ backquote =: eta_acc+grave,
+ circumflex =: eta_acc+circ,
+ brevechar =: eta_acc+breve,
+ macronchar =: eta_acc+macron,
+ iotasub |=: iotasubeta;
+ligtable iota:
+ apostrophe =: iota_acc+acute,
+ backquote =: iota_acc+grave,
+ circumflex =: iota_acc+circ,
+ diaeresis =: iota_acc+diaer,
+ brevechar =: iota_acc+breve,
+ macronchar =: iota_acc+macron;
+ligtable omikron:
+ apostrophe =: omikron_acc+acute,
+ backquote =: omikron_acc+grave,
+ circumflex =: omikron_acc+circ,
+ brevechar =: omikron_acc+breve,
+ macronchar =: omikron_acc+macron;
+ligtable upsilon:
+ apostrophe =: upsilon_acc+acute,
+ backquote =: upsilon_acc+grave,
+ circumflex =: upsilon_acc+circ,
+ diaeresis =: upsilon_acc+diaer,
+ brevechar =: upsilon_acc+breve,
+ macronchar =: upsilon_acc+macron;
+ligtable omega:
+ apostrophe =: omega_acc+acute,
+ backquote =: omega_acc+grave,
+ circumflex =: omega_acc+circ,
+ brevechar =: omega_acc+breve,
+ macronchar =: omega_acc+macron,
+ iotasub |=: iotasubomega;
+
+% diaereses and accents
+ligtable diaeresis:
+ iota =: iota_acc+diaer,
+ upsilon =: upsilon_acc+diaer;
+ligtable iota_acc+diaer:
+ apostrophe =: iota_acc+diaeracute,
+ backquote =: iota_acc+diaergrave;
+ligtable upsilon_acc+diaer:
+ apostrophe =: upsilon_acc+diaeracute,
+ backquote =: upsilon_acc+diaergrave;
+
+% iotas subscript
+ligtable
+ alpha_acc+acute:
+ alpha_acc+grave:
+ alpha_acc+circ:
+ alpha_acc+smoothacute:
+ alpha_acc+smoothgrave:
+ alpha_acc+smoothcirc:
+ alpha_acc+roughacute:
+ alpha_acc+roughgrave:
+ alpha_acc+roughcirc:
+ alpha_acc+breve:
+ alpha_acc+macron:
+ iotasub |=: iotasubalpha;
+ligtable
+ eta_acc+acute:
+ eta_acc+grave:
+ eta_acc+circ:
+ eta_acc+smoothacute:
+ eta_acc+smoothgrave:
+ eta_acc+smoothcirc:
+ eta_acc+roughacute:
+ eta_acc+roughgrave:
+ eta_acc+roughcirc:
+ eta_acc+breve:
+ eta_acc+macron:
+ iotasub |=: iotasubeta;
+ligtable
+ omega_acc+acute:
+ omega_acc+grave:
+ omega_acc+circ:
+ omega_acc+smoothacute:
+ omega_acc+smoothgrave:
+ omega_acc+smoothcirc:
+ omega_acc+roughacute:
+ omega_acc+roughgrave:
+ omega_acc+roughcirc:
+ omega_acc+breve:
+ omega_acc+macron:
+ iotasub |=: iotasubomega;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/mu.mf b/Master/texmf-dist/fonts/source/public/lfb/mu.mf
new file mode 100644
index 00000000000..bef574be4a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/mu.mf
@@ -0,0 +1,152 @@
+
+ %% mu.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7.5u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(thick, 90);
+ penpos3(medthin, 0);
+ penpos4(medthin, 0);
+ penpos5(medthin, 90);
+ penpos6(medthin, 180);
+ penpos7(medium, -90);
+ penpos8(medthin, 0);
+ penpos9(medthin, 90);
+ penpos10(medthin, 180);
+ penpos11(medium, 210);
+ penpos12(medthick, 270);
+ penpos13(thin, tailangle+180);
+ z1=z2+((z2l-z2) rotated 120);
+ x2=1.5u;
+ x3l=0;
+ x6r=0;
+ y2l=-descender;
+ y3=y7r=0;
+ y5r=x_height;
+ z4l=z5l=z6l;
+ x7=1/2x8r;
+ x8r=width-1.5u;
+ y9r=x_height;
+ z8l=z9l=z10l;
+ z11l=z12l+(-tiny, tiny);
+ x12=width-3u+thick+thin;
+ y13r=tailheight;
+ y12r=tinyoffset;
+ x13r=width;
+ fill z1..z2l..z3l..{up}z4l..z5l..z6l{down}..z7l
+ ..{up}z8l..z9l..z10l{down}..z11l..z12l..tension 2.2..z13l
+ --z13r..tension 1.7..z12r..z11r..{up}z10r..z9r..z8r{down}..
+ z7r..{up}z6r..z5r..z4r{down}..z3r..z2r..cycle;
+enddef;
+
+beginchar(mu, width#+extra#, x_height#, descender#);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/nu.mf b/Master/texmf-dist/fonts/source/public/lfb/nu.mf
new file mode 100644
index 00000000000..73b35106985
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/nu.mf
@@ -0,0 +1,143 @@
+
+ %% nu.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=6.5u#;
+extra#:=2.5letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(medium, 225);
+ penpos2(medthin, 100);
+ penpos3(medthick, 40);
+ penpos5(thick / cosd 55, 55);
+ penpos6(medthin, 135);
+ penpos8(xthick, -110);
+
+ y2r=x_height;
+ y1l=y2l-thick;
+ y3l=y2l-thin;
+ y5l=0;
+ y6l=1/2x_height;
+ y8l=x_height;
+ x1r=0;
+ x2=x1+medium;
+ x3l=x2+medthin;
+ x5l=x3l+thin;
+ x8l=x6l=width-.5u;
+ z9=z8+((z8l-z8) rotated 90);
+
+ fill z1l..tension 1.8..z2l..z3l..{down}z5l..z5l{dir 30}
+ ..z6l..tension 1.2..z8l..z9
+ ..z8r..tension 1.1..z6r..{dir 210}z5r..z5r{up}..z3r..z2r
+ ..tension 1.5..z1r--cycle;
+enddef;
+
+beginchar(nu, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,5,6,8,9);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/omega.mf b/Master/texmf-dist/fonts/source/public/lfb/omega.mf
new file mode 100644
index 00000000000..5ee8a8c41aa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/omega.mf
@@ -0,0 +1,198 @@
+
+ %% omega.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=9u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(thin, 90);
+ penpos3(thick, 180);
+ penpos4(thin, -90);
+ penpos5(medthin, 0);
+ penpos6(thick, 90);
+ penpos7(medthin, 180);
+ penpos8(thin, -90);
+ penpos9(thick, 0);
+ penpos10(thin, 90);
+ z1=z2+((z2l-z2) rotated 90);
+ z11=z10+((z10l-z10) rotated -90);
+ z5l=z7l=z6l;
+ x3r=0; % actually the left
+ x2=x4=3.5u;
+ x6=1/2width;
+ x8=x10=width-x2;
+ x9r=width;
+ y4r=y8r=0;
+ y6=y3=y9=1/2x_height;
+ y2r=y10r=x_height;
+ fill z1..z2l{left}..z3l..z4l..{up}z5l..z6l..z7l{down}..z8l
+ ..z9l..{left}z10l..z11..z10r{right}..z9r..z8r..z7r..z6r
+ ..z5r..z4r..z3r..{right}z2r..cycle;
+
+ numeric accent_centre;
+ accent_centre = x6;
+ iotasubomegaback:=width+extra-accent_centre;
+enddef;
+
+beginchar(omega, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(omega_acc+smooth, width#+extra#, ascender#, 0);
+gen_letter; acc_smooth;
+endchar;
+
+beginchar(omega_acc+rough, width#+extra#, ascender#, 0);
+gen_letter; acc_rough;
+endchar;
+
+beginchar(omega_acc+acute, width#+extra#, ascender#, 0);
+gen_letter; acc_acute;
+endchar;
+
+beginchar(omega_acc+grave, width#+extra#, ascender#, 0);
+gen_letter; acc_grave;
+endchar;
+
+beginchar(omega_acc+circ, width#+extra#, ascender#, 0);
+gen_letter; acc_circ;
+endchar;
+
+beginchar(omega_acc+smoothacute, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothacute;
+endchar;
+
+beginchar(omega_acc+smoothgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothgrave;
+endchar;
+
+beginchar(omega_acc+smoothcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothcirc;
+endchar;
+
+beginchar(omega_acc+roughacute, width#+extra#, ascender#, 0);
+gen_letter; acc_roughacute;
+endchar;
+
+beginchar(omega_acc+roughgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_roughgrave;
+endchar;
+
+beginchar(omega_acc+roughcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_roughcirc;
+endchar;
+
+beginchar(omega_acc+breve, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_breve;
+endchar;
+
+beginchar(omega_acc+macron, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_macron;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/omikron.mf b/Master/texmf-dist/fonts/source/public/lfb/omikron.mf
new file mode 100644
index 00000000000..73fd2131ec4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/omikron.mf
@@ -0,0 +1,183 @@
+
+ %% omikron.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=6u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thick, 0);
+ penpos2(thin, 90);
+ penpos3(thick, 180);
+ penpos4(thin, 270);
+ y1=y3=x_height/2;
+ x2=x4=width/2;
+ x1l=0; x3l=width;
+ y2l=0; y4l=x_height;
+ penstroke z1e..z2e..z3e..z4e..cycle;
+
+ numeric accent_centre;
+ accent_centre=x4;
+enddef;
+
+beginchar(omikron, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4);
+endchar;
+
+beginchar(omikron_acc+smooth, width#+extra#, ascender#, 0);
+gen_letter; acc_smooth;
+endchar;
+
+beginchar(omikron_acc+rough, width#+extra#, ascender#, 0);
+gen_letter; acc_rough;
+endchar;
+
+beginchar(omikron_acc+acute, width#+extra#, ascender#, 0);
+gen_letter; acc_acute;
+endchar;
+
+beginchar(omikron_acc+grave, width#+extra#, ascender#, 0);
+gen_letter; acc_grave;
+endchar;
+
+beginchar(omikron_acc+circ, width#+extra#, ascender#, 0);
+gen_letter; acc_circ;
+endchar;
+
+beginchar(omikron_acc+smoothacute, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothacute;
+endchar;
+
+beginchar(omikron_acc+smoothgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothgrave;
+endchar;
+
+beginchar(omikron_acc+smoothcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothcirc;
+endchar;
+
+beginchar(omikron_acc+roughacute, width#+extra#, ascender#, 0);
+gen_letter; acc_roughacute;
+endchar;
+
+beginchar(omikron_acc+roughgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_roughgrave;
+endchar;
+
+beginchar(omikron_acc+roughcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_roughcirc;
+endchar;
+
+beginchar(omikron_acc+breve, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_breve;
+endchar;
+
+beginchar(omikron_acc+macron, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_macron;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/others.mf b/Master/texmf-dist/fonts/source/public/lfb/others.mf
new file mode 100644
index 00000000000..08e4cf10efa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/others.mf
@@ -0,0 +1,559 @@
+
+ %% others.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=4u#;
+extra#:=1.5letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(medthick, 90);
+ penpos2(medthick, 90);
+ y1=y2=1/2x_height;
+ x1=width-x2=0;
+ penstroke z1e--z2e;
+enddef;
+
+beginchar(hyphen, width#+extra#, x_height#, 0);
+gen_letter;
+endchar;
+
+
+width#:=18u#;
+extra#:=1.5letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thin, 90);
+ penpos2(thin, 90);
+ y1=y2=1/2x_height;
+ x1=width-x2=0;
+ penstroke z1e--z2e;
+enddef;
+
+beginchar(emdash, width#+extra#, x_height#, 0);
+gen_letter;
+endchar;
+
+
+width#:=0u#;
+extra#:=0letterspace#;
+define_pixels(width, extra);
+
+def gen_letter = enddef;
+
+beginchar(aspirate, width#+extra#, 0, 0);
+gen_letter;
+endchar;
+
+
+width#:=0u#;
+extra#:=0letterspace#;
+define_pixels(width, extra);
+
+def gen_letter = enddef;
+
+beginchar(Aspirate, width#+extra#, 0, 0);
+gen_letter;
+endchar;
+
+
+width#:=breathingwidth#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_smooth;
+enddef;
+
+beginchar(coronis, width#+extra#, ascender#, 0);
+gen_letter; penlabels(100,101,102,103);
+endchar;
+
+
+width#:=quotewidth#;
+extra#:=3letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+
+ penpos101(xthick, 90);
+ penpos102(medthin, 0);
+ penpos103(medthin, -90);
+ z100=z101+((z101l-z101) rotated -60);
+ y103r=x_height;
+ y102=y103l+1.7u;
+ y101l=y102+.7u;
+ x100=accent_centre-1/2quotewidth;
+ x102r=x100+quotewidth;
+ x103=x100+1/5quotewidth;
+ fill z100..z101l..z102l..{dir -160}z103l
+ --z103r{dir 20}..z102r..{left}z101r..cycle;
+enddef;
+
+beginchar(apostrophe, width#+extra#, ascender#, 0);
+gen_letter; penlabels(100,101,102,103);
+endchar;
+
+
+width#:=quotewidth#;
+extra#:=3letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+
+ penpos101(xthick, -90);
+ penpos102(medthin, 180);
+ penpos103(medthin, 90);
+ z100=z101+((z101l-z101) rotated -60);
+ y101r=x_height;
+ y102=y101l+.7u;
+ y103l=y102+1.7u;
+ x100=accent_centre+1/2quotewidth;
+ x102r=x100-quotewidth;
+ x103=x100-1/5quotewidth;
+ fill z100..z101l..z102l..{dir 20}z103l
+ --z103r{dir -160}..z102r..{right}z101r..cycle;
+enddef;
+
+beginchar(backquote, width#+extra#, ascender#, 0);
+gen_letter; penlabels(100,101,102,103,104);
+endchar;
+
+
+width#:=circwidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_circ;
+enddef;
+
+beginchar(circumflex, width#+extra#, ascender#, 0);
+gen_letter; penlabels(100,101,102,103,104);
+endchar;
+
+
+width#:=quotewidth#+3u#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_diaer;
+enddef;
+
+beginchar(diaeresis, width#+extra#, ascender#, 0);
+gen_letter; penlabels(151,152,153,154,155,156,157,158);
+endchar;
+
+
+width#:=circwidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_breve;
+enddef;
+
+beginchar(brevechar, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; penlabels(161,162,163);
+endchar;
+
+
+width#:=circwidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+ acc_macron;
+enddef;
+
+beginchar(macronchar, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; penlabels(171,172);
+endchar;
+
+
+
+width#:=0u#;
+extra#:=0letterspace#;
+define_pixels(width, extra);
+
+def gen_letter = enddef;
+
+beginchar(dividerchar, width#+extra#, 0, 0);
+gen_letter;
+endchar;
+
+
+width#:=quotewidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric diameter;
+ diameter=.85width;
+
+ x2=0;
+ x1=x3=1/2diameter;
+ x4=diameter;
+ y3=0;
+ y2=y4=1/2diameter;
+ y1=diameter;
+
+ fill z1..z2..z3..z4..cycle;
+enddef;
+
+beginchar(fullstop, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4);
+endchar;
+
+
+width#:=quotewidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+
+ penpos101(xthick, 90);
+ penpos102(medthin, 0);
+ penpos103(medthin, -90);
+ z100=z101+((z101l-z101) rotated -60);
+ y101l=0;
+ y102=y103l+1.7u;
+ y101l=y102+.7u;
+ x100=accent_centre-1/2quotewidth;
+ x102r=x100+quotewidth;
+ x103=x100+1/5quotewidth;
+ fill z100..z101l..z102l..{dir -160}z103l
+ --z103r{dir 20}..z102r..{left}z101r..cycle;
+enddef;
+
+beginchar(comma, width#+extra#, ascender#, 0);
+gen_letter; penlabels(100,101,102,103);
+endchar;
+
+
+width#:=quotewidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric diameter;
+ diameter=.85width;
+
+ x2=0;
+ x1=x3=1/2diameter;
+ x4=diameter;
+ y3=y1-diameter;
+ y2=y4=y1-1/2diameter;
+ y1=x_height;
+
+ fill z1..z2..z3..z4..cycle;
+enddef;
+
+beginchar(semicolon, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4);
+endchar;
+
+
+width#:=quotewidth#;
+extra#:=1letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=1/2width;
+
+ penpos101(xthick, 90);
+ penpos102(medthin, 0);
+ penpos103(medthin, -90);
+ z100=z101+((z101l-z101) rotated -60);
+ y101l=0;
+ y102=y103l+1.7u;
+ y101l=y102+.7u;
+ x100=accent_centre-1/2quotewidth;
+ x102r=x100+quotewidth;
+ x103=x100+1/5quotewidth;
+ fill z100..z101l..z102l..{dir -160}z103l
+ --z103r{dir 20}..z102r..{left}z101r..cycle;
+
+ numeric diameter;
+ diameter=.85width;
+
+ x2=0;
+ x1=x3=1/2diameter;
+ x4=diameter;
+ y3=y1-diameter;
+ y2=y4=y1-1/2diameter;
+ y1=x_height;
+
+ fill z1..z2..z3..z4..cycle;
+enddef;
+
+beginchar(questionmark, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,100,101,102,103);
+endchar;
+
+
+parenthesiscentre#:=1/2(ascender#-descender#);
+parenthesisheight#:=parenthesiscentre#+1/2thefontsize#;
+parenthesisdepth#:=parenthesiscentre#-1/2thefontsize#;
+define_pixels(parenthesiscentre, parenthesisheight, parenthesisdepth);
+
+
+width#:=4u#;
+extra#:=1.5u#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thin, 0);
+ penpos2(medthick, 0);
+ penpos3(thin, 0);
+ y1=parenthesisheight;
+ y2=parenthesiscentre;
+ y3=parenthesisdepth;
+ x1r=width+.5u;
+ x2l=0+.5u;
+ x3r=width+.5u;
+ penstroke z1e{curl 4}..z2e..{curl 4}z3e;
+enddef;
+
+beginchar(openparenthesis, width#+extra#, parenthesisheight#, -parenthesisdepth#);
+gen_letter; penlabels(1,2,3);
+endchar;
+
+
+width#:=4u#;
+extra#:=1u#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(thin, 0);
+ penpos2(medthick, 0);
+ penpos3(thin, 0);
+ y1=parenthesisheight;
+ y2=parenthesiscentre;
+ y3=parenthesisdepth;
+ x1l=0-.5u;
+ x2r=width-.5u;
+ x3l=0-.5u;
+ penstroke z1e{curl 4}..z2e..{curl 4}z3e;
+enddef;
+
+beginchar(closeparenthesis, width#+extra#, parenthesisheight#, -parenthesisdepth#);
+gen_letter; penlabels(1,2,3);
+endchar;
+
+
+width#:=3u#;
+extra#:=1.5u#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(medthin, 90);
+ penpos2(medthin, 90);
+ penpos3(medthin, 0);
+ penpos4(medthin, 0);
+ penpos5(medthin, 90);
+ penpos6(medthin, 90);
+ y1r=y2r=y3=parenthesisheight;
+ y4=y5l=y6l=parenthesisdepth;
+ x1=x5=0; x2=x6=width;
+ x3l=x4l=0;
+ penstroke z1e--z2e;
+ penstroke z3e--z4e;
+ penstroke z5e--z6e;
+enddef;
+
+beginchar(openbracket, width#+extra#, parenthesisheight#, -parenthesisdepth#);
+gen_letter; penlabels(1,2,3,4,5,6);
+endchar;
+
+
+width#:=3u#;
+extra#:=1.5u#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(medthin, 90);
+ penpos2(medthin, 90);
+ penpos3(medthin, 0);
+ penpos4(medthin, 0);
+ penpos5(medthin, 90);
+ penpos6(medthin, 90);
+ y1r=y2r=y3=parenthesisheight;
+ y4=y5l=y6l=parenthesisdepth;
+ x1=x5=0; x2=x6=width;
+ x3r=x4r=width;
+ penstroke z1e--z2e;
+ penstroke z3e--z4e;
+ penstroke z5e--z6e;
+enddef;
+
+beginchar(closebracket, width#+extra#, parenthesisheight#, -parenthesisdepth#);
+gen_letter; penlabels(1,2,3,4,5,6);
+endchar;
+
+
+width#:=0u#;
+extra#:=0u#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=-iotasubalphaback;
+ acc_iotasub;
+enddef;
+
+beginchar(iotasubalpha, width#+extra#, 0, 0);
+gen_letter;
+endchar;
+
+width#:=0u#;
+extra#:=0u#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=-iotasubetaback;
+ acc_iotasub;
+enddef;
+
+beginchar(iotasubeta, width#+extra#, 0, 0);
+gen_letter;
+endchar;
+
+width#:=0u#;
+extra#:=0u#;
+define_pixels(width, extra);
+
+def gen_letter =
+ numeric accent_centre;
+ accent_centre=-iotasubomegaback;
+ acc_iotasub;
+enddef;
+
+beginchar(iotasubomega, width#+extra#, 0, 0);
+gen_letter;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/phi.mf b/Master/texmf-dist/fonts/source/public/lfb/phi.mf
new file mode 100644
index 00000000000..cd26dde7424
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/phi.mf
@@ -0,0 +1,153 @@
+
+ %% phi.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=8u#;
+extra#:=3letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(thick, 0);
+ penpos3(thin, -90);
+ penpos4(thick, 0);
+ penpos5(thin, 90);
+ penpos6(thin, 135);
+ penpos7(thick, 180);
+ penpos8(thin, -90);
+
+ z1=z2+(2/3(z2l-z2) rotated -90);
+ y2=y3l+thin;
+ y3l=x_height;
+ y4=1/2y3r;
+ y5l=0;
+ y7=1/2y8l;
+ y8l=x_height;
+ x2r=x12r;
+ x3=3/4x5r;
+ x4l=0;
+ x5=(x4r+width)/2;
+ x7r=width;
+ x8r=x5l+1/2(x7r-x5l);
+ penpos12(medthick, 0);
+ penpos13(medthick, 0);
+ penpos14(tiny, 0);
+ x12=x13=x5;
+ x14=x13l-small;
+ y12=x_height-2thick;
+ y13=-2/3descender;
+ y14r=y13-thick;
+
+ fill z1..{down}z2l..z3l{left}..{down}z4l..z5l..z7l{up}..z8l
+ ..z12l---z13l..z14l
+ --z14r..z13r---z12r
+ ..z8r..{down}z7r..z5r..z4r{up}..{right}z3r..z2r..cycle;
+enddef;
+
+beginchar(phi, width#+extra#, x_height#, descender#);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/pi.mf b/Master/texmf-dist/fonts/source/public/lfb/pi.mf
new file mode 100644
index 00000000000..a4eb82fac1a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/pi.mf
@@ -0,0 +1,157 @@
+
+ %% pi.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=8.5u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos5(thin, barangle);
+ penpos6(medthick, 90);
+ penpos8(medthick, 90);
+ penpos9(thin, barendangle);
+ y6r=y8r=x_height;
+ x6=2u; x8=7.5u;
+ x5l=1u; y5l=x_height-tailheight;
+ y9r=x_height+tiny; x9r=width;
+ penstroke z5e..z6e..tension 2..z8e..z9e;
+
+ penpos1(medium, 0);
+ penpos2(medium, 0);
+ penpos3(medthick, 90);
+ penpos4(thin, tailangle);
+ x1=x2+tinyoffset;
+ x2=.7[x6,x8];
+ y1=x_height-thick/2;
+ y2=xthick;
+ x3=x2+thick/2+tiny;
+ y4l=tailheight;
+ y3l=tinyoffset;
+ x4l=x2l+3u;
+ fill z1l---z2l..z3l..tension 1.5..z4l
+ --z4r..tension 1.7..z3r..z2r---z1r--z1l..cycle;
+
+ penpos10(medthin, 0);
+ penpos11(medthin, 0);
+ penpos12(xthick, 270);
+ penpos13(tiny, 180);
+ x10=x11+tinyoffset;
+ x11=.2[x6,x8];
+ y10=x_height-thick/2;
+ y11=y12l+thin;
+ y12r=0;
+ y13=y12l+tiny;
+ x12=x11l-medthin;
+ x13r=x12-medthick;
+ penstroke z10e---z11e..z12e..z13e;
+enddef;
+
+beginchar(pi, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,8,9,10,11,12,13,14,15);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/psi.mf b/Master/texmf-dist/fonts/source/public/lfb/psi.mf
new file mode 100644
index 00000000000..dd6ace9b4cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/psi.mf
@@ -0,0 +1,158 @@
+
+ %% psi.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=8.5u#;
+extra#:=3letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(medium, 225);
+ penpos2(medthin, 90);
+ penpos3(thick, 0);
+ penpos4(thick, 0);
+ penpos5(thin, 90);
+ penpos6(thin, 135);
+ penpos7(thick, 180);
+ penpos8(tiny, 180);
+
+ y2r=x_height-tiny;
+ y1l=y2l-thick;
+ y3=y2l-thin;
+ y4=y3-2u;
+ y5l=0;
+ y7=1/2y8;
+ y8=x_height;
+ x1r=0;
+ x2=x1+medium;
+ x4l=x3l=x2+thin;
+ x5=(x3r+width)/2;
+ x7r=width;
+ x8r=x7r-thin;
+
+ fill z1l..tension 1.8..z2l..z3l---z4l..z5l..z7l..z8l
+ --z8r..z7r..z5r..z4r---z3r..z2r..tension 1.5..z1r--cycle;
+
+ penpos11(xthick, 90);
+ penpos12(medium, 0);
+ penpos13(medium, 0);
+ penpos14(tiny, 0);
+ z10=z11+(4/3(z11l-z11) rotated -60);
+ x12=x13=x5;
+ x11=x14=x13l-thin;
+ y11l=y12+thick;
+ y12=x_height;
+ y13=-2/3descender;
+ y14r=y13-thick;
+ fill z10..{right}z11l..z12l---z13l..z14l
+ --z14r..z13r---z12r..z11r..cycle;
+enddef;
+
+beginchar(psi, width#+extra#, ascender#, descender#);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/rho.mf b/Master/texmf-dist/fonts/source/public/lfb/rho.mf
new file mode 100644
index 00000000000..9347d0c1552
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/rho.mf
@@ -0,0 +1,149 @@
+
+ %% rho.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=6u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(tiny, 0);
+ penpos2(thin, 90);
+ penpos3(thick, 180);
+ penpos4(thin, 270);
+ penpos5(thick, 0);
+ penpos6(thin, 90);
+ penpos7(thick, 15);
+ penpos8(medium, 30);
+ y1=medium;
+ x1=thick+thin;
+ y3=x_height/2;
+ y5=(x_height+y6l)/2;
+ x2=x4=x6=width/2;
+ x5l=0; x3l=x7r=width; x8l=x7l;
+ y2l=0; y4l=x_height;
+ y6l=-descender+.7u;
+ y7l=-descender;
+ y8=y7-thin;
+ penstroke z1e..z2e..z3e..z4e..z5e..{right}z6e..z7e..z8e;
+
+ numeric accent_centre;
+ accent_centre=x4;
+enddef;
+
+beginchar(rho, width#+extra#, x_height#, descender#);
+gen_letter; penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(rho_acc+smooth, width#+extra#, ascender#, descender#);
+gen_letter; acc_smooth;
+endchar;
+
+beginchar(rho_acc+rough, width#+extra#, ascender#, descender#);
+gen_letter; acc_rough;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/serifs.mf b/Master/texmf-dist/fonts/source/public/lfb/serifs.mf
new file mode 100644
index 00000000000..398deae65a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/serifs.mf
@@ -0,0 +1,324 @@
+
+ %% serifs.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+def stem
+ (suffix stop, sbot, stoplft, stoprt, stopdish, sbotlft, sbotrt, sbotdish)
+ (expr thetop, thebot, toptilt, bottilt, breadth, slabwidth, jut)
+= numeric stemangle;
+ stemangle=angle(thetop-thebot);
+ numeric endinset;
+ endinset=3/4jut;
+ penpos stop(breadth, stemangle-90);
+ penpos sbot(breadth, stemangle-90);
+ penpos stoplft(slabwidth, stemangle+toptilt);
+ penpos stoprt(slabwidth, stemangle+toptilt);
+ penpos sbotlft(slabwidth, stemangle+bottilt);
+ penpos sbotrt(slabwidth, stemangle+bottilt);
+ z[stoplft].r=thetop+(1/2breadth+jut)*dir(stemangle+toptilt+90);
+ z[stoprt].r=thetop+(1/2breadth+jut)*dir(stemangle+toptilt-90);
+ z[stopdish]=thetop+dishdepth*dir(stemangle+toptilt+180);
+ z[sbotlft].l=thebot+(1/2breadth+jut)*dir(stemangle+bottilt+90);
+ z[sbotrt].l=thebot+(1/2breadth+jut)*dir(stemangle+bottilt-90);
+ z[sbotdish]=thebot+dishdepth*dir(stemangle+bottilt);
+ z[stop]=thetop+whatever*dir(stemangle+180);
+ if toptilt>0:
+ z[stop].l=thetop+whatever*dir(stemangle+toptilt+90)
+ +endinset*dir(stemangle+toptilt+180);
+ else:
+ z[stop].r=thetop+whatever*dir(stemangle+toptilt-90)
+ +endinset*dir(stemangle+toptilt+180);
+ fi;
+ z[sbot]=thebot+whatever*dir(stemangle);
+ if bottilt>0:
+ z[sbot].r=thebot+whatever*dir(stemangle+bottilt-90)
+ +endinset*dir(stemangle+bottilt);
+ else:
+ z[sbot].l=thebot+whatever*dir(stemangle+bottilt+90)
+ +endinset*dir(stemangle+bottilt);
+ fi;
+ fill z[stop].l---z[sbot].l..{dir(stemangle+bottilt+90)}z[sbotlft].r
+ --z[sbotlft].l..z[sbotdish]..z[sbotrt].l--z[sbotrt].r
+ {dir(stemangle+bottilt+90)}..z[sbot].r---z[stop].r
+ ..{dir(stemangle+toptilt-90)}z[stoprt].l--z[stoprt].r
+ ..z[stopdish]..z[stoplft].r--z[stoplft].l{dir(stemangle+toptilt-90)}
+ ..cycle;
+ fill z[stoplft].r--z[stoprt].r
+ --z[stoprt].l+((0,0) rotated(stemangle+toptilt-90))
+ --z[stoplft].l+((0,0) rotated(stemangle+toptilt-90))--cycle;
+ fill z[sbotlft].l--z[sbotrt].l
+ --z[sbotrt].r+((0,0) rotated(stemangle+bottilt-90))
+ --z[sbotlft].r+((0,0) rotated(stemangle+bottilt-90))--cycle;
+enddef;
+
+
+def singlestem % bottom only has serif
+ (suffix stop, sbot, sbotlft, sbotrt, sbotdish)
+ (expr thetop, thebot, bottilt, breadth, slabwidth, jut)
+= numeric stemangle;
+ stemangle=angle(thetop-thebot);
+ numeric endinset;
+ endinset=3/4jut;
+ penpos stop(breadth, stemangle-90);
+ penpos sbot(breadth, stemangle-90);
+ penpos sbotlft(slabwidth, stemangle+bottilt);
+ penpos sbotrt(slabwidth, stemangle+bottilt);
+ z[stop]=thetop;
+ z[sbotlft].l=thebot+(1/2breadth+jut)*dir(stemangle+bottilt+90);
+ z[sbotrt].l=thebot+(1/2breadth+jut)*dir(stemangle+bottilt-90);
+ z[sbotdish]=thebot+dishdepth*dir(stemangle+bottilt);
+ z[sbot]=thebot+whatever*dir(stemangle);
+ if bottilt>0:
+ z[sbot].r=thebot+whatever*dir(stemangle+bottilt-90)
+ +endinset*dir(stemangle+bottilt);
+ else:
+ z[sbot].l=thebot+whatever*dir(stemangle+bottilt+90)
+ +endinset*dir(stemangle+bottilt);
+ fi;
+ fill z[stop].l---z[sbot].l..{dir(stemangle+bottilt+90)}z[sbotlft].r
+ --z[sbotlft].l..z[sbotdish]..z[sbotrt].l--z[sbotrt].r
+ {dir(stemangle+bottilt+90)}..z[sbot].r---z[stop].r--cycle;
+ fill z[sbotlft].l--z[sbotrt].l
+ --z[sbotrt].r+((0,0) rotated(stemangle+bottilt-90))
+ --z[sbotlft].r+((0,0) rotated(stemangle+bottilt-90))--cycle;
+enddef;
+
+
+def oneandlefthalfstem
+ (suffix stop, sbot, stoplft, stoprt, stopdish, sbotlft, sbotrt, sbotdish)
+ (expr thetop, thebot, toptilt, bottilt, breadth, slabwidth, jut)
+= numeric stemangle;
+ stemangle=angle(thetop-thebot);
+ numeric endinset;
+ endinset=3/4jut;
+ penpos stop(breadth, stemangle-90);
+ penpos sbot(breadth, stemangle-90);
+ penpos stoplft(slabwidth, stemangle+toptilt);
+ penpos stoprt(slabwidth, stemangle);
+ penpos sbotlft(slabwidth, stemangle+bottilt);
+ penpos sbotrt(slabwidth, stemangle+bottilt);
+ z[stoplft].r=thetop+(1/2breadth+jut)*dir(stemangle+toptilt+90);
+ z[stoprt].r=thetop+(1/2breadth)*dir(stemangle+toptilt-90);
+ z[stopdish]=thetop+dishdepth*dir(stemangle+toptilt+180);
+ z[sbotlft].l=thebot+(1/2breadth+jut)*dir(stemangle+bottilt+90);
+ z[sbotrt].l=thebot+(1/2breadth+jut)*dir(stemangle+bottilt-90);
+ z[sbotdish]=thebot+dishdepth*dir(stemangle+bottilt);
+ z[stop]=thetop+whatever*dir(stemangle+180);
+ if toptilt>0:
+ z[stop].l=thetop+whatever*dir(stemangle+toptilt+90)
+ +endinset*dir(stemangle+toptilt+180);
+ else:
+ z[stop].r=thetop+whatever*dir(stemangle+toptilt-90)
+ +endinset*dir(stemangle+toptilt+180);
+ fi;
+ z[sbot]=thebot+whatever*dir(stemangle);
+ if bottilt>0:
+ z[sbot].r=thebot+whatever*dir(stemangle+bottilt-90)
+ +endinset*dir(stemangle+bottilt);
+ else:
+ z[sbot].l=thebot+whatever*dir(stemangle+bottilt+90)
+ +endinset*dir(stemangle+bottilt);
+ fi;
+ fill z[stop].l---z[sbot].l..{dir(stemangle+bottilt+90)}z[sbotlft].r
+ --z[sbotlft].l..z[sbotdish]..z[sbotrt].l--z[sbotrt].r
+ {dir(stemangle+bottilt+90)}..z[sbot].r---z[stoprt].r
+ --z[stoplft].r--z[stoplft].l{dir(stemangle+toptilt-90)}
+ ..cycle;
+ fill z[sbotlft].l--z[sbotrt].l
+ --z[sbotrt].r+((0,0) rotated(stemangle+bottilt-90))
+ --z[sbotlft].r+((0,0) rotated(stemangle+bottilt-90))--cycle;
+enddef;
+
+
+def oneandrighthalfstem
+ (suffix stop, sbot, stoplft, stoprt, stopdish, sbotlft, sbotrt, sbotdish)
+ (expr thetop, thebot, toptilt, bottilt, breadth, slabwidth, jut)
+= numeric stemangle;
+ stemangle=angle(thetop-thebot);
+ numeric endinset;
+ endinset=3/4jut;
+ penpos stop(breadth, stemangle-90);
+ penpos sbot(breadth, stemangle-90);
+ penpos stoplft(slabwidth, stemangle);
+ penpos stoprt(slabwidth, stemangle+toptilt);
+ penpos sbotlft(slabwidth, stemangle+bottilt);
+ penpos sbotrt(slabwidth, stemangle+bottilt);
+ z[stoplft].r=thetop+(1/2breadth)*dir(stemangle+toptilt+90);
+ z[stoprt].r=thetop+(1/2breadth+jut)*dir(stemangle+toptilt-90);
+ z[stopdish]=thetop+dishdepth*dir(stemangle+toptilt+180);
+ z[sbotlft].l=thebot+(1/2breadth+jut)*dir(stemangle+bottilt+90);
+ z[sbotrt].l=thebot+(1/2breadth+jut)*dir(stemangle+bottilt-90);
+ z[sbotdish]=thebot+dishdepth*dir(stemangle+bottilt);
+ z[stop]=thetop+whatever*dir(stemangle+180);
+ if toptilt>0:
+ z[stop].l=thetop+whatever*dir(stemangle+toptilt+90)
+ +endinset*dir(stemangle+toptilt+180);
+ else:
+ z[stop].r=thetop+whatever*dir(stemangle+toptilt-90)
+ +endinset*dir(stemangle+toptilt+180);
+ fi;
+ z[sbot]=thebot+whatever*dir(stemangle);
+ if bottilt>0:
+ z[sbot].r=thebot+whatever*dir(stemangle+bottilt-90)
+ +endinset*dir(stemangle+bottilt);
+ else:
+ z[sbot].l=thebot+whatever*dir(stemangle+bottilt+90)
+ +endinset*dir(stemangle+bottilt);
+ fi;
+ fill z[stoplft].r---z[sbot].l..{dir(stemangle+bottilt+90)}z[sbotlft].r
+ --z[sbotlft].l..z[sbotdish]..z[sbotrt].l--z[sbotrt].r
+ {dir(stemangle+bottilt+90)}..z[sbot].r---z[stop].r
+ ..{dir(stemangle+toptilt-90)}z[stoprt].l--z[stoprt].r--cycle;
+ fill z[sbotlft].l--z[sbotrt].l
+ --z[sbotrt].r+((0,0) rotated(stemangle+bottilt-90))
+ --z[sbotlft].r+((0,0) rotated(stemangle+bottilt-90))--cycle;
+enddef;
+
+
+def barrightserif
+ (suffix shoulder, elbow, wrist, hand)
+ (expr thestart, theend, breadth, serifwidth, jut, indent)
+= numeric thebarangle;
+ thebarangle=angle(theend-thestart);
+ numeric forearm;
+ forearm=3/4jut;
+ penpos shoulder(breadth, thebarangle+90);
+ penpos elbow(breadth, thebarangle+90);
+ penpos wrist(breadth, thebarangle+90);
+ penpos hand(serifwidth, thebarangle);
+ z[shoulder].r=thestart;
+ z[elbow].r=z[wrist].r+forearm*dir(thebarangle-180);
+ z[wrist].r=theend+indent*dir(thebarangle-180);
+ z[hand].r=theend+(breadth+jut)*dir(thebarangle-90);
+ numeric serifangle;
+ serifangle=angle(z[wrist].r-z[hand].r);
+ fill z[shoulder].l---z[elbow].l..{dir(serifangle-180)}z[hand].l
+ --z[hand].r--z[wrist].r--z[shoulder].r--cycle;
+enddef;
+
+
+def barleftserif
+ (suffix shoulder, elbow, wrist, hand)
+ (expr thestart, theend, breadth, serifwidth, jut, indent)
+= numeric thebarangle;
+ thebarangle=angle(theend-thestart);
+ numeric forearm;
+ forearm=3/4jut;
+ penpos shoulder(breadth, thebarangle-90);
+ penpos elbow(breadth, thebarangle-90);
+ penpos wrist(breadth, thebarangle-90);
+ penpos hand(serifwidth, thebarangle);
+ z[shoulder].r=thestart;
+ z[elbow].r=z[wrist].r+forearm*dir(thebarangle-180);
+ z[wrist].r=theend+indent*dir(thebarangle-180);
+ z[hand].r=theend+(breadth+jut)*dir(thebarangle+90);
+ numeric serifangle;
+ serifangle=angle(z[wrist].r-z[hand].r);
+ fill z[shoulder].l---z[elbow].l..{dir(serifangle-180)}z[hand].l
+ --z[hand].r--z[wrist].r--z[shoulder].r--cycle;
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/sigma.mf b/Master/texmf-dist/fonts/source/public/lfb/sigma.mf
new file mode 100644
index 00000000000..127e8687280
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/sigma.mf
@@ -0,0 +1,138 @@
+
+ %% sigma.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(tiny, 0);
+ penpos2(thick, 0);
+ penpos3(thin, 270);
+ penpos4(thick, 180);
+ penpos6(medthick, 90);
+ penpos8(medthick, 90);
+ penpos9(thin, barendangle);
+ x1l=x2l-.8u;
+ x2r=width-1u;
+ x3=(width-1u)/2;
+ x4r=0; % r in this case is actually the left
+ y1=x_height-medthick-thin;
+ y2=y1/2;
+ y3r=0;
+ y4=x_height/2;
+ y6r=y8r=x_height;
+ x6=3u; x8=6u;
+ y9r=x_height+tiny; x9r=width;
+ penstroke z1e..z2e..z3e..z4e..z6e..tension 1.5..z8e..z9e;
+enddef;
+
+beginchar(sigma, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,8,9);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/sigmafin.mf b/Master/texmf-dist/fonts/source/public/lfb/sigmafin.mf
new file mode 100644
index 00000000000..b588eb63ce5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/sigmafin.mf
@@ -0,0 +1,142 @@
+
+ %% sigmafin.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=5.5u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(medthick, -130);
+ penpos3(thick, -90);
+ penpos4(medthin, 0);
+ penpos5(thick, 90);
+ penpos6(thick, 90);
+ penpos7(thin, 0);
+ penpos8(thick, -90);
+ z1=z2+(2/3(z2l-z2) rotated -90);
+ z2r=z3r+(medthin,-thin);
+ y3l=x_height;
+ y6l=0; y5l=tiny;
+ y4=2/5x_height;
+ y7=1/2y8l;
+ y8r=-descender;
+ x3=2/3width;
+ x5=x3-xthick;
+ x6=x3+thin;
+ x4l=0;
+ x7r=width;
+ x8=4/7width;
+ z9=z8+((z8l-z8) rotated 60);
+ fill z1..z2l..z3l..{down}z4l..z5l..z6l..z7l..{left}z8l..z9
+ ..z8r{right}..z7r..z6r..z5r..z4r{up}..z3r..z2r..cycle;
+enddef;
+
+beginchar(sigmafinal, width#+extra#, x_height#, descender#);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/tau.mf b/Master/texmf-dist/fonts/source/public/lfb/tau.mf
new file mode 100644
index 00000000000..d649dc33d60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/tau.mf
@@ -0,0 +1,143 @@
+
+ %% tau.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos5(thin, barangle);
+ penpos6(medthick, 90);
+ penpos8(medthick, 90);
+ penpos9(thin, barendangle);
+ y6r=y8r=x_height;
+ x6=2u; x8=6u;
+ x5l=1u; y5l=x_height-tailheight;
+ y9r=x_height+tiny; x9r=width;
+ penstroke z5e..z6e..tension 2..z8e..z9e;
+
+ penpos1(medthick, 0);
+ penpos2(medthick, 0);
+ penpos3(medium, 90);
+ penpos4(thin, tailangle);
+ x1=x2+tinyoffset;
+ x2=.4[x6,x8];
+ y1=x_height-thick/2;
+ y2=thick;
+ x3=x2+thick/2+tiny;
+ y4l=tailheight;
+ y3l=tinyoffset;
+ x4l=x2l+3u;
+ fill z1l---z2l..z3l..tension 1.5..z4l
+ --z4r..tension 2.5..z3r..z2r---z1r--z1l..cycle;
+enddef;
+
+beginchar(tau, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,8,9);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/theta.mf b/Master/texmf-dist/fonts/source/public/lfb/theta.mf
new file mode 100644
index 00000000000..1bf575c85a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/theta.mf
@@ -0,0 +1,149 @@
+
+ %% theta.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7.5u#;
+extra#:=2letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(medium, 225);
+ penpos2(medthin, 90);
+ penpos3(thick, 0);
+ penpos10(thick, 0);
+ penpos4(medthick, 90);
+ penpos5(medthin, 180);
+ penpos6(medthick, -90);
+ penpos7(xthick, -30);
+ penpos8(medium, 45);
+ penpos9(thin, 90);
+ y9l=y2r=6/11ascender;
+ y1l=y2l-thick;
+ y5=y2r;
+ y3=y2l-thin;
+ y10=y3-2u;
+ y4l=0;
+ y6l=ascender;
+ y7=5/6ascender;
+ y8l=y3r+2u;
+ x1r=0;
+ x2=x1+medium;
+ x7=x10l=x3l=x2+thin;
+ x6=x4=(x3l/2+x5r)/2;
+ x5l=width-.5u;
+ x9l=width;
+ x8l=x3r;
+ z11=z9+((z9l-z9) rotated 90);
+ fill z1l..tension 1.8..z2l..z3l---z10l..z4l..{up}z5l{up}..z6l
+ ..z7l..z8l..{right}z9l..z11..z9r{left}..z8r..z7r..z6r
+ ..{down}z5r{down}..z4r..z10r---z3r..z2r..tension 1.5..z1r--cycle;
+enddef;
+
+beginchar(theta, width#+extra#, ascender#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/upsilon.mf b/Master/texmf-dist/fonts/source/public/lfb/upsilon.mf
new file mode 100644
index 00000000000..30dd623c2f1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/upsilon.mf
@@ -0,0 +1,214 @@
+
+ %% upsilon.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=7u#;
+extra#:=2.5letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos1(medium, 225);
+ penpos2(medthin, 90);
+ penpos3(thick, 0);
+ penpos4(thick, 0);
+ penpos5(medthin, 90);
+ penpos6(thin, 135);
+ penpos7(medthick, -150);
+ penpos8(xthick, -110);
+
+ y2r=x_height;
+ y1l=y2l-thick;
+ y3=y2l-thin;
+ y4=y3-2u;
+ y5l=0;
+ y6l=y5r;
+ y7l=y8r-thick;
+ y8l=x_height;
+ x1r=0;
+ x2=x1+medium;
+ x4l=x3l=x2+thin;
+ x5=(x3l/2+width)/2;
+ x7r=width-medthin;
+ x8l=x6l=width-1u;
+ z9=z8+((z8l-z8) rotated 90);
+
+ fill z1l..tension 1.8..z2l..z3l---z4l..z5l..z6l..z7l..z8l..z9
+ ..z8r..z7r..tension 1.1..z6r..z5r..z4r---z3r..z2r
+ ..tension 1.5..z1r--cycle;
+
+ numeric accent_centre;
+ accent_centre=x5;
+enddef;
+
+beginchar(upsilon, width#+extra#, x_height#, 0);
+gen_letter; penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(upsilon_acc+smooth, width#+extra#, ascender#, 0);
+gen_letter; acc_smooth;
+endchar;
+
+beginchar(upsilon_acc+rough, width#+extra#, ascender#, 0);
+gen_letter; acc_rough;
+endchar;
+
+beginchar(upsilon_acc+acute, width#+extra#, ascender#, 0);
+gen_letter; acc_acute;
+endchar;
+
+beginchar(upsilon_acc+grave, width#+extra#, ascender#, 0);
+gen_letter; acc_grave;
+endchar;
+
+beginchar(upsilon_acc+circ, width#+extra#, ascender#, 0);
+gen_letter; acc_circ;
+endchar;
+
+beginchar(upsilon_acc+smoothacute, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothacute;
+endchar;
+
+beginchar(upsilon_acc+smoothgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothgrave;
+endchar;
+
+beginchar(upsilon_acc+smoothcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_smoothcirc;
+endchar;
+
+beginchar(upsilon_acc+roughacute, width#+extra#, ascender#, 0);
+gen_letter; acc_roughacute;
+endchar;
+
+beginchar(upsilon_acc+roughgrave, width#+extra#, ascender#, 0);
+gen_letter; acc_roughgrave;
+endchar;
+
+beginchar(upsilon_acc+roughcirc, width#+extra#, ascender#, 0);
+gen_letter; acc_roughcirc;
+endchar;
+
+beginchar(upsilon_acc+diaer, width#+extra#, ascender#, 0);
+gen_letter; acc_diaer;
+endchar;
+
+beginchar(upsilon_acc+diaeracute, width#+extra#, ascender#, 0);
+gen_letter; acc_diaeracute;
+endchar;
+
+beginchar(upsilon_acc+diaergrave, width#+extra#, ascender#, 0);
+gen_letter; acc_diaergrave;
+endchar;
+
+beginchar(upsilon_acc+breve, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_breve;
+endchar;
+
+beginchar(upsilon_acc+macron, width#+extra#, ascender#-macronbreveshorter#, 0);
+gen_letter; acc_macron;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/xi.mf b/Master/texmf-dist/fonts/source/public/lfb/xi.mf
new file mode 100644
index 00000000000..fc953326432
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/xi.mf
@@ -0,0 +1,165 @@
+
+ %% xi.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=6.5u#;
+extra#:=1.5letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(thick, 0);
+ penpos4(medthin, xiangle+90);
+ penpos5(xthick, xiangle-180);
+ penpos6(medthin, xiangle-90);
+ penpos7(medthin, 0);
+ penpos8(medium, 90);
+ penpos9(xthick, 180);
+ penpos10(medium, -90);
+
+ penpos24(medthin, 0);
+ penpos25(thick, 90);
+ penpos26(thick, 90);
+ penpos27(thin, 0);
+ penpos28(thick, -90);
+
+ z1=z2+(4/3(z2l-z2) rotated -120);
+ y1=ascender;
+ x2l=0;
+ z4r=z5r=z6r;
+ x5l=width-small;
+ y6l=ascender-medium;
+ y7=y9r+2/5(ascender-y9r);
+ x7=medium;
+ z8r=z9r=z10r;
+ x9l=width-thin;
+ y9r=1/2ascender;
+
+ y26l=0; y25l=tiny;
+ y24=1/2y9r;
+ y27=1/2y28l;
+ y28r=-descender;
+ numeric centroid; centroid=2/3width;
+ x25=centroid-2.5u;
+ x26=centroid+thin;
+ x24l=0;
+ x27r=width;
+ x28=4/7width;
+ z29=z28+((z28l-z28) rotated 60);
+
+ fill z1..z2l{down}..{dir xiangle}z4l..z5l..z6l{dir (xiangle-180)}
+ ..z7l..{right}z8l..z9l..z10l{left}
+ ..{down}z24l..z25l..z26l..z27l..{left}z28l..z29
+ ..z28r{right}..z27r..z26r..z25r..z24r{up}
+ ..{right}z10r..z9r..z8r{left}..z7r
+ ..{dir xiangle}z6r..z5r..z4r{dir (xiangle-180)}..z2r..cycle;
+enddef;
+
+beginchar(xi, width#+extra#, ascender#, descender#);
+gen_letter; penlabels(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);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/lfb/zeta.mf b/Master/texmf-dist/fonts/source/public/lfb/zeta.mf
new file mode 100644
index 00000000000..7e699765746
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/lfb/zeta.mf
@@ -0,0 +1,157 @@
+
+ %% zeta.mf
+ %% Copyright 2005 Laurie Field
+ %
+ % This work is LFB, version 1.0.
+ %
+ % This work may be distributed and/or modified under the
+ % conditions of the LaTeX Project Public License, either version 1.3
+ % of this license or (at your option) any later version.
+ % The latest version of this license is in
+ % http://www.latex-project.org/lppl.txt
+ % and version 1.3 or later is part of all distributions of LaTeX
+ % version 2003/12/01 or later.
+ %
+ % This work has the LPPL maintenance status "maintained".
+ %
+ % This Current Maintainer of this work is Laurie Field.
+ %
+ % This work consists of the files:
+ %
+ % example.tex
+ % lfbacc.tex
+ %
+ % accents.mf
+ % alpha.mf
+ % beta.mf
+ % capitals.mf
+ % charmap.mf
+ % delta.mf
+ % epsilon.mf
+ % eta.mf
+ % gamma.mf
+ % iota.mf
+ % kappa.mf
+ % khi.mf
+ % lambda.mf
+ % lfb.mf
+ % lfb5.mf
+ % lfb6.mf
+ % lfb7.mf
+ % lfb8.mf
+ % lfb9.mf
+ % lfb10.mf
+ % lfb11.mf
+ % lfb12.mf
+ % lfbb5.mf
+ % lfbb6.mf
+ % lfbb7.mf
+ % lfbb8.mf
+ % lfbb9.mf
+ % lfbb10.mf
+ % lfbb11.mf
+ % lfbb12.mf
+ % ligature.mf
+ % mu.mf
+ % nu.mf
+ % omega.mf
+ % omikron.mf
+ % others.mf
+ % phi.mf
+ % pi.mf
+ % psi.mf
+ % rho.mf
+ % serifs.mf
+ % sigma.mf
+ % sigmafin.mf
+ % tau.mf
+ % theta.mf
+ % upsilon.mf
+ % xi.mf
+ % zeta.mf
+ %
+ % and the derived files:
+ %
+ % lfb5.tfm
+ % lfb6.tfm
+ % lfb7.tfm
+ % lfb8.tfm
+ % lfb9.tfm
+ % lfb10.tfm
+ % lfb11.tfm
+ % lfb12.tfm
+ % lfbb5.tfm
+ % lfbb6.tfm
+ % lfbb7.tfm
+ % lfbb8.tfm
+ % lfbb9.tfm
+ % lfbb10.tfm
+ % lfbb11.tfm
+ % lfbb12.tfm
+ %
+ % lfb5.600pk
+ % lfb6.600pk
+ % lfb7.600pk
+ % lfb8.600pk
+ % lfb9.600pk
+ % lfb10.600pk
+ % lfb11.600pk
+ % lfb12.600pk
+ % lfbb5.600pk
+ % lfbb6.600pk
+ % lfbb7.600pk
+ % lfbb8.600pk
+ % lfbb9.600pk
+ % lfbb10.600pk
+ % lfbb11.600pk
+ % lfbb12.600pk
+ %
+
+width#:=6u#;
+extra#:=1.3letterspace#;
+define_pixels(width, extra);
+
+def gen_letter =
+ penpos2(thick, 0);
+ penpos3(thin, 90);
+ penpos4(medium, zetaangle+90);
+ penpos5(thick, zetaangle-180);
+ penpos6(thin, zetaangle-90);
+
+ penpos24(medthin, 0);
+ penpos25(thick, 90);
+ penpos26(thick, 90);
+ penpos27(thin, 0);
+ penpos28(thick, -90);
+
+ z1=z2+(4/3(z2l-z2) rotated -120);
+ y1=ascender;
+ x2l=0;
+ x3=1/2width;
+ y3=ascender-2u;
+ z4r=z5r=z6r;
+ x5l=width;
+ y6l=ascender-thin;
+
+ y26l=0; y25l=tiny;
+ y24=1/3x_height;
+ y27=1/2y28l;
+ y28r=-descender;
+ numeric centroid; centroid=2/3width;
+ x25=centroid-2.5u;
+ x26=centroid+thin;
+ x24l=0;
+ x27r=width;
+ x28=4/7width;
+ z29=z28+((z28l-z28) rotated 60);
+
+ fill z1..z2l{down}..z3l..z4l..z5l..z6l{dir (zetaangle-180)}
+ ..{down}z24l..z25l..z26l..z27l..{left}z28l..z29
+ ..z28r{right}..z27r..z26r..z25r..z24r{up}
+ ..{dir zetaangle}z6r..z5r..z4r..z3r..z2r..cycle;
+enddef;
+
+beginchar(zeta, width#+extra#, ascender#, descender#);
+gen_letter; penlabels(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);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/logic/milstd.mf b/Master/texmf-dist/fonts/source/public/logic/milstd.mf
new file mode 100644
index 00000000000..d2d9998ca49
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/logic/milstd.mf
@@ -0,0 +1,439 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% "milstd" font by Rick Simpson
+% (published in UKTeX 1988, issue 30 (23 Sept. 1988))
+
+% Contains a collection of special characters for
+% use in logic diagrams
+
+
+% To create the "milstd" font, use command:
+% makefont milstd
+
+% To use the characters in a PLAIN TeX document:
+% \font\milstd=milstd % define the font
+% . . .
+% {\milstd\char0} % typeset the character
+
+% To use the characters in a LaTeX document:
+% \newfont{\milstd}{milstd} % define the font
+% . . .
+% {\milstd\char0} % typeset the character
+
+% See "milstd.tex" for definitions to be used with TeX and LaTeX
+
+
+mode_setup;
+font_size 10pt#;
+
+picture pic;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Slanting line at 45-degree angle for marking
+% busses in logic diagrams.
+
+slwd#:=7pt#;
+define_pixels(slwd);
+
+beginchar(0,slwd#,slwd#,0); "Slanted line for buss widths";
+
+x1 = 0;
+y1 = 0;
+
+x2 = slwd;
+y2 = slwd;
+
+pickup pencircle scaled 1pt;
+draw z1--z2;
+
+labels (range 1 thru 2);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% AND gate, facing to the right
+%
+
+gateunit# := 6pt#;
+
+gatea# := 2 * gateunit#;
+gateb# := 4 * gateunit#;
+gatec# := 2.5 * gateunit#;
+gated# := 2 * gateunit#;
+
+define_pixels(gatea,gateb,gatec,gated);
+
+beginchar(1,gatec#+gated#,gateb#,0); "AND gate, right";
+
+x1 = x2 = 0;
+x3 = x5 = gatec;
+x4 = gatec + gated;
+
+y1 = y5 = 0;
+y2 = y3 = gateb;
+y4 = gatea;
+
+pickup pencircle scaled 1pt;
+draw z1--z2--z3{right}..z4..{left}z5--z1;
+
+pic := currentpicture;
+
+labels (range 1 thru 5);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% AND gate, facing down
+%
+
+beginchar(2,gateb#,gatec#+gated#,0); "AND gate, down";
+
+currentpicture := pic rotated 270 shifted (0,gatec+gated);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% AND gate, facing to the left
+%
+
+beginchar(3,gatec#+gated#,gateb#,0); "AND gate, right";
+
+currentpicture := pic rotated 180 shifted(gatec+gated,gateb);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% AND gate, facing up
+%
+
+beginchar(4,gateb#,gatec#+gated#,0); "AND gate, up";
+
+currentpicture := pic rotated 90 shifted(gateb,0);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NAND gate, facing to the right
+%
+
+gatee# := gateunit#;
+
+define_pixels(gatee);
+
+beginchar(5,gatec#+gated#,gateb#,0); "NAND gate, right";
+
+x1 = x2 = 0;
+x3 = x5 = gatec;
+x4 = gatec + gated;
+x6 = x4 + gatee/2;
+
+y1 = y5 = 0;
+y2 = y3 = gateb;
+y4 = gatea;
+y6 = y4;
+
+pickup pencircle scaled 1pt;
+draw z1--z2--z3{right}..z4..{left}z5--z1;
+draw fullcircle scaled gatee shifted(z6);
+
+pic := currentpicture;
+
+labels (range 1 thru 6);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NAND gate, facing down
+%
+
+beginchar(6,gateb#,gatec#+gated#,0); "NAND gate, down";
+
+currentpicture := pic rotated 270 shifted (0,gatec+gated);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NAND gate, facing to the left
+%
+
+beginchar(7,gatec#+gated#,gateb#,0); "NAND gate, right";
+
+currentpicture := pic rotated 180 shifted(gatec+gated,gateb);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NAND gate, facing up
+%
+
+beginchar(8,gateb#,gatec#+gated#,0); "NAND gate, up";
+
+currentpicture := pic rotated 90 shifted(gateb,0);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% OR gate, facing to the right
+%
+
+gatef# := .75 * gateunit#;
+gateg# := 1.5 * gateunit#;
+gateh# := 3 * gateunit#;
+
+define_pixels(gatef,gateg,gateh);
+
+beginchar(9,gateg#+gateh#,gateb#,0); "OR gate, right";
+
+x1 = x2 = 0;
+x3 = x5 = gateg;
+x4 = gateg + gateh;
+x6 = gatef;
+
+y1 = y5 = 0;
+y2 = y3 = gateb;
+y4 = y6 = gatea;
+
+pickup pencircle scaled 1pt;
+draw z1..z6..z2;
+draw z2--z3;
+draw z3{right}..{(1,-2)}z4;
+draw z4{-1,-2}..z5{left};
+draw z5--z1;
+
+pic := currentpicture;
+
+labels (range 1 thru 6);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% OR gate, facing down
+%
+
+beginchar(10,gateb#,gateg#+gateh#,0); "OR gate, down";
+
+currentpicture := pic rotated 270 shifted (0,gateg+gateh);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% OR gate, facing to the left
+%
+
+beginchar(11,gateg#+gateh#,gateb#,0); "OR gate, left";
+
+currentpicture := pic rotated 180 shifted(gateg+gateh,gateb);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% OR gate, facing up
+%
+
+beginchar(12,gateb#,gateg#+gateh#,0); "OR gate, up";
+
+currentpicture := pic rotated 90 shifted(gateb,0);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NOR gate, facing to the right
+%
+
+beginchar(13,gateg#+gateh#,gateb#,0); "NOR gate, right";
+
+x1 = x2 = 0;
+x3 = x5 = gateg;
+x4 = gateg + gateh;
+x6 = gatef;
+x7 = x4 + gatee/2;
+
+y1 = y5 = 0;
+y2 = y3 = gateb;
+y4 = y6 = gatea;
+y7 = y4;
+
+pickup pencircle scaled 1pt;
+draw z1..z6..z2;
+draw z2--z3;
+draw z3{right}..{(1,-2)}z4;
+draw z4{-1,-2}..z5{left};
+draw z5--z1;
+draw fullcircle scaled gatee shifted (z7);
+
+pic := currentpicture;
+
+labels (range 1 thru 7);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NOR gate, facing down
+%
+
+beginchar(14,gateb#,gateg#+gateh#,0); "NOR gate, down";
+
+currentpicture := pic rotated 270 shifted (0,gateg+gateh);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NOR gate, facing to the left
+%
+
+beginchar(15,gateg#+gateh#,gateb#,0); "NOR gate, left";
+
+currentpicture := pic rotated 180 shifted(gateg+gateh,gateb);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% NOR gate, facing up
+%
+
+beginchar(16,gateb#,gateg#+gateh#,0); "NOR gate, up";
+
+currentpicture := pic rotated 90 shifted(gateb,0);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Buffer, facing to the right
+%
+
+gatei# := 3 * gateunit#;
+gatej# := .866 * gatei#;
+gatek# := 1.5 * gateunit#;
+
+define_pixels(gatei,gatej,gatek);
+
+beginchar(17,gatej#,gatei#,0); "Buffer, right";
+
+x1 = x2 = 0;
+x3 = gatej;
+
+y1 = 0;
+y2 = gatei;
+y3 = gatek;
+
+pickup pencircle scaled 1pt;
+draw z1--z2--z3--z1;
+
+pic := currentpicture;
+
+labels (range 1 thru 3);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Buffer, facing down
+%
+
+beginchar(18,gatei#,gatej#,0); "Buffer, down";
+
+currentpicture := pic rotated 270 shifted (0,gatej);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Buffer, facing to the left
+%
+
+beginchar(19,gatej#,gatei#,0); "Buffer, left";
+
+currentpicture := pic rotated 180 shifted(gatej,gatei);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Buffer, facing up
+%
+
+beginchar(20,gatei#,gatej#,0); "Buffer, up";
+
+currentpicture := pic rotated 90 shifted(gatei,0);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Inverter, facing to the right
+%
+
+beginchar(21,gatej#,gatei#,0); "Inverter, right";
+
+x1 = x2 = 0;
+x3 = gatej;
+x4 = x3 + gatee/2;
+
+y1 = 0;
+y2 = gatei;
+y3 = y4 = gatek;
+
+
+pickup pencircle scaled 1pt;
+draw z1--z2--z3--z1;
+draw fullcircle scaled gatee shifted (z4);
+
+pic := currentpicture;
+
+labels (range 1 thru 4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Inverter, facing down
+%
+
+beginchar(22,gatei#,gatej#,0); "Inverter, down";
+
+currentpicture := pic rotated 270 shifted (0,gatej);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Inverter, facing to the left
+%
+
+beginchar(23,gatej#,gatei#,0); "Inverter, left";
+
+currentpicture := pic rotated 180 shifted(gatej,gatei);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Inverter, facing up
+%
+
+beginchar(24,gatei#,gatej#,0); "Inverter, up";
+
+currentpicture := pic rotated 90 shifted(gatei,0);
+
+endchar;
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/effects/effect.mf b/Master/texmf-dist/fonts/source/public/malayalam/effects/effect.mf
new file mode 100644
index 00000000000..fcf3fcbdc5d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/effects/effect.mf
@@ -0,0 +1 @@
+input shadow.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/effects/esoteric.mf b/Master/texmf-dist/fonts/source/public/malayalam/effects/esoteric.mf
new file mode 100644
index 00000000000..6df5d0645f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/effects/esoteric.mf
@@ -0,0 +1,27 @@
+% esoteric.mf --- esoteric shadow effect
+
+define_whole_pixels(ht);
+shshift := 0.06ht;
+svshift := -0.06ht;
+
+def pattern=
+ def endchar=
+ cullit;
+ picture NormalChar;
+ NormalChar=currentpicture;
+ clearit;
+ currentpicture:=NormalChar shifted (shshift, svshift);
+ picture Shadow;
+ Shadow:=currentpicture;
+ clearit;
+ currentpicture:=Shadow-NormalChar;
+ % The rest is from standard endchar
+ scantokens extra_endchar;
+ chardx:=w;
+ shipit;
+ if displaying>0: showit; fi
+ endgroup
+ enddef;
+enddef;
+
+% end of esoteric.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/effects/hstripes.mf b/Master/texmf-dist/fonts/source/public/malayalam/effects/hstripes.mf
new file mode 100644
index 00000000000..d42fa46d7e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/effects/hstripes.mf
@@ -0,0 +1,44 @@
+% hstripes.mf --- horizontal stripes effect
+
+define_whole_pixels(ht);
+topline := 1.6ht;
+botline := -1.0ht;
+
+stepsize# := .05ht#;
+verythin# := .01ht#;
+define_whole_pixels(stepsize, verythin);
+
+pickup penrazor scaled verythin rotated 90;
+MinPen := savepen;
+
+def pattern=
+ def endchar=
+ cullit;
+ picture NormalChar;
+ NormalChar=currentpicture;
+ clearit;
+ % fill (0,-desc-2vo)--(w+ho, -desc-2vo)--
+ % (w+ho, cap+2vo)--(0, cap+2vo)--cycle;
+ fill ((0-10uw,botline)--(w+10uw,botline)--(w+10uw,topline)--(0-10uw,topline)--cycle) shifted -(.5rm, 0);
+ picture BlackBox;
+ BlackBox:=currentpicture;
+ picture ReverseVideo;
+ ReverseVideo=BlackBox-NormalChar;
+ clearit;
+ pickup MinPen;
+ for f=botline step stepsize until topline:
+ draw ((0-9uw,f)--(w+9uw,f)) shifted -(.5rm, 0);
+ endfor;
+ picture StripeOverlay;
+ StripeOverlay=currentpicture;
+ currentpicture:=StripeOverlay-ReverseVideo
+ % The rest is from standard endchar
+ scantokens extra_endchar;
+ chardx:=w;
+ shipit;
+ if displaying>0: showit; fi
+ endgroup
+ enddef;
+enddef;
+
+% end of hstripes.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/effects/malayalam-reverse.mf b/Master/texmf-dist/fonts/source/public/malayalam/effects/malayalam-reverse.mf
new file mode 100644
index 00000000000..693decab52c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/effects/malayalam-reverse.mf
@@ -0,0 +1,34 @@
+% reverse.mf -- reverse video effect (does not work correctly
+% with characters that stick out of their box of the
+% left or right).
+
+define_whole_pixels(ht);
+
+topline := 1.6ht;
+botline := -1.0ht;
+
+def pattern=
+ def endchar=
+ cullit;
+ picture NormalChar;
+ NormalChar=currentpicture;
+ clearit;
+ % fill (0,-desc-2vo)--(w+ho, -desc-2vo)--
+ % (w+ho, cap+2vo)--(0, cap+2vo)--cycle;
+ fill ((0,botline)--(w,botline)--(w,topline)--
+ (0,topline)--cycle) shifted -(.5rm, 0);
+ picture BlackBox;
+ BlackBox:=currentpicture;
+ picture ReverseVideo;
+ ReverseVideo=BlackBox-NormalChar;
+ currentpicture:=ReverseVideo
+ % The rest is from standard endchar
+ scantokens extra_endchar;
+ chardx:=w;
+ shipit;
+ if displaying>0: showit; fi
+ endgroup
+ enddef;
+enddef;
+
+% end of reverse.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/effects/outline.mf b/Master/texmf-dist/fonts/source/public/malayalam/effects/outline.mf
new file mode 100644
index 00000000000..cedb93e9cfa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/effects/outline.mf
@@ -0,0 +1,20 @@
+% outline.mf --- outline effect
+
+def pattern=
+ def endchar=
+ cull currentpicture keeping (1, infinity);
+ picture v; v := currentpicture;
+ cull currentpicture keeping (1,1) withweight 3;
+ addto currentpicture also v - v shifted right
+ - v shifted left - v shifted up - v shifted down;
+ cull currentpicture keeping (1,4);
+ % rest from standard endchar
+ scantokens extra_endchar;
+ chardx:=w;
+ shipit;
+ if displaying>0: showit; fi
+ endgroup
+ enddef;
+enddef;
+
+% end of outline.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/effects/shadow.mf b/Master/texmf-dist/fonts/source/public/malayalam/effects/shadow.mf
new file mode 100644
index 00000000000..c6478bdb80b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/effects/shadow.mf
@@ -0,0 +1,37 @@
+% shadow.mf --- shadow effect
+
+define_whole_pixels(ht);
+shshift := 0.06ht;
+svshift := -0.06ht;
+
+def pattern=
+ def endchar=
+ cullit;
+ picture NormalChar;
+ NormalChar=currentpicture;
+ cull currentpicture keeping (1, infinity);
+ picture v; v := currentpicture;
+ cull currentpicture keeping (1,1) withweight 3;
+ addto currentpicture also v - v shifted right
+ - v shifted left - v shifted up - v shifted down;
+ cull currentpicture keeping (1,4);
+ picture OutlineChar;
+ OutlineChar=currentpicture;
+ clearit;
+ currentpicture:=NormalChar shifted (shshift, svshift);
+ picture Shadow;
+ Shadow:=currentpicture;
+ clearit;
+ currentpicture:=Shadow-NormalChar;
+ cullit;
+ currentpicture:=currentpicture+OutlineChar;
+ % The rest is from standard endchar
+ scantokens extra_endchar;
+ chardx:=w;
+ shipit;
+ if displaying>0: showit; fi
+ endgroup
+ enddef;
+enddef;
+
+% end of shadow.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/fnt_code.mf b/Master/texmf-dist/fonts/source/public/malayalam/fnt_code.mf
new file mode 100644
index 00000000000..83898eb6d94
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/fnt_code.mf
@@ -0,0 +1,290 @@
+% fnt_code.mf -- Alternative Font encoding of the fonts with Malayalam TeX
+% (c) 1993 Jeroen Hellingman
+% last edit: 28-JAN-1993
+
+if known font_codes_loaded: endinput; else: font_codes_loaded := 1; fi;
+
+% mmvowels.mf
+
+c_anusvara := ASCII "M"; % U+0D02 malayalam sign anusvara [2]
+c_visarga := ASCII "H"; % U+0D03 malayalam sign visarga [3]
+c_a := ASCII "a"; % U+0D05 malayalam letter a [5]
+c_aa := ASCII "A"; % U+0D06 malayalam letter aa [6]
+c_i := ASCII "i"; % U+0D07 malayalam letter i [7]
+c_u := ASCII "u"; % U+0D09 malayalam letter u [9]
+c_vocalic_r := ASCII "#"; % U+0D0B malayalam letter vocalic r [11]
+c_vocalic_rr := 129; % U+0D60 malayalam letter vocalic rr [96]
+c_vocalic_l := 130; % U+0D0C malayalam letter vocalic l [12]
+c_vocalic_ll := 131; % U+0D61 malayalam letter vocalic ll [97]
+c_e := ASCII "e"; % U+0D0E malayalam letter e [14]
+c_ee := ASCII "E"; % U+0D0F malayalam letter ee [15]
+c_o := ASCII "o"; % U+0D12 malayalam letter o [18]
+c_sign_aa := ASCII "*"; % U+0D3E malayalam vowel sign aa [62]
+c_sign_i := ASCII "I"; % U+0D3F malayalam vowel sign i [63]
+c_sign_ii := ASCII "}"; % U+0D40 malayalam vowel sign ii [64]
+c_sign_u := 132; % U+0D41 malayalam vowel sign u [65]
+c_sign_uu := 133; % U+0D42 malayalam vowel sign uu [66]
+c_ref_sign_u := ASCII "U"; % reformed script vowel sign u [72]
+c_ref_sign_uu := ASCII "$"; % reformed script vowel sign uu [73]
+c_sign_vocalic_r := 134; % U+0D43 malayalam vowel sign vocalic r [67]
+c_ref_sign_vocalic_r := ASCII "~"; % reformed script vowel sign vocalic r [75]
+c_sign_vocalic_rr := 135; % U+0D44 malayalam vowel sign vocalic rr [68]
+c_sign_e := ASCII "^"; % U+0D46 malayalam vowel sign e [70]
+c_sign_ee := ASCII "%"; % U+0D47 malayalam vowel sign ee [71]
+c_au_length_mark := ASCII "&"; % U+0D57 malayalam au length mark [87]
+c_virama := ASCII "+"; % U+0D4D malayalam sign virama [77]
+
+% mmcons.mf
+
+c_ka := ASCII "k"; % U+0D15 malayalam letter ka [21]
+c_kha := ASCII "K"; % U+0D16 malayalam letter kha [22]
+c_ga := ASCII "g"; % U+0D17 malayalam letter ga [23]
+c_gha := ASCII "G"; % U+0D18 malayalam letter gha [24]
+c_nga := ASCII "x"; % U+0D19 malayalam letter nga [25]
+c_ca := ASCII "c"; % U+0D1A malayalam letter ca [26]
+c_cha := ASCII "C"; % U+0D1B malayalam letter cha [27]
+c_ja := ASCII "j"; % U+0D1C malayalam letter ja [28]
+c_jha := ASCII "J"; % U+0D1D malayalam letter jha [29]
+c_nya := ASCII "X"; % U+0D1E malayalam letter nya [30]
+c_tta := ASCII "q"; % U+0D1F malayalam letter tta [31]
+c_ttha := ASCII "Q"; % U+0D20 malayalam letter ttha [32]
+c_dda := ASCII "w"; % U+0D21 malayalam letter dda [33]
+c_ddha := ASCII "W"; % U+0D22 malayalam letter ddha [34]
+c_nna := ASCII "N"; % U+0D23 malayalam letter nna [35]
+c_ta := ASCII "t"; % U+0D24 malayalam letter ta [36]
+c_tha := ASCII "T"; % U+0D25 malayalam letter tha [37]
+c_da := ASCII "d"; % U+0D26 malayalam letter da [38]
+c_dha := ASCII "D"; % U+0D27 malayalam letter dha [39]
+c_na := ASCII "n"; % U+0D28 malayalam letter na [40]
+c_pa := ASCII "p"; % U+0D2A malayalam letter pa [42]
+c_pha := ASCII "P"; % U+0D2B malayalam letter pha [43]
+c_ba := ASCII "b"; % U+0D2C malayalam letter ba [44]
+c_bha := ASCII "B"; % U+0D2D malayalam letter bha [45]
+c_ma := ASCII "m"; % U+0D2E malayalam letter ma [46]
+c_ya := ASCII "y"; % U+0D2F malayalam letter ya [47]
+c_ra := ASCII "r"; % U+0D30 malayalam letter ra [48]
+c_rra := ASCII "R"; % U+0D31 malayalam letter rra [49]
+c_la := ASCII "l"; % U+0D32 malayalam letter la [50]
+c_lla := ASCII "L"; % U+0D33 malayalam letter lla [51]
+c_llla := ASCII "Z"; % U+0D34 malayalam letter llla [52]
+c_va := ASCII "v"; % U+0D35 malayalam letter va [53]
+c_sha := ASCII "z"; % U+0D36 malayalam letter sha [54]
+c_ssa := ASCII "S"; % U+0D37 malayalam letter ssa [55]
+c_sa := ASCII "s"; % U+0D38 malayalam letter sa [56]
+c_ha := ASCII "h"; % U+0D39 malayalam letter ha [57]
+
+% mmscons.mf
+
+c_g_ga := 1; % g+ga [240]
+c_nn_nna := 2; % nn+nna [241]
+c_p_pa := 3; % p+pa [242]
+c_rr_rra := 4; % rr+rra [243]
+c_sh_sha := 5; % sh+sha [244]
+c_s_sa := 6; % s+sa [245]
+c_dd_dda := 7; % dd+dda [246]
+c_c_ca := 8; % c+ca [247]
+c_b_ba := 9; % b+ba [248]
+c_y_ya := 10; % y+ya [249]
+c_v_va := 11; % v+va [250]
+
+% mmsec.mf
+
+c_sec_ka := 136; % secondary ka [112]
+c_sec_k_ka := 137; % secondary k+ka [115]
+c_sec_ya := ASCII "Y"; % secondary ya [83]
+c_sec_ya_os := 138; % secondary ya (old style) [92]
+c_sec_ya_deep := 139; % secondary ya (old style, deep version) [120]
+c_sec_ya_deeper := 140; % secondary ya (old style, deeper version) [121]
+c_sec_ya_deepest := 141; % secondary ya (old style, deepest version) [122]
+c_reepham := 142; % reepham [76]
+c_sec_ra_narrow := 143; % secondary ra (narrow version) [123]
+c_sec_ra := 144; % secondary ra [84]
+c_sec_ra_wide := 145; % secondary ra (wide version) [124]
+c_sec_ra_wider := 146; % secondary ra (wider version) [125]
+c_sec_ra_even_wider := 147; % secondary ra (even wider version) [126]
+c_sec_ra_widest := 148; % secondary ra (widest version) [127]
+c_ref_sec_ra := ASCII "{"; % reformed script secondary ra [74]
+c_sec_la := ASCII "|"; % secondary la [85]
+c_sec_va := ASCII "V"; % secondary va [86]
+c_sec_va_sub := 149; % secondary va (subscribed version) [93]
+c_sec_tha := ASCII "f"; % secondary tha [88]
+c_sub_triangle := ASCII "F"; % subscribed triangle for double letters [89]
+c_sec_ssa := 150; % secondary ssa [90]
+
+% mmcillu.mf
+
+c_nn_virama := ASCII "1"; % nn+virama [78]
+c_n_virama := ASCII "2"; % n+virama [79]
+c_r_virama := ASCII "3"; % r+virama [80]
+c_l_virama := ASCII "4"; % l+virama [81]
+c_ll_virama := ASCII "5"; % ll+virama [82]
+c_var_ll_virama := 151; % variant ll+virama [91]
+c_k_virama := 152; % k+virama [94]
+c_y_virama := 153; % y+virama [95]
+
+% mmconj.mf
+
+c_k_ka := 12; % k+ka [160]
+c_k_ta := 13; % k+ta [176]
+c_k_ssa := 14; % k+ssa [251]
+c_g_gha := 154; % g+gha [218]
+c_g_da := 15; % g+da [177]
+c_g_d_dha := 155; % g+d+dha [178]
+c_g_na := 156; % g+na [179]
+c_g_ma := 157; % g+ma [180]
+c_ng_nga := 16; % ng+nga [161]
+c_ng_ka := 17; % ng+ka [181]
+c_var_c_ca := 158; % variant c+ca [225]
+c_var_c_cha := 159; % variant c+cha [226]
+c_j_ja := 18; % j+ja [162]
+c_j_jha := 160; % j+jha [227]
+c_j_nya := 161; % j+nya [184]
+c_ny_ca := 162; % ny+ca [185]
+c_ny_cha := 163; % ny+cha [228]
+c_ny_nya := 19; % ny+nya [163]
+c_ny_ja := 164; % ny+ja [186]
+c_tt_tta := 20; % tt+tta [164]
+c_nn_tta := 21; % nn+tta [187]
+c_nn_dda := 165; % nn+dda [188]
+c_nn_ddha := 166; % nn+ddha [217]
+c_nn_ka := 167; % nn+ka [189]
+c_t_ta := 22; % t+ta [165]
+c_t_na := 23; % t+na [191]
+c_t_bha := 168; % t+bha [229]
+c_t_ma := 169; % t+ma [190]
+c_t_sa := 170; % t+sa [221]
+c_d_da := 24; % d+da [166]
+c_d_dha := 25; % d+dha [192]
+c_n_ta := 26; % n+ta [194]
+c_n_da := 27; % n+da [195]
+c_n_dha := 171; % n+dha [219]
+c_n_na := 28; % n+na [167]
+c_n_ma := 172; % n+ma [193]
+c_bh_dha := 173; % bh+dha [196]
+c_m_pa := 174; % m+pa [220]
+c_sh_ca := 175; % sh+ca [197]
+c_h_na := 176; % h+na [199]
+c_h_ma := 177; % h+ma [198]
+
+% mmrconj.mf
+
+c_k_ra := 200; % k+ra [200]
+c_k_k_ra := 213; % k+k+ra [213]
+c_g_ra := 201; % g+ra [201]
+c_ch_ra := 202; % ch+ra [202]
+c_j_ra := 203; % j+ra [203]
+c_tt_ra := 204; % tt+ra [204]
+c_t_t_ra := 214; % t+t+ra [214]
+c_t_ra := 205; % t+ra [205]
+c_d_ra := 206; % d+ra [206]
+c_dh_ra := 207; % dh+ra [207]
+c_n_t_ra := 215; % n+t+ra [215]
+c_n_d_ra := 216; % n+d+ra [216]
+c_n_ra := 208; % n+ra [208]
+c_bh_ra := 209; % bh+ra [209]
+c_sh_ra := 210; % sh+ra [210]
+c_s_ra := 211; % s+ra [211]
+c_h_ra := 212; % h+ra [212]
+
+% mmcvconj.mf
+
+c_ku := 128; % ku [128]
+c_kuu := 139; % kuu [139]
+c_var_kuu := 224; % old variant kuu [224]
+c_sec_ku := 178; % secondary ku [113]
+c_sec_kuu := 179; % secondary kuu [114]
+c_kr := 150; % kr [150]
+c_k_ku := 168; % k+ku [168]
+c_sec_k_ku := 180; % secondary k+ku [116]
+c_k_kuu := 169; % k+kuu [169]
+c_sec_k_kuu := 181; % secondary k+kuu [117]
+c_gu := 129; % gu [129]
+c_guu := 140; % guu [140]
+c_gr := 151; % gr [151]
+c_ng_ku := 182; % ng+ku [182]
+c_ng_kuu := 183; % ng+kuu [183]
+c_chu := 130; % chu [130]
+c_chuu := 141; % chuu [141]
+c_ju := 131; % ju [131]
+c_juu := 142; % juu [142]
+c_j_ju := 170; % j+ju [170]
+c_j_juu := 171; % j+juu [171]
+c_nnu := 132; % nnu [132]
+c_nnuu := 143; % nnuu [143]
+c_tu := 133; % tu [133]
+c_tuu := 144; % tuu [144]
+c_tr := 152; % tr [152]
+c_t_tu := 172; % t+tu [172]
+c_t_tuu := 173; % t+tuu [173]
+c_dr := 153; % dr [153]
+c_dhr := 154; % dhr [154]
+c_nu := 134; % nu [134]
+c_nuu := 145; % nuu [145]
+c_nr := 155; % nr [155]
+c_n_tu := 222; % n+tu [222]
+c_n_tuu := 223; % n+tuu [223]
+c_n_nu := 174; % n+nu [174]
+c_n_nuu := 175; % n+nuu [175]
+c_bhu := 135; % bhu [135]
+c_bhuu := 146; % bhuu [146]
+c_bhr := 156; % bhr [156]
+c_ru := 136; % ru [136]
+c_ruu := 147; % ruu [147]
+c_shu := 137; % shu [137]
+c_shuu := 148; % shuu [148]
+c_shr := 157; % shr [157]
+c_sr := 158; % sr [158]
+c_hu := 138; % hu [138]
+c_huu := 149; % huu [149]
+c_hr := 159; % hr [159]
+
+% mmnums.mf
+
+c_mal_quarter :=0; % malayalam sign for one quarter [101]
+c_mal_zero := 0; % U+0D66 malayalam digit zero [102]
+c_mal_one := 0; % U+0D67 malayalam digit one [103]
+c_mal_two := 0; % U+0D68 malayalam digit two [104]
+c_mal_three := 0; % U+0D69 malayalam digit three [105]
+c_mal_four := 0; % U+0D6A malayalam digit four [106]
+c_mal_five := 0; % U+0D6B malayalam digit five [107]
+c_mal_six := 0; % U+0D6C malayalam digit six [108]
+c_mal_seven := 0; % U+0D6D malayalam digit seven [109]
+c_mal_eight := 0; % U+0D6E malayalam digit eight [110]
+c_mal_nine := 0; % U+0D6F malayalam digit nine [111]
+
+% mmlnums.mf
+
+c_zero := 230; % U+0030 digit zero [230]
+c_one := 231; % U+0031 digit one [231]
+c_two := 232; % U+0032 digit two [232]
+c_three := 233; % U+0033 digit three [233]
+c_four := 234; % U+0034 digit four [234]
+c_five := 235; % U+0035 digit five [235]
+c_six := 236; % U+0036 digit six [236]
+c_seven := 237; % U+0037 digit seven [237]
+c_eight := 238; % U+0038 digit eight [238]
+c_nine := 239; % U+0039 digit nine [239]
+
+% mmpunct.mf
+
+c_hyphen := ASCII "-"; % U+2010 hyphen [69]
+c_en_dash := ASCII "_"; % U+2013 en-dash [98]
+c_em_dash := ASCII "="; % U+2014 em-dash [99]
+c_comma := ASCII ","; % U+002C comma [58]
+c_period := ASCII "."; % U+002E period [59]
+c_semicolon := ASCII ";"; % U+003B semicolon [60]
+c_colon := ASCII ":"; % U+003A colon [61]
+c_open_quote := ASCII "`"; % U+2018 single turned comma quotation mark [19]
+c_close_quote := 39; % U+2019 single comma quotation mark [20]
+c_open_paren := ASCII "("; % U+0028 opening parenthesis [16]
+c_close_paren := ASCII ")"; % U+0029 closing parenthesis [17]
+c_slash := ASCII "/"; % U+002F slash [4]
+c_open_bracket := ASCII "["; % U+005B opening square bracket [8]
+c_close_bracket := ASCII "]"; % U+005D closing square bracket [10]
+c_question_mark := ASCII "?"; % U+003F question mark [41]
+c_exlamation_mark := ASCII "!"; % U+0021 exclamation mark [13]
+c_dotted_circle := ASCII "@"; % U+25CC dotted circle [0]
+c_white_square := 0; % U+25A1 white square [1]
+c_star := 255; % ornamental star [255]
+
+% end of fnt_code.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mm.bat b/Master/texmf-dist/fonts/source/public/malayalam/mm.bat
new file mode 100644
index 00000000000..ed1f54ad3b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mm.bat
@@ -0,0 +1,66 @@
+mf &plain "\mode:=hplaser; mag:=1; input mm6"
+mf &plain "\mode:=hplaser; mag:=1; input mm6s"
+mf &plain "\mode:=hplaser; mag:=1; input mm8"
+mf &plain "\mode:=hplaser; mag:=1; input mm8s"
+mf &plain "\mode:=hplaser; mag:=1; input mm10"
+mf &plain "\mode:=hplaser; mag:=1; input mm10s"
+mf &plain "\mode:=hplaser; mag:=1; input mmb10"
+mf &plain "\mode:=hplaser; mag:=1; input mmb10s"
+mf &plain "\mode:=hplaser; mag:=1; input mmsl10"
+mf &plain "\mode:=hplaser; mag:=1; input mmsl10s"
+mf &plain "\mode:=hplaser; mag:=1; input mmc10"
+mf &plain "\mode:=hplaser; mag:=1; input mmc10s"
+mf &plain "\mode:=hplaser; mag:=1; input mm12"
+mf &plain "\mode:=hplaser; mag:=1; input mm12s"
+mf &plain "\mode:=hplaser; mag:=1; input mmb12"
+mf &plain "\mode:=hplaser; mag:=1; input mmb12s"
+mf &plain "\mode:=hplaser; mag:=1; input mmsl12"
+mf &plain "\mode:=hplaser; mag:=1; input mmsl12s"
+mf &plain "\mode:=hplaser; mag:=1; input mmc12"
+mf &plain "\mode:=hplaser; mag:=1; input mmc12s"
+mf &plain "\mode:=hplaser; mag:=1; input mmcb12"
+mf &plain "\mode:=hplaser; mag:=1; input mmcb12s"
+mf &plain "\mode:=hplaser; mag:=1; input mmcsl12"
+mf &plain "\mode:=hplaser; mag:=1; input mmcsl12s"
+mf &plain "\mode:=hplaser; mag:=1; input mm17"
+mf &plain "\mode:=hplaser; mag:=1; input mm17s"
+mf &plain "\mode:=hplaser; mag:=1; input mmc17"
+mf &plain "\mode:=hplaser; mag:=1; input mmc17s"
+
+mf &plain "\mode:=hplaser; mag:=1; input mmbig"
+mf &plain "\mode:=hplaser; mag:=1; input mmexpa12"
+mf &plain "\mode:=hplaser; mag:=1; input mmexpb12"
+
+gftopk mm6.300
+gftopk mm6s.300
+gftopk mm8.300
+gftopk mm8s.300
+gftopk mm10.300
+gftopk mm10s.300
+gftopk mmb10.300
+gftopk mmb10s.300
+gftopk mmsl10.300
+gftopk mmsl10s.300
+gftopk mmc10.300
+gftopk mmc10s.300
+gftopk mm12.300
+gftopk mm12s.300
+gftopk mmb12.300
+gftopk mmb12s.300
+gftopk mmsl12.300
+gftopk mmsl12s.300
+gftopk mmc12.300
+gftopk mmc12s.300
+gftopk mmcb12.300
+gftopk mmcb12s.300
+gftopk mmcsl12.300
+gftopk mmcsl12s.300
+gftopk mm17.300
+gftopk mm17s.300
+gftopk mmc17.300
+gftopk mmc17s.300
+
+gftopk mmbig.300
+gftopk mmexpa12.300
+gftopk mmexpb12.300
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mm.fts b/Master/texmf-dist/fonts/source/public/malayalam/mm.fts
new file mode 100644
index 00000000000..ee33840e6b2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mm.fts
@@ -0,0 +1,57 @@
+%
+% Malayalam fonts
+%
+mm6 in magnification 1000
+mm6s in magnification 1000
+%
+mm8 in magnification 1000
+mm8s in magnification 1000
+%
+mm10 in magnification 1000
+mm10s in magnification 1000
+mmb10 in magnification 1000
+mmb10s in magnification 1000
+mmsl10 in magnification 1000
+mmsl10s in magnification 1000
+mmc10 in magnification 1000
+mmc10s in magnification 1000
+mmcsl10 in magnification 1000
+mmcsl10s in magnification 1000
+mmcb10 in magnification 1000
+mmcb10s in magnification 1000
+%
+mm12 in magnification 1000
+mm12s in magnification 1000
+mmsl12 in magnification 1000
+mmsl12s in magnification 1000
+mmb12 in magnification 1000
+mmb12s in magnification 1000
+mmc12 in magnification 1000
+mmc12s in magnification 1000
+mmcsl12 in magnification 1000
+mmcsl12s in magnification 1000
+mmcb12 in magnification 1000
+mmcb12s in magnification 1000
+%
+mm17 in magnification 1000
+mm17s in magnification 1000
+mmc17 in magnification 1000
+mmc17s in magnification 1000
+mmb17 in magnification 1000
+mmb17s in magnification 1000
+mmcb17 in magnification 1000
+mmcb17s in magnification 1000
+%
+% Headline fonts
+%
+mmbig in magnification 1000
+mmbigo in magnification 1000
+mmbig in magnification 1728
+%
+% Experimental fonts
+%
+mmexpa12 in magnification 1000
+mmexpb12 in magnification 1000
+mmexpc12 in magnification 1000
+%
+% end of mm.fts
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mm.job b/Master/texmf-dist/fonts/source/public/malayalam/mm.job
new file mode 100644
index 00000000000..a64636b14b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mm.job
@@ -0,0 +1,17 @@
+% emTeX mfjob file to make Malayalam fonts:
+{
+base=plain;
+mode=hplaser[300];
+output=tfm[c:\tex\fonts\@f] pk[c:\tex\pixel\dpi@Rr\@f];
+{
+fonts= mm6 mm6s mm8 mm8s
+ mm10 mm10s mmsl10 mmsl10s mmb10 mmb10s
+ mmc10 mmc10s mmcsl10 mmcsl10s mmcb10 mmcb10s
+ mm12 mm12s mmsl12 mmsl12s mmb12 mmb12s
+ mmc12 mmc12s mmcsl12 mmcsl12s mmcb12 mmcb12s
+ mm17 mm17s mmc17 mmc17s mmb17 mmb17s mmcb17 mmcb17s
+ mmbig mmbigo
+ mmexpa12 mmexpb12 mmexpc12;
+mags=s0;
+}
+}
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmcillu.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmcillu.mf
new file mode 100644
index 00000000000..b5d2464b30a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmcillu.mf
@@ -0,0 +1,120 @@
+% mmcillu.mf -- malayalam cillu letters
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+beginchar(c_nn_virama,50uw#+rm#,28uh#,0); "nn+virama";
+ pickup frame_pen;
+ % from "malayalam letter nga"
+ % first bow
+ front_eye(1,2,3,4,5);
+ z5=(0, 10uh);
+ z6=(9uw, 20uh);
+ z7=(17uw, 10uh);
+ z8=(x7, 0);
+ % second bow
+ z9=(25uw, 20uh);
+ z10=(33uw, 10uh);
+ z11=(x10, 0);
+ % third bow
+ z12=(41uw, 20uh);
+ z13=(50uw, 10uh);
+ virama_tail(13,14,15,16,17,18,19);
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10{down}---z11;
+ draw z11---z10{up}..z12{right}..z13{down}..z14{left}..
+ z15{up}..z16..z17{up}..z18{left}..z19;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+beginchar(c_n_virama,32uw#+rm#,28uh#,0); "n+virama";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6,7,8');
+ virama_tail(7,8,9,10,11,12,13);
+ draw z1..z2{up}..z3{right}..{down}z4---z5;
+ draw z5---z4{up}..z6{right}..z7{down}..z8{left}..z9{up}..
+ z10..z11{up}..z12{left}..z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(c_r_virama,20uw#+rm#,28uh#,0); "r+virama";
+ pickup frame_pen;
+ z1=(4uw, 0);
+ z2=(0, 10uh);
+ z3=(10uw, 20uh);
+ z4=(20uw, 10uh);
+ virama_tail(4,5,6,7,8,9,10);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..z7..
+ z8{up}..z9{left}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(c_l_virama,34uw#+rm#,28uh#,0); "l+virama";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7',8',9');
+ z7=(.5[x6, x8], 20uh);
+ z8=(x8'+4uw, 8uh);
+ virama_tail(8,9,10,11,12,13,14);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}..z9{left}..z10{up}..z11..z12{up}..
+ z13{left}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_ll_virama,28uw#+rm#,20uh#,0); "ll+virama";
+ pickup frame_pen;
+ z1=(3uw, 10uh); % not used
+ z2=(0, 8uh);
+ z3=(6uw, 0);
+ z4=(13uw, 6uh);
+ z5=(22uw, 10uh);
+ z6=(28uw, 5uh);
+ z7=(x5, 0);
+ z8=(5uw, 20uh);
+ draw z2{down}..z3{right}..z5{right}..z6{down}..z7{left}..z4..z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_var_ll_virama,34uw#+rm#,28uh#,0); "variant ll+virama";
+ pickup frame_pen;
+ x2=0uw;
+ letter_ga(1,2,3,4,5',6',7');
+ z5=(.5[x4, x6], 20uh);
+ z6=(x6'+2uw, 8uh);
+ virama_tail(6,7,8,9,10,11,12);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7{left}..
+ z8{up}..z9..z10{up}..z11{left}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_k_virama,36uw#+rm#,28uh#,0); "k+virama";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8',9',10',11');
+ z8=z8'+(4uw, 0);
+ z9=z9'+(4uw, 0);
+ virama_tail(9,10,11,12,13,14,15);
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11{up}..z12..z13{up}..z14{left}..z15;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_y_virama,32uw#+rm#,28uh#,0); "y+virama";
+ pickup frame_pen;
+ x5=0uw;
+ letter_ya(1,2,3,4,5,6,7,8,9,10);
+ z11=(x10-3uw, 24uh);
+ z12=(x10+1uw, 28uh);
+ z13=(x10+6uw, 24uh);
+ draw z1..z2{right}..z3{down}..z4{left}..z5{up}..z6{right}..
+ z7{(1,-8)}..z8{right}..z9{up}..z10..z11{up}..z12{right}..z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+%%%%% end of cillu.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmcoding.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmcoding.mf
new file mode 100644
index 00000000000..c63403bd62f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmcoding.mf
@@ -0,0 +1,290 @@
+% mmcoding.mf -- Font encoding of the fonts with Malayalam TeX
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+if known font_codes_loaded: endinput; else: font_codes_loaded := 1; fi;
+
+% mmvowels.mf
+
+c_anusvara := 2; % U+0D02 malayalam sign anusvara [2]
+c_visarga := 3; % U+0D03 malayalam sign visarga [3]
+c_a := 5; % U+0D05 malayalam letter a [5]
+c_aa := 6; % U+0D06 malayalam letter aa [6]
+c_i := 7; % U+0D07 malayalam letter i [7]
+c_u := 9; % U+0D09 malayalam letter u [9]
+c_vocalic_r := 11; % U+0D0B malayalam letter vocalic r [11]
+c_vocalic_rr := 96; % U+0D60 malayalam letter vocalic rr [96]
+c_vocalic_l := 12; % U+0D0C malayalam letter vocalic l [12]
+c_vocalic_ll := 97; % U+0D61 malayalam letter vocalic ll [97]
+c_e := 14; % U+0D0E malayalam letter e [14]
+c_ee := 15; % U+0D0F malayalam letter ee [15]
+c_o := 18; % U+0D12 malayalam letter o [18]
+c_sign_aa := 62; % U+0D3E malayalam vowel sign aa [62]
+c_sign_i := 63; % U+0D3F malayalam vowel sign i [63]
+c_sign_ii := 64; % U+0D40 malayalam vowel sign ii [64]
+c_sign_u := 65; % U+0D41 malayalam vowel sign u [65]
+c_sign_uu := 66; % U+0D42 malayalam vowel sign uu [66]
+c_ref_sign_u := 72; % reformed script vowel sign u [72]
+c_ref_sign_uu := 73; % reformed script vowel sign uu [73]
+c_sign_vocalic_r := 67; % U+0D43 malayalam vowel sign vocalic r [67]
+c_ref_sign_vocalic_r := 75; % reformed script vowel sign vocalic r [75]
+c_sign_vocalic_rr := 68; % U+0D44 malayalam vowel sign vocalic rr [68]
+c_sign_e := 70; % U+0D46 malayalam vowel sign e [70]
+c_sign_ee := 71; % U+0D47 malayalam vowel sign ee [71]
+c_au_length_mark := 87; % U+0D57 malayalam au length mark [87]
+c_virama := 77; % U+0D4D malayalam sign virama [77]
+
+% mmcons.mf
+
+c_ka := 21; % U+0D15 malayalam letter ka [21]
+c_kha := 22; % U+0D16 malayalam letter kha [22]
+c_ga := 23; % U+0D17 malayalam letter ga [23]
+c_gha := 24; % U+0D18 malayalam letter gha [24]
+c_nga := 25; % U+0D19 malayalam letter nga [25]
+c_ca := 26; % U+0D1A malayalam letter ca [26]
+c_cha := 27; % U+0D1B malayalam letter cha [27]
+c_ja := 28; % U+0D1C malayalam letter ja [28]
+c_jha := 29; % U+0D1D malayalam letter jha [29]
+c_nya := 30; % U+0D1E malayalam letter nya [30]
+c_tta := 31; % U+0D1F malayalam letter tta [31]
+c_ttha := 32; % U+0D20 malayalam letter ttha [32]
+c_dda := 33; % U+0D21 malayalam letter dda [33]
+c_ddha := 34; % U+0D22 malayalam letter ddha [34]
+c_nna := 35; % U+0D23 malayalam letter nna [35]
+c_ta := 36; % U+0D24 malayalam letter ta [36]
+c_tha := 37; % U+0D25 malayalam letter tha [37]
+c_da := 38; % U+0D26 malayalam letter da [38]
+c_dha := 39; % U+0D27 malayalam letter dha [39]
+c_na := 40; % U+0D28 malayalam letter na [40]
+c_pa := 42; % U+0D2A malayalam letter pa [42]
+c_pha := 43; % U+0D2B malayalam letter pha [43]
+c_ba := 44; % U+0D2C malayalam letter ba [44]
+c_bha := 45; % U+0D2D malayalam letter bha [45]
+c_ma := 46; % U+0D2E malayalam letter ma [46]
+c_ya := 47; % U+0D2F malayalam letter ya [47]
+c_ra := 48; % U+0D30 malayalam letter ra [48]
+c_rra := 49; % U+0D31 malayalam letter rra [49]
+c_la := 50; % U+0D32 malayalam letter la [50]
+c_lla := 51; % U+0D33 malayalam letter lla [51]
+c_llla := 52; % U+0D34 malayalam letter llla [52]
+c_va := 53; % U+0D35 malayalam letter va [53]
+c_sha := 54; % U+0D36 malayalam letter sha [54]
+c_ssa := 55; % U+0D37 malayalam letter ssa [55]
+c_sa := 56; % U+0D38 malayalam letter sa [56]
+c_ha := 57; % U+0D39 malayalam letter ha [57]
+
+% mmscons.mf
+
+c_g_ga := 240; % g+ga [240]
+c_nn_nna := 241; % nn+nna [241]
+c_p_pa := 242; % p+pa [242]
+c_rr_rra := 243; % rr+rra [243]
+c_sh_sha := 244; % sh+sha [244]
+c_s_sa := 245; % s+sa [245]
+c_dd_dda := 246; % dd+dda [246]
+c_c_ca := 247; % c+ca [247]
+c_b_ba := 248; % b+ba [248]
+c_y_ya := 249; % y+ya [249]
+c_v_va := 250; % v+va [250]
+
+% mmsec.mf
+
+c_sec_ka := 112; % secondary ka [112]
+c_sec_k_ka := 115; % secondary k+ka [115]
+c_sec_ya := 83; % secondary ya [83]
+c_sec_ya_os := 92; % secondary ya (old style) [92]
+c_sec_ya_deep := 120; % secondary ya (old style, deep version) [120]
+c_sec_ya_deeper := 121; % secondary ya (old style, deeper version) [121]
+c_sec_ya_deepest := 122; % secondary ya (old style, deepest version) [122]
+c_reepham := 76; % reepham [76]
+c_sec_ra_narrow := 123; % secondary ra (narrow version) [123]
+c_sec_ra := 84; % secondary ra [84]
+c_sec_ra_wide := 124; % secondary ra (wide version) [124]
+c_sec_ra_wider := 125; % secondary ra (wider version) [125]
+c_sec_ra_even_wider := 126; % secondary ra (even wider version) [126]
+c_sec_ra_widest :=127; % secondary ra (widest version) [127]
+c_ref_sec_ra := 74; % reformed script secondary ra [74]
+c_sec_la := 85; % secondary la [85]
+c_sec_va := 86; % secondary va [86]
+c_sec_va_sub := 93; % secondary va (subscribed version) [93]
+c_sec_tha := 88; % secondary tha [88]
+c_sub_triangle := 89; % subscribed triangle for double letters [89]
+c_sec_ssa := 90; % secondary ssa [90]
+
+% mmcillu.mf
+
+c_nn_virama := 78; % nn+virama [78]
+c_n_virama := 79; % n+virama [79]
+c_r_virama := 80; % r+virama [80]
+c_l_virama := 81; % l+virama [81]
+c_ll_virama := 82; % ll+virama [82]
+c_var_ll_virama := 91; % variant ll+virama [91]
+c_k_virama := 94; % k+virama [94]
+c_y_virama := 95; % y+virama [95]
+
+% mmconj.mf
+
+c_k_ka := 160; % k+ka [160]
+c_k_ta := 176; % k+ta [176]
+c_k_ssa := 251; % k+ssa [251]
+c_g_gha := 218; % g+gha [218]
+c_g_da := 177; % g+da [177]
+c_g_d_dha := 178; % g+d+dha [178]
+c_g_na := 179; % g+na [179]
+c_g_ma := 180; % g+ma [180]
+c_ng_nga := 161; % ng+nga [161]
+c_ng_ka := 181; % ng+ka [181]
+c_var_c_ca := 225; % variant c+ca [225]
+c_var_c_cha := 226; % variant c+cha [226]
+c_j_ja := 162; % j+ja [162]
+c_j_jha := 227; % j+jha [227]
+c_j_nya := 184; % j+nya [184]
+c_ny_ca := 185; % ny+ca [185]
+c_ny_cha := 228; % ny+cha [228]
+c_ny_nya := 163; % ny+nya [163]
+c_ny_ja := 186; % ny+ja [186]
+c_tt_tta := 164; % tt+tta [164]
+c_nn_tta := 187; % nn+tta [187]
+c_nn_dda := 188; % nn+dda [188]
+c_nn_ddha := 217; % nn+ddha [217]
+c_nn_ka := 189; % nn+ka [189]
+c_t_ta := 165; % t+ta [165]
+c_t_na := 191; % t+na [191]
+c_t_bha := 229; % t+bha [229]
+c_t_ma := 190; % t+ma [190]
+c_t_sa := 221; % t+sa [221]
+c_d_da := 166; % d+da [166]
+c_d_dha := 192; % d+dha [192]
+c_n_ta := 194; % n+ta [194]
+c_n_da := 195; % n+da [195]
+c_n_dha := 219; % n+dha [219]
+c_n_na := 167; % n+na [167]
+c_n_ma := 193; % n+ma [193]
+c_bh_dha := 196; % bh+dha [196]
+c_m_pa := 220; % m+pa [220]
+c_sh_ca := 197; % sh+ca [197]
+c_h_na := 199; % h+na [199]
+c_h_ma := 198; % h+ma [198]
+
+% mmrconj.mf
+
+c_k_ra := 200; % k+ra [200]
+c_k_k_ra := 213; % k+k+ra [213]
+c_g_ra := 201; % g+ra [201]
+c_ch_ra := 202; % ch+ra [202]
+c_j_ra := 203; % j+ra [203]
+c_tt_ra := 204; % tt+ra [204]
+c_t_t_ra := 214; % t+t+ra [214]
+c_t_ra := 205; % t+ra [205]
+c_d_ra := 206; % d+ra [206]
+c_dh_ra := 207; % dh+ra [207]
+c_n_t_ra := 215; % n+t+ra [215]
+c_n_d_ra := 216; % n+d+ra [216]
+c_n_ra := 208; % n+ra [208]
+c_bh_ra := 209; % bh+ra [209]
+c_sh_ra := 210; % sh+ra [210]
+c_s_ra := 211; % s+ra [211]
+c_h_ra := 212; % h+ra [212]
+
+% mmcvconj.mf
+
+c_ku := 128; % ku [128]
+c_kuu := 139; % kuu [139]
+c_var_kuu := 224; % old variant kuu [224]
+c_sec_ku := 113; % secondary ku [113]
+c_sec_kuu := 114; % secondary kuu [114]
+c_kr := 150; % kr [150]
+c_k_ku := 168; % k+ku [168]
+c_sec_k_ku := 116; % secondary k+ku [116]
+c_k_kuu := 169; % k+kuu [169]
+c_sec_k_kuu := 117; % secondary k+kuu [117]
+c_gu := 129; % gu [129]
+c_guu := 140; % guu [140]
+c_gr := 151; % gr [151]
+c_ng_ku := 182; % ng+ku [182]
+c_ng_kuu := 183; % ng+kuu [183]
+c_chu := 130; % chu [130]
+c_chuu := 141; % chuu [141]
+c_ju := 131; % ju [131]
+c_juu := 142; % juu [142]
+c_j_ju := 170; % j+ju [170]
+c_j_juu := 171; % j+juu [171]
+c_nnu := 132; % nnu [132]
+c_nnuu := 143; % nnuu [143]
+c_tu := 133; % tu [133]
+c_tuu := 144; % tuu [144]
+c_tr := 152; % tr [152]
+c_t_tu := 172; % t+tu [172]
+c_t_tuu := 173; % t+tuu [173]
+c_dr := 153; % dr [153]
+c_dhr := 154; % dhr [154]
+c_nu := 134; % nu [134]
+c_nuu := 145; % nuu [145]
+c_nr := 155; % nr [155]
+c_n_tu := 222; % n+tu [222]
+c_n_tuu := 223; % n+tuu [223]
+c_n_nu := 174; % n+nu [174]
+c_n_nuu := 175; % n+nuu [175]
+c_bhu := 135; % bhu [135]
+c_bhuu := 146; % bhuu [146]
+c_bhr := 156; % bhr [156]
+c_ru := 136; % ru [136]
+c_ruu := 147; % ruu [147]
+c_shu := 137; % shu [137]
+c_shuu := 148; % shuu [148]
+c_shr := 157; % shr [157]
+c_sr := 158; % sr [158]
+c_hu := 138; % hu [138]
+c_huu := 149; % huu [149]
+c_hr := 159; % hr [159]
+
+% mmnums.mf
+
+c_mal_quarter :=101; % malayalam sign for one quarter [101]
+c_mal_zero := 102; % U+0D66 malayalam digit zero [102]
+c_mal_one := 103; % U+0D67 malayalam digit one [103]
+c_mal_two := 104; % U+0D68 malayalam digit two [104]
+c_mal_three := 105; % U+0D69 malayalam digit three [105]
+c_mal_four := 106; % U+0D6A malayalam digit four [106]
+c_mal_five := 107; % U+0D6B malayalam digit five [107]
+c_mal_six := 108; % U+0D6C malayalam digit six [108]
+c_mal_seven := 109; % U+0D6D malayalam digit seven [109]
+c_mal_eight := 110; % U+0D6E malayalam digit eight [110]
+c_mal_nine := 111; % U+0D6F malayalam digit nine [111]
+
+% mmlnums.mf
+
+c_zero := 230; % U+0030 digit zero [230]
+c_one := 231; % U+0031 digit one [231]
+c_two := 232; % U+0032 digit two [232]
+c_three := 233; % U+0033 digit three [233]
+c_four := 234; % U+0034 digit four [234]
+c_five := 235; % U+0035 digit five [235]
+c_six := 236; % U+0036 digit six [236]
+c_seven := 237; % U+0037 digit seven [237]
+c_eight := 238; % U+0038 digit eight [238]
+c_nine := 239; % U+0039 digit nine [239]
+
+% mmpunct.mf
+
+c_hyphen := 69; % U+2010 hyphen [69]
+c_en_dash := 98; % U+2013 en-dash [98]
+c_em_dash := 99; % U+2014 em-dash [99]
+c_comma := 58; % U+002C comma [58]
+c_period := 59; % U+002E period [59]
+c_semicolon := 60; % U+003B semicolon [60]
+c_colon := 61; % U+003A colon [61]
+c_open_quote := 19; % U+2018 single turned comma quotation mark [19]
+c_close_quote := 20; % U+2019 single comma quotation mark [20]
+c_open_paren := 16; % U+0028 opening parenthesis [16]
+c_close_paren := 17; % U+0029 closing parenthesis [17]
+c_slash := 4; % U+002F slash [4]
+c_open_bracket := 8; % U+005B opening square bracket [8]
+c_close_bracket := 10; % U+005D closing square bracket [10]
+c_question_mark := 41; % U+003F question mark [41]
+c_exlamation_mark := 13; % U+0021 exclamation mark [13]
+c_dotted_circle := 0; % U+25CC dotted circle [0]
+c_white_square := 1; % U+25A1 white square [1]
+c_star := 255; % ornamental star [255]
+
+% end of mmcoding.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmconj.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmconj.mf
new file mode 100644
index 00000000000..efcbb2b6eab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmconj.mf
@@ -0,0 +1,752 @@
+% mmconj.mf -- malayalam conjuncts
+% (c) 1993 Jeroen Hellingman
+% last edit: 22-JAN-1993
+
+%%%%% ka related glyphs
+
+if unknown subfont:
+beginchar(c_k_ka,47uw#+rm#,20uh#,0); "k+ka";
+ pickup frame_pen;
+ x6 = 0;
+ letter_k_ka(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14);
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8..
+ z9{down}..z10{left}..z11{up}..z12{right}..z13{down}..z14;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_k_ta,60uw#+rm#,20uh#,0); "k+ta";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8',9',10',11');
+ z8=(x8'-2uw, y8');
+ z9=(x9'-2uw, y9');
+ z10=(x9, 0);
+ x12=x9;
+ letter_ta(11,12,13,14,15,16,17,18,19);
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}---z10;
+ draw z10---z12{up}..z13{right}..z14{down}..z15{left}..z16{up}..
+ z17{right}..z18{down}..z19;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_k_ssa,57uw#+rm#,20uh#,0); "k+ssa";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8,9',10',11');
+ z9=(x9', .5[y8,y10]);
+ z10=(x10', y12);
+ z11=(x11', y12);
+ z12=(57uw, .5uh);
+ end_ssa(12,13,14,15,16,17,18);
+ draw z11--z12;
+ draw_end_ssa(12,13,14,15,16,17,18);
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left};
+ penlabels(range 1 thru 18, 4');
+endchar;
+fi;
+
+%%%%%% ga related glyphs
+
+beginchar(c_g_gha,58uw#+rm#,20uh#,0); "g+gha";
+ pickup frame_pen;
+ path ga_path;
+ % little ga
+ x2=0;
+ letter_ga(1,2,3,4,5,6,7); % size: 20uh x 32uw
+ ga_path = z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7;
+ ga_path := ga_path scaled 12/20 shifted (0, 8uh);
+ z8 = z7 scaled 12/20 shifted (0, 8uh);
+ z9 = (x8+3uw, y8+.5uh);
+ x11=44uw;
+ letter_la(10,11,12,13,14,15);
+
+ draw ga_path;
+ draw z8..z9---z11;
+ draw z11{up}..z12{left}..z10{down}---z13--z14--z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_g_da,33uw#+rm#,20uh#,0); "g+da";
+ pickup frame_pen;
+ x2=0uw;
+ letter_ga(1,2,3,4,5,6',7');
+ letter_da(3',4',5,6,7,8,9,10,11);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..
+ z7{left}---z8;
+ draw z7{right}..z9{down}..z10{left}..z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_g_d_dha,57uw#+rm#,20uh#,0); "g+d+dha";
+ pickup frame_pen;
+ x2a=0;
+ letter_ga(1a,2a,3a,4a,5a,6a,7a);
+ x5a=x3;
+ letter_da(1,2,3,4',5',6',7',8',9');
+ z4=(x4', .5[y3,y6]);
+ z5=(x5', 12uh);
+ z6=(x6', y5);
+ z7=(x7', .5[y6,y8]);
+ z8=(x8', 4uh);
+ z9a=(x9 + 2uw, y8);
+ z9=(x9', .5[y8,y10]);
+ z9b=(x9a, y10);
+ z10=(.5[x9,x11], 0);
+ x11=26uw+15uw;
+ letter_dha(10',11',12',11,12,13,14,15);
+
+ draw z1a..z2a{down}..z3a{right}..z4a{up}..z3{right}...z4{down}...
+ {left}z5---z6;
+ draw z6---z5{right}...z7{down}...z8{left}...
+ z9a{left}...z9{down}...z9b{right}...
+ z10{right}..z11{up}---z12;
+ draw z11{down}..z13{right}..z14{up}..z15;
+ penlabels(1a,2a,3a,4a,5a,3,4,5,6,7,8,9,9a,9b,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_g_na,48uw#+rm#,20uh#,0); "g+na";
+ pickup frame_pen;
+ x2=0uw;
+ letter_ga(1,2,3,4,5,6',7');
+ letter_na(3',4',5,6,7,8,9,10);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}---z7;
+ draw z6{up}..z8{right}..z9{down}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_g_ma,36uw#+rm#,20uh#,0); "g+ma";
+ pickup frame_pen;
+ x2=0uw;
+ letter_ga(1,2,3,4,5',6',7');
+ x5=x4;
+ letter_ma(5,6,7,8,9,10,11,12);
+
+ draw z1..z2{down}..z3{right}..z4{up};
+ draw_letter_ma(5,6,7,8,9,10,11,12);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+%%%%%% nga related glyphs
+
+beginchar(c_ng_nga,50uw#+rm#,ht#,0); "ng+nga";
+ pickup frame_pen;
+ % first bow
+ front_eye(1,2,3,4,5);
+ z5=(0, 10uh);
+ z6=(12.5uw, 20uh);
+ z7=(x8+5uw, 8uh);
+ z8=(21uw, 0);
+ % second bow
+ z9=(x8-5uw, 8uh);
+ z10=(25.5uw, 20uh);
+ z11=(x17-17uw, 10uh);
+ z12=(x11, 0);
+ % three-like shape, from "nga"
+ z13=(x17-8uw, 20uh);
+ z14=(x17-1uw, 15uh);
+ z15=(x17-6uw, 10uh);
+ z16=(x17-10uw, y15);
+ z17=(50uw, 5/20h);
+ z18=(x17-6uw, 0);
+ z19=(x17-10uw, 1uh);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}..z8{left}..
+ z9{up}..z10{right}..z11{down}---z12;
+ draw z12---z11{up}..z13{right}..z14{down}..z15{left}---z16;
+ draw z16---z15{right}..z17{down}..z18{left}..z19;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+beginchar(c_ng_ka,32uw#+rm#,20uh#,0); "ng+ka";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8,9,10,11);
+
+ % top left eye for "nga"
+ z19=(11uw, 16uh);
+ z20=(5uw, y2);
+ z21=(0.5uw, 15.5uh);
+ draw z19..z20{left}..z21{down}..z7{right};
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,19,20,21);
+endchar;
+
+%%%%%% ca related glyphs
+
+if unknown newfont:
+beginchar(c_var_c_ca,49uw#+rm#,20uh#,0); "variant c+ca";
+ pickup frame_pen;
+ % first bow
+ z10=(0, .5uh);
+ z11=(4uw, 6uh);
+ z12=(4uw, 7uh);
+ z13=(10.5uw, 14uh);
+ x1=17uw;
+ letter_ca(1,2,3,4,5,6,7,8);
+ draw z11..z12{up}..z13{right}..z2{down};
+ draw z2{up}..z3{right}..z4{down}..z5{left};
+ draw z10--z7--z8;
+ penlabels(1,2,3,4,5,6,7,8,10,11,12,13);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_var_c_cha,59uw#+rm#,20uh#,0); "variant c+cha";
+ pickup frame_pen;
+ % first bow
+ z20=(0, .5uh);
+ z21=(4uw, 6uh);
+ z22=(4uw, 7uh);
+ z23=(10.5uw, 14uh);
+ x1=17uw;
+ letter_cha(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+ draw z21..z22{up}..z23{right}..z2{down};
+ draw z2{up}..z3{right}..z4{down}..z5{left};
+ draw z20--z7..z8;
+ draw z8..z9{up}..z10{right}..z11{down}..z12{left}..z13{up}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,20,21,22,23);
+endchar;
+fi;
+
+%%%%%% ja related glyphs
+
+beginchar(c_j_ja,58uw#+rm#,20uh#,6uh#); "j+ja";
+ pickup frame_pen;
+ x1=0;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14',15',16',17',18');
+ z14=(24uw, 1uh);
+ x1a=32uw;
+ letter_ja(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z1a{up};
+
+ draw_eye(1a,2a,3a,4a);
+ draw z1a..z5a{up}..z6a{right}..{down}z7a---z8a;
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a..z12a{down}..
+ z13a{right}..z14a..{right}z16a;
+ draw_eye(15a,16a,17a,18a);
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+endchar;
+
+beginchar(c_j_jha,81uw#+rm#,20uh#,6uh#); "j+jha";
+ pickup frame_pen;
+ x1=0;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+ x18'=x17-2uw;
+ letter_jha(17',18',19,20,21,22,23,24,25,26,27,28,29,30);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..{right}z16;
+ draw_eye(15,16,17,18);
+
+ draw z10..z19{right}..z20{down}..z21{left}..z22{up}..z23{right}..
+ z24{down}..z25{right}..z26{up}---z27;
+ draw z26{down}..z28{right}..z29{up}..z30;
+
+ penlabels(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);
+endchar;
+
+beginchar(c_j_nya,77uw#+rm#,20uh#,6uh#); "j+nya";
+ pickup frame_pen;
+ x1 = 0uw;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14',15,16,17,18);
+ z14=(25uw, 3uh);
+
+ x1a=32uw;
+ letter_nya(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a);
+
+ draw_eye(1a,2a,3a,4a);
+ draw z4a{left}..z5a{up}..z6a{right}..z7a{down}---z8a;
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a{left}..z12a{up}..
+ z13a{right}..z14a{down}..z15a;
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..{right}z2a;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+%%%%%% nya related glyphs
+
+beginchar(c_ny_ca,60uw#+rm#,20uh#,0); "ny+ca";
+ % link eye is almost same as in "sh+ca"
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9',10',11');
+ z9=z9'+(2uw, 0);
+ z10=z10'+(2uw, 1uh);
+ z12=(.5[x10,x13], 5uh);
+ z13=z10-(8uw, 0);
+ z14=(x13+9uw, 20uh);
+ z15=(x14+9uw, 10uh);
+ x17=24uw;
+ letter_ca(12',13',14',15',16,17,18,19);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16{left};
+ draw z17--z18 & z18--z19;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+beginchar(c_ny_cha,72uw#+rm#,20uh#,0); "ny+cha";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9',10',11');
+ z9=z9'+(2uw, 0);
+ z10=z10'+(2uw, 1uh);
+ z12=(.5[x10,x13], 5uh);
+ z13=z10-(8uw, 0);
+ z14=(x13+9uw, 20uh);
+ z15=(x14+9uw, 10uh);
+ x17=26uw;
+ letter_cha(12',13',14',15',16',17,18,19,20,21,22,23,24,25);
+ z16=(x16'-2uw, y16');
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16{left};
+ draw z17--z18..z19;
+ draw z19..z20{up}..z21{right}..z22{down}..z23{left}..z24{up}..z25;
+ penlabels(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);
+endchar;
+
+beginchar(c_ny_nya,72uw#+rm#,ht#,0); "ny+nya";
+ pickup frame_pen;
+ x5 = 0;
+ letter_nya(1,2,3,4,5,6,7,8,9,10,11,12,13',14',15');
+ z13=z13' - (1uw, 0);
+ z14=z14' - (2uw, 0);
+ z15=(x14, .5uh);
+ x15a = x14 - 2uw;
+ letter_ta(14a,15a,16',17,18,19,20,21,22);
+ z16=z16' + (1uw, 0);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11{left}..z12{up}..
+ z13{right}..z14{down}--z15;
+ draw z14{up}..z16{right}..z17{down}..z18{left}..z19{up}..
+ z20{right}..z21{down}..z22;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22);
+endchar;
+
+beginchar(c_ny_ja,52uw#+rm#,20uh#,6uh#); "ny+ja";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9,10',11');
+ z10=z9+(4uw, -2uh);
+ x1a=26uw;
+ letter_ja(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10;
+
+ draw_eye(1a,2a,3a,4a);
+ draw z1a..z5a{up}..z6a{right}..{down}z7a---z8a;
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a..z12a{down}..
+ z13a{right}..z14a..{right}z16a;
+ draw_eye(15a,16a,17a,18a);
+
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+endchar;
+
+%%%%%% tta related glyphs
+
+beginchar(c_tt_tta,18uw#+rm#,20uh#,10uh#); "tt+tta";
+ wd := 18uw;
+ pickup frame_pen;
+ z1=(18uw, h-2uh);
+ z2=(1/2wd, h);
+ z3=(0, 15uh);
+ z4=(1/2wd,10uh);
+ z5=(wd, 5uh);
+ z6=(1/2wd, 0);
+ z7=(0uw, 0);
+ % different from tta
+ z8=(wd, -5uh);
+ z9=(1/2wd, -10uh);
+ z10=(0, -8uh);
+
+ draw z1..z2{left}..z3{down}..z4{4,1}..z5{down}..z6{left}..z7;
+ draw z6{right}..z8{down}..z9{left}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+%%%%%% nna related glyphs
+
+beginchar(c_nn_tta,52uw#+rm#,20uh#,0); "nn+tta";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9,10,11a);
+ z11=(x10, 0);
+ x11'=x11;
+ letter_bha(10',11',12,13,14,15,16,17,18,19,20,21);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}---z11;
+ draw z10{up}..z12{right}..z13{down}..z14..z15..z16{down}..z17..
+ z18..z19{down}..z20{left}..z21;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21);
+endchar;
+
+beginchar(c_nn_dda,76uw#+rm#,20uh#,0); "nn+dda";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9,10,11a);
+ z11=(x10, 0);
+ x11'=x11;
+ letter_dda(10',11',12,13,14,15,16,17,18,19);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}---z11;
+ draw z10{up}..z12{right}..z13{down}..z14{right}..z15{up}---z16;
+ draw z15{down}..z17{right}..z18{up}..z19;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+beginchar(c_nn_ddha,76uw#+rm#,20uh#,0); "nn+ddha";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9,10,11a);
+ z11=(x10, 0);
+ x11'=x11;
+ letter_dda(10',11',12,13,14,15,16,17,18,19');
+ upside_down_end_loop(18,19,20,21);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}---z11;
+ draw z10{up}..z12{right}..z13{down}..z14{right}..z15{up}---z16;
+ draw z15{down}..z17{right}..z18{up}..z19{left}..z20{down}..z21;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22);
+endchar;
+
+beginchar(c_nn_ka,54uw#+rm#,20uh#,0); "nn+ka";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9,10',11');
+ x10=x10';
+ letter_ka(10,11,12,13,13',14,15,16,17,18,19,20);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down};
+ draw_eye(10,11,12,13);
+ draw z13'..z14{left}..z15{up}..z16{right}---z17{right}..
+ z18{down}..z19{left}..z20;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,13',14,15,16,17,18,19,20);
+endchar;
+
+%%%%%% ta related glyphs
+
+beginchar(c_t_ta,56uw#+rm#,ht#,0); "t+ta";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7',8',9');
+ z7=z7'-(1uw, 0);
+ z8=z8'-(2uw, 0);
+ z9=(x8,.5uh);
+ x9a = x8-2uw;
+ letter_ta(8a,9a,10',11,12,13,14,15,16);
+ z10=z10' + (1uw, 0);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}---z9;
+ draw z9---z8{up}..z10{right}..z11{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+beginchar(c_t_na,44uw#+rm#,20uh#,0); "t+na";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7a,8',9');
+ z7=(.5[x7a,x7b], y7a);
+ x8=x8'-2uw;
+ letter_na(5',6',7b,8,9,10,11,12);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}--z9;
+ draw z8{up}..z10{right}..z11{down}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_t_bha,50uw#+rm#,ht#,0); "t+bha";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7,8,9);
+ x12=x8;
+ letter_bha(11',12,13,14,15,16,17,18,19,20,21,22);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}..z9;
+ draw z12{up}..z13{right}..z14{down}..z15..z16..z17{down}..
+ z18..z19..z20{down}..z21{left}..z22;
+ penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22);
+endchar;
+
+beginchar(c_t_ma,48uw#+rm#,ht#,0); "t+ma";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7',8',9');
+ z7=(x7'-1uw, y7');
+ x8=x8'-2uw;
+ letter_ma(8,9,10,11,12,13,14,15);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z12{down};
+ draw_letter_ma(8,9,10,11,12,13,14,15);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_t_sa,56uw#+rm#,20uh#,0); "t+sa";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7a,8',9');
+ z7=(.5[x7a,x7b], y7a);
+ x8=x8'-2uw;
+ letter_sa(5',6',7b,8,9,10,11,12,13,14);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}--z9;
+ draw z8{up}..z10{right}..z11{down}..z12{right}..z13{up}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+%%%%%% da related glyphs
+
+beginchar(c_d_da,18uw#+rm#,20uh#,10uh#); "d+da";
+ pickup frame_pen;
+ x2=0uw;
+ letter_da(1,2,3,4,5,6,7,8,9');
+ z9=(7uw, 0uh);
+ z10=(18uw, -5uh);
+ z11=(12uw, -10uh);
+ z12=(0uw, -8uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}..{left}z5---z6;
+ draw z6---z5{right}..z7{down}..z8{left}..z9;
+ draw z8{right}..z10{down}..z11{left}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_d_dha,42uw#+rm#,20uh#,0); "d+dha";
+ pickup frame_pen;
+ x2=0;
+ letter_da(1,2,3,4',5',6',7',8',9');
+ z4=(x4', .5[y3,y6]);
+ z5=(x5', 12uh);
+ z6=(x6', y5);
+ z7=(x7', .5[y6,y8]);
+ z8=(x8', 4uh);
+ z9a=(x9 + 2uw, y8);
+ z9=(x9', .5[y8,y10]);
+ z9b=(x9a, y10);
+ z10=(.5[x9,x11], 0);
+ x11=26uw;
+ letter_dha(10',11',12',11,12,13,14,15);
+
+ draw z1..z2{up}..z3{right}...z4{down}...{left}z5---z6;
+ draw z6---z5{right}...z7{down}...z8{left}...
+ z9a{left}...z9{down}...z9b{right}...
+ z10{right}..z11{up}---z12;
+ draw z11{down}..z13{right}..z14{up}..z15;
+ penlabels(1,2,3,4,5,6,7,8,9,9a,9b,10,11,12,13,14,15);
+endchar;
+
+%%%%%% dha related glyphs
+
+%%%%%% na related glyphs
+
+beginchar(c_n_ta,44uw#+rm#,20uh#,0); "n+ta";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6a,7',8');
+ z6=(.5[x6a,x6b], y6a);
+ x5'=x5-2uw;
+ letter_ta(4',5',6b,7,8,9,10,11,12);
+
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z4{up}..z6{right}..z7{down}..z8{left}..z9{up}..z10{right}..
+ z11{down}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_n_da,33uw#+rm#,20uh#,0); "n+da";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6,7',8');
+ letter_da(4',5',6,7,8,9,10,11,12);
+
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z4{up}..z6{right}..z7{down}..z8{left}---z9;
+ draw z8{right}..z10{down}..z11{left}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_n_dha,60uw#+rm#,20uh#,0); "n+dha";
+ pickup frame_pen;
+ x2=0;
+ letter_sa(1,2,3,4,5,6,7,8',9',10');
+ x7' = x7 - 2uw;
+ z8 = (.5[x7,x9], 0);
+ letter_dha(6',7',8a,9,10,11,12,13);
+
+ draw z1..z2{up}..z3{right}..{down}z4---z5;
+ draw z4{up}..z6{right}..z7{down}..z8{right}..z9{up}---z10;
+ draw z9{down}..z11{right}..z12{up}..z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(c_n_na,48uw#+rm#,20uh#,0); "n+na";
+ pickup frame_pen;
+ x2=0;
+ letter_n_na(1,2,3,4,5,6,7,8,9,10,11);
+
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z5---z4{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_n_ma,36uw#+rm#,20uh#,0); "n+ma";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5',6',7',8');
+ x5=x4;
+ letter_ma(5,6,7,8,9,10,11,12);
+
+ draw z1..z2{up}..z3{right}..z4{down};
+ draw_letter_ma(5,6,7,8,9,10,11,12);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+%%%%%% bha related glyphs
+
+beginchar(c_bh_dha,44uw#+rm#,20uh#,0); "bh+dha";
+ pickup frame_pen;
+ z1=(2uw, 0);
+ z2=(0, 10uh);
+ z3=(11uw, 20uh);
+ z4=(19uw, .5[y3,y5]);
+ z5=(x4-2uw, y4-2uh);
+ z6=(x7+2uw, y7+2uh);
+ z7=(6uw, 12.5uh);
+ z8=(x7+2uw, y7-2uh);
+ z9=(x10-2uw, y10+2uh);
+ z10=(20uw, 7.5uh);
+ z11=(14uw, 4.5uh);
+ z12=(6uw, .5[y11,y13]);
+ z13=(.5[x12,x14], 0);
+ x14=28uw;
+ letter_dha(13',14',15',14,15,16,17,18);
+
+ draw z1..z2{up}..z3{right}...z4{down}..z5..z6..z7{down}..
+ z8..z9..z10{down}..z11{left}..z12{down}...z13{right}..
+ z14{up}---z15;
+ draw z14{down}..z16{right}..z17{up}..z18;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+%%%%%% ma related glyphs
+
+beginchar(c_m_pa,46uw#+rm#,20uh#,0); "m+pa";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6,7,8);
+ z9=z8+(3uw, .5uh);
+ z10=(x7+14uw, y9);
+ z11=(x10, 19.5uh);
+ draw_letter_na(1,2,3,4,5,6,7,8);
+ draw z8..z9---z10 & z10--z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+%%%%%% sha related glyphs
+
+beginchar(c_sh_ca,58uw#+rm#,ht#,0); "sh+ca";
+ % link eye is almost same as in "ny+ca"
+ pickup frame_pen;
+ x2=0;
+ letter_sha(1,2,3,4,5,6',7',8',9');
+ z6=z6'+(0, 1uh);
+ z10=(.5[x6,x11], 5uh);
+ z11=z6-(8uw, 0);
+ z12=(x11+9uw, 20uh);
+ z13=(x12+9uw, 10uh);
+ x15=22uw;
+ letter_ca(10',11',12',13',14,15,16,17);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..
+ z10{left}..z11{up}..z12{right}..z13{down}..z14{left};
+ draw z15--z16 & z16--z17;
+ penlabels(1,2,3,4,5,6,10,11,12,13,14,15,16,17);
+endchar;
+
+%%%%%% sa related glyphs
+
+%%%%%% ha related glyphs
+
+beginchar(c_h_na,56uw#+rm#,20uh#,0); "h+na";
+ pickup frame_pen;
+ % bow
+ z1=(4uw, 0);
+ small_bow(1,2,3,4,5);
+ z6=(x5+3uw, .5uh);
+ z7'=(x7-3uw, .5uh);
+ x8=24uw;
+ letter_na(7,8,9,10,11,12,13,14);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7'..z7;
+ draw_letter_na(7,8,9,10,11,12,13,14);
+ penlabels(1,2,3,4,5,6,7,7',8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_h_ma,44uw#+rm#,20uh#,0); "h+ma";
+ pickup frame_pen;
+ % bow
+ z1=(4uw, 0);
+ small_bow(1,2,3,4,5);
+ z6=(x5+3uw, .5uh);
+ x7=24uw;
+ letter_ma(7,8,9,10,11,12,13,14);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7;
+ draw_letter_ma(7,8,9,10,11,12,13,14);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+%%%%%% end of mmconj.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmcons.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmcons.mf
new file mode 100644
index 00000000000..742f46b0bff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmcons.mf
@@ -0,0 +1,443 @@
+% mmcons.mf -- malayalam consonants
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+if unknown subfont:
+beginchar(c_ka,32uw#+rm#,20uh#,0); "U+0D15 malayalam letter ka";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8,9,10,11);
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11);
+endchar;
+fi;
+
+beginchar(c_kha,34uw#+rm#,ht#,0); "U+0D16 malayalam letter kha";
+ pickup frame_pen;
+ front_eye(1,2,3,4,5);
+ % bow
+ z5=(0, 1/2h);
+ z6=(10uw, h);
+ z7=(20uw, 1/2h);
+ z8=(16uw, 0);
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}..z8;
+ % end hook
+ z9=(x8+3uw, 1/40h);
+ z10=(34uw, y9);
+ z11=(x10, 19.5uh);
+ draw z8..z9---z10 & z10---z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_ga,32uw#+rm#,20uh#,0); "U+0D17 malayalam letter ga";
+ pickup frame_pen;
+ x2=0uw;
+ letter_ga(1,2,3,4,5,6,7);
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(c_gha,51uw#+rm#,20uh#,0); "U+0D18 malayalam letter gha";
+ pickup frame_pen;
+ % first little bow (diameter = 12)
+ z1=(3uw, 8uh);
+ z2=(0, 14uh);
+ z3=(6uw, 20uh);
+ z4=(12uw, 14uh);
+ z5=(9uw, 8uh);
+ z6=(x5+3uw, y5+.5uh);
+ x8=37uw;
+ letter_la(7,8,9,10,11,12);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z8;
+ draw z8{up}..z9{left}..z7{down}---z10--z11--z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_nga,34uw#+rm#,ht#,0); "U+0D19 malayalam letter nga";
+ pickup frame_pen;
+ % from "malayalam letter i" (z1..z9)
+ % eye
+ z1=(1uw, 6/20h);
+ z2=(6uw, 12/20h);
+ z3=(11uw, y1);
+ z4=(x2, 0);
+ % first bow
+ z5=(0, 1/2h);
+ z6=(9uw, h);
+ z7=(17uw, 1/2h);
+ z8=(x7, 0);
+ % different from "malayalam letter i"
+ % second bow
+ z9=(26uw, h);
+ z10=(33uw, 15/20h);
+ % three-like shape
+ z11=(28uw, 10/20h);
+ z12=(24uw, y11);
+ z13=(34uw, 5/20h);
+ z14=(28uw, 0);
+ z15=(24uw, 1/20h);
+ draw z1{up}..z2{right}..z3{down}..z4{left}..cycle;
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}..{left}z11---z12;
+ draw z12--z11{right}..z13{down}..z14{left}..z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_ca,36uw#+rm#,20uh#,0); "U+0D1A malayalam letter ca";
+ pickup frame_pen;
+ x6=0;
+ letter_ca(1,2,3,4,5,6,7,8);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left};
+ draw z6--z7--z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_cha,46uw#+rm#,20uh#,0); "U+0D1B malayalam letter cha";
+ pickup frame_pen;
+ x6=0;
+ letter_cha(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left};
+ draw z6--z7..z8;
+ draw z8..z9{up}..z10{right}..z11{down}..z12{left}..z13{up}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_ja,26uw#+rm#,20uh#,6uh#); "U+0D1C malayalam letter ja";
+ pickup frame_pen;
+ x1 = 0uw;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..{right}z16;
+ draw_eye(15,16,17,18);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+beginchar(c_jha,58uw#+rm#,ht#,0); "U+0D1D malayalam letter jha";
+ pickup frame_pen;
+ x2=0uw;
+ letter_jha(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..z7{right}..
+ z8{down}..z9{right}..z10{up}---z11;
+ draw z10{down}..z12{right}..z13{up}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_nya,46uw#+rm#,ht#,0); "U+0D1E malayalam letter nya";
+ pickup frame_pen;
+ x5 = 0;
+ letter_nya(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11{left}..z12{up}..
+ z13{right}..z14{down}..z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_tta,18uw#+rm#,20uh#,0); "U+0D1F malayalam letter tta";
+ pickup frame_pen;
+ x3=0;
+ letter_tta(1,2,3,4,5,6,7);
+ draw z1..z2{left}..z3{down}..z4{4,1}..z5{down}..z6{left}..z7;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(c_ttha,20uw#+rm#,20uh#,0); "U+0D20 malayalam letter ttha";
+ pickup frame_pen;
+ z1=(0,10uh);
+ eye(1,2,3,4)(20uw,20uh);
+ draw_eye(1,2,3,4);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(c_dda,44uw#+rm#,20uh#,0); "U+0D21 malayalam letter dda";
+ pickup frame_pen;
+ x2=0;
+ letter_dda(1,2,3,4,5,6,7,8,9,10);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{right}..{up}z6---z7;
+ draw z7---z6{down}..z8{right}..z9{up}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(c_ddha,44uw#+rm#,20uh#,0); "U+0D22 malayalam letter ddha";
+ pickup frame_pen;
+ x2=0;
+ letter_dda(1,2,3,4,5,6,7,8,9,10');
+ upside_down_end_loop(9,10,11,12);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{right}..{up}z6---z7;
+ draw z7---z6{down}..z8{right}..z9{up}..z10{left}..z11{down}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_nna,50uw#+rm#,ht#,0); "U+0D23 malayalam letter nna";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9',10',11');
+ z9=(25uw, 20uh);
+ z10=(33uw, 10uh);
+ z11=(x10, 0);
+ % third bow
+ z12=(41uw, 20uh);
+ z13=(50uw, 10uh);
+ z14=(46uw, 0);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10{down}---z11;
+ draw z11---z10{up}..z12{right}..z13{down}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_ta,30uw#+rm#,ht#,0); "U+0D24 malayalam letter ta";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7,8,9);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}..z9;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(c_tha,32uw#+rm#,ht#,0); "U+0D25 malayalam letter tha";
+ pickup frame_pen;
+ z1=(0, 19.5uh);
+ z2=(0, 1/40h);
+ z3=(32uw, y2);
+ end_tha_bow(3,4,5,6,7);
+ draw z1---z2 & z2--z3;
+ draw_end_tha_bow(3,4,5,6,7);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(c_da,18uw#+rm#,20uh#,0); "U+0D26 malayalam letter da";
+ pickup frame_pen;
+ x2=0;
+ letter_da(1,2,3,4,5,6,7,8,9);
+ draw z1..z2{up}..z3{right}..z4{down}..{left}z5---z6;
+ draw z6---z5{right}..z7{down}..z8{left}..z9;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(c_dha,32uw#+rm#,20uh#,0); "U+0D27 malayalam letter dha";
+ pickup frame_pen;
+ x2=0;
+ letter_dha(1,2,3,4,5,6,7,8);
+ draw z1..z2{down}..z3{right}..{up}z4---z5;
+ draw z5---z4{down}..z6{right}..z7{up}..z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_na,32uw#+rm#,20uh#,0); "U+0D28 malayalam letter na";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6,7,8);
+ draw_letter_na(1,2,3,4,5,6,7,8);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_pa,36uw#+rm#,ht#,0); "U+0D2A malayalam letter pa";
+ pickup frame_pen;
+ % bow
+ z1=(4uw, 0);
+ small_bow(1,2,3,4,5);
+ % end hook
+ z6=(x5+3uw, 1/40h);
+ z7=(36uw, y6);
+ z8=(x7, 19.5uh);
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7 & z7---z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_pha,40uw#+rm#,ht#,0); "U+0D2B malayalam letter pha";
+ pickup frame_pen;
+ % bow
+ z1=(4uw, 0);
+ small_bow(1,2,3,4,5);
+ % end hook
+ z6=(x5+3uw, 1/40h);
+ z7=(40uw, y6);
+ end_tha_bow(7,8,9,10,11);
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7;
+ draw_end_tha_bow(7,8,9,10,11);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_ba,46uw#+rm#,20uh#,0); "U+0D2C malayalam letter ba";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9,10,11);
+ % end hook
+ z12=(x11+3uw, 0.5uh);
+ z13=(46uw, y12);
+ z14=(x13, 19.5uh);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}..z11;
+ draw z11..z12---z13---z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_bha,20uw#+rm#,20uh#,0); "U+0D2D malayalam letter bha";
+ pickup frame_pen;
+ x2=0;
+ letter_bha(1,2,3,4,5,6,7,8,9,10,11,12);
+ draw z1..z2{up}..z3{right}..z4{down}..z5..z6..z7{down}..
+ z8..z9..z10{down}..z11{left}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_ma,20uw#+rm#,20uh#,0); "U+0D2E malayalam letter ma";
+ pickup frame_pen;
+ x1=0;
+ letter_ma(1,2,3,4,5,6,7,8);
+ draw_letter_ma(1,2,3,4,5,6,7,8);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_ya,32uw#+rm#,20uh#,0); "U+0D2F malayalam letter ya";
+ pickup frame_pen;
+ x5=0uw;
+ letter_ya(1,2,3,4,5,6,7,8,9,10);
+ draw z1..z2{right}..z3{down}..z4{left}..z5{up}..z6{right}..
+ z7{(1,-8)}..z8{right}..z9{up}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+if unknown subfont:
+beginchar(c_ra,20uw#+rm#,20uh#,0); "U+0D30 malayalam letter ra";
+ pickup frame_pen;
+ x2=0;
+ letter_ra(1,2,3,4,5,6,7);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..z7;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_rra,20uw#+rm#,20uh#,0); "U+0D31 malayalam letter rra";
+ pickup frame_pen;
+ z1=(4uw, 0);
+ z2=(0, 1/2h);
+ z3=(10uw, h);
+ z4=(20uw, 1/2h);
+ z5=(16uw, 0);
+ draw_bow(1,2,3,4,5);
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+
+beginchar(c_la,32uw#+rm#,20uh#,0); "U+0D32 malayalam letter la";
+ pickup frame_pen;
+ x1=0;
+ letter_la(1,2,3,4,5,6);
+ draw z1---z2{up}..z3{left}..z1{down}---z4--z5--z6;
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(c_lla,22uw#+rm#,20uh#,10uh#); "U+0D33 malayalam letter lla";
+ % like "malayalam letter o"
+ pickup frame_pen;
+ front_eye(1,2,3,4,5);
+ % first bow
+ z5=(0, 10uh);
+ z6=(10uw, 20uh);
+ z7=(19uw, 13uh);
+ z8=(15uw, 8uh);
+ z9=(22uw, 3uh);
+ % tail below
+ z10=(14uw, -4uh);
+ z11=(5uw, -4uh);
+ z12=(1uw, -7uh);
+ z13=(5uw, -10uh);
+ z14=(24uw, y13);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}..{left}z8;
+ draw z8{right}..z9{down}..z10..z11{left}..z12{down}..z13{right}---z14;
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_llla,22uw#+rm#,20uh#,0); "U+0D34 malayalam letter llla";
+ pickup frame_pen;
+ z1=(4uw, h);
+ z2=(0, 15uh);
+ z3=(10uw, 8uh);
+ z4=(22uw, 15uh);
+ z5=(17uw, h);
+ z6=(12uw, 15uh);
+ z7=(14uw, 5uh);
+ z8=(8uw, 0);
+ z9=(3uw, 2uh);
+ draw z1..z2{down}..z3..z4{up}..z5{left}..z6..z7..z8{left}..z9;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(c_va,34uw#+rm#,ht#,0); "U+0D35 malayalam letter va";
+ pickup frame_pen;
+ % bow
+ z1=(4uw, 0);
+ large_bow(1,2,3,4,5);
+ % end hook
+ z6=(x5+3uw, 0.5uh);
+ z7=(34uw, y6);
+ z8=(x7, 19.5uh);
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7---z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_sha,32uw#+rm#,ht#,0); "U+0D36 malayalam letter sha";
+ pickup frame_pen;
+ x2=0;
+ letter_sha(1,2,3,4,5,6,7,8,9);
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7{left}..
+ z8{up}..z9;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(c_ssa,40uw#+rm#,ht#,0); "U+0D37 malayalam letter ssa";
+ pickup frame_pen;
+ % bow
+ z1=(4uw, 0);
+ small_bow(1,2,3,4,5);
+ z6=(x5+3uw, 1/40h);
+ z7=(40uw, y6);
+ end_ssa(7,8,9,10,11,12,13);
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7;
+ draw_end_ssa(7,8,9,10,11,12,13)
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(c_sa,44uw#+rm#,20uh#,0); "U+0D38 malayalam letter sa";
+ pickup frame_pen;
+ x2=0;
+ letter_sa(1,2,3,4,5,6,7,8,9,10);
+ draw z1..z2{up}..z3{right}..{down}z4---z5;
+ draw z5---z4{up}..z6{right}..z7{down}..z8{right}..z9{up}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(c_ha,42uw#+rm#,20uh#,0); "U+0D39 malayalam letter ha";
+ pickup frame_pen;
+ x2=0;
+ letter_ha(1,2,3,4,5,6,7,8,9,10,11,12);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7..z8;
+ draw_bow(8,9,10,11,12);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmcvconj.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmcvconj.mf
new file mode 100644
index 00000000000..e5578fddedb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmcvconj.mf
@@ -0,0 +1,943 @@
+% mmcvconj.mf -- malayalam consonant-vowel conjuncts
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+%%%%% ka related glyphs
+
+if unknown subfont:
+beginchar(c_ku,30uw#+rm#,20uh#,0); "ku";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8',9',10',11');
+ % three-like shape for "u"
+ z8=(x10, y1);
+ z9=(30uw, y10+2.75uw);
+ z10=(x9 - 3.5uw, y6);
+ z11=(x10 - .5uw, y6);
+ z12=(x9, y10-2.75uw);
+ z13=(x10, 0);
+ z14=(x11, 0);
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}--z11;
+ draw z11--z10{right}..z12{down}..z13{left}..z14;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_kuu,32uw#+rm#,20uh#,10uh#); "kuu";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8',9',10',11');
+ % three-like shape and tail for "uu"
+ z8=(x10, y1);
+ z9=(32uw, y10+3.75uh);
+ z10=(x9 - 4uw, 3.5uh);
+ z11=(x10 - 2uw, y10);
+ z12=(x9, y10-3.75uw);
+ z13=(x8, -4uw);
+ % tail below
+ z14=(x15+3uw, -4uw);
+ z15=(0.5uw, -7uh);
+ z16=(x14, -10uh);
+ z17=(32uw, -10uh);
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}--z11;
+ draw z11--z10{right}..z12{down}..z13{left}---z14{left}..z15{down}..
+ z16{right}---z17;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_var_kuu,40uw#+rm#,20uh#,10uh#); "old variant kuu";
+ pickup frame_pen;
+ x6 = 8uw;
+ letter_ka(1,2,3,4,4',5,6,7,8,9,10,11');
+ z11=(x11', 0);
+ z12=(x9, -4uh);
+ subscribed_ra(12,13',14,15,16)(10uh);
+ z13=(x13'+4uw, y13');
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11;
+ draw z10{right}..z12{down}..z13..z14..z15{up}..z16;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_sec_ku,30uw#+rm#,11uh#,0); "secondary ku";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8',9',10',11');
+ % three-like shape for "u"
+ z8=(x10, y1);
+ z9=(30uw, y10+2.75uw);
+ z10=(x9 - 3.5uw, y6);
+ z11=(x10 - .5uw, y6);
+ z12=(x9, y10-2.75uw);
+ z13=(x10, 0);
+ z14=(x11, 0);
+
+ draw z1{down}..z4{right}..z3{up};
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}--z11;
+ draw z11--z10{right}..z12{down}..z13{left}..z14;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_sec_kuu,32uw#+rm#,11uh#,10uh#); "secondary kuu";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8',9',10',11');
+ % three-like shape and tail for "uu"
+ z8=(x10, y1);
+ z9=(32uw, y10+3.75uh);
+ z10=(x9 - 4uw, 3.5uh);
+ z11=(x10 - 2uw, y10);
+ z12=(x9, y10-3.75uw);
+ z13=(x8, -4uw);
+ % tail below
+ z14=(x15+3uw, -4uw);
+ z15=(0.5uw, -7uh);
+ z16=(x14, -10uh);
+ z17=(32uw, -10uh);
+
+ draw z1{down}..z4{right}..z3{up};
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}--z11;
+ draw z11--z10{right}..z12{down}..z13{left}---z14{left}..z15{down}..
+ z16{right}---z17;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_kr,32uw#+rm#,20uh#,11uh#); "kr";
+ pickup frame_pen;
+ x6=0;
+ letter_ka(1,2,3,4,4',5,6,7,8',9',10',11');
+ z8=(x3+1uw, y1);
+ z9=(32uw, 2uh);
+ vowel_sign_vocalic_r(9,10,11,12,13);
+
+ draw z1{up}..z2{right}..z3{down}..z4{left}..cycle;
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11{up}..z12{right}..z13;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_k_ku,49uw#+rm#,20uh#,0); "k+ku";
+ pickup frame_pen;
+ x6 = 0;
+ letter_k_ka(1,2,3,4,4',5,6,7,8,9,10,11,12',13',14');
+ z12 = z12' + (1uw, 0);
+ vowel_sign_ra_u(12,13,14,15,16,17);
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11{up}..z12{right}..z13{down}..z14{left};
+ draw z14{right}..z15{down}..z16{left}..z17;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_sec_k_ku,49uw#+rm#,11uh#,0); "secondary k+ku";
+ pickup frame_pen;
+ x6 = 0;
+ letter_k_ka(1,2,3,4,4',5,6,7,8,9,10,11,12',13',14');
+ z12 = z12' + (1uw, 0);
+ vowel_sign_ra_u(12,13,14,15,16,17);
+
+ draw z1{down}..z4{right}..z3{up};
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11{up}..z12{right}..z13{down}..z14{left};
+ draw z14{right}..z15{down}..z16{left}..z17;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_k_kuu,49uw#+rm#,20uh#,10uh#); "k+kuu";
+ pickup frame_pen;
+ x6 = 0;
+ letter_k_ka(1,2,3,4,4',5,6,7,8,9,10,11,12',13',14');
+ z12=z12' + (1uw, 0);
+ x18=.5uw;
+ vowel_sign_uu(12,13,14,15,16,17,18,19,20);
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11{up}..z12{right}..z13{down}..z14{left};
+ draw z14{right}..z15{down}..z16{left}---z17{left}..z18{down}..
+ z19{right}---z20;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_sec_k_kuu,49uw#+rm#,11uh#,10uh#); "secondary k+kuu";
+ pickup frame_pen;
+ x6 = 0;
+ letter_k_ka(1,2,3,4,4',5,6,7,8,9,10,11,12',13',14');
+ z12=z12' + (1uw, 0);
+ x18=.5uw;
+ vowel_sign_uu(12,13,14,15,16,17,18,19,20);
+
+ draw z1{down}..z4{right}..z3{up};
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11{up}..z12{right}..z13{down}..z14{left};
+ draw z14{right}..z15{down}..z16{left}---z17{left}..z18{down}..
+ z19{right}---z20;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
+endchar;
+fi;
+
+%%%%%% ga related glyphs
+
+beginchar(c_gu,32uw#+rm#,ht#,10uh#); "gu";
+ pickup frame_pen;
+ x2=0uw;
+ letter_ga(1,2,3,4,5,6',7');
+ z6=(x6', 8uh);
+ x9=.5uw;
+ vowel_sign_u(6,7,8,9,10,11);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..
+ z7{left}---z8{left}..z9{down}..z10{right}---z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_guu,36uw#+rm#,ht#,10uh#); "guu";
+ pickup frame_pen;
+ x2=0uw;
+ letter_ga(1,2,3,4,5',6',7');
+ z5=z5'+(1uw, 0);
+ x11=.5uw;
+ vowel_sign_uu(5,6,7,8,9,10,11,12,13);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7{left};
+ draw z7{right}..z8{down}..z9{left}---z10..z11{down}..z12{right}---z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+if unknown subfont:
+beginchar(c_gr,32uw#+rm#,20uh#,11uh#); "gr";
+ pickup frame_pen;
+ x2=0uw;
+ letter_ga(1,2,3,4,5,6',7');
+ z6=(x6', 8uh);
+ vowel_sign_vocalic_r(6,7,8,9,10);
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..
+ z7{left}..z8{up}..z9{right}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+fi;
+
+%%%%%% nga related shapes
+
+beginchar(c_ng_ku,30uw#+rm#,20uh#,0); "ng+ku";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8',9',10',11');
+ % three-like shape for "u"
+ z8=(x10, y1);
+ z9=(30uw, y10+2.75uw);
+ z10=(x9 - 3.5uw, y6);
+ z11=(x10 - .5uw, y6);
+ z12=(x9, y10-2.75uw);
+ z13=(x10, 0);
+ z14=(x11, 0);
+
+ % top left eye for "nga"
+ z19=(11uw, 16uh);
+ z20=(5uw, y2);
+ z21=(0.5uw, 15.5uh);
+ draw z19..z20{left}..z21{down}..z7{right};
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}--z11;
+ draw z11--z10{right}..z12{down}..z13{left}..z14;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,20,21);
+endchar;
+
+beginchar(c_ng_kuu,32uw#+rm#,20uh#,10uh#); "ng+kuu";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8',9',10',11');
+ % three-like shape and tail for "uu"
+ z8=(x10, y1);
+ z9=(32uw, y10+3.75uh);
+ z10=(x9 - 4uw, 3.5uh);
+ z11=(x10 - 2uw, y10);
+ z12=(x9, y10-3.75uw);
+ z13=(x8, -4uw);
+ % tail below
+ z14=(x15+3uw, -4uw);
+ z15=(0.5uw, -7uh);
+ z16=(x14, -10uh);
+ z17=(32uw, -10uh);
+
+ % top left eye for "nga"
+ z19=(11uw, 16uh);
+ z20=(5uw, y2);
+ z21=(0.5uw, 15.5uh);
+ draw z19..z20{left}..z21{down}..z7{right};
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}--z11;
+ draw z11--z10{right}..z12{down}..z13{left}---z14{left}..z15{down}..
+ z16{right}---z17;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17,19,20,21);
+endchar;
+
+%%%%%% cha related shapes
+
+beginchar(c_chu,54uw#+rm#,20uh#,10uh#); "chu";
+ pickup frame_pen;
+ x6=0;
+ letter_cha(1,2,3,4,5,6,7,8,9,10,11,12',13',14');
+ x18=.5uw;
+ loop_u(11,12,13,14,15,16,17,18,19,20);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left};
+ draw z6--z7..z8;
+ draw z8..z9{up}..z10{right}..z11{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16{left}---z17{left}..z18{down}..
+ z19{right}---z20;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
+endchar;
+
+beginchar(c_chuu,55uw#+rm#,20uh#,10uh#); "chuu";
+ pickup frame_pen;
+ x6=0;
+ letter_cha(1,2,3,4,5,6,7,8,9,10,11,12',13',14');
+ x20=.5uw;
+ loop_uu(11,12,13,14,15,16,17,18,19,20,21,22);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left};
+ draw z6--z7..z8;
+ draw z8..z9{up}..z10{right}..z11{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16{left};
+ draw z16{right}..z17{down}..z18{left}---z19{left}..z20{down}..
+ z21{right}---z22;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22);
+endchar;
+
+%%%%%% ja related glyphs
+
+beginchar(c_ju,32uw#+rm#,20uh#,17uh#); "ju";
+ pickup frame_pen;
+ x1=0;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+ % tail for u
+ z16'=(26uw, 2uh);
+ z19=(32uw, -4.5uh);
+ z20=(25uw, -11uh);
+ z21=(x22+3uw, y20);
+ z22=(.5uw, -14uh);
+ z23=(x21, -17uh);
+ z24=(32uw, y23);
+
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw_eye(1,2,3,4);
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z16'{right}..z19{down}..{left}z20---
+ z21{left}..z22{down}..{right}z23---z24;
+ draw_eye(15,16,17,18);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,16',17,18,19,20,21,22,23,24);
+endchar;
+
+beginchar(c_juu,31uw#+rm#,20uh#,17uh#); "juu";
+ pickup frame_pen;
+ x1=0;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+ % tail for uu
+ z16'=(26uw, 2uh);
+ z19=(32uw, -4.5uh);
+ z19'=(28.5uw, -4.5uh);
+ z20=(26uw, -11uh);
+ z21=(x22+3uw, y20);
+ z22=(.5uw, -14uh);
+ z23=(x21, -17uh);
+ z24=(32uw, y23);
+
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw_eye(1,2,3,4);
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z16'{right}..z19'{left};
+ draw z19'{right}..{left}z20---
+ z21{left}..z22{down}..{right}z23---z24;
+ draw_eye(15,16,17,18);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,16',17,18,19,19',20,21,22,23,24);
+endchar;
+
+beginchar(c_j_ju,64uw#+rm#,20uh#,17uh#); "j+ju";
+ pickup frame_pen;
+ x1=0;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14',15',16',17',18');
+ z14=(24uw, 1uh);
+ x1a=32uw;
+ letter_ja(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+
+ % tail for u
+ z16'a=(x1a+26uw, 2uh);
+ z19a=(x1a+32uw, -4.5uh);
+ z20a=(x1a+25uw, -11uh);
+ z21a=(x22a+3uw, y20a);
+ z22a=(.5uw, -14uh);
+ z23a=(x21a, -17uh);
+ z24a=(x1a+32uw, y23a);
+
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw_eye(1,2,3,4);
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z1a{up};
+
+ draw z1a..z5a{up}..z6a{right}..{down}z7a---z8a;
+ draw_eye(1a,2a,3a,4a);
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a..z12a{down}..
+ z13a{right}..z14a..z16'a{right}..z19a{down}..{left}z20a---
+ z21a{left}..z22a{down}..{right}z23a---z24a;
+ draw_eye(15a,16a,17a,18a);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,
+ 13a,14a,15a,16a,16'a,17a,18a,19a,20a,21a,22a,23a,24a);
+endchar;
+
+beginchar(c_j_juu,63uw#+rm#,20uh#,17uh#); "j+juu";
+ pickup frame_pen;
+ x1=0;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14',15',16',17',18');
+ z14=(24uw, 1uh);
+ x1a=32uw;
+ letter_ja(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+
+ % tail for uu
+ z16'a=(x1a+26uw, 2uh);
+ z19a=(x1a+32uw, -4.5uh);
+ z19'a=(x1a+28.5uw, -4.5uh);
+ z20a=(x1a+26uw, -11uh);
+ z21a=(x22a+3uw, y20a);
+ z22a=(.5uw, -14uh);
+ z23a=(x21a, -17uh);
+ z24a=(x1a+32uw, y23a);
+
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw_eye(1,2,3,4);
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z1a{up};
+
+ draw z1a..z5a{up}..z6a{right}..{down}z7a---z8a;
+ draw_eye(1a,2a,3a,4a);
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a..z12a{down}..
+ z13a{right}..z14a..z16'a{right}..z19'a{left};
+ draw z19'a{right}..{left}z20a---
+ z21a{left}..z22a{down}..{right}z23a---z24a;
+ draw_eye(15a,16a,17a,18a);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,
+ 13a,14a,15a,16a,16'a,17a,18a,19a,19'a,20a,21a,22a,23a,24a);
+endchar;
+
+%%%%%% nna related shapes
+
+beginchar(c_nnu,50uw#+rm#,20uh#,0); "nnu";
+ pickup frame_pen;
+ % from "malayalam letter nga"
+ % first bow
+ front_eye(1,2,3,4,5);
+ z5=(0, 1/2h);
+ z6=(9uw, h);
+ z7=(17uw, 1/2h);
+ z8=(x7, 0);
+ % second bow
+ z9=(25uw, h);
+ z10=(33uw, 1/2h);
+ z11=(x10, 0);
+ % third bow
+ z12=(41uw, h);
+ z13=(50uw, 1/2h);
+ end_loop(13,14,15,16);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10{down}---z11;
+ draw z11---z10{up}..z12{right}..z13{down}..z14{left}..z15{up}..z16;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+beginchar(c_nnuu,50uw#+7uw#+rm#,20uh#,6uh#); "nnuu";
+ pickup frame_pen;
+ % from "malayalam letter nga"
+ % first bow
+ front_eye(1,2,3,4,5);
+ z5=(0, 1/2h);
+ z6=(9uw, h);
+ z7=(17uw, 1/2h);
+ z8=(x7, 0);
+ % second bow
+ z9=(25uw, h);
+ z10=(33uw, 1/2h);
+ z11=(x10, 0);
+ % third bow
+ z12=(41uw, h);
+ z13=(50uw, 1/2h);
+ end_loop_tail(13,14,15,16,17,18,19);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10{down}---z11;
+ draw z11---z10{up}..z12{right}..z13{down}..z14{left}..z15{up}..
+ z16{right}..z17{down}..z18{left}..z19;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+%%%%%% ta related shapes
+
+beginchar(c_tu,30uw#+rm#,20uh#,10uh#); "tu";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7,8',9');
+ z8=(x8', 8uh);
+ x11=.5uw;
+ vowel_sign_u(8,9,10,11,12,13);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}..z9{left}---z10{left}..z11{down}..
+ z12{right}---z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(c_tuu,32uw#+rm#,20uh#,10uh#); "tuu";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7',8',9');
+ z7 = z7' + (1uw, 0);
+ x13=.5uw;
+ vowel_sign_uu(7,8,9,10,11,12,13,14,15);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}..z9{left};
+ draw z9{right}..z10{down}..z11{left}---z12..z13{down}..
+ z14{right}---z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+if unknown subfont:
+beginchar(c_tr,30uw#+rm#,ht#,11uh#); "tr";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7,8',9');
+ z8=(x8', 8uh);
+ vowel_sign_vocalic_r(8,9,10,11,12);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}..z9{left}..z10{up}..z11{right}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+fi;
+
+beginchar(c_t_tu,56uw#+rm#,ht#,10uh#); "t+tu";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7',8',9');
+ z7=z7' - (1uw, 0);
+ z8=z8' - (2uw, 0);
+ z9=(x8, .5uh);
+ x9a = x8 - 2uw;
+ letter_ta(8a, 9a, 10',11,12,13,14,15',16');
+ z10=z10' + (1uw, 0);
+
+ z15=(x15', 8uh);
+ x18=.5uw;
+ vowel_sign_u(15,16,17,18,19,20);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}---z9;
+ draw z9---z8{up}..z10{right}..z11{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16{left}---z17..z18{down}..
+ z19{right}--z20;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
+endchar;
+
+beginchar(c_t_tuu,58uw#+rm#,ht#,10uh#); "t+tuu";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7',8',9');
+ z7=z7' - (1uw, 0);
+ z8=z8' - (2uw, 0);
+ z9=(x8, .5uh);
+ x9a = x8 - 2uw;
+ letter_ta(8a, 9a, 10',11,12,13,14',15',16');
+ z10=z10' + (1uw, 0);
+
+ z14=z14'+(1uw,0);
+ x20=.5uw;
+ vowel_sign_uu(14,15,16,17,18,19,20,21,22);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}---z9;
+ draw z9---z8{up}..z10{right}..z11{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16{left};
+ draw z16{right}..z17{down}..z18{left}---z19..z20{down}..
+ z21{right}--z22;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22);
+endchar;
+
+%%%%%% da related shapes
+
+if unknown subfont:
+beginchar(c_dr,18uw#+rm#,20uh#,11uh#); "dr";
+ pickup frame_pen;
+ x2=0;
+ letter_da(1,2,3,4,5,6,7',8',9');
+ z7=(x7', 2uh);
+ vowel_sign_vocalic_r(7,8,9,10,11);
+
+ draw z1..z2{up}..z3{right}..z4{down}..{left}z5---z6;
+ draw z6---z5{right}..z7{down}..z8{left}..z9{up}..z10{right}..z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+fi;
+
+%%%%%% dha related glyphs
+
+if unknown subfont:
+beginchar(c_dhr,32uw#+rm#,20uh#,11uh#); "dhr";
+ pickup frame_pen;
+ x2=0;
+ letter_dha(1,2,3,4,5,6,7,8);
+ vowel_sign_vocalic_r(7,9,10,11,12);
+ draw z1..z2{down}..z3{right}..{up}z4---z5;
+ draw z5---z4{down}..z6{right}..z7{up}..z8;
+ draw z7{down}..z9{left}..z10{up}..z11{right}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+fi;
+
+%%%%%% na related glyphs
+
+beginchar(c_nu,32uw#+rm#,20uh#,0); "nu";
+ pickup frame_pen;
+ z1=(4uw, 0);
+ z2=(0, 1/2h);
+ z3=(8uw, h);
+ z4=(16uw, 1/2h);
+ z5=(x4, 0);
+ z6=(24uw, h);
+ z7=(32uw, 1/2h);
+ end_loop(7,8,9,10);
+ draw z1..z2{up}..z3{right}..{down}z4---z5;
+ draw z5---z4{up}..z6{right}..z7{down}..z8{left}..z9{up}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(c_nuu,32uw#+7uw#+rm#,20uh#,6uh#); "nuu";
+ pickup frame_pen;
+ z1=(4uw, 0);
+ z2=(0, 1/2h);
+ z3=(8uw, h);
+ z4=(16uw, 1/2h);
+ z5=(x4, 0);
+ z6=(24uw, h);
+ z7=(32uw, 1/2h);
+ end_loop_tail(7,8,9,10,11,12,13);
+ draw z1..z2{up}..z3{right}..{down}z4---z5;
+ draw z5---z4{up}..z6{right}..z7{down}..z8{left}..z9{up}..
+ z10{right}..z11{down}..z12{left}..z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+if unknown subfont:
+beginchar(c_nr,32uw#+rm#,20uh#,11uh#); "nr";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6,7',8');
+ z7=(x7', 8uh);
+ vowel_sign_vocalic_r(7,8,9,10,11);
+
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z4{up}..z6{right}..z7{down}..z8{left}..z9{up}..z10{right}..z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+fi;
+
+beginchar(c_n_tu,44uw#+rm#,20uh#,10uh#); "n+tu";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6a,7',8');
+ z6=(.5[x6a,x6b], y6a);
+ x5'=x5-2uw;
+ letter_ta(4',5',6b,7,8,9,10,11',12');
+ z11=(x11', 8uh);
+ x14=.5uw;
+ vowel_sign_u(11,12,13,14,15,16);
+
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z4{up}..z6{right}..z7{down}..z8{left}..z9{up}..z10{right}..
+ z11{down}..z12{left}---z13..z14{down}..z15{right}---z16;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+beginchar(c_n_tuu,46uw#+rm#,20uh#,10uh#); "n+tuu";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6a,7',8');
+ z6=(.5[x6a,x6b], y6a);
+ x5'=x5-2uw;
+ letter_ta(4',5',6b,7,8,9,10',11',12');
+
+ z10=z10'+(1uw,0);
+ x16=.5uw;
+ vowel_sign_uu(10,11,12,13,14,15,16,17,18);
+
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z4{up}..z6{right}..z7{down}..z8{left}..z9{up}..z10{right}..
+ z11{down}..z12{left};
+ draw z12{right}..z13{down}..z14{left}---z15..z16{down}..
+ z17{right}---z18;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+beginchar(c_n_nu,48uw#+rm#,20uh#,0); "n+nu";
+ pickup frame_pen;
+ x2=0;
+ letter_n_na(1,2,3,4,5,6,7,8,9,10,11');
+
+ end_loop(10,11,12,13);
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z5---z4{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11{left}..z12{up}..z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(c_n_nuu,48uw#+7uw#+rm#,20uh#,6uh#); "n+nuu";
+ pickup frame_pen;
+ x2=0;
+ letter_n_na(1,2,3,4,5,6,7,8,9,10,11');
+
+ end_loop_tail(10,11,12,13,14,15,16);
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z5---z4{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11{left}..z12{up}..
+ z13{right}..z14{down}..z15{left}..z16;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+%%%%%% bha related glyphs
+
+beginchar(c_bhu,20uw#+rm#,20uh#,6uh#); "bhu";
+ pickup frame_pen;
+ x2=0;
+ letter_bha(1,2,3,4,5,6,7,8,9,10,11',12');
+ z11=(14uw, 0);
+ % bow for u
+ z12=(x13+3uw, 0);
+ z13=(5.5uw, -3uh);
+ z14=(x12, -6uh);
+ z15=(20uw, y14);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5..z6..z7{down}..
+ z8..z9..z10{down}..z11{left}..z12{left}..z13{down}..
+ z14{right}---z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_bhuu,20uw#+8uw#+rm#,20uh#,9uh#); "bhuu";
+ pickup frame_pen;
+ x2=8uw;
+ letter_bha(1,2,3,4,5,6,7,8,9,10,11,12');
+ z12=(x2+8uw, 0);
+ % curl around letter
+ z13=(24uw, 0);
+ z14=(28uw, -3.5uh);
+ z15=(14uw, -9uh);
+ z16=(0, 10uh);
+ z17=(3.5uw, 20uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5..z6..z7{down}..
+ z8..z9..z10{down}..z11{left}..z12{left};
+ draw z13{right}..z14{down}..z15{left}..z16{up}..z17;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+
+if unknown subfont:
+beginchar(c_bhr,20uw#+rm#,20uh#,11uh#); "bhr";
+ pickup frame_pen;
+ x2=0;
+ letter_bha(1,2,3,4,5,6,7,8,9,10',11',12');
+ z10=(x10', -1uh);
+ vowel_sign_vocalic_r(10,11,12,13,14);
+ draw z1..z2{up}..z3{right}..z4{down}..z5..z6..z7{down}..
+ z8..z9..z10'..z10..z11{left}..z12{up}..z13{right}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,10',11,12,13,14);
+endchar;
+fi;
+
+%%%%%% ra related glyphs
+
+if unknown subfont:
+beginchar(c_ru,32uw#+rm#,ht#,0); "ru";
+ pickup frame_pen;
+ x2=0;
+ letter_ta(1,2,3,4,5,6,7',8',9');
+ z7 = z7'+(1uw, 0);
+ vowel_sign_ra_u(7,8,9,10,11,12);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}..z9{left};
+ draw z9{right}..z10{down}..z11{left}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+fi;
+
+if unknown subfont:
+beginchar(c_ruu,40uw#+rm#,ht#,8uh#); "ruu";
+ pickup frame_pen;
+ % first bow
+ z1=(x2+4uw, 0);
+ z2=(8uw, 10uh);
+ z3=(x2+10uw, 20uh);
+ z4=(x2+20uw, 8uh);
+ z5=(x2+15uw, 0);
+ % second bow
+ z6=(x2+10uw, y4);
+ z7=(x2+22uw, 20uh);
+ z8=(x10 - 1uw, 13uh);
+ z9=(x10 - 6uw, 8uh);
+ z10=(x2+32uw, 2uh);
+ % bow below
+ subscribed_ra(10,11',12,13,14)(8uh);
+ z11=(x11'+2uw, y11');
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}..z9{left};
+ draw z9{right}..z10{down}..z11..z12..z13{up}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+fi;
+
+%%%%%% sha related shapes
+
+beginchar(c_shu,40uw#+rm#,ht#,10uh#); "shu";
+ pickup frame_pen;
+ x2=0;
+ letter_sha(1,2,3,4,5,6,7',8',9');
+ x13=.5uw;
+ loop_u(6,7,8,9,10,11,12,13,14,15);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7{left}..
+ z8{up}..z9{right}..z10{down}..z11{left}---z12{left}...z13{down}..
+ z14{right}---z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_shuu,41uw#+rm#,ht#,10uh#); "shuu";
+ pickup frame_pen;
+ x2=0;
+ letter_sha(1,2,3,4,5,6,7',8',9');
+ x15=.5uw;
+ loop_uu(6,7,8,9,10,11,12,13,14,15,16,17);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7{left}..
+ z8{up}..z9{right}..z10{down}..z11{left};
+ draw z11{right}..z12{down}..z13{left}---z14{left}...z15{down}..
+ z16{right}---z17;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+
+if unknown subfont:
+beginchar(c_shr,39uw#+rm#,ht#,11uh#); "shr";
+ pickup frame_pen;
+ x2=0;
+ letter_ga(1,2,3,4,5,6,7');
+ end_loop_tail(6,7,8,9,10,11',12')
+ vowel_sign_vocalic_r(10,11,12,13,14);
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7{left}..
+ z8{up}..z9{right}..z10{down}..z11{left}..z12{up}..z13{right}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14);
+endchar;
+fi;
+
+%%%%%% sa related glyphs
+
+if unknown subfont:
+beginchar(c_sr,44uw#+rm#,20uh#,11uh#); "sr";
+ pickup frame_pen;
+ x2=0;
+ letter_sa(1,2,3,4,5,6,7,8,9,10);
+ vowel_sign_vocalic_r(9,11,12,13,14);
+
+ draw z1..z2{up}..z3{right}..{down}z4---z5;
+ draw z5---z4{up}..z6{right}..z7{down}..z8{right}..z9{up}..z10;
+ draw z9{down}..z11{left}..z12{up}..z13{right}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+fi;
+
+%%%%%% ha related glyphs
+
+beginchar(c_hu,42uw#+rm#,ht#,10uh#); "hu";
+ pickup frame_pen;
+ x2=0;
+ letter_ha(1,2,3,4,5,6,7,8,9,10,11',12');
+ z11=(x11', 8uh);
+ x14=.5uw;
+ vowel_sign_u(11,12,13,14,15,16);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7..z8;
+ draw z8..z9{up}..z10{right}..z11{down}..z12{left}---z13{left}..
+ z14{down}..z15{right}---z16;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+
+beginchar(c_huu,44uw#+rm#,ht#,10uh#); "huu";
+ pickup frame_pen;
+ x2=0;
+ letter_ha(1,2,3,4,5,6,7,8,9,10',11',12');
+ z10=z10'+(1uw, 0);
+ x16=.5uw;
+ vowel_sign_uu(10,11,12,13,14,15,16,17,18);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7..z8;
+ draw z8..z9{up}..z10{right}..z11{down}..z12{left};
+ draw z12{right}..z13{down}..z14{left}---z15{left}..
+ z16{down}..z17{right}---z18;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+if unknown subfont:
+beginchar(c_hr,41uw#+rm#,20uh#,11uh#); "hr";
+ pickup frame_pen;
+ % bow
+ z1=(4uw, 0);
+ small_bow(1,2,3,4,5);
+ z6=(x5+3uw, .5uh);
+ z7=(22uw, y6);
+ z8=(x7+3uw, 0);
+ large_bow(8,9,10,11',12');
+ z11=(x11', 8uh);
+ vowel_sign_vocalic_r(11,12,13,14,15);
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7..z8;
+ draw z8..z9{up}..z10{right}..z11{down}..z12{left}..z13{up}..
+ z14{right}..z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+fi;
+
+%%%%%% end of mmcvconj.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmdefs.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmdefs.mf
new file mode 100644
index 00000000000..5c1017d55bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmdefs.mf
@@ -0,0 +1,633 @@
+% mmdefs.mf -- definitions for malayalam font
+% copyright 1992 Jeroen Hellingman
+% last edit: 09-JAN-1993
+
+%%%%%% dimensions
+
+uw# := 0.1u#; % unit of width
+uh# := 0.05ht#; % unit of height
+
+define_pixels(rm,u,uw,uh);
+define_whole_pixels(ht);
+
+currenttransform := currenttransform shifted (.5rm, 0);
+
+%%%%%% set the remaining font parameters
+
+font_slant := slant;
+font_quad := 20uw#;
+font_x_height := 20uh#;
+font_normal_space := 14uw#;
+font_normal_stretch := 8uw#;
+font_normal_shrink := 2uw#;
+
+currenttransform := currenttransform slanted slant;
+
+%%%%%% pen definitions
+
+penwd# :=thick# * cosd(rot-90);
+usthick# := thick#;
+mb# := .2ht#;
+define_pixels(penwd,usthick,mb);
+define_blacker_pixels(thin,thick,subthick);
+thin := max(thin,1); subthick := max(subthick,1);
+smoothing := 0;
+pickup pencircle xscaled thick yscaled thin rotated rot;
+scpenwd := pen_rt - pen_lft;
+frame_pen := savepen;
+pickup pencircle xscaled subthick yscaled thin rotated rot;
+sub_pen := savepen;
+
+%%%%%% character part definitions
+
+def eye(suffix a,b,c,d) (expr w, h) =
+% define points of ellipse relative to z.a
+% z.a = left point, clockwise direction
+% w = width of ellipse
+% h = height of ellipse
+ z.b = (x.a + .5w, y.a + .5h);
+ z.c = (x.a + w, y.a);
+ z.d = (x.a + .5w, y.a - .5h);
+enddef;
+
+def draw_eye(suffix a,b,c,d) =
+% draw eye through four points defined by eye
+ draw z.a{up}..z.b{right}..z.c{down}..z.d{left}..cycle;
+enddef;
+
+def large_bow(suffix a,b,c,d,e) =
+% define points of full height bow in "rra", "va", "ha"
+% x values relative to x.b
+% y values absolute.
+ z.a=(x.b + 4uw, 0);
+ z.b=(x.b, 10uh);
+ z.c=(x.b + 10uw, 20uh);
+ z.d=(x.b + 20uw, 10uh);
+ z.e=(x.d - 4uw, 0);
+enddef;
+
+def small_bow(suffix a,b,c,d,e) =
+% define points of "half" height bow in "e", "ee", "pa", "pha", "ssa", "ha"
+% x values relative to x.a
+% y values relative to y.a
+ z.b=(x.a - 4uw, y.a + 7uh);
+ z.c=(x.b + 7uw, y.a + 14uh);
+ z.d=(x.b + 14uw, y.b);
+ z.e=(x.d - 4uw, y.a);
+enddef;
+
+def draw_bow (suffix a,b,c,d,e) =
+% draw bow through five points
+ draw z.a..z.b{up}..z.c{right}..z.d{down}..z.e;
+enddef;
+
+def end_loop(suffix a,b,c,d) =
+% define points of end loop of "a", "vocalic l", "ra", etc.
+% x values relative to x.a
+% y values absolute.
+ z.b = (x.a-5uw, 0);
+ z.c = (x.a-8uw, 5uh);
+ z.d = (x.a-2uw, 16uh);
+enddef;
+
+def upside_down_end_loop(suffix a,b,c,d) =
+% define points of upside down end loop of "ddha"
+% x values relative to x.a
+% y values absolute.
+ z.b = (x.a-5uw, 20uh - 0);
+ z.c = (x.a-8uw, 20uh - 5uh);
+ z.d = (x.a-2uw, 20uh - 16uh);
+enddef;
+
+def end_loop_tail(suffix a,b,c,d,e,f,g) =
+% define points of end loop and tail of "aa", "vocalic ll", etc.
+% x values relative to x.a
+% y values absolute.
+% adds 7uw to character width
+% character depth will be at least 6uh
+ z.b = (x.a-5uw, 0); % was z.b = (x.a-5uw, 0);
+ z.c = (x.a-9uw, 5uh); % was z.c = (x.a-8uw, 5uh)
+ z.d = (x.a-1uw, 15uh);
+ z.e = (x.a+7uw, 5uh);
+ z.f = (x.a-1uw, -6uh);
+ z.g = (x.a-7uw, -4uh);
+enddef;
+
+def loop_u(suffix a,b,c,d,e,f,g,h,i,j) =
+% define points of "vowel sign u" in chu and shu
+% x coordinates relative to x.a and x.h
+% y coordinates absolute
+ z.b=(x.a-6uw, 0);
+ z.c=(x.a-10uw, 6uh);
+ z.d=(x.a-1uw, 16uh);
+ z.e=(x.a+8uw, 6uh);
+ vowel_sign_u(e,f,g,h,i,j);
+enddef;
+
+def loop_uu(suffix a,b,c,d,e,f,g,h,i,j,k,l) =
+% define points of "vowel sign uu" in chu and shu
+% x coordinates relative to x.a and x.j
+% y coordinates absolute
+ z.b=(x.a-6uw, 0);
+ z.c=(x.a-10uw, 6uh);
+ z.d=(x.a, 16uh);
+ z.e=(x.a+8uw, 10uh);
+ z.f=(x.a+5uw, 6uh);
+ z.g=(x.a+9uw, 1uh);
+ vowel_sign_u(g,h,i,j,k,l);
+enddef;
+
+def vowel_sign_u(suffix a,b,c,d,e,f) =
+% define points of "vowel sign u" in gu, tu, etc.
+% x coordinates relative to x.a and x.d
+% y coordinates absolute
+ z.b=(x.a-9uw, -4uh);
+ z.c=(x.d+3uw, y.b);
+ z.d=(x.d, -7uh);
+ z.e=(x.c, -10uh);
+ z.f=(x.a, y.e);
+enddef;
+
+def vowel_sign_uu(suffix a,b,c,d,e,f,g,h,i) =
+% define points of vowel sign uu as applied in tuu
+% x coordinates relative to x.a and x.g
+% y coordinates absolute
+ z.b=(x.a + 9uw, 13.5uh);
+ z.c=(x.a + 4uw, 9uh);
+ z.d=(x.a + 11uw, .5[y.c, y.e]);
+ vowel_sign_u(d,e,f,g,h,i);
+enddef;
+
+def vowel_sign_ra_u(suffix a,b,c,d,e,f) =
+% define points of "vowel sign u" in ru, etc.
+% x coordinates relative to x.a
+% y coordinates absolute
+ z.b = (x.a+9uw, 14uh);
+ z.c = (x.a+4uw, 10.5uh);
+ z.d = (x.a+11uw, 5.25uh);
+ z.e = (x.a+5uw, 0uh);
+ z.f = (x.a+3uw, .5uh);
+enddef;
+
+def make_sub_triangle(suffix a,b,c,d) =
+% define and draw subscribed triangle for double letters
+% x coordinates relative to z.a
+ z.a=(x.a, 10uh);
+ z.b=(x.a, -10uh);
+ z.c=(x.a-26uw, y.b);
+ z.d=(x.c+18uw, 0.5uh);
+ draw z.a--z.b--z.c--z.d;
+ penlabels(a,b,c,d);
+enddef;
+
+def front_eye(suffix a,b,c,d,e) =
+% defines points of the eye at the start of "i", "u", "kha", "nga", etc.
+% x values relative to x.e
+% y values absolute.
+% note that the eye is not even elliptical here!
+ z.a = (x.e + 1uw, 6uh);
+ z.b = (x.e + 6uw, 12uh);
+ z.c = (x.e + 11uw, y.a);
+ z.d = (x.b, 0);
+enddef;
+
+def end_tha_bow(suffix a,b,c,d,e) =
+% define points of the bow end of "tha", "pha", etc.
+% x values relative to x.a
+% y values relative to y.a
+ z.b=(x.a, y.a + 9.5uh);
+ z.c=(x.a-8uw, y.a + 19.5uh);
+ z.d=(x.a-16uw, y.a + 9.5uh);
+ z.e=(x.d, y.a);
+enddef;
+
+def draw_end_tha_bow(suffix a,b,c,d,e) =
+ draw z.a---z.b{up}..z.c{left}..{down}z.d---z.e;
+enddef;
+
+def end_ssa(suffix a,b,c,d,e,f,g) =
+% define points of the end of "ssa".
+% x values relative to x.a
+% y values relative to y.a
+ z.b=(x.a, y.a + 19.5uh);
+ eye(d,e,f,c)(7uw,7uh);
+ z.f=(x.a-14uw, y.b - 3.5uh);
+ z.g=(x.f, y.a);
+enddef;
+
+def draw_end_ssa(suffix a,b,c,d,e,f,g) =
+ draw z.a--z.b;
+ draw z.b..z.c{left}..z.d{up}..z.e{right}..z.f{down}---z.g;
+enddef;
+
+def vowel_sign_vocalic_r(suffix a,b,c,d,e) =
+% define points of a "vowel sign vocalic r"
+% x values relative to x.a
+% y values absolute
+ z.b=(x.a-12uw, -11uh);
+ z.c=(x.a-20uw, -8uh);
+ z.d=(x.b, -5uh);
+ z.e=(x.a-4.25uw, -7uh);
+enddef;
+
+def subscribed_ra(suffix a,b,c,d,e)(expr depth) =
+% define points of subscribed ra
+% (some) x coordinates relative to x.a
+% y coordinates absolute or relative to d
+ numeric sub_ra_tmp;
+ sub_ra_tmp := 2.1*(uw/uh)*depth;
+ if sub_ra_tmp > .45x.a : sub_ra_tmp := .45x.a; fi;
+ z.b = (x.a - sub_ra_tmp, -depth);
+ z.c = (sub_ra_tmp, -depth);
+ z.d = (0, 10uh);
+ z.e = (3.5uw, 20uh);
+enddef;
+
+def virama_tail(suffix a,b,c,d,e,f,g) =
+% define points of the tail for virama in "n", "nn", "r", and "ll"
+% x values relative to x.a
+% y values absolute
+ z.b = (x.a-4.5uw, 0);
+ z.c = (x.a-9uw, 6uh);
+ z.d = (x.a-7uw, 15uh);
+ z.e = (x.a-4uw, 24uh);
+ z.f = (x.a-8uw, 28uh);
+ z.g = (x.a-13uw, 25uh);
+enddef;
+
+def letter_ka(suffix a,b,c,d,l,e,f,g,h,i,j,k) =
+% define points of "malayalam letter ka",
+% y coordinates relative to y.f
+% x coordinates absolute
+ % middle loop
+ z.a=(x.f + 10uw, 11uh);
+ z.l=(x.f + 11uw, 4uh);
+ z.b=(x.f + 16uw, 20uh);
+ z.c=(x.f + 22uw, y.a);
+ z.d=(x.b, 0);
+ % first loop
+ z.e=(x.f + 5uw, 0);
+ z.f=(x.f, 5.5uh);
+ z.g=(x.f + 6uw, y.a);
+ % tail
+ z.h=(x.f + 26uw, y.a);
+ z.i=(x.f + 32uw, y.f);
+ z.j=(x.f + 27uw, 0);
+ z.k=(x.f + 25uw, 1uh);
+enddef;
+
+def letter_k_ka(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) =
+% define points of "malayalam letter k+ka"
+% x coordinates relative to x.g
+% y coordinates absolute;
+ letter_ka(a,b,c,d,e,f,g,h,i.tmp,j.tmp,k.tmp,l.tmp);
+ z.i=(x.g + 31.5uw, 11uh);
+ z.j=(x.g + 37uw, 5.5uh);
+ z.k = (.45[x.j, x.l], 0);
+ z.l = (x.g + 27uw, 10uh);
+ z.m = (x.l + 10uw, 20uh);
+ z.n = (x.l + 20uw, y.l);
+ z.o = (x.n - 4uw, 0);
+enddef;
+
+def letter_ga(suffix a,b,c,d,e,f,g) =
+% define points of "malayalam letter ga"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ % first curl
+ z.a=(x.b+8uw, 20uh);
+ z.b=(x.b, 10uh);
+ z.c=(x.b+8uw, 0);
+ % middle point
+ z.d=(x.b+16uw, 10uh);
+ % second curl
+ z.e=(x.b+24uw, 20uh);
+ z.f=(x.b+32uw, 10uh);
+ z.g=(x.b+24uw, 0);
+enddef;
+
+def letter_ca(suffix a,b,c,d,e,f,g,h) =
+% define points of "malayalam letter ca"
+% x coordinates relative to x.f
+% y coordinates absolute;
+ % first bow, (height = 14)
+ z.a=(x.f+4uw, 6uh);
+ z.b=(x.f+4uw, 7uh);
+ z.c=(x.f+11uw, 14uh);
+ z.d=(x.f+18uw, y.b);
+ z.e=(x.f+9uw, .5uh);
+ % hook
+ z.f=(x.f, y.e);
+ z.g=(x.f+36uw, y.e);
+ z.h=(x.f+36uw, 19.5uh);
+enddef;
+
+def letter_cha(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n) =
+% define points of "malayalam letter cha"
+% x coordinates relative to x.f
+% y coordinates absolute;
+ letter_ca(a,b,c,d,e,f,g.tmp,h.tmp);
+ z.g=(x.h-3uw, y.e);
+ z.h=(x.f+30uw, 0);
+ letter_ra(h,i,j,k,l,m,n);
+enddef;
+
+def letter_ja(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) =
+% define points of "malayalam letter ja"
+% x coordinates relative to x.a
+% y coordinates absolute;
+ % first eye
+ z.a=(x.a, 12uh);
+ eye(a,b,c,d)(8uw, 8uh);
+ % first bow
+ z.e=(x.a, 14uh);
+ z.f=(x.a+7uw, 20uh);
+ z.g=(x.a+14uw, 13uh);
+ z.h=(x.g, 8uh);
+ % second bow
+ z.i=(x.a+21uw, 20uh);
+ z.j=(x.a+26uw, 14uh);
+ % tail
+ z.k=(x.a+13uw, 4uh);
+ z.l=(x.a+.5uw, -2uh);
+ z.m=(x.a+7uw, -6uh);
+ z.n=(x.a+15uw, -3uh);
+ % second eye (diameter = 6)
+ z.p=(x.a+22.5uw, 0);
+ eye(o,p,q,r)(6uw, 6uh);
+enddef;
+
+def letter_jha(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n) =
+% define points of "malayalam letter jha"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ % first bow
+ z.a=(x.b+4uw, 0);
+ z.b=(x.b, 10uh);
+ z.c=(x.b+10uw, 20uh);
+ z.d=(x.b+20uw, 8uh);
+ z.e=(x.b+15uw, 0);
+ % second bow
+ z.f=(x.b+10uw, y.d);
+ z.g=(x.b+20uw, 20uh);
+ z.h=(x.b+28uw, 10uh);
+ z.i=(x.b+35uw, 0);
+ z.j=(x.b+42uw, 10uh);
+ z.k=(x.j, 19.5uh);
+ z.l=(x.b+50uw, 0);
+ z.m=(x.b+58uw, 10uh);
+ z.n=(x.b+54uw, 20uh);
+enddef;
+
+def letter_nya(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) =
+% define points of letter nya
+% x coordinates relative to x.e
+% y coordinates absolute
+ front_eye(a,b,c,d,e);
+ z.e=(x.e, 10uh);
+ z.f=(x.e + 9uw, 20uh);
+ z.g=(x.e + 17uw, 10uh);
+ z.h=(x.g, .5uh);
+ % second bow
+ z.i=(x.e + 26uw, 20uh);
+ z.j=(x.e + 36uw, 8uh);
+ z.k=(x.e + 31uw, 0);
+ z.l=(x.e + 26uw, 8uh);
+ % third bow
+ z.m=(x.e + 36uw, 20uh);
+ z.n=(x.e + 46uw, 10uh);
+ z.o=(x.e + 42uw, 0);
+enddef;
+
+def letter_tta(suffix a,b,c,d,e,f,g) =
+% define points of "malayalam letter tta" (looks like "latin letter s")
+% x coordinates relative to x.c
+% y coordinates absolute;
+ z.a=(x.c+18uw, 18uh);
+ z.b=(x.c+9uw, 20uh);
+ z.c=(x.c, 15uh);
+ z.d=(x.c+9uw, 10uh);
+ z.e=(x.c+18uw, 5uh);
+ z.f=(x.c+9uw, 0);
+ z.g=(x.c, 2uh);
+enddef;
+
+def letter_dda(suffix a,b,c,d,e,f,g,h,i,j) =
+% define points of "malayalam letter dda"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ % (almost) upside down mirror image of "malayalam letter sa"
+ z.a=(x.b+4uw, 0);
+ z.b=(x.b, 10uh);
+ z.c=(x.b+7uw, 20uh);
+ z.d=(x.b+14uw, 10uh);
+ z.e=(x.b+21uw, 0);
+ z.f=(x.b+28uw, 10uh);
+ z.g=(x.f, 19.5uh);
+ z.h=(x.b+36uw, 0);
+ z.i=(x.b+44uw, 10uh);
+ z.j=(x.b+40uw, 20uh);
+enddef;
+
+def letter_ta(suffix a,b,c,d,e,f,g,h,i) =
+% define points of "malayalam letter ta"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ % first bow
+ z.a=(x.b+4uw, 0);
+ z.b=(x.b, 10uh);
+ z.c=(x.b+10uw, 20uh);
+ z.d=(x.b+20uw, 8uh);
+ z.e=(x.b+15uw, 0);
+ % second bow
+ z.f=(x.b+10uw, y.d);
+ z.g=(x.b+20uw, 20uh);
+ z.h=(x.b+30uw, 10uh);
+ z.i=(x.b+26uw, 0);
+enddef;
+
+def letter_da(suffix a,b,c,d,e,f,g,h,i) =
+% define points of "malayalam letter da"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ z.a=(x.b+2uw, 0);
+ z.b=(x.b, 10uh);
+ z.c=(x.b+9uw, 20uh);
+ z.d=(x.b+17uw, 15uh);
+ z.e=(x.b+8uw, 10uh);
+ z.f=(x.b+7uw, y.e);
+ z.g=(x.b+18uw, 5uh);
+ z.h=(x.b+12uw, 0);
+ z.i=(x.b+6uw, 1uh);
+enddef;
+
+def letter_dha(suffix a,b,c,d,e,f,g,h) =
+% define points of "malayalam letter dha"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ z.a=(x.b+4uw, 20uh);
+ z.b=(x.b, 10uh);
+ z.c=(x.b+8uw, 0);
+ z.d=(x.b+16uw, 10uh);
+ z.e=(x.d, 19.5uh);
+ z.f=(x.b+24uw, 0);
+ z.g=(x.b+32uw, 10uh);
+ z.h=(x.b+28uw, 20uh);
+enddef;
+
+def letter_na(suffix a,b,c,d,e,f,g,h) =
+% define points of "malayalam letter na"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ z.a=(x.b+4uw, 0);
+ z.b=(x.b, 10uh);
+ z.c=(x.b+8uw, 20uh);
+ z.d=(x.b+16uw, 10uh);
+ z.e=(x.d, .5uh);
+ z.f=(x.b+24uw, 20uh);
+ z.g=(x.b+32uw, 10uh);
+ z.h=(x.b+28uw, 0);
+enddef;
+
+def draw_letter_na(suffix a,b,c,d,e,f,g,h) =
+ draw z.a..z.b{up}..z.c{right}..{down}z.d---z.e;
+ draw z.e---z.d{up}..z.f{right}..z.g{down}..z.h;
+enddef;
+
+def letter_n_na(suffix a,b,c,d,e,f,g,h,i,j,k) =
+% define points of "malayalam letter na"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ letter_na(a,b,c,d,e,f,g,h');
+ letter_na(d',e',f',g,h,i,j,k);
+enddef;
+
+def half_ba(suffix a,b,c,d,e,f,g,h,i,j,k) =
+% define points of first half of letter ba (32uw wide)
+% x coordinates relative to x.e
+% y coordinates absolute
+ front_eye(a,b,c,d,e);
+ % first bow
+ z.e=(x.e, 10uh);
+ z.f=(x.e+9uw, 20uh);
+ z.g=(x.e+17uw, 10uh);
+ z.h=(x.g, 0);
+ % second bow
+ z.i=(x.e+24uw, 20uh);
+ z.j=(x.e+32uw, 10uh);
+ z.k=(x.e+28uw, 0);
+enddef;
+
+def letter_bha(suffix a,b,c,d,e,f,g,h,i,j,k,l) =
+% define points of "malayalam letter bha"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ z.a=(x.b+2uw, 0);
+ z.b=(x.b, 10uh);
+ z.c=(x.b+11uw, 20uh);
+ z.d=(x.b+19uw, 16uh);
+ z.e=(x.d-3uw, y.d-3uh);
+ z.f=(x.g+3uw, y.g+3uh);
+ z.g=(x.b+6uw, 10uh);
+ z.h=(x.g+3uw, y.g-3uh);
+ z.i=(x.j-3uw, y.j+3uh);
+ z.j=(x.b+20uw, 4uh);
+ z.k=(x.b+14uw, 0);
+ z.l=(x.b+6uw, 1uh);
+enddef;
+
+def letter_ma(suffix a,b,c,d,e,f,g,h) =
+% define points of "malayalam letter ma"
+% x coordinates relative to x.a
+% y coordinates absolute;
+ z.a=(x.a, .5uh);
+ z.b=(x.a+12uw, 14uh);
+ z.c=(x.a+7uw, 19uh);
+ z.d=(x.a+3uw, 17uh);
+ % outer loop
+ z.e=(x.a, 10uh);
+ z.f=(x.a+10uw, 20uh);
+ z.g=(x.a+20uw, y.e);
+ z.h=(x.g, y.a);
+enddef;
+
+def draw_letter_ma(suffix a,b,c,d,e,f,g,h) =
+ draw z.a..z.b{up}..z.c{left}..z.d;
+ draw z.a--z.h & z.h---z.g{up}..z.f{left}..{down}z.e---z.a;
+enddef;
+
+def letter_ya(suffix a,b,c,d,e,f,g,h,i,j) =
+% define points of "malayalam letter ya"
+% x coordinates relative to x.e
+% y coordinates absolute;
+ z.a=(x.e+11.5uw, 14uh);
+ z.b=(.5[x.a,x.c], 20uh);
+ z.c=(x.e+24uw, 12uw);
+ z.d=(.5[x.c,x.e], 0);
+ z.e=(x.e, 12uh);
+ z.f=(x.e+6uw, 20uh);
+ z.g=(x.e+11.5uw, 12uh);
+ z.h=(.5[x.g,x.i], 0);
+ z.i=(x.e+32uw, 10uh);
+ z.j=(x.e+28uw, 20uh);
+enddef;
+
+def letter_ra(suffix a,b,c,d,e,f,g) =
+% define points of "malayalam letter ra"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ large_bow(a,b,c,d,e.tmp);
+ end_loop(d,e,f,g);
+enddef;
+
+def letter_la(suffix a,b,c,d,e,f) =
+% define points of "malayalam letter la"
+% x coordinates relative to x.a
+% y coordinates absolute;
+ z.a=(x.a, 8.5uh);
+ z.b=(x.a+18uw, y.a);
+ z.c=(x.a+9uw, 20uh);
+ z.d=(x.a, .5uh);
+ z.e=(x.a+32uw, y.d);
+ z.f=(x.e, 19.5uh);
+enddef;
+
+def letter_sha(suffix a,b,c,d,e,f,g,h,i) =
+% define points of "malayalam letter sha"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ letter_ga(a,b,c,d,e,f,g.tmp);
+ end_loop(f,g,h,i);
+enddef;
+
+def letter_sa(suffix a,b,c,d,e,f,g,h,i,j) =
+% define points of "malayalam letter sa"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ z.a=(x.b+4uw, 0);
+ z.b=(x.b, 10uh);
+ z.c=(x.b+8uw, 20uh);
+ z.d=(x.b+16uw, 10uh);
+ z.e=(x.d, .5uh);
+ z.f=(x.b+23uw, 20uh);
+ z.g=(x.b+30uw, 10uh);
+ z.h=(x.b+37uw, 0);
+ z.i=(x.b+44uw, 10uh);
+ z.j=(x.b+40uw, 20uh);
+enddef;
+
+def letter_ha(suffix a,b,c,d,e,f,g,h,i,j,k,l) =
+% define points of "malayalam letter ha"
+% x coordinates relative to x.b
+% y coordinates absolute;
+ y.a = y.h = 0;
+ small_bow(a,b,c,d,e);
+ z.f = z.e + (3uw, .5uh);
+ z.g = z.h + (-3uw, .5uh);
+ x.k = x.b+42uw;
+ large_bow(h,i,j,k,l);
+enddef;
+
+endinput;
+
+% end of mmdefs.mf \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmfnt.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmfnt.mf
new file mode 100644
index 00000000000..e3c378d0a0b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmfnt.mf
@@ -0,0 +1,6 @@
+% mm_fnt --- create font to be converted into screen font for text-editor
+
+newfont := 1;
+input fnt_code.mf
+input mm10.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmfont.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmfont.mf
new file mode 100644
index 00000000000..f8398d78e18
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmfont.mf
@@ -0,0 +1,46 @@
+% mmfont.mf -- malayalam font driver file
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+% if you never want to use traditional script, uncomment the following
+% line to save processing time and disk-space.
+% newfont := 1;
+
+input mmcoding.mf; % get the glyph-positions in the font
+input mmtest.mf; % do we have some characters to be tested?
+
+% generate the charactershapes:
+
+if known newfont and unknown subfont :
+ input mmvowels.mf;
+ input mmcons.mf;
+ input mmscons.mf;
+ input mmsec.mf;
+ input mmcillu.mf;
+ input mmconj.mf;
+ input mmlnums.mf
+ input mmpunct.mf;
+elseif known subfont :
+ if known newfont :
+ "No subfont needed when making a font for reformed script";
+ else :
+ input mmcons.mf;
+ input mmconj.mf;
+ input mmrconj.mf;
+ input mmcvconj.mf;
+ fi
+else : % generate everything
+ input mmvowels.mf;
+ input mmcons.mf;
+ input mmscons.mf;
+ input mmsec.mf;
+ input mmcillu.mf;
+ input mmconj.mf;
+ input mmrconj.mf;
+ input mmcvconj.mf;
+ input mmnums.mf;
+ input mmlnums.mf
+ input mmpunct.mf;
+fi;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmlnums.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmlnums.mf
new file mode 100644
index 00000000000..959c49e6579
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmlnums.mf
@@ -0,0 +1,125 @@
+% mmlnums.mf -- Latin digits for Malayalam-TeX font
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1992
+
+beginchar(c_zero,12uw#+rm#,20uh#,0); "U+0030 digit zero";
+ pickup frame_pen;
+ z1=(0uw, 10uh);
+ eye(1,2,3,4)(12uw,20uh);
+ draw_eye(1,2,3,4);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(c_one,12uw#+rm#,20uh#,0); "U+0031 digit one";
+ pickup frame_pen;
+ z1=(x2-4uw, 16uh);
+ z2=(6uw, 19.5uh);
+ z3=(x2, .5uh);
+ z4=(x2-3uw, y3);
+ z5=(x2+3uw, y3);
+ draw z1{2,1}..{1,2}z2--z3;
+ draw z4--z5;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(c_two,12uw#+rm#,20uh#,0); "U+0032 digit two";
+ pickup frame_pen;
+ z1=(1uw, 15uh); % was (.5uw, 14uh)
+ z2=(.5[x1,x3], 20uh);
+ z3=(11uw, y1);
+ z5=(.5uw, 0.5uh);
+ z6=(4.5uw, 2uh);
+ z7=(11.5uw, .5uh);
+
+ draw z1{up}..z2{right}..z3{down}..z5{down} &
+ z5--z7{right};
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(c_three,12uw#+rm#,20uh#,0); "U+0033 digit three";
+ pickup frame_pen;
+ z1=(1uw, 16uh);
+ z2=(.5[x1,x3], 20uh);
+ z3=(11uw, .5[y2,y4]);
+ z4=(x2, 11uh);
+ z4'=(4uw, y4);
+ z5=(12uw, .5[y4,y6]);
+ z6=(.5[x5,x7], 0uh);
+ z7=(0uw, 4.5uh);
+
+ draw z1..z2{right}..z3{down}..z4{left}--z4';
+ draw z4{right}..z5{down}..z6{left}..z7;
+ penlabels(1,2,3,4,4',5,6,7);
+endchar;
+
+beginchar(c_four,12uw#+rm#,20uh#,0); "U+0034 digit four";
+ pickup frame_pen;
+ z1=(0uw, 6uh);
+ z2=(12uw, y1);
+ z3=(9uw, 19.5uh);
+ z4=(x3, 0.5uh);
+
+ draw z2--z1--z3;
+ draw z3--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(c_five,12uw#+rm#,20uh#,0); "U+0035 digit five";
+ pickup frame_pen;
+ z1=(10.5uw, 19.5uh);
+ z2=(3uw, y1);
+ z3=(1uw, 11uh);
+ z4=(.5[x3,x5], 14uh);
+ z5=(12uw, .5[y4,y6]);
+ z6=(.5[x5,x7], 0uh);
+ z7=(0uw, 4.5uh);
+
+ draw z1--z2--z3 & z3..z4{right}..z5{down}..z6{left}..z7;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(c_six,12uw#+rm#,20uh#,0); "U+0036 digit six";
+ pickup frame_pen;
+ z1=(7uw, 19.5uh);
+ z2=(1uw, 6uh);
+ eye(2,3,4,5)(10uw, 12uh);
+
+ draw z1{-1,-1}..z2{down};
+ draw_eye(2,3,4,5);
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(c_seven,12uw#+rm#,20uh#,0); "U+0037 digit seven";
+ pickup frame_pen;
+ z1=(1uw, 19.5uh);
+ z2=(7uw, 18uh);
+ z3=(11uw, y1);
+ z4=(3uw, 10uh);
+ z5=(x4, 0.5uh);
+ draw z1--z3 & z3{curl 0}..{down}z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(c_eight,12uw#+rm#,20uh#,0); "U+0038 digit eight";
+ pickup frame_pen;
+ z4=(6uw, 11uh);
+ eye(1,2,3,4)(9uw, 9uh);
+ eye(5,4,6,7)(10uw, 11uh);
+
+ draw_eye(1,2,3,4);
+ draw_eye(5,4,6,7);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(c_nine,12uw#+rm#,20uh#,0); "U+0039 digit nine";
+ pickup frame_pen;
+ z1=(5uw, 0.5uh);
+ z2=(1uw, 14uh);
+ eye(2,3,4,5)(10uw, 12uh);
+
+ draw z1{1,1}..z4{up};
+ draw_eye(2,3,4,5);
+ penlabels(1,2,3,4,5);
+endchar;
+
+%%%%%% end of mmlnums.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmnums.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmnums.mf
new file mode 100644
index 00000000000..4daf5495e32
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmnums.mf
@@ -0,0 +1,167 @@
+% mmnums.mf -- malayalam numerals
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+beginchar(c_mal_quarter,2uw#+rm#,20uh#,8uh#); "malayalam sign for one quarter";
+ pickup frame_pen;
+ z1=(0uw, 19.5uh);
+ z2=(x1, -8uh);
+ z3=(3uw, -8uh);
+
+ draw z1--z2 & z2--z3;
+ penlabels(1,2,3);
+endchar;
+
+% Alternatively, Tha can be used for zero
+
+beginchar(c_mal_zero,32uw#+rm#,20uh#,0); "U+0D66 malayalam digit zero";
+ pickup frame_pen;
+ z1=(1uw, 6.5uh);
+ eye(1,2,3,4)(13uw,13uh);
+ z5=(0, 9uh);
+ z6=(11uw, 19.5uh);
+ z7=(32uw, y6);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}---z7;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(c_mal_one,32uw#+rm#,20uh#,8uh#); "U+0D67 malayalam digit one";
+ pickup frame_pen;
+ z1=(8uw, -7.5uh);
+ z2=(5uw, y1);
+ z3=(0, -3.5uh);
+ z4=(x2, .5uh);
+ z5=(32uw, y4);
+ end_tha_bow(5,6,7,8,9);
+
+ draw z1---z2{left}..z3{up}..z4{right}---z5;
+ draw z5---z6{up}..z7{left}..z8{down}---z9;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(c_mal_two,34uw#+rm#,20uh#,0); "U+0D68 malayalam digit two";
+ pickup frame_pen;
+ x2=0;
+ large_bow(1,2,3,4,5);
+ z6=(x5+3uw, 0.5uh);
+ z7=(34uw, y6);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+beginchar(c_mal_three,46uw#+rm#,20uh#,0); "U+0D69 malayalam digit three";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6,7,8);
+ z9=(x8+3uw, 0.5uh);
+ z10=(46uw, y9);
+
+ draw_letter_na(1,2,3,4,5,6,7,8);
+ draw z8..z9---z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(c_mal_four,26uw#+rm#,28uh#,0); "U+0D6A malayalam digit four";
+ pickup frame_pen;
+ x2=0;
+ letter_ra(1,2,3,4,5,6',7');
+ z6 = (11uw, y6');
+ z7 = (26uw, 24uh);
+ z8 = (x7-6uw, 28uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{up}..z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_mal_five,28uw#+rm#,24uh#,6uh#); "U+0D6B malayalam digit five";
+ pickup frame_pen;
+ x2=6uw;
+
+ z1=(x2+3uw, 0uh);
+ z2=(x2, 9uh);
+ z3=(x2+8.5uw, 18uh);
+ z4=(x2+15uw, 13uh);
+ z5=(x2+8uw, 8uh);
+ z6=(x2+6uw, y5);
+ z7=(x2+16uw, .5[y6,y8]);
+ z8=(x5, -6uh);
+ z9=(12uw, -6uh);
+ z10=(0, 10uh);
+ z11=(14uw, 24uh);
+ z12=(28uw, 10uh);
+ z13=(26uw, -2uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}..{left}z5---z6;
+ draw z6---z5{right}..z7{down}..z8{left}..z9{left}..z10{up}..z11{right}..
+ z12{down}..z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(c_mal_six,48uw#+rm#,20uh#,8uh#); "U+0D6C malayalam digit six";
+ pickup frame_pen;
+ x2=0;
+ letter_n_na(1',2',3,4',5',6,7',8',9,10',11');
+ z1 = z1'+(0, 2uh);
+ y2 = y4 = y7 = y2' + 1uh;
+ x2 = x2'; x4 = x4'; x7 = x7';
+ y5 = y8 = y5' + 2uh;
+ x5 = x5'; x8 = x8';
+
+ z10=(x10', 11uh);
+ z11=(x10', 8uh);
+ z12=(32uw, -8uh);
+ z13=(30uw, y12);
+
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z5---z4{up}..z6{right}..z7{down}---z8;
+ draw z8---z7{up}..z9{right}..z10---z11..z12---z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(c_mal_seven,30uw#+rm#,20uh#,0); "U+0D6D malayalam digit seven";
+ pickup frame_pen;
+ x2=14uw;
+ y4=0uh;
+ eye(1,2,3,4)(12uw,12uh);
+ z5=(10uw, 0);
+ z6=(0, 10uh);
+ z7=(12uw, 20uh);
+ z8=(30uw, 0);
+
+ draw_eye(1,2,3,4);
+ draw z4..z5{left}..z6{up}..z7{right}..z8{down};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_mal_eight,34uw#+rm#,20uh#,10uh#); "U+0D6E malayalam digit eight";
+ pickup frame_pen;
+ x2=0;
+ large_bow(1,2,3,4,5);
+ z6=(x5+3uw, 0.5uh);
+ z7=(34uw, y6);
+
+ z8=(x7, 19.5uh);
+ z9=(x7-10uw, -10uh);
+ z10=(x5-2uw, y9);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7;
+ draw z8---z7..z9---z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(c_mal_nine,32uw#+rm#,28uh#,0); "U+0D6F malayalam digit nine";
+ pickup frame_pen;
+ x2=0;
+ letter_na(1,2,3,4,5,6,7,8');
+ virama_tail(7,8,9,10,11,12,13);
+ draw z1..z2{up}..z3{right}..{down}z4---z5;
+ draw z5---z4{up}..z6{right}..z7{down}..z8{left}..z9{up}..
+ z10..z11{up}..z12{left}..z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmpunct.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmpunct.mf
new file mode 100644
index 00000000000..a5328284041
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmpunct.mf
@@ -0,0 +1,278 @@
+% mmpunct.mf -- interpunction for use with malayalam
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+%%%%%% some macros
+
+def dot(suffix a,b,c,d) =
+ eye(a,b,c,d)(3uw,3uh);
+enddef;
+
+def draw_dot(suffix a,b,c,d) =
+ draw_eye(a,b,c,d);
+ fill z.a..z.b..z.c..z.d..cycle;
+enddef;
+
+def comma(suffix a,b,c,d,e,f) =
+ dot(a,b,c,d);
+ z.e = (x.c + .5uw, y.d - 1.5uh);
+ z.f = (x.d, y.d - 7uh);
+enddef;
+
+def upsidedown_comma(suffix a,b,c,d,e,f) =
+ dot(a,b,c,d);
+ z.e = (x.a - .5uw, y.b + 1.5uw);
+ z.f = (x.d, y.b + 7uh);
+enddef;
+
+def draw_comma(suffix a,b,c,d,e,f) =
+ draw_dot(a,b,c,d)
+ draw z.b{right}..z.e{down}..z.f;
+enddef;
+
+def draw_upsidedown_comma(suffix a,b,c,d,e,f) =
+ draw_dot(a,b,c,d)
+ draw z.d{left}..z.e{up}..z.f;
+enddef;
+
+%%%%%% actual punctuation marks
+
+beginchar(c_hyphen, 12uw#+rm#, 11uh#, 0uh#); "U+2010 hyphen";
+ pickup frame_pen;
+ z1 = (0, 10uh);
+ z2 = (12uw, 10uh);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+% The funny thing happens that in Malayalam an en-dash is as wide
+% as a letter ma, and an em-dash as wide as a letter na.
+
+beginchar(c_en_dash, 20uw#+rm#, 11uh#, 0uh#); "U+2013 en-dash";
+ pickup frame_pen;
+ z1 = (0, 10uh);
+ z2 = (20uw, 10uh);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+beginchar(c_em_dash, 32uw#+rm#, 11uh#, 0uh#); "U+2014 em-dash";
+ pickup frame_pen;
+ z1 = (0, 10uh);
+ z2 = (32uw, 10uh);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+beginchar(c_comma,3uw#+rm#, 3uh#, 7uh#); "U+002C comma";
+ pickup sub_pen;
+ x1 = 0;
+ y4 = 0;
+ comma(1,2,3,4,5,6);
+ draw_comma(1,2,3,4,5,6);
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(c_period,3uw#+rm#,3uh#,0); "U+002E period";
+ pickup sub_pen;
+ x1 = 0;
+ y4 = 0;
+ dot(1,2,3,4);
+ draw_dot(1,2,3,4);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(c_semicolon,3uw#+rm#, 16uh#, 7uh#); "U+003B semicolon";
+ pickup sub_pen;
+ x1 = 0;
+ y2 = 16uh;
+ dot(1,2,3,4);
+ x5 = 0;
+ y8 = 0;
+ comma(5,6,7,8,9,10);
+ draw_dot(1,2,3,4);
+ draw_comma(5,6,7,8,9,10);
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(c_colon,3uw#+rm#, 16uh#, 0uh#); "U+003A colon";
+ pickup sub_pen;
+ x1 = 0;
+ y2 = 16uh;
+ dot(1,2,3,4);
+ x5 = 0;
+ y8 = 0;
+ dot(5,6,7,8);
+ draw_dot(1,2,3,4);
+ draw_dot(5,6,7,8);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_open_quote,3uw#+rm#, 25uh#, 0); "U+2018 single turned comma quotation mark";
+ pickup sub_pen;
+ x5 = 0uw;
+ y6 = 25uh;
+ upsidedown_comma(1,2,3,4,5,6);
+ draw_upsidedown_comma(1,2,3,4,5,6);
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(c_close_quote,3uw#+rm#, 25uh#, 0); "U+2019 single comma quotation mark";
+ pickup sub_pen;
+ x1 = 0;
+ y2 = 25uh;
+ comma(1,2,3,4,5,6);
+ draw_comma(1,2,3,4,5,6);
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(c_open_paren, 6uw#+rm#, 30uh#, 10uh#); "U+0028 opening parenthesis";
+ pickup frame_pen;
+ z1 = (6uw, 30uh);
+ z2 = (0, .5[y1,y3]);
+ z3 = (x1, -10uh);
+ draw z1..z2{down}..z3;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(c_close_paren, 6uw#+rm#, 30uh#, 10uh#); "U+0029 closing parenthesis";
+ pickup frame_pen;
+ z1 = (0, 30uh);
+ z2 = (6uw, .5[y1,y3]);
+ z3 = (x1, -10uh);
+ draw z1..z2{down}..z3;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(c_slash, 10uw#+rm#, 30uh#, 10uh#); "U+002F slash";
+ pickup frame_pen;
+ z1 = (10uw, 30uh);
+ z2 = (0, -10uh);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+beginchar(c_open_bracket, 6uw#+rm#, 30uh#, 10uh#); "U+005B opening square bracket";
+ pickup frame_pen;
+ z1 = (6uw, 30uh);
+ z2 = (0, y1);
+ z3 = (x2, -10uh);
+ z4 = (x1, y3);
+ draw z1--z2--z3--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(c_close_bracket, 6uw#+rm#, 30uh#, 10uh#); "U+005D closing square bracket";
+ pickup frame_pen;
+ z1 = (0, 30uh);
+ z2 = (6uw, y1);
+ z3 = (x2, -10uh);
+ z4 = (x1, y3);
+ draw z1--z2--z3--z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(c_question_mark, 12uw#+rm#, 25uh#, 0); "U+003F question mark";
+ pickup frame_pen;
+ z1=(0, 21uh);
+ z2=(.5[x1,x3], 25uh);
+ z3=(12uw, 21uh);
+ z4=(3uw, 11uh);
+ z5=(x2, 8uh);
+ z5'=(9uw, 9uh);
+ x7=x2;
+ y9=0;
+ eye(6,7,8,9)(4uw, 4uh);
+ draw z1..z2{right}..z3{down}..z4{down}..z5{right}..z5';
+ draw_eye(6,7,8,9);
+ penlabels(1,2,3,4,5,5',6,7,8,9);
+endchar;
+
+beginchar(c_exlamation_mark, 4uw#+rm#, 25uh#, 0); "U+0021 exclamation mark";
+ pickup frame_pen;
+ z1=(x4, 25uh);
+ z2=(x4, 9uh);
+ z3=(0, 2uh);
+ eye(3,4,5,6)(4uw,4uh);
+ draw z1--z2;
+ draw_eye(3,4,5,6);
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+%%%%%% dotted circle to show placement of accents/matras, etc.
+
+beginchar(c_dotted_circle,30uw#+rm#,25uh#,5uh#); "U+25CC dotted circle";
+ numeric n, d, db, r, rb, i, a;
+ z0 = (15uw, 10uh);
+ n:=14;
+ d:=360/n; db:=360/(4n);
+ r:=15uh; rb:=15uh - thin;
+
+ a := 0;
+ forsuffixes s = 1,2,3,4,5,6,7,8,9,10,11,12,13,14 :
+ z.s.a = z0 + r * dir (a+db);
+ z.s.b = z0 + r * dir a;
+ z.s.c = z0 + r * dir (a-db);
+ z.s.d = z0 + rb * dir (a-db);
+ z.s.e = z0 + rb * dir a;
+ z.s.f = z0 + rb * dir (a+db);
+ fill z.s.a..z.s.b..z.s.c--z.s.d..z.s.e..z.s.f--cycle;
+ a := a + d;
+ penlabels(s.a,s.b,s.c,s.d,s.e,s.f);
+ endfor;
+ penlabels(0);
+endchar;
+
+%%%%%% white square, to show missing characters
+
+if unknown newfont:
+beginchar(c_white_square,30uw#+rm#,25uh#,5uh#); "U+25A1 white square";
+ pickup pensquare scaled thick;
+
+ z1=(0,-5uh)+.5(thick, thick);
+ z2=(0,25uh)+.5(thick, -thick);
+ z3=(30uw, 25uh)+.5(-thick, - thick);
+ z4=(30uw, -5uh)+.5(-thick, thick);
+
+ draw z1--z2 & z2--z3 & z3--z4 & z4--cycle;
+
+ penlabels(1,2,3,4);
+endchar;
+fi;
+
+%%%%%% finally, a nice ornamental star
+
+if unknown newfont:
+beginchar(c_star,(30*cosd30)*uh#+rm#,25uh#,5uh#); "ornamental star";
+ pickup pencircle scaled 1.5uh;
+ z0=(15*cosd30*uh, 10uh); % center of star
+ rad := 15uh;
+ % points of star
+ z1=z0 + (0,rad);
+ z2=z1 rotatedabout (z0, 60);
+ z3=z2 rotatedabout (z0, 60);
+ z4=z3 rotatedabout (z0, 60);
+ z5=z4 rotatedabout (z0, 60);
+ z6=z5 rotatedabout (z0, 60);
+ % inner circle
+ rad := 5uh;
+ z10=(z0 + (0,rad)) rotatedabout (z0, 30);
+ z11=z10 rotatedabout (z0, 60);
+ z12=z11 rotatedabout (z0, 60);
+ z13=z12 rotatedabout (z0, 60);
+ z14=z13 rotatedabout (z0, 60);
+ z15=z14 rotatedabout (z0, 60);
+ filldraw z1--z10--z2--z11--z3--z12--z4--z13--z5--z14--z6--z15--cycle;
+ cullit;
+ rad := 4.5uh;
+ z20 = z0 + (0, rad);
+ z21 = z0 + (rad, 0);
+ z22 = z0 - (0, rad);
+ z23 = z0 - (rad, 0);
+ unfill z20{right}..z21{down}..z22{left}..z23{up}..cycle;
+
+ penlabels(range 1 thru 23);
+endchar;
+fi;
+
+% eof
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmrconj.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmrconj.mf
new file mode 100644
index 00000000000..9893bd89ae5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmrconj.mf
@@ -0,0 +1,254 @@
+% mmrconj.mf -- Malayalam ra-conjuncts
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+beginchar(c_k_ra,40uw#+rm#,20uh#,8uh#); "k+ra";
+ pickup frame_pen;
+ x6=8uw;
+ letter_ka(1,2,3,4,4',5,6,7,8,9,10',11');
+ subscribed_ra(9,10,11,12,13)(8uh);
+
+ draw z1{up}..z2{right}..z3{down}..z4{left}..cycle;
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10..z11..z12{up}..z13;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(c_k_k_ra,55uw#+rm#,20uh#,10uh#); "k+k+ra";
+ pickup frame_pen;
+ x6=8uw;
+ letter_k_ka(1,2,3,4,4',5,6,7,8,9,10,11,12,13',14');
+ z13 = (x13', 8uh);
+ subscribed_ra(13,14,15,16,17)(10uh);
+
+ draw_eye(1,2,3,4);
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11{up}..z12{right}..z13{down}..z14..z15..z16{up}..z17;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(c_g_ra,40uw#+rm#,20uh#,8uh#); "g+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_ga(1,2,3,4,5,6',7');
+ z6=(x6', 8uh);
+ subscribed_ra(6,7,8,9,10)(8uh);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..
+ z7..z8..z9{up}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+beginchar(c_ch_ra,61uw#+rm#,20uh#,10uh#); "ch+ra";
+ pickup frame_pen;
+ x6=8uw;
+ letter_cha(1,2,3,4,5,6,7,8,9,10,11,12',13',14');
+ end_loop_tail(11,12,13,14,15,16',17');
+ subscribed_ra(15,16,17,18,19)(10uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left};
+ draw z6--z7..z8;
+ draw z8..z9{up}..z10{right}..z11{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16..z17..z18{up}..z19;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+beginchar(c_j_ra,40uw#+rm#,20uh#,16uh#); "j+ra";
+ pickup frame_pen;
+ x1=8uw;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+ % tail for ra
+ z16'=(x1+26uw, 2uh);
+ z19=(x1+32uw, -4.5uh);
+ z20=(24uw, -16uh);
+ z21=(0, 5uh);
+ z22=(3uw, 20uh);
+
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw_eye(1,2,3,4);
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z16'{right}..z19{down}..z20{left}..
+ z21{up}..z22;
+ draw_eye(15,16,17,18);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,16',17,18,19,20,21,22);
+endchar;
+
+beginchar(c_tt_ra,18uw#+6uw#+rm#,20uh#,0uh#); "tt+ra";
+ pickup frame_pen;
+ x3=6uw;
+ letter_tta(1,2,3,4,5,6',7');
+ z6=(15uw, 0);
+ z7=(12uw, 0);
+ z8=(0, 12uh);
+ z9=(2uw, 19.5uh);
+
+ draw z1..z2{left}..z3{down}..z4{4,1}..z5{down}..z6..z7..z8{up}..z9;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(c_t_t_ra,64uw#+rm#,ht#,10uh#); "t+t+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_ta(1,2,3,4,5,6,7',8',9');
+ z7=z7'-(1uw,0);
+ z8=z8'-(2uw,0);
+ z9=(x8,0.5uh);
+ x9a = x8-2uw;
+ letter_ta(8a,9a,10',11,12,13,14,15',16');
+ z10=z10' + (1uw, 0);
+ z15=(x15',8uh);
+ subscribed_ra(15,16,17,18,19)(10uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}---z9;
+ draw z9---z8{up}..z10{right}..z11{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16..z17..z18{up}..z19;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+beginchar(c_t_ra,38uw#+rm#,ht#,8uh#); "t+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_ta(1,2,3,4,5,6,7,8',9');
+ z8=(x8', 8uh);
+ z9=(19uw, -8uh);
+ z10=(0, 10uh);
+ z11=(3.5uw, 20uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}..z6{up}..
+ z7{right}..z8{down}..z9{left}..z10{up}..z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_d_ra,18uw#+8uw#+rm#,20uh#,6uh#); "d+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_da(1',2,3,4,5,6,7',8',9');
+ z1=z1'+(1.5uw, 0);
+ z7=z7'-(0, 2uh);
+ % ra around letter
+ z8=(17uw, -6uh);
+ z9=(12uw, -6uh);
+ z10=(0, 10uh);
+ z11=(3.5uw, 20uh);
+ draw z1..z2{up}..z3{right}..z4{down}..{left}z5---z6;
+ draw z6---z5{right}..z7{down}..z8..z9..z10{up}..z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_dh_ra,40uw#+rm#,20uh#,6uh#); "dh+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_dha(1,2,3,4,5,6,7,8);
+ subscribed_ra(7,9,10,11,12)(6uh);
+
+ draw z1..z2{down}..z3{right}..{up}z4---z5;
+ draw z5---z4{down}..z6{right}..z7{up}..z8;
+ draw z7..z9..z10..z11{up}..z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_n_t_ra,52uw#+rm#,20uh#,10uh#); "n+t+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_na(1,2,3,4,5,6a,7',8');
+ z6=(.5[x6a,x6b], y6a);
+ x5'=x5-2uw;
+ letter_ta(4',5',6b,7,8,9,10,11',12');
+ z11=(x11', 8uh);
+ subscribed_ra(11,12,13,14,15)(10uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z4{up}..z6{right}..z7{down}..z8{left}..z9{up}..z10{right}..
+ z11{down}..z12..z13..z14{up}..z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_n_d_ra,35uw#+6uw#+rm#,20uh#,8uh#); "n+d+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_na(1,2,3,4,5,6,7a,8a);
+ letter_da(4',5',6,7',8',9',10',11',12');
+ %
+ z7=z7'-(0,.5uh);
+ z8=z8'-(0,1uh);
+ z9=z9'-(0,1uh);
+ z10=(x10', 3uh);
+ z11=(.5[x10,x12], -8uh);
+ z12=(0, 10uh);
+ z13=(3.5uw, 20uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z4{up}..z6{right}..z7{down}..z8{left}---z9;
+ draw z8{right}..z10{down}..z11{left}..z12{up}..z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+beginchar(c_n_ra,40uw#+rm#,20uh#,8uh#); "n+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_na(1,2,3,4,5,6,7',8');
+ z7=(x7', 8uh);
+ subscribed_ra(7,8,9,10,11)(8uh);
+
+ draw z1..z2{up}..z3{right}..{down}z4---z5;
+ draw z5---z4{up}..z6{right}..z7{down}..z8..z9..z10{up}..z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_bh_ra,22uw#+6uw#+rm#,20uh#,4uh#); "bh+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_bha(1',2,3,4,5,6,7,8,9,10',11',12');
+ z1=z1'+(1.5uw, 2uw);
+ z10=(x10', 2uh);
+ % ra around letter
+ z11=(18uw, -4uh);
+ z12=(12uw, -4uh);
+ z13=(0, 10uh);
+ z14=(3.5uw, 19.5uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5..z6..z7{down}..
+ z8..z9..z10{down}..z11..z12..z13{up}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_sh_ra,47uw#+rm#,ht#,8uh#); "sh+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_ga(1,2,3,4,5,6,7');
+ end_loop_tail(6,7,8,9,10,11',12');
+ subscribed_ra(10,11,12,13,14)(8uh);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7{left}..
+ z8{up}..z9{right}..z10{down}..z11..z12..z13{up}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,11,12,13,14);
+endchar;
+
+beginchar(c_s_ra,52uw#+rm#,20uh#,8uh#); "s+ra";
+ pickup frame_pen;
+ x2=8uw;
+ letter_sa(1,2,3,4,5,6,7,8,9,10);
+ subscribed_ra(9,11,12,13,14)(8uh);
+
+ draw z1..z2{up}..z3{right}..{down}z4---z5;
+ draw z5---z4{up}..z6{right}..z7{down}..z8{right}..z9{up}..z10;
+ draw z9{down}..z11..z12..z13{up}..z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_h_ra,42uw#+8uw#+rm#,20uh#,10uh#); "h+ra";
+ pickup frame_pen;
+ % bow
+ x2=8uw;
+ letter_ha(1,2,3,4,5,6,7,8,9,10,11',12');
+ z11=(x11', 8uh);
+ subscribed_ra(11,12,13,14,15)(10uh);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7..z8;
+ draw z8..z9{up}..z10{right}..z11{down}..z12..z13..z14{up}..z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+%%%%%% end of mmconj.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmscons.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmscons.mf
new file mode 100644
index 00000000000..ab4aec0ff8f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmscons.mf
@@ -0,0 +1,169 @@
+% mmscons.mf -- Malayalam stacked consonants
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+beginchar(c_g_ga,32uw#+rm#,20uh#,18uh#); "g+ga";
+ pickup frame_pen;
+ path ga_path;
+ x2=0uw;
+ letter_ga(1,2,3,4,5,6,7);
+ ga_path := z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7;
+ ga_path := ga_path yscaled 19/20 shifted (0, 1uh);
+ draw ga_path;
+ ga_path := ga_path shifted (0, -19uh);
+ draw ga_path;
+endchar;
+
+beginchar(c_nn_nna,50uw#+rm#,20uh#,18uh#); "nn+nna";
+ pickup frame_pen;
+ transform upper, lower;
+ upper := identity yscaled 19/20 shifted (0, 1uh);
+ lower := identity yscaled 19/20 shifted (0, -18uh);
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9',10',11');
+ z9=(25uw, 20uh);
+ z10=(33uw, 10uh);
+ z11=(x10, 0);
+ % third bow
+ z12=(41uw, 20uh);
+ z13=(50uw, 10uh);
+ z14=(46uw, 0);
+
+ draw (z1{up}..z2{right}..z3{down}..z4{left}..cycle) transformed upper;
+ draw (z4{left}..z5{up}..z6{right}..z7{down}---z8) transformed upper;
+ draw (z8---z7{up}..z9{right}..z10{down}---z11) transformed upper;
+ draw (z11---z10{up}..z12{right}..z13{down}..z14) transformed upper;
+ draw (z1{up}..z2{right}..z3{down}..z4{left}..cycle) transformed lower;
+ draw (z4{left}..z5{up}..z6{right}..z7{down}---z8) transformed lower;
+ draw (z8---z7{up}..z9{right}..z10{down}---z11) transformed lower;
+ draw (z11---z10{up}..z12{right}..z13{down}..z14) transformed lower;
+endchar;
+
+beginchar(c_p_pa,36uw#+rm#,20uh#,16uh#); "p+pa";
+ pickup frame_pen;
+ transform lower;
+ lower := identity scaled 8/10 shifted (7.2uw, -16uh);
+ % bow
+ z1=(4uw, 0);
+ small_bow(1,2,3,4,5);
+ % end hook
+ z6=(x5+3uw, 1/40h);
+ z7=(36uw, y6);
+ z8=(x7, 19.5uh);
+
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7 & z7---z8;
+ draw (z1..z2{up}..z3{right}..z4{down}..z5) transformed lower;
+ draw ((z5..z6---z7) transformed lower) --- z7;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_rr_rra,20uw#+rm#,20uh#,16uh#); "rr+rra";
+ pickup frame_pen;
+ lower := identity scaled 8/10 shifted (2uw, -16uh);
+ z1=(4uw, 0);
+ z2=(0, 10uh);
+ z3=(10uw, 20uh);
+ z4=(20uw, 10uh);
+ z5=(16uw, 0);
+ draw_bow(1,2,3,4,5);
+ draw (z1..z2{up}..z3{right}..z4{down}..z5) transformed lower;
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(c_sh_sha,32uw#+rm#,20uh#,18uh#); "sh+sha";
+ pickup frame_pen;
+ transform upper, lower;
+ upper := identity yscaled 19/20 shifted (0, 1uh);
+ lower := identity yscaled 19/20 shifted (0, -18uh);
+ x2=0;
+ letter_sha(1,2,3,4,5,6,7,8,9);
+ draw (z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7{left}..
+ z8{up}..z9) transformed upper;
+ draw (z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..z7{left}..
+ z8{up}..z9) transformed lower;
+endchar;
+
+beginchar(c_s_sa,44uw#+rm#,20uh#,18uh#); "s+sa";
+ pickup frame_pen;
+ transform upper, lower;
+ upper := identity yscaled 19/20 shifted (0, 1uh);
+ lower := identity yscaled 19/20 shifted (0, -18uh);
+ x2=0;
+ letter_sa(1,2,3,4,5,6,7,8,9,10);
+ draw (z1..z2{up}..z3{right}..{down}z4---z5) transformed upper;
+ draw (z5---z4{up}..z6{right}..z7{down}..z8{right}..z9{up}..z10) transformed upper;
+ draw (z1..z2{up}..z3{right}..{down}z4---z5) transformed lower;
+ draw (z5---z4{up}..z6{right}..z7{down}..z8{right}..z9{up}..z10) transformed lower;
+endchar;
+
+beginchar(c_dd_dda,44uw#+rm#,20uh#,18uh#); "dd+dda";
+ pickup frame_pen;
+ transform upper, lower;
+ upper := identity yscaled 19/20 shifted (0, 1uh);
+ lower := identity yscaled 19/20 shifted (0, -18uh);
+ x2=0;
+ letter_dda(1,2,3,4,5,6,7,8,9,10);
+ draw (z1..z2{up}..z3{right}..z4{down}..z5{right}..{up}z6---z7) transformed upper;
+ draw (z7---z6{down}..z8{right}..z9{up}..z10) transformed upper;
+ draw (z1..z2{up}..z3{right}..z4{down}..z5{right}..{up}z6---z7) transformed lower;
+ draw (z7---z6{down}..z8{right}..z9{up}..z10) transformed lower;
+endchar;
+
+beginchar(c_c_ca,36uw#+rm#,20uh#,10uh#); "c+ca";
+ pickup frame_pen;
+ x6=0;
+ letter_ca(1,2,3,4,5,6,7,8);
+ x9=x8;
+ make_sub_triangle(9,11,12,13);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left};
+ draw z6--z7--z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_b_ba,46uw#+rm#,20uh#,10uh#); "b+ba";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9,10,11);
+ % end hook
+ z12=(x11+3uw, 0.5uh);
+ z13=(46uw, y12);
+ z14=(x13, 19.5uh);
+ x15=x13;
+ make_sub_triangle(15,16,17,18);
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}..z11;
+ draw z11..z12---z13---z14;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_y_ya,32uw#+rm#,20uh#,10uh#); "y+ya";
+ pickup frame_pen;
+ x5=0uw;
+ letter_ya(1,2,3,4,5,6,7,8,9,10);
+ x11=x9;
+ make_sub_triangle(11,12,13,14);
+ draw z1..z2{right}..z3{down}..z4{left}..z5{up}..z6{right}..
+ z7{(1,-8)}..z8{right}..z9{up}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_v_va,34uw#+rm#,ht#,10uh#); "v+va";
+ pickup frame_pen;
+ % bow
+ z1=(4uw, 0);
+ large_bow(1,2,3,4,5);
+ % end hook
+ z6=(x5+3uw, 0.5uh);
+ z7=(34uw, y6);
+ z8=(x7, 19.5uh);
+ x9=x8;
+ make_sub_triangle(9,10,11,12);
+ draw_bow(1,2,3,4,5);
+ draw z5..z6---z7---z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+%%%%%% end of mmscons.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmsec.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmsec.mf
new file mode 100644
index 00000000000..93aa5a7d39c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmsec.mf
@@ -0,0 +1,263 @@
+% mmsec.mf -- malayalam secondary consonants and reepham
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+if unknown newfont :
+beginchar(c_sec_ka,32uw#+rm#,11uh#,0); "secondary ka";
+ pickup frame_pen;
+ x6 = 0;
+ letter_ka(1,2,3,4,4',5,6,7,8,9,10,11);
+
+ draw z1{down}..z4{right}..z3{up};
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,20,21);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_k_ka,47uw#+rm#,11uh#,0); "secondary k+ka";
+ pickup frame_pen;
+ x6 = 0;
+ letter_k_ka(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14);
+
+ draw z1{down}..z4{right}..z3{up};
+ draw z4'..z5{left}..z6{up}..z7{right}---z8{right}..z9{down}..
+ z10{left}..z11{up}..z12{right}..z13{down}..z14;
+ penlabels(1,2,3,4,4',5,6,7,8,9,10,11,12,13,14);
+endchar;
+fi;
+
+beginchar(c_sec_ya,12uw#+rm#,20uh#,10uh#); "secondary ya";
+ pickup frame_pen;
+ z1=(8uw, 19.5uh);
+ z2=(7uw, 12uh);
+ z3=(12uw, -4uh);
+ z4=(.5[x3,x5], -10uh);
+ z5=(-1uw, -6uh);
+ z6=(6uw, 0);
+ draw z1..z2..z3{down}..z4{left}..z5{up}..z6{up};
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+if unknown newfont:
+beginchar(c_sec_ya_os,6uw#+rm#,20uh#,12uh#); "secondary ya (old style)";
+ pickup frame_pen;
+ z1=(2uw, 19.5uh);
+ z2=(6uw, 5uh);
+
+ z8=(-rm, .5uh);
+ z7=(x8-4uw, -6uh);
+ z6=(x5+5uw, y7);
+ z5=(x8-16uw, .5[y7,y4]);
+ z4=(x5+3uw, -12uh);
+ z3=(x8, y4);
+
+ draw z1..z2{down}..z3..z4..z5{up}..z6{right}---z7{right}..z8{up};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_ya_deep,7uw#+rm#,20uh#,18uh#); "secondary ya (old style, deep version)";
+ pickup frame_pen;
+ z1=(2uw, 19.5uh);
+ z2=(7uw, 2uh);
+
+ z8=(-rm, -5.5uh);
+ z7=(x8-4uw, -12uh);
+ z6=(x5+5uw, y7);
+ z5=(x8-16uw, .5[y7,y4]);
+ z4=(x5+3uw, -18uh);
+ z3=(x8, y4);
+
+ draw z1..z2{down}..z3..z4..z5{up}..z6{right}---z7{right}..z8{up};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_ya_deeper,7uw#+rm#,20uh#,22uh#); "secondary ya (old style, deeper version)";
+ pickup frame_pen;
+ z1=(2uw, 19.5uh);
+ z2=(7uw, 0uh);
+
+ z8=(-rm, -9.5uh);
+ z7=(x8-4uw, -16uh);
+ z6=(x5+5uw, y7);
+ z5=(x8-16uw, .5[y7,y4]);
+ z4=(x5+3uw, -22uh);
+ z3=(x8, y4);
+
+ draw z1..z2{down}..z3..z4..z5{up}..z6{right}---z7{right}..z8{up};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_ya_deepest,8uw#+rm#,20uh#,28uh#); "secondary ya (old style, deepest version)";
+ pickup frame_pen;
+ z1=(2uw, 19.5uh);
+ z2=(8uw, -3uh);
+
+ z8=(-rm, -15.5uh);
+ z7=(x8-4uw, -22uh);
+ z6=(x5+5uw, y7);
+ z5=(x8-16uw, .5[y7,y4]);
+ z4=(x5+3uw, -28uh);
+ z3=(x8, y4);
+
+ draw z1..z2{down}..z3..z4..z5{up}..z6{right}---z7{right}..z8{up};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_reepham,2uw#+rm#,29uh#,0); "reepham";
+ pickup sub_pen;
+ z1=(0uw, 29uh);
+ z2=(2uw, 29uh);
+ z3=(1uw, 22uh);
+ draw z1--z2 & z2--z3 & z3--z1;
+ fill z1--z2--z3--cycle;
+ penlabels(1,2,3);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_ra_narrow,28uw#+rm#,0,6uh#); "secondary ra (narrow version)";
+% width adjusted for "Ta", "ma", "La", "zha"
+ pickup frame_pen;
+ z1=(28uw, .5uh);
+ subscribed_ra(1,2,3,4,5)(6uh);
+ draw z1{down}..z2..z3..z4{up}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_ra,42uw#+rm#,0,9uh#); "secondary ra";
+% width adjusted for "kha", "nya", "pa", "va"
+ pickup frame_pen;
+ z1=(42uw, .5uh);
+ subscribed_ra(1,2,3,4,5)(9uh);
+ draw z1{down}..z2..z3..z4{up}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_ra_wide,44uw#+rm#,0,9uh#); "secondary ra (wide version)";
+% width adjusted for "ca", "tha", "Sa"
+ pickup frame_pen;
+ z1=(44uw, .5uh);
+ subscribed_ra(1,2,3,4,5)(9uh);
+ draw z1{down}..z2..z3..z4{up}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_ra_wider,48uw#+rm#,0,10uh#); "secondary ra (wider version)";
+% width adjusted for "ca", "tha", "Sa"
+ pickup frame_pen;
+ z1=(48uw, .5uh);
+ subscribed_ra(1,2,3,4,5)(10uh);
+ draw z1{down}..z2..z3..z4{up}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_ra_even_wider,54uw#+rm#,0,11uh#); "secondary ra (even wider version)";
+% width adjusted for "nga", "ba", "Da", Dha"
+ pickup frame_pen;
+ z1=(54uw, .5uh);
+ subscribed_ra(1,2,3,4,5)(11uh);
+ draw z1{down}..z2..z3..z4{up}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sec_ra_widest,58uw#+rm#,0,12uh#); "secondary ra (widest version)";
+% width adjusted for "gha", "Na"
+ pickup frame_pen;
+ z1=(58uw, .5uh);
+ subscribed_ra(1,2,3,4,5)(12uh);
+ draw z1{down}..z2..z3..z4{up}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+
+beginchar(c_ref_sec_ra,4uw#+rm#,20uh#,8uh#); "reformed script secondary ra";
+ pickup frame_pen;
+ z1=(12uw, -7uh);
+ z2=(5uw, -8uh);
+ z3=(0, 2uh);
+ z4=(2uw, 20uh);
+ draw z1..z2..z3{up}..z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(c_sec_la,22uw#+rm#,0,12uh#); "secondary la";
+ pickup frame_pen;
+ z1=(19uw, 0);
+ z2=(22uw, -6uh);
+ z3=(17uw, -12uh);
+ z3'=(12uw, -6uh);
+ z4=(6uw, 0);
+ z5=(0, -6uh);
+ z6=(0, -8uh);
+ eye(6,7,8,9)(8uw,8uh);
+ draw_eye(6,7,8,9);
+ draw z6..z5{up}..z4{right}..z3'{down}..z3{right}..z2{up}..z1;
+ penlabels(1,2,3,3',4,5,6,7,8,9);
+endchar;
+
+beginchar(c_sec_va,18uw#+rm#,20uh#,0); "secondary va";
+ pickup frame_pen;
+ z1=(0, 0.5uh);
+ z2=(18uw, y1);
+ z3=(x2, 19.5uh);
+ draw z1--z2--z3;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(c_sec_va_sub,36uw#+rm#,20uh#,6uh#); "secondary va (subscribed version)";
+% version of secodary va for use with na to prevent confusion with mpa
+ pickup frame_pen;
+ z1=(0, -5.5uh);
+ z2=(36uw, y1);
+ z3=(x2, 19.5uh);
+ draw z1--z2--z3;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(c_sec_tha,30uw#+rm#,20uh#,0); "secondary tha";
+ pickup frame_pen;
+ z1=(0, 0.5uh);
+ z2=(30uw, y1);
+ end_tha_bow(2,3,4,5,6);
+ draw z1---z2;
+ draw_end_tha_bow(2,3,4,5,6);
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(c_sub_triangle,26uw#+rm#,0,10uh#); "subscribed triangle for double letters";
+ pickup frame_pen;
+ x1=26uw;
+ make_sub_triangle(1,2,3,4);
+endchar;
+
+beginchar(c_sec_ssa,30uw#+rm#,20uh#,0); "secondary ssa";
+ pickup frame_pen;
+ z1=(0, 1/40h);
+ z2=(30uw, y1);
+ end_ssa(2,3,4,5,6,7,8);
+ draw z1---z2;
+ draw_end_ssa(2,3,4,5,6,7,8);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+%%%%%% eof
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmstyles.txt b/Master/texmf-dist/fonts/source/public/malayalam/mmstyles.txt
new file mode 100644
index 00000000000..17b8f794445
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmstyles.txt
@@ -0,0 +1,47 @@
+
+Available font styles
+
+mm6 Malayalam Regular 6pt
+mm6s Malayalam Regular 6pt Subscript
+
+mm8 Malayalam Regular 8pt
+mm8s Malayalam Regular 8pt Subscript
+
+mm10 Malayalam Regular 10pt
+mm10s Malayalam Regular 10pt Subscript
+mmb10 Malayalam Bold 10pt
+mmb10s Malayalam Bold 10pt Subscript
+mmsl10 Malayalam Slanted 10pt
+mmsl10s Malayalam Slanted 10pt Subscript
+mmc10 Malayalam Calligraphic Regular 10pt
+mmc10s Malayalam Calligraphic Regular 10pt Subscript
+mmcb10 Malayalam Calligraphic Bold 10pt
+mmcb10s Malayalam Calligraphic Bold 10pt Subscript
+mmcsl10 Malayalam Calligraphic Slanted 10pt
+mmcsl10s Malayalam Calligraphic Slanted 10pt Subscript
+
+mm12 Malayalam Regular 12pt
+mm12s Malayalam Regular 12pt Subscript
+mmb12 Malayalam Bold 12pt
+mmb12s Malayalam Bold 12pt Subscript
+mmsl12 Malayalam Slanted 12pt
+mmsl12s Malayalam Slanted 12pt Subscript
+mmc12 Malayalam Calligraphic Regular 12pt
+mmc12s Malayalam Calligraphic Regular 12pt Subscript
+mmcb12 Malayalam Calligraphic Bold 12pt
+mmcb12s Malayalam Calligraphic Bold 12pt Subscript
+mmcsl12 Malayalam Calligraphic Slanted 12pt
+mmcsl12s Malayalam Calligraphic Slanted 12pt Subscript
+
+mm17 Malayalam Regular 17pt
+mm17s Malayalam Regular 17pt Subscript
+mmc17 Malayalam Calligraphic Regular 17pt
+mmc17s Malayalam Calligraphic Regular 17pt Subscript
+mmb17 Malayalam Bold 17pt
+mmb17s Malayalam Bold 17pt Subscript
+mmcb17 Malayalam Calligraphic Bold 17pt
+mmcb17s Malayalam Calligraphic Bold 17pt Subscript
+
+
+<eof>
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmtest.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmtest.mf
new file mode 100644
index 00000000000..b046a44d228
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmtest.mf
@@ -0,0 +1,26 @@
+% mmtest.mf -- Malayalam characters under design
+% (c) 1993 Jeroen Hellingman
+%
+% History:
+% 22-JAN-1993 last edit (JH)
+% 22-JAN-1993 added k+Sa (JH)
+% 14-JAN-1993 modified virama to look nicer on top,
+% added square brackets, slash (JH)
+% 10-JAN-1993 added ny+cha, t+bha, ornamental star (JH)
+% 30-DEC-1992 added Latin digits (JH)
+% 27-DEC-1992 added c+ca, b+ba, y+ya, v+va in mmsconj.mf (JH)
+% 26-DEC-1992 move to version 1.0 (Jeroen Hellingman)
+
+"Malayalam metafont, version 1.0e";
+"copyright 1993 Jeroen Hellingman";
+"last edit: 22-JAN-1993";
+
+endinput; % uncomment if no characters under design.
+imagerules;
+%endinput;
+
+%%%%%% characters under design
+
+"no more characters under design";
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/mmvowels.mf b/Master/texmf-dist/fonts/source/public/malayalam/mmvowels.mf
new file mode 100644
index 00000000000..41f86bffcef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/mmvowels.mf
@@ -0,0 +1,509 @@
+% mmvowels.mf -- malayalam vowels, vowel signs and virama
+% (c) 1993 Jeroen Hellingman
+% last edit: 24-JAN-1993
+
+beginchar(c_anusvara,12uw#+rm#,12uh#,0); "U+0D02 malayalam sign anusvara";
+ pickup frame_pen;
+ z1=(0, 6uh);
+ eye(1,2,3,4)(12uw,12uh);
+ draw_eye(1,2,3,4);
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(c_visarga,8uw#+rm#,20uh#,0); "U+0D03 malayalam sign visarga";
+ pickup frame_pen;
+ % first eye
+ z1=(0, 4uh);
+ eye(1,2,3,4)(8uw,8uh);
+ draw_eye(1,2,3,4);
+ % second eye
+ z5=(0, 16uh);
+ eye(5,6,7,8)(8uw,8uh);
+ draw_eye(5,6,7,8);
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_a,42uw#+rm#,20uh#,0); "U+0D05 malayalam letter a";
+ pickup frame_pen;
+ % first bow
+ z1=(4uw, 0);
+ z2=(0, 10uh);
+ z3=(9uw, 20uh);
+ % three-like shape
+ z4=(16uw, 13uh);
+ z5=(13uw, 9uh);
+ z6=(8uw, 9uh);
+ z7=(17uw, 4uh);
+ % second bow
+ z8=(13uw, 0);
+ z9=z6;
+ z10=(17uw, 20uh);
+ z11=(25uw, 10uh);
+ z12=(x11, .5uh);
+ % third bow
+ z13=(34uw, 20uh);
+ z14=(42uw, 10uh);
+ z15=(37uw, 0);
+ z16=(34uw, 5uh);
+ z17=(40uw, 16uh);
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}--z6;
+ draw z6--z5{right}..z7{down}..z8{left}..z9{up}..z10{right}..z11{down}--z12;
+ draw z12--z11{up}..z13{right}..z14{down}..z15{left}..z16{up}..z17;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+
+beginchar(c_aa,49uw#+rm#,20uh#,6uh#); "U+0D06 malayalam letter aa";
+ % uses definition of "malayalam letter a"
+ pickup frame_pen;
+ % first bow
+ z1=(4uw, 0);
+ z2=(0, 10uh);
+ z3=(9uw, 20uh);
+ % three-like shape
+ z4=(16uw, 13uh);
+ z5=(13uw, 9uh);
+ z6=(8uw, 9uh);
+ z7=(17uw, 4uh);
+ % second bow
+ z8=(13uw, 0);
+ z9=z6;
+ z10=(17uw, 20uh);
+ z11=(25uw, 10uh);
+ z12=(x11, .5uh);
+ % third bow
+ z13=(34uw, 20uh);
+ z14=(42uw, 10uh);
+ end_loop_tail(14,15,16,17,18,19,20);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5{left}--z6;
+ draw z6--z5{right}..z7{down}..z8{left}..z9{up}..z10{right}..z11{down}--z12;
+ draw z12--z11{up}..z13{right}..z14{down}..z15{left}..z16{up}..
+ z17{right}..z18{down}..z19{left}..z20;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
+endchar;
+
+beginchar(c_i,32uw#+rm#,20uh#,10uh#); "U+0D07 malayalam letter i";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9,10,11');
+ z11=(23uw, -4uh);
+ z12=(6uw, y11);
+ z13=(2uw, -7uh);
+ z14=(x12, -10uh);
+ z15=(34uw, y14);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}..z11---z12..z13{down}..
+ z14---z15;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginchar(c_u,22uw#+rm#,20uh#,10uh#); "U+0D09 malayalam letter u";
+ pickup frame_pen;
+ % eye
+ z1=(1uw, 6uh);
+ z2=(6uw, 12uh);
+ z3=(11uw, y1);
+ z4=(x2, 0);
+ % bow
+ z5=(0, 10uh);
+ z6=(11uw, 20uh);
+ z7=(22uw, 8uh);
+ % tail below
+ z8=(13uw, -4uh);
+ z9=(5uw, y8);
+ z10=(1uw, -7uh);
+ z11=(x9, -10uh);
+ z12=(24uw, y11);
+ draw z1{up}..z2{right}..z3{down}..z4{left}..cycle;
+ draw z4{left}..z5{up}..z6{right}..z7{down}..z8---z9..
+ z10{down}..z11---z12;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_vocalic_r, 28uw#+rm#, 20uh#, 16uh#); "U+0D0B malayalam letter vocalic r";
+ pickup frame_pen;
+ % first eye
+ z1=(1uw, 14uh);
+ z2=(6uw, 8uh);
+ z3=(11uw, y1);
+ z4=(x2, 20uh);
+ % upper bow
+ z5=(0, 10uh);
+ z6=(10uw, 0);
+ z6'=(18uw, 0);
+ z7=(28uw, 10uh);
+ % second eye
+ z8=(x7 - 1uw, 14uh);
+ z9=(x7 - 6uw, 20uh);
+ z10=(x7 - 11uw, y8);
+ z11=(x9, 8uh);
+ % lower bow
+ z12=(0, -8uh);
+ z13=(10uw, -16uh);
+ z13'=(18uw, -16uh);
+ z14=(28uw, -8uh);
+
+ draw_eye(1,4,3,2);
+ draw_eye(10,9,8,11);
+ draw z4{left}..z5{down}..z6---z6'..z7{up}..z9{left};
+ draw z12{down}..z13---z13'..z14{up}..z6'---z6..cycle;
+ penlabels(1,2,3,4,5,6,6',7,8,9,10,11,12,13,13',14);
+endchar;
+
+if unknown newfont:
+beginchar(c_vocalic_rr, 28uw#+rm#, 20uh#, 16uh#); "U+0D60 malayalam letter vocalic rr";
+ % uses definition of "malayalam letter vocalic rr"
+ pickup frame_pen;
+ % first eye
+ z1=(1uw, 14uh);
+ z2=(6uw, 8uh);
+ z3=(11uw, y1);
+ z4=(x2, 20uh);
+ % upper bow
+ z5=(0, 10uh);
+ z6=(10uw, 0);
+ z6'=(18uw, 0);
+ z7=(28uw, 10uh);
+ % second eye
+ z8=(x7 - 1uw, 14uh);
+ z9=(x7 - 6uw, 20uh);
+ z10=(x7 - 11uw, y8);
+ z11=(x9, 8uh);
+ % lower bow
+ z12=(0, -8uh);
+ z13=(10uw, -16uh);
+ z13'=(18uw, -16uh);
+ z14=(28uw, -8uh);
+
+ draw_eye(1,4,3,2);
+ draw_eye(10,9,8,11);
+ draw z4{left}..z5{down}..z6---z6'..z7{up}..z9{left};
+ draw z12{down}..z13---z13'..z14{up}..z6'---z6..cycle;
+
+ % inner m-like shape; different from "malayalam letter vocalic r"
+ % first bow
+ z15=(8uw, -11uh);
+ z16=(7uw, -8uh);
+ z17=(10.5uw, -4uh);
+ z18=(14uw, -9uh);
+ z19=(x18, y15);
+ % second bow
+ z20=(28uw - 10.5uw, y17);
+ z21=(28uw - 7uw, y16);
+ z22=(28uw - 8uw, y15);
+ pickup sub_pen;
+ draw z15..z16{up}..z17{right}..z18{down}---z19;
+ draw z19---z18{up}..z20{right}..z21{down}..z22;
+
+ penlabels(1,2,3,4,5,6,6',7,8,9,10,11,12,13,13',14,15,16,17,18,19,20,21,22);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_vocalic_l,34uw#+rm#,20uh#,0); "U+0D0C malayalam letter vocalic l";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9',10',11');
+ z9=(26uw, 20uh);
+ z10=(34uw, 10uh);
+ end_loop(10,11,12,13);
+
+ draw z1{up}..z2{right}..z3{down}..z4{left}..cycle;
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}..z11{left}..z12{up}..z13;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_vocalic_ll,41uw#+rm#,20uh#,6uh#); "U+0D61 malayalam letter vocalic ll";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9',10',11');
+ z9=(26uw, 20uh);
+ z10=(34uw, 10uh);
+ end_loop_tail(10,11,12,13,14,15,16);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}..z11{left}..z12{up}..
+ z13{right}..z14{down}..z15{left}..z16;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+fi;
+
+beginchar(c_e,42uw#+rm#,20uh#,10uh#); "U+0D0E malayalam letter e";
+ pickup frame_pen;
+ % first bow
+ z1=(4uw, 0);
+ z2=(0, 7uh);
+ z3=(7uw, 14uh);
+ z4=(14uw, y2);
+ z5=(10uw, 0);
+ % lying bar
+ z5'=(13uw, 0.5uh);
+ z6=(31uw, y5');
+ % standing bar
+ z7=(x6, 16uh);
+ z8=(27uw, -10uh);
+ % second bow
+ z9=(21uw, 5uh);
+ z10=(32uw, 20uh);
+ z11=(42uw, y9);
+ z12=(34uw, y8);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5;
+ draw z5..z5'---z6;
+ draw z7---z6..z8{left}..z9{up}..z10{right}..z11{down}..{left}z12;
+ penlabels(1,2,3,4,5,5',6,7,8,9,10,11,12);
+endchar;
+
+beginchar(c_ee,42uw#+rm#,20uh#,10uh#); "U+0D0F malayalam letter ee";
+ % uses definition of "malayalam letter e"
+ pickup frame_pen;
+ % first bow
+ z1=(4uw, 0);
+ z2=(0, 7uh);
+ z3=(7uw, 14uh);
+ z4=(14uw, y2);
+ z5=(10uw, 0);
+ % lying bar
+ z5'=(13uw, 0.5uh);
+ z6=(31uw, y5');
+ % standing bar
+ z7=(x6, 16uh);
+ z8=(27uw, -10uh);
+ % second bow
+ z9=(21uw, 5uh);
+ z10=(32uw, 20uh);
+ % differs from "malayalam letter e"
+ z11=(42uw, 10uh);
+ % lower bow of three-like shape
+ z12=(34uw, y5');
+ z13=(42uw, -5uh);
+ z14=(x12, -10uh);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5;
+ draw z5..z5'---z6;
+ draw z7---z6..z8{left}..z9{up}..z10{right}..z11{down}..{left}z12;
+ draw z12{right}..z13{down}..{left}z14;
+ penlabels(1,2,3,4,5,5',6,7,8,9,10,11,12,13,14);
+endchar;
+
+beginchar(c_o,22uw#+rm#,20uh#,0); "U+0D12 malayalam letter o";
+ pickup frame_pen;
+ front_eye(1,2,3,4,5);
+ % first bow
+ z5=(0, 10uh);
+ z6=(11uw, 20uh);
+ z7=(19uw, 14uh);
+ z8=(15uw, 10uh);
+ z9=(22uw, 5uh);
+ z10=(16uw, 0);
+ z11=(14uw, 0.5uh);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}..{left}z8;
+ draw z8{right}..z9{down}..z10{left}..z11;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+%%%%%% vowel signs
+
+beginchar(c_sign_aa,14uw#+rm#,20uh#,0); "U+0D3E malayalam vowel sign aa";
+ pickup frame_pen;
+ z1=(0, 15uh);
+ z2=(7uw, 20uh);
+ z3=(14uw, 10uh);
+ z4=(x2, 0);
+ z5=(0, 5uh);
+ draw z1..z2{right}..z3{down}..z4{left}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(c_sign_i,4uw#+rm#,30uh#,0); "U+0D3F malayalam vowel sign i";
+ pickup frame_pen;
+ z1=(-10uw, 25uh);
+ z2=(-3uw, 30uh);
+ z3=(4uw, 20uh);
+ z4=(4uw, 0);
+ draw z1{up}..z2{right}..z3{down}---z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(c_sign_ii,8uw#+rm#,30uh#,0); "U+0D40 malayalam vowel sign ii";
+ pickup frame_pen;
+ z1=(-6uw, 25uh);
+ z2=(1uw, 30uh);
+ z3=(8uw, 20uh);
+ z4=(8uw, 0);
+ eye(1,5,6,7)(7uw,7uh);
+ draw_eye(1,5,6,7);
+ draw z1{up}..z2{right}..z3{down}---z4;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+if unknown newfont:
+beginchar(c_sign_u,8uw#+rm#,0,9uh#); "U+0D41 malayalam vowel sign u";
+ pickup sub_pen;
+ % eye (diameter = 8)
+ z1=(0, -5uh);
+ eye(1,2,3,4)(8uw,8uh);
+ draw_eye(1,2,3,4);
+ penlabels(1,2,3,4);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(c_sign_uu,10uw#+rm#,0,11uh#); "U+0D42 malayalam vowel sign uu";
+ pickup sub_pen;
+ z1=(0, -6uh);
+ eye(1,2,3,4)(10uw, 10uh);
+ eye(5,2,6,7)(6uw,6uh);
+ draw_eye(1,2,3,4);
+ draw_eye(5,2,6,7);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+fi;
+
+beginchar(c_ref_sign_u,8uw#+rm#,20uh#,8uh#); "reformed script vowel sign u";
+ pickup frame_pen;
+ z1=(0uw, 20uh);
+ z2=(5uw, 12uh);
+ z3=(4uw, 0);
+ eye(4,3,5,6)(8uw, 8uh);
+
+ draw z1..z2{down}..z3{down};
+ draw_eye(4,3,5,6);
+ penlabels(1,2,3,4,6);
+endchar;
+
+beginchar(c_ref_sign_uu,9uw#+rm#,20uh#,9uh#); "reformed script vowel sign uu";
+ pickup frame_pen;
+ z1=(1uw, 20uh);
+ z2=(6uw, 12uh);
+ z3=(5uw, 0);
+ eye(4',3,7,8)(9uw, 9uh);
+ z4=z7-(.45uw, -2.25uh);
+ z6=z4'+(1.8uw, 2.25uh);
+ z5=(.5[x6,x4], y3 - 4.5uh);
+ z9=z4'-(0, 1.35uh);
+
+ draw z1..z2{down}..z3{down};
+ draw z4..z5{left}..z6{up}..z3{right}..z7{down}..z8{left}..z9;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+if unknown newfont:
+beginchar(c_sign_vocalic_r,20uw#+rm#,0,11uh#); "U+0D43 malayalam vowel sign vocalic r";
+ pickup frame_pen;
+ z1=(20uw, 0.5uh);
+ vowel_sign_vocalic_r(1,2,3,4,5);
+ draw z1{down}..z2{left}..z3{up}..z4{right}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+
+beginchar(c_ref_sign_vocalic_r,12uw#+rm#,20uh#,10uh#); "reformed script vowel sign vocalic r";
+ pickup frame_pen;
+ z1=(8uw, 19.5uh);
+ z2=(7uw, 12uh);
+ z3=(12uw, -4uh);
+ z8=(.5[x3,x5], -10uh);
+ y6=0;
+ x5=0;
+ eye(5,6,7,4)(7uw, 7uh);
+ draw z1..z2..z3{down}..z8{left}..z5{up};
+ draw_eye(5,6,7,4);
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+if unknown newfont:
+beginchar(c_sign_vocalic_rr,20uw#+rm#,0,12uh#); "U+0D44 malayalam vowel sign vocalic rr";
+ pickup frame_pen;
+ z1=(20uw, 0);
+ z2=(x1-12uw, -12uh);
+ z3=(x1-20uw, -8uh);
+ z4=(x2-4uw, -5uh);
+ z5=(x2, y3-2uh);
+ z6=(x2+4uw, y4);
+ z7=(x1-4uw, -7uh);
+ draw z1{down}..z2{left}..z3{up}..z4{right}..z5{down}---z2;
+ draw z2---z5{up}..z6{right}..z7;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+fi;
+
+beginchar(c_sign_e,2.0u#+rm#,ht#,0); "U+0D46 malayalam vowel sign e";
+ wd := 2.0u;
+ pickup frame_pen;
+ % from "malayalam letter i"
+ % eye
+ z1=(1/20wd, 6/20h);
+ z2=(6/20wd, 12/20h);
+ z3=(11/20wd, y1);
+ z4=(x2, 0);
+ % bow
+ z5=(0, 1/2h);
+ z6=(10/20wd, h);
+ % differs from "malayalam letter i"
+ z7=(wd, 1/2h);
+ z8=(16/20wd, 0);
+ draw z1{up}..z2{right}..z3{down}..z4{left}..cycle;
+ draw z4{left}..z5{up}..z6{right}..z7{down}..z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_sign_ee,1.6u#+rm#,ht#,0); "U+0D47 malayalam vowel sign ee";
+ wd := 1.6u;
+ pickup frame_pen;
+ % upper eye (diameter = 6)
+ z1=(13/16wd, 19/20h);
+ z2=(10/16wd, 16/20h);
+ z3=(x1, 13/20h);
+ z4=(wd, y2);
+ % bow
+ z5=(9/16wd, h);
+ z6=(0, 1/2h);
+ z7=(x5, 0);
+ % lower eye (diameter = 6)
+ z8=(x1, 1/20h);
+ z9=(x4, 4/20h);
+ z10=(x1, 7/20h);
+ z11=(x2, y9);
+ draw z2{up}..z1{right}..z4{down}..z3{left}..cycle;
+ draw z4{up}..z5{left}..z6{down}..z7{right}..{up}z9;
+ draw z11{up}..z10{right}..z9{down}..z8{left}..cycle;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(c_au_length_mark,2.0u#+rm#,ht#,0); "U+0D57 malayalam au length mark";
+ wd := 2.0u;
+ pickup frame_pen;
+ % first bow
+ z1=(2/20wd, 8/20h);
+ z2=(0, 14/20h);
+ z3=(5/20wd, h);
+ z4=(10/20wd, 13/20h);
+ z5=(x4, 8/20h);
+ % second bow
+ z6=(15/20wd, h);
+ z7=(wd, 11/20h);
+ z8=(10/20wd, 0);
+ draw z1..z2{up}..z3{right}..z4{down}---z5;
+ draw z5---z4{up}..z6{right}..z7{down}..z8{left};
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(c_virama,10uw#+rm#,26uh#,0); "U+0D4D malayalam sign virama";
+ pickup frame_pen;
+ z2=(0, 26uh);
+ z3=(.5[x2,x4], 21uh);
+ z4=(10uw, y2);
+ draw z2{down}..z3{right}..z4{up};
+ penlabels(2,3,4);
+endchar;
+
+%%%%%% end of mmvowels.mf
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/orn10.mf b/Master/texmf-dist/fonts/source/public/malayalam/orn10.mf
new file mode 100644
index 00000000000..12785024741
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/orn10.mf
@@ -0,0 +1,86 @@
+% orn10.mf -- 10pt Ornaments
+% copyright 1993 Jeroen Hellingman
+% last edit: 16-MAR-1993
+
+mode_setup;
+
+%%%%% parameters
+
+ht# := 1.667mm#; % height of characters
+u# := 0.8333mm#; % unit width (.5ht)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.5pt#; % thickness of thickest lines (was 0.666)
+thin# := 0.2pt#; % thickness of thinnest lines (was 0.416)
+subthick# := 0.3pt#; % thickness of thickest lines in subscribed characters (was 0.416)
+
+font_size 10pt#;
+font_identifier := "ORN10";
+
+%%%%%% dimensions
+
+uw# := 0.1u#; % unit of width
+uh# := 0.05ht#; % unit of height
+
+define_pixels(rm,u,uw,uh);
+define_whole_pixels(ht);
+
+currenttransform := currenttransform shifted (.5rm, 0);
+
+%%%%%% set the remaining font parameters
+
+font_slant := slant;
+font_quad := 20uw#;
+font_x_height := 20uh#;
+font_normal_space := 14uw#;
+font_normal_stretch := 8uw#;
+font_normal_shrink := 2uw#;
+
+currenttransform := currenttransform slanted slant;
+
+%%%%%% pen definitions
+
+penwd# :=thick# * cosd(rot-90);
+usthick# := thick#;
+mb# := .2ht#;
+define_pixels(penwd,usthick,mb);
+define_blacker_pixels(thin,thick,subthick);
+thin := max(thin,1); subthick := max(subthick,1);
+smoothing := 0;
+pickup pencircle xscaled thick yscaled thin rotated rot;
+scpenwd := pen_rt - pen_lft;
+frame_pen := savepen;
+pickup pencircle xscaled subthick yscaled thin rotated rot;
+sub_pen := savepen;
+
+%%%%%% character definitions
+
+beginchar(1,150uw#+rm#,5uh#,5uh#) "ornament 1";
+ numeric width; width = 150uw;
+ numeric height; height = 4uh;
+
+ z1=(0, 0);
+ z2=(width, 0);
+ pickup penrazor scaled thin rotated 90;
+ draw z1--z2;
+
+ z3=(.5width-height, 0);
+ z4=(.5width, height);
+ z5=(.5width+height, 0);
+ z6=(.5width, -height);
+
+ fill z3{up}..z4{right}..z5{down}..z6{left}..cycle;
+
+ z7=(15uw, .5thin);
+ z8=(.5width - 14uw, .9height);
+ z9=(.5width - 7uw, 0);
+ z10=(x8, -.9height);
+ z11=(x7, -.5thin);
+
+ fill z7{right}..z8{right}..z9{down}..z10{left}..z11{left}..cycle;
+ fill (z7{right}..z8{right}..z9{down}..z10{left}..z11{left}..cycle) reflectedabout ((.5width, 0), (.5width, 1));
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/rejected.mf b/Master/texmf-dist/fonts/source/public/malayalam/rejected.mf
new file mode 100644
index 00000000000..7da0c89c780
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/rejected.mf
@@ -0,0 +1,273 @@
+%%%%%% rejected glyphs %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(106,26uw#+rm#,28uh#,0); "variant malayalam digit four";
+ pickup frame_pen;
+ z1=(0uw, 0uh);
+ z2=(0uw, 28uh);
+ z3=.5[z1,z2];
+ z4=(15uw, y3);
+ z5=(20uw, .5[y3, y6]);
+ z6=(15uw, 0uh);
+ z7=(10uw, y5);
+ z8=(26uw, 24uh);
+ z9=(x8-6uw, 28uh);
+
+ draw z1--z2;
+ draw z3--z4{right}..z5{down}..z6{left}..z7{up}..z8{up}..z9;
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+beginchar(109,20uw#+rm#,25uh#,5uh#); "variant malayalam digit seven";
+ pickup frame_pen;
+ transform t;
+ picture p;
+ t = identity rotatedaround ((0,0), -90) shifted (0, 25uh);
+ x2=14uw;
+ y4=0uh;
+ eye(1,2,3,4)(12uw,12uh);
+ z5=(10uw, 0);
+ z6=(0, 10uh);
+ z7=(12uw, 20uh);
+ z8=(30uw, 0);
+
+ draw_eye(1,2,3,4);
+ draw z4..z5{left}..z6{up}..z7{right}..z8{down};
+ p := currentpicture;
+ clearit;
+ currentpicture := p transformed t;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+beginchar(196,46uw#+rm#,20uh#,5uh#); "bh+dha";
+ pickup frame_pen;
+ x2=0;
+ letter_bha(1,2,3,4,5,6,7,8,9,10,11,12');
+ z12=z12'-(0, 3uh);
+ z13=(.5[x12,x14], -5uh);
+ x14=28uw;
+ letter_dha(13',14',15',14,15,16,17,18);
+
+ draw z1..z2{up}..z3{right}..z4{down}..z5..z6..z7{down}..
+ z8..z9..z10{down}..z11{left}..z12{down}..z13{right}..
+ z14{up}---z15;
+ draw z14{down}..z16{right}..z17{up}..z18;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+% version of ja with standard height (tail not hanging under base-
+% line). This glyph looks only nice in normal style in high
+% resolution, not at 300dpi.
+
+def var_letter_ja(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) =
+% define points of "malayalam letter ja"
+% x coordinates relative to x.a
+% y coordinates absolute;
+ % first eye
+ z.a=(x.a, 13.5uh);
+ eye(a,b,c,d)(7uw, 7uh);
+ % first bow
+ z.e=(x.a, 14uh);
+ z.f=(x.a+7uw, 20uh);
+ z.g=(x.a+14uw, 14uh);
+ z.h=(x.g, 10.5uh);
+ % second bow
+ z.i=(x.a+20uw, 20uh);
+ z.j=(x.a+26uw, 14uh);
+ % tail
+ z.k=(x.a+13uw, 7.5uh);
+ z.l=(x.a+.5uw, 3uh);
+ z.m=(x.a+6uw, 0uh);
+ z.n=(x.a+14uw, 3uh);
+ % second eye (diameter = 5)
+ z.p=(x.a+23uw, 5uh);
+ eye(o,p,q,r)(5uw, 5uh);
+enddef;
+
+beginchar(28,26uw#+rm#,20uh#,0); "U+0D1C malayalam letter ja";
+ pickup frame_pen;
+ x1 = 0uw;
+ var_letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11{left}...z12{down}...
+ z13{right}..z14..{right}z16;
+ draw_eye(15,16,17,18);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+beginchar(162,58uw#+rm#,20uh#,0); "j+ja";
+ pickup frame_pen;
+ x1=0;
+ var_letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14',15',16',17',18');
+ z14=(24uw, 5uh);
+ x1a=32uw;
+ var_letter_ja(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11{left}...z12{down}...
+ z13{right}..z14..z1a{up};
+
+ draw_eye(1a,2a,3a,4a);
+ draw z1a..z5a{up}..z6a{right}..{down}z7a---z8a;
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a{left}...z12a{down}...
+ z13a{right}..z14a..{right}z16a;
+ draw_eye(15a,16a,17a,18a);
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+endchar;
+
+beginchar(184,74uw#+rm#,20uh#,0); "j+nya";
+ pickup frame_pen;
+ x1 = 0uw;
+ var_letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14',15,16,17,18);
+ z14=(24uw, 5uh);
+
+ x1a=32uw;
+ letter_nya(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a);
+
+ draw_eye(1a,2a,3a,4a);
+ draw z4a{left}..z5a{up}..z6a{right}..z7a{down}---z8a;
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a{left}..z12a{up}..
+ z13a{right}..z14a{down}..z15a;
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11{left}...z12{down}...
+ z13{right}..z14..{right}z2a;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+% versions of ny+ca and sh+ca with little connecting eye
+
+beginchar(185,60uw#+rm#,20uh#,0); "ny+ca";
+ % link eye is same as in "sh+ca"
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9',10',11');
+ z9=z9'+(2uw, 0);
+ z10=z10'+(2uw, 1uh);
+ x17=24uw;
+ letter_ca(12',13',14,15,16,17,18,19);
+ z12=(.5[x10,x13], y12');
+ z13=(x13', y10'-1.25uh);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10{down}..z12{left}..z13{up}..
+ z14{right}..z15{down}..z16{left};
+ draw z17--z18 & z18--z19;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+beginchar(197,54uw#+rm#,ht#,0); "sh+ca";
+ % link eye is same as in "ny+ca"
+ pickup frame_pen;
+ x2=0;
+ letter_sha(1,2,3,4,5,6',7',8',9');
+ z6=z6'+(0, 1uh);
+ x15=22uw;
+ letter_ca(10',11',12,13,14,15,16,17);
+ z10=(.5[x6,x11], y10');
+ z11=(x11', y6'-1.25uh);
+
+ draw z1..z2{down}..z3{right}..z4{up}..z5{right}..z6{down}..
+ z10{left}..z11{up}..z12{right}..z13{down}..z14{left};
+ draw z15--z16 & z16--z17;
+ penlabels(1,2,3,4,5,6,10,11,12,13,14,15,16,17);
+endchar;
+
+% wide and big vowel signs i and ii
+
+beginchar(63,2uw#+rm#,36uh#,0); "U+0D3F malayalam vowel sign i";
+ pickup frame_pen;
+ z1=(-14uw, 28uh);
+ z2=(-6uw, 36uh);
+ z3=(2uw, 25uh);
+ z4=(2uw, 0);
+ draw z1{up}..z2{right}..z3{down}---z4;
+ penlabels(1,2,3,4);
+endchar;
+
+beginchar(64,2uw#+rm#,36uh#,0); "U+0D40 malayalam vowel sign ii";
+ pickup frame_pen;
+ z1=(-14uw, 28uh);
+ z2=(-6uw, 36uh);
+ z3=(2uw, 25uh);
+ z4=(2uw, 0);
+ eye(1,5,6,7)(8uw,8uh);
+ draw_eye(1,5,6,7);
+ draw z1{up}..z2{right}..z3{down}---z4;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+
+% one of the many attempts...
+
+beginchar(83,14uw#+rm#,20uh#,14uh#); "secondary ya";
+ pickup frame_pen;
+ z1=(10uw, 20uh);
+ z2=(7uw, 10uh);
+ z3=(14uw, -7uh);
+ z4=(7uw, -14uh);
+ z5=(0, -7uh);
+ z6=(3uw, 0);
+ draw z1..z2{down}..z3{down}..z4{left}..z5{up}..z6{up};
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(72,10uw#+rm#,25uh#,0); "reformed script vowel sign u";
+ pickup frame_pen;
+ z1=(0uw, 25uh);
+ z2=(3uw, 17.5uh);
+ z5=(0, 5uh);
+ eye(5,6,7,8)(10uw, 10uh);
+
+ draw z1..z2{down}..z5{down};
+ draw_eye(5,6,7,8);
+ penlabels(1,2,5,6,7,8);
+endchar;
+
+beginchar(73,12uw#+rm#,25uh#,0); "reformed script vowel sign uu";
+ pickup frame_pen;
+ z1=(0uw, 25uh);
+ z2=(3uw, 17.5uh);
+ z5=(0, 6uh);
+ eye(5,6,7,8)(12uw, 12uh);
+ eye(9,6,10,11)(7uw, 7uh);
+
+ draw z1..z2{down}..z5{down};
+ draw_eye(5,6,7,8);
+ draw_eye(9,6,10,11);
+ penlabels(1,2,5,6,7,8,9,10,11);
+endchar;
+
+beginchar(74,14uw#+rm#,20uh#,0); "reformed script secondary ra";
+ pickup frame_pen;
+ z1=(14uw, 15uh);
+ z2=(7uw, h);
+ z3=(0, 10uh);
+ z4=(x2, 0);
+ z5=(x1, 5uh);
+ draw z1..z2{left}..z3{down}..z4{right}..z5;
+ penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(47,32uw#+rm#,ht#,0); "U+0D2F malayalam letter ya";
+ pickup frame_pen;
+ z1=(10.5uw, 16uh);
+ z2=(16uw, 20uh);
+ z3=(22uw, 12uw);
+ z4=(11uw, 0);
+ z5=(0, 12uh);
+ z6=(5uw, 19uh);
+ z7=(13uw, 10uh);
+ z8=(23uw, 0);
+ z9=(32uw, 10uh);
+ z10=(28uw, 20uh);
+ draw z1..z2{right}..z3{down}..z4{left}..z5{up}..z6{right}..
+ z7..z8{right}..z9{up}..z10;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm10.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm10.mf
new file mode 100644
index 00000000000..f637e1f1b4c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm10.mf
@@ -0,0 +1,21 @@
+% mm10.mf -- parameters for 10pt Malayalam
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+ht# := 1.667mm#; % height of characters
+u# := 0.8333mm#; % unit width (.5ht)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.545pt#; % thickness of thickest lines (was 0.666)
+thin# := 0.545pt#; % thickness of thinnest lines (was 0.416)
+subthick# := 0.545pt#; % thickness of thickest lines in subscribed characters (was 0.416)
+
+font_size 10pt#;
+font_identifier := "MM10";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm10s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm10s.mf
new file mode 100644
index 00000000000..59fe6668d18
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm10s.mf
@@ -0,0 +1,23 @@
+% mm10s.mf -- parameters for 10pt subscript font
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.333mm#; % height of characters (80%)
+u# := 0.667mm#; % unit width (.5ht) (80%)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.545pt#; % thickness of thickest lines (was 0.666)
+thin# := 0.545pt#; % thickness of thinnest lines (was 0.416)
+subthick# := 0.545pt#; % thickness of thickest lines in subscribed characters (was 0.416)
+
+font_size 10pt#;
+font_identifier := "MM10S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm12.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm12.mf
new file mode 100644
index 00000000000..a3d6bd6fb55
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm12.mf
@@ -0,0 +1,21 @@
+% mm12.mf -- parameters for 12pt Malayalam
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+ht# := 2.0mm#; % height of characters
+u# := 1.0mm#; % unit width (.5ht)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.655pt#; % thickness of thickest lines (was .8)
+thin# := 0.655pt#; % thickness of thinnest lines (was .5)
+subthick# := 0.655pt#; % thickness of thickest lines in subscribed characters (was .5)
+
+font_size := 12pt#;
+font_identifier := "MM12";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm12s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm12s.mf
new file mode 100644
index 00000000000..68569226068
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm12s.mf
@@ -0,0 +1,24 @@
+% mm12s.mf -- parameters for 12pt subscript font
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.6mm#; % height of characters (80%)
+u# := 0.8mm#; % unit width (.5ht) (80%)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.655pt#; % thickness of thickest lines (was .8)
+thin# := 0.655pt#; % thickness of thinnest lines (was .5)
+subthick# := 0.655pt#; % thickness of thickest lines in subscribed characters (was .5)
+
+font_size 12pt#;
+font_identifier := "MM12S";
+
+input mmdefs.mf;
+input mmfont.mf;
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm17.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm17.mf
new file mode 100644
index 00000000000..65019248f52
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm17.mf
@@ -0,0 +1,21 @@
+% mm17.mf -- parameters for 17pt Malayalam
+% copyright 1992 Jeroen Hellingman
+% last edit: 02-JAN-1993
+
+mode_setup;
+
+ht# := 2.88mm#; % height of characters
+u# := 1.30mm#; % unit width (.5ht)
+rm# := 0.864mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.943pt#; % thickness of thickest lines (was 1.151)
+thin# := 0.943pt#; % thickness of thinnest lines (was 0.719)
+subthick# := 0.943pt#; % thickness of thickest lines in subscribed characters (was 0.719)
+
+font_size 17.28pt#;
+font_identifier := "MM17";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm17s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm17s.mf
new file mode 100644
index 00000000000..c50dbbd6273
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm17s.mf
@@ -0,0 +1,23 @@
+% mm17s.mf -- parameters for 17pt Malayalam subscribed
+% copyright 1992 Jeroen Hellingman
+% last edit: 02-JAN-1993
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 2.304mm#; % height of characters (80%)
+u# := 1.04mm#; % unit width (.5ht) (80%)
+rm# := 0.864mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 0.943pt#; % thickness of thickest lines (was 1.151)
+thin# := 0.943pt#; % thickness of thinnest lines (was 0.719)
+subthick# := 0.943pt#; % thickness of thickest lines in subscribed characters (was 0.719)
+
+font_size 17.28pt#;
+font_identifier := "MM17S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm6.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm6.mf
new file mode 100644
index 00000000000..1182118cb63
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm6.mf
@@ -0,0 +1,21 @@
+% mm6.mf -- parameters for 6pt Malayalam
+% copyright 1992 Jeroen Hellingman
+% last edit: 29-NOV-1992
+
+mode_setup;
+
+ht# := 1.0mm#; % height of characters
+u# := 0.6mm#; % unit width (.5ht)
+rm# := 0.36mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.35pt#; % thickness of thickest lines
+thin# := 0.35pt#; % thickness of thinnest lines
+subthick# := 0.35pt#; % thickness of thickest lines in subscribed characters
+
+font_size 6pt#;
+font_identifier := "MM6";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm6s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm6s.mf
new file mode 100644
index 00000000000..ae46be17fa7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm6s.mf
@@ -0,0 +1,23 @@
+% mm6s.mf -- parameters for 6pt subscript font
+% copyright 1992 Jeroen Hellingman
+% last edit: 29-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 0.8mm#; % height of characters (80%)
+u# := 0.48mm#; % unit width (.5ht) (80%)
+rm# := 0.36mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.35pt#; % thickness of thickest lines
+thin# := 0.35pt#; % thickness of thinnest lines
+subthick# := 0.35pt#; % thickness of thickest lines in subscribed characters
+
+font_size 6pt#;
+font_identifier := "MM6S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm8.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm8.mf
new file mode 100644
index 00000000000..84230fe4e13
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm8.mf
@@ -0,0 +1,21 @@
+% mm8.mf -- parameters for 8pt Malayalam
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+ht# := 1.333mm#; % height of characters
+u# := 0.7mm#; % unit width (.5ht)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.437pt#; % thickness of thickest lines (was 0.533)
+thin# := 0.437pt#; % thickness of thinnest lines (was 0.333)
+subthick# := 0.437pt#; % thickness of thickest lines in subscribed characters (was 0.333)
+
+font_size 8pt#;
+font_identifier := "MM8";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mm8s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm8s.mf
new file mode 100644
index 00000000000..bc03b45c230
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mm8s.mf
@@ -0,0 +1,23 @@
+% mm8s.mf -- parameters for 8pt Malayalam subscribed
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.0664mm#; % height of characters (80%)
+u# := 0.56mm#; % unit width (.5ht) (80%)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.437pt#; % thickness of thickest lines (was 0.533)
+thin# := 0.437pt#; % thickness of thinnest lines (was 0.333)
+subthick# := 0.437pt#; % thickness of thickest lines in subscribed characters (was 0.333)
+
+font_size 8pt#;
+font_identifier := "MM8S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb10.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb10.mf
new file mode 100644
index 00000000000..4fe428daffc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb10.mf
@@ -0,0 +1,22 @@
+% mmb10.mf -- parameters for 10pt Malayalam bold
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+ht# := 1.667mm#; % height of characters
+u# := 0.875mm#; % unit width (.5ht)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.85pt#; % thickness of thickest lines
+thin# := 0.85pt#; % thickness of thinnest lines
+subthick# := 0.85pt#; % thickness of thickest lines in subscribed characters
+
+font_size 10pt#;
+font_identifier := "MMB10";
+
+input mmdefs.mf;
+input mmfont.mf;
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb10s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb10s.mf
new file mode 100644
index 00000000000..ec9c39550a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb10s.mf
@@ -0,0 +1,23 @@
+% mmb10s.mf -- parameters for 10pt Malayalam bold subscribed
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.333mm#; % height of characters (80%)
+u# := 0.7mm#; % unit width (.5ht) (80%)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.85pt#; % thickness of thickest lines
+thin# := 0.85pt#; % thickness of thinnest lines
+subthick# := 0.85pt#; % thickness of thickest lines in subscribed characters
+
+font_size 10pt#;
+font_identifier := "MMB10S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb12.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb12.mf
new file mode 100644
index 00000000000..19743451dd7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb12.mf
@@ -0,0 +1,21 @@
+% mmb12.mf -- parameters for 12pt Malayalam bold
+% copyright 1992 Jeroen Hellingman
+% last edit: 29-NOV-1992
+
+mode_setup;
+
+ht# := 2.0mm#; % height of characters
+u# := 1.05mm#; % unit width (.5ht)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 1.05pt#; % thickness of thickest lines
+thin# := 1.05pt#; % thickness of thinnest lines
+subthick# := 1.05pt#; % thickness of thickest lines in subscribed characters
+
+font_size 12pt#;
+font_identifier := "MMB12";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb12s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb12s.mf
new file mode 100644
index 00000000000..a41eaa47730
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb12s.mf
@@ -0,0 +1,23 @@
+% mmb12s.mf -- parameters for 12pt Malayalam bold subscribed
+% copyright 1992 Jeroen Hellingman
+% last edit: 29-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.6mm#; % height of characters (80%)
+u# := 0.84mm#; % unit width (.5ht) (80%)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 1.05pt#; % thickness of thickest lines
+thin# := 1.05pt#; % thickness of thinnest lines
+subthick# := 1.05pt#; % thickness of thickest lines in subscribed characters
+
+font_size 12pt#;
+font_identifier := "MMB12S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb17.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb17.mf
new file mode 100644
index 00000000000..e362e2ea444
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb17.mf
@@ -0,0 +1,21 @@
+% mmb17.mf -- parameters for 17pt Malayalam Bold
+% copyright 1992 Jeroen Hellingman
+% last edit: 02-JAN-1993
+
+mode_setup;
+
+ht# := 2.88mm#; % height of characters
+u# := 1.37mm#; % unit width (.5ht)
+rm# := 0.864mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 1.512pt#; % thickness of thickest lines (was 1.151)
+thin# := 1.512pt#; % thickness of thinnest lines (was 0.719)
+subthick# := 1.512pt#; % thickness of thickest lines in subscribed characters (was 0.719)
+
+font_size 17.28pt#;
+font_identifier := "MMB17";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb17s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb17s.mf
new file mode 100644
index 00000000000..f939c30d0b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmb17s.mf
@@ -0,0 +1,23 @@
+% mmb17s.mf -- parameters for 17pt Malayalam Bold subscribed
+% copyright 1992 Jeroen Hellingman
+% last edit: 02-JAN-1993
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 2.304mm#; % height of characters (80%)
+u# := 1.092mm#; % unit width (.5ht) (80%)
+rm# := 0.864mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 1.512pt#; % thickness of thickest lines (was 1.151)
+thin# := 1.512pt#; % thickness of thinnest lines (was 0.719)
+subthick# := 1.512pt#; % thickness of thickest lines in subscribed characters (was 0.719)
+
+font_size 17.28pt#;
+font_identifier := "MMB17S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmbig.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmbig.mf
new file mode 100644
index 00000000000..268383d9955
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmbig.mf
@@ -0,0 +1,23 @@
+% mmbig.mf -- parameters for big Malayalam
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+newfont := 1;
+
+ht# := 3.5mm#; % height of characters
+u# := 1.5mm#; % unit width (.5ht)
+rm# := 1.125mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.625mm#; % thickness of thickest lines
+thin# := 0.625mm#; % thickness of thinnest lines
+subthick# := 0.625mm#; % thickness of thickest lines in subscribed characters
+
+font_size 3.5mm#;
+font_identifier := "MMBIG";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmbigo.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmbigo.mf
new file mode 100644
index 00000000000..5b8ec1cc1a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmbigo.mf
@@ -0,0 +1,25 @@
+% mmbigo.mf -- parameters for big Malayalam outline
+% (c) 1993 Jeroen Hellingman
+% last edit: 22-JAN-1993
+
+mode_setup;
+
+newfont := 1;
+
+ht# := 3.5mm#; % height of characters
+u# := 1.5mm#; % unit width (.5ht)
+rm# := 1.125mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.625mm#; % thickness of thickest lines
+thin# := 0.625mm#; % thickness of thinnest lines
+subthick# := 0.625mm#; % thickness of thickest lines in subscribed characters
+
+font_size 3.5mm#;
+font_identifier := "MMBIGO";
+
+input effect.mf
+input mmdefs
+pattern;
+input mmfont
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc10.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc10.mf
new file mode 100644
index 00000000000..50640d8e1f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc10.mf
@@ -0,0 +1,21 @@
+% mmc10.mf -- parameters for 10pt Malayalam calligraphic
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+ht# := 1.667mm#; % height of characters
+u# := 0.8333mm#; % unit width (.5ht)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 0.75pt#; % thickness of thickest lines
+thin# := 0.333pt#; % thickness of thinnest lines
+subthick# := 0.550pt#; % thickness of thickest lines in subscribed characters
+
+font_size 10pt#;
+font_identifier := "MMC10";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc10s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc10s.mf
new file mode 100644
index 00000000000..31b02bde227
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc10s.mf
@@ -0,0 +1,23 @@
+% mmc10s.mf -- parameters for 10pt Malayalam calligraphic subfont
+% copyright 1992 Jeroen Hellingman
+% last edit: 19-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.333mm#; % height of characters (80%)
+u# := 0.667mm#; % unit width (.5ht) (80%)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 0.75pt#; % thickness of thickest lines
+thin# := 0.333pt#; % thickness of thinnest lines
+subthick# := 0.550pt#; % thickness of thickest lines in subscribed characters
+
+font_size 10pt#;
+font_identifier := "MMC10S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc12.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc12.mf
new file mode 100644
index 00000000000..7362f053281
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc12.mf
@@ -0,0 +1,21 @@
+% mmc12.mf -- parameters for 12pt Malayalam calligraphic
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+ht# := 2.0mm#; % height of characters
+u# := 1.0mm#; % unit width (.5ht)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen (was: 135)
+thick# := 0.9pt#; % thickness of thickest lines
+thin# := 0.4pt#; % thickness of thinnest lines
+subthick# := 0.661pt#; % thickness of thickest lines in subscribed characters
+
+font_size 12pt#;
+font_identifier := "MMC12";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc12s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc12s.mf
new file mode 100644
index 00000000000..010bff0ec6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc12s.mf
@@ -0,0 +1,24 @@
+% mmc12s.mf -- parameters for 12pt calligraphic subscript font
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.6mm#; % height of characters (80%)
+u# := 0.8mm#; % unit width (.5ht) (80%)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen (was: 135)
+thick# := 0.9pt#; % thickness of thickest lines
+thin# := 0.4pt#; % thickness of thinnest lines
+subthick# := 0.661pt#; % thickness of thickest lines in subscribed characters
+
+font_size 12pt#;
+font_identifier := "MMC12S";
+
+input mmdefs.mf;
+input mmfont.mf;
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc17.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc17.mf
new file mode 100644
index 00000000000..40f33096869
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc17.mf
@@ -0,0 +1,21 @@
+% mmc17.mf -- parameters for 17pt Malayalam Calligraphic
+% copyright 1992 Jeroen Hellingman
+% last edit: 02-JAN-1993
+
+mode_setup;
+
+ht# := 2.88mm#; % height of characters
+u# := 1.30mm#; % unit width (.5ht)
+rm# := 0.864mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 1.296pt#; % thickness of thickest lines
+thin# := 0.576pt#; % thickness of thinnest lines
+subthick# := 0.952pt#; % thickness of thickest lines in subscribed characters
+
+font_size 17.28pt#;
+font_identifier := "MMC17";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc17s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc17s.mf
new file mode 100644
index 00000000000..6228287577d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmc17s.mf
@@ -0,0 +1,23 @@
+% mmc17s.mf -- parameters for 17pt Malayalam calligraphic subscribed
+% copyright 1992 Jeroen Hellingman
+% last edit: 02-JAN-1993
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 2.304mm#; % height of characters (80%)
+u# := 1.04mm#; % unit width (.5ht) (80%)
+rm# := 0.864mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 1.296pt#; % thickness of thickest lines
+thin# := 0.576pt#; % thickness of thinnest lines
+subthick# := 0.952pt#; % thickness of thickest lines in subscribed characters
+
+font_size 17.28pt#;
+font_identifier := "MMC17S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb10.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb10.mf
new file mode 100644
index 00000000000..692285d00d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb10.mf
@@ -0,0 +1,21 @@
+% mmcb10.mf -- parameters for 10pt Malayalam calligraphic bold
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-DEC-1992
+
+mode_setup;
+
+ht# := 1.667mm#; % height of characters
+u# := 0.875mm#; % unit width (.5ht)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 1.167pt#; % thickness of thickest lines
+thin# := 0.416pt#; % thickness of thinnest lines
+subthick# := 0.832pt#; % thickness of thickest lines in subscribed characters
+
+font_size 10pt#;
+font_identifier := "MMCB10";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb10s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb10s.mf
new file mode 100644
index 00000000000..f5ee731714f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb10s.mf
@@ -0,0 +1,23 @@
+% mmcb10s.mf -- parameters for 10pt Malayalam calligraphic bold subfont
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-DEC-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.333mm#; % height of characters (80%)
+u# := 0.700mm#; % unit width (.5ht) (80%)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 1.167pt#; % thickness of thickest lines
+thin# := 0.416pt#; % thickness of thinnest lines
+subthick# := 0.832pt#; % thickness of thickest lines in subscribed characters
+
+font_size 10pt#;
+font_identifier := "MMCB10S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb12.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb12.mf
new file mode 100644
index 00000000000..bd9f5699d63
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb12.mf
@@ -0,0 +1,21 @@
+% mmcb12.mf -- parameters for 12pt Malayalam calligraphic bold
+% copyright 1992 Jeroen Hellingman
+% last edit: 28-NOV-1992
+
+mode_setup;
+
+ht# := 2.0mm#; % height of characters
+u# := 1.05mm#; % unit width (.5ht)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen (was: 135)
+thick# := 1.4pt#; % thickness of thickest lines
+thin# := 0.5pt#; % thickness of thinnest lines
+subthick# := 1.0pt#; % thickness of thickest lines in subscribed characters
+
+font_size 12pt#;
+font_identifier := "MMCB12";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb12s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb12s.mf
new file mode 100644
index 00000000000..09357cf276b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb12s.mf
@@ -0,0 +1,24 @@
+% mmcb12s.mf -- parameters for 12pt calligraphic bold subscript font
+% copyright 1992 Jeroen Hellingman
+% last edit: 28-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.6mm#; % height of characters (80%)
+u# := 0.84mm#; % unit width (.5ht) (80%)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen (was: 135)
+thick# := 1.4pt#; % thickness of thickest lines
+thin# := 0.5pt#; % thickness of thinnest lines
+subthick# := 1.0pt#; % thickness of thickest lines in subscribed characters
+
+font_size 12pt#;
+font_identifier := "MMCB12S";
+
+input mmdefs.mf;
+input mmfont.mf;
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb17.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb17.mf
new file mode 100644
index 00000000000..54dfffeb3b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb17.mf
@@ -0,0 +1,21 @@
+% mmcb17.mf -- parameters for 17pt Malayalam Calligraphic Bold
+% copyright 1992 Jeroen Hellingman
+% last edit: 02-JAN-1993
+
+mode_setup;
+
+ht# := 2.88mm#; % height of characters
+u# := 1.37mm#; % unit width (.5ht)
+rm# := 0.864mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 2.000pt#; % thickness of thickest lines
+thin# := 0.650pt#; % thickness of thinnest lines
+subthick# := 1.350pt#; % thickness of thickest lines in subscribed characters
+
+font_size 17.28pt#;
+font_identifier := "MMCB17";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb17s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb17s.mf
new file mode 100644
index 00000000000..381dafaee71
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcb17s.mf
@@ -0,0 +1,23 @@
+% mmcb17s.mf -- parameters for 17pt Malayalam Calligraphic Bold subscribed
+% copyright 1992 Jeroen Hellingman
+% last edit: 02-JAN-1993
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 2.304mm#; % height of characters (80%)
+u# := 1.092mm#; % unit width (.5ht) (80%)
+rm# := 0.864mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 2.000pt#; % thickness of thickest lines
+thin# := 0.650pt#; % thickness of thinnest lines
+subthick# := 1.350pt#; % thickness of thickest lines in subscribed characters
+
+font_size 17.28pt#;
+font_identifier := "MMCB17S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl10.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl10.mf
new file mode 100644
index 00000000000..6e40b0f03ac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl10.mf
@@ -0,0 +1,21 @@
+% mmcsl10.mf -- parameters for 10pt Malayalam calligraphic slanted
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-DEC-1992
+
+mode_setup;
+
+ht# := 1.667mm#; % height of characters
+u# := 0.8333mm#; % unit width (.5ht)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0.17; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 0.75pt#; % thickness of thickest lines
+thin# := 0.333pt#; % thickness of thinnest lines
+subthick# := 0.550pt#; % thickness of thickest lines in subscribed characters
+
+font_size 10pt#;
+font_identifier := "MMCSL10";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl10s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl10s.mf
new file mode 100644
index 00000000000..858d1dc8cde
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl10s.mf
@@ -0,0 +1,23 @@
+% mmcsl10s.mf -- parameters for 10pt Malayalam calligraphic slanted subfont
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-DEC-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.333mm#; % height of characters (80%)
+u# := 0.667mm#; % unit width (.5ht) (80%)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0.17; % slant of characters
+
+rot = 45; % angle of pen
+thick# := 0.75pt#; % thickness of thickest lines
+thin# := 0.333pt#; % thickness of thinnest lines
+subthick# := 0.550pt#; % thickness of thickest lines in subscribed characters
+
+font_size 10pt#;
+font_identifier := "MMCSL10S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl12.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl12.mf
new file mode 100644
index 00000000000..922c2b6fccc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl12.mf
@@ -0,0 +1,21 @@
+% mmcsl12.mf -- parameters for 12pt Malayalam calligraphic slanted
+% copyright 1992 Jeroen Hellingman
+% last edit: 28-NOV-1992
+
+mode_setup;
+
+ht# := 2.0mm#; % height of characters
+u# := 1.0mm#; % unit width (.5ht)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0.17; % slant of characters
+
+rot = 45; % angle of pen (was: 135)
+thick# := 0.9pt#; % thickness of thickest lines
+thin# := 0.4pt#; % thickness of thinnest lines
+subthick# := 0.661pt#; % thickness of thickest lines in subscribed characters
+
+font_size 12pt#;
+font_identifier := "MMCSL12";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl12s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl12s.mf
new file mode 100644
index 00000000000..20c350520f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmcsl12s.mf
@@ -0,0 +1,24 @@
+% mmcsl12s.mf -- parameters for 12pt calligraphic slanted subscript font
+% copyright 1992 Jeroen Hellingman
+% last edit: 28-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.6mm#; % height of characters (80%)
+u# := 0.8mm#; % unit width (.5ht) (80%)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0.17; % slant of characters
+
+rot = 45; % angle of pen (was: 135)
+thick# := 0.9pt#; % thickness of thickest lines
+thin# := 0.4pt#; % thickness of thinnest lines
+subthick# := 0.661pt#; % thickness of thickest lines in subscribed characters
+
+font_size 12pt#;
+font_identifier := "MMCSL12S";
+
+input mmdefs.mf;
+input mmfont.mf;
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpa12.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpa12.mf
new file mode 100644
index 00000000000..35c1a130f6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpa12.mf
@@ -0,0 +1,25 @@
+% mmexpa12.mf -- parameters for experimental Malayalam A 12pt
+% copyright 1992 Jeroen Hellingman
+% last edit: 28-DEC-1992
+
+% horizonatal strokes thin, vertical strokes thick, roughly approach
+% traditional style
+
+mode_setup;
+newfont:=1;
+
+ht# := 2.0mm#; % height of characters
+u# := 1.25mm#; % unit width (.5ht)
+rm# := 0.7mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 0; % angle of pen
+thick# := 1.25pt#; % thickness of thickest lines (was 0.666)
+thin# := 0.30pt#; % thickness of thinnest lines (was 0.416)
+subthick# := 1.0pt#; % thickness of thickest lines in subscribed characters (was 0.416)
+
+font_size 12pt#;
+font_identifier := "MMEXPA12";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpb12.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpb12.mf
new file mode 100644
index 00000000000..9acf9e034dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpb12.mf
@@ -0,0 +1,24 @@
+% mmexpb12.mf -- parameters for experimental Malayalam B 12pt
+% copyright 1992 Jeroen Hellingman
+% last edit: 28-DEC-1992
+
+% very thin, high characters, somewhat like Avant Garde.
+
+mode_setup;
+newfont:=1;
+
+ht# := 2.0mm#; % height of characters
+u# := 0.833mm#; % unit width (.5ht)
+rm# := 0.333mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 0; % angle of pen
+thick# := 0.2pt#; % thickness of thickest lines (was 0.666)
+thin# := 0.2pt#; % thickness of thinnest lines (was 0.416)
+subthick# := 0.2pt#; % thickness of thickest lines in subscribed characters (was 0.416)
+
+font_size 12pt#;
+font_identifier := "MMEXPB12";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpc12.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpc12.mf
new file mode 100644
index 00000000000..da3b9e7c5e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmexpc12.mf
@@ -0,0 +1,24 @@
+% mmexpc12.mf -- parameters for experimental Malayalam C 12pt
+% copyright 1992 Jeroen Hellingman
+% last edit: 28-DEC-1992
+
+% thin, high and characters.
+
+mode_setup;
+newfont:=1;
+
+ht# := 2.0mm#; % height of characters
+u# := 0.857mm#; % unit width (.5ht)
+rm# := 0.343mm#; % space inbetween characters
+slant := 0; % slant of characters
+
+rot = 90; % angle of pen
+thick# := 0.686pt#; % thickness of thickest lines (was 0.666)
+thin# := 0.229pt#; % thickness of thinnest lines (was 0.416)
+subthick# := 0.457pt#; % thickness of thickest lines in subscribed characters (was 0.416)
+
+font_size 12pt#;
+font_identifier := "MMEXPC12";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl10.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl10.mf
new file mode 100644
index 00000000000..6ce290ad469
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl10.mf
@@ -0,0 +1,21 @@
+% mmsl10.mf -- parameters for 10pt Malayalam Slanted
+% copyright 1992 Jeroen Hellingman
+% last edit: 06-DEC-1992
+
+mode_setup;
+
+ht# := 1.667mm#; % height of characters
+u# := 0.8333mm#; % unit width (.5ht)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0.17; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.545pt#; % thickness of thickest lines (was 0.666)
+thin# := 0.545pt#; % thickness of thinnest lines (was 0.416)
+subthick# := 0.545pt#; % thickness of thickest lines in subscribed characters (was 0.416)
+
+font_size 10pt#;
+font_identifier := "MMSL10";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl10s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl10s.mf
new file mode 100644
index 00000000000..5ad60b7bfe1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl10s.mf
@@ -0,0 +1,23 @@
+% mmsl10s.mf -- parameters for Malayalam Slanted 10pt Subscript
+% copyright 1992 Jeroen Hellingman
+% last edit: 06-DEC-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.333mm#; % height of characters (80%)
+u# := 0.667mm#; % unit width (.5ht) (80%)
+rm# := 0.5mm#; % space inbetween characters
+slant := 0.17; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.545pt#; % thickness of thickest lines (was 0.666)
+thin# := 0.545pt#; % thickness of thinnest lines (was 0.416)
+subthick# := 0.545pt#; % thickness of thickest lines in subscribed characters (was 0.416)
+
+font_size 10pt#;
+font_identifier := "MMSL10S";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl12.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl12.mf
new file mode 100644
index 00000000000..7af75292799
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl12.mf
@@ -0,0 +1,21 @@
+% mmsl12.mf -- parameters for 12pt slanted Malayalam
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+ht# := 2.0mm#; % height of characters
+u# := 1.0mm#; % unit width (.5ht)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0.17; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.655pt#; % thickness of thickest lines (was .8)
+thin# := 0.655pt#; % thickness of thinnest lines (was .5)
+subthick# := 0.655pt#; % thickness of thickest lines in subscribed characters (was .5)
+
+font_size 12pt#;
+font_identifier := "MMSL12";
+
+input mmdefs.mf;
+input mmfont.mf;
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl12s.mf b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl12s.mf
new file mode 100644
index 00000000000..7f2e846fcca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/styles/mmsl12s.mf
@@ -0,0 +1,24 @@
+% mmsl12s.mf -- parameters for 12pt slanted subscript font
+% copyright 1992 Jeroen Hellingman
+% last edit: 27-NOV-1992
+
+mode_setup;
+
+subfont := 1;
+
+ht# := 1.6mm#; % height of characters (80%)
+u# := 0.8mm#; % unit width (.5ht) (80%)
+rm# := 0.6mm#; % space inbetween characters
+slant := 0.17; % slant of characters
+
+rot = 145; % angle of pen
+thick# := 0.655pt#; % thickness of thickest lines (was .8)
+thin# := 0.655pt#; % thickness of thinnest lines (was .5)
+subthick# := 0.655pt#; % thickness of thickest lines in subscribed characters (was .5)
+
+font_size 12pt#;
+font_identifier := "MMSL12S";
+
+input mmdefs.mf;
+input mmfont.mf;
+
diff --git a/Master/texmf-dist/fonts/source/public/malayalam/var_ja.mf b/Master/texmf-dist/fonts/source/public/malayalam/var_ja.mf
new file mode 100644
index 00000000000..b243118f6a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/malayalam/var_ja.mf
@@ -0,0 +1,199 @@
+% var_ja.mf -- malayalam variant of ja
+% copyright 1992 Jeroen Hellingman
+% last edit: 29-NOV-1992
+
+% version of ja with standard height (tail not hanging under base-
+% line). Some glyphs still needs to be adapted to this ja shape:
+% j+ju, j+juu.
+
+def var_letter_ja(suffix a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r) =
+% define points of "malayalam letter ja"
+% x coordinates relative to x.a
+% y coordinates absolute;
+ % first eye (diameter = 7)
+ z.a=(x.a, 15uh);
+ eye(a,b,c,d)(7uw, 7uh);
+ % first bow
+ z.e=(x.a, 15uh);
+ z.f=(x.a+7uw, 20uh);
+ z.g=(x.a+14uw, 15uh);
+ z.h=(x.g, 12.5uh);
+ % second bow
+ z.i=(x.a+20uw, 20uh);
+ z.j=(x.a+26uw, 15uh);
+ % tail
+ z.k=(x.a+13uw, 8.5uh);
+ z.l=(x.a+2uw, 3uh); % was (x.a+.5uw, 3uh)
+ z.m=(x.a+6uw, 0uh);
+ z.n=(x.a+14uw, 3uh);
+ % second eye (diameter = 5)
+ z.p=(x.a+23uw, 5uh);
+ eye(o,p,q,r)(5uw, 5uh);
+enddef;
+
+beginchar(28,26uw#+rm#,20uh#,0); "U+0D1C malayalam letter ja";
+ pickup frame_pen;
+ x1 = 0uw;
+ var_letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..{right}z16;
+ draw_eye(15,16,17,18);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+beginchar(162,58uw#+rm#,20uh#,0); "j+ja";
+ pickup frame_pen;
+ x1=0;
+ var_letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14',15',16',17',18');
+ z14=(24uw, 5uh);
+ x1a=32uw;
+ var_letter_ja(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z1a{up};
+
+ draw_eye(1a,2a,3a,4a);
+ draw z1a..z5a{up}..z6a{right}..{down}z7a---z8a;
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a..z12a{down}..
+ z13a{right}..z14a..{right}z16a;
+ draw_eye(15a,16a,17a,18a);
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+endchar;
+
+beginchar(184,77uw#+rm#,20uh#,0); "j+nya";
+ pickup frame_pen;
+ x1 = 0uw;
+ var_letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14',15,16,17,18);
+ z14=(24uw, 5uh);
+ x1a=32uw;
+ letter_nya(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..{right}z2a;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+
+ draw_eye(1a,2a,3a,4a);
+ draw z4a{left}..z5a{up}..z6a{right}..z7a{down}---z8a;
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a{left}..z12a{up}..
+ z13a{right}..z14a{down}..z15a;
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a);
+endchar;
+
+beginchar(186,52uw#+rm#,20uh#,0uh#); "ny+ja";
+ pickup frame_pen;
+ x5=0uw;
+ half_ba(1,2,3,4,5,6,7,8,9,10',11');
+ z10=z9+(4uw, -2uh);
+ x1a=26uw;
+ var_letter_ja(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+
+ draw_eye(1,2,3,4);
+ draw z4{left}..z5{up}..z6{right}..z7{down}--z8;
+ draw z8--z7{up}..z9{right}..z10;
+
+ draw_eye(1a,2a,3a,4a);
+ draw z1a..z5a{up}..z6a{right}..{down}z7a---z8a;
+ draw z8a---z7a{up}..z9a{right}..z10a{down}..z11a..z12a{down}..
+ z13a{right}..z14a..{right}z16a;
+ draw_eye(15a,16a,17a,18a);
+
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+ penlabels(1a,2a,3a,4a,5a,6a,7a,8a,9a,10a,11a,12a,13a,14a,15a,16a,17a,18a);
+endchar;
+
+if unknown newfont:
+beginchar(203,40uw#+rm#,20uh#,8uh#); "j+ra";
+ pickup frame_pen;
+ x1=8uw;
+ var_letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+ % tail for ra
+ z19=(34uw, 6uh);
+ z20=(40uw, 0uh);
+ subscribed_ra(20,21,22,23,24)(8uh);
+
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw_eye(1,2,3,4);
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z19{right}..z20{down}..z21..z22..
+ z23{up}..z24;
+ draw_eye(15,16,17,18);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(131,31uw#+rm#,20uh#,10uh#); "ju";
+ pickup frame_pen;
+ x1=0;
+ var_letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+ % tail for u
+ z19=(26uw, 6uh);
+ z20=(31uw, .5[y19,y21]);
+ x23=.5uw;
+ vowel_sign_u(20,21',22,23,24,25);
+ z21=(x19, y21');
+
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw_eye(1,2,3,4);
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z19{right}..z20{down}..{left}z21---
+ z22{left}..z23{down}..{right}z24---z25;
+ draw_eye(15,16,17,18);
+ penlabels(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);
+endchar;
+fi;
+
+if unknown newfont:
+beginchar(142,32uw#+rm#,20uh#,10uh#); "juu";
+ pickup frame_pen;
+ x1=0;
+ var_letter_ja(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+ % tail for uu
+ z19=(29uw, 6.5uh);
+ z21=(x19, .5[y19,y22]);
+ z22=(x19, -4uh);
+ z23=(x24+3uw, y22);
+ z24=(.5uw, -7uh);
+ z25=(x23, -10uh);
+ z26=(32uw, y25);
+
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw_eye(1,2,3,4);
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..z19{right}..z21{left};
+ draw z21{right}..{left}z22---z23{left}..z24{down}..{right}z25---z26;
+ draw_eye(15,16,17,18);
+ penlabels(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);
+endchar;
+fi;
+
+endinput;
+
+beginchar(255,26uw#+rm#,20uh#,10uh#); "special letter ja";
+ pickup frame_pen;
+ x1 = 0uw;
+ letter_ja(1,2,3,4,5,6,7,8,9,10,11,12',13',14',15',16',17',18');
+ z12=(x12', -5uh);
+ z13=(10uw, -10uh);
+ z14=(25uw, -7uh);
+ z16=(60uw, -2uh);
+ eye(15,16,17,18)(8uw, 8uh);
+
+ draw_eye(1,2,3,4);
+ draw z1..z5{up}..z6{right}..{down}z7---z8;
+ draw z8---z7{up}..z9{right}..z10{down}..z11..z12{down}..
+ z13{right}..z14..{right}z16;
+ draw_eye(15,16,17,18);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+
+% end of var_ja.mf
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/flogo.mf b/Master/texmf-dist/fonts/source/public/mflogo/flogo.mf
new file mode 100644
index 00000000000..0af2a2a76a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/flogo.mf
@@ -0,0 +1,10 @@
+% fat version of METAFONT logo
+font_size 10pt#; % the "design size" of this font
+ht#:=6pt#; % height of characters
+xgap#:=2pt#; % horizontal adjustment
+u#:=4/3pt#; % unit width
+s#:=-2/3pt#; % extra space at the left and the right
+o#:=1/9pt#; % overshoot
+px#:=1/3pt#; % horizontal thickness of pen
+input logo % now generate the font
+end % and stop.
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logo.mf b/Master/texmf-dist/fonts/source/public/mflogo/logo.mf
new file mode 100644
index 00000000000..2a308ab917b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/logo.mf
@@ -0,0 +1,127 @@
+% Routines for the METAFONT logo, as found in The METAFONTbook
+% Extended to characters P and S for John Hobby's METAPOST
+% (logo10.mf is a typical parameter file)
+
+mode_setup;
+if unknown slant: slant:=0 else: currenttransform:=
+ identity slanted slant yscaled aspect_ratio fi;
+
+ygap#:=(ht#/13.5u#)*xgap#; % vertical adjustment
+ho#:=o#; % horizontal overshoot
+leftstemloc#:=2.5u#+s#; % position of left stem
+barheight#:=.45ht#; % height of bar lines
+py#:=.9px#; % vertical pen thickness
+
+define_pixels(s,u);
+define_whole_pixels(xgap);
+define_whole_vertical_pixels(ygap);
+define_blacker_pixels(px,py);
+pickup pencircle xscaled px yscaled py;
+logo_pen:=savepen;
+define_good_x_pixels(leftstemloc);
+define_good_y_pixels(barheight);
+define_corrected_pixels(o);
+define_horizontal_corrected_pixels(ho);
+
+def beginlogochar(expr code, unit_width) =
+ beginchar(code,unit_width*u#+2s#,ht#,0);
+ pickup logo_pen enddef;
+
+def super_half(suffix i,j,k) =
+ draw z.i{0,y.j-y.i}
+ ... (.8[x.j,x.i],.8[y.i,y.j]){z.j-z.i}
+ ... z.j{x.k-x.i,0}
+ ... (.8[x.j,x.k],.8[y.k,y.j]){z.k-z.j}
+ ... z.k{0,y.k-y.j} enddef;
+
+def super_crescent(suffix i,j,k) =
+ draw z.i{x.j-x.i,0}
+ ... (.8[x.i,x.j],.8[y.j,y.i]){z.j-z.i}
+ ... z.j{0,y.k-y.i}
+ ... (.8[x.k,x.j],.8[y.j,y.k]){z.k-z.j}
+ ... z.k{x.k-x.j,0} enddef;
+
+beginlogochar("M",18);
+x1=x2=leftstemloc; x4=x5=w-x1; x3=w-x3;
+y1=y5; y2=y4; bot y1=-o;
+top y2=h+o; y3=y1+ygap;
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5); endchar;
+
+beginlogochar("E",14);
+x1=x2=x3=leftstemloc;
+x4=x6=w-x1+ho; x5=x4-xgap;
+y1=y6; y2=y5; y3=y4;
+bot y1=0; top y3=h; y2=barheight;
+draw z6--z1--z3--z4; draw z2--z5;
+labels(1,2,3,4,5,6); endchar;
+
+beginlogochar("T",13);
+italcorr ht#*slant + .5u#;
+if .5w<>good.x .5w: change_width; fi
+lft x1=-eps; x2=w-x1; x3=x4=.5w;
+y1=y2=y3; top y1=h; bot y4=-o;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+beginlogochar("A",15);
+x1=.5w; x2=x4=leftstemloc; x3=x5=w-x2;
+top y1=h+o; y2=y3=barheight;
+bot y4=bot y5=-o;
+draw z4--z2--z3--z5; super_half(2,1,3);
+labels(1,2,3,4,5); endchar;
+
+beginlogochar("F",14);
+x1=x2=x3=leftstemloc;
+x4=w-x1+ho; x5=x4-xgap;
+y2=y5; y3=y4; bot y1=-o;
+top y3=h; y2=barheight;
+draw z1--z3--z4; draw z2--z5;
+labels(1,2,3,4,5); endchar;
+
+beginlogochar("P",14);
+x1=x2=x3=leftstemloc;
+x4=x5=.618[x1,w-x1];
+y2=y5; y3=y4; bot y1=-o;
+top y3=h; y2=barheight;
+draw z1--z3--z4; draw z2--z5;
+x6=.5[w-x1,lft w]; y6=.5[y4,y5];
+super_crescent(4,6,5);
+labels(1,2,3,4,5,6); endchar;
+
+beginlogochar("S",14);
+x3=x8=leftstemloc;
+x1=w-x3;
+x2=x4=.382[x3,x1];
+x5=x7=.9[x3,x1];
+x6=.5[x1,w];
+top y1=h; y4=barheight; bot y8=0;
+y1=y2; y3=.6[y2,y4]; y4=y5; y6=.3[y5,y7]; y7=y8;
+draw z1--z2; draw z4--z5; draw z7--z8;
+super_crescent(2,3,4);
+super_crescent(5,6,7);
+labels(1,2,3,4,5,6,7,8); endchar;
+
+beginlogochar("O",15);
+x1=x4=.5w; top y1=h+o; bot y4=-o;
+x2=w-x3=good.x(1.5u+s); y2=y3=barheight;
+super_half(2,1,3); super_half(2,4,3);
+labels(1,2,3,4); endchar;
+
+beginlogochar("N",15);
+x1=x2=leftstemloc; x3=x4=x5=w-x1;
+bot y1=bot y4=-o;
+top y2=top y5=h+o; y3=y4+ygap;
+draw z1--z2--z3; draw z4--z5;
+labels(1,2,3,4,5); endchar;
+
+ligtable "T": "A" kern -.5u#;
+ligtable "F": "O" kern -u#;
+ligtable "P": "O" kern u#;
+
+font_quad:=18u#+2s#;
+font_normal_space:=6u#+2s#;
+font_normal_stretch:=3u#;
+font_normal_shrink:=2u#;
+font_identifier:="MFLOGO" if slant<>0: & "SL" fi;
+font_coding_scheme:="AEFMNOPST only";
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logo10.mf b/Master/texmf-dist/fonts/source/public/mflogo/logo10.mf
new file mode 100644
index 00000000000..2b89c710d10
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/logo10.mf
@@ -0,0 +1,10 @@
+% 10-point METAFONT logo
+font_size 10pt#; % the "design size" of this font
+ht#:=6pt#; % height of characters
+xgap#:=0.6pt#; % horizontal adjustment
+u#:=4/9pt#; % unit width
+s#:=0; % extra space at the left and the right
+o#:=1/9pt#; % overshoot
+px#:=2/3pt#; % horizontal thickness of pen
+input logo % now generate the font
+bye % and stop.
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logo8.mf b/Master/texmf-dist/fonts/source/public/mflogo/logo8.mf
new file mode 100644
index 00000000000..59b37c072bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/logo8.mf
@@ -0,0 +1,10 @@
+% 8-point METAFONT logo
+font_size 8pt#; % the "design size" of this font
+ht#:=.8*6pt#; % height of characters
+xgap#:=.8*0.6pt#; % horizontal adjustment
+u#:=.82*4/9pt#; % unit width
+s#:=.2pt#; % extra space at the left and the right
+o#:=1/12pt#; % overshoot
+px#:=.8*2/3pt#; % horizontal thickness of pen
+input logo % now generate the font
+bye % and stop.
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logo9.mf b/Master/texmf-dist/fonts/source/public/mflogo/logo9.mf
new file mode 100644
index 00000000000..49ea7e99f75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/logo9.mf
@@ -0,0 +1,10 @@
+% 9-point METAFONT logo
+font_size 9pt#; % the "design size" of this font
+ht#:=.9*6pt#; % height of characters
+xgap#:=.9*0.6pt#; % horizontal adjustment
+u#:=.91*4/9pt#; % unit width
+s#:=.08pt#; % extra space at the left and the right
+o#:=1/10pt#; % overshoot
+px#:=.9*2/3pt#; % horizontal thickness of pen
+input logo % now generate the font
+bye % and stop.
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logobf10.mf b/Master/texmf-dist/fonts/source/public/mflogo/logobf10.mf
new file mode 100644
index 00000000000..f943053ff5a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/logobf10.mf
@@ -0,0 +1,10 @@
+% 10-point boldface METAFONT logo
+font_size 10pt#; % the "design size" of this font
+ht#:=6pt#; % height of characters
+xgap#:=23/20*0.6pt#; % horizontal adjustment
+u#:=23/20*4/9pt#; % unit width
+s#:=.1pt#; % extra space at the left and the right
+o#:=1/9pt#; % overshoot
+px#:=44/36pt#; % horizontal thickness of pen
+input logo % now generate the font
+bye % and stop.
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logod10.mf b/Master/texmf-dist/fonts/source/public/mflogo/logod10.mf
new file mode 100644
index 00000000000..fc484a4b182
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/logod10.mf
@@ -0,0 +1,10 @@
+% 10-point demibold METAFONT logo
+font_size 10pt#; % the "design size" of this font
+ht#:=6pt#; % height of characters
+xgap#:=21/20*0.6pt#; % horizontal adjustment
+u#:=21/20*4/9pt#; % unit width
+s#:=0; % extra space at the left and the right
+o#:=1/9pt#; % overshoot
+px#:=.5[2/3pt#,44/36pt#]; % horizontal thickness of pen
+input logo % now generate the font
+bye % and stop.
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logosl10.mf b/Master/texmf-dist/fonts/source/public/mflogo/logosl10.mf
new file mode 100644
index 00000000000..741fdb9fa2e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/logosl10.mf
@@ -0,0 +1,3 @@
+% 10-point slanted METAFONT logo
+slant := 1/4;
+input logo10
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logosl8.mf b/Master/texmf-dist/fonts/source/public/mflogo/logosl8.mf
new file mode 100644
index 00000000000..5684ce948f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/logosl8.mf
@@ -0,0 +1,12 @@
+% 8-point slanted METAFONT logo
+% [ heavily borrowed from D. E. Knuth ]
+
+% Copyright (C) 1995--1999 Ulrik Vieth
+%
+% This program is free software; you can redistribute it and/or
+% modify it under the terms of the LaTeX Project Public License
+% as described in lppl.txt in the base LaTeX distribution; either
+% version 1 of the License, or (at your option) any later version.
+
+slant := 1/4;
+input logo8
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/logosl9.mf b/Master/texmf-dist/fonts/source/public/mflogo/logosl9.mf
new file mode 100644
index 00000000000..03b3d922884
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/logosl9.mf
@@ -0,0 +1,3 @@
+% 9-point slanted METAFONT logo
+slant := 1/4;
+input logo9
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/nlogo.mf b/Master/texmf-dist/fonts/source/public/mflogo/nlogo.mf
new file mode 100644
index 00000000000..b43a3924665
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/nlogo.mf
@@ -0,0 +1,15 @@
+% Driver file for the METAFONT logo
+if unknown logobase: input logobase fi
+
+mode_setup; font_setup;
+input METAFON
+
+ligtable "T": "A" kern -.5u#;
+ligtable "F": "O" kern -u#;
+
+font_quad:=18u#+2s#;
+font_normal_space:=6u#+2s#;
+font_normal_stretch:=3u#;
+font_normal_shrink:=2u#;
+font_identifier:="MFLOGO" if slant<>0: & "SL" fi;
+font_coding_scheme:="AEFMNOT only";
diff --git a/Master/texmf-dist/fonts/source/public/mflogo/sklogo.mf b/Master/texmf-dist/fonts/source/public/mflogo/sklogo.mf
new file mode 100644
index 00000000000..4a6f0d82b1a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mflogo/sklogo.mf
@@ -0,0 +1,11 @@
+% skinny variant of METAFONT logo
+font_size 30pt#; % the "design size" of this font
+ht#:=25pt#; % height of characters
+xgap#:=1.5pt#; % horizontal adjustment
+u#:=3/9pt#; % unit width
+s#:=1/3pt#; % extra space at the left and the right
+o#:=2/9pt#; % overshoot
+px#:=1pt#; % horizontal thickness of pen
+slant:=-1/9; % leftward bias
+input nlogo % now generate the font (testing the driver approach)
+bye % and stop.
diff --git a/Master/texmf-dist/fonts/source/public/mfpic/grafbase.mf b/Master/texmf-dist/fonts/source/public/mfpic/grafbase.mf
new file mode 100644
index 00000000000..3147d2eef3d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mfpic/grafbase.mf
@@ -0,0 +1,2359 @@
+%%
+%% This is file `grafbase.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% grafbase.dtx (with options: `MF')
+%%
+%% -------------------------------------------------------------------
+%%
+%% Copyright 2002--2003, Daniel H. Luecking
+%%
+%% Mfpic consists of the 3 files mfpic.dtx, grafbase.dtx and mfpic.ins
+%% and the 5 files they generate: mfpic.tex, mfpic.sty, grafbase.mf,
+%% grafbase.mp, and dvipsnam.mp.
+%%
+%% Documentation, examples, and ancillary files are separate. See
+%% readme.1st for a complete list.
+%%
+%% Mfpic may be distributed and/or modified under the conditions of the
+%% LaTeX Project Public License, either version 1.2 of this license or (at
+%% your option) any later version. The latest version of this license is in
+%%
+%% http://www.latex-project.org/lppl.txt
+%%
+%% and version 1.2 or later is part of all distributions of LaTeX version
+%% 1999/12/01 or later.
+%%
+%% With respect to the proposed draft LPPL-1.3: mfpic has maintenance
+%% status "maintained". The Current Maintainer is Daniel H. Luecking. There
+%% are several Base Interpreters: TeX, LaTeX, MetaPost and Metafont.
+%%
+string fileversion, filedate;
+fileversion := "0.7a beta"; filedate := "2004/04/16";
+def GBmsg expr s = message "Grafbase: " & s; enddef;
+def GBerrmsg (expr s) expr t =
+ errhelp t;
+ errmessage "Grafbase: "& s;
+ errhelp "";
+enddef;
+if (known grafbaseversion) or (known grafbase) :
+ GBmsg "You have loaded grafbase more than once! " &
+ "Please make sure that it is loaded only once.";
+ endinput;
+fi
+
+boolean grafbase; grafbase := true;
+boolean MFPIC; MFPIC := false;
+
+def checkversions (expr g)=
+ numeric grafbaseversion; grafbaseversion := g;
+ if unknown mfpicversion : % no mfpic, or < 0.63
+ GBmsg "Recent mfpic not detected.";
+ elseif g = mfpicversion :
+ MFPIC := true;
+ else:
+ GBerrmsg ("version mismatch")
+ "The installation may be broken: mfpic and grafbase " &
+ "versions do not match.";
+ fi
+enddef;
+
+checkversions (70);
+
+if unknown base_name : input plain;
+elseif not string base_name : input plain;
+elseif base_name <> "plain" : input plain;
+fi
+
+boolean METAPOST;
+
+if known color Maurits Cornelis Escher : METAPOST := true;
+else: METAPOST := false;
+fi
+
+if METAPOST :
+ GBerrmsg ("wrong compiler")
+ "You may have input to Metapost a file designed for Metafont. " &
+ "Instead of the file grafbase.mf, Metapost should be using " &
+ "grafbase.mp. Make sure Metapost can find it.";
+fi
+
+if (unknown debug) or (not boolean debug) :
+ boolean debug; debug := false;
+fi
+
+def GBdebug =
+ begingroup
+ save >>; def >> = message enddef;
+ >> "Grafbase DEBUG: ";
+enddef;
+def GBenddebug =
+ >> "End DEBUG";
+ endgroup
+enddef;
+
+vardef mftitle expr t =
+ t; message t;
+enddef;
+
+if unknown mode :
+ GBerrmsg ("unknown Metafont mode")
+ "Please use \mode:=localfont; or a mode known on your " &
+ "system. If you continue, ljfour mode will be tried.";
+ mode := lfjour;
+fi
+
+mode_setup;
+if debug :
+ GBdebug;
+ >> "pixels_per_inch = " & decimal pixels_per_inch;
+ GBenddebug;
+fi
+font_identifier := "MFpic graphics";
+font_coding_scheme := "Arbitrary";
+interim designsize := 128pt#;
+
+if unknown aspect_ratio: aspect_ratio := 1; fi
+if unknown hppp : hppp := 1 fi;
+if unknown currenttransform :
+ transform currenttransform;
+ currenttransform := identity yscaled aspect_ratio;
+fi
+
+interim turningcheck := 0;
+interim warningcheck := 0;
+numeric unitlen, xscale, yscale, xneg, xpos, yneg, ypos;
+
+unitlen := 1 bp#;
+xscale := 7.2; % (xscale * unitlen) = 1/10 inch
+yscale := 7.2; % (yscale * unitlen) = 1/10 inch
+xneg := 0; xpos := 10;
+yneg := 0; ypos := 10;
+
+newinternal radian, pi, deg;
+deg := 1; pi := 3.14159;
+radian := 180/pi;
+
+
+newinternal penwd; penwd := 0.5pt;
+pen drawpen;
+
+def resizedrawpen (expr s) =
+ interim penwd := s;
+ setvariable (pen) (drawpen) (pencircle scaled penwd);
+ save currentpen; pen currentpen; pickup drawpen;
+enddef;
+
+numeric hatchwd; hatchwd := 0.5bp;
+pen hatchpen; hatchpen := pencircle scaled hatchwd;
+
+boolean clipall; clipall := false;
+boolean ClipOn; ClipOn := false;
+path ClipPath[]; numeric ClipPath; ClipPath = 0;
+boolean truebbox; truebbox := false;
+
+def DoClip (suffix v) =
+ if ClipOn and (ClipPath > 0) : clipsto (v, ClipPath); fi
+enddef;
+
+def noclip (text t) =
+ hide( save ClipOn; boolean ClipOn; ClipOn := false; t)
+enddef;
+
+boolean showbbox; showbbox := false;
+
+let color = numeric; color black, white;
+black := 0; white := 1;
+def _wc_ = killtext enddef;
+
+color currentcolor, fillcolor, drawcolor, hatchcolor,
+ headcolor, pointcolor, tlabelcolor, background;
+currentcolor := fillcolor := drawcolor := hatchcolor :=
+ headcolor := pointcolor := tlabelcolor := black;
+background := white;
+
+vardef snapto expr t =
+ if unknown t : 0
+ elseif not (numeric t) : 0
+ elseif t < 0 : 0
+ elseif t > 1 : 1
+ else : t
+ fi
+enddef;
+
+vardef gray (expr g) = (snapto g)*white enddef;
+
+vardef makeclr (expr r, g, b) =
+ gray (sqrt((2r*r + 4g*g + b*b)/7))
+enddef;
+
+vardef rgb (expr r, g, b) =
+ makeclr (snapto r, snapto g, snapto b)
+enddef;
+
+vardef cmyk (expr c, m, y, k) =
+ rgb (1-c-k, 1-m-k, 1-y-k)
+enddef;
+
+vardef RGB (expr R, G, B) =
+ rgb (R/255, G/255, B/255)
+enddef;
+
+vardef named (suffix c) = forceclr (c) enddef;
+vardef forceclr (expr c) =
+ if unknown c : black
+ elseif numeric c : gray (c)
+ elseif color c : c
+ else : black
+ fi
+enddef;
+
+color red, green, blue, cyan, magenta, yellow;
+red := rgb (1, 0, 0);
+green := rgb (0, 1, 0);
+blue := rgb (0, 0, 1);
+cyan := rgb (0, 1, 1);
+magenta := rgb (1, 0, 1);
+yellow := rgb (1, 1, 0);
+
+vardef list (suffix v) (text lst) =
+ v := 0; for _itm = lst: v[incr v] := _itm; endfor
+enddef;
+
+def map (text proc) (text lst) =
+ hide(_map := 0;)
+ for _a = lst :
+ if _map = 0 : hide(_map := 1;) else: , fi
+ proc(_a)
+ endfor
+enddef;
+
+vardef knownarray suffix arr =
+ save _kna; boolean _kna;
+ _kna := (known arr) and (numeric arr);
+ if _kna :
+ _kna := (arr = floor arr) and (arr >= 1);
+ for _idx = 1 upto arr :
+ exitif not _kna;
+ _kna := known arr[_idx];
+ endfor
+ fi
+ _kna
+enddef;
+
+def copyarray(suffix from, to) =
+ to := 0;
+ for _idx = 1 upto from:
+ to[incr to] := from[_idx];
+ endfor
+enddef;
+
+def maparr (text proc) (suffix p) =
+ for _idx = 1 upto p: proc (p[_idx]); endfor
+enddef;
+
+def textpairs (suffix p) (text t) =
+ numeric p; pair p[]; list (p) (t);
+enddef;
+
+vardef chpair (text proc) (expr p) =
+ (proc (xpart p), proc (ypart p))
+enddef;
+
+vardef floorpair (expr p) = chpair (floor) (p) enddef;
+vardef ceilingpair (expr p) = chpair (ceiling) (p) enddef;
+vardef hroundpair (expr p) = chpair (hround) (p) enddef;
+
+vardef emin (expr a, b) = if a < b : a else: b fi enddef;
+vardef emax (expr a, b) = if a > b : a else: b fi enddef;
+
+vardef pairmin (expr z, w) =
+ ( emin (xpart z, xpart w), emin (ypart z, ypart w ) )
+enddef;
+vardef pairmax (expr z, w) =
+ ( emax (xpart z, xpart w), emax (ypart z, ypart w ) )
+enddef;
+
+vardef minpair (suffix p) =
+ save _mp; pair _mp; _mp := p1;
+ for _idx = 2 upto p - 1 :
+ _mp := pairmin(_mp, p[_idx]);
+ endfor
+ pairmin (_mp, p[p])
+enddef;
+vardef maxpair (suffix p) =
+ save _mp; pair _mp; _mp := p1;
+ for _idx = 2 upto p - 1: _mp := pairmax(_mp, p[_idx]); endfor
+ pairmax (_mp, p[p])
+enddef;
+
+transform ztr, vtr;
+def setztr =
+ if debug :
+ GBdebug;
+ >> "charwd = " & decimal charwd & "pt#";
+ >> "charht = " & decimal charht & "pt#";
+ >> "w_ = " & decimal w_ & " pixels";
+ >> "h_ = " & decimal h_ & " pixels";
+ >> "unitlen = " & decimal unitlen & "pt#";
+ >> "hppp = " & decimal hppp;
+ >> "xneg = " & decimal xneg;
+ >> "xpos = " & decimal xpos;
+ >> "yneg = " & decimal yneg;
+ >> "ypos = " & decimal ypos;
+ >> "xscale = " & decimal xscale;
+ >> "yscale = " & decimal yscale;
+ GBenddebug;
+ fi
+ save ztr, vtr;
+ transform ztr, vtr;
+ vtr := identity xscaled (xscale) yscaled (yscale)
+ scaled (unitlen*hppp);
+ ztr := identity shifted (-(xneg, yneg)) transformed vtr;
+ if debug :
+ GBdebug;
+ >> "ztr: ";
+ show ztr;
+ >> "vtr: ";
+ show vtr;
+ GBenddebug;
+ fi
+enddef;
+
+vardef zconv (expr a) = a transformed ztr enddef;
+vardef invzconv (expr a) = a transformed (inverse ztr) enddef;
+vardef vconv (expr v) = v transformed vtr enddef;
+vardef invvconv (expr v) = v transformed (inverse vtr) enddef;
+
+def active_plane = currentpicture enddef;
+
+vardef image(text t) =
+ save currentpicture; picture currentpicture;
+ currentpicture := nullpicture;
+ t;
+ currentpicture
+enddef;
+
+def initpic =
+ setztr;
+ resizedrawpen (penwd);
+ if ClipOn : ClipPath := 1;
+ ClipPath1 := rect (origin, (w_, h_));
+ fi
+ if debug :
+ GBdebug;
+ >> "Drawing nominal bounding box around picture";
+ GBenddebug;
+ noclip ( safedraw rect (origin, (w_, h_)) );
+ fi
+enddef;
+
+def mfpicenv = enddef;
+def endmfpicenv = enddef;
+def bounds (expr a, b, c, d) =
+ xneg := a; xpos := b;
+ yneg := c; ypos := d;
+enddef;
+
+def setvariable (text kind) (suffix name) (expr value) =
+ save name; kind name; name := value;
+enddef;
+
+string extra_beginmfpic; extra_beginmfpic := "";
+string extra_endmfpic; extra_endmfpic := "";
+
+def beginmfpic (expr ch) =
+ begingroup
+ gcode := ch;
+ save w_, h_, d_; numeric w_, h_, d_;
+ charwd := (xpos-xneg)*xscale*unitlen;
+ charht := (ypos-yneg)*yscale*unitlen;
+ chardp := 0;
+ charcode := if known ch : byte ch else: 0 fi;
+ w_ := hround(charwd*hppp);
+ h_ := vround(charht*hppp);
+ d_ := vround(chardp*hppp);
+ charic := 0; clearxy; clearit; clearpen;
+ scantokens extra_beginchar;
+ initpic;
+ scantokens extra_beginmfpic;
+enddef;
+
+def endmfpic =
+ scantokens extra_endmfpic;
+ if debug :
+ GBdebug;
+ >> "TFM charwd = " & decimal charwd & "pt#";
+ >> "TFM charht = " & decimal charht & "pt#";
+ GBenddebug;
+ fi
+ if proofing>0 : makebox(proofrule); fi
+ chardx := w_; % desired width of character in pixels
+ DoClip (active_plane);
+ if clipall : clipto (active_plane) rect(origin, (w_, h_)); fi
+ if showbbox : noclip ( safedraw rect (origin, (w_, h_)) ); fi
+ shipit;
+ if displaying > 0 : makebox(screenrule); showit; fi
+ endgroup
+enddef;
+
+pair label_adjust; label_adjust := (0, 0);
+numeric label_sep; label_sep := 0;
+
+def verbatimtex = killtext enddef;
+
+def newgblabel (expr hf, vf, BL, r) (text s) (text pts) = enddef;
+vardef ref_shift (expr hf, vf, BL, ll, ur) =
+ - ( (hf)[xpart ll, xpart ur],
+ (vf)[if BL: 0 else: (ypart ll) fi, ypart ur] )
+enddef;
+
+vardef thegblabel (expr z, r, p) =
+ ((p shifted z) rotated r) shifted label_adjust
+enddef;
+
+vardef textrect (expr lbl, rad, loc) =
+ textrectx (.5, .5, false, 0) (origin, lbl, rad, loc)
+enddef;
+vardef textoval (expr lbl, mult, loc) =
+ xellipse (true, .5, .5, false, 0) (origin, lbl, mult, loc)
+enddef;
+vardef textellipse (expr lbl, rat, loc) =
+ xellipse (false, .5, .5, false, 0) (origin, lbl, rat, loc)
+enddef;
+
+boolean roundends; roundends := true;
+vardef textrectx (expr a, b, c, rot, xy, lbl, rad, loc) =
+ save ll, ur, _r, f, zz;
+ pair ll, ur, zz; path f;
+ labeldims (xy, lbl) (ll, ur);
+ _r :=
+ if boolean rad :
+ if rad : emin (xpart (ur-ll), ypart (ur-ll))/sqrt(2)
+ else: 0
+ fi
+ elseif numeric rad : rad
+ else: 0
+ fi;
+ if _r = 0 :
+ f := rect(ll, ur);
+ else:
+ save p, q;
+ pair p[]; path q;
+ p1 := ur - _r*dir(45); % center of upper right arc
+ p3 := ll + _r*dir(45); % lower left
+ p2 := (xpart p3, ypart p1); % upper left
+ p4 := (xpart p1, ypart p3); % lower right
+ q := quartercircle scaled 2_r;
+ if _r > 0:
+ f := (q shifted p1) -- (q rotated 90 shifted p2)
+ -- (q rotated 180 shifted p3)
+ -- (q rotated -90 shifted p4)
+ -- cycle;
+ else:
+ f := (q shifted p1) -- (q rotated -90 shifted p4)
+ -- (q rotated 180 shifted p3)
+ -- (q rotated 90 shifted p2)
+ -- cycle;
+ fi
+ fi
+ invvconv(thegblabel(ref_shift(a, b, c, ll, ur), rot, f)) shifted loc
+enddef;
+
+def textovalx = xellipse (true) enddef;
+def textellipsex = xellipse (false) enddef;
+
+vardef xellipse (expr aspect, a, b, c, r, xy, lbl, mult, loc) =
+ if mult = 0 :
+ textrectx (a, b, c, r) (xy, lbl, 0, loc)
+ else:
+ save ll, ur, cc, ww, hh, f;
+ pair ll, ur, cc; path f;
+ labeldims (xy, lbl) (ll, ur);
+ cc := .5[ll, ur]; % center
+ (ww, hh) = ur - cc;
+ if (ww = 0) or (hh = 0) : % make a line:
+ f = (ll--ur);
+ else:
+ save aa, bb, mm;
+ mm := if aspect : ww/hh*mult else: mult fi;
+ aa := ww ++ hh*mm;
+ bb := aa/mm;
+ f := ellipse(cc, aa, bb, 0);
+ fi
+ invvconv(thegblabel (ref_shift (a, b, c, ll, ur), r, f)) shifted loc
+ fi
+enddef;
+
+
+def labeldims (expr xy, lbl) (suffix ll, ur) =
+ if pair lbl :
+ ll := xy; ur := lbl;
+ else:
+ ll := ur := (0, 0);
+ fi
+ ll := ll - label_sep*(1, 1);
+ ur := ur + label_sep*(1, 1);
+enddef;
+
+newinternal nottoosmall; nottoosmall := eps/2 + 2epsilon;
+newinternal reallysmall; reallysmall := 3epsilon;
+def signof (expr X) = if X < 0 : - fi enddef;
+def TruncateWarn expr s = GBmsg s & " too large; truncating"; enddef;
+
+vardef secd primary X =
+ save temp; temp := cosd(X);
+ if abs(temp) < reallysmall :
+ TruncateWarn "Secant";
+ temp := signof (temp) reallysmall;
+ fi
+ 1/temp
+enddef;
+vardef tand primary X = sind(X)*secd(X) enddef;
+
+vardef cscd primary X =
+ save temp; temp := sind(X);
+ if abs(temp) < reallysmall :
+ TruncateWarn "Cosecant";
+ temp := signof(temp) reallysmall;
+ fi
+ 1/temp
+enddef;
+vardef cotd primary X = cosd(X)*cscd(X) enddef;
+
+vardef acos primary X = angle (X, 1 +-+ X) enddef;
+vardef asin primary X = angle (1 +-+ X, X) enddef;
+vardef atan primary X = angle (1, X) enddef;
+
+vardef sin primary X = sind (X*radian) enddef;
+vardef cos primary X = cosd (X*radian) enddef;
+vardef tan primary X = tand (X*radian) enddef;
+vardef cot primary X = cotd (X*radian) enddef;
+vardef sec primary X = secd (X*radian) enddef;
+vardef csc primary X = cscd (X*radian) enddef;
+
+vardef invcos primary X = (acos X)/radian enddef;
+vardef invsin primary X = (asin X)/radian enddef;
+vardef invtan primary X = (atan X)/radian enddef;
+
+vardef exp primary X = mexp (256 * X) enddef;
+vardef ln primary X = (mlog X) / 256 enddef;
+def log = ln enddef;
+vardef logbase (expr B) primary X = (mlog X)/(mlog B) enddef;
+def logtwo = logbase( 2) enddef;
+def logten = logbase(10) enddef;
+
+vardef Arg primary Z = (angle Z)/radian enddef;
+vardef Log primary Z = (ln(abs(Z)), Arg (Z)) enddef;
+vardef cis primary T = dir(radian*T) enddef;
+vardef zexp primary Z = (exp (xpart Z))*(cis(ypart Z)) enddef;
+vardef sgn primary Z =
+ if Z = origin : origin else: unitvector Z fi
+enddef;
+
+vardef cosh primary X =
+ save temp; temp := 2 exp (-abs(X));
+ if temp < reallysmall :
+ TruncateWarn "Cosh";
+ temp := reallysmall;
+ fi
+ 1/temp + temp/4
+enddef;
+
+vardef sinh primary X =
+ save temp; temp := 2 exp (-abs(X));
+ if temp < reallysmall :
+ TruncateWarn "Sinh";
+ temp := reallysmall;
+ fi
+ signof (X) (1/temp - temp/4)
+enddef;
+
+vardef sech primary X =
+ save temp; temp := exp(-(abs (X)));
+ 2temp/(1 + temp*temp)
+enddef;
+
+vardef tanh primary X =
+ save temp; temp := exp(-2(abs (X)));
+ signof (X) (1 - temp)/(1 + temp)
+enddef;
+
+vardef csch primary X =
+ save temp; temp := exp(-(abs (X)));
+ if abs(1 - temp*temp) < reallysmall :
+ TruncateWarn "Csch";
+ signof (X) 2temp / reallysmall
+ else:
+ signof (X) 2temp / (1 - temp*temp)
+ fi
+enddef;
+
+vardef coth primary X =
+ save temp; temp := tanh(X);
+ if abs(temp) < reallysmall :
+ TruncateWarn "Coth";
+ temp := signof (temp) reallysmall;
+ fi
+ 1/temp
+enddef;
+
+vardef acosh primary y =
+ if y < 1 :
+ GBerrmsg ("Undefined function: acosh " & decimal y)
+ "If you proceed, a value of 0 will be used. " &
+ "Expect more errors later.";
+ 0
+ else:
+ ln (y + (y+-+1))
+ fi
+enddef;
+
+vardef asinh primary y = ln (y + (y++1)) enddef;
+
+vardef atanh primary y =
+ if abs (y) < 1 :
+ (ln(1+y) - ln(1-y))/2
+ else:
+ GBerrmsg ("Undefined function: atanh " & decimal y)
+ "If you proceed, a value of plus or minus infinity " &
+ "will be used. Expect more errors later.";
+ signof (y) infinity
+ fi
+enddef;
+
+vardef polar (expr p) = (xpart p) * dir (ypart p) enddef;
+def id (expr x) = x enddef;
+
+transform T_stack[]; T_stack := 0;
+def T_push (expr T) = T_stack[incr T_stack] := T; enddef;
+def T_pop (suffix $) =
+ if T_stack > 0 :
+ $ := T_stack[T_stack]; T_stack := T_stack - 1;
+ fi
+enddef;
+
+def bcoords = hide ( T_push (ztr); T_push (vtr) ) enddef;
+def ecoords = hide ( T_pop (vtr); T_pop (ztr) ) enddef;
+
+def apply_t (text Transformer) =
+ ztr := identity Transformer transformed ztr;
+ vtr := ztr shifted - zconv(origin);
+enddef;
+
+def xslant = slanted enddef; % (x+sy, y).
+def yslant primary s = % (x, y+sx).
+ transformed
+ begingroup
+ save _T; transform _T;
+ origin transformed _T = origin;
+ (1, 0) transformed _T = (1, s);
+ (0, 1) transformed _T = (0, 1);
+ _T
+ endgroup
+enddef;
+
+def zslant primary p = % (xu+yv, xv+yu), where p = (u, v).
+ transformed
+ begingroup
+ save _T; transform _T;
+ xpart _T = ypart _T = 0;
+ xxpart _T = yypart _T = xpart p;
+ xypart _T = yxpart _T = ypart p;
+ _T
+ endgroup
+enddef;
+
+def xyswap = zslant (0, 1) enddef;
+def boost primary X = zslant (cosh X, sinh X) enddef;
+
+vardef rotatedpath (expr p, th) expr f =
+ f transformed vtr rotatedaround (p transformed vtr, th)
+ transformed (inverse vtr)
+enddef;
+vardef scaledpath (expr p, s) expr f =
+ f shifted -p scaled s shifted p
+enddef;
+vardef xslantedpath (expr b, s) expr f =
+ f shifted (0, -b) slanted s shifted (0, b)
+enddef;
+def slantedpath = xslantedpath enddef;
+vardef yslantedpath (expr a, s) expr f =
+ f shifted (-a, 0) yslant s shifted (0, a)
+enddef;
+vardef xscaledpath (expr a, s) expr f =
+ f shifted (-a, 0) xscaled s shifted (a, 0)
+enddef;
+vardef yscaledpath (expr b, s) expr f =
+ f shifted (0, -b) yscaled s shifted (0, b)
+enddef;
+vardef shiftedpath (expr v) expr f = f shifted v enddef;
+vardef reflectedpath (expr p, q) expr f =
+ f transformed vtr
+ reflectedabout (p transformed vtr, q transformed vtr)
+ transformed (inverse vtr)
+enddef;
+vardef xyswappedpath expr f = f xyswap enddef;
+vardef transformedpath (text Transformer) expr f =
+ f Transformer
+enddef;
+
+vardef partialpath (expr a, b) expr f =
+ save p; path p;
+ p := zconv (f) scaled (1/unit_of_length);
+ save cumlen, totlen, idx, ta, tb;
+ totlen := makelengtharray(cumlen) p;
+ idx := 0;
+ if a <= b:
+ ta := gettime (cumlen, idx) (a*totlen);
+ tb := gettime (cumlen, idx) (b*totlen);
+ else:
+ tb := gettime (cumlen, idx) (b*totlen);
+ ta := gettime (cumlen, idx) (a*totlen);
+ fi
+ subpath (ta, tb) of f
+enddef;
+vardef gsubpath (expr a, b) expr f = subpath (a, b) of f enddef;
+
+def mono (suffix u) = cull u keeping (1, infinity); enddef;
+
+def andto (suffix u) (expr v) =
+ mono (u); addto u also v; cull u keeping (2, 2);
+enddef;
+primarydef u picand v =
+ begingroup save t; picture t;
+ t := u; andto (t, v); t
+ endgroup
+enddef;
+
+def orto (suffix u) (expr v) =
+ mono (u); addto u also v; cull u keeping (1, 2);
+enddef;
+primarydef u picor v =
+ begingroup save t; picture t;
+ t := u; orto (t, v); t
+ endgroup
+enddef;
+
+def xorto (suffix u) (expr v) =
+ mono (u); addto u also v; cull u keeping (1, 1);
+enddef;
+primarydef u picxor v =
+ begingroup save t; picture t;
+ t := u; xorto (t, v); t
+ endgroup
+enddef;
+
+def subto (suffix u) (expr v) =
+ mono (u); addto u also -v; cull u keeping (1, 1);
+enddef;
+primarydef u picsub v =
+ begingroup save t; picture t;
+ t := u; mono (t); subto (t, v); t
+ endgroup
+enddef;
+
+def coloraddto (expr clr) (suffix u) (expr v) =
+ if clr < white :
+ orto (u, v);
+ else:
+ subto (u) (v);
+ fi;
+enddef;
+
+vardef interior expr c =
+ save v; picture v; v := nullpicture;
+ addto v contour (c.t_);
+ cull v dropping (0, 0);
+ v
+enddef;
+vardef interiors suffix cc =
+ save _ints; picture _ints; _ints := nullpicture;
+ for _idx = 1 upto cc:
+ addto _ints also interior cc[_idx]);
+ endfor
+ mono (_ints);
+ _ints
+enddef;
+
+def clipto (suffix vt) expr c =
+ andto (vt, interior c);
+enddef;
+def clipsto (suffix vt, cc) =
+ andto (vt, interiors cc);
+enddef;
+
+vardef Clipped (suffix vt) expr c =
+ save _Cl; picture _Cl; _Cl := vt; clipto (_Cl) c; _Cl
+enddef;
+def clipped = Clipped enddef;
+def clip = Clipped enddef;
+
+vardef picneg (suffix vt) expr c =
+ mono (vt);
+ (interior c) picsub vt
+enddef;
+
+def shpath (suffix v) (expr q, f) =
+ addto v doublepath (f.t_) withpen (q.t_);
+enddef;
+
+numeric minpenwd;
+minpenwd := 1; % 1 pixel
+vardef picpath expr d =
+ save v; picture v; v := nullpicture;
+ if penwd >= minpenwd :
+ shpath (v, drawpen) (d);
+ mono (v);
+ fi
+ v
+enddef;
+
+def picdot (suffix v) (expr w, p) =
+ addto v also
+ (w shifted hroundpair (p.t_));
+enddef;
+
+vardef setdot (expr apath, sc) =
+ if cycle apath : interior
+ else : picpath
+ fi
+ (apath scaled emax(ceiling (sc), minpenwd))
+enddef;
+
+numeric shadepicsize; shadepicsize := 0.8bp;
+vardef shadepic (suffix dims) (expr grparam) =
+ pair dims;
+ save _frac; _frac := 2*emin(grparam, 1 - grparam);
+ save _hp, _vp, _dotwd, _dotht;
+ if aspect_ratio < 1 :
+ _vp := emax (2, hround(shadepicsize.o_));
+ _hp := hround (_vp._o_);
+ _dotwd := hround (_hp*sqrt _frac);
+ _dotht := if _dotwd = 0 : 0
+ else: hround (_hp*_vp*_frac/_dotwd)
+ fi;
+ else:
+ _hp := emax (2, hround (shadepicsize));
+ _vp := hround (_hp.o_);
+ _dotht := hround (_vp*sqrt _frac);
+ _dotwd := if _dotht = 0 : 0
+ else: hround (_hp*_vp*_frac/_dotht)
+ fi;
+ fi
+ dims := ( _hp, _vp._o_ );
+ save _shp; picture _shp; _shp := nullpicture;
+ addto _shp contour rect ((0,0), (_dotwd, _dotht));
+ picdot (_shp, _shp, dims);
+ dims := 2dims; mono (_shp);
+ if grparam >= .5 : _shp
+ else : (interior (rect ((0,0), dims))) picsub _shp
+ fi
+enddef;
+
+vardef shaded (expr clr) expr c =
+ if cycle c :
+ if (clr <= black) or (clr >= white) :
+ interior c
+ else:
+ save vsh, shpic, shdims, ll, ur;
+ picture vsh, shpic; pair shdims, ll, ur;
+ shpic := shadepic (shdims) (clr);
+ gbbox (c, ll, ur);
+ vsh := filledwith (shpic) (shdims, ll, ur);
+ Clipped (vsh) c
+ fi
+ else: picpath c % should we? or just make it null?
+ fi
+enddef;
+
+vardef filledwith (expr pic, dims, ll, ur) =
+ save b, v; picture b, v;
+ b := v := nullpicture;
+ save fwdims, _ll, _ur; pair fwdims, _ll, _ur;
+ fwdims := hroundpair (dims.t_);
+ _ll := floorpair (ll.t_);
+ _ur := ur.t_;
+ for s = xpart _ll step xpart fwdims until xpart _ur:
+ addto b also pic shifted (s, 0);
+ endfor
+ for s = ypart _ll step ypart fwdims until ypart _ur:
+ addto v also b shifted (0, s);
+ endfor
+ mono (v);
+ v
+enddef;
+
+vardef thatchf (suffix v) (expr CT, sp, a, b) =
+ save _sp;
+ _sp = signof (ypart(b - a)) abs(sp);
+ for _y = _sp*( ceiling ((ypart a)/_sp) ) step _sp until ypart b:
+ shpath (v, hatchpen)
+ ( ( (xpart a, _y)--(xpart b, _y) ) transformed CT );
+ endfor
+ mono(v);
+enddef;
+
+def tile (suffix atile) (expr unit, width, height, clipit) =
+ picture atile.pic; atile.pic := nullpicture;
+ numeric atile.wd, atile.ht;
+ (atile.wd, atile.ht) = round ((width, height)*unit);
+ boolean atile.clipon; atile.clipon := clipit;
+ begingroup
+ save active_plane;
+ def active_plane = atile.pic enddef;
+ save ztr, vtr; transform ztr, vtr;
+ ztr := identity scaled unit; vtr := ztr;
+ save ClipOn; boolean ClipOn;
+ if clipit :
+ ClipOn := true;
+ save ClipPath; path ClipPath[];
+ ClipPath = 1;
+ ClipPath[1] = rect(origin, (atile.wd, atile.ht));
+ else:
+ ClipOn := false;
+ fi
+enddef;
+def endtile =
+ DoClip (active_plane);
+ endgroup
+enddef;
+
+vardef is_tile (suffix atile) =
+ (known atile.pic ) and (picture atile.pic ) and
+ (known atile.wd ) and (numeric atile.wd ) and
+ (known atile.ht ) and (numeric atile.ht ) and
+ (known atile.clipon) and (boolean atile.clipon)
+enddef;
+
+vardef pnt@# (expr p) = point @# of p enddef;
+vardef pre@# (expr p) = precontrol @# of p enddef;
+vardef post@# (expr p) = postcontrol @# of p enddef;
+
+vardef gbbox (expr g) (suffix ll, ur) =
+ save _s; _s := emax(1, ceiling bbox_split);
+ ur := ll := pnt 0 (g);
+ if (length g) > 0 :
+ for _j = 1 upto length g:
+ ll := pairmin(ll, pnt[_j] (g)); ur := pairmax(ur, pnt[_j] (g));
+ endfor
+ for _j = 1 upto _s*(length g):
+ ctrlsbbox (subpath ((_j-1)/_s, _j/_s) of g) (ll, ur);
+ endfor
+ fi
+ if showbbox : noclip ( safedraw rect (ll, ur) ); fi
+enddef;
+
+numeric bbox_split; bbox_split := 2;
+def ctrlsbbox (expr p) (suffix ll, ur) =
+ ll := pairmin (ll, post0 (p)); ll := pairmin (ll, pre 1 (p));
+ ur := pairmax (ur, post0 (p)); ur := pairmax (ur, pre 1 (p));
+enddef;
+
+def safedraw = colorsafedraw (drawcolor) enddef;
+vardef colorsafedraw (expr clr) expr d =
+ save v; picture v; v := picpath d;
+ DoClip (v);
+ coloraddto (clr) (active_plane, v);
+enddef;
+
+def NoCycleWarn expr s =
+ GBmsg s & " cannot be applied to an open path. "
+ & "The path will be drawn instead.";
+enddef;
+
+def safefill = colorsafefill (fillcolor) enddef;
+vardef colorsafefill (expr clr) expr c =
+ if cycle c :
+ save v; picture v; v := interior c;
+ DoClip (v);
+ if (clr > black) and (clr < white) :
+ subto (active_plane) (v);
+ v := nullpicture;
+ v := shaded (clr) c;
+ fi
+ coloraddto (clr) (active_plane, v);
+ else: NoCycleWarn "fill"; safedraw c;
+ fi
+enddef;
+def safeunfill expr c =
+ if cycle c : noclip (colorsafefill (background) c);
+ else: NoCycleWarn "unfill"; safedraw c;
+ fi
+enddef;
+
+def safeclip expr c =
+ if cycle c : clipto (active_plane) c;
+ else: NoCycleWarn "clip"; safedraw c;
+ fi
+enddef;
+
+def store (suffix fs) expr f =
+hide(
+ if (not path f) and (not pair f) :
+ GBerrmsg ("Second argument to `store' must be a path or pair")
+ "";
+ fi
+ if not path fs : path fs; fi
+ fs := f
+)
+enddef;
+vardef stored (suffix fs) expr f = store (fs) f; f enddef;
+
+def drawn = colordrawn (drawcolor) enddef;
+vardef colordrawn (expr clr) expr f =
+ colorsafedraw (clr) (zconv (f)); f
+enddef;
+
+def filled = colorfilled (fillcolor) enddef;
+vardef colorfilled (expr clr) expr c =
+ colorsafefill (clr) zconv (c); c
+enddef;
+vardef unfilled expr c = safeunfill zconv (c); c enddef;
+vardef Clip expr c = safeclip zconv(c); c enddef;
+
+numeric shadewd; shadewd := 0.5bp;
+path shadedotpath;
+shadedotpath := fullcircle; % unitsquare;
+
+vardef shade (expr sp) expr f =
+ save g; path g; g := zconv (f);
+ save gr; numeric gr;
+ gr := 1 - (.88*abs(shadewd)/sp)**2;
+ if not cycle g : NoCycleWarn "shade"; safedraw g;
+ elseif gr <= 0 : safefill g;
+ else:
+ save ll, ur; pair ll, ur;
+ gbbox (g, ll, ur);
+ ll := floorpair (ll);
+ save sh, v; picture sh, v;
+ save dx; dx := ceiling(sp/(sqrt 2));
+ sh := setdot (shadedotpath, abs(shadewd));
+ v := filledwith (sh, 2(dx, dx), ll, ur);
+ DoClip(v);
+ orto (active_plane, Clipped (v) g);
+ sh := sh shifted hroundpair ((dx, dx).t_);
+ v := nullpicture;
+ v := filledwith (sh, 2(dx, dx), ll, ur);
+ DoClip(v);
+ orto (active_plane, Clipped (v) g);
+ fi
+ f
+enddef;
+
+polkadotwd := 5bp;
+mindotspace := 1bp;
+path polkadotpath; polkadotpath := fullcircle;
+
+vardef polkadot (expr sp) expr f =
+ save g; path g; g := zconv (f);
+ if not cycle g : NoCycleWarn "polkadot"; safedraw g;
+ elseif sp <= emax (2*polkadotwd/3, mindotspace) :
+ safefill g;
+ else:
+ save ll, ur; pair ll, ur;
+ gbbox (g, ll, ur);
+ save dx, dy; dx := sp/2; dy := dx*(sqrt 3);
+ hshift := ((xpart (ur - ll)) mod dx)/2;
+ vshift := ((ypart (ur - ll)) mod dy)/2;
+ save p, dims; pair p, dims;
+ p := ll + (hshift, vshift);
+ dims := 2(dx, dy);
+ save v, thepolkadot; picture v, thepolkadot;
+ thepolkadot := setdot (polkadotpath, polkadotwd);
+ v := filledwith (thepolkadot, dims, p, ur);
+ p := p + (dx, dy);
+ orto (v, filledwith (thepolkadot, dims, p, ur));
+ DoClip (v); clipto (v) g;
+ if (fillcolor > black) and (fillcolor < white): % gray
+ subto (active_plane) (v);
+ thepolkadot :=
+ shaded (fillcolor) polkadotpath scaled ceiling(polkadotwd);
+ v := filledwith (thepolkadot, dims, p, ur);
+ p := p - (dx, dy);
+ orto (v, filledwith (thepolkadot, dims, p, ur));
+ DoClip (v); clipto (v) g;
+ fi
+ coloraddto (fillcolor) (active_plane) (v);
+ fi
+ f
+enddef;
+
+def thatch = colorthatch (hatchcolor) enddef;
+vardef colorthatch (expr clr) (expr sp, theta) expr f =
+ save g; path g; g := zconv (f);
+ if not cycle g : NoCycleWarn "hatch"; safedraw g;
+ elseif sp <= abs(hatchwd) : colorsafefill (clr) g;
+ else:
+ save v; picture v; v := nullpicture;
+ save CT; transform CT; CT := identity rotated theta;
+ save ll, ur; pair ll, ur;
+ gbbox (g transformed inverse CT, ll, ur);
+ thatchf (v, CT, sp, ll, ur);
+ DoClip(v);
+ coloraddto (clr) (active_plane) (Clipped (v) g);
+ fi
+ f
+enddef;
+
+def hhatch (expr sp) = thatch (sp, 0) enddef;
+def vhatch (expr sp) = thatch (sp, 90) enddef;
+def lhatch (expr sp) = thatch (sp, -45) enddef;
+def rhatch (expr sp) = thatch (sp, 45) enddef;
+
+def xhatch = colorxhatch (hatchcolor) enddef;
+vardef colorxhatch (expr clr, sp) expr f =
+ colorthatch (clr) (sp, 45) colorthatch (clr) (sp, -45) f
+enddef;
+
+vardef tess (suffix atile) expr c =
+ save _g; path _g; _g := zconv (c);
+ if not is_tile (atile) :
+ GBerrmsg ("Tile parameter " & str atile & " of tess() is invalid")
+ "This tile may be undefined or incorrectly defined. " &
+ "If you proceed, tess() will be abandoned and the curve " &
+ "merely drawn."; safedraw _g;
+ elseif not cycle _g : NoCycleWarn "tess"; safedraw _g;
+ else:
+ save _ll, _ur; pair _ll, _ur;
+ gbbox (_g, _ll, _ur);
+ save _ts; picture _ts;
+ _ts := filledwith (atile.pic, (atile.wd, atile.ht), _ll, _ur);
+ DoClip (_ts);
+ orto (active_plane, Clipped (_ts) _g);
+ fi
+ c
+enddef;
+
+if unknown segment_split : segment_split := 8; fi
+if unknown dashsize : dashsize := 3bp; fi
+if unknown dashgap : dashgap := dashsize + 2penwd; fi
+if unknown dash_finish : dash_finish := .5; fi
+if unknown dash_start : dash_start := .5; fi
+if unknown unit_of_length : unit_of_length := 0.1in; fi
+
+vardef gendashed (suffix pat) expr f =
+ save _g; path _g; _g := zconv(f);
+ if (unknown pat.rep) : % no "pattern"
+ GBmsg "Dash pattern " & str pat & " undefined. " &
+ "Path will be drawn instead.";
+ safedraw _g;
+ elseif pat.rep < 2 : % no "spaces"
+ safedraw _g;
+ else:
+ save _dl, _tmppat;
+ forsuffixes _s = start, rep, finish :
+ _dl._s := 0; _tmppat._s := pat._s;
+ for i = 1 upto pat._s :
+ _tmppat._s[i] := pat._s[i]/unit_of_length;
+ _dl._s := _dl._s + _tmppat._s[i];
+ endfor
+ endfor
+ if _dl.rep = 0 :
+ GBmsg "Dash pattern " & str pat & " has length 0. " &
+ "Path will be drawn instead.";
+ safedraw _g;
+ else:
+ save _p; path _p;
+ _p := _g scaled (1/unit_of_length);
+ save _cumlen, _totlen, _n, _sf;
+ _totlen := makelengtharray(_cumlen) _p;
+ _sf := scale_adjust (_n, _dl)(_totlen);
+ if _n < 0 : safedraw _g;
+ else:
+ forsuffixes _s = start, rep, finish :
+ for _i = 1 upto _tmppat._s :
+ _tmppat._s[_i] := _tmppat._s[_i]*_sf;
+ endfor
+ _dl._s := _dl._s*_sf;
+ endfor
+ save dashingdot; picture dashingdot;
+ if known plot_pic : dashingdot := makesymbol(plot_pic, penwd);
+ else: dashingdot := makesymbol(dotpath, penwd);
+ fi
+ save _ct, _t, _d, _v;
+ picture _v; _v := nullpicture;
+ _ct := 0;
+ % Begin with pat.start
+ _d0 := 0; _t0 := 0;
+ dashit (_tmppat.start) (_v);
+ % then pat.rep
+ if _n > 0 :
+ save _m; _m := ceiling sqrt(_n);
+ for _j = 0 step _m until _n - 1 :
+ for _i = 0 upto _m - 1 :
+ exitif (_i + _j) > _n - 1;
+ _d0 := _dl.start + (_j + _i)*_dl.rep;
+ _t0 := gettime(_cumlen, _ct) (_d0);
+ dashit (_tmppat.rep) (_v);
+ endfor
+ % add _m patterns and reset.
+ DoClip(_v);
+ mono (_v)
+ coloraddto (drawcolor) (active_plane, _v);
+ _v := nullpicture;
+ endfor
+ fi
+ % and finally, pat.finish
+ _d0 := _totlen - _dl.finish;
+ _t0 := gettime(_cumlen, _ct) (_d0);
+ dashit (_tmppat.finish) (_v);
+ DoClip(_v);
+ mono(_v)
+ coloraddto (drawcolor) (active_plane, _v);
+ fi
+ fi
+ fi
+ f
+enddef;
+
+vardef makelengtharray (suffix clen) expr p =
+ save _s; _s := emax (1, ceiling segment_split);
+ clen := _s*length p; clen[0] := 0;
+ for _i = 1 upto clen :
+ clen[_i] := clen[_i-1] + abs (pnt[_i/_s] (p) - pnt[(_i-1)/_s] (p));
+ endfor
+ clen[clen]
+enddef;
+
+vardef scale_adjust (suffix n, pl) (expr lngth) =
+ n := (lngth - pl.start - pl.finish)/pl.rep;
+ n := if n < 0 : -1 else: round(n) fi;
+ lngth/(pl.start + emax(n, 0)*pl.rep + pl.finish)
+enddef;
+
+vardef gettime (suffix arr, ct) (expr lngth) =
+ save _gtl, _s;
+ _s := emax(1, ceiling segment_split);
+ _gtl := emax (arr[ct], emin (arr[arr], lngth));
+ forever:
+ exitif ( (arr[ct] <= _gtl) and (_gtl <= arr[ct+1]) );
+ ct := ct + 1; % need to exit *before* incrementing
+ endfor
+ if arr[ct] = arr[ct+1] : ct
+ else: ( ct + (_gtl - arr[ct]) / (arr[ct+1] - arr[ct]) )
+ fi /_s
+enddef;
+
+def dashit (suffix pos) (suffix pic) =
+ for _k = 1 upto pos:
+ if odd _k : % draw a dash of length pos[_k]
+ if pos[_k] = 0 : % point required
+ _d1 := _d0; _t1 := _t0;
+ picdot (pic, dashingdot, pnt [_t0] (_g));
+ else:
+ _d1 := _d0 + pos[_k];
+ _t1 := gettime (_cumlen, _ct) (_d1);
+ shpath (pic, drawpen) (subpath (_t0, _t1) of _g);
+ fi
+ else: % find the start of the next dash:
+ _d0 := _d1 + pos[_k];
+ _t0 := gettime(_cumlen, _ct) (_d0);
+ fi
+ endfor
+enddef;
+
+def dashpat (suffix pat) (text t) =
+ pat.rep := 0;
+ for _itm = t:
+ pat.rep[incr pat.rep] := _itm;
+ endfor;
+ if odd (pat.rep) and (pat.rep > 1):
+ pat.rep[incr pat.rep] := 0;
+ fi
+ pat.start := 1;
+ pat.start[1] := pat.rep[1]*dash_start;
+ for _idx = 2 upto pat.rep :
+ pat.start[incr pat.start] := pat.rep[_idx];
+ endfor
+ pat.finish := 1;
+ pat.finish[1] := pat.rep[1]*dash_finish;
+enddef;
+
+vardef DASHED (expr dlen, dgap) expr f =
+ save dashes; dashpat (dashes) (dlen, dgap);
+ gendashed (dashes) f
+enddef;
+
+def dashed = DASHED enddef;
+
+vardef doplot (expr spath, sc, dgap) expr f =
+ save dots; dashpat (dots) (0, dgap);
+ save plot_pic; picture plot_pic;
+ plot_pic := makesymbol (spath, sc);
+ gendashed (dots) f
+enddef;
+
+path dotpath; dotpath := fullcircle;
+vardef dotted (expr dsize, dgap) expr f =
+ doplot (dotpath, dsize, dgap) f
+enddef;
+
+vardef plotnodes (expr symbol, size) expr f =
+ save _pln; pair _pln[];
+ _pln := 0;
+ for _a = 0 upto (length f) if cycle f : - 1 fi :
+ _pln[incr _pln] := pnt[_a] (f);
+ endfor
+ dosymbols (drawcolor, symbol, size) (_pln);
+ f
+enddef;
+
+vardef makesymbol (expr spath, sc) =
+ if path spath : setdot (spath, sc)
+ elseif picture spath :
+ save v; picture v; v:= spath; mono (v); v
+ else:
+ GBmsg "Undefined symbol for plotting, using dotpath instead.";
+ setdot (dotpath, sc)
+ fi
+enddef;
+
+path Triangle, Square, Circle, Diamond, Star, Plus, Cross,
+ Asterisk, SolidTriangle, SolidSquare, SolidCircle,
+ SolidDiamond, SolidStar;
+
+Triangle := (for n = 0 upto 2:
+ (up rotated 120n)-- endfor up) scaled .78;
+SolidTriangle := Triangle & cycle;
+
+Square := (for n = 0 upto 3:
+ dir (90n + 45)-- endfor dir 45) scaled .63;
+SolidSquare := Square & cycle;
+
+Circle := halfcircle & halfcircle rotated 180;
+SolidCircle := Circle & cycle;
+
+Diamond := (Square rotated 45) xscaled (1/1.2) yscaled 1.2;
+SolidDiamond := Diamond & cycle;
+
+Plus := (origin for n = 0 upto 3:
+ --(up rotated 90n)--origin endfor) scaled .65;
+Cross := Plus rotated 45;
+Asterisk := (origin for n = 0 upto 5:
+ --(up rotated 60n)--origin endfor) scaled .6;
+
+pair zz;
+zz = (whatever)[up, up rotated 144];
+zz = (whatever)[up rotated 72, up rotated -72];
+Star := (for n = 0 upto 4:
+ (up rotated 72n)--(zz rotated 72n)-- endfor up) scaled .84;
+SolidStar := Star & cycle;
+save zz;
+
+numeric dashtype;
+forsuffixes s = start, rep, finish :
+ numeric dashtype[].s, dashtype[].s[];
+endfor
+def defaultdashes =
+ dashpat (dashtype0) (0); % solid
+ dashpat (dashtype1) (3bp, 4bp); % dashed
+ dashpat (dashtype2) (0, 4bp); % dotted
+ dashpat (dashtype3) (0, 4bp, 3bp, 4bp); % dot-dash
+ dashpat (dashtype4) (0, 4bp, 3bp, 4bp, 0, 4bp);% dot-dash-dot
+ dashpat (dashtype5) (0, 4bp, 3bp, 4bp, 3bp, 4bp);% dot-dash-dash
+ dashtype := 6;
+enddef;
+defaultdashes;
+
+vardef isdashpat suffix pat =
+ (knownarray pat.start) and
+ (knownarray pat.finish) and
+ (knownarray pat.rep)
+enddef;
+
+def setdatadashes (text lst) =
+ save dashtype; dashtype := 0;
+ forsuffixes _itm = lst :
+ if isdashpat _itm :
+ forsuffixes _s = start, rep, finish :
+ copyarray (_itm._s, dashtype[dashtype]._s);
+ endfor
+ dashtype := dashtype + 1;
+ else: GBmsg "Improper dash pattern in setdatadashes.";
+ fi
+ endfor
+ if dashtype = 0 :
+ SetdataWarn "dashes";
+ defaultdashes;
+ fi
+enddef;
+def getdashpat expr n = dashtype[n mod dashtype] enddef;
+
+def SetdataWarn expr s =
+ GBmsg "Command setdata"& s &"() failed; using defaults."
+enddef;
+
+def setdatasymbols (text lst) =
+ save pointtype; path pointtype[]; pointtype := 0;
+ for _itm = lst :
+ if (known _itm) and (path _itm):
+ pointtype[pointtype] := _itm;
+ pointtype := pointtype + 1;
+ else:
+ GBmsg "Improper path in setdatasymbols().";
+ fi
+ endfor
+ if pointtype = 0:
+ SetdataWarn "symbols";
+ defaultsymbols;
+ fi
+enddef;
+def getsymbol expr n := pointtype[n mod pointtype] enddef;
+
+numeric pointtype; path pointtype[];
+def defaultsymbols =
+ pointtype0 := Circle;
+ pointtype1 := Cross;
+ pointtype2 := SolidDiamond;
+ pointtype3 := Square;
+ pointtype4 := Plus;
+ pointtype5 := Triangle;
+ pointtype6 := SolidCircle;
+ pointtype7 := Star;
+ pointtype8 := SolidTriangle;
+ pointtype := 9;
+enddef;
+defaultsymbols;
+
+vardef bpoint (expr ptwd, b) =
+ fullcircle scaled ptwd shifted b
+enddef;
+def pointd (expr ptwd, filled) (text t) =
+ if filled :
+ plotsymbol (SolidCircle, ptwd) (t);
+ else :
+ begingroup;
+ save clearsymbols; boolean clearsymbols; clearsymbols := true;
+ plotsymbol (Circle, ptwd) (t);
+ endgroup
+ fi
+enddef;
+
+boolean clearsymbols; clearsymbols := false;
+vardef clearable (expr pth) =
+ false
+ if path pth :
+ if (not cycle pth) and (length pth > 0):
+ if ( pnt0 (pth) = pnt[length pth] (pth) ) :
+ or true
+ fi fi fi
+enddef;
+
+def plotsymbol = colorplotsymbol (pointcolor) enddef;
+vardef colorplotsymbol (expr clr, spath, sc) (text t) =
+ save _cpls;
+ textpairs (_cpls) (t);
+ dosymbols (clr, spath, sc) (_cpls);
+enddef;
+
+vardef dosymbols (expr clr, spath, sc) (suffix arr) =
+ save one_symbol, _pls; picture one_symbol, _pls;
+ if clearsymbols and clearable (spath):
+ addsymbols (background, spath&cycle, sc) (arr);
+ fi
+ addsymbols (clr, spath, sc) (arr);
+enddef;
+
+def addsymbols (expr clr, spath, sc) (suffix arr) =
+ one_symbol := makesymbol (spath, sc);
+ _pls := nullpicture;
+ for _idx = 1 upto arr:
+ picdot (_pls, one_symbol, zconv(arr[_idx]));
+ endfor
+ DoClip (_pls);
+ mono (_pls);
+ coloraddto (clr) (active_plane) (_pls);
+enddef;
+
+vardef lclosed expr f = f if not cycle f : --cycle fi enddef;
+
+numeric default_tension;
+default_tension := 1;
+
+def sclosed = sclosedt (default_tension) enddef;
+vardef sclosedt (expr t) expr f =
+ if cycle f : f
+ else: save n; n := length f;
+ if n = 0 : f&cycle
+ elseif n = 1 : f..tension t..cycle
+ else :
+ (pnt0 (f)) { (pnt1(f)) - (pnt[n] (f)) }..tension t
+ ..(subpath (1, n-1) of f)..tension t
+ ..(pnt[n](f)) { pnt0(f) - pnt[n-1](f) }
+ ..tension t..cycle
+ fi
+ fi
+enddef;
+
+def bclosed = bclosedt (default_tension) enddef;
+vardef bclosedt (expr t) expr f =
+ f if not cycle f : ..tension t..cycle fi
+enddef;
+
+def uclosed = bclosed enddef;
+
+def bsplinecontrols (suffix b) expr f =
+ b := 4;
+ b1 := 2[pre 1(f), post0(f)];
+ b2 := 2[post0(f), pnt 0(f)];
+ b3 := 2[b1, b2];
+ b4 := 2[b2, b3];
+enddef;
+
+vardef cbclosed expr f =
+ if cycle f : f
+ elseif (length f)=0 : f&cycle
+ else:
+ save p, q; pair p[], q[];
+ bsplinecontrols (p) f; % defines p1 to p4
+ bsplinecontrols (q) reverse f; % defines q1 to q4
+ f..controls q2 and q3..opencbs (q1,q4,p4,p1)
+ ..controls p3 and p2..cycle
+ fi
+enddef;
+
+vardef qbclosed expr f =
+ if cycle f : f
+ else: save n; n := length f;
+ if n = 0 : f&cycle
+ else:
+ save p; pair p[]; p := 4;
+ p1 := (3/2)[pnt[n](f), pre[n](f)];
+ p2 := 2[p1, pnt[n](f)];
+ p4 := (3/2)[pnt 0 (f), post0 (f)];
+ p3 := 2[p4, pnt 0 (f)];
+ f & mkqbs (p) & cycle
+ fi
+ fi
+enddef;
+
+vardef makesector expr p =
+ (pathcenter p)--p--cycle
+enddef;
+
+path cuttings;
+vardef cutoffbefore (expr b) expr f =
+ save w, t, u, n; n:= length f;
+ pair w;
+ for k = 1 upto n :
+ w := (subpath (0,k) of f) intersectiontimes b;
+ exitif w > left;
+ endfor
+ if debug :
+ GBdebug;
+ >> "Intersectiontimes:";
+ show w;
+ GBenddebug;
+ fi
+ t := xpart w;
+ if t < 0:
+ cuttings := pnt0 (f);
+ f
+ else:
+ cuttings := subpath (0,t) of f;
+ subpath (t, n) of f
+ fi
+enddef;
+
+vardef cutoffafter (expr b) expr f =
+ save g; path g;
+ g := cutoffbefore (b) reverse f;
+ cuttings := reverse cuttings;
+ reverse g
+enddef;
+
+vardef trimmedpath (expr btrim, etrim) expr f =
+ save g, h; path g, h;
+ g := invvconv (fullcircle scaled 2btrim) shifted pnt0(f);
+ h := invvconv (fullcircle scaled 2etrim) shifted pnt[length f] (f);
+ cutoffafter (h) cutoffbefore (g) f
+enddef;
+
+vardef predirection@# (expr p) =
+ - postdirection[length p - @#] (reverse p)
+enddef;
+
+vardef postdirection@# (expr p) =
+ save _n; _n := length (p);
+ save v; pair v; v := __dir (subpath (@#, @# + _n) of p);
+ if v = origin :
+ v := - __dir (subpath (@#, @# - _n) of p);
+ fi
+ v
+enddef;
+
+vardef __dir (expr p) =
+ save v, w; pair v, w; w := pnt0 (p);
+ v := origin;
+ for n = 1 upto length (p) :
+ v := post[n-1] (p) - w;
+ if v = origin :
+ v := pre[n] (p) - w;
+ if v = origin :
+ v := pnt[n] (p) - w;
+ fi
+ fi
+ exitif v <> origin;
+ endfor
+ v
+enddef;
+
+newinternal hdwdr, hdten;
+interim hdwdr := 1; interim hdten := 1;
+boolean hfilled; hfilled := false;
+
+def headshape (expr wr, tens, fil) =
+ interim hdwdr := wr; interim hdten := tens;
+ save hfilled; boolean hfilled; hfilled := fil;
+enddef;
+
+def head = ahead (headcolor) enddef;
+
+vardef ahead (expr clr, front, back, hwr, tens, filled) =
+ if front <> back :
+ save side; pair side;
+ side := (hwr/2) * ((front-back) rotated 90);
+ save f; path f;
+ f := (back + side)..tension tens..
+ {front-back}front{back-front}..tension tens..
+ (back - side)
+ if filled : --cycle; colorsafefill (clr) f fi;
+ colorsafedraw (clr) f;
+ fi
+enddef;
+
+def headpath = colorheadpath (headcolor) enddef;
+vardef colorheadpath (expr clr, hlen, hrot, hback) expr f =
+ if hlen <> 0 :
+ save g; path g; g := zconv (f);
+ save P; pair P[];
+ P2 := pnt[length g] (g);
+ P1 := predirection[length g] (g);
+ if P1 <> (0, 0) :
+ P3 := (unitvector P1) rotated hrot;
+ P4 := P2 - (hback * P3);
+ P5 := P4 - (hlen * P3);
+ ahead (clr, P4, P5, hdwdr, hdten, hfilled);
+ fi
+ fi
+ f
+enddef;
+
+def arrowdraw (expr hlen) (expr f) =
+ store (curpath) headpath (hlen, 0, 0) drawn f;
+enddef;
+
+def xaxis (expr hlen) = arrowdraw (hlen) ((xneg, 0)--(xpos, 0)); enddef;
+def yaxis (expr hlen) = arrowdraw (hlen) ((0, yneg)--(0, ypos)); enddef;
+def axes (expr hlen) = xaxis (hlen); yaxis (hlen); enddef;
+
+laxis := baxis := raxis := taxis := 0;
+
+vardef axisline.x = (xneg + laxis, 0)--(xpos - raxis, 0) enddef;
+vardef axisline.y = (0, yneg + baxis)--(0, ypos - taxis) enddef;
+vardef axisline.l = axisline.y shifted (xneg + laxis, 0) enddef;
+vardef axisline.b = axisline.x shifted (0, yneg + baxis) enddef;
+vardef axisline.r = axisline.y shifted (xpos - raxis, 0) enddef;
+vardef axisline.t = axisline.x shifted (0, ypos - taxis) enddef;
+vardef axis@# (expr len) =
+ headpath (len, 0, 0) axisline@#
+enddef;
+
+numeric inside, outside, centered, onleft, onright, ontop, onbottom;
+inside := -2;
+outside := -1;
+onright := 1;
+onleft := 2;
+centered := .5[onright, onleft];
+onbottom := onright;
+ontop := onleft;
+ltick := rtick := ttick := btick := inside;
+xtick := ytick := centered;
+
+vardef axismarks (expr inang, tp, loc, pdir) (expr len) (text t) =
+ save _tp, _U, _P, _tic, _ticang;
+ pair _U, _P, _tic[];
+ _ticang := if tp<0 : inang else: 90 fi;
+ _tp := abs(tp) - 1;
+ _U := unitvector (vconv (pdir)) rotated _ticang;
+ _tic1 := (_tp - 1) * len * _U; % start of mark
+ _tic2 := _tp * len * _U; % end of mark
+ for _a = t:
+ safedraw ((_tic1--_tic2) shifted zconv (loc + _a*pdir));
+ endfor
+enddef;
+
+def xmarks = axismarks ( 90, xtick, (0, 0), right) enddef;
+def ymarks = axismarks (-90, ytick, (0, 0), up) enddef;
+def lmarks = axismarks (-90, ltick, (xneg + laxis, 0), up) enddef;
+def bmarks = axismarks ( 90, btick, (0, yneg + baxis), right) enddef;
+def rmarks = axismarks ( 90, rtick, (xpos - raxis, 0), up) enddef;
+def tmarks = axismarks (-90, ttick, (0, ypos - taxis), right) enddef;
+
+path griddotpath; griddotpath := fullcircle;
+def grid = vgrid (0.5bp) enddef;
+vardef vgrid (expr dsize, xspace, yspace) =
+ save gdot, gridpic; picture gdot, gridpic;
+ gdot := setdot (griddotpath, dsize);
+ gridpic := nullpicture;
+ for n = ceiling(xneg/xspace) upto floor(xpos/xspace):
+ for m = ceiling(yneg/yspace) upto floor(ypos/yspace):
+ picdot (gridpic, gdot, zconv((n*xspace, m*yspace)));
+ endfor
+ endfor
+ mono (gridpic);
+ coloraddto (pointcolor) (active_plane) (gridpic);
+enddef;
+
+def hgridlines (expr ysp) =
+ for n = ceiling((yneg + baxis)/ysp) upto floor((ypos - taxis)/ysp) :
+ safedraw zconv((xneg + laxis, n*ysp)--(xpos - raxis, n*ysp));
+ endfor
+enddef;
+def vgridlines (expr xsp) =
+ for n = ceiling((xneg + laxis)/xsp) upto floor((xpos - raxis)/xsp) :
+ safedraw zconv((n*xsp, yneg + baxis)--(n*xsp, ypos - taxis));
+ endfor
+enddef;
+def gridlines (expr xsp, ysp) =
+ vgridlines (xsp); hgridlines (ysp);
+enddef;
+
+vardef plrpatch (expr rstart, rstop, rstep, tstart, tstop, tstep) =
+ save v; picture v; v := nullpicture;
+ patcharcs (v) (rstart, rstop, rstep, tstart, tstop);
+ coloraddto (drawcolor) (active_plane, v);
+ v := nullpicture;
+ patchrays (v) (tstart, tstop, tstep, rstart, rstop);
+ coloraddto (drawcolor) (active_plane, v);
+enddef;
+def patcharcs (suffix X) (expr rstart, rstop, rstep, tstart, tstop) =
+ for rad = (if rstart=0: rstep else: rstart fi) step rstep until rstop:
+ orto (X, picpath zconv (arcplr ((0, 0), tstart, tstop, rad)) );
+ endfor
+enddef;
+def patchrays (suffix X) (expr tstart, tstop, tstep, rstart, rstop) =
+ for _ang = tstart step tstep until tstop:
+ orto (X) (picpath zconv ((rstart*dir _ang)--(rstop*dir _ang)));
+ endfor
+enddef;
+
+def polargrid (expr rstep, tstep) =
+ gridarcs (rstep); gridrays (tstep);
+enddef;
+
+def polargridpoints (expr dsize, rstep, tstep) =
+ beginpolargrid;
+ save gdot; picture gdot; gdot := setdot (griddotpath, dsize);
+ if rmin = 0:
+ picdot (gridpic, gdot, zconv(origin));
+ rmin := rstep;
+ fi
+ for n = ceiling (rmin/rstep) upto floor (rmax/rstep) :
+ for m = ceiling (tmin/tstep) upto floor (tmax/tstep) :
+ picdot ( gridpic, gdot, zconv ( polar((n*rstep, m*tstep)) ) );
+ endfor
+ endfor
+ endpolargrid (pointcolor, .5dsize);
+enddef;
+
+def gridarcs (expr rstep) =
+ beginpolargrid;
+ if rmin = 0 : % add "circle" of radius 0
+ picdot (gridpic, setdot(griddotpath, penwd), zconv(origin));
+ fi
+ rmin := rstep * floor(rmin/rstep + 1);
+ rmax := rstep*ceiling(rmax/rstep - 1);
+ patcharcs (gridpic) (rmin, rmax, rstep, tmin, tmax);
+ endpolargrid (drawcolor, .5penwd);
+enddef;
+
+def gridrays (expr tstep) =
+ beginpolargrid;
+ tmin := tstep*ceiling(tmin/tstep);
+ tmax := tstep * floor(tmax/tstep);
+ patchrays (gridpic) (tmin, tmax, tstep, rmin, rmax);
+ endpolargrid (drawcolor, .5penwd);
+enddef;
+
+def beginpolargrid =
+ begingroup;
+ save p, r, t, rmax, rmin, tmax, tmin;
+ pair p[];
+ % Four corners:
+ p0 := (xneg, yneg); p1 := (xneg, ypos);
+ p2 := (xpos, ypos); p3 := (xpos, yneg);
+ r0 := abs(p0); rmax := r0;
+ for j = 1 upto 3 :
+ r[j] := abs(p[j]);
+ if rmax < r[j] : rmax := r[j]; fi
+ endfor
+ rmin := 0;
+ if (xneg < 0) and (xpos > 0) and (yneg < 0) and (ypos > 0) :
+ tmin := 0; tmax := 360;
+ elseif (p0 = (0,0)) : tmin := 0; tmax := 90;
+ elseif (p1 = (0,0)) : tmin := -90; tmax := 0;
+ elseif (p2 = (0,0)) : tmin := -180; tmax := -90;
+ elseif (p3 = (0,0)) : tmin := 90; tmax := 180;
+ else :
+ tmax := tmin := t0 := angle p0;
+ for j = 1 upto 3:
+ t := t0 + angle (p[j] rotated -t0);
+ if tmax < t : tmax := t; fi
+ if tmin > t : tmin := t; fi
+ endfor
+ if (xneg < 0) and (xpos > 0) : % (1)
+ rmin := emin(abs(yneg), abs(ypos));
+ elseif (yneg < 0) and (ypos > 0) : % (2)
+ rmin := emin(abs(xneg), abs(xpos));
+ else : % (3)
+ rmin := min(r0, r1, r2, r3);
+ fi
+ fi
+ save gridpic; picture gridpic; gridpic := nullpicture;
+enddef;
+
+
+def endpolargrid (expr clr, size)=
+ clipto (gridpic) rect ( zconv((xneg, yneg)) - size*(1,1),
+ zconv((xpos, ypos)) + size*(1,1) );
+ coloraddto (clr) (active_plane) (gridpic);
+ endgroup
+enddef;
+
+vardef polarpatch (expr rstart, rstop, rstep, tstart, tstop, tstep) =
+ plrpatch (rstart, rstop, rstep, tstart, tstop, tstep);
+ safedraw zconv ( arcplr ((0, 0), tstart, tstop, rstop) );
+ safedraw zconv ( ((rstart, 0)--(rstop, 0)) rotated tstop );
+enddef;
+
+vardef rect (expr ll, ur) =
+ ll--(xpart ur, ypart ll)--ur--(xpart ll, ypart ur)--cycle
+enddef;
+vardef triangle (expr A, B, C) = A--B--C--cycle enddef;
+
+vardef regularpolygon (expr n) (suffix Bob) (text eqns) =
+ pair Bob[]; Bob := emax(round (abs (n)), 2);
+ eqns;
+ for _uncle = 1 upto Bob - 1 :
+ (Bob1 - Bob0) rotated (360*_uncle/Bob) = Bob[_uncle+1] - Bob0;
+ endfor
+ mkpoly (true) (Bob)
+enddef;
+
+vardef altitudept expr n of t =
+ save A, B, C, zz; pair A, B, C, zz;
+ A := pnt[n] (t);
+ B := pnt[n + 1] (t); % wraps around a cyclic path
+ C := pnt[n + 2] (t);
+ zz = whatever[B,C];
+ zz = A + whatever*((C-B) rotated 90);
+ zz
+enddef;
+
+vardef altitude expr n of t =
+ (pnt[n](t))--(altitudept n of t)
+enddef;
+
+vardef medianpt expr n of t =
+ 0.5[pnt[n + 1] (t), pnt[n + 2] (t)]
+enddef;
+
+vardef median expr n of t =
+ (pnt[n](t))--(medianpt n of t)
+enddef;
+
+vardef anglebisectorpt expr n of t =
+ save A, B, C; pair A, B, C;
+ A := pnt[n ] (t);
+ B := pnt[n + 1] (t);
+ C := pnt[n + 2] (t);
+ save zz; pair zz;
+ zz = whatever[B,C];
+ zz = A + whatever*((B-A) rotated (.5*cornerangle (A,B,C)));
+ zz
+enddef;
+
+vardef anglebisector expr n of t =
+ (pnt[n](t))--(anglebisectorpt n of t)
+enddef;
+
+vardef cornerangle (expr A, B, C) =
+ if (A = B) and (B = C) : 60
+ elseif (B = C) : 0
+ elseif (A = B) or (A = C) : 90
+ else: angle ((C - A) rotated (-angle (B - A)))
+ fi
+enddef;
+
+vardef mkpath (expr smooth, tens, cyclic) (suffix pts) =
+ if smooth : mksmooth (tens, cyclic, pts)
+ else : mkpoly (cyclic, pts)
+ fi
+enddef;
+
+vardef mkpoly (expr cyclic) (suffix pts) =
+ for _i = 1 upto pts-1: pts[_i]-- endfor
+ pts[pts] if cyclic : -- cycle fi
+enddef;
+
+vardef polyline (expr cyclic) (text t) =
+ save _pl; textpairs (_pl) (t); mkpoly (cyclic, _pl)
+enddef;
+
+vardef mksmooth (expr tens, cyclic) (suffix pts) =
+ pts1
+ if pts = 1 :
+ if cyclic : &cycle fi
+ else:
+ if cyclic :
+ {pts[2]-pts[pts]}
+ fi
+ for _i = 2 upto pts-1:
+ ..tension tens..pts[_i]{pts[_i+1]-pts[_i-1]}
+ endfor
+ ..tension tens..pts[pts]
+ if cyclic :
+ {pts[1]-pts[pts-1]}..tension tens..cycle
+ fi
+ fi
+enddef;
+
+def curve = tcurve (default_tension) enddef;
+vardef tcurve (expr tens, cyclic) (text t) =
+ save _tc; textpairs (_tc) (t); mksmooth (tens, cyclic, _tc)
+enddef;
+
+vardef mkbezier (expr tens, cyclic) (suffix pts) =
+ for _i = 1 upto pts-1 : pts[_i]..tension tens.. endfor
+ pts[pts] if cyclic : ..tension tens..cycle fi
+enddef;
+
+def bezier = tbezier (default_tension) enddef;
+vardef tbezier (expr tens, cyclic) (text t) =
+ save _tsb; textpairs (_tsb) (t); mkbezier (tens, cyclic) (_tsb)
+enddef;
+
+vardef mkqbezier (expr cyclic) (suffix pts) =
+ save _mqb; _mqb := pts;
+ if (cyclic and odd pts) or not (cyclic or odd pts):
+ pts[incr _mqb] := pts[pts];
+ fi
+ if cyclic : pts[incr _mqb] := pts1; fi
+ pts1
+ for _i = 2 step 2 until _mqb - 1 :
+ ..controls 1/3[pts[_i],pts[_i-1]] and 1/3[pts[_i], pts[_i+1]]
+ ..pts[_i+1]
+ endfor
+ if cyclic : &cycle fi
+enddef;
+
+vardef qbezier (expr cyclic) (text t) =
+ save _qbz; textpairs (_qbz) (t); mkqbezier (cyclic) (_qbz)
+enddef;
+
+vardef openqbs (text t) =
+ save _oq; textpairs (_oq) (t); mkqbs (_oq)
+enddef;
+
+vardef closedqbs (text t) =
+ save _cq; textpairs (_cq) (t);
+ _cq[incr _cq] := _cq1; _cq[incr _cq] := _cq2;
+ mkqbs (_cq) & cycle
+enddef;
+
+vardef mkqbs (suffix b) =
+ for _i = 1 upto b-2:
+ 0.5[b[_i], b[_i+1]]
+ ..controls 1/6[b[_i+1], b[_i]] and 1/6[b[_i+1], b[_i+2]]..
+ endfor
+ 0.5[b[b-1], b[b]]
+enddef;
+
+vardef mkopencbs (suffix b) =
+ for _i = 1 upto b-3:
+ (b[_i]+4b[_i+1]+b[_i+2])/6
+ ..controls 1/3[b[_i+1], b[_i+2]] and 2/3[b[_i+1], b[_i+2]]..
+ endfor
+ (b[b-2]+4b[b-1]+b[b])/6
+enddef;
+vardef mkclosedcbs (suffix b) =
+ mkopencbs (b) & opencbs (b[b-2],b[b-1],b[b], b1, b2, b3) & cycle
+enddef;
+
+vardef opencbs (text t) =
+ save _oc; textpairs (_oc) (t); mkopencbs (_oc)
+enddef;
+vardef closedcbs (text t) =
+ save _clc; textpairs (_clc) (t); mkclosedcbs (_clc)
+enddef;
+
+vardef fcncontrol (expr ftens, X, Y, Z) =
+ save dl, dr, before, after; pair before, after;
+ before := Y - X; after := Z - Y;
+ dl := xpart (before); dr := xpart (after);
+ if (dr = 0) or (dl = 0):
+ Y + abs(dr)/ftens * sgn before
+ else:
+ Y + abs(dr)/ftens * unitvector (before*dr/dl + after*dl/dr)
+ fi
+enddef;
+
+vardef mkfcnpath (expr ftens) (suffix q) =
+ for _i = 1 upto q - 1:
+ q[_i]..controls fcncontrol (ftens) (q[_i-1], q[_i], q[_i+1])
+ and fcncontrol (ftens) (q[_i+2], q[_i+1], q[_i])..
+ endfor
+ q[q]
+enddef;
+
+def fcncurve = functioncurve (emax(1.2default_tension, eps)) enddef;
+vardef functioncurve (expr ftens) (text t) =
+ save _fc; textpairs (_fc) (t);
+ if _fc > 1 : _fc0 := _fc1; _fc[_fc+1] := _fc[_fc]; fi
+ mkfcnpath (ftens)(_fc)
+enddef;
+
+vardef turtle (text t) =
+ save _tu; pair _tu[]; _tu := 0; _tu0 := (0, 0);
+ for _a = t: _tu[incr _tu] := _tu[_tu - 1] + _a; endfor
+ mkpoly (false, _tu)
+enddef;
+
+vardef mkarc (expr center, from, to, sweep) =
+ save n, d; pair d;
+ n := ceiling (abs(sweep)/45);
+ d := (from - center) rotated (signof (sweep) 90);
+ from{d}
+ for j = 1 upto n-1 :
+ ..(from rotatedabout (center, j/n*sweep)){d rotated (j/n*sweep)}
+ endfor ..to{d rotated sweep}
+enddef;
+
+vardef arc (expr center, from, sweep) =
+ if (center = from) or (sweep = 0) :
+ from--from
+ else:
+ save to; pair to;
+ to := from rotatedabout (center, sweep);
+ mkarc (center, from, to, sweep)
+ fi
+enddef;
+def arccps = arc enddef;
+
+vardef arccenter (expr from, to, sweep) =
+ save ang, c;
+ pair c;
+ ang := 90 - (sweep mod 360)/2; % -90 < ang <= 90
+ if (abs(ang) = 90) or (from = to) :
+ GBmsg "The central point of this arc is undefined. " &
+ "Using midpoint of chord instead.";
+ 0.5[from, to]
+ else:
+ save cd; pair cd; cd := to - from;
+ c = from + whatever*(cd rotated ang);
+ if abs(ang) < 30 :
+ c = (0.5)[from, to] + whatever*(cd rotated 90);
+ else:
+ c = to + whatever*(-cd rotated -ang);
+ fi
+ c
+ fi
+enddef;
+
+vardef midarc (expr from, to, sweep) =
+ save m, cd; pair m, cd;
+ cd := to - from;
+ m = from + whatever*( cd rotated (-sweep/4));
+ m = 0.5[from, to] + whatever*(cd rotated 90);
+ m
+enddef;
+
+vardef arcpps (expr from, to, sweep) =
+ if ((sweep mod 360) = 0) or (from = to) :
+ GBmsg "Undefined arc. A line segment will be used instead.";
+ from--to
+ elseif abs(sweep) <= 90 :
+ save cd; pair cd; cd := to - from;
+ if abs(sweep) <= 45 :
+ from{cd rotated (-sweep/2)}..to{cd rotated (sweep/2)}
+ else:
+ from{cd rotated (-sweep/2)}..midarc(from, to, sweep){cd}
+ ..to{cd rotated (sweep/2)}
+ fi
+ else:
+ save center; pair center;
+ center := arccenter (from, to, sweep);
+ mkarc (center, from, to, sweep)
+ fi
+enddef;
+
+vardef arcplr (expr center, frtheta, totheta, rad) =
+ if rad = 0 :
+ center -- center
+ else:
+ save from, to; pair from, to;
+ from := center + rad*dir frtheta;
+ to := center + rad*dir totheta;
+ if frtheta = totheta :
+ from--to
+ else:
+ mkarc (center, from, to, totheta - frtheta)
+ fi
+ fi
+enddef;
+vardef arcalt (expr center, radius, anglefrom, angleto) =
+ arcplr (center, anglefrom, angleto, radius)
+enddef;
+
+vardef arcppp (expr first, second, third) =
+ arcpps (first, second, 2*cornerangle (third, first, second)) &
+ arcpps (second, third, 2*cornerangle (first, second, third))
+enddef;
+
+vardef ellipse (expr center, radx, rady, angle) =
+ fullcircle xscaled (2*radx) yscaled (2*rady) rotated angle
+ shifted center
+enddef;
+vardef circle (expr center, rad) =
+ fullcircle scaled (2*rad) shifted center
+enddef;
+
+vardef circlecp (expr center, point) =
+ mkarc (center, point, point, 360) & cycle
+enddef;
+vardef circleppp (expr one, two, three) =
+ save ang; numeric ang[];
+ ang0 := cornerangle(three, one, two);
+ ang1 := cornerangle(one, two, three);
+ ang2 := cornerangle(two, three, one);
+ arcpps (one, two, 2ang0) & arcpps (two, three, 2ang1) &
+ arcpps (three, one, 2ang2) & cycle
+enddef;
+vardef circlepps (expr one, two, sweep) =
+ save ang, full; numeric ang[], full;
+ full := signof (sweep) 360;
+ ang1 := sweep mod (full);
+ ang2 := full - ang1;
+ arcpps (one, two, ang1) & arcpps (two, one, ang2) & cycle
+enddef;
+
+vardef pathcenter expr p =
+ save a, cntr, n; pair cntr, a[];
+ n := length p;
+ a1 = pnt 0 (p);
+ a3 = pnt [n/2] (p);
+ if cycle p :
+ a2 = pnt [n/4] (p);
+ a4 = pnt [3n/4] (p);
+ else:
+ a2 := a3;
+ a4 := pnt[n] (p);
+ fi
+ cntr = .5[a1, a3] + whatever*((a3 - a1) rotated 90);
+ cntr = .5[a2, a4] + whatever*((a4 - a2) rotated 90);
+ cntr
+enddef;
+
+vardef circumcircle expr t =
+ circleppp (pnt0 (t), pnt1 (t), pnt2 (t))
+enddef;
+
+vardef incircle expr t =
+ save A, B, C; pair A, B, C;
+ A := pnt0 (t);
+ B := pnt1 (t);
+ C := pnt2 (t);
+ % Find the tangent points on the sides. E.g., a is the common
+ % distance from A to the tangent points on the adjacent sides.
+ save a, b, c;
+ a + b = abs (B-A);
+ b + c = abs (C-B);
+ a + c = abs (A-C);
+ circleppp (A + a*unitvector (B-A),
+ B + b*unitvector (C-B),
+ C + c*unitvector (A-C))
+enddef;
+
+vardef excircle expr n of t =
+ save A, B, C; pair A, B, C;
+ A := pnt[n] (t);
+ B := pnt[n + 1] (t); % wraps around
+ C := pnt[n + 2] (t);
+ save a, b, c;
+ a - b = abs (B-A);
+ b + c = abs (C-B);
+ a - c = abs (C-A);
+ circleppp (A + a*unitvector(B-A),
+ B + b*unitvector(C-B),
+ C + c*unitvector(C-A))
+enddef;
+
+vardef ninepointcircle expr t =
+ circleppp (medianpt 0 of t, medianpt 1 of t, medianpt 2 of t)
+enddef;
+
+vardef circumcenter expr t = pathcenter circumcircle t enddef;
+vardef incenter expr t = pathcenter incircle t enddef;
+vardef excenter expr n of t = pathcenter excircle n of t enddef;
+vardef ninepointcenter expr t = pathcenter ninepointcircle t enddef;
+
+vardef barycenter expr t =
+ save n, m; n := length t; m := n + 1;
+ save xxx;
+ xxx : = pnt0 (t)/m for k = 1 upto n-1 : + pnt[k] (t)/m endfor;
+ if cycle t: xxx*(1 + 1/n)
+ else: xxx + pnt[n] (t)/m
+ fi
+enddef;
+vardef sector (expr center, rad, frtheta, totheta) =
+ center -- arcalt (center, rad, frtheta, totheta) -- cycle
+enddef;
+
+vardef mkfcn (expr smooth, tens) (expr bmin, bmax, bst) (text pf) =
+ save _p; pair _p[]; _p := 0;
+ save _dx, _n, _r; numeric _dx, _n, _r;
+ if bmax = bmin : _n := 1;
+ else:
+ _r := bmax - bmin;
+ _dx := max (abs(bst), nottoosmall*abs(_r), epsilon);
+ _n := emax (round(abs(_r)/_dx), 1);
+ fi
+ for _i = 0 upto _n: _p[incr _p] := pf(bmin + _i/_n*_r); endfor
+ mkpath (smooth, tens, false, _p)
+enddef;
+def tfcn (expr smooth) = mkfcn (smooth, default_tension) enddef;
+
+def parafcn (expr smooth) = tparafcn (smooth, default_tension) enddef;
+vardef tparafcn (expr sm, tn) (expr bmin, bmax, bst) (text pf) =
+ save _fp; vardef _fp (expr t) = pf enddef;
+ mkfcn (sm, tn) (bmin, bmax, bst) (_fp)
+enddef;
+
+vardef xfcn (expr smooth) (expr xmin, xmax, st) (text _fx) =
+ save _fp; vardef _fp (expr _x) = (_x, _fx(_x)) enddef;
+ mkfcn (smooth, default_tension) (xmin, xmax, st) (_fp)
+enddef;
+
+def function (expr smooth) = tfunction (smooth, default_tension) enddef;
+vardef tfunction (expr smooth, tens) (expr xmin, xmax, st) (text _fx) =
+ save _fp; vardef _fp (expr x) = (x, _fx) enddef;
+ mkfcn (smooth, tens) (xmin, xmax, st) (_fp)
+enddef;
+
+def btwnfcn (expr sm) = tbtwnfcn (sm, default_tension) enddef;
+vardef tbtwnfcn (expr sm, tn)(expr xlo, xhi, st)(text _fx)(text _gx) =
+ tfunction (sm, tn) (xlo, xhi, st) (_fx) --
+ ( reverse tfunction (sm, tn) (xlo, xhi, st) (_gx) ) -- cycle
+enddef;
+
+vardef rfcn (expr smooth) (expr tmin, tmax, st) (text ft) =
+ save _fq; vardef _fq (expr t) = (ft(t)) * (dir t) enddef;
+ mkfcn (smooth, default_tension) (tmin, tmax, st) (_fq)
+enddef;
+
+def plrfcn (expr smooth) = tplrfcn (smooth, default_tension) enddef;
+vardef tplrfcn (expr smooth, tens) (expr tmin, tmax, st) (text ft) =
+ save _fq; vardef _fq (expr t) = (ft) * (dir t) enddef;
+ mkfcn (smooth, tens) (tmin, tmax, st) (_fq)
+enddef;
+
+vardef piechart (expr sign, ang, cent, rad) (text data) =
+ save _sum, _tot;
+ numeric piewedge; piewedge := 0;
+ numeric pieangle, pieangle[]; pieangle0 := 0;
+ for _val = data :
+ pieangle[incr piewedge] := pieangle[piewedge - 1] + _val;
+ endfor
+ _tot := pieangle[piewedge];
+ pair piecenter; piecenter := cent;
+ path piewedge[];
+ numeric piedirection; pair piedirection[];
+ pieangle[piewedge + 1] = ang + sign*360;
+ for _n = piewedge downto 1 :
+ pieangle[_n] := ang + sign*pieangle[_n - 1]/_tot*360;
+ piewedge[_n] =
+ sector(cent, rad, pieangle[_n], pieangle[_n+1]);
+ piedirection[_n] := dir(0.5[ pieangle[_n], pieangle[_n+1] ]);
+ endfor
+ piedirection := pieangle := piewedge;
+enddef;
+
+def barchart (expr start, sep, r, vert)(text data) =
+ numeric barbegin, barbegin[],
+ barend, barend[],
+ barlength, barlength[],
+ barstart, barstart[],
+ chartbar, barwd;
+ path chartbar[];
+ chartbar := 0; barwd := r*sep;
+ for _itm = data :
+ barend[incr chartbar] := if pair _itm: ypart _itm else: _itm fi;
+ barbegin[chartbar] := if pair _itm: xpart _itm else: 0 fi;
+ endfor
+ barbegin := barend := barlength := barstart := chartbar;
+ for _n = 1 upto chartbar :
+ barstart[_n] := start + sep*(_n-1);
+ barlength[_n] := barend[_n];
+ chartbar[_n] := rect ((barbegin[_n], 0), ( barend[_n], barwd) )
+ shifted (0, barstart[_n]) if vert: xyswap fi;
+ endfor
+enddef;
+
+picture totalpicture;
+boolean totalnull, currentnull;
+def clearit =
+ currentpicture := totalpicture := nullpicture;
+ currentnull := totalnull := true;
+enddef;
+
+def keepit =
+ mono (currentpicture);
+ addto totalpicture also currentpicture;
+ currentpicture := nullpicture;
+ totalnull := currentnull;
+ currentnull := true;
+enddef;
+
+def addto_currentpicture =
+ currentnull := false;
+ addto currentpicture
+enddef;
+
+def mergeit (text do) =
+ if totalnull :
+ do currentpicture
+ elseif currentnull :
+ do totalpicture
+ else:
+ begingroup
+ save _v_; picture _v_;
+ _v_ := currentpicture;
+ mono (_v_);
+ addto _v_ also totalpicture;
+ do _v_
+ endgroup
+ fi
+enddef;
+
+def shipit_ =
+ mergeit (shipout)
+enddef;
+def shipit = shipit_ enddef;
+
+def showit_ =
+ mergeit (show_)
+enddef;
+def show_ suffix v =
+ display v inwindow currentwindow
+enddef;
+
+numeric gcode; gcode := 0;
+
+% end grafbase.mf
+endinput.
+%%
+%% End of file `grafbase.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/misc/black.mf b/Master/texmf-dist/fonts/source/public/misc/black.mf
new file mode 100644
index 00000000000..1837b50c66e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/black.mf
@@ -0,0 +1,4 @@
+if mode=ljfour: input blacklj;
+elseif mode=cx: input blackcx;
+elseif mode=aps: input blackaps;
+fi
diff --git a/Master/texmf-dist/fonts/source/public/misc/blackaps.mf b/Master/texmf-dist/fonts/source/public/misc/blackaps.mf
new file mode 100644
index 00000000000..b3ea7720326
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/blackaps.mf
@@ -0,0 +1,10 @@
+% Black font for APS with proofsheet resolution approx 90 pixels per inch
+% (Used with output of GF2DVI for the METAFONTbook illustrations)
+
+if mode<>aps: errmessage "This file is for aps only"; fi
+
+font_identifier "BLACKAPS";
+picture pix_picture; pix_wd := pix_ht := 8;
+pix_picture := unitpixel scaled 8;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/blackcx.mf b/Master/texmf-dist/fonts/source/public/misc/blackcx.mf
new file mode 100644
index 00000000000..c920d897e5f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/blackcx.mf
@@ -0,0 +1,9 @@
+% Black font for CX with proofsheet resolution 75 pixels per inch.
+
+if mode<>cx: errmessage "This file is for cx only"; fi
+
+font_identifier "BLACKCX";
+picture pix_picture; pix_wd := pix_ht := 4;
+pix_picture := unitpixel scaled 4;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/blackimagen.mf b/Master/texmf-dist/fonts/source/public/misc/blackimagen.mf
new file mode 100644
index 00000000000..6171bdbbaa3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/blackimagen.mf
@@ -0,0 +1,9 @@
+% Black font for Imagen with proofsheet resolution 75 pixels per inch
+
+if mode<>imagen: errmessage "This file is for imagen only"; fi
+
+font_identifier "BLACKIMAGEN";
+picture pix_picture; pix_wd := pix_ht := 4;
+pix_picture := unitpixel scaled 4;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/blacklino.mf b/Master/texmf-dist/fonts/source/public/misc/blacklino.mf
new file mode 100644
index 00000000000..6bc06c41119
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/blacklino.mf
@@ -0,0 +1,10 @@
+% Black font for LINO with proofsheet resolution approx 90 pixels per inch
+% (Used with output of GF2DVI for the METAFONTbook illustrations)
+
+if mode<>linohi: errmessage "This file is for linotronic only"; fi
+
+font_identifier "BLACKLINO";
+picture pix_picture; pix_wd := pix_ht := 14;
+pix_picture := unitpixel scaled 14;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/blacklj.mf b/Master/texmf-dist/fonts/source/public/misc/blacklj.mf
new file mode 100644
index 00000000000..640f36ea508
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/blacklj.mf
@@ -0,0 +1,9 @@
+% Black font for LJ with proofsheet resolution 150 pixels per inch.
+
+if mode<>ljfour: errmessage "This file is for ljfour only"; fi
+
+font_identifier "BLACKLJ";
+picture pix_picture; pix_wd := pix_ht := 4;
+pix_picture := unitpixel scaled 4;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/cmman.mf b/Master/texmf-dist/fonts/source/public/misc/cmman.mf
new file mode 100644
index 00000000000..3e0ccced4ff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/cmman.mf
@@ -0,0 +1,511 @@
+% Variants of Computer Modern, specially for the TeX/METAFONT manuals
+
+if unknown cmbase: input cmbase fi
+mode_setup;
+
+def generate suffix t= enddef;
+
+inner cmchar;
+
+font_size 10pt#;
+font_identifier "CMMAN";
+font_coding_scheme "PI";
+
+input cmtt10; font_setup;
+
+cmchar "Cross between 0 and O";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+superness:=.77;
+x2r=round max(.7u,1.45u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+input cmssq8; slant:=sind 12/cosd 12; font_setup;
+
+cmchar "Lowercase Greek beta";
+beginchar(oct"014",9.5u#,asc_height#,desc_depth#);
+italcorr .5[x_height#,asc_height#]*slant-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(hair,180); pos2(vair,90);
+pos3(stem,0); pos4(vair,-90); pos5(hair,-180);
+pos6(vair,-270); pos7(curve,-360); pos8(vair,-450); pos9(hair,-540);
+x0=x1=x9; lft x0l=hround(1.5u-.5hair); x2=x4=x6=x8=.5w+.25u;
+rt x3r=hround(w-1.5u); rt x7r=hround(w-1.5u+.5curve); rt x5l=hround(x4-u);
+bot y0=-d; y1=top y6r=x_height; top y2r=h+oo; y3=.5[y2,y4];
+y5=.5[y4,y6]; top y6r-bot y4r=vstem+eps; bot y8=-oo; y7=y9=.5[y6,y8];
+if y6l<y4l: y6l:=y4l:=y5; fi
+filldraw stroke z0e---z1e...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{up}z5e; % stem and upper bowl
+filldraw stroke z5e{up}...pulled_arc.e(6,7)
+ & pulled_arc.e(7,8)...{up}z9e; % lower bowl
+math_fit(desc_depth#*slant+.5hair#-u#,.7x_height#*slant+.5curve#-1.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lowercase thorn";
+beginchar(oct"015",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6=x3; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,0); fi % lower serif
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+input cmr10; font_setup;
+
+message "Parentheses";
+code:=ASCII "0"; % the characters will be 123456789:
+for c=0,1,2,4,infinity:
+cmchar "Left paren with curl "&decimal c;
+beginchar(incr code,7u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=round(w-u); lft x2l=round(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{curl c}..z2e..{curl c}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right paren with curl "&decimal c;
+beginchar(incr code,7u#,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=round u; rt x2r=round(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{curl c}..z2e..{curl c}z3e; % arc
+penlabels(1,2,3); endchar;
+endfor
+
+message "big G";
+u#:=50/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=12pt#+250/36pt#; % height of tallest characters
+asc_height#:=body_height#; % height of lowercase ascenders
+cap_height#:=body_height#; % height of caps
+fig_height#:=body_height#; % height of numerals
+x_height#:=155/250asc_height#; % height of lowercase without ascenders
+math_axis#:=90/250asc_height#; % axis of symmetry for math symbols
+bar_height#:=87/250asc_height#; % height of crossbar in lowercase e
+comma_depth#:=70/250asc_height#;% depth of comma below baseline
+desc_depth#:=comma_depth#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=1.2/36pt#; % diameter of rounded corners
+fine#:=1.1/36pt#; % diameter of sharply rounded corners
+thin_join#:=1.1/36pt#; % width of extrafine details
+hair#:=14/36pt#; % lowercase hairline breadth
+stem#:=75/36pt#; % lowercase stem breadth
+curve#:=90/36pt#; % lowercase curve breadth
+ess#:=81/36pt#; % breadth in middle of lowercase s
+flare#:=66/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=114/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=96/36pt#; % uppercase stem breadth
+cap_curve#:=111/36pt#; % uppercase curve breadth
+cap_ess#:=105/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=1pt#; % thickness of lines in math symbols
+
+dish#:=2/36pt#; % amount erased at top or bottom of serifs
+bracket#:=50/36pt#; % vertical distance from serif base to tangent
+jut#:=70/36pt#; % protrusion of lowercase serifs
+cap_jut#:=2.5pt#; % protrusion of uppercase serifs
+beak_jut#:=25/36pt#; % horizontal protrusion of beak serifs
+beak#:=comma_depth#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=22pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22pt#; % max breadth above/below uppercase notches
+serif_drop#:=10/36pt#; % vertical drop of sloped serifs
+stem_corr#:=3/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=12/36pt#; % amount of overshoot for curves
+apex_o#:=12/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+font_setup;
+
+cmchar "The letter G";
+if serifs: beginchar("G",14u#,cap_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=vround max(.6h,x_height-.5vair);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=x2l';
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=x4l';
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ x6=x1r; top y6=h+o; x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..{left}z2;
+ numeric t; t=xpart(upper_arc intersectiontimes (z6--z1'));
+ filldraw subpath(0,t) of upper_arc--z6--z1r--z1--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar("G",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+message "The TeXbook title";
+f:=20/3; % magnification factor (based mostly on cmssdc10)
+u#:=f*19/36pt#; % unit width
+width_adj#:=f*15/36pt#; % width adjustment for certain characters
+serif_fit#:=-f*8/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-f*9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-.2u#; % extra space added to all sidebars
+
+body_height#:=f*270/36pt#; % height of tallest characters
+asc_height#:=f*265/36pt#; % height of lowercase ascenders
+cap_height#:=f*265/36pt#; % height of caps
+fig_height#:=f*265/36pt#; % height of numerals
+x_height#:=f*170/36pt#; % height of lowercase without ascenders
+math_axis#:=f*95/36pt#; % axis of symmetry for math symbols
+bar_height#:=f*95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=f*40/36pt#; % depth of comma below baseline
+desc_depth#:=f*60/36pt#; % depth of lowercase descenders
+
+crisp#:=5*23/36pt#; % diameter of serif corners
+tiny#:=5*23/36pt#; % diameter of rounded corners
+fine#:=5*8/36pt#; % diameter of sharply rounded corners
+thin_join#:=12*8/36pt#; % width of extrafine details
+hair#:=5*40/36pt#; % lowercase hairline breadth
+stem#:=5*40/36pt#; % lowercase stem breadth
+curve#:=5*40/36pt#; % lowercase curve breadth
+ess#:=5*37/36pt#; % breadth in middle of lowercase s
+flare#:=5*31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=5*38/36pt#; % diameter of dots
+cap_hair#:=5*40/36pt#; % uppercase hairline breadth
+cap_stem#:=5*44/36pt#; % uppercase stem breadth
+cap_curve#:=5*44/36pt#; % uppercase curve breadth
+cap_ess#:=5*42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=5*25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=f*1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=6*23/36pt#; % vertical diameter of hairlines
+notch_cut#:=6*40/36pt#; % maximum breadth above or below notches
+bar#:=6*23/36pt#; % lowercase bar thickness
+slab#:=6*31/36pt#; % serif and arm thickness
+cap_bar#:=6*29/36pt#; % uppercase bar thickness
+cap_band#:=6*27/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6*37/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=f*2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=5*1/36pt#; % for small refinements of stem breadth
+vair_corr#:=5*2/36pt#; % for small refinements of hairline height
+apex_corr#:=f*14/36pt#; % extra width at diagonal junctions
+
+o#:=f*7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.91; % factor applied to weights of heavy characters
+math_spread:=-.3; % extra openness of math symbols
+superness:=.74; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+font_setup;
+
+cmchar "The letter T";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak);
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper bracketing
+ dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); fi % lower serif
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter e";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=x;
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter E";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak);
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak);
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=y8l+7/6beak;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter X";
+beginchar("X",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The letter b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0);
+pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter o";
+beginchar("o",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair-4stem_corr));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut);
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+font_identifier "CMMAN"; % restore the clobbered value
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/misc/dummy.mf b/Master/texmf-dist/fonts/source/public/misc/dummy.mf
new file mode 100644
index 00000000000..cbc774ae888
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/dummy.mf
@@ -0,0 +1,57 @@
+%% @metafontfile{
+%% filename="dummy.mf",
+%% filetype="Metafont: driver",
+%% author="K. Berry",
+%% email="kb@cs.umb.edu"
+%% codetable="ISO/ASCII",
+%% checksum = "01077 57 290 1988" ,
+%% keywords="amsfonts, dummyfont, metafont , ams-tex, amstex ",
+%% abstract="This file generates dummy.tfm as distributed with AMS-TeX."
+%% docstring = "The checksum field above contains a CRC-16
+%% checksum as the first value, followed by the
+%% equivalent of the standard UNIX wc (word
+%% count) utility output of lines, words, and
+%% characters. This is produced by Robert
+%% Solovay's checksum utility.",
+%% }
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_def nullmode = % TFM files only
+ proofing := -1;
+ fontmaking := 1;
+enddef;
+
+mode := nullmode;
+mode_setup;
+
+% Defeat modes.mf's redefinition of font_face_byte -- it packs in the
+% designsize per the Metafontbook, but dummy.pl doesn't.
+let font_face_byte = gobble;
+
+% Make the string |s| be |n| bytes long.
+def BCPL_string (expr s, n) =
+ for l := if length (s) >= n: n-1 else: length (s) fi: l
+ for k := 1 upto l: , substring (k - 1, k) of s endfor
+ for k := l + 2 upto n: , 0 endfor
+ endfor
+enddef;
+
+headerbyte 1: 0, 5, hex "39", hex "77"; % checksum 1 234 567 in octal
+
+designsize := 10; % header bytes 5-8
+
+% Use font_coding_scheme (from plain) in case end has been redefined to
+% produce the Xerox-world info, as modes.mf does. But do the headerbyte
+% ourselves as well, in case we're not using modes.mf.
+font_coding_scheme := "NULL FONT FOR SYNTAX CHECKING";
+headerbyte 9: BCPL_string (font_coding_scheme_, 40);
+
+font_identifier := "UNSPECIFIED";
+headerbyte 49: BCPL_string (font_identifier_, 20);
+
+headerbyte 72: 0; % face is zero for mrr, + 254 - 2 * designsize
+
+fontdimen 22: 0; % 22 zero font dimens---enough for math fonts.
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/misc/gray.mf b/Master/texmf-dist/fonts/source/public/misc/gray.mf
new file mode 100644
index 00000000000..584361d12df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/gray.mf
@@ -0,0 +1,4 @@
+if mode=ljfour: input graylj;
+elseif mode=cx: input graycx;
+elseif mode=aps: input grayaps;
+fi
diff --git a/Master/texmf-dist/fonts/source/public/misc/grayaps.mf b/Master/texmf-dist/fonts/source/public/misc/grayaps.mf
new file mode 100644
index 00000000000..44f1c4eab6c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/grayaps.mf
@@ -0,0 +1,9 @@
+% temporary kludge to make the APS font for proofmode with new MF
+magnification 1.0;
+tfmmode;
+fontfacebyte 84;
+ppi=722.909; % pixels per inch, according to DRF
+fontidentifier "FIG";
+codingscheme "GFGRAY";
+input gray;
+end
diff --git a/Master/texmf-dist/fonts/source/public/misc/graycx.mf b/Master/texmf-dist/fonts/source/public/misc/graycx.mf
new file mode 100644
index 00000000000..b1e75d6ee7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/graycx.mf
@@ -0,0 +1,10 @@
+% Gray font for CX with proofsheet resolution 75 pixels per inch.
+% Each pixel is represented by a 4x4 square, with 4/16 of the dots on.
+
+if mode<>cx: errmessage "This file is for cx only"; fi
+
+font_identifier "GRAYCX";
+
+boolean lightweight;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/grayf.mf b/Master/texmf-dist/fonts/source/public/misc/grayf.mf
new file mode 100644
index 00000000000..1a34e18fd1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/grayf.mf
@@ -0,0 +1,82 @@
+% More-or-less general gray font generator
+% See Appendix H of The METAFONTbook for how to use it
+
+forsuffixes m = mag,rep:
+ if unknown m: m := 1;
+ elseif (m<1) or (m<>floor m):
+ errmessage "Sorry, " & str m & " must be a positive integer";
+ m := 1; fi endfor
+
+mg := mag; mag := 1; mode_setup;
+if mg>1: hppp := hppp*mg; vppp := vppp*mg;
+ extra_endchar:=
+ "if charcode>0:currentpicture:=currentpicture scaled mg;fi"
+ & extra_endchar; fi;
+
+if picture pix_picture: rep := 1;
+ cull pix_picture keeping (1,infinity);
+else: for z=(0,2),(1,0),(2,3),(3,1):
+ fill unitsquare shifted z; endfor
+ if not boolean lightweight: addto currentpicture also
+ currentpicture rotated 90 xscaled -1; fi
+ if unknown scale: scale := max(1,round(pixels_per_inch/300)); fi
+ pix_wd := pix_ht := 4scale;
+ if rep>1: picture pix;
+ currentpicture := currentpicture shifted-(1,1); pix := currentpicture;
+ for r=1 upto rep-1: addto currentpicture also pix shifted(4r,0); endfor
+ cullit; pix := currentpicture;
+ for r=1 upto rep-1: addto currentpicture also pix shifted(0,4r); endfor
+ unfill unitsquare xscaled 4rep yscaled 2 shifted-(1,1);
+ unfill unitsquare yscaled 4rep xscaled 2 shifted-(1,1); cullit; fi
+ picture pix_picture; pix_picture := currentpicture scaled scale;
+ pix_wd := pix_ht := 4scale*rep; fi
+
+def # = *72.27/pixels_per_inch enddef;
+if unknown dotsize: dotsize := 2.5pix_wd/rep; fi
+
+beginchar(0,1.2dotsize#,1.2dotsize#,0);
+fill fullcircle scaled dotsize scaled mg; endchar;
+
+numeric a[]; newinternal b,k;
+def next_binary =
+ k := 0; forever: if k>b: a[incr b] := 0; fi
+ exitif a[k]=0; a[k] := 0; k := k+1; endfor
+ a[k] := 1 enddef;
+def next_special_binary =
+ if a[0]=1: for k=0 upto b: a[k] := 0; endfor a[incr b]
+ else: k := 0; forever: exitif a[incr k]=1; endfor
+ a[k-1] fi := 1 enddef;
+
+def make_char =
+ clearit; next_binary;
+ for k=0 upto b: if a[k]=1:
+ addto currentpicture also pix_picture shifted(0,-k*pix_ht); fi endfor
+ charcode := charcode+1; chardp := b*charht;
+ scantokens extra_endchar; shipout currentpicture enddef;
+
+charwd := pix_wd#; charht := pix_ht#; chardx := pix_wd*mg;
+b := -1;
+
+if boolean large_pixels:
+ for k=1 upto 7: make_char; charlist k:k+120; endfor
+ charcode := 120; b := -1;
+ addto pix_picture also pix_picture shifted (chardx,0);
+ charwd := 2charwd; chardx := 2chardx;
+ for k=1 upto 7: make_char; endfor
+else: for k=1 upto 63: make_char; endfor
+ let next_binary = next_special_binary;
+ for k=64 upto 120: make_char; endfor
+ for k=121,122: charcode := k;
+ addto currentpicture also currentpicture shifted (chardx,0);
+ charwd := 2charwd; chardx := 2chardx;
+ scantokens extra_endchar; shipout currentpicture; endfor
+ charlist 120:121:122; fi
+
+font_coding_scheme "GFGRAY";
+font_size 8(pix_wd#);
+font_normal_space pix_wd#;
+font_x_height pix_ht#;
+font_quad pix_wd#;
+fontdimen 8: if known rulethickness: rulethickness
+ else: pix_wd#/(2rep) fi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/misc/grayimagen.mf b/Master/texmf-dist/fonts/source/public/misc/grayimagen.mf
new file mode 100644
index 00000000000..63381aa0afe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/grayimagen.mf
@@ -0,0 +1,10 @@
+% Gray font for Imagen 8/300; proofsheet resolution is 75 pixels per inch.
+% Each pixel is represented by a 4x4 square, with 4/16 of the dots on.
+
+if mode<>imagen: errmessage "This file is for imagen only"; fi
+
+font_identifier "GRAYIMAGEN";
+
+boolean lightweight;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/grayimagen3.mf b/Master/texmf-dist/fonts/source/public/misc/grayimagen3.mf
new file mode 100644
index 00000000000..d60fab3f9a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/grayimagen3.mf
@@ -0,0 +1,7 @@
+% Gray font for Imagen with proofsheet resolution 25 pixels per inch
+
+if mode<>imagen: errmessage "This file is for imagen only"; fi
+
+font_identifier "GRAY3IMAGEN";
+rep=3; boolean large_pixels;
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/grayimagenlight.mf b/Master/texmf-dist/fonts/source/public/misc/grayimagenlight.mf
new file mode 100644
index 00000000000..5625d2554bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/grayimagenlight.mf
@@ -0,0 +1,12 @@
+% Light gray font for Imagen 8/300; proofsheet resolution is 60 pixels per inch.
+% Each pixel is represented by a 5x5 square, with 5/25 of the dots on.
+
+if mode<>imagen: errmessage "This file is for imagen only"; fi
+
+font_identifier "GRAYIMAGEN";
+picture pix_picture; pix_picture := nullpicture;
+for z=(0,1),(1,4),(2,2),(3,0),(4,3):
+ addto pix_picture also unitpixel shifted z; endfor
+pix_wd := pix_ht := 5;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/graylj.mf b/Master/texmf-dist/fonts/source/public/misc/graylj.mf
new file mode 100644
index 00000000000..e4596221361
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/graylj.mf
@@ -0,0 +1,10 @@
+% Gray font for LJ with proofsheet resolution 150 pixels per inch.
+% Each pixel is represented by a 4x4 square, with 4/16 of the dots on.
+
+if mode<>ljfour: errmessage "This file is for ljfour only"; fi
+
+font_identifier "GRAYLJ";
+
+boolean lightweight;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/manfnt.mf b/Master/texmf-dist/fonts/source/public/misc/manfnt.mf
new file mode 100644
index 00000000000..0c85e0864b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/manfnt.mf
@@ -0,0 +1,788 @@
+% Special font for the TeX and METAFONT manuals
+% This file was prepared "hastily" and hasn't been "polished".
+% In particular, some characters won't work when aspect_ratio<>1.
+
+font_size 10pt#;
+em#:=10pt#; ht#:=250/36pt#;
+mode_setup;
+
+font_identifier "MANFNT";
+font_coding_scheme "PI";
+
+message "Hex symbols";
+width1#=.4pt#*(ht#/(100/36pt#));
+width2#=.6pt#*(ht#/(100/36pt#));
+define_blacker_pixels(width1,width2);
+
+beginchar(1,2ht#,ht#,0); "Original hex"; % \hexa
+pickup pencircle scaled width1;
+w:=2good.x .5w;
+x1=x4=good.x 0; x2=x5=.5w; x3=x6=good.x w;
+y1=y2=y3=good.y h; y4=y5=y6=good.y 0;
+draw z1..z6; draw z2..z5; draw z3..z4;
+for k=1 upto 6: drawdot z[k]; endfor
+labels (1,2,3,4,5,6); endchar;
+
+beginchar(2,2ht#,ht#,0); "Top/bot adjusted hex"; % \hexb
+pickup pencircle scaled width1;
+w:=2good.x .5w;
+x1=x4=good.x 0; x2=x5=.5w; x3=x6=good.x w;
+top y1=h; y1=y2=y3; bot y4=0; y4=y5=y6;
+draw z1..z6; draw z2..z5; draw z3..z4;
+for k=1 upto 6: drawdot z[k]; endfor
+labels (1,2,3,4,5,6); endchar;
+
+beginchar(3,2ht#,ht#,0); "Bold top/bot adjusted hex"; % \hexc
+pickup pencircle scaled width2;
+w:=2good.x .5w;
+x1=x4=good.x 0; x2=x5=.5w; x3=x6=good.x w;
+top y1=h; y1=y2=y3; bot y4=0; y4=y5=y6;
+draw z1..z6; draw z2..z5; draw z3..z4;
+for k=1 upto 6: drawdot z[k]; endfor
+labels (1,2,3,4,5,6); endchar;
+
+beginchar(4,2ht#,ht#,0); "Bold top/bot/lft/rt adjusted hex"; % \hexd
+pickup pencircle scaled width2;
+w:=2good.x .5w;
+lft x1=0; x1=x4; x2=x5=.5w; rt x3=w-1; x3=x6;
+top y1=h; y1=y2=y3; bot y4=0; y4=y5=y6;
+draw z1..z6; draw z2..z5; draw z3..z4;
+for k=1 upto 6: drawdot z[k]; endfor
+labels (1,2,3,4,5,6); endchar;
+
+beginchar(5,2ht#,ht#,0); "Hex corrected for darkness in the center"; % \hexe
+pickup pencircle scaled width1;
+w:=2good.x .5w;
+top z1=(0,h); top z2=(.5w,h); top z3=(w,h);
+bot z4=(0,0); bot z5=(.5w,0); bot z6=(w,0);
+for k=1 upto 6: drawdot z[k]; endfor
+z1'=.25[z1,z6]; z6'=.75[z1,z6]; theta1:=angle(z6-z1)+90;
+z3'=.25[z3,z4]; z4'=.75[z3,z4]; theta3:=angle(z4-z3)+90;
+z7=z8=.5[z1,z6];
+penpos1'(width1,theta1); penpos6'(width1,theta1); penpos7(.6width1,theta1);
+penpos3'(width1,theta3); penpos4'(width1,theta3); penpos8(.6width1,theta3);
+draw z1..z1'; penstroke z1'e{z6'-z1'}..z7e..{z6'-z1'}z6'e; draw z6'..z6;
+draw z2..z5;
+draw z3..z3'; penstroke z3'e{z4'-z3'}..z8e..{z4'-z3'}z4'e; draw z4'..z4;
+penlabels(1,1',7,2,3,3',8,4,4',5,6,6'); endchar;
+
+message "Stick A's";
+b#:=250/36pt#; a#:=150/36pt#; s#:=30/36pt#;
+standardwidth#:=.4pt#;
+darkwidth#:=.8pt#; lightwidth#:=.2pt#;
+define_blacker_pixels(standardwidth,darkwidth,lightwidth);
+define_pixels(b,a,s);
+def stick_A(expr alpha)(text pentype)=
+beginchar (incr(charcode),s#+a#+s#,b#,0);
+pickup pentype;
+bot z1=(good.x s,0); z5=z1+(a,0);
+z3=(1/2[x1,x5],good.y b);
+z2=alpha[z1,z3]; z4=alpha[z5,z3];
+draw z1..z3; draw z3..z5; draw z2..z4;
+drawdot z1; drawdot z5; drawdot z3;
+labels(1,2,3,4,5); endchar; enddef;
+charcode:=5; % the first A will be number 6
+
+stick_A((3-sqrt5)/2, % (area above bar / area below) = golden ratio % \Aa
+ pencircle scaled standardwidth);
+
+for alpha=.2 step .05 until .5+10epsilon:
+ stick_A(alpha,pencircle scaled standardwidth); endfor % chars 7..13
+
+beginchar(14,s#+a#+s#,b#,0);
+pickup pencircle scaled standardwidth;
+bot z1=(good.x s,0); z5=z1+(a,0);
+z3=(1/2[x1,x5],good.y b);
+z4-z2=whatever*dir20; 1/2[y2,y4]=2/3[y3,y1];
+z2=whatever[z1,z3]; z4=whatever[z3,z5];
+draw z1..z3; draw z3..z5; draw z2..z4;
+drawdot z1; drawdot z5; drawdot z3;
+labels(1,2,3,4,5); endchar;
+
+stick_A((3-sqrt5)/2,pencircle xscaled darkwidth yscaled lightwidth); % \Ab=15
+stick_A((3-sqrt5)/2,
+ pencircle xscaled darkwidth yscaled lightwidth rotated 30); % \Ac=16
+
+message "Kidney beans";
+standardwidth#:=.4pt#;
+darkwidth#:=.8pt#; lightwidth#:=.2pt#;
+define_blacker_pixels(standardwidth,darkwidth,lightwidth);
+b#:=100/36pt#;
+define_pixels(b);
+def bean(text pentype)=
+beginchar (incr(charcode),2b#,1.5b#,0);
+pickup pentype;
+z1=(0,b); z2=(b,b); z3=(2b,b);
+z4=(0,0); z5=(b,0); z6=(2b,0);
+draw z5..z4..z1..z3..z6..cycle;
+labels(1,2,3,4,5,6); endchar; enddef;
+charcode:=16; % the first bean will be number 17
+
+bean(pencircle scaled standardwidth); % \beana=17
+bean(pencircle scaled darkwidth); % \beanb=18
+bean(pencircle xscaled darkwidth yscaled lightwidth); % \beanc=19
+bean(pencircle xscaled darkwidth yscaled lightwidth rotated 30); % \beand=20
+
+message "Pen nibs";
+bigthickwidth#:=8pt#; littlethickwidth#:=2pt#;
+define_blacker_pixels(bigthickwidth,littlethickwidth);
+
+beginchar(21,bigthickwidth#,0,0); % \niba
+pickup pencircle xscaled bigthickwidth yscaled littlethickwidth;
+lft z1=(0,good.y 0);
+drawdot z1;
+labels(1); endchar;
+
+beginchar(22,bigthickwidth#,0,0); % \nibb
+pickup pencircle xscaled bigthickwidth yscaled littlethickwidth rotated 30;
+lft z1=(0,good.y 0);
+drawdot z1;
+labels(1); endchar;
+
+beginchar(23,littlethickwidth#,0,0); % \nibc
+pickup pencircle yscaled bigthickwidth xscaled littlethickwidth;
+lft z1=(0,good.y 0);
+drawdot z1;
+labels(1); endchar;
+
+message "Ionian letters";
+em#:=10pt#; cap#:=7pt#;
+thin#:=1/3pt#; thick#:=5/6pt#;
+slab#:=.8pt#;
+stem#:=.9pt#;
+o#:=1/5pt#;
+
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick,slab,stem);
+define_corrected_pixels(o);
+
+curve_sidebar=round 1/18em;
+
+%vardef pentaper@#(expr lt,rt) = % dropped from PLAIN
+% x@#l:=lt[x@#l,x@#]; x@#r:=rt[x@#r,x@#];
+% y@#l:=lt[y@#l,y@#]; y@#r:=rt[y@#r,y@#] enddef;
+
+
+% ill-fated example wasn't attractive enough by itself:
+%bar:=slab;
+%beginchar(24,0.6em#,cap#,0); % "The letter T"; \IOT=24
+%penpos1(bar,70);
+%penpos2(bar,35);
+%penpos4(bar,35);
+%penpos5(bar,55);
+%x1=0; y1r=h; y2r=y4r=.2[y1r,y1]; y5l=.3[y1l,y1];
+%x2l=1/3[x1l,x5l]; x4l=2/3[x1l,x5l]; x5=w;
+%penpos6(stem,20); pentaper6(.1,0);
+%penpos3(x6r-x6l,0);
+%penpos7(stem,10);
+%y3=y2; x3=.5w;
+%x6r=x3r; y6=2/3h;
+%x7=x6; y7=0;
+%penstroke z1e{curl infinity}..z2e..z4e..{curl infinity}z5e;
+%penstroke z3e..z6e{down}..z7e;
+%labels.top(1r,2l,2,2r,4l,4,4r,6);
+%labels.lft(1,1l,6l);
+%labels.rt(5,5r,5l,6r);
+%labels.bot(3l,3,3r,7,7r,7l);
+%endchar;
+
+beginchar(25,5/9em#,cap#,0); % "The letter S"; /IOS=25
+penpos1(slab,70);
+penpos2(.5slab,80);
+penpos3(.5[slab,thick],200);
+penpos5(.5[slab,thick],210);
+penpos6(.7slab,80);
+penpos7(.25[slab,thick],72);
+x1=x5; y1r=.94h+o;
+x2=x4=x6=.5w; y2r=h+o; y4=.54h; y6l=-o;
+x3r=.04em; y3=.5[y4,y2];
+x5l=w-.03em; y5=.5[y4,y6];
+.5[x7l,x7]=.04em; y7l=.12h-o;
+path trial; trial=z3{down}..z4..{down}z5;
+pair dz; dz=direction 1 of trial;
+penpos4(thick,angle dz-90);
+penstroke z1e..z2e{left}..z3e{down}..z4e{dz}..z5e{down}..z6e{left}..z7e;
+labels.lft(2,3r,5r,6,7);
+labels.rt(1,3l,4,5l);
+labels.top(1r,2r,3,4l,5,6r,7r);
+labels.bot(1l,2l,4r,6l,7l);
+endchar;
+
+beginchar(26,0.8em#,cap#,0); % "The letter O"; \IOO=26
+ penpos1(thick,10); penpos2(.1[thin,thick],90-10);
+ penpos3(thick,180+10); penpos4(thin,270-10);
+ x1l=w-x3l=curve_sidebar; x2=x4=.5w;
+ y1=.49h; y2l=-o; y3=.51h; y4l=h+o;
+ penstroke z1e{down}..z2e{right}..z3e{up}..z4e{left}..cycle;
+ penlabels(1,2,3,4); endchar;
+
+beginchar(27,.35em#,cap#,0); % "The letter I"; \IOI=27
+ penpos1(stem,15); penpos2(.9stem,12); penpos3(stem,10);
+ x1=x2=x3=.5w; y1=h; y2=.55h; y3=0; x2l:=1/6[x2l,x2];
+ penstroke z1e..z2e{down}..z3e;
+ penlabels(1,2,3); endchar;
+
+%ligtable 24: 24 kern .05em#, 26 kern -.05em#; % TT and TO are adjusted
+
+message "Cubes and such";
+s#:=5pt#; define_pixels(s); % side of the square
+beginchar(28,5/3s#,4/3s#,0); % "Possible cube"; \cubea=28
+z1=(-epsilon,-epsilon); z2=(s+epsilon,-epsilon);
+ z3=(-epsilon,s+epsilon); z4=(s+epsilon,s+epsilon);
+for k=1 upto 4: z[k+4]=z[k]+(2/3s,1/3s); endfor
+pickup pencircle scaled .4pt;
+draw z5--z6--z8--z7--cycle;
+pickup pencircle scaled 1.6pt;
+erase draw z2--z4--z3;
+pickup pencircle scaled .4pt;
+draw z1--z2--z4--z3--cycle;
+for k=1 upto 4: draw z[k]--z[k+4]; endfor
+labels.top(1,2,5,6);
+labels.bot(3,4,7,8);
+endchar;
+
+beginchar(29,5/3s#,4/3s#,0); % "Impossible cube"; \cubeb=29
+z1=(-epsilon,-epsilon); z2=(s+epsilon,-epsilon);
+ z3=(-epsilon,s+epsilon); z4=(s+epsilon,s+epsilon);
+for k=1 upto 4: z[k+4]=z[k]+(2/3s,1/3s); endfor
+pickup pencircle scaled .4pt;
+draw z3--z4; draw z5--z6;
+cullit; pickup pencircle scaled 1.6pt;
+undraw z7--1/2[z7,z5];
+ undraw z2--1/2[z2,z4];
+cullit; pickup pencircle scaled .4pt;
+draw z3--z1--z2--z4;
+ draw z5--z7--z8--z6;
+for k=1 upto 4: draw z[k]--z[k+4]; endfor
+labels.top(1,2,5,6);
+labels.bot(3,4,7,8);
+endchar;
+
+beginchar(30,10pt#,7pt#,2pt#); % bicentennial star
+pair center; center=(.5w,2pt);
+numeric radius; radius=5pt;
+for k=0 upto 4: z[k]=center+(radius,0) rotated(90+360/5k); endfor
+def :: = ..tension 5.. enddef;
+path star; star=z0::z2::z4::z1::z3::cycle;
+pickup pencircle scaled .4pt; draw star;
+cullit; pickup pencircle scaled 1.6pt;
+for k=0 upto 4: undraw subpath(k+.55,k+.7) of star; endfor
+cullit; pickup pencircle scaled .4pt;
+for k=0 upto 4: draw subpath(k+.47,k+.8) of star; endfor
+labels(0,1,2,3,4); endchar;
+
+beginchar(31,2/3*11pt#,.5*11pt#,0); % \oneu=31
+pickup pencircle scaled 3/4pt yscaled 1/3 rotated 30;
+save ww; ww=3/2w;
+save t; transform t;
+t=identity rotatedaround((.5ww,h),-90);
+x2=.35ww; x3=good.x .6ww;
+y2=good.y .2h; top y3=round .8h+eps;
+save p; path p; p=z2{right}...{up}z3;
+top z1=point .5 of p transformed t;
+draw (z1...p);
+labels(1,2,3); endchar;
+
+beginchar(38,11pt#,11pt#,0); % \fouru=38
+pickup pencircle scaled 3/4pt yscaled 1/3 rotated 30;
+save t; transform t;
+t=identity rotatedaround((.5w,.5h),-90);
+x2=.35w; x3=good.x .6w;
+y2=good.y .1h; top y3=round .4h+eps;
+save p; path p; p=z2{right}...{up}z3;
+top z1=point .5 of p transformed t;
+draw (z1...p);
+addto currentpicture also currentpicture transformed t;
+addto currentpicture also currentpicture transformed(t transformed t);
+labels.bot(1,3); labels.rt(2); endchar;
+
+beginchar(39,11pt#,11pt#,0); % \fourc=39
+pickup pencircle scaled 3/4pt yscaled 1/3 rotated 30;
+save t; transform t;
+t=identity rotatedaround((.5w,.5h),-90);
+x2=.35w; x3=good.x .6w;
+y2=good.y .1h; top y3=round .4h+eps;
+save p; path p; p=z2{right}...{up}z3;
+top z1=point .5 of p transformed t;
+draw (z1...p) rotatedaround((.5w,.5h),-45)
+ withpen pencircle scaled 3/4pt yscaled 1/3 rotated-15;
+addto currentpicture also currentpicture transformed t;
+addto currentpicture also currentpicture transformed(t transformed t);
+labels.bot(1,3); labels.rt(2); endchar;
+
+message "Circle variations";
+
+beginchar(32,5pt#,5pt#,0); "Quarter circle"; % \circa
+pickup pencircle scaled (.4pt+blacker);
+draw quartercircle scaled 10pt; endchar;
+
+beginchar(33,5pt#,5pt#,0); "Filled quarter circle"; % \circb
+fill ((0,0)--quartercircle--cycle) scaled 10pt; endchar;
+
+beginchar(34,5pt#,5pt#,0); "Rotated quarter circle"; % \circc
+pickup pencircle scaled (.4pt+blacker);
+draw quartercircle rotated 90 scaled 10pt shifted (5pt,0); endchar;
+
+beginchar(35,5pt#*sqrt2,5pt#,0); "Cone"; % \circd
+pickup pencircle scaled (.4pt+blacker);
+draw ((0,0)--quartercircle--cycle)
+ rotated 45 scaled 10pt shifted (.5w,0); endchar;
+
+beginchar(36,10pt#,7.5pt#,2.5pt#); "Concentric circles"; % \circe
+pickup pencircle scaled (.4pt+blacker);
+for D=.2w,.6w,w:
+ draw fullcircle scaled D shifted (.5w,.5[-d,h]);
+ endfor endchar;
+
+beginchar(37,10pt#,7.5pt#,2.5pt#); "Concentric diamonds"; % \circf
+pickup pencircle scaled (.4pt+blacker);
+for D=.2w,.6w,w:
+ draw unitsquare shifted -(.5,.5) rotated 45
+ scaled (D/sqrt2) shifted (.5w,.5[-d,h]);
+ endfor endchar;
+
+message "Miscellaneous symbols"; % mostly from the old manfnt
+
+beginchar(oct"171",15pt#,7.5pt#,2.5pt#); % arrow for errata lists
+curve#:=30/36pt#; dcurve#:=60/36pt#; bar#:=25/36pt#;
+define_whole_blacker_pixels(curve,dcurve,bar);
+penpos1(curve,90); penpos2(curve,90); penpos3(dcurve,90);
+penpos4(dcurve,90); penpos5(curve,90); penpos6(curve,90);
+y1r=vround(y1r-(y1-.5[-d,h])); y2=y5=y6=y1=y0; y4l=-d; y3r=h;
+x1=0; x2=.1w; x3=.2w; x4=.55w; x5=.65w;
+x2l:=x2l+.25curve; x5r:=x5r-.25curve;
+penstroke z1e--z2e--z3e--z4e--z5e; % crooked arrow
+penpos13(bar,0); penpos14(bar,0); x0=w;
+y13-y0=y0-y14=.24h+eps; x13=x14=7/8w-eps;
+penpos15(.5bar,angle(z14-z0)); z15l=z0; penpos16(.5bar,angle(z13-z0)); z16l=z0;
+z19=.381966[.5[z13,z14],z0];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y6l)--(w,y6l))); x6=xpart point t of p;
+filldraw z0..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z6l--z5l--z5r--z6r--subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z0 & cycle; % arrowhead and link
+penlabels(range 1 thru 19); endchar;
+
+beginchar(oct"170", 5pt#, 6.25pt#, 0); "Triangle for exercises";
+x1=x2=w-x3=round .43pt; y3=.5+floor.5h;
+z1-z2=(z3-z2) rotated 60;
+y1:=.5sqrt3+round(y1-.5sqrt3); y2:=h-y1;
+fill z1--z2--z3--cycle;
+labels(1,2,3); endchar;
+
+beginchar("6",256/36pt#,250/36pt#,0); % upper triangle for Addison-Wesley logo
+x1=round 5/36pt; x2=round .5w; x2-x1=x3-x2=(y2-y1)/(sqrt 3);
+y1=y3=0; fill z1--z2--z3--cycle; labels(1,2,3); endchar;
+
+beginchar("7",256/36pt#,250/36pt#,0); % lower triangle for Addison-Wesley logo
+x1=round 5/36pt; x2=round .5w; x2-x1=x3-x2=(y1-y2)/(sqrt 3);
+y1=y3; y2=0; fill z1--z2--z3--cycle; labels(1,2,3); endchar;
+
+def font_setup=
+define_pixels(u,tiny,axis,hheight,border);
+define_blacker_pixels(hair,thin,thick,rulethickness);
+pickup if tiny<.5: nullpen else: pencircle scaled tiny fi;
+tinypen:=savepen;
+currenttransform:=identity yscaled aspect_ratio slanted slant;
+enddef;
+
+% typical cmr10 parameters
+u#:=20/36pt#;
+tiny#:=0;
+axis#:=90/36pt#;
+hheight#:=250/36pt#;
+border#:=20/36pt#;
+hair#:=8/36pt#;
+thin#:=9/36pt#;
+thick#:=25/36pt#;
+fixwidth:=0;
+slant:=0;
+rulethickness#:=.4pt#;
+
+baselinedistance#:=11pt#;
+heavyline#:=50/36pt#;
+font_setup;
+define_whole_pixels(baselinedistance);
+define_blacker_pixels(heavyline);
+
+beginchar(127,25u#,hheight#+border#,0); "Dangerous bend sign";
+pickup pencircle scaled rulethickness;
+top y1=25/27h; lft x4=0;
+x1+x1=x1a+x1b=x4b+x2a=x4+x2=x4a+x2b=x3b+x3a=x3+x3=w;
+x4a=x4b=x4+u; x3b=x1a=x1-2u;
+y4+y4=y4a+y4b=y3b+y1a=y3+y1=y3a+y1b=y2b+y2a=y2+y2=0;
+y1a=y1b=y1-2/27h; y4b=y2a=y4+4/27h;
+draw z1a..z1..z1b---z2a..z2..z2b---
+ z3a..z3..z3b---z4a..z4..z4b---cycle; % signboard
+x10=x11=x12=x13=good.x(.5w-u); x14=x15=x16=x17=w-x10;
+y10=y14=28/27h+epsilon; bot y13=-baselinedistance;
+z11=(z10..z13) intersectionpoint (z1a{z1a-z4b}..z1{right});
+y15=y11; y16=y12=-y11; y17=y20=y21=y13;
+draw z11--z10--z14--z15; draw z12--z13; draw z16--z17; % signpost
+x20=w-x21; x21-x20=16u; draw z20--z21; % ground level
+x38=w-x31; x38-x31=8u; x32=x34=x38; x31=x35=x37;
+y31=-y38=12/27h; y32=-y37=9/27h; y34=-y35=3/27h;
+pickup pencircle scaled heavyline;
+draw z32{z32-z31}..z34---z35..z37{z38-z37}; % the dangerous bend
+pickup penrazor xscaled heavyline rotated (angle(z32-z31)+90);
+draw z31--z32; draw z37--z38; % upper and lower bars
+labels(1,1a,1b,2,2a,2b,3,3a,3b,4,4a,4b,10,11,12,13,14,15,16,17,20,21,
+ 31,32,33,34,35,36,37,38);
+picture dbend; dbend=currentpicture;
+endchar;
+beginchar(126,25u#,hheight#+border#,0); "Lefthanded ditto";
+currentpicture:=dbend reflectedabout((.5w,0),(.5w,h));
+endchar;
+beginchar(0,25u#,hheight#+border#,0); "Reverse video ditto";
+fill (0,-11pt)--(w,-11pt)--(w,h)--(0,h)--cycle;
+addto currentpicture also -dbend;
+endchar;
+
+beginchar(oct"140",3.75pt#,7pt#,4/3pt#); "special 1/7 for a quotation";
+currenttransform:=currenttransform slanted(2/7/aspect_ratio);
+y3=y4=.5[h,-d]=.5[y2,y5]; y5=y6;
+x1=x2=x7=.5w; x5+x6=x3+x4=w; x5=x3+1/6pt;
+pickup pencircle xscaled .5pt yscaled .35pt;
+bot y2=top y3+pt; top y1=h; bot y7=-d; lft x3=0; % y2 moved up 1/3pt (Feb 5)
+draw z1..z2; draw z3..z4;
+draw z5--z6..{down}z7;
+labels(1,2,3,4,5,6,7);
+endchar;
+currenttransform:=currenttransform slanted(-2/7/aspect_ratio);
+
+% Circumscribed circles
+pickup pencircle scaled(.4pt+blacker); rpen:=savepen;
+def begincircle(expr code,units,depth,asp,superness)=
+beginchar(code,units*20/36pt#,0,0); pickup rpen;
+aa:=.5(w++depth*pt/asp);
+x2=x4=.5[x1,x3]=.5w; y1=y3=.5[y2,y4]=-.5round(depth*pt);
+x1=good.x(x2+aa); y2=good.y(y1+asp*aa);
+draw superellipse(z1,z2,z3,z4,superness); labels(1,2,3,4) enddef;
+
+"Ellipse for floating-point mod operator"; % also for pseudo coin top
+begincircle(oct"130",29,5,.5,.75786); endchar;
+
+"Edge and bottom of pseudo coin";
+begincircle(oct"133",29,5,.5,.75786); charht:=2pt#;
+erase fill rt z1--(rt x1,top y2)--(lft x3,top y2)--lft z3--cycle;
+x0=x1; x5=x3; y0=y5=y1+2pt; draw z0--z1; draw z3--z5; labels(0,5); endchar;
+
+"Circle to enclose two digits";
+begincircle(oct"131",19,7.5,1,.75786); endchar;
+
+"Circle to enclose an exponent of 2";
+begincircle(oct"132",9,6,1,1/sqrt2); endchar;
+
+% Now we do the \qc font from TeXbook Appendix D
+pickup pencircle scaled ceiling pt; ptpen:=savepen;
+
+beginchar("a",10pt#,5.5pt#,4.5pt#); pickup ptpen; % W to S
+bot y1=lft x2=0; x2=.5[x1,x1+w]; y1=.5[y2,y2+h+d];
+draw z1{right}..{down}z2; labels(1,2); endchar;
+
+beginchar("b",10pt#,5.5pt#,4.5pt#); pickup ptpen; % W to N
+bot y1=lft x2=0; x2=.5[x1,x1+w]; y1=.5[y2,y2-h-d];
+draw z1{right}..{up}z2; labels(1,2); endchar;
+
+beginchar("c",10pt#,5.5pt#,4.5pt#); pickup ptpen; % E to N
+bot y1=lft x2=0; x2=.5[x1,x1-w]; y1=.5[y2,y2-h-d];
+draw z1{left}..{up}z2; labels(1,2); endchar;
+
+beginchar("d",10pt#,5.5pt#,4.5pt#); pickup ptpen; % E to S
+bot y1=lft x2=0; x2=.5[x1,x1-w]; y1=.5[y2,y2+h+d];
+draw z1{left}..{down}z2; labels(1,2); endchar;
+
+fontdimen 8: pt#; % rule thickness in \qc
+
+message "METAFONT logo";
+
+def arc(suffix i,j) =
+ (z.i{0,y.j-y.i}..
+ (beta[x.i,x.j],beta[y.j,y.i]){z.j-z.i}..
+ z.j{x.j-x.i,0}) enddef;
+
+def double_arc(suffix i,j,k) =
+ arc(i,j) & reverse arc(k,j) enddef;
+
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+
+def setparameters(text parameter_equations) =
+ string code.M,code.E,code.T,code.A,code.F,code.O,code.N;
+ numeric h#, xx#, yy#, o#, s#, u#, px#, py#;
+ numeric leftstemloc, barheight;
+ parameter_equations;
+ yy#=(h#/13.5u#)*xx#; define_whole_pixels(xx,yy);
+ define_pixels(s,u);
+ define_corrected_pixels(o);
+ py#=.9px#; define_blacker_pixels(px,py);
+ pickup pencircle xscaled px yscaled py;
+ logo_pen:=savepen;
+ leftstemloc:=good.x((2.5u#+s#)*pt);
+ barheight:=good.y(alpha*h#*pt);
+ ligtable code.T: code.A kern -.5u#;
+ ligtable code.F: code.O kern -u#;
+enddef;
+
+def beginlogochar(suffix c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(code.c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+
+def do_it =
+beginlogochar(M,18);
+x1=x2=leftstemloc; x4=x5=w-x1; x3=w-x3;
+y1=y5; y2=y4; bot.y1=-o; top y2=h+o; y3=y1+yy;
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5);
+endchar;
+
+beginlogochar(E,14);
+x1=x2=x3=leftstemloc; x4=x6=w-x1+o; x5=x4-xx;
+y1=y6; y2=y5; y3=y4; bot.y1=0; top.y3=h; y2=barheight;
+draw z6--z1--z3--z4; draw z2..z5;
+labels(1,2,3,4,5,6);
+endchar;
+
+beginlogochar(T,13);
+italcorr h#*slant+.5u#;
+if odd(w-px): w:=w+1; fi % allows a symmetric stem
+lft x1=-epsilon; x2=w-x1; x3=x4=.5w; % I tried lft x1=s-o; not as good
+y1=y2=y3; top.y1=h; bot.y4=-o;
+draw z1..z2; draw z3..z4;
+labels(1,2,3,4);
+endchar;
+
+beginlogochar(A,15); % changed from 16 on Oct 16!
+x1+x4=x2+x3=2x5=w; x1=x2=leftstemloc;
+y1=y4; y2=y3; bot.y1=-o; top.y5=h+o; y2=barheight;
+draw double_arc(2,5,3); draw z1--z2--z3--z4;
+labels(1,2,3,4,5);
+endchar;
+
+beginlogochar(F,14);
+x1=x2=x3=leftstemloc; x4=w-x1+o; x5=x4-xx;
+y2=y5; y3=y4; bot.y1=-o; top.y3=h; y2=barheight;
+draw z1--z3--z4; draw z2..z5;
+labels(1,2,3,4,5);
+endchar;
+
+beginlogochar(O,15);
+x1+x2=x3+x4=w; x1=good.x(1.5u+s); x3=x4;
+bot.y3=-o; top.y4=h+o; y1=y2=barheight;
+draw double_arc(1,4,2); draw double_arc(2,3,1);
+labels(1,2,3,4);
+endchar;
+
+beginlogochar(N,15);
+x1+x4=x1+x3=x2+x5=w; x1=x2=leftstemloc;
+y1=y4=y3-yy; bot.y1=-o; y2=y5; top.y5=h+o;
+draw z1--z2--z3; draw z4..z5;
+labels(1,2,3,4,5);
+endchar;
+enddef; % the end of "do_it"
+
+% ten-point size
+message " ten point";
+setparameters(h#=6; % height of characters, in pt
+slant:=0;
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ px#=2/3; % horizontal thickness of pen, in pt
+ code.M="M"; code.E="E"; code.T="T"; code.A="A";
+ code.F="F"; code.O="O"; code.N="N")
+do_it;
+
+currenttransform:=currenttransform slanted(.25/aspect_ratio);
+% ten-point size, slanted: 89:;<=>: = METAFONT!
+message " slanted ten point";
+setparameters(h#=6; % height of characters, in pt
+slant:=.25;
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ px#=2/3; % horizontal thickness of pen, in pt
+ code.M="8"; code.E="9"; code.T=":"; code.A=";";
+ code.F="<"; code.O="="; code.N=">")
+do_it;
+currenttransform:=currenttransform slanted(-.25/aspect_ratio);
+
+% nine-point size: hijklmnj = METAFONT!
+message " nine point";
+setparameters(h#=.9*6; % height of characters, in pt
+slant:=0;
+ xx#=.9*0.6; % extra length of certain features, in pt
+ u#=.91*4/9; % unit width, in pt
+ s#=.08; % extra sidebar, in pt
+ o#=1/10; % overshoot of curves, in pt
+ px#=.9*2/3; % horizontal thickness of pen, in pt
+ code.M="h"; code.E="i"; code.T="j"; code.A="k";
+ code.F="l"; code.O="m"; code.N="n")
+do_it;
+font_quad 18u#+2s#; % we take spacing from the 9-point logo font
+font_normal_space 6u#+2s#;
+font_normal_stretch 3u#;
+font_normal_shrink 2u#;
+
+% eight-point size: opqrstuq = METAFONT!
+message " eight point";
+setparameters(h#=.8*6; % height of characters, in pt
+slant:=0;
+ xx#=.8*0.6; % extra length of certain features, in pt
+ u#=.82*4/9; % unit width, in pt
+ s#=.2; % extra sidebar, in pt
+ o#=1/12; % overshoot of curves, in pt
+ px#=.8*2/3; % horizontal thickness of pen, in pt
+ code.M="o"; code.E="p"; code.T="q"; code.A="r";
+ code.F="s"; code.O="t"; code.N="u")
+do_it;
+
+% eight-point size, magnified 10/8: /0123451 = METAFONT!
+message " magnified eight point";
+setparameters(h#=.8*6*10/8; % height of characters, in pt
+slant:=0;
+ xx#=.8*0.6*10/8; % extra length of certain features, in pt
+ u#=.82*4/9*10/8; % unit width, in pt
+ s#=.2*10/8; % extra sidebar, in pt
+ o#=1/12*10/8; % overshoot of curves, in pt
+ px#=.8*2/3*10/8; % horizontal thickness of pen, in pt
+ code.M="/"; code.E="0"; code.T="1"; code.A="2";
+ code.F="3"; code.O="4"; code.N="5")
+do_it;
+
+currenttransform:=currenttransform slanted(2/7/aspect_ratio);
+% eight-point size, slanted: \]^_efg^ = METAFONT!
+message " slanted eight point";
+slant:=2/7;
+setparameters(h#=.8*6; % height of characters, in pt
+ xx#=.8*0.6; % extra length of certain features, in pt
+ u#=.82*4/9; % unit width, in pt
+ s#=.2; % extra sidebar, in pt
+ o#=1/12; % overshoot of curves, in pt
+ px#=.8*2/3; % horizontal thickness of pen, in pt
+ code.M="\"; code.E="]"; code.T="^"; code.A="_";
+ code.F="e"; code.O="f"; code.N="g")
+do_it;
+currenttransform:=currenttransform slanted(-2/7/aspect_ratio);
+
+% special size for the title page: ()*+,-.* = METAFONT!
+message " title page size";
+setparameters(h#=250/9; % height of characters, in pt (same as cmssc40)
+slant:=0;
+ xx#=2.9; % extra length of certain features, in pt
+ u#=(1+sqrt5)/2; % unit width, in pt
+ s#=.2; % extra sidebar, in pt
+ o#=4/9; % overshoot of curves, in pt
+ px#=4; % horizontal thickness of pen, in pt
+ code.M="("; code.E=")"; code.T="*"; code.A="+";
+ code.F=","; code.O="-"; code.N=".")
+do_it;
+
+currenttransform:=currenttransform slanted(-1/9/aspect_ratio);
+% backslanted skinny bold: BCDGHIJD = METAFONT!
+message " weird skinny bold condensed";
+setparameters(h#=25; % height of characters, in pt
+slant:=-1/9; % leftward bias
+ xx#=1.5; % extra length of certain features, in pt
+ u#=3/9; % unit width, in pt
+ s#=1/3; % extra sidebar, in pt
+ o#=2/9; % overshoot of curves, in pt
+ px#=1; % horizontal thickness of pen, in pt
+ code.M="B"; code.E="C"; code.T="D"; code.A="G";
+ code.F="H"; code.O="I"; code.N="J")
+do_it;
+currenttransform:=currenttransform slanted(+1/9/aspect_ratio);
+
+% ultrawide light: KLUVWvwU = METAFONT!
+message " weird light extended";
+setparameters(h#=6; % height of characters, in pt
+slant:=0;
+ xx#=2; % extra length of certain features, in pt
+ u#=4/3; % unit width, in pt
+ s#=-2/3; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ px#=1/3; % horizontal thickness of pen, in pt
+ code.M="K"; code.E="L"; code.T="U"; code.A="V";
+ code.F="W"; code.O="v"; code.N="w")
+do_it;
+
+message "Pixel symbols";
+
+beginchar("P",722.7/722.909pt#,722.7/722.909pt#,0); % 1pt pixel
+pickup pencircle scaled .2pt;
+top lft z1=(0,.8h); top rt z2=(.8w,.8h);
+bot lft z3=(0,0); bot rt z4=(.8w,0);
+draw z1--z4; draw z2--z3; endchar;
+
+beginchar("Q",722.7/722.909pt#,722.7/722.909pt#,0); % 1pt nonpixel
+pickup pencircle scaled .2pt;
+drawdot(.4w,.4h); endchar;
+
+beginchar("R",3*722.7/722.909pt#,3*722.7/722.909pt#,0); % 3pt pixel
+pickup pencircle scaled .3pt;
+interim autorounding:=0;
+top lft z1=(0,.9h); top z2=(.45w,.9h); top rt z3=(.9w,.9h);
+lft z4=(0,.45h); rt z5=(.9w,.45h);
+bot lft z6=(0,0); bot z7=(.45w,0); bot rt z8=(.9w,0);
+draw z1+(-50epsilon,50epsilon)--z8+(50epsilon,-50epsilon);
+draw z2+(0,50epsilon)--z7-(0,50epsilon);
+draw z3+(50epsilon,50epsilon)--z6-(50epsilon,50epsilon);
+draw z4-(50epsilon,0)--z5+(50epsilon,0); endchar;
+
+beginchar("S",3*722.7/722.909pt#,3*722.7/722.909pt#,0); % 3pt nonpixel
+pickup pencircle scaled .3pt;
+drawdot(.45w,.45h); endchar;
+
+message "Gothic d";
+
+beginchar("?",4pt#,8pt#,0);
+ % taken from NB, but my changes may have spoiled it
+stem_length#:=10/6.7pt#; define_blacker_pixels(stem_length);
+xheight:=6pt;
+penpos1 (2*stem_length,30); % normal points
+penpos2 (2*stem_length,30); % normal points
+penpos3 (2*stem_length,30); % normal points
+penpos4 (2*stem_length,30); % normal points
+
+x1l=x2=0; y1r=xheight; y2l=0;
+ penpos40(stem_length,30); z40r=round z1;
+ penpos41(stem_length,40); x40r=x41r=x42r; y41=.5[y40,y42];
+ penpos42(stem_length,30); y42l=y2;
+fill z40r--(x40r,y42l)--z42l...z41l{up}...z40l--cycle; % left stem
+
+x3=x4r=w; y3=y1; y4=y2;
+ penpos50(stem_length,30); z50l=round z3l;
+ penpos51(stem_length,40); x50l=x51l=x52l; y51=.5[y50,y52];
+ penpos52(stem_length,30); y52l=y4;
+fill z52l--(x52l,y50r)--z50r...z51r{down}...z52r--cycle; % right stem
+
+ penpos10(stem_length,30); z10=z42;
+ penpos11(stem_length,25); x11=.5[x10,x12]; y10l=y11=y12r;
+ penpos12(stem_length,30); x12r=x4; % redundant: y12l=0;
+ penpos14(stem_length*(1+cosd30),30); z14l=z12l;
+ penpos15(.07stem_length,120); z15l=z14r;
+fill z10l...z11l{z12-z10}...z12l--z14r
+ --z15r{z14l-z14r}...z11r{z10-z12}...z10r--cycle; % lower join
+
+numeric ch; ch=10; % Neenie's version was more like ch=7.5 (steeper)
+numeric s_length[];
+ s_length0*cosd(30-ch)=stem_length*cosd 30;
+ s_length1*cosd(40-ch)=stem_length*cosd 40;
+pair corner; corner=z50r;
+vardef f(expr theta)=
+ save x,y; penpos60(s_length0,theta); y60r=h; x60l=0;
+ angle(z60r-corner)<theta+60+ch enddef;
+numeric theta; theta=solve f(90,0);
+ penpos60(s_length0,theta); y60r=h; x60l=0;
+ penpos61(s_length1,theta+10); z61l=.5[z60l,z62l];
+ penpos62(s_length0,theta); z62r=corner;
+fill z60l--((z60l--z62l)intersectionpoint((x4,0)--(x4,h)))
+ --z62r...z61r{z60-z62}...z60r--cycle; % diagonal
+
+charwd:=charwd+1.03277pt#; w:= w + round(1.03277pt);
+penlabels(1,2,3,4,10,11,12,13,14,15,40,41,42,50,51,52,60,61,62);
+interim xoffset:=.46687pt; interim yoffset:=-.3pt;
+endchar;
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/misc/mfman.mf b/Master/texmf-dist/fonts/source/public/misc/mfman.mf
new file mode 100644
index 00000000000..0bbe24f9de6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/mfman.mf
@@ -0,0 +1,2474 @@
+% This file generates most of the figures for The METAFONTbook
+
+def clear_all = clearit; clearxy; pickup standardpen;
+proofrulethickness 0;
+enddef;
+
+def heavy_dot expr z =
+ makelabel.top("",z-(1,0));
+ makelabel.top("",z+(1,0));
+ makelabel.top("",z-(0,1));
+ makelabel.top("",z+(0,1));
+ makelabel.top("",z+(1,1)/sqrt2);
+ makelabel.top("",z+(1,-1)/sqrt2);
+ makelabel.top("",z-(1,1)/sqrt2);
+ makelabel.top("",z-(1,-1)/sqrt2);
+ enddef;
+
+def font_setup=
+define_pixels(u,tiny,axis,hheight,border);
+define_blacker_pixels(hair,thin,thick,rulethickness);
+pickup if tiny<.5: nullpen else: pencircle scaled tiny fi;
+tinypen:=savepen;
+currenttransform:=identity slanted slant yscaled aspect_ratio;
+enddef;
+
+mode=proof; mode_setup;
+standardpen=savepen;
+
+"Figure 2a"; % 6 points and a grid
+clear_all;
+pair offset; offset=(.5,.5);
+z1=(0,100)+offset;
+z2=(100,100)+offset;
+z3=(200,100)+offset;
+z4=(0,0)+offset;
+z5=(100,0)+offset;
+z6=(200,0)+offset;
+proofrulethickness .8;
+proofrule (z1+(0,5),z4-(0,5)); proofrule (z4-(5,0),z6+(5,0));
+makelabel.top("1 ",z1);
+makelabel.top("2 ",z2);
+makelabel.top("3 ",z3);
+makelabel.bot("4 ",z4);
+makelabel.bot("5 ",z5);
+makelabel.bot("6 ",z6);
+for k=1 upto 6: heavy_dot z[k]; endfor;
+pickup pencircle;
+for x=10 step 10 until 200: draw (x,-5)+offset..(x,105)+offset; endfor
+for y=10 step 10 until 100: draw (-5,y)+offset..(205,y)+offset; endfor
+showit;
+shipit;
+
+"Figure A2a"; % 6 points and a grid and two more points
+clear_all;
+proofoffset(30,0);
+pair offset; offset=(.5,.5);
+z1=(0,100)+offset;
+z2=(100,100)+offset;
+z3=(200,100)+offset;
+z4=(0,0)+offset;
+z5=(100,0)+offset;
+z6=(200,0)+offset;
+proofrulethickness .8;
+proofrule (z1+(0,5),z4-(0,5)); proofrule (z4-(5,0),z6+(5,0));
+makelabel.top("1 ",z1);
+makelabel.top("2 ",z2);
+makelabel.top("3 ",z3);
+makelabel.bot("4 ",z4);
+makelabel.bot("5 ",z5);
+makelabel.bot("6 ",z6);
+for k=1 upto 6: heavy_dot z[k]; endfor;
+makelabel.lft("(-5,15)",(-5,15)+offset);
+makelabel.top("(60,30) ",(60,30)+offset);
+%makelabel.top(" ,30) ",(60,30)+offset);
+%makelabel.top("(60 ",(60,30)+offset);
+heavy_dot (-5,15)+offset;
+heavy_dot (60,30)+offset;
+pickup pencircle;
+for x=10 step 10 until 200: draw (x,-5)+offset..(x,105)+offset; endfor
+for y=10 step 10 until 100: draw (-5,y)+offset..(205,y)+offset; endfor
+showit;
+shipit;
+
+"Figure 2b"; % 6 points and a line
+clear_all;
+z1=(0,100);
+z2=(100,100);
+z3=(200,100);
+z4=(0,0);
+z5=(100,0);
+z6=(200,0);
+draw (x1-epsilon,y1)..(x6,y6);
+makelabel.lft("1 ",z1);
+makelabel.lft("2",z2);
+makelabel.rt("3",z3);
+makelabel.lft("4",z4);
+makelabel.lft("5",z5);
+makelabel.rt(" 6",z6);
+showit;
+shipit;
+
+"Figure 2c"; % 6 points and three lines (hex symbol, version 1)
+clear_all;
+z1=(0,100);
+z2=(100,100);
+z3=(200,100);
+z4=(0,0);
+z5=(100,0);
+z6=(200,0);
+draw z1..z6; draw z2..z5; draw z3..z4;
+for k=1 upto 6: drawdot z[k]; endfor
+makelabel.lft("1 ",z1);
+makelabel.lft("2 ",z2);
+makelabel.rt(" 3",z3);
+makelabel.lft("4 ",z4);
+makelabel.lft("5 ",z5);
+makelabel.rt(" 6",z6);
+showit;
+shipit;
+
+"Figure 2d"; % hex symbols with top and bottom adjusted
+clear_all;
+top z1=(0,100);
+top z2=(100,100);
+top z3=(200,100);
+bot z4=(0,0);
+bot z5=(100,0);
+bot z6=(200,0);
+draw z1..z6; draw z2..z5; draw z3..z4;
+for k=1 upto 6: drawdot z[k]; endfor
+makelabel.lft("1 ",z1);
+makelabel.lft("2 ",z2);
+makelabel.rt(" 3",z3);
+makelabel.lft("4 ",z4);
+makelabel.lft("5 ",z5);
+makelabel.rt(" 6",z6);
+showit;
+clearxy; pair offset; offset=(250,0);
+pickup pencircle scaled .6pt;
+top z1=(0,100)+offset;
+top z2=(100,100)+offset;
+top z3=(200,100)+offset;
+bot z4=(0,0)+offset;
+bot z5=(100,0)+offset;
+bot z6=(200,0)+offset;
+draw z1..z6; draw z2..z5; draw z3..z4;
+for k=1 upto 6: drawdot z[k]; endfor
+makelabel.lft("1 ",z1);
+makelabel.lft("2 ",z2);
+makelabel.rt(" 3",z3);
+makelabel.lft("4 ",z4);
+makelabel.lft("5 ",z5);
+makelabel.rt(" 6",z6);
+proofrule ((-5,100),(210,100)+offset);
+proofrule ((-5,0),(210,0)+offset);
+showit;
+shipit;
+
+"Figure 2e"; % stick-letter A
+b#:=250/36pt#; a#:=150/36pt#; s#:=30/36pt#;
+define_pixels(b,a,s);
+def A(expr alpha)=
+beginchar (incr(charcode),s#+a#+s#,b#,0);
+pickup standardpen;
+bot z1=(good.x s,0); z5=z1+(a,0);
+z3=(1/2[x1,x5],good.y b);
+z2=alpha[z1,z3]; z4=alpha[z5,z3];
+draw z1..z3; draw z3..z5; draw z2..z4;
+drawdot z1; drawdot z5; drawdot z3;
+makelabel.lft("1 ",z1);
+makelabel.lft("2 ",z2);
+makelabel.top("3 ",z3);
+makelabel.rt(" 4",z4);
+makelabel.rt(" 5",z5);
+endchar; enddef;
+
+A((3-sqrt5)/2); % (area above bar / area below) = golden ratio
+
+"Figure 3a"; % 4 points and 3 midpoints
+clear_all;
+z1=(.5,.5); z2=(40.5,80.5); z3=(150.5,100.5); z4=(300.5,.5);
+z12=1/2[z1,z2]; z23=1/2[z2,z3]; z34=1/2[z3,z4];
+pickup pencircle;
+draw z1--z2--z3--z4;
+heavy_dot z1; heavy_dot z2; heavy_dot z3; heavy_dot z4;
+makelabel.lft("1",z1);
+makelabel.lft("2",z2);
+makelabel.top(" 3",z3);
+makelabel.rt("4",z4);
+makelabel.rt("12",z12);
+makelabel.bot(" 23",z23);
+makelabel.bot("34 ",z34);
+showit;
+shipit;
+
+"Figure 3b"; % 4 points and 6 midpoints
+clear_all;
+z1=(.5,.5); z2=(40.5,80.5); z3=(150.5,100.5); z4=(300.5,.5);
+z12=1/2[z1,z2]; z23=1/2[z2,z3]; z34=1/2[z3,z4];
+z123=1/2[z12,z23]; z234=1/2[z23,z34]; z1234=1/2[z123,z234];
+heavy_dot z1; heavy_dot z2; heavy_dot z3; heavy_dot z4;
+pickup pencircle;
+draw z1--z2--z3--z4; draw z12--z23--z34; draw z123--z234;
+makelabel.lft("1",z1);
+makelabel.lft("2",z2);
+makelabel.top(" 3",z3);
+makelabel.rt("4",z4);
+makelabel.lft("12",z12);
+makelabel.top("23 ",z23);
+makelabel.rt("34",z34);
+makelabel.bot(" 123",z123);
+makelabel.bot("234 ",z234);
+makelabel.bot("1234",z1234);
+showit;
+shipit;
+
+"Figure 3c"; % 4 points and infinitely many midpoints
+clear_all;
+z1=(.5,.5); z2=(40.5,80.5); z3=(150.5,100.5); z4=(300.5,.5);
+heavy_dot z1; heavy_dot z2; heavy_dot z3; heavy_dot z4;
+pickup pencircle;
+
+def makedot(expr x)= special " 1";
+ numspecial xpart x; numspecial ypart x enddef;
+
+def recurse(expr a,b,c,d)=
+dist:=abs(a-d);
+if dist>4:
+begingroup save e,f,g,h,i,j; pair e,f,g,h,i,j;
+e=(a+b)/2; makedot(e);
+f=(b+c)/2; makedot(f);
+g=(c+d)/2; makedot(g);
+h=(e+f)/2; makedot(h);
+i=(f+g)/2; makedot(i);
+j=(h+i)/2; makedot(j);
+if dist>20: draw a--b--c--d; draw e--f--g; draw h--i; fi
+recurse(a,e,h,j); recurse(j,i,g,d);
+endgroup;
+fi enddef;
+
+makedot(z1); makedot(z2); makedot(z3); makedot(z4); recurse(z1,z2,z3,z4);
+shipit;
+
+"Figure 3d"; % 4 points and various cubics
+clear_all;
+z1=(0,0); z2=5/6(40,80); z3=5/6(150,100); z4=5/6(300,0);
+draw z1..controls z2 and z3..z4;
+drawdot z1; drawdot z4;
+makelabel.lft("1 ",z1);
+makelabel.lft("2",z2);
+makelabel.rt("3",z3);
+makelabel.rt(" 4",z4);
+pair offset; offset:=(325,0);
+draw (z1..controls z3 and z2..z4) shifted offset;
+drawdot z1+offset; drawdot z4+offset;
+makelabel.lft("1 ",z1+offset);
+makelabel.lft("3",z2+offset);
+makelabel.rt("2",z3+offset);
+makelabel.rt(" 4",z4+offset);
+offset:=(0,-100);
+draw (z2..controls z1 and z3..z4) shifted offset;
+drawdot z2+offset; drawdot z4+offset;
+makelabel.lft("2",z1+offset);
+makelabel.lft("1 ",z2+offset);
+makelabel.rt("3",z3+offset);
+makelabel.rt(" 4",z4+offset);
+offset:=(325,-100);
+draw (z1..controls z4 and z2..z3) shifted offset;
+drawdot z1+offset; drawdot z3+offset;
+makelabel.lft("1 ",z1+offset);
+makelabel.lft("3",z2+offset);
+makelabel.rt(" 4",z3+offset);
+makelabel.rt("2",z4+offset);
+showit;
+shipit;
+
+"Figure 3e"; % example curves with automatic control points
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z4..z1..z2..z6;
+draw p;
+drawdot z4; drawdot z6;
+makelabel.bot.nodot(" 1",z1);
+makelabel.top.nodot(" 2",z2);
+makelabel.rt.nodot("3",z3+(2,0));
+makelabel.rt.nodot(" 4",z4);
+makelabel.rt.nodot("5",z5+(2,0));
+makelabel.rt.nodot(" 6",z6);
+for k=1 upto 6: heavy_dot z[k]; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+pair offset; offset=(325,0);
+p:=(z5..z4..z1..z3..z6..z5) shifted offset; draw p;
+drawdot z5+offset;
+makelabel.bot.nodot(" 1",z1+offset);
+makelabel.top.nodot("2",z2+offset+(0,2));
+makelabel.bot.nodot("3 ",z3+offset);
+makelabel.top.nodot(" 4",z4+offset);
+makelabel.top.nodot("5",z5+offset+(0,5));
+makelabel.top.nodot("6 ",z6+offset);
+for k=1 upto 6: heavy_dot z[k]+offset; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+showit;
+shipit;
+
+"Figure 3f"; % bean shape with automatic control points
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z5..z4..z1..z3..z6..cycle;
+draw p;
+makelabel.bot.nodot(" 1",z1);
+makelabel.bot.nodot("2",z2-(0,2));
+makelabel.bot.nodot("3 ",z3);
+makelabel.top.nodot(" 4",z4+(-1,1));
+makelabel.top.nodot("5",z5+(0,5));
+makelabel.top.nodot("6 ",z6+(1,1));
+for k=1 upto 6: heavy_dot z[k]; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+showit;
+shipit;
+
+"Figure 3g"; % bean shape with more tension between 1 and 3
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z5..z4..z1..tension1.2..z3..z6..cycle;
+draw p;
+makelabel.bot.nodot(" 1",z1);
+makelabel.bot.nodot("2",z2-(0,2));
+makelabel.bot.nodot("3 ",z3);
+makelabel.top.nodot(" 4",z4+(-1,1));
+makelabel.top.nodot("5",z5+(0,5));
+makelabel.top.nodot("6 ",z6+(1,1));
+for k=1 upto 6: heavy_dot z[k]; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+showit;
+shipit;
+
+"Figure 3h"; % bean shape with more tension before and after 1
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z5..z4..tension 1 and 1.5..z1..tension 1.5 and 1..z3..z6..cycle;
+draw p;
+makelabel.bot.nodot(" 1",z1);
+makelabel.bot.nodot("2",z2-(0,2));
+makelabel.bot.nodot("3 ",z3);
+makelabel.top.nodot(" 4",z4+(-1,1));
+makelabel.top.nodot("5",z5+(0,5));
+makelabel.top.nodot("6 ",z6+(1,1));
+for k=1 upto 6: heavy_dot z[k]; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+showit;
+shipit;
+
+"Figure 3i"; % bean shape with straight bottom
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z5..z4{left}..z1..z3..z6{left}..cycle;
+draw p;
+makelabel.bot.nodot(" 1",z1-(1,1));
+makelabel.bot.nodot("2",z2-(0,2));
+makelabel.bot.nodot("3 ",z3+(1,-1));
+makelabel.top.nodot(" 4",z4+(0,5));
+makelabel.top.nodot("5",z5+(0,5));
+makelabel.top.nodot("6 ",z6+(0,5));
+for k=1 upto 6: heavy_dot z[k]; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+showit;
+shipit;
+
+"Figure 3j"; % example with direction specified
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z4..z2{z3-z4}..z3;
+draw p;
+makelabel.rt.nodot("1",z1+(0,-9));
+makelabel.rt.nodot("2",z2+(1,-11));
+makelabel.rt.nodot("3",z3+(1,-11));
+makelabel.rt.nodot("4",z4+(1,-11));
+makelabel.rt.nodot("5",z5+(0,-9));
+makelabel.rt.nodot("6",z6+(0,-9));
+for k=1 upto 6: heavy_dot z[k]; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+showit;
+shipit;
+
+"Figure 3k"; % wiggly shape for exercise
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z5..z4{z4-z2}..z1..z3..z6{z2-z6}..cycle;
+draw p;
+makelabel.bot.nodot(" 1",z1-(2,2));
+makelabel.bot.nodot("2",z2-(0,2));
+makelabel.bot.nodot("3 ",z3+(2,-2));
+makelabel.bot.nodot(" 4",z4);
+makelabel.top.nodot("5",z5+(0,5));
+makelabel.bot.nodot("6 ",z6);
+for k=1 upto 6: heavy_dot z[k]; endfor;
+showit;
+shipit;
+
+"Figure 3l"; % examples of varying curl
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z4{curl0}..z2{z3-z4}..{curl0}z3;
+draw p;
+drawdot z4; drawdot z3;
+makelabel.rt.nodot("1",z1+(0,-9));
+makelabel.rt.nodot("2",z2+(1,-11));
+makelabel.rt.nodot("3",z3+(1,-11));
+makelabel.rt.nodot("4",z4+(1,-11));
+makelabel.rt.nodot("5",z5+(0,-9));
+makelabel.rt.nodot("6",z6+(0,-9));
+for k=1 upto 6: heavy_dot z[k]; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+pair offset; offset=(325,0);
+p:=(z4{curl2}..z2{z3-z4}..{curl2}z3) shifted offset; draw p;
+drawdot z4+offset; drawdot z3+offset;
+makelabel.rt.nodot("1",z1+(0,-9)+offset);
+makelabel.rt.nodot("2",z2+(1,-11)+offset);
+makelabel.rt.nodot("3",z3+(1,-11)+offset);
+makelabel.rt.nodot("4",z4+(1,-11)+offset);
+makelabel.rt.nodot("5",z5+(0,-9)+offset);
+makelabel.rt.nodot("6",z6+(0,-9)+offset);
+for k=1 upto 6: heavy_dot z[k]+offset; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+showit;
+shipit;
+
+"Figure 3m"; % two directions specified
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z4{z2-z4}..z6{down};
+draw p;
+drawdot z4; drawdot z6;
+makelabel.rt.nodot("1",z1+(2,0));
+makelabel.rt.nodot("2",z2+(2,0));
+makelabel.rt.nodot("3",z3+(2,0));
+makelabel.bot.nodot(" 4",z4);
+makelabel.rt.nodot("5",z5+(2,0));
+makelabel.rt.nodot(" 6",z6);
+for k=1 upto 6: heavy_dot z[k]; endfor;
+for k=1 upto length p: heavy_dot postcontrol k-1 of p;
+ heavy_dot precontrol k of p; endfor
+showit;
+shipit;
+
+"Figure 3n"; % two control points specified
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z4..controls z1 and z2..z6;
+draw p;
+drawdot z4; drawdot z6;
+makelabel.rt.nodot("1",z1+(2,0));
+makelabel.rt.nodot("2",z2+(2,0));
+makelabel.rt.nodot("3",z3+(2,0));
+makelabel.rt.nodot(" 4",z4);
+makelabel.rt.nodot("5",z5+(2,0));
+makelabel.rt.nodot(" 6",z6);
+for k=1 upto 6: heavy_dot z[k]; endfor;
+showit;
+shipit;
+
+"Figure 4a"; % bean shape with elliptical pens
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z5..z4..z1..z3..z6..cycle;
+pickup pencircle xscaled .8pt yscaled .2pt rotated 30;
+draw p;
+makelabel.bot(" 1",z1);
+makelabel.bot("2",z2);
+makelabel.bot(" 3",z3);
+makelabel.top("4 ",z4);
+makelabel.top("",z5); makelabel.top.nodot("5",z5+(0,5));
+makelabel.top("",z6); makelabel.top.nodot("6 ",z6+(1,1));
+pair offset; offset=(325,0);
+pickup pencircle xscaled .8pt rotated 30;
+draw p shifted offset;
+makelabel.bot(" 1",z1+offset);
+makelabel.bot("2",z2+offset);
+makelabel.bot(" 3",z3+offset);
+makelabel.top("4 ",z4+offset);
+makelabel.top("",z5+offset); makelabel.top.nodot("5",z5+(0,5)+offset);
+makelabel.top("",z6+offset); makelabel.top.nodot("6 ",z6+(1,1)+offset);
+showit;
+shipit;
+
+"Figure 4b"; % T of METAFONT logo
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+numeric h#, xx#, yy#, o#, s#, u#, ph#, pv#;
+numeric leftstemloc, barheight;
+ h#=6; % height of characters, in pt
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ ph#=2/3; % horizontal thickness of pen, in pt
+yy#=xx#; define_whole_pixels(xx,yy);
+define_pixels(s,u);
+define_corrected_pixels(o);
+pv#=.9ph#; define_blacker_pixels(ph,pv);
+pickup pencircle xscaled ph yscaled pv;
+logo_pen:=savepen;
+leftstemloc:=good.x((2.5u#+s#)*pt);
+barheight:=good.y(alpha*h#*pt);
+def beginlogochar(suffix c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(str c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+
+beginlogochar(T,13);
+if odd(w-ph): w:=w+1; fi % allows a symmetric stem
+x1+x2=2x3=2x4=w; lft.x1=-epsilon; % I tried s-o instead; was not as good
+y1=y2=y3; top.y1=h; bot.y4=-o;
+draw z1..z2; draw z3..z4;
+labels.rt(2,3);
+makelabel.top("1",z1);
+makelabel.top("4",z4);
+endchar;
+
+"Figure 4c"; % M of METAFONT logo
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+numeric h#, xx#, yy#, o#, s#, u#, ph#, pv#;
+numeric leftstemloc, barheight;
+ h#=6; % height of characters, in pt
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ ph#=2/3; % horizontal thickness of pen, in pt
+yy#=xx#; define_whole_pixels(xx,yy);
+define_pixels(s,u);
+define_corrected_pixels(o);
+pv#=.9ph#; define_blacker_pixels(ph,pv);
+pickup pencircle xscaled ph yscaled pv;
+logo_pen:=savepen;
+leftstemloc:=good.x((2.5u#+s#)*pt);
+barheight:=good.y(alpha*h#*pt);
+def beginlogochar(suffix c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(str c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+
+beginlogochar(M,18);
+x1+x5=x2+x4=2x3=w; x1=x2=leftstemloc;
+y1=y5; y2=y4; bot.y1=-o; top y2=h+o; y3=y1+yy;
+draw z1--z2--z3--z4--z5;
+labels.rt(3,5);
+makelabel.lft("1",z1);
+makelabel.bot("2",z2);
+makelabel.bot("4",z4);
+endchar;
+
+"Figure 4d"; % solid kidney bean
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z5..z4..z1..z3..z6..cycle;
+fill p;
+makelabel.bot(" 1",z1);
+makelabel.bot("2",z2);
+makelabel.bot("3 ",z3);
+makelabel.top(" 4",z4);
+makelabel.top("5",z5);
+makelabel.top("6 ",z6);
+showit;
+shipit;
+
+"Figure 4e"; % black triangle character for exercises
+beginchar(oct"170", 5pt#, 6.25pt#, 0);
+t:=(2-sqrt3)/2;
+x1=x2=w-x3+.5-t=round .43pt; y3=.5+floor.5h; % MANUAL font has it different!
+%x1=x2=w-x3=round .43pt; y3=.5+floor.5h;
+z1-z2=(z3-z2) rotated 60;
+y2:=t+round(y2-t); y1:=h-y2;
+fill z1--z2--z3--cycle;
+labels.lft(1,2); labels.rt(3); endchar;
+
+"Figure 4f"; % black bean with white holes
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z5..z4..z1..z3..z6..cycle;
+fill p;
+unfill 1/4[z4,z2]..3/4[z4,z2]..cycle;
+unfill 1/4[z6,z2]..3/4[z6,z2]..cycle;
+makelabel.bot(" 1",z1);
+makelabel.bot("2",z2);
+makelabel.bot("3 ",z3);
+makelabel.top(" 4",z4);
+makelabel.top("5",z5);
+makelabel.top("6 ",z6);
+showit;
+shipit;
+
+"Figure 4g"; % black bean with skewed interior cutout
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z5..z4..z1..z3..z6..cycle;
+fill p;
+z0=(.8[x1,x2],.5[y1,y4]);
+for k=1 upto 6: z[k]'=.2[z[k],z0]; endfor
+unfill z5'..z4'..z1'..z3'..z6'..cycle;
+makelabel.bot("0",z0);
+makelabel.top("1 ",z1);
+makelabel.top("2",z2);
+makelabel.top(" 3",z3);
+makelabel.bot("4 ",z4);
+makelabel.bot("5",z5);
+makelabel.bot(" 6",z6);
+makelabel.bot(" 1'",z1');
+makelabel.bot(" 2'",z2');
+makelabel.bot("3' ",z3');
+makelabel.top(" 4'",z4');
+makelabel.top("5'",z5');
+makelabel.top("6' ",z6');
+showit;
+shipit;
+
+"Figure 4h"; % sample penstroke
+clear_all;
+penpos1(1.2pt,30); penpos2(1.0pt,45); penpos3(0.8pt,90);
+z1=(0,2pt); z2=(4pt,0); x3=9pt; y3l=y2r;
+penstroke z1e..z2e{right}..z3e{right};
+labels.top(2r,3r);
+labels.bot(2l,3l);
+labels.rt(3,1r);
+labels.lft(1l,2);
+makelabel.top("1 ",z1);
+showit;
+shipit;
+
+"Figure 4i"; % cyclic penstroke example
+clear_all;
+d:=25;
+penpos1(d,30);
+penpos2(d,60);
+penpos3(d,210);
+penpos4(d,240);
+y1=.51y2r; y2r=175; y3=.49y2r; y4r=0;
+x1r=175; x2=x4=.5x1r; x3r=0;
+penstroke z1e{up}..z2e{left}..z3e{down}..z4e{right}..cycle;
+labels.lft(1l,2,3r,4);
+labels.rt(1r,3l);
+labels.top(2r,3,4l);
+labels.bot(1,2l,4r);
+showit;
+shipit;
+
+"Figure 4j"; % I from IOnian font
+clear_all;
+em#:=10pt#; cap#:=7pt#;
+bar#:=.8pt#;
+stem#:=.9pt#;
+thin#:=.8pt#;
+thick#:=1pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick,bar,stem);
+beginchar(27,.35em#,cap#,0); % "The letter I"; \IOI=27
+ penpos1(stem,15); penpos2(.9stem,12); penpos3(stem,10);
+ x1=x2=x3=.5w; y1=h; y2=.55h; y3=0;
+ x2l:=1/6[x2l,x2];
+ penstroke z1e..z2e{down}..z3e;
+labels.top(1,2,1r);
+labels.lft(2l);
+labels.rt(2r);
+labels.bot(3,3l);
+makelabel("",z1l); makelabel("",z3r);
+makelabel.lft.nodot("1l",z1l-(0,2));
+makelabel.rt.nodot("3r",z3r+(0,2));
+endchar;
+
+"Figure 4k"; % fixed pens versus penstrokes
+clear_all;
+z1=(0,0); z2=(150,0);
+pickup pencircle xscaled 0.8pt rotated 25;
+draw z1..z2..cycle;
+labels.lft(1,2);
+clearxy;
+pair offset; offset=(250,0);
+penpos1(0.8pt,25); penpos2(0.8pt,25);
+z1=(0,0)+offset; z2=(150,0)+offset;
+penstroke z1e..z2e..cycle;
+labels.lft(1l,2l);
+labels.rt(1r,2r);
+labels.bot(1,2);
+showit;
+shipit;
+
+"Figure 4l"; % hex symbol with pen-pressure adjustments
+%b#:=1.0pt#; define_blacker_pixels(b); % FOR INITIAL TESTS ONLY
+%beginchar(0,500/36pt#,250/36pt#,0); % that's magnified 2.5 as in the type
+b#:=0.4pt#; define_blacker_pixels(b);
+beginchar(0,200/36pt#,100/36pt#,0);
+pickup pencircle scaled b;
+w:=2good.x .5w;
+top z1=(0,h); top z2=(.5w,h); top z3=(w,h);
+bot z4=(0,0); bot z5=(.5w,0); bot z6=(w,0);
+draw z2..z5;
+for k=1 upto 6: drawdot z[k]; endfor
+z1'=.25[z1,z6]; z6'=.75[z1,z6];
+z3'=.25[z3,z4]; z4'=.75[z3,z4];
+ theta1:=angle(z6-z1)+90;
+ theta3:=angle(z4-z3)+90;
+penpos1'(b,theta1); penpos6'(b,theta1); penpos7(.6b,theta1);
+penpos3'(b,theta3); penpos4'(b,theta3); penpos8(.6b,theta3);
+z7=z8=.5[z1,z6];
+draw z1..z1'; draw z6'..z6;
+ penstroke z1'e{z6'-z1'}..z7e..{z6'-z1'}z6'e;
+draw z3..z3'; draw z4'..z4;
+ penstroke z3'e{z4'-z3'}..z8e..{z4'-z3'}z4'e;
+labels.top(1'r,3'l,4'l,6'r);
+labels.bot(1'l,3'r,4'r,6'l);
+forsuffixes $=1',3',4',6': makelabel("",z$); endfor
+makelabel.lft("1 ",z1);
+makelabel.lft("2 ",z2);
+makelabel.rt(" 3",z3);
+makelabel.lft("4 ",z4);
+makelabel.lft("5 ",z5);
+makelabel.rt(" 6",z6);
+makelabel.top("8l ",z8l);
+makelabel.top(" 7r",z7r);
+makelabel.bot("7l ",z7l);
+makelabel.bot(" 8r",z8r);
+endchar;
+
+"Figure 4m"; % same, cut sharp at the terminals, and inside the box
+%b#:=1.0pt#; define_blacker_pixels(b); % FOR INITIAL TESTS ONLY
+%beginchar(0,500/36pt#,250/36pt#,0); % that's magnified 2.5 as in the type
+b#:=0.4pt#; define_blacker_pixels(b);
+beginchar(0,200/36pt#,100/36pt#,0);
+pickup pencircle scaled b;
+w:=2good.x .5w;
+x1l=x4l=0;x2=x5=.5w;x3r=x6r=w;
+y1r=y2=y3l=h; y4r=y5=y6l=0;
+z1'=.25[z1,z6]; z6'=.75[z1,z6]; theta1:=angle(w,-h)+90;
+z3'=.25[z3,z4]; z4'=.75[z3,z4]; theta3:=angle(-w,-h)+90;
+z7=z8=.5[z1,z6];
+penpos1(b,theta1); penpos6(b,theta1);
+penpos1'(b,theta1); penpos6'(b,theta1); penpos7(.6b,theta1);
+penpos3(b,theta3); penpos4(b,theta3);
+penpos3'(b,theta3); penpos4'(b,theta3); penpos8(.6b,theta3);
+penstroke z1e..z1'e{z6'-z1'}..z7e..{z6'-z1'}z6'e..z6e;
+penpos2(b,0); penpos5(b,0); penstroke z2e..z5e;
+penstroke z3e..z3'e{z4'-z3'}..z8e..{z4'-z3'}z4'e..z4e;
+penlabels(1,1',2,3,3',4,4',5,6,6');
+labels.top(1r,1'r,2,3l,3'l,4l,4'l,6r,6'r);
+labels.bot(1l,1'l,3r,3'r,4r,4'r,5,6l,6'l);
+labels.lft(2l,5l);
+labels.rt(2r,5r);
+forsuffixes $=1,1',3,3',4,4',6,6': makelabel("",z$); endfor
+makelabel.top("8l ",z8l);
+makelabel.top(" 7r",z7r);
+makelabel.bot("7l ",z7l);
+makelabel.bot(" 8r",z8r);
+endchar;
+
+"Figure A5a"; % S from IOnian font
+clear_all;
+em#:=10pt#; cap#:=7pt#;
+slab#:=.8pt#;
+stem#:=.9pt#;
+thin#:=.8pt#;
+thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_corrected_pixels(o);
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick,slab,stem);
+beginchar(25,5/9em#,cap#,0); % "The letter S"; /IOS=25
+penpos1(slab,70);
+penpos2(.5slab,80);
+penpos3(.5[slab,thick],200);
+penpos5(.5[slab,thick],210);
+penpos6(.7slab,80);
+penpos7(.25[slab,thick],72);
+x1=x5; y1r=.94h+o;
+x2=x4=x6=.5w; y2r=h+o; y4=.54h; y6l=-o;
+x3r=.04em; y3=.5[y4,y2];
+x5l=w-.03em; y5=.5[y4,y6];
+.5[x7l,x7]=.04em; y7l=.12h-o;
+path trial; trial=z3{down}..z4..{down}z5;
+pair dz; dz=direction 1 of trial;
+penpos4(thick,angle dz-90);
+penstroke z1e..z2e{left}..z3e{down}..z4e{dz}..z5e{down}..z6e{left}..z7e;
+labels.lft(2,3r,5r,6,7);
+labels.rt(1,3l,4,5l);
+labels.top(1r,2r,3,4l,5,6r,7r);
+labels.bot(1l,2l,4r,6l,7l);
+endchar;
+
+"Figure 8a"; % twenty points on p2
+clear_all;
+path p[]; p1=(0,0)..(3,3); p2=(0,0)..(3,3)..cycle;
+transform t; t=identity scaled 60 shifted (50,0);
+pair zz;
+z=(1.5,1.5) transformed t;
+pickup pencircle;
+draw p2 transformed t;
+for n=0 upto 19: zz:=point n/10 of p2 transformed t;
+ heavy_dot zz;
+ makelabel.top.nodot(decimal(n/10) if n mod 10=0:&".0" fi,
+.09[zz,z] shifted(.05xpart(z-zz),-6.5)); endfor
+%.1[zz,z] shifted(.1xpart(z-zz),-8)); endfor
+shipit;
+showit;
+
+"Figure 11a"; % E of METAFONT logo
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+numeric h#, xx#, yy#, o#, s#, u#, ph#, pv#;
+numeric leftstemloc, barheight;
+ h#=6; % height of characters, in pt
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ ph#=2/3; % horizontal thickness of pen, in pt
+yy#=xx#; define_whole_pixels(xx,yy);
+define_pixels(s,u);
+define_corrected_pixels(o);
+pv#=.9ph#; define_blacker_pixels(ph,pv);
+pickup pencircle xscaled ph yscaled pv;
+logo_pen:=savepen;
+leftstemloc:=good.x((2.5u#+s#)*pt);
+barheight:=good.y(alpha*h#*pt);
+def beginlogochar(suffix c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(str c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+
+beginlogochar(E,14);
+x1=x2=x3=leftstemloc; x4=x6=w-x1+o; x5=x4-xx;
+y1=y6; y2=y5; y3=y4; bot.y1=0; top.y3=h; y2=barheight;
+draw z6--z1--z3--z4; draw z2..z5;
+labels.rt(1,2,3);
+labels.lft(4,5,6);
+endchar;
+
+"Figure 12a"; % cmr10 left parenthesis
+u#:=20/36pt#;
+tiny#:=0;
+axis#:=90/36pt#;
+hheight#:=250/36pt#;
+border#:=20/36pt#;
+hair#:=8/36pt#;
+thin#:=9/36pt#;
+thick#:=25/36pt#;
+slant:=0;
+rulethickness:=.4pt#;
+
+font_setup;
+beginchar("(",7u#, hheight#+border#, hheight#+border#-2axis#);
+italcorr (hheight#+border#)*slant-.5u#;
+pickup tinypen;
+penpos1(hair-tiny,0); penpos3(hair-tiny,0);
+penpos2(.75[thin,thick]-tiny,0);
+rt x1r = rt x3r = w-u; lft x2l = x1-4u;
+top y1=h; y2=.5[y1,y3]=axis;
+filldraw z1l{curl 4}..z2l..{curl 4}z3l--
+ z3r{curl 4}..z2r..{curl 4}z1r--cycle;
+labels.top(3,2);
+labels.bot(1);
+labels.lft(1l,2l,3l);
+labels.rt(1r,2r,3r);
+endchar;
+
+"Figure 12b"; % cmbx10 left parenthesis
+u#:=23/36pt#;
+tiny#:=0;
+axis#:=90/36pt#;
+hheight#:=250/36pt#;
+border#:=20/36pt#;
+hair#:=13/36pt#;
+thin#:=17/36pt#;
+thick#:=41/36pt#;
+slant:=0;
+
+font_setup;
+beginchar("(",7u#, hheight#+border#, hheight#+border#-2axis#);
+italcorr (hheight#+border#)*slant-.5u#;
+pickup tinypen;
+penpos1(hair-tiny,0); penpos3(hair-tiny,0);
+penpos2(.75[thin,thick]-tiny,0);
+rt x1r = rt x3r = w-u; lft x2l = x1-4u;
+top y1=h; y2=.5[y1,y3]=axis;
+filldraw z1l{curl 4}..z2l..{curl 4}z3l--
+ z3r{curl 4}..z2r..{curl 4}z1r--cycle;
+labels.top(3,2);
+labels.bot(1);
+labels.lft(1l,2l,3l);
+labels.rt(1r,2r,3r);
+endchar;
+
+"Figure 12c"; % cmvtt10 left parenthesis
+u#:=21/36pt#;
+tiny#:=22/36pt#;
+axis#:=110/36pt#;
+hheight#:=220/36pt#;
+border#:=30/36pt#;
+hair#:=22/36pt#;
+thin#:=25/36pt#;
+thick#:=25/36pt#;
+slant:=0;
+
+font_setup;
+beginchar("(",7u#, hheight#+border#, hheight#+border#-2axis#);
+italcorr (hheight#+border#)*slant-.5u#;
+pickup tinypen;
+penpos1(hair-tiny,0); penpos3(hair-tiny,0);
+penpos2(.75[thin,thick]-tiny,0);
+rt x1r = rt x3r = w-u; lft x2l = x1-4u;
+top y1=h; y2=.5[y1,y3]=axis;
+filldraw z1l{curl 4}..z2l..{curl 4}z3l--
+ z3r{curl 4}..z2r..{curl 4}z1r--cycle;
+labels.top(3,2);
+labels.bot(1);
+labels.lft(1l,2l,3l);
+labels.rt(1r,2r,3r);
+endchar;
+
+"Figure 12d"; % cmssdc10 left parenthesis
+u#:=19/36pt#;
+tiny#:=8/36pt#;
+axis#:=95/36pt#;
+hheight#:=250/36pt#;
+border#:=20/36pt#;
+hair#:=23/36pt#;
+thin#:=40/36pt#;
+thick#:=40/36pt#;
+slant:=0;
+
+font_setup;
+beginchar("(",7u#, hheight#+border#, hheight#+border#-2axis#);
+italcorr (hheight#+border#)*slant-.5u#;
+pickup tinypen;
+penpos1(hair-tiny,0); penpos3(hair-tiny,0);
+penpos2(.75[thin,thick]-tiny,0);
+rt x1r = rt x3r = w-u; lft x2l = x1-4u;
+top y1=h; y2=.5[y1,y3]=axis;
+filldraw z1l{curl 4}..z2l..{curl 4}z3l--
+ z3r{curl 4}..z2r..{curl 4}z1r--cycle;
+labels.top(3,2);
+labels.bot(1);
+labels.lft(1l,2l,3l);
+labels.rt(1r,2r,3r);
+endchar;
+
+"Figure 12e"; % cmti10 left parenthesis
+u#:=18.4/36pt#;
+tiny#:=7/36;
+axis#:=90/36pt#;
+hheight#:=250/36pt#;
+border#:=20/36pt#;
+hair#:=8/36pt#;
+thin#:=11/36pt#;
+thick#:=23/36pt#;
+slant:=.25;
+
+font_setup;
+beginchar("(",7u#, hheight#+border#, hheight#+border#-2axis#);
+italcorr (hheight#+border#)*slant-.5u#;
+pickup tinypen;
+penpos1(hair-tiny,0); penpos3(hair-tiny,0);
+penpos2(.75[thin,thick]-tiny,0);
+rt x1r = rt x3r = w-u; lft x2l = x1-4u;
+top y1=h; y2=.5[y1,y3]=axis;
+filldraw z1l{curl 4}..z2l..{curl 4}z3l--
+ z3r{curl 4}..z2r..{curl 4}z1r--cycle;
+labels.top(3,2);
+labels.bot(1);
+labels.lft(1l,2l,3l);
+labels.rt(1r,2r,3r);
+endchar;
+currenttransform:=identity yscaled aspect_ratio;
+
+"Figure 12f"; % Dangerous bend symbol
+def font_setup=
+define_pixels(u,tiny,axis,hheight,border);
+define_blacker_pixels(hair,thin,thick,rulethickness);
+pickup if tiny<.5: nullpen else: pencircle scaled tiny fi;
+tinypen:=savepen;
+currenttransform:=identity slanted slant;
+enddef;
+
+% typical cmr10 parameters
+u#:=20/36pt#;
+tiny#:=0;
+axis#:=90/36pt#;
+hheight#:=250/36pt#;
+border#:=20/36pt#;
+hair#:=8/36pt#;
+thin#:=9/36pt#;
+thick#:=25/36pt#;
+fixwidth:=0;
+slant:=0;
+rulethickness#:=.4pt#;
+
+baselinedistance#:=11pt#;
+heavyline#:=50/36pt#;
+font_setup;
+define_whole_pixels(baselinedistance);
+define_blacker_pixels(heavyline);
+
+beginchar(127,25u#,hheight#+border#,0);
+pickup pencircle scaled rulethickness;
+top y1=25/27h; lft x4=0;
+x1+x1=x1a+x1b=x4b+x2a=x4+x2=x4a+x2b=x3b+x3a=x3+x3=w;
+x4a=x4b=x4+u; x3b=x1a=x1-2u;
+y4+y4=y4a+y4b=y3b+y1a=y3+y1=y3a+y1b=y2b+y2a=y2+y2=0;
+y1a=y1b=y1-2/27h; y4b=y2a=y4+4/27h;
+draw z1a..z1..z1b---z2a..z2..z2b---
+ z3a..z3..z3b---z4a..z4..z4b---cycle; % signboard
+x10=x11=x12=x13=good.x(.5w-u); x14=x15=x16=x17=w-x10;
+y10=y14=28/27h+epsilon; bot y13=-baselinedistance;
+z11=(z10..z13) intersectionpoint (z1a{z1a-z4b}..z1{right});
+y15=y11; y16=y12=-y11; y17=y20=y21=y13;
+draw z11--z10--z14--z15; draw z12--z13; draw z16--z17; % signpost
+x20=w-x21; x21-x20=16u; draw z20--z21; % ground level
+x36=w-x31; x36-x31=8u; x32=x33=x36; x31=x34=x35;
+y31=-y36=12/27h; y32=-y35=9/27h; y33=-y34=3/27h;
+pickup pencircle scaled heavyline;
+draw z32{z32-z31}..z33---z34..z35{z36-z35}; % the dangerous bend
+pickup penrazor xscaled heavyline rotated (angle(z32-z31)+90);
+draw z31--z32; draw z35--z36; % upper and lower bars
+labels.top(11,15,2a,4b,4,2,32,34);
+labels.bot(10,14,2b,4a,33,35);
+labels.lft(1a,3b,12,13,21,36);
+labels.rt(1,1b,3a,3,16,20,17,31);
+endchar;
+
+"Figure 13a"; % Possible cube
+clear_all;
+fudge_factor:=1/2;
+s#:=5pt#*fudge_factor; define_pixels(s); % side of the square
+z1=(-epsilon,-epsilon); z2=(s+epsilon,-epsilon);
+ z3=(-epsilon,s+epsilon); z4=(s+epsilon,s+epsilon);
+for k=1 upto 4: z[k+4]=z[k]+(2/3s,1/3s); endfor
+pickup pencircle scaled (.4pt*fudge_factor);
+draw z5--z6--z8--z7--cycle;
+pickup pencircle scaled (1.6pt*fudge_factor);
+erase draw z2--z4--z3;
+pickup pencircle scaled (.4pt*fudge_factor);
+draw z1--z2--z4--z3--cycle;
+for k=1 upto 4: draw z[k]--z[k+4]; endfor
+labels.top(1,2,5,6);
+labels.bot(3,4,7,8);
+showit;
+shipit;
+
+"Figure 14a"; % El Palo Alto
+begingroup save flex; clear_all;
+def flex(text t) = % puts dots into normal flex
+ hide(n_:=0;
+ for z=t: z_[incr n_]:=z; makelabel("",z); endfor
+ dz_:=z_[n_]-z_1)
+ z_1 for k=2 upto n_-1: ...z_[k]{dz_} endfor ...z_[n_] enddef;
+
+def grid= proofoffset (30,0);
+ for y:=0 step 50 until 650: proofrule((-110,y),(110,y));
+ makelabel.lft.nodot(str[y],(100,y+5));
+ endfor;
+ for x:=-100 step 50 until 100: proofrule((x,-10),(x,660));endfor enddef;
+
+path branch[],trunk;
+
+branch1=
+ flex((0,660),(-9,633),(-22,610))
+ &flex((-22,610),(-3,622),(17,617))
+ &flex((17,617),(7,637),(0,660))
+ &cycle;
+
+branch2=
+ flex((30,570),(10,590),(-1,616))
+ &flex((-1,616),(-11,592),(-29,576),(-32,562))
+ &flex((-32,562),(-10,577),(30,570))
+ &cycle;
+
+branch3=
+ flex((-1,570),(-17,550),(-40,535))
+ &flex((-40,535),(-45,510),(-60,477))
+ &flex((-60,477),(-20,505),(40,512))
+ &flex((40,512),(31,532),(8,550),(-1,570))
+ &cycle;
+
+branch4=
+ flex((0,509),(-14,492),(-32,481))
+ &flex((-32,481),(-42,455),(-62,430))
+ &flex((-62,430),(-20,450),(42,448))
+ &flex((42,448),(38,465),(4,493),(0,509))
+ &cycle;
+
+branch5=
+ flex((-22,470),(-23,435),(-44,410))
+ &flex((-44,410),(-10,421),(35,420))
+ &flex((35,420),(15,455),(-22,470))
+ &cycle;
+
+branch6=
+ flex((18,375),(9,396),(5,420))
+ &flex((5,420),(-5,410),(-50,375),(-50,350))
+ &flex((-50,350),(-25,375),(18,375))
+ &cycle;
+
+branch7=
+ flex((0,400),(-13,373),(-30,350))
+ &flex((-30,350),(0,358),(30,350))
+ &flex((30,350),(13,373),(0,400))
+ &cycle;
+
+branch8=
+ flex((50,275),(45,310),(3,360))
+ &flex((3,360),(-20,330),(-70,300),(-100,266))
+ &flex((-100,266),(-75,278),(-60,266))
+ &flex((-60,266),(0,310),(50,275))
+ &cycle;
+
+branch9=
+ flex((10,333),(-15,290),(-43,256))
+ &flex((-43,256),(8,262),(58,245))
+ &flex((58,245),(34,275),(10,333))
+ &cycle;
+
+branch10=
+ flex((8,262),(-21,249),(-55,240))
+ &flex((-55,240),(-51,232),(-53,220))
+ &flex((-53,220),(-28,229),(27,235))
+ &flex((27,235),(16,246),(8,262))
+ &cycle;
+
+branch11=
+ flex((0,250),(-25,220),(-70,195))
+ &flex((-70,195),(-78,180),(-90,170))
+ &flex((-90,170),(-5,188),(74,183))
+ &flex((74,183),(34,214),(0,250))
+ &cycle;
+
+branch12=
+ flex((8,215),(-35,175),(-72,155))
+ &flex((-72,155),(-75,130),(-92,110),(-95,88))
+ &flex((-95,88),(-65,117),(-54,104))
+ &flex((-54,104),(10,151),(35,142))..flex((42,130),(60,123),(76,124))
+ &flex((76,124),(62,146),(26,180),(8,215))&cycle;
+
+trunk=(0,660)---(-12,70)..{curl 5}(-28,-8)
+ &flex((-28,-8),(-16,-4),(-10,-11))
+ &flex((-10,-11),(0,-5),(14,-10))
+ &flex((14,-10),(20,-6),(29,-11))
+ &(29,-11){curl 4}..(10,100)---cycle;
+
+makelabel("",(-12,70));
+makelabel("",(10,100));
+
+pickup pencircle scaled 2;
+draw trunk;
+for n=1 upto 12: draw branch[n]; endfor
+grid;
+showit;shipit;
+endgroup;
+
+"Figure 14b"; % Detail of one branch
+clear_all;
+pair zz[];
+zz1=(0,509);
+zz2=(-14,492);
+zz3=(-32,481);
+zz4=(-42,455);
+zz5=(-62,430);
+zz6=(-20,450);
+zz7=(42,448);
+zz8=(38,465);
+zz9=(4,493);
+for n=1 upto 9: z[n]=(zz[n]+(62,-430)) scaled 2.5; endfor
+pickup pencircle;
+filldraw flex(z1,z2,z3)&flex(z3,z4,z5)
+ &flex(z5,z6,z7)&flex(z7,z8,z9,z1)&cycle;
+labels.lft(2,3,4,5);
+labels.rt(1,7,8,9);
+labels.bot(6);
+showit; shipit;
+
+"Figure 14c"; % superellipses
+clear_all;
+w:=100; h:=150;
+pickup pencircle xscaled 0.7pt yscaled 0.2pt rotated 30;
+forsuffixes ss=65,70,75,80: s:=ss/100;
+draw superellipse((w,.5h),(.5w,h),(0,.5h),(.5w,0),s) shifted (150/.05(s-.65),0);
+makelabel.top.nodot("."&str ss,(.5w,.45h) shifted (150/.05(s-.65),0));
+endfor
+showit;
+shipit;
+
+"Figure 14d"; % demo of joinery
+clear_all;
+pickup standardpen;
+z0=(0,100); z1=(50,0); z2=(180,0);
+for n=3 upto 9: z[n]=z[n-3]+(200,0); endfor
+draw z0..z1---z2...{up}z3
+ & z3..z4--z5...{up}z6
+ & z6...z7---z8..{up}z9;
+makelabel.bot("0 ",z0);
+makelabel.bot("6 ",z6);
+labels.bot(3,9);
+labels.rt(1,4,7);
+labels.lft(2,5,8);
+showit;
+shipit;
+
+"Figure 14e"; % JofA logo
+beginchar("A",29mm#*.22,25mm#*.22,0);
+interim autorounding:=0; interim smoothing:=0;
+if odd(w-h): h:=h-1; fi
+thick#:=2mm#*.22; thin#:=5/4mm#*.22;
+define_whole_blacker_pixels(thick,thin);
+forsuffixes @=a,b,c: transform @;
+ forsuffixes e=l,r: path @e,@'e; numeric t@[]e; endfor endfor
+penpos1(thick,0); penpos2(thick,90); penpos3(thick,180); penpos4(thick,270);
+penpos5(thick,0); penpos6(thick,90); penpos7(thick,180); penpos8(thick,270);
+x2=x4=x6=x8=.5[x5,x7]=.5w; x1r=w; x3r=0; x5-x7=y6-y8;
+y1=y3=y5=y7=.5[y6,y8]=.5h; y2r=h; y4r=0; y6r=round.75h;
+forsuffixes e=l,r: a.e=b'e=c'e=superellipse(z1e,z2e,z3e,z4e,.75);
+ a'e=b.e=c.e=superellipse(z5e,z6e,z7e,z8e,.72); endfor
+penpos.a1(thin,0); penpos.a5(whatever,-90); penpos.a9(thin,180);
+x.a1l-x.a9l=1/3(x5l-x7l); x.a5=.5w; y.a1=y.a9; y.a5r=4/7h;
+x.a3l=x.a1l; x.a3r=x.a1r; x.a4r=1/6[x.a3r,x1l]; x0=.5w; y0=.52h;
+x.a6l+x.a4l=x.a6r+x.a4r=x.a7l+x.a3l=x.a7r+x.a3r=x.a9+x.a1=w;
+y.a3r=y.a4r=y.a6r=y.a7r=.2[y2l,y0]; y.a3l=y.a4l=y.a6l=y.a7l=y.a3r-thin;
+z.a4l=z.a4r+(thin,0)rotated(angle(z.a4r-z.a5r)+90)
+ +whatever*(z.a4r-z.a5r); z.a4l-z.a5l=whatever*(z.a4r-z.a5r);
+z=a.r intersectionpoint (z0--(w,0)); y.a1-y.a5=length(z-z0);
+b=identity shifted(0,y0-y.a1)rotatedaround(z0,90-angle(z0-(w,0)));
+c=b reflectedabout (z2,z4);
+for n=1,3,4,5,6,7,9: forsuffixes e=l,,r: forsuffixes @=b,c:
+ z@[n]e=z.a[n]e transformed @; endfor endfor endfor
+forsuffixes e=l,r: forsuffixes @=a,b,c:
+ z@2e=@r intersectionpoint (z@1e--z@3e);
+ z@8e=@r intersectionpoint (z@9e--z@7e);
+ t@1e=xpart(@e intersectiontimes (z@1l--z@3l));
+ t@9e=xpart(@e intersectiontimes (z@9l--z@7l));
+ t@4e=xpart(@'e intersectiontimes (z@5r--z@4l));
+ t@6e=xpart(@'e intersectiontimes (z@5r--z@6l)); endfor endfor
+penstroke subpath(t.a9e,t.b6e) of a.e;
+penstroke subpath(t.b4e,t.c4e) of b'e;
+penstroke subpath(t.c6e,t.a1e+8) of c'e;
+penstroke subpath(t.a6e,t.b9e) of a'e;
+penstroke subpath(t.b1e,t.c1e) of b.e;
+penstroke subpath(t.c9e,t.a4e+8) of c.e;
+forsuffixes @=a,b,c:
+ penstroke z@2e--z@3e--z@4e--z@5e--z@6e--z@7e--z@8e; endfor
+labels.lft(0,1l,3r,3,5l,7r,7,a1l,a2l,a3l,a6l,
+ a6r,a8r,a9r,b2l,b5,b5r,b9,c1,c2r,c5l);
+labels.rt(1,1r,3l,5,5r,7l,a1r,a2r,a4l,a4r,a7l,
+ a9l,b1,b2r,b5l,c2l,c5,c5r,c9);
+labels.top(2r,2,2l,4l,6r,6,6l,8l,a3r,a7r,a8l,
+ b1l,b3l,b3r,b6r,b6l,b8r,b9r,c1l,c3l,c3r,c6r,c6l,c8r,c9r);
+labels.bot(2r,2,2l,4,4r,8,8r,a1,a5l,a5,a5r,a9,
+ b1r,b4l,b4r,b7l,b7r,b8l,c1r,c4l,c4r,c7l,c7r,c8l);
+makelabel("",z.b9l);
+makelabel("",z.c9l);
+makelabel.lft.nodot("b9l",z.b9l-(0,3));
+makelabel.rt.nodot("c9l",z.c9l-(0,3));
+endchar;
+
+"Figure 15a"; % four u's
+beginchar("4",11pt#,11pt#,0);
+pickup pencircle scaled 3/4pt yscaled 1/3 rotated 30;
+save t; transform t;
+t=identity rotatedaround((.5w,.5h),-90);
+x2=.35w; x3=good.x .6w;
+y2=good.y .1h; top y3=round .4h+eps;
+save p; path p; p=z2{right}...{up}z3;
+top z1=point .5 of p transformed t;
+draw z1...z2{right}...{up}z3;
+addto currentpicture also currentpicture transformed t;
+addto currentpicture also currentpicture transformed(t transformed t);
+labels.bot(1,3); labels.rt(2); endchar;
+
+"Figure 16a"; % circular pen polygon
+clear_all;
+path p;
+p=makepath(pencircle scaled 20) scaled 10 shifted (110,110);
+if length p<>32: error; fi
+fill p;
+for k=1 upto length p: heavy_dot point k of p; endfor
+for x=0 step 10 until 220: proofrule((x,0),(x,220)); endfor
+for y=0 step 10 until 220: proofrule((0,y),(220,y)); endfor
+proofrulethickness .8;
+proofrule ((0,110),(220,110)); proofrule ((110,0),(110,220));
+showit;
+shipit;
+
+"Figure 16b"; % elliptical pen polygon
+clear_all;
+path p;
+p=makepath(pencircle xscaled 30 yscaled 20) scaled 10 shifted (160,110);
+if length p<>40: error; fi
+fill p;
+for k=1 upto length p: heavy_dot point k of p; endfor
+for x=0 step 10 until 320: proofrule((x,0),(x,220)); endfor
+for y=0 step 10 until 220: proofrule((0,y),(320,y)); endfor
+proofrulethickness .8;
+proofrule ((0,110),(320,110)); proofrule ((160,0),(160,220));
+showit;
+shipit;
+
+"Figure 16c"; % elliptical pen hexagon
+clear_all;
+path p;
+p=makepath((pencircle xscaled 30) yscaled 20) scaled 10 shifted (160,110);
+if length p<>6: error; fi
+fill p;
+for k=1 upto length p: heavy_dot point k of p; endfor
+for x=0 step 10 until 320: proofrule((x,0),(x,220)); endfor
+for y=0 step 10 until 220: proofrule((0,y),(320,y)); endfor
+proofrulethickness .8;
+proofrule ((0,110),(320,110)); proofrule ((160,0),(160,220));
+showit;
+shipit;
+
+"Figure 16d"; % cutoff version of Figure 3n
+clear_all;
+z1=(0,100); z2=(100,100); z3=(200,100);
+z4=(0,0); z5=(100,0); z6=(200,0);
+path p; p=z4..controls z1 and z2..z6;
+cutdraw p;
+makelabel.rt.nodot("1",z1+(2,0));
+makelabel.rt.nodot("2",z2+(2,0));
+makelabel.rt.nodot("3",z3+(2,0));
+makelabel.rt.nodot(" 4",z4);
+makelabel.rt.nodot("5",z5+(2,0));
+makelabel.rt.nodot(" 6",z6);
+for k=1 upto 6: heavy_dot z[k]; endfor;
+showit;
+shipit;
+
+"Figure 16e"; % cutoff version of Figure 4b
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+numeric h#, xx#, yy#, o#, s#, u#, ph#, pv#;
+numeric leftstemloc, barheight;
+ h#=6; % height of characters, in pt
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ ph#=2/3; % horizontal thickness of pen, in pt
+yy#=xx#; define_whole_pixels(xx,yy);
+define_pixels(s,u);
+define_corrected_pixels(o);
+pv#=.9ph#; define_blacker_pixels(ph,pv);
+pickup pencircle xscaled ph yscaled pv;
+logo_pen:=savepen;
+leftstemloc:=good.x((2.5u#+s#)*pt);
+barheight:=good.y(alpha*h#*pt);
+def beginlogochar(suffix c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(str c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+
+beginlogochar(T,13);
+if odd(w-ph): w:=w+1; fi % allows a symmetric stem
+x1+x2=2x3=2x4=w; lft.x1=0;
+y1=y2=y3; top.y1=h; y4=0;
+draw z1--z2;
+cutoff(z1,170);
+cutoff(z2,-10);
+draw z3--z4;
+cutoff(z4,-80);
+labels.rt(1);
+labels.lft(2);
+labels.bot(3);
+makelabel.top("4",z4);
+endchar;
+
+"Figure 16f"; % tilde with pencircle
+clear_all;
+pickup pencircle xscaled .8pt yscaled .2pt rotated 50;
+z1=(0,0); z4=(200,30);
+z2-z1=z4-z3=whatever*dir 50;
+y2-y1=3(y4-y1);
+draw z1..controls z2 and z3..z4;
+makelabel.lft("1 ",z1);
+makelabel.rt(" 4",z4);
+showit;
+shipit;
+
+"Figure 16g"; % tilde with pensquare
+clear_all;
+pickup pensquare xscaled .8pt yscaled .2pt rotated 50;
+z1=(0,0); z4=(200,30);
+z2-z1=z4-z3=whatever*dir 50;
+y2-y1=3(y4-y1);
+draw z1..controls z2 and z3..z4;
+makelabel.lft("1 ",z1);
+makelabel.rt(" 4",z4);
+showit;
+shipit;
+
+"Figure 16h"; % fancy serif with pencircle
+clear_all;
+pickup pencircle xscaled .8pt yscaled .2pt rotated 20;
+z1=(20,175); bot z3=(0,0);
+z4=(50,0); z6=(25,175);
+x2=x1; z2=z3+whatever*dir 20;
+x5=x6; z5=z4+whatever*dir -20;
+pair dishing; dishing=(8,0) rotated 20;
+filldraw z1..controls z2..z3
+--(flex(z3,.5[z3,z4]+dishing,z4))shifted(0,-epsilon)
+-- z4..controls z5..z6--cycle;
+showit;
+labels.lft(1,2,3);
+labels.rt(4,5,6);
+shipit;
+
+"Figure 16i"; % fancy serif with pensquare
+clear_all;
+pickup pensquare xscaled .8pt yscaled .2pt rotated 20;
+z1=(20,175); bot z3=(0,0);
+z4=(50,0); z6=(25,175);
+x2=x1; z2=z3+whatever*dir 20;
+x5=x6; z5=z4+whatever*dir -20;
+pair dishing; dishing=(8,0) rotated 20;
+filldraw z1..controls z2..z3
+--(flex(z3,.5[z3,z4]+dishing,z4))shifted(0,-epsilon)
+-- z4..controls z5..z6--cycle;
+showit;
+labels.lft(1,2,3);
+labels.rt(4,5,6);
+shipit;
+
+"Figure 18a"; % O of METAFONT logo
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+numeric h#, xx#, yy#, o#, s#, u#, ph#, pv#;
+numeric leftstemloc, barheight;
+ h#=6; % height of characters, in pt
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ ph#=2/3; % horizontal thickness of pen, in pt
+yy#=xx#; define_whole_pixels(xx,yy);
+define_pixels(s,u);
+define_corrected_pixels(o);
+pv#=.9ph#; define_blacker_pixels(ph,pv);
+pickup pencircle xscaled ph yscaled pv;
+logo_pen:=savepen;
+leftstemloc:=good.x((2.5u#+s#)*pt);
+barheight:=good.y(alpha*h#*pt);
+def beginlogochar(expr c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+
+def super_half(suffix i,j,k) =
+ draw z.i{0,y.j-y.i}
+ ... (.8[x.j,x.i],.8[y.i,y.j]){z.j-z.i}
+ ... z.j{x.k-x.i,0}
+ ... (.8[x.j,x.k],.8[y.k,y.j]){z.k-z.j}
+ ... z.k{0,y.k-y.j} enddef;
+
+beginlogochar("O",15);
+x1=x4=.5w; top y1=h+o; bot y4=-o;
+x2=w-x3=good.x(1.5u+s);
+y2=y3=barheight;
+super_half(2,1,3); super_half(3,4,2);
+labels.lft(2); labels.rt(1,3,4); endchar;
+
+"Figure A18a"; % A of METAFONT logo
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+numeric h#, xx#, yy#, o#, s#, u#, ph#, pv#;
+numeric leftstemloc, barheight;
+ h#=6; % height of characters, in pt
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ ph#=2/3; % horizontal thickness of pen, in pt
+yy#=xx#; define_whole_pixels(xx,yy);
+define_pixels(s,u);
+define_corrected_pixels(o);
+pv#=.9ph#; define_blacker_pixels(ph,pv);
+pickup pencircle xscaled ph yscaled pv;
+logo_pen:=savepen;
+leftstemloc:=good.x((2.5u#+s#)*pt);
+barheight:=good.y(alpha*h#*pt);
+def beginlogochar(expr c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+
+def super_half(suffix i,j,k) =
+ draw z.i{0,y.j-y.i}
+ ... (.8[x.j,x.i],.8[y.i,y.j]){z.j-z.i}
+ ... z.j{x.k-x.i,0}
+ ... (.8[x.j,x.k],.8[y.k,y.j]){z.k-z.j}
+ ... z.k{0,y.k-y.j} enddef;
+
+beginlogochar("A",15);
+x1=.5w;
+x2=x4=leftstemloc;
+x3=x5=w-x2;
+top y1=h+o;
+y2=y3=barheight;
+bot y4=bot y5=-o;
+draw z4--z2--z3--z5;
+super_half(2,1,3);
+labels.top(2,3,4,5);
+labels.rt(1);
+endchar;
+
+"Figure 18b"; % serif points
+clear_all;
+def serif(suffix $)(expr breadth,theta,left_jut,right_jut)=
+ penpos$(breadth/abs sind theta,0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta<0:-fi slab;
+x$b=x$c=x$l-left_jut; x$d=x$e=x$r+right_jut;
+enddef;
+
+def serif_edge suffix $ =
+ (serif_bracket($a,$l,$b)--z$c
+ --z$d--reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket(suffix i,j,k) =
+ (z.i{z.j-z.i}...serif_darkness[z.j,.5[z.i,z.k] ]{z.k-z.i}
+ ...z.k{z.k-z.j}) enddef;
+
+serif_darkness:=1/4; slab:=50; bracket:=175;
+z$=(150,slab);
+serif($,100,75,80,90);
+pickup pencircle scaled 2; draw serif_edge $;
+labels.lft($l,$a);
+labels.rt($,$r,$f);
+labels.top($b,$e);
+labels.bot($c,$d);
+showit;
+shipit;
+
+"Figure 18c"; % AI by outlines
+clear_all;
+def serif(suffix $)(expr breadth,theta,left_jut,right_jut)=
+ penpos$(breadth/abs sind theta,0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta<0:-fi slab;
+x$b=x$c=x$l-left_jut; x$d=x$e=x$r+right_jut;
+enddef;
+
+def serif_edge suffix $ =
+ (serif_bracket($a,$l,$b)--z$c
+ --z$d--reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket(suffix i,j,k) =
+ (z.i{z.j-z.i}...serif_darkness[z.j,.5[z.i,z.k] ]{z.k-z.i}
+ ...z.k{z.k-z.j}) enddef;
+
+serif_darkness:=1/3;
+slab#:=1/4pt#;
+bracket#:=1pt#;
+jut#:=.9pt#;
+u#:=3/5pt#;
+ht#:=7pt#;
+thin#:=.5pt#;
+thick#:=1.1pt#;
+define_pixels(slab,bracket,jut,u,ht,thin,thick);
+
+beginchar("A",13u#,ht#,0);
+z1=(.5w,round 1.05h); x4l=w-x5r=u; y4l=y5r=slab;
+numeric theta[]; theta4=angle(z1-z4l); theta5=angle(z1-z5r);
+serif(4,thin,theta4,.6jut,jut); serif(5,thick,theta5,jut,.6jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+fill z1--serif_edge4--z0 & z0--serif_edge5--z1 & cycle;
+penpos2(whatever,theta4); penpos3(whatever,theta5);
+y2r=y3r=.5[y4,y0]; y2l=y3l=y2r-thin;
+z2=whatever[z1,z4r]; z3=whatever[z1,z5l];
+penstroke z2e--z3e;
+labels.lft(3,5l,5,4a,5a);
+labels.rt(2,4r,4f,5f);
+labels.top(1,2r,3r,4l,5r,4b,4e,5b,5e);
+labels.bot(0,2l,3l,4,4c,4d,5c,5d);
+
+ww:=w; % special hacks to get two on one
+picture tmp; tmp:=currentpicture;
+proofrule((w,-d.o_),(w,h.o_));
+endgroup;
+
+beginchar("I",6u#,ht#,0);
+currentpicture:=tmp;
+currenttransform:=currenttransform shifted(ww,0);
+x1=x2=.5w; y1=h-y2; y2=slab;
+serif(1,thick,-90,1.1jut,1.1jut); serif(2,thick,90,1.1jut,1.1jut);
+fill serif_edge 2 -- reverse serif_edge 1 -- cycle;
+w:=w+ww;
+labels.lft(1a,2a,1l);
+labels.rt(1f,2f,1,1r);
+labels.top(2l,2,2r,2e,1c,1d);
+labels.bot(2d,1b,1e);
+makelabel("",z2b); makelabel("",z2c);
+makelabel.rt.nodot("2b",z2b+(0,3));
+makelabel.rt.nodot("2c",z2c-(0,3));
+endchar;
+
+currenttransform:=identity yscaled aspect_ratio;
+
+"Figure A18b"; % H by outlines
+clear_all;
+def serif(suffix $)(expr breadth,theta,left_jut,right_jut)=
+ penpos$(breadth/abs sind theta,0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d; y$b=y$e=y$; y$b-y$c=if theta<0:-fi slab;
+x$b=x$c=x$l-left_jut; x$d=x$e=x$r+right_jut;
+enddef;
+
+def serif_edge suffix $ =
+ (serif_bracket($a,$l,$b)--z$c
+ --z$d--reverse serif_bracket($f,$r,$e)) enddef;
+
+def serif_bracket(suffix i,j,k) =
+ (z.i{z.j-z.i}...serif_darkness[z.j,.5[z.i,z.k] ]{z.k-z.i}
+ ...z.k{z.k-z.j}) enddef;
+
+serif_darkness:=1/3;
+slab#:=1/4pt#;
+bracket#:=1pt#;
+jut#:=.9pt#;
+u#:=3/5pt#;
+ht#:=7pt#;
+thin#:=.5pt#;
+thick#:=1.1pt#;
+define_pixels(slab,bracket,jut,u,ht,thin,thick);
+
+beginchar("H",13u#,ht#,0);
+x1=x2=x5=3u; x3=x4=x6=w-x1; y1c=y3c=h; y2c=y4c=0;
+serif(1,thick,-90,jut,jut);
+serif(2,thick,90,jut,jut);
+serif(3,thick,-90,jut,jut);
+serif(4,thick,90,jut,jut);
+fill serif_edge 2 -- reverse serif_edge 1 -- cycle;
+fill serif_edge 4 -- reverse serif_edge 3 -- cycle;
+penpos5(thin,90); penpos6(thin,90);
+y5=y6=.52h; penstroke z5e--z6e;
+labels.lft(1a,2a,3a,4a,5,1,2,1l,2l,3l,4l);
+labels.rt(1f,2f,3f,4f,6,3,4,1r,2r,3r,4r);
+labels.top(1c,1d,2b,2e,4b,4e,3c,3d,5r,6r);
+labels.bot(1b,1e,2c,2d,4c,4d,3b,3e,5l,6l);
+endchar;
+
+"Figure 18d"; % AI by broadpen
+clear_all;
+def bot_serif(suffix $)(expr xx,theta,left_jut,right_jut)=
+ penpos$(xx,0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=top y$l; y$d=y$r; x$c=x$l-left_jut; x$d=x$r+right_jut;
+z$b=z$l+whatever*dir theta=z$c+whatever*dir phi;
+z$e=z$r+whatever*dir theta=z$d+whatever*dir -phi;
+enddef;
+
+def top_serif(suffix $)(expr xx,theta,left_jut,right_jut)=
+ penpos$(xx,0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+%y$c=top y$l; y$d=y$r; x$c=x$l-left_jut; x$d=x$r+right_jut;
+y$c=y$d=y$; x$c=x$l-left_jut; x$d=x$r+right_jut;
+z$b=z$l+whatever*dir theta=z$c+whatever*dir -phi;
+z$e=z$r+whatever*dir theta=z$d+whatever*dir phi;
+enddef;
+
+def bot_serif_edge suffix $ =
+ (z$a..controls z$b..z$c
+ --(flex(z$c,.5[z$c,z$d]+dishing,z$d)) shifted (0,-epsilon)
+ -- z$d..controls z$e..z$f) enddef;
+
+def top_serif_edge suffix $ =
+ (z$a..controls z$b..z$c
+ --(flex(z$c,.5[z$c,z$d]-dishing,z$d)) shifted (0,+epsilon)
+ -- z$d..controls z$e..z$f) enddef;
+
+phi:=20;
+pair dishing; dishing:=(1/4pt,0) rotated phi;
+bracket#:=1pt#;
+jut#:=.9pt#;
+u#:=3/5pt#;
+ht#:=7pt#;
+px#:=.8pt#;
+py#:=.2pt#;
+xx#:=.3pt#;
+define_pixels(bracket,jut,u,ht,px,py,xx);
+
+pickup pensquare xscaled px yscaled py rotated phi; broad_pen:=savepen;
+
+beginchar("A",13u#,ht#,0); pickup broad_pen;
+z1=(.5w,top h); lft x4l=w-rt x5r=1.2u; y4l=y5r=0;
+numeric theta[]; theta4=angle(z1-z4l); theta5=angle(z1-z5r);
+numeric xxx;
+px*sind(theta5-phi)+xxx*sind theta5 = px*cosd phi+xx;
+bot_serif(4,0,theta4,.8jut,.8jut);
+bot_serif(5,xxx,theta5,.6jut,.8jut);
+z0=z4r+whatever*dir theta4=z5l+whatever*dir theta5;
+filldraw z1--bot_serif_edge4--z0 & z0--bot_serif_edge5--z1 & cycle;
+top y2=top y3=.45 bot y0; z2=whatever[z1,z4r]; z3=whatever[z1,z5l];
+draw z2--z3;
+labels.lft(4a,4b,4c,4,5l,5a,5c);
+labels.rt(4f,4e,5r,5d,5e,5f);
+labels.top(1,2,3,5b);
+labels.bot(0,4d,5);
+
+ww:=w; % special hacks to get two on one
+picture tmp; tmp:=currentpicture;
+proofrule((w,-d.o_),(w,h.o_));
+endgroup;
+
+beginchar("I",6u#,ht#,0); pickup broad_pen;
+currentpicture:=tmp;
+currenttransform:=currenttransform shifted(ww,0);
+x1=x2=.5w; y1=h; y2=0;
+top_serif(1,xx,-90,1.1jut,1.1jut);
+bot_serif(2,xx,90,1.1jut,1.1jut);
+filldraw bot_serif_edge 2 -- reverse top_serif_edge 1 -- cycle;
+labels.lft(1l,2l,1a,1b,1c,2a,2b);
+labels.rt(1r,2r,1d,1e,1f,2d,2e,2f);
+labels.top(1);
+labels.bot(2,2c);
+w:=w+ww;
+endchar;
+
+currenttransform:=identity yscaled aspect_ratio;
+
+"Figure A18c"; % H by broadpen
+clear_all;
+def bot_serif(suffix $)(expr xx,theta,left_jut,right_jut)=
+ penpos$(xx,0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=top y$l; y$d=y$r; x$c=x$l-left_jut; x$d=x$r+right_jut;
+z$b=z$l+whatever*dir theta=z$c+whatever*dir phi;
+z$e=z$r+whatever*dir theta=z$d+whatever*dir -phi;
+enddef;
+
+def top_serif(suffix $)(expr xx,theta,left_jut,right_jut)=
+ penpos$(xx,0);
+z$a-z$l=z$f-z$r=(bracket/abs sind theta)*dir theta;
+y$c=y$d=y$; x$c=x$l-left_jut; x$d=x$r+right_jut;
+z$b=z$l+whatever*dir theta=z$c+whatever*dir -phi;
+z$e=z$r+whatever*dir theta=z$d+whatever*dir phi;
+enddef;
+
+def bot_serif_edge suffix $ =
+ (z$a..controls z$b..z$c
+ --(flex(z$c,.5[z$c,z$d]+dishing,z$d))shifted (0,-epsilon)
+ -- z$d..controls z$e..z$f) enddef;
+
+def top_serif_edge suffix $ =
+ (z$a..controls z$b..z$c
+ --(flex(z$c,.5[z$c,z$d]-dishing,z$d))shifted (0,+epsilon)
+ -- z$d..controls z$e..z$f) enddef;
+
+phi:=20;
+pair dishing; dishing:=(1/4pt,0) rotated phi;
+bracket#:=1pt#;
+jut#:=.9pt#;
+u#:=3/5pt#;
+ht#:=7pt#;
+px#:=.8pt#;
+py#:=.2pt#;
+xx#:=.3pt#;
+define_pixels(bracket,jut,u,ht,px,py,xx);
+
+pickup pensquare xscaled px yscaled py rotated phi; broad_pen:=savepen;
+
+beginchar("H",13u#,ht#,0); pickup broad_pen;
+x1=x2=x5=3u; x3=x4=x6=w-x1; y1=y3=h; y2=y4=0;
+top_serif(1,xx,-90,jut,jut);
+bot_serif(2,xx,90,jut,jut);
+top_serif(3,xx,-90,jut,jut);
+bot_serif(4,xx,90,jut,jut);
+filldraw bot_serif_edge 2 -- reverse top_serif_edge 1 -- cycle;
+filldraw bot_serif_edge 4 -- reverse top_serif_edge 3 -- cycle;
+y5=y6=.52h; draw z5--z6;
+labels.lft(l1,2l,3l,4l,1a,1b,1c,2a,2b,2c,3a,3b,3c,4a,4b,4c);
+labels.rt(1r,2r,3r,4r,1d,1e,1f,2d,2e,2f,3d,3e,3f,4d,4e,4f);
+labels.top(1,3);
+labels.bot(2,4,5,6);
+endchar;
+
+currenttransform:=identity yscaled aspect_ratio;
+
+"Figure 20a"; % example of `solve'
+clear_all;
+z1=(0,25); z2=(100,100); z3=(300,100); z4=(320,0);
+vardef upward(expr x)=
+ ypart direction 1 of (z1{z2-z1}..(x,y2)..{z4-z3}z4)>0 enddef;
+z=(solve upward(x2,x3),y2);
+pickup pencircle scaled 4;
+draw z1{z2-z1}..z..{z4-z3}z4;
+pickup pencircle scaled 2;
+draw z1--z2; draw z3--z4;
+makelabel.lft("z1 ",z1);
+makelabel.lft("z2 ",z2);
+makelabel.rt(" z3",z3);
+makelabel.rt(" z4",z4);
+makelabel.top.nodot("z",z+(0,2));
+forsuffixes $=1,2,3,4,: heavy_dot z$; endfor
+showit;
+shipit;
+
+"Figure 21a"; % N of METAFONT logo
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+numeric h#, xx#, yy#, o#, s#, u#, ph#, pv#;
+numeric leftstemloc, barheight;
+ h#=6; % height of characters, in pt
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ ph#=2/3; % horizontal thickness of pen, in pt
+yy#=xx#; define_whole_pixels(xx,yy);
+define_pixels(s,u);
+define_corrected_pixels(o);
+pv#=.9ph#; define_blacker_pixels(ph,pv);
+pickup pencircle xscaled ph yscaled pv;
+logo_pen:=savepen;
+leftstemloc:=good.x((2.5u#+s#)*pt);
+barheight:=good.y(alpha*h#*pt);
+def beginlogochar(expr c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+
+beginlogochar("N",15);
+x1+x4=x1+x3=x2+x5=w; x1=x2=leftstemloc;
+y1=y4=y3-yy; bot.y1=-o; y2=y5; top.y5=h+o;
+draw z1--z2--z3; draw z4..z5;
+labels.top(1,3,4);
+labels.bot(2,5);
+endchar;
+
+"Figure 21b"; % random N of METAFONT logo, nine-point size
+randomseed:=1;
+
+vardef noise=normaldeviate*.1pt enddef;
+
+ht#:=.9*6pt#;
+xgap#:=.9*0.6pt#;
+u#:=.91*4/9pt#;
+s#:=.08pt#;
+o#:=1/10pt#;
+px#:=.9*2/3pt#;
+ygap#:=(ht#/13.5u#)*xgap#;
+leftstemloc#:=2.5u#+s#;
+barheight#:=.45ht#;
+define_pixels(s,u,xgap,ygap,leftstemloc,barheight);
+py#:=.9px#; define_blacker_pixels(px,py);
+pickup pencircle xscaled px yscaled py; logo_pen:=savepen;
+define_corrected_pixels(o);
+
+def beginlogochar(expr c,n) =
+ beginchar(c,n*u#+2s#,ht#,0); pickup logo_pen enddef;
+
+beginlogochar("N",15);
+x1=leftstemloc+noise;
+x2=leftstemloc+noise;
+x4=w-leftstemloc+noise;
+x5=w-leftstemloc+noise;
+bot y1=noise-o;
+top y2=h+o+noise;
+y3=y4+ygap+noise;
+bot y4=noise-o;
+top y5=h+o+noise;
+z3=whatever[z4,z5];
+draw z1--z2--z3; draw z4--z5;
+labels.top(1,3,4);
+labels.bot(2,5);
+endchar;
+
+"Figure 21c"; % random N of METAFONT logo, nine-point size
+randomseed:=2;
+
+vardef noise=normaldeviate*.1pt enddef;
+
+ht#:=.9*6pt#;
+xgap#:=.9*0.6pt#;
+u#:=.91*4/9pt#;
+s#:=.08pt#;
+o#:=1/10pt#;
+px#:=.9*2/3pt#;
+ygap#:=(ht#/13.5u#)*xgap#;
+leftstemloc#:=2.5u#+s#;
+barheight#:=.45ht#;
+define_pixels(s,u,xgap,ygap,leftstemloc,barheight);
+py#:=.9px#; define_blacker_pixels(px,py);
+pickup pencircle xscaled px yscaled py; logo_pen:=savepen;
+define_corrected_pixels(o);
+
+def beginlogochar(expr c,n) =
+ beginchar(c,n*u#+2s#,ht#,0); pickup logo_pen enddef;
+
+beginlogochar("N",15);
+x1=leftstemloc+noise;
+x2=leftstemloc+noise;
+x4=w-leftstemloc+noise;
+x5=w-leftstemloc+noise;
+bot y1=noise-o;
+top y2=h+o+noise;
+y3=y4+ygap+noise;
+bot y4=noise-o;
+top y5=h+o+noise;
+z3=whatever[z4,z5];
+draw z1--z2--z3; draw z4--z5;
+labels.top(1,3,4);
+labels.bot(2,5);
+endchar;
+
+"Figure 21d"; % random N of METAFONT logo, nine-point size
+randomseed:=3;
+
+vardef noise=normaldeviate*.1pt enddef;
+
+ht#:=.9*6pt#;
+xgap#:=.9*0.6pt#;
+u#:=.91*4/9pt#;
+s#:=.08pt#;
+o#:=1/10pt#;
+px#:=.9*2/3pt#;
+ygap#:=(ht#/13.5u#)*xgap#;
+leftstemloc#:=2.5u#+s#;
+barheight#:=.45ht#;
+define_pixels(s,u,xgap,ygap,leftstemloc,barheight);
+py#:=.9px#; define_blacker_pixels(px,py);
+pickup pencircle xscaled px yscaled py; logo_pen:=savepen;
+define_corrected_pixels(o);
+
+def beginlogochar(expr c,n) =
+ beginchar(c,n*u#+2s#,ht#,0); pickup logo_pen enddef;
+
+beginlogochar("N",15);
+x1=leftstemloc+noise;
+x2=leftstemloc+noise;
+x4=w-leftstemloc+noise;
+x5=w-leftstemloc+noise;
+bot y1=noise-o;
+top y2=h+o+noise;
+y3=y4+ygap+noise;
+bot y4=noise-o;
+top y5=h+o+noise;
+z3=whatever[z4,z5];
+draw z1--z2--z3; draw z4--z5;
+labels.top(1,3,4);
+labels.bot(2,5);
+endchar;
+
+"Figure 24a"; % Ionian O at 200 pixels/inch
+ss:=10;
+begingroup interim hppp:=200/72.27; % lowres parameters
+interim blacker:=.65; % make pens a bit blacker
+interim o_correction:=.4; % but don't overshoot as much
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=1/3pt#; thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+ curve_sidebar:=round 1/18em;
+pair u,uu,v;
+beginchar("O",0.8em#,cap#,0);
+ penpos1(thick,10); penpos2(.1[thin,thick],90-10);
+ penpos3(thick,180+10); penpos4(thin,270-10);
+ x1l=w-x3l=curve_sidebar; x2=x4=.5w;
+ y1=.49h; y2l=-o; y3=.51h; y4l=h+o;
+ penstroke (z1e{down}..z2e{right}
+ ..z3e{up}..z4e{left}..cycle) scaled ss;
+for m=0 upto w: proofrule((m*ss,0),(m*ss,h*ss)); endfor
+for n=0 upto h: proofrule((0,n*ss),(w*ss,n*ss)); endfor
+proofrulethickness 1;
+forsuffixes e=l,r:
+ u:=round((point 0 of path_.e)/ss);
+ for t=0 step 1/64 until 4:
+ v:=round((point t of path_.e)/ss);
+ if u<>v: if abs(u-v)=1: proofrule(u*ss,v*ss);
+ else: del:=1/128; tt:=t-del;
+ forever: uu:=round((point tt of path_.e)/ss);
+ exitif abs(u-uu)=1;
+ if del=epsilon:ddt;fi
+ del:=del/2;
+ tt:=tt if uu=u:+ else:-fi del; endfor
+ proofrule(u*ss,uu*ss); proofrule(uu*ss,v*ss); fi
+ u:=v; fi endfor
+ endfor
+showit;
+shipit;
+endgroup;
+endgroup;
+numeric u,uu,v;
+
+"Figure 24b"; % Ionian O at 200 pixels/inch, unrounded position
+ss:=10;
+begingroup interim hppp:=200/72.27; % lowres parameters
+interim blacker:=.65; % make pens a bit blacker
+interim o_correction:=.4; % but don't overshoot as much
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=1/3pt#; thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+ curve_sidebar:= 1/18em;
+pair u,uu,v;
+beginchar("O",0.8em#,cap#,0);
+ penpos1(thick,10); penpos2(.1[thin,thick],90-10);
+ penpos3(thick,180+10); penpos4(thin,270-10);
+ x1l=w-x3l=curve_sidebar; x2=x4=.5w;
+ y1=.49h; y2l=-o; y3=.51h; y4l=h+o;
+ penstroke (z1e{down}..z2e{right}
+ ..z3e{up}..z4e{left}..cycle) scaled ss;
+for m=0 upto w: proofrule((m*ss,0),(m*ss,h*ss)); endfor
+for n=0 upto h: proofrule((0,n*ss),(w*ss,n*ss)); endfor
+proofrulethickness 1;
+forsuffixes e=l,r:
+ u:=round((point 0 of path_.e)/ss);
+ for t=0 step 1/64 until 4:
+ v:=round((point t of path_.e)/ss);
+ if u<>v: if abs(u-v)=1: proofrule(u*ss,v*ss);
+ else: del:=1/128; tt:=t-del;
+ forever: uu:=round((point tt of path_.e)/ss);
+ exitif abs(u-uu)=1;
+ if del=epsilon:ddt;fi
+ del:=del/2;
+ tt:=tt if uu=u:+ else:-fi del; endfor
+ proofrule(u*ss,uu*ss); proofrule(uu*ss,v*ss); fi
+ u:=v; fi endfor
+ endfor
+showit;
+shipit;
+endgroup;
+endgroup;
+numeric u,uu,v;
+
+"Figure 24c"; % Fig 24b shifted right .05 pixel
+ss:=10;
+begingroup interim hppp:=200/72.27; % lowres parameters
+interim blacker:=.65; % make pens a bit blacker
+interim o_correction:=.4; % but don't overshoot as much
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=1/3pt#; thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+ curve_sidebar:= 1/18em;
+pair u,uu,v;
+beginchar("O",0.8em#,cap#,0);
+ penpos1(thick,10); penpos2(.1[thin,thick],90-10);
+ penpos3(thick,180+10); penpos4(thin,270-10);
+ x1l=w-x3l=curve_sidebar; x2=x4=.5w;
+ y1=.49h; y2l=-o; y3=.51h; y4l=h+o;
+ penstroke (z1e{down}..z2e{right}
+ ..z3e{up}..z4e{left}..cycle) shifted (.05,0) scaled ss;
+for m=0 upto w: proofrule((m*ss,0),(m*ss,h*ss)); endfor
+for n=0 upto h: proofrule((0,n*ss),(w*ss,n*ss)); endfor
+proofrulethickness 1;
+forsuffixes e=l,r:
+ u:=round((point 0 of path_.e)/ss);
+ for t=0 step 1/64 until 4:
+ v:=round((point t of path_.e)/ss);
+ if u<>v: if abs(u-v)=1: proofrule(u*ss,v*ss);
+ else: del:=1/128; tt:=t-del;
+ forever: uu:=round((point tt of path_.e)/ss);
+ exitif abs(u-uu)=1;
+ if del=epsilon:ddt;fi
+ del:=del/2;
+ tt:=tt if uu=u:+ else:-fi del; endfor
+ proofrule(u*ss,uu*ss); proofrule(uu*ss,v*ss); fi
+ u:=v; fi endfor
+ endfor
+showit;
+shipit;
+endgroup;
+endgroup;
+numeric u,uu,v;
+
+"Figure 24d"; % Fig 24c shifted right .05 pixel
+ss:=10;
+begingroup interim hppp:=200/72.27; % lowres parameters
+interim blacker:=.65; % make pens a bit blacker
+interim o_correction:=.4; % but don't overshoot as much
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=1/3pt#; thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+ curve_sidebar:= 1/18em;
+pair u,uu,v;
+beginchar("O",0.8em#,cap#,0);
+ penpos1(thick,10); penpos2(.1[thin,thick],90-10);
+ penpos3(thick,180+10); penpos4(thin,270-10);
+ x1l=w-x3l=curve_sidebar; x2=x4=.5w;
+ y1=.49h; y2l=-o; y3=.51h; y4l=h+o;
+ penstroke (z1e{down}..z2e{right}
+ ..z3e{up}..z4e{left}..cycle) shifted (.1,0) scaled ss;
+for m=0 upto w: proofrule((m*ss,0),(m*ss,h*ss)); endfor
+for n=0 upto h: proofrule((0,n*ss),(w*ss,n*ss)); endfor
+proofrulethickness 1;
+forsuffixes e=l,r:
+ u:=round((point 0 of path_.e)/ss);
+ for t=0 step 1/64 until 4:
+ v:=round((point t of path_.e)/ss);
+ if u<>v: if abs(u-v)=1: proofrule(u*ss,v*ss);
+ else: del:=1/128; tt:=t-del;
+ forever: uu:=round((point tt of path_.e)/ss);
+ exitif abs(u-uu)=1;
+ if del=epsilon:ddt;fi
+ del:=del/2;
+ tt:=tt if uu=u:+ else:-fi del; endfor
+ proofrule(u*ss,uu*ss); proofrule(uu*ss,v*ss); fi
+ u:=v; fi endfor
+ endfor
+showit;
+shipit;
+endgroup;
+endgroup;
+numeric u,uu,v;
+
+"Figure 24e"; % hash mark
+numeric u;
+u#:=10/18pt#; define_pixels(u);
+beginchar(0,15u#,250/36pt#,70/36pt#);
+pickup pencircle scaled (.4pt+blacker);
+lft x1=round u-eps; x3=x1; x2=x4=w-x1;
+y1=y2=good.y(.5[-d,h]+1.1pt); y3=y4=h-d-y1;
+draw z1--z2; draw z3--z4;
+lft x6=round 3u; x7=w-x6;
+x8=good.x .5w; x5-x6=x7-x8;
+top y5=top y7=h+eps; bot y6=bot y8=-d-eps;
+draw z5--z6; draw z7--z8;
+labels.top(6,8);
+labels.bot(5,7);
+labels.lft(2,4);
+labels.rt(1,3);
+endchar;
+
+"Figure 24f"; % Ionian O at 200 pixels/inch, autorounding=1
+ss:=10;
+begingroup interim hppp:=200/72.27; % lowres parameters
+interim blacker:=.65; % make pens a bit blacker
+interim o_correction:=.4; % but don't overshoot as much
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=1/3pt#; thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+ curve_sidebar:= 1/18em;
+interim autorounding:=1;
+interim granularity:=10;
+beginchar("O",0.8em#,cap#,0);
+ penpos1(thick,10); penpos2(.1[thin,thick],90-10);
+ penpos3(thick,180+10); penpos4(thin,270-10);
+ x1l=w-x3l=curve_sidebar; x2=x4=.5w;
+ y1=.49h; y2l=-o; y3=.51h; y4l=h+o;
+ penstroke (z1e{down}..z2e{right}
+ ..z3e{up}..z4e{left}..cycle) scaled ss;
+for m=0 upto w: proofrule((m*ss,0),(m*ss,h*ss)); endfor
+for n=0 upto h: proofrule((0,n*ss),(w*ss,n*ss)); endfor
+proofrulethickness 1;
+pair u;
+for v= % pairs gotten from tracingedges on a separate run!
+(2,9), (2,6), (3,6), (3,4), (4,4), (4,3), (5,3), (5,2), (6,2),
+(6,1), (8,1), (8,0), (14,0), (14,1), (16,1), (16,2), (17,2), (17,3),
+(18,3), (18,4), (19,4), (19,7), (20,7), (20,13), (19,13), (19,15),
+(18,15), (18,16), (17,16), (17,17), (16,17), (16,18), (14,18), (14,19),
+(8,19), (8,18), (6,18), (6,17), (5,17), (5,16), (4,16), (4,15), (3,15),
+(3,12), (2,12), (2,9)
+:if known u: proofrule(u*ss,v*ss) ; fi
+u:=v; endfor
+
+pair u;
+for v=
+(4,9), (4,7), (5,7), (5,5), (6,5),
+(6,4), (7,4), (7,3), (9,3), (9,2), (14,2), (14,3), (15,3), (15,4), (16,4),
+(16,5), (17,5), (17,7), (18,7), (18,12), (17,12), (17,14), (16,14),
+(16,15), (15,15), (15,16), (13,16), (13,17), (8,17), (8,16), (7,16),
+(7,15), (6,15), (6,14), (5,14), (5,12), (4,12), (4,9)
+:if known u: proofrule(u*ss,v*ss) ; fi
+u:=v; endfor
+showit;
+shipit;
+endgroup;
+endgroup;
+numeric u;
+
+"Figure 24g"; % Ionian O at 200 pixels/inch, autorounding=2
+ss:=10;
+begingroup interim hppp:=200/72.27; % lowres parameters
+interim blacker:=.65; % make pens a bit blacker
+interim o_correction:=.4; % but don't overshoot as much
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=1/3pt#; thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+ curve_sidebar:= 1/18em;
+interim autorounding:=2;
+interim granularity:=10;
+beginchar("O",0.8em#,cap#,0);
+ penpos1(thick,10); penpos2(.1[thin,thick],90-10);
+ penpos3(thick,180+10); penpos4(thin,270-10);
+ x1l=w-x3l=curve_sidebar; x2=x4=.5w;
+ y1=.49h; y2l=-o; y3=.51h; y4l=h+o;
+ penstroke (z1e{down}..z2e{right}
+ ..z3e{up}..z4e{left}..cycle) scaled ss;
+for m=0 upto w: proofrule((m*ss,0),(m*ss,h*ss)); endfor
+for n=0 upto h: proofrule((0,n*ss),(w*ss,n*ss)); endfor
+proofrulethickness 1;
+pair u;
+for v=
+(2,9), (2,6), (3,6),
+(3,4), (4,4), (4,3), (5,3), (5,2), (6,2), (6,1), (8,1), (8,0), (14,0),
+(14,1), (16,1), (16,2), (17,2), (17,3), (18,3), (18,4), (19,4), (19,7),
+(20,7), (20,13), (19,13), (19,15), (18,15), (18,16), (17,16), (17,17),
+(16,17), (16,18), (14,18), (14,19), (8,19), (8,18), (6,18), (6,17),
+(5,17), (5,16), (4,16), (4,15), (3,15), (3,12), (2,12), (2,9)
+:if known u: proofrule(u*ss,v*ss) ; fi
+u:=v; endfor
+
+pair u;
+for v=
+(4,9), (4,7), (5,7), (5,5), (6,5),
+(6,4), (7,4), (7,3), (9,3), (9,2), (13,2), (13,3), (15,3), (15,4), (16,4),
+(16,5), (17,5), (17,7), (18,7), (18,12), (17,12), (17,14), (16,14),
+(16,15), (15,15), (15,16), (13,16), (13,17), (9,17), (9,16), (7,16),
+(7,15), (6,15), (6,14), (5,14), (5,12), (4,12), (4,9)
+:if known u: proofrule(u*ss,v*ss) ; fi
+u:=v; endfor
+showit;
+shipit;
+endgroup;
+endgroup;
+numeric u;
+
+"Figure 24h"; % Ionian O at 200 pixels/inch, autorounding=0, smoothing=1
+ss:=10;
+begingroup interim hppp:=200/72.27; % lowres parameters
+interim blacker:=.65; % make pens a bit blacker
+interim o_correction:=.4; % but don't overshoot as much
+ em#:=10pt#; cap#:=7pt#;
+ thin#:=1/3pt#; thick#:=5/6pt#;
+ o#:=1/5pt#;
+define_pixels(em,cap);
+define_blacker_pixels(thin,thick);
+define_corrected_pixels(o);
+ curve_sidebar:= 1/18em;
+beginchar("O",0.8em#,cap#,0);
+ penpos1(thick,10); penpos2(.1[thin,thick],90-10);
+ penpos3(thick,180+10); penpos4(thin,270-10);
+ x1l=w-x3l=curve_sidebar; x2=x4=.5w;
+ y1=.49h; y2l=-o; y3=.51h; y4l=h+o;
+ penstroke (z1e{down}..z2e{right}
+ ..z3e{up}..z4e{left}..cycle) scaled ss;
+for m=0 upto w: proofrule((m*ss,0),(m*ss,h*ss)); endfor
+for n=0 upto h: proofrule((0,n*ss),(w*ss,n*ss)); endfor
+proofrulethickness 1;
+pair u;
+for v=
+(2,9), (2,5), (3,5),
+(3,3), (4,3), (4,2), (6,2), (6,1), (8,1), (8,0), (14,0), (14,1), (16,1),
+(16,2), (17,2), (17,3), (18,3), (18,4), (19,4), (19,6), (20,6), (20,14),
+(19,14), (19,16), (18,16), (18,17), (16,17), (16,18), (14,18), (14,19),
+(8,19), (8,18), (6,18), (6,17), (5,17), (5,16), (4,16), (4,15), (3,15),
+(3,13), (2,13), (2,9)
+:if known u: proofrule(u*ss,v*ss) ; fi
+u:=v; endfor
+
+pair u;
+for v=
+(4,10), (4,9), (5,9), (5,5), (6,5),
+(6,4), (7,4), (7,3), (8,3), (8,2), (14,2), (14,3), (15,3), (15,4), (16,4),
+(16,6), (17,6), (17,8), (18,8), (18,10), (17,10), (17,13), (16,13),
+(16,15), (15,15), (15,16), (14,16), (14,17), (8,17), (8,16), (7,16),
+(7,15), (6,15), (6,13), (5,13), (5,11), (4,11), (4,10)
+:if known u: proofrule(u*ss,v*ss) ; fi
+u:=v; endfor
+showit;
+shipit;
+endgroup;
+endgroup;
+numeric u;
+
+"Figure 27a"; % Modification of Fig. 14b
+clear_all;
+pair zz[];
+zz1=(0,509);
+zz2=(-14,492);
+zz3=(-32,481);
+zz4=(-42,455);
+zz5=(-62,430);
+zz6=(-20,452);
+zz7=(42,448);
+zz8=(38,465);
+zz9=(4,493);
+for n=1 upto 9: z[n-1]=(zz[n]+(62,-430)) scaled 2.5; heavy_dot z[n-1]; endfor
+pickup pencircle scaled 3;
+draw flex(z0,z1,z2)&flex(z2,z3,z4)
+ &flex(z4,z5,z6)&flex(z6,z7,z8,z0)&cycle;
+labels.lft(1,2,3,4);
+labels.rt(0,6,7,8);
+labels.bot(5);
+showit; shipit;
+
+"Figure Da"; % Neenie's problem
+clear_all;
+z1l=(0,240-y); z1r=(15,288-y);
+z0l-z0r=z1l-z1r; z0r=(144,189-y); y0l=0;
+pickup pencircle scaled 2;
+numeric a,b,c,d;
+a=x1l; b=y1r; (c,d)=z0r;
+draw z0l--z0r--z1r--z1l--cycle;
+proofrule((a,d),(a,b)); proofrule((a,b),(a-d+b,b));
+for z=z0l,z0r,z1l,z1r,(a,b): heavy_dot z; endfor
+makelabel.bot.nodot("<=",z1r+(3,-8));
+makelabel.lft("(a,b)",(a,b));
+makelabel.top("z1r",z1r);
+makelabel.lft("z1l",z1l);
+makelabel.rt("(c,d)",z0r);
+makelabel.lft("z0r ",z0r);
+makelabel.lft("z0l ",z0l);
+showit; shipit;
+
+"Figure Ea"; % T of METAFONT logo, with italic correction
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+numeric h#, xx#, yy#, o#, s#, u#, ph#, pv#;
+numeric leftstemloc, barheight;
+ h#=6; % height of characters, in pt
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ ph#=2/3; % horizontal thickness of pen, in pt
+yy#=xx#; define_whole_pixels(xx,yy);
+define_pixels(s,u);
+define_corrected_pixels(o);
+pv#=.9ph#; define_blacker_pixels(ph,pv);
+pickup pencircle xscaled ph yscaled pv;
+logo_pen:=savepen;
+leftstemloc:=good.x((2.5u#+s#)*pt);
+barheight:=good.y(alpha*h#*pt);
+def beginlogochar(suffix c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(str c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+slant:=0;
+
+beginlogochar(T,13);
+italcorr h#*slant+.5u#;
+if odd(w-ph): w:=w+1; fi % allows a symmetric stem
+x1+x2=2x3=2x4=w; lft.x1=-epsilon; % I tried s-o instead; was not as good
+y1=y2=y3; top.y1=h; bot.y4=-o;
+draw z1..z2; draw z3..z4;
+labels.rt(2,3);
+makelabel.top("1",z1);
+makelabel.top("4",z4);
+endchar;
+
+"Figure Eb"; % F of METAFONT logo
+alpha:=.45; % controls bar location and similar things
+beta:=.2; % controls squareness of bowls
+numeric h#, xx#, yy#, o#, s#, u#, ph#, pv#;
+numeric leftstemloc, barheight;
+ h#=6; % height of characters, in pt
+ xx#=0.6; % extra length of certain features, in pt
+ u#=4/9; % unit width, in pt
+ s#=0; % extra sidebar, in pt
+ o#=1/9; % overshoot of curves, in pt
+ ph#=2/3; % horizontal thickness of pen, in pt
+yy#=xx#; define_whole_pixels(xx,yy);
+define_pixels(s,u);
+define_corrected_pixels(o);
+pv#=.9ph#; define_blacker_pixels(ph,pv);
+pickup pencircle xscaled ph yscaled pv;
+logo_pen:=savepen;
+leftstemloc:=good.x((2.5u#+s#)*pt);
+barheight:=good.y(alpha*h#*pt);
+def beginlogochar(suffix c)(expr n) = % code c; width is n units plus sidebars
+ beginchar(str c,n*u#+2s#,h#,0); pickup logo_pen enddef;
+
+beginlogochar(F,14);
+x1=x2=x3=leftstemloc; x4=w-x1+o; x5=x4-xx;
+y2=y5; y3=y4; bot.y1=-o; top.y3=h; y2=barheight;
+draw z1--z3--z4; draw z2--z5;
+labels.rt(2,3);
+labels.lft(4,5);
+labels.top(1);
+endchar;
+
+"Figure Ec"; % cmr10 period
+u#:=20/36pt#;
+dot_diam#:=38/36pt#;
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+x_height#:=155/36pt#; % height of lowercase without ascenders
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+body_depth#:=90/36pt#;
+fine#:=7/36pt#;
+
+define_pixels(u);
+define_whole_blacker_pixels(dot_diam,fine);
+define_whole_vertical_pixels(body_height,asc_height,x_height,bar_height,
+ desc_depth,body_depth);
+
+beginchar(".",5u#,dot_diam#,0);
+def makebox(text rule) =
+ for y=0,asc_height,body_height,x_height,bar_height,-desc_depth,-body_depth:
+ rule((0,y),(w,y)); endfor % horizontals
+ for x=0,w: rule((x,-body_depth),(x,body_height)); endfor % verticals
+ for x=u step u until w-1:
+ rule((x,-body_depth),(x,body_height)); endfor % more verticals
+ if charic<>0:
+ rule((w+charic*pt,h.o_),(w+charic*pt,.5h.o_)); fi % italic correction
+ enddef;
+pickup pencircle scaled fine;
+penpos1(dot_diam-fine,0); penpos2(dot_diam-fine,90);
+x1l=good.x(x1l+.5w-x1); bot y2l=0; z1=z2;
+filldraw z1l...z2l...z1r...z2r...cycle; % roundish dot
+labels.lft(1,1l);
+labels.rt(2,1r);
+labels.top(2r);
+labels.bot(2l);
+endchar;
+
+"Figure Ed"; % cmr10 emdash
+u#:=20/36pt#;
+dot_diam#:=38/36pt#;
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+x_height#:=155/36pt#; % height of lowercase without ascenders
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+body_depth#:=90/36pt#;
+vair#:=8/36pt#; % vertical diameter of hairlines
+
+define_pixels(u);
+define_whole_blacker_pixels(dot_diam,vair);
+define_whole_vertical_pixels(body_height,asc_height,x_height,bar_height,
+ desc_depth,body_depth);
+
+beginchar(oct"174",18u#,x_height#,0);
+def makebox(text rule) =
+ for y=0,asc_height,body_height,x_height,bar_height,-desc_depth,-body_depth:
+ rule((0,y),(w,y)); endfor % horizontals
+ for x=0,w: rule((x,-body_depth),(x,body_height)); endfor % verticals
+ for x=u step u until w-1:
+ rule((x,-body_depth),(x,body_height)); endfor % more verticals
+ if charic<>0:
+ rule((w+charic*pt,h.o_),(w+charic*pt,.5h.o_)); fi % italic correction
+ enddef;
+italcorr .61803x_height#*0 + .5u#;
+pickup nullpen;
+penpos1(vair,90); penpos2(vair,90);
+y1r=y2r=good.y(y1r+.61803h-y1);
+lft x1=-eps; rt x2=w+eps;
+penstroke z1e--z2e; % crossbar
+labels.lft(1);
+labels.rt(2);
+labels.top(1r,2r);
+labels.bot(1l,2l);
+endchar;
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/misc/oneone.mf b/Master/texmf-dist/fonts/source/public/misc/oneone.mf
new file mode 100644
index 00000000000..09975533ce0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/oneone.mf
@@ -0,0 +1,10 @@
+% Black font for CX with proofsheet resolution 300 pixels per inch
+
+if mode<>cx: errmessage "This file is for cx only"; fi
+
+font_identifier "BLACKCX";
+picture pix_picture; pix_wd := pix_ht := 1;
+pix_picture := unitpixel;
+dotsize:=10;
+
+input grayf
diff --git a/Master/texmf-dist/fonts/source/public/misc/random.mf b/Master/texmf-dist/fonts/source/public/misc/random.mf
new file mode 100644
index 00000000000..cc433a8d1fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/random.mf
@@ -0,0 +1,198 @@
+% Font for examples in Chapter 21 of The METAFONTbook
+
+font_size 10pt#;
+mode_setup;
+
+font_identifier "RANDOM";
+font_coding_scheme "PI";
+
+% uniforms (characters 0--9)
+randomseed:=3.14159;
+for code=0 upto 9:
+beginchar(code,10pt#,10pt#,0);
+pickup pencircle scaled .3pt; draw unitsquare scaled w;
+pickup pencircle scaled 1pt;
+for k=1 upto 100: drawdot(uniformdeviate w,uniformdeviate w); endfor
+endchar;
+endfor
+
+% normals (characters 10--19)
+randomseed:=3.14159;
+for code=10 upto 19:
+beginchar(code,10pt#,10pt#,0);
+pickup pencircle scaled .3pt; draw unitsquare scaled w;
+pickup pencircle scaled 1pt;
+for k=1 upto 100: drawdot(1/6w*normaldeviate+.5w,1/6w*normaldeviate+.5w); endfor
+endchar;
+endfor
+
+% both (characters 20--29)
+randomseed:=3.14159;
+for code=20 upto 29:
+beginchar(code,10pt#,10pt#,0);
+pickup pencircle scaled .3pt; draw unitsquare scaled w;
+pickup pencircle scaled 1pt;
+for k=1 upto 100: drawdot(uniformdeviate w,1/6w*normaldeviate+.5w); endfor
+endchar;
+endfor
+
+% METAFONT logo (characters 30--109)
+randomseed:=ASCII"M"+epsilon*ASCII"F";
+vardef noise=normaldeviate*craziness enddef;
+
+ht#:=6pt#;
+xgap#:=0.6pt#;
+u#:=4/9pt#;
+s#:=0;
+o#:=1/9pt#;
+px#:=2/3pt#;
+ygap#:=xgap#;
+leftstemloc#:=2.5u#+s#;
+barheight#:=.45ht#;
+define_pixels(s,u,xgap,ygap,leftstemloc,barheight);
+py#:=.9px#; define_blacker_pixels(px,py);
+pickup pencircle xscaled px yscaled py; logo_pen:=savepen;
+define_corrected_pixels(o);
+
+def beginlogochar(expr c,n) =
+ beginchar(incr code,n*u#+2s#,ht#,0); pickup logo_pen enddef;
+
+def NN=
+beginlogochar("N",15);
+x1=leftstemloc+noise;
+x2=leftstemloc+noise;
+x4=w-leftstemloc+noise;
+x5=w-leftstemloc+noise;
+bot y1=noise-o;
+top y2=h+o+noise;
+y3=y4+ygap+noise;
+bot y4=noise-o;
+top y5=h+o+noise;
+z3=whatever[z4,z5];
+draw z1--z2--z3; draw z4--z5; labels(1,2,3,4,5); endchar;
+enddef;
+
+def MM=
+beginlogochar("M",18);
+x1=leftstemloc+noise;
+x2=leftstemloc+noise;
+x3=.5w+noise;
+x4=w-leftstemloc+noise;
+x5=w-leftstemloc+noise;
+bot y1=noise-o;
+top y2=h+o+noise;
+bot y3=ygap+noise;
+top y4=h+o+noise;
+bot y5=noise-o;
+draw z1--z2--z3--z4--z5; labels(1,2,3,4,5); endchar;
+enddef;
+
+def EE=
+beginlogochar("E",14);
+x1=leftstemloc+noise;
+x3=leftstemloc+noise;
+x4=w-leftstemloc+o+noise;
+x5=w-leftstemloc+o-xgap+noise;
+x6=w-leftstemloc+o+noise;
+bot y1=noise;
+y2=barheight+noise;
+top y3=h+noise;
+top y4=h+noise;
+y5=barheight+noise;
+bot y6=noise;
+z2=whatever[z1,z3];
+draw z6--z1--z3--z4; draw z2--z5; labels(1,2,3,4,5,6); endchar;
+enddef;
+
+def FF=
+beginlogochar("F",14);
+x1=leftstemloc+noise;
+x3=leftstemloc+noise;
+x4=w-leftstemloc+o+noise;
+x5=w-leftstemloc+o-xgap+noise;
+bot y1=noise-o;
+y2=barheight+noise;
+top y3=h+noise;
+top y4=h+noise;
+y5=barheight+noise;
+bot y6=noise;
+z2=whatever[z1,z3];
+draw z1--z3--z4; draw z2--z5; labels(1,2,3,4,5); endchar;
+enddef;
+
+def TT=
+beginlogochar("T",13);
+lft x1=noise;
+rt x2=w+noise;
+x3=.5w+noise;
+x4=.5w+noise;
+top y1=h+noise;
+top y2=h+noise;
+bot y4=noise-o;
+z3=whatever[z1,z2];
+draw z1--z2; draw z3--z4; labels(1,2,3,4); endchar;
+enddef;
+
+def AA=
+beginlogochar("A",15);
+x1=.5w+noise;
+x2'=leftstemloc+noise;
+x3'=w-leftstemloc+noise;
+x4=leftstemloc+noise;
+x5=w-leftstemloc+noise;
+top y2'=h+o+noise;
+top y3'=h+o+noise;
+y2=barheight+noise;
+y3=barheight+noise;
+bot y4=noise-o;
+bot y5=noise-o;
+z1=whatever[z2',z3'];
+z2=whatever[z4,z2'];
+z3=whatever[z5,z3'];
+draw z4--z2--z3--z5;
+draw z2{z2'-z2}...z2+.8(z2'-z2)-.2(z2'-z1){z1-z2}
+ ...z1{z3'-z2'}...z3+.8(z3'-z3)-.2(z3'-z1){z3-z1}...z3{z3-z3'};
+labels(1,2,3,4,5,2',3'); endchar;
+enddef;
+
+def OO=
+beginlogochar("O",15);
+x1'=1.5u+s+noise;
+x2'=1.5u+s+noise;
+x3'=w-1.5u-s+noise;
+x4'=w-1.5u-s+noise;
+bot y1'=noise-o;
+top y2'=h+o+noise;
+top y3'=h+o+noise;
+bot y4'=noise-o;
+z1=.5[z1',z2']; z2=.5[z2',z3']; z3=.5[z3',z4']; z4=.5[z4',z1'];
+draw z2{z2'-z3'}...z2+.8(z2'-z2)-.2(z2'-z1){z1-z2}
+ ...z1{z1'-z2'}...z1+.8(z1'-z1)-.2(z1'-z4){z4-z1}
+ ...z4{z4'-z1'}...z4+.8(z4'-z4)-.2(z4'-z3){z3-z4}
+ ...z3{z3'-z4'}...z3+.8(z3'-z3)-.2(z3'-z2){z2-z3}...cycle;
+labels(1,2,3,4,5,2',3'); endchar;
+enddef;
+
+
+code:=29;
+for c=10 downto 1:craziness:=c*.05pt;
+ MM; EE; TT; AA; FF; OO; NN; TT; endfor
+
+% histogram (character 126)
+randomseed:=0;
+beginchar(126,24pt#,10pt#,0);
+%pickup pencircle scaled .3pt; draw unitsquare xscaled w yscaled h;
+ numeric count[]; pickup pencircle scaled 1pt;
+for n:=1 upto 100: x:=normaldeviate*4pt+12pt;
+y:=floor(x/pt); if unknown count[y]: count[y]:=-1; fi
+drawdot(x,pt*incr count[y]); endfor endchar;
+
+% skyline (character 127)
+randomseed:=2.71828;
+beginchar(127,100pt#,10pt#,0);
+for n:=0 upto 99:
+fill unitsquare xscaled 1pt yscaled uniformdeviate h shifted (n*pt,0);
+endfor
+endchar;
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/misc/slant.mf b/Master/texmf-dist/fonts/source/public/misc/slant.mf
new file mode 100644
index 00000000000..3763222bce2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/slant.mf
@@ -0,0 +1,32 @@
+% more-or-less general slant font generator for GFtoDVI
+
+% the calling file should set the font_identifier and
+% n = number of characters
+% s = slant ratio
+% r# = rule thickness (in sharp units)
+% u = vertical unit (in pixels)
+
+if unknown mag: mag := 1;
+elseif (mag<1) or (mag<>floor mag):
+ errmessage "Sorry, mag must be a positive integer"; mag := 1; fi
+
+mg := mag; mag := 1; mode_setup; u# := u*72.27/pixels_per_inch;
+pixels_per_inch := pixels_per_inch*mg; fix_units;
+
+define_whole_pixels(u); define_blacker_pixels(r);
+pickup pencircle scaled r; ruler := savepen;
+
+for k=1 upto n:
+ beginchar(k,k*u#*s,n*u#,0);
+ pickup ruler; draw origin--(k*u*s,k*u);
+ unfill (lft-1,bot -1)--(rt 1,bot -1)
+ --(rt 1,0)--(lft-1,0)--cycle;
+ unfill ((lft -1,0)--(rt 1,0)
+ --(rt 1,top 1)--(lft -1,top 1)--cycle) shifted (k*u*s,k*u);
+ endchar; endfor
+
+font_size 16pt#;
+font_slant s;
+fontdimen 8: r#;
+font_coding_scheme "GFSLANT";
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantaps4.mf b/Master/texmf-dist/fonts/source/public/misc/slantaps4.mf
new file mode 100644
index 00000000000..1d7ecbd4928
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/slantaps4.mf
@@ -0,0 +1,11 @@
+% slant font for slope 1/4 on the APS
+
+if mode<>aps: errmessage "This file is for aps only"; fi
+
+s=1/4;
+n=30;
+r#=.4;
+u=4; % an approximation to r in pixels
+
+font_identifier "SLANTAPS4";
+input slant
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantcx4.mf b/Master/texmf-dist/fonts/source/public/misc/slantcx4.mf
new file mode 100644
index 00000000000..34df2b82c85
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/slantcx4.mf
@@ -0,0 +1,11 @@
+% slant font for slope 1/4 on the CX
+
+if mode<>cx: errmessage "This file is for cx only"; fi
+
+s=1/4;
+n=30;
+r#=.4;
+u=2; % an approximation to r in pixels
+
+font_identifier "SLANTCX4";
+input slant
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantcx6.mf b/Master/texmf-dist/fonts/source/public/misc/slantcx6.mf
new file mode 100644
index 00000000000..6c43be0bda1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/slantcx6.mf
@@ -0,0 +1,11 @@
+% slant font for slope 1/6 on the CX
+
+if mode<>cx: errmessage "This file is for cx only"; fi
+
+s=1/6;
+n=30;
+r#=.4;
+u=2; % an approximation to r in pixels
+
+font_identifier "SLANTCX6";
+input slant
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantimagen4.mf b/Master/texmf-dist/fonts/source/public/misc/slantimagen4.mf
new file mode 100644
index 00000000000..ffe19c7b90b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/slantimagen4.mf
@@ -0,0 +1,11 @@
+% slant font for slope 1/4 on the Imagen
+
+if mode<>imagen: errmessage "This file is for imagen only"; fi
+
+s=1/4;
+n=30;
+r#=.4;
+u=2; % an approximation to r in pixels
+
+font_identifier "SLANTIMAGEN4";
+input slant
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantimagen6.mf b/Master/texmf-dist/fonts/source/public/misc/slantimagen6.mf
new file mode 100644
index 00000000000..3859b471fd8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/slantimagen6.mf
@@ -0,0 +1,11 @@
+% slant font for slope 1/6 on the Imagen
+
+if mode<>imagen: errmessage "This file is for imagen only"; fi
+
+s=1/6;
+n=30;
+r#=.4;
+u=2; % an approximation to r in pixels
+
+font_identifier "SLANTIMAGEN6";
+input slant
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantlino4.mf b/Master/texmf-dist/fonts/source/public/misc/slantlino4.mf
new file mode 100644
index 00000000000..02ef790a035
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/slantlino4.mf
@@ -0,0 +1,11 @@
+% slant font for slope 1/4 on the Linotronic
+
+if mode<>linohi: errmessage "This file is for lino only"; fi
+
+s=1/4;
+n=30;
+r#=.4;
+u=7; % an approximation to r in pixels
+
+font_identifier "SLANTLINO4";
+input slant
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantlj4.mf b/Master/texmf-dist/fonts/source/public/misc/slantlj4.mf
new file mode 100644
index 00000000000..49dc12e236a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/slantlj4.mf
@@ -0,0 +1,11 @@
+% slant font for slope 1/4 on the LJ
+
+if mode<>ljfour: errmessage "This file is for ljfour only"; fi
+
+s=1/4;
+n=30;
+r#=.4;
+u=2; % an approximation to r in pixels
+
+font_identifier "SLANTLJ4";
+input slant
diff --git a/Master/texmf-dist/fonts/source/public/misc/slantlj6.mf b/Master/texmf-dist/fonts/source/public/misc/slantlj6.mf
new file mode 100644
index 00000000000..4611c455124
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/misc/slantlj6.mf
@@ -0,0 +1,11 @@
+% slant font for slope 1/6 on the LJ
+
+if mode<>ljfour: errmessage "This file is for ljfour only"; fi
+
+s=1/6;
+n=30;
+r#=.4;
+u=2; % an approximation to r in pixels
+
+font_identifier "SLANTLJ6";
+input slant
diff --git a/Master/texmf-dist/fonts/source/public/montex/bcghsb.mf b/Master/texmf-dist/fonts/source/public/montex/bcghsb.mf
new file mode 100644
index 00000000000..afa2369dc96
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bcghsb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bcghsb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Horizontal Steel Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMO";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=true; % This is a Horizontal Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mocodes.mf; % Load Mongol Encoding Vectors
+input montrlig.mf; % Load Mongol Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/montex/bcghsm.mf b/Master/texmf-dist/fonts/source/public/montex/bcghsm.mf
new file mode 100644
index 00000000000..4126f1fc4a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bcghsm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bcghsm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Horizontal Steel Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMO";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=true; % This is a Horizontal Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mocodes.mf; % Load Mongol Encoding Vectors
+input montrlig.mf; % Load Mongol Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/montex/bcghwb.mf b/Master/texmf-dist/fonts/source/public/montex/bcghwb.mf
new file mode 100644
index 00000000000..0ca6e934409
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bcghwb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bcghwb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Horizontal Wood Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMO";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=true; % This is a Horizontal Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mocodes.mf; % Load Mongol Encoding Vectors
+input montrlig.mf; % Load Mongol Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/montex/bcghwm.mf b/Master/texmf-dist/fonts/source/public/montex/bcghwm.mf
new file mode 100644
index 00000000000..0b3be606eda
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bcghwm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bcghwm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Horizontal Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMO";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=true; % This is a Horizontal Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mocodes.mf; % Load Mongol Encoding Vectors
+input montrlig.mf; % Load Mongol Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/montex/bcgvsb.mf b/Master/texmf-dist/fonts/source/public/montex/bcgvsb.mf
new file mode 100644
index 00000000000..a11cde4ecc7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bcgvsb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bcgvsb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Vertical Steel Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMO";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=false; % This is a Vertical Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mocodes.mf; % Load Mongol Encoding Vectors
+input montrlig.mf; % Load Mongol Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/montex/bcgvsm.mf b/Master/texmf-dist/fonts/source/public/montex/bcgvsm.mf
new file mode 100644
index 00000000000..f0ea62096cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bcgvsm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bcgvsm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Vertical Steel Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMO";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=false; % This is a Vertical Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mocodes.mf; % Load Mongol Encoding Vectors
+input montrlig.mf; % Load Mongol Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/montex/bcgvwb.mf b/Master/texmf-dist/fonts/source/public/montex/bcgvwb.mf
new file mode 100644
index 00000000000..1d75e7eaee8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bcgvwb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bcgvwb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Vertical Wood Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMO";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=false; % This is a Vertical Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mocodes.mf; % Load Mongol Encoding Vectors
+input montrlig.mf; % Load Mongol Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/montex/bcgvwm.mf b/Master/texmf-dist/fonts/source/public/montex/bcgvwm.mf
new file mode 100644
index 00000000000..4420c696647
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bcgvwm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bcgvwm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Vertical Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMO";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=false; % This is a Vertical Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mocodes.mf; % Load Mongol Encoding Vectors
+input montrlig.mf; % Load Mongol Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/montex/bicighb.mf b/Master/texmf-dist/fonts/source/public/montex/bicighb.mf
new file mode 100644
index 00000000000..56ba050d926
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bicighb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bicighb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Horizontal Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMB";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=true; % This is a Horizontal Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mlscodes.mf; % Load Mongol MLS Encoding Vectors
+input mbligtbl.mf; % Load Mongol Bicig Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bicighm.mf b/Master/texmf-dist/fonts/source/public/montex/bicighm.mf
new file mode 100644
index 00000000000..74dfb047117
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bicighm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bicighm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Horizontal Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMB";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=true; % This is a Horizontal Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mlscodes.mf; % Load Mongol MLS Encoding Vectors
+input mbligtbl.mf; % Load Mongol Bicig Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bicigvb.mf b/Master/texmf-dist/fonts/source/public/montex/bicigvb.mf
new file mode 100644
index 00000000000..d23886000c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bicigvb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bicigvb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Horizontal Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMB";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=false; % This is a Vertical Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mlscodes.mf; % Load Mongol MLS Encoding Vectors
+input mbligtbl.mf; % Load Mongol Bicig Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bicigvm.mf b/Master/texmf-dist/fonts/source/public/montex/bicigvm.mf
new file mode 100644
index 00000000000..2022ad451bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bicigvm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bicigvm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Script in Ligature Mode (Encoding: LMO)
+% Mongol Bicig Horizontal Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Bicig";
+font_coding_scheme:= "LMB";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bicig; % Font: Mongol Bicig
+LR:=false; % This is a Vertical Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input mlscodes.mf; % Load Mongol MLS Encoding Vectors
+input mbligtbl.mf; % Load Mongol Bicig Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input moglyphs.mf; % And we build Mongol glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bthhsb.mf b/Master/texmf-dist/fonts/source/public/montex/bthhsb.mf
new file mode 100644
index 00000000000..e5f18384a95
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bthhsb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bthhsb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script in Ligature Mode (Encoding: LMA)
+% Manju Bithe Horizontal Steel Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Manju Bithe";
+font_coding_scheme:= "LMA";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Bithe; % Font: Manju Bithe
+LR:=true; % This is a Horizontal Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input macodes.mf; % Load Manju Encoding Vectors
+input mantrlig.mf; % Load Manju Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input maglyphs.mf; % And we build Manju glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bthhsm.mf b/Master/texmf-dist/fonts/source/public/montex/bthhsm.mf
new file mode 100644
index 00000000000..6c9f0a45beb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bthhsm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bthhsm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script in Ligature Mode (Encoding: LMA)
+% Manju Bithe Horizontal Steel Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Manju Bithe";
+font_coding_scheme:= "LMA";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Bithe; % Font: Manju Bithe
+LR:=true; % This is a Horizontal Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input macodes.mf; % Load Manju Encoding Vectors
+input mantrlig.mf; % Load Manju Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input maglyphs.mf; % And we build Manju glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bthhwb.mf b/Master/texmf-dist/fonts/source/public/montex/bthhwb.mf
new file mode 100644
index 00000000000..355646faeb7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bthhwb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bthhwb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script in Ligature Mode (Encoding: LMA)
+% Manju Bithe Horizontal Wood Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Manju Bithe";
+font_coding_scheme:= "LMA";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bithe; % Font: Manju Bithe
+LR:=true; % This is a Horizontal Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input macodes.mf; % Load Manju Encoding Vectors
+input mantrlig.mf; % Load Manju Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input maglyphs.mf; % And we build Manju glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bthhwm.mf b/Master/texmf-dist/fonts/source/public/montex/bthhwm.mf
new file mode 100644
index 00000000000..5e924d73ef9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bthhwm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bthhwm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script in Ligature Mode (Encoding: LMA)
+% Manju Bithe Horizontal Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Manju Bithe";
+font_coding_scheme:= "LMA";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bithe; % Font: Manju Bithe
+LR:=true; % This is a Horizontal Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input macodes.mf; % Load Manju Encoding Vectors
+input mantrlig.mf; % Load Manju Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input maglyphs.mf; % And we build Manju glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bthvsb.mf b/Master/texmf-dist/fonts/source/public/montex/bthvsb.mf
new file mode 100644
index 00000000000..7626e656f80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bthvsb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bthvsb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script in Ligature Mode (Encoding: LMA)
+% Manju Bithe Vertical Steel Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Manju Bithe";
+font_coding_scheme:= "LMA";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Bithe; % Font: Manju Bithe
+LR:=false; % This is a Vertical Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input macodes.mf; % Load Manju Encoding Vectors
+input mantrlig.mf; % Load Manju Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input maglyphs.mf; % And we build Manju glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bthvsm.mf b/Master/texmf-dist/fonts/source/public/montex/bthvsm.mf
new file mode 100644
index 00000000000..a9b646ce28a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bthvsm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bthvsm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script in Ligature Mode (Encoding: LMA)
+% Manju Bithe Vertical Steel Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Manju Bithe";
+font_coding_scheme:= "LMA";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Bithe; % Font: Manju Bithe
+LR:=false; % This is a Vertical Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input macodes.mf; % Load Manju Encoding Vectors
+input mantrlig.mf; % Load Manju Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input maglyphs.mf; % And we build Manju glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bthvwb.mf b/Master/texmf-dist/fonts/source/public/montex/bthvwb.mf
new file mode 100644
index 00000000000..23b577ff3d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bthvwb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bthvwb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script in Ligature Mode (Encoding: LMA)
+% Manju Bithe Vertical Wood Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Manju Bithe";
+font_coding_scheme:= "LMA";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bithe; % Font: Manju Bithe
+LR:=false; % This is a Vertical Font
+input mbparmb.mf; % Load Bold Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input macodes.mf; % Load Manju Encoding Vectors
+input mantrlig.mf; % Load Manju Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input maglyphs.mf; % And we build Manju glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bthvwm.mf b/Master/texmf-dist/fonts/source/public/montex/bthvwm.mf
new file mode 100644
index 00000000000..f2ed4b5cbef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bthvwm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bthvwm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script in Ligature Mode (Encoding: LMA)
+% Manju Bithe Vertical Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Manju Bithe";
+font_coding_scheme:= "LMA";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Bithe; % Font: Manju Bithe
+LR:=false; % This is a Vertical Font
+input mbparmm.mf; % Load Medium Weight Parameters
+input mbcodes.mf; % Load Common Encoding Vectors
+input macodes.mf; % Load Manju Encoding Vectors
+input mantrlig.mf; % Load Manju Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input maglyphs.mf; % And we build Manju glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bxghsb.mf b/Master/texmf-dist/fonts/source/public/montex/bxghsb.mf
new file mode 100644
index 00000000000..7af82c9aff6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bxghsb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bxghsb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Glyph Script in Ligature Mode (Encoding: LMX)
+% Mongol Glyph Container Horizontal Steel Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Glyph Container";
+font_coding_scheme:= "LMX";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Container; % Font: Mongol Glyph Container
+LR:=true; % This is a Horizontal Font
+input mbparmb.mf; % Load Bold Weight Parameters
+% input mbcodes.mf; % Load Common Encoding Vectors
+input mxcodes.mf; % Load Mongol Glyph Encoding Vectors
+input mxntrlig.mf; % Load Mongol Glyph Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input mxglyphs.mf; % And we build Mongolian and all derived glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bxghsm.mf b/Master/texmf-dist/fonts/source/public/montex/bxghsm.mf
new file mode 100644
index 00000000000..346014e491d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bxghsm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bxghsm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Glyph Script in Ligature Mode (Encoding: LMX)
+% Mongol Glyph Container Horizontal Steel Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Glyph Container";
+font_coding_scheme:= "LMX";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Container; % Font: Mongol Glyph Container
+LR:=true; % This is a Horizontal Font
+input mbparmm.mf; % Load Medium Weight Parameters
+% input mbcodes.mf; % Load Common Encoding Vectors
+input mxcodes.mf; % Load Mongol Glyph Encoding Vectors
+input mxntrlig.mf; % Load Mongol Glyph Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input mxglyphs.mf; % And we build Mongolian and all derived glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bxghwb.mf b/Master/texmf-dist/fonts/source/public/montex/bxghwb.mf
new file mode 100644
index 00000000000..02de3821c68
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bxghwb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bxghwb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Glyph Script in Ligature Mode (Encoding: LMX)
+% Mongol Glyph Container Horizontal Wood Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Glyph Container";
+font_coding_scheme:= "LMX";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Container; % Font: Mongol Glyph Container
+LR:=true; % This is a Horizontal Font
+input mbparmb.mf; % Load Bold Weight Parameters
+% input mbcodes.mf; % Load Common Encoding Vectors
+input mxcodes.mf; % Load Mongol Glyph Encoding Vectors
+input mxntrlig.mf; % Load Mongol Glyph Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input mxglyphs.mf; % And we build Mongolian and all derived glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bxghwm.mf b/Master/texmf-dist/fonts/source/public/montex/bxghwm.mf
new file mode 100644
index 00000000000..bef4161108d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bxghwm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bxghwm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Glyph Script in Ligature Mode (Encoding: LMX)
+% Mongol Glyph Container Horizontal Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Glyph Container";
+font_coding_scheme:= "LMX";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Container; % Font: Mongol Glyph Container
+LR:=true; % This is a Horizontal Font
+input mbparmm.mf; % Load Medium Weight Parameters
+% input mbcodes.mf; % Load Common Encoding Vectors
+input mxcodes.mf; % Load Mongol Glyph Encoding Vectors
+input mxntrlig.mf; % Load Mongol Glyph Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input mxglyphs.mf; % And we build Mongolian and all derived glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bxgvsb.mf b/Master/texmf-dist/fonts/source/public/montex/bxgvsb.mf
new file mode 100644
index 00000000000..298326e98d4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bxgvsb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bxgvsb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Glyph Script in Ligature Mode (Encoding: LMX)
+% Mongol Glyph Container Vertical Steel Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Glyph Container";
+font_coding_scheme:= "LMX";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Container; % Font: Mongol Glyph Container
+LR:=false; % This is a Vertical Font
+input mbparmb.mf; % Load Bold Weight Parameters
+% input mbcodes.mf; % Load Common Encoding Vectors
+input mxcodes.mf; % Load Mongol Glyph Encoding Vectors
+input mxntrlig.mf; % Load Mongol Glyph Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input mxglyphs.mf; % And we build Mongolian and all derived glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bxgvsm.mf b/Master/texmf-dist/fonts/source/public/montex/bxgvsm.mf
new file mode 100644
index 00000000000..b1a5d5cc8e8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bxgvsm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bxgvsm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Glyph Script in Ligature Mode (Encoding: LMX)
+% Mongol Glyph Container Vertical Steel Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Glyph Container";
+font_coding_scheme:= "LMX";
+input mbatoms.mf; % Load Atoms
+style:=steel; % Defines titem and suul shapes, etc.
+writing:=Container; % Font: Mongol Glyph Container
+LR:=false; % This is a Vertical Font
+input mbparmm.mf; % Load Medium Weight Parameters
+% input mbcodes.mf; % Load Common Encoding Vectors
+input mxcodes.mf; % Load Mongol Glyph Encoding Vectors
+input mxntrlig.mf; % Load Mongol Glyph Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input mxglyphs.mf; % And we build Mongolian and all derived glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bxgvwb.mf b/Master/texmf-dist/fonts/source/public/montex/bxgvwb.mf
new file mode 100644
index 00000000000..7d4b1c5d163
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bxgvwb.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bxgvwb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Glyph Script in Ligature Mode (Encoding: LMX)
+% Mongol Glyph Container Vertical Wood Bold Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Glyph Container";
+font_coding_scheme:= "LMX";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Container; % Font: Mongol Glyph Container
+LR:=false; % This is a Vertical Font
+input mbparmb.mf; % Load Bold Weight Parameters
+% input mbcodes.mf; % Load Common Encoding Vectors
+input mxcodes.mf; % Load Mongol Glyph Encoding Vectors
+input mxntrlig.mf; % Load Mongol Glyph Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input mxglyphs.mf; % And we build Mongolian and all derived glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/bxgvwm.mf b/Master/texmf-dist/fonts/source/public/montex/bxgvwm.mf
new file mode 100644
index 00000000000..56177620bf4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/bxgvwm.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: bxgvwm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongol Glyph Script in Ligature Mode (Encoding: LMX)
+% Mongol Glyph Container Vertical Wood Medium Font Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_identifier:= "TeX Mongol Glyph Container";
+font_coding_scheme:= "LMX";
+input mbatoms.mf; % Load Atoms
+style:=wood; % Defines titem and suul shapes, etc.
+writing:=Container; % Font: Mongol Glyph Container
+LR:=false; % This is a Vertical Font
+input mbparmm.mf; % Load Medium Weight Parameters
+% input mbcodes.mf; % Load Common Encoding Vectors
+input mxcodes.mf; % Load Mongol Glyph Encoding Vectors
+input mxntrlig.mf; % Load Mongol Glyph Transliteration Ligatures
+input mbpunc.mf; % Oh yes, we build punctuation
+input mbnums.mf; % Oh yes, we build digits
+input mbglyphs.mf; % Oh yes, we build common glyphs
+input mxglyphs.mf; % And we build Mongolian and all derived glyphs
+end.
diff --git a/Master/texmf-dist/fonts/source/public/montex/cyrmorec.mf b/Master/texmf-dist/fonts/source/public/montex/cyrmorec.mf
new file mode 100644
index 00000000000..3d650de9e34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/cyrmorec.mf
@@ -0,0 +1,132 @@
+% File: cyrmorec.mf
+% Based on: jkbashc.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+ %jkbashc.mf by Joerg Knappen, bitnet: knappen@dmznat51
+ % Version: 8. June 1990
+ % Bashkirian letters with common shapes for upper and lower case
+
+cmchar "The bashkirian letter crossed Ge (looking like F)";
+beginchar(oct"200",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The Bashkirian letter variant KA";
+beginchar(oct"201",12u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(if serifs: 4 else: 2 fi u#,.25u#);
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ pickup fine.nib; pos3(vair,90); x3=x1; y3=.55h; z3'=z3; pos3'(varwid,90);
+ pos4(varwid,90); x4=w-.75flare-.125u; top y4r=h+oo; %original x4=w-2u
+ x41=x4; y41=y3'; x42=x4-2u; y42=y4;
+ filldraw stroke z3'e..controls z41 and z42..z4e; % upper diagonal
+ pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.125u); y5+.5flare=vround(top y4r-hair)+1;%original bot y4l-.03h
+ top y4'r=top y4r; x4'=x4; pos4'(hair,90);
+ bulb(4',5,6); % bulb
+ pos7(stem,0); pos8(varwid,90); pos9(hair,180);
+ x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+ lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+ filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+else:
+ numeric right_jut,stem[],alpha[];
+ right_jut=.4tiny;
+ pickup tiny.nib;
+ stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+ stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+ top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+ bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+ x4=x1; y4=1/3h;
+ alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+ penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+ alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+ penpos6(alpha2*(stem2-tiny),0);
+ forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+ z5=.5[z5l,z5r];
+ z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+ z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+ z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+ fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+ fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+fi
+pickup crisp.nib;
+top y55r=h; x55=x1; pos55(slab,90); pos56(hair,180);
+ x56=x1-if serifs: 6 else: 3 fi u;
+y56=good.y(y55l-beak)-eps;
+arm(55,56,q,beak_darkness**.8,-.4beak_jut);
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The Bashkirian letter variant EN (looks like H with leg)";
+beginchar(oct"202",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ r_cyr_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+else:
+ lcyrsanserif(4); lft x2'= lft x2l; bot y2'l=0; pos2'(slab,90);
+ rt x4'=rt x4r; y4'=y2'; pos4'(slab,90); filldraw stroke z2'e--z4'e;
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+
+cmchar "The Bashkirian letter flipped e";
+beginchar(oct"206",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl %now we have an O
+y9r-y9l=y10r-y10l=cap_band; x9r=x9l=x2; x10r=x10l=x4; y9r=y10r=top y2;
+penstroke z9e--z10e; % bar
+bot y6=bot y7=top y9r; top y5=top y8=min(.675h,bot y1l-eps);
+lft x6=lft x5=0; rt x7=rt x8=.5w;
+unfill z5--z6--z7--z8--cycle; cullit; % erase extra arc
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+ \endinput
diff --git a/Master/texmf-dist/fonts/source/public/montex/cyrmorei.mf b/Master/texmf-dist/fonts/source/public/montex/cyrmorei.mf
new file mode 100644
index 00000000000..dea899d7dcf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/cyrmorei.mf
@@ -0,0 +1,203 @@
+% File: cyrmorei.mf
+% Based on: jkbashi.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+ % jkbashi.mf by Joerg Knappen, Bitnet: knappen@dmznat51
+ % Version 14. June 1990
+ % Bashkirian special letters, lowercase italics
+ % Additional information at the end of this file
+
+% cmchar "Italic Bashkirian letter ghe-barred";
+% beginchar(oct"210",7u#,x_height#,0);
+% italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+% adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+% x0=0; x5=w; x2=.5w+1.5u; x3=.5w-1.5u;
+% hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+% filldraw stroke z2e{down}...{down}z3e; % stem
+% pickup crisp.nib;
+% top y6r=top y7r=bar_height;lft x6=lft x0;rt x7=rt x5;
+% pos6(bar,90); pos7(bar,90);
+% filldraw stroke z6e--z7e; % bar
+% penlabels(0,1,2,3,4,5,6,7); endchar;
+%
+% cmchar "Italic Bashkirian letter variant ka";
+% beginchar(oct"211",8u#,x_height#,0);
+% italcorr x_height#*slant-.5u#;
+% adjust_fit(u#,.25u#);
+% pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+% lft x1l=lft x2l=hround max(1.3u,2u-.5fudged.stem); top y1=h; bot y2=0;
+% filldraw stroke z1e--z2e; % stem
+% if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+% dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower stem serif
+% pickup fine.nib; pos3(vair,90); x3=x1; y3=.55h; z3'=z3; pos3'(varwid,90);
+% pos4(varwid,90); x4=w-.75flare-.08u; top y4r=h+oo; %original x4=w-2u
+% x41=x4; y41=y3'; x42=x4-2u; y42=y4;
+% filldraw stroke z3'e..controls z41 and z42..z4e; % upper diagonal
+% pos5(hair,0); pos6(flare,0);
+% rt x5r=hround(w-.08u); y5+.5flare=vround(top y4r-hair)+1;%original bot y4l-.03h
+% top y4'r=top y4r; x4'=x4; pos4'(hair,90);
+% bulb(4',5,6); % bulb
+% pos7(stem,0); pos8(varwid,90); pos9(hair,180);
+% x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+% lft x7l=hround(w-1.8u-.5stem); y7=1/2y3; x8=w-.8u; bot y8l=-oo;
+% filldraw stroke z3e{right}...z7e{down}
+% ...z8e{right}...{up}z9e; % lower diagonal
+% else:
+% numeric right_jut,stem[],alpha[];
+% right_jut=.4tiny;
+% pickup tiny.nib;
+% stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+% stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+% top y3=h; rt x3r=hround(r-letter_fit-.67u-right_jut);
+% bot y6=0; rt x6r=hround(r-letter_fit-.5u-right_jut);
+% x4=x1; y4=1/3h;
+% alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+% penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+% alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+% penpos6(alpha2*(stem2-tiny),0);
+% forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+% z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+% z5=.5[z5l,z5r];
+% z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+% z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+% fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+% fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+% fi
+% pickup crisp.nib;
+% top y55r=h; x55=x1; pos55(slab,90); pos56(hair,180);
+% x56=x1-if serifs: 4 else: 2 fi u;
+% y56=good.y(y55l-beak)-eps;
+% arm(55,56,q,beak_darkness**.8,-.4beak_jut);
+% math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+%
+%
+% cmchar "Italic Bashkirian letter variant en";
+% beginchar(oct"212",10u#,x_height#,desc_depth#);
+% italcorr 1/3x_height#*slant+.5hair#+.5u#;
+% adjust_fit(0,.25u#); pickup fine.nib;
+% x0=0; x2=x3; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+% hook_in(0,1,2); % opening hook
+% y3-.5stem=-oo; z2'=z2; pos2'(stem,-180);
+% filldraw circ_stroke z3e--z2'e; %left stem
+% x10=x3l; y10=y11=.55h; pos10(hair,90); pos11(hair,90);
+% pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); y6+.5stem=h;
+% x7=x6; x9=w; hook_out(7,8,9); %closing hook
+% z7'=z7; pos7'(stem,0);
+% filldraw circ_stroke z6e--z7'e; x11=x6l; % right stem
+% filldraw stroke z10e{1,1}...{1,1}z11e; % bar
+% pickup crisp.nib;
+% y30=0; x30=x8-.1u; y32=-d; x32=x8-.75u; z31=.5[z30,z32];
+% pos30(hair,90); pos31(1.25stem,135);
+% filldraw stroke z8{down}...z30e...z31e--z32; % descender
+% endchar;
+%
+cmchar "Italic Bashkirian letter o-umlaut";
+beginchar(cyrotld,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+z90=z2l; x91=x4l; y91=y90; pos90(bar,90); pos91(bar,90);
+if serifs: z92=.5[z90,z91]; pos92(if serifs: 2.5 fi bar,90);
+ filldraw stroke z90e{1,1}..{1,-1}z92e..{1,1}z91e; % tilde-like bar
+else: filldraw stroke z90e--z91e; fi % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+%
+% Sorry, the gamma is not acceptable in this context! OC, UB 1997
+%
+% cmchar "The italic Bashkirian letter u-umlaut"; % I put the gamma in here
+% beginchar(cyry,10u#,x_height#,desc_depth#);
+% italcorr x_height#*slant-.5u#;
+% adjust_fit(0,0); pickup fine.nib;
+% pos1(hair,180); pos2(vstem+dw,90);
+% pos4(hair,0); pos5(vair,-90); pos6(hair,-180); pos7(hair,-180);
+% bot y1=.5772156649h; top y2r=h+oo; y4=y6=-.5d;
+% bot y5r=-d-o; top y7=h;
+% lft x1r=hround(.5u-.5hair); x2=3u; rt x4r=hround(w-2u); x5=.5[x4,x6];
+% rt x4r-lft x6r=hround 1/3[hair,stem]+eps; rt x7l=hround(w-u);
+% if x4l<x6l: x4l:=x6l:=x5; fi
+% pos3(hair,angle(z4-z2)+90); x3=superness[x2,x4]; y3=superness[y4,y2];
+% filldraw stroke z1e{up}...z2e{right}...z3e{z4-z2}
+% ...z4e{down}...{left}z5e; % arc
+% filldraw stroke z5e{left}...z6e{up}..{2(x7-x6),y7-y6}z7e; % stem
+% math_fit(-.5772156649x_height#*slant,ic#-u#);
+% penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The italic Bashkirian letter u-umlaut"; %
+beginchar(cyry,8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.37h; y6+.5stem=h;
+bot y7=-d; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e; % right stem and link
+sloped_serif.r(7,2,a,1/3,jut,serif_drop); % serif
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10);
+endchar;
+
+cmchar "Italic Bashkirian letter ha";
+beginchar(cyrshha,9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(1.5u#,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+%
+% cmchar "Italic Bashkirian letter flipped e";
+% beginchar(oct"216",8u#,x_height#,0);
+% italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+% adjust_fit(0,0); pickup fine.nib;
+% numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+% pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+% pos3(curve,180); pos4(vair,270); pos5(hair,320);
+% x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+% lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+% y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+% top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+% filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+% & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+% x10=.5w; y10=.5h; % center point
+% flip(10); % and flip
+% math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+% penlabels(0,1,2,3,4,5,6); endchar;
+%
+ \endinput
+
+"These letters aren't perfect. Especially, the variant k is not an italic
+but a slanted letter. The variant n's descender is not precisely
+positioned. This should be changed in a later version." JK.
+
+%-------------- end ------------------------------------------------------
+The now famous character code reference:
+
+Upper case letters: ABCDEFGHIJKLMNOPQRSTUVWXYZ
+Lower case letters: abcdefghijklmnopqrstuvwxyz
+Digits: 0123456789
+Square, curly, angle braces, parentheses: [] {} <> ()
+Backslash, slash, vertical bar: \ / |
+Punctuation: . ? ! , : ;
+Underscore, hyphen, equals sign: _ - =
+Quotes--right left double: ' ` "
+"at", "number" "dollar", "percent", "and": @ # $ % &
+"hat", "star", "plus", "tilde": ^ * + ~
diff --git a/Master/texmf-dist/fonts/source/public/montex/cyrmorel.mf b/Master/texmf-dist/fonts/source/public/montex/cyrmorel.mf
new file mode 100644
index 00000000000..a80d269bd7b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/cyrmorel.mf
@@ -0,0 +1,75 @@
+% File: cyrmorel.mf
+% Based on: jkbashl.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+ % jkbashl.mf by Joerg Knappen, Bitnet: knappen@dmznat51
+ % Version 11 June 1990
+ % Bashkirian special lowercase letters
+
+cmchar "The Bashkirian letter o-umlaut";
+beginchar(cyrotld,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+if serifs: z90=z2l; x91=x4; y91=y90; pos90(bar,90); pos91(bar,90);
+ z92=.5[z90,z91]; pos92(if serifs: 2.5 fi bar,90);
+ filldraw stroke z90e{1,1}..{1,-1}z92e..{1,1}z91e;
+else: z90=z2l; x91=x4; y91=y90; penpos90(bar,90); penpos91(bar,90);
+ fill stroke z90e--z91e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "The Bashkirian letter u-umlaut";
+beginchar(cyry,if serifs: 9.5u# else: 9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.45u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=stem-stem_corr;
+right_stem=min(hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=0;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=-desc_depth;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+notch_cut: y0:=y2+notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-x_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The Bashkirian letter ha";
+beginchar(cyrshha,11u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(.5u#+serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/montex/cyrmoreu.mf b/Master/texmf-dist/fonts/source/public/montex/cyrmoreu.mf
new file mode 100644
index 00000000000..1eb338706c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/cyrmoreu.mf
@@ -0,0 +1,83 @@
+% File: cyrmoreu.mf
+% Based on: jkbashu.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+ % jkbashu.mf by Joerg Knappen, bitnet knappen@dmznat21
+ % Version 10 June 1990
+ % Bashkirian special uppercase letters
+
+cmchar "The Bashkirian letter O-Umlaut (looks like Theta)";
+beginchar(CYROTLD,14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+if serifs: z90=z2l; x91=x4; y91=y90; pos90(bar,90); pos91(bar,90);
+ z92=.5[z90,z91]; pos92(if serifs: 2.5 fi bar,90);
+ filldraw stroke z90e{1,1}..{1,-1}z92e..{1,1}z91e;
+else: z90=z2l; x91=x4; y91=y90; penpos90(bar,90); penpos91(bar,90);
+ fill stroke z90e--z91e; fi
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The Bashkirian letter U-Umlaut (looks like Y)";
+beginchar(CYRY,13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The Bashkirian letter HA (looks like h)";
+beginchar(CYRSHHA,14u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=h;
+bot y4=bot y2=0;
+x22=x1; y22=.35h;
+pos22(cap_bar,95); y3=y22;
+filldraw stroke z4e--z3e{up}...{down}z22e; % right stem and bowl
+filldraw stroke z1e--z2e; % left stem
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x4l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+inner_jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower right serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,22); endchar;
+\endinput
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmb10.mf b/Master/texmf-dist/fonts/source/public/montex/kmb10.mf
new file mode 100644
index 00000000000..13a9a276f80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmb10.mf
@@ -0,0 +1,80 @@
+% File: kmb10.mf
+% Based on: cmbz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMB"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=10/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmbx10.mf b/Master/texmf-dist/fonts/source/public/montex/kmbx10.mf
new file mode 100644
index 00000000000..b6567fb0ca6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmbx10.mf
@@ -0,0 +1,81 @@
+% File: kmbx10.mf
+% Based on: cmbzx10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Extended 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMBX"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmbx12.mf b/Master/texmf-dist/fonts/source/public/montex/kmbx12.mf
new file mode 100644
index 00000000000..e5ec3848e91
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmbx12.mf
@@ -0,0 +1,81 @@
+% File: kmbx12.mf
+% Based on: cmbzx12.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Extended Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMBX"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=18.3/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmbx5.mf b/Master/texmf-dist/fonts/source/public/montex/kmbx5.mf
new file mode 100644
index 00000000000..068f3a55297
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmbx5.mf
@@ -0,0 +1,81 @@
+% File: kmbx5.mf
+% Based on: cmbzx5.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Extended Roman 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMBX"; font_size 5pt#;
+
+u#:=14.5/36pt#; % unit width
+width_adj#:=7/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123.5/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=80/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=40/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=9/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=15/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=17/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.43pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=5/36pt#; % vertical distance from serif base to tangent
+jut#:=13/36pt#; % protrusion of lowercase serifs
+cap_jut#:=19/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+beak#:=25/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=12/36pt#; % lowercase bar thickness
+slab#:=12/36pt#; % serif and arm thickness
+cap_bar#:=12/36pt#; % uppercase bar thickness
+cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.5/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmbx6.mf b/Master/texmf-dist/fonts/source/public/montex/kmbx6.mf
new file mode 100644
index 00000000000..92ad8c0f207
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmbx6.mf
@@ -0,0 +1,81 @@
+% File: kmbx6.mf
+% Based on: cmbzx6.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Extended Roman 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMBX"; font_size 6pt#;
+
+u#:=16.2/36pt#; % unit width
+width_adj#:=7.8/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=148.2/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=96/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=49/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=10/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.4/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=33/36pt#; % uppercase stem breadth
+cap_curve#:=36/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.47pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=6/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=36/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=1.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.6/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.3; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmbx7.mf b/Master/texmf-dist/fonts/source/public/montex/kmbx7.mf
new file mode 100644
index 00000000000..1bdce9676b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmbx7.mf
@@ -0,0 +1,81 @@
+% File: kmbx7.mf
+% Based on: cmbzx7.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Extended Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMBX"; font_size 7pt#;
+
+u#:=17.9/36pt#; % unit width
+width_adj#:=8.6/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=1/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.9/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=112/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=58/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=11/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=15.8/36pt#; % lowercase hairline breadth
+stem#:=32/36pt#; % lowercase stem breadth
+curve#:=35/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=41/36pt#; % diameter of dots
+cap_hair#:=18/36pt#; % uppercase hairline breadth
+cap_stem#:=38/36pt#; % uppercase stem breadth
+cap_curve#:=41/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.51pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=7/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=46/36pt#; % vertical protrusion of beak serifs
+vair#:=11.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=14/36pt#; % lowercase bar thickness
+slab#:=14/36pt#; % serif and arm thickness
+cap_bar#:=14/36pt#; % uppercase bar thickness
+cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.1/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.2/36pt#; % for small refinements of hairline height
+apex_corr#:=2/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1.1; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmbx8.mf b/Master/texmf-dist/fonts/source/public/montex/kmbx8.mf
new file mode 100644
index 00000000000..8c547c07c53
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmbx8.mf
@@ -0,0 +1,81 @@
+% File: kmbx8.mf
+% Based on: cmbzx8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Extended Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMBX"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmbx9.mf b/Master/texmf-dist/fonts/source/public/montex/kmbx9.mf
new file mode 100644
index 00000000000..05b85db9059
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmbx9.mf
@@ -0,0 +1,81 @@
+% File: kmbx9.mf
+% Based on: cmbzx9.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Extended Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMBX"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmbxsl10.mf b/Master/texmf-dist/fonts/source/public/montex/kmbxsl10.mf
new file mode 100644
index 00000000000..6b9124b8f06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmbxsl10.mf
@@ -0,0 +1,80 @@
+% File: kmbxsl10.mf
+% Based on: cmbozx10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Extended Slanted 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMBXSL"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmbxti10.mf b/Master/texmf-dist/fonts/source/public/montex/kmbxti10.mf
new file mode 100644
index 00000000000..b60748967c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmbxti10.mf
@@ -0,0 +1,81 @@
+% File: kmbxti10.mf
+% Based on: cmbizx10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Bold Extended Text Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMBXTI"; font_size 10pt#;
+
+u#:=21.2/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=11/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=53/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=49/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=50/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmcsc10.mf b/Master/texmf-dist/fonts/source/public/montex/kmcsc10.mf
new file mode 100644
index 00000000000..390dc5e7775
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmcsc10.mf
@@ -0,0 +1,116 @@
+% File: kmcsc10.mf
+% Based on: cmrcz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate mcyccsc; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmcsc8.mf b/Master/texmf-dist/fonts/source/public/montex/kmcsc8.mf
new file mode 100644
index 00000000000..656e54d2c2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmcsc8.mf
@@ -0,0 +1,122 @@
+% File: kmcsc8.mf
+% Based on: cmrcz8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% CMCSC8.MF June 1990
+% This Metafont file is part of AMSFonts 2.0.
+% Copyright (C) 1990, American Mathematical Society.
+% All rights reserved. Copying of this file is authorized only if either:
+% (1) you make absolutely no changes to your copy including filename; OR
+% (2) if you do make changes, you first rename it to some other filename.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Cyrillic Caps and Small Caps 8 point
+% Computer Modern Roman Cap and Small Cap 8 point; created at AMS
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMCSC"; font_size 8pt#;
+
+u#:=18/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2.5/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=13/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=2.7/36pt#;% extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=146/36pt#; % height of tallest characters
+lower.cap_height#:=145.8/36pt#; % height of caps
+lower.x_height#:=85/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=47.6/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=38/36pt#; % depth of comma below baseline
+
+lower.flare#:=20/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.1/36pt#; % uppercase hairline breadth
+lower.stem#:=17/36pt#; % lowercase stem breadth
+lower.cap_stem#:=21/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=20/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.4/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=38/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate mcyccsc; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmcsc9.mf b/Master/texmf-dist/fonts/source/public/montex/kmcsc9.mf
new file mode 100644
index 00000000000..724bccc9a9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmcsc9.mf
@@ -0,0 +1,122 @@
+% File: kmcsc9.mf
+% Based on: cmrcz9.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% CMCSC9.MF June 1990
+% This Metafont file is part of AMSFonts 2.0.
+% Copyright (C) 1990, American Mathematical Society.
+% All rights reserved. Copying of this file is authorized only if either:
+% (1) you make absolutely no changes to your copy including filename; OR
+% (2) if you do make changes, you first rename it to some other filename.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Computer Modern Cyrillic Caps and Small Caps 9 point; base on
+% Computer Modern Roman Caps and Small Caps 9 point; created at AMS
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMCSC"; font_size 9pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=14.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.4/36pt#;% extra sidebar near uppercase serifs
+lower.letter_fit#:=3.5/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=173/36pt#; % height of tallest characters
+lower.cap_height#:=170.4/36pt#; % height of caps
+lower.x_height#:=100.5/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=56.3/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=45/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.6/36pt#; % uppercase hairline breadth
+lower.stem#:=19/36pt#; % lowercase stem breadth
+lower.cap_stem#:=23.5/36pt#; % uppercase stem breadth
+lower.cap_curve#:=28/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=6.2/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=45/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.6/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.6/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.6/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate mcyccsc; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmdunh10.mf b/Master/texmf-dist/fonts/source/public/montex/kmdunh10.mf
new file mode 100644
index 00000000000..f5978de8817
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmdunh10.mf
@@ -0,0 +1,80 @@
+% File: kmdunh10.mf
+% Based on: cmdunh10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Dunhill Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMDUNH"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=370/36pt#; % height of tallest characters
+asc_height#:=350/36pt#; % height of lowercase ascenders
+cap_height#:=346/36pt#; % height of caps
+fig_height#:=332/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmff10.mf b/Master/texmf-dist/fonts/source/public/montex/kmff10.mf
new file mode 100644
index 00000000000..c78850b0f11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmff10.mf
@@ -0,0 +1,80 @@
+% File: kmff10.mf
+% Based on: cmruz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Funny Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMFF"; font_size 10pt#;
+
+u#:=16/36pt#; % unit width
+width_adj#:=-16/36pt#; % width adjustment for certain characters
+serif_fit#:=-3/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=240/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=210/36pt#; % height of numerals
+x_height#:=190/36pt#; % height of lowercase without ascenders
+math_axis#:=55/36pt#; % axis of symmetry for math symbols
+bar_height#:=60/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=100/36pt#; % depth of lowercase descenders
+
+crisp#:=10/36pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=14/36pt#; % width of extrafine details
+hair#:=12/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=20/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=16/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=26/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.5pt#; % thickness of lines in math symbols
+
+dish#:=5/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=3/36pt#; % protrusion of lowercase serifs
+cap_jut#:=4/36pt#; % protrusion of uppercase serifs
+beak_jut#:=-8/36pt#; % horizontal protrusion of beak serifs
+beak#:=10/36pt#; % vertical protrusion of beak serifs
+vair#:=14/36pt#; % vertical diameter of hairlines
+notch_cut#:=2/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=3/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=-10/36pt#; % vertical drop of sloped serifs
+stem_corr#:=-1/36pt#; % for small refinements of stem breadth
+vair_corr#:=-1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=-.1; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=2/3; % parameter for superellipses
+superpull:=-1/8; % extra openness inside bowls
+beak_darkness:=.5; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmfi10.mf b/Master/texmf-dist/fonts/source/public/montex/kmfi10.mf
new file mode 100644
index 00000000000..369357e9ab1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmfi10.mf
@@ -0,0 +1,80 @@
+% File: kmfi10.mf
+% Based on: cmfi10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Funny Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMFI"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=-16/36pt#; % width adjustment for certain characters
+serif_fit#:=-3/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=240/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=210/36pt#; % height of numerals
+x_height#:=190/36pt#; % height of lowercase without ascenders
+math_axis#:=55/36pt#; % axis of symmetry for math symbols
+bar_height#:=60/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=100/36pt#; % depth of lowercase descenders
+
+crisp#:=11/36pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=14/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=17/36pt#; % lowercase stem breadth
+curve#:=21/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=15/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=29/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.5pt#; % thickness of lines in math symbols
+
+dish#:=5/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=3/36pt#; % protrusion of lowercase serifs
+cap_jut#:=4/36pt#; % protrusion of uppercase serifs
+beak_jut#:=-8/36pt#; % horizontal protrusion of beak serifs
+beak#:=10/36pt#; % vertical protrusion of beak serifs
+vair#:=15/36pt#; % vertical diameter of hairlines
+notch_cut#:=2/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=23/36pt#; % uppercase bar thickness
+cap_band#:=18/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=3/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=-10/36pt#; % vertical drop of sloped serifs
+stem_corr#:=-1/36pt#; % for small refinements of stem breadth
+vair_corr#:=-1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=+.1; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=2/3; % parameter for superellipses
+superpull:=-1/8; % extra openness inside bowls
+beak_darkness:=.5; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmfib8.mf b/Master/texmf-dist/fonts/source/public/montex/kmfib8.mf
new file mode 100644
index 00000000000..a5fb446cb86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmfib8.mf
@@ -0,0 +1,80 @@
+% File: kmfib8.mf
+% Based on: cmfib8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Roman Fibonacci Font
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMFIB"; font_size 8pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=-2/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=233/36pt#; % height of tallest characters
+asc_height#:=233/36pt#; % height of lowercase ascenders
+cap_height#:=233/36pt#; % height of caps
+fig_height#:=233/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=89/36pt#; % axis of symmetry for math symbols
+bar_height#:=89/36pt#; % height of crossbar in lowercase e
+comma_depth#:=55/36pt#; % depth of comma below baseline
+desc_depth#:=55/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=13/36pt#; % diameter of sharply rounded corners
+thin_join#:=13/36pt#; % width of extrafine details
+hair#:=21/36pt#; % lowercase hairline breadth
+stem#:=34/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=34/36pt#; % breadth in middle of lowercase s
+flare#:=34/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=34/36pt#; % diameter of dots
+cap_hair#:=21/36pt#; % uppercase hairline breadth
+cap_stem#:=34/36pt#; % uppercase stem breadth
+cap_curve#:=39/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=21/36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=21/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=21/36pt#; % protrusion of uppercase serifs
+beak_jut#:=13/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=13/36pt#; % lowercase bar thickness
+slab#:=13/36pt#; % serif and arm thickness
+cap_bar#:=13/36pt#; % uppercase bar thickness
+cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=3/8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/13; % extra openness inside bowls
+beak_darkness:=5/13; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kminch.mf b/Master/texmf-dist/fonts/source/public/montex/kminch.mf
new file mode 100644
index 00000000000..63f2bb17f70
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kminch.mf
@@ -0,0 +1,80 @@
+% File: kminch.mf
+% Based on: czinch.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Inch-High Sans Serif Bold Extended Caps and Digits
+if unknown cmbase: input cmbase fi
+numeric Pt#; 250/36Pt#=1in#;
+font_identifier:="KMINCH"; font_size 10Pt#;
+
+u#:=22/36Pt#; % unit width
+width_adj#:=22/36Pt#; % width adjustment for certain characters
+serif_fit#:=-9/36Pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36Pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0Pt#; % extra space added to all sidebars
+
+body_height#:=270/36Pt#; % height of tallest characters
+asc_height#:=250/36Pt#; % height of lowercase ascenders
+cap_height#:=250/36Pt#; % height of caps
+fig_height#:=250/36Pt#; % height of numerals
+x_height#:=165/36Pt#; % height of lowercase without ascenders
+math_axis#:=90/36Pt#; % axis of symmetry for math symbols
+bar_height#:=90/36Pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36Pt#; % depth of comma below baseline
+desc_depth#:=70/36Pt#; % depth of lowercase descenders
+
+crisp#:=26/36Pt#; % diameter of serif corners
+tiny#:=26/36Pt#; % diameter of rounded corners
+fine#:=9/36Pt#; % diameter of sharply rounded corners
+thin_join#:=9/36Pt#; % width of extrafine details
+hair#:=49/36Pt#; % lowercase hairline breadth
+stem#:=49/36Pt#; % lowercase stem breadth
+curve#:=49/36Pt#; % lowercase curve breadth
+ess#:=43/36Pt#; % breadth in middle of lowercase s
+flare#:=40/36Pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36Pt#; % diameter of dots
+cap_hair#:=49/36Pt#; % uppercase hairline breadth
+cap_stem#:=53/36Pt#; % uppercase stem breadth
+cap_curve#:=53/36Pt#; % uppercase curve breadth
+cap_ess#:=51/36Pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36Pt#; % thickness of lines in math symbols
+
+dish#:=0Pt#; % amount erased at top or bottom of serifs
+bracket#:=0Pt#; % vertical distance from serif base to tangent
+jut#:=0Pt#; % protrusion of lowercase serifs
+cap_jut#:=0Pt#; % protrusion of uppercase serifs
+beak_jut#:=0Pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36Pt#; % vertical protrusion of beak serifs
+vair#:=26/36Pt#; % vertical diameter of hairlines
+notch_cut#:=49/36Pt#; % maximum breadth above or below notches
+bar#:=26/36Pt#; % lowercase bar thickness
+slab#:=36/36Pt#; % serif and arm thickness
+cap_bar#:=34/36Pt#; % uppercase bar thickness
+cap_band#:=31/36Pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36Pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36Pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36Pt#; % for small refinements of stem breadth
+vair_corr#:=2/36Pt#; % for small refinements of hairline height
+apex_corr#:=18/36Pt#; % extra width at diagonal junctions
+
+o#:=8/36Pt#; % amount of overshoot for curves
+apex_o#:=0Pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcytitle; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmitt10.mf b/Master/texmf-dist/fonts/source/public/montex/kmitt10.mf
new file mode 100644
index 00000000000..024861ce787
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmitt10.mf
@@ -0,0 +1,81 @@
+% File: kmitt10.mf
+% Based on: cmritz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Italic Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMITT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=15/36pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=40/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmr10.mf b/Master/texmf-dist/fonts/source/public/montex/kmr10.mf
new file mode 100644
index 00000000000..54bd5ff35c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmr10.mf
@@ -0,0 +1,82 @@
+% File: kmr10.mf
+% Based on: cmrz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+% Renamed: June 1998, Ulaanbaatar
+%
+% Kirill Mongol Computer Modern Roman 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMR"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmr12.mf b/Master/texmf-dist/fonts/source/public/montex/kmr12.mf
new file mode 100644
index 00000000000..6196d4d3bb3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmr12.mf
@@ -0,0 +1,81 @@
+% File: kmr12.mf
+% Based on: cmrz12.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMR"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmr17.mf b/Master/texmf-dist/fonts/source/public/montex/kmr17.mf
new file mode 100644
index 00000000000..ba00f099e8e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmr17.mf
@@ -0,0 +1,81 @@
+% File: kmr17.mf
+% Based on: cmrz17.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Roman 17 point (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMR"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=425/36pt#; % height of caps
+fig_height#:=401/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=150/36pt#; % height of crossbar in lowercase e
+comma_depth#:=121/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=41/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=13/36pt#; % uppercase hairline breadth
+cap_stem#:=40/36pt#; % uppercase stem breadth
+cap_curve#:=48/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=34/36pt#; % vertical distance from serif base to tangent
+jut#:=42/36pt#; % protrusion of lowercase serifs
+cap_jut#:=50/36pt#; % protrusion of uppercase serifs
+beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs
+beak#:=121/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=17pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches
+serif_drop#:=17/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmr5.mf b/Master/texmf-dist/fonts/source/public/montex/kmr5.mf
new file mode 100644
index 00000000000..066f544108c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmr5.mf
@@ -0,0 +1,81 @@
+% File: kmr5.mf
+% Based on: cmrz5.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic 5 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMR"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=18/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmr6.mf b/Master/texmf-dist/fonts/source/public/montex/kmr6.mf
new file mode 100644
index 00000000000..79ed133427a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmr6.mf
@@ -0,0 +1,81 @@
+% File: kmr6.mf
+% Based on: cmrz6.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic 6 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMR"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmr7.mf b/Master/texmf-dist/fonts/source/public/montex/kmr7.mf
new file mode 100644
index 00000000000..b061cd718a5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmr7.mf
@@ -0,0 +1,81 @@
+% File: kmr7.mf
+% Based on: cmrz7.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Roman 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMR"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmr8.mf b/Master/texmf-dist/fonts/source/public/montex/kmr8.mf
new file mode 100644
index 00000000000..2cee96d44d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmr8.mf
@@ -0,0 +1,81 @@
+% File: kmr8.mf
+% Based on: cmrz8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMR"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmr9.mf b/Master/texmf-dist/fonts/source/public/montex/kmr9.mf
new file mode 100644
index 00000000000..ac131059d02
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmr9.mf
@@ -0,0 +1,81 @@
+% File: kmr9.mf
+% Based on: cmrz9.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMR"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmsl10.mf b/Master/texmf-dist/fonts/source/public/montex/kmsl10.mf
new file mode 100644
index 00000000000..737b4836779
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmsl10.mf
@@ -0,0 +1,81 @@
+% File: kmsl10.mf
+% Based on: cmroz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Slanted 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSL"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmsl12.mf b/Master/texmf-dist/fonts/source/public/montex/kmsl12.mf
new file mode 100644
index 00000000000..6371e92a6e2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmsl12.mf
@@ -0,0 +1,80 @@
+% File: kmsl12.mf
+% Based on: cmroz12.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Slanted Roman 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSL"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmsl8.mf b/Master/texmf-dist/fonts/source/public/montex/kmsl8.mf
new file mode 100644
index 00000000000..fc5febc1d73
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmsl8.mf
@@ -0,0 +1,80 @@
+% File: kmsl8.mf
+% Based on: cmroz8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Slanted Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSL"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmsl9.mf b/Master/texmf-dist/fonts/source/public/montex/kmsl9.mf
new file mode 100644
index 00000000000..0abf3b9ad42
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmsl9.mf
@@ -0,0 +1,80 @@
+% File: kmsl9.mf
+% Based on: cmroz9.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Slanted Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSL"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmsltt10.mf b/Master/texmf-dist/fonts/source/public/montex/kmsltt10.mf
new file mode 100644
index 00000000000..b2803f6c9f1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmsltt10.mf
@@ -0,0 +1,81 @@
+% File: kmsltt10.mf
+% Based on: cmrotz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Slanted Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSLTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmss10.mf b/Master/texmf-dist/fonts/source/public/montex/kmss10.mf
new file mode 100644
index 00000000000..ed4f69a1ceb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmss10.mf
@@ -0,0 +1,80 @@
+% File: kmss10.mf
+% Based on: cmrsz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Sans Serif 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmss12.mf b/Master/texmf-dist/fonts/source/public/montex/kmss12.mf
new file mode 100644
index 00000000000..349b75a624a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmss12.mf
@@ -0,0 +1,80 @@
+% File: kmss12.mf
+% Based on: cmrsz12.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Sans Serif 12 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSS"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmss17.mf b/Master/texmf-dist/fonts/source/public/montex/kmss17.mf
new file mode 100644
index 00000000000..f4a389b1014
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmss17.mf
@@ -0,0 +1,80 @@
+% File: kmss17.mf
+% Based on: cmrsz17.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Sans Serif 17 pt (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSS"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=24/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=432/36pt#; % height of caps
+fig_height#:=408/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=136/36pt#; % height of crossbar in lowercase e
+comma_depth#:=78/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=47/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=47/36pt#; % lowercase curve breadth
+ess#:=47/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50/36pt#; % diameter of dots
+cap_hair#:=47/36pt#; % uppercase hairline breadth
+cap_stem#:=52/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=52/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.8/36pt#; % vertical protrusion of beak serifs
+vair#:=38/36pt#; % vertical diameter of hairlines
+notch_cut#:=32/36pt#; % maximum breadth above or below notches
+bar#:=36/36pt#; % lowercase bar thickness
+slab#:=40/36pt#; % serif and arm thickness
+cap_bar#:=38/36pt#; % uppercase bar thickness
+cap_band#:=35/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=7/36pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmss8.mf b/Master/texmf-dist/fonts/source/public/montex/kmss8.mf
new file mode 100644
index 00000000000..6cece7399d0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmss8.mf
@@ -0,0 +1,80 @@
+% File: kmss8.mf
+% Based on: cmrsz8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Sans Serif 8 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSS"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmss9.mf b/Master/texmf-dist/fonts/source/public/montex/kmss9.mf
new file mode 100644
index 00000000000..e85def409cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmss9.mf
@@ -0,0 +1,80 @@
+% File: kmss9.mf
+% Based on: cmrsz9.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Sans Serif 9 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSS"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=16/36pt#; % width of extrafine details
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmssbx10.mf b/Master/texmf-dist/fonts/source/public/montex/kmssbx10.mf
new file mode 100644
index 00000000000..78865704a8d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmssbx10.mf
@@ -0,0 +1,80 @@
+% File: kmssbx10.mf
+% Based on: cmbszx10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Sans Serif Bold Extended 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSSBX"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=22/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-11/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=165/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=90/36pt#; % height of crossbar in lowercase e
+comma_depth#:=38/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=26/36pt#; % diameter of serif corners
+tiny#:=26/36pt#; % diameter of rounded corners
+fine#:=9/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=49/36pt#; % lowercase hairline breadth
+stem#:=49/36pt#; % lowercase stem breadth
+curve#:=49/36pt#; % lowercase curve breadth
+ess#:=43/36pt#; % breadth in middle of lowercase s
+flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=47/36pt#; % diameter of dots
+cap_hair#:=49/36pt#; % uppercase hairline breadth
+cap_stem#:=53/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=30/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=49/36pt#; % maximum breadth above or below notches
+bar#:=26/36pt#; % lowercase bar thickness
+slab#:=36/36pt#; % serif and arm thickness
+cap_bar#:=34/36pt#; % uppercase bar thickness
+cap_band#:=31/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=45/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=18/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmssdc10.mf b/Master/texmf-dist/fonts/source/public/montex/kmssdc10.mf
new file mode 100644
index 00000000000..2dfbe444223
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmssdc10.mf
@@ -0,0 +1,80 @@
+% File: kmssdc10.mf
+% Based on: cmdszc10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Sans Serif Demibold Condensed 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSSDC"; font_size 10pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-8/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=250/36pt#; % height of numerals
+x_height#:=170/36pt#; % height of lowercase without ascenders
+math_axis#:=95/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=60/36pt#; % depth of lowercase descenders
+
+crisp#:=23/36pt#; % diameter of serif corners
+tiny#:=23/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=40/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=37/36pt#; % breadth in middle of lowercase s
+flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=40/36pt#; % uppercase hairline breadth
+cap_stem#:=44/36pt#; % uppercase stem breadth
+cap_curve#:=44/36pt#; % uppercase curve breadth
+cap_ess#:=42/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=1.5/36pt#; % vertical protrusion of beak serifs
+vair#:=23/36pt#; % vertical diameter of hairlines
+notch_cut#:=40/36pt#; % maximum breadth above or below notches
+bar#:=23/36pt#; % lowercase bar thickness
+slab#:=31/36pt#; % serif and arm thickness
+cap_bar#:=29/36pt#; % uppercase bar thickness
+cap_band#:=27/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=37/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=2/36pt#; % for small refinements of hairline height
+apex_corr#:=14/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.91; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.74; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmssi10.mf b/Master/texmf-dist/fonts/source/public/montex/kmssi10.mf
new file mode 100644
index 00000000000..781654364f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmssi10.mf
@@ -0,0 +1,81 @@
+% File: kmssi10.mf
+% Based on: cmrisz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Slanted Sans Serif 10 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSSI"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmssi12.mf b/Master/texmf-dist/fonts/source/public/montex/kmssi12.mf
new file mode 100644
index 00000000000..542f1b31df9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmssi12.mf
@@ -0,0 +1,82 @@
+% File: kmssi12.mf
+% Based on: cmrisz12.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+
+% Computer Modern Slanted Sans Serif 12 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSSI"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=17/36pt#; % width adjustment for certain characters
+serif_fit#:=-9/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-13/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=300/36pt#; % height of caps
+fig_height#:=283/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=97/36pt#; % height of crossbar in lowercase e
+comma_depth#:=54/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=33/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=33/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=33/36pt#; % uppercase hairline breadth
+cap_stem#:=37/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=37/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.6/36pt#; % vertical protrusion of beak serifs
+vair#:=26/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=27/36pt#; % serif and arm thickness
+cap_bar#:=26/36pt#; % uppercase bar thickness
+cap_band#:=24/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=31/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=6/36pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.98; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmssi17.mf b/Master/texmf-dist/fonts/source/public/montex/kmssi17.mf
new file mode 100644
index 00000000000..e2bf958a211
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmssi17.mf
@@ -0,0 +1,81 @@
+% File: kmssi17.mf
+% Based on: cmrisz17.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Slanted Sans Serif 17 pt (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSSI"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=24/36pt#; % width adjustment for certain characters
+serif_fit#:=-12/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-17/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=432/36pt#; % height of caps
+fig_height#:=408/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=136/36pt#; % height of crossbar in lowercase e
+comma_depth#:=78/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=28/36pt#; % width of extrafine details
+hair#:=47/36pt#; % lowercase hairline breadth
+stem#:=47/36pt#; % lowercase stem breadth
+curve#:=47/36pt#; % lowercase curve breadth
+ess#:=47/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=50/36pt#; % diameter of dots
+cap_hair#:=47/36pt#; % uppercase hairline breadth
+cap_stem#:=52/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=52/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.8/36pt#; % vertical protrusion of beak serifs
+vair#:=38/36pt#; % vertical diameter of hairlines
+notch_cut#:=32/36pt#; % maximum breadth above or below notches
+bar#:=36/36pt#; % lowercase bar thickness
+slab#:=40/36pt#; % serif and arm thickness
+cap_bar#:=38/36pt#; % uppercase bar thickness
+cap_band#:=35/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=46/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=7/36pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmssi8.mf b/Master/texmf-dist/fonts/source/public/montex/kmssi8.mf
new file mode 100644
index 00000000000..d25f96fdaec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmssi8.mf
@@ -0,0 +1,81 @@
+% File: kmssi8.mf
+% Based on: cmrisz8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Slanted Sans Serif 8 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSSI"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmssi9.mf b/Master/texmf-dist/fonts/source/public/montex/kmssi9.mf
new file mode 100644
index 00000000000..b5ce9d4b011
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmssi9.mf
@@ -0,0 +1,81 @@
+% File: kmssi9.mf
+% Based on: cmrisz9.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Slanted Sans Serif 9 pt
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSSI"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=-6.5/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-9/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=225/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=41/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=16/36pt#; % width of extrafine details
+hair#:=27/36pt#; % lowercase hairline breadth
+stem#:=27/36pt#; % lowercase stem breadth
+curve#:=27/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=27/36pt#; % uppercase hairline breadth
+cap_stem#:=31/36pt#; % uppercase stem breadth
+cap_curve#:=31/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=17/36pt#; % maximum breadth above or below notches
+bar#:=20/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4.5/36pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmssq8.mf b/Master/texmf-dist/fonts/source/public/montex/kmssq8.mf
new file mode 100644
index 00000000000..dd5d97025d5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmssq8.mf
@@ -0,0 +1,80 @@
+% File: kmssq8.mf
+% Based on: cmssq8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Sans Serif Quotation Style 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSSQ"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmssqi8.mf b/Master/texmf-dist/fonts/source/public/montex/kmssqi8.mf
new file mode 100644
index 00000000000..78dd299fb81
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmssqi8.mf
@@ -0,0 +1,80 @@
+% File: kmssqi8.mf
+% Based on: cmssqi8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Sans Serif Quotation Style Slanted 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMSSQI"; font_size 8pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=2/36pt#; % width adjustment for certain characters
+serif_fit#:=-10/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-14/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=220/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197/36pt#; % height of caps
+fig_height#:=190/36pt#; % height of numerals
+x_height#:=150/36pt#; % height of lowercase without ascenders
+math_axis#:=80/36pt#; % axis of symmetry for math symbols
+bar_height#:=80/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=40/36pt#; % depth of lowercase descenders
+
+crisp#:=18/36pt#; % diameter of serif corners
+tiny#:=18/36pt#; % diameter of rounded corners
+fine#:=8/36pt#; % diameter of sharply rounded corners
+thin_join#:=8/36pt#; % width of extrafine details
+hair#:=23/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=28/36pt#; % diameter of dots
+cap_hair#:=23/36pt#; % uppercase hairline breadth
+cap_stem#:=27/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=20/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=18/36pt#; % vertical diameter of hairlines
+notch_cut#:=23/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=23/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=.5/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmtcsc10.mf b/Master/texmf-dist/fonts/source/public/montex/kmtcsc10.mf
new file mode 100644
index 00000000000..0ad8e42444e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmtcsc10.mf
@@ -0,0 +1,115 @@
+% File: kmtcsc10.mf
+% Based on: cmrctz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Typewriter Caps and Small Caps 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTCSC"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=21/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=190/36pt#; % height of tallest characters
+lower.cap_height#:=170/36pt#; % height of caps
+lower.x_height#:=120/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=62/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=38/36pt#; % depth of comma below baseline
+
+lower.flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=25/36pt#; % uppercase hairline breadth
+lower.stem#:=25/36pt#; % lowercase stem breadth
+lower.cap_stem#:=25/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+lower.beak#:=26/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=22/36pt#; % serif and arm thickness
+lower.cap_bar#:=22/36pt#; % uppercase bar thickness
+lower.cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=0.85; % factor applied to weights of heavy characters
+
+generate mcyccsc; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmti10.mf b/Master/texmf-dist/fonts/source/public/montex/kmti10.mf
new file mode 100644
index 00000000000..7076060215d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmti10.mf
@@ -0,0 +1,81 @@
+% File: kmti10.mf
+% Based on: cmriz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Text Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTI"; font_size 10pt#;
+
+u#:=18.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmti12.mf b/Master/texmf-dist/fonts/source/public/montex/kmti12.mf
new file mode 100644
index 00000000000..d7ce227c0b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmti12.mf
@@ -0,0 +1,81 @@
+% File: kmti12.mf
+% Based on: cmriz12.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Text Italic 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTI"; font_size 12pt#;
+
+u#:=21.6/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10.8/36pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=12/36pt#; % lowercase hairline breadth
+stem#:=26/36pt#; % lowercase stem breadth
+curve#:=31/36pt#; % lowercase curve breadth
+ess#:=29/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=35/36pt#; % protrusion of lowercase serifs
+cap_jut#:=38/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmti7.mf b/Master/texmf-dist/fonts/source/public/montex/kmti7.mf
new file mode 100644
index 00000000000..52b6c5d9845
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmti7.mf
@@ -0,0 +1,80 @@
+% File: kmti7.mf
+% Based on: cmti7.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Text Italic 7 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTI"; font_size 7pt#;
+
+u#:=14.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=10.5/36pt#; % lowercase hairline breadth
+stem#:=18.5/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=10.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24.5/36pt#; % uppercase curve breadth
+cap_ess#:=21/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmti8.mf b/Master/texmf-dist/fonts/source/public/montex/kmti8.mf
new file mode 100644
index 00000000000..2c234683f87
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmti8.mf
@@ -0,0 +1,81 @@
+% File: kmti8.mf
+% Based on: cmriz8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Text Italic 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTI"; font_size 8pt#;
+
+u#:=15.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=7.9/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmti9.mf b/Master/texmf-dist/fonts/source/public/montex/kmti9.mf
new file mode 100644
index 00000000000..3bb4804d3be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmti9.mf
@@ -0,0 +1,81 @@
+% File: kmti9.mf
+% Based on: cmriz9.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Text Italic 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTI"; font_size 9pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=8.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=30.5/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.5/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmtt10.mf b/Master/texmf-dist/fonts/source/public/montex/kmtt10.mf
new file mode 100644
index 00000000000..a81117e71de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmtt10.mf
@@ -0,0 +1,81 @@
+% File: kmtt10.mf
+% Based on: cmrtz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmtt12.mf b/Master/texmf-dist/fonts/source/public/montex/kmtt12.mf
new file mode 100644
index 00000000000..9adac562b2c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmtt12.mf
@@ -0,0 +1,81 @@
+% File: kmtt12.mf
+% Based on: cmrtz12.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Typewriter Text for use with 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTT"; font_size 12pt#;
+
+u#:=24.7/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=300/36pt#; % height of tallest characters
+asc_height#:=264/36pt#; % height of lowercase ascenders
+cap_height#:=264/36pt#; % height of caps
+fig_height#:=264/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=132/36pt#; % axis of symmetry for math symbols
+bar_height#:=95/36pt#; % height of crossbar in lowercase e
+comma_depth#:=60/36pt#; % depth of comma below baseline
+desc_depth#:=96/36pt#; % depth of lowercase descenders
+
+crisp#:=25/36pt#; % diameter of serif corners
+tiny#:=25/36pt#; % diameter of rounded corners
+fine#:=22/36pt#; % diameter of sharply rounded corners
+thin_join#:=22/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=39/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=28/36pt#; % uppercase stem breadth
+cap_curve#:=28/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=28/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=39/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=39/36pt#; % vertical protrusion of beak serifs
+vair#:=25/36pt#; % vertical diameter of hairlines
+notch_cut#:=28/36pt#; % maximum breadth above or below notches
+bar#:=25/36pt#; % lowercase bar thickness
+slab#:=25/36pt#; % serif and arm thickness
+cap_bar#:=25/36pt#; % uppercase bar thickness
+cap_band#:=25/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=28/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=11/36pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.86; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmtt8.mf b/Master/texmf-dist/fonts/source/public/montex/kmtt8.mf
new file mode 100644
index 00000000000..0828b29df6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmtt8.mf
@@ -0,0 +1,81 @@
+% File: kmtt8.mf
+% Based on: cmrtz8.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Typewriter Text for use with 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTT"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=200/36pt#; % height of tallest characters
+asc_height#:=176/36pt#; % height of lowercase ascenders
+cap_height#:=176/36pt#; % height of caps
+fig_height#:=176/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=88/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=64/36pt#; % depth of lowercase descenders
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=27/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmtt9.mf b/Master/texmf-dist/fonts/source/public/montex/kmtt9.mf
new file mode 100644
index 00000000000..c6ffcc4883a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmtt9.mf
@@ -0,0 +1,81 @@
+% File: kmtt9.mf
+% Based on: cmrtz9.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Typewriter Text for use with 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMTT"; font_size 9pt#;
+
+u#:=18.9/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=225/36pt#; % height of tallest characters
+asc_height#:=198/36pt#; % height of lowercase ascenders
+cap_height#:=198/36pt#; % height of caps
+fig_height#:=198/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=71/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=72/36pt#; % depth of lowercase descenders
+
+crisp#:=21/36pt#; % diameter of serif corners
+tiny#:=21/36pt#; % diameter of rounded corners
+fine#:=20/36pt#; % diameter of sharply rounded corners
+thin_join#:=20/36pt#; % width of extrafine details
+hair#:=24/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=24/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=33/36pt#; % diameter of dots
+cap_hair#:=24/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=24/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=31/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=31/36pt#; % vertical protrusion of beak serifs
+vair#:=21/36pt#; % vertical diameter of hairlines
+notch_cut#:=24/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=21/36pt#; % serif and arm thickness
+cap_bar#:=21/36pt#; % uppercase bar thickness
+cap_band#:=21/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=24/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=9/36pt#; % extra width at diagonal junctions
+
+o#:=3.5/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmu10.mf b/Master/texmf-dist/fonts/source/public/montex/kmu10.mf
new file mode 100644
index 00000000000..c189fefcc7c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmu10.mf
@@ -0,0 +1,80 @@
+% File: kmu10.mf
+% Based on: cmruz10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Cyrillic Unslanted Italic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMU"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit; % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmvtt10.mf b/Master/texmf-dist/fonts/source/public/montex/kmvtt10.mf
new file mode 100644
index 00000000000..ae72c168f64
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmvtt10.mf
@@ -0,0 +1,80 @@
+% File: kmvtt10.mf
+% Based on: cmvtt10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Variable-Width Typewriter Text for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMVTT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mcyrill % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/kmvtti10.mf b/Master/texmf-dist/fonts/source/public/montex/kmvtti10.mf
new file mode 100644
index 00000000000..3eeefeecbe7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/kmvtti10.mf
@@ -0,0 +1,80 @@
+% File: kmvtti10.mf
+% Based on: cmvtti10.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% Computer Modern Variable-Width Typewriter Text Italic for use with 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="KMVTTI"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=15/36pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=40/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate mctextit % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/montex/lmligs.mf b/Master/texmf-dist/fonts/source/public/montex/lmligs.mf
new file mode 100644
index 00000000000..c31b2db0775
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/lmligs.mf
@@ -0,0 +1,38 @@
+% File: mcyrligs.mf
+% Author: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% These ligatures are always active:
+% Creates xagas i, yo, yu, ya ligatures:
+ligtable cyrery: cyri =: cyrishrt,
+ cyro =: cyryo,
+ cyru =: cyryu,
+ cyra =: cyrya;
+
+% Creates XAGAS I, YO, YU, YA ligatures:
+ligtable CYRERY: CYRI =: CYRISHRT,
+ CYRO =: CYRYO,
+ cyro =: CYRYO,
+ CYRU =: CYRYU,
+ cyru =: CYRYU,
+ CYRA =: CYRYA,
+ cyra =: CYRYA;
+
+% Creates the front vowels as ligatures:
+ligtable oct"42": CYRA =: CYREREV,
+ CYRE=: CYRYO,
+ CYRI =: CYRISHRT,
+ CYRO =: CYROTLD,
+ CYRU =: CYRY,
+
+ cyra =: cyrerev,
+ cyre=: cyryo,
+ cyri =: cyrishrt,
+ cyro =: cyrotld,
+ cyru =: cyry;
+
+% Creates the Sh and ShCh consonants as ligatures:
+% ligtable CYRS: CYRSHHA =: CYRSH;
+ligtable cyrs: cyrshha =: cyrsh;
+ligtable CYRCH: CYRSHHA =: CYRSHCH;
+ligtable cyrch: cyrshha =: cyrshch;
diff --git a/Master/texmf-dist/fonts/source/public/montex/macodes.mf b/Master/texmf-dist/fonts/source/public/montex/macodes.mf
new file mode 100644
index 00000000000..2bcdad5e663
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/macodes.mf
@@ -0,0 +1,160 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: macodes.mf
+% Author: Oliver Corff
+% Date: April 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script in Ligature Mode (LMA)
+% Manju Code Slots
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Beginning of macodes.mf
+%
+MANJU_TASLAL := 44;
+MANJU_FULLSTOP := 46;
+MANJU_A := 97; MONG_SHUD := MANJU_A;% "a"
+MANJU_B := 98; MONG_NUMTGEDES := MANJU_B;% "b"
+MANJU_C := 99; MONG_SEREEEWER := MANJU_C;% "c"
+MANJU_D :=100; % "d"
+MANJU_E :=101; % "e"
+MANJU_F :=102; % "f"
+MANJU_G :=103; % "g"
+MANJU_H :=104; % "h"
+MANJU_I :=105; MONG_SHILBE := MANJU_I;% "i"
+MANJU_J :=106; MONG_BOSOOSHILBE := MANJU_J;% "j"
+MANJU_K :=107; MONG_DUNDX := MANJU_K;% "k"
+MANJU_L :=108; MONG_LEWER := MANJU_L;% "l"
+MANJU_M :=109; MONG_MEWER := MANJU_M;% "m"
+MANJU_N :=110; MONG_CEGTEISHUD := MANJU_N;% "n"
+MANJU_O :=111; MONG_GEDES := MANJU_O;% "o"
+MANJU_P :=112; % "p"
+MANJU_R :=114; MONG_ERWEELJINSHILBE := MANJU_R;% "r"
+MANJU_S :=115; MONG_ZAWJ := MANJU_S;% "s"
+MANJU_T :=116; % "t"
+MANJU_U :=117; % "u"
+MANJU_W :=119; MONG_MATGARSHILBE := MANJU_W;% "w"
+MANJU_Y :=121; MONG_ETGERSHILBE := MANJU_Y;% "y"
+MANJU_UU :=118; % "v"
+%
+MANJU_Z :=122; % "z"
+MANJU_DERIBUNZ := 90; % " Z-"
+%
+MANJU_NG := MONG_DUNDNG; % 134 "ng"
+%
+MANJU_DERIBUND := 68; % " D-"
+MANJU_DERIBUNE := 69; % " E-"
+MANJU_DERIBUNF := 70; % " F-"
+MANJU_DERIBUNGA := 71; % " G-"
+MANJU_DERIBUNHA := 72; % " H-"
+MANJU_DERIBUNKA := 75; MONG_XEWTEEQIX := MANJU_DERIBUNKA;% " K-"
+MANJU_DERIBUNL := 76; % " L-"
+MANJU_DERIBUNM := 77; % " M-"
+MANJU_DERIBUNN := 78; % " N-"
+MANJU_DERIBUNS := 83; % " S-"
+MANJU_DERIBUNT := 84; % " T-"
+%
+MANJU_DUBENA := MONG_SUUL; % 128 "-a "
+MANJU_DUBENE :=149; % "-e "
+MANJU_DUBENI := MONG_ADAGI; % 136 "-i "
+MANJU_DUBENO := MONG_ADAGU; % 135 "-u "
+MANJU_DUBENU :=150; % "-u "
+MANJU_DUBENUU :=151; % "-uu "
+MANJU_DUBENB := MONG_ADAGB; % 137 "-b "
+MANJU_DUBENNG := MONG_ADAGNG; % 142 "ng"
+MANJU_DUBENK :=152; % ""
+MANJU_DUBENL := MONG_SUULIINLEWER; % 143 "-l "
+MANJU_DUBENM := MONG_SUULIINMEWER; % 146 "-l "
+MANJU_DUBENS := MONG_ADAGS; % 139 "-l "
+MANJU_DUBENT := MONG_ADAGD; % 139 "-l "
+%
+MANJU_VARK :=153; MONG_DUNDG := MANJU_VARK; % "kC"
+MANJU_VART := MONG_DUNDD; % 133 "tC"
+%
+MANJU_TE :=154; % "te"
+MANJU_DERIBUNTE :=155; % " Te-"
+MANJU_DE :=156; % "de"
+MANJU_DERIBUNDE :=157; % " De-"
+MANJU_TIBT :=158;
+MANJU_SH :=159; % "sh"
+MANJU_DERIBUNSH :=160; % " sh-"
+MANJU_DUBENSH :=161; % "-sh "
+MANJU_GH :=162; % ""
+MANJU_HH :=163; % ""
+MANJU_KH :=164; % ""
+%
+MANJU_DZ :=165; % "-dz-"
+MANJU_DERIBUNDZ :=166; % " dz-"
+MANJU_DZI :=167; % "-dzi-"
+MANJU_DERIBUNDZI :=168; % " dzi-"
+%
+MANJU_JY :=169; % "-jy-"
+MANJU_DERIBUNJY :=170; % " jy-"
+%
+MANJU_SY :=172; % "-sy-"
+MANJU_DERIBUNSY :=173; % " sy-"
+%
+MANJU_CY :=174; % "-cy-"
+%
+MANJU_TS :=175; % "-ts-"
+MANJU_DERIBUNTS :=176; % " ts-"
+%
+MANJU_TSH :=177; % "-tsh-"
+MANJU_DERIBUNTSH :=178; % " tsh-"
+%
+MANJU_TSHY :=179; % "-tshy-"
+MANJU_DERIBUNTSHY :=180; % " tshy-"
+%
+MANJU_ZH :=181; % "-zh-"
+MANJU_DERIBUNZH :=182; % " zh-"
+%
+MANJU_ZR :=183; % "-zr-"
+MANJU_DERIBUNZR :=184; % " zr-"
+%
+MANJU_NGA :=185; % "-ng'-"
+MANJU_DERIBUNNGA :=186; % " ng'-"
+%
+MANJU_LH :=188; % "-lh-"
+MANJU_DERIBUNLH :=189; % " lh-"
+MANJU_HIGHLH :=190; % "-^lh-"
+MANJU_HIGHDERIBUNLH :=191; % " ^lh-"
+%
+MANJU_TIBP := 80; MONG_NUMTDELBENQIX := MANJU_TIBP; % "p'"
+%
+MANJU_BA :=200; MONG_LIGBA := MANJU_BA; % "ba"
+MANJU_BE :=201; % "be"
+MANJU_BI :=202; MONG_LIGBI := MANJU_BI; % "bi"
+MANJU_BO :=203; MONG_LIGBU := MANJU_BO; % "bo"
+MANJU_BU :=204; % "bu"
+MANJU_BUU :=205; % "buu"
+%
+MANJU_PA :=208; % "pa"
+MANJU_PE :=209; % "pe"
+MANJU_PI :=210; % "pi"
+MANJU_PO :=211; % "po"
+MANJU_PU :=212; % "pu"
+%
+MANJU_GHA :=216; % "gha"
+MANJU_GE :=217; % "ge"
+MANJU_GI :=218; % "ge"
+MANJU_GHO :=219; % "gho"
+MANJU_GU :=220; % "gu"
+%
+MANJU_HHA :=224; % "hha"
+MANJU_HE :=225; % "he"
+MANJU_HI :=226; % "hi"
+MANJU_HHO :=227; % "hho"
+MANJU_HU :=228; % "hu"
+%
+MANJU_KHA :=232; % "kha"
+MANJU_KE :=233; MONG_LIGKA := MANJU_KE;
+MANJU_KI :=234; MONG_LIGKI := MANJU_KI;
+MANJU_KHO :=235; % "kho"
+MANJU_KU :=236; MONG_LIGKU := MANJU_KU;
+%
+MANJU_TIBPA :=240; MONG_LIGPA := MANJU_TIBPA; % "p'a"
+MANJU_TIBPE :=241; % "p'e"
+MANJU_TIBPI :=242; MONG_LIGPI := MANJU_TIBPI; % "p'a"
+MANJU_TIBPO :=243; MONG_LIGPU := MANJU_TIBPO; % "p'a"
+MANJU_TIBPU :=244;
diff --git a/Master/texmf-dist/fonts/source/public/montex/maglyphs.mf b/Master/texmf-dist/fonts/source/public/montex/maglyphs.mf
new file mode 100644
index 00000000000..84c2c1c2a41
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/maglyphs.mf
@@ -0,0 +1,660 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: maglyphs.mf
+% Author: Oliver Corff
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script (LMA)
+% Manju Bithe Glyph Definitions
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+ writing:=Bithe;
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_TASLAL,tewidth#,height#,depth#);
+ "Manju Taslal Temdeg";
+ manjudusal(2/4tewidth,Centerline,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_FULLSTOP,bawidth#,height#,depth#);
+ "Manju Full Stop";
+ manjudusal(5/16bawidth,Centerline,3thin,2thick);
+ ManjuDusal(11/16bawidth,Centerline,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_E,shudwidth#,height#,depth#);
+ "Manju letter e, dotted shud";
+ shud(0);
+ dusal (1/2w,underinner+thin,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DUBENE,shudwidth#,height#,depth#);
+ "Manju letter e in final position";
+ suul;
+ dusal (12/12w,underinner+thin,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_U,gedeswidth#,height#,depth#);
+ "Manju letter u, dotted gedes";
+ nuruu(w,0);
+ z1r=(w-bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(bearing,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+ penlabels(1,2,3);
+ dusal (1/2gedeswidth,underinner+thin,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DUBENU,eswidth#,height#,depth#);
+ "Manju letter final u";
+ nuruu(w,w-numtaigedeswidth);
+
+ z1r=(w-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(w-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(0,nuruuright); % nuruuright was Centerline
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/4thin,-180);
+ penstroke (z4e{down}..z5e..{up}z6e) ifrotated;
+ penlabels(1,2,3,4,5,6);
+ dusal (17/36w,1.6underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_UU,gedeswidth#+shilbewidth#,height#,depth#);
+ "Manju letter ^u";
+ nuruu(w,0);
+ z1r=(w-bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(bearing+shilbewidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+ z4r=(shilbewidth,nuruuleft);
+ z5r=(+3thin,shilbeheight);
+ penpos4(2thin,0);
+ penpos5(4thin,60);
+ penstroke (z4e--z5e) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DUBENUU,gedeswidth#+shudwidth#,height#,depth#);
+ "Manju letter ^u, final form";
+ nuruu(w,shudwidth);
+ z1r=(w-bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(bearing+shudwidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+ z4=(shudwidth,Centerline);
+ z5=(1/2shudwidth,Centerline);
+ z6=(0,nuruuleft+thin);
+ penpos4(nuruuwidth,90);
+ penpos5(14/16nuruuwidth,80);
+ penpos6(epsilon,45);
+ penstroke (z4e---z5e..z6e) ifrotated;
+ penlabels(1,2,3,4,5,6);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNGA,tewidth#,height#,depth#);
+ "Manju letter initial ga";
+ xewteeqix;
+ dusal(-1/2shudwidth,underinner+thin,2thick,1thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNHA,tewidth#,height#,depth#);
+ "Manju letter initial ha";
+ xewteeqix;
+ dugui(-1/2shudwidth,underinner,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_G,2shudwidth#,height#,depth#);
+ "Manju letter medial g";
+ shud(0);
+ shud(shudwidth);
+ dusal(shudwidth,underinner+thin,2thick,1thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_H,2shudwidth#,height#,depth#);
+ "Manju letter medial ha";
+ shud(0);
+ shud(shudwidth);
+ dugui(shudwidth,underinner,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_GE,tewidth#,height#,depth#);
+ "Manju Ligature GE";
+ ligka;
+ dusal (21/36w,1.35underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_HE,tewidth#,height#,depth#);
+ "Manju Ligature: HE";
+ ligka;
+ dugui (21/36w,1.6underouter,1.5thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_GI,eswidth#+secAwidth#,height#,depth#);
+ "Manju Manju Ligature: GI";
+ ligki;
+ dusal (22/36w,1.35underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_HI,eswidth#+secAwidth#,height#,depth#);
+ "Manju Manju Ligature: HI";
+ ligki;
+ dugui (22/36w,1.6underouter,1.5thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_GU,bawidth#,height#,depth#);
+ "Manju Ligature: GU";
+ ligku;
+ dusal (18/36w,1.65underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_HU,bawidth#,height#,depth#);
+ "Manju Ligature: HU";
+ ligku;
+ dugui (18/36w,1.9underouter,1.5thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_KH,gedeswidth#,height#,depth#);
+ "Manju letter kh";
+ qagt;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_KHA,bawidth#,height#,depth#);
+ "Manju Ligature: KHA";
+ ligkha;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_KHO,bawidth#,height#,depth#);
+ "Manju Ligature: KHO";
+ ligkhu;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_GH,gedeswidth#,height#,depth#);
+ "Manju letter GH";
+ qagt;
+ dusal (15/36w,1.65underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_GHA,bawidth#,height#,depth#);
+ "Manju Ligature: GHA";
+ ligkha;
+ dusal (21/36w,1.65underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_GHO,bawidth#,height#,depth#);
+ "Manju Ligature: GHO";
+ ligkhu;
+ dusal (19/36w,1.65underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_HH,gedeswidth#,height#,depth#);
+ "Manju letter HH";
+ qagt;
+ dugui (15/36w,1.9underouter,1.5thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_HHA,bawidth#,height#,depth#);
+ "Manju Ligature: HHA";
+ ligkha;
+ dugui (21/36w,1.9underouter,1.5thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_HHO,bawidth#,height#,depth#);
+ "Manju Ligature: HHO";
+ ligkhu;
+ dugui (18/36w,1.9underouter,1.5thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DUBENK,2shudwidth#,height#,depth#);
+ "Manju Final k";
+ shud(shudwidth);
+ bagaodoisuul;
+ dusal(9/12shudwidth,gedesouter,3thin,2thick);
+ dusal(3/12shudwidth,gedesouter,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_BE,bawidth#,height#,depth#);
+ "Manju Manju Ligature: BE";
+ ligba;
+ dusal (21/36w,1.65underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_BU,2numtaigedeswidth#,height#,depth#);
+ "Manju Ligature: BU";
+ ligbu(0);
+ dusal (1/2w,1.65underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_BUU,2numtaigedeswidth#+shilbewidth#,height#,depth#);
+ "Manju Ligature: BUU";
+ ligbu(shilbewidth);
+ nuruu(shilbewidth,0);
+ z11r=(shilbewidth,nuruuleft);
+ z12r=(+3thin,shilbeheight);
+ penpos11(2thin,0);
+ penpos12(4thin,60);
+ penstroke (z11e--z12e) ifrotated;
+ penlabels(1,2,3,4,5,11,12);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_D,eswidth#,height#,depth#);
+ "Manju letter de";
+ roundgedestshilbe;
+ dusal(1/2shudwidth,underinner+thin,2thick,1thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_T,eswidth#,height#,depth#);
+ "Manju letter te";
+ roundgedestshilbe;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUND,cewidth#,height#,depth#);
+ "Manju letter initial D";
+ deribun_ta;
+ dusal(1/2shudwidth,underinner+thin,2thick,1thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNT,cewidth#,height#,depth#);
+ "Manju letter initial t";
+ deribun_ta;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DE,eswidth#,height#,depth#);
+ "Manju letter de";
+ manju_te;
+ dusal(1/2shudwidth,underinner+thin,2thick,1thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_TE,eswidth#,height#,depth#);
+ "Manju letter te";
+ manju_te;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNDE,cewidth#,height#,depth#);
+ "Manju letter De";
+ deribun_te;
+ dusal(-1/4shudwidth,underinner+thin,2thick,1thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNTE,cewidth#,height#,depth#);
+ "Manju initial letter Te";
+ deribun_te;
+ penlabels(1,2,3,4);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_TIBT,eswidth#,height#,depth#);
+ "Manju initial letter Te";
+ nuruu(w,0);
+ z1r=(w-1/2bearing,nuruuleft);
+ z2 =(07/16w,orxicouter);
+ penpos1(2thin,0);
+ penpos2(2thin,45);
+ penstroke (z1e--z2e) ifrotated;
+ z3r=z2;
+ z4r=(bearing,7/12[y1,y2]);
+
+ penpos3(2thin,115 );
+ penpos4(2thin,210);
+
+ z5 =(6/16w,3/12[y1,y2]);
+ z6 =(x1-2u,nuruuleft);
+
+ penpos5(1.5thin,230);
+ penpos6(1.5thin,180);
+ penstroke (z3e{dir 205}..tension 2.5..z4e..tension 2.5..
+ z5e..tension infinity..z6e)
+ ifrotated;
+ penlabels(1,2,3,4,5,6);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_SH,tewidth#,height#,depth#);
+ "Manju letter `sh'";
+ zawj;
+ manju_sh_stroke;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNSH,tewidth#,height#,depth#);
+ "Manju letter `sh' in initial position";
+ exenzawj;
+ manju_sh_stroke;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DUBENSH,tewidth#,height#,depth#);
+ "Manju letter `sh' in final position";
+ suulzawj;
+ manju_sh_stroke;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DZ,tewidth#,height#,depth#);
+ "Manju letter `dz'";
+ zawj;
+ manju_dz_stroke;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNDZ,tewidth#,height#,depth#);
+ "Manju letter `dz' in initial position";
+ exenzawj;
+ manju_dz_stroke;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DZI,tewidth#,height#,depth#);
+ "Manju ligature `dzi'";
+ manju_si;
+ manju_dz_stroke;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNDZI,tewidth#,height#,depth#);
+ "Manju letter `dzi' in initial position";
+ manju_deribun_si;
+ manju_dz_stroke;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_TS,tewidth#,height#,depth#);
+ "Manju letter `ts'";
+ zawj;
+ manju_dz_stroke;
+ dugui(3/5tewidth,1.1suulouter,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNTS,tewidth#,height#,depth#);
+ "Manju letter `ts' in initial position";
+ exenzawj;
+ manju_dz_stroke;
+ dugui(3/5tewidth,1.1suulouter,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_TSH,tewidth#,height#,depth#);
+ "Manju letter `tsh'";
+ zawj;
+ manju_dz_stroke;
+ manju_tsh_stroke;
+ tsh_picture:=currentpicture;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNTSH,tewidth#,height#,depth#);
+ "Manju letter `tsh' in initial position";
+ exenzawj;
+ manju_dz_stroke;
+ manju_tsh_stroke;
+ deribuntsh_picture:=currentpicture;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_TSHY,shudwidth#+tewidth#,height#,depth#);
+ "Manju letter `tshy'";
+ currentpicture:= tsh_picture shifted
+ if LR: (0,0) else: (shudwidth,0) fi;
+ sy_nuruu(shudwidth,0);
+% manju_dz_stroke;
+% manju_tsh_stroke;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNTSHY,shudwidth#+tewidth#,height#,depth#);
+ "Manju letter `tshy' in initial position";
+ currentpicture:= deribuntsh_picture shifted
+ if LR: (0,0) else: (shudwidth,0) fi;
+ sy_nuruu(shudwidth,0);
+% manju_dz_stroke;
+% manju_tsh_stroke;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_Z,tewidth#,height#,depth#);
+ "Manju letter `z'";
+ zawj;
+ dugui(3/5tewidth,suulouter,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNZ,tewidth#,height#,depth#);
+ "Manju letter `z' in initial position";
+ exenzawj;
+ dugui(3/5tewidth,suulouter,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_ZH,tewidth#,height#,depth#);
+ "Manju letter `zh'";
+ zawj;
+ manju_sh_stroke;
+ dugui(3/5tewidth,suulouter,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNZH,tewidth#,height#,depth#);
+ "Manju letter `zh' in initial position";
+ exenzawj;
+ manju_sh_stroke;
+ dugui(3/5tewidth,suulouter,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_NGA,shudwidth#,height#,depth#);
+ "Manju (Tibetan) letter `ng'";
+ shud(0);
+ dugui(1/2shudwidth,yashilbeheight,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNNGA,shudwidth#,height#,depth#);
+ "Manju (Tibetan) letter `ng' in initial position";
+ titem;
+ dugui(1/2shudwidth,yashilbeheight,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_JY,eswidth#,height#,depth#);
+ "Manju letter jy; bosoo_shilbe with circle";
+ bosoo_shilbe;
+ dugui(1/2eswidth,underinner,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNJY,shilbewidth#,height#,depth#);
+ "Manju letter jy; shilbe with circle";
+ shilbe(0);
+ dugui(1/2shilbewidth,underinner,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_CY,eswidth#,height#,depth#);
+ "Manju letter cy";
+ seree_ewer;
+ dugui(1/2eswidth,underinner,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_SY,tewidth#+shudwidth#,height#,depth#);
+ "Manju letter sy";
+ currentpicture:= zawjpicture shifted
+ if LR: (0,0) else: (shudwidth,0) fi;
+ sy_nuruu(shudwidth,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNSY,tewidth#+shudwidth#,height#,depth#);
+ "Manju letter initial sy";
+ currentpicture:= exenzawjpicture shifted
+ if LR: (0,0) else: (shudwidth,0) fi;
+ sy_nuruu(shudwidth,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_ZR,shudwidth#,height#,depth#);
+ "Manju letter zr";
+ nuruu(shudwidth,0);
+ z1 =(1/2shudwidth,gedesinner);
+ z2 =(1/2shudwidth,underinner);
+ penpos1(2.5thin,-15);
+ penpos2(2.5thin,-15);
+ penstroke (z1e--z2e) ifrotated;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNZR,shudwidth#,height#,depth#);
+ "Manju letter initial zr";
+ nuruu(1/2shudwidth,0);
+ z1r=(1/2shudwidth,gedesinner);
+ z2r=(1/2shudwidth,underinner);
+ penpos1(2.5thin,-15);
+ penpos2(2.5thin,-15);
+ penstroke (z1e--z2e) ifrotated;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_LH,shudwidth#,height#,depth#);
+ "Manju Tibetan letter lh";
+ shud(0);
+ l_ewer(1/2shudwidth);
+ dugui(-1/2shudwidth,underinner,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if style=wood: exenlwidth#:=numtaigedeswidth#+shudwidth# fi;
+if style=steel: exenlwidth#:=shudwidth# fi;
+
+beginchar(MANJU_DERIBUNLH,shudwidth#,height#,depth#);
+ "Manju Tibetan letter initial lh";
+ if style=wood:
+ "Style: Wood";
+ titem_stroke(shudwidth);
+ shud(0);
+ l_ewer(1/2shudwidth);
+ fi;
+ if style=steel:
+ "Style: Steel";
+ titem;
+ l_ewer(1/2shudwidth);
+ fi;
+ dugui(-1/2shudwidth,underinner,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_HIGHLH,shudwidth#,height#,depth#);
+ "Manju Tibetan letter lh";
+ shud(0);
+ l_ewer(1/2shudwidth);
+ dugui(-1/2shudwidth,underouter,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if style=wood: exenlwidth#:=numtaigedeswidth#+shudwidth# fi;
+if style=steel: exenlwidth#:=shudwidth# fi;
+
+beginchar(MANJU_HIGHDERIBUNLH,shudwidth#,height#,depth#);
+ "Manju Tibetan letter initial lh";
+ if style=wood:
+ titem_stroke(shudwidth);
+ shud(0);
+ l_ewer(1/2shudwidth);
+ fi;
+ if style=steel:
+ titem;
+ l_ewer(1/2shudwidth);
+ fi;
+ dugui(-1/2shudwidth,underouter,1.5thick)
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_F,cewidth#,height#,depth#);
+ "Manju letter f";
+ nuruu(cewidth,0);
+ z1 =(1/8gedeswidth,gedesinner);
+ z2r=(3/8gedeswidth,yashilbeheight);
+ z3 =(7/8gedeswidth-1/4bearing,nuruuleft); % was 8/8gedeswidth
+ penpos1(epsilon,+135);
+ penpos2(3.75thin,+90);
+ penpos3(1.50thin,0);
+ z4 =(10/8gedeswidth,underinner-thin); % was 11/8
+ z5 =(12/8gedeswidth,underinner); % was 13/8
+ penpos4(3.25thin, 90);
+ penpos5( epsilon,+135);
+ penstroke (z1e..tension 2.50..z2e..tension 3.5..z3e
+ ..tension 3.5..z4e..tension 1.75..z5e) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_DERIBUNF,cewidth#,height#,depth#);
+ "Manju letter initial f";
+ nuruu(gedeswidth+1/3bearing,0);
+ z1 =(1/8gedeswidth,gedesinner);
+ z2r=(3/8gedeswidth,yashilbeheight);
+ z3 =(gedeswidth-1/4bearing,nuruuleft);
+ penpos1(epsilon,+135);
+ penpos2(3.75thin,+90);
+ penpos3(1.50thin,0);
+ z4 =(11/8gedeswidth,underinner);
+ z5 =(13/8gedeswidth,underinner+thin);
+ penpos4(3.25thin, 90);
+ penpos5( epsilon,+135);
+ penstroke (z1e..tension 2.50..z2e..tension 3.5..z3e
+ ..tension 3.5..z4e..tension 1.75..z5e) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_P,eswidth#,height#,depth#);
+ "Manju letter `p'";
+ nuruu(eswidth,eswidth-numtaigedeswidth);
+
+ z1r=(eswidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(eswidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/4[x4,x8],underouter);
+ z6 =(1/2[x4,x8],0);
+ z7l=(3/4[x4,x8],underouter);
+ z8l=(0,Centerline);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/4thin,-180);
+ penpos7(3/4(underinner-underouter),-270);
+ penpos8(1/2thin, 0);
+ penstroke (z4e{down}..z5e..{up}z6e) ifrotated;
+ penstroke (z6e{down}..z7e..tension 1.2..{up}z8e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_PA,bawidth#,height#,depth#);
+ "Manju ligature `pa'";
+ manju_pa;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_PE,bawidth#,height#,depth#);
+ "Manju ligature `pe'";
+ manju_pa;
+ dusal (22/36bawidth,1.85underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_PI,biwidth#,height#,depth#);
+ "Manju ligature `pi'";
+ manju_pi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_PO,bawidth#,height#,depth#);
+ "Manju ligature `po'";
+ manju_po;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_PU,bawidth#,height#,depth#);
+ "Manju ligature `pu'";
+ manju_po;
+ dusal (1/2w,1.65underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_TIBPE,bawidth#,height#,depth#);
+ "Manju ligature p'e";
+ ligmongpa;
+ dusal (1/2w,1.65underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MANJU_TIBPU,bawidth#,height#,depth#);
+ "Manju ligature p'u";
+ ligmongpu;
+ dusal (1/2w,1.65underouter,2thick,1thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/mantrlig.mf b/Master/texmf-dist/fonts/source/public/montex/mantrlig.mf
new file mode 100644
index 00000000000..8d543f702c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mantrlig.mf
@@ -0,0 +1,2606 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mantrlig.mf
+% Author: Oliver Corff
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Manju Script (LMA)
+% Manju Bithe Retransliteration Engine
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ENV: % "*"
+ %
+ % vowels
+ %
+ MANJU_A =: MANJU_A , % ""
+ MANJU_E =: MANJU_E , % ""
+ MANJU_I =: MANJU_I , % ""
+ MANJU_O =: MANJU_O , % ""
+ MANJU_U =: MANJU_U , % ""
+ MANJU_UU =: MANJU_UU , % ""
+ %
+ % consonants
+ %
+ MANJU_B =: MANJU_B , % ""
+ MANJU_C =: MANJU_C , % ""
+ MANJU_D =: MANJU_D , % ""
+ MANJU_F =: MANJU_F , % ""
+ MANJU_G =: MANJU_G , % ""
+ MANJU_H =: MANJU_H , % ""
+ MANJU_J =: MANJU_J , % ""
+ MANJU_K =: MANJU_K , % ""
+ MANJU_L =: MANJU_L , % ""
+ MANJU_M =: MANJU_M , % ""
+ MANJU_N =: MANJU_N , % ""
+ MANJU_P =: MANJU_P , % ""
+ MANJU_R =: MANJU_R , % ""
+ MANJU_S =: MANJU_S , % ""
+ MANJU_T =: MANJU_T , % ""
+ MANJU_W =: MANJU_W , % ""
+ MANJU_Y =: MANJU_Y , % ""
+ MANJU_Z =: MANJU_Z , % ""
+ %
+ % boundaries
+ %
+ MONG_BNDRY =: MONG_BNDRY , % ""
+ MONG_ZERO =: MONG_ZERO , % ""
+ MONG_ONE =: MONG_ONE , % ""
+ MONG_TWO =: MONG_TWO , % ""
+ MONG_THREE =: MONG_THREE , % ""
+ MONG_FOUR =: MONG_FOUR , % ""
+ MONG_FIVE =: MONG_FIVE , % ""
+ MONG_SIX =: MONG_SIX , % ""
+ MONG_SEVEN =: MONG_SEVEN , % ""
+ MONG_EIGHT =: MONG_EIGHT , % ""
+ MONG_NINE =: MONG_NINE , % ""
+ MONG_LT =: MONG_LT , % ""
+ MONG_GT =: MONG_GT , % ""
+ MONG_LGU =: MONG_LGU , % ""
+ MONG_RGU =: MONG_RGU , % ""
+ MONG_OPAREN =: MONG_OPAREN , % ""
+ MONG_CPAREN =: MONG_CPAREN , % ""
+ MONG_DORWOLJIN =: MONG_DORWOLJIN, % ""
+ MANJU_FULLSTOP =: MANJU_FULLSTOP , % ""
+ MONG_COLON =: MONG_COLON , % ""
+ MONG_ELLIPSIS =: MONG_ELLIPSIS , % ""
+ MONG_EXCLAMATION =: MONG_EXCLAMATION, % ""
+ MONG_QUESTION =: MONG_QUESTION, % ""
+ MONG_QUESTEXCLAM =: MONG_QUESTEXCLAM, % ""
+ MONG_EXCLAMQUEST =: MONG_EXCLAMQUEST, % ""
+ MANJU_TASLAL =: MANJU_TASLAL , % ""
+ MONG_MSP =: MONG_MSP , % ""
+ MONG_MVS =: MONG_MVS , % ""
+ MONG_NCEG =: MONG_NCEG , % ""
+ MONG_GCEG =: MONG_GCEG , % ""
+ MONG_TITEMSTROKE =: MONG_TITEMSTROKE; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable ||: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ZERO: % "0"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ONE: % "1"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_TWO: % "2"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_THREE: % "3"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_FOUR: % "4"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_FIVE: % "5"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_SIX: % "6"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_SEVEN: % "7"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_EIGHT: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_NINE: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LT: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_GT: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LGU: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_RGU: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_OPAREN: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_CPAREN: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_DORWOLJIN: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_FULLSTOP: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_COLON: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ELLIPSIS: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_EXCLAMATION: % "!"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_QUESTION: % "?"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_QUESTEXCLAM: % "?!"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_EXCLAMQUEST: % "!?"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_TASLAL: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_MSP: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_MVS: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_NCEG: % "-"
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_I =: MANJU_DUBENI, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_GCEG: % "="
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_TITEMSTROKE: % ""
+ MANJU_A =:| MANJU_DERIBUNE, % ""
+ MANJU_I =:| MANJU_DERIBUNE, % ""
+ MANJU_O =:| MANJU_DERIBUNE, % ""
+ MANJU_U =:| MANJU_DERIBUNE, % ""
+ MANJU_UU =:| MANJU_DERIBUNE, % ""
+ MANJU_D =: MANJU_DERIBUND, % ""
+ MANJU_E =: MANJU_DERIBUNE, % ""
+ MANJU_F =: MANJU_DERIBUNF, % ""
+ MANJU_G =: MANJU_DERIBUNGA, % ""
+ MANJU_H =: MANJU_DERIBUNHA, % ""
+ MANJU_J =: MANJU_I, % ""
+ MANJU_K =: MANJU_DERIBUNKA, % ""
+ MANJU_L =: MANJU_DERIBUNL, % ""
+ MANJU_M =: MANJU_DERIBUNM, % ""
+ MANJU_N =: MANJU_DERIBUNN, % ""
+ MANJU_S =: MANJU_DERIBUNS, % ""
+ MANJU_T =: MANJU_DERIBUNT, % ""
+ MANJU_Z =: MANJU_DERIBUNZ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ORXIC: % "a"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_A: % "a"
+ %
+ % final a
+ %
+ MONG_BNDRY =:| MANJU_DUBENA , % ""
+ MONG_ZERO =:| MANJU_DUBENA , % ""
+ MONG_ONE =:| MANJU_DUBENA , % ""
+ MONG_TWO =:| MANJU_DUBENA , % ""
+ MONG_THREE =:| MANJU_DUBENA , % ""
+ MONG_FOUR =:| MANJU_DUBENA , % ""
+ MONG_FIVE =:| MANJU_DUBENA , % ""
+ MONG_SIX =:| MANJU_DUBENA , % ""
+ MONG_SEVEN =:| MANJU_DUBENA , % ""
+ MONG_EIGHT =:| MANJU_DUBENA , % ""
+ MONG_NINE =:| MANJU_DUBENA , % ""
+ MONG_LT =:| MANJU_DUBENA , % ""
+ MONG_GT =:| MANJU_DUBENA , % ""
+ MONG_LGU =:| MANJU_DUBENA , % ""
+ MONG_RGU =:| MANJU_DUBENA , % ""
+ MONG_OPAREN =:| MANJU_DUBENA , % ""
+ MONG_CPAREN =:| MANJU_DUBENA , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENA , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENA , % ""
+ MONG_COLON =:| MANJU_DUBENA , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENA , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENA , % ""
+ MONG_QUESTION =:| MANJU_DUBENA , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENA , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENA , % ""
+ MANJU_TASLAL =:| MANJU_DUBENA , % ""
+ MONG_MSP =:| MANJU_DUBENA , % ""
+ MONG_MVS =:| MANJU_DUBENA , % ""
+ MONG_NCEG =:| MANJU_DUBENA , % ""
+ MONG_GCEG =:| MANJU_DUBENA , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENA ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_B: % "b"
+ MANJU_A =: MANJU_BA , % "ba"
+ MANJU_E =: MANJU_BE , % "be"
+ MANJU_I =: MANJU_BI , % "bi"
+ MANJU_O =: MANJU_BO , % "bo"
+ MANJU_U =: MANJU_BU , % "bu"
+ MANJU_UU =: MANJU_BUU , % "buu"
+ %
+ % final b
+ %
+ MONG_BNDRY =:| MANJU_DUBENB , % ""
+ MONG_ZERO =:| MANJU_DUBENB , % ""
+ MONG_ONE =:| MANJU_DUBENB , % ""
+ MONG_TWO =:| MANJU_DUBENB , % ""
+ MONG_THREE =:| MANJU_DUBENB , % ""
+ MONG_FOUR =:| MANJU_DUBENB , % ""
+ MONG_FIVE =:| MANJU_DUBENB , % ""
+ MONG_SIX =:| MANJU_DUBENB , % ""
+ MONG_SEVEN =:| MANJU_DUBENB , % ""
+ MONG_EIGHT =:| MANJU_DUBENB , % ""
+ MONG_NINE =:| MANJU_DUBENB , % ""
+ MONG_LT =:| MANJU_DUBENB , % ""
+ MONG_GT =:| MANJU_DUBENB , % ""
+ MONG_LGU =:| MANJU_DUBENB , % ""
+ MONG_RGU =:| MANJU_DUBENB , % ""
+ MONG_OPAREN =:| MANJU_DUBENB , % ""
+ MONG_CPAREN =:| MANJU_DUBENB , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENB , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENB , % ""
+ MONG_COLON =:| MANJU_DUBENB , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENB , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENB , % ""
+ MONG_QUESTION =:| MANJU_DUBENB , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENB , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENB , % ""
+ MANJU_TASLAL =:| MANJU_DUBENB , % ""
+ MONG_MSP =:| MANJU_DUBENB , % ""
+ MONG_MVS =:| MANJU_DUBENB , % ""
+ MONG_NCEG =:| MANJU_DUBENB , % ""
+ MONG_GCEG =:| MANJU_DUBENB , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENB ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENB: % "a"
+ MONG_NCEG kern 1.2ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_C: % "c"
+ MANJU_Y =: MANJU_CY ; % "cy"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_D: % "d"
+ %
+ % vowel allographs
+ %
+ MANJU_E =:| MANJU_DE , % ""
+ MANJU_U =:| MANJU_DE , % ""
+ MANJU_UU =:| MANJU_DE , % ""
+ %
+ % consonant cases
+ %
+ MANJU_Z =: MANJU_DZ ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUND: % " d-"
+ %
+ % vowel allographs
+ %
+ MANJU_E =:| MANJU_DERIBUNDE , % ""
+ MANJU_U =:| MANJU_DERIBUNDE , % ""
+ MANJU_UU =:| MANJU_DERIBUNDE , % ""
+ %
+ % consonant cases
+ %
+ MANJU_Z =: MANJU_DERIBUNDZ ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DE: % "de"
+ %
+ % vowel allographs
+ %
+ MANJU_E |=: MANJU_A , % ""
+ MANJU_U |=: MANJU_O ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNDE: % " de-"
+ %
+ % vowel allographs
+ %
+ MANJU_E |=: MANJU_A , % ""
+ MANJU_U |=: MANJU_O ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_E: % "e"
+ %
+ % final e
+ %
+ MONG_BNDRY =:| MANJU_DUBENE , % ""
+ MONG_ZERO =:| MANJU_DUBENE , % ""
+ MONG_ONE =:| MANJU_DUBENE , % ""
+ MONG_TWO =:| MANJU_DUBENE , % ""
+ MONG_THREE =:| MANJU_DUBENE , % ""
+ MONG_FOUR =:| MANJU_DUBENE , % ""
+ MONG_FIVE =:| MANJU_DUBENE , % ""
+ MONG_SIX =:| MANJU_DUBENE , % ""
+ MONG_SEVEN =:| MANJU_DUBENE , % ""
+ MONG_EIGHT =:| MANJU_DUBENE , % ""
+ MONG_NINE =:| MANJU_DUBENE , % ""
+ MONG_LT =:| MANJU_DUBENE , % ""
+ MONG_GT =:| MANJU_DUBENE , % ""
+ MONG_LGU =:| MANJU_DUBENE , % ""
+ MONG_RGU =:| MANJU_DUBENE , % ""
+ MONG_OPAREN =:| MANJU_DUBENE , % ""
+ MONG_CPAREN =:| MANJU_DUBENE , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENE , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENE , % ""
+ MONG_COLON =:| MANJU_DUBENE , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENE , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENE , % ""
+ MONG_QUESTION =:| MANJU_DUBENE , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENE , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENE , % ""
+ MANJU_TASLAL =:| MANJU_DUBENE , % ""
+ MONG_MSP =:| MANJU_DUBENE , % ""
+ MONG_MVS =:| MANJU_DUBENE , % ""
+ MONG_NCEG =:| MANJU_DUBENE , % ""
+ MONG_GCEG =:| MANJU_DUBENE , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENE ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNE: % " e-"
+ %
+ % isolated e
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENE: % "a"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_F: % "f"
+ %
+ % allograph selection
+ %
+ MANJU_I =:| MANJU_W , % ""
+ MANJU_O =:| MANJU_W , % ""
+ MANJU_U =:| MANJU_W , % ""
+ MANJU_UU =:| MANJU_W ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNF: % " f-"
+ %
+ % allograph selection
+ %
+ MANJU_I =:| MANJU_W , % ""
+ MANJU_O =:| MANJU_W , % ""
+ MANJU_U =:| MANJU_W , % ""
+ MANJU_UU =:| MANJU_W ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_G: % "g"
+ %
+ % vowel ligatures
+ %
+ MANJU_E =: MANJU_GE , % ""
+ MANJU_I =: MANJU_GI , % ""
+ MANJU_U =: MANJU_GU , % ""
+ %
+ % combined case
+ %
+ MANJU_H =: MANJU_GH , % "gh"
+ MONG_FVS1 =: MANJU_GH ; % "gh"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNGA: % " ga-"
+ %
+ % vowel ligatures
+ %
+ MANJU_E =: MANJU_GE , % ""
+ MANJU_I =: MANJU_GI , % ""
+ MANJU_U =: MANJU_GU , % ""
+ %
+ % combined case
+ %
+ MANJU_H =: MANJU_GH , % "gh"
+ MONG_FVS1 =: MANJU_GH ; % "gh"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_H: % "h"
+ %
+ % vowel ligatures
+ %
+ MANJU_E =: MANJU_HE , % ""
+ MANJU_I =: MANJU_HI , % ""
+ MANJU_U =: MANJU_HU , % ""
+ %
+ % combined case
+ %
+ MANJU_H =: MANJU_HH , % "hh"
+ MONG_FVS1 =: MANJU_HH ; % "hh"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNHA: % " ha-"
+ %
+ % vowel ligatures
+ %
+ MANJU_E =: MANJU_HE , % ""
+ MANJU_I =: MANJU_HI , % ""
+ MANJU_U =: MANJU_HU , % ""
+ %
+ % combined case
+ %
+ MANJU_H =: MANJU_HH , % "hh"
+ MONG_FVS1 =: MANJU_HH ; % "hh"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_I: % "i"
+ %
+ % combined case
+ %
+ MONG_FVS1 =: MANJU_DERIBUNJY , % "jy"
+ %
+ % non-combined case
+ %
+% MONG_ENV =: MANJU_I , % "j-y"
+ %
+ % final i
+ %
+ MONG_BNDRY =:| MANJU_DUBENI , % ""
+ MONG_ZERO =:| MANJU_DUBENI , % ""
+ MONG_ONE =:| MANJU_DUBENI , % ""
+ MONG_TWO =:| MANJU_DUBENI , % ""
+ MONG_THREE =:| MANJU_DUBENI , % ""
+ MONG_FOUR =:| MANJU_DUBENI , % ""
+ MONG_FIVE =:| MANJU_DUBENI , % ""
+ MONG_SIX =:| MANJU_DUBENI , % ""
+ MONG_SEVEN =:| MANJU_DUBENI , % ""
+ MONG_EIGHT =:| MANJU_DUBENI , % ""
+ MONG_NINE =:| MANJU_DUBENI , % ""
+ MONG_LT =:| MANJU_DUBENI , % ""
+ MONG_GT =:| MANJU_DUBENI , % ""
+ MONG_LGU =:| MANJU_DUBENI , % ""
+ MONG_RGU =:| MANJU_DUBENI , % ""
+ MONG_OPAREN =:| MANJU_DUBENI , % ""
+ MONG_CPAREN =:| MANJU_DUBENI , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENI , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENI , % ""
+ MONG_COLON =:| MANJU_DUBENI , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENI , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENI , % ""
+ MONG_QUESTION =:| MANJU_DUBENI , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENI , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENI , % ""
+ MANJU_TASLAL =:| MANJU_DUBENI , % ""
+ MONG_MSP =:| MANJU_DUBENI , % ""
+ MONG_MVS =:| MANJU_DUBENI , % ""
+ MONG_NCEG =:| MANJU_DUBENI , % ""
+ MONG_GCEG =:| MANJU_DUBENI , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENI ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENI: % "a"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_J: % "j"
+ MONG_FVS1 =: MANJU_JY , % "jy"
+ MANJU_Y =: MANJU_JY ; % "cy"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_K: % "k"
+ %
+ % vowel ligatures
+ %
+ MANJU_E =: MANJU_KE , % ""
+ MANJU_I =: MANJU_KI , % ""
+ MANJU_U =: MANJU_KU , % ""
+ %
+ % combined case
+ %
+ MANJU_H =: MANJU_KH , % "kh"
+ MONG_FVS1 =: MANJU_KH , % "kh"
+ %
+ % consonant cases
+ %
+ MANJU_B =:| MANJU_VARK , % ""
+ MANJU_C =:| MANJU_VARK , % ""
+ MANJU_D =:| MANJU_VARK , % ""
+ MANJU_F =:| MANJU_VARK , % ""
+ MANJU_G =:| MANJU_VARK , % ""
+ MANJU_J =:| MANJU_VARK , % ""
+ MANJU_K =:| MANJU_VARK , % ""
+ MANJU_L =:| MANJU_VARK , % ""
+ MANJU_M =:| MANJU_VARK , % ""
+ MANJU_N =:| MANJU_VARK , % ""
+ MANJU_P =:| MANJU_VARK , % ""
+ MANJU_R =:| MANJU_VARK , % ""
+ MANJU_S =:| MANJU_VARK , % ""
+ MANJU_T =:| MANJU_VARK , % ""
+ MANJU_W =:| MANJU_VARK , % ""
+ MANJU_Y =:| MANJU_VARK , % ""
+ MANJU_Z =:| MANJU_VARK , % ""
+ %
+ % final k
+ %
+ MONG_BNDRY =:| MANJU_DUBENK , % ""
+ MONG_ZERO =:| MANJU_DUBENK , % ""
+ MONG_ONE =:| MANJU_DUBENK , % ""
+ MONG_TWO =:| MANJU_DUBENK , % ""
+ MONG_THREE =:| MANJU_DUBENK , % ""
+ MONG_FOUR =:| MANJU_DUBENK , % ""
+ MONG_FIVE =:| MANJU_DUBENK , % ""
+ MONG_SIX =:| MANJU_DUBENK , % ""
+ MONG_SEVEN =:| MANJU_DUBENK , % ""
+ MONG_EIGHT =:| MANJU_DUBENK , % ""
+ MONG_NINE =:| MANJU_DUBENK , % ""
+ MONG_LT =:| MANJU_DUBENK , % ""
+ MONG_GT =:| MANJU_DUBENK , % ""
+ MONG_LGU =:| MANJU_DUBENK , % ""
+ MONG_RGU =:| MANJU_DUBENK , % ""
+ MONG_OPAREN =:| MANJU_DUBENK , % ""
+ MONG_CPAREN =:| MANJU_DUBENK , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENK , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENK , % ""
+ MONG_COLON =:| MANJU_DUBENK , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENK , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENK , % ""
+ MONG_QUESTION =:| MANJU_DUBENK , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENK , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENK , % ""
+ MANJU_TASLAL =:| MANJU_DUBENK , % ""
+ MONG_MSP =:| MANJU_DUBENK , % ""
+ MONG_MVS =:| MANJU_DUBENK , % ""
+ MONG_NCEG =:| MANJU_DUBENK , % ""
+ MONG_GCEG =:| MANJU_DUBENK , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENK ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNKA: % " ka-"
+ MANJU_E =: MANJU_KE , % ""
+ MANJU_I =: MANJU_KI , % ""
+ MANJU_U =: MANJU_KU , % ""
+ %
+ % combined case
+ %
+ MANJU_H =: MANJU_KH , % "kh"
+ MONG_FVS1 =: MANJU_KH ; % "kh"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENK: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_L: % "l"
+ %
+ % combined case
+ %
+ MONG_FVS1 =: MANJU_LH , % "lh"
+ %
+ % final l
+ %
+ MONG_BNDRY =:| MANJU_DUBENL , % ""
+ MONG_ZERO =:| MANJU_DUBENL , % ""
+ MONG_ONE =:| MANJU_DUBENL , % ""
+ MONG_TWO =:| MANJU_DUBENL , % ""
+ MONG_THREE =:| MANJU_DUBENL , % ""
+ MONG_FOUR =:| MANJU_DUBENL , % ""
+ MONG_FIVE =:| MANJU_DUBENL , % ""
+ MONG_SIX =:| MANJU_DUBENL , % ""
+ MONG_SEVEN =:| MANJU_DUBENL , % ""
+ MONG_EIGHT =:| MANJU_DUBENL , % ""
+ MONG_NINE =:| MANJU_DUBENL , % ""
+ MONG_LT =:| MANJU_DUBENL , % ""
+ MONG_GT =:| MANJU_DUBENL , % ""
+ MONG_LGU =:| MANJU_DUBENL , % ""
+ MONG_RGU =:| MANJU_DUBENL , % ""
+ MONG_OPAREN =:| MANJU_DUBENL , % ""
+ MONG_CPAREN =:| MANJU_DUBENL , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENL , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENL , % ""
+ MONG_COLON =:| MANJU_DUBENL , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENL , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENL , % ""
+ MONG_QUESTION =:| MANJU_DUBENL , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENL , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENL , % ""
+ MANJU_TASLAL =:| MANJU_DUBENL , % ""
+ MONG_MSP =:| MANJU_DUBENL , % ""
+ MONG_MVS =:| MANJU_DUBENL , % ""
+ MONG_NCEG =:| MANJU_DUBENL , % ""
+ MONG_GCEG =:| MANJU_DUBENL , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNL: % " l-"
+ %
+ % combined case
+ %
+ MONG_FVS1 =: MANJU_DERIBUNLH ; % " lh"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENL: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_M: % "m"
+ %
+ % final m
+ %
+ MONG_BNDRY =:| MANJU_DUBENM , % ""
+ MONG_ZERO =:| MANJU_DUBENM , % ""
+ MONG_ONE =:| MANJU_DUBENM , % ""
+ MONG_TWO =:| MANJU_DUBENM , % ""
+ MONG_THREE =:| MANJU_DUBENM , % ""
+ MONG_FOUR =:| MANJU_DUBENM , % ""
+ MONG_FIVE =:| MANJU_DUBENM , % ""
+ MONG_SIX =:| MANJU_DUBENM , % ""
+ MONG_SEVEN =:| MANJU_DUBENM , % ""
+ MONG_EIGHT =:| MANJU_DUBENM , % ""
+ MONG_NINE =:| MANJU_DUBENM , % ""
+ MONG_LT =:| MANJU_DUBENM , % ""
+ MONG_GT =:| MANJU_DUBENM , % ""
+ MONG_LGU =:| MANJU_DUBENM , % ""
+ MONG_RGU =:| MANJU_DUBENM , % ""
+ MONG_OPAREN =:| MANJU_DUBENM , % ""
+ MONG_CPAREN =:| MANJU_DUBENM , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENM , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENM , % ""
+ MONG_COLON =:| MANJU_DUBENM , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENM , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENM , % ""
+ MONG_QUESTION =:| MANJU_DUBENM , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENM , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENM , % ""
+ MANJU_TASLAL =:| MANJU_DUBENM , % ""
+ MONG_MSP =:| MANJU_DUBENM , % ""
+ MONG_MVS =:| MANJU_DUBENM , % ""
+ MONG_NCEG =:| MANJU_DUBENM , % ""
+ MONG_GCEG =:| MANJU_DUBENM , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENM ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_DERIBUNM: % " m-"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENM: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_N: % "n"
+ %
+ % consonant cases
+ %
+ MANJU_B =:| MANJU_A , % ""
+ MANJU_C =:| MANJU_A , % ""
+ MANJU_D =:| MANJU_A , % ""
+ MANJU_F =:| MANJU_A , % ""
+ MANJU_H =:| MANJU_A , % ""
+ MANJU_J =:| MANJU_A , % ""
+ MANJU_K =:| MANJU_A , % ""
+ MANJU_L =:| MANJU_A , % ""
+ MANJU_M =:| MANJU_A , % ""
+ MANJU_N =:| MANJU_A , % ""
+ MANJU_P =:| MANJU_A , % ""
+ MANJU_R =:| MANJU_A , % ""
+ MANJU_S =:| MANJU_A , % ""
+ MANJU_T =:| MANJU_A , % ""
+ MANJU_W =:| MANJU_A , % ""
+ MANJU_Y =:| MANJU_A , % ""
+ MANJU_Z =:| MANJU_A , % ""
+ %
+ % combined cases
+ %
+ MANJU_G =: MANJU_NG , % "ng"
+ %
+ % final n
+ %
+ MONG_BNDRY =:| MANJU_DUBENA , % ""
+ MONG_ZERO =:| MANJU_DUBENA , % ""
+ MONG_ONE =:| MANJU_DUBENA , % ""
+ MONG_TWO =:| MANJU_DUBENA , % ""
+ MONG_THREE =:| MANJU_DUBENA , % ""
+ MONG_FOUR =:| MANJU_DUBENA , % ""
+ MONG_FIVE =:| MANJU_DUBENA , % ""
+ MONG_SIX =:| MANJU_DUBENA , % ""
+ MONG_SEVEN =:| MANJU_DUBENA , % ""
+ MONG_EIGHT =:| MANJU_DUBENA , % ""
+ MONG_NINE =:| MANJU_DUBENA , % ""
+ MONG_LT =:| MANJU_DUBENA , % ""
+ MONG_GT =:| MANJU_DUBENA , % ""
+ MONG_LGU =:| MANJU_DUBENA , % ""
+ MONG_RGU =:| MANJU_DUBENA , % ""
+ MONG_OPAREN =:| MANJU_DUBENA , % ""
+ MONG_CPAREN =:| MANJU_DUBENA , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENA , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENA , % ""
+ MONG_COLON =:| MANJU_DUBENA , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENA , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENA , % ""
+ MONG_QUESTION =:| MANJU_DUBENA , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENA , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENA , % ""
+ MANJU_TASLAL =:| MANJU_DUBENA , % ""
+ MONG_MSP =:| MANJU_DUBENA , % ""
+ MONG_MVS =:| MANJU_DUBENA , % ""
+ MONG_NCEG =:| MANJU_DUBENA , % ""
+ MONG_GCEG =:| MANJU_DUBENA , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENA ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNN: % " n-"
+ MANJU_G =: MANJU_DERIBUNNGA ; % " nga"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENA: % "a"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_O: % "o"
+ %
+ % final o
+ %
+ MONG_BNDRY =:| MANJU_DUBENO , % ""
+ MONG_ZERO =:| MANJU_DUBENO , % ""
+ MONG_ONE =:| MANJU_DUBENO , % ""
+ MONG_TWO =:| MANJU_DUBENO , % ""
+ MONG_THREE =:| MANJU_DUBENO , % ""
+ MONG_FOUR =:| MANJU_DUBENO , % ""
+ MONG_FIVE =:| MANJU_DUBENO , % ""
+ MONG_SIX =:| MANJU_DUBENO , % ""
+ MONG_SEVEN =:| MANJU_DUBENO , % ""
+ MONG_EIGHT =:| MANJU_DUBENO , % ""
+ MONG_NINE =:| MANJU_DUBENO , % ""
+ MONG_LT =:| MANJU_DUBENO , % ""
+ MONG_GT =:| MANJU_DUBENO , % ""
+ MONG_LGU =:| MANJU_DUBENO , % ""
+ MONG_RGU =:| MANJU_DUBENO , % ""
+ MONG_OPAREN =:| MANJU_DUBENO , % ""
+ MONG_CPAREN =:| MANJU_DUBENO , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENO , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENO , % ""
+ MONG_COLON =:| MANJU_DUBENO , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENO , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENO , % ""
+ MONG_QUESTION =:| MANJU_DUBENO , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENO , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENO , % ""
+ MANJU_TASLAL =:| MANJU_DUBENO , % ""
+ MONG_MSP =:| MANJU_DUBENO , % ""
+ MONG_MVS =:| MANJU_DUBENO , % ""
+ MONG_NCEG =:| MANJU_DUBENO , % ""
+ MONG_GCEG =:| MANJU_DUBENO , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENO ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENO: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_P: % "p"
+ MANJU_A =: MANJU_PA , % ""
+ MANJU_E =: MANJU_PE , % ""
+ MANJU_I =: MANJU_PI , % ""
+ MANJU_O =: MANJU_PO , % ""
+ MANJU_U =: MANJU_PU , % ""
+ %
+ % combined case
+ %
+ MONG_FVS1 =: MANJU_TIBP ; % "p'"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_R: % "r"
+ %
+ % final r
+ %
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MONG_ZERO |=:| MONG_BIODOISUUL , % ""
+ MONG_ONE |=:| MONG_BIODOISUUL , % ""
+ MONG_TWO |=:| MONG_BIODOISUUL , % ""
+ MONG_THREE |=:| MONG_BIODOISUUL , % ""
+ MONG_FOUR |=:| MONG_BIODOISUUL , % ""
+ MONG_FIVE |=:| MONG_BIODOISUUL , % ""
+ MONG_SIX |=:| MONG_BIODOISUUL , % ""
+ MONG_SEVEN |=:| MONG_BIODOISUUL , % ""
+ MONG_EIGHT |=:| MONG_BIODOISUUL , % ""
+ MONG_NINE |=:| MONG_BIODOISUUL , % ""
+ MONG_LT |=:| MONG_BIODOISUUL , % ""
+ MONG_GT |=:| MONG_BIODOISUUL , % ""
+ MONG_LGU |=:| MONG_BIODOISUUL , % ""
+ MONG_RGU |=:| MONG_BIODOISUUL , % ""
+ MONG_OPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_CPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_DORWOLJIN |=:| MONG_BIODOISUUL , % ""
+ MANJU_FULLSTOP |=:| MONG_BIODOISUUL , % ""
+ MONG_COLON |=:| MONG_BIODOISUUL , % ""
+ MONG_ELLIPSIS |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMATION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTEXCLAM |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMQUEST |=:| MONG_BIODOISUUL , % ""
+ MANJU_TASLAL |=:| MONG_BIODOISUUL , % ""
+ MONG_MSP |=:| MONG_BIODOISUUL , % ""
+ MONG_MVS |=:| MONG_BIODOISUUL , % ""
+ MONG_NCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_GCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_TITEMSTROKE |=:| MONG_BIODOISUUL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_S: % "s"
+ %
+ % combined cases
+ %
+ MONG_FVS1 =: MANJU_SH , % "sh"
+ MANJU_Y =: MANJU_SY , % "cy"
+ %
+ % final s
+ %
+ MONG_BNDRY =:| MANJU_DUBENS , % ""
+ MONG_ZERO =:| MANJU_DUBENS , % ""
+ MONG_ONE =:| MANJU_DUBENS , % ""
+ MONG_TWO =:| MANJU_DUBENS , % ""
+ MONG_THREE =:| MANJU_DUBENS , % ""
+ MONG_FOUR =:| MANJU_DUBENS , % ""
+ MONG_FIVE =:| MANJU_DUBENS , % ""
+ MONG_SIX =:| MANJU_DUBENS , % ""
+ MONG_SEVEN =:| MANJU_DUBENS , % ""
+ MONG_EIGHT =:| MANJU_DUBENS , % ""
+ MONG_NINE =:| MANJU_DUBENS , % ""
+ MONG_LT =:| MANJU_DUBENS , % ""
+ MONG_GT =:| MANJU_DUBENS , % ""
+ MONG_LGU =:| MANJU_DUBENS , % ""
+ MONG_RGU =:| MANJU_DUBENS , % ""
+ MONG_OPAREN =:| MANJU_DUBENS , % ""
+ MONG_CPAREN =:| MANJU_DUBENS , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENS , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENS , % ""
+ MONG_COLON =:| MANJU_DUBENS , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENS , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENS , % ""
+ MONG_QUESTION =:| MANJU_DUBENS , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENS , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENS , % ""
+ MANJU_TASLAL =:| MANJU_DUBENS , % ""
+ MONG_MSP =:| MANJU_DUBENS , % ""
+ MONG_MVS =:| MANJU_DUBENS , % ""
+ MONG_NCEG =:| MANJU_DUBENS , % ""
+ MONG_GCEG =:| MANJU_DUBENS , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENS ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNS: % " s-"
+ MONG_FVS1 =: MANJU_DERIBUNSH , % "sh"
+ MANJU_Y =: MANJU_DERIBUNSY ; % " sy"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENS: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_T: % "t"
+ %
+ % vowel allographs
+ %
+ MANJU_E =:| MANJU_TE , % ""
+ MANJU_U =:| MANJU_TE , % ""
+ MANJU_UU =:| MANJU_TE , % ""
+ %
+ % consonant cases
+ %
+ MANJU_B =:| MANJU_VART , % ""
+ MANJU_C =:| MANJU_VART , % ""
+ MANJU_D =:| MANJU_VART , % ""
+ MANJU_F =:| MANJU_VART , % ""
+ MANJU_G =:| MANJU_VART , % ""
+ MANJU_H =:| MANJU_VART , % ""
+ MANJU_J =:| MANJU_VART , % ""
+ MANJU_K =:| MANJU_VART , % ""
+ MANJU_L =:| MANJU_VART , % ""
+ MANJU_M =:| MANJU_VART , % ""
+ MANJU_N =:| MANJU_VART , % ""
+ MANJU_P =:| MANJU_VART , % ""
+ MANJU_R =:| MANJU_VART , % ""
+ MANJU_T =:| MANJU_VART , % ""
+ MANJU_W =:| MANJU_VART , % ""
+ MANJU_Y =:| MANJU_VART , % ""
+ MANJU_Z =:| MANJU_VART , % ""
+ %
+ % combined cases
+ %
+ MANJU_S =: MANJU_TS, % "ts"
+ MONG_FVS1 =: MANJU_TIBT , % "t"
+ %
+ % final s
+ %
+ MONG_BNDRY =:| MANJU_DUBENT , % ""
+ MONG_ZERO =:| MANJU_DUBENT , % ""
+ MONG_ONE =:| MANJU_DUBENT , % ""
+ MONG_TWO =:| MANJU_DUBENT , % ""
+ MONG_THREE =:| MANJU_DUBENT , % ""
+ MONG_FOUR =:| MANJU_DUBENT , % ""
+ MONG_FIVE =:| MANJU_DUBENT , % ""
+ MONG_SIX =:| MANJU_DUBENT , % ""
+ MONG_SEVEN =:| MANJU_DUBENT , % ""
+ MONG_EIGHT =:| MANJU_DUBENT , % ""
+ MONG_NINE =:| MANJU_DUBENT , % ""
+ MONG_LT =:| MANJU_DUBENT , % ""
+ MONG_GT =:| MANJU_DUBENT , % ""
+ MONG_LGU =:| MANJU_DUBENT , % ""
+ MONG_RGU =:| MANJU_DUBENT , % ""
+ MONG_OPAREN =:| MANJU_DUBENT , % ""
+ MONG_CPAREN =:| MANJU_DUBENT , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENT , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENT , % ""
+ MONG_COLON =:| MANJU_DUBENT , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENT , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENT , % ""
+ MONG_QUESTION =:| MANJU_DUBENT , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENT , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENT , % ""
+ MANJU_TASLAL =:| MANJU_DUBENT , % ""
+ MONG_MSP =:| MANJU_DUBENT , % ""
+ MONG_MVS =:| MANJU_DUBENT , % ""
+ MONG_NCEG =:| MANJU_DUBENT , % ""
+ MONG_GCEG =:| MANJU_DUBENT , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENT ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNT: % " t-"
+ %
+ % vowel allographs
+ %
+ MANJU_E =:| MANJU_DERIBUNTE , % ""
+ MANJU_U =:| MANJU_DERIBUNTE , % ""
+ MANJU_UU =:| MANJU_DERIBUNTE , % ""
+ MANJU_S =: MANJU_DERIBUNTS , % " ts-"
+ %
+ % combined case
+ %
+ MONG_FVS1 =: MANJU_TIBT ; % "t"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_TE: % "te"
+ %
+ % vowel allographs
+ %
+ MANJU_E |=: MANJU_A , % ""
+ MANJU_U |=: MANJU_O ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNTE: % " te-"
+ %
+ % vowel allographs
+ %
+ MANJU_E |=: MANJU_A , % ""
+ MANJU_U |=: MANJU_O ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENT: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_U: % "u"
+ %
+ % final u
+ %
+ MONG_BNDRY =:| MANJU_DUBENU , % ""
+ MONG_ZERO =:| MANJU_DUBENU , % ""
+ MONG_ONE =:| MANJU_DUBENU , % ""
+ MONG_TWO =:| MANJU_DUBENU , % ""
+ MONG_THREE =:| MANJU_DUBENU , % ""
+ MONG_FOUR =:| MANJU_DUBENU , % ""
+ MONG_FIVE =:| MANJU_DUBENU , % ""
+ MONG_SIX =:| MANJU_DUBENU , % ""
+ MONG_SEVEN =:| MANJU_DUBENU , % ""
+ MONG_EIGHT =:| MANJU_DUBENU , % ""
+ MONG_NINE =:| MANJU_DUBENU , % ""
+ MONG_LT =:| MANJU_DUBENU , % ""
+ MONG_GT =:| MANJU_DUBENU , % ""
+ MONG_LGU =:| MANJU_DUBENU , % ""
+ MONG_RGU =:| MANJU_DUBENU , % ""
+ MONG_OPAREN =:| MANJU_DUBENU , % ""
+ MONG_CPAREN =:| MANJU_DUBENU , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENU , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENU , % ""
+ MONG_COLON =:| MANJU_DUBENU , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENU , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENU , % ""
+ MONG_QUESTION =:| MANJU_DUBENU , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENU , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENU , % ""
+ MANJU_TASLAL =:| MANJU_DUBENU , % ""
+ MONG_MSP =:| MANJU_DUBENU , % ""
+ MONG_MVS =:| MANJU_DUBENU , % ""
+ MONG_NCEG =:| MANJU_DUBENU , % ""
+ MONG_GCEG =:| MANJU_DUBENU , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENU ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENU: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_UU: % "uu"
+ %
+ % final uu
+ %
+ MONG_BNDRY =:| MANJU_DUBENUU , % ""
+ MONG_ZERO =:| MANJU_DUBENUU , % ""
+ MONG_ONE =:| MANJU_DUBENUU , % ""
+ MONG_TWO =:| MANJU_DUBENUU , % ""
+ MONG_THREE =:| MANJU_DUBENUU , % ""
+ MONG_FOUR =:| MANJU_DUBENUU , % ""
+ MONG_FIVE =:| MANJU_DUBENUU , % ""
+ MONG_SIX =:| MANJU_DUBENUU , % ""
+ MONG_SEVEN =:| MANJU_DUBENUU , % ""
+ MONG_EIGHT =:| MANJU_DUBENUU , % ""
+ MONG_NINE =:| MANJU_DUBENUU , % ""
+ MONG_LT =:| MANJU_DUBENUU , % ""
+ MONG_GT =:| MANJU_DUBENUU , % ""
+ MONG_LGU =:| MANJU_DUBENUU , % ""
+ MONG_RGU =:| MANJU_DUBENUU , % ""
+ MONG_OPAREN =:| MANJU_DUBENUU , % ""
+ MONG_CPAREN =:| MANJU_DUBENUU , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENUU , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENUU , % ""
+ MONG_COLON =:| MANJU_DUBENUU , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENUU , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENUU , % ""
+ MONG_QUESTION =:| MANJU_DUBENUU , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENUU , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENUU , % ""
+ MANJU_TASLAL =:| MANJU_DUBENUU , % ""
+ MONG_MSP =:| MANJU_DUBENUU , % ""
+ MONG_MVS =:| MANJU_DUBENUU , % ""
+ MONG_NCEG =:| MANJU_DUBENUU , % ""
+ MONG_GCEG =:| MANJU_DUBENUU , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENUU ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENUU: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_NG: % "ng"
+ %
+ % combined case
+ %
+ MONG_FVS1 =: MANJU_NGA , % "ng'"
+ %
+ % final ng
+ %
+ MONG_BNDRY =: MANJU_DUBENNG , % ""
+ MONG_ZERO =: MANJU_DUBENNG , % ""
+ MONG_ONE =: MANJU_DUBENNG , % ""
+ MONG_TWO =: MANJU_DUBENNG , % ""
+ MONG_THREE =: MANJU_DUBENNG , % ""
+ MONG_FOUR =: MANJU_DUBENNG , % ""
+ MONG_FIVE =: MANJU_DUBENNG , % ""
+ MONG_SIX =: MANJU_DUBENNG , % ""
+ MONG_SEVEN =: MANJU_DUBENNG , % ""
+ MONG_EIGHT =: MANJU_DUBENNG , % ""
+ MONG_NINE =: MANJU_DUBENNG , % ""
+ MONG_LT =: MANJU_DUBENNG , % ""
+ MONG_GT =: MANJU_DUBENNG , % ""
+ MONG_LGU =: MANJU_DUBENNG , % ""
+ MONG_RGU =: MANJU_DUBENNG , % ""
+ MONG_OPAREN =: MANJU_DUBENNG , % ""
+ MONG_CPAREN =: MANJU_DUBENNG , % ""
+ MONG_DORWOLJIN =: MANJU_DUBENNG , % ""
+ MANJU_FULLSTOP =: MANJU_DUBENNG , % ""
+ MONG_COLON =: MANJU_DUBENNG , % ""
+ MONG_ELLIPSIS =: MANJU_DUBENNG , % ""
+ MONG_EXCLAMATION =: MANJU_DUBENNG , % ""
+ MONG_QUESTION =: MANJU_DUBENNG , % ""
+ MONG_QUESTEXCLAM =: MANJU_DUBENNG , % ""
+ MONG_EXCLAMQUEST =: MANJU_DUBENNG , % ""
+ MANJU_TASLAL =: MANJU_DUBENNG , % ""
+ MONG_MSP =: MANJU_DUBENNG , % ""
+ MONG_MVS =: MANJU_DUBENNG , % ""
+ MONG_NCEG =: MANJU_DUBENNG , % ""
+ MONG_GCEG =: MANJU_DUBENNG , % ""
+ MONG_TITEMSTROKE =: MANJU_DUBENNG ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENNG: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_SH: % "sh"
+ %
+ % final sh
+ %
+ MONG_BNDRY =:| MANJU_DUBENSH , % ""
+ MONG_ZERO =:| MANJU_DUBENSH , % ""
+ MONG_ONE =:| MANJU_DUBENSH , % ""
+ MONG_TWO =:| MANJU_DUBENSH , % ""
+ MONG_THREE =:| MANJU_DUBENSH , % ""
+ MONG_FOUR =:| MANJU_DUBENSH , % ""
+ MONG_FIVE =:| MANJU_DUBENSH , % ""
+ MONG_SIX =:| MANJU_DUBENSH , % ""
+ MONG_SEVEN =:| MANJU_DUBENSH , % ""
+ MONG_EIGHT =:| MANJU_DUBENSH , % ""
+ MONG_NINE =:| MANJU_DUBENSH , % ""
+ MONG_LT =:| MANJU_DUBENSH , % ""
+ MONG_GT =:| MANJU_DUBENSH , % ""
+ MONG_LGU =:| MANJU_DUBENSH , % ""
+ MONG_RGU =:| MANJU_DUBENSH , % ""
+ MONG_OPAREN =:| MANJU_DUBENSH , % ""
+ MONG_CPAREN =:| MANJU_DUBENSH , % ""
+ MONG_DORWOLJIN =:| MANJU_DUBENSH , % ""
+ MANJU_FULLSTOP =:| MANJU_DUBENSH , % ""
+ MONG_COLON =:| MANJU_DUBENSH , % ""
+ MONG_ELLIPSIS =:| MANJU_DUBENSH , % ""
+ MONG_EXCLAMATION =:| MANJU_DUBENSH , % ""
+ MONG_QUESTION =:| MANJU_DUBENSH , % ""
+ MONG_QUESTEXCLAM =:| MANJU_DUBENSH , % ""
+ MONG_EXCLAMQUEST =:| MANJU_DUBENSH , % ""
+ MANJU_TASLAL =:| MANJU_DUBENSH , % ""
+ MONG_MSP =:| MANJU_DUBENSH , % ""
+ MONG_MVS =:| MANJU_DUBENSH , % ""
+ MONG_NCEG =:| MANJU_DUBENSH , % ""
+ MONG_GCEG =:| MANJU_DUBENSH , % ""
+ MONG_TITEMSTROKE =:| MANJU_DUBENSH ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_DERIBUNSH: % " sh-"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DUBENSH: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DZ: % "dz"
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MANJU_I =: MANJU_DZI ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNDZ: % " dz-"
+ MANJU_I =: MANJU_DERIBUNDZI ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DZI: % "dzi "
+ %
+ % final dzi
+ %
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MONG_ZERO |=:| MONG_BIODOISUUL , % ""
+ MONG_ONE |=:| MONG_BIODOISUUL , % ""
+ MONG_TWO |=:| MONG_BIODOISUUL , % ""
+ MONG_THREE |=:| MONG_BIODOISUUL , % ""
+ MONG_FOUR |=:| MONG_BIODOISUUL , % ""
+ MONG_FIVE |=:| MONG_BIODOISUUL , % ""
+ MONG_SIX |=:| MONG_BIODOISUUL , % ""
+ MONG_SEVEN |=:| MONG_BIODOISUUL , % ""
+ MONG_EIGHT |=:| MONG_BIODOISUUL , % ""
+ MONG_NINE |=:| MONG_BIODOISUUL , % ""
+ MONG_LT |=:| MONG_BIODOISUUL , % ""
+ MONG_GT |=:| MONG_BIODOISUUL , % ""
+ MONG_LGU |=:| MONG_BIODOISUUL , % ""
+ MONG_RGU |=:| MONG_BIODOISUUL , % ""
+ MONG_OPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_CPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_DORWOLJIN |=:| MONG_BIODOISUUL , % ""
+ MANJU_FULLSTOP |=:| MONG_BIODOISUUL , % ""
+ MONG_COLON |=:| MONG_BIODOISUUL , % ""
+ MONG_ELLIPSIS |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMATION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTEXCLAM |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMQUEST |=:| MONG_BIODOISUUL , % ""
+ MANJU_TASLAL |=:| MONG_BIODOISUUL , % ""
+ MONG_MSP |=:| MONG_BIODOISUUL , % ""
+ MONG_MVS |=:| MONG_BIODOISUUL , % ""
+ MONG_NCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_GCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_TITEMSTROKE |=:| MONG_BIODOISUUL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNDZI: % " dzi "
+ %
+ % final dzi
+ %
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MONG_ZERO |=:| MONG_BIODOISUUL , % ""
+ MONG_ONE |=:| MONG_BIODOISUUL , % ""
+ MONG_TWO |=:| MONG_BIODOISUUL , % ""
+ MONG_THREE |=:| MONG_BIODOISUUL , % ""
+ MONG_FOUR |=:| MONG_BIODOISUUL , % ""
+ MONG_FIVE |=:| MONG_BIODOISUUL , % ""
+ MONG_SIX |=:| MONG_BIODOISUUL , % ""
+ MONG_SEVEN |=:| MONG_BIODOISUUL , % ""
+ MONG_EIGHT |=:| MONG_BIODOISUUL , % ""
+ MONG_NINE |=:| MONG_BIODOISUUL , % ""
+ MONG_LT |=:| MONG_BIODOISUUL , % ""
+ MONG_GT |=:| MONG_BIODOISUUL , % ""
+ MONG_LGU |=:| MONG_BIODOISUUL , % ""
+ MONG_RGU |=:| MONG_BIODOISUUL , % ""
+ MONG_OPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_CPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_DORWOLJIN |=:| MONG_BIODOISUUL , % ""
+ MANJU_FULLSTOP |=:| MONG_BIODOISUUL , % ""
+ MONG_COLON |=:| MONG_BIODOISUUL , % ""
+ MONG_ELLIPSIS |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMATION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTEXCLAM |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMQUEST |=:| MONG_BIODOISUUL , % ""
+ MANJU_TASLAL |=:| MONG_BIODOISUUL , % ""
+ MONG_MSP |=:| MONG_BIODOISUUL , % ""
+ MONG_MVS |=:| MONG_BIODOISUUL , % ""
+ MONG_NCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_GCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_TITEMSTROKE |=:| MONG_BIODOISUUL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_JY: % "jy"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_DERIBUNJY: % " jy-"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_SY: % "sy"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_DERIBUNSY: % " sy-"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_TS: % "ts"
+ MANJU_H =: MANJU_TSH ; % " tsh"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNTS: % " ts-"
+ MANJU_H =: MANJU_DERIBUNTSH ; % " tsh"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_TSH: % "tsh"
+ MANJU_Y =: MANJU_TSHY ; % "tshy"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNTSH: % " tsh-"
+ MANJU_Y =: MANJU_DERIBUNTSHY ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_Z: % "z"
+ MANJU_H =: MANJU_ZH , % ""
+ MANJU_R =: MANJU_ZR ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNZ: % " z-"
+ MANJU_H =: MANJU_DERIBUNZH , % ""
+ MANJU_R =: MANJU_DERIBUNZR ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNNGA: % " nga-"
+ MONG_FVS1 =: MANJU_DERIBUNNGA ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_LH: % "lh"
+ MANJU_E =:| MANJU_HIGHLH , % ""
+ MANJU_U =:| MANJU_HIGHLH ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_DERIBUNLH: % " lh-"
+ MANJU_E =:| MANJU_HIGHDERIBUNLH ,% ""
+ MANJU_U =:| MANJU_HIGHDERIBUNLH ;% ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_CY: % "cy"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_GH: % "gh"
+ MANJU_A =: MANJU_GHA , % ""
+ MANJU_O =: MANJU_GHO ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_HH: % "hh"
+ MANJU_A =: MANJU_HHA , % ""
+ MANJU_O =: MANJU_HHO ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_KH: % "kh"
+ MANJU_A =: MANJU_KHA , % ""
+ MANJU_O =: MANJU_KHO ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_BA: % "ba"
+ %
+ % final ba
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_BE: % "be"
+ %
+ % final be
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_BI: % "bi"
+ %
+ % final bi
+ %
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MONG_ZERO |=:| MONG_BIODOISUUL , % ""
+ MONG_ONE |=:| MONG_BIODOISUUL , % ""
+ MONG_TWO |=:| MONG_BIODOISUUL , % ""
+ MONG_THREE |=:| MONG_BIODOISUUL , % ""
+ MONG_FOUR |=:| MONG_BIODOISUUL , % ""
+ MONG_FIVE |=:| MONG_BIODOISUUL , % ""
+ MONG_SIX |=:| MONG_BIODOISUUL , % ""
+ MONG_SEVEN |=:| MONG_BIODOISUUL , % ""
+ MONG_EIGHT |=:| MONG_BIODOISUUL , % ""
+ MONG_NINE |=:| MONG_BIODOISUUL , % ""
+ MONG_LT |=:| MONG_BIODOISUUL , % ""
+ MONG_GT |=:| MONG_BIODOISUUL , % ""
+ MONG_LGU |=:| MONG_BIODOISUUL , % ""
+ MONG_RGU |=:| MONG_BIODOISUUL , % ""
+ MONG_OPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_CPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_DORWOLJIN |=:| MONG_BIODOISUUL , % ""
+ MANJU_FULLSTOP |=:| MONG_BIODOISUUL , % ""
+ MONG_COLON |=:| MONG_BIODOISUUL , % ""
+ MONG_ELLIPSIS |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMATION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTEXCLAM |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMQUEST |=:| MONG_BIODOISUUL , % ""
+ MANJU_TASLAL |=:| MONG_BIODOISUUL , % ""
+ MONG_MSP |=:| MONG_BIODOISUUL , % ""
+ MONG_MVS |=:| MONG_BIODOISUUL , % ""
+ MONG_NCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_GCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_TITEMSTROKE |=:| MONG_BIODOISUUL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_BO: % "bo"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_BU: % "bu"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_BUU: % "bu"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_GE: % "ge"
+ %
+ % final ge
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_GI: % "gi"
+ %
+ % final gi
+ %
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MONG_ZERO |=:| MONG_BIODOISUUL , % ""
+ MONG_ONE |=:| MONG_BIODOISUUL , % ""
+ MONG_TWO |=:| MONG_BIODOISUUL , % ""
+ MONG_THREE |=:| MONG_BIODOISUUL , % ""
+ MONG_FOUR |=:| MONG_BIODOISUUL , % ""
+ MONG_FIVE |=:| MONG_BIODOISUUL , % ""
+ MONG_SIX |=:| MONG_BIODOISUUL , % ""
+ MONG_SEVEN |=:| MONG_BIODOISUUL , % ""
+ MONG_EIGHT |=:| MONG_BIODOISUUL , % ""
+ MONG_NINE |=:| MONG_BIODOISUUL , % ""
+ MONG_LT |=:| MONG_BIODOISUUL , % ""
+ MONG_GT |=:| MONG_BIODOISUUL , % ""
+ MONG_LGU |=:| MONG_BIODOISUUL , % ""
+ MONG_RGU |=:| MONG_BIODOISUUL , % ""
+ MONG_OPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_CPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_DORWOLJIN |=:| MONG_BIODOISUUL , % ""
+ MANJU_FULLSTOP |=:| MONG_BIODOISUUL , % ""
+ MONG_COLON |=:| MONG_BIODOISUUL , % ""
+ MONG_ELLIPSIS |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMATION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTEXCLAM |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMQUEST |=:| MONG_BIODOISUUL , % ""
+ MANJU_TASLAL |=:| MONG_BIODOISUUL , % ""
+ MONG_MSP |=:| MONG_BIODOISUUL , % ""
+ MONG_MVS |=:| MONG_BIODOISUUL , % ""
+ MONG_NCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_GCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_TITEMSTROKE |=:| MONG_BIODOISUUL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_GU: % "gu"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_HE: % "he"
+ %
+ % final he
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_HI: % "hi"
+ %
+ % final hi
+ %
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MONG_ZERO |=:| MONG_BIODOISUUL , % ""
+ MONG_ONE |=:| MONG_BIODOISUUL , % ""
+ MONG_TWO |=:| MONG_BIODOISUUL , % ""
+ MONG_THREE |=:| MONG_BIODOISUUL , % ""
+ MONG_FOUR |=:| MONG_BIODOISUUL , % ""
+ MONG_FIVE |=:| MONG_BIODOISUUL , % ""
+ MONG_SIX |=:| MONG_BIODOISUUL , % ""
+ MONG_SEVEN |=:| MONG_BIODOISUUL , % ""
+ MONG_EIGHT |=:| MONG_BIODOISUUL , % ""
+ MONG_NINE |=:| MONG_BIODOISUUL , % ""
+ MONG_LT |=:| MONG_BIODOISUUL , % ""
+ MONG_GT |=:| MONG_BIODOISUUL , % ""
+ MONG_LGU |=:| MONG_BIODOISUUL , % ""
+ MONG_RGU |=:| MONG_BIODOISUUL , % ""
+ MONG_OPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_CPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_DORWOLJIN |=:| MONG_BIODOISUUL , % ""
+ MANJU_FULLSTOP |=:| MONG_BIODOISUUL , % ""
+ MONG_COLON |=:| MONG_BIODOISUUL , % ""
+ MONG_ELLIPSIS |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMATION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTEXCLAM |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMQUEST |=:| MONG_BIODOISUUL , % ""
+ MANJU_TASLAL |=:| MONG_BIODOISUUL , % ""
+ MONG_MSP |=:| MONG_BIODOISUUL , % ""
+ MONG_MVS |=:| MONG_BIODOISUUL , % ""
+ MONG_NCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_GCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_TITEMSTROKE |=:| MONG_BIODOISUUL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_HU: % "hu"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_KE: % "ke"
+ %
+ % final ke
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_KI: % "ki"
+ %
+ % final ki
+ %
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MONG_ZERO |=:| MONG_BIODOISUUL , % ""
+ MONG_ONE |=:| MONG_BIODOISUUL , % ""
+ MONG_TWO |=:| MONG_BIODOISUUL , % ""
+ MONG_THREE |=:| MONG_BIODOISUUL , % ""
+ MONG_FOUR |=:| MONG_BIODOISUUL , % ""
+ MONG_FIVE |=:| MONG_BIODOISUUL , % ""
+ MONG_SIX |=:| MONG_BIODOISUUL , % ""
+ MONG_SEVEN |=:| MONG_BIODOISUUL , % ""
+ MONG_EIGHT |=:| MONG_BIODOISUUL , % ""
+ MONG_NINE |=:| MONG_BIODOISUUL , % ""
+ MONG_LT |=:| MONG_BIODOISUUL , % ""
+ MONG_GT |=:| MONG_BIODOISUUL , % ""
+ MONG_LGU |=:| MONG_BIODOISUUL , % ""
+ MONG_RGU |=:| MONG_BIODOISUUL , % ""
+ MONG_OPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_CPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_DORWOLJIN |=:| MONG_BIODOISUUL , % ""
+ MANJU_FULLSTOP |=:| MONG_BIODOISUUL , % ""
+ MONG_COLON |=:| MONG_BIODOISUUL , % ""
+ MONG_ELLIPSIS |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMATION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTEXCLAM |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMQUEST |=:| MONG_BIODOISUUL , % ""
+ MANJU_TASLAL |=:| MONG_BIODOISUUL , % ""
+ MONG_MSP |=:| MONG_BIODOISUUL , % ""
+ MONG_MVS |=:| MONG_BIODOISUUL , % ""
+ MONG_NCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_GCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_TITEMSTROKE |=:| MONG_BIODOISUUL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_KU: % "ku"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_GHA: % "gha"
+ %
+ % final gha
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_GHO: % "gho"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_HHA: % "hha"
+ %
+ % final hha
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_HHO: % "hho"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_KHA: % "kha"
+ %
+ % final kha
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_KHO: % "kho"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_PA: % "pa"
+ %
+ % final pa
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_PE: % "pe"
+ %
+ % final pe
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_PI: % "pi"
+ %
+ % final pi
+ %
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MONG_ZERO |=:| MONG_BIODOISUUL , % ""
+ MONG_ONE |=:| MONG_BIODOISUUL , % ""
+ MONG_TWO |=:| MONG_BIODOISUUL , % ""
+ MONG_THREE |=:| MONG_BIODOISUUL , % ""
+ MONG_FOUR |=:| MONG_BIODOISUUL , % ""
+ MONG_FIVE |=:| MONG_BIODOISUUL , % ""
+ MONG_SIX |=:| MONG_BIODOISUUL , % ""
+ MONG_SEVEN |=:| MONG_BIODOISUUL , % ""
+ MONG_EIGHT |=:| MONG_BIODOISUUL , % ""
+ MONG_NINE |=:| MONG_BIODOISUUL , % ""
+ MONG_LT |=:| MONG_BIODOISUUL , % ""
+ MONG_GT |=:| MONG_BIODOISUUL , % ""
+ MONG_LGU |=:| MONG_BIODOISUUL , % ""
+ MONG_RGU |=:| MONG_BIODOISUUL , % ""
+ MONG_OPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_CPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_DORWOLJIN |=:| MONG_BIODOISUUL , % ""
+ MANJU_FULLSTOP |=:| MONG_BIODOISUUL , % ""
+ MONG_COLON |=:| MONG_BIODOISUUL , % ""
+ MONG_ELLIPSIS |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMATION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTEXCLAM |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMQUEST |=:| MONG_BIODOISUUL , % ""
+ MANJU_TASLAL |=:| MONG_BIODOISUUL , % ""
+ MONG_MSP |=:| MONG_BIODOISUUL , % ""
+ MONG_MVS |=:| MONG_BIODOISUUL , % ""
+ MONG_NCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_GCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_TITEMSTROKE |=:| MONG_BIODOISUUL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_PO: % "po"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_PU: % "pu"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_TIBP: % "p'"
+ MANJU_A =: MANJU_TIBPA , % "p'a"
+ MANJU_E =: MANJU_TIBPE , % "p'e"
+ MANJU_I =: MANJU_TIBPI , % "p'i"
+ MANJU_O =: MANJU_TIBPO , % "p'o"
+ MANJU_U =: MANJU_TIBPU ; % "p'u"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_TIBPA: % "p'a"
+ %
+ % final p'a
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_TIBPE: % "p'e"
+ %
+ % final p'e
+ %
+ MONG_BNDRY |=:| MONG_ORXIC , % ""
+ MONG_ZERO |=:| MONG_ORXIC , % ""
+ MONG_ONE |=:| MONG_ORXIC , % ""
+ MONG_TWO |=:| MONG_ORXIC , % ""
+ MONG_THREE |=:| MONG_ORXIC , % ""
+ MONG_FOUR |=:| MONG_ORXIC , % ""
+ MONG_FIVE |=:| MONG_ORXIC , % ""
+ MONG_SIX |=:| MONG_ORXIC , % ""
+ MONG_SEVEN |=:| MONG_ORXIC , % ""
+ MONG_EIGHT |=:| MONG_ORXIC , % ""
+ MONG_NINE |=:| MONG_ORXIC , % ""
+ MONG_LT |=:| MONG_ORXIC , % ""
+ MONG_GT |=:| MONG_ORXIC , % ""
+ MONG_LGU |=:| MONG_ORXIC , % ""
+ MONG_RGU |=:| MONG_ORXIC , % ""
+ MONG_OPAREN |=:| MONG_ORXIC , % ""
+ MONG_CPAREN |=:| MONG_ORXIC , % ""
+ MONG_DORWOLJIN |=:| MONG_ORXIC , % ""
+ MANJU_FULLSTOP |=:| MONG_ORXIC , % ""
+ MONG_COLON |=:| MONG_ORXIC , % ""
+ MONG_ELLIPSIS |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMATION |=:| MONG_ORXIC , % ""
+ MONG_QUESTION |=:| MONG_ORXIC , % ""
+ MONG_QUESTEXCLAM |=:| MONG_ORXIC , % ""
+ MONG_EXCLAMQUEST |=:| MONG_ORXIC , % ""
+ MANJU_TASLAL |=:| MONG_ORXIC , % ""
+ MONG_MSP |=:| MONG_ORXIC , % ""
+ MONG_MVS |=:| MONG_ORXIC , % ""
+ MONG_NCEG |=:| MONG_ORXIC , % ""
+ MONG_GCEG |=:| MONG_ORXIC , % ""
+ MONG_TITEMSTROKE |=:| MONG_ORXIC ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MANJU_TIBPI: % "p'i"
+ %
+ % final p'i
+ %
+ MONG_BNDRY |=:| MONG_BIODOISUUL , % ""
+ MONG_ZERO |=:| MONG_BIODOISUUL , % ""
+ MONG_ONE |=:| MONG_BIODOISUUL , % ""
+ MONG_TWO |=:| MONG_BIODOISUUL , % ""
+ MONG_THREE |=:| MONG_BIODOISUUL , % ""
+ MONG_FOUR |=:| MONG_BIODOISUUL , % ""
+ MONG_FIVE |=:| MONG_BIODOISUUL , % ""
+ MONG_SIX |=:| MONG_BIODOISUUL , % ""
+ MONG_SEVEN |=:| MONG_BIODOISUUL , % ""
+ MONG_EIGHT |=:| MONG_BIODOISUUL , % ""
+ MONG_NINE |=:| MONG_BIODOISUUL , % ""
+ MONG_LT |=:| MONG_BIODOISUUL , % ""
+ MONG_GT |=:| MONG_BIODOISUUL , % ""
+ MONG_LGU |=:| MONG_BIODOISUUL , % ""
+ MONG_RGU |=:| MONG_BIODOISUUL , % ""
+ MONG_OPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_CPAREN |=:| MONG_BIODOISUUL , % ""
+ MONG_DORWOLJIN |=:| MONG_BIODOISUUL , % ""
+ MANJU_FULLSTOP |=:| MONG_BIODOISUUL , % ""
+ MONG_COLON |=:| MONG_BIODOISUUL , % ""
+ MONG_ELLIPSIS |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMATION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTION |=:| MONG_BIODOISUUL , % ""
+ MONG_QUESTEXCLAM |=:| MONG_BIODOISUUL , % ""
+ MONG_EXCLAMQUEST |=:| MONG_BIODOISUUL , % ""
+ MANJU_TASLAL |=:| MONG_BIODOISUUL , % ""
+ MONG_MSP |=:| MONG_BIODOISUUL , % ""
+ MONG_MVS |=:| MONG_BIODOISUUL , % ""
+ MONG_NCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_GCEG |=:| MONG_BIODOISUUL , % ""
+ MONG_TITEMSTROKE |=:| MONG_BIODOISUUL ; % ""
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_BIODOISUUL: % "k -"
+ MONG_NCEG kern ispace#; %
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_TIBPO: % "p'o"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_TIBPU: % "p'u"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable MANJU_TIBPUU: % "p'uu"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/mbatoms.mf b/Master/texmf-dist/fonts/source/public/montex/mbatoms.mf
new file mode 100644
index 00000000000..1cd35273045
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mbatoms.mf
@@ -0,0 +1,1334 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mbatoms.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: January 1st, 2002
+% Version: 0.9
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian and Manju Script (LMS, LMA)
+% Mongol Bicig, Manju Bithe Font Atoms Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% First we decide our identity:
+%
+ writing:=0;
+ Bicig:=1;
+ Bithe:=2;
+ Galig:=3;
+ Tod:=4;
+ Vagindra:=5;
+ Container:=255;
+
+% Then we decide our style:
+%
+ style:=0;
+ steel:=1;
+ wood:=2;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Then we decide our writing direction:
+%
+ boolean LR;
+
+% Some bizarre rotating equipment gets installed:
+ % pair Centerpoint;
+def ifrotated = % Our rotating mechanism
+ if LR: rotatedaround ((w/2,.5[h,-d]),180) fi
+enddef;
+
+% Yet we cannot deny that we still use the picture gimmick...
+%
+ picture zawjpicture, exenzawjpicture,
+ deribuntsh_picture, tsh_picture;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def numberpath = % Theoretical number shape; a slanted ellipsis
+ % pair z[];
+ path trial;
+ z1=(2/6numberwidth,gedesinner);
+ z2=(numberwidth-3thin,underinner+thin);
+ z3=(4/6numberwidth,underinner);
+ z4=(2thin,gedesinner-thin);
+ trial= (z1..tension 1.2..z2..tension 1.2..z3..tension
+ 1.2..z4..tension 1.2..cycle);
+ penlabels (1,2,3,4);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def nuruu (expr exen,suul) = % Manai nirugu!
+ numeric x[]; numeric y[];
+ z1=(exen,nuruuleft);
+ z2=(x1,nuruuright);
+ z3=(suul,y2);
+ z4=(x3,y1);
+ fill (z1--z2--z3--z4--cycle) ifrotated;
+ penlabels(1,2,3,4);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def shud (expr x_offset) = % Manai shud!
+ numeric x[]; numeric y[];
+ nuruu(shudwidth+x_offset,x_offset);
+ z1=(x_offset+shudwidth-bearing,Centerline+1/2nuruuwidth);
+ z2=(x_offset+bearing,y1);
+ z3=(1/2[x1,x2],shudheight);
+ fill (z1--z2--z3--cycle) ifrotated;
+ penlabels(1,2,3);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def shud_atom (expr exen, suul) = % Manai shud!
+ numeric x[]; numeric y[];
+ z1=(exen,Centerline+1/2nuruuwidth);
+ z2=(suul,y1);
+ z3=(1/2[x1,x2],shudheight);
+ fill (z1--z2--z3--cycle) ifrotated;
+ penlabels(1,2,3);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def dusal (expr posx, posy, xdim, ydim) = % Manai dusal!
+ "The dusal, used for n, s, g, etc.";
+ numeric x[]; numeric y[];
+ z1=(posx,posy-1/2ydim);
+ z2=(posx-1/2xdim,posy);
+ z3=(posx,posy+1/2ydim);
+ z4=(posx+1/2xdim,posy);
+ fill (z1--z2--z3--z4--cycle) ifrotated;
+ penlabels(1,2,3,4);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manjudusal (expr posx, posy, xdim, ydim) = % Manju dusal!
+ "The Manju dusal";
+ numeric x[]; numeric y[];
+ z1l=(posx+1/2xdim,posy+1/2ydim);
+ z2 =(posx-1/2xdim,posy);
+ z3l=(x1,posy-1/2ydim);
+ penpos1(1/4xdim,135);
+ penpos2(4/4xdim,180);
+ penpos3(1/4xdim,225);
+ penstroke(z1e..tension 2..z2e..tension 2..z3e) ifrotated;
+ penlabels(1,2,3);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ManjuDusal (expr posx, posy, xdim, ydim) = % Manju dusal!
+ "The Manju dusal";
+ numeric x[]; numeric y[];
+ z4l=(posx+1/2xdim,posy+1/2ydim);
+ z5 =(posx-1/2xdim,posy);
+ z6l=(x4,posy-1/2ydim);
+ penpos4(1/4xdim,135);
+ penpos5(4/4xdim,180);
+ penpos6(1/4xdim,225);
+ penstroke(z4e..tension 2..z5e..tension 2..z6e) ifrotated;
+ penlabels(4,5,6);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def cegteishud (expr posx) =
+ shud(posx);
+ dusal (posx+1/2shudwidth,yashilbeheight,3thin,2thick);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def titem =
+ numeric x[]; numeric y[];
+ z1=(0,nuruuleft);
+ z2=(bearing,y1);
+ z3=(1/2shudwidth,shudheight);
+ z4=(shudwidth-bearing,nuruuright);
+ z5=(shudwidth+bearing,y4);
+ z6=(8/12shudwidth,nuruuright-1thick);
+ z7=(1/2shudwidth,nuruuright);
+ z8=(0,nuruuright);
+ penlabels(1,2,3,4,5,6,7,8);
+ fill (z1--z2--z3..tension infinity..
+ z4..z5&z5{down}..z6..tension 2..z7--z8--cycle)
+ ifrotated;
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def titem_stroke (expr xpos) =
+ numeric x[]; numeric y[];
+ z1=(xpos+numtaigedeswidth,Centerline);
+ z2=(xpos,Centerline);
+ penpos1(nuruuwidth*1.15,80);
+ penpos2(nuruuwidth,90);
+ penlabels(1,2);
+ penstroke (z1e..z2e) ifrotated;
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def cegteititem =
+ titem;
+ dusal (1/2shudwidth,yashilbeheight,3thin,2thick);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def dugui (expr posx, posy, diameter) = % Manzu dugui!
+ "The dugui, used for h, nga, etc.";
+ numeric x[]; numeric y[];
+ z1=(posx,posy-1/2diameter);
+ z3=(posx,posy+1/2diameter);
+ pickup pencircle scaled 1.25 thin;
+ draw (z1..z3..cycle) ifrotated;
+ penlabels(1,3);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def suul =
+ if style=steel:
+ z1=(shudwidth,nuruuleft);
+ z2=(shudwidth-bearing,y1);
+ z3=(1/2shudwidth,shudheight);
+ z4=(-bearing,underouter);
+ z5=(bearing,suulouter-thin);
+ x6=(9/16shudwidth);
+ z6-z7=whatever*(z2-z3);
+ z7=(3/4shudwidth,nuruuright);
+ z8=(x1,nuruuright);
+ fill (z1--z2--z3..z4--z5{up}---z6--z7--z8--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8);
+ fi;
+ if style=wood:
+ nuruu(shudwidth,2/4shudwidth);
+ z1r=(shudwidth-bearing,gedesouter);
+ z2 =(x1-thin,Centerline);
+ z3 =(0,suulouter);
+ penpos1(thick,15);
+ penpos2(2/3thick,0);
+ penpos3(1/2thin,0);
+ penstroke (z1e..z2e..z3e) ifrotated;
+ penlabels(1,2,3);
+ fi;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bagaodoisuul =
+ if style=steel:
+ z1=(shudwidth,nuruuleft);
+ z2=(shudwidth-bearing,y1);
+ z3=(1/2shudwidth,shudheight);
+ z4=(-bearing,underinner);
+ z5=(bearing,underouter);
+ x6=(9/16shudwidth);
+ z6-z7=whatever*(z2-z3);
+ z7=(3/4shudwidth,nuruuright);
+ z8=(x1,nuruuright);
+ fill (z1--z2--z3..z4--z5{up}---z6--z7--z8--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8);
+ fi;
+ if style=wood:
+ nuruu(shudwidth,2/4shudwidth);
+ z1r=(shudwidth-bearing,gedesinner);
+ z2 =(x1-thin,Centerline);
+ z3 =(0,underouter);
+ penpos1(thick,15);
+ penpos2(2/3thick,0);
+ penpos3(1/2thin,0);
+ penstroke (z1e..z2e..z3e) ifrotated;
+ penlabels(1,2,3);
+ fi;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def gedes (expr x_offset) =
+ numeric x[]; numeric y[];
+ nuruu(x_offset+gedeswidth,x_offset);
+ z11r=(x_offset+gedeswidth-bearing,nuruuleft);
+ z12r=(1/2[x11,x13],gedesouter);
+ z13r=(x_offset+bearing,nuruuleft);
+ penpos11(thin,0);
+ penpos12(gedesouter-gedesinner,90);
+ penpos13(thin,180);
+ penstroke (z11e{up}..z12e..{down}z13e) ifrotated;
+ penlabels(11,12,13);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def shilbe (expr x_offset) =
+ numeric x[]; numeric y[];
+ nuruu(shilbewidth+x_offset,x_offset);
+ z21r=(shilbewidth+x_offset,nuruuleft);
+ z22r=(+3thin+x_offset,shilbeheight);
+ penpos21(2thin,0);
+ penpos22(4thin,60);
+ penstroke (z21e--z22e) ifrotated;
+ penlabels(21,22);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bosoo_shilbe =
+ nuruu(eswidth,0);
+ z1r=(eswidth,gedesouter+1/2thin);
+ z2r=(5/6eswidth,shudheight+1/2thin);
+ z3r=(3/12eswidth,shudheight-1/2thin);
+ z4 =(bearing,Centerline);
+% z4r=(bearing,Centerline);
+ penpos1(gedesouter-gedesinner,85);
+ penpos2(gedesouter-gedesinner,85);
+ penpos3(gedesouter-gedesinner,100);
+ penpos4(nuruuleft-nuruuright,100);
+ penstroke (z1e..z2e---z3e--z4e) ifrotated;
+ penlabels(1,2,3,4);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def orxic (expr x_offset) =
+ numeric x[]; numeric y[];
+ if style=wood:
+ z31=(x_offset+orxicwidth,Centerline);
+ z32=(x_offset+5/8orxicwidth,Centerline);
+ z33=(x_offset+1/9orxicwidth,Centerline+thick);
+ z34=(x_offset+2/9orxicwidth,orxicouter-thick);
+ z35r=(x_offset+1/9orxicwidth,orxicouter);
+ z36r=(x_offset+0,orxicouter);
+ penpos31(nuruuwidth,90);
+ penpos32(nuruuwidth,90);
+ penpos33(nuruuwidth,67);
+ penpos34(nuruuwidth,67);
+ penpos35(nuruuwidth,90);
+ penpos36(nuruuwidth,90);
+ penstroke (z31e---z32e..
+ tension 1.2..z33e..
+ tension 1.5..z34e..
+ tension 1.5..z35e---z36e) ifrotated;
+ fi;
+ if style=steel:
+ z31 =( orxicwidth,Centerline);
+ z32 =(9/12orxicwidth,Centerline);
+ z33r=(5/24gedeswidth,orxicouter);
+ penpos31(nuruuwidth,-90);
+ penpos32(nuruuwidth,-90);
+ penpos33(3/3thick,105);
+ penstroke
+ (z31e---z32e{left}..tension 2.5..{right}z33e)
+ ifrotated;
+ fi;
+ penlabels(31,32,33,34,35,36);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def seree_ewer =
+ nuruu(eswidth,0);
+ z41r=(5/6eswidth,gedesouter);
+ z42r=(4/6eswidth,shudheight);
+ z43r=(5/4bearing,shudheight);
+ z44 =(bearing,Centerline);
+ penpos41(gedesouter-gedesinner,85);
+ penpos42(gedesouter-gedesinner,85);
+ penpos43(gedesouter-gedesinner,100);
+ penpos44(nuruuleft-nuruuright,100);
+ penstroke (z41e..z42e---z43e--z44e) ifrotated;
+ penlabels(41,42,43,44);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def l_ewer (expr x_offset) =
+ numeric x[]; numeric y[];
+ z51r=(x_offset,nuruuright);
+ z52r=(x51,-0.8thick+underinner+1.5thin);
+ z53r=(x51+1.5thin,-0.8thick+underinner);
+ z54r=(x51+1.5shudwidth,-0.8thick+underinner);
+ penpos51(1.75thin,0);
+ penpos52(2.25thin,0);
+ penpos53(underinner-underouter,+90);
+ penpos54(epsilon,+90);
+ penstroke (z51e---z52e{down}..{right}z53e---z54e) ifrotated;
+ penlabels(51,52,53,54);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def high_l_ewer (expr x_offset) =
+ numeric x[]; numeric y[];
+ z61r=(x_offset,nuruuright);
+ z62r=(x61, underouter-2.5thin+1.5thin);
+ z63r=(x61+1.5thin, underouter-2.5thin);
+ z64r=(x_offset+1.5shudwidth, underouter-2.5thin);
+ penpos61(thin,0);
+ penpos62(2.25thin,0);
+ penpos63(underinner-underouter,+90);
+ penpos64(epsilon,+90);
+ penstroke (z61e---z62e{down}..{right}z63e---z64e) ifrotated;
+ penlabels(61,62,63,64);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def m_ewer (expr x_offset) =
+ numeric x[]; numeric y[];
+ z71 =(x_offset+5/16shudwidth,Centerline);
+ z72r=(x_offset+1/16shudwidth,underinner-1.65thin);
+ z73 =(x_offset-10/12shudwidth,y72);
+
+ penpos71(underinner-underouter,+95);
+ penpos72(underinner-underouter,+95);
+ penpos73(underinner-underouter,+75);
+
+ penstroke (z71e--z72e--z73e) ifrotated;
+ penlabels(71,72,73);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def baganum =
+ nuruu(numtaigedeswidth,numtaigedeswidth-bearing);
+ z81l=(1/2numtaigedeswidth,gedesinner);
+ z82r=(numtaigedeswidth-1/2bearing,nuruuleft);
+ penpos81(4thin,60);
+ penpos82(2thin,0);
+
+ z84 =(x82,nuruuright);
+ z85r=(1/2[x84,x86],sdepth);
+ z86r=(0,nuruuleft);
+ penpos84(2thin,0);
+ penpos85(underinner-underouter,-90);
+ penpos86(1/2thin,-180);
+
+ penstroke (z81e..z82e...z84e{down}..z85e..{up}z86e) ifrotated;
+ penlabels(81,82,83,84,85,86);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def f_flag (expr f_anfang, f_ende) =
+ z91l=(f_ende,gedesouter);
+ penpos91(1/2thin,90);
+ z92 =(1/6[x91,x94],shilbeheight);
+ penpos92(2thin,90);
+ z93 =(5/6[x91,x94],shilbeheight);
+ penpos93(2thin,90);
+ z94r=(f_anfang,yashilbeheight);
+ penpos94(1/2thin,90);
+ penstroke (z91e{up}..z92e..z93e..{up}z94e) ifrotated;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def adagu =
+ nuruu(eswidth,eswidth-numtaigedeswidth);
+
+ z1r=(eswidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(eswidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(0,nuruuright); % nuruuright was Centerline
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/4thin,-180);
+ penstroke (z4e{down}..z5e..{up}z6e) ifrotated;
+ penlabels(1,2,3,4,5,6);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def xewteeqix =
+ nuruu(2bearing,0);
+ z1=(tewidth,Centerline);
+ z2=(tewidth-bearing-4thin,gedesinner);
+
+ penpos1(nuruuwidth,90);
+ penpos2(thin,45);
+
+ z3r=(tewidth-1/2bearing-0thin,Centerline);
+ z4r=(1/2[x3,x5],underouter);
+ z5r=(bearing,Centerline);
+ z6=(bearing+2thin,gedesinner);
+
+ penpos3(3thin,-45);
+ penpos4(underinner-underouter,-90);
+ penpos5(2thin,-180);
+ penpos6(thin,-215);
+
+ penstroke (z1e{left}..{up}z2e) ifrotated;
+ penstroke (z3e{down}..z4e..z5e..z6e) ifrotated;
+ penlabels(1,2,3,4,5,6);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def modgedestshilbe =
+ nuruu(eswidth,0);
+ z1r=(eswidth-1/2bearing,nuruuleft);
+ z2 =(07/16eswidth,orxicouter);
+ penpos1(2thin,0);
+ penpos2(2thin,45);
+ penstroke (z1e--z2e) ifrotated;
+ z3r=z2;
+ z4r=(bearing,5/12[y1,y2]);
+
+ penpos3(2thin,115 );
+ penpos4(2thin,210);
+
+ z5 =(6/16eswidth,3/12[y1,y2]);
+ z6 =(x1-2u,nuruuleft);
+
+ penpos5(1.5thin,235);
+ penpos6(1.75thin,180);
+ penstroke (z3e{dir 205}..tension 1.4..z4e..tension 1.4..z5e..z6e)
+ ifrotated;
+ penlabels(1,2,3,4,5,6);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def roundgedestshilbe =
+ nuruu(eswidth,0);
+ z1r=(eswidth-1/2bearing,nuruuleft);
+ z2 =(09/16eswidth,shilbeheight);
+
+ penpos1(2thin,0);
+ penpos2(2thin,angle(z2-z1)-90);
+
+ z3 =3.5[z2r,z2l];
+ penpos3(2thin,angle(z2-z1)+90);
+
+ penstroke (z1e--z2e) ifrotated;
+ penstroke (z2e..z3e..cycle) ifrotated;
+ penlabels(1,2,3,4,5,6);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manju_te =
+ nuruu(eswidth,0);
+ z1r=(eswidth-1/2bearing,nuruuleft);
+ z2 =(05/16eswidth,orxicouter);
+ penpos1(2thin,0);
+ penpos2(2thin,45);
+ penstroke (z1e--z2e) ifrotated;
+ z3r=1/10[z2l,z1l];
+ z4 =6/10[z2l,z1l];
+ penpos3(2thin,angle(z2r-z1r));
+ penpos4(2thin,angle(z1r-z2r));
+ penstroke (z3e..{dir 25}z4e) ifrotated;
+ penlabels(1,2,3,4,5,6);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def deribun_ta =
+ nuruu(shudwidth,0);
+ shud_atom(1/2gedeswidth,bearing);
+ z1 =(shudwidth,Centerline);
+ z2r=(2/6[x1,x3],nuruuleft+2.5thin);
+ z4l=(3/6[x1,x3],nuruuright-4.5thin);
+ z3r=(cewidth,Centerline);
+ z5l=(cewidth,Centerline);
+ penpos1(nuruuwidth,90);
+ penpos2(2thin, 90);
+ penpos3(2thin, 0);
+ penpos4(2thin, 90);
+ penpos5(2thin,180);
+ penstroke (z1e..tension 1.4..z2e..tension 1.2..z3e) ifrotated;
+ penstroke (z1e{down}..tension 1.0..z4e..tension 1.1..z5e) ifrotated;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def deribun_te =
+ nuruu(cewidth,0);
+ shud_atom(1/2gedeswidth,bearing);
+ z1r=(cewidth,nuruuright-thick);
+ z2r=(1/3cewidth,underouter);
+ z3r=(bearing,nuruuright);
+ z4r=(1/2cewidth,nuruuright);
+ penpos1(thick,0);
+ penpos2(underinner-underouter,-90);
+ penpos3(2thin,-180);
+ penpos4(thin,0);
+ penstroke (z1e{dir 160}..tension 1.2..z4e) ifrotated;
+ penstroke (z1e..tension 2..z2e..{up}z3e) ifrotated;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manju_si =
+ z1=(tewidth-bearing,nuruuleft);
+ z2=(1/2[x1,x3],shudheight);
+ z3=(x1-shudwidth+2bearing,y1);
+ y4=nuruuright-1thin;
+ z4=whatever[z2,z3];
+
+ y5=nuruuleft;
+ z4-z5=whatever * (z2-z1);
+ y6=nuruuleft;
+ z5-z6=whatever * (z2-z3);
+
+ y7=sdepth;
+ z4-z7=whatever * (z1-z2);
+ y8=nuruuright;
+ z7-z8=whatever * (z2-z3);
+ y9=underouter;
+ z7-z9=whatever * (z7-z8);
+ y10=nuruuright;
+ z10-z9=whatever* (z1-z2);
+ z11=(x6,nuruuright);
+ fill (z11--z10--z9--z1--z2--z4--z5--z6--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+ nuruu(tewidth,tewidth-thick);
+ nuruu(16/36tewidth,0);
+ z21r=(16/36tewidth,nuruuleft);
+ z22r=(+3thin,shilbeheight);
+ penpos21(2thin,0);
+ penpos22(4thin,60);
+ penstroke (z21e--z22e) ifrotated;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manju_deribun_si =
+ z1=(tewidth-bearing,nuruuleft);
+ z2=(1/2[x1,x3],shudheight);
+ z3=(x1-shudwidth+2bearing,y1);
+ y4=nuruuright-1thin;
+ z4=whatever[z2,z3];
+
+ y5=nuruuleft;
+ z4-z5=whatever * (z2-z1);
+ y6=nuruuleft;
+ z5-z6=whatever * (z2-z3);
+
+ y7=sdepth;
+ z4-z7=whatever * (z1-z2);
+ y8=nuruuright;
+ z7-z8=whatever * (z2-z3);
+ y9=underouter;
+ z7-z9=whatever * (z7-z8);
+ y10=nuruuright;
+ z10-z9=whatever* (z1-z2);
+ z11=(x6,nuruuright);
+ fill (z11--z10--z9--z1--z2--z4--z5--z6--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+% nuruu(tewidth,tewidth-thick);
+ nuruu(16/36tewidth,0);
+ z21r=(16/36tewidth,nuruuleft);
+ z22r=(+3thin,shilbeheight);
+ penpos21(2thin,0);
+ penpos22(4thin,60);
+ penstroke (z21e--z22e) ifrotated;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def zawj =
+ nuruu(tewidth,tewidth-thick);
+ nuruu(1/3tewidth,0);
+ z1=(tewidth-bearing,nuruuleft);
+ z2=(1/2[x1,x3],shudheight);
+ z3=(x1-shudwidth+2bearing,y1);
+ y4=nuruuright-1thin;
+ z4=whatever[z2,z3];
+
+ y5=shudheight;
+ z4-z5=whatever * (z2-z1);
+ y6=nuruuleft;
+ z5-z6=whatever * (z2-z3);
+
+ y7=sdepth;
+ z4-z7=whatever * (z1-z2);
+ y8=nuruuright;
+ z7-z8=whatever * (z2-z3);
+ y9=underouter;
+ z7-z9=whatever * (z7-z8);
+ y10=nuruuright;
+ z10-z9=whatever* (z1-z2);
+ z11=(x6,nuruuright);
+ fill (z11--z10--z9--z1--z2--z4--z5--z6--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+ zawjpicture:=currentpicture;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def qagt =
+ nuruu(gedeswidth,gedeswidth-bearing);
+ if writing=Bithe:
+ z1 =(w-1/16shudwidth,shudheight-thin);
+ penpos1(2.5thin,-30);
+ z2r=(gedeswidth-bearing,nuruuleft);
+ fi;
+ if writing=Bicig:
+ z1l=(1/3gedeswidth,shudheight);
+ penpos1(4thin,60);
+ z2r=(gedeswidth-1/2bearing,nuruuleft);
+ fi;
+
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(0,Centerline);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/2thin,-180);
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e) ifrotated;
+ penlabels(1,2,3,4,5,6);
+ z11=(gedeswidth,Centerline);
+ z12=(gedeswidth-3/4thick,Centerline);
+ z13=(gedeswidth-1.75thick,nuruuleft+thin);
+ penpos11(nuruuwidth,90);
+ penpos12(14/16nuruuwidth,80);
+ penpos13(epsilon,45);
+ penstroke (z11e---z12e..z13e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,11,12,13);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def exenzawj =
+ % nuruu(tewidth,tewidth-thick);
+ nuruu(1/3tewidth,0);
+ z1=(tewidth-bearing,nuruuleft);
+ z2=(1/2[x1,x3],shudheight);
+ z3=(x1-shudwidth+2bearing,y1);
+ y4=nuruuright-1thin;
+ z4=whatever[z2,z3];
+
+ y5=shudheight;
+ z4-z5=whatever * (z2-z1);
+ y6=nuruuleft;
+ z5-z6=whatever * (z2-z3);
+
+ y7=sdepth;
+ z4-z7=whatever * (z1-z2);
+ y8=nuruuright;
+ z7-z8=whatever * (z2-z3);
+ y9=underouter;
+ z7-z9=whatever * (z7-z8);
+ y10=nuruuright;
+ z10-z9=whatever* (z1-z2);
+ z11=(x6,nuruuright);
+ fill (z11--z10--z9--z1--z2--z4--z5--z6--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+ exenzawjpicture:=currentpicture;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def suulzawj =
+ nuruu(tewidth,tewidth-thick);
+ z1=(tewidth-bearing,nuruuleft);
+ z2=(1/2[x1,x3],shudheight);
+ z3=(x1-shudwidth+2bearing,y1);
+ y4=nuruuright-1thin;
+ z4=whatever[z2,z3];
+
+ y5=shudheight;
+ z4-z5=whatever * (z2-z1);
+ % y6=nuruuleft;
+ % z5-z6=whatever * (z2-z3);
+ z6=(0,underouter);
+
+ y7=sdepth;
+ z4-z7=whatever * (z1-z2);
+ y8=nuruuright;
+ z7-z8=whatever * (z2-z3);
+ y9=underouter;
+ z7-z9=whatever * (z7-z8);
+ y10=nuruuright;
+ z10-z9=whatever* (z1-z2);
+ z11=(x6,nuruuright);
+
+ % pickup pencircle scaled 1/4thin;
+ fill (z10--z9--z1--z2--z4--z5..z6{z3-z2}&z6{z2-z6}..z10--cycle)
+ ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manju_sh_stroke =
+ z19l=(29/36tewidth,shudheight);
+ z20l=(10/36tewidth,shilbeheight);
+ penpos19(7/9thick,75);
+ penpos20(6/9thin,60);
+ penstroke (z19e{left}..tension 2.5..{up}z20e) ifrotated;
+ penlabels(19,20);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manju_dz_stroke =
+ z31l=( tewidth,underouter);
+ z32l=(1/6tewidth,underouter);
+ penpos31(2thin,-75);
+ penpos32(2thin,-75);
+ penstroke (z31e..z32e) ifrotated;
+ penlabels(31,32);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def sy_nuruu(expr xbegin,xend) =
+ nuruu(xbegin,xend);
+ z1 =(xbegin, 5/6 underinner);
+ z2 =(1/2[xbegin,xend],3/4gedesinner);
+ z3 =(xend, y1);
+ z4 =(xend+10/4thin, underinner);
+ z5 =(x2,Centerline);
+ z6 =(xbegin-10/4thin,y4);
+ fill (z1--z2--z3--z4--z5--z6--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manju_tsh_stroke =
+ x33=x34=1/2[x31,x32];
+ y33=y31;
+ y34=suulouter-0.80thick;
+ penpos33(2thin,-25);
+ penpos34(2thin,-25);
+ penstroke (z33e--z34e) ifrotated;
+ penlabels(33,34);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligba =
+ nuruu(secAwidth,0);
+ nuruu(bawidth,bawidth-numtaigedeswidth);
+ shud_atom(secAwidth,bearing);
+
+ z1r=(bawidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(bawidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6l=(secAwidth,nuruuright);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+ penstroke (z4e{down}..z5e..{up}z6e) ifrotated;
+
+ z7=(1/2[secAwidth,bearing],shudheight);
+ z8=(secAwidth,nuruuleft);
+ z9=(x8,nuruuright);
+ unfill (z7--z8--z9--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligbu (expr xpos) =
+ tntgw:=2numtaigedeswidth;
+ nuruu(tntgw+xpos,xpos);
+ z1r=(xpos+tntgw/2-1,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(xpos+1/2bearing,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+
+ z4r=(xpos+tntgw-1/2bearing,nuruuleft);
+ z5r=(1/2[x4,x6],gedesouter);
+ z6r=(xpos+tntgw/2+1,nuruuleft);
+ penpos4(thin,0);
+ penpos5(gedesouter-gedesinner,90);
+ penpos6(thin,180);
+
+ z7 =(x3,nuruuright);
+ z8l=(1/2[x7,x9],underouter);
+ z9 =(x4,nuruuright);
+ penpos7(thin,0);
+ penpos8(gedesouter-gedesinner,90);
+ penpos9(thin,180);
+
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+ penstroke (z4e{up}..z5e..{down}z6e) ifrotated;
+ penstroke (z7e{down}..z8e..{up}z9e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligmongpa =
+ nuruu(secAwidth,0);
+ nuruu(bawidth,bawidth-numtaigedeswidth);
+ shud_atom(secAwidth,bearing);
+
+% z1r=(bawidth-1/2bearing,nuruuleft);
+ z1r=(bawidth-1/2bearing,gedesouter+thin);
+ z2r=(1/3[x1,x4],gedesouter);
+ z3r=(7/12[x1,x4],gedesouter);
+ z4r=(bawidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,180);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(gedesouter-gedesinner,90);
+ penpos4(thin,180);
+ penstroke (z1e..z2e..z3e..{down}z4e) ifrotated;
+
+ z5r=(x1,nuruuright);
+ z6r=(1/2[x5,x7],underouter);
+ z7l=(secAwidth,nuruuright);
+ penpos5(thin,0);
+ penpos6(underinner-underouter,-90);
+ penpos7(2thin,-180);
+ penstroke (z5e{down}..z6e..{up}z7e) ifrotated;
+
+ z8=(1/2[secAwidth,bearing],shudheight);
+ z9=(secAwidth,nuruuleft);
+ z10=(x9,nuruuright);
+ unfill (z10--z8--z9--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligmongpu =
+ nuruu(w,0);
+ z1r=(w-1/2bearing,gedesouter+thin);
+ z2r=(1/3[x1,x4],gedesouter);
+ z3r=(7/12[x1,x4],gedesouter);
+ z4r=(w/2+1,nuruuleft);
+ penpos1(thin,180);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(gedesouter-gedesinner,90);
+ penpos4(thin,180);
+ penstroke (z1e..z2e..z3e..{down}z4e) ifrotated;
+
+ z5r=(w-1/2bearing,nuruuright);
+ z6r=(w/2,underouter);
+ z7r=(1/2bearing,y5);
+ penpos5(thin,0);
+ penpos6(underinner-underouter,-90);
+ penpos7(thin,-180);
+ penstroke (z5e{down}..z6e..z7e{up}) ifrotated;
+ z8 =(x7,nuruuleft);
+ z9r=(1/2[x8,x10],gedesouter);
+ z10r=(w/2-1,y8);
+ penpos8(thin,180);
+ penpos9(gedesouter-gedesinner,90);
+ penpos10(thin,0);
+ penstroke (z8e{up}..z9e..{down}z10e) ifrotated;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def liggha =
+ nuruu(secAwidth,0);
+ shud_atom(secAwidth,bearing);
+ nuruu(bawidth,bawidth-bearing);
+ z1l=(bawidth-gedeswidth+5thin,shudheight-thin);
+ z2r=(bawidth-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6l=(secAwidth,nuruuright);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e) ifrotated;
+
+ z7=(1/2[secAwidth,bearing],shudheight);
+ z8=(secAwidth,nuruuleft);
+ z9=(x8,nuruuright);
+ unfill (z7--z8--z9--cycle) ifrotated;
+
+ z10r=(bawidth,gedesouter+thin);
+ z11 =(x10-2thin,shudheight-5thin);
+ penpos10(1.5thin,0);
+ penpos11(2thin,-45);
+ penstroke (z10e..z11e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligkha =
+ nuruu(secAwidth,0);
+ shud_atom(secAwidth,bearing);
+ % Variant, more Manju-like
+ if writing=Bithe:
+ z1 =(w-1/16shudwidth,shudheight-thin);
+ penpos1(2.5thin,-30);
+ z2r=(bawidth-bearing,nuruuleft);
+ fi;
+ if writing=Bicig:
+ z1l=(bawidth-gedeswidth+5thin,shudheight);
+ penpos1(4thin,60);
+ z2r=(bawidth-1/2bearing,nuruuleft);
+ fi;
+
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6l=(secAwidth,nuruuright);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e) ifrotated;
+
+ z7=(1/2[secAwidth,bearing],shudheight);
+ z8=(secAwidth,nuruuleft);
+ z9=(x8,nuruuright);
+ unfill (z7--z8--z9--cycle) ifrotated;
+
+ z11=(bawidth,Centerline);
+ z12=(bawidth-3/4thick,Centerline);
+ z13=(bawidth-1.5thick,nuruuleft+thin);
+ penpos11(nuruuwidth,90);
+ penpos12(14/16nuruuwidth,80);
+ penpos13(epsilon,45);
+ penstroke (z11e---z12e..z13e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,11,12,13);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligkhi =
+ nuruu(shilbewidth-2thin,0);
+ nuruu(biwidth,biwidth-bearing);
+ if writing=Bithe:
+ z1 =(w+1/4shudwidth,shudheight-thin);
+ penpos1(2.5thin,-30);
+ fi;
+ if writing=Bicig:
+ z1l=(biwidth-gedeswidth+5thin,shudheight);
+ penpos1(4thin,60);
+ fi;
+ z2r=(biwidth-1/2bearing,nuruuleft);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6l=(shilbewidth,nuruuright);
+ z7l=(3thin,shilbeheight);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+ penpos7(4thin,-120);
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e..tension
+ infinity..z7e) ifrotated;
+
+ z11=(biwidth,Centerline);
+ z12=(biwidth-3/4thick,Centerline);
+ z13=(biwidth-1.5thick,nuruuleft+thin);
+ penpos11(nuruuwidth,90);
+ penpos12(14/16nuruuwidth,80);
+ penpos13(epsilon,45);
+ penstroke (z11e---z12e..z13e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligkhu =
+ % Variant, more Manju-like
+ if writing=Bithe:
+ z1 =(w-1/16shudwidth,shudheight-thin);
+ penpos1(2.5thin,-30);
+ z2r=(bawidth-bearing,nuruuleft);
+ fi;
+ if writing=Bicig:
+ z1l=(bawidth-gedeswidth+5thin,shudheight);
+ penpos1(4thin,60);
+ z2r=(bawidth-1/2bearing,nuruuleft);
+ fi;
+
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(1/2bearing,nuruuright);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(thin,-180);
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e) ifrotated;
+
+ z7=(bawidth,Centerline);
+ z8=(bawidth-3/4thick,Centerline);
+ z9=(bawidth-1.5thick,nuruuleft+thin);
+ penpos7(nuruuwidth,90);
+ penpos8(14/16nuruuwidth,80);
+ penpos9(epsilon,45);
+ penstroke (z7e---z8e..z9e) ifrotated;
+
+ nuruu(0,numtaigedeswidth);
+ z11r=(numtaigedeswidth,nuruuleft);
+ z12r=(1/2[x11,x13],gedesouter);
+ z13r=(1/2bearing,nuruuleft);
+ penpos11(thin,0);
+ penpos12(gedesouter-gedesinner,90);
+ penpos13(thin,180);
+ penstroke (z11e{up}..z12e..{down}z13e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9,11,12,13);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manju_pa =
+ nuruu(secAwidth,0);
+ nuruu(bawidth,bawidth-numtaigedeswidth);
+ shud_atom(secAwidth,bearing);
+
+ z1r=(bawidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(bawidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6 =(1/2[x4,x8],0);
+ z7l=(1/2[x6,x8],underouter);
+ z8r=(secAwidth,nuruuright);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/2thin,-180);
+ penpos7(3/4(underinner-underouter),-270);
+ penpos8(2thin, 0);
+ penstroke (z4e{down}..z5e..{up}z6e) ifrotated;
+ penstroke (z6e{down}..z7e..tension 1.4..{up}z8e) ifrotated;
+
+ z10=(1/2[secAwidth,bearing],shudheight);
+ z11=(secAwidth,nuruuleft);
+ z12=(x11,nuruuright);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+ unfill (z10--z11--z12--cycle) ifrotated;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manju_pi =
+ nuruu(shilbewidth-2thin,0);
+ nuruu(biwidth,biwidth-numtaigedeswidth);
+
+ z1r=(biwidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(biwidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6 =(1/2[x4,x8],0);
+ z7l=(1/2[x6,x8],underouter);
+ z8r=(shilbewidth,nuruuright);
+ z9r=(3thin,shilbeheight);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/2thin,-180);
+ penpos7(3/4(underinner-underouter),-270);
+ penpos8(2thin, 0);
+ penpos9(4thin, 30);
+ penstroke (z4e{down}..z5e..{up}z6e) ifrotated;
+ penstroke (z6e{down}..z7e..tension 1.4..{up}z8e..tension infinity..z9e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def manju_po =
+ nuruu(w,0);
+ z1l=(w/2+1,nuruuleft);
+ z2l=(1/2[x1,x3],gedesouter);
+ z3l=(w-1/2bearing,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,-90);
+ penpos3(thin,-180);
+
+ z4l=(1/2bearing,nuruuleft);
+ z5l=(1/2[x4,x6],gedesouter);
+ z6l=(w/2-1,nuruuleft);
+ penpos4(thin,0);
+ penpos5(gedesouter-gedesinner,-90);
+ penpos6(thin,-180);
+
+ z7 =(x3,nuruuright);
+ z8l =(1/2[x7,x9],underouter);
+ z9 =(1/2[x7,x11],0);
+ z10r=(1/2[x9,x11],underouter);
+ z11 =(x4,nuruuright);
+ penpos7(thin,-180);
+ penpos8(gedesouter-gedesinner,-270);
+ penpos9(1/2thin, 0);
+ penpos10(gedesouter-gedesinner,-90);
+ penpos11(thin,180);
+
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+ penstroke (z4e{up}..z5e..{down}z6e) ifrotated;
+ penstroke (z7e{down}..z8e..{up}z9e) ifrotated;
+ penstroke (z9e{down}..z10e..z11e{up}) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligka =
+ nuruu(secAwidth,0);
+ nuruu(w,w-bearing);
+ shud_atom(secAwidth,bearing);
+ z1l=(w-gedeswidth+5thin,shudheight-thin);
+ z2r=(w-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underinner-1/2thin); % underinner was underouter
+ z6l=(secAwidth,nuruuright);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e) ifrotated;
+
+ z7=(1/2[secAwidth,bearing],shudheight);
+ z8=(secAwidth,nuruuleft);
+ z9=(x8,nuruuright);
+ unfill (z7--z8--z9--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligki =
+ nuruu(shilbewidth-thin,0);
+ nuruu(w,w-bearing);
+ z1l=(w-gedeswidth+5thin,shudheight-thin);
+ z2r=(w-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underinner-thin); % underinner was underouter
+ z6l=(shilbewidth,nuruuright);
+ z7l=(3thin,shilbeheight);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+ penpos7(4thin,-120);
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e..
+ tension infinity..z7e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ligku =
+ nuruu(numtaigedeswidth,0);
+ nuruu(bawidth,bawidth-bearing);
+ z1r=(bawidth-4thin,shudheight+thin);
+ z2r=(bawidth-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(1/2bearing,nuruuright);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(thin,-180);
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e) ifrotated;
+
+ z11r=(numtaigedeswidth,nuruuleft);
+ z12r=(1/2[x11,x13],gedesouter);
+ z13r=(1/2bearing,nuruuleft);
+ penpos11(thin,0);
+ penpos12(gedesouter-gedesinner,90);
+ penpos13(thin,180);
+ penstroke (z11e{up}..z12e..{down}z13e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Exclam (expr vpos) =
+ "Exclamation mark";
+ z6=(numberwidth-3thin,vpos);
+ penpos6(3.5thin,90);
+ z7=(3/4gedeswidth,vpos);
+ penpos7(2thin,90);
+ pickup pencircle scaled 3.5 thin;
+ drawdot (z6) ifrotated;
+ pickup pencircle scaled 2 thin;
+ drawdot (z7) ifrotated;
+ z8=(thick,vpos);
+ pickup pencircle scaled 3.5 thin;
+ drawdot (z8) ifrotated;
+ penstroke (z6e..z7e) ifrotated;
+ penlabels(6,7,8);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Quest (expr vpos) = % Our Question Mark
+ numeric x[]; numeric y[];
+ radius:=1.15thick;
+ z1=(numberwidth-radius-2thin,vpos+1.25thick);
+ penpos1(2.5thin,90);
+ z2=(numberwidth-2thin,vpos);
+ penpos2(2thin,0);
+ z3=(x1,vpos-radius);
+ penpos3(2.5thin,-90);
+ z4=(6/8gedeswidth,vpos);
+ penpos4(2.25thin,-90);
+ z5=(thick,vpos);
+
+ pickup pencircle scaled 2.5thin;
+ drawdot (z1) ifrotated;
+ pickup pencircle scaled 2.0thin;
+ drawdot (z4) ifrotated;
+ pickup pencircle scaled 3.5thin;
+ drawdot (z5) ifrotated;
+ penstroke (z1e{right}..z2e{down}..z3e{left}..z4e{left}) ifrotated;
+ penlabels(1,2,3,4,5);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SpezRahmen = % Useful for all these special characters
+pickup pencircle scaled thin;
+ draw ((1thin,orxicouter-thin)--
+ (w-1thin,orxicouter-thin)--
+ (w-1thin,suulouter+thin)--
+ (1thin,suulouter+thin)--cycle)
+ ifrotated;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def F (expr startp, width) =
+ numeric x[]; numeric y[];
+ z1=(latinbottomline,startp);
+ z2=(latintopline,y1);
+ z3=(x2,width);
+ z4=(3/5[latinbottomline,latintopline],y1);
+ z5=(x4,3/4[startp,width]);
+ pickup pencircle scaled 1.5thin;
+ draw (z1--z2--z3) ifrotated;
+ draw (z4--z5) ifrotated;
+ penlabels (1,2,3,4,5);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def M (expr startp, width) =
+ numeric x[]; numeric y[];
+ z1=(latinbottomline,startp);
+ z2=(latintopline,y1);
+ z3=(1/3[latinbottomline,latintopline],1/2[startp,width]);
+ z4=(x2,width);
+ z5=(x1,y4);
+ pickup pencircle scaled 1.5thin;
+ draw (z1--z2--z3--z4--z5) ifrotated;
+ penlabels (1,2,3,4,5);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def P (expr startp, width) =
+ numeric x[]; numeric y[];
+ z1=(latinbottomline,startp);
+ z2=(latintopline,y1);
+ z3=(1/2[x2,x4],width);
+ z4=(3/5[latinbottomline,latintopline],y1);
+ pickup pencircle scaled 1.5thin;
+ draw (z1--z2) ifrotated;
+ draw (z2{down}..z3..{up}z4) ifrotated;
+ penlabels (1,2,3,4);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def S (expr startp, width) =
+ numeric x[]; numeric y[];
+ z1=(latintopline-thin,5/6[startp,width]);
+ z2=(latintopline,1/2[startp,width]);
+ z3=(3/4[latinbottomline,latintopline],startp);
+ z4=(1/2[latintopline,latinbottomline],y2);
+ z5=(1/4[latinbottomline,latintopline],width);
+ z6=(latinbottomline,y2);
+ z7=(latinbottomline+thin,1/6[startp,width]);
+ pickup pencircle scaled 1.5thin;
+ draw (z1..{up}z2..z3..z4..z5..{up}z6..z7) ifrotated;
+ penlabels (1,2,3,4,5,6,7);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def V (expr startp, width) =
+ numeric x[]; numeric y[];
+ z1=(latintopline,startp);
+ z2=(latinbottomline,1/2[startp,width]);
+ z3=(x1,width);
+ pickup pencircle scaled 1.5thin;
+ draw (z1--z2--z3) ifrotated;
+ penlabels (1,2,3,4,5);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def eins (expr startp, width) =
+ numeric x[]; numeric y[];
+ z1=(latintopline-2thin,startp);
+ z2=(latintopline,2/3[startp,width]);
+ z3=(latinbottomline,y2);
+ pickup pencircle scaled 1.5thin;
+ draw (z1--z2--z3) ifrotated;
+ penlabels (1,2,3,4,5);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def zwei (expr startp, width) =
+ numeric x[]; numeric y[];
+ z1=(latintopline-2thin,startp);
+ z2=(latintopline,1/2[startp,width]);
+ z3=(1/2[latintopline,latinbottomline],y2);
+ z4=(latinbottomline,startp);
+ z5=(x4,width);
+ pickup pencircle scaled 1.5thin;
+ draw (z1..{down}z2..z3..{left}z4--z5) ifrotated;
+ penlabels (1,2,3,4,5);
+ numeric x[]; numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/mbcodes.mf b/Master/texmf-dist/fonts/source/public/montex/mbcodes.mf
new file mode 100644
index 00000000000..186e55155b2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mbcodes.mf
@@ -0,0 +1,138 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mbcodes.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: April 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script Encodings (LM[AOX])
+% Common Code Slots
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Specials
+%
+MONG_BNDRY := 255; % For detecting finals
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Digits
+%
+MONG_ZERO := 48; % "0"
+MONG_ONE := 49; % "1"
+MONG_TWO := 50; % "2"
+MONG_THREE := 51; % "3"
+MONG_FOUR := 52; % "4"
+MONG_FIVE := 53; % "5"
+MONG_SIX := 54; % "6"
+MONG_SEVEN := 55; % "7"
+MONG_EIGHT := 56; % "8"
+MONG_NINE := 57; % "9"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Punctuation
+%
+MONG_LT := 60; % "<"
+MONG_GT := 62; % ">"
+MONG_LGU := 171; % "<<"
+MONG_RGU := 187; % ">>"
+MONG_DORWOLJIN := 59; % ";"
+MONG_OPAREN := 40; % "("
+MONG_CPAREN := 41; % ")"
+MONG_MSP := 32; % " "
+MONG_EXCLAMATION := 33; % "!"
+MONG_QUESTION := 63; % "?"
+MONG_QUESTEXCLAM := 35; % "?!"
+MONG_EXCLAMQUEST := 36; % "!?"
+MONG_NIRUGU := 124; % "|"
+MONG_FVS1 := 39; % "'"
+MONG_FVS2 := 34; % '"'
+MONG_MVS := 43; % "+"
+MONG_ENV := 42; % "*"
+% MONG_TASLAL := 44; % "," % Now in mocodes.mf
+% MONG_FULLSTOP := 46; % "." % Now in mocodes.mf
+MONG_COLON := 58; % ":"
+MONG_ELLIPSIS := 47; % "...."
+MONG_OM := 96; % "om ma ni padme hum"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Atoms
+%
+MONG_TITEMSTROKE := 64; % "@"
+MONG_TITEM := 69; % "E"
+MONG_SHUD := 97; % "a"
+MONG_GEDES := 117; % "u"
+MONG_SHILBE := 105; % "i"
+MONG_CEGTEISHUD := 110; % "n"
+MONG_LEWER := 108; % "l"
+MONG_MEWER := 109; % "m"
+MONG_DUNDG := 103; % "g"
+MONG_DUNDX := 120; % "x"
+MONG_NUMTAIGEDES := 98; % "b"
+MONG_BURUUXARSANGEDES := 116; % "t"
+MONG_GEDESTEISHILBE := 100; % "d"
+MONG_ERWEELJINSHILBE := 114; % "r"
+MONG_BOSOOSHILBE := 122; % "z"
+MONG_ETGERSHILBE := 121; % "y"
+MONG_ZAWJ := 115; % "s"
+MONG_SEREEEWER := 99; % "c"
+MONG_MATGARSHILBE := 118; % "v"
+MONG_QAGT := 75; % "K, or kh: Kapital"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Atomic Dots and Tails
+%
+MONG_NCEG := 45; % "-"
+MONG_GCEG := 61; % "="
+MONG_SUUL := 128; % "e, n"
+MONG_ORXIC := 129; % "E"
+MONG_BIODOISUUL := 130; % "Y"
+MONG_BAGODOISUUL := 131; % "G"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Allographs und Composites
+%
+MONG_EXENL := 76; % " l-"
+MONG_EXENM := 77; % " m-"
+MONG_EXENN := 78; % " n-"
+MONG_EXENS := 83; % " s-"
+MONG_XEWTEEQIX := 88; % " x-"
+%
+MONG_BAGANUM := 132; % "k before consonants"
+MONG_DUNDD := 133; % "d[C]"
+MONG_DUNDNG := 134; % "ng"
+%
+MONG_ADAGU := 135; % "final o, u"
+MONG_ADAGI := 136; % "final i, y"
+MONG_ADAGB := 137; % "b"
+MONG_ADAGS := 138; % "s"
+MONG_ADAGD := 139; % "d"
+MONG_ADAGX := 140; % "x"
+MONG_ADAGK := 141; % "k"
+MONG_ADAGNG := 142; % "ng"
+MONG_SUULIINLEWER := 143; % "final l"
+MONG_TERTIARYLEWER := 144; % "l after rounded"
+MONG_HIGHLEWER := 145; % "l after rounded, farther away"
+MONG_SUULIINMEWER := 146; % "final m"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Graphical Ligatures
+%
+MONG_LIGLL := 147; % "ll"
+MONG_LIGML := 148; % "ml"
+%
+MONG_LIGBA := 200; % "ba"
+MONG_LIGBI := 202; % "bi"
+MONG_LIGBU := 204; % "bu"
+MONG_LIGBN := 206; % "bn"
+MONG_LIGBL := 207; % "bl"
+%
+MONG_LIGKA := 224; % "ka"
+MONG_LIGKI := 226; % "ki"
+MONG_LIGKU := 228; % "ku"
+%
+% End of mbcodes.mf
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% vim: ts=32
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/mbglyphs.mf b/Master/texmf-dist/fonts/source/public/montex/mbglyphs.mf
new file mode 100644
index 00000000000..7b9280daf61
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mbglyphs.mf
@@ -0,0 +1,660 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mbglyphs.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.2
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script (LM[AOX])
+% Mongol Bicig Modyn Bar Glyph Definition
+%
+% Common Glyphs for Mongol and Manju
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_TITEMSTROKE,numtaigedeswidth#,height#,depth#);
+ "The titem";
+ titem_stroke(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if style=wood: titemwidth#:=shudwidth#+numtaigedeswidth# fi;
+if style=steel: titemwidth#:=shudwidth# fi;
+
+beginchar(MONG_TITEM,titemwidth#,height#,depth#);
+ "The titem";
+ if style=steel:
+ titem;
+ fi;
+ if style=wood:
+ titem_stroke(shudwidth);
+ shud(0)
+ fi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SHUD,shudwidth#,height#,depth#);
+ "The shud";
+ shud(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SHILBE,shilbewidth#,height#,depth#);
+ "Shilbe";
+ shilbe(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_GEDES,gedeswidth#,height#,depth#);
+ "gedes";
+ gedes(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGU,eswidth#,height#,depth#);
+ "Letter final o, u";
+ adagu;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_CEGTEISHUD,shudwidth#,height#,depth#);
+ "dusaltai shud";
+ shud(0);
+ dusal (1/2shudwidth,yashilbeheight,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if style=wood: exennwidth#:=numtaigedeswidth#+shudwidth# fi;
+if style=steel: exennwidth#:=shudwidth# fi;
+
+beginchar(MONG_EXENN,exennwidth#,height#,depth#);
+ "Initial titemtei, cegtei shud";
+ if style=wood:
+ titem_stroke(shudwidth);
+ cegteishud(0)
+ fi;
+ if style=steel:
+ cegteititem;
+ fi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LEWER,shudwidth#,height#,depth#);
+ "The glyph l in non-final position";
+ shud(0);
+ l_ewer(1/2shudwidth);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if style=wood: exenlwidth#:=numtaigedeswidth#+shudwidth# fi;
+if style=steel: exenlwidth#:=shudwidth# fi;
+
+beginchar(MONG_EXENL,exenlwidth#,height#,depth#);
+ "Initial l";
+ if style=wood:
+ titem_stroke(shudwidth);
+ shud(0);
+ l_ewer(1/2shudwidth);
+ fi;
+ if style=steel:
+ titem;
+ l_ewer(1/2shudwidth);
+ fi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SUULIINLEWER,eswidth#,height#,depth#);
+ "The glyph L in final position";
+ z1=(shudwidth+6.00thin,nuruuleft);
+ z2=(shudwidth-bearing,y1);
+ z3=(1/2shudwidth,gedesouter);
+ z4=(bearing,nuruuleft);
+ %z5=(,underinner);
+ z5=(7/16shudwidth-2.25thin,underinner+thin);
+ z6=(7/16shudwidth+thin,underouter);
+ z7=(shudwidth+1/2gedeswidth,underinner);
+ z8=(7/16shudwidth+thin,underinner);
+ z9=(7/16shudwidth,underinner+thin);
+ x10=(9/16shudwidth);
+ z10-z11=whatever*(z2-z3);
+ z11=(3/4shudwidth,nuruuright);
+ z12=(x1,nuruuright);
+ % pickup pencircle scaled .25 thin;
+ fill (z1--z2--z3--z5{down}..{right}z6---z7&
+ z7---z8{left}..{up}z9---z10--z11--z12--cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_TERTIARYLEWER,numtaigedeswidth#,height#,depth#);
+ "The glyph L in blam-a";
+ nuruu(secAwidth,0);
+ shud_atom(secAwidth,bearing);
+ %penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z5r=(numtaigedeswidth,underouter);
+ z6l=(secAwidth,nuruuright);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+ penstroke (z5e{left}..{up}z6e) ifrotated;
+
+ z7=(1/2[secAwidth,bearing],shudheight);
+ z8=(secAwidth,nuruuleft);
+ z9=(x8,nuruuright);
+ unfill (z7--z8--z9--cycle) ifrotated;
+
+ z11r=(1/3shudwidth,nuruuright);
+ z12r=(1/3shudwidth,-0.8thick+underouter+1.5thin);
+ z13r=(x11+1.5thin,-0.8thick+underouter);
+ z14r=(2/3shudwidth+gedeswidth,-0.8thick+underouter);
+ penpos11(thin,0);
+ penpos12(2.25thin,0);
+ penpos13(underinner-underouter,+90);
+ penpos14(epsilon,+90);
+ penstroke (z11e---z12e{down}..{right}z13e---z14e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_HIGHLEWER,shudwidth#,height#,depth#);
+ "The glyph l in non-final position, raised for 'b's friends";
+ shud(0);
+ z1r=(1/2shudwidth,nuruuright);
+ z2r=(1/2shudwidth,underouter+0.5thin);
+ z3r=(x1+1.5thin,underouter-thin);
+ z4r=(shudwidth+shudwidth,underouter-thin);
+% z4r=(shudwidth+gedeswidth,underouter-thin);
+ penpos1(1.75thin,0);
+ penpos2(2.25thin,0);
+ penpos3(underinner-underouter,+90);
+ penpos4(epsilon,+90);
+ penstroke (z1e---z2e{down}..{right}z3e---z4e) ifrotated;
+ penlabels(1,2,3,4);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_MEWER,shudwidth#,height#,depth#);
+ "The glyph m in non-final position";
+ shud(0);
+ m_ewer(1/2shudwidth);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if style=wood: exenmwidth#:=numtaigedeswidth#+shudwidth# fi;
+if style=steel: exenmwidth#:=shudwidth# fi;
+
+beginchar(MONG_EXENM,exenmwidth#,height#,depth#);
+ "Initial m";
+ if style=wood:
+ titem_stroke(shudwidth);
+ shud(0);
+ m_ewer(2/12shudwidth);
+ fi;
+ if style=steel:
+ titem;
+ m_ewer(2/12shudwidth);
+ fi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SUULIINMEWER,eswidth#,height#,depth#);
+ "The glyph m in final position";
+ nuruu(eswidth,23/24gedeswidth);
+ z1r=(gedeswidth-5thin,gedesouter);
+ z2 =(x1-thin,Centerline);
+ z3 =(0,underouter);
+ penpos1(thick,15);
+ penpos2(2/3thick,0);
+ penpos3(1/2thin,0);
+ penstroke (z1e..z2e..z3e) ifrotated;
+ penlabels(1,2,3);
+
+ z4r=(x1r,gedesouter);
+ z5 =(eswidth-2thin,Centerline);
+ z6r=(14/16shudwidth,underouter);
+ z7 =(7/16shudwidth,underinner+thin);
+ penpos4(1/2thin,30);
+ penpos5(1.25thin,0);
+ penpos6(underouter-underinner, 90);
+ penpos7(epsilon, 135);
+ penstroke (z4e{dir -45}..tension 1.25..z5e
+ ..tension 1.25..z6e..tension 1.25..z7e) ifrotated;
+ penlabels(4,5,6,7);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGLL,2shudwidth#,height#,depth#);
+ "A Ligature: ll";
+ shud(0);
+ shud(shudwidth);
+
+ z1r=(3/2shudwidth,nuruuright);
+ z2r=(3/2shudwidth,underinner+1.5thin);
+ z3r=(x1+1.5thin,underinner);
+ z4r=(2shudwidth+gedeswidth,underinner);
+ penpos1(1.75thin,0);
+ penpos2(2.25thin,0);
+ penpos3(underinner-underouter,+90);
+ penpos4(epsilon,+90);
+ penstroke (z1e---z2e{down}..{right}z3e---z4e) ifrotated;
+ penlabels(1,2,3,4);
+
+ z11r=(1/2shudwidth,nuruuright);
+ z12r=(1/2shudwidth,underouter+0.5thin);
+ z13r=(x11+1.5thin,underouter-thin);
+ z14r=(shudwidth+gedeswidth,underouter-thin);
+ penpos11(1.75thin,0);
+ penpos12(2.25thin,0);
+ penpos13(underinner-underouter,+90);
+ penpos14(epsilon,+90);
+ penstroke (z11e---z12e{down}..{right}z13e---z14e) ifrotated;
+ penlabels(11,12,13,14);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGML,2shudwidth#,height#,depth#);
+ "A Ligature: ml";
+ shud(0);
+ shud(shudwidth);
+
+ z1=(10/16shudwidth+shudwidth,Centerline);
+ z2r=(6/16shudwidth+shudwidth,underinner+1.5thin);
+ z3 =(6/16shudwidth,y2);
+
+ penpos1(0.8thick,+95);
+ penpos2(0.8thick,+95);
+ penpos3(0.8thick,+75);
+
+ penstroke (z1e--z2e--z3e) ifrotated;
+ penlabels(1,2,3);
+
+ z11l=(x3l,y3l);
+ z12r=(x11r,underouter+0.5thin);
+ z13r=(x11+1.5thin,underouter-1.5thin);
+ z14r=(shudwidth+gedeswidth,y13r);
+ penpos11(1.75thin,0);
+ penpos12(2.25thin,0);
+ penpos13(underinner-underouter,+90);
+ penpos14(epsilon,+90);
+ penstroke (z11e---z12e{down}..{right}z13e---z14e) ifrotated;
+ penlabels(11,12,13,14);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_XEWTEEQIX,tewidth#,height#,depth#);
+ "The letter initial x";
+ xewteeqix;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_DUNDG,2shudwidth#,height#,depth#);
+ "Medial g";
+ cegteishud(0);
+ cegteishud(shudwidth);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_DUNDX,2shudwidth#,height#,depth#);
+ "Medial x";
+ shud(0);
+ shud(shudwidth);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGX,2shudwidth#,height#,depth#);
+ "Final x";
+ shud(shudwidth);
+ bagaodoisuul;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_DUNDNG,shudwidth#+numtaigedeswidth#,height#,depth#);
+ "Medial ng";
+ shud(numtaigedeswidth);
+ baganum;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGNG,shudwidth#+shilbewidth#+orxicwidth#,height#,depth#);
+ "Final ng";
+ shud(orxicwidth+shilbewidth);
+ shilbe(orxicwidth);
+ orxic(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKA,tewidth#,height#,depth#);
+ "A Ligature: KA";
+ ligka;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKI,eswidth#+secAwidth#,height#,depth#);
+ "A Ligature: KI";
+ ligki;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKU,bawidth#,height#,depth#);
+ "A Ligature: KU";
+ ligku;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGI,gedeswidth#,height#,depth#);
+ "Vowel I in final position";
+ nuruu(gedeswidth,gedeswidth-bearing);
+ z1l=(1/3gedeswidth,shudheight);
+ z2r=(gedeswidth-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(0,nuruuright); % nuruuright was Centerline
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(epsilon,-180);
+
+ penstroke (z1e..tension 1.2..z2e...z4e{down}..z5e..{up}z6e) ifrotated;
+ penlabels(1,2,3,4,5,6);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_NUMTDELBENQIX,eswidth#,height#,depth#);
+ "Letter p";
+ nuruu(eswidth,eswidth-numtaigedeswidth);
+
+ z1r=(eswidth-1/2bearing,gedesouter+thin);
+ z2r=(1/3[x1,x4],gedesouter);
+ z3r=(7/12[x1,x4],gedesouter);
+ z4r=(eswidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,180);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(gedesouter-gedesinner,90);
+ penpos4(thin,180);
+ penstroke (z1e..z2e..z3e..{down}z4e) ifrotated;
+
+ z5r=(x1,nuruuright);
+ z6r=(1/2[x5,x7],underouter);
+ z7r=(0,Centerline);
+ penpos5(thin,0);
+ penpos6(underinner-underouter,-90);
+ penpos7(1/4thin,-180);
+ penstroke (z5e{down}..z6e..{up}z7e) ifrotated;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_BAGANUM,numtaigedeswidth#,height#,depth#);
+ "Smaller version of female g";
+ baganum;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGK,shilbewidth#+orxicwidth#,height#,depth#);
+ "Final k";
+ shilbe(orxicwidth);
+ orxic(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_NUMTAIGEDES,eswidth#,height#,depth#);
+ "Letter b, or final u";
+ nuruu(eswidth,eswidth-numtaigedeswidth);
+
+ z1r=(eswidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(eswidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(0,Centerline);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/4thin,-180);
+ penstroke (z4e{down}..z5e..{up}z6e) ifrotated;
+ penlabels(1,2,3,4,5,6);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGB,gedeswidth#+orxicwidth#,height#,depth#);
+ "Final b";
+ if style=wood:
+ gedes(orxicwidth);
+ orxic(0);
+ fi;
+ if style=steel:
+ nuruu(numtaigedeswidth+numtaigedeswidth,numtaigedeswidth);
+ z1r=(2numtaigedeswidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(x3r+thin,underouter);
+ z6r=(0,nuruuright);
+ z7r=(5/24gedeswidth,orxicouter);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(epsilon,-180);
+ penpos7(3/3thick,105);
+ penstroke
+ (z4e{down}..{left}z5e{left}..tension 2.5..{right}z7e)
+ ifrotated;
+ penlabels(1,2,3,4,5);
+ fi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if style=steel: buruuxarsangedeswidth#:=cewidth# fi;
+if style=wood: buruuxarsangedeswidth#:=tewidth# fi;
+
+beginchar(MONG_BURUUXARSANGEDES,buruuxarsangedeswidth#,height#,depth#);
+ "Letter t";
+ if style=steel:
+ deribun_ta;
+ fi;
+ if style=wood:
+ nuruu(tewidth,0);
+ shud_atom(1/2gedeswidth,bearing);
+ z1r=(tewidth,nuruuright);
+ z2r=(1/3tewidth,underouter);
+ z3r=(bearing,nuruuright);
+ penpos1(thin,0);
+ penpos2(underinner-underouter,-90);
+ penpos3(2thin,-180);
+ penstroke (z1e..tension 2..z2e..{up}z3e) ifrotated;
+ penlabels(1,2,3);
+ fi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_GEDESTEISHILBE,eswidth#,height#,depth#);
+ "Letter d";
+ if style=steel:
+ roundgedestshilbe;
+ fi;
+ if style=wood:
+ modgedestshilbe;
+ fi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_DUNDD,gedeswidth#+shudwidth#,height#,depth#);
+ "Medial d before consonants";
+ shud(0);
+ gedes(shudwidth);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGD,gedeswidth#+shudwidth#,height#,depth#);
+ "Final d";
+ suul;
+ gedes(shudwidth);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ERWEELJINSHILBE,gedeswidth#,height#,depth#);
+ "Letter 'r' in first and medial position";
+ nuruu(gedeswidth,0);
+ z1=(gedeswidth-1/2bearing,nuruuleft);
+ z2=(gedeswidth-5thin,shilbeheight);
+ z3=(0,shilbeheight-thin);
+ z4=(x2-0.5thin,shilbeheight-5thin);
+ z5=(gedeswidth-3thin,nuruuleft);
+ fill (z1{dir 100}..z2 & z2{dir 225}..{dir 105}z3 &
+ z3{down}..{dir 45}z4 & z4..{dir -80}z5&z5--cycle) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_BOSOOSHILBE,eswidth#,height#,depth#);
+ "Letter z";
+ bosoo_shilbe;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_EXENS,tewidth#,height#,depth#);
+ "Letter `s' in initial position";
+ exenzawj;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ZAWJ,tewidth#,height#,depth#);
+ "Letter `s' in medial position";
+ zawj;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGS,tewidth#,height#,depth#);
+ "Letter `s' in final position ";
+ suulzawj;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SEREEEWER,eswidth#,height#,depth#);
+ "Letter c";
+ seree_ewer;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ETGERSHILBE,shudwidth#+thin#,height#,depth#);
+ "Letter ya";
+ nuruu(shudwidth+thin,0);
+ z1r=(shudwidth+thin-1/4bearing,nuruuleft);
+ z2 =(1/8shudwidth+thin,gedesouter);
+ z3 =(5/8shudwidth+thin,yashilbeheight);
+ penpos1(thin,0);
+ penpos2(3.5thin,+15);
+ penpos3(epsilon,15);
+ penstroke (z1e..tension 2.5..z2e..tension 1.25..z3e) ifrotated;
+ penlabels(1,2,3);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_MATGARSHILBE,gedeswidth#,height#,depth#);
+ "Letter va";
+ nuruu(gedeswidth,0);
+ z1r=(gedeswidth-1/4bearing,nuruuleft);
+ z2r=(3/8gedeswidth,yashilbeheight);
+ z3 =(1/8gedeswidth,gedesinner);
+ penpos1(thin,0);
+ penpos2(3.75thin,+90);
+ penpos3(epsilon,+135);
+ penstroke (z1e{dir 105}..tension 3.5..z2e..tension 2.50..z3e) ifrotated;
+ penlabels(1,2,3);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SUUL,shudwidth#,height#,depth#);
+ "The suul";
+ suul;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ORXIC,orxicwidth#,height#,depth#);
+ "The orxic";
+ orxic(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_BAGODOISUUL,shudwidth#,height#,depth#);
+ "The gamma suul";
+ bagaodoisuul;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_BIODOISUUL,shudwidth#,height#,depth#);
+ "Little tail following certain letters";
+ z1=(shudwidth,Centerline);
+ z2=(1/2shudwidth,Centerline);
+ z3=(0,nuruuleft+thin);
+ penpos1(nuruuwidth,90);
+ penpos2(14/16nuruuwidth,80);
+ penpos3(epsilon,45);
+ penstroke (z1e---z2e..z3e) ifrotated;
+ penlabels(1,2,3);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_NCEG,secAwidth#,height#,depth#);
+ "The n= dot";
+ dusal(1/2secAwidth,gedesouter,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_GCEG,shudwidth#,height#,depth#);
+ "The g= dots";
+ dusal(9/12shudwidth,gedesouter,3thin,2thick);
+ dusal(3/12shudwidth,gedesouter,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Some commonly used graphical ligatures without added semantic value
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGBA,bawidth#,height#,depth#);
+ "A Ligature: BA";
+ ligba;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGBI,biwidth#,height#,depth#);
+ "A Ligature: BI";
+ nuruu(shilbewidth-thin,0);
+ nuruu(biwidth,biwidth-numtaigedeswidth);
+
+ z1r=(biwidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(biwidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6l=(shilbewidth,nuruuright);
+ z7l=(3thin,shilbeheight);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+ penpos7(4thin,-120);
+ penstroke (z4e{down}..z5e..{up}z6e..tension infinity..z7e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGBU,2numtaigedeswidth#,height#,depth#);
+ "A Ligature: BU";
+ ligbu(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGBN,bawidth#,height#,depth#);
+ "A Ligature: BN";
+ ligba;
+ dusal (x7,yashilbeheight,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGBL,bawidth#,height#,depth#);
+ "A Ligature: BL";
+ ligba;
+ high_l_ewer(2.5thin);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGPA,bawidth#,height#,depth#);
+ "A Ligature, PA";
+ ligmongpa;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGPI,biwidth#,height#,depth#);
+ "A Ligature: PI";
+ nuruu(shilbewidth-thin,0);
+ nuruu(biwidth,biwidth-numtaigedeswidth);
+
+% z1r=(biwidth-1/2bearing,nuruuleft);
+ z1r=(biwidth-1/2bearing,gedesouter+thin);
+ z2r=(1/3[x1,x4],gedesouter);
+ z3r=(7/12[x1,x4],gedesouter);
+ z4r=(biwidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,180);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(gedesouter-gedesinner,90);
+ penpos4(thin,180);
+ penstroke (z1e..z2e..z3e..{down}z4e) ifrotated;
+
+ z5r=(x1,nuruuright);
+ z6r=(1/2[x5,x7],underouter);
+ z7l=(shilbewidth,nuruuright);
+ z8l=(3thin,shilbeheight);
+ penpos5(thin,0);
+ penpos6(underinner-underouter,-90);
+ penpos7(2thin,-180);
+ penpos8(4thin,-120);
+ penstroke (z5e{down}..z6e..{up}z7e..tension infinity..z8e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGPU,2numtaigedeswidth#,height#,depth#);
+ "A Ligature: PU";
+ ligmongpu;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/mbligtbl.mf b/Master/texmf-dist/fonts/source/public/montex/mbligtbl.mf
new file mode 100644
index 00000000000..d7436e18a57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mbligtbl.mf
@@ -0,0 +1,45 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mbligtbl.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script (LMS)
+% Mongol Bicig Ligature Definitions
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_EXCLAMATION :MONG_QUESTION=: MONG_EXCLAMQUEST;
+ligtable MONG_QUESTION :MONG_EXCLAMATION=: MONG_QUESTEXCLAM;
+ligtable MONG_TASLAL :MONG_TASLAL=: MONG_FULLSTOP;
+ligtable MONG_LT :MONG_LT =: MONG_LGU;
+ligtable MONG_GT :MONG_GT =: MONG_RGU;
+%
+ligtable MONG_LEWER :MONG_LEWER=: MONG_LIGLL;
+ligtable MONG_MEWER :MONG_LEWER=: MONG_LIGML;
+ligtable MONG_SECNUMTGEDES :MONG_SECONDARYSHUD =: MONG_LIGBA;
+ligtable MONG_NUMTAIGEDES :MONG_SHUD =: MONG_LIGBA;
+ligtable MONG_SECNUMTDELBENQ :MONG_SECONDARYSHUD =: MONG_LIGPA;
+ligtable MONG_NUMTDELBENQIX :MONG_SHUD =: MONG_LIGPA;
+ligtable MONG_SECONDARYNUM :MONG_SECONDARYSHUD =: MONG_LIGKA,
+ MONG_SHUD =: MONG_LIGKA,
+ MONG_SECONDARYGEDES =: MONG_LIGKU,
+ MONG_GEDES =: MONG_LIGKU;
+ligtable MONG_SECSERTENQIXT :MONG_SECONDARYSHUD =: MONG_LIGFA;
+ligtable MONG_SERTENQIXTNUM :MONG_SHUD =: MONG_LIGFA;
+ligtable MONG_SECONDARYEWERTQAGT :MONG_SECONDARYSHUD =: MONG_LIGGHA;
+ligtable MONG_EWERTQAGT :MONG_SHUD =: MONG_LIGGHA;
+ligtable "K" :MONG_SECONDARYSHUD =: MONG_LIGKHA;
+ligtable "k" :MONG_SHUD =: MONG_LIGKHA;
+
+ligtable MONG_TITEMSTROKE :MONG_SHUD =: MONG_TITEM,
+ MONG_ZAWJ =: MONG_EXENS,
+ MONG_DAWXARCEGTZAWJ =: MONG_EXENSH,
+ MONG_LEWER =: MONG_EXENL,
+ MONG_MEWER =: MONG_EXENM;
+
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+endinput;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% vim: ts=33
diff --git a/Master/texmf-dist/fonts/source/public/montex/mbnums.mf b/Master/texmf-dist/fonts/source/public/montex/mbnums.mf
new file mode 100644
index 00000000000..da8b4c2b983
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mbnums.mf
@@ -0,0 +1,373 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mbglyphs.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: June 1st, 1999
+% Version: 0.2
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script (LMS)
+% Mongol Bicig Modyn Bar Glyph Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+show param_base;
+beginchar(MONG_ZERO,numberwidth#+bearing#,height#,depth#);
+ "The Number 0";
+ pair dz[];
+ numberpath;
+ z11r= point 0.20 of trial;
+ dz11= direction 0.20 of trial;
+ penpos11(2thin,angle dz11+90);
+
+ z12r= point 0.75 of trial;
+ dz12= direction 0.75 of trial;
+ penpos12(thin,angle dz12+90);
+
+ z13r= point 2.20 of trial;
+ dz13= direction 2.20 of trial;
+ penpos13(2thin,angle dz13+90);
+
+ z14r= point 2.8 of trial;
+ dz14= direction 2.8 of trial;
+ penpos14(1thin, angle dz14+90);
+
+ penstroke (z11e{dz11}..{dz12}z12e..
+ z13e{dz13}..z14e{dz14}..cycle) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ONE,numberwidth#+bearing#,height#,depth#);
+ "The Number 1";
+ pair dz[];
+ numberpath;
+
+ z11r= point 0.20 of trial;
+ dz11= direction 0.20 of trial;
+ penpos11(4thin,angle dz11+90);
+
+ z12r= point 0.75 of trial;
+ penpos12(thin,0);
+
+ z13r= point 2.00 of trial;
+ dz13= direction 2.00 of trial;
+ penpos13(2thin,angle dz13+90);
+
+ z14r= point 2.8 of trial;
+ dz14= direction 2.8 of trial;
+ penpos14(2thin, angle dz14+90);
+
+ z15r= point 4.00 of trial;
+ dz15= direction 4.00 of trial;
+ penpos15(1/2thin, angle dz15+90);
+
+ pickup pencircle scaled 4 thin;
+ drawdot (z11) ifrotated;
+
+ penstroke (z11e{dz11}..z12e{down}..{dz13}z13e
+ ..{dz14}z14e..{dz15}z15e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_TWO,numberwidth#+bearing#,height#,depth#);
+ "The Number 2";
+ pair dz[];
+ numberpath;
+ z11=(2bearing,gedesinner);
+ penpos11(3thin,+90);
+
+ z12l= point 0.75 of trial;
+ dz12= direction 0.75 of trial;
+ penpos12(1thin,angle dz12+90);
+
+ z13r= point 1.80 of trial;
+ dz13= direction 1.80 of trial;
+ penpos13(2thin,angle dz13+90);
+
+ z14l= z16l;
+ % z14l= (bearing,Centerline);
+ dz14= direction 0.75 of trial;
+ penpos14(2thin, -90);
+
+ z15r= (bearing,Centerline+4thin);
+ dz15= direction 0.75 of trial;
+ penpos15(1/2thin, -180);
+
+ z16r= (bearing,Centerline+2thin);
+ dz16= direction 0.75 of trial;
+ penpos16(2thin, -180);
+
+ z17r= (bearing,underinner+thin);
+ penpos17(2thin, 180);
+
+ z18l= (bearing+1/12bawidth,underinner);
+ penpos18(1/2thin,180);
+
+ pickup pencircle scaled 3thin;
+ drawdot (z11) ifrotated;
+ penstroke (z11e{right}..z12e{dz12}..z13e{dz13}..
+ tension 1.2..z14e) ifrotated;
+ penstroke (z15e--z16e--z17e--z18e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_THREE,numberwidth#+bearing#,height#,depth#);
+ "The Number 3";
+ pair dz[];
+ numberpath;
+
+ z9 =(thin+bearing,gedesinner);
+ dz9= direction -0.10 of trial;
+ penpos9(0.75thin,angle dz9+90);
+
+ z10r=(numberwidth-bearing,Centerline-thin);
+ dz10= direction 0.90 of trial;
+ penpos10(3thin,angle dz10+90);
+
+ z11=(1/3numberwidth,nuruuleft+thin);
+ dz11= direction 2.40 of trial;
+ penpos11(1/2thin, angle dz11+90);
+
+ z12r= (5/6numberwidth,nuruuright+thin);
+ %dz12= direction 0.75 of trial;
+ penpos12(2thin,30);
+
+ z13r= point 1.60 of trial;
+ dz13= direction 1.60 of trial;
+ penpos13(3thin,angle dz13+90);
+
+ z14r= (2thin+bearing,Centerline);
+ dz14= direction 0.75 of trial;
+ penpos14(2thin, -90);
+
+ z15l= (bearing,Centerline+4thin);
+ dz15= direction 0.75 of trial;
+ penpos15(1/2thin, 0);
+
+ z16l= (bearing,Centerline+2thin);
+ dz16= direction 0.75 of trial;
+ penpos16(2thin, 0);
+
+ z17l= (bearing,underinner+thin);
+ penpos17(2thin, 0);
+
+ z18l= (bearing+1/12numberwidth,underinner);
+ penpos18(1/2thin,0);
+
+ penstroke (z9e{dz9}..tension 1.4..z10e..tension 1.2..{dz11}z11e)
+ ifrotated;
+ penstroke (z12e..z13e{dz13}..tension 1.2..z14e) ifrotated;
+ penstroke (z15e--z16e--z17e--z18e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_FOUR,numberwidth#+bearing#,height#,depth#);
+ "The Number 4";
+ pair dz[];
+ numberpath;
+ z11=(bawidth,underinner);
+ penpos11(3thin,-90);
+
+ z12r= point 2.80 of trial;
+ dz12= direction 2.80 of trial;
+ penpos12(2thin,angle dz12+90);
+
+ z13r= point 0.10 of trial;
+ dz13= direction 0.10 of trial;
+ penpos13(1thin,angle dz13+90);
+
+ z14r= point 0.75 of trial;
+ dz14= direction 0.75 of trial;
+ penpos14(1thin, angle dz14+90);
+
+ pickup pencircle scaled 3thin;
+ drawdot (z11) ifrotated;
+ penstroke (z11e{left}..z12e{dz12}..z13e{dz13}..z14e{dz14}) ifrotated;
+ pickup pencircle scaled thin;
+ drawdot (z14) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_FIVE,numberwidth#+bearing#,height#,depth#);
+ "The Number 5";
+ pair dz[];
+ numberpath;
+
+ z11= point -0.10 of trial;
+ dz11=direction -0.10 of trial;
+ penpos11(3thin,angle dz11+90);
+ pickup pencircle scaled 2.5thin;
+ drawdot (z11) ifrotated;
+
+ z12r= point 2.9 of trial;
+ dz12=direction 2.8 of trial;
+ penpos12(2thin,angle dz12+90);
+
+ z13= point 0.8 of trial;
+ penpos13(thin,-90);
+
+ z14r= z13;
+ penpos14(3thin,90);
+ z15r= (thick,Centerline);
+ penpos15(3thin,90);
+
+ z16r= (bearing,nuruuright);
+ penpos16(thin,90);
+
+ penstroke (z11e..tension 1.5..z12e{down}..
+ tension 3..z13e{dir -30}) ifrotated;
+ penstroke (z14e---z15e..z16e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SIX,numberwidth#+bearing#,height#,depth#);
+ "The Number 6";
+ numberpath;
+ pair dz[];
+ % pickup pencircle scaled .25thin;
+ % draw trial;
+
+ z11r=point 2.40 of trial;
+ dz11=direction 2.40 of trial;
+ penpos11(2thin,angle dz11+90);
+
+ z12r=point 2.90 of trial;
+ dz12=direction 2.90 of trial;
+ penpos12(2thin,angle dz12+90);
+
+ z13 =point 0.23 of trial;
+ dz13=direction 0.23 of trial;
+ penpos13(2thin,angle dz13+90);
+ % pickup pencircle scaled 5thin; drawdot z13;
+
+ z14r=point 0.85 of trial;
+ dz14=direction 0.85 of trial;
+ penpos14(3thin,angle dz14+90);
+ pickup pencircle scaled 3thin; drawdot (z14) ifrotated;
+
+ z15=(z11..z13) intersectionpoint (z12..z14);
+ penpos15(thin,angle dz11-90);
+
+ z16=(3/4[x12,x14],nuruuright);
+ penpos16(3thin,90);
+ z17= z15;
+ penpos17(thin,60);
+
+ penstroke (z15e{dz13}..z11e{dz11}..z12e{dz12}
+ ..z13e{dz13}..z14e{dz14}) ifrotated;
+ penstroke (z16e{left}..z17e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SEVEN,numberwidth#+bearing#,height#,depth#);
+ "The Number 7";
+ pair dz[];
+ path findcenter;
+ numberpath;
+ % pickup pencircle scaled 0.25thin;
+ % draw trial;
+
+ z11l=point -0.6 of trial;
+ dz11= direction -0.6 of trial;
+ penpos11(3thin,angle dz11-90);
+
+ z12l= point 0.45 of trial;
+ dz12= direction 0.45 of trial;
+ penpos12(1.5thin,angle dz12-90);
+
+ z13 = (w/2,.5[h,-d]); % "Centerpoint"
+
+ z14r= point 2.5 of trial;
+ dz14=-direction 2.5 of trial;
+ penpos14(2thin,angle dz14-90);
+
+ z15r= point 2.1 of trial;
+ dz15=-direction 2.1 of trial;
+ penpos15(2.25thin,angle dz15-90);
+
+ z16r= point 0.8 of trial;
+ dz16=-direction 0.8 of trial;
+ penpos16(1.5thin,angle dz16-90);
+
+ findcenter = z11{dz11}..z12{dz12}..tension 1.1..z13..
+ {dz14}z14..{dz15}z15..{dz16}z16;
+ dz13=-direction 3 of findcenter;
+ penpos13(2thin,angle dz13-90);
+
+ pickup pencircle scaled 3thin; drawdot (z11) ifrotated;
+ pickup pencircle scaled 1.5thin; drawdot (z16) ifrotated;
+
+ penstroke (z11e{dz11}..z12e{dz12}..tension 1.1..z13e{dz13}..
+ {dz14}z14e..{dz15}z15e..{dz16}z16e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_EIGHT,numberwidth#+bearing#,height#,depth#);
+ "The Number 8";
+ pair dz[];
+ numberpath;
+ pickup pencircle scaled 1/2thin;
+
+ z13 = point 0.8 of trial;
+ penpos13(3thin,90);
+
+ z14 = (bearing,gedesinner-thin);
+ penpos14(thin,75);
+
+ z15 = (bearing,gedesinner);
+ dz15= direction 0.75 of trial;
+ penpos15(1/2thin, -180);
+
+ z16 = (bearing,gedesinner-2thin);
+ dz16= direction 0.75 of trial;
+ penpos16(2thin, -180);
+
+ z17 = (bearing,underinner+thin);
+ penpos17(2thin, 180);
+
+ z18 = (bearing+1/12bawidth,underinner);
+ penpos18(1/2thin,180);
+
+ pickup pencircle scaled 3thin;
+ drawdot (z13) ifrotated;
+ penstroke (z13e{dir 165}..z14e) ifrotated;
+ penstroke (z15e--z16e--z17e--z18e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_NINE,numberwidth#+bearing#,height#,depth#);
+ "The Number 9";
+ numberpath;
+ pair dz[];
+
+ z11r=point 2.40 of trial;
+ dz11=direction 2.40 of trial;
+ penpos11(1/2thin,angle dz11+90);
+
+ z12r=point 2.85 of trial;
+ dz12=direction 2.85 of trial;
+ penpos12(2thin,angle dz12+90);
+
+ z13 =point 0.23 of trial;
+ dz13=direction 0.23 of trial;
+ penpos13(2thin,angle dz13+90);
+
+ z14r=point 0.9 of trial;
+ dz14=direction 0.9 of trial;
+ penpos14(3thin,angle dz14+90);
+
+ z15=(z11..z13) intersectionpoint (z12..z14);
+ penpos15(1/2thin,angle dz12+90);
+
+ z16=point 2.2 of trial;
+ dz16=direction 2.2 of trial;
+ penpos16(2thin,angle dz16);
+ z17= z15;
+ penpos17(epsilon,30);
+
+ penstroke (z11e{dz11}..z12e{dz12}
+ ..z13e{dz13}..z14e{dz14}..tension 1.5..z15e) ifrotated;
+ penstroke (z16e{up}..z17e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/mbparmb.mf b/Master/texmf-dist/fonts/source/public/montex/mbparmb.mf
new file mode 100644
index 00000000000..7785322f444
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mbparmb.mf
@@ -0,0 +1,108 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mbparmb.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: April 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script (LMS)
+% Mongol Bicig Modyn Bar Bold Font Parameter Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+ mg:=1;
+ width#:=mg*8pt#;
+ height#:=mg*13.2pt#;
+ depth#:=mg*9.6pt#;
+
+ % Some 'standard' character sizes ...
+ % From small to big ...
+ secAwidth#:=3/8width#;
+ shudwidth#:=4/8width#;
+ shilbewidth#:=4.5/8width#;
+ numtaigedeswidth#:=5/8width#;
+ gedeswidth#:=6/8width#; orxicwidth#:=6/8width#;
+ eswidth#:=7/8width#;
+ tewidth#:=8/8width#;
+ cewidth#:=9/8width#;
+ bawidth#:=numtaigedeswidth#+shudwidth#+1/16width#;
+ biwidth#:=eswidth#+shilbewidth#;
+ numberwidth#:=12/8width#;
+
+ % character features; ... see description in the Black Book
+ Centerline#:=1/2(height#-depth#);
+ u#:=1pt#;
+ ispace#:=5pt#;
+ bearing#:=mg*0.75pt#;
+ thin#:=mg*0.50pt#;
+ medium#:=mg*1pt#;
+ thick#:=mg*2pt#;
+ nuruuwidth#:=mg*2.0pt#;
+ nuruuleft#:=Centerline#+1/2nuruuwidth#;
+ nuruuright#:=Centerline#-1/2nuruuwidth#;
+if style=steel:
+ orxicouter#:=nuruuleft#+mg*10.00pt#;
+else:
+ orxicouter#:=nuruuleft#+mg*8.00pt#;
+fi;
+ yashilbeheight#:=nuruuleft#+mg*7.00pt#;
+ shilbeheight#:=nuruuleft#+mg*6pt#;
+ gedesouter#:=nuruuleft#+mg*5.00pt#;
+ shudheight#:=nuruuleft#+mg*4.00pt#;
+ gedesinner#:=nuruuleft#+mg*3.00pt#;
+ underinner#:=nuruuright#-mg*3.00pt#;
+ sdepth#:=nuruuright#-mg*4.00pt#;
+ underouter#:=nuruuright#-mg*5.00pt#;
+if style=steel:
+ suulouter#:=nuruuright#-mg*10.00pt#;
+else:
+ suulouter#:=nuruuright#-mg*8.00pt#;
+fi;
+ latintopline#:=2gedeswidth#-4thin#;
+ latinbottomline#:=4thin#;
+
+ define_pixels(u,bearing,
+ width,height,depth,
+ thin, medium, thick,
+ shudheight,
+ yashilbeheight,
+ shilbeheight,
+ sdepth,
+ secAwidth,
+ shudwidth,
+ numtaigedeswidth,
+ gedeswidth,
+ shilbewidth,
+ orxicwidth,
+ eswidth,
+ tewidth,
+ cewidth,
+ bawidth,
+ biwidth,
+ numberwidth,
+ nuruuwidth,
+ nuruuleft,
+ nuruuright,
+ Centerline,
+ gedesinner,gedesouter,
+ underinner,underouter,
+ orxicouter,suulouter,
+ latintopline,latinbottomline);
+
+ define_blacker_pixels(thin,medium,thick);
+
+
+ font_size 12pt#;
+
+ font_normal_space gedeswidth#;
+ font_x_height gedesouter#;
+ font_quad gedeswidth#;
+ font_extra_space gedeswidth#;
+ font_normal_stretch 1.5gedeswidth#;
+ font_normal_shrink 1thin#;
+
+ boundarychar := 255;
+
+ screen_rows := 500;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File mbparmb.mf ends here.
diff --git a/Master/texmf-dist/fonts/source/public/montex/mbparmm.mf b/Master/texmf-dist/fonts/source/public/montex/mbparmm.mf
new file mode 100644
index 00000000000..83f9917d5d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mbparmm.mf
@@ -0,0 +1,108 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mbparmm.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: April 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script (LMS)
+% Mongol Bicig Modyn Bar Medium Font Parameter Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+ mg:=1;
+ width#:=mg*8pt#;
+ height#:=mg*13.2pt#;
+ depth#:=mg*9.6pt#;
+
+ % Some 'standard' character sizes ...
+ % From small to big ...
+ secAwidth#:=3/8width#;
+ shudwidth#:=4/8width#;
+ shilbewidth#:=4.5/8width#;
+ numtaigedeswidth#:=5/8width#;
+ gedeswidth#:=6/8width#; orxicwidth#:=4/8width#;
+ eswidth#:=7/8width#;
+ tewidth#:=8/8width#;
+ cewidth#:=9/8width#;
+ bawidth#:=numtaigedeswidth#+shudwidth#+1/16width#;
+ biwidth#:=eswidth#+shilbewidth#;
+ numberwidth#:=12/8width#;
+
+ % character features; ... see description in the Black Book
+ Centerline#:=1/2(height#-depth#);
+ u#:=1pt#;
+ ispace#:=mg*5pt#;
+ bearing#:=mg*0.75pt#;
+ thin#:=mg*0.50pt#;
+ medium#:=mg*1pt#;
+ thick#:=mg*2pt#;
+ nuruuwidth#:=mg*1.500pt#;
+ nuruuleft#:=Centerline#+1/2nuruuwidth#;
+ nuruuright#:=Centerline#-1/2nuruuwidth#;
+if style=steel:
+ orxicouter#:=nuruuleft#+mg*10.00pt#;
+else:
+ orxicouter#:=nuruuleft#+mg*8.00pt#;
+fi;
+ yashilbeheight#:=nuruuleft#+mg*7.00pt#;
+ shilbeheight#:=nuruuleft#+mg*6pt#;
+ gedesouter#:=nuruuleft#+mg*5.00pt#;
+ shudheight#:=nuruuleft#+mg*4.00pt#;
+ gedesinner#:=nuruuleft#+mg*3.00pt#;
+ underinner#:=nuruuright#-mg*3.00pt#;
+ sdepth#:=nuruuright#-mg*4.00pt#;
+ underouter#:=nuruuright#-mg*5.00pt#;
+if style=steel:
+ suulouter#:=nuruuright#-mg*10.00pt#;
+else:
+ suulouter#:=nuruuright#-mg*8.00pt#;
+fi;
+ latintopline#:=2gedeswidth#-4thin#;
+ latinbottomline#:=4thin#;
+
+ define_pixels(u,bearing,
+ width,height,depth,
+ thin, medium, thick,
+ shudheight,
+ yashilbeheight,
+ shilbeheight,
+ sdepth,
+ secAwidth,
+ shudwidth,
+ numtaigedeswidth,
+ gedeswidth,
+ shilbewidth,
+ orxicwidth,
+ eswidth,
+ tewidth,
+ cewidth,
+ bawidth,
+ biwidth,
+ numberwidth,
+ nuruuwidth,
+ nuruuleft,
+ nuruuright,
+ Centerline,
+ gedesinner,gedesouter,
+ underinner,underouter,
+ orxicouter,suulouter,
+ exennwidth,
+ latintopline,latinbottomline);
+
+ define_blacker_pixels(thin,medium,thick);
+
+ font_size 12pt#;
+
+ font_normal_space gedeswidth#;
+ font_x_height gedesouter#;
+ font_quad gedeswidth#;
+ font_extra_space gedeswidth#;
+ font_normal_stretch 1.5gedeswidth#;
+ font_normal_shrink 1thin#;
+
+ boundarychar := 255;
+
+ screen_rows := 500;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File mbparmm.mf ends here.
diff --git a/Master/texmf-dist/fonts/source/public/montex/mbparms.mf b/Master/texmf-dist/fonts/source/public/montex/mbparms.mf
new file mode 100644
index 00000000000..b338394df60
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mbparms.mf
@@ -0,0 +1,100 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mbparms.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: April 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script (LMS)
+% Mongol Bicig Modyn Bar Medium Font Parameter Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+ mg:=1;
+ width#:=mg*8pt#;
+ height#:=mg*12pt#;
+ depth#:=mg*8.4pt#;
+
+ % Some 'standard' character sizes ...
+ % From small to big ...
+ secAwidth#:=3/8width#;
+ shudwidth#:=4/8width#;
+ shilbewidth#:=4.5/8width#;
+ numtaigedeswidth#:=5/8width#;
+ gedeswidth#:=6/8width#; orxicwidth#:=4/8width#;
+ eswidth#:=7/8width#;
+ tewidth#:=8/8width#;
+ cewidth#:=9/8width#;
+ bawidth#:=numtaigedeswidth#+shudwidth#+1/16width#;
+ biwidth#:=eswidth#+shilbewidth#;
+ numberwidth#:=12/8width#;
+
+ % character features; ... see description in the Black Book
+ Centerline#:=1/2(height#-depth#);
+ u#:=1pt#;
+ ispace#:=mg*5pt#;
+ bearing#:=mg*0.75pt#;
+ thin#:=mg*0.50pt#;
+ medium#:=mg*1pt#;
+ thick#:=mg*2pt#;
+ nuruuwidth#:=mg*1.500pt#;
+ nuruuleft#:=Centerline#+1/2nuruuwidth#;
+ nuruuright#:=Centerline#-1/2nuruuwidth#;
+ orxicouter#:=nuruuleft#+mg*8.00pt#;
+ yashilbeheight#:=nuruuleft#+mg*7.00pt#;
+ shilbeheight#:=nuruuleft#+mg*6pt#;
+ gedesouter#:=nuruuleft#+mg*5.00pt#;
+ shudheight#:=nuruuleft#+mg*4.00pt#;
+ gedesinner#:=nuruuleft#+mg*3.00pt#;
+ underinner#:=nuruuright#-mg*3.00pt#;
+ sdepth#:=nuruuright#-mg*4.00pt#;
+ underouter#:=nuruuright#-mg*5.00pt#;
+ suulouter#:=nuruuright#-mg*8.00pt#;
+ latintopline#:=2gedeswidth#-4thin#;
+ latinbottomline#:=4thin#;
+
+ define_pixels(u,bearing,
+ width,height,depth,
+ thin, medium, thick,
+ shudheight,
+ yashilbeheight,
+ shilbeheight,
+ sdepth,
+ secAwidth,
+ shudwidth,
+ numtaigedeswidth,
+ gedeswidth,
+ shilbewidth,
+ orxicwidth,
+ eswidth,
+ tewidth,
+ cewidth,
+ bawidth,
+ biwidth,
+ numberwidth,
+ nuruuwidth,
+ nuruuleft,
+ nuruuright,
+ Centerline,
+ gedesinner,gedesouter,
+ underinner,underouter,
+ orxicouter,suulouter,
+ exennwidth,
+ latintopline,latinbottomline);
+
+ define_blacker_pixels(thin,medium,thick);
+
+ font_size 12pt#;
+
+ font_normal_space gedeswidth#;
+ font_x_height gedesouter#;
+ font_quad gedeswidth#;
+ font_extra_space gedeswidth#;
+ font_normal_stretch 1.5gedeswidth#;
+ font_normal_shrink 1thin#;
+
+ boundarychar := 255;
+
+ screen_rows := 500;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File mbparmm.mf ends here.
diff --git a/Master/texmf-dist/fonts/source/public/montex/mbpunc.mf b/Master/texmf-dist/fonts/source/public/montex/mbpunc.mf
new file mode 100644
index 00000000000..5d504170bce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mbpunc.mf
@@ -0,0 +1,244 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mbgpunc.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.2
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script (LMS)
+% Mongol Bicig Modyn Bar Punctuation Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_BNDRY,0,0,0);
+ "Mongolian Boundary";
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_MSP,numberwidth#,height#,depth#);
+ "Mongolian Space Symbol";
+ M (shilbeheight+0.5thin,gedesinner-thin);
+ S (nuruuleft+2thin,nuruuright-2thin);
+ P (underinner+0.5thin,underouter-2thin);
+ SpezRahmen;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_EXCLAMATION,2tewidth#,height#,depth#);
+ "Exclamation Mark";
+ Exclam(Centerline);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_QUESTEXCLAM,2tewidth#,height#,depth#);
+ "Question - Exclamation Mark";
+ Quest (nuruuleft+1/2thick);
+ Exclam (nuruuright-1.25thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_EXCLAMQUEST,2tewidth#,height#,depth#);
+ "Exclamation - Question Ligature";
+ Exclam (nuruuleft+1.0thick);
+ Quest (nuruuright-0.75thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_FVS1,numberwidth#,height#,depth#);
+ "Form Variant Selector 1";
+ F(shilbeheight,gedesinner+thin);
+ V(nuruuleft+4thin,nuruuright+2thin);
+ S(nuruuright+0thin,underinner-thin);
+ eins(underinner-2thin,underouter-3thin);
+ SpezRahmen;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_FVS2,numberwidth#,height#,depth#);
+ "Form Variant Selector 2";
+ F(shilbeheight,gedesinner+thin);
+ V(nuruuleft+4.5thin,nuruuright+3thin);
+ S(nuruuright+1thin,underinner+thin);
+ zwei(underinner-1thin,underouter-3thin);
+ SpezRahmen;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_OPAREN,gedeswidth#,height#,depth#);
+ "Mongolian Opening Parenthesis";
+ z1l=(bearing,orxicouter);
+ z2r=(gedeswidth-bearing,Centerline);
+ z3 =(x1,suulouter);
+ penpos1(thin,0);
+ penpos2(2.5thin,0);
+ penpos3(thin,0);
+ penstroke (z1e..z2e..z3e) ifrotated;
+ penlabels(1,2,3);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_CPAREN,gedeswidth#,height#,depth#);
+ "Mongolian Closing Parenthesis";
+ z1r=(gedeswidth-bearing,orxicouter);
+ z2l=(bearing,Centerline);
+ z3 =(x1,suulouter);
+ penpos1(thin,0);
+ penpos2(2.5thin,0);
+ penpos3(thin,0);
+ penstroke (z1e..z2e..z3e) ifrotated;
+ penlabels(1,2,3);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ENV,numberwidth#,height#,depth#);
+ "Mongolian Environment Marker";
+ z1 =(1.5thick,Centerline);
+ z2 =(w/2,.5[h,-d]); % "Centerpoint"
+ z3 =(2gedeswidth-1.5thick,y1);
+
+ penpos1(3.0thin,90);
+ penpos2(0.5thin,90);
+ penpos3(3.0thin,90);
+
+ pickup pencircle scaled 3.0 thin;
+ roffset:=0;
+ % roffset:=30;
+ % for r = 0,45,90,135: % This list for 8-pointed stars
+ for r = 0,60,120: % This list for 6-pointed stars
+ penstroke (z1e--z2e--z3e) rotatedabout (z2,r+roffset);
+ drawdot (z1) rotatedabout (z2,r+roffset);
+ drawdot (z3) rotatedabout (z2,r+roffset);
+ endfor;
+ penlabels(1,2,3);
+ SpezRahmen;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_MVS,numberwidth#,height#,depth#);
+ "Mongolian Vowel Separator";
+ M (shilbeheight,gedesinner-thin);
+ V (nuruuleft+2thin,nuruuright-2thin);
+ S (underinner+1thin,underouter-2thin);
+ SpezRahmen;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ELLIPSIS,2gedeswidth#,height#,depth#);
+ "Ellipsis";
+
+ dusal(1/5*2gedeswidth,Centerline,3thin,2thick);
+ dusal(2/5*2gedeswidth,Centerline,3thin,2thick);
+ dusal(3/5*2gedeswidth,Centerline,3thin,2thick);
+ dusal(4/5*2gedeswidth,Centerline,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_COLON,tewidth#,height#,depth#);
+ "Mongolian Colon";
+ pickup pencircle scaled 3.5 thin;
+ drawdot (1/2tewidth,nuruuleft+thick) ifrotated;
+ drawdot (1/2tewidth,nuruuright-thick) ifrotated;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_DORWOLJIN,bawidth#,height#,depth#);
+ "Dorwoljin";
+ dusal(1/2bawidth,gedesinner,5thin,3thick);
+ dusal(1/4bawidth,Centerline,5thin,3thick);
+ dusal(3/4bawidth,Centerline,5thin,3thick);
+ dusal(1/2bawidth,underinner,5thin,3thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_OM,2gedeswidth#,height#,depth#);
+ z1r=(gedeswidth-bearing,gedesouter+thin);
+ z2l=(bearing,Centerline);
+ z3 =(x1,underouter-thin);
+ penpos1(thin,0);
+ penpos2(2.5thin,0);
+ penpos3(thin,0);
+ penstroke (z1e..z2e..z3e) ifrotated;
+ penlabels(1,2,3);
+
+ z4r=(w-bearing,Centerline);
+ z5l=(x4l,Centerline+thin);
+ z6r=(08/12[x4l,x7l],gedesinner-1.25thin);
+ z7l=(9thin,Centerline);
+ z8l=(x4l,Centerline-thin);
+ z9r=(08/12[x4l,x7l],underinner+1.25thin);
+ penpos4(2.5thin,0);
+ penpos5(2.1thin,30);
+ penpos6(2.5thin,90);
+ penpos7(2.9thin,180);
+ penpos8(2.1thin,-30);
+ penpos9(2.5thin,-90);
+ penstroke(z4e..z5e..tension 1.4..z6e{left}..tension 1.2..{down}z7e) ifrotated;
+ penstroke(z4e..z8e..tension 1.4..z9e{left}..tension 1.2..{up}z7e) ifrotated;
+ penlabels(4,5,6,7,8,9);
+endchar;
+% pausing:=1;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LT,gedeswidth#,height#,depth#);
+ "Mongolian Less Than";
+ pair dz[];
+ z1l=(bearing,gedesouter);
+ z2r=(gedeswidth-bearing,Centerline);
+ z3 =(x1,underouter);
+ penpos1(thin,0);
+ penpos2(3.0thin,0);
+ penpos3(thin,0);
+ z4 =(x2,y3);
+ dz1=(z4-z1);
+ z5 =(x2,y1);
+ dz3=(z3-z5);
+ penstroke (z1e{dz1}..z2e&z2e..{dz3}z3e) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_GT,gedeswidth#,height#,depth#);
+ "Mongolian Greater Than";
+ pair dz[];
+ z1r=(gedeswidth-bearing,gedesouter);
+ z2l=(bearing,Centerline);
+ z3 =(x1,underouter);
+ penpos1(thin,0);
+ penpos2(3.0thin,0);
+ penpos3(thin,0);
+ z4 =(x2,y3);
+ dz1=(z4-z1);
+ z5 =(x2,y1);
+ dz3=(z3-z5);
+ penstroke (z1e{dz1}..z2e&z2e..{dz3}z3e) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_QUESTION,2tewidth#,height#,depth#);
+ "Question Mark";
+ Quest(Centerline);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_NIRUGU,shudwidth#,height#,depth#);
+ "Mongolian NIRUGU";
+ nuruu(shudwidth,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LGU,tewidth#,height#,depth#);
+ pair dz[];
+ z1l=(tewidth-gedeswidth+bearing,gedesouter); penpos1(thin,30);
+ z2r=(tewidth-bearing,Centerline); penpos2(3.0thin,0);
+ z3 =(x1,underouter); penpos3(thin,-30);
+ z4 =(x2,y3); dz1=(z4-z1);
+ z5 =(x2,y1); dz3=(z3-z5);
+ z6l=(bearing,y1-thin); penpos6(thin,+30);
+ z7r=(x6+5/8gedeswidth,y2); penpos7(3.0thin,0);
+ z8 =(x6,y3+thin); penpos8(thin,-30);
+
+ penstroke (z1e{dz1}..tension 1.2..z2e&
+ z2e..tension 1.2..{dz3}z3e) ifrotated;
+ penstroke (z6e{dz1}..tension 1.2..z7e&
+ z7e..tension 1.2..{dz3}z8e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_RGU,tewidth#,height#,depth#);
+ pair dz[];
+ z1r=(gedeswidth-bearing,gedesouter); penpos1(thin,-30);
+ z2l=(bearing,Centerline); penpos2(3.0thin,0);
+ z3 =(x1,underouter); penpos3(thin,30);
+ z4 =(x2,y3); dz1=(z4-z1);
+ z5 =(x2,y1); dz3=(z3-z5);
+ z6r=(tewidth-bearing,y1-thin); penpos6(thin,-30);
+ z7l=(x6-5/8gedeswidth,y2); penpos7(3.0thin,0);
+ z8 =(x6,y3+thin); penpos8(thin,30);
+ penstroke (z1e{dz1}..tension 1.2..z2e&
+ z2e..tension 1.2..{dz3}z3e) ifrotated;
+ penstroke (z6e{dz1}..tension 1.2..z7e&
+ z7e..tension 1.2..{dz3}z8e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/mcccscco.mf b/Master/texmf-dist/fonts/source/public/montex/mcccscco.mf
new file mode 100644
index 00000000000..db747db884a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mcccscco.mf
@@ -0,0 +1,41 @@
+% File: mcccscco.mf
+% Based on: cyccscco.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+CYRA := oct"141";
+CYRB := oct"142";
+CYRV := oct"167";
+CYRG := oct"147";
+CYRD := oct"144";
+CYRE := oct"145";
+CYRYO := oct"353";
+CYRZH := oct"152";
+CYRZ := oct"172";
+CYRI := oct"151";
+CYRISHRT := oct"357";
+CYRK := oct"153";
+CYRL := oct"154";
+CYRM := oct"155";
+CYRN := oct"156";
+CYRO := oct"157";
+CYROTLD := oct"366";
+CYRP := oct"160";
+CYRR := oct"162";
+CYRS := oct"163";
+CYRT := oct"164";
+CYRU := oct"165";
+CYRY := oct"374";
+CYRF := oct"146";
+CYRH := oct"170";
+CYRSHHA := oct"150";
+CYRC := oct"143";
+CYRCH := oct"161";
+CYRSH := oct"262";
+CYRSHCH := oct"260";
+CYRHRDSN := oct"263";
+CYRERY := oct"171";
+CYRSFTSN := oct"264";
+CYREREV := oct"344";
+CYRYU := oct"265";
+CYRYA := oct"266";
diff --git a/Master/texmf-dist/fonts/source/public/montex/mccoding.mf b/Master/texmf-dist/fonts/source/public/montex/mccoding.mf
new file mode 100644
index 00000000000..331c5b11186
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mccoding.mf
@@ -0,0 +1,88 @@
+% File: mccoding.mf
+% Based on: cycoding.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+% This file is in parts modelled after the original Cyrillic
+% encoding. File but was rebuilt by O. Corff, September 1997
+%
+cyra := oct"141";
+cyrb := oct"142";
+cyrv := oct"167";
+cyrg := oct"147";
+cyrd := oct"144";
+cyre := oct"145";
+cyryo := oct"353";
+cyrzh := oct"152";
+cyrz := oct"172";
+cyri := oct"151";
+cyrishrt := oct"357";
+cyrk := oct"153";
+cyrl := oct"154";
+cyrm := oct"155";
+cyrn := oct"156";
+cyro := oct"157";
+cyrotld := oct"366";
+cyrp := oct"160";
+cyrr := oct"162";
+cyrs := oct"163";
+cyrt := oct"164";
+cyru := oct"165";
+cyry := oct"374";
+cyrf := oct"146";
+cyrh := oct"170";
+cyrshha := oct"150";
+cyrc := oct"143";
+cyrch := oct"161";
+cyrsh := oct"262";
+cyrshch := oct"260";
+cyrhrdsn := oct"263";
+cyrery := oct"171";
+cyrsftsn := oct"264";
+cyrerev := oct"344";
+cyryu := oct"265";
+cyrya := oct"266";
+
+CYRA := oct"101";
+CYRB := oct"102";
+CYRV := oct"127";
+CYRG := oct"107";
+CYRD := oct"104";
+CYRE := oct"105";
+CYRYO := oct"313";
+CYRZH := oct"112";
+CYRZ := oct"132";
+CYRI := oct"111";
+CYRISHRT := oct"317";
+CYRK := oct"113";
+CYRL := oct"114";
+CYRM := oct"115";
+CYRN := oct"116";
+CYRO := oct"117";
+CYROTLD := oct"326";
+CYRP := oct"120";
+CYRR := oct"122";
+CYRS := oct"123";
+CYRT := oct"124";
+CYRU := oct"125";
+CYRY := oct"334";
+CYRF := oct"106";
+CYRH := oct"130";
+CYRSHHA := oct"110";
+CYRC := oct"103";
+CYRCH := oct"121";
+CYRSH := oct"222";
+CYRSHCH := oct"220";
+CYRHRDSN := oct"223";
+CYRERY := oct"131";
+CYRSFTSN := oct"224";
+CYREREV := oct"304";
+CYRYU := oct"225";
+CYRYA := oct"226";
+
+CYRNo := oct"371";
+CYR_TOGROG := oct"372";
+CYR_togrog := oct"373";
+
+guillemotleft := oct"023";
+guillemotright := oct"024";
diff --git a/Master/texmf-dist/fonts/source/public/montex/mctextit.mf b/Master/texmf-dist/fonts/source/public/montex/mctextit.mf
new file mode 100644
index 00000000000..51e2c011081
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mctextit.mf
@@ -0,0 +1,44 @@
+% File: mctextit.mf
+% Based on: cytextit.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+% The Computer Modern Cyrillic Text Italic family
+
+let cmchar=message; % `|cmchar|' should precede each character
+
+mode_setup; font_setup;
+input mccoding;
+font_coding_scheme:="TeX text";
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+
+input itald; % italic digits from cmr
+input punct; % punctuation
+input accent; % accents
+input italp; % more punctuation
+input mcyru; % upper case (majuscules)
+input mcyitall; % lower case (minuscules)
+input mcyrsymb; % seven additional chars: < << > >> No. t== T==
+input cyrmoreu; % The umlauts O U (majuscules) and Buriad H
+input cyrmorei; % The umlauts o u (minuscules) and Buriad h
+
+if ligs>0: input comlig; fi % ligatures common with roman text
+if ligs<=1: input romsub; fi % substitutes for ligatures
+
+
+if not monospace:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+fi
+
+input mcyrligs;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/montex/mcyccsc.mf b/Master/texmf-dist/fonts/source/public/montex/mcyccsc.mf
new file mode 100644
index 00000000000..39726943e4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mcyccsc.mf
@@ -0,0 +1,50 @@
+% File: mcyccsc.mf
+% Based on: cyccsc.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+% Caps and Small Caps in Computer Modern Cyrillic
+
+let cmchar=message; % `|cmchar|' should precede each character
+
+font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+
+input mccoding;
+
+input mcyrligs; % ligatures defined for entering Cyrillic
+
+mode_setup; font_setup;
+input punct; % Computer Modern punctuation symbols
+input romanp; % more punctuation symbols
+input romand; % digits
+input mcyru; % upper case (majuscules)
+input cyrmoreu;
+input sym; % minus, etc.
+input mcyrsymb; % seven additional chars: < << > >> No. t== T==
+if ligs>0: input comlig; fi % ligatures common with italic
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi;
+
+%%% fine lower
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+input mcccscco;
+font_setup; % now try again with |lower| settings
+input mcyru; % majuscules (in lowercase positions)
+input cyrmoreu;
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/mcyitall.mf b/Master/texmf-dist/fonts/source/public/montex/mcyitall.mf
new file mode 100644
index 00000000000..a181475fd3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mcyitall.mf
@@ -0,0 +1,691 @@
+% File: mcyitall.mf
+% Based on: cyitall.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+% Computer Modern Cyrillic Italic lower case:
+
+cmchar "Cyrillic italic letter a";
+beginchar(cyra,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter be";
+beginchar(cyrb,9u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=x_height+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos2'(hair,180); z2'r=z2r; pos5(vstem,90); pos5'(vstem,-90); z5'=z5;
+pos6(hair,0); rt x6r=hround(w-u); top y6=h; top y5r=vround .9h; x5=x1;
+filldraw stroke pulled_arc.e(6,5'); filldraw stroke pulled_arc.e(5,2');
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Cyrillic italic letter ve";
+beginchar(cyrv,9u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(curve,0); pos6(vair,180);
+x0=rt x3l; rt x1r=hround(w-2.5u+.5heavy_hair); x2=x4=.5w;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-u-eps); x6=x2;
+y0=y3=y6-.1u=bar_height; y1=.5[y0,y2];
+top y2r=h+oo; bot y4r=-oo; y5=vround .5bar_height;
+filldraw stroke z0e{right}...z1e{up}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4) &
+ {{surerness:=hein_super; pulled_arc.e(4,5) & pulled_arc.e(5,6)}};
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter ghe";
+beginchar(cyrg,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos2(hair,140); pos3(vair,90); pos4(curve,0);
+pos5(vair,-90); pos5'(vair,90); pos6(curve,180);
+pos7(vair,270); pos8(hair,320);
+x7=w-x3=.5(w+u); x5=.52w; y5=.52h; z5'=z5;
+lft x6r=w-rt x4r-.5u=hround(1.5u-.5curve); x8r=w-x2=good.x(w-eps);
+x9=x8; x1=x2; top y3=h+oo; y4=.5[y5,y3]; bot y7r=-oo; y6=.5[y5,y7];
+top y8l=h-bot y2l=vround .5bar_height; y9=h-y1=bar_height;
+path p[]; p1=z3{left}..z2..z1; p2=z7{right}..z8..z9;
+filldraw stroke pulled_arc.e(5,4)
+ & pulled_arc.e(4,3)...{direction 1 of p1}z2e;
+filldraw stroke pulled_arc.e(5',6)
+ & pulled_arc.e(6,7)...{direction 1 of p2}z8e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter de";
+beginchar(cyrd,9u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,150); pos2(vair,90); pos3(curve,0);
+pos4(vair,270); pos5(curve,180); pos6(vair,90);
+x1=x5l; x2=.5w-u; y1=h-.25u; top y2r=h+o; y3=.5[y2,y4];
+x6=x4=.5w; lft x5r=w-rt x3r=hround(1.5u-.5curve);
+top y6r=x_height+oo; y5=.5[y6,y4]; bot y4r=-oo;
+path p; p=pulled_super_arc.l(3,4)(superpull);
+numeric t; t=xpart(p intersectiontimes((x4,y5)--(x3r,y5)));
+pos7(thin_join,0); z7l=point t of p;
+filldraw stroke z1e...pulled_super_arc.e(2,3)(superpull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(superpull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(superpull)}}
+ & pulled_super_arc.e(5,6)(superpull)
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter ie";
+beginchar(cyre,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter ye";
+numeric dot_diam#,dot_diam;
+beginchar(cyryo,8u#,1.4x_height#,0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair,letter_h; letter_h=x_height; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=letter_h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+pos7(dot_diam,0); pos8(dot_diam,90);
+x7=x8=2.5u; top y8r=h+1;
+if bot y8l<letter_h+o+slab: y8l:=min(y8r-eps,letter_h+o+slab+.5tiny); fi
+y7=.5[y8l,y8r]; dot(7,8); % left dot
+pos9(dot_diam,0); penpos10(y8r-y8l,90); y9=y10=y7; x9=x10=w-x7;
+dot(9,10); % right dot
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+cmchar "Cyrillic italic letter zhe";
+beginchar(cyrzh,17u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric arc_width; arc_width=7u;
+pos0(flare,180); pos1(hair,180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+pos7(flare,0); pos8(hair,0); pos9(vair,90);
+pos10(curve,180); pos11(vair,270); pos12(hair,320);
+x2=x4=w-x9=.5(arc_width-u); x11=x9;
+lft x1r=w-rt x8r=min(lft x2,hround u)-eps;
+rt x3r=w-lft x10r=hround(arc_width-1.5u+.5curve);
+x5r=w-x12r=good.x(eps); x6=x5; x13=x12;
+y8=h-y1=.5[bar_height,h]; bot y2r=-oo; top y9r=h+oo;
+top y4r=h+oo; bot y11r=-oo; y3=h-y10=.5[y2,y4];
+bot y5l=h-top y12l=vround h-.5bar_height; y13=h-y6=bar_height;
+path p[]; p1=z4{left}..z5..z6; p2=z11{right}..z12..z13;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p1}z5e; % left arc
+filldraw stroke pulled_arc.e(9,10)
+ & pulled_arc.e(10,11)...{direction 1 of p2}z12e; % right arc
+bulb(2,1,0); bulb(9,8,7); % left and right bulb
+pos14(stem,0); pos15(stem,0); x14=x15=.5w; top y14=h; bot y15=0;
+filldraw stroke z14e--z15e; % stem
+penpos3'(bar,90); penpos10'(bar,90); z3'=z3; z10'=z10;
+fill stroke z3'e--z10'e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+cmchar "Cyrillic italic letter ze";
+beginchar(cyrz,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,140); pos2(cap_band,90); pos4(vair,-90);
+x1r=good.x(eps); x0=x1; top y2r=h+o;
+bot y1l=vround h-.5bar_height; y0=h-bar_height;
+pos3(max(fine.breadth,curve-stem_corr),0);
+pos7(vair,-90); pos8(vair,-90); pos9(vair,90);
+x2=.45[2u,x10]; rt x3r=hround(w-u); x4=.45[x1,x10];
+pos10(curve,0); rt x10r=hround(w-.5u); lft x8=.5w-u;
+y3=.35[top y7l,bot y2l]; top y8l=vround(.54h+.5vair); z8r=z9l;
+x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+pos5'(hair,-180); pos5(flare,-180);
+bot y4r=0; rt x5l=hround 2u; z5r=z5'r;
+y10=.45[bot y8r,top y4l]; y5=max(good.y .95(h-y1),y4l+eps);
+(x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+(x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+path p; p=z0..z1..{right}z2;
+filldraw stroke z1e{direction 1 of p}
+ ...pulled_arc.e(2,3)
+ & z3e{down}...z7e---z8e; % upper bowl
+filldraw stroke z9e---pulled_arc.e(9,10)
+ & pulled_super_arc.e(10,4)(.5superpull); % lower bowl
+bulb(4,5',5); %bulb
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,7,8,9,10,11,12,13); endchar;
+
+cmchar "Cyrillic italic letter i";
+beginchar(cyri,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter short i";
+beginchar(cyrishrt,9.5u#,x_height#+3.5u#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height; y6+.5stem=x_height;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+penpos10(hair-fine,-90); penpos11(hair-fine,-180); penpos12(.5flare,-180);
+penpos13(hair-fine,-90); penpos14(hair-fine,0); penpos15(.5flare,0);
+x10=.5[x11,x14]; x11=.5w-2u; x14=w-x11;
+y10=y13=x_height+u; y11=y14=h-.5u; z13=z10;
+bulb(10,11,12); bulb(13,14,15); % bulbs
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Cyrillic italic letter ka";
+beginchar(cyrk,9.5u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter el";
+beginchar(cyrl,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x6=x7; x9=w; hook_out(7,8,9); % closing hook
+top y6=top y0=h; x0=lft x6r;
+filldraw stroke z6e--z7e; % right stem
+pickup tiny.nib; pos0(hair,-90); pos1(hair,0); pos2(hair,0);
+y1=.5h; rt x1r=hround(w-5.25u); x2=x1; y2=.21h;
+pos3(vair,-90); pos4(hair,-180); pos5(flare,-180);
+bot y3r=0; x3=.5[x4,x2]; y5=.25h; rt x5l=hround 2u; z5r=z4r;
+filldraw stroke pulled_arc.e(0,1) & z1e--z2e & super_arc.e(2,3); % arc
+bulb(3,4,5); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter em";
+beginchar(cyrm,12u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.stem-4stem_corr);
+stem2=hround(fudged.hair-stem_corr);
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); top y6=h;
+x6=x7; x9=w; hook_out(7,8,9); % closing hook
+filldraw stroke z6e--z7e; % right stem
+pickup tiny.nib; pos1(hair,0); pos2(hair,0);
+top y1=h; rt x1r=hround(w-8.25u); x2=x1; y2=.21h;
+pos3(vair,-90); pos4(hair,-180); pos5(flare,-180);
+bot y3r=0; x3=.5[x4,x2]; y5=.25h; rt x5l=hround 2u; z5r=z4r;
+filldraw stroke z1e--z2e & super_arc.e(2,3); % left stem and arc
+bulb(3,4,5); % bulb
+penpos10(stem1,0); penpos11(stem1,0); penpos12(stem2,0); penpos13(stem2,0);
+x10l=x1; x11l=x12l; x13=lft x6l; x11-x10=x13-x12; y10=y13=h; y11=y12;
+y11=0; z0=whatever[z10r,z11r]=whatever[z12l,z13l];
+fill z10l..{z11-z10}diag_in(10l,11l,1,11r)
+ ..diag_out(12l,1,12r,13r){z13-z12}
+ ..z13r--diag_out(13r,1,13l,12l){z12-z13}..{z12-z13}z0{z10-z11}
+ ..{z10-z11}diag_in(11r,10r,1,10l)--cycle; % diagonals
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Cyrillic italic letter en";
+beginchar(cyrn,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem); y6+.5stem=h;
+x6=x7; x9=w; hook_out(7,8,9); % closing hook
+filldraw circ_stroke z6e--z7e; % right stem
+penpos10(bar,90); penpos11(bar,90); x10=x1; x11=x6; y10=y11=.5h;
+fill stroke z10e--z11e; % bar
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Cyrillic italic letter o";
+beginchar(cyro,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Cyrillic italic letter pe";
+beginchar(cyrp,10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter er";
+beginchar(cyrr,9u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter es";
+beginchar(cyrs,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter te";
+beginchar(cyrt,15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter ef";
+beginchar(cyrf,12u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w-2u); lft x8r=hround 2u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.15[x_height,h]; y5=.4[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+penpos10(hair,180); penpos11(vair,90); penpos12(curve,0);
+penpos13(vair,-90); penpos14(hair,0); penpos15(vair,90);
+penpos16(curve,180); penpos17(vair,270);
+x10=x14=.5w; y11r=y15r=x_height+o; y12=y16=.5[y11l,y13l]; y13r=y17r=-o;
+y10=y14=.5x_height; x11r=x13r=w-x15r=w-x17r=.5w+1.75u;
+x12r=w-x16r=hround(w-.5u);
+fill stroke super_arc.e(10,11) & pulled_arc.e(11,12)
+ & pulled_arc.e(12,13) & super_arc.e(13,10);
+fill stroke super_arc.e(14,15) & pulled_arc.e(15,16)
+ & pulled_arc.e(16,17) & super_arc.e(17,14);
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,88,89); endchar;
+
+cmchar "Cyrillic italic letter u";
+beginchar(cyru,8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Cyrillic italic letter xa";
+beginchar(cyrh,6.5u#+max(1.5u#,flare#),x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90);
+pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19); endchar;
+
+cmchar "Cyrillic italic letter tse";
+beginchar(cyrc,9.5u#,x_height#,desc_depth#-u#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w;
+pos7(stem,0); pos8(vair,90);
+x9:=hround(x9+.5hair-eps)-.5hair; pos9(hair,180);
+y7=1/4x_height; bot y8l=-oo; y9=1/3x_height; x8=x7+1.5u;
+path p,p.l,p.r;
+forsuffixes $=r,l: p.$=z7${down}...z8${right}
+ ...{x9-(x7+2.5u),x_height}z9$; endfor;
+p=p.r--reverse p.l--cycle;
+filldraw p; % closing hook;
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+pos10(stem,-140); pos11(stem,-150);
+x11r=x10; x10r=.9[x7,x8]; x12=x8;
+y11=.5[y12,y10]; y10=-.25d; bot y12=-d;
+filldraw stroke (subpath (1.5,3.5) of p)..z10e..z11e..z12;
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Cyrillic italic letter che";
+beginchar(cyrch,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.2u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=.325h; y5=.7h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter sha";
+beginchar(cyrsh,14.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); pos6(stem,-180); pos7(stem,-180);
+pos8(vair,-90); pos9(hair,0); pos10(stem,0);
+x4=.5[x3,x5]; x6=.5w; x8=.5[x5,x9]; rt x10r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=x10=x11; x13=w; hook_out(11,12,13); % closing hook
+y3=.7[y4,y5]; bot y4r=bot y8r=-oo; y5=y9=.57h; y7=y11;
+y6+.5stem=h; y10=y6;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e
+ ...super_arc.e(7,8)...{up}z9e; % middle stem and arc
+filldraw circ_stroke z10e--z11e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Cyrillic italic letter shcha";
+beginchar(cyrshch,14.5u#,x_height#,desc_depth#-u#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); pos6(stem,-180); pos7(stem,-180);
+pos8(vair,-90); pos9(hair,0); pos10(stem,0);
+x4=.5[x3,x5]; x6=.5w; x8=.5[x5,x9]; rt x10r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=x10=x11; x13=w;
+pos11(stem,0); pos12(vair,90);
+x13:=hround(x13+.5hair-eps)-.5hair; pos13(hair,180);
+y11=1/4x_height; bot y12l=-oo; y13=1/3x_height; x12=x11+1.5u;
+path p,p.l,p.r;
+forsuffixes $=r,l: p.$=z11${down}...z12${right}
+ ...{x13-(x11+2.5u),x_height}z13$; endfor;
+p=p.r--reverse p.l--cycle;
+filldraw p; % closing hook;
+y3=.7[y4,y5]; bot y4r=bot y8r=-oo; y5=y9=.57h; y7=y11;
+y6+.5stem=h; y10=y6;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e
+ ...super_arc.e(7,8)...{up}z9e; % middle stem and arc
+filldraw circ_stroke z10e--z11e; % right stem
+pos14(stem,-140); pos15(stem,-150);
+x15r=x14; x14r=.9[x11,x12]; x16=x12;
+y15=.5[y16,y14]; y14=-.25d; bot y16=-d;
+filldraw stroke (subpath (1.5,3.5) of p)..z14e..z15e..z16;
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+cmchar "Cyrillic italic letter soft_sign";
+beginchar(cyrsftsn,8u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+numeric x_bowl; x_bowl=2/3h;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_bowl;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(8u-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_bowl+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Cyrillic italic letter hard_sign";
+beginchar(cyrhrdsn,12u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+numeric x_bowl; x_bowl=.52h;
+pos1(vair,0); pos2(stem,0); x1=x2;
+lft x1l=hround(5.5u-.5stem); top y1=h+oo; y2=.5x_bowl;
+filldraw stroke z1e--z2e; % stem
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_bowl+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+pos1'(vair,0); pos6(vstem,-90); pos6'(vstem,90); pos7(vair,180);
+z1'=z1; x6=.5[x7,x1]; top y6l=h+oo; z6'=z6; lft x7r=0; y7=h-1.75u;
+filldraw stroke pulled_arc.e(1',6);
+filldraw stroke pulled_arc.e(6',7);
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Cyrillic italic letter yeru";
+beginchar(cyrery,12u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+numeric x_bowl; x_bowl=2/3h;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1r=h+oo; y2=.5x_bowl;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(8u-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_bowl+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+pickup fine.nib; x7-.5stem=hround(9.5u-.5stem); x9=w;
+hook_out(7,8,9); % closing hook
+pickup tiny.nib; pos6(stem,0); pos7'(stem,0); z7'=z7;
+top y6=h; x6=x7; filldraw stroke z6e--z7e; % stem
+sloped_serif.l(6,7,b,1/3,jut,serif_drop); % serif
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Cyrillic italic letter e";
+beginchar(cyrerev,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,180); pos1(hair,180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x2=x4=.5(w-u); lft x1r=.25u;
+rt x3r=hround(w-1.5u+.5curve); x5r=good.x(eps); x6=x5;
+y1=.52[0,h-bar_height]; bot y2r=-oo; bulb(2,1,0); % bulb
+top y4r=h+oo; y3=.5[y2,y4]; bot y5l=vround h-.5bar_height; y6=h-bar_height;
+path p; p=z4{left}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+penpos7(bar,90); penpos8(bar,90);
+x7=x3; y7=.52h; y8=y7; x8=.5w-hround(u);
+fill stroke z7e--z8e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Cyrillic italic letter yu";
+beginchar(cyryu,13u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+pos3(vair,90); pos4(curve,180); pos5(vair,270); pos6(curve,360);
+x3=x5=w-4.5u; rt x6r=hround(w-1.5u+.5curve); x4=w-(x6-4u);
+top y3r=h+oo; y4=y6=.5[y3,y5]; bot y5r=-oo;
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3); % bowl
+penpos4'(bar,90); penpos7(bar,90); z4'=z4; x7=x1; y7=y4';
+fill stroke z4'e--z7e; % bar
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(1,2,3,4,4',5,6,7); endchar;
+
+cmchar "Cyrillic italic letter ya";
+beginchar(cyrya,8u#+.5max(2u#,curve#),x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=rt x2r=w-hround(2.5u-.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(curve if hefty:-3stem_corr fi,180);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7=.5h; x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround(1.5u);
+else: x4=.5w-.5u; x5l=hround(.75u); fi
+x4l:=x6l:=x4+.125curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+pos6'(vair,-90); pos0(stem,0);
+pos8(curve,0); pos9(vair,-90); pos10(hair,180);
+z6'=z6; rt x0r=rt x8r=hround(x5+2/3u+.5curve);
+y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+bot y9l=0; lft x10r=hround(.05u); y10=1/4[y2,y7];
+filldraw stroke z6'e{left}..z0e---z8e....z9e{left}..z10e{up}; % tail
+nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
+dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower serif
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/mcyrill.mf b/Master/texmf-dist/fonts/source/public/montex/mcyrill.mf
new file mode 100644
index 00000000000..4e84505c410
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mcyrill.mf
@@ -0,0 +1,295 @@
+% File: mcyrill.mf
+% Based on: cyrillic.mf
+% Modified by: Oliver Corff
+% Date: December 1998, Ulaanbaatar, Beijing, Shenyang, Berlin
+%
+%
+% The Computer Modern Cyrillic family of fonts (by N. Glonti)
+%
+%
+let cmchar=message; % `|cmchar|' should precede each character
+
+font_coding_scheme:="TeX text";
+input mccoding;
+
+mode_setup; font_setup;
+
+
+input punct; % Computer Modern common punctuation symbols
+input romanp; % more common symbols
+input romand; % numbers
+input accent; % useful accents
+input mcyru; % upper case (majuscules)
+input mcyrl; % lower case (minuscules)
+input mcyrsymb; % seven additional chars: < << > >> No. T== t==
+input cyrmoreu; % Umlaut O U and Buriad H
+input cyrmorel; % Umlaut o u and Buriad h
+
+if ligs>0 : input comlig fi; % ligatures common with roman text
+if ligs<=1: input romsub fi;
+
+font_slant slant;
+font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+ k#:=.25u#; kk#:=.5u#; kkk#:=0.75u#; kkkk#:=-1.25u#;
+
+%k#:=.5u#; kk#:=.75u#; kkk#:=1.5u#; kkkk#:=-2u#;
+%k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+%k#:=2u#; kk#:=u#; kkk#:=3u#; kkkk#:=-5u#;
+
+ ligtable cyra: % a
+ cyrya kern -kk#, % ya
+ cyru kern -kk#, % u
+ cyrd kern k#, % d
+ cyrch kern -kk#; % ch
+
+ ligtable cyrb: % b
+ cyrv kern -k#, % ve
+ cyrg kern -k#, % ghe
+ cyre kern k#, % e
+ cyrzh kern -k#, % zhe
+ cyri kern -k#, % i
+ cyrk kern -k#, % ka
+ cyrm kern -k#, % em
+ cyrn kern -k#, % en
+ cyrp kern -k#, % pe
+ cyrr kern -k#, % er
+% cyrf kern -k#, % (was -kk# AS) f
+ cyrh kern -k#, % x
+% cyro kern -k#, % o (-kkkk -> -kkk AS)
+ cyrs kern -k#, % s (-kkkk -> -kkk AS)
+ cyru kern -k#, % u
+ cyrsftsn kern -k#, % soft_sign
+ cyrery kern -k#, % yeru
+ cyrshch kern -k#, % shcha
+ cyrc kern -k#; % tse
+
+ ligtable cyrc: cyrsh: cyrshch:
+ cyrn: cyrm: cyrp:
+ cyrb kern -k#, % be
+ cyro kern -k#, % o
+ cyre kern -k#, % es
+ cyrf kern -k#, % ef
+ cyrs kern -k#, % ie
+ cyrd kern k#; % d
+
+ ligtable cyrd: % d
+ cyrb kern -kkk#, % be
+ cyro kern -kkk#, % o
+ cyre kern -kkk#, % es
+ cyrf kern -kk#, % ef
+ cyrs kern -kkk#, % ie
+ cyrd kern kk#; % d
+
+ ligtable cyre: % e
+ cyrb kern kkk#, % b
+ cyrd kern -kk#, % d
+% cyre kern -k#, % e
+ cyrzh kern -kk#, % e
+% cyrf kern -k#, % f
+ cyrh kern -kk#, % x
+% cyro kern -k#, % o
+% cyrs kern -k#, % s
+% cyrt kern -k#, % t
+ cyru kern -k#; % u
+
+ ligtable cyrf: % f
+ cyre kern k#, % e
+ cyrh kern -kk#, % x
+ cyri kern -kk#, % i
+ cyrn kern -k#, %
+ cyrp kern -k#, %
+ cyrr kern -k#, %
+ cyro kern k#, % o
+ cyrs kern k#, % s
+ cyrt kern -k#; % t
+
+ ligtable cyrg: % g
+ cyrb kern -k#, % b
+ cyre kern -kkk#, % e
+ cyro kern -kkk#, % o
+ cyrs kern -kkk#; % s
+
+ ligtable cyrh: % kh
+ cyre kern -kk#, % e
+ cyro kern -kk#, % o
+ cyrf kern -kk#, %
+ cyrs kern -kk#; % s
+
+ ligtable cyrk: % k
+ cyre kern -kk#, % e
+ cyrf kern -kk#, % f
+ cyro kern -kk#, % o
+ cyrs kern -kk#, % s
+ cyru kern -k#; % u
+
+ ligtable cyrl: % l
+ cyre kern -kk#, % e
+ cyrf kern -kk#, % f
+ cyro kern -kk#, % o
+ cyrs kern -kk#; % s
+
+ ligtable cyro: % o
+% cyrb kern -k#, % b (was kkkk AS)
+ cyrv kern -kk#, % ve
+ cyrd kern -kkk#, % de
+% cyre kern -k#, % e (was kkkk AS)
+ cyrh kern -kk#, % x
+% cyro kern -k#, % o (was kkkk AS)
+% cyrs kern -kk#, % s (was kkkk AS)
+ cyrm kern -kk#, %
+ cyrn kern -kk#, %
+ cyrp kern -kk#, %
+ cyri kern -kk#, %
+ cyrishrt kern -kk#, %
+ cyrk kern -kk#, %
+ cyrr kern -kk#, %
+ cyrsh kern -kk#, %
+ cyrshch kern -kk#, %
+ cyrch kern -kkk#, %
+ cyrzh kern -kk#; % zh
+
+ ligtable cyrr: % p
+% cyrb kern -k#, % b (kkkk -> -kkk AS)
+% cyre kern -k#, % e(kkkk -> -kkk AS)
+ cyrh kern -kk#, % x
+% cyro kern -k#, % o (kkkk -> -kkk AS)
+% cyrs kern -kk#, % s (kkkk -> -kkk AS)
+ cyrt kern -k#; % t
+
+% ligtable cyrs: % s
+% cyrb kern -k#, % b
+% cyre kern -k#, % e
+% cyrf kern -k#, % f
+% cyro kern -k#, % o
+% cyrs kern -k#; % s
+ ligtable cyrt: % t
+ cyrn kern -k#, %
+ cyrs kern -k#, %
+ cyre kern -k#, % e
+ cyro kern -k#; % o
+ ligtable cyru: % u
+ cyrd kern -k#, % d
+ cyrl kern -kk#, %
+ cyra kern -k#; % s
+ ligtable cyrzh: % zh
+ cyrb kern -kk#, % b
+ cyre kern -kk#, %
+ cyrf kern -kk#, %
+ cyro kern -kk#, % o
+ cyrs kern -kk#; % s
+
+ ligtable cyrv: % w
+ cyrt kern -k#; % d
+
+% ligtable cyrz: % z
+% cyrb kern -k#, % b
+% cyre kern -k#, % e
+% cyro kern -k#, % o
+% cyrs kern -k#; % s
+
+% ligtable cyrs: cyrh=: cyrsh;
+
+ ligtable CYRA: % A
+ cyru kern -kk#, %
+ CYRCH kern -kkk#; % ch
+
+ ligtable CYRB: % B
+ CYRO kern -k#, % o
+ CYRS kern -k#, % s
+ CYRU kern -kk#; % u
+
+ ligtable CYRG: CYRU: % G U
+ CYRA kern -kk#, % a
+% cyrv kern -kk#, % w
+% CYRG kern -kk#, % g
+ CYRD kern -kk#, % d
+% CYRE kern -kk#, % e
+ CYRF kern -kk#, % f
+ CYRH kern -kk#, % kh
+% CYRI kern -kk#, % i
+% CYRISHRT kern -kk#, % j
+% CYRK kern -kk#, % k
+ CYRL kern -kk#, % l
+% CYRM kern -kk#, % m
+% CYRN kern -kk#, % n
+% CYRO kern -kk#, % o
+% CYRP kern -kk#, % p
+ CYRYA kern -kk#, % ya
+% CYRR kern -kk#, % r
+ CYRS kern -kk#, % s
+ CYRT kern -kk#, % t
+ CYRU kern -kk#; % u
+% CYRV kern -kk#, % w
+% CYRSFTSN kern -kk#, % '
+% CYRERY kern -kk#, % y
+% CYRZ kern -kk#, % z
+% CYRSH kern -kk#, % sh
+% CYRSHCH kern -kk#, % shch
+% CYRCH kern -kk#; % ch
+% CYRHRDSN kern -k#; % ''
+
+ ligtable CYRO: CYRS: CYRF:
+ cyrd kern -kkk#, %
+ CYRA kern -kkk#, %
+ CYRV kern -kkk#, %
+ CYRG kern -kkk#, %
+ CYRR kern -kkk#, %
+ CYRP kern -kkk#, %
+ CYRN kern -kkk#, %
+ CYREREV kern -kkk#, %
+ CYRH kern -kkk#, %
+ CYRI kern -kkk#, %
+ CYRK kern -kkk#, %
+ CYRM kern -kkk#, %
+ CYRSH kern -kkk#, %
+ CYRSHCH kern -kkk#, %
+ CYRISHRT kern -kkk#; % j
+
+ ligtable CYRN: CYRM: CYRR: CYRP:
+ CYRZH: CYRK: CYRD: CYRH:
+ CYRO kern -kkk#, %
+ CYRS kern -kkk#, %
+ CYRF kern -kkk#; %
+
+ ligtable CYRT: % T
+ CYRA kern -kkk#, % a
+% CYRV kern -kkk#, % w
+% CYRG kern -kkk#, % g
+ CYRD kern -kkk#, % d
+ CYRE kern -kkk#, % e
+ CYRF kern -kkk#, % f
+ CYRH kern -kkk#, % kh
+ CYRI kern -kkk#, % i
+ CYRISHRT kern -kkk#, % j
+ CYRK kern -kkk#, % k
+ CYRL kern -kkk#, % l
+% CYRM kern -kkk#, % m
+% CYRN kern -kkk#, % n
+ CYRO kern -kkk#, % o
+% CYRP kern -kkk#, % p
+ CYRYA kern -kkk#, % ya
+% CYRR kern -kkk#, % r
+ CYRS kern -kkk#, % s
+ CYRT kern -kkk#, % t
+ CYRU kern -kkk#, % u
+% CYRV kern -kkk#, %
+% CYRSFTSN kern -kkk#, %
+% CYRERY kern -kkk#, % y
+ CYRZ kern -kkk#; % z
+% CYRSH kern -kk#, % sh
+% CYRSHCH kern -kk#, % shch
+% CYRCH kern -kk#, % ch
+% CYRHRDSN kern -kk#; %
+fi;
+
+input mcyrligs;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/montex/mcyrl.mf b/Master/texmf-dist/fonts/source/public/montex/mcyrl.mf
new file mode 100644
index 00000000000..94212b88844
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mcyrl.mf
@@ -0,0 +1,1085 @@
+% File: mcyrl.mf
+% Based on: cyrl.mf
+% Modified by: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% The de was modified since it caused problems with
+% thin_stem being < 0 which is not bearable.
+%
+% The ze was modified since it goofed in Funny mode.
+%
+cmchar "The cyrillic letter a";
+beginchar(cyra,9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The cyrillic letter be";
+beginchar(cyrb,9u#,fig_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height+vround 1.5oo; y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos2'(hair,180); lft x2'r=x2r; y2'=y2r;
+penpos5(.8curve,90); penpos6(.8curve,90);
+penpos6'(.8curve,-90); x6=.5[x5,x7]; y6=y5; z6'=z6;
+penpos7(thin_join,0); rt x7r=rt x4r;
+top y7=h; top y5r=.97h; x5=x1;
+fill stroke z2'e{up}...{right}z5e..z6e;
+fill circ_stroke pulled_arc.e(7,6');
+penlabels(1,2,2',3,4,5,6',6,7); endchar;
+
+cmchar "The cyrillic letter ve";
+beginchar(cyrv,9u#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-u); x10r=hround(w-.5u);
+if serifs: right_curve=curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+ nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The cyrillic letter ghe";
+beginchar(cyrg,8.5u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+nodish_serif(1,2,a,1/3,jut,b,1/3,.5jut); % upper serif
+dish_serif(2,1,c,1/3,jut,d,1/3,1.25jut); % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter de";
+beginchar(cyrd,10u#,x_height#,comma_depth#);
+italcorr x_height#*slant-serif_fit#
+ +.75jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; numeric thin_stem;
+thin_stem=if monospace: stem-tiny
+ else: min(hair,stem-1.3tiny) fi;
+if thin_stem<0:thin_stem:=epsilon fi; %
+ %
+ % Making thin_stem epsilon
+ % was introduced after encountering
+ % problems with kmvtt10.mf
+ %
+ % Oliver Corff, June 1st, 1998, Ulaanbaatar
+ %
+if serifs: penpos1(thin_stem,0); penpos2(thin_stem,0); x2=.5[hround .5u,x1];
+else: penpos1(thin_stem,0); penpos2(thin_stem,0); x2=.5u+stem; fi
+pos3(stem,0); pos4(stem,0);
+x1l=x0l=.33w; top y1=h; bot y2=0;
+rt x3r=rt x4r=hround(w-2u); top y3=h; bot y4=0;
+filldraw stroke z3e--z4e;
+filldraw stroke z1e{down}..z2e; % stem and arc
+if serifs: pickup crisp.nib; numeric inner_jut,newbracket;
+ newbracket:=max(1.5,bracket); inner_jut:=.5(x3l-x1r);
+ path p[]; p1=z1{down}...z2;
+ p12=(0,y1-newbracket)--(w,y1-newbracket);
+ p21=(0,y2+newbracket)--(w,y2+newbracket);
+ z12=p1 intersectionpoint p12; z21=p1 intersectionpoint p21;
+ nodish_serif(1,12,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,c,1/3,inner_jut,d,1/3,jut); % upper right serif
+ inner_jut:=.5(x4l-x2r);
+ nodish_serif(2,21,e,1/3,jut,f,1/3,inner_jut); % middle left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % middle right serif
+ pickup crisp.nib;
+ pos5(slab,90); pos6(hair,180); pos7(hair,0);
+ x5=.5[x2,x4]; bot y5l=0;
+ rt x7r=tiny.rt x4r+jut; lft x6r=tiny.lft x2l-jut;
+ y6=y7=good.y(y5l-.5beak)-eps;
+ arm(5,6,m,1.25beak_darkness,0); % left beak
+ arm(5,7,n,1.25beak_darkness,0); % right beak
+else:
+ pos1'(slab,90); pos3'(slab,90);
+ pos6(slab,90); pos7(slab,90);
+ pos6'(slab,0); pos7'(slab,0);
+ pos8(slab,0); pos9(slab,0);
+ lft x1'=lft x1l; rt x3'=rt x3r; top y1'r=top y3'r=h;
+ lft x6=lft x6'l=lft x8l=.5u; rt x7=rt x7'r=rt x9r=w-.5u;
+ bot y6l=bot y7l=0; y6'=y7'=y6; bot y8=bot y9=-.75d;
+ filldraw stroke z1'e--z3'e; % upper bar
+ filldraw stroke z6e--z7e; % lower bar
+ filldraw stroke z6'e--z8e; % left beak
+ filldraw stroke z7'e--z9e; % right beak
+fi
+penlabels(1,1',2,3,3',4,5,6,7,8,9,12,21); endchar;
+
+cmchar "The cyrillic letter ie";
+beginchar(cyre,7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter ye";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(cyryo,7.25u#+max(.75u#,.5curve#),1.4x_height#,0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve,letter_h; letter_h=x_height;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=letter_h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+pos6(dot_diam,0); pos7(dot_diam,90);
+x6=x7=2.5u; top y7r=h+1;
+if bot y7l<letter_h+o+slab: y7l:=min(y7r-eps,letter_h+o+slab+.5tiny); fi
+y6=.5[y7l,y7r]; dot(6,7); % left dot
+pos8(dot_diam,0); penpos9(y7r-y7l,90); y8=y9=y6; x8=x9=w-x6;
+dot(8,9); % right dot
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter zhe";
+beginchar(cyrzh,14u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+x1=x2=.5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+rt x3r=w-lft x7l=hround(r-letter_fit-.9u-right_jut);
+rt x6r=w-lft x9l=hround(r-letter_fit-.5u-right_jut);
+top y3=top y7=h; bot y6=bot y9=0; x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+penpos7(alpha1*(stem1-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0); penpos9(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=y7'$=h; y6'$=y9'$=0;
+ z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4];
+ x8$=w-x5$; y8$=y5$; endfor
+z5=.5[z5l,z5r]; z8=.5[z8l,z8r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+x7'r=w-x3'r; x7'l=w-x3'l; x9'r=w-x6'r; x9'l=w-x6'l;
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % right upper diagonal
+fill z4r--diag_end(4r,7'r,1,.5,7'l,4l)--z4l--cycle; % left upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % right lower diagonal
+fill z8l--diag_end(8l,9'l,.5,1,9'r,8r)--z8r--cycle; % left lower diagonal
+if serifs: numeric inner_jut,mon_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ mon_jut=if monospace: inner_jut else: jut fi;
+ dish_serif(1,2,a,1/3,mon_jut,b,1/3,mon_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower stem serif
+ dish_serif(3,4,e,2/3,right_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(7,4,i,1/2,right_jut,j,2/3,right_jut)(dark); % upper diagonal serif
+ dish_serif(9,8,k,1/3,right_jut,l,1/2,inner_jut)(dark); fi %lower diagonal seri
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter ze";
+beginchar(cyrz,7.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup fine.nib;
+if serifs: pos1(hair,180); pos2(cap_band,90);
+ pos3(max(fine.breadth,curve-stem_corr),0); pos4(vair',270);
+ lft x1r=u; top y2r=h+oo;
+ bot y1=min(vround .7h,bot y2l-eps); rt x3r=hround(w-u);
+ pos7(vair,-90); pos8(vair,-90);
+ pos9(max(fine.breadth,vround 2/3vair),90); pos10(curve,0);
+ x9=.5w-u; x2=x4=.5w-.5u; bot y4r=-oo;
+ rt x10r=w-.5u; lft x8=min(hround 5u,lft x9)-eps;
+ y3=.5[top y7l,bot y2l]; y10=.5[bot y9l,top y4l];
+ top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ pos5(hair,180); lft x5r=hround(.5u);
+ y5=max(good.y(.3bar_height),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ interim superness:=more_super;
+ filldraw stroke z1e{up}
+ ... pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z7e---z8e; % upper bowl
+ %filldraw z8r--z9l--z9r--z8l---cycle; % middle tip
+ % Deactivated due to problems with some
+ % higher device resolutions like ljfive
+ %
+ % Oliver Corff, Ulaanbaatar 1998
+ %
+ filldraw stroke pulled_super_arc.e(9,10)(.5superpull)
+ & pulled_super_arc.e(10,4)(.5superpull)
+ ..z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=1.5curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x1-x2,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: pos1(1.2flare,100); pos2(slab,90);
+ pos3(curve,0); pos4(slab,-90); pos5(flare,-95);
+ rt x1r=hround(1.1u); x2=.5w; x4=.45[x1,x10]; x9=.5w-u;
+ rt x3r=hround w-max(u,2u-.5curve); rt x5r=hround(.9u);
+ top y1r=vround .9h+oo; top y2r=h+oo; y3=.5[y7,y2];
+ bot y4r=-oo; bot y5r=vround .15h-oo; y5l:=good.y y5l; x5l:=good.x x5l;
+ pos7(vair,-90); pos8(vair,-90);
+ pos9(max(fine.breadth,vround 2/3vair),90); pos10(curve,0);
+ rt x10r=hround(w-.75u); lft x8=min(hround 5u,lft x9)-eps;
+ y10=.5[y9,y4]; top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & pulled_arc.e(3,8); % upper bowl
+ filldraw stroke pulled_arc.e(9,10)
+ & super_arc.e(10,4) & term.e(4,5,left,.8,4); fi % lower bowl
+penlabels(1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The cyrillic letter i";
+beginchar(cyri,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround(w-2.5u+.5fudged.stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: y5=h-y6=.12h;
+ else: bot y5l=h-top y6r=0; fi
+x5=rt x2r; x6=lft x3l;
+if hefty: numeric upper_notch,lower_notch,alpha;
+ alpha=if monospace: 100 else: 90 fi;
+ upper_notch=h-notch_cut; lower_notch=notch_cut;
+ penpos5(1.5stem,alpha); penpos6(1.5stem,alpha);
+ x2'=rt x2r; z2'=whatever[z6r,z5r]; x3'=lft x3l; z3'=whatever[z5l,z6l];
+ fill z5l..
+ if y2'<lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'>upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,90); penpos6(whatever,90);
+ z7=z6l-(max(eps,hair-tiny),0) rotated (angle(z5-z6)-90);
+ z5r=z7+whatever*(z5-z6); z6r=z7+whatever*(z5-z6);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower right serif
+penlabels(1,2,2',3,3',4,4',5,6); endchar;
+
+cmchar "The cyrillic letter short_i";
+beginchar(cyrishrt,10u#,if serifs: 1.5x_height#
+ else: 1.4x_height# fi,0);
+italcorr 1.5x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+top y1=top y3=x_height; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround(w-2.5u+.5fudged.stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: y5=x_height-y6=.12x_height;
+ else: bot y5l=x_height-top y6r=0; fi
+x5=rt x2r; x6=lft x3l;
+if hefty: numeric upper_notch,lower_notch,alpha;
+ alpha=if monospace: 100 else: 90 fi;
+ upper_notch=x_height-notch_cut; lower_notch=notch_cut;
+ penpos5(1.5stem,alpha); penpos6(1.5stem,alpha);
+ x2'=rt x2r; z2'=whatever[z6r,z5r]; x3'=lft x3l; z3'=whatever[z5l,z6l];
+ fill z5l..
+ if y2'<lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'>upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,90); penpos6(whatever,90);
+ z6'=z6l-(max(eps,hair-tiny),0) rotated (angle(z5-z6)-90);
+ z5r=z6'+whatever*(z5-z6); z6r=z6'+whatever*(z5-z6);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower left serif
+ if monospace: penpos7(.25vair,-90);
+ else: penpos7(vair,-90); fi
+ penpos8(.7vair,-180); penpos9(.5flare,-180);
+ penpos10(.7vair,0); penpos11(.5flare,0);
+ x7=.5[x8,x10]; bot y7r=.8h;
+ x8=.5w-2u; x10=w-x8; y8=y11=.95h;
+ bulb(7,8,9); % left bulb
+ bulb(7,10,11); % right bulb
+else: pickup fine.nib; penpos7(.75vair,-90);
+ penpos8(.75vair,-180); penpos10(.75vair,0);
+ x7=.5[x8,x10]; y7=.85h;
+ x8r=x1r; x10r=x3l; top y8=top y10=h;
+ filldraw stroke z8e...z7e...z10e;
+fi
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The cyrillic letter ka";
+beginchar(cyrk,9.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.stem,0); pos2(fudged.stem,0);
+lft x1l=lft x2l=hround(2.5u-.5fudged.stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-.75u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.5u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper stem serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower stem serif
+ dish_serif(3,4,e,2/3,right_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter el";
+beginchar(cyrl,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#
+ +.75jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; numeric thin_stem;
+thin_stem=min(1.2hair,stem);
+if serifs: pos1(thin_stem,0); pos12(thin_stem,0);
+else: pos1(hair,0); pos12(hair,0); fi
+pos5(stem,0); pos6(stem,0);
+x1=.33w; top y1=h; x12=x1; y12=.5h;
+rt x5r=rt x6r=hround(w-2.5u+.5stem); top y5=h; bot y6=0;
+filldraw stroke z5e--z6e; % right stem
+if serifs:
+ numeric light_bulb,inner_jut;
+ inner_jut:=.5(x5l-x1r); light_bulb=hround 7/8[hair,flare];
+ pos2(thin_stem,-90); pos3(thin_stem,-180);
+ pos4(light_bulb,-180);
+ bot y2r=-oo; x2=.3[x4,x1];
+ y4=.2h; rt x4l=hround 2u; z4r=z3r;
+ bulb(2,3,4); % bulb
+ filldraw stroke z2e{right}...{up}z12e--z1e; % left stem and arc
+ nodish_serif(1,12,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(5,6,g,1/3,inner_jut,h,1/3,jut); % upper right serif
+ dish_serif(6,5,e,1/3,jut,f,1/3,jut); % lower right serif
+else: pos1'(slab,90); pos5'(slab,90);
+ pos2(hair,-90); pos3(hair,-90);
+ x2=.5u; x3=x2+u; bot y2r=0; bot y3r=-oo;
+ lft x1'=lft x1l; rt x5'=rt x5r; top y1'r=top y5'r=h;
+ filldraw stroke z1'e--z5'e; % upper bar
+ filldraw stroke z2e...z3e{right}...{up}z12e--z1e; % stem and arc
+fi
+penlabels(1,1',2,3,4,5,5',6,7); endchar;
+
+cmchar "The cyrillic letter em";
+beginchar(cyrm,12u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround(w-2.5u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-notch_cut; lower_notch=y6+notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-jut); % upper left serif
+ dish_serif(2,1,b,1/2,jut,c,1/2,jut)(dark); % lower left serif
+ serif(3,4,d,1/3,jut); % upper right serif
+ dish_serif(4,3,e,1/3,jut,f,1/3,jut); fi % lower right serif
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter en";
+beginchar(cyrn,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(bar,90); penpos6(bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); fi % lower left serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter o";
+beginchar(cyro,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter pe";
+beginchar(cyrp,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower left serif
+ inner_jut:=inner_jut+u;
+ nodish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper left serif
+else: pos5(slab,90); pos6(slab,90);
+ lft x5=x1l; rt x6=x3r; y5r=y6r=y3;
+ filldraw stroke z5e--z6e; fi % upper bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter er";
+beginchar(cyrr,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter es";
+beginchar(cyrs,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter te";
+beginchar(cyrt,10u#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+if odd(w-stem): change_width; fi
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter u";
+beginchar(cyru,if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter ef";
+beginchar(cyrf,12u#,x_height#+desc_depth#,desc_depth#);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+if odd(w-stem): change_width; fi
+top y1=h if serifs: +min(oo,serif_drop) fi;
+x1=x2=.5w; bot y2=-d;
+penpos3(cap_band,180);penpos3'(cap_band,0);
+penpos4(cap_band,90); penpos5(curve,0);
+penpos6(.5[vair,cap_band],-90);
+penpos7(.5[vair,cap_band],180); penpos7'(.5[vair,cap_band],0);
+penpos8(cap_band,90); penpos9(curve,180);
+penpos10(.5[vair,cap_band],270);
+x3l=x7l=rt x1r; x3'l=x7'l=lft x1l;
+y4r=y8r=x_height+oo; y5=y9=.5[y4l,y6l];
+x4r=x6r=.5[x1,x5]; x8r=x10r=.5[x9,x1];
+x5r=w-x9r=w-.5u;
+y7=y7'=.25x_height; y3=y3'=x_height-y7; y6r=y10r=-oo;
+filldraw stroke z1e--z2e; % stem
+fill stroke z3e{up}..pulled_arc.e(4,5) & pulled_arc.e(5,6)..{up}z7e;
+fill stroke z3'e{up}..pulled_arc.e(8,9) & pulled_arc.e(9,10)..{up}z7'e; % lobe
+if serifs:
+ sloped_serif.l(1,2,a,1/3,jut,.1h); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,3',4,5,6,7,7',8,9,10); endchar;
+
+cmchar "The cyrillic letter xa";
+beginchar(cyrh,if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The cyrillic letter tse";
+beginchar(cyrc,10u#,x_height#,comma_depth#);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,c,1/3, jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,jut); % lower right serif
+ pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+ x5=.5[x2,x4]; bot y5l=0;
+ rt x6r=tiny.rt x4r+jut; y6=good.y(y5l-.5beak)-eps;
+ arm(5,6,m,1.25beak_darkness,0); % beak
+else: pos2'(slab,90); pos4'(slab,90);
+ pos5(slab,0); pos6(slab,0);
+ lft x2'=lft x2l; rt x4'=rt x5r=rt x6r=w-.5u;
+ bot y2'l=bot y4'l=0; y5=y4; bot y6=-.75d;
+ filldraw stroke z2'e--z4'e; % lower bar
+ filldraw stroke z5e--z6e; % right beak
+fi
+penlabels(1,2,2',3,4,4',5,6); endchar;
+
+cmchar "The cyrillic letter che";
+beginchar(cyrch,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem,0);
+numeric light_vair; light_vair=vair-fine;
+lft x1l=hround(2.5u-.5stem); x1=x2; x3l=w-x1r; x3r=x4r;
+top y1=h; bot y4=0;
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.65h;
+penpos5(light_vair,-90); penpos6(light_vair,0);
+y6=.5h; lft x6l=lft x3l; if rt x6r>rt x3r: x6r:=x3r; fi
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+pickup fine.nib; bot y5r=y6-vair-.05h; x5=.5w;
+filldraw stroke {{interim superness:=hein_super;
+ pulled_super_arc.e(2',5)(.01superpull)}}
+ & z5e{right}...z6e; % arc
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(4,3,g,1/3,jut,h,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter sha";
+beginchar(cyrsh,15u#,x_height#,0);
+italcorr x_height#*slant-.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+pos3(stem',0); pos4(stem',0);
+pos5(stem',0); pos6(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=lft x2l=hround(2.5u-.5stem);
+x3=x4=.5w; x5=x6=w-x1;
+top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
+z3=.5[z1,z5]; z4=.5[z2,z6];
+filldraw stroke z1e--z2e; % right stem
+filldraw stroke z3e--z4e; % middle stem
+filldraw stroke z5e--z6e; % left stem
+if serifs: numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
+ dish_serif(5,6,e,1/3,inner_jut,f,1/3, jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,g,1/3, jut,h,1/3, inner_jut); % lower left serif
+ nodish_serif(4,3,i,1/3,inner_jut, j,1/3,inner_jut); % lower middle serif
+ nodish_serif(6,5,k,1/3,inner_jut, l,1/3,jut); % lower right serif
+else: pos2'(slab,90); pos6'(slab,90);
+ lft x2'=lft x1l; rt x6'=rt x6r; bot y2'l=bot y6'l=0;
+ filldraw stroke z2'e--z6'e; % lower bar
+fi
+penlabels(1,2,2',3,4,5,6,6'); endchar;
+
+
+cmchar "The cyrillic letter shcha";
+beginchar(cyrshch,15u#,x_height#,comma_depth#);
+italcorr x_height#*slant-.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+pos3(stem',0); pos4(stem',0);
+pos5(stem',0); pos6(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=lft x2l=hround (2.25u-.5stem);
+x3=x4=.5w; x5=x6=w-x1;
+top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
+z3=.5[z1,z5]; z4=.5[z2,z6];
+filldraw stroke z1e--z2e; % right stem
+filldraw stroke z3e--z4e; % middle stem
+filldraw stroke z5e--z6e; % left stem
+if serifs:
+ numeric inner_jut;
+ if rt x1r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
+ dish_serif(5,6,e,1/3,inner_jut,f,1/3, jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,g,1/3, jut,h,1/3, inner_jut); % lower left serif
+ nodish_serif(4,3,i,1/3,inner_jut, j,1/3,inner_jut); % lower middle serif
+ nodish_serif(6,5,k,1/3,inner_jut, l,1/3,jut); % lower right serif
+ pickup crisp.nib; pos7(slab,90); pos8(hair,0);
+ x7=.5[x4,x6]; bot y7l=0;
+ rt x8r=tiny.rt x6r+jut; y8=good.y(y7l-.5beak)-eps;
+ arm(7,8,m,1.25beak_darkness,0); % beak
+else: pos2'(slab,90); pos6'(slab,90);
+ pos7(slab,0); pos8(slab,0);
+ lft x2'=lft x1l; rt x6'=rt x7r=rt x8r=w-.5u;
+ bot y2'l=bot y6'l=0; y7=y6; bot y8=-.75d;
+ filldraw stroke z2'e--z6'e; % lower bar
+ filldraw stroke z7e--z8e; % right beak
+fi
+penlabels(1,2,2',3,4,5,6,6',7,8); endchar;
+
+cmchar "The cyrillic letter hard_sign";
+beginchar(cyrhrdsn,10.5u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(4u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-.5u); x8l:=x8l-.5u;
+if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-u];
+else: right_curve=curve-3stem_corr; x6=.5[x1,w-1.2u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+pickup crisp.nib; pos3(slab,90); pos4(hair,180);
+top y3r=h; x3=x1; lft x4r=hround(.5u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,-.7beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,0,jut,b,1/3,jut); % upper serif
+nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter yeru";
+beginchar(cyrery,13u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+pos3(stem,0); pos4(stem,0); x3=x4=w-x1; top y3=h; bot y4=0;
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6ltop
+:=x6-.25u; x8l:=x8l-.5u;
+x7r=if serifs: tiny.lft x3l-jut; else: 8.5u; fi
+if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-4.5u];
+else: right_curve=curve-3stem_corr; x6=.5[x1,w-5.2u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+filldraw stroke z3e--z4e; % right stem
+if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper left serif
+nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); % lower left serif
+dish_serif(3,4,e,1/3,1.05jut,f,1/3,1.05jut); % upper right serif
+dish_serif(4,3,g,1/3,1.05jut,h,1/3,1.05jut); fi % lower right serif
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter soft_sign";
+beginchar(cyrsftsn,9u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround(2.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-.5u); x8l:=x8l-.5u;
+if serifs: right_curve=curve-stem_corr; x6=.5[x1,w-u];
+else: right_curve=curve-3stem_corr; x6=.5[x1,w-1.2u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+nodish_serif(2,1,c,1/3,jut,d,1/3,.5jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter e";
+beginchar(cyrerev,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib;
+pos2(cap_band,90); pos4(vair',270); pos3(curve,0);
+x2=x4=.5(w-u); top y2r=h+oo; bot y4r=-oo;
+rt x3r=w-hround min(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,180);
+ lft x1r=u; bot y1=min(vround .7h,bot y2l-eps);
+ pos5(hair,180); lft x5r=hround(.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ filldraw stroke z1e{up}
+ ..pulled_super_arc.e(2,3)(superpull)%(.7superpull)
+ & pulled_super_arc.e(3,4)(superpull)%(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=1.5curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x1-x2,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: pos1(4/7[vair',flare],110);
+ lft x1r=hround(.6u);
+ top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ pos5(.6[vair',flare],265); lft x5r=hround(.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e<105:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 105}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.7superpull) & p.e; fi % arc and lower terminal
+penpos7(bar,90); penpos8(bar,90);
+x7=lft x3l; x8=.5w-1.5u;
+y7=y8=.5h;
+fill stroke z7e--z8e; % bar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The cyrillic letter yu";
+beginchar(cyryu,13.5u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+jut#-2.5u#+min(.5stem#,u#);
+adjust_fit(serif_fit#,if monospace: .5u# else: 0 fi);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(2.5u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+penpos5(vair,90); penpos7(vair',-90);
+penpos6(curve,180); penpos8(curve,0);
+x5=x7=.5[x6,x8]; y5r=h+oo; y7r=-oo;
+x8r=hround(w-.5u); x6r=hround(w-8.5u);
+y6=y8=.5h-vair_corr; y6l:=y8l:=.52h;
+penstroke pulled_arc.e(5,6) & pulled_arc.e(6,7)
+ & pulled_arc.e(7,8) & pulled_arc.e(8,5) & cycle; % bowl
+penpos3(bar,90); penpos4(bar,90); x3=x1; x4=x6; y3=y4=.52h;
+fill stroke z3e--z4e; % bar
+if serifs: numeric inner_jut; inner_jut=jut;
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,jut,d,1/3,inner_jut); fi % lower left serif
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter ya";
+beginchar(cyrya,8u#+.5max(2u#,curve#),x_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=rt x2r=w-hround(2.5u-.5stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(curve if hefty:-3stem_corr fi,180);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7; x7=x2; y7=.5h; x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround(1.5u);
+else: x4=.5w-.5u; x5r=hround(.75u); fi
+x4l:=x6l:=x4+.125curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+pos6'(curve,0); pos8(curve,0); x6'r=x6l; y6'=y6;
+tiny.lft x8l=.5u+.5jut; bot y8=0;
+filldraw stroke z6'e--z8e; % diagonal stem
+if serifs: numeric inner_jut;
+ if rt x8r+u+1<=lft x2l-jut: inner_jut=jut;
+ else: lft x2l-u-1=rt x8r+inner_jut; fi
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,jut); % upper serif
+ dish_serif(2,1,c,1/3,inner_jut,d,1/3,jut); % lower serif
+ serif(8,6',e,1/3,-.5jut); fi % lower diagonal serif
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/mcyrligs.mf b/Master/texmf-dist/fonts/source/public/montex/mcyrligs.mf
new file mode 100644
index 00000000000..c31b2db0775
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mcyrligs.mf
@@ -0,0 +1,38 @@
+% File: mcyrligs.mf
+% Author: Oliver Corff
+% Date: June 1998, Ulaanbaatar
+%
+% These ligatures are always active:
+% Creates xagas i, yo, yu, ya ligatures:
+ligtable cyrery: cyri =: cyrishrt,
+ cyro =: cyryo,
+ cyru =: cyryu,
+ cyra =: cyrya;
+
+% Creates XAGAS I, YO, YU, YA ligatures:
+ligtable CYRERY: CYRI =: CYRISHRT,
+ CYRO =: CYRYO,
+ cyro =: CYRYO,
+ CYRU =: CYRYU,
+ cyru =: CYRYU,
+ CYRA =: CYRYA,
+ cyra =: CYRYA;
+
+% Creates the front vowels as ligatures:
+ligtable oct"42": CYRA =: CYREREV,
+ CYRE=: CYRYO,
+ CYRI =: CYRISHRT,
+ CYRO =: CYROTLD,
+ CYRU =: CYRY,
+
+ cyra =: cyrerev,
+ cyre=: cyryo,
+ cyri =: cyrishrt,
+ cyro =: cyrotld,
+ cyru =: cyry;
+
+% Creates the Sh and ShCh consonants as ligatures:
+% ligtable CYRS: CYRSHHA =: CYRSH;
+ligtable cyrs: cyrshha =: cyrsh;
+ligtable CYRCH: CYRSHHA =: CYRSHCH;
+ligtable cyrch: cyrshha =: cyrshch;
diff --git a/Master/texmf-dist/fonts/source/public/montex/mcyrsymb.mf b/Master/texmf-dist/fonts/source/public/montex/mcyrsymb.mf
new file mode 100644
index 00000000000..c3a959945f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mcyrsymb.mf
@@ -0,0 +1,171 @@
+% File: mcyrsymb.mf
+% Based on: cyrsymb.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar,
+% December 1998, Beijing, Shenyang, Berlin
+%
+if ligs>0:
+ ligtable "<": "<" =: guillemotleft;
+ ligtable ">": ">" =: guillemotright;
+fi;
+
+cmchar "Less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar("<",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(">",14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "open cyrillic quote (looks like <<)";
+beginchar(guillemotleft,10u#,x_height#,0);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x2=hround u-epsilon; x1=x3=.55w;
+y1=h; y3=0; y2=.5[y1,y3];
+draw z1--z2--z3; % left diagonals
+x4=w-x2; y4=.9[y3,y1]; y6=.1[y3,y1];
+x5-x2=x6-x3=x4-x1; y5=y2;
+draw z4--z5--z6; % right diagonals
+z2'=z2; x2':=x2-.625rule_thickness;
+z5'=z5; x5':=x5+.625rule_thickness;
+draw z1--z2'--z3; % left diagonals
+draw z4--z5'--z6; % right diagonals
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "close cyrillic quote (looks like >>)";
+beginchar(guillemotright,10u#,x_height#,0);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup rule.nib;
+lft x2=.55w; x1=x3=hround u-epsilon;
+y1=.9h; y3=.1h; y2=.5[y1,y3];
+y4=h; y6=0; y5=.5[y4,y6];
+draw z1--z2--z3; % left diagonals
+x4=w-x2;
+x5-x2=x6-x3=x4-x1;
+draw z4--z5--z6; % right diagonals
+z2'=z2; x2':=x2-.625rule_thickness;
+z5'=z5; x5':=x5+.625rule_thickness;
+draw z1--z2'--z3; % left diagonals
+draw z4--z5'--z6; % right diagonals
+labels(1,2,3,4,5,6);
+endchar;
+
+cmchar "The number mark";
+beginchar(CYRNo,17u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem,letter_w,light_bulb; letter_w=14u;
+thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+top y1=h; bot y4=0;
+if serifs: top y3=h-bot y2=.9h; else: top y3=h; bot y2=0; fi
+x1=x2; x3=x4; x1l=letter_w-x3r;
+rt x3r=hround min(letter_w-3u,letter_w-4u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: serif(5,6,a,1/3,-cap_jut); % upper left serif
+ light_bulb=hround 7/8[cap_hair,flare];
+ z2'r=(tiny.rt x2r,y2); z2'l=(tiny.lft x2l,y2);
+ z3'l=(tiny.rt x3r,y3); z3'r=(tiny.lft x3l,y3);
+ penpos8(vair,-90); penpos9(cap_hair,-180); penpos10(light_bulb,-180);
+ penpos11(vair,90); penpos12(cap_hair,0); penpos13(light_bulb,0);
+ x8=x1-1.25u; x11=letter_w-x8;
+ x10r=hround .5u; x13r=hround(letter_w-.5u);
+ if monospace: y10=u; y11=h-y8=h;
+ else: y10=2u-min(.5light_bulb,.5u); top y11r=h+o; bot y8r=-o; fi
+ y13=h-y10;
+ fill stroke z2'e{down}...{left}z8e;
+ fill stroke z3'e{up}...{right}z11e; % upper and lower arcs
+ clearpen;
+ bulb(8,9,10); bulb(11,12,13); fi % upper and lower bulbs
+numeric thick_hair; thick_hair=max(hair,.75stem);
+penpos14(vair,90); penpos16(vair,-90);
+penpos15(thick_hair,180); penpos17(thick_hair,0);
+interim superness:=sqrt(more_super*hein_super);
+if monospace: x15=hround(w-4.5u); rt x17r=hround(w-.5u);
+ else: x15=hround(w-4u); rt x17r=hround(w-.5u); fi
+x14=x16=.5[x15,x17]; y14r=h-y16r=.7h; y15=y17=.5[y14,y16];
+if x17l<=x15l+10: x15l:=x15r+vair; x17l:=x17r-vair; fi
+penstroke pulled_arc.e(14,15) & pulled_arc.e(15,16)
+ & pulled_arc.e(16,17) & pulled_arc.e(17,14) & cycle; % bowl
+pickup crisp.nib; pos18(thick_hair,90); pos19(thick_hair,90);
+bot y18l=bot y19l=.075h; rt x19=x17r; lft x18=x15r;
+filldraw stroke z18e--z19e; % bar
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,1',2,3,4,4',5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+endchar;
+
+cmchar "The Mongolian Currency symbol TOGROG";
+beginchar(CYR_TOGROG,13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#);
+z11=(x5,2/4y5); z12=(x4,3/4y4); % define upper bar edges
+z13=(x5,1/4y5); z14=(x4,2/4y4); % define lower bar edges
+pos11(bar,90); pos12(bar,90); % define upper bar width
+pos13(bar,90); pos14(bar,90); % define lower bar width
+filldraw stroke z11e--z12e; % draw upper bar
+filldraw stroke z13e--z14e; % draw lower bar
+penlabels(1,2,3,4,5,6,11,12,13,14); endchar;
+
+cmchar "The Mongolian Currency symbol togrog";
+beginchar(CYR_togrog,10u#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+if odd(w-stem): change_width; fi
+lft x1l=lft x2l=hround(.5w-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-.6beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414jut,d,1/3,1.414jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5jut,b,1/3,.5jut); fi % upper bracketing
+z11=(x5,2/4y5); z12=(x4,3/4y4); % define upper bar edges
+z13=(x5,1/4y5); z14=(x4,2/4y4); % define lower bar edges
+pos11(bar,90); pos12(bar,90); % define upper bar width
+pos13(bar,90); pos14(bar,90); % define lower bar width
+filldraw stroke z11e--z12e; % draw upper bar
+filldraw stroke z13e--z14e; % draw lower bar
+penlabels(1,2,3,4,5,11,12,13,14); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/montex/mcyru.mf b/Master/texmf-dist/fonts/source/public/montex/mcyru.mf
new file mode 100644
index 00000000000..ac78da4c201
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mcyru.mf
@@ -0,0 +1,1041 @@
+% File: mcyru.mf
+% Based on: cyru.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+% The De was modified (thin_stem:=epsilon if thin_stem<0)
+%
+cmchar "The cyrillic letter A";
+beginchar(CYRA,13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter BE";
+beginchar(CYRB,12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve;
+left_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x8=x6; x5=x1; x6l:=x6-.25u; x7r=hround(w-u); x8l:=x8l-.5u;
+if serifs: right_curve=cap_curve-stem_corr; x6=.5[x1,w-1.8u];
+else: right_curve=cap_curve-3stem_corr; x6=.5[x1,w-1.5u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-2u); y4=good.y(y3l-.8beak)-eps;
+arm(3,4,e,beak_darkness,.9beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter VE";
+beginchar(CYRV,12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "The cyrillic letter GHE";
+beginchar(CYRG,11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter DE";
+beginchar(CYRD,13u#,cap_height#,comma_depth#);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; numeric thin_stem;
+thin_stem=if monospace: cap_stem-tiny
+ else: min(cap_hair,cap_stem-1.5tiny) fi;
+if thin_stem<0: thin_stem:=epsilon fi;
+if serifs: penpos1(thin_stem,0); penpos2(thin_stem,0); %
+ %
+ % changed due to error with kmvtt10.mf
+ % see also mcyrl.mf
+ %
+ % O. Corff, June 1st, 1998, Ulaanbaatar
+ %
+penpos0(thin_stem,0); x2=.5[hround .5u,x1];
+else: penpos1(thin_stem,0); penpos2(thin_stem,0);
+penpos0(thin_stem,0); x2=.5u+cap_stem; fi
+pos3(cap_stem,0); pos4(cap_stem,0);
+x1l=x0l=.33w; top y1=h; y0=.75h; bot y2=0;
+rt x3r=rt x4r=hround(w-2u); top y3=h; bot y4=0;
+filldraw stroke z3e--z4e;
+filldraw stroke z1e--z0e{down}..z2e; % stem and arc
+if serifs: pickup crisp.nib; numeric inner_jut, newbracket;
+ newbracket:=max(1.5,bracket); inner_jut:=.5(x3l-x1r);
+ path p[]; p1=z1{down}...z2;
+ p12=(0,y1-newbracket)--(w,y1-newbracket);
+ p21=(0,y2+newbracket)--(w,y2+newbracket);
+ z12=p1 intersectionpoint p12; z21=p1 intersectionpoint p21;
+ nodish_serif(1,12,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,c,1/3,inner_jut,d,1/3,cap_jut); % upper right serif
+ inner_jut:=.5(x4l-x2r);
+ nodish_serif(2,21,e,1/3,cap_jut,f,1/3,inner_jut); % middle left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % middle right serif
+ pickup crisp.nib;
+ pos5(slab,90); pos6(cap_hair,180); pos7(cap_hair,0);
+ x5=.5[x2,x4]; bot y5l=0;
+ rt x7r=tiny.rt x4r+cap_jut; lft x6r=tiny.lft x2l-cap_jut;
+ y6=y7=good.y(y5l-.5beak)-eps;
+ arm(5,6,m,1.25beak_darkness,0); % left beak
+ arm(5,7,n,1.25beak_darkness,0); % right beak
+else:
+ pos1'(slab,90); pos3'(slab,90);
+ pos6(slab,90); pos7(slab,90);
+ pos6'(stem,0); pos7'(stem,0);
+ pos8(stem,0); pos9(stem,0);
+ lft x1'=lft x1l; rt x3'=rt x3r; top y1'r=top y3'r=h;
+ lft x6=lft x6'l=lft x8l=.5u; rt x7=rt x7'r=rt x9r=w-.5u;
+ bot y6l=bot y7l=0; y6'=y7'=y6; bot y8=bot y9=-.8d;
+ filldraw stroke z1'e--z3'e; % upper bar
+ filldraw stroke z6e--z7e; % lower bar
+ filldraw stroke z6'e--z8e; % left beak
+ filldraw stroke z7'e--z9e; % right beak
+fi
+math_fit(0,.5ic#-.5u#);
+penlabels(0,1,1',2,3,3',4,5,6,7,8,9,12,21); endchar;
+
+cmchar "The cyrillic letter IE";
+beginchar(CYRE,12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter YE";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(CYRYO,12u#-width_adj#,1.3cap_height#,0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric letter_h; letter_h=cap_height;
+letter_h:=vround(letter_h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=letter_h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=letter_h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pos10(dot_diam,0); pos11(dot_diam,90);
+x10=x11=3.5u; top y11r=h+1;
+if bot y11l<letter_h+o+slab: y11l:=min(y11r-eps,letter_h+o+slab+.5tiny); fi
+y10=.5[y11l,y11r]; dot(10,11); % left dot
+pos12(dot_diam,0); penpos13(y11r-y11l,90); y12=y13=y10; x12=x13=w-x10;
+dot(12,13); % right dot
+math_fit(0,.5ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "The cyrillic letter ZHE";
+beginchar(CYRZH,21u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+x1=x2=.5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+rt x3r=w-lft x7l=hround(r-letter_fit-u-right_jut);
+rt x6r=w-lft x9l=hround(r-letter_fit-.75u-right_jut);
+top y3=top y7=h; bot y6=bot y9=0; x4=x4'=x1; y4=y4'=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+penpos7(alpha1*(stem1-tiny),0);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0); penpos9(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=y7'$=h; y6'$=y9'$=0;
+ z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4];
+ x8$=w-x5$; y8$=y5$; endfor
+z5=.5[z5l,z5r]; z8=.5[z8l,z8r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+x7'r=w-x3'r; x7'l=w-x3'l; x9'r=w-x6'r; x9'l=w-x6'l;
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % right upper diagonal
+fill z4r--diag_end(4r,7'r,1,.5,7'l,4l)--z4l--cycle; % left upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % right lower diagonal
+fill z8l--diag_end(8l,9'l,.5,1,9'r,8r)--z8r--cycle; % left lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark); % lower diagonal serif
+ dish_serif(7,4,i,1/2,right_jut,j,2/3,1.2cap_jut)(dark); % upper diagonal seri
+ dish_serif(9,8,k,1/3,right_jut,l,1/2,inner_jut)(dark);fi % lower diagonal seri
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter ZE";
+beginchar(CYRZ,11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);pickup fine.nib;
+if serifs: pos1(cap_hair,180); pos2(cap_band,90);
+ pos3(max(fine.breadth,cap_curve-stem_corr),0); pos4(vair',270);
+ lft x1r=1.5u; top y2r=h+o;
+ bot y1=min(vround .7h,bot y2l-eps); rt x3r=hround(w-u);
+ pos7(cap_bar,-90); pos8(cap_bar,-90);
+ pos9(max(fine.breadth,vround 2/3cap_bar),90); pos10(cap_curve,0);
+ x9=.5w-.75u; x2=x4=.5w; bot y4r=-o;
+ rt x10r=w-.5u; lft x8=min(hround 5u,lft x9)-eps;
+ y3=.5[top y7l,bot y2l]; y10=.5[bot y9l,top y4l];
+ top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ pos5(cap_hair,180); lft x5r=hround(u);
+ y5=max(good.y(.6bar_height),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=max(x,x4l-.5u);
+ interim superness:=more_super;
+ filldraw stroke z1e{up}
+ ... pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z7e---z8e; % upper bowl
+% filldraw z8r--z9l--z9r--z8l---cycle; % middle tip
+ filldraw stroke pulled_super_arc.e(9,10)(.5superpull)
+ & pulled_super_arc.e(10,4)(.5superpull)
+ ..z5e; % arc and lower terminal
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=1.5cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x1-x2,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: pos1(1.2flare,100); pos2(slab,90);
+ pos3(cap_curve,0); pos4(slab,-90); pos5(flare,-95);
+ rt x1r=hround(1.1u); x2=.5w; x4=.45[x1,x10]; x9=.5w-u;
+ rt x3r=hround w-max(u,2u-.5cap_curve); rt x5r=hround(.9u);
+ top y1r=vround .9h+o; top y2r=h+o; y3=.5[y7,y2];
+ bot y4r=-o; bot y5r=vround .15h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ pos7(vair,-90); pos8(vair,-90);
+ pos9(max(fine.breadth,vround 2/3vair),90); pos10(cap_curve,0);
+ rt x10r=hround(w-.75u); lft x8=min(hround 5u,lft x9)-eps;
+ y10=.5[y9,y4]; top y8l=vround(.54h+.5vair); y8r=y9l;
+ x7=1/3[x8,x3l]; z7=z8+whatever*(150u,h);
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & pulled_arc.e(3,8); % upper bowl
+ filldraw stroke pulled_arc.e(9,10)
+ & super_arc.e(10,4) & term.e(4,5,left,.8,4); fi % lower bowl
+penlabels(1,1',2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The cyrillic letter I";
+beginchar(CYRI,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: y5=h-y6=.1h;
+ else: bot y5l=h-top y6r=0; fi
+x5=rt x2r; x6=lft x3l;
+if hefty: numeric upper_notch,lower_notch,alpha;
+ alpha=if monospace: 100 else: 90 fi;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ penpos5(1.5cap_stem,alpha); penpos6(1.5cap_stem,alpha);
+ x2'=rt x2r; z2'=whatever[z6r,z5r]; x3'=lft x3l; z3'=whatever[z5l,z6l];
+ fill z5l..
+ if y2'<lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'>upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,90); penpos6(whatever,90);
+ z7=z6l-(cap_hair,0) rotated (angle(z5-z6)-90);
+ z5r=z7+whatever*(z5-z6); z6r=z7+whatever*(z5-z6);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,2,2',3,3',4,5,6,7); endchar;
+
+cmchar "The cyrillic letter SHORT I";
+beginchar(CYRISHRT,13u#+width_adj#,1.3cap_height#,0);
+italcorr 1.3cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos3(cap_stem',0); pos4(cap_stem',0);
+pickup tiny.nib; top y1=top y3=cap_height; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: y5=cap_height-y6=.12cap_height;
+ else: bot y5l=cap_height-top y6r=0; fi
+x5=rt x2r; x6=lft x3l;
+if hefty: numeric upper_notch,lower_notch,alpha;
+ alpha=if monospace: 100 else: 90 fi;
+ upper_notch=cap_height-cap_notch_cut; lower_notch=cap_notch_cut;
+ penpos5(1.5cap_stem,alpha); penpos6(1.5cap_stem,alpha);
+ x2'=rt x2r; z2'=whatever[z6r,z5r]; x3'=lft x3l; z3'=whatever[z5l,z6l];
+ fill z5l..
+ if y2'<lower_notch: {right}(x2'+1,lower_notch){up}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y3'>upper_notch: {left}(x3'-1,upper_notch){down}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,90); penpos6(whatever,90);
+ z6'=z6l-(cap_hair,0) rotated (angle(z5-z6)-90);
+ z5r=z6'+whatever*(z5-z6); z6r=z6'+whatever*(z5-z6);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+ if monospace: penpos7(.25vair,-90);
+ else: penpos7(vair,-90); fi
+ penpos8(.7vair,-180); penpos9(.75flare,-180);
+ penpos10(.7vair,0); penpos11(.75flare,0);
+ x7=.5[x8,x10]; bot y7r=.85h;
+ x8=.5w-2u; x10=w-x8; y8=y11=.95h;
+ bulb(7,8,9); % left bulb
+ bulb(7,10,11); % right bulb
+else: pickup fine.nib; penpos7(.75vair,-90);
+ penpos8(.75vair,-180); penpos10(.75vair,0);
+ x7=.5[x8,x10]; y7=.9h;
+ x8r=x1r; x10r=x3l; top y8=top y10=h;
+ filldraw stroke z8e...z7e...z10e;
+fi
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(1,2,2',3,3',4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The cyrillic letter KA";
+beginchar(CYRK,13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter EL";
+beginchar(CYRL,13u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; numeric thin_stem;
+thin_stem=min(1.5cap_hair,cap_stem);
+if serifs: pos1(thin_stem,0); pos12(thin_stem,0);
+else: pos1(cap_hair,0); pos12(cap_hair,0); fi
+pos5(cap_stem,0); pos6(cap_stem,0);
+x1=.33w; top y1=h; x12=x1; y12=.5h;
+rt x5r=rt x6r=hround(w-3u+.5cap_stem); top y5=h; bot y6=0;
+filldraw stroke z5e--z6e; % right stem
+if serifs: numeric inner_jut;
+ inner_jut:=.5(x5l-x1r);
+ pos2(thin_stem,-90); pos3(thin_stem,-180);
+ pos4(1.2flare,-180);
+ bot y2r=-o; x2=.38[x4,x1]; y4=.15h; rt x4l=hround 2.5u; z4r=z3r;
+ bulb(2,3,4); % bulb
+ filldraw stroke z2e{right}...{up}z12e--z1e; % left stem and arc
+ nodish_serif(1,12,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(5,6,g,1/3,inner_jut,h,1/3,cap_jut); % upper right serif
+ dish_serif(6,5,e,1/3,cap_jut,f,1/3,cap_jut); % lower right serif
+else: pos1'(slab,90); pos5'(slab,90);
+ pos2(cap_hair,-90); pos3(cap_hair,-90);
+ x2=.5u; x3=x2+u; bot y2r=0; bot y3r=-o;
+ lft x1'=lft x1l; rt x5'=rt x5r; top y1'r=top y5'r=h;
+ filldraw stroke z1'e--z5'e; % upper bar
+ filldraw stroke z2e...z3e{right}...{up}z12e--z1e; % stem and arc
+fi
+math_fit(0,.5ic#-.5u#);
+penlabels(1,1',2,3,4,5,5',6,7); endchar;
+
+cmchar "The cyrillic letter EM";
+beginchar(CYRM,16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+
+cmchar "The cyrillic letter EN";
+beginchar(CYRN,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs:
+ numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter O";
+beginchar(CYRO,14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The cyrillic letter PE";
+beginchar(CYRP,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower left serif
+ inner_jut:=inner_jut+2u;
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ nodish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+else: pos5(slab,90); pos6(slab,90);
+ lft x5=x1l; rt x6=x3r; y5r=y6r=y3;
+ filldraw stroke z5e--z6e; fi % upper bar
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter ER";
+beginchar(CYRR,12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The cyrillic letter ES";
+if serifs: beginchar(CYRS,13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(CYRS,11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); fi % arc and terminals
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter TE";
+beginchar(CYRT,13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter U";
+beginchar(CYRU,13u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.cap_stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else: .5[vair,bot_stem] fi);
+outer_jut=.75cap_jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=3.5u; x2l=x3l;
+numeric alpha,alpha[]; x9=5u; y9=bot_vair-o;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+penpos5(alpha*right_stem,0); z5r=whatever[z3r,z4r]; y5=.5[y3,y9];
+if serifs: numeric light_bulb;
+ light_bulb=hround 7/8[cap_hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(cap_hair,-180); penpos8(light_bulb,-180);
+ x6=4u; y6r=-o; y8+.5light_bulb=3u; x8r=hround 1.5u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(right_stem,-90); x6=4.75u; y6r=-o;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(right_stem,-90); z6'=z6;
+ pos7(2/3[bot_stem,flare],-85);
+ lft x7l=hround 3.5u; bot y7r=.02h-o; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter EF";
+beginchar(CYRF,14u#-width_adj#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+x1=x2=.5w; top y1=h; bot y2=0;
+penpos3(cap_band,90); penpos4(cap_band,90); penpos5(curve,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+penpos8(cap_band,90); penpos9(curve,180);
+penpos10(.5[vair,cap_band],270);
+x3=x1; y3=y4=y8=vround .8h; y5=y9=.5[y4l,y6l];
+x7=x2; y7=vround .2h; x4r=x6r=w-x8r=w-x10r=.5w+1.75u;
+x5r=w-x9r=hround(w-.5u); y6=y10=y7;
+filldraw stroke z1e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e;
+fill stroke z3e..pulled_arc.e(8,9) & pulled_arc.e(9,10)..z7e; % lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The cyrillic letter XA";
+beginchar(CYRH,13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "The cyrillic letter TSE";
+beginchar(CYRC,13u#+width_adj#,cap_height#,comma_depth#);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,c,1/3, cap_jut,d,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); % lower right serif
+ pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+ x5=.5[x2,x4]; bot y5l=0;
+ rt x6r=tiny.rt x4r+cap_jut; y6=good.y(y5l-.75beak)-eps;
+ arm(5,6,m,1.25beak_darkness,0); % beak
+else: pos2'(slab,90); pos4'(slab,90);
+ pos5(stem,0); pos6(stem,0);
+ lft x2'=lft x2l; rt x4'=rt x5r=rt x6r=w-.5u;
+ bot y2'l=bot y4'l=0; y5=y4; bot y6=-.8d;
+ filldraw stroke z2'e--z4'e; % lower bar
+ filldraw stroke z5e--z6e; % right beak
+fi
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter CHE";
+beginchar(CYRCH,13u#,cap_height#,0); % [AS]
+italcorr cap_height#*slant-serif_fit#+.5cap_stem#-2u#;
+adjust_fit(cap_serif_fit#+stem_shift#,cap_serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=hround(2.5u-.5cap_stem); x1=x2; x3l=w-x1r; x3r=x4r;
+top y1=h; bot y4=0;
+penpos2'(cap_stem-fine,-180); z2'=z2; y3=y1; y2=.65h;
+if monospace: penpos5(.5vair,-90); penpos6(.5vair,-90);
+else: penpos5(vair,-90); penpos6(vair,-25); fi
+y6=.52h; lft x6l=lft x3l;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+pickup fine.nib; bot y5r=y6-vair-.1h; x5=.5w;
+filldraw stroke {{interim superness:=hein_super;
+ pulled_super_arc.e(2',5)(.01superpull)}}
+ & z5e{right}...z6e; % arc
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,jut); % upper right serif
+ dish_serif(4,3,g,1/3,jut,h,1/3,jut); fi % lower right serif
+penlabels(1,2,2',3,4,5,6); endchar;
+
+cmchar "The cyrillic letter SHA";
+beginchar(CYRSH,18u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos3(cap_stem',0); pos4(cap_stem',0);
+pos5(cap_stem',0); pos6(cap_stem',0);
+if odd(w-cap_stem'): change_width; fi
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem);
+x3=x4=.5w; x5=x6=w-x1;
+top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
+filldraw stroke z1e--z2e; % right stem
+filldraw stroke z3e--z4e; % middle stem
+filldraw stroke z5e--z6e; % left stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
+ dish_serif(5,6,e,1/3,inner_jut,f,1/3, cap_jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,g,1/3,cap_jut,h,1/3,inner_jut); % lower left serif
+ nodish_serif(4,3,i,1/3,inner_jut,j,1/3,inner_jut); % lower middle serif
+ nodish_serif(6,5,k,1/3,inner_jut,l,1/3,cap_jut); % lower right serif
+else: pos2'(slab,90); pos6'(slab,90);
+ lft x2'=lft x1l; rt x6'=rt x6r; bot y2'l=bot y6'l=0;
+ filldraw stroke z2'e--z6'e; % lower bar
+fi
+math_fit(0,.5ic#); penlabels(1,2,2',3,4,5,6,6'); endchar;
+
+cmchar "The cyrillic letter SHCHA";
+beginchar(CYRSHCH,18u#,cap_height#,comma_depth#);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+pos3(cap_stem',0); pos4(cap_stem',0);
+pos5(cap_stem',0); pos6(cap_stem',0);
+if odd(w-cap_stem'): change_width; fi
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem);
+x3=x4=.5w; x5=x6=w-x1;
+top y1=top y5=top y3=h; bot y2=bot y6=bot y4=0;
+filldraw stroke z1e--z2e; % right stem
+filldraw stroke z3e--z4e; % middle stem
+filldraw stroke z5e--z6e; % left stem
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3, cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(3,4,c,1/3,inner_jut,d,1/3,inner_jut); % upper middle serif
+ dish_serif(5,6,e,1/3,inner_jut,f,1/3, cap_jut); % upper right serif
+ inner_jut:=.5(x3l-x1r);
+ nodish_serif(2,1,g,1/3, cap_jut,h,1/3, inner_jut); % lower left serif
+ nodish_serif(4,3,i,1/3,inner_jut, j,1/3,inner_jut); % lower middle serif
+ nodish_serif(6,5,k,1/3,inner_jut, l,1/3, cap_jut); % lower right serif
+ pickup crisp.nib; pos7(slab,90); pos8(hair,0);
+ x7=.5[x4,x6]; bot y7l=0;
+ rt x8r=tiny.rt x6r+cap_jut; y8=good.y(y7l-.75beak)-eps;
+ arm(7,8,m,1.25beak_darkness,0); % beak
+else: pos2'(slab,90); pos6'(slab,90);
+ pos7(stem,0); pos8(stem,0);
+ lft x2'=lft x1l; rt x6'=rt x7r=rt x8r=w-.5u;
+ bot y2'l=bot y6'l=0; y7=y6; bot y8=-.8d;
+ filldraw stroke z2'e--z6'e; % lower bar
+ filldraw stroke z7e--z8e; % right beak
+fi
+math_fit(0,.5ic#); penlabels(1,2,2',3,4,5,6,6',7,8); endchar;
+
+cmchar "The cyrillic letter HARD_SIGN";
+beginchar(CYRHRDSN,16u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(5.5u,6.5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x8=x6; x5=x1; x6l:=x6-.25u; x7r=hround(w-u); x8l:=x8l-.5u;
+if serifs: right_curve=cap_curve-stem_corr; x6=.5[x1,w-1.8u];
+else: right_curve=cap_curve-3stem_corr; x6=.5[x1,w-1.5u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+pickup crisp.nib; pos3(slab,90); pos4(cap_hair,180);
+top y3r=h; x3=x1; lft x4r=hround(.5u); y4=good.y(y3l-.75beak)-eps;
+arm(3,4,e,beak_darkness,-.7beak_jut); % upper arm and beak
+if serifs: nodish_serif(1,2,a,0,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter YERU";
+beginchar(CYRERY,17.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+pos3(cap_stem,0); pos4(cap_stem,0);
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+x3=x4=w-x1; top y3=h; bot y4=0;
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x8l:=x8l-.5u;
+rt x7r=if serifs: tiny.lft x3l-cap_jut; else: 11.5u; fi
+if serifs: right_curve=cap_curve-stem_corr; x6=.5[x1,w-6.8u];
+else: right_curve=cap_curve-3stem_corr; x6=.5[x1,w-7.5u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+filldraw stroke z3e--z4e; % right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper left serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); % lower left serif
+ dish_serif(3,4,e,1/3,1.05cap_jut,f,1/3,1.05cap_jut); % upper right serif
+ dish_serif(4,3,g,1/3,1.05cap_jut,h,1/3,1.05cap_jut); fi % lower right serif
+labels(1,2,3,4,5,6,7,8,9);
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter SOFT_SIGN";
+beginchar(CYRSFTSN,12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos5(cap_band,90); penpos6(cap_band,90); penpos7(right_curve,0);
+penpos8(cap_band,-90); penpos9(cap_band,-90);
+z9r=bot z2; y8=y9; y7=.5[y8,y6]; y5=y6=.52h;
+x6=x8; x5=x1; x6l:=x6-.25u; x7r=hround(w-u); x8l:=x8l-.5u;
+if serifs: right_curve=cap_curve-stem_corr; x6=.5[x1,w-1.8u];
+else: right_curve=cap_curve-3stem_corr; x6=.5[x1,w-1.5u];
+x6l:=x6l-.5u; fi
+fill stroke z5e..super_arc.e(6,7) & super_arc.e(7,8)..z9e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The cyrillic letter E";
+if serifs: beginchar(CYREREV,13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,180); pos2(cap_band,90);
+ pos3(cap_curve,0); pos4(cap_band,270); pos5(hair,180);
+ lft x1r=lft x5r=hround u; rt x3r=hround (w-u); x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=max(x2l',x2l-.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=max(x4l',x4l-.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],180); x6r=x1r; top y6=h+o;
+ x1'-x1r=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{right};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+else: beginchar(CYREREV,11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,110); pos2(slab,90);
+ pos3(cap_curve,0); pos4(slab,270); pos5(flare,265);
+ lft x1r=hround 1.1u; x2=x4=.5w-1.25u;
+ rt x3r=w-hround max(u,2u-.5cap_curve); lft x5r=hround .9u;
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,left,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,left,.8,4); fi % arc and terminals
+penpos7(cap_bar,90); penpos8(cap_bar,90);
+x7=lft x3l; x8=.5w-1.5u;
+%if serifs: y7l=y8l else:
+y7=y8=.5h;
+fill stroke z7e--z8e; % bar
+math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+penlabels(1,1',2,3,4,5,6); endchar;
+
+cmchar "The cyrillic letter YU";
+beginchar(CYRYU,20u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % left stem
+penpos5(vair',90); penpos7(vround(vair+1.5vair_corr),-90);
+penpos6(cap_curve,180); penpos8(cap_curve,0);
+if monospace: x8r=hround(w-1.5u); x6r=hround(w-12.5u);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x8r=hround(w-u); x6r=hround(w-13u); fi
+x5=x7=.5[x8,x6]; y5r=h+o; y7r=-o; y6=y8=.5h-vair_corr; y6l:=y8l:=.52h;
+penstroke pulled_super_arc.e(5,6)(.5superpull)
+ & pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull)
+ & pulled_super_arc.e(8,5)(.5superpull) & cycle; % bowl
+penpos3(cap_bar,90); penpos4(cap_bar,90);
+x3=x1; x4=x6; y3=y4=.52h;
+fill stroke z3e--z4e; % bar
+if serifs: numeric inner_jut; inner_jut=cap_jut;
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); fi % lower left serif
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The cyrillic letter YA";
+beginchar(CYRYA,12u#+.5max(2u#,cap_curve#),cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+rt x1r=rt x2r=w-hround(3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,180);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7; x7=x2; y7=.5h; x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround(1.5u);
+else: x4=.5w-.5u; x5r=hround u; fi
+x4l:=x6l:=x4+.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+pos6'(cap_curve,0); x6'r=x6l+.5u; y6'=y6;
+pos8(cap_curve,0); tiny.lft x8l=.5u+.5cap_jut; bot y8=0;
+filldraw stroke z6'e--z8e; % diagonal stem
+if serifs:
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+ serif(8,6',e,1/3,-.5cap_jut); fi % lower diagonal serif
+math_fit(0,.75ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/mcytitle.mf b/Master/texmf-dist/fonts/source/public/montex/mcytitle.mf
new file mode 100644
index 00000000000..570bef5fa71
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mcytitle.mf
@@ -0,0 +1,39 @@
+% File: mcytitle.mf
+% Based on: cycitle.mf
+% Modified by: Oliver Corff
+% Date: October 1997, Ulaanbaatar
+%
+% This makes a short cyrillic font (caps only)
+
+let cmchar=message; % `|cmchar|' should precede each character
+
+font_coding_scheme:="ASCII caps";
+input mccoding;
+
+mode_setup; font_setup;
+
+input mcyru; % upper case (majuscules)
+input cyrmoreu; % upper case (majuscules)
+input romand; % numerals
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+% k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+% ligtable "P": "T": "Y": "A" kern kk#;
+% ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#\\fi,
+% "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+% ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+% "V" kern k#, "Y" kern k#;
+% ligtable "A": if serifs: "R": fi
+% "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+% "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+% ligtable "I": "I" kern -k#; fi % Richard III
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/montex/mlscodes.mf b/Master/texmf-dist/fonts/source/public/montex/mlscodes.mf
new file mode 100644
index 00000000000..1751770bcd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mlscodes.mf
@@ -0,0 +1,116 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mlscodes.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.7
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script in Isolated Mode (LMO)
+% Mongol Bicig Slot Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Specials
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% All codes must be > 148 unless they are < 128
+%
+MONG_TASLAL := 44; % ","
+MONG_FULLSTOP := 46; % "."
+MONG_EXCLAMQUEST := 176; % "!?"
+MONG_QUESTEXCLAM := 175; % "!?"
+%
+MONG_SUUL := 101; % ""
+MONG_ORXIC := 69; % "E"
+MONG_BAGODOISUUL := 71; % "G"
+MONG_BIODOISUUL := 89; % ""
+%
+MONG_TITEM := 150; % ""
+MONG_GEDES := 111; % "o"
+%%%%MONG_ADAGU := ; % ""
+MONG_EXENN := 153; % ""
+MONG_EXENL := 149; % ""
+MONG_SUULIINLEWER := 76; % ""
+MONG_TERTIARYLEWER := 81; % ""
+MONG_HIGHLEWER := 152; % ""
+MONG_EXENM := 151; % ""
+MONG_SUULIINMEWER := 77; % ""
+MONG_XEWTEEQIX := 120; % ""
+MONG_DUNDG := 154; % ""
+MONG_DUNDX := 156; % ""
+%%%%MONG_ADAGX := ; % ""
+%%%%MONG_DUNDNG := ; % ""
+%%%%MONG_ADAGNG := ; % ""
+% MONG_ADAGI := ; % ""
+MONG_NUMTDELBENQIX := 112; % ""
+MONG_BAGANUM := 78; % ""
+% MONG_ADAGK := ; % ""
+% MONG_ADAGB := ; % ""
+% MONG_DUNDD := ; % ""
+% MONG_ADAGD := ; % ""
+MONG_EXENS := 117; % ""
+MONG_ADAGS := 83; % ""
+%
+MONG_EXENSH := 85; % " sh-"
+MONG_DAWXARCEGTZAWJ := 113; % "sh"
+MONG_ADAGSH := 84; % "-sh "
+%
+MONG_EWERTQAGT := 119; % "G, or gh: Garudi"
+MONG_SERTENQIXTNUM := 102; % "f"
+MONG_BITUUSHILBE := 104; % "h"
+MONG_MALGAITAITITEM := 106; % "j"
+MONG_NUM := 73; % "I"
+MONG_DAWXARCEGTXEWTEE := 88; % " G-"
+MONG_ZADGAIZARDIGT := 90; % "Z"
+MONG_BITUUZARDIGT := 67; % "C"
+MONG_QAGT := 107; % "K, or kh: Kapital"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Allographs
+%
+MONG_SECONDARYSHUD := 65; % "a after rounded"
+MONG_SECONDARYCEGTEISHUD := 86; % "n after rounded"
+MONG_SECONDARYGEDES := 79; % "o, u after rounded"
+MONG_SECONDARYNUM := 103; % "g"
+MONG_SECNUMTGEDES := 66; % "B"
+MONG_SECONDARYQAGT := 75; % "kh followed by rounded" (K)
+MONG_SECNUMTDELBENQ := 80; % "P"
+MONG_SECSERTENQIXT := 70; % "F"
+MONG_SECERWEELJIN := 82; % "R"
+MONG_SECONDARYEWERTQAGT := 87; % "gh followed by rounded"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Graphical Ligatures
+%
+MONG_LIGKN := 230; % "kn"
+MONG_LIGKL := 231; % "kl"
+%
+MONG_LIGGHA := 240; % "gha"
+MONG_LIGGHI := 242; % "ghi"
+MONG_LIGGHU := 244; % "ghu"
+MONG_LIGGHN := 246; % "ghn"
+MONG_LIGGHL := 247; % "ghl"
+%
+MONG_LIGKHA := 232; % "ka"
+MONG_LIGKHU := 236; % "ku"
+MONG_LIGKHI := 234; % "khi"
+MONG_LIGKHN := 238; % "khn"
+MONG_LIGKHL := 239; % "khl"
+%
+MONG_LIGPA := 208; % "pa"
+MONG_LIGPI := 210; % "pi"
+MONG_LIGPU := 212; % "pu"
+MONG_LIGPN := 214; % "pn"
+MONG_LIGPL := 215; % "pl"
+%
+MONG_LIGFA := 216; % "fa"
+MONG_LIGFI := 218; % "fi"
+MONG_LIGFU := 220; % "fu"
+MONG_LIGFN := 222; % "fn"
+MONG_LIGFL := 223; % "fl"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+endinput;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% vim: ts=32
diff --git a/Master/texmf-dist/fonts/source/public/montex/mocodes.mf b/Master/texmf-dist/fonts/source/public/montex/mocodes.mf
new file mode 100644
index 00000000000..dfff7ceb7f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mocodes.mf
@@ -0,0 +1,191 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mocodes.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: October 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script in Ligature Mode (LMO)
+% Mongol Bicig Slot Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Specials
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% All codes must be > 148 unless they are < 128. Really?
+%
+% Attention: There are gaps at ... which are taboo.
+%
+% MONG_CHAR_NAME :=VALUE;% CORRESPONDANCE UNIQUE=OK
+%
+MONG_TASLAL := 44; % "," *
+MONG_FULLSTOP := 46; % "." *
+%
+MONG_MSP := 45; % "-" *
+MONG_MVS := 61; % "=" *
+MONG_NCEG := 37; % "n=" *
+MONG_GCEG := 38; % "G=" *
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Basic Vowels
+%
+MONG_A := 97; % "a" *
+MONG_AVAR := 153; % "a'" *
+MONG_AE := 101; % "\"a"
+%% MONG_E := xxx; % "ee"
+MONG_I := 105; % "i" *
+MONG_IVAR := 154; % "a'" *
+%% MONG_O := 111; % "o"
+%% MONG_OE := xxx; % "\"o"
+MONG_U := 117; % "u" *
+%% MONG_UE := xxx; % "\"u"
+%% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Basic Consonants
+%
+MONG_K := 107; % "k"
+ MONG_NUM := MONG_K;
+%
+MONG_EXENX := 88; % "x" *
+MONG_X := 120; % "x"
+%MONG_ADAGX := 140; % "x" in mbcodes.mf *
+%
+MONG_EXENG := 71; % " G-" Gamma *
+MONG_G := 103; % "-G-" Gamma
+MONG_ADAGG := 149; % "-G " Gamma
+ MONG_DAWXARCEGTXEWTEE := MONG_EXENG;
+%
+%% MONG_GE := 103; % "g"
+%
+% MONG_EXENL := 76; % " m-" defined in mbcodes.f
+MONG_L := 108; % "m"
+ MONG_LEWER := MONG_L;
+MONG_ADAGL := 143; % "m"
+ MONG_SUULIINLEWER := MONG_ADAGL;
+%
+% MONG_EXENM := 77; % " m-" defined in mbcodes.f
+MONG_M := 109; % "m"
+ MONG_MEWER := MONG_M;
+MONG_ADAGM := MONG_SUULIINMEWER; % defined in mbcodes.mf
+%
+MONG_EXENN := 78; % "n" *
+MONG_N := 110; % "n" *
+MONG_ADAGN := 150; % "-n " *
+MONG_NVAR := 151; % "n without dot" *
+MONG_ADAGNVAR := 152; % "n without dot" *
+%
+MONG_D := 100; % "d" *
+ MONG_GEDESTEISHILBE := MONG_D;
+MONG_DVAR := 155; % "d'"
+%
+MONG_T := 116; % "d" *
+ MONG_BURUUXARSANGEDES := MONG_T;
+%
+MONG_B := 98; % "b" *
+ MONG_NUMTAIGEDES := MONG_B;
+%
+MONG_P := 112; % "p"
+ MONG_NUMTDELBENQIX := MONG_P;
+%
+MONG_R := 114; % "r"
+ MONG_ERWEELJINSHILBE := MONG_R;
+MONG_ADAGR := 82; % "r" *
+ MONG_SECERWEELJIN := MONG_ADAGR;
+%
+% MONG_EXENS := 83; % " s-" defined in mbcodes.mf
+MONG_S := 115; % "-s-" *
+ MONG_ZAWJ := MONG_S;
+% MONG_ADAGS :=>148; % "-s " defined in mbcodes.mf
+%
+MONG_EXENSH := 159; % " sh-"
+MONG_SH := 160; % "sh"
+ MONG_DAWXARCEGTZAWJ := MONG_SH;
+MONG_ADAGSH := 161; % "-sh "
+%
+MONG_KH := 75; % "kh" *
+ MONG_QAGT := MONG_KH;
+%
+MONG_F := 102; % "f" *
+ MONG_SERTENQIXTNUM := MONG_F;
+%
+MONG_V := 118; % "v" *
+ MONG_MATGARSHILBE := MONG_V;
+%
+MONG_Y := 121; % "v" *
+ MONG_ETGERSHILBE := MONG_Y;
+%
+MONG_H := 104; % "h" *
+ MONG_BITUUSHILBE := MONG_H;
+%
+MONG_J := 106; % "j" *
+ MONG_MALGAITAITITEM := MONG_J;
+%
+MONG_C := 99; % "C" *
+ MONG_SEREEEWER := MONG_C;
+%
+MONG_Z := 122; % "z" *
+ MONG_BOSOOSHILBE := MONG_Z;
+%
+MONG_ZH := 90; % "Z" *
+ MONG_ZADGAIZARDIGT := MONG_ZH;
+%
+MONG_CH := 67; % "C" *
+ MONG_BITUUZARDIGT := MONG_CH;
+%
+MONG_GH := 113; % "input q -> gh(ombo)"
+ MONG_EWERTQAGT := MONG_GH;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Dead Glyphs and Codes
+%
+%% MONG_SECONDARYSHUD := 149; % "a after rounded"
+%% MONG_SECONDARYCEGTEISHUD := 150; % "n after rounded"
+%% MONG_SECONDARYGEDES := 151; % "o, u after rounded"
+%% MONG_SECONDARYNUM := 152; % "g"
+%% MONG_SECNUMTGEDES := 153; % "B"
+%% MONG_SECONDARYQAGT := 154; % "kh followed by rounded"
+%% MONG_SECNUMTDELBENQ := 155; % "P"
+%% MONG_SECSERTENQIXT := 156; % "F"
+%% MONG_SECERWEELJIN := 157; % "R"
+%% MONG_SECONDARYEWERTQAGT := 158; % "gh followed by rounded"
+%% MONG_EWERTQAGT := 162; % "G, or gh: Garudi"
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Mongolian Graphical Ligatures
+%
+MONG_LIGPA := 208; % "pa"
+MONG_LIGPI := 210; % "pi"
+MONG_LIGPU := 212; % "pu"
+MONG_LIGPN := 214; % "pn"
+MONG_LIGPL := 215; % "pl"
+%% %
+MONG_LIGFA := 216; % "fa"
+MONG_LIGFI := 218; % "fi"
+MONG_LIGFU := 220; % "fu"
+MONG_LIGFN := 222; % "fn"
+MONG_LIGFL := 223; % "fl"
+%
+MONG_LIGKN := 230; % "kn"
+MONG_LIGKL := 231; % "kl"
+%
+MONG_LIGKHA := 232; % "kha"
+MONG_LIGKHU := 236; % "khu"
+MONG_LIGKHI := 234; % "khi"
+MONG_LIGKHN := 238; % "khn"
+MONG_LIGKHL := 239; % "khl"
+%
+MONG_LIGGHA := 240; % "gha"
+MONG_LIGGHI := 242; % "ghi"
+MONG_LIGGHU := 244; % "ghu"
+MONG_LIGGHN := 246; % "ghn"
+MONG_LIGGHL := 247; % "ghl"
+%
+% End of mocodes.mf
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% vim: ts=32
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/moglyphs.mf b/Master/texmf-dist/fonts/source/public/montex/moglyphs.mf
new file mode 100644
index 00000000000..3c9925eda80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/moglyphs.mf
@@ -0,0 +1,750 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: moglyphs.mf
+% Author: Oliver Corff
+% Date: June 1st, 2001
+% Version: 0.2
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script (LMS)
+% Mongol Bicig Glyph Definitions
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+ writing:=Bicig;
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_TASLAL,tewidth#,height#,depth#);
+ "Taslal temdeg";
+ dusal(2/4tewidth,Centerline,5thin,3thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_FULLSTOP,bawidth#,height#,depth#);
+ "Mongolian Full Stop";
+ dusal(1/4bawidth,Centerline,5thin,3thick);
+ dusal(3/4bawidth,Centerline,5thin,3thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_AVAR,shudwidth#,height#,depth#);
+ "Mongol letter a, final behaviour different";
+ shud(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_AE,shudwidth#,height#,depth#);
+ "Mongol letter ae, shape identical with shud";
+ shud(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_IVAR,shilbewidth#,height#,depth#);
+ "Mongol letter i, final behaviour different";
+ shilbe(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_NVAR,shudwidth#,height#,depth#);
+ "Mongol letter n, but with dusal behaviour flipped";
+ shud(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGN,shudwidth#,height#,depth#);
+ "Mongol letter n, final form";
+ "The suul";
+ suul;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGNVAR,shudwidth#,height#,depth#);
+ "Mongol letter n, final form, but with dusal behaviour flipped";
+ "The suul";
+ suul;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ "Mongol Secondary shud after B, etc.";
+if unknown MONG_SECONDARYSHUD:
+ "skipped";
+else:
+beginchar(MONG_SECONDARYSHUD,numtaigedeswidth#,height#,depth#);
+ nuruu(secAwidth,0);
+ shud_atom(secAwidth,bearing);
+
+ z5r=(numtaigedeswidth,underouter);
+ z6l=(secAwidth,nuruuright);
+
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+ penstroke (z5e{left}..{up}z6e) ifrotated;
+ penlabels(5,6);
+endchar;
+fi;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ "Mongol Secondary Belly after B, etc.";
+if unknown MONG_SECONDARYGEDES:
+ "skipped";
+else:
+beginchar(MONG_SECONDARYGEDES,numtaigedeswidth#,height#,depth#);
+ nuruu(numtaigedeswidth,0);
+ z1r=(numtaigedeswidth,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(1/2bearing,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+ z5r=(x1r,underouter);
+ z6 =(x3,nuruuright);
+ penpos5(underinner-underouter,-90);
+ penpos6(thin,-180);
+ penstroke (z5e{left}..{up}z6e) ifrotated;
+ penlabels(1,2,3,5,6);
+endchar;
+fi;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ "Mongol Secondary dusaltai shud after B, etc.";
+if unknown MONG_SECONDARYCEGTEISHUD:
+ "skipped";
+else:
+beginchar(MONG_SECONDARYCEGTEISHUD,numtaigedeswidth#,height#,depth#);
+ "Mongol Secondary dusaltai shud after B, etc.";
+ nuruu(secAwidth,0);
+ shud_atom(secAwidth,bearing);
+
+ z5r=(numtaigedeswidth,underouter);
+ z6l=(secAwidth,nuruuright);
+
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+ penstroke (z5e{left}..{up}z6e) ifrotated;
+ dusal (1/2secAwidth+1/2bearing,yashilbeheight,3thin,2thick);
+ penlabels(5,6);
+endchar;
+fi;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_NUM,gedeswidth#,height#,depth#);
+ "Mongol Female g";
+ nuruu(gedeswidth,gedeswidth-bearing);
+ z1l=(1/3gedeswidth,shudheight);
+ z2r=(gedeswidth-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(0,Centerline);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/2thin,-180);
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e) ifrotated;
+ penlabels(1,2,3,4,5,6);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ "Mongol female g, before rounded vowels";
+if unknown MONG_SECONDARYNUM:
+ "skipped";
+else:
+beginchar(MONG_SECONDARYNUM,shudwidth#,height#,depth#);
+ nuruu(shudwidth,shudwidth-bearing);
+ z1r=(+3thin,shudheight);
+ z2r=(shudwidth-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(0,underouter);
+ z6r=(0,nuruuleft);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(epsilon,-180);
+
+ penstroke (z1e..z2e...z4e{down}..{left}z5e) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_DAWXARCEGTXEWTEE,tewidth#,height#,depth#);
+ "Mongol Letter initial g(amma)";
+ xewteeqix;
+ dusal (x2,shilbeheight,3thin,2thick);
+ dusal (bearing+2thin,shilbeheight,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGG,2shudwidth#,height#,depth#);
+ "Final g";
+ shud(shudwidth);
+ bagaodoisuul;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_DVAR,eswidth#,height#,depth#);
+ "d FVS1";
+ if style=steel:
+ roundgedestshilbe;
+ fi;
+ if style=wood:
+ modgedestshilbe;
+ fi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SECERWEELJIN,gedeswidth#,height#,depth#);
+ "Mongol Letter 'r' in final position";
+ nuruu(gedeswidth,gedeswidth-bearing);
+ z1=(gedeswidth-1/2bearing,nuruuleft);
+ z2=(gedeswidth-3thin,gedesouter);
+ z3=(bearing,shudheight);
+ z4=(x2-1thin,gedesinner-thin);
+ z5 =(x6l,nuruuleft);
+ pickup pencircle scaled 1/4thin;
+
+ z6r=(x1,nuruuright);
+ z7r=(1/2[x6,x8],underouter);
+ z8r=(0,Centerline);
+ penpos6(2thin,0);
+ penpos7(underinner-underouter,-90);
+ penpos8(1/4thin,-180);
+
+ fill (z1{up}..z2 & z2{dir 225}..{dir 105}z3 &
+ z3{down}..{dir 45}z4 & z4{dir -60}..z5..z6l{down}..z7l..{up}z8 &
+ z8{down}..z7r..{up}z6r..z1..cycle) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_EXENSH,tewidth#,height#,depth#);
+ "Mongol Letter `sh' in initial position";
+ exenzawj;
+ dusal(bearing,underouter,3thin,2thick);
+ dusal(1/3tewidth,underouter,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_DAWXARCEGTZAWJ,tewidth#,height#,depth#);
+ "Mongol Letter `sh' in medial position";
+ zawj;
+ dusal(bearing,underouter,3thin,2thick);
+ dusal(1/3tewidth,underouter,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ADAGSH,tewidth#,height#,depth#);
+ "Mongol Letter 'sh' in final position ";
+ nuruu(tewidth,tewidth-thick);
+ z1=(tewidth-bearing,nuruuleft);
+ z2=(1/2[x1,x3],shudheight);
+ z3=(x1-shudwidth+2bearing,y1);
+ y4=nuruuright-1thin;
+ z4=whatever[z2,z3];
+
+ y5=shudheight;
+ z4-z5=whatever * (z2-z1);
+ % y6=nuruuleft;
+ % z5-z6=whatever * (z2-z3);
+ z6=(0,underouter);
+
+ y7=sdepth;
+ z4-z7=whatever * (z1-z2);
+ y8=nuruuright;
+ z7-z8=whatever * (z2-z3);
+ y9=underouter;
+ z7-z9=whatever * (z7-z8);
+ y10=nuruuright;
+ z10-z9=whatever* (z1-z2);
+ z11=(x6,nuruuright);
+
+ % pickup pencircle scaled 1/4thin;
+ fill (z10--z9--z1--z2--z4--z5..z6{z3-z2}&z6{z2-z6}..z10--cycle)
+ ifrotated;
+ dusal(4/24tewidth,underouter-2thin,3thin,2thick);
+ dusal(10/24tewidth,underouter-2thin,3thin,2thick);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ "Mongol Letter Secondary B";
+if unknown MONG_SECNUMTGEDES:
+ "skipped";
+else:
+beginchar(MONG_SECNUMTGEDES,numtaigedeswidth#,height#,depth#);
+ nuruu(numtaigedeswidth,0);
+ z1r=(numtaigedeswidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(0,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(x3r,underouter);
+ z6r=(0,nuruuright);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(epsilon,-180);
+ penstroke (z4e{down}..{left}z5e) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ "Mongol Secondary Letter P";
+if unknown MONG_SECNUMTDELBENQ:
+ "skipped";
+else:
+beginchar(MONG_SECNUMTDELBENQ,numtaigedeswidth#,height#,depth#);
+ nuruu(numtaigedeswidth,0);
+
+ z1r=(numtaigedeswidth-1/2bearing,gedesouter+thin);
+ z2r=(1/3[x1,x4],gedesouter);
+ z3r=(7/12[x1,x4],gedesouter);
+ z4r=(0,nuruuleft);
+ penpos1(thin,180);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(gedesouter-gedesinner,90);
+ penpos4(thin,180);
+ penstroke (z1e..z2e..z3e..{down}z4e) ifrotated;
+
+ z5r=(x1,nuruuright);
+ z6r=(x4r,underouter);
+ z7r=(0,nuruuright);
+ penpos5(thin,0);
+ penpos6(underinner-underouter,-90);
+ penpos7(epsilon,-180);
+ penstroke (z5e{down}..{left}z6e) ifrotated;
+ penlabels(1,2,3,4,5,6,7);
+endchar;
+fi;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_SERTENQIXTNUM,eswidth#,height#,depth#);
+ "Mongol Letter f";
+ nuruu(eswidth,eswidth-numtaigedeswidth);
+
+ z1r=(eswidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(eswidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(0,Centerline);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/4thin,-180);
+ penstroke (z4e{down}..z5e..{up}z6e) ifrotated;
+
+ f_flag(eswidth,x2);
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ "Mongol Secondary Letter F";
+if unknown MONG_SECSERTENQIXT:
+ "skipped";
+else:
+beginchar(MONG_SECSERTENQIXT,numtaigedeswidth#,height#,depth#);
+ nuruu(numtaigedeswidth,0);
+ z1r=(numtaigedeswidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(0,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(x3r,underouter);
+ z6r=(0,nuruuright);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(epsilon,-180);
+ penstroke (z4e{down}..{left}z5e) ifrotated;
+
+ f_flag(numtaigedeswidth,x2);
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+fi;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_QAGT,gedeswidth#,height#,depth#);
+ "Mongol Letter kh";
+ qagt;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ "Mongol Secondary Letter K";
+if unknown MONG_SECONDARYQAGT:
+ "skipped";
+else:
+beginchar(MONG_SECONDARYQAGT,shudwidth#,height#,depth#);
+ nuruu(shudwidth,shudwidth-bearing);
+% if writing=Bithe:
+% z1 =(w+1/4shudwidth,shudheight-thin);
+% penpos1(2.5thin,-30);
+% fi;
+% if writing=Bicig:
+ z1l=(1/3shudwidth,shudheight);
+ penpos1(4thin,60);
+% fi;
+ z2r=(shudwidth-1/2bearing,nuruuleft);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(0,underouter);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+
+ penstroke (z1e..z2e...z4e{down}..{left}z5e) ifrotated;
+ penlabels(1,2,3,4,5);
+ z11=(shudwidth,Centerline);
+ z12=(shudwidth-3/4thick,Centerline);
+ z13=(shudwidth-1.5thick,nuruuleft+thin);
+ penpos11(nuruuwidth,90);
+ penpos12(14/16nuruuwidth,80);
+ penpos13(epsilon,45);
+ penstroke (z11e---z12e..z13e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,11,12,13);
+endchar;
+fi;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_ZADGAIZARDIGT,cewidth#,height#,depth#);
+ "Mongol Letter Z";
+ nuruu(cewidth,0);
+ z1r=(5/6cewidth,gedesouter);
+ z2r=(4/6cewidth,shudheight);
+ z3r=(5/4bearing+1.5u,shudheight);
+ z4 =(bearing+1.5u,Centerline);
+ penpos1(gedesouter-gedesinner,85);
+ penpos2(gedesouter-gedesinner,85);
+ penpos3(gedesouter-gedesinner,100);
+ penpos4(nuruuleft-nuruuright,100);
+ penstroke (z1e..z2e---z3e--z4e) ifrotated;
+ penlabels(1,2,3,4);
+ z5l=z3r; penpos5(thin,0);
+ z6=(-0.5thin,shilbeheight); penpos6(1.25thin,90);
+ z7=(-1.5thin,shilbeheight-thin); penpos7(0.5thin,120);
+ pickup pencircle scaled thin;
+ penstroke (z5e{up}..z6e..z7e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_BITUUZARDIGT,cewidth#,height#,depth#);
+ "Mongol Letter C";
+ nuruu(cewidth,0);
+ z1r=(5/6cewidth,gedesouter);
+ z2r=(4/6cewidth,shudheight);
+ z3r=(5/4bearing+1.5u,shudheight);
+ z4 =(bearing+1.5u,Centerline);
+ penpos1(gedesouter-gedesinner,85);
+ penpos2(gedesouter-gedesinner,85);
+ penpos3(gedesouter-gedesinner,100);
+ penpos4(nuruuleft-nuruuright,100);
+ penstroke (z1e..z2e---z3e--z4e) ifrotated;
+ penlabels(1,2,3,4);
+
+ z5l=z3r; penpos5(thin,0);
+ z6=(-0.5thin,shilbeheight); penpos6(1.25thin,90);
+ pickup pencircle scaled thin;
+ draw (z5..tension 1.3..z6..tension 1.3..cycle) ifrotated;
+ z7=(-2thin,shilbeheight-thin); penpos7(0.5thin,120);
+ % penstroke (z5e{up}..z6e..z7e);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_BITUUSHILBE,eswidth#,height#,depth#);
+ "Mongol Letter h";
+ nuruu(eswidth,eswidth-1/2bearing-2thin);
+ nuruu(eswidth-1/2bearing-2u,0);
+ z1r=(eswidth-1/2bearing,nuruuleft);
+ z2 =(07/16eswidth,orxicouter);
+ penpos1(2thin,0);
+ penpos2(2thin,45);
+ penstroke (z1e--z2e) ifrotated;
+ z3r=z2;
+ z4r=(bearing,5/12[y1,y2]);
+
+ penpos3(2thin,115 );
+ penpos4(2thin,210);
+
+ z5 =(6/16eswidth,3/12[y1,y2]);
+ z6 =(x1-2u,nuruuleft);
+
+ penpos5(1.5thin,235);
+ penpos6(1.75thin,180);
+ penstroke
+ (z3e{dir 205}..tension 1.4..z4e..tension 1.4..z5e..z6e)
+ ifrotated;
+ penlabels(1,2,3,4,5,6);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_MALGAITAITITEM,tewidth#,height#,depth#);
+ "Mongol Letter j";
+ if style=wood:
+ nuruu(7/12tewidth,0);
+ shud_atom(shudwidth-bearing,0+bearing);
+ fi;
+ if style=steel: titem; fi;
+
+ z1l=(2/3shudwidth-thin,shilbeheight);
+ z2l=(2/3shudwidth+thin,shilbeheight);
+ z3r=(tewidth,Centerline);
+ z4l=(1/2[x3,x5],
+ if style=steel: underouter fi
+ if style=wood: underinner fi);
+ z5l=( if style=steel: 1/3 fi
+ if style=wood: 2/3 fi shudwidth,nuruuright);
+ penpos1(3thin,90);
+ penpos2(2.25thin,90);
+ penpos3(2.25thin, 0);
+ penpos4(3thin,-90);
+ penpos5(2thin,-180);
+ penstroke (z1e{right}..z2e{right}..z3e..z4e..{up}z5e) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_EWERTQAGT,gedeswidth#,height#,depth#);
+ "Mongol g used in Gombo, primary version";
+ nuruu(gedeswidth,gedeswidth-bearing);
+ z1l=(1/3gedeswidth,shudheight);
+ z2r=(gedeswidth-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6r=(0,Centerline);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(1/2thin,-180);
+
+ z7r=(gedeswidth-bearing,gedesouter+thin);
+ z8 =(x7-1thin,shudheight-thick);
+ penpos7(1.5thin,0);
+ penpos8(2thin,-45);
+ penstroke (z7e..z8e) ifrotated;
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ "Mongol g used in Gombo, secondary version";
+if unknown MONG_SECONDARYEWERTQAGT:
+ "skipped";
+else:
+beginchar(MONG_SECONDARYEWERTQAGT,shudwidth#,height#,depth#);
+ nuruu(shudwidth,shudwidth-bearing);
+ z1l=(+1thin,shudheight);
+ z2r=(shudwidth-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(0,underouter);
+ z6r=(0,nuruuleft);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(epsilon,-180);
+
+ z7r=(shudwidth,gedesouter+thin);
+ z8 =(x7-1thin,shudheight-thick);
+ penpos7(1.5thin,0);
+ penpos8(2thin,-45);
+ penstroke (z7e..z8e) ifrotated;
+
+ penstroke (z1e..z2e...z4e{down}..{left}z5e) ifrotated;
+ penlabels(1,2,3,4,5);
+endchar;
+fi;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Some ligatures without added semantical value
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGPN,bawidth#,height#,depth#);
+ "Mongol Ligature PN";
+ ligmongpa;
+ dusal (x8,yashilbeheight,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGPL,bawidth#,height#,depth#);
+ "Mongol Ligature PL";
+ ligmongpa;
+ high_l_ewer(2.5thin);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGFA,bawidth#,height#,depth#);
+ "Mongol Ligature FA";
+ ligba;
+ f_flag(w,3/4w);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGFI,biwidth#,height#,depth#);
+ "Mongol Ligature FI";
+ nuruu(shilbewidth-thin,0);
+ nuruu(biwidth,biwidth-numtaigedeswidth);
+
+ z1r=(biwidth-1/2bearing,nuruuleft);
+ z2r=(1/2[x1,x3],gedesouter);
+ z3r=(biwidth-numtaigedeswidth,nuruuleft);
+ penpos1(thin,0);
+ penpos2(gedesouter-gedesinner,90);
+ penpos3(thin,180);
+ penstroke (z1e{up}..z2e..{down}z3e) ifrotated;
+
+ z4 =(x1,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6l=(shilbewidth,nuruuright);
+ z7l=(3thin,shilbeheight);
+ penpos4(thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+ penpos7(4thin,-120);
+ penstroke (z4e{down}..z5e..{up}z6e..tension infinity..z7e) ifrotated;
+
+ z11l=(x2,gedesouter);
+ penpos11(1/2thin,90);
+ z12 =(1/6[x11,x14],shilbeheight);
+ penpos12(2thin,90);
+ z13 =(5/6[x11,x14],shilbeheight);
+ penpos13(2thin,90);
+ z14r=(biwidth,yashilbeheight);
+ penpos14(1/2thin,90);
+ penstroke (z11e{up}..z12e..z13e..{up}z14e) ifrotated;
+ f_flag(w,3/4w);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGFU,2numtaigedeswidth#,height#,depth#);
+ "Mongol Ligature FU";
+ f_flag(w,3/4w);
+ ligbu(0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGFN,bawidth#,height#,depth#);
+ "Mongol Ligature FN";
+ ligba;
+ f_flag(w,3/4w);
+ dusal (x7,yashilbeheight,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGFL,bawidth#,height#,depth#);
+ "Mongol Ligature FL";
+ ligba;
+ f_flag(w,3/4w);
+ high_l_ewer(2.5thin);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKN,bawidth#,height#,depth#);
+ "Mongol Ligature KN";
+ ligka;
+ dusal (x7,yashilbeheight,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKL,bawidth#,height#,depth#);
+ "Mongol Ligature KL";
+ ligka;
+ high_l_ewer(2.5thin);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKHA,bawidth#,height#,depth#);
+ "Mongol Ligature KHA";
+ ligkha;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKHI,biwidth#,height#,depth#);
+ "Mongol Ligature KHI";
+ ligkhi;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKHU,bawidth#,height#,depth#);
+ "Mongol Ligature KHU";
+ ligkhu;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKHN,bawidth#,height#,depth#);
+ "Mongol Ligature KHN";
+ ligkha;
+ dusal (x7,yashilbeheight,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGKHL,bawidth#,height#,depth#);
+ "Mongol Ligature KHL";
+ ligkha;
+ high_l_ewer(2.5thin);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGGHA,bawidth#,height#,depth#);
+ "Mongol Ligature GHA";
+ liggha;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGGHI,biwidth#,height#,depth#);
+ "Mongol Ligature GHI";
+ nuruu(shilbewidth-thin,0);
+ nuruu(biwidth,biwidth-bearing);
+
+ z1l=(biwidth-gedeswidth+5thin,shudheight-thin);
+ z2r=(biwidth-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z4 =(x2,nuruuright);
+ z5r=(1/2[x4,x6],underouter);
+ z6l=(shilbewidth,nuruuright);
+ z7l=(3thin,shilbeheight);
+ penpos4(2thin,0);
+ penpos5(underinner-underouter,-90);
+ penpos6(2thin,-180);
+ penpos7(4thin,-120);
+
+ penstroke (z1e..z2e...z4e{down}..z5e..{up}z6e..tension
+ infinity..z7e) ifrotated;
+
+ z10r=(biwidth,gedesouter+thin);
+ z11 =(x10-2thin,shudheight-5thin);
+ penpos10(1.5thin,0);
+ penpos11(2thin,-45);
+ penstroke (z10e..z11e) ifrotated;
+
+ penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGGHU,shudwidth#+numtaigedeswidth#,height#,depth#);
+ "Mongol Ligature GHU";
+ nuruu(w,w-bearing);
+ nuruu(numtaigedeswidth,0);
+ z1l=(w-shudwidth+1thin,shudheight);
+ z2r=(w-1/2bearing,nuruuleft);
+ penpos1(4thin,60);
+ penpos2(2thin,0);
+
+ z3 =(x2,nuruuright);
+ z4r=(numtaigedeswidth,underouter);
+ z5r=(1/2bearing,nuruuright);
+ penpos3(2thin,0);
+ penpos4(underinner-underouter,-90);
+ penpos5(thin,-180);
+
+ z6 =(x5,nuruuleft);
+ z7r=(1/2[x6,x8],gedesouter);
+ z8r=(numtaigedeswidth,y6);
+ penpos6(thin,-180);
+ penpos7(gedesinner-gedesouter,-90);
+ penpos8(thin,0);
+
+
+ z9r=(w,gedesouter+thin);
+ z10=(x9-1thin,shudheight-thick);
+ penpos9(1.5thin,0);
+ penpos10(2thin,-45);
+ penstroke (z9e..z10e) ifrotated;
+
+ penstroke (z1e..z2e...z3e{down}..z4e..{up}z5e) ifrotated;
+ penstroke (z6e{up}..z7e..{down}z8e) ifrotated;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGGHN,bawidth#,height#,depth#);
+ "Mongol Ligature GHN";
+ liggha;
+ dusal (x7,yashilbeheight,3thin,2thick);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MONG_LIGGHL,bawidth#,height#,depth#);
+ "Mongol Ligature GHL";
+ liggha;
+ high_l_ewer(2.5thin);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% vim: ts=8
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/montrlig.mf b/Master/texmf-dist/fonts/source/public/montex/montrlig.mf
new file mode 100644
index 00000000000..8a1288060c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/montrlig.mf
@@ -0,0 +1,2036 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: montrlig.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: March 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Local Mongolian Script (LMO)
+% Mongol Bicig Ligature Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Punctuation
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable "!": "?" =: MONG_EXCLAMQUEST;%
+ligtable "?": "!" =: MONG_QUESTEXCLAM;%
+ligtable ",": "," =: MONG_FULLSTOP; %
+ligtable MONG_GT: MONG_GT =: MONG_RGU; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Initial cases
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_OM:
+ MONG_A |=:| MONG_TITEM, % "a"
+ MONG_AE |=:| MONG_TITEM, % "a"
+% MONG_E =: MONG_TITEM, % "e"
+ MONG_I |=:| MONG_TITEM, % "i"
+ MONG_U |=:| MONG_TITEM, % "u"
+ MONG_N |=: MONG_EXENN, % "n"
+ MONG_M |=: MONG_EXENM, % " m-"
+ MONG_EXENM kern 0.25gedeswidth#,%
+ MONG_TITEM kern 0.25gedeswidth#,%
+ MONG_L |=: MONG_EXENL, % " l-"
+ MONG_H |=:| MONG_TITEM, % " e-"
+ MONG_S |=: MONG_EXENS, % " s-"
+ MONG_SH |=: MONG_EXENSH, % "sh"
+ MONG_D |=: MONG_T, % " d-"
+ MONG_X |=: MONG_EXENX, % MONG_X
+ MONG_G |=: MONG_EXENG, % MONG_X
+ MONG_Z |=: MONG_SHILBE; % "z"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable ||:
+ MONG_A =:| MONG_TITEM, % "a"
+ MONG_AE =: MONG_TITEM, % "\"a"
+% MONG_E =:| MONG_TITEM, % " e-"
+ MONG_I =:| MONG_TITEM, % " i-"
+ MONG_U =:| MONG_TITEM, % " u-"
+ MONG_N =: MONG_EXENN, % " n-"
+ MONG_M =: MONG_EXENM, % " m-"
+ MONG_L =: MONG_EXENL, % " l-"
+ MONG_H =:| MONG_TITEM, % " e-"
+ MONG_S =: MONG_EXENS, % " s-"
+ MONG_SH =: MONG_EXENSH, % "sh"
+ MONG_D |=: MONG_T, % " d-"
+ MONG_X =: MONG_EXENX, % " x-"
+ MONG_G =: MONG_EXENG, % " G-"
+ MONG_Z =: MONG_SHILBE; % "z"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_OPAREN:
+ MONG_A |=:| MONG_TITEM, % "a"
+ MONG_AE |=:| MONG_TITEM, % "a"
+% MONG_E =: MONG_TITEM, % "e"
+ MONG_I |=:| MONG_TITEM, % "i"
+ MONG_U |=:| MONG_TITEM, % "u"
+ MONG_N |=: MONG_EXENN, % "n"
+ MONG_M |=: MONG_EXENM, % " m-"
+ MONG_L |=: MONG_EXENL, % " l-"
+ MONG_H |=:| MONG_TITEM, % " e-"
+ MONG_S |=: MONG_EXENS, % " s-"
+ MONG_SH |=: MONG_EXENSH, % "sh"
+ MONG_D |=: MONG_T, % " d-"
+ MONG_X |=: MONG_EXENX, % MONG_X
+ MONG_G |=: MONG_EXENG, % MONG_X
+ MONG_Z |=: MONG_SHILBE; % "z"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LT: % "<"
+ MONG_LT =: MONG_LGU, % "<<"
+ MONG_A |=:| MONG_TITEM, % "a"
+ MONG_AE |=:| MONG_TITEM, % "a"
+% MONG_E |=:| MONG_TITEM, % " e-"
+ MONG_I |=:| MONG_TITEM, % "i"
+ MONG_U |=:| MONG_TITEM, % "u"
+ MONG_N |=: MONG_EXENN, % "n"
+ MONG_M |=: MONG_EXENM, % MONG_M
+ MONG_L |=: MONG_EXENL, % MONG_M
+ MONG_H |=:| MONG_TITEM, % MONG_H
+ MONG_S |=: MONG_EXENS, % MONG_S
+ MONG_SH |=: MONG_EXENSH, % "sh"
+ MONG_D |=: MONG_T, % " d-"
+ MONG_X |=: MONG_EXENX, % MONG_X
+ MONG_G |=: MONG_EXENG, % MONG_X
+ MONG_Z |=: MONG_SHILBE; % "z"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LGU: % "<<"
+ MONG_A |=:| MONG_TITEM, % "a"
+ MONG_AE |=:| MONG_TITEM, % "a"
+% MONG_E |=:| MONG_TITEM, % MONG_M
+ MONG_I |=:| MONG_TITEM, % "i"
+ MONG_U |=:| MONG_TITEM, % "u"
+ MONG_N |=: MONG_EXENN, % "n"
+% MONG_EXENN kern 0.5gedeswidth,
+ MONG_M |=: MONG_EXENM, % MONG_M
+% MONG_EXENM kern 0.5gedeswidth,
+ MONG_L |=: MONG_EXENL, % MONG_M
+% MONG_EXENL kern 0.5gedeswidth,
+ MONG_H |=:| MONG_TITEM, % MONG_H
+ MONG_S |=: MONG_EXENS, % MONG_S
+% MONG_EXENS kern 0.5gedeswidth,
+ MONG_SH |=: MONG_EXENSH, % "sh"
+% MONG_EXENSH kern 0.5gedeswidth,
+ MONG_D |=: MONG_T, % " d-"
+% MONG_T kern 0.5gedeswidth,
+ MONG_X |=: MONG_EXENX, % MONG_X
+% MONG_EXENX kern 0.5gedeswidth,
+ MONG_G |=: MONG_EXENG, % MONG_X
+% MONG_EXENG kern 0.5gedeswidth,
+ MONG_Z |=: MONG_SHILBE; % "z"
+% MONG_SHILBE kern 0.5gedeswidth;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ENV: %
+ %
+ % vowels
+ %
+ MONG_A =: MONG_A , % ""
+ MONG_AE =: MONG_AE , % ""
+ MONG_I =: MONG_I , % ""
+ MONG_U =: MONG_U , % ""
+ %
+ % consonants
+ %
+ MONG_B =: MONG_B , % ""
+ MONG_C =: MONG_C , % ""
+ MONG_CH =: MONG_CH , % ""
+ MONG_D =: MONG_D , % ""
+ MONG_F =: MONG_F , % ""
+ MONG_G =: MONG_G , % ""
+ MONG_GH =: MONG_GH , % ""
+ MONG_H =: MONG_H , % ""
+ MONG_J =: MONG_J , % ""
+ MONG_K =: MONG_K , % ""
+ MONG_KH =: MONG_KH , % ""
+ MONG_L =: MONG_L , % ""
+ MONG_M =: MONG_M , % ""
+ MONG_N =: MONG_N , % ""
+ MONG_P =: MONG_P , % ""
+ MONG_R =: MONG_R , % ""
+ MONG_S =: MONG_S , % ""
+ MONG_SH =: MONG_SH , % ""
+ MONG_T =: MONG_T , % ""
+ MONG_V =: MONG_V , % ""
+ MONG_Y =: MONG_Y , % ""
+ MONG_Z =: MONG_Z , % ""
+ MONG_ZH =: MONG_ZH , % ""
+ %
+ % boundaries
+ %
+ MONG_BNDRY =: MONG_BNDRY , % ""
+ MONG_ZERO =: MONG_ZERO , % ""
+ MONG_ONE =: MONG_ONE , % ""
+ MONG_TWO =: MONG_TWO , % ""
+ MONG_THREE =: MONG_THREE , % ""
+ MONG_FOUR =: MONG_FOUR , % ""
+ MONG_FIVE =: MONG_FIVE , % ""
+ MONG_SIX =: MONG_SIX , % ""
+ MONG_SEVEN =: MONG_SEVEN , % ""
+ MONG_EIGHT =: MONG_EIGHT , % ""
+ MONG_NINE =: MONG_NINE , % ""
+ MONG_LT =: MONG_LT , % ""
+ MONG_GT =: MONG_GT , % ""
+ MONG_LGU =: MONG_LGU , % ""
+ MONG_RGU =: MONG_RGU , % ""
+ MONG_OPAREN =: MONG_OPAREN , % ""
+ MONG_CPAREN =: MONG_CPAREN , % ""
+ MONG_DORWOLJIN =: MONG_DORWOLJIN, % ""
+ MONG_FULLSTOP =: MONG_FULLSTOP , % ""
+ MONG_COLON =: MONG_COLON , % ""
+ MONG_ELLIPSIS =: MONG_ELLIPSIS , % ""
+ MONG_EXCLAMATION =: MONG_EXCLAMATION,% ""
+ MONG_QUESTION =: MONG_QUESTION, % ""
+ MONG_QUESTEXCLAM =: MONG_QUESTEXCLAM,% ""
+ MONG_EXCLAMQUEST =: MONG_EXCLAMQUEST,% ""
+ MONG_TASLAL =: MONG_TASLAL , % ""
+ MONG_MSP =: MONG_MSP , % ""
+ MONG_MVS =: MONG_MVS , % ""
+ MONG_NCEG =: MONG_NCEG , % ""
+ MONG_GCEG =: MONG_GCEG , % ""
+ MONG_TITEMSTROKE =: MONG_TITEMSTROKE;% ""
+ %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_MSP:
+ MONG_A =:| MONG_NIRUGU, %
+ MONG_AE =:| MONG_NIRUGU, %
+ MONG_I =: MONG_I, %
+ MONG_U =: MONG_U, %
+ MONG_B =: MONG_B, %
+ MONG_K =: MONG_K, %
+ MONG_D =: MONG_D, %
+ MONG_T =: MONG_T, %
+ MONG_Y =: MONG_SHILBE; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ZERO:MONG_ONE:MONG_TWO:MONG_THREE: MONG_FOUR:
+ MONG_FIVE:MONG_SIX:MONG_SEVEN:MONG_EIGHT:MONG_NINE:
+ "," kern 0.5gedeswidth#, %
+ "." kern 0.5gedeswidth#, %
+ ";" kern 0.5gedeswidth#, %
+ ":" kern 0.5gedeswidth#, %
+ "!" kern 0.5gedeswidth#, %
+ "?" kern 0.5gedeswidth#, %
+ MONG_QUESTEXCLAM kern 0.5gedeswidth#, %
+ MONG_EXCLAMQUEST kern 0.5gedeswidth#, %
+ MONG_OPAREN kern 0.5gedeswidth#, %
+% MONG_CPAREN kern 0.5gedeswidth#, %
+ MONG_LT kern 0.5gedeswidth#, %
+% MONG_GT kern 0.5gedeswidth#, %
+ MONG_LGU kern 0.5gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Special final cases
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_SUUL: %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ORXIC: %
+ MONG_MVS kern 0.25gedeswidth#,%
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_BIODOISUUL: %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_NCEG: %
+ MONG_A |=: MONG_ORXIC, %
+ MONG_AE |=: MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_MVS: %
+ MONG_A =: MONG_ORXIC, %
+ MONG_AE =: MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Individual letters
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_A: % "a"
+ MONG_FVS1 =: MONG_AVAR, % special
+ MONG_BNDRY =: MONG_SUUL, %
+ MONG_MVS =:| MONG_SUUL, %
+ "," =:| MONG_SUUL, %
+ "." =:| MONG_SUUL, %
+ ";" =:| MONG_SUUL, %
+ ":" =:| MONG_SUUL, %
+ "!" =:| MONG_SUUL, %
+ "?" =:| MONG_SUUL, %
+ MONG_QUESTEXCLAM=:| MONG_SUUL, %
+ MONG_EXCLAMQUEST=:| MONG_SUUL, %
+ MONG_OPAREN =:| MONG_SUUL, %
+ MONG_CPAREN =:| MONG_SUUL, %
+ MONG_LT =:| MONG_SUUL, %
+ MONG_GT =:| MONG_SUUL, %
+ MONG_LGU =:| MONG_SUUL, %
+ MONG_RGU =:| MONG_SUUL, %
+ MONG_ZERO =:| MONG_SUUL, %
+ MONG_ONE =:| MONG_SUUL, %
+ MONG_TWO =:| MONG_SUUL, %
+ MONG_THREE =:| MONG_SUUL, %
+ MONG_FOUR =:| MONG_SUUL, %
+ MONG_FIVE =:| MONG_SUUL, %
+ MONG_SIX =:| MONG_SUUL, %
+ MONG_SEVEN =:| MONG_SUUL, %
+ MONG_EIGHT =:| MONG_SUUL, %
+ MONG_NINE =:| MONG_SUUL; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_AVAR: % "special a"
+ MONG_BNDRY =: MONG_ORXIC, %
+ MONG_MVS =:| MONG_ORXIC, %
+ "," =:| MONG_ORXIC, %
+ "." =:| MONG_ORXIC, %
+ ";" =:| MONG_ORXIC, %
+ ":" =:| MONG_ORXIC, %
+ "!" =:| MONG_ORXIC, %
+ "?" =:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST=:| MONG_ORXIC, %
+ MONG_OPAREN =:| MONG_ORXIC, %
+ MONG_CPAREN =:| MONG_ORXIC, %
+ MONG_LT =:| MONG_ORXIC, %
+ MONG_GT =:| MONG_ORXIC, %
+ MONG_LGU =:| MONG_ORXIC, %
+ MONG_RGU =:| MONG_ORXIC, %
+ MONG_ZERO =:| MONG_ORXIC, %
+ MONG_ONE =:| MONG_ORXIC, %
+ MONG_TWO =:| MONG_ORXIC, %
+ MONG_THREE =:| MONG_ORXIC, %
+ MONG_FOUR =:| MONG_ORXIC, %
+ MONG_FIVE =:| MONG_ORXIC, %
+ MONG_SIX =:| MONG_ORXIC, %
+ MONG_SEVEN =:| MONG_ORXIC, %
+ MONG_EIGHT =:| MONG_ORXIC, %
+ MONG_NINE =:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_AE: % "a"
+ MONG_BNDRY =: MONG_SUUL, %
+ MONG_MVS =:| MONG_SUUL, %
+ "," =:| MONG_SUUL, %
+ "." =:| MONG_SUUL, %
+ ";" =:| MONG_SUUL, %
+ ":" =:| MONG_SUUL, %
+ "!" =:| MONG_SUUL, %
+ "?" =:| MONG_SUUL, %
+ MONG_QUESTEXCLAM=:| MONG_SUUL, %
+ MONG_EXCLAMQUEST=:| MONG_SUUL, %
+ MONG_OPAREN =:| MONG_SUUL, %
+ MONG_CPAREN =:| MONG_SUUL, %
+ MONG_LT =:| MONG_SUUL, %
+ MONG_GT =:| MONG_SUUL, %
+ MONG_LGU =:| MONG_SUUL, %
+ MONG_RGU =:| MONG_SUUL, %
+ MONG_ZERO =:| MONG_SUUL, %
+ MONG_ONE =:| MONG_SUUL, %
+ MONG_TWO =:| MONG_SUUL, %
+ MONG_THREE =:| MONG_SUUL, %
+ MONG_FOUR =:| MONG_SUUL, %
+ MONG_FIVE =:| MONG_SUUL, %
+ MONG_SIX =:| MONG_SUUL, %
+ MONG_SEVEN =:| MONG_SUUL, %
+ MONG_EIGHT =:| MONG_SUUL, %
+ MONG_NINE =:| MONG_SUUL; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_I: % "i"
+ MONG_FVS1 =: MONG_IVAR, % special
+ MONG_BNDRY =: MONG_ADAGI, %
+ MONG_MVS =:| MONG_ADAGI, %
+ "," =:| MONG_ADAGI, %
+ "." =:| MONG_ADAGI, %
+ ";" =:| MONG_ADAGI, %
+ ":" =:| MONG_ADAGI, %
+ "!" =:| MONG_ADAGI, %
+ "?" =:| MONG_ADAGI, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGI, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGI, %
+ MONG_OPAREN =:| MONG_ADAGI, %
+ MONG_CPAREN =:| MONG_ADAGI, %
+ MONG_LT =:| MONG_ADAGI, %
+ MONG_GT =:| MONG_ADAGI, %
+ MONG_LGU =:| MONG_ADAGI, %
+ MONG_RGU =:| MONG_ADAGI, %
+ MONG_ZERO =:| MONG_ADAGI, %
+ MONG_ONE =:| MONG_ADAGI, %
+ MONG_TWO =:| MONG_ADAGI, %
+ MONG_THREE =:| MONG_ADAGI, %
+ MONG_FOUR =:| MONG_ADAGI, %
+ MONG_FIVE =:| MONG_ADAGI, %
+ MONG_SIX =:| MONG_ADAGI, %
+ MONG_SEVEN =:| MONG_ADAGI, %
+ MONG_EIGHT =:| MONG_ADAGI, %
+ MONG_NINE =:| MONG_ADAGI; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_IVAR: %
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGI: %
+ MONG_MVS kern 0.5gedeswidth#, %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_U: % "u"
+ MONG_BNDRY =: MONG_ADAGU, %
+ MONG_MVS =:| MONG_ADAGU, %
+ "," =:| MONG_ADAGU, %
+ "." =:| MONG_ADAGU, %
+ ";" =:| MONG_ADAGU, %
+ ":" =:| MONG_ADAGU, %
+ "!" =:| MONG_ADAGU, %
+ "?" =:| MONG_ADAGU, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGU, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGU, %
+ MONG_OPAREN =:| MONG_ADAGU, %
+ MONG_CPAREN =:| MONG_ADAGU, %
+ MONG_LT =:| MONG_ADAGU, %
+ MONG_GT =:| MONG_ADAGU, %
+ MONG_LGU =:| MONG_ADAGU, %
+ MONG_RGU =:| MONG_ADAGU, %
+ MONG_ZERO =:| MONG_ADAGU, %
+ MONG_ONE =:| MONG_ADAGU, %
+ MONG_TWO =:| MONG_ADAGU, %
+ MONG_THREE =:| MONG_ADAGU, %
+ MONG_FOUR =:| MONG_ADAGU, %
+ MONG_FIVE =:| MONG_ADAGU, %
+ MONG_SIX =:| MONG_ADAGU, %
+ MONG_SEVEN =:| MONG_ADAGU, %
+ MONG_EIGHT =:| MONG_ADAGU, %
+ MONG_NINE =:| MONG_ADAGU; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGU: %
+% "=" |=: MONG_MVS, %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_B: % "b"
+ MONG_A =: MONG_LIGBA, % "ba"
+ MONG_AE =: MONG_LIGBA, % "ba"
+ MONG_I =: MONG_LIGBI, % "bi"
+ MONG_U =: MONG_LIGBU, % "bu"
+ MONG_L =: MONG_LIGBL, % "bl"
+ MONG_N =: MONG_LIGBN, % "bn"
+ MONG_BNDRY =: MONG_ADAGB, % "b"
+ MONG_MVS =:| MONG_ADAGB, %
+ "," =:| MONG_ADAGB, %
+ "." =:| MONG_ADAGB, %
+ ";" =:| MONG_ADAGB, %
+ ":" =:| MONG_ADAGB, %
+ "!" =:| MONG_ADAGB, %
+ "?" =:| MONG_ADAGB, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGB, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGB, %
+ MONG_OPAREN =:| MONG_ADAGB, %
+ MONG_CPAREN =:| MONG_ADAGB, %
+ MONG_LT =:| MONG_ADAGB, %
+ MONG_GT =:| MONG_ADAGB, %
+ MONG_LGU =:| MONG_ADAGB, %
+ MONG_RGU =:| MONG_ADAGB, %
+ MONG_ZERO =:| MONG_ADAGB, %
+ MONG_ONE =:| MONG_ADAGB, %
+ MONG_TWO =:| MONG_ADAGB, %
+ MONG_THREE =:| MONG_ADAGB, %
+ MONG_FOUR =:| MONG_ADAGB, %
+ MONG_FIVE =:| MONG_ADAGB, %
+ MONG_SIX =:| MONG_ADAGB, %
+ MONG_SEVEN =:| MONG_ADAGB, %
+ MONG_EIGHT =:| MONG_ADAGB, %
+ MONG_NINE =:| MONG_ADAGB; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGB: %
+% "=" |=: MONG_MVS, %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_C: %
+ MONG_BNDRY |=: MONG_BIODOISUUL,% "c"
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_CH: % "C"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_D: % "d"
+ MONG_B =:| MONG_DUNDD, %
+ MONG_C =:| MONG_DUNDD, %
+ MONG_CH =:| MONG_DUNDD, %
+ MONG_D =:| MONG_DUNDD, %
+ MONG_F =:| MONG_DUNDD, %
+ MONG_G =:| MONG_DUNDD, %
+ MONG_GH =:| MONG_DUNDD, %
+ MONG_H =:| MONG_DUNDD, %
+ MONG_J =:| MONG_DUNDD, %
+ MONG_K =:| MONG_DUNDD, %
+ MONG_KH =:| MONG_DUNDD, %
+% MONG_L =:| MONG_DUNDD, %
+ MONG_M =:| MONG_DUNDD, %
+ MONG_N =:| MONG_DUNDD, %
+ MONG_P =:| MONG_DUNDD, %
+ MONG_R =:| MONG_DUNDD, %
+ MONG_S =:| MONG_DUNDD, %
+ MONG_SH =:| MONG_DUNDD, %
+ MONG_T =:| MONG_DUNDD, %
+ MONG_V =:| MONG_DUNDD, %
+ MONG_X =:| MONG_DUNDD, %
+ MONG_Y =:| MONG_DUNDD, %
+ MONG_Z =:| MONG_DUNDD, %
+ MONG_ZH =:| MONG_DUNDD, %
+ MONG_FVS1 =: MONG_DVAR, % "ed'"
+ MONG_BNDRY =: MONG_ADAGD, %
+ MONG_MVS =:| MONG_ADAGD, %
+ "," =:| MONG_ADAGD, %
+ "." =:| MONG_ADAGD, %
+ ";" =:| MONG_ADAGD, %
+ ":" =:| MONG_ADAGD, %
+ "!" =:| MONG_ADAGD, %
+ "?" =:| MONG_ADAGD, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGD, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGD, %
+ MONG_OPAREN =:| MONG_ADAGD, %
+ MONG_CPAREN =:| MONG_ADAGD, %
+ MONG_LT =:| MONG_ADAGD, %
+ MONG_GT =:| MONG_ADAGD, %
+ MONG_LGU =:| MONG_ADAGD, %
+ MONG_RGU =:| MONG_ADAGD, %
+ MONG_ZERO =:| MONG_ADAGD, %
+ MONG_ONE =:| MONG_ADAGD, %
+ MONG_TWO =:| MONG_ADAGD, %
+ MONG_THREE =:| MONG_ADAGD, %
+ MONG_FOUR =:| MONG_ADAGD, %
+ MONG_FIVE =:| MONG_ADAGD, %
+ MONG_SIX =:| MONG_ADAGD, %
+ MONG_SEVEN =:| MONG_ADAGD, %
+ MONG_EIGHT =:| MONG_ADAGD, %
+ MONG_NINE =:| MONG_ADAGD; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGD: % "-d "
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_DVAR: % "f"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_F: % "f"
+ MONG_A =: MONG_LIGFA, % "fa"
+ MONG_I =: MONG_LIGFI, % "fi"
+ MONG_U =: MONG_LIGFU, % "fu"
+ MONG_L =: MONG_LIGFL, % "fl"
+ MONG_N =: MONG_LIGFN, % "fn"
+ MONG_BNDRY |=: MONG_ORXIC, %
+ MONG_MVS =:| MONG_ORXIC, %
+ "," =:| MONG_ORXIC, %
+ "." =:| MONG_ORXIC, %
+ ";" =:| MONG_ORXIC, %
+ ":" =:| MONG_ORXIC, %
+ "!" =:| MONG_ORXIC, %
+ "?" =:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST=:| MONG_ORXIC, %
+ MONG_OPAREN =:| MONG_ORXIC, %
+ MONG_CPAREN =:| MONG_ORXIC, %
+ MONG_LT =:| MONG_ORXIC, %
+ MONG_GT =:| MONG_ORXIC, %
+ MONG_LGU =:| MONG_ORXIC, %
+ MONG_RGU =:| MONG_ORXIC, %
+ MONG_ZERO =:| MONG_ORXIC, %
+ MONG_ONE =:| MONG_ORXIC, %
+ MONG_TWO =:| MONG_ORXIC, %
+ MONG_THREE =:| MONG_ORXIC, %
+ MONG_FOUR =:| MONG_ORXIC, %
+ MONG_FIVE =:| MONG_ORXIC, %
+ MONG_SIX =:| MONG_ORXIC, %
+ MONG_SEVEN =:| MONG_ORXIC, %
+ MONG_EIGHT =:| MONG_ORXIC, %
+ MONG_NINE =:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_G: % "g"
+ MONG_AE =:| MONG_K, % "ge"
+ MONG_V =:| MONG_K, % "ge"
+ MONG_B =:| MONG_DUNDX, %
+ MONG_C =:| MONG_DUNDX, %
+ MONG_CH =:| MONG_DUNDX, %
+ MONG_D =:| MONG_DUNDX, %
+ MONG_F =:| MONG_DUNDX, %
+ MONG_G =:| MONG_DUNDX, %
+ MONG_GH =:| MONG_DUNDX, %
+ MONG_H =:| MONG_DUNDX, %
+ MONG_J =:| MONG_DUNDX, %
+ MONG_K =:| MONG_DUNDX, %
+ MONG_KH =:| MONG_DUNDX, %
+ MONG_L =:| MONG_DUNDX, %
+ MONG_M =:| MONG_DUNDX, %
+ MONG_N =:| MONG_DUNDX, %
+ MONG_P =:| MONG_DUNDX, %
+ MONG_R =:| MONG_DUNDX, %
+ MONG_S =:| MONG_DUNDX, %
+ MONG_SH =:| MONG_DUNDX, %
+ MONG_T =:| MONG_DUNDX, %
+ MONG_V =:| MONG_DUNDX, %
+ MONG_X =:| MONG_DUNDX, %
+ MONG_Y =:| MONG_DUNDX, %
+ MONG_Z =:| MONG_DUNDX, %
+ MONG_ZH =:| MONG_DUNDX, %
+ MONG_FVS1 =: MONG_DUNDX, % "g variant"
+ MONG_BNDRY =: MONG_ADAGX, %
+ MONG_MVS =:| MONG_ADAGG, %
+ "," =:| MONG_ADAGX, %
+ "." =:| MONG_ADAGX, %
+ ";" =:| MONG_ADAGX, %
+ ":" =:| MONG_ADAGX, %
+ "!" =:| MONG_ADAGX, %
+ "?" =:| MONG_ADAGX, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGX, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGX, %
+ MONG_OPAREN =:| MONG_ADAGX, %
+ MONG_CPAREN =:| MONG_ADAGX, %
+ MONG_LT =:| MONG_ADAGX, %
+ MONG_GT =:| MONG_ADAGX, %
+ MONG_LGU =:| MONG_ADAGX, %
+ MONG_RGU =:| MONG_ADAGX, %
+ MONG_ZERO =:| MONG_ADAGX, %
+ MONG_ONE =:| MONG_ADAGX, %
+ MONG_TWO =:| MONG_ADAGX, %
+ MONG_THREE =:| MONG_ADAGX, %
+ MONG_FOUR =:| MONG_ADAGX, %
+ MONG_FIVE =:| MONG_ADAGX, %
+ MONG_SIX =:| MONG_ADAGX, %
+ MONG_SEVEN =:| MONG_ADAGX, %
+ MONG_EIGHT =:| MONG_ADAGX, %
+ MONG_NINE =:| MONG_ADAGX; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGG: % "g=a"
+ MONG_MVS |=: MONG_GCEG; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_GCEG: % "g=a"
+ MONG_A |=: MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_EXENG: % " ge-"
+ MONG_AE =:| MONG_K, %
+ MONG_FVS1 =: MONG_EXENX; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_GH: % "gh"
+ MONG_A =: MONG_LIGGHA, % "gha"
+ MONG_I =: MONG_LIGGHI, % "ghi"
+ MONG_U =: MONG_LIGGHU, % "ghu"
+ MONG_L =: MONG_LIGGHL, % "ghl"
+ MONG_N =: MONG_LIGGHN, % "ghn"
+ MONG_BNDRY |=: MONG_ORXIC, %
+ MONG_MVS |=:| MONG_ORXIC, %
+ "," |=:| MONG_ORXIC, %
+ "." |=:| MONG_ORXIC, %
+ ";" |=:| MONG_ORXIC, %
+ ":" |=:| MONG_ORXIC, %
+ "!" |=:| MONG_ORXIC, %
+ "?" |=:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM|=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST|=:| MONG_ORXIC, %
+ MONG_OPAREN |=:| MONG_ORXIC, %
+ MONG_CPAREN |=:| MONG_ORXIC, %
+ MONG_LT |=:| MONG_ORXIC, %
+ MONG_GT |=:| MONG_ORXIC, %
+ MONG_LGU |=:| MONG_ORXIC, %
+ MONG_RGU |=:| MONG_ORXIC, %
+ MONG_ZERO |=:| MONG_ORXIC, %
+ MONG_ONE |=:| MONG_ORXIC, %
+ MONG_TWO |=:| MONG_ORXIC, %
+ MONG_THREE |=:| MONG_ORXIC, %
+ MONG_FOUR |=:| MONG_ORXIC, %
+ MONG_FIVE |=:| MONG_ORXIC, %
+ MONG_SIX |=:| MONG_ORXIC, %
+ MONG_SEVEN |=:| MONG_ORXIC, %
+ MONG_EIGHT |=:| MONG_ORXIC, %
+ MONG_NINE |=:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_H: %
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_J: % "j"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_K: % "k"
+ MONG_A =: MONG_LIGKA, % "ka"
+ MONG_AE =: MONG_LIGKA, % "ke"
+ MONG_I =: MONG_LIGKI, % "ki"
+ MONG_U =: MONG_LIGKU, % "ku"
+ MONG_B =:| MONG_BAGANUM, % "kb"
+ MONG_C =:| MONG_BAGANUM, % "kc"
+ MONG_CH =:| MONG_BAGANUM, % "kC"
+ MONG_D =:| MONG_BAGANUM, % "kd"
+ MONG_F =:| MONG_BAGANUM, % "kf"
+ MONG_G =:| MONG_BAGANUM, % "kg"
+ MONG_GH =:| MONG_BAGANUM, % "kG"
+ MONG_K =:| MONG_BAGANUM, % "kk"
+ MONG_KH =:| MONG_BAGANUM, % "kK"
+ MONG_L =: MONG_LIGKL, % "kl"
+ MONG_M =: MONG_BAGANUM, % "km"
+ MONG_N =: MONG_LIGKN, % "kn"
+ MONG_P =:| MONG_BAGANUM, % "kp"
+ MONG_R =:| MONG_BAGANUM, % "kr"
+ MONG_S =:| MONG_BAGANUM, % "ks"
+ MONG_SH =:| MONG_BAGANUM, % "ksh"
+ MONG_T =:| MONG_BAGANUM, % "kt"
+ MONG_V =:| MONG_BAGANUM, % "kz"
+ MONG_Y =:| MONG_BAGANUM, % "kv"
+ MONG_Z =:| MONG_BAGANUM, % "ky"
+ MONG_ZH =:| MONG_BAGANUM, % "kZ"
+ MONG_BNDRY =: MONG_ADAGK, %
+ "," =:| MONG_ADAGK, %
+ "." =:| MONG_ADAGK, %
+ ";" =:| MONG_ADAGK, %
+ ":" =:| MONG_ADAGK, %
+ "!" =:| MONG_ADAGK, %
+ "?" =:| MONG_ADAGK, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGK, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGK, %
+ MONG_OPAREN =:| MONG_ADAGK, %
+ MONG_CPAREN =:| MONG_ADAGK, %
+ MONG_LT =:| MONG_ADAGK, %
+ MONG_GT =:| MONG_ADAGK, %
+ MONG_LGU =:| MONG_ADAGK, %
+ MONG_RGU =:| MONG_ADAGK, %
+ MONG_ZERO =:| MONG_ADAGK, %
+ MONG_ONE =:| MONG_ADAGK, %
+ MONG_TWO =:| MONG_ADAGK, %
+ MONG_THREE =:| MONG_ADAGK, %
+ MONG_FOUR =:| MONG_ADAGK, %
+ MONG_FIVE =:| MONG_ADAGK, %
+ MONG_SIX =:| MONG_ADAGK, %
+ MONG_SEVEN =:| MONG_ADAGK, %
+ MONG_EIGHT =:| MONG_ADAGK, %
+ MONG_NINE =:| MONG_ADAGK; %, %
+% "=" |=: MONG_MVS; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGK: %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_KH: % "kh"
+ MONG_A =: MONG_LIGKHA, % "kha"
+ MONG_I =: MONG_LIGKHI, % "khi"
+ MONG_U =: MONG_LIGKHU, % "khu"
+ MONG_L =: MONG_LIGKHL, % "khl"
+ MONG_N =: MONG_LIGKHN, % "khn"
+ MONG_BNDRY |=: MONG_ORXIC, %
+ MONG_MVS |=:| MONG_ORXIC, %
+ "," |=:| MONG_ORXIC, %
+ "." |=:| MONG_ORXIC, %
+ ";" |=:| MONG_ORXIC, %
+ ":" |=:| MONG_ORXIC, %
+ "!" |=:| MONG_ORXIC, %
+ "?" |=:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM|=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST|=:| MONG_ORXIC, %
+ MONG_OPAREN |=:| MONG_ORXIC, %
+ MONG_CPAREN |=:| MONG_ORXIC, %
+ MONG_LT |=:| MONG_ORXIC, %
+ MONG_GT |=:| MONG_ORXIC, %
+ MONG_LGU |=:| MONG_ORXIC, %
+ MONG_RGU |=:| MONG_ORXIC, %
+ MONG_ZERO |=:| MONG_ORXIC, %
+ MONG_ONE |=:| MONG_ORXIC, %
+ MONG_TWO |=:| MONG_ORXIC, %
+ MONG_THREE |=:| MONG_ORXIC, %
+ MONG_FOUR |=:| MONG_ORXIC, %
+ MONG_FIVE |=:| MONG_ORXIC, %
+ MONG_SIX |=:| MONG_ORXIC, %
+ MONG_SEVEN |=:| MONG_ORXIC, %
+ MONG_EIGHT |=:| MONG_ORXIC, %
+ MONG_NINE |=:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_L: %
+ MONG_L =: MONG_LIGLL, % "ll"
+ MONG_BNDRY =: MONG_ADAGL, % MONG_L
+ MONG_MVS =:| MONG_ADAGL, %
+ "," =:| MONG_ADAGL, %
+ "." =:| MONG_ADAGL, %
+ ";" =:| MONG_ADAGL, %
+ ":" =:| MONG_ADAGL, %
+ "!" =:| MONG_ADAGL, %
+ "?" =:| MONG_ADAGL, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGL, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGL, %
+ MONG_OPAREN =:| MONG_ADAGL, %
+ MONG_CPAREN =:| MONG_ADAGL, %
+ MONG_LT =:| MONG_ADAGL, %
+ MONG_GT =:| MONG_ADAGL, %
+ MONG_LGU =:| MONG_ADAGL, %
+ MONG_RGU =:| MONG_ADAGL, %
+ MONG_ZERO =:| MONG_ADAGL, %
+ MONG_ONE =:| MONG_ADAGL, %
+ MONG_TWO =:| MONG_ADAGL, %
+ MONG_THREE =:| MONG_ADAGL, %
+ MONG_FOUR =:| MONG_ADAGL, %
+ MONG_FIVE =:| MONG_ADAGL, %
+ MONG_SIX =:| MONG_ADAGL, %
+ MONG_SEVEN =:| MONG_ADAGL, %
+ MONG_EIGHT =:| MONG_ADAGL, %
+ MONG_NINE =:| MONG_ADAGL; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_HIGHLEWER: %
+ MONG_BNDRY =: MONG_ADAGL, % ""
+ MONG_MVS =:| MONG_ADAGL, %
+ "," =:| MONG_ADAGL, %
+ "." =:| MONG_ADAGL, %
+ ";" =:| MONG_ADAGL, %
+ ":" =:| MONG_ADAGL, %
+ "!" =:| MONG_ADAGL, %
+ "?" =:| MONG_ADAGL, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGL, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGL, %
+ MONG_OPAREN =:| MONG_ADAGL, %
+ MONG_CPAREN =:| MONG_ADAGL, %
+ MONG_LT =:| MONG_ADAGL, %
+ MONG_GT =:| MONG_ADAGL, %
+ MONG_LGU =:| MONG_ADAGL, %
+ MONG_RGU =:| MONG_ADAGL, %
+ MONG_ZERO =:| MONG_ADAGL, %
+ MONG_ONE =:| MONG_ADAGL, %
+ MONG_TWO =:| MONG_ADAGL, %
+ MONG_THREE =:| MONG_ADAGL, %
+ MONG_FOUR =:| MONG_ADAGL, %
+ MONG_FIVE =:| MONG_ADAGL, %
+ MONG_SIX =:| MONG_ADAGL, %
+ MONG_SEVEN =:| MONG_ADAGL, %
+ MONG_EIGHT =:| MONG_ADAGL, %
+ MONG_NINE =:| MONG_ADAGL; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGL: % "-l "
+ MONG_MVS kern 0.5gedeswidth#, % "l="
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_M: %
+ MONG_L =: MONG_LIGML, % "ml"
+ MONG_BNDRY =: MONG_ADAGM, %
+ MONG_MVS =:| MONG_ADAGM, %
+ "," =:| MONG_ADAGM, %
+ "." =:| MONG_ADAGM, %
+ ";" =:| MONG_ADAGM, %
+ ":" =:| MONG_ADAGM, %
+ "!" =:| MONG_ADAGM, %
+ "?" =:| MONG_ADAGM, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGM, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGM, %
+ MONG_OPAREN =:| MONG_ADAGM, %
+ MONG_CPAREN =:| MONG_ADAGM, %
+ MONG_LT =:| MONG_ADAGM, %
+ MONG_GT =:| MONG_ADAGM, %
+ MONG_LGU =:| MONG_ADAGM, %
+ MONG_RGU =:| MONG_ADAGM, %
+ MONG_ZERO =:| MONG_ADAGM, %
+ MONG_ONE =:| MONG_ADAGM, %
+ MONG_TWO =:| MONG_ADAGM, %
+ MONG_THREE =:| MONG_ADAGM, %
+ MONG_FOUR =:| MONG_ADAGM, %
+ MONG_FIVE =:| MONG_ADAGM, %
+ MONG_SIX =:| MONG_ADAGM, %
+ MONG_SEVEN =:| MONG_ADAGM, %
+ MONG_EIGHT =:| MONG_ADAGM, %
+ MONG_NINE =:| MONG_ADAGM; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGM: % MONG_M
+ MONG_MVS kern 0.5gedeswidth#, %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_N: % "n"
+ MONG_B =:| MONG_SHUD, % "shud, no dusal"
+ MONG_C =:| MONG_SHUD, % "shud, no dusal"
+ MONG_CH =:| MONG_SHUD, % "shud, no dusal"
+ MONG_D =:| MONG_SHUD, % "shud, no dusal"
+ MONG_F =:| MONG_SHUD, % "shud, no dusal"
+ MONG_G =: MONG_DUNDNG, % "-ng-"
+ MONG_GH =:| MONG_SHUD, % "shud, no dusal"
+ MONG_H =:| MONG_SHUD, % "shud, no dusal"
+ MONG_J =:| MONG_SHUD, % "shud, no dusal"
+ MONG_K =:| MONG_SHUD, % "shud, no dusal"
+ MONG_KH =:| MONG_SHUD, % "shud, no dusal"
+ MONG_L =:| MONG_SHUD, % "shud, no dusal"
+ MONG_M =:| MONG_SHUD, % "shud, no dusal"
+ MONG_N =:| MONG_SHUD, % "shud, no dusal"
+ MONG_P =:| MONG_SHUD, % "shud, no dusal"
+ MONG_R =:| MONG_SHUD, % "shud, no dusal"
+ MONG_S =:| MONG_SHUD, % "shud, no dusal"
+ MONG_SH =:| MONG_SHUD, % "shud, no dusal"
+ MONG_T =:| MONG_SHUD, % "shud, no dusal"
+ MONG_V =:| MONG_SHUD, % "shud, no dusal"
+ MONG_X =:| MONG_SHUD, % "shud, no dusal"
+ MONG_Y =:| MONG_SHUD, % "shud, no dusal"
+ MONG_Z =:| MONG_SHUD, % "shud, no dusal"
+ MONG_ZH =:| MONG_SHUD, % "shud, no dusal"
+ MONG_FVS1 =: MONG_NVAR, % "n variant"
+ MONG_BNDRY =: MONG_ADAGN, % "n "
+ MONG_MVS =:| MONG_ADAGN, % "n "
+ "," =:| MONG_ADAGN, %
+ "." =:| MONG_ADAGN, %
+ ";" =:| MONG_ADAGN, %
+ ":" =:| MONG_ADAGN, %
+ "!" =:| MONG_ADAGN, %
+ "?" =:| MONG_ADAGN, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGN, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGN, %
+ MONG_OPAREN =:| MONG_ADAGN, %
+ MONG_CPAREN =:| MONG_ADAGN, %
+ MONG_LT =:| MONG_ADAGN, %
+ MONG_GT =:| MONG_ADAGN, %
+ MONG_LGU =:| MONG_ADAGN, %
+ MONG_RGU =:| MONG_ADAGN, %
+ MONG_ZERO =:| MONG_ADAGN, %
+ MONG_ONE =:| MONG_ADAGN, %
+ MONG_TWO =:| MONG_ADAGN, %
+ MONG_THREE =:| MONG_ADAGN, %
+ MONG_FOUR =:| MONG_ADAGN, %
+ MONG_FIVE =:| MONG_ADAGN, %
+ MONG_SIX =:| MONG_ADAGN, %
+ MONG_SEVEN =:| MONG_ADAGN, %
+ MONG_EIGHT =:| MONG_ADAGN, %
+ MONG_NINE =:| MONG_ADAGN; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_EXENN: % dusaltai titem
+ MONG_FVS1 =: MONG_TITEM; % titem, no dusal
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGN: % dusaltai titem
+ MONG_MVS |=: MONG_NCEG, %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_NVAR: % "n" reversed
+ MONG_B =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_C =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_CH =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_D =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_F =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_GH =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_H =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_J =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_K =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_KH =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_L =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_M =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_N =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_P =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_R =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_S =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_SH =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_T =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_V =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_X =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_Y =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_Z =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_ZH =:|> MONG_CEGTEISHUD,% "shud w. dusal"
+ MONG_MVS =:| MONG_ADAGNVAR; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGNVAR: % dusaltai titem
+ MONG_MVS kern 0.5gedeswidth#; % " -n'"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ligtable "o": see ligtable "u"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_P: % MONG_P
+ MONG_A =: MONG_LIGPA, % "pa"
+ MONG_I =: MONG_LIGPI, % "pi"
+ MONG_U =: MONG_LIGPU, % "pu"
+ MONG_L =: MONG_LIGPL, % "pl"
+ MONG_N =: MONG_LIGPN, % "pn"
+ MONG_BNDRY |=: MONG_ORXIC, %
+% "=" |=:| MONG_ORXIC, %
+ "," |=:| MONG_ORXIC, %
+ "." |=:| MONG_ORXIC, %
+ ";" |=:| MONG_ORXIC, %
+ ":" |=:| MONG_ORXIC, %
+ "!" |=:| MONG_ORXIC, %
+ "?" |=:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM|=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST|=:| MONG_ORXIC, %
+ MONG_OPAREN |=:| MONG_ORXIC, %
+ MONG_CPAREN |=:| MONG_ORXIC, %
+ MONG_LT |=:| MONG_ORXIC, %
+ MONG_GT |=:| MONG_ORXIC, %
+ MONG_LGU |=:| MONG_ORXIC, %
+ MONG_RGU |=:| MONG_ORXIC, %
+ MONG_ZERO |=:| MONG_ORXIC, %
+ MONG_ONE |=:| MONG_ORXIC, %
+ MONG_TWO |=:| MONG_ORXIC, %
+ MONG_THREE |=:| MONG_ORXIC, %
+ MONG_FOUR |=:| MONG_ORXIC, %
+ MONG_FIVE |=:| MONG_ORXIC, %
+ MONG_SIX |=:| MONG_ORXIC, %
+ MONG_SEVEN |=:| MONG_ORXIC, %
+ MONG_EIGHT |=:| MONG_ORXIC, %
+ MONG_NINE |=:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_R: % "r"
+ MONG_BNDRY =: MONG_ADAGR, %
+ MONG_MVS =:| MONG_ADAGR, %
+ "," =:| MONG_ADAGR, %
+ "." =:| MONG_ADAGR, %
+ ";" =:| MONG_ADAGR, %
+ ":" =:| MONG_ADAGR, %
+ "!" =:| MONG_ADAGR, %
+ "?" =:| MONG_ADAGR, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGR, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGR, %
+ MONG_OPAREN =:| MONG_ADAGR, %
+ MONG_CPAREN =:| MONG_ADAGR, %
+ MONG_LT =:| MONG_ADAGR, %
+ MONG_GT =:| MONG_ADAGR, %
+ MONG_LGU =:| MONG_ADAGR, %
+ MONG_RGU =:| MONG_ADAGR, %
+ MONG_ZERO =:| MONG_ADAGR, %
+ MONG_ONE =:| MONG_ADAGR, %
+ MONG_TWO =:| MONG_ADAGR, %
+ MONG_THREE =:| MONG_ADAGR, %
+ MONG_FOUR =:| MONG_ADAGR, %
+ MONG_FIVE =:| MONG_ADAGR, %
+ MONG_SIX =:| MONG_ADAGR, %
+ MONG_SEVEN =:| MONG_ADAGR, %
+ MONG_EIGHT =:| MONG_ADAGR, %
+ MONG_NINE =:| MONG_ADAGR; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGR: % "-r "
+ MONG_MVS kern 0.5gedeswidth#, % "x="
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_S: % "s"
+ MONG_H =: MONG_SH, % "sh"
+ MONG_L |=: MONG_HIGHLEWER, %
+ MONG_BNDRY =: MONG_ADAGS, %
+ "," =:| MONG_ADAGS, %
+ "." =:| MONG_ADAGS, %
+ ";" =:| MONG_ADAGS, %
+ ":" =:| MONG_ADAGS, %
+ "!" =:| MONG_ADAGS, %
+ "?" =:| MONG_ADAGS, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGS, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGS, %
+ MONG_OPAREN =:| MONG_ADAGS, %
+ MONG_CPAREN =:| MONG_ADAGS, %
+ MONG_LT =:| MONG_ADAGS, %
+ MONG_GT =:| MONG_ADAGS, %
+ MONG_LGU =:| MONG_ADAGS, %
+ MONG_RGU =:| MONG_ADAGS, %
+ MONG_ZERO =:| MONG_ADAGS, %
+ MONG_ONE =:| MONG_ADAGS, %
+ MONG_TWO =:| MONG_ADAGS, %
+ MONG_THREE =:| MONG_ADAGS, %
+ MONG_FOUR =:| MONG_ADAGS, %
+ MONG_FIVE =:| MONG_ADAGS, %
+ MONG_SIX =:| MONG_ADAGS, %
+ MONG_SEVEN =:| MONG_ADAGS, %
+ MONG_EIGHT =:| MONG_ADAGS, %
+ MONG_NINE =:| MONG_ADAGS; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_EXENS: % MONG_S
+ MONG_H =: MONG_EXENSH; % "sh"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGS: % MONG_S
+% "=" |=: MONG_MVS, %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_SH: % "sh"
+ MONG_L |=: MONG_HIGHLEWER, %
+ MONG_BNDRY =: MONG_ADAGSH, %
+ "," =:| MONG_ADAGSH, %
+ "." =:| MONG_ADAGSH, %
+ ";" =:| MONG_ADAGSH, %
+ ":" =:| MONG_ADAGSH, %
+ "!" =:| MONG_ADAGSH, %
+ "?" =:| MONG_ADAGSH, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGSH, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGSH, %
+ MONG_OPAREN =:| MONG_ADAGSH, %
+ MONG_CPAREN =:| MONG_ADAGSH, %
+ MONG_LT =:| MONG_ADAGSH, %
+ MONG_GT =:| MONG_ADAGSH, %
+ MONG_LGU =:| MONG_ADAGSH, %
+ MONG_RGU =:| MONG_ADAGSH, %
+ MONG_ZERO =:| MONG_ADAGSH, %
+ MONG_ONE =:| MONG_ADAGSH, %
+ MONG_TWO =:| MONG_ADAGSH, %
+ MONG_THREE =:| MONG_ADAGSH, %
+ MONG_FOUR =:| MONG_ADAGSH, %
+ MONG_FIVE =:| MONG_ADAGSH, %
+ MONG_SIX =:| MONG_ADAGSH, %
+ MONG_SEVEN =:| MONG_ADAGSH, %
+ MONG_EIGHT =:| MONG_ADAGSH, %
+ MONG_NINE =:| MONG_ADAGSH; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGSH: % "sh"
+% "=" |=: MONG_MVS, %
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_T: % MONG_T
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ MONG_FVS1 =: MONG_D, % special
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_V: % MONG_V
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_X: % MONG_X
+ MONG_BNDRY =: MONG_ADAGX, %
+ MONG_MVS =:| MONG_ADAGX, %
+ "," =:| MONG_ADAGX, %
+ "." =:| MONG_ADAGX, %
+ ";" =:| MONG_ADAGX, %
+ ":" =:| MONG_ADAGX, %
+ "!" =:| MONG_ADAGX, %
+ "?" =:| MONG_ADAGX, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGX, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGX, %
+ MONG_OPAREN =:| MONG_ADAGX, %
+ MONG_CPAREN =:| MONG_ADAGX, %
+ MONG_LT =:| MONG_ADAGX, %
+ MONG_GT =:| MONG_ADAGX, %
+ MONG_LGU =:| MONG_ADAGX, %
+ MONG_RGU =:| MONG_ADAGX, %
+ MONG_ZERO =:| MONG_ADAGX, %
+ MONG_ONE =:| MONG_ADAGX, %
+ MONG_TWO =:| MONG_ADAGX, %
+ MONG_THREE =:| MONG_ADAGX, %
+ MONG_FOUR =:| MONG_ADAGX, %
+ MONG_FIVE =:| MONG_ADAGX, %
+ MONG_SIX =:| MONG_ADAGX, %
+ MONG_SEVEN =:| MONG_ADAGX, %
+ MONG_EIGHT =:| MONG_ADAGX, %
+ MONG_NINE =:| MONG_ADAGX; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGX: % "-x "
+ MONG_MVS kern 0.5gedeswidth#, % "x="
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_Y: % "y"
+% MONG_SHILBE =:| MONG_SHILBE, % "yi"
+%
+% This one is temporarily disabled. Otherwise, I couldn't
+% write things like 'yisuduger' properly.
+%
+ MONG_MVS =:| MONG_ADAGI; % "y="
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_Z: % "z"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ZH: % "Z"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ MONG_MVS |=:| MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_DUNDNG: % "ng"
+ MONG_BNDRY =: MONG_ADAGNG, %
+ "," =:| MONG_ADAGNG, %
+ "." =:| MONG_ADAGNG, %
+ ";" =:| MONG_ADAGNG, %
+ ":" =:| MONG_ADAGNG, %
+ "!" =:| MONG_ADAGNG, %
+ "?" =:| MONG_ADAGNG, %
+ MONG_QUESTEXCLAM=:| MONG_ADAGNG, %
+ MONG_EXCLAMQUEST=:| MONG_ADAGNG, %
+ MONG_OPAREN =:| MONG_ADAGNG, %
+ MONG_CPAREN =:| MONG_ADAGNG, %
+ MONG_LT =:| MONG_ADAGNG, %
+ MONG_GT =:| MONG_ADAGNG, %
+ MONG_LGU =:| MONG_ADAGNG, %
+ MONG_RGU =:| MONG_ADAGNG, %
+ MONG_ZERO =:| MONG_ADAGNG, %
+ MONG_ONE =:| MONG_ADAGNG, %
+ MONG_TWO =:| MONG_ADAGNG, %
+ MONG_THREE =:| MONG_ADAGNG, %
+ MONG_FOUR =:| MONG_ADAGNG, %
+ MONG_FIVE =:| MONG_ADAGNG, %
+ MONG_SIX =:| MONG_ADAGNG, %
+ MONG_SEVEN =:| MONG_ADAGNG, %
+ MONG_EIGHT =:| MONG_ADAGNG, %
+ MONG_NINE =:| MONG_ADAGNG; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_ADAGNG: % "ng"
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGBA: % "ba"
+ MONG_L |=: MONG_HIGHLEWER, % "bal"
+ MONG_BNDRY |=: MONG_ORXIC, %
+ "," |=:| MONG_ORXIC, %
+ "." |=:| MONG_ORXIC, %
+ ";" |=:| MONG_ORXIC, %
+ ":" |=:| MONG_ORXIC, %
+ "!" |=:| MONG_ORXIC, %
+ "?" |=:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM|=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST|=:| MONG_ORXIC, %
+ MONG_OPAREN |=:| MONG_ORXIC, %
+ MONG_CPAREN |=:| MONG_ORXIC, %
+ MONG_LT |=:| MONG_ORXIC, %
+ MONG_GT |=:| MONG_ORXIC, %
+ MONG_LGU |=:| MONG_ORXIC, %
+ MONG_RGU |=:| MONG_ORXIC, %
+ MONG_ZERO |=:| MONG_ORXIC, %
+ MONG_ONE |=:| MONG_ORXIC, %
+ MONG_TWO |=:| MONG_ORXIC, %
+ MONG_THREE |=:| MONG_ORXIC, %
+ MONG_FOUR |=:| MONG_ORXIC, %
+ MONG_FIVE |=:| MONG_ORXIC, %
+ MONG_SIX |=:| MONG_ORXIC, %
+ MONG_SEVEN |=:| MONG_ORXIC, %
+ MONG_EIGHT |=:| MONG_ORXIC, %
+ MONG_NINE |=:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGPA: % "pa"
+ MONG_L |=: MONG_HIGHLEWER, % "pal"
+ MONG_BNDRY |=: MONG_ORXIC, %
+ "," |=:| MONG_ORXIC, %
+ "." |=:| MONG_ORXIC, %
+ ";" |=:| MONG_ORXIC, %
+ ":" |=:| MONG_ORXIC, %
+ "!" |=:| MONG_ORXIC, %
+ "?" |=:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM|=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST|=:| MONG_ORXIC, %
+ MONG_OPAREN |=:| MONG_ORXIC, %
+ MONG_CPAREN |=:| MONG_ORXIC, %
+ MONG_LT |=:| MONG_ORXIC, %
+ MONG_GT |=:| MONG_ORXIC, %
+ MONG_LGU |=:| MONG_ORXIC, %
+ MONG_RGU |=:| MONG_ORXIC, %
+ MONG_ZERO |=:| MONG_ORXIC, %
+ MONG_ONE |=:| MONG_ORXIC, %
+ MONG_TWO |=:| MONG_ORXIC, %
+ MONG_THREE |=:| MONG_ORXIC, %
+ MONG_FOUR |=:| MONG_ORXIC, %
+ MONG_FIVE |=:| MONG_ORXIC, %
+ MONG_SIX |=:| MONG_ORXIC, %
+ MONG_SEVEN |=:| MONG_ORXIC, %
+ MONG_EIGHT |=:| MONG_ORXIC, %
+ MONG_NINE |=:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGFA: % "fa"
+ MONG_L |=: MONG_HIGHLEWER, % "fal"
+ MONG_BNDRY |=: MONG_ORXIC, %
+ "," |=:| MONG_ORXIC, %
+ "." |=:| MONG_ORXIC, %
+ ";" |=:| MONG_ORXIC, %
+ ":" |=:| MONG_ORXIC, %
+ "!" |=:| MONG_ORXIC, %
+ "?" |=:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM|=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST|=:| MONG_ORXIC, %
+ MONG_OPAREN |=:| MONG_ORXIC, %
+ MONG_CPAREN |=:| MONG_ORXIC, %
+ MONG_LT |=:| MONG_ORXIC, %
+ MONG_GT |=:| MONG_ORXIC, %
+ MONG_LGU |=:| MONG_ORXIC, %
+ MONG_RGU |=:| MONG_ORXIC, %
+ MONG_ZERO |=:| MONG_ORXIC, %
+ MONG_ONE |=:| MONG_ORXIC, %
+ MONG_TWO |=:| MONG_ORXIC, %
+ MONG_THREE |=:| MONG_ORXIC, %
+ MONG_FOUR |=:| MONG_ORXIC, %
+ MONG_FIVE |=:| MONG_ORXIC, %
+ MONG_SIX |=:| MONG_ORXIC, %
+ MONG_SEVEN |=:| MONG_ORXIC, %
+ MONG_EIGHT |=:| MONG_ORXIC, %
+ MONG_NINE |=:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGKA: % "ka"
+ MONG_L |=: MONG_HIGHLEWER, % "kal"
+ MONG_BNDRY |=: MONG_ORXIC, %
+ "," |=:| MONG_ORXIC, %
+ "." |=:| MONG_ORXIC, %
+ ";" |=:| MONG_ORXIC, %
+ ":" |=:| MONG_ORXIC, %
+ "!" |=:| MONG_ORXIC, %
+ "?" |=:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM|=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST|=:| MONG_ORXIC, %
+ MONG_OPAREN |=:| MONG_ORXIC, %
+ MONG_CPAREN |=:| MONG_ORXIC, %
+ MONG_LT |=:| MONG_ORXIC, %
+ MONG_GT |=:| MONG_ORXIC, %
+ MONG_LGU |=:| MONG_ORXIC, %
+ MONG_RGU |=:| MONG_ORXIC, %
+ MONG_ZERO |=:| MONG_ORXIC, %
+ MONG_ONE |=:| MONG_ORXIC, %
+ MONG_TWO |=:| MONG_ORXIC, %
+ MONG_THREE |=:| MONG_ORXIC, %
+ MONG_FOUR |=:| MONG_ORXIC, %
+ MONG_FIVE |=:| MONG_ORXIC, %
+ MONG_SIX |=:| MONG_ORXIC, %
+ MONG_SEVEN |=:| MONG_ORXIC, %
+ MONG_EIGHT |=:| MONG_ORXIC, %
+ MONG_NINE |=:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGKHA: % "kha"
+ MONG_L |=: MONG_HIGHLEWER, % "khal"
+ MONG_BNDRY |=: MONG_ORXIC, %
+ "," |=:| MONG_ORXIC, %
+ "." |=:| MONG_ORXIC, %
+ ";" |=:| MONG_ORXIC, %
+ ":" |=:| MONG_ORXIC, %
+ "!" |=:| MONG_ORXIC, %
+ "?" |=:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM|=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST|=:| MONG_ORXIC, %
+ MONG_OPAREN |=:| MONG_ORXIC, %
+ MONG_CPAREN |=:| MONG_ORXIC, %
+ MONG_LT |=:| MONG_ORXIC, %
+ MONG_GT |=:| MONG_ORXIC, %
+ MONG_LGU |=:| MONG_ORXIC, %
+ MONG_RGU |=:| MONG_ORXIC, %
+ MONG_ZERO |=:| MONG_ORXIC, %
+ MONG_ONE |=:| MONG_ORXIC, %
+ MONG_TWO |=:| MONG_ORXIC, %
+ MONG_THREE |=:| MONG_ORXIC, %
+ MONG_FOUR |=:| MONG_ORXIC, %
+ MONG_FIVE |=:| MONG_ORXIC, %
+ MONG_SIX |=:| MONG_ORXIC, %
+ MONG_SEVEN |=:| MONG_ORXIC, %
+ MONG_EIGHT |=:| MONG_ORXIC, %
+ MONG_NINE |=:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGGHA: % "gha"
+ MONG_L |=: MONG_HIGHLEWER, % "ghal"
+ MONG_BNDRY |=: MONG_ORXIC, %
+ "," |=:| MONG_ORXIC, %
+ "." |=:| MONG_ORXIC, %
+ ";" |=:| MONG_ORXIC, %
+ ":" |=:| MONG_ORXIC, %
+ "!" |=:| MONG_ORXIC, %
+ "?" |=:| MONG_ORXIC, %
+ MONG_QUESTEXCLAM|=:| MONG_ORXIC, %
+ MONG_EXCLAMQUEST|=:| MONG_ORXIC, %
+ MONG_OPAREN |=:| MONG_ORXIC, %
+ MONG_CPAREN |=:| MONG_ORXIC, %
+ MONG_LT |=:| MONG_ORXIC, %
+ MONG_GT |=:| MONG_ORXIC, %
+ MONG_LGU |=:| MONG_ORXIC, %
+ MONG_RGU |=:| MONG_ORXIC, %
+ MONG_ZERO |=:| MONG_ORXIC, %
+ MONG_ONE |=:| MONG_ORXIC, %
+ MONG_TWO |=:| MONG_ORXIC, %
+ MONG_THREE |=:| MONG_ORXIC, %
+ MONG_FOUR |=:| MONG_ORXIC, %
+ MONG_FIVE |=:| MONG_ORXIC, %
+ MONG_SIX |=:| MONG_ORXIC, %
+ MONG_SEVEN |=:| MONG_ORXIC, %
+ MONG_EIGHT |=:| MONG_ORXIC, %
+ MONG_NINE |=:| MONG_ORXIC; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGBI: % "bi"
+ MONG_L |=: MONG_HIGHLEWER, % "bil"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGFI: % "fi"
+ MONG_L |=: MONG_HIGHLEWER, % "fil"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGPI: % "pi"
+ MONG_L |=: MONG_HIGHLEWER, % "pil"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGKI: % "ki"
+ MONG_L |=: MONG_HIGHLEWER, % "kil"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGKHI: % "khi"
+ MONG_L |=: MONG_HIGHLEWER, % "khil"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGGHI: % "ghi"
+ MONG_L |=: MONG_HIGHLEWER, % "ghil"
+ MONG_BNDRY |=: MONG_BIODOISUUL,%
+ "," |=:| MONG_BIODOISUUL,%
+ "." |=:| MONG_BIODOISUUL,%
+ ";" |=:| MONG_BIODOISUUL,%
+ ":" |=:| MONG_BIODOISUUL,%
+ "!" |=:| MONG_BIODOISUUL,%
+ "?" |=:| MONG_BIODOISUUL,%
+ MONG_QUESTEXCLAM|=:| MONG_BIODOISUUL,%
+ MONG_EXCLAMQUEST|=:| MONG_BIODOISUUL,%
+ MONG_OPAREN |=:| MONG_BIODOISUUL,%
+ MONG_CPAREN |=:| MONG_BIODOISUUL,%
+ MONG_LT |=:| MONG_BIODOISUUL,%
+ MONG_GT |=:| MONG_BIODOISUUL,%
+ MONG_LGU |=:| MONG_BIODOISUUL,%
+ MONG_RGU |=:| MONG_BIODOISUUL,%
+ MONG_ZERO |=:| MONG_BIODOISUUL,%
+ MONG_ONE |=:| MONG_BIODOISUUL,%
+ MONG_TWO |=:| MONG_BIODOISUUL,%
+ MONG_THREE |=:| MONG_BIODOISUUL,%
+ MONG_FOUR |=:| MONG_BIODOISUUL,%
+ MONG_FIVE |=:| MONG_BIODOISUUL,%
+ MONG_SIX |=:| MONG_BIODOISUUL,%
+ MONG_SEVEN |=:| MONG_BIODOISUUL,%
+ MONG_EIGHT |=:| MONG_BIODOISUUL,%
+ MONG_NINE |=:| MONG_BIODOISUUL;%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGBU: % "bu"
+ MONG_L |=: MONG_HIGHLEWER, % "bul"
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGPU: % "pu"
+ MONG_L |=: MONG_HIGHLEWER, % "pul"
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGFU: % "fu"
+ MONG_L |=: MONG_HIGHLEWER, % "ful"
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGKU: % "ku"
+ MONG_L |=: MONG_HIGHLEWER, % "kul"
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGKHU: % "khu"
+ MONG_L |=: MONG_HIGHLEWER, % "khul"
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LIGGHU: % "ghu"
+ MONG_L |=: MONG_HIGHLEWER, % "ghul"
+ "," kern gedeswidth#, %
+ "." kern gedeswidth#, %
+ ";" kern gedeswidth#, %
+ ":" kern gedeswidth#, %
+ "!" kern gedeswidth#, %
+ "?" kern gedeswidth#, %
+ MONG_QUESTEXCLAM kern gedeswidth#, %
+ MONG_EXCLAMQUEST kern gedeswidth#, %
+ MONG_OPAREN kern gedeswidth#, %
+% MONG_CPAREN kern gedeswidth#, %
+ MONG_LT kern gedeswidth#, %
+% MONG_GT kern gedeswidth#, %
+ MONG_LGU kern gedeswidth#, %
+ MONG_RGU kern 0.5gedeswidth#; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% The montrlig ligtable file ends here.
+%
+% Finis. Konec. _Suul. End. Ende. Fin. Owari. Zhong.
+% Do not read beyond this line as no hidden secret can be found.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% vim: ts=8
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/mxcodes.mf b/Master/texmf-dist/fonts/source/public/montex/mxcodes.mf
new file mode 100644
index 00000000000..e569f034685
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mxcodes.mf
@@ -0,0 +1,237 @@
+% mbpunc:
+MONG_BNDRY :=255;
+MONG_MSP := 0;
+MONG_FVS1 := 1;
+MONG_FVS2 := 2;
+MONG_EXCLAMATION := 3;
+MONG_QUESTEXCLAM := 4;
+MONG_EXCLAMQUEST := 5;
+MONG_OPAREN := 6;
+MONG_CPAREN := 7;
+MONG_ENV := 8;
+MONG_MVS := 9;
+MONG_ELLIPSIS := 10;
+MONG_COLON := 11;
+MONG_DORWOLJIN := 12;
+MONG_OM := 13;
+MONG_LT := 14;
+MONG_GT := 15;
+MONG_QUESTION := 16;
+MONG_NIRUGU := 17;
+MONG_LGU := 18;
+MONG_RGU := 19;
+MONG_TASLAL := 20;
+MONG_FULLSTOP := 21;
+% mbnums:
+MONG_ZERO := 22;
+MONG_ONE := 23;
+MONG_TWO := 24;
+MONG_THREE := 25;
+MONG_FOUR := 26;
+MONG_FIVE := 27;
+MONG_SIX := 28;
+MONG_SEVEN := 29;
+MONG_EIGHT := 30;
+MONG_NINE := 31;
+% mbglyphs:
+MONG_TITEMSTROKE := 32;
+MONG_TITEM := 33;
+MONG_SHUD := 34;
+MONG_A := MONG_SHUD;
+MONG_SHILBE := 35;
+MONG_I := MONG_SHILBE;
+MONG_GEDES := 36;
+MONG_O := MONG_GEDES;
+MONG_U := MONG_GEDES;
+MONG_ADAGU := 37;
+MONG_CEGTEISHUD := 38;
+MONG_N := MONG_CEGTEISHUD;
+MONG_EXENN := 39;
+MONG_LEWER := 40;
+MONG_L := MONG_LEWER;
+MONG_EXENL := 41;
+MONG_SUULIINLEWER := 42;
+MONG_TERTIARYLEWER := 43;
+MONG_HIGHLEWER := 44;
+MONG_MEWER := 45;
+MONG_M := MONG_MEWER;
+MONG_EXENM := 46;
+MONG_SUULIINMEWER := 47;
+MONG_LIGLL := 48;
+MONG_LIGML := 49;
+MONG_XEWTEEQIX := 50;
+MONG_DUNDG := 51;
+MONG_DUNDX := 52;
+MONG_ADAGX := 53;
+MONG_DUNDNG := 54;
+MONG_ADAGNG := 55;
+MONG_LIGKA := 56;
+MONG_LIGKI := 57;
+MONG_LIGKU := 58;
+MONG_ADAGI := 59;
+MONG_NUMTDELBENQIX := 60;
+MONG_BAGANUM := 61;
+MONG_ADAGK := 62;
+MONG_NUMTAIGEDES := 63;
+MONG_ADAGB := 64;
+MONG_BURUUXARSANGEDES := 65;
+MONG_GEDESTEISHILBE := 66;
+MONG_DUNDD := 67;
+MONG_ADAGD := 68;
+MONG_DVAR := 69;
+MONG_ERWEELJINSHILBE := 70;
+MONG_BOSOOSHILBE := 71;
+MONG_EXENS := 72;
+MONG_ZAWJ := 73;
+MONG_S := MONG_ZAWJ;
+MONG_ADAGS := 74;
+MONG_SEREEEWER := 75;
+MONG_ETGERSHILBE := 76;
+MONG_MATGARSHILBE := 77;
+MONG_SUUL := 78;
+MONG_ORXIC := 79;
+MONG_BAGODOISUUL := 80;
+MONG_BIODOISUUL := 81;
+MONG_NCEG := 82;
+MONG_GCEG := 83;
+MONG_LIGBA := 84;
+MONG_LIGBI := 85;
+MONG_LIGBU := 86;
+MONG_LIGBN := 87;
+MONG_LIGBL := 88;
+MONG_LIGPA := 89;
+MONG_LIGPI := 90;
+MONG_LIGPU := 91;
+% moglyphs:
+MONG_AVAR := 92;
+MONG_AE := 93;
+MONG_IVAR := 94;
+MONG_NVAR := 95;
+MONG_ADAGN := 96;
+MONG_ADAGNVAR := 97;
+MONG_SECONDARYSHUD := 98;
+MONG_SECONDARYGEDES := 99;
+MONG_SECONDARYCEGTEISHUD :=100;
+MONG_NUM :=101;
+MONG_SECONDARYNUM :=102;
+MONG_DAWXARCEGTXEWTEE :=103;
+MONG_ADAGG :=104;
+MONG_SECERWEELJIN :=105;
+MONG_EXENSH :=106;
+MONG_DAWXARCEGTZAWJ :=107;
+MONG_ADAGSH :=108;
+MONG_SECNUMTGEDES :=109;
+MONG_SECNUMTDELBENQ :=110;
+MONG_SERTENQIXTNUM :=111;
+MONG_SECSERTENQIXT :=112;
+MONG_QAGT :=113;
+MONG_SECONDARYQAGT :=114;
+MONG_ZADGAIZARDIGT :=115;
+MONG_BITUUZARDIGT :=116;
+MONG_BITUUSHILBE :=117;
+MONG_MALGAITAITITEM :=118;
+MONG_EWERTQAGT :=119;
+MONG_SECONDARYEWERTQAGT :=120;
+MONG_LIGPN :=121;
+MONG_LIGPL :=122;
+MONG_LIGFA :=123;
+MONG_LIGFI :=124;
+MONG_LIGFU :=125;
+MONG_LIGFN :=126;
+MONG_LIGFL :=127;
+MONG_LIGKN :=128;
+MONG_LIGKL :=129;
+MONG_LIGKHA :=130;
+MONG_LIGKHI :=131;
+MONG_LIGKHU :=132;
+MONG_LIGKHN :=133;
+MONG_LIGKHL :=134;
+MONG_LIGGHA :=135;
+MONG_LIGGHI :=136;
+MONG_LIGGHU :=137;
+MONG_LIGGHN :=138;
+MONG_LIGGHL :=139;
+% maglyphs:
+MANJU_TASLAL :=140;
+MANJU_FULLSTOP :=141;
+MANJU_E :=142;
+MANJU_DUBENE :=143;
+MANJU_U :=144;
+MANJU_DUBENU :=145;
+MANJU_UU :=146;
+MANJU_DUBENUU :=147;
+MANJU_DERIBUNGA :=148;
+MANJU_DERIBUNHA :=149;
+MANJU_G :=150;
+MANJU_H :=151;
+MANJU_GE :=152;
+MANJU_HE :=153;
+MANJU_GI :=154;
+MANJU_HI :=155;
+MANJU_GU :=156;
+MANJU_HU :=157;
+MANJU_KH :=158;
+MANJU_KHA :=159;
+MANJU_KHO :=160;
+MANJU_GH :=161;
+MANJU_GHA :=162;
+MANJU_GHO :=163;
+MANJU_HH :=164;
+MANJU_HHA :=165;
+MANJU_HHO :=166;
+MANJU_DUBENK :=167;
+MANJU_BE :=168;
+MANJU_BU :=169;
+MANJU_BUU :=170;
+MANJU_D :=171;
+MANJU_T :=172;
+MANJU_DERIBUND :=173;
+MANJU_DERIBUNT :=174;
+MANJU_DE :=175;
+MANJU_TE :=176;
+MANJU_DERIBUNDE :=177;
+MANJU_DERIBUNTE :=178;
+MANJU_TIBT :=179;
+MANJU_SH :=180;
+MANJU_DERIBUNSH :=181;
+MANJU_DUBENSH :=182;
+MANJU_DZ :=183;
+MANJU_DERIBUNDZ :=184;
+MANJU_DZI :=185;
+MANJU_DERIBUNDZI :=186;
+MANJU_TS :=187;
+MANJU_DERIBUNTS :=188;
+MANJU_TSH :=189;
+MANJU_DERIBUNTSH :=190;
+MANJU_TSHY :=191;
+MANJU_DERIBUNTSHY :=192;
+MANJU_Z :=193;
+MANJU_DERIBUNZ :=194;
+MANJU_ZH :=195;
+MANJU_DERIBUNZH :=196;
+MANJU_NGA :=197;
+MANJU_DERIBUNNGA :=198;
+MANJU_JY :=199;
+MANJU_DERIBUNJY :=200;
+MANJU_CY :=201;
+MANJU_SY :=202;
+MANJU_DERIBUNSY :=203;
+MANJU_ZR :=204;
+MANJU_DERIBUNZR :=205;
+MANJU_LH :=206;
+MANJU_DERIBUNLH :=207;
+MANJU_HIGHLH :=208;
+MANJU_HIGHDERIBUNLH :=209;
+MANJU_F :=210;
+MANJU_DERIBUNF :=211;
+MANJU_P :=212;
+MANJU_PA :=213;
+MANJU_PE :=214;
+MANJU_PI :=215;
+MANJU_PO :=216;
+MANJU_PU :=217;
+MANJU_TIBPE :=218;
+MANJU_TIBPU :=219;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% vim: ts=32
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/montex/mxglyphs.mf b/Master/texmf-dist/fonts/source/public/montex/mxglyphs.mf
new file mode 100644
index 00000000000..0eefa77890d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mxglyphs.mf
@@ -0,0 +1,2 @@
+input moglyphs;
+input maglyphs;
diff --git a/Master/texmf-dist/fonts/source/public/montex/mxntrlig.mf b/Master/texmf-dist/fonts/source/public/montex/mxntrlig.mf
new file mode 100644
index 00000000000..43b0bfbc40a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/montex/mxntrlig.mf
@@ -0,0 +1,131 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxntrlig.mf
+% Author: Oliver Corff and Dorjpalam Dorj
+% Date: July 1st, 2001
+% Version: 0.8
+% Copyright: Ulaanbaatar, Beijing, Berlin
+%
+% Description: Mongolian Glyph Container, Unicode-Ready (LMU)
+% Mongol Bicig Ligature Definition
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Punctuation
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable "!": "?" =: MONG_EXCLAMQUEST;%
+ligtable "?": "!" =: MONG_QUESTEXCLAM;%
+ligtable ",": "," =: MONG_FULLSTOP; %
+ligtable MONG_GT: MONG_GT =: MONG_RGU; %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Since we are still building the ligatures for the universal
+% glyph container, we have to wait a bit. Removing \endinput
+% reveals all missing code definitions, so we better keep it.
+%
+\endinput
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Initial cases
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_OM:
+ MONG_A |=:| MONG_TITEM, % "a"
+ MONG_AE |=:| MONG_TITEM, % "a"
+% MONG_E =: MONG_TITEM, % "e"
+ MONG_I |=:| MONG_TITEM, % "i"
+ MONG_U |=:| MONG_TITEM, % "u"
+ MONG_N |=: MONG_EXENN, % "n"
+ MONG_M |=: MONG_EXENM, % " m-"
+ MONG_EXENM kern 0.25gedeswidth#,%
+ MONG_TITEM kern 0.25gedeswidth#,%
+ MONG_L |=: MONG_EXENL, % " l-"
+ MONG_H |=:| MONG_TITEM, % " e-"
+ MONG_S |=: MONG_EXENS, % " s-"
+ MONG_SH |=: MONG_EXENSH, % "sh"
+ MONG_D |=: MONG_T, % " d-"
+ MONG_X |=: MONG_EXENX, % MONG_X
+ MONG_G |=: MONG_EXENG, % MONG_X
+ MONG_Z |=: MONG_SHILBE; % "z"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable ||:
+ MONG_A =:| MONG_TITEM, % "a"
+ MONG_AE =: MONG_TITEM, % "\"a"
+% MONG_E =:| MONG_TITEM, % " e-"
+ MONG_I =:| MONG_TITEM, % " i-"
+ MONG_U =:| MONG_TITEM, % " u-"
+ MONG_N =: MONG_EXENN, % " n-"
+ MONG_M =: MONG_EXENM, % " m-"
+ MONG_L =: MONG_EXENL, % " l-"
+ MONG_H =:| MONG_TITEM, % " e-"
+ MONG_S =: MONG_EXENS, % " s-"
+ MONG_SH =: MONG_EXENSH, % "sh"
+ MONG_D |=: MONG_T, % " d-"
+ MONG_X =: MONG_EXENX, % " x-"
+ MONG_G =: MONG_EXENG, % " G-"
+ MONG_Z =: MONG_SHILBE; % "z"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_OPAREN:
+ MONG_A |=:| MONG_TITEM, % "a"
+ MONG_AE |=:| MONG_TITEM, % "a"
+% MONG_E =: MONG_TITEM, % "e"
+ MONG_I |=:| MONG_TITEM, % "i"
+ MONG_U |=:| MONG_TITEM, % "u"
+ MONG_N |=: MONG_EXENN, % "n"
+ MONG_M |=: MONG_EXENM, % " m-"
+ MONG_L |=: MONG_EXENL, % " l-"
+ MONG_H |=:| MONG_TITEM, % " e-"
+ MONG_S |=: MONG_EXENS, % " s-"
+ MONG_SH |=: MONG_EXENSH, % "sh"
+ MONG_D |=: MONG_T, % " d-"
+ MONG_X |=: MONG_EXENX, % MONG_X
+ MONG_G |=: MONG_EXENG, % MONG_X
+ MONG_Z |=: MONG_SHILBE; % "z"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LT: % "<"
+ MONG_LT =: MONG_LGU, % "<<"
+ MONG_A |=:| MONG_TITEM, % "a"
+ MONG_AE |=:| MONG_TITEM, % "a"
+% MONG_E |=:| MONG_TITEM, % " e-"
+ MONG_I |=:| MONG_TITEM, % "i"
+ MONG_U |=:| MONG_TITEM, % "u"
+ MONG_N |=: MONG_EXENN, % "n"
+ MONG_M |=: MONG_EXENM, % MONG_M
+ MONG_L |=: MONG_EXENL, % MONG_M
+ MONG_H |=:| MONG_TITEM, % MONG_H
+ MONG_S |=: MONG_EXENS, % MONG_S
+ MONG_SH |=: MONG_EXENSH, % "sh"
+ MONG_D |=: MONG_T, % " d-"
+ MONG_X |=: MONG_EXENX, % MONG_X
+ MONG_G |=: MONG_EXENG, % MONG_X
+ MONG_Z |=: MONG_SHILBE; % "z"
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable MONG_LGU: % "<<"
+ MONG_A |=:| MONG_TITEM, % "a"
+ MONG_AE |=:| MONG_TITEM, % "a"
+% MONG_E |=:| MONG_TITEM, % MONG_M
+ MONG_I |=:| MONG_TITEM, % "i"
+ MONG_U |=:| MONG_TITEM, % "u"
+ MONG_N |=: MONG_EXENN, % "n"
+% MONG_EXENN kern 0.5gedeswidth,
+ MONG_M |=: MONG_EXENM, % MONG_M
+% MONG_EXENM kern 0.5gedeswidth,
+ MONG_L |=: MONG_EXENL, % MONG_M
+% MONG_EXENL kern 0.5gedeswidth,
+ MONG_H |=:| MONG_TITEM, % MONG_H
+ MONG_S |=: MONG_EXENS, % MONG_S
+% MONG_EXENS kern 0.5gedeswidth,
+ MONG_SH |=: MONG_EXENSH, % "sh"
+% MONG_EXENSH kern 0.5gedeswidth,
+ MONG_D |=: MONG_T, % " d-"
+% MONG_T kern 0.5gedeswidth,
+ MONG_X |=: MONG_EXENX, % MONG_X
+% MONG_EXENX kern 0.5gedeswidth,
+ MONG_G |=: MONG_EXENG, % MONG_X
+% MONG_EXENG kern 0.5gedeswidth,
+ MONG_Z |=: MONG_SHILBE; % "z"
+% MONG_SHILBE kern 0.5gedeswidth;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
diff --git a/Master/texmf-dist/fonts/source/public/morse/morse.alf b/Master/texmf-dist/fonts/source/public/morse/morse.alf
new file mode 100644
index 00000000000..1d2ee586284
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/morse/morse.alf
@@ -0,0 +1,36 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% morse.alf : CODE (Version 1.00, January 1, 1998) %%
+%% Udo Heyl, Stregdaer Allee, 99817 Eisenach GERMANY %%
+%% to be used under LaTeX.2E supported by MORSE.STY %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beg(65+o,1.2); "a"; dotbar; endchar;
+beg(66+o,1.6); "b"; bardotdot; dot (10a,2b); endchar;
+beg(67+o,2); "c"; bardotbar; dot (14a,2b); endchar;
+beg(68+o,1.4); "d"; bardotdot; endchar;
+beg(69+o,.6); "e"; dot (0,2b); endchar;
+beg(70+o,1.6); "f"; dotdotbar; dot (10a,2b); endchar;
+beg(71+o,1.8); "g"; barbardot; endchar;
+beg(72+o,1.2); "h"; dotdotdot; dot (6a,2b); endchar;
+beg(73+o,.8); "i"; dotdot; endchar;
+beg(74+o,2.4); "j"; dotbarbar; bar (14a,0); endchar;
+beg(75+o,1.8); "k"; bardotbar; endchar;
+beg(76+o,1.6); "l"; dotbardot; dot (10a,2b); endchar;
+beg(77+o,1.6); "m"; barbar; endchar;
+beg(78+o,1.2); "n"; bardot; endchar;
+beg(79+o,2.2); "o"; barbarbar; endchar;
+beg(80+o,2); "p"; dotbarbar; dot (14a,2b); endchar;
+beg(81+o,2.4); "q"; barbardot; bar (14a,0); endchar;
+beg(82+o,1.4); "r"; dotbardot; endchar;
+beg(83+o,1); "s"; dotdotdot; endchar;
+beg(84+o,1); "t"; bar (0,0); endchar;
+beg(85+o,1.4); "u"; dotdotbar; endchar;
+beg(86+o,1.6); "v"; dotdotdot; bar (6a,0); endchar;
+beg(87+o,1.8); "w"; dotbarbar; endchar;
+beg(88+o,2); "x"; bardotdot; bar (10a,0); endchar;
+beg(89+o,2.4); "y"; bardotbar; bar (14a,0); endchar;
+beg(90+o,2); "z"; barbardot; dot (14a,2b); endchar;
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/morse/morse.def b/Master/texmf-dist/fonts/source/public/morse/morse.def
new file mode 100644
index 00000000000..c949cee3699
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/morse/morse.def
@@ -0,0 +1,23 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% morse.def : CODE (Version 1.00, January 1, 1998) %%
+%% Udo Heyl, Stregdaer Allee, 99817 Eisenach GERMANY %%
+%% to be used under LaTeX.2E supported by MORSE.STY %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def dot=fill fullcircle scaled 1.2pt shifted enddef;
+def bar=fill superellipse((4.5a,.5b),(2a,b),(-.5a,.5b),(2a,0),1)%
+ shifted enddef;
+def barbar=bar (0,0); bar (6a,0) enddef;
+def bardot=bar (0,0); dot (6a,2b) enddef;
+def dotbar=dot (0,2b); bar (2a,0) enddef;
+def dotdot=dot (0,2b); dot (2a,2b) enddef;
+def barbarbar=barbar; bar (12a,0) enddef;
+def barbardot=barbar; dot (12a,2b) enddef;
+def bardotbar=bardot; bar (8a,0) enddef;
+def bardotdot=bardot; dot (8a,2b) enddef;
+def dotbarbar=dotbar; bar (8a,0) enddef;
+def dotbardot=dotbar; dot (8a,2b) enddef;
+def dotdotbar=dotdot; bar (4a,0) enddef;
+def dotdotdot=dotdot; dot (4a,2b) enddef;
+def beg(expr a,b)=beginchar(a,b*U#,U#,0) enddef;
+beginchar(0,U#,U#,0); "dummy"; pickup norm_pen; a=.1w; b=.1h; endchar;
diff --git a/Master/texmf-dist/fonts/source/public/morse/morse.num b/Master/texmf-dist/fonts/source/public/morse/morse.num
new file mode 100644
index 00000000000..01093452b9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/morse/morse.num
@@ -0,0 +1,40 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% morse.num : CODE (Version 1.00, January 1, 1998) %%
+%% Udo Heyl, Stregdaer Allee, 99817 Eisenach GERMANY %%
+%% to be used under LaTeX.2E supported by MORSE.STY %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%% Special Symbols, Numbers and Stops %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beg(193,2.6);"adot";dotbarbar; dot(14a,2b); bar(16a,0); endchar;
+beg(225,2.6);"adot";dotbarbar; dot(14a,2b); bar(16a,0); endchar;
+beg(196,2);"ae";dotbardot; bar(10a,0); endchar;
+beg(214,2.4);"oe";barbarbar; dot(18a,2b); endchar;
+beg(220,2);"ue"; dotdotbar; bar(10a,0); endchar;
+beg(228,2);"ae";dotbardot; bar(10a,0); endchar;
+beg(246,2.4);"oe";barbarbar; dot(18a,2b); endchar;
+beg(252,2);"ue"; dotdotbar; bar(10a,0); endchar;
+beg(23,2.8);"ch";barbarbar; bar(18a,0); endchar;
+beg(201,1.8);"edot";dotdotbar; dot(10a,2b); dot(12a,2b); endchar;
+beg(233,1.8);"edot";dotdotbar; dot(10a,2b); dot(12a,2b); endchar;
+beg("0",3.4);"0";barbarbar; bar(18a,0); bar(24a,0); endchar;
+beg("1",3);"1";dotbarbar; bar(14a,0); bar(20a,0); endchar;
+beg("2",2.6);"2";dotdotbar; bar(10a,0); bar(16a,0); endchar;
+beg("3",2.2);"3";dotdotdot; bar(6a,0); bar(12a,0); endchar;
+beg("4",1.8);"4";dotdotdot; dot(6a,2b); bar(8a,0); endchar;
+beg("5",1.4);"5";dotdotdot; dot(6a,2b); dot(8a,2b); endchar;
+beg("6",1.8);"6";bardotdot; dot(10a,2b); dot(12a,2b); endchar;
+beg("7",2.2);"7";barbardot; dot(14a,2b); dot(16a,2b); endchar;
+beg("8",2.6);"8";barbarbar; dot(18a,2b); dot(20a,2b); endchar;
+beg("9",3);"9";barbarbar; bar(18a,0); dot(24a,2b); endchar;
+beg(46,1.6);".";dotdotdot; dot(6a,2b); dot(8a,2b); dot(10a,2b); endchar;
+beg(59,2.8);";";bardotbar; dot(14a,2b); bar(16a,0); dot(22a,2b); endchar;
+beg(44,2.8);",";dotbardot; bar(10a,0); dot(16a,2b); bar(18a,0); endchar;
+beg(58,2.8);":";barbarbar; dot(18a,2b); dot(20a,2b); dot(22a,2b); endchar;
+beg(63,2.4);"?";dotdotbar; bar(10a,0); dot(16a,2b); dot(18a,2b); endchar;
+beg(33,3.2);"!";barbardot; dot(14a,2b); bar(16a,0); bar(22a,0); endchar;
+beg(34,2.4);"d-qu";bardotdot; dot(10a,2b); dot(12a,2b); bar(14a,0); endchar;
+beg(39,3.2);"s-qu";dotbarbar; bar(14a,0); bar(20a,0); dot(26a,2b); endchar;
+beg(47,4);"slash";barbarbar; bar(18a,0); bar(24a,0); bar(30a,0); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/morse/morse10.mf b/Master/texmf-dist/fonts/source/public/morse/morse10.mf
new file mode 100644
index 00000000000..745ba124195
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/morse/morse10.mf
@@ -0,0 +1,26 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% morse10.MF : CODE (Version 1.00, January 1, 1998) %%
+%% Udo Heyl, Stregdaer Allee, 99817 Eisenach GERMANY %%
+%% to be used under LaTeX.2E supported by MORSE.STY %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+font_coding_scheme = "Morse Telegraph Code";
+font_identifier = "morse10";
+pen norm_pen; U# := 9pt#; u# := (1/1024)*U#; define_pixels(U,u);
+norm_pen := nullpen;
+
+input morse.def;
+o:=0; input morse.alf; input morse.num;
+o:=32; input morse.alf;
+
+font_size 10pt#;
+font_normal_space 9pt#;
+font_normal_stretch 2pt#;
+font_normal_shrink 1.5pt#;
+
+bye
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% end of morse10.MF %%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamd20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamd20.mf
new file mode 100644
index 00000000000..3a49d49fc7b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/beamd20.mf
@@ -0,0 +1,4 @@
+input musicd20
+numeric beammult;
+beammult:=2;
+input beamngen
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamn11.mf b/Master/texmf-dist/fonts/source/public/musictex/beamn11.mf
new file mode 100644
index 00000000000..56ae0526129
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/beamn11.mf
@@ -0,0 +1,5 @@
+font_identifier := "beamn11";
+input musicd11
+numeric beammult;
+beammult:=1;
+input beamngen
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamn13.mf b/Master/texmf-dist/fonts/source/public/musictex/beamn13.mf
new file mode 100644
index 00000000000..103abeedfaf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/beamn13.mf
@@ -0,0 +1,6 @@
+font_identifier := "beamn13";
+input musicd13
+numeric beammult;
+beammult:=1;
+input beamngen
+
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamn16.mf b/Master/texmf-dist/fonts/source/public/musictex/beamn16.mf
new file mode 100644
index 00000000000..6760e5b74b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/beamn16.mf
@@ -0,0 +1,6 @@
+font_identifier := "beamn16";
+input musicd16
+numeric beammult;
+beammult:=1;
+input beamngen
+
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamn20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamn20.mf
new file mode 100644
index 00000000000..6968e0f8887
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/beamn20.mf
@@ -0,0 +1,5 @@
+font_identifier := "beamn20";
+input musicd20
+numeric beammult;
+beammult:=1;
+input beamngen
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamngen.mf b/Master/texmf-dist/fonts/source/public/musictex/beamngen.mf
new file mode 100644
index 00000000000..cdd378559f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/beamngen.mf
@@ -0,0 +1,83 @@
+% Length has been changed to longueur for BCPL_string
+% Nicolas Brouard 25/10/91
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BALKEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_x_height beamht#;
+
+def drawbeams (expr st, jj, nn) =
+ save i, j, longueur, height;
+ numeric i, j, longueur, height;
+ longueur:= 60.0/32;
+ for i=0 upto 5:
+ height := longueur*st ;
+ beginchar(jj*6+i, longueur, height, 0);
+ clear;
+ z2 = (w,h);
+ z1 = origin;
+ penpos1(beamht,90);
+ penpos2(beamht,90);
+ for j=0 upto nn-1:
+ penstroke (z1e---z2e) shifted (0,beamstep*j);
+ endfor;
+ endchar;
+ longueur := 2*longueur;
+ endfor;
+enddef;
+
+def drawbeamsneg (expr st, jj, nn) =
+ save i, longueur, depth;
+ numeric i, longueur, depth;
+ longueur:= 60.0/32;
+ for i=0 upto 5:
+ depth := longueur*st;
+ beginchar(64+jj*6+i, longueur, 0, depth);
+ clear;
+ z2 = (w,d);
+ z1 = origin;
+ penpos1(beamht,90);
+ penpos2(beamht,90);
+ for j=0 upto nn-1:
+ penstroke (z1e---z2e) shifted (0,beamstep*j);
+ endfor;
+ endchar;
+ longueur := 2*longueur;
+ endfor;
+enddef;
+numeric beamstep;
+numeric ss[];
+
+beamstep:=0.75nhh;
+ss[0]:=0.05;
+ss[1]:=0.10;
+ss[2]:=0.15;
+ss[3]:=0.20;
+ss[4]:=0.25;
+ss[5]:=0.30;
+ss[6]:=0.35;
+ss[7]:=0.4;
+ss[8]:=0.45;
+ss[9]:=0.50;
+ss[10]:=0.55;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Balken mit positiver Steigung %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+for j=0 upto 9 :
+drawbeams(ss[j],j,beammult);
+endfor;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Balken mit negativer Steigung %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+for j=0 upto 9 :
+drawbeamsneg(-ss[j],j,beammult);
+endfor;
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamq20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamq20.mf
new file mode 100644
index 00000000000..5a6e5670014
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/beamq20.mf
@@ -0,0 +1,4 @@
+input musicd20
+numeric beammult;
+beammult:=4;
+input beamngen
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamt20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamt20.mf
new file mode 100644
index 00000000000..ea3e714e700
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/beamt20.mf
@@ -0,0 +1,4 @@
+input musicd20
+numeric beammult;
+beammult:=3;
+input beamngen
diff --git a/Master/texmf-dist/fonts/source/public/musictex/beamv20.mf b/Master/texmf-dist/fonts/source/public/musictex/beamv20.mf
new file mode 100644
index 00000000000..9b485f9a69b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/beamv20.mf
@@ -0,0 +1,4 @@
+input musicd20
+numeric beammult;
+beammult:=5;
+input beamngen
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicbra.mf b/Master/texmf-dist/fonts/source/public/musictex/musicbra.mf
new file mode 100644
index 00000000000..66e6b36f8a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicbra.mf
@@ -0,0 +1,24 @@
+%%%
+% this is musicbra.mf
+%%%
+
+font_identifier := "music_brace_20";
+font_coding_scheme:="UNSPECIFIED";
+
+input musicd20
+
+%%%
+% setup fontdimen 1-7
+% "Parameters are zero unless otherwise specified."
+% METAFONT-Book App. F
+%%%
+%font_slant 0;
+%font_normal_space 0pt;
+%font_normal_stretch 0pt;
+%font_normal_shrink 0pt;
+font_x_height nhh#;
+font_quad nhw#;
+%font_extra_space 0pt;
+
+input musicbrg
+end
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicbrb.mf b/Master/texmf-dist/fonts/source/public/musictex/musicbrb.mf
new file mode 100644
index 00000000000..e0b760c533b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicbrb.mf
@@ -0,0 +1,24 @@
+%%%
+% this is musicbra.mf
+%%%
+
+font_identifier := "music_brace_20";
+font_coding_scheme:="UNSPECIFIED";
+
+input musicd20
+
+%%%
+% setup fontdimen 1-7
+% "Parameters are zero unless otherwise specified."
+% METAFONT-Book App. F
+%%%
+%font_slant 0;
+%font_normal_space 0pt;
+%font_normal_stretch 0pt;
+%font_normal_shrink 0pt;
+font_x_height nhh#;
+font_quad nhw#;
+%font_extra_space 0pt;
+
+input musicbrh
+end
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicbrg.mf b/Master/texmf-dist/fonts/source/public/musictex/musicbrg.mf
new file mode 100644
index 00000000000..758c9f3df18
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicbrg.mf
@@ -0,0 +1,53 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is musicbrg.mf
+%
+% Version 0.99 [August 93] Andreas Egler
+% [January] Daniel Taupin
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+transform t;
+path p;
+
+pen thin_pen, med_pen, thick_pen;
+thin_pen:= pencircle scaled .15pt;
+med_pen:= pencircle scaled thin;
+thick_pen:= pencircle scaled med;
+
+apog_fact=0.75;
+
+%%%%%%%%%%%%%%
+% big braces %
+%%%%%%%%%%%%%%
+%
+% change firstbrace and lastbrace if you need smaller or larger braces
+%
+
+firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm)
+lastbrace:=99; % largest brace is 2*99 pt (\simeq 69mm)
+
+def bigbrace(expr v) =
+ vwidth:=v*pt;
+ hwidth:=.2vwidth;
+ actwidth:=.035vwidth;
+
+ x1=hwidth; y1=vwidth;
+ x2l=.2hwidth; y2=.75vwidth;
+ x3r=.8hwidth; y3=1/3vwidth;
+ x4=0; y4=0;
+ penpos1(thinwidth,-90);
+ penpos2(1.25med+.8actwidth,40);
+ penpos3(1.25med+actwidth,45);
+ penpos4(.5thin+thinwidth,-90);
+
+ currentpen:= pencircle;
+ penstroke z1e..z2e..z3e..{left+sw}z4e;
+ addto currentpicture also currentpicture reflectedabout (origin, right);
+ penlabels(1,2,3,4);
+enddef;
+
+for v=firstbrace upto lastbrace :
+ beginchar (v-firstbrace, .2v*pt#, 0, 0);
+ bigbrace (v);
+ endchar;
+endfor;
+
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicbrh.mf b/Master/texmf-dist/fonts/source/public/musictex/musicbrh.mf
new file mode 100644
index 00000000000..7a0abd2cfbd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicbrh.mf
@@ -0,0 +1,40 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% this is musicbrg.mf from Stanislav Kneifl
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%
+% change firstbrace and lastbrace if you need smaller or larger braces
+%
+
+firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm)
+lastbrace:=99; % largest brace is 2*99 pt (\simeq 69mm)
+
+def drawpianobracket (expr height) =
+ u# := 1nhh#/5pt# * 1pt#;
+ v# := (height/40) * 1pt#;
+ define_pixels (u, v);
+ beginchar (height-firstbrace, 1.25nhh#, 0, 0);
+ z1 = origin;
+ z2 = (4.7u, 7v);
+ z3 = (3.6u, 16.5v);
+ z4 = (1.9u, 25v);
+ z5 = (2.28u, 32v);
+ z6 = (w, 40v);
+ penpos1 (max(1,0.1u), 125);
+ penpos2 (1.2u, 180);
+ penpos3 (3.2u, 195);
+ penpos4 (2.5u, 180);
+ penpos5 (1.14u, 180);
+ penpos6 (max(2,0.3u), 150);
+ penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
+ currenttransform := identity reflectedabout ((0,0),(1,0));
+ penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
+ currenttransform := identity;
+ endchar;
+enddef;
+
+for v=firstbrace upto lastbrace :
+ drawpianobracket (v);
+endfor;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicd11.mf b/Master/texmf-dist/fonts/source/public/musictex/musicd11.mf
new file mode 100644
index 00000000000..cb2c11106a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicd11.mf
@@ -0,0 +1,48 @@
+%%%
+% this is musicd11.mf
+%%%
+
+% input modes
+% input local
+
+mode_setup;
+
+%blacker:=0; %uncomment to override
+
+font_size 11pt#;
+
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.1pt;
+s := 0.70pt;
+S := 1/16designsize;
+
+beamht#:=0.48nhh#; %beamthickness
+
+% use pixelmacros from plain
+define_pixels(nhh,nhw,beamht);
+define_blacker_pixels(thin,med,thick);
+
+% pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+% displaying:=2; %uncomment to see characters immediatly on screen
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+
+% this macro might be deleted
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle
+ fi
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicd13.mf b/Master/texmf-dist/fonts/source/public/musictex/musicd13.mf
new file mode 100644
index 00000000000..5c814a43c00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicd13.mf
@@ -0,0 +1,48 @@
+%%%
+% this is musicd13.mf
+%%%
+
+% input modes
+% input local
+
+mode_setup;
+
+%blacker:=0; %uncomment to override
+
+font_size 13pt#;
+
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.1pt;
+s := 0.80pt;
+S := 1/16designsize;
+
+beamht#:=0.48nhh#; %beamthickness
+
+% use pixelmacros from plain
+define_pixels(nhh,nhw,beamht);
+define_blacker_pixels(thin,med,thick);
+
+% pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+% displaying:=2; %uncomment to see characters immediatly on screen
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+
+% this macro might be deleted
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle
+ fi
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicd16.mf b/Master/texmf-dist/fonts/source/public/musictex/musicd16.mf
new file mode 100644
index 00000000000..38f96a256de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicd16.mf
@@ -0,0 +1,48 @@
+%%%
+% this is musicd16.mf
+%%%
+
+% input modes
+% input local
+
+mode_setup;
+
+%blacker:=0; %uncomment to override
+
+font_size 16pt#;
+
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.1pt;
+s := 1.00pt;
+S := 1/16designsize;
+
+beamht#:=0.48nhh#; %beamthickness
+
+% use pixelmacros from plain
+define_pixels(nhh,nhw,beamht);
+define_blacker_pixels(thin,med,thick);
+
+% pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+% displaying:=2; %uncomment to see characters immediatly on screen
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+
+% this macro might be deleted
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle
+ fi
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicd20.mf b/Master/texmf-dist/fonts/source/public/musictex/musicd20.mf
new file mode 100644
index 00000000000..c8e36c9547c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicd20.mf
@@ -0,0 +1,48 @@
+%%%
+% this is musicd20.mf
+%%%
+
+% input modes
+% input local
+
+mode_setup;
+
+%blacker:=0; %uncomment to override
+
+font_size 20pt#;
+
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.125pt;
+s := 1.25pt;
+S := 1/16designsize;
+
+beamht#:=0.48nhh#; %beamthickness
+
+% use pixelmacros from plain
+define_pixels(nhh,nhw,beamht);
+define_blacker_pixels(thin,med,thick);
+
+% pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+% displaying:=2; %uncomment to see characters immediatly on screen
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+
+% this macro might be deleted
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle
+ fi
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicdef.mf b/Master/texmf-dist/fonts/source/public/musictex/musicdef.mf
new file mode 100644
index 00000000000..5c221a74b82
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicdef.mf
@@ -0,0 +1,61 @@
+% this is musicdef.mf
+%
+%
+% hier evtl. mode fuer gewuenschten output setzen
+%
+% AGFA P400 mode: for devices that print 406 pixels per inch
+% mode_def agfa =
+% proofing:=0;
+% fontmaking:=1;
+% tracingtitles:=0;
+% pixels_per_inch:=406;
+% blacker:=0.65;
+% fillin:=0;
+% o_correction:=1;
+% enddef;
+% localfont:=agfa;
+% mode:=agfa;
+% mode_setup;
+%
+%
+%mode_def ibm = % ibm mode: for the IBM3820
+% proofing:=0; % no, we're not making proofs
+% fontmaking:=1; % yes, we are making a font
+% tracingtitles:=0; % no, don't show titles in the log
+% pixels_per_inch:=300;
+% blacker:=.78; % (this value is conjectural)
+% fillin:=0.25; % (ditto)
+% o_correction:=.5; % (ditto)
+% enddef;
+%localfont:=ibm;
+%mode:=ibm;
+mode_setup;
+%
+%fontmaking:=1;
+turningcheck:=1;
+displaying:=2;
+designsize:=16;
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+beamht#:=0.6nhh#; %Balkenst"arke
+nhh:=nhh#*pt; %noteheadheight *pt
+nhw:=nhw#*pt; %noteheadwidth *pt
+thinwidth := 0.4pt;
+beamht := beamht#*pt;
+s := 1.0pt;
+S := 1/16designsize;
+%pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+openit;
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+%
+pickup pencircle scaled (0.1pt);
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle fi enddef;
+%
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicg16.mf b/Master/texmf-dist/fonts/source/public/musictex/musicg16.mf
new file mode 100644
index 00000000000..f6fcd2df725
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicg16.mf
@@ -0,0 +1,1360 @@
+apog_fact=0.75;
+apog_nhh=apog_fact*nhh;
+apog_nhh#=apog_fact*nhh#;
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% NOTENKOEPFE UND FAEHNCHEN %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%
+%%notenkoepfe %
+%%%%%%%%%%%%%%%
+
+def drawnoteb(expr noteheadwidth, noteheadheight, theta_a, theta_b, theta_c,
+width_a, width_b) =
+ % .l
+ penpos1(width_a, theta_a); % .2
+ % .r
+ penpos3(width_a, 180+theta_a); %.l.1.r .r.3.l
+ % .r
+ penpos2(width_b, 180+theta_b); % .4
+ % .l
+ penpos4(width_b, theta_b); %
+ y1 = y3 = 0;
+ x2 = x4 = 1/2noteheadwidth;
+ x1l= 0; x3l = noteheadwidth; y2l = noteheadheight; y4l = -noteheadheight;
+ penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle)
+ rotatedaround((origin +1/2noteheadwidth*right),theta_c);
+ enddef;
+%%%%%%%%%%%%%%%
+% flags %
+%%%%%%%%%%%%%%%
+%
+%
+pickup pencircle scaled (0.1pt);
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle fi enddef;
+def flagshape(suffix i) (expr width, height, thicka, thin, shiftx, shifty) =
+ pair intersectionp; %
+ thick := 1/3 height;
+ sh[-3] = (shiftx, 0);
+ sh[i] = (shiftx, shifty); % .1
+ penpos[i](thick,90); %
+ penpos[i+1]( 3thin ,90); % .2
+ penpos[i+2](thin,0); %
+ penpos[i+3](thin,0); % .3
+ x[i] = -1/16mm; %
+ y[i]r = height; % .4
+ x[i+1] = 3/8width; %
+ y[i+1] = height - thick; %
+ y[i+3] = 0;
+ x[i+2]r = x[i+3]+2s= width;
+ y[i+2]r = height - 2thick;
+ if i>1: intersectionp = z[i-2];
+ else : intersectionp = z[i+3];
+ fi;
+ penstrike (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)}
+ ..z[i+1]e{z[i+1]e-z[i]e}
+ ..z[i+2]e{down}..intersectionp shifted (sh[i-4]-sh[i]))
+ shifted sh[i];
+ for n=0 upto 3:
+ k:=i+n;
+ penlabels(k);endfor;
+ enddef;
+
+def flagshaper(suffix i) (expr width, height, thicka, thin, shift) =
+ pair intersectionp; %
+ thick := 1/3 height;
+ sh[-3] := origin+shift;
+ sh[i] = shift; % .1
+ penpos[i](thick,90); %
+ penpos[i+1]( 3thin ,90); % .2
+ penpos[i+2](thin,0); %
+ penpos[i+3](thin,0); % .3
+ x[i] = 0; %
+ y[i]r = height; % .4
+ x[i+1] = 3/8width; %
+ y[i+1] = height - thick; %
+ y[i+3] = 0;
+ x[i+2]r = x[i+3]+2s= width;
+ y[i+2]r = height - 2thick;
+ if i>1: intersectionp = z[i-2];
+ else : intersectionp = z[i+3];
+ fi;
+ penstrike (counterclockwise
+ (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)}
+ ..z[i+1]e{z[i+1]e-z[i]e}
+ ..z[i+2]e{down}..intersectionp shifted (-sh[i-4]+sh[i]))
+ reflectedabout (z1r scaled 0.5,
+ z1r scaled 0.5+right) )
+ shifted sh[i];
+ enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%
+% song system limits %
+%%%%%%%%%%%%%%%%%%%%%%
+beginchar(126,nhw#,nhh#,0);
+ clear;
+ z1=(-0.5nhw,-0.2pt);
+ z2=(0,-0.2pt);
+ z3=(0.7nhw,0.5nhh);
+ penpos1(0.4pt,90);
+ penpos2(0.4pt,90);
+ penpos3(0.1pt,135);
+ penstroke (z1e--z2e..z3e);
+endchar;
+beginchar(127,nhw#,-nhh#,0);
+ clear;
+ z1=(-0.5nhw,0.2pt);
+ z2=(0,0.2pt);
+ z3=(0.7nhw,-0.5nhh);
+ penpos1(0.4pt,90);
+ penpos2(0.4pt,90);
+ penpos3(0.1pt,135);
+ penstroke (z1e--z2e..z3e);
+endchar;
+
+%%%%%%%%%%%%%%%%
+% 4 crescendos %
+%%%%%%%%%%%%%%%%
+for n:=1 upto 4:
+ beginchar(15+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#);
+ pickup pencircle scaled (0.4s);
+ draw (0,(0.5+0.1*n)*nhh)--(4*n*nhw,0)--(0,-(0.5+0.1*n)*nhh);
+ endchar;
+endfor;
+%%%%%%%%%%%%%%%%%%
+% 4 decrescendos %
+%%%%%%%%%%%%%%%%%%
+for n:=1 upto 4:
+ beginchar(19+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#);
+ pickup pencircle scaled (0.4s);
+ draw (4*n*nhw,(0.5+0.1*n)*nhh)--(0,0)--(4*n*nhw,-(0.5+0.1*n)*nhh);
+ endchar;
+endfor;
+%%%%%%%%%%%%%%%
+% accents %
+%%%%%%%%%%%%%%%
+% point au-dessus de la note
+beginchar(24, nhw#, 1.0nhh#, 0.0nhh#);
+ clear;
+ pickup pencircle scaled 0.25nhh;
+ drawdot (0.5nhw, nhh);
+endchar;
+% point au-dessous de la note
+beginchar(25, nhw#, 0.0nhh#, 1.0nhh#);
+ clear;
+ pickup pencircle scaled 0.25nhh;
+ drawdot (0.5nhw, -nhh);
+endchar;
+% barre au-dessus de la note
+beginchar(26, nhw#, 1.0nhh#, 0.0nhh#);
+ clear;
+ pickup penrazor scaled 0.15nhh rotated 90;
+ draw (0.0nhw, nhh)--(1.0nhw, nhh);
+endchar;
+% trait au-dessous de la note
+beginchar(27, nhw#, 0.0nhh#, 1.0nhh#);
+ clear;
+ pickup penrazor scaled 0.15nhh rotated 90;
+ draw (0.0nhw, -nhh)--(1.0nhw, -nhh);
+endchar;
+% accent (pizz.) au-dessus de la note
+beginchar(28, nhw#, 1.0nhh#, 0.0nhh#);
+ clear;
+ dely:=1.2nhh;
+ rayon:=0.2nhh;
+ z1=(0.5nhw,dely+rayon);
+ z2=(0.5nhw-rayon,dely);
+ z3=(0.5nhw,dely-0.45nhh);
+ z4=(0.5nhw+rayon,dely);
+ fill z1{left}..{down}z2--z3--z4{up}..{left}cycle;
+endchar;
+% accent (pizz.) au-dessous de la note
+beginchar(29, nhw#, 0.0nhh#, 1.0nhh#);
+ clear;
+ rayon:=0.2nhh;
+ z1=(0.5nhw,nhh+rayon);
+ z2=(0.5nhw-rayon,nhh);
+ z3=(0.5nhw,0.55nhh);
+ z4=(0.5nhw+rayon,nhh);
+ fill (z1{left}..{down}z2--z3--z4{up}..{left}cycle) rotatedaround ((0.5nhw,0),180);
+endchar;
+% accent (sforz.) au-dessus de la note
+beginchar(30, nhw#, 1.5nhh#, 0.0nhh#);
+ clear;
+ z1=(1.2nhw,1.3nhh);
+ z2=(-0.2nhw,1.3nhh);
+ pickup pencircle scaled 0.5s;
+ draw z1--(x2,y2+0.3nhh);
+ draw z1--(x2,y2-0.3nhh);
+endchar;
+% accent (sforz.) au-dessous de la note
+beginchar(31, nhw#, 0.0nhh#, 1.0nhh#);
+ clear;
+ z1=(1.2nhw,-1.3nhh);
+ z2=(-0.2nhw,-1.3nhh);
+ pickup pencircle scaled 0.5s;
+ draw z1--(x2,y2+0.3nhh);
+ draw z1--(x2,y2-0.3nhh);
+endchar;
+%%%%%%%%%%%%%%%
+% breve %
+%%%%%%%%%%%%%%%
+beginchar(32, nhw#, 0.7nhh#, 0.7nhh#);
+ clear;
+ pickup pencircle scaled (4thinwidth);
+ draw (0,h)--(0,-d);
+ draw (w,h)--(w,-d);
+ fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle;
+ fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle;
+endchar;
+%%%%%%%%%%%%%%%
+%% volle Note %
+%%%%%%%%%%%%%%%
+beginchar(33, nhw#, .5nhh#, .5nhh#);
+ w:=w+2thinwidth;
+ drawnoteb(w, h, 0, 90, 20, w/2, nhh/2);
+endchar;
+%%%%%%%%%%%%%%%
+%% halbe Note %
+%%%%%%%%%%%%%%%
+beginchar(34, nhw#, .5nhh#, .5nhh#);
+ w:=w+2thinwidth;
+% drawnoteb(w, h, 0, 90, 20, thinwidth, nhh/4);
+ drawnoteb(w, h, 0, 90, 20, 3*thinwidth, nhh/4);
+endchar;
+%%%%%%%%%%%%%%%
+%% ganze Note %
+%%%%%%%%%%%%%%%
+beginchar(35,1.5nhh#, .5nhh#, .5nhh#);
+% drawnoteb(w, h, 0, 85, 0, nhh/3, thinwidth);
+ drawnoteb(w, h, 0, 85, 0, nhh/3, 3*thinwidth);
+endchar;
+%%%%%%%%%%%%%%%
+% semi-breve %
+%%%%%%%%%%%%%%%
+beginchar(36, 2nhw#, 0.7nhh#, 0.7nhh#);
+ clear;
+ pickup pencircle scaled (4thinwidth);
+ draw (0,h)--(0,-d);
+ draw (w,h)--(w,-d);
+ fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle;
+ fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle;
+endchar;
+%%%%%%%%%%%%%%%
+%% volle kleine Note %
+%%%%%%%%%%%%%%%
+beginchar(37, apog_fact*nhw#, .50*apog_nhh#, .50*apog_nhh#);
+ w:=apog_fact*nhw;
+ w:=w+2thinwidth;
+ drawnoteb(w, h, 0, 90, 20, w/2, apog_nhh/2);
+endchar;
+%%%%%%%%%%%%%%%
+%% halbe Note %
+%%%%%%%%%%%%%%%
+beginchar(38, apog_fact*nhw#, apog_fact*0.5nhh#, apog_fact*0.5nhh#);
+ w:=w+2thinwidth;
+% drawnoteb(w, h, 0, 90, 20, thinwidth, nhh/4);
+ drawnoteb(w, h, 0, 90, 20, 3*thinwidth, apog_nhh/4);
+endchar;
+%%%%%%%%%%%%%%%
+%% ganze Note %
+%%%%%%%%%%%%%%%
+beginchar(39, 1.5*apog_nhh#, apog_fact*0.5nhh#, apog_fact*0.5nhh#);
+% drawnoteb(w, h, 0, 85, 0, nhh/3, thinwidth);
+ drawnoteb(w, h, 0, 85, 0, apog_nhh/3, 3*thinwidth);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "8flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(40, 0, 3nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ pickup pencircle scaled (0.1pt);
+ flagshape(1,w, h, nhh, 5thinwidth, 0, 0);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(41, 0, 3.25nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ pickup pencircle scaled (0.1pt);
+ flagshape(1, w, 2.5nhh, 2/3nhh, 5thinwidth, 0, 0);
+ flagshape(5,.95 w, 2.25 nhh, 2/3nhh, 5thinwidth, 0, nhh);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(42, 0, 3.75 nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ pickup pencircle scaled (0.1pt);
+ flagshape(1, w, 2.5nhh, 2/3nhh, 5thinwidth, 0, 0);
+ flagshape(5, .95w, 2.25 nhh, 2/3nhh, 5thinwidth, 0, nhh);
+ flagshape(9, .9w, 2 nhh, 2/3nhh, 5thinwidth, 0, 1.75nhh);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(43, 0, 4.25nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ pickup pencircle scaled (0.1pt);
+ flagshape(1, w, 2.5nhh, 2/3nhh, 5thinwidth, 0, 0);
+ flagshape(5,.95 w, 2.25 nhh, 2/3nhh, 5thinwidth, 0, nhh);
+ flagshape(9,.9w, 2 nhh, 2/3nhh, 5thinwidth, 0, 1.75nhh);
+ flagshape(13,0.85w, 2nhh, 2/3nhh, 5thinwidth, 0, 2.25nhh);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(44, 0, 4.5nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ pickup pencircle scaled (0.1pt);
+ flagshape(1, w, 2.5nhh, 2/3nhh, 5thinwidth, 0, 0);
+ flagshape(5, w, 2.25nhh, 2/3nhh, 5thinwidth, 0, nhh);
+ flagshape(9, w, 2 nhh, 2/3nhh, 5thinwidth, 0, 1.75nhh);
+ flagshape(13,0.9 w, 2nhh, 2/3nhh, 5thinwidth, 0, 2.25nhh);
+ flagshape(17,0.9 w, 1.5nhh, 1/3nhh, 5thinwidth, 0, 3nhh);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%
+%% "8flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%
+beginchar(45, 0, 3nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ pickup pencircle scaled (0.1pt);
+ flagshaper(1,w, h, nhh, 5thinwidth, origin);
+ penlabels(1,2,3,4);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(46, 0, 3.25nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ pickup pencircle scaled (0.1pt);
+ flagshaper(1, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,0.75nhh));
+ flagshaper(5, w, 2.25 nhh, 2/3nhh, 5thinwidth,(0,-0.25nhh));
+ penlabels(1,2,3,4,5,6,7,8);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(47, 0, 3.75 nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ pickup pencircle scaled (0.1pt);
+ flagshaper(1, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,1.5nhh));
+ flagshaper(5, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,0.75nhh));
+ flagshaper(9, .95w, 2.25 nhh, 2/3nhh, 5thinwidth, origin);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+ w := 0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(48, 0, 4.25nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ pickup pencircle scaled (0.1pt);
+ flagshaper(1, w, 2.5nhh, 2/3nhh, 5thinwidth, (0,1.75nhh));
+ flagshaper(5, w, 2.25 nhh, 2/3nhh, 5thinwidth, (0,1nhh));
+ flagshaper(9,w, 2 nhh, 2/3nhh, 5thinwidth, (0,0.34nhh));
+ flagshaper(13,0.9w, 2nhh, 2/3nhh, 5thinwidth, (0,-0.32nhh));
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+ w := 0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(49, 0, 4.5nhh#, 0);
+ clear;
+ w:=0.8*nhw;
+ flagshaper(1, w, 2.25nhh, 2/3nhh, 5thinwidth, (0,2.5nhh));
+ flagshaper(5, w, 2.25nhh, 2/3nhh, 5thinwidth, (0,1.75nhh));
+ flagshaper(9, w, 2 nhh, 2/3nhh, 5thinwidth, (0,1nhh));
+ flagshaper(13,0.9 w, 2nhh, 2/3nhh, 5thinwidth, (0,0.5nhh));
+ flagshaper(17,0.9 w, 2nhh, 1/3nhh, 5thinwidth, (0,0nhh));
+ w := 0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% VERSETZUNGSZEICHEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%
+%% "flat" %
+%%%%%%%%%%%%
+def flat (expr reduction) =
+ clear; flatraise:=-0.1*nhh*reduction;
+ penpos4(7/24reduction*nhh, 25);%/5,20 % 1
+ penpos3(reduction*nhh/6,-90);%/5,20 %
+ penpos6(reduction*nhh/6,-90);%/5,20 %
+ penpos2(reduction*nhh/5, 90);%/5,20 %
+ y1 = h; % 4
+ x1 = x2 = x3 = reduction*s; x4 = reduction*(nhw-s); % 2
+ y4 = reduction*s; %
+ y2l - y3r = 1/4h; y2l = 0; % 3
+ currentpen:= pencircle scaled 3thinwidth;
+ penstroke (z2e...z4e...z3e{3left+2down}) shifted (0,flatraise);%right ,sw
+ draw (z1--z3) shifted (0,flatraise) ;
+ penlabels(1,2,3,4);
+enddef;
+%
+beginchar(50, nhw#, 2nhh#, 2nhh#);
+ flat (1.0);
+endchar;
+%
+%%%%%%%%%%
+%% "bb" %
+%%%%%%%%%%
+beginchar(51,2nhw#, 2nhh#, 2nhh#);
+ flat (1.0);
+ draw (z1--z3) shifted ((w/2 - 1.5s),flatraise);
+ penstroke (z2e..z4e...z3e{3left+2down})shifted ((w/2
+ -1.5s),flatraise);
+endchar;
+%%%%%%%%%%%%%
+%% "sharp" %
+%%%%%%%%%%%%%
+def sharp ( expr reduction ) =
+ clear;
+ penpos3(3/8reduction*nhh,90);
+ penpos4(3/8reduction*nhh,90);
+ penpos5(3/8reduction*nhh,90);
+ penpos6(3/8reduction*nhh,90);
+ y1 + y2 = -0.5reduction*s; y1 - y2 = 2h - reduction*s;
+ x1 = x2 = reduction*s; y3 = 1/4reduction*nhh;
+ y4l = y3r; x3= 0; x4 = 0.8*reduction*nhw;
+ y5 = -y4; y6 = -y3; x5 = x3; x6 = x4;
+ currentpen:= pencircle scaled 3thinwidth;
+ draw z1--z2;
+ draw (z1--z2) shifted (w-2reduction*s,reduction*s);
+ penstroke z3e--z4e;
+ penstroke (z5e--z6e) ;
+ penlabels(1,2,3,4,5,6);
+enddef;
+%
+beginchar(52, 0.8nhw#, 1.5nhh#, 1.5nhh#);
+ sharp(1.0);
+endchar;
+%
+%%%%%%%%%%
+%% "xx" %
+%%%%%%%%%%%
+beginchar(53, nhw#, .5nhw#, .5nhw#);
+ clear;
+ z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w);
+ z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w);
+ currentpen:= pencircle scaled .2nhh;
+ draw z1--z4; draw z3--z2;
+ currentpen:= pensquare scaled .30w;
+ drawdot z1; drawdot z2; drawdot z3; drawdot z4;
+endchar;
+%%%%%%%%%%%%%%%
+% "natural" %
+%%%%%%%%%%%%%%%
+def natural =
+ clear;
+ reduction:=w/(0.8*nhw);
+ penpos3(3/8reduction*nhh,90);
+ penpos4(3/8reduction*nhh,90);
+ penpos7(3/8reduction*nhh,90);
+ penpos8(3/8reduction*nhh,90);
+ x1 = x2 = x3 = x7 = 0.75*reduction*s;
+ x5 = x6 = x4 = x8 = w-x1;
+ y1 = h; y3 = 0.30reduction*nhh ;
+ y4l = y3r-0.5*reduction*s ;
+ y6 = -y1; y5 = -y2;
+ y7l = y2;
+ y7 = -y4; y8 = -y3;
+ currentpen:= pencircle scaled 3thinwidth;
+ draw z1--z2;
+ draw z5--z6;
+ penstroke z3e--z4e;
+ penstroke z7e--z8e;
+enddef;
+%
+beginchar(54, 0.8nhw#, 1.5nhh#, 1.5nhh#);
+ natural;
+endchar;
+%
+%%%%%%%%%%%%%%%%
+%% "1/4 flat" %
+%%%%%%%%%%%%%%%%
+beginchar(55, nhw#, 2nhh#, 2nhh#);
+ clear;
+ penpos4(7/24nhh, 25);%/5,20 % 1
+ penpos3(nhh/6,-90);%/5,20 %
+ penpos2(nhh/6, 90);%/5,20 %
+ y1 = h; % 4
+ x1 = x2 = x3 = w-s; x4 =2w-3s; % 2
+ y4 = s; %
+ y2l - y3r = 1/4h; y2l = 0; % 3
+ currentpen:= pencircle scaled 3thinwidth;
+ penstroke (counterclockwise
+ (z2e...z4e...z3e{3left+2down}) reflectedabout(z1 ,z3));
+ draw z1--z3;
+ penlabels(1,2,3,4);
+endchar;
+%%%%%%%%%%%%%%%%
+%% "3/4 flat" %
+%%%%%%%%%%%%%%%%
+beginchar(56, 2nhw#, 2nhh#, 2nhh#);
+ clear;
+ penpos4(7/24nhh, 25);%/5,20 % 1
+ penpos3(nhh/6,-90);%/5,20 %
+ penpos2(nhh/6, 90);%/5,20 %
+ y1 = h; % 4
+ x1 = x2 = x3 = w/2; x4 =x1+nhw-2s; % 2
+ y4 = s; %
+ y2l - y3r = 1/4h; y2l = 0; % 3
+ currentpen:= pencircle scaled 3thinwidth;
+ penstroke z2e...z4e...z3e{3left+2down};
+ penstroke (counterclockwise
+ (z2e...z4e...z3e{3left+2down}) reflectedabout(z1 ,z3));
+ draw z1--z3;
+ penlabels(1,2,3,4);
+endchar;
+%
+% Gregorian notes
+%
+beginchar(57, nhw#, .5nhh#, .5nhh#);
+ fill (0.5w-0.8h,0)--(0.5w,h)--(0.5w+0.8h,0)--(0.5w,-h)--cycle;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% PAUSEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%
+%% "dp" %
+%%%%%%%%%
+beginchar(58,1/2nhw#, 3nhh#, 0);
+ clear;
+ penpos1(nhh,90);
+ penpos2(nhh,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+labels(1,2);
+endchar;
+%%%%%%%%%%
+%% "ddp" %
+%%%%%%%%%%
+beginchar(59,1/2nhw#, 3nhh#, 0);
+ clear;
+ penpos1(2nhh,90);
+ penpos2(2nhh,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+labels(1,2);
+endchar;
+%%%%%%%%%%%%%%%%%%
+%% "ganze Pause" %
+%%%%%%%%%%%%%%%%%%
+beginchar(60, nhw#, 3nhh#, 0);
+ clear;
+ penpos1(nhh/2,90);
+ penpos2(nhh/2,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+endchar;
+%
+%%%%%%%%%%%%%%%%%%
+%% "halbe Pause" %
+%%%%%%%%%%%%%%%%%%
+beginchar(61, nhw#, 2.5nhh#, 0);
+ clear;
+ penpos1(nhh/2,90);
+ penpos2(nhh/2,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+endchar;
+%%%%%%%%%%%%%%%%%%%%
+%% "viertel Pause" %
+%%%%%%%%%%%%%%%%%%%%
+beginchar(62, nhw#, 4nhh#, 0); % .1
+ clear; % .2
+ thin := 5 thinwidth; thick := 1/2 nhh; % 8..3
+ alpha_a = -50; alpha_b = -50; % .4
+ penpos1 ( thin, (alpha_a+90)); % .5
+ penpos5 ( thin, alpha_b); % .6
+ penpos2 ( thick, alpha_a ); %
+ penpos4 ( thick, alpha_b ); % .7
+ penpos3 ( thick, 1/2(alpha_a+alpha_b));
+ x3r:=9/10[x3,x3r];
+ penpos8 ( thick, 1/2(alpha_a+alpha_b));
+ x8l:=9/10[x8,x8l];
+ penpos6 ( 2/3thick, alpha_b);
+ penpos7 ( 1/2thick, 10);
+ y1l = h - 2s;
+ x1l = 2s;
+ z2r = z1 +(nhh* right) rotated alpha_a;
+ z5 = z4l+(nhh* right) rotated alpha_b;
+ z3 = 1/3[z2,z4];
+ z8 = 2/3[z2,z4];
+ z4 = (w,h) scaled .55;
+ y6r = 1.45nhh;
+ x6l = x4l;
+ x7 = 0.9w; y7= nhh;
+ currentpen:= pencircle scaled thin;
+ draw z1--z2r; draw z5--z4l;
+ penstroke z2e..z3e..z8e..z4e;
+ penstroke z5e{nw}..z6e..z7e;
+endchar;
+%%%%%%%%%%%%%%%%%%%
+%% "achtel Pause" %
+%%%%%%%%%%%%%%%%%%%
+beginchar(63, 2nhh#, 3nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
+ x3=x4=1/2nhh; y4=3nhh; y3=10/4nhh;
+ currentpen := pencircle scaled 4thinwidth;
+ draw z1..z2;
+ currentpen := pensquare rotated45 scaled(2*thinwidth);
+ draw z2..z3{up+left};
+ fill z3..z4..z3..cycle;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "sechzehntel Pause" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(64,2nhh#, 3nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
+ x3=x4=1/2nhh; y4=3nhh; y3=10/4nhh;
+%
+ x5=x2; y5=y2;
+ y6=0; x6=x5-1/3y5;
+ currentpen := pencircle scaled 4thinwidth;
+ draw z5..z6;
+ currentpen := pensquare rotated45 scaled(2*thinwidth);
+ draw z2..z3{up+left};
+ draw z2..z3{up+left} shifted(-1/3nhh,-nhh);
+ fill z3..z4..z3..cycle;
+ fill z3..z4..z3..cycle shifted(-1/3nhh,-nhh);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "zweiunddreissigstel Pause" %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(65,2nhh#, 4nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
+ x3=x4=1/2nhh; y4=3nhh; y3=10/4nhh;
+%
+ x5=x2+1/6nhh; y5=y2+nhh;
+ y6=0; x6=x5-1/3y5;
+ currentpen := pencircle scaled 4thinwidth;
+ draw z5..z6;
+ currentpen := pensquare rotated45 scaled(2*thinwidth);
+ draw z2..z3{up+left} shifted( 1/6nhh,nhh);
+ draw z2..z3{up+left} shifted(-1/6nhh, 0);
+ draw z2..z3{up+left} shifted(-3/6nhh,-nhh);
+ fill z3..z4..z3..cycle shifted( 1/6nhh, nhh);
+ fill z3..z4..z3..cycle shifted(-1/6nhh, 0);
+ fill z3..z4..z3..cycle shifted(-3/6nhh,-nhh);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "vierundsechzigstel Pause" %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(66,2nhh#, 5nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
+ x3=x4=1/2nhh; y4=3nhh; y3=10/4nhh;
+%
+ x5=x2+1/3nhh; y5=y2+2nhh;
+ y6=0; x6=x5-1/3y5;
+ currentpen := pencircle scaled 4thinwidth;
+ draw z5..z6;
+ currentpen := pensquare rotated45 scaled(2*thinwidth);
+ draw z2..z3{up+left} shifted( 1/3nhh, 2nhh);
+ draw z2..z3{up+left} shifted( 0,nhh);
+ draw z2..z3{up+left} shifted(-1/3nhh, 0);
+ draw z2..z3{up+left} shifted(-2/3nhh,-nhh);
+ fill z3..z4..z3..cycle shifted( 1/3nhh, 2nhh);
+ fill z3..z4..z3..cycle shifted( 0, nhh);
+ fill z3..z4..z3..cycle shifted(-1/3nhh,0);
+ fill z3..z4..z3..cycle shifted(-2/3nhh,-nhh);
+endchar;
+%%%%%%%%%%%%%%%%%%%
+% ornements %
+%%%%%%%%%%%%%%%%%%%
+beginchar (67, 2nhw#, nhh#, 0);
+ clear;
+ x1=0.2w; y1=h; x6=w-x1; y6=h-y1;
+ x2=0; y2=0.5h; x5=w-x2; y5=h-y2;
+ x3=0.25w; y3=0; x4=w-x3; y4=h-y3;
+ pickup pencircle scaled 4thinwidth;
+ penpos1 (5thinwidth,90);
+ penpos2 (5thinwidth, 180);
+ penpos3 (0.3nhw, -10);
+ penpos4 (0.3nhw, -10);
+ penpos5 (5thinwidth, 180);
+ penpos6 (5thinwidth, 90);
+ penstroke (z1e..{down}z2e{down}..{right}z3e{right}..{right}z4e{right}..{down}z5e{down}..z6e) ;
+ pickup pencircle scaled 2s ;
+ drawdot (x1,y1-s) ;
+ drawdot (x6,y6+s) ;
+endchar;
+beginchar (68, 2nhw#, nhh#, 0);
+ clear;
+ x1=0.2w; y1=0; x6=w-x1; y6=h-y1;
+ x2=0; y2=0.5h; x5=w-x2; y5=h-y2;
+ x3=0.25w; y3=h; x4=w-x3; y4=h-y3;
+ pickup pencircle scaled 4thinwidth;
+ penpos1 (5thinwidth,-90);
+ penpos2 (5thinwidth, -180);
+ penpos3 (0.3nhw, 10);
+ penpos4 (0.3nhw, 10);
+ penpos5 (5thinwidth, -180);
+ penpos6 (5thinwidth, -90);
+ penstroke (z1e..{up}z2e{up}..{right}z3e{right}..{right}z4e{right}..{up}z5e{up}..z6e);
+ pickup pencircle scaled 2s;
+ drawdot (x1,y1+s);
+ drawdot (x6,y6-s);
+endchar;
+%%%%%%%%%%%%%%%
+% appogiature %
+%%%%%%%%%%%%%%%
+beginchar(69, apog_fact*nhw#, 3*apog_nhh#, .50*apog_nhh#);
+ clear;
+ w:=apog_fact*nhw;
+ flagshape(1,w, 3*apog_nhh, apog_nhh, 4thinwidth, w,0);
+ clear;
+ w:=apog_fact*nhw;
+ w:=w+2thinwidth;
+ drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2);
+ clear;
+ pickup pencircle scaled 4thinwidth;
+ w:=apog_fact*nhw;
+ draw (w,0)--(w,h);
+ x1=-0.1w; y1=0.6apog_nhh; x2=2w; y2=y1+0.6*(x2-x1);
+ draw z1--z2;
+%
+ w:=apog_fact*nhw;
+endchar;
+beginchar(70, apog_fact*nhw#, 0.5apog_nhh#, 3*apog_nhh#);
+ clear;
+ w:=apog_fact*nhw;
+ flagshaper(1,w, 3apog_nhh, apog_nhh, 5thinwidth, (0,-3apog_nhh));
+ clear;
+ w:=apog_fact*nhw;
+ w:=w+2thinwidth;
+ drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2);
+ pickup pencircle scaled 4thinwidth;
+ draw (0,0)--(0,-d);
+ clear;
+ w:=apog_fact*nhw;
+ x1=-0.3w; y1=-1.6apog_nhh; x2=1.3w; y2=y1+0.6*(x2-x1);
+ draw z1--z2;
+%
+ w:=apog_fact*nhw;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% NOTENSCHLUESSEL %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% VIOLINSCHLUESSEL %
+%%%%%%%%%%%%%%%%%%%%
+def violin(expr width, beginleft, begindown, thick, penthick) =
+x10=x3=x2=x8;
+y6l=56/15width+y12r;
+x11-x4=width;
+x5=x4+13/15width;
+x2=x4+31/45 width;
+x1=x4+7/15width;
+x4=beginleft;
+x2-x12=4/15 width;
+x9+2/5width=x6;
+x6-4/15width=x7;
+x9=x4+1/5width;
+y12r=begindown;
+y2r=y4=2y11;
+y8=y12r+4/15width;
+y2r=y12r+28/15width;
+y1=y12r+width;
+y3r=y12r+13/15width;
+y7=y12r+116/45width;
+y5=y12r+16/5width;
+y5-y10=y11;
+y9=y12r+2/15width;
+y13=y8; x13=x8-0.6s;
+penpos1(0,180);
+penpos2(thick,90);
+penpos3(penthick+1/16thick,-90);
+penpos4(5/4thick,120);
+penpos5(5/6thick,-120);
+penpos6(5/3thick,-85);
+penpos7(1/2thick,0);
+penpos8(penthick,0);
+penpos13(penthick,0);
+penpos9(5/4thick,170);
+penpos10(5/6thick,180);
+penpos11(thick,0);
+penpos12(penthick,-90);
+pickup pencircle scaled 1s;
+%
+% penstroke z1e{2left}..z2e..z11e..z3e
+% ..z4e{right+up}..z10e..{up}z5e..z6e;
+% penstroke z6e{down+left}..{down}z7e--z8e;
+% fill z8l{2down+right}..z12l..z9l
+% --z9r..z12r..{up}z8r..cycle;
+% pickup pencircle scaled 1s;
+% fill z9l{3/2right+up}..{right+2down}z9r..cycle;
+penstroke z1e{2left}..z2e..z11e..z3e
+..z4e{right+up}..z10e..{up}z5e..z6e;
+penstroke z6e{down+left}..{down}z7e--z8e
+{2down+right}..z12e..{2left+up}z9e;
+pickup pencircle scaled 2.5s;
+drawdot (x9+0.4s,y9+0.8s);
+%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+enddef;
+%
+beginchar(71,3.25nhw#, 6nhh#, 2nhh#);
+clear;
+violin(15/8nhh,1.75nhh,-1.5nhh,0.4nhh,0.111nhh);
+endchar;
+
+%%%%%%%%violin-schluessel verkleinert%%%%%%%%
+beginchar(72,2.60nhw#, 6nhh#, 2nhh#);
+clear;
+violin(12/8nhh,1.40nhh,-1.2nhh,0.32nhh,1/10nhh);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%
+% BASS--SCHLUESSEL %%
+%%%%%%%%%%%%%%%%%%%%%
+% clef de fa par D. Taupin %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bass (expr reduction) =
+ clear;
+ x2=0.80*reduction*nhw; y2=3nhh;
+ x1=x2+1.25*reduction*s; y1=y2;
+ x3=x2+0.71*reduction*nhw; y3=y2+reduction*nhh;
+ x4=x3+0.71*reduction*nhw; y4=y2-0.2*reduction*nhh;
+ x6=x2-6*reduction*thinwidth; y6=y2-2.2*reduction*nhh;
+ x7=x4+0.50*reduction*nhw; x8=x7;
+ y7=y2+0.38*reduction*nhh; y8=y2-0.38*reduction*nhh;
+%
+ currentpen:=pencircle scaled (4*reduction*thinwidth);
+ penpos2(6*reduction*thinwidth,180);
+ penpos3(6*reduction*thinwidth, 90);
+ penpos4(0.5*reduction*nhh,0);
+ penpos6(0.3*reduction*nhh,-30);
+ penstroke(z2e{up}..{right}z3e{right}..{down}z4e{down}..{left+0.1down}z6);
+ currentpen := pencircle scaled (0.4reduction*nhh);
+ pickup pencircle scaled (2*(x2-x1));
+ drawdot z1;
+ pickup pencircle scaled 1.7s;
+ drawdot z7; drawdot z8;
+enddef;
+%
+beginchar(73, 3nhw#, 4nhh#, 0);
+ bass(1.0);
+endchar;
+
+%%%%%%verkleinerter bass-schluessel%%%%%%%%%
+beginchar(74, 2.4*nhw#, 4nhh#, 0);
+ bass(0.8);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%
+% ALT--SCHLUESSEL %
+%%%%%%%%%%%%%%%%%%%
+def alt(expr height, beginleft, begindown, thick) =
+x1=x7;
+x2=x8;
+y1-y7=height;
+y2-y8=height;
+y7=begindown;
+x7=beginleft;
+x2=x1+1/4height;
+x6l=x8l;
+y5=y7+1/2height;
+y9=y7+1/9height;
+x5=x3;
+y4=y5+0.120height;
+x4-x7=height+3thinwidth;
+x4-x5=1/2height+3thinwidth;
+y3-y5=2/7height;
+y8=y7;
+y6=y7;
+x9=0.62x5+0.38x4;
+x10=x9; y10=y7+height;
+x11=0.5x3+0.5x6; y11=y3; penpos11(1/2thick,0);
+penpos8(1/4thick,180);
+penpos2(1/4thick,180);
+penpos1(thick,180);
+penpos7(thick,180);
+penpos6(thick,0);
+penpos5(1/10thick,0);
+penpos9(1/3thick,90);
+penpos3(1/2thick,0);
+penpos4(thick,180);
+penpos10(1/3thick,-90);
+
+pickup pencircle scaled 1s;
+fill z7l--z1l--z1r--z7r--cycle;
+fill z8l--z2l--z2r--z8r--cycle;
+penstroke z5e..{left+2down}z6e;
+penstroke z5e{right+4down}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e;
+
+
+pickup pencircle scaled 1s;
+penstroke
+ (counterclockwise(z7e--z1e)reflectedabout(z7,z8));
+penstroke
+(counterclockwise(z8e--z2e)reflectedabout(z7,z8));
+penstroke
+(counterclockwise(z5e..{left+2down}z6e)reflectedabout(z7,z8));
+penstroke
+(counterclockwise (z5e{right+4down}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e)
+reflectedabout(z7,z8));
+
+pickup pencircle scaled 2.5s;
+drawdot (x3+0.1nhh, y3);
+drawdot (x3+0.1nhh, 2y7-y3);
+penlabels(1,2,3,4,5,6,7,8);
+enddef;
+
+%%%%%%%%%%%Altschl"usseL%%%%%%%%%%%
+beginchar(75,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,2nhh,0.4nhh);
+endchar;
+
+%%%%%%%%%Verkleinerter Altschluessel%%%%%%%%%
+beginchar(76,2.8nhw#, 4nhh#, 0nhh#);
+clear;
+alt(1.6nhh,1.00nhh,2nhh,0.32nhh);
+endchar;
+
+%%%%%%%%%Baritonschluessel%%%%%%%%%
+beginchar(77,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,4nhh,2/5nhh);
+endchar;
+
+%%%%%%%%%Mezzosopranschluessel%%%%%%%%%
+beginchar(78,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,1nhh,2/5nhh);
+endchar;
+
+%%%%%%%%%Sopranschluessel%%%%%%%%%
+beginchar(79,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,0nhh,2/5nhh);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SONDERZEICHEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+def alla_breve (expr trans) =
+ thin := 5thinwidth; thick := 1/2 nhh;
+ penpos1(thin, 0);
+ penpos2(thin, -90);
+ penpos3(thick,180);
+ penpos4(thin, 90);
+ penpos5(thin, 45);
+ penpos6(3/4thick,45);
+ 2x2r = 2x4r = x1 + 2s = w;
+ x3r = 0; 2y1 = 3y2 = y4r = h;
+ y3r = 2/3h;
+ x5 = w -2s;
+ y5 = h -2s;
+ z6r = z5r;
+ penstroke (z1e..z2e..z3e..z4e..z5e) transformed trans;
+ currentpen := pencircle scaled (2/3thick);
+ drawdot z6;
+enddef;
+
+
+%%%%%%%%%%%%%%%
+% "fermate1" %%
+%%%%%%%%%%%%%%%
+beginchar(80, 2nhw#, 1.25nhh#, 0);
+ clear;
+ penpos2(nhh/3,90);
+ penpos4(nhh/3,90);
+ y2r =1.2h;
+ z1 = origin; 2x2l = 2x4l = x3 = w; y4l = y3 = 0;
+ penstroke z1..z2e..z3;
+ currentpen:= pencircle scaled (nhh/3);
+ drawdot z4;
+endchar;
+%%%%%%%%%%%%%%%
+% "fermate2" %%
+%%%%%%%%%%%%%%%
+beginchar(81, 2nhw#, 0, 1.25nhh#);
+ clear;
+ penpos2(nhh/3,90);
+ penpos4(nhh/3,90);
+ y2l = -1.2d;
+ z1 = origin; 2x2l = 2x4 = x3 = w;
+ y4r = y3 = 0;
+ penstroke (z1..z2e..z3);
+ currentpen := pencircle scaled (nhh/3);
+ drawdot z4;
+endchar;
+%%%%%%%%%%%%%%%%
+% "allabreve" %%
+%%%%%%%%%%%%%%%%
+beginchar(82, 2nhh#, 3nhh#, 0);
+ clear;
+ alla_breve(identity);
+ z7 = z4 + 2/16 h *up;
+ z8 = z2 + 2/16 h *down;
+ currentpen := pencircle scaled (thin);
+ draw z7--z8;
+endchar;
+%%%%%%%%
+% "C" %%
+%%%%%%%%
+beginchar(83, 2nhh#, 3nhh#, 0);
+ clear;
+ alla_breve(identity);
+endchar;
+%%%%%%%%%%%%%%%
+% "reverseC" %%
+%%%%%%%%%%%%%%%
+beginchar(84, 2nhh#, 3nhh#, 0);
+ clear;
+ transform T;
+ xxpart T = -yypart T; xypart T = yxpart T; % T is a reflection
+ (w/2,0) transformed T = (w/2,0); (w/2,1) transformed T = (w/2,1);
+ thin := 5thinwidth; thick := 1/2 nhh;
+ penpos1(thin, 0);
+ penpos2(thin, -90);
+ penpos3(thick,180);
+ penpos4(thin, 90);
+ penpos5(thin, 45);
+ penpos6(3/4thick,45);
+ 2x2r = 2x4r = x1 + 2s = w;
+ x3r = 0; 2y1 = 3y2 = y4r = h;
+ y3r = 2/3h;
+ x5 = w -2s;
+ y5 = h -2s;
+ z6r = z5r;
+ penstroke (counterclockwise
+ (z1e..z2e..z3e..z4e..z5e) transformed T);
+ currentpen := pencircle scaled (2/3thick);
+ drawdot (z6 transformed T);
+endchar;
+%%%%%%%%%%%%%%%
+% reprises sym%
+%%%%%%%%%%%%%%%
+beginchar(85, 2nhw#, 3nhh#, 0);
+ clear;
+ x1=0.5w; y1=0.5h;
+ x2=0.5nhh; y2=y1;
+ x3=x1; y3=y1+nhh;
+ x4=2x1-x2; y4=2y1-y2;
+ x5=2x1-x3; y5=2y1-y3;
+ pickup pencircle scaled 4thinwidth;
+ draw (x1,0)--(x1,h);
+ draw (0,y1)--(w,y1);
+ pickup pencircle xscaled 10thinwidth yscaled 4thinwidth;
+ draw z2..z3..z4..z5..cycle;
+endchar;
+beginchar(86, 3nhw#, 3nhw#, 0);
+ clear;
+ x1=0.5w; y1=0.5h;
+ x2=x1; y2=y1+0.4h;
+ x3=2x1-x2; y3=2y1-y2;
+ x4=x1-0.4h; y4=y1;
+ x5=2x1-x4; y5=2y1-y4;
+ x6=x1+0.4w; y6=y1+0.4h;
+ x7=2x1-x6; y7=2y1-y6;
+ pickup pencircle scaled 10thinwidth;
+ drawdot z2; drawdot z3;
+ drawdot z4; drawdot z5;
+ pickup pencircle scaled 4thinwidth;
+ draw z6--z7;
+%
+ x8=x1-0.3w; y8=y1+0.3h;
+ x9=2x1-x8; y9=2y1-y8;
+%
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%
+% " pince" %
+%%%%%%%%%%%%%%%
+def pince =
+ clear;
+ x1=-0.125w; y1=0.25h;
+ x2=1/8w; y2=8/10h;
+ x3=0.5w-x2; y3=h-y2;
+ x4=0.5w+x2; y4=y2;
+ x5=0.5w+x3; y5=y3;
+ x6=w-x1; y6=h-y1;
+ pickup pencircle xscaled 0.40nhh yscaled 0.1nhh rotated 45;
+ draw (z1--z2--z3--z4--z5--z6);
+enddef;
+%
+beginchar(87, 1.2nhw#, 0.8nhh#, 0);
+ pince;
+endchar;
+%
+beginchar(88, 1.8nhw#, 0.8nhh#, 0);
+ w:=2w/3;
+ pince;
+ draw (z4--z5--z6) shifted (0.5w,0);
+endchar;
+%%%%%%%%%%%%%%%
+% "mordant" %
+%%%%%%%%%%%%%%%
+beginchar(89, 1.2nhw#, 0.8nhh#, 0);
+ pince;
+ pickup pencircle scaled (4thinwidth);
+ draw (0.5w,-0.4h)--(0.5w,1.4h);
+endchar;
+%%%%%%%%%%%%%%%
+% arpeggio %%
+%%%%%%%%%%%%%%%
+def arpegel =
+ clear;
+ y1=0; x1=0.5w;
+ y2=0.3nhh; x2=8/10w;
+ y3=nhh-y2; x3=w-x2;
+ y4=nhh; x4=0.5w;
+ pickup pencircle xscaled 0.40nhh yscaled 0.1nhh rotated 45;
+ draw (z1..z2..z3..z4);
+enddef;
+%
+beginchar(90, 0.4nhw#, nhh#, 0);
+ arpegel;
+endchar;
+for jj=1 upto 9:
+ beginchar(90+jj, 0.4nhw#, (1+jj)*nhh#, 0);
+ arpegel;
+ for kk=1 upto jj:
+ draw (z1..z2..z3..z4) shifted (0,kk*nhh);
+ endfor;
+endchar;
+endfor;
+%%%%%%%%%%%%%%%
+% "trille" %%
+%%%%%%%%%%%%%%%
+def arp_elem =
+ clear;
+ x1=0; y1=0.5h;
+ x2=1/3nhw; y2=8/10h;
+ x3=nhw-x2; y3=h-y2;
+ x4=nhw; y4=0.5h;
+ pickup pencircle xscaled 0.33nhh yscaled 0.1nhh rotated 45;
+ draw (z1..z2..z3..z4);
+enddef;
+%
+beginchar(100, nhw#, 0.45nhh#, 0);
+ arp_elem;
+endchar;
+%
+for jj=1 upto 9:
+ beginchar(100+jj, (jj+1)*nhw#, 0.45nhh#, 0);
+ arp_elem;
+ for kk=1 upto jj:
+ draw (z1..z2..z3..z4) shifted (kk*nhw,0);
+ endfor;
+ endchar;
+endfor;
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "8flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(110, 0, 3apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshape(1,w, h, apog_nhh, 5thinwidth, 0, 0);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(111, 0, 3.25apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshape(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 0);
+ flagshape(5,.95 w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, apog_nhh);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(112, 0, 3.75apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshape(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 0);
+ flagshape(5, .95w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, apog_nhh);
+ flagshape(9, .9w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 1.75apog_nhh);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(113, 0, 4.25apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshape(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 0);
+ flagshape(5,.95 w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, apog_nhh);
+ flagshape(9,.9w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 1.75apog_nhh);
+ flagshape(13,0.85w, 2apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 2.25apog_nhh);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(114, 0, 4.5apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshape(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 0);
+ flagshape(5, w, 2.25apog_nhh, 2/3apog_nhh, 5thinwidth, 0, apog_nhh);
+ flagshape(9, w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 1.75apog_nhh);
+ flagshape(13,0.9 w, 2apog_nhh, 2/3apog_nhh, 5thinwidth, 0, 2.25apog_nhh);
+ flagshape(17,0.9 w, 1.5apog_nhh, 1/3apog_nhh, 5thinwidth, 0, 3apog_nhh);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%
+%% "8flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(115, 0, 3apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshaper(1,w, h, apog_nhh, 5thinwidth, origin);
+ penlabels(1,2,3,4);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(116, 0, 3.25apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshaper(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, (0,0.75apog_nhh));
+ flagshaper(5, w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth,(0,-0.25apog_nhh));
+ penlabels(1,2,3,4,5,6,7,8);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(117, 0, 3.75apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshaper(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1.5apog_nhh));
+ flagshaper(5, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, (0,0.75apog_nhh));
+ flagshaper(9, .95w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, origin);
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+ w := 0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(118, 0, 4.25apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshaper(1, w, 2.5apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1.75apog_nhh));
+ flagshaper(5, w, 2.25 apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1apog_nhh));
+ flagshaper(9,w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, (0,0.34apog_nhh));
+ flagshaper(13,0.9w, 2apog_nhh, 2/3apog_nhh, 5thinwidth, (0,-0.32apog_nhh));
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+ w := 0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(119, 0, 4.5apog_nhh#, 0);
+ clear;
+ w:=0.8*apog_fact*nhw;
+ flagshaper(1, w, 2.25apog_nhh, 2/3apog_nhh, 5thinwidth, (0,2.5apog_nhh));
+ flagshaper(5, w, 2.25apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1.75apog_nhh));
+ flagshaper(9, w, 2 apog_nhh, 2/3apog_nhh, 5thinwidth, (0,1apog_nhh));
+ flagshaper(13,0.9 w, 2apog_nhh, 2/3apog_nhh, 5thinwidth, (0,0.5apog_nhh));
+ flagshaper(17,0.9 w, 2apog_nhh, 1/3apog_nhh, 5thinwidth, (0,0apog_nhh));
+ w := 0;
+endchar;
+%%%%%%%%%%%%%%%%
+% kleine versetzungen
+%%%%%%%%%%%%%%%%
+beginchar(120, apog_fact*nhw#, 2apog_fact*nhh#, 2apog_fact*nhh#);
+ flat (apog_fact);
+endchar;
+beginchar(121,2*apog_fact*nhw#, 2*apog_fact*nhh#, 2*apog_fact*nhh#);
+ flat (apog_fact);
+ draw (z1--z3) shifted ((w/2 - 1.5s),0);
+ penstroke (z2e..z4e...z3e{3left+2down})shifted ((w/2 -1.5s),0);
+endchar;
+beginchar(122, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#);
+ sharp(apog_fact);
+endchar;
+beginchar(123, apog_fact*nhw#, .5nhw#, .5nhw#);
+ clear;
+ z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w);
+ z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w);
+ pwidth:=0.2*apog_fact*nhh;
+ currentpen:= pencircle scaled pwidth;
+ draw z1--z4; draw z3--z2;
+ currentpen:= pensquare scaled .30w;
+ drawdot z1; drawdot z2; drawdot z3; drawdot z4;
+endchar;
+beginchar(124, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#);
+ natural;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% volle Note mit | --> |O|%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(125,1.5nhh#, .5nhh#, .5nhh#);
+ drawnoteb(w, h, 0, 85, 0, nhh/3, 3*thinwidth);
+ pickup pensquare scaled 0.2w;
+ draw (-0.05w,-0.4nhh)--(-0.05w,0.4nhh);
+ draw (1.05w,-0.4nhh)--(1.05w,0.4nhh);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicgen.mf b/Master/texmf-dist/fonts/source/public/musictex/musicgen.mf
new file mode 100644
index 00000000000..8457f0336b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicgen.mf
@@ -0,0 +1,1372 @@
+apog_fact=0.75;
+apog_nhh=apog_fact*nhh;
+apog_nhh#=apog_fact*nhh#;
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% NOTENKOEPFE UND FAEHNCHEN %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%
+%%notenkoepfe %
+%%%%%%%%%%%%%%%
+
+def drawnoteb(expr noteheadwidth, noteheadheight, theta_a, theta_b, theta_c,
+width_a, width_b) =
+ % .l
+ penpos1(width_a, theta_a); % .2
+ % .r
+ penpos3(width_a, 180+theta_a); %.l.1.r .r.3.l
+ % .r
+ penpos2(width_b, 180+theta_b); % .4
+ % .l
+ penpos4(width_b, theta_b); %
+ y1 = y3 = 0;
+ x2 = x4 = 1/2noteheadwidth;
+ x1l= 0; x3l = noteheadwidth; y2l = noteheadheight; y4l = -noteheadheight;
+ penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle)
+ rotatedaround((origin +1/2noteheadwidth*right),theta_c);
+ enddef;
+
+def drawnotew(expr noteheadwidth, noteheadheight, theta_a, theta_b,
+width_a, width_b) =
+ % .l
+ penpos1(width_a, theta_a); % .2
+ % .r
+ penpos3(width_a, 180+theta_a); %.l.1.r .r.3.l
+ % .r
+ penpos2(width_b, 180+theta_b); % .4
+ % .l
+ penpos4(width_b, theta_b); %
+ y1l = y3l = 0;
+ x2l = x4l = 0.5noteheadwidth;
+ x1l= 0; x3l = noteheadwidth;
+ y2l = noteheadheight; y4l = -noteheadheight;
+%%%% penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle);
+%%%% pickup pencircle xscaled width_a yscaled width_b;
+%%%% draw (z1{up}..z2{right}..z3{down}..z4{left}..cycle);
+ fill (z1l{up}..z2l{right}..z3l{down}..z4l{left}..cycle); cullit;
+ unfill (z1r{up}..z2r{right}..z3r{down}..z4r{left}..cycle); cullit;
+ penlabels(1,2,3,4);
+ enddef;
+%%%%%%%%%%%%%%%
+% flags %
+%%%%%%%%%%%%%%%
+%
+%
+pickup pencircle scaled (0.1pt);
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle fi enddef;
+%
+%
+def flagshape(suffix i) (expr width, height, thick, thin, shiftx, shifty,
+ flagsense) =
+ pair intersectionp; %
+% % .1
+ penpos[i](thick,90); %
+ penpos[i+1](3thin,45); % .2
+ penpos[i+2](thin,0); %
+ penpos[i+3](thin,0); % .3
+ x[i] = shiftx-0.2pt; %
+ y[i]r = height+shifty; % .4
+ x[i+1] = shiftx+3/8width; %
+ y[i+1] = height+shifty - thick; %
+ x[i+2]r = shiftx+width;
+ y[i+2]r = height+shifty - 2thick;
+ y[i+3] = shifty;
+ x[i+3]r = shiftx+0.6width;
+ if i>1: intersectionp = z[i-2];
+ else : intersectionp = z[i+3];
+ fi;
+
+ if flagsense>0: penstrike
+ (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)}
+ ..z[i+1]e{z[i+1]e-z[i]e}
+ ..z[i+2]e{down}..intersectionp);
+ else:
+ penstrike (counterclockwise
+ (z[i]e{dir(angle(z[i+1]e-z[i]e)-15)}
+ ..z[i+1]e{z[i+1]e-z[i]e}
+ ..z[i+2]e{down}..intersectionp)
+ reflectedabout ((0,h/2), (nhw,h/2))) ;
+ fi;
+
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%
+% song system limits %
+%%%%%%%%%%%%%%%%%%%%%%
+beginchar(14,0.5nhw#,0,0);
+ clear;
+ z1=(0,0);
+ z2=(0.5nhw,0);
+ z3=(1.5nhw,nhh);
+ penpos1(0.4pt,90);
+ penpos2(0.4pt,90);
+ penpos3(0.2pt,135);
+ penstroke (z1e--z2e{right+0.2up}..z3e);
+endchar;
+beginchar(15,0.5nhw#,0,0);
+ clear;
+ z1=(0,0);
+ z2=(0.5nhw,0);
+ z3=(1.5nhw,-nhh);
+ penpos1(0.4pt,90);
+ penpos2(0.4pt,90);
+ penpos3(0.2pt,45);
+ penstroke (z1e--z2e{right-0.2up}..z3e);
+endchar;
+
+%%%%%%%%%%%%%%%%
+% 4 crescendos %
+%%%%%%%%%%%%%%%%
+for n:=1 upto 4:
+ beginchar(15+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#);
+ pickup pencircle scaled (0.4s);
+ draw (0,(0.5+0.1*n)*nhh)--(4*n*nhw,0)--(0,-(0.5+0.1*n)*nhh);
+ endchar;
+endfor;
+%%%%%%%%%%%%%%%%%%
+% 4 decrescendos %
+%%%%%%%%%%%%%%%%%%
+for n:=1 upto 4:
+ beginchar(19+n, 4*n*nhw#, (0.5+0.1*n)*nhh#, (0.5+0.1*n)*nhh#);
+ pickup pencircle scaled (0.4s);
+ draw (4*n*nhw,(0.5+0.1*n)*nhh)--(0,0)--(4*n*nhw,-(0.5+0.1*n)*nhh);
+ endchar;
+endfor;
+%%%%%%%%%%%%%%%
+% accents %
+%%%%%%%%%%%%%%%
+% point au-dessus de la note
+beginchar(24, nhw#, 1.0nhh#, 0.0nhh#);
+ clear;
+ pickup pencircle scaled 0.25nhh;
+ drawdot (0.5nhw, 0.2pt+1.15nhh);
+endchar;
+% point au-dessous de la note
+beginchar(25, nhw#, 0.0nhh#, 1.0nhh#);
+ clear;
+ pickup pencircle scaled 0.25nhh;
+ drawdot (0.5nhw, -0.2pt-1.15nhh);
+endchar;
+% barre au-dessus de la note
+beginchar(26, nhw#, 1.0nhh#, 0.0nhh#);
+ clear;
+ dely:=0.2pt+1.15nhh;
+ pickup penrazor scaled 0.15nhh rotated 90;
+ draw (0.0nhw, dely)--(1.0nhw, dely);
+endchar;
+% trait au-dessous de la note
+beginchar(27, nhw#, 0.0nhh#, 1.0nhh#);
+ clear;
+ dely:=0.2pt+1.15nhh;
+ pickup penrazor scaled 0.15nhh rotated 90;
+ draw (0.0nhw, -dely)--(1.0nhw, -dely);
+endchar;
+% accent (pizz.) au-dessus de la note
+beginchar(28, nhw#, 1.0nhh#, 0.0nhh#);
+ clear;
+ dely:=1.2nhh;
+ rayon:=0.2nhh;
+ z1=(0.5nhw,dely+rayon);
+ z2=(0.5nhw-rayon,dely);
+ z3=(0.5nhw,dely-0.45nhh);
+ z4=(0.5nhw+rayon,dely);
+ fill z1{left}..{down}z2--z3--z4{up}..{left}cycle;
+endchar;
+% accent (pizz.) au-dessous de la note
+beginchar(29, nhw#, 0.0nhh#, 1.0nhh#);
+ clear;
+ rayon:=0.2nhh;
+ dely:=1.2nhh;
+ z1=(0.5nhw,dely+rayon);
+ z2=(0.5nhw-rayon,dely);
+ z3=(0.5nhw,dely-0.45nhh);
+ z4=(0.5nhw+rayon,dely);
+ fill (z1{left}..{down}z2--z3--z4{up}..{left}cycle)
+ rotatedaround ((0.5nhw,0),180);
+endchar;
+% accent (sforz.) au-dessus de la note
+beginchar(30, nhw#, 1.5nhh#, 0.0nhh#);
+ clear;
+ z1=(1.2nhw,1.3nhh);
+ z2=(-0.2nhw,1.3nhh);
+ pickup pencircle scaled 0.5s;
+ draw z1--(x2,y2+0.3nhh);
+ draw z1--(x2,y2-0.3nhh);
+endchar;
+% accent (sforz.) au-dessous de la note
+beginchar(31, nhw#, 0.0nhh#, 1.0nhh#);
+ clear;
+ z1=(1.2nhw,-1.3nhh);
+ z2=(-0.2nhw,-1.3nhh);
+ pickup pencircle scaled 0.5s;
+ draw z1--(x2,y2+0.3nhh);
+ draw z1--(x2,y2-0.3nhh);
+endchar;
+%%%%%%%%%%%%%%%
+% breve %
+%%%%%%%%%%%%%%%
+beginchar(32, nhw#, 0.7nhh#, 0.7nhh#);
+ clear;
+ pickup pencircle scaled (4thinwidth);
+ draw (0,h)--(0,-d);
+ draw (w,h)--(w,-d);
+ fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle;
+ fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% volle Note -- quarter note -- noire %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(33, nhw#, .5nhh#, .5nhh#);
+ w:=w+2thinwidth;
+ drawnoteb(w, h, 0, 90, 20, w/2, nhh/2);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% halbe Note -- half note -- blanche %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(34, nhw#, .5nhh#, .5nhh#);
+ w:=w+2thinwidth;
+ drawnoteb(w, h, 0, 90, 20, 3*thinwidth, nhh/4);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% ganze Note -- whole note -- ronde %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(35,1.5nhh#, .5nhh#, .5nhh#);
+ drawnotew(w, h, 0, 30, nhh/3, 3.5*thinwidth);
+endchar;
+%%%%%%%%%%%%%%%
+% semi-breve %
+%%%%%%%%%%%%%%%
+beginchar(36, 2nhw#, 0.7nhh#, 0.7nhh#);
+ clear;
+ pickup pencircle scaled (4thinwidth);
+ draw (0,h)--(0,-d);
+ draw (w,h)--(w,-d);
+ fill (0,0.75h)--(w,0.75h)--(w,0.25h)--(0,0.25h)--cycle;
+ fill (0,-0.75d)--(w,-0.75d)--(w,-0.25d)--(0,-0.25d)--cycle;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% volle kleine Note -- small quarter note %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(37, apog_fact*nhw#, .50*apog_nhh#, .50*apog_nhh#);
+ w:=apog_fact*nhw;
+ w:=w+2thinwidth;
+ drawnoteb(w, h, 0, 90, 20, w/2, apog_nhh/2);
+endchar;
+%%%%%%%%%%%%%%%
+%% halbe Note %
+%%%%%%%%%%%%%%%
+beginchar(38, apog_fact*nhw#, apog_fact*0.5nhh#, apog_fact*0.5nhh#);
+ w:=w+2thinwidth;
+ drawnoteb(w, h, 0, 90, 20, 3*thinwidth, apog_nhh/4);
+endchar;
+%%%%%%%%%%%%%%%
+%% ganze Note %
+%%%%%%%%%%%%%%%
+beginchar(39, 1.5*apog_nhh#, apog_fact*0.5nhh#, apog_fact*0.5nhh#);
+ drawnotew(w, h, 0, 30, apog_nhh/3, 3.5*thinwidth*apog_fact);
+endchar;
+%
+% general parameters for flags
+%
+ flagw:=0.8*nhw;
+ flagthick:=nhh;
+ flagthin:=5thinwidth;
+%
+ def cflag (expr sense) =
+ pickup pencircle scaled (0.1pt);
+ flagshape(1, flagw, h, flagthick, flagthin, 0, 0, sense);
+ enddef;
+ def ccflag (expr sense) =
+ pickup pencircle scaled (0.1pt);
+ flagshape(1, flagw, 2.50flagthick, 2/3flagthick, flagthin,
+ 0, 0, sense);
+ flagshape(5, flagw, 2.25flagthick, 2/3flagthick, flagthin,
+ 0, flagthick, sense);
+ enddef;
+ def cccflag (expr sense) =
+ ccflag(sense);
+ flagshape(9, flagw, 2.25flagthick, 2/3flagthick, flagthin,
+ 0, 1.75flagthick, sense);
+ enddef;
+ def ccccflag (expr sense) =
+ cccflag(sense);
+ flagshape(13, flagw, 2.25flagthick, 2/3flagthick, flagthin,
+ 0, 2.50flagthick, sense);
+ enddef;
+ def cccccflag (expr sense) =
+ ccccflag(sense);
+ flagshape(17, flagw, 2.25flagthick, 2/3flagthick, flagthin,
+ 0, 3.25flagthick, sense);
+ enddef;
+%%%%%%%%%%%%%%%%%%%%%%
+% "8flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%
+flagw:=0.8*nhw;
+beginchar(40, 0, 3nhh#, 0);
+ clear;
+ cflag(1);
+ w:=0;
+endchar;
+% idem mais avec barre (appogiature)
+beginchar(12, 0, 3nhh#, 0);
+ clear;
+ cflag(1);
+ pickup pencircle scaled 4thinwidth;
+ clear;
+ w:=nhw;
+ x1=-0.25w; y1=0.6nhh; x2=1.1w; y2=y1+0.6*(x2-x1);
+ draw z1--z2;
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(41, 0, 3.25nhh#, 0);
+ clear;
+ ccflag(1);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(42, 0, 4.00nhh#, 0);
+ clear;
+ cccflag(1);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(43, 0, 4.75nhh#, 0);
+ clear;
+ ccccflag(1);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(44, 0, 5.50nhh#, 0);
+ clear;
+ cccccflag(1);
+ w:=0;
+endchar;
+flagw:=1.0*nhw; % flags up should be wider
+%%%%%%%%%%%%%%%%%%%%%%
+%% "8flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%
+beginchar(45, 0, 3nhh#, 0);
+ clear;
+ cflag(-1);
+ w:=0;
+endchar;
+% idem mais avec barre (appogiature)
+beginchar(13, 0, 3nhh#, 0);
+ clear;
+ cflag(-1);
+ pickup pencircle scaled 4thinwidth;
+ clear;
+ w:=nhw;
+ x1=-0.25w; y1=1.6nhh; x2=1.2w; y2=y1+0.6*(x2-x1);
+ draw z1--z2;
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(46, 0, 3.25nhh#, 0);
+ clear;
+ ccflag(-1);
+ w:=0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(47, 0, 4.00nhh#, 0);
+ clear;
+ cccflag(-1);
+ w := 0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(48, 0, 4.75nhh#, 0);
+ clear;
+ ccccflag(-1);
+ w := 0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(49, 0, 5.50nhh#, 0);
+ clear;
+ cccccflag(-1);
+ w := 0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% VERSETZUNGSZEICHEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%
+% "flat" %
+%%%%%%%%%%%%
+def flat (expr reduction,shiftx,flatsense) =
+ clear; flatraise:=0; %
+ penpos4(8/24reduction*nhh,0);%/5,20 % 1
+ penpos3(reduction*nhh/8,-90);%/5,20 %
+ penpos6(reduction*nhh/7, 90);%/5,20 %
+ penpos2(reduction*nhh/8, 90);%/5,20 % 6 \
+ y1 = 1.5*reduction*nhh+flatraise; % / 4
+ x1=x2=x5 = reduction*s; x4 = reduction*(nhw-s); % 2 /
+ y4 = 0.1reduction*s+flatraise; % /
+ y3l = flatraise-0.5*reduction*nhh; %35
+ y2l = 0.5y4; y5=y3;
+ x3=x5-1.5thinwidth;
+ y6r=0.5*reduction*nhh+flatraise; x6=(x2+x4)/2;
+ currentpen:= pencircle scaled 3thinwidth;
+ if flatsense>0:
+ penstroke
+ (z2e..{right}z6e{right}..{down}z4e{down}..{left+down}z3e)
+ shifted (shiftx,flatraise);
+ cullit;
+ draw (z1--z5) shifted (shiftx,flatraise);
+ penlabels (1,2,3,4,5);
+ else:
+ penstroke (counterclockwise (
+ (z2e..{right}z6e{right}..{down}z4e{down}..{3left+2down}z3e)
+ reflectedabout(z1,z5)))
+ shifted (shiftx,flatraise);
+ cullit;
+ draw (z1--z5) shifted (shiftx,flatraise);
+ fi; cullit;
+enddef;
+%
+beginchar(50, nhw#, 2nhh#, 2nhh#);
+ flat (1.0, 0, 1);
+endchar;
+%
+%%%%%%%%%%
+%% "bb" %
+%%%%%%%%%%
+beginchar(51,1.7nhw#, 2nhh#, 2nhh#);
+ flat (1.0, 0, 1); cullit; clear;
+ flat (1.0, 0.7nhw, 1);
+endchar;
+%%%%%%%%%%%%%
+% "sharp" %
+%%%%%%%%%%%%%
+def sharp ( expr reduction ) =
+ clear;
+ penpos3(3/8reduction*nhh,90);
+ penpos4(3/8reduction*nhh,90);
+ penpos5(3/8reduction*nhh,90);
+ penpos6(3/8reduction*nhh,90);
+ y1 + y2 = -0.5reduction*s; y1 - y2 = 2h - reduction*s;
+ x1 = x2 = reduction*s; y3 = 1/4reduction*nhh;
+ y4l = y3r; x3= 0; x4 = 0.8*reduction*nhw;
+ y5 = -y4; y6 = -y3; x5 = x3; x6 = x4;
+ x7 = w-x1 ; x8 = w-x2; y7=-y1; y8=-y2;
+ currentpen:= pencircle scaled 3thinwidth;
+ draw z1--z2;
+ draw z7--z8;
+ penstroke z3e--z4e;
+ penstroke (z5e--z6e) ;
+ penlabels(1,2,3,4,5,6,7,8);
+enddef;
+%
+beginchar(52, 0.8nhw#, 1.5nhh#, 1.5nhh#);
+ sharp(1.0);
+endchar;
+%
+%%%%%%%%%%
+%% "xx" %
+%%%%%%%%%%%
+beginchar(53, nhw#, .5nhw#, .5nhw#);
+ clear;
+ z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w);
+ z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w);
+ currentpen:= pencircle scaled .2nhh;
+ draw z1--z4; draw z3--z2;
+ currentpen:= pensquare scaled .30w;
+ drawdot z1; drawdot z2; drawdot z3; drawdot z4;
+endchar;
+%%%%%%%%%%%%%%%
+% "natural" %
+%%%%%%%%%%%%%%%
+def natural =
+ clear;
+ reduction:=w/(0.8*nhw);
+ penpos3(3/8reduction*nhh,90);
+ penpos4(3/8reduction*nhh,90);
+ penpos7(3/8reduction*nhh,90);
+ penpos8(3/8reduction*nhh,90);
+ x1 = x2 = x3 = x7 = 0.75*reduction*s-1.5thinwidth;
+ x5 = x6 = x4 = x8 = w-x1;
+ y1 = h; y3 = 0.30reduction*nhh ;
+ y4l = y3r-0.5*reduction*s ;
+ y6 = -y1; y5 = -y2;
+ y7l = y2;
+ y7 = -y4; y8 = -y3;
+ currentpen:= pencircle scaled 3thinwidth;
+ draw (z1--(x2,y2+1.5thinwidth)) shifted (1.5thinwidth,0);
+ draw ((x5,y5-1.5thinwidth)--z6) shifted (-1.5thinwidth,0);
+ penstroke z3e--z4e;
+ penstroke z7e--z8e;
+ penlabels(1,2,3,4,5,6,7,8);
+enddef;
+%
+beginchar(54, 0.8nhw#, 1.5nhh#, 1.5nhh#);
+ natural;
+endchar;
+%
+%%%%%%%%%%%%%%%%
+%% "1/4 flat" %
+%%%%%%%%%%%%%%%%
+beginchar(55, nhw#, 2nhh#, 2nhh#);
+ flat (1.0, 0.65nhw,-1);
+endchar;
+%%%%%%%%%%%%%%%%
+%% "3/4 flat" %
+%%%%%%%%%%%%%%%%
+beginchar(56, 1.7nhw#, 2nhh#, 2nhh#);
+ flat (1.0, 0.65nhw, -1); clear; cullit;
+ flat (1.0, 0.65nhw, 1);
+endchar;
+%
+% Gregorian notes
+%
+beginchar(57, nhw#, .5nhh#, .5nhh#);
+ fill (0.5w-0.8h,0)--(0.5w,h)--(0.5w+0.8h,0)--(0.5w,-h)--cycle;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% PAUSEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%
+%% "dp" %
+%%%%%%%%%
+beginchar(58,1/2nhw#, 3nhh#, 0);
+ clear;
+ penpos1(nhh,90);
+ penpos2(nhh,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+labels(1,2);
+endchar;
+%%%%%%%%%%
+%% "ddp" %
+%%%%%%%%%%
+beginchar(59,1/2nhw#, 3nhh#, 0);
+ clear;
+ penpos1(2nhh,90);
+ penpos2(2nhh,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+labels(1,2);
+endchar;
+%%%%%%%%%%%%%%%%%%
+%% "ganze Pause" %
+%%%%%%%%%%%%%%%%%%
+beginchar(60, nhw#, 3nhh#, 0);
+ clear;
+ penpos1(nhh/2,90);
+ penpos2(nhh/2,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+endchar;
+%
+%%%%%%%%%%%%%%%%%%
+%% "halbe Pause" %
+%%%%%%%%%%%%%%%%%%
+beginchar(61, nhw#, 2.5nhh#, 0);
+ clear;
+ penpos1(nhh/2,90);
+ penpos2(nhh/2,90);
+ y1r = y2r = h;
+ x1r = 0; x2r = w;
+ currentpen:= pencircle;
+ penstroke z1e--z2e;
+endchar;
+%%%%%%%%%%%%%%%%%%%%
+%% "viertel Pause" %
+%%%%%%%%%%%%%%%%%%%%
+beginchar(62, nhw#, 4nhh#, 0); % .1
+ clear; % .2
+ thin := 1/8 nhh; thick := 1/2 nhh; % 8..3
+ alpha_a = -50; alpha_b = -50; % .4
+ penpos1 ( thin, (alpha_a+90)); % .5
+ penpos5 ( thin, alpha_b); % .6
+ penpos2 ( thick+thin, alpha_a ); %
+ penpos4 ( thick+thin, alpha_b ); % .7
+ penpos3 ( thick, 1/2(alpha_a+alpha_b));
+ x3r:=9/10[x3,x3r];
+ penpos8 ( thick, 1/2(alpha_a+alpha_b));
+ x8l:=9/10[x8,x8l];
+ penpos6 ( 2/3thick, alpha_b);
+ penpos7 ( thin, 45);
+ y1l = h - 2s;
+ x1l = 2s;
+ z2r = z1 +(nhh* right) rotated alpha_a;
+ z5 = z4l+(nhh* right) rotated alpha_b;
+ z3 = 1/3[z2,z4];
+ z8 = 2/3[z2,z4];
+ z4 = (w,h) scaled .55;
+ y6r = 1.45nhh;
+ x6l = x4l;
+ x7 = 0.9w; y7= nhh-thin;
+ z10= z5r shifted (0.36thin,0.36thin);
+ currentpen:= penrazor scaled thin rotated 45;
+ draw z1--z2r; draw z10--z4l;
+ cullit; penstroke z2e..z3e..z8e..z4e; pickup pencircle scaled thin;
+% cullit; penstroke z5e{nw}..z6e..z7e; cullit;
+ cullit; penstroke z5e..z6e..{up+4right}z7e; cullit;
+ penlabels(1,2,3,4,5,6,7,8,9,10);
+endchar;
+%%%%%%%%%%%%%%%%%%%
+%% "achtel Pause" %
+%%%%%%%%%%%%%%%%%%%
+beginchar(63, 2nhh#, 3nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
+ x3=1/2nhh; y3=10/4nhh;
+ z4-z3=(0.20nhh,0.35nhh);
+ currentpen := pencircle scaled 4thinwidth;
+ draw z1..z2;
+ currentpen := pencircle scaled(2*thinwidth);
+ draw z2..z3{up+left};
+ z5=z3;
+ filldraw z5..z4..z5..cycle;
+ penlabels (1,2,3,4,5);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "sechzehntel Pause" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(64,2nhh#, 3nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
+ x3=1/2nhh; y3=10/4nhh;
+ z4-z3=(0.20nhh,0.35nhh);
+%
+ x5=x2; y5=y2;
+ y6=0; x6=x5-1/3y5;
+ currentpen := pencircle scaled 4thinwidth;
+ draw z5..z6;
+ currentpen := pencircle scaled(2*thinwidth);
+ draw z2..z3{up+left};
+ draw z2..z3{up+left} shifted(-1/3nhh,-nhh);
+ filldraw z3..z4..z3..cycle;
+ filldraw z3..z4..z3..cycle shifted(-1/3nhh,-nhh);
+ penlabels(1,2,3,4,5,6);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "zweiunddreissigstel Pause" %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(65,2nhh#, 4nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
+ x3=1/2nhh; y3=10/4nhh;
+ z4-z3=(0.20nhh,0.35nhh);
+%
+ x5=x2+1/6nhh; y5=y2+nhh;
+ y6=0; x6=x5-1/3y5;
+ currentpen := pencircle scaled 4thinwidth;
+ draw z5..z6;
+ currentpen := pencircle scaled(2*thinwidth);
+ draw z2..z3{up+left} shifted( 1/6nhh,nhh);
+ draw z2..z3{up+left} shifted(-1/6nhh, 0);
+ draw z2..z3{up+left} shifted(-3/6nhh,-nhh);
+ filldraw z3..z4..z3..cycle shifted( 1/6nhh, nhh);
+ filldraw z3..z4..z3..cycle shifted(-1/6nhh, 0);
+ filldraw z3..z4..z3..cycle shifted(-3/6nhh,-nhh);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "vierundsechzigstel Pause" %%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(66,2nhh#, 5nhh#, 0)
+ clear;
+ %punkte f"ur achtelpause, 16. und 32. Pause
+ x1=y1= nhh; x2=7/4nhh; y2=11/4nhh;
+ x3=1/2nhh; y3=10/4nhh;
+ z4-z3=(0.20nhh,0.35nhh);
+%
+ x5=x2+1/3nhh; y5=y2+2nhh;
+ y6=0; x6=x5-1/3y5;
+ currentpen := pencircle scaled 4thinwidth;
+ draw z5..z6;
+ currentpen := pencircle scaled(2*thinwidth);
+ draw z2..z3{up+left} shifted( 1/3nhh, 2nhh);
+ draw z2..z3{up+left} shifted( 0,nhh);
+ draw z2..z3{up+left} shifted(-1/3nhh, 0);
+ draw z2..z3{up+left} shifted(-2/3nhh,-nhh);
+ filldraw z3..z4..z3..cycle shifted( 1/3nhh, 2nhh);
+ filldraw z3..z4..z3..cycle shifted( 0, nhh);
+ filldraw z3..z4..z3..cycle shifted(-1/3nhh,0);
+ filldraw z3..z4..z3..cycle shifted(-2/3nhh,-nhh);
+endchar;
+%%%%%%%%%%%%%%%%%%%
+% ornements %
+%%%%%%%%%%%%%%%%%%%
+beginchar (67, 2nhw#, nhh#, 0);
+ clear;
+ x1=0.2w; y1r=h; x6=w-x1; y6=h-y1;
+ x2r=0; y2=0.5h; x5=w-x2; y5=h-y2;
+ x3=0.22w; y3r=0; x4=w-x3; y4=h-y3;
+ pickup pencircle scaled 4thinwidth;
+ penpos1 (5thinwidth,90);
+ penpos2 (5thinwidth, 180);
+ penpos3 (0.2nhw, -40);
+ penpos4 (0.2nhw, -40);
+ penpos5 (5thinwidth, 180);
+ penpos6 (5thinwidth, 90);
+ penstroke (z1e..{down}z2e{down}..{right}z3e{right}..{right}z4e{right}..{down}z5e{down}..z6e) ;
+ pickup pencircle scaled 2s ;
+ drawdot (x1,y1r-s) ;
+ drawdot (x6,y6l+s) ;
+ penlabels(1,2,3,4,5,6);
+endchar;
+beginchar (68, 2nhw#, nhh#, 0);
+ clear;
+ x1=0.2w; y1r=0; x6=w-x1; y6=h-y1;
+ x2r=0; y2=0.5h; x5=w-x2; y5=h-y2;
+ x3=0.22w; y3r=h; x4=w-x3; y4=h-y3;
+ pickup pencircle scaled 4thinwidth;
+ penpos1 (5thinwidth,-90);
+ penpos2 (5thinwidth, -180);
+ penpos3 (0.2nhw, 40);
+ penpos4 (0.2nhw, 40);
+ penpos5 (5thinwidth, -180);
+ penpos6 (5thinwidth, -90);
+ penstroke (z1e..{up}z2e{up}..{right}z3e{right}..{right}z4e{right}..{up}z5e{up}..z6e);
+ pickup pencircle scaled 2s;
+ drawdot (x1,y1r+s);
+ drawdot (x6,y6l-s);
+ penlabels(1,2,3,4,5,6);
+endchar;
+%%%%%%%%%%%%%%%
+% appogiature %
+%%%%%%%%%%%%%%%
+beginchar(69, apog_fact*nhw#, 3.5*apog_nhh#, .50*apog_nhh#);
+ clear;
+ w:=apog_fact*nhw;
+ flagshape(1,0.8w, 3*apog_nhh, apog_nhh, 4thinwidth, w, 0.5apog_nhh, 1);
+ clear;
+ w:=apog_fact*nhw;
+ drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2);
+ clear;
+ pickup pencircle scaled 4thinwidth;
+ w:=apog_fact*nhw;
+ draw (w-2thinwidth,0)--(w-2thinwidth,h);
+ x1=-0.1w; y1=0.6apog_nhh; x2=2w; y2=y1+0.6*(x2-x1);
+ draw z1--z2;
+%
+ w:=apog_fact*nhw;
+endchar;
+beginchar(70, apog_fact*nhw#, 0.5apog_nhh#, 3.5*apog_nhh#);
+ clear;
+ w:=apog_fact*nhw;
+ flagshape(1,w, 3apog_nhh, apog_nhh, 4thinwidth, 0.2pt, apog_nhh, -1);
+ clear;
+ w:=apog_fact*nhw;
+ drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2);
+ pickup pencircle scaled 4thinwidth;
+ draw (2thinwidth,0)--(2thinwidth,-d);
+ clear;
+ w:=apog_fact*nhw;
+ x1=-0.3w; y1=-1.6apog_nhh; x2=1.3w; y2=y1+0.6*(x2-x1);
+ draw z1--z2;
+%
+ w:=apog_fact*nhw;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% NOTENSCHLUESSEL %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% VIOLINSCHLUESSEL %
+%%%%%%%%%%%%%%%%%%%%
+def violin(expr width, beginleft, begindown, thick, penthick) =
+x10=x3=x2=x8;
+y6l=56/15width+y12r;
+x11-x4=width;
+x5=x4+13/15width;
+x2=x4+31/45 width;
+x1=x4+7/15width;
+x4=beginleft;
+x2-x12=4/15 width;
+x9+2/5width=x6;
+x6-4/15width=x7;
+x9=x4+1/5width;
+y12r=begindown;
+y2r=y4=2y11;
+y8=y12r+4/15width;
+y2r=y12r+28/15width;
+y1=y12r+width;
+y3r=y12r+13/15width;
+y7=y12r+116/45width;
+y5=y12r+16/5width;
+y5-y10=y11;
+y9=y12r+2/15width;
+y13=y8; x13=x8-0.6s;
+penpos1(0,180);
+penpos2(thick,90);
+penpos3(penthick+1/16thick,-90);
+penpos4(5/4thick,120);
+penpos5(5/6thick,-120);
+penpos6(5/3thick,-85);
+penpos7(1/2thick,0);
+penpos8(penthick,0);
+penpos13(penthick,0);
+penpos9(5/4thick,170);
+penpos10(5/6thick,180);
+penpos11(thick,0);
+penpos12(penthick,-90);
+pickup pencircle scaled 1s;
+%
+% penstroke z1e{2left}..z2e..z11e..z3e
+% ..z4e{right+up}..z10e..{up}z5e..z6e;
+% penstroke z6e{down+left}..{down}z7e--z8e;
+% fill z8l{2down+right}..z12l..z9l
+% --z9r..z12r..{up}z8r..cycle;
+% pickup pencircle scaled 1s;
+% fill z9l{3/2right+up}..{right+2down}z9r..cycle;
+penstroke z1e{2left}..z2e..z11e..z3e
+..z4e{right+up}..z10e..{up}z5e..z6e;
+penstroke z6e{down+left}..{down}z7e--z8e
+{2down+right}..z12e..{2left+up}z9e;
+pickup pencircle scaled 2.5s;
+drawdot (x9+0.4s,y9+0.8s);
+%
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+enddef;
+%
+beginchar(71,3.25nhw#, 6nhh#, 2nhh#);
+clear;
+violin(15/8nhh,1.75nhh,-1.5nhh,0.4nhh,0.111nhh);
+endchar;
+
+%%%%%%%%violin-schluessel verkleinert%%%%%%%%
+beginchar(72,2.60nhw#, 6nhh#, 2nhh#);
+clear;
+violin(12/8nhh,1.40nhh,-1.2nhh,0.32nhh,1/10nhh);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%
+% BASS--SCHLUESSEL %%
+%%%%%%%%%%%%%%%%%%%%%
+% clef de fa par D. Taupin %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bass (expr reduction) =
+ clear;
+ x2=0.80*reduction*nhw; y2=3nhh;
+ x1=x2r+1.25*reduction*s; y1=y2;
+ x3=x2+0.71*reduction*nhw; y3=y2+reduction*nhh;
+ x4=x3+0.71*reduction*nhw; y4=y2-0.2*reduction*nhh;
+ x6=x2-6*reduction*thinwidth; y6=y2-2.2*reduction*nhh;
+ x7=x4+0.50*reduction*nhw; x8=x7;
+ y7=y2+0.38*reduction*nhh; y8=y2-0.38*reduction*nhh;
+%
+ currentpen:=pencircle scaled (4*reduction*thinwidth);
+ penpos2(6*reduction*thinwidth,180);
+ penpos3(6*reduction*thinwidth, 90);
+ penpos4(0.5*reduction*nhh,0);
+ penpos6(0.1*reduction*nhh,-10);
+ penstroke(z2e{up}..{right}z3e{right}..{down}z4e{down}..{left+0.1down}z6e);
+ currentpen := pencircle scaled (0.4reduction*nhh);
+ pickup pencircle scaled (2*(x2r-x1));
+ drawdot z1;
+ pickup pencircle scaled 1.7s;
+ drawdot z7; drawdot z8;
+ penlabels(1,2,3,4,6);
+enddef;
+%
+beginchar(73, 3nhw#, 4nhh#, 0);
+ bass(1.0);
+endchar;
+
+%%%%%%verkleinerter bass-schluessel%%%%%%%%%
+beginchar(74, 2.4*nhw#, 4nhh#, 0);
+ bass(0.8);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%
+% ALT--SCHLUESSEL %
+%%%%%%%%%%%%%%%%%%%
+def alt(expr height, beginleft, begindown, thick) =
+x1=x7;
+x2=x8;
+y1-y7=height;
+y2-y8=height;
+y7=begindown;
+x7=beginleft;
+x2=x1+1/4height;
+x6l=x8l;
+y5=y7+1/2height;
+y9=y7+1/9height;
+x5=x3;
+y4=y5+0.120height;
+x4-x7=height+3thinwidth;
+x4-x5=1/2height+3thinwidth;
+y3-y5=2/7height;
+y8=y7;
+y6=y7;
+x9=0.62x5+0.38x4;
+x10=x9; y10=y7+height;
+x11=0.5x3+0.5x6; y11=y3; penpos11(1/2thick,0);
+penpos8(1/4thick,180);
+penpos2(1/4thick,180);
+penpos1(thick,180);
+penpos7(thick,180);
+penpos6(thick,0);
+penpos5(1/10thick,0);
+penpos9(1/3thick,90);
+penpos3(1/2thick,0);
+penpos4(thick,180);
+penpos10(1/3thick,-90);
+
+pickup pencircle scaled 1s;
+fill z7l--z1l--z1r--z7r--cycle;
+fill z8l--z2l--z2r--z8r--cycle;
+penstroke z5e..{left+2down}z6e;
+penstroke z5e{right+4down}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e;
+
+
+pickup pencircle scaled 1s;
+penstroke
+ (counterclockwise(z7e--z1e)reflectedabout(z7,z8));
+penstroke
+(counterclockwise(z8e--z2e)reflectedabout(z7,z8));
+penstroke
+(counterclockwise(z5e..{left+2down}z6e)reflectedabout(z7,z8));
+penstroke
+(counterclockwise (z5e{right+4down}..{right}z9e{right}..{up}z4e{up}..{left}z10e{left}..{left+4down}z11e)
+reflectedabout(z7,z8));
+
+pickup pencircle scaled 2.5s;
+drawdot (x3+0.1nhh, y3);
+drawdot (x3+0.1nhh, 2y7-y3);
+penlabels(1,2,3,4,5,6,7,8);
+enddef;
+
+%%%%%%%%%%%Altschl"usseL%%%%%%%%%%%
+beginchar(75,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,2nhh,0.4nhh);
+endchar;
+
+%%%%%%%%%Verkleinerter Altschluessel%%%%%%%%%
+beginchar(76,2.8nhw#, 4nhh#, 0nhh#);
+clear;
+alt(1.6nhh,1.00nhh,2nhh,0.32nhh);
+endchar;
+
+%%%%%%%%%Baritonschluessel%%%%%%%%%
+beginchar(77,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,4nhh,2/5nhh);
+endchar;
+
+%%%%%%%%%Mezzosopranschluessel%%%%%%%%%
+beginchar(78,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,1nhh,2/5nhh);
+endchar;
+
+%%%%%%%%%Sopranschluessel%%%%%%%%%
+beginchar(79,3.5nhw#, 4nhh#, 0nhh#);
+clear;
+alt(2nhh,1.25nhh,0nhh,2/5nhh);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% SONDERZEICHEN %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+
+def alla_breve (expr trans) =
+ thin := 5thinwidth; thick := 1/2 nhh;
+ penpos1(thin, 0);
+ penpos2(thin, -90);
+ penpos3(thick,180);
+ penpos4(thin, 90);
+ penpos5(thin, 45);
+ penpos6(3/4thick,45);
+ 2x2r = 2x4r = x1 + 2s = w;
+ x3r = 0; 2y1 = 3y2 = y4r = h;
+ y3r = 2/3h;
+ x5 = w -2s;
+ y5 = h -2s;
+ z6r = z5r;
+ penstroke (z1e..z2e..z3e..z4e..z5e) transformed trans;
+ currentpen := pencircle scaled (2/3thick);
+ drawdot z6;
+enddef;
+
+
+%%%%%%%%%%%%%%%
+% "fermate1" %%
+%%%%%%%%%%%%%%%
+beginchar(80, 2nhw#, 1.25nhh#, 0);
+ clear;
+ penpos2(nhh/3,90);
+ penpos1(nhh/8,180);
+ penpos3(nhh/8,0);
+ penpos4(nhh/3,90);
+ y2r =1.2h;
+ z1 = origin; 2x2l = 2x4l = x3 = w; y4l = y3 = 0;
+ penstroke z1e..z2e..z3e;
+ currentpen:= pencircle scaled (nhh/3);
+ drawdot z4;
+ penlabels(1,2,3);
+endchar;
+%%%%%%%%%%%%%%%
+% "fermate2" %%
+%%%%%%%%%%%%%%%
+beginchar(81, 2nhw#, 0, 1.25nhh#);
+ clear;
+ penpos2(nhh/3,-90);
+ penpos1(nhh/8,180);
+ penpos3(nhh/8,0);
+ penpos4(nhh/3,90);
+ y2r = -1.2d;
+ z1 = origin; 2x2l = 2x4 = x3 = w;
+ y4r = y3 = 0;
+ penstroke (z1e..z2e..z3e);
+ currentpen := pencircle scaled (nhh/3);
+ drawdot z4;
+ penlabels(1,2,3);
+endchar;
+%%%%%%%%%%%%%%%%
+% "allabreve" %%
+%%%%%%%%%%%%%%%%
+beginchar(82, 2nhh#, 3nhh#, 0);
+ clear;
+ alla_breve(identity);
+ z7 = z4 + 2/16 h *up;
+ z8 = z2 + 2/16 h *down;
+ currentpen := pencircle scaled (thin);
+ draw z7--z8;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+%%%%%%%%
+% "C" %%
+%%%%%%%%
+beginchar(83, 2nhh#, 3nhh#, 0);
+ clear;
+ alla_breve(identity);
+endchar;
+%%%%%%%%%%%%%%%
+% "reverseC" %%
+%%%%%%%%%%%%%%%
+beginchar(84, 2nhh#, 3nhh#, 0);
+ clear;
+ transform T;
+ xxpart T = -yypart T; xypart T = yxpart T; % T is a reflection
+ (w/2,0) transformed T = (w/2,0); (w/2,1) transformed T = (w/2,1);
+ thin := 5thinwidth; thick := 1/2 nhh;
+ penpos1(thin, 0);
+ penpos2(thin, -90);
+ penpos3(thick,180);
+ penpos4(thin, 90);
+ penpos5(thin, 45);
+ penpos6(3/4thick,45);
+ 2x2r = 2x4r = x1 + 2s = w;
+ x3r = 0; 2y1 = 3y2 = y4r = h;
+ y3r = 2/3h;
+ x5 = w -2s;
+ y5 = h -2s;
+ z6r = z5r;
+ penstroke (counterclockwise
+ (z1e..z2e..z3e..z4e..z5e) transformed T);
+ currentpen := pencircle scaled (2/3thick);
+ drawdot (z6 transformed T);
+endchar;
+%%%%%%%%%%%%%%%%%%
+% repeat symbols %
+%%%%%%%%%%%%%%%%%%
+beginchar(85, 2nhw#, 3nhh#, 0);
+ clear;
+ x1=0.5w; y1=0.5h;
+ x2=0.5nhh; y2=y1;
+ x3=x1; y3=y1+nhh;
+ x4=2x1-x2; y4=2y1-y2;
+ x5=2x1-x3; y5=2y1-y3;
+ pickup pensquare xscaled thinwidth yscaled 4thinwidth;
+ draw (0,y1)--(w,y1);
+ pickup pensquare xscaled 4thinwidth yscaled thinwidth;
+ draw (x1,0)--(x1,h);
+ pickup pencircle xscaled 12thinwidth yscaled 4thinwidth;
+ draw z2..z3..z4..z5..cycle;
+endchar;
+beginchar(86, 3nhw#, 3nhw#, 0);
+ clear;
+ x1=0.5w; y1=0.5h;
+ x2=x1-0.1w; y2=y1+0.4h;
+ x3=2x1-x2; y3=2y1-y2;
+ x4=x1-0.3h; y4=y1-0.1h;
+ x5=2x1-x4; y5=2y1-y4;
+ x6=x1+0.25w; y6=y1+0.4h;
+ x7=2x1-x6; y7=2y1-y6;
+ pickup pencircle scaled 1.6s;
+ drawdot z2; drawdot z3;
+ pickup pencircle scaled s;
+ drawdot z4; drawdot z5;
+ z8l=z2+(0,0.8s); z9=2z1-z8;
+ penpos1 (1.8s,25);
+ penpos10 (1.8s,25);
+ penpos11 (1.8s,25);
+ penpos8 (0.5s,-90);
+ penpos9 (0.5s,-90);
+ z10=z1+(-s,s); z11=2z1-z10;
+ penstroke (z8e{left}..{right+down}z10e..z11e{right+down}..{left}z9e);
+ pickup penrazor scaled 0.8s;
+ draw z6--z7;
+%
+ penlabels (1,2,3,4,5,6,7,8,9);
+endchar;
+%%%%%%%%%%%%%%%
+% " pince" %
+%%%%%%%%%%%%%%%
+def pince =
+ clear;
+ x1-x3=x3-x5; y1=y3;
+ x2=1/8w; y2=8/10h;
+ x3=0.5w-x2; y3=h-y2;
+ x4=0.5w+x2; y4=y2;
+ x5=0.5w+x3; y5=y3;
+ x6=w-x1; y6=h-y1;
+ pickup pensquare xscaled 0.40nhh yscaled 0.1nhh rotated 52;
+ draw (z1--z2--z3--z4--z5--z6);
+enddef;
+%
+beginchar(87, 1.2nhw#, 0.8nhh#, 0);
+ pince;
+endchar;
+%
+beginchar(88, 1.8nhw#, 0.8nhh#, 0);
+ w:=2w/3;
+ pince;
+ draw (z4--z5--z6) shifted (z4-z2);
+ w:=1.8nhw;
+endchar;
+%%%%%%%%%%%%%%%
+% "mordant" %
+%%%%%%%%%%%%%%%
+beginchar(89, 1.2nhw#, 0.8nhh#, 0);
+ pince;
+ pickup pencircle scaled (4thinwidth);
+ draw (0.5w,-0.4h)--(0.5w,1.4h);
+endchar;
+%%%%%%%%%%%%%%%
+% arpeggio %%
+%%%%%%%%%%%%%%%
+def arpegel =
+ clear;
+ y1=0; x1=0.5w;
+ y2=0.3nhh; x2=8/10w;
+ y3=nhh-y2; x3=w-x2;
+ y4=nhh; x4=0.5w;
+ pickup pencircle xscaled 0.40nhh yscaled 0.1nhh rotated 45;
+ draw (z1..z2..z3..z4);
+enddef;
+%
+beginchar(90, 0.4nhw#, nhh#, 0);
+ arpegel;
+endchar;
+for jj=1 upto 9:
+ beginchar(90+jj, 0.4nhw#, (1+jj)*nhh#, 0);
+ arpegel;
+ for kk=1 upto jj:
+ draw (z1..z2..z3..z4) shifted (0,kk*nhh);
+ endfor;
+endchar;
+endfor;
+%%%%%%%%%%%%%%%
+% "trille" %%
+%%%%%%%%%%%%%%%
+def arp_elem =
+ clear;
+ x1=0; y1=0.5h;
+ x2=1/3nhw; y2=8/10h;
+ x3=nhw-x2; y3=h-y2;
+ x4=nhw; y4=0.5h;
+ pickup pencircle xscaled 0.33nhh yscaled 0.1nhh rotated 45;
+ draw (z1..z2..z3..z4);
+enddef;
+%
+beginchar(100, nhw#, 0.45nhh#, 0);
+ arp_elem;
+endchar;
+%
+for jj=1 upto 9:
+ beginchar(100+jj, (jj+1)*nhw#, 0.45nhh#, 0);
+ arp_elem;
+ for kk=1 upto jj:
+ draw (z1..z2..z3..z4) shifted (kk*nhw,0);
+ endfor;
+ endchar;
+endfor;
+%
+% general parameters for small flags
+%
+ flagw:=0.8*nhw*apog_fact;
+ flagthick:=nhh*apog_fact;
+ flagthin:=5thinwidth*apog_fact;
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "8flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%
+flagw:=0.8*nhw*apog_fact;
+beginchar(110, 0, 3apog_nhh#, 0);
+ clear;
+ cflag(1);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(111, 0, 3.25apog_nhh#, 0);
+ clear;
+ ccflag(1);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(112, 0, 4.00apog_nhh#, 0);
+ clear;
+ cccflag(1);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(113, 0, 4.75apog_nhh#, 0);
+ clear;
+ ccccflag(1);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach unten" %
+%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(114, 0, 5.50apog_nhh#, 0);
+ clear;
+ cccccflag(1);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%
+%% "8flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%
+flagw:=1.0*nhw*apog_fact;
+beginchar(115, 0, 3apog_nhh#, 0);
+ clear;
+ cflag(-1);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "16flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(116, 0, 3.25apog_nhh#, 0);
+ clear;
+ ccflag(-1);
+ w:=0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "32flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(117, 0, 4.00apog_nhh#, 0);
+ clear;
+ cccflag(-1);
+ w := 0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+%% "64flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(118, 0, 4.75apog_nhh#, 0);
+ clear;
+ ccccflag(-1);
+ w := 0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+%% "128flag nach oben" %
+%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(119, 0, 5.50apog_nhh#, 0);
+ clear;
+ cccccflag(-1);
+ w := 0;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%
+% kleine versetzungen %
+%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(120, apog_fact*nhw#, 2apog_fact*nhh#, 2apog_fact*nhh#);
+ flat (apog_fact, 0, 1);
+endchar;
+beginchar(121,1.7*apog_fact*nhw#, 2*apog_fact*nhh#, 2*apog_fact*nhh#);
+ flat (apog_fact, 0, 1);cullit; clear;
+ flat (apog_fact, 0.7*apog_fact*nhw, 1);
+endchar;
+beginchar(122, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#);
+ sharp(apog_fact);
+endchar;
+beginchar(123, apog_fact*nhw#, .5nhw#, .5nhw#);
+ clear;
+ z1 = (0.150w, h-0.150w); z2 = (w-0.150w, h-0.150w);
+ z3 = (0.150w,-h+0.150w); z4 = (w-0.150w,-h+0.150w);
+ pwidth:=0.2*apog_fact*nhh;
+ currentpen:= pencircle scaled pwidth;
+ draw z1--z4; draw z3--z2;
+ currentpen:= pensquare scaled .30w;
+ drawdot z1; drawdot z2; drawdot z3; drawdot z4;
+endchar;
+beginchar(124, 0.8apog_fact*nhw#, 1.5apog_fact*nhh#, 1.5apog_fact*nhh#);
+ natural;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% volle Note mit | --> |O| %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(125,1.5nhh#, .5nhh#, .5nhh#);
+ drawnoteb(w, h, 0, 85, 0, nhh/3, 3*thinwidth);
+ pickup pensquare scaled 0.2w;
+ draw (-0.05w,-0.4nhh)--(-0.05w,0.4nhh);
+ draw (1.05w,-0.4nhh)--(1.05w,0.4nhh);
+endchar;
+%%%%%%%%%%%%%%%%%
+% repeat colons %
+%%%%%%%%%%%%%%%%%
+beginchar(126,0.6nhh#, 4nhh#, 0);
+ pickup pencircle scaled 0.3nhh;
+ drawdot (0.3nhh, 1.5nhh);
+ drawdot (0.3nhh, 2.5nhh);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicn11.mf b/Master/texmf-dist/fonts/source/public/musictex/musicn11.mf
new file mode 100644
index 00000000000..534b5c99e50
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicn11.mf
@@ -0,0 +1,10 @@
+font_identifier := "musicn11";
+input musicd11
+font_x_height nhh#;
+font_quad nhw#;
+font_normal_space 0pt;
+font_normal_stretch 0pt;
+font_normal_shrink 0pt;
+input musicgen
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicn13.mf b/Master/texmf-dist/fonts/source/public/musictex/musicn13.mf
new file mode 100644
index 00000000000..6d4189fc8d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicn13.mf
@@ -0,0 +1,10 @@
+font_identifier := "musicn13";
+input musicd13
+font_x_height nhh#;
+font_quad nhw#;
+font_normal_space 0pt;
+font_normal_stretch 0pt;
+font_normal_shrink 0pt;
+input musicgen
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicn16.mf b/Master/texmf-dist/fonts/source/public/musictex/musicn16.mf
new file mode 100644
index 00000000000..77021eaa980
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicn16.mf
@@ -0,0 +1,9 @@
+font_identifier := "musicn16";
+input musicd16
+font_x_height nhh#;
+font_quad nhw#;
+font_normal_space 0pt;
+font_normal_stretch 0pt;
+font_normal_shrink 0pt;
+input musicgen
+end
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musicn20.mf b/Master/texmf-dist/fonts/source/public/musictex/musicn20.mf
new file mode 100644
index 00000000000..73a69d1dcf6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musicn20.mf
@@ -0,0 +1,9 @@
+font_identifier := "musicn20";
+input musicd20
+font_x_height nhh#;
+font_quad nhw#;
+font_normal_space 0pt;
+font_normal_stretch 0pt;
+font_normal_shrink 0pt;
+input musicgen
+end
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikd11.mf b/Master/texmf-dist/fonts/source/public/musictex/musikd11.mf
new file mode 100644
index 00000000000..cb2c11106a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musikd11.mf
@@ -0,0 +1,48 @@
+%%%
+% this is musicd11.mf
+%%%
+
+% input modes
+% input local
+
+mode_setup;
+
+%blacker:=0; %uncomment to override
+
+font_size 11pt#;
+
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.1pt;
+s := 0.70pt;
+S := 1/16designsize;
+
+beamht#:=0.48nhh#; %beamthickness
+
+% use pixelmacros from plain
+define_pixels(nhh,nhw,beamht);
+define_blacker_pixels(thin,med,thick);
+
+% pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+% displaying:=2; %uncomment to see characters immediatly on screen
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+
+% this macro might be deleted
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle
+ fi
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikd13.mf b/Master/texmf-dist/fonts/source/public/musictex/musikd13.mf
new file mode 100644
index 00000000000..5c814a43c00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musikd13.mf
@@ -0,0 +1,48 @@
+%%%
+% this is musicd13.mf
+%%%
+
+% input modes
+% input local
+
+mode_setup;
+
+%blacker:=0; %uncomment to override
+
+font_size 13pt#;
+
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.1pt;
+s := 0.80pt;
+S := 1/16designsize;
+
+beamht#:=0.48nhh#; %beamthickness
+
+% use pixelmacros from plain
+define_pixels(nhh,nhw,beamht);
+define_blacker_pixels(thin,med,thick);
+
+% pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+% displaying:=2; %uncomment to see characters immediatly on screen
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+
+% this macro might be deleted
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle
+ fi
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikd16.mf b/Master/texmf-dist/fonts/source/public/musictex/musikd16.mf
new file mode 100644
index 00000000000..38f96a256de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musikd16.mf
@@ -0,0 +1,48 @@
+%%%
+% this is musicd16.mf
+%%%
+
+% input modes
+% input local
+
+mode_setup;
+
+%blacker:=0; %uncomment to override
+
+font_size 16pt#;
+
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.1pt;
+s := 1.00pt;
+S := 1/16designsize;
+
+beamht#:=0.48nhh#; %beamthickness
+
+% use pixelmacros from plain
+define_pixels(nhh,nhw,beamht);
+define_blacker_pixels(thin,med,thick);
+
+% pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+% displaying:=2; %uncomment to see characters immediatly on screen
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+
+% this macro might be deleted
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle
+ fi
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikd20.mf b/Master/texmf-dist/fonts/source/public/musictex/musikd20.mf
new file mode 100644
index 00000000000..c8e36c9547c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musikd20.mf
@@ -0,0 +1,48 @@
+%%%
+% this is musicd20.mf
+%%%
+
+% input modes
+% input local
+
+mode_setup;
+
+%blacker:=0; %uncomment to override
+
+font_size 20pt#;
+
+nhh#:=1/4designsize; %noteheadheight
+nhw#:=1.2nhh#; %noteheadwidth
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.125pt;
+s := 1.25pt;
+S := 1/16designsize;
+
+beamht#:=0.48nhh#; %beamthickness
+
+% use pixelmacros from plain
+define_pixels(nhh,nhw,beamht);
+define_blacker_pixels(thin,med,thick);
+
+% pair constants
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+% displaying:=2; %uncomment to see characters immediatly on screen
+
+def clear =
+ numeric x[],y[],x[]l,y[]l,x[]r,y[]r,dx[],dy[];
+ pair sh[];
+enddef;
+
+% this macro might be deleted
+def penstrike text t =
+ forsuffixes e = l,r: path_.e:=t; endfor
+ if cycle path_.l: cyclestroke_
+ else: filldraw path_.l -- reverse path_.r -- cycle
+ fi
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikgen.mf b/Master/texmf-dist/fonts/source/public/musictex/musikgen.mf
new file mode 100644
index 00000000000..0b7de414897
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musikgen.mf
@@ -0,0 +1,1252 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is musikgen.mf
+%
+% Version 5.02 [March 94] Daniel Taupin changed '047 to a + for percussion
+%
+% Version 5.01 [January 94] Daniel Taupin
+%
+% Version 4.89 [September 93] Andreas Egler
+% - blacker influence now
+% - redesigned chars 71, 72, 53, 123
+%
+% Version 4.88 [January 93] Ross Mitchell
+% - redesigned chars 63, 64, 65, 66
+%
+% Version 4.87 [] Daniel Taupin
+%
+% Version 2.00 [] Daniel Taupin
+%
+% Version 1.00 [August 86] Angelika Schofer/Andrea Steinbach
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%"At most 15 different nonzero heights, 15 different nonzero depths, ...
+% may appear in a single fonts. If these limits are exceeded, METAFONT will
+% change one or more values, ..., until the restriction hold. A warning
+% message is issued ..; for example 'some charht values had to be adjusted
+% by as much as 0.12pt' means that you had too many different nonzero
+% heights, ..." METAFONT-Book App. F
+
+%<<<>>> This indicates the heights I've changed
+
+%{{{ This always indicates a lowres fix to avoid seperated points
+%}}} and/or 'invisible' lines. It doesn't affect higher resolutions !!
+
+pair pone, ptwo;
+transform t;
+path p;
+picture save_pic;
+
+pen thin_pen, med_pen;
+thin_pen:= pencircle scaled thin;
+med_pen:= pencircle scaled med;
+
+apog_fact=0.75;
+apog_nhh=apog_fact*nhh;
+apog_nhh#=apog_fact*nhh#;
+apog_nhw#=apog_fact*nhw#;
+
+%%%AE it's somewhat faster to use already computed pictures
+def mirror (expr pone, ptwo) =
+ currentpicture:=currentpicture reflectedabout(round(pone),round(ptwo))
+enddef;
+def add_mirror (expr pone, ptwo) =
+ addto currentpicture also currentpicture
+ reflectedabout (round(pone), round(ptwo))
+enddef;
+
+def savepic = save_pic:= currentpicture enddef;
+def callpic = currentpicture:= save_pic enddef;
+def clearpic = save_pic:= nullpicture enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% basic macros for noteheads and flags %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% noteheads %
+%%%%%%%%%%%%%
+def drawnoteb(expr noteheadwidth, noteheadheight, theta_a,
+ theta_b, theta_c, width_a, width_b) =
+ penpos1(width_a, theta_a); % .l
+ penpos3(width_a, 180+theta_a); % .2
+ penpos2(width_b, 180+theta_b); % .r
+ penpos4(width_b, theta_b); %.l.1.r .r.3.l
+ x1l = y1 = y3 = 0; % .r
+ x3l = 2x2 = 2x4 = noteheadwidth; % .4
+ y2l =-y4l = noteheadheight; % .l
+ t:= identity rotatedaround ((x2,0),theta_c);
+ penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle)
+ transformed t;
+%{{{
+ currentpen:= pencircle;
+ draw (z1{up}..z2{right}..z3{down}..z4{left}..cycle) transformed t
+%}}}
+enddef;
+
+def drawnotew(expr noteheadwidth, noteheadheight, theta_a,
+ theta_b, width_a, width_b) =
+ penpos1(width_a, theta_a); % .l
+ penpos3(width_a, 180+theta_a); % .2
+ penpos2(width_b, 180+theta_b); % .r
+ penpos4(width_b, theta_b); %.l.1.r .r.3.l
+ x1l= y1l = y3l = 0; % .r
+ x3l= 2x2l = 2x4l = noteheadwidth;% .4
+ y2l=-y4l = noteheadheight; % .l
+ fill z1l{up}..z2l{right}..z3l{down}..z4l{left}..cycle;
+ erase fill z1r{up}..z2r{right}..z3r{down}..z4r{left}..cycle;
+%{{{
+ currentpen:= pencircle;
+ draw z1{up}..z2{right}..z3{down}..z4{left}..cycle;
+%}}}
+ penlabels(1,2,3,4)
+enddef;
+
+%%%AE I found in a notebook a whole note which looks slight different
+def drawnote_w(expr noteheadwidth, noteheadheight, theta, width_a, width_b)=
+ x1= y1 = y3 = y5 = y7 = 0;
+ x3= 2x2 = 2x4 = 2x6 = 2x8 = noteheadwidth;
+ y2=-y4 = noteheadheight;
+ x5= x3-x7 = x1+width_a;
+ y6=-y8 = y2-width_b;
+ fill z1{curl3}..z2..{curl3}z3{curl3}..z4..{curl3}cycle;
+ unfill (z5..z6..z7..z8..cycle) rotatedaround ((x2,0),theta);
+ labels(range 1 thru 8);
+enddef;
+%%%AE if you have GFtoDVI and want to see the character,
+% uncomment the next four lines
+%beginchar(0,1.5nhh#, .5nhh#, .5nhh#);
+% drawnote_w(w, h, 45, 1.6thick, .5thin);
+%endchar;
+%end
+
+%%%%%%%%%
+% flags %
+%%%%%%%%%
+%%%AE the penstrike macro is a copy of plain's penstroke
+% macro, 'fill' is replaced by 'filldraw', this is
+% responsible for 'strange path' when sharp turns ahead (intersectionp)
+% the second macro does the same with a little more 'tolerance'
+%
+% I don't like it at all, because the flags are thicker
+% on lowres than (or as?) on highres devices
+% {Sorry, my english is very bad, nevertheless I hope you
+% understand my words}
+%
+%%%def penstrike text t =
+%%% forsuffixes e = l,r: path_.e:=t; endfor
+%%% if cycle path_.l: cyclestroke_
+%%% else: filldraw path_.l -- reverse path_.r -- cycle fi enddef;
+%
+%def penstrike text t =
+% forsuffixes e = l,r: path_.e:=t; endfor
+% if cycle path_.l: cyclestroke_
+% else: fill path_.l -- reverse path_.r -- cycle;
+% draw path_.l -- reverse path_.r -- cycle fi enddef;
+
+def flagshape(suffix i) (expr width, height, thick,
+ thin, shiftx, shifty, flagsense) =
+ pair intersectionp; % .1
+ penpos[i](thick+blacker, 90); %
+ penpos[i+1](3.25thin+blacker, 70);% .2
+ penpos[i+3](thin, -45); %
+ x[i] = rt shiftx; % .3
+ y[i] = height+shifty-thick/2; %
+ x[i+1] = shiftx+3/8width; % .4
+ y[i+1] = height+shifty-.95thick; %
+ x[i+2] = shiftx+width-thin/2;
+ y[i+2] = height+shifty-2thick;
+ x[i+3] = shiftx-thin/2+0.6width;
+ y[i+3] = shifty;
+ if i>1: intersectionp = z[i-2]; else: intersectionp = z[i+3]; fi;
+ if flagsense>0:
+ penpos[i+2](1.25thin+blacker, 35);
+ else:
+ penpos[i+2](1.05thin+blacker, 0);
+ fi;
+ penstroke z[i]e..z[i+1]e..z[i+2]e{down}..intersectionp;
+%{{{
+ currentpen:= pencircle;
+ draw lft z[i]..z[i+1]..z[i+2]{down}..intersectionp;
+%}}}
+ penlabels (range i thru i+3)
+enddef;
+
+% Added by D. Taupin Jan 1993
+beginchar(14,0.5nhw#,0,0); "Song system limit up";
+%%%AE clearxy is already done by 'beginchar();'
+% clear;
+ x1=y1=y2=0; 3x2=x3=3w; y3=nhh;
+ p:= z1---z2..z3;
+ pickup penrazor scaled med rotated 90;
+ draw p;
+%{{{
+ currentpen:= pencircle;
+ draw p;
+%}}}
+ savepic;
+endchar;
+
+beginchar(15,0.5nhw#,0,0); "Song system limit down";
+ callpic;
+ mirror (origin, right);
+endchar;
+
+for n:=1 upto 4:
+%<<<>>>(0.5+0.1*n)*nhh#
+ beginchar(15+n, 4n*nhw#, 0, (0.5+0.1n)*nhh#); "Crescendo";
+ pickup med_pen;
+ draw (0,(0.5+0.1n)*nhh)--(w,0)--(0,-d);
+ endchar;
+endfor;
+
+for n:=1 upto 4:
+%<<<>>>(0.5+0.1*n)*nhh#
+ beginchar(19+n, 4n*nhw#, 0, (0.5+0.1n)*nhh#); "Decrescendo";
+ pickup med_pen;
+ draw (w,(0.5+0.1n)*nhh)--(0,0)--(w,-d);
+ endchar;
+endfor;
+
+%%%%%%%%%%%
+% accents %
+%%%%%%%%%%%
+dely:=1.15nhh+.2pt;
+
+%%%AE 'fill fullcircle' is faster and produce 'nicer' circles
+beginchar(24, nhw#, nhh#, 0); "Point au-dessus de la note";
+ fill fullcircle scaled thick shifted (.5w, dely);
+ savepic;
+endchar;
+
+beginchar(25, nhw#, 0, nhh#); "Point au-dessous de la note";
+ callpic;
+ mirror (origin, right);
+endchar;
+
+beginchar(26, nhw#, nhh#, 0); "Barre au-dessus de la note";
+%%%AE faster
+ fill unitsquare xscaled w yscaled 1.25med shifted (0,dely-.625med);
+ savepic;
+endchar;
+
+beginchar(27, nhw#, 0, nhh#); "Trait au-dessous de la note";
+ callpic;
+ mirror (origin, right);
+endchar;
+
+beginchar(28, nhw#, nhh#, 0); "Accent (pizz.) au-dessus de la note";
+ rayon:= thin+.1nhh;
+ z1=(0.5w,w+rayon);
+ z2=(0.5w-rayon,w);
+ z3=(0.5w,w-0.45nhh);
+ z4=(0.5w+rayon,w);
+ fill z3--z4{up}..z1..{down}z2--cycle;
+ savepic;
+endchar;
+
+beginchar(29, nhw#, 0, nhh#); "Accent (pizz.) au-dessous de la note";
+ callpic;
+ mirror (origin, right);
+endchar;
+
+%%%AE why 1.5nhh ???
+beginchar(30, nhw#, 1.5nhh#, 0); "Accent (sforz.) au-dessus de la note";
+ pickup med_pen;
+ draw (-.2w, 1.6nhh)--(1.2w, 1.3nhh)--(-.2w, nhh);
+ savepic;
+endchar;
+
+beginchar(31, nhw#, 0, nhh#); "Accent (sforz.) au-dessous de la note";
+ callpic;
+ mirror (origin, right);
+endchar;
+
+%%%%%%%%%
+% breve %
+%%%%%%%%%
+def breve =
+ fill unitsquare xscaled w yscaled .5h shifted (0,.25h);
+ add_mirror (origin, right);
+ nh:= .7nhh;
+ pickup thin_pen;
+ draw (0,nh)--(0,-nh); draw (w,nh)--(w,-nh);
+enddef;
+
+%<<<>>>.7nhh#
+beginchar(32, nhw#, 0.5nhh#, 0.5nhh#); "Breve";
+ breve;
+endchar;
+
+beginchar(33, nhw#, .5nhh#, .5nhh#); "Quarter note";
+ w:=w+2thinwidth;
+%%%AE a little bit smaller, because a quarter note
+% seems to be thicker as an half note
+ drawnoteb(w, .99h, 0, 90, 20, w/2, h);
+endchar;
+
+beginchar(34, nhw#, .5nhh#, .5nhh#); "Half note";
+ w:=w+2thinwidth;
+ drawnoteb(w, h, 0, 90, 20, thin, thick);
+endchar;
+
+beginchar(35,1.5nhh#, .5nhh#, .5nhh#); "Whole note";
+ drawnotew(w, h, 0, 30, 1.3thick, 1.75thin);
+endchar;
+
+%<<<>>>.7nhh#
+beginchar(36, 2nhw#, 0.5nhh#, 0.5nhh#); "Semi-breve";
+ breve;
+endchar;
+
+beginchar(37, apog_nhw#, .5apog_nhh#, .5apog_nhh#); "Small quarter note";
+ w:=w+2thinwidth;
+ drawnoteb(w, .99h, 0, 90, 20, w/2, h);
+endchar;
+
+%beginchar(38, apog_nhw#, .5apog_nhh#, .5apog_nhh#); "Small half note";
+% w:=w+2thinwidth;
+% drawnoteb(w, h, 0, 90, 20, thin, apog_fact*thick);
+%endchar;
+
+def doublesharp (expr high)=
+ clear;
+ x4= .5w; y4=high;
+ x1=w-x7=.5w+1/25nhh; y1=y7=0;
+ x2=w-x6=.51w+thin; y2=y6=.3y4;
+ x3=w-x5=.58w+thin; y3=y5=.6y4;
+ t:= identity rotatedaround ((.5w, 0), 90);
+ fill (z1{up}..z2..z3..{nw}z4 & z4{sw}..z5..z6..{down}z7--z1--cycle)
+ rotatedaround ((.5w, 0), 45);
+ addto currentpicture also currentpicture transformed t;
+ addto currentpicture also currentpicture transformed (t transformed t);
+ labels (1,2,3,4,5,6,7)
+enddef;
+
+
+beginchar(38, nhw#, nhh#, nhh#); "Circled doublesharp";
+ doublesharp (.62w);
+ pickup thin_pen;
+ draw (0,0){up}..{right}(0.5nhw,0.5nhw)..
+ {down}(nhw,0)..{left}(0.5nhw,-0.5nhw)..cycle;
+endchar;
+
+
+
+% beginchar(39, 1.5apog_nhh#, .5apog_nhh#, .5apog_nhh#); "Small full note";
+% drawnotew(w, h, 0, 30, apog_fact*1.3thick, 1.5thin);
+% endchar;
+
+%
+beginchar(39, nhw#, nhh#, nhh#); "Bongo cross";
+ pickup pencircle scaled med;
+ draw (0,0)--(nhw,0);
+ draw (0.5nhw,-0.5nhw) -- (0.5nhw,0.5nhw)
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% general parameters for flags %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+flagw:=0.8nhw;
+flagthick:=nhh;
+flagthin:=5thinwidth;
+
+def cflag (expr sense) =
+ flagshape(1, flagw, h, flagthick, flagthin, 0, 0, sense);
+ if sense<0 : mirror ((0,h/2), (1,h/2)); fi
+enddef;
+
+def flagloop (expr sense, doitagain) =
+ flagshape(1, flagw, 2.50flagthick, 2/3flagthick,
+ flagthin, 0, 0, sense);
+ for xyz:=1 upto doitagain:
+ flagshape([4xyz+1], flagw, 2.25flagthick, 2/3flagthick,
+ flagthin, 0, (.75xyz+.25)*flagthick, sense);
+ endfor;
+ if sense<0 : mirror ((0,h/2), (1,h/2)); fi
+enddef;
+
+def ccflag (expr sense) = flagloop(sense, 1) enddef;
+def cccflag (expr sense) = flagloop(sense, 2) enddef;
+def ccccflag (expr sense) = flagloop(sense, 3) enddef;
+def cccccflag (expr sense) = flagloop(sense, 4) enddef;
+
+beginchar(40, 0, 3nhh#, 0); "1/8flag down";
+ cflag(1);
+ savepic;
+endchar;
+
+% Acciacaturra, added by D.Taupin Jan 93.
+% idem mais avec barre (appogiature)
+beginchar(12, 0, 3nhh#, 0); "Acciacaturra stem up";
+ callpic;
+ pickup med_pen;
+ x1=-0.25nhw; y1=0.2h; x2=1.1nhw; y2=y1+0.6(x2-x1);
+ draw z1--z2;
+endchar;
+
+beginchar(41, 0, 3.25nhh#, 0); "1/16flag down";
+ ccflag(1);
+endchar;
+
+beginchar(42, 0, 4.00nhh#, 0); "1/32flag down";
+ cccflag(1);
+endchar;
+
+beginchar(43, 0, 4.75nhh#, 0); "1/64flag down";
+ ccccflag(1);
+endchar;
+
+beginchar(44, 0, 5.50nhh#, 0); "1/128flag down";
+ cccccflag(1);
+endchar;
+
+%%%
+% flags up should be wider
+%%%
+flagw:=nhw;
+
+beginchar(45, 0, 3nhh#, 0); "1/8flag up";
+ cflag(-1);
+ savepic;
+endchar;
+
+% added by D.Taupin Jan 93.
+% idem mais avec barre (appogiature)
+beginchar(13, 0, 3nhh#, 0); "Acciacaturra stem down";
+ callpic;
+ pickup med_pen;
+ x1=-0.25nhw; y1=1.6nhh; x2=1.2nhw; y2=y1+0.6(x2-x1);
+ draw z1--z2;
+endchar;
+
+beginchar(46, 0, 3.25nhh#, 0); "1/16flag up";
+ ccflag(-1);
+endchar;
+
+beginchar(47, 0, 4.00nhh#, 0); "1/32flag up";
+ cccflag(-1);
+endchar;
+
+beginchar(48, 0, 4.75nhh#, 0); "1/64flag up";
+ ccccflag(-1);
+endchar;
+
+beginchar(49, 0, 5.50nhh#, 0); "1/128flag up";
+ cccccflag(-1);
+endchar;
+
+%%%%%%%%%%%%%%%
+% accidentals %
+%%%%%%%%%%%%%%%
+def flat (expr reduction, shiftx, flatsense) =
+ clear;
+ fthick:= reduction*s;
+ penpos4(4/3fthick+blacker,0); % 1
+ penpos3(1/2fthick+blacker,-90);%
+ penpos6(4/7fthick+blacker,90); % 6
+ penpos2(.1thinwidth, 180); % / \
+ x1 = x2 = x3 = x5 = fthick; % 2 4
+ y1 = 6fthick; y2l= 0.5y4; % /
+ y3l=-2fthick; y5= y3r; % 3,5
+ x4 = 3.6fthick; y4 = 0.1fthick;
+ y6r= 2fthick; x6= 0.5(x2+x4);
+ t:=identity shifted (shiftx,0);
+ p:= (z1--z5) transformed t;
+ pickup penrazor scaled (2sind40*thin) rotated 40;
+ draw p;
+%{{{
+ currentpen:= pencircle;
+ draw p;
+%}}}
+ penstroke (z2e..{right}z6e..z4e{sw+down}..{sw}z3e) transformed t;
+ if flatsense<0: mirror (z5 transformed t, z1 transformed t); fi;
+ penlabels (1,2,3,4,5,6)
+enddef;
+
+%<<<>>> 2nhh#
+beginchar(50, nhw#, 1.5nhh#, 1.5nhh#); "Flat";
+ flat (1, 0, 1);
+ savepic;
+endchar;
+
+%<<<>>> 2nhh#
+beginchar(51,1.7nhw#, 1.5nhh#, 1.5nhh#); "Doubleflat";
+ callpic;
+ addto currentpicture also currentpicture shifted (.7nhw, 0);
+endchar;
+
+def sharp =
+ clear;
+ reduction:=w/0.8nhw;
+ sthick:= .5reduction*thick;
+ y1 =-y7= h-1.5sthick; y2 =-y8 = .5sthick-h;
+ x1 = x2 = y3 = -y6 = w-x7 = w-x8 = 2sthick;
+ y4 =-y5 = y3 + 3sthick;
+ x3 = x5 = 0; x4 = x6 = w;
+ pickup penrazor scaled thin rotated angle(z4-z3);
+ draw z1--z2; draw z8--z7;
+%{{{
+ currentpen:= pencircle;
+ draw z1--z2; draw z8--z7;
+%}}}
+ pickup penrazor scaled 3sthick rotated 90;
+ draw z3--z4; draw z5--z6;
+ labels (range 1 thru 8)
+enddef;
+
+beginchar(52, 0.8nhw#, 1.5nhh#, 1.5nhh#); "Sharp";
+ sharp;
+endchar;
+
+%<<<>>>.5nhw#
+beginchar(53, nhw#, nhh#, nhh#); "Doublesharp";
+ doublesharp (.65w);
+endchar;
+
+def natural =
+ clear;
+ reduction:=w/0.8nhw;
+ nthick:= 3/4reduction*thick;
+ x1 = x2 = x3 = nthick;
+ x5 = x6 = x4 = w-x1;
+ y1 = -y6 = h;
+ y2 = -y5 = 1.6nthick;
+ y4 = -y3 = y2+4/3nthick;
+ pickup penrazor scaled thin rotated angle(z4-z2);
+ draw lft z1--bot lft(x3,y3-nthick);
+ draw top rt(x4,y4+nthick)--rt z6;
+%{{{
+ pickup pencircle;
+ draw lft z1--lft(x3,y3-nthick);
+ draw rt(x4,y4+nthick)--rt z6;
+%}}}
+ pickup penrazor scaled 2nthick rotated 90;
+ draw z2--z4; draw z3--z5;
+ labels(1,2,3,4,5,6)
+enddef;
+
+beginchar(54, 0.8nhw#, 1.5nhh#, 1.5nhh#); "Natural";
+ natural;
+endchar;
+
+%<<<>>> 2nhh#
+beginchar(55, nhw#, 1.5nhh#, 1.5nhh#); "1/4 flat";
+ flat (1, 0.65nhw, -1);
+endchar;
+
+%<<<>>> 2nhh#
+beginchar(56, 1.7nhw#, 1.5nhh#, 1.5nhh#); "3/4 flat";
+ flat (1, 0.65nhw, -1); flat (1, 0.65nhw, 1);
+endchar;
+
+beginchar(57, nhw#, .5nhh#, .5nhh#); "Gregorian notes";
+ fill (0.5w-0.8h,0)--(0.5w,h)--(0.5w+0.8h,0)--(0.5w,-h)--cycle;
+endchar;
+
+beginchar(0, nhw#, .5nhh#, .5nhh#); "Gregorian diamond";
+ fill (0,0)--(0.5w,0.5nhw)--(w,0)--(0.5w,-0.5nhw)--cycle;
+endchar;
+
+beginchar(1, 0.71*nhw#, .5nhh#, .5nhh#); "Gregorian square";
+ fill (0,0.355nhw)--(w,0.355nhw)--(w,-0.355nhw)--(0,-0.355nhw)--cycle;
+endchar;
+
+beginchar(2, 0.71*nhw#, .5nhh#, .5*nhh#); "Gregorian square left";
+ fill (0,0.355nhw)--(w,0.355nhw)--(w,-0.355nhw)--(0,-0.355nhw)--cycle;
+ pickup thin_pen;
+ draw (0.5thin,0.355nhw-thin)--(0.5thin,-1.5nhh+0.5thin);
+endchar;
+
+beginchar(3, 0.71*nhw#, .5nhh#, .5nhh#); "Gregorian square right";
+ fill (0,0.355nhw)--(w,0.355nhw)--(w,-0.355nhw)--(0,-0.355nhw)--cycle;
+ pickup thin_pen;
+ draw (w-0.5thin,0.355nhw-thin)--(w-0.5thin,-1.5nhh+0.5thin);
+endchar;
+
+beginchar(4, nhw#, 3nhh#, 0); "Gregorian C clef";
+ fill (0,2nhh+0.8nhh)..{right}(0.5w,2nhh+nhh)--(w,2nhh+nhh)--
+ (w,2nhh+0.3nhh)--(0.5w,2nhh+0.3nhh){left}..(0,2nhh+0.1nhh)--cycle;
+ fill (0,2nhh-0.8nhh)..{right}(0.5w,2nhh-nhh)--(w,2nhh-nhh)--
+ (w,2nhh-0.3nhh)--(0.5w,2nhh-0.3nhh){left}..(0,2nhh-0.1nhh)--cycle;
+ pickup thin_pen;
+ draw (0.5thin,2.5nhh)--(0.5thin,1.5nhh);
+endchar;
+
+%%%%%%%%%
+% rests %
+%%%%%%%%%
+beginchar(58,1/2nhw#, 3nhh#, 0); "Dp";
+ fill unitsquare xscaled w yscaled 1/3h shifted (0, 2/3h);
+endchar;
+
+beginchar(59,1/2nhw#, 3nhh#, 0); "Ddp";
+ fill unitsquare xscaled w yscaled 2/3h shifted (0, 1/3h);
+endchar;
+
+beginchar(60, nhw#, 3nhh#, 0); "Full rest";
+ fill unitsquare xscaled w yscaled .5nhh shifted (0,h-.5nhh);
+endchar;
+
+%<<<>>> 2.5nhh#
+beginchar(61, nhw#, 3nhh#, 0); "Half rest";
+ fill unitsquare xscaled w yscaled .5nhh shifted (0,h-nhh);
+endchar;
+
+beginchar(62, nhw#, 4nhh#, 0); "Quarter rest";
+ rthin:= 1/8 nhh; % .1
+ rthick:= 2 thick+rthin; % .2
+ alpha:= -50; % .3
+ penpos1 (rthin, 90+alpha); % .4
+ penpos5 (rthin, alpha); % .5,10
+ penpos2 (rthick, alpha); % .6
+ penpos4 (rthick, alpha); %
+ penpos3 (3/4rthick, alpha);% .7
+ penpos6 (4/3thick, alpha);
+ penpos7 (rthin, 45);
+ y1l = h - 2s;
+ x1l = 2s;
+ z2r = z1 +(nhh* right) rotated alpha;
+ z3 = 1/2[z2,z4];
+ z4 = (w,h) scaled .55;
+ z5 = z4l+(nhh* right) rotated alpha;
+ x6l = x4l; y6r = 1.45nhh;
+ x7 = 0.9w; y7= nhh-.5s;
+ z10 = z5r shifted (sqrt(2)*rthin/4,sqrt(2)*rthin/4);
+
+ pickup penrazor scaled rthin rotated 45;
+ draw z1--z2r; draw z4l--z10;
+ penstroke z2e..z3e..z4e;
+ penstroke z5e..z6e..z7e;
+ penlabels(1,2,3,4,5,6,7,10);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Quaver rest and submultiples. %
+% Ross Mitchell, January 1993 %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%
+% Draw the crook needed for quaver rests and shorter.
+% The crook extends left from the point z.i on the stem.
+%%%
+def crook(suffix i)=
+ x3:=x.i-6.5fact; y3:=top y.i-3.0fact;
+ x4:=x.i-6.0fact; y4:= y.i+0.5fact;
+ draw z.i{dir 240}..{dir 160}z3;
+ filldraw z3{dir 160}..z4{dir-20}..{dir 160}z3..cycle
+enddef;
+
+beginchar(63, 2nhh#, 3nhh#, 0); "Quaver rest";
+ z1=(nhh,nhh);
+ z2-z1=whatever*dir 70; % Angle the stem at 70 degrees.
+%%%
+% Define the scaling factor `fact' implicitly.
+% This value will be used for the shorter rests as well.
+%%%
+ z2-z1=(5fact,1.7nhh);
+ pickup med_pen;
+ draw z1..z2;
+ crook(2);
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(64,2nhh#, 3nhh#, 0); "Semiquaver rest";
+ z1=(nhh,0);
+ z2-z1=whatever*dir 75; % Angle the stem at 75 degrees.
+ y2-y1=2.7nhh;
+ z5-z2=whatever*(z1-z2); y5=y2-nhh;
+ pickup med_pen;
+ draw z1..z2;
+ crook(2); crook(5);
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(65,2nhh#, 4nhh#, 0); "Demisemiquaver rest";
+ z1=(nhh,0);
+ z2-z1=whatever*dir 80; % Angle the stem at 80 degrees.
+ y2-y1=3.7nhh;
+ z5-z2=whatever*(z1-z2); y5=y2-nhh;
+ z6-z2=whatever*(z1-z2); y6=y5-nhh;
+ pickup med_pen;
+ draw z1..z2;
+ crook(2); crook(5); crook(6);
+ penlabels (1,2,3,4,5,6);
+endchar;
+
+%<<<>>> 5nhh#
+beginchar(66,2nhh#, 4.75nhh#, 0); "Hemidemisemiquaver rest";
+ z1=(nhh,0);
+ z2-z1=whatever*dir 82; % Angle the stem at 82 degrees.
+ y2-y1=4.7nhh;
+ z5-z2=whatever*(z1-z2); y5=y2-nhh;
+ z6-z2=whatever*(z1-z2); y6=y5-nhh;
+ z7-z2=whatever*(z1-z2); y7=y6-nhh;
+ pickup med_pen;
+ draw z1..z2;
+ crook(2); crook(5); crook(6); crook(7);
+ penlabels (1,2,3,4,5,6,7);
+endchar;
+
+%%%%%%%%%%%%%
+% ornaments %
+%%%%%%%%%%%%%
+beginchar (67, 2nhw#, nhh#, 0); "Ornament";
+ x1=w-x6=0.2w; y1r=h; y6=h-y1;
+ x2r=0; y2=0.5h; x5=w-x2; y5=h-y2;
+ x3=0.22w; y3r=0; x4=w-x3; y4=h-y3;
+ penpos1 (med, 90);
+ penpos2 (med, 180);
+ penpos3 (thick,-40);
+ penpos4 (thick,-40);
+ penpos5 (med, 180);
+ penpos6 (med, 90);
+ penstroke z1e..{down}z2e{down}..{right}z3e{right}
+ ..{right}z4e{right}..{down}z5e{down}..z6e;
+ fill fullcircle scaled (s+thick) shifted (x1,y1r-thick);
+ fill fullcircle scaled (s+thick) shifted (x6,y6l+thick);
+ penlabels(1,2,3,4,5,6);
+ savepic;
+endchar;
+
+beginchar (68, 2nhw#, nhh#, 0); "Ornament";
+ callpic;
+ mirror ((.5w,0), (.5w,1));
+endchar;
+
+%<<<>>>3.5apog_nhh#
+beginchar(69, apog_nhw#, 3.25apog_nhh#, .5apog_nhh#); "Appogiature stem up";
+ flagshape(1,0.8w, 3apog_nhh, apog_nhh, 4thinwidth, w, 0.5apog_nhh, 1);
+ clear;
+ drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2);
+ clear;
+ pickup pencircle scaled .8med;
+ draw (w-2thinwidth,0)--(w-2thinwidth,3.5apog_nhh);
+ x1=-0.1w; y1=0.6apog_nhh; x2=2w; y2=y1+0.6(x2-x1);
+ draw z1--z2;
+endchar;
+
+beginchar(70, apog_nhw#, 0.5apog_nhh#, 3.5apog_nhh#); "Appogiature stem down";
+ flagshape(1,w, 3apog_nhh, apog_nhh, 4thinwidth, 0.2pt, apog_nhh, -1);
+ mirror ((0,h/2), (1,h/2));
+ clear;
+ drawnoteb(w, 0.5apog_nhh, 0, 90, 20, w/2, apog_nhh/2);
+ pickup pencircle scaled .8med;
+ draw (2thinwidth,0)--(2thinwidth,-d);
+ clear;
+ x1=-0.3w; y1=-1.6apog_nhh; x2=1.3w; y2=y1+0.6(x2-x1);
+ draw z1--z2;
+endchar;
+
+%%%%%%%%%
+% clefs %
+%%%%%%%%%
+def violin(expr reduction) =
+ clear;
+ gx:=reduction*-nhw;
+ gy:=reduction*nhh;
+ gthick:=1.6reduction*thick;
+ gthin:=.95reduction*med;
+
+ x1=x4=23/24gx+w; x2=x10=3/4gx+w; x3r=w; x8l=7/8gx+w;
+ x5=x11r=2gx+w; x6=gx+w; x7=1/2gx+w; x9=5/4gx+w;
+ y1=3/8gy; y2=y5=2gy; y3=gy; y4r=0; y6=27/8gy;
+ y7l=21/4gy; y8l=23/4gy; y9=17/4gy; y10=y11=-7/8gy;
+ penpos1(gthin,180);
+ penpos2(gthick,90);
+ penpos3(gthick,0);
+ penpos4(5/4gthin,-90);
+ penpos5(11/8gthick,110);
+ penpos6(5/4gthick,120);
+ penpos7(4/5gthin,-140);
+ penpos8(5/4gthick,-80);
+ penpos9(3/8gthick,0);
+ penpos10(gthin,0);
+ penpos11(1/2gthick,180);
+ penstroke z1e{left}..z2e..z3e..z4e..z5e{up+ne}..z6e..{up+nw}z7e
+ ..z8e{sw}..{down}z9e{down}..{down}z10e..z11e;
+%{{{
+ currentpen:= pencircle;
+ draw z3..z4..z5{up+ne}..z6..{up+nw}z7
+ ..z8{sw}..{down}z9{down}..{down}z10..z11;
+%}}}
+ fill fullcircle scaled (3(x2-x1)) shifted (x11+11/40gy, y11);
+ penlabels(range 1 thru 11)
+enddef;
+
+%<<<>>> 6nhh#
+beginchar(71,3.25nhw#, 5.50nhh#, 2nhh#); "G-clef";
+ violin(1);
+endchar;
+
+%<<<>>> 6nhh#
+beginchar(72,2.60nhw#, 5.50nhh#, 2nhh#); "small G-clef";
+ violin(0.8);
+endchar;
+
+% clef de fa par D. Taupin
+def bass (expr reduction) =
+ clear;
+ x2=0.80reduction*nhw; y2=3nhh;
+ x1=x2r+1.25reduction*s; y1=y2;
+ x3=x2+0.71reduction*nhw; y3=y2+reduction*nhh;
+ x4=x3+0.71reduction*nhw; y4=y2-0.2reduction*nhh;
+ x6=x2-6reduction*thinwidth; y6=y2-2.2reduction*nhh;
+ x7=x4+0.50reduction*nhw; x8=x7;
+ y7=y2+0.38reduction*nhh; y8=y2-0.38reduction*nhh;
+
+ penpos2(.6thick*reduction,180);
+ penpos3(.6thick*reduction, 90);
+ penpos4(2thick*reduction,0);
+ penpos6(.4thick*reduction,-10);
+
+ penstroke(z2e{up}..{right}z3e{right}..{down}z4e{down}
+ ..{left+0.1down}z6e);
+%{{{
+ currentpen:= pencircle;
+ draw (z2{up}..{right}z3{right}..{down}z4{down}..{left+0.1down}z6);
+%}}}
+ fill fullcircle scaled (2(x2r-x1)) shifted z1;
+ fill fullcircle scaled 1.7s shifted z7;
+ fill fullcircle scaled 1.7s shifted z8;
+ penlabels(1,2,3,4,6)
+enddef;
+
+beginchar(73, 3nhw#, 4nhh#, 0); "F-clef";
+ bass(1.0);
+endchar;
+
+beginchar(74, 2.4nhw#, 4nhh#, 0); "small F-clef";
+ bass(0.8);
+endchar;
+
+def alt(expr reduction, yshift) =
+ clear;
+ nh:=h*reduction;
+ athick:=1/10nh;
+ ahigh:=1/2nh;
+
+ x4=13/16nh+3thinwidth; x5=9/16nh;
+ x6=1/2nh; x9=x10=2/3nh; x11=17/32nh;
+ y4=yshift+31/50ahigh; y5=yshift+1/2ahigh;
+ y6=yshift; y9=yshift+1/9ahigh;
+ y10=yshift+ahigh; y11=yshift+11/14ahigh;
+ penpos4(athick,180);
+ penpos5(1/8athick,0);
+ penpos6(athick,0);
+ penpos9(1/3athick,90);
+ penpos10(1/3athick,-90);
+ penpos11(1/2athick,0);
+
+ penstroke z5e..{sw+down}z6e;
+ penstroke z5e{se+3down}..{right}z9e{right}..{up}z4e{up}
+ ..{left}z10e{left}..{sw+3down}z11e;
+ fill fullcircle scaled (5/2thick*reduction)
+ shifted (x11l+5/4thick*reduction, y11-.05nhh);
+ fill unitsquare xscaled athick yscaled ahigh
+ shifted (5/16nh-1/2athick,yshift);
+ fill unitsquare xscaled 1/4athick yscaled ahigh
+ shifted (x6l-1/4athick,yshift);
+ add_mirror ((0,yshift),(1,yshift));
+ penlabels(4,5,6,9,10,11)
+enddef;
+
+beginchar(75,3.5nhw#, 4nhh#, 0); "Alto clef";
+ alt(1, 2nhh);
+ savepic;
+endchar;
+
+beginchar(76,2.8nhw#, 4nhh#, 0); "small Alto clef";
+ alt(0.8 ,2nhh);
+endchar;
+
+%%%%%%%%%%%%%
+% drum clef % (by Andreas Egler)
+%%%%%%%%%%%%%
+beginchar(77, 3nhw#, 4nhh#, 0);
+ fill unitsquare xscaled .5nhw yscaled 2nhh shifted (.5nhw,1nhh);
+ fill unitsquare xscaled .5nhw yscaled 2nhh shifted (1.5nhw,1nhh);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this sign is sometimes used %
+% to indicate a (randomly played) %
+% tremolo accord (ragtime, boogie) %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(78, 0, 3nhh#, 0);
+ clear;
+ x1=-x2=-.5nhw; y1=1nhh; y2=1.6nhh;
+ pickup med_pen;
+ for i=0 upto 4: draw (z1--z2) shifted (0,.4nhh*i); endfor;
+ labels (1,2);
+endchar;
+
+
+%%%%%%%%%%
+% shaker %
+%%%%%%%%%%
+beginchar(79, nhw#, nhh#, nhh#);
+ x1=x4=y2=y4=0; y1=-0.6nhh; x2=x3=w; y3=0.6nhh;
+ fill z1--z2--z3--z4--cycle;
+ labels (1,2,3,4);
+endchar;
+
+
+%%%%%%%%%%%%%%%%%
+% special signs %
+%%%%%%%%%%%%%%%%%
+%<<<>>>1.25nhh#
+beginchar(80, 2nhw#, 1.5*apog_nhh#, 0); "Fermate up";
+ x1 = y1 = y3 = 0;
+ y2r = 1.5nhh; 2x2l = x3 = w;
+ penpos1(med,180);
+ penpos2(1.3thick,90);
+ penpos3(med,0);
+ penstroke z1e..z2e..z3e;
+ fill fullcircle scaled 1.3thick shifted (.5w, .65thick);
+ savepic;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(81, 2nhw#, 0, 1.25nhh#); "Fermate down";
+ callpic;
+ mirror (origin, right);
+endchar;
+
+beginchar(82, 2nhh#, 3nhh#, 0); "Allabreve";
+ 2x2 = 2x4 = x1 + 2s = w;
+ x3r = 0; 2y1 = 3y2 = y4r = h;
+ y3r = 2/3h; x5 = w -2s; y5 = h -2s;
+ z6r = z5r + (-0.1s, .2s);
+ penpos1(med, 0);
+ penpos2(med, -90);
+ penpos3(s+thick,180);
+ penpos4(med, 90);
+ penpos5(med, 0);
+ penpos6(s+med,45);
+ penstroke z1e..z2e..z3e..z4e..z5e;
+%{{{
+ currentpen:= pencircle;
+ draw z1..z2..z3..z4..z5;
+%}}}
+ fill fullcircle scaled 1.3thick shifted z6;
+ savepic;
+
+ pickup med_pen;
+ draw (w/2, y2r-1/8h)--(w/2, y4r+1/8h);
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(83, 2nhh#, 3nhh#, 0); "C";
+ callpic;
+endchar;
+
+beginchar(84, 2nhh#, 3nhh#, 0); "reverseC";
+ callpic;
+ mirror ((w/2,0),(w/2,1));
+endchar;
+
+%%%%%%%%%%%%%%%%%%
+% repeat symbols %
+%%%%%%%%%%%%%%%%%%
+beginchar(85, 2nhw#, 3nhh#, 0); "Repeat symbol";
+ x2 = w-x4 = 1/6h; y2 = y4 = 1/2h;
+ x3 = x5 = 1/2w; y3 = h-y5 = 5/6h;
+ pickup pencircle scaled 1.25thin;
+ draw (0,h/2)--(w,h/2); draw (w/2,0)--(w/2,h);
+ pickup pencircle xscaled 1.2thick yscaled 1.25thin;
+ draw z2..z3..z4..z5..cycle;
+ labels (1,2,3,4);
+endchar;
+
+%<<<>>>3nhw#
+beginchar(86, 3nhw#, 4.75apog_nhh#, 0); "Repeat symbol";
+ x6 = .75w; y6 = .9w; x8 = .4w; y8l = .95w;
+ x11= y11 = .5w; z10 = z11+(-s,s);
+ penpos8 (med, -90);
+ penpos10 (1.8thick, 25);
+ penpos11 (1.8thick, 25);
+ penstroke z8e{left}..{se}z10e..z11e;
+ fill fullcircle scaled 1.6thick shifted (z8l-(0, .8thick));
+ fill fullcircle scaled thick shifted (.2w, .4w);
+ pickup penrazor scaled 0.8thick;
+ draw z6--z11;
+ addto currentpicture also currentpicture rotatedaround((.5w,.5w),180);
+ penlabels (8,9,11);
+endchar;
+
+def pince (expr length)=
+ clear;
+ off:= w/2length;
+ nh:= .8nhh;
+ y1 = y3 = nh-y2 = nh-y4 = 1/5nh;
+ x1=-.5off; x2=x1+off; x3=x2+off; x4=x3+off;
+ pickup pensquare xscaled (thick+.15nhh) yscaled thin rotated 52;
+ p:= z1--z2--z3--z4;
+ for i=1 upto length: draw p shifted ((i-1)*2off,0); endfor
+enddef;
+%%%%%%%%%% Begin Andreas Egler's
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% full rest outside a staff %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(5, nhw#, nhh#, 0);
+ fill unitsquare xscaled w yscaled .5nhh shifted (0,-.5nhh);
+ fill unitsquare xscaled 1.8w yscaled med shifted (-.4w,-0.5med);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% half rest outside a staff %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(6, nhw#, nhh#, 0);
+ fill unitsquare xscaled w yscaled .5nhh;
+ fill unitsquare xscaled 1.8w yscaled med shifted (-.4w,-0.5med);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%
+% mordant with line %
+%%%%%%%%%%%%%%%%%%%%%
+beginchar(7, 1.8nhw#, apog_nhh#, 0);
+ pince(3);
+ pickup med_pen;
+ draw ((x1,0)--(x1,2h)) shifted (-.5thick,0);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+% mordant with hook ne %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(9, 1.8nhw#, apog_nhh#, 0);
+ pince(3);
+ pickup pencircle scaled .75med;
+ z5=2[z3,z4]-(.5thick,1/5nh); z6=z3 rotatedaround (z5,-90);
+ draw (z4..z5{z4-z3}..{z3-z4}z6) shifted 2(x4-x2,0);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+% mordant with hook nw %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(10, 1.8nhw#, apog_nhh#, 0);
+ pince(3);
+ pickup pencircle scaled .75med;
+ z5=1.75[z3,z2]-(x3-x1,0); z6=z1 rotatedaround (z5,90);
+ draw (z1..z5{z2-z3}..{z3-z2}z6) shifted -(.5thick, 1/5nh);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%
+% mordant with hook sw %
+%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(11, 1.8nhw#, apog_nhh#, 0);
+ pince(3);
+ pickup pencircle scaled .75med;
+ z5=1.5[z2,z1]-.75(.5thick,1/5nh); z6=z2 rotatedaround (z5,-90);
+ draw (z1..z5{z1-z2}..{z2-z1}z6);
+endchar;
+%%%%%%%%%% End Andreas Egler
+%<<<>>> .8nhh#
+beginchar(87, 1.2nhw#, apog_nhh#, 0); "Pince";
+ pince(2);
+endchar;
+
+%<<<>>> .8nhh#
+beginchar(88, 1.8nhw#, apog_nhh#, 0); "???";
+ pince(3);
+endchar;
+
+%<<<>>> .8nhh#
+beginchar(89, 1.2nhw#, apog_nhh#, 0); "Mordant";
+ pince(2);
+ fill unitsquare xscaled med yscaled 2h shifted ((.5w-.5med),-.5h);
+endchar;
+
+def arpeg (expr length)=
+ clear;
+ x1=.5w; y1=0; z2=z1+(0,.5nhh); z3=z1+(0,nhh);
+ pickup penrazor scaled (thick+.16nhh) rotated 46;% try 50
+ callpic;
+ draw (z1{ne}..{nw}z2{nw}..{ne}z3) shifted (0, length*nhh);
+ savepic;
+ labels (1,2,3)
+enddef;
+
+clearpic;
+for jj=0 upto 9:
+%<<<>>>(1+jj)*nhh#
+ beginchar(90+jj, 0.4nhw#, nhh#, 0); "Arpeggio";
+ arpeg(jj);
+ endchar;
+endfor;
+
+def trill (expr length)=
+ clear;
+ x1=0; y1=.5h; z2=z1+(.5nhw,0); z3=z1+(nhw,0);
+ pickup penrazor scaled 1.4thick rotated 48;
+ callpic;
+ draw (z1{ne}..{se}z2{se}..{ne}z3) shifted (length*nhw, 0);
+ savepic;
+ labels (1,2,3)
+enddef;
+
+clearpic;
+for jj=0 upto 9:
+%<<<>>>0.45nhh#
+ beginchar(100+jj, (jj+1)*nhw#, 0.5nhh#, 0); "Trille";
+ trill(jj);
+ endchar;
+endfor;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% general parameters for small flags %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+flagw:=0.8nhw*apog_fact;
+flagthick:=apog_nhh;
+flagthin:=5thinwidth*apog_fact;
+
+beginchar(110, 0, 3apog_nhh#, 0); "Small 1/8flag down";
+ cflag(1);
+endchar;
+
+beginchar(111, 0, 3.25apog_nhh#, 0); "Small 1/16flag down";
+ ccflag(1);
+endchar;
+
+beginchar(112, 0, 4.00apog_nhh#, 0); "Small 1/32flag down";
+ cccflag(1);
+endchar;
+
+beginchar(113, 0, 4.75apog_nhh#, 0); "Small 1/64flag down";
+ ccccflag(1);
+endchar;
+
+beginchar(114, 0, 5.50apog_nhh#, 0); "Small 1/128flag down";
+ cccccflag(1);
+endchar;
+
+%%%
+% flags up should be wider
+%%%
+flagw:=nhw*apog_fact;
+
+beginchar(115, 0, 3apog_nhh#, 0); "Small 1/8flag up";
+ cflag(-1);
+endchar;
+
+beginchar(116, 0, 3.25apog_nhh#, 0); "Small 1/16flag up";
+ ccflag(-1);
+endchar;
+
+beginchar(117, 0, 4.00apog_nhh#, 0); "Small 1/32flag up";
+ cccflag(-1);
+endchar;
+
+beginchar(118, 0, 4.75apog_nhh#, 0); "Small 1/64flag up";
+ ccccflag(-1);
+endchar;
+
+beginchar(119, 0, 5.50apog_nhh#, 0); "Small 1/128flag up";
+ cccccflag(-1);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%
+% small accidentals %
+%%%%%%%%%%%%%%%%%%%%%
+%<<<>>>2apog_nhh#
+beginchar(120, apog_nhw#, 1.5apog_nhh#, 1.5apog_nhh#); "Small flat";
+ flat (apog_fact, 0, 1);
+ savepic;
+endchar;
+
+%<<<>>>2apog_nhh#
+beginchar(121,1.7*apog_fact*nhw#, 1.5apog_nhh#, 1.5apog_nhh#); "Small doubleflat";
+ callpic;
+ addto currentpicture also currentpicture shifted(0.7apog_fact*nhw,0);
+endchar;
+
+beginchar(122, 0.8apog_fact*nhw#, 1.5apog_nhh#, 1.5apog_nhh#); "Small sharp";
+ sharp;
+endchar;
+
+%<<<>>>.5nhw#
+beginchar(123, apog_nhw#, apog_nhh#, apog_nhh#); "Small doublesharp";
+ doublesharp(.75w);
+endchar;
+
+beginchar(124, 0.8apog_fact*nhw#, 1.5apog_nhh#, 1.5apog_nhh#); "Small natural";
+ natural;
+endchar;
+
+beginchar(125,1.5nhh#, .5nhh#, .5nhh#); "Full note with | --> |O|";
+ fill unitsquare xscaled thick yscaled nhh shifted (-4/5thick,-d);
+ add_mirror ((w/2, 0),(w/2, 1));
+ drawnoteb(w, h, 0, 85, 0, 1.3thick, thin);
+endchar;
+
+beginchar(126,0.6nhh#, 4nhh#, 0); "Repeat colons";
+ fill fullcircle scaled 1.2thick shifted (0.5w, 3/8h);
+ add_mirror ((0, h/2),(1, h/2));
+endchar;
+
+%%%%%%%%%%%
+% rimshot %
+%%%%%%%%%%%
+def caro (expr reduction)=
+ x1=w-w*reduction; y1=y3=0; x2=x4=w-.5w*reduction;
+ x3=w; -y2=y4=0.6nhh*reduction;
+ pickup thin_pen;
+ draw z1--z2; draw z3--z4;
+ pickup pencircle xscaled (.15nhw*reduction) yscaled thinwidth
+ rotated -45;
+ draw z2--z3; draw z4--z1;
+ labels (1,2,3,4);
+enddef;
+
+beginchar(127, nhw#, nhh#, nhh#);
+ caro(.95);
+endchar;
+
+
+%%%AE some characters are 'kerned' and 'raised' by MusicTeX
+% this can be done faster with modified fonts and
+% as an additional advantage, there is more 'main memory' for
+% future enhancements, for example:
+%
+%\def\w@coli{\selectinstr{\p@loop\raise\altportee
+% \hbox to \z@{\hss\musicnorfont\char 126\hss}\n@portee\repeat}}%
+%
+% with
+%
+%beginchar(126, 0, 4nhh#, 0); "Repeat colons";
+% fill fullcircle scaled 1.2thick shifted (0, 3/8h);
+% add_mirror ((0, h/2),(1, h/2));
+%endchar;
+%
+% becomes
+%
+%\def\w@coli{\selectinstr{\p@loop\raise\altportee
+% \hbox{\musicnorfont\char 126}\n@portee\repeat}}%
+%
+% or
+%
+%\def\clefdesol{\hbox to 3.2\Interligne{\musickeyfont
+% \kern -1.2\internote\hss\char"47\hss}}%
+%
+% with
+%
+%beginchar(71, 8/3nhw#, 5.50nhh#, 2nhh#); "G-clef";
+% violin(1);
+%endchar;
+%
+% becomes
+%
+%\def\clefdesol{\hbox{\musickeyfont\char"47}}%
+%
+% or
+%
+%\def\d@soup{\hbox{\kern -0.3\qn@width\musicnfont\char"3F}}%
+%
+% with
+%
+%beginchar(63, 2nhh#, 3nhh#, 0); "Quaver rest";
+% ...
+% currentpicture:= currentpicture shifted (round(-0.3nhw), 0);
+%endchar;
+%
+% becomes
+%
+%\def\d@soup{\hbox{\musicnfont\char"3F}}%
+%
+% and so on
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikn11.mf b/Master/texmf-dist/fonts/source/public/musictex/musikn11.mf
new file mode 100644
index 00000000000..6fd4e776ddf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musikn11.mf
@@ -0,0 +1,19 @@
+%%%
+% this is musicn11.mf
+%%%
+
+font_identifier:="musicn11";
+font_coding_scheme:="UNSPECIFIED";
+
+input musikd11
+
+%font_slant 0;
+%font_normal_space 0pt;
+%font_normal_stretch 0pt;
+%font_normal_shrink 0pt;
+font_x_height nhh#; %fontdimen 5
+font_quad nhw#; %fontdimen 6
+%font_extra_space 0pt;
+
+input musikgen
+end
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikn13.mf b/Master/texmf-dist/fonts/source/public/musictex/musikn13.mf
new file mode 100644
index 00000000000..7a73e707a00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musikn13.mf
@@ -0,0 +1,19 @@
+%%%
+% this is musicn13.mf
+%%%
+
+font_identifier:="musicn13";
+font_coding_scheme:="UNSPECIFIED";
+
+input musikd13
+
+%font_slant 0;
+%font_normal_space 0pt;
+%font_normal_stretch 0pt;
+%font_normal_shrink 0pt;
+font_x_height nhh#; %fontdimen 5
+font_quad nhw#; %fontdimen 6
+%font_extra_space 0pt;
+
+input musikgen
+end
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikn16.mf b/Master/texmf-dist/fonts/source/public/musictex/musikn16.mf
new file mode 100644
index 00000000000..b5aeebdb70a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musikn16.mf
@@ -0,0 +1,19 @@
+%%%
+% this is musicn16.mf
+%%%
+
+font_identifier:="musicn16";
+font_coding_scheme:="UNSPECIFIED";
+
+input musikd16
+
+%font_slant 0;
+%font_normal_space 0pt;
+%font_normal_stretch 0pt;
+%font_normal_shrink 0pt;
+font_x_height nhh#; %fontdimen 5
+font_quad nhw#; %fontdimen 6
+%font_extra_space 0pt;
+
+input musikgen
+end
diff --git a/Master/texmf-dist/fonts/source/public/musictex/musikn20.mf b/Master/texmf-dist/fonts/source/public/musictex/musikn20.mf
new file mode 100644
index 00000000000..3f56be5c445
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/musikn20.mf
@@ -0,0 +1,19 @@
+%%%
+% this is musicn20.mf
+%%%
+
+font_identifier:="musicn20";
+font_coding_scheme:="UNSPECIFIED";
+
+input musikd20
+
+%font_slant 0;
+%font_normal_space 0pt;
+%font_normal_stretch 0pt;
+%font_normal_shrink 0pt;
+font_x_height nhh#; %fontdimen 5
+font_quad nhw#; %fontdimen 6
+%font_extra_space 0pt;
+
+input musikgen
+end
diff --git a/Master/texmf-dist/fonts/source/public/musictex/slur16.mf b/Master/texmf-dist/fonts/source/public/musictex/slur16.mf
new file mode 100644
index 00000000000..04d83c01173
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/slur16.mf
@@ -0,0 +1,230 @@
+% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91)
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN UND (DE)CRESCENDO %
+% %
+% (Phrasierungsbogen und Bogen der Steigung 0) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def drawslurs (expr st) =
+ save i, factor, longueur, height;
+ numeric i, absp, longueur, height, factor;
+ factor:= 1/6;
+ for i= 0 upto 15:
+ longueur := (i+2)*nhw#;
+ height := 0 ;
+
+ beginchar(i, longueur, height, 0);
+ clear;
+ z2r = (w,h);
+ z1l = origin;
+ absp := abs((-h,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2l+factor*(-h,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ % currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke z1e..z3e..z2e; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+def drawslursneg (expr st) =
+ save i, factor, longueur, depth;
+ numeric i, absp, longueur, depth, factor;
+ factor:= 1/6;
+ for i=0 upto 15:
+ longueur := (i+2)*nhw#;
+ depth := longueur*st ;
+
+ beginchar(16+i, longueur, 0, depth);
+ clear;
+ z2l = (w,-d);
+ z1r = origin;
+ absp := abs((d,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2l+factor*(d,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+% currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke (z1e..z3e..z2e) rotatedaround(1/2z2r, 180);
+ endchar;
+ endfor;
+enddef;
+
+def drawleftslur =
+ save i, longueur, height;
+ numeric i, longueur, height;
+ longueur := 9*nhw#;
+ for i = 1 upto 9:
+ height := (i+2)*1/2nhh# ;
+ beginchar(i-1+32, longueur, height, 0);
+ clear;
+ z2r = (w+4thinwidth,h);
+ z1l = origin;
+ penpos1(thinwidth,90);
+ penpos2(5/12beamht,90);
+% currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke z1e..z2e{(2w,0)}; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+def drawrightslur =
+ save i, longueur, height;
+ numeric i, longueur, height;
+ longueur := 9*nhw#;
+ for i= 1 upto 9:
+ height := (i+2)*1/2nhh#;
+ beginchar(i-1+48, longueur, height, 0);
+ clear;
+ z1r = (0-4\thinwidth,h);
+ z2l = (w,0);
+ penpos2(thinwidth,90);
+ penpos1(5/12beamht,90);
+% currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke z1e{right}..z2e; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+def drawleftslurneg =
+ save i, longueur, depth;
+ numeric i, longueur, depth;
+ longueur := 9*nhw#;
+ for i= 1 upto 9:
+ depth := (i+2)*1/2nhh# ;
+ beginchar(i-1+64, longueur, 0, depth);
+ clear;
+ z2l = (w+4thinwidth,-d);
+ z1r = origin;
+ penpos1(thinwidth,90);
+ penpos2(5/12beamht,90);
+ pickup pencircle scaled (1/16mm + blacker);
+ % currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke z1e..z2e{(2w,0)}; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+def drawrightslurneg =
+ save i, longueur, depth;
+ numeric i, longueur, depth;
+ longueur := 9*nhw#;
+ for i= 1 upto 9:
+ depth := (i+2)*1/2nhh#;
+
+ beginchar(i-1+80, longueur, 0, depth);
+ clear;
+ z1l = (0-4\thinwidth,-d);
+ z2r = (w,0);
+ penpos2(thinwidth,90);
+ penpos1(5/12beamht,90);
+% currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ penstroke z1e{right}..z2e; %statt dir 30
+ endchar;
+ endfor;
+enddef;
+
+%decrescendo und cresc.
+def drawcrescendo =
+ save i, height, longueur, depth;
+ numeric i, longueur, height, depth;
+ for i= 0 upto 15:
+ longueur := (i+1)*nhw#;
+ depth := 1/2nhh# ;
+ height := depth ;
+
+ beginchar(i+96, longueur, height, depth);
+ clear;
+ z1 = origin;
+ z2l = (w,h);
+ z3r = (w,-d);
+ penpos2(1/16mm,90);
+ penpos1(1/16mm,90);
+ penpos3(1/16mm,90);
+ pickup pencircle scaled (blacker);
+ penstrike z1e--z2e;
+ penstrike z1e--z3e;
+ endchar;
+ endfor;
+enddef;
+
+def drawdecrescendo =
+ save i, height, longueur, depth;
+ numeric i, longueur, height, depth;
+ for i= 0 upto 15:
+ longueur := (i+1)*nhw#;
+ depth := 1/2nhh# ;
+ height := depth ;
+
+ beginchar(i+112, longueur, height, depth);
+ clear;
+ z1l = (0,h);
+ z2 = (w,0);
+ z3r = (0,-d);
+ penpos2(1/16mm,90);
+ penpos1(1/16mm,90);
+ penpos3(1/16mm,90);
+ pickup pencircle scaled (blacker);
+ penstrike z3e---z2e;
+ penstrike z1e---z2e;
+%label(1,2,3);
+ endchar;
+ endfor;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%
+% Bogen nach oben %
+%%%%%%%%%%%%%%%%%%%
+
+drawslurs(0);
+
+%%%%%%%%%%%%%%%%%%%%
+% Bogen nach unten %
+%%%%%%%%%%%%%%%%%%%%
+
+drawslursneg(0);
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% linge Halbboegen nach oben %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawleftslur;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% rechte Halbboegen nach oben %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawrightslur;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% linke Halbboegen nach unten %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawleftslurneg;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% rechte Halbboegen nach unten %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawrightslurneg;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Crescendo und Decrescendo %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawcrescendo;
+drawdecrescendo;
+
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/slurdd16.mf b/Master/texmf-dist/fonts/source/public/musictex/slurdd16.mf
new file mode 100644
index 00000000000..2bf325cfeb8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/slurdd16.mf
@@ -0,0 +1,41 @@
+% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91)
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN (KONKAV) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+def drawslursneg (expr i, j) =
+ save jj, factor, longueur, depth;
+ numeric jj, absp, longueur, depth, factor;
+ factor:= 1/6;
+ longueur := j*nhw#;
+ depth := i*1/2nhh#;
+ if j<4 : jj := (j*(j-1)+(i-1))*8
+ else: jj := (i-1)*8+(j mod 2)*64+floor((j-2)/2);fi;
+ beginchar(jj, longueur, 0, depth);
+ clear;
+ z2r = (w,-d);
+ z1l = origin;
+ absp := abs((d,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2r+factor*(d,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke (z1e..z3e..z2e) rotatedaround (1/2z2r,180);
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% negative Steigungen %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+for j= 1 upto 17:
+for i= 1 upto min(2j,8):
+drawslursneg(i,j);
+endfor;endfor;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/slurdu16.mf b/Master/texmf-dist/fonts/source/public/musictex/slurdu16.mf
new file mode 100644
index 00000000000..93f677d67bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/slurdu16.mf
@@ -0,0 +1,42 @@
+% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91)
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN (KONVEX) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+def drawslursneg (expr i,j) =
+ save jj, factor, longueur, depth;
+ numeric jj, absp, longueur, depth, factor;
+ factor:= 1/6;
+ longueur := j*nhw#;
+ depth := i*1/2nhh#;
+ if j<4 : jj := (j*(j-1)+(i-1))*8
+ else: jj := (i-1)*8+(j mod 2)*64+floor((j-2)/2);fi;
+ beginchar(jj, longueur, 0, depth);
+ clear;
+ % x2 = w; x1 = 0;
+ z2r = (w,-d);
+ z1l = origin;
+ absp := abs((d,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2r+factor*(d,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke (z1e..z3e..z2e);
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% negative Steigungen %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+for j= 1 upto 17:
+for i= 1 upto min(2j,8):
+drawslursneg(i,j);
+endfor;endfor;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/slurgen.mf b/Master/texmf-dist/fonts/source/public/musictex/slurgen.mf
new file mode 100644
index 00000000000..38f36742d75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/slurgen.mf
@@ -0,0 +1,133 @@
+% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91)
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN %
+% %
+% (Phrasierungsbogen und Bogen der Steigung 0) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def drawslurs (expr st, hflag, istart) =
+ save i, factor, longueur, height, depth;
+ numeric i, absp, longueur, height, depth, factor, bnummer, quotum, quotum#;
+ factor:= 1/6;
+ if hflag = 0 : bnummer:=31; quotum#:=0.5*nhw#; quotum:=0.5*nhw;
+ else : bnummer:=15; quotum#:=nhw#; quotum:=nhw;
+ fi;
+ for i=0 upto bnummer: fulllength:=(i+1)*quotum#;
+ if hflag = 0 : longueur:= fulllength;
+ else : longueur:= fulllength/2;
+ fi;
+
+ depth := 0 ;
+
+ ww:= (i+1)*quotum;
+ hh:=0;
+ dd:=0;
+ absp := abs((-hh,ww));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ height := factor*fulllength;
+
+% modif Ian Collier
+ if (hflag=0) and (i mod 2 = 0):
+ height := height - factor*quotum#
+ fi;
+
+ beginchar(istart+i, longueur, height, depth);
+ clear;
+ z2l = (ww,hh);
+ z1l = origin;
+ z3r = (ww/2,h);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ % currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ if hflag=0 : penstroke z1e..{right}z3e{right}..z2e; fi;
+ if hflag<0 : penstroke z1e..{right}z3e; fi;
+ if hflag>0 :
+ penstroke (z3e{right}..z2e) shifted (-ww/2,0); fi;
+ endchar;
+ endfor;
+enddef;
+
+def drawslursneg (expr st, hflag, istart) =
+ save i, factor, longueur, height, depth;
+ numeric i, absp, longueur, height, depth, factor, bnummer, quotum, quotum#;
+ factor:= 1/6;
+ if hflag = 0 : bnummer:=31; quotum#:=0.5*nhw#; quotum:=0.5*nhw;
+ else : bnummer:=15; quotum#:=nhw#; quotum:=nhw;
+ fi;
+ for i=0 upto bnummer: fulllength:=(i+1)*quotum#;
+ if hflag = 0 : longueur := fulllength;
+ else : longueur:= fulllength/2;
+ fi;
+ height := 0 ;
+
+ ww:= (i+1)*quotum;
+ hh:=0;
+ dd:=0;
+ absp := abs((dd,ww));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ depth:=fulllength*factor;
+
+% modif Ian Collier
+ if (hflag=0) and (i mod 2 = 0):
+ depth := depth - factor*quotum#
+ fi;
+ beginchar(istart+i, longueur, height, depth);
+ clear;
+ z2r = (ww,-dd);
+ z1r = origin;
+ z3l = (ww/2,-d);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+% currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ pickup pencircle scaled (1/16mm + blacker);
+ if hflag=0 : penstroke z1e..{right}z3e{right}..z2e; fi;
+ if hflag<0 : penstroke z1e..{right}z3e; fi;
+ if hflag>0 :
+ penstroke (z3e{right}..z2e) shifted (-ww/2,0); fi;
+ endchar;
+ endfor;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%
+% Bogen nach oben %
+%%%%%%%%%%%%%%%%%%%
+
+drawslurs(0,0,0);
+
+%%%%%%%%%%%%%%%%%%%%
+% Bogen nach unten %
+%%%%%%%%%%%%%%%%%%%%
+
+drawslursneg(0,0,32);
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% linke Halbboegen nach oben %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawslurs(0,-1,64);
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% rechte Halbboegen nach oben %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawslurs(0,1,80);
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% linke Halbboegen nach unten %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawslursneg(0,-1,96);
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% rechte Halbboegen nach unten %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+drawslursneg(0,1,112);
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/slurn16.mf b/Master/texmf-dist/fonts/source/public/musictex/slurn16.mf
new file mode 100644
index 00000000000..3b42e09f668
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/slurn16.mf
@@ -0,0 +1,3 @@
+input musicd16
+input slurgen
+
diff --git a/Master/texmf-dist/fonts/source/public/musictex/slurn20.mf b/Master/texmf-dist/fonts/source/public/musictex/slurn20.mf
new file mode 100644
index 00000000000..b83ddc75a72
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/slurn20.mf
@@ -0,0 +1,3 @@
+input musicd20
+input slurgen
+
diff --git a/Master/texmf-dist/fonts/source/public/musictex/slurud16.mf b/Master/texmf-dist/fonts/source/public/musictex/slurud16.mf
new file mode 100644
index 00000000000..4a8b0d6a10f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/slurud16.mf
@@ -0,0 +1,41 @@
+% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91)
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN (KONKAV) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+def drawslurs (expr i,j) =
+ save jj, factor, longueur, height;
+ numeric jj, absp, longueur, height, factor;
+ factor:= 1/6;
+ height := i*1/2nhh#;
+ longueur := j*nhw#;
+ if j<4 : jj := (j*(j-1)+(i-1))*8
+ else: jj := (i-1)*8+(j mod 2)*64+floor((j-2)/2);fi;
+ beginchar(jj, longueur, height, 0);
+ clear;
+ z2r = (w,h);
+ z1l = origin;
+ absp := abs((-h,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2r+factor*(-h,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke (z1e..z3e..z2e) rotatedaround (1/2z2r,180);
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% positive Steigungen %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+for j= 1 upto 17:
+for i= 1 upto min(2j,8):
+drawslurs(i,j);
+endfor;endfor;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/musictex/sluruu16.mf b/Master/texmf-dist/fonts/source/public/musictex/sluruu16.mf
new file mode 100644
index 00000000000..fe132ce67e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musictex/sluruu16.mf
@@ -0,0 +1,40 @@
+% Change of length into longueur for new modes.mf (Nicolas Brouard 4/11/91)
+input musicdef
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% BOGEN (KONVEX) %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def drawslurs(expr i,j) =
+ save jj,factor, longueur, height;
+ numeric jj, absp, longueur, height, factor;
+ factor:= 1/6;
+ height = i*1/2nhh#;
+ longueur = j*nhw#;
+ if j<4 : jj := (j*(j-1)+(i-1))*8
+ else: jj := (i-1)*8+(j mod 2)*64+floor((j-2)/2);fi;
+ beginchar(jj, longueur, height, 0);
+ clear;
+ z2r = (w,h);
+ z1l = origin;
+ absp := abs((-h,w));
+ if (factor*absp)>2nhh : factor:= 2nhh/absp fi;
+ z3r = 1/2z2l+factor*(-h,w);
+ penpos1(thinwidth,90);
+ penpos2(thinwidth,90);
+ penpos3(5/12beamht,90);
+ currentpen := pencircle xscaled thinwidth yscaled beamht ;
+ penstroke z1e..z3e..z2e; %statt dir 30
+ endchar;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%
+% positive Steigungen %
+%%%%%%%%%%%%%%%%%%%%%%%
+
+for j= 1 upto 17:
+for i= 1 upto min(2j,8):
+drawslurs(i,j);
+endfor;endfor;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/musixps/mxsk.mf b/Master/texmf-dist/fonts/source/public/musixps/mxsk.mf
new file mode 100644
index 00000000000..e667476d9d2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixps/mxsk.mf
@@ -0,0 +1,100 @@
+font_identifier:="mxsk";
+
+mode_setup;
+
+font_size 20pt#;
+
+nhh#:=5pt#;
+nhw#:=6pt#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+font_x_height nhh#;
+font_quad nhw#;
+
+
+%%% terribly written, I know, but this is not a final solution...
+
+%%% 20pt stuff
+
+slurendpen:=max(0.12nhh, 1);
+slurmiddlehalfpen:=max(0.18nhh,1.5);
+
+beginchar(0, 0, 0, 0);
+ z1l = (-12pt, 4pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir-45}z2e);
+endchar;
+
+beginchar(1, 0, 0, 0);
+ z1l = (-12pt, -4pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir45}z2e);
+endchar;
+
+
+%%% 16pt stuff
+
+slurendpen:=max(0.48pt, 1);
+slurmiddlehalfpen:=max(0.72pt,1.5);
+
+beginchar(64, 0, 0, 0);
+ z1l = (-9.6pt, 3.2pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir-45}z2e);
+endchar;
+
+beginchar(65, 0, 0, 0);
+ z1l = (-9.6pt, -3.2pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir45}z2e);
+endchar;
+
+
+
+%%% 13pt stuff
+
+slurendpen:=max(0.4pt, 1);
+slurmiddlehalfpen:=max(0.585pt,1.5);
+
+beginchar(128, 0, 0, 0);
+ z1l = (-7.8pt, 2.6pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir-45}z2e);
+endchar;
+
+beginchar(129, 0, 0, 0);
+ z1l = (-7.8pt, -2.6pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir45}z2e);
+endchar;
+
+
+
+%%% 11pt stuff
+
+slurendpen:=max(0.33pt, 1);
+slurmiddlehalfpen:=max(0.5pt,1.5);
+
+beginchar(192, 0, 0, 0);
+ z1l = (-6.6pt, 2.2pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir-45}z2e);
+endchar;
+
+beginchar(193, 0, 0, 0);
+ z1l = (-6.6pt, -2.2pt); z2l = (0, 0);
+ penpos1(slurmiddlehalfpen,90);
+ penpos2(slurendpen,90);
+ penstroke (z1e{right}..{dir45}z2e);
+endchar;
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musexgen.mf b/Master/texmf-dist/fonts/source/public/musixtex/musexgen.mf
new file mode 100644
index 00000000000..1b73e01bd80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musexgen.mf
@@ -0,0 +1,194 @@
+% this is musexgen.mf
+
+% Here are two types of pianobrackets available, they are absolute compatible,
+% so choose this one you prefer (search for '%!!!')
+
+path p;
+picture save_pic;
+
+pen thin_pen, med_pen;
+thin_pen:= pencircle scaled max(1,.2pt+blacker);
+med_pen:= pencircle scaled med;
+
+%%%%%%%
+message ("<big braces>");
+%%%%%%%
+
+firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm)
+lastbrace:=67; % largest brace is 2*67 pt (\simeq 47mm)
+
+%%% from Stanislav Kneifl
+
+def drawpianobracket (expr height) =
+ u# := 1nhh#/5pt# * 1pt#;
+ v# := (height/40) * 1pt#;
+ define_pixels (u, v);
+% beginchar (height-firstbrace, 1.25nhh#, 0, 0);
+ beginchar (height-firstbrace, 0, 0, 0);
+ z1 = origin;
+ z2 = (4.7u, 7v);
+ z3 = (3.6u, 16.5v);
+ z4 = (1.9u, 25v);
+ z5 = (2.28u, 32v);
+ z6 = (w, 40v);
+ penpos1 (max(1,0.1u), 125);
+ penpos2 (1.2u, 180);
+ penpos3 (3.2u, 195);
+ penpos4 (2.5u, 180);
+ penpos5 (1.14u, 180);
+ penpos6 (max(2,0.3u), 150);
+ penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
+ currenttransform := identity reflectedabout ((0,0),(1,0));
+ penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
+ currenttransform := identity;
+% inserted
+ currentpicture:=currentpicture shifted (round(-1.75nhh), 0);
+%
+ endchar;
+enddef;
+
+def bigbrace(expr v) =
+ beginchar (v-firstbrace, 0, 0, 0);
+ " brace vsize "&decimal round(2v*pt#)&"pt";
+ vwidth:=v*pt;
+ hwidth:=max(.1vwidth,3.25pt);
+ hwidth:=min(hwidth,6.5pt);
+ actwidth:=.035vwidth;
+ x1=.25nhw; y1=vwidth;
+ x2l=-.8hwidth; y2=2/3vwidth;
+ x3r=.2hwidth; y3=1/3vwidth;
+ x4=-hwidth; y4=0;
+ penpos1(max(1,.25pt),-35);
+ penpos2(1.5med+actwidth,40);
+ penpos3(1.75med+actwidth,45);
+ penpos4(max(1,.2pt),-90);
+ penstroke z1e..z2e..z3e..{left+sw}z4e;
+ currentpen:= pencircle; draw z1..z2..z3..{left+sw}z4;
+ addto currentpicture also currentpicture reflectedabout (origin, right);
+ penlabels(1,2,3,4);
+ currentpicture:= currentpicture shifted (round(-.75nhh), 0);
+ endchar;
+enddef;
+
+%!!! comment the line 'bigbrace' and uncomment the line 'drawpianobracket'
+% or leave it like it is !!!
+
+for v=firstbrace upto lastbrace :
+ bigbrace (v);
+% drawpianobracket (v);
+endfor;
+
+%%%%%%%
+message ("<glissandi-elements>");
+%%%%%%%
+% glissando{slide} (slope [degree])
+
+def glissando (expr theta)=
+ x1=-1; y1=0; z2=z1+(.5nhw,0); z3=z1+(nhw+1,0);
+ p:= z1{1.25up+right}..{1.25down+right}z2{1.25down+right}..{1.25up+right}z3;
+ pickup penrazor scaled (.075nhw+thick) rotated (theta+65);
+ draw p rotated theta;
+ labels (1,2,3);
+enddef;
+
+for slope=1 upto 8:
+
+ beginchar(56+slope-1, (cosd(10slope))*nhw#,(sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (10slope)&" degree";
+ glissando (10slope);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(64+slope-1, (cosd(10slope))*nhw#, (sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (-10slope)&" degree";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+
+endfor;
+
+%%%%%%%
+message ("<guitar chords>");
+%%%%%%%
+def tabulatur (expr nd)=
+ hwidth:=1/5w;
+ x1=x2=y2=y3=0; x3=w; y1=-nd;
+ fill unitsquare xscaled (w+2thinwidth) yscaled (med+.2pt)
+ shifted(-thinwidth,0);
+ pickup thin_pen;
+ for v=1 upto 5 :
+ draw (z2--z3) shifted (0,v*-hwidth);
+ endfor;
+
+ for v=0 upto 5 :
+ draw (z1--z2) shifted (v*hwidth,0);
+ endfor;
+ labels (1,2,3);
+enddef;
+
+%beginchar(72, 15/4nhw#, 0, 0);" grid";
+% tabulatur (54/10nhh);
+%endchar;
+
+%beginchar(73, 15/8nhw#, 0, 0); " dot";
+% fill fullcircle scaled .675nhh shifted (w,-.45nhh);
+%endchar;
+
+%beginchar(74, 15/4nhw#, 0, 0); " bar";
+% fill unitsquare xscaled w yscaled .3nhh shifted (0,-.6nhh);
+%endchar;
+
+shift:=.15nhh;
+def Circle (expr nh)=
+ x1l=.1w; x2=x4=.5w; x3l=.9w;
+ y1=y3=.5nh+shift; y2=.1nh+shift; y4=.9nh+shift;
+ penpos1(med, 0);
+ penpos2(thinwidth,90);
+ penpos3(med,180);
+ penpos4(thinwidth, 270);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+ pickup pencircle; draw z1..z2..z3..z4..cycle;
+enddef;
+
+%beginchar(75, 3/4nhw#, 0, 0); " circle";
+% Circle (.9nhh);
+%endchar;
+
+def Cross (expr nh)=
+ x1=x3=.2w; x2=x4=.8w;
+ y1=y4=.2nh+shift; y2=y3=nh-.2nh+shift;
+ pickup med_pen;
+ draw z1--z2; draw z3--z4;
+% labels (1,2,3,4);
+enddef;
+
+%beginchar(76, 3/4nhw#, 0, 0); " cross";
+% Cross (.9nhh);
+%endchar;
+
+%beginchar(77, 3/4nhw#, 0, 0); " blank";
+%endchar;
+
+beginchar(72, 3nhw#, 0, 0);" small grid";
+ tabulatur (108/25nhh);
+endchar;
+
+beginchar(73, 3/2nhw#, 0, 0); " small dot";
+ fill fullcircle scaled .54nhh shifted (w,-.36nhh);
+endchar;
+
+beginchar(74, 3nhw#, 0, 0); " small bar";
+ fill unitsquare xscaled w yscaled .24nhh shifted (0,-.48nhh);
+endchar;
+
+beginchar(75, 3/5nhw#, 0, 0); " small circle";
+ Circle (.72nhh);
+endchar;
+
+beginchar(76, 3/5nhw#, 0, 0); " small cross";
+ Cross (.72nhh);
+endchar;
+
+% the next seems to be senseless, but it isn't
+
+beginchar(77, 3/5nhw#, 0, 0); " small blank";
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musix11.mf b/Master/texmf-dist/fonts/source/public/musixtex/musix11.mf
new file mode 100644
index 00000000000..fd70f02eca5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musix11.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix11";
+
+mode_setup;
+
+font_size 10.24pt#;
+
+nhh#:=2.56pt#;
+nhw#:=3.072pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.064pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musix13.mf b/Master/texmf-dist/fonts/source/public/musixtex/musix13.mf
new file mode 100644
index 00000000000..918db5f01bf
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musix13.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix13";
+
+mode_setup;
+
+font_size 12.8pt#;
+
+nhh#:=3.2pt#;
+nhw#:=3.84pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.08pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musix16.mf b/Master/texmf-dist/fonts/source/public/musixtex/musix16.mf
new file mode 100644
index 00000000000..32dbddd36d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musix16.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix16";
+
+mode_setup;
+
+font_size 16pt#;
+
+nhh#:=4pt#;
+nhw#:=4.8pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.1pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musix20.mf b/Master/texmf-dist/fonts/source/public/musixtex/musix20.mf
new file mode 100644
index 00000000000..0bdebdf3f14
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musix20.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix20";
+
+mode_setup;
+
+font_size 20pt#;
+
+nhh#:=5pt#;
+nhw#:=1.2*nhh#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.125pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musix24.mf b/Master/texmf-dist/fonts/source/public/musixtex/musix24.mf
new file mode 100644
index 00000000000..0b2dc46b713
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musix24.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix24";
+
+mode_setup;
+
+font_size 24pt#;
+
+nhh#:=6pt#;
+nhw#:=1.2nhh#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musix25.mf b/Master/texmf-dist/fonts/source/public/musixtex/musix25.mf
new file mode 100644
index 00000000000..529c7ec7ada
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musix25.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix25";
+
+mode_setup;
+
+font_size 25pt#;
+
+nhh#:=6.25pt#;
+nhw#:=7.5pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musix29.mf b/Master/texmf-dist/fonts/source/public/musixtex/musix29.mf
new file mode 100644
index 00000000000..622aeae27f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musix29.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix29";
+
+mode_setup;
+
+font_size 29pt#;
+
+nhh#:=7.2pt#;
+nhw#:=1.2*nhh#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musixgen.mf b/Master/texmf-dist/fonts/source/public/musixtex/musixgen.mf
new file mode 100644
index 00000000000..a59adfb5678
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musixgen.mf
@@ -0,0 +1,1550 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+% next changes: - redesigning accidentals
+% - new accents
+% - new gregorian symbols
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is musixgen.mf (c)
+%
+% Version T.102 [February 2001]
+% - alternate longa symbol ||O||
+%
+% Version T.70 [March 97]
+% - double shap corrected by Julian Gilbey (strange paths)
+%
+% Version T.59 [September 96]
+% - added one more gregorian symbol (126)
+%
+% Version T.40 [September 95]
+% - corrected gregorianFclef (123)
+%
+% Version 0.37 [March 95]
+% - introduced reverseAllabreve (122)
+%
+% Version 0.25 [December 94]
+% - some new chars
+% - added the beamfonts at pos x+128 to save memory
+% - changed coda to be centered
+% - changed the flags
+% - changed the position of some chars to save time
+%
+% ... - trouble shooting, minor changes
+%
+% Version 0.99b[April 94]
+% - added the new signs from Daniel Taupin
+%
+% Version 0.99 [February 94]
+% -'bravely' changed the tfm informations to save memory
+% - redesigned chars 14, 15, 35, 36, 53, 71, 72, 80, 81, 86, 93
+% - removed * 'never used' chars 37-39, 55-57, 69-70,
+% 77-79, 91-99, 101-119
+% * (de)crescendi 16-23 -> now in musixlin
+% - introduced some new chars 0-11, 16-23, 37-39, 57, 77-79,
+% 99-117
+% - changed the position of some chars to save memory
+%%%%%%%%%%
+% this was musicgen.mf
+%
+% Version 4.89 [September 93] Andreas Egler
+% - blacker influence now
+% - redesigned chars 71, 72, 53, 123
+%
+% Version 4.88 [January 93] Ross Mitchell
+% - redesigned chars 63, 64, 65, 66
+%
+% Version 4.87 [] Daniel Taupin
+%
+% Version 2.00 [] Daniel Taupin
+%
+% Version 1.00 [August 86] Angelika Schofer/Andrea Steinbach
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% free positions: 125-127, 188-191, 252-255
+% heights : 0, 0.5, 1, 1.5, 2.25, 3.25, 4, 4.75, 5.25
+% depths : 0, 0.5, 1, 1.5, 2.25
+
+%{{{ This always indicates a lowres fix to avoid seperated points
+%}}} and/or 'invisible' lines. It doesn't affect higher resolutions !!
+
+pair pone, ptwo;
+transform t;
+path p;
+
+hlthick=.2pt;
+lthick=.4pt;
+
+pen line_pen, med_pen, coda_pen, thin_pen;
+med_pen:= pencircle scaled med;
+line_pen:= pencircle scaled lthick;
+coda_pen:= pencircle xscaled 1.25thick yscaled max(1,.75med);
+thin_pen:= pencircle scaled max(1,.25pt);
+
+apog_fact=.75;
+apog_nhw#=apog_fact*nhw#;
+
+picture save_pic, elem_pic;
+
+%%%%%%%%%%%%%%%
+% basic def's %
+%%%%%%%%%%%%%%%
+
+def savepic = save_pic:= currentpicture enddef;
+def save_elempic = elem_pic:= currentpicture enddef;
+def callpic = currentpicture:= save_pic enddef;
+
+def mirror (expr pone, ptwo) =
+ currentpicture:=currentpicture reflectedabout(round(pone),round(ptwo))
+enddef;
+
+def add_mirror (expr pone, ptwo) =
+ addto currentpicture also currentpicture
+ reflectedabout (round(pone), round(ptwo))
+enddef;
+
+def call_mirror (expr pone, ptwo) = callpic; mirror (pone, ptwo) enddef;
+
+def add_shift (expr pone, ptwo) =
+ addto currentpicture also currentpicture shifted (pone, ptwo)
+enddef;
+
+def call_add_shift (expr pone, ptwo) =
+ callpic; add_shift (pone, ptwo)
+enddef;
+
+def add_elempic (expr pone, ptwo) =
+ addto currentpicture also elem_pic shifted (pone, ptwo)
+enddef;
+
+def call_add_save_elempic (expr pone, ptwo) =
+ callpic; add_elempic(pone, ptwo); savepic
+enddef;
+
+def shift_pic (expr pone, ptwo) =
+ currentpicture:=currentpicture shifted (round(pone),round(ptwo))
+enddef;
+
+def fill_circle (expr diameter, zshift) =
+ fill fullcircle scaled diameter shifted zshift
+enddef;
+
+def fill_square (expr xwidth, ywidth, zshift) =
+ fill unitsquare xscaled xwidth yscaled ywidth shifted zshift
+enddef;
+
+%
+
+def staff=
+ for i=0 upto 4:
+ pickup pencircle yscaled lthick;
+ draw (-5nhw,i*nhh)--(5nhw,i*nhh);
+ endfor
+enddef;
+
+def Staff=
+ for i=0 upto 4:
+ pickup pencircle yscaled lthick;
+ draw (-5nhw,(i*nhh-.5nhh))--(5nhw,(i*nhh-.5nhh));
+ endfor
+enddef;
+
+def upstem=
+ fill_square (lthick, 5nhh, (0,-5nhh))
+enddef;
+
+def downstem=
+ fill_square (lthick, 5nhh, (nhw-hlthick,0))
+enddef;
+
+% eobasicdefs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+%%%%%%%
+message ("<dots & par's>");
+%%%%%%%
+
+beginchar(0, 0, 0, 0); "duration dot"; % correct 3=>0 DT
+ fill_circle (1/3nhh+blacker, (1.5nhw, 0));
+ save_elempic;
+ savepic;
+endchar;
+
+beginchar(1, 0, 0, 0); "double duration dot";
+ call_add_shift (.5nhw, 0);
+ savepic;
+endchar;
+
+beginchar(2, 0, 0, 0); "triple duration dot";
+ callpic;
+ add_elempic (nhw, 0);
+endchar;
+
+beginchar(3, 0, nhh#, nhh#); "left parenthesis"; % correct 0=>3 DT
+ x11=x13=-.1nhw; y12=0; x12=-.3nhw; y11=-y13=-.75nhh;
+ pickup med_pen;
+ draw z11..z12..z13;
+ savepic;
+endchar;
+
+beginchar(4, 0, nhh#, nhh#); "right parenthesis";
+ call_mirror ((.5nhw,0),(.5nhw,1));
+endchar;
+
+beginchar(5, 0, nhh#, nhh#); "cautionary parentheses";
+ callpic;
+ add_mirror ((.3nhw, 0),(.3nhw, 1));
+endchar;
+
+beginchar(6, 0, nhh#, nhh#); "cautionary wide parentheses";% -> bb
+ callpic;
+ add_mirror ((.55nhw, 0),(.55nhw, 1));
+endchar;
+
+%%%%%%%
+message("<accents>");
+%%%%%%%
+
+beginchar(120, 0, 1.5nhh#, 0); "harmonics";
+ pickup thin_pen;
+ draw fullcircle scaled .5nhw shifted (.5nhw, nhh);
+endchar;
+
+%beginchar(XX, 0, 1.5nhh#, 0); "???";
+% x1=0; x2=.5nhw; x3=nhw-x1; x3=x4+.25nhw; x6=x1+med;
+% y1=y6=y4=y3=nhh; y2=y1+nhh;
+% z5-z6=whatever*(z2-z1);
+% z5-z4=whatever*(z2-z3);
+% fill z1--z2--z3--z4--z5--z6--cycle;
+% fill_circle (thick, ((x5,y1+.5thick)));
+% savepic;
+%endchar;
+
+beginchar(20, 0, 2.25nhh#, 0); "upper sforzato";
+ x1=1/12nhw; x2=.5nhw; x3=nhw-x1; x3=x4+.25nhw; x6=x1+med;
+ y1=y6=y4=y3=nhh; y2=y1+nhh;
+ z5-z6=whatever*(z2-z1);
+ z5-z4=whatever*(z2-z3);
+ fill z1--z2--z3--z4--z5--z6--cycle;
+ savepic;
+endchar;
+
+beginchar(21, 0, 0, 2.25nhh#); "lower sforzato";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(22, 0, nhh#, 0); "downbow";
+ fill_square (thin, nhh, (-thin, .4nhh));
+ fill_square (.5nhw+thin+1, .8beamht+thin, (-thin, nhh));
+ add_mirror ((.5nhw,0),(.5nhw,1));
+endchar;
+
+beginchar(23, 0, 1.5nhh#, 0); "upbow";
+ pickup med_pen;
+ draw (.15nhw, 1.7nhh)--(.5nhw, .2nhh);
+ add_mirror ((.5nhw,0),(.5nhw,1));
+endchar;
+
+beginchar(24, 0, nhh#, 0); "upper staccato";
+ fill_circle (.275nhw+blacker, (.5nhw, nhh));
+ savepic;
+endchar;
+
+beginchar(25, 0, 0, nhh#); "lower staccato";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(18, 0, nhh#, 0); "upper tenuto/staccato";
+ fill_square (nhw, 1.25med, (0, 1.2nhh-.625med));
+ fill_circle (.275nhw+blacker, (.5nhw, .9nhh));
+ savepic;
+endchar;
+
+beginchar(19, 0, 0, nhh#); "lower tenuto/staccato";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(26, 0, nhh#, 0); "upper portato (tenuto)";
+ fill_square (nhw, 1.25med, (0, nhh-.625med));
+ savepic;
+endchar;
+
+beginchar(27, 0, 0, nhh#); "lower portato (tenuto)";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(28, 0, 1.5nhh#, 0); "upper staccatissimo";
+ rayon:= thin+.125nhh;
+ x1=x3=x2+rayon=x4-rayon=.5nhw;
+ y2=y4=y1-rayon=y3+.5nhh=1.15nhh;
+ fill z3--z4{up}..z1..{down}z2--cycle;
+ savepic;
+endchar;
+
+beginchar(29, 0, 0, 1.5nhh#); "lower staccatissimo";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(30, 0, 2.25nhh#, 0); "upper marcato";
+ pickup med_pen;
+ draw (-.2nhw, 1.9nhh)--(1.2nhw, 1.5nhh)--(-.2nhw, 1.1nhh);
+ savepic;
+endchar;
+
+beginchar(31, 0, 0, 2.25nhh#); "lower marcato";
+ call_mirror (origin, right);
+endchar;
+
+%%%%%%%
+message ("<noteheads>");
+%%%%%%%
+
+NHW=nhw+hlthick;
+
+beginchar(7, 0, .5nhh#, .5nhh#); "quarter note";
+% makeshift, expedience
+if pixels_per_inch=600:
+ if NHW>50: corNHW=1.04*NHW; else: corNHW=1.04*NHW+1; fi
+ fill fullcircle xscaled corNHW yscaled 1.85h
+ rotated 20 shifted (.5NHW-.5, 0);
+else:
+ corNHW=1.065*NHW;
+ fill fullcircle xscaled corNHW yscaled 1.85h
+ rotated 20 shifted (.5NHW, 0);
+fi
+endchar;
+
+beginchar(8, 0, .5nhh#, .5nhh#); "half note";
+ penpos1(max(1,2hlthick), 0);
+ penpos3(max(1,2hlthick), 180);
+ penpos2(thick,-90);
+ penpos4(thick, 90);
+ -x1l = .53NHW;
+ x3l = .5NHW;
+ x2 = x4 = y1 = y3 = 0;
+ y2l =-y4l = h;
+ penstroke (z1e{up}..z2e{right}..z3e{down}..z4e{left}..cycle)
+ rotated 20 shifted (.5NHW, 0);
+endchar;
+
+beginchar(9, 0, .5nhh#, .5nhh#); "whole note";
+ x1= y1 = y3 = y5 = y7 = 0;
+ x3= 2x2 = 2x4 = 2x6 = 2x8 = 5/4nhw;
+ y2=-y4 = h;
+ x5= x3-x7 = x1+.375nhw-blacker;
+ y6=-y8 = y2-.1thin;
+ fill z1{curl3}..z2..{curl3}z3{curl3}..z4..{curl3}cycle;
+ unfill (z5..z6..z7..z8..cycle) rotatedaround ((x2,0), 45) shifted (.5,.5);
+%{{{
+ currentpen:= pencircle;
+ draw rt z1{curl3}..bot z2..{curl3}lft z3{curl3}..top z4..{curl3}cycle;
+%}}}
+ labels(range 1 thru 8);
+ savepic;
+endchar;
+
+beginchar(56, 0, .5nhh#, .5nhh#); "whole note with | --> |O|";
+ callpic;
+ fill_square (.6thick, nhh, (-.55thick,-.5nhh));
+ fill_square (.6thick, nhh, (5/4nhw-.05thick,-.5nhh));
+endchar;
+
+beginchar(127, 0, .5nhh#, .5nhh#); "whole note with || --> ||O||";
+ callpic;
+ fill_square (.6thick, nhh, (-.55thick,-.5nhh));
+ fill_square (.6thick, nhh, (5/4nhw-.05thick,-.5nhh));
+ fill_square (.6thick, nhh, (-1/4nhw-.55thick,-.5nhh));
+ fill_square (.6thick, nhh, (6/4nhw-.05thick,-.5nhh));
+endchar;
+
+beginchar(32, 0, .5nhh#, .5nhh#); "brevis";% 2 whole notes
+ fill_square (5/4nhw, .25nhh, (0,.25nhh));
+ add_mirror (origin, right);
+ x1=x2=0; x3=x4=5/4nhw; y1=-y2=y3=-y4=.7nhh;
+ pickup line_pen;
+ draw z1--z2; draw z3--z4;
+ savepic;
+endchar;
+
+beginchar(39, 0, .5nhh#, .5nhh#); "longa";% 4 whole notes
+ callpic;
+ pickup line_pen;
+ draw (5/4nhw,-.7nhh)--(5/4nhw,-1.7nhh);
+endchar;
+
+beginchar(36, 0, .5nhh#, .5nhh#); "maxima";% 8 whole notes
+ fill_square (5/2nhw, .3nhh, (0,.2nhh));
+ add_mirror (origin, right);
+ pickup line_pen;
+ draw (0,.7nhh)--(0,-.7nhh); draw (5/2nhw,.7nhh)--(5/2nhw,-1.7nhh);
+endchar;
+
+beginchar(37, 0, .5nhh#, .5nhh#); "filled diamond";% -> triangle
+ fill unitsquare scaled (.5*sqrt(2)*NHW) rotated -45;
+endchar;
+
+def square (expr mw)=
+ fill_square (sqrt(2)*.5mw, max(1,thin), origin) rotated -45;
+ fill_square (sqrt(2)*.5mw, .15nhw, (0,-.15nhw)) rotated 45;
+ save_elempic;
+ mirror (origin,up);
+ mirror (origin,left);
+ shift_pic (mw+.5,0);
+ add_elempic(0,0);
+% mirror (origin,right);% I've seen this too, somewhere ...
+enddef;
+
+beginchar(38, 0, .5nhh#, .5nhh#); "unfilled diamond";% -> rimshot
+ square (NHW);
+endchar;
+
+beginchar(99, 0, .5nhh#, .5nhh#); "oldstyle quarter notehead up";
+ x1=x4=0; x2=x3=NHW; y1=y2=-y3=-y4=h-hlthick;
+ fill z1{dir-10}..z2--z3{dir-170}..z4--cycle;
+ savepic;
+endchar;
+
+beginchar(100, 0, .5nhh#, .5nhh#); "oldstyle quarter notehead down";
+ call_mirror(origin, right);
+endchar;
+
+beginchar(101, 0, .5nhh#, .5nhh#); "oldstyle half notehead up";
+ pthick:=.2nhh;
+ x1=0; x2=NHW; y1=y2=h-.5pthick+hlthick;
+ pickup penrazor scaled pthick rotated 90;
+ draw z1{dir-10}..z2;
+ add_shift (0, -nhh+pthick);
+ fill_square (lthick, nhh-hlthick, (0, -h+hlthick));
+ fill_square (lthick, nhh-hlthick, (nhw-hlthick, -h+hlthick));
+ savepic;
+endchar;
+
+beginchar(102, 0, .5nhh#, .5nhh#); "oldstyle half notehead down";
+ call_mirror(origin, right);
+endchar;
+
+beginchar(111, 0, .5nhh#, .5nhh#); "cross"; % -> closed hihat
+ x1=0; x2=nhw; y1=-.5nhw; y2=-y1;
+ pickup med_pen;
+ draw top rt z1--bot lft z2;
+ add_mirror((.5nhw,0),(.5nhw,1));
+ savepic;
+endchar;
+
+beginchar(112, 0, .5nhh#, .5nhh#); "halfcircled cross";% -> halfclosed hihat
+ callpic;
+ pickup thin_pen;
+ draw halfcircle scaled nhw shifted (.5nhw,0);
+endchar;
+
+beginchar(113, 0, .5nhh#, .5nhh#); "circled cross";% -> open hihat
+ callpic;
+ pickup thin_pen;
+ draw fullcircle scaled nhw shifted (.5nhw,0);
+endchar;
+
+def doublesharp (expr mw, xshift)=
+ x1=y2=x3=0; y1=x2=y4=.5mw; y3=.5mw-x4=.1mw;
+ z4'=.925[z3,z4]; z3'=.925[z4,z3]; % ***
+ penpos2(max(1,thin),45);
+%%% a 'nicer' look for 'high'res-printers gives
+if pixels_per_inch > 500:
+ fill z1..{dir-125}z3'{dir35}..{se}z2l--z2r--(z1+(eps,0))--cycle;
+ fill z1..{dir35}z4'{dir-125}..{se}z2r--z2l--(z1-(eps,0))--cycle; % ***
+else :
+%%% but this causes 'strange path' on lower resolutions
+ fill z1..{dir-110}z3'{dir30}..{se}z2l--z2r--(z1+(eps,0))--cycle;
+ fill z1..{dir20}z4'{dir-120}..{se}z2r--z2l--(z1-(eps,0))--cycle; % ***
+fi
+%{{{
+ currentpen:= pencircle; draw z1--(x2+1,y2-1);% draw (x3'+1,y3'+1)--z5';
+%}}}
+% add_mirror ((0,.5mw),(.5mw,0)); % ***
+ add_mirror ((.5mw,-.5mw),(.5mw,.5mw));
+ add_mirror (origin, right);
+ shift_pic (xshift, 0);
+enddef;
+
+beginchar(114, 0, .5nhh#, .5nhh#); "doublesharp notehead";% -> ride cymbal
+ doublesharp (.95nhw,0.025nhw);
+ savepic;
+endchar;
+
+beginchar(115,0, .5nhh#, .5nhh#);"circled doublesharp notehead";%->crash cymbal
+ callpic;
+ pickup thin_pen;
+ draw fullcircle scaled nhw shifted (.5nhw,0);
+endchar;
+
+beginchar(116, 0, .5nhh#, .5nhh#); "triangle";% -> rattle
+ x1=y1=y2=0; x2=2x3=nhw; y3=.8h;
+ pickup med_pen;
+ draw z1--z2--z3--z1;
+endchar;
+
+beginchar(117, 0, .5nhh#, .5nhh#); "bongo cross";
+ pickup med_pen;
+ draw (0,0)--(nhw,0);
+ draw (0.5nhw,-0.5nhw) -- (0.5nhw,0.5nhw);
+endchar;
+
+beginchar(118, 0, .5nhh#, .5nhh#); "rhombus";% -> shaker
+ x1=x4=y2=y4=0; y1=-y3=-h; x2=x3=NHW;
+ fill z1--z2--z3--z4--cycle;
+endchar;
+
+beginchar(95, 0, .5nhh#, .5nhh#); "gregorian square";
+ x1=x4=0; x2=x3=gregwidth; y1=y2=-y3=-y4=.5gregwidth-lthick;
+ fill z1{dir 15}..z2--z3{dir 165}..z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+endchar;
+
+beginchar(96, 0, .5nhh#, .5nhh#); "gregorian square left";
+ callpic;
+ fill_square (med, 1.5nhh,(0, -1.5nhh));
+endchar;
+
+beginchar(97, 0, .5nhh#, .5nhh#); "gregorian square right";
+ callpic;
+ fill_square (med, 1.5nhh,(gregwidth-med, -1.5nhh));
+ savepic;
+endchar;
+
+beginchar(124, 0, .5nhh#, .5nhh#); "porrectus";
+ x1=x4=0; x2=x3=2.5*gregwidth; y1=-y4=.5gregwidth-lthick; y2=y1-nhh; y3=y4-nhh;
+ fill z1..{right}z2--z3{left}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -1.5nhh));
+endchar;
+
+beginchar(125, 0, .5nhh#, .5nhh#); "quilisma";
+ qdecalage:=.12*gregwidth;
+ x1=x4=-0.2*gregwidth; x2=x3=1.2*gregwidth;
+ y1+qdecalage=y2-qdecalage=.5gregwidth-lthick;y1=-y3; y2=-y4;
+ fill z1--z2--z3--z4--cycle;
+ pickup med_pen;
+
+ draw z4--(z1+0.4*(z1-z4));
+ draw (0.667z4+0.333z3)--((0.667z1+0.333z2)+0.4*(z1-z4));
+ draw (0.333z4+0.667z3)--((0.333z1+0.667z2)+0.4*(z1-z4));
+ draw z3--(z2+0.4*(z1-z4));
+ shift_pic(0,-hlthick);
+endchar;
+
+beginchar(126, 0, .5nhh#, .5nhh#); "mirrored gregorian square";
+ x1=x4=0; x2=x3=gregwidth; y1=y2=-y3=-y4=-.5gregwidth+lthick;
+ fill z1{dir -15}..z2--z3{dir -165}..z4--cycle;
+ shift_pic(0,+hlthick);
+endchar;
+
+
+
+%%%%%%%
+message ("<flags>");
+%%%%%%%
+
+flagw:=.8nhw;
+flagthick:=nhh;
+flagthin:=5thinwidth;
+
+def flagshape
+(expr contflag, width, height, flgthick, flgthin, shifty, flagsense) =
+ penpos1(flgthick+blacker, 90); % .1
+ penpos2(3.25flgthin+blacker, 70);%
+ x1 = 0; % .2
+ y1 = height+shifty-.5flgthick; %
+ x2 = 3/8width; % .3
+ y2 = y1-.45flgthick; %
+ x3 = width-flgthin/2; % .4(.4)
+ y3 = y1-1.5flgthick;
+
+ if contflag=1: x4 = x3-.4width; y4 = shifty;
+ else: x4 = x3; y4 = 2.5flagthick-2flgthick; fi
+ if flagsense>0: penpos3(1.15flgthin, 35);
+ else: penpos3(.8flgthin, 0); fi
+
+ penstroke z1e..z2e..z3e{down}..z4;
+%{{{
+ currentpen:= pencircle; draw lft z1..z2..z3{down}..z4;
+%}}}
+ penlabels(1,2,3,4)
+enddef;
+
+def mirror_flag(expr sense)= if sense<0: mirror((0,h/2),(1,h/2));fi enddef;
+
+def cflag (expr sense) =
+ flagshape(1, flagw, 3nhh, flagthick, flagthin, 0, sense);
+ mirror_flag(sense);
+ savepic;
+enddef;
+
+def ccflag (expr sense) =
+ flagshape(5, flagw, 2.25nhh, 2/3flagthick, flagthin, flagthick, sense);
+ save_elempic;
+ clearxy;
+ flagshape(1, flagw, 2.5nhh, 2/3flagthick, flagthin, 0, sense);
+ savepic;
+ mirror_flag(sense);
+enddef;
+
+def addflag (expr sense, shifty) =
+ call_add_save_elempic (0, shifty*.75flagthick);
+ mirror_flag(sense);
+enddef;
+
+def cccflag (expr sense) = addflag(sense, 1) enddef;
+def ccccflag (expr sense) = addflag(sense, 2) enddef;
+def cccccflag (expr sense) = addflag(sense, 3) enddef;
+
+beginchar(40, 0, 3.25nhh#, 0); "8th flag up";
+ cflag(1);
+ shift_pic (0, .5nhh+.5);
+endchar;
+
+beginchar(12, 0, 3.25nhh#, 0); "acciacaturra stem up";
+ callpic;
+ pickup med_pen;
+ x1=-.25nhw; y1=.2h; x2=1.1nhw; y2=y1+.6(x2-x1);
+ draw z1--z2;
+ shift_pic (0, .5nhh+.5);
+endchar;
+
+beginchar(41, 0, 3.25nhh#, 0); "16th flag up";
+ ccflag(1);
+ shift_pic (0, .25nhh);
+endchar;
+
+beginchar(42, 0, 4nhh#, 0); "32th flag up";
+ cccflag(1);
+ shift_pic (0, .25nhh);
+endchar;
+
+beginchar(43, 0, 4.75nhh#, 0); "64th flag up";
+ ccccflag(1);
+ shift_pic (0, .25nhh);
+endchar;
+
+beginchar(44, 0, 5.5nhh#, 0); "128th flag up";
+ cccccflag(1);
+ shift_pic (0, .25nhh);
+endchar;
+
+%%%
+% flags up should be wider
+%%%
+flagw:=nhw;
+
+beginchar(45, 0, 3.25nhh#, 0); "8th flag down";
+ cflag(-1);
+ shift_pic (0,-.5nhh-.5);
+endchar;
+
+beginchar(13, 0, 3.25nhh#, 0); "acciacaturra stem down";
+ callpic;
+ pickup med_pen;
+ x1=-.25nhw; y1=1.6nhh; x2=1.2nhw; y2=y1+.6(x2-x1);
+ draw z1--z2;
+ shift_pic (0,-.5nhh-.5);
+endchar;
+
+beginchar(46, 0, 3.25nhh#, 0); "16th flag down";
+ ccflag(-1);
+ shift_pic (0,-.25nhh);
+endchar;
+
+beginchar(47, 0, 4nhh#, 0); "32th flag down";
+ cccflag(-1);
+ shift_pic (0,-.25nhh);
+endchar;
+
+beginchar(48, 0, 4.75nhh#, 0); "64th flag down";
+ ccccflag(-1);
+ shift_pic (0,-.25nhh);
+endchar;
+
+beginchar(49, 0, 5.5nhh#, 0); "128th flag down";
+ cccccflag(-1);
+ shift_pic (0,-.25nhh);
+endchar;
+
+%%%%%%%
+message("<accidentals>");
+%%%%%%%
+
+def flat (expr reduction, shiftx, flatsense) =
+ fthick:= reduction*thick;
+ penpos4(4/3fthick,0); % 1
+ penpos3(1/2fthick,-90); %
+ penpos6(4/7fthick,90); % 6
+ x1 = x2 = x3 = x5 = fthick; % / \
+ y1 = 6fthick; y2 = .5y4; % 2 4
+ y3l=-2fthick; y5 = y3r; % /
+ x4 = 3.6fthick; y4 = .1fthick; % 3,5
+ y6r= 2fthick; x6 = .5(x2+x4);
+ t:= identity shifted (round(shiftx),0);
+ p:= (z1--z5) transformed t;
+ pickup penrazor scaled max(1,(2sind40*thin)) rotated 40;
+ draw p;
+ penstroke (z2..{right}z6e..z4e{sw+down}..{sw}z3e) transformed t;
+ if flatsense<0: mirror (z5 transformed t, z1 transformed t); fi
+ penlabels (1,2,3,4,5,6)
+enddef;
+
+beginchar(50, nhw#, 1.5nhh#, .5nhh#); "flat";
+ flat (1, 0, 1);
+ savepic;
+endchar;
+
+beginchar(51, 1.7nhw#, 1.5nhh#, .5nhh#); "doubleflat";
+ call_add_shift (.7nhw, 0);
+endchar;
+
+def sharp (expr reduction, zshift) =
+ sthick:= .5reduction*thick;
+ nx:= reduction*1.5nhh;
+ ny:= reduction*.8nhw;
+ y1 =-y7= nx-1.5sthick; y2 =-y8 = .5sthick-nx;
+ x1 = x2 = y3 = -y6 = ny-x7 = ny-x8 = 2sthick;
+ y4 =-y5 = y3 + 3sthick;
+ x3 = x5 = 0; x4 = x6 = ny;
+ pickup penrazor scaled max(1,thin) rotated angle(z4-z3);
+ draw z1--z2; draw z8--z7;
+ pickup penrazor scaled 3sthick rotated 90;
+ draw z3--z4; draw z5--z6;
+ shift_pic (zshift, 0);
+ labels (range 1 thru 8)
+enddef;
+
+beginchar(52, nhw#, 1.5nhh#, 1.5nhh#); "sharp";
+ sharp (1, 0);
+endchar;
+
+beginchar(53, nhw#, .5nhh#, .5nhh#); "doublesharp";
+ doublesharp (w, -.1nhw);
+endchar;
+
+def natural (expr reduction, zshift) =
+ ny:= .8nhw*reduction;
+ nthick:= 3/4reduction*thick;
+ x1 = x2 = x3 = nthick+.5thin;
+ x5 = x6 = x4 = ny-x1;
+ y1 = -y6 = 1.5nhh*reduction;
+ y2 = -y5 = 1.6nthick;
+ y4 = -y3 = y2+4/3nthick;
+ pickup penrazor scaled max(1,thin) rotated angle(z4-z2);
+ draw lft z1--bot lft(x3,y3-nthick);
+ draw top rt(x4,y4+nthick)--rt z6;
+ pickup penrazor scaled 2nthick rotated 90;
+ draw (x2-.5,y2)--(x4+.5,y4);
+ draw (x3-.5,y3)--(x5+.5,y5);
+ shift_pic (zshift, 0);
+ labels(1,2,3,4,5,6)
+enddef;
+
+beginchar(54, nhw#, 1.5nhh#, 1.5nhh#); "natural";
+ natural (1, 0);
+endchar;
+
+beginchar(90, apog_nhw#, nhh#, .5nhh#); "small flat";
+ flat (apog_fact, -.05nhw, 1);
+ savepic;
+endchar;
+
+beginchar(91, 1.65apog_nhw#, nhh#, .5nhh#); "small doubleflat";
+ call_add_shift (.7apog_fact*nhw,0);
+endchar;
+
+beginchar(92, apog_nhw#, nhh#, nhh#); "small sharp";
+ sharp (apog_fact, 0);
+endchar;
+
+beginchar(93, apog_nhw#, .5nhh#, .5nhh#); "small doublesharp";
+ doublesharp (w, -.075nhw);
+endchar;
+
+beginchar(94, apog_nhw#, nhh#, nhh#); "small natural";
+ natural (apog_fact, 0);
+endchar;
+
+%%%%%%%
+message ("<rests>");
+%%%%%%%
+
+beginchar(59, .5nhw#, 0, 0); "ddp";% doubledouble (4) pause
+ fill_square (.5nhw, 2nhh, (0, nhh));
+endchar;
+
+beginchar(58, .5nhw#, 0, 0); "dp";% double (2) pause
+ fill_square (.5nhw, nhh, (0, 2nhh));
+ savepic;
+endchar;
+
+beginchar(60, 5/4nhw#, .5nhh#, 0); "half rest";
+ fill_square (5/4nhw, .5nhh, (0, 0));
+ savepic;
+endchar;
+
+beginchar(10, 0, .5nhh#, 0); "half rest outside a staff";
+ callpic;
+ fill_square (2nhw, lthick, (-.375nhw, -hlthick));
+ savepic;
+endchar;
+
+beginchar(11, 0, 0, .5nhh#); "full rest outside a staff";
+ call_mirror(origin,right);
+endchar;
+
+beginchar(61, 5/4nhw#, 0, .5nhh#); "full rest";
+ fill_square (5/4nhw, .5nhh, (0, -.5nhh));
+endchar;
+
+beginchar(62, 0, 4nhh#, 0); "quarter rest";
+ rthin:= 1/8 nhh; % .1
+ rthick:= 2 thick+rthin; % .2
+ alpha:= -50; % .3
+ penpos1(rthin, 90+alpha); % .4
+ penpos5(rthin, alpha); % .5,10
+ penpos2(rthick, alpha); % .6
+ penpos4(rthick, alpha); %
+ penpos3(3/4rthick, alpha); % .7
+ penpos6(4/3thick, alpha);
+ penpos7(rthin, 45);
+ y1l = 4nhh - 1/2nhh;
+ x1l = 1/2nhh;
+ z2r = z1 +(nhh* right) rotated alpha;
+ z3 = 1/2[z2,z4];
+ z4 = (nhw,4nhh) scaled .55;
+ z5 = z4l+(nhh* right) rotated alpha;
+ x6l = x4l; y6r = 1.45nhh;
+ x7 = .9nhw; y7= nhh-1/8nhh;
+ z10 = z5r shifted (sqrt(2)*rthin/4,sqrt(2)*rthin/4);
+
+ pickup penrazor scaled rthin rotated 45;
+ draw z1--z2r; draw z4l--z10;
+ penstroke z2e..z3e..z4e;
+ penstroke z5e..z6e..z7e;
+ penlabels(1,2,3,4,5,6,7,10);
+ shift_pic (-.2nhw, 0);
+endchar;
+
+%%%
+% Draw the crook needed for quaver rests and shorter.
+% The crook extends left from the point z.i on the stem.
+%%%
+def crook(text i)=
+ forsuffixes $=i:
+ x3:=x.$-6.5fact; y3:=top y.$- 3fact;
+ x4:=x.$-6fact; y4:= y.$+.5fact;
+ draw z.${dir 240}..{dir 160}z3;
+ filldraw z3{dir 160}..z4{dir-20}..{dir 160}z3..cycle;
+ endfor
+enddef;
+
+beginchar(63, 0, 3.25nhh#, 0); "8th rest";
+ z1=(nhh,nhh);
+ z2-z1=whatever*dir 70; % Angle the stem at 70 degrees.
+%%%
+% Define the scaling factor `fact' implicitly.
+% This value will be used for the shorter rests as well.
+%%%
+ z2-z1=(5fact,1.7nhh);
+ pickup med_pen;
+ draw z1..z2;
+ crook(2);
+ shift_pic (-.35nhw, 0);
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(64, 0, 3.25nhh#, 0); "16th rest";
+ z1=(nhh,0);
+ z2-z1=whatever*dir 75; % Angle the stem at 75 degrees.
+ y2-y1=2.7nhh;
+ z5-z2=whatever*(z1-z2); y5=y2-nhh;
+ pickup med_pen;
+ draw z1..z2;
+ crook(2,5);
+ shift_pic (-.35nhw, 0);
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(65, 0, 4nhh#, 0); "32th rest";
+ z1=(nhh,0);
+ z2-z1=whatever*dir 80; % Angle the stem at 80 degrees.
+ y2-y1=3.7nhh;
+ z5-z2=whatever*(z1-z2); y5=y2-nhh;
+ z6-z2=whatever*(z1-z2); y6=y5-nhh;
+ pickup med_pen;
+ draw z1..z2;
+ crook(2,5,6);
+ shift_pic (-.35nhw, 0);
+ penlabels (1,2,3,4,5,6);
+endchar;
+
+beginchar(66, 0, 4.75nhh#, 0); "64th rest";
+ z1=(nhh,0);
+ z2-z1=whatever*dir 82; % Angle the stem at 82 degrees.
+ y2-y1=4.7nhh;
+ z5-z2=whatever*(z1-z2); y5=y2-nhh;
+ z6-z2=whatever*(z1-z2); y6=y5-nhh;
+ z7-z2=whatever*(z1-z2); y7=y6-nhh;
+ pickup med_pen;
+ draw z1..z2;
+ crook(2,5,6,7);
+ shift_pic (-.35nhw, 0);
+ penlabels (1,2,3,4,5,6,7);
+endchar;
+
+%%%%%%%
+message ("<clefs>");
+%%%%%%%
+
+def violin(expr reduction) =
+ gx:=reduction*-nhw;
+ gy:=reduction*nhh;
+ gthick:=1.5reduction*thick;
+ gthin:=.75reduction*med;
+
+ x1=31/24gx+w; x4=23/24gx+w; x2=x10=3/4gx+w; x3r=w; x8l=15/16gx+w;
+ x5=x11r=15/8gx+w; x6=gx+w; x7=5/8gx+w; x9=5/4gx+w;
+ y1=5/8gy; y2r=y5r=2gy; y3=gy; y4r=0; y6=27/8gy;
+ y7l=5gy; y8l=11/2gy; y9=17/4gy; y10=y11=-7/8gy;
+ penpos1(gthin,160);
+ penpos2(gthick,90);
+ penpos3(gthick,0);
+ penpos4(5/4gthin,-90);
+ penpos5(3/2gthick,110);
+ penpos6(17/16gthick,130);
+ penpos7(gthin,-140);
+ penpos8(5/4gthick,-80);
+ penpos9(3/8gthick,0);
+ penpos10(gthin,0);
+ penpos11(1/2gthick,180);
+ penstroke z1e{nw}..z2e..z3e..z4e..z5e{up+ne}..z6e..{up+nw}z7e
+ ..z8e{sw}..{down}z9e{down}..{down}z10e..z11e;
+%{{{
+ currentpen:= pencircle;
+ draw z1{nw}..z2..z3..z4..z5{up+ne}..z6..{up+nw}z7
+ ..z8{sw}..{down}z9{down}..{down}z10..z11;
+%}}}
+ fill_circle ((3(x2-x4)), (x11+11/40gy, y11));
+ penlabels(range 1 thru 11)
+enddef;
+
+%beginchar(71, 8/3nhw#, 5.5nhh#, 1.5nhh#); "G-clef";
+beginchar(71, 8/3nhw#, 4.5nhh#, 2.5nhh#); "G-clef";
+ violin(1);
+% shift_pic (-.2nhw, 0); % T.59
+ shift_pic (-.2nhw, -nhh); % T.60
+endchar;
+
+%beginchar(72, 7/3nhw#, 3nhh#, 2nhh#); "small G-clef";
+beginchar(72, 7/3nhw#, 3nhh#, 3nhh#); "small G-clef";
+ violin(.8);
+% shift_pic (-.3nhw, 0); %T.59
+ shift_pic (-.3nhw, -nhh); %T.60
+endchar;
+
+def bass (expr reduction) =
+ fx:=reduction*nhw;
+ fy:=reduction*nhh;
+ fthick:=reduction*thick;
+
+ x2=.8fx; y2=3nhh;
+ x1=x2r+.26fx; y1=y2;
+ x3=x2+.71fx; y3r=y2+1fy;
+ x4=x3+.71fx; y4=y2-.2fy;
+ x6=x2-6reduction*thinwidth; y6=y2-2.2fy;
+ x7=x4+.50fx; y7=y2+.38fy;
+
+ penpos2(.6fthick,180);
+ penpos3(.6fthick, 90);
+ penpos4(2fthick,0);
+ penpos6(.4fthick,-10);
+
+ fill_circle (.35fx, z7);
+ add_mirror ((0,y2), (1,y2));
+ fill_circle ((2(x2r-x1)), z1);
+
+ penstroke z2e{up}..{right}z3e{right}..{down}z4e{down}..{left+.1down}z6e;
+%{{{
+ currentpen:= pencircle;
+ draw z2{up}..{right}z3{right}..{down}z4{down}..{left+.1down}z6;
+%}}}
+ penlabels(1,2,3,4,6)
+enddef;
+
+beginchar(73, 8/3nhw#, 4nhh#, 0); "F-clef";
+ bass(1);
+% shift_pic (-.35nhw, 0); % T.59
+ shift_pic (-.35nhw, -3nhh); % T.60
+endchar;
+
+beginchar(74, 7/3nhw#, 4nhh#, 0); "small F-clef";
+ bass(.8);
+% shift_pic (-4/15nhw, 0); % T.59
+ shift_pic (-4/15nhw, -3nhh); % T.59
+endchar;
+
+def alt(expr reduction, yshift) =
+ nh:=h*reduction;
+ athick:=1/10nh;
+ ahigh:=1/2nh;
+ radius:=5/4thick*reduction;
+
+ x4=13/16nh+3thinwidth; x5=9/16nh;
+ x6=1/2nh; x9=x10=2/3nh; x11=17/32nh;
+ y4=yshift+31/50ahigh; y5=yshift+1/2ahigh;
+ y6=yshift; y9=yshift+1/9ahigh;
+ y10=yshift+ahigh; y11=yshift+11/14ahigh;
+ penpos4(athick,180);
+ penpos5(1/8athick,0);
+ penpos6(athick,0);
+ penpos9(1/3athick,90);
+ penpos10(1/3athick,-90);
+ penpos11(1/2athick,0);
+
+ penstroke z5e..{sw+down}z6e;
+ penstroke z5e{se+3down}..{right}z9e{right}..{up}z4e{up}
+ ..{left}z10e{left}..{sw+3down}z11e;
+ fill_circle (2radius, (z11l+(radius, -.05nhh)));
+ fill_square (athick, ahigh, (5/16nh-1/2athick,yshift));
+ fill_square (.25athick, ahigh, (x6l-.25athick,yshift));
+ add_mirror ((0,yshift),(1,yshift));
+ penlabels(4,5,6,9,10,11)
+enddef;
+
+beginchar(75, 8/3nhw#, 4nhh#, 0); "Alto clef";
+ alt(1, 2nhh);
+% shift_pic (-.45nhw, 0); % T.59
+ shift_pic (-.45nhw, -2nhh); % T.60
+endchar;
+
+beginchar(76, 7/3nhw#, 4nhh#, 0); "small Alto clef";
+ alt(.8 ,2nhh);
+% shift_pic (-.3nhw, 0); % T.59
+ shift_pic (-.3nhw, -2nhh); % T.60
+endchar;
+
+beginchar(77, 8/3nhw#, 4nhh#, 0); "drum clef";
+ fill_square (.3nhw, .5h, (.85nhw,1nhh));
+ add_mirror ((w/2,0),(w/2,1));
+% shift_pic (.2nhw, 0); % T.59
+ shift_pic (.2nhw, -2nhh); % T.60
+endchar;
+
+beginchar(103, 8/3nhw#, 4nhh#, nhh#); "oldstyle G-clef";
+ def penslopeI= (.35nhh/cosd45)+blacker,45 enddef;
+ def penslopeII= (.35nhh/cosd32.5)+blacker,32.5 enddef;
+ def penslopeIII= (.4nhh/cosd32.5)+blacker,32.5 enddef;
+ def penslopeIV= (max(1,lthick/cosd32.5)),122.5 enddef;
+
+ x1l=1.5nhw; x2l=x3l=x4r=x1l+2/5nhw;
+ x1l-x5l=x3r-x1l; x6l=x15r=x5l; x7r=x1=x14r; x8=x2;
+ y1l=y2l=1.45nhh; y3l=y4r;
+ y4l=0; y5=y3r; y6l=y15r; y7l=y8r=3nhh; y14r=y7r;
+ z15r-z14r=whatever*dir(180+32.5);
+ penpos1(penslopeI);
+ penpos2(penslopeI); % /7\ 6(15)
+ penpos3(penslopeII); % 6 8 7(14)
+ penpos4(penslopeIII); % |
+ penpos5(penslopeII); % | 1-2
+ penpos6(penslopeII); % | |
+ penpos7(penslopeII); % 5 3
+ penpos8(.35nhh,90); % \4/
+ penpos14(penslopeIV);
+ penpos15(penslopeIV);
+ penstroke z1e--z2e--z3e;
+ fill unitsquare xscaled (x3r-x4l) yscaled lthick
+ shifted z4l rotatedaround (z4l,32.5);
+ penstroke z4e--z5e{dir85}..z6e;
+ penstroke z7e--z8e; penstroke z14e--z15e;
+
+ x9=x5l=x16-.25nhw; x10l=x1l; x11=x10-.1nhw; x12=x8;
+ x17l=x2r+.05nhw; x13r=x2l-.1nhw;
+ y9r=-nhh; y16l=y9l-.01nhh; y10=0;
+ y11=3.5nhh; y12r=y8r; y17r=y8r+.2nhh; y13r=4nhh;
+ % 13
+ penpos12(2lthick,90); % / \
+ penpos17(3hlthick,180); % 11 17
+ penpos13(.35nhh+blacker,-90); % | 12
+ penpos11(max(lthick,1),0); % |
+ penpos10(max(lthick,1),0); % 10
+ penpos16(.475nhh+blacker,-90); % /
+ penpos9(.5nhh+blacker,-90); % 9-16
+
+ penstroke z12e..z17e{dir80}..z13e..{down}z11e..{down}z10e{down}..
+ {left}z16e..z9e;
+ shift_pic (-.25nhw,0);
+ penlabels (range 1 thru 12);
+ shift_pic (0, -nhh); % T.60
+endchar;
+
+beginchar(98, 8/3nhw#, 3.25nhh#, 0); "gregorian C clef";
+ x1=x4=0; x2=x3=gregwidth; y1=y2=-y3=-y4=.5gregwidth-lthick;
+ fill z1{dir 15}..z2--z3{dir 165}..z4--cycle;
+ save_elempic;
+ pickup med_pen; draw bot rt z1..{down}(-.01nhw,-.5nhh);
+ shift_pic(nhw,2.5nhh);
+ add_mirror ((0,2nhh),(1,2nhh));
+ savepic;
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(122, 8/3nhw#, 4.25nhh#, 0); "gregorian F clef";
+ callpic;
+ add_elempic (.1nhw,2nhh);
+ fill_square (med, 1.5nhh, (.75nhw,.8nhh));
+ shift_pic (1/3nhw,-2nhh);
+endchar;
+
+%%%%%%%
+message ("<special signs>");
+%%%%%%%
+
+beginchar(14, 0, nhh#, 0); "song system limit up";
+ x1=y1=0; x2=1.5nhw; y2=nhh;
+ penpos1(thick, 90); penpos2(thin, 90);
+ penstroke z1e{right}..{dir80}z2e;
+%{{{
+ currentpen:=pencircle; draw z1{right}..{dir80}z2;
+%}}}
+ savepic;
+endchar;
+
+beginchar(15, 0, 0, nhh#); "song system limit down";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(16, 0, 0, 0); "used for volta";
+ fill_square (lthick, 2.5nhh, (0,-.5nhh));
+endchar;
+
+beginchar(17, 0, 0, 0); "used for volta";
+ fill_square (lthick, 2.5nhh, (0,-2.5nhh));
+endchar;
+
+% 'polyrhythmik' {\meterfrac{3+2+3}8}, e.g. Bart\'ok
+beginchar(57, 2nhh#, 1.5nhh#, 0); "big plus sign";
+ pickup pencircle scaled .3nhh;
+ draw lft(.5nhh,.9nhh)..rt(1.5nhh,.9nhh);
+ draw bot(nhh,.4nhh)..top(nhh,1.4nhh);
+endchar;
+
+beginchar(79, 0, 4nhh#, 0); "caesura";% other breathmark
+ pickup penrazor scaled thick;
+ draw (.3nhw+thick, 3.4nhh)--(.7nhw+thick, 4.6nhh);
+endchar;
+
+beginchar(80, 0, 2.25nhh#, 0); "fermata up";
+ x1 = -.5nhw; x2=.5(x1+x3); x3 = 1.5nhw;
+ y1 = y3 = nhh; y2 = 2.3nhh;
+ penpos1(thinwidth,165);
+ penpos2(.9beamht+thin,90);
+ penpos3(thinwidth,15);
+ penstroke z1e{dir75}..z2e..{dir-75}z3e;
+ fill_circle (beamht, (x2, y1+.5beamht));
+%{{{
+ currentpen:= pencircle; draw z1{dir 75}..z2..{dir-75}z3;
+ add_mirror ((x2, 0),(x2, 1));
+%}}}
+ savepic;
+ penlabels(1,2,3);
+endchar;
+
+beginchar(81, 0, 0, 2.25nhh#); "fermata down";
+ call_mirror (origin, right);
+endchar;
+
+beginchar(82, 5/3nhw#, 4nhh#, 0); "allabreve";
+ fit:= .025nhw;
+ 2x2 = 2x4 = x1 + 1/2nhh = w;
+ x3r = 0; 2y1 = 3y2 = y4r = 3nhh;
+ y3r = 2nhh; x5 = w -1/2nhh; y5 = 3nhh -1/2nhh;
+ z6r = z5r + (-1/40nhh, 1/20nhh);
+ penpos1(max(1,med), 0);
+ penpos2(max(1,med), -90);
+ penpos3(1/4nhh+thick,180);
+ penpos4(max(1,med), 90);
+ penpos5(max(1,med), 0);
+ penpos6(1/4nhh+med,45);
+ penstroke z1e..z2e..z3e..z4e..z5e;
+ fill rt z1r..lft z1l..cycle;
+ fill_circle (.35nhw+blacker, (z6 + (-2fit, fit)));
+ shift_pic (.5nhh,0);
+ savepic;
+
+ pickup med_pen;
+ draw (4/5nhw+.5nhh, y2r-3/8nhh)--(4/5nhw+.5nhh, y4r+3/8nhh);
+ penlabels(1,2,3,4,5,6);
+ save_elempic;
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(83, 5/3nhw#, 3.25nhh#, 0); "C";
+ callpic;
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(84, 10/3nhw#, 3.25nhh#, 0); "reverseC";
+ callpic;
+ add_mirror ((11/6nhw,0),(11/6nhw,1));
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(123, 5/3nhw#, 3.25nhh#, 0); "reverseallabreve";
+ add_elempic (0,0);
+ mirror ((13/12nhw,0),(13/12nhw,1));
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(121, 0, 0, 0); "double thumb bracket";
+ mh:=0.625nhh;
+ fill_square (lthick, mh, origin);
+ fill_square (.55nhw, lthick, origin);
+ add_mirror ((0,mh),(1,mh));
+ shift_pic (-.75nhw, -mh);
+endchar;
+
+%%%%%%%
+message ("<repeat symbols>");
+%%%%%%%
+
+beginchar(55, 0, 4nhh#, 0); "repeat colons";
+ fill_circle (1/3nhw+blacker, (0, 3/2nhh));
+ add_mirror ((0, 2nhh),(1, 2nhh));
+ shift_pic(0,-2nhh);
+endchar;
+
+beginchar(78, 0, 4nhh#, 0); "due volte";
+ fill_circle ((1/3nhw+blacker),(-.75nhh,2.5nhh));
+ addto currentpicture also currentpicture rotatedaround ((0,2nhh), 180);
+ pickup penrazor scaled (1/3nhw+blacker);
+ draw (-nhh, nhh)--(nhh, 3nhh);
+endchar;
+
+beginchar(85, 0, 3.25nhh#, 0); "coda";
+ mh:=3nhh;
+ x2 = 2nhw-x4 = 1/6mh; y2 = y4 = 1/2mh;
+ x3 = x5 = nhw; y3 = mh-y5 = 5/6mh;
+ pickup thin_pen;
+ draw (0,mh/2)--(2nhw,mh/2); draw (nhw,0)--(nhw,mh);
+ savepic;
+ pickup coda_pen;
+ draw z2..z3..z4..z5..cycle;
+ shift_pic (-nhw, 0);
+ labels (1,2,3,4);
+endchar;
+
+beginchar(105, 0, 3.25nhh#, 0); "coda II";
+ mh:=3nhh;
+ callpic;
+ x2 = x5 = 1/6mh; y2 = y3 = 5/6mh;
+ x3 = x4 = 2nhw-x2; y4 = y5 = 1/6mh;
+ pickup coda_pen;
+ draw z2--z3--z4--z5--cycle;
+ shift_pic (-nhw, 0);
+ labels (1,2,3,4);
+endchar;
+
+beginchar(86, 0, 3.25nhh#, 0); "segno";
+ x1= .5nhw; y1 = 1.75nhh; x4=-.5x1; y4=.4nhh;
+ x5=.7x1; y5=y6=3.05nhh; x6=x5-x1;
+ z1'= (x1+1,y1);
+ penpos1'(.5nhh+blacker, 80);
+ penpos5(max(1,thin), -110);
+ penpos6(max(1,1.2thin), -70);
+ fill_circle (.5nhh, (x5-.2nhh,y5l-.13nhh));
+ fill_circle (thick+.1nhh, (x4, y4+.9nhh));
+ penstroke z1'e{dir170}..{ne}z6e..z5e;
+ pickup penrazor scaled max(1,thin);
+ draw z4--z1;
+ penlabels (1,5,6);
+ addto currentpicture also currentpicture rotatedaround (z1, 180);
+endchar;
+
+beginchar(110, 0, 5.5nhh#, 2nhh#); "segno II";
+ mw:=2.5nhh;
+ gamma:=36.9;
+ dist:=1nhh+.75beamht;
+ gthick:=beamht+blacker;
+
+ x1'=x3'=x7=x16=2x1=2x10=2x13=.5mw; x9=x14=x2; x3r=mw-.2nhh;
+ x11=x5; x15=x3; mw-x8=x12=1/3nhh;
+ y1'=dist; y3'=y1'-.5dist; y4'+dist=y9-2dist=y2; y10-2dist=y13+dist=y1;
+ y11=y5+2dist; y14=y2-dist; y8=y6-.1dist+2dist; y12=y3+.1dist-dist;
+ y15=y3-dist; y16r=-d; y7l=3.25nhh+2dist;
+ z1-z1'=z1'-z2=whatever*dir-gamma;
+ z3-z3'=whatever*dir-gamma; z2-z4=whatever*dir(-90-gamma);
+ z2-z4'=whatever*dir-90; z4-z4'=whatever*dir-gamma;
+ z5=z3 rotatedaround (z1',180); z6=z4 rotatedaround (z1',180);
+
+ penpos1(gthick, gamma); penpos2(gthick, gamma);
+ penpos3(max(1,thin),-90+gamma); penpos4(.9gthick,-180+gamma);
+ penpos5(max(1,thin),-90+gamma); penpos6(.9gthick,-180+gamma);
+ penpos7(.3gthick,-90-gamma); penpos8(.5gthick,-180+gamma);
+ penpos9(gthick, gamma); penpos10(gthick, gamma);
+ penpos11(.5gthick,-90+gamma); penpos12(.5gthick,-180+gamma);
+ penpos13(gthick, gamma); penpos14(gthick, gamma);
+ penpos15(.5gthick,-90+gamma); penpos16(.3gthick+1,-90-gamma);
+
+ penstroke z6e{dir(180-gamma)}..z5e..z1e---z2e..z3e..{dir(180-gamma)}z4e;
+ add_shift (0,2dist);
+ add_shift (0,-dist);
+ unfill (0,-nhh)--(mw,-nhh)--(mw,-d)--(0,-d)--cycle;
+ unfill (0,5nhh)--(mw,5nhh)--(mw,6nhh)--(0,6nhh)--cycle; cullit;
+
+ penstroke z9e---z10e..z11e..z7e..z8e;
+ penstroke z13e---z14e..z15e..z16e..z12e;
+
+ dotthick:=.65nhh+blacker; fit:=.15nhh;
+ fill_circle(dotthick,(x8-fit,y8-.5dotthick+fit+.02nhh));
+ fill_circle(dotthick,(x12+fit,y12+.5dotthick-fit-.02nhh));
+
+ pickup thin_pen;
+ draw (3/8mw,1/3nhh)--(3/8mw,4nhh+1/3nhh);
+ draw (5/8mw,-1/3nhh)--(5/8mw,4nhh-1/3nhh);
+ penlabels (range 1 thru 16);
+ shift_pic(-mw,0);
+endchar;
+
+%%%%%%%
+message ("<trills>");
+%%%%%%%
+
+beginchar (67, 0, nhh#, 0); "turn";
+ x1=2nhw-x6=.4nhw; y1r=h; y6=h-y1;
+ x2r=0; y2=.5h; x5=2nhw-x2; y5=h-y2;
+ x3=.44nhw; y3r=0; x4=2nhw-x3; y4=h-y3;
+ penpos1(med, 90);
+ penpos2(med, 180);
+ penpos3(thick,-40);
+ penpos4(thick,-40);
+ penpos5(med, 180);
+ penpos6(med, 90);
+ penstroke z1e..{down}z2e{down}..{right}z3e{right}
+ ..{right}z4e{right}..{down}z5e{down}..z6e;
+ fill_circle ((1/4nhh+thick), (x1,y1r-thick));
+ fill_circle ((1/4nhh+thick), (x6,y6l+thick));
+ shift_pic (-.5nhw, 0);
+ penlabels(1,2,3,4,5,6);
+ savepic;
+endchar;
+
+beginchar (68, 0, nhh#, 0); "backturn";
+ call_mirror ((.5nhw,0), (.5nhw,1));
+endchar;
+
+def setpar =
+ off:= .3nhw; x2=x1+off; x3=x2+off; x4=x3+off;
+ y1= y3=.75nhh-y2=.75nhh-y4=.15nhh;
+enddef;
+
+beginchar(87, 0, nhh#, 0); "shake";
+ x1=-.15nhw; setpar;
+ pickup pensquare xscaled (thick+.15nhh) yscaled med rotated 52;
+ draw z1--z2--z3--z4;
+ save_elempic;
+ add_elempic (2off,0);
+ savepic;
+endchar;
+
+beginchar(88, 0, nhh#, 0); "(long or double) shake";
+ callpic;
+ add_elempic (2*2off,0);
+ shift_pic (-.3nhw, 0);
+ save_elempic;
+endchar;
+
+beginchar(89, 0, nhh#, 0); "mordent";
+ callpic;
+ fill_square (med, 1.5nhh, (.5nhw,-.375nhh));
+endchar;
+
+beginchar(119, 0, nhh#, 0); "(long or double) mordent";
+ currentpicture:= elem_pic; savepic;
+ fill_square (med, 1.5nhh, (.5nhw,-.375nhh));
+endchar;
+
+beginchar(106, 0, 1.5nhh#, 0); "Pince with line";
+ callpic;
+ pickup med_pen;
+ draw (-.55nhw, 0)--(-.55nhw, h);
+endchar;
+
+beginchar(107, 0, 1.5nhh#, 0); "Pince with hook nw";
+ callpic;
+ x1=-.45nhw; setpar;
+ pickup med_pen;
+ z5=1.75[z3,z2]-(x3-x1,0); z6=z1 rotatedaround (z5,90);
+ draw (z1..z5{z2-z3}..{z3-z2}z6) shifted -(.5thick, .15nhh);
+endchar;
+
+beginchar(108, 0, nhh#, 0); "Pince with hook sw";
+ callpic;
+ x1=-.45nhw; setpar;
+ pickup med_pen;
+ z5=1.5[z2,z1]-.75(.5thick,.15nhh); z6=z2 rotatedaround (z5,-90);
+ draw (z1..z5{z1-z2}..{z2-z1}z6);
+endchar;
+
+beginchar(109, 0, 1.5nhh#, 0); "Pince with hook ne";
+ callpic;
+ x1=1.35nhw; setpar;
+ pickup med_pen;
+ z5=1.5[z1,z2]; z6=z1 rotatedaround (z5,-90);
+ draw (z1..z5{z2-z1}..{z1-z2}z6);
+endchar;
+
+beginchar(69, nhw#, .5nhh#, 0); "trille-element";
+ x1=-1; y1=y2=y3=.5h; x3=2x2=nhw;
+ pickup penrazor scaled 1.5thick rotated 50;
+ draw z1{ne}..{se}z2{se}..{ne}z3;
+endchar;
+
+beginchar(70, 0, nhh#, 0); "arpeggio-element";
+ x1=x2=x3=.2nhw-1; y1=0; y3=2y2=nhh+1;
+ pickup penrazor scaled (thick+.16nhh) rotated 45;
+ draw z1{ne}..{nw}z2{nw}..{ne}z3;
+ shift_pic (-nhw, 0);
+endchar;
+
+%%%%%%%
+message ("<pedal signs>");
+%%%%%%%
+
+def pedalstar (text rot)=
+ x4=-x1=min(.05nhh,0.35pt); y1=y4=0; x3=-x2=.14nhh;
+ y3=y2=2y5=2y6=.4nhh; x6=-x5=1.1x4;
+ p:=(z1..z5..z2..z3..z6..z4--cycle) shifted (0, .2nhh);
+ forsuffixes $=rot: fill p rotated $; endfor
+ pickup med_pen;
+ draw quartercircle scaled .4nhh;
+ add_mirror (origin, up);
+ add_mirror (origin, right);
+ labels (1,2,3,4);
+ shift_pic (.5nhw, .8nhh);
+enddef;
+
+beginchar(33, 0, 1.5nhh#, 0); "pedal (release) star I";
+ pedalstar (0,60);
+endchar;
+
+beginchar(104, 0, 1.5nhh#, 0); "pedal star II";
+ pedalstar (0,45,90);
+endchar;
+
+beginchar(34, 0, 1.5nhh#, 0); "pedal I";
+ mw:= 1.25nhw; mh:=1.7nhh;
+
+ x1=.425mw; y1=4/18mh;
+ x2=.2mw; y2=4/18mh;
+ x3=x1; y3r=0;
+ x4=.65mw; y4=.35mh;
+ x5=.475mw; y5=.83mh;
+ penpos1(.75thin,0); penpos4(.275nhh+thin,60);
+ penpos2(.15nhh+thin,135); penpos5(.025nhh+med,0);
+ penpos3(.025nhh+med,-90);
+
+ penstroke z1e{up}..z2e..z3e..z4e..{up+.5right}z5e;
+
+ fill lft z1l{up+ne}..{down+se}rt z1r{down+sw}..{up+nw}cycle;
+ fill rt z5l{up+ne}..{down+se}lft z5r{down+sw}..{up+nw}cycle;
+%{{{
+ currentpen:= pencircle; draw z1{up}..z2..z3..z4..{up+.5right}z5;
+%}}}
+
+ x6=mw-x12; y6=.75mh;
+ x7=mw-x11; y7=.65mh;
+ x8=.25mw; y8=y10;
+ x9=x8+(x10-x8)/2; y9r=mh;
+ x10=.8mw; y10=.9mh;
+ x11=.88mw; y11=y7;
+ x12=.7mw; y12=.7mh;
+ penpos6(thin,-80); penpos10(1.2med,90);
+ penpos7(.25nhh+thin,-110); penpos11(.25nhh+thin,-70);
+ penpos8(med,90); penpos12(thin,-100);
+ penpos9(.9med,90);
+
+ penstroke z6e..z7e..z8e..z9e..z10e..z11e..z12e;
+%{{{
+ currentpen:=pencircle; draw z6..z7..z8..z9..z10..z11..z12;
+%}}}
+ penlabels (range 1 thru 12);
+ savepic;
+ shift_pic (-.125nhw, 0);
+endchar;
+
+beginchar(35, 0, 1.5nhh#, 0); "pedal II";
+ callpic; %%% ->P
+ mw:=3nhw; mh:=1.7nhh;
+ fill_circle (.15mh, (.945mw-.15mh/2, .15mh/2));%%% ->.
+
+ x1=.5mw; y1=.9mh;
+ x2=.77mw; y2=.58mh;
+ x3=.815mw; y3=.2mh;
+ x4= x2; y4r=0;
+ x5=.63mw; y5=.22mh;
+ x6= x2; y6=y2;
+ penpos1(.75med,90); penpos4(.025nhh+med,-90);
+ penpos2(.1125nhh+med,30); penpos5(.1125nhh+thin,-135);
+ penpos3(.05nhh+med,0); penpos6(med,100);
+
+ penstroke (z1e{right}..z2e..z3e..z4e..z5e{dir 110}..z6e);%%% ->d
+ fill lft z1l{ne}..{nw}rt z1r{sw}..{se}cycle;
+
+ x7=x5; y7=y5;
+ x8=.55mw; y8r=0;
+ x9=x1; y9=.56mh;
+ x10=x11+.1mw; y10=y11+.1mh;
+ x11=.375mw; y11r=0;
+ x12=.28mw; y12=.25mh;
+ penpos7(thin,-75); penpos10(1.2thin,-45);
+ penpos8(.05nhh+med,-90); penpos11(.225nhh,-100);
+ penpos9(.0625nhh+thin,80); penpos12(thin,-125);
+
+ penstroke z7e..z8e..z9e & z9e{dir-30}..{dir-150}z10e..z11e;%%% ->e
+ penstroke z12e..z11e;
+ penlabels (range 1 thru 12);
+ shift_pic (-(.125nhw+.25nhw), 0);
+endchar;
+
+%^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+%%%%%%%
+message ("<beam elements>");
+%%%%%%%
+
+pen beam_pen;
+beam_pen:= penrazor scaled beamht rotated 90;
+
+for LOOP=0 upto 9:
+ longueur:= 2;
+ for loop=0 upto 5:
+ beginchar(LOOP*6+loop+128, longueur, 0, 0);
+ pickup beam_pen;
+ draw origin--(lft w, w*(.05*(LOOP+1)));
+ savepic;
+ endchar;
+
+ beginchar(LOOP*6+loop+64+128, longueur, 0, 0);
+ call_mirror (origin,right);
+ endchar;
+
+ longueur:= 2*longueur;
+ endfor
+endfor;
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musixsps.mf b/Master/texmf-dist/fonts/source/public/musixtex/musixsps.mf
new file mode 100644
index 00000000000..a298fdf6761
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musixsps.mf
@@ -0,0 +1,314 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+font_identifier := "music_special_symbols";
+
+% Here are two types of pianobrackets available, they are absolute compatible,
+% so choose this one you prefer (search for '%!!!')
+
+% free pos: 196-255
+
+mode_setup;
+
+font_size 20pt#;
+
+nhh#:=5pt#;
+nhw#:=6pt#;
+
+qqs#=.4pt#; %width of lines
+qqw#=10pt#; %length of horizontal stroke.
+
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth:=0.125pt;
+
+define_pixels(qqw,nhh,nhw);
+define_blacker_pixels(med,thick);
+
+qqs:=ceiling(qqs#*hppp); % the way rule widths are calculated
+
+pair sw;
+sw = down+left;
+
+path p;
+picture save_pic;
+
+pen line_pen;
+line_pen:= pencircle scaled qqs;
+
+%%%%%%%
+message ("<glissandi-elements>");
+%%%%%%%
+
+def glissando (expr theta)=
+ x1=-1; y1=0; z2=z1+(.5nhw,0); z3=z1+(nhw+1,0);
+ p:= z1{1.25up+right}..{1.25down+right}z2{1.25down+right}..{1.25up+right}z3;
+ pickup penrazor scaled (.075nhw+thick) rotated (theta+65);
+ draw p rotated theta;
+ labels (1,2,3);
+enddef;
+
+for slope=1 upto 8:
+
+ beginchar(slope-1, (cosd(10slope))*nhw#,(sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (10slope)&" degree";
+ glissando (10slope);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(8+slope-1, (cosd(10slope))*nhw#, (sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (-10slope)&" degree";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+
+endfor;
+
+%%%%%%%
+message ("<guitar chords>");
+%%%%%%%
+
+def tabulatur (expr nd)=
+ hwidth:=1/5w;
+ x1=x2=y2=y3=0; x3=w; y1=-nd;
+ fill unitsquare xscaled (w+2thinwidth) yscaled (med+.2pt)
+ shifted(-thinwidth,0);
+ pickup pencircle scaled max(1,.2pt+blacker);
+ for v=1 upto 5 :
+ draw (z2--z3) shifted (0,v*-hwidth);
+ endfor;
+
+ for v=0 upto 5 :
+ draw (z1--z2) shifted (v*hwidth,0);
+ endfor;
+ labels (1,2,3);
+enddef;
+
+shift:=.15nhh;
+def Circle (expr nh)=
+ x1l=.1w; x2=x4=.5w; x3l=.9w;
+ y1=y3=.5nh+shift; y2=.1nh+shift; y4=.9nh+shift;
+ penpos1(med, 0);
+ penpos2(thinwidth,90);
+ penpos3(med,180);
+ penpos4(thinwidth, 270);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+ pickup pencircle; draw z1..z2..z3..z4..cycle;
+enddef;
+
+def Cross (expr nh)=
+ x1=x3=.2w; x2=x4=.8w;
+ y1=y4=.2nh+shift; y2=y3=nh-.2nh+shift;
+ pickup pencircle scaled med;
+ draw z1--z2; draw z3--z4;
+ labels (1,2,3,4);
+enddef;
+
+beginchar(16, 3nhw#, 0, 0);" small grid";
+ tabulatur (108/25nhh);
+endchar;
+
+beginchar(17, 3/2nhw#, 0, 0); " small dot";
+ fill fullcircle scaled .54nhh shifted (w,-.36nhh);
+endchar;
+
+beginchar(18, 3nhw#, 0, 0); " small bar";
+ fill unitsquare xscaled w yscaled .24nhh shifted (0,-.48nhh);
+endchar;
+
+beginchar(19, 3/5nhw#, 0, 0); " small circle";
+ Circle (.72nhh);
+endchar;
+
+beginchar(20, 3/5nhw#, 0, 0); " small cross";
+ Cross (.72nhh);
+endchar;
+
+% the next seems to be senseless, but it isn't
+
+beginchar(28, 3/5nhw#, 0, 0); " small blank";
+endchar;
+
+%%%%%%%
+message ("<several lines>");
+%%%%%%%
+
+hooklength:=4.5pt;
+
+beginchar(21, 0, 0, 0);" bracket hook up";
+ pickup line_pen;
+ draw origin--(0, hooklength);
+endchar;
+
+beginchar(22, 0, 0, 0);" bracket hook down";
+ pickup line_pen;
+ draw origin--(0, -hooklength);
+endchar;
+
+beginchar(23, nhw#, 0, 0);" upper octaveline";
+ pickup line_pen;
+ draw (.33w, 1.1nhw)--(.66w, 1.1nhw);
+endchar;
+
+beginchar(24, 0, 0, 0);" final hook for upper octaveline";
+ pickup line_pen;
+ draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
+ draw (.33nhw, 1.1nhw)--(1.1nhw, 1.1nhw);
+endchar;
+
+beginchar(25, nhw#, 0, 0);" lower octaveline";
+ pickup line_pen;
+ draw (.33w, 0)--(.66w, 0);
+endchar;
+
+beginchar(26, 0, 0, 0);" final hook for lower octaveline";
+ pickup line_pen;
+ draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
+ draw (.33nhw,0)--(1.1nhw, 0);
+endchar;
+
+beginchar(27, .75nhw#, 0, 0);" used for \bracket";
+ pickup line_pen;
+ draw origin--(.5nhw, 0);
+endchar;
+
+beginchar(29, qqw#, 0, 0);" line ydim 0pt";
+ pickup line_pen;
+ draw origin--(w,0);
+endchar;
+
+% lines length xdim 10pt, ydim (-).25 to (-)5pt
+
+for j=1 upto 20:
+ beginchar(29+j, qqw#, 0, 0); " line ydim "&decimal .25j&"pt";
+ pickup line_pen;
+ draw origin--(w, .25pt*j);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(49+j, qqw#, 0, 0); " line ydim -"&decimal .25j&"pt";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<circles>");
+%%%%%%%
+
+for n:=1 upto 14:
+ beginchar(70+n-1, 0, 0, 0);
+ " fullcircle diameter "&decimal ((n+2)*2)&" pt";
+ diameter:=(n+2)*2pt;
+ pickup line_pen;
+ draw fullcircle scaled diameter;
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<(de-)crescendi>");
+%%%%%%%
+
+widthstep:=nhw;
+crescendowidth:=.5nhh; % \Internote
+
+for n:=1 upto 32:
+ beginchar(84+n-1, 0, 3pt#, 3pt#);
+ " crescendo length "&decimal n&" noteheadwidths";
+ pickup line_pen;
+ draw (n*widthstep, crescendowidth+.0075n*crescendowidth)--(0,0);
+ addto currentpicture also currentpicture reflectedabout (origin,right);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(116+n-1, 0, 3pt#, 3pt#);
+ " decrescendo length "&decimal n&" noteheadwidths";
+ currentpicture:= save_pic reflectedabout(origin, up) shifted (n*widthstep,0);
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<piano brackets>");
+%%%%%%%
+
+% lastbrace is adjustable (originally 99)
+
+firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm)
+lastbrace:=67; % largest brace is 2*67 pt (\simeq 47mm)
+
+%%% from Stanislav Kneifl
+
+def drawpianobracket (expr height) =
+ u# := 1nhh#/5pt# * 1pt#;
+ v# := (height/40) * 1pt#;
+ define_pixels (u, v);
+% beginchar (height-firstbrace, 1.25nhh#, 0, 0);
+ beginchar (height-firstbrace+148, 0, 0, 0);
+ z1 = origin;
+ z2 = (4.7u, 7v);
+ z3 = (3.6u, 16.5v);
+ z4 = (1.9u, 25v);
+ z5 = (2.28u, 32v);
+ z6 = (w, 40v);
+ penpos1 (max(1,0.1u), 125);
+ penpos2 (1.2u, 180);
+ penpos3 (3.2u, 195);
+ penpos4 (2.5u, 180);
+ penpos5 (1.14u, 180);
+ penpos6 (max(2,0.3u), 150);
+ penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
+ currenttransform := identity reflectedabout ((0,0),(1,0));
+ penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
+ currenttransform := identity;
+% inserted
+ currentpicture:=currentpicture shifted (round(-1.75nhh), 0);
+%
+ endchar;
+enddef;
+
+def bigbrace(expr v) =
+ beginchar (v-firstbrace+148, 0, 0, 0);
+ " brace vsize "&decimal round(2v*pt#)&"pt";
+ vwidth:=v*pt;
+ hwidth:=max(.1vwidth,3.25pt);
+ hwidth:=min(hwidth,6.5pt);
+ actwidth:=.035vwidth;
+ x1=.25nhw; y1=vwidth;
+ x2l=-.8hwidth; y2=2/3vwidth;
+ x3r=.2hwidth; y3=1/3vwidth;
+ x4=-hwidth; y4=0;
+ penpos1(max(1,.25pt),-35);
+ penpos2(1.5med+actwidth,40);
+ penpos3(1.75med+actwidth,45);
+ penpos4(max(1,.2pt),-90);
+ penstroke z1e..z2e..z3e..{left+sw}z4e;
+ currentpen:= pencircle; draw z1..z2..z3..{left+sw}z4;
+ addto currentpicture also currentpicture reflectedabout (origin, right);
+ penlabels(1,2,3,4);
+ currentpicture:= currentpicture shifted (round(-.75nhh), 0);
+ endchar;
+enddef;
+
+%!!! comment the line 'bigbrace' and uncomment the line 'drawpianobracket'
+
+for v=firstbrace upto lastbrace :
+ bigbrace (v);
+% drawpianobracket (v);
+endfor;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/musixspx.mf b/Master/texmf-dist/fonts/source/public/musixtex/musixspx.mf
new file mode 100644
index 00000000000..3f280106835
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/musixspx.mf
@@ -0,0 +1,314 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+font_identifier := "music_special_symbols";
+
+% Here are two types of pianobrackets available, they are absolute compatible,
+% so choose this one you prefer (search for '%!!!')
+
+% free pos: 196-255
+
+mode_setup;
+
+font_size 20pt#;
+
+nhh#:=5pt#;
+nhw#:=6pt#;
+
+qqs#=.4pt#; %width of lines
+qqw#=10pt#; %length of horizontal stroke.
+
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth:=0.125pt;
+
+define_pixels(qqw,nhh,nhw);
+define_blacker_pixels(med,thick);
+
+qqs:=ceiling(qqs#*hppp); % the way rule widths are calculated
+
+pair sw;
+sw = down+left;
+
+path p;
+picture save_pic;
+
+pen line_pen;
+line_pen:= pencircle scaled qqs;
+
+%%%%%%%
+message ("<glissandi-elements>");
+%%%%%%%
+
+def glissando (expr theta)=
+ x1=-1; y1=0; z2=z1+(.5nhw,0); z3=z1+(nhw+1,0);
+ p:= z1{1.25up+right}..{1.25down+right}z2{1.25down+right}..{1.25up+right}z3;
+ pickup penrazor scaled (.075nhw+thick) rotated (theta+65);
+ draw p rotated theta;
+ labels (1,2,3);
+enddef;
+
+for slope=1 upto 8:
+
+ beginchar(slope-1, (cosd(10slope))*nhw#,(sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (10slope)&" degree";
+ glissando (10slope);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(8+slope-1, (cosd(10slope))*nhw#, (sind(10slope))*nhw#, 0);
+ " glissando element slope "&decimal (-10slope)&" degree";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+
+endfor;
+
+%%%%%%%
+message ("<guitar chords>");
+%%%%%%%
+
+def tabulatur (expr nd)=
+ hwidth:=1/5w;
+ x1=x2=y2=y3=0; x3=w; y1=-nd;
+ fill unitsquare xscaled (w+2thinwidth) yscaled (med+.2pt)
+ shifted(-thinwidth,0);
+ pickup pencircle scaled max(1,.2pt+blacker);
+ for v=1 upto 5 :
+ draw (z2--z3) shifted (0,v*-hwidth);
+ endfor;
+
+ for v=0 upto 5 :
+ draw (z1--z2) shifted (v*hwidth,0);
+ endfor;
+ labels (1,2,3);
+enddef;
+
+shift:=.15nhh;
+def Circle (expr nh)=
+ x1l=.1w; x2=x4=.5w; x3l=.9w;
+ y1=y3=.5nh+shift; y2=.1nh+shift; y4=.9nh+shift;
+ penpos1(med, 0);
+ penpos2(thinwidth,90);
+ penpos3(med,180);
+ penpos4(thinwidth, 270);
+ penstroke z1e..z2e..z3e..z4e..cycle;
+ pickup pencircle; draw z1..z2..z3..z4..cycle;
+enddef;
+
+def Cross (expr nh)=
+ x1=x3=.2w; x2=x4=.8w;
+ y1=y4=.2nh+shift; y2=y3=nh-.2nh+shift;
+ pickup pencircle scaled med;
+ draw z1--z2; draw z3--z4;
+ labels (1,2,3,4);
+enddef;
+
+beginchar(16, 3nhw#, 0, 0);" small grid";
+ tabulatur (108/25nhh);
+endchar;
+
+beginchar(17, 3/2nhw#, 0, 0); " small dot";
+ fill fullcircle scaled .54nhh shifted (w,-.36nhh);
+endchar;
+
+beginchar(18, 3nhw#, 0, 0); " small bar";
+ fill unitsquare xscaled w yscaled .24nhh shifted (0,-.48nhh);
+endchar;
+
+beginchar(19, 3/5nhw#, 0, 0); " small circle";
+ Circle (.72nhh);
+endchar;
+
+beginchar(20, 3/5nhw#, 0, 0); " small cross";
+ Cross (.72nhh);
+endchar;
+
+% the next seems to be senseless, but it isn't
+
+beginchar(28, 3/5nhw#, 0, 0); " small blank";
+endchar;
+
+%%%%%%%
+message ("<several lines>");
+%%%%%%%
+
+hooklength:=4.5pt;
+
+beginchar(21, 0, 0, 0);" bracket hook up";
+ pickup line_pen;
+ draw origin--(0, hooklength);
+endchar;
+
+beginchar(22, 0, 0, 0);" bracket hook down";
+ pickup line_pen;
+ draw origin--(0, -hooklength);
+endchar;
+
+beginchar(23, nhw#, 0, 0);" upper octaveline";
+ pickup line_pen;
+ draw (.33w, 1.1nhw)--(.66w, 1.1nhw);
+endchar;
+
+beginchar(24, 0, 0, 0);" final hook for upper octaveline";
+ pickup line_pen;
+ draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
+ draw (.33nhw, 1.1nhw)--(1.1nhw, 1.1nhw);
+endchar;
+
+beginchar(25, nhw#, 0, 0);" lower octaveline";
+ pickup line_pen;
+ draw (.33w, 0)--(.66w, 0);
+endchar;
+
+beginchar(26, 0, 0, 0);" final hook for lower octaveline";
+ pickup line_pen;
+ draw (1.1nhw,0)--(1.1nhw, 1.1nhw);
+ draw (.33nhw,0)--(1.1nhw, 0);
+endchar;
+
+beginchar(27, .75nhw#, 0, 0);" used for \bracket";
+ pickup line_pen;
+ draw origin--(.5nhw, 0);
+endchar;
+
+beginchar(29, qqw#, 0, 0);" line ydim 0pt";
+ pickup line_pen;
+ draw origin--(w,0);
+endchar;
+
+% lines length xdim 10pt, ydim (-).25 to (-)5pt
+
+for j=1 upto 20:
+ beginchar(29+j, qqw#, 0, 0); " line ydim "&decimal .25j&"pt";
+ pickup line_pen;
+ draw origin--(w, .25pt*j);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(49+j, qqw#, 0, 0); " line ydim -"&decimal .25j&"pt";
+ currentpicture:= save_pic reflectedabout (origin, right);
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<circles>");
+%%%%%%%
+
+for n:=1 upto 14:
+ beginchar(70+n-1, 0, 0, 0);
+ " fullcircle diameter "&decimal ((n+2)*2)&" pt";
+ diameter:=(n+2)*2pt;
+ pickup line_pen;
+ draw fullcircle scaled diameter;
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<(de-)crescendi>");
+%%%%%%%
+
+widthstep:=nhw;
+crescendowidth:=.5nhh; % \Internote
+
+for n:=1 upto 32:
+ beginchar(84+n-1, 0, 3pt#, 3pt#);
+ " crescendo length "&decimal n&" noteheadwidths";
+ pickup line_pen;
+ draw (n*widthstep, crescendowidth+.0075n*crescendowidth)--(0,0);
+ addto currentpicture also currentpicture reflectedabout (origin,right);
+ save_pic:= currentpicture;
+ endchar;
+
+ beginchar(116+n-1, 0, 3pt#, 3pt#);
+ " decrescendo length "&decimal n&" noteheadwidths";
+ currentpicture:= save_pic reflectedabout(origin, up) shifted (n*widthstep,0);
+ endchar;
+endfor;
+
+%%%%%%%
+message ("<piano brackets>");
+%%%%%%%
+
+% lastbrace is adjustable (originally 99)
+
+firstbrace:=20; % smallest brace is 2*20 pt (\simeq 14mm)
+lastbrace:=67+48; % largest brace is 2*67 pt (\simeq 47mm)
+
+%%% from Stanislav Kneifl
+
+def drawpianobracket (expr height) =
+ u# := 1nhh#/5pt# * 1pt#;
+ v# := (height/40) * 1pt#;
+ define_pixels (u, v);
+% beginchar (height-firstbrace, 1.25nhh#, 0, 0);
+ beginchar (height-firstbrace+148, 0, 0, 0);
+ z1 = origin;
+ z2 = (4.7u, 7v);
+ z3 = (3.6u, 16.5v);
+ z4 = (1.9u, 25v);
+ z5 = (2.28u, 32v);
+ z6 = (w, 40v);
+ penpos1 (max(1,0.1u), 125);
+ penpos2 (1.2u, 180);
+ penpos3 (3.2u, 195);
+ penpos4 (2.5u, 180);
+ penpos5 (1.14u, 180);
+ penpos6 (max(2,0.3u), 150);
+ penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
+ currenttransform := identity reflectedabout ((0,0),(1,0));
+ penstroke z1e{dir 35}..z2e..z3e..z4e..z5e..{dir 60}z6e;
+ currenttransform := identity;
+% inserted
+ currentpicture:=currentpicture shifted (round(-1.75nhh), 0);
+%
+ endchar;
+enddef;
+
+def bigbrace(expr v) =
+ beginchar (v-firstbrace+148, 0, 0, 0);
+ " brace vsize "&decimal round(2v*pt#)&"pt";
+ vwidth:=v*pt;
+ hwidth:=max(.1vwidth,3.25pt);
+ hwidth:=min(hwidth,6.5pt);
+ actwidth:=.035vwidth;
+ x1=.25nhw; y1=vwidth;
+ x2l=-.8hwidth; y2=2/3vwidth;
+ x3r=.2hwidth; y3=1/3vwidth;
+ x4=-hwidth; y4=0;
+ penpos1(max(1,.25pt),-35);
+ penpos2(1.5med+actwidth,40);
+ penpos3(1.75med+actwidth,45);
+ penpos4(max(1,.2pt),-90);
+ penstroke z1e..z2e..z3e..{left+sw}z4e;
+ currentpen:= pencircle; draw z1..z2..z3..{left+sw}z4;
+ addto currentpicture also currentpicture reflectedabout (origin, right);
+ penlabels(1,2,3,4);
+ currentpicture:= currentpicture shifted (round(-.75nhh), 0);
+ endchar;
+enddef;
+
+%!!! comment the line 'bigbrace' and uncomment the line 'drawpianobracket'
+
+for v=firstbrace upto lastbrace :
+ bigbrace (v);
+% drawpianobracket (v);
+endfor;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xdrawsl.mf b/Master/texmf-dist/fonts/source/public/musixtex/xdrawsl.mf
new file mode 100644
index 00000000000..fe8c5ec0b82
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xdrawsl.mf
@@ -0,0 +1,39 @@
+%(c)
+
+min_bow:= .5nhh;
+max_bow:= 1.5nhh;
+slope:=17.5/100;
+
+code=-1;
+
+for iht=1 upto 8:
+ for iwd=0 upto 15:
+ beginchar(incr code, 0, 0, 0);
+ mw#:=(minwidth+iwd*delwidth)*pt#;
+ define_pixels(mw);
+ x1 = y1= 0; x3= mw; y3= 2y2'= iht*delheight; x2'= .5x3;
+ mheight:=y3;
+ z2-z2'= whatever*dir(angle(z3-z1)+90);
+ my_bow:=min(max_bow, slope*mw);
+ my_bow:=max(my_bow, min_bow);
+ z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
+ (z1'-z2)=whatever*(z1-z2');
+ penpos1(.15thick,(angle(z3-z1)+90));
+ penpos2(thick,(angle(z3-z1)+90));
+ penpos3(.15thick,(angle(z3-z1)+90));
+ penstroke (flex(z1e,z2e,z3e));
+%{{{
+ currentpen:= pencircle;
+ draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
+%}}}
+ currentpicture:=currentpicture t;
+ p:=currentpicture;
+ endchar;
+
+ beginchar(code+128, 0, 0, 0);
+ currentpicture:=p T;
+ endchar;
+
+ endfor
+endfor
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xdrawzl.mf b/Master/texmf-dist/fonts/source/public/musixtex/xdrawzl.mf
new file mode 100644
index 00000000000..50ef6cfd6fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xdrawzl.mf
@@ -0,0 +1,25 @@
+%(c)
+
+min_bow:= .4nhh;
+max_bow:= 1.75nhh;
+slope:= 10/100;
+
+code=-1;
+
+for i=1 upto numslurs:
+ beginchar(incr code, 0, 0, 0);
+ mw:=(minwidth+code*delwidth)*pt;
+ x3= -x1= .5mw; x2= y1= y3 = 0;
+ y2= max(min_bow, slope*mw);
+ y2:= min(y2, max_bow);
+ penpos1(.15thick,90); penpos2(thick,90); penpos3(.15thick,90);
+ penstroke (flex(z1e,z2e,z3e));
+ currentpen:= pencircle; draw (flex(z1,z2,z3));
+ p:=currentpicture;
+ endchar;
+
+ beginchar(code+54, 0, 0, 0);
+ currentpicture:=p reflectedabout (origin, right);
+ endchar;
+endfor
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xgreg11.mf b/Master/texmf-dist/fonts/source/public/musixtex/xgreg11.mf
new file mode 100644
index 00000000000..e5f3dc4b4c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xgreg11.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg11";
+
+mode_setup;
+
+font_size 10.24pt#;
+
+nhh#:=2.56pt#;
+
+input xgreggen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xgreg13.mf b/Master/texmf-dist/fonts/source/public/musixtex/xgreg13.mf
new file mode 100644
index 00000000000..49a78be6e73
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xgreg13.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg13";
+
+mode_setup;
+
+font_size 12.8pt#;
+
+nhh#:=3.2pt#;
+
+input xgreggen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xgreg16.mf b/Master/texmf-dist/fonts/source/public/musixtex/xgreg16.mf
new file mode 100644
index 00000000000..bc5d554686a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xgreg16.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg16";
+
+mode_setup;
+
+font_size 16pt#;
+
+nhh#:=4pt#;
+
+input xgreggen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xgreg20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xgreg20.mf
new file mode 100644
index 00000000000..f0ba509ead0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xgreg20.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg20";
+
+mode_setup;
+
+font_size 20pt#;
+nhh#:=5pt#;
+
+
+input xgreggen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xgreg24.mf b/Master/texmf-dist/fonts/source/public/musixtex/xgreg24.mf
new file mode 100644
index 00000000000..9f4dbfbd9b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xgreg24.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg24";
+
+mode_setup;
+
+font_size 24pt#;
+
+nhh#:=6pt#;
+
+input xgreggen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xgreg25.mf b/Master/texmf-dist/fonts/source/public/musixtex/xgreg25.mf
new file mode 100644
index 00000000000..529c7ec7ada
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xgreg25.mf
@@ -0,0 +1,28 @@
+
+font_identifier:="musix25";
+
+mode_setup;
+
+font_size 25pt#;
+
+nhh#:=6.25pt#;
+nhw#:=7.5pt#;
+gregwidth#:=0.5*sqrt(2)*nhw#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.15pt;
+beamht#:=0.48nhh#;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+input musixgen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xgreg29.mf b/Master/texmf-dist/fonts/source/public/musixtex/xgreg29.mf
new file mode 100644
index 00000000000..3a2293e7d41
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xgreg29.mf
@@ -0,0 +1,10 @@
+
+font_identifier:="xgreg29";
+
+mode_setup;
+
+font_size 29pt#;
+
+nhh#:=7.2pt#;
+
+input xgreggen
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xgreggen.mf b/Master/texmf-dist/fonts/source/public/musixtex/xgreggen.mf
new file mode 100644
index 00000000000..6954eaa538f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xgreggen.mf
@@ -0,0 +1,369 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% this is xgreggen.mf (c)
+%
+% Version T.67 [January 97]
+%
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+
+nhw#:=1.2*nhh#;
+
+thin#:=1/50designsize;
+med#:=1/33designsize;
+thick#:=1/16designsize;
+
+thinwidth := 0.125pt;
+beamht#:=0.48nhh#;
+%gregwidth#:=0.5*sqrt(2)*nhh#;
+gregwidth#:=0.6*nhh#;
+smallgreg:=0.5;
+
+define_pixels(nhh,nhw,beamht,gregwidth);
+define_blacker_pixels(thin,med,thick);
+
+pair ne,se,sw,nw; %northeast,southeast,southwest,northwest
+ne = up+right; se = down+right; sw = down+left; nw = up+left;
+
+font_x_height nhh#;
+font_quad nhw#;
+
+pair pone, ptwo;
+transform t;
+path p;
+
+hlthick=.2pt;
+lthick=.4pt;
+
+greglangle:=18; gregrlangle:=180+greglangle;
+greguangle:=26; gregruangle:=180+greguangle;
+orisuangle:=40; orisruangle:=180+orisuangle;
+
+diamwidth:=.96 gregwidth; greg_min_diam:=gregwidth-diamwidth;
+diamheight:=1.33 gregwidth;
+deminutae:=0.66; gregwidth_dem:=gregwidth*deminutae;
+aucta_fact:=0.33gregwidth;
+shave:=.3gregwidth;
+
+pen line_pen, med_pen, coda_pen, thin_pen;
+med_pen:= pencircle scaled med;
+line_pen:= pencircle scaled lthick;
+coda_pen:= pencircle xscaled 1.25thick yscaled max(1,.75med);
+thin_pen:= pencircle scaled max(1,.25pt);
+
+picture save_pic, elem_pic;
+
+%%%%%%%%%%%%%%%
+% basic def's %
+%%%%%%%%%%%%%%%
+
+def savepic = save_pic:= currentpicture enddef;
+def save_elempic = elem_pic:= currentpicture enddef;
+def callpic = currentpicture:= save_pic enddef;
+
+def mirror (expr pone, ptwo) =
+ currentpicture:=currentpicture reflectedabout(round(pone),round(ptwo))
+enddef;
+
+def add_mirror (expr pone, ptwo) =
+ addto currentpicture also currentpicture
+ reflectedabout (round(pone), round(ptwo))
+enddef;
+
+def call_mirror (expr pone, ptwo) = callpic; mirror (pone, ptwo) enddef;
+
+def add_shift (expr pone, ptwo) =
+ addto currentpicture also currentpicture shifted (pone, ptwo)
+enddef;
+
+def call_add_shift (expr pone, ptwo) =
+ callpic; add_shift (pone, ptwo)
+enddef;
+
+def add_elempic (expr pone, ptwo) =
+ addto currentpicture also elem_pic shifted (pone, ptwo)
+enddef;
+
+def call_add_save_elempic (expr pone, ptwo) =
+ callpic; add_elempic(pone, ptwo); savepic
+enddef;
+
+def shift_pic (expr pone, ptwo) =
+ currentpicture:=currentpicture shifted (round(pone),round(ptwo))
+enddef;
+
+def fill_circle (expr diameter, zshift) =
+ fill fullcircle scaled diameter shifted zshift
+enddef;
+
+def fill_square (expr xwidth, ywidth, zshift) =
+ fill unitsquare xscaled xwidth yscaled ywidth shifted zshift
+enddef;
+
+%
+
+% eobasicdefs ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+%%%%%%%
+message ("<noteheads>");
+%%%%%%%
+
+NHW=nhw+hlthick;
+
+beginchar(0, gregwidth#, .5nhh#, .5nhh#); "dummy square";
+endchar;
+
+beginchar(18, smallgreg*gregwidth#, .5nhh#, .5nhh#); "small dummy square";
+endchar;
+
+
+beginchar(1, 0, .5nhh#, .5nhh#); "filled diamond";
+ x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4=0.5gregwidth;
+ y1=y3=0; y2=-y4=0.5diamheight;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3--z4--cycle;
+ draw z1--z2--z3--z4--cycle;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(2, 0, .5nhh#, .5nhh#); "filled diamond aucta";
+ x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4=0.5gregwidth;
+ y1=y3=0; y2=-y4=0.5diamheight;
+ x5=x1+hlthick; y5=1.5y4;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3{sw+down}..{left+0.3up}z5--z5{right}..z4--cycle;
+ draw z1--z2--z3{sw+down}..{left+0.3up}z5--z5{right}..z4--cycle;
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(3, 0, .5nhh#, .5nhh#); "apostropha";
+ x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4+0.1gregwidth=0.5gregwidth;
+ y1=y3=0; y2=0.5gregwidth+0.5greg_min_diam-hlthick;
+ y4=-y2-0.2gregwidth;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3{left+1.5down}..{left+0.6down}z4--z4{right+2up}..{left+0.1up}cycle;
+ draw z1--z2--z3{left+1.5down}..{left+0.6down}z4--z4{right+2up}..{left+0.1up}cycle;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(4, 0, .5nhh#, .5nhh#); "filled diamond deminutae";
+ x1:=0.5greg_min_diam*deminutae+hlthick;
+ x3=gregwidth_dem-x1; x2=x4=0.5gregwidth_dem;
+ y1=y3=0; y2=-y4=0.5diamheight*deminutae;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3--z4--cycle;
+ draw z1--z2--z3--z4--cycle;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(5, 0, .5nhh#, .5nhh#); "gregorian punctum";
+ x1=x4=hlthick; x2=x3=gregwidth+hlthick; y1=y2=-y3=-y4=.5gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(13, 0, .5nhh#, .5nhh#); "mirrored gregorian punctum";
+ callpic;
+ mirror(origin, right);
+endchar;
+
+beginchar(6, 0, .5nhh#, .5nhh#); "gregorian virga left";
+ callpic;
+ fill_square (lthick, 1.5nhh,(0, -1.5nhh));
+endchar;
+
+beginchar(7, 0, .5nhh#, .5nhh#); "gregorian virga right";
+ callpic;
+ fill_square (lthick, 1.5nhh,(gregwidth, -1.5nhh));
+endchar;
+
+beginchar(8, 0, .5nhh#, .5nhh#); "gregorian punctum aucta down";
+ x1=x4=hlthick; x2=x3=gregwidth+hlthick;
+ y1=y2+aucta_fact=-y3-aucta_fact=-y4=.5gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(9, 0, .5nhh#, .5nhh#); "gregorian punctum aucta up";
+callpic;
+mirror(origin,right);
+endchar;
+
+beginchar(10, 0, .5nhh#, .5nhh#); "oriscus";
+ x1=x4=hlthick; x2=x3=gregwidth+hlthick; y1=y2=-y3=-y4=.5gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir orisuangle}..{dir orisuangle}z2--z3{dir orisruangle}..{dir orisruangle}z4--cycle;
+ draw z1{dir orisuangle}..{dir orisuangle}z2--z3{dir orisruangle}..{dir orisruangle}z4--cycle;
+ penlabels (1,2,3,4);
+endchar;
+
+beginchar(11, 0, .5nhh#, .5nhh#); "apostropha aucta";
+ x1:=0.5greg_min_diam+hlthick; x3=gregwidth-x1; x2=x4=0.5gregwidth;
+ y1=y3=0; y2=0.5gregwidth+0.5greg_min_diam-hlthick;
+ y4=-y2-0.2gregwidth; y5=y4; x5=x1;
+ pickup pencircle scaled lthick;
+ fill z1--z2--z3{left+1.5down}..{left+0.6down}z4..z5--z5{right}..{left+0.1up}cycle;
+ draw z1--z2--z3{left+1.5down}..{left+0.6down}z4..z5--z5{right}..{left+0.1up}cycle;
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(12, 0, .5nhh#, .5nhh#); "small gregorian punctum";
+ x1=x4=hlthick; x2=x3=smallgreg*gregwidth+hlthick;
+ y1=y2=-y3=-y4=.5smallgreg*gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+endchar;
+
+beginchar(14, 0, .5nhh#, .5nhh#); "mirrored small gregorian punctum";
+ callpic;
+ mirror(origin, right);
+endchar;
+
+beginchar(15, gregwidth#, .5nhh#, .5nhh#); "podatus bottom";
+ fill_square(gregwidth+lthick, gregwidth, (0, -0.5gregwidth));
+endchar;
+
+beginchar(16, gregwidth#, .5nhh#, .5nhh#); "small podatus bottom";
+ fill_square(gregwidth+lthick, gregwidth-shave, (0, -0.5gregwidth));
+endchar;
+
+beginchar(17, 0, .5nhh#, .5nhh#); "gregorian punctum shaved bottom";
+ x1=x4=hlthick; x2=x3=gregwidth+hlthick; y1=y2=-y3+shave=-y4+shave=.5gregwidth-hlthick;
+ pickup pencircle scaled lthick;
+ fill z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ draw z1{dir greguangle}..z2--z3..{dir gregrlangle}z4--cycle;
+ shift_pic(0,-hlthick);
+ savepic;
+ penlabels (1,2,3,4);
+endchar;
+
+def square (expr mw)=
+ fill_square (sqrt(2)*.5mw, max(1,thin), origin) rotated -45;
+ fill_square (sqrt(2)*.5mw, .15nhw, (0,-.15nhw)) rotated 45;
+ save_elempic;
+ mirror (origin,up);
+ mirror (origin,left);
+ shift_pic (mw+.5,0);
+ add_elempic(0,0);
+% mirror (origin,right);% I've seen this too, somewhere ...
+enddef;
+
+beginchar(118, 0, .5nhh#, .5nhh#); "deep porrectus";
+ x1=x4=0; x2=x3=3*gregwidth+lthick;
+ y1=-y4=.5gregwidth-lthick; y2=y1-2nhh; y3=y4-2nhh;
+ z5=z1+(0,0.3gregwidth);
+ fill z5..{right+0.4down}z2--z3{left+0.4up}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -2nhh));
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(119, 0, .5nhh#, .5nhh#); "low porrectus";
+ x1=x4=0; x2=x3=3*gregwidth+lthick;
+ y1=-y4=.5gregwidth-lthick; y2=y1-1.5nhh; y3=y4-1.5nhh;
+ z5=z1+(0,0.2gregwidth);
+ fill z1..{right+0.4down}z2--z3{left+0.4up}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -2nhh));
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(120, 0, .5nhh#, .5nhh#); "porrectus";
+ x1=x4=0; x2=x3=3*gregwidth+lthick;
+ y1=-y4=.5gregwidth-lthick; y2=y1-nhh; y3=y4-nhh;
+ z5=z1+(0,0.1gregwidth);
+ fill z5..{right}z2--z3{left}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -1.5nhh));
+ penlabels (1,2,3,4,5);
+endchar;
+
+beginchar(121, 0, .5nhh#, .5nhh#); "soft porrectus";
+ x1=x4=0; x2=x3=3*gregwidth+lthick;
+ y1=-y4=.5gregwidth-lthick; y2=y1-0.5nhh; y3=y4-0.5nhh;
+ z5=z1+(0,0.1gregwidth);
+ fill z5..{right}z2--z3{left}..z4--cycle; shift_pic(0,hlthick);
+ fill_square (med, 1.5nhh,(0, -1.5nhh));
+ penlabels (1,2,3,4,5);
+endchar;
+
+def quilisma(expr ymidtop, ymidbot) =
+ ydiff:=0.15gregwidth;
+ qdecalage:=.2*gregwidth;
+ ydepth:=0.25gregwidth;
+ x1=x14=-qdecalage+hlthick;
+ x7=x8=gregwidth+hlthick;
+ y1+ydiff-0.5ydepth=ymidtop=y7-ydiff-0.5ydepth;
+ y14+ydiff-0.5ydepth=ymidbot=y8-ydiff-0.5ydepth;
+ 3x3=2x1+x7; 3x5=x1+2x7;
+ 3y3=2y1+y7; 3y5=y1+2y7;
+ 2x2=x1+x3; 2x4=x3+x5; 2x6=x5+x7;
+ 2y2=y1+y3-2ydepth; 2y4=y3+y5-2ydepth; 2y6=y5+y7-2ydepth;
+ 3x12=2x14+x8; 3x10=x14+2x8;
+ 3y12=2y14+y8; 3y10=y14+2y8;
+ 2x13=x14+x12; 2x11=x12+x10; 2x9=x10+x8;
+ 2y13=y14+y12-2ydepth; 2y11=y12+y10-2ydepth; 2y9=y10+y8-2ydepth;
+
+ pickup line_pen;
+
+
+ draw z1{down+0.1right}..z2..z3..z4..z5..z6..{up+0.1right}z7--z8{down}..z9..z10..z11..z12..z13..{up+0.1left}z14--cycle;
+ fill z1{down+0.1right}..z2..z3..z4..z5..z6..{up+0.1right}z7--z8{down}..z9..z10..z11..z12..z13..{up+0.1left}z14--cycle;
+ shift_pic(0,-hlthick);
+enddef;
+
+beginchar(125, 0, .5nhh#, .5nhh#); "quilisma";
+ quilisma(0.5gregwidth-hlthick, -0.5gregwidth+hlthick);
+endchar;
+
+beginchar(126, 0, .5nhh#, .5nhh#); "bottom quilisma";
+ quilisma(0.5gregwidth-hlthick-0.8shave, -0.5gregwidth+hlthick);
+endchar;
+
+%%%%%%%
+message ("<clefs>");
+%%%%%%%
+keygregwidth:=0.5*sqrt(2)*nhw;
+
+beginchar(98, 8/3nhw#, 3.25nhh#, 0); "gregorian C clef";
+ x1=x4=0; x2=x3=keygregwidth; y1=y2=-y3=-y4=.5keygregwidth-lthick;
+ fill z1{dir 15}..z2--z3{dir 165}..z4--cycle;
+ save_elempic;
+ pickup med_pen; draw bot rt z1..{down}(-.01nhw,-.5nhh);
+ shift_pic(nhw,2.5nhh);
+ add_mirror ((0,2nhh),(1,2nhh));
+ savepic;
+ shift_pic (0,-2nhh);
+endchar;
+
+beginchar(122, 8/3nhw#, 4.25nhh#, 0); "gregorian F clef";
+ callpic;
+ add_elempic (.1nhw+0.5med,2nhh);
+ fill_square (med, 1.5nhh, (.75nhw,.8nhh));
+ shift_pic (1/3nhw,-2nhh);
+endchar;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld11.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld11.mf
new file mode 100644
index 00000000000..4b9142ae106
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld11.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld11";
+mode_setup;
+font_size 10.24pt#;
+thick#:=1pt#;
+internote#:=1.28pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld11d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld11d.mf
new file mode 100644
index 00000000000..c98d2ba07a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld11d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld11d";
+mode_setup;
+font_size 10.24pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=1.28pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld13.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld13.mf
new file mode 100644
index 00000000000..c612d42a637
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld13.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld13";
+mode_setup;
+font_size 12.8pt#;
+thick#:=1pt#;
+internote#:=1.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld13d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld13d.mf
new file mode 100644
index 00000000000..00411b4cb09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld13d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld13d";
+mode_setup;
+font_size 12.8pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=1.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld16.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld16.mf
new file mode 100644
index 00000000000..38720a75ac1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld16.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld16";
+mode_setup;
+font_size 16pt#;
+thick#:=1pt#;
+internote#:=2pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld16d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld16d.mf
new file mode 100644
index 00000000000..f2789018373
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld16d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld16d";
+mode_setup;
+font_size 16pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=2pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld20.mf
new file mode 100644
index 00000000000..c36089fcf9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld20d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld20d.mf
new file mode 100644
index 00000000000..4820d2adeea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld20d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld24.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld24.mf
new file mode 100644
index 00000000000..5a03c91cac9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld24.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld24";
+mode_setup;
+font_size 24pt#;
+thick#:=1pt#;
+internote#:=3pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld24d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld24d.mf
new file mode 100644
index 00000000000..2d303dbb6ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld24d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld24d";
+mode_setup;
+font_size 24pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=3pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld29.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld29.mf
new file mode 100644
index 00000000000..766cb83ffc5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld29.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld29";
+mode_setup;
+font_size 28.8pt#;
+thick#:=1pt#;
+internote#:=3.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsld29d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsld29d.mf
new file mode 100644
index 00000000000..820b07c9211
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsld29d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xsld29d";
+mode_setup;
+font_size 28.8pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=3.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsldd20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsldd20.mf
new file mode 100644
index 00000000000..f45dfc8d3f5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsldd20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgend;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xsldu20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xsldu20.mf
new file mode 100644
index 00000000000..1c9409458d4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xsldu20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xsld20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= reflectedabout (origin,right) shifted (-.5mw,0) enddef;
+def T= rotated 180 shifted (0,-mheight) enddef;
+
+input xslgenu;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslgen.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslgen.mf
new file mode 100644
index 00000000000..36096f1055d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslgen.mf
@@ -0,0 +1,94 @@
+%
+% This file is part of MusiXTeX
+%
+% MusiXTeX is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% MusiXTeX is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with MusiXTeX; see the file COPYING. If not, write to
+% the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+% Boston, MA 02111-1307, USA.
+%
+% WpH May, 19, 1997 modified to be dashed.
+%
+
+min_bow:= internote;
+max_bow:=3internote;
+slope:=17.5/100;
+gap:=thick; %Wph length of space between dashes.
+dash:=1.6thick; %Wph Length of each rising or falling dash.
+pointendl:=dash; %WpH length of first and last dash.
+centerdashl:=-dash; %WpH length of center dash.
+if unknown makedotted: makedotted:=0; fi % WpH
+path outerpath, innerpath; %Wph declaration of path variables.
+
+code=-1;
+
+for iht=1 upto 8:
+ for iwd=0 upto 15:
+ beginchar(incr code, 0, 0, 0);
+ mw#:=(minwidth+iwd*delwidth)*pt#;
+ define_pixels(mw);
+ x1 = y1= 0; x3= mw; y3= 2y2'= iht*internote; x2'= .5x3;
+ mheight:=y3;
+ z2-z2'= whatever*dir(angle(z3-z1)+90);
+ my_bow:=min(max_bow, slope*mw);
+ my_bow:=max(my_bow, min_bow);
+ z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
+ (z1'-z2)=whatever*(z1-z2');
+ penpos1(.15thick,(angle(z3-z1)+90));
+ penpos2(thick,(angle(z3-z1)+90));
+ penpos3(.15thick,(angle(z3-z1)+90));
+ penstroke (flex(z1e,z2e,z3e));
+%{{{
+ currentpen:= pencircle;
+ draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
+%}}}
+ %
+ % WpH start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ outerpath:= flex(z1r,z2r,z3r);
+ innerpath:= flex(z1l,z2l,z3l);
+ cl:=abs(z2-z1); %apporximate curve length/2
+ tcount:=(cl-pointendl-0.5centerdashl)/(gap+dash); % number of gaps on rise or fall.
+ tcount:=floor(tcount + .5); %round to nearest int number
+ tinc:=((cl-pointendl-.5centerdashl)/tcount);
+ pickup pencircle scaled gap;
+ for k=0 upto tcount-1:
+ tt:=((pointendl + .5gap) + k*tinc)/(cl);
+ undraw (point tt of outerpath)..(point tt of innerpath);
+ undraw (point (2-tt) of outerpath)..(point (2-tt) of innerpath);
+%
+% I expected the undraw statements to be the following. If the
+% other code fails on your version of metafont, try this:
+%
+% undraw (point .5tt of outerpath)..(point .5tt of innerpath);
+% undraw (point (1-.5tt) of outerpath)..(point (1-.5tt) of innerpath);
+%
+ endfor;
+ cullit;
+ fi
+ % Wph End of added block to make gaps.
+ %
+ currentpicture:=currentpicture t;
+ p:=currentpicture;
+ endchar;
+
+ beginchar(code+128, 0, 0, 0);
+ currentpicture:=p T;
+ endchar;
+
+ endfor
+endfor
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslgend.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslgend.mf
new file mode 100644
index 00000000000..57440d69043
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslgend.mf
@@ -0,0 +1,34 @@
+min_bow:= internote;
+max_bow:=3internote;
+slope:=17.5/100;
+
+code=-1;
+
+for iht=1 upto 16:
+ for iwd=0 upto 15:
+ beginchar(incr code, 0, 0, 0);
+ mw#:=(minwidth+iwd*delwidth)*pt#;
+ define_pixels(mw);
+ x1 = y1= 0; x3= mw; y3= 2y2'= iht*internote; x2'= .5x3;
+ mheight:=y3;
+ z2-z2'= whatever*dir(angle(z3-z1)+90);
+ my_bow:=min(max_bow, slope*mw);
+ my_bow:=max(my_bow, min_bow);
+ z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
+ (z1'-z2)=whatever*(z1-z2');
+ penpos1(.15thick,(angle(z3-z1)+90));
+ penpos2(thick,(angle(z3-z1)+90));
+ penpos3(.15thick,(angle(z3-z1)+90));
+ penstroke (flex(z1e,z2e,z3e));
+%{{{
+ currentpen:= pencircle;
+ draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
+%}}}
+ currentpicture:=currentpicture t;
+ p:=currentpicture;
+ currentpicture:=p T;
+ endchar;
+
+ endfor
+endfor
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslgenu.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslgenu.mf
new file mode 100644
index 00000000000..d7193a4a802
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslgenu.mf
@@ -0,0 +1,33 @@
+min_bow:= internote;
+max_bow:=3internote;
+slope:=17.5/100;
+
+code=-1;
+
+for iht=1 upto 16:
+ for iwd=0 upto 15:
+ beginchar(incr code, 0, 0, 0);
+ mw#:=(minwidth+iwd*delwidth)*pt#;
+ define_pixels(mw);
+ x1 = y1= 0; x3= mw; y3= 2y2'= iht*internote; x2'= .5x3;
+ mheight:=y3;
+ z2-z2'= whatever*dir(angle(z3-z1)+90);
+ my_bow:=min(max_bow, slope*mw);
+ my_bow:=max(my_bow, min_bow);
+ z1'=(z1-(0,my_bow)) rotated angle(z3-z1);
+ (z1'-z2)=whatever*(z1-z2');
+ penpos1(.15thick,(angle(z3-z1)+90));
+ penpos2(thick,(angle(z3-z1)+90));
+ penpos3(.15thick,(angle(z3-z1)+90));
+ penstroke (flex(z1e,z2e,z3e));
+%{{{
+ currentpen:= pencircle;
+ draw (flex(z1,z2,z3));% draw z1--z3; draw z2'--z2--z1'--z1;
+%}}}
+ currentpicture:=currentpicture t;
+ p:=currentpicture;
+ endchar;
+
+ endfor
+endfor
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd.mf
new file mode 100644
index 00000000000..c20d3e84e96
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd.mf
@@ -0,0 +1,69 @@
+%=== xslhd.mf ============================================================
+% ick 96-08-24 modified to be "dashed" (each modification marked with WpH or ick ).
+% mods a la mods in xslhu.mf by WpH
+% ick 98-05-22 changed constants for gap, dash, pointendl, bluntendl
+%
+
+thick#:=1pt#;
+stepwidth#:=designsize/8;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture save_pic;
+numheights:=16;
+numlengths:=8;%(12-96pt)
+gap:=thick; %was 1.5; WpH length of space between dashes. ick
+dash:=1.6thick; % 2.5; WpH length of each middle dash. ick
+pointendl:=-0.00dash; % -1.0; WpH length of first dash near point end.
+bluntendl:=-0.00thick; % -0.5; WpH length of last dash near blunt end.
+if unknown makedotted: makedotted:=0; fi % WpH
+path outerpath, innerpath;
+
+code=-1;
+for j=1 upto numlengths:
+ slength#:=j*12pt#;
+ define_pixels(slength);
+
+ for i=1 upto numheights:
+ beginchar(incr code, slength#, 0, 0);
+ x1=y1=0;x2=slength;y2= i*stepwidth;
+ end_angle:=min(2angle(z2-z1),90);
+ penpos1(thick,90);
+ penpos2(max(1,.15thick),min(2angle(z2-z1)+90,180));
+ outerpath:=z1r{dir(1)}..{dir(end_angle-1)}z2r; %ick
+ innerpath:=z2l{dir(end_angle-180)}..z1l{left}; %ick
+ fill outerpath--innerpath--cycle; %WpH created names for
+ % outer and inner paths.
+ %
+ % WpH start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ mw:=abs(x2,y2); %approximate length of curve.
+ tcount:=(mw-pointendl-bluntendl)/(gap+dash); % number of gaps.
+ tcount:=floor(tcount + .5); %round to nearest int number.
+ tinc:=((mw-pointendl-bluntendl)/tcount)/mw;
+ pickup pencircle scaled gap;
+ for k=0 upto tcount-1:
+ t:= (pointendl + .5gap)/mw + k*tinc;
+ undraw (point t of outerpath)..
+ (point (1-t) of innerpath); % for "90 degree" dash edges.
+% undraw ((point t of outerpath)+(0,1.5pt))..
+% ((point t of outerpath)-(0,1.5pt)); % for vertical edges.
+ endfor;
+ cullit;
+ fi
+ % WpH end of added block to make gaps.
+ %
+ save_pic:=currentpicture;
+ endchar;
+
+ beginchar(128+code, slength#, 0, 0);
+ currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
+ endchar;
+ endfor
+
+endfor
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd11.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd11.mf
new file mode 100644
index 00000000000..215a47fbee3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd11.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd11";
+mode_setup;
+font_size 10.24pt#;
+input xslhd;
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd11d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd11d.mf
new file mode 100644
index 00000000000..025fffdf3ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd11d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslhd11d";
+mode_setup;
+font_size 10.24pt#;
+makedotted=1;
+input xslhd;
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd13.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd13.mf
new file mode 100644
index 00000000000..930c0aef580
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd13.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhd13";
+mode_setup;
+font_size 12.8pt#;
+input xslhd;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd13d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd13d.mf
new file mode 100644
index 00000000000..ae7769c9080
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd13d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd13d";
+mode_setup;
+font_size 12.8pt#;
+makedotted=1;
+input xslhd;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd16.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd16.mf
new file mode 100644
index 00000000000..aacbd5ac1a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd16.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd16";
+mode_setup;
+font_size 16pt#;
+input xslhd;
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd16d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd16d.mf
new file mode 100644
index 00000000000..9d93fb88d98
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd16d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslh16d";
+mode_setup;
+font_size 16pt#;
+makedotted=1;
+input xslhd;
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd20.mf
new file mode 100644
index 00000000000..d0bb66a5d23
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd20.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhd20";
+mode_setup;
+font_size 20pt#;
+input xslhd;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd20d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd20d.mf
new file mode 100644
index 00000000000..cb24d30d82b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd20d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+input xslhd;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd24.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd24.mf
new file mode 100644
index 00000000000..650eba1aa92
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd24.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhd24";
+mode_setup;
+font_size 24pt#;
+input xslhd;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd24d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd24d.mf
new file mode 100644
index 00000000000..e7a65633e9a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd24d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd24d";
+mode_setup;
+font_size 24pt#;
+makedotted=1;
+input xslhd;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd29.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd29.mf
new file mode 100644
index 00000000000..db52074175d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd29.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhd24";
+mode_setup;
+font_size 28.8pt#;
+input xslhd;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhd29d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhd29d.mf
new file mode 100644
index 00000000000..3bd7e2c2d75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhd29d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhd29d";
+mode_setup;
+font_size 28.8pt#;
+makedotted=1;
+input xslhd;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu.mf
new file mode 100644
index 00000000000..7c7ff1d524e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu.mf
@@ -0,0 +1,68 @@
+%=== xslhu.mf ============================================================
+% WpH 6-19-96 modified to be "dashed" (each modification marked with WpH).
+% 96-08-24 constants fixed (ick)
+% ick 98-05-22 changed constants for gap, dash, pointendl, bluntendl
+%
+
+thick#:=1pt#;
+stepwidth#:=designsize/8;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture save_pic;
+numheights:=16;
+numlengths:=8;%(12-96pt)
+gap:=thick; %was 1.5; WpH length of space between dashes. ick
+dash:=1.6thick; % 2.5; WpH length of each middle dash. ick
+pointendl:=-0.00dash; % -1.0; WpH length of first dash near point end.
+bluntendl:=-0.00thick; % -0.5; WpH length of last dash near blunt end.
+if unknown makedotted: makedotted:=0; fi % WpH
+path outerpath, innerpath;
+
+code=-1;
+for j=1 upto numlengths:
+ slength#:=j*12pt#;
+ define_pixels(slength);
+
+ for i=1 upto numheights:
+ beginchar(incr code, slength#, 0, 0);
+ x1=y1=0;x2=slength;y2=-i*stepwidth;
+ end_angle:=max(2angle(z2-z1),-90);
+ penpos1(thick,90);
+ penpos2(max(1,.15thick),end_angle+90);
+ outerpath:=z1r{dir(1)}..{dir(end_angle-1)}z2r; %WpH
+ innerpath:=z2l{dir(end_angle+180)}..z1l{left}; %WpH
+ fill outerpath--innerpath--cycle; %WpH created names for
+ % outer and inner paths.
+ %
+ % WpH start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ mw:=abs(x2,y2); %approximate length of curve.
+ tcount:=(mw-pointendl-bluntendl)/(gap+dash); % number of gaps.
+ tcount:=floor(tcount + .5); %round to nearest int number.
+ tinc:=((mw-pointendl-bluntendl)/tcount)/mw;
+ pickup pencircle scaled gap;
+ for k=0 upto tcount-1:
+ t:= (pointendl + .5gap)/mw + k*tinc;
+ undraw (point t of outerpath)..
+ (point (1-t) of innerpath); % for "90 degree" dash edges.
+% undraw ((point t of outerpath)+(0,1.5pt))..
+% ((point t of outerpath)-(0,1.5pt)); % for vertical edges.
+ endfor;
+ cullit;
+ fi
+ % WpH end of added block to make gaps.
+ %
+ save_pic:=currentpicture;
+ endchar;
+
+ beginchar(128+code, slength#, 0, 0);
+ currentpicture:=save_pic reflectedabout((.5slength,0),(.5slength, 1));
+ endchar;
+ endfor
+
+endfor
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu11.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu11.mf
new file mode 100644
index 00000000000..f1b0c699989
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu11.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu11";
+mode_setup;
+font_size 10.24pt#;
+input xslhu.mf
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu11d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu11d.mf
new file mode 100644
index 00000000000..cb4bc578363
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu11d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu11d";
+mode_setup;
+font_size 10.24pt#;
+makedotted=1;
+input xslhu;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu13.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu13.mf
new file mode 100644
index 00000000000..162c5037701
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu13.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu13";
+mode_setup;
+font_size 12.8pt#;
+input xslhu.mf
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu13d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu13d.mf
new file mode 100644
index 00000000000..cbee8026ad3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu13d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu13d";
+mode_setup;
+font_size 12.8pt#;
+makedotted=1;
+input xslhu;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu16.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu16.mf
new file mode 100644
index 00000000000..6cfc184d8e4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu16.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu16";
+mode_setup;
+font_size 16pt#;
+input xslhu.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu16d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu16d.mf
new file mode 100644
index 00000000000..0dc847a4111
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu16d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslhu16d";
+mode_setup;
+font_size 16pt#;
+makedotted=1;
+input xslhu;
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu20.mf
new file mode 100644
index 00000000000..94c6f00d1bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu20.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu20";
+mode_setup;
+font_size 20pt#;
+input xslhu.mf
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu20d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu20d.mf
new file mode 100644
index 00000000000..d9e6991c0d5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu20d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+input xslhu;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu24.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu24.mf
new file mode 100644
index 00000000000..399813c1104
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu24.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu24";
+mode_setup;
+font_size 24pt#;
+input xslhu.mf
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu24d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu24d.mf
new file mode 100644
index 00000000000..9752354b882
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu24d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu24d";
+mode_setup;
+font_size 24pt#;
+makedotted=1;
+input xslhu
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu29.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu29.mf
new file mode 100644
index 00000000000..f5155abdc73
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu29.mf
@@ -0,0 +1,4 @@
+font_identifier:="xslhu29";
+mode_setup;
+font_size 28.8pt#;
+input xslhu.mf
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhu29d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhu29d.mf
new file mode 100644
index 00000000000..c8224bc3913
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhu29d.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhu29d";
+mode_setup;
+font_size 28.8pt#;
+makedotted=1;
+input xslhu \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhz-o.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhz-o.mf
new file mode 100644
index 00000000000..850c084e4b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhz-o.mf
@@ -0,0 +1,51 @@
+%=== xslhz.mf======================================================
+% WpH May 19, 1997 modified to be dashed
+% ick 98-05-22 modified constants for gap, dash, endlen.
+%
+
+thick#:=1pt#;
+stepwidth#:=4pt#;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture pic;
+
+gap=thick; %was 1.5; WpH new parameter: gap length. ick
+dash=1.6thick; % 2.5; WpH new parameter: dash length. ick
+endlen=-0.0thick; % -1.0; WpH new: length of dash at ends measured to center of gap. ick
+if unknown makedotted: makedotted:=0; fi % WpH
+slope=1/100;
+
+for i=1 upto 100:
+ beginchar((i-1),0,0,0);
+ x3=-x1=.5i*stepwidth; x2=y1=y3=0; y2=slope*i*stepwidth;
+ penpos1(thick,90); penpos2(thick,90); penpos3(thick,90);
+ penstroke z1e..z2e..z3e;
+ %
+ % wph start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ pickup pencircle scaled gap;
+ cl:=abs(z3-z1);
+ xcount:=(cl-2endlen)/(gap+dash); % number of gaps.
+ xcount:=floor(xcount + .5); %round to nearest int number.
+ xinc:=(cl-2endlen)/xcount;
+ for j=0 upto xcount-1:
+ xcur:=x1+endlen+j*xinc;
+ undraw (xcur,y1)..(xcur,y2+.6thick);
+ endfor;
+ cullit;
+ fi
+ % wph end of added block to make gaps.
+ %
+ pic:= currentpicture;
+ endchar;
+
+ beginchar((128+i-1),0,0,0);
+ currentpicture:= pic reflectedabout(origin,right);
+ endchar;
+endfor
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhz.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhz.mf
new file mode 100644
index 00000000000..00b1efd9097
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhz.mf
@@ -0,0 +1,52 @@
+%=== xslhz.mf======================================================
+% WpH May 19, 1997 modified to be dashed
+% ick 98-05-22 modified constants for gap, dash, endlen.
+%
+
+thick#:=1pt#;
+stepwidth#:=4pt#;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture pic;
+
+gap=thick; %was 1.5; WpH new parameter: gap length. ick
+dash=1.6thick; % 2.5; WpH new parameter: dash length. ick
+endlen=-0.0thick; % -1.0; WpH new: length of dash at ends measured to center of gap. ick
+if unknown makedotted: makedotted:=0; fi % WpH
+slope=1/100;
+
+for i=1 upto 100:
+ beginchar((i-1),0,0,0);
+% x3=-x1=.5i*stepwidth; x2=y1=y3=0; y2=slope*i*stepwidth;
+ x3=-x1=good.x(.5i*stepwidth); x2=y1=y3=0; y2=slope*i*stepwidth;
+ penpos1(thick,90); penpos2(thick,90); penpos3(thick,90);
+ penstroke z1e..z2e..z3e;
+ %
+ % wph start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ pickup pencircle scaled gap;
+ cl:=abs(z3-z1);
+ xcount:=(cl-2endlen)/(gap+dash); % number of gaps.
+ xcount:=floor(xcount + .5); %round to nearest int number.
+ xinc:=(cl-2endlen)/xcount;
+ for j=0 upto xcount-1:
+ xcur:=x1+endlen+j*xinc;
+ undraw (xcur,y1)..(xcur,y2+.6thick);
+ endfor;
+ cullit;
+ fi
+ % wph end of added block to make gaps.
+ %
+ pic:= currentpicture;
+ endchar;
+
+ beginchar((128+i-1),0,0,0);
+ currentpicture:= pic reflectedabout(origin,right);
+ endchar;
+endfor
+end
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhz20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhz20.mf
new file mode 100644
index 00000000000..e0f713c40da
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhz20.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslhz20";
+mode_setup;
+font_size 20pt#;
+input xslhz;
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslhz20d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslhz20d.mf
new file mode 100644
index 00000000000..6e42e4ad922
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslhz20d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslhz20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+input xslhz;
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu11.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu11.mf
new file mode 100644
index 00000000000..0a11e6012f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu11.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu11";
+mode_setup;
+font_size 10.24pt#;
+thick#:=1pt#;
+internote#:=1.28pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu11d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu11d.mf
new file mode 100644
index 00000000000..60bb5cab987
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu11d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu11d";
+mode_setup;
+font_size 10.24pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=1.28pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu13.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu13.mf
new file mode 100644
index 00000000000..b9f9fb17208
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu13.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu13";
+mode_setup;
+font_size 12.8pt#;
+thick#:=1pt#;
+internote#:=1.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu13d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu13d.mf
new file mode 100644
index 00000000000..f3cb4d62c68
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu13d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu13d";
+mode_setup;
+font_size 12.8pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=1.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu16.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu16.mf
new file mode 100644
index 00000000000..37d07d99fff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu16.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu16";
+mode_setup;
+font_size 16pt#;
+thick#:=1pt#;
+internote#:=2pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu16d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu16d.mf
new file mode 100644
index 00000000000..b7e2cdfdf15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu16d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu16d";
+mode_setup;
+font_size 16pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=2pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu20.mf
new file mode 100644
index 00000000000..0a741c0f542
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu20d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu20d.mf
new file mode 100644
index 00000000000..dee694e5b31
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu20d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu24.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu24.mf
new file mode 100644
index 00000000000..f7ce9d6561d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu24.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu24";
+mode_setup;
+font_size 24pt#;
+thick#:=1pt#;
+internote#:=3pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu24d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu24d.mf
new file mode 100644
index 00000000000..8afa8b7ec7b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu24d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu24d";
+mode_setup;
+font_size 24pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=3pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu29.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu29.mf
new file mode 100644
index 00000000000..68383431b37
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu29.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu29";
+mode_setup;
+font_size 28.8pt#;
+thick#:=1pt#;
+internote#:=3.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslu29d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslu29d.mf
new file mode 100644
index 00000000000..991569d29a9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslu29d.mf
@@ -0,0 +1,21 @@
+font_identifier:="xslu29d";
+mode_setup;
+font_size 28.8pt#;
+makedotted=1;
+thick#:=1pt#;
+internote#:=3.6pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgen;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslud20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslud20.mf
new file mode 100644
index 00000000000..752ae989cb4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslud20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgend;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslup20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslup20.mf
new file mode 100644
index 00000000000..2ba77fcd909
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslup20.mf
@@ -0,0 +1,20 @@
+font_identifier:="xslu20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+internote#:=2.5pt#;
+define_pixels(internote);
+define_blacker_pixels(thick);
+
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+maxwidth:=minwidth+15delwidth;
+fontdimen 5: maxwidth;
+
+picture p;
+
+def t= rotated 180 shifted (.5mw, mheight) enddef;
+def T= rotated 180 shifted (0,mheight) enddef;
+
+input xslgenu;
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslz.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslz.mf
new file mode 100644
index 00000000000..7f051027ffc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslz.mf
@@ -0,0 +1,67 @@
+%=== xslz.mf=======================================================
+% WpH modified to be "dashed" (each modification marked with WpH.
+% 96-08-24 WpH-constants set (ick)
+% ick 98-05-22 modified constants for gap, dash, endlen.
+%
+thick#:=1pt#;
+nhh#:=5pt#;
+define_pixels(nhh);
+define_blacker_pixels(thick);
+minwidth:=8pt#;
+delwidth:=4pt#;
+
+numslurs:=54;
+maxwidth:=minwidth+(numslurs-1)*delwidth;
+
+fontdimen 5: maxwidth;
+
+picture p;
+
+min_bow:= .4nhh;
+max_bow:= 1.75nhh;
+slope:= 10/100;
+
+code=-1;
+gap=thick; %was 1.5; WpH new parameter: gap length. ick
+dash=1.6thick; % 2.5; WpH new parameter: dash length. ick
+endlen=-0.0thick; % -1.0; WpH new: length of dash at ends measured to center of gap. ick
+if unknown makedotted: makedotted:=0; fi % WpH
+
+for i=1 upto numslurs:
+
+ beginchar(incr code, 0, 0, 0);
+ mw:=(minwidth+code*delwidth)*pt;
+ x3= -x1= .5mw; x2= y1= y3 = 0;
+ y2= max(min_bow, slope*mw);
+ y2:= min(y2, max_bow);
+ penpos1(.15thick,90); penpos2(thick,90); penpos3(.15thick,90);
+ penstroke (flex(z1e,z2e,z3e));
+ currentpen:= pencircle; draw (flex(z1,z2,z3));
+ %
+ % wph start of added block to make gaps.
+ if makedotted<>1:
+ % variable makedotted has not been given a value.
+ % Dotted lines will not be made.
+ else:
+ cullit;
+ pickup penrazor scaled gap;
+ xcount:=(mw-2endlen)/(gap+dash); % number of gaps.
+ xcount:=floor(xcount + .5); %round to nearest int number.
+ xinc:=(mw-2endlen)/xcount;
+ for j=0 upto xcount-1:
+ xcur:=x1+endlen+j*xinc;
+ undraw (xcur,y1)..(xcur,y2+.6thick);
+ endfor;
+ cullit;
+ fi
+ % wph end of added block to make gaps.
+ %
+ p:=currentpicture;
+ endchar;
+
+ beginchar(code+54, 0, 0, 0);
+ currentpicture:=p reflectedabout (origin, right);
+ endchar;
+
+endfor
+end
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslz20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslz20.mf
new file mode 100644
index 00000000000..b91160db768
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslz20.mf
@@ -0,0 +1,5 @@
+font_identifier:="xslz20";
+mode_setup;
+font_size 20pt#;
+input xslz;
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xslz20d.mf b/Master/texmf-dist/fonts/source/public/musixtex/xslz20d.mf
new file mode 100644
index 00000000000..f1e9794d521
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xslz20d.mf
@@ -0,0 +1,6 @@
+font_identifier:="xslz20d";
+mode_setup;
+font_size 20pt#;
+makedotted=1;
+input xslz;
+
diff --git a/Master/texmf-dist/fonts/source/public/musixtex/xtie20.mf b/Master/texmf-dist/fonts/source/public/musixtex/xtie20.mf
new file mode 100644
index 00000000000..99f24548421
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/musixtex/xtie20.mf
@@ -0,0 +1,24 @@
+font_identifier:="xtie20";
+mode_setup;
+font_size 20pt#;
+thick#:=1pt#;
+stepwidth#:=4pt#;
+define_pixels(stepwidth);
+define_blacker_pixels(thick);
+picture pic;
+
+slope=.009;
+
+for i=1 upto 100:
+ beginchar((i-1),0,0,0);
+ x3=-x1=.5i*stepwidth; x2=y1=y3=0; y2=slope*i*stepwidth;
+ penpos1(thick,90); penpos2(thick,90); penpos3(thick,90);
+ penstroke z1e..z2e..z3e;
+ pic:= currentpicture;
+ endchar;
+
+ beginchar((128+i-1),0,0,0);
+ currentpicture:= pic reflectedabout(origin,right);
+ endchar;
+endfor
+end
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdatoms.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdatoms.mf
new file mode 100644
index 00000000000..4c47bf77232
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdatoms.mf
@@ -0,0 +1,210 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdatoms.mf
+% Date: November 5, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package documentation mxd4tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def vowelcarrier =
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ x3=scribble+1/3[x1,x8];
+ z3=(x3,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ x5=scribble+2/3[x1,x8];
+ z5=(x5,y1+scribble);
+ z6=(scribble+x5,y2+scribble);
+ z7=(scribble+x8,y2+scribble);
+ rt z8=(scribble+margin+awidth,y1+scribble);
+ draw z1--z2--z3--z4--z5--z6--z7--z8;
+enddef;
+
+def empty_vowel =
+ pickup pensquare scaled .5thick;
+ undraw z1--z2--z3--z4--z5--z6--z7--z8;
+enddef;
+
+def vowel_i (expr li, re) = % Vowel i
+ numeric x[]; numeric y[];
+ x1=li;
+ x2=x4=1/2[x1,x3];
+ x3=re;
+ y1=y3=height;
+ y2=2/3[height,vheight];
+ y4=vheight;
+ fill z1..z2..z3 & z3..z4..z1 & cycle;
+ numeric x[]; numeric y[];
+enddef;
+
+def vowel_e (expr li, re) = % Vowel oe
+ numeric x[]; numeric y[];
+ squarepen;
+ top lft z1=(li,vheight);
+ rt z2=(re,y1);
+ draw z1--z2;
+ pickup pensquare scaled 1/3thick;
+ top rt z3=(re,vheight);
+ bot z4=(x3,height);
+ draw z3--z4;
+ numeric x[]; numeric y[];
+enddef;
+
+def vowel_ue (expr li, re, v) = % Vowel oe
+ numeric x[]; numeric y[];
+ squarepen;
+ bot lft z1=(li,-depth-v);
+ rt z2=(re,y1);
+ draw z1--z2;
+ pickup pensquare scaled 1/3thick;
+ bot rt z3=(re,-depth-v);
+ top z4=(x3,-v);
+ draw z3--z4;
+ numeric x[]; numeric y[];
+enddef;
+
+def vowel_u (expr li, re, v) = % Vowel i
+ numeric x[]; numeric y[];
+ x1=li;
+ x2=x4=1/2[x1,x3];
+ x3=re;
+ y1=y3=-v;
+ y2=2/3[y1,y4];
+ y4=-depth-v;
+ fill z1..z2..z3 & z3..z4..z1 & cycle;
+ numeric x[]; numeric y[];
+enddef;
+
+def vowel_o (expr li, re) = % Vowel o
+ numeric x[]; numeric y[];
+ z1r=(li,vheight);
+ z2r=(x3-.75thick,vheight);
+ z3l=(1/2[x1,x5],height);
+ z4r=(x3+.75thick,vheight);
+ z5r=(re,vheight);
+ penpos1(thick,100);
+ penpos2(thick,90);
+ penpos3(thin,90);
+ penpos4(thick,90);
+ penpos5(thick,80);
+ penstroke z1e--z2e--z3e--z4e--z5e;
+ numeric x[]; numeric y[];
+enddef;
+
+def vowel_oe (expr li, re) = % Vowel oe
+ numeric x[]; numeric y[];
+ squarepen;
+ top lft z1=(li,vheight);
+ rt z2=(re,y1);
+ z3=(1/2[x1,x2],y1);
+ bot z4=(x3,height);
+ draw z1--z2; draw z3--z4;
+ numeric x[]; numeric y[];
+enddef;
+
+def kya = % Similar to kra, we build u-, ue-ligatures!
+ squarepen;
+ bot lft z1=(scribble+margin,0+scribble);
+ top z2=(scribble+x1,height+scribble);
+ rt z3=(scribble+margin+cwidth,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ z5=(scribble+1/2[x2,x3],y1+scribble);
+ z6=(scribble+x5,y2+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+ z7=(scribble+margin,-0/8depth+scribble);
+ z8=(scribble+1/2[x7,x9],-3/4depth+scribble);
+ z9=(scribble+1/2[x7,x11],-0/8depth+scribble);
+ z10=(scribble+1/2[x9,x11],y8+scribble);
+ z11=(scribble+margin+cwidth,y7+scribble);
+ z12=(scribble+x10,-2/4depth+scribble);
+ z13=(scribble+x8,y12+scribble);
+ fill z7..z8..z9 & z9..z10..z11 & z11..z12..z9 & z9..z13..z7 & cycle;
+enddef;
+
+def kra = % We define kra due to its enormous underlength
+ % which requires special -u, -ue-ligatures
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ top rt z2=(scribble+cwidth+margin,height+scribble);
+ bot z3=(scribble+x2,-depth+n+scribble);
+ z4=(scribble+x1,1/2height+scribble);
+ bot z5=(scribble+x1,0+scribble);
+ z6=(scribble+1/2[x1,x2],y5+scribble);
+ z7=(scribble+x6,y1+scribble);
+ draw z1--z2--z3;
+ draw z4--z5--z6--z7;
+ z8l=(scribble+cwidth+margin,-depth+scribble);
+ penpos8(2/3thick,90); %
+ z9r=(scribble+1/3[x1,x2],-1/3depth+scribble);
+ penpos9(2/3thick,90); %
+ z10=(scribble+margin,-2/3depth+scribble);
+ penpos10(2/3thick,90); %
+ penstroke z8e..z9e..z10e;
+enddef;
+
+def kla = % Well, same reason as kya and kra!
+ squarepen;
+ top z1=(scribble+1/2[x4,x5],height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ lft z3=(scribble+margin,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ rt z5=(scribble+margin+cwidth,y1+scribble);
+ bot z6=(scribble+x5,0+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+ z11r=(scribble+margin+cwidth,0+scribble);
+ penpos11(thick,0); %
+ z12r=(scribble+3/4[x3,x5],-3/4depth+scribble);
+ penpos12(3/4thick,-90); %
+ z13l=(scribble+1/4[x3,x5],-1/4depth+scribble);
+ penpos13(3/4thick,-90); %
+ z14l=(scribble+margin,-depth+scribble);
+ penpos14(thick,0); %
+ penstroke z11e..z12e..z13e..z14e;
+enddef;
+
+def b = % The character b
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ rt z3=(scribble+margin+bwidth,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ draw z1--z2--z3--z4;
+enddef;
+
+def basic_r = % The character r. We repeat in another letter.
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ z3=(scribble+1/2[x1,x2],y1+scribble);
+ z4=(scribble+x3,1/2height+scribble);
+ bot z5=(scribble+x1,0+scribble);
+ z6=(scribble+x1,y4+scribble);
+ z7=(scribble+x2,y4+scribble);
+ z8=(scribble+x2,y5);;
+ draw z1--z2; draw z3--z4; draw z5--z6--z7--z8;
+enddef;
+
+def basic_w = % The character w
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ rt z3=(scribble+margin+bwidth,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ draw z1--z2--z3--z4--cycle;
+enddef;
+
+def basic_l = % The character l, needed for a few things.
+ squarepen;
+ bot lft z1=(scribble+margin,0+scribble);
+ top z2=(scribble+x1,height+scribble);
+ z3=(scribble+1/2[x2,x6],y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ rt z5=(scribble+margin+cwidth,y1+scribble);
+ z6=(scribble+x5,y2+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdcodes.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdcodes.mf
new file mode 100644
index 00000000000..4042fc5cb5d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdcodes.mf
@@ -0,0 +1,119 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdcodes.mf
+% Date: November 5, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package documentation mxd4tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+MXD_INIT := 123; % "{" "Xewtee Dorboljin Initial"
+MXD_STOP := 46; % "." "Punctuation"
+MXD_DVC := 96; % "`" "Dummy Vowel Carrier"
+MXD_EVI := 128; % " " "Empty Vowel I"
+MXD_EVE := 129; % " " "Empty Vowel E"
+MXD_EVUE := 130; % " " "Empty Vowel UE"
+MXD_EVU := 131; % " " "Empty Vowel U"
+MXD_EVO := 132; % " " "Empty Vowel O"
+MXD_EVOE := 133; % " " "Empty Vowel OE"
+MXD_VC := 39; % "'" "Vowel Carrier"
+MXD_VI := 136; % " " "Vowel I"
+MXD_VE := 137; % " " "Vowel E"
+MXD_VUE := 138; % " " "Vowel UE"
+MXD_VU := 139; % " " "Vowel U"
+MXD_VO := 140; % " " "Vowel O"
+MXD_VOE := 141; % " " "Vowel OE"
+MXD_LVM := 45; % "-" "Long Vowel Marker"
+MXD_I := 105; % "i" "Vowel i"
+MXD_E := 101; % "e" "Vowel e"
+MXD_UE := 85; % "U" "Vowel ue"
+MXD_U := 117; % "u" "Vowel u"
+MXD_O := 111; % "o" "Vowel o"
+MXD_OE := 79; % "O" "Vowel oe"
+MXD_DU := 87; % "W" "Diphtong u"
+MXD_DI := 73; % "I" "Diphtong i"
+MXD_G := 103; % "g" "Consonant g"
+MXD_K := 107; % "k" "Consonant k"
+MXD_DN := 120; % "\d n" "Consonant dotted n"
+MXD_Z := 122; % "z" "Consonant z"
+MXD_C := 99; % "c" "Consonant c"
+MXD_NNN := 61; % "\=n" "Consonant \=n"
+MXD_D := 100; % "d" "Consonant d"
+MXD_T := 116; % "t" "Consonant t"
+MXD_N := 110; % "n" "Consonant n"
+MXD_B := 98; % "b" "Consonant b"
+MXD_LIGBI := 144; % "bi" "Ligature bi"
+MXD_LIGBE := 145; % "be" "Ligature be"
+MXD_LIGBUE := 146; % "bue" "Ligature bue"
+MXD_LIGBU := 147; % "bu" "Ligature bu"
+MXD_LIGBO := 148; % "bo" "Ligature bo"
+MXD_LIGBOE := 149; % "boe" "Ligature boe"
+MXD_P := 112; % "p" "Consonant p"
+MXD_M := 109; % "m" "Consonant m"
+MXD_Y := 121; % "y" "Consonant y"
+MXD_R := 114; % "r" "Consonant r"
+MXD_W := 119; % "w" "Consonant w"
+MXD_LIGWI := 152; % "wi" "Ligature wi"
+MXD_LIGWE := 153; % "we" "Ligature we"
+MXD_LIGWUE := 154; % "wue" "Ligature wue"
+MXD_LIGWU := 155; % "wu" "Ligature wu"
+MXD_LIGWO := 156; % "wo" "Ligature wo"
+MXD_LIGWOE := 157; % "woe" "Ligature woe"
+MXD_L := 108; % "l" "Consonant l"
+MXD_SH := 36; % "sh" "Consonant sh"
+MXD_S := 115; % "s" "Consonant s"
+MXD_H := 104; % "h" "Consonant h"
+MXD_KDS := 33; % "kds" "Consonant k\d s"
+MXD_A := 97; % "a" "Vowel a"
+MXD_LIGRI := 37; % "ri" "Ligature ri"
+MXD_LIGLI := 38; % "li" "Ligature li"
+MXD_OM := 48; % "om" "Diacritic om"
+MXD_EH := 72; % "H" "Empty H"
+MXD_SG := 40; % "\sg" "Consonant sg"
+MXD_GH := 41; % "gh" "Consonant gh"
+MXD_J := 106; % "j" "Consonant j"
+MXD_JH := 44; % "jh" "Consonant jh"
+MXD_DT := 84; % "dt" "Consonant \d t"
+MXD_DTH := 49; % "dth" "Consonant \d th"
+MXD_DD := 50; % "dd" "Consonant \d d"
+MXD_DDH := 51; % "ddh" "Consonant \d dh"
+MXD_DDN := 52; % "ddn" "Consonant ddn"
+MXD_DDD := 53; % "_d" "Consonant \_d"
+MXD_DDDH := 54; % "_dh" "Consonant \_dh"
+MXD_DB := 55; % "_b" ""
+MXD_DBH := 56; % "_bh" "Consonant \_bh"
+MXD_DS := 57; % "\d s" "Consonant \d s"
+MXD_KY := 58; % "ky" "Ligature ky"
+MXD_LIGKYUE := 178; % "kyue" "Ligature kyue"
+MXD_LIGKYU := 179; % "kyu" "Ligature kyu"
+MXD_KR := 59; % "kr" "Ligature kr"
+MXD_KRUE := 176; % "krue" "Ligature krue"
+MXD_KRU := 177; % "kru" "Ligature kru"
+MXD_KL := 60; % "kl" "Ligature kl"
+MXD_KLUE := 180; % "klue" "Ligature klue"
+MXD_KLU := 181; % "klu" "Ligature klu"
+MXD_KM := 62; % "km" "Ligature km"
+MXD_KK := 63; % "kk" "Ligature kk"
+MXD_DNK := 65; % "\.nk" "Ligature dnk"
+MXD_NC := 69; % "\=nc" "Ligature nc"
+MXD_DDNT := 124; % "\d n\d t" "Ligature ddnt"
+MXD_NT := 126; % "nt" "Ligature nt"
+MXD_MP := 80; % "mp" "Ligature mp"
+MXD_LK := 89; % "lk" "Ligature lk"
+MXD_SHK := 91; % "\vsk" "Ligature shk"
+MXD_SK := 93; % "sk" "Ligature sk"
+MXD_RK := 102; % "rk" "Ligature rk"
+MXD_ZZ := 90; % "Z" "Undefined Z"
+MXD_CC := 67; % "C" "Undefined C"
+MXD_JJ := 74; % "J" "Undefined J"
+MXD_DVC := 96; % "" ""
+MXD_DVC := 96; % "" ""
+MXD_DVC := 96; % "" ""
+MXD_DVC := 96; % "" ""
+MXD_EJ := 74; % "eJ" "Consonant Empty J"
+MXD_X := 88; % "X" "Consonant X"
+MXD_Q := 113; % "q" "Consonant q"
+MXD_ACHUNG := 64; % "'a" "Vowel a chung"
+% vim:ts=16
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdglyph.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdglyph.mf
new file mode 100644
index 00000000000..7a4868051ec
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdglyph.mf
@@ -0,0 +1,1020 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdglyph.mf
+% Date: Nov. 5th, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package drbl4tex
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% This font contains the Xewtee Dorboljin alphabet. %%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%% Character definitions. %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(MXD_INIT,fullcw#,vheight#+14thin#,depth#); %
+ "Xewtee Dorboljin Initial";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ bot rt z3=(scribble+cwidth+margin,0+scribble);
+ z4=(scribble+x3,y1+scribble);
+ z5=(scribble+1/2[x1,x4],y1+scribble);
+ z6=(scribble+x5,1/2[y1,y2]+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+
+ % Mond
+ z26=(scribble+x1,vheight+scribble);
+ z27=(scribble+x5,height+thin+scribble);
+ z28=(scribble+x3,y26+scribble);
+ z29=(scribble+x5,y27+1.1thin+scribble);
+ fill z26..z27..z28 & z28..z29..z26 & cycle;
+
+ % Sonne
+ pickup pencircle scaled 0.8thin;
+ z30=(scribble+x5,y29+thin+scribble);
+ z31=(scribble+x5,y30+4thin+scribble);
+ draw z30..z31..cycle;
+
+ % Feuer
+ z32=(scribble+x5,y31+5thin+thin+scribble);
+ penpos32(epsilon,0); %
+ z33=(scribble+x5-1.5thin,y32-1.5thin+scribble);
+ penpos33(.75thin,0); %
+ z34=(scribble+x5,y31+2thin+scribble);
+ penpos34(.75thin,90); %
+ z35=(scribble+x5+1.5thin,y33+thin+scribble);
+ penpos35(.75thin,180); %
+ z36=(scribble+x5,y32+4thin+scribble);
+ penpos36(epsilon,180); %
+ penstroke z32e{down}..z33e..z34e..z35e{dir 135}..{up}z36e;
+endchar;
+
+beginchar(MXD_STOP,2margin#+thick#,height#+2pt#,0); %
+ "Punctuation";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ draw z1--z2;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Der leere Vokaltraeger hat seinen eigenen Satz Ligaturen!
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MXD_DVC,fullaw#,height#+2pt#,depth#); %
+ "Dummy Vowel Carrier";
+ vowelcarrier;
+ empty_vowel;
+endchar;
+
+beginchar(MXD_EVI, fullaw#,vheight#+2pt#,depth#); %
+ "Empty Vowel I";
+ vowel_i(scribble+margin,margin+awidth+scribble);
+ vowelcarrier;
+ empty_vowel;
+endchar;
+
+beginchar(MXD_EVE, fullaw#,vheight#+2pt#,depth#); %
+ "Empty Vowel E";
+ vowel_e(scribble+margin,margin+awidth+scribble);
+ vowelcarrier;
+ empty_vowel;
+endchar;
+
+beginchar(MXD_EVUE, fullaw#,height#+2pt#,depth#); %
+ "Empty Vowel UE";
+ vowel_ue(scribble+margin,margin+awidth,0+scribble);
+ vowelcarrier;
+ empty_vowel;
+endchar;
+
+beginchar(MXD_EVU, fullaw#,height#+2pt#,depth#); %
+ "Empty Vowel U";
+ vowel_u(scribble+margin,margin+awidth,0+scribble);
+ vowelcarrier;
+ empty_vowel;
+endchar;
+
+beginchar(MXD_EVO, fullaw#,vheight#+2pt#,depth#); %
+ "Empty Vowel O";
+ vowel_o(scribble+margin,margin+awidth+scribble);
+ vowelcarrier;
+ empty_vowel;
+endchar;
+
+beginchar(MXD_EVOE, fullaw#,vheight#+2pt#,depth#); %
+ "Empty Vowel OE";
+ vowel_oe(scribble+margin,margin+awidth+scribble);
+ vowelcarrier;
+ empty_vowel;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Der Vokaltraeger hat seinen eigenen Satz Ligaturen!
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MXD_VC, fullaw#,height#+2pt#,depth#); %
+ "Vowel Carrier";
+ vowelcarrier;
+endchar;
+
+beginchar(MXD_VI, fullaw#,vheight#+2pt#,depth#); %
+ "Vowel I";
+ vowel_i(scribble+margin,margin+awidth+scribble);
+ vowelcarrier;
+endchar;
+
+beginchar(MXD_VE, fullaw#,vheight#+2pt#,depth#); %
+ "Vowel E";
+ vowel_e(scribble+margin,margin+awidth+scribble);
+ vowelcarrier;
+endchar;
+
+beginchar(MXD_VUE, fullaw#,height#+2pt#,depth#); %
+ "Vowel UE";
+ vowel_ue(scribble+margin,margin+awidth,0+scribble);
+ vowelcarrier;
+endchar;
+
+beginchar(MXD_VU, fullaw#,height#+2pt#,depth#); %
+ "Vowel U";
+ vowel_u(scribble+margin,margin+awidth,0+scribble);
+ vowelcarrier;
+endchar;
+
+beginchar(MXD_VO, fullaw#,height#+2pt#,depth#); %
+ "Vowel O";
+ vowelcarrier;
+ vowel_o(scribble+margin,margin+awidth+scribble);
+endchar;
+
+beginchar(MXD_VOE, fullaw#,height#+2pt#,depth#); %
+ "Vowel OE";
+ vowelcarrier;
+endchar;
+
+beginchar(MXD_LVM,0,0,depth#); %
+ "Long Vowel Marker";
+ z1l=(scribble-margin,0+scribble);
+ penpos1(thick,90); %
+ z2 =(scribble+3/4margin,-depth+scribble);
+ penpos2(3/4thin,90); %
+ penstroke z1e--z2e;
+endchar;
+
+beginchar(MXD_I,0,vheight#+2pt#,0); %
+ "Vowel i";
+ vowel_i(scribble-margin-cwidth,-margin+scribble);
+endchar;
+
+beginchar(MXD_E,0,vheight#+2pt#,0); %
+ "Vowel e";
+ vowel_e(scribble-margin-cwidth,-margin+scribble);
+endchar;
+
+beginchar(MXD_UE,0,height#,0); %
+ "Vowel ue";
+ vowel_ue(scribble-margin-cwidth,-margin,0+scribble);
+endchar;
+
+beginchar(MXD_U,0,height#,0); %
+ "Vowel u";
+ vowel_u(scribble-margin-cwidth,-margin,0+scribble);
+endchar;
+
+beginchar(MXD_O,0,vheight#+2pt#,0); %
+ "Vowel o";
+ vowel_o(scribble-margin-cwidth,-margin+scribble);
+endchar;
+
+beginchar(MXD_OE,0,vheight#+2pt#,0); %
+ "Umlaut o";
+ vowel_oe(scribble-margin-cwidth,-margin+scribble);
+endchar;
+
+beginchar(MXD_DU,0,vheight#+2pt#,0); %
+ "Undefined: diphtong u";
+endchar;
+
+beginchar(MXD_DI,0,vheight#+2pt#,0); %
+ "Undefined: diphtong i";
+endchar;
+
+beginchar(MXD_G,fullcw#,height#+2pt#,depth#); %
+ "Consonant k";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ top rt z2=(scribble+cwidth+margin,height+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x1,1/2height+scribble);
+ z5=(scribble+x1,y3+scribble);
+ z6=(scribble+1/2[x1,x2],y3+scribble);
+ z7=(scribble+x6,y1+scribble);
+ draw z1--z2--z3;
+ draw z4--z5--z6--z7;
+endchar;
+
+beginchar(MXD_K,fullcw#,height#+2pt#,depth#); %
+ "Consonant k";
+ squarepen;
+ bot lft z1=(scribble+margin,0+scribble);
+ top z2=(scribble+x1,height+scribble);
+ rt z3=(scribble+margin+cwidth,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ z5=(scribble+1/2[x2,x3],y1+scribble);
+ z6=(scribble+x5,y2+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+endchar;
+
+beginchar(MXD_DN,fullcw#,height#+2pt#,depth#); %
+ "Consonant \d n";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ z3=(scribble+x2,1/2height+scribble);
+ z4=(scribble+x1,y3+scribble);
+ bot z5=(scribble+x1,0+scribble);
+ z6=(scribble+x2,y5+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+endchar;
+
+beginchar(MXD_Z,fullcw#,height#+2pt#,depth#); %
+ "Consonant z";
+ squarepen;
+ z11l=(scribble+margin+cwidth,height+scribble);
+ z12 =(scribble+margin+cwidth+1/2margin,height+2n+scribble);
+ z13 =(scribble+x12+n,y12+scribble);
+ z14r=(scribble+x13+n,vheight+scribble);
+ penpos11(.25thin,90); %
+ penpos12(.75thick,90); %
+ penpos13(.75thick,90); %
+ penpos14(.25thin,90); %
+ penstroke z11e--z12e--z13e--z14e;
+
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x1,y3+scribble);
+ z5=(scribble+1/2[x1,x2],y2+scribble);
+ z6=(scribble+x5,y3+scribble);
+ draw z1--z2--z3--z4; draw z5--z6;
+endchar;
+
+beginchar(MXD_C,fullcw#,vheight#,depth#); %
+ "Consonant c";
+ z11l=(scribble+margin+cwidth,height+scribble);
+ z12 =(scribble+margin+cwidth+1/2margin,height+2n+scribble);
+ z13 =(scribble+x12+n,y12+scribble);
+ z14r=(scribble+x13+n,vheight+scribble);
+ penpos11(.25thin,90); %
+ penpos12(.75thick,90); %
+ penpos13(.75thick,90); %
+ penpos14(.25thin,90); %
+ penstroke z11e--z12e--z13e--z14e;
+
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x1,y3+scribble);
+ z5=(scribble+1/2[x1,x2],y2+scribble);
+ z6=(scribble+x5,y3+scribble);
+ draw z1--z2--z3--z4--cycle; draw z5--z6;
+endchar;
+
+beginchar(MXD_NNN,fullcw#,height#+2pt#,depth#); %
+ "Consonant \= n";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x2,1/2height+scribble);
+ z5=(scribble+x1,y4+scribble);
+ z6=(scribble+x1,y3+scribble);
+ z7=(scribble+x2-2thick,y6+scribble);
+ draw z1--z2--z3; draw z4--z5--z6--z7;
+endchar;
+
+beginchar(MXD_D,fullcw#,height#+2pt#,depth#); %
+ "Consonant d";
+ squarepen;
+ bot lft z1=(scribble+margin,0+scribble);
+ top z2=(scribble+x1,height+scribble);
+ rt z3=(scribble+margin+cwidth,y2+scribble);
+ z4=(scribble+x1,1/2[y1,y2]+scribble);
+ z5=(scribble+x3,y4+scribble);
+ z6=(scribble+x3,y1+scribble);
+ draw z1--z2--z3; draw z4--z5--z6;
+endchar;
+
+beginchar(MXD_T,fullcw#,height#+2pt#,depth#); %
+ "Consonant t";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x1,y3+scribble);
+ z5=(scribble+x1,1/2[y2,y3]+scribble);
+ z6=(scribble+x2,y5+scribble);
+ draw z1--z2--z3--z4--cycle; draw z5--z6;
+endchar;
+
+beginchar(MXD_N,fullcw#,height#+2pt#,depth#); %
+ "Consonant n";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x2,1/2height+scribble);
+ z5=(scribble+x1,y4+scribble);
+ z6=(scribble+x1,y3+scribble);
+ z7=(scribble+1/2[x1,x2],y6+scribble);
+ z8=(scribble+x7,y4+scribble);
+ draw z1--z2--z3; draw z4--z5--z6--z7--z8;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Das "b" hat seinen eigenen Satz Ligaturen!
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MXD_B,fullbw#,height#+2pt#,depth#); %
+ "Consonant b";
+ b;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MXD_LIGBI,fullbw#,vheight#+2pt#,depth#); %
+ "Ligature bi";
+ vowel_i(scribble+margin,margin+bwidth+scribble);
+ b;
+endchar;
+
+beginchar(MXD_LIGBE,fullbw#,vheight#+2pt#,depth#); %
+ "Ligature be";
+ vowel_e(scribble+margin,margin+bwidth+scribble);
+ b;
+endchar;
+
+beginchar(MXD_LIGBUE,fullbw#,height#+2pt#,depth#); %
+ "Ligature bue";
+ vowel_ue(scribble+margin,margin+bwidth,0+scribble);
+ b;
+endchar;
+
+beginchar(MXD_LIGBU,fullbw#,height#+2pt#,depth#); %
+ "Ligature bu";
+ vowel_u(scribble+margin,margin+bwidth,0+scribble);
+ b;
+endchar;
+
+beginchar(MXD_LIGBO,fullbw#,vheight#+2pt#,depth#); %
+ "Ligature bo";
+ vowel_o(scribble+margin,margin+bwidth+scribble);
+ b;
+endchar;
+
+beginchar(MXD_LIGBOE,fullbw#,vheight#+2pt#,depth#); %
+ "Ligature boe";
+ vowel_oe(scribble+margin,margin+bwidth+scribble);
+ b;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(MXD_P,fullcw#,height#+2pt#,depth#); %
+ "Consonant p";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ rt z3=(scribble+margin+cwidth,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ z5=(scribble+1/2[x2,x3],y1+scribble);
+ z6=(scribble+x5,y2+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+endchar;
+
+beginchar(MXD_M,fullcw#,height#+2pt#,depth#); %
+ "Consonant m";
+ squarepen;
+ top rt z1=(scribble+margin+cwidth,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ lft z3=(scribble+margin,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ z5=(scribble+1/2[x2,x3],y1+scribble);
+ z6=(scribble+x5,y2+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+endchar;
+
+beginchar(MXD_Y,fullcw#,height#+2pt#,depth#); %
+ "Consonant y";
+ squarepen;
+ top rt z1=(scribble+margin+cwidth,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ lft z3=(scribble+margin,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ z5=(scribble+1/2[x2,x3],y1+scribble);
+ z6=(scribble+x5,y2+scribble);
+ draw z1--z2--z3--z4; draw z5--z6;
+endchar;
+
+beginchar(MXD_R,fullcw#,height#+2pt#,depth#); %
+ "Consonant r";
+ basic_r;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Das "w" hat seinen eigenen Satz Ligaturen!
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MXD_W,fullbw#,height#+2pt#,depth#); %
+ "Consonant w";
+ basic_w;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(MXD_LIGWI,fullbw#,vheight#+2pt#,depth#); %
+ "Ligature wi";
+ vowel_i(scribble+margin,margin+bwidth+scribble);
+ basic_w;
+endchar;
+
+beginchar(MXD_LIGWE,fullbw#,vheight#+2pt#,depth#); %
+ "Ligature we";
+ vowel_e(scribble+margin,margin+bwidth+scribble);
+ basic_w;
+endchar;
+
+beginchar(MXD_LIGWUE,fullbw#,height#+2pt#,depth#); %
+ "Ligature wue";
+ vowel_ue(scribble+margin,margin+bwidth,0+scribble);
+ basic_w;
+endchar;
+
+beginchar(MXD_LIGWU,fullbw#,height#+2pt#,depth#); %
+ "Ligature wu";
+ vowel_u(scribble+margin,margin+bwidth,0+scribble);
+ basic_w;
+endchar;
+
+beginchar(MXD_LIGWO,fullbw#,vheight#+2pt#,depth#); %
+ "Ligature wo";
+ vowel_o(scribble+margin,margin+bwidth+scribble);
+ basic_w;
+endchar;
+
+beginchar(MXD_LIGWOE,fullbw#,vheight#+2pt#,depth#); %
+ "Ligature woe";
+ vowel_oe(scribble+margin,margin+bwidth+scribble);
+ basic_w;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(MXD_L,fullcw#,height#+2pt#,depth#); %
+ "Consonant l";
+ basic_l;
+endchar;
+
+beginchar(MXD_SH,fullcw#,height#+2pt#,depth#); %
+ "Consonant sh";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ z3=(scribble+x1,1/2height+scribble);
+ z4=(scribble+1/2[x1,x8],y3+scribble);
+ z5=(scribble+x4,y1+scribble);
+ z6=(scribble+x4,y2+scribble);
+ rt z7=(scribble+margin+cwidth,y2+scribble);
+ z8=(scribble+x7,y1+scribble);
+ draw z1--z2; draw z3--z4; draw z5--z6--z7--z8--cycle;
+endchar;
+
+beginchar(MXD_S,fullcw#,height#+2pt#,depth#); %
+ "s";
+ z1l=(scribble+margin,0+scribble);
+ z2l=(scribble+margin,height+scribble);
+ penpos1(thick,0); %
+ penpos2(thick,0); %
+ penstroke z1e--z2e;
+ z3l=(scribble+margin+thin,height+scribble);
+ z4r=(scribble+margin+cwidth-thin,0+scribble);
+ penpos3(.9thick,0); %
+ penpos4(.9thick,0); %
+ penstroke z3e--z4e;
+ z5r=(scribble+margin+cwidth,0+scribble);
+ z6r=(scribble+margin+cwidth,height+scribble);
+ penpos5(thick,0); %
+ penpos6(thick,0); %
+ penstroke z5e--z6e;
+endchar;
+
+beginchar(MXD_H,fullcw#,height#+2pt#,depth#); %
+ "h";
+ squarepen;
+ top rt z1=(scribble+margin+cwidth,height+scribble);
+ lft z2=(scribble+margin,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+1/2[x1,x2],y3+scribble);
+ z5=(scribble+x4,1/2height+scribble);
+ z6=(scribble+x1,y5+scribble);
+ z7=(scribble+x1,y3+scribble);
+ draw z1--z2--z3--z4--z5--z6--z7;
+endchar;
+
+beginchar(MXD_KDS,fullcw#,height#+2pt#,depth#); %
+ "k\d s";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+1/2[x1,x2],y1+scribble);
+ z5=(scribble+x4,1/2height+scribble);
+ z6=(scribble+x1,y5+scribble);
+ z7=(scribble+x1,y3+scribble);
+ z8=(scribble+x4,y3+scribble);
+ draw z1--z2--z3; draw z4--z5--z6--z7--z8;
+endchar;
+
+beginchar(MXD_A,fullaw#,height#,0); %
+ "Undefined Vowel a";
+endchar;
+
+beginchar(MXD_LIGRI,fullcw#,vheight#+2pt#,depth#); %
+ "Ligature ri";
+ vowel_i(scribble+margin,margin+cwidth+scribble);
+ basic_r;
+endchar;
+
+beginchar(MXD_LIGLI,fullcw#,vheight#+2pt#,depth#); %
+ "Ligature li";
+ vowel_i(scribble+margin,margin+cwidth+scribble);
+ basic_l;
+endchar;
+
+beginchar(MXD_OM,0,om_height#+2pt#,0); %
+ "Undefined OM";
+endchar;
+
+beginchar(MXD_EH,fullaw#,height#+2pt#,0); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_SG,fullcw#,height#+2pt#,depth#); %
+ "Consonant \sg";
+ squarepen;
+ top z1=(scribble+1/2[x4,x5],height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ lft z3=(scribble+margin,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ rt z5=(scribble+margin+cwidth,y1+scribble);
+ z6=(scribble+x5,y2+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+endchar;
+
+beginchar(MXD_GH,fullcw#,height#+2pt#,depth#); %
+ "Consonant gh";
+ squarepen;
+ top z1=(scribble+1/2[x6,x7],height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ lft z3=(scribble+margin,y2+scribble);
+ z4=(scribble+x3,1/2height+scribble);
+ z5=(scribble+x1,1/2height+scribble);
+ z6=(scribble+x3,y1+scribble);
+ rt z7=(scribble+margin+cwidth,y1+scribble);
+ z8=(scribble+x7,y2+scribble);
+ draw z1--z2--z3--z4--z5; draw z6--z7--z8;
+endchar;
+
+beginchar(MXD_J,fullcw#,vheight#+2pt#,depth#); %
+ "Consonant j";
+ z11l=(scribble+margin+cwidth,height+scribble);
+ z12 =(scribble+margin+cwidth+1/2margin,height+2n+scribble);
+ z13 =(scribble+x12+2n,y12+scribble);
+ z14r=(scribble+x13+n,vheight+scribble);
+ penpos11(.25thin,90); %
+ penpos12(.75thick,90); %
+ penpos13(.75thick,90); %
+ penpos14(.25thin,90); %
+ penstroke z11e--z12e--z13e--z14e;
+ squarepen;
+ top rt z1=(scribble+margin+cwidth,height+scribble);
+ lft z2=(scribble+margin,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x1,y3+scribble);
+ z5=(scribble+x2,1/2height+scribble);
+ z6=(scribble+x1,y5+scribble);
+ draw z1--z2--z3--z4; draw z5--z6;
+endchar;
+
+beginchar(MXD_JH,fullcw#,vheight#+2pt#,depth#); %
+ "Consonant jh";
+ z11l=(scribble+margin+cwidth,height+scribble);
+ z12 =(scribble+margin+cwidth+1/2margin,height+2n+scribble);
+ z13 =(scribble+x12+2n,y12+scribble);
+ z14r=(scribble+x13+n,vheight+scribble);
+ penpos11(.25thin,90); %
+ penpos12(.75thick,90); %
+ penpos13(.75thick,90); %
+ penpos14(.25thin,90); %
+ penstroke z11e--z12e--z13e--z14e;
+ squarepen;
+ top rt z1=(scribble+margin+cwidth,height+scribble);
+ lft z2=(scribble+margin,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x1,y3+scribble);
+ z5=(scribble+x2,1/2height+scribble);
+ z6=(scribble+7/12[x2,x1],y5+scribble);
+ draw z1--z2--z3--z4; draw z5--z6;
+ z7r=(scribble+margin+cwidth,2/3[y3,y1]+scribble);
+ z8r=(scribble+x6+1/3thick,1/2[y7,y9]+scribble);
+ z9r=(scribble+margin+cwidth,1/3[y3,y1]+scribble);
+ penpos7(thin,45); %
+ penpos8(thin,180); %
+ penpos9(thin,315); %
+ penstroke z7e..z8e..z9e;
+endchar;
+
+beginchar(MXD_DT,fullcw#,height#+2pt#,depth#); %
+ "Consonant \d t";
+ z1=(scribble+margin,7/12height+scribble);
+ penpos1(thick,90); %
+ z2=(scribble+margin+cwidth-thick,y1+scribble);
+ penpos2(thick,90); %
+ z3r=(scribble+margin+cwidth,y1+1/2thick+scribble);
+ penpos3(thick,0); %
+ z4 =(scribble+1/2[x1,x2],0+scribble);
+ penpos4(thick,0); %
+ penstroke z1e--z2e;
+ penstroke z3e--z4e;
+
+ numeric x[]; numeric y[];
+ squarepen;
+ top rt z1=(scribble+margin+cwidth,height+scribble);
+ lft z2=(scribble+margin,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ draw z1--z2--z3;
+endchar;
+
+beginchar(MXD_DTH,fullcw#,height#+2pt#,depth#); %
+ "Consonant \d th";
+ z1l=(scribble+margin,height+scribble);
+ penpos1(thick,0); %
+ z2r=(scribble+margin+cwidth,0+scribble);
+ penpos2(thick,0); %
+ penstroke z1e--z2e;
+
+ z3r=(scribble+margin+cwidth,height+scribble);
+ penpos3(thick,0); %
+ z4l=(scribble+margin,0+scribble);
+ penpos4(thick,0); %
+ penstroke z3e--z4e;
+
+ z5r=(scribble+margin+thick,height+scribble);
+ penpos5(thick,90); %
+ z6r=(scribble+margin+cwidth-thick,height+scribble);
+ penpos6(thick,90); %
+ penstroke z5e--z6e;
+
+ z7l=(scribble+margin+thick,0+scribble);
+ penpos7(thick,90); %
+ z8l=(scribble+margin+cwidth-thick,0+scribble);
+ penpos8(thick,90); %
+ penstroke z7e--z8e;
+endchar;
+
+beginchar(MXD_DD,fullcw#,height#+2pt#,depth#); %
+ "Consonant \d d";
+ z1l=(scribble+margin,height+scribble);
+ penpos1(thick,0); %
+ z2r=(scribble+margin+cwidth,0+scribble);
+ penpos2(thick,0); %
+ penstroke z1e--z2e;
+
+ z5r=(scribble+margin+thick,height+scribble);
+ penpos5(thick,90); %
+ z6r=(scribble+margin+cwidth,height+scribble);
+ penpos6(thick,90); %
+ penstroke z5e--z6e;
+
+ z7l=(scribble+margin,0+scribble);
+ penpos7(thick,90); %
+ z8l=(scribble+margin+cwidth-thick,0+scribble);
+ penpos8(thick,90); %
+ penstroke z7e--z8e;
+endchar;
+
+beginchar(MXD_DDH,fullcw#,height#+2pt#,depth#); %
+ "Consonant \d dh";
+ z1l=(scribble+margin,height+scribble);
+ penpos1(thick,0); %
+ z2r=(scribble+margin+cwidth,0+scribble);
+ penpos2(thick,0); %
+ penstroke z1e--z2e;
+
+ z3l=(scribble+margin,0+scribble);
+ penpos3(thick,90); %
+ z4l=(scribble+margin+cwidth-thick,0+scribble);
+ penpos4(thick,90); %
+ penstroke z3e--z4e;
+
+ squarepen;
+ top lft z5=(scribble+margin+thick,height+scribble);
+ rt z6=(scribble+margin+cwidth,y5+scribble);
+ bot z7=(scribble+x6,height-2thick+scribble);
+ draw z5--z6--z7;
+endchar;
+
+beginchar(MXD_DDN,fullcw#,height#+2pt#,depth#); %
+ "Consonant \d n";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ draw z1--z2--z3;
+
+ z4 =(scribble+x2,9/12height+scribble);
+ z5l=(scribble+margin,4.5/12height+scribble);
+ penpos4(thick,-30); %
+ penpos5(thick,-30); %
+ penstroke z4e--z5e;
+ z6l=(scribble+x2-1/2thick,0+scribble);
+ z7l=(scribble+margin,4.5/12height+scribble);
+ penpos6(thick,30); %
+ penpos7(thick,30); %
+ penstroke z6e--z7e;
+endchar;
+
+beginchar(MXD_DDD,fullcw#,height#+2pt#,depth#); %
+ "Consonant \_d";
+ squarepen;
+ top rt z1=(scribble+margin+cwidth,height+scribble);
+ lft z2=(scribble+margin,y1+scribble);
+ z3=(scribble+x2,1/2height+scribble);
+ z4=(scribble+x1,y3+scribble);
+ bot z5=(scribble+x1,0+scribble);
+ z6=(scribble+x2,y5+scribble);
+ draw z1--z2--z3--z4--z5--z6;
+endchar;
+
+beginchar(MXD_DDDH,fullcw#,height#+2pt#,depth#); %
+ "Consonant \_dh";
+ squarepen;
+ top rt z1=(scribble+margin+cwidth,height+scribble);
+ lft z2=(scribble+margin,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x2,1/2height+scribble);
+ z5=(scribble+x1,y4+scribble);
+ draw z1--z2--z3; draw z4--z5;
+ z11=(scribble+margin+cwidth,y4+1/2thick+scribble);
+ z12=(scribble+5/12[x2,x1],1/2[y11,y13]+scribble);
+ z13=(scribble+x11,0+scribble);
+ fill z11{left}..z12..{right}z13 & z13--z11 & cycle;
+ z14=(scribble+x11,y11-1/3thin+scribble);
+ z15=(scribble+x12+4/4thick,y12+scribble);
+ z16=(scribble+x11,y13+1/3thin+scribble);
+ erase unfill z14{left}..z15..{right}z16 & z16--z14 & cycle;
+endchar;
+
+beginchar(MXD_DB,fullcw#,height#+2pt#,depth#); %
+ "Consonant _b";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ bot z2=(scribble+x1,0+scribble);
+ rt z3=(scribble+margin+cwidth,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ draw z1--z2--z3--z4--cycle;
+endchar;
+
+beginchar(MXD_DBH,fullcw#,height#+2pt#,depth#); %
+ "Consonant \_bh";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x1,y3+scribble);
+ draw z1--z2--z3--z4;
+ z11=(scribble+margin+thick,height+scribble);
+ z12=(scribble+6/12[x1,x2],1/2height+scribble);
+ z13=(scribble+x11,0+scribble);
+ z14=(scribble+margin,y11+scribble);
+ z15=(scribble+x12-thick,y12+scribble);
+ z16=(scribble+x14,0+scribble);
+ fill z11..z12..z13 & z13--z16--z14--z11--cycle;
+ erase fill z14..z15..z16 & z16--z14 & cycle;
+endchar;
+
+beginchar(MXD_DS,fullcw#,height#+2pt#,depth#); %
+ "Consonant \d s";
+ squarepen;
+ top rt z1=(scribble+margin+cwidth,height+scribble);
+ lft z2=(scribble+margin,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x1,y3+scribble);
+ z5=(scribble+1/2[x2,x1]+2/3thick,y1+scribble);
+ z6=(scribble+x5,7.5/12height+scribble);
+ z7r=(scribble+1/2[x2,x1]+2/3thick,7.25/12height+scribble);
+ z8r=(scribble+x7,0+scribble);
+ draw z1--z2--z3; draw z5--z6;
+
+ penpos7(3/5thick,90); %
+ penpos8(3/5thick,270); %
+ penstroke z7e..z8e..cycle;
+endchar;
+
+beginchar(MXD_KY,fullcw#,height#+2pt#,depth#+2pt#); %
+ "Ligature kya";
+ kya;
+endchar;
+
+beginchar(MXD_LIGKYUE,fullcw#,height#+2pt#,depth#+3pt#); %
+ "Ligature kyue";
+ vowel_ue(scribble+margin,cwidth+margin,3/4depth+scribble);
+ kya;
+endchar;
+
+beginchar(MXD_LIGKYU,fullcw#,height#+2pt#,depth#+3pt#); %
+ "Ligature kyu";
+ vowel_u(scribble+margin,cwidth+margin,5/8depth+scribble);
+ kya;
+endchar;
+
+beginchar(MXD_KR,fullcw#,height#+2pt#,depth#+2pt#); %
+ "Ligature kra";
+ kra;
+endchar;
+
+beginchar(MXD_KRUE,fullcw#,height#+2pt#,depth#+4pt#); %
+ "Ligature krue";
+ vowel_ue(scribble+margin,cwidth+margin,depth+scribble);
+ kra;
+endchar;
+
+beginchar(MXD_KRU,fullcw#,height#+2pt#,depth#+4pt#); %
+ "Ligature kru";
+ vowel_u(scribble+margin,cwidth+margin,depth+scribble);
+ kra;
+endchar;
+
+beginchar(MXD_KL,fullcw#,height#+2pt#,depth#+2pt#); %
+ "Ligature kla";
+ kla;
+endchar;
+
+beginchar(MXD_KLUE,fullcw#,height#+2pt#,depth#+3pt#); %
+ "Ligature klue";
+ vowel_ue(scribble+margin,cwidth+margin,6/8depth+scribble);
+ kla;
+endchar;
+
+beginchar(MXD_KLU,fullcw#,height#+2pt#,depth#+4pt#); %
+ "Ligature klu";
+ vowel_u(scribble+margin,cwidth+margin,depth+scribble);
+ kla;
+endchar;
+
+beginchar(MXD_KM,fullaw#,height#+2pt#,depth#); %
+ "Undefined Ligature km";
+endchar;
+
+beginchar(MXD_KK,fullaw#,height#+2pt#,depth#); %
+ "Undefined Ligaute kk";
+endchar;
+
+beginchar(MXD_DNK,fullaw#,height#+2pt#,depth#); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_NC,fullaw#,height#+2pt#,depth#); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_DDNT,fullaw#,height#+2pt#,depth#); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_NT,fullaw#,height#+2pt#,depth#); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_MP,fullaw#,height#+2pt#,depth#); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_LK,fullcw#,height#+2pt#,depth#); %
+ "lka";
+ squarepen;
+ top lft z1=(scribble+margin,29/48height+scribble);
+ rt z2=(scribble+cwidth+margin,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ top z4=(scribble+x1,2/6height+scribble);
+ z5=(scribble+x1,y3+scribble);
+ z6=(scribble+1/2[x1,x2],y3+scribble);
+ top z7=(scribble+x6,height+scribble);
+ z8=(scribble+x2,y7+scribble);
+ z9=(scribble+x1,19/24height+scribble);
+ z10=(scribble+x1,y7+scribble);
+ draw z1--z2--z3;
+ draw z4--z5--z6--z7;
+ draw z8--z2;
+ draw z9--z10--z7;
+endchar;
+
+beginchar(MXD_SHK,fullaw#,height#+2pt#,depth#); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_SK,fullcw#,height#+2pt#,depth#); %
+ "Ligature ska";
+ squarepen;
+ top lft z1=(scribble+margin,29/48height+scribble);
+ rt z2=(scribble+cwidth+margin,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ top z4=(scribble+x1,2/6height+scribble);
+ z5=(scribble+x1,y3+scribble);
+ z6=(scribble+1/2[x1,x2],y3+scribble);
+ z7=(scribble+x6,y1+scribble);
+ top z8=(scribble+x2,height+scribble);
+ z9=(scribble+x1,19/24height+scribble);
+ z10=(scribble+x1,y8+scribble);
+ draw z1--z2--z3;
+ draw z4--z5--z6--z7;
+ draw z8--z2;
+ draw z9--z10;
+ z11l=(scribble+margin+1/4thick,height+scribble);
+ z12r=(scribble+margin+cwidth,y1+1/2thick+scribble);
+ penpos11(1.00thick,0); %
+ penpos12(1.00thick,0); %
+ penstroke z11e--z12e;
+endchar;
+
+beginchar(MXD_RK,fullcw#,height#+2pt#,depth#); %
+ "Ligature rka";
+ squarepen;
+ top lft z1=(scribble+margin,4/6height+scribble);
+ rt z2=(scribble+cwidth+margin,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ top z4=(scribble+x1,2/6height+scribble);
+ z5=(scribble+x1,y3+scribble);
+ z6=(scribble+1/2[x1,x2],y3+scribble);
+ top z7=(scribble+x6,height+scribble);
+ draw z1--z2--z3;
+ draw z4--z5--z6--z7;
+ draw (scribble+x1,y7)--(scribble+x2,y7+scribble);
+endchar;
+
+beginchar(MXD_ZZ,fullaw#,height#+2pt#,depth#); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_CC,fullaw#,height#+2pt#,depth#); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_EJ,fullaw#,height#+2pt#,depth#); %
+ "Undefined";
+endchar;
+
+beginchar(MXD_X,fullcw#,height#+2pt#,depth#); %
+ "Consonant X";
+ squarepen;
+ bot lft z1=(scribble+margin,0+scribble);
+ top z2=(scribble+x1,height+scribble);
+ rt z3=(scribble+margin+cwidth,y2+scribble);
+ z4=(scribble+x3,y1+scribble);
+ draw z1--z2--z3--z4;
+ z5=(scribble+x3-1/2thick,2/3height+scribble);
+ z6=(scribble+x1+1.75thick,1/2[y5,y7]+scribble);
+ z7=(scribble+x5,1/3height-thick+scribble);
+ penpos5(thin,90); %
+ penpos6(.75thick,180); %
+ penpos7(thin,270); %
+ penstroke z5e{left}..z6e..{right}z7e;
+endchar;
+
+beginchar(MXD_Q,fullcw#,height#+2pt#,depth#); %
+ "Consonant q";
+ squarepen;
+ top lft z1=(scribble+margin,height+scribble);
+ rt z2=(scribble+margin+cwidth,y1+scribble);
+ bot z3=(scribble+x2,0+scribble);
+ z4=(scribble+x1,y3+scribble);
+ z5=(scribble+x1,1/2[y2,y3]+scribble);
+ z6=(scribble+x2,y5+scribble);
+ draw z1--z2--z3--z4; draw z5--z6;
+endchar;
+
+
+beginchar(MXD_ACHUNG,fullcw#,height#+2pt#,depth#); %
+ "'a (a chung)";
+ squarepen;
+ bot lft z1=(scribble+margin,0+scribble);
+ top z2=(scribble+x1,height+scribble);
+ rt z3=(scribble+margin+cwidth,y2+scribble);
+ z4=(scribble+x3,1/2height+scribble);
+ z5=(scribble+1/2[x2,x3],y4+scribble);
+ z6=(scribble+x5,y1+scribble);
+ z7=(scribble+x3,y1+scribble);
+ draw z1--z2--z3--z4--z5--z6--z7;
+endchar;
+end.
+% vim:ts=8
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdligs.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdligs.mf
new file mode 100644
index 00000000000..bf30049caa2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdligs.mf
@@ -0,0 +1,72 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdligs.mf
+% Date: November 5, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package documentation mxd4tex
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%% Ligature definitions for Xewtee Dorboljin. %%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+ ligtable "c": "a" =: "c";
+ ligtable "d": "a" =: "d";
+ ligtable "g": "a" =: "g";
+ ligtable "h": "a" =: "h";
+ ligtable "k": "a" =: "k";
+ ligtable "l": "a" =: "l";
+ ligtable "m": "a" =: "m";
+ ligtable "n": "a" =: "n",
+ "g" =: "x",
+ "y" =: "=";
+ ligtable "p": "a" =: "p";
+ ligtable "r": "a" =: "r";
+ ligtable "s": "h" =: "$",
+ "a" =: "s";
+ ligtable "t": "a" =: "t";
+ ligtable "x": "a" =: "x";
+ ligtable "y": "a" =: "y";
+ ligtable "z": "a" =: "z";
+ ligtable "=": "a" =: "=";
+ ligtable "$": "a" =: "$";
+ ligtable "(": "a" =: "(";
+ ligtable "!": "a" =: "!";
+
+ ligtable "`": "i" =: 128,
+ "e" =: 129,
+ "U" =: 130,
+ "u" =: 131,
+ "o" =: 132,
+ "O" =: 133,
+ "a" =: "`";
+ ligtable "'": "i" =: 136,
+ "e" =: 137,
+ "U" =: 138,
+ "u" =: 139,
+ "o" =: 140,
+ "O" =: 141,
+ "a" =: "'";
+ ligtable "b": "a" =: "b",
+ "i" =: 144,
+ "e" =: 145,
+ "U" =: 146,
+ "u" =: 147,
+ "o" =: 148,
+ "O" =: 149;
+ ligtable "w": "i" =: 152,
+ "e" =: 153,
+ "U" =: 154,
+ "u" =: 155,
+ "o" =: 156,
+ "O" =: 157,
+ "a" =: "w";
+ ligtable ";": "U" =: 176,
+ "u" =: 177;
+ ligtable ":": "U" =: 178,
+ "u" =: 179;
+ ligtable "<": "U" =: 180,
+ "u" =: 181;
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdparmb.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdparmb.mf
new file mode 100644
index 00000000000..486e6e380c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdparmb.mf
@@ -0,0 +1,64 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdparmb.mf
+% Date: November 5, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package documentation mxd4tex
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% This font contains the Xewtee Dorboljin primitives. %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+screen_rows:=640;
+screen_cols:=640;
+%
+mode_setup;
+ if unknown mag: mag := 1; fi;
+ % mg:=4/4; % Now in base file
+ n#:=mg*pt#;
+ margin#:=mg*1.5pt#;
+ awidth#:=mg*14pt#;
+ bwidth#:=4/7awidth#;
+ cwidth#:=5/7awidth#;
+ fullaw#:=2margin#+awidth#;
+ fullbw#:=2margin#+bwidth#;
+ fullcw#:=2margin#+cwidth#;
+ thin#:=mg*1pt#;
+ thick#:=mg*2pt#;
+ height#:=mg*12pt#;
+ vheight#:=height#+mg*4pt#;
+ om_height#:=vheight#+mg*4pt#;
+ depth#:=mg*4pt#;
+ define_pixels(thin,thick,awidth,bwidth,cwidth,height,
+ vheight,om_height,n,margin,depth);
+
+ font_size = 14pt#;
+
+ font_normal_space 1/2fullcw#;
+ font_x_height height#;
+ font_quad fullaw#;
+ font_extra_space .25fullcw#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%% primitive definitions. %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def squarepen = % Basic pen definition
+ pickup pensquare scaled thick
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%% Segment definitions. %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hier wird Schreibschrift aus unseren Buchstaben!
+vardef scribble = normaldeviate * Rauhheit enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% The definition file for Xewtee Dorboljin %%%%%%%%%%
+%%%%%%%%%% ends here. Oliver Corff, Ulaanbaatar 2001 %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdparmr.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdparmr.mf
new file mode 100644
index 00000000000..47a9340210e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdparmr.mf
@@ -0,0 +1,64 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdparmr.mf
+% Date: November 5, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package documentation mxd4tex
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% This font contains the Xewtee Dorboljin primitives. %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+screen_rows:=640;
+screen_cols:=640;
+%
+mode_setup;
+ if unknown mag: mag := 1; fi;
+ % mg:=4/4; % Now in base file
+ n#:=mg*pt#;
+ margin#:=mg*1.5pt#;
+ awidth#:=mg*14pt#;
+ bwidth#:=4/7awidth#;
+ cwidth#:=5/7awidth#;
+ fullaw#:=2margin#+awidth#;
+ fullbw#:=2margin#+bwidth#;
+ fullcw#:=2margin#+cwidth#;
+ thin#:=mg*.75pt#;
+ thick#:=mg*1.5pt#;
+ height#:=mg*12pt#;
+ vheight#:=height#+mg*4pt#;
+ om_height#:=vheight#+mg*4pt#;
+ depth#:=mg*4pt#;
+ define_pixels(thin,thick,awidth,bwidth,cwidth,height,
+ vheight,om_height,n,margin,depth);
+
+ font_size = 14pt#;
+
+ font_normal_space 1/2fullcw#;
+ font_x_height height#;
+ font_quad fullaw#;
+ font_extra_space .25fullcw#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%% primitive definitions. %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def squarepen = % Basic pen definition
+ pickup pensquare scaled thick
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%% Segment definitions. %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Hier wird Schreibschrift aus unseren Buchstaben!
+vardef scribble = normaldeviate * Rauhheit enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% The definition file for Xewtee Dorboljin %%%%%%%%%%
+%%%%%%%%%% ends here. Oliver Corff, Ulaanbaatar 2001 %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdrb.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdrb.mf
new file mode 100644
index 00000000000..aa4faa0aeab
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdrb.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdrb.mf
+% Date: November 5, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package documentation mxd4tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ mg:=4/4;
+ Rauhheit=mg*0pt;
+input mxdatoms.mf;
+input mxdparmb.mf;
+input mxdcodes.mf;
+input mxdligs.mf;
+input mxdglyph.mf;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdrm.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdrm.mf
new file mode 100644
index 00000000000..4dcd6ed579e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdrm.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdrm.mf
+% Date: November 5, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package documentation mxd4tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ mg:=4/4;
+ Rauhheit=mg*0pt;
+input mxdatoms.mf;
+input mxdparmr.mf;
+input mxdcodes.mf;
+input mxdligs.mf;
+input mxdglyph.mf;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdsb.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdsb.mf
new file mode 100644
index 00000000000..208c5d8e257
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdsb.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdsbmf
+% Date: November 5, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package documentation mxd4tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ mg:=4/4;
+ Rauhheit=mg*0.125pt#;
+input mxdatoms.mf;
+input mxdparmb.mf;
+input mxdcodes.mf;
+input mxdligs.mf;
+input mxdglyph.mf;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/mxd/mxdsm.mf b/Master/texmf-dist/fonts/source/public/mxd/mxdsm.mf
new file mode 100644
index 00000000000..5f151c4cec2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxd/mxdsm.mf
@@ -0,0 +1,19 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: mxdsm.mf
+% Date: November 5, 2001
+% Author: Oliver Corff
+% (c) 2001 Ulaanbaatar, Berlin
+%
+% A metafont for providing the Xewtee
+% Dorboljin script to LaTeX-users.
+%
+% Usage: see package documentation mxd4tex
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ mg:=4/4;
+ Rauhheit=mg*0.125pt#;
+input mxdatoms.mf;
+input mxdparmr.mf;
+input mxdcodes.mf;
+input mxdligs.mf;
+input mxdglyph.mf;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxed.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxed.mf
new file mode 100644
index 00000000000..8b2f2695d74
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxed.mf
@@ -0,0 +1,107 @@
+% Driver file for Mxedruli font `mxed.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.2 as of 5th March 1996 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+font_coding_scheme:="Mxedruli - Georgian";
+mode_setup;
+if known cmbase: font_setup; fi % If used with cmbase
+font_mxed_setup;
+let mxedchar=\;
+
+% fontmaking:=1; % to generate a TFM File during proof-ing
+
+%% Zeichendefinitionsdateien %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+if mxcap: input mxedcaps; else: input mxedfont; fi % the mxedruli alphabet
+if unknown cmbase: input mxedd; else: input romand; fi % digits: if cmbase is
+ % used this font will
+ % load cm-digits, for
+ % they are finer tuned.
+if unknown cmbase: input mxedp; else: input punct; fi % The same for punctuation
+input mxedacc; % Accents
+
+%% Font-Parameter fuer TeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_quad 2.5mxu#; % 1 em
+font_x_height mxlittle#; % 1 ex
+font_normal_space 3mxu#; % word gap
+font_normal_stretch 2mxu#; % word gap may stretch by ...
+font_normal_shrink 1mxu#; % word gap my shrink by ...
+font_slant slant;
+
+% special "grayfont graylj"; % Only for GFtoDVI on emTeXs METAFONT
+
+%% Ligature-Tables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Palatals:
+ligtable "+" : "s" =: oct"005",
+ "c" =: oct"001",
+ "j" =: oct"010",
+ "z" =: oct"007";
+
+% Glottalized stops
+ligtable "." : "c" =: oct"000",
+ "g" =: oct"002",
+ "k" =: oct"003",
+ "p" =: oct"004",
+ "t" =: oct"006",
+ "+" =: ",";
+
+% Old Georgian "ho"
+ligtable "o" : "1" =: oct"011",
+ oct"005" kern -mxhalf#,
+ "z" kern -.5mxzw#;
+
+% Old Georgian "Short i"
+ligtable "i" : "1" =: oct"012",
+ oct"005" kern -mxhalf#,
+ "z" kern -.5mxzw#;
+
+% Ossetian "ae" and long "ee"
+ligtable "e" : "1" =: oct"013",
+ "0" =: oct"016",
+ "e" =: oct"016",
+ oct"005" kern -mxhalf#,
+ "z" kern -.5mxzw#;
+
+% Variated "b"
+if not mxcap: ligtable "b" : "1" =: oct"020"; fi;
+
+% Unaspirated "q"
+ligtable "q" : "1" =: oct"015",
+ oct"005" kern -mxhalf#,
+ "z" kern -.5mxzw#;
+
+% Keep the "s" away from letters with an ascender on the right
+ligtable oct"004" : oct"007" : "k" : "m" : "x" : "s" kern .5mxzw#;
+
+% two ' make a double quote
+ligtable "'" : "'" kern -.8mxzw#;
+
+% two , make a double comma,
+ligtable "," : "," kern -mxzw#,
+ "c" =: oct"014";
+
+%% Hyphens etc.
+ligtable "-" : "-" =: 123; % cf. The METAfontbook S. 306
+ligtable 123 : "-" =: 124;
+
+% Let "z" and oct005 closer two the little letters
+ligtable "a" : "d" : "g" : "l" : "t" : "u" : "p" : oct"002" : "c" : oct"010" :
+ oct"005" kern -mxhalf#,
+ "1" =: oct"021",
+ "z" kern -.5mxzw#;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxed10.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxed10.mf
new file mode 100644
index 00000000000..fac820e8fb7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxed10.mf
@@ -0,0 +1,126 @@
+% Mxedruli Font 10 point Normal Face `mxed10.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.0 as of 16th June 1995 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Based on the parameters as in CMR10
+
+% if unknown cmbase: input cmbase fi
+if unknown mxedbase: input mxedbase fi
+
+font_identifier:="MXED"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+if known cmbase:
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+fi
+
+% These are the real Mxedruli Parameters
+boolean mxcap;
+mxcap:=false; % No capitals
+mxu#:= 2.5u#; % was 2.7u# % the unit, which where used to design this fonts
+mxlittle#:= 3mxu#; % height of letters without ascenders
+mxtop#:= 2mxu#; % the height of the ascenders
+mxheight#:=mxtop#+mxlittle#;
+mxhalf#:=mxu#; % Half width of the letter 'a'
+mxone#:=2mxhalf#;
+mxmiddle#:=2/3mxlittle#; % strokes not reaching the baseline, as in 'o'
+mxthird#:=1/3mxlittle#;
+mxfeet#:= .4mxhalf#; % The feet of 'i' and 'o' etc are slightly
+ % bent to the middle
+mxlow#:= 1.8mxu#; %war 2mxu# % max depth below the baseline
+mxzw#:= .65mxu#; % Seperation of two letters
+
+
+px1#:=.18mxu#; % pen 1 xscaling
+py1#:=.60mxu#; % pen 1 yscaling
+
+dpx1#:=px1#; % digitpen xscaling
+dpy1#:=py1#; % digitpen yscaling
+pdot#:=.74mxu#; % pen for dots
+pdash#:=.40mxu#; % pen for dashes
+
+
+slant:=0;
+
+input mxed; % switch to the driver file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxedacc.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxedacc.mf
new file mode 100644
index 00000000000..4270d44a171
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxedacc.mf
@@ -0,0 +1,63 @@
+% Mxedruli Accents `mxedacc.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.0 as of 16th June 1995 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Trema %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Trema (Umlaut)";
+beginchar(127, mxzw#+mxone#, mxheight#, 0);
+ pickup mxed_dot;
+ top lft z1 = (0, mxheight);
+ rt z2 = (mxone, y1);
+ drawdot z1;
+ drawdot z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% Macron %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Macron";
+beginchar(22, mxzw#+mxone#, mxheight#, 0);
+ pickup mxed_dash;
+ top z1 = (0, mxheight);
+ z2 = (mxone, y1);
+ draw z1--z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% Hachek %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Hachek";
+beginchar(94, mxzw#+mxone#, mxheight#, 0);
+% pickup mxed_dash;
+% lft top z1 = (0, mxheight-mxthird);
+% rt z2 = (mxone, y1);
+% z3 = (.5[x1,x2], mxheight);
+% draw z1--z3--z2;
+% penlabels(range 1 thru 2);
+ z1 = (0, mxheight-1.2mxthird);
+ z2 = (1.2mxone, y1);
+ z3 = (.5[x1,x2], mxheight);
+ z4 = (x3, y3-.6mxthird);
+ fill z1--z3--z2--z4--cycle;
+endchar;
+
+
+
+endinput; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxedbase.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxedbase.mf
new file mode 100644
index 00000000000..ba1462a69b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxedbase.mf
@@ -0,0 +1,79 @@
+% Mxedruli Base File `mxedbase.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.0 as of 16th June 1995 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+mxedbase:=1; % Es soll nur einmal geladen werden.
+
+newinternal slant;
+
+def font_mxed_setup = % Eigenes Macro
+ define_pixels(mxu, mxlittle, mxhalf, mxone, mxheight, mxthird,
+ mxmiddle, mxtop, mxfeet, mxlow, mxzw);
+ define_blacker_pixels(px1, py1, dpx1, dpy1, pdot, pdash);
+
+ pickup pencircle xscaled px1 yscaled py1 rotated -10; % was 10
+ mxed_pen:=savepen;
+
+ pickup pencircle xscaled dpx1 yscaled dpy1 rotated -10;
+ mxed_digitpen:=savepen; % Pen for digits and punctuation
+
+ pickup pencircle scaled pdot;
+ mxed_dot:=savepen; % Pen for dots
+
+ pickup pencircle scaled pdash;
+ mxed_dash:=savepen; % Pen for lines
+
+
+ pickup pensquare scaled pdash;
+ mxed_square:=savepen;
+
+ pickup pencircle xscaled px1 yscaled py1;
+ mxed_pencc:=savepen;
+
+ currenttransform:=identity slanted slant yscaled aspect_ratio;
+enddef;
+
+
+
+if known cmbase:
+ def makebox(text rule) =
+ for y=0,h,mxlittle,-d,mxthird:
+ rule((0,y)t_,(r,y)t_); endfor % horizontals
+ for x=0,r,r-mxzw,mxhalf,mxone:
+ rule((x,-d)t_,(x,h)t_); endfor % verticals
+ % for x=u*(1+floor(l/u)) step u until r-1:
+ % rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ % if charic<>0:
+ % rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+ enddef;
+else:
+ def makebox(text r) =
+ % horizontal lines on y-values:
+ % 0, char-height, char-depth, mxlittle, ...
+ for y=0%,h.o_,-d.o_
+ ,mxlittle,mxthird, mxheight,-mxlow: r((0,y),(w,y)); endfor
+ % vertical lines on x-values:
+ % 0, char-width, char-width - mxzw
+% for x=0,w,w-mxzw, mxhalf, mxone: r((x,-d.o_),(x,h.o_)); endfor
+ for x=0,w, mxhalf, mxone: r((x,-mxlow),(x,mxheight)); endfor
+ if charic<>0: r((w+charic*hppp,h.o_),(w+charic*hppp,.5h.o_)); fi
+ enddef;
+fi
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxedbf10.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxedbf10.mf
new file mode 100644
index 00000000000..37e351498eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxedbf10.mf
@@ -0,0 +1,126 @@
+% Mxedruli Font 10 point Bold Face `mxedbf10.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.4 as of 15th July 1996 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Based on the parameters as in CMBX10
+
+% if unknown cmbase: input cmbase fi
+if unknown mxedbase: input mxedbase fi
+
+font_identifier:="MXEDBF"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+if known cmbase:
+
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+fi
+
+% These are the real Mxedruli Parameters
+boolean mxcap;
+mxcap:=false; % No capitals
+mxu#:= 2.5u#; % war 2.7u# % the unit, which where used to design this fonts
+mxlittle#:= 3mxu#; % height of letters without ascenders
+mxtop#:= 2mxu#; % the height of the ascenders
+mxheight#:=mxtop#+mxlittle#;
+mxhalf#:=1.12mxu#; % Half width of the letter 'a'
+mxone#:=2mxhalf#;
+mxmiddle#:=2/3mxlittle#; % strokes not reaching the baseline, as in 'o'
+mxthird#:=1/3mxlittle#;
+mxfeet#:= .4mxhalf#; % The feet of 'i' and 'o' etc are slightly
+ % bent to the middle
+mxlow#:= 1.8mxu#; % war 2mxu# % max depth below the baseline
+mxzw#:= .65mxu#; % Seperation of two letters
+
+
+px1#:=.27mxu#; % pen 1 xscaling
+py1#:=.88mxu#; % pen 1 yscaling
+
+dpx1#:=px1#; % digitpen xscaling
+dpy1#:=py1#; % digitpen yscaling
+pdot#:=.89mxu#; % pen for dots
+pdash#:=.55mxu#; % pen for dashes
+
+slant:=0;
+
+input mxed; % switch to the driver file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxedc10.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxedc10.mf
new file mode 100644
index 00000000000..f120feb468b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxedc10.mf
@@ -0,0 +1,126 @@
+% Mxedruli Font 10 point Capitals `mxedc10.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.0 as of 16th June 1995 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Based on the parameters as in CMR10
+
+% if unknown cmbase: input cmbase fi
+if unknown mxedbase: input mxedbase fi
+
+font_identifier:="MXEDC"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+if known cmbase:
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+fi
+
+% These are the real Mxedruli Parameters
+boolean mxcap;
+mxcap:=true; % Capitals
+mxu#:= 2.5u#; % was 2.7u# % the unit, which where used to design this fonts
+mxlittle#:= 3.1mxu#; % height of letters without ascenders
+mxtop#:= 3.1mxu#; % the height of the ascenders
+mxheight#:=mxtop#+mxlittle#;
+mxhalf#:=mxu#; % Half width of the letter 'a'
+mxone#:=2mxhalf#;
+mxmiddle#:=2/3mxlittle#; % strokes not reaching the baseline, as in 'o'
+mxthird#:=1/3mxlittle#;
+mxfeet#:= .4mxhalf#; % The feet of 'i' and 'o' etc are slightly
+ % bent to the middle
+mxlow#:= 1.8mxu#; %war 2mxu# % max depth below the baseline
+mxzw#:= 1.20mxu#; % Seperation of two letters
+
+
+px1#:=.60mxu#; % pen 1 xscaling
+py1#:=.24mxu#; % pen 1 yscaling
+
+dpx1#:=.25mxu#; % digitpen xscaling
+dpy1#:=.68mxu#; % digitpen yscaling
+pdot#:=.74mxu#; % pen for dots
+pdash#:=.40mxu#; % pen for dashes
+
+
+slant:=0;
+
+input mxed; % switch to the driver file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxedcaps.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxedcaps.mf
new file mode 100644
index 00000000000..e8d04b819bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxedcaps.mf
@@ -0,0 +1,869 @@
+% Mxedruli CAPITALS `mxedcaps.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.3 as of 20th May 1996 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% Glottal Stop %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "' - Glottal Stop";
+beginchar(oct"021", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ top lft z1 = (mxone, mxheight);
+ lft z2 = (mxone, 1.5mxlittle);
+ lft z3 = (mxhalf, mxlittle);
+ lft z4 = (0, y2);
+ z5 = (x4, y1);
+ draw z1..{down}z2..{left}z3..{up}z4..z5;
+
+ z6 = (x4, .5mxlittle);
+ bot z7 = (x3, 0);
+ z8 = (x2, y6);
+ draw z4--z6{down}..{right}z7..{up}z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+%% qh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Contributed by Mark Leisher and adapted by J Heinecke
+mxedchar "q - qhar (oct015)";
+beginchar(oct"015", mxzw#+mxone#+.5mxhalf#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxthird);
+ bot lft z2 = (mxhalf, 0);
+ z4 = (x2, mxlittle);
+ lft z3 = (mxone, .67mxlittle);
+ z31 = (x3, .33mxlittle);
+ lft z5 = (0, .7mxlittle);
+ draw z1{down}..{right}z2..{up}z31..{up}z3..{left}z4..z5;
+
+ z6 = (x3, 1.5mxlittle);
+ z7 = (x4-.25mxthird, 1.75mxlittle);
+ z8 =(x6, mxheight);
+ draw z4{right}..{up}z6..{dir 90}z7..z8;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+
+%% long ee %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Contributed by Mark Leisher and adapted by J Heinecke
+mxedchar "ee - (Long e) oct(016)";
+beginchar(oct"016", mxzw#+1.5mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ lft top z1 = (0, mxheight);
+ lft z2 = (0, mxthird);
+ bot z25 = (mxone, 0);
+ z3 = (1.5mxone, y2);
+ z4 = (1.2mxone, .5mxlittle);
+ z5 = (.75mxone, 2/3mxlittle);
+ draw z1..z2{down}..{right}z25..z3..z4..z5;
+
+ z6 = (x3, 3/4mxlittle);
+ z7 = (x4, mxlittle);
+ z8 = (x5, 7/6mxlittle);
+ draw z4..z6..z7--z8;
+
+ z9 = (x6, 17/12mxlittle);
+ top z10 = (x5, mxheight);
+ draw z7..z9..{up}z10;
+
+ penlabels(range 1 thru 10);
+endchar;
+
+
+%% a %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "a - an";
+beginchar("a", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxlittle);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, y1);
+ top z4 = (x2, mxheight);
+ draw z1{down}..z2{right}..{up}z3..{up}z4;
+ penlabels(range 1 thru 4);
+endchar;
+
+%% ae %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "e1 - ae (Ossetian), oct013";
+beginchar(oct"013", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxlittle);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, y1);
+ top z4 = (.25mxhalf, mxheight); % x4 war x2
+ z5 = (x4+mxhalf, y4);
+ draw z1{down}..z2{right}..{up}z3..{up}z4..{down}z5;
+ penlabels(range 1 thru 5);
+endchar;
+
+
+%% i %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "i - in";
+beginchar("i", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ bot lft z1 = (0, 0);
+ lft z2 = (0, mxlittle);
+ top lft z3 = (mxhalf, mxheight);
+ lft z4 = (mxone, y2);
+ lft z5 = (mxone, y1);
+ draw z1..{up}z2..{right}z3..{down}z4..z5;
+ penlabels(range 1 thru 5);
+endchar;
+
+
+%% oo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "oo - ho, (Old Georgian), oct011";
+beginchar(oct"011", mxzw#+mxone#+mxhalf#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (mxone+mxhalf, .9mxlittle);
+ z8 = (x1, 1.1mxlittle);
+ lft z2 = (mxhalf, y1);
+ z7 = (x2, y8);
+ bot z3 = (x2, 0);
+ top z6 = (x2, mxheight);
+ lft z4 = (mxone, .8mxthird);
+ z5 = (x4, mxheight-.8mxthird);
+ draw z1--z2{left}..z3..{up}z4--z5{up}..z6..{right}z7--z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+
+%% o %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "o - on";
+beginchar("o", mxzw#+1.6mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ bot lft z1 = (0, 0);
+ z2 = (x1, 1.5mxlittle);
+ top lft z3 = (.8mxhalf, mxheight);
+ lft z4 = (.8mxone, mxlittle);
+ z41 = (x4, 1.5mxlittle);
+ lft z5 = (.8mxone+.8mxhalf, y3);
+ lft z6 = (1.6mxone, y2);
+ z7 = (x6, y1);
+ draw z1..{up}z2..{right}z3..{down}z41--z4;
+ draw z4--z41{up}..{right}z5..{down}z6..z7;
+ penlabels(range 1 thru 7, 41);
+endchar;
+
+%% r %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "r - ran";
+beginchar("r", mxzw#+1.6mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ bot lft z1 = (0, 0);
+ z2 = (x1, .5mxlittle);
+ lft z3 = (.8mxhalf, .5mxheight);
+ lft z4 = (.8mxone, .5mxlittle);
+ lft z5 = (.8mxone+.8mxhalf, y3);
+ lft z6 = (1.6mxone, y2);
+ z7 = (x6, y1);
+ top z8 = (x6, mxheight);
+ draw z1..{up}z2..{right}z3..{down}z4;
+ draw z4{up}..{right}z5..{down}z6..z7;
+ draw z2{up}..z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+
+%% b %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "b - ban";
+beginchar("b", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, .5mxlittle);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (x4-.7mxhalf, mxheight-.7mxhalf);
+ top z6 = (x4, mxheight);
+ draw z5--z6--z4;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+
+
+%% c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "c - can";
+beginchar("c", mxzw#+mxone#, mxlittle#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ top lft z1 = (0, mxheight);
+ lft z4 = (mxone, .4mxheight);
+ bot z3 = (.5[x1,x4], 0);
+ z2 = (x1, y4);
+ z5 = (x4-.5mxhalf, .5mxheight);
+ draw z1..{down}z2..{right}z3..{up}z4..tension 2..{left}z5;
+
+ z6 = (x4, 1.2mxlittle);
+ z7 = (x4, y1);
+ draw z5{right}..{up}z6..z7;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+
+%% .c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar ".c - .cil (oct000)";
+beginchar(oct"000", mxzw#+mxone#+mxhalf#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxheight-.3mxtop);
+ lft z9 = (mxone+mxhalf, y1);
+ bot z2 = (.5[x1,x9], 0);
+ z3 = (.4[z1,z2]);
+ z4 = (.4[z9,z2]);
+ z7 = (x2, y1);
+ top z6 = (.5[x1, x7], mxheight);
+ z8 = (.5[x7, x9], y6);
+ draw z1--z2--z4--z3;
+ draw z1{up}..{right}z6..{down}z7;
+ draw z7{up}..{right}z8..{down}z9;
+ penlabels(range 1 thru 9);
+endchar;
+
+%% ^c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^c - ^cin (+c, oct001)";
+beginchar(oct"001", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ bot lft z1 = (0, 0);
+ lft z2 = (0, .5mxlittle);
+ lft z3 = (mxhalf, mxlittle);
+ lft z4 = (mxone, y2);
+ bot z5 = (x4, 0);
+ draw z1..{up}z2..{right}z3..{down}z4..z5;
+
+ lft z6 = (0, mxheight-.05mxtop);
+ top lft z9 = (mxhalf, mxheight);
+ z7 = (x4-.5mxhalf,mxheight-.25mxtop);
+ z10 = (x9, mxheight-.5mxtop);
+ lft z8 = (0, mxheight-.45mxtop);
+ draw z2--z6;
+ draw z6..{right}z9..{down}z7..{left}z10..z8;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% ^.c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^.c - ^.car (,c .+c oct014)";
+beginchar(oct"014", mxzw#+1.2mxone#, mxheight#, 0); % war "y"
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (.5mxhalf, .6mxmiddle);
+ lft z2 = (0, .6mxthird);
+ bot lft z3 = (mxhalf, 0);
+ lft z4 = (mxone, y2);
+ lft z5 = (.75mxone, 1.3mxthird);
+ top z6 = (x5, mxheight);
+ z7 = (x1, .9mxheight);
+ draw z1{dir -135}..{down}z2..{right}z3..{up}z4..{up}z5--z6--z7;
+
+ z8 = (x5, mxlittle); % z10 and z11 should be 45 degree NE/SE
+ z9 = (x1, y8);
+ z10 = (x5+.7mxhalf, y8+.7mxhalf);
+ z11 = (x5+.7mxhalf, y8-.7mxhalf);
+ draw z10--z8..{up}z9..z8--z11;
+
+ penlabels(range 1 thru 11);
+endchar;
+
+%% d %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "d - don";
+beginchar("d", mxzw#+1.6mxone#, mxlittle#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (.8mxone, 1.5mxlittle);
+ lft z2 = (.8mxone+.8mxhalf, mxlittle);
+ lft z3 = (1.6mxone, y1);
+ top z4 = (x2, mxheight);
+ z5 = (x1, mxmiddle+mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..{down}z5..cycle;
+
+ lft z6 = (.8mxhalf, y4);
+ lft z7 = (0, y1);
+ z8 = (x7, mxlittle);
+ draw z5{up}..{left}z6..{down}z7..z8;
+
+ bot z9 = (x3, 0);
+ draw z8..{dir -75}z9;
+ penlabels(range 1 thru 10);
+endchar;
+
+%% e %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "e - en";
+beginchar("e", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, .4mxlittle);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, mxlittle);
+ z4 = (x3, mxmiddle+mxlittle);
+ top z5 = (x2, mxheight);
+ lft z6 = (0, y4);
+ draw z1{down}..{right}z2..{up}z3--z4..{left}z5..z6;
+
+ penlabels(range 1 thru 6);
+endchar;
+
+%% g %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "g - gan";
+beginchar("g", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ bot lft z2 = (mxhalf, 0);
+ z4 = (x2, mxlittle);
+ lft z1 = (0, .5[y2,y4]); % y was -.5mxlow
+ lft z3 = (mxone, y1);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (x3-.3mxhalf, 1.5mxlittle);
+ top z6 = (x4, mxheight);
+ lft z7 = (.3mxhalf, y5);
+ draw z4{right}..{up}z5..{left}z6..{down}z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+
+%% .g %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar ".g - .gan (oct002)";
+beginchar(oct"002", mxzw#+1.6mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxlittle);
+ lft z2 = (0, 1.5mxlittle);
+ top lft z3 = (.8mxhalf, mxheight);
+ lft z4 = (.8mxone, mxmiddle+mxlittle);
+ lft z5 = (.8mxone+.8mxhalf, y3);
+ lft z6 = (1.6mxone, y2);
+ z7 = (x6, y1);
+ bot z8 = (x6, 0);
+ draw z1..{up}z2..{right}z3..{down}z4;
+ draw z4{up}..{right}z5..{down}z6..z7;
+ draw z1..{dir -75}z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% h %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "h - ha";
+beginchar("h", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxthird);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, .5mxlittle);
+ lft z4 = (.75mxone, 5/6mxlittle);
+ lft z5 = (.75mxhalf, y4);
+ draw z1{dir -80}..{right}z2..{up}z3..{left}z4--z5;
+
+ z6 = (x3, mxlittle);
+ z7 = (x4, 7/6mxlittle);
+ z8 = (x5, y7);
+ draw z4..{up}z6..{left}z7--z8;
+
+ z9 = (x6, 8/6mxlittle);
+ top lft z10= (0, mxheight);
+ draw z7..{up}z9..{dir 110}z10;
+
+ penlabels(range 1 thru 10);
+endchar;
+
+
+%% ^dz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^dz/^j - ^jan (oct010)";
+beginchar(oct"010", mxzw#+2mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxthird);
+ lft z3 = (1.5mxhalf, y1);
+ z2 = (.5[x1,x3], 0);
+ lft z4 = (1.2mxhalf, .5mxlittle);
+ top lft z5 = (2mxone, mxheight);
+ draw z1{down}..{right}z2..{up}z3..z4;
+ draw z4--z5;
+
+ lft z6 = (.3mxhalf, 11/12mxheight);
+ top lft z7 = (mxhalf, mxheight);
+ lft z8 = (1.75mxone, .5mxlittle);
+ z9 = (x5, y8+1/12mxheight);
+ draw z6{up}..{right}z7..{right}z8..z9;
+
+ penlabels(range 1 thru 9);
+endchar;
+
+
+%% dz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "dz (j) - dzil";
+beginchar("j", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, .5mxlittle);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ top z5 = (x3, mxheight);
+ draw z3--z5;
+ penlabels(range 1 thru 5);
+endchar;
+
+
+%% k %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "k - kan";
+beginchar("k", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, .8mxlittle);
+ lft z2 = (mxhalf, mxlittle);
+ lft z3 = (mxone, .8mxlittle);
+ z4 = (x3, .2mxlittle);
+ bot z5 = (x2, 0);
+ z6 = (x1, y4);
+ top z7 = (x3, mxheight);
+ z8 = z7 - (mxhalf, mxthird);
+ draw z1..z2..{down}z3--z4{down}..{left}z5..{up}z6;
+ draw z3--z7--z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+
+mxedchar ".k - .kan (oct003)";
+beginchar(oct"003", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxthird);
+ bot lft z2 = (mxhalf, 0);
+ z4 = (x2, mxlittle);
+ lft z3 = (mxone, .67mxlittle);
+ z31 = (x3, .33mxlittle);
+ lft z5 = (0, .7mxlittle);
+ draw z1{down}..{right}z2..{up}z31..{up}z3..{left}z4..z5;
+
+ z6 = (x3, 1.33mxlittle);
+ top z7 = (x6, mxheight);
+ draw z4{right}..{up}z6..z7;
+
+ penlabels(range 1 thru 7, 31);
+endchar;
+
+
+
+%% l %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "l - las";
+beginchar("l", mxzw#+2.4mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxlittle);
+ lft z2 = (0, 1.5mxlittle);
+ top lft z3 = (.8mxhalf, mxheight);
+ lft z4 = (.8mxone, 1.5mxlittle);
+ lft z9 = (.8mxone+.8mxhalf, y3);
+ lft z10= (1.6mxone, y4);
+ lft z5 = (1.6mxone+.8mxhalf, y3);
+ lft z6 = (2.4mxone, y2);
+ lft z7 = (2.4mxone, y1);
+ z8 = (x6, 0);
+ draw z1..{up}z2..{right}z3..{down}z4;
+ draw z4{up}..{right}z9..{down}z10;
+ draw z10{up}..{right}z5..{down}z6..z7;
+ draw z1..{dir -50}z8;
+ penlabels(range 1 thru 10);
+endchar;
+
+
+%% m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "m - man";
+beginchar("m", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, .5mxlittle);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (x3, mxheight-.5mxtop);
+ z6 = (x4, mxheight);
+ lft z7 = (0, y5);
+ draw z3..z5{up}..{left}z6..{down}z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% n %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "n - nar";
+beginchar("n", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, .5mxlittle);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ lft z5 = (0, mxheight-.25mxtop);
+ top lft z6 = (.5mxhalf, mxheight);
+ z7 = (x3, y6+.2mxtop);
+ draw z1..z5{up}..{right}z6..{dir 75}z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+
+%% p %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "p - par";
+beginchar("p", mxzw#+1.6mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, 1.5mxlittle);
+ lft z2 = (.8mxhalf, mxlittle);
+ lft z3 = (.8mxone, y1);
+ z4 = (x3, mxlittle+mxmiddle);
+ top z5 = (x2, mxheight);
+ draw z1{down}..{right}z2..{up}z3..z4{up}..{left}z5..cycle;
+
+ lft z6 = (.8mxhalf+.8mxone, y5);
+ lft z7 = (1.6mxone, y1);
+ bot z8 = (x6, 0);
+ z9 = (x7, .5mxlittle);
+ lft z11= (.6mxone, y9);
+ bot z10= (.5[x11,x9], 0);
+% draw z4{up}..{right}z6..{down}z7..{left}z8;
+% draw z8{right}..{down}z9..{left}z10..{dir 70}z11;
+ draw z4{up}..{right}z6..{down}z7..{down}z9..
+ {left}z8..{left}z10..{up}z11;
+ penlabels(range 1 thru 11);
+endchar;
+
+%% .p %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar ".p - .par (oct004)";
+beginchar(oct"004", mxzw#+mxone#, mxthird#+mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxthird);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, .5mxlittle);
+ z4 = (x2, mxlittle);
+ z5 = (mxhalf, y4);
+ draw z1{dir -80}..{right}z2..{up}z3..{left}z4--z5;
+
+ z6 = (x3, mxlittle+.4mxtop);
+ z7 = (x1, .2mxtop+mxheight);
+ draw z4..{up}z6..{dir 110}z7;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% q %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "q - qar";
+beginchar("q", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ top lft z1 = (0, mxheight);
+ lft z2 = (0, 1.5mxlittle);
+ lft z3 = (mxhalf, mxlittle);
+ lft z4 = (mxone, y2);
+ z5 = (x4, y1);
+ draw z1..{down}z2..{right}z3..{up}z4..z5;
+
+ z6 = (x4, .5mxlittle);
+ bot z7 = (x3, 0);
+ z8 = (x2, y6);
+ draw z4--z6{down}..{left}z7..{up}z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% s %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "s - san";
+beginchar("s", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ top lft z5 = (0, mxheight);
+ lft z1 = (0, .5mxlittle);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, y1);
+ lft z4 = (1/3mxone, mxlittle);
+ draw z5--z1{down}..{right}z2..{up}z3..{up}z4;
+
+ penlabels(range 1 thru 5);
+endchar;
+
+
+
+%% ^s %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^s - ^san (+s, oct005)";
+beginchar(oct"005", mxzw#+mxhalf#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (mxhalf, .5mxlittle);
+ bot lft z2 = (mxhalf+mxhalf, 0);
+ lft z3 = (mxone+mxhalf, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (x3, mxheight-.5mxtop);
+ top z6 = (x4, mxheight);
+ lft z7 = (mxhalf, y5);
+ draw z3..z5{up}..{left}z6..{down}z7;
+
+ lft z8 = (0, y6);
+ draw z7{up}..{left}z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% t %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "t - tan";
+beginchar("t", mxzw#+1.6mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxlittle);
+ bot lft z2 = (.8mxhalf, 0);
+ lft z3 = (.8mxone, y1);
+ z4 = (x3, mxlittle+mxmiddle);
+ top z5 = (x2, mxheight);
+ draw z1{down}..tension 1.3..{right}z2..tension 1.3..{up}z3..z4{up}..{left}z5..tension 1.3..cycle;
+
+ lft z6 = (.8mxhalf+.8mxone, y5);
+ lft z7 = (1.6mxone, y1);
+ bot z8 = (x7, 0);
+ draw z4{up}..{right}z6..tension 1.3..{down}z7..z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% .t %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar ".t - tar (oct006)";
+beginchar(oct"006", mxzw#+mxone#+mxhalf#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, .8mxlittle);
+ bot lft z2 = (.5mxhalf+.5mxone, 0);
+ lft z3 = (mxone+mxhalf, y1);
+ z4 = (x2, .8mxheight);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ bot z5 = (x4, y4-.2mxheight);
+ top z6 = (x4, y4+.2mxheight);
+ draw z4{left}..{right}z5..cycle;
+ draw z4{left}..{right}z6..cycle;
+ penlabels(range 1 thru 6);
+endchar;
+
+
+
+%% u %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "u - un";
+beginchar("u", mxzw#+2.2mxone#, mxlittle#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ top lft z1 = (0, mxheight);
+ lft z5 = (mxone, y1);
+ z2 = (.5[x1,x5], 1.75mxlittle);
+ lft z6 = (1.4mxone, 1.5mxlittle);
+ z7 = (x6, mxlittle);
+ draw z1..z2..{right}z5..{down}z6--z7;
+
+ lft z8 = (1.4mxone+.8mxhalf, y5);
+ lft z9 = (2.2mxone, y6);
+ z10= (x9, .5mxlittle);
+ bot z11= (x6, 0);
+ z12= (x2, y10);
+ draw z6{dir 75}..{right}z8..{down}z9--z10...{left}z11..{up}z12;
+ penlabels(range 1 thru 12);
+endchar;
+
+
+%% v %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "v - vin";
+beginchar("v", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxlittle+mxmiddle);
+ top lft z2 = (mxhalf, mxheight);
+ lft z3 = (mxone, .5[y4,y2]);
+ z4 = (x2, mxlittle);
+ draw z1{up}..{right}z2..{down}z3..{left}z4; % ..z5;
+
+ z6 = (x3, .5[y4,y7]);
+ bot z7 = (x2, 0);
+ lft z8 = (0, y6);
+ draw z4{right}..{down}z6..{left}z7..{up}z8;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% x %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "x - xan";
+beginchar("x", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, .5mxlittle);
+ bot lft z2 = (mxhalf, 0);
+ lft z3 = (mxone, y1);
+ z4 = (x2, 5/6mxlittle);
+ z6 = (x1, y4);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..z6;
+
+ top lft z5 = (0, mxheight);
+ draw z1--z5;
+
+ z7 = z6 +(1mxu, 1mxu);
+ draw z6--z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "z - zen";
+beginchar("z", mxzw#+2mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (.75mxone, .5mxlittle);
+ bot lft z2 = (.75mxone+mxhalf, 0);
+ lft z3 = (.75mxone+mxone, y1);
+ z4 = (x2, 5/6mxlittle);
+ z6 = (x1, y4);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..z6;
+
+ lft z5 = (.75mxone, mxheight-.5mxtop);
+ top z11= (x5, mxheight);
+ lft z8 = (mxhalf, y11);
+ lft z9 = (0, y5);
+ z10 =(.5[x9,x5], mxheight-mxtop);
+% draw z1--z11..{left}z8..{down}z9..{right}z10..{up}z5;
+ draw z1--z5{up}..{left}z8..{down}z9..{right}z10..{up}z5;
+
+ z7 = z6 + (1mxu, 1mxu);
+ draw z6--z7;
+ penlabels(range 1 thru 11);
+endchar;
+
+
+
+%% ^z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^z - ^zan (+z, oct007)";
+beginchar(oct"007", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, 1.5mxlittle);
+ lft z2 = (.5mxhalf, mxlittle);
+ lft z3 = (mxhalf, y1);
+ top lft z4 = (mxone, mxheight);
+ draw z1{down}..{right}z2..{up}z3..{up}z4;
+
+ z5 = (x4, .5mxlittle);
+ bot z6 = (x3, 0);
+ lft z7 = (0, y5);
+ draw z4--z5{down}..{left}z6..{up}z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% f %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "f, (Ossetian)";
+beginchar("f", mxzw#+mxone#+mxhalf#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, mxlittle);
+ lft z2 = (1.5mxone, y1);
+ draw z1..z2..cycle;
+
+ lft z3 = (0, .8mxheight);
+ top lft z31 = (1/3mxone, mxheight);
+ lft z4 = (1.5mxhalf, y1);
+ bot lft z51 = (7/6mxone, 0);
+ lft z5 = (1.5mxone, .2mxheight);
+ draw z3{up}..{right}z31..{down}z4..{right}z51..{up}z5;
+
+ penlabels(range 1 thru 5, 31, 51);
+endchar;
+
+%% i1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "i1 - short i, (Old Georgian), oct012";
+beginchar(oct"012", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ bot lft z1 = (0, 0);
+ lft z2 = (mxhalf, .5mxthird);
+ top z4 = (x2, mxheight);
+ lft z3 = (mxone, .5[y2,y4]);
+ lft z5 = (0, y3);
+ z6 = (x3, y1);
+ draw z2..z3..z4..z5..cycle;
+ draw z1..z2..z6;
+ penlabels(range 1 thru 6);
+endchar;
+
+%% w %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "w - wi, (Old Georgian)";
+beginchar("w", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ top lft z1 = (.5mxhalf, mxheight);
+ lft z2 = (mxone, y1);
+ z3 = (x1, mxlittle);
+ z4 = (x2, .5mxlittle);
+ bot lft z5 = (mxhalf, 0);
+ lft z6 = (0, mxthird);
+ draw z1--z2--z3{dir 30}..{down}z4..{left}z5..z6;
+ penlabels(range 1 thru 6);
+endchar;
+
+%% Schwa %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "y - Schwa, (Ossetian)";
+beginchar("y", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pencc;
+ lft z1 = (0, 1.5mxlittle);
+ lft z2 = (mxone, y1);
+ top z12 = (.5[x1,x2], mxheight);
+ z3 = (x1, .5mxlittle);
+ z4 = (x2, y3);
+ bot z34 = (x12, 0);
+ draw z1{up}..{right}z12..{down}z2..{down}z3..{right}z34..{up}z4;
+ penlabels(range 1 thru 4, 12, 34);
+endchar;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxedd.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxedd.mf
new file mode 100644
index 00000000000..c3674928821
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxedd.mf
@@ -0,0 +1,170 @@
+% Mxedruli digits `mxedd.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.0 as of 16th June 1995 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "1";
+beginchar("1", mxhalf#+mxzw#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_digitpen;
+ top z1 = (mxhalf, mxheight);
+ bot z2 = (x1, 0);
+ z3 = (0, mxheight-.5mxtop);
+ draw z3--z1--z2;
+ penlabels(1, 2, 3);
+endchar;
+
+%% 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "2";
+beginchar("2", mxone#+mxzw#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_digitpen;
+ z1 = (0, mxheight-.5mxtop);
+ top z2 = (mxhalf, mxheight);
+ z3 = (mxone, y1);
+ bot z4 = (x1, 0);
+ z5 = (x3, y4);
+% draw z1{up}..{right}z2..{down}z3..tension 2..z4--z5;
+ draw z1{up}..{right}z2..z3..{z4-z3}z4--z5;
+ penlabels(1, 2, 3, 4, 5);
+endchar;
+
+%% 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "3";
+beginchar("3", mxone#+mxzw#, mxheight#, 0);
+ pickup mxed_digitpen;
+ top z1 = (0, mxheight);
+ z2 = (mxone, y1);
+ z3 = (mxhalf, mxlittle);
+ z4 = (x2, .5mxlittle);
+ bot z5 = (x3, 0);
+ z6 = (x1, .5mxlittle);
+ draw z1--z2--z3;
+ draw z3{right}..{down}z4..{left}z5..{up}z6;
+ penlabels(1, 2, 3, 4, 5, 6);
+endchar;
+
+%% 4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "4";
+beginchar("4", mxone#+mxzw#, mxheight#, 0);
+ pickup mxed_digitpen;
+ top z1 = (mxhalf, mxheight);
+ z2 = (0, .6mxlittle);
+ z3 = (mxone, y2);
+ draw z1--z2--z3;
+ bot z4 = (x1, 0);
+ z5 = (x4, 1.25mxlittle);
+ draw z4--z5;
+ penlabels(1, 2, 3, 4, 5);
+endchar;
+
+%% 5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "5";
+beginchar("5", mxone#+mxzw#, mxheight#, 0);
+ pickup mxed_digitpen;
+ top z1 = (mxone, mxheight);
+ z2 = (0, y1);
+ z3 = (x2, mxlittle);
+ z4 = (mxhalf, y3);
+ z5 = (x1, .5mxlittle);
+ bot z6 = (x4, 0);
+ z7 = (x2, .3mxlittle);
+ draw z1--z2--z3--z4{right}..z5..{left}z6..z7;
+ penlabels(1, 2, 3, 4, 5, 6, 7);
+endchar;
+
+%% 6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "6";
+beginchar("6", mxone#+mxzw#, mxheight#, 0);
+ pickup mxed_digitpen;
+ bot z1 = (mxhalf, 0);
+ z2 = (x1, mxlittle);
+ z3 = (0, .5mxlittle);
+ z5 = (mxone, y3);
+ draw z1{left}..{up}z3..{right}z2..{down}z5..cycle;
+ top z4 = (1.5mxhalf, mxheight);
+% draw z3{up}..{dir 60}z4;
+ draw z3{up}..z4;
+ penlabels(1, 2, 3, 4, 5);
+endchar;
+
+%% 7 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "7";
+beginchar("7", mxone#+mxzw#, mxheight#, 0);
+ pickup mxed_digitpen;
+ top z1 = (0, mxheight);
+ z2 = (mxone, y1);
+ bot z3 = (x1, 0);
+ draw z1--z2--z3;
+ penlabels(1, 2, 3);
+endchar;
+
+%% 8 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "8";
+beginchar("8", mxone#+mxzw#, mxheight#, 0);
+ pickup mxed_digitpen;
+ bot z1 = (mxhalf, 0);
+ z2 = (x1, mxlittle);
+ z6 = (0, .5mxlittle);
+ z7 = (mxone, y6);
+ draw z1{left}..{up}z6..{right}z2..{down}z7..cycle;
+ top z3 = (x1, mxheight);
+ z4 = (.2mxhalf, .5[y2, y3]);
+ z5 = (1.8mxhalf, y4);
+ draw z3{left}..{down}z4..{right}z2..{up}z5..cycle;
+ penlabels(1, 2, 3, 4, 5, 6, 7);
+endchar;
+
+%% 9 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "9";
+beginchar("9", mxone#+mxzw#, mxheight#, 0);
+ pickup mxed_digitpen;
+ top z1 = (mxhalf, mxheight);
+ z2 = (x1, mxlittle);
+ z3 = (mxone, mxheight-.5mxtop);
+ z4 = (0, y3);
+
+ draw z1{left}..{down}z4..{right}z2..{up}z3..cycle;
+ bot z5 = (.5mxhalf, 0);
+% draw z3{down}..{dir -120}z5;
+ draw z3{down}..z5;
+ penlabels(1, 2, 3, 4);
+endchar;
+
+%% 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "0";
+beginchar("0", mxone#+mxzw#, mxheight#, 0);
+ pickup mxed_digitpen;
+ bot z1 = (mxhalf, 0);
+ z2 = (mxone, mxlittle);
+ top z3 = (x1, mxheight);
+ z4 = (0, y2);
+ draw z1{right}..{up}z2..{left}z3..{down}z4..cycle;
+ penlabels(1, 2, 3, 4);
+endchar;
+
+
+endinput;
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxedfont.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxedfont.mf
new file mode 100644
index 00000000000..6dfd68e1c55
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxedfont.mf
@@ -0,0 +1,980 @@
+% Mxedruli FONT `mxedfont.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.3 as of 20th May 1996 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% Glottal Stop %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "' - Glottal Stop";
+beginchar(oct"021", mxzw#+mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxone-mxfeet, mxlittle);
+ z2 = (mxone, .5mxlittle);
+ z3 = (mxhalf, 0);
+ z4 = (0, y2);
+ z5 = (mxfeet, y1);
+ draw z1..{down}z2..{left}z3..{up}z4..z5;
+
+ z6 = (x4, -.5mxlow);
+ z7 = (x3, -mxlow);
+ z8 = (x2, y6);
+ draw z4--z6..{right}z7..{up}z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% qh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Contributed by Mark Leisher
+mxedchar "q - qhar (oct015)";
+beginchar(oct"015", mxzw#+mxone#+.5mxhalf#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, -.5mxlow);
+ z2 = (mxhalf, -mxlow);
+ z3 = (mxone, -.25mxlow);
+ z4 = (x2, 1/3mxlittle);
+ z5 = (0, 1/6mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..z5;
+
+ z6 = (x3, 1.75mxthird);
+ z7 = (x4-.25mxthird, mxlittle);
+ z8 =(x6, y7+.5mxthird);
+ draw z4{right}..{up}z6..{dir 90}z7..z8;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% long ee %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Contributed by Mark Leisher
+mxedchar "ee - (Long e) oct(016)";
+beginchar(oct"016", mxzw#+2mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z0 = (0, .5[mxlittle,2/3mxlittle]);
+ z1 = (.5mxthird, mxheight-.5mxthird);
+ z2 = (0, mxlittle);
+ z3 = (.7w, .1mxlittle);
+ z4 = (.6w, 2/6mxlittle);
+ z5 = (.4w, 3/6mxlittle);
+ draw z0{right}..{left}z1..z2{down}..{up}z3..z4--z5;
+
+ z6 = (x3+.5mxthird, .6mxlittle);
+ z7 = (x4+.5mxthird, 5/6mxlittle);
+ z8 = (x5+.5mxthird, mxlittle);
+ draw z4..{up}z6..z7--z8;
+
+ z9 = (x6+.5mxthird, mxlittle);
+ z10= (.5w, mxheight);
+ draw z7..{up}z9..{dir 110}z10;
+
+ penlabels(range 0 thru 10);
+endchar;
+
+
+%% ae %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "e1 - ae (Ossetian), oct013";
+beginchar(oct"013", mxzw#+mxone#, 4mxthird#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, mxthird);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (.2mxhalf, mxlittle); % x4 war x2
+ z5 = (x4+mxhalf, y4);
+ draw z1{down}..z2{right}..{up}z3..{up}z4..{down}z5;
+ penlabels(range 1 thru 5);
+endchar;
+
+
+
+%% a %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "a - an";
+beginchar("a", mxzw#+mxone#, mxlittle#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, mxthird);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..z2{right}..{up}z3..{up}z4;
+ penlabels(range 1 thru 4);
+endchar;
+
+
+%% b %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% New Design
+mxedchar "b - ban";
+beginchar("b", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .5mxlittle);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+
+ top z5 = (x1, mxheight);
+ z6 = (x5, mxheight);
+ z7 = (x4, y6-.3mxtop);
+ draw z5--z6--z7--z4;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% b1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "b - ban (Variation, b1)";
+beginchar(oct"020", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .5mxlittle);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+% Correction by JDL (8/5/94)
+% z5 = (x3, mxheight);
+% z6 = (0, y5);
+% z7 = (0, y5-.3mxtop);
+% draw z4{up}..{left}z5;
+% draw z5--z6--z7;
+ z5 = (0, 0.5[y6,y7]);
+ z6 = (0, mxheight);
+ z7 = (0, y6-.3mxtop);
+ draw z4{up}..{left}z5;
+ draw z6--z7;
+% end correction
+ penlabels(range 1 thru 7);
+endchar;
+
+
+
+%% c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "c - can";
+beginchar("c", mxzw#+mxone#+.5mxhalf#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (.5mxhalf, mxlittle);
+ z2 = (0, .5mxthird);
+ z3 = (mxhalf, -mxlow);
+ z4 = (mxone+.5mxhalf, -.4mxlow);
+ z5 = (x4-mxhalf, y2);
+ draw z1..{down}z2..{right}z3..{up}z4..{left}z5;
+
+ z6 = (x4, 1.2mxthird);
+ z7 = (x5, y1);
+ draw z5{right}..{up}z6..{dir 135}z7;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% %% .c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% mxedchar ".c - .cil (oct000)";
+%% beginchar(oct"000", mxzw#+mxone#+mxhalf#, mxheight#, mxlow#);
+%% if known cmbase: adjust_fit(0,0); fi
+%% pickup mxed_pen;
+%% z1 = (0, mxheight-.5mxtop);
+%% z2 = (.5mxone+.5mxhalf, -mxlow);
+%% z3 = (.4[z1,z2]);
+%% z4 = (mxone+mxhalf, y3);
+%% x5 = .5[x3,x4];
+%% y5 = y4+mxthird;
+%% z6 = (.5[x1, x7], mxheight);
+%% z7 = (x2, y1);
+%% z8 = (.5[x7, x9], y6);
+%% z9 = (x4, y1);
+%% draw z1--z2--z4..{left}z5..{(z2-z1)}z3;
+%% draw z1..{right}z6..{down}z7;
+%% draw z7..{right}z8..{down}z9;
+%% penlabels(range 1 thru 9);
+%% endchar;
+
+
+%% .c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar ".c - .cil (oct000)";
+beginchar(oct"000", mxzw#+mxone#+mxhalf#, mxheight#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, mxheight-.5mxtop);
+ z9 = (mxone+mxhalf, y1);
+ z2 = (.5[x1,x9], -mxlow);
+ z3 = (.4[z1,z2]);
+ z4 = (.4[z9,z2]);
+ z7 = (x2, y1);
+ z6 = (.5[x1, x7], mxheight);
+ z8 = (.5[x7, x9], y6);
+ draw z1--z2--z4--z3;
+ draw z1{up}..{right}z6..{down}z7;
+ draw z7{up}..{right}z8..{down}z9;
+ penlabels(range 1 thru 9);
+endchar;
+
+%% ^c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^c - ^cin (+c, oct001)";
+beginchar(oct"001", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, 0);
+ z2 = (0, .5mxlittle);
+ z3 = (mxhalf, mxlittle);
+ z4 = (mxone, y2);
+ z5 = (mxone-mxfeet, 0);
+ draw z1..{up}z2..{right}z3..{down}z4..z5;
+
+ z6 = (0, mxheight-.05mxtop);
+ z9 = (mxhalf, mxheight);
+ z7 = (x4-.5mxhalf,mxheight-.25mxtop);
+ z10 = (x9, mxheight-.5mxtop);
+ z8 = (0, mxheight-.45mxtop);
+ draw z2--z6;
+ draw z6..{right}z9..{down}z7..{left}z10..z8;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% ^.c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^.c - ^.car (,c .+c oct014)";
+beginchar(oct"014", mxzw#+1.2mxone#, mxheight#, mxlow#); % war "y"
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (.5mxhalf, 0);
+ z2 = (0, -.5mxlow);
+ z3 = (mxhalf, -mxlow);
+ z4 = (mxone, y2);
+ z5 = (.75mxone, mxthird);
+ z6 = (x5, mxheight);
+ z7 = (x1, mxheight-.5mxtop);
+ draw z1{dir -135}..{down}z2..{right}z3..{up}z4..{up}z5--z6--z7;
+
+ z8 = (x5, .5mxlittle); % z10 and z11 should be 45 degree NE/SE
+ z9 = (x1, y8);
+ z10 = (x5+.7mxhalf, y8+.7mxhalf);
+ z11 = (x5+.7mxhalf, y8-.7mxhalf);
+ draw z10--z8..{up}z9..z8--z11;
+
+ penlabels(range 1 thru 11);
+endchar;
+
+%% d %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "d - don";
+beginchar("d", mxzw#+2mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxone, .5mxlittle);
+ z2 = (mxone+mxhalf, 0);
+ z3 = (mxone+mxone, y1);
+ z4 = (x2, mxlittle);
+ z5 = (x1, mxmiddle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..{down}z5..cycle;
+
+ z6 = (mxhalf, y4);
+ z7 = (0, y1);
+ z8 = (mxfeet, 0);
+ draw z5{up}..{left}z6..{down}z7..z8;
+
+ z9 = (x3, -mxlow);
+ draw z8..{dir -50}z9;
+ penlabels(range 1 thru 10);
+endchar;
+
+%% e %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "e - en";
+beginchar("e", mxzw#+mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, -.5mxlow);
+ z2 = (mxhalf, -mxlow);
+ z3 = (mxone, 0);
+ z4 = (x3, mxmiddle);
+ z5 = (x2, mxlittle);
+ z6 = (0, y4);
+ draw z1{down}..{right}z2..{up}z3--z4..{left}z5..z6;
+
+ penlabels(range 1 thru 6);
+endchar;
+
+%% g %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "g - gan";
+beginchar("g", mxzw#+mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z2 = (mxhalf, -mxlow);
+ z4 = (x2, mxthird);
+ z1 = (0, .5[y2,y4]); % y was -.5mxlow
+ z3 = (mxone, y1);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (x3-.3mxhalf, mxmiddle);
+ z6 = (x4, mxlittle);
+ z7 = (.3mxhalf, y5);
+ draw z4{right}..{up}z5..{left}z6..{down}z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+
+%% .g %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar ".g - .gan (oct002)";
+beginchar(oct"002", mxzw#+2mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxfeet, 0);
+ z2 = (0, .5mxlittle);
+ z3 = (mxhalf, mxlittle);
+ z4 = (mxone, mxmiddle);
+ z5 = (mxone+mxhalf, y3);
+ z6 = (2mxone, y2);
+ z7 = (2mxone-mxfeet, 0);
+ z8 = (x6, -mxlow);
+ draw z1..{up}z2..{right}z3..{down}z4;
+ draw z4{up}..{right}z5..{down}z6..z7;
+ draw z1..{dir -50}z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% h %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "h - ha";
+beginchar("h", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, mxthird);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, .5mxlittle);
+ z4 = (.75mxone, 5/6mxlittle);
+ z5 = (.75mxhalf, y4);
+ draw z1{dir -80}..{right}z2..{up}z3..{left}z4--z5;
+
+ z6 = (x3, mxlittle);
+ z7 = (x4, 7/6mxlittle);
+ z8 = (x5, y7);
+ draw z4..{up}z6..{left}z7--z8;
+
+ z9 = (x6, 8/6mxlittle);
+ z10= (0, mxheight);
+ draw z7..{up}z9..{dir 110}z10;
+
+ penlabels(range 1 thru 10);
+endchar;
+
+%% i %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "i - in";
+beginchar("i", mxzw#+mxone#, mxlittle#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxfeet, 0);
+ z2 = (0, .5mxlittle);
+ z3 = (mxhalf, mxlittle);
+ z4 = (mxone, y2);
+ z5 = (mxone-mxfeet, 0);
+ draw z1..{up}z2..{right}z3..{down}z4..z5;
+ penlabels(range 1 thru 5);
+endchar;
+
+
+%% i1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "i1 - short i, (Old Georgian), oct012";
+beginchar(oct"012", mxzw#+mxone#+mxhalf#, mxlittle#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, 0);
+ z2 = (1.5mxhalf, .15mxthird); % y2 war .5mxthird
+ z4 = (x2, mxlittle);
+ z3 = (mxone+.5mxhalf, .5[y2,y4]);
+ z5 = (.5mxhalf, y3);
+ z6 = (mxone+mxhalf, y1);
+ draw z1..z2..z3..z4..z5..z2..z6;
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% %% i1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% mxedchar "i1 - short i, (Old Georgian), oct012";
+%% beginchar(oct"012", mxzw#+mxone#, mxlittle#, 0);
+%% if known cmbase: adjust_fit(0,0); fi
+%% pickup mxed_pen;
+%% z1 = (0, 0);
+%% z2 = (mxhalf, .15mxthird); % y2 war .5mxthird
+%% z4 = (x2, mxlittle);
+%% z3 = (mxone, .5[y2,y4]);
+%% z5 = (0, y3);
+%% z6 = (x3, y1);
+%% draw z1..z2..z3..z4..z5..z2..z6;
+%% penlabels(range 1 thru 6);
+%% endchar;
+
+
+%% ^dz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^dz/^j - ^jan (oct010)";
+beginchar(oct"010", mxzw#+1.75mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, -.5mxlow);
+ z3 = (1.5mxhalf, y1);
+ z2 = (.5[x1,x3], -mxlow);
+ z4 = (1.2mxhalf, 0);
+ z5 = (1.75mxone, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..z4;
+ draw z4--z5;
+
+ z6 = (.3mxhalf, 5/6mxlittle);
+ z7 = (mxhalf, mxlittle);
+ z8 = (1.5mxone, 0);
+ z9 = (x5, .5mxthird);
+ draw z6{up}..{right}z7..{right}z8..{dir 45}z9;
+
+ penlabels(range 1 thru 9);
+endchar;
+
+
+%% dz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "dz (j) - dzil";
+beginchar("j", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .5mxlittle);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (x3, mxheight);
+ draw z3--z5;
+ penlabels(range 1 thru 5);
+endchar;
+
+
+%% k %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "k - kan";
+beginchar("k", mxzw#+mxone#, mxheight#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, mxthird);
+ z2 = (mxhalf, 2mxthird);
+ z3 = (mxone, 1.5mxthird);
+ z4 = (x3, -.5mxlow);
+ z5 = (x2, -mxlow);
+ z6 = (x1, y4);
+ z7 = (x3, mxheight);
+ z8 = z7 - (mxhalf, mxthird);
+ draw z1..z2..{down}z3--z4{down}..{left}z5..{up}z6;
+ draw z3--z7--z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% .k %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% mxedchar ".k - .kan (oct003)";
+%% beginchar(oct"003", mxzw#+mxone#, mxlittle#, 1.5mxlow#);
+%% if known cmbase: adjust_fit(0,0); fi
+%% pickup mxed_pen;
+%% z1 = (0, -mxlow);
+%% % z1 = (0, -.66mxlow);
+%% z2 = (mxhalf, -1.5mxlow);
+%% % z2 = (mxhalf, -mxlow);
+%% z3 = (mxone, -.75mxlow);
+%% % z3 = (mxone, -.5mxlow);
+%% z4 = (x2, 0);
+%% z5 = (0, -1/6mxlittle);
+%% draw z1{down}..{right}z2..{up}z3..{left}z4..z5;
+%%
+%% z6 = (x3, .75mxthird);
+%% z7 = (x6, mxlittle);
+%% draw z4{right}..{up}z6--z7;
+%%
+%% penlabels(range 1 thru 7);
+%% endchar;
+
+mxedchar ".k - .kan (oct003)";
+beginchar(oct"003", mxzw#+mxone#, mxheight#, 1mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, -.5mxlow);
+ z2 = (mxhalf, -mxlow);
+ z3 = (mxone, -.25mxlow);
+ z4 = (x2, 1/3mxlittle);
+ z5 = (0, 1/6mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..z5;
+
+ z6 = (x3, 1.75mxthird);
+% z7 = (x6, 4/3mxlittle);
+ z7 = (x4, 4/3mxlittle);
+% draw z4{right}..{up}z6--z7;
+ draw z4{right}..{up}z6..z7;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+
+%% l %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "l - las";
+beginchar("l", mxzw#+2.4mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxfeet, 0);
+ z2 = (0, .5mxlittle);
+ z3 = (.8mxhalf, mxlittle);
+ z4 = (.8mxone, mxmiddle);
+ z9 = (.8mxone+.8mxhalf, y3);
+ z10= (1.6mxone, y4);
+ z5 = (1.6mxone+.8mxhalf, y3);
+ z6 = (2.4mxone, y2);
+ z7 = (2.4mxone-mxfeet, 0);
+ z8 = (x6, -mxlow);
+ draw z1..{up}z2..{right}z3..{down}z4;
+ draw z4{up}..{right}z9..{down}z10;
+ draw z10{up}..{right}z5..{down}z6..z7;
+ draw z1..{dir -50}z8;
+ penlabels(range 1 thru 10);
+endchar;
+
+
+%% m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "m - man";
+beginchar("m", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .5mxlittle);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (x3, mxheight-.5mxtop);
+ z6 = (x4, mxheight);
+ z7 = (0, y5);
+ draw z3..z5{up}..{left}z6..{down}z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% n %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "n - nar";
+beginchar("n", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .5mxlittle);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (0, mxheight-.25mxtop);
+ z6 = (.5mxhalf, mxheight);
+ z7 = (x3, y6+.2mxtop);
+ draw z1..z5{up}..{right}z6..{dir 75}z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% o %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "o - on";
+beginchar("o", mxzw#+2mxone#, mxlittle#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxfeet, 0);
+ z2 = (0, .5mxlittle);
+ z3 = (mxhalf, mxlittle);
+ z4 = (mxone, mxmiddle);
+ z5 = (mxone+mxhalf, y3);
+ z6 = (2mxone, y2);
+ z7 = (2mxone-mxfeet, 0);
+ draw z1..{up}z2..{right}z3..{down}z4;
+ draw z4{up}..{right}z5..{down}z6..z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+%% p %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "p - par";
+beginchar("p", mxzw#+2mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .5mxlittle);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (x3, mxmiddle);
+ z5 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..z4{up}..{left}z5..cycle;
+
+ z6 = (mxhalf+mxone, y5);
+ z7 = (2mxone, y1);
+ z8 = (x6, 0);
+ z9 = (x7, -.5mxlow);
+ z11= (.75mxone, y9);
+ z10= (.5[x11,x9], -mxlow);
+ draw z4{up}..{right}z6..{down}z7..{left}z8;
+ draw z8{right}..{down}z9..{left}z10..{dir 70}z11;
+ penlabels(range 1 thru 11);
+endchar;
+
+%% .p %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar ".p - .par (oct004)";
+beginchar(oct"004", mxzw#+mxone#, mxthird#+mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, mxthird);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, .5mxlittle);
+ z4 = (x2, mxlittle);
+ z5 = (x1, y4);
+ draw z1{dir -80}..{right}z2..{up}z3..{left}z4--z5;
+
+ z6 = (x3, mxlittle+.4mxtop);
+ z7 = (x1, mxthird+mxheight);
+ draw z4..{up}z6..{dir 110}z7;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% q %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar ".q - .qar";
+beginchar("q", mxzw#+mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxfeet, mxlittle);
+ z2 = (0, .5mxlittle);
+ z3 = (mxhalf, 0);
+ z4 = (mxone, y2);
+ z5 = (x4 - mxfeet, y1);
+ draw z1..{down}z2..{right}z3..{up}z4..z5;
+
+ z6 = (x4, -.5mxlow);
+ z7 = (x3, -mxlow);
+ z8 = (x2, y6);
+ draw z4--z6..{left}z7..{up}z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+%% r %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "r - ran";
+beginchar("r", mxzw#+2mxone#, mxthird#+mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxfeet, 0);
+ z2 = (0, .5mxlittle);
+ z3 = (mxhalf, mxlittle);
+ z4 = (mxone, mxmiddle);
+ z5 = (mxone+mxhalf, y3);
+ z6 = (2mxone, y2);
+ z7 = (2mxone-mxfeet, 0);
+ z8 = (x6, mxheight+mxthird);
+ draw z1..{up}z2..{right}z3..{down}z4;
+ draw z4{up}..{right}z5..{down}z6..z7;
+ draw z2{up}..{dir 70}z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% s %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "s - san";
+beginchar("s", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z5 = (0, mxheight);
+ z1 = (0, .5mxlittle);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (1/3mxone, mxlittle);
+ draw z5--z1{down}..{right}z2..{up}z3..{up}z4;
+
+ penlabels(range 1 thru 5);
+endchar;
+
+
+
+%% ^s %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^s - ^san (+s, oct005)";
+beginchar(oct"005", mxzw#+mxhalf#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxhalf, .5mxlittle);
+ z2 = (mxhalf+mxhalf, 0);
+ z3 = (mxone+mxhalf, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (x3, mxheight-.5mxtop);
+ z6 = (x4, mxheight);
+ z7 = (mxhalf, y5);
+ draw z3..z5{up}..{left}z6..{down}z7;
+
+ z8 = (0, y6);
+ draw z7{up}..{left}z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% t %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "t - tan";
+beginchar("t", mxzw#+2mxone#, mxlittle#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .5mxlittle);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (x3, mxmiddle);
+ z5 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..z4{up}..{left}z5..cycle;
+
+ z6 = (mxhalf+mxone, y5);
+ z7 = (2mxone, y1);
+ z8 = (x7-.mxfeet, 0);
+ draw z4{up}..{right}z6..{down}z7..z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% .t %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar ".t - tar (oct006)";
+beginchar(oct"006", mxzw#+mxone#+mxhalf#, mxheight#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .3mxlittle);
+ z2 = (.5mxhalf+.5mxone, -mxlow);
+ z3 = (mxone+mxhalf, y1);
+ z4 = (x2, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..cycle;
+
+ z5 = (x4, y4-1.2mxthird);
+ z6 = (x4, y4+1.2mxthird);
+ draw z4{left}..{right}z5..cycle;
+ draw z4{left}..{right}z6..cycle;
+ penlabels(range 1 thru 6);
+endchar;
+
+
+
+%% u %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "u - un";
+beginchar("u", mxzw#+2.1mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, mxlittle);
+ z5 = (.9mxone, y1);
+ z2 = (.5[x1,x5], 2.4mxthird);
+ z6 = (1.3mxone, 2mxthird);
+ z7 = (x6, .5mxlittle);
+ draw z1..z2..{right}z5..{down}z6--z7;
+
+ z8 = (1.3mxone+.8mxhalf, y5);
+ z9 = (2.1mxone, y6);
+ z10= (x9, 0);
+ z11= (x6, -mxlow);
+ z12= (x2, -.5mxlow);
+ draw z6{dir 75}..{right}z8..{down}z9--z10..{left}z11..{up}z12;
+ penlabels(range 1 thru 12);
+endchar;
+
+
+%% v %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "v - vin";
+beginchar("v", mxzw#+mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, mxmiddle);
+ z2 = (mxhalf, mxlittle);
+% z3 = (mxone, .5mxlittle);
+ z3 = (mxone, .5[y4,y2]);
+% Esthetic correction JDL (8/5/94)
+% z4 = (x2, 0);
+ z4 = (x2, .375y1);
+% end of esthetic correction
+% z5 = (0, 1/6mxlittle);
+ draw z1{up}..{right}z2..{down}z3..{left}z4; % ..z5;
+
+% z6 = (x3, -.5mxlow);
+ z6 = (x3, .5[y4,y7]);
+% Correction by JDL (8/5/94)
+% z7 = (x2, -1.5mxlow);
+% z8 = (0, -mxlow);
+ z7 = (x2, -mxlow);
+ z8 = (0, y6);
+ draw z4{right}..{down}z6..{left}z7..{up}z8;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% x %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "x - xan";
+beginchar("x", mxzw#+mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .5mxlittle);
+ z2 = (mxhalf, 0);
+ z3 = (mxone, y1);
+ z4 = (x2, 5/6mxlittle);
+ z6 = (x1, y4);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..z6;
+
+ z5 = (0, mxheight);
+ draw z1--z5;
+
+ z7 = z6 +(1mxu, 1mxu);
+ draw z6--z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "z - zen";
+beginchar("z", mxzw#+2mxone#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (.75mxone, .5mxlittle);
+ z2 = (.75mxone+mxhalf, 0);
+ z3 = (.75mxone+mxone, y1);
+ z4 = (x2, 5/6mxlittle);
+ z6 = (x1, y4);
+ draw z1{down}..{right}z2..{up}z3..{left}z4..z6;
+
+ z5 = (.75mxone, mxheight-.5mxtop);
+ z11= (x5, mxheight);
+ z8 = (mxhalf, y11);
+ z9 = (0, y5);
+ z10 =(.5[x9,x5], mxheight-mxtop);
+% draw z1--z11..{left}z8..{down}z9..{right}z10..{up}z5;
+ draw z1--z5{up}..{left}z8..{down}z9..{right}z10..{up}z5;
+ z7 = z6 + (1mxu, 1mxu);
+ draw z6--z7;
+ penlabels(range 1 thru 10);
+endchar;
+
+%% %% z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% mxedchar "z - zen";
+%% beginchar("z", mxzw#+2mxone#, mxheight#, 0);
+%% if known cmbase: adjust_fit(0,0); fi
+%% pickup mxed_pen;
+%% z1 = (mxone, .5mxlittle);
+%% z2 = (mxone+mxhalf, 0);
+%% z3 = (mxone+mxone, y1);
+%% z4 = (x2, 5/6mxlittle);
+%% z6 = (x1, y4);
+%% draw z1{down}..{right}z2..{up}z3..{left}z4..z6;
+%%
+%% z5 = (mxone, mxheight-.5mxtop);
+%% z11= (x5, mxheight);
+%% z8 = (mxhalf, y11);
+%% z9 = (0, y5);
+%% z10 =(x8, mxheight-mxtop);
+%% draw z1--z11..{left}z8..{down}z9..{right}z10..{up}z5;
+%%
+%% z7 = z6 + (1.8mxu, 1.8mxu);
+%% draw z6--z7;
+%% penlabels(range 1 thru 10);
+%% endchar;
+
+
+%% ^z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "^z - ^zan (+z, oct007)";
+beginchar(oct"007", mxzw#+mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, mxthird);
+ z2 = (.5mxhalf, 0);
+ z3 = (mxhalf, y1);
+ z4 = (mxone, mxlittle);
+ draw z1{down}..{right}z2..{up}z3..{up}z4;
+
+ z5 = (x4, -.5mxlow);
+ z6 = (x3, -mxlow);
+ z7 = (0, y5);
+ draw z4--z5..{left}z6..{up}z7;
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% f %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "f, (Ossetian)";
+beginchar("f", mxzw#+mxone#+mxhalf#, mxheight#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, .5mxlittle);
+ z2 = (1.5mxone, y1);
+ draw z1..z2..cycle;
+
+ z3 = (0, 4mxthird);
+ z31 = (1/3mxone, 5mxthird);
+ z4 = (1.5mxhalf, y1);
+ z51 = (7/6mxone, -mxlow);
+ z5 = (1.5mxone, -.5mxlow);
+% draw z3{dir 45}..z4..{dir 45}z5;
+ draw z3{up}..{right}z31..{down}z4..{right}z51..{up}z5;
+
+ penlabels(range 1 thru 5, 31, 51);
+endchar;
+
+
+%% oo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "oo - ho, (Old Georgian), oct011";
+beginchar(oct"011", mxzw#+mxone#+mxhalf#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (mxone+mxhalf, 2/3mxlittle);
+ z8 = (x1, mxlittle);
+ z2 = (mxhalf, y1);
+ z7 = (x2, y8);
+ z3 = (x2, 0);
+ z6 = (x2, mxheight);
+ z4 = (mxone, .7mxthird);
+ z5 = (x4, mxheight-.7mxthird);
+ draw z1--z2{left}..z3..{up}z4--z5{up}..z6..{right}z7--z8;
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% w %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "w - wi, (Old Georgian)";
+beginchar("w", mxzw#+mxone#, mxheight#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (.5mxhalf, 2/3mxlittle);
+ z2 = (mxone, y1);
+ z3 = (x1, .4mxthird);
+ z4 = (x2, -.4mxlow);
+ z5 = (mxhalf, -mxlow);
+ z6 = (0, -.75mxlow);
+ draw z1--z2--z3{dir 30}..{down}z4..{left}z5..z6;
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% Schwa %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "y - Schwa, (Ossetian)";
+beginchar("y", mxzw#+mxone#, mxlittle#, mxlow#);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_pen;
+ z1 = (0, 2mxthird);
+ z2 = (mxone, y1);
+ z3 = (0, -.5mxlow);
+ z4 = (x2, y3);
+ draw z1{up}..{down}z2..{down}z3..{up}z4;
+ penlabels(range 1 thru 4);
+endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxedi10.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxedi10.mf
new file mode 100644
index 00000000000..72c55b2dfb7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxedi10.mf
@@ -0,0 +1,127 @@
+% Mxedruli Font 10 point Italics `mxedi10.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.4 as of 15th July 1996 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Based on the parameters as in CMTI10
+
+% if unknown cmbase: input cmbase fi
+if unknown mxedbase: input mxedbase fi
+
+font_identifier:="MXED"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+if known cmbase:
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+fi
+
+% These are the real Mxedruli Parameters
+boolean mxcap;
+mxcap:=false; % No capitals
+mxu#:= 2.5u#; % was 2.7u# % the unit, which where used to design this fonts
+mxlittle#:= 3mxu#; % height of letters without ascenders
+mxtop#:= 2mxu#; % the height of the ascenders
+mxheight#:=mxtop#+mxlittle#;
+mxhalf#:=mxu#; % Half width of the letter 'a'
+mxone#:=2mxhalf#;
+mxmiddle#:=2/3mxlittle#; % strokes not reaching the baseline, as in 'o'
+mxthird#:=1/3mxlittle#;
+mxfeet#:= .4mxhalf#; % The feet of 'i' and 'o' etc are slightly
+ % bent to the middle
+mxlow#:= 1.8mxu#; %war 2mxu# % max depth below the baseline
+mxzw#:= .65mxu#; % Seperation of two letters
+
+
+px1#:=.18mxu#; % pen 1 xscaling
+py1#:=.60mxu#; % pen 1 yscaling
+
+dpx1#:=px1#; % digitpen xscaling
+dpy1#:=py1#; % digitpen yscaling
+pdot#:=.74mxu#; % pen for dots
+pdash#:=.40mxu#; % pen for dashes
+
+
+slant:=.25;
+
+input mxed; % switch to the driver file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/mxedp.mf b/Master/texmf-dist/fonts/source/public/mxedruli/mxedp.mf
new file mode 100644
index 00000000000..b34048b3c00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/mxedp.mf
@@ -0,0 +1,252 @@
+% Mxedruli punctuation `mxedp.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.0 as of 16th June 1995 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "+";
+beginchar("+", mxzw#+mxone#, mxone#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup mxed_dash;
+ z1 = (0, .5mxone);
+ z2 = (mxone, y1);
+ draw z1--z2;
+
+ z3 = (.5[x1, x2], 0);
+ z4 = (x3, mxone);
+ draw z3--z4;
+
+ penlabels(range 1 thru 4);
+endchar;
+
+%% = %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Equals sign =";
+beginchar("=", mxzw#+1.5mxone#, mxlittle#, 0);
+ pickup mxed_dash;
+ lft z1 = (0, 1.5mxthird);
+ rt z2 = (1.5mxone, y1);
+ lft z3 = (0, 2.5mxthird);
+ rt z4 = (1.5mxone, y3);
+ draw z1--z2;
+ draw z3--z4;
+ penlabels(range 1 thru 4);
+endchar;
+
+%% / %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Slash /";
+beginchar("/", mxzw#+1.5mxone#, mxlittle#, 0);
+ pickup mxed_dash;
+ z1 = (0,0);
+ z2 = (1.5mxone, mxheight);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+%% \ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Backslash \ ";
+beginchar("\", mxzw#+1.5mxone#, mxlittle#, 0);
+ pickup mxed_dash;
+ z1 = (0,mxheight);
+ z2 = (1.5mxone, 0);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+
+
+%% - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "-";
+beginchar("-", mxzw#+mxone#, mxlittle#, 0);
+ pickup mxed_dash;
+ z1 = (0, mxmiddle);
+ z2 = (mxone, y1);
+ draw z1--z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "-- (123)";
+beginchar(123, mxzw#+1.5mxone#, mxlittle#, 0);
+ pickup mxed_dash;
+ z1 = (0, mxmiddle);
+ z2 = (1.5mxone, y1);
+ draw z1--z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% --- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "--- (124)";
+beginchar(124, mxzw#+2mxone#, mxlittle#, 0);
+ pickup mxed_dash;
+ z1 = (0, mxmiddle);
+ z2 = (2mxone, y1);
+ draw z1--z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% . %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Period .";
+beginchar(".", mxzw#+mxhalf#, mxlittle#, 0);
+ pickup mxed_dot;
+ lft z1 = (0, 0);
+ drawdot z1;
+ penlabels(1);
+endchar;
+
+%% : %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Colon :";
+beginchar(":", mxzw#+mxhalf#, mxlittle#, 0);
+ pickup mxed_dot;
+ lft z1 = (0, mxthird);
+ lft z2 = (0, 2.5mxthird);
+ drawdot z1;
+ drawdot z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Semicolon ;";
+beginchar(";", mxzw#+pdot#, mxlittle#, .6mxlow#);
+ pickup mxed_dot;
+ lft z1 = (0, 0);
+ z4 = (x1, .5mxlittle);
+ drawdot z1;
+ drawdot z4;
+
+ pickup mxed_digitpen;
+ rt z2 = (pdot, -1/12mxlow);
+ z3 = (0, -.6mxlow);
+% draw z2{dir -45}..{dir -135}z3;
+ draw z2{down}..{dir -135}z3;
+ penlabels(range 1 thru 4);
+endchar;
+
+
+%% , %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Comma ,";
+beginchar(",", mxzw#+pdot#, mxlittle#, .6mxlow#);
+ pickup mxed_dot;
+ lft z1 = (0, 0);
+ drawdot z1;
+
+ pickup mxed_digitpen;
+ rt z2 = (pdot, y1-1/12mxlow);
+ z3 = (0, -.6mxlow);
+ draw z2{down}..{dir -135}z3;
+ penlabels(range 1 thru 3);
+endchar;
+
+
+%% ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Apostroph '";
+beginchar("'", mxzw#+pdot#, mxheight#, 0#);
+ pickup mxed_dot;
+ lft z1 = (0, mxheight);
+ drawdot z1;
+
+ pickup mxed_digitpen;
+ rt z2 = (pdot, y1-1/12mxlow);
+ z3 = (0, mxheight-.6mxlow);
+ draw z2{down}..{dir -135}z3;
+ penlabels(range 1 thru 3);
+endchar;
+
+%% ? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Question mark ?";
+beginchar("?", mxzw#+mxone#, mxheight#, 0);
+ pickup mxed_dot;
+ z1 = (mxhalf, 0);
+ drawdot z1;
+
+ pickup mxed_digitpen;
+ z2 = (0, mxheight-.5mxtop);
+ z3 = (x1, mxheight);
+ z4 = (mxone, y2);
+ z5 = (x1, mxmiddle);
+ z6 = (x5, 1.2mxthird);
+
+ draw z2{up}..{right}z3..{down}z4..{down}z5--z6;
+ penlabels(1,2,3,4,5);
+endchar;
+
+%% ! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Exclamation mark !";
+beginchar("!", mxzw#+.5mxhalf#, mxheight#, 0);
+ pickup mxed_dot;
+ lft z1 = (0, 0);
+ drawdot z1;
+
+ z2 = (x1, mxheight-.5pdot); penpos2(pdot, 0);
+ drawdot z2;
+ z3 = (x1, mxmiddle); penpos3(px1, 0);
+ penstroke z2e..z3e;
+ penlabels(1,2,3);
+endchar;
+
+%% ( %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Left parenthesis (";
+beginchar("(", mxzw#+mxhalf#, 1.1mxheight#, .1mxheight#);
+ z1 = (.5pdot+mxhalf, 1.1mxheight); penpos1(dpx1, 0);
+ z3 = (x1, -.1mxheight); penpos3(dpx1, 0);
+ z2 = (.5pdot, .5[y1, y3]); penpos2(pdot, 0);
+ penstroke z1e..z2e..z3e;
+ penlabels(range 1 thru 4);
+endchar;
+
+
+%% ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Right parenthesis )";
+beginchar(")", mxzw#+mxhalf#, 1.1mxheight#, .1mxheight#);
+ z1 = (0, 1.1mxheight); penpos1(dpx1, 0);
+ z3 = (x1, -.1mxheight); penpos3(dpx1, 0);
+ z2 = (mxhalf, .5[y1, y3]); penpos2(pdot, 0);
+ penstroke z1e..z2e..z3e;
+ penlabels(range 1 thru 4);
+endchar;
+
+%% [ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Left bracket [";
+beginchar("[", mxzw#+mxhalf#, 1.1mxheight#, .1mxheight#);
+ pickup mxed_square;
+ z1 = (mxhalf, -.1mxheight);
+ z2 = (0, y1);
+ z3 = (0, 1.1mxheight);
+ z4 = (x1, y3);
+ draw z1--z2--z3--z4;
+ penlabels(range 1 thru 4);
+endchar;
+
+%% ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mxedchar "Right bracket ]";
+beginchar("]", mxzw#+mxhalf#, 1.1mxheight#, .1mxheight#);
+ pickup mxed_square;
+ z1 = (0, -.1mxheight);
+ z2 = (mxhalf, y1);
+ z3 = (x2, 1.1mxheight);
+ z4 = (0, y3);
+ draw z1--z2--z3--z4;
+ penlabels(range 1 thru 4);
+endchar;
+
+
+endinput; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/xuc.mf b/Master/texmf-dist/fonts/source/public/mxedruli/xuc.mf
new file mode 100644
index 00000000000..160d459e297
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/xuc.mf
@@ -0,0 +1,120 @@
+% Driver file for Xucuri font `xuc.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 0.2 as of 14th July 1998 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+font_coding_scheme:="Xucuri - Georgian";
+mode_setup;
+if known cmbase: font_setup; fi % If used with cmbase
+
+font_xuc_setup;
+
+let xucchar=\;
+
+% fontmaking:=1; % to generate a TFM File during proof-ing
+
+%% Zeichendefinitionsdateien %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+input xucfont; % the xucuri alphabet majuscules (Mrglovani)
+input xucl; % the xucuri alphabet minuscules (.Kutxovani)
+if unknown cmbase: input xucp; else: input punct; fi % punctuation
+if unknown cmbase: input xucd; else: input romand; fi % digits: if cmbase is
+ % used this font will
+ % load cm-digits, for
+ % they are finer tuned.
+
+
+%% Font-Parameter fuer TeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+font_quad 2.5mxu#; % 1 em
+font_x_height mxlittle#; % 1 ex
+font_normal_space 3.5mxu#; % word gap
+font_normal_stretch 2mxu#; % word gap may stretch by ...
+font_normal_shrink 1mxu#; % word gap my shrink by ...
+font_slant slant;
+
+% special "grayfont graylj"; % Only for GFtoDVI on emTeXs METAFONT
+
+%% Ligature-Tables %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+% Palatals:
+ligtable "+" : "S" =: oct"005",
+ "C" =: oct"001",
+ "J" =: oct"010",
+ "Z" =: oct"007",
+ "s" =: oct"025",
+ "c" =: oct"021",
+ "j" =: oct"030",
+ "z" =: oct"027";
+
+% Glottalized stops
+ligtable "." : "C" =: oct"000",
+ "G" =: oct"002",
+ "K" =: oct"003",
+ "P" =: oct"004",
+ "T" =: oct"006",
+ "c" =: oct"020",
+ "g" =: oct"022",
+ "k" =: oct"023",
+ "t" =: oct"026",
+ "p" =: oct"024",
+ "+" =: ",";
+
+% Old Georgian "ho"
+ligtable "O" : "1" =: oct"011";
+% oct"005" kern -mxhalf#,
+% "Z" kern -.5mxzw#;
+
+% Old Georgian "Short i"
+ligtable "I" : "1" =: oct"012";
+
+ligtable "i" : "1" =: oct"032";
+
+
+% long "ee"
+ligtable "E" : "0" =: oct"016";
+
+ligtable "e" : "0" =: oct"036";
+
+
+% Unaspirated "q"
+ligtable "Q" : "1" =: oct"015";
+
+ligtable "q" : "1" =: oct"035";
+
+
+% Keep the "s" away from letters with an ascender on the right
+% ligtable oct"004" : oct"007" : "k" : "m" : "x" : "s" kern .5mxzw#;
+
+% two ' make a double quote
+ligtable "'" : "'" kern -.8mxzw#;
+
+% two , make a double comma,
+ligtable "," : "," kern -mxzw#,
+ "C" =: oct"014",
+ "c" =: oct"034";
+
+%% Hyphens etc.
+ligtable "-" : "-" =: 123; % cf. The METAfontbook S. 306
+ligtable 123 : "-" =: 124;
+
+% Let "z" and oct005 closer two the little letters
+%ligtable "a" : "d" : "g" : "l" : "t" : "u" : "p" : oct"002" : "c" : oct"010" :
+% oct"005" kern -mxhalf#,
+% "1" =: oct"021",
+% "z" kern -.5mxzw#;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/xuc10.mf b/Master/texmf-dist/fonts/source/public/mxedruli/xuc10.mf
new file mode 100644
index 00000000000..4fc227ca79a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/xuc10.mf
@@ -0,0 +1,150 @@
+% Xucuri Font 10 point Normal Face `xuc10.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 0.3 as of 17th July 1998 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Based on the parameters as in CMR10
+
+% if unknown cmbase: input cmbase fi
+if unknown xucbase: input xucbase fi
+
+font_identifier:="XUC"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+if known cmbase:
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numeralsx_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% These are the real Xucuri Parameters
+boolean mxcap;
+%mxcap:=false; % No capitals
+
+mxu#:= 2.5u#; % was 2.7u# % the unit, which where used to design this fonts
+mxlittle#:= 3mxu#; % height of letters without ascenders
+mxtop#:= 2mxu#; % the height of the ascenders
+mxheight#:=mxtop#+mxlittle#;
+
+mxhalf#:=mxu#; % Half width of the letter 'a'
+mxone#:=2mxhalf#;
+mxmiddle#:=2/3mxlittle#; % strokes not reaching the baseline, as in 'o'
+mxthird#:=1/3mxlittle#;
+mxfeet#:= .4mxhalf#; % The feet of 'i' and 'o' etc are slightly
+ % bent to the middle
+mxlow#:= 1.8mxu#; %war 2mxu# % max depth below the baseline
+%mxzw#:= .65mxu#; % Seperation of two letters
+mxzw#:= 1.65mxu#; % Seperation of two letters
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Parameters for Xucuri Minuscles
+xuclu#:=.8mxu#;
+xucllittle#:= 3xuclu#; % height of letters without ascenders
+xucltop#:= 2/3xucllittle#; % the height of the ascenders
+xuclheight#:=xucltop#+xucllittle#;
+
+xuclhalf#:=.9xuclu#; % Half width of the letter 'a'
+xuclone#:=2xuclhalf#;
+xuclmiddle#:=2/3xucllittle#; % strokes not reaching the baseline, as in 'o'
+xuclthird#:=1/3xucllittle#;
+xuclfeet#:= .4xuclhalf#; % The feet of 'i' and 'o' etc are slightly
+ % bent to the middle
+xucllow#:= 2xuclu#; % max depth below the baseline
+xuclzw#:= 1.65xuclu#; % Seperation of two letters
+
+
+px1#:=.75mxu#; % pen 1 xscaling (Uppercase)
+py1#:=.21mxu#; % pen 1 yscaling
+px2#:=.65mxu#; % pen 2 xscaling (Lowercase)
+py2#:=.15mxu#; % pen 2 yscaling
+
+mxserifonset# := .4mxu#;
+% mxserifonset# := 2py1#;
+mxseriffoot# := .02mxu#;
+
+dpx1#:=px1#; % digitpen xscaling
+dpy1#:=py1#; % digitpen yscaling
+pdot#:=.74mxu#; % pen for dots
+pdash#:=.40mxu#; % pen for dashes
+pcomma#:=.15mxu#; % pen for commas
+slant:=0;
+
+input xuc; % switch to the driver file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/xucbase.mf b/Master/texmf-dist/fonts/source/public/mxedruli/xucbase.mf
new file mode 100644
index 00000000000..664c77efebd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/xucbase.mf
@@ -0,0 +1,122 @@
+% Xucuri Base File `xucbase.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 0.3 as of 17th July 1998 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+xucbase:=1; % Es soll nur einmal geladen werden.
+
+newinternal slant;
+
+def font_xuc_setup = % Eigenes Macro
+ define_pixels(mxu, mxlittle, mxhalf, mxone, mxheight, mxthird,
+ mxmiddle, mxtop, mxfeet, mxlow, mxzw,
+ mxseriffoot,
+ xuclu, xucllittle, xuclhalf, xuclone, xuclheight, xuclthird,
+ xuclmiddle, xucltop, xuclfeet, xucllow, xuclzw,
+ xuclseriffoot);
+
+ define_blacker_pixels(px1, py1, dpx1, dpy1, px2, py2, pdot,
+ pdash, pcomma, mxserifonset);
+
+ % used by Xucuri majuscules
+ pickup pensquare xscaled px1 yscaled py1 rotated 0;
+ xuc_pen:=savepen;
+
+ % used by Xucuri minuscules main strokes
+ pickup penrazor xscaled px2 rotated 10;
+ xuc_penl:=savepen;
+
+ % used by Xucuri minuscules secondary
+ pickup penrazor xscaled px2 rotated 1;
+ xuc_penlx:=savepen;
+
+ % used by Xucuri arabesques
+ pickup pencircle xscaled px2 yscaled py2 rotated 10;
+ xuc_penb:=savepen;
+
+ pickup penrazor xscaled px2 rotated 30;
+ xuc_penlr:=savepen;
+
+ pickup pencircle xscaled dpx1 yscaled dpy1 rotated 90; % rotated -10;
+ xuc_digitpen:=savepen; % Pen for digits
+
+ pickup pencircle xscaled dpx1 yscaled dpy1; % rotated -10;
+ xuc_punctpen:=savepen; % Pen for punctuation
+
+ pickup pencircle scaled pdot;
+ xuc_dot:=savepen; % Pen for dots
+
+ pickup pencircle scaled pdash;
+ xuc_dash:=savepen; % Pen for lines
+
+ pickup pencircle scaled pcomma;
+ xuc_pcomma:=savepen; % Pen for Commas
+
+ pickup pensquare scaled pdash;
+ xuc_square:=savepen;
+
+
+ currenttransform:=identity slanted slant yscaled aspect_ratio;
+enddef;
+
+if known cmbase: % Boxen f"uer den Proofmode (mit CM-Base)
+ def makebox(text rule) =
+ for y=0,h,mxlittle,-d,mxthird:
+ rule((0,y)t_,(r,y)t_); endfor % horizontals
+ for x=0,r,r-mxzw,mxhalf,mxone:
+ rule((x,-d)t_,(x,h)t_); endfor % verticals
+ % for x=u*(1+floor(l/u)) step u until r-1:
+ % rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ % if charic<>0:
+ % rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+ enddef;
+
+else: % Boxen f"uer den Proofmode
+ def makebox(text r) =
+ % horizontal lines on y-values:
+ % 0, char-height, char-depth, mxlittle, ...
+ for y=0, xucllittle, xuclheight, -xucllow:
+ r((0,y),(w-mxzw,y)); endfor
+ r((0, h.o_),(w, h.o_)); % Bounding Box top
+ r((0, -d.o_),(w, -d.o_)); % Bounding Box bottom
+ r((0, h.o_-2),(w, h.o_-2)); % Bounding Box top
+ r((0, -d.o_+2),(w, -d.o_+2)); % Bounding Box bottom
+
+ % vertical lines on x-values:
+ for x=0 step mxhalf until w-mxzw: r((x,h.o_),(x, -d.o_)); endfor
+ r((w,-d.o_),(w,h.o_)); % Bounding Box right
+ r((0,-d.o_),(0,h.o_)); % Bounding Box left
+ r((w-2,-d.o_),(w-2,h.o_)); % Bounding Box right
+ r((2,-d.o_),(2,h.o_)); % Bounding Box left
+% if charic<>0: r((w+charic*hppp,h.o_),(w+charic*hppp,.5h.o_)); fi
+ enddef;
+
+%% def makebox(text r) =
+%% % horizontal lines on y-values:
+%% % 0, char-height, char-depth, mxlittle, ...
+%% for y=0, % h.o_,-d.o_
+%% xmxthird ,xmxlittle, xmxmiddle, xmxheight,-xmxlow:
+%% r((0,y),(w,y)); endfor
+%% % vertical lines on x-values:
+%% % 0, char-width, char-width - mxzw
+%% % for x=0 step xmxhalf until w-mxzw+1: r((x,-xmxlow),(x,xmxheight)); endfor
+%% for x=0 step xmxone/3 until w-mxzw+1: r((x,-xmxlow),(x,xmxheight)); endfor
+%% r((w,-xmxlow),(w,xmxheight))
+%% if charic<>0: r((w+charic*hppp,h.o_),(w+charic*hppp,.5h.o_)); fi
+%% enddef;
+fi
+
+endinput; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/xucd.mf b/Master/texmf-dist/fonts/source/public/mxedruli/xucd.mf
new file mode 100644
index 00000000000..2e9ca859399
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/xucd.mf
@@ -0,0 +1,170 @@
+% Xucuri digits `xucd.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 2.0 as of 14th July 1998 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% 1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "1";
+beginchar("1", mxhalf#+mxzw#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup xuc_digitpen;
+ top z1 = (mxhalf, mxheight);
+ bot z2 = (x1, 0);
+ z3 = (0, mxheight-.5mxtop);
+ draw z3--z1--z2;
+ penlabels(1, 2, 3);
+endchar;
+
+%% 2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "2";
+beginchar("2", mxone#+mxzw#, mxheight#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup xuc_digitpen;
+ z1 = (0, mxheight-.5mxtop);
+ top z2 = (mxhalf, mxheight);
+ z3 = (mxone, y1);
+ bot z4 = (x1, 0);
+ z5 = (x3, y4);
+% draw z1{up}..{right}z2..{down}z3..tension 2..z4--z5;
+ draw z1{up}..{right}z2..z3..{z4-z3}z4--z5;
+ penlabels(1, 2, 3, 4, 5);
+endchar;
+
+%% 3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "3";
+beginchar("3", mxone#+mxzw#, mxheight#, 0);
+ pickup xuc_digitpen;
+ top z1 = (0, mxheight);
+ z2 = (mxone, y1);
+ z3 = (mxhalf, mxlittle);
+ z4 = (x2, .5mxlittle);
+ bot z5 = (x3, 0);
+ z6 = (x1, .5mxlittle);
+ draw z1--z2--z3;
+ draw z3{right}..{down}z4..{left}z5..{up}z6;
+ penlabels(1, 2, 3, 4, 5, 6);
+endchar;
+
+%% 4 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "4";
+beginchar("4", mxone#+mxzw#, mxheight#, 0);
+ pickup xuc_digitpen;
+ top z1 = (mxhalf, mxheight);
+ z2 = (0, .6mxlittle);
+ z3 = (mxone, y2);
+ draw z1--z2--z3;
+ bot z4 = (x1, 0);
+ z5 = (x4, 1.25mxlittle);
+ draw z4--z5;
+ penlabels(1, 2, 3, 4, 5);
+endchar;
+
+%% 5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "5";
+beginchar("5", mxone#+mxzw#, mxheight#, 0);
+ pickup xuc_digitpen;
+ top z1 = (mxone, mxheight);
+ z2 = (0, y1);
+ z3 = (x2, mxlittle);
+ z4 = (mxhalf, y3);
+ z5 = (x1, .5mxlittle);
+ bot z6 = (x4, 0);
+ z7 = (x2, .3mxlittle);
+ draw z1--z2--z3--z4{right}..z5..{left}z6..z7;
+ penlabels(1, 2, 3, 4, 5, 6, 7);
+endchar;
+
+%% 6 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "6";
+beginchar("6", mxone#+mxzw#, mxheight#, 0);
+ pickup xuc_digitpen;
+ bot z1 = (mxhalf, 0);
+ z2 = (x1, mxlittle);
+ z3 = (0, .5mxlittle);
+ z5 = (mxone, y3);
+ draw z1{left}..{up}z3..{right}z2..{down}z5..cycle;
+ top z4 = (1.5mxhalf, mxheight);
+% draw z3{up}..{dir 60}z4;
+ draw z3{up}..z4;
+ penlabels(1, 2, 3, 4, 5);
+endchar;
+
+%% 7 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "7";
+beginchar("7", mxone#+mxzw#, mxheight#, 0);
+ pickup xuc_digitpen;
+ top z1 = (0, mxheight);
+ z2 = (mxone, y1);
+ bot z3 = (x1, 0);
+ draw z1--z2--z3;
+ penlabels(1, 2, 3);
+endchar;
+
+%% 8 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "8";
+beginchar("8", mxone#+mxzw#, mxheight#, 0);
+ pickup xuc_digitpen;
+ bot z1 = (mxhalf, 0);
+ z2 = (x1, mxlittle);
+ z6 = (0, .5mxlittle);
+ z7 = (mxone, y6);
+ draw z1{left}..{up}z6..{right}z2..{down}z7..cycle;
+ top z3 = (x1, mxheight);
+ z4 = (.2mxhalf, .5[y2, y3]);
+ z5 = (1.8mxhalf, y4);
+ draw z3{left}..{down}z4..{right}z2..{up}z5..cycle;
+ penlabels(1, 2, 3, 4, 5, 6, 7);
+endchar;
+
+%% 9 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "9";
+beginchar("9", mxone#+mxzw#, mxheight#, 0);
+ pickup xuc_digitpen;
+ top z1 = (mxhalf, mxheight);
+ z2 = (x1, mxlittle);
+ z3 = (mxone, mxheight-.5mxtop);
+ z4 = (0, y3);
+
+ draw z1{left}..{down}z4..{right}z2..{up}z3..cycle;
+ bot z5 = (.5mxhalf, 0);
+% draw z3{down}..{dir -120}z5;
+ draw z3{down}..z5;
+ penlabels(1, 2, 3, 4);
+endchar;
+
+%% 0 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "0";
+beginchar("0", mxone#+mxzw#, mxheight#, 0);
+ pickup xuc_digitpen;
+ bot z1 = (mxhalf, 0);
+ z2 = (mxone, mxlittle);
+ top z3 = (x1, mxheight);
+ z4 = (0, y2);
+ draw z1{right}..{up}z2..{left}z3..{down}z4..cycle;
+ penlabels(1, 2, 3, 4);
+endchar;
+
+
+endinput;
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/xucfont.mf b/Master/texmf-dist/fonts/source/public/mxedruli/xucfont.mf
new file mode 100644
index 00000000000..b51ab111fbe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/xucfont.mf
@@ -0,0 +1,965 @@
+% Xucuri Font `xucfont.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 0.1 as of 29th March 1997 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+
+% Serifen: Aufruf xuc_serif(Punktnr, 1|-1);
+% unten: -1 Serife f"ur oben, 1 f"ur unten
+def xuc_serif (suffix $)(expr unten) =
+ z$a = (x$-.5px1, y$+ ((mxserifonset-.55py1)*unten));
+ z$d = (x$+.5px1, y$a);
+
+ z$c = (x$-px1, y$-(.55py1*unten));
+ z$f = (x$+px1, y$c);
+
+ z$b = (x$c, y$c+(.5py1*unten));
+ z$e = (x$f, y$b);
+
+ if unten = 1:
+ fill z$a--z$d{down}..{right}z$e--z$f--z$c--z$b{right}..{up}cycle
+ else:
+ fill z$a--z$d{up}..{right}z$e--z$f--z$c--z$b{right}..{down}cycle
+ fi;
+ labels($a, $b, $c, $d, $e, $f);
+enddef;
+
+
+% links = 1: linke Halbserife, links = -1: rechte Halbserife
+def xuc_halbserif (suffix $)(expr unten, links) =
+ z$a = (x$-(.5px1*links), y$+ ((mxserifonset-.55py1)*unten));
+ z$d = (x$, y$a);
+
+ z$c = (x$-(px1*links), y$-(.55py1*unten));
+ z$f = (x$, y$c);
+
+ z$b = (x$c, y$c+(.5py1*unten));
+
+ if unten = 1:
+ if links = 1:
+ fill z$a--z$d--z$f--z$c--z$b{right}..{up}cycle
+ else:
+ fill z$a--z$d--z$f--z$c--z$b{left}..{up}cycle
+ fi;
+ else:
+ if links = 1:
+ fill z$a--z$d--z$f--z$c--z$b{right}..{down}cycle
+ else:
+ fill z$a--z$d--z$f--z$c--z$b{left}..{down}cycle
+ fi;
+ fi;
+% labels($a, $b, $c, $d, $f);
+enddef;
+
+
+% Kleiner Haken links oben
+def xuc_haken (suffix $) =
+ z$x = (x$ - mxhalf, y$ + .5mxtop);
+ draw z$x{down}..{right}z$;
+ xuc_serif($x, -1);
+ labels($x);
+enddef;
+
+% Grosser Haken links oben
+def xuc_haken_gross (suffix $) =
+ z$x = (x$ - mxone, y$ + .5mxtop);
+ z$y = (x$ - mxhalf, y$);
+ draw z$x{down}..{right}z$y--z$;
+ xuc_serif($x, -1);
+ labels($x, $y);
+enddef;
+
+% Grosser Haken rechts unten
+def xuc_fuss_gross (suffix $) =
+ z$x = (x$ + mxone, y$ - mxthird);
+ z$y = (x$ + mxhalf, y$);
+ draw z$x{up}..{left}z$y--z$;
+ xuc_serif($x, 1);
+ labels($x, $y);
+enddef;
+
+% Kleiner Haken rechts unten
+def xuc_fuss (suffix $) =
+ z$x = (x$ + mxhalf, y$ - mxthird);
+ draw z$x{up}..{left}z$;
+ xuc_serif($x, 1);
+ labels($x);
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% ^C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "^C - ^Cin (+C, oct001)";
+beginchar(oct"001", mxzw#+1mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (0, 0);
+ z2 = (x1, mxheight);
+ draw z1--z2;
+ xuc_serif(1, 1);
+ xuc_serif(2, -1);
+ z3 = (x1, mxlittle);
+ xuc_fuss_gross(3);
+ penlabels(range 1 thru 3);
+endchar;
+
+
+
+
+%% K %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "K";
+beginchar("K", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, 0);
+ z2 = (x1, mxheight);
+ z3 = (x1, .5[y1, y2]);
+ z4 = (x1-mxone, mxlittle);
+ z5 = (x1+mxone, y4-mxthird);
+ draw z1--z2;
+ xuc_serif(1, 1);
+ xuc_serif(2, -1);
+ xuc_serif(4, -1);
+ xuc_serif(5, 1);
+ draw z4{down}..{down}z5;
+
+ penlabels(range 1 thru 5);
+endchar;
+
+
+%% S %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "S";
+beginchar("S", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z2 = (0, mxheight);
+ z5 = (x2+mxhalf, mxmiddle);
+ bot z3 = (x5, 0);
+ z1 = (x2, .5[y3, y5]);
+ z4 = (x2+mxone, y1);
+ draw z2---z1..z3..z4..{left}z5;
+ xuc_serif(2, -1);
+ penlabels(range 1 thru 5);
+endchar;
+
+
+
+%% ^DZ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "^DZ/^J - ^Jan (oct010)";
+beginchar(oct"010", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z1 = (mxone, mxheight-.5mxtop);
+ bot z2 = (x1, 0);
+ draw z1--z2;
+ xuc_serif(2, 1);
+ xuc_haken_gross(1);
+
+ z3 = (x1+mxhalf, y1);
+ z5 = (x2, mxmiddle);
+ z4 = (x1+mxone, .5[y1, y5]);
+ z6 = (x1-mxone, y2);
+ draw z1---z3..z4..z5..{down}z6;
+ xuc_serif(6, 1);
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% X %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "X";
+beginchar("X", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z1 = (0, mxheight);
+ bot z2 = (x1, mxthird);
+ draw z1--z2;
+ xuc_fuss_gross(2);
+ xuc_serif(1, -1);
+
+ z3 = (x1, mxmiddle);
+ z4 = (x1+mxone, mxlittle);
+ xuc_halbserif(4, 1, -1);
+ z5 = (x4, y1);
+ draw z3{up}..{right}z4--z5;
+ xuc_serif(5, -1);
+ penlabels(range 1 thru 5);
+endchar;
+
+
+
+%% ^.c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "^.C - ^.Car (,C .+C oct014)";
+beginchar(oct"014", mxzw#+1.5mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z1 = (0, mxheight);
+ z2 = (x1, mxlittle);
+ x4 = x1+1.5mxone;
+ z3 = (.5[x1, x4], y2);
+ bot z5 = (x3, 0);
+
+ y4 = .5[y3, y5];
+ z6 = (x1, y4);
+ z7 = (x4-.5mxhalf, y1);
+ z8 = (x7, y1-.5mxtop);
+ draw z8--z7--z1--z2---z3..z4..z5..{up}z6;
+ xuc_serif(8, 1);
+ xuc_halbserif(1, -1, 1);
+ xuc_serif(6, -1);
+ penlabels(range 1 thru 8);
+endchar;
+
+%% A %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "A";
+beginchar("A", mxzw#+1.5mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z1 = (0, mxheight);
+ z2 = (x1, y1-.5mxtop);
+ z3 = (x1+1.5mxone, y1);
+ z4 = (x3, y2);
+% z5 = (x1+1.2mxone, y1);
+ z5 = (.5[z2, z3]);
+ z6 = (x1, 1.5mxthird);
+ bot z7 = (x1+mxhalf, 0);
+ z8 = (x3, mxthird);
+
+ draw z1--z2{right}..z5..{right}z3--z4;
+ xuc_serif(1, -1);
+ xuc_serif(4, 1);
+
+ draw z5..{down}z6..{right}z7..{up}z8;
+ xuc_serif(8, -1);
+ penlabels(range 1 thru 8);
+endchar;
+%endinput;
+
+
+% %% A1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% xucchar "A -- variant A1";
+% beginchar(oct"0??", mxzw#+mxone#, mxheight#, 0);
+% pickup xuc_pen;
+% lft z1 = (0, mxlittle+.35mxtop);
+% bot z2 = (x1, mxthird);
+% draw z1--z2;
+% xuc_serif(1, -1);
+% xuc_halbserif(2, 1, 1);
+% xuc_fuss_gross(2);
+%
+% z3 = (x1, mxheight);
+% z5 = (x2x, mxheight-.5mxtop);
+% z4 = .5[z3, z5];
+% draw z3{down}..{dir 65}z4..{dir -80}z5;
+% xuc_serif(3, -1);
+% xuc_serif(5, 1);
+%
+% penlabels(range 1 thru 5);
+% endchar;
+
+
+
+%% I1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "I1 - short I, (Old Georgian), oct012";
+beginchar(oct"012", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ bot lft z1 = (0, mxmiddle);
+ z3 = (x1+2mxone, y1);
+ bot z2 = (.5[x1, x3], 0);
+ z4 = (x2, 2mxmiddle);
+ z5 = (x1+mxhalf, y4);
+
+ draw z1{down}..z2..z3..{left}z4---z5;
+ xuc_serif(1, -1);
+ xuc_haken(5);
+ penlabels(range 1 thru 5);
+endchar;
+
+
+%% .K %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".K - .Kan (oct003)";
+beginchar(oct"003", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z1 = (0, mxheight);
+ z2 = (x1, mxheight-mxtop);
+ z3 = (x1+mxhalf, y2-mxthird);
+
+ bot z4 = (x1+mxone, 0);
+ z5 = (x4, y4+mxtop);
+ z6 = (x3, y2);
+ draw z1---z2..z3---z5;
+ draw z4---z5..z6---z2;
+ xuc_serif(1, -1);
+ xuc_serif(4, 1);
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "C";
+beginchar("C", mxzw#+2.75mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft x3 = 0;
+ lft x1 = 1.75mxone;
+ x2 = x4 = .5[x1, x3];
+ y2 = mxheight;
+ bot y4 = 0;
+ y3 = .5[y4, y2];
+ y1 = mxlittle;
+ z5 = (x1, mxmiddle);
+ z6 = (x5+mxhalf, y5);
+ z7 = (x5+mxone, mxthird);
+ z8 = (x7, y4);
+ draw z1..{left}z2..z3..z4{right}..z5;
+ draw z5---z6..z7---z8;
+ xuc_serif(1, 1);
+ xuc_serif(8, 1);
+ xuc_halbserif(5, -1, 1);
+ penlabels(range 1 thru 8);
+endchar;
+
+%% G %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "G";
+beginchar("G", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z1 = (0, mxlittle);
+ z2 = (x1, mxheight);
+ z3 = (x1+mxone, y2);
+ bot z4 = (x3, mxmiddle);
+ z5 = (x4+mxhalf, y4-mxthird);
+
+ draw z1--z2--z3--z4{right}..{down}z5;
+ xuc_serif(1, 1);
+ xuc_halbserif(2, -1, 1);
+ xuc_halbserif(3, -1, -1);
+ xuc_halbserif(4, 1, 1);
+ xuc_halbserif(5, 1, 1);
+ xuc_fuss(5);
+ penlabels(range 1 thru 5);
+endchar;
+
+
+
+%% Q %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Q";
+beginchar("Q", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, 0);
+ z2 = (x1, mxheight);
+ z3 = (x1, mxlittle);
+ z6 = (x1-mxone, y2);
+ z5 = (x6, .5[y3, y2]);
+ z4 = (.5[x5, x3], y3);
+ draw z1--z2;
+ xuc_serif(1, 1);
+ xuc_serif(2, -1);
+
+ draw z6---z5...z4---z3;
+ xuc_serif(6, -1);
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% ^Z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "^Z - ^Zan (+Z, oct007)";
+beginchar(oct"007", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (2mxone, 0);
+ z2 = (x1, mxheight);
+ z3 = (x1, mxlittle);
+ z5 = (x1-mxone, .5[y3, y2]);
+ z4 = (.5[x5, x3], y3);
+ draw z1--z2;
+ xuc_serif(1, 1);
+ xuc_serif(2, -1);
+
+ draw z5{down}..z4---z3;
+ xuc_halbserif(5, -1, -1);
+ xuc_haken_gross(5);
+% xuc_haken(5);
+ penlabels(range 1 thru 5);
+endchar;
+
+
+
+
+%% B %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "B";
+beginchar("B", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, mxthird);
+ z2 = (x1, mxheight);
+ z6 = (x1-mxone, y2);
+ z3 = (x1, mxlittle);
+ z5 = (x6, .5[y3, y2]);
+ z4 = (.5[x5, x3], y3);
+% draw z6---z5...z4---z3;
+ draw z6--z5{down}...z4---z3;
+ draw z2--z1;
+
+ xuc_fuss_gross(1);
+ xuc_halbserif(1, 1, 1);
+ xuc_serif(2, -1);
+
+
+ xuc_serif(6, -1);
+ penlabels(range 1 thru 6);
+endchar;
+%endinput;
+
+
+%% ^S %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "^S - ^San (+S, oct005)";
+beginchar(oct"005", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ y9 = mxmiddle;
+ lft bot z1 = (mxone, .5[0, y9]);
+ z2 = (x1, mxheight);
+ z3 = (x1, mxlittle);
+ z6 = (x1-mxone, y2);
+ z5 = (x6, .5[y3, y2]);
+ z4 = (.5[x5, x3], y3);
+
+ bot z7 = (x4, 0);
+ z8 = (x6, y1);
+ x9 = x4;
+ draw z2---z1..z7..z8..{right}z9;
+
+ xuc_serif(2, -1);
+
+ draw z6---z5...z4---z3;
+ xuc_serif(6, -1);
+ penlabels(range 1 thru 9);
+endchar;
+
+
+%% R %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "R";
+beginchar("R", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ y9 = mxmiddle;
+ lft bot z1 = (mxone, .5[0, y9]);
+ z2 = (x1, mxheight);
+ z3 = (x1, mxlittle);
+
+ z8 = (x1-mxone, y1);
+ x9 = .5[x8, x1];
+ bot z7 = (x9, 0);
+ draw z2---z1..z7..z8..{right}z9;
+
+ xuc_serif(2, -1);
+ xuc_fuss_gross(3);
+ penlabels(range 1 thru 9);
+endchar;
+
+
+
+%% O %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "O";
+beginchar("O", mxzw#+2.75mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ z2 = (2mxone, .5mxheight);
+ lft z4 = (0, y2);
+
+ bot z1 = (.5[x4,x2], 0);
+ z3 = (x1, mxheight);
+ draw z1..z2..z3..z4..cycle;
+
+ y5 = y2 - (sind 30)*mxone;
+ x5 = x1 + (cosd 30)*mxone;
+
+ z7 = (3mxone, y5);
+ z6 = (.5[x5,x7], y1);
+ draw z5{down}..{right}z6..{up}z7;
+
+ xuc_serif(7, -1);
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% U %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "U";
+beginchar("U", mxzw#+2.5mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ z2 = (2mxone, .5mxheight);
+ lft z4 = (0, y2);
+
+ bot z1 = (.5[x4,x2], 0);
+ z3 = (x1, mxheight);
+ draw z1..z2..z3..z4..cycle;
+
+ y5 = y2 - (sind 30)*mxone;
+ x5 = x1 + (cosd 30)*mxone;
+
+ lft z6 = (2.5mxone, y1);
+ draw z5{right}..z6;
+
+ xuc_serif(6, 1);
+ penlabels(range 1 thru 6);
+endchar;
+
+
+
+
+%% D %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "D";
+beginchar("D", mxzw#+1.8mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z2 = (1.8mxone, .5mxlittle);
+ lft z4 = (0, y2);
+
+ bot z1 = (.5[x4,x2], 0);
+ z3 = (x1, mxlittle+.5mxthird);
+ draw z1..z2..z3..z4..cycle;
+
+ z5 = (x3, mxheight);
+ draw z3--z5;
+
+ z6 = (x4, y5-.5mxtop);
+ z7 = (x6, y5);
+ z8 = (x2, y5);
+ z9 = (x8, y6);
+ draw z6--z7---z8---z9;
+
+ xuc_serif(6, 1);
+ xuc_serif(9, 1);
+ penlabels(range 1 thru 9);
+endchar;
+
+%% E %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "E";
+beginchar("E", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, 0);
+ z2 = (x1, mxheight);
+ lft z3 = (0, y2);
+ z4 = (x3, mxlittle);
+ z5 = (x1, mxlittle);
+ rt z6 = (2mxone, y5);
+ z7 = (x6, .5y6);
+ draw z1--z2--z3--z4;
+
+ xuc_serif(1, 1);
+ xuc_halbserif(2, -1, -1);
+ xuc_halbserif(3, -1, 1);
+
+ xuc_serif(4, 1);
+
+ penlabels(range 1 thru 4);
+endchar;
+
+
+%% N %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "N";
+beginchar("N", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ bot lft z1 = (0, 0);
+ z2 = (x1, mxheight);
+ z3 = (x1+mxone, y2);
+ z4 = (x3, 1.2mxlittle);
+
+ z5 = (x1, mxmiddle);
+ z6 = (x3, y1);
+
+ z7 = (.5[x5, x6], y5);
+ z8 = (x6, .5[y5, y6]);
+ draw z1--z2--z3--z4;
+ draw z5..z7{right}..{down}z8..z6;
+
+ xuc_serif(1, 1);
+ xuc_halbserif(2, -1, 1);
+ xuc_halbserif(3, -1, -1);
+ xuc_serif(4, 1);
+ xuc_serif(6, 1);
+
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% T %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "T";
+beginchar("T", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, 0);
+ z2 = (x1, mxheight);
+ lft z3 = (0, .5[y1, y2]);
+ draw z1--z2{left}..{down}z3..{right}z1;
+
+ z5 = (x1, mxlittle);
+ z6 = (x1+mxone, y5);
+% z7 = (x6, .5y6);
+
+% draw z5--z6--z7;
+ xuc_fuss_gross(5);
+ xuc_halbserif(1, 1, -1);
+ xuc_halbserif(2, -1, -1);
+
+% xuc_halbserif(6, -1, -1);
+% xuc_serif(7, 1);
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+
+
+
+%% V %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "V";
+beginchar("V", mxzw#+1.8mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (.9mxone, 0);
+ z2 = (x1, mxheight);
+ lft z3 = (0, y2);
+ z4 = (x3, mxlittle);
+ z5 = (x1, mxlittle);
+ z6 = (x1+.9mxone, y5);
+ z7 = (x6, .5y6);
+ draw z1--z2--z3--z4;
+ draw z5--z6--z7;
+ xuc_serif(1, 1);
+ xuc_halbserif(2, -1, -1);
+ xuc_halbserif(3, -1, 1);
+ xuc_serif(4, 1);
+ xuc_halbserif(6, -1, -1);
+ xuc_serif(7, 1);
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% E %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "EE - (Long E) oct(016)";
+beginchar(oct"016", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (0, 0);
+ z2 = (x1, mxheight);
+ z5 = (x1, mxlittle);
+ z6 = (x1+mxone, y5);
+ z7 = (x6, .5y6);
+ draw z1--z2;
+ draw z5--z6--z7;
+
+ z3 = (x6, y2);
+ z4 = (x6, y2-.5mxtop);
+ draw z3--z4;
+
+ xuc_serif(1, 1);
+ xuc_serif(2, -1);
+ xuc_serif(3, -1);
+ xuc_serif(4, 1);
+ xuc_halbserif(6, -1, -1);
+ xuc_serif(7, 1);
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% L %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "L";
+beginchar("L", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, .5mxlittle);
+ z2 = (x1, mxheight);
+ lft z3 = (0, y2);
+ z4 = (x3, mxlittle+mxthird);
+ draw z1--z2--z3--z4;
+
+ z5 = (x1, mxlittle);
+ z7 = (x1+mxone, .5mxlittle);
+ z6 = (.5[x5, x7], y5);
+ bot z8 = (.x6, 0);
+
+ draw z5---z6..z7..z8{left}..{up}z1;
+
+ xuc_halbserif(2, -1, -1);
+ xuc_halbserif(3, -1, 1);
+ xuc_serif(4, 1);
+
+ penlabels(range 1 thru 8);
+endchar;
+
+%% H %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "H";
+beginchar("H", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, .5mxlittle);
+ z2 = (x1, mxheight);
+ lft z3 = (0, y2);
+ z4 = (x3, mxlittle);
+ draw z1--z2--z3--z4;
+
+ z5 = (x1, mxlittle);
+ z7 = (x1+mxone, .5mxlittle);
+ z6 = (.5[x5, x7], y5);
+ bot z8 = (.x6, 0);
+
+ draw z6{right}..z7..z8{left}..{up}z1;
+
+ xuc_halbserif(2, -1, -1);
+ xuc_halbserif(3, -1, 1);
+ xuc_serif(4, 1);
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% Z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Z";
+beginchar("Z", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, .5mxlittle);
+ z2 = (x1, mxheight-.5mxtop);
+ draw z1--z2;
+
+ z5 = (x1, mxlittle);
+ z7 = (x1+mxone, .5mxlittle);
+ z6 = (.5[x5, x7], y5);
+ bot z8 = (.x6, 0);
+
+ draw z5--z6{right}..z7..z8{left}..{up}z1;
+
+ xuc_halbserif(2, -1, -1);
+% xuc_haken(2);
+ xuc_haken_gross(2);
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% I %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "I";
+beginchar("I", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, 0);
+ z2 = (x1, mxheight-.5mxtop);
+ draw z1--z2;
+ xuc_serif(1, 1);
+% xuc_haken(2);
+ xuc_haken_gross(2);
+ penlabels(range 1 thru 2);
+endchar;
+
+
+%% W %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "W";
+beginchar("W", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, 0);
+ z2 = (x1, mxheight);
+ draw z1--z2;
+
+ z3 = (x1, mxlittle);
+ xuc_serif(1, 1);
+ xuc_serif(2, -1);
+ xuc_haken_gross(3);
+ penlabels(range 1 thru 3);
+endchar;
+
+
+%% M %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "M";
+beginchar("M", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z8 = (mxone, mxheight-.5mxtop);
+ z1 = (x8, mxlittle);
+ lft bot z2 = (mxhalf, 0);
+ lft z3 = (0, .5mxlittle);
+ z4 = (x2, mxlittle);
+ z5 = (x8+.5mxone, y4);
+ z6 = (x8+mxone, y3);
+ z7 = (x6, y2);
+ draw z8--z1{down}..{left}z2..z3..{right}z4--z5{right}..{down}z6--z7;
+ xuc_haken_gross(8);
+ xuc_serif(7, 1);
+ xuc_halbserif(8, -1, -1);
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% DZ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Dz (j) - Dzil";
+beginchar("J", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z8 = (mxone, mxheight);
+ z1 = (x8, mxlittle);
+ lft bot z2 = (mxhalf, 0);
+ lft z3 = (0, .5mxlittle);
+ z4 = (x2, mxlittle);
+ z5 = (x8+.5mxone, y4);
+ z6 = (x8+mxone, y3);
+ z7 = (x6, y2);
+ draw z8--z1{down}..{left}z2..z3..{right}z4--z5{right}..{down}z6--z7;
+ xuc_serif(8, -1);
+ xuc_serif(7, 1);
+ penlabels(range 1 thru 8);
+endchar;
+
+
+
+%% OO/HO %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "OO - HO (Old Georgian), oct011";
+beginchar(oct"011", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z8 = (mxone, mxheight);
+ z1 = (x8, mxlittle);
+ lft bot z2 = (mxhalf, 0);
+ lft z3 = (0, .5mxlittle);
+ z4 = (x2, mxlittle);
+ lft z5 = (1.5mxone, y4);
+ lft z6 = (2mxone, y3);
+ z7 = (x6, y2);
+ draw z8--z1{down}..{left}z2..z3..{right}z4--z5{right}..{down}z6--z7;
+
+ z12 = (x8, 1.2mxlittle);
+ z10 = (x6, .5[y8, y12]);
+ z9 = (.5[x8, x10], y8);
+ z11 = (x9, y12);
+ draw z8--z9{right}..{down}z10..{left}z11--z12;
+
+ xuc_halbserif(8, -1, 1);
+ xuc_serif(7, 1);
+
+ penlabels(range 1 thru 12);
+endchar;
+
+
+
+
+%% .G %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".G - .Gan (oct002)";
+beginchar(oct"002", mxzw#+1.3mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ bot lft z1 = (0, 0);
+ z5 = (x1+1.3mxone, y1);
+ z2 = (x1, mxheight-mxtop);
+ z4 = (x5, y2);
+ z3 = (.5[x1, x5], mxheight);
+ draw z1--z2{up}..{right}z3..{down}z4--z5;
+ xuc_serif(1, 1);
+ xuc_serif(5, 1);
+
+ penlabels(range 1 thru 5);
+endchar;
+
+
+
+%% .P %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".P - .Par (oct004)";
+beginchar(oct"004", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+% lft z6 = (0, mxheight);
+ lft z1 = (mxone, mxheight-.5mxtop);
+ z5 = (x1+1mxone, y1);
+ z2 = (x1, mxmiddle);
+ z4 = (x5, y2);
+ bot z3 = (.5[x1, x5], 0);
+ draw z1--z2{down}..{right}z3..{up}z4--z5;
+ xuc_halbserif(1, -1, -1);
+ xuc_serif(5, -1);
+% xuc_haken(1);
+ xuc_haken_gross(1);
+ penlabels(range 1 thru 6);
+endchar;
+
+
+
+%% .T %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".T - .Tar (oct006)";
+beginchar(oct"006", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (0, mxthird);
+ z2 = (x1, mxheight);
+ z6 = (x1, mxlittle);
+ z4 = (x1+mxone, .5[y2, y6]);
+ x3 = x5 = .5[x4, x6];
+ y3 = y2;
+ y5 = y6;
+ draw z1--z2--z3{right}..{down}z4..{left}z5--z6;
+ xuc_halbserif(2, -1, 1);
+ xuc_halbserif(1, 1, 1);
+ xuc_fuss_gross(1);
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% .C %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".C - .Cil (oct000)";
+beginchar(oct"000", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (0, 0);
+ z2 = (x1, mxheight);
+ z6 = (x1, mxlittle);
+ z4 = (x1+mxone, .5[y2, y6]);
+ x3 = x5 = .5[x4, x6];
+ y3 = y2;
+ y5 = y6;
+ draw z1--z2--z3{right}..{down}z4..{left}z5--z6;
+
+ z7 = (x1, mxmiddle);
+ xuc_halbserif(2, -1, 1);
+ xuc_serif(1, 1);
+ xuc_fuss_gross(7);
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% P %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "P";
+beginchar("P", mxzw#+2mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft bot z1 = (mxone, 0);
+ z2 = (x1, mxheight);
+ x4 = x1+mxone;
+ x8 = x1-mxone;
+ x3 = x5 = .5[x4, x2];
+ x9 = x7 = .5[x8, x2];
+ y3 = y9 = y2;
+ y7 = y5 = mxlittle;
+ y4 = y8 = .5[y2, y5];
+
+
+ draw z1--z2;
+ draw z3{right}..{down}z4..{left}z5--z7..{up}z8..{right}z9--cycle;;
+ xuc_serif(1, 1);
+
+ penlabels(range 1 thru 9);
+endchar;
+
+
+%% Qh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Qh - qhar (oct015)";
+beginchar(oct"015", mxzw#+1.5mxone#, mxheight#, 0);
+ pickup xuc_pen;
+ lft z3 = (0, mxheight);
+ z6 = (x3 + 1.5mxone, y3);
+ x4 = x3;
+ x5 = x6;
+ y4 = y5 = mxlittle;
+ z2 = (.5[x4, x5], y4);
+ bot z1 = (x2, 0);
+ draw z1--z2;
+ draw z3--z4--z5--z6;
+ xuc_serif(1, 1);
+ xuc_serif(3, -1);
+ xuc_serif(6, -1);
+ penlabels(range 1 thru 6);
+endchar;
+
+% Dummy Digits for Ligatures
+%xucchar "0 (empty)";
+%beginchar("0", mxzw#+mxone#, mxheight#, 0);
+%endchar;
+%
+%xucchar "1 (empty)";
+%beginchar("1", mxzw#+mxone#, mxheight#, 0);
+%endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/xucl.mf b/Master/texmf-dist/fonts/source/public/mxedruli/xucl.mf
new file mode 100644
index 00000000000..8bd5d6d5043
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/xucl.mf
@@ -0,0 +1,1162 @@
+% Xucuri Font `xucl.mf' Lowercase
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 0.3 as of 17th July 1998 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+
+% Serifen: Aufruf xuc_serif(Punktnr, 1|-1);
+% unten: -1 Serife f"ur oben, 1 f"ur unten
+def xucmin_serif (suffix $)(expr theta, unten) =
+ if unten = 1:
+ z$a = (x$-(.8px2*(cosd 10)), y$-.8px2*(sind 10));
+ else:
+ z$a = (x$-(1px2*(cosd 10)), y$-1px2*(sind 10));
+ fi;
+ z$c = (x$-(.5px2*(cosd 10)), y$-.5px2*(sind 10));
+ z$b = z$a + unten*.2px2*(dir theta);
+ z$d = z$c + unten*.6px2*(dir theta);
+
+ if unten = 1:
+ z$e = (x$+(1px2*(cosd 10)), y$+1px2*(sind 10));
+ else:
+ z$e = (x$+(.8px2*(cosd 10)), y$+.8px2*(sind 10));
+ fi;
+ z$g = (x$+(.5px2*(cosd 10)), y$+.5px2*(sind 10));
+ z$f = z$e + unten*.2px2*(dir theta);
+ z$h = z$g + unten*.6px2*(dir theta);
+
+ if unten = 1:
+ fill z$--z$a--z$b{dir 10}..{dir theta}z$d--z$h{-dir (theta)}..{dir 10}z$f--z$e--cycle;
+ else:
+ fill z$--z$a--z$b{dir 10}..{-dir theta}z$d--z$h{dir (theta)}..{dir 10}z$f--z$e--cycle;
+ fi;
+ labels($a, $b, $c, $d, $e, $f, $g, $h);
+enddef;
+
+
+def xucl_hakenlinks (suffix $) =
+ pickup xuc_penl;
+ z$m = (x$-7/6xuclone, y$-xucllittle/3);
+ z$n = (x$-xuclone, y$);
+ numeric th;
+ th = angle(z$n-z$m);
+ xucmin_serif($n, th, -1);
+ draw z$--z$m;
+ draw z$m--z$n;
+ labels($m, $n);
+enddef;
+
+def xucl_hakenrechts (suffix $) =
+ pickup xuc_penl;
+ z$m = (x$+7/6xuclone, y$+xucllittle/3);
+ z$n = (x$+xuclone, y$);
+ numeric th;
+ th = angle(z$m-z$n);
+ xucmin_serif($n, th, 1);
+ draw z$--z$m;
+ draw z$m--z$n;
+ labels($m, $n);
+enddef;
+
+
+def xucl_fussrechts (suffix $) =
+ z$e = (x$+5/6xuclone, y$+2/12xucllittle);
+ z$f = (x$e+1/6xuclone, y$);
+ z$g = (x$f, y$-1/6xucllittle);
+ draw z$--z$e{z$e-z$}..z$f..z$g;
+ labels($e, $f, $g);
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%% a %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "an";
+beginchar("a", xuclzw#+2xuclone#, xucllittle#, .3xucllow#);
+ pickup xuc_penl;
+ z1 = (7/6xuclone, xucllittle);
+ z2 = (x1-(1/3xuclone), 0);
+ z3 = (2/3[z2, z1]);
+ draw z1--z2;
+ xucl_hakenlinks(1);
+ xucl_hakenrechts(3);
+
+ pickup xuc_penlx;
+ xucl_fussrechts(2);
+ penlabels(1, 2, 3);
+endchar;
+
+%% e %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "en";
+beginchar("e", xuclzw#+2xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[];
+
+ z1 = (7/6xuclone, xucllittle);
+ z2 = (x1-(1/3xuclone), 0);
+ z3 = (2/3[z2, z1]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(2, theta1, 1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x4-(1/3xuclone), 0);
+ z6 = (5/3[z4, z5]);
+ theta4 = angle(z4-z6);
+ xucmin_serif(6, theta4, 1);
+
+ draw z1--z2;
+ draw z3--z4--z6;
+
+ xucl_hakenlinks(1);
+
+ penlabels(range 1 thru 9);
+endchar;
+
+%% v %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "vin";
+beginchar("v", xuclzw#+3xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[];
+
+ z1 = (7/6xuclone, xucllittle);
+ z2 = (x1-(1/3xuclone), 0);
+ z3 = (2/3[z2, z1]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(2, theta1, 1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x4-(1/3xuclone), 0);
+ z6 = (5/3[z4, z5]);
+ z7 = (2/3[z5, z4]);
+ theta4 = angle(z4-z6);
+ xucmin_serif(6, theta4, 1);
+
+ z8 = (x4+xuclone, y1);
+ z9 = (x8-(1/3xuclone), 0);
+ theta8 = angle(z8-z9);
+ xucmin_serif(9, theta8, 1);
+
+ draw z1--z2;
+ draw z3--z4--z6;
+ draw z7--z8--z9;
+
+ xucl_hakenlinks(1);
+
+ penlabels(range 1 thru 9);
+endchar;
+
+
+%% t %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "tan";
+beginchar("t", xuclzw#+2.5xuclone#, xucllittle#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (x2+1/3xuclone, xucllittle);
+ z3 = (2/3[z2, z1]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, 0);
+ z6 = (2/3[z5, z4]);
+ z7 = (1/3[z5, z4]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+
+
+ z8 = (x4+xuclone, y1);
+ z9 = (x5+xuclone, 0);
+ theta8 = angle(z8-z9);
+ xucmin_serif(9, theta8, 1);
+
+ draw z1--z2;
+ draw z2--z7;
+ draw z3--z4--z5;
+ draw z6--z8--z9;
+
+ penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9);
+endchar;
+
+
+%% l %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "las";
+beginchar("l", xuclzw#+3xuclone#, xucllittle#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z1 = (xuclone, xucllittle);
+ z2 = (x1-1/3xuclone, 0);
+ z3 = (1/3[z1, z2]);
+ xucl_hakenlinks(1);
+ theta1 = angle(z1-z2);
+ xucmin_serif(2, theta1, 1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z6 = (1/3[z4, z5]);
+ theta4 = angle(z4-z5);
+% xucmin_serif(5, theta4, 1);
+ draw z3--z4--z5;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+ z9 = (2/3[z7, z8]);
+ theta7 = angle(z7-z8);
+ xucmin_serif(8, theta7, 1);
+ draw z6--z7--z8;
+ draw z5--z9;
+
+ penlabels(range 1 thru 9);
+endchar;
+
+
+
+%% o %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "on";
+beginchar("o", xuclzw#+2.5xuclone#, xucllittle#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(4, theta4, -1);
+ draw z2--z3;
+ draw z4--z5;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+ z6 = (2/3[z7, z8]);
+ theta7 = angle(z7-z8);
+ xucmin_serif(7, theta7, -1);
+ xucmin_serif(8, theta7, 1);
+ draw z7--z8;
+ draw z5--z6;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% u %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "un";
+beginchar("u", xuclzw#+3.5xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(4, theta4, -1);
+ draw z2--z3;
+ draw z4--z5;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+ z6 = (2/3[z7, z8]);
+ theta7 = angle(z7-z8);
+ xucmin_serif(7, theta7, -1);
+ draw z7--z8;
+ draw z5--z6;
+
+ z10 = (x7+xuclone, y7);
+ z11 = (x8+xuclone, y8);
+ z12 = (5/3[z10, z11]);
+ z9 = (2/3[z10, z11]);
+ theta10 = angle(z10-z11);
+ xucmin_serif(10, theta10, -1);
+ xucmin_serif(12, theta10, 1);
+ draw z10--z12;
+ draw z8--z9;
+
+ penlabels(range 1 thru 11);
+endchar;
+
+
+%% p %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "par";
+beginchar("p", xuclzw#+2.5xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ z10 = (1/3[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ z9 = (5/3[z4, z5]);
+ z11 = (1/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(9, theta4, 1);
+ draw z10--z4;
+ draw z2--z3;
+ draw z4--z9;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+ z6 = (2/3[z7, z8]);
+ theta7 = angle(z7-z8);
+% xucmin_serif(7, theta7, -1);
+ xucmin_serif(8, theta7, 1);
+ draw z11--z7;
+ draw z7--z8;
+ draw z5--z6;
+
+ penlabels(range 1 thru 11);
+endchar;
+
+
+
+%% .g %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".ghan (oct022)";
+beginchar(oct"022", xuclzw#+2xuclone#, xucllittle#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z1 = (xuclone, xucllittle);
+ z2 = (x1-1/3xuclone, 0);
+ z3 = (1/3[z1, z2]);
+ xucl_hakenlinks(1);
+ theta1 = angle(z1-z2);
+ xucmin_serif(2, theta1, 1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+ draw z3--z4--z5;
+
+ penlabels(range 1 thru 9);
+endchar;
+
+
+
+
+%% q %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".qar";
+beginchar("q", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ z6 = (5/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(4, theta4, -1);
+ xucmin_serif(6, theta4, 1);
+ draw z2--z3;
+ draw z4--z6;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+
+%% dz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "dz (j) - dzil";
+beginchar("j", xuclzw#+2.5xuclone#, xuclheight#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ z10 = (1/3[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ z6 = (1/3[z4, z5]);
+ z9 = (7/4[z5, z4]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+ xucmin_serif(9, theta4, -1);
+ draw z10--z4;
+ draw z2--z3;
+ draw z9--z5;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+ theta7 = angle(z7-z8);
+ xucmin_serif(8, theta7, 1);
+ draw z7--z8;
+ draw z7--z6;
+
+ penlabels(range 1 thru 10);
+endchar;
+
+
+%% c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".can (oct020)";
+beginchar(oct"020", xuclzw#+3xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (xuclhalf, 0);
+ z1 = (x2+1/3xuclone, xucllittle);
+ z10 = (1/3[z1, z2]);
+ z9 = (5/3[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ xucmin_serif(9, theta1, 1);
+ draw z1--z9;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z6 = (1/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+ draw z5--z4--z10;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+
+ theta7 = angle(z7-z8);
+ xucmin_serif(8, theta7, 1);
+ draw z6--z7--z8;
+
+ penlabels(range 1 thru 10);
+endchar;
+
+
+%% h %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "ha";
+beginchar("h", xuclzw#+3xuclone#, xucllittle#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z1 = (xuclone, xucllittle);
+ z2 = (x1-1/3xuclone, 0);
+ z3 = (1/3[z1, z2]);
+ xucl_hakenlinks(1);
+ theta1 = angle(z1-z2);
+ xucmin_serif(2, theta1, 1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ draw z3--z4--z5;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+ z9 = (2/3[z7, z8]);
+ theta7 = angle(z7-z8);
+ xucmin_serif(7, theta7, -1);
+ xucmin_serif(8, theta7, 1);
+ draw z7--z8;
+ draw z5--z9;
+
+ penlabels(range 1 thru 9);
+endchar;
+
+
+%% i %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "in";
+beginchar("i", xuclzw#+xuclone#, xucllittle#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z1 = (xuclone, xucllittle);
+ z2 = (x1-1/3xuclone, 0);
+ xucl_hakenlinks(1);
+ theta1 = angle(z1-z2);
+ xucmin_serif(2, theta1, 1);
+ draw z1--z2;
+
+ penlabels(range 1 thru 2);
+endchar;
+
+
+%% .p %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".p - .par (oct024)";
+beginchar(oct"024", xuclzw#+2xuclone#, xucllittle#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z1 = (xuclone, xucllittle);
+ z2 = (x1-1/3xuclone, 0);
+ xucl_hakenlinks(1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ draw z4--z5;
+ draw z1--z2--z3;
+ theta4 = angle(z4-z5);
+ xucmin_serif(4, theta4, -1);
+ xucmin_serif(5, theta4, 1);
+
+ penlabels(range 1 thru 5);
+endchar;
+
+
+%% ^z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "^z - ^zan (+z, oct027)";
+beginchar(oct"027", xuclzw#+2xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z1 = (xuclone, xucllittle);
+ z2 = (x1-1/3xuclone, 0);
+ xucl_hakenlinks(1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ z6 = (5/3[z4, z5]);
+ draw z4--z6;
+ draw z1--z2--z3;
+ theta4 = angle(z4-z5);
+ xucmin_serif(4, theta4, -1);
+ xucmin_serif(6, theta4, 1);
+
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% r %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "ran";
+beginchar("r", xuclzw#+2.5xuclone#, xuclheight#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ z6 = (1/3[z4, z5]);
+ z9 = (7/4[z5, z4]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+ xucmin_serif(9, theta4, -1);
+ draw z2--z3;
+ draw z9--z5;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+ theta7 = angle(z7-z8);
+ xucmin_serif(8, theta7, 1);
+ draw z7--z8;
+ draw z7--z6;
+
+ penlabels(range 1 thru 9);
+endchar;
+
+
+%% s %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "san";
+beginchar("s", xuclzw#+1.5xuclone#, xuclheight#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ z6 = (7/4[z2, z1]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(6, theta1, -1);
+ draw z6--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(4, theta4, -1);
+ xucmin_serif(5, theta4, 1);
+ draw z2--z3;
+ draw z4--z5;
+
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% w %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "we";
+beginchar("w", xuclzw#+1.5xuclone#, xuclheight#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ z7 = (5/3[z4, z5]);
+ z6 = (7/4[z5, z4]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(6, theta4, -1);
+ xucmin_serif(7, theta4, 1);
+ draw z2--z3;
+ draw z6--z7;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% k %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "kan";
+beginchar("k", xuclzw#+2.5xuclone#, xuclheight#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ z9 = (1/3[z4, z5]);
+ z10 = (5/3[z4, z5]);
+ z6 = (7/4[z5, z4]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(6, theta4, -1);
+ xucmin_serif(10, theta4, 1);
+ draw z2--z3;
+ draw z6--z10;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+ theta7 = angle(z7-z8);
+ xucmin_serif(8, theta7, 1);
+ draw z9--z7--z8;
+
+ penlabels(range 1 thru 10);
+endchar;
+
+%% q %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% To be improved
+xucchar "q - qhar (oct035, TO BE IMPROVED)";
+beginchar(oct"035", xuclzw#+2.5xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ z10 = (5/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(3, theta4, -1);
+ xucmin_serif(10, theta4, 1);
+ draw z3--z10;
+
+ z7 = (x4+xuclone, y4);
+ z8 = (x5+xuclone, y5);
+ z12 = (3/6[z7, z8]);
+ theta7 = angle(z7-z8);
+ xucmin_serif(7, theta7, -1);
+ xucmin_serif(8, theta7, 1);
+ draw z7--z8;
+
+% pickup xuc_penlx;
+ draw z2--z12;
+
+ penlabels(range 1 thru 12);
+endchar;
+
+
+%% b %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "ban";
+beginchar("b", xuclzw#+2xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+1.5xuclone, y1);
+ z5 = (x2+1.5xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(4, theta4, -1);
+
+ x6 = .5[x2, x5]; y6 = -1xucllow;
+ z7 = (x2, -.5xucllow);
+ z8 = (.5[x3,x4], y7);
+
+ draw z4--z5;
+
+ pickup xuc_penlx;
+ draw z2--z3;
+
+ pickup xuc_penb;
+ draw z5{-dir theta4}..{down}z8..{left}z6..{up}z7;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% g %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "gan";
+beginchar("g", xuclzw#+2xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z1 = (xuclone, xucllittle);
+ z2 = (x1-1/3xuclone, 0);
+ z3 = (1/3[z1, z2]);
+ xucl_hakenlinks(1);
+ theta1 = angle(z1-z2);
+ xucmin_serif(2, theta1, 1);
+ draw z1--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ theta4 = angle(z4-z5);
+ draw z3--z4--z5;
+
+ x6 = .5[x2, x5]; y6 = -1xucllow;
+ z7 = (.5x2, -.5xucllow);
+ z8 = (x4, y7);
+ z9 = (x3, -.2xucllow);
+
+ pickup xuc_penb;
+ draw z5{-dir theta4}..{down}z8..{left}z6..{up}z7..{right}z9;
+
+ penlabels(range 1 thru 9);
+endchar;
+
+%% d %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "don";
+beginchar("d", xuclzw#+2xuclone#, xuclheight#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z1 = (xuclone, 7/4xucllittle);
+ z2 = (x1, 4/5xucllittle);
+ z3 = (1/3[z1, z2]);
+ xucl_hakenlinks(1);
+ xucl_hakenrechts(3);
+
+ z4 = (2x1, .5y2);
+ z6 = (0, y4);
+ z5 = (x2, 0);
+ draw z1--z2;
+
+ pickup xuc_penb;
+ draw z2..tension 2..z4..tension 2..z5..tension 2..z6..tension 2..cycle;
+ penlabels(range 1 thru 6);
+endchar;
+
+
+%% z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "zen";
+beginchar("z", xuclzw#+1.5xuclone#, xuclheight#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (.5xuclhalf, 0);
+ z1 = (x2+1/3xuclone, xucllittle);
+ z6 = (7/4[z2, z1]);
+ z7 = (2/3[z2, z1]);
+
+ draw z6--z2;
+ xucl_hakenlinks(6);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+ draw z2--z3;
+ draw z4--z5;
+ draw z4--z7;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% he %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "he (long e, oct036)";
+beginchar(oct"036", xuclzw#+1.8xuclone#, xuclheight#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (.5xuclhalf, 0);
+ z1 = (x2+1/3xuclone, xucllittle);
+ z6 = (7/4[z2, z1]);
+ z3 = (2/3[z2, z1]);
+ z7 = (5/3[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(6, theta1, -1);
+ xucmin_serif(7, theta1, 1);
+
+ draw z6--z7;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+ draw z3--z4--z5;
+
+ z9 = (7/4[z5, z4]);
+ z8 = (5/4[z5, z4]);
+ draw z8--z9;
+
+ penlabels(range 1 thru 9);
+endchar;
+
+
+%% .k %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".k - .kan (oct003)";
+beginchar(oct"023", xuclzw#+1.5xuclone#, xuclheight#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ z6 = (7/4[z2, z1]);
+ z3 = (1/3[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(6, theta1, -1);
+ draw z6--z2;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z7 = (2/3[z4, z5]);
+ z8 = (5/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(8, theta4, 1);
+ draw z3--z4--z8;
+ draw z2--z7;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% m %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "man";
+beginchar("m", xuclzw#+1.5xuclone#, xuclheight#, 0);
+ pickup xuc_penl;
+
+ z1 = (1.5xuclone, 7/4xucllittle);
+ z2 = (x1, 4/5xucllittle);
+ z3 = (2/3[z1, z2]);
+ xucl_hakenlinks(1);
+
+ z4 = (0, .5y2);
+ z5 = (.5[x4, x1], 0);
+
+ draw z1--z2;
+
+ pickup xuc_penb;
+ draw z2{down}..{left}z5..{up}z4..{z3-z4}z3;
+
+ penlabels(range 1 thru 5);
+endchar;
+
+%% n %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% not yet very nice
+xucchar "nar (TO BE IMPROVED)";
+beginchar("n", xuclzw#+1.5xuclone#, xuclheight#, 0);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ z6 = (12/8[z2, z1]);
+ z3 = (1/3[z1, z2]);
+
+ theta1 = angle(z1-z2);
+ xucmin_serif(2, theta1, 1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z7 = (7/4[z5, z4]);
+ z8 = (5/4[z5, z4]);
+ draw z2--z6--z7--z8;
+
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+ xucmin_serif(8, theta4, 1);
+ draw z3--z4--z5;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% i1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "i1 - short i, (Old Georgian), oct032";
+beginchar(oct"032", xuclzw#+1.5xuclone#, xucllittle#, 0);
+ pickup xuc_penb;
+ numeric theta[]; % Winkel der Strichs
+
+ z1 = (1.5xuclone, xucllittle);
+ z3 = (xuclhalf, 2/3y1);
+ z2 = (.5[x1, x3], 0);
+ z4 = (x1, y1+.5py2);
+ draw z1{down}..{left}z2..{dir 30}z3;
+ xucmin_serif(4, 90, -1);
+
+ penlabels(range 1 thru 3);
+endchar;
+
+
+%% ^s %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "^sin";
+beginchar(oct"025", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (0, 0);
+ z1 = (1/3xuclone, xucllittle);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+ draw z1--z2;
+
+ z4 = (x1+1xuclone, y1);
+ z5 = (x2+1xuclone, y2);
+ z3 = (2/3[z4, z5]);
+ theta4 = angle(z4-z5);
+ xucmin_serif(4, theta4, -1);
+
+ x6 = .5[x2, x5]; y6 = -1xucllow;
+ z7 = (x2, -.5xucllow);
+ z8 = (x5, y7);
+
+ draw z2--z3;
+ draw z4--z5;
+
+ pickup xuc_penb;
+ draw z5{-dir theta4}..{down}z8..{left}z6..{up}z7;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% ^c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "^cin";
+beginchar(oct"021", xuclzw#+1.5xuclone#, xuclheight#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (.5xuclhalf, 0);
+ z1 = (x2+1/3xuclone, xucllittle);
+ z6 = (7/4[z2, z1]);
+ z3 = (2/3[z2, z1]);
+ z7 = (5/3[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(6, theta1, -1);
+ xucmin_serif(7, theta1, 1);
+
+ draw z6--z7;
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+ draw z3--z4--z5;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+%% c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "cin";
+beginchar("c", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (.5xuclhalf, 0);
+ z1 = (x2+1/3xuclone, xucllittle);
+ z3 = (2/3[z2, z1]);
+ z7 = (4/3[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z6 = (x5, 5/3[y4, y5]);
+
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+
+ draw z1--z7;
+ draw z3--z4--z5;
+
+ pickup xuc_penb;
+ draw z7{down}..{right}z6;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+
+%% x %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "xan";
+beginchar("x", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (.5xuclhalf, 0);
+ z1 = (x2+1/3xuclone, xucllittle);
+ z7 = (4/3[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z6 = (x4, 5/3[y4, y5]);
+ z3 = (2/3[z4, z5]);
+
+ theta4 = angle(z4-z5);
+ xucmin_serif(4, theta4, -1);
+ xucmin_serif(5, theta4, 1);
+
+ draw z1--z7;
+ draw z3--z2;
+ draw z4--z5;
+
+ pickup xuc_penb;
+ draw z7{down}..{right}z6;
+
+ penlabels(range 1 thru 7);
+endchar;
+
+%% .t %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar ".t - .tar (.t oct026)";
+beginchar(oct"026", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+
+ z2 = (.5xuclhalf, 0);
+ z1 = (x2+1/3xuclone, xucllittle);
+ z7 = (2/3[z2, z1]);
+ z8 = (4/3[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z6 = (x5, 5/3[y4, y5]);
+ z3 = (2/3[z4, z5]);
+
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+
+ draw z1--z8;
+ draw z3--z2;
+ draw z4--z5;
+ draw z4--z7;
+
+ pickup xuc_penb;
+ draw z8{down}..{right}z6;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% .^c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "^.c - ^.car (,c .+c oct034)";
+beginchar(oct"034", xuclzw#+1.5xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ numeric theta[]; % Winkel der Strichs
+ z2 = (.5xuclhalf, 0);
+ z1 = (x2+1/3xuclone, xucllittle);
+ z3 = (2/3[z2, z1]);
+ z8 = (7/6[z1, z2]);
+ theta1 = angle(z1-z2);
+ xucmin_serif(1, theta1, -1);
+
+ z4 = (x1+xuclone, y1);
+ z5 = (x2+xuclone, y2);
+ z6 = (x5, 4/3[y4, y5]);
+ z7 = (x2, 5/3[y4, y5]);
+
+ theta4 = angle(z4-z5);
+ xucmin_serif(5, theta4, 1);
+
+ draw z1--z8;
+ draw z3--z4--z5;
+
+ pickup xuc_penb;
+ draw z8{right}..{down}z6..{left}z7;
+
+ penlabels(range 1 thru 8);
+endchar;
+
+
+%% d^z %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "d^zan (+j oct030)";
+beginchar(oct"030", xuclzw#+2xuclone#, xucllittle#, xucllow#);
+ pickup xuc_penl;
+ z1 = (xuclone, xucllittle);
+ xucl_hakenlinks(1);
+
+ z2 = (2xuclone, -1/3xucllittle);
+ z3 = (x1, 2/3xucllittle);
+
+ z4 = (.75[x1,x2], y1);
+ z5 = (x2, y3);
+ z6 = (x1, -2/3xucllittle);
+
+ pickup xuc_penb;
+ draw z1..z3..z2;
+ draw z3..{right}z4..{down}z5..{right}z6;
+
+ penlabels(range 1 thru 7);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/mxedruli/xucp.mf b/Master/texmf-dist/fonts/source/public/mxedruli/xucp.mf
new file mode 100644
index 00000000000..a15d31a983e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/mxedruli/xucp.mf
@@ -0,0 +1,252 @@
+% Xucuri Punctuation `xucp.mf'
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Designed and (c) by Johannes Heinecke %
+% Humboldt-Universit"at zu Berlin %
+% Philosophische Faskult"at II %
+% Institut f"ur deutsche Sprache und Linguistik %
+% Computerlinguistik %
+% J"agerstr. 10/11 %
+% D - 10099 Berlin %
+% <heinecke@compling.hu-berlin.de> %
+% Please send any improvements, corrections, suggestions, enhancements etc %
+% to the Author! %
+% %
+% Version 0.1 as of 30th March 1997 %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+
+def xuc_comma (suffix $) =
+ pickup xuc_pcomma;
+ rt z$a = (pdot, y$);
+ z$b = (0, y$-.6mxlow);
+ draw z$a{down}..{dir -135}z$b;
+ labels($a, $b);
+enddef;
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%% Character Definitions: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+%% + %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "+";
+beginchar("+", mxzw#+mxone#, mxone#, 0);
+ if known cmbase: adjust_fit(0,0); fi
+ pickup xuc_dash;
+ lft z1 = (0, .5mxone);
+ z2 = (x1+mxone, y1);
+ draw z1--z2;
+
+ z3 = (.5[x1, x2], 0);
+ z4 = (x3, mxone);
+ draw z3--z4;
+
+ penlabels(range 1 thru 4);
+endchar;
+
+%% = %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Equals sign =";
+beginchar("=", mxzw#+1.5mxone#, mxlittle#, 0);
+ pickup xuc_dash;
+ lft z1 = (0, 1.5mxthird);
+ z2 = (x1+1.5mxone, y1);
+ z3 = (x1, 2.5mxthird);
+ z4 = (x2, y3);
+ draw z1--z2;
+ draw z3--z4;
+ penlabels(range 1 thru 4);
+endchar;
+
+%% / %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Slash /";
+beginchar("/", mxzw#+1.5mxone#, mxlittle#, 0);
+ pickup xuc_dash;
+ z1 = (0,0);
+ z2 = (1.5mxone, mxheight);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+%% \ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Backslash \ ";
+beginchar("\", mxzw#+1.5mxone#, mxlittle#, 0);
+ pickup xuc_dash;
+ z1 = (0,mxheight);
+ z2 = (1.5mxone, 0);
+ draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+
+
+%% - %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "-";
+beginchar("-", mxzw#+mxone#, mxlittle#, 0);
+ pickup xuc_dash;
+ lft z1 = (0, mxmiddle);
+ z2 = (x1+mxone, y1);
+ draw z1--z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% -- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "-- (123)";
+beginchar(123, mxzw#+1.5mxone#, mxlittle#, 0);
+ pickup xuc_dash;
+ lft z1 = (0, mxmiddle);
+ z2 = (x1+1.5mxone, y1);
+ draw z1--z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% --- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "--- (124)";
+beginchar(124, mxzw#+2mxone#, mxlittle#, 0);
+ pickup xuc_dash;
+ lft z1 = (0, mxmiddle);
+ z2 = (x1+2mxone, y1);
+ draw z1--z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% . %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Period .";
+beginchar(".", mxzw#+mxhalf#, mxlittle#, 0);
+ pickup xuc_dot;
+ bot lft z1 = (0, 0);
+ drawdot z1;
+ penlabels(1);
+endchar;
+
+%% : %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Colon :";
+beginchar(":", mxzw#+mxhalf#, mxlittle#, 0);
+ pickup xuc_dot;
+ lft z1 = (0, mxthird);
+ lft z2 = (0, 2.5mxthird);
+ drawdot z1;
+ drawdot z2;
+ penlabels(range 1 thru 2);
+endchar;
+
+%% ; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Semicolon ;";
+beginchar(";", mxzw#+pdot#, mxlittle#, .6mxlow#);
+ pickup xuc_dot;
+ bot lft z1 = (0, 0);
+ z4 = (x1, y1+.5mxlittle);
+ drawdot z1;
+ drawdot z4;
+
+ xuc_comma(1);
+ penlabels(range 1 thru 4);
+endchar;
+
+
+%% , %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Comma ,";
+beginchar(",", mxzw#+pdot#, mxlittle#, .6mxlow#);
+ pickup xuc_dot;
+ bot lft z1 = (0, 0);
+ drawdot z1;
+ xuc_comma(1);
+ penlabels(range 1 thru 3);
+endchar;
+
+
+%% ' %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Apostroph '";
+beginchar("'", mxzw#+pdot#, mxheight#, 0#);
+ pickup xuc_dot;
+ lft z1 = (0, mxheight);
+ drawdot z1;
+
+ xuc_comma(1);
+ penlabels(range 1 thru 3);
+endchar;
+
+%% ? %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Question mark ?";
+beginchar("?", mxzw#+mxone#, mxheight#, 0);
+ pickup xuc_dot;
+ bot z1 = (mxhalf, 0);
+ drawdot z1;
+
+ pickup xuc_punctpen;
+ z2 = (0, mxheight-.5mxtop);
+ z3 = (x1, mxheight);
+ z4 = (mxone, y2);
+ z5 = (x1, mxmiddle);
+ z6 = (x5, 1.2mxthird);
+
+ draw z2{up}..{right}z3..{down}z4..{down}z5--z6;
+ penlabels(1,2,3,4,5);
+endchar;
+
+%% ! %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Exclamation mark !";
+beginchar("!", mxzw#+.5mxhalf#, mxheight#, 0);
+ pickup xuc_dot;
+ bot lft z1 = (0, 0);
+ drawdot z1;
+
+ z2 = (x1, mxheight-.5pdot); penpos2(pdot, 0);
+ drawdot z2;
+ z3 = (x1, mxmiddle); penpos3(.18mxu, 0);
+ penstroke z2e..z3e;
+ penlabels(1,2,3);
+endchar;
+
+%% ( %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Left parenthesis (";
+beginchar("(", mxzw#+mxhalf#, 1.1mxheight#, .1mxheight#);
+ z1 = (.5pdot+mxhalf, 1.1mxheight); penpos1(.18mxu, 0);
+ z3 = (x1, -.1mxheight); penpos3(.18mxu, 0);
+ z2 = (.5pdot, .5[y1, y3]); penpos2(pdot, 0);
+ penstroke z1e..z2e..z3e;
+ penlabels(range 1 thru 4);
+endchar;
+
+
+%% ) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Right parenthesis )";
+beginchar(")", mxzw#+mxhalf#, 1.1mxheight#, .1mxheight#);
+ z1 = (0, 1.1mxheight); penpos1(.18mxu, 0);
+ z3 = (x1, -.1mxheight); penpos3(.18mxu, 0);
+ z2 = (mxhalf, .5[y1, y3]); penpos2(pdot, 0);
+ penstroke z1e..z2e..z3e;
+ penlabels(range 1 thru 4);
+endchar;
+
+%% [ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Left bracket [";
+beginchar("[", mxzw#+mxhalf#, 1.1mxheight#, .1mxheight#);
+ pickup xuc_square;
+ z1 = (mxhalf, -.1mxheight);
+ z2 = (0, y1);
+ z3 = (0, 1.1mxheight);
+ z4 = (x1, y3);
+ draw z1--z2--z3--z4;
+ penlabels(range 1 thru 4);
+endchar;
+
+%% ] %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+xucchar "Right bracket ]";
+beginchar("]", mxzw#+mxhalf#, 1.1mxheight#, .1mxheight#);
+ pickup xuc_square;
+ z1 = (0, -.1mxheight);
+ z2 = (mxhalf, y1);
+ z3 = (x2, 1.1mxheight);
+ z4 = (0, y3);
+ draw z1--z2--z3--z4;
+ penlabels(range 1 thru 4);
+endchar;
+
+
+%endinput; \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/niceframe/bbding10.mf b/Master/texmf-dist/fonts/source/public/niceframe/bbding10.mf
new file mode 100644
index 00000000000..84c6b8998a5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/niceframe/bbding10.mf
@@ -0,0 +1,2631 @@
+% Originally written by Karel Horak
+% Changes made by Peter Møller Neergaard after suggestions from Sergue{\"i} Dachian
+%mode=localfont;
+mode_setup;
+font_size = 10pt#;
+u#:=1/10pt#; %.1mm#;
+define_pixels(u);
+%screenstrokes;
+%imagerules;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ dole u©¡znut‚ smˆ©uj¡c¡ doprava %%%%%%%%%%%
+beginchar(0,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u);
+z1=(13u,67u); z2=(2u,76u); z3=(13u,84u); z4=(24u,76u);
+z5=(13u,21u); z6=(2u,29u); z7=(13u,38u); z8=(24u,29u);
+z10=(24u,71u);
+z11=(23.5u,69u); z12=(26u,67u); z13=(35u,66u); z14=(110u,55u);
+z15=(104u,50u); z16=(100u,48u); z17=(95u,46.5u); z18=(90u,46u);
+z19=(39u,51u); z20=(38u,57u);
+z21=(35u,60u); z22=(29u,63u); z23=(20u,64.5u); z24=(13u,65u); z25=(u,u);
+z26=(13u,60u); z27=(u,u); z28=(u,u); z29=(u,u);
+z30=(13u,40u);
+z31=(20u,40.5u); z32=(27u,42u); z33=(33u,45u); z34=(37u,49.5u); z35=(60u,80u);
+z36=(73u,79u); z37=(44.5u,47u); z38=(39u,43u); z39=(33u,40.5u); z40=(28u,39.5u);
+z41=(24u,37u); z42=(24u,35u); z43=(25u,33u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z5{dir 180}..z6..z7..z8..{dir 180}z5;
+s5=reverse s0 reflectedabout(z100,z101);
+s6=reverse s1 reflectedabout(z100,z101);
+draw s5;
+draw s6;
+pickup pencircle scaled .4u;
+s2=(z24--z10--(z10+(0,-eps))..z11..z12..{z14-z13}z13
+--z14..z15..z16..z17..z18--z19..z20..z21..z22..z23..z24--cycle);
+s3=(z43--z30..z31..z32..z33..z34{z35-z34}--z35--z36--z37..z38..z39
+..z40..z41..z42..(z43+(0,eps))--cycle);
+s7=s2 reflectedabout(z100,z101);
+s8=s3 reflectedabout(z100,z101);
+fill s7;
+fill s8;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ kompletn¡ smˆ©uj¡c¡ doprava %%%%%%%%%%%%%%%
+beginchar(1,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u);
+z1=(13u,62u); z2=(2u,71u); z3=(13u,79u); z4=(24u,71u); z5=(u,u);
+z10=(24u,65u);
+z11=(23.5u,63.5u); z12=(26u,61.5u); z13=(30u,61u); z14=(35u,60.5u);
+z15=(45u,58u); z16=(110u,35u); z17=(108u,32u); z18=(105u,30u);
+z19=(101u,29u); z20=(96u,30u);
+z21=(40u,48u); z22=(37u,54u); z23=(32u,57u); z24=(25u,59u); z25=(20u,59.5u);
+z26=(13u,60u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=reverse s0 reflectedabout(z100,z101);
+draw s0;
+draw s1;
+pickup pencircle scaled .4u;
+s2=(z26--z10--(z10+(0,-eps))..z11..z12..z13..z14..{z16-z15}z15
+--z16..z17..z18..z19..z20--z21..z22..z23..z24..z25..z26--cycle);
+s3=s2 reflectedabout(z100,z101);
+fill s2;
+fill s3;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ naho©e u©¡znut‚ smˆ©uj¡c¡ doprava %%%%%%%%%
+beginchar(2,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u);
+z1=(13u,67u); z2=(2u,76u); z3=(13u,84u); z4=(24u,76u);
+z5=(13u,21u); z6=(2u,29u); z7=(13u,38u); z8=(24u,29u);
+z10=(24u,71u);
+z11=(23.5u,69u); z12=(26u,67u); z13=(35u,66u); z14=(110u,55u);
+z15=(104u,50u); z16=(100u,48u); z17=(95u,46.5u); z18=(90u,46u);
+z19=(39u,51u); z20=(38u,57u);
+z21=(35u,60u); z22=(29u,63u); z23=(20u,64.5u); z24=(13u,65u); z25=(u,u);
+z26=(13u,60u); z27=(u,u); z28=(u,u); z29=(u,u);
+z30=(13u,40u);
+z31=(20u,40.5u); z32=(27u,42u); z33=(33u,45u); z34=(37u,49.5u); z35=(60u,80u);
+z36=(73u,79u); z37=(44.5u,47u); z38=(39u,43u); z39=(33u,40.5u); z40=(28u,39.5u);
+z41=(24u,37u); z42=(24u,35u); z43=(25u,33u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z5{dir 180}..z6..z7..z8..{dir 180}z5;
+draw s0;
+draw s1;
+pickup pencircle scaled .4u;
+s2=(z24--z10--(z10+(0,-eps))..z11..z12..{z14-z13}z13
+--z14..z15..z16..z17..z18--z19..z20..z21..z22..z23..z24--cycle);
+fill s2;
+s3=(z43--z30..z31..z32..z33..z34{z35-z34}--z35--z36--z37..z38..z39
+..z40..z41..z42..(z43+(0,eps))--cycle);
+fill s3;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ dole u©¡znut‚ smˆ©uj¡c¡ doleva %%%%%%%%%%%%
+beginchar(3,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(13u,67u); z2=(2u,76u); z3=(13u,84u); z4=(24u,76u);
+z5=(13u,21u); z6=(2u,29u); z7=(13u,38u); z8=(24u,29u);
+z10=(24u,71u);
+z11=(23.5u,69u); z12=(26u,67u); z13=(35u,66u); z14=(110u,55u);
+z15=(104u,50u); z16=(100u,48u); z17=(95u,46.5u); z18=(90u,46u);
+z19=(39u,51u); z20=(38u,57u);
+z21=(35u,60u); z22=(29u,63u); z23=(20u,64.5u); z24=(13u,65u); z25=(u,u);
+z26=(13u,60u); z27=(u,u); z28=(u,u); z29=(u,u);
+z30=(13u,40u);
+z31=(20u,40.5u); z32=(27u,42u); z33=(33u,45u); z34=(37u,49.5u); z35=(60u,80u);
+z36=(73u,79u); z37=(44.5u,47u); z38=(39u,43u); z39=(33u,40.5u); z40=(28u,39.5u);
+z41=(24u,37u); z42=(24u,35u); z43=(25u,33u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z5{dir 180}..z6..z7..z8..{dir 180}z5;
+s5=reverse s0 reflectedabout(z100,z101);
+s6=reverse s1 reflectedabout(z100,z101);
+s11=reverse s5 reflectedabout(z102,z103);
+s12=reverse s6 reflectedabout(z102,z103);
+draw s11;
+draw s12;
+
+pickup pencircle scaled .4u;
+s2=(z24--z10--(z10+(0,-eps))..z11..z12..{z14-z13}z13
+--z14..z15..z16..z17..z18--z19..z20..z21..z22..z23..z24--cycle);
+s3=(z43--z30..z31..z32..z33..z34{z35-z34}--z35--z36--z37..z38..z39
+..z40..z41..z42..(z43+(0,eps))--cycle);
+s7=s2 reflectedabout(z100,z101);
+s8=s3 reflectedabout(z100,z101);
+s13=s7 reflectedabout(z102,z103);
+s14=s8 reflectedabout(z102,z103);
+fill s13;
+fill s14;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ kompletn¡ smˆ©uj¡c¡ doleva %%%%%%%%%%%%%%%%
+beginchar(4,110u#,100u#,0);
+path s[];
+
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(13u,62u); z2=(2u,71u); z3=(13u,79u); z4=(24u,71u); z5=(u,u);
+z10=(24u,65u);
+z11=(23.5u,63.5u); z12=(26u,61.5u); z13=(30u,61u); z14=(35u,60.5u);
+z15=(45u,58u); z16=(110u,35u); z17=(108u,32u); z18=(105u,30u);
+z19=(101u,29u); z20=(96u,30u);
+z21=(40u,48u); z22=(37u,54u); z23=(32u,57u); z24=(25u,59u); z25=(20u,59.5u);
+z26=(13u,60u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=reverse s0 reflectedabout(z100,z101);
+s11=reverse s0 reflectedabout(z102,z103);
+s12=reverse s1 reflectedabout(z102,z103);
+draw s11;
+draw s12;
+
+pickup pencircle scaled .4u;
+s2=(z26--z10--(z10+(0,-eps))..z11..z12..z13..z14..{z16-z15}z15
+--z16..z17..z18..z19..z20--z21..z22..z23..z24..z25..z26--cycle);
+s3=s2 reflectedabout(z100,z101);
+s13=reverse s2 reflectedabout(z102,z103);
+s14=reverse s3 reflectedabout(z102,z103);
+fill s13;
+fill s14;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky pln‚ naho©e u©¡znut‚ smˆ©uj¡c¡ doleva %%%%%%%%%%
+beginchar(5,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(13u,67u); z2=(2u,76u); z3=(13u,84u); z4=(24u,76u);
+z5=(13u,21u); z6=(2u,29u); z7=(13u,38u); z8=(24u,29u);
+z10=(24u,71u);
+z11=(23.5u,69u); z12=(26u,67u); z13=(35u,66u); z14=(110u,55u);
+z15=(104u,50u); z16=(100u,48u); z17=(95u,46.5u); z18=(90u,46u);
+z19=(39u,51u); z20=(38u,57u);
+z21=(35u,60u); z22=(29u,63u); z23=(20u,64.5u); z24=(13u,65u); z25=(u,u);
+z26=(13u,60u); z27=(u,u); z28=(u,u); z29=(u,u);
+z30=(13u,40u);
+z31=(20u,40.5u); z32=(27u,42u); z33=(33u,45u); z34=(37u,49.5u); z35=(60u,80u);
+z36=(73u,79u); z37=(44.5u,47u); z38=(39u,43u); z39=(33u,40.5u); z40=(28u,39.5u);
+z41=(24u,37u); z42=(24u,35u); z43=(25u,33u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z5{dir 180}..z6..z7..z8..{dir 180}z5;
+%s5=reverse s0 reflectedabout(z100,z101);
+%s6=reverse s1 reflectedabout(z100,z101);
+s11=reverse s0 reflectedabout(z102,z103);
+s12=reverse s1 reflectedabout(z102,z103);
+draw s11;
+draw s12;
+
+pickup pencircle scaled .4u;
+s2=(z24--z10--(z10+(0,-eps))..z11..z12..{z14-z13}z13
+--z14..z15..z16..z17..z18--z19..z20..z21..z22..z23..z24--cycle);
+s3=(z43--z30..z31..z32..z33..z34{z35-z34}--z35--z36--z37..z38..z39
+..z40..z41..z42..(z43+(0,eps))--cycle);
+%s7=s2 reflectedabout(z100,z101);
+%s8=s3 reflectedabout(z100,z101);
+s13=s2 reflectedabout(z102,z103);
+s14=s3 reflectedabout(z102,z103);
+fill s13;
+fill s14;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky dut‚ velik‚ kompletn¡ smˆ©uj¡c¡ doprava %%%%%%%%
+beginchar(6,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(17u,67u); z2=(7u,75u); z3=(17u,83u); z4=(27u,75u);
+z5=(17u,60u); z6=(0u,75u); z7=(17u,90u); z8=(34u,75u);
+z9=(32.5u,68u); z10=(22u,60.5u);
+z11=(33u,67u); z12=(35u,66u); z13=(44u,66u); z14=(49u,68u);
+z15=(110u,10u); z16=(106u,7u); z17=(100u,5u); z18=(92u,6u);
+z19=(85u,10u); z20=(40u,50u); z21=(38u,56u); z22=(35u,59u);
+z23=(30u,60.5u); z24=(54.5u,50u);
+z25=(56u,62u); z26=(67u,51u); z27=(54u,38u); z28=(41u,49u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z10..z5..z6..z7..z8..z9;
+s2=(z9..z11..z12..z13..z14--z15..z16..z17..z18..z19
+--z20..z21..z22..z23..z10);
+s3=z25--z26;
+s30=z28--z27;
+s4=s2 reflectedabout(z100,z101);
+s5=reverse s0 reflectedabout(z100,z101);
+s6=reverse s1 reflectedabout(z100,z101);
+draw s0;
+draw s1;
+draw s2;
+pickup pencircle scaled 5u;
+erase draw s3;
+erase draw s30;
+pickup pencircle scaled 4u;
+draw s4;
+draw s5;
+draw s6;
+pickup pencircle scaled 3u;
+draw fullcircle scaled 9u shifted z24;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% N–‘ky dut‚ velik‚ kompletn¡ smˆ©uj¡c¡ doprava %%%%%%%%
+beginchar(7,110u#,100u#,0);
+path s[];
+z0=(55u,50u); z100=(0u,50u); z101=(110u,50u); z102=(55u,0u); z103=(55u,100u);
+z1=(17u,67u); z2=(7u,75u); z3=(17u,83u); z4=(27u,75u);
+z5=(17u,60u); z6=(0u,75u); z7=(17u,90u); z8=(34u,75u);
+z9=(32.5u,68u); z10=(22u,60.5u);
+z11=(33u,67u); z12=(35u,66u); z13=(44u,66u); z14=(49u,68u);
+z15=(110u,10u); z16=(106u,7u); z17=(100u,5u); z18=(92u,6u);
+z19=(85u,10u); z20=(40u,50u); z21=(38u,56u); z22=(35u,59u);
+z23=(30u,60.5u); z24=(54.5u,50u);
+z25=(56u,62u); z26=(67u,51u); z27=(54u,38u); z28=(41u,49u);
+
+pickup pencircle scaled 4u;
+s0=z1{dir 180}..z2..z3..z4..{dir 180}z1;
+s1=z10..z5..z6..z7..z8..z9;
+s2=(z9..z11..z12..z13..z14--z15..z16..z17..z18..z19
+--z20..z21..z22..z23..z10);
+s3=z25--z26;
+s30=z28--z27;
+s4=s2 reflectedabout(z100,z101);
+s5=reverse s0 reflectedabout(z100,z101);
+s6=reverse s1 reflectedabout(z100,z101);
+
+s10=s0 reflectedabout(z102,z103);
+s11=s1 reflectedabout(z102,z103);
+s12=s2 reflectedabout(z102,z103);
+s13=s3 reflectedabout(z102,z103);
+s130=s30 reflectedabout(z102,z103);
+s14=s4 reflectedabout(z102,z103);
+s15=s5 reflectedabout(z102,z103);
+s16=s6 reflectedabout(z102,z103);
+
+draw s10;
+draw s11;
+draw s12;
+pickup pencircle scaled 5u;
+erase draw s13;
+erase draw s130;
+pickup pencircle scaled 4u;
+draw s14;
+draw s15;
+draw s16;
+pickup pencircle scaled 3u;
+draw fullcircle scaled 9u shifted z24 reflectedabout(z102,z103);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Telefon %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(8,100u#,100u#,0);
+path s[];
+z0=(55u,50u);
+z1=(50u,10u); z2=(21u,10u); z30=(20u,12u); z3=(20u,22u); z4=(21u,27u);
+z5=(30u,51u); z6=(32.5u,55u); z7=(35u,57u); z8=(40u,57u); z9=(50u,57u);
+z10=(50u,37u); z11=(50u,70u); z40=(47u,70u); z12=(40u,69.5u); z13=(31u,69u);
+z14=(28.5u,68u); z15=(27u,63u); z16=(27u,57u); z17=(26u,53.5u); z18=(23u,52u);
+z19=(9u,52u); z20=(6u,53.5u); z21=(5u,57u); z22=(5u,69u); z23=(7u,75u);
+z24=(12u,79u); z25=(30u,82.5u); z26=(47u,84u); z27=(50u,84u); z50=(16u,56u);
+
+pickup pencircle scaled 3u;
+s0=z1--z2..z30--z3..z4--z5..z6..z7--z25--z8--z9--z1--cycle;
+s1=z11--z12..z13..z14..{z16-z15}z15--z16..z17..z18--z19..z20..z21--z22..z23..z24..z25
+..z26--z27--z11--cycle;
+s2=z21..z50..z16;
+s5=s0 reflectedabout(z1,z27);
+s6=s1 reflectedabout(z1,z27);
+s7=s2 reflectedabout(z1,z27);
+fill s0;
+fill s1;
+fill s5;
+fill s6;
+erase draw s2;
+erase draw s7;
+pickup pencircle scaled 32 u;
+erase drawdot z10;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Sluch tko v kruhu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(9,100u#,100u#,0);
+path s[];
+z0=(50u,50u); z100=(0u,50u); z101=(100u,50u);
+z1=(46u,53u); z2=(37u,59u); z3=(48u,75u); z4=(55u,83u); z5=(60u,86u);
+z6=(64u,86.5u); z7=(67u,86u); z8=(76u,81u); z9=(77.5u,79u);
+z10=(77.5u,77u);
+z11=(76u,73u); z12=(72u,68u); z13=(70u,67.5u); z14=(68u,68u);
+z15=(64u,70u); z16=(61u,71u); z17=(58u,69u); z18=(52u,62u); z19=(72u,83.5u);
+z20=(67u,69u); z21=(72u,75u); z22=(75u,83u);
+z30=(30u,28u); z31=(24u,20u); z32=(33u,5u); z33=(50u,2u);
+z50=(16u,19u); z51=(2u,50u); z52=(50u,98u); z53=(98u,50u);
+
+pickup pencircle scaled 4u;
+s0=z1--z2..z3..z4..z5..z6..z7..z19..z8..z9..z10..z11..z12..z13..z14..z15..z16
+..z17..z18..z1--cycle;
+s1=z20..z21..z22;
+s2=z30..z31..z32..z33..z53..z52..z51..z50;
+s5=s0 reflectedabout(z1,z2);
+s6=reverse s1 reflectedabout(z1,z2);
+
+fill s0;
+fill s5;
+draw s2;
+pickup pencircle scaled 3u;
+erase draw s1;
+erase draw s6;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Magnetofonov  c¡vka %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(10,100u#,100u#,0);
+z0=(50u,50u); z1=(37.5u,50u); z2=(62.5u,50u); z3=(42.5u,98u); z4=(57.5u,98u);
+
+pickup pencircle scaled 4u;
+draw fullcircle scaled 96u shifted z0;
+fill (z2--z1--z3--z4--z2--cycle);
+fill (z2--z1--z3--z4--z2--cycle) rotatedaround(z0,120);
+fill (z2--z1--z3--z4--z2--cycle) rotatedaround(z0,240);
+erase draw fullcircle scaled 88u shifted z0;
+erase draw fullcircle scaled 34u shifted z0;
+pickup pencircle scaled 30u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Letadlo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(11,100u#,100u#,0);
+path s[];
+z0=(50u,50u); z100=(0u,50u); z101=(100u,50u);
+z1=(0u,50u); z2=(2u,51u); z3=(6u,52u); z4=(18u,53.5u); z5=(44u,56u);
+z6=(67u,57u); z7=(80u,57u); z8=(86u,56.5u); z9=(94u,55.5u); z10=(99u,53u);
+z11=(100u,50u); z12=(0u,70u); z13=(5u,70u); z14=(45u,58u);
+z15=(42u,71u); z16=(30u,100u); z17=(35u,100u); z18=(37u,99.5u);
+z19=(39u,98u); z20=(42u,90u); z21=(50u,90u); z22=(49u,75u); z23=(60.5u,75u);
+z25=(44u,55u); z26=(67u,56u); z33=(6u,51.5u); z34=(18u,53u);
+pickup pencircle scaled 6u;
+s0=z1..z2..z3..z4..z5..z6..z7..z8..z9..z10..z11--z1--cycle;
+s1=z33--z12--z13--z34..z33--cycle;
+s2=z25--z14--z15--z16--z17..z18..z19--z26..z25--cycle;
+s3=z20--z21;
+s4=z22--z23;
+s5=s0 reflectedabout(z100,z101);
+s6=s1 reflectedabout(z100,z101);
+s7=s2 reflectedabout(z100,z101);
+s8=s3 reflectedabout(z100,z101);
+s9=s4 reflectedabout(z100,z101);
+fill s0;
+fill s1;
+fill s2;
+draw s3;
+draw s4;
+draw s8;
+draw s9;
+fill s5;
+fill s6;
+fill s7;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Dopis %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(12,75u#,100u#,0);
+z1=(0u,25u); z2=(0u,75u);
+z3=(75u,75u); z4=(75u,25u);
+z5=(37.5u,50u); z6=(37.5u,54u); z7=(37.5u,46u);
+
+pickup pencircle scaled 4u;
+draw z1--z2--z3--z4--z1;
+draw z1--z6--z4;
+draw z2--z7--z3;
+pickup pencircle scaled 18u;
+drawdot z5;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bodek =
+z0=(7u,7u+25u); z1=(5u,9u+25u); z2=(0u,27u+25u); z3=(7u,45u+25u);
+z4=(9u,47u+25u); z5=(15u,47u+25u); z6=(13u,45u+25u); z7=(6u,27u+25u);
+z8=(11u,9u+25u); z9=(13u,7u+25u);
+z11=(15u,12u+25u); z12=(11u,22u+25u); z13=(18u,42.5u+25u); z14=(25u,42u+25u);
+z15=(29u,44u+25u); z16=(37u,50u+25u); z17=(46u,53.5u+25u); z18=(60u,52.5u+25u);
+z19=(72u,50u+25u); z20=(81u,48u+25u); z21=(110u,34u+25u); z22=(98u,30u+25u);
+z23=(76u,35u+25u); z24=(70u,10u+25u); z25=(65u,1u+25u);
+z26=(50u,0u+25u); z27=(40u,2u+25u); z28=(30u,8u+25u); z29=(25u,10u+25u);
+z260=(60u,0u+25u); z270=(55u,0u+25u); z230=(72u,20u+25u); z240=(71u,6u+25u);
+z30=(72u,28u+25u); z31=(69u,16u+25u); z32=(65u,6.5u+25u);
+z50=(85u,47u+25u); z51=(100u,40.5u+25u); z52=(109u,35.5u+25u);
+z53=(107u,30u+25u); z54=(88u,33u+25u); z55=(85u,34u+25u);
+enddef;
+
+def rucka =
+pickup pencircle scaled .2u;
+fill (z0..z1..z2..z3..z4--z5..z6..z7..z8..z9--z0..cycle);
+fill (z11..z12..z13--z14..{z16-z15}z15..z16..{z18-z17}z17--z18{z18-z17}..z19
+--z20..z50--z51{z51-z50}..z52..z21..z53..z22..z54..z55--z23--z230--z24..z240
+..z25..z260--z270..z26..z27..z28..z29--z11--cycle);
+pickup pencircle scaled 16u;
+drawdot z30;
+pickup pencircle scaled 14u;
+drawdot z31;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Ruka ‡ern  ukazuj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(13,110u#,100u#,0);
+
+bodek;
+rucka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Ruka ‡ern  ukazuj¡c¡ doleva %%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(14,110u#,100u#,0);
+
+bodek;
+rucka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform rotated 30 shifted (37.5u,-15u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Ruka ‡ern  ukazuj¡c¡ ¨ikmo doprava nahoru %%%%%%%%%%%%
+beginchar(15,110u#,100u#,0); %95u#,0);
+
+bodek;
+rucka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Ruka ‡ern  ukazuj¡c¡ ¨ikmo doleva nahoru %%%%%%%%%%%%%
+beginchar(16,110u#,100u#,0); %95u#,0);
+
+bodek;
+rucka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-147.5u,15u)
+rotated -30;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def body =
+z0=(14u,11u+25u);
+z1=(0u,0u+25u); z2=(0u,48u+25u); z3=(10u,48u+25u); z300=(10u,44u+25u);z4=(10u,5u+25u);z5=(10u,0u+25u);
+z6=(20u,44u+25u); z7=(20u,40u+25u); z8=(20u,12u+25u); z9=(20u,5u+25u);
+z10=(25u,40u+25u); z11=(37u,48u+25u); z12=(45u,50u+25u); z13=(58u,50u+25u); z14=(64u,48u+25u);
+z15=(76u,35u+25u); z16=(70u,28u+25u); z17=(60u,31u+25u); z18=(54u,37u+25u); z19=(52u,42u+25u);
+z20=(48u,35u+25u); z100=(28u,41u+25u); z160=(76u,31u+25u);
+%z21=(98u,48u+25u); z22=(110u,42u+25u); z23=(98u,35u+25u);z250=(60u,18.5u+25u);
+z21=(80u,48u+25u); z22=(110u,42u+25u); z23=(80u,35u+25u);z250=(60u,18.5u+25u);
+z24=(81u,28u+25u); z240=(76u,22u+25u); z25=(70u,20u+25u); z26=(52u,20u+25u);
+z27=(50u,25u+25u); z28=(55u,30u+25u); z29=(40u,20u+25u); z30=(30u,25u+25u);
+z31=(79u,17u+25u); z32=(72u,10u+25u); z33=(50u,10u+25u); z34=(45u,15u+25u);
+z320=(60u,8u+25u);
+z35=(75u,6u+25u); z36=(70u,1.5u+25u); z37=(60u,0u+25u); z38=(50u,2u+25u); z39=(45u,7u+25u);
+z40=(40u,3u+25u); z41=(30u,10u+25u); z42=(25u,12u+25u);
+z51=(98u,47u+25u); z53=(98u,36u+25u);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ruka =
+pickup pencircle scaled 4u;
+fill z1--z2--z3--z5--cycle; % ruk v
+draw z300--z6--z9--z4; % ko¨ile
+draw (z7--z10{z10-z7}..z100--z11..{z13-z12}z12--z13{z13-z12}
+..z14--z15{z15-z14}..z160..z16..z16..z17..z18..z19); % palec 1
+draw z18..z20; % palec 2
+draw z14--z21..z51{z51-z21}..z22..{z23-z53}z53..z23--z15; % ukazov ‡ek
+draw (z15..z24..z240..z25..z250..z26..z27..z28..z17); % prost©edn¡‡ek
+draw z27..z29..z30; % b©¡¨ko
+draw (z240..z31..z32..z320..z33..z34..z26); %
+draw z32..z35..z36..z37..z38..z39..z33;
+draw z38..z40..z41..z42--z8;
+pickup pencircle scaled 5u;
+drawdot z0; % knofl¡k
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek ruky ukazuj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%
+beginchar(17,110u#,100u#,0);
+
+body;
+ruka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Obr zek ruky ukazuj¡c¡ doleva %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(18,110u#,100u#,0);
+
+body;
+ruka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform rotated 30 shifted (42.5u,-15u); %(27.5u,0u); % shifted (0u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek ruky ukazuj¡c¡ ¨ikmo doprava nahoru %%%%%%%%%%
+beginchar(19,110u#,100u#,0);
+
+body;
+ruka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek ruky ukazuj¡c¡ ¨ikmo doleva nahoru %%%%%%%%%%%
+beginchar(20,110u#,100u#,0);
+
+body;
+ruka;
+
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-152.5u,15u)
+rotated -30;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bodiky =
+z200=(1u,26u); z300=(10u,29u); z400=(15u,11u);z500=(15u,23u);z600=(19u,12u);
+z1=(25u,0u); z2=(0u,25u); z3=(8u,30u); z4=(20u,14u); z5=(10u,13u);
+z6=(4u,20u);
+z110=(24u,29u);
+z7=(8u,32u); z8=(8u,35.5u); z9=(14u,40u);
+z10=(18u,39u); z11=(20u,37u); z12=(27u,20u); z13=(25u,17u); z14=(20u,18u);
+z15=(30u,8u); z16=(40u,33u);
+z17=(27u,32u); z18=(22u,45u); z19=(29u,45u);
+z20=(43u,45u); % z100=(28u,41u); z160=(76u,31u);
+z21=(47u,44u); z22=(49u,40u); z23=(50u,25u);
+z24=(7u,72u); z25=(11u,80u); z26=(18u,76u);
+z27=(39u,75u); z28=(45u,80u); z29=(50u,73u);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Obr zek ruky ukazuj¡c¡ V %%%%%
+beginchar(21,50u#,80u#,0);
+bodiky;
+def vecko =
+pickup pencircle scaled 4u;
+draw z23..z1..z2;
+draw z2..z200..z3..z300..{z500-z300}z500{z4-z500}..z4..z600..z400..z5..z6;
+draw z300..z7..z8..tension 2 and 5..z9..z10..tension 1.5..z110..z12..z13..z14..z500;
+draw z15..z12..z16;
+draw z16..z17..z11..z18..z19..z20..z21..z22..z23;
+draw z11--z24..z25..z26--z19;
+draw z19--z27..z28..z29--z20;
+
+enddef;
+vecko;
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%%% Obr zek p¡¨¡c¡ ruky %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(22,106u#,100u#,0);
+
+z1=(1u,1u+12.5u); z2=(3u,6u+12.5u); z3=(4u,4u+12.5u); z4=(5.5u,3.5u+12.5u); z5=(6u,14u+12.5u);
+z6=(8u,9u+12.5u); z7=(13u,7u+12.5u); z8=(61u,73u+12.5u); z9=(67u,72u+12.5u); z10=(68u,66u+12.5u);
+
+z11=(25u,35u+12.5u); z12=(20u,24u+12.5u); z13=(11u,19u+12.5u); z14=(9u,21u+12.5u); z15=(8u,23u+12.5u);
+z16=(9u,23u+12.5u); z17=(14u,25u+12.5u); z18=(16u,30u+12.5u); z19=(13.5u,32u+12.5u); z20=(13u,34u+12.5u);
+z21=(19u,48u+12.5u); z22=(22u,52u+12.5u); z23=(40u,63u+12.5u); z24=(45u,63u+12.5u); z25=(82u,45u+12.5u);
+z26=(88u,43u+12.5u); z27=(93u,43u+12.5u); z28=(93u,46u+12.5u); z29=(102u,46u+12.5u); z30=(105u,30u+12.5u);
+z31=(100u,6u+12.5u); z32=(90u,6u+12.5u); z33=(90u,14u+12.5u); z34=(92u,15u+12.5u); z35=(95u,30u+12.5u);
+
+.z36=(86u,15u+12.5u); z37=(82u,12u+12.5u); z38=(77u,10u+12.5u); z39=(62u,10u+12.5u); z40=(50u,12u+12.5u);
+z41=(40u,11u+12.5u); z42=(32u,11u+12.5u); z43=(30u,12u+12.5u); z44=(29u,14u+12.5u); z45=(29u,17u+12.5u);
+z46=(28u,19u+12.5u); z47=(23u,18u+12.5u); z48=(21.5u,14u+12.5u); z49=(24u,11u+12.5u); z50=(18u,13u+12.5u);
+z51=(19.5u,20.5u+12.5u); z52=(30u,25.5u+12.5u); z53=(37u,25u+12.5u); z54=(39u,24u+12.5u); z55=(42u,27u+12.5u);
+z56=(51u,29u+12.5u); z57=(55u,34u+12.5u); z58=(47u,40u+12.5u); z59=(45u,42u+12.5u);
+z70=(29u,19u+12.5u); z71=(16u,20u+12.5u);
+z60=(39u,13u+12.5u); z61=(38u,17u+12.5u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+pickup pencircle scaled 3.5u;
+draw z5--z1--z7;
+fill (z1--z2..z3..z4--z1--cycle);
+draw z11..z12..z71..z13..z14..z16;
+draw z16..{z18-z17}z17--z18;
+pickup pencircle scaled 3u;
+draw z16..z19;
+pickup pencircle scaled 3.5u;
+draw z18..z19..z20--z21..z22--z23..z24..z25..z26--z27;
+draw z27--z28..z35..z32--z33;
+draw z28--z29..z30..z31--z32;
+filldraw (z5--z13..z71..z12..z11--z8..z9..z10--z52..tension 1.15 and .75..z51
+..tension .75 and .85..z50--z7..z6..z5--cycle);
+draw z34--z36{z36-z34}..z37..z38..z39..z40..z41..z42..z43..z44..z45..z70;
+draw z70..z46..z47..z48..z49--z43;
+draw z49..z50..z51..z52..z53..z54;
+draw z53..z55..z56--z57;
+draw z55--z58{z58-z55}..z59;
+draw z41..z60..z61;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def bodicky=
+z1=(0u,38u); z2=(0u,62u); z3=(14u,75u); z4=(28u,62u); z5=(28u,38u);
+z6=(14u,25u); z7=(14u,50u); z8=(76u,25u); z9=(83u,38u); z10=(85u,50u);
+z11=(83u,62u); z12=(76u,75u); z13=(109u,50u); z14=(97u,41u); z15=(100u,50u);
+z16=(97u,59u); z71=(14u,40u); z72=(8u,50u); z73=(14u,60u); z74=(20u,50u);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def tuzka=
+pickup pencircle scaled 4u;
+draw z1--z2--z3--z4--z5--z6--z1--cycle;
+fill (z71{dir 180}..z72..z73..z74..{dir 180}z71..cycle);
+pickup pencircle scaled 4u;
+draw z3--z12;
+draw z4--z11;
+draw z5--z9;
+draw z6--z8;
+draw z8..z9..z10..z11..z12;
+draw z12--z13--z8;
+fill z14..z15..z16--z13--z14..cycle;
+enddef;
+
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%
+beginchar(23,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ doleva %%%%%%%%%%%%%%%%%%%%%%%
+beginchar(24,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform rotated 30 shifted (35u,-15u); %(42.5u,-15u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ ¨ikmo doprava nahoru %%%%%%%%%
+beginchar(25,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ ¨ikmo doleva nahoru %%%%%%%%%%
+beginchar(26,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted
+(-145u,15u) rotated -30; %(-152.5u,15u) rotated -30;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%vvvvvvv%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform rotated -30 shifted (-15u,30u);%(35u,-15u) %(42.5u,-15u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ ¨ikmo doprava dol– %%%%%%%%%%%
+beginchar(27,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Obr zek tu‘ky ukazuj¡c¡ ¨ikmo doleva dol– %%%%%%%%%%%%
+beginchar(28,110u#,100u#,0);
+bodicky;
+tuzka;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted
+(-95u,-30u) rotated 30;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%VVVVVV%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Pero b¡l‚ smˆ©uj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(29,110u#,100u#,0);
+path s[];
+z1=(0u,50u); z2=(17u,67u); z3=(33u,67u); z4=(40u,60u); z5=(45u,67u);
+z6=(47u,75u); z7=(55u,80u); z8=(66u,78u); z9=(109u,50u); z10=(86u,65u);
+z11=(86u,50u); z12=(60u,50u); z20=(34.5u,63u);
+
+pickup pencircle scaled 4u;
+s1=z1..{z3-z2}z2--z3..z20..z4..z5..z6..z7..z8--z10--z9--z12;
+s2=z9--z10--z11--z9--cycle;
+draw s1;
+fill s2;
+s3=s1 reflectedabout(z1,z9);
+s4=s2 reflectedabout(z1,z9);
+draw s3;
+fill s4;
+pickup pencircle scaled 20u;
+draw z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Pero b¡l‚ smˆ©uj¡c¡ doleva %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(30,110u#,100u#,0);
+path s[];
+z1=(0u,50u); z2=(17u,67u); z3=(33u,67u); z4=(40u,60u); z5=(45u,67u);
+z6=(47u,75u); z7=(55u,80u); z8=(66u,78u); z9=(109u,50u); z10=(86u,65u);
+z11=(86u,50u); z12=(60u,50u); z20=(34.5u,63u);
+
+pickup pencircle scaled 4u;
+s1=z1..{z3-z2}z2--z3..z20..z4..z5..z6..z7..z8--z10--z9--z12;
+s2=z9--z10--z11--z9--cycle;
+draw s1;
+fill s2;
+s3=s1 reflectedabout(z1,z9);
+s4=s2 reflectedabout(z1,z9);
+draw s3;
+fill s4;
+pickup pencircle scaled 20u;
+draw z12;
+
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Pero ‡ern‚ smˆ©uj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(31,110u#,100u#,0);
+path s[];
+z1=(0u,50u); z2=(17u,67u); z3=(25u,67u); z4=(40u,57u); z5=(45u,67u);
+z6=(47u,75u); z7=(58u,85u); z8=(70u,80u); z9=(109u,50u); z10=(84u,64u);
+z11=(95u,56u); z12=(60u,50u); z20=(33u,61u); z21=(28u,66u);
+z22=(77u,72u); z23=(67u,50u); z24=(67u,53u); z25=(105u,50u);
+pickup pencircle scaled .2u;
+s1=z1..{z3-z2}z2--z3{z3-z2}..z21..z20..z4..z5..z6..z7..z8..z22..z10..z11..z9--z1--cycle;
+s2=z25--z24--z23--z25--cycle;
+fill s1;
+erase fill s2;
+s3=s1 reflectedabout(z1,z9);
+s4=s2 reflectedabout(z1,z9);
+fill s3;
+erase fill s4;
+pickup pencircle scaled 20u;
+erase draw z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Pero ‡ern‚ smˆ©uj¡c¡ doprava %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(32,110u#,100u#,0);
+path s[];
+z1=(0u,50u); z2=(17u,67u); z3=(25u,67u); z4=(40u,57u); z5=(45u,67u);
+z6=(47u,75u); z7=(58u,85u); z8=(70u,80u); z9=(109u,50u); z10=(84u,64u);
+z11=(95u,56u); z12=(60u,50u); z20=(33u,61u); z21=(28u,66u);
+z22=(77u,72u); z23=(67u,50u); z24=(67u,53u); z25=(105u,50u);
+pickup pencircle scaled .2u;
+s1=z1..{z3-z2}z2--z3..z21..z20..z4..z5..z6..z7..z8..z22..z10..z11..z9--z1--cycle;
+s2=z25--z24--z23--z25--cycle;
+fill s1;
+erase fill s2;
+s3=s1 reflectedabout(z1,z9);
+s4=s2 reflectedabout(z1,z9);
+fill s3;
+erase fill s4;
+pickup pencircle scaled 20u;
+erase draw z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+currenttransform reflectedabout ((110u,0u),(110u,100u)) shifted (-110u,0u);
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% Fajfka tenk  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(33,100u#,100u#,0);
+z0=(50u,50u); z1=(15u,35u); z2=(25u,7u); z3=(52u,50u); z4=(90u,97u);
+z10=(18u,25u); z20=(25.5u,4.5u);
+%pickup pencircle scaled 17.5 u;
+pickup pencircle xscaled 17.5u yscaled 10u rotated 30;
+draw z1..z10..z2;
+pickup pencircle xscaled 10u yscaled 3 u;
+draw (z20..z3..z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Fajfka tu‡n  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(34,100u#,100u#,0);
+z0=(50u,50u); z1=(15u,50u); z2=(18u,20u); z3=(55u,50u); z4=(90u,90u);
+z10=(15u,45u); z20=(19.5u,20u); z21=(25u,25u); z40=(87.5u,88u);
+pickup pencircle xscaled 27.5u yscaled 17.5u rotated 45;
+draw z1..z10..z2;
+pickup pencircle xscaled 18.5u yscaled 7.5u rotated 270;
+draw (z20..z21..z40..z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ pooto‡en˜ o 45 st. tenk˜ %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(35,100u#,100u#,0);
+z0=(50u,50u); z1=(7.5u,7.5u); z2=(7.5u,92.5u); z3=(92.5u,92.5u);
+z4=(92.5u,7.5u);
+
+pickup pensquare scaled 10 u rotated 45;
+draw z1--z3;
+draw z2--z4;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ pooto‡en˜ o 45 st. tu‡n˜ %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(36,100u#,100u#,0);
+z0=(50u,50u); z1=(22.5u,22.5u); z2=(22.5u,77.5u); z3=(77.5u,77.5u);
+z4=(77.5u,22.5u);
+
+pickup pensquare scaled 30 u rotated 45;
+draw z1--z3;
+draw z2--z4;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tenk˜ sklonˆn˜ o 45 st. psac¡ %%%%%%%%%%%%%%%%%%%
+beginchar(37,100u#,100u#,0);
+z0=(50u,50u); z1=(40u,85u); z2=(75u,35u); z3=(45u,50u); z4=(90u,92.5u);
+z10=(52u,65u); z20=(15u,8u);
+
+pickup pencircle xscaled 10u yscaled 20u rotated 350;
+draw z1..z10..z2;
+pickup pencircle xscaled 20u yscaled 10 u rotated 15;
+draw (z20..z3..z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ trojit˜ tu‡n˜ symetrick˜ %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(38,100u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(50u,85u); z2=(50u,15u);
+z3=(15u,50u); z4=(85u,50u);
+
+pickup pensquare scaled 30u;
+draw (z1--z2);
+pickup pensquare scaled 30u;
+draw (z3--z4);
+
+pickup pensquare scaled 22u;
+erase draw (z1--z2);
+pickup pensquare scaled 22u;
+erase draw (z3--z4);
+
+pickup pensquare scaled 14u;
+draw (z1--z2);
+pickup pensquare scaled 14u;
+draw (z3--z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tu‡n˜ symetrick˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(39,100u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(50u,83.5u); z2=(50u,16.5u);
+z3=(16.5u,50u); z4=(83.5u,50u);
+
+pickup pensquare scaled 33u;
+draw (z1--z2);
+pickup pensquare scaled 33u;
+draw (z3--z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tu‡n˜ symetrick˜ s pr zdn˜m st©edem %%%%%%%%%%%%%
+beginchar(40,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,83.5u); z2=(50u,16.5u);
+z3=(16.5u,50u); z4=(83.5u,50u);
+
+pickup pensquare scaled 33u;
+draw (z1--z2);
+pickup pensquare scaled 33u;
+draw (z3--z4);
+erase draw z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tenk˜ symetrick˜ s pr zdn˜m st©edem %%%%%%%%%%%%%
+beginchar(41,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,93u); z2=(50u,7u);
+z3=(7u,50u); z4=(93u,50u);
+
+pickup pensquare scaled 14u;
+draw (z1--z2);
+pickup pensquare scaled 14u;
+draw (z3--z4);
+erase draw z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tenk˜ nesymetrick˜ pln˜ %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(42,66u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(33u,89u); z2=(33u,11u); z3=(11u,66u); z4=(55u,66u);
+z5=(33u,91u); z6=(33u,9u); z7=(9u,66u); z8=(57u,66u);
+z11=(33u,93u); z12=(33u,7u); z13=(7u,66u); z14=(59u,66u);
+
+pickup pensquare scaled 14u;
+draw (z11--z12);
+pickup pensquare scaled 14u;
+draw (z13--z14);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ tenk˜ nesymetrick˜ se st¡nem vpravo %%%%%%%%%%%%%
+beginchar(43,75u#,100u#,0);
+z10=(0u,0u);
+z11=(42u,91u); z12=(33.5u,9u); z13=(66u,66u); z14=(9u,57u);
+z0=(33u,50u);
+z1=(33u,91u); z2=(33u,18u);
+z3=(9u,66u); z4=(57u,66u);
+pickup pensquare scaled 13u rotatedaround (z10,45);
+draw z11; draw z12; draw z13; draw z14;
+pickup pensquare scaled 18u;
+draw (z1--z2) shifted (9u,-9u);
+pickup pensquare scaled 18u;
+draw (z3--z4) shifted (9u,-9u);
+pickup pensquare scaled 18u;
+draw (z1--z2);
+pickup pensquare scaled 18u;
+draw (z3--z4);
+pickup pensquare scaled 10u;
+erase draw (z1--z2);
+pickup pensquare scaled 10u;
+erase draw (z3--z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ trojit˜ tu‡n˜ nesymetrick˜ %%%%%%%%%%%%%%%%%%%%%%
+beginchar(44,66u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(33u,85u); z2=(33u,15u);
+z3=(15u,66u); z4=(51u,66u);
+
+pickup pensquare scaled 30u;
+draw (z1--z2);
+pickup pensquare scaled 30u;
+draw (z3--z4);
+
+pickup pensquare scaled 22u;
+erase draw (z1--z2);
+pickup pensquare scaled 22u;
+erase draw (z3--z4);
+
+pickup pensquare scaled 14u;
+draw (z1--z2);
+pickup pensquare scaled 14u;
+draw (z3--z4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% K©¡‘ trojit˜ tu‡n˜ nesymetrick˜ - varianta %%%%%%%%%%%
+beginchar(45,66u#,100u#,0);
+z10=(0u,0u);
+z0=(33u,50u);
+z1=(33u,85u); z2=(33u,15u); z3=(15u,66u); z4=(51u,66u);
+z5=(33u,89u); z6=(33u,11u); z7=(11u,66u); z8=(55u,66u);
+z11=(33u,93u); z12=(33u,7u); z13=(7u,66u); z14=(59u,66u);
+
+pickup pensquare scaled 30u;
+draw (z1--z2);
+pickup pensquare scaled 30u;
+draw (z3--z4);
+
+pickup pensquare scaled 22u;
+erase draw (z5--z6);
+pickup pensquare scaled 22u;
+erase draw (z7--z8);
+
+pickup pensquare scaled 14u;
+draw (z11--z12);
+pickup pensquare scaled 14u;
+draw (z13--z14);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Malt‚zsk˜ k©¡‘ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(46,100u#,100u#,0);
+z0=(50u,50u); z1=(48u,50u); z2=(48u,60u); z3=(20u,88u); z4=(20u,90u);
+z5=(80u,90u); z6=(80u,88u); z7=(52u,60u); z8=(52u,50u);
+def malt = (z1--z2{z2-z1}..z3--z4--z5--z6..{z8-z7}z7--z8--z1--cycle)
+enddef;
+pickup pencircle scaled 4u;
+fill malt;
+fill malt rotatedaround(z0,90);
+fill malt rotatedaround(z0,180);
+fill malt rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda Davidova ‡ern  %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(47,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,60);
+z3=z1 rotatedaround(z0,120);
+z4=z1 rotatedaround(z0,180);
+z5=z1 rotatedaround(z0,240);
+z6=z1 rotatedaround(z0,300);
+
+pickup pencircle scaled 2u;
+fill z1--z3--z5--z1--cycle;
+fill z2--z4--z6--z2--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda Davidova b¡l  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(48,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,60);
+z3=z1 rotatedaround(z0,120);
+z4=z1 rotatedaround(z0,180);
+z5=z1 rotatedaround(z0,240);
+z6=z1 rotatedaround(z0,300);
+
+pickup pencircle scaled 4u;
+draw z1--z3--z5--z1--cycle;
+draw z2--z4--z6--z2--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%% XXXXXXXXXXXXXXXXXXXXXXX %%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek pln˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(49,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(43u,93u); z3=(47u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(53u,70u); z9=(57u,93u);
+
+def rameno =(z6--z5..z4..z3..z2..z1..z9..z8..z7..z6--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+filldraw rameno;
+filldraw rameno rotatedaround(z0,90);
+filldraw rameno rotatedaround(z0,180);
+filldraw rameno rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek pln˜ s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%%
+beginchar(50,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(38u,86u); z3=(48u,70u); z4=(49.25u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(50.75u,60u); z8=(52u,70u); z9=(62u,86u);
+%z2=(43u,93u); z3=(47u,70u); z4=(49u,60u); z5=(49.75u,50u);
+%z6=(50.25u,50u); z7=(51u,60u); z8=(53u,70u); z9=(57u,93u);
+
+def rameno =(z6--z5..z4{z4-z5}..z3..z2..z1..z9..z8..{z6-z7}z7..z6--cycle)
+enddef;
+pickup pencircle scaled .3 u;
+filldraw rameno;
+filldraw rameno rotatedaround(z0,90);
+filldraw rameno rotatedaround(z0,180);
+filldraw rameno rotatedaround(z0,270);
+pickup pencircle scaled 12 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek pln˜ tu‡n˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(51,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,99u);
+z2=(34u,78u); z3=(48u,59u); z4=(49.25u,55u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(50.75u,55u); z8=(52u,59u); z9=(66u,78u);
+
+def rameno =(z6--z5..z4{z4-z5}..z3..z2..z1..z9..z8..{z6-z7}z7..z6--cycle)
+enddef;
+pickup pencircle scaled 2 u;
+filldraw rameno;
+filldraw rameno rotatedaround(z0,90);
+filldraw rameno rotatedaround(z0,180);
+filldraw rameno rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©n sobn˜ trojl¡stek na k©¡‘i %%%%%%%%%%%%%%%%%%%%%%
+beginchar(52,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,92u); z2=(50u,8u);
+z3=(42u,80u); z4=(58u,80u);
+
+pickup pencircle scaled 4 u;
+draw (z1--z2);
+draw (z1--z2) rotatedaround(z0,90);
+pickup pencircle scaled 16 u;
+drawdot z1;
+drawdot z3;
+drawdot z4;
+drawdot z1 rotatedaround(z0,90);
+drawdot z3 rotatedaround(z0,90);
+drawdot z4 rotatedaround(z0,90);
+drawdot z1 rotatedaround(z0,180);
+drawdot z3 rotatedaround(z0,180);
+drawdot z4 rotatedaround(z0,180);
+drawdot z1 rotatedaround(z0,270);
+drawdot z3 rotatedaround(z0,270);
+drawdot z4 rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Koso‡tverec vydut˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(53,100u#,100u#,0);
+z0=(50u,50u);
+z1=(-5u,-5u); z2=(105u,-5u); z3=(50u,100u); z4=(-5u,105u); z5=(105u,105u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 2u;
+fill (z6--z8--z3--z7--z6--cycle);
+pickup pencircle scaled 109.5u;
+erase drawdot z1;
+erase drawdot z2;
+erase drawdot z4;
+erase drawdot z5;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Koso‡tverec vydut˜ s b¡lou hvˆzdou uvnit© %%%%%%%%%%%%
+beginchar(54,100u#,100u#,0);
+z0=(50u,50u);
+z1=(-5u,-5u); z2=(105u,-5u); z3=(50u,100u); z4=(-5u,105u); z5=(105u,105u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+z9=(50u,90u); z10=(50u,62u); z30=(50u,74u);
+
+z11=z10 rotatedaround(z0,45);
+z12=z10 rotatedaround(z0,315);
+z13=z10 rotatedaround(z0,135);
+z14=z10 rotatedaround(z0,225);
+
+z15=z9 rotatedaround(z0,90);
+z16=z9 rotatedaround(z0,180);
+z17=z9 rotatedaround(z0,270);
+
+z20=z30 rotatedaround(z0,7.5);
+z21=z30 rotatedaround(z0,82.5);
+z22=z30 rotatedaround(z0,97.5);
+z23=z30 rotatedaround(z0,172.5);
+z24=z30 rotatedaround(z0,187.5);
+z25=z30 rotatedaround(z0,262.5);
+z26=z30 rotatedaround(z0,277.5);
+z27=z30 rotatedaround(z0,352.5);
+
+pickup pencircle scaled 2u;
+fill (z6--z8--z3--z7--z6--cycle);
+erase fill (z9--z20--z11--z21--z15--z22--z13--z23--z16--z24--z14
+--z25--z17--z26--z12--z27--z9--cycle);
+pickup pencircle scaled 109.5u;
+erase drawdot z1;
+erase drawdot z2;
+erase drawdot z4;
+erase drawdot z5;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  b¡l  - pentagram %%%%%%%%%%%%%%%%%
+beginchar(55,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u); z6=(50u,0u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+draw z1--z3--z5--z2--z4--z1--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  ‡ern  %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(56,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(57,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,90u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  b¡l  v ‡ern‚m kruhu %%%%%%%%%%%%%%
+beginchar(58,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 100u;
+drawdot z0;
+pickup pencircle scaled 4u;
+erase fill z1--z3--z5--z2--z4--z1--cycle;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  ‡ern  s pr zdn˜m st©edem %%%%%%%%%
+beginchar(59,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+pickup pencircle scaled 36u;
+erase drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  s ‡ern˜m st©edem %%%%%%%%%%%%%%%%%%%%%
+beginchar(60,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,90u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+pickup pencircle scaled 34u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  trojit  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(61,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,90u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+z11=(50u,80u);
+z12=z11 rotatedaround(z0,72);
+z13=z11 rotatedaround(z0,144);
+z14=z11 rotatedaround(z0,216);
+z15=z11 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+fill z11--z13--z15--z12--z14--z11--cycle;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  trojit  tu‡n  %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(62,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,85u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+z11=(50u,70u);
+z12=z11 rotatedaround(z0,72);
+z13=z11 rotatedaround(z0,144);
+z14=z11 rotatedaround(z0,216);
+z15=z11 rotatedaround(z0,288);
+
+pickup pencircle scaled 4u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+fill z11--z13--z15--z12--z14--z11--cycle;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  se st¡novan˜mi rameny %%%%%%%%%%%%%%%%
+beginchar(63,100u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,98u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,68u);
+z7=z6 rotatedaround(z0,36);
+z8=z6 rotatedaround(z0,108);
+z9=z6 rotatedaround(z0,180);
+z10=z6 rotatedaround(z0,252);
+z11=z6 rotatedaround(z0,324);
+
+pickup pencircle scaled 4u;
+draw z1--z7--z2--z8--z3--z9--z4--z10--z5--z11--z1--cycle;
+pickup pencircle scaled .1u;
+filldraw (z0--z11--z1--cycle);
+filldraw (z0--z11--z1--cycle) rotatedaround (z0,72);
+filldraw (z0--z11--z1--cycle) rotatedaround (z0,144);
+filldraw (z0--z11--z1--cycle) rotatedaround (z0,216);
+filldraw (z0--z11--z1--cycle) rotatedaround (z0,288);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzda pˆtic¡p  se st¡nem vpravo %%%%%%%%%%%%%%%%%%%%%
+beginchar(64,110u#,100u#,0);
+
+z0=(50u,50u);
+z1=(50u,100u);
+z2=z1 rotatedaround(z0,72);
+z3=z1 rotatedaround(z0,144);
+z4=z1 rotatedaround(z0,216);
+z5=z1 rotatedaround(z0,288);
+z6=(50u,90u);
+z7=z6 rotatedaround(z0,72);
+z8=z6 rotatedaround(z0,144);
+z9=z6 rotatedaround(z0,216);
+z10=z6 rotatedaround(z0,288);
+z20=z1 shifted (3.8u,0u);
+z21=z4 shifted (3.8u,0u);
+z22=z5 shifted (4.8u,0u);
+z23=z3 shifted (4.8u,0u);
+
+pickup pencircle xscaled 8u yscaled 0u;
+draw z20--z21;
+pickup pencircle xscaled 10u yscaled 0u;
+draw z22--z23;
+
+pickup pencircle scaled 2u;
+fill z1--z3--z5--z2--z4--z1--cycle;
+erase fill (z6--z8--z10--z7--z9--z6--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzdice ¨estic¡p  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(65,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,100u); z6=(50u,0u);
+
+pickup pencircle xscaled 20u yscaled 0u;
+draw (z1--z6);
+pickup pencircle xscaled 20u yscaled 0u rotatedaround (z10,60);
+draw (z1--z6) rotatedaround (z0,60);
+pickup pencircle xscaled 20u yscaled 0u rotatedaround (z10,120);
+draw (z1--z6) rotatedaround (z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzdice ¨estic¡p  s pr zdn˜m st©edem %%%%%%%%%%%%%%%%
+beginchar(66,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,100u); z2=(50u,64u);
+z3=(50u,36u); z4=(50u,0u);
+
+pickup pencircle xscaled 15u yscaled 0u;
+draw (z1--z2);
+draw (z3--z4);
+pickup pencircle xscaled 15u yscaled 0u rotatedaround (z10,60);
+draw (z1--z2) rotatedaround (z0,60);
+draw (z3--z4) rotatedaround (z0,60);
+pickup pencircle xscaled 15u yscaled 0u rotatedaround (z10,120);
+draw (z1--z2) rotatedaround (z0,120);
+draw (z3--z4) rotatedaround (z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzdice ¨estic¡p  tenk  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(67,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,100u); z2=(50u,64u);
+z3=(50u,36u); z4=(50u,0u);
+
+pickup pencircle xscaled 4u yscaled 0u;
+draw (z1--z4);
+pickup pencircle xscaled 4u yscaled 0u rotatedaround (z10,60);
+draw (z1--z4) rotatedaround (z0,60);
+pickup pencircle xscaled 4u yscaled 0u rotatedaround (z10,120);
+draw (z1--z4) rotatedaround (z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Hvˆzdice ¨estic¡p  tenk  s pr zdn˜m st©edem %%%%%%%%%%
+beginchar(68,100u#,100u#,0);
+z10=(0u,0u);
+z0=(50u,50u);
+z1=(50u,100u); z2=(50u,64u);
+z3=(50u,36u); z4=(50u,0u);
+
+pickup pencircle xscaled 4u yscaled 0u;
+draw (z1--z2);
+draw (z3--z4);
+pickup pencircle xscaled 4u yscaled 0u rotatedaround (z10,60);
+draw (z1--z2) rotatedaround (z0,60);
+draw (z3--z4) rotatedaround (z0,60);
+pickup pencircle xscaled 4u yscaled 0u rotatedaround (z10,120);
+draw (z1--z2) rotatedaround (z0,120);
+draw (z3--z4) rotatedaround (z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Za‡ tek obr zk– se spr vn˜mi ‡arami
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Osmic¡p  hvˆzda pln  tenk  %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(69,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(45u,50u); z3=(55u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,45);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,90);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,135);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,225);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,270);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,315);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmic¡p  hvˆzda pln  tenk  %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(70,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(46u,50u); z3=(54u,50u); z4=(58u,68u);
+z5=(42u,68u); z40=(57u,67u); z50=(43u,67u);
+
+pickup pencircle scaled 4 u;
+fill (z1--z0--z4--z1--cycle);
+draw (z50--z1--z40);
+
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,45);
+draw (z50--z1--z40) rotatedaround(z0,45);
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,90);
+draw (z50--z1--z40) rotatedaround(z0,90);
+
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,135);
+draw (z50--z1--z40) rotatedaround(z0,135);
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,180);
+draw (z50--z1--z40) rotatedaround(z0,180);
+
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,225);
+draw (z50--z1--z40) rotatedaround(z0,225);
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,270);
+draw (z50--z1--z40) rotatedaround(z0,270);
+
+fill (z1--z0--z4--z1--cycle) rotatedaround(z0,315);
+draw (z50--z1--z40) rotatedaround(z0,315);
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estic¡p  hvˆzda pln  st©edn¡ %%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(71,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(40u,50u); z3=(60u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,60);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,120);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,240);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,300);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmic¡p  hvˆzda pln  st©edn¡ %%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(72,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(40u,50u); z3=(60u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,45);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,90);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,135);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,225);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,270);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,315);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmic¡p  hvˆzda pln  tu‡n  %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(73,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(32u,50u); z3=(68u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,45);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,90);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,135);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,225);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,270);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,315);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Dvan ctic¡p  hvˆzda pln  st©edn¡ %%%%%%%%%%%%%%%%%%%%%
+beginchar(74,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(35u,50u); z3=(65u,50u); z4=(50u,0u);
+
+pickup pencircle scaled .33 u;
+fill (z1--z2--z3--z1--cycle);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,30);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,60);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,90);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,120);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,150);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,180);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,210);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,240);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,270);
+
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,300);
+fill (z1--z2--z3--z1--cycle) rotatedaround(z0,330);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estn ctic¡p  hvˆzda pln  st©edn¡ %%%%%%%%%%%%%%%%%%%%
+beginchar(75,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(48u,50u); z3=(52u,50u); z4=(52u,100u);
+z5=(48u,100u);
+
+pickup pencircle scaled .33;
+fill (z2--z3--z4--z5--z2--cycle);
+
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,22.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,45);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,67.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,90);
+
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,112.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,135);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,157.5);
+fill (z2--z3--z4--z5--z2--z2--cycle) rotatedaround(z0,180);
+
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,202.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,225);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,247.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,270);
+
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,292.5);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,315);
+fill (z2--z3--z4--z5--z2--cycle) rotatedaround(z0,337.5);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(76,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(44u,96u); z3=(45u,82u); z4=(50u,66u);
+z5=(56u,96u); z6=(55u,82u);
+pickup pencircle scaled .33 u;
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,60);
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,120);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,180);
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,240);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,300);
+
+pickup pencircle scaled 26 u;
+drawdot z0;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek s dut˜m st©edem %%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(77,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(44u,96u); z3=(45u,82u); z4=(50u,56u);
+z5=(56u,96u); z6=(55u,82u);
+pickup pencircle scaled .33 u;
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,60);
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,120);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,180);
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,240);
+
+fill (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle) rotatedaround(z0,300);
+
+pickup pencircle scaled 32 u;
+drawdot z0;
+pickup pencircle scaled 24 u;
+erase drawdot z0;
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek pln˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(78,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(43u,93u); z3=(47u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(53u,70u); z9=(57u,93u);
+
+def rameno =(z6--z5..z4..z3..z2..z1..z9..z8..z7..z6--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+filldraw rameno;
+filldraw rameno rotatedaround(z0,60);
+filldraw rameno rotatedaround(z0,120);
+filldraw rameno rotatedaround(z0,180);
+filldraw rameno rotatedaround(z0,240);
+filldraw rameno rotatedaround(z0,300);
+pickup pencircle scaled 9 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek st©¡davˆ pln˜ a dut˜ %%%%%%%%%%%%%%%%%%%%%
+beginchar(79,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(42u,91u); z3=(44u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,70u); z9=(58u,91u);
+
+def ramenko =(z0--z3{z3-z0}..z2..{z1-z2}z1{z9-z1}..z9..{z0-z8}z8--z0--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+draw ramenko;
+
+filldraw ramenko rotatedaround(z0,60);
+draw ramenko rotatedaround(z0,120);
+filldraw ramenko rotatedaround(z0,180);
+draw ramenko rotatedaround(z0,240);
+filldraw ramenko rotatedaround(z0,300);
+pickup pencircle scaled 12 u;
+drawdot z0;
+pickup pencircle scaled 9 u;
+erase drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Pˆtil¡stek tu‡n˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(80,100u#,100u#,0);
+z0=(50u,47u); z1=(50u,80.75u);
+
+pickup pencircle scaled 38.5 u;
+drawdot z1;
+drawdot z1 rotatedaround(z0,72);
+drawdot z1 rotatedaround(z0,144);
+drawdot z1 rotatedaround(z0,216);
+drawdot z1 rotatedaround(z0,288);
+
+pickup pencircle scaled 40 u;
+drawdot z0;
+pickup pencircle scaled 32 u;
+erase drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek dut˜ s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%
+beginchar(81,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(36.5u,88u); z3=(40.5u,70u); z4=(63.5u,88u); z5=(59.5u,70u);
+z6=(50u,92u); z7=(38u,80u); z8=(62u,80u);
+z9=(40u,70u); z10=(60u,70u);
+
+def rameniko =(z0--z3{z3-z0}..z2..z1..z4..{z0-z5}z5--z0--cycle)
+enddef;
+def ramenicko =(z0..{z9-z0}z9..z7..z6..z8..{z0-z10}z10..z0--cycle)
+enddef;
+pickup pencircle scaled 6 u;
+filldraw rameniko;
+erase fill rameniko;
+filldraw rameniko rotatedaround(z0,60);
+erase fill rameniko rotatedaround(z0,60);
+filldraw rameniko rotatedaround(z0,120);
+erase fill rameniko rotatedaround(z0,120);
+filldraw rameniko rotatedaround(z0,180);
+erase fill rameniko rotatedaround(z0,180);
+filldraw rameniko rotatedaround(z0,240);
+erase fill rameniko rotatedaround(z0,240);
+filldraw rameniko rotatedaround(z0,300);
+erase fill rameniko rotatedaround(z0,300);
+pickup pencircle scaled 38 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Pˆtil¡stek dut˜ s pln˜m st©edem s tykadly %%%%%%%%%%%%
+beginchar(82,100u#,100u#,0);
+z0=(50u,47u); z1=(50u,98u);
+z2=(34u,84u); z3=(38.5u,68u); z4=(66u,84u); z5=(61.5u,68u);
+z6=(50u,93u); z7=(35u,80u); z8=(65u,80u);
+z9=(37.5u,67.5u); z10=(62.5u,67.5u);
+z11=(47u,47u); z12=(53u,47u); z13=(50u,78u);
+def rameniko =(z0--z3{z3-z0}..z2..z1..z4..{z0-z5}z5--z0--cycle)
+enddef;
+def ramenicko =(z0..{z9-z0}z9..z7..z6..z8..{z0-z10}z10..z0--cycle)
+enddef;
+def carecka =(z12--z11--z13--z12--cycle)
+enddef;
+pickup pencircle scaled 6 u;
+filldraw rameniko;
+erase fill ramenicko;
+filldraw carecka;
+filldraw rameniko rotatedaround(z0,72);
+erase fill ramenicko rotatedaround(z0,72);
+filldraw carecka rotatedaround(z0,72);
+filldraw rameniko rotatedaround(z0,144);
+erase fill ramenicko rotatedaround(z0,144);
+filldraw carecka rotatedaround(z0,144);
+filldraw rameniko rotatedaround(z0,216);
+erase fill ramenicko rotatedaround(z0,216);
+filldraw carecka rotatedaround(z0,216);
+filldraw rameniko rotatedaround(z0,288);
+erase fill ramenicko rotatedaround(z0,288);
+filldraw carecka rotatedaround(z0,288);
+pickup pencircle scaled 38 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmil¡stek s obrysem s dut˜m st©edem %%%%%%%%%%%%%%%%%
+beginchar(83,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u); z8=(50u,90u);
+z2=(50u,82u); z3=(50u,80u);
+z4=z2 rotatedaround(z0,22.5);
+z5=z2 rotatedaround(z0,337.5);
+z6=z3 rotatedaround(z0,12.5);
+z7=z3 rotatedaround(z0,347.5);
+def rameniciko =(z0--z4{z4-z0}..z1..{z0-z5}z5--z0--cycle)
+enddef;
+def ramenicicko =(z0--z6{z6-z0}..z8..{z0-z7}z7--z0--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+draw rameniciko;
+fill ramenicicko;
+draw rameniciko rotatedaround(z0,45);
+fill ramenicicko rotatedaround(z0,45);
+draw rameniciko rotatedaround(z0,90);
+fill ramenicicko rotatedaround(z0,90);
+draw rameniciko rotatedaround(z0,135);
+fill ramenicicko rotatedaround(z0,135);
+draw rameniciko rotatedaround(z0,180);
+fill ramenicicko rotatedaround(z0,180);
+draw rameniciko rotatedaround(z0,225);
+fill ramenicicko rotatedaround(z0,225);
+draw rameniciko rotatedaround(z0,270);
+fill ramenicicko rotatedaround(z0,270);
+draw rameniciko rotatedaround(z0,315);
+fill ramenicicko rotatedaround(z0,315);
+
+pickup pencircle scaled 32 u;
+drawdot z0;
+pickup pencircle scaled 24 u;
+erase drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ern˜ kruh s osmic¡pou hvˆzdou uvnit© s kru‘nic¡ %%%%%
+beginchar(84,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,99u);
+z2=z1 rotatedaround(z0,45);
+z3=z1 rotatedaround(z0,90);
+z4=z1 rotatedaround(z0,135);
+z5=z1 rotatedaround(z0,180);
+z6=z1 rotatedaround(z0,225);
+z7=z1 rotatedaround(z0,270);
+z8=z1 rotatedaround(z0,315);
+
+pickup pencircle scaled 100 u;
+drawdot z0;
+pickup pencircle scaled 4 u;
+erase fill z1--z4--z7--z2--z5--z8--z3--z6--z1--cycle;
+draw fullcircle scaled 50u shifted z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estil¡stek s listy nap–l pln˜mi a dut˜mi %%%%%%%%%%%%
+beginchar(85,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(42u,91u); z3=(44u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,70u); z9=(58u,91u);
+
+def ramenko =(z0--z3{z3-z0}..z2..{z1-z2}z1{z9-z1}..z9..{z0-z8}z8--z0--cycle)
+enddef;
+def ramendo =(z0--z1{z9-z1}..z9..{z0-z8}z8--z0--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+draw ramenko;
+fill ramendo;
+draw ramenko rotatedaround(z0,60);
+fill ramendo rotatedaround(z0,60);
+draw ramenko rotatedaround(z0,120);
+fill ramendo rotatedaround(z0,120);
+draw ramenko rotatedaround(z0,180);
+fill ramendo rotatedaround(z0,180);
+draw ramenko rotatedaround(z0,240);
+fill ramendo rotatedaround(z0,240);
+draw ramenko rotatedaround(z0,300);
+fill ramendo rotatedaround(z0,300);
+pickup pencircle scaled 12 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek dut˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(86,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(50u,90u); z3=(50u,75u);
+%z4=z1 rotatedaround (z0,22.5);
+%z5=z1 rotatedaround (z0,337.5);
+%z6=z3 rotatedaround (z0,45);
+%z7=z3 rotatedaround (z0,315);
+z4=z1 rotatedaround (z0,20);
+z5=z1 rotatedaround (z0,340);
+z6=z3 rotatedaround (z0,40);
+z7=z3 rotatedaround (z0,320);
+
+def listek = (z0--z6{z6-z0}..z4..z2&z2..z5..{z0-z7}z7--z0--cycle)
+rotatedaround(z0,45)
+enddef;
+pickup pencircle scaled 4 u;
+draw listek;
+
+draw listek rotatedaround(z0,90);
+draw listek rotatedaround(z0,180);
+draw listek rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek pln˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(87,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,101u); z2=(50u,90u); z3=(50u,75u);
+z4=z1 rotatedaround (z0,20);
+z5=z1 rotatedaround (z0,340);
+z6=z3 rotatedaround (z0,40);
+z7=z3 rotatedaround (z0,320);
+
+def listek = (z0--z6{z6-z0}..z4..z2&z2..z5..{z0-z7}z7--z0--cycle)
+rotatedaround(z0,45)
+enddef;
+pickup pencircle scaled 1 u;
+filldraw listek;
+
+filldraw listek rotatedaround(z0,90);
+filldraw listek rotatedaround(z0,180);
+filldraw listek rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estiramenn  kole‡ka %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(88,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,85u); z2=(50u,15u); z3=(50u,75u);
+
+pickup pencircle scaled 4 u;
+draw z1--z2;
+draw (z1--z2) rotatedaround(z0,60);
+draw (z1--z2) rotatedaround(z0,120);
+pickup pencircle scaled 30 u;
+drawdot z1;
+drawdot z2;
+drawdot z1 rotatedaround(z0,60);
+drawdot z2 rotatedaround(z0,60);
+drawdot z1 rotatedaround(z0,120);
+drawdot z2 rotatedaround(z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmil¡stek s pln˜m st©edem a kr tk˜mi l¡stky %%%%%%%%%
+beginchar(89,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(45u,96u); z3=(46u,82u); z4=(50u,66u);
+z5=(55u,96u); z6=(54u,82u);
+
+def list = (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle)
+enddef;
+pickup pencircle scaled .33 u;
+fill list;
+fill list rotatedaround(z0,45);
+fill list rotatedaround(z0,90);
+fill list rotatedaround(z0,135);
+fill list rotatedaround(z0,180);
+fill list rotatedaround(z0,225);
+fill list rotatedaround(z0,270);
+fill list rotatedaround(z0,315);
+
+pickup pencircle scaled 24 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Osmil¡stek s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(90,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(43u,96u); z3=(44u,78u); z4=(50u,50u);
+z5=(57u,96u); z6=(56u,78u); %z4=(50u,66u);
+def list = (z4--z3{z3-z4}..z2..z1..z5..{z4-z6}z6--z4--cycle)
+enddef;
+pickup pencircle scaled .33 u;
+fill list;
+fill list rotatedaround(z0,45);
+fill list rotatedaround(z0,90);
+fill list rotatedaround(z0,135);
+fill list rotatedaround(z0,180);
+fill list rotatedaround(z0,225);
+fill list rotatedaround(z0,270);
+fill list rotatedaround(z0,315);
+
+pickup pencircle scaled 20 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Pˆtil¡stek dut˜ s pln˜m st©edem %%%%%%%%%%%%%%%%%%%%%%
+beginchar(91,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98u);
+z2=(42u,91u); z3=(44u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,70u); z9=(58u,91u);
+z10=(50u,65u);
+def ramenko=(z10--z3{z3-z10}..z2..{z1-z2}z1{z9-z1}..z9..{z10-z8}z8--z10--cycle)
+enddef;
+pickup pencircle scaled 4 u;
+draw ramenko;
+draw ramenko rotatedaround(z0,60);
+draw ramenko rotatedaround(z0,120);
+draw ramenko rotatedaround(z0,180);
+draw ramenko rotatedaround(z0,240);
+draw ramenko rotatedaround(z0,300);
+pickup pencircle scaled 20 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek s pln˜m st©edem a s k©¡‘kem %%%%%%%%%%%%%%%
+beginchar(92,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u);
+z2=(42u,97u); z3=(44u,68u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,68u); z9=(58u,97u);
+z10=(50u,60u); z11=(10u,90u); z12=(38u,62u);
+def ramenko=(z10..z3{z3-z10}..z2..{z1-z2}z1{z9-z1}..z9..{z10-z8}z8..z10--cycle)
+enddef;
+
+pickup pensquare scaled 4 u rotated 45;
+fill ramenko;
+draw (z11--z12);
+fill ramenko rotatedaround(z0,90);
+draw (z11--z12) rotatedaround(z0,90);
+fill ramenko rotatedaround(z0,180);
+draw (z11--z12) rotatedaround(z0,180);
+fill ramenko rotatedaround(z0,270);
+draw (z11--z12) rotatedaround(z0,270);
+pickup pencircle scaled 20 u;
+drawdot z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €ty©l¡stek s pln˜m st©edem a s k©¡‘kem %%%%%%%%%%%%%%%
+beginchar(93,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u);
+z2=(42u,96u); z3=(44u,70u); z4=(49u,60u); z5=(49.75u,50u);
+z6=(50.25u,50u); z7=(51u,60u); z8=(56u,70u); z9=(58u,96u);
+z10=(50u,60u); z11=(10u,90u); z12=(38u,62u);
+def ramenko=(z10..{z3-z10}z3..z2{z2-z3}..{z1-z2}z1{z9-z1}..{z8-z9}z9..z8{z10-z8}..z10&z10..cycle)
+enddef;
+
+pickup pensquare scaled 4 u rotated 45;
+fill ramenko;
+draw (z11--z12);
+fill ramenko rotatedaround(z0,90);
+draw (z11--z12) rotatedaround(z0,90);
+fill ramenko rotatedaround(z0,180);
+draw (z11--z12) rotatedaround(z0,180);
+fill ramenko rotatedaround(z0,270);
+draw (z11--z12) rotatedaround(z0,270);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estiramenn  vlo‡ka %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(94,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,98.5u); z2=(50u,1.5u);
+z3=(50u,80u); z4=(35u,92.5u); z5=(65u,92.5u);
+z6=(50u,20u); z7=(35u,7.5u); z8=(65u,7.5u);
+
+pickup pencircle scaled 4 u;
+draw z1--z2;
+draw (z1--z2) rotatedaround(z0,60);
+draw (z1--z2) rotatedaround(z0,120);
+draw z4--z3--z5;
+draw z7--z6--z8;
+draw (z4--z3--z5) rotatedaround(z0,60);
+draw (z7--z6--z8) rotatedaround(z0,60);
+draw (z4--z3--z5) rotatedaround(z0,120);
+draw (z7--z6--z8) rotatedaround(z0,120);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estiramenn  vlo‡ka s tlust˜mi vedlej¨¡mi ram¡nky %%%%
+beginchar(95,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(50u,0u);
+z3=(50u,80u); z4=(35u,92.5u); z5=(65u,92.5u);
+z6=(50u,20u); z7=(35u,7.5u); z8=(65u,7.5u);
+
+pickup pencircle scaled 4 u;
+draw z1--z2;
+draw (z1--z2) rotatedaround(z0,60);
+draw (z1--z2) rotatedaround(z0,120);
+pickup pencircle scaled 10 u;
+draw z4--z3--z5;
+draw z7--z6--z8;
+draw (z4--z3--z5) rotatedaround(z0,60);
+draw (z7--z6--z8) rotatedaround(z0,60);
+draw (z4--z3--z5) rotatedaround(z0,120);
+draw (z7--z6--z8) rotatedaround(z0,120);
+pickup pencircle scaled 8 u;
+erase draw fullcircle scaled 104 u shifted z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›estiramenn  vlo‡ka s vnit©n¡m ¨esti£heln¡kem %%%%%%%%
+beginchar(96,100u#,100u#,0);
+z0=(50u,50u); z1=(50u,100u); z2=(50u,0u);
+z3=(50u,95u);
+z4=z3 rotatedaround(z0,30);
+z5=z3 rotatedaround(z0,90);
+z6=z3 rotatedaround(z0,150);
+z7=z3 rotatedaround(z0,210);
+z8=z3 rotatedaround(z0,270);
+z9=z3 rotatedaround(z0,330);
+
+z10=(50u,75u);
+z11=z10 rotatedaround(z0,60);
+z12=z10 rotatedaround(z0,120);
+z13=z10 rotatedaround(z0,180);
+z14=z10 rotatedaround(z0,240);
+z15=z10 rotatedaround(z0,300);
+
+pickup pencircle scaled 8 u;
+draw z1--z2;
+draw (z1--z2) rotatedaround(z0,60);
+draw (z1--z2) rotatedaround(z0,120);
+pickup pencircle scaled 4 u;
+draw (z11--z4--z10--z9--z15);
+draw (z11--z4--z10--z9--z15--z8) rotatedaround(z0,120);
+draw (z11--z4--z10--z9--z15--z8) rotatedaround(z0,240);
+pickup pencircle scaled 8 u;
+erase draw fullcircle scaled 104 u shifted z0;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% konec obr zk– se spr vn˜mi ‡arami
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%% Kruh ‡ern˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(97,100u#,100u#,0);
+
+z1=(50u,50u);
+pickup pencircle scaled 100u;
+drawdot z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Elipsa %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(98,100u#,100u#,0);
+
+z1=(50u,50u);
+pickup pencircle scaled 4u;
+draw fullcircle xscaled 98u yscaled 60u shifted z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Elipsa pln  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(99,100u#,100u#,0);
+
+z1=(50u,50u);
+pickup pencircle scaled 2u;
+fill fullcircle xscaled 100u yscaled 60u shifted z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Kruh se st¡nem vpravo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(100,110u#,100u#,0);
+
+z1=(50u,50u);
+z2=(55u,50u);
+
+pickup pencircle xscaled 110u yscaled 100u;
+drawdot z2;
+pickup pencircle scaled 99u;
+erase drawdot z1;
+pickup pencircle scaled 4u;
+draw fullcircle scaled 96u shifted z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Elipsa se st¡nem vpravo %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(101,110u#,100u#,0);
+
+z1=(50u,50u); z2=(55u,50u);
+pickup pencircle scaled 4u;
+fill fullcircle xscaled 110u yscaled 62u shifted z2;
+erase fill fullcircle xscaled 92u yscaled 54u shifted z1;
+%draw fullcircle xscaled 92u yscaled 54u shifted z1;
+%erase fill fullcircle xscaled 96u yscaled 58u shifted z1;
+%draw fullcircle xscaled 96u yscaled 58u shifted z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(102,100u#,100u#,0);
+
+z1=(50u,50u);
+
+pickup pensquare scaled 100u;
+draw z1;
+pickup pensquare scaled 92u;
+erase draw z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec ‡ern˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(103,100u#,100u#,0);
+
+z1=(50u,50u);
+
+pickup pensquare scaled 100u;
+draw z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se ‡tercov˜m st¡nem vpravo dole %%%%%%%%%%%%%%
+beginchar(104,100u#,100u#,0);
+
+z1=(58u,42u);
+z2=(42u,58u);
+z3=(0u,16u); z4=(0u,100u);z5=(84u,100u); z6=(84u,16u);
+
+pickup pensquare scaled 84u;
+draw z1;
+draw z2;
+pickup pensquare scaled 76u;
+erase draw z2;
+endchar;
+%%%%%%%%%%%%%%%%%%% €tverec se ‡tvercov˜m st¡nem vpravo naho©e %%%%%%%
+beginchar(105,100u#,100u#,0);
+
+z1=(58u,58u);
+z2=(42u,42u);
+z3=(0u,0u); z4=(0u,84u); z5=(84u,84u); z6=(84u,0u);
+
+pickup pensquare scaled 84u;
+draw z1;
+draw z2;
+pickup pensquare scaled 76u;
+erase draw z2;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se ‡tvercov˜m st¡nem vlevo naho©e %%%%%%%%
+beginchar(106,100u#,100u#,0);
+
+z1=(58u,42u);
+z2=(42u,58u);
+z3=(16u,0u); z4=(16u,84u);z5=(100u,84u); z6=(100u,0u);
+
+pickup pensquare scaled 84u;
+draw z2;
+draw z1;
+pickup pensquare scaled 76u;
+erase draw z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se zkosen˜m st¡nem vpravo dole %%%%%%%%%%%
+beginchar(107,100u#,100u#,0);
+
+z1=(58u,42u);
+z2=(42u,58u);
+z3=(0u,16u); z4=(0u,100u);z5=(84u,100u); z6=(84u,16u);
+z7=(16u,0u); z8=(16u,84u); z9=(100u,84u); z10=(100u,0u);
+
+pickup pensquare scaled 84u;
+draw z1;
+pickup pencircle scaled 4u;
+fill z3--z5--z9--z7--z3--cycle;
+pickup pensquare scaled 84u;
+draw z2;
+pickup pensquare scaled 76u;
+erase draw z2;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se zkosen˜m st¡nem vpravo naho©e %%%%%%%%%
+beginchar(108,100u#,100u#,0);
+z0=(0u,0u);
+z1=(58u,58u);
+z2=(42u,42u);
+z3=(0u,16u); z4=(0u,100u);z5=(84u,100u); z6=(84u,16u);
+z7=(16u,0u); z8=(16u,84u); z9=(100u,84u); z10=(100u,0u);
+z11=(0u,84u); z12=(16u,100u); z13=(84u,0u); z14=(100u,16u);
+z15=(84u,84u); z16=(100u,100u);
+pickup pensquare scaled 84u;
+draw z1;
+pickup pencircle scaled 4u;
+fill z11--z12--z14--z13--z11--cycle;
+pickup pensquare scaled 84u;
+draw z2;
+pickup pensquare scaled 76u;
+erase draw z2;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% €tverec se zkosen˜m st¡nem vlevo naho©e %%%%%%%%%%
+beginchar(109,100u#,100u#,0);
+
+z1=(58u,42u);
+z2=(42u,58u);
+z3=(0u,16u); z4=(0u,100u); z5=(84u,100u); z6=(84u,16u);
+z7=(16u,0u); z8=(16u,84u); z9=(100u,84u); z10=(100u,0u);
+
+pickup pensquare scaled 84u;
+draw z2;
+pickup pencircle scaled 4u;
+fill z3--z5--z9--z7--z3--cycle; % shifted (0u,0u) rotated 180;
+pickup pensquare scaled 84u;
+draw z1;
+pickup pensquare scaled 76u;
+erase draw z1;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Troj£heln¡k se z kladnou dole %%%%%%%%%%%%%%%%%%%%
+beginchar(110,110u#,100u#,0);
+z1=(0u,0u); z2=(55u,100u); z3=(110u,0u);
+
+pickup pencircle scaled 4u;
+fill (z1--z2--z3--z1--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Troj£heln¡k se z kladnou naho©e %%%%%%%%%%%%%%%%%%
+beginchar(111,110u#,100u#,0);
+z1=(0u,0u); z2=(55u,100u); z3=(110u,0u);
+z4=(0u,100u); z5=(110u,100u); z6=(55u,0u);
+
+pickup pencircle scaled 4u;
+fill (z6--z4--z5--z6--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Koso‡tverec %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(112,100u#,100u#,0);
+z0=(50u,50u);
+z1=(0u,0u); z2=(100u,0u); z3=(50u,100u); z4=(0u,100u); z5=(100u,100u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 4u;
+fill (z6--z8--z3--z7--z6--cycle);
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Koso‡tverec ze ‡ty© koso‡tvere‡k– %%%%%%%%%%%%%%%%
+beginchar(113,100u#,100u#,0);
+z0=(50u,50u);
+z1=(0u,0u); z2=(100u,0u); z3=(50u,100u); z4=(0u,100u); z5=(100u,100u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 4u;
+fill (z6--z8--z3--z7--z6--cycle);
+pickup pencircle scaled 10u;
+erase draw z4--z2;
+erase draw z1--z5;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Polokruh pravostrann˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(114,50u#,100u#,0);
+z0=(50u,50u);
+z1=(0u,0u); z2=(100u,0u); z3=(50u,100u); z4=(0u,100u); z5=(100u,100u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 2u;
+fill (z1--z4..z0..z1..cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Polokruh levostrann˜ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(115,50u#,100u#,0);
+z0=(50u,50u);
+z1=(0u,0u); z2=(100u,0u); z3=(50u,100u); z4=(0u,100u); z5=(100u,100u);
+z6=(50u,0u); z7=(100u,50u); z8=(0u,50u);
+
+pickup pencircle scaled 2u;
+fill (z6--z3..z8..z6..cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Tenk˜ svisl˜ pruh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(116,12.5u#,100u#,0);
+
+z1=(0u,0u); z2=(12.5u,0u); z3=(6.25u,6.25u); z4=(0u,100u); z5=(12.5u,100u);
+z6=(6.25u,93.75u);
+
+pickup pensquare scaled 12.5u;
+draw z3--z6;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% St©edn¡ svisl˜ pruh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(117,25u#,100u#,0);
+
+z1=(0u,0u); z2=(25u,0u); z3=(12.5u,12.5u); z4=(0u,100u); z5=(25u,100u);
+z6=(12.5u,87.5u);
+
+pickup pensquare scaled 25u;
+draw z3--z6;
+endchar;
+
+%%%%%%%%%%%%%%%%%%% Tlust˜ svisl˜ pruh %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(118,50u#,100u#,0);
+
+z1=(0u,0u); z2=(50u,0u); z3=(25u,25u); z4=(0u,100u); z5=(50u,100u);
+z6=(25u,75u);
+
+pickup pensquare scaled 50u;
+draw z3--z6;
+endchar;
+
+
+%%%%%%%%%%%% end;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% YYYYYYYYYYYYYYYYYYYYYYYYYYYYY %%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% ›ipka s prou‘ky %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(119,110u#,100u#,0);
+
+z1=(0u,50u); z2=(100u,50u); z3=(90u,90u); z4=(120u,98u);
+z5=(90u,10u); z6=(120u,2u);
+z7=(9u,70u); z8=(25u,70u); z9=(40u,70u); z10=(58u,70u);
+z11=(9u,30u); z12=(25u,30u); z13=(40u,30u); z14=(58u,30u);
+
+pickup pencircle xscaled 40u yscaled 0u; % 20u
+draw z5--z3;
+pickup pencircle xscaled 0u yscaled 40u; % 20u
+draw z1--z2;
+pickup pencircle scaled 100u; % 50u;
+erase drawdot z4;
+erase drawdot z6;
+pickup pencircle scaled 10u;
+erase draw z7--z11;
+pickup pencircle scaled 6u;
+erase draw z8--z12;
+pickup pencircle scaled 4u;
+erase draw z9--z13;
+pickup pencircle scaled 3u;
+erase draw z10--z14;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›ipka s oc skem dol– %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(120,110u#,100u#,0);
+%z1=(10u,25u); z2=(37.5u,25u); z3=(50u,45u); z4=(37.5u,42u);
+%z5=(65u,25u); z6=(37.5u,7u);
+%z7=(5u,25u); z8=(10u,25u); z9=(5u,8u); z10=(10u,8u);
+%z11=(1.5u,4u); z12=(1.5u,10u);
+
+z1=(20u,50u); z2=(75u,50u); z3=(100u,90u); z4=(60u,84u);
+z5=(110u,50u); z6=(60u,14u);
+z7=(10u,50u); z8=(20u,50u); z9=(10u,16u); z10=(20u,16u);
+z11=(3u,8u); z12=(3u,20u);
+
+pickup pencircle xscaled 0u yscaled 40u; % 20
+draw z1--z2;
+pickup pencircle scaled 2u;
+fill (z6--z4--z5--z6--cycle);
+pickup pencircle xscaled 20u yscaled 0u; % 10
+draw z7--z9;
+pickup pencircle scaled 40u; % 20
+drawdot z8;
+pickup pencircle scaled 28u; % 14
+erase drawdot z10;
+pickup pencircle xscaled 6u yscaled 0u; % 3
+draw z11--z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((0u,50u),(110u,50u));
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% ›ipka s oc skem nahoru %%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(121,110u#,100u#,0);
+%z1=(10u,25u); z2=(37.5u,25u); z3=(50u,45u); z4=(37.5u,42u);
+%z5=(65u,25u); z6=(37.5u,7u);
+%z7=(5u,25u); z8=(10u,25u); z9=(5u,8u); z10=(10u,8u);
+%z11=(1.5u,4u); z12=(1.5u,10u);
+
+z1=(20u,50u); z2=(75u,50u); z3=(100u,90u); z4=(60u,84u);
+z5=(110u,50u); z6=(60u,14u);
+z7=(10u,50u); z8=(20u,50u); z9=(10u,16u); z10=(20u,16u);
+z11=(3u,8u); z12=(3u,20u);
+
+pickup pencircle xscaled 0u yscaled 40u; % 20
+draw z1--z2;
+pickup pencircle scaled 2u;
+fill (z6--z4--z5--z6--cycle);
+pickup pencircle xscaled 20u yscaled 0u; % 10
+draw z7--z9;
+pickup pencircle scaled 40u; % 20
+drawdot z8;
+pickup pencircle scaled 28u; % 14
+erase drawdot z10;
+pickup pencircle xscaled 6u yscaled 0u; % 3
+draw z11--z12;
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+currenttransform:=
+ currenttransform reflectedabout ((0u,50u),(110u,50u));
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+%%%%%%%%%%%%%%%%%%% ›ipka zplo¨tˆl  %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(122,50u#,100u#,0);
+z1=(0u,50u); z2=(17u,50u);
+z3=(17u,0u); z4=(17u,100u); z5=(50u,50u);
+
+pickup pencircle xscaled 0u yscaled 60u;
+draw z1--z2;
+pickup pencircle scaled 2u;
+fill (z3--z4--z5--z3--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%% ›ipka v ov lu %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(123,100u#,100u#,0);
+
+z0=(-10u,50u);
+z1=(-7u,50u); z2=(50u,50u);
+z3=(50u,4u); z4=(50u,96u); z5=(96u,50u);
+z6=(100u,50u); z7=(20u,4u); z8=(70u,4u); z9=(70u,96u); z10=(20u,96u);
+
+pickup pencircle scaled 2u;
+fill (z1..z10..tension 1.15..z9..z6..z8..tension 1.15..z7..z1--cycle);
+pickup pencircle xscaled 0u yscaled 60u; % 30u;
+erase draw z0--z2;
+pickup pencircle scaled 2u;
+erase fill (z3--z4--z5--z3--cycle);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%% XXXXXXXXXXXXXXXXXXXXXXXXXXXXX %%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+end;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/niceframe/dingbat.mf b/Master/texmf-dist/fonts/source/public/niceframe/dingbat.mf
new file mode 100644
index 00000000000..6d93e280c62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/niceframe/dingbat.mf
@@ -0,0 +1,711 @@
+% Dingbat characters as of 3-3-89 by Doug Henderson
+% To be run with plain.bas.
+% Last modified on 3-20-96 by Marcus Ohlhaut (MO)
+
+font_size=10pt#; % make the pxl or pk files be in ...\pixel\pxl1500
+
+def clear_all =
+ clearit; clearxy;
+enddef;
+
+%%%
+% turn pt,in,cm etc. into pixel values
+%%%
+
+mode_setup;
+
+%%%
+% define your variables here
+%%%
+string s[];
+picture p[];
+numeric anchor_scale;
+anchor_scale=10;
+path the_anchor,ring_of_anchor,tilted_anchor,tilted_ring;
+% how much to tilt the anchor
+numeric akilter;
+akilter:=20;
+picture holdit,holdem,flower_x,flower_y;
+path collar, thumb, index_finger, the_bird, ring_finger, pinky_finger ;
+a#:=12pt#;
+b#:=12pt#;
+glyph_width#:=10pt#;
+glyph_height#:=7pt#;
+uniform_square#:=20pt#;
+triangle_size#:=12pt#;
+check_width#:=10pt#;
+check_height#:=10pt#;
+check_depth#:=0pt#;
+dash#:=2pt#;
+%flu_width#:=31pt#;
+%flu_height#:=15pt#;
+flu_width#:=62pt#;
+flu_height#:=30pt#;
+anchor_height#:=150pt#/anchor_scale;
+anchor_width#:=130pt#/anchor_scale;
+anchor_depth#:=0pt#;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% Very thin weight stroke for flouron (not advised for < 600dpi)
+%thinish#:=.25pt#;
+%thinthick#:=.45pt#;
+%thickish#:=.75pt#;
+
+% Normal weight stroke for flouron
+thinish#:=.5pt#;
+thinthick#:=1pt#;
+thickish#:=1.5pt#;
+
+% Heavy weight stroke for flouron
+%thinish#:=1pt#;
+%thinthick#:=2pt#;
+%thickish#:=2.5pt#;
+
+% Strokes widths for the flower from 1-12 (= 1 pixel - 4.5pt)
+flower_one#:=.25;
+flower_two#:=.5;
+flower_three#:=.5pt#/1.5;
+flower_four#:=.5pt#/1.5;
+flower_five#:=1pt#/1.5;
+flower_six#:=1.5pt#/1.5;
+flower_seven#:=2pt#/1.5;
+flower_eight#:=2.5pt#/1.5;
+flower_nine#:=3pt#/1.5;
+flower_ten#:=3.5pt#/1.5;
+flower_eleven#:=4pt#/1.5;
+flower_twelve#:=4.5pt#/1.5;
+hand_scale=6;
+hand_width#:=110pt#/hand_scale;
+hand_height#:=80pt#/hand_scale;
+hand_depth#:=0pt#;
+
+%%%
+% define your pixels here, do this for each variable defined above
+%%%
+
+define_pixels(glyph_width,glyph_height,uniform_square,triangle_size);
+define_pixels(check_width,check_height,check_depth,dash,thinish,thickish);
+define_pixels(thinthick,flu_width,flu_height,a,b);
+define_pixels(flower_one,flower_two,flower_three,flower_four,flower_five);
+define_pixels(flower_six,flower_seven,flower_eight,flower_nine,flower_ten);
+define_pixels(flower_eleven,flower_twelve);
+define_pixels(hand_width,hand_height,hand_depth,dash);
+define_pixels(anchor_height,anchor_weight,anchor_depth);
+
+%%%
+% define a macro which pauses until the user hits the return key
+%%%
+
+def
+ whoa= s0:= readstring;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Define all the pens we use
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+pickup pensquare scaled .2pt;
+smallpen:=savepen;
+pickup pensquare scaled .4pt;
+bigpen:=savepen;
+pickup pensquare scaled .8pt;
+bigger:=savepen;
+pickup pencircle scaled .1pt;
+razorpen:=savepen;
+pickup pencircle scaled 2pt;
+bigdotpen:=savepen;
+pickup pencircle scaled 1.1pt;
+lildotpen:=savepen;
+pickup pensquare scaled 1.6pt;
+chunkypen:=savepen;
+pickup pencircle scaled .35pt;
+ringpen:=savepen;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% Let the dingbat characters begin
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Anchor for TUG dingbat contest";
+beginchar("O",anchor_width#,anchor_height#,anchor_depth#);
+ %%%
+ % x variables
+ %%%
+ x1=8/130w; % x1
+ x2=6/130w; % x2
+ x3=13/130w; % x3
+ x4=x25=x26=x31=30/130w; % x4 x25 x26 x31
+ x5=x22=60/130w; % x5
+ x6=x14=x18=x19=90/130w; % x6 x14 x18 x19
+ x27=x28=x45=54/130w; % x27 x28 x45
+ x17=x35=x56=66/130w; % x17 x35 x56
+
+ x7=107/130w; % x7
+ x8=114/130w; % x8
+ x10=112/130w; % x10
+ x12=94/130w; % x12
+ x13=99/130w; % x13
+ x15=72/130w; % x15
+ x16=67/130w; % x16
+ x20=70/130w; % x20
+ x21=65/130w; % x21
+ x23=55/130w; % x23
+ x24=50/130w; % x24
+
+ x29=53/130w; % x29
+ x30=48/130w; % x30
+ x32=21/130w; % x32
+ x33=26/130w; % x33
+
+ %%%
+ % y variables
+ %%%
+ y1=y10=65/150h; % y1 y10
+ y2=y8=43/150h; % y2 y8
+ y3=y7=45/150h; % y3 y7
+
+ y4=y6=25/150h; % y4 y6
+ y5=13/150h; % y5
+ y21=y23=130/150h; % y21 y23
+ y22=136/150h; % y22
+ y45=y56=20/150h; % y45 y56
+
+ y18=y26=y27=y35=118/150h; % y18 y26 y27 y35
+ y19=y20=y24=y25=124/150h; % y19 y20 y24 y25
+ y17=y28=40/150h; % y17 y28
+ y16=y29=36/150h; % y16 y29
+ y15=y30=35/150h; % y15 y30
+ y14=y31=38/150h; % y14 y31
+ y13=y32=50/150h; % y13 y32
+ y12=y33=54/150h; % y12 y33
+
+ %%%
+ % path assignments
+ %%%
+ the_anchor = z25--z26--z27--z28 & z28..z29..z31..z32 &
+ z32--z33--z1--z2--z3 & z3..z4..z45 & z45--z5--z56 & z56..z6..z7 &
+ z7--z8--z10--z12--z13 & z13..z14..z16..z17 &
+ z17--z35--z18--z19--cycle;
+ ring_of_anchor = z20..z22..z24;
+
+ tilted_anchor = the_anchor rotated akilter;
+ tilted_ring = ring_of_anchor rotated akilter;
+ %%%
+ % draw the character, show how ring meets anchor
+ %%%
+ pickup razorpen;
+ fill the_anchor;
+ pickup ringpen;
+ draw ring_of_anchor;
+
+ %%%
+ % after clearing previous path (upright anchor) fill the tilted path
+ %%%
+ %clearit;
+ %fill tilted_anchor;
+ %draw tilted_ring;
+ %showit;
+ %message"When thru viewing, press Enter to continue";
+ %whoa;
+
+ labels(range 1 thru 4,45,5,56,range 6 thru 19);
+ labels(range 20 thru 33,35);
+
+endchar;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+"Hand pointer to the left";
+beginchar("N",hand_width#,hand_height#,hand_depth#);
+ %%%
+ % x variables
+ %%%
+ x1=9.5/110w; % x1
+ x2=15/110w; % x2
+ x3=x6=20/110w; % x3 x6
+ x4=19/110w; % x4
+ x5=x8=16/110w; % x5 x8
+ x7=21/110w; % x7
+ x9=10.5/110w; % x8
+ x10=5/110w; % x10
+ x11=42.5/110w; % x11
+ x1112=61/110w; % x1112 (a point between 11 and 12)
+ x12=67/110w; % x12
+ x13=x24=70/110w; % x13 x24
+ x14=57.5/110w; % x14
+ x15=76/110w; % x15
+ x16=77/110w; % x16
+ x17=58/110w; % x17
+ x18=82.5/110w; % x18
+ x19=83/110w; % x19
+ x20=57/110w; % x20
+ x21=94/110w; % x21
+ x22=102/110w; % x22
+ x23=90/110w; % x23
+ x25=43.5/110w; % x25
+ x26=62.5/110w; % x26
+ x27=75/110w; % x27
+ x28=74/110w; % x28
+
+ %%%
+ % y variables
+ %%%
+ y1=y24=63/80h; % y1 y24
+ y2=y25=64/80h; % y2 y25
+ y3=63.5/80h; % y3
+ y4=59/80h; % y4
+ y5=y17=40/80h; % y5 y17
+ y6=18/80h; % y6
+ y7=13/80h; % y7
+ y8=12.5/80h; % y8
+ y9=13.5/80h; % y9
+ y10=39.5/80h; % y10
+ y11=15/80h; % y11
+ y1112=17.5/80h; % y1112 (a point between 11 and 12)
+ y12=20/80h; % y12
+ y13=27.5/80h; % y13
+ y14=28/80h; % y14
+ y15=32/80h; % y15
+ y16=39/80h; % y16
+ y18=44/80h; % y18
+ y19=y21=50/80h; % y19
+ y20=51/80h; % y20
+ y22=55/80h; % y22
+ y23=62/80h; % y23
+ y26=71/80h; % y26
+ y27=72/80h; % y27
+ y28=67/80h; % y28
+
+ collar=z1..z2..z3 & z3..z4..z5..z6..z7 & z7..z8..z9 & z9..z10..z1;
+ thumb=z25..z26..z27..z28..z24;
+ index_finger=z4..z25..z24..z23..z22..z21..z19..z20;
+ the_bird=z17--z16..z18..z19;
+ ring_finger=z14--z13..z15..z16;
+ pinky_finger=z6..z11..z1112 & z1112..z12..z13;
+
+ pickup razorpen;
+
+ draw collar; draw thumb; draw index_finger;
+ draw the_bird; draw ring_finger; draw pinky_finger;
+ labels(range 1 thru 11,1112,range 12 thru 28);
+endchar;
+
+"Flowery flouron";
+beginchar("J",flu_width#,flu_height#,0);
+ % first stroke = x1 thru x8
+ x1=.02w; x2=.10w; x3=.23w; x4=.38w; x5=.51w;
+ x6=.73w; x7=.85w; x8=x14=x19=.98w;
+ % second stroke = x9 thru x14
+ x9=.22w; x10=.17w; x11=.165w; x12=.20w;
+ x13=.58w; % x14=x8=x19
+ % third stroke = x15 thru x19
+ x15=.32w; x16=.46w; x17=.65w; x18=.82w; % x19=x8=x14
+ % first stroke = y1 thru y8
+ y1=.05h; y2=.19h; y3=.26h; y4=.24h; y5=.18h;
+ y6=.13h; y7=.14h; y8=y14=y19=.19h;
+ % second stroke = y9 thru y14
+ y9=.99h; y10=.92h; y11=.85h;
+ y12=.71h; y13=.32h; % y14=y8
+ % third stroke = y15 thru y19
+ y15=.67h; y16=.74h; y17=.71h; y18=.48h;
+ % pen positions for stroke 1
+ penpos1(flower_one,135); penpos2(flower_five,135); penpos3(flower_nine,90);
+ penpos4(flower_twelve,90); penpos5(flower_ten,67); penpos6(flower_five,85);
+ penpos7(flower_four,90); penpos8(flower_three,135);
+ % pen positions for stroke 2
+ penpos9(flower_one,135); penpos10(flower_seven,180);
+ penpos11(flower_eight,180); penpos12(flower_seven,210);
+ penpos13(flower_six,210); penpos14(flower_three,270);
+ % pen positions for stroke 3
+ penpos15(flower_one,115); penpos16(flower_seven,100);
+ penpos17(flower_nine,70); penpos18(flower_five,45);
+ penpos19(flower_three,45);
+ % now draw our three strokes
+ penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e;
+ penstroke z9e...z10e...z11e...z12e{dir 315}...z13e...z14e;
+ penstroke z15e..z16e..z17e..z18e{dir 315}..z19e;
+ penlabels(range 1 thru 19);
+ flower_x:=currentpicture;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Right flower";
+beginchar("K",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+flower_x;
+ currentpicture:=currentpicture reflectedabout((.5[0,0],1),(.5[0,0],0));
+ currentpicture:=currentpicture shifted (w,0);
+ flower_y:=currentpicture;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+"Flipped left flower--matches J";
+beginchar("L",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+flower_y;
+ currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Flipped right flower--matches K";
+beginchar("M",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+flower_x;
+ currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"DLA satelite dish";
+beginchar("I",a#,b#,0);
+ numeric zero; zero=0;
+ % define the coordinates we will work with here
+ z1=origin; z2=(a,zero); z3=(a,b/5); z4=(zero,b/5);
+ x5=3/10(x2-x1); y5=y4=y6; x6=7/10(x2-x1);
+ x7=4/10(x2-x1); y7=y8=y9=3/10(b); x8=6/10(x2-x1);
+ x9=x10=1/2(x2-x1);
+ x11=1/10(x2-x1); y11=9/10(b); x12=3/10(x2-x1);
+ y12=.53(b); x13=9/10(x2-x1); y13=5/10(b);
+ y10=4.5/10(b);
+
+ % draw the bottom platform of the dish
+ pickup pensquare xscaled .5pt yscaled .5pt
+ filldraw z1--z2--z3--z4--cycle;
+ % draw the base of the dish, which sits on top of the bottom platform
+ pickup penrazor;
+ filldraw z5--z7--z8--z6--cycle;
+ % draw the arm holding the dish, which sits on the base of the dish
+ pickup penrazor xscaled .5pt;
+ draw z9--z10;
+ % draw the dish now
+ pickup pencircle xscaled .5pt yscaled .5pt;
+ draw z11..z12..z13;
+ % dish mod, complete the dish top
+% draw z11--z13;
+ labels(range 1 thru 13);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Left flouron";
+beginchar("E",flu_width#,flu_height#,0);
+ pickup pencircle;
+ x1=.23w; x2=.10w; x3=.05w; x4=.10w; x5=.19w;
+ x6=.25w; x7=.26w; x8=.20w; x9=.22w; x10=.26w;
+ x11=.48w; x12=.62w; x13=.71w; x14=.84w; x15=.90w;
+ x16=.97w; x17=.93w; x18=.84w;
+ y1=.07h; y2=.07h; y3=.33h; y4=.57h; y5=.65h;
+ y6=.61h; y7=.53h; y8=.55h; y9=.75h; y10=.80h;
+ y11=.67h; y12=.56h; y13=.53h; y14=.55h; y15=.60h;
+ y16=.80h; y17=.92h; y18=.87h;
+ penpos1(thinish,270); penpos2(thinish,225);
+ penpos3(thickish,180); penpos4(thinish,135);
+ penpos5(thinish,90); penpos6(thinish,45);
+ penpos7(thinish,0); penpos8(thinish,225);
+ penpos9(thinish,135); penpos10(thinish,90);
+ penpos11(thinish,45); penpos12(thinish,45);
+ penpos13(thinish,90); penpos14(thinthick,135);
+ penpos15(thinthick,135); penpos16(thinthick,180);
+ penpos17(thinish,225); penpos18(thinish,270);
+ penstroke z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..z9e..z10e..z11e..z12e..
+ z13e..z14e..z15e..z16e..z17e..z18e;
+ penlabels(range 1 thru 18);
+holdit:=currentpicture;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Right flouron";
+beginchar("F",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+holdit;
+% currentpicture:=currentpicture reflectedabout((.5[l,r],1),(.5[l,r],0));
+ currentpicture:=currentpicture reflectedabout((.5[0,0],1),(.5[0,0],0));
+ currentpicture:=currentpicture shifted (w,0);
+ holdem:=currentpicture;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Flipped left flouron--matches F";
+beginchar("G",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+holdem;
+ currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Flipped right flouron--matches E";
+beginchar("H",flu_width#,flu_height#,0);
+ currentpicture:=currentpicture+holdit;
+ currentpicture:=currentpicture reflectedabout((0,.5[0,h]),(1,.5[0,h]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Check mark";
+beginchar("D",check_width#,check_height#,check_depth#);
+ pickup pencircle;
+ y1=.4h; y2=.15h; y3=.85h;
+ x1l=0+eps; x2=1/3w; x3=.85w;
+ penpos1(dash,45); penpos2(dash,90); penpos3(dash,170);
+ penstroke z1e--z2e--z3e;
+ penlabels(1,2,3);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Square (filled) with dots border design";
+beginchar("C",triangle_size#,triangle_size#,0);
+x1=x3=good.x(1/2triangle_size);
+x2=good.x(1/10triangle_size);
+x4=good.x(9/10triangle_size);
+x5=x6=good.x(3/10triangle_size);
+x7=x8=good.x(7/10triangle_size);
+x9=x10=good.x(2/10triangle_size);
+x12=x11=good.x(8/10triangle_size);
+
+y1=good.y(1/10triangle_size);
+y9=y12=good.y(2/10triangle_size);
+y5=y8=good.y(3/10triangle_size);
+y2=y4=good.y(1/2triangle_size);
+y6=y7=good.y(7/10triangle_size);
+y10=y11=good.y(8/10triangle_size);
+y3=good.y(9/10triangle_size);
+
+pickup razorpen;
+fill z1..z5..z2 & z2..z6..z3 & z3..z7..z4 & z4..z8..z1..cycle;
+pickup bigdotpen;
+drawdot z9; drawdot z12; drawdot z10; drawdot z11;
+
+labels(range 1 thru 12);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Square (unfilled) with dots border design";
+beginchar("B",triangle_size#,triangle_size#,0);
+ x1=x3=good.x(1/2triangle_size);
+ x2=good.x(1/10triangle_size);
+ x4=good.x(9/10triangle_size);
+ x5=x6=good.x(3/10triangle_size);
+ x7=x8=good.x(7/10triangle_size);
+ x9=x10=good.x(2/10triangle_size);
+ x12=x11=good.x(8/10triangle_size);
+
+ y1=good.y(1/10triangle_size);
+ y9=y12=good.y(2/10triangle_size);
+ y5=y8=good.y(3/10triangle_size);
+ y2=y4=good.y(1/2triangle_size);
+ y6=y7=good.y(7/10triangle_size);
+ y10=y11=good.y(8/10triangle_size);
+ y3=good.y(9/10triangle_size);
+
+ pickup bigpen;
+ draw z1..z5..z2;
+ draw z2..z6..z3;
+ draw z3..z7..z4;
+ draw z4..z8..z1;
+
+ pickup bigdotpen;
+ drawdot z9; drawdot z12; drawdot z10; drawdot z11;
+ pickup lildotpen;
+ erase drawdot z9; erase drawdot z12; erase drawdot z10;erase drawdot z11;
+
+ labels(range 1 thru 12);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Z border design";
+beginchar("Z",glyph_width#,glyph_height#,0);
+pickup bigger;
+% define our x values for the border design
+x1=x6=x7=good.x(glyph_width);
+x4=6/8good.x(glyph_width);
+x8=2/8good.x(glyph_width);
+x2=x3=x5=0;
+% design our y values for the border design
+y1=y2=0;
+y7=y8=1/3good.y(glyph_height);
+y3=y4=2/3good.y(glyph_height);
+y5=y6=good.y(glyph_height);
+
+draw z5--z6--z7--z8;
+draw z1--z2--z3--z4;
+%draw bot z5--z3;
+%draw top z1--z7;
+
+labels(range 1 thru 8);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"S border design";
+beginchar("S",glyph_width#,glyph_height#,0);
+pickup bigger;
+% define our x values for the border design
+x1=x6=x7=0;
+x2=x3=x8=good.x(glyph_width);
+x4=good.x(2/8glyph_width);
+x5=good.x(6/8glyph_width);
+
+y1=y2=0;
+y5=y6=good.y(1/3glyph_height);
+y3=y4=good.y(2/3glyph_height);
+y7=y8=good.y(glyph_height);
+
+draw z1--z2--z3--z4;
+draw z5--z6--z7--z8;
+%draw top z1--z6;
+%draw bot z8--z3;
+cullit;
+
+labels(range 1 thru 8);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 1 (top-left)";
+beginchar("a",uniform_square#,uniform_square#,0);
+
+x1=x2=good.x(1/10uniform_square);
+x3=x4=good.x(4/10uniform_square);
+x5=x8=good.x(uniform_square);
+x6=x7=good.x(2/10uniform_square);
+
+y1=y6=good.y(0);
+y2=y3=good.y(6/10uniform_square);
+y7=y8=good.y(8/10uniform_square);
+y4=y5=good.y(9/10uniform_square);
+
+pickup chunkypen;
+draw z1--z2--z3--z4--z5;
+pickup bigpen;
+draw z6--z7--z8;
+p1:=currentpicture;
+
+labels(range 1 thru 8);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 2 (top-middle)";
+beginchar("b",uniform_square#,uniform_square#,0);
+
+x1=x3=good.x(0);
+x2=x4=good.x(uniform_square);
+
+y1=y2=good.y(9/10uniform_square);
+y3=y4=good.y(8/10uniform_square);
+
+pickup chunkypen;
+draw z1--z2;
+pickup bigpen;
+draw z3--z4;
+p2:=currentpicture;
+
+labels(1,2,3,4);
+
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 3 (top-right)";
+beginchar("c",uniform_square#,uniform_square#,0);
+
+x1=x6=good.x(0);
+x2=x3=good.x(6/10uniform_square);
+x7=x8=good.x(8/10uniform_square);
+x4=x5=good.x(9/10uniform_square);
+
+y1=y2=good.y(9/10uniform_square);
+y6=y7=good.y(8/10uniform_square);
+y3=y4=good.y(6/10uniform_square);
+y5=y8=good.y(0);
+
+pickup chunkypen;
+draw z1--z2--z3--z4--z5;
+pickup bigpen;
+draw z6--z7--z8;
+p3:=currentpicture;
+
+labels(range 1 thru 8);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 4 (middle-left)";
+beginchar("d",uniform_square#,uniform_square#,0);
+
+x1=x2=good.x(1/10uniform_square);
+x3=x4=good.x(2/10uniform_square);
+y1=y3=good.y(0);
+y2=y4=good.y(uniform_square);
+
+pickup chunkypen;
+draw z1--z2;
+pickup bigpen;
+draw z3--z4;
+p4:=currentpicture;
+
+labels(1,2,3,4);
+
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% (MO) The following commented-out lines are Doug's original definitions.
+%
+% "Overlapping thick\thin line border design--- character 5 (middle-right)";
+% beginchar("e",uniform_square#,uniform_square#,0);
+% currentpicture:=currentpicture + p4;
+% currentpicture:=currentpicture reflectedabout((.5[0,0],0),(.5[0,0],1));
+% endchar;
+%
+% They have been replaced by
+
+"Overlapping thick\thin line border design--- character 5 (middle-right)";
+beginchar("e",uniform_square#,uniform_square#,0);
+x1=x2=good.x(9/10uniform_square);
+x3=x4=good.x(8/10uniform_square);
+y1=y3=good.y(0);
+y2=y4=good.y(uniform_square);
+pickup chunkypen;
+draw z1--z2;
+pickup bigpen;
+draw z3--z4;
+p4:=currentpicture;
+labels(1,2,3,4);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 6 (bottom-left)";
+beginchar("f",uniform_square#,uniform_square#,0);
+currentpicture:=currentpicture + p1;
+currentpicture:=currentpicture
+reflectedabout((0,.5[0,uniform_square]),(1,.5[0,uniform_square]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 7 (bottom-middle)";
+beginchar("g",uniform_square#,uniform_square#,0);
+currentpicture:=currentpicture + p2;
+currentpicture:=currentpicture
+reflectedabout((0,.5[0,uniform_square]),(1,.5[0,uniform_square]));
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+"Overlapping thick\thin line border design--- character 8 (bottom-right)";
+beginchar("h",uniform_square#,uniform_square#,0);
+currentpicture:=currentpicture + p3;
+currentpicture:=currentpicture
+reflectedabout((0,.5[0,uniform_square]),(1,.5[0,uniform_square]));
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+bye
diff --git a/Master/texmf-dist/fonts/source/public/niceframe/karta.mf b/Master/texmf-dist/fonts/source/public/niceframe/karta.mf
new file mode 100644
index 00000000000..0b37a6a37c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/niceframe/karta.mf
@@ -0,0 +1,7790 @@
+mode_setup;
+smoothing := 0; autorounding := 0;
+FS#:=FontSize/1000;
+define_pixels(FS);
+
+beginchar (32,280*FS#,0*FS#,0*FS#);
+"space";
+path P[];
+P1 = ((0,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (33,560*FS#,650*FS#,0*FS#);
+"exclam";
+path P[];
+P1 = ((30,400)
+.. controls (30,260) and (140,150)
+.. (280,150)
+.. controls (420,150) and (530,260)
+.. (530,400)
+.. controls (530,540) and (420,650)
+.. (280,650)
+.. controls (140,650) and (30,540)
+.. (30,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((50,400)
+.. controls (50,529) and (151,630)
+.. (280,630)
+.. controls (409,630) and (510,529)
+.. (510,400)
+.. controls (510,271) and (409,170)
+.. (280,170)
+.. controls (151,170) and (50,271)
+.. (50,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (34,620*FS#,741*FS#,0*FS#);
+"quotedbl";
+path P[];
+P1 = ((605,230)
+-- (605,571)
+-- (310,741)
+-- (15,571)
+-- (15,230)
+-- (310,60)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((585,238)
+-- (310,82)
+-- (35,238)
+-- (35,562)
+-- (310,719)
+-- (585,562)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((513,255)
+-- (310,659)
+-- (106,255)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((140,275)
+-- (310,617)
+-- (481,275)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((268,389)
+.. controls (268,365) and (286,347)
+.. (310,347)
+.. controls (334,347) and (352,365)
+.. (352,389)
+.. controls (352,414) and (334,432)
+.. (310,432)
+.. controls (286,432) and (268,414)
+.. (268,389)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (35,560*FS#,650*FS#,0*FS#);
+"numbersign";
+path P[];
+P1 = ((530,150)
+-- (280,650)
+-- (30,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((65,170)
+-- (280,600)
+-- (495,170)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (36,560*FS#,683*FS#,0*FS#);
+"dollar";
+path P[];
+P1 = ((563,400)
+-- (280,683)
+-- (-3,400)
+-- (280,117)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((280,147)
+-- (27,400)
+-- (280,653)
+-- (533,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (37,560*FS#,650*FS#,0*FS#);
+"percent";
+path P[];
+P1 = ((424,150)
+-- (569,400)
+-- (424,650)
+-- (136,650)
+-- (-9,400)
+-- (136,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((148,170)
+-- (15,400)
+-- (148,630)
+-- (412,630)
+-- (545,400)
+-- (412,170)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (38,1236*FS#,916*FS#,216*FS#);
+"ampersand";
+path P[];
+P1 = ((1130,192)
+-- (1132,194)
+-- (928,330)
+-- (1166,432)
+-- (1164,434)
+-- (876,402)
+-- (1038,808)
+-- (1036,810)
+-- (806,542)
+-- (790,682)
+-- (720,584)
+-- (402,916)
+-- (400,914)
+-- (528,534)
+-- (392,558)
+-- (518,424)
+-- (18,536)
+-- (16,534)
+-- (420,318)
+-- (270,232)
+-- (272,230)
+-- (446,242)
+-- (60,-52)
+-- (62,-54)
+-- (524,50)
+-- (532,-210)
+-- (710,24)
+-- (804,-88)
+-- (810,68)
+-- (1230,-216)
+-- (1232,-214)
+-- (894,224)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (39,620*FS#,741*FS#,0*FS#);
+"quotesingle";
+path P[];
+P1 = ((605,230)
+-- (605,571)
+-- (310,741)
+-- (15,571)
+-- (15,230)
+-- (310,60)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((585,238)
+-- (310,82)
+-- (35,238)
+-- (35,562)
+-- (310,719)
+-- (585,562)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((365,400)
+.. controls (365,432) and (341,456)
+.. (310,456)
+.. controls (279,456) and (255,432)
+.. (255,400)
+.. controls (255,370) and (279,346)
+.. (310,346)
+.. controls (341,346) and (365,370)
+.. (365,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (40,232*FS#,669*FS#,0*FS#);
+"parenleft";
+path P[];
+P1 = ((202,47)
+-- (184,47)
+-- (150,105)
+-- (150,419)
+-- (167,464)
+-- (135,464)
+-- (135,596)
+.. controls (135,626) and (126,651)
+.. (116,669)
+.. controls (106,651) and (97,626)
+.. (97,596)
+-- (97,464)
+-- (65,464)
+-- (82,419)
+-- (82,105)
+-- (48,47)
+-- (30,47)
+-- (30,23)
+-- (40,23)
+-- (53,0)
+-- (179,0)
+-- (192,23)
+-- (202,23)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (41,224*FS#,720*FS#,0*FS#);
+"parenright";
+path P[];
+P1 = ((142,545)
+.. controls (142,559) and (130,565)
+.. (127,565)
+-- (127,658)
+.. controls (127,679) and (120,699)
+.. (112,720)
+.. controls (104,699) and (97,679)
+.. (97,658)
+-- (97,565)
+.. controls (94,565) and (82,559)
+.. (82,545)
+-- (82,389)
+.. controls (79,389) and (67,383)
+.. (67,369)
+-- (67,68)
+.. controls (67,52) and (48,38)
+.. (30,34)
+-- (46,0)
+-- (89,0)
+-- (112,27)
+-- (135,0)
+-- (178,0)
+-- (194,34)
+.. controls (176,38) and (157,52)
+.. (157,68)
+-- (157,369)
+.. controls (157,383) and (145,389)
+.. (142,389)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (42,1538*FS#,1037*FS#,237*FS#);
+"asterisk";
+path P[];
+P1 = ((1538,327)
+-- (862,580)
+-- (989,1035)
+-- (987,1037)
+-- (585,616)
+-- (440,791)
+-- (454,552)
+-- (0,468)
+-- (317,287)
+-- (188,58)
+-- (416,58)
+-- (463,-237)
+-- (661,65)
+-- (918,-110)
+-- (920,-108)
+-- (788,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (43,600*FS#,625*FS#,0*FS#);
+"plus";
+path P[];
+P1 = ((485,175)
+.. controls (521,175) and (550,204)
+.. (550,240)
+.. controls (550,275) and (521,305)
+.. (485,305)
+.. controls (450,305) and (420,275)
+.. (420,240)
+.. controls (420,204) and (450,175)
+.. (485,175)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((115,175)
+.. controls (151,175) and (180,204)
+.. (180,240)
+.. controls (180,275) and (151,305)
+.. (115,305)
+.. controls (80,305) and (50,275)
+.. (50,240)
+.. controls (50,204) and (80,175)
+.. (115,175)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((300,495)
+.. controls (336,495) and (365,524)
+.. (365,560)
+.. controls (365,595) and (336,625)
+.. (300,625)
+.. controls (265,625) and (235,595)
+.. (235,560)
+.. controls (235,524) and (265,495)
+.. (300,495)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (44,1056*FS#,684*FS#,0*FS#);
+"comma";
+path P[];
+P1 = ((942,613)
+.. controls (927,631) and (902,650)
+.. (872,655)
+-- (718,683)
+.. controls (701,686) and (683,676)
+.. (662,667)
+-- (210,473)
+.. controls (170,456) and (159,454)
+.. (136,423)
+-- (37,288)
+.. controls (28,276) and (24,251)
+.. (44,243)
+-- (330,123)
+.. controls (367,108) and (410,115)
+.. (444,135)
+-- (1004,471)
+.. controls (1023,482) and (1034,502)
+.. (1020,519)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((224,421)
+.. controls (204,428) and (212,442)
+.. (238,453)
+-- (679,642)
+.. controls (698,650) and (709,656)
+.. (728,653)
+-- (826,635)
+.. controls (849,631) and (839,622)
+.. (825,614)
+-- (401,382)
+.. controls (387,374) and (373,368)
+.. (354,375)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((350,341)
+.. controls (366,335) and (378,325)
+.. (378,293)
+-- (378,187)
+.. controls (378,169) and (364,149)
+.. (330,163)
+-- (92,263)
+.. controls (67,273) and (74,288)
+.. (88,307)
+-- (148,389)
+.. controls (162,408) and (174,403)
+.. (195,396)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((871,597)
+.. controls (888,607) and (902,601)
+.. (912,589)
+-- (968,521)
+.. controls (985,501) and (972,490)
+.. (950,477)
+-- (454,179)
+.. controls (418,157) and (408,165)
+.. (408,201)
+-- (408,311)
+.. controls (408,335) and (416,348)
+.. (430,356)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (45,666*FS#,807*FS#,0*FS#);
+"hyphen";
+path P[];
+P1 = ((323,587)
+-- (343,587)
+-- (343,807)
+-- (323,807)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((409,572)
+-- (423,558)
+-- (579,713)
+-- (565,728)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((446,524)
+-- (446,504)
+-- (666,504)
+-- (666,524)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((243,558)
+-- (257,572)
+-- (102,728)
+-- (87,714)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((220,504)
+-- (220,524)
+-- (0,524)
+-- (0,504)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((473,0)
+-- (398,500)
+.. controls (394,524) and (378,540)
+.. (353,540)
+-- (313,540)
+.. controls (288,540) and (271,524)
+.. (267,500)
+-- (193,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (46,702*FS#,678*FS#,0*FS#);
+"period";
+path P[];
+P1 = ((372,370)
+-- (589,586)
+-- (608,567)
+.. controls (632,542) and (654,508)
+.. (662,472)
+-- (695,505)
+.. controls (683,540) and (652,585)
+.. (613,624)
+.. controls (553,684) and (444,699)
+.. (395,641)
+.. controls (462,658) and (521,654)
+.. (550,625)
+-- (567,607)
+-- (351,391)
+-- (135,607)
+-- (152,625)
+.. controls (181,654) and (240,658)
+.. (307,641)
+.. controls (258,699) and (149,684)
+.. (89,624)
+.. controls (50,585) and (19,540)
+.. (7,505)
+-- (40,472)
+.. controls (48,508) and (70,542)
+.. (94,567)
+-- (113,586)
+-- (330,370)
+-- (66,106)
+-- (87,84)
+-- (351,349)
+-- (615,84)
+-- (637,105)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (47,620*FS#,650*FS#,0*FS#);
+"slash";
+path P[];
+P1 = ((60,400)
+.. controls (60,260) and (170,150)
+.. (310,150)
+.. controls (450,150) and (560,260)
+.. (560,400)
+.. controls (560,540) and (450,650)
+.. (310,650)
+.. controls (170,650) and (60,540)
+.. (60,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((312,170)
+.. controls (181,170) and (80,271)
+.. (80,402)
+-- (308,402)
+-- (308,630)
+.. controls (439,630) and (540,529)
+.. (540,398)
+-- (312,398)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (48,300*FS#,404*FS#,4*FS#);
+"zero";
+path P[];
+P1 = ((150,-4)
+.. controls (230,-5) and (291,59)
+.. (291,199)
+.. controls (291,339) and (230,404)
+.. (150,404)
+.. controls (70,404) and (9,339)
+.. (9,199)
+.. controls (9,59) and (70,-3)
+.. (150,-4)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((150,58)
+.. controls (98,58) and (71,115)
+.. (71,199)
+.. controls (71,284) and (98,342)
+.. (150,342)
+.. controls (202,342) and (229,284)
+.. (229,199)
+.. controls (229,115) and (202,58)
+.. (150,58)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (49,300*FS#,400*FS#,0*FS#);
+"one";
+path P[];
+P1 = ((99,320)
+-- (139,320)
+-- (139,0)
+-- (201,0)
+-- (201,400)
+-- (146,400)
+.. controls (136,384) and (116,373)
+.. (99,370)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (50,300*FS#,404*FS#,0*FS#);
+"two";
+path P[];
+P1 = ((284,0)
+-- (284,62)
+-- (90,62)
+.. controls (94,95) and (118,123)
+.. (145,142)
+.. controls (197,179) and (286,203)
+.. (288,292)
+.. controls (289,347) and (243,404)
+.. (151,404)
+.. controls (79,404) and (28,353)
+.. (16,299)
+-- (75,285)
+.. controls (88,324) and (106,342)
+.. (152,342)
+.. controls (192,342) and (226,322)
+.. (226,289)
+.. controls (226,245) and (128,207)
+.. (82,169)
+.. controls (38,133) and (13,75)
+.. (13,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (51,300*FS#,404*FS#,4*FS#);
+"three";
+path P[];
+P1 = ((153,186)
+.. controls (204,188) and (225,160)
+.. (225,132)
+.. controls (225,99) and (194,58)
+.. (150,58)
+.. controls (94,58) and (80,95)
+.. (74,115)
+-- (13,99)
+.. controls (33,34) and (79,-2)
+.. (146,-4)
+.. controls (217,-5) and (287,58)
+.. (287,134)
+.. controls (287,174) and (266,207)
+.. (251,217)
+.. controls (266,243) and (273,262)
+.. (273,297)
+.. controls (273,332) and (248,404)
+.. (148,404)
+.. controls (82,404) and (47,353)
+.. (31,327)
+-- (91,302)
+.. controls (104,326) and (117,342)
+.. (151,342)
+.. controls (180,342) and (211,319)
+.. (211,291)
+.. controls (211,265) and (197,248)
+.. (181,248)
+-- (153,248)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (52,300*FS#,400*FS#,0*FS#);
+"four";
+path P[];
+P1 = ((203,400)
+-- (0,137)
+-- (0,101)
+-- (200,101)
+-- (200,0)
+-- (262,0)
+-- (262,101)
+-- (299,101)
+-- (299,156)
+-- (262,156)
+-- (262,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((200,300)
+-- (200,156)
+-- (89,156)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (53,300*FS#,400*FS#,4*FS#);
+"five";
+path P[];
+P1 = ((28,198)
+-- (85,180)
+.. controls (98,206) and (120,217)
+.. (148,217)
+.. controls (186,217) and (225,194)
+.. (225,148)
+.. controls (225,69) and (150,58)
+.. (111,58)
+.. controls (83,58) and (64,65)
+.. (44,76)
+-- (13,18)
+.. controls (34,9) and (69,-5)
+.. (117,-4)
+.. controls (209,-1) and (287,62)
+.. (287,148)
+.. controls (287,230) and (213,279)
+.. (145,279)
+.. controls (122,279) and (110,278)
+.. (94,270)
+-- (97,338)
+-- (264,338)
+-- (264,400)
+-- (37,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (54,300*FS#,404*FS#,4*FS#);
+"six";
+path P[];
+P1 = ((171,404)
+.. controls (65,325) and (11,211)
+.. (11,126)
+.. controls (11,32) and (88,-4)
+.. (150,-4)
+.. controls (212,-4) and (289,42)
+.. (289,118)
+.. controls (289,196) and (229,241)
+.. (157,241)
+.. controls (137,241) and (120,240)
+.. (104,235)
+.. controls (138,302) and (186,347)
+.. (205,356)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((150,58)
+.. controls (96,59) and (73,89)
+.. (73,119)
+.. controls (73,148) and (96,179)
+.. (150,179)
+.. controls (204,179) and (227,148)
+.. (227,119)
+.. controls (227,89) and (204,57)
+.. (150,58)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (55,300*FS#,400*FS#,0*FS#);
+"seven";
+path P[];
+P1 = ((163,0)
+.. controls (169,160) and (228,282)
+.. (286,333)
+-- (286,400)
+-- (14,400)
+-- (14,338)
+-- (207,338)
+.. controls (136,243) and (99,123)
+.. (101,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (56,300*FS#,404*FS#,4*FS#);
+"eight";
+path P[];
+P1 = ((150,-4)
+.. controls (230,-3) and (284,50)
+.. (284,126)
+.. controls (284,181) and (258,203)
+.. (238,219)
+.. controls (247,233) and (270,251)
+.. (270,292)
+.. controls (270,349) and (226,404)
+.. (150,404)
+.. controls (74,404) and (30,345)
+.. (30,288)
+.. controls (30,247) and (53,229)
+.. (62,215)
+.. controls (42,199) and (16,177)
+.. (16,122)
+.. controls (16,50) and (70,-5)
+.. (150,-4)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((150,245)
+.. controls (111,245) and (92,271)
+.. (92,293)
+.. controls (92,316) and (111,342)
+.. (150,342)
+.. controls (189,342) and (208,316)
+.. (208,293)
+.. controls (208,271) and (189,245)
+.. (150,245)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((150,186)
+.. controls (201,186) and (222,156)
+.. (222,121)
+.. controls (222,88) and (201,58)
+.. (150,58)
+.. controls (99,58) and (78,88)
+.. (78,121)
+.. controls (78,156) and (99,186)
+.. (150,186)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (57,300*FS#,402*FS#,4*FS#);
+"nine";
+path P[];
+P1 = ((120,-4)
+.. controls (228,71) and (286,183)
+.. (289,268)
+.. controls (292,361) and (217,400)
+.. (155,402)
+.. controls (93,404) and (14,361)
+.. (11,286)
+.. controls (9,208) and (67,160)
+.. (140,158)
+.. controls (160,157) and (176,158)
+.. (192,163)
+.. controls (156,96) and (106,54)
+.. (88,46)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((150,342)
+.. controls (204,342) and (227,311)
+.. (227,281)
+.. controls (227,251) and (204,219)
+.. (150,220)
+.. controls (96,221) and (73,251)
+.. (73,281)
+.. controls (73,311) and (96,342)
+.. (150,342)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (58,620*FS#,650*FS#,0*FS#);
+"colon";
+path P[];
+P1 = ((560,150)
+-- (560,650)
+-- (60,650)
+-- (60,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((80,170)
+-- (80,630)
+-- (540,630)
+-- (540,170)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((255,400)
+.. controls (255,369) and (279,345)
+.. (310,345)
+.. controls (341,345) and (365,369)
+.. (365,400)
+.. controls (365,431) and (341,455)
+.. (310,455)
+.. controls (279,455) and (255,431)
+.. (255,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (59,620*FS#,650*FS#,0*FS#);
+"semicolon";
+path P[];
+P1 = ((60,400)
+.. controls (60,260) and (170,150)
+.. (310,150)
+.. controls (450,150) and (560,260)
+.. (560,400)
+.. controls (560,540) and (450,650)
+.. (310,650)
+.. controls (170,650) and (60,540)
+.. (60,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((80,400)
+.. controls (80,529) and (181,630)
+.. (310,630)
+.. controls (439,630) and (540,529)
+.. (540,400)
+.. controls (540,271) and (439,170)
+.. (310,170)
+.. controls (181,170) and (80,271)
+.. (80,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((255,400)
+.. controls (255,369) and (279,345)
+.. (310,345)
+.. controls (341,345) and (365,369)
+.. (365,400)
+.. controls (365,431) and (341,455)
+.. (310,455)
+.. controls (279,455) and (255,431)
+.. (255,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (60,700*FS#,643*FS#,0*FS#);
+"less";
+path P[];
+P1 = ((468,157)
+-- (568,208)
+-- (670,402)
+-- (546,643)
+-- (209,643)
+-- (112,593)
+-- (30,384)
+-- (130,157)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((145,177)
+-- (52,387)
+-- (129,583)
+-- (467,583)
+-- (568,384)
+-- (462,177)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (61,614*FS#,750*FS#,0*FS#);
+"equal";
+path P[];
+P1 = ((140,640)
+-- (30,640)
+-- (30,610)
+-- (140,610)
+-- (140,0)
+-- (170,0)
+-- (170,610)
+-- (264,610)
+-- (264,389)
+-- (486,389)
+-- (486,610)
+-- (584,610)
+-- (584,640)
+-- (170,640)
+-- (170,750)
+-- (140,750)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (62,632*FS#,687*FS#,0*FS#);
+"greater";
+path P[];
+P1 = ((153,260)
+.. controls (129,285) and (86,277)
+.. (58,249)
+.. controls (30,221) and (30,171)
+.. (58,143)
+.. controls (86,115) and (136,115)
+.. (164,143)
+.. controls (192,171) and (199,214)
+.. (175,239)
+-- (316,380)
+-- (463,231)
+.. controls (439,207) and (446,164)
+.. (473,136)
+.. controls (502,108) and (551,108)
+.. (579,136)
+.. controls (608,164) and (608,214)
+.. (579,242)
+.. controls (551,270) and (509,277)
+.. (484,253)
+-- (337,401)
+-- (602,666)
+-- (580,687)
+-- (316,422)
+-- (52,687)
+-- (30,666)
+-- (295,401)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (63,568*FS#,654*FS#,0*FS#);
+"question";
+path P[];
+P1 = ((538,146)
+-- (538,654)
+-- (30,654)
+-- (30,146)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((518,634)
+-- (518,166)
+-- (50,166)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (64,560*FS#,600*FS#,0*FS#);
+"at";
+path P[];
+P1 = ((480,200)
+-- (480,600)
+-- (80,600)
+-- (80,200)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((100,220)
+-- (100,580)
+-- (460,580)
+-- (460,220)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (65,653*FS#,701*FS#,0*FS#);
+"A";
+path P[];
+P1 = ((342,372)
+-- (463,303)
+-- (469,194)
+-- (498,192)
+-- (493,286)
+-- (579,236)
+-- (593,261)
+-- (506,311)
+-- (590,354)
+-- (573,376)
+-- (477,328)
+-- (357,401)
+-- (477,472)
+-- (573,423)
+-- (590,446)
+-- (506,489)
+-- (593,539)
+-- (579,564)
+-- (493,514)
+-- (498,608)
+-- (469,605)
+-- (463,497)
+-- (342,428)
+-- (342,567)
+-- (432,626)
+-- (420,652)
+-- (342,601)
+-- (342,701)
+-- (312,701)
+-- (312,601)
+-- (234,652)
+-- (223,626)
+-- (312,567)
+-- (312,428)
+-- (192,497)
+-- (186,605)
+-- (156,608)
+-- (161,514)
+-- (75,564)
+-- (60,539)
+-- (148,489)
+-- (63,446)
+-- (81,423)
+-- (176,472)
+-- (297,401)
+-- (176,328)
+-- (81,376)
+-- (63,354)
+-- (148,311)
+-- (60,261)
+-- (75,236)
+-- (161,286)
+-- (156,192)
+-- (186,194)
+-- (192,303)
+-- (312,372)
+-- (312,233)
+-- (223,174)
+-- (234,148)
+-- (312,199)
+-- (312,99)
+-- (342,99)
+-- (342,199)
+-- (420,148)
+-- (432,174)
+-- (342,233)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (66,520*FS#,750*FS#,0*FS#);
+"B";
+path P[];
+P1 = ((230,750)
+-- (230,629)
+-- (126,629)
+-- (126,574)
+-- (230,574)
+-- (230,320)
+.. controls (155,305) and (100,240)
+.. (100,160)
+.. controls (100,71) and (171,0)
+.. (260,0)
+.. controls (351,0) and (420,71)
+.. (420,160)
+.. controls (420,240) and (367,305)
+.. (290,320)
+-- (290,574)
+-- (396,574)
+-- (396,629)
+-- (290,629)
+-- (290,750)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (67,890*FS#,700*FS#,0*FS#);
+"C";
+path P[];
+P1 = ((150,50)
+-- (30,50)
+-- (30,0)
+-- (860,0)
+-- (860,50)
+-- (740,50)
+-- (740,608)
+-- (670,608)
+-- (670,420)
+-- (630,420)
+-- (630,524)
+-- (580,614)
+-- (530,524)
+-- (530,265)
+-- (490,265)
+-- (490,700)
+-- (360,700)
+-- (360,360)
+-- (290,360)
+-- (290,200)
+-- (250,200)
+-- (250,490)
+-- (150,490)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (68,760*FS#,553*FS#,0*FS#);
+"D";
+path P[];
+P1 = ((380,553)
+-- (122,40)
+-- (30,40)
+-- (30,0)
+-- (730,0)
+-- (730,40)
+-- (638,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (69,694*FS#,697*FS#,0*FS#);
+"E";
+path P[];
+P1 = ((347,697)
+-- (260,471)
+-- (30,471)
+-- (206,329)
+-- (141,102)
+-- (347,236)
+-- (553,102)
+-- (478,329)
+-- (664,471)
+-- (435,471)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((416,451)
+-- (595,451)
+-- (450,340)
+-- (510,157)
+-- (347,267)
+-- (184,157)
+-- (237,340)
+-- (99,451)
+-- (279,451)
+-- (347,634)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (70,689*FS#,585*FS#,9*FS#);
+"F";
+path P[];
+P1 = ((109,538)
+.. controls (109,511) and (130,491)
+.. (157,491)
+.. controls (183,491) and (204,511)
+.. (204,538)
+.. controls (204,564) and (183,585)
+.. (157,585)
+.. controls (130,585) and (109,564)
+.. (109,538)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((416,491)
+.. controls (416,466) and (436,447)
+.. (460,447)
+.. controls (485,447) and (504,466)
+.. (504,491)
+.. controls (504,515) and (485,535)
+.. (460,535)
+.. controls (436,535) and (416,515)
+.. (416,491)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((284,511)
+.. controls (278,525) and (272,526)
+.. (260,519)
+-- (250,514)
+.. controls (237,507) and (236,503)
+.. (243,489)
+-- (301,379)
+.. controls (307,366) and (313,365)
+.. (326,372)
+-- (335,376)
+.. controls (348,384) and (350,388)
+.. (343,401)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((580,463)
+.. controls (575,474) and (570,475)
+.. (559,470)
+-- (551,465)
+.. controls (540,460) and (538,455)
+.. (544,444)
+-- (595,349)
+.. controls (600,338) and (604,337)
+.. (615,343)
+-- (624,348)
+.. controls (635,353) and (636,357)
+.. (631,368)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((350,-7)
+-- (382,16)
+-- (292,261)
+.. controls (315,284) and (315,321)
+.. (302,351)
+-- (239,469)
+.. controls (225,495) and (205,493)
+.. (189,488)
+.. controls (159,481) and (146,452)
+.. (144,436)
+-- (136,363)
+-- (30,294)
+-- (36,273)
+-- (53,279)
+-- (150,124)
+-- (125,7)
+-- (173,-9)
+-- (189,62)
+-- (226,0)
+-- (254,0)
+-- (195,95)
+-- (204,140)
+-- (245,206)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((519,0)
+-- (546,0)
+-- (494,91)
+-- (509,148)
+-- (538,181)
+-- (630,-4)
+-- (659,19)
+-- (585,245)
+.. controls (604,264) and (612,289)
+.. (593,324)
+-- (540,426)
+.. controls (527,449) and (507,450)
+.. (494,443)
+.. controls (471,431) and (452,422)
+.. (448,399)
+-- (442,349)
+-- (340,271)
+-- (350,252)
+-- (368,261)
+-- (452,117)
+-- (425,11)
+-- (469,-4)
+-- (486,57)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((207,290)
+.. controls (188,269) and (170,222)
+.. (157,157)
+-- (75,287)
+-- (164,320)
+-- (175,355)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+P8 = ((509,271)
+-- (470,194)
+-- (459,152)
+-- (390,273)
+-- (458,310)
+-- (477,349)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P8)>=0: fill else: unfill reverse fi P8;
+endchar;
+
+beginchar (71,550*FS#,358*FS#,0*FS#);
+"G";
+path P[];
+P1 = ((500,0)
+-- (500,30)
+-- (428,30)
+-- (428,226)
+-- (500,207)
+-- (500,237)
+-- (50,358)
+-- (50,328)
+-- (122,309)
+-- (122,30)
+-- (50,30)
+-- (50,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (72,1026*FS#,524*FS#,0*FS#);
+"H";
+path P[];
+P1 = ((150,309)
+.. controls (146,310) and (141,307)
+.. (140,303)
+-- (138,292)
+.. controls (137,287) and (140,283)
+.. (144,282)
+-- (412,225)
+.. controls (416,224) and (421,227)
+.. (422,231)
+-- (424,243)
+.. controls (425,247) and (421,252)
+.. (418,253)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((641,206)
+.. controls (637,207) and (632,204)
+.. (631,200)
+-- (629,189)
+.. controls (628,184) and (631,180)
+.. (635,179)
+-- (903,122)
+.. controls (907,121) and (912,124)
+.. (913,128)
+-- (915,140)
+.. controls (916,144) and (912,149)
+.. (909,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((523,292)
+.. controls (479,292) and (450,263)
+.. (450,219)
+.. controls (450,175) and (479,146)
+.. (523,146)
+.. controls (567,146) and (596,175)
+.. (596,219)
+.. controls (596,263) and (567,292)
+.. (523,292)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((996,24)
+.. controls (996,30) and (990,35)
+.. (984,36)
+-- (71,227)
+.. controls (40,233) and (30,224)
+.. (30,206)
+-- (30,0)
+-- (460,0)
+.. controls (482,0) and (507,14)
+.. (520,35)
+.. controls (533,14) and (558,0)
+.. (580,0)
+.. controls (602,0) and (627,14)
+.. (640,35)
+.. controls (653,14) and (678,0)
+.. (700,0)
+.. controls (722,0) and (747,14)
+.. (760,35)
+.. controls (773,14) and (798,0)
+.. (820,0)
+.. controls (842,0) and (867,14)
+.. (880,35)
+.. controls (893,14) and (918,0)
+.. (940,0)
+-- (996,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((427,504)
+-- (427,524)
+-- (414,524)
+-- (326,445)
+-- (120,488)
+-- (114,456)
+.. controls (103,397) and (187,337)
+.. (245,325)
+-- (442,284)
+.. controls (462,280) and (484,320)
+.. (544,307)
+.. controls (602,294) and (607,251)
+.. (626,246)
+-- (892,190)
+.. controls (912,186) and (925,199)
+.. (928,217)
+-- (940,289)
+.. controls (943,305) and (933,317)
+.. (915,321)
+-- (354,439)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((523,269)
+.. controls (553,269) and (573,249)
+.. (573,219)
+.. controls (573,189) and (553,169)
+.. (523,169)
+.. controls (493,169) and (473,189)
+.. (473,219)
+.. controls (473,249) and (493,269)
+.. (523,269)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (73,946*FS#,857*FS#,58*FS#);
+"I";
+path P[];
+P1 = ((702,-58)
+.. controls (736,-58) and (742,-50)
+.. (753,-18)
+-- (931,539)
+.. controls (939,563) and (946,593)
+.. (946,619)
+.. controls (946,659) and (909,700)
+.. (867,718)
+-- (581,837)
+.. controls (553,849) and (513,857)
+.. (473,857)
+.. controls (433,857) and (393,849)
+.. (366,837)
+-- (79,718)
+.. controls (38,700) and (0,659)
+.. (0,619)
+.. controls (0,593) and (7,563)
+.. (15,539)
+-- (193,-18)
+.. controls (205,-50) and (210,-58)
+.. (245,-58)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((260,-28)
+.. controls (227,-28) and (223,-21)
+.. (216,0)
+-- (45,530)
+.. controls (38,552) and (30,580)
+.. (30,605)
+.. controls (30,642) and (67,680)
+.. (105,697)
+-- (373,808)
+.. controls (398,820) and (436,827)
+.. (473,827)
+.. controls (510,827) and (548,820)
+.. (574,808)
+-- (841,697)
+.. controls (880,680) and (916,642)
+.. (916,605)
+.. controls (916,580) and (908,552)
+.. (901,530)
+-- (731,0)
+.. controls (724,-21) and (719,-28)
+.. (687,-28)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (74,732*FS#,697*FS#,0*FS#);
+"J";
+path P[];
+P1 = ((365,104)
+-- (367,104)
+-- (377,214)
+-- (391,190)
+-- (487,197)
+-- (487,243)
+.. controls (487,251) and (484,259)
+.. (479,260)
+-- (381,269)
+-- (400,453)
+-- (550,453)
+-- (702,484)
+-- (702,531)
+.. controls (702,540) and (697,543)
+.. (689,544)
+-- (546,556)
+-- (405,556)
+.. controls (402,612) and (400,650)
+.. (398,655)
+.. controls (394,660) and (384,662)
+.. (379,662)
+.. controls (374,677) and (372,697)
+.. (366,697)
+.. controls (360,697) and (358,677)
+.. (353,662)
+.. controls (348,662) and (338,660)
+.. (335,655)
+.. controls (332,650) and (330,612)
+.. (327,556)
+-- (186,556)
+-- (43,544)
+.. controls (35,543) and (30,540)
+.. (30,531)
+-- (30,484)
+-- (182,453)
+-- (332,453)
+-- (351,269)
+-- (253,260)
+.. controls (248,259) and (245,251)
+.. (245,243)
+-- (245,197)
+-- (341,190)
+-- (355,214)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (75,357*FS#,600*FS#,0*FS#);
+"K";
+path P[];
+P1 = ((221,600)
+-- (50,600)
+-- (136,300)
+-- (50,0)
+-- (221,0)
+-- (307,300)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (76,1020*FS#,810*FS#,10*FS#);
+"L";
+path P[];
+P1 = ((60,810)
+.. controls (30,810) and (0,780)
+.. (0,750)
+-- (0,50)
+.. controls (0,20) and (30,-8)
+.. (60,-10)
+-- (960,-10)
+.. controls (990,-10) and (1020,20)
+.. (1020,50)
+-- (1020,750)
+.. controls (1020,780) and (990,810)
+.. (960,810)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((941,780)
+.. controls (969,780) and (990,760)
+.. (990,732)
+-- (990,68)
+.. controls (990,40) and (969,20)
+.. (941,20)
+-- (78,20)
+.. controls (50,22) and (30,40)
+.. (30,68)
+-- (30,732)
+.. controls (30,760) and (50,780)
+.. (78,780)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (77,586*FS#,890*FS#,52*FS#);
+"M";
+path P[];
+P1 = ((30,-52)
+-- (61,-52)
+-- (278,311)
+-- (278,206)
+.. controls (264,206) and (256,194)
+.. (256,174)
+-- (256,-52)
+-- (330,-52)
+-- (330,174)
+.. controls (330,191) and (322,206)
+.. (308,206)
+-- (308,311)
+-- (525,-52)
+-- (556,-52)
+-- (402,850)
+-- (308,850)
+-- (308,890)
+-- (278,890)
+-- (278,850)
+-- (184,850)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((478,317)
+-- (538,-32)
+-- (533,-32)
+-- (324,317)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((308,337)
+-- (308,632)
+-- (311,632)
+-- (466,337)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((120,337)
+-- (275,632)
+-- (278,632)
+-- (278,337)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((424,632)
+-- (468,374)
+-- (466,374)
+-- (330,632)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((256,632)
+-- (120,374)
+-- (118,374)
+-- (162,632)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((308,652)
+-- (308,830)
+-- (312,830)
+-- (402,652)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+P8 = ((184,652)
+-- (274,830)
+-- (278,830)
+-- (278,652)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P8)>=0: fill else: unfill reverse fi P8;
+P9 = ((390,830)
+-- (418,668)
+-- (413,668)
+-- (330,830)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P9)>=0: fill else: unfill reverse fi P9;
+P10 = ((256,830)
+-- (173,668)
+-- (168,668)
+-- (196,830)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P10)>=0: fill else: unfill reverse fi P10;
+P11 = ((261,317)
+-- (53,-32)
+-- (48,-32)
+-- (108,317)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P11)>=0: fill else: unfill reverse fi P11;
+endchar;
+
+beginchar (78,642*FS#,554*FS#,0*FS#);
+"N";
+path P[];
+P1 = ((459,511)
+.. controls (414,539) and (367,554)
+.. (317,554)
+.. controls (267,554) and (220,539)
+.. (175,511)
+-- (276,337)
+.. controls (292,345) and (302,351)
+.. (317,351)
+.. controls (332,351) and (350,345)
+.. (366,337)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((414,251)
+.. controls (413,233) and (410,214)
+.. (403,201)
+.. controls (396,187) and (386,181)
+.. (371,171)
+-- (478,0)
+.. controls (524,27) and (559,61)
+.. (582,105)
+.. controls (606,150) and (615,198)
+.. (611,251)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((31,251)
+.. controls (27,198) and (36,150)
+.. (60,105)
+.. controls (83,61) and (118,27)
+.. (164,0)
+-- (271,171)
+.. controls (256,181) and (246,187)
+.. (239,201)
+.. controls (232,214) and (229,233)
+.. (228,251)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((273,254)
+.. controls (273,227) and (294,206)
+.. (321,206)
+.. controls (348,206) and (369,227)
+.. (369,254)
+.. controls (369,281) and (348,302)
+.. (321,302)
+.. controls (294,302) and (273,281)
+.. (273,254)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (79,1442*FS#,799*FS#,0*FS#);
+"O";
+path P[];
+P1 = ((0,411)
+.. controls (0,194) and (311,22)
+.. (721,22)
+.. controls (1125,22) and (1442,194)
+.. (1442,411)
+.. controls (1442,628) and (1125,799)
+.. (721,799)
+.. controls (318,799) and (0,628)
+.. (0,411)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((30,411)
+.. controls (30,611) and (335,769)
+.. (721,769)
+.. controls (1108,769) and (1412,611)
+.. (1412,411)
+.. controls (1412,211) and (1108,52)
+.. (721,52)
+.. controls (328,52) and (30,211)
+.. (30,411)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (80,1154*FS#,899*FS#,100*FS#);
+"P";
+path P[];
+P1 = ((52,899)
+.. controls (0,899) and (-13,876)
+.. (12,830)
+-- (537,-66)
+.. controls (563,-111) and (591,-111)
+.. (617,-66)
+-- (1142,830)
+.. controls (1167,876) and (1154,899)
+.. (1102,899)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1065,869)
+.. controls (1116,869) and (1125,858)
+.. (1102,819)
+-- (606,-28)
+.. controls (584,-66) and (570,-66)
+.. (548,-28)
+-- (52,819)
+.. controls (29,858) and (38,869)
+.. (89,869)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (81,676*FS#,750*FS#,0*FS#);
+"Q";
+path P[];
+P1 = ((95,80)
+-- (149,80)
+-- (149,452)
+-- (95,452)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((203,80)
+-- (257,80)
+-- (257,452)
+-- (203,452)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((311,80)
+-- (365,80)
+-- (365,452)
+-- (311,452)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((419,80)
+-- (473,80)
+-- (473,452)
+-- (419,452)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((527,80)
+-- (581,80)
+-- (581,452)
+-- (527,452)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((338,750)
+-- (30,482)
+-- (646,482)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((626,0)
+-- (626,50)
+-- (50,50)
+-- (50,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+endchar;
+
+beginchar (82,695*FS#,717*FS#,0*FS#);
+"R";
+path P[];
+P1 = ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((410,491)
+-- (620,491)
+-- (450,364)
+-- (516,164)
+-- (348,288)
+-- (179,164)
+-- (246,364)
+-- (76,491)
+-- (285,491)
+-- (348,687)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((60,400)
+.. controls (60,561) and (187,687)
+.. (348,687)
+.. controls (508,687) and (635,561)
+.. (635,400)
+.. controls (635,239) and (508,113)
+.. (348,113)
+.. controls (187,113) and (60,239)
+.. (60,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (83,963*FS#,713*FS#,0*FS#);
+"S";
+path P[];
+P1 = ((677,505)
+.. controls (673,538) and (762,498)
+.. (819,500)
+.. controls (871,504) and (876,544)
+.. (933,557)
+-- (933,560)
+.. controls (832,569) and (706,704)
+.. (567,704)
+.. controls (507,704) and (410,633)
+.. (341,633)
+.. controls (278,633) and (226,713)
+.. (187,713)
+.. controls (122,713) and (108,617)
+.. (38,628)
+.. controls (27,629) and (27,613)
+.. (38,612)
+.. controls (99,600) and (75,602)
+.. (125,600)
+.. controls (165,600) and (194,633)
+.. (215,633)
+.. controls (248,633) and (276,609)
+.. (302,583)
+.. controls (342,543) and (403,522)
+.. (403,494)
+-- (403,258)
+.. controls (403,204) and (380,140)
+.. (347,87)
+.. controls (410,117) and (524,187)
+.. (550,266)
+.. controls (567,316) and (642,448)
+.. (671,448)
+.. controls (761,448) and (722,431)
+.. (772,431)
+.. controls (788,431) and (803,429)
+.. (819,426)
+.. controls (811,436) and (796,440)
+.. (784,442)
+.. controls (781,455) and (779,465)
+.. (767,465)
+.. controls (745,465) and (712,460)
+.. (680,469)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (84,695*FS#,717*FS#,0*FS#);
+"T";
+path P[];
+P1 = ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((60,400)
+.. controls (60,561) and (187,687)
+.. (348,687)
+.. controls (508,687) and (635,561)
+.. (635,400)
+.. controls (635,239) and (508,113)
+.. (348,113)
+.. controls (187,113) and (60,239)
+.. (60,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((531,400)
+.. controls (531,508) and (456,584)
+.. (348,584)
+.. controls (240,584) and (164,508)
+.. (164,400)
+.. controls (164,292) and (240,216)
+.. (348,216)
+.. controls (456,216) and (531,292)
+.. (531,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((501,400)
+.. controls (501,309) and (438,246)
+.. (348,246)
+.. controls (257,246) and (194,309)
+.. (194,400)
+.. controls (194,491) and (257,554)
+.. (348,554)
+.. controls (438,554) and (501,491)
+.. (501,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (85,1063*FS#,921*FS#,122*FS#);
+"U";
+path P[];
+P1 = ((30,748)
+.. controls (58,736) and (97,664)
+.. (97,608)
+.. controls (97,545) and (0,460)
+.. (0,299)
+.. controls (0,83) and (151,-88)
+.. (265,-88)
+.. controls (315,-88) and (344,-79)
+.. (367,-69)
+.. controls (391,-60) and (409,-50)
+.. (425,-50)
+.. controls (456,-50) and (499,-84)
+.. (531,-122)
+.. controls (563,-84) and (607,-50)
+.. (638,-50)
+.. controls (654,-50) and (672,-60)
+.. (696,-69)
+.. controls (719,-79) and (747,-88)
+.. (798,-88)
+.. controls (912,-88) and (1063,83)
+.. (1063,299)
+.. controls (1063,460) and (966,545)
+.. (966,608)
+.. controls (967,664) and (1006,736)
+.. (1034,748)
+-- (845,921)
+.. controls (793,862) and (741,824)
+.. (689,824)
+.. controls (637,824) and (555,862)
+.. (531,921)
+.. controls (509,862) and (427,824)
+.. (375,824)
+.. controls (323,824) and (271,862)
+.. (218,921)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((936,608)
+.. controls (951,511) and (1033,452)
+.. (1033,299)
+.. controls (1033,124) and (911,-58)
+.. (795,-58)
+.. controls (764,-58) and (733,-55)
+.. (710,-46)
+.. controls (687,-37) and (670,-20)
+.. (632,-20)
+.. controls (595,-17) and (562,-53)
+.. (531,-83)
+.. controls (500,-53) and (467,-17)
+.. (430,-20)
+.. controls (392,-20) and (375,-37)
+.. (352,-46)
+.. controls (329,-55) and (298,-58)
+.. (267,-58)
+.. controls (151,-58) and (29,124)
+.. (29,299)
+.. controls (29,452) and (111,511)
+.. (126,608)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (86,520*FS#,750*FS#,0*FS#);
+"V";
+path P[];
+P1 = ((420,0)
+-- (420,320)
+-- (275,320)
+-- (275,499)
+-- (420,625)
+-- (245,750)
+-- (245,320)
+-- (100,320)
+-- (100,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (87,968*FS#,848*FS#,48*FS#);
+"W";
+path P[];
+P1 = ((499,-48)
+-- (499,134)
+.. controls (499,158) and (512,180)
+.. (528,180)
+.. controls (554,180) and (659,145)
+.. (711,137)
+.. controls (704,158) and (700,186)
+.. (700,202)
+.. controls (700,226) and (856,332)
+.. (938,394)
+.. controls (896,396) and (846,396)
+.. (846,428)
+.. controls (846,472) and (872,520)
+.. (890,554)
+.. controls (824,530) and (778,518)
+.. (746,518)
+.. controls (730,518) and (734,583)
+.. (739,607)
+-- (737,609)
+.. controls (678,529) and (624,440)
+.. (596,440)
+.. controls (564,440) and (577,482)
+.. (584,513)
+.. controls (603,592) and (628,676)
+.. (645,750)
+.. controls (612,722) and (586,700)
+.. (566,700)
+.. controls (534,700) and (500,780)
+.. (485,848)
+-- (483,848)
+.. controls (468,780) and (434,700)
+.. (402,700)
+.. controls (382,700) and (356,722)
+.. (323,750)
+.. controls (340,676) and (365,592)
+.. (384,513)
+.. controls (391,482) and (404,440)
+.. (372,440)
+.. controls (344,440) and (290,529)
+.. (231,609)
+-- (229,607)
+.. controls (234,583) and (238,518)
+.. (222,518)
+.. controls (190,518) and (144,530)
+.. (78,554)
+.. controls (96,520) and (122,472)
+.. (122,428)
+.. controls (122,396) and (72,396)
+.. (30,394)
+.. controls (112,332) and (268,226)
+.. (268,202)
+.. controls (268,186) and (264,158)
+.. (257,137)
+.. controls (309,145) and (414,180)
+.. (440,180)
+.. controls (456,180) and (469,158)
+.. (469,134)
+-- (469,-48)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (88,698*FS#,700*FS#,0*FS#);
+"X";
+path P[];
+P1 = ((170,428)
+.. controls (114,412) and (30,358)
+.. (30,228)
+.. controls (30,105) and (128,0)
+.. (256,0)
+.. controls (372,0) and (450,62)
+.. (489,117)
+-- (469,175)
+.. controls (428,100) and (353,50)
+.. (258,50)
+.. controls (164,50) and (83,131)
+.. (83,227)
+.. controls (83,321) and (132,364)
+.. (172,378)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((260,440)
+-- (256,566)
+.. controls (282,566) and (318,593)
+.. (318,633)
+.. controls (318,680) and (284,700)
+.. (244,700)
+.. controls (200,700) and (175,666)
+.. (176,633)
+.. controls (177,612) and (192,604)
+.. (193,582)
+-- (203,290)
+-- (460,290)
+-- (538,66)
+-- (672,113)
+-- (655,163)
+-- (576,135)
+-- (505,340)
+-- (264,340)
+-- (262,390)
+-- (433,390)
+-- (431,440)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (89,700*FS#,800*FS#,0*FS#);
+"Y";
+path P[];
+P1 = ((0,800)
+-- (0,300)
+.. controls (0,110) and (180,0)
+.. (350,0)
+.. controls (520,0) and (700,110)
+.. (700,300)
+-- (700,800)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((291,653)
+.. controls (315,653) and (338,719)
+.. (348,775)
+-- (350,775)
+.. controls (361,719) and (384,653)
+.. (407,653)
+.. controls (421,653) and (439,671)
+.. (462,695)
+.. controls (451,634) and (434,566)
+.. (420,501)
+.. controls (415,476) and (406,441)
+.. (429,441)
+.. controls (448,441) and (486,514)
+.. (525,579)
+-- (527,577)
+-- (528,578)
+.. controls (525,558) and (522,505)
+.. (534,505)
+.. controls (556,505) and (588,514)
+.. (634,535)
+.. controls (622,507) and (603,467)
+.. (603,431)
+.. controls (603,419) and (612,412)
+.. (625,408)
+.. controls (637,405) and (654,405)
+.. (668,403)
+.. controls (610,353) and (501,266)
+.. (501,246)
+.. controls (501,233) and (504,211)
+.. (509,193)
+.. controls (472,200) and (409,228)
+.. (390,228)
+.. controls (378,228) and (370,211)
+.. (370,190)
+-- (370,42)
+-- (329,42)
+-- (329,190)
+.. controls (329,211) and (321,228)
+.. (309,228)
+.. controls (291,228) and (227,200)
+.. (190,193)
+.. controls (195,211) and (198,233)
+.. (198,246)
+.. controls (198,266) and (89,353)
+.. (31,403)
+.. controls (61,406) and (96,406)
+.. (96,431)
+.. controls (96,467) and (78,507)
+.. (65,535)
+.. controls (111,514) and (143,505)
+.. (166,505)
+.. controls (177,505) and (174,558)
+.. (171,576)
+-- (173,578)
+-- (172,579)
+.. controls (214,514) and (251,441)
+.. (271,441)
+.. controls (294,441) and (284,476)
+.. (279,501)
+.. controls (267,566) and (249,634)
+.. (237,695)
+.. controls (260,671) and (278,653)
+.. (291,653)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (90,302*FS#,700*FS#,0*FS#);
+"Z";
+path P[];
+P1 = ((206,503)
+-- (253,503)
+.. controls (266,503) and (272,512)
+.. (272,528)
+-- (272,675)
+.. controls (272,691) and (266,700)
+.. (253,700)
+-- (206,700)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((182,197)
+.. controls (168,197) and (153,203)
+.. (146,228)
+.. controls (139,252) and (137,283)
+.. (137,350)
+.. controls (137,417) and (139,448)
+.. (146,472)
+.. controls (153,497) and (168,503)
+.. (182,503)
+-- (182,700)
+.. controls (142,692) and (112,655)
+.. (76,598)
+.. controls (34,532) and (30,412)
+.. (30,350)
+.. controls (30,288) and (34,168)
+.. (76,102)
+.. controls (112,45) and (142,8)
+.. (182,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((203,0)
+-- (250,0)
+.. controls (263,0) and (269,9)
+.. (269,25)
+-- (269,172)
+.. controls (269,188) and (263,197)
+.. (250,197)
+-- (203,197)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (91,575*FS#,1100*FS#,100*FS#);
+"bracketleft";
+path P[];
+P1 = ((30,-98)
+-- (32,-100)
+-- (287,206)
+-- (543,-100)
+-- (545,-98)
+-- (287,788)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((345,1088)
+-- (379,1082)
+-- (379,908)
+-- (206,1100)
+-- (141,1100)
+-- (141,1088)
+-- (173,1082)
+-- (173,872)
+-- (141,866)
+-- (141,854)
+-- (232,854)
+-- (232,866)
+-- (197,872)
+-- (197,1056)
+.. controls (236,1014) and (359,878)
+.. (383,852)
+-- (403,852)
+-- (403,1082)
+-- (434,1088)
+-- (434,1100)
+-- (345,1100)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((98,26)
+-- (96,28)
+-- (285,691)
+-- (287,691)
+-- (287,253)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (92,1871*FS#,1394*FS#,395*FS#);
+"backslash";
+path P[];
+P1 = ((927,772)
+.. controls (846,757) and (736,671)
+.. (722,566)
+-- (436,503)
+-- (436,501)
+-- (722,438)
+.. controls (736,333) and (846,247)
+.. (927,233)
+-- (990,-53)
+-- (992,-53)
+-- (1055,233)
+.. controls (1136,247) and (1246,333)
+.. (1260,438)
+-- (1546,501)
+-- (1546,503)
+-- (1260,566)
+.. controls (1246,671) and (1136,757)
+.. (1055,771)
+-- (992,1057)
+-- (990,1057)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1037,1394)
+-- (1037,1384)
+-- (1063,1379)
+-- (1063,1240)
+-- (929,1394)
+-- (874,1394)
+-- (874,1384)
+-- (899,1379)
+-- (899,1211)
+-- (874,1207)
+-- (874,1197)
+-- (947,1197)
+-- (947,1207)
+-- (919,1211)
+-- (919,1359)
+.. controls (950,1325) and (1045,1216)
+.. (1064,1195)
+-- (1083,1195)
+-- (1083,1379)
+-- (1108,1384)
+-- (1108,1394)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((1039,-194)
+.. controls (1025,-193) and (1011,-188)
+.. (997,-188)
+.. controls (958,-188) and (932,-212)
+.. (932,-242)
+.. controls (932,-314) and (1027,-299)
+.. (1027,-347)
+.. controls (1027,-372) and (1011,-384)
+.. (987,-384)
+.. controls (975,-384) and (953,-378)
+.. (947,-366)
+.. controls (943,-358) and (939,-346)
+.. (937,-330)
+-- (928,-333)
+-- (931,-380)
+.. controls (945,-390) and (970,-395)
+.. (989,-395)
+.. controls (1031,-395) and (1057,-369)
+.. (1057,-334)
+.. controls (1057,-276) and (962,-286)
+.. (962,-235)
+.. controls (962,-214) and (974,-202)
+.. (995,-202)
+.. controls (1020,-202) and (1029,-218)
+.. (1034,-238)
+-- (1043,-238)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((138,603)
+-- (138,593)
+-- (165,588)
+.. controls (163,578) and (159,567)
+.. (155,556)
+-- (120,447)
+-- (80,588)
+-- (107,593)
+-- (107,603)
+-- (30,603)
+-- (30,593)
+-- (52,588)
+-- (105,401)
+-- (120,401)
+-- (170,549)
+-- (217,401)
+-- (232,401)
+-- (292,588)
+-- (311,593)
+-- (311,603)
+-- (246,603)
+-- (246,593)
+-- (275,588)
+-- (231,448)
+-- (196,558)
+.. controls (193,568) and (190,578)
+.. (187,588)
+-- (215,593)
+-- (215,603)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((1793,500)
+-- (1798,478)
+-- (1807,478)
+.. controls (1805,494) and (1805,520)
+.. (1807,535)
+-- (1798,535)
+-- (1793,514)
+-- (1743,514)
+-- (1743,585)
+-- (1803,585)
+-- (1811,559)
+-- (1820,559)
+-- (1816,603)
+-- (1686,603)
+-- (1686,593)
+-- (1713,588)
+-- (1713,420)
+-- (1686,415)
+-- (1686,406)
+-- (1829,406)
+-- (1841,454)
+-- (1830,454)
+-- (1819,424)
+-- (1743,424)
+-- (1743,500)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((746,502)
+.. controls (746,639) and (834,747)
+.. (991,747)
+.. controls (1148,747) and (1236,639)
+.. (1236,502)
+.. controls (1236,365) and (1148,257)
+.. (991,257)
+.. controls (834,257) and (746,365)
+.. (746,502)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((943,772)
+-- (989,989)
+-- (991,989)
+-- (991,772)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+P8 = ((722,454)
+-- (505,500)
+-- (505,502)
+-- (722,502)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P8)>=0: fill else: unfill reverse fi P8;
+P9 = ((1039,233)
+-- (993,16)
+-- (991,16)
+-- (991,233)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P9)>=0: fill else: unfill reverse fi P9;
+P10 = ((1260,550)
+-- (1478,504)
+-- (1478,502)
+-- (1260,502)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P10)>=0: fill else: unfill reverse fi P10;
+endchar;
+
+beginchar (93,352*FS#,1662*FS#,662*FS#);
+"bracketright";
+path P[];
+P1 = ((234,1650)
+-- (268,1644)
+-- (268,1470)
+-- (95,1662)
+-- (30,1662)
+-- (30,1650)
+-- (62,1644)
+-- (62,1434)
+-- (30,1428)
+-- (30,1416)
+-- (121,1416)
+-- (121,1428)
+-- (86,1434)
+-- (86,1618)
+.. controls (125,1576) and (248,1440)
+.. (272,1414)
+-- (292,1414)
+-- (292,1644)
+-- (323,1650)
+-- (323,1662)
+-- (234,1662)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((182,278)
+.. controls (241,281) and (283,330)
+.. (283,381)
+.. controls (283,432) and (241,486)
+.. (190,484)
+-- (190,614)
+-- (270,576)
+-- (178,1338)
+-- (175,1338)
+-- (82,576)
+-- (163,614)
+-- (163,484)
+.. controls (112,484) and (69,432)
+.. (69,381)
+.. controls (69,330) and (112,278)
+.. (171,278)
+-- (69,-662)
+-- (176,-611)
+-- (283,-662)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((270,380)
+.. controls (265,335) and (230,286)
+.. (178,291)
+-- (178,380)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((176,1228)
+-- (179,1228)
+-- (253,602)
+-- (176,636)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((85,-640)
+-- (174,196)
+-- (176,196)
+-- (176,-597)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((175,382)
+-- (82,382)
+.. controls (82,439) and (123,468)
+.. (175,471)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (94,1538*FS#,1037*FS#,237*FS#);
+"asciicircum";
+path P[];
+P1 = ((1538,327)
+-- (862,580)
+-- (989,1035)
+-- (987,1037)
+-- (585,616)
+-- (440,791)
+-- (454,552)
+-- (0,468)
+-- (317,287)
+-- (188,58)
+-- (416,58)
+-- (463,-237)
+-- (661,65)
+-- (918,-110)
+-- (920,-108)
+-- (788,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((759,164)
+-- (867,-50)
+-- (865,-52)
+-- (656,92)
+-- (474,-184)
+-- (435,78)
+-- (223,78)
+-- (343,294)
+-- (61,460)
+-- (475,536)
+-- (462,736)
+-- (582,584)
+-- (948,967)
+-- (949,970)
+-- (951,968)
+-- (837,567)
+-- (1472,332)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (95,666*FS#,694*FS#,0*FS#);
+"underscore";
+path P[];
+P1 = ((475,0)
+-- (405,472)
+-- (602,357)
+-- (612,375)
+-- (401,498)
+.. controls (397,520) and (393,540)
+.. (382,540)
+-- (382,542)
+-- (612,672)
+-- (602,690)
+-- (342,540)
+-- (329,540)
+-- (64,694)
+-- (54,676)
+-- (288,540)
+.. controls (277,540) and (273,520)
+.. (269,498)
+-- (54,374)
+-- (64,358)
+-- (265,473)
+-- (195,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (96,458*FS#,691*FS#,0*FS#);
+"grave";
+path P[];
+P1 = ((378,333)
+-- (410,333)
+-- (410,506)
+-- (260,575)
+.. controls (237,585) and (226,586)
+.. (210,579)
+.. controls (194,572) and (173,563)
+.. (168,540)
+-- (157,485)
+.. controls (146,485) and (144,462)
+.. (136,427)
+-- (30,365)
+-- (42,333)
+-- (164,384)
+-- (198,446)
+-- (242,358)
+-- (168,232)
+-- (113,18)
+-- (173,0)
+-- (219,177)
+-- (274,255)
+-- (386,0)
+-- (428,29)
+-- (332,324)
+.. controls (340,346) and (345,369)
+.. (337,397)
+-- (313,483)
+-- (364,480)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((129,639)
+.. controls (129,610) and (152,588)
+.. (181,588)
+.. controls (208,588) and (231,610)
+.. (231,639)
+.. controls (231,668) and (208,691)
+.. (181,691)
+.. controls (152,691) and (129,668)
+.. (129,639)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (97,754*FS#,464*FS#,6*FS#);
+"a";
+path P[];
+P1 = ((97,275)
+.. controls (97,249) and (117,230)
+.. (142,230)
+.. controls (166,230) and (187,249)
+.. (187,275)
+.. controls (187,300) and (166,320)
+.. (142,320)
+.. controls (117,320) and (97,300)
+.. (97,275)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((460,406)
+.. controls (445,419) and (420,439)
+.. (387,439)
+.. controls (358,439) and (330,429)
+.. (312,417)
+.. controls (299,410) and (234,363)
+.. (213,340)
+.. controls (206,331) and (196,317)
+.. (196,309)
+.. controls (196,298) and (204,284)
+.. (220,280)
+.. controls (238,275) and (275,272)
+.. (275,272)
+-- (278,258)
+-- (218,212)
+-- (236,195)
+-- (296,226)
+-- (448,124)
+-- (129,13)
+.. controls (119,10) and (108,6)
+.. (91,6)
+.. controls (73,6) and (54,20)
+.. (48,28)
+.. controls (36,40) and (25,32)
+.. (32,23)
+.. controls (39,14) and (54,-6)
+.. (86,-6)
+.. controls (116,-6) and (129,-1)
+.. (144,3)
+-- (724,206)
+-- (720,219)
+-- (493,140)
+-- (383,237)
+-- (446,298)
+.. controls (471,320) and (478,342)
+.. (478,364)
+.. controls (478,378) and (470,393)
+.. (467,398)
+-- (512,434)
+-- (527,416)
+-- (534,421)
+-- (519,440)
+-- (533,450)
+-- (527,458)
+-- (514,448)
+-- (500,464)
+-- (492,460)
+-- (507,442)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (98,520*FS#,750*FS#,0*FS#);
+"b";
+path P[];
+P1 = ((420,0)
+-- (420,320)
+-- (290,320)
+-- (290,574)
+-- (396,574)
+-- (396,629)
+-- (290,629)
+-- (290,750)
+-- (230,750)
+-- (230,629)
+-- (124,629)
+-- (124,574)
+-- (230,574)
+-- (230,320)
+-- (100,320)
+-- (100,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (99,740*FS#,680*FS#,0*FS#);
+"c";
+path P[];
+P1 = ((30,340)
+.. controls (30,150) and (180,0)
+.. (370,0)
+.. controls (560,0) and (710,150)
+.. (710,340)
+.. controls (710,530) and (560,680)
+.. (370,680)
+.. controls (180,680) and (30,530)
+.. (30,340)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((355,499)
+.. controls (322,501) and (286,509)
+.. (253,521)
+.. controls (272,567) and (297,609)
+.. (324,646)
+.. controls (335,648) and (345,649)
+.. (355,649)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((355,355)
+-- (213,355)
+.. controls (215,402) and (226,449)
+.. (244,496)
+.. controls (282,480) and (321,470)
+.. (355,468)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((355,325)
+-- (355,212)
+.. controls (321,210) and (282,200)
+.. (244,184)
+.. controls (226,232) and (215,280)
+.. (213,325)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((355,31)
+.. controls (345,31) and (335,32)
+.. (324,34)
+.. controls (296,71) and (272,115)
+.. (254,160)
+.. controls (288,172) and (323,179)
+.. (355,181)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((228,149)
+.. controls (242,111) and (261,75)
+.. (284,44)
+.. controls (237,55) and (195,79)
+.. (160,111)
+.. controls (179,125) and (202,138)
+.. (228,149)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((183,325)
+.. controls (184,283) and (196,228)
+.. (217,174)
+.. controls (187,161) and (160,147)
+.. (139,132)
+.. controls (93,183) and (65,250)
+.. (62,325)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+P8 = ((62,355)
+.. controls (65,430) and (93,497)
+.. (139,548)
+.. controls (160,533) and (187,519)
+.. (217,506)
+.. controls (197,452) and (185,398)
+.. (183,355)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P8)>=0: fill else: unfill reverse fi P8;
+P9 = ((227,532)
+.. controls (201,543) and (178,556)
+.. (160,569)
+.. controls (195,601) and (237,625)
+.. (284,637)
+.. controls (262,607) and (242,570)
+.. (227,532)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P9)>=0: fill else: unfill reverse fi P9;
+P10 = ((385,649)
+.. controls (395,649) and (405,648)
+.. (416,646)
+.. controls (443,609) and (468,567)
+.. (487,521)
+.. controls (454,509) and (418,501)
+.. (385,499)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P10)>=0: fill else: unfill reverse fi P10;
+P11 = ((385,468)
+.. controls (419,470) and (458,480)
+.. (496,496)
+.. controls (514,449) and (525,402)
+.. (527,355)
+-- (385,355)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P11)>=0: fill else: unfill reverse fi P11;
+P12 = ((527,325)
+.. controls (525,280) and (514,232)
+.. (496,184)
+.. controls (458,200) and (419,210)
+.. (385,212)
+-- (385,325)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P12)>=0: fill else: unfill reverse fi P12;
+P13 = ((385,181)
+.. controls (417,179) and (452,172)
+.. (486,160)
+.. controls (468,115) and (444,71)
+.. (416,34)
+.. controls (405,32) and (395,31)
+.. (385,31)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P13)>=0: fill else: unfill reverse fi P13;
+P14 = ((513,532)
+.. controls (498,570) and (478,607)
+.. (456,637)
+.. controls (503,625) and (545,601)
+.. (580,569)
+.. controls (562,556) and (539,543)
+.. (513,532)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P14)>=0: fill else: unfill reverse fi P14;
+P15 = ((557,355)
+.. controls (555,398) and (543,452)
+.. (523,506)
+.. controls (553,519) and (580,533)
+.. (601,548)
+.. controls (647,497) and (675,430)
+.. (678,355)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P15)>=0: fill else: unfill reverse fi P15;
+P16 = ((678,325)
+.. controls (675,250) and (647,183)
+.. (601,132)
+.. controls (580,147) and (553,161)
+.. (523,174)
+.. controls (544,228) and (556,283)
+.. (557,325)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P16)>=0: fill else: unfill reverse fi P16;
+P17 = ((512,149)
+.. controls (538,138) and (561,125)
+.. (580,111)
+.. controls (545,79) and (503,55)
+.. (456,44)
+.. controls (479,75) and (498,111)
+.. (512,149)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P17)>=0: fill else: unfill reverse fi P17;
+endchar;
+
+beginchar (100,760*FS#,553*FS#,0*FS#);
+"d";
+path P[];
+P1 = ((380,553)
+-- (122,40)
+-- (30,40)
+-- (30,0)
+-- (730,0)
+-- (730,40)
+-- (638,40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((509,40)
+-- (251,40)
+-- (380,293)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (101,694*FS#,698*FS#,0*FS#);
+"e";
+path P[];
+P1 = ((347,698)
+-- (260,472)
+-- (30,472)
+-- (206,330)
+-- (141,103)
+-- (347,237)
+-- (553,103)
+-- (478,330)
+-- (664,472)
+-- (435,472)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (102,708*FS#,506*FS#,0*FS#);
+"f";
+path P[];
+P1 = ((678,0)
+-- (678,30)
+-- (549,30)
+-- (549,272)
+-- (589,272)
+-- (412,490)
+-- (235,272)
+-- (275,272)
+-- (275,30)
+-- (212,30)
+-- (174,160)
+-- (238,154)
+.. controls (206,183) and (170,215)
+.. (163,248)
+.. controls (179,244) and (197,242)
+.. (225,240)
+.. controls (183,281) and (166,313)
+.. (154,339)
+.. controls (142,365) and (106,451)
+.. (106,506)
+-- (104,506)
+.. controls (106,387) and (87,336)
+.. (74,282)
+.. controls (63,235) and (47,192)
+.. (30,161)
+.. controls (50,164) and (70,170)
+.. (91,177)
+.. controls (78,141) and (50,118)
+.. (30,96)
+.. controls (72,96) and (110,113)
+.. (148,154)
+.. controls (158,115) and (163,72)
+.. (169,30)
+-- (30,30)
+-- (30,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((365,189)
+-- (459,189)
+-- (459,30)
+-- (365,30)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (103,580*FS#,750*FS#,0*FS#);
+"g";
+path P[];
+P1 = ((300,481)
+-- (300,616)
+-- (418,683)
+-- (280,750)
+-- (280,481)
+-- (50,276)
+-- (170,276)
+-- (170,0)
+-- (410,0)
+-- (410,276)
+-- (530,276)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (104,682*FS#,650*FS#,0*FS#);
+"h";
+path P[];
+P1 = ((313,61)
+.. controls (236,61) and (182,109)
+.. (120,188)
+-- (153,207)
+.. controls (163,213) and (158,216)
+.. (145,226)
+.. controls (113,248) and (46,277)
+.. (39,273)
+.. controls (35,270) and (27,197)
+.. (31,158)
+.. controls (33,142) and (33,136)
+.. (44,142)
+-- (77,161)
+.. controls (117,83) and (230,0)
+.. (341,0)
+.. controls (452,0) and (565,83)
+.. (605,161)
+-- (638,142)
+.. controls (649,136) and (649,142)
+.. (651,158)
+.. controls (655,197) and (647,270)
+.. (643,273)
+.. controls (636,277) and (569,248)
+.. (537,226)
+.. controls (524,216) and (519,213)
+.. (529,207)
+-- (562,188)
+.. controls (500,109) and (446,61)
+.. (369,61)
+-- (369,454)
+.. controls (422,467) and (446,506)
+.. (445,554)
+.. controls (444,602) and (404,650)
+.. (341,650)
+.. controls (278,650) and (238,602)
+.. (237,554)
+.. controls (237,530) and (242,508)
+.. (255,491)
+.. controls (268,474) and (287,461)
+.. (313,454)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((292,551)
+.. controls (292,579) and (314,600)
+.. (341,600)
+.. controls (368,600) and (390,579)
+.. (390,551)
+.. controls (390,524) and (368,503)
+.. (341,503)
+.. controls (314,503) and (292,524)
+.. (292,551)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (105,1005*FS#,921*FS#,121*FS#);
+"i";
+path P[];
+P1 = ((503,-121)
+.. controls (597,-121) and (767,-18)
+.. (853,90)
+.. controls (945,206) and (1005,346)
+.. (1005,508)
+.. controls (1005,663) and (930,835)
+.. (850,921)
+.. controls (793,882) and (735,860)
+.. (677,860)
+.. controls (619,860) and (561,882)
+.. (503,921)
+.. controls (446,882) and (387,860)
+.. (329,860)
+.. controls (271,860) and (213,882)
+.. (154,921)
+.. controls (75,835) and (0,663)
+.. (0,508)
+.. controls (0,346) and (59,206)
+.. (153,90)
+.. controls (238,-18) and (408,-121)
+.. (503,-121)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((941,700)
+.. controls (952,671) and (975,605)
+.. (975,508)
+.. controls (975,377) and (936,246)
+.. (827,104)
+.. controls (767,25) and (601,-91)
+.. (503,-91)
+.. controls (405,-91) and (238,25)
+.. (178,104)
+.. controls (70,246) and (30,377)
+.. (30,508)
+.. controls (30,605) and (54,671)
+.. (64,700)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (106,658*FS#,826*FS#,25*FS#);
+"j";
+path P[];
+P1 = ((191,58)
+.. controls (176,45) and (167,35)
+.. (167,26)
+.. controls (167,16) and (178,12)
+.. (189,12)
+-- (274,12)
+-- (276,38)
+-- (295,38)
+.. controls (300,13) and (311,-4)
+.. (322,-7)
+-- (329,-25)
+-- (336,-7)
+.. controls (347,-4) and (358,13)
+.. (363,38)
+-- (382,38)
+-- (384,12)
+-- (469,12)
+.. controls (480,12) and (491,16)
+.. (491,26)
+.. controls (491,35) and (482,45)
+.. (467,58)
+-- (395,125)
+-- (395,210)
+-- (599,221)
+-- (612,202)
+-- (622,211)
+-- (622,339)
+-- (612,346)
+-- (592,294)
+-- (406,440)
+.. controls (406,463) and (395,487)
+.. (392,508)
+-- (351,712)
+.. controls (350,722) and (350,777)
+.. (329,826)
+.. controls (308,777) and (308,722)
+.. (307,712)
+-- (266,508)
+.. controls (263,487) and (252,463)
+.. (252,440)
+-- (66,294)
+-- (46,346)
+-- (36,339)
+-- (36,211)
+-- (46,202)
+-- (59,221)
+-- (263,210)
+-- (263,125)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (107,645*FS#,590*FS#,0*FS#);
+"k";
+path P[];
+P1 = ((180,400)
+-- (25,210)
+-- (91,210)
+-- (246,400)
+-- (91,590)
+-- (25,590)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((615,429)
+-- (615,474)
+-- (317,474)
+-- (222,590)
+-- (156,590)
+-- (288,429)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((288,371)
+-- (156,210)
+-- (222,210)
+-- (317,326)
+-- (615,326)
+-- (615,371)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (108,800*FS#,800*FS#,0*FS#);
+"l";
+path P[];
+P1 = ((50,800)
+.. controls (20,800) and (0,780)
+.. (0,750)
+-- (0,50)
+.. controls (0,20) and (20,0)
+.. (50,0)
+-- (750,0)
+.. controls (780,0) and (800,20)
+.. (800,43)
+-- (800,750)
+.. controls (800,780) and (780,800)
+.. (750,800)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((730,770)
+.. controls (758,770) and (770,758)
+.. (770,730)
+-- (770,64)
+.. controls (770,43) and (758,30)
+.. (730,30)
+-- (71,30)
+.. controls (43,30) and (30,43)
+.. (30,70)
+-- (30,730)
+.. controls (30,758) and (43,770)
+.. (71,770)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (109,600*FS#,800*FS#,32*FS#);
+"m";
+path P[];
+P1 = ((55,45)
+.. controls (43,39) and (30,34)
+.. (30,20)
+.. controls (30,-8) and (110,-32)
+.. (300,-32)
+.. controls (490,-32) and (570,-8)
+.. (570,20)
+.. controls (570,27) and (567,32)
+.. (562,35)
+.. controls (557,38) and (551,40)
+.. (545,41)
+-- (545,178)
+.. controls (562,185) and (570,193)
+.. (570,202)
+.. controls (570,209) and (567,214)
+.. (562,217)
+.. controls (557,220) and (551,222)
+.. (545,223)
+-- (545,360)
+.. controls (562,367) and (570,375)
+.. (570,384)
+.. controls (570,391) and (567,396)
+.. (562,399)
+.. controls (557,402) and (551,404)
+.. (545,405)
+-- (545,542)
+.. controls (562,549) and (570,557)
+.. (570,566)
+.. controls (570,573) and (567,578)
+.. (562,581)
+.. controls (557,584) and (551,586)
+.. (545,587)
+-- (545,724)
+.. controls (562,731) and (570,739)
+.. (570,748)
+.. controls (570,776) and (490,800)
+.. (300,800)
+.. controls (110,800) and (30,776)
+.. (30,748)
+.. controls (30,744) and (32,740)
+.. (36,736)
+.. controls (40,732) and (46,728)
+.. (55,724)
+-- (55,591)
+.. controls (43,585) and (30,580)
+.. (30,566)
+.. controls (30,562) and (32,558)
+.. (36,554)
+.. controls (40,550) and (46,546)
+.. (55,542)
+-- (55,409)
+.. controls (43,403) and (30,398)
+.. (30,384)
+.. controls (30,380) and (32,376)
+.. (36,372)
+.. controls (40,368) and (46,364)
+.. (55,360)
+-- (55,227)
+.. controls (43,221) and (30,216)
+.. (30,202)
+.. controls (30,198) and (32,194)
+.. (36,190)
+.. controls (40,186) and (46,182)
+.. (55,178)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((300,716)
+.. controls (200,716) and (58,726)
+.. (58,748)
+.. controls (58,770) and (200,780)
+.. (300,780)
+.. controls (400,780) and (542,770)
+.. (542,748)
+.. controls (542,726) and (400,716)
+.. (300,716)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((75,720)
+.. controls (124,706) and (200,696)
+.. (300,696)
+.. controls (400,696) and (476,706)
+.. (525,720)
+-- (525,578)
+.. controls (538,577) and (552,575)
+.. (552,569)
+.. controls (552,565) and (543,561)
+.. (525,558)
+.. controls (474,544) and (400,534)
+.. (300,534)
+.. controls (200,534) and (126,544)
+.. (75,558)
+.. controls (57,561) and (48,565)
+.. (48,569)
+.. controls (48,572) and (52,574)
+.. (57,575)
+.. controls (62,577) and (69,578)
+.. (75,578)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((75,538)
+.. controls (124,524) and (200,514)
+.. (300,514)
+.. controls (400,514) and (476,524)
+.. (525,538)
+-- (525,396)
+.. controls (538,395) and (552,393)
+.. (552,387)
+.. controls (552,383) and (543,379)
+.. (525,376)
+.. controls (474,362) and (400,352)
+.. (300,352)
+.. controls (200,352) and (126,362)
+.. (75,376)
+.. controls (57,379) and (48,383)
+.. (48,387)
+.. controls (48,390) and (52,392)
+.. (57,393)
+.. controls (62,395) and (69,396)
+.. (75,396)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((75,356)
+.. controls (124,342) and (200,332)
+.. (300,332)
+.. controls (400,332) and (476,342)
+.. (525,356)
+-- (525,214)
+.. controls (538,213) and (552,211)
+.. (552,205)
+.. controls (552,201) and (543,197)
+.. (525,194)
+.. controls (474,180) and (400,170)
+.. (300,170)
+.. controls (200,170) and (126,180)
+.. (75,194)
+.. controls (57,197) and (48,201)
+.. (48,205)
+.. controls (48,208) and (52,210)
+.. (57,211)
+.. controls (62,212) and (69,214)
+.. (75,214)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((75,174)
+.. controls (124,160) and (200,150)
+.. (300,150)
+.. controls (400,150) and (476,160)
+.. (525,174)
+-- (525,32)
+.. controls (538,31) and (552,29)
+.. (552,23)
+.. controls (552,19) and (543,15)
+.. (525,12)
+.. controls (474,-2) and (400,-12)
+.. (300,-12)
+.. controls (200,-12) and (126,-2)
+.. (75,12)
+.. controls (57,15) and (48,19)
+.. (48,23)
+.. controls (48,26) and (52,28)
+.. (57,29)
+.. controls (62,30) and (69,32)
+.. (75,32)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (110,764*FS#,800*FS#,0*FS#);
+"n";
+path P[];
+P1 = ((729,599)
+.. controls (705,640) and (609,631)
+.. (487,583)
+.. controls (468,712) and (428,800)
+.. (381,800)
+.. controls (334,800) and (294,713)
+.. (275,583)
+.. controls (153,632) and (58,640)
+.. (35,599)
+.. controls (11,560) and (65,482)
+.. (170,400)
+.. controls (65,317) and (12,239)
+.. (35,199)
+.. controls (58,158) and (153,168)
+.. (275,217)
+.. controls (294,85) and (334,0)
+.. (381,0)
+.. controls (428,0) and (468,87)
+.. (486,218)
+.. controls (609,168) and (705,158)
+.. (727,199)
+.. controls (750,239) and (697,318)
+.. (594,400)
+.. controls (697,481) and (751,558)
+.. (729,599)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((381,17)
+.. controls (341,17) and (307,99)
+.. (290,223)
+.. controls (319,235) and (350,248)
+.. (381,266)
+.. controls (412,248) and (441,235)
+.. (471,223)
+.. controls (455,97) and (421,17)
+.. (381,17)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((322,296)
+.. controls (335,288) and (349,280)
+.. (364,274)
+.. controls (338,260) and (313,248)
+.. (289,239)
+.. controls (285,264) and (282,291)
+.. (282,321)
+.. controls (293,312) and (308,304)
+.. (322,296)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((51,209)
+.. controls (31,244) and (85,313)
+.. (183,390)
+.. controls (207,370) and (234,352)
+.. (264,334)
+.. controls (265,297) and (268,263)
+.. (273,232)
+.. controls (159,186) and (70,174)
+.. (51,209)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((261,400)
+.. controls (261,384) and (261,367)
+.. (262,353)
+.. controls (239,368) and (216,384)
+.. (195,400)
+.. controls (215,415) and (237,432)
+.. (262,448)
+.. controls (261,432) and (261,416)
+.. (261,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((714,207)
+.. controls (694,172) and (606,185)
+.. (489,234)
+.. controls (494,263) and (497,296)
+.. (498,332)
+.. controls (528,351) and (555,370)
+.. (580,390)
+.. controls (680,313) and (734,243)
+.. (714,207)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((501,400)
+.. controls (501,417) and (501,433)
+.. (500,448)
+.. controls (525,432) and (546,416)
+.. (567,400)
+.. controls (546,383) and (523,368)
+.. (500,352)
+.. controls (501,367) and (501,383)
+.. (501,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+P8 = ((331,489)
+.. controls (348,499) and (365,508)
+.. (382,516)
+.. controls (398,507) and (415,498)
+.. (433,488)
+.. controls (451,477) and (466,468)
+.. (482,458)
+.. controls (484,440) and (484,421)
+.. (484,400)
+.. controls (484,379) and (482,359)
+.. (482,342)
+.. controls (466,330) and (449,321)
+.. (433,311)
+.. controls (415,301) and (398,292)
+.. (381,283)
+.. controls (365,291) and (348,301)
+.. (331,310)
+.. controls (314,320) and (297,330)
+.. (281,341)
+.. controls (278,359) and (278,379)
+.. (278,400)
+.. controls (278,419) and (278,439)
+.. (280,458)
+.. controls (294,467) and (313,479)
+.. (331,489)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P8)>=0: fill else: unfill reverse fi P8;
+P9 = ((322,504)
+.. controls (308,495) and (293,487)
+.. (281,479)
+.. controls (283,508) and (285,537)
+.. (289,561)
+.. controls (313,552) and (338,540)
+.. (364,526)
+.. controls (349,520) and (335,512)
+.. (322,504)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P9)>=0: fill else: unfill reverse fi P9;
+P10 = ((51,590)
+.. controls (71,625) and (160,613)
+.. (274,568)
+.. controls (268,538) and (266,504)
+.. (264,467)
+.. controls (234,448) and (208,428)
+.. (183,410)
+.. controls (85,485) and (31,556)
+.. (51,590)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P10)>=0: fill else: unfill reverse fi P10;
+P11 = ((714,591)
+.. controls (734,556) and (678,485)
+.. (580,410)
+.. controls (555,430) and (528,449)
+.. (498,468)
+.. controls (497,505) and (494,537)
+.. (489,568)
+.. controls (604,614) and (693,627)
+.. (714,591)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P11)>=0: fill else: unfill reverse fi P11;
+P12 = ((381,783)
+.. controls (422,783) and (456,700)
+.. (472,577)
+.. controls (444,565) and (413,552)
+.. (382,536)
+.. controls (351,552) and (321,565)
+.. (291,578)
+.. controls (308,702) and (342,783)
+.. (381,783)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P12)>=0: fill else: unfill reverse fi P12;
+P13 = ((441,504)
+.. controls (428,512) and (413,520)
+.. (400,526)
+.. controls (425,539) and (449,550)
+.. (473,561)
+.. controls (478,536) and (480,508)
+.. (481,479)
+.. controls (470,487) and (456,496)
+.. (441,504)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P13)>=0: fill else: unfill reverse fi P13;
+P14 = ((441,296)
+.. controls (455,304) and (469,312)
+.. (481,321)
+.. controls (480,292) and (477,263)
+.. (473,239)
+.. controls (449,248) and (424,260)
+.. (398,274)
+.. controls (412,280) and (427,288)
+.. (441,296)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P14)>=0: fill else: unfill reverse fi P14;
+P15 = ((340,400)
+.. controls (340,377) and (358,359)
+.. (381,359)
+.. controls (404,359) and (422,377)
+.. (422,400)
+.. controls (422,423) and (404,441)
+.. (381,441)
+.. controls (358,441) and (340,423)
+.. (340,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P15)>=0: fill else: unfill reverse fi P15;
+endchar;
+
+beginchar (111,970*FS#,885*FS#,85*FS#);
+"o";
+path P[];
+P1 = ((0,400)
+.. controls (0,129) and (213,-85)
+.. (485,-85)
+.. controls (757,-85) and (970,129)
+.. (970,400)
+.. controls (970,671) and (757,885)
+.. (485,885)
+.. controls (213,885) and (0,671)
+.. (0,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((30,400)
+.. controls (30,654) and (230,855)
+.. (485,855)
+.. controls (740,855) and (940,654)
+.. (940,400)
+.. controls (940,146) and (740,-55)
+.. (485,-55)
+.. controls (230,-55) and (30,146)
+.. (30,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (112,1092*FS#,946*FS#,147*FS#);
+"p";
+path P[];
+P1 = ((17,436)
+.. controls (-5,413) and (-5,385)
+.. (17,364)
+-- (512,-131)
+.. controls (533,-152) and (561,-152)
+.. (582,-131)
+-- (1077,364)
+.. controls (1099,385) and (1099,414)
+.. (1077,435)
+-- (582,930)
+.. controls (561,951) and (533,952)
+.. (512,930)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((514,892)
+.. controls (533,912) and (559,911)
+.. (579,892)
+-- (1037,433)
+.. controls (1058,414) and (1058,387)
+.. (1037,367)
+-- (579,-91)
+.. controls (559,-111) and (533,-111)
+.. (514,-91)
+-- (55,367)
+.. controls (35,387) and (35,413)
+.. (55,434)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (113,899*FS#,700*FS#,0*FS#);
+"q";
+path P[];
+P1 = ((430,700)
+-- (430,530)
+-- (212,530)
+-- (48,122)
+.. controls (61,47) and (134,0)
+.. (212,0)
+.. controls (290,0) and (363,47)
+.. (376,122)
+-- (227,500)
+-- (673,500)
+-- (524,122)
+.. controls (537,47) and (610,0)
+.. (688,0)
+.. controls (766,0) and (839,47)
+.. (852,122)
+-- (688,530)
+-- (470,530)
+-- (470,700)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((212,455)
+-- (342,122)
+-- (78,122)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((822,122)
+-- (558,122)
+-- (688,455)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (114,695*FS#,717*FS#,0*FS#);
+"r";
+path P[];
+P1 = ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((348,687)
+-- (414,492)
+-- (624,492)
+-- (455,366)
+-- (507,162)
+-- (348,289)
+-- (188,162)
+-- (240,366)
+-- (71,492)
+-- (281,492)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (115,762*FS#,915*FS#,116*FS#);
+"s";
+path P[];
+P1 = ((527,904)
+.. controls (523,921) and (502,919)
+.. (503,898)
+.. controls (507,868) and (511,823)
+.. (475,799)
+.. controls (449,781) and (394,795)
+.. (364,811)
+.. controls (346,819) and (340,803)
+.. (355,793)
+.. controls (379,781) and (418,767)
+.. (453,771)
+.. controls (431,748) and (418,720)
+.. (418,687)
+.. controls (418,615) and (464,561)
+.. (527,546)
+.. controls (537,543) and (527,513)
+.. (523,503)
+-- (498,451)
+.. controls (489,430) and (454,426)
+.. (431,426)
+-- (164,426)
+.. controls (80,426) and (30,365)
+.. (30,325)
+.. controls (30,231) and (138,192)
+.. (143,139)
+-- (146,104)
+.. controls (124,104) and (122,93)
+.. (122,82)
+.. controls (122,67) and (151,61)
+.. (180,48)
+-- (237,-60)
+.. controls (245,-72) and (254,-84)
+.. (263,-80)
+.. controls (271,-74) and (269,-59)
+.. (265,-47)
+-- (232,28)
+-- (369,-32)
+-- (349,-84)
+.. controls (343,-97) and (343,-113)
+.. (353,-116)
+.. controls (359,-119) and (371,-108)
+.. (377,-94)
+-- (407,-35)
+.. controls (418,-12) and (437,14)
+.. (444,35)
+.. controls (457,67) and (472,105)
+.. (479,132)
+.. controls (484,158) and (499,165)
+.. (521,165)
+.. controls (554,165) and (560,153)
+.. (560,147)
+.. controls (560,136) and (546,117)
+.. (534,106)
+-- (484,43)
+.. controls (475,31) and (472,13)
+.. (476,7)
+.. controls (484,2) and (503,13)
+.. (514,23)
+-- (572,96)
+.. controls (606,137) and (637,162)
+.. (637,189)
+.. controls (637,210) and (567,221)
+.. (567,252)
+-- (567,304)
+.. controls (567,331) and (589,378)
+.. (602,423)
+.. controls (610,451) and (654,451)
+.. (698,459)
+.. controls (718,461) and (732,466)
+.. (732,485)
+.. controls (732,501) and (718,509)
+.. (705,513)
+-- (559,572)
+.. controls (547,665) and (612,709)
+.. (689,711)
+.. controls (709,712) and (709,726)
+.. (689,729)
+.. controls (666,730) and (645,726)
+.. (627,722)
+.. controls (642,746) and (641,769)
+.. (636,789)
+.. controls (633,799) and (618,798)
+.. (618,782)
+.. controls (618,759) and (620,730)
+.. (592,711)
+.. controls (567,695) and (531,709)
+.. (511,717)
+.. controls (497,722) and (493,709)
+.. (503,703)
+.. controls (519,695) and (542,686)
+.. (563,687)
+.. controls (540,661) and (524,624)
+.. (529,578)
+.. controls (475,596) and (451,642)
+.. (451,691)
+.. controls (451,758) and (516,807)
+.. (596,820)
+.. controls (605,821) and (605,834)
+.. (596,836)
+.. controls (573,838) and (542,833)
+.. (516,820)
+.. controls (525,836) and (529,851)
+.. (531,865)
+.. controls (532,879) and (530,893)
+.. (527,904)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((386,173)
+-- (386,144)
+.. controls (386,118) and (406,93)
+.. (406,65)
+.. controls (406,50) and (393,27)
+.. (379,-9)
+-- (220,75)
+.. controls (200,84) and (207,96)
+.. (215,105)
+.. controls (232,121) and (250,147)
+.. (264,173)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (116,695*FS#,717*FS#,0*FS#);
+"t";
+path P[];
+P1 = ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((60,400)
+.. controls (60,561) and (187,687)
+.. (348,687)
+.. controls (508,687) and (635,561)
+.. (635,400)
+.. controls (635,239) and (508,113)
+.. (348,113)
+.. controls (187,113) and (60,239)
+.. (60,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((531,400)
+.. controls (531,508) and (456,584)
+.. (348,584)
+.. controls (240,584) and (164,508)
+.. (164,400)
+.. controls (164,292) and (240,216)
+.. (348,216)
+.. controls (456,216) and (531,292)
+.. (531,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (117,1063*FS#,921*FS#,122*FS#);
+"u";
+path P[];
+P1 = ((30,748)
+.. controls (58,736) and (97,664)
+.. (97,608)
+.. controls (97,545) and (0,460)
+.. (0,299)
+.. controls (0,83) and (151,-88)
+.. (265,-88)
+.. controls (315,-88) and (344,-79)
+.. (367,-69)
+.. controls (391,-60) and (409,-50)
+.. (425,-50)
+.. controls (456,-50) and (499,-84)
+.. (531,-122)
+.. controls (563,-84) and (607,-50)
+.. (638,-50)
+.. controls (654,-50) and (672,-60)
+.. (696,-69)
+.. controls (719,-79) and (747,-88)
+.. (798,-88)
+.. controls (912,-88) and (1063,83)
+.. (1063,299)
+.. controls (1063,460) and (966,545)
+.. (966,608)
+.. controls (967,664) and (1006,736)
+.. (1034,748)
+-- (845,921)
+.. controls (790,862) and (737,824)
+.. (689,824)
+.. controls (637,824) and (557,862)
+.. (531,921)
+.. controls (505,862) and (427,824)
+.. (375,824)
+.. controls (327,824) and (274,862)
+.. (218,921)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((992,748)
+.. controls (958,715) and (936,659)
+.. (936,608)
+.. controls (936,525) and (1033,458)
+.. (1033,299)
+.. controls (1033,124) and (911,-58)
+.. (795,-58)
+.. controls (764,-58) and (733,-55)
+.. (710,-46)
+.. controls (687,-37) and (670,-20)
+.. (632,-20)
+.. controls (595,-17) and (562,-53)
+.. (531,-83)
+.. controls (500,-53) and (467,-17)
+.. (430,-20)
+.. controls (392,-20) and (375,-37)
+.. (352,-46)
+.. controls (329,-55) and (298,-58)
+.. (267,-58)
+.. controls (151,-58) and (29,124)
+.. (29,299)
+.. controls (29,458) and (126,525)
+.. (126,608)
+.. controls (126,659) and (104,715)
+.. (70,748)
+-- (218,885)
+.. controls (249,844) and (323,794)
+.. (375,794)
+.. controls (433,794) and (499,828)
+.. (531,874)
+.. controls (563,828) and (629,794)
+.. (687,794)
+.. controls (739,794) and (813,844)
+.. (844,885)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (118,740*FS#,587*FS#,0*FS#);
+"v";
+path P[];
+P1 = ((370,587)
+-- (30,466)
+-- (231,394)
+-- (184,228)
+-- (557,228)
+-- (510,395)
+-- (566,415)
+-- (638,157)
+-- (686,202)
+-- (581,421)
+-- (710,466)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((217,248)
+-- (255,386)
+-- (370,345)
+-- (486,387)
+-- (524,248)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (119,808*FS#,724*FS#,2*FS#);
+"w";
+path P[];
+P1 = ((97,469)
+-- (194,372)
+-- (269,447)
+-- (516,200)
+.. controls (494,188) and (472,179)
+.. (445,175)
+.. controls (387,166) and (304,186)
+.. (255,262)
+-- (221,262)
+-- (170,213)
+.. controls (150,240) and (136,245)
+.. (125,233)
+.. controls (114,222) and (119,208)
+.. (145,189)
+.. controls (109,168) and (68,135)
+.. (43,110)
+.. controls (26,93) and (25,62)
+.. (42,45)
+.. controls (59,28) and (90,30)
+.. (107,47)
+.. controls (131,71) and (165,113)
+.. (185,149)
+.. controls (205,122) and (218,117)
+.. (230,129)
+.. controls (241,140) and (236,153)
+.. (209,173)
+-- (229,193)
+.. controls (257,134) and (364,76)
+.. (459,78)
+.. controls (506,78) and (558,93)
+.. (598,118)
+-- (707,9)
+.. controls (725,-9) and (747,-2)
+.. (763,14)
+.. controls (780,30) and (785,52)
+.. (768,70)
+-- (661,177)
+.. controls (708,221) and (732,308)
+.. (731,399)
+.. controls (730,546) and (601,691)
+.. (417,724)
+-- (415,722)
+.. controls (529,630) and (623,545)
+.. (630,431)
+.. controls (633,365) and (616,285)
+.. (583,254)
+-- (329,508)
+-- (421,599)
+-- (257,627)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (120,660*FS#,600*FS#,0*FS#);
+"x";
+path P[];
+P1 = ((30,300)
+.. controls (30,132) and (162,0)
+.. (330,0)
+.. controls (498,0) and (630,132)
+.. (630,300)
+.. controls (630,468) and (498,600)
+.. (330,600)
+.. controls (162,600) and (30,468)
+.. (30,300)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((407,377)
+-- (545,377)
+-- (545,223)
+-- (407,223)
+-- (407,85)
+-- (253,85)
+-- (253,223)
+-- (115,223)
+-- (115,377)
+-- (253,377)
+-- (253,515)
+-- (407,515)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (121,700*FS#,921*FS#,122*FS#);
+"y";
+path P[];
+P1 = ((700,856)
+-- (568,921)
+.. controls (529,899) and (496,884)
+.. (459,884)
+.. controls (423,884) and (371,899)
+.. (350,921)
+.. controls (329,899) and (277,884)
+.. (241,884)
+.. controls (205,884) and (171,899)
+.. (132,921)
+-- (0,856)
+-- (0,606)
+.. controls (16,555) and (34,503)
+.. (34,451)
+.. controls (34,425) and (30,399)
+.. (23,373)
+.. controls (17,347) and (8,322)
+.. (0,296)
+.. controls (0,196) and (41,101)
+.. (106,21)
+.. controls (166,-52) and (285,-122)
+.. (350,-122)
+.. controls (416,-122) and (534,-52)
+.. (594,21)
+.. controls (658,101) and (700,196)
+.. (700,296)
+.. controls (684,347) and (666,399)
+.. (666,451)
+.. controls (666,477) and (671,503)
+.. (677,529)
+.. controls (684,555) and (692,581)
+.. (700,606)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((30,841)
+-- (132,891)
+.. controls (167,871) and (203,856)
+.. (241,854)
+.. controls (274,856) and (322,871)
+.. (350,891)
+.. controls (378,871) and (426,856)
+.. (459,854)
+.. controls (497,856) and (533,871)
+.. (568,891)
+-- (670,841)
+-- (670,599)
+.. controls (649,551) and (636,497)
+.. (636,448)
+.. controls (636,424) and (639,398)
+.. (645,372)
+.. controls (651,347) and (660,321)
+.. (670,297)
+.. controls (670,208) and (633,118)
+.. (573,43)
+.. controls (518,-26) and (406,-92)
+.. (350,-92)
+.. controls (294,-92) and (182,-26)
+.. (127,43)
+.. controls (67,118) and (30,208)
+.. (30,297)
+.. controls (51,345) and (64,399)
+.. (64,448)
+.. controls (64,473) and (61,498)
+.. (55,524)
+.. controls (49,550) and (41,575)
+.. (30,599)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (122,340*FS#,645*FS#,10*FS#);
+"z";
+path P[];
+P1 = ((56,192)
+.. controls (49,175) and (15,93)
+.. (15,45)
+.. controls (15,7) and (40,-10)
+.. (76,-10)
+.. controls (177,-10) and (294,114)
+.. (294,143)
+.. controls (294,152) and (287,158)
+.. (282,158)
+.. controls (268,158) and (213,73)
+.. (183,73)
+.. controls (175,73) and (171,80)
+.. (171,87)
+.. controls (171,103) and (182,128)
+.. (188,143)
+-- (260,338)
+.. controls (296,435) and (250,461)
+.. (207,461)
+.. controls (149,461) and (97,432)
+.. (57,394)
+.. controls (44,381) and (0,339)
+.. (0,321)
+.. controls (0,315) and (6,308)
+.. (13,308)
+.. controls (31,308) and (79,395)
+.. (116,395)
+.. controls (124,395) and (133,386)
+.. (126,368)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((248,497)
+.. controls (293,497) and (331,531)
+.. (331,577)
+.. controls (331,618) and (302,645)
+.. (262,645)
+.. controls (218,645) and (180,609)
+.. (180,565)
+.. controls (180,524) and (207,497)
+.. (248,497)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (123,1811*FS#,153*FS#,0*FS#);
+"braceleft";
+path P[];
+P1 = ((1811,0)
+-- (1811,153)
+-- (0,153)
+-- (0,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((14,14)
+-- (14,75)
+-- (131,75)
+-- (131,14)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((250,139)
+-- (250,78)
+-- (133,78)
+-- (133,139)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((252,14)
+-- (252,75)
+-- (369,75)
+-- (369,14)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((488,139)
+-- (488,78)
+-- (371,78)
+-- (371,139)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((490,14)
+-- (490,75)
+-- (607,75)
+-- (607,14)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((1202,139)
+-- (1202,78)
+-- (609,78)
+-- (609,139)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+P8 = ((1204,75)
+-- (1797,75)
+-- (1797,14)
+-- (1204,14)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P8)>=0: fill else: unfill reverse fi P8;
+endchar;
+
+beginchar (124,900*FS#,717*FS#,0*FS#);
+"bar";
+path P[];
+P1 = ((763,717)
+-- (356,717)
+-- (223,585)
+-- (532,585)
+-- (130,183)
+-- (229,84)
+-- (631,486)
+-- (631,177)
+-- (763,310)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (125,900*FS#,717*FS#,0*FS#);
+"braceright";
+path P[];
+P1 = ((130,310)
+-- (262,177)
+-- (262,486)
+-- (664,84)
+-- (763,183)
+-- (361,585)
+-- (670,585)
+-- (537,717)
+-- (130,717)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (126,575*FS#,681*FS#,5*FS#);
+"asciitilde";
+path P[];
+P1 = ((322,630)
+.. controls (322,602) and (344,580)
+.. (373,580)
+.. controls (401,580) and (423,602)
+.. (423,630)
+.. controls (423,659) and (401,681)
+.. (373,681)
+.. controls (344,681) and (322,659)
+.. (322,630)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((534,392)
+-- (514,390)
+-- (518,438)
+-- (457,556)
+-- (416,568)
+.. controls (403,573) and (378,569)
+.. (368,561)
+-- (341,541)
+-- (311,428)
+-- (253,409)
+-- (224,472)
+-- (191,485)
+.. controls (176,491) and (158,491)
+.. (147,483)
+-- (119,460)
+-- (88,368)
+-- (30,314)
+-- (42,292)
+-- (107,340)
+-- (125,381)
+-- (138,339)
+-- (83,211)
+-- (100,204)
+-- (54,35)
+-- (76,24)
+-- (140,198)
+-- (167,193)
+-- (246,27)
+-- (273,38)
+-- (213,196)
+-- (251,208)
+-- (217,288)
+-- (282,292)
+-- (272,354)
+-- (239,352)
+-- (258,381)
+-- (320,390)
+-- (347,430)
+-- (366,330)
+-- (320,213)
+-- (306,9)
+-- (352,0)
+-- (364,169)
+-- (399,244)
+-- (414,158)
+-- (500,-5)
+-- (542,17)
+-- (465,161)
+-- (465,309)
+-- (545,317)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((105,554)
+.. controls (105,526) and (127,504)
+.. (155,504)
+.. controls (184,504) and (206,526)
+.. (206,554)
+.. controls (206,583) and (184,605)
+.. (155,605)
+.. controls (127,605) and (105,583)
+.. (105,554)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((219,351)
+-- (205,351)
+-- (211,407)
+-- (231,378)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((487,434)
+-- (479,386)
+-- (459,384)
+-- (452,478)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (161,1000*FS#,894*FS#,94*FS#);
+"degree";
+path P[];
+P1 = ((75,796)
+.. controls (29,796) and (0,775)
+.. (0,652)
+.. controls (0,439) and (211,129)
+.. (430,-66)
+.. controls (471,-103) and (529,-103)
+.. (570,-66)
+.. controls (789,129) and (1000,439)
+.. (1000,652)
+.. controls (1000,775) and (971,796)
+.. (925,796)
+-- (629,796)
+-- (629,859)
+.. controls (629,881) and (615,894)
+.. (593,894)
+-- (407,894)
+.. controls (384,894) and (371,881)
+.. (371,859)
+-- (371,796)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (162,560*FS#,683*FS#,0*FS#);
+"cent";
+path P[];
+P1 = ((563,400)
+-- (280,683)
+-- (-3,400)
+-- (280,117)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (163,560*FS#,650*FS#,0*FS#);
+"sterling";
+path P[];
+P1 = ((530,150)
+-- (280,650)
+-- (30,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (164,2600*FS#,447*FS#,0*FS#);
+"section";
+path P[];
+P1 = ((2556,126)
+-- (1500,126)
+-- (1500,169)
+-- (1488,169)
+-- (1488,156)
+-- (1469,156)
+.. controls (1464,156) and (1458,161)
+.. (1451,168)
+.. controls (1446,173) and (1439,181)
+.. (1430,181)
+-- (1403,181)
+-- (1403,161)
+-- (1410,161)
+-- (1410,126)
+-- (1383,126)
+-- (1383,260)
+-- (1371,260)
+-- (1371,344)
+-- (1359,344)
+-- (1359,260)
+-- (1262,260)
+-- (1262,226)
+-- (1220,226)
+-- (1220,240)
+-- (1232,240)
+-- (1220,253)
+-- (1220,274)
+.. controls (1238,289) and (1259,296)
+.. (1259,308)
+-- (1259,321)
+-- (1307,321)
+-- (1307,343)
+-- (1220,343)
+-- (1220,369)
+-- (1241,369)
+-- (1241,414)
+-- (1238,414)
+.. controls (1237,406) and (1227,393)
+.. (1220,394)
+-- (1220,447)
+-- (1208,447)
+-- (1208,395)
+-- (1180,395)
+-- (1208,369)
+-- (1208,343)
+.. controls (1207,343) and (1200,340)
+.. (1200,333)
+.. controls (1200,324) and (1207,321)
+.. (1214,321)
+-- (1214,309)
+.. controls (1205,309) and (1197,303)
+.. (1195,296)
+-- (1174,296)
+-- (1157,321)
+-- (1147,321)
+.. controls (1140,315) and (1141,297)
+.. (1151,297)
+-- (1163,297)
+-- (1170,287)
+-- (1170,274)
+-- (1200,249)
+-- (1200,226)
+-- (1179,226)
+-- (1167,240)
+-- (1146,201)
+-- (1131,201)
+-- (1131,243)
+-- (1116,259)
+-- (1112,254)
+-- (1123,242)
+-- (1112,214)
+-- (1086,214)
+-- (1086,126)
+-- (30,126)
+-- (30,113)
+-- (62,113)
+.. controls (71,68) and (153,59)
+.. (169,0)
+-- (2484,0)
+-- (2549,39)
+-- (2518,39)
+-- (2518,54)
+-- (2502,73)
+-- (2502,92)
+-- (2570,92)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((1245,321)
+-- (1245,309)
+.. controls (1233,308) and (1225,310)
+.. (1224,321)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((1423,161)
+.. controls (1449,161) and (1474,140)
+.. (1480,126)
+-- (1423,126)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (165,1676*FS#,372*FS#,0*FS#);
+"bullet";
+path P[];
+P1 = ((1284,160)
+-- (1046,160)
+-- (1046,275)
+-- (1036,275)
+-- (1036,160)
+-- (868,160)
+-- (868,241)
+-- (858,241)
+-- (858,160)
+-- (274,160)
+-- (192,262)
+-- (192,299)
+-- (182,299)
+-- (182,160)
+-- (30,160)
+.. controls (28,117) and (91,95)
+.. (96,73)
+-- (114,0)
+-- (1444,0)
+.. controls (1550,0) and (1630,107)
+.. (1646,160)
+-- (1568,160)
+-- (1568,197)
+-- (1531,197)
+-- (1531,234)
+-- (1484,234)
+-- (1428,372)
+-- (1348,372)
+-- (1368,234)
+-- (1330,234)
+-- (1330,264)
+.. controls (1306,264) and (1284,246)
+.. (1284,215)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((192,240)
+-- (194,240)
+-- (258,160)
+-- (192,160)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (166,1800*FS#,499*FS#,0*FS#);
+"paragraph";
+path P[];
+P1 = ((41,116)
+-- (30,116)
+.. controls (30,96) and (28,14)
+.. (60,0)
+-- (1744,0)
+-- (1770,48)
+-- (1770,164)
+-- (1758,164)
+-- (1758,107)
+-- (1743,87)
+-- (1699,80)
+-- (1699,123)
+-- (1710,123)
+-- (1710,134)
+-- (1672,134)
+-- (1672,123)
+-- (1687,123)
+-- (1687,77)
+-- (1508,58)
+-- (1508,83)
+-- (1465,83)
+-- (1465,145)
+-- (1455,145)
+-- (1455,83)
+-- (1437,83)
+-- (1437,145)
+-- (1427,145)
+-- (1427,83)
+-- (1413,83)
+-- (1413,58)
+-- (1339,58)
+-- (1339,86)
+-- (1362,98)
+-- (1362,114)
+-- (1319,89)
+-- (1319,58)
+-- (1138,58)
+-- (1138,72)
+-- (1189,72)
+-- (1189,84)
+-- (1138,84)
+-- (1112,94)
+-- (1096,94)
+-- (1108,79)
+-- (1108,58)
+-- (1064,58)
+-- (1064,88)
+-- (1025,88)
+-- (1025,118)
+-- (1034,123)
+-- (1034,130)
+-- (1016,134)
+-- (1123,201)
+-- (1118,207)
+-- (1018,162)
+-- (1018,188)
+-- (1024,188)
+-- (1024,200)
+-- (1006,200)
+-- (1006,172)
+-- (991,172)
+-- (991,194)
+-- (979,194)
+-- (979,172)
+-- (969,172)
+-- (956,213)
+-- (966,213)
+-- (966,234)
+-- (944,234)
+-- (944,205)
+-- (906,205)
+-- (906,251)
+-- (944,251)
+-- (944,279)
+-- (938,302)
+-- (938,318)
+-- (948,318)
+-- (948,326)
+-- (927,326)
+-- (927,312)
+-- (895,312)
+-- (895,339)
+-- (908,339)
+-- (908,370)
+-- (870,370)
+-- (870,339)
+-- (883,339)
+-- (883,312)
+-- (871,312)
+-- (851,332)
+-- (851,394)
+.. controls (858,397) and (863,401)
+.. (864,408)
+-- (898,408)
+-- (898,419)
+-- (864,419)
+.. controls (863,426) and (858,432)
+.. (851,433)
+-- (851,499)
+-- (840,499)
+-- (840,433)
+.. controls (832,432) and (827,426)
+.. (826,419)
+-- (792,419)
+-- (792,408)
+-- (826,408)
+.. controls (827,401) and (832,397)
+.. (840,394)
+-- (840,293)
+.. controls (840,286) and (845,277)
+.. (853,270)
+.. controls (859,263) and (868,256)
+.. (877,251)
+-- (877,205)
+-- (844,205)
+-- (844,214)
+-- (851,218)
+-- (839,230)
+-- (826,218)
+-- (832,214)
+-- (832,205)
+-- (823,205)
+-- (823,172)
+-- (782,172)
+-- (763,123)
+-- (683,123)
+-- (663,210)
+-- (692,227)
+-- (692,309)
+-- (703,313)
+-- (703,328)
+-- (697,332)
+-- (697,424)
+-- (685,424)
+-- (685,333)
+-- (672,333)
+.. controls (671,341) and (667,345)
+.. (659,345)
+.. controls (655,345) and (651,342)
+.. (651,336)
+.. controls (651,330) and (653,325)
+.. (659,325)
+-- (680,325)
+-- (680,263)
+-- (651,263)
+-- (651,277)
+.. controls (660,278) and (668,285)
+.. (668,291)
+.. controls (668,298) and (663,305)
+.. (645,305)
+.. controls (627,305) and (624,298)
+.. (624,291)
+.. controls (624,285) and (629,278)
+.. (639,277)
+-- (639,263)
+-- (631,238)
+-- (613,238)
+-- (611,217)
+-- (626,217)
+-- (623,170)
+-- (595,170)
+-- (589,143)
+-- (551,143)
+-- (536,175)
+-- (536,187)
+-- (545,187)
+-- (545,194)
+.. controls (524,196) and (520,211)
+.. (520,225)
+-- (508,225)
+-- (508,215)
+.. controls (508,205) and (514,194)
+.. (522,187)
+-- (522,175)
+-- (505,145)
+-- (490,145)
+-- (473,183)
+-- (457,188)
+-- (457,243)
+-- (446,243)
+-- (446,82)
+-- (427,79)
+.. controls (425,87) and (413,94)
+.. (403,94)
+.. controls (390,94) and (377,90)
+.. (375,82)
+-- (331,82)
+-- (331,75)
+-- (375,68)
+-- (375,58)
+-- (281,58)
+-- (281,70)
+-- (292,83)
+-- (292,95)
+-- (244,95)
+-- (244,83)
+-- (255,70)
+-- (255,58)
+-- (41,83)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((457,175)
+-- (465,175)
+-- (480,142)
+-- (465,130)
+-- (457,136)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((680,255)
+-- (680,241)
+-- (659,227)
+-- (652,255)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((902,277)
+-- (902,293)
+-- (913,301)
+-- (927,301)
+-- (927,269)
+-- (913,269)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (167,963*FS#,595*FS#,0*FS#);
+"germandbls";
+path P[];
+P1 = ((933,595)
+-- (930,595)
+.. controls (923,566) and (756,421)
+.. (749,421)
+.. controls (726,421) and (515,576)
+.. (344,576)
+.. controls (188,576) and (30,436)
+.. (30,400)
+.. controls (30,364) and (188,224)
+.. (344,224)
+.. controls (515,224) and (726,379)
+.. (749,379)
+.. controls (756,379) and (923,234)
+.. (930,205)
+-- (933,205)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (168,695*FS#,717*FS#,0*FS#);
+"registered";
+path P[];
+P1 = ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((409,491)
+-- (619,491)
+-- (450,364)
+-- (516,164)
+-- (347,288)
+-- (179,164)
+-- (246,364)
+-- (75,491)
+-- (284,491)
+-- (347,687)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((60,400)
+.. controls (60,561) and (187,687)
+.. (347,687)
+.. controls (508,687) and (635,561)
+.. (635,400)
+.. controls (635,239) and (508,113)
+.. (347,113)
+.. controls (187,113) and (60,239)
+.. (60,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((347,591)
+-- (382,465)
+-- (534,465)
+-- (414,380)
+-- (458,243)
+-- (347,330)
+-- (237,243)
+-- (282,380)
+-- (159,465)
+-- (312,465)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (169,436*FS#,750*FS#,0*FS#);
+"copyright";
+path P[];
+P1 = ((218,750)
+-- (50,248)
+-- (203,248)
+-- (203,30)
+-- (50,30)
+-- (50,0)
+-- (386,0)
+-- (386,30)
+-- (233,30)
+-- (233,248)
+-- (386,248)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (170,560*FS#,600*FS#,0*FS#);
+"trademark";
+path P[];
+P1 = ((480,200)
+-- (480,600)
+-- (80,600)
+-- (80,200)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (171,694*FS#,697*FS#,0*FS#);
+"acute";
+path P[];
+P1 = ((347,697)
+-- (260,471)
+-- (30,471)
+-- (206,329)
+-- (141,102)
+-- (347,236)
+-- (553,102)
+-- (478,329)
+-- (664,471)
+-- (435,471)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((417,457)
+-- (617,457)
+-- (617,455)
+-- (347,375)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((458,342)
+-- (526,142)
+-- (524,141)
+-- (347,375)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((347,255)
+-- (167,135)
+-- (165,140)
+-- (347,374)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((225,335)
+-- (76,452)
+-- (78,454)
+-- (347,375)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((273,462)
+-- (345,652)
+-- (347,652)
+-- (347,375)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (172,960*FS#,871*FS#,71*FS#);
+"dieresis";
+path P[];
+P1 = ((150,871)
+.. controls (37,871) and (-7,835)
+.. (1,757)
+-- (88,62)
+.. controls (99,-33) and (141,-71)
+.. (222,-71)
+-- (738,-71)
+.. controls (819,-71) and (859,-33)
+.. (872,62)
+-- (958,757)
+.. controls (968,835) and (923,871)
+.. (810,871)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((799,841)
+.. controls (905,841) and (934,807)
+.. (925,734)
+-- (845,84)
+.. controls (834,-5) and (807,-41)
+.. (731,-41)
+-- (230,-41)
+.. controls (154,-41) and (126,-5)
+.. (115,84)
+-- (34,734)
+.. controls (25,807) and (56,841)
+.. (162,841)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (173,596*FS#,750*FS#,0*FS#);
+"notequal";
+path P[];
+P1 = ((566,0)
+-- (566,80)
+-- (480,80)
+-- (406,507)
+-- (190,507)
+-- (116,80)
+-- (30,80)
+-- (30,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((459,557)
+-- (534,690)
+-- (534,750)
+-- (479,750)
+-- (436,675)
+-- (379,675)
+-- (347,750)
+-- (249,750)
+-- (217,675)
+-- (155,675)
+-- (116,742)
+-- (62,742)
+-- (62,688)
+-- (137,557)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (174,500*FS#,500*FS#,0*FS#);
+"AE";
+path P[];
+P1 = ((235,265)
+-- (0,265)
+-- (0,235)
+-- (235,235)
+-- (235,0)
+-- (265,0)
+-- (265,235)
+-- (500,235)
+-- (500,265)
+-- (265,265)
+-- (265,500)
+-- (235,500)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (175,854*FS#,880*FS#,80*FS#);
+"Oslash";
+path P[];
+P1 = ((0,122)
+.. controls (0,-80) and (189,-80)
+.. (426,-80)
+.. controls (665,-80) and (854,-80)
+.. (854,122)
+-- (854,272)
+.. controls (854,441) and (818,594)
+.. (722,679)
+.. controls (584,801) and (491,851)
+.. (426,880)
+.. controls (362,851) and (270,801)
+.. (131,679)
+.. controls (35,594) and (0,441)
+.. (0,272)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((30,280)
+.. controls (30,430) and (63,581)
+.. (152,661)
+.. controls (281,776) and (367,822)
+.. (426,850)
+.. controls (487,822) and (573,776)
+.. (701,661)
+.. controls (791,581) and (824,430)
+.. (824,280)
+-- (824,131)
+.. controls (824,-50) and (668,-50)
+.. (426,-50)
+.. controls (186,-50) and (30,-50)
+.. (30,131)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (176,560*FS#,650*FS#,0*FS#);
+"infinity";
+path P[];
+P1 = ((424,150)
+-- (569,400)
+-- (424,650)
+-- (136,650)
+-- (-9,400)
+-- (136,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (177,600*FS#,620*FS#,0*FS#);
+"plusminus";
+path P[];
+P1 = ((92,180)
+.. controls (215,241) and (386,241)
+.. (509,180)
+-- (520,192)
+.. controls (463,314) and (459,486)
+.. (520,608)
+-- (509,620)
+.. controls (386,559) and (215,559)
+.. (92,620)
+-- (80,608)
+.. controls (137,486) and (141,314)
+.. (80,192)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((300,526)
+.. controls (370,526) and (430,550)
+.. (485,587)
+-- (487,585)
+.. controls (450,529) and (426,471)
+.. (426,400)
+.. controls (426,328) and (450,271)
+.. (487,215)
+-- (485,214)
+.. controls (430,251) and (367,274)
+.. (300,274)
+.. controls (227,274) and (171,251)
+.. (116,214)
+-- (114,215)
+.. controls (151,271) and (174,326)
+.. (174,400)
+.. controls (174,466) and (151,529)
+.. (114,585)
+-- (116,587)
+.. controls (171,550) and (229,526)
+.. (300,526)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (178,590*FS#,750*FS#,0*FS#);
+"lessequal";
+path P[];
+P1 = ((560,0)
+-- (560,30)
+-- (359,30)
+-- (284,502)
+-- (344,502)
+.. controls (344,370) and (434,287)
+.. (538,287)
+-- (538,289)
+.. controls (474,317) and (420,399)
+.. (420,519)
+.. controls (420,639) and (474,720)
+.. (538,748)
+-- (538,750)
+.. controls (434,750) and (344,667)
+.. (344,532)
+-- (279,532)
+-- (268,600)
+-- (165,600)
+-- (165,30)
+-- (30,30)
+-- (30,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((459,519)
+.. controls (459,493) and (479,473)
+.. (503,473)
+.. controls (528,473) and (548,493)
+.. (548,519)
+.. controls (548,544) and (528,563)
+.. (503,563)
+.. controls (479,563) and (459,544)
+.. (459,519)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (179,632*FS#,677*FS#,0*FS#);
+"greaterequal";
+path P[];
+P1 = ((316,412)
+-- (52,677)
+-- (30,656)
+-- (295,391)
+-- (149,245)
+-- (101,294)
+-- (70,262)
+.. controls (43,238) and (37,154)
+.. (58,133)
+.. controls (78,113) and (162,120)
+.. (187,145)
+-- (219,176)
+-- (170,224)
+-- (316,370)
+-- (462,224)
+-- (414,176)
+-- (445,145)
+.. controls (470,120) and (554,113)
+.. (574,133)
+.. controls (595,154) and (588,237)
+.. (562,262)
+-- (531,294)
+-- (483,245)
+-- (337,391)
+-- (602,656)
+-- (581,677)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (180,700*FS#,800*FS#,0*FS#);
+"yen";
+path P[];
+P1 = ((0,800)
+-- (0,300)
+.. controls (0,110) and (180,0)
+.. (350,0)
+.. controls (520,0) and (700,110)
+.. (700,300)
+-- (700,800)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((670,770)
+-- (670,308)
+.. controls (670,138) and (505,30)
+.. (350,30)
+.. controls (195,30) and (30,138)
+.. (30,308)
+-- (30,770)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (181,626*FS#,579*FS#,0*FS#);
+"mu";
+path P[];
+P1 = ((585,370)
+-- (35,370)
+-- (135,130)
+-- (485,130)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((385,48)
+.. controls (385,21) and (406,0)
+.. (433,0)
+.. controls (459,0) and (480,21)
+.. (480,48)
+.. controls (480,75) and (459,95)
+.. (433,95)
+.. controls (406,95) and (385,75)
+.. (385,48)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((140,48)
+.. controls (140,21) and (161,0)
+.. (188,0)
+.. controls (214,0) and (235,21)
+.. (235,48)
+.. controls (235,75) and (214,95)
+.. (188,95)
+.. controls (161,95) and (140,75)
+.. (140,48)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((585,405)
+.. controls (601,451) and (601,479)
+.. (571,479)
+.. controls (554,479) and (537,478)
+.. (523,471)
+.. controls (540,505) and (534,531)
+.. (495,531)
+.. controls (488,531) and (474,529)
+.. (460,523)
+.. controls (456,548) and (439,579)
+.. (391,579)
+.. controls (367,579) and (330,575)
+.. (324,535)
+.. controls (298,550) and (258,543)
+.. (244,509)
+.. controls (229,542) and (201,554)
+.. (155,554)
+.. controls (112,554) and (70,518)
+.. (93,459)
+.. controls (84,465) and (68,470)
+.. (47,470)
+.. controls (36,470) and (31,460)
+.. (30,446)
+.. controls (29,433) and (32,417)
+.. (35,405)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (182,760*FS#,412*FS#,0*FS#);
+"partialdiff";
+path P[];
+P1 = ((496,172)
+-- (549,0)
+-- (618,0)
+-- (564,172)
+-- (730,172)
+-- (730,212)
+-- (552,212)
+-- (501,372)
+-- (601,372)
+-- (601,412)
+-- (159,412)
+-- (159,372)
+-- (259,372)
+-- (208,212)
+-- (30,212)
+-- (30,172)
+-- (196,172)
+-- (142,0)
+-- (211,0)
+-- (264,172)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((277,212)
+-- (327,372)
+-- (433,372)
+-- (483,212)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (185,1072*FS#,919*FS#,121*FS#);
+"pi";
+path P[];
+P1 = ((0,-74)
+.. controls (0,-124) and (21,-130)
+.. (58,-112)
+-- (1044,374)
+.. controls (1082,393) and (1083,413)
+.. (1044,432)
+-- (58,910)
+.. controls (21,928) and (0,922)
+.. (0,872)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((30,857)
+.. controls (30,880) and (51,880)
+.. (67,872)
+-- (993,424)
+.. controls (1024,409) and (1024,397)
+.. (993,382)
+-- (67,-74)
+.. controls (51,-82) and (30,-82)
+.. (30,-59)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (186,520*FS#,750*FS#,0*FS#);
+"integral";
+path P[];
+P1 = ((328,713)
+-- (301,631)
+-- (212,631)
+-- (286,576)
+-- (258,490)
+-- (328,543)
+-- (400,490)
+-- (373,576)
+-- (444,631)
+-- (355,631)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((420,0)
+-- (420,320)
+-- (275,320)
+-- (275,381)
+.. controls (315,384) and (353,406)
+.. (367,432)
+.. controls (340,423) and (308,418)
+.. (283,418)
+.. controls (208,418) and (147,491)
+.. (147,583)
+.. controls (147,675) and (208,748)
+.. (254,748)
+-- (254,750)
+.. controls (157,748) and (76,667)
+.. (76,564)
+.. controls (76,465) and (149,388)
+.. (245,381)
+-- (245,320)
+-- (100,320)
+-- (100,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (187,857*FS#,543*FS#,0*FS#);
+"ordfeminine";
+path P[];
+P1 = ((275,0)
+.. controls (305,0) and (336,22)
+.. (350,55)
+.. controls (364,22) and (395,0)
+.. (425,0)
+-- (574,0)
+.. controls (605,0) and (644,14)
+.. (666,34)
+-- (758,126)
+-- (758,190)
+.. controls (758,207) and (732,212)
+.. (712,212)
+-- (712,232)
+.. controls (712,242) and (702,242)
+.. (688,241)
+-- (545,229)
+-- (517,289)
+-- (827,517)
+-- (810,543)
+-- (499,314)
+-- (333,314)
+-- (322,337)
+-- (249,337)
+-- (249,305)
+.. controls (206,305) and (168,287)
+.. (165,261)
+-- (159,200)
+-- (44,180)
+.. controls (26,177) and (22,137)
+.. (32,112)
+-- (62,34)
+.. controls (69,16) and (112,0)
+.. (137,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (188,333*FS#,677*FS#,0*FS#);
+"ordmasculine";
+path P[];
+P1 = ((124,514)
+.. controls (133,504) and (130,489)
+.. (129,477)
+.. controls (105,473) and (89,475)
+.. (83,465)
+-- (37,391)
+.. controls (32,382) and (33,375)
+.. (36,368)
+-- (93,290)
+-- (62,227)
+-- (87,220)
+-- (79,146)
+-- (95,48)
+-- (62,31)
+.. controls (56,27) and (41,28)
+.. (41,13)
+.. controls (41,6) and (50,0)
+.. (61,0)
+.. controls (76,0) and (87,6)
+.. (92,10)
+-- (105,16)
+-- (111,14)
+-- (128,23)
+-- (129,41)
+-- (130,48)
+-- (130,154)
+-- (152,244)
+-- (154,244)
+-- (178,155)
+-- (165,53)
+-- (171,49)
+-- (172,27)
+-- (183,21)
+-- (189,23)
+-- (204,10)
+.. controls (205,9) and (222,0)
+.. (233,0)
+.. controls (245,0) and (252,4)
+.. (252,13)
+.. controls (252,23) and (241,26)
+.. (236,31)
+-- (207,57)
+-- (230,147)
+-- (208,260)
+-- (224,264)
+-- (210,322)
+-- (212,345)
+-- (235,345)
+.. controls (248,345) and (255,355)
+.. (253,365)
+-- (235,451)
+.. controls (232,464) and (220,469)
+.. (216,473)
+-- (243,527)
+-- (259,527)
+-- (312,638)
+.. controls (320,654) and (324,669)
+.. (321,677)
+.. controls (311,673) and (305,657)
+.. (296,640)
+-- (245,545)
+-- (227,545)
+-- (193,477)
+-- (174,477)
+.. controls (172,493) and (172,504)
+.. (179,514)
+-- (194,518)
+-- (194,543)
+.. controls (194,559) and (188,578)
+.. (152,578)
+.. controls (115,578) and (109,559)
+.. (109,543)
+-- (109,518)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((69,380)
+-- (90,414)
+.. controls (93,394) and (93,368)
+.. (88,343)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (189,700*FS#,456*FS#,0*FS#);
+"Omega";
+path P[];
+P1 = ((660,0)
+-- (660,456)
+-- (40,456)
+-- (40,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((610,426)
+-- (384,200)
+.. controls (359,175) and (341,175)
+.. (316,200)
+-- (90,426)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((90,30)
+-- (268,208)
+.. controls (303,173) and (326,149)
+.. (350,149)
+.. controls (374,149) and (397,173)
+.. (432,208)
+-- (610,30)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((70,406)
+-- (248,228)
+-- (70,50)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((630,406)
+-- (630,50)
+-- (452,228)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (190,500*FS#,458*FS#,0*FS#);
+"ae";
+path P[];
+P1 = ((250,271)
+-- (64,458)
+-- (43,436)
+-- (229,250)
+-- (43,64)
+-- (64,43)
+-- (250,229)
+-- (436,43)
+-- (457,64)
+-- (271,250)
+-- (457,436)
+-- (436,458)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (191,800*FS#,800*FS#,0*FS#);
+"oslash";
+path P[];
+P1 = ((234,800)
+-- (0,566)
+-- (0,235)
+-- (234,0)
+-- (566,0)
+-- (800,235)
+-- (800,566)
+-- (566,800)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((553,770)
+-- (770,554)
+-- (770,247)
+-- (553,30)
+-- (246,30)
+-- (30,247)
+-- (30,554)
+-- (246,770)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (192,696*FS#,718*FS#,0*FS#);
+"questiondown";
+path P[];
+P1 = ((592,607)
+-- (556,642)
+-- (460,546)
+.. controls (437,570) and (404,582)
+.. (373,582)
+-- (373,718)
+-- (323,718)
+-- (323,582)
+.. controls (293,582) and (254,572)
+.. (234,552)
+-- (138,647)
+-- (103,612)
+-- (198,516)
+.. controls (170,488) and (167,447)
+.. (166,425)
+-- (30,425)
+-- (30,375)
+-- (166,375)
+.. controls (167,340) and (178,312)
+.. (203,289)
+-- (107,193)
+-- (143,157)
+-- (239,253)
+.. controls (262,231) and (293,218)
+.. (323,218)
+-- (323,82)
+-- (373,82)
+-- (373,218)
+.. controls (403,219) and (433,234)
+.. (457,258)
+-- (552,162)
+-- (588,198)
+-- (492,294)
+.. controls (512,316) and (530,340)
+.. (530,375)
+-- (666,375)
+-- (666,425)
+-- (530,425)
+.. controls (530,447) and (519,488)
+.. (495,511)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((216,400)
+.. controls (216,474) and (274,532)
+.. (348,532)
+.. controls (422,532) and (480,474)
+.. (480,400)
+.. controls (480,326) and (422,268)
+.. (348,268)
+.. controls (274,268) and (216,326)
+.. (216,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (193,560*FS#,650*FS#,0*FS#);
+"exclamdown";
+path P[];
+P1 = ((30,400)
+.. controls (30,260) and (140,150)
+.. (280,150)
+.. controls (420,150) and (530,260)
+.. (530,400)
+.. controls (530,540) and (420,650)
+.. (280,650)
+.. controls (140,650) and (30,540)
+.. (30,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (194,820*FS#,1000*FS#,200*FS#);
+"logicalnot";
+path P[];
+P1 = ((0,-129)
+.. controls (0,-165) and (30,-200)
+.. (60,-200)
+-- (760,-200)
+.. controls (790,-200) and (820,-165)
+.. (820,-129)
+-- (820,929)
+.. controls (820,965) and (790,1002)
+.. (760,1000)
+-- (60,1000)
+.. controls (30,1000) and (0,965)
+.. (0,929)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((30,910)
+.. controls (30,944) and (50,970)
+.. (78,970)
+-- (742,970)
+.. controls (770,971) and (790,944)
+.. (790,910)
+-- (790,-111)
+.. controls (790,-145) and (770,-170)
+.. (742,-170)
+-- (78,-170)
+.. controls (50,-170) and (30,-145)
+.. (30,-111)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (195,520*FS#,750*FS#,0*FS#);
+"radical";
+path P[];
+P1 = ((260,750)
+-- (195,643)
+-- (72,643)
+-- (135,536)
+-- (72,429)
+-- (196,429)
+-- (260,320)
+-- (326,429)
+-- (448,429)
+-- (385,536)
+-- (448,643)
+-- (326,643)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((100,0)
+-- (420,0)
+-- (420,320)
+-- (100,320)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((260,708)
+-- (297,643)
+-- (223,643)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((335,623)
+-- (412,623)
+-- (373,559)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((373,513)
+-- (410,449)
+-- (336,449)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((299,429)
+-- (260,366)
+-- (225,429)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((186,449)
+-- (111,449)
+-- (148,513)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+P8 = ((148,559)
+-- (110,623)
+-- (187,623)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P8)>=0: fill else: unfill reverse fi P8;
+P9 = ((213,623)
+-- (309,623)
+-- (360,536)
+-- (310,449)
+-- (212,449)
+-- (161,536)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P9)>=0: fill else: unfill reverse fi P9;
+endchar;
+
+beginchar (196,944*FS#,489*FS#,0*FS#);
+"florin";
+path P[];
+P1 = ((570,377)
+-- (331,377)
+-- (350,437)
+-- (341,454)
+-- (351,463)
+-- (415,463)
+-- (415,489)
+-- (338,489)
+-- (308,462)
+-- (326,436)
+-- (283,307)
+.. controls (262,321) and (236,332)
+.. (196,332)
+.. controls (103,332) and (30,259)
+.. (30,166)
+.. controls (30,73) and (103,0)
+.. (196,0)
+.. controls (282,0) and (362,76)
+.. (362,166)
+.. controls (362,230) and (337,273)
+.. (303,298)
+-- (313,325)
+-- (481,139)
+.. controls (476,130) and (476,120)
+.. (480,112)
+.. controls (485,103) and (493,97)
+.. (505,96)
+-- (511,59)
+-- (498,55)
+-- (500,39)
+-- (544,48)
+-- (541,64)
+-- (528,62)
+-- (520,100)
+.. controls (526,107) and (523,106)
+.. (524,114)
+-- (583,124)
+.. controls (605,44) and (666,0)
+.. (748,0)
+.. controls (840,0) and (914,73)
+.. (914,166)
+.. controls (914,259) and (840,332)
+.. (748,332)
+.. controls (699,334) and (668,316)
+.. (654,305)
+-- (600,369)
+-- (606,391)
+.. controls (618,391) and (636,391)
+.. (647,402)
+-- (663,420)
+.. controls (667,426) and (663,434)
+.. (657,434)
+-- (523,424)
+.. controls (514,423) and (513,418)
+.. (516,413)
+.. controls (526,399) and (563,394)
+.. (575,391)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((589,338)
+-- (630,288)
+.. controls (600,261) and (575,202)
+.. (577,152)
+-- (526,143)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((475,191)
+-- (484,191)
+-- (484,171)
+-- (320,351)
+-- (566,351)
+-- (506,168)
+-- (499,168)
+-- (499,191)
+-- (508,191)
+-- (508,203)
+-- (475,203)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((276,216)
+-- (292,262)
+.. controls (310,244) and (328,211)
+.. (328,166)
+.. controls (328,91) and (265,32)
+.. (196,34)
+.. controls (122,34) and (64,91)
+.. (64,166)
+.. controls (64,241) and (122,298)
+.. (196,298)
+.. controls (239,297) and (263,287)
+.. (273,276)
+-- (257,229)
+-- (201,176)
+-- (190,180)
+.. controls (177,180) and (167,172)
+.. (167,158)
+.. controls (167,146) and (177,138)
+.. (188,138)
+.. controls (200,138) and (205,145)
+.. (207,150)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((708,192)
+.. controls (716,182) and (717,176)
+.. (708,174)
+-- (611,158)
+.. controls (611,204) and (627,243)
+.. (652,262)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((675,278)
+.. controls (690,290) and (711,298)
+.. (748,298)
+.. controls (822,298) and (880,241)
+.. (880,166)
+.. controls (880,91) and (822,34)
+.. (748,34)
+.. controls (675,37) and (626,84)
+.. (615,130)
+-- (745,152)
+.. controls (757,155) and (763,158)
+.. (763,164)
+.. controls (763,169) and (754,178)
+.. (751,183)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (197,424*FS#,739*FS#,0*FS#);
+"approxequal";
+path P[];
+P1 = ((300,530)
+.. controls (290,566) and (288,591)
+.. (288,619)
+-- (288,683)
+.. controls (296,685) and (303,688)
+.. (309,692)
+-- (309,716)
+.. controls (309,731) and (256,739)
+.. (212,739)
+.. controls (168,739) and (115,731)
+.. (115,717)
+-- (115,692)
+.. controls (121,688) and (128,685)
+.. (136,683)
+-- (136,619)
+.. controls (136,591) and (134,566)
+.. (124,530)
+-- (38,211)
+.. controls (33,192) and (30,173)
+.. (30,160)
+.. controls (30,146) and (37,137)
+.. (52,122)
+.. controls (67,107) and (111,61)
+.. (212,61)
+.. controls (313,61) and (357,107)
+.. (372,122)
+.. controls (387,137) and (394,146)
+.. (394,160)
+.. controls (394,173) and (391,192)
+.. (386,211)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((263,611)
+.. controls (263,586) and (263,563)
+.. (272,530)
+-- (347,239)
+.. controls (352,221) and (361,198)
+.. (361,181)
+.. controls (361,168) and (358,149)
+.. (337,131)
+.. controls (319,120) and (291,91)
+.. (212,91)
+.. controls (133,91) and (105,120)
+.. (87,131)
+.. controls (66,149) and (63,168)
+.. (63,181)
+.. controls (63,198) and (72,221)
+.. (77,239)
+-- (152,530)
+.. controls (161,563) and (161,586)
+.. (161,611)
+-- (161,689)
+.. controls (155,691) and (150,694)
+.. (145,698)
+-- (145,707)
+.. controls (145,717) and (183,720)
+.. (212,720)
+.. controls (241,720) and (279,717)
+.. (279,707)
+-- (279,698)
+.. controls (274,694) and (269,691)
+.. (263,689)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (198,810*FS#,814*FS#,14*FS#);
+"Delta";
+path P[];
+P1 = ((521,-14)
+-- (521,54)
+-- (445,114)
+-- (445,328)
+-- (780,207)
+-- (780,291)
+-- (445,499)
+-- (445,776)
+.. controls (445,804) and (422,814)
+.. (405,814)
+.. controls (388,814) and (365,804)
+.. (365,776)
+-- (365,499)
+-- (30,291)
+-- (30,207)
+-- (365,328)
+-- (365,114)
+-- (289,54)
+-- (289,-14)
+-- (405,39)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (200,900*FS#,688*FS#,0*FS#);
+"guillemotright";
+path P[];
+P1 = ((859,400)
+-- (571,688)
+-- (384,688)
+-- (602,470)
+-- (34,470)
+-- (34,330)
+-- (602,330)
+-- (384,112)
+-- (571,112)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (201,620*FS#,679*FS#,0*FS#);
+"ellipsis";
+path P[];
+P1 = ((590,122)
+-- (311,679)
+-- (30,122)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((64,142)
+-- (310,635)
+-- (556,142)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((255,302)
+.. controls (255,271) and (279,247)
+.. (310,247)
+.. controls (341,247) and (365,271)
+.. (365,302)
+.. controls (365,333) and (341,357)
+.. (310,357)
+.. controls (279,357) and (255,333)
+.. (255,302)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (202,1092*FS#,946*FS#,147*FS#);
+"nbspace";
+path P[];
+P1 = ((17,436)
+.. controls (-5,413) and (-5,385)
+.. (17,364)
+-- (512,-131)
+.. controls (533,-152) and (561,-152)
+.. (582,-131)
+-- (1077,364)
+.. controls (1099,385) and (1099,414)
+.. (1077,435)
+-- (582,930)
+.. controls (561,951) and (533,952)
+.. (512,930)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((0,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (203,960*FS#,871*FS#,71*FS#);
+"Agrave";
+path P[];
+P1 = ((150,871)
+.. controls (37,871) and (-7,835)
+.. (1,757)
+-- (88,62)
+.. controls (99,-33) and (141,-71)
+.. (222,-71)
+-- (738,-71)
+.. controls (819,-71) and (859,-33)
+.. (872,62)
+-- (958,757)
+.. controls (968,835) and (923,871)
+.. (810,871)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (204,1020*FS#,810*FS#,10*FS#);
+"Atilde";
+path P[];
+P1 = ((60,810)
+.. controls (30,810) and (0,780)
+.. (0,750)
+-- (0,50)
+.. controls (0,20) and (30,-8)
+.. (60,-10)
+-- (960,-10)
+.. controls (990,-10) and (1020,20)
+.. (1020,50)
+-- (1020,750)
+.. controls (1020,780) and (990,810)
+.. (960,810)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (205,854*FS#,880*FS#,80*FS#);
+"Otilde";
+path P[];
+P1 = ((0,122)
+.. controls (0,-80) and (189,-80)
+.. (426,-80)
+.. controls (665,-80) and (854,-80)
+.. (854,122)
+-- (854,272)
+.. controls (854,441) and (818,594)
+.. (722,679)
+.. controls (584,801) and (491,851)
+.. (426,880)
+.. controls (362,851) and (270,801)
+.. (131,679)
+.. controls (35,594) and (0,441)
+.. (0,272)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (206,560*FS#,500*FS#,0*FS#);
+"OE";
+path P[];
+P1 = ((530,0)
+-- (530,500)
+-- (30,500)
+-- (30,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((500,30)
+-- (413,30)
+-- (413,470)
+-- (500,470)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((265,30)
+-- (177,30)
+-- (177,470)
+-- (265,470)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((383,30)
+-- (295,30)
+-- (295,470)
+-- (383,470)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((147,30)
+-- (60,30)
+-- (60,470)
+-- (147,470)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (207,686*FS#,750*FS#,0*FS#);
+"oe";
+path P[];
+P1 = ((626,0)
+-- (626,50)
+-- (50,50)
+-- (50,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((338,750)
+-- (30,482)
+-- (646,482)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((533,80)
+-- (533,181)
+.. controls (533,236) and (626,221)
+.. (626,320)
+.. controls (626,397) and (573,452)
+.. (486,452)
+-- (191,452)
+.. controls (104,452) and (50,397)
+.. (50,320)
+.. controls (50,221) and (143,236)
+.. (143,181)
+-- (143,80)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((193,130)
+-- (193,185)
+.. controls (193,233) and (295,200)
+.. (295,304)
+.. controls (295,341) and (265,377)
+.. (219,377)
+.. controls (173,377) and (150,343)
+.. (150,311)
+.. controls (150,290) and (161,281)
+.. (174,281)
+.. controls (186,281) and (200,290)
+.. (200,304)
+.. controls (200,317) and (203,334)
+.. (223,334)
+.. controls (239,334) and (245,318)
+.. (245,299)
+.. controls (245,271) and (218,248)
+.. (180,248)
+.. controls (137,248) and (100,280)
+.. (100,323)
+.. controls (100,366) and (137,399)
+.. (180,402)
+-- (497,402)
+.. controls (540,399) and (576,366)
+.. (576,323)
+.. controls (576,280) and (540,248)
+.. (497,248)
+.. controls (460,248) and (431,271)
+.. (431,299)
+.. controls (431,318) and (438,334)
+.. (454,334)
+.. controls (475,334) and (476,317)
+.. (476,304)
+.. controls (476,290) and (491,281)
+.. (504,281)
+.. controls (516,281) and (526,290)
+.. (526,311)
+.. controls (526,343) and (505,377)
+.. (459,377)
+.. controls (413,377) and (381,341)
+.. (381,304)
+.. controls (381,200) and (483,233)
+.. (483,185)
+-- (483,130)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (208,807*FS#,668*FS#,0*FS#);
+"endash";
+path P[];
+P1 = ((432,397)
+-- (509,475)
+.. controls (574,409) and (691,382)
+.. (753,444)
+.. controls (798,489) and (771,553)
+.. (739,586)
+-- (681,644)
+.. controls (660,664) and (634,656)
+.. (619,641)
+-- (542,564)
+-- (509,596)
+.. controls (489,617) and (502,650)
+.. (516,668)
+.. controls (502,665) and (479,654)
+.. (468,632)
+.. controls (453,606) and (458,578)
+.. (477,560)
+-- (508,530)
+-- (404,426)
+-- (300,530)
+-- (329,561)
+.. controls (349,579) and (354,607)
+.. (339,632)
+.. controls (327,655) and (305,665)
+.. (291,668)
+.. controls (305,651) and (318,617)
+.. (298,597)
+-- (265,564)
+-- (189,641)
+.. controls (173,656) and (146,665)
+.. (127,644)
+-- (69,586)
+.. controls (35,554) and (9,489)
+.. (54,445)
+.. controls (116,383) and (233,409)
+.. (298,475)
+-- (375,397)
+-- (111,133)
+.. controls (168,141) and (209,175)
+.. (252,218)
+-- (404,369)
+-- (556,216)
+.. controls (598,175) and (640,141)
+.. (696,133)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((624,588)
+.. controls (640,604) and (662,609)
+.. (680,591)
+-- (709,562)
+.. controls (729,542) and (750,494)
+.. (728,473)
+.. controls (668,413) and (571,466)
+.. (537,501)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((272,501)
+.. controls (236,467) and (139,414)
+.. (79,475)
+.. controls (58,496) and (78,543)
+.. (99,564)
+-- (128,593)
+.. controls (146,610) and (168,605)
+.. (185,588)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (209,1260*FS#,553*FS#,0*FS#);
+"emdash";
+path P[];
+P1 = ((1230,0)
+-- (1230,228)
+-- (1005,228)
+-- (1005,83)
+-- (645,83)
+-- (645,358)
+-- (759,455)
+-- (615,553)
+-- (615,83)
+-- (255,83)
+-- (255,228)
+-- (30,228)
+-- (30,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (210,900*FS#,717*FS#,0*FS#);
+"quotedblleft";
+path P[];
+P1 = ((130,84)
+-- (537,84)
+-- (670,216)
+-- (361,216)
+-- (763,618)
+-- (664,717)
+-- (262,315)
+-- (262,624)
+-- (130,491)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (211,900*FS#,688*FS#,0*FS#);
+"quotedblright";
+path P[];
+P1 = ((34,400)
+-- (322,112)
+-- (509,112)
+-- (291,330)
+-- (859,330)
+-- (859,470)
+-- (291,470)
+-- (509,688)
+-- (322,688)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (212,900*FS#,813*FS#,12*FS#);
+"quoteleft";
+path P[];
+P1 = ((447,-12)
+-- (735,276)
+-- (735,463)
+-- (517,245)
+-- (517,813)
+-- (377,813)
+-- (377,245)
+-- (159,463)
+-- (159,276)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (213,900*FS#,813*FS#,12*FS#);
+"quoteright";
+path P[];
+P1 = ((447,813)
+-- (159,525)
+-- (159,338)
+-- (377,556)
+-- (377,-12)
+-- (517,-12)
+-- (517,556)
+-- (735,338)
+-- (735,525)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (214,655*FS#,590*FS#,0*FS#);
+"divide";
+path P[];
+P1 = ((435,380)
+-- (575,210)
+-- (620,210)
+-- (465,400)
+-- (620,590)
+-- (575,590)
+-- (435,420)
+-- (35,420)
+-- (35,380)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (215,520*FS#,750*FS#,0*FS#);
+"lozenge";
+path P[];
+P1 = ((420,0)
+-- (420,320)
+-- (275,320)
+-- (275,509)
+.. controls (363,509) and (433,555)
+.. (458,641)
+.. controls (338,560) and (288,628)
+.. (262,750)
+-- (260,750)
+.. controls (234,628) and (184,560)
+.. (64,641)
+.. controls (89,556) and (157,509)
+.. (245,509)
+-- (245,320)
+-- (100,320)
+-- (100,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (216,800*FS#,800*FS#,0*FS#);
+"ydieresis";
+path P[];
+P1 = ((234,800)
+-- (0,566)
+-- (0,235)
+-- (234,0)
+-- (566,0)
+-- (800,235)
+-- (800,566)
+-- (566,800)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (217,1063*FS#,921*FS#,122*FS#);
+"Ydieresis";
+path P[];
+P1 = ((30,748)
+.. controls (58,736) and (97,664)
+.. (97,608)
+.. controls (97,545) and (0,460)
+.. (0,299)
+.. controls (0,83) and (151,-88)
+.. (265,-88)
+.. controls (315,-88) and (344,-79)
+.. (367,-69)
+.. controls (391,-60) and (409,-50)
+.. (425,-50)
+.. controls (456,-50) and (499,-84)
+.. (531,-122)
+.. controls (563,-84) and (607,-50)
+.. (638,-50)
+.. controls (654,-50) and (672,-60)
+.. (696,-69)
+.. controls (719,-79) and (747,-88)
+.. (798,-88)
+.. controls (912,-88) and (1063,83)
+.. (1063,299)
+.. controls (1063,460) and (966,545)
+.. (966,608)
+.. controls (967,664) and (1006,736)
+.. (1034,748)
+-- (845,921)
+.. controls (790,862) and (737,824)
+.. (689,824)
+.. controls (637,824) and (557,862)
+.. (531,921)
+.. controls (505,862) and (427,824)
+.. (375,824)
+.. controls (327,824) and (274,862)
+.. (218,921)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (218,695*FS#,717*FS#,0*FS#);
+"fraction";
+path P[];
+P1 = ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (219,1005*FS#,921*FS#,121*FS#);
+"currency";
+path P[];
+P1 = ((503,-121)
+.. controls (597,-121) and (767,-18)
+.. (853,90)
+.. controls (945,206) and (1005,346)
+.. (1005,508)
+.. controls (1005,663) and (930,835)
+.. (850,921)
+.. controls (793,882) and (735,860)
+.. (677,860)
+.. controls (619,860) and (561,882)
+.. (503,921)
+.. controls (446,882) and (387,860)
+.. (329,860)
+.. controls (271,860) and (213,882)
+.. (154,921)
+.. controls (75,835) and (0,663)
+.. (0,508)
+.. controls (0,346) and (59,206)
+.. (153,90)
+.. controls (238,-18) and (408,-121)
+.. (503,-121)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (220,820*FS#,1000*FS#,200*FS#);
+"guilsinglleft";
+path P[];
+P1 = ((0,-129)
+.. controls (0,-165) and (30,-200)
+.. (60,-200)
+-- (760,-200)
+.. controls (790,-200) and (820,-165)
+.. (820,-129)
+-- (820,929)
+.. controls (820,965) and (790,1002)
+.. (760,1000)
+-- (60,1000)
+.. controls (30,1000) and (0,965)
+.. (0,929)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (221,970*FS#,885*FS#,85*FS#);
+"guilsinglright";
+path P[];
+P1 = ((0,400)
+.. controls (0,129) and (213,-85)
+.. (485,-85)
+.. controls (757,-85) and (970,129)
+.. (970,400)
+.. controls (970,671) and (757,885)
+.. (485,885)
+.. controls (213,885) and (0,671)
+.. (0,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (222,1442*FS#,799*FS#,0*FS#);
+"fi";
+path P[];
+P1 = ((0,411)
+.. controls (0,194) and (311,22)
+.. (721,22)
+.. controls (1125,22) and (1442,194)
+.. (1442,411)
+.. controls (1442,628) and (1125,799)
+.. (721,799)
+.. controls (318,799) and (0,628)
+.. (0,411)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (223,1054*FS#,700*FS#,0*FS#);
+"fl";
+path P[];
+P1 = ((896,0)
+-- (1054,154)
+-- (1052,156)
+-- (876,156)
+-- (1044,516)
+-- (1042,518)
+-- (740,270)
+-- (732,366)
+-- (612,180)
+-- (592,476)
+-- (494,296)
+-- (252,700)
+-- (250,698)
+-- (274,276)
+-- (186,326)
+-- (182,134)
+-- (2,232)
+-- (0,230)
+-- (173,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((184,20)
+-- (71,169)
+-- (73,169)
+-- (200,103)
+-- (203,293)
+-- (297,239)
+-- (273,624)
+-- (275,624)
+-- (495,257)
+-- (578,409)
+-- (598,123)
+-- (718,307)
+-- (726,232)
+-- (988,448)
+-- (988,450)
+-- (990,448)
+-- (844,136)
+-- (1007,136)
+-- (888,20)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (224,800*FS#,800*FS#,0*FS#);
+"daggerdbl";
+path P[];
+P1 = ((50,800)
+.. controls (20,800) and (0,780)
+.. (0,750)
+-- (0,50)
+.. controls (0,20) and (20,0)
+.. (50,0)
+-- (750,0)
+.. controls (780,0) and (800,20)
+.. (800,43)
+-- (800,750)
+.. controls (800,780) and (780,800)
+.. (750,800)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (226,700*FS#,800*FS#,0*FS#);
+"quotesinglbase";
+path P[];
+P1 = ((0,800)
+-- (0,300)
+.. controls (0,110) and (180,0)
+.. (350,0)
+.. controls (520,0) and (700,110)
+.. (700,300)
+-- (700,800)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (227,695*FS#,584*FS#,0*FS#);
+"quotedblbase";
+path P[];
+P1 = ((531,400)
+.. controls (531,508) and (456,584)
+.. (348,584)
+.. controls (240,584) and (164,508)
+.. (164,400)
+.. controls (164,292) and (240,216)
+.. (348,216)
+.. controls (456,216) and (531,292)
+.. (531,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (228,694*FS#,697*FS#,0*FS#);
+"perthousand";
+path P[];
+P1 = ((347,697)
+-- (260,471)
+-- (30,471)
+-- (206,329)
+-- (141,102)
+-- (347,236)
+-- (553,102)
+-- (478,329)
+-- (664,471)
+-- (435,471)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((416,451)
+-- (595,451)
+-- (450,340)
+-- (510,157)
+-- (347,267)
+-- (184,157)
+-- (237,340)
+-- (99,451)
+-- (279,451)
+-- (347,634)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((347,528)
+-- (308,421)
+-- (201,421)
+-- (284,358)
+-- (252,252)
+-- (347,317)
+-- (442,252)
+-- (405,358)
+-- (493,421)
+-- (386,421)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (229,694*FS#,697*FS#,0*FS#);
+"Acircumflex";
+path P[];
+P1 = ((347,697)
+-- (265,473)
+-- (30,473)
+-- (222,336)
+-- (135,104)
+-- (347,249)
+-- (559,104)
+-- (475,336)
+-- (664,473)
+-- (430,473)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((250,367)
+.. controls (250,421) and (293,465)
+.. (347,465)
+.. controls (401,465) and (444,421)
+.. (444,367)
+.. controls (444,312) and (401,269)
+.. (347,269)
+.. controls (293,269) and (250,312)
+.. (250,367)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (230,695*FS#,584*FS#,0*FS#);
+"Ecircumflex";
+path P[];
+P1 = ((531,400)
+.. controls (531,508) and (456,584)
+.. (348,584)
+.. controls (240,584) and (164,508)
+.. (164,400)
+.. controls (164,292) and (240,216)
+.. (348,216)
+.. controls (456,216) and (531,292)
+.. (531,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((501,400)
+.. controls (501,309) and (438,246)
+.. (348,246)
+.. controls (257,246) and (194,309)
+.. (194,400)
+.. controls (194,491) and (257,554)
+.. (348,554)
+.. controls (438,554) and (501,491)
+.. (501,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (231,907*FS#,841*FS#,52*FS#);
+"Aacute";
+path P[];
+P1 = ((849,-52)
+.. controls (878,-52) and (907,-23)
+.. (907,7)
+-- (907,538)
+.. controls (907,572) and (888,593)
+.. (862,609)
+-- (478,833)
+.. controls (459,844) and (448,844)
+.. (429,833)
+-- (46,609)
+.. controls (19,593) and (0,572)
+.. (0,538)
+-- (0,7)
+.. controls (0,-23) and (29,-52)
+.. (58,-52)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((71,-22)
+.. controls (44,-22) and (30,-8)
+.. (30,20)
+-- (30,533)
+.. controls (30,565) and (48,580)
+.. (73,595)
+-- (431,804)
+.. controls (449,814) and (459,814)
+.. (477,804)
+-- (835,595)
+.. controls (859,580) and (877,565)
+.. (877,533)
+-- (877,20)
+.. controls (877,-8) and (863,-22)
+.. (836,-22)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (232,1000*FS#,894*FS#,94*FS#);
+"Edieresis";
+path P[];
+P1 = ((75,796)
+.. controls (29,796) and (0,775)
+.. (0,652)
+.. controls (0,439) and (211,129)
+.. (430,-66)
+.. controls (471,-103) and (529,-103)
+.. (570,-66)
+.. controls (789,129) and (1000,439)
+.. (1000,652)
+.. controls (1000,775) and (971,796)
+.. (925,796)
+-- (629,796)
+-- (629,859)
+.. controls (629,881) and (615,894)
+.. (593,894)
+-- (407,894)
+.. controls (384,894) and (371,881)
+.. (371,859)
+-- (371,796)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((401,766)
+-- (401,841)
+.. controls (401,857) and (408,864)
+.. (425,864)
+-- (575,864)
+.. controls (591,864) and (599,857)
+.. (599,841)
+-- (599,766)
+-- (899,766)
+.. controls (942,766) and (970,741)
+.. (970,637)
+.. controls (970,465) and (773,156)
+.. (563,-34)
+.. controls (521,-72) and (479,-72)
+.. (437,-34)
+.. controls (227,156) and (30,465)
+.. (30,637)
+.. controls (30,741) and (57,766)
+.. (100,766)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (233,434*FS#,840*FS#,40*FS#);
+"Egrave";
+path P[];
+P1 = ((404,-40)
+-- (404,840)
+-- (30,840)
+-- (30,-40)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((117,130)
+.. controls (117,186) and (161,230)
+.. (217,230)
+.. controls (273,230) and (317,186)
+.. (317,130)
+.. controls (317,74) and (273,30)
+.. (217,30)
+.. controls (161,30) and (117,74)
+.. (117,130)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((117,400)
+.. controls (117,456) and (161,500)
+.. (217,500)
+.. controls (273,500) and (317,456)
+.. (317,400)
+.. controls (317,344) and (273,300)
+.. (217,300)
+.. controls (161,300) and (117,344)
+.. (117,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((117,670)
+.. controls (117,726) and (161,770)
+.. (217,770)
+.. controls (273,770) and (317,726)
+.. (317,670)
+.. controls (317,614) and (273,570)
+.. (217,570)
+.. controls (161,570) and (117,614)
+.. (117,670)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (234,450*FS#,649*FS#,6*FS#);
+"Iacute";
+path P[];
+P1 = ((39,293)
+.. controls (39,255) and (68,176)
+.. (171,175)
+.. controls (144,194) and (104,224)
+.. (94,274)
+.. controls (92,291) and (88,313)
+.. (89,338)
+.. controls (90,364) and (93,390)
+.. (99,409)
+.. controls (58,376) and (39,331)
+.. (39,293)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((402,273)
+.. controls (424,353) and (387,454)
+.. (347,487)
+.. controls (356,439) and (355,401)
+.. (353,382)
+.. controls (351,349) and (312,291)
+.. (284,259)
+.. controls (273,247) and (251,213)
+.. (251,199)
+.. controls (251,190) and (248,184)
+.. (251,175)
+.. controls (283,192) and (317,192)
+.. (344,205)
+.. controls (363,214) and (396,244)
+.. (402,273)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((394,23)
+.. controls (410,23) and (420,38)
+.. (420,52)
+.. controls (420,67) and (414,83)
+.. (402,83)
+.. controls (388,83) and (375,67)
+.. (375,49)
+.. controls (375,38) and (378,23)
+.. (394,23)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((80,24)
+.. controls (80,42) and (73,55)
+.. (55,55)
+.. controls (38,55) and (30,42)
+.. (30,24)
+.. controls (30,6) and (38,-6)
+.. (55,-6)
+.. controls (73,-6) and (80,6)
+.. (80,24)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((182,52)
+.. controls (155,63) and (127,78)
+.. (100,78)
+-- (67,65)
+.. controls (93,50) and (94,29)
+.. (88,2)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((410,131)
+.. controls (417,151) and (406,165)
+.. (387,172)
+-- (336,160)
+.. controls (314,155) and (279,151)
+.. (243,132)
+.. controls (269,122) and (312,112)
+.. (338,109)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((195,132)
+.. controls (157,138) and (75,148)
+.. (64,150)
+.. controls (46,133) and (44,117)
+.. (49,96)
+.. controls (49,96) and (109,92)
+.. (140,83)
+.. controls (171,74) and (191,58)
+.. (228,54)
+.. controls (270,49) and (302,43)
+.. (317,42)
+.. controls (331,40) and (347,30)
+.. (365,28)
+.. controls (356,57) and (362,77)
+.. (384,87)
+-- (384,90)
+.. controls (361,90) and (314,99)
+.. (267,111)
+.. controls (240,117) and (219,128)
+.. (195,132)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+P8 = ((117,355)
+.. controls (117,255) and (165,205)
+.. (209,172)
+.. controls (215,201) and (235,236)
+.. (257,263)
+.. controls (267,276) and (294,306)
+.. (303,322)
+.. controls (314,341) and (327,360)
+.. (327,420)
+.. controls (327,501) and (273,616)
+.. (243,649)
+.. controls (243,605) and (231,580)
+.. (210,551)
+.. controls (195,532) and (117,429)
+.. (117,355)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P8)>=0: fill else: unfill reverse fi P8;
+endchar;
+
+beginchar (235,550*FS#,400*FS#,0*FS#);
+"Icircumflex";
+path P[];
+P1 = ((520,0)
+-- (520,110)
+-- (140,110)
+-- (140,290)
+-- (520,290)
+-- (520,400)
+-- (30,400)
+-- (30,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (236,520*FS#,750*FS#,0*FS#);
+"Idieresis";
+path P[];
+P1 = ((245,750)
+-- (245,215)
+.. controls (139,211) and (60,165)
+.. (60,108)
+.. controls (60,48) and (146,0)
+.. (260,0)
+.. controls (372,0) and (460,48)
+.. (460,108)
+.. controls (460,165) and (380,212)
+.. (275,215)
+-- (275,499)
+-- (420,625)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((275,185)
+.. controls (363,182) and (430,149)
+.. (430,108)
+.. controls (430,65) and (355,30)
+.. (260,30)
+.. controls (163,30) and (90,65)
+.. (90,108)
+.. controls (90,148) and (156,182)
+.. (245,185)
+-- (245,100)
+-- (275,100)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (237,548*FS#,649*FS#,0*FS#);
+"Igrave";
+path P[];
+P1 = ((515,197)
+.. controls (520,207) and (514,210)
+.. (507,214)
+-- (475,231)
+.. controls (490,263) and (518,327)
+.. (518,425)
+.. controls (518,522) and (425,649)
+.. (274,649)
+.. controls (123,649) and (30,522)
+.. (30,425)
+.. controls (30,327) and (58,263)
+.. (73,231)
+-- (41,214)
+.. controls (34,210) and (28,207)
+.. (33,197)
+-- (53,157)
+.. controls (56,151) and (60,148)
+.. (67,152)
+-- (150,196)
+.. controls (158,200) and (158,206)
+.. (154,214)
+.. controls (143,235) and (110,307)
+.. (110,363)
+.. controls (110,420) and (130,579)
+.. (274,579)
+.. controls (418,579) and (438,420)
+.. (438,363)
+.. controls (438,307) and (405,235)
+.. (394,214)
+.. controls (390,206) and (390,200)
+.. (398,196)
+-- (481,152)
+.. controls (488,148) and (492,151)
+.. (495,157)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (238,600*FS#,600*FS#,0*FS#);
+"Oacute";
+path P[];
+P1 = ((225,500)
+-- (125,600)
+-- (75,550)
+-- (155,470)
+-- (155,130)
+-- (75,50)
+-- (125,0)
+-- (225,100)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((375,100)
+-- (475,0)
+-- (525,50)
+-- (445,130)
+-- (445,470)
+-- (525,550)
+-- (475,600)
+-- (375,500)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (239,655*FS#,590*FS#,0*FS#);
+"Ocircumflex";
+path P[];
+P1 = ((601,210)
+.. controls (611,210) and (621,220)
+.. (621,230)
+-- (621,250)
+.. controls (621,260) and (611,270)
+.. (601,270)
+-- (301,270)
+.. controls (291,270) and (281,260)
+.. (281,250)
+-- (281,230)
+.. controls (281,220) and (291,210)
+.. (301,210)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((595,458)
+.. controls (586,486) and (555,510)
+.. (516,510)
+-- (401,510)
+-- (401,570)
+-- (433,570)
+.. controls (439,570) and (446,562)
+.. (456,562)
+-- (602,562)
+.. controls (612,562) and (620,569)
+.. (620,576)
+.. controls (620,583) and (612,590)
+.. (602,590)
+-- (456,590)
+.. controls (446,590) and (439,582)
+.. (433,582)
+-- (343,582)
+.. controls (337,582) and (330,590)
+.. (320,590)
+-- (174,590)
+.. controls (164,590) and (156,583)
+.. (156,576)
+.. controls (156,569) and (164,562)
+.. (174,562)
+-- (320,562)
+.. controls (330,562) and (337,570)
+.. (343,570)
+-- (376,570)
+-- (376,510)
+-- (149,510)
+.. controls (141,531) and (120,548)
+.. (92,548)
+.. controls (57,548) and (30,520)
+.. (30,485)
+.. controls (30,450) and (57,423)
+.. (92,423)
+.. controls (120,423) and (138,435)
+.. (149,448)
+-- (288,397)
+-- (307,350)
+.. controls (315,329) and (325,320)
+.. (341,320)
+-- (589,320)
+.. controls (629,320) and (630,349)
+.. (620,379)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((401,410)
+-- (401,490)
+-- (451,490)
+-- (451,410)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((471,410)
+-- (471,490)
+-- (521,490)
+-- (521,410)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((541,410)
+-- (541,490)
+.. controls (567,481) and (587,449)
+.. (591,410)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((98,510)
+.. controls (84,510) and (78,504)
+.. (78,494)
+.. controls (78,488) and (85,478)
+.. (94,473)
+-- (132,454)
+.. controls (124,444) and (110,438)
+.. (92,438)
+.. controls (65,438) and (45,459)
+.. (45,485)
+.. controls (45,512) and (65,533)
+.. (92,533)
+.. controls (112,533) and (125,524)
+.. (130,510)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+endchar;
+
+beginchar (240,907*FS#,841*FS#,52*FS#);
+"apple";
+path P[];
+P1 = ((849,-52)
+.. controls (878,-52) and (907,-23)
+.. (907,7)
+-- (907,538)
+.. controls (907,572) and (888,593)
+.. (862,609)
+-- (478,833)
+.. controls (459,844) and (448,844)
+.. (429,833)
+-- (46,609)
+.. controls (19,593) and (0,572)
+.. (0,538)
+-- (0,7)
+.. controls (0,-23) and (29,-52)
+.. (58,-52)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (241,808*FS#,804*FS#,4*FS#);
+"Ograve";
+path P[];
+P1 = ((0,664)
+-- (264,400)
+-- (0,136)
+-- (140,-4)
+-- (404,260)
+-- (668,-4)
+-- (808,136)
+-- (544,400)
+-- (808,664)
+-- (668,804)
+-- (404,540)
+-- (140,804)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((140,762)
+-- (404,498)
+-- (668,761)
+-- (765,664)
+-- (502,400)
+-- (765,136)
+-- (668,39)
+-- (404,302)
+-- (140,39)
+-- (43,136)
+-- (306,400)
+-- (42,664)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (242,702*FS#,718*FS#,0*FS#);
+"Uacute";
+path P[];
+P1 = ((373,718)
+-- (323,718)
+-- (323,582)
+.. controls (249,585) and (167,506)
+.. (166,425)
+-- (30,425)
+-- (30,375)
+-- (166,375)
+.. controls (167,305) and (242,219)
+.. (323,218)
+-- (323,82)
+-- (373,82)
+-- (373,218)
+.. controls (451,231) and (521,298)
+.. (530,375)
+-- (666,375)
+-- (666,425)
+-- (530,425)
+.. controls (529,495) and (454,581)
+.. (373,582)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((216,400)
+.. controls (216,474) and (274,532)
+.. (348,532)
+.. controls (422,532) and (480,474)
+.. (480,400)
+.. controls (480,326) and (422,268)
+.. (348,268)
+.. controls (274,268) and (216,326)
+.. (216,400)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (243,808*FS#,804*FS#,4*FS#);
+"Ucircumflex";
+path P[];
+P1 = ((0,664)
+-- (264,400)
+-- (0,136)
+-- (140,-4)
+-- (404,260)
+-- (668,-4)
+-- (808,136)
+-- (544,400)
+-- (808,664)
+-- (668,804)
+-- (404,540)
+-- (140,804)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (244,626*FS#,526*FS#,0*FS#);
+"Ugrave";
+path P[];
+P1 = ((389,526)
+-- (237,526)
+-- (237,339)
+-- (50,339)
+-- (50,187)
+-- (237,187)
+-- (237,0)
+-- (389,0)
+-- (389,187)
+-- (576,187)
+-- (576,339)
+-- (389,339)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (245,520*FS#,750*FS#,0*FS#);
+"dotlessi";
+path P[];
+P1 = ((230,750)
+-- (230,539)
+-- (80,539)
+-- (80,484)
+-- (230,484)
+-- (230,0)
+-- (290,0)
+-- (290,484)
+-- (440,484)
+-- (440,539)
+-- (290,539)
+-- (290,750)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (246,1260*FS#,672*FS#,0*FS#);
+"circumflex";
+path P[];
+P1 = ((680,0)
+-- (680,27)
+.. controls (623,30) and (595,51)
+.. (565,122)
+.. controls (542,176) and (498,286)
+.. (498,454)
+.. controls (498,500) and (499,580)
+.. (519,643)
+.. controls (480,664) and (417,672)
+.. (355,672)
+.. controls (293,672) and (230,664)
+.. (191,643)
+.. controls (211,580) and (212,500)
+.. (212,454)
+.. controls (212,286) and (168,176)
+.. (145,122)
+.. controls (115,51) and (87,30)
+.. (30,27)
+-- (30,0)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((713,0)
+-- (1230,0)
+-- (1230,21)
+.. controls (1185,24) and (1162,41)
+.. (1139,97)
+.. controls (1120,140) and (1085,227)
+.. (1085,361)
+.. controls (1085,397) and (1086,461)
+.. (1102,511)
+.. controls (1071,528) and (1021,534)
+.. (972,534)
+.. controls (922,534) and (872,528)
+.. (841,511)
+.. controls (857,461) and (858,397)
+.. (858,361)
+.. controls (858,227) and (823,140)
+.. (805,97)
+.. controls (781,41) and (759,24)
+.. (713,21)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (247,510*FS#,750*FS#,0*FS#);
+"tilde";
+path P[];
+P1 = ((30,400)
+-- (255,50)
+-- (480,400)
+-- (255,750)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((453,410)
+-- (337,410)
+-- (285,670)
+-- (287,672)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((317,410)
+-- (193,410)
+-- (254,724)
+-- (256,724)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((173,410)
+-- (57,410)
+-- (223,672)
+-- (225,670)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((337,390)
+-- (453,390)
+-- (287,128)
+-- (285,130)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+P6 = ((193,390)
+-- (317,390)
+-- (256,76)
+-- (254,76)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P6)>=0: fill else: unfill reverse fi P6;
+P7 = ((57,390)
+-- (173,390)
+-- (225,130)
+-- (223,128)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P7)>=0: fill else: unfill reverse fi P7;
+endchar;
+
+beginchar (248,914*FS#,750*FS#,0*FS#);
+"macron";
+path P[];
+P1 = ((780,50)
+-- (780,610)
+-- (714,610)
+.. controls (706,696) and (650,750)
+.. (579,750)
+.. controls (528,750) and (479,721)
+.. (456,674)
+.. controls (430,723) and (384,750)
+.. (335,750)
+.. controls (262,750) and (195,689)
+.. (195,610)
+-- (195,50)
+-- (30,50)
+-- (30,0)
+-- (884,0)
+-- (884,50)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((618,610)
+-- (618,50)
+-- (538,50)
+-- (538,610)
+-- (472,610)
+.. controls (472,661) and (518,720)
+.. (579,720)
+.. controls (634,720) and (678,670)
+.. (684,610)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((376,610)
+-- (376,50)
+-- (225,50)
+-- (225,610)
+.. controls (225,661) and (271,720)
+.. (332,720)
+.. controls (390,720) and (436,670)
+.. (442,610)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+endchar;
+
+beginchar (249,890*FS#,700*FS#,0*FS#);
+"breve";
+path P[];
+P1 = ((780,260)
+-- (730,260)
+-- (730,700)
+-- (650,700)
+-- (650,260)
+-- (600,260)
+-- (600,440)
+-- (410,260)
+-- (410,440)
+-- (220,260)
+-- (220,440)
+-- (30,260)
+-- (30,0)
+-- (860,0)
+-- (860,700)
+-- (780,700)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (250,1042*FS#,280*FS#,0*FS#);
+"dotaccent";
+path P[];
+P1 = ((556,245)
+-- (385,245)
+-- (374,280)
+-- (227,280)
+-- (158,98)
+-- (30,98)
+-- (80,0)
+-- (976,0)
+-- (1012,98)
+-- (758,98)
+-- (732,181)
+-- (576,181)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((364,215)
+-- (539,215)
+-- (558,151)
+-- (708,151)
+-- (725,98)
+-- (191,98)
+-- (249,250)
+-- (352,250)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((514,151)
+-- (506,181)
+-- (377,181)
+-- (387,151)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((269,211)
+.. controls (269,199) and (279,189)
+.. (291,189)
+.. controls (304,189) and (314,199)
+.. (314,211)
+.. controls (314,224) and (304,234)
+.. (291,234)
+.. controls (279,234) and (269,224)
+.. (269,211)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+endchar;
+
+beginchar (251,852*FS#,677*FS#,0*FS#);
+"ring";
+path P[];
+P1 = ((447,408)
+-- (546,507)
+-- (674,380)
+-- (822,529)
+-- (674,677)
+-- (426,430)
+-- (178,677)
+-- (30,529)
+-- (178,380)
+-- (306,507)
+-- (405,409)
+-- (141,144)
+-- (162,123)
+-- (426,387)
+-- (691,123)
+-- (712,144)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((179,635)
+-- (285,529)
+-- (179,423)
+-- (73,529)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+endchar;
+
+beginchar (252,946*FS#,857*FS#,58*FS#);
+"cedilla";
+path P[];
+P1 = ((702,-58)
+.. controls (736,-58) and (742,-50)
+.. (753,-18)
+-- (931,539)
+.. controls (939,563) and (946,593)
+.. (946,619)
+.. controls (946,659) and (909,700)
+.. (867,718)
+-- (581,837)
+.. controls (553,849) and (513,857)
+.. (473,857)
+.. controls (433,857) and (393,849)
+.. (366,837)
+-- (79,718)
+.. controls (38,700) and (0,659)
+.. (0,619)
+.. controls (0,593) and (7,563)
+.. (15,539)
+-- (193,-18)
+.. controls (205,-50) and (210,-58)
+.. (245,-58)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (253,1154*FS#,899*FS#,100*FS#);
+"hungarumlaut";
+path P[];
+P1 = ((52,899)
+.. controls (0,899) and (-13,876)
+.. (12,830)
+-- (537,-66)
+.. controls (563,-111) and (591,-111)
+.. (617,-66)
+-- (1142,830)
+.. controls (1167,876) and (1154,899)
+.. (1102,899)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (254,1072*FS#,919*FS#,121*FS#);
+"ogonek";
+path P[];
+P1 = ((0,-74)
+.. controls (0,-124) and (21,-130)
+.. (58,-112)
+-- (1044,374)
+.. controls (1082,393) and (1083,413)
+.. (1044,432)
+-- (58,910)
+.. controls (21,928) and (0,922)
+.. (0,872)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+beginchar (183,694*FS#,698*FS#,0*FS#);
+"summation";
+path P[];
+P1 = ((509,400)
+-- (576,512)
+.. controls (581,508) and (587,507)
+.. (596,507)
+.. controls (610,507) and (625,522)
+.. (625,541)
+.. controls (625,560) and (613,575)
+.. (593,575)
+.. controls (572,575) and (554,558)
+.. (554,541)
+-- (425,541)
+-- (362,636)
+.. controls (371,640) and (381,650)
+.. (381,667)
+.. controls (381,683) and (366,698)
+.. (347,698)
+.. controls (328,698) and (313,683)
+.. (313,667)
+.. controls (313,650) and (323,640)
+.. (332,636)
+-- (269,541)
+-- (140,541)
+.. controls (140,558) and (122,575)
+.. (101,575)
+.. controls (81,575) and (69,560)
+.. (69,541)
+.. controls (69,522) and (84,507)
+.. (98,507)
+.. controls (107,507) and (113,508)
+.. (118,512)
+-- (185,400)
+-- (118,289)
+.. controls (113,293) and (107,294)
+.. (98,294)
+.. controls (84,294) and (69,279)
+.. (69,260)
+.. controls (69,241) and (81,225)
+.. (101,225)
+.. controls (122,225) and (140,243)
+.. (140,260)
+-- (269,260)
+-- (332,165)
+.. controls (323,161) and (313,151)
+.. (313,133)
+.. controls (313,117) and (328,103)
+.. (347,103)
+.. controls (366,103) and (381,117)
+.. (381,133)
+.. controls (381,151) and (371,161)
+.. (362,165)
+-- (425,260)
+-- (554,260)
+.. controls (554,243) and (572,225)
+.. (593,225)
+.. controls (613,225) and (625,241)
+.. (625,260)
+.. controls (625,279) and (610,294)
+.. (596,294)
+.. controls (587,294) and (581,293)
+.. (576,289)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (184,1200*FS#,1000*FS#,200*FS#);
+"product";
+path P[];
+P1 = ((1200,389)
+-- (1200,409)
+-- (883,409)
+.. controls (880,559) and (762,678)
+.. (610,682)
+-- (610,1000)
+-- (590,1000)
+-- (590,682)
+.. controls (438,678) and (320,559)
+.. (317,409)
+-- (0,409)
+-- (0,389)
+-- (317,389)
+.. controls (321,240) and (440,120)
+.. (590,116)
+-- (590,-200)
+-- (610,-200)
+-- (610,116)
+.. controls (760,120) and (879,240)
+.. (883,389)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+P2 = ((590,136)
+.. controls (450,139) and (340,250)
+.. (337,389)
+-- (590,389)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P2)>=0: fill else: unfill reverse fi P2;
+P3 = ((610,389)
+-- (863,389)
+.. controls (860,250) and (750,139)
+.. (610,136)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P3)>=0: fill else: unfill reverse fi P3;
+P4 = ((610,662)
+.. controls (752,659) and (861,549)
+.. (863,409)
+-- (610,409)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P4)>=0: fill else: unfill reverse fi P4;
+P5 = ((590,409)
+-- (337,409)
+.. controls (339,549) and (448,659)
+.. (590,662)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P5)>=0: fill else: unfill reverse fi P5;
+endchar;
+
+beginchar (199,900*FS#,717*FS#,0*FS#);
+"guillemotleft";
+path P[];
+P1 = ((763,491)
+-- (631,624)
+-- (631,315)
+-- (229,717)
+-- (130,618)
+-- (532,216)
+-- (223,216)
+-- (356,84)
+-- (763,84)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+
+beginchar (225,700*FS#,921*FS#,122*FS#);
+"periodcentered";
+path P[];
+P1 = ((700,856)
+-- (568,921)
+.. controls (529,899) and (496,884)
+.. (459,884)
+.. controls (423,884) and (371,899)
+.. (350,921)
+.. controls (329,899) and (277,884)
+.. (241,884)
+.. controls (205,884) and (171,899)
+.. (132,921)
+-- (0,856)
+-- (0,606)
+.. controls (16,555) and (34,503)
+.. (34,451)
+.. controls (34,425) and (30,399)
+.. (23,373)
+.. controls (17,347) and (8,322)
+.. (0,296)
+.. controls (0,196) and (41,101)
+.. (106,21)
+.. controls (166,-52) and (285,-122)
+.. (350,-122)
+.. controls (416,-122) and (534,-52)
+.. (594,21)
+.. controls (658,101) and (700,196)
+.. (700,296)
+.. controls (684,347) and (666,399)
+.. (666,451)
+.. controls (666,477) and (671,503)
+.. (677,529)
+.. controls (684,555) and (692,581)
+.. (700,606)
+-- cycle) xscaled FS yscaled FS;
+if (turningnumber P1)>=0: fill else: unfill reverse fi P1;
+endchar;
+font_slant:=0.00;
+font_normal_space:=280*FS#;
+font_normal_stretch:=140*FS#;
+font_normal_shrink:=93*FS#;
+font_x_height:=500*FS#;
+font_quad:=586*FS#;
+designsize:=FontSize;
+font_coding_scheme:="AppleStandard";
+font_identifier:="Karta";
+end.
+% That's all, Folks!
diff --git a/Master/texmf-dist/fonts/source/public/niceframe/karta15.mf b/Master/texmf-dist/fonts/source/public/niceframe/karta15.mf
new file mode 100644
index 00000000000..b0f1aaf4419
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/niceframe/karta15.mf
@@ -0,0 +1,4 @@
+%
+FontSize := 15pt#;
+input karta;
+end. \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/niceframe/umrand.mf b/Master/texmf-dist/fonts/source/public/niceframe/umrand.mf
new file mode 100644
index 00000000000..e32467aef34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/niceframe/umrand.mf
@@ -0,0 +1,66 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The MF-macros of the border-project %
+% This file has version number 1.2. %
+% 19.06.1993 %
+% (c) by Andreas Schrell, Wuppertal %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+
+penwi# := 0.1pt#;
+penwid# := 0.2pt#;
+penwidd# := 0.6pt#;
+
+charsize# := 10pt#;
+
+font_size charsize#;
+font_x_height charsize#;
+font_quad charsize#;
+font_normal_space 0pt#;
+font_normal_shrink 0pt#;
+font_normal_stretch 0pt#;
+
+normw# := charsize#;
+normh# := charsize#;
+define_pixels(normw,normh);
+
+def ow = hround(xscal*normw) enddef;
+def oh = vround(normh) enddef;
+
+xscal:=1;
+
+define_blacker_pixels(penwi,penwid,penwidd); penwidow := penwid;
+
+if unknown write_white_engine:
+ boolean write_white_engine;
+ write_white_engine := false;
+fi
+if write_white_engine:
+ % for penwi its ok to become 1 pixel width, but...
+ penwid := max(penwid,2);
+ penwidd := max(penwidd,3);
+fi;
+
+def sec(expr n) =
+ u := (w/n);
+ v := (h/n);
+enddef;
+
+def CenterRotation(expr W,r) =
+ ((r) shifted (-.5ow,-.5oh) rotated W shifted (.5w,.5h))
+enddef;
+
+def CenterRot(expr W) =
+ currenttransform := identity
+ shifted (-.5ow,-.5oh) rotated W shifted (.5w,.5h)
+enddef;
+
+
+
+def CenterMirror(expr xs,ys,r) =
+ ((r) shifted (-.5ow,-.5oh) xscaled (xs) yscaled (ys) shifted (.5ow,.5oh))
+enddef;
+
+endinput
+
+ \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/niceframe/umranda.mf b/Master/texmf-dist/fonts/source/public/niceframe/umranda.mf
new file mode 100644
index 00000000000..d969418383c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/niceframe/umranda.mf
@@ -0,0 +1,478 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% A font of the border-project %
+% This file has version number 1.2. %
+% 19.06.1993 %
+% (c) by Andreas Schrell, Wuppertal %
+% and Andreas H"orstemeier, Hemer %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input umrand
+
+def wood(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=1;
+ u:=w/10; v:=h/20;
+ x0=x1=0;
+ x2=x3=x4=x5=x6=u;
+ x7=x8=x9=x10=x11=x12=2u;
+ x13=x14=x15=3u;
+ x16=x17=x18=x19=4u;
+ x20=x21=x22=5u;
+ x23=x24=x25=6u;
+ x26=7u; x27=8u;
+ x28=x29=10u;
+ y2=20v; y0=19v; y3=16v;
+ y7=y16=15v; y13=y20=14v;
+ y8=13v; y21=12v;
+ y9=y17=y23=y27=y28=11v;
+ y4=y14=y26=10v;
+ y18=y24=y29=9v;
+ y5=8v; y10=y19=y25=7v;
+ y15=y22=6v;
+ y11=5v; y12=3v; y1=v; y6=0v;
+ CenterRot(W);
+ if abs(abs(sind(W))-abs(cosd(W))) < eps:
+ currenttransform := identity shifted(2u,0)
+ transformed (currenttransform);
+ fi
+ draw z2--z0--z1--z6--z5--z15;
+ draw z10--z12--z22--z19--z11;
+ draw z0--z16--z8--z7--z13;
+ draw z7--z3--z4--z9--z8;
+ draw z4--z19--z18--z9--z20--z21--z14;
+ draw z17--z18;
+ draw z21--z22--z25--z24--z23--z21;
+ draw z23--z26--z24;
+ draw z20--z27--z26;
+ draw z2--z28--z25;
+ draw z28--z29--z6;
+ endchar;
+enddef;
+
+def yingyang(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=1;
+ CenterRot(W);
+ x1=w-x2=0; y1=y2=y5=0.5h;
+ y3=h-y4=0; x3=x4=x5=0.5w;
+ x8=y8=w-x7=w-y7=w/4;
+ draw (z1{down}..z3{right}..z2{up}..z4{left}..z1{down}--cycle);
+ turningcheck:=0;
+ fill (z3{right}..z2{up}..z7{left}..z5{down}
+ ..z8{left}..z1{up}--z1{down}..z3{right}--cycle);
+ turningcheck:=2;
+ cullit;
+ fill (fullcircle scaled (w/6) shifted (w/4,h/2));
+ unfill (fullcircle scaled (w/6) shifted (w-w/4,h/2));
+ endchar;
+enddef;
+
+
+% nach Apollonio: Dynamische circulaire 5 H
+
+def dynacirc(expr W,Lines) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pw# := charsize#/(2.3*(Lines));
+ define_blacker_pixels(pw);
+ pickup pencircle scaled pw;
+ xscal:=1;
+ CenterRot(W);
+ for i=0 upto Lines:
+ penpos[i](pw,90);
+ x[i]=0.5w;
+ y[i]=i*h/Lines;
+ endfor;
+ penpos100(1,-40); penpos101(1,-40);
+ x100=x101=0.5w;
+ top y100=y0; bot y101=y[Lines];
+ for i=0 upto Lines:
+ penstroke (
+ z[100].e{left}..z[i].e{right}..z[101].e{left});
+ endfor;
+ endchar;
+enddef;
+
+
+% nach Ludwig: Kinematische Scheibe
+
+def kinemat(expr W,Lines) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pa# := charsize#*3.14/3.5*2/Lines;
+ pi# := charsize#/7*3.14/3.5*2/Lines;
+ define_blacker_pixels(pa,pi);
+ xscal:=1;
+ CenterRot(W);
+ penpos0(pa,90);
+ penpos1(pi,90);
+ z0=(w,0.5h);
+ z1=(0.5w+0.06w,0.5h+0.08h);
+ for i=0 upto Lines:
+ penstroke CenterRotation(i*360/Lines,
+ z0e--z1e);
+ endfor;
+ endchar;
+enddef;
+
+def saw(expr W,Lines) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pa# := charsize#*3.14/3*2/Lines;
+ pi# := charsize#/4*3.14/3*2/Lines;
+ define_blacker_pixels(pa,pi);
+ xscal:=1;
+ CenterRot(W);
+ penpos0(pi,90);
+ penpos1(pa,90);
+ z0=(w,0.5h);
+ z1=(0.5w+0.4w,0.5h+0.4h);
+ for i=0 upto Lines:
+ penstroke CenterRotation(i*360/Lines,
+ z0e--z1e);
+ endfor;
+ endchar;
+enddef;
+
+def opta(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ a := hround(w/8);
+ pickup pencircle scaled penwi;
+ for i=0 upto 5:
+ draw fullcircle scaled (w-i*a) shifted (0.5w,0.5h);
+ endfor;
+ pickup pencircle scaled penwid;
+ draw (w,h/2)--(w/2,h)--(0,h/2)--(w/2,0)--cycle;
+ endchar;
+enddef;
+
+def optb(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ a := hround(w/8);
+ pickup pencircle scaled penwi;
+ for i=0 upto 5:
+ draw quartercircle scaled (w-i*a)
+ rotated 0 shifted (0,0);
+ draw quartercircle scaled (w-i*a)
+ rotated 90 shifted (w,0);
+ draw quartercircle scaled (w-i*a)
+ rotated 180 shifted (w,h);
+ draw quartercircle scaled (w-i*a)
+ rotated 270 shifted (0,h);
+ endfor;
+ pickup pencircle scaled penwid;
+ draw (w,h/2)--(w/2,h)--(0,h/2)--(w/2,0)--cycle;
+ endchar;
+enddef;
+
+def kassette(expr W) =
+ if abs(abs(sind(W))-abs(cosd(W)))<eps:
+ fak:=sqrt(2)
+ else:
+ fak:=1
+ fi;
+ beginchar(incr nextchar,fak*charsize#,fak*charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=1;
+ CenterRot(W);
+ draw ((0,0)--(normw,0)--(normw,normh)--(0,normh)--cycle);
+ draw ((normw/4,normh)--(normw/4,normh/4)--(normw,normh/4));
+ draw
+ ((normw/4,3normh/4)--(3normw/4,3normh/4)--(3normw/4,normh/4));
+ fill ((0,0)--(normw/3,0)--(normw/3,normh/3)--(0,normh/3)--cycle);
+ endchar;
+enddef;
+
+def kassetteb(expr W) =
+ if abs(abs(sind(W))-abs(cosd(W)))<eps:
+ fak:=sqrt(2)
+ else:
+ fak:=1
+ fi;
+ beginchar(incr nextchar,fak*charsize#,fak*charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=1;
+ CenterRot(W);
+ draw ((0,0)--(normw,0)--(normw,normh)--(0,normh)--cycle);
+ draw ((normw/2,0)--(normw/2,normh/2)--(normw,normh/2));
+ draw ((0,normh/5)--(normw/2,normh/5));
+ draw ((4normw/5,normh)--(4normw/5,normh/2));
+ draw (unitsquare scaled (normw/5) shifted (0,4normh/5));
+ draw (unitsquare scaled (normw/3) shifted (0,2normh/3));
+ fill (unitsquare scaled (normw/3) shifted (2normw/3,0));
+ endchar;
+enddef;
+
+def qq(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ pickup pencircle scaled penwid;
+ CenterRot(W);
+ draw (unitsquare scaled (w));
+ fill (unitsquare scaled (w/2) shifted (w/4,h/4));
+ endchar;
+enddef;
+
+def oval(expr W) =
+ beginchar(incr nextchar,(1+abs(cosd(W)))*charsize#,(1+abs(sind(W)))*charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=2;
+ CenterRot(W);
+ draw (fullcircle xscaled (2normw) yscaled (normw)
+ shifted (normw,normw/2));
+ endchar;
+enddef;
+
+def teilquad(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=1;
+ CenterRot(W);
+ draw ((0,h)--(0,0)--(w,0)--(w,h));
+ endchar;
+enddef;
+
+def gras(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=1;
+ CenterRot(W);
+ draw ((w/2,0){up}..{left}(0,h));
+ draw ((w/2,0){up}..{right}(w,h));
+ draw ((w/2,0){up}..{left}(0,2h/3));
+ draw ((w/2,0){up}..{right}(w,2h/3));
+ endchar;
+enddef;
+
+
+def fish(expr W,xs) =
+ beginchar(incr nextchar,(1+abs(cosd(W)))*charsize#,(1+abs(sind(W)))*charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ path p;
+ xscal:=2;
+ CenterRot(W);
+ x0=0; x1=x2=2normw/3; x3=x4=2.3*3normw/4; x5=x6=2normw; x7=2*11normw/12;
+ y0=y7=normw/3; y1=normw; y2=y6=0; y4=normw/6; y5=2normw/3;
+ y3=normw/2; x8=normw/5; y8=y0;
+ p := z0{up}..z1{right}.. tension 1 and 1.2 ..z3..
+ tension 1.2 and 4 .. z5 ..tension 4 and 1
+ ..z7..
+ tension 1 and 4 .. z6 .. tension 4 and 1 ..z4..z2{left}..z0..cycle;
+ draw (CenterMirror(xs,1,p));
+ draw (CenterMirror(xs,1,z0{z2-z0}..z8));
+ pickup pencircle scaled penwidd;
+ drawdot (CenterMirror(xs,1,(normw/3,2normw/3.2)));
+ endchar;
+enddef;
+
+def xlines(expr W) =
+ beginchar(incr nextchar,(1+abs(cosd(W)))*charsize#,(1+abs(sind(W)))*charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=2;
+ CenterRot(W);
+ draw ((0,0){right}..{right}(2normw,normw));
+ draw ((0,normw){right}..{right}(2normw,0));
+ endchar;
+enddef;
+
+def xcirc(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=1;
+ CenterRot(W);
+ draw (fullcircle scaled w shifted (w/2,h/2));
+ endchar;
+enddef;
+
+def xquad(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=1;
+ CenterRot(W);
+ draw (unitsquare scaled w);
+ endchar;
+enddef;
+
+def xbcirc(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=1;
+ CenterRot(W);
+ draw (fullcircle scaled (sqrt(2)*w) shifted (w/2,h/2));
+ endchar;
+enddef;
+
+def flower(expr W,xs) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ gr := w/9*0.9; kr := w/12*0.9;
+ z0=(2kr+gr,h-2kr-gr); z1=(w-2kr-gr,2kr+gr);
+ xscal:=1;
+ CenterRot(W);
+ fill (
+ CenterMirror(xs,1,fullcircle scaled (2gr) shifted z0));
+ for l:=0 upto 8-1:
+ draw (
+ CenterMirror(xs,1,
+ fullcircle scaled (2kr) shifted (gr+kr,0)
+ rotated (l*360/8) shifted z0));
+ endfor;
+ pwd# := 3penwid#;
+ define_blacker_pixels(pwd);
+ if write_white_engine:
+ pwd:=max(pwd,2);
+ fi;
+ draw (
+ CenterMirror(xs,1,(z0+(gr,0)){dir (-360/8)}..{right}(w,0)));
+ z3 = (0.9w,0);
+ z4 = z3+(-0.3w,0.6w);
+ z6 = z3+(-0.2w,0.3w);
+ z5 = z3+(-0.7w,0.3w);
+ z7 = z3+(-0.35w,0.2w);
+ penpos3(1,0); penpos4(1,45); penpos5(1,60);
+ penpos6(pwd,45); penpos7(pwd,60);
+ penstroke (
+ CenterMirror(xs,1,z3e..z6e..z4e));
+ penstroke (
+ CenterMirror(xs,1,z3e..z7e..z5e));
+ endchar;
+enddef;
+
+def snake(expr W,xs) =
+ beginchar(incr nextchar,(1+abs(cosd(W)))*charsize#,(1+abs(sind(W)))*charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ xscal:=2;
+ CenterRot(W);
+ u:=2normw/100; v:=normw/43;
+ def MYTR(expr a) = (CenterMirror(xs,1,a)) enddef;
+ x0=24u; x1=26u; x2=34u; x3=46u; x4=54u; x5=65u; x6=74u;
+ x7=86u; x8=95u; x9=100u; x17=11u;
+ x10=21u; x11=16u; x12=12u; x13=9u; x14=18.5u; x15=4u; x16=6u;
+ y0=34v; y1=15v; y2=5v; y3=18v; y4=30v; y5=13v; y6=3v;
+ y7=13v; y8=14v; y9=11v; y17=37v;
+ y10=39v; y11=38v; y12=35v; y13=33v; y14=39v; y15=29v; y16=30v;
+ penpos0(8u,20); penpos1(8u,30); penpos2(7.5u,87); penpos3(7u,130);
+ penpos4(7u,90); penpos5(6.5u,43); penpos6(6u,87); penpos7(5u,130);
+ penpos8(3u,80); penpos9(1,45);
+ penpos10(8u,70); penpos11(8u,100); penpos12(11u,130);
+ penpos13(9u,130); penpos14(8u,90); penpos15(1,135); penpos16(4u,135);
+ penstroke MYTR(
+ z15e..z16e..z13e..z12e..z11e..z14e..z10e
+ ..z0e..z1e..z2e..z3e..z4e..z5e..z6e..z7e..z8e..z9e);
+ cullit;
+ unfill MYTR(z13--z16l..z15l..z15r..
+ z16r--z13--cycle);
+ draw MYTR(z13{(-1,-1)}..(0,26v));
+ draw MYTR(z13{(-1,-1)}..(2.5u,24v));
+ pickup pencircle scaled penwidd;
+ undrawdot(MYTR(z17));
+ endchar;
+enddef;
+
+nextchar:=-1; % -1: we start first char width incr(-1) = 0!
+
+for k=0 upto 8-1: wood(k*360/8); endfor;
+
+for k=0 upto 12-1: yingyang(k*360/12); endfor;
+
+for k=0 upto 6-1: dynacirc(k*180/6,13); endfor;
+
+for k=0 upto 6-1: dynacirc(k*180/6,8); endfor;
+
+kinemat(0,35);
+
+saw(0,8);
+
+opta(0);
+
+optb(0);
+
+for k=0 upto 8-1: kassette(k*360/8); endfor;
+
+for k=0 upto 8-1: kassetteb(k*360/8); endfor;
+
+qq(0);
+
+for k=0 upto 4-1: oval(k*180/4); endfor;
+
+for k=0 upto 4-1: teilquad(k*360/4); endfor;
+
+for k=0 upto 4-1: gras(k*360/4); endfor;
+
+for k=0 upto 4-1: fish(k*360/4,1); fish(k*360/4,-1); endfor;
+
+xlines(0); xlines(90); xcirc(0); xquad(0); xbcirc(0);
+
+for k=0 upto 4-1: flower(k*360/4,1); flower(k*360/4,-1); endfor;
+
+for k=0 upto 4-1: snake(k*360/4,1); snake(k*360/4,-1); endfor;
+
+
+beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ CenterRot(0);
+ pickup pencircle scaled penwid;
+ sec(5);
+ draw (.5u,0)--(.5u,.5v)--(3.5u,.5v)--(3.5u,3.5v)--(1.5u,3.5v)--(1.5u,2.5v)--(2.5u,2.5v)--(2.5u,1.5v)--(.5u,1.5v)--(.5u,4.5v)--(4.5u,4.5v)--(4.5u,.5v)--(5u,.5v);
+endchar;
+
+beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ CenterRot(0);
+ pickup pencircle scaled penwid;
+ sec(5);
+ draw (0,.5v)--(3.5u,.5v)--(3.5u,3.5v)--(1.5u,3.5v)--(1.5u,2.5v)--(2.5u,2.5v)--(2.5u,1.5v)--(.5u,1.5v)--(.5u,4.5v)--(4.5u,4.5v)--(4.5u,.5v)--(5u,.5v);
+endchar;
+
+beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ CenterRot(0);
+ pickup pencircle scaled penwid;
+ sec(5);
+ draw (0,.5v)--(3.5u,.5v)--(3.5u,3.5v)--(1.5u,3.5v)--(1.5u,2.5v)--(2.5u,2.5v)--(2.5u,1.5v)--(.5u,1.5v)--(.5u,4.5v)--(4.5u,4.5v)--(4.5u,0);
+endchar;
+
+beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ CenterRot(0);
+ pickup pencircle scaled penwid;
+ sec(5);
+ draw (4.5u,5v)--(4.5u,4.5v)--(.5u,4.5v)--(.5u,.5v)--(3.5u,.5v)--(3.5u,2.5v)--(2.5u,2.5v)--(2.5u,1.5v)--(1.5u,1.5v)--(1.5u,3.5v)--(4.5u,3.5v)--(4.5u,0);
+endchar;
+
+beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ CenterRot(0);
+ pickup pencircle scaled penwid;
+ sec(5);
+ draw (4.5u,5v)--(4.5u,4.5v)--(1.5u,4.5v)--(1.5u,1.5v)--(3.5u,1.5v)--(3.5u,2.5v)--(2.5u,2.5v)--(2.5u,3.5v)--(4.5u,3.5v)--(4.5u,.5v)--(.5u,.5v)--(.5u,4.5v)--(0,4.5v);
+endchar;
+
+beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ CenterRot(0);
+ pickup pencircle scaled penwid;
+ sec(5);
+ draw (5u,4.5v)--(1.5u,4.5v)--(1.5u,1.5v)--(3.5u,1.5v)--(3.5u,2.5v)--(2.5u,2.5v)--(2.5u,3.5v)--(4.5u,3.5v)--(4.5u,.5v)--(.5u,.5v)--(.5u,4.5v)--(0,4.5v);
+endchar;
+
+beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ CenterRot(0);
+ pickup pencircle scaled penwid;
+ sec(5);
+ draw (5u,4.5v)--(1.5u,4.5v)--(1.5u,1.5v)--(3.5u,1.5v)--(3.5u,2.5v)--(2.5u,2.5v)--(2.5u,3.5v)--(4.5u,3.5v)--(4.5u,.5v)--(.5u,.5v)--(.5u,5v);
+endchar;
+
+beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ xscal:=1;
+ CenterRot(0);
+ pickup pencircle scaled penwid;
+ sec(5);
+ draw (.5u,0)--(.5u,.5v)--(4.5u,.5v)--(4.5u,4.5v)--(1.5u,4.5v)--(1.5u,2.5v)--(2.5u,2.5v)--(2.5u,3.5v)--(3.5u,3.5v)--(3.5u,1.5v)--(.5u,1.5v)--(.5u,5v);
+endchar;
+
+end;
+
+ \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/niceframe/umrandb.mf b/Master/texmf-dist/fonts/source/public/niceframe/umrandb.mf
new file mode 100644
index 00000000000..0adc66f3606
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/niceframe/umrandb.mf
@@ -0,0 +1,596 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% A font of the border-project %
+% This file has version number 1.2. %
+% 19.06.1993 %
+% (c) by Andreas H"orstemeier, Hemer %
+% some changes %
+% by Andreas Schrell, Wuppertal %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input umrand
+
+def randsix(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pensquare scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw top (u,0)--bot (u,h);
+ draw top (2u,0)--bot (2u,h);
+ draw top (3u,0)--bot (3u,h);
+ draw top (4u,0)--bot (4u,h);
+ draw top (5u,0)--bot (5u,h);
+ draw top (6u,0)--bot (6u,h);
+ endchar;
+enddef;
+
+def randfour(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pensquare scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw top (u,0)--bot (u,h);
+ draw top (2u,0)--bot (2u,h);
+ draw top (3u,0)--bot (3u,h);
+ draw top (4u,0)--bot (4u,h);
+ endchar;
+enddef;
+
+def randfivea(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pensquare scaled penwid;
+ CenterRot(W); sec(6);
+ xscal:=1;
+ draw top (u,0)--bot (u,h);
+ draw top (2u,0)--bot (2u,h);
+ draw top (4u,0)--bot (4u,h);
+ draw top (5u,0)--bot (5u,h);
+ pickup pensquare scaled penwidd;
+ draw top (3u,0)--bot (3u,h);
+ endchar;
+enddef;
+
+def randfiveb(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pensquare scaled penwid;
+ CenterRot(W); sec(6);
+ xscal:=1;
+ draw top (u,0)--bot (u,2.5v);
+ draw top (2u,0)--bot (2u,2.5v);
+ draw top (4u,0)--bot (4u,2.5v);
+ draw top (5u,0)--bot (5u,2.5v);
+ draw bot (u,h)--top (u,3.5v);
+ draw bot (2u,h)--top (2u,3.5v);
+ draw bot (4u,h)--top (4u,3.5v);
+ draw bot (5u,h)--top (5u,3.5v);
+ draw (u,2.5v)--(5u,2.5v)--(5u,3.5v)--(u,3.5v)--(u,2.5v);
+ draw (1.5u,3v)--(4.5u,3v);
+ pickup pensquare scaled penwidd;
+ draw top (3u,0)--bot (3u,2.5u-penwid/2);
+ draw top (3u,3.5u+penwid/2)--bot (3u,h);
+ endchar;
+enddef;
+
+def eckesa(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(u,3v);
+ draw (u,4v)--(u,8v)--(4u,8v)--(4u,6v);
+ draw (2u,0)--(2u,3v);
+ draw (2u,4v)--(2u,7v)--(3u,7v)--(3u,6v);
+ draw (3u,0)--(3u,v);
+ draw (3u,2v)--(3u,5v);
+ draw (4u,0)--(4u,v);
+ draw (4u,2v)--(4u,5v);
+ draw (5u,0)--(5u,3v);
+ draw (5u,4v)--(5u,8v)--(8u,8v)--(8u,5v)--(6u,5v);
+ draw (6u,0)--(6u,3v);
+ draw (6u,4v)--(6u,7v)--(7u,7v)--(7u,6v)--(6u,6v);
+ draw (0,v)--(u,v);
+ draw (2u,v)--(5u,v);
+ draw (6u,v)--(8u,v)--(8u,4v)--(4u,4v);
+ draw (0,2v)--(u,2v);
+ draw (2u,2v)--(5u,2v);
+ draw (6u,2v)--(7u,2v)--(7u,3v)--(4u,3v);
+ draw (0,3v)--(3u,3v);
+ draw (0,4v)--(3u,4v);
+ draw (0,5v)--(1u,5v);
+ draw (2u,5v)--(5u,5v);
+ draw (0,6v)--(1u,6v);
+ draw (2u,6v)--(5u,6v);
+ endchar;
+enddef;
+
+def eckesb(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(u,3v);
+ draw (u,4v)--(u,6.5v)..(2.5u,8v)..(4u,6.5v)--(4u,6v);
+ draw (2u,0)--(2u,3v);
+ draw (2u,4v)--(2u,6.5v)..(2.5u,7v)..(3u,6.5v)--(3u,6v);
+ draw (3u,0)--(3u,v);
+ draw (3u,2v)--(3u,5v);
+ draw (4u,0)--(4u,v);
+ draw (4u,2v)--(4u,5v);
+ draw (5u,0)--(5u,3v);
+ draw (5u,4v)--(5u,6.5v)..(6.5u,8v)..(8u,6.5v)..(6.5u,5v)--(6u,5v);
+ draw (6u,0)--(6u,3v);
+ draw (6u,4v)--(6u,6.5v)..(6.5u,7v)..(7u,6.5v)..(6.5u,6v)--(6u,6v);
+ draw (0,v)--(u,v);
+ draw (2u,v)--(5u,v);
+ draw (6u,v)--(6.5u,v)..(8u,2.5v)..(6.5u,4v)--(4u,4v);
+ draw (0,2v)--(u,2v);
+ draw (2u,2v)--(5u,2v);
+ draw (6u,2v)--(6.5u,2v)..(7u,2.5v)..(6.5u,3v)--(4u,3v);
+ draw (0,3v)--(3u,3v);
+ draw (0,4v)--(3u,4v);
+ draw (0,5v)--(1u,5v);
+ draw (2u,5v)--(5u,5v);
+ draw (0,6v)--(1u,6v);
+ draw (2u,6v)--(5u,6v);
+ endchar;
+enddef;
+
+def eckesh(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(0,v);
+ draw (2u,0)--(0,2v);
+ draw (3u,0)--(0,3v);
+ draw (4u,0)--(0,4v);
+ draw (5u,0)--(0,5v);
+ draw (6u,0)--(0,6v);
+ endchar;
+enddef;
+
+def eckesc(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(6u,5v);
+ draw (2u,0)--(6u,4v);
+ draw (3u,0)--(6u,3v);
+ draw (4u,0)--(6u,2v);
+ draw (5u,0)--(6u,1v);
+ draw (6u,0)--(6u,5v);
+ draw (0,v)--(5u,6v);
+ draw (0,2v)--(4u,6v);
+ draw (0,3v)--(3u,6v);
+ draw (0,4v)--(2u,6v);
+ draw (0,5v)--(1u,6v);
+ draw (0,6v)--(5u,6v);
+ draw (6u,5v)..(5.7071u,5.7071v)..(5u,6v);
+ endchar;
+enddef;
+
+def eckesd(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(u,v)--(5.7071u,5.7071v);
+ draw (2u,0)--(2u,v)--(6u,5v);
+ draw (3u,0)--(3u,v)--(6u,4v);
+ draw (4u,0)--(4u,v)--(6u,3v);
+ draw (5u,0)--(5u,v)--(6u,2v);
+ draw (6u,0)--(6u,5v);
+ draw (0,v)--(u,v);
+ draw (0,2v)--(u,2v)--(5u,6v);
+ draw (0,3v)--(u,3v)--(4u,6v);
+ draw (0,4v)--(u,4v)--(3u,6v);
+ draw (0,5v)--(u,5v)--(2u,6v);
+ draw (0,6v)--(5u,6v);
+ draw (6u,5v)..(5.7071u,5.7071v)..(5u,6v);
+ endchar;
+enddef;
+
+def eckese(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(u,3v)--(0,3v);
+ draw (u,v)--(0,v);
+ draw (u,2v)--(0,2v);
+ draw (2u,0)--(2u,3v);
+ draw (3u,0)--(3u,3v);
+ draw (4u,0v)..(3.7071u,0.7071v)..(3u,1v);
+ draw (5u,0v)..(4.4142u,1.4142v)..(3u,2v);
+ draw (6u,0v)..(5.1213u,2.1213v)..(3u,3v);
+ draw (1u,3v)..(0.7071u,3.7071v)..(0u,4v);
+ draw (2u,3v)..(1.4142u,4.4142v)..(0u,5v);
+ draw (3u,3v)..(2.1213u,5.1213v)..(0u,6v);
+ endchar;
+enddef;
+
+def eckesf(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(u,v);
+ draw (2u,0)--(2u,v);
+ draw (3u,0)--(3u,2v)--(0,2v);
+ draw (3u,v)--(0,v);
+ draw (4u,0)--(4u,2v);
+ draw (u,2v)--(u,4v)--(0,4v);
+ draw (u,3v)--(0,3v);
+ draw (2u,2v)--(2u,4v);
+ draw (5u,0v)..(4.7071u,0.7071v)..(4u,1v);
+ draw (6u,0v)..(5.4142u,1.4142v)..(4u,2v);
+ draw (3u,2v)..(2.7071u,2.7071v)..(2u,3v);
+ draw (4u,2v)..(3.4142u,3.4142v)..(2u,4v);
+ draw (1u,4v)..(0.7071u,4.7071v)..(0u,5v);
+ draw (2u,4v)..(1.4142u,5.4142v)..(0u,6v);
+ endchar;
+enddef;
+
+def eckesg(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(u,5v)--(0,5v);
+ draw (2u,0)--(2u,4v)--(0,4v);
+ draw (3u,0)--(3u,3v)--(0,3v);
+ draw (4u,0)--(4u,2v)--(0,2v);
+ draw (5u,0)--(5u,v)--(0,v);
+ draw (6u,0v)..(5.7071u,0.7071v)..(5u,1v);
+ draw (5u,1v)..(4.7071u,1.7071v)..(4u,2v);
+ draw (4u,2v)..(3.7071u,2.7071v)..(3u,3v);
+ draw (3u,3v)..(2.7071u,3.7071v)..(2u,4v);
+ draw (2u,4v)..(1.7071u,4.7071v)..(1u,5v);
+ draw (1u,5v)..(0.7071u,5.7071v)..(0u,6v);
+ endchar;
+enddef;
+
+def eckesl(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (1u,0v)..(0.7071u,0.7071v)..(0u,1v);
+ draw (2u,0)--(2u,1v)..(1.7071u,1.7071v)..(1u,2v)--(0,2v);
+ draw (3u,0)--(3u,2v)..(2.7071u,2.7071v)..(2u,3v)--(0,3v);
+ draw (4u,0)--(4u,3v)..(3.7071u,3.7071v)..(3u,4v)--(0,4v);
+ draw (5u,0)--(5u,4v)..(4.7071u,4.7071v)..(4u,5v)--(0,5v);
+ draw (6u,0)--(6u,5v)..(5.7071u,5.7071v)..(5u,6v)--(0,6v);
+ endchar;
+enddef;
+
+def eckesi(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(u,.5v)--(6u,5.5v)--(5.5u,6v)--(.5u,v)--(0,v);
+ draw (2u,0)--(2u,.5v)--(6u,4.5v)--(4.5u,6v)--(.5u,2v)--(0,2v);
+ draw (3u,0)--(3u,.5v)--(6u,3.5v)--(3.5u,6v)--(.5u,3v)--(0,3v);
+ draw (4u,0)--(4u,.5v)--(6u,2.5v)--(2.5u,6v)--(.5u,4v)--(0,4v);
+ draw (5u,0)--(5u,.5v)--(6u,1.5v)--(1.5u,6v)--(.5u,5v)--(0,5v);
+ draw (6u,0)--(6u,.5v)--(.5u,6v)--(0,6v);
+ endchar;
+enddef;
+
+def eckesj(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(u,.5v)--(6u,5.5v)--(5.5u,6v)--(.5u,v)--(0,v);
+ draw (2u,0)--(2u,.5v)--(6u,4.5v)--(4.5u,6v)--(.5u,2v)--(0,2v);
+ draw (3u,0)--(3u,.5v)--(6u,3.5v)--(3.5u,6v)--(.5u,3v)--(0,3v);
+ draw (4u,0)--(4u,.5v)--(6u,2.5v)--(2.5u,6v)--(.5u,4v)--(0,4v);
+ draw (5u,0)--(5u,.5v)--(6u,1.5v)--(1.5u,6v)--(.5u,5v)--(0,5v);
+ draw (6u,0)--(6u,.5v)--(.5u,6v)--(0,6v);
+ draw (5u,.5v)--(.5u,5v);
+ draw (4u,.5v)--(.5u,4v);
+ draw (3u,.5v)--(.5u,3v);
+ draw (2u,.5v)--(.5u,2v);
+ draw (u,.5v)--(.5u,v);
+ endchar;
+enddef;
+
+def eckesk(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(5u,6v);
+ draw (2u,0)--(4u,6v);
+ draw (3u,0)--(3u,6v);
+ draw (4u,0)--(2u,6v);
+ draw (5u,0)--(1u,6v);
+ draw (6u,0)--(0,6v);
+ draw (0,v)--(6u,5v);
+ draw (0,2v)--(6u,4v);
+ draw (0,3v)--(6u,3v);
+ draw (0,4v)--(6u,2v);
+ draw (0,5v)--(6u,1v);
+ draw (0,6v)--(6u,0);
+ endchar;
+enddef;
+
+def eckesm(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (1u,0)..(0.7071u,0.7071v)..(0,1v);
+ draw (2u,0)..(1.4142u,1.4142v)..(0,2v);
+ draw (3u,0)..(2.1213u,2.1213v)..(0,3v);
+ draw (4u,0)..(2.8284u,2.8284v)..(0,4v);
+ draw (5u,0)..(3.5355u,3.5355v)..(0,5v);
+ draw (6u,0)..(4.2426u,4.2426v)..(0,6v);
+ endchar;
+enddef;
+
+def eckesn(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (1u,0)..(0.7071u,0.7071v)..(0,1v);
+ draw (2u,0)..(1.7071u,1.7071v)..(0,2v);
+ draw (3u,0)..(2.7071u,2.7071v)..(0,3v);
+ draw (4u,0)..(3.7071u,3.7071v)..(0,4v);
+ draw (5u,0)..(4.7071u,4.7071v)..(0,5v);
+ draw (6u,0)..(5.7071u,5.7071v)..(0,6v);
+ endchar;
+enddef;
+
+def eckeso(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(8);
+ xscal:=1;
+ draw (u,0)--(u,v)--(0,v);
+ draw (2u,0)--(2u,2v)--(0,2v);
+ draw (3u,0)--(3u,3v)--(0,3v);
+ draw (4u,0)--(4u,4v)--(0,4v);
+ draw (5u,0)--(5u,5v)--(0,5v);
+ draw (6u,0)--(6u,6v)--(0,6v);
+ endchar;
+enddef;
+
+def eckefb(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw (1u,0)..(0.7071u,0.7071v)..(0,1v);
+ draw (2u,0)..(1.7071u,1.7071v)..(0,2v);
+ draw (3u,0)..(2.7071u,2.7071v)..(0,3v);
+ draw (4u,0)..(3.7071u,3.7071v)..(0,4v);
+ endchar;
+enddef;
+
+def eckefa(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw (1u,0)..(0.7071u,0.7071v)..(0,1v);
+ draw (2u,0)..(1.4142u,1.4142v)..(0,2v);
+ draw (3u,0)..(2.1213u,2.1213v)..(0,3v);
+ draw (4u,0)..(2.8284u,2.8284v)..(0,4v);
+ endchar;
+enddef;
+
+def eckefc(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw (1u,0)..(0.7071u,0.7071v)..(0,1v);
+ draw (2u,0)--(2u,v)..(1.7071u,1.7071v)..(u,2v)--(0,2v);
+ draw (3u,0)--(3u,2v)..(2.7071u,2.7071v)..(2u,3v)--(0,3v);
+ draw (4u,0)--(4u,3v)..(3.7071u,3.7071v)..(3u,4v)--(0,4v);
+ endchar;
+enddef;
+
+def eckefd(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw (1u,0)--(1u,3v)..(0.7071u,3.7071v)..(0,4v);
+ draw (2u,0)--(2u,2v)..(1.7071u,2.7071v)..(u,3v)--(0,3v);
+ draw (3u,0)--(3u,1v)..(2.7071u,1.7071v)..(2u,2v)--(0,2v);
+ draw (4u,0)..(3.7071u,0.7071v)..(3u,v)--(0,v);
+ endchar;
+enddef;
+
+def eckefe(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw (u,0)--(u,v);
+ draw (2u,0)--(2u,v);
+ draw (u,2v)..(0.7071u,2.7071v)..(0,3v);
+ draw (2u,2v)..(1.4142u,3.4142v)..(0,4v);
+ draw (3u,0)..(2.7071u,0.7071v)..(2u,v)--(0,v);
+ draw (4u,0)..(3.4142u,1.4142v)..(2u,2v)--(0,2v);
+ endchar;
+enddef;
+
+def eckeff(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw (u,0)--(u,v)--(0,v);
+ draw (2u,0)--(2u,2v)--(0,2v);
+ draw (3u,0)--(3u,3v)--(0,3v);
+ draw (4u,0)--(4u,4v)--(0,4v);
+ endchar;
+enddef;
+
+def eckefg(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw (u,0)--(0,v);
+ draw (2u,0)--(0,2v);
+ draw (3u,0)--(0,3v);
+ draw (4u,0)--(0,4v);
+ endchar;
+enddef;
+
+def eckefh(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw (u,0)--(u,.5v)--(4u,3.5v)--(3.5u,4v)--(.5u,v)--(0,v);
+ draw (2u,0)--(2u,.5v)--(4u,2.5v)--(2.5u,4v)--(.5u,2v)--(0,2v);
+ draw (3u,0)--(3u,.5v)--(4u,1.5v)--(1.5u,4v)--(.5u,3v)--(0,3v);
+ draw (4u,0)--(4u,.5v)--(.5u,4v)--(0,4v);
+ endchar;
+enddef;
+
+def eckefi(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(5);
+ xscal:=1;
+ draw (u,0)--(u,.5v)--(4u,3.5v)--(3.5u,4v)--(.5u,v)--(0,v);
+ draw (2u,0)--(2u,.5v)--(4u,2.5v)--(2.5u,4v)--(.5u,2v)--(0,2v);
+ draw (3u,0)--(3u,.5v)--(4u,1.5v)--(1.5u,4v)--(.5u,3v)--(0,3v);
+ draw (4u,0)--(4u,.5v)--(.5u,4v)--(0,4v);
+ draw (3u,.5v)--(.5u,3v);
+ draw (2u,.5v)--(.5u,2v);
+ draw (u,.5v)--(.5u,v);
+ endchar;
+enddef;
+
+def eckexa(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pensquare scaled penwid;
+ CenterRot(W); sec(6);
+ xscal:=1;
+ draw (u,0)--(u,v);
+ draw (2u,0)--(2u,v);
+ draw (4u,0)--(4u,v);
+ draw (5u,0)--(5u,v);
+ draw (0,v)--(u,v);
+ draw (0,2v)--(u,2v);
+ draw (0,4v)--(u,4v);
+ draw (0,5v)--(u,5v);
+ draw (u,v)--(u,5v)--(5u,5v)--(5u,v)--(u,v);
+ draw (2u,2v)--(2u,4v)--(4u,4v)--(4u,2v)--(2u,2v);
+ draw (u,5v)--(u,6v)--(5u,6v)--(5u,5v);
+ draw (5u,v)--(6u,v)--(6u,5v)--(5u,5v);
+ draw (5.5u,1.5v)--(5.5u,4.5v);
+ draw (1.5u,5.5v)--(4.5u,5.5v);
+ pickup pensquare scaled penwidd;
+ draw (3u,0)-- bot (3u,v-penwid/2);
+ draw (0,3v)-- lft (u-penwid/2,3v);
+ drawdot (3u,3v);
+ endchar;
+enddef;
+
+def eckexb(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(6);
+ xscal:=1;
+ draw (u,0)--(u,v);
+ draw (2u,0)--(2u,v);
+ draw (4u,0)..(3.7071u,0.7071v)..(3u,v)--(0,v);
+ draw (5u,0)..(4.4142u,1.4142v)..(3u,2v)--(0,2v);
+ draw (u,2v)--(u,3v)..(.7071u,3.7071v)..(0,4v);
+ draw (2u,2v)--(2u,3v)..(1.4142u,4.4142v)..(0,5v);
+ pickup pencircle scaled penwidd;
+ draw (3u,0)--(3u,v)..(2.4142u,2.4142v)..(u,3v)--(0,3v);
+ endchar;
+enddef;
+
+def eckexc(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+ CenterRot(W); sec(6);
+ xscal:=1;
+ draw (u,0)..(.7071u,.7071v)..(0,v);
+ draw (2u,0)..(1.4142u,1.4142v)..(0,2v);
+ draw (4u,0)..(2.8284u,2.8284v)..(0,4v);
+ draw (5u,0)..(3.5355u,3.5355v)..(0,5v);
+ pickup pencircle scaled penwidd;
+ draw (3u,0)..(2.1213u,2.1213v)..(0,3v);
+ endchar;
+enddef;
+
+nextchar:=-1; % -1: we start first char width incr(-1) = 0!
+
+for k=0 upto 4-1: randsix(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesa(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesb(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesc(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesd(k*360/4); endfor;
+
+for k=0 upto 4-1: eckese(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesf(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesg(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesh(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesi(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesj(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesk(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesl(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesm(k*360/4); endfor;
+
+for k=0 upto 4-1: eckesn(k*360/4); endfor;
+
+for k=0 upto 4-1: eckeso(k*360/4); endfor;
+
+for k=0 upto 4-1: randfour(k*360/4); endfor;
+
+for k=0 upto 4-1: eckefa(k*360/4); endfor;
+
+for k=0 upto 4-1: eckefb(k*360/4); endfor;
+
+for k=0 upto 4-1: eckefc(k*360/4); endfor;
+
+for k=0 upto 4-1: eckefd(k*360/4); endfor;
+
+for k=0 upto 4-1: eckefe(k*360/4); endfor;
+
+for k=0 upto 4-1: eckeff(k*360/4); endfor;
+
+for k=0 upto 4-1: eckefg(k*360/4); endfor;
+
+for k=0 upto 4-1: eckefh(k*360/4); endfor;
+
+for k=0 upto 4-1: eckefi(k*360/4); endfor;
+
+for k=0 upto 4-1: randfivea(k*360/4); endfor;
+
+for k=0 upto 4-1: randfiveb(k*360/4); endfor;
+
+for k=0 upto 4-1: eckexa(k*360/4); endfor;
+
+for k=0 upto 4-1: eckexb(k*360/4); endfor;
+
+for k=0 upto 4-1: eckexc(k*360/4); endfor;
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/nkarta/nkarta.mf b/Master/texmf-dist/fonts/source/public/nkarta/nkarta.mf
new file mode 100644
index 00000000000..83658986b2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/nkarta/nkarta.mf
@@ -0,0 +1,59 @@
+% Nkarta.mf
+% Author: Daniel H. Luecking
+% Description: Derived from karta.mf (author and license unknown)
+% Date: 02 March 2004
+% License: Use at your own risk. If it is found that karta limits
+% derived works, nkarta will be subject to those limits.
+
+mode_setup;
+smoothing := 0; autorounding := 0;
+FS# := if (known FontSize) and (numeric FontSize):
+ FontSize
+ else:
+ 15pt#
+ fi/1000;
+define_pixels(FS);
+
+% In the original, the following code occurred after each path P[n] was
+% defined:
+% if (turningnumber P[n])>=0: fill else: unfill reverse fi P[n];
+% This fails if turning number is 0. The following is more efficient
+% and has the same effect. Moreover, it puts the repeated code in a
+% macro issued only once per character.
+boolean debug; debug:=false;
+
+path P[];
+def drawthem expr t =
+if debug: % debug
+ pickup pencircle scaled .4pt; %
+fi %
+ for n = 1 upto t:
+if debug: %
+ addto currentpicture doublepath (P[n] scaled FS); %
+else: %
+ addto currentpicture contour (P[n] scaled FS);
+fi
+ cullit; % debug
+ endfor
+enddef;
+
+% I don't know what a space is needed for, but I've kept it.
+beginchar (32,280*FS#,0*FS#,0*FS#);
+"space";
+P1 := ((0,0)
+-- cycle) ;
+drawthem 1; % Seems useless.
+endchar;
+
+input nkchars.mf;
+
+font_slant:=0;
+font_normal_space:=280*FS#;
+font_normal_stretch:=140*FS#;
+font_normal_shrink:=93*FS#;
+font_x_height:=500*FS#;
+font_quad:=586*FS#;
+designsize:=FontSize;
+font_coding_scheme:="AppleStandard";
+font_identifier:="NKarta";
+end.
diff --git a/Master/texmf-dist/fonts/source/public/nkarta/nkarta15.mf b/Master/texmf-dist/fonts/source/public/nkarta/nkarta15.mf
new file mode 100644
index 00000000000..4c5b547e6c7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/nkarta/nkarta15.mf
@@ -0,0 +1,4 @@
+% nkarta15.mf
+FontSize := 15pt#;
+input nkarta;
+end.
diff --git a/Master/texmf-dist/fonts/source/public/nkarta/nkchars.mf b/Master/texmf-dist/fonts/source/public/nkarta/nkchars.mf
new file mode 100644
index 00000000000..ebc682af795
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/nkarta/nkchars.mf
@@ -0,0 +1,7323 @@
+% I've also added these to avoid some error states:
+turningcheck:=0;
+warningcheck:=0;
+
+% Note: the names "exclam", etc., of these figures have nothing to do
+% with the actual figures. They are apparently the names of the glyph at
+% that position in AppleStandard encoding. I have kept them in case they
+% convey any information to anyone.
+%
+% All paths have been kept unchanged. But the scaling by FS has been
+% moved into the drawthem macro.
+
+beginchar (33,560*FS#,650*FS#,0*FS#);
+"exclam";
+P1 := ((30,400)
+.. controls (30,260) and (140,150)
+.. (280,150)
+.. controls (420,150) and (530,260)
+.. (530,400)
+.. controls (530,540) and (420,650)
+.. (280,650)
+.. controls (140,650) and (30,540)
+.. (30,400)
+-- cycle) ;
+P2 := ((50,400)
+.. controls (50,529) and (151,630)
+.. (280,630)
+.. controls (409,630) and (510,529)
+.. (510,400)
+.. controls (510,271) and (409,170)
+.. (280,170)
+.. controls (151,170) and (50,271)
+.. (50,400)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (34,620*FS#,741*FS#,0*FS#);
+"quotedbl";
+P1 := ((605,230)
+-- (605,571)
+-- (310,741)
+-- (15,571)
+-- (15,230)
+-- (310,60)
+-- cycle) ;
+P2 := ((585,238)
+-- (310,82)
+-- (35,238)
+-- (35,562)
+-- (310,719)
+-- (585,562)
+-- cycle) ;
+P3 := ((513,255)
+-- (310,659)
+-- (106,255)
+-- cycle) ;
+P4 := ((140,275)
+-- (310,617)
+-- (481,275)
+-- cycle) ;
+P5 := ((268,389)
+.. controls (268,365) and (286,347)
+.. (310,347)
+.. controls (334,347) and (352,365)
+.. (352,389)
+.. controls (352,414) and (334,432)
+.. (310,432)
+.. controls (286,432) and (268,414)
+.. (268,389)
+-- cycle) ;
+drawthem 5;
+endchar;
+
+beginchar (35,560*FS#,650*FS#,0*FS#);
+"numbersign";
+P1 := ((530,150)
+-- (280,650)
+-- (30,150)
+-- cycle) ;
+P2 := ((65,170)
+-- (280,600)
+-- (495,170)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (36,560*FS#,683*FS#,0*FS#);
+"dollar";
+P1 := ((563,400)
+-- (280,683)
+-- (-3,400)
+-- (280,117)
+-- cycle) ;
+P2 := ((280,147)
+-- (27,400)
+-- (280,653)
+-- (533,400)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (37,560*FS#,650*FS#,0*FS#);
+"percent";
+P1 := ((424,150)
+-- (569,400)
+-- (424,650)
+-- (136,650)
+-- (-9,400)
+-- (136,150)
+-- cycle) ;
+P2 := ((148,170)
+-- (15,400)
+-- (148,630)
+-- (412,630)
+-- (545,400)
+-- (412,170)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (38,1236*FS#,916*FS#,216*FS#);
+"ampersand";
+P1 := ((1130,192)
+-- (1132,194)
+-- (928,330)
+-- (1166,432)
+-- (1164,434)
+-- (876,402)
+-- (1038,808)
+-- (1036,810)
+-- (806,542)
+-- (790,682)
+-- (720,584)
+-- (402,916)
+-- (400,914)
+-- (528,534)
+-- (392,558)
+-- (518,424)
+-- (18,536)
+-- (16,534)
+-- (420,318)
+-- (270,232)
+-- (272,230)
+-- (446,242)
+-- (60,-52)
+-- (62,-54)
+-- (524,50)
+-- (532,-210)
+-- (710,24)
+-- (804,-88)
+-- (810,68)
+-- (1230,-216)
+-- (1232,-214)
+-- (894,224)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (39,620*FS#,741*FS#,0*FS#);
+"quotesingle";
+P1 := ((605,230)
+-- (605,571)
+-- (310,741)
+-- (15,571)
+-- (15,230)
+-- (310,60)
+-- cycle) ;
+P2 := ((585,238)
+-- (310,82)
+-- (35,238)
+-- (35,562)
+-- (310,719)
+-- (585,562)
+-- cycle) ;
+P3 := ((365,400)
+.. controls (365,432) and (341,456)
+.. (310,456)
+.. controls (279,456) and (255,432)
+.. (255,400)
+.. controls (255,370) and (279,346)
+.. (310,346)
+.. controls (341,346) and (365,370)
+.. (365,400)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (40,232*FS#,669*FS#,0*FS#);
+"parenleft";
+P1 := ((202,47)
+-- (184,47)
+-- (150,105)
+-- (150,419)
+-- (167,464)
+-- (135,464)
+-- (135,596)
+.. controls (135,626) and (126,651)
+.. (116,669)
+.. controls (106,651) and (97,626)
+.. (97,596)
+-- (97,464)
+-- (65,464)
+-- (82,419)
+-- (82,105)
+-- (48,47)
+-- (30,47)
+-- (30,23)
+-- (40,23)
+-- (53,0)
+-- (179,0)
+-- (192,23)
+-- (202,23)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (41,224*FS#,720*FS#,0*FS#);
+"parenright";
+P1 := ((142,545)
+.. controls (142,559) and (130,565)
+.. (127,565)
+-- (127,658)
+.. controls (127,679) and (120,699)
+.. (112,720)
+.. controls (104,699) and (97,679)
+.. (97,658)
+-- (97,565)
+.. controls (94,565) and (82,559)
+.. (82,545)
+-- (82,389)
+.. controls (79,389) and (67,383)
+.. (67,369)
+-- (67,68)
+.. controls (67,52) and (48,38)
+.. (30,34)
+-- (46,0)
+-- (89,0)
+-- (112,27)
+-- (135,0)
+-- (178,0)
+-- (194,34)
+.. controls (176,38) and (157,52)
+.. (157,68)
+-- (157,369)
+.. controls (157,383) and (145,389)
+.. (142,389)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (42,1538*FS#,1037*FS#,237*FS#);
+"asterisk";
+P1 := ((1538,327)
+-- (862,580)
+-- (989,1035)
+-- (987,1037)
+-- (585,616)
+-- (440,791)
+-- (454,552)
+-- (0,468)
+-- (317,287)
+-- (188,58)
+-- (416,58)
+-- (463,-237)
+-- (661,65)
+-- (918,-110)
+-- (920,-108)
+-- (788,150)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (43,600*FS#,625*FS#,0*FS#);
+"plus";
+P1 := ((485,175)
+.. controls (521,175) and (550,204)
+.. (550,240)
+.. controls (550,275) and (521,305)
+.. (485,305)
+.. controls (450,305) and (420,275)
+.. (420,240)
+.. controls (420,204) and (450,175)
+.. (485,175)
+-- cycle) ;
+P2 := ((115,175)
+.. controls (151,175) and (180,204)
+.. (180,240)
+.. controls (180,275) and (151,305)
+.. (115,305)
+.. controls (80,305) and (50,275)
+.. (50,240)
+.. controls (50,204) and (80,175)
+.. (115,175)
+-- cycle) ;
+P3 := ((300,495)
+.. controls (336,495) and (365,524)
+.. (365,560)
+.. controls (365,595) and (336,625)
+.. (300,625)
+.. controls (265,625) and (235,595)
+.. (235,560)
+.. controls (235,524) and (265,495)
+.. (300,495)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (44,1056*FS#,684*FS#,0*FS#);
+"comma";
+P1 := ((942,613)
+.. controls (927,631) and (902,650)
+.. (872,655)
+-- (718,683)
+.. controls (701,686) and (683,676)
+.. (662,667)
+-- (210,473)
+.. controls (170,456) and (159,454)
+.. (136,423)
+-- (37,288)
+.. controls (28,276) and (24,251)
+.. (44,243)
+-- (330,123)
+.. controls (367,108) and (410,115)
+.. (444,135)
+-- (1004,471)
+.. controls (1023,482) and (1034,502)
+.. (1020,519)
+-- cycle) ;
+P2 := ((224,421)
+.. controls (204,428) and (212,442)
+.. (238,453)
+-- (679,642)
+.. controls (698,650) and (709,656)
+.. (728,653)
+-- (826,635)
+.. controls (849,631) and (839,622)
+.. (825,614)
+-- (401,382)
+.. controls (387,374) and (373,368)
+.. (354,375)
+-- cycle) ;
+P3 := ((350,341)
+.. controls (366,335) and (378,325)
+.. (378,293)
+-- (378,187)
+.. controls (378,169) and (364,149)
+.. (330,163)
+-- (92,263)
+.. controls (67,273) and (74,288)
+.. (88,307)
+-- (148,389)
+.. controls (162,408) and (174,403)
+.. (195,396)
+-- cycle) ;
+P4 := ((871,597)
+.. controls (888,607) and (902,601)
+.. (912,589)
+-- (968,521)
+.. controls (985,501) and (972,490)
+.. (950,477)
+-- (454,179)
+.. controls (418,157) and (408,165)
+.. (408,201)
+-- (408,311)
+.. controls (408,335) and (416,348)
+.. (430,356)
+-- cycle) ;
+drawthem 4;
+endchar;
+
+beginchar (45,666*FS#,807*FS#,0*FS#);
+"hyphen";
+P1 := ((323,587)
+-- (343,587)
+-- (343,807)
+-- (323,807)
+-- cycle) ;
+P2 := ((409,572)
+-- (423,558)
+-- (579,713)
+-- (565,728)
+-- cycle) ;
+P3 := ((446,524)
+-- (446,504)
+-- (666,504)
+-- (666,524)
+-- cycle) ;
+P4 := ((243,558)
+-- (257,572)
+-- (102,728)
+-- (87,714)
+-- cycle) ;
+P5 := ((220,504)
+-- (220,524)
+-- (0,524)
+-- (0,504)
+-- cycle) ;
+P6 := ((473,0)
+-- (398,500)
+.. controls (394,524) and (378,540)
+.. (353,540)
+-- (313,540)
+.. controls (288,540) and (271,524)
+.. (267,500)
+-- (193,0)
+-- cycle) ;
+drawthem 6;
+endchar;
+
+beginchar (46,702*FS#,678*FS#,0*FS#);
+"period";
+P1 := ((372,370)
+-- (589,586)
+-- (608,567)
+.. controls (632,542) and (654,508)
+.. (662,472)
+-- (695,505)
+.. controls (683,540) and (652,585)
+.. (613,624)
+.. controls (553,684) and (444,699)
+.. (395,641)
+.. controls (462,658) and (521,654)
+.. (550,625)
+-- (567,607)
+-- (351,391)
+-- (135,607)
+-- (152,625)
+.. controls (181,654) and (240,658)
+.. (307,641)
+.. controls (258,699) and (149,684)
+.. (89,624)
+.. controls (50,585) and (19,540)
+.. (7,505)
+-- (40,472)
+.. controls (48,508) and (70,542)
+.. (94,567)
+-- (113,586)
+-- (330,370)
+-- (66,106)
+-- (87,84)
+-- (351,349)
+-- (615,84)
+-- (637,105)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (47,620*FS#,650*FS#,0*FS#);
+"slash";
+P1 := ((60,400)
+.. controls (60,260) and (170,150)
+.. (310,150)
+.. controls (450,150) and (560,260)
+.. (560,400)
+.. controls (560,540) and (450,650)
+.. (310,650)
+.. controls (170,650) and (60,540)
+.. (60,400)
+-- cycle) ;
+P2 := ((312,170)
+.. controls (181,170) and (80,271)
+.. (80,402)
+-- (308,402)
+-- (308,630)
+.. controls (439,630) and (540,529)
+.. (540,398)
+-- (312,398)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (48,300*FS#,404*FS#,4*FS#);
+"zero";
+P1 := ((150,-4)
+.. controls (230,-5) and (291,59)
+.. (291,199)
+.. controls (291,339) and (230,404)
+.. (150,404)
+.. controls (70,404) and (9,339)
+.. (9,199)
+.. controls (9,59) and (70,-3)
+.. (150,-4)
+-- cycle) ;
+P2 := ((150,58)
+.. controls (98,58) and (71,115)
+.. (71,199)
+.. controls (71,284) and (98,342)
+.. (150,342)
+.. controls (202,342) and (229,284)
+.. (229,199)
+.. controls (229,115) and (202,58)
+.. (150,58)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (49,300*FS#,400*FS#,0*FS#);
+"one";
+P1 := ((99,320)
+-- (139,320)
+-- (139,0)
+-- (201,0)
+-- (201,400)
+-- (146,400)
+.. controls (136,384) and (116,373)
+.. (99,370)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (50,300*FS#,404*FS#,0*FS#);
+"two";
+P1 := ((284,0)
+-- (284,62)
+-- (90,62)
+.. controls (94,95) and (118,123)
+.. (145,142)
+.. controls (197,179) and (286,203)
+.. (288,292)
+.. controls (289,347) and (243,404)
+.. (151,404)
+.. controls (79,404) and (28,353)
+.. (16,299)
+-- (75,285)
+.. controls (88,324) and (106,342)
+.. (152,342)
+.. controls (192,342) and (226,322)
+.. (226,289)
+.. controls (226,245) and (128,207)
+.. (82,169)
+.. controls (38,133) and (13,75)
+.. (13,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (51,300*FS#,404*FS#,4*FS#);
+"three";
+P1 := ((153,186)
+.. controls (204,188) and (225,160)
+.. (225,132)
+.. controls (225,99) and (194,58)
+.. (150,58)
+.. controls (94,58) and (80,95)
+.. (74,115)
+-- (13,99)
+.. controls (33,34) and (79,-2)
+.. (146,-4)
+.. controls (217,-5) and (287,58)
+.. (287,134)
+.. controls (287,174) and (266,207)
+.. (251,217)
+.. controls (266,243) and (273,262)
+.. (273,297)
+.. controls (273,332) and (248,404)
+.. (148,404)
+.. controls (82,404) and (47,353)
+.. (31,327)
+-- (91,302)
+.. controls (104,326) and (117,342)
+.. (151,342)
+.. controls (180,342) and (211,319)
+.. (211,291)
+.. controls (211,265) and (197,248)
+.. (181,248)
+-- (153,248)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (52,300*FS#,400*FS#,0*FS#);
+"four";
+P1 := ((203,400)
+-- (0,137)
+-- (0,101)
+-- (200,101)
+-- (200,0)
+-- (262,0)
+-- (262,101)
+-- (299,101)
+-- (299,156)
+-- (262,156)
+-- (262,400)
+-- cycle) ;
+P2 := ((200,300)
+-- (200,156)
+-- (89,156)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (53,300*FS#,400*FS#,4*FS#);
+"five";
+P1 := ((28,198)
+-- (85,180)
+.. controls (98,206) and (120,217)
+.. (148,217)
+.. controls (186,217) and (225,194)
+.. (225,148)
+.. controls (225,69) and (150,58)
+.. (111,58)
+.. controls (83,58) and (64,65)
+.. (44,76)
+-- (13,18)
+.. controls (34,9) and (69,-5)
+.. (117,-4)
+.. controls (209,-1) and (287,62)
+.. (287,148)
+.. controls (287,230) and (213,279)
+.. (145,279)
+.. controls (122,279) and (110,278)
+.. (94,270)
+-- (97,338)
+-- (264,338)
+-- (264,400)
+-- (37,400)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (54,300*FS#,404*FS#,4*FS#);
+"six";
+P1 := ((171,404)
+.. controls (65,325) and (11,211)
+.. (11,126)
+.. controls (11,32) and (88,-4)
+.. (150,-4)
+.. controls (212,-4) and (289,42)
+.. (289,118)
+.. controls (289,196) and (229,241)
+.. (157,241)
+.. controls (137,241) and (120,240)
+.. (104,235)
+.. controls (138,302) and (186,347)
+.. (205,356)
+-- cycle) ;
+P2 := ((150,58)
+.. controls (96,59) and (73,89)
+.. (73,119)
+.. controls (73,148) and (96,179)
+.. (150,179)
+.. controls (204,179) and (227,148)
+.. (227,119)
+.. controls (227,89) and (204,57)
+.. (150,58)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (55,300*FS#,400*FS#,0*FS#);
+"seven";
+P1 := ((163,0)
+.. controls (169,160) and (228,282)
+.. (286,333)
+-- (286,400)
+-- (14,400)
+-- (14,338)
+-- (207,338)
+.. controls (136,243) and (99,123)
+.. (101,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (56,300*FS#,404*FS#,4*FS#);
+"eight";
+P1 := ((150,-4)
+.. controls (230,-3) and (284,50)
+.. (284,126)
+.. controls (284,181) and (258,203)
+.. (238,219)
+.. controls (247,233) and (270,251)
+.. (270,292)
+.. controls (270,349) and (226,404)
+.. (150,404)
+.. controls (74,404) and (30,345)
+.. (30,288)
+.. controls (30,247) and (53,229)
+.. (62,215)
+.. controls (42,199) and (16,177)
+.. (16,122)
+.. controls (16,50) and (70,-5)
+.. (150,-4)
+-- cycle) ;
+P2 := ((150,245)
+.. controls (111,245) and (92,271)
+.. (92,293)
+.. controls (92,316) and (111,342)
+.. (150,342)
+.. controls (189,342) and (208,316)
+.. (208,293)
+.. controls (208,271) and (189,245)
+.. (150,245)
+-- cycle) ;
+P3 := ((150,186)
+.. controls (201,186) and (222,156)
+.. (222,121)
+.. controls (222,88) and (201,58)
+.. (150,58)
+.. controls (99,58) and (78,88)
+.. (78,121)
+.. controls (78,156) and (99,186)
+.. (150,186)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (57,300*FS#,402*FS#,4*FS#);
+"nine";
+P1 := ((120,-4)
+.. controls (228,71) and (286,183)
+.. (289,268)
+.. controls (292,361) and (217,400)
+.. (155,402)
+.. controls (93,404) and (14,361)
+.. (11,286)
+.. controls (9,208) and (67,160)
+.. (140,158)
+.. controls (160,157) and (176,158)
+.. (192,163)
+.. controls (156,96) and (106,54)
+.. (88,46)
+-- cycle) ;
+P2 := ((150,342)
+.. controls (204,342) and (227,311)
+.. (227,281)
+.. controls (227,251) and (204,219)
+.. (150,220)
+.. controls (96,221) and (73,251)
+.. (73,281)
+.. controls (73,311) and (96,342)
+.. (150,342)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (58,620*FS#,650*FS#,0*FS#);
+"colon";
+P1 := ((560,150)
+-- (560,650)
+-- (60,650)
+-- (60,150)
+-- cycle) ;
+P2 := ((80,170)
+-- (80,630)
+-- (540,630)
+-- (540,170)
+-- cycle) ;
+P3 := ((255,400)
+.. controls (255,369) and (279,345)
+.. (310,345)
+.. controls (341,345) and (365,369)
+.. (365,400)
+.. controls (365,431) and (341,455)
+.. (310,455)
+.. controls (279,455) and (255,431)
+.. (255,400)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (59,620*FS#,650*FS#,0*FS#);
+"semicolon";
+P1 := ((60,400)
+.. controls (60,260) and (170,150)
+.. (310,150)
+.. controls (450,150) and (560,260)
+.. (560,400)
+.. controls (560,540) and (450,650)
+.. (310,650)
+.. controls (170,650) and (60,540)
+.. (60,400)
+-- cycle) ;
+P2 := ((80,400)
+.. controls (80,529) and (181,630)
+.. (310,630)
+.. controls (439,630) and (540,529)
+.. (540,400)
+.. controls (540,271) and (439,170)
+.. (310,170)
+.. controls (181,170) and (80,271)
+.. (80,400)
+-- cycle) ;
+P3 := ((255,400)
+.. controls (255,369) and (279,345)
+.. (310,345)
+.. controls (341,345) and (365,369)
+.. (365,400)
+.. controls (365,431) and (341,455)
+.. (310,455)
+.. controls (279,455) and (255,431)
+.. (255,400)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (60,700*FS#,643*FS#,0*FS#);
+"less";
+P1 := ((468,157)
+-- (568,208)
+-- (670,402)
+-- (546,643)
+-- (209,643)
+-- (112,593)
+-- (30,384)
+-- (130,157)
+-- cycle) ;
+P2 := ((145,177)
+-- (52,387)
+-- (129,583)
+-- (467,583)
+-- (568,384)
+-- (462,177)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (61,614*FS#,750*FS#,0*FS#);
+"equal";
+P1 := ((140,640)
+-- (30,640)
+-- (30,610)
+-- (140,610)
+-- (140,0)
+-- (170,0)
+-- (170,610)
+-- (264,610)
+-- (264,389)
+-- (486,389)
+-- (486,610)
+-- (584,610)
+-- (584,640)
+-- (170,640)
+-- (170,750)
+-- (140,750)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (62,632*FS#,687*FS#,0*FS#);
+"greater";
+P1 := ((153,260)
+.. controls (129,285) and (86,277)
+.. (58,249)
+.. controls (30,221) and (30,171)
+.. (58,143)
+.. controls (86,115) and (136,115)
+.. (164,143)
+.. controls (192,171) and (199,214)
+.. (175,239)
+-- (316,380)
+-- (463,231)
+.. controls (439,207) and (446,164)
+.. (473,136)
+.. controls (502,108) and (551,108)
+.. (579,136)
+.. controls (608,164) and (608,214)
+.. (579,242)
+.. controls (551,270) and (509,277)
+.. (484,253)
+-- (337,401)
+-- (602,666)
+-- (580,687)
+-- (316,422)
+-- (52,687)
+-- (30,666)
+-- (295,401)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (63,568*FS#,654*FS#,0*FS#);
+"question";
+P1 := ((538,146)
+-- (538,654)
+-- (30,654)
+-- (30,146)
+-- cycle) ;
+P2 := ((518,634)
+-- (518,166)
+-- (50,166)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (64,560*FS#,600*FS#,0*FS#);
+"at";
+P1 := ((480,200)
+-- (480,600)
+-- (80,600)
+-- (80,200)
+-- cycle) ;
+P2 := ((100,220)
+-- (100,580)
+-- (460,580)
+-- (460,220)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (65,653*FS#,701*FS#,0*FS#);
+"A";
+P1 := ((342,372)
+-- (463,303)
+-- (469,194)
+-- (498,192)
+-- (493,286)
+-- (579,236)
+-- (593,261)
+-- (506,311)
+-- (590,354)
+-- (573,376)
+-- (477,328)
+-- (357,401)
+-- (477,472)
+-- (573,423)
+-- (590,446)
+-- (506,489)
+-- (593,539)
+-- (579,564)
+-- (493,514)
+-- (498,608)
+-- (469,605)
+-- (463,497)
+-- (342,428)
+-- (342,567)
+-- (432,626)
+-- (420,652)
+-- (342,601)
+-- (342,701)
+-- (312,701)
+-- (312,601)
+-- (234,652)
+-- (223,626)
+-- (312,567)
+-- (312,428)
+-- (192,497)
+-- (186,605)
+-- (156,608)
+-- (161,514)
+-- (75,564)
+-- (60,539)
+-- (148,489)
+-- (63,446)
+-- (81,423)
+-- (176,472)
+-- (297,401)
+-- (176,328)
+-- (81,376)
+-- (63,354)
+-- (148,311)
+-- (60,261)
+-- (75,236)
+-- (161,286)
+-- (156,192)
+-- (186,194)
+-- (192,303)
+-- (312,372)
+-- (312,233)
+-- (223,174)
+-- (234,148)
+-- (312,199)
+-- (312,99)
+-- (342,99)
+-- (342,199)
+-- (420,148)
+-- (432,174)
+-- (342,233)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (66,520*FS#,750*FS#,0*FS#);
+"B";
+P1 := ((230,750)
+-- (230,629)
+-- (126,629)
+-- (126,574)
+-- (230,574)
+-- (230,320)
+.. controls (155,305) and (100,240)
+.. (100,160)
+.. controls (100,71) and (171,0)
+.. (260,0)
+.. controls (351,0) and (420,71)
+.. (420,160)
+.. controls (420,240) and (367,305)
+.. (290,320)
+-- (290,574)
+-- (396,574)
+-- (396,629)
+-- (290,629)
+-- (290,750)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (67,890*FS#,700*FS#,0*FS#);
+"C";
+P1 := ((150,50)
+-- (30,50)
+-- (30,0)
+-- (860,0)
+-- (860,50)
+-- (740,50)
+-- (740,608)
+-- (670,608)
+-- (670,420)
+-- (630,420)
+-- (630,524)
+-- (580,614)
+-- (530,524)
+-- (530,265)
+-- (490,265)
+-- (490,700)
+-- (360,700)
+-- (360,360)
+-- (290,360)
+-- (290,200)
+-- (250,200)
+-- (250,490)
+-- (150,490)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (68,760*FS#,553*FS#,0*FS#);
+"D";
+P1 := ((380,553)
+-- (122,40)
+-- (30,40)
+-- (30,0)
+-- (730,0)
+-- (730,40)
+-- (638,40)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (69,694*FS#,697*FS#,0*FS#);
+"E";
+P1 := ((347,697)
+-- (260,471)
+-- (30,471)
+-- (206,329)
+-- (141,102)
+-- (347,236)
+-- (553,102)
+-- (478,329)
+-- (664,471)
+-- (435,471)
+-- cycle) ;
+P2 := ((416,451)
+-- (595,451)
+-- (450,340)
+-- (510,157)
+-- (347,267)
+-- (184,157)
+-- (237,340)
+-- (99,451)
+-- (279,451)
+-- (347,634)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (70,689*FS#,585*FS#,9*FS#);
+"F";
+P1 := ((109,538)
+.. controls (109,511) and (130,491)
+.. (157,491)
+.. controls (183,491) and (204,511)
+.. (204,538)
+.. controls (204,564) and (183,585)
+.. (157,585)
+.. controls (130,585) and (109,564)
+.. (109,538)
+-- cycle) ;
+P2 := ((416,491)
+.. controls (416,466) and (436,447)
+.. (460,447)
+.. controls (485,447) and (504,466)
+.. (504,491)
+.. controls (504,515) and (485,535)
+.. (460,535)
+.. controls (436,535) and (416,515)
+.. (416,491)
+-- cycle) ;
+P3 := ((284,511)
+.. controls (278,525) and (272,526)
+.. (260,519)
+-- (250,514)
+.. controls (237,507) and (236,503)
+.. (243,489)
+-- (301,379)
+.. controls (307,366) and (313,365)
+.. (326,372)
+-- (335,376)
+.. controls (348,384) and (350,388)
+.. (343,401)
+-- cycle) ;
+P4 := ((580,463)
+.. controls (575,474) and (570,475)
+.. (559,470)
+-- (551,465)
+.. controls (540,460) and (538,455)
+.. (544,444)
+-- (595,349)
+.. controls (600,338) and (604,337)
+.. (615,343)
+-- (624,348)
+.. controls (635,353) and (636,357)
+.. (631,368)
+-- cycle) ;
+P5 := ((350,-7)
+-- (382,16)
+-- (292,261)
+.. controls (315,284) and (315,321)
+.. (302,351)
+-- (239,469)
+.. controls (225,495) and (205,493)
+.. (189,488)
+.. controls (159,481) and (146,452)
+.. (144,436)
+-- (136,363)
+-- (30,294)
+-- (36,273)
+-- (53,279)
+-- (150,124)
+-- (125,7)
+-- (173,-9)
+-- (189,62)
+-- (226,0)
+-- (254,0)
+-- (195,95)
+-- (204,140)
+-- (245,206)
+-- cycle) ;
+P6 := ((519,0)
+-- (546,0)
+-- (494,91)
+-- (509,148)
+-- (538,181)
+-- (630,-4)
+-- (659,19)
+-- (585,245)
+.. controls (604,264) and (612,289)
+.. (593,324)
+-- (540,426)
+.. controls (527,449) and (507,450)
+.. (494,443)
+.. controls (471,431) and (452,422)
+.. (448,399)
+-- (442,349)
+-- (340,271)
+-- (350,252)
+-- (368,261)
+-- (452,117)
+-- (425,11)
+-- (469,-4)
+-- (486,57)
+-- cycle) ;
+P7 := ((207,290)
+.. controls (188,269) and (170,222)
+.. (157,157)
+-- (75,287)
+-- (164,320)
+-- (175,355)
+-- cycle) ;
+P8 := ((509,271)
+-- (470,194)
+-- (459,152)
+-- (390,273)
+-- (458,310)
+-- (477,349)
+-- cycle) ;
+drawthem 8;
+endchar;
+
+beginchar (71,550*FS#,358*FS#,0*FS#);
+"G";
+P1 := ((500,0)
+-- (500,30)
+-- (428,30)
+-- (428,226)
+-- (500,207)
+-- (500,237)
+-- (50,358)
+-- (50,328)
+-- (122,309)
+-- (122,30)
+-- (50,30)
+-- (50,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (72,1026*FS#,524*FS#,0*FS#);
+"H";
+P1 := ((150,309)
+.. controls (146,310) and (141,307)
+.. (140,303)
+-- (138,292)
+.. controls (137,287) and (140,283)
+.. (144,282)
+-- (412,225)
+.. controls (416,224) and (421,227)
+.. (422,231)
+-- (424,243)
+.. controls (425,247) and (421,252)
+.. (418,253)
+-- cycle) ;
+P2 := ((641,206)
+.. controls (637,207) and (632,204)
+.. (631,200)
+-- (629,189)
+.. controls (628,184) and (631,180)
+.. (635,179)
+-- (903,122)
+.. controls (907,121) and (912,124)
+.. (913,128)
+-- (915,140)
+.. controls (916,144) and (912,149)
+.. (909,150)
+-- cycle) ;
+P3 := ((523,292)
+.. controls (479,292) and (450,263)
+.. (450,219)
+.. controls (450,175) and (479,146)
+.. (523,146)
+.. controls (567,146) and (596,175)
+.. (596,219)
+.. controls (596,263) and (567,292)
+.. (523,292)
+-- cycle) ;
+P4 := ((996,24)
+.. controls (996,30) and (990,35)
+.. (984,36)
+-- (71,227)
+.. controls (40,233) and (30,224)
+.. (30,206)
+-- (30,0)
+-- (460,0)
+.. controls (482,0) and (507,14)
+.. (520,35)
+.. controls (533,14) and (558,0)
+.. (580,0)
+.. controls (602,0) and (627,14)
+.. (640,35)
+.. controls (653,14) and (678,0)
+.. (700,0)
+.. controls (722,0) and (747,14)
+.. (760,35)
+.. controls (773,14) and (798,0)
+.. (820,0)
+.. controls (842,0) and (867,14)
+.. (880,35)
+.. controls (893,14) and (918,0)
+.. (940,0)
+-- (996,0)
+-- cycle) ;
+P5 := ((427,504)
+-- (427,524)
+-- (414,524)
+-- (326,445)
+-- (120,488)
+-- (114,456)
+.. controls (103,397) and (187,337)
+.. (245,325)
+-- (442,284)
+.. controls (462,280) and (484,320)
+.. (544,307)
+.. controls (602,294) and (607,251)
+.. (626,246)
+-- (892,190)
+.. controls (912,186) and (925,199)
+.. (928,217)
+-- (940,289)
+.. controls (943,305) and (933,317)
+.. (915,321)
+-- (354,439)
+-- cycle) ;
+P6 := ((523,269)
+.. controls (553,269) and (573,249)
+.. (573,219)
+.. controls (573,189) and (553,169)
+.. (523,169)
+.. controls (493,169) and (473,189)
+.. (473,219)
+.. controls (473,249) and (493,269)
+.. (523,269)
+-- cycle) ;
+drawthem 6;
+endchar;
+
+beginchar (73,946*FS#,857*FS#,58*FS#);
+"I";
+P1 := ((702,-58)
+.. controls (736,-58) and (742,-50)
+.. (753,-18)
+-- (931,539)
+.. controls (939,563) and (946,593)
+.. (946,619)
+.. controls (946,659) and (909,700)
+.. (867,718)
+-- (581,837)
+.. controls (553,849) and (513,857)
+.. (473,857)
+.. controls (433,857) and (393,849)
+.. (366,837)
+-- (79,718)
+.. controls (38,700) and (0,659)
+.. (0,619)
+.. controls (0,593) and (7,563)
+.. (15,539)
+-- (193,-18)
+.. controls (205,-50) and (210,-58)
+.. (245,-58)
+-- cycle) ;
+P2 := ((260,-28)
+.. controls (227,-28) and (223,-21)
+.. (216,0)
+-- (45,530)
+.. controls (38,552) and (30,580)
+.. (30,605)
+.. controls (30,642) and (67,680)
+.. (105,697)
+-- (373,808)
+.. controls (398,820) and (436,827)
+.. (473,827)
+.. controls (510,827) and (548,820)
+.. (574,808)
+-- (841,697)
+.. controls (880,680) and (916,642)
+.. (916,605)
+.. controls (916,580) and (908,552)
+.. (901,530)
+-- (731,0)
+.. controls (724,-21) and (719,-28)
+.. (687,-28)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (74,732*FS#,697*FS#,0*FS#);
+"J";
+P1 := ((365,104)
+-- (367,104)
+-- (377,214)
+-- (391,190)
+-- (487,197)
+-- (487,243)
+.. controls (487,251) and (484,259)
+.. (479,260)
+-- (381,269)
+-- (400,453)
+-- (550,453)
+-- (702,484)
+-- (702,531)
+.. controls (702,540) and (697,543)
+.. (689,544)
+-- (546,556)
+-- (405,556)
+.. controls (402,612) and (400,650)
+.. (398,655)
+.. controls (394,660) and (384,662)
+.. (379,662)
+.. controls (374,677) and (372,697)
+.. (366,697)
+.. controls (360,697) and (358,677)
+.. (353,662)
+.. controls (348,662) and (338,660)
+.. (335,655)
+.. controls (332,650) and (330,612)
+.. (327,556)
+-- (186,556)
+-- (43,544)
+.. controls (35,543) and (30,540)
+.. (30,531)
+-- (30,484)
+-- (182,453)
+-- (332,453)
+-- (351,269)
+-- (253,260)
+.. controls (248,259) and (245,251)
+.. (245,243)
+-- (245,197)
+-- (341,190)
+-- (355,214)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (75,357*FS#,600*FS#,0*FS#);
+"K";
+P1 := ((221,600)
+-- (50,600)
+-- (136,300)
+-- (50,0)
+-- (221,0)
+-- (307,300)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (76,1020*FS#,810*FS#,10*FS#);
+"L";
+P1 := ((60,810)
+.. controls (30,810) and (0,780)
+.. (0,750)
+-- (0,50)
+.. controls (0,20) and (30,-8)
+.. (60,-10)
+-- (960,-10)
+.. controls (990,-10) and (1020,20)
+.. (1020,50)
+-- (1020,750)
+.. controls (1020,780) and (990,810)
+.. (960,810)
+-- cycle) ;
+P2 := ((941,780)
+.. controls (969,780) and (990,760)
+.. (990,732)
+-- (990,68)
+.. controls (990,40) and (969,20)
+.. (941,20)
+-- (78,20)
+.. controls (50,22) and (30,40)
+.. (30,68)
+-- (30,732)
+.. controls (30,760) and (50,780)
+.. (78,780)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (77,586*FS#,890*FS#,52*FS#);
+"M";
+P1 := ((30,-52)
+-- (61,-52)
+-- (278,311)
+-- (278,206)
+.. controls (264,206) and (256,194)
+.. (256,174)
+-- (256,-52)
+-- (330,-52)
+-- (330,174)
+.. controls (330,191) and (322,206)
+.. (308,206)
+-- (308,311)
+-- (525,-52)
+-- (556,-52)
+-- (402,850)
+-- (308,850)
+-- (308,890)
+-- (278,890)
+-- (278,850)
+-- (184,850)
+-- cycle) ;
+P2 := ((478,317)
+-- (538,-32)
+-- (533,-32)
+-- (324,317)
+-- cycle) ;
+P3 := ((308,337)
+-- (308,632)
+-- (311,632)
+-- (466,337)
+-- cycle) ;
+P4 := ((120,337)
+-- (275,632)
+-- (278,632)
+-- (278,337)
+-- cycle) ;
+P5 := ((424,632)
+-- (468,374)
+-- (466,374)
+-- (330,632)
+-- cycle) ;
+P6 := ((256,632)
+-- (120,374)
+-- (118,374)
+-- (162,632)
+-- cycle) ;
+P7 := ((308,652)
+-- (308,830)
+-- (312,830)
+-- (402,652)
+-- cycle) ;
+P8 := ((184,652)
+-- (274,830)
+-- (278,830)
+-- (278,652)
+-- cycle) ;
+P9 := ((390,830)
+-- (418,668)
+-- (413,668)
+-- (330,830)
+-- cycle) ;
+P10 := ((256,830)
+-- (173,668)
+-- (168,668)
+-- (196,830)
+-- cycle) ;
+P11 := ((261,317)
+-- (53,-32)
+-- (48,-32)
+-- (108,317)
+-- cycle) ;
+drawthem 11;
+endchar;
+
+beginchar (78,642*FS#,554*FS#,0*FS#);
+"N";
+P1 := ((459,511)
+.. controls (414,539) and (367,554)
+.. (317,554)
+.. controls (267,554) and (220,539)
+.. (175,511)
+-- (276,337)
+.. controls (292,345) and (302,351)
+.. (317,351)
+.. controls (332,351) and (350,345)
+.. (366,337)
+-- cycle) ;
+P2 := ((414,251)
+.. controls (413,233) and (410,214)
+.. (403,201)
+.. controls (396,187) and (386,181)
+.. (371,171)
+-- (478,0)
+.. controls (524,27) and (559,61)
+.. (582,105)
+.. controls (606,150) and (615,198)
+.. (611,251)
+-- cycle) ;
+P3 := ((31,251)
+.. controls (27,198) and (36,150)
+.. (60,105)
+.. controls (83,61) and (118,27)
+.. (164,0)
+-- (271,171)
+.. controls (256,181) and (246,187)
+.. (239,201)
+.. controls (232,214) and (229,233)
+.. (228,251)
+-- cycle) ;
+P4 := ((273,254)
+.. controls (273,227) and (294,206)
+.. (321,206)
+.. controls (348,206) and (369,227)
+.. (369,254)
+.. controls (369,281) and (348,302)
+.. (321,302)
+.. controls (294,302) and (273,281)
+.. (273,254)
+-- cycle) ;
+drawthem 4;
+endchar;
+
+beginchar (79,1442*FS#,799*FS#,0*FS#);
+"O";
+P1 := ((0,411)
+.. controls (0,194) and (311,22)
+.. (721,22)
+.. controls (1125,22) and (1442,194)
+.. (1442,411)
+.. controls (1442,628) and (1125,799)
+.. (721,799)
+.. controls (318,799) and (0,628)
+.. (0,411)
+-- cycle) ;
+P2 := ((30,411)
+.. controls (30,611) and (335,769)
+.. (721,769)
+.. controls (1108,769) and (1412,611)
+.. (1412,411)
+.. controls (1412,211) and (1108,52)
+.. (721,52)
+.. controls (328,52) and (30,211)
+.. (30,411)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (80,1154*FS#,899*FS#,100*FS#);
+"P";
+P1 := ((52,899)
+.. controls (0,899) and (-13,876)
+.. (12,830)
+-- (537,-66)
+.. controls (563,-111) and (591,-111)
+.. (617,-66)
+-- (1142,830)
+.. controls (1167,876) and (1154,899)
+.. (1102,899)
+-- cycle) ;
+P2 := ((1065,869)
+.. controls (1116,869) and (1125,858)
+.. (1102,819)
+-- (606,-28)
+.. controls (584,-66) and (570,-66)
+.. (548,-28)
+-- (52,819)
+.. controls (29,858) and (38,869)
+.. (89,869)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (81,676*FS#,750*FS#,0*FS#);
+"Q";
+P1 := ((95,80)
+-- (149,80)
+-- (149,452)
+-- (95,452)
+-- cycle) ;
+P2 := ((203,80)
+-- (257,80)
+-- (257,452)
+-- (203,452)
+-- cycle) ;
+P3 := ((311,80)
+-- (365,80)
+-- (365,452)
+-- (311,452)
+-- cycle) ;
+P4 := ((419,80)
+-- (473,80)
+-- (473,452)
+-- (419,452)
+-- cycle) ;
+P5 := ((527,80)
+-- (581,80)
+-- (581,452)
+-- (527,452)
+-- cycle) ;
+P6 := ((338,750)
+-- (30,482)
+-- (646,482)
+-- cycle) ;
+P7 := ((626,0)
+-- (626,50)
+-- (50,50)
+-- (50,0)
+-- cycle) ;
+drawthem 7;
+endchar;
+
+beginchar (82,695*FS#,717*FS#,0*FS#);
+"R";
+P1 := ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) ;
+P3 := reverse ((410,491)
+-- (620,491)
+-- (450,364)
+-- (516,164)
+-- (348,288)
+-- (179,164)
+-- (246,364)
+-- (76,491)
+-- (285,491)
+-- (348,687)
+-- cycle) ;
+P2 := ((60,400)
+.. controls (60,561) and (187,687)
+.. (348,687)
+.. controls (508,687) and (635,561)
+.. (635,400)
+.. controls (635,239) and (508,113)
+.. (348,113)
+.. controls (187,113) and (60,239)
+.. (60,400)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (83,963*FS#,713*FS#,0*FS#);
+"S";
+P1 := ((677,505)
+.. controls (673,538) and (762,498)
+.. (819,500)
+.. controls (871,504) and (876,544)
+.. (933,557)
+-- (933,560)
+.. controls (832,569) and (706,704)
+.. (567,704)
+.. controls (507,704) and (410,633)
+.. (341,633)
+.. controls (278,633) and (226,713)
+.. (187,713)
+.. controls (122,713) and (108,617)
+.. (38,628)
+.. controls (27,629) and (27,613)
+.. (38,612)
+.. controls (99,600) and (75,602)
+.. (125,600)
+.. controls (165,600) and (194,633)
+.. (215,633)
+.. controls (248,633) and (276,609)
+.. (302,583)
+.. controls (342,543) and (403,522)
+.. (403,494)
+-- (403,258)
+.. controls (403,204) and (380,140)
+.. (347,87)
+.. controls (410,117) and (524,187)
+.. (550,266)
+.. controls (567,316) and (642,448)
+.. (671,448)
+.. controls (761,448) and (722,431)
+.. (772,431)
+.. controls (788,431) and (803,429)
+.. (819,426)
+.. controls (811,436) and (796,440)
+.. (784,442)
+.. controls (781,455) and (779,465)
+.. (767,465)
+.. controls (745,465) and (712,460)
+.. (680,469)
+-- cycle) ;
+fill (P1 scaled FS);
+endchar;
+
+beginchar (84,695*FS#,717*FS#,0*FS#);
+"T";
+P1 := ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) ;
+P2 := ((60,400)
+.. controls (60,561) and (187,687)
+.. (348,687)
+.. controls (508,687) and (635,561)
+.. (635,400)
+.. controls (635,239) and (508,113)
+.. (348,113)
+.. controls (187,113) and (60,239)
+.. (60,400)
+-- cycle) ;
+P3 := ((531,400)
+.. controls (531,508) and (456,584)
+.. (348,584)
+.. controls (240,584) and (164,508)
+.. (164,400)
+.. controls (164,292) and (240,216)
+.. (348,216)
+.. controls (456,216) and (531,292)
+.. (531,400)
+-- cycle) ;
+P4 := ((501,400)
+.. controls (501,309) and (438,246)
+.. (348,246)
+.. controls (257,246) and (194,309)
+.. (194,400)
+.. controls (194,491) and (257,554)
+.. (348,554)
+.. controls (438,554) and (501,491)
+.. (501,400)
+-- cycle) ;
+drawthem 4;
+endchar;
+
+beginchar (85,1063*FS#,921*FS#,122*FS#);
+"U";
+P1 := ((30,748)
+.. controls (58,736) and (97,664)
+.. (97,608)
+.. controls (97,545) and (0,460)
+.. (0,299)
+.. controls (0,83) and (151,-88)
+.. (265,-88)
+.. controls (315,-88) and (344,-79)
+.. (367,-69)
+.. controls (391,-60) and (409,-50)
+.. (425,-50)
+.. controls (456,-50) and (499,-84)
+.. (531,-122)
+.. controls (563,-84) and (607,-50)
+.. (638,-50)
+.. controls (654,-50) and (672,-60)
+.. (696,-69)
+.. controls (719,-79) and (747,-88)
+.. (798,-88)
+.. controls (912,-88) and (1063,83)
+.. (1063,299)
+.. controls (1063,460) and (966,545)
+.. (966,608)
+.. controls (967,664) and (1006,736)
+.. (1034,748)
+-- (845,921)
+.. controls (793,862) and (741,824)
+.. (689,824)
+.. controls (637,824) and (555,862)
+.. (531,921)
+.. controls (509,862) and (427,824)
+.. (375,824)
+.. controls (323,824) and (271,862)
+.. (218,921)
+-- cycle) ;
+P2 := ((936,608)
+.. controls (951,511) and (1033,452)
+.. (1033,299)
+.. controls (1033,124) and (911,-58)
+.. (795,-58)
+.. controls (764,-58) and (733,-55)
+.. (710,-46)
+.. controls (687,-37) and (670,-20)
+.. (632,-20)
+.. controls (595,-17) and (562,-53)
+.. (531,-83)
+.. controls (500,-53) and (467,-17)
+.. (430,-20)
+.. controls (392,-20) and (375,-37)
+.. (352,-46)
+.. controls (329,-55) and (298,-58)
+.. (267,-58)
+.. controls (151,-58) and (29,124)
+.. (29,299)
+.. controls (29,452) and (111,511)
+.. (126,608)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (86,520*FS#,750*FS#,0*FS#);
+"V";
+P1 := ((420,0)
+-- (420,320)
+-- (275,320)
+-- (275,499)
+-- (420,625)
+-- (245,750)
+-- (245,320)
+-- (100,320)
+-- (100,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (87,968*FS#,848*FS#,48*FS#);
+"W";
+P1 := ((499,-48)
+-- (499,134)
+.. controls (499,158) and (512,180)
+.. (528,180)
+.. controls (554,180) and (659,145)
+.. (711,137)
+.. controls (704,158) and (700,186)
+.. (700,202)
+.. controls (700,226) and (856,332)
+.. (938,394)
+.. controls (896,396) and (846,396)
+.. (846,428)
+.. controls (846,472) and (872,520)
+.. (890,554)
+.. controls (824,530) and (778,518)
+.. (746,518)
+.. controls (730,518) and (734,583)
+.. (739,607)
+-- (737,609)
+.. controls (678,529) and (624,440)
+.. (596,440)
+.. controls (564,440) and (577,482)
+.. (584,513)
+.. controls (603,592) and (628,676)
+.. (645,750)
+.. controls (612,722) and (586,700)
+.. (566,700)
+.. controls (534,700) and (500,780)
+.. (485,848)
+-- (483,848)
+.. controls (468,780) and (434,700)
+.. (402,700)
+.. controls (382,700) and (356,722)
+.. (323,750)
+.. controls (340,676) and (365,592)
+.. (384,513)
+.. controls (391,482) and (404,440)
+.. (372,440)
+.. controls (344,440) and (290,529)
+.. (231,609)
+-- (229,607)
+.. controls (234,583) and (238,518)
+.. (222,518)
+.. controls (190,518) and (144,530)
+.. (78,554)
+.. controls (96,520) and (122,472)
+.. (122,428)
+.. controls (122,396) and (72,396)
+.. (30,394)
+.. controls (112,332) and (268,226)
+.. (268,202)
+.. controls (268,186) and (264,158)
+.. (257,137)
+.. controls (309,145) and (414,180)
+.. (440,180)
+.. controls (456,180) and (469,158)
+.. (469,134)
+-- (469,-48)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (88,698*FS#,700*FS#,0*FS#);
+"X";
+P1 := ((170,428)
+.. controls (114,412) and (30,358)
+.. (30,228)
+.. controls (30,105) and (128,0)
+.. (256,0)
+.. controls (372,0) and (450,62)
+.. (489,117)
+-- (469,175)
+.. controls (428,100) and (353,50)
+.. (258,50)
+.. controls (164,50) and (83,131)
+.. (83,227)
+.. controls (83,321) and (132,364)
+.. (172,378)
+-- cycle) ;
+P2 := ((260,440)
+-- (256,566)
+.. controls (282,566) and (318,593)
+.. (318,633)
+.. controls (318,680) and (284,700)
+.. (244,700)
+.. controls (200,700) and (175,666)
+.. (176,633)
+.. controls (177,612) and (192,604)
+.. (193,582)
+-- (203,290)
+-- (460,290)
+-- (538,66)
+-- (672,113)
+-- (655,163)
+-- (576,135)
+-- (505,340)
+-- (264,340)
+-- (262,390)
+-- (433,390)
+-- (431,440)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (89,700*FS#,800*FS#,0*FS#);
+"Y";
+P1 := ((0,800)
+-- (0,300)
+.. controls (0,110) and (180,0)
+.. (350,0)
+.. controls (520,0) and (700,110)
+.. (700,300)
+-- (700,800)
+-- cycle) ;
+P2 := ((291,653)
+.. controls (315,653) and (338,719)
+.. (348,775)
+-- (350,775)
+.. controls (361,719) and (384,653)
+.. (407,653)
+.. controls (421,653) and (439,671)
+.. (462,695)
+.. controls (451,634) and (434,566)
+.. (420,501)
+.. controls (415,476) and (406,441)
+.. (429,441)
+.. controls (448,441) and (486,514)
+.. (525,579)
+-- (527,577)
+-- (528,578)
+.. controls (525,558) and (522,505)
+.. (534,505)
+.. controls (556,505) and (588,514)
+.. (634,535)
+.. controls (622,507) and (603,467)
+.. (603,431)
+.. controls (603,419) and (612,412)
+.. (625,408)
+.. controls (637,405) and (654,405)
+.. (668,403)
+.. controls (610,353) and (501,266)
+.. (501,246)
+.. controls (501,233) and (504,211)
+.. (509,193)
+.. controls (472,200) and (409,228)
+.. (390,228)
+.. controls (378,228) and (370,211)
+.. (370,190)
+-- (370,42)
+-- (329,42)
+-- (329,190)
+.. controls (329,211) and (321,228)
+.. (309,228)
+.. controls (291,228) and (227,200)
+.. (190,193)
+.. controls (195,211) and (198,233)
+.. (198,246)
+.. controls (198,266) and (89,353)
+.. (31,403)
+.. controls (61,406) and (96,406)
+.. (96,431)
+.. controls (96,467) and (78,507)
+.. (65,535)
+.. controls (111,514) and (143,505)
+.. (166,505)
+.. controls (177,505) and (174,558)
+.. (171,576)
+-- (173,578)
+-- (172,579)
+.. controls (214,514) and (251,441)
+.. (271,441)
+.. controls (294,441) and (284,476)
+.. (279,501)
+.. controls (267,566) and (249,634)
+.. (237,695)
+.. controls (260,671) and (278,653)
+.. (291,653)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (90,302*FS#,700*FS#,0*FS#);
+"Z";
+P1 := ((206,503)
+-- (253,503)
+.. controls (266,503) and (272,512)
+.. (272,528)
+-- (272,675)
+.. controls (272,691) and (266,700)
+.. (253,700)
+-- (206,700)
+-- cycle) ;
+P2 := ((182,197)
+.. controls (168,197) and (153,203)
+.. (146,228)
+.. controls (139,252) and (137,283)
+.. (137,350)
+.. controls (137,417) and (139,448)
+.. (146,472)
+.. controls (153,497) and (168,503)
+.. (182,503)
+-- (182,700)
+.. controls (142,692) and (112,655)
+.. (76,598)
+.. controls (34,532) and (30,412)
+.. (30,350)
+.. controls (30,288) and (34,168)
+.. (76,102)
+.. controls (112,45) and (142,8)
+.. (182,0)
+-- cycle) ;
+P3 := ((203,0)
+-- (250,0)
+.. controls (263,0) and (269,9)
+.. (269,25)
+-- (269,172)
+.. controls (269,188) and (263,197)
+.. (250,197)
+-- (203,197)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (91,575*FS#,1100*FS#,100*FS#);
+"bracketleft";
+P1 := ((30,-98)
+-- (32,-100)
+-- (287,206)
+-- (543,-100)
+-- (545,-98)
+-- (287,788)
+-- cycle) ;
+P2 := ((345,1088)
+-- (379,1082)
+-- (379,908)
+-- (206,1100)
+-- (141,1100)
+-- (141,1088)
+-- (173,1082)
+-- (173,872)
+-- (141,866)
+-- (141,854)
+-- (232,854)
+-- (232,866)
+-- (197,872)
+-- (197,1056)
+.. controls (236,1014) and (359,878)
+.. (383,852)
+-- (403,852)
+-- (403,1082)
+-- (434,1088)
+-- (434,1100)
+-- (345,1100)
+-- cycle) ;
+P3 := ((98,26)
+-- (96,28)
+-- (285,691)
+-- (287,691)
+-- (287,253)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (92,1871*FS#,1394*FS#,395*FS#);
+"backslash";
+P1 := ((927,772)
+.. controls (846,757) and (736,671)
+.. (722,566)
+-- (436,503)
+-- (436,501)
+-- (722,438)
+.. controls (736,333) and (846,247)
+.. (927,233)
+-- (990,-53)
+-- (992,-53)
+-- (1055,233)
+.. controls (1136,247) and (1246,333)
+.. (1260,438)
+-- (1546,501)
+-- (1546,503)
+-- (1260,566)
+.. controls (1246,671) and (1136,757)
+.. (1055,771)
+-- (992,1057)
+-- (990,1057)
+-- cycle) ;
+P2 := ((1037,1394)
+-- (1037,1384)
+-- (1063,1379)
+-- (1063,1240)
+-- (929,1394)
+-- (874,1394)
+-- (874,1384)
+-- (899,1379)
+-- (899,1211)
+-- (874,1207)
+-- (874,1197)
+-- (947,1197)
+-- (947,1207)
+-- (919,1211)
+-- (919,1359)
+.. controls (950,1325) and (1045,1216)
+.. (1064,1195)
+-- (1083,1195)
+-- (1083,1379)
+-- (1108,1384)
+-- (1108,1394)
+-- cycle) ;
+P3 := ((1039,-194)
+.. controls (1025,-193) and (1011,-188)
+.. (997,-188)
+.. controls (958,-188) and (932,-212)
+.. (932,-242)
+.. controls (932,-314) and (1027,-299)
+.. (1027,-347)
+.. controls (1027,-372) and (1011,-384)
+.. (987,-384)
+.. controls (975,-384) and (953,-378)
+.. (947,-366)
+.. controls (943,-358) and (939,-346)
+.. (937,-330)
+-- (928,-333)
+-- (931,-380)
+.. controls (945,-390) and (970,-395)
+.. (989,-395)
+.. controls (1031,-395) and (1057,-369)
+.. (1057,-334)
+.. controls (1057,-276) and (962,-286)
+.. (962,-235)
+.. controls (962,-214) and (974,-202)
+.. (995,-202)
+.. controls (1020,-202) and (1029,-218)
+.. (1034,-238)
+-- (1043,-238)
+-- cycle) ;
+P4 := ((138,603)
+-- (138,593)
+-- (165,588)
+.. controls (163,578) and (159,567)
+.. (155,556)
+-- (120,447)
+-- (80,588)
+-- (107,593)
+-- (107,603)
+-- (30,603)
+-- (30,593)
+-- (52,588)
+-- (105,401)
+-- (120,401)
+-- (170,549)
+-- (217,401)
+-- (232,401)
+-- (292,588)
+-- (311,593)
+-- (311,603)
+-- (246,603)
+-- (246,593)
+-- (275,588)
+-- (231,448)
+-- (196,558)
+.. controls (193,568) and (190,578)
+.. (187,588)
+-- (215,593)
+-- (215,603)
+-- cycle) ;
+P5 := ((1793,500)
+-- (1798,478)
+-- (1807,478)
+.. controls (1805,494) and (1805,520)
+.. (1807,535)
+-- (1798,535)
+-- (1793,514)
+-- (1743,514)
+-- (1743,585)
+-- (1803,585)
+-- (1811,559)
+-- (1820,559)
+-- (1816,603)
+-- (1686,603)
+-- (1686,593)
+-- (1713,588)
+-- (1713,420)
+-- (1686,415)
+-- (1686,406)
+-- (1829,406)
+-- (1841,454)
+-- (1830,454)
+-- (1819,424)
+-- (1743,424)
+-- (1743,500)
+-- cycle) ;
+P6 := ((746,502)
+.. controls (746,639) and (834,747)
+.. (991,747)
+.. controls (1148,747) and (1236,639)
+.. (1236,502)
+.. controls (1236,365) and (1148,257)
+.. (991,257)
+.. controls (834,257) and (746,365)
+.. (746,502)
+-- cycle) ;
+P7 := ((943,772)
+-- (989,989)
+-- (991,989)
+-- (991,772)
+-- cycle) ;
+P8 := ((722,454)
+-- (505,500)
+-- (505,502)
+-- (722,502)
+-- cycle) ;
+P9 := ((1039,233)
+-- (993,16)
+-- (991,16)
+-- (991,233)
+-- cycle) ;
+P10 := ((1260,550)
+-- (1478,504)
+-- (1478,502)
+-- (1260,502)
+-- cycle) ;
+drawthem 10;
+endchar;
+
+beginchar (93,352*FS#,1662*FS#,662*FS#);
+"bracketright";
+P1 := ((234,1650)
+-- (268,1644)
+-- (268,1470)
+-- (95,1662)
+-- (30,1662)
+-- (30,1650)
+-- (62,1644)
+-- (62,1434)
+-- (30,1428)
+-- (30,1416)
+-- (121,1416)
+-- (121,1428)
+-- (86,1434)
+-- (86,1618)
+.. controls (125,1576) and (248,1440)
+.. (272,1414)
+-- (292,1414)
+-- (292,1644)
+-- (323,1650)
+-- (323,1662)
+-- (234,1662)
+-- cycle) ;
+P2 := ((182,278)
+.. controls (241,281) and (283,330)
+.. (283,381)
+.. controls (283,432) and (241,486)
+.. (190,484)
+-- (190,614)
+-- (270,576)
+-- (178,1338)
+-- (175,1338)
+-- (82,576)
+-- (163,614)
+-- (163,484)
+.. controls (112,484) and (69,432)
+.. (69,381)
+.. controls (69,330) and (112,278)
+.. (171,278)
+-- (69,-662)
+-- (176,-611)
+-- (283,-662)
+-- cycle) ;
+P3 := ((270,380)
+.. controls (265,335) and (230,286)
+.. (178,291)
+-- (178,380)
+-- cycle) ;
+P4 := ((176,1228)
+-- (179,1228)
+-- (253,602)
+-- (176,636)
+-- cycle) ;
+P5 := ((85,-640)
+-- (174,196)
+-- (176,196)
+-- (176,-597)
+-- cycle) ;
+P6 := ((175,382)
+-- (82,382)
+.. controls (82,439) and (123,468)
+.. (175,471)
+-- cycle) ;
+drawthem 6;
+endchar;
+
+beginchar (94,1538*FS#,1037*FS#,237*FS#);
+"asciicircum";
+P1 := ((1538,327)
+-- (862,580)
+-- (989,1035)
+-- (987,1037)
+-- (585,616)
+-- (440,791)
+-- (454,552)
+-- (0,468)
+-- (317,287)
+-- (188,58)
+-- (416,58)
+-- (463,-237)
+-- (661,65)
+-- (918,-110)
+-- (920,-108)
+-- (788,150)
+-- cycle) ;
+P2 := ((759,164)
+-- (867,-50)
+-- (865,-52)
+-- (656,92)
+-- (474,-184)
+-- (435,78)
+-- (223,78)
+-- (343,294)
+-- (61,460)
+-- (475,536)
+-- (462,736)
+-- (582,584)
+-- (948,967)
+-- (949,970)
+-- (951,968)
+-- (837,567)
+-- (1472,332)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (95,666*FS#,694*FS#,0*FS#);
+"underscore";
+P1 := ((475,0)
+-- (405,472)
+-- (602,357)
+-- (612,375)
+-- (401,498)
+.. controls (397,520) and (393,540)
+.. (382,540)
+-- (382,542)
+-- (612,672)
+-- (602,690)
+-- (342,540)
+-- (329,540)
+-- (64,694)
+-- (54,676)
+-- (288,540)
+.. controls (277,540) and (273,520)
+.. (269,498)
+-- (54,374)
+-- (64,358)
+-- (265,473)
+-- (195,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (96,458*FS#,691*FS#,0*FS#);
+"grave";
+P1 := ((378,333)
+-- (410,333)
+-- (410,506)
+-- (260,575)
+.. controls (237,585) and (226,586)
+.. (210,579)
+.. controls (194,572) and (173,563)
+.. (168,540)
+-- (157,485)
+.. controls (146,485) and (144,462)
+.. (136,427)
+-- (30,365)
+-- (42,333)
+-- (164,384)
+-- (198,446)
+-- (242,358)
+-- (168,232)
+-- (113,18)
+-- (173,0)
+-- (219,177)
+-- (274,255)
+-- (386,0)
+-- (428,29)
+-- (332,324)
+.. controls (340,346) and (345,369)
+.. (337,397)
+-- (313,483)
+-- (364,480)
+-- cycle) ;
+P2 := ((129,639)
+.. controls (129,610) and (152,588)
+.. (181,588)
+.. controls (208,588) and (231,610)
+.. (231,639)
+.. controls (231,668) and (208,691)
+.. (181,691)
+.. controls (152,691) and (129,668)
+.. (129,639)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (97,754*FS#,464*FS#,6*FS#);
+"a";
+P1 := ((97,275)
+.. controls (97,249) and (117,230)
+.. (142,230)
+.. controls (166,230) and (187,249)
+.. (187,275)
+.. controls (187,300) and (166,320)
+.. (142,320)
+.. controls (117,320) and (97,300)
+.. (97,275)
+-- cycle) ;
+P2 := ((460,406)
+.. controls (445,419) and (420,439)
+.. (387,439)
+.. controls (358,439) and (330,429)
+.. (312,417)
+.. controls (299,410) and (234,363)
+.. (213,340)
+.. controls (206,331) and (196,317)
+.. (196,309)
+.. controls (196,298) and (204,284)
+.. (220,280)
+.. controls (238,275) and (275,272)
+.. (275,272)
+-- (278,258)
+-- (218,212)
+-- (236,195)
+-- (296,226)
+-- (448,124)
+-- (129,13)
+.. controls (119,10) and (108,6)
+.. (91,6)
+.. controls (73,6) and (54,20)
+.. (48,28)
+.. controls (36,40) and (25,32)
+.. (32,23)
+.. controls (39,14) and (54,-6)
+.. (86,-6)
+.. controls (116,-6) and (129,-1)
+.. (144,3)
+-- (724,206)
+-- (720,219)
+-- (493,140)
+-- (383,237)
+-- (446,298)
+.. controls (471,320) and (478,342)
+.. (478,364)
+.. controls (478,378) and (470,393)
+.. (467,398)
+-- (512,434)
+-- (527,416)
+-- (534,421)
+-- (519,440)
+-- (533,450)
+-- (527,458)
+-- (514,448)
+-- (500,464)
+-- (492,460)
+-- (507,442)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (98,520*FS#,750*FS#,0*FS#);
+"b";
+P1 := ((420,0)
+-- (420,320)
+-- (290,320)
+-- (290,574)
+-- (396,574)
+-- (396,629)
+-- (290,629)
+-- (290,750)
+-- (230,750)
+-- (230,629)
+-- (124,629)
+-- (124,574)
+-- (230,574)
+-- (230,320)
+-- (100,320)
+-- (100,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (99,740*FS#,680*FS#,0*FS#);
+"c";
+P1 := ((30,340)
+.. controls (30,150) and (180,0)
+.. (370,0)
+.. controls (560,0) and (710,150)
+.. (710,340)
+.. controls (710,530) and (560,680)
+.. (370,680)
+.. controls (180,680) and (30,530)
+.. (30,340)
+-- cycle) ;
+P2 := ((355,499)
+.. controls (322,501) and (286,509)
+.. (253,521)
+.. controls (272,567) and (297,609)
+.. (324,646)
+.. controls (335,648) and (345,649)
+.. (355,649)
+-- cycle) ;
+P3 := ((355,355)
+-- (213,355)
+.. controls (215,402) and (226,449)
+.. (244,496)
+.. controls (282,480) and (321,470)
+.. (355,468)
+-- cycle) ;
+P4 := ((355,325)
+-- (355,212)
+.. controls (321,210) and (282,200)
+.. (244,184)
+.. controls (226,232) and (215,280)
+.. (213,325)
+-- cycle) ;
+P5 := ((355,31)
+.. controls (345,31) and (335,32)
+.. (324,34)
+.. controls (296,71) and (272,115)
+.. (254,160)
+.. controls (288,172) and (323,179)
+.. (355,181)
+-- cycle) ;
+P6 := ((228,149)
+.. controls (242,111) and (261,75)
+.. (284,44)
+.. controls (237,55) and (195,79)
+.. (160,111)
+.. controls (179,125) and (202,138)
+.. (228,149)
+-- cycle) ;
+P7 := ((183,325)
+.. controls (184,283) and (196,228)
+.. (217,174)
+.. controls (187,161) and (160,147)
+.. (139,132)
+.. controls (93,183) and (65,250)
+.. (62,325)
+-- cycle) ;
+P8 := ((62,355)
+.. controls (65,430) and (93,497)
+.. (139,548)
+.. controls (160,533) and (187,519)
+.. (217,506)
+.. controls (197,452) and (185,398)
+.. (183,355)
+-- cycle) ;
+P9 := ((227,532)
+.. controls (201,543) and (178,556)
+.. (160,569)
+.. controls (195,601) and (237,625)
+.. (284,637)
+.. controls (262,607) and (242,570)
+.. (227,532)
+-- cycle) ;
+P10 := ((385,649)
+.. controls (395,649) and (405,648)
+.. (416,646)
+.. controls (443,609) and (468,567)
+.. (487,521)
+.. controls (454,509) and (418,501)
+.. (385,499)
+-- cycle) ;
+P11 := ((385,468)
+.. controls (419,470) and (458,480)
+.. (496,496)
+.. controls (514,449) and (525,402)
+.. (527,355)
+-- (385,355)
+-- cycle) ;
+P12 := ((527,325)
+.. controls (525,280) and (514,232)
+.. (496,184)
+.. controls (458,200) and (419,210)
+.. (385,212)
+-- (385,325)
+-- cycle) ;
+P13 := ((385,181)
+.. controls (417,179) and (452,172)
+.. (486,160)
+.. controls (468,115) and (444,71)
+.. (416,34)
+.. controls (405,32) and (395,31)
+.. (385,31)
+-- cycle) ;
+P14 := ((513,532)
+.. controls (498,570) and (478,607)
+.. (456,637)
+.. controls (503,625) and (545,601)
+.. (580,569)
+.. controls (562,556) and (539,543)
+.. (513,532)
+-- cycle) ;
+P15 := ((557,355)
+.. controls (555,398) and (543,452)
+.. (523,506)
+.. controls (553,519) and (580,533)
+.. (601,548)
+.. controls (647,497) and (675,430)
+.. (678,355)
+-- cycle) ;
+P16 := ((678,325)
+.. controls (675,250) and (647,183)
+.. (601,132)
+.. controls (580,147) and (553,161)
+.. (523,174)
+.. controls (544,228) and (556,283)
+.. (557,325)
+-- cycle) ;
+P17 := ((512,149)
+.. controls (538,138) and (561,125)
+.. (580,111)
+.. controls (545,79) and (503,55)
+.. (456,44)
+.. controls (479,75) and (498,111)
+.. (512,149)
+-- cycle) ;
+drawthem 17;
+endchar;
+
+beginchar (100,760*FS#,553*FS#,0*FS#);
+"d";
+P1 := ((380,553)
+-- (122,40)
+-- (30,40)
+-- (30,0)
+-- (730,0)
+-- (730,40)
+-- (638,40)
+-- cycle) ;
+P2 := ((509,40)
+-- (251,40)
+-- (380,293)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (101,694*FS#,698*FS#,0*FS#);
+"e";
+P1 := ((347,698)
+-- (260,472)
+-- (30,472)
+-- (206,330)
+-- (141,103)
+-- (347,237)
+-- (553,103)
+-- (478,330)
+-- (664,472)
+-- (435,472)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (102,708*FS#,506*FS#,0*FS#);
+"f";
+P1 := ((678,0)
+-- (678,30)
+-- (549,30)
+-- (549,272)
+-- (589,272)
+-- (412,490)
+-- (235,272)
+-- (275,272)
+-- (275,30)
+-- (212,30)
+-- (174,160)
+-- (238,154)
+.. controls (206,183) and (170,215)
+.. (163,248)
+.. controls (179,244) and (197,242)
+.. (225,240)
+.. controls (183,281) and (166,313)
+.. (154,339)
+.. controls (142,365) and (106,451)
+.. (106,506)
+-- (104,506)
+.. controls (106,387) and (87,336)
+.. (74,282)
+.. controls (63,235) and (47,192)
+.. (30,161)
+.. controls (50,164) and (70,170)
+.. (91,177)
+.. controls (78,141) and (50,118)
+.. (30,96)
+.. controls (72,96) and (110,113)
+.. (148,154)
+.. controls (158,115) and (163,72)
+.. (169,30)
+-- (30,30)
+-- (30,0)
+-- cycle) ;
+P2 := ((365,189)
+-- (459,189)
+-- (459,30)
+-- (365,30)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (103,580*FS#,750*FS#,0*FS#);
+"g";
+P1 := ((300,481)
+-- (300,616)
+-- (418,683)
+-- (280,750)
+-- (280,481)
+-- (50,276)
+-- (170,276)
+-- (170,0)
+-- (410,0)
+-- (410,276)
+-- (530,276)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (104,682*FS#,650*FS#,0*FS#);
+"h";
+P1 := ((313,61)
+.. controls (236,61) and (182,109)
+.. (120,188)
+-- (153,207)
+.. controls (163,213) and (158,216)
+.. (145,226)
+.. controls (113,248) and (46,277)
+.. (39,273)
+.. controls (35,270) and (27,197)
+.. (31,158)
+.. controls (33,142) and (33,136)
+.. (44,142)
+-- (77,161)
+.. controls (117,83) and (230,0)
+.. (341,0)
+.. controls (452,0) and (565,83)
+.. (605,161)
+-- (638,142)
+.. controls (649,136) and (649,142)
+.. (651,158)
+.. controls (655,197) and (647,270)
+.. (643,273)
+.. controls (636,277) and (569,248)
+.. (537,226)
+.. controls (524,216) and (519,213)
+.. (529,207)
+-- (562,188)
+.. controls (500,109) and (446,61)
+.. (369,61)
+-- (369,454)
+.. controls (422,467) and (446,506)
+.. (445,554)
+.. controls (444,602) and (404,650)
+.. (341,650)
+.. controls (278,650) and (238,602)
+.. (237,554)
+.. controls (237,530) and (242,508)
+.. (255,491)
+.. controls (268,474) and (287,461)
+.. (313,454)
+-- cycle) ;
+P2 := ((292,551)
+.. controls (292,579) and (314,600)
+.. (341,600)
+.. controls (368,600) and (390,579)
+.. (390,551)
+.. controls (390,524) and (368,503)
+.. (341,503)
+.. controls (314,503) and (292,524)
+.. (292,551)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (105,1005*FS#,921*FS#,121*FS#);
+"i";
+P1 := ((503,-121)
+.. controls (597,-121) and (767,-18)
+.. (853,90)
+.. controls (945,206) and (1005,346)
+.. (1005,508)
+.. controls (1005,663) and (930,835)
+.. (850,921)
+.. controls (793,882) and (735,860)
+.. (677,860)
+.. controls (619,860) and (561,882)
+.. (503,921)
+.. controls (446,882) and (387,860)
+.. (329,860)
+.. controls (271,860) and (213,882)
+.. (154,921)
+.. controls (75,835) and (0,663)
+.. (0,508)
+.. controls (0,346) and (59,206)
+.. (153,90)
+.. controls (238,-18) and (408,-121)
+.. (503,-121)
+-- cycle) ;
+P2 := ((941,700)
+.. controls (952,671) and (975,605)
+.. (975,508)
+.. controls (975,377) and (936,246)
+.. (827,104)
+.. controls (767,25) and (601,-91)
+.. (503,-91)
+.. controls (405,-91) and (238,25)
+.. (178,104)
+.. controls (70,246) and (30,377)
+.. (30,508)
+.. controls (30,605) and (54,671)
+.. (64,700)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (106,658*FS#,826*FS#,25*FS#);
+"j";
+P1 := ((191,58)
+.. controls (176,45) and (167,35)
+.. (167,26)
+.. controls (167,16) and (178,12)
+.. (189,12)
+-- (274,12)
+-- (276,38)
+-- (295,38)
+.. controls (300,13) and (311,-4)
+.. (322,-7)
+-- (329,-25)
+-- (336,-7)
+.. controls (347,-4) and (358,13)
+.. (363,38)
+-- (382,38)
+-- (384,12)
+-- (469,12)
+.. controls (480,12) and (491,16)
+.. (491,26)
+.. controls (491,35) and (482,45)
+.. (467,58)
+-- (395,125)
+-- (395,210)
+-- (599,221)
+-- (612,202)
+-- (622,211)
+-- (622,339)
+-- (612,346)
+-- (592,294)
+-- (406,440)
+.. controls (406,463) and (395,487)
+.. (392,508)
+-- (351,712)
+.. controls (350,722) and (350,777)
+.. (329,826)
+.. controls (308,777) and (308,722)
+.. (307,712)
+-- (266,508)
+.. controls (263,487) and (252,463)
+.. (252,440)
+-- (66,294)
+-- (46,346)
+-- (36,339)
+-- (36,211)
+-- (46,202)
+-- (59,221)
+-- (263,210)
+-- (263,125)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (107,645*FS#,590*FS#,0*FS#);
+"k";
+P1 := ((180,400)
+-- (25,210)
+-- (91,210)
+-- (246,400)
+-- (91,590)
+-- (25,590)
+-- cycle) ;
+P2 := ((615,429)
+-- (615,474)
+-- (317,474)
+-- (222,590)
+-- (156,590)
+-- (288,429)
+-- cycle) ;
+P3 := ((288,371)
+-- (156,210)
+-- (222,210)
+-- (317,326)
+-- (615,326)
+-- (615,371)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (108,800*FS#,800*FS#,0*FS#);
+"l";
+P1 := ((50,800)
+.. controls (20,800) and (0,780)
+.. (0,750)
+-- (0,50)
+.. controls (0,20) and (20,0)
+.. (50,0)
+-- (750,0)
+.. controls (780,0) and (800,20)
+.. (800,43)
+-- (800,750)
+.. controls (800,780) and (780,800)
+.. (750,800)
+-- cycle) ;
+P2 := ((730,770)
+.. controls (758,770) and (770,758)
+.. (770,730)
+-- (770,64)
+.. controls (770,43) and (758,30)
+.. (730,30)
+-- (71,30)
+.. controls (43,30) and (30,43)
+.. (30,70)
+-- (30,730)
+.. controls (30,758) and (43,770)
+.. (71,770)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (109,600*FS#,800*FS#,32*FS#);
+"m";
+P1 := ((55,45)
+.. controls (43,39) and (30,34)
+.. (30,20)
+.. controls (30,-8) and (110,-32)
+.. (300,-32)
+.. controls (490,-32) and (570,-8)
+.. (570,20)
+.. controls (570,27) and (567,32)
+.. (562,35)
+.. controls (557,38) and (551,40)
+.. (545,41)
+-- (545,178)
+.. controls (562,185) and (570,193)
+.. (570,202)
+.. controls (570,209) and (567,214)
+.. (562,217)
+.. controls (557,220) and (551,222)
+.. (545,223)
+-- (545,360)
+.. controls (562,367) and (570,375)
+.. (570,384)
+.. controls (570,391) and (567,396)
+.. (562,399)
+.. controls (557,402) and (551,404)
+.. (545,405)
+-- (545,542)
+.. controls (562,549) and (570,557)
+.. (570,566)
+.. controls (570,573) and (567,578)
+.. (562,581)
+.. controls (557,584) and (551,586)
+.. (545,587)
+-- (545,724)
+.. controls (562,731) and (570,739)
+.. (570,748)
+.. controls (570,776) and (490,800)
+.. (300,800)
+.. controls (110,800) and (30,776)
+.. (30,748)
+.. controls (30,744) and (32,740)
+.. (36,736)
+.. controls (40,732) and (46,728)
+.. (55,724)
+-- (55,591)
+.. controls (43,585) and (30,580)
+.. (30,566)
+.. controls (30,562) and (32,558)
+.. (36,554)
+.. controls (40,550) and (46,546)
+.. (55,542)
+-- (55,409)
+.. controls (43,403) and (30,398)
+.. (30,384)
+.. controls (30,380) and (32,376)
+.. (36,372)
+.. controls (40,368) and (46,364)
+.. (55,360)
+-- (55,227)
+.. controls (43,221) and (30,216)
+.. (30,202)
+.. controls (30,198) and (32,194)
+.. (36,190)
+.. controls (40,186) and (46,182)
+.. (55,178)
+-- cycle) ;
+P2 := ((300,716)
+.. controls (200,716) and (58,726)
+.. (58,748)
+.. controls (58,770) and (200,780)
+.. (300,780)
+.. controls (400,780) and (542,770)
+.. (542,748)
+.. controls (542,726) and (400,716)
+.. (300,716)
+-- cycle) ;
+P3 := ((75,720)
+.. controls (124,706) and (200,696)
+.. (300,696)
+.. controls (400,696) and (476,706)
+.. (525,720)
+-- (525,578)
+.. controls (538,577) and (552,575)
+.. (552,569)
+.. controls (552,565) and (543,561)
+.. (525,558)
+.. controls (474,544) and (400,534)
+.. (300,534)
+.. controls (200,534) and (126,544)
+.. (75,558)
+.. controls (57,561) and (48,565)
+.. (48,569)
+.. controls (48,572) and (52,574)
+.. (57,575)
+.. controls (62,577) and (69,578)
+.. (75,578)
+-- cycle) ;
+P4 := ((75,538)
+.. controls (124,524) and (200,514)
+.. (300,514)
+.. controls (400,514) and (476,524)
+.. (525,538)
+-- (525,396)
+.. controls (538,395) and (552,393)
+.. (552,387)
+.. controls (552,383) and (543,379)
+.. (525,376)
+.. controls (474,362) and (400,352)
+.. (300,352)
+.. controls (200,352) and (126,362)
+.. (75,376)
+.. controls (57,379) and (48,383)
+.. (48,387)
+.. controls (48,390) and (52,392)
+.. (57,393)
+.. controls (62,395) and (69,396)
+.. (75,396)
+-- cycle) ;
+P5 := ((75,356)
+.. controls (124,342) and (200,332)
+.. (300,332)
+.. controls (400,332) and (476,342)
+.. (525,356)
+-- (525,214)
+.. controls (538,213) and (552,211)
+.. (552,205)
+.. controls (552,201) and (543,197)
+.. (525,194)
+.. controls (474,180) and (400,170)
+.. (300,170)
+.. controls (200,170) and (126,180)
+.. (75,194)
+.. controls (57,197) and (48,201)
+.. (48,205)
+.. controls (48,208) and (52,210)
+.. (57,211)
+.. controls (62,212) and (69,214)
+.. (75,214)
+-- cycle) ;
+P6 := ((75,174)
+.. controls (124,160) and (200,150)
+.. (300,150)
+.. controls (400,150) and (476,160)
+.. (525,174)
+-- (525,32)
+.. controls (538,31) and (552,29)
+.. (552,23)
+.. controls (552,19) and (543,15)
+.. (525,12)
+.. controls (474,-2) and (400,-12)
+.. (300,-12)
+.. controls (200,-12) and (126,-2)
+.. (75,12)
+.. controls (57,15) and (48,19)
+.. (48,23)
+.. controls (48,26) and (52,28)
+.. (57,29)
+.. controls (62,30) and (69,32)
+.. (75,32)
+-- cycle) ;
+drawthem 6;
+endchar;
+
+beginchar (110,764*FS#,800*FS#,0*FS#);
+"n";
+P1 := ((729,599)
+.. controls (705,640) and (609,631)
+.. (487,583)
+.. controls (468,712) and (428,800)
+.. (381,800)
+.. controls (334,800) and (294,713)
+.. (275,583)
+.. controls (153,632) and (58,640)
+.. (35,599)
+.. controls (11,560) and (65,482)
+.. (170,400)
+.. controls (65,317) and (12,239)
+.. (35,199)
+.. controls (58,158) and (153,168)
+.. (275,217)
+.. controls (294,85) and (334,0)
+.. (381,0)
+.. controls (428,0) and (468,87)
+.. (486,218)
+.. controls (609,168) and (705,158)
+.. (727,199)
+.. controls (750,239) and (697,318)
+.. (594,400)
+.. controls (697,481) and (751,558)
+.. (729,599)
+-- cycle) ;
+P2 := ((381,17)
+.. controls (341,17) and (307,99)
+.. (290,223)
+.. controls (319,235) and (350,248)
+.. (381,266)
+.. controls (412,248) and (441,235)
+.. (471,223)
+.. controls (455,97) and (421,17)
+.. (381,17)
+-- cycle) ;
+P3 := ((322,296)
+.. controls (335,288) and (349,280)
+.. (364,274)
+.. controls (338,260) and (313,248)
+.. (289,239)
+.. controls (285,264) and (282,291)
+.. (282,321)
+.. controls (293,312) and (308,304)
+.. (322,296)
+-- cycle) ;
+P4 := ((51,209)
+.. controls (31,244) and (85,313)
+.. (183,390)
+.. controls (207,370) and (234,352)
+.. (264,334)
+.. controls (265,297) and (268,263)
+.. (273,232)
+.. controls (159,186) and (70,174)
+.. (51,209)
+-- cycle) ;
+P5 := ((261,400)
+.. controls (261,384) and (261,367)
+.. (262,353)
+.. controls (239,368) and (216,384)
+.. (195,400)
+.. controls (215,415) and (237,432)
+.. (262,448)
+.. controls (261,432) and (261,416)
+.. (261,400)
+-- cycle) ;
+P6 := ((714,207)
+.. controls (694,172) and (606,185)
+.. (489,234)
+.. controls (494,263) and (497,296)
+.. (498,332)
+.. controls (528,351) and (555,370)
+.. (580,390)
+.. controls (680,313) and (734,243)
+.. (714,207)
+-- cycle) ;
+P7 := ((501,400)
+.. controls (501,417) and (501,433)
+.. (500,448)
+.. controls (525,432) and (546,416)
+.. (567,400)
+.. controls (546,383) and (523,368)
+.. (500,352)
+.. controls (501,367) and (501,383)
+.. (501,400)
+-- cycle) ;
+P8 := ((331,489)
+.. controls (348,499) and (365,508)
+.. (382,516)
+.. controls (398,507) and (415,498)
+.. (433,488)
+.. controls (451,477) and (466,468)
+.. (482,458)
+.. controls (484,440) and (484,421)
+.. (484,400)
+.. controls (484,379) and (482,359)
+.. (482,342)
+.. controls (466,330) and (449,321)
+.. (433,311)
+.. controls (415,301) and (398,292)
+.. (381,283)
+.. controls (365,291) and (348,301)
+.. (331,310)
+.. controls (314,320) and (297,330)
+.. (281,341)
+.. controls (278,359) and (278,379)
+.. (278,400)
+.. controls (278,419) and (278,439)
+.. (280,458)
+.. controls (294,467) and (313,479)
+.. (331,489)
+-- cycle) ;
+P9 := ((322,504)
+.. controls (308,495) and (293,487)
+.. (281,479)
+.. controls (283,508) and (285,537)
+.. (289,561)
+.. controls (313,552) and (338,540)
+.. (364,526)
+.. controls (349,520) and (335,512)
+.. (322,504)
+-- cycle) ;
+P10 := ((51,590)
+.. controls (71,625) and (160,613)
+.. (274,568)
+.. controls (268,538) and (266,504)
+.. (264,467)
+.. controls (234,448) and (208,428)
+.. (183,410)
+.. controls (85,485) and (31,556)
+.. (51,590)
+-- cycle) ;
+P11 := ((714,591)
+.. controls (734,556) and (678,485)
+.. (580,410)
+.. controls (555,430) and (528,449)
+.. (498,468)
+.. controls (497,505) and (494,537)
+.. (489,568)
+.. controls (604,614) and (693,627)
+.. (714,591)
+-- cycle) ;
+P12 := ((381,783)
+.. controls (422,783) and (456,700)
+.. (472,577)
+.. controls (444,565) and (413,552)
+.. (382,536)
+.. controls (351,552) and (321,565)
+.. (291,578)
+.. controls (308,702) and (342,783)
+.. (381,783)
+-- cycle) ;
+P13 := ((441,504)
+.. controls (428,512) and (413,520)
+.. (400,526)
+.. controls (425,539) and (449,550)
+.. (473,561)
+.. controls (478,536) and (480,508)
+.. (481,479)
+.. controls (470,487) and (456,496)
+.. (441,504)
+-- cycle) ;
+P14 := ((441,296)
+.. controls (455,304) and (469,312)
+.. (481,321)
+.. controls (480,292) and (477,263)
+.. (473,239)
+.. controls (449,248) and (424,260)
+.. (398,274)
+.. controls (412,280) and (427,288)
+.. (441,296)
+-- cycle) ;
+P15 := ((340,400)
+.. controls (340,377) and (358,359)
+.. (381,359)
+.. controls (404,359) and (422,377)
+.. (422,400)
+.. controls (422,423) and (404,441)
+.. (381,441)
+.. controls (358,441) and (340,423)
+.. (340,400)
+-- cycle) ;
+drawthem 15;
+endchar;
+
+beginchar (111,970*FS#,885*FS#,85*FS#);
+"o";
+P1 := ((0,400)
+.. controls (0,129) and (213,-85)
+.. (485,-85)
+.. controls (757,-85) and (970,129)
+.. (970,400)
+.. controls (970,671) and (757,885)
+.. (485,885)
+.. controls (213,885) and (0,671)
+.. (0,400)
+-- cycle) ;
+P2 := ((30,400)
+.. controls (30,654) and (230,855)
+.. (485,855)
+.. controls (740,855) and (940,654)
+.. (940,400)
+.. controls (940,146) and (740,-55)
+.. (485,-55)
+.. controls (230,-55) and (30,146)
+.. (30,400)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (112,1092*FS#,946*FS#,147*FS#);
+"p";
+P1 := ((17,436)
+.. controls (-5,413) and (-5,385)
+.. (17,364)
+-- (512,-131)
+.. controls (533,-152) and (561,-152)
+.. (582,-131)
+-- (1077,364)
+.. controls (1099,385) and (1099,414)
+.. (1077,435)
+-- (582,930)
+.. controls (561,951) and (533,952)
+.. (512,930)
+-- cycle) ;
+P2 := ((514,892)
+.. controls (533,912) and (559,911)
+.. (579,892)
+-- (1037,433)
+.. controls (1058,414) and (1058,387)
+.. (1037,367)
+-- (579,-91)
+.. controls (559,-111) and (533,-111)
+.. (514,-91)
+-- (55,367)
+.. controls (35,387) and (35,413)
+.. (55,434)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (113,899*FS#,700*FS#,0*FS#);
+"q";
+P1 := ((430,700)
+-- (430,530)
+-- (212,530)
+-- (48,122)
+.. controls (61,47) and (134,0)
+.. (212,0)
+.. controls (290,0) and (363,47)
+.. (376,122)
+-- (227,500)
+-- (673,500)
+-- (524,122)
+.. controls (537,47) and (610,0)
+.. (688,0)
+.. controls (766,0) and (839,47)
+.. (852,122)
+-- (688,530)
+-- (470,530)
+-- (470,700)
+-- cycle) ;
+P2 := ((212,455)
+-- (342,122)
+-- (78,122)
+-- cycle) ;
+P3 := ((822,122)
+-- (558,122)
+-- (688,455)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (114,695*FS#,717*FS#,0*FS#);
+"r";
+P1 := ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) ;
+P2 := ((348,687)
+-- (414,492)
+-- (624,492)
+-- (455,366)
+-- (507,162)
+-- (348,289)
+-- (188,162)
+-- (240,366)
+-- (71,492)
+-- (281,492)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (115,762*FS#,915*FS#,116*FS#);
+"s";
+P1 := ((527,904)
+.. controls (523,921) and (502,919)
+.. (503,898)
+.. controls (507,868) and (511,823)
+.. (475,799)
+.. controls (449,781) and (394,795)
+.. (364,811)
+.. controls (346,819) and (340,803)
+.. (355,793)
+.. controls (379,781) and (418,767)
+.. (453,771)
+.. controls (431,748) and (418,720)
+.. (418,687)
+.. controls (418,615) and (464,561)
+.. (527,546)
+.. controls (537,543) and (527,513)
+.. (523,503)
+-- (498,451)
+.. controls (489,430) and (454,426)
+.. (431,426)
+-- (164,426)
+.. controls (80,426) and (30,365)
+.. (30,325)
+.. controls (30,231) and (138,192)
+.. (143,139)
+-- (146,104)
+.. controls (124,104) and (122,93)
+.. (122,82)
+.. controls (122,67) and (151,61)
+.. (180,48)
+-- (237,-60)
+.. controls (245,-72) and (254,-84)
+.. (263,-80)
+.. controls (271,-74) and (269,-59)
+.. (265,-47)
+-- (232,28)
+-- (369,-32)
+-- (349,-84)
+.. controls (343,-97) and (343,-113)
+.. (353,-116)
+.. controls (359,-119) and (371,-108)
+.. (377,-94)
+-- (407,-35)
+.. controls (418,-12) and (437,14)
+.. (444,35)
+.. controls (457,67) and (472,105)
+.. (479,132)
+.. controls (484,158) and (499,165)
+.. (521,165)
+.. controls (554,165) and (560,153)
+.. (560,147)
+.. controls (560,136) and (546,117)
+.. (534,106)
+-- (484,43)
+.. controls (475,31) and (472,13)
+.. (476,7)
+.. controls (484,2) and (503,13)
+.. (514,23)
+-- (572,96)
+.. controls (606,137) and (637,162)
+.. (637,189)
+.. controls (637,210) and (567,221)
+.. (567,252)
+-- (567,304)
+.. controls (567,331) and (589,378)
+.. (602,423)
+.. controls (610,451) and (654,451)
+.. (698,459)
+.. controls (718,461) and (732,466)
+.. (732,485)
+.. controls (732,501) and (718,509)
+.. (705,513)
+-- (559,572)
+.. controls (547,665) and (612,709)
+.. (689,711)
+.. controls (709,712) and (709,726)
+.. (689,729)
+.. controls (666,730) and (645,726)
+.. (627,722)
+.. controls (642,746) and (641,769)
+.. (636,789)
+.. controls (633,799) and (618,798)
+.. (618,782)
+.. controls (618,759) and (620,730)
+.. (592,711)
+.. controls (567,695) and (531,709)
+.. (511,717)
+.. controls (497,722) and (493,709)
+.. (503,703)
+.. controls (519,695) and (542,686)
+.. (563,687)
+.. controls (540,661) and (524,624)
+.. (529,578)
+.. controls (475,596) and (451,642)
+.. (451,691)
+.. controls (451,758) and (516,807)
+.. (596,820)
+.. controls (605,821) and (605,834)
+.. (596,836)
+.. controls (573,838) and (542,833)
+.. (516,820)
+.. controls (525,836) and (529,851)
+.. (531,865)
+.. controls (532,879) and (530,893)
+.. (527,904)
+-- cycle) ;
+P2 := ((386,173)
+-- (386,144)
+.. controls (386,118) and (406,93)
+.. (406,65)
+.. controls (406,50) and (393,27)
+.. (379,-9)
+-- (220,75)
+.. controls (200,84) and (207,96)
+.. (215,105)
+.. controls (232,121) and (250,147)
+.. (264,173)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (116,695*FS#,717*FS#,0*FS#);
+"t";
+P1 := ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) ;
+P2 := ((60,400)
+.. controls (60,561) and (187,687)
+.. (348,687)
+.. controls (508,687) and (635,561)
+.. (635,400)
+.. controls (635,239) and (508,113)
+.. (348,113)
+.. controls (187,113) and (60,239)
+.. (60,400)
+-- cycle) ;
+P3 := ((531,400)
+.. controls (531,508) and (456,584)
+.. (348,584)
+.. controls (240,584) and (164,508)
+.. (164,400)
+.. controls (164,292) and (240,216)
+.. (348,216)
+.. controls (456,216) and (531,292)
+.. (531,400)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (117,1063*FS#,921*FS#,122*FS#);
+"u";
+P1 := ((30,748)
+.. controls (58,736) and (97,664)
+.. (97,608)
+.. controls (97,545) and (0,460)
+.. (0,299)
+.. controls (0,83) and (151,-88)
+.. (265,-88)
+.. controls (315,-88) and (344,-79)
+.. (367,-69)
+.. controls (391,-60) and (409,-50)
+.. (425,-50)
+.. controls (456,-50) and (499,-84)
+.. (531,-122)
+.. controls (563,-84) and (607,-50)
+.. (638,-50)
+.. controls (654,-50) and (672,-60)
+.. (696,-69)
+.. controls (719,-79) and (747,-88)
+.. (798,-88)
+.. controls (912,-88) and (1063,83)
+.. (1063,299)
+.. controls (1063,460) and (966,545)
+.. (966,608)
+.. controls (967,664) and (1006,736)
+.. (1034,748)
+-- (845,921)
+.. controls (790,862) and (737,824)
+.. (689,824)
+.. controls (637,824) and (557,862)
+.. (531,921)
+.. controls (505,862) and (427,824)
+.. (375,824)
+.. controls (327,824) and (274,862)
+.. (218,921)
+-- cycle) ;
+P2 := ((992,748)
+.. controls (958,715) and (936,659)
+.. (936,608)
+.. controls (936,525) and (1033,458)
+.. (1033,299)
+.. controls (1033,124) and (911,-58)
+.. (795,-58)
+.. controls (764,-58) and (733,-55)
+.. (710,-46)
+.. controls (687,-37) and (670,-20)
+.. (632,-20)
+.. controls (595,-17) and (562,-53)
+.. (531,-83)
+.. controls (500,-53) and (467,-17)
+.. (430,-20)
+.. controls (392,-20) and (375,-37)
+.. (352,-46)
+.. controls (329,-55) and (298,-58)
+.. (267,-58)
+.. controls (151,-58) and (29,124)
+.. (29,299)
+.. controls (29,458) and (126,525)
+.. (126,608)
+.. controls (126,659) and (104,715)
+.. (70,748)
+-- (218,885)
+.. controls (249,844) and (323,794)
+.. (375,794)
+.. controls (433,794) and (499,828)
+.. (531,874)
+.. controls (563,828) and (629,794)
+.. (687,794)
+.. controls (739,794) and (813,844)
+.. (844,885)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (118,740*FS#,587*FS#,0*FS#);
+"v";
+P1 := ((370,587)
+-- (30,466)
+-- (231,394)
+-- (184,228)
+-- (557,228)
+-- (510,395)
+-- (566,415)
+-- (638,157)
+-- (686,202)
+-- (581,421)
+-- (710,466)
+-- cycle) ;
+P2 := ((217,248)
+-- (255,386)
+-- (370,345)
+-- (486,387)
+-- (524,248)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (119,808*FS#,724*FS#,2*FS#);
+"w";
+P1 := ((97,469)
+-- (194,372)
+-- (269,447)
+-- (516,200)
+.. controls (494,188) and (472,179)
+.. (445,175)
+.. controls (387,166) and (304,186)
+.. (255,262)
+-- (221,262)
+-- (170,213)
+.. controls (150,240) and (136,245)
+.. (125,233)
+.. controls (114,222) and (119,208)
+.. (145,189)
+.. controls (109,168) and (68,135)
+.. (43,110)
+.. controls (26,93) and (25,62)
+.. (42,45)
+.. controls (59,28) and (90,30)
+.. (107,47)
+.. controls (131,71) and (165,113)
+.. (185,149)
+.. controls (205,122) and (218,117)
+.. (230,129)
+.. controls (241,140) and (236,153)
+.. (209,173)
+-- (229,193)
+.. controls (257,134) and (364,76)
+.. (459,78)
+.. controls (506,78) and (558,93)
+.. (598,118)
+-- (707,9)
+.. controls (725,-9) and (747,-2)
+.. (763,14)
+.. controls (780,30) and (785,52)
+.. (768,70)
+-- (661,177)
+.. controls (708,221) and (732,308)
+.. (731,399)
+.. controls (730,546) and (601,691)
+.. (417,724)
+-- (415,722)
+.. controls (529,630) and (623,545)
+.. (630,431)
+.. controls (633,365) and (616,285)
+.. (583,254)
+-- (329,508)
+-- (421,599)
+-- (257,627)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (120,660*FS#,600*FS#,0*FS#);
+"x";
+P1 := ((30,300)
+.. controls (30,132) and (162,0)
+.. (330,0)
+.. controls (498,0) and (630,132)
+.. (630,300)
+.. controls (630,468) and (498,600)
+.. (330,600)
+.. controls (162,600) and (30,468)
+.. (30,300)
+-- cycle) ;
+P2 := ((407,377)
+-- (545,377)
+-- (545,223)
+-- (407,223)
+-- (407,85)
+-- (253,85)
+-- (253,223)
+-- (115,223)
+-- (115,377)
+-- (253,377)
+-- (253,515)
+-- (407,515)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (121,700*FS#,921*FS#,122*FS#);
+"y";
+P1 := ((700,856)
+-- (568,921)
+.. controls (529,899) and (496,884)
+.. (459,884)
+.. controls (423,884) and (371,899)
+.. (350,921)
+.. controls (329,899) and (277,884)
+.. (241,884)
+.. controls (205,884) and (171,899)
+.. (132,921)
+-- (0,856)
+-- (0,606)
+.. controls (16,555) and (34,503)
+.. (34,451)
+.. controls (34,425) and (30,399)
+.. (23,373)
+.. controls (17,347) and (8,322)
+.. (0,296)
+.. controls (0,196) and (41,101)
+.. (106,21)
+.. controls (166,-52) and (285,-122)
+.. (350,-122)
+.. controls (416,-122) and (534,-52)
+.. (594,21)
+.. controls (658,101) and (700,196)
+.. (700,296)
+.. controls (684,347) and (666,399)
+.. (666,451)
+.. controls (666,477) and (671,503)
+.. (677,529)
+.. controls (684,555) and (692,581)
+.. (700,606)
+-- cycle) ;
+P2 := ((30,841)
+-- (132,891)
+.. controls (167,871) and (203,856)
+.. (241,854)
+.. controls (274,856) and (322,871)
+.. (350,891)
+.. controls (378,871) and (426,856)
+.. (459,854)
+.. controls (497,856) and (533,871)
+.. (568,891)
+-- (670,841)
+-- (670,599)
+.. controls (649,551) and (636,497)
+.. (636,448)
+.. controls (636,424) and (639,398)
+.. (645,372)
+.. controls (651,347) and (660,321)
+.. (670,297)
+.. controls (670,208) and (633,118)
+.. (573,43)
+.. controls (518,-26) and (406,-92)
+.. (350,-92)
+.. controls (294,-92) and (182,-26)
+.. (127,43)
+.. controls (67,118) and (30,208)
+.. (30,297)
+.. controls (51,345) and (64,399)
+.. (64,448)
+.. controls (64,473) and (61,498)
+.. (55,524)
+.. controls (49,550) and (41,575)
+.. (30,599)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (122,340*FS#,645*FS#,10*FS#);
+"z";
+P1 := ((56,192)
+.. controls (49,175) and (15,93)
+.. (15,45)
+.. controls (15,7) and (40,-10)
+.. (76,-10)
+.. controls (177,-10) and (294,114)
+.. (294,143)
+.. controls (294,152) and (287,158)
+.. (282,158)
+.. controls (268,158) and (213,73)
+.. (183,73)
+.. controls (175,73) and (171,80)
+.. (171,87)
+.. controls (171,103) and (182,128)
+.. (188,143)
+-- (260,338)
+.. controls (296,435) and (250,461)
+.. (207,461)
+.. controls (149,461) and (97,432)
+.. (57,394)
+.. controls (44,381) and (0,339)
+.. (0,321)
+.. controls (0,315) and (6,308)
+.. (13,308)
+.. controls (31,308) and (79,395)
+.. (116,395)
+.. controls (124,395) and (133,386)
+.. (126,368)
+-- cycle) ;
+P2 := ((248,497)
+.. controls (293,497) and (331,531)
+.. (331,577)
+.. controls (331,618) and (302,645)
+.. (262,645)
+.. controls (218,645) and (180,609)
+.. (180,565)
+.. controls (180,524) and (207,497)
+.. (248,497)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (123,1811*FS#,153*FS#,0*FS#);
+"braceleft";
+P1 := ((1811,0)
+-- (1811,153)
+-- (0,153)
+-- (0,0)
+-- cycle) ;
+P2 := ((14,14)
+-- (14,75)
+-- (131,75)
+-- (131,14)
+-- cycle) ;
+P3 := ((250,139)
+-- (250,78)
+-- (133,78)
+-- (133,139)
+-- cycle) ;
+P4 := ((252,14)
+-- (252,75)
+-- (369,75)
+-- (369,14)
+-- cycle) ;
+P5 := ((488,139)
+-- (488,78)
+-- (371,78)
+-- (371,139)
+-- cycle) ;
+P6 := ((490,14)
+-- (490,75)
+-- (607,75)
+-- (607,14)
+-- cycle) ;
+P7 := ((1202,139)
+-- (1202,78)
+-- (609,78)
+-- (609,139)
+-- cycle) ;
+P8 := ((1204,75)
+-- (1797,75)
+-- (1797,14)
+-- (1204,14)
+-- cycle) ;
+drawthem 8;
+endchar;
+
+beginchar (124,900*FS#,717*FS#,0*FS#);
+"bar";
+P1 := ((763,717)
+-- (356,717)
+-- (223,585)
+-- (532,585)
+-- (130,183)
+-- (229,84)
+-- (631,486)
+-- (631,177)
+-- (763,310)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (125,900*FS#,717*FS#,0*FS#);
+"braceright";
+P1 := ((130,310)
+-- (262,177)
+-- (262,486)
+-- (664,84)
+-- (763,183)
+-- (361,585)
+-- (670,585)
+-- (537,717)
+-- (130,717)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (126,575*FS#,681*FS#,5*FS#);
+"asciitilde";
+P1 := ((322,630)
+.. controls (322,602) and (344,580)
+.. (373,580)
+.. controls (401,580) and (423,602)
+.. (423,630)
+.. controls (423,659) and (401,681)
+.. (373,681)
+.. controls (344,681) and (322,659)
+.. (322,630)
+-- cycle) ;
+P2 := ((534,392)
+-- (514,390)
+-- (518,438)
+-- (457,556)
+-- (416,568)
+.. controls (403,573) and (378,569)
+.. (368,561)
+-- (341,541)
+-- (311,428)
+-- (253,409)
+-- (224,472)
+-- (191,485)
+.. controls (176,491) and (158,491)
+.. (147,483)
+-- (119,460)
+-- (88,368)
+-- (30,314)
+-- (42,292)
+-- (107,340)
+-- (125,381)
+-- (138,339)
+-- (83,211)
+-- (100,204)
+-- (54,35)
+-- (76,24)
+-- (140,198)
+-- (167,193)
+-- (246,27)
+-- (273,38)
+-- (213,196)
+-- (251,208)
+-- (217,288)
+-- (282,292)
+-- (272,354)
+-- (239,352)
+-- (258,381)
+-- (320,390)
+-- (347,430)
+-- (366,330)
+-- (320,213)
+-- (306,9)
+-- (352,0)
+-- (364,169)
+-- (399,244)
+-- (414,158)
+-- (500,-5)
+-- (542,17)
+-- (465,161)
+-- (465,309)
+-- (545,317)
+-- cycle) ;
+P3 := ((105,554)
+.. controls (105,526) and (127,504)
+.. (155,504)
+.. controls (184,504) and (206,526)
+.. (206,554)
+.. controls (206,583) and (184,605)
+.. (155,605)
+.. controls (127,605) and (105,583)
+.. (105,554)
+-- cycle) ;
+P4 := ((219,351)
+-- (205,351)
+-- (211,407)
+-- (231,378)
+-- cycle) ;
+P5 := ((487,434)
+-- (479,386)
+-- (459,384)
+-- (452,478)
+-- cycle) ;
+drawthem 5;
+endchar;
+
+beginchar (161,1000*FS#,894*FS#,94*FS#);
+"degree";
+P1 := ((75,796)
+.. controls (29,796) and (0,775)
+.. (0,652)
+.. controls (0,439) and (211,129)
+.. (430,-66)
+.. controls (471,-103) and (529,-103)
+.. (570,-66)
+.. controls (789,129) and (1000,439)
+.. (1000,652)
+.. controls (1000,775) and (971,796)
+.. (925,796)
+-- (629,796)
+-- (629,859)
+.. controls (629,881) and (615,894)
+.. (593,894)
+-- (407,894)
+.. controls (384,894) and (371,881)
+.. (371,859)
+-- (371,796)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (162,560*FS#,683*FS#,0*FS#);
+"cent";
+P1 := ((563,400)
+-- (280,683)
+-- (-3,400)
+-- (280,117)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (163,560*FS#,650*FS#,0*FS#);
+"sterling";
+P1 := ((530,150)
+-- (280,650)
+-- (30,150)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (164,2600*FS#,447*FS#,0*FS#);
+"section";
+P1 := ((2556,126)
+-- (1500,126)
+-- (1500,169)
+-- (1488,169)
+-- (1488,156)
+-- (1469,156)
+.. controls (1464,156) and (1458,161)
+.. (1451,168)
+.. controls (1446,173) and (1439,181)
+.. (1430,181)
+-- (1403,181)
+-- (1403,161)
+-- (1410,161)
+-- (1410,126)
+-- (1383,126)
+-- (1383,260)
+-- (1371,260)
+-- (1371,344)
+-- (1359,344)
+-- (1359,260)
+-- (1262,260)
+-- (1262,226)
+-- (1220,226)
+-- (1220,240)
+-- (1232,240)
+-- (1220,253)
+-- (1220,274)
+.. controls (1238,289) and (1259,296)
+.. (1259,308)
+-- (1259,321)
+-- (1307,321)
+-- (1307,343)
+-- (1220,343)
+-- (1220,369)
+-- (1241,369)
+-- (1241,414)
+-- (1238,414)
+.. controls (1237,406) and (1227,393)
+.. (1220,394)
+-- (1220,447)
+-- (1208,447)
+-- (1208,395)
+-- (1180,395)
+-- (1208,369)
+-- (1208,343)
+.. controls (1207,343) and (1200,340)
+.. (1200,333)
+.. controls (1200,324) and (1207,321)
+.. (1214,321)
+-- (1214,309)
+.. controls (1205,309) and (1197,303)
+.. (1195,296)
+-- (1174,296)
+-- (1157,321)
+-- (1147,321)
+.. controls (1140,315) and (1141,297)
+.. (1151,297)
+-- (1163,297)
+-- (1170,287)
+-- (1170,274)
+-- (1200,249)
+-- (1200,226)
+-- (1179,226)
+-- (1167,240)
+-- (1146,201)
+-- (1131,201)
+-- (1131,243)
+-- (1116,259)
+-- (1112,254)
+-- (1123,242)
+-- (1112,214)
+-- (1086,214)
+-- (1086,126)
+-- (30,126)
+-- (30,113)
+-- (62,113)
+.. controls (71,68) and (153,59)
+.. (169,0)
+-- (2484,0)
+-- (2549,39)
+-- (2518,39)
+-- (2518,54)
+-- (2502,73)
+-- (2502,92)
+-- (2570,92)
+-- cycle) ;
+P2 := ((1245,321)
+-- (1245,309)
+.. controls (1233,308) and (1225,310)
+.. (1224,321)
+-- cycle) ;
+P3 := ((1423,161)
+.. controls (1449,161) and (1474,140)
+.. (1480,126)
+-- (1423,126)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (165,1676*FS#,372*FS#,0*FS#);
+"bullet";
+P1 := ((1284,160)
+-- (1046,160)
+-- (1046,275)
+-- (1036,275)
+-- (1036,160)
+-- (868,160)
+-- (868,241)
+-- (858,241)
+-- (858,160)
+-- (274,160)
+-- (192,262)
+-- (192,299)
+-- (182,299)
+-- (182,160)
+-- (30,160)
+.. controls (28,117) and (91,95)
+.. (96,73)
+-- (114,0)
+-- (1444,0)
+.. controls (1550,0) and (1630,107)
+.. (1646,160)
+-- (1568,160)
+-- (1568,197)
+-- (1531,197)
+-- (1531,234)
+-- (1484,234)
+-- (1428,372)
+-- (1348,372)
+-- (1368,234)
+-- (1330,234)
+-- (1330,264)
+.. controls (1306,264) and (1284,246)
+.. (1284,215)
+-- cycle) ;
+P2 := ((192,240)
+-- (194,240)
+-- (258,160)
+-- (192,160)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (166,1800*FS#,499*FS#,0*FS#);
+"paragraph";
+P1 := ((41,116)
+-- (30,116)
+.. controls (30,96) and (28,14)
+.. (60,0)
+-- (1744,0)
+-- (1770,48)
+-- (1770,164)
+-- (1758,164)
+-- (1758,107)
+-- (1743,87)
+-- (1699,80)
+-- (1699,123)
+-- (1710,123)
+-- (1710,134)
+-- (1672,134)
+-- (1672,123)
+-- (1687,123)
+-- (1687,77)
+-- (1508,58)
+-- (1508,83)
+-- (1465,83)
+-- (1465,145)
+-- (1455,145)
+-- (1455,83)
+-- (1437,83)
+-- (1437,145)
+-- (1427,145)
+-- (1427,83)
+-- (1413,83)
+-- (1413,58)
+-- (1339,58)
+-- (1339,86)
+-- (1362,98)
+-- (1362,114)
+-- (1319,89)
+-- (1319,58)
+-- (1138,58)
+-- (1138,72)
+-- (1189,72)
+-- (1189,84)
+-- (1138,84)
+-- (1112,94)
+-- (1096,94)
+-- (1108,79)
+-- (1108,58)
+-- (1064,58)
+-- (1064,88)
+-- (1025,88)
+-- (1025,118)
+-- (1034,123)
+-- (1034,130)
+-- (1016,134)
+-- (1123,201)
+-- (1118,207)
+-- (1018,162)
+-- (1018,188)
+-- (1024,188)
+-- (1024,200)
+-- (1006,200)
+-- (1006,172)
+-- (991,172)
+-- (991,194)
+-- (979,194)
+-- (979,172)
+-- (969,172)
+-- (956,213)
+-- (966,213)
+-- (966,234)
+-- (944,234)
+-- (944,205)
+-- (906,205)
+-- (906,251)
+-- (944,251)
+-- (944,279)
+-- (938,302)
+-- (938,318)
+-- (948,318)
+-- (948,326)
+-- (927,326)
+-- (927,312)
+-- (895,312)
+-- (895,339)
+-- (908,339)
+-- (908,370)
+-- (870,370)
+-- (870,339)
+-- (883,339)
+-- (883,312)
+-- (871,312)
+-- (851,332)
+-- (851,394)
+.. controls (858,397) and (863,401)
+.. (864,408)
+-- (898,408)
+-- (898,419)
+-- (864,419)
+.. controls (863,426) and (858,432)
+.. (851,433)
+-- (851,499)
+-- (840,499)
+-- (840,433)
+.. controls (832,432) and (827,426)
+.. (826,419)
+-- (792,419)
+-- (792,408)
+-- (826,408)
+.. controls (827,401) and (832,397)
+.. (840,394)
+-- (840,293)
+.. controls (840,286) and (845,277)
+.. (853,270)
+.. controls (859,263) and (868,256)
+.. (877,251)
+-- (877,205)
+-- (844,205)
+-- (844,214)
+-- (851,218)
+-- (839,230)
+-- (826,218)
+-- (832,214)
+-- (832,205)
+-- (823,205)
+-- (823,172)
+-- (782,172)
+-- (763,123)
+-- (683,123)
+-- (663,210)
+-- (692,227)
+-- (692,309)
+-- (703,313)
+-- (703,328)
+-- (697,332)
+-- (697,424)
+-- (685,424)
+-- (685,333)
+-- (672,333)
+.. controls (671,341) and (667,345)
+.. (659,345)
+.. controls (655,345) and (651,342)
+.. (651,336)
+.. controls (651,330) and (653,325)
+.. (659,325)
+-- (680,325)
+-- (680,263)
+-- (651,263)
+-- (651,277)
+.. controls (660,278) and (668,285)
+.. (668,291)
+.. controls (668,298) and (663,305)
+.. (645,305)
+.. controls (627,305) and (624,298)
+.. (624,291)
+.. controls (624,285) and (629,278)
+.. (639,277)
+-- (639,263)
+-- (631,238)
+-- (613,238)
+-- (611,217)
+-- (626,217)
+-- (623,170)
+-- (595,170)
+-- (589,143)
+-- (551,143)
+-- (536,175)
+-- (536,187)
+-- (545,187)
+-- (545,194)
+.. controls (524,196) and (520,211)
+.. (520,225)
+-- (508,225)
+-- (508,215)
+.. controls (508,205) and (514,194)
+.. (522,187)
+-- (522,175)
+-- (505,145)
+-- (490,145)
+-- (473,183)
+-- (457,188)
+-- (457,243)
+-- (446,243)
+-- (446,82)
+-- (427,79)
+.. controls (425,87) and (413,94)
+.. (403,94)
+.. controls (390,94) and (377,90)
+.. (375,82)
+-- (331,82)
+-- (331,75)
+-- (375,68)
+-- (375,58)
+-- (281,58)
+-- (281,70)
+-- (292,83)
+-- (292,95)
+-- (244,95)
+-- (244,83)
+-- (255,70)
+-- (255,58)
+-- (41,83)
+-- cycle) ;
+P2 := ((457,175)
+-- (465,175)
+-- (480,142)
+-- (465,130)
+-- (457,136)
+-- cycle) ;
+P3 := ((680,255)
+-- (680,241)
+-- (659,227)
+-- (652,255)
+-- cycle) ;
+P4 := ((902,277)
+-- (902,293)
+-- (913,301)
+-- (927,301)
+-- (927,269)
+-- (913,269)
+-- cycle) ;
+drawthem 4;
+endchar;
+
+beginchar (167,963*FS#,595*FS#,0*FS#);
+"germandbls";
+P1 := ((933,595)
+-- (930,595)
+.. controls (923,566) and (756,421)
+.. (749,421)
+.. controls (726,421) and (515,576)
+.. (344,576)
+.. controls (188,576) and (30,436)
+.. (30,400)
+.. controls (30,364) and (188,224)
+.. (344,224)
+.. controls (515,224) and (726,379)
+.. (749,379)
+.. controls (756,379) and (923,234)
+.. (930,205)
+-- (933,205)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (168,695*FS#,717*FS#,0*FS#);
+"registered";
+P1 := ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) ;
+P3 := reverse ((409,491)
+-- (619,491)
+-- (450,364)
+-- (516,164)
+-- (347,288)
+-- (179,164)
+-- (246,364)
+-- (75,491)
+-- (284,491)
+-- (347,687)
+-- cycle) ;
+P2 := ((60,400)
+.. controls (60,561) and (187,687)
+.. (347,687)
+.. controls (508,687) and (635,561)
+.. (635,400)
+.. controls (635,239) and (508,113)
+.. (347,113)
+.. controls (187,113) and (60,239)
+.. (60,400)
+-- cycle) ;
+P4 := ((347,591)
+-- (382,465)
+-- (534,465)
+-- (414,380)
+-- (458,243)
+-- (347,330)
+-- (237,243)
+-- (282,380)
+-- (159,465)
+-- (312,465)
+-- cycle) ;
+drawthem 4;
+endchar;
+
+beginchar (169,436*FS#,750*FS#,0*FS#);
+"copyright";
+P1 := ((218,750)
+-- (50,248)
+-- (203,248)
+-- (203,30)
+-- (50,30)
+-- (50,0)
+-- (386,0)
+-- (386,30)
+-- (233,30)
+-- (233,248)
+-- (386,248)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (170,560*FS#,600*FS#,0*FS#);
+"trademark";
+P1 := ((480,200)
+-- (480,600)
+-- (80,600)
+-- (80,200)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (171,694*FS#,697*FS#,0*FS#);
+"acute";
+P1 := ((347,697)
+-- (260,471)
+-- (30,471)
+-- (206,329)
+-- (141,102)
+-- (347,236)
+-- (553,102)
+-- (478,329)
+-- (664,471)
+-- (435,471)
+-- cycle) ;
+P2 := ((417,457)
+-- (617,457)
+-- (617,455)
+-- (347,375)
+-- cycle) ;
+P3 := ((458,342)
+-- (526,142)
+-- (524,141)
+-- (347,375)
+-- cycle) ;
+P4 := ((347,255)
+-- (167,135)
+-- (165,140)
+-- (347,374)
+-- cycle) ;
+P5 := ((225,335)
+-- (76,452)
+-- (78,454)
+-- (347,375)
+-- cycle) ;
+P6 := ((273,462)
+-- (345,652)
+-- (347,652)
+-- (347,375)
+-- cycle) ;
+drawthem 6;
+endchar;
+
+beginchar (172,960*FS#,871*FS#,71*FS#);
+"dieresis";
+P1 := ((150,871)
+.. controls (37,871) and (-7,835)
+.. (1,757)
+-- (88,62)
+.. controls (99,-33) and (141,-71)
+.. (222,-71)
+-- (738,-71)
+.. controls (819,-71) and (859,-33)
+.. (872,62)
+-- (958,757)
+.. controls (968,835) and (923,871)
+.. (810,871)
+-- cycle) ;
+P2 := ((799,841)
+.. controls (905,841) and (934,807)
+.. (925,734)
+-- (845,84)
+.. controls (834,-5) and (807,-41)
+.. (731,-41)
+-- (230,-41)
+.. controls (154,-41) and (126,-5)
+.. (115,84)
+-- (34,734)
+.. controls (25,807) and (56,841)
+.. (162,841)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (173,596*FS#,750*FS#,0*FS#);
+"notequal";
+P1 := ((566,0)
+-- (566,80)
+-- (480,80)
+-- (406,507)
+-- (190,507)
+-- (116,80)
+-- (30,80)
+-- (30,0)
+-- cycle) ;
+P2 := ((459,557)
+-- (534,690)
+-- (534,750)
+-- (479,750)
+-- (436,675)
+-- (379,675)
+-- (347,750)
+-- (249,750)
+-- (217,675)
+-- (155,675)
+-- (116,742)
+-- (62,742)
+-- (62,688)
+-- (137,557)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (174,500*FS#,500*FS#,0*FS#);
+"AE";
+P1 := ((235,265)
+-- (0,265)
+-- (0,235)
+-- (235,235)
+-- (235,0)
+-- (265,0)
+-- (265,235)
+-- (500,235)
+-- (500,265)
+-- (265,265)
+-- (265,500)
+-- (235,500)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (175,854*FS#,880*FS#,80*FS#);
+"Oslash";
+P1 := ((0,122)
+.. controls (0,-80) and (189,-80)
+.. (426,-80)
+.. controls (665,-80) and (854,-80)
+.. (854,122)
+-- (854,272)
+.. controls (854,441) and (818,594)
+.. (722,679)
+.. controls (584,801) and (491,851)
+.. (426,880)
+.. controls (362,851) and (270,801)
+.. (131,679)
+.. controls (35,594) and (0,441)
+.. (0,272)
+-- cycle) ;
+P2 := ((30,280)
+.. controls (30,430) and (63,581)
+.. (152,661)
+.. controls (281,776) and (367,822)
+.. (426,850)
+.. controls (487,822) and (573,776)
+.. (701,661)
+.. controls (791,581) and (824,430)
+.. (824,280)
+-- (824,131)
+.. controls (824,-50) and (668,-50)
+.. (426,-50)
+.. controls (186,-50) and (30,-50)
+.. (30,131)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (176,560*FS#,650*FS#,0*FS#);
+"infinity";
+P1 := ((424,150)
+-- (569,400)
+-- (424,650)
+-- (136,650)
+-- (-9,400)
+-- (136,150)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (177,600*FS#,620*FS#,0*FS#);
+"plusminus";
+P1 := ((92,180)
+.. controls (215,241) and (386,241)
+.. (509,180)
+-- (520,192)
+.. controls (463,314) and (459,486)
+.. (520,608)
+-- (509,620)
+.. controls (386,559) and (215,559)
+.. (92,620)
+-- (80,608)
+.. controls (137,486) and (141,314)
+.. (80,192)
+-- cycle) ;
+P2 := ((300,526)
+.. controls (370,526) and (430,550)
+.. (485,587)
+-- (487,585)
+.. controls (450,529) and (426,471)
+.. (426,400)
+.. controls (426,328) and (450,271)
+.. (487,215)
+-- (485,214)
+.. controls (430,251) and (367,274)
+.. (300,274)
+.. controls (227,274) and (171,251)
+.. (116,214)
+-- (114,215)
+.. controls (151,271) and (174,326)
+.. (174,400)
+.. controls (174,466) and (151,529)
+.. (114,585)
+-- (116,587)
+.. controls (171,550) and (229,526)
+.. (300,526)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (178,590*FS#,750*FS#,0*FS#);
+"lessequal";
+P1 := ((560,0)
+-- (560,30)
+-- (359,30)
+-- (284,502)
+-- (344,502)
+.. controls (344,370) and (434,287)
+.. (538,287)
+-- (538,289)
+.. controls (474,317) and (420,399)
+.. (420,519)
+.. controls (420,639) and (474,720)
+.. (538,748)
+-- (538,750)
+.. controls (434,750) and (344,667)
+.. (344,532)
+-- (279,532)
+-- (268,600)
+-- (165,600)
+-- (165,30)
+-- (30,30)
+-- (30,0)
+-- cycle) ;
+P2 := ((459,519)
+.. controls (459,493) and (479,473)
+.. (503,473)
+.. controls (528,473) and (548,493)
+.. (548,519)
+.. controls (548,544) and (528,563)
+.. (503,563)
+.. controls (479,563) and (459,544)
+.. (459,519)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (179,632*FS#,677*FS#,0*FS#);
+"greaterequal";
+P1 := ((316,412)
+-- (52,677)
+-- (30,656)
+-- (295,391)
+-- (149,245)
+-- (101,294)
+-- (70,262)
+.. controls (43,238) and (37,154)
+.. (58,133)
+.. controls (78,113) and (162,120)
+.. (187,145)
+-- (219,176)
+-- (170,224)
+-- (316,370)
+-- (462,224)
+-- (414,176)
+-- (445,145)
+.. controls (470,120) and (554,113)
+.. (574,133)
+.. controls (595,154) and (588,237)
+.. (562,262)
+-- (531,294)
+-- (483,245)
+-- (337,391)
+-- (602,656)
+-- (581,677)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (180,700*FS#,800*FS#,0*FS#);
+"yen";
+P1 := ((0,800)
+-- (0,300)
+.. controls (0,110) and (180,0)
+.. (350,0)
+.. controls (520,0) and (700,110)
+.. (700,300)
+-- (700,800)
+-- cycle) ;
+P2 := ((670,770)
+-- (670,308)
+.. controls (670,138) and (505,30)
+.. (350,30)
+.. controls (195,30) and (30,138)
+.. (30,308)
+-- (30,770)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (181,626*FS#,579*FS#,0*FS#);
+"mu";
+P1 := ((585,370)
+-- (35,370)
+-- (135,130)
+-- (485,130)
+-- cycle) ;
+P2 := ((385,48)
+.. controls (385,21) and (406,0)
+.. (433,0)
+.. controls (459,0) and (480,21)
+.. (480,48)
+.. controls (480,75) and (459,95)
+.. (433,95)
+.. controls (406,95) and (385,75)
+.. (385,48)
+-- cycle) ;
+P3 := ((140,48)
+.. controls (140,21) and (161,0)
+.. (188,0)
+.. controls (214,0) and (235,21)
+.. (235,48)
+.. controls (235,75) and (214,95)
+.. (188,95)
+.. controls (161,95) and (140,75)
+.. (140,48)
+-- cycle) ;
+P4 := ((585,405)
+.. controls (601,451) and (601,479)
+.. (571,479)
+.. controls (554,479) and (537,478)
+.. (523,471)
+.. controls (540,505) and (534,531)
+.. (495,531)
+.. controls (488,531) and (474,529)
+.. (460,523)
+.. controls (456,548) and (439,579)
+.. (391,579)
+.. controls (367,579) and (330,575)
+.. (324,535)
+.. controls (298,550) and (258,543)
+.. (244,509)
+.. controls (229,542) and (201,554)
+.. (155,554)
+.. controls (112,554) and (70,518)
+.. (93,459)
+.. controls (84,465) and (68,470)
+.. (47,470)
+.. controls (36,470) and (31,460)
+.. (30,446)
+.. controls (29,433) and (32,417)
+.. (35,405)
+-- cycle) ;
+drawthem 4;
+endchar;
+
+beginchar (182,760*FS#,412*FS#,0*FS#);
+"partialdiff";
+P1 := ((496,172)
+-- (549,0)
+-- (618,0)
+-- (564,172)
+-- (730,172)
+-- (730,212)
+-- (552,212)
+-- (501,372)
+-- (601,372)
+-- (601,412)
+-- (159,412)
+-- (159,372)
+-- (259,372)
+-- (208,212)
+-- (30,212)
+-- (30,172)
+-- (196,172)
+-- (142,0)
+-- (211,0)
+-- (264,172)
+-- cycle) ;
+P2 := ((277,212)
+-- (327,372)
+-- (433,372)
+-- (483,212)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (183,694*FS#,698*FS#,0*FS#);
+"summation";
+P1 := ((509,400)
+-- (576,512)
+.. controls (581,508) and (587,507)
+.. (596,507)
+.. controls (610,507) and (625,522)
+.. (625,541)
+.. controls (625,560) and (613,575)
+.. (593,575)
+.. controls (572,575) and (554,558)
+.. (554,541)
+-- (425,541)
+-- (362,636)
+.. controls (371,640) and (381,650)
+.. (381,667)
+.. controls (381,683) and (366,698)
+.. (347,698)
+.. controls (328,698) and (313,683)
+.. (313,667)
+.. controls (313,650) and (323,640)
+.. (332,636)
+-- (269,541)
+-- (140,541)
+.. controls (140,558) and (122,575)
+.. (101,575)
+.. controls (81,575) and (69,560)
+.. (69,541)
+.. controls (69,522) and (84,507)
+.. (98,507)
+.. controls (107,507) and (113,508)
+.. (118,512)
+-- (185,400)
+-- (118,289)
+.. controls (113,293) and (107,294)
+.. (98,294)
+.. controls (84,294) and (69,279)
+.. (69,260)
+.. controls (69,241) and (81,225)
+.. (101,225)
+.. controls (122,225) and (140,243)
+.. (140,260)
+-- (269,260)
+-- (332,165)
+.. controls (323,161) and (313,151)
+.. (313,133)
+.. controls (313,117) and (328,103)
+.. (347,103)
+.. controls (366,103) and (381,117)
+.. (381,133)
+.. controls (381,151) and (371,161)
+.. (362,165)
+-- (425,260)
+-- (554,260)
+.. controls (554,243) and (572,225)
+.. (593,225)
+.. controls (613,225) and (625,241)
+.. (625,260)
+.. controls (625,279) and (610,294)
+.. (596,294)
+.. controls (587,294) and (581,293)
+.. (576,289)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (184,1200*FS#,1000*FS#,200*FS#);
+"product";
+P1 := ((1200,389)
+-- (1200,409)
+-- (883,409)
+.. controls (880,559) and (762,678)
+.. (610,682)
+-- (610,1000)
+-- (590,1000)
+-- (590,682)
+.. controls (438,678) and (320,559)
+.. (317,409)
+-- (0,409)
+-- (0,389)
+-- (317,389)
+.. controls (321,240) and (440,120)
+.. (590,116)
+-- (590,-200)
+-- (610,-200)
+-- (610,116)
+.. controls (760,120) and (879,240)
+.. (883,389)
+-- cycle) ;
+P2 := ((590,136)
+.. controls (450,139) and (340,250)
+.. (337,389)
+-- (590,389)
+-- cycle) ;
+P3 := ((610,389)
+-- (863,389)
+.. controls (860,250) and (750,139)
+.. (610,136)
+-- cycle) ;
+P4 := ((610,662)
+.. controls (752,659) and (861,549)
+.. (863,409)
+-- (610,409)
+-- cycle) ;
+P5 := ((590,409)
+-- (337,409)
+.. controls (339,549) and (448,659)
+.. (590,662)
+-- cycle) ;
+drawthem 5;
+endchar;
+
+beginchar (185,1072*FS#,919*FS#,121*FS#);
+"pi";
+P1 := ((0,-74)
+.. controls (0,-124) and (21,-130)
+.. (58,-112)
+-- (1044,374)
+.. controls (1082,393) and (1083,413)
+.. (1044,432)
+-- (58,910)
+.. controls (21,928) and (0,922)
+.. (0,872)
+-- cycle) ;
+P2 := ((30,857)
+.. controls (30,880) and (51,880)
+.. (67,872)
+-- (993,424)
+.. controls (1024,409) and (1024,397)
+.. (993,382)
+-- (67,-74)
+.. controls (51,-82) and (30,-82)
+.. (30,-59)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (186,520*FS#,750*FS#,0*FS#);
+"integral";
+P1 := ((328,713)
+-- (301,631)
+-- (212,631)
+-- (286,576)
+-- (258,490)
+-- (328,543)
+-- (400,490)
+-- (373,576)
+-- (444,631)
+-- (355,631)
+-- cycle) ;
+P2 := ((420,0)
+-- (420,320)
+-- (275,320)
+-- (275,381)
+.. controls (315,384) and (353,406)
+.. (367,432)
+.. controls (340,423) and (308,418)
+.. (283,418)
+.. controls (208,418) and (147,491)
+.. (147,583)
+.. controls (147,675) and (208,748)
+.. (254,748)
+-- (254,750)
+.. controls (157,748) and (76,667)
+.. (76,564)
+.. controls (76,465) and (149,388)
+.. (245,381)
+-- (245,320)
+-- (100,320)
+-- (100,0)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (187,857*FS#,543*FS#,0*FS#);
+"ordfeminine";
+P1 := ((275,0)
+.. controls (305,0) and (336,22)
+.. (350,55)
+.. controls (364,22) and (395,0)
+.. (425,0)
+-- (574,0)
+.. controls (605,0) and (644,14)
+.. (666,34)
+-- (758,126)
+-- (758,190)
+.. controls (758,207) and (732,212)
+.. (712,212)
+-- (712,232)
+.. controls (712,242) and (702,242)
+.. (688,241)
+-- (545,229)
+-- (517,289)
+-- (827,517)
+-- (810,543)
+-- (499,314)
+-- (333,314)
+-- (322,337)
+-- (249,337)
+-- (249,305)
+.. controls (206,305) and (168,287)
+.. (165,261)
+-- (159,200)
+-- (44,180)
+.. controls (26,177) and (22,137)
+.. (32,112)
+-- (62,34)
+.. controls (69,16) and (112,0)
+.. (137,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (188,333*FS#,677*FS#,0*FS#);
+"ordmasculine";
+P1 := ((124,514)
+.. controls (133,504) and (130,489)
+.. (129,477)
+.. controls (105,473) and (89,475)
+.. (83,465)
+-- (37,391)
+.. controls (32,382) and (33,375)
+.. (36,368)
+-- (93,290)
+-- (62,227)
+-- (87,220)
+-- (79,146)
+-- (95,48)
+-- (62,31)
+.. controls (56,27) and (41,28)
+.. (41,13)
+.. controls (41,6) and (50,0)
+.. (61,0)
+.. controls (76,0) and (87,6)
+.. (92,10)
+-- (105,16)
+-- (111,14)
+-- (128,23)
+-- (129,41)
+-- (130,48)
+-- (130,154)
+-- (152,244)
+-- (154,244)
+-- (178,155)
+-- (165,53)
+-- (171,49)
+-- (172,27)
+-- (183,21)
+-- (189,23)
+-- (204,10)
+.. controls (205,9) and (222,0)
+.. (233,0)
+.. controls (245,0) and (252,4)
+.. (252,13)
+.. controls (252,23) and (241,26)
+.. (236,31)
+-- (207,57)
+-- (230,147)
+-- (208,260)
+-- (224,264)
+-- (210,322)
+-- (212,345)
+-- (235,345)
+.. controls (248,345) and (255,355)
+.. (253,365)
+-- (235,451)
+.. controls (232,464) and (220,469)
+.. (216,473)
+-- (243,527)
+-- (259,527)
+-- (312,638)
+.. controls (320,654) and (324,669)
+.. (321,677)
+.. controls (311,673) and (305,657)
+.. (296,640)
+-- (245,545)
+-- (227,545)
+-- (193,477)
+-- (174,477)
+.. controls (172,493) and (172,504)
+.. (179,514)
+-- (194,518)
+-- (194,543)
+.. controls (194,559) and (188,578)
+.. (152,578)
+.. controls (115,578) and (109,559)
+.. (109,543)
+-- (109,518)
+-- cycle) ;
+P2 := ((69,380)
+-- (90,414)
+.. controls (93,394) and (93,368)
+.. (88,343)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (189,700*FS#,456*FS#,0*FS#);
+"Omega";
+P1 := ((660,0)
+-- (660,456)
+-- (40,456)
+-- (40,0)
+-- cycle) ;
+P2 := ((610,426)
+-- (384,200)
+.. controls (359,175) and (341,175)
+.. (316,200)
+-- (90,426)
+-- cycle) ;
+P3 := ((90,30)
+-- (268,208)
+.. controls (303,173) and (326,149)
+.. (350,149)
+.. controls (374,149) and (397,173)
+.. (432,208)
+-- (610,30)
+-- cycle) ;
+P4 := ((70,406)
+-- (248,228)
+-- (70,50)
+-- cycle) ;
+P5 := ((630,406)
+-- (630,50)
+-- (452,228)
+-- cycle) ;
+drawthem 5;
+endchar;
+
+beginchar (190,500*FS#,458*FS#,0*FS#);
+"ae";
+P1 := ((250,271)
+-- (64,458)
+-- (43,436)
+-- (229,250)
+-- (43,64)
+-- (64,43)
+-- (250,229)
+-- (436,43)
+-- (457,64)
+-- (271,250)
+-- (457,436)
+-- (436,458)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (191,800*FS#,800*FS#,0*FS#);
+"oslash";
+P1 := ((234,800)
+-- (0,566)
+-- (0,235)
+-- (234,0)
+-- (566,0)
+-- (800,235)
+-- (800,566)
+-- (566,800)
+-- cycle) ;
+P2 := ((553,770)
+-- (770,554)
+-- (770,247)
+-- (553,30)
+-- (246,30)
+-- (30,247)
+-- (30,554)
+-- (246,770)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (192,696*FS#,718*FS#,0*FS#);
+"questiondown";
+P1 := ((592,607)
+-- (556,642)
+-- (460,546)
+.. controls (437,570) and (404,582)
+.. (373,582)
+-- (373,718)
+-- (323,718)
+-- (323,582)
+.. controls (293,582) and (254,572)
+.. (234,552)
+-- (138,647)
+-- (103,612)
+-- (198,516)
+.. controls (170,488) and (167,447)
+.. (166,425)
+-- (30,425)
+-- (30,375)
+-- (166,375)
+.. controls (167,340) and (178,312)
+.. (203,289)
+-- (107,193)
+-- (143,157)
+-- (239,253)
+.. controls (262,231) and (293,218)
+.. (323,218)
+-- (323,82)
+-- (373,82)
+-- (373,218)
+.. controls (403,219) and (433,234)
+.. (457,258)
+-- (552,162)
+-- (588,198)
+-- (492,294)
+.. controls (512,316) and (530,340)
+.. (530,375)
+-- (666,375)
+-- (666,425)
+-- (530,425)
+.. controls (530,447) and (519,488)
+.. (495,511)
+-- cycle) ;
+P2 := ((216,400)
+.. controls (216,474) and (274,532)
+.. (348,532)
+.. controls (422,532) and (480,474)
+.. (480,400)
+.. controls (480,326) and (422,268)
+.. (348,268)
+.. controls (274,268) and (216,326)
+.. (216,400)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (193,560*FS#,650*FS#,0*FS#);
+"exclamdown";
+P1 := ((30,400)
+.. controls (30,260) and (140,150)
+.. (280,150)
+.. controls (420,150) and (530,260)
+.. (530,400)
+.. controls (530,540) and (420,650)
+.. (280,650)
+.. controls (140,650) and (30,540)
+.. (30,400)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (194,820*FS#,1000*FS#,200*FS#);
+"logicalnot";
+P1 := ((0,-129)
+.. controls (0,-165) and (30,-200)
+.. (60,-200)
+-- (760,-200)
+.. controls (790,-200) and (820,-165)
+.. (820,-129)
+-- (820,929)
+.. controls (820,965) and (790,1002)
+.. (760,1000)
+-- (60,1000)
+.. controls (30,1000) and (0,965)
+.. (0,929)
+-- cycle) ;
+P2 := ((30,910)
+.. controls (30,944) and (50,970)
+.. (78,970)
+-- (742,970)
+.. controls (770,971) and (790,944)
+.. (790,910)
+-- (790,-111)
+.. controls (790,-145) and (770,-170)
+.. (742,-170)
+-- (78,-170)
+.. controls (50,-170) and (30,-145)
+.. (30,-111)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (195,520*FS#,750*FS#,0*FS#);
+"radical";
+P1 := ((260,750)
+-- (195,643)
+-- (72,643)
+-- (135,536)
+-- (72,429)
+-- (196,429)
+-- (260,320)
+-- (326,429)
+-- (448,429)
+-- (385,536)
+-- (448,643)
+-- (326,643)
+-- cycle) ;
+P2 := ((100,0)
+-- (420,0)
+-- (420,320)
+-- (100,320)
+-- cycle) ;
+P3 := ((260,708)
+-- (297,643)
+-- (223,643)
+-- cycle) ;
+P4 := ((335,623)
+-- (412,623)
+-- (373,559)
+-- cycle) ;
+P5 := ((373,513)
+-- (410,449)
+-- (336,449)
+-- cycle) ;
+P6 := ((299,429)
+-- (260,366)
+-- (225,429)
+-- cycle) ;
+P7 := ((186,449)
+-- (111,449)
+-- (148,513)
+-- cycle) ;
+P8 := ((148,559)
+-- (110,623)
+-- (187,623)
+-- cycle) ;
+P9 := ((213,623)
+-- (309,623)
+-- (360,536)
+-- (310,449)
+-- (212,449)
+-- (161,536)
+-- cycle) ;
+drawthem 9;
+endchar;
+
+beginchar (196,944*FS#,489*FS#,0*FS#);
+"florin";
+P1 := ((570,377)
+-- (331,377)
+-- (350,437)
+-- (341,454)
+-- (351,463)
+-- (415,463)
+-- (415,489)
+-- (338,489)
+-- (308,462)
+-- (326,436)
+-- (283,307)
+.. controls (262,321) and (236,332)
+.. (196,332)
+.. controls (103,332) and (30,259)
+.. (30,166)
+.. controls (30,73) and (103,0)
+.. (196,0)
+.. controls (282,0) and (362,76)
+.. (362,166)
+.. controls (362,230) and (337,273)
+.. (303,298)
+-- (313,325)
+-- (481,139)
+.. controls (476,130) and (476,120)
+.. (480,112)
+.. controls (485,103) and (493,97)
+.. (505,96)
+-- (511,59)
+-- (498,55)
+-- (500,39)
+-- (544,48)
+-- (541,64)
+-- (528,62)
+-- (520,100)
+.. controls (526,107) and (523,106)
+.. (524,114)
+-- (583,124)
+.. controls (605,44) and (666,0)
+.. (748,0)
+.. controls (840,0) and (914,73)
+.. (914,166)
+.. controls (914,259) and (840,332)
+.. (748,332)
+.. controls (699,334) and (668,316)
+.. (654,305)
+-- (600,369)
+-- (606,391)
+.. controls (618,391) and (636,391)
+.. (647,402)
+-- (663,420)
+.. controls (667,426) and (663,434)
+.. (657,434)
+-- (523,424)
+.. controls (514,423) and (513,418)
+.. (516,413)
+.. controls (526,399) and (563,394)
+.. (575,391)
+-- cycle) ;
+P2 := ((589,338)
+-- (630,288)
+.. controls (600,261) and (575,202)
+.. (577,152)
+-- (526,143)
+-- cycle) ;
+P3 := ((475,191)
+-- (484,191)
+-- (484,171)
+-- (320,351)
+-- (566,351)
+-- (506,168)
+-- (499,168)
+-- (499,191)
+-- (508,191)
+-- (508,203)
+-- (475,203)
+-- cycle) ;
+P4 := ((276,216)
+-- (292,262)
+.. controls (310,244) and (328,211)
+.. (328,166)
+.. controls (328,91) and (265,32)
+.. (196,34)
+.. controls (122,34) and (64,91)
+.. (64,166)
+.. controls (64,241) and (122,298)
+.. (196,298)
+.. controls (239,297) and (263,287)
+.. (273,276)
+-- (257,229)
+-- (201,176)
+-- (190,180)
+.. controls (177,180) and (167,172)
+.. (167,158)
+.. controls (167,146) and (177,138)
+.. (188,138)
+.. controls (200,138) and (205,145)
+.. (207,150)
+-- cycle) ;
+P5 := ((708,192)
+.. controls (716,182) and (717,176)
+.. (708,174)
+-- (611,158)
+.. controls (611,204) and (627,243)
+.. (652,262)
+-- cycle) ;
+P6 := ((675,278)
+.. controls (690,290) and (711,298)
+.. (748,298)
+.. controls (822,298) and (880,241)
+.. (880,166)
+.. controls (880,91) and (822,34)
+.. (748,34)
+.. controls (675,37) and (626,84)
+.. (615,130)
+-- (745,152)
+.. controls (757,155) and (763,158)
+.. (763,164)
+.. controls (763,169) and (754,178)
+.. (751,183)
+-- cycle) ;
+drawthem 6;
+endchar;
+
+beginchar (197,424*FS#,739*FS#,0*FS#);
+"approxequal";
+P1 := ((300,530)
+.. controls (290,566) and (288,591)
+.. (288,619)
+-- (288,683)
+.. controls (296,685) and (303,688)
+.. (309,692)
+-- (309,716)
+.. controls (309,731) and (256,739)
+.. (212,739)
+.. controls (168,739) and (115,731)
+.. (115,717)
+-- (115,692)
+.. controls (121,688) and (128,685)
+.. (136,683)
+-- (136,619)
+.. controls (136,591) and (134,566)
+.. (124,530)
+-- (38,211)
+.. controls (33,192) and (30,173)
+.. (30,160)
+.. controls (30,146) and (37,137)
+.. (52,122)
+.. controls (67,107) and (111,61)
+.. (212,61)
+.. controls (313,61) and (357,107)
+.. (372,122)
+.. controls (387,137) and (394,146)
+.. (394,160)
+.. controls (394,173) and (391,192)
+.. (386,211)
+-- cycle) ;
+P2 := ((263,611)
+.. controls (263,586) and (263,563)
+.. (272,530)
+-- (347,239)
+.. controls (352,221) and (361,198)
+.. (361,181)
+.. controls (361,168) and (358,149)
+.. (337,131)
+.. controls (319,120) and (291,91)
+.. (212,91)
+.. controls (133,91) and (105,120)
+.. (87,131)
+.. controls (66,149) and (63,168)
+.. (63,181)
+.. controls (63,198) and (72,221)
+.. (77,239)
+-- (152,530)
+.. controls (161,563) and (161,586)
+.. (161,611)
+-- (161,689)
+.. controls (155,691) and (150,694)
+.. (145,698)
+-- (145,707)
+.. controls (145,717) and (183,720)
+.. (212,720)
+.. controls (241,720) and (279,717)
+.. (279,707)
+-- (279,698)
+.. controls (274,694) and (269,691)
+.. (263,689)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (198,810*FS#,814*FS#,14*FS#);
+"Delta";
+P1 := ((521,-14)
+-- (521,54)
+-- (445,114)
+-- (445,328)
+-- (780,207)
+-- (780,291)
+-- (445,499)
+-- (445,776)
+.. controls (445,804) and (422,814)
+.. (405,814)
+.. controls (388,814) and (365,804)
+.. (365,776)
+-- (365,499)
+-- (30,291)
+-- (30,207)
+-- (365,328)
+-- (365,114)
+-- (289,54)
+-- (289,-14)
+-- (405,39)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (199,900*FS#,717*FS#,0*FS#);
+"guillemotleft";
+P1 := ((763,491)
+-- (631,624)
+-- (631,315)
+-- (229,717)
+-- (130,618)
+-- (532,216)
+-- (223,216)
+-- (356,84)
+-- (763,84)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (200,900*FS#,688*FS#,0*FS#);
+"guillemotright";
+P1 := ((859,400)
+-- (571,688)
+-- (384,688)
+-- (602,470)
+-- (34,470)
+-- (34,330)
+-- (602,330)
+-- (384,112)
+-- (571,112)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (201,620*FS#,679*FS#,0*FS#);
+"ellipsis";
+P1 := ((590,122)
+-- (311,679)
+-- (30,122)
+-- cycle) ;
+P2 := ((64,142)
+-- (310,635)
+-- (556,142)
+-- cycle) ;
+P3 := ((255,302)
+.. controls (255,271) and (279,247)
+.. (310,247)
+.. controls (341,247) and (365,271)
+.. (365,302)
+.. controls (365,333) and (341,357)
+.. (310,357)
+.. controls (279,357) and (255,333)
+.. (255,302)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (202,1092*FS#,946*FS#,147*FS#);
+"nbspace";
+P1 := ((17,436)
+.. controls (-5,413) and (-5,385)
+.. (17,364)
+-- (512,-131)
+.. controls (533,-152) and (561,-152)
+.. (582,-131)
+-- (1077,364)
+.. controls (1099,385) and (1099,414)
+.. (1077,435)
+-- (582,930)
+.. controls (561,951) and (533,952)
+.. (512,930)
+-- cycle) ;
+P2 := ((0,0)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (203,960*FS#,871*FS#,71*FS#);
+"Agrave";
+P1 := ((150,871)
+.. controls (37,871) and (-7,835)
+.. (1,757)
+-- (88,62)
+.. controls (99,-33) and (141,-71)
+.. (222,-71)
+-- (738,-71)
+.. controls (819,-71) and (859,-33)
+.. (872,62)
+-- (958,757)
+.. controls (968,835) and (923,871)
+.. (810,871)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (204,1020*FS#,810*FS#,10*FS#);
+"Atilde";
+P1 := ((60,810)
+.. controls (30,810) and (0,780)
+.. (0,750)
+-- (0,50)
+.. controls (0,20) and (30,-8)
+.. (60,-10)
+-- (960,-10)
+.. controls (990,-10) and (1020,20)
+.. (1020,50)
+-- (1020,750)
+.. controls (1020,780) and (990,810)
+.. (960,810)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (205,854*FS#,880*FS#,80*FS#);
+"Otilde";
+P1 := ((0,122)
+.. controls (0,-80) and (189,-80)
+.. (426,-80)
+.. controls (665,-80) and (854,-80)
+.. (854,122)
+-- (854,272)
+.. controls (854,441) and (818,594)
+.. (722,679)
+.. controls (584,801) and (491,851)
+.. (426,880)
+.. controls (362,851) and (270,801)
+.. (131,679)
+.. controls (35,594) and (0,441)
+.. (0,272)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (206,560*FS#,500*FS#,0*FS#);
+"OE";
+P1 := ((530,0)
+-- (530,500)
+-- (30,500)
+-- (30,0)
+-- cycle) ;
+P2 := ((500,30)
+-- (413,30)
+-- (413,470)
+-- (500,470)
+-- cycle) ;
+P3 := ((265,30)
+-- (177,30)
+-- (177,470)
+-- (265,470)
+-- cycle) ;
+P4 := ((383,30)
+-- (295,30)
+-- (295,470)
+-- (383,470)
+-- cycle) ;
+P5 := ((147,30)
+-- (60,30)
+-- (60,470)
+-- (147,470)
+-- cycle) ;
+drawthem 5;
+endchar;
+
+beginchar (207,686*FS#,750*FS#,0*FS#);
+"oe";
+P1 := ((626,0)
+-- (626,50)
+-- (50,50)
+-- (50,0)
+-- cycle) ;
+P2 := ((338,750)
+-- (30,482)
+-- (646,482)
+-- cycle) ;
+P3 := ((533,80)
+-- (533,181)
+.. controls (533,236) and (626,221)
+.. (626,320)
+.. controls (626,397) and (573,452)
+.. (486,452)
+-- (191,452)
+.. controls (104,452) and (50,397)
+.. (50,320)
+.. controls (50,221) and (143,236)
+.. (143,181)
+-- (143,80)
+-- cycle) ;
+P4 := ((193,130)
+-- (193,185)
+.. controls (193,233) and (295,200)
+.. (295,304)
+.. controls (295,341) and (265,377)
+.. (219,377)
+.. controls (173,377) and (150,343)
+.. (150,311)
+.. controls (150,290) and (161,281)
+.. (174,281)
+.. controls (186,281) and (200,290)
+.. (200,304)
+.. controls (200,317) and (203,334)
+.. (223,334)
+.. controls (239,334) and (245,318)
+.. (245,299)
+.. controls (245,271) and (218,248)
+.. (180,248)
+.. controls (137,248) and (100,280)
+.. (100,323)
+.. controls (100,366) and (137,399)
+.. (180,402)
+-- (497,402)
+.. controls (540,399) and (576,366)
+.. (576,323)
+.. controls (576,280) and (540,248)
+.. (497,248)
+.. controls (460,248) and (431,271)
+.. (431,299)
+.. controls (431,318) and (438,334)
+.. (454,334)
+.. controls (475,334) and (476,317)
+.. (476,304)
+.. controls (476,290) and (491,281)
+.. (504,281)
+.. controls (516,281) and (526,290)
+.. (526,311)
+.. controls (526,343) and (505,377)
+.. (459,377)
+.. controls (413,377) and (381,341)
+.. (381,304)
+.. controls (381,200) and (483,233)
+.. (483,185)
+-- (483,130)
+-- cycle) ;
+drawthem 4;
+endchar;
+
+beginchar (208,807*FS#,668*FS#,0*FS#);
+"endash";
+P1 := ((432,397)
+-- (509,475)
+.. controls (574,409) and (691,382)
+.. (753,444)
+.. controls (798,489) and (771,553)
+.. (739,586)
+-- (681,644)
+.. controls (660,664) and (634,656)
+.. (619,641)
+-- (542,564)
+-- (509,596)
+.. controls (489,617) and (502,650)
+.. (516,668)
+.. controls (502,665) and (479,654)
+.. (468,632)
+.. controls (453,606) and (458,578)
+.. (477,560)
+-- (508,530)
+-- (404,426)
+-- (300,530)
+-- (329,561)
+.. controls (349,579) and (354,607)
+.. (339,632)
+.. controls (327,655) and (305,665)
+.. (291,668)
+.. controls (305,651) and (318,617)
+.. (298,597)
+-- (265,564)
+-- (189,641)
+.. controls (173,656) and (146,665)
+.. (127,644)
+-- (69,586)
+.. controls (35,554) and (9,489)
+.. (54,445)
+.. controls (116,383) and (233,409)
+.. (298,475)
+-- (375,397)
+-- (111,133)
+.. controls (168,141) and (209,175)
+.. (252,218)
+-- (404,369)
+-- (556,216)
+.. controls (598,175) and (640,141)
+.. (696,133)
+-- cycle) ;
+P2 := ((624,588)
+.. controls (640,604) and (662,609)
+.. (680,591)
+-- (709,562)
+.. controls (729,542) and (750,494)
+.. (728,473)
+.. controls (668,413) and (571,466)
+.. (537,501)
+-- cycle) ;
+P3 := ((272,501)
+.. controls (236,467) and (139,414)
+.. (79,475)
+.. controls (58,496) and (78,543)
+.. (99,564)
+-- (128,593)
+.. controls (146,610) and (168,605)
+.. (185,588)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (209,1260*FS#,553*FS#,0*FS#);
+"emdash";
+P1 := ((1230,0)
+-- (1230,228)
+-- (1005,228)
+-- (1005,83)
+-- (645,83)
+-- (645,358)
+-- (759,455)
+-- (615,553)
+-- (615,83)
+-- (255,83)
+-- (255,228)
+-- (30,228)
+-- (30,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (210,900*FS#,717*FS#,0*FS#);
+"quotedblleft";
+P1 := ((130,84)
+-- (537,84)
+-- (670,216)
+-- (361,216)
+-- (763,618)
+-- (664,717)
+-- (262,315)
+-- (262,624)
+-- (130,491)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (211,900*FS#,688*FS#,0*FS#);
+"quotedblright";
+P1 := ((34,400)
+-- (322,112)
+-- (509,112)
+-- (291,330)
+-- (859,330)
+-- (859,470)
+-- (291,470)
+-- (509,688)
+-- (322,688)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (212,900*FS#,813*FS#,12*FS#);
+"quoteleft";
+P1 := ((447,-12)
+-- (735,276)
+-- (735,463)
+-- (517,245)
+-- (517,813)
+-- (377,813)
+-- (377,245)
+-- (159,463)
+-- (159,276)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (213,900*FS#,813*FS#,12*FS#);
+"quoteright";
+P1 := ((447,813)
+-- (159,525)
+-- (159,338)
+-- (377,556)
+-- (377,-12)
+-- (517,-12)
+-- (517,556)
+-- (735,338)
+-- (735,525)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (214,655*FS#,590*FS#,0*FS#);
+"divide";
+P1 := ((435,380)
+-- (575,210)
+-- (620,210)
+-- (465,400)
+-- (620,590)
+-- (575,590)
+-- (435,420)
+-- (35,420)
+-- (35,380)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (215,520*FS#,750*FS#,0*FS#);
+"lozenge";
+P1 := ((420,0)
+-- (420,320)
+-- (275,320)
+-- (275,509)
+.. controls (363,509) and (433,555)
+.. (458,641)
+.. controls (338,560) and (288,628)
+.. (262,750)
+-- (260,750)
+.. controls (234,628) and (184,560)
+.. (64,641)
+.. controls (89,556) and (157,509)
+.. (245,509)
+-- (245,320)
+-- (100,320)
+-- (100,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (216,800*FS#,800*FS#,0*FS#);
+"ydieresis";
+P1 := ((234,800)
+-- (0,566)
+-- (0,235)
+-- (234,0)
+-- (566,0)
+-- (800,235)
+-- (800,566)
+-- (566,800)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (217,1063*FS#,921*FS#,122*FS#);
+"Ydieresis";
+P1 := ((30,748)
+.. controls (58,736) and (97,664)
+.. (97,608)
+.. controls (97,545) and (0,460)
+.. (0,299)
+.. controls (0,83) and (151,-88)
+.. (265,-88)
+.. controls (315,-88) and (344,-79)
+.. (367,-69)
+.. controls (391,-60) and (409,-50)
+.. (425,-50)
+.. controls (456,-50) and (499,-84)
+.. (531,-122)
+.. controls (563,-84) and (607,-50)
+.. (638,-50)
+.. controls (654,-50) and (672,-60)
+.. (696,-69)
+.. controls (719,-79) and (747,-88)
+.. (798,-88)
+.. controls (912,-88) and (1063,83)
+.. (1063,299)
+.. controls (1063,460) and (966,545)
+.. (966,608)
+.. controls (967,664) and (1006,736)
+.. (1034,748)
+-- (845,921)
+.. controls (790,862) and (737,824)
+.. (689,824)
+.. controls (637,824) and (557,862)
+.. (531,921)
+.. controls (505,862) and (427,824)
+.. (375,824)
+.. controls (327,824) and (274,862)
+.. (218,921)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (218,695*FS#,717*FS#,0*FS#);
+"fraction";
+P1 := ((30,400)
+.. controls (30,223) and (170,83)
+.. (347,83)
+.. controls (524,83) and (665,223)
+.. (665,400)
+.. controls (665,577) and (524,717)
+.. (347,717)
+.. controls (170,717) and (30,577)
+.. (30,400)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (219,1005*FS#,921*FS#,121*FS#);
+"currency";
+P1 := ((503,-121)
+.. controls (597,-121) and (767,-18)
+.. (853,90)
+.. controls (945,206) and (1005,346)
+.. (1005,508)
+.. controls (1005,663) and (930,835)
+.. (850,921)
+.. controls (793,882) and (735,860)
+.. (677,860)
+.. controls (619,860) and (561,882)
+.. (503,921)
+.. controls (446,882) and (387,860)
+.. (329,860)
+.. controls (271,860) and (213,882)
+.. (154,921)
+.. controls (75,835) and (0,663)
+.. (0,508)
+.. controls (0,346) and (59,206)
+.. (153,90)
+.. controls (238,-18) and (408,-121)
+.. (503,-121)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (220,820*FS#,1000*FS#,200*FS#);
+"guilsinglleft";
+P1 := ((0,-129)
+.. controls (0,-165) and (30,-200)
+.. (60,-200)
+-- (760,-200)
+.. controls (790,-200) and (820,-165)
+.. (820,-129)
+-- (820,929)
+.. controls (820,965) and (790,1002)
+.. (760,1000)
+-- (60,1000)
+.. controls (30,1000) and (0,965)
+.. (0,929)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (221,970*FS#,885*FS#,85*FS#);
+"guilsinglright";
+P1 := ((0,400)
+.. controls (0,129) and (213,-85)
+.. (485,-85)
+.. controls (757,-85) and (970,129)
+.. (970,400)
+.. controls (970,671) and (757,885)
+.. (485,885)
+.. controls (213,885) and (0,671)
+.. (0,400)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (222,1442*FS#,799*FS#,0*FS#);
+"fi";
+P1 := ((0,411)
+.. controls (0,194) and (311,22)
+.. (721,22)
+.. controls (1125,22) and (1442,194)
+.. (1442,411)
+.. controls (1442,628) and (1125,799)
+.. (721,799)
+.. controls (318,799) and (0,628)
+.. (0,411)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (223,1054*FS#,700*FS#,0*FS#);
+"fl";
+P1 := ((896,0)
+-- (1054,154)
+-- (1052,156)
+-- (876,156)
+-- (1044,516)
+-- (1042,518)
+-- (740,270)
+-- (732,366)
+-- (612,180)
+-- (592,476)
+-- (494,296)
+-- (252,700)
+-- (250,698)
+-- (274,276)
+-- (186,326)
+-- (182,134)
+-- (2,232)
+-- (0,230)
+-- (173,0)
+-- cycle) ;
+P2 := ((184,20)
+-- (71,169)
+-- (73,169)
+-- (200,103)
+-- (203,293)
+-- (297,239)
+-- (273,624)
+-- (275,624)
+-- (495,257)
+-- (578,409)
+-- (598,123)
+-- (718,307)
+-- (726,232)
+-- (988,448)
+-- (988,450)
+-- (990,448)
+-- (844,136)
+-- (1007,136)
+-- (888,20)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (224,800*FS#,800*FS#,0*FS#);
+"daggerdbl";
+P1 := ((50,800)
+.. controls (20,800) and (0,780)
+.. (0,750)
+-- (0,50)
+.. controls (0,20) and (20,0)
+.. (50,0)
+-- (750,0)
+.. controls (780,0) and (800,20)
+.. (800,43)
+-- (800,750)
+.. controls (800,780) and (780,800)
+.. (750,800)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (225,700*FS#,921*FS#,122*FS#);
+"periodcentered";
+P1 := ((700,856)
+-- (568,921)
+.. controls (529,899) and (496,884)
+.. (459,884)
+.. controls (423,884) and (371,899)
+.. (350,921)
+.. controls (329,899) and (277,884)
+.. (241,884)
+.. controls (205,884) and (171,899)
+.. (132,921)
+-- (0,856)
+-- (0,606)
+.. controls (16,555) and (34,503)
+.. (34,451)
+.. controls (34,425) and (30,399)
+.. (23,373)
+.. controls (17,347) and (8,322)
+.. (0,296)
+.. controls (0,196) and (41,101)
+.. (106,21)
+.. controls (166,-52) and (285,-122)
+.. (350,-122)
+.. controls (416,-122) and (534,-52)
+.. (594,21)
+.. controls (658,101) and (700,196)
+.. (700,296)
+.. controls (684,347) and (666,399)
+.. (666,451)
+.. controls (666,477) and (671,503)
+.. (677,529)
+.. controls (684,555) and (692,581)
+.. (700,606)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (226,700*FS#,800*FS#,0*FS#);
+"quotesinglbase";
+P1 := ((0,800)
+-- (0,300)
+.. controls (0,110) and (180,0)
+.. (350,0)
+.. controls (520,0) and (700,110)
+.. (700,300)
+-- (700,800)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (227,695*FS#,584*FS#,0*FS#);
+"quotedblbase";
+P1 := ((531,400)
+.. controls (531,508) and (456,584)
+.. (348,584)
+.. controls (240,584) and (164,508)
+.. (164,400)
+.. controls (164,292) and (240,216)
+.. (348,216)
+.. controls (456,216) and (531,292)
+.. (531,400)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (228,694*FS#,697*FS#,0*FS#);
+"perthousand";
+P1 := ((347,697)
+-- (260,471)
+-- (30,471)
+-- (206,329)
+-- (141,102)
+-- (347,236)
+-- (553,102)
+-- (478,329)
+-- (664,471)
+-- (435,471)
+-- cycle) ;
+P2 := ((416,451)
+-- (595,451)
+-- (450,340)
+-- (510,157)
+-- (347,267)
+-- (184,157)
+-- (237,340)
+-- (99,451)
+-- (279,451)
+-- (347,634)
+-- cycle) ;
+P3 := ((347,528)
+-- (308,421)
+-- (201,421)
+-- (284,358)
+-- (252,252)
+-- (347,317)
+-- (442,252)
+-- (405,358)
+-- (493,421)
+-- (386,421)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (229,694*FS#,697*FS#,0*FS#);
+"Acircumflex";
+P1 := ((347,697)
+-- (265,473)
+-- (30,473)
+-- (222,336)
+-- (135,104)
+-- (347,249)
+-- (559,104)
+-- (475,336)
+-- (664,473)
+-- (430,473)
+-- cycle) ;
+P2 := ((250,367)
+.. controls (250,421) and (293,465)
+.. (347,465)
+.. controls (401,465) and (444,421)
+.. (444,367)
+.. controls (444,312) and (401,269)
+.. (347,269)
+.. controls (293,269) and (250,312)
+.. (250,367)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (230,695*FS#,584*FS#,0*FS#);
+"Ecircumflex";
+P1 := ((531,400)
+.. controls (531,508) and (456,584)
+.. (348,584)
+.. controls (240,584) and (164,508)
+.. (164,400)
+.. controls (164,292) and (240,216)
+.. (348,216)
+.. controls (456,216) and (531,292)
+.. (531,400)
+-- cycle) ;
+P2 := ((501,400)
+.. controls (501,309) and (438,246)
+.. (348,246)
+.. controls (257,246) and (194,309)
+.. (194,400)
+.. controls (194,491) and (257,554)
+.. (348,554)
+.. controls (438,554) and (501,491)
+.. (501,400)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (231,907*FS#,841*FS#,52*FS#);
+"Aacute";
+P1 := ((849,-52)
+.. controls (878,-52) and (907,-23)
+.. (907,7)
+-- (907,538)
+.. controls (907,572) and (888,593)
+.. (862,609)
+-- (478,833)
+.. controls (459,844) and (448,844)
+.. (429,833)
+-- (46,609)
+.. controls (19,593) and (0,572)
+.. (0,538)
+-- (0,7)
+.. controls (0,-23) and (29,-52)
+.. (58,-52)
+-- cycle) ;
+P2 := ((71,-22)
+.. controls (44,-22) and (30,-8)
+.. (30,20)
+-- (30,533)
+.. controls (30,565) and (48,580)
+.. (73,595)
+-- (431,804)
+.. controls (449,814) and (459,814)
+.. (477,804)
+-- (835,595)
+.. controls (859,580) and (877,565)
+.. (877,533)
+-- (877,20)
+.. controls (877,-8) and (863,-22)
+.. (836,-22)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (232,1000*FS#,894*FS#,94*FS#);
+"Edieresis";
+P1 := ((75,796)
+.. controls (29,796) and (0,775)
+.. (0,652)
+.. controls (0,439) and (211,129)
+.. (430,-66)
+.. controls (471,-103) and (529,-103)
+.. (570,-66)
+.. controls (789,129) and (1000,439)
+.. (1000,652)
+.. controls (1000,775) and (971,796)
+.. (925,796)
+-- (629,796)
+-- (629,859)
+.. controls (629,881) and (615,894)
+.. (593,894)
+-- (407,894)
+.. controls (384,894) and (371,881)
+.. (371,859)
+-- (371,796)
+-- cycle) ;
+P2 := ((401,766)
+-- (401,841)
+.. controls (401,857) and (408,864)
+.. (425,864)
+-- (575,864)
+.. controls (591,864) and (599,857)
+.. (599,841)
+-- (599,766)
+-- (899,766)
+.. controls (942,766) and (970,741)
+.. (970,637)
+.. controls (970,465) and (773,156)
+.. (563,-34)
+.. controls (521,-72) and (479,-72)
+.. (437,-34)
+.. controls (227,156) and (30,465)
+.. (30,637)
+.. controls (30,741) and (57,766)
+.. (100,766)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (233,434*FS#,840*FS#,40*FS#);
+"Egrave";
+P1 := ((404,-40)
+-- (404,840)
+-- (30,840)
+-- (30,-40)
+-- cycle) ;
+P2 := ((117,130)
+.. controls (117,186) and (161,230)
+.. (217,230)
+.. controls (273,230) and (317,186)
+.. (317,130)
+.. controls (317,74) and (273,30)
+.. (217,30)
+.. controls (161,30) and (117,74)
+.. (117,130)
+-- cycle) ;
+P3 := ((117,400)
+.. controls (117,456) and (161,500)
+.. (217,500)
+.. controls (273,500) and (317,456)
+.. (317,400)
+.. controls (317,344) and (273,300)
+.. (217,300)
+.. controls (161,300) and (117,344)
+.. (117,400)
+-- cycle) ;
+P4 := ((117,670)
+.. controls (117,726) and (161,770)
+.. (217,770)
+.. controls (273,770) and (317,726)
+.. (317,670)
+.. controls (317,614) and (273,570)
+.. (217,570)
+.. controls (161,570) and (117,614)
+.. (117,670)
+-- cycle) ;
+drawthem 4;
+endchar;
+
+beginchar (234,450*FS#,649*FS#,6*FS#);
+"Iacute";
+P1 := ((39,293)
+.. controls (39,255) and (68,176)
+.. (171,175)
+.. controls (144,194) and (104,224)
+.. (94,274)
+.. controls (92,291) and (88,313)
+.. (89,338)
+.. controls (90,364) and (93,390)
+.. (99,409)
+.. controls (58,376) and (39,331)
+.. (39,293)
+-- cycle) ;
+P2 := ((402,273)
+.. controls (424,353) and (387,454)
+.. (347,487)
+.. controls (356,439) and (355,401)
+.. (353,382)
+.. controls (351,349) and (312,291)
+.. (284,259)
+.. controls (273,247) and (251,213)
+.. (251,199)
+.. controls (251,190) and (248,184)
+.. (251,175)
+.. controls (283,192) and (317,192)
+.. (344,205)
+.. controls (363,214) and (396,244)
+.. (402,273)
+-- cycle) ;
+P3 := ((394,23)
+.. controls (410,23) and (420,38)
+.. (420,52)
+.. controls (420,67) and (414,83)
+.. (402,83)
+.. controls (388,83) and (375,67)
+.. (375,49)
+.. controls (375,38) and (378,23)
+.. (394,23)
+-- cycle) ;
+P4 := ((80,24)
+.. controls (80,42) and (73,55)
+.. (55,55)
+.. controls (38,55) and (30,42)
+.. (30,24)
+.. controls (30,6) and (38,-6)
+.. (55,-6)
+.. controls (73,-6) and (80,6)
+.. (80,24)
+-- cycle) ;
+P5 := ((182,52)
+.. controls (155,63) and (127,78)
+.. (100,78)
+-- (67,65)
+.. controls (93,50) and (94,29)
+.. (88,2)
+-- cycle) ;
+P6 := ((410,131)
+.. controls (417,151) and (406,165)
+.. (387,172)
+-- (336,160)
+.. controls (314,155) and (279,151)
+.. (243,132)
+.. controls (269,122) and (312,112)
+.. (338,109)
+-- cycle) ;
+P7 := ((195,132)
+.. controls (157,138) and (75,148)
+.. (64,150)
+.. controls (46,133) and (44,117)
+.. (49,96)
+.. controls (49,96) and (109,92)
+.. (140,83)
+.. controls (171,74) and (191,58)
+.. (228,54)
+.. controls (270,49) and (302,43)
+.. (317,42)
+.. controls (331,40) and (347,30)
+.. (365,28)
+.. controls (356,57) and (362,77)
+.. (384,87)
+-- (384,90)
+.. controls (361,90) and (314,99)
+.. (267,111)
+.. controls (240,117) and (219,128)
+.. (195,132)
+-- cycle) ;
+P8 := ((117,355)
+.. controls (117,255) and (165,205)
+.. (209,172)
+.. controls (215,201) and (235,236)
+.. (257,263)
+.. controls (267,276) and (294,306)
+.. (303,322)
+.. controls (314,341) and (327,360)
+.. (327,420)
+.. controls (327,501) and (273,616)
+.. (243,649)
+.. controls (243,605) and (231,580)
+.. (210,551)
+.. controls (195,532) and (117,429)
+.. (117,355)
+-- cycle) ;
+drawthem 8;
+endchar;
+
+beginchar (235,550*FS#,400*FS#,0*FS#);
+"Icircumflex";
+P1 := ((520,0)
+-- (520,110)
+-- (140,110)
+-- (140,290)
+-- (520,290)
+-- (520,400)
+-- (30,400)
+-- (30,0)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (236,520*FS#,750*FS#,0*FS#);
+"Idieresis";
+P1 := ((245,750)
+-- (245,215)
+.. controls (139,211) and (60,165)
+.. (60,108)
+.. controls (60,48) and (146,0)
+.. (260,0)
+.. controls (372,0) and (460,48)
+.. (460,108)
+.. controls (460,165) and (380,212)
+.. (275,215)
+-- (275,499)
+-- (420,625)
+-- cycle) ;
+P2 := ((275,185)
+.. controls (363,182) and (430,149)
+.. (430,108)
+.. controls (430,65) and (355,30)
+.. (260,30)
+.. controls (163,30) and (90,65)
+.. (90,108)
+.. controls (90,148) and (156,182)
+.. (245,185)
+-- (245,100)
+-- (275,100)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (237,548*FS#,649*FS#,0*FS#);
+"Igrave";
+P1 := ((515,197)
+.. controls (520,207) and (514,210)
+.. (507,214)
+-- (475,231)
+.. controls (490,263) and (518,327)
+.. (518,425)
+.. controls (518,522) and (425,649)
+.. (274,649)
+.. controls (123,649) and (30,522)
+.. (30,425)
+.. controls (30,327) and (58,263)
+.. (73,231)
+-- (41,214)
+.. controls (34,210) and (28,207)
+.. (33,197)
+-- (53,157)
+.. controls (56,151) and (60,148)
+.. (67,152)
+-- (150,196)
+.. controls (158,200) and (158,206)
+.. (154,214)
+.. controls (143,235) and (110,307)
+.. (110,363)
+.. controls (110,420) and (130,579)
+.. (274,579)
+.. controls (418,579) and (438,420)
+.. (438,363)
+.. controls (438,307) and (405,235)
+.. (394,214)
+.. controls (390,206) and (390,200)
+.. (398,196)
+-- (481,152)
+.. controls (488,148) and (492,151)
+.. (495,157)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (238,600*FS#,600*FS#,0*FS#);
+"Oacute";
+P1 := ((225,500)
+-- (125,600)
+-- (75,550)
+-- (155,470)
+-- (155,130)
+-- (75,50)
+-- (125,0)
+-- (225,100)
+-- cycle) ;
+P2 := ((375,100)
+-- (475,0)
+-- (525,50)
+-- (445,130)
+-- (445,470)
+-- (525,550)
+-- (475,600)
+-- (375,500)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (239,655*FS#,590*FS#,0*FS#);
+"Ocircumflex";
+P1 := ((601,210)
+.. controls (611,210) and (621,220)
+.. (621,230)
+-- (621,250)
+.. controls (621,260) and (611,270)
+.. (601,270)
+-- (301,270)
+.. controls (291,270) and (281,260)
+.. (281,250)
+-- (281,230)
+.. controls (281,220) and (291,210)
+.. (301,210)
+-- cycle) ;
+P2 := ((595,458)
+.. controls (586,486) and (555,510)
+.. (516,510)
+-- (401,510)
+-- (401,570)
+-- (433,570)
+.. controls (439,570) and (446,562)
+.. (456,562)
+-- (602,562)
+.. controls (612,562) and (620,569)
+.. (620,576)
+.. controls (620,583) and (612,590)
+.. (602,590)
+-- (456,590)
+.. controls (446,590) and (439,582)
+.. (433,582)
+-- (343,582)
+.. controls (337,582) and (330,590)
+.. (320,590)
+-- (174,590)
+.. controls (164,590) and (156,583)
+.. (156,576)
+.. controls (156,569) and (164,562)
+.. (174,562)
+-- (320,562)
+.. controls (330,562) and (337,570)
+.. (343,570)
+-- (376,570)
+-- (376,510)
+-- (149,510)
+.. controls (141,531) and (120,548)
+.. (92,548)
+.. controls (57,548) and (30,520)
+.. (30,485)
+.. controls (30,450) and (57,423)
+.. (92,423)
+.. controls (120,423) and (138,435)
+.. (149,448)
+-- (288,397)
+-- (307,350)
+.. controls (315,329) and (325,320)
+.. (341,320)
+-- (589,320)
+.. controls (629,320) and (630,349)
+.. (620,379)
+-- cycle) ;
+P3 := ((401,410)
+-- (401,490)
+-- (451,490)
+-- (451,410)
+-- cycle) ;
+P4 := ((471,410)
+-- (471,490)
+-- (521,490)
+-- (521,410)
+-- cycle) ;
+P5 := ((541,410)
+-- (541,490)
+.. controls (567,481) and (587,449)
+.. (591,410)
+-- cycle) ;
+P6 := ((98,510)
+.. controls (84,510) and (78,504)
+.. (78,494)
+.. controls (78,488) and (85,478)
+.. (94,473)
+-- (132,454)
+.. controls (124,444) and (110,438)
+.. (92,438)
+.. controls (65,438) and (45,459)
+.. (45,485)
+.. controls (45,512) and (65,533)
+.. (92,533)
+.. controls (112,533) and (125,524)
+.. (130,510)
+-- cycle) ;
+drawthem 6;
+endchar;
+
+beginchar (240,907*FS#,841*FS#,52*FS#);
+"apple";
+P1 := ((849,-52)
+.. controls (878,-52) and (907,-23)
+.. (907,7)
+-- (907,538)
+.. controls (907,572) and (888,593)
+.. (862,609)
+-- (478,833)
+.. controls (459,844) and (448,844)
+.. (429,833)
+-- (46,609)
+.. controls (19,593) and (0,572)
+.. (0,538)
+-- (0,7)
+.. controls (0,-23) and (29,-52)
+.. (58,-52)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (241,808*FS#,804*FS#,4*FS#);
+"Ograve";
+P1 := ((0,664)
+-- (264,400)
+-- (0,136)
+-- (140,-4)
+-- (404,260)
+-- (668,-4)
+-- (808,136)
+-- (544,400)
+-- (808,664)
+-- (668,804)
+-- (404,540)
+-- (140,804)
+-- cycle) ;
+P2 := ((140,762)
+-- (404,498)
+-- (668,761)
+-- (765,664)
+-- (502,400)
+-- (765,136)
+-- (668,39)
+-- (404,302)
+-- (140,39)
+-- (43,136)
+-- (306,400)
+-- (42,664)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (242,702*FS#,718*FS#,0*FS#);
+"Uacute";
+P1 := ((373,718)
+-- (323,718)
+-- (323,582)
+.. controls (249,585) and (167,506)
+.. (166,425)
+-- (30,425)
+-- (30,375)
+-- (166,375)
+.. controls (167,305) and (242,219)
+.. (323,218)
+-- (323,82)
+-- (373,82)
+-- (373,218)
+.. controls (451,231) and (521,298)
+.. (530,375)
+-- (666,375)
+-- (666,425)
+-- (530,425)
+.. controls (529,495) and (454,581)
+.. (373,582)
+-- cycle) ;
+P2 := ((216,400)
+.. controls (216,474) and (274,532)
+.. (348,532)
+.. controls (422,532) and (480,474)
+.. (480,400)
+.. controls (480,326) and (422,268)
+.. (348,268)
+.. controls (274,268) and (216,326)
+.. (216,400)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (243,808*FS#,804*FS#,4*FS#);
+"Ucircumflex";
+P1 := ((0,664)
+-- (264,400)
+-- (0,136)
+-- (140,-4)
+-- (404,260)
+-- (668,-4)
+-- (808,136)
+-- (544,400)
+-- (808,664)
+-- (668,804)
+-- (404,540)
+-- (140,804)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (244,626*FS#,526*FS#,0*FS#);
+"Ugrave";
+P1 := ((389,526)
+-- (237,526)
+-- (237,339)
+-- (50,339)
+-- (50,187)
+-- (237,187)
+-- (237,0)
+-- (389,0)
+-- (389,187)
+-- (576,187)
+-- (576,339)
+-- (389,339)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (245,520*FS#,750*FS#,0*FS#);
+"dotlessi";
+P1 := ((230,750)
+-- (230,539)
+-- (80,539)
+-- (80,484)
+-- (230,484)
+-- (230,0)
+-- (290,0)
+-- (290,484)
+-- (440,484)
+-- (440,539)
+-- (290,539)
+-- (290,750)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (246,1260*FS#,672*FS#,0*FS#);
+"circumflex";
+P1 := ((680,0)
+-- (680,27)
+.. controls (623,30) and (595,51)
+.. (565,122)
+.. controls (542,176) and (498,286)
+.. (498,454)
+.. controls (498,500) and (499,580)
+.. (519,643)
+.. controls (480,664) and (417,672)
+.. (355,672)
+.. controls (293,672) and (230,664)
+.. (191,643)
+.. controls (211,580) and (212,500)
+.. (212,454)
+.. controls (212,286) and (168,176)
+.. (145,122)
+.. controls (115,51) and (87,30)
+.. (30,27)
+-- (30,0)
+-- cycle) ;
+P2 := ((713,0)
+-- (1230,0)
+-- (1230,21)
+.. controls (1185,24) and (1162,41)
+.. (1139,97)
+.. controls (1120,140) and (1085,227)
+.. (1085,361)
+.. controls (1085,397) and (1086,461)
+.. (1102,511)
+.. controls (1071,528) and (1021,534)
+.. (972,534)
+.. controls (922,534) and (872,528)
+.. (841,511)
+.. controls (857,461) and (858,397)
+.. (858,361)
+.. controls (858,227) and (823,140)
+.. (805,97)
+.. controls (781,41) and (759,24)
+.. (713,21)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (247,510*FS#,750*FS#,0*FS#);
+"tilde";
+P1 := ((30,400)
+-- (255,50)
+-- (480,400)
+-- (255,750)
+-- cycle) ;
+P2 := ((453,410)
+-- (337,410)
+-- (285,670)
+-- (287,672)
+-- cycle) ;
+P3 := ((317,410)
+-- (193,410)
+-- (254,724)
+-- (256,724)
+-- cycle) ;
+P4 := ((173,410)
+-- (57,410)
+-- (223,672)
+-- (225,670)
+-- cycle) ;
+P5 := ((337,390)
+-- (453,390)
+-- (287,128)
+-- (285,130)
+-- cycle) ;
+P6 := ((193,390)
+-- (317,390)
+-- (256,76)
+-- (254,76)
+-- cycle) ;
+P7 := ((57,390)
+-- (173,390)
+-- (225,130)
+-- (223,128)
+-- cycle) ;
+drawthem 7;
+endchar;
+
+beginchar (248,914*FS#,750*FS#,0*FS#);
+"macron";
+P1 := ((780,50)
+-- (780,610)
+-- (714,610)
+.. controls (706,696) and (650,750)
+.. (579,750)
+.. controls (528,750) and (479,721)
+.. (456,674)
+.. controls (430,723) and (384,750)
+.. (335,750)
+.. controls (262,750) and (195,689)
+.. (195,610)
+-- (195,50)
+-- (30,50)
+-- (30,0)
+-- (884,0)
+-- (884,50)
+-- cycle) ;
+P2 := ((618,610)
+-- (618,50)
+-- (538,50)
+-- (538,610)
+-- (472,610)
+.. controls (472,661) and (518,720)
+.. (579,720)
+.. controls (634,720) and (678,670)
+.. (684,610)
+-- cycle) ;
+P3 := ((376,610)
+-- (376,50)
+-- (225,50)
+-- (225,610)
+.. controls (225,661) and (271,720)
+.. (332,720)
+.. controls (390,720) and (436,670)
+.. (442,610)
+-- cycle) ;
+drawthem 3;
+endchar;
+
+beginchar (249,890*FS#,700*FS#,0*FS#);
+"breve";
+P1 := ((780,260)
+-- (730,260)
+-- (730,700)
+-- (650,700)
+-- (650,260)
+-- (600,260)
+-- (600,440)
+-- (410,260)
+-- (410,440)
+-- (220,260)
+-- (220,440)
+-- (30,260)
+-- (30,0)
+-- (860,0)
+-- (860,700)
+-- (780,700)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (250,1042*FS#,280*FS#,0*FS#);
+"dotaccent";
+P1 := ((556,245)
+-- (385,245)
+-- (374,280)
+-- (227,280)
+-- (158,98)
+-- (30,98)
+-- (80,0)
+-- (976,0)
+-- (1012,98)
+-- (758,98)
+-- (732,181)
+-- (576,181)
+-- cycle) ;
+P2 := ((364,215)
+-- (539,215)
+-- (558,151)
+-- (708,151)
+-- (725,98)
+-- (191,98)
+-- (249,250)
+-- (352,250)
+-- cycle) ;
+P3 := ((514,151)
+-- (506,181)
+-- (377,181)
+-- (387,151)
+-- cycle) ;
+P4 := ((269,211)
+.. controls (269,199) and (279,189)
+.. (291,189)
+.. controls (304,189) and (314,199)
+.. (314,211)
+.. controls (314,224) and (304,234)
+.. (291,234)
+.. controls (279,234) and (269,224)
+.. (269,211)
+-- cycle) ;
+drawthem 4;
+endchar;
+
+beginchar (251,852*FS#,677*FS#,0*FS#);
+"ring";
+P1 := ((447,408)
+-- (546,507)
+-- (674,380)
+-- (822,529)
+-- (674,677)
+-- (426,430)
+-- (178,677)
+-- (30,529)
+-- (178,380)
+-- (306,507)
+-- (405,409)
+-- (141,144)
+-- (162,123)
+-- (426,387)
+-- (691,123)
+-- (712,144)
+-- cycle) ;
+P2 := ((179,635)
+-- (285,529)
+-- (179,423)
+-- (73,529)
+-- cycle) ;
+drawthem 2;
+endchar;
+
+beginchar (252,946*FS#,857*FS#,58*FS#);
+"cedilla";
+P1 := ((702,-58)
+.. controls (736,-58) and (742,-50)
+.. (753,-18)
+-- (931,539)
+.. controls (939,563) and (946,593)
+.. (946,619)
+.. controls (946,659) and (909,700)
+.. (867,718)
+-- (581,837)
+.. controls (553,849) and (513,857)
+.. (473,857)
+.. controls (433,857) and (393,849)
+.. (366,837)
+-- (79,718)
+.. controls (38,700) and (0,659)
+.. (0,619)
+.. controls (0,593) and (7,563)
+.. (15,539)
+-- (193,-18)
+.. controls (205,-50) and (210,-58)
+.. (245,-58)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (253,1154*FS#,899*FS#,100*FS#);
+"hungarumlaut";
+P1 := ((52,899)
+.. controls (0,899) and (-13,876)
+.. (12,830)
+-- (537,-66)
+.. controls (563,-111) and (591,-111)
+.. (617,-66)
+-- (1142,830)
+.. controls (1167,876) and (1154,899)
+.. (1102,899)
+-- cycle) ;
+drawthem 1;
+endchar;
+
+beginchar (254,1072*FS#,919*FS#,121*FS#);
+"ogonek";
+P1 := ((0,-74)
+.. controls (0,-124) and (21,-130)
+.. (58,-112)
+-- (1044,374)
+.. controls (1082,393) and (1083,413)
+.. (1044,432)
+-- (58,910)
+.. controls (21,928) and (0,922)
+.. (0,872)
+-- cycle) ;
+drawthem 1;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/oca/ocra.mf b/Master/texmf-dist/fonts/source/public/oca/ocra.mf
new file mode 100644
index 00000000000..373e9c3838f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/oca/ocra.mf
@@ -0,0 +1,2133 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% METAFONT-84 Definition for OCR-A Optical Character Recognition Font
+% (C) Copyright 1988, 1989 Richard B. Wales. All Rights Reserved.
+%
+% Coded by:
+%
+% Richard B. Wales
+% Computer Science Department
+% University of California, Los Angeles (UCLA)
+% Los Angeles, California 90024-1596 (USA)
+% +1 (213) 825-5683
+% wales@CS.UCLA.EDU
+%
+% Source of information:
+%
+% ANSI Standard X3.17-1977 (approved January 20, 1977, by the
+% American National Standards Institute, Inc.)
+%
+% Based on an earlier version by:
+%
+% Tor Lillqvist
+% Computing Services
+% Technical Research Centre of Finland
+% TML@FINGATE.BITNET; mcvax!santra!tml
+%
+% Terms of copyright:
+%
+% You may do anything you wish with this font definition, as
+% long as you retain the original copyright notice and credit
+% information intact in the source, and do not charge any fee
+% for distribution of either the source or any fonts derived
+% from it beyond a reasonable copying or communications charge.
+%
+% Disclaimer:
+%
+% While I have made every reasonable effort to make this font
+% definition correspond to the specifications in ANSI Standard
+% X3.17-1977, I do not guarantee that it conforms fully to all
+% official requirements for the OCR-A font, nor that the char-
+% acters produced from this definition will be usable by any
+% particular OCR hardware and/or software. It is the respon-
+% sibility of the user to determine the usability of this font
+% definition for his application. Use of this font definition
+% is totally at the user's own risk and without any warranty
+% whatsoever, express or implied. Neither the author nor his
+% employer will be responsible for any damages, including
+% secondary or consequential damages, arising out of the use of
+% this font definition.
+%
+% The four ASCII characters "Tilde", "Underline", "Grave Accent",
+% and "Vertical Bar" do not appear as part of ANSI X3.17-1977.
+% In order to make a complete ASCII character set, I supplemented
+% the standard with my own designs for these four characters.
+% Since these characters are not part of any standard, they will
+% presumably *NOT* be readable by any existing OCR-A equipment.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Much of the following material is copied essentially intact from
+% Lillqvist's work; specifically, the "join", "fill_corners", and
+% "angle_fill_corner" routines.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%
+% Miscellaneous stuff.
+%
+mode_setup;
+% letter_fit# := 1.25T#;
+letter_fit# := 0;
+define_whole_pixels (W, H, L, T, Y, R, letter_fit); % round off
+theta := (2*94/55)*(W/H); % 2-degree angle for some small letters
+def adjust_fit =
+ l := -letter_fit;
+ interim xoffset := -l;
+ charwd := charwd + 2letter_fit#;
+ r := l + hround (charwd*hppp);
+ w := r - letter_fit;
+enddef;
+extra_beginchar := extra_beginchar & "adjust_fit;";
+extra_endchar := extra_endchar & "penlabels (range 1 thru 20);";
+
+
+%
+% Curvature radii defined in ANSI X3.17 for various characters.
+%
+r1# = H#/16 * ((7H#)/(6W#) + sqrt(((7H#)/(6W#))**2 + 1));
+r2# = W#/8 * ((6W#)/(7H#) + sqrt(((6W#)/(7H#))**2 + 1));
+r3# = W#/8 * (1 - H#/(2W#) + sqrt((H#/(2W#))**2 + 1));
+r4# = H#/16 * (1 - (4W#)/(3H#) + sqrt(((4W#)/(3H#))**2 + 1));
+r5# = H#/16 * (1 - (5H#)/(6W#) + sqrt(((5H#)/(6W#))**2 + 1));
+r6# = W#/8 * (1 - (6W#)/(5H#) + sqrt(((6W#)/(5H#))**2 + 1));
+define_pixels (r1, r2, r3, r4, r5, r6);
+
+
+%
+% ocrpen:
+% A circular pen of diameter T; used for virtually all characters.
+%
+pickup pencircle scaled T;
+ocrpen := savepen;
+
+
+%
+% "ocrchar" macro:
+% Used at the start of almost every character definition. Note
+% that the point "z0" is the lower left-hand corner of most char-
+% acters. The height of the bounding box is equal to the full
+% height of the character (including stroke thickness), and the
+% characters are all centered left-to-right within the box. This
+% requires all character point definitions to be stated relative
+% to the point "z0".
+%
+def ocrchar (expr code) =
+ beginchar (code, R#, H#+T#, 0);
+ pickup ocrpen;
+ join_radius := T/2;
+ z0 = ((R-W)/2, T/2);
+enddef;
+
+
+%
+% "join" operator:
+% Joins two strokes so that the pen center curvature radius
+% is "join_radius". ("join_radius" must already be defined.)
+%
+tertiarydef p join q =
+ begingroup
+ % "ipq_" is the point where the paths "p" and "q" would cross.
+ pair ipq_;
+ ipq_ := p intersectionpoint q;
+
+ % "dirv0" is the angular direction at the end of "p";
+ % "dirv1" is the angular direction at the start of "q".
+ pair dirv[];
+ dirv0 = dir angle direction (length p) of p;
+ dirv1 = dir angle direction 0 of q;
+
+ % If the directions of "p" and "q" are close enough,
+ % just connect the paths without any fancy stuff.
+ if length (dirv1 - dirv0) < 1/10:
+ p .. q
+
+ % Otherwise, compute a joining of the required curvature.
+ else:
+ path par[];
+ k_ := if ypart (dirv1 rotated -angle dirv0) > 0:
+ 90 else: -90 fi;
+ forsuffixes $=0, 1:
+ par$ := ((ipq_ - (20join_radius*dirv$))--
+ (ipq_ + (20join_radius*dirv$)))
+ shifted ((join_radius*dirv$) rotated k_);
+ endfor;
+ numeric pt_, qt_;
+ (pt_, qt_) = par0 intersectiontimes par1;
+ if pt_ < 0:
+ errmessage "No intersection curvature center found";
+ fi
+ pair icc_; icc_ = point pt_ of par0;
+ numeric cp_, cpp_, cq_, cqp_;
+ (cp_, cpp_) = p intersectiontimes
+ (icc_--icc_+(2join_radius*dirv0 rotated -k_));
+ (cq_, cqp_) = q intersectiontimes
+ (icc_--icc_+(2join_radius*dirv1 rotated -k_));
+ subpath (0, cp_) of p ..
+ (icc_ + join_radius*unitvector(dirv0-dirv1)) ..
+ subpath (cq_, length q) of q
+ fi
+ endgroup
+enddef;
+
+
+%
+% "fill_corners" macro:
+% Fills in one or more corners to be sharp right-angle bends.
+%
+def fill_corners (text t) =
+ begingroup
+ forsuffixes $=t:
+ fill unitsquare shifted (-.5, -.5) scaled T shifted z$;
+ endfor
+ endgroup
+enddef;
+
+
+%
+% "angle_fill_corners" macro:
+% Fills in a corner to be a sharp bend, but not a right angle.
+% The parameters are three points that define the angle, with
+% the corner specified second.
+%
+def angle_fill_corner (suffix a, b, c) =
+ begingroup
+ save p;
+ path p.q, p.w, p.e, p.r;
+ p.q = (z.a--z.b+(z.b-z.a))
+ shifted (T/2*unitvector (z.b-z.a) rotated 90);
+ p.w = (z.a--z.b+(z.b-z.a))
+ shifted (T/2*unitvector (z.b-z.a) rotated -90);
+ p.e = (z.b-(z.c-z.b)--z.c)
+ shifted (T/2*unitvector (z.c-z.b) rotated 90);
+ p.r = (z.b-(z.c-z.b)--z.c)
+ shifted (T/2*unitvector (z.c-z.b) rotated -90);
+
+ save q;
+ pair q.u, q.l;
+ q.u = p.q intersectionpoint p.e;
+ q.l = p.w intersectionpoint p.r;
+
+ fill point 0 of p.q -- q.u -- point 1 of p.e --
+ point 1 of p.r -- q.l -- point 0 of p.w -- cycle;
+ endgroup
+enddef;
+
+
+%
+% "to_mid" macro:
+% Defines a path starting at the first point and continuing to
+% a point between the two points (slightly past the middle).
+%
+def to_mid (expr a, b) =
+ (a -- .6[a,b])
+enddef;
+
+
+%
+% "from_mid" macro:
+% Defines a path starting between two points (slightly before the
+% middle) and continuing to the second point.
+%
+def from_mid (expr a, b) =
+ (.4[a,b] -- b)
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% CHARACTER DEFINITIONS %
+% %
+% For debugging purposes, you may wish to remove the initial "%%%" %
+% from the "def" and "enddef" lines below. This will allow you to %
+% invoke the character definitions one at a time (e.g., to inspect %
+% them on a bit-mapped display). %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Digits.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_zero =
+ ocrchar ("0"); "Number ZERO";
+ z1 = (x0, y0); z2 = (x0+W, y1);
+ z3 = (x2, y0+H); z4 = (x1, y3);
+
+ draw from_mid (z1, z2)
+ join (z2 -- z3)
+ join to_mid (z3, z4);
+ draw from_mid (z3, z4)
+ join (z4 -- z1)
+ join to_mid (z1, z2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_one =
+ ocrchar ("1"); "Number ONE";
+ z1 = (x0, y0); z2 = (x0+W, y1); z3 = (x2, y0+3/8H);
+ z4 = .5[z1,z2]; z5 = (x4, y0+H); z6 = (x1, y5);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5 -- z6;
+ fill_corners (5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_two =
+ ocrchar ("2"); "Number TWO";
+ z1 = (x0+W, y0); z2 = (x0, y1); z3 = (x2, y0+1/2H);
+ z4 = (x1, y3); z5 = (x1, y0+H); z6 = (x2, y5);
+
+ draw (z1 -- z2 -- z3)
+ join (z3 -- z4)
+ join (z4 -- z5)
+ join (z5 -- z6);
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_three =
+ ocrchar ("3"); "Number THREE";
+ z1 = (x0, y0); z2 = (x0+W, y1); z3 = (x2, y0+1/2H);
+ z4 = (x0+1/4W, y3); z5 = (x0+W, y0+H); z6 = (x0, y5);
+
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z3, z5)
+ join (z5 -- z6);
+ join_radius := T;
+ draw from_mid (z2, z3)
+ join (z3 -- z4);
+ draw (z4 -- z3)
+ join to_mid (z3,z5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_four =
+ ocrchar ("4"); "Number FOUR";
+ z1 = (x0+13/16W, y0); z2 = (x1, y0+7/8H);
+ z3 = (x0+15/16W, y0+3/8H); z4 = (x0+1/16W, y3); z5 = (x4, y0+H);
+
+ draw z1 -- z2;
+ draw z3 -- z4 -- z5;
+ fill_corners (4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_five =
+ ocrchar ("5"); "Number FIVE";
+ z1 = (x0+W, y0+H); z2 = (x0+1/4W, y1); z3 = (x2, y0+1/2H);
+ z4 = (x1, y3); z5 = (x1, y0);
+ z6 = (x0+1/4W, y5); z7 = (x0, y0+1/16H);
+
+ draw z1 -- z2 -- to_mid (z3, z4);
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join to_mid (z5, z6);
+ join_radius := T;
+ draw from_mid (z5, z6)
+ join (z6 -- z7);
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_six =
+ ocrchar ("6"); "Number SIX";
+ z1 = (x0+1/8W, y0+H); z2 = (x0, y0+H); z3 = (x0, y0);
+ z4 = (x0+W, y0); z5 = (x0+W, y0+3/8H); z6 = (x0, y5);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_seven =
+ ocrchar ("7"); "Number SEVEN";
+ z1 = (x0, y0+15/16H); z2 = (x0, y0+H); z3 = (x0+W, y0+H);
+ z4 = (x0+W, y0+5/8H); z5 = (x0+1/2W, y0+3/8H); z6 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ fill_corners (3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_eight =
+ ocrchar ("8"); "Number EIGHT";
+ z1 = (x0+1/4W, y0+1/2H); z2 = (x1, y0+H);
+ z3 = (x0+3/4W, y0+H); z4 = (x3, y1);
+ z5 = (x0, y0+1/2H); z6 = (x0+W, y5);
+ z7 = (x0+W, y0); z8 = (x0, y0);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw from_mid (z5, z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7,z8)
+ join (z8 -- z5)
+ join to_mid (z5, z6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_nine =
+ ocrchar ("9"); "Number NINE";
+ z1 = (x0+7/8W, y0); z2 = (x0+W, y0); z3 = (x0+W, y0+H);
+ z4 = (x0, y0+H); z5 = (x0, y0+5/8H); z6 = (x0+W, y5);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Upper-case letters.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_a =
+ ocrchar ("A"); "Letter A";
+ z1 = (x0, y0); z2 = (x0+1/2W, y0+H); z3 = (x0+W, y0);
+ z4 = 1/4[z1,z2]; z5 = 1/4[z3,z2];
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_b =
+ ocrchar ("B"); "Letter B";
+ z1 = (x0, y0); z2 = (x0+W, y0); z3 = (x0+W, y0+1/2H);
+ z4 = (x0, y3); z5 = (x0+W, y0+H); z6 = (x0, y0+H);
+
+ join_radius := 3/2T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ draw (z6 -- z5)
+ join (z5 -- z3)
+ join (z3 -- z4);
+ draw z1 -- z6;
+ fill_corners (1, 6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_c =
+ ocrchar ("C"); "Letter C";
+ z1 = (x0+W, y0); z2 = (x0+3/8W, y0); z3 = (x0, y0+7/16H);
+ z4 = (x1, y0+H); z5 = (x2, y0+H); z6 = (x3, y0+9/16H);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw (z4 -- z5)
+ join to_mid (z5, z6);
+ join_radius := r1;
+ draw from_mid (z2, z3)
+ join (z3 -- z6)
+ join to_mid (z6, z5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_d =
+ ocrchar ("D"); "Letter D";
+ z1 = (x0, y0); z2 = (x0+5/8W, y0); z3 = (x0+W, y0+7/16H);
+ z4 = (x1, y0+H); z5 = (x2, y0+H); z6 = (x3, y0+9/16H);
+ z7 = (x0+1/4W, y0); z8 = (x7, y0+H);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw (z4 -- z5)
+ join to_mid (z5, z6);
+ join_radius := r1;
+ draw from_mid (z2, z3)
+ join (z3 -- z6)
+ join to_mid (z6, z5);
+ draw z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_e =
+ ocrchar ("E"); "Letter E";
+ z1 = (x0+W, y0); z2 = (x0, y0);
+ z3 = (x0, y0+H); z4 = (x0+W, y0+H);
+ z5 = (x0, y0+1/2H); z6 = (x0+1/2W, y5);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_f =
+ ocrchar ("F"); "Letter F";
+ z1 = (x0, y0); z2 = (x0, y0+H); z3 = (x0+W, y0+H);
+ z4 = (x0, y0+5/8H); z5 = (x0+3/4W, y4);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_g =
+ ocrchar ("G"); "Letter G";
+ z1 = (x0+W, y0+H); z2 = (x0+1/2W, y0+H); z3 = (x0, y0+5/8H);
+ z4 = (x0, y0); z5 = (x0+W, y0);
+ z6 = (x0+W, y0+3/8H); z7 = (x0+5/8W, y6);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ -- z7;
+ join_radius := 3/2T;
+ draw from_mid (z2, z3)
+ join to_mid (z3, z4);
+ fill_corners (6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_h =
+ ocrchar ("H"); "Letter H";
+ z1 = (x0, y0); z2 = (x0, y0+H);
+ z3 = (x0+W, y0); z4 = (x0+W, y0+H);
+ z5 = (x0, y0+1/2H); z6 = (x0+W, y5);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_i =
+ ocrchar ("I"); "Letter I";
+ z1 = (x0+1/2W, y0); z2 = (x1, y0+H);
+ z3 = (x0, y0); z4 = (x0+W, y0);
+ z5 = (x0, y0+H); z6 = (x0+W, y0+H);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_j =
+ ocrchar ("J"); "Letter J";
+ z1 = (x0+7/8W, y0+H); z2 = (x1, y0);
+ z3 = (x0+1/8W, y0); z4 = (x3, y0+3/8H);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_k =
+ ocrchar ("K"); "Letter K";
+ z1 = (x0, y0+H); z2 = (x0, y0);
+ z3 = (x0+W, y0+H); z4 = (x0, y0+1/2H); z5 = (x0+W, y0);
+
+ draw z1 -- z2;
+ draw z3 -- z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_l =
+ ocrchar ("L"); "Letter L";
+ z1 = (x0, y0+H); z2 = (x0, y0); z3 = (x0+W, y0);
+
+ draw z1 -- z2 -- z3;
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_m =
+ ocrchar ("M"); "Letter M";
+ z1 = (x0, y0); z2 = (x0, y0+H); z3 = (x0+1/8W, y0+H);
+ z4 = (x0+7/8W, y0+H); z5 = (x0+W, y0+H); z6 = (x0+W, y0);
+ z7 = (x0+1/2W, y0+11/16H); z8 = (x7, y0+5/8H);
+
+ draw z1 -- z2 -- z3 -- z7 -- z4 -- z5 -- z6;
+ draw z7 -- z8;
+ fill_corners (2, 5);
+ angle_fill_corner (2, 3, 7);
+ angle_fill_corner (7, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_n =
+ ocrchar ("N"); "Letter N";
+ z1 = (x0, y0); z2 = (x0, y0+H); z3 = (x0+1/8W, y0+H);
+ z4 = (x0+7/8W, y0); z5 = (x0+W, y0); z6 = (x0+W, y0+H);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ fill_corners (2, 5);
+ angle_fill_corner (2, 3, 4);
+ angle_fill_corner (3, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_o =
+ ocrchar ("O"); "Letter O";
+ z1 = (x0, y0+7/16H); z2 = (x1, y0+9/16H);
+ z3 = (x0+3/8W, y0+H); z4 = (x0+5/8W, y3);
+ z5 = (x0+W, y2); z6 = (x5, y1);
+ z7 = (x4, y0); z8 = (x3, y7);
+
+ join_radius := r1;
+ draw from_mid (z8, z1)
+ join (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join to_mid (z6, z7);
+ join_radius := r2;
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ draw from_mid (z6, z7)
+ join (z7 -- z8)
+ join to_mid (z8, z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_p =
+ ocrchar ("P"); "Letter P";
+ z1 = (x0, y0); z2 = (x0, y0+H);
+ z3 = (x0+W, y2); z4 = (x3, y0+7/16H);
+ z5 = (x0, y4);
+
+ join_radius := T;
+ draw z1 -- z2 -- to_mid (z2, z3);
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join (z4 -- z5);
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_q =
+ ocrchar ("Q"); "Letter Q";
+ z1 = (x0+1/4W, y0); z1a = (x0, y0); z2 = (x0, y0+5/8H);
+ z3 = (x0+3/4W, y0+H); z3a = (x0+W, y3); z4 = (x3a, y0+3/8H);
+ z5 = (x0+1/2W, y4); z6 = (x3, y0); z7 = (x4, y0);
+
+ join_radius := 3/2T;
+ draw from_mid (z1a, z2)
+ join to_mid (z2, z3);
+ draw from_mid (z3a, z4)
+ join to_mid (z4, z1);
+ join_radius := r3;
+ draw from_mid (z2, z3)
+ join (z3 -- z3a)
+ join to_mid (z3a, z4);
+ draw from_mid (z4, z1)
+ join (z1 -- z1a)
+ join to_mid (z1a, z2);
+ draw z5 -- z6 -- z7;
+ angle_fill_corner (5, 6, 7);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_r =
+ ocrchar ("R"); "Letter R";
+ z1 = (x0, y0); z2 = (x0, y0+H);
+ z3 = (x0+W, y2); z4 = (x3, y0+5/8H); z5 = (x0, y4);
+ z6 = (x0+3/8W, y4); z7 = (x3, y1);
+
+ join_radius := T;
+ draw z1 -- z2 -- to_mid (z2, z3);
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join (z4 -- z5);
+ draw z6 -- z7;
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_s =
+ ocrchar ("S"); "Letter S";
+ z1 = (x0, y0+1/8H); z1a = (x1, y0);
+ z1b = (x0+W, y1a); z2 = (x1b, y1);
+ z3 = (x1b, y0+7/8H); z3a = (x3, y0+H);
+ z3b = (x0, y3a); z4 = (x3b, y3);
+
+ join_radius := 1/8H;
+ draw (z1 -- z1a)
+ join to_mid (z1a, z1b);
+ draw (z3 -- z3a)
+ join to_mid (z3a, z3b);
+ join_radius := r4;
+ draw from_mid (z1a, z1b)
+ join (z1b -- z2)
+ join (z2 -- z4)
+ join (z4 -- z3b)
+ join to_mid (z3b, z3a);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_t =
+ ocrchar ("T"); "Letter T";
+ z1 = (x0, y0+7/8H); z2 = (x1, y0+H);
+ z3 = (x0+W, y2); z4 = (x3, y1);
+ z5 = (x0+1/2W, y2); z6 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_u =
+ ocrchar ("U"); "Letter U";
+ z1 = (x0, y0+H); z2 = (x0, y0);
+ z3 = (x0+W, y0); z4 = (x3, y1);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_v =
+ ocrchar ("V"); "Letter V";
+ z1 = (x0, y0+H); z2 = (x1, y0+3/4H); z3 = (x0+1/2W, y0);
+ z4 = (x0+W, y2); z5 = (x4, y1);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5;
+ angle_fill_corner (1, 2, 3);
+ angle_fill_corner (3, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_w =
+ ocrchar ("W"); "Letter W";
+ z1 = (x0, y0+H); z2 = (x0, y0+1/8H); z3 = (x0+1/8W, y0);
+ z4 = (x0+3/8W, y0); z5 = (x0+1/2W, y2); z6 = (x0+5/8W, y0);
+ z7 = (x0+7/8W, y0); z8 = (x0+W, y2); z9 = (x8, y1);
+ z10 = (x5, y0+5/8H);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6 -- z7 -- z8 -- z9;
+ draw z5 -- z10;
+ angle_fill_corner (1, 2, 3);
+ angle_fill_corner (7, 8, 9);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_x =
+ ocrchar ("X"); "Letter X";
+ z1 = (x0, y0+H); z2 = (x0+W, y0);
+ z3 = (x1, y2); z4 = (x2, y1);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_y =
+ ocrchar ("Y"); "Letter Y";
+ z1 = (x0, y0+H); z2 = (x1, y0+7/8H); z3 = (x0+1/2W, y0+1/2H);
+ z4 = (x0+W, y2); z5 = (x4, y1); z6 = (x3, y0);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5;
+ draw z3 -- z6;
+ angle_fill_corner (1, 2, 3);
+ angle_fill_corner (3, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_z =
+ ocrchar ("Z"); "Letter Z";
+ z1 = (x0, y0+H); z2 = (x0+W, y1);
+ z3 = (x0, y0); z4 = (x2, y0);
+
+ draw z1 -- z2 -- z3 -- z4;
+ fill_corners (2, 3);
+ unfill unitsquare
+ shifted (-1.5,-0.5) scaled T
+ rotated (angle (z2-z3) - 90) shifted z3;
+ unfill unitsquare
+ shifted (0.5,-0.5) scaled T
+ rotated (angle (z2-z3) - 90) shifted z2;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ASCII punctuation symbols.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%
+% Note that there is also a new "alternate" period shape.
+%
+%%% def draw_period =
+ ocrchar ("."); "Period";
+ z1 = (x0+3/8W, y0+3/16H); z2 = (x0+5/8W, y1);
+ z3 = (x2, y0+5/16H); z4 = (x1, y3);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% Note that there is also a new "alternate" comma shape.
+%
+%%% def draw_comma =
+ ocrchar (","); "Comma";
+ z1 = (x0+1/4W, y0+3/8H); z2 = (x0+3/4W, y1); z3 = (x2, y0);
+
+ draw z1 -- z2 -- z3;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_colon =
+ ocrchar (":"); "Colon";
+ z1 = (x0+3/8W, y0+3/16H); z2 = (x0+5/8W, y1);
+ z3 = (x2, y0+5/16H); z4 = (x1, y3);
+ z5 = (x1, y1+1/2H); z6 = (x2, y2+1/2H);
+ z7 = (x3, y3+1/2H); z8 = (x4, y4+1/2H);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ draw z5 -- z6 -- z7 -- z8 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z5 -- z6 -- z7 -- z8 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_semicolon =
+ ocrchar (";"); "Semicolon";
+ z1 = (x0+1/4W, y0+3/8H); z2 = (x0+3/4W, y1); z3 = (x2, y0);
+ z4 = (x1, y0+3/4H); z5 = (x0+1/2W, y4);
+ z6 = (x5, y0+7/8H); z7 = (x4, y6);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5 -- z6 -- z7 -- cycle;
+ fill z4 -- z5 -- z6 -- z7 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_equals_sign =
+ ocrchar ("="); "Equals Sign";
+ z1 = (x0, y0+3/8H); z2 = (x0+W, y1);
+ z3 = (x1, y0+11/16H); z4 = (x2, y3);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_plus_sign =
+ ocrchar ("+"); "Plus Sign";
+ z1 = (x0, y0+1/2H); z2 = (x0+W, y1);
+ z3 = (x0+1/2W, y1+1/2W); z4 = (x3, y3-W);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_slant =
+ ocrchar ("/"); "Slant";
+ z1 = (x0, y0); z2 = (x0+W, y0+H);
+
+ draw z1 -- z2;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_asterisk =
+ ocrchar ("*"); "Asterisk";
+ z1 = (x0+1/2W, y0+1/8H); z2 = (x1, y0+7/8H);
+ z3 = (x0, y0+1/4H); z4 = (x0+W, y0+3/4H);
+ z5 = (x3, y4); z6 = (x4, y3);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_quotation_mark =
+ ocrchar (ditto); "Quotation Mark";
+ z1 = (x0+1/4W, y0+H); z2 = (x0+1/8W, y0+5/8H);
+ z3 = (x0, y1); z4 = (x0+W, y1);
+ z5 = (x0+7/8W, y2); z6 = (x0+3/4W, y1);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ fill z1 -- z2 -- z3 -- cycle;
+ fill z4 -- z5 -- z6 -- cycle;
+ fill_corners (3, 4);
+ unfill unitsquare
+ shifted (-1.5,-0.5) scaled T
+ rotated (angle (z3-z2) - 90) shifted z3;
+ unfill unitsquare
+ shifted (1.5,-0.5) scaled T
+ rotated (90 - angle (z6-z5)) shifted z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_opening_brace =
+ ocrchar ("{"); "Opening Brace";
+ z1 = (x0+W, y0); z2 = (x0+1/2W, y0);
+ z3 = (x2, y0+1/2H); z4 = (x0, y3);
+ z5 = (x2, y0+H); z6 = (x1, y5);
+
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw (z6 -- z5)
+ join to_mid (z5, z3);
+ join_radius := T;
+ draw from_mid (z2, z3)
+ join (z3 -- z4);
+ draw from_mid (z5, z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_closing_brace =
+ ocrchar ("}"); "Closing Brace";
+ z1 = (x0, y0); z2 = (x0+1/2W, y0);
+ z3 = (x2, y0+1/2H); z4 = (x0+W, y3);
+ z5 = (x2, y0+H); z6 = (x1, y5);
+
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw (z6 -- z5)
+ join to_mid (z5, z3);
+ join_radius := T;
+ draw from_mid (z2, z3)
+ join (z3 -- z4);
+ draw from_mid (z5, z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_percent_sign =
+ ocrchar ("%"); "Percent Sign";
+ z1 = (x0+3/4W, y0); z2 = (x0+W, y1);
+ z3 = (x2, y0+1/8H); z4 = (x1, y3);
+ z5 = (x0, y0+7/8H); z6 = (x0+1/4W, y5);
+ z7 = (x6, y0+H); z8 = (x5, y7);
+ z9 = (x0, y3); z10 = (x0+W, y5);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ draw z5 -- z6 -- z7 -- z8 -- cycle;
+ draw z9 -- z10;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z5 -- z6 -- z7 -- z8 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% Note that there is also a new "alternate" question mark shape.
+%
+%%% def draw_question_mark =
+ ocrchar ("?"); "Question Mark";
+ z1 = (x0, y0+5/8H); z2 = (x0+3/4W, y0+H);
+ z3 = (x0+W, y0+7/8H); z4 = (x3, y0+3/4H);
+ z5 = (x0+1/4W, y0+3/8H); z6 = (x5, y0+1/4H);
+ z7 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ drawdot z7;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_ampersand =
+ ocrchar ("&"); "Ampersand";
+ z1 = (x0+W, y0); z2 = (x0, y0+5/8H);
+ z3 = (x0, y0+7/8H); z4 = (x0+3/4W, y3);
+ z5 = (x4, y2); z6 = (x0, y0+1/4H);
+ z7 = (x0, y0); z8 = (x0+1/2W, y0); z9 = (x1, y6);
+
+ join_radius := T;
+ draw z1 -- z2;
+ draw (z2 -- z3)
+ join (z3 -- z4)
+ join (z4 -- z5);
+ draw z5 -- z6;
+ draw (z6 -- z7)
+ join (z7 -- z8);
+ draw z8 -- z9;
+ endchar;
+%%% enddef;
+
+
+%
+% This is a new apostrophe shape. The older shape has been made
+% into an "alternate" form.
+%
+%%% def draw_apostrophe =
+ ocrchar ("'"); "Apostrophe";
+ z1 = (x0+3/8W, y0+H); z2 = (x1, y0+1/2H); z3 = (x0+5/8W, y1);
+
+ draw z1 -- z2 -- z3 -- cycle;
+ fill z1 -- z2 -- z3 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% This is a new hyphen shape. The older shape has been made
+% into an "alternate" form.
+%
+%%% def draw_hyphen =
+ ocrchar ("-"); "Hyphen";
+ z1 = (x0, y0+1/2H); z2 = (x0+W, y1);
+ z3 = (x2, y0+7/16H); z4 = (x1, y3);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_dollar_sign =
+ ocrchar ("$"); "Dollar Sign";
+ z1 = (x0, y0+1/4H); z2 = (x0+W, y1); z3 = (x2, y0+1/2H);
+ z4 = (x1, y3); z5 = (x4, y0+3/4H); z6 = (x2, y5);
+ z7 = (x0+1/2W, y0); z8 = .5[z1,z2];
+ z9 = (x7, y0+H); z10 = .5[z5,z6];
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ draw z7 -- z8;
+ draw z9 -- z10;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_upward_arrowhead =
+ ocrchar ("^"); "Upward Arrowhead";
+ z1 = (x0, y0+3/16H); z2 = (x0+1/2W, y0+5/8H);
+ z3 = (x0+W, y1); z4 = (x2, y0+3/4H);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_opening_bracket =
+ ocrchar ("["); "Opening Bracket";
+ z1 = (x0+W, y0); z2 = (x0, y0);
+ z3 = (x2, y0+H); z4 = (x1, y3);
+ z5 = (5/8[x1,x2], y1); z6 = (x5, y3);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_closing_bracket =
+ ocrchar ("]"); "Closing Bracket";
+ z1 = (x0, y0); z2 = (x0+W, y0);
+ z3 = (x2, y0+H); z4 = (x1, y3);
+ z5 = (5/8[x1,x2], y1); z6 = (x5, y3);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_less_than_sign =
+ ocrchar ("<"); "Less Than Sign";
+ z1 = (x0+W, y0+1/8H); z2 = (x0, y0+15/32H);
+ z3 = (x2, y0+17/32H); z4 = (x1, y0+7/8H);
+
+ draw z1 -- z2 -- z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_greater_than_sign =
+ ocrchar (">"); "Greater Than Sign";
+ z1 = (x0, y0+1/8H); z2 = (x0+W, y0+15/32H);
+ z3 = (x2, y0+17/32H); z4 = (x1, y0+7/8H);
+
+ draw z1 -- z2 -- z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_opening_parenthesis =
+ ocrchar ("("); "Opening Parenthesis";
+ z1 = (x0+3/4W, y0); z2 = (x0+3/8W, y0+9/32H);
+ z3 = (x2, y0+23/32H); z4 = (x1, y0+H);
+
+ join_radius := 3/2T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_closing_parenthesis =
+ ocrchar (")"); "Closing Parenthesis";
+ z1 = (x0+1/4W, y0); z2 = (x0+5/8W, y0+9/32H);
+ z3 = (x2, y0+23/32H); z4 = (x1, y0+H);
+
+ join_radius := 3/2T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_exclamation_point =
+ ocrchar ("!"); "Exclamation Point";
+ z1 = (x0+7/16W, y0); z2 = (x0+9/16W, y1);
+ z3 = (x2, y0+1/16H); z4 = (x1, y3);
+ z5 = (x0+1/2W, y0+7/16H); z6 = (x1, y0+H); z7 = (x2, y6);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ draw z5 -- z6 -- z7 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z5 -- z6 -- z7 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_number_sign =
+ ocrchar ("#"); "Number Sign";
+ z1 = (x0+1/4W, y0+3/16H); z2 = (x1, y0+H);
+ z3 = (x0+3/4W, y1); z4 = (x3, y2);
+ z5 = (x0, y0+7/16H); z6 = (x0+W, y5);
+ z7 = (x5, y0+3/4H); z8 = (x6, y7);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ draw z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_commercial_at =
+ ocrchar ("@"); "Commercial At";
+ z1 = (x0, y0+7/8H); z2 = (x0, y0+H); z3 = (x0+W, y2);
+ z4 = (x3, y0); z5 = (x0+1/2W, y0); z6 = (x5, y0+9/16H);
+ z7 = (x0, y6); z8 = (x0, y0);
+
+ join_radius := 3/16H;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join to_mid (z3, z4);
+ join_radius := 1/4W;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6);
+ draw (z6 -- z7)
+ join (z7 -- z8)
+ join (z8 -- z5)
+ join to_mid (z5, z6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_reverse_slant =
+ ocrchar ("\\"); "Reverse Slant";
+ z1 = (x0, y0+H); z2 = (x0+W, y0);
+
+ draw z1 -- z2;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Lower-case letters.
+% Note that ANSI X3.17-1977 defines these characters as part of OCR-A
+% only for the smallest size (Size I). Also, if lower-case letters are
+% used, the standard requires a minimum vertical line spacing of five
+% lines per inch (instead of the normal six lines per inch).
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_small_a =
+ ocrchar ("a"); "Small Letter A";
+ z1 = (x0+W, y0);
+ z2 = (0, H) rotated theta shifted (z1);
+ z3 = ((x0, y0+1/8H) -- (x0+W, y0+1/8H))
+ intersectionpoint (z1 -- z2);
+ z4 = (x0+5/8W, y0);
+ z5 = (x0, y0);
+ z6 = (x0, y0+3/8H);
+ z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
+ z8 = (x0+1/4W, y0+11/16H);
+ z9 = (z8 -- (x1, y8)) intersectionpoint (z1 -- z2);
+
+ join_radius := 1/4W;
+ draw z3 -- z4 -- to_mid (z4, z5);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z3);
+ draw (z8 -- z9)
+ join (z9 -- z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_b =
+ ocrchar ("b"); "Small Letter B";
+ z1 = (x0, y0); z2 = (x1, y0+H);
+ z3 = (x1, y0+3/16H); z4 = (x0+3/8W, y0);
+ z5 = (x0+3/4W, y4); z6 = (x0+W, y0+1/8H);
+ z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_c =
+ ocrchar ("c"); "Small Letter C";
+ z1 = (x0+W, y0); z2 = (x0+3/8W, y1);
+ z3 = (x0, y0+3/16H); z4 = (x3, y0+1/2H);
+ z5 = (x2, y0+11/16H); z6 = (x1, y5);
+
+ join_radius := 1/4W;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4)
+ join (z4 -- z5)
+ join (z5 -- z6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_d =
+ ocrchar ("d"); "Small Letter D";
+ z1 = (x0+W, y0); z2 = (x1, y0+H);
+ z3 = (x2, y0+3/16H); z4 = (x0+5/8W, y0);
+ z5 = (x0+1/4W, y4); z6 = (x0, y0+1/8H);
+ z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_e =
+ ocrchar ("e"); "Small Letter E";
+ z1 = (x0+W, y0); z2 = (x0+1/4W, y1);
+ z3 = (x0, y0+1/8H); z4 = (x3, y0+9/16H);
+ z5 = (x2, y0+11/16H); z6 = (x0+3/4W, y5);
+ z7 = (x1, y4); z8 = (x7, y0+5/16H); z9 = (x3, y8);
+
+ join_radius := 1/4W;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z8)
+ -- z9;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_f =
+ ocrchar ("f"); "Small Letter F";
+ z1 = (x0+3/8W-1/4T, y0);
+ z2 = (x1, y0+H); z3 = (x0+W-1/4T, y2);
+ z4 = (x0+1/8W-1/4T, y0+11/16H);
+ z5 = (x0+3/4W-1/4T, y4);
+
+ join_radius := .32W;
+ draw (z1 -- z2)
+ join (z2 -- z3);
+ draw z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_g =
+ ocrchar ("g"); "Small Letter G";
+ z1 = (x0+W, y8); z2 = (x1, y0-3/16H);
+ z2a = (x0+3/4W, y0-5/16H); z2b = (x0+1/8W, y2a);
+ z3 = (x2, y0+1/4H); z4 = (x0+5/8W, y0+1/16H);
+ z5 = (x0+1/4W, y4); z6 = (x0, y0+3/16H);
+ z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw (z1 -- z2)
+ join (z2 -- z2a)
+ join (z2a -- z2b);
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_h =
+ ocrchar ("h"); "Small Letter H";
+ z1 = (x0+W, y0);
+ z2 = (0, H) rotated theta shifted (z1);
+ z3 = (x0, y0); z4 = (x0, y0+H);
+ z5 = (x3, y0+1/2H); z6 = (x0+1/2W, y0+11/16H);
+ z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
+
+ join_radius := 1/4W;
+ draw z3 -- z4;
+ draw (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_i =
+ ocrchar ("i"); "Small Letter I";
+ z1 = (x0+1/2W, y0); z2 = (x1, y0+11/16H); z3 = (x0+1/8W, y2);
+ z4 = (x3, y0); z5 = (x0+7/8W, y4);
+ z6 = (x1, y0+H); z7 = (x6, y0+17/16H);
+ z8 = (x0+3/8W, y7); z9 = (x8, y6);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ draw z6 -- z7 -- z8 -- z9 -- cycle;
+ fill z6 -- z7 -- z8 -- z9 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_j =
+ ocrchar ("j"); "Small Letter J";
+ z1 = (x0+3/8W, y0+11/16H); z2 = (x0+7/8W, y1);
+ z3 = (x2, y0-5/16H); z4 = (x0+1/8W, y3); z5 = (x4, y0-3/16H);
+ z6 = (x2, y0+H); z7 = (x6, y0+17/16H);
+ z8 = (x0+3/4W, y7); z9 = (x8, y6);
+
+ join_radius := 1/4W;
+ draw (z5 -- z4)
+ join (z4 -- z3)
+ join (z3 -- z2)
+ -- z2 -- z1;
+ draw z6 -- z7 -- z8 -- z9 -- cycle;
+ fill z6 -- z7 -- z8 -- z9 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_k =
+ ocrchar ("k"); "Small Letter K";
+ z1 = (x0, y0); z2 = (x1, y0+H);
+ z3 = (x1, y0+1/4H); z4 = (x0+7/8W, y0+11/16H);
+ z5 = (x0+1/4W, y0+3/8H); z6 = (x0+W, y0);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_l =
+ ocrchar ("l"); "Small Letter L";
+ z1 = (x0+1/2W, y0); z2 = (x1, y0+H); z3 = (x0+1/8W, y2);
+ z4 = (x3, y0); z5 = (x0+7/8W, y4);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_m =
+ ocrchar ("m"); "Small Letter M";
+ z1 = (x0-.02W, y0+11/16H); z2 = (x1, y0);
+ z3 = (x1, y0+.55H); z4 = (x0+1/4W, y1);
+ z5 = (x0+1/2W, y1); z6 = (x5, y0);
+ z7 = (x5, y0+9/16H); z8 = (x0+3/4W, y1);
+ z10 = (x0+1.02W, y0);
+ z10a = (0, H) rotated theta shifted (z10);
+ z9 = (z8 -- (x10, y8)) intersectionpoint (z10 -- z10a);
+ z9b = (z7 -- (x10, y7)) intersectionpoint (z10 -- z10a);
+
+ join_radius := 0.181W;
+ draw z1 -- z2;
+ draw (z3 -- z4)
+ join (z4 -- z5)
+ join (z5 -- z7)
+ -- z6;
+ join_radius := 0.176W;
+ draw (z7 -- z8)
+ join (z8 -- z9)
+ join (z9 -- z9b)
+ -- z10;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_n =
+ ocrchar ("n"); "Small Letter N";
+ z1 = (x0+W, y0);
+ z2 = (0, H) rotated theta shifted (z1);
+ z3 = (x0, y0); z4 = (x0, y6);
+ z5 = (x3, y0+1/2H); z6 = (x0+1/2W, y0+11/16H);
+ z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
+
+ join_radius := 1/4W;
+ draw z3 -- z4;
+ draw (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_o =
+ ocrchar ("o"); "Small Letter O";
+ z1 = (x0, y0+1/8H); z2 = (x0+1/4W, y0);
+ z3 = (x0+3/4W, y2); z4 = (x0+W, y1);
+ z5 = (x4, y0+9/16H); z6 = (x3, y0+11/16H);
+ z7 = (x2, y6); z8 = (x1, y5);
+
+ join_radius := 1/4W;
+ draw from_mid (z8, z1)
+ join (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join to_mid (z6, z7);
+ draw from_mid (z6, z7)
+ join (z7 -- z8)
+ join to_mid (z8, z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_p =
+ ocrchar ("p"); "Small Letter P";
+ z1 = (x0, y0+23/32H); z2 = (x1, y0-5/16H);
+ z3 = (x1, y0+3/16H); z4 = (x0+3/8W, y0-1/32H);
+ z5 = (x0+5/8W, y4); z6 = (x0+W, y0+.157H);
+ z7 = (x6, y0+.529H); z8 = (x5, y0+23/32H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_q =
+ ocrchar ("q"); "Small Letter Q";
+ z1 = (x0+W, y0+11/16H); z2 = (x1, y0-5/16H);
+ z3 = (x2, y0+3/16H); z4 = (x0+5/8W, y0);
+ z5 = (x0+1/4W, y4); z6 = (x0, y0+1/8H);
+ z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_r =
+ ocrchar ("r"); "Small Letter R";
+ z1 = (x0, y0+11/16H); z2 = (x1, y0);
+ z3 = (x1, y0+7/16H); z4 = (x0+1/2W, y1);
+ z5 = (x0+W, y4); z6 = (x5, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw (z6 -- z5)
+ join (z5 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_s =
+ ocrchar ("s"); "Small Letter S";
+ z1 = (x0, y0+1/16H); z1a = (x0+.07W, y0+.03H);
+ z2 = (x0+.20W, y0); z3 = (x0+W, y2); z4 = (x3, y0+1/4H);
+ z5 = (x0+.027W, y0+1/2H); z6 = (x5, y0+11/16H);
+ z6a = (x0+1/2W, y6); z7 = (x0+.92W, y6);
+ z8 = (x0+.973W, y0+5/8H);
+
+ join_radius := .32W;
+ draw (z1 -- z1a)
+ join (z1a -- z2)
+ join to_mid (z2, z3);
+ join_radius := .26W;
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ join_radius := .20W;
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join (z6 -- z6a);
+ join_radius := .25W;
+ draw (z8 -- z7)
+ join (z7 -- z6a);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_t =
+ ocrchar ("t"); "Small Letter T";
+ z1 = (x0+W, y0+1/8H); z2 = (x1, y0);
+ z3 = (x0+1/4W, y2); z4 = (x3, y0+15/16H);
+ z5 = (x0, y0+11/16H); z6 = (x0+7/8W, y5);
+
+ join_radius := 1/4W;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_u =
+ ocrchar ("u"); "Small Letter U";
+ z1 = (x0, y0+11/16H);
+ z2 = (0, -H) rotated theta shifted (z1);
+ z3 = (x0+W, y1); z4 = (x3, y0);
+ z5 = (x3, y0+3/16H); z6 = (x0+1/2W, y0);
+ z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
+
+ join_radius := 1/4W;
+ draw z3 -- z4;
+ draw (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_v =
+ ocrchar ("v"); "Small Letter V";
+ z1 = (x0, y0+11/16H); z2 = (x1, y0+9/16H);
+ z3 = (x0+.421W, y0); z4 = (x0+.579W, y0);
+ z5 = (x0+W, y2); z6 = (x5, y1);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_w =
+ ocrchar ("w"); "Small Letter W";
+ z1 = (x0, y0+1/4H); z2 = (x0+1/8W, y0); z3 = (x0+1/4W, y0);
+ z4 = (x0+1/2W, y1); z5 = (x4, y0+7/16H);
+ z6 = (x0+3/4W, y0); z7 = (x0+7/8W, y0); z8 = (x0+W, y1);
+ z9a = (0, H) rotated theta shifted (z1);
+ z9b = (0, H) rotated -theta shifted (z8);
+ z10a = (x0-1/4W, y0+11/16H); z10b = (x0+5/4W, y10a);
+ z11a = (z10a -- z10b) intersectionpoint (z1 -- z9a);
+ z11b = (z10a -- z10b) intersectionpoint (z8 -- z9b);
+
+ draw z11a -- z1 -- z2 -- z3 -- z4 -- z6 -- z7 -- z8 -- z11b;
+ draw z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_x =
+ ocrchar ("x"); "Small Letter X";
+ z1 = (x0, y0); z2 = (x0+.973W, y0+11/16H);
+ z3 = (x0+W, y0); z4 = (x0+.027W, y0+11/16H);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_y =
+ ocrchar ("y"); "Small Letter Y";
+ z1 = (x0, y0+11/16H); z2 = (x1, y0+9/16H);
+ z3 = (x0+3/8W, y0+1/16H); z4 = (x0+5/8W, y3);
+ z5 = (x0+W, y1); z6 = (x5, y2);
+ z8 = (x0, y0-5/16H);
+ z7 = (z6 -- z4+(z4-z6))
+ intersectionpoint (z8 -- (x8+W, y8));
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6 -- z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_z =
+ ocrchar ("z"); "Small Letter Z";
+ z1 = (x0+.061W, y0+11/16H); z2 = (x0+W, y1);
+ z3 = (x2, y0+5/8H); z4 = (x0, y0+1/16H);
+ z5 = (x0, y0); z6 = (x2, y5);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Alternate symbol forms.
+% These are all new shapes, except for Apostrophe and Hyphen, where
+% the "alternate" shapes are the older versions.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%
+% Alternate period was introduced because the standard character causes
+% paper punch-through on some printers.
+%
+%%% def draw_period_alt =
+ ocrchar (14); "Period (Alternate)";
+ z1 = (x0+5/16W, y0); z2 = (x0+11/16W, y1);
+ z3 = (x2, y0+3/8W); z4 = (x1, y3);
+ % NOTE: The use of "W" in the Y-coordinate of "z3"
+ % is as given in the spec, to make a square period.
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% Alternate comma was introduced because the standard character causes
+% paper punch-through on some printers.
+%
+%%% def draw_comma_alt =
+ ocrchar (15); "Comma (Alternate)";
+ z1 = (x0+1/4W, y0+5/16H); z2 = (x1, y0+3/8H);
+ z3 = (x0+3/4W, y2); z4 = (x3, y0); z5 = (x0+5/8W, y4);
+ z6 = (x5, y1);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- z5 -- z6 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% Alternate question mark was introduced because the small dot at the
+% bottom of the standard character is difficult or impossible to form
+% on some embossed plates/cards, and also causes paper punch-through
+% on some printers.
+%
+%%% def draw_question_mark_alt =
+ ocrchar (16); "Question Mark (Alternate)";
+ z1 = (x0, y0+5/8H); z2 = (x0+3/4W, y0+H);
+ z3 = (x0+W, y0+7/8H); z4 = (x3, y0+3/4H);
+ z5 = (x0+1/4W, y0+3/8H); z6 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%
+% A new apostrophe was introduced (and the older character changed to
+% alternate status) because the older character causes paper punch-
+% through on some printers and cannot be properly recognized by some
+% readers which do not store vertical-position data.
+%
+%%% def draw_apostrophe_alt =
+ ocrchar (17); "Apostrophe (Alternate)";
+ z1 = (x0+3/8W, y0+H); z2 = (x0+1/2W, y0+5/8H);
+ z3 = (x0+5/8W, y1);
+
+ draw z1 -- z2 -- z3 -- cycle;
+ fill z1 -- z2 -- z3 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% A new hyphen was introduced (and the older character changed to
+% alternate status) because the older character causes paper punch-
+% through on some printers.
+%
+%%% def draw_hyphen_alt =
+ ocrchar (18); "Hyphen (Alternate)";
+ z1 = (x0, y0+1/2H); z2 = (x0+W, y1);
+
+ draw z1 -- z2;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Special OCR characters.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%
+% The "hook" symbol (looks sort of like a squared-off S) is defined in
+% ANSI X3.17-1977 to go into the "tilde" spot in the ASCII table.
+%
+%%% def draw_symbol_hook =
+ ocrchar (19); "Symbol HOOK";
+ z1 = (x0, y0+3/8H); z2 = (x0, y0); z3 = (x0+1/2W, y0);
+ z4 = (x3, y0+H); z5 = (x0+W, y0+H); z6 = (x0+W, y0+5/8H);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ fill_corners (2, 3, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%
+% The "fork" symbol (looks sort of like a squared-off Y) is defined in
+% ANSI X3.17-1977 to go into the "underline" spot in the ASCII table.
+% However, a note in the standard says that this assignment should not
+% preclude use of the Underline in applications not needing the "fork".
+%
+%%% def draw_symbol_fork =
+ ocrchar (20); "Symbol FORK";
+ z1 = (x0, y0+H); z2 = (x0, y0+1/2H);
+ z3 = (x0+W, y2); z4 = (x0+W, y0+H);
+ z5 = (x0+1/2W, y2); z6 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%
+% The "chair" symbol (looks sort of like a squared-off, backwards lower-
+% case H) is defined in ANSI X3.17-1977 to go into the "grave accent"
+% spot in the ASCII table.
+%
+%%% def draw_symbol_chair =
+ ocrchar (21); "Symbol CHAIR";
+ z1 = (x0+W, y0+H); z2 = (x1, y0);
+ z3 = .5[z1,z2]; z4 = (x0, y3); z5 = (x0, y0);
+
+ draw z1 -- z2;
+ draw z3 -- z4 -- z5;
+ fill_corners (4);
+ endchar;
+%%% enddef;
+
+
+%
+% The "Long Vertical Mark" is not really suitable as a representation
+% of the ASCII "vertical bar" character. The "Long Vertical Mark" is
+% intended as a field separator and is significantly taller than other
+% characters in the font.
+%
+%%% def draw_long_vertical_mark =
+ ocrchar (22); "Long Vertical Mark";
+ z1 = (x0+1/2W, y0+L-T/2); z2 = (x1, y0-Y+T/2);
+
+ draw z1 -- z2;
+ fill_corners (1, 2);
+ endchar;
+%%% enddef;
+
+
+%
+% "Character Erase" (a large rectangular black box) is defined in
+% ANSI X3.17-1977 only for the smallest character size (Size I).
+%
+%%% def draw_character_erase =
+ ocrchar (127); "Character Erase";
+ z1 = (x0-3/4T, y0-3/4T); z2 = (x0+W+3/4T, y1);
+ z3 = (x2, y0+H+3/4T); z4 = (x1, y3);
+
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Miscellaneous symbols.
+% These are not an official part of ANSI OCR-A, but were included in an
+% appendix to X3.17-1977.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_aa =
+ ocrchar (23); "Letter \AA";
+ z1 = (x0, y0); z2 = (x0+3/8W, y0+3/4H);
+ z3 = (x0+5/8W, y2); z4 = (x0+W, y1);
+ z5 = (x0+1/8W, y2); z6 = (x0+7/8W, y2);
+ z7 = (x6, y0+H); z8 = (x5, y7);
+ z9 = (x5, y0+1/4H); z10 = (x6, y9);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z9 -- z10;
+ draw from_mid (z5, z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z5)
+ join to_mid (z5, z6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_a_umlaut =
+ ocrchar (24); "Letter \"&ditto&"A";
+ z1 = (x0, y0); z2 = (x0+1/2W, y0+3/4H); z3 = (x0+W, y0);
+ z4 = (x0+1/8W, y0+3/16H); z5 = (x0+7/8W, y4);
+ z6 = (x1, y0+H); z7 = (x6, y0+7/8H);
+ z8 = (x3, y6); z9 = (x8, y7);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ draw z6 -- z7;
+ draw z8 -- z9;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_ae =
+ ocrchar (25); "Letter \AE";
+ z1 = (x0, y0); z2 = (x0+5/8W, y0+H); z3 = (x0+W, y2);
+ z4 = (x2, y0+1/2H); z5 = (x3, y4);
+ z6 = (x2, y1); z7 = (x3, y1);
+ z8 = 1/4[z1,z2]; z9 = 1/4[z6,z2];
+
+ draw z1 -- z2 -- z3;
+ draw z2 -- z6 -- z7;
+ draw z4 -- z5;
+ draw z8 -- z9;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_n_tilde =
+ ocrchar (26); "Letter \~N";
+ z1 = (x0, y0); z2 = (x1, y0+5/8H);
+ z3 = (x0+W, y1); z4 = (x3, y2);
+ z5 = (x1, y0+15/16H); z6 = (x5, y0+H);
+ z7 = (x3, y5); z8 = (x3, y6);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6 -- z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_o_slant =
+ ocrchar (27); "Letter \O";
+ z1 = (x0, y0+7/16H); z2 = (x1, y0+9/16H);
+ z3 = (x0+3/8W, y0+H); z4 = (x0+5/8W, y3);
+ z5 = (x0+W, y2); z6 = (x5, y1);
+ z7 = (x4, y0); z8 = (x3, y7);
+ z9 = (x0, y0); z10 = (x0+W, y0+H);
+
+ join_radius := r1;
+ draw from_mid (z8, z1)
+ join (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join to_mid (z6, z7);
+ join_radius := r2;
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ draw from_mid (z6, z7)
+ join (z7 -- z8)
+ join to_mid (z8, z1);
+ draw z9 -- z10;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_o_umlaut =
+ ocrchar (28); "Letter \"&ditto&"O";
+ z1 = (x0, y0+5/16H); z2 = (x1, y0+7/16H);
+ z3 = (x0+3/8W, y0+3/4H); z4 = (x0+5/8W, y3);
+ z5 = (x0+W, y2); z6 = (x5, y1);
+ z7 = (x4, y0); z8 = (x3, y7);
+ z9 = (x1, y0+H); z10 = (x1, y0+7/8H);
+ z11 = (x5, y9); z12 = (x5, y10);
+
+ join_radius := r5;
+ draw from_mid (z8, z1)
+ join (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join to_mid (z6, z7);
+ join_radius := r6;
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ draw from_mid (z6, z7)
+ join (z7 -- z8)
+ join to_mid (z8, z1);
+ draw z9 -- z10;
+ draw z11 -- z12;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_u_umlaut =
+ ocrchar (29); "Letter \"&ditto&"U";
+ z1 = (x0, y0+3/4H); z2 = (x0, y0);
+ z3 = (x0+W, y0); z4 = (x3, y1);
+ z5 = (x0+1/4W, y0+H); z6 = (x5, y0+7/8H);
+ z7 = (x0+3/4W, y5); z8 = (x7, y6);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ draw z5 -- z6;
+ draw z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_pound_sign =
+ ocrchar (30); "Pound Sign";
+ z1 = (x0, y0); z2 = (x0+W, y1);
+ z3 = (x0+1/4W, y1); z4 = (x0+3/4W, y0+H); z5 = (x2, y4);
+ z6 = (x1, y0+1/2H); z7 = (x2, y6);
+
+ join_radius := T;
+ draw z1 -- z2;
+ draw (z3 -- z4)
+ join (z4 -- z5);
+ draw z6 -- z7;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_yen_sign =
+ ocrchar (31); "Yen Sign";
+ z1 = (x0, y0+H); z2 = (x0+1/2W, y0+1/2H); z3 = (x0+W, y1);
+ z4 = (x2, y0); z5 = (x1, y0+3/8H); z6 = (x3, y5);
+
+ draw z1 -- z2 -- z3;
+ draw z2 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Non-standard ASCII characters.
+% I designed these characters myself in order to make a complete ASCII
+% character set. Note that these characters are *NOT* part of ANSI
+% X3.17-1977 or any other OCR-A standard, and will almost certainly
+% *NOT* be understood by any OCR-A scanner currently in existence.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_tilde =
+ ocrchar ("~"); "Tilde";
+ z1 = (x0, y0+11/16H); z2 = (x1, y0+H);
+ z3 = (x0+1/2W, y2); z4 = (x3, y0+5/8H);
+ z5 = (x0+W, y4); z6 = (x5, y0+15/16H);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join to_mid (z3, z4);
+ draw (z6 -- z5)
+ join (z5 -- z4)
+ join to_mid (z4, z3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_underline =
+ ocrchar ("_"); "Underline";
+ z1 = (x0, y0-T); z2 = (x0+W, y1);
+
+ draw z1 -- z2;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_grave_accent =
+ ocrchar ("`"); "Grave Accent";
+ z1 = (x0+1/8W, y0+H); z2 = (x0+7/8W, y0+5/8H);
+ z3 = (x0+3/8W, y1);
+
+ draw z1 -- z2 -- z3 -- cycle;
+ fill z1 -- z2 -- z3 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_vertical_bar =
+ ocrchar ("|"); "Vertical Bar";
+ z1 = (x0+1/2W, y0+H); z2 = (x1, y0+1/2H+T);
+ z3 = (x1, y0+1/2H-T); z4 = (x1, y0);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Font parameters %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+designsize := L#;
+font_slant := 0;
+font_normal_space := R#;
+font_normal_stretch := 0; % mustn't be more than .8R#, per spec
+font_normal_shrink := 0; % mustn't be more than .1R#, per spec
+font_x_height := H#;
+font_quad := 2W#;
+font_extra_space := 0;
+
+end.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% END OF OCR-A METAFONT DEFINITION %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/oca/ocra10.mf b/Master/texmf-dist/fonts/source/public/oca/ocra10.mf
new file mode 100644
index 00000000000..a75de22c43c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/oca/ocra10.mf
@@ -0,0 +1,10 @@
+% OCR-A Size I (10-point)
+
+H# = 0.094in#; % centerline height of characters
+W# = 0.055in#; % centerline width of characters
+T# = 0.014in#; % stroke width
+L# = 0.146in#; % height of long vertical mark
+Y# = 0.021in#; % depth of long vertical mark
+R# = 0.100in#; % horizontal character spacing
+
+input ocra;
diff --git a/Master/texmf-dist/fonts/source/public/oca/ocra12.mf b/Master/texmf-dist/fonts/source/public/oca/ocra12.mf
new file mode 100644
index 00000000000..b7a8a159ec7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/oca/ocra12.mf
@@ -0,0 +1,10 @@
+% OCR-A Size I, magnified 20% (12-point)
+
+H# = 0.112in#; % centerline height of characters
+W# = 0.066in#; % centerline width of characters
+T# = 0.017in#; % stroke width
+L# = 0.175in#; % height of long vertical mark
+Y# = 0.025in#; % depth of long vertical mark
+R# = 0.120in#; % horizontal character spacing
+
+input ocra;
diff --git a/Master/texmf-dist/fonts/source/public/oca/ocra17.mf b/Master/texmf-dist/fonts/source/public/oca/ocra17.mf
new file mode 100644
index 00000000000..54e18b6dcdd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/oca/ocra17.mf
@@ -0,0 +1,10 @@
+% OCR-A Size I, magnified 60% (16-point)
+
+H# = 0.150in#; % centerline height of characters
+W# = 0.088in#; % centerline width of characters
+T# = 0.022in#; % stroke width
+L# = 0.234in#; % height of long vertical mark
+Y# = 0.034in#; % depth of long vertical mark
+R# = 0.160in#; % horizontal character spacing
+
+input ocra;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-a.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-a.mf
new file mode 100644
index 00000000000..8477ca871b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-a.mf
@@ -0,0 +1,1009 @@
+% OCR-A Optical Character Recognition Font
+%
+% Coded in METAFONT84 by Tor Lillqvist, VTT/ATK (Technical Research Centre
+% of Finland, Computing Services)
+% (tml@fingate.BITNET, tml@santra.UUCP, mcvax!santra!tml)
+%
+% Based on ISO Recommendation R1073, 1st ed., May 1969 (probably
+% obsolete by now).
+%
+% Labels are in French :-)
+%
+
+mode_setup;
+
+letter_fit# := 1.25T#;
+
+define_whole_pixels(W,H,L,T,letter_fit);
+
+def adjust_fit =
+ l:=-letter_fit;
+ interim xoffset:=-l;
+ charwd:=charwd+2letter_fit#;
+ r:=l+hround(charwd*hppp);
+ w:=r-letter_fit;
+enddef;
+
+pickup pencircle scaled T;
+OCRpen := savepen;
+
+extra_beginchar := extra_beginchar & "adjust_fit;";
+
+extra_endchar := extra_endchar & "penlabels(range 1 thru 20);";
+
+% The join macro performs the joining of two strokes so that the
+% pen centre curvature radius is join_radius.
+
+tertiarydef p join q =
+ begingroup
+ pair ipq_; ipq_ := p intersectionpoint q;
+
+ pair dirv[];
+ dirv0 = dir angle direction (length p) of p;
+ dirv1 = dir angle direction 0 of q;
+ if length (dirv1 - dirv0) < 1/10:
+ p .. q
+ else:
+ path par[];
+ k_ := if ypart (dirv1 rotated -angle dirv0) > 0: 90 else: -90 fi;
+ forsuffixes $=0,1:
+ par$ := ((ipq_ - (20join_radius*dirv$))--
+ (ipq_ + (20join_radius*dirv$)))
+ shifted ((join_radius*dirv$) rotated k_);
+ endfor;
+ numeric pt_,qt_;
+ (pt_,qt_) = par0 intersectiontimes par1;
+ if pt_ < 0: errmessage "No intersection curvature center found"; fi
+
+ pair icc_; icc_ = point pt_ of par0;
+ numeric cp_,cpp_,cq_,cqp_;
+ (cp_, cpp_) = p intersectiontimes
+ (icc_--icc_+(2join_radius*dirv0 rotated -k_));
+ (cq_, cqp_) = q intersectiontimes
+ (icc_--icc_+(2join_radius*dirv1 rotated -k_));
+
+ subpath (0,cp_) of p ..
+ (icc_ + join_radius*unitvector(dirv0-dirv1)) ..
+ subpath (cq_, length q) of q
+ fi
+ endgroup
+enddef;
+
+def fill_corners(text t) =
+ begingroup
+ forsuffixes $=t:
+ fill unitsquare shifted (-.5,-.5) scaled T shifted z$;
+ endfor
+ endgroup
+enddef;
+
+% The angle_fill_corner fills the corners like in the characters M and N
+
+def angle_fill_corner(suffix a,b,c) =
+ begingroup
+ save p; path p.q,p.w,p.e,p.r;
+ p.q = (z.a--z.b+(z.b-z.a)) shifted (T/2*unitvector (z.b-z.a) rotated 90);
+ p.w = (z.a--z.b+(z.b-z.a)) shifted (T/2*unitvector (z.b-z.a) rotated -90);
+ p.e = (z.b-(z.c-z.b)--z.c) shifted (T/2*unitvector (z.c-z.b) rotated 90);
+ p.r = (z.b-(z.c-z.b)--z.c) shifted (T/2*unitvector (z.c-z.b) rotated -90);
+
+ save q; pair q.u,q.l;
+ q.u = p.q intersectionpoint p.e;
+ q.l = p.w intersectionpoint p.r;
+
+ fill point 0 of p.q -- q.u -- point 1 of p.e -- point 1 of p.r --
+ q.l -- point 0 of p.w -- cycle;
+ endgroup
+enddef;
+
+% The curvature radiuses used in some characters
+
+r1# = H#/16 * ((7H#)/(6W#) + sqrt(((7H#)/(6W#))**2 + 1));
+r2# = W#/8 * ((6W#)/(7H#) + sqrt(((6W#)/(7H#))**2 + 1));
+r3# = W#/8 * (1 - H#/(2W#) + sqrt((H#/(2W#))**2 + 1));
+r4# = H#/16 * (1 - (4W#)/(3H#) + sqrt(((4W#)/(3H#))**2 + 1));
+r5# = H#/16 * (1 - (5H#)/(6W#) + sqrt(((5H#)/(6W#))**2 + 1));
+r6# = W#/8 * (1 - (6W#)/(5H#) + sqrt(((6W#)/(5H#))**2 + 1));
+
+define_pixels(r1,r2,r3,r4,r5,r6);
+
+def OCRchar(expr code, wd, ht) =
+ beginchar(code, wd, ht, 0);
+ pickup OCRpen;
+enddef;
+
+OCRchar("1", W#, H#); "Chiffre UN";
+ x1 = 0; y1 = 0;
+ x2 = W; y2 = 0;
+ x3 = W; y3 = 3/8H;
+ x4 = W/2; y4 = H;
+ x5 = 0; y5 = H;
+
+ draw z1--z2--z3; draw .5[z1,z2]--z4--z5;
+ fill_corners(4);
+endchar;
+
+OCRchar("2", W#, H#); "Chiffre DEUX";
+ x1 = 0; y1 = H;
+ x2 = W; y2 = H;
+ x3 = W; y3 = H/2;
+ x4 = 0; y4 = H/2;
+ x5 = 0; y5 = 0;
+ x6 = W; y6 = 0;
+
+ join_radius := T/2;
+ draw (z1--z2) join ((z2--z3) join
+ ((z3--z4) join (z4--z5--z6)));
+ fill_corners(5);
+endchar;
+
+OCRchar("3", W#, H#); "Chiffre TROIS";
+ x1 = 0; y1 = H;
+ x2 = W; y2 = y1;
+ x3 = x2; y3 = H/2;
+ x4 = W/4; y4 = y3;
+ x5 = x2; y5 = 0;
+ x6 = x1; y6 = y5;
+
+ join_radius := T/2;
+ draw (z1--z2) join (z2--.6[z2,z3]);
+ join_radius := T;
+ draw (.4[z2,z3]--z3) join (z3--z4);
+ draw (z4--z3) join (z3--.6[z3,z5]);
+ join_radius := T/2;
+ draw (.4[z3,z5]--z5) join (z5--z6);
+endchar;
+
+OCRchar("4", 7/8W#, H#); "Chiffre QUATRE";
+ x1 = 0; y1 = H;
+ x2 = x1; y2 = 3/8H;
+ x3 = 7/8W; y3 = y2;
+ x4 = 3/4W; y4 = 0;
+ x5 = x4; y5 = 7/8H;
+
+ draw z1--z2--z3; draw z4--z5;
+endchar;
+
+OCRchar("5", W#, H#); "Chiffre CINQ";
+ x1 = 0; y1 = 1/16H;
+ x2 = 1/4W; y2 = 0;
+ x3 = W; y3 = y2;
+ x4 = x3; y4 = 1/2H;
+ x5 = x2; y5 = y4;
+ x6 = x2; y6 = H;
+ x7 = x3; y7 = y6;
+
+ join_radius := T;
+ draw (z1--z2) join (z2--.6[z2,z3]);
+ join_radius := T/2;
+ draw (.4[z2,z3]--z3) join (z3--.6[z3,z4]);
+ draw (.4[z3,z4]--z4) join (z4--z5--z6--z7);
+ fill_corners(5,6);
+endchar;
+
+OCRchar("6", W#, H#); "Chiffre SIX";
+ x1 = 1/8W; y1 = H;
+ x2 = 0; y2 = y1;
+ x3 = x2; y3 = 0;
+ x4 = W; y4 = y3;
+ x5 = x4; y5 = 3/8H;
+ x6 = x2; y6 = y5;
+
+ draw z1--z2--z3--z4--z5--z6;
+endchar;
+
+OCRchar("7", W#, H#); "Chiffre SEPT";
+ x1 = 0; y1 = 15/16H;
+ x2 = x1; y2 = H;
+ x3 = W; y3 = y2;
+ x4 = x3; y4 = 5/8H;
+ x5 = 1/2W; y5 = 3/8H;
+ x6 = x5; y6 = 0;
+
+ draw z1--z2--z3--z4--z5--z6;
+ fill_corners(3);
+endchar;
+
+OCRchar("8", W#, H#); "Chiffre HUIT";
+ x1 = 0; y1 = 0;
+ x2 = W; y2 = y1;
+ x3 = x2; y3 = 1/2H;
+ x4 = x1; y4 = y3;
+ x5 = 1/4W; y5 = y3;
+ x6 = 3/4W; y6 = y5;
+ x7 = x6; y7 = H;
+ x8 = x5; y8 = y7;
+
+ join_radius := T/2;
+ draw (.4[z1,z2]--z2) join (z2--.6[z2,z3]);
+ draw (.4[z2,z3]--z3) join (z3--.6[z3,z4]);
+ draw (.4[z3,z4]--z4) join (z4--.6[z4,z1]);
+ draw (.4[z4,z1]--z1) join (z1--.6[z1,z2]);
+ draw z6--z7--z8--z5;
+endchar;
+
+OCRchar("9", W#, H#); "Chiffre NEUF";
+ x1 = 7/8W; y1 = 0;
+ x2 = W; y2 = y1;
+ x3 = x2; y3 = H;
+ x4 = 0; y4 = y3;
+ x5 = x4; y5 = 5/8H;
+ x6 = x2; y6 = y5;
+
+ draw z1--z2--z3--z4--z5--z6;
+endchar;
+
+OCRchar("0", W#, H#); "Chiffre ZERO";
+ x1 = 0; y1 = 0;
+ x2 = W; y2 = y1;
+ x3 = x2; y3 = H;
+ x4 = x1; y4 = y3;
+
+ join_radius := T/2;
+ draw (.4[z1,z2]--z2) join (z2--.6[z2,z3]);
+ draw (.4[z2,z3]--z3) join (z3--.6[z3,z4]);
+ draw (.4[z3,z4]--z4) join (z4--.6[z4,z1]);
+ draw (.4[z4,z1]--z1) join (z1--.6[z1,z2]);
+endchar;
+
+OCRchar(0, W#, H#); "Symbole CROCHET";
+ x1 = 0; y1 = 3/8H;
+ x2 = x1; y2 = 0;
+ x3 = 1/2W; y3 = y2;
+ x4 = x3; y4 = H;
+ x5 = W; y5 = y4;
+ x6 = x5; y6 = 5/8H;
+
+ draw z1--z2--z3--z4--z5--z6;
+ fill_corners(2,3,4,5);
+endchar;
+
+OCRchar(1, W#, H#); "Symbole FOURCHETTE";
+ x1 = 0; y1 = H;
+ x2 = x1; y2 = 1/2H;
+ x3 = W; y3 = y2;
+ x4 = x3; y4 = y1;
+ x5 = 1/2W; y5 = y2;
+ x6 = x5; y6 = 0;
+
+ draw z1--z2--z3--z4;
+ fill_corners(2,3);
+ draw z5--z6;
+endchar;
+
+OCRchar(2, W#, H#); "Symbole CHAISE";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = 1/2H;
+ x3 = W; y3 = y2;
+ x4 = x3; y4 = y1;
+ x5 = x3; y5 = H;
+
+ draw z1--z2--z3;
+ fill_corners(2);
+ draw z4--z5;
+endchar;
+
+beginchar("|", 0, (H#+L#)/2, (L#-H#)/2); "Trait vertical";
+ pickup OCRpen;
+ x1 = 0; y1 = (H-L)/2;
+ x2 = x1; y2 = (H+L)/2;
+
+ cutdraw z1--z2;
+endchar;
+
+OCRchar("A", W#, H#); "Lettre A";
+ x1 = 0; y1 = 0;
+ x2 = 1/2W; y2 = H;
+ x3 = W; y3 = y1;
+ z4 = 1/4[z1,z2];
+ z5 = 1/4[z3,z2];
+
+ draw z1--z2--z3; draw z4--z5;
+endchar;
+
+OCRchar("B", W#, H#); "Lettre B";
+ x1 = 0; y1 = 0;
+ x2 = W; y2 = y1;
+ x3 = x2; y3 = 1/2H;
+ x4 = x1; y4 = y3;
+ x5 = x2; y5 = H;
+ x6 = x1; y6 = y5;
+
+ join_radius := 3/2T;
+ draw (z1--z2) join (z2--.5[z2,z3]);
+ draw (.5[z2,z3]--z3) join (z3--z4);
+ draw (z4--z3) join (z3--.5[z3,z5]);
+ draw (.5[z3,z5]--z5) join (z5--z6);
+ draw z1--z6;
+ fill_corners(1,6);
+endchar;
+
+OCRchar("C", W#, H#); "Lettre C";
+ x1 = W; y1 = H;
+ x2 = 3/8W; y2 = y1;
+ x3 = 0; y3 = y4 + 1/8H;
+ x4 = x3; y4 = 7/16H;
+ x5 = x2; y5 = 0;
+ x6 = x1; y6 = y5;
+ z7 = (z2--z3+(z3-z2)) intersectionpoint (z5--z4+(z4-z5));
+
+ join_radius := T;
+ draw (z1--z2) join (z2--.6[z2,z3]);
+ draw (z6--z5) join (z5--.6[z5,z4]);
+ join_radius := r1;
+ draw (.4[z2,z3]--z7) join (z7--.6[z4,z5]);
+endchar;
+
+OCRchar("D", W#, H#); "Lettre D";
+ x1 = 0; y1 = 0;
+ x2 = 1/4W; y2 = y1;
+ x3 = 5/8W; y3 = y1;
+ x4 = W; y4 = 7/16H;
+ x5 = x4; y5 = y4 + 1/8H;
+ x6 = x3; y6 = H;
+ x7 = x2; y7 = y6;
+ x8 = x1; y8 = y6;
+ z9 = (z3--z4+(z4-z3)) intersectionpoint (z6--z5+(z5-z6));
+
+ join_radius := T;
+ draw (z1--z3) join (z3--.6[z3,z4]);
+ draw (z8--z6) join (z6--.6[z6,z5]);
+ join_radius := r1;
+ draw (.4[z3,z4]--z9) join (z9--.6[z5,z6]);
+ draw z2--z7;
+endchar;
+
+OCRchar("E", W#, H#); "Lettre E";
+ x1 = W; y1 = 0;
+ x2 = 0; y2 = y1;
+ x3 = x2; y3 = 1/2H;
+ x4 = 1/2W; y4 = y3;
+ x5 = x2; y5 = H;
+ x6 = x1; y6 = y5;
+
+ draw z1--z2--z3--z4; draw z3--z5--z6;
+ fill_corners(2,5);
+endchar;
+
+OCRchar("F", W#, H#); "Lettre F";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = 5/8H;
+ x3 = 3/4W; y3 = y2;
+ x4 = x1; y4 = H;
+ x5 = W; y5 = y4;
+
+ draw z1--z2--z3; draw z2--z4--z5;
+ fill_corners(4);
+endchar;
+
+OCRchar("G", W#, H#); "Lettre G";
+ x1 = 5/8W; y1 = 3/8H;
+ x2 = W; y2 = y1;
+ x3 = x2; y3 = 0;
+ x4 = 0; y4 = y3;
+ x5 = x4; y5 = 5/8H;
+ x6 = 1/2W; y6 = H;
+ x7 = x2; y7 = y6;
+
+ join_radius := T;
+ draw (z1--z2--z3) join (z3--.6[z3,z4]);
+ draw (.4[z3,z4]--z4) join (z4--.6[z4,z5]);
+ join_radius := 3/2T;
+ draw (.4[z4,z5]--z5) join (z5--.6[z5,z6]);
+ join_radius := T;
+ draw (.4[z5,z6]--z6) join (z6--z7);
+ fill_corners(2);
+endchar;
+
+OCRchar("H", W#, H#); "Lettre H";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = H;
+ x3 = W; y3 = y1;
+ x4 = x3; y4 = y2;
+
+ draw z1--z2; draw z3--z4; draw .5[z1,z2]--.5[z3,z4];
+endchar;
+
+OCRchar("I", W#, H#); "Lettre I";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = H;
+ x3 = W; y3 = y1;
+ x4 = x3; y4 = y2;
+
+ draw z1--z3; draw z2--z4; draw .5[z1,z3]--.5[z2,z4];
+endchar;
+
+OCRchar("J", 3/4W#, H#); "Lettre J";
+ x1 = 0; y1 = 3/8H;
+ x2 = x1; y2 = 0;
+ x3 = 3/4W; y3 = y2;
+ x4 = x3; y4 = H;
+
+ join_radius := T;
+ draw (z1--z2) join ((z2--z3) join (z3--z4));
+endchar;
+
+OCRchar("K", W#, H#); "Lettre K";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = H;
+ x3 = W; y3 = y1;
+ x4 = x3; y4 = y2;
+
+ draw z1--z2; draw .5[z1,z2]--z3; draw .5[z1,z2]--z4;
+endchar;
+
+OCRchar("L", W#, H#); "Lettre L";
+ x1 = 0; y1 = H;
+ x2 = x1; y2 = 0;
+ x3 = W; y3 = y2;
+
+ draw z1--z2--z3;
+ fill_corners(2);
+endchar;
+
+OCRchar("M", W#, H#); "Lettre M";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = H;
+ x3 = 1/8W; y3 = y2;
+ x4 = 1/2W; y4 = y5+1/16H;
+ x5 = x4; y5 = 5/8H;
+ x6 = W-1/8W; y6 = y2;
+ x7 = W; y7 = y2;
+ x8 = x7; y8 = y1;
+
+ draw z1--z2--z3--z4--z5--z4--z6--z7--z8;
+ fill_corners(2,7);
+ angle_fill_corner(2,3,4);
+ angle_fill_corner(4,6,7);
+endchar;
+
+OCRchar("N", W#, H#); "Lettre N";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = H;
+ x3 = 1/8W; y3 = y2;
+ x4 = W-1/8W; y4 = y1;
+ x5 = W; y5 = y1;
+ x6 = x5; y6 = y2;
+
+ draw z1--z2--z3--z4--z5--z6;
+ fill_corners(2,5);
+ angle_fill_corner(2,3,4);
+ angle_fill_corner(3,4,5);
+endchar;
+
+OCRchar("O", W#, H#); "Lettre O";
+ x1 = 0; y1 = 7/16H;
+ x2 = 3/8W; y2 = 0;
+ x3 = x2+1/4W; y3 = y2;
+ x4 = W; y4 = y1;
+ x5 = x4; y5 = y4+1/8H;
+ x6 = x3; y6 = H;
+ x7 = x2; y7 = y6;
+ x8 = x1; y8 = y5;
+ z10 = (z1--z2+(z2-z1)) intersectionpoint (z3+(z3-z4)--z4);
+ z11 = (z3--z4+(z4-z3)) intersectionpoint (z5+(z5-z6)--z6);
+ z12 = (z5--z6+(z6-z5)) intersectionpoint (z7+(z7-z8)--z8);
+ z13 = (z7--z8+(z8-z7)) intersectionpoint (z1+(z1-z2)--z2);
+
+ join_radius := r2;
+ draw (.4[z13,z10]--z10) join (z10--.6[z10,z11]);
+ draw (.4[z11,z12]--z12) join (z12--.6[z12,z13]);
+ join_radius := r1;
+ draw (.4[z10,z11]--z11) join (z11--.6[z11,z12]);
+ draw (.4[z12,z13]--z13) join (z13--.6[z13,z10]);
+ picture O_char; O_char := currentpicture;
+endchar;
+
+OCRchar("P", W#, H#); "Lettre P";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = 7/16H;
+ x3 = x1; y3 = H;
+ x4 = W; y4 = y3;
+ x5 = x4; y5 = y2;
+
+ join_radius := T;
+ draw (z1--z3--z4) join (z4--.6[z4,z5]);
+ draw (.4[z4,z5]--z5) join (z5--z2);
+ fill_corners(3);
+endchar;
+
+OCRchar("Q", W#, H#); "Lettre Q";
+ x1 = 0; y1 = 0;
+ x2 = 1/4W; y2 = y1;
+ x3 = W; y3 = 3/8H;
+ x4 = x3; y4 = H;
+ x5 = W-1/4W; y5 = y4;
+ x6 = x1; y6 = 5/8H;
+ x7 = 1/2W; y7 = y3;
+ x8 = x5; y8 = y1;
+ x9 = x3; y9 = y1;
+ z10 = (z6--z1+(z1-z6)) intersectionpoint (z2-(z3-z2)--z3);
+ z11 = (z3--z4+(z4-z3)) intersectionpoint (z5-(z6-z5)--z6);
+
+ join_radius := r3;
+ draw (.4[z6,z10]--z10) join (z10--.6[z10,z3]);
+ draw (.4[z3,z11]--z11) join (z11--.6[z11,z6]);
+ join_radius := T;
+ draw (.4[z2,z3]--z3) join (z3--.6[z3,z4]);
+ draw (.4[z5,z6]--z6) join (z6--.6[z6,z1]);
+ draw z7--z8--z9;
+ angle_fill_corner(7,8,9);
+endchar;
+
+OCRchar("R", W#, H#); "Lettre R";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = 5/8H;
+ x3 = x1; y3 = H;
+ x4 = W; y4 = y3;
+ x5 = x4; y5 = y2;
+ x6 = W-5/8W; y6 = y2;
+ x7 = x4; y7 = y1;
+
+ join_radius := T;
+ draw (z1--z3--z4) join (z4--.6[z4,z5]);
+ draw (.4[z4,z5]--z5) join (z5--z2);
+ draw z6--z7;
+ fill_corners(3);
+endchar;
+
+OCRchar("S", W#, H#); "Lettre S";
+ x1 = 0; y1 = 1/8H;
+ x2 = x1; y2 = 0;
+ x3 = W; y3 = y2;
+ x4 = x3; y4 = y1;
+ x5 = x1; y5 = H-1/8H;
+ x6 = x1; y6 = H;
+ x7 = x3; y7 = y6;
+ x8 = x3; y8 = y5;
+
+ path p; p = z4-(z5-z4)--z5+(z5-z4);
+ z10 = (z2--z3+(z3-z2)) intersectionpoint p;
+ z11 = (z6-(z7-z6)--z7) intersectionpoint p;
+
+ join_radius := 1/8H;
+ draw (z1--z2) join (z2--.6[z2,z3]);
+ draw (.4[z6,z7]--z7) join (z7--z8);
+ join_radius := r4;
+ draw (.4[z2,z3]--z10) join (z10--.6[z10,z11]);
+ draw (.4[z10,z11]--z11) join (z11--.6[z6,z7]);
+endchar;
+
+OCRchar("T", W#, H#); "Lettre T";
+ x1 = 1/2W; y1 = 0;
+ x2 = x1; y2 = H;
+ x3 = 0; y3 = H-1/8H;
+ x4 = x3; y4 = y2;
+ x5 = W; y5 = y4;
+ x6 = x5; y6 = y3;
+
+ draw z1--z2;
+ draw z3--z4--z5--z6;
+ fill_corners(4,5);
+endchar;
+
+OCRchar("U", W#, H#); "Lettre U";
+ x1 = 0; y1 = H;
+ x2 = x1; y2 = 0;
+ x3 = W; y3 = y2;
+ x4 = x3; y4 = y1;
+
+ join_radius := T;
+ draw ((z1--z2) join (z2--z3)) join (z3--z4);
+endchar;
+
+OCRchar("V", W#, H#); "Lettre V";
+ x1 = 0; y1 = H;
+ x2 = x1; y2 = 3/4H;
+ x3 = 1/2W; y3 = 0;
+ x4 = W; y4 = y2;
+ x5 = x4; y5 = y1;
+
+ draw z1--z2--z3--z4--z5;
+ angle_fill_corner(1,2,3); angle_fill_corner(3,4,5);
+endchar;
+
+OCRchar("W", W#, H#); "Lettre W";
+ x1 = 0; y1 = H;
+ x2 = x1; y2 = 1/8H;
+ x3 = 1/8W; y3 = 0;
+ x4 = 3/8W; y4 = y3;
+ x5 = 1/2W; y5 = y2;
+ x6 = x5; y6 = 5/8H;
+ x7 = W-x4; y7 = y4;
+ x8 = W-x3; y8 = y3;
+ x9 = W; y9 = y2;
+ x10 = x9; y10 = y1;
+
+ draw z1--z2--z3--z4--z5--z6; draw z5--z7--z8--z9--z10;
+ angle_fill_corner(1,2,3); angle_fill_corner(8,9,10);
+endchar;
+
+OCRchar("X", W#, H#); "Lettre X";
+ x1 = 0; y1 = H;
+ x2 = W; y2 = 0;
+ x3 = x1; y3 = y2;
+ x4 = x2; y4 = y1;
+
+ draw z1--z2; draw z3--z4;
+endchar;
+
+OCRchar("Y", W#, H#); "Lettre Y";
+ x1 = 0; y1 = H;
+ x2 = x1; y2 = H-1/8H;
+ x3 = 1/2W; y3 = 1/2H;
+ x4 = x3; y4 = 0;
+ x5 = W; y5 = y2;
+ x6 = x5; y6 = y1;
+
+ draw z1--z2--z3--z4; draw z3--z5--z6;
+ angle_fill_corner(1,2,3); angle_fill_corner(3,5,6);
+endchar;
+
+OCRchar("Z", W#, H#); "Lettre Z";
+ x1 = 0; y1 = H;
+ x2 = W; y2 = y1;
+ x3 = x1; y3 = 0;
+ x4 = x2; y4 = y3;
+
+ draw z1--z2--z3--z4;
+ fill_corners(2,3);
+ unfill unitsquare shifted (-1.5,-.5) scaled T
+ rotated (angle (z2-z3) - 90) shifted z3;
+ unfill unitsquare shifted (.5,-.5) scaled T
+ rotated (angle (z2-z3) - 90) shifted z2;
+endchar;
+
+OCRchar(3, W#, H#); "Lettre \AA";
+ x1 = 0; y1 = 0;
+ x2 = 1/2W; y2 = H;
+ z3 = 1/4[z1,z2];
+ z4 = 3/4[z1,z2];
+ x5 = W; y5 = y1;
+ z6 = 1/4[z5,z2];
+ z7 = 3/4[z5,z2];
+ x8 = 1/8W; y8 = y4;
+ x9 = x8; y9 = y2;
+ x10 = 7/8W; y10 = y9;
+ x11 = x10; y11 = y8;
+
+ draw z1--z4; draw z5--z7; draw z3--z6;
+ join_radius := T/2;
+ draw (.4[z8,z9]--z9) join (z9--.6[z9,z10]);
+ draw (.4[z9,z10]--z10) join (z10--.6[z10,z11]);
+ draw (.4[z10,z11]--z11) join (z11--.6[z11,z8]);
+ draw (.4[z11,z8]--z8) join (z8--.6[z8,z9]);
+endchar;
+
+OCRchar(4, W#, H#); "Lettre \"&ditto&"A";
+ x1 = 0; y1 = 0;
+ x2 = 1/2W; y2 = 3/4H;
+ x3 = W; y3 = y1;
+ z4 = 3/16[z1,z2];
+ z5 = 3/16[z3,z2];
+ x6 = x1; y6 = H;
+ x7 = x6; y7 = H-1/8H;
+ x8 = x3; y8 = y6;
+ x9 = x8; y9 = y7;
+
+ draw z1--z2--z3; draw z4--z5; draw z6--z7; draw z8--z9;
+endchar;
+
+OCRchar(29, W#, H#); "Lettre \AE";
+ x1 = 0; y1 = 0;
+ x2 = 1/2W; y2 = H;
+ x3 = 5/8W; y3 = y2;
+ x4 = x3; y4 = y1;
+ z5 = 1/4[z1,z2];
+ z6 = 1/4[z4,z3];
+ x7 = W; y7 = y2;
+ z8 = 1/2[z4,z3];
+ x9 = x7; y9 = y8;
+ x10 = x7; y10 = y1;
+
+ draw z1--z2--z3--z4--z10; draw z5--z6;
+ draw z3--z7; draw z8--z9;
+endchar;
+
+OCRchar(5, W#, H#); "Lettre \~N";
+ x1 = 0; y1 = 0;
+ x2 = x1; y2 = 5/8H;
+ x3 = W; y3 = y1;
+ x4 = x3; y4 = y2;
+ x5 = x1; y5 = H-1/16H;
+ x6 = x5; y6 = H;
+ x7 = x3; y7 = y5;
+ x8 = x7; y8 = y6;
+
+ draw z1--z2--z3--z4;
+ draw z5--z6--z7--z8;
+endchar;
+
+OCRchar(31, W#, H#); "Lettre \O";
+ currentpicture := O_char;
+ x1 = 0; y1 = 0;
+ x2 = W; y2 = H;
+
+ draw z1--z2;
+endchar;
+
+OCRchar(6, W#, H#); "Lettre \"&ditto&"O";
+ x1 = 0; y1 = 5/16H;
+ x2 = 3/8W; y2 = 0;
+ x3 = x2+1/4W; y3 = y2;
+ x4 = W; y4 = y1;
+ x5 = x4; y5 = y4+1/8H;
+ x6 = x3; y6 = 3/4H;
+ x7 = x2; y7 = y6;
+ x8 = x1; y8 = y5;
+ z10 = (z1--z2+(z2-z1)) intersectionpoint (z3+(z3-z4)--z4);
+ z11 = (z3--z4+(z4-z3)) intersectionpoint (z5+(z5-z6)--z6);
+ z12 = (z5--z6+(z6-z5)) intersectionpoint (z7+(z7-z8)--z8);
+ z13 = (z7--z8+(z8-z7)) intersectionpoint (z1+(z1-z2)--z2);
+ x14 = x1; y14 = H-1/8H;
+ x15 = x14; y15 = H;
+ x16 = x4; y16 = y14;
+ x17 = x16; y17 = y15;
+
+ join_radius := r6;
+ draw (.4[z13,z10]--z10) join (z10--.6[z10,z11]);
+ draw (.4[z11,z12]--z12) join (z12--.6[z12,z13]);
+ join_radius := r5;
+ draw (.4[z10,z11]--z11) join (z11--.6[z11,z12]);
+ draw (.4[z12,z13]--z13) join (z13--.6[z13,z10]);
+ draw z14--z15; draw z16--z17;
+endchar;
+
+OCRchar(7, W#, H#); "Lettre \"&ditto&"U";
+ x1 = 0; y1 = 3/4H;
+ x2 = x1; y2 = 0;
+ x3 = W; y3 = y2;
+ x4 = x3; y4 = y1;
+ x5 = 1/4W; y5 = H-1/8H;
+ x6 = x5; y6 = H;
+ x7 = x5+1/2W; y7 = y5;
+ x8 = x7; y8 = y6;
+
+ join_radius := T;
+ draw (z1--z2) join (z2--.6[z2,z3]);
+ draw (.4[z2,z3]--z3) join (z3--z4);
+ draw z5--z6; draw z7--z8;
+endchar;
+
+OCRchar(".", 1/4W#, 3/16H#+1/8H#); "Point";
+ x1 = 0; y1 = 3/16H;
+ x2 = 1/4W; y2 = y1;
+ x3 = x2; y3 = y1+1/8H;
+ x4 = x1; y4 = y3;
+
+ draw z1--z2--z3--z4--cycle;
+endchar;
+
+OCRchar(",", 1/2W#, 3/8H#); "Virgule";
+ x1 = 0; y1 = 3/8H;
+ x2 = 1/2W; y2 = y1;
+ x3 = x2; y3 = 0;
+
+ draw z1--z2--z3;
+endchar;
+
+OCRchar(":", 1/4W#, 3/16H#+1/8H#+3/8H#+1/8H#); "Deux points";
+ x1 = 0; y1 = 3/16H;
+ x2 = 1/4W; y2 = y1;
+ x3 = x2; y3 = y2+1/8H;
+ x4 = x1; y4 = y3;
+ x5 = x1; y5 = y4+3/8H;
+ x6 = x2; y6 = y5;
+ x7 = x6; y7 = y6+1/8H;
+ x8 = x5; y8 = y7;
+
+ draw z1--z2--z3--z4--cycle;
+ draw z5--z6--z7--z8--cycle;
+endchar;
+
+OCRchar(";", 1/2W#, 7/8H#); "Point virgule";
+ x1 = 0; y1 = 3/8H;
+ x2 = 1/2W; y2 = y1;
+ x3 = x2; y3 = 0;
+ x4 = x1; y4 = 3/4H;
+ x5 = 1/4W; y5 = y4;
+ x6 = x5; y6 = 7/8H;
+ x7 = x4; y7 = y6;
+
+ draw z1--z2--z3;
+ draw z4--z5--z6--z7--cycle;
+endchar;
+
+OCRchar("=", W#, 3/8H#+5/16H#); "Egale";
+ x1 = 0; y1 = 3/8H;
+ x2 = W; y2 = y1;
+ x3 = x1; y3 = y1+5/16H;
+ x4 = x2; y4 = y3;
+
+ draw z1--z2; draw z3--z4;
+endchar;
+
+OCRchar("+", W#, 1/2H#-1/2W#+W#); "Plus";
+ x1 = 0; y1 = 1/2H;
+ x2 = W; y2 = y1;
+ x3 = 1/2W; y3 = 1/2H-1/2W;
+ x4 = x3; y4 = y3+W;
+
+ draw z1--z2; draw z3--z4;
+endchar;
+
+OCRchar("/", W#, H#); "Barre oblique";
+ x1 = 0; y1 = 0;
+ x2 = W; y2 = H;
+
+ draw z1--z2;
+endchar;
+
+OCRchar("*", W#, 1/8H#+3/4H#); "Ast\'erisque";
+ x1 = 0; y1 = 1/4H;
+ x2 = 1/2W; y2 = 1/8H;
+ x3 = W; y3 = y1;
+ x4 = x3; y4 = 3/4H;
+ x5 = x2; y5 = y2+3/4H;
+ x6 = x1; y6 = y4;
+
+ draw z1--z4; draw z2--z5; draw z3--z6;
+endchar;
+
+OCRchar(ditto, W#, H#); "Guillemet";
+ x1 = 0; y1 = H;
+ x2 = 1/8W; y2 = 5/8H;
+ x3 = 1/4W; y3 = y1;
+ x4 = 3/4W; y4 = y1;
+ x5 = x4+1/8W; y5 = y2;
+ x6 = W; y6 = y1;
+
+ draw z3--z1--z2--z3--z4--z5--z6--z4;
+ fill_corners(1,6);
+ unfill unitsquare shifted (-1.5,-.5) rotated (angle (z1-z2) - 90)
+ scaled T shifted z1;
+ unfill unitsquare shifted (1.5,-.5) rotated (90 - angle (z6-z5))
+ scaled T shifted z6;
+endchar;
+
+OCRchar("{", W#, H#); "Parenth\`ese gauche";
+ x1 = 0; y1 = 1/2H;
+ x2 = 1/2W; y2 = y1;
+ x3 = x2; y3 = 0;
+ x4 = W; y4 = y3;
+ x5 = x2; y5 = H;
+ x6 = x4; y6 = y5;
+
+ join_radius := T;
+ draw (z1--z2) join (z2--.6[z2,z3]);
+ draw (z1--z2) join (z2--.6[z2,z5]);
+ join_radius := 1/2T;
+ draw (.4[z2,z3]--z3) join (z3--z4);
+ draw (.4[z2,z5]--z5) join (z5--z6);
+endchar;
+
+OCRchar("}", W#, H#); "Parenth\`ese droite";
+ x1 = W; y1 = 1/2H;
+ x2 = 1/2W; y2 = y1;
+ x3 = x2; y3 = 0;
+ x4 = 0; y4 = y3;
+ x5 = x2; y5 = H;
+ x6 = x4; y6 = y5;
+
+ join_radius := T;
+ draw (z1--z2) join (z2--.6[z2,z3]);
+ draw (z1--z2) join (z2--.6[z2,z5]);
+ join_radius := 1/2T;
+ draw (.4[z2,z3]--z3) join (z3--z4);
+ draw (.4[z2,z5]--z5) join (z5--z6);
+endchar;
+
+OCRchar("%", W#, H#); "Pour cent";
+ x1 = 0; y1 = 1/8H;
+ x2 = W; y2 = y1+3/4H;
+ x3 = x1; y3 = y2;
+ x4 = x3+1/4W; y4 = y3;
+ x5 = x4; y5 = H;
+ x6 = x3; y6 = y5;
+ x7 = x2-1/4W; y7 = 0;
+ x8 = x2; y8 = y7;
+ x9 = x8; y9 = y1;
+ x10 = x7; y10 = y9;
+
+ draw z1--z2;
+ draw z3--z4--z5--z6--cycle;
+ draw z7--z8--z9--z10--cycle;
+endchar;
+
+OCRchar("?", W#, H#); "Point d' interrogation";
+ x1 = 0; y1 = H-3/8H;
+ x2 = W-1/4W; y2 = H;
+ x3 = W; y3 = H-1/8H;
+ x4 = x3; y4 = 3/4H;
+ x5 = 1/4W; y5 = y6+1/8H;
+ x6 = x5; y6 = 1/4H;
+ x7 = x5; y7 = 0;
+
+ draw z1--z2--z3--z4--z5--z6; drawdot z7;
+endchar;
+
+OCRchar("&", W#, 7/8H#); "Perlu\`ete";
+ x1 = W; y1 = 0;
+ x2 = 0; y2 = y6+3/8H;
+ x3 = x2; y3 = 7/8H;
+ x4 = 3/4W; y4 = y3;
+ x5 = x4; y5 = y2;
+ x6 = x2; y6 = 1/4H;
+ x7 = x2; y7 = y1;
+ x8 = 1/2W; y8 = y1;
+ x9 = x1; y9 = y6;
+
+ join_radius := T;
+ draw (z1--z2--z3) join (z3--.6[z3,z4]);
+ draw (.4[z3,z4]--z4) join (z4--z5);
+ draw (z5--z6--z7) join (z7--z8--z9);
+endchar;
+
+OCRchar("'", 1/4W#, H#); "Apostrophe";
+ x1 = 0; y1 = H;
+ x2 = 1/8W; y2 = 5/8H;
+ x3 = 1/4W; y3 = y1;
+
+ draw z1--z2--z3--cycle;
+endchar;
+
+OCRchar("-", W#, 1/2H#); "Moins, trait d'union";
+ x1 = 0; y1 = 1/2H;
+ x2 = W; y2 = y1;
+
+ draw z1--z2;
+endchar;
+
+OCRchar("$", W#, H#); "Symbole dollar";
+ x1 = 0; y1 = 1/4H;
+ x2 = W; y2 = y1;
+ x3 = x2; y3 = 1/2H;
+ x4 = x1; y4 = y3;
+ x5 = x1; y5 = y4+1/4H;
+ x6 = x2; y6 = y5;
+ x7 = 1/2W; y7 = 0;
+ x8 = x7; y8 = y1;
+ x9 = x7; y9 = y5;
+ x10 = x7; y10 = H;
+
+ draw z1--z2--z3--z4--z5--z6; draw z7--z8; draw z9--z10;
+endchar;
+
+OCRchar(8, W#, H#); "Symbole livre";
+ x1 = 0; y1 = 0;
+ x2 = W; y2 = y1;
+ x3 = 1/4W; y3 = y1;
+ x4 = x2-1/4W; y4 = H;
+ x5 = x2; y5 = y4;
+ x6 = x1; y6 = 1/2H;
+ x7 = x2; y7 = y6;
+
+ join_radius := T;
+ draw z1--z2; draw (z3--z4) join (z4--z5); draw z6--z7;
+endchar;
+
+OCRchar(9, W#, H#); "Symbole yen";
+ x1 = 0; y1 = H;
+ x2 = 1/2W; y2 = 1/2H;
+ x3 = W; y3 = y1;
+ x4 = x2; y4 = 0;
+ x5 = x1; y5 = 3/8H;
+ x6 = x3; y6 = y5;
+
+ draw z1--z2--z3; draw z2--z4; draw z5--z6;
+endchar;
+
+designsize := L#;
+
+font_slant := 0;
+font_quad := 2W#;
+font_normal_space := W#;
+font_normal_stretch := .5W#;
+font_normal_shrink := .4W#;
+font_xheight := H#;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-ai.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-ai.mf
new file mode 100644
index 00000000000..169c37f7d73
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-ai.mf
@@ -0,0 +1,8 @@
+% OCR-A Size I
+
+H# = 2.4mm#;
+W# = 1.4mm#;
+T# = .35mm#;
+L# = 3.73mm#;
+
+input OCR-A;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aii.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aii.mf
new file mode 100644
index 00000000000..32e48f4bf86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aii.mf
@@ -0,0 +1,8 @@
+% OCR-A Size II
+
+H# = 2.84mm#;
+W# = 1.4mm#;
+T# = .35mm#;
+L# = 4.42mm#;
+
+input OCR-A;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiii.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiii.mf
new file mode 100644
index 00000000000..33df84c7db4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiii.mf
@@ -0,0 +1,8 @@
+% OCR-A Size III
+
+H# = 3.20mm#;
+W# = 1.52mm#;
+T# = .38mm#;
+L# = 4.98mm#;
+
+input OCR-A;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiv.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiv.mf
new file mode 100644
index 00000000000..737ab41d95b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ocr-a/ocr-aiv.mf
@@ -0,0 +1,8 @@
+% OCR-A Size IV
+
+H# = 3.80mm#;
+W# = 2.04mm#;
+T# = .51mm#;
+L# = 5.91mm#;
+
+input OCR-A;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr.mf
new file mode 100644
index 00000000000..373e9c3838f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ocr-a/ocr.mf
@@ -0,0 +1,2133 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% METAFONT-84 Definition for OCR-A Optical Character Recognition Font
+% (C) Copyright 1988, 1989 Richard B. Wales. All Rights Reserved.
+%
+% Coded by:
+%
+% Richard B. Wales
+% Computer Science Department
+% University of California, Los Angeles (UCLA)
+% Los Angeles, California 90024-1596 (USA)
+% +1 (213) 825-5683
+% wales@CS.UCLA.EDU
+%
+% Source of information:
+%
+% ANSI Standard X3.17-1977 (approved January 20, 1977, by the
+% American National Standards Institute, Inc.)
+%
+% Based on an earlier version by:
+%
+% Tor Lillqvist
+% Computing Services
+% Technical Research Centre of Finland
+% TML@FINGATE.BITNET; mcvax!santra!tml
+%
+% Terms of copyright:
+%
+% You may do anything you wish with this font definition, as
+% long as you retain the original copyright notice and credit
+% information intact in the source, and do not charge any fee
+% for distribution of either the source or any fonts derived
+% from it beyond a reasonable copying or communications charge.
+%
+% Disclaimer:
+%
+% While I have made every reasonable effort to make this font
+% definition correspond to the specifications in ANSI Standard
+% X3.17-1977, I do not guarantee that it conforms fully to all
+% official requirements for the OCR-A font, nor that the char-
+% acters produced from this definition will be usable by any
+% particular OCR hardware and/or software. It is the respon-
+% sibility of the user to determine the usability of this font
+% definition for his application. Use of this font definition
+% is totally at the user's own risk and without any warranty
+% whatsoever, express or implied. Neither the author nor his
+% employer will be responsible for any damages, including
+% secondary or consequential damages, arising out of the use of
+% this font definition.
+%
+% The four ASCII characters "Tilde", "Underline", "Grave Accent",
+% and "Vertical Bar" do not appear as part of ANSI X3.17-1977.
+% In order to make a complete ASCII character set, I supplemented
+% the standard with my own designs for these four characters.
+% Since these characters are not part of any standard, they will
+% presumably *NOT* be readable by any existing OCR-A equipment.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Much of the following material is copied essentially intact from
+% Lillqvist's work; specifically, the "join", "fill_corners", and
+% "angle_fill_corner" routines.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%
+% Miscellaneous stuff.
+%
+mode_setup;
+% letter_fit# := 1.25T#;
+letter_fit# := 0;
+define_whole_pixels (W, H, L, T, Y, R, letter_fit); % round off
+theta := (2*94/55)*(W/H); % 2-degree angle for some small letters
+def adjust_fit =
+ l := -letter_fit;
+ interim xoffset := -l;
+ charwd := charwd + 2letter_fit#;
+ r := l + hround (charwd*hppp);
+ w := r - letter_fit;
+enddef;
+extra_beginchar := extra_beginchar & "adjust_fit;";
+extra_endchar := extra_endchar & "penlabels (range 1 thru 20);";
+
+
+%
+% Curvature radii defined in ANSI X3.17 for various characters.
+%
+r1# = H#/16 * ((7H#)/(6W#) + sqrt(((7H#)/(6W#))**2 + 1));
+r2# = W#/8 * ((6W#)/(7H#) + sqrt(((6W#)/(7H#))**2 + 1));
+r3# = W#/8 * (1 - H#/(2W#) + sqrt((H#/(2W#))**2 + 1));
+r4# = H#/16 * (1 - (4W#)/(3H#) + sqrt(((4W#)/(3H#))**2 + 1));
+r5# = H#/16 * (1 - (5H#)/(6W#) + sqrt(((5H#)/(6W#))**2 + 1));
+r6# = W#/8 * (1 - (6W#)/(5H#) + sqrt(((6W#)/(5H#))**2 + 1));
+define_pixels (r1, r2, r3, r4, r5, r6);
+
+
+%
+% ocrpen:
+% A circular pen of diameter T; used for virtually all characters.
+%
+pickup pencircle scaled T;
+ocrpen := savepen;
+
+
+%
+% "ocrchar" macro:
+% Used at the start of almost every character definition. Note
+% that the point "z0" is the lower left-hand corner of most char-
+% acters. The height of the bounding box is equal to the full
+% height of the character (including stroke thickness), and the
+% characters are all centered left-to-right within the box. This
+% requires all character point definitions to be stated relative
+% to the point "z0".
+%
+def ocrchar (expr code) =
+ beginchar (code, R#, H#+T#, 0);
+ pickup ocrpen;
+ join_radius := T/2;
+ z0 = ((R-W)/2, T/2);
+enddef;
+
+
+%
+% "join" operator:
+% Joins two strokes so that the pen center curvature radius
+% is "join_radius". ("join_radius" must already be defined.)
+%
+tertiarydef p join q =
+ begingroup
+ % "ipq_" is the point where the paths "p" and "q" would cross.
+ pair ipq_;
+ ipq_ := p intersectionpoint q;
+
+ % "dirv0" is the angular direction at the end of "p";
+ % "dirv1" is the angular direction at the start of "q".
+ pair dirv[];
+ dirv0 = dir angle direction (length p) of p;
+ dirv1 = dir angle direction 0 of q;
+
+ % If the directions of "p" and "q" are close enough,
+ % just connect the paths without any fancy stuff.
+ if length (dirv1 - dirv0) < 1/10:
+ p .. q
+
+ % Otherwise, compute a joining of the required curvature.
+ else:
+ path par[];
+ k_ := if ypart (dirv1 rotated -angle dirv0) > 0:
+ 90 else: -90 fi;
+ forsuffixes $=0, 1:
+ par$ := ((ipq_ - (20join_radius*dirv$))--
+ (ipq_ + (20join_radius*dirv$)))
+ shifted ((join_radius*dirv$) rotated k_);
+ endfor;
+ numeric pt_, qt_;
+ (pt_, qt_) = par0 intersectiontimes par1;
+ if pt_ < 0:
+ errmessage "No intersection curvature center found";
+ fi
+ pair icc_; icc_ = point pt_ of par0;
+ numeric cp_, cpp_, cq_, cqp_;
+ (cp_, cpp_) = p intersectiontimes
+ (icc_--icc_+(2join_radius*dirv0 rotated -k_));
+ (cq_, cqp_) = q intersectiontimes
+ (icc_--icc_+(2join_radius*dirv1 rotated -k_));
+ subpath (0, cp_) of p ..
+ (icc_ + join_radius*unitvector(dirv0-dirv1)) ..
+ subpath (cq_, length q) of q
+ fi
+ endgroup
+enddef;
+
+
+%
+% "fill_corners" macro:
+% Fills in one or more corners to be sharp right-angle bends.
+%
+def fill_corners (text t) =
+ begingroup
+ forsuffixes $=t:
+ fill unitsquare shifted (-.5, -.5) scaled T shifted z$;
+ endfor
+ endgroup
+enddef;
+
+
+%
+% "angle_fill_corners" macro:
+% Fills in a corner to be a sharp bend, but not a right angle.
+% The parameters are three points that define the angle, with
+% the corner specified second.
+%
+def angle_fill_corner (suffix a, b, c) =
+ begingroup
+ save p;
+ path p.q, p.w, p.e, p.r;
+ p.q = (z.a--z.b+(z.b-z.a))
+ shifted (T/2*unitvector (z.b-z.a) rotated 90);
+ p.w = (z.a--z.b+(z.b-z.a))
+ shifted (T/2*unitvector (z.b-z.a) rotated -90);
+ p.e = (z.b-(z.c-z.b)--z.c)
+ shifted (T/2*unitvector (z.c-z.b) rotated 90);
+ p.r = (z.b-(z.c-z.b)--z.c)
+ shifted (T/2*unitvector (z.c-z.b) rotated -90);
+
+ save q;
+ pair q.u, q.l;
+ q.u = p.q intersectionpoint p.e;
+ q.l = p.w intersectionpoint p.r;
+
+ fill point 0 of p.q -- q.u -- point 1 of p.e --
+ point 1 of p.r -- q.l -- point 0 of p.w -- cycle;
+ endgroup
+enddef;
+
+
+%
+% "to_mid" macro:
+% Defines a path starting at the first point and continuing to
+% a point between the two points (slightly past the middle).
+%
+def to_mid (expr a, b) =
+ (a -- .6[a,b])
+enddef;
+
+
+%
+% "from_mid" macro:
+% Defines a path starting between two points (slightly before the
+% middle) and continuing to the second point.
+%
+def from_mid (expr a, b) =
+ (.4[a,b] -- b)
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% CHARACTER DEFINITIONS %
+% %
+% For debugging purposes, you may wish to remove the initial "%%%" %
+% from the "def" and "enddef" lines below. This will allow you to %
+% invoke the character definitions one at a time (e.g., to inspect %
+% them on a bit-mapped display). %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Digits.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_zero =
+ ocrchar ("0"); "Number ZERO";
+ z1 = (x0, y0); z2 = (x0+W, y1);
+ z3 = (x2, y0+H); z4 = (x1, y3);
+
+ draw from_mid (z1, z2)
+ join (z2 -- z3)
+ join to_mid (z3, z4);
+ draw from_mid (z3, z4)
+ join (z4 -- z1)
+ join to_mid (z1, z2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_one =
+ ocrchar ("1"); "Number ONE";
+ z1 = (x0, y0); z2 = (x0+W, y1); z3 = (x2, y0+3/8H);
+ z4 = .5[z1,z2]; z5 = (x4, y0+H); z6 = (x1, y5);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5 -- z6;
+ fill_corners (5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_two =
+ ocrchar ("2"); "Number TWO";
+ z1 = (x0+W, y0); z2 = (x0, y1); z3 = (x2, y0+1/2H);
+ z4 = (x1, y3); z5 = (x1, y0+H); z6 = (x2, y5);
+
+ draw (z1 -- z2 -- z3)
+ join (z3 -- z4)
+ join (z4 -- z5)
+ join (z5 -- z6);
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_three =
+ ocrchar ("3"); "Number THREE";
+ z1 = (x0, y0); z2 = (x0+W, y1); z3 = (x2, y0+1/2H);
+ z4 = (x0+1/4W, y3); z5 = (x0+W, y0+H); z6 = (x0, y5);
+
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z3, z5)
+ join (z5 -- z6);
+ join_radius := T;
+ draw from_mid (z2, z3)
+ join (z3 -- z4);
+ draw (z4 -- z3)
+ join to_mid (z3,z5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_four =
+ ocrchar ("4"); "Number FOUR";
+ z1 = (x0+13/16W, y0); z2 = (x1, y0+7/8H);
+ z3 = (x0+15/16W, y0+3/8H); z4 = (x0+1/16W, y3); z5 = (x4, y0+H);
+
+ draw z1 -- z2;
+ draw z3 -- z4 -- z5;
+ fill_corners (4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_five =
+ ocrchar ("5"); "Number FIVE";
+ z1 = (x0+W, y0+H); z2 = (x0+1/4W, y1); z3 = (x2, y0+1/2H);
+ z4 = (x1, y3); z5 = (x1, y0);
+ z6 = (x0+1/4W, y5); z7 = (x0, y0+1/16H);
+
+ draw z1 -- z2 -- to_mid (z3, z4);
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join to_mid (z5, z6);
+ join_radius := T;
+ draw from_mid (z5, z6)
+ join (z6 -- z7);
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_six =
+ ocrchar ("6"); "Number SIX";
+ z1 = (x0+1/8W, y0+H); z2 = (x0, y0+H); z3 = (x0, y0);
+ z4 = (x0+W, y0); z5 = (x0+W, y0+3/8H); z6 = (x0, y5);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_seven =
+ ocrchar ("7"); "Number SEVEN";
+ z1 = (x0, y0+15/16H); z2 = (x0, y0+H); z3 = (x0+W, y0+H);
+ z4 = (x0+W, y0+5/8H); z5 = (x0+1/2W, y0+3/8H); z6 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ fill_corners (3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_eight =
+ ocrchar ("8"); "Number EIGHT";
+ z1 = (x0+1/4W, y0+1/2H); z2 = (x1, y0+H);
+ z3 = (x0+3/4W, y0+H); z4 = (x3, y1);
+ z5 = (x0, y0+1/2H); z6 = (x0+W, y5);
+ z7 = (x0+W, y0); z8 = (x0, y0);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw from_mid (z5, z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7,z8)
+ join (z8 -- z5)
+ join to_mid (z5, z6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_nine =
+ ocrchar ("9"); "Number NINE";
+ z1 = (x0+7/8W, y0); z2 = (x0+W, y0); z3 = (x0+W, y0+H);
+ z4 = (x0, y0+H); z5 = (x0, y0+5/8H); z6 = (x0+W, y5);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Upper-case letters.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_a =
+ ocrchar ("A"); "Letter A";
+ z1 = (x0, y0); z2 = (x0+1/2W, y0+H); z3 = (x0+W, y0);
+ z4 = 1/4[z1,z2]; z5 = 1/4[z3,z2];
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_b =
+ ocrchar ("B"); "Letter B";
+ z1 = (x0, y0); z2 = (x0+W, y0); z3 = (x0+W, y0+1/2H);
+ z4 = (x0, y3); z5 = (x0+W, y0+H); z6 = (x0, y0+H);
+
+ join_radius := 3/2T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ draw (z6 -- z5)
+ join (z5 -- z3)
+ join (z3 -- z4);
+ draw z1 -- z6;
+ fill_corners (1, 6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_c =
+ ocrchar ("C"); "Letter C";
+ z1 = (x0+W, y0); z2 = (x0+3/8W, y0); z3 = (x0, y0+7/16H);
+ z4 = (x1, y0+H); z5 = (x2, y0+H); z6 = (x3, y0+9/16H);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw (z4 -- z5)
+ join to_mid (z5, z6);
+ join_radius := r1;
+ draw from_mid (z2, z3)
+ join (z3 -- z6)
+ join to_mid (z6, z5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_d =
+ ocrchar ("D"); "Letter D";
+ z1 = (x0, y0); z2 = (x0+5/8W, y0); z3 = (x0+W, y0+7/16H);
+ z4 = (x1, y0+H); z5 = (x2, y0+H); z6 = (x3, y0+9/16H);
+ z7 = (x0+1/4W, y0); z8 = (x7, y0+H);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw (z4 -- z5)
+ join to_mid (z5, z6);
+ join_radius := r1;
+ draw from_mid (z2, z3)
+ join (z3 -- z6)
+ join to_mid (z6, z5);
+ draw z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_e =
+ ocrchar ("E"); "Letter E";
+ z1 = (x0+W, y0); z2 = (x0, y0);
+ z3 = (x0, y0+H); z4 = (x0+W, y0+H);
+ z5 = (x0, y0+1/2H); z6 = (x0+1/2W, y5);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_f =
+ ocrchar ("F"); "Letter F";
+ z1 = (x0, y0); z2 = (x0, y0+H); z3 = (x0+W, y0+H);
+ z4 = (x0, y0+5/8H); z5 = (x0+3/4W, y4);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_g =
+ ocrchar ("G"); "Letter G";
+ z1 = (x0+W, y0+H); z2 = (x0+1/2W, y0+H); z3 = (x0, y0+5/8H);
+ z4 = (x0, y0); z5 = (x0+W, y0);
+ z6 = (x0+W, y0+3/8H); z7 = (x0+5/8W, y6);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ -- z7;
+ join_radius := 3/2T;
+ draw from_mid (z2, z3)
+ join to_mid (z3, z4);
+ fill_corners (6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_h =
+ ocrchar ("H"); "Letter H";
+ z1 = (x0, y0); z2 = (x0, y0+H);
+ z3 = (x0+W, y0); z4 = (x0+W, y0+H);
+ z5 = (x0, y0+1/2H); z6 = (x0+W, y5);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_i =
+ ocrchar ("I"); "Letter I";
+ z1 = (x0+1/2W, y0); z2 = (x1, y0+H);
+ z3 = (x0, y0); z4 = (x0+W, y0);
+ z5 = (x0, y0+H); z6 = (x0+W, y0+H);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_j =
+ ocrchar ("J"); "Letter J";
+ z1 = (x0+7/8W, y0+H); z2 = (x1, y0);
+ z3 = (x0+1/8W, y0); z4 = (x3, y0+3/8H);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_k =
+ ocrchar ("K"); "Letter K";
+ z1 = (x0, y0+H); z2 = (x0, y0);
+ z3 = (x0+W, y0+H); z4 = (x0, y0+1/2H); z5 = (x0+W, y0);
+
+ draw z1 -- z2;
+ draw z3 -- z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_l =
+ ocrchar ("L"); "Letter L";
+ z1 = (x0, y0+H); z2 = (x0, y0); z3 = (x0+W, y0);
+
+ draw z1 -- z2 -- z3;
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_m =
+ ocrchar ("M"); "Letter M";
+ z1 = (x0, y0); z2 = (x0, y0+H); z3 = (x0+1/8W, y0+H);
+ z4 = (x0+7/8W, y0+H); z5 = (x0+W, y0+H); z6 = (x0+W, y0);
+ z7 = (x0+1/2W, y0+11/16H); z8 = (x7, y0+5/8H);
+
+ draw z1 -- z2 -- z3 -- z7 -- z4 -- z5 -- z6;
+ draw z7 -- z8;
+ fill_corners (2, 5);
+ angle_fill_corner (2, 3, 7);
+ angle_fill_corner (7, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_n =
+ ocrchar ("N"); "Letter N";
+ z1 = (x0, y0); z2 = (x0, y0+H); z3 = (x0+1/8W, y0+H);
+ z4 = (x0+7/8W, y0); z5 = (x0+W, y0); z6 = (x0+W, y0+H);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ fill_corners (2, 5);
+ angle_fill_corner (2, 3, 4);
+ angle_fill_corner (3, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_o =
+ ocrchar ("O"); "Letter O";
+ z1 = (x0, y0+7/16H); z2 = (x1, y0+9/16H);
+ z3 = (x0+3/8W, y0+H); z4 = (x0+5/8W, y3);
+ z5 = (x0+W, y2); z6 = (x5, y1);
+ z7 = (x4, y0); z8 = (x3, y7);
+
+ join_radius := r1;
+ draw from_mid (z8, z1)
+ join (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join to_mid (z6, z7);
+ join_radius := r2;
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ draw from_mid (z6, z7)
+ join (z7 -- z8)
+ join to_mid (z8, z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_p =
+ ocrchar ("P"); "Letter P";
+ z1 = (x0, y0); z2 = (x0, y0+H);
+ z3 = (x0+W, y2); z4 = (x3, y0+7/16H);
+ z5 = (x0, y4);
+
+ join_radius := T;
+ draw z1 -- z2 -- to_mid (z2, z3);
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join (z4 -- z5);
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_q =
+ ocrchar ("Q"); "Letter Q";
+ z1 = (x0+1/4W, y0); z1a = (x0, y0); z2 = (x0, y0+5/8H);
+ z3 = (x0+3/4W, y0+H); z3a = (x0+W, y3); z4 = (x3a, y0+3/8H);
+ z5 = (x0+1/2W, y4); z6 = (x3, y0); z7 = (x4, y0);
+
+ join_radius := 3/2T;
+ draw from_mid (z1a, z2)
+ join to_mid (z2, z3);
+ draw from_mid (z3a, z4)
+ join to_mid (z4, z1);
+ join_radius := r3;
+ draw from_mid (z2, z3)
+ join (z3 -- z3a)
+ join to_mid (z3a, z4);
+ draw from_mid (z4, z1)
+ join (z1 -- z1a)
+ join to_mid (z1a, z2);
+ draw z5 -- z6 -- z7;
+ angle_fill_corner (5, 6, 7);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_r =
+ ocrchar ("R"); "Letter R";
+ z1 = (x0, y0); z2 = (x0, y0+H);
+ z3 = (x0+W, y2); z4 = (x3, y0+5/8H); z5 = (x0, y4);
+ z6 = (x0+3/8W, y4); z7 = (x3, y1);
+
+ join_radius := T;
+ draw z1 -- z2 -- to_mid (z2, z3);
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join (z4 -- z5);
+ draw z6 -- z7;
+ fill_corners (2);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_s =
+ ocrchar ("S"); "Letter S";
+ z1 = (x0, y0+1/8H); z1a = (x1, y0);
+ z1b = (x0+W, y1a); z2 = (x1b, y1);
+ z3 = (x1b, y0+7/8H); z3a = (x3, y0+H);
+ z3b = (x0, y3a); z4 = (x3b, y3);
+
+ join_radius := 1/8H;
+ draw (z1 -- z1a)
+ join to_mid (z1a, z1b);
+ draw (z3 -- z3a)
+ join to_mid (z3a, z3b);
+ join_radius := r4;
+ draw from_mid (z1a, z1b)
+ join (z1b -- z2)
+ join (z2 -- z4)
+ join (z4 -- z3b)
+ join to_mid (z3b, z3a);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_t =
+ ocrchar ("T"); "Letter T";
+ z1 = (x0, y0+7/8H); z2 = (x1, y0+H);
+ z3 = (x0+W, y2); z4 = (x3, y1);
+ z5 = (x0+1/2W, y2); z6 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_u =
+ ocrchar ("U"); "Letter U";
+ z1 = (x0, y0+H); z2 = (x0, y0);
+ z3 = (x0+W, y0); z4 = (x3, y1);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_v =
+ ocrchar ("V"); "Letter V";
+ z1 = (x0, y0+H); z2 = (x1, y0+3/4H); z3 = (x0+1/2W, y0);
+ z4 = (x0+W, y2); z5 = (x4, y1);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5;
+ angle_fill_corner (1, 2, 3);
+ angle_fill_corner (3, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_w =
+ ocrchar ("W"); "Letter W";
+ z1 = (x0, y0+H); z2 = (x0, y0+1/8H); z3 = (x0+1/8W, y0);
+ z4 = (x0+3/8W, y0); z5 = (x0+1/2W, y2); z6 = (x0+5/8W, y0);
+ z7 = (x0+7/8W, y0); z8 = (x0+W, y2); z9 = (x8, y1);
+ z10 = (x5, y0+5/8H);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6 -- z7 -- z8 -- z9;
+ draw z5 -- z10;
+ angle_fill_corner (1, 2, 3);
+ angle_fill_corner (7, 8, 9);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_x =
+ ocrchar ("X"); "Letter X";
+ z1 = (x0, y0+H); z2 = (x0+W, y0);
+ z3 = (x1, y2); z4 = (x2, y1);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_y =
+ ocrchar ("Y"); "Letter Y";
+ z1 = (x0, y0+H); z2 = (x1, y0+7/8H); z3 = (x0+1/2W, y0+1/2H);
+ z4 = (x0+W, y2); z5 = (x4, y1); z6 = (x3, y0);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5;
+ draw z3 -- z6;
+ angle_fill_corner (1, 2, 3);
+ angle_fill_corner (3, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_z =
+ ocrchar ("Z"); "Letter Z";
+ z1 = (x0, y0+H); z2 = (x0+W, y1);
+ z3 = (x0, y0); z4 = (x2, y0);
+
+ draw z1 -- z2 -- z3 -- z4;
+ fill_corners (2, 3);
+ unfill unitsquare
+ shifted (-1.5,-0.5) scaled T
+ rotated (angle (z2-z3) - 90) shifted z3;
+ unfill unitsquare
+ shifted (0.5,-0.5) scaled T
+ rotated (angle (z2-z3) - 90) shifted z2;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% ASCII punctuation symbols.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%
+% Note that there is also a new "alternate" period shape.
+%
+%%% def draw_period =
+ ocrchar ("."); "Period";
+ z1 = (x0+3/8W, y0+3/16H); z2 = (x0+5/8W, y1);
+ z3 = (x2, y0+5/16H); z4 = (x1, y3);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% Note that there is also a new "alternate" comma shape.
+%
+%%% def draw_comma =
+ ocrchar (","); "Comma";
+ z1 = (x0+1/4W, y0+3/8H); z2 = (x0+3/4W, y1); z3 = (x2, y0);
+
+ draw z1 -- z2 -- z3;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_colon =
+ ocrchar (":"); "Colon";
+ z1 = (x0+3/8W, y0+3/16H); z2 = (x0+5/8W, y1);
+ z3 = (x2, y0+5/16H); z4 = (x1, y3);
+ z5 = (x1, y1+1/2H); z6 = (x2, y2+1/2H);
+ z7 = (x3, y3+1/2H); z8 = (x4, y4+1/2H);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ draw z5 -- z6 -- z7 -- z8 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z5 -- z6 -- z7 -- z8 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_semicolon =
+ ocrchar (";"); "Semicolon";
+ z1 = (x0+1/4W, y0+3/8H); z2 = (x0+3/4W, y1); z3 = (x2, y0);
+ z4 = (x1, y0+3/4H); z5 = (x0+1/2W, y4);
+ z6 = (x5, y0+7/8H); z7 = (x4, y6);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5 -- z6 -- z7 -- cycle;
+ fill z4 -- z5 -- z6 -- z7 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_equals_sign =
+ ocrchar ("="); "Equals Sign";
+ z1 = (x0, y0+3/8H); z2 = (x0+W, y1);
+ z3 = (x1, y0+11/16H); z4 = (x2, y3);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_plus_sign =
+ ocrchar ("+"); "Plus Sign";
+ z1 = (x0, y0+1/2H); z2 = (x0+W, y1);
+ z3 = (x0+1/2W, y1+1/2W); z4 = (x3, y3-W);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_slant =
+ ocrchar ("/"); "Slant";
+ z1 = (x0, y0); z2 = (x0+W, y0+H);
+
+ draw z1 -- z2;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_asterisk =
+ ocrchar ("*"); "Asterisk";
+ z1 = (x0+1/2W, y0+1/8H); z2 = (x1, y0+7/8H);
+ z3 = (x0, y0+1/4H); z4 = (x0+W, y0+3/4H);
+ z5 = (x3, y4); z6 = (x4, y3);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_quotation_mark =
+ ocrchar (ditto); "Quotation Mark";
+ z1 = (x0+1/4W, y0+H); z2 = (x0+1/8W, y0+5/8H);
+ z3 = (x0, y1); z4 = (x0+W, y1);
+ z5 = (x0+7/8W, y2); z6 = (x0+3/4W, y1);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ fill z1 -- z2 -- z3 -- cycle;
+ fill z4 -- z5 -- z6 -- cycle;
+ fill_corners (3, 4);
+ unfill unitsquare
+ shifted (-1.5,-0.5) scaled T
+ rotated (angle (z3-z2) - 90) shifted z3;
+ unfill unitsquare
+ shifted (1.5,-0.5) scaled T
+ rotated (90 - angle (z6-z5)) shifted z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_opening_brace =
+ ocrchar ("{"); "Opening Brace";
+ z1 = (x0+W, y0); z2 = (x0+1/2W, y0);
+ z3 = (x2, y0+1/2H); z4 = (x0, y3);
+ z5 = (x2, y0+H); z6 = (x1, y5);
+
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw (z6 -- z5)
+ join to_mid (z5, z3);
+ join_radius := T;
+ draw from_mid (z2, z3)
+ join (z3 -- z4);
+ draw from_mid (z5, z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_closing_brace =
+ ocrchar ("}"); "Closing Brace";
+ z1 = (x0, y0); z2 = (x0+1/2W, y0);
+ z3 = (x2, y0+1/2H); z4 = (x0+W, y3);
+ z5 = (x2, y0+H); z6 = (x1, y5);
+
+ draw (z1 -- z2)
+ join to_mid (z2, z3);
+ draw (z6 -- z5)
+ join to_mid (z5, z3);
+ join_radius := T;
+ draw from_mid (z2, z3)
+ join (z3 -- z4);
+ draw from_mid (z5, z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_percent_sign =
+ ocrchar ("%"); "Percent Sign";
+ z1 = (x0+3/4W, y0); z2 = (x0+W, y1);
+ z3 = (x2, y0+1/8H); z4 = (x1, y3);
+ z5 = (x0, y0+7/8H); z6 = (x0+1/4W, y5);
+ z7 = (x6, y0+H); z8 = (x5, y7);
+ z9 = (x0, y3); z10 = (x0+W, y5);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ draw z5 -- z6 -- z7 -- z8 -- cycle;
+ draw z9 -- z10;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z5 -- z6 -- z7 -- z8 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% Note that there is also a new "alternate" question mark shape.
+%
+%%% def draw_question_mark =
+ ocrchar ("?"); "Question Mark";
+ z1 = (x0, y0+5/8H); z2 = (x0+3/4W, y0+H);
+ z3 = (x0+W, y0+7/8H); z4 = (x3, y0+3/4H);
+ z5 = (x0+1/4W, y0+3/8H); z6 = (x5, y0+1/4H);
+ z7 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ drawdot z7;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_ampersand =
+ ocrchar ("&"); "Ampersand";
+ z1 = (x0+W, y0); z2 = (x0, y0+5/8H);
+ z3 = (x0, y0+7/8H); z4 = (x0+3/4W, y3);
+ z5 = (x4, y2); z6 = (x0, y0+1/4H);
+ z7 = (x0, y0); z8 = (x0+1/2W, y0); z9 = (x1, y6);
+
+ join_radius := T;
+ draw z1 -- z2;
+ draw (z2 -- z3)
+ join (z3 -- z4)
+ join (z4 -- z5);
+ draw z5 -- z6;
+ draw (z6 -- z7)
+ join (z7 -- z8);
+ draw z8 -- z9;
+ endchar;
+%%% enddef;
+
+
+%
+% This is a new apostrophe shape. The older shape has been made
+% into an "alternate" form.
+%
+%%% def draw_apostrophe =
+ ocrchar ("'"); "Apostrophe";
+ z1 = (x0+3/8W, y0+H); z2 = (x1, y0+1/2H); z3 = (x0+5/8W, y1);
+
+ draw z1 -- z2 -- z3 -- cycle;
+ fill z1 -- z2 -- z3 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% This is a new hyphen shape. The older shape has been made
+% into an "alternate" form.
+%
+%%% def draw_hyphen =
+ ocrchar ("-"); "Hyphen";
+ z1 = (x0, y0+1/2H); z2 = (x0+W, y1);
+ z3 = (x2, y0+7/16H); z4 = (x1, y3);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_dollar_sign =
+ ocrchar ("$"); "Dollar Sign";
+ z1 = (x0, y0+1/4H); z2 = (x0+W, y1); z3 = (x2, y0+1/2H);
+ z4 = (x1, y3); z5 = (x4, y0+3/4H); z6 = (x2, y5);
+ z7 = (x0+1/2W, y0); z8 = .5[z1,z2];
+ z9 = (x7, y0+H); z10 = .5[z5,z6];
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ draw z7 -- z8;
+ draw z9 -- z10;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_upward_arrowhead =
+ ocrchar ("^"); "Upward Arrowhead";
+ z1 = (x0, y0+3/16H); z2 = (x0+1/2W, y0+5/8H);
+ z3 = (x0+W, y1); z4 = (x2, y0+3/4H);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_opening_bracket =
+ ocrchar ("["); "Opening Bracket";
+ z1 = (x0+W, y0); z2 = (x0, y0);
+ z3 = (x2, y0+H); z4 = (x1, y3);
+ z5 = (5/8[x1,x2], y1); z6 = (x5, y3);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_closing_bracket =
+ ocrchar ("]"); "Closing Bracket";
+ z1 = (x0, y0); z2 = (x0+W, y0);
+ z3 = (x2, y0+H); z4 = (x1, y3);
+ z5 = (5/8[x1,x2], y1); z6 = (x5, y3);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_less_than_sign =
+ ocrchar ("<"); "Less Than Sign";
+ z1 = (x0+W, y0+1/8H); z2 = (x0, y0+15/32H);
+ z3 = (x2, y0+17/32H); z4 = (x1, y0+7/8H);
+
+ draw z1 -- z2 -- z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_greater_than_sign =
+ ocrchar (">"); "Greater Than Sign";
+ z1 = (x0, y0+1/8H); z2 = (x0+W, y0+15/32H);
+ z3 = (x2, y0+17/32H); z4 = (x1, y0+7/8H);
+
+ draw z1 -- z2 -- z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_opening_parenthesis =
+ ocrchar ("("); "Opening Parenthesis";
+ z1 = (x0+3/4W, y0); z2 = (x0+3/8W, y0+9/32H);
+ z3 = (x2, y0+23/32H); z4 = (x1, y0+H);
+
+ join_radius := 3/2T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_closing_parenthesis =
+ ocrchar (")"); "Closing Parenthesis";
+ z1 = (x0+1/4W, y0); z2 = (x0+5/8W, y0+9/32H);
+ z3 = (x2, y0+23/32H); z4 = (x1, y0+H);
+
+ join_radius := 3/2T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_exclamation_point =
+ ocrchar ("!"); "Exclamation Point";
+ z1 = (x0+7/16W, y0); z2 = (x0+9/16W, y1);
+ z3 = (x2, y0+1/16H); z4 = (x1, y3);
+ z5 = (x0+1/2W, y0+7/16H); z6 = (x1, y0+H); z7 = (x2, y6);
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ draw z5 -- z6 -- z7 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z5 -- z6 -- z7 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_number_sign =
+ ocrchar ("#"); "Number Sign";
+ z1 = (x0+1/4W, y0+3/16H); z2 = (x1, y0+H);
+ z3 = (x0+3/4W, y1); z4 = (x3, y2);
+ z5 = (x0, y0+7/16H); z6 = (x0+W, y5);
+ z7 = (x5, y0+3/4H); z8 = (x6, y7);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ draw z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_commercial_at =
+ ocrchar ("@"); "Commercial At";
+ z1 = (x0, y0+7/8H); z2 = (x0, y0+H); z3 = (x0+W, y2);
+ z4 = (x3, y0); z5 = (x0+1/2W, y0); z6 = (x5, y0+9/16H);
+ z7 = (x0, y6); z8 = (x0, y0);
+
+ join_radius := 3/16H;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join to_mid (z3, z4);
+ join_radius := 1/4W;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6);
+ draw (z6 -- z7)
+ join (z7 -- z8)
+ join (z8 -- z5)
+ join to_mid (z5, z6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_reverse_slant =
+ ocrchar ("\\"); "Reverse Slant";
+ z1 = (x0, y0+H); z2 = (x0+W, y0);
+
+ draw z1 -- z2;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Lower-case letters.
+% Note that ANSI X3.17-1977 defines these characters as part of OCR-A
+% only for the smallest size (Size I). Also, if lower-case letters are
+% used, the standard requires a minimum vertical line spacing of five
+% lines per inch (instead of the normal six lines per inch).
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_small_a =
+ ocrchar ("a"); "Small Letter A";
+ z1 = (x0+W, y0);
+ z2 = (0, H) rotated theta shifted (z1);
+ z3 = ((x0, y0+1/8H) -- (x0+W, y0+1/8H))
+ intersectionpoint (z1 -- z2);
+ z4 = (x0+5/8W, y0);
+ z5 = (x0, y0);
+ z6 = (x0, y0+3/8H);
+ z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
+ z8 = (x0+1/4W, y0+11/16H);
+ z9 = (z8 -- (x1, y8)) intersectionpoint (z1 -- z2);
+
+ join_radius := 1/4W;
+ draw z3 -- z4 -- to_mid (z4, z5);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z3);
+ draw (z8 -- z9)
+ join (z9 -- z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_b =
+ ocrchar ("b"); "Small Letter B";
+ z1 = (x0, y0); z2 = (x1, y0+H);
+ z3 = (x1, y0+3/16H); z4 = (x0+3/8W, y0);
+ z5 = (x0+3/4W, y4); z6 = (x0+W, y0+1/8H);
+ z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_c =
+ ocrchar ("c"); "Small Letter C";
+ z1 = (x0+W, y0); z2 = (x0+3/8W, y1);
+ z3 = (x0, y0+3/16H); z4 = (x3, y0+1/2H);
+ z5 = (x2, y0+11/16H); z6 = (x1, y5);
+
+ join_radius := 1/4W;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4)
+ join (z4 -- z5)
+ join (z5 -- z6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_d =
+ ocrchar ("d"); "Small Letter D";
+ z1 = (x0+W, y0); z2 = (x1, y0+H);
+ z3 = (x2, y0+3/16H); z4 = (x0+5/8W, y0);
+ z5 = (x0+1/4W, y4); z6 = (x0, y0+1/8H);
+ z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_e =
+ ocrchar ("e"); "Small Letter E";
+ z1 = (x0+W, y0); z2 = (x0+1/4W, y1);
+ z3 = (x0, y0+1/8H); z4 = (x3, y0+9/16H);
+ z5 = (x2, y0+11/16H); z6 = (x0+3/4W, y5);
+ z7 = (x1, y4); z8 = (x7, y0+5/16H); z9 = (x3, y8);
+
+ join_radius := 1/4W;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z8)
+ -- z9;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_f =
+ ocrchar ("f"); "Small Letter F";
+ z1 = (x0+3/8W-1/4T, y0);
+ z2 = (x1, y0+H); z3 = (x0+W-1/4T, y2);
+ z4 = (x0+1/8W-1/4T, y0+11/16H);
+ z5 = (x0+3/4W-1/4T, y4);
+
+ join_radius := .32W;
+ draw (z1 -- z2)
+ join (z2 -- z3);
+ draw z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_g =
+ ocrchar ("g"); "Small Letter G";
+ z1 = (x0+W, y8); z2 = (x1, y0-3/16H);
+ z2a = (x0+3/4W, y0-5/16H); z2b = (x0+1/8W, y2a);
+ z3 = (x2, y0+1/4H); z4 = (x0+5/8W, y0+1/16H);
+ z5 = (x0+1/4W, y4); z6 = (x0, y0+3/16H);
+ z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw (z1 -- z2)
+ join (z2 -- z2a)
+ join (z2a -- z2b);
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_h =
+ ocrchar ("h"); "Small Letter H";
+ z1 = (x0+W, y0);
+ z2 = (0, H) rotated theta shifted (z1);
+ z3 = (x0, y0); z4 = (x0, y0+H);
+ z5 = (x3, y0+1/2H); z6 = (x0+1/2W, y0+11/16H);
+ z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
+
+ join_radius := 1/4W;
+ draw z3 -- z4;
+ draw (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_i =
+ ocrchar ("i"); "Small Letter I";
+ z1 = (x0+1/2W, y0); z2 = (x1, y0+11/16H); z3 = (x0+1/8W, y2);
+ z4 = (x3, y0); z5 = (x0+7/8W, y4);
+ z6 = (x1, y0+H); z7 = (x6, y0+17/16H);
+ z8 = (x0+3/8W, y7); z9 = (x8, y6);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ draw z6 -- z7 -- z8 -- z9 -- cycle;
+ fill z6 -- z7 -- z8 -- z9 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_j =
+ ocrchar ("j"); "Small Letter J";
+ z1 = (x0+3/8W, y0+11/16H); z2 = (x0+7/8W, y1);
+ z3 = (x2, y0-5/16H); z4 = (x0+1/8W, y3); z5 = (x4, y0-3/16H);
+ z6 = (x2, y0+H); z7 = (x6, y0+17/16H);
+ z8 = (x0+3/4W, y7); z9 = (x8, y6);
+
+ join_radius := 1/4W;
+ draw (z5 -- z4)
+ join (z4 -- z3)
+ join (z3 -- z2)
+ -- z2 -- z1;
+ draw z6 -- z7 -- z8 -- z9 -- cycle;
+ fill z6 -- z7 -- z8 -- z9 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_k =
+ ocrchar ("k"); "Small Letter K";
+ z1 = (x0, y0); z2 = (x1, y0+H);
+ z3 = (x1, y0+1/4H); z4 = (x0+7/8W, y0+11/16H);
+ z5 = (x0+1/4W, y0+3/8H); z6 = (x0+W, y0);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_l =
+ ocrchar ("l"); "Small Letter L";
+ z1 = (x0+1/2W, y0); z2 = (x1, y0+H); z3 = (x0+1/8W, y2);
+ z4 = (x3, y0); z5 = (x0+7/8W, y4);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_m =
+ ocrchar ("m"); "Small Letter M";
+ z1 = (x0-.02W, y0+11/16H); z2 = (x1, y0);
+ z3 = (x1, y0+.55H); z4 = (x0+1/4W, y1);
+ z5 = (x0+1/2W, y1); z6 = (x5, y0);
+ z7 = (x5, y0+9/16H); z8 = (x0+3/4W, y1);
+ z10 = (x0+1.02W, y0);
+ z10a = (0, H) rotated theta shifted (z10);
+ z9 = (z8 -- (x10, y8)) intersectionpoint (z10 -- z10a);
+ z9b = (z7 -- (x10, y7)) intersectionpoint (z10 -- z10a);
+
+ join_radius := 0.181W;
+ draw z1 -- z2;
+ draw (z3 -- z4)
+ join (z4 -- z5)
+ join (z5 -- z7)
+ -- z6;
+ join_radius := 0.176W;
+ draw (z7 -- z8)
+ join (z8 -- z9)
+ join (z9 -- z9b)
+ -- z10;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_n =
+ ocrchar ("n"); "Small Letter N";
+ z1 = (x0+W, y0);
+ z2 = (0, H) rotated theta shifted (z1);
+ z3 = (x0, y0); z4 = (x0, y6);
+ z5 = (x3, y0+1/2H); z6 = (x0+1/2W, y0+11/16H);
+ z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
+
+ join_radius := 1/4W;
+ draw z3 -- z4;
+ draw (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_o =
+ ocrchar ("o"); "Small Letter O";
+ z1 = (x0, y0+1/8H); z2 = (x0+1/4W, y0);
+ z3 = (x0+3/4W, y2); z4 = (x0+W, y1);
+ z5 = (x4, y0+9/16H); z6 = (x3, y0+11/16H);
+ z7 = (x2, y6); z8 = (x1, y5);
+
+ join_radius := 1/4W;
+ draw from_mid (z8, z1)
+ join (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join to_mid (z6, z7);
+ draw from_mid (z6, z7)
+ join (z7 -- z8)
+ join to_mid (z8, z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_p =
+ ocrchar ("p"); "Small Letter P";
+ z1 = (x0, y0+23/32H); z2 = (x1, y0-5/16H);
+ z3 = (x1, y0+3/16H); z4 = (x0+3/8W, y0-1/32H);
+ z5 = (x0+5/8W, y4); z6 = (x0+W, y0+.157H);
+ z7 = (x6, y0+.529H); z8 = (x5, y0+23/32H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_q =
+ ocrchar ("q"); "Small Letter Q";
+ z1 = (x0+W, y0+11/16H); z2 = (x1, y0-5/16H);
+ z3 = (x2, y0+3/16H); z4 = (x0+5/8W, y0);
+ z5 = (x0+1/4W, y4); z6 = (x0, y0+1/8H);
+ z7 = (x6, y0+9/16H); z8 = (x5, y0+11/16H);
+ z9 = (x4, y8); z10 = (x3, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw from_mid (z3, z4)
+ join (z4 -- z5)
+ join (z5 -- z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z9)
+ join (z9 -- z10)
+ join (z10 -- z3)
+ join to_mid (z3, z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_r =
+ ocrchar ("r"); "Small Letter R";
+ z1 = (x0, y0+11/16H); z2 = (x1, y0);
+ z3 = (x1, y0+7/16H); z4 = (x0+1/2W, y1);
+ z5 = (x0+W, y4); z6 = (x5, y0+1/2H);
+
+ join_radius := 1/4W;
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw (z6 -- z5)
+ join (z5 -- z4);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_s =
+ ocrchar ("s"); "Small Letter S";
+ z1 = (x0, y0+1/16H); z1a = (x0+.07W, y0+.03H);
+ z2 = (x0+.20W, y0); z3 = (x0+W, y2); z4 = (x3, y0+1/4H);
+ z5 = (x0+.027W, y0+1/2H); z6 = (x5, y0+11/16H);
+ z6a = (x0+1/2W, y6); z7 = (x0+.92W, y6);
+ z8 = (x0+.973W, y0+5/8H);
+
+ join_radius := .32W;
+ draw (z1 -- z1a)
+ join (z1a -- z2)
+ join to_mid (z2, z3);
+ join_radius := .26W;
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ join_radius := .20W;
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join (z6 -- z6a);
+ join_radius := .25W;
+ draw (z8 -- z7)
+ join (z7 -- z6a);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_t =
+ ocrchar ("t"); "Small Letter T";
+ z1 = (x0+W, y0+1/8H); z2 = (x1, y0);
+ z3 = (x0+1/4W, y2); z4 = (x3, y0+15/16H);
+ z5 = (x0, y0+11/16H); z6 = (x0+7/8W, y5);
+
+ join_radius := 1/4W;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_u =
+ ocrchar ("u"); "Small Letter U";
+ z1 = (x0, y0+11/16H);
+ z2 = (0, -H) rotated theta shifted (z1);
+ z3 = (x0+W, y1); z4 = (x3, y0);
+ z5 = (x3, y0+3/16H); z6 = (x0+1/2W, y0);
+ z7 = (z6 -- (x1, y6)) intersectionpoint (z1 -- z2);
+
+ join_radius := 1/4W;
+ draw z3 -- z4;
+ draw (z5 -- z6)
+ join (z6 -- z7)
+ join (z7 -- z1);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_v =
+ ocrchar ("v"); "Small Letter V";
+ z1 = (x0, y0+11/16H); z2 = (x1, y0+9/16H);
+ z3 = (x0+.421W, y0); z4 = (x0+.579W, y0);
+ z5 = (x0+W, y2); z6 = (x5, y1);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_w =
+ ocrchar ("w"); "Small Letter W";
+ z1 = (x0, y0+1/4H); z2 = (x0+1/8W, y0); z3 = (x0+1/4W, y0);
+ z4 = (x0+1/2W, y1); z5 = (x4, y0+7/16H);
+ z6 = (x0+3/4W, y0); z7 = (x0+7/8W, y0); z8 = (x0+W, y1);
+ z9a = (0, H) rotated theta shifted (z1);
+ z9b = (0, H) rotated -theta shifted (z8);
+ z10a = (x0-1/4W, y0+11/16H); z10b = (x0+5/4W, y10a);
+ z11a = (z10a -- z10b) intersectionpoint (z1 -- z9a);
+ z11b = (z10a -- z10b) intersectionpoint (z8 -- z9b);
+
+ draw z11a -- z1 -- z2 -- z3 -- z4 -- z6 -- z7 -- z8 -- z11b;
+ draw z4 -- z5;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_x =
+ ocrchar ("x"); "Small Letter X";
+ z1 = (x0, y0); z2 = (x0+.973W, y0+11/16H);
+ z3 = (x0+W, y0); z4 = (x0+.027W, y0+11/16H);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_y =
+ ocrchar ("y"); "Small Letter Y";
+ z1 = (x0, y0+11/16H); z2 = (x1, y0+9/16H);
+ z3 = (x0+3/8W, y0+1/16H); z4 = (x0+5/8W, y3);
+ z5 = (x0+W, y1); z6 = (x5, y2);
+ z8 = (x0, y0-5/16H);
+ z7 = (z6 -- z4+(z4-z6))
+ intersectionpoint (z8 -- (x8+W, y8));
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6 -- z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_small_z =
+ ocrchar ("z"); "Small Letter Z";
+ z1 = (x0+.061W, y0+11/16H); z2 = (x0+W, y1);
+ z3 = (x2, y0+5/8H); z4 = (x0, y0+1/16H);
+ z5 = (x0, y0); z6 = (x2, y5);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Alternate symbol forms.
+% These are all new shapes, except for Apostrophe and Hyphen, where
+% the "alternate" shapes are the older versions.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%
+% Alternate period was introduced because the standard character causes
+% paper punch-through on some printers.
+%
+%%% def draw_period_alt =
+ ocrchar (14); "Period (Alternate)";
+ z1 = (x0+5/16W, y0); z2 = (x0+11/16W, y1);
+ z3 = (x2, y0+3/8W); z4 = (x1, y3);
+ % NOTE: The use of "W" in the Y-coordinate of "z3"
+ % is as given in the spec, to make a square period.
+
+ draw z1 -- z2 -- z3 -- z4 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% Alternate comma was introduced because the standard character causes
+% paper punch-through on some printers.
+%
+%%% def draw_comma_alt =
+ ocrchar (15); "Comma (Alternate)";
+ z1 = (x0+1/4W, y0+5/16H); z2 = (x1, y0+3/8H);
+ z3 = (x0+3/4W, y2); z4 = (x3, y0); z5 = (x0+5/8W, y4);
+ z6 = (x5, y1);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6 -- cycle;
+ fill z1 -- z2 -- z3 -- z4 -- z5 -- z6 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% Alternate question mark was introduced because the small dot at the
+% bottom of the standard character is difficult or impossible to form
+% on some embossed plates/cards, and also causes paper punch-through
+% on some printers.
+%
+%%% def draw_question_mark_alt =
+ ocrchar (16); "Question Mark (Alternate)";
+ z1 = (x0, y0+5/8H); z2 = (x0+3/4W, y0+H);
+ z3 = (x0+W, y0+7/8H); z4 = (x3, y0+3/4H);
+ z5 = (x0+1/4W, y0+3/8H); z6 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%
+% A new apostrophe was introduced (and the older character changed to
+% alternate status) because the older character causes paper punch-
+% through on some printers and cannot be properly recognized by some
+% readers which do not store vertical-position data.
+%
+%%% def draw_apostrophe_alt =
+ ocrchar (17); "Apostrophe (Alternate)";
+ z1 = (x0+3/8W, y0+H); z2 = (x0+1/2W, y0+5/8H);
+ z3 = (x0+5/8W, y1);
+
+ draw z1 -- z2 -- z3 -- cycle;
+ fill z1 -- z2 -- z3 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%
+% A new hyphen was introduced (and the older character changed to
+% alternate status) because the older character causes paper punch-
+% through on some printers.
+%
+%%% def draw_hyphen_alt =
+ ocrchar (18); "Hyphen (Alternate)";
+ z1 = (x0, y0+1/2H); z2 = (x0+W, y1);
+
+ draw z1 -- z2;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Special OCR characters.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%
+% The "hook" symbol (looks sort of like a squared-off S) is defined in
+% ANSI X3.17-1977 to go into the "tilde" spot in the ASCII table.
+%
+%%% def draw_symbol_hook =
+ ocrchar (19); "Symbol HOOK";
+ z1 = (x0, y0+3/8H); z2 = (x0, y0); z3 = (x0+1/2W, y0);
+ z4 = (x3, y0+H); z5 = (x0+W, y0+H); z6 = (x0+W, y0+5/8H);
+
+ draw z1 -- z2 -- z3 -- z4 -- z5 -- z6;
+ fill_corners (2, 3, 4, 5);
+ endchar;
+%%% enddef;
+
+
+%
+% The "fork" symbol (looks sort of like a squared-off Y) is defined in
+% ANSI X3.17-1977 to go into the "underline" spot in the ASCII table.
+% However, a note in the standard says that this assignment should not
+% preclude use of the Underline in applications not needing the "fork".
+%
+%%% def draw_symbol_fork =
+ ocrchar (20); "Symbol FORK";
+ z1 = (x0, y0+H); z2 = (x0, y0+1/2H);
+ z3 = (x0+W, y2); z4 = (x0+W, y0+H);
+ z5 = (x0+1/2W, y2); z6 = (x5, y0);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6;
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%
+% The "chair" symbol (looks sort of like a squared-off, backwards lower-
+% case H) is defined in ANSI X3.17-1977 to go into the "grave accent"
+% spot in the ASCII table.
+%
+%%% def draw_symbol_chair =
+ ocrchar (21); "Symbol CHAIR";
+ z1 = (x0+W, y0+H); z2 = (x1, y0);
+ z3 = .5[z1,z2]; z4 = (x0, y3); z5 = (x0, y0);
+
+ draw z1 -- z2;
+ draw z3 -- z4 -- z5;
+ fill_corners (4);
+ endchar;
+%%% enddef;
+
+
+%
+% The "Long Vertical Mark" is not really suitable as a representation
+% of the ASCII "vertical bar" character. The "Long Vertical Mark" is
+% intended as a field separator and is significantly taller than other
+% characters in the font.
+%
+%%% def draw_long_vertical_mark =
+ ocrchar (22); "Long Vertical Mark";
+ z1 = (x0+1/2W, y0+L-T/2); z2 = (x1, y0-Y+T/2);
+
+ draw z1 -- z2;
+ fill_corners (1, 2);
+ endchar;
+%%% enddef;
+
+
+%
+% "Character Erase" (a large rectangular black box) is defined in
+% ANSI X3.17-1977 only for the smallest character size (Size I).
+%
+%%% def draw_character_erase =
+ ocrchar (127); "Character Erase";
+ z1 = (x0-3/4T, y0-3/4T); z2 = (x0+W+3/4T, y1);
+ z3 = (x2, y0+H+3/4T); z4 = (x1, y3);
+
+ fill z1 -- z2 -- z3 -- z4 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Miscellaneous symbols.
+% These are not an official part of ANSI OCR-A, but were included in an
+% appendix to X3.17-1977.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_aa =
+ ocrchar (23); "Letter \AA";
+ z1 = (x0, y0); z2 = (x0+3/8W, y0+3/4H);
+ z3 = (x0+5/8W, y2); z4 = (x0+W, y1);
+ z5 = (x0+1/8W, y2); z6 = (x0+7/8W, y2);
+ z7 = (x6, y0+H); z8 = (x5, y7);
+ z9 = (x5, y0+1/4H); z10 = (x6, y9);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ draw z9 -- z10;
+ draw from_mid (z5, z6)
+ join (z6 -- z7)
+ join to_mid (z7, z8);
+ draw from_mid (z7, z8)
+ join (z8 -- z5)
+ join to_mid (z5, z6);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_a_umlaut =
+ ocrchar (24); "Letter \"&ditto&"A";
+ z1 = (x0, y0); z2 = (x0+1/2W, y0+3/4H); z3 = (x0+W, y0);
+ z4 = (x0+1/8W, y0+3/16H); z5 = (x0+7/8W, y4);
+ z6 = (x1, y0+H); z7 = (x6, y0+7/8H);
+ z8 = (x3, y6); z9 = (x8, y7);
+
+ draw z1 -- z2 -- z3;
+ draw z4 -- z5;
+ draw z6 -- z7;
+ draw z8 -- z9;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_ae =
+ ocrchar (25); "Letter \AE";
+ z1 = (x0, y0); z2 = (x0+5/8W, y0+H); z3 = (x0+W, y2);
+ z4 = (x2, y0+1/2H); z5 = (x3, y4);
+ z6 = (x2, y1); z7 = (x3, y1);
+ z8 = 1/4[z1,z2]; z9 = 1/4[z6,z2];
+
+ draw z1 -- z2 -- z3;
+ draw z2 -- z6 -- z7;
+ draw z4 -- z5;
+ draw z8 -- z9;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_n_tilde =
+ ocrchar (26); "Letter \~N";
+ z1 = (x0, y0); z2 = (x1, y0+5/8H);
+ z3 = (x0+W, y1); z4 = (x3, y2);
+ z5 = (x1, y0+15/16H); z6 = (x5, y0+H);
+ z7 = (x3, y5); z8 = (x3, y6);
+
+ draw z1 -- z2 -- z3 -- z4;
+ draw z5 -- z6 -- z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_o_slant =
+ ocrchar (27); "Letter \O";
+ z1 = (x0, y0+7/16H); z2 = (x1, y0+9/16H);
+ z3 = (x0+3/8W, y0+H); z4 = (x0+5/8W, y3);
+ z5 = (x0+W, y2); z6 = (x5, y1);
+ z7 = (x4, y0); z8 = (x3, y7);
+ z9 = (x0, y0); z10 = (x0+W, y0+H);
+
+ join_radius := r1;
+ draw from_mid (z8, z1)
+ join (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join to_mid (z6, z7);
+ join_radius := r2;
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ draw from_mid (z6, z7)
+ join (z7 -- z8)
+ join to_mid (z8, z1);
+ draw z9 -- z10;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_o_umlaut =
+ ocrchar (28); "Letter \"&ditto&"O";
+ z1 = (x0, y0+5/16H); z2 = (x1, y0+7/16H);
+ z3 = (x0+3/8W, y0+3/4H); z4 = (x0+5/8W, y3);
+ z5 = (x0+W, y2); z6 = (x5, y1);
+ z7 = (x4, y0); z8 = (x3, y7);
+ z9 = (x1, y0+H); z10 = (x1, y0+7/8H);
+ z11 = (x5, y9); z12 = (x5, y10);
+
+ join_radius := r5;
+ draw from_mid (z8, z1)
+ join (z1 -- z2)
+ join to_mid (z2, z3);
+ draw from_mid (z4, z5)
+ join (z5 -- z6)
+ join to_mid (z6, z7);
+ join_radius := r6;
+ draw from_mid (z2, z3)
+ join (z3 -- z4)
+ join to_mid (z4, z5);
+ draw from_mid (z6, z7)
+ join (z7 -- z8)
+ join to_mid (z8, z1);
+ draw z9 -- z10;
+ draw z11 -- z12;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_u_umlaut =
+ ocrchar (29); "Letter \"&ditto&"U";
+ z1 = (x0, y0+3/4H); z2 = (x0, y0);
+ z3 = (x0+W, y0); z4 = (x3, y1);
+ z5 = (x0+1/4W, y0+H); z6 = (x5, y0+7/8H);
+ z7 = (x0+3/4W, y5); z8 = (x7, y6);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join (z3 -- z4);
+ draw z5 -- z6;
+ draw z7 -- z8;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_pound_sign =
+ ocrchar (30); "Pound Sign";
+ z1 = (x0, y0); z2 = (x0+W, y1);
+ z3 = (x0+1/4W, y1); z4 = (x0+3/4W, y0+H); z5 = (x2, y4);
+ z6 = (x1, y0+1/2H); z7 = (x2, y6);
+
+ join_radius := T;
+ draw z1 -- z2;
+ draw (z3 -- z4)
+ join (z4 -- z5);
+ draw z6 -- z7;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_yen_sign =
+ ocrchar (31); "Yen Sign";
+ z1 = (x0, y0+H); z2 = (x0+1/2W, y0+1/2H); z3 = (x0+W, y1);
+ z4 = (x2, y0); z5 = (x1, y0+3/8H); z6 = (x3, y5);
+
+ draw z1 -- z2 -- z3;
+ draw z2 -- z4;
+ draw z5 -- z6;
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+% Non-standard ASCII characters.
+% I designed these characters myself in order to make a complete ASCII
+% character set. Note that these characters are *NOT* part of ANSI
+% X3.17-1977 or any other OCR-A standard, and will almost certainly
+% *NOT* be understood by any OCR-A scanner currently in existence.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%%% def draw_tilde =
+ ocrchar ("~"); "Tilde";
+ z1 = (x0, y0+11/16H); z2 = (x1, y0+H);
+ z3 = (x0+1/2W, y2); z4 = (x3, y0+5/8H);
+ z5 = (x0+W, y4); z6 = (x5, y0+15/16H);
+
+ join_radius := T;
+ draw (z1 -- z2)
+ join (z2 -- z3)
+ join to_mid (z3, z4);
+ draw (z6 -- z5)
+ join (z5 -- z4)
+ join to_mid (z4, z3);
+ endchar;
+%%% enddef;
+
+
+%%% def draw_underline =
+ ocrchar ("_"); "Underline";
+ z1 = (x0, y0-T); z2 = (x0+W, y1);
+
+ draw z1 -- z2;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_grave_accent =
+ ocrchar ("`"); "Grave Accent";
+ z1 = (x0+1/8W, y0+H); z2 = (x0+7/8W, y0+5/8H);
+ z3 = (x0+3/8W, y1);
+
+ draw z1 -- z2 -- z3 -- cycle;
+ fill z1 -- z2 -- z3 -- cycle;
+ endchar;
+%%% enddef;
+
+
+%%% def draw_vertical_bar =
+ ocrchar ("|"); "Vertical Bar";
+ z1 = (x0+1/2W, y0+H); z2 = (x1, y0+1/2H+T);
+ z3 = (x1, y0+1/2H-T); z4 = (x1, y0);
+
+ draw z1 -- z2;
+ draw z3 -- z4;
+ fill_corners (2, 3);
+ endchar;
+%%% enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% Font parameters %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+designsize := L#;
+font_slant := 0;
+font_normal_space := R#;
+font_normal_stretch := 0; % mustn't be more than .8R#, per spec
+font_normal_shrink := 0; % mustn't be more than .1R#, per spec
+font_x_height := H#;
+font_quad := 2W#;
+font_extra_space := 0;
+
+end.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% END OF OCR-A METAFONT DEFINITION %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr10.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr10.mf
new file mode 100644
index 00000000000..a75de22c43c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ocr-a/ocr10.mf
@@ -0,0 +1,10 @@
+% OCR-A Size I (10-point)
+
+H# = 0.094in#; % centerline height of characters
+W# = 0.055in#; % centerline width of characters
+T# = 0.014in#; % stroke width
+L# = 0.146in#; % height of long vertical mark
+Y# = 0.021in#; % depth of long vertical mark
+R# = 0.100in#; % horizontal character spacing
+
+input ocra;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr12.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr12.mf
new file mode 100644
index 00000000000..b7a8a159ec7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ocr-a/ocr12.mf
@@ -0,0 +1,10 @@
+% OCR-A Size I, magnified 20% (12-point)
+
+H# = 0.112in#; % centerline height of characters
+W# = 0.066in#; % centerline width of characters
+T# = 0.017in#; % stroke width
+L# = 0.175in#; % height of long vertical mark
+Y# = 0.025in#; % depth of long vertical mark
+R# = 0.120in#; % horizontal character spacing
+
+input ocra;
diff --git a/Master/texmf-dist/fonts/source/public/ocr-a/ocr16.mf b/Master/texmf-dist/fonts/source/public/ocr-a/ocr16.mf
new file mode 100644
index 00000000000..54e18b6dcdd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ocr-a/ocr16.mf
@@ -0,0 +1,10 @@
+% OCR-A Size I, magnified 60% (16-point)
+
+H# = 0.150in#; % centerline height of characters
+W# = 0.088in#; % centerline width of characters
+T# = 0.022in#; % stroke width
+L# = 0.234in#; % height of long vertical mark
+Y# = 0.034in#; % depth of long vertical mark
+R# = 0.160in#; % horizontal character spacing
+
+input ocra;
diff --git a/Master/texmf-dist/fonts/source/public/oesch/lig.mf b/Master/texmf-dist/fonts/source/public/oesch/lig.mf
new file mode 100644
index 00000000000..95254092cf2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/oesch/lig.mf
@@ -0,0 +1,268 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% lig.mf %
+% %
+% Oesterreichische Schulschrift 1995 (Austrian School Writing Letters 1995) %
+% Version May 18, 2001 %
+% %
+% Design by Gerhard A. Bachmaier %
+% %
+% Email: gerhard.bachmaier@uni-graz.at %
+% %
+% You're free to use or copy this file as long as you leave this %
+% header intact and don't change the contents. %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ligtable "f":"?" kern 2k#;
+ligtable "l":"?" kern 2k#;
+
+%changed small letters at the beginning of a word
+ligtable ||:"x"|=:oct"241",
+ "r"|=:oct"240";
+
+%starting dash capital letters
+ligtable "B":"a"=:| oct"200","e"=:| oct"200","i"=:| oct"200",
+ "l"=:| oct"200","o"=:| oct"200","r"=:| oct"200",
+ "u"=:| oct"200","y"=:| oct"200",
+ oct"344"=:| oct"200", oct"366"=:| oct"200", oct"374"=:| oct"200",
+ oct"042"=:| oct"200",
+ "A" kern -k#,"J" kern -k#,"K" kern 2k#,"R" kern -k#,"T" kern k#,
+ "U" kern 2k#,"V" kern k#,"W" kern k#,"X" kern k#,"Y" kern 2k#,
+ "Z" kern -k#;
+ligtable "D":"a"=:| oct"201","e"=:| oct"201","i"=:| oct"201",
+ "o"=:| oct"201","r"=:| oct"201","s"=:| oct"201",
+ "u"=:| oct"201","y"=:| oct"201",
+ oct"344"=:| oct"201", oct"366"=:| oct"201", oct"374"=:| oct"201",
+ oct"042"=:| oct"201",
+ "A" kern -k#,"B" kern -k#,"C" kern k#,"D" kern -k#,"J" kern -4k#,
+ "L" kern -2k#,"M" kern -k#,"N" kern -k#,"R" kern -k#,
+ "U" kern 2k#,"W" kern k#,"X" kern -2k#,"Y" kern k#,"Z" kern -k#;
+ligtable "I":"a"=:| oct"202","b"=:| oct"202","c"=:| oct"202",
+ "d"=:| oct"202","g"=:| oct"202","h"=:| oct"202",
+ "l"=:| oct"202","m"=:| oct"202","n"=:| oct"202",
+ "o"=:| oct"202","r"=:| oct"202","s"=:| oct"202",
+ "t"=:| oct"202",
+ "B" kern -k#,"C" kern k#,"D" kern -k#,"E" kern k#,"F" kern 3k#,
+ "G" kern k#,"H" kern k#,"I" kern k#,"J" kern -k#,"K" kern 3k#,
+ "O" kern k#,"Q" kern k#,"T" kern 3k#,"U" kern 3k#,"V" kern 3k#,
+ "W" kern 3k#,"Y" kern 3k#;
+ligtable "N":"a"=:| oct"203","e"=:| oct"203","i"=:| oct"203",
+ "o"=:| oct"203","u"=:| oct"203","y"=:| oct"203",
+ oct"344"=:| oct"203", oct"366"=:| oct"203", oct"374"=:| oct"203",
+ oct"042"=:| oct"203",
+ "A" kern -6k#,"F" kern 2k#,"H" kern k#,"I" kern -k#,"J" kern -k#,
+ "K" kern 2k#,"L" kern -2k#,"M" kern -6k#,"N" kern -5k#,"P" kern k#,
+ "R" kern k#,"S" kern k#,"T" kern 2k#,"U" kern 2k#,"V" kern 2k#,
+ "W" kern 2k#,"Y" kern 2k#,"Z" kern k#;
+ligtable "O":"a"=:| oct"204","b"=:| oct"204","c"=:| oct"204",
+ "d"=:| oct"204","f"=:| oct"204","h"=:| oct"204",
+ "k"=:| oct"204","l"=:| oct"204","m"=:| oct"204",
+ "n"=:| oct"204","p"=:| oct"204","r"=:| oct"204",
+ "s"=:| oct"204","t"=:| oct"204","u"=:| oct"204",
+ "v"=:| oct"204","x"=:| oct"204","z"=:| oct"204",
+ "A" kern -k#,"B" kern -2k#,"D" kern -2k#,"F" kern k#,"G" kern k#,
+ "J" kern -3k#,"K" kern k#,"L" kern -k#,"M" kern -k#,"N" kern -k#,
+ "Q" kern -k#,"R" kern -k#,"U" kern k#,"V" kern k#,"W" kern k#,
+ "X" kern -2k#,"Y" kern k#,"Z" kern -k#;
+ligtable "P":"a"=:| oct"205","e"=:| oct"205","i"=:| oct"205",
+ "o"=:| oct"205","u"=:| oct"205","y"=:| oct"205",
+ "h"=:| oct"205","l"=:| oct"205","n"=:| oct"205",
+ "r"=:| oct"205","s"=:| oct"205", oct"344"=:| oct"205",
+ oct"366"=:| oct"205", oct"374"=:| oct"205","f" =: oct"036",
+ oct"042"=:| oct"205",
+ "A" kern -5k#,"B" kern -3k#,"D" kern -2k#,"I" kern -3k#,"J" kern -3k#,
+ "K" kern k#,"L" kern -4k#,"M" kern -6k#,"N" kern -6k#,"O" kern -k#,
+ "P" kern -k#,"R" kern -k#,"S" kern -k#,"U" kern k#,"V" kern k#,
+ "W" kern k#,"X" kern -3k#,"Y" kern 2k#,"Z" kern -2k#;
+ligtable "S":"e"=:| oct"206",
+ "D" kern -k#,"E" kern k#,"F" kern k#,"I" kern k#,"J" kern -2k#,
+ "K" kern 2k#,"M" kern -k#,"R" kern -k#,"T" kern k#,"U" kern 2k#,
+ "V" kern k#,"W" kern 2k#,"X" kern -k#,"Y" kern 2k#;
+ligtable "T":"a"=:| oct"207","e"=:| oct"207","i"=:| oct"207",
+ "o"=:| oct"207","u"=:| oct"207","y"=:| oct"207",
+ "h"=:| oct"207","r"=:| oct"207", oct"344"=:| oct"207",
+ oct"366"=:| oct"207", oct"374"=:| oct"207",
+ oct"042"=:| oct"207","j"=:| oct"207","?" kern k#,
+ "A" kern -3k#,"C" kern -k#,"E" kern k#,"F" kern 4k#,"H" kern k#,
+ "I" kern -k#,"K" kern 2k#,"L" kern -2k#,"M" kern -3k#,"N" kern -2k#,
+ "P" kern 2k#,"R" kern k#,"S" kern 2k#,"T" kern 4k#,"U" kern 4k#,
+ "V" kern 3k#,"W" kern 3k#,"X" kern k#,"Y" kern 3k#,"Z" kern k#;
+ligtable "V":"a"=:| oct"210","e"=:| oct"210","i"=:| oct"210",
+ "o"=:| oct"210","u"=:| oct"210", oct"344"=:| oct"210",
+ oct"366"=:| oct"210", oct"374"=:| oct"210",
+ oct"042"=:| oct"210",
+ "A" kern -8k#,"B" kern -2k#,"C" kern -2k#,"D" kern -2k#,"E" kern -2k#,
+ "G" kern -2k#,"H" kern -k#,"I" kern -4k#,"J" kern -3k#,"L" kern -4k#,
+ "M" kern -6k#,"N" kern -5k#,"O" kern -k#,"P" kern -k#,"Q" kern -2k#,
+ "R" kern -k#,"S" kern -k#,"X" kern -2k#,"Z" kern -k#;
+ligtable "W":"a"=:| oct"211","e"=:| oct"211","i"=:| oct"211",
+ "o"=:| oct"211","u"=:| oct"211","h"=:| oct"211",
+ "r"=:| oct"211", oct"344"=:| oct"211", oct"366"=:| oct"211",
+ oct"374"=:| oct"211",oct"042"=:| oct"211",
+ "A" kern -6k#,"B" kern -k#,"C" kern -k#,"D" kern -k#,"F" kern 2k#,
+ "I" kern -3k#,"J" kern -2k#,"K" kern k#,"L" kern -3k#,"M" kern -4k#,
+ "N" kern -3k#,"O" kern -k#,"T" kern 2k#,"U" kern k#,"V" kern k#,
+ "W" kern k#,"Y" kern k#;
+%"O
+ligtable oct"326":"d"=:| oct"327","f"=:| oct"327","h"=:| oct"327",
+ "k"=:| oct"327","l"=:| oct"327","r"=:| oct"327",
+ "s"=:| oct"327";
+
+%FHZ lowercase variants
+ligtable "F":"a"|=:oct"244","e"=: oct"033","i"|=:oct"245",
+ "j"|=:oct"246","l"|=:oct"247","m"|=:oct"250",
+ "o"|=:oct"251","r"|=:oct"252","u"|=:oct"253",
+ "w"|=:oct"254","y"|=:oct"255",oct"344"|=:oct"345",
+ oct"366"|=:oct"367",oct"374"|=:oct"375", oct"042"|=:oct"052",
+ "?" kern k#,
+ "A" kern -2k#,"B" kern k#,"C" kern 2k#,"D" kern 2k#,"E" kern 2k#,
+ "F" kern 6k#,"G" kern 2k#,"H" kern 2k#,"I" kern k#,"K" kern 3k#,
+ "L" kern -k#,"M" kern -2k#,"N" kern -2k#,"O" kern 3k#,"P" kern 2k#,
+ "Q" kern 2k#,"R" kern 2k#,"S" kern 2k#,"T" kern 6k#,"U" kern 4k#,
+ "V" kern 4k#,"W" kern 4k#,"X" kern 2k#,"Y" kern 4k#,"Z" kern 2k#;
+ligtable "H":"a"|=:oct"244","e"=: oct"034","i"|=:oct"245",
+ "j"|=:oct"246","l"|=:oct"247","m"|=:oct"250",
+ "o"|=:oct"251","r"|=:oct"252","u"|=:oct"253",
+ "w"|=:oct"254","y"|=:oct"255",oct"344"|=:oct"345",
+ oct"366"|=:oct"367",oct"374"|=:oct"375",oct"042"|=:oct"052",
+ "A" kern -k#,"C" kern 2k#,"E" kern k#,"F" kern 2k#,"G" kern 2k#,
+ "H" kern k#,"I" kern -k#,"J" kern -3k#,"K" kern 2k#,"L" kern -2k#,
+ "M" kern -k#,"N" kern -k#,"O" kern 2k#,"P" kern k#,"Q" kern 2k#,
+ "R" kern k#,"T" kern 2k#,"U" kern 2k#,"V" kern 2k#,"W" kern 2k#,
+ "X" kern -k#,"Y" kern k#;
+ligtable "Z":"a"|=:oct"244","e"=: oct"035","i"|=:oct"245",
+ "j"|=:oct"246","l"|=:oct"247","m"|=:oct"250",
+ "o"|=:oct"251","r"|=:oct"252","u"|=:oct"253",
+ "w"|=:oct"254","y"|=:oct"255",oct"344"|=:oct"345",
+ oct"366"|=:oct"367",oct"374"|=:oct"375",oct"042"|=:oct"052",
+ "?" kern k#,
+ "A" kern k#,"B" kern 2k#,"C" kern 2k#,"D" kern 2k#,"E" kern 2k#,
+ "F" kern 4k#,"G" kern 3k#,"H" kern 2k#,"I" kern 2k#,"K" kern 3k#,
+ "L" kern 2k#,"M" kern k#,"N" kern 2k#,"O" kern 2k#,"P" kern 2k#,
+ "Q" kern k#,"R" kern k#,"S" kern 2k#,"T" kern 3k#,"U" kern 4k#,
+ "V" kern 4k#,"W" kern 3k#,"X" kern 2k#,"Y" kern 3k#,"Z" kern 2k#;
+
+%just uppercase corrections
+ligtable "A":"A" kern 2k#,"C" kern 2k#,"D" kern k#,"E" kern 2k#,
+ "F" kern 2k#,"G" kern 2k#,"H" kern 2k#,"I" kern 2k#,"J" kern -2k#,
+ "K" kern 2k#,"L" kern k#,"M" kern 2k#,"N" kern 2k#,"O" kern 2k#,
+ "P" kern k#,"Q" kern 2k#,"R" kern k#,"S" kern 2k#,"T" kern 3k#,
+ "U" kern 2k#,"V" kern 3k#,"W" kern 3k#,"X" kern k#,"Y" kern 2k#,
+ "Z" kern k#;
+ligtable "C":"A" kern 2k#,"B" kern k#,"C" kern 3k#,"D" kern 2k#,"E" kern 3k#,
+ "F" kern 3k#,"G" kern 2k#,"H" kern 2k#,"I" kern 3k#,"J" kern -k#,
+ "K" kern 3k#,"L" kern 2k#,"M" kern 2k#,"N" kern 2k#,"O" kern 3k#,
+ "P" kern 3k#,"Q" kern 3k#,"R" kern 2k#,"S" kern 3k#,"T" kern 3k#,
+ "U" kern 4k#,"V" kern 4k#,"W" kern 3k#,"X" kern k#,"Y" kern 4k#,
+ "Z" kern k#;
+ligtable "E":"A" kern 2k#,"B" kern k#,"C" kern 2k#,"D" kern k#,"E" kern 3k#,
+ "F" kern 3k#,"G" kern 2k#,"H" kern 2k#,"I" kern 3k#,"J" kern -k#,
+ "K" kern 3k#,"L" kern k#,"M" kern 2k#,"N" kern 2k#,"O" kern 2k#,
+ "P" kern 2k#,"Q" kern 2k#,"R" kern k#,"S" kern 2k#,"T" kern 2k#,
+ "U" kern 3k#,"V" kern 3k#,"W" kern 3k#,"X" kern k#,"Y" kern 4k#,
+ "Z" kern k#;
+ligtable "G":"A" kern 2k#,"B" kern k#,"C" kern 2k#,"D" kern k#,"E" kern 2k#,
+ "F" kern 2k#,"G" kern 2k#,"H" kern 2k#,"I" kern 3k#,"J" kern -2k#,
+ "K" kern 2k#,"L" kern k#,"M" kern 2k#,"N" kern 2k#,"O" kern 3k#,
+ "P" kern 2k#,"Q" kern 2k#,"R" kern 2k#,"S" kern 3k#,"T" kern 3k#,
+ "U" kern 3k#,"V" kern 3k#,"W" kern 2k#,"X" kern k#,"Y" kern 3k#,
+ "Z" kern 3k#;
+ligtable "J":"?" kern k#,
+ "A" kern 2k#,"B" kern k#,"C" kern 2k#,"D" kern 2k#,"E" kern 3k#,
+ "F" kern 3k#,"G" kern 3k#,"H" kern 2k#,"I" kern 4k#,"K" kern 2k#,
+ "L" kern 2k#,"M" kern 2k#,"N" kern 3k#,"O" kern 3k#,"P" kern 3k#,
+ "Q" kern 3k#,"R" kern 2k#,"S" kern 3k#,"T" kern 4k#,"U" kern 3k#,
+ "V" kern 3k#,"W" kern 3k#,"X" kern k#,"Y" kern 3k#,"Z" kern 2k#;
+ligtable "K":"A" kern 2k#,"B" kern 2k#,"C" kern 2k#,"D" kern k#,"E" kern 3k#,
+ "F" kern 2k#,"G" kern 2k#,"H" kern 2k#,"I" kern 4k#,"J" kern -k#,
+ "K" kern 2k#,"L" kern 2k#,"M" kern 2k#,"N" kern 2k#,"O" kern 3k#,
+ "P" kern 2k#,"Q" kern 2k#,"R" kern 2k#,"S" kern 2k#,"T" kern 2k#,
+ "U" kern 3k#,"V" kern 3k#,"W" kern 2k#,"X" kern k#,"Y" kern 3k#,
+ "Z" kern 2k#;
+ligtable "L":"A" kern 2k#,"B" kern 2k#,"C" kern 2k#,"D" kern k#,"E" kern 3k#,
+ "F" kern 2k#,"G" kern 2k#,"H" kern 2k#,"I" kern 3k#,"J" kern -k#,
+ "K" kern 3k#,"L" kern 2k#,"M" kern 2k#,"N" kern 2k#,"O" kern 3k#,
+ "P" kern 2k#,"Q" kern 2k#,"R" kern 2k#,"S" kern 3k#,"T" kern 3k#,
+ "U" kern 3k#,"V" kern 2k#,"W" kern 3k#,"X" kern 2k#,"Y" kern 4k#,
+ "Z" kern 2k#;
+ligtable "M":"A" kern 2k#,"B" kern k#,"C" kern 2k#,"D" kern k#,"E" kern 3k#,
+ "F" kern 2k#,"G" kern 2k#,"H" kern 2k#,"I" kern 3k#,"J" kern -2k#,
+ "K" kern 2k#,"L" kern 2k#,"M" kern 2k#,"N" kern 2k#,"O" kern 2k#,
+ "P" kern 2k#,"Q" kern 2k#,"R" kern 2k#,"S" kern 2k#,"T" kern 3k#,
+ "U" kern 2k#,"V" kern 2k#,"W" kern 2k#,"X" kern k#,"Y" kern 3k#,
+ "Z" kern k#;
+ligtable "Q":"A" kern 2k#,"B" kern k#,"C" kern 2k#,"D" kern k#,"E" kern 2k#,
+ "F" kern 3k#,"G" kern 2k#,"H" kern 2k#,"I" kern 2k#,"J" kern -k#,
+ "K" kern 2k#,"L" kern 2k#,"M" kern 2k#,"N" kern 2k#,"O" kern 3k#,
+ "P" kern 2k#,"Q" kern 2k#,"R" kern 2k#,"S" kern 3k#,"T" kern 2k#,
+ "U" kern 2k#,"V" kern 3k#,"W" kern 2k#,"X" kern k#,"Y" kern 3k#,
+ "Z" kern 2k#;
+ligtable "R":"A" kern 2k#,"B" kern k#,"C" kern 2k#,"D" kern k#,"E" kern 2k#,
+ "F" kern 2k#,"G" kern 2k#,"H" kern k#,"I" kern 2k#,"J" kern -2k#,
+ "K" kern 2k#,"L" kern 2k#,"M" kern 2k#,"N" kern 2k#,"O" kern 2k#,
+ "P" kern 2k#,"Q" kern 2k#,"R" kern 2k#,"S" kern 3k#,"T" kern 3k#,
+ "U" kern 3k#,"V" kern 2k#,"W" kern 2k#,"X" kern k#,"Y" kern 3k#,
+ "Z" kern 2k#;
+ligtable "U":"A" kern 2k#,"B" kern k#,"C" kern 2k#,"D" kern k#,"E" kern 2k#,
+ "F" kern 2k#,"G" kern 2k#,"H" kern k#,"I" kern 2k#,"J" kern -2k#,
+ "K" kern 2k#,"L" kern 2k#,"M" kern 2k#,"N" kern 3k#,"O" kern 2k#,
+ "P" kern 2k#,"Q" kern 2k#,"R" kern k#,"S" kern 2k#,"T" kern 3k#,
+ "U" kern 2k#,"V" kern 2k#,"W" kern 2k#,"Y" kern 2k#,"Z" kern k#;
+ligtable "X":"A" kern 2k#,"B" kern k#,"C" kern 3k#,"D" kern k#,"E" kern 3k#,
+ "F" kern 3k#,"G" kern 2k#,"H" kern 2k#,"I" kern 2k#,"J" kern -2k#,
+ "K" kern 2k#,"L" kern 2k#,"M" kern 2k#,"N" kern 2k#,"O" kern 3k#,
+ "P" kern 2k#,"Q" kern 3k#,"R" kern 2k#,"S" kern 3k#,"T" kern 3k#,
+ "U" kern 3k#,"V" kern 2k#,"W" kern 2k#,"X" kern k#,"Y" kern 3k#,
+ "Z" kern 2k#;
+ligtable "Y":"A" kern 2k#,"B" kern k#,"C" kern k#,"D" kern 2k#,"E" kern 2k#,
+ "F" kern 2k#,"G" kern 2k#,"H" kern 2k#,"I" kern 2k#,"J" kern -k#,
+ "K" kern 3k#,"L" kern 2k#,"M" kern 2k#,"N" kern 2k#,"O" kern 3k#,
+ "P" kern 2k#,"Q" kern 2k#,"R" kern 2k#,"S" kern 2k#,"T" kern 3k#,
+ "U" kern 3k#,"V" kern 2k#,"W" kern 2k#,"X" kern k#,"Y" kern 3k#,
+ "Z" kern k#;
+
+%dashes
+ligtable "-":"-" =: oct"025";
+ligtable oct"025":"-" =: oct"026";
+
+%s at the end of a word
+ligtable "s": oct"040" =:| oct"242", % space (textvisiblespace,boundarychar)
+ oct"020" =:| oct"242", % '' (double quote)
+ oct"025" =:| oct"242", % --
+ oct"026" =:| oct"242", % ---
+ oct"041" =:| oct"242", % !
+ oct"047" =:| oct"242", % ' (apostroph)
+ oct"051" =:| oct"242", % )
+ oct"054" =:| oct"242", % ,
+ oct"055" =:| oct"242", % -
+ oct"056" =:| oct"242", % .
+ oct"072" =:| oct"242", % :
+ oct"073" =:| oct"242", % ;
+ oct"077" =:| oct"242", % ?
+ oct"140" =:| oct"242", % ' (quote)
+ "e"=:| oct"243";
+
+% *-ligatures for alternative umlaut
+ligtable oct"052":"a" =: oct"345",
+ "i" =: oct"240",
+ "o" =: oct"367",
+ "u" =: oct"375";
+
+% "-ligatures as in german package
+ligtable oct"042":"s"=:oct"377",
+ "a"=:oct"344",
+ "o"=:oct"366",
+ "u"=:oct"374",
+ "A"=:oct"304",
+ "O"=:oct"326",
+ "U"=:oct"334",
+ "`"=:oct"015",
+ "'"=:oct"140";
+ligtable oct"015":"`"=:oct"022";
+ligtable oct"140":"'"=:oct"020";
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% End of File %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/oesch/oesch.mf b/Master/texmf-dist/fonts/source/public/oesch/oesch.mf
new file mode 100644
index 00000000000..5162145e222
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/oesch/oesch.mf
@@ -0,0 +1,41 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% oesch.mf %
+% %
+% Oesterreichische Schulschrift 1995 (Austrian School Writing Letters 1995) %
+% Version May 18, 2001 %
+% %
+% Design by Gerhard A. Bachmaier %
+% %
+% Email: gerhard.bachmaier@uni-graz.at %
+% %
+% You're free to use or copy this file as long as you leave this %
+% header intact and don't change the contents. %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_identifier:="oesch10";
+designsize:=10pt#; % design size
+font_size:=10pt#; % actual font size
+ht#:=8pt#; % height of the uppercase letters
+px#:=0.6pt#; % horizontal thickness of the pen
+py#:=7/10px#; % vertical thickness of the pen
+u#:=1/100ht#; % unit
+font_normal_space:=50u#; % interword space
+font_normal_stretch:=10u#; % interword space stretch
+font_normal_shrink:=10u#; % interword space shrink
+font_quad:=70u#; % width of blank space
+font_x_height:=52u#; % height of one "ex"
+hs#:=52u#; % height for lowercase letters
+o#:=u#; % unit for overshot
+dot#:=1.5px#; % unit for dotsize
+k#:=6u#; % kerning unit
+boundarychar:=oct"040";
+input oesch_m
+end % and end!
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% End of File %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/oesch/oesch_m.mf b/Master/texmf-dist/fonts/source/public/oesch/oesch_m.mf
new file mode 100644
index 00000000000..ddefb5159f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/oesch/oesch_m.mf
@@ -0,0 +1,1200 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% oesch_m.mf
+% %
+% Oesterreichische Schulschrift 1995 (Austrian School Writing Letters 1995) %
+% Version May 18, 2001 %
+% %
+% Design by Gerhard A. Bachmaier %
+% %
+% Email: gerhard.bachmaier@uni-graz.at %
+% %
+% You're free to use or copy this file as long as you leave this %
+% header intact and don't change the contents. %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+define_pixels(u,o,dot,px,py);
+pickup pencircle xscaled px yscaled py;
+write_pen:=savepen;
+pickup pencircle xscaled dot yscaled dot;
+dot_pen:=savepen;
+
+smoothing:=0;
+
+beginchar("A",116u#,ht#,o#);
+pickup write_pen;
+draw (0,24u)..controls (0,10u) and (10u,0)..(16u,0)..controls(36u,0) and (32u,0)..(120u,100u);
+draw (88u,0)--(120u,100u);
+draw(56u,48u)..controls (68u,26u) and (80u,16u)..(116u,24u);
+endchar;
+
+beginchar(196,116u#,ht#,o#); % uppercase letter A with diaresis (umlaut A)
+pickup write_pen;
+draw (0,24u)..controls (0,10u) and (10u,0)..(16u,0)..controls(36u,0) and (32u,0)..(120u,100u);
+draw (88u,0)--(120u,100u);
+draw(56u,48u)..controls (68u,26u) and (80u,16u)..(116u,24u);
+draw (114u,108u)--(118u,120u);
+draw (126u,108u)--(130u,120u);
+endchar;
+
+beginchar("B",64u#,ht#,0);
+pickup write_pen;
+draw(8u,2u)--(40u,98u);
+draw(0,6u)..controls(32u,-8u) and (53u,6u)..(56u,26u);
+draw(56u,26u).. controls(60u,42u) and (40u,52u)..(24u,52u);
+draw(24u,52u).. controls(40u,52u) and (62u,58u)..(68u,76u);
+draw(32u,96u)..controls(52u,108u) and (70u,90u)..(68u,76u);
+endchar;
+
+beginchar(128,62u#,ht#,0); %B + lowercase letter
+pickup write_pen;
+draw(8u,2u)--(40u,98u);
+draw(0,6u)..controls(32u,-8u) and (53u,6u)..(56u,26u);
+draw(56u,26u).. controls(60u,42u) and (40u,52u)..(24u,52u);
+draw(24u,52u).. controls(40u,52u) and (62u,58u)..(68u,76u);
+draw(32u,96u)..controls(52u,108u) and (70u,90u)..(68u,76u);
+draw(55u,20u)--(62u,24u);
+endchar;
+
+beginchar("C",56u#,ht#,0);
+pickup write_pen;
+draw(20u,0)..controls (2u,0) and (-2u,28u)..(6u,52u);
+draw(52u,100u)..controls(36u,100u) and (14u,82u)..(6u,52u);
+draw(20u,0)..controls(28u,0) and (40u,4u)..(56u,24u);
+draw(52u,100u).. controls(64u,100u) and (64u,84u)..(64u,88u);
+endchar;
+
+beginchar("D",67u#,ht#,0);
+pickup write_pen;
+draw(10u,0)--(40u,99u);
+draw(0,2u)..controls(20u,-6u) and (70u,20u)..(70u,56u);
+draw(70u,56u)..controls(70u,90u) and (48u,104u)..(28u,98u);
+endchar;
+
+beginchar(129,70u#,ht#,0); % D + lowercase letter
+pickup write_pen;
+draw(10u,0)--(40u,99u);
+draw(0,2u)..controls(20u,-6u) and (70u,20u)..(70u,56u);
+draw(70u,56u)..controls(70u,90u) and (48u,104u)..(28u,98u);
+draw(20u,2u)..controls(34u,6u) and (50u,4u)..(70u,24u);
+endchar;
+
+beginchar("E",48u#,ht#,0);
+pickup write_pen;
+draw(20u,0)..controls(25u,0) and (28u,0)..(48u,24u);
+draw(20u,0)..controls(6u,0) and (0,10u)..(0,20u);
+draw(0,20u)..controls(0,40u) and (20u,52u)..(32u,52u);
+draw(32u,52u)..controls(20u,52u) and (18u,68u)..(18u,76u);
+draw(18u,76u)..controls(18u,88u) and (32u,100u)..(44u,100u);
+draw(44u,100u)..controls(50u,100u) and (56u,94u)..(56u,88u);
+endchar;
+
+beginchar("F",41u#,ht#,0);
+pickup write_pen;
+draw(0,0)--(28u,100u);
+draw(4u,100u)--(64u,100u);
+draw(1u,48u)..controls(12u,40u) and (20u,36u)..(41u,44u);
+endchar;
+
+beginchar("G",72u#,ht#,54o#);
+pickup write_pen;
+draw(20u,0)..controls(2u,0) and (-2u,28u)..(6u,52u);
+draw(52u,100u)..controls(36u,100u) and (14u,82u)..(6u,52u);
+draw(52u,100u)..controls(64u,100u) and (64u,84u)..(64u,88u);
+draw(20u,0)..controls(28u,0) and (48u,0)..(62u,52u);
+draw(62u,52u)--(40u,-40u);
+draw(40u,-40u)..controls(36u,-54u) and (20u,-54u)..(20u,-40u);
+draw(20u,-40u)..controls(20u,-30u) and (48u,-8u)..(72u,24u);
+endchar;
+
+beginchar("H",72u#,ht#,0);
+pickup write_pen;
+draw(0,0)--(28u,100u);
+draw(40u,0)--(68u,100u);
+draw(8u,56u)..controls(20u,36u) and (36u,32u)..(72u,44u);
+endchar;
+
+beginchar("I",49u#,ht#,8o#);
+pickup write_pen;
+draw(38u,84u)--(60u,100u);
+draw(60u,100u)--(40u,24u);
+draw(40u,24u)..controls(28u,-8u) and (0,-8u)..(0,24u);
+endchar;
+
+beginchar(130,52u#,ht#,8o#); % I + lowercase letter
+pickup write_pen;
+draw(38u,84u)--(60u,100u);
+draw(60u,100u)--(40u,24u);
+draw(40u,24u)..controls(28u,-8u) and (0,-8u)..(0,24u);
+draw(20u,0)..controls(28u,6u) and (32u,4u)..(52u,24u);
+endchar;
+
+beginchar("J",52u#,ht#,54o#);
+pickup write_pen;
+draw(34u,84u)--(56u,100u);
+draw(56u,100u)--(20u,-40u);
+draw(20u,-40u)..controls(16u,-54u) and (0,-54u)..(0,-40u);
+draw(0,-40u)..controls(0,-30u)and (28u,-8u)..(52u,24u);
+endchar;
+
+beginchar("K",76u#,ht#,o#);
+pickup write_pen;
+draw(4u,84u)--(26u,100u);
+draw(26u,100u)--(0,0);
+draw(14u,50u)--(38u,6u);
+draw(38u,6u)..controls(42u,-2u) and (54u,-6u)..(76u,24u);
+draw(14u,50u)--(68u,100u);
+endchar;
+
+beginchar("L",76u#,ht#,0);
+pickup write_pen;
+draw(76u,90u)..controls(70u,98u) and (70u,100u)..(64u,100u);
+draw(64u,100u)..controls(58u,100u) and (54u,100u)..(48u,90u);
+draw(48u,90u)--(30u,20u);
+draw(30u,20u)..controls(25u,0) and (11u,0)..(10u,0);
+draw(10u,0)..controls(6u,0) and (0,4u)..(0,8u);
+draw(0,8u)..controls(0,16u) and (10u,16u)..(14u,16u);
+draw(14u,16u)..controls(24u,16u) and (36u,0)..(52u,0);
+draw(52u,0)..controls(60u,0) and (60u,0)..(76u,24u);
+endchar;
+
+beginchar("M",138u#,ht#,0);
+pickup write_pen;
+draw(0,24u)..controls(0,12u) and (8u,0)..(18u,0);
+draw(18u,0)..controls(24u,0) and (32u,0)..(94u,100u);
+draw(94u,100u)--(64u,0);
+draw(64u,0)--(128u,100u);
+draw(128u,100u)..controls(98u,0) and (100u,0)..(108u,0);
+draw(108u,0)..controls(112u,0) and (116u,0)..(138u,24u);
+endchar;
+
+beginchar("N",123u#,ht#,0);
+pickup write_pen;
+draw(0,24u)..controls(0,12u) and (8u,0)..(18u,0);
+draw(18u,0)..controls(24u,0) and (32u,0)..(94u,100u);
+draw(94u,100u)--(64u,0);
+draw(64u,0)..controls(76u,40u) and (125u,100u)..(148u,100u);
+endchar;
+
+beginchar(131,96u#,ht#,0); % N + lowercase letter
+pickup write_pen;
+draw(0,24u)..controls(0,12u) and (8u,0)..(18u,0);
+draw(18u,0)..controls(24u,0) and (32u,0)..(94u,100u);
+draw(94u,100u)--(64u,0);
+draw(64u,0)..controls(76u,40u) and (125u,100u)..(148u,100u);
+draw(64u,0)--(96u,24u);
+endchar;
+
+beginchar("O",67u#,ht#,0);
+pickup write_pen;
+draw(20u,0)..controls(2u,0) and (-2u,28u)..(6u,52u);
+draw(52u,100u)..controls(36u,100u) and (14u,82u)..(6u,52u);
+draw(52u,100u)..controls(70u,100u) and (74u,72u)..(66u,48u);
+draw(66u,48u)..controls(58u,18u) and (36u,0)..(20u,0);
+endchar;
+
+beginchar(132,67u#,ht#,0); % O + lowercase letter
+pickup write_pen;
+draw(20u,0)..controls(2u,0) and (-2u,28u)..(6u,52u);
+draw(52u,100u)..controls(36u,100u) and (14u,82u)..(6u,52u);
+draw(52u,100u)..controls(70u,100u) and (74u,72u)..(66u,48u);
+draw(66u,48u)..controls(58u,18u) and (36u,0)..(20u,0);
+draw(30u,2u)..controls(38u,6u) and (47u,8u)..(67u,24u);
+endchar;
+
+beginchar(214,67u#,ht#,0); % uppercase letter O with diaresis (umlaut O)
+pickup write_pen;
+draw(20u,0)..controls(2u,0) and (-2u,28u)..(6u,52u);
+draw(52u,100u)..controls(36u,100u) and (14u,82u)..(6u,52u);
+draw(52u,100u)..controls(70u,100u) and (74u,72u)..(66u,48u);
+draw(66u,48u)..controls(58u,18u) and (36u,0)..(20u,0);
+draw (46u,108u)--(50u,120u);
+draw (58u,108u)--(64u,120u);
+endchar;
+
+beginchar(215,67u#,ht#,0); % uppercase letter O with diaresis (umlaut O) + lowercase letter
+pickup write_pen;
+draw(20u,0)..controls(2u,0) and (-2u,28u)..(6u,52u);
+draw(52u,100u)..controls(36u,100u) and (14u,82u)..(6u,52u);
+draw(52u,100u)..controls(70u,100u) and (74u,72u)..(66u,48u);
+draw(66u,48u)..controls(58u,18u) and (36u,0)..(20u,0);
+draw(30u,2u)..controls(38u,6u) and (47u,8u)..(67u,24u);
+draw (46u,108u)--(50u,120u);
+draw (58u,108u)--(64u,120u);
+endchar;
+
+beginchar("P",53u#,ht#,0);
+pickup write_pen;
+draw(0,2u)--(32u,98u);
+draw(16u,52u)..controls(32u,52u) and (54u,58u)..(60u,76u);
+draw(24u,96u)..controls(44u,108u) and (62u,90u)..(60u,76u);
+endchar;
+
+beginchar(133,32u#,ht#,0); % P + lowercase letter
+pickup write_pen;
+draw(0,2u)--(32u,98u);
+draw(16u,52u)..controls(32u,52u) and (54u,58u)..(60u,76u);
+draw(24u,96u)..controls(44u,108u) and (62u,90u)..(60u,76u);
+draw(0,0)--(32u,24u);
+endchar;
+
+beginchar("Q",72u#,ht#,o#);
+pickup write_pen;
+draw(20u,0)..controls(2u,0) and (-2u,28u)..(6u,52u);
+draw(52u,100u)..controls(36u,100u) and (14u,82u)..(6u,52u);
+draw(52u,100u)..controls(70u,100u) and (74u,72u)..(66u,48u);
+draw(66u,48u)..controls(58u,18u) and (36u,0)..(20u,0);
+draw(28u,24u)--(36u,8u);
+draw(36u,8u)..controls(40u,0) and (52u,-4u)..(72u,24u);
+endchar;
+
+beginchar("R",72u#,ht#,o#);
+pickup write_pen;
+draw(0,2u)--(32u,98u);
+draw(16u,52u)..controls(32u,52u) and (54u,58u)..(60u,76u);
+draw(24u,96u)..controls(44u,108u) and (62u,90u)..(60u,76u);
+draw(16u,52u)--(36u,8u);
+draw(36u,8u)..controls(40u,0) and (52u,-4u)..(72u,24u);
+endchar;
+
+beginchar("S",48u#,ht#,0);
+pickup write_pen;
+draw(54u,84u)..controls(54u,92u) and (48u,100u)..(40u,100u);
+draw(40u,100u)..controls(30u,100u) and (20u,90u)..(20u,80u);
+draw(20u,80u)..controls(20u,60u) and (40u,40u)..(40u,20u);
+draw(40u,20u)..controls(40u,10u) and (30u,0)..(20u,0);
+draw(20u,0)..controls(10u,0) and (0,14u)..(0,24u);
+endchar;
+
+beginchar(134,54u#,ht#,0); % S + lowercase letter e
+pickup write_pen;
+draw(54u,84u)..controls(54u,92u) and (48u,100u)..(40u,100u);
+draw(40u,100u)..controls(30u,100u) and (20u,90u)..(20u,80u);
+draw(20u,80u)..controls(20u,60u) and (40u,40u)..(40u,20u);
+draw(40u,20u)..controls(40u,10u) and (30u,0)..(20u,0);
+draw(20u,0)..controls(10u,0) and (0,14u)..(0,24u);
+draw(32u,4u)--(54u,24u);
+endchar;
+
+beginchar("T",38u#,ht#,0);
+pickup write_pen;
+draw(0,0)--(28u,100u);
+draw(4u,100u)--(64u,100u);
+endchar;
+
+beginchar(135,32u#,ht#,0); % T + lowercase letter
+pickup write_pen;
+draw(0,0)--(28u,100u);
+draw(4u,100u)--(64u,100u);
+draw(0,0)--(32u,24u);
+endchar;
+
+beginchar("U",72u#,ht#,0);
+pickup write_pen;
+draw(2u,84u)--(24u,100u);
+draw(24u,100u)--(4u,24u);
+draw(4u,24u)..controls(-2u,8u) and (-2u,0)..(10u,0);
+draw(10u,0)..controls(20u,0) and (28u,4u)..(68u,100u);
+draw(68u,100u)..controls(38u,0) and (40u,0)..(48u,0);
+draw(48u,0)..controls(52u,0) and (52u,0)..(72u,24u);
+endchar;
+
+beginchar(220,72u#,ht#,0); % uppercase letter U with diaresis (umlaut U)
+pickup write_pen;
+draw(2u,84u)--(24u,100u);
+draw(24u,100u)--(4u,24u);
+draw(4u,24u)..controls(-2u,8u) and (-2u,0)..(10u,0);
+draw(10u,0)..controls(20u,0) and (28u,4u)..(68u,100u);
+draw(68u,100u)..controls(38u,0) and (40u,0)..(48u,0);
+draw(48u,0)..controls(52u,0) and (52u,0)..(72u,24u);
+draw (40u,108u)--(44u,120u);
+draw (52u,108u)--(56u,120u);
+endchar;
+
+beginchar("V",71u#,ht#,0);
+pickup write_pen;
+draw(6u,84u)--(28u,100u);
+draw(28u,100u)--(0,0);
+draw(0,0)..controls(12u,40u) and (61u,100u)..(84u,100u);
+endchar;
+
+beginchar(136,32u#,ht#,0); % V + lowercase letter
+pickup write_pen;
+draw(6u,84u)--(28u,100u);
+draw(28u,100u)--(0,0);
+draw(0,0)..controls(12u,40u) and (61u,100u)..(84u,100u);
+draw(0,0)--(32u,24u);
+endchar;
+
+beginchar("W",95u#,ht#,0);
+pickup write_pen;
+draw(6u,84u)--(28u,100u);
+draw(28u,100u)--(0,0);
+draw(0,0)--(60u,100u);
+draw(60u,100u)--(36u,0);
+draw(36u,0)..controls(52u,40u) and (89u,100u)..(112u,100u);
+endchar;
+
+beginchar(137,68u#,ht#,0); % W + lowercase letter
+pickup write_pen;
+draw(6u,84u)--(28u,100u);
+draw(28u,100u)--(0,0);
+draw(0,0)--(60u,100u);
+draw(60u,100u)--(36u,0);
+draw(36u,0)..controls(52u,40u) and (89u,100u)..(112u,100u);
+draw(36u,0)--(68u,24u);
+endchar;
+
+beginchar("X",100u#,ht#,o#);
+pickup write_pen;
+draw(0,0)--(80u,100u);
+draw(30u,100u)--(64u,6u);
+draw(64u,6u)..controls(70u,-4u) and (76u,0)..(100u,24u);
+endchar;
+
+beginchar("Y",64u#,ht#,54o#);
+pickup write_pen;
+draw(2u,84u)--(24u,100u);
+draw(24u,100u)--(4u,24u);
+draw(4u,24u)..controls(-2u,8u) and (-2u,0)..(10u,0);
+draw(10u,0)..controls(20u,0) and (28u,4u)..(68u,100u);
+draw(68u,100u)--(32u,-40u);
+draw(32u,-40u)..controls(28u,-54u) and (12u,-54u)..(12u,-40u);
+draw(12u,-40u)..controls(12u,-30u) and (40u,-8u)..(64u,24u);
+endchar;
+
+beginchar("Z",60u#,ht#,0);
+pickup write_pen;
+draw(28u,100u)--(76u,100u);
+draw(76u,100u)--(0,0);
+draw(0,0)--(56u,0);
+draw(20u,48u)..controls(32u,40u) and (40u,36u)..(60u,44u);
+endchar;
+
+beginchar("a",76u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(20u,40u);
+draw(36u,52u)..controls(26u,52u) and (12u,32u)..(12u,20u);
+draw(12u,20u)..controls(12u,12u) and (12u,0)..(20u,0);
+draw(20u,0)..controls(36u,0) and (48u,16u)..(48u,32u);
+draw(48u,32u)..controls(48u,44u) and (46u,52u)..(36u,52u);
+draw(56u,52u)--(44u,10u);
+draw(44u,10u)..controls(40u,0) and (44u,-10u)..(76u,24u);
+endchar;
+
+beginchar(228,76u#,ht#,0); % lowercase letter a with diaresis (umlaut a)
+pickup write_pen;
+draw(0,24u)--(20u,40u);
+draw(36u,52u)..controls(26u,52u) and (12u,32u)..(12u,20u);
+draw(12u,20u)..controls(12u,12u) and (12u,0)..(20u,0);
+draw(20u,0)..controls(36u,0) and (48u,16u)..(48u,32u);
+draw(48u,32u)..controls(48u,44u) and (46u,52u)..(36u,52u);
+draw(56u,52u)--(44u,10u);
+draw(44u,10u)..controls(40u,0) and (44u,-10u)..(76u,24u);
+%
+draw(35u,60u)--(39u,72u);
+draw(47u,60u)--(51u,72u);
+endchar;
+
+beginchar("b",60u#,ht#,0);
+pickup write_pen;
+draw(0,24u)--(48u,76u);
+draw(48u,76u)..controls(52u,80u) and (58u,88u)..(58u,94u);
+draw(58u,94u)..controls(58u,97u) and (56u,100u)..(52u,100u);
+draw(52u,100u)..controls(48u,100u) and (44u,100u)..(40u,92u);
+draw(40u,92u)--(16u,14u);
+draw(16u,14u)..controls(16u,2u) and (24u,0)..(28u,0);
+draw(28u,0)..controls(36u,0) and (48u,24u)..(54u,38u);
+draw(54u,38u)..controls(58u,52u) and (46u,52u)..(42u,38u);
+draw(42u,38u)..controls(40u,24u) and (48u,20u)..(60u,24u);
+endchar;
+
+beginchar("c",52u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(20u,40u);
+draw(44u,44u)..controls(43u,52u) and (38u,52u)..(36u,52u);
+draw(36u,52u)..controls(26u,52u) and (12u,32u)..(12u,20u);
+draw(12u,20u)..controls(12u,12u) and (12u,0)..(20u,0);
+draw(20u,0)..controls(26u,0) and (38u,4u)..(52u,24u);
+endchar;
+
+beginchar("d",76u#,ht#,0);
+pickup write_pen;
+draw(0,24u)--(20u,40u);
+draw(36u,52u)..controls(26u,52u) and (12u,32u)..(12u,20u);
+draw(12u,20u)..controls(12u,12u) and (12u,0)..(20u,0);
+draw(20u,0)..controls(36u,0) and (48u,16u)..(48u,32u);
+draw(48u,32u)..controls(48u,44u) and (46u,52u)..(36u,52u);
+draw(72u,100u)--(44u,10u);
+draw(44u,10u)..controls(40u,0) and (44u,-10u)..(76u,24u);
+endchar;
+
+beginchar("e",38u#,hs#,0);
+pickup write_pen;
+draw(0,24u)..controls(8u,32u) and (20u,37u)..(22u,44u);
+draw(22u,44u)..controls(22u,48u) and (20u,52u)..(14u,52u);
+draw(14u,52u)..controls(18u,52u) and (8u,52u)..(6u,42u);
+draw(6u,42u)--(-4u,8u);
+draw(-4u,8u)..controls(-4u,0) and (4u,0)..(10u,0);
+draw(10u,0)..controls(12u,0) and (24u,8u)..(38u,24u);
+endchar;
+
+beginchar(235,38u#,hs#,0); % lowercase letter e with diaresis
+pickup write_pen;
+draw(0,24u)..controls(8u,32u) and (20u,37u)..(22u,44u);
+draw(22u,44u)..controls(22u,48u) and (20u,52u)..(14u,52u);
+draw(14u,52u)..controls(18u,52u) and (8u,52u)..(6u,42u);
+draw(6u,42u)--(-4u,8u);
+draw(-4u,8u)..controls(-4u,0) and (4u,0)..(10u,0);
+draw(10u,0)..controls(12u,0) and (24u,8u)..(38u,24u);
+draw (11u,60u)--(15u,72u);
+draw (23u,60u)--(27u,72u);
+endchar;
+
+beginchar("f",44u#,ht#,52o#);
+pickup write_pen;
+draw(0,24u)--(48u,76u);
+draw(48u,76u)..controls(52u,80u) and (58u,88u)..(58u,94u);
+draw(58u,94u)..controls(58u,97u) and (56u,100u)..(52u,100u);
+draw(52u,100u)..controls(48u,100u) and (44u,100u)..(40u,92u);
+draw(40u,92u)--(0,-52u);
+draw(10u,14u)..controls(20u,8u) and (32u,8u)..(44u,24u)
+endchar;
+
+beginchar("g",64u#,hs#,54o#);
+pickup write_pen;
+draw(0,24u)--(20u,40u);
+draw(36u,52u)..controls(26u,52u) and (12u,32u)..(12u,20u);
+draw(12u,20u)..controls(12u,12u) and (12u,0)..(20u,0);
+draw(20u,0)..controls(36u,0) and (48u,16u)..(48u,32u);
+draw(48u,32u)..controls(48u,44u) and (46u,52u)..(36u,52u);
+draw(54u,52u)--(32u,-40u);
+draw(32u,-40u)..controls(28u,-54u) and (12u,-54u)..(12u,-40u);
+draw(12u,-40u)..controls(12u,-30u) and (40u,-8u)..(64u,24u);
+endchar;
+
+beginchar("h",74u#,ht#,0);
+pickup write_pen;
+draw(0,24u)--(48u,76u);
+draw(48u,76u)..controls(52u,80u) and (58u,88u)..(58u,94u);
+draw(58u,94u)..controls(58u,97u) and (56u,100u)..(52u,100u);
+draw(52u,100u)..controls(48u,100u) and (44u,100u)..(40u,92u);
+draw(40u,92u)--(14u,0);
+draw(14u,0)..controls(20u,24u) and (34u,52u)..(48u,52u);
+draw(48u,52u)..controls(64u,52u) and (36u,0)..(48u,0);
+draw(48u,0)..controls(52u,0) and (60u,8u)..(74u,24u);
+endchar;
+
+beginchar("i",54u#,ht#,0);
+pickup write_pen;
+draw(0,24u)--(32u,52u);
+draw(32u,52u)--(20u,12u);
+draw(20u,12u)..controls(16u,0) and (18u,0)..(22u,0);
+draw(22u,0)..controls(28u,0) and (38u,8u)..(54u,24u);
+pickup dot_pen;
+drawdot (36u,70u);
+endchar;
+
+beginchar(25,54u#,ht#,0); % dotless lowercase letter i
+pickup write_pen;
+draw(0,24u)--(32u,52u);
+draw(32u,52u)--(20u,12u);
+draw(20u,12u)..controls(16u,0) and (18u,0)..(22u,0);
+draw(22u,0)..controls(28u,0) and (38u,8u)..(54u,24u);
+endchar;
+
+beginchar(239,54u#,ht#,0); % dotless lowercase letter i with diaresis
+pickup write_pen;
+draw(0,24u)--(32u,52u);
+draw(32u,52u)--(20u,12u);
+draw(20u,12u)..controls(16u,0) and (18u,0)..(22u,0);
+draw(22u,0)..controls(28u,0) and (38u,8u)..(54u,24u);
+draw (26u,60u)--(30u,72u);
+draw (38u,60u)--(42u,72u);
+endchar;
+
+beginchar("j",36u#,ht#,54o#);
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(28u,52u)--(4u,-40u);
+draw(4u,-40u)..controls(0,-54u) and (-16u,-54u)..(-16u,-40u);
+draw(-16u,-40u)..controls(-16u,-30u) and (12u,-8u)..(36u,24u);
+pickup dot_pen;
+drawdot (36u,70u);
+endchar;
+
+beginchar(26,36u#,ht#,54o#); % dotless lowercase letter j
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(28u,52u)--(4u,-40u);
+draw(4u,-40u)..controls(0,-54u) and (-16u,-54u)..(-16u,-40u);
+draw(-16u,-40u)..controls(-16u,-30u) and (12u,-8u)..(36u,24u);
+endchar;
+
+beginchar("k",68u#,ht#,0);
+pickup write_pen;
+draw(0,24u)--(48u,76u);
+draw(48u,76u)..controls(52u,80u) and (58u,88u)..(58u,94u);
+draw(58u,94u)..controls(58u,97u) and (56u,100u)..(52u,100u);
+draw(52u,100u)..controls(48u,100u) and (44u,100u)..(40u,92u);
+draw(40u,92u)--(14u,0);
+draw(14u,0)..controls(20u,24u) and (34u,52u)..(48u,52u);
+draw(48u,52u)..controls(64u,52u) and (46u,26u)..(24u,26u);
+draw(24u,26u)..controls(38u,0) and (42u,0)..(46u,0);
+draw(46u,0)..controls(50u,0) and (54u,0)..(68u,24u);
+endchar;
+
+beginchar("l",46u#,ht#,0);
+pickup write_pen;
+draw(0,24u)--(48u,76u);
+draw(48u,76u)..controls(52u,80u) and (58u,88u)..(58u,94u);
+draw(58u,94u)..controls(58u,97u) and (56u,100u)..(52u,100u);
+draw(52u,100u)..controls(48u,100u) and (44u,100u)..(40u,92u);
+draw(40u,92u)--(16u,14u);
+draw(16u,14u)..controls(11u,2u) and (16u,0)..(20u,0);
+draw(20u,0)..controls(24u,0) and (36u,14u)..(46u,24u);
+endchar;
+
+beginchar("m",104u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(29u,52u);
+draw(29u,52u)--(14u,0);
+draw(14u,0)..controls(20u,24u) and (38u,52u)..(44u,52u);
+draw(44u,52u)..controls(60u,52u) and (48u,24u)..(44u,0);
+draw(44u,0)..controls(48u,24u) and (64u,52u)..(78u,52u);
+draw(78u,52u)..controls(94u,52u) and (66u,0)..(78u,0);
+draw(78u,0)..controls(82u,0) and (90u,8u)..(104u,24u);
+endchar;
+
+beginchar("n",74u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(29u,52u);
+draw(29u,52u)--(14u,0);
+draw(14u,0)..controls(20u,24u) and (34u,52u)..(48u,52u);
+draw(48u,52u)..controls(64u,52u) and (36u,0)..(48u,0);
+draw(48u,0)..controls(52u,0) and (60u,8u)..(74u,24u);
+endchar;
+
+beginchar("o",60u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(20u,40u);
+draw(36u,52u)..controls(26u,52u) and (12u,32u)..(12u,20u);
+draw(12u,20u)..controls(12u,12u) and (12u,0)..(20u,0);
+draw(20u,0)..controls(36u,0) and (48u,16u)..(48u,32u);
+draw(48u,32u)..controls(48u,44u) and (46u,52u)..(36u,52u);
+draw(44u,16u)--(60u,24u);
+endchar;
+
+beginchar(246,60u#,ht#,0); % lowercase letter o with diaresis (umlaut o)
+pickup write_pen;
+draw(0,24u)--(20u,40u);
+draw(36u,52u)..controls(26u,52u) and (12u,32u)..(12u,20u);
+draw(12u,20u)..controls(12u,12u) and (12u,0)..(20u,0);
+draw(20u,0)..controls(36u,0) and (48u,16u)..(48u,32u);
+draw(48u,32u)..controls(48u,44u) and (46u,52u)..(36u,52u);
+draw(44u,16u)--(60u,24u);
+%
+draw(32u,60u)--(36u,72u);
+draw(44u,60u)--(48u,72u);
+endchar;
+
+beginchar("p",68u#,hs#,48o#);
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(28u,52u)--(0,-48u);
+draw(14u,0)..controls(20u,24u) and (34u,52u)..(48u,52u);
+draw(48u,52u)..controls(68u,52u) and (60u,0)..(40u,0);
+draw(40u,0)..controls(32u,0) and (44u,12u)..(68u,24u);
+endchar;
+
+beginchar("q",72u#,hs#,48o#);
+pickup write_pen;
+draw(0,24u)--(20u,40u);
+draw(36u,52u)..controls(26u,52u) and (12u,32u)..(12u,20u);
+draw(12u,20u)..controls(12u,12u) and (12u,0)..(20u,0);
+draw(20u,0)..controls(36u,0) and (48u,16u)..(48u,32u);
+draw(48u,32u)..controls(48u,44u) and (46u,52u)..(36u,52u);
+draw(56u,52u)--(24u,-48u);
+draw(41u,4u)--(72u,24u);
+endchar;
+
+beginchar("r",56u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(16u,52u);
+draw(16u,52u)..controls(12u,36u) and (28u,36u)..(32u,52u);
+draw(32u,52u)--(22u,8u);
+draw(22u,8u)..controls(22u,5u) and (23u,0)..(26u,0);
+draw(26u,0)..controls(32u,0) and (38u,0)..(56u,24u);
+endchar;
+
+beginchar(160,68u#,hs#,0); % r at the beginning
+pickup write_pen;
+draw(0,6)--(28u,52u);
+draw(28u,52u)..controls(24u,36u) and (40u,36u)..(44u,52u);
+draw(44u,52u)--(34u,8u);
+draw(34u,8u)..controls(34u,5u) and (35u,0)..(38u,0);
+draw(38u,0)..controls(44u,0) and (50u,0)..(68u,24u);
+endchar;
+
+beginchar("s",40u#,hs#,0); % mid s with small dash
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(28u,52u)..controls(24u,24u) and (32u,36u)..(32u,16u);
+draw(32u,16u)..controls(32u,8u) and (24u,0)..(16u,0);
+draw(16u,0)..controls(10u,0) and (4u,8u)..(4u,12u);
+draw(32u,16u)--(40u,24u);
+endchar;
+
+beginchar(162,36u#,hs#,0); % final s
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(28u,52u)..controls(24u,24u) and (32u,36u)..(32u,16u);
+draw(32u,16u)..controls(32u,8u) and (24u,0)..(16u,0);
+draw(16u,0)..controls(10u,0) and (4u,8u)..(4u,12u);
+endchar;
+
+beginchar(163,50u#,hs#,0); % mid s with larger dash for lowercase letter e
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(28u,52u)..controls(24u,24u) and (32u,36u)..(32u,16u);
+draw(32u,16u)..controls(32u,8u) and (24u,0)..(16u,0);
+draw(16u,0)..controls(10u,0) and (4u,8u)..(4u,12u);
+draw(32u,12u)--(50u,24u);
+endchar;
+
+beginchar(255,50u#,ht#,0); % german s-z
+pickup write_pen;
+draw(0,0)--(24u,88u);
+draw(24u,88u)..controls(28u,98u) and (34u,100u)..(40u,100u);
+draw(40u,100u)..controls(54u,100u) and (44u,64u)..(30u,52u);
+draw(30u,52u)..controls(50u,52u) and (42u,0)..(22u,0);
+draw(22u,0)..controls(14u,0) and (26u,12u)..(50u,24u);
+endchar;
+
+beginchar("t",54u#,ht#,0);
+pickup write_pen;
+draw(0,24u)..controls(20u,50u) and (30u,55u)..(54u,100u);
+draw(54u,100u)--(26u,0);
+draw(20u,14u)..controls(30u,8u) and (42u,8u)..(54u,24u);
+endchar;
+
+beginchar("u",72u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(28u,52u)--(18u,12u);
+draw(18u,12u)..controls(14u,0) and (20u,0)..(22u,0);
+draw(22u,0)..controls(26u,0) and (36u,0)..(56u,52u);
+draw(56u,52u)--(46u,12u);
+draw(46u,12u)..controls(42u,0) and (48u,0)..(50u,0);
+draw(50u,0)..controls(54u,0) and (56u,0)..(72u,24u);
+endchar;
+
+beginchar(252,72u#,ht#,0); % lowercase letter u with diaresis (umlaut u)
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(28u,52u)--(18u,12u);
+draw(18u,12u)..controls(14u,0) and (20u,0)..(22u,0);
+draw(22u,0)..controls(26u,0) and (36u,0)..(56u,52u);
+draw(56u,52u)--(46u,12u);
+draw(46u,12u)..controls(42u,0) and (48u,0)..(50u,0);
+draw(50u,0)..controls(54u,0) and (56u,0)..(72u,24u);
+%
+draw(32u,60u)--(36u,72u);
+draw(44u,60u)--(48u,72u);
+endchar;
+
+beginchar("v",56u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(26u,52u);
+draw(26u,52u)--(20u,12u);
+draw(20u,12u)..controls(18u,0) and (24u,0)..(28u,0);
+draw(28u,0)..controls(32u,0) and (38u,0)..(50u,48u);
+draw(50u,48u)..controls(49u,49u) and (49u,52u)..(47u,52u);
+draw(47u,52u)..controls(34u,52u) and (34u,14u)..(56u,24u);
+endchar;
+
+beginchar("w",72u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(26u,52u);
+draw(26u,52u)--(16u,12u);
+draw(16u,12u)..controls(14u,0) and (24u,0)..(28u,0);
+draw(28u,0)..controls(30u,0) and (34u,0)..(40u,32u);
+draw(36u,12u)..controls(34u,0) and (40u,0)..(44u,0);
+draw(44u,0)..controls(48u,0) and (54u,0)..(66u,48u);
+draw(66u,48u)..controls(65u,49u) and (65u,52u)..(63u,52u);
+draw(63u,52u)..controls(50u,52u) and (50u,14u)..(72u,24u);
+endchar;
+
+beginchar("x",44u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(-8u,52u)..controls(12u,0) and (16u,0)..(20u,0);
+draw(20u,0)..controls(22u,0) and (24u,0)..(44u,24u);
+endchar;
+
+beginchar(161,68u#,hs#,0); % x at the beginning
+pickup write_pen;
+draw(0,0)--(52u,52u);
+draw(16u,52u)..controls(36u,0) and (40u,0)..(44u,0);
+draw(44u,0)..controls(46u,0) and (48u,0)..(68u,24u);
+endchar;
+
+beginchar("y",64u#,hs#,54o#);
+pickup write_pen;
+draw(0,24u)--(28u,52u);
+draw(28u,52u)--(18u,12u);
+draw(18u,12u)..controls(14u,0) and (20u,0)..(22u,0);
+draw(22u,0)..controls(26u,0) and (36u,0)..(56u,52u);
+draw(56u,52u)--(32u,-40u);
+draw(32u,-40u)..controls(28u,-54u) and (12u,-54u)..(12u,-40u);
+draw(12u,-40u)..controls(12u,-30u) and (40u,-8u)..(64u,24u);
+endchar;
+
+beginchar("z",70u#,hs#,0);
+pickup write_pen;
+draw(0,24u)--(22u,52u);
+draw(22u,52u)..controls(40u,48u) and (40u,48u)..(52u,52u);
+draw(52u,52u)--(12u,0);
+draw(12u,0)..controls(24u,4u) and (24u,4u)..(44u,0);
+draw(44u,0)..controls(48u,0) and (48u,0)..(70u,24u);
+endchar;
+
+beginchar(164,64u#,hs#,0); % a, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(18u,50u);
+draw (24u,52u)..controls(14u,52u) and (0,32u)..(0,20u);
+draw (0,20u)..controls(0,12u) and (0,0)..(8u,0);
+draw (8u,0)..controls(24u,0) and (36u,16u)..(36u,32u);
+draw (36u,32u)..controls(36u,44u) and (34u,52u)..(24u,52u);
+draw (44u,52u)--(32u,10u);
+draw (32u,10u)..controls(28u,0) and (32u,-10u)..(64u,24u);
+endchar;
+
+beginchar(229,64u#,ht#,0); % umlaut a, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(18u,50u);
+draw (24u,52u)..controls(14u,52u) and (0,32u)..(0,20u);
+draw (0,20u)..controls(0,12u) and (0,0)..(8u,0);
+draw (8u,0)..controls(24u,0) and (36u,16u)..(36u,32u);
+draw (36u,32u)..controls(36u,44u) and (34u,52u)..(24u,52u);
+draw (44u,52u)--(32u,10u);
+draw (32u,10u)..controls(28u,0) and (32u,-10u)..(64u,24u);
+%
+draw(20u,60u)--(24u,72u);
+draw(32u,60u)--(36u,72u);
+endchar;
+
+beginchar(165,42u#,hs#,0); % i, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(20u,52u);
+draw (20u,52u)--(8u,12u);
+draw (8u,12u)..controls(4u,0) and (6u,0)..(10u,0);
+draw (10u,0)..controls(16u,0) and (26u,8u)..(42u,24u);
+pickup dot_pen;
+drawdot (24u,70u);
+endchar;
+
+beginchar(174,42u#,hs#,0); % dotless i, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(20u,52u);
+draw (20u,52u)--(8u,12u);
+draw (8u,12u)..controls(4u,0) and (6u,0)..(10u,0);
+draw (10u,0)..controls(16u,0) and (26u,8u)..(42u,24u);
+endchar;
+
+beginchar(240,42u#,hs#,0); % dotless i, variant for use with FHZ with diaresis
+pickup write_pen;
+draw (0,44u)--(20u,52u);
+draw (20u,52u)--(8u,12u);
+draw (8u,12u)..controls(4u,0) and (6u,0)..(10u,0);
+draw (10u,0)..controls(16u,0) and (26u,8u)..(42u,24u);
+draw (16u,60u)--(20u,72u);
+draw (28u,60u)--(32u,72u);
+endchar;
+
+beginchar(166,24u#,hs#,54o#); % j, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(16u,52u);
+draw (16u,52u)--(-8u,-40u);
+draw (-8u,-40u)..controls(-12u,-54u) and (-28u,-54u)..(-28u,-40u);
+draw (-28u,-40u)..controls(-28u,-30u) and (0,-8u)..(24u,24u);
+pickup dot_pen;
+drawdot (22u,70u);
+endchar;
+
+beginchar(175,24u#,hs#,54o#); % dotless j, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(16u,52u);
+draw (16u,52u)--(-8u,-40u);
+draw (-8u,-40u)..controls(-12u,-54u) and (-28u,-54u)..(-28u,-40u);
+draw (-28u,-40u)..controls(-28u,-30u) and (0,-8u)..(24u,24u);
+endchar;
+
+beginchar(167,32u#,ht#,0); % l, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(14u,52u);
+draw (14u,52u)--(34u,76u);
+draw (34u,76u)..controls(38u,80u) and (44u,88u)..(44u,94u);
+draw (44u,94u)..controls(44u,97u) and (42u,100u)..(38u,100u);
+draw (38u,100u)..controls(34u,100u) and (30u,100u)..(26u,92u);
+draw (26u,92u)--(2u,14u);
+draw (2u,14u)..controls(-3u,2u) and (2u,0)..(6u,0);
+draw (6u,0)..controls(10u,0) and (22u,14u)..(32u,24u);
+endchar;
+
+beginchar(168,92u#,hs#,0); % m, variant for use with FHZ
+pickup write_pen;
+draw(0,44u)--(17u,52u);
+draw(17u,52u)--(2u,0);
+draw(2u,0)..controls(8u,24u) and (26u,52u)..(32u,52u);
+draw(32u,52u)..controls(48u,52u) and (36u,24u)..(32u,0u);
+draw(32u,0)..controls(36u,24u) and (52u,52u)..(66u,52u);
+draw(66u,52u)..controls(82u,52u) and (54u,0)..(66u,0);
+draw(66u,0)..controls(70u,0) and (78u,8u)..(92u,24u);
+endchar;
+
+beginchar(169,48u#,hs#,0); % o, variant for use with FHZ
+pickup write_pen;
+draw(0,44u)--(18u,50u);
+draw(24u,52u)..controls(14u,52u) and (0,32u)..(0,20u);
+draw (0,20u)..controls(0,12u) and (0,0)..(8u,0);
+draw (8u,0)..controls(24u,0) and (36u,16u)..(36u,32u);
+draw (36u,32u)..controls(36u,44u) and (34u,52u)..(24u,52u);
+draw (32u,16u)--(48u,24u);
+endchar;
+
+beginchar(247,48u#,ht#,0); % umlaut o, variant for use with FHZ
+pickup write_pen;
+draw(0,44u)--(18u,50u);
+draw(24u,52u)..controls(14u,52u) and (0,32u)..(0,20u);
+draw (0,20u)..controls(0,12u) and (0,0)..(8u,0);
+draw (8u,0)..controls(24u,0) and (36u,16u)..(36u,32u);
+draw (36u,32u)..controls(36u,44u) and (34u,52u)..(24u,52u);
+draw (32u,16u)--(48u,24u);
+%
+draw(21u,60u)--(25u,72u);
+draw(33u,60u)--(37u,72u);
+endchar;
+
+beginchar(170,56u#,hs#,0); % r, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)..controls(4u,46u) and (10u,48u)..(16u,52u);
+draw (16u,52u)..controls(12u,36u) and (28u,36u)..(32u,52u);
+draw (32u,52u)--(22u,8u);
+draw (22u,8u)..controls(22u,5u) and (23u,0)..(26u,0);
+draw (26u,0)..controls(32u,0) and (38u,0)..(56u,24u);
+endchar;
+
+beginchar(171,60u#,hs#,0); % u, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(16u,52u);
+draw (16u,52u)--(6u,12u);
+draw (6u,12u)..controls(2u,0) and (8u,0)..(10u,0);
+draw (10u,0)..controls(14u,0) and (24u,0)..(44u,52u);
+draw (44u,52u)--(34u,12u);
+draw (34u,12u)..controls(30u,0) and (36u,0)..(38u,0);
+draw (38u,0)..controls(42u,0) and (44u,0)..(60u,24u);
+endchar;
+
+beginchar(253,60u#,ht#,0); % umlaut u, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(16u,52u);
+draw (16u,52u)--(6u,12u);
+draw (6u,12u)..controls(2u,0) and (8u,0)..(10u,0);
+draw (10u,0)..controls(14u,0) and (24u,0)..(44u,52u);
+draw (44u,52u)--(34u,12u);
+draw (34u,12u)..controls(30u,0) and (36u,0)..(38u,0);
+draw (38u,0)..controls(42u,0) and (44u,0)..(60u,24u);
+%
+draw(23u,60u)--(27u,72u);
+draw(35u,60u)--(39u,72u);
+endchar;
+
+beginchar(172,60u#,hs#,0); % w, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(14u,52u);
+draw (14u,52u)--(4u,12u);
+draw (4u,12u)..controls(2u,0) and (12u,0)..(16u,0);
+draw (16u,0)..controls(18u,0) and (22u,0)..(28u,32u);
+draw (24u,12u)..controls(22u,0) and (28u,0)..(32u,0);
+draw (32u,0)..controls(36u,0) and (42u,0)..(54u,48u);
+draw(54u,48u)..controls(53u,49u) and (53u,52u)..(51u,52u);
+draw (51u,52u)..controls(38u,52u) and (38u,14u)..(60u,24u);
+endchar;
+
+beginchar(173,52u#,hs#,54o#); % y, variant for use with FHZ
+pickup write_pen;
+draw (0,44u)--(16u,52u);
+draw (16u,52u)--(6u,12u);
+draw (6u,12u)..controls(2u,0) and (8u,0)..(10u,0);
+draw (10u,0)..controls(14u,0) and (24u,0)..(44u,52u);
+draw (44u,52u)--(20u,-40u);
+draw (20u,-40u)..controls(16u,-54u) and (0,-54u)..(0,-40u);
+draw (0,-40u)..controls(0,-30u) and (28u,-8u)..(52u,24u);
+endchar;
+
+beginchar(4,16u#,ht#,0); % umlaut "
+pickup write_pen;
+draw (0,60u)--(4u,72u);
+draw (12u,60u)--(16u,72u);
+endchar;
+
+beginchar(13,36u#,ht#,0); % single base quote ,
+pickup write_pen;
+draw (12u,-8u)--(24u,12u);
+endchar;
+
+beginchar(16,53u#,ht#,0); % english opening quotes, german closing quotes ´´
+pickup write_pen;
+draw (17u,80u)--(29u,100u);
+draw (29u,80u)--(41u,100u);
+endchar;
+
+beginchar(18,48u#,ht#,0); % base quote, german opening quotes ,,
+pickup write_pen;
+draw (12u,-8u)--(24u,12u);
+draw (24u,-8u)--(36u,12u);
+endchar;
+
+beginchar(21,48u#,ht#,0); % en-dash --
+pickup write_pen;
+draw (12u,28u)--(36u,28u);
+endchar;
+
+beginchar(22,68u#,ht#,0); % em-dash ---
+pickup write_pen;
+draw (12u,28u)--(56u,28u);
+endchar;
+
+beginchar(27,76u#,ht#,0); % ligature Fe
+pickup write_pen;
+draw (0,0)--(28u,100u);
+draw (4u,100u)--(64u,100u);
+draw (1u,48u)..controls(12u,40u) and (22u,34u)..(43u,34u);
+draw (43u,34u)..controls(48u,34u) and (60u,44u)..(60u,48u);
+draw (60u,48u)..controls(60u,50u) and (58u,52u)..(52u,52u);
+draw (52u,52u)..controls(56u,52u) and (46u,52u)..(44u,42u);
+draw (44u,42u)--(34u,8u);
+draw (34u,8u)..controls(33u,2u) and (42u,0)..(48u,0);
+draw (48u,0)..controls(50u,0) and (62u,8u)..(76u,24u);
+endchar;
+
+beginchar(28,105u#,ht#,0); % ligature He
+pickup write_pen;
+draw (0,0)--(28u,100u);
+draw (40u,0)--(68u,100u);
+draw (8u,56u)..controls(20u,36u) and (36u,32u)..(72u,34u);
+draw (72u,34u)..controls(77u,34u) and (89u,44u)..(89u,48u);
+draw (89u,48u)..controls(89u,50u) and (87u,52u)..(81u,52u);
+draw (81u,52u)..controls(85u,52u) and (75u,52u)..(73u,42u);
+draw (73u,42u)--(63u,8u);
+draw (63u,8u)..controls(63u,2u) and (71u,0)..(77u,0);
+draw (77u,0)..controls(79u,0) and (91u,8u)..(105u,24u);
+endchar;
+
+beginchar(29,106u#,ht#,0); % ligature Ze
+pickup write_pen;
+draw (28u,100u)--(76u,100u);
+draw (76u,100u)--(0,0);
+draw (0,0)--(56u,0);
+draw (20u,48u)..controls(32u,40u) and (52u,34u)..(73u,34u);
+draw (73u,34u)..controls(78u,34u) and (90u,44u)..(90u,48u);
+draw (90u,48u)..controls(90u,50u) and (88u,52u)..(82u,52u);
+draw (82u,52u)..controls(86u,52u) and (76u,52u)..(74u,42u);
+draw (74u,42u)--(64u,8u);
+draw (64u,8u)..controls(64u,2u) and (72u,0)..(78u,0);
+draw (78u,0)..controls(80u,0) and (92u,8u)..(106u,24u);
+endchar;
+
+beginchar(30,84u#,ht#,52o#); % ligature Pf
+pickup write_pen;
+draw (0,2u)--(32u,98u);
+draw (16u,52u)..controls(32u,52u) and (54u,58u)..(60u,76u);
+draw (24u,96u)..controls(44u,108u) and (62u,90u)..(60u,76u);
+draw (0,0)--(88u,76u);
+draw (88u,76u)..controls(92u,80u) and (98u,88u)..(98u,94u);
+draw (98u,94u)..controls(98u,97u) and (96u,100u)..(92u,100u);
+draw (92u,100u)..controls(88u,100u) and (84u,100u)..(80u,92u);
+draw (80u,92u)--(40u,-52u);
+draw (50u,14u)..controls(60u,8u) and (72u,8u)..(84u,24u);
+endchar;
+
+beginchar(32,70u#,ht#,0); %textvisiblespace
+pickup write_pen;
+draw (0,5u)--(0,0);
+draw (0,0)--(70u,0);
+draw (70u,0)--(70u,5u);
+endchar;
+
+beginchar(33,58u#,ht#,0); % exclamation mark !
+pickup dot_pen;
+drawdot (18u,4u);
+pickup write_pen;
+draw (24u,25u)--(46u,100u);
+endchar;
+
+beginchar(34,0,ht#,0); % (invisible) "; used for `german' ligatures
+endchar;
+
+beginchar(39,45u#,ht#,0); % apostroph '
+pickup write_pen;
+draw (27u,80u)--(39u,100u);
+endchar;
+
+beginchar(40,45u#,ht#,0); % opening (left) parenthesis (
+pickup write_pen;
+draw (26u,0)..controls (24u,24u) and (22u,28u)..(22u,38u);
+draw (22u,38u)..controls(22u,58u) and (32u,86u)..(58u,110u);
+endchar;
+
+beginchar(41,60u#,ht#,0); % closing (right) parenthesis )
+pickup write_pen;
+draw (12u,0)..controls(32u,20u) and (48u,48u)..(48u,68u);
+draw (48u,68u)..controls(48u,78u) and (46u,86u)..(44u,100u);
+endchar;
+
+beginchar(42,0,ht#,0); % (invisible) *; used for ligatures
+endchar;
+
+beginchar(44,36u#,ht#,0); % comma ,
+pickup write_pen;
+draw (12u,-8u)--(24u,12u);
+endchar;
+
+beginchar(45,48u#,ht#,0); % hyphen -
+pickup write_pen;
+draw (12u,28u)--(36u,28u);
+endchar;
+
+beginchar(46,24u#,ht#,0); % full stop .
+pickup dot_pen;
+drawdot (12u,4u);
+endchar;
+
+beginchar(48,68u#,ht#,0); % digit 0
+pickup write_pen;
+draw (21u,0)..controls(6u,0) and (2u,28u)..(9u,52u);
+draw (47u,100u)..controls(34u,100u) and (16u,82u)..(9u,52u);
+draw (47u,100u)..controls(62u,100u) and (66u,72u)..(59u,48u);
+draw (59u,48u)..controls(52u,18u) and (34u,0)..(21u,0);
+endchar;
+
+beginchar(49,68u#,ht#,0); % digit 1
+pickup write_pen;
+draw (20u,0)--(50u,100u);
+draw (18u,76u)--(50u,100u);
+endchar;
+
+beginchar(50,68u#,ht#,0); % digit 2
+pickup write_pen;
+draw (4u,0)--(48u,0);
+draw (4u,0)--(58u,72u);
+draw (58u,72u)..controls(62u,79u) and (64u,80u)..(64u,84u);
+draw (64u,84u)..controls(64u,96u) and (56u,100u)..(48u,100u);
+draw (48u,100u)..controls(38u,100u) and (36u,92u)..(28u,82u);
+endchar;
+
+beginchar(51,68u#,ht#,0); % digit 3
+pickup write_pen;
+draw (26u,88u)..controls(32u,96u) and (42u,100u)..(46u,100u);
+draw (46u,100u)..controls(56u,100u) and (62u,90u)..(62u,80u);
+draw (62u,80u)..controls(62u,60u) and (46u,52u)..(36u,52u);
+draw (36u,52u)..controls(46u,52u) and (52u,36u)..(52u,28u);
+draw (52u,28u)..controls(52u,14u) and (40u,0)..(28u,0);
+draw (28u,0)..controls(16u,0) and (6u,10u)..(6u,20u);
+endchar;
+
+beginchar(52,68u#,ht#,0); % digit 4
+pickup write_pen;
+draw (32u,0)--(50u,60u);
+draw (4u,28u)--(64u,28u);
+draw (4u,28u)--(46u,100u);
+endchar;
+
+beginchar(53,68u#,ht#,0); % digit 5
+pickup write_pen;
+draw (28u,100u)--(64u,100u);
+draw (28u,100u)--(14u,44u);
+draw (14u,44u)..controls(16u,54u) and (24u,56u)..(32u,56u);
+draw (32u,56u)..controls(42u,56u) and (44u,44u)..(44u,36u);
+draw (44u,36u)..controls(44u,24u) and (38u,0)..(20u,0);
+draw (20u,0)..controls(10u,0) and (4u,8u)..(4u,20u);
+endchar;
+
+beginchar(54,68u#,ht#,0); % digit 6
+pickup write_pen;
+draw (42u,56u)..controls(52u,56u) and (54u,44u)..(54u,36u);
+draw (54u,36u)..controls(54u,24u) and (48u,0)..(30u,0);
+draw (30u,0)..controls(20u,0) and (14u,8u)..(14u,20u);
+draw (14u,20u)..controls(14u,36u) and (28u,56u)..(42u,56u);
+draw (14u,20u)..controls(14u,50u) and (26u,76u)..(54u,100u);
+endchar;
+
+beginchar(55,68u#,ht#,0); % digit 7
+pickup write_pen;
+draw (8u,0)--(60u,100u);
+draw (18u,100u)--(60u,100u);
+draw (20u,52u)--(46u,52u);
+endchar;
+
+beginchar(56,68u#,ht#,0); % digit 8
+pickup write_pen;
+draw (22u,0)..controls(14u,0) and (10u,16u)..(10u,28u);
+draw (10u,28u)..controls(10u,52u) and (58u,56u)..(58u,80u);
+draw (58u,80u)..controls(58u,90u) and (56u,100u)..(46u,100u);
+draw (46u,100u)..controls(38u,100u) and (28u,90u)..(28u,80u);
+draw (28u,80u)..controls(28u,56u) and (50u,40u)..(50u,24u);
+draw (50u,24u)..controls(50u,12u) and (40u,0)..(22u,0);
+endchar;
+
+beginchar(57,68u#,ht#,0); % digit 9
+pickup write_pen;
+draw (30u,48u)..controls(22u,48u) and (14u,56u)..(14u,64u);
+draw (14u,64u)..controls(14u,80u) and (26u,100u)..(42u,100u);
+draw (42u,100u)..controls(50u,100u) and (54u,88u)..(54u,80u);
+draw (54u,80u)..controls(54u,66u) and (46u,48u)..(30u,48u);
+draw (14u,0)--(50u,62u);
+endchar;
+
+beginchar(58,32u#,ht#,0); % colon :
+pickup dot_pen;
+drawdot (12u,4u);
+drawdot (20u,32u);
+endchar;
+
+beginchar(59,48u#,ht#,0); % semicolon ;
+pickup dot_pen;
+drawdot (36u,32u);
+pickup write_pen;
+draw (12u,-8u)--(24u,12u);
+endchar;
+
+beginchar(63,72u#,ht#,0); % question mark ?
+pickup dot_pen;
+drawdot (18u,4u);
+pickup write_pen;
+draw (26u,88u)..controls(32u,97u) and (34u,100u)..(46u,100u);
+draw (46u,100u)..controls(54u,100u) and (54u,96u)..(58u,88u);
+draw (58u,88u)..controls(58u,62u) and (18u,62u)..(18u,40u);
+draw (18u,40u)..controls(18u,32u) and (20u,28u)..(28u,28u);
+draw (28u,28u)..controls(36u,28u) and (36u,34u)..(42u,40u);
+endchar;
+
+beginchar(96,41u#,ht#,0); % english opening quote, german single closing quote ´
+pickup write_pen;
+draw (17u,80u)--(29u,100u);
+endchar;
+
+beginchar(127,48u#,ht#,0); % hyphenation char -
+pickup write_pen;
+draw (12u,28u)--(36u,28u);
+endchar;
+
+input lig
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% End of File %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/oesch/oeschb.mf b/Master/texmf-dist/fonts/source/public/oesch/oeschb.mf
new file mode 100644
index 00000000000..7f6e3b19dfe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/oesch/oeschb.mf
@@ -0,0 +1,40 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% oeschb.mf %
+% %
+% Oesterreichische Schulschrift 1995 (Austrian School Writing Letters 1995) %
+% Version May 18, 2001 %
+% %
+% Design by Gerhard A. Bachmaier %
+% %
+% Email: gerhard.bachmaier@uni-graz.at %
+% %
+% You're free to use or copy this file as long as you leave this %
+% header intact and don't change the contents. %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+font_identifier:="oesch20";
+designsize:=20pt#; % design size
+font_size:=20pt#; % actual font size
+ht#:=18pt#; % height of the uppercase letters
+px#:=1.0pt#; % horizontal thickness of the pen
+py#:=7/10px#; % vertical thickness of the pen
+u#:=1/100ht#; % unit
+font_normal_space:=50u#; % interword space
+font_normal_stretch:=10u#; % interword space stretch
+font_normal_shrink:=10u#; % interword space shrink
+font_quad:=70u#; % width of blank space
+font_x_height:=52u#; % height of one "ex"
+hs#:=52u#; % height for lowercase letters
+o#:=u#; % unit for overshot
+dot#:=1.5px#; % unit for dotsize
+k#:=6u#; % kerning unit
+boundarychar:=oct"040";
+input oesch_m
+end % and end!
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% End of File %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \ No newline at end of file
diff --git a/Master/texmf-dist/fonts/source/public/ogham/ogham.mf b/Master/texmf-dist/fonts/source/public/ogham/ogham.mf
new file mode 100644
index 00000000000..5c8fd154d62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ogham/ogham.mf
@@ -0,0 +1,144 @@
+% ogham.mf
+% This font was designed by Alan M Stanier ( alan@essex.ac.uk ),
+% at Essex University Computer Service, Colchester, Essex CO4 3EA. England.
+%
+% If you make significant additions or improvements to the font, please email me an updated version
+%
+%
+% The OGHAM alphabet is found on a number of Irish and Pictish
+% carvings dated from the 4th century AD.
+% The characters touch or cross the edges of the stone.
+%
+% There are 20 characters in the alphabet, representing:
+%
+% a o u e i
+% b l v s n
+% h d t c q
+% m g ng z r
+%
+% I have coded ng as 'j'.
+%
+% Each character is given in lower case (as carved on vertical edges)
+% and upper case (as carved on horizontal edges).
+%
+mg:=1.0; % CHANGE THIS TO GET DIFFERENT SIZES OF FONT (font size = 10*mg pt)
+
+mode_setup;
+pensize#:=mg*0.5pt;
+bigpensize#:=mg*1pt;
+height#:=mg*15pt#;
+bigheight#:=mg*20pt#;
+define_pixels(height);
+
+def getpen = pickup pencircle scaled pensize# enddef;
+def getbigpen = pickup pencircle scaled bigpensize# enddef;
+
+def top =
+ getbigpen;
+ draw (-5*mg,15*mg) -- (40*mg,15*mg);
+ getpen;
+enddef;
+
+def bigtop =
+ getbigpen;
+ draw (-5,15*mg) -- (50*mg,15*mg);
+ getpen;
+enddef;
+
+def edge =
+ getbigpen;
+ draw (15*mg,0) -- (15*mg,30*mg);
+ getpen;
+enddef;
+
+def bigedge =
+ getbigpen;
+ draw (15*mg,0) -- (15*mg,40*mg);
+ getpen;
+enddef;
+
+def full(expr n) =
+ edge;
+ for i = 1 upto n: draw (0,5*i*mg) -- (30*mg,5*i*mg); endfor
+enddef;
+
+def lineright(expr n) =
+ edge;
+ for i = 1 upto n: draw (15*mg,5*i*mg) -- (30*mg,5*i*mg); endfor
+enddef;
+
+def lineleft(expr n) =
+ edge;
+ for i = 1 upto n: draw (0,5*i*mg) -- (15*mg,5*i*mg); endfor
+enddef;
+
+def slope(expr n) =
+ bigedge;
+ for i = 1 upto n: draw (0,(6*i+16)*mg) -- (30*mg,6*(i-1)*mg); endfor
+enddef;
+
+def across(expr n) =
+ top;
+ for i = 1 upto n: draw (5*i*mg,0) -- (5*i*mg,30*mg); endfor
+enddef;
+
+def lineup(expr n) =
+ top;
+ for i = 1 upto n: draw (5*i*mg,15*mg) -- (5*i*mg,30*mg); endfor
+enddef;
+
+def linedown(expr n) =
+ top;
+ for i = 1 upto n: draw (5*i*mg,0) -- (5*i*mg,15*mg); endfor
+enddef;
+
+def lean(expr n) =
+ bigtop;
+ for i = 1 upto n: draw (6*(i-1)*mg,0) -- ((6*i+16)*mg,30*mg); endfor
+enddef;
+
+beginchar("a",height#,height#,0); full(1); endchar;
+beginchar("A",height#,height#,0); across(1); endchar;
+beginchar("o",height#,height#,0); full(2); endchar;
+beginchar("O",height#,height#,0); across(2); endchar;
+beginchar("u",height#,height#,0); full(3); endchar;
+beginchar("U",height#,height#,0); across(3); endchar;
+beginchar("e",height#,height#,0); full(4); endchar;
+beginchar("E",height#,height#,0); across(4); endchar;
+beginchar("i",height#,height#,0); full(5); endchar;
+beginchar("I",height#,height#,0); across(5); endchar;
+
+beginchar("b",height#,height#,0); lineright(1); endchar;
+beginchar("B",height#,height#,0); linedown(1); endchar;
+beginchar("l",height#,height#,0); lineright(2); endchar;
+beginchar("L",height#,height#,0); linedown(2); endchar;
+beginchar("v",height#,height#,0); lineright(3); endchar;
+beginchar("V",height#,height#,0); linedown(3); endchar;
+beginchar("s",height#,height#,0); lineright(4); endchar;
+beginchar("S",height#,height#,0); linedown(4); endchar;
+beginchar("n",height#,height#,0); lineright(5); endchar;
+beginchar("N",height#,height#,0); linedown(5); endchar;
+
+beginchar("h",height#,height#,0); lineleft(1); endchar;
+beginchar("H",height#,height#,0); lineup(1); endchar;
+beginchar("d",height#,height#,0); lineleft(2); endchar;
+beginchar("D",height#,height#,0); lineup(2); endchar;
+beginchar("t",height#,height#,0); lineleft(3); endchar;
+beginchar("T",height#,height#,0); lineup(3); endchar;
+beginchar("c",height#,height#,0); lineleft(4); endchar;
+beginchar("C",height#,height#,0); lineup(4); endchar;
+beginchar("q",height#,height#,0); lineleft(5); endchar;
+beginchar("Q",height#,height#,0); lineup(5); endchar;
+
+beginchar("m",height#,bigheight#,0); slope(1); endchar;
+beginchar("M",bigheight#,height#,0); lean(1); endchar;
+beginchar("g",height#,bigheight#,0); slope(2); endchar;
+beginchar("G",bigheight#,height#,0); lean(2); endchar;
+beginchar("j",height#,bigheight#,0); slope(3); endchar;
+beginchar("J",bigheight#,height#,0); lean(3); endchar;
+beginchar("z",height#,bigheight#,0); slope(4); endchar;
+beginchar("Z",bigheight#,height#,0); lean(4); endchar;
+beginchar("r",height#,bigheight#,0); slope(5); endchar;
+beginchar("R",bigheight#,height#,0); lean(5); endchar;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/osmanian/osmanian.mf b/Master/texmf-dist/fonts/source/public/osmanian/osmanian.mf
new file mode 100644
index 00000000000..30bc60c7b80
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/osmanian/osmanian.mf
@@ -0,0 +1,191 @@
+% osmanian.mf
+%
+% This font was designed by Alan M Stanier ( alan@essex.ac.uk ),
+% at Essex University Computer Service, Colchester, Essex CO4 3EA. England.
+%
+% If you make significant additions or improvements to the font,
+% please email me an updated version
+%
+% The osmanian alphabet was invented in the early 20th century by
+% Osman Yusuf, for the writing of the Somali language.
+%
+%
+mg:=1.0; % CHANGE THIS TO GET DIFFERENT SIZES OF FONT (font size = 10*mg pt)
+
+mode_setup;
+tracingtitles := 1;
+pensize#:=mg*0.8pt;
+height#:=mg*9.6pt#;
+fullwidth#:=mg*7.5pt#;
+narrowwidth#:=mg*5.5pt#;
+thinwidth#:=3.5pt#;
+define_pixels(height,fullwidth,marrowwidth,thinwidth);
+
+def getpen = pickup pensquare scaled pensize# enddef;
+
+beginchar("@",narrowwidth#,height#,0);
+getpen;
+draw (15,30){left} .. (0,22.5){down} .. (15,7.5){down}
+ .. (7.5,0){left} .. (0,7.5){up};
+endchar;
+
+beginchar("A",fullwidth#,height#,0);
+getpen;
+draw flex((0,30),(4,20),(8,30));
+draw (8,30){down} .. (12,20);
+draw (23,30) -- (3,5) & flex ((3,5),(7,6),(16,0),(25,2));
+endchar;
+
+beginchar("B",fullwidth#,height#,0);
+getpen;
+draw (17,30) .. (10,0){down} -- (25,0);
+draw (14.5,25) -- (2,25) .. (0,10){down} -- (11,10);
+endchar;
+
+beginchar("C",thinwidth#,height#,0);
+getpen;
+draw (0,0) -- (5,30);
+endchar;
+
+beginchar("D",fullwidth#,height#,0);
+getpen;
+draw (0,0) -- (5,30);
+draw (20,0) -- (25,30);
+draw (3.333,20) -- (23.333,20);
+endchar;
+
+beginchar("E",fullwidth#,height#,0);
+getpen;
+draw (0,0) -- (5,30);
+draw (2.5,15) -- (17.5,15) .. (25,10){down} .. (20,0);
+endchar;
+
+beginchar("F",fullwidth#,height#,0);
+getpen;
+draw flex((0,5),(12.5,7),(25,0)) &
+ flex ((25,0),(22,25),(15,30)) &
+ flex ((15,30),(5,17.5),(0,5));
+endchar;
+
+beginchar("G",fullwidth#,height#,0);
+getpen;
+draw (0,30) -- (25,30) -- (5,0);
+endchar;
+
+beginchar("H",fullwidth#,height#,0);
+getpen;
+draw (0,20) -- (0,30) -- (25,30) .. (10,17)
+ .. (22.5,0){right} .. (25,7.5){up} .. (10,17);
+endchar;
+
+beginchar("I",fullwidth#,height#,0);
+getpen;
+draw flex ((25,10),(18.75,0),(12.5,10)) .. (12.5,10)
+ -- (15,30) & flex ((15,30),(0,20),(12.5,10));
+endchar;
+
+beginchar("J",fullwidth#,height#,0);
+getpen;
+draw (25,16) -- (15,15) .. (5,0){left} & flex((5,0),(0,10),(10,30));
+endchar;
+
+beginchar("K",narrowwidth#,height#,0);
+getpen;
+draw (10,0) .. (15,15){up} .. (0,22.5){up}
+ .. (5,30){right} .. (10,22.5){down} .. (0,5);
+endchar;
+
+beginchar("L",narrowwidth#,height#,0);
+getpen;
+draw flex((0,30),(7.5,25),(15,30)) & flex((15,30),(10,10),(12.5,0));
+draw (5,15) -- (15,15);
+endchar;
+
+beginchar("M",fullwidth#,height#,0);
+getpen;
+draw (20,30){left} .. (0,25){down} .. (22.5,20){right};
+draw (22.5,20){left} .. (0,7.5){down} .. (25,0){right};
+endchar;
+
+beginchar("N",fullwidth#,height#,0);
+getpen;
+draw (0,30) .. (7.5,7.5){down} .. (4,0){left} ..
+ (0,7.5){up} .. (20,22.5){up} .. (15,30){left}
+ .. (10,22.5){down} .. (25,0){right};
+endchar;
+
+beginchar("O",fullwidth#,height#,0);
+getpen;
+draw (5,30) .. (15,20){right} .. (25,25){up} ..
+ (20,30){left} .. (10,0){left} .. (0,5);
+endchar;
+
+beginchar("P",fullwidth#,height#,0);
+getpen;
+draw (0,0) -- (0,25) & flex((0,25),(12.5,30),(25,25))
+ .. (25,25) -- (25,0);
+endchar;
+
+beginchar("Q",fullwidth#,height#,0);
+getpen;
+draw flex((0,0),(5,1),(10,0)) &
+ flex((10,0),(17.5,7),(25,15)) &
+ flex((25,15),(17,16),(10,15))
+ & flex((10,15),(12.5,21),(15,30));
+endchar;
+
+beginchar("R",fullwidth#,height#,0);
+getpen;
+draw (0,25) .. (0,30) & flex((0,30),(12.5,28),(25,30))
+ .. (25,30) -- (0,0) -- (25,0) -- (25,5);
+endchar;
+
+beginchar("S",fullwidth#,height#,0);
+getpen;
+draw flex((0,30),(10,24),(25,30)) .. (25,30) -- (10,0);
+draw (17.5,17.5){right} .. (25,0){down};
+endchar;
+
+beginchar("T",fullwidth#,height#,0);
+getpen;
+draw flex((25,30),(22.5,25),(20,30)) .. (20,30)
+ -- (0,5){down} .. (5,0){right} -- (25,5);
+endchar;
+
+beginchar("U",fullwidth#,height#,0);
+getpen;
+draw flex((25,25),(12.5,20),(0,25)) &
+ flex ((0,25),(5,30),(10,25)) .. (10,25)
+ -- (5,0) -- (25,0);
+endchar;
+
+beginchar("V",narrowwidth#,height#,0);
+getpen;
+draw (15,0) -- (15,30) & flex((15,30),(0,22.5),(15,15));
+endchar;
+
+beginchar("W",fullwidth#,height#,0);
+getpen;
+draw (0,10) -- (9,1) .. (10,0){right} .. (17.5,12.5) ..
+ (25,25){up} .. (20,30){left} .. (15,25){down} .. (22,22);
+endchar;
+
+beginchar("X",fullwidth#,height#,0);
+getpen;
+draw flex((0,30),(12.5,28),(25,30)) .. (25,30) -- (0,0);
+draw (17.5,15){right} .. (25,0){down};
+endchar;
+
+beginchar("Y",fullwidth#,height#,0);
+getpen;
+draw flex((25,30),(17.5,26),(10,20)) &
+ flex((10,20),(17.5,14),(25,10)) &
+ flex((25,10),(12.5,4),(0,0));
+endchar;
+
+beginchar("Z",fullwidth#,height#,0);
+getpen;
+draw flex((10,30),(5,16),(0,0)) & flex((0,0),(12.5,6),(25,10));
+endchar;
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot.mf b/Master/texmf-dist/fonts/source/public/othello/ot.mf
new file mode 100644
index 00000000000..adbde83fad1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot.mf
@@ -0,0 +1,663 @@
+mode_setup;
+
+
+
+define_pixels(size);
+
+define_pixels(line_thickness,border_line_thickness);
+
+
+
+picture black_circle;
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+def set_black_circle =
+
+ currentpicture := nullpicture;
+
+ pickup pencircle scaled line_thickness;
+
+ lft x1=1/22size; y1=1/2size;
+
+ rt x2=23/22size; y2=1/2size;
+
+ filldraw z1..z2..cycle;
+
+ black_circle := currentpicture;
+
+ clearxy; clearit; clearpen;
+
+enddef;
+
+
+
+set_black_circle;
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+
+beginchar(0,24/22size#,23/22size#,1/22size#); "punkt hoshi";
+
+ pickup pencircle scaled line_thickness;
+
+ z1=(0,11/24w);
+
+ z2=(.5w,h);
+
+ z3=(w,11/24w);
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ z5=(.5w-.1size,11/24w);
+
+ z6=(.5w+.1size,11/24w);
+
+ filldraw z5..z6..cycle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(1,24/22size#,23/22size#,1/22size#); "pelny krzyz";
+
+ pickup pencircle scaled line_thickness;
+
+ z1=(0,11/24w);
+
+ z2=(.5w,h);
+
+ z3=(w,11/24w);
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(2,24/22size#,23/22size#,1/22size#); "lewy brzeg";
+
+ pickup pencircle scaled line_thickness;
+
+ lft x1=.5w; y1=11/24w;
+
+ z2=(.5w,h);
+
+ z3=(w,11/24w);
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ pickup pencircle scaled border_line_thickness;
+
+ draw z2..z4;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(3,24/22size#,23/22size#,1/22size#); "prawy brzeg";
+
+ pickup pencircle scaled line_thickness;
+
+ z1=(0,11/24w);
+
+ z2=(.5w,h);
+
+ rt x3=.5w; y3=11/24w;
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ pickup pencircle scaled border_line_thickness;
+
+ draw z2..z4;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(4,24/22size#,23/22size#,1/22size#); "gorny brzeg";
+
+ pickup pencircle scaled border_line_thickness;
+
+ z1=(0,11/24w);
+
+ x2=.5w; top y2=11/24w;
+
+ z3=(w,11/24w);
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ pickup pencircle scaled line_thickness;
+
+ draw z2..z4;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(5,24/22size#,23/22size#,1/22size#); "dolny brzeg";
+
+ pickup pencircle scaled border_line_thickness;
+
+ z1=(0,11/24w);
+
+ z2=(.5w,h);
+
+ z3=(w,11/24w);
+
+ x4=.5w; bot y4=11/24w;
+
+ draw z1..z3;
+
+ pickup pencircle scaled line_thickness;
+
+ draw z2..z4;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(6,24/22size#,23/22size#,1/22size#); "lewy gorny rog";
+
+ pickup pencircle scaled border_line_thickness;
+
+ lft x1=.5w; y1=11/24w;
+
+ x2=.5w; top y2=11/24w;
+
+ z3=(w,11/24w);
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ pickup penrazor scaled border_line_thickness;
+
+ z5=(.5w,11/24w+.5border_line_thickness);
+
+ z6=(.5w,11/24w-.5border_line_thickness);
+
+ draw z5..z6;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(7,24/22size#,23/22size#,1/22size#); "prawy gorny rog";
+
+ pickup pencircle scaled border_line_thickness;
+
+ z1=(0,11/24w);
+
+ x2=.5w; top y2=11/24w;
+
+ rt x3=.5w; y3=11/24w;
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ pickup penrazor scaled border_line_thickness;
+
+ z5=(.5w,11/24w+.5border_line_thickness);
+
+ z6=(.5w,11/24w-.5border_line_thickness);
+
+ draw z5..z6;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(8,24/22size#,23/22size#,1/22size#); "lewy dolny rog";
+
+ pickup pencircle scaled border_line_thickness;
+
+ lft x1=.5w; y1=11/24w;
+
+ z2=(.5w,h);
+
+ z3=(w,11/24w);
+
+ x4=.5w; bot y4=11/24w;
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ pickup penrazor scaled border_line_thickness;
+
+ z5=(.5w,11/24w+.5border_line_thickness);
+
+ z6=(.5w,11/24w-.5border_line_thickness);
+
+ draw z5..z6;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(9,24/22size#,23/22size#,1/22size#); "prawy dolny rog";
+
+ pickup pencircle scaled border_line_thickness;
+
+ z1=(0,11/24w);
+
+ z2=(.5w,h);
+
+ rt x3=.5w; y3=11/24w;
+
+ x4=.5w; bot y4=11/24w;
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ pickup penrazor scaled border_line_thickness;
+
+ z5=(.5w,11/24w+.5border_line_thickness);
+
+ z6=(.5w,11/24w-.5border_line_thickness);
+
+ draw z5..z6;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(10,24/22size#,23/22size#,1/22size#); "pelny krzyz - pion";
+
+ pickup pencircle scaled line_thickness;
+
+ z1=(0,11/24w);
+
+ z2=(.5w,h);
+
+ z3=(w,11/24w);
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ cullit;
+
+ addto currentpicture also -black_circle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(11,24/22size#,23/22size#,1/22size#); "lewy brzeg - pion";
+
+ pickup pencircle scaled line_thickness;
+
+ lft x1=.5w; y1=11/24w;
+
+ z2=(.5w,h);
+
+ z3=(w,11/24w);
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ pickup pencircle scaled border_line_thickness;
+
+ draw z2..z4;
+
+ cullit;
+
+ addto currentpicture also -black_circle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(12,24/22size#,23/22size#,1/22size#); "prawy brzeg - pion";
+
+ pickup pencircle scaled line_thickness;
+
+ z1=(0,11/24w);
+
+ z2=(.5w,h);
+
+ rt x3=.5w; y3=11/24w;
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ pickup pencircle scaled border_line_thickness;
+
+ draw z2..z4;
+
+ cullit;
+
+ addto currentpicture also -black_circle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(13,24/22size#,23/22size#,1/22size#); "gorny brzeg - pion";
+
+ pickup pencircle scaled border_line_thickness;
+
+ z1=(0,11/24w);
+
+ x2=.5w; top y2=11/24w;
+
+ z3=(w,11/24w);
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ pickup pencircle scaled line_thickness;
+
+ draw z2..z4;
+
+ cullit;
+
+ addto currentpicture also -black_circle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(14,24/22size#,23/22size#,1/22size#); "dolny brzeg - pion";
+
+ pickup pencircle scaled border_line_thickness;
+
+ z1=(0,11/24w);
+
+ z2=(.5w,h);
+
+ z3=(w,11/24w);
+
+ x4=.5w; bot y4=11/24w;
+
+ draw z1..z3;
+
+ pickup pencircle scaled line_thickness;
+
+ draw z2..z4;
+
+ cullit;
+
+ addto currentpicture also -black_circle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(15,24/22size#,23/22size#,1/22size#); "lewy gorny rog - pion";
+
+ pickup pencircle scaled border_line_thickness;
+
+ lft x1=.5w; y1=11/24w;
+
+ x2=.5w; top y2=11/24w;
+
+ z3=(w,11/24w);
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ pickup penrazor scaled border_line_thickness;
+
+ z5=(.5w,11/24w+.5border_line_thickness);
+
+ z6=(.5w,11/24w-.5border_line_thickness);
+
+ draw z5..z6;
+
+ cullit;
+
+ addto currentpicture also -black_circle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(16,24/22size#,23/22size#,1/22size#); "prawy gorny rog - pion";
+
+ pickup pencircle scaled border_line_thickness;
+
+ z1=(0,11/24w);
+
+ x2=.5w; top y2=11/24w;
+
+ rt x3=.5w; y3=11/24w;
+
+ z4=(.5w,-d);
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ pickup penrazor scaled border_line_thickness;
+
+ z5=(.5w,11/24w+.5border_line_thickness);
+
+ z6=(.5w,11/24w-.5border_line_thickness);
+
+ draw z5..z6;
+
+ cullit;
+
+ addto currentpicture also -black_circle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(17,24/22size#,23/22size#,1/22size#); "lewy dolny rog - pion";
+
+ pickup pencircle scaled border_line_thickness;
+
+ lft x1=.5w; y1=11/24w;
+
+ z2=(.5w,h);
+
+ z3=(w,11/24w);
+
+ x4=.5w; bot y4=11/24w;
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ pickup penrazor scaled border_line_thickness;
+
+ z5=(.5w,11/24w+.5border_line_thickness);
+
+ z6=(.5w,11/24w-.5border_line_thickness);
+
+ draw z5..z6;
+
+ cullit;
+
+ addto currentpicture also -black_circle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+beginchar(18,24/22size#,23/22size#,1/22size#); "prawy dolny rog - pion";
+
+ pickup pencircle scaled border_line_thickness;
+
+ z1=(0,11/24w);
+
+ z2=(.5w,h);
+
+ rt x3=.5w; y3=11/24w;
+
+ x4=.5w; bot y4=11/24w;
+
+ draw z1..z3;
+
+ draw z2..z4;
+
+ pickup penrazor scaled border_line_thickness;
+
+ z5=(.5w,11/24w+.5border_line_thickness);
+
+ z6=(.5w,11/24w-.5border_line_thickness);
+
+ draw z5..z6;
+
+ cullit;
+
+ addto currentpicture also -black_circle;
+
+showit;
+
+endchar;
+
+
+
+% stop"";
+
+
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot10.mf b/Master/texmf-dist/fonts/source/public/othello/ot10.mf
new file mode 100644
index 00000000000..6dbbe7839c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot10.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT"; font_size 10pt#;
+
+
+
+size#:=10pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=7/10size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot15.mf b/Master/texmf-dist/fonts/source/public/othello/ot15.mf
new file mode 100644
index 00000000000..0929c64d384
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot15.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT"; font_size 15pt#;
+
+
+
+size#:=15pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=7/10size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1bla10.mf b/Master/texmf-dist/fonts/source/public/othello/ot1bla10.mf
new file mode 100644
index 00000000000..32756149cd0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1bla10.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT1BLACK"; font_size 10pt#;
+
+
+
+size#:=10pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=63/100size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot1black
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1bla15.mf b/Master/texmf-dist/fonts/source/public/othello/ot1bla15.mf
new file mode 100644
index 00000000000..d61793b7618
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1bla15.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT1BLACK"; font_size 15pt#;
+
+
+
+size#:=15pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=63/100size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot1black
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1bla20.mf b/Master/texmf-dist/fonts/source/public/othello/ot1bla20.mf
new file mode 100644
index 00000000000..b4ea4041701
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1bla20.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT1BLACK"; font_size 20pt#;
+
+
+
+size#:=20pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=63/100size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot1black
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1black.mf b/Master/texmf-dist/fonts/source/public/othello/ot1black.mf
new file mode 100644
index 00000000000..a6c44c89bfc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1black.mf
@@ -0,0 +1,735 @@
+\mode_setup;
+
+define_pixels(size);
+define_pixels(line_thickness,border_line_thickness);
+define_pixels(dig_h,dig_w,dig_pen);
+
+picture digit[];
+picture black_circle;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def digit_zero =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.5dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=dig_w; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ draw z1...z2...z3...z4...cycle;
+ digit[0] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_one =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.5dig_w; bot y1=0;
+ x2=.5dig_w; top y2=dig_h;
+ draw z1--z2;
+ digit[1] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_two =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.8dig_w; y3=.9dig_h;
+ lft x4=0; bot y4=0;
+ draw z1{up}...z2...z3..{(-.8dig_w,-dig_h)}z4;
+ z5=z4;
+ rt x6=dig_w; bot y6=0;
+ draw z5--z6;
+ digit[2] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_three =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.8dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.52dig_h);
+ rt x5=dig_w; y5=.2dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1{up}..z2..z3..{left}z4{right}..z5..z6...{up}z7;
+ digit[3] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_four =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.75dig_w; bot y1=0;
+ x2=x1; top y2=dig_h;
+ lft x3=0; y3=.3dig_h;
+ rt x4=dig_w; y4=y3;
+ draw z1--z2--z3--z4;
+ digit[4] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_five =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=.95dig_w; top y1=dig_h;
+ lft x2=.05dig_w; y2=y1;
+ lft x3=0; y3=.45dig_h;
+ z4=(.5dig_w,.6dig_h);
+ rt x5=dig_w; y5=.3dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=.15dig_h;
+ draw z1--z2--z3{up}..z4..z5..z6...{up}z7;
+ digit[5] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_six =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=dig_w; y1=.8dig_h;
+ x2=.45dig_w; top y2=dig_h;
+ lft x3=0; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ rt x5=dig_w; y5=.3dig_h;
+ z6=(.53dig_w,.55dig_h);
+ z7=(.03dig_w+.6dig_pen,.25dig_h);
+ draw z1{up}...z2...z3...z4...z5...{left}z6{left}...{(1,-10)}z7;
+ digit[6] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_seven =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; top y1=dig_h;
+ rt x2=dig_w; y2=y1;
+ lft x3=.2dig_w; bot y3=0;
+ draw z1--z2--z3;
+ digit[7] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_eight =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.55dig_h);
+ rt x5=dig_w; y5=.25dig_h;
+ x6=.5dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1...z2...z3...z4...cycle;
+ draw z4...z5...z6...z7...cycle;
+ digit[8] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_nine =
+ currentpicture := nullpicture;
+ currentpicture := digit[6] rotated 180;
+ digit[9] := currentpicture shifted (dig_w,dig_h);
+ clearxy; clearit; clearpen;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(0,24/22size#,23/22size#,1/22size#); "pion czarny";
+ pickup pencircle scaled line_thickness;
+ lft x1=13/24w; y1=-1/24w;
+ rt x2=35/24w; y2=-1/24w;
+ filldraw z1..z2..cycle;
+ black_circle := currentpicture;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(1,24/22size#,23/22size#,1/22size#); "pion czarny z 1";
+ currentpicture :=black_circle
+ - digit[1] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(2,24/22size#,23/22size#,1/22size#); "pion czarny z 2";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(3,24/22size#,23/22size#,1/22size#); "pion czarny z 3";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(4,24/22size#,23/22size#,1/22size#); "pion czarny z 4";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-.6dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(5,24/22size#,23/22size#,1/22size#); "pion czarny z 5";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(6,24/22size#,23/22size#,1/22size#); "pion czarny z 6";
+ currentpicture := black_circle
+ - digit[6] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(7,24/22size#,23/22size#,1/22size#); "pion czarny z 7";
+ currentpicture := black_circle
+ - digit[7] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(8,24/22size#,23/22size#,1/22size#); "pion czarny z 8";
+ currentpicture := black_circle
+ - digit[8] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(9,24/22size#,23/22size#,1/22size#); "pion czarny z 9";
+ currentpicture := black_circle
+ - digit[9] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dig_w := .7dig_w;
+%%%dig_pen := .7dig_pen;
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(10,24/22size#,23/22size#,1/22size#); "pion czarny z 10";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ - digit[0] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(11,24/22size#,23/22size#,1/22size#); "pion czarny z 11";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-dig_w,-1/24w-.5dig_h)
+ - digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(12,24/22size#,23/22size#,1/22size#); "pion czarny z 12";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ - digit[2] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(13,24/22size#,23/22size#,1/22size#); "pion czarny z 13";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ - digit[3] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(14,24/22size#,23/22size#,1/22size#); "pion czarny z 14";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ - digit[4] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(15,24/22size#,23/22size#,1/22size#); "pion czarny z 15";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ - digit[5] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(16,24/22size#,23/22size#,1/22size#); "pion czarny z 16";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ - digit[6] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(17,24/22size#,23/22size#,1/22size#); "pion czarny z 17";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(18,24/22size#,23/22size#,1/22size#); "pion czarny z 18";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ - digit[8] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(19,24/22size#,23/22size#,1/22size#); "pion czarny z 19";
+ currentpicture := black_circle
+ - digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ - digit[9] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(20,24/22size#,23/22size#,1/22size#); "pion czarny z 20";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(21,24/22size#,23/22size#,1/22size#); "pion czarny z 21";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ - digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(22,24/22size#,23/22size#,1/22size#); "pion czarny z 22";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(23,24/22size#,23/22size#,1/22size#); "pion czarny z 23";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(24,24/22size#,23/22size#,1/22size#); "pion czarny z 24";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(25,24/22size#,23/22size#,1/22size#); "pion czarny z 25";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(26,24/22size#,23/22size#,1/22size#); "pion czarny z 26";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(27,24/22size#,23/22size#,1/22size#); "pion czarny z 27";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(28,24/22size#,23/22size#,1/22size#); "pion czarny z 28";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(29,24/22size#,23/22size#,1/22size#); "pion czarny z 29";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(30,24/22size#,23/22size#,1/22size#); "pion czarny z 30";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(31,24/22size#,23/22size#,1/22size#); "pion czarny z 31";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ - digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(32,24/22size#,23/22size#,1/22size#); "pion czarny z 32";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(33,24/22size#,23/22size#,1/22size#); "pion czarny z 33";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(34,24/22size#,23/22size#,1/22size#); "pion czarny z 34";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(35,24/22size#,23/22size#,1/22size#); "pion czarny z 35";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(36,24/22size#,23/22size#,1/22size#); "pion czarny z 36";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(37,24/22size#,23/22size#,1/22size#); "pion czarny z 37";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(38,24/22size#,23/22size#,1/22size#); "pion czarny z 38";
+ currentpicture := black_circle
+ - digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(39,24/22size#,23/22size#,1/22size#); "pion czarny z 39";
+ currentpicture := black_circle
+ - digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(40,24/22size#,23/22size#,1/22size#); "pion czarny z 40";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(41,24/22size#,23/22size#,1/22size#); "pion czarny z 41";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[1] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(42,24/22size#,23/22size#,1/22size#); "pion czarny z 42";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(43,24/22size#,23/22size#,1/22size#); "pion czarny z 43";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(44,24/22size#,23/22size#,1/22size#); "pion czarny z 44";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(45,24/22size#,23/22size#,1/22size#); "pion czarny z 45";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(46,24/22size#,23/22size#,1/22size#); "pion czarny z 46";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(47,24/22size#,23/22size#,1/22size#); "pion czarny z 47";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(48,24/22size#,23/22size#,1/22size#); "pion czarny z 48";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(49,24/22size#,23/22size#,1/22size#); "pion czarny z 49";
+ currentpicture := black_circle
+ - digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(50,24/22size#,23/22size#,1/22size#); "pion czarny z 50";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(51,24/22size#,23/22size#,1/22size#); "pion czarny z 51";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ - digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(52,24/22size#,23/22size#,1/22size#); "pion czarny z 52";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(53,24/22size#,23/22size#,1/22size#); "pion czarny z 53";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(54,24/22size#,23/22size#,1/22size#); "pion czarny z 54";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(55,24/22size#,23/22size#,1/22size#); "pion czarny z 55";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(56,24/22size#,23/22size#,1/22size#); "pion czarny z 56";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(57,24/22size#,23/22size#,1/22size#); "pion czarny z 57";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(58,24/22size#,23/22size#,1/22size#); "pion czarny z 58";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(59,24/22size#,23/22size#,1/22size#); "pion czarny z 59";
+ currentpicture := black_circle
+ - digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(60,24/22size#,23/22size#,1/22size#); "pion czarny z 60";
+ currentpicture := black_circle
+ - digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(61,24/22size#,23/22size#,1/22size#); "pion czarny z 61";
+ currentpicture := black_circle
+ - digit[6] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ - digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(62,24/22size#,23/22size#,1/22size#); "pion czarny z 62";
+ currentpicture := black_circle
+ - digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(63,24/22size#,23/22size#,1/22size#); "pion czarny z 63";
+ currentpicture := black_circle
+ - digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(64,24/22size#,23/22size#,1/22size#); "pion czarny z 64";
+ currentpicture := black_circle
+ - digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ - digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1neu.mf b/Master/texmf-dist/fonts/source/public/othello/ot1neu.mf
new file mode 100644
index 00000000000..0592ef5598a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1neu.mf
@@ -0,0 +1,702 @@
+mode_setup;
+
+define_pixels(size);
+define_pixels(line_thickness,border_line_thickness);
+define_pixels(dig_h,dig_w,dig_pen);
+
+picture digit[];
+picture white_circle;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def digit_zero =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.5dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=dig_w; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ draw z1...z2...z3...z4...cycle;
+ digit[0] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_one =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.5dig_w; bot y1=0;
+ x2=.5dig_w; top y2=dig_h;
+ draw z1--z2;
+ digit[1] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_two =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.8dig_w; y3=.9dig_h;
+ lft x4=0; bot y4=0;
+ draw z1{up}...z2...z3..{(-.8dig_w,-dig_h)}z4;
+ z5=z4;
+ rt x6=dig_w; bot y6=0;
+ draw z5--z6;
+ digit[2] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_three =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.8dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.52dig_h);
+ rt x5=dig_w; y5=.2dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1{up}..z2..z3..{left}z4{right}..z5..z6...{up}z7;
+ digit[3] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_four =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.75dig_w; bot y1=0;
+ x2=x1; top y2=dig_h;
+ lft x3=0; y3=.3dig_h;
+ rt x4=dig_w; y4=y3;
+ draw z1--z2--z3--z4;
+ digit[4] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_five =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=.95dig_w; top y1=dig_h;
+ lft x2=.05dig_w; y2=y1;
+ lft x3=0; y3=.45dig_h;
+ z4=(.5dig_w,.6dig_h);
+ rt x5=dig_w; y5=.3dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=.15dig_h;
+ draw z1--z2--z3{up}..z4..z5..z6...{up}z7;
+ digit[5] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_six =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=dig_w; y1=.8dig_h;
+ x2=.45dig_w; top y2=dig_h;
+ lft x3=0; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ rt x5=dig_w; y5=.3dig_h;
+ z6=(.53dig_w,.55dig_h);
+ z7=(.03dig_w+.6dig_pen,.25dig_h);
+ draw z1{up}...z2...z3...z4...z5...{left}z6{left}...{(1,-10)}z7;
+ digit[6] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_seven =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; top y1=dig_h;
+ rt x2=dig_w; y2=y1;
+ lft x3=.2dig_w; bot y3=0;
+ draw z1--z2--z3;
+ digit[7] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_eight =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.55dig_h);
+ rt x5=dig_w; y5=.25dig_h;
+ x6=.5dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1...z2...z3...z4...cycle;
+ draw z4...z5...z6...z7...cycle;
+ digit[8] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_nine =
+ currentpicture := nullpicture;
+ currentpicture := digit[6] rotated 180;
+ digit[9] := currentpicture shifted (dig_w,dig_h);
+ clearxy; clearit; clearpen;
+enddef;
+
+def letter_x =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ draw (0.4dig_w,0.1dig_h)--(1.2dig_w,0.9dig_h);
+ draw (0.4dig_w,0.9dig_h)--(1.2dig_w,0.1dig_h);
+ digit[10] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def letter_c =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ draw (dig_w,0.3dig_h)..(0.85dig_w,0.1dig_h)..(0.3dig_w,0.5dig_h)..(0.85dig_w,0.9dig_h)..(dig_w,0.7dig_h);
+ digit[11] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight;digit_nine;
+letter_x;letter_c;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(0,24/22size#,23/22size#,1/22size#); "pion bialy";
+ pickup pencircle scaled line_thickness;
+ lft x1=13/24w; y1=-1/24w;
+ rt x2=35/24w; y2=-1/24w;
+ draw z1..z2..cycle;
+ white_circle := currentpicture;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(1,24/22size#,23/22size#,1/22size#); "pion bialy z 1";
+ currentpicture := digit[1] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(2,24/22size#,23/22size#,1/22size#); "pion bialy z 2";
+ currentpicture := digit[2] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(3,24/22size#,23/22size#,1/22size#); "pion bialy z 3";
+ currentpicture := digit[3] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(4,24/22size#,23/22size#,1/22size#); "pion bialy z 4";
+ currentpicture := digit[4] shifted (1w-.6dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(5,24/22size#,23/22size#,1/22size#); "pion bialy z 5";
+ currentpicture := digit[5] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(6,24/22size#,23/22size#,1/22size#); "pion bialy z 6";
+ currentpicture := digit[6] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(7,24/22size#,23/22size#,1/22size#); "pion bialy z 7";
+ currentpicture := digit[7] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(8,24/22size#,23/22size#,1/22size#); "pion bialy z 8";
+ currentpicture := digit[8] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(9,24/22size#,23/22size#,1/22size#); "pion bialy z 9";
+ currentpicture := digit[9] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dig_w := .7dig_w;
+dig_pen := .7dig_pen;
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(10,24/22size#,23/22size#,1/22size#); "pion bialy z 10";
+ currentpicture := digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(11,24/22size#,23/22size#,1/22size#); "pion bialy z 11";
+ currentpicture := digit[1] shifted (1w-dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(12,24/22size#,23/22size#,1/22size#); "pion bialy z 12";
+ currentpicture := digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(13,24/22size#,23/22size#,1/22size#); "pion czarny z 13";
+ currentpicture := digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(14,24/22size#,23/22size#,1/22size#); "pion bialy z 14";
+ currentpicture := digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(15,24/22size#,23/22size#,1/22size#); "pion czarny z 15";
+ currentpicture := digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(16,24/22size#,23/22size#,1/22size#); "pion bialy z 16";
+ currentpicture := digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(17,24/22size#,23/22size#,1/22size#); "pion czarny z 17";
+ currentpicture := digit[1] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(18,24/22size#,23/22size#,1/22size#); "pion bialy z 18";
+ currentpicture := digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(19,24/22size#,23/22size#,1/22size#); "pion czarny z 19";
+ currentpicture := digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(20,24/22size#,23/22size#,1/22size#); "pion bialy z 20";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(21,24/22size#,23/22size#,1/22size#); "pion czarny z 21";
+ currentpicture := digit[2] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(22,24/22size#,23/22size#,1/22size#); "pion bialy z 22";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(23,24/22size#,23/22size#,1/22size#); "pion czarny z 23";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(24,24/22size#,23/22size#,1/22size#); "pion bialy z 24";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(25,24/22size#,23/22size#,1/22size#); "pion czarny z 25";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(26,24/22size#,23/22size#,1/22size#); "pion bialy z 26";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(27,24/22size#,23/22size#,1/22size#); "pion czarny z 27";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(28,24/22size#,23/22size#,1/22size#); "pion bialy z 28";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(29,24/22size#,23/22size#,1/22size#); "pion czarny z 29";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(30,24/22size#,23/22size#,1/22size#); "pion bialy z 30";
+ currentpicture := digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(31,24/22size#,23/22size#,1/22size#); "pion czarny z 31";
+ currentpicture := digit[3] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(32,24/22size#,23/22size#,1/22size#); "pion bialy z 32";
+ currentpicture := digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(33,24/22size#,23/22size#,1/22size#); "pion czarny z 33";
+ currentpicture := digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(34,24/22size#,23/22size#,1/22size#); "pion bialy z 34";
+ currentpicture := digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(35,24/22size#,23/22size#,1/22size#); "pion czarny z 35";
+ currentpicture := digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(36,24/22size#,23/22size#,1/22size#); "pion bialy z 36";
+ currentpicture := digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(37,24/22size#,23/22size#,1/22size#); "pion czarny z 37";
+ currentpicture := digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(38,24/22size#,23/22size#,1/22size#); "pion bialy z 38";
+ currentpicture := digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(39,24/22size#,23/22size#,1/22size#); "pion czarny z 39";
+ currentpicture := digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(40,24/22size#,23/22size#,1/22size#); "pion bialy z 40";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(41,24/22size#,23/22size#,1/22size#); "pion czarny z 41";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (.5w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(42,24/22size#,23/22size#,1/22size#); "pion bialy z 42";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(43,24/22size#,23/22size#,1/22size#); "pion czarny z 43";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(44,24/22size#,23/22size#,1/22size#); "pion bialy z 44";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(45,24/22size#,23/22size#,1/22size#); "pion czarny z 45";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(46,24/22size#,23/22size#,1/22size#); "pion bialy z 46";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(47,24/22size#,23/22size#,1/22size#); "pion czarny z 47";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(48,24/22size#,23/22size#,1/22size#); "pion bialy z 48";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(49,24/22size#,23/22size#,1/22size#); "pion czarny z 49";
+ currentpicture := digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(50,24/22size#,23/22size#,1/22size#); "pion bialy z 50";
+ currentpicture := digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(51,24/22size#,23/22size#,1/22size#); "pion czarny z 51";
+ currentpicture := digit[5] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(52,24/22size#,23/22size#,1/22size#); "pion bialy z 52";
+ currentpicture := digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(53,24/22size#,23/22size#,1/22size#); "pion czarny z 53";
+ currentpicture := digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(54,24/22size#,23/22size#,1/22size#); "pion bialy z 54";
+ currentpicture := digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(55,24/22size#,23/22size#,1/22size#); "pion czarny z 55";
+ currentpicture := digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(56,24/22size#,23/22size#,1/22size#); "pion bialy z 56";
+ currentpicture := digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(57,24/22size#,23/22size#,1/22size#); "pion czarny z 57";
+ currentpicture := digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(58,24/22size#,23/22size#,1/22size#); "pion bialy z 58";
+ currentpicture := digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(59,24/22size#,23/22size#,1/22size#); "pion czarny z 59";
+ currentpicture := digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(60,24/22size#,23/22size#,1/22size#); "pion bialy z 60";
+ currentpicture := digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(61,24/22size#,23/22size#,1/22size#); "pion czarny z 61";
+ currentpicture := digit[6] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(62,24/22size#,23/22size#,1/22size#); "pion bialy z 62";
+ currentpicture := digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(63,24/22size#,23/22size#,1/22size#); "pion czarny z 63";
+ currentpicture := digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(64,24/22size#,23/22size#,1/22size#); "pion bialy z 64";
+ currentpicture := digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(65,24/22size#,23/22size#,1/22size#); "pion bialy z X";
+ currentpicture := digit[10] shifted (1w-1.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(66,24/22size#,23/22size#,1/22size#); "pion bialy z C";
+ currentpicture := digit[11] shifted (1w-1.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+end;
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1neu10.mf b/Master/texmf-dist/fonts/source/public/othello/ot1neu10.mf
new file mode 100644
index 00000000000..55e345944cc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1neu10.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT1NEUTRAL"; font_size 10pt#;
+
+
+
+size#:=10pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=63/100size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot1neu
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1neu15.mf b/Master/texmf-dist/fonts/source/public/othello/ot1neu15.mf
new file mode 100644
index 00000000000..8167a08a6a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1neu15.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT1NEUTRAL"; font_size 15pt#;
+
+
+
+size#:=15pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=63/100size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot1neu
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1neu20.mf b/Master/texmf-dist/fonts/source/public/othello/ot1neu20.mf
new file mode 100644
index 00000000000..0c790ceb6e9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1neu20.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT1NEUTRAL"; font_size 20pt#;
+
+
+
+size#:=20pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=63/100size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot1neu
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1whi10.mf b/Master/texmf-dist/fonts/source/public/othello/ot1whi10.mf
new file mode 100644
index 00000000000..167ded8ca16
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1whi10.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT1WHITE"; font_size 10pt#;
+
+
+
+size#:=10pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=63/100size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot1white
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1whi15.mf b/Master/texmf-dist/fonts/source/public/othello/ot1whi15.mf
new file mode 100644
index 00000000000..2ca830754cd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1whi15.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT1WHITE"; font_size 15pt#;
+
+
+
+size#:=15pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=63/100size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot1white
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1whi20.mf b/Master/texmf-dist/fonts/source/public/othello/ot1whi20.mf
new file mode 100644
index 00000000000..eab5875b320
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1whi20.mf
@@ -0,0 +1,25 @@
+font_identifier:="OT1WHITE"; font_size 20pt#;
+
+
+
+size#:=20pt#;
+
+line_thickness#:=.04size#;
+
+border_line_thickness#:=.1size#;
+
+
+
+%%%
+
+
+
+dig_h#:=63/100size#;
+
+dig_w#:=4/10size#;
+
+dig_pen#:=1/10size#;
+
+
+
+input ot1white
diff --git a/Master/texmf-dist/fonts/source/public/othello/ot1white.mf b/Master/texmf-dist/fonts/source/public/othello/ot1white.mf
new file mode 100644
index 00000000000..a1d0947b9a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/othello/ot1white.mf
@@ -0,0 +1,735 @@
+mode_setup;
+
+define_pixels(size);
+define_pixels(line_thickness,border_line_thickness);
+define_pixels(dig_h,dig_w,dig_pen);
+
+picture digit[];
+picture white_circle;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def digit_zero =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.5dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=dig_w; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ draw z1...z2...z3...z4...cycle;
+ digit[0] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_one =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.5dig_w; bot y1=0;
+ x2=.5dig_w; top y2=dig_h;
+ draw z1--z2;
+ digit[1] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_two =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.8dig_w; y3=.9dig_h;
+ lft x4=0; bot y4=0;
+ draw z1{up}...z2...z3..{(-.8dig_w,-dig_h)}z4;
+ z5=z4;
+ rt x6=dig_w; bot y6=0;
+ draw z5--z6;
+ digit[2] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_three =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.8dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.52dig_h);
+ rt x5=dig_w; y5=.2dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1{up}..z2..z3..{left}z4{right}..z5..z6...{up}z7;
+ digit[3] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_four =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ x1=.75dig_w; bot y1=0;
+ x2=x1; top y2=dig_h;
+ lft x3=0; y3=.3dig_h;
+ rt x4=dig_w; y4=y3;
+ draw z1--z2--z3--z4;
+ digit[4] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_five =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=.95dig_w; top y1=dig_h;
+ lft x2=.05dig_w; y2=y1;
+ lft x3=0; y3=.45dig_h;
+ z4=(.5dig_w,.6dig_h);
+ rt x5=dig_w; y5=.3dig_h;
+ x6=.65dig_w; bot y6=0;
+ lft x7=0; y7=.15dig_h;
+ draw z1--z2--z3{up}..z4..z5..z6...{up}z7;
+ digit[5] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_six =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ rt x1=dig_w; y1=.8dig_h;
+ x2=.45dig_w; top y2=dig_h;
+ lft x3=0; y3=.5dig_h;
+ x4=.5dig_w; bot y4=0;
+ rt x5=dig_w; y5=.3dig_h;
+ z6=(.53dig_w,.55dig_h);
+ z7=(.03dig_w+.6dig_pen,.25dig_h);
+ draw z1{up}...z2...z3...z4...z5...{left}z6{left}...{(1,-10)}z7;
+ digit[6] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_seven =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=0; top y1=dig_h;
+ rt x2=dig_w; y2=y1;
+ lft x3=.2dig_w; bot y3=0;
+ draw z1--z2--z3;
+ digit[7] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_eight =
+ currentpicture := nullpicture;
+ pickup pencircle scaled dig_pen;
+ lft x1=.08dig_w; y1=.75dig_h;
+ x2=.5dig_w; top y2=dig_h;
+ rt x3=.92dig_w; y3=y1;
+ z4=(.5dig_w,.55dig_h);
+ rt x5=dig_w; y5=.25dig_h;
+ x6=.5dig_w; bot y6=0;
+ lft x7=0; y7=y5;
+ draw z1...z2...z3...z4...cycle;
+ draw z4...z5...z6...z7...cycle;
+ digit[8] := currentpicture;
+ clearxy; clearit; clearpen;
+enddef;
+
+def digit_nine =
+ currentpicture := nullpicture;
+ currentpicture := digit[6] rotated 180;
+ digit[9] := currentpicture shifted (dig_w,dig_h);
+ clearxy; clearit; clearpen;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(0,24/22size#,23/22size#,1/22size#); "pion bialy";
+ pickup pencircle scaled line_thickness;
+ lft x1=13/24w; y1=-1/24w;
+ rt x2=35/24w; y2=-1/24w;
+ draw z1..z2..cycle;
+ white_circle := currentpicture;
+showit;
+endchar;
+
+% stop"";
+
+beginchar(1,24/22size#,23/22size#,1/22size#); "pion bialy z 1";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(2,24/22size#,23/22size#,1/22size#); "pion bialy z 2";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(3,24/22size#,23/22size#,1/22size#); "pion bialy z 3";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(4,24/22size#,23/22size#,1/22size#); "pion bialy z 4";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-.6dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(5,24/22size#,23/22size#,1/22size#); "pion bialy z 5";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(6,24/22size#,23/22size#,1/22size#); "pion bialy z 6";
+ currentpicture := white_circle
+ + digit[6] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(7,24/22size#,23/22size#,1/22size#); "pion bialy z 7";
+ currentpicture := white_circle
+ + digit[7] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(8,24/22size#,23/22size#,1/22size#); "pion bialy z 8";
+ currentpicture := white_circle
+ + digit[8] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(9,24/22size#,23/22size#,1/22size#); "pion bialy z 9";
+ currentpicture := white_circle
+ + digit[9] shifted (1w-.5dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dig_w := .7dig_w;
+dig_pen := .7dig_pen;
+
+digit_zero; digit_one; digit_two; digit_three; digit_four;
+digit_five; digit_six; digit_seven; digit_eight; digit_nine;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar(10,24/22size#,23/22size#,1/22size#); "pion bialy z 10";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(11,24/22size#,23/22size#,1/22size#); "pion bialy z 11";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(12,24/22size#,23/22size#,1/22size#); "pion bialy z 12";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(13,24/22size#,23/22size#,1/22size#); "pion czarny z 13";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(14,24/22size#,23/22size#,1/22size#); "pion bialy z 14";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(15,24/22size#,23/22size#,1/22size#); "pion czarny z 15";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(16,24/22size#,23/22size#,1/22size#); "pion bialy z 16";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(17,24/22size#,23/22size#,1/22size#); "pion czarny z 17";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(18,24/22size#,23/22size#,1/22size#); "pion bialy z 18";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(19,24/22size#,23/22size#,1/22size#); "pion czarny z 19";
+ currentpicture := white_circle
+ + digit[1] shifted (1w-1.2dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(20,24/22size#,23/22size#,1/22size#); "pion bialy z 20";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(21,24/22size#,23/22size#,1/22size#); "pion czarny z 21";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(22,24/22size#,23/22size#,1/22size#); "pion bialy z 22";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(23,24/22size#,23/22size#,1/22size#); "pion czarny z 23";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(24,24/22size#,23/22size#,1/22size#); "pion bialy z 24";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(25,24/22size#,23/22size#,1/22size#); "pion czarny z 25";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(26,24/22size#,23/22size#,1/22size#); "pion bialy z 26";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(27,24/22size#,23/22size#,1/22size#); "pion czarny z 27";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(28,24/22size#,23/22size#,1/22size#); "pion bialy z 28";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(29,24/22size#,23/22size#,1/22size#); "pion czarny z 29";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(30,24/22size#,23/22size#,1/22size#); "pion bialy z 30";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(31,24/22size#,23/22size#,1/22size#); "pion czarny z 31";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(32,24/22size#,23/22size#,1/22size#); "pion bialy z 32";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(33,24/22size#,23/22size#,1/22size#); "pion czarny z 33";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(34,24/22size#,23/22size#,1/22size#); "pion bialy z 34";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(35,24/22size#,23/22size#,1/22size#); "pion czarny z 35";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(36,24/22size#,23/22size#,1/22size#); "pion bialy z 36";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(37,24/22size#,23/22size#,1/22size#); "pion czarny z 37";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(38,24/22size#,23/22size#,1/22size#); "pion bialy z 38";
+ currentpicture := white_circle
+ + digit[3] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(39,24/22size#,23/22size#,1/22size#); "pion czarny z 39";
+ currentpicture := white_circle
+ + digit[2] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(40,24/22size#,23/22size#,1/22size#); "pion bialy z 40";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(41,24/22size#,23/22size#,1/22size#); "pion czarny z 41";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (.5w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(42,24/22size#,23/22size#,1/22size#); "pion bialy z 42";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(43,24/22size#,23/22size#,1/22size#); "pion czarny z 43";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(44,24/22size#,23/22size#,1/22size#); "pion bialy z 44";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(45,24/22size#,23/22size#,1/22size#); "pion czarny z 45";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(46,24/22size#,23/22size#,1/22size#); "pion bialy z 46";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(47,24/22size#,23/22size#,1/22size#); "pion czarny z 47";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(48,24/22size#,23/22size#,1/22size#); "pion bialy z 48";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(49,24/22size#,23/22size#,1/22size#); "pion czarny z 49";
+ currentpicture := white_circle
+ + digit[4] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(50,24/22size#,23/22size#,1/22size#); "pion bialy z 50";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(51,24/22size#,23/22size#,1/22size#); "pion czarny z 51";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(52,24/22size#,23/22size#,1/22size#); "pion bialy z 52";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(53,24/22size#,23/22size#,1/22size#); "pion czarny z 53";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(54,24/22size#,23/22size#,1/22size#); "pion bialy z 54";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(55,24/22size#,23/22size#,1/22size#); "pion czarny z 55";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[5] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(56,24/22size#,23/22size#,1/22size#); "pion bialy z 56";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[6] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(57,24/22size#,23/22size#,1/22size#); "pion czarny z 57";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[7] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(58,24/22size#,23/22size#,1/22size#); "pion bialy z 58";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[8] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(59,24/22size#,23/22size#,1/22size#); "pion czarny z 59";
+ currentpicture := white_circle
+ + digit[5] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[9] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(60,24/22size#,23/22size#,1/22size#); "pion bialy z 60";
+ currentpicture := white_circle
+ + digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[0] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(61,24/22size#,23/22size#,1/22size#); "pion czarny z 61";
+ currentpicture := white_circle
+ + digit[6] shifted (1w-.9dig_w,-1/24w-.5dig_h)
+ + digit[1] shifted (1w+.2dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(62,24/22size#,23/22size#,1/22size#); "pion bialy z 62";
+ currentpicture := white_circle
+ + digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[2] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(63,24/22size#,23/22size#,1/22size#); "pion czarny z 63";
+ currentpicture := white_circle
+ + digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[3] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+beginchar(64,24/22size#,23/22size#,1/22size#); "pion bialy z 64";
+ currentpicture := white_circle
+ + digit[6] shifted (1w-1.1dig_w,-1/24w-.5dig_h)
+ + digit[4] shifted (1w+.1dig_w,-1/24w-.5dig_h);
+showit;
+endchar;
+
+% stop"";
+
+end;
diff --git a/Master/texmf-dist/fonts/source/public/otibet/bzrsetup.mf b/Master/texmf-dist/fonts/source/public/otibet/bzrsetup.mf
new file mode 100644
index 00000000000..53c21791189
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/otibet/bzrsetup.mf
@@ -0,0 +1,208 @@
+% bzrsetup.mf: interesting and/or necessary things for bzrto's Metafont output.
+%
+% Copyright (C) 1992 Free Software Foundation, Inc.
+%
+% This program is free software; you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2, or (at your option)
+% any later version.
+%
+% This program is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with this program; if not, write to the Free Software
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+
+
+% |true_design_size| must be set before this file is input. It is
+% supposed to be the design size of the original font. If the user does
+% not set |designsize| on the command line, we default to the following.
+default_design_size# := 10pt#;
+if designsize = 0: designsize := default_design_size#; fi;
+
+% It's pointless to actually produce different TFM files for different
+% design sizes: we have only one set of outlines, after all. So we
+% adjust the resolution to account for different sizes, by setting
+% |mag|. Then we reset |designsize| to the default.
+if unknown mag: mag := 1; fi;
+mag := mag * designsize / default_design_size#;
+
+% So we can produce output at varying sizes, all our dimensions are
+% output in terms of the ad hoc parameter |u|.
+%
+u# := default_design_size# / true_design_size#;
+
+designsize := default_design_size#;
+
+% Macros from page 289 of {\sl The Metafontbook} for short-circuit evaluation.
+%
+def cand (text q) = startif true q else: false fi enddef;
+def cor (text q) = startif true true else: q fi enddef;
+tertiarydef p startif true = if p: enddef;
+
+% The proof resolution of 2601.72 pixels per inch established by plain
+% \MF\ does not always work, because the characters might be too large
+% (or small, for that matter) for the paper size. So, here we change
+% the proof resolution to fit the design size of the font into
+% |proof_size| inches. To do this, we must know the resolution of the
+% device the proof output will be printed on; we make |proof_resolution|
+% default to 300.
+%
+if unknown mode cor ((mode = proof) or (mode = smoke)):
+ % Given in inches:
+ if unknown proof_size: proof_size := 7; fi;
+
+ % Given in pixels per inch:
+ if unknown proof_resolution: proof_resolution := 300; fi;
+
+ % Set up the new mode to be the same as the old one, except for the
+ % resolution.
+ original_mode := if known mode: mode else: proof fi;
+ mode_def bzr_proof_mode =
+ if original_mode = proof:
+ proof_;
+ else:
+ smoke_;
+ fi;
+ pixels_per_inch
+ := (proof_size * proof_resolution)
+ * (72.27 / proof_resolution)
+ * (72.27 / designsize);
+ enddef;
+ mode := bzr_proof_mode;
+fi;
+
+% Set up the device values for this run. Since we allow a nonstandard
+% value of |proofing| (see below), we must save its value, if it has
+% already been assigned.
+%
+if (known proofing) cand (proofing > 2):
+ save_proofing := proofing;
+fi
+
+mode_setup;
+
+if known save_proofing:
+ proofing := save_proofing;
+fi;
+
+
+% We can't define the pixel-oriented version of |u| until after
+% |mode_setup| has been called.
+define_pixels (u);
+
+
+% Use a font that blends better with the \MF\ logo for the title line.
+%
+special "titlefont cmss8";
+
+% If we are doing smoke proofs, put the character at its actual size on
+% the output; if we're doing gray proofs, use a smaller font for the
+% labels.
+%
+if proofing <= 1:
+ special "labelfont " & jobname;
+ extra_beginchar := extra_beginchar &
+ "makelabel.lft.nodot (decimal charcode, (w + 1in#, 0));";
+else:
+ special "labelfont cmtt8";
+fi;
+
+% Produce a |makelabel| command for each |z| point in |point_list| and
+% each suffix in |suffixes|.
+%
+def general_label (text point_list, suffixes) =
+ forsuffixes point_suffix = ,suffixes:
+ forsuffixes point = point_list:
+ % Unfortunately, the way in which the |str| operator formats its
+ % argument (which is an arbitrary suffix) cannot be changed, so
+ % the proofsheets end up showing "0 0" for the variable |z[0][0]|.
+ makelabel (str point.point_suffix, z.point.point_suffix);
+ endfor
+ endfor
+enddef;
+
+% Define our labels for the proofsheets. The person running Metafont
+% can also see the control points on each spline, by setting
+% |proofing>2| at the beginning. (The {\tt plain.mf} macros only
+% distinguish between |proofing=0|, |proofing>0| and |proofing>1|, so we
+% are not disturbing them.)
+%
+def proof_labels (text t) =
+ % We need to delimit the arguments here, so \MF\ knows where the
+ % second |text| argument begins. Our output uses the suffix |"s"| for
+ % startpoints of segments, and the suffixes |"c1"| and |"c2"| for
+ % control points.
+ if proofing > 1: general_label (t) (s); fi;
+ if proofing > 2: general_label (t) (c1,c2); fi;
+enddef;
+
+
+% We define our characters as filled outlines; page 206 of {\sl The
+% Metafontbook} suggests disabling \MF's |autorounding| and
+% |smoothing| features in that case.
+%
+autorounding := 0;
+smoothing := 0;
+
+% Sometimes we want to fill our paths, other times unfill them,
+% depending on whether the winding number is positive or negative. We
+% could be absolutely safe here, and declare |temp_path| inside a group,
+% at every invocation of |fill_or_unfill|; but this would waste time and
+% space to no advantage, since we know exactly what kind of \MF\
+% programs we output, and the variable |temp_path| is not used in them.
+%
+% Incidentally, we need a variable in the first place only because it is more
+% efficient to avoid evaluating long paths more than once.
+%
+path temp_path;
+
+def fill_or_unfill expr p =
+ temp_path := p;
+ if turningnumber temp_path > 0: fill else: unfill fi temp_path;
+enddef;
+
+% Since we can assume the font fills all cycles counterclockwise
+% (because PostScript requires this), we want to disable the
+% |turningnumber| checking which generates the `Strange path' errors.
+% See p.112 and p.119 of the Metafontbook.
+%
+% (By the way, setting |turningcheck := 0| makes Metafont always use the
+% filling rule for positive turning number, i.e., always |fill| and
+% never |unfill|. When would this be useful?)
+%
+turningcheck := 1;
+
+% When we don't know the dimensions of the character we're defining
+% before we define it, we have to use these to begin it:
+def begin_no_dimen_char (expr c) =
+ begingroup
+ transform save_currenttransform;
+ save_currenttransform := currenttransform;
+ charcode:=if known c: byte c else: 0 fi;
+ charic:=0; clearxy; clearit; clearpen; scantokens extra_beginchar;
+enddef;
+
+def end_no_dimen_char =
+ currenttransform := save_currenttransform;
+ endchar;
+enddef;
+
+% When use the above to start a character, must call this before `endchar'.
+%
+def set_char_dimens (expr w_sharp,h_sharp,d_sharp) =
+ charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp;
+ w:=hround(charwd*hppp); h:=vround(charht*hppp); d:=vround(chardp*hppp);
+enddef;
+
+% Move by shifting the current transform matrix.
+%
+def move (expr h_amount, v_amount) =
+ currenttransform := currenttransform shifted (h_amount, v_amount);
+enddef;
+
+def hmove (expr amount) = move (amount, 0); enddef;
+def vmove (expr amount) = move (0, amount); enddef;
diff --git a/Master/texmf-dist/fonts/source/public/otibet/tibetan.mf b/Master/texmf-dist/fonts/source/public/otibet/tibetan.mf
new file mode 100644
index 00000000000..3f0e1a65436
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/otibet/tibetan.mf
@@ -0,0 +1,19338 @@
+% This file defines the Metafont font tibetan.
+%
+% based on gtib/gtibsp
+%
+% This font is in the public domain.
+%
+true_design_size# := 10.000pt#;
+design_size := 10pt;
+input bzrsetup;
+font_coding_scheme := "TIBETAN TEX";
+font_identifier := "tibetan";
+font_normal_space 3.333pt#;
+font_normal_stretch 1.666pt#;
+font_normal_shrink 1.111pt#;
+picture npic,opic,apic;
+
+beginchar (107, 9.636u#, 6.745u#, 6.263u#);
+ "ka";
+ z0\0\0s = (0.507u,1.686u);
+ z0\0\0 = (1.023u,1.686u);
+ z0\0\1c1 = (0.976u,2.094u);
+ z0\0\1c2 = (0.973u,2.493u);
+ z0\0\1 = (1.023u,2.891u);
+ z0\0\2c1 = (1.291u,3.644u);
+ z0\0\2c2 = (2.308u,5.464u);
+ z0\0\2 = (3.300u,5.018u);
+ z0\0\3c1 = (4.359u,4.543u);
+ z0\0\3c2 = (4.336u,1.029u);
+ z0\0\3 = (4.336u,0.000u);
+ z0\0\4 = (4.818u,0.000u);
+ z0\0\5c1 = (4.818u,1.129u);
+ z0\0\5c2 = (4.715u,5.595u);
+ z0\0\5 = (6.733u,5.121u);
+ z0\0\6c1 = (7.241u,5.001u);
+ z0\0\6c2 = (7.548u,4.540u);
+ z0\0\6 = (7.739u,4.091u);
+ z0\0\7c1 = (8.387u,2.561u);
+ z0\0\7c2 = (8.183u,-0.450u);
+ z0\0\7 = (8.191u,-2.168u);
+ z0\0\8 = (8.431u,-6.022u);
+ z0\0\9 = (8.927u,-6.022u);
+ z0\0\10 = (8.927u,1.686u);
+ z0\0\11 = (8.927u,3.132u);
+ z0\0\12c1 = (9.015u,3.773u);
+ z0\0\12c2 = (9.177u,4.409u);
+ z0\0\12 = (9.137u,5.059u);
+ z0\0\13c1 = (9.117u,5.379u);
+ z0\0\13c2 = (9.075u,5.705u);
+ z0\0\13 = (8.908u,5.987u);
+ z0\0\14c1 = (8.431u,6.794u);
+ z0\0\14c2 = (7.560u,6.740u);
+ z0\0\14 = (6.745u,6.707u);
+ z0\0\15c1 = (5.908u,6.750u);
+ z0\0\15c2 = (1.981u,6.812u);
+ z0\0\15 = (1.459u,6.707u);
+ z0\0\16c1 = (1.159u,6.587u);
+ z0\0\16c2 = (0.904u,6.470u);
+ z0\0\16 = (0.750u,6.188u);
+ z0\0\17c1 = (0.436u,5.661u);
+ z0\0\17c2 = (0.798u,4.924u);
+ z0\0\17 = (0.750u,4.336u);
+ z0\0\18 = (0.507u,3.132u);
+ fill_or_unfill z0\0\0s
+ --z0\0\0
+ ..controls z0\0\1c1 and z0\0\1c2..z0\0\1
+ ..controls z0\0\2c1 and z0\0\2c2..z0\0\2
+ ..controls z0\0\3c1 and z0\0\3c2..z0\0\3
+ --z0\0\4
+ ..controls z0\0\5c1 and z0\0\5c2..z0\0\5
+ ..controls z0\0\6c1 and z0\0\6c2..z0\0\6
+ ..controls z0\0\7c1 and z0\0\7c2..z0\0\7
+ --z0\0\8
+ --z0\0\9
+ --z0\0\10
+ --z0\0\11
+ ..controls z0\0\12c1 and z0\0\12c2..z0\0\12
+ ..controls z0\0\13c1 and z0\0\13c2..z0\0\13
+ ..controls z0\0\14c1 and z0\0\14c2..z0\0\14
+ ..controls z0\0\15c1 and z0\0\15c2..z0\0\15
+ ..controls z0\0\16c1 and z0\0\16c2..z0\0\16
+ ..controls z0\0\17c1 and z0\0\17c2..z0\0\17
+ --z0\0\18
+ --cycle;
+ proof_labels (
+ 0\0\0,
+ 0\0\1,
+ 0\0\2,
+ 0\0\3,
+ 0\0\4,
+ 0\0\5,
+ 0\0\6,
+ 0\0\7,
+ 0\0\8,
+ 0\0\9,
+ 0\0\10,
+ 0\0\11,
+ 0\0\12,
+ 0\0\13,
+ 0\0\14,
+ 0\0\15,
+ 0\0\16,
+ 0\0\17,
+ 0\0\18,
+ 0\0\19,
+);
+endchar;
+
+beginchar (128, 11.081u#, 6.745u#, 6.504u#);
+ "kha";
+ z1\0\0s = (1.204u,-6.263u);
+ z1\0\0 = (1.709u,-6.263u);
+ z1\0\1 = (1.709u,-0.241u);
+ z1\0\2c1 = (1.686u,0.941u);
+ z1\0\2c2 = (1.595u,2.203u);
+ z1\0\2 = (1.709u,3.372u);
+ z1\0\3c1 = (1.822u,3.853u);
+ z1\0\3c2 = (1.945u,4.567u);
+ z1\0\3 = (2.309u,4.915u);
+ z1\0\4c1 = (2.893u,5.473u);
+ z1\0\4c2 = (3.876u,5.184u);
+ z1\0\4 = (4.577u,5.059u);
+ z1\0\5c1 = (3.695u,3.358u);
+ z1\0\5c2 = (3.221u,2.175u);
+ z1\0\5 = (3.132u,0.251u);
+ z1\0\6c1 = (4.859u,0.904u);
+ z1\0\6c2 = (6.220u,1.184u);
+ z1\0\6 = (7.950u,0.251u);
+ z1\0\7 = (9.636u,-0.723u);
+ z1\0\8c1 = (9.636u,0.822u);
+ z1\0\8c2 = (9.606u,2.331u);
+ z1\0\8 = (9.921u,3.854u);
+ z1\0\9c1 = (10.051u,4.486u);
+ z1\0\9c2 = (10.476u,5.141u);
+ z1\0\9 = (10.499u,5.768u);
+ z1\0\10c1 = (10.513u,6.155u);
+ z1\0\10c2 = (10.399u,6.424u);
+ z1\0\10 = (10.042u,6.601u);
+ z1\0\11c1 = (9.518u,6.860u);
+ z1\0\11c2 = (3.897u,6.756u);
+ z1\0\11 = (2.891u,6.744u);
+ z1\0\12c1 = (2.216u,6.736u);
+ z1\0\12c2 = (1.166u,6.753u);
+ z1\0\12 = (0.728u,6.140u);
+ z1\0\13c1 = (0.512u,5.838u);
+ z1\0\13c2 = (0.496u,5.415u);
+ z1\0\13 = (0.490u,5.058u);
+ z1\0\14 = (0.723u,3.132u);
+ z1\0\15 = (0.723u,1.686u);
+ z1\0\16 = (0.974u,-0.482u);
+ z1\0\17 = (0.974u,-3.613u);
+ z1\1\0s = (8.963u,0.723u);
+ z1\1\0c1 = (6.692u,2.111u);
+ z1\1\0c2 = (6.546u,2.401u);
+ z1\1\0 = (3.854u,2.409u);
+ z1\1\1c1 = (4.140u,3.066u);
+ z1\1\1c2 = (4.416u,3.752u);
+ z1\1\1 = (4.911u,4.285u);
+ z1\1\2c1 = (5.648u,5.078u);
+ z1\1\2c2 = (7.591u,5.796u);
+ z1\1\2 = (8.474u,4.881u);
+ z1\1\3c1 = (8.848u,4.493u);
+ z1\1\3c2 = (8.930u,3.650u);
+ z1\1\3 = (8.963u,3.132u);
+ z1\1\4c1 = (9.169u,2.138u);
+ z1\1\4c2 = (9.190u,1.698u);
+ fill_or_unfill z1\0\0s
+ --z1\0\0
+ --z1\0\1
+ ..controls z1\0\2c1 and z1\0\2c2..z1\0\2
+ ..controls z1\0\3c1 and z1\0\3c2..z1\0\3
+ ..controls z1\0\4c1 and z1\0\4c2..z1\0\4
+ ..controls z1\0\5c1 and z1\0\5c2..z1\0\5
+ ..controls z1\0\6c1 and z1\0\6c2..z1\0\6
+ --z1\0\7
+ ..controls z1\0\8c1 and z1\0\8c2..z1\0\8
+ ..controls z1\0\9c1 and z1\0\9c2..z1\0\9
+ ..controls z1\0\10c1 and z1\0\10c2..z1\0\10
+ ..controls z1\0\11c1 and z1\0\11c2..z1\0\11
+ ..controls z1\0\12c1 and z1\0\12c2..z1\0\12
+ ..controls z1\0\13c1 and z1\0\13c2..z1\0\13
+ --z1\0\14
+ --z1\0\15
+ --z1\0\16
+ --z1\0\17
+ --cycle;
+ fill_or_unfill z1\1\0s
+ ..controls z1\1\0c1 and z1\1\0c2..z1\1\0
+ ..controls z1\1\1c1 and z1\1\1c2..z1\1\1
+ ..controls z1\1\2c1 and z1\1\2c2..z1\1\2
+ ..controls z1\1\3c1 and z1\1\3c2..z1\1\3
+ ..controls z1\1\4c1 and z1\1\4c2..cycle;
+ proof_labels (
+ 1\0\0,
+ 1\0\1,
+ 1\0\2,
+ 1\0\3,
+ 1\0\4,
+ 1\0\5,
+ 1\0\6,
+ 1\0\7,
+ 1\0\8,
+ 1\0\9,
+ 1\0\10,
+ 1\0\11,
+ 1\0\12,
+ 1\0\13,
+ 1\0\14,
+ 1\0\15,
+ 1\0\16,
+ 1\0\17,
+ 1\0\18,
+ 1\1\0,
+ 1\1\1,
+ 1\1\2,
+ 1\1\3,
+ 1\1\4,
+);
+endchar;
+
+beginchar (103, 11.081u#, 6.745u#, 6.504u#);
+ "ga";
+ z2\0\0s = (0.964u,5.300u);
+ z2\0\0 = (1.927u,5.059u);
+ z2\0\1c1 = (1.563u,4.416u);
+ z2\0\1c2 = (-0.036u,1.577u);
+ z2\0\1 = (1.043u,1.088u);
+ z2\0\2c1 = (1.516u,0.932u);
+ z2\0\2c2 = (3.466u,1.402u);
+ z2\0\2 = (4.576u,1.088u);
+ z2\0\3c1 = (5.721u,0.683u);
+ z2\0\3c2 = (5.859u,-0.140u);
+ z2\0\3 = (6.745u,-0.723u);
+ z2\0\4c1 = (6.745u,0.540u);
+ z2\0\4c2 = (6.388u,4.461u);
+ z2\0\4 = (7.742u,5.018u);
+ z2\0\5c1 = (8.925u,5.506u);
+ z2\0\5c2 = (9.139u,3.884u);
+ z2\0\5 = (9.154u,3.132u);
+ z2\0\6 = (9.154u,0.241u);
+ z2\0\7 = (9.395u,-1.927u);
+ z2\0\8 = (9.395u,-3.613u);
+ z2\0\9 = (9.636u,-6.263u);
+ z2\0\10 = (10.118u,-6.263u);
+ z2\0\11 = (10.118u,1.204u);
+ z2\0\12 = (10.577u,5.059u);
+ z2\0\13c1 = (10.594u,5.384u);
+ z2\0\13c2 = (10.600u,5.891u);
+ z2\0\13 = (10.455u,6.188u);
+ z2\0\14c1 = (10.118u,6.879u);
+ z2\0\14c2 = (9.075u,6.744u);
+ z2\0\14 = (8.431u,6.745u);
+ z2\0\15c1 = (7.255u,6.747u);
+ z2\0\15c2 = (2.239u,6.940u);
+ z2\0\15 = (1.521u,6.462u);
+ z2\0\16c1 = (1.074u,6.165u);
+ z2\0\16c2 = (1.046u,5.780u);
+ z2\1\0s = (6.022u,1.204u);
+ z2\1\0c1 = (3.968u,2.384u);
+ z2\1\0c2 = (3.971u,2.868u);
+ z2\1\0 = (1.445u,2.891u);
+ z2\1\1c1 = (1.956u,4.429u);
+ z2\1\1c2 = (2.833u,5.424u);
+ z2\1\1 = (4.573u,5.271u);
+ z2\1\2c1 = (5.040u,5.229u);
+ z2\1\2c2 = (5.410u,5.141u);
+ z2\1\2 = (5.665u,4.714u);
+ z2\1\3c1 = (6.091u,4.000u);
+ z2\1\3c2 = (6.022u,2.066u);
+ fill_or_unfill z2\0\0s
+ --z2\0\0
+ ..controls z2\0\1c1 and z2\0\1c2..z2\0\1
+ ..controls z2\0\2c1 and z2\0\2c2..z2\0\2
+ ..controls z2\0\3c1 and z2\0\3c2..z2\0\3
+ ..controls z2\0\4c1 and z2\0\4c2..z2\0\4
+ ..controls z2\0\5c1 and z2\0\5c2..z2\0\5
+ --z2\0\6
+ --z2\0\7
+ --z2\0\8
+ --z2\0\9
+ --z2\0\10
+ --z2\0\11
+ --z2\0\12
+ ..controls z2\0\13c1 and z2\0\13c2..z2\0\13
+ ..controls z2\0\14c1 and z2\0\14c2..z2\0\14
+ ..controls z2\0\15c1 and z2\0\15c2..z2\0\15
+ ..controls z2\0\16c1 and z2\0\16c2..cycle;
+ fill_or_unfill z2\1\0s
+ ..controls z2\1\0c1 and z2\1\0c2..z2\1\0
+ ..controls z2\1\1c1 and z2\1\1c2..z2\1\1
+ ..controls z2\1\2c1 and z2\1\2c2..z2\1\2
+ ..controls z2\1\3c1 and z2\1\3c2..cycle;
+ proof_labels (
+ 2\0\0,
+ 2\0\1,
+ 2\0\2,
+ 2\0\3,
+ 2\0\4,
+ 2\0\5,
+ 2\0\6,
+ 2\0\7,
+ 2\0\8,
+ 2\0\9,
+ 2\0\10,
+ 2\0\11,
+ 2\0\12,
+ 2\0\13,
+ 2\0\14,
+ 2\0\15,
+ 2\0\16,
+ 2\1\0,
+ 2\1\1,
+ 2\1\2,
+ 2\1\3,
+);
+endchar;
+
+beginchar (129, 8.190u#, 6.745u#, 1.927u#);
+ "nga";
+ z3\0\0s = (0.482u,-0.723u);
+ z3\0\0c1 = (1.935u,-0.691u);
+ z3\0\0c2 = (3.370u,-0.268u);
+ z3\0\0 = (4.818u,-0.582u);
+ z3\0\1c1 = (5.851u,-0.806u);
+ z3\0\1c2 = (6.711u,-1.372u);
+ z3\0\1 = (7.709u,-1.686u);
+ z3\0\2c1 = (7.660u,-1.267u);
+ z3\0\2c2 = (7.637u,-0.888u);
+ z3\0\2 = (7.426u,-0.506u);
+ z3\0\3c1 = (6.430u,1.291u);
+ z3\0\3c2 = (3.019u,1.444u);
+ z3\0\3 = (1.204u,1.445u);
+ z3\0\4c1 = (1.204u,2.309u);
+ z3\0\4c2 = (1.042u,4.038u);
+ z3\0\4 = (1.623u,4.695u);
+ z3\0\5c1 = (2.621u,5.826u);
+ z3\0\5c2 = (5.370u,4.973u);
+ z3\0\5 = (6.713u,5.403u);
+ z3\0\6c1 = (7.358u,5.610u);
+ z3\0\6c2 = (7.611u,6.263u);
+ z3\0\6 = (6.909u,6.602u);
+ z3\0\7c1 = (6.576u,6.763u);
+ z3\0\7c2 = (5.915u,6.742u);
+ z3\0\7 = (5.541u,6.745u);
+ z3\0\8c1 = (4.771u,6.750u);
+ z3\0\8c2 = (1.767u,6.831u);
+ z3\0\8 = (1.239u,6.601u);
+ z3\0\9c1 = (0.933u,6.468u);
+ z3\0\9c2 = (0.759u,6.294u);
+ z3\0\9 = (0.626u,5.987u);
+ z3\0\10c1 = (0.368u,5.394u);
+ z3\0\10c2 = (0.482u,0.314u);
+ fill_or_unfill z3\0\0s
+ ..controls z3\0\0c1 and z3\0\0c2..z3\0\0
+ ..controls z3\0\1c1 and z3\0\1c2..z3\0\1
+ ..controls z3\0\2c1 and z3\0\2c2..z3\0\2
+ ..controls z3\0\3c1 and z3\0\3c2..z3\0\3
+ ..controls z3\0\4c1 and z3\0\4c2..z3\0\4
+ ..controls z3\0\5c1 and z3\0\5c2..z3\0\5
+ ..controls z3\0\6c1 and z3\0\6c2..z3\0\6
+ ..controls z3\0\7c1 and z3\0\7c2..z3\0\7
+ ..controls z3\0\8c1 and z3\0\8c2..z3\0\8
+ ..controls z3\0\9c1 and z3\0\9c2..z3\0\9
+ ..controls z3\0\10c1 and z3\0\10c2..cycle;
+ proof_labels (
+ 3\0\0,
+ 3\0\1,
+ 3\0\2,
+ 3\0\3,
+ 3\0\4,
+ 3\0\5,
+ 3\0\6,
+ 3\0\7,
+ 3\0\8,
+ 3\0\9,
+ 3\0\10,
+);
+endchar;
+
+beginchar (99, 8.913u#, 6.745u#, 1.445u#);
+ "ca";
+ z4\0\0s = (1.927u,6.022u);
+ z4\0\0 = (1.927u,5.541u);
+ z4\0\1 = (2.650u,5.354u);
+ z4\0\2c1 = (3.166u,5.271u);
+ z4\0\2c2 = (4.072u,5.364u);
+ z4\0\2 = (4.488u,5.054u);
+ z4\0\3c1 = (5.232u,4.499u);
+ z4\0\3c2 = (4.370u,3.734u);
+ z4\0\3 = (3.850u,3.407u);
+ z4\0\4c1 = (2.802u,2.856u);
+ z4\0\4c2 = (1.589u,3.172u);
+ z4\0\4 = (0.482u,3.407u);
+ z4\0\5 = (1.350u,1.897u);
+ z4\0\6c1 = (1.758u,1.085u);
+ z4\0\6c2 = (1.800u,0.080u);
+ z4\0\6 = (2.509u,-0.566u);
+ z4\0\7c1 = (2.759u,-0.794u);
+ z4\0\7c2 = (3.057u,-0.945u);
+ z4\0\7 = (3.376u,-1.037u);
+ z4\0\8c1 = (4.055u,-1.267u);
+ z4\0\8c2 = (6.325u,-1.286u);
+ z4\0\8 = (6.982u,-1.037u);
+ z4\0\9c1 = (7.489u,-0.827u);
+ z4\0\9c2 = (7.894u,-0.472u);
+ z4\0\9 = (8.148u,0.010u);
+ z4\0\10c1 = (9.396u,2.374u);
+ z4\0\10c2 = (5.677u,3.471u);
+ z4\0\10 = (6.103u,4.742u);
+ z4\0\11c1 = (6.323u,5.396u);
+ z4\0\11c2 = (7.521u,5.190u);
+ z4\0\11 = (8.060u,5.682u);
+ z4\0\12c1 = (8.260u,5.865u);
+ z4\0\12c2 = (8.307u,6.043u);
+ z4\0\12 = (8.431u,6.263u);
+ z4\0\13c1 = (8.028u,6.431u);
+ z4\0\13c2 = (7.661u,6.586u);
+ z4\0\13 = (7.227u,6.642u);
+ z4\0\14c1 = (6.480u,6.802u);
+ z4\0\14c2 = (4.104u,6.791u);
+ z4\0\14 = (3.372u,6.642u);
+ z4\0\15c1 = (2.849u,6.493u);
+ z4\0\15c2 = (2.402u,6.264u);
+ z4\1\0s = (2.650u,2.409u);
+ z4\1\0c1 = (3.125u,2.563u);
+ z4\1\0c2 = (3.830u,2.833u);
+ z4\1\0 = (4.327u,2.772u);
+ z4\1\1c1 = (5.181u,2.668u);
+ z4\1\1c2 = (6.916u,0.921u);
+ z4\1\1 = (6.770u,0.032u);
+ z4\1\2c1 = (6.601u,-0.994u);
+ z4\1\2c2 = (5.087u,-0.926u);
+ z4\1\2 = (4.429u,-0.460u);
+ z4\1\3c1 = (4.071u,-0.206u);
+ z4\1\3c2 = (3.888u,0.121u);
+ z4\1\3 = (3.676u,0.492u);
+ fill_or_unfill z4\0\0s
+ --z4\0\0
+ --z4\0\1
+ ..controls z4\0\2c1 and z4\0\2c2..z4\0\2
+ ..controls z4\0\3c1 and z4\0\3c2..z4\0\3
+ ..controls z4\0\4c1 and z4\0\4c2..z4\0\4
+ --z4\0\5
+ ..controls z4\0\6c1 and z4\0\6c2..z4\0\6
+ ..controls z4\0\7c1 and z4\0\7c2..z4\0\7
+ ..controls z4\0\8c1 and z4\0\8c2..z4\0\8
+ ..controls z4\0\9c1 and z4\0\9c2..z4\0\9
+ ..controls z4\0\10c1 and z4\0\10c2..z4\0\10
+ ..controls z4\0\11c1 and z4\0\11c2..z4\0\11
+ ..controls z4\0\12c1 and z4\0\12c2..z4\0\12
+ ..controls z4\0\13c1 and z4\0\13c2..z4\0\13
+ ..controls z4\0\14c1 and z4\0\14c2..z4\0\14
+ ..controls z4\0\15c1 and z4\0\15c2..cycle;
+ fill_or_unfill z4\1\0s
+ ..controls z4\1\0c1 and z4\1\0c2..z4\1\0
+ ..controls z4\1\1c1 and z4\1\1c2..z4\1\1
+ ..controls z4\1\2c1 and z4\1\2c2..z4\1\2
+ ..controls z4\1\3c1 and z4\1\3c2..z4\1\3
+ --cycle;
+ proof_labels (
+ 4\0\0,
+ 4\0\1,
+ 4\0\2,
+ 4\0\3,
+ 4\0\4,
+ 4\0\5,
+ 4\0\6,
+ 4\0\7,
+ 4\0\8,
+ 4\0\9,
+ 4\0\10,
+ 4\0\11,
+ 4\0\12,
+ 4\0\13,
+ 4\0\14,
+ 4\0\15,
+ 4\1\0,
+ 4\1\1,
+ 4\1\2,
+ 4\1\3,
+ 4\1\4,
+);
+endchar;
+
+beginchar (130, 10.600u#, 6.745u#, 1.927u#);
+ "cha";
+ z5\0\0s = (5.059u,3.613u);
+ z5\0\0c1 = (3.239u,3.568u);
+ z5\0\0c2 = (1.429u,3.075u);
+ z5\0\0 = (0.725u,1.203u);
+ z5\0\1c1 = (0.514u,0.658u);
+ z5\0\1c2 = (0.444u,0.075u);
+ z5\0\1 = (0.725u,-0.459u);
+ z5\0\2c1 = (1.420u,-1.756u);
+ z5\0\2c2 = (3.428u,-2.044u);
+ z5\0\2 = (4.506u,-1.082u);
+ z5\0\3c1 = (4.794u,-0.825u);
+ z5\0\3c2 = (4.892u,-0.569u);
+ z5\0\3 = (5.059u,-0.241u);
+ z5\0\4c1 = (5.516u,-0.632u);
+ z5\0\4c2 = (5.990u,-1.171u);
+ z5\0\4 = (6.526u,-1.443u);
+ z5\0\5c1 = (6.978u,-1.674u);
+ z5\0\5c2 = (7.454u,-1.684u);
+ z5\0\5 = (7.950u,-1.684u);
+ z5\0\6c1 = (8.396u,-1.684u);
+ z5\0\6c2 = (8.949u,-1.679u);
+ z5\0\6 = (9.341u,-1.440u);
+ z5\0\7c1 = (10.262u,-0.878u);
+ z5\0\7c2 = (10.281u,0.817u);
+ z5\0\7 = (9.835u,1.683u);
+ z5\0\8c1 = (9.616u,2.106u);
+ z5\0\8c2 = (9.290u,2.448u);
+ z5\0\8 = (8.903u,2.722u);
+ z5\0\9c1 = (8.052u,3.324u);
+ z5\0\9c2 = (6.560u,3.559u);
+ z5\0\9 = (5.541u,3.854u);
+ z5\0\10c1 = (5.700u,4.234u);
+ z5\0\10c2 = (5.824u,4.631u);
+ z5\0\10 = (6.144u,4.915u);
+ z5\0\11c1 = (6.847u,5.537u);
+ z5\0\11c2 = (8.760u,5.006u);
+ z5\0\11 = (8.767u,6.003u);
+ z5\0\12c1 = (8.769u,6.276u);
+ z5\0\12c2 = (8.587u,6.452u);
+ z5\0\12 = (8.360u,6.588u);
+ z5\0\13c1 = (7.808u,6.848u);
+ z5\0\13c2 = (4.030u,6.810u);
+ z5\0\13 = (3.387u,6.588u);
+ z5\0\14c1 = (3.130u,6.527u);
+ z5\0\14c2 = (2.830u,6.403u);
+ z5\0\14 = (2.690u,6.154u);
+ z5\0\15c1 = (2.239u,5.352u);
+ z5\0\15c2 = (3.701u,5.319u);
+ z5\0\15 = (4.082u,5.157u);
+ z5\0\16c1 = (4.329u,5.051u);
+ z5\0\16c2 = (4.498u,4.951u);
+ z5\0\16 = (4.674u,4.742u);
+ z5\0\17c1 = (4.965u,4.398u);
+ z5\0\17c2 = (4.990u,4.033u);
+ z5\1\0s = (5.059u,2.168u);
+ z5\1\0c1 = (5.053u,1.609u);
+ z5\1\0c2 = (5.076u,1.024u);
+ z5\1\0 = (4.902u,0.485u);
+ z5\1\1c1 = (3.997u,-2.329u);
+ z5\1\1c2 = (0.452u,-0.841u);
+ z5\1\1 = (1.628u,0.932u);
+ z5\1\2c1 = (2.023u,1.529u);
+ z5\1\2c2 = (2.711u,1.781u);
+ z5\1\2 = (3.372u,1.951u);
+ z5\1\3c1 = (3.937u,2.095u);
+ z5\1\3c2 = (4.480u,2.141u);
+ z5\2\0s = (5.782u,2.168u);
+ z5\2\0 = (7.708u,1.590u);
+ z5\2\1c1 = (8.290u,1.358u);
+ z5\2\1c2 = (8.817u,1.054u);
+ z5\2\1 = (9.108u,0.469u);
+ z5\2\2c1 = (9.964u,-1.254u);
+ z5\2\2c2 = (7.213u,-2.110u);
+ z5\2\2 = (6.077u,-0.227u);
+ z5\2\3c1 = (5.567u,0.616u);
+ z5\2\3c2 = (5.543u,1.248u);
+ fill_or_unfill z5\0\0s
+ ..controls z5\0\0c1 and z5\0\0c2..z5\0\0
+ ..controls z5\0\1c1 and z5\0\1c2..z5\0\1
+ ..controls z5\0\2c1 and z5\0\2c2..z5\0\2
+ ..controls z5\0\3c1 and z5\0\3c2..z5\0\3
+ ..controls z5\0\4c1 and z5\0\4c2..z5\0\4
+ ..controls z5\0\5c1 and z5\0\5c2..z5\0\5
+ ..controls z5\0\6c1 and z5\0\6c2..z5\0\6
+ ..controls z5\0\7c1 and z5\0\7c2..z5\0\7
+ ..controls z5\0\8c1 and z5\0\8c2..z5\0\8
+ ..controls z5\0\9c1 and z5\0\9c2..z5\0\9
+ ..controls z5\0\10c1 and z5\0\10c2..z5\0\10
+ ..controls z5\0\11c1 and z5\0\11c2..z5\0\11
+ ..controls z5\0\12c1 and z5\0\12c2..z5\0\12
+ ..controls z5\0\13c1 and z5\0\13c2..z5\0\13
+ ..controls z5\0\14c1 and z5\0\14c2..z5\0\14
+ ..controls z5\0\15c1 and z5\0\15c2..z5\0\15
+ ..controls z5\0\16c1 and z5\0\16c2..z5\0\16
+ ..controls z5\0\17c1 and z5\0\17c2..cycle;
+ fill_or_unfill z5\1\0s
+ ..controls z5\1\0c1 and z5\1\0c2..z5\1\0
+ ..controls z5\1\1c1 and z5\1\1c2..z5\1\1
+ ..controls z5\1\2c1 and z5\1\2c2..z5\1\2
+ ..controls z5\1\3c1 and z5\1\3c2..cycle;
+ fill_or_unfill z5\2\0s
+ --z5\2\0
+ ..controls z5\2\1c1 and z5\2\1c2..z5\2\1
+ ..controls z5\2\2c1 and z5\2\2c2..z5\2\2
+ ..controls z5\2\3c1 and z5\2\3c2..cycle;
+ proof_labels (
+ 5\0\0,
+ 5\0\1,
+ 5\0\2,
+ 5\0\3,
+ 5\0\4,
+ 5\0\5,
+ 5\0\6,
+ 5\0\7,
+ 5\0\8,
+ 5\0\9,
+ 5\0\10,
+ 5\0\11,
+ 5\0\12,
+ 5\0\13,
+ 5\0\14,
+ 5\0\15,
+ 5\0\16,
+ 5\0\17,
+ 5\1\0,
+ 5\1\1,
+ 5\1\2,
+ 5\1\3,
+ 5\2\0,
+ 5\2\1,
+ 5\2\2,
+ 5\2\3,
+);
+endchar;
+
+beginchar (106, 7.709u#, 6.745u#, 1.927u#);
+ "ja";
+ z6\0\0s = (0.482u,6.693u);
+ z6\0\0 = (0.482u,-0.964u);
+ z6\0\1 = (2.891u,-0.597u);
+ z6\0\2c1 = (4.531u,-0.349u);
+ z6\0\2c2 = (5.805u,-1.007u);
+ z6\0\2 = (7.227u,-1.686u);
+ z6\0\3c1 = (6.371u,1.218u);
+ z6\0\3c2 = (3.585u,0.723u);
+ z6\0\3 = (1.204u,0.723u);
+ z6\0\4 = (1.204u,2.410u);
+ z6\0\5 = (4.818u,2.410u);
+ z6\0\6c1 = (5.142u,2.416u);
+ z6\0\6c2 = (5.653u,2.408u);
+ z6\0\6 = (5.946u,2.553u);
+ z6\0\7c1 = (6.629u,2.890u);
+ z6\0\7c2 = (6.406u,3.584u);
+ z6\0\7 = (5.746u,3.817u);
+ z6\0\8c1 = (5.283u,3.916u);
+ z6\0\8c2 = (1.945u,3.854u);
+ z6\0\8 = (1.204u,3.817u);
+ z6\0\9 = (1.204u,5.351u);
+ z6\0\10c1 = (2.024u,5.300u);
+ z6\0\10c2 = (5.182u,5.224u);
+ z6\0\10 = (5.749u,5.351u);
+ z6\0\11c1 = (6.090u,5.511u);
+ z6\0\11c2 = (6.481u,5.765u);
+ z6\0\11 = (6.334u,6.185u);
+ z6\0\12c1 = (6.243u,6.446u);
+ z6\0\12c2 = (5.993u,6.564u);
+ z6\0\12 = (5.749u,6.693u);
+ z6\0\13c1 = (5.179u,6.822u);
+ z6\0\13c2 = (1.367u,6.745u);
+ fill_or_unfill z6\0\0s
+ --z6\0\0
+ --z6\0\1
+ ..controls z6\0\2c1 and z6\0\2c2..z6\0\2
+ ..controls z6\0\3c1 and z6\0\3c2..z6\0\3
+ --z6\0\4
+ --z6\0\5
+ ..controls z6\0\6c1 and z6\0\6c2..z6\0\6
+ ..controls z6\0\7c1 and z6\0\7c2..z6\0\7
+ ..controls z6\0\8c1 and z6\0\8c2..z6\0\8
+ --z6\0\9
+ ..controls z6\0\10c1 and z6\0\10c2..z6\0\10
+ ..controls z6\0\11c1 and z6\0\11c2..z6\0\11
+ ..controls z6\0\12c1 and z6\0\12c2..z6\0\12
+ ..controls z6\0\13c1 and z6\0\13c2..cycle;
+ proof_labels (
+ 6\0\0,
+ 6\0\1,
+ 6\0\2,
+ 6\0\3,
+ 6\0\4,
+ 6\0\5,
+ 6\0\6,
+ 6\0\7,
+ 6\0\8,
+ 6\0\9,
+ 6\0\10,
+ 6\0\11,
+ 6\0\12,
+ 6\0\13,
+);
+endchar;
+
+beginchar (131, 7.950u#, 6.745u#, 6.504u#);
+ "nya";
+ z7\0\0s = (1.204u,4.336u);
+ z7\0\0c1 = (1.371u,4.637u);
+ z7\0\0c2 = (1.450u,4.868u);
+ z7\0\0 = (1.757u,5.073u);
+ z7\0\1c1 = (2.416u,5.512u);
+ z7\0\1c2 = (4.271u,5.399u);
+ z7\0\1 = (4.227u,4.323u);
+ z7\0\2c1 = (4.182u,3.217u);
+ z7\0\2c2 = (2.085u,2.416u);
+ z7\0\2 = (2.048u,0.968u);
+ z7\0\3c1 = (2.021u,-0.049u);
+ z7\0\3c2 = (3.210u,-0.720u);
+ z7\0\3 = (3.952u,0.085u);
+ z7\0\4c1 = (4.196u,0.349u);
+ z7\0\4c2 = (4.237u,0.640u);
+ z7\0\4 = (4.336u,0.964u);
+ z7\0\5 = (2.891u,1.445u);
+ z7\0\6c1 = (3.874u,2.424u);
+ z7\0\6c2 = (5.312u,2.960u);
+ z7\0\6 = (6.309u,1.633u);
+ z7\0\7c1 = (6.717u,1.090u);
+ z7\0\7c2 = (6.744u,0.635u);
+ z7\0\7 = (6.561u,0.000u);
+ z7\0\8c1 = (6.356u,-0.708u);
+ z7\0\8c2 = (5.923u,-1.332u);
+ z7\0\8 = (5.506u,-1.927u);
+ z7\0\9 = (4.051u,-3.854u);
+ z7\0\10c1 = (3.332u,-4.672u);
+ z7\0\10c2 = (2.566u,-5.371u);
+ z7\0\10 = (1.927u,-6.263u);
+ z7\0\11c1 = (2.373u,-6.169u);
+ z7\0\11c2 = (2.733u,-6.097u);
+ z7\0\11 = (3.128u,-5.845u);
+ z7\0\12c1 = (4.331u,-5.079u);
+ z7\0\12c2 = (6.355u,-2.075u);
+ z7\0\12 = (6.944u,-0.723u);
+ z7\0\13c1 = (7.824u,1.296u);
+ z7\0\13c2 = (7.966u,4.353u);
+ z7\0\13 = (4.818u,3.613u);
+ z7\0\14 = (5.487u,5.055u);
+ z7\0\15c1 = (5.592u,5.332u);
+ z7\0\15c2 = (5.705u,5.629u);
+ z7\0\15 = (5.612u,5.928u);
+ z7\0\16c1 = (5.282u,6.988u);
+ z7\0\16c2 = (2.937u,6.832u);
+ z7\0\16 = (2.171u,6.429u);
+ z7\0\17c1 = (1.620u,6.138u);
+ z7\0\17c2 = (1.087u,5.609u);
+ z7\0\17 = (0.798u,5.055u);
+ z7\0\18c1 = (0.531u,4.543u);
+ z7\0\18c2 = (0.305u,3.300u);
+ z7\0\18 = (1.062u,3.064u);
+ z7\0\19c1 = (1.587u,2.900u);
+ z7\0\19c2 = (2.122u,3.458u);
+ z7\0\19 = (1.750u,3.969u);
+ z7\0\20c1 = (1.598u,4.179u);
+ z7\0\20c2 = (1.408u,4.218u);
+ fill_or_unfill z7\0\0s
+ ..controls z7\0\0c1 and z7\0\0c2..z7\0\0
+ ..controls z7\0\1c1 and z7\0\1c2..z7\0\1
+ ..controls z7\0\2c1 and z7\0\2c2..z7\0\2
+ ..controls z7\0\3c1 and z7\0\3c2..z7\0\3
+ ..controls z7\0\4c1 and z7\0\4c2..z7\0\4
+ --z7\0\5
+ ..controls z7\0\6c1 and z7\0\6c2..z7\0\6
+ ..controls z7\0\7c1 and z7\0\7c2..z7\0\7
+ ..controls z7\0\8c1 and z7\0\8c2..z7\0\8
+ --z7\0\9
+ ..controls z7\0\10c1 and z7\0\10c2..z7\0\10
+ ..controls z7\0\11c1 and z7\0\11c2..z7\0\11
+ ..controls z7\0\12c1 and z7\0\12c2..z7\0\12
+ ..controls z7\0\13c1 and z7\0\13c2..z7\0\13
+ --z7\0\14
+ ..controls z7\0\15c1 and z7\0\15c2..z7\0\15
+ ..controls z7\0\16c1 and z7\0\16c2..z7\0\16
+ ..controls z7\0\17c1 and z7\0\17c2..z7\0\17
+ ..controls z7\0\18c1 and z7\0\18c2..z7\0\18
+ ..controls z7\0\19c1 and z7\0\19c2..z7\0\19
+ ..controls z7\0\20c1 and z7\0\20c2..cycle;
+ proof_labels (
+ 7\0\0,
+ 7\0\1,
+ 7\0\2,
+ 7\0\3,
+ 7\0\4,
+ 7\0\5,
+ 7\0\6,
+ 7\0\7,
+ 7\0\8,
+ 7\0\9,
+ 7\0\10,
+ 7\0\11,
+ 7\0\12,
+ 7\0\13,
+ 7\0\14,
+ 7\0\15,
+ 7\0\16,
+ 7\0\17,
+ 7\0\18,
+ 7\0\19,
+ 7\0\20,
+);
+endchar;
+
+beginchar (116, 6.986u#, 6.745u#, 6.986u#);
+ "ta";
+ z8\0\0s = (0.520u,1.204u);
+ z8\0\0c1 = (2.201u,1.510u);
+ z8\0\0c2 = (3.501u,2.177u);
+ z8\0\0 = (4.964u,0.641u);
+ z8\0\1c1 = (5.318u,0.271u);
+ z8\0\1c2 = (5.591u,-0.205u);
+ z8\0\1 = (5.637u,-0.723u);
+ z8\0\2c1 = (5.675u,-1.142u);
+ z8\0\2c2 = (5.536u,-1.533u);
+ z8\0\2 = (5.419u,-1.927u);
+ z8\0\3 = (4.841u,-3.613u);
+ z8\0\4c1 = (4.362u,-4.685u);
+ z8\0\4c2 = (3.752u,-5.618u);
+ z8\0\4 = (3.372u,-6.745u);
+ z8\0\5 = (3.971u,-6.374u);
+ z8\0\6c1 = (4.410u,-5.978u);
+ z8\0\6c2 = (4.722u,-5.334u);
+ z8\0\6 = (5.003u,-4.818u);
+ z8\0\7 = (5.864u,-3.132u);
+ z8\0\8c1 = (6.433u,-1.608u);
+ z8\0\8c2 = (7.020u,1.241u);
+ z8\0\8 = (5.681u,2.513u);
+ z8\0\9c1 = (4.119u,3.996u);
+ z8\0\9c2 = (2.798u,1.927u);
+ z8\0\9 = (1.445u,4.818u);
+ z8\0\10c1 = (1.924u,4.998u);
+ z8\0\10c2 = (2.381u,5.176u);
+ z8\0\10 = (2.891u,5.250u);
+ z8\0\11c1 = (3.637u,5.357u);
+ z8\0\11c2 = (5.827u,5.087u);
+ z8\0\11 = (6.285u,5.680u);
+ z8\0\12c1 = (6.351u,5.832u);
+ z8\0\12c2 = (6.382u,6.025u);
+ z8\0\12 = (6.285u,6.201u);
+ z8\0\13c1 = (6.086u,6.945u);
+ z8\0\13c2 = (4.247u,6.745u);
+ z8\0\13 = (3.613u,6.745u);
+ z8\0\14c1 = (3.001u,6.745u);
+ z8\0\14c2 = (1.315u,6.853u);
+ z8\0\14 = (0.867u,6.499u);
+ z8\0\15c1 = (0.685u,6.355u);
+ z8\0\15c2 = (0.621u,6.204u);
+ z8\0\15 = (0.520u,5.987u);
+ z8\0\16c1 = (0.419u,5.519u);
+ z8\0\16c2 = (0.482u,1.970u);
+ fill_or_unfill z8\0\0s
+ ..controls z8\0\0c1 and z8\0\0c2..z8\0\0
+ ..controls z8\0\1c1 and z8\0\1c2..z8\0\1
+ ..controls z8\0\2c1 and z8\0\2c2..z8\0\2
+ --z8\0\3
+ ..controls z8\0\4c1 and z8\0\4c2..z8\0\4
+ --z8\0\5
+ ..controls z8\0\6c1 and z8\0\6c2..z8\0\6
+ --z8\0\7
+ ..controls z8\0\8c1 and z8\0\8c2..z8\0\8
+ ..controls z8\0\9c1 and z8\0\9c2..z8\0\9
+ ..controls z8\0\10c1 and z8\0\10c2..z8\0\10
+ ..controls z8\0\11c1 and z8\0\11c2..z8\0\11
+ ..controls z8\0\12c1 and z8\0\12c2..z8\0\12
+ ..controls z8\0\13c1 and z8\0\13c2..z8\0\13
+ ..controls z8\0\14c1 and z8\0\14c2..z8\0\14
+ ..controls z8\0\15c1 and z8\0\15c2..z8\0\15
+ ..controls z8\0\16c1 and z8\0\16c2..cycle;
+ proof_labels (
+ 8\0\0,
+ 8\0\1,
+ 8\0\2,
+ 8\0\3,
+ 8\0\4,
+ 8\0\5,
+ 8\0\6,
+ 8\0\7,
+ 8\0\8,
+ 8\0\9,
+ 8\0\10,
+ 8\0\11,
+ 8\0\12,
+ 8\0\13,
+ 8\0\14,
+ 8\0\15,
+ 8\0\16,
+);
+endchar;
+
+beginchar (132, 7.950u#, 6.745u#, 4.336u#);
+ "tha";
+ z9\0\0s = (2.891u,1.445u);
+ z9\0\0 = (1.691u,0.331u);
+ z9\0\1c1 = (1.362u,0.051u);
+ z9\0\1c2 = (0.963u,-0.202u);
+ z9\0\1 = (0.723u,-0.569u);
+ z9\0\2c1 = (0.582u,-0.787u);
+ z9\0\2c2 = (0.558u,-0.970u);
+ z9\0\2 = (0.482u,-1.204u);
+ z9\0\3 = (2.891u,-1.083u);
+ z9\0\4c1 = (3.988u,-1.171u);
+ z9\0\4c2 = (5.738u,-2.164u);
+ z9\0\4 = (6.258u,-3.141u);
+ z9\0\5c1 = (6.428u,-3.459u);
+ z9\0\5c2 = (6.449u,-3.752u);
+ z9\0\5 = (6.504u,-4.095u);
+ z9\0\6 = (7.227u,-4.095u);
+ z9\0\7 = (7.227u,2.409u);
+ z9\0\8 = (7.454u,5.299u);
+ z9\0\9c1 = (7.454u,5.568u);
+ z9\0\9c2 = (7.444u,5.942u);
+ z9\0\9 = (7.324u,6.188u);
+ z9\0\10c1 = (7.034u,6.781u);
+ z9\0\10c2 = (6.345u,6.734u);
+ z9\0\10 = (5.781u,6.745u);
+ z9\0\11 = (3.613u,6.745u);
+ z9\0\12c1 = (3.111u,6.742u);
+ z9\0\12c2 = (2.233u,6.784u);
+ z9\0\12 = (1.824u,6.462u);
+ z9\0\13c1 = (1.395u,6.123u);
+ z9\0\13c2 = (1.512u,5.598u);
+ z9\0\13 = (1.436u,5.126u);
+ z9\0\14 = (1.070u,3.845u);
+ z9\0\15c1 = (0.866u,2.523u);
+ z9\0\15c2 = (1.774u,1.830u);
+ z9\1\0s = (3.855u,5.192u);
+ z9\1\0c1 = (4.356u,5.277u);
+ z9\1\0c2 = (5.247u,5.381u);
+ z9\1\0 = (5.706u,5.192u);
+ z9\1\1c1 = (5.977u,5.023u);
+ z9\1\1c2 = (6.116u,4.840u);
+ z9\1\1 = (6.174u,4.543u);
+ z9\1\2c1 = (6.366u,3.562u);
+ z9\1\2c2 = (5.220u,2.641u);
+ z9\1\2 = (4.336u,2.560u);
+ z9\1\3c1 = (3.365u,2.471u);
+ z9\1\3c2 = (1.342u,3.853u);
+ z9\1\3 = (2.517u,4.785u);
+ z9\1\4c1 = (2.871u,5.066u);
+ z9\1\4c2 = (3.425u,5.141u);
+ z9\2\0s = (6.525u,3.132u);
+ z9\2\0 = (6.525u,1.204u);
+ z9\2\1 = (6.734u,-0.241u);
+ z9\2\2 = (6.734u,-2.409u);
+ z9\2\3c1 = (5.555u,-1.318u);
+ z9\2\3c2 = (4.475u,-0.226u);
+ z9\2\3 = (2.891u,0.241u);
+ z9\2\4c1 = (3.604u,1.550u);
+ z9\2\4c2 = (5.091u,2.681u);
+ fill_or_unfill z9\0\0s
+ --z9\0\0
+ ..controls z9\0\1c1 and z9\0\1c2..z9\0\1
+ ..controls z9\0\2c1 and z9\0\2c2..z9\0\2
+ --z9\0\3
+ ..controls z9\0\4c1 and z9\0\4c2..z9\0\4
+ ..controls z9\0\5c1 and z9\0\5c2..z9\0\5
+ --z9\0\6
+ --z9\0\7
+ --z9\0\8
+ ..controls z9\0\9c1 and z9\0\9c2..z9\0\9
+ ..controls z9\0\10c1 and z9\0\10c2..z9\0\10
+ --z9\0\11
+ ..controls z9\0\12c1 and z9\0\12c2..z9\0\12
+ ..controls z9\0\13c1 and z9\0\13c2..z9\0\13
+ --z9\0\14
+ ..controls z9\0\15c1 and z9\0\15c2..cycle;
+ fill_or_unfill z9\1\0s
+ ..controls z9\1\0c1 and z9\1\0c2..z9\1\0
+ ..controls z9\1\1c1 and z9\1\1c2..z9\1\1
+ ..controls z9\1\2c1 and z9\1\2c2..z9\1\2
+ ..controls z9\1\3c1 and z9\1\3c2..z9\1\3
+ ..controls z9\1\4c1 and z9\1\4c2..cycle;
+ fill_or_unfill z9\2\0s
+ --z9\2\0
+ --z9\2\1
+ --z9\2\2
+ ..controls z9\2\3c1 and z9\2\3c2..z9\2\3
+ ..controls z9\2\4c1 and z9\2\4c2..cycle;
+ proof_labels (
+ 9\0\0,
+ 9\0\1,
+ 9\0\2,
+ 9\0\3,
+ 9\0\4,
+ 9\0\5,
+ 9\0\6,
+ 9\0\7,
+ 9\0\8,
+ 9\0\9,
+ 9\0\10,
+ 9\0\11,
+ 9\0\12,
+ 9\0\13,
+ 9\0\14,
+ 9\0\15,
+ 9\1\0,
+ 9\1\1,
+ 9\1\2,
+ 9\1\3,
+ 9\1\4,
+ 9\2\0,
+ 9\2\1,
+ 9\2\2,
+ 9\2\3,
+ 9\2\4,
+);
+endchar;
+
+beginchar (100, 9.395u#, 6.745u#, 5.541u#);
+ "da";
+ z10\0\0s = (0.482u,1.445u);
+ z10\0\0c1 = (1.353u,1.485u);
+ z10\0\0c2 = (2.268u,1.725u);
+ z10\0\0 = (3.132u,1.639u);
+ z10\0\1c1 = (4.237u,1.528u);
+ z10\0\1c2 = (5.671u,0.798u);
+ z10\0\1 = (6.391u,-0.044u);
+ z10\0\2c1 = (7.293u,-1.099u);
+ z10\0\2c2 = (8.220u,-3.919u);
+ z10\0\2 = (8.672u,-5.300u);
+ z10\0\3c1 = (9.344u,-3.601u);
+ z10\0\3c2 = (8.059u,0.012u);
+ z10\0\3 = (7.035u,1.444u);
+ z10\0\4c1 = (6.619u,2.026u);
+ z10\0\4c2 = (6.175u,2.484u);
+ z10\0\4 = (5.540u,2.824u);
+ z10\0\5c1 = (4.341u,3.468u);
+ z10\0\5c2 = (2.998u,3.372u);
+ z10\0\5 = (1.686u,3.372u);
+ z10\0\6c1 = (1.941u,3.764u);
+ z10\0\6c2 = (2.176u,4.154u);
+ z10\0\6 = (2.522u,4.477u);
+ z10\0\7c1 = (4.016u,5.872u);
+ z10\0\7c2 = (6.198u,4.916u);
+ z10\0\7 = (7.071u,5.539u);
+ z10\0\8c1 = (7.401u,5.774u);
+ z10\0\8c2 = (7.538u,6.158u);
+ z10\0\8 = (7.709u,6.504u);
+ z10\0\9 = (6.986u,6.680u);
+ z10\0\10c1 = (6.435u,6.778u);
+ z10\0\10c2 = (2.388u,6.792u);
+ z10\0\10 = (1.941u,6.680u);
+ z10\0\11c1 = (1.718u,6.609u);
+ z10\0\11c2 = (1.516u,6.533u);
+ z10\0\11 = (1.320u,6.360u);
+ z10\0\12c1 = (0.777u,5.746u);
+ z10\0\12c2 = (1.444u,4.853u);
+ z10\0\12 = (1.320u,4.095u);
+ z10\0\13 = (0.677u,2.650u);
+ z10\0\14c1 = (0.536u,2.240u);
+ z10\0\14c2 = (0.512u,1.871u);
+ fill_or_unfill z10\0\0s
+ ..controls z10\0\0c1 and z10\0\0c2..z10\0\0
+ ..controls z10\0\1c1 and z10\0\1c2..z10\0\1
+ ..controls z10\0\2c1 and z10\0\2c2..z10\0\2
+ ..controls z10\0\3c1 and z10\0\3c2..z10\0\3
+ ..controls z10\0\4c1 and z10\0\4c2..z10\0\4
+ ..controls z10\0\5c1 and z10\0\5c2..z10\0\5
+ ..controls z10\0\6c1 and z10\0\6c2..z10\0\6
+ ..controls z10\0\7c1 and z10\0\7c2..z10\0\7
+ ..controls z10\0\8c1 and z10\0\8c2..z10\0\8
+ --z10\0\9
+ ..controls z10\0\10c1 and z10\0\10c2..z10\0\10
+ ..controls z10\0\11c1 and z10\0\11c2..z10\0\11
+ ..controls z10\0\12c1 and z10\0\12c2..z10\0\12
+ --z10\0\13
+ ..controls z10\0\14c1 and z10\0\14c2..cycle;
+ proof_labels (
+ 10\0\0,
+ 10\0\1,
+ 10\0\2,
+ 10\0\3,
+ 10\0\4,
+ 10\0\5,
+ 10\0\6,
+ 10\0\7,
+ 10\0\8,
+ 10\0\9,
+ 10\0\10,
+ 10\0\11,
+ 10\0\12,
+ 10\0\13,
+ 10\0\14,
+);
+endchar;
+
+beginchar (110, 7.950u#, 6.745u#, 6.263u#);
+ "na";
+ z11\0\0s = (2.168u,5.300u);
+ z11\0\0c1 = (3.583u,5.216u);
+ z11\0\0c2 = (3.833u,5.066u);
+ z11\0\0 = (4.577u,3.807u);
+ z11\0\1c1 = (3.876u,3.854u);
+ z11\0\1c2 = (3.094u,3.918u);
+ z11\0\1 = (2.409u,3.807u);
+ z11\0\2c1 = (1.740u,3.606u);
+ z11\0\2c2 = (1.104u,3.242u);
+ z11\0\2 = (0.765u,2.625u);
+ z11\0\3c1 = (-0.601u,0.139u);
+ z11\0\3c2 = (3.807u,-2.182u);
+ z11\0\3 = (5.059u,1.445u);
+ z11\0\4c1 = (6.613u,0.083u);
+ z11\0\4c2 = (6.818u,-1.671u);
+ z11\0\4 = (7.026u,-3.613u);
+ z11\0\5 = (7.227u,-6.022u);
+ z11\0\6 = (7.405u,-5.486u);
+ z11\0\7c1 = (7.526u,-4.887u);
+ z11\0\7c2 = (7.494u,-0.664u);
+ z11\0\7 = (7.405u,0.000u);
+ z11\0\8c1 = (7.299u,0.656u);
+ z11\0\8c2 = (7.089u,1.337u);
+ z11\0\8 = (6.785u,1.926u);
+ z11\0\9c1 = (6.347u,2.775u);
+ z11\0\9c2 = (5.583u,3.313u);
+ z11\0\9 = (5.133u,4.117u);
+ z11\0\10c1 = (4.958u,4.430u);
+ z11\0\10c2 = (4.903u,4.719u);
+ z11\0\10 = (4.818u,5.059u);
+ z11\0\11c1 = (5.623u,5.066u);
+ z11\0\11c2 = (6.917u,4.978u);
+ z11\0\11 = (7.324u,5.848u);
+ z11\0\12c1 = (7.455u,6.129u);
+ z11\0\12c2 = (7.443u,6.445u);
+ z11\0\12 = (7.468u,6.745u);
+ z11\0\13c1 = (6.583u,6.745u);
+ z11\0\13c2 = (3.340u,6.902u);
+ z11\0\13 = (2.753u,6.499u);
+ z11\0\14c1 = (2.324u,6.204u);
+ z11\0\14c2 = (2.271u,5.765u);
+ z11\1\0s = (2.410u,2.778u);
+ z11\1\0c1 = (5.400u,2.992u);
+ z11\1\0c2 = (4.753u,0.468u);
+ z11\1\0 = (3.128u,0.114u);
+ z11\1\1c1 = (1.725u,-0.192u);
+ z11\1\1c2 = (0.323u,1.440u);
+ z11\1\1 = (1.722u,2.472u);
+ z11\1\2c1 = (1.952u,2.642u);
+ z11\1\2c2 = (2.155u,2.678u);
+ fill_or_unfill z11\0\0s
+ ..controls z11\0\0c1 and z11\0\0c2..z11\0\0
+ ..controls z11\0\1c1 and z11\0\1c2..z11\0\1
+ ..controls z11\0\2c1 and z11\0\2c2..z11\0\2
+ ..controls z11\0\3c1 and z11\0\3c2..z11\0\3
+ ..controls z11\0\4c1 and z11\0\4c2..z11\0\4
+ --z11\0\5
+ --z11\0\6
+ ..controls z11\0\7c1 and z11\0\7c2..z11\0\7
+ ..controls z11\0\8c1 and z11\0\8c2..z11\0\8
+ ..controls z11\0\9c1 and z11\0\9c2..z11\0\9
+ ..controls z11\0\10c1 and z11\0\10c2..z11\0\10
+ ..controls z11\0\11c1 and z11\0\11c2..z11\0\11
+ ..controls z11\0\12c1 and z11\0\12c2..z11\0\12
+ ..controls z11\0\13c1 and z11\0\13c2..z11\0\13
+ ..controls z11\0\14c1 and z11\0\14c2..cycle;
+ fill_or_unfill z11\1\0s
+ ..controls z11\1\0c1 and z11\1\0c2..z11\1\0
+ ..controls z11\1\1c1 and z11\1\1c2..z11\1\1
+ ..controls z11\1\2c1 and z11\1\2c2..cycle;
+ proof_labels (
+ 11\0\0,
+ 11\0\1,
+ 11\0\2,
+ 11\0\3,
+ 11\0\4,
+ 11\0\5,
+ 11\0\6,
+ 11\0\7,
+ 11\0\8,
+ 11\0\9,
+ 11\0\10,
+ 11\0\11,
+ 11\0\12,
+ 11\0\13,
+ 11\0\14,
+ 11\1\0,
+ 11\1\1,
+ 11\1\2,
+);
+endchar;
+
+beginchar (112, 9.877u#, 6.745u#, 2.409u#);
+ "pa";
+ z12\0\0s = (2.168u,5.059u);
+ z12\0\0c1 = (1.820u,4.430u);
+ z12\0\0c2 = (1.508u,3.809u);
+ z12\0\0 = (1.262u,3.132u);
+ z12\0\1 = (0.482u,0.723u);
+ z12\0\2c1 = (2.404u,0.723u);
+ z12\0\2c2 = (4.766u,0.926u);
+ z12\0\2 = (6.402u,-0.273u);
+ z12\0\3c1 = (7.224u,-0.875u);
+ z12\0\3c2 = (7.762u,-1.673u);
+ z12\0\3 = (8.690u,-2.168u);
+ z12\0\4 = (8.690u,1.927u);
+ z12\0\5c1 = (8.672u,2.706u);
+ z12\0\5c2 = (8.600u,3.568u);
+ z12\0\5 = (8.690u,4.336u);
+ z12\0\6 = (9.395u,6.745u);
+ z12\0\7c1 = (8.846u,6.745u);
+ z12\0\7c2 = (7.597u,6.856u);
+ z12\0\7 = (7.244u,6.369u);
+ z12\0\8c1 = (6.896u,5.889u);
+ z12\0\8c2 = (7.427u,5.260u);
+ z12\0\8 = (7.577u,4.797u);
+ z12\0\9 = (7.716u,4.094u);
+ z12\0\10 = (7.968u,1.927u);
+ z12\0\11c1 = (8.129u,0.736u);
+ z12\0\11c2 = (8.241u,0.491u);
+ z12\0\11 = (7.968u,-0.723u);
+ z12\0\12c1 = (7.625u,-0.247u);
+ z12\0\12c2 = (7.314u,0.238u);
+ z12\0\12 = (6.908u,0.650u);
+ z12\0\13c1 = (6.145u,1.422u);
+ z12\0\13c2 = (4.693u,2.195u);
+ z12\0\13 = (3.613u,2.384u);
+ z12\0\14 = (1.686u,2.384u);
+ z12\0\15c1 = (2.112u,3.658u);
+ z12\0\15c2 = (3.034u,4.764u);
+ z12\0\15 = (4.335u,5.163u);
+ z12\0\16c1 = (4.714u,5.280u);
+ z12\0\16c2 = (5.298u,5.285u);
+ z12\0\16 = (5.604u,5.538u);
+ z12\0\17c1 = (5.969u,5.840u);
+ z12\0\17c2 = (5.971u,6.317u);
+ z12\0\17 = (6.022u,6.745u);
+ z12\0\18c1 = (5.238u,6.745u);
+ z12\0\18c2 = (2.813u,6.844u);
+ z12\0\18 = (2.223u,6.567u);
+ z12\0\19c1 = (1.964u,6.447u);
+ z12\0\19c2 = (1.745u,6.263u);
+ z12\0\19 = (1.658u,5.981u);
+ z12\0\20c1 = (1.501u,5.476u);
+ z12\0\20c2 = (1.822u,5.297u);
+ fill_or_unfill z12\0\0s
+ ..controls z12\0\0c1 and z12\0\0c2..z12\0\0
+ --z12\0\1
+ ..controls z12\0\2c1 and z12\0\2c2..z12\0\2
+ ..controls z12\0\3c1 and z12\0\3c2..z12\0\3
+ --z12\0\4
+ ..controls z12\0\5c1 and z12\0\5c2..z12\0\5
+ --z12\0\6
+ ..controls z12\0\7c1 and z12\0\7c2..z12\0\7
+ ..controls z12\0\8c1 and z12\0\8c2..z12\0\8
+ --z12\0\9
+ --z12\0\10
+ ..controls z12\0\11c1 and z12\0\11c2..z12\0\11
+ ..controls z12\0\12c1 and z12\0\12c2..z12\0\12
+ ..controls z12\0\13c1 and z12\0\13c2..z12\0\13
+ --z12\0\14
+ ..controls z12\0\15c1 and z12\0\15c2..z12\0\15
+ ..controls z12\0\16c1 and z12\0\16c2..z12\0\16
+ ..controls z12\0\17c1 and z12\0\17c2..z12\0\17
+ ..controls z12\0\18c1 and z12\0\18c2..z12\0\18
+ ..controls z12\0\19c1 and z12\0\19c2..z12\0\19
+ ..controls z12\0\20c1 and z12\0\20c2..cycle;
+ proof_labels (
+ 12\0\0,
+ 12\0\1,
+ 12\0\2,
+ 12\0\3,
+ 12\0\4,
+ 12\0\5,
+ 12\0\6,
+ 12\0\7,
+ 12\0\8,
+ 12\0\9,
+ 12\0\10,
+ 12\0\11,
+ 12\0\12,
+ 12\0\13,
+ 12\0\14,
+ 12\0\15,
+ 12\0\16,
+ 12\0\17,
+ 12\0\18,
+ 12\0\19,
+ 12\0\20,
+);
+endchar;
+
+beginchar (133, 9.877u#, 6.745u#, 2.409u#); % 85
+ "pha";
+ z13\0\0s = (0.723u,5.541u);
+ z13\0\0 = (1.927u,5.300u);
+ z13\0\1 = (1.670u,4.336u);
+ z13\0\2c1 = (1.359u,3.565u);
+ z13\0\2c2 = (0.121u,1.657u);
+ z13\0\2 = (0.732u,0.870u);
+ z13\0\3c1 = (0.869u,0.693u);
+ z13\0\3c2 = (1.027u,0.637u);
+ z13\0\3 = (1.239u,0.629u);
+ z13\0\4 = (2.650u,0.629u);
+ z13\0\5c1 = (3.493u,0.635u);
+ z13\0\5c2 = (5.010u,0.339u);
+ z13\0\5 = (5.782u,0.011u);
+ z13\0\6c1 = (6.285u,-0.203u);
+ z13\0\6c2 = (6.764u,-0.488u);
+ z13\0\6 = (7.177u,-0.849u);
+ z13\0\7c1 = (7.723u,-1.325u);
+ z13\0\7c2 = (8.026u,-1.799u);
+ z13\0\7 = (8.687u,-2.168u);
+ z13\0\8 = (8.687u,1.445u);
+ z13\0\9 = (8.687u,3.613u);
+ z13\0\10c1 = (8.810u,4.324u);
+ z13\0\10c2 = (9.385u,5.376u);
+ z13\0\10 = (9.289u,5.987u);
+ z13\0\11c1 = (9.210u,6.487u);
+ z13\0\11c2 = (8.875u,6.640u);
+ z13\0\11 = (8.418u,6.689u);
+ z13\0\12c1 = (8.186u,6.744u);
+ z13\0\12c2 = (7.728u,6.734u);
+ z13\0\12 = (7.503u,6.689u);
+ z13\0\13c1 = (6.492u,6.376u);
+ z13\0\13c2 = (7.061u,5.548u);
+ z13\0\13 = (6.733u,4.859u);
+ z13\0\14c1 = (6.461u,4.288u);
+ z13\0\14c2 = (3.985u,2.297u);
+ z13\0\14 = (3.372u,2.195u);
+ z13\0\15c1 = (2.858u,2.109u);
+ z13\0\15c2 = (2.001u,2.359u);
+ z13\0\15 = (1.445u,2.409u);
+ z13\0\16c1 = (1.904u,3.415u);
+ z13\0\16c2 = (2.418u,4.264u);
+ z13\0\16 = (3.373u,4.882u);
+ z13\0\17c1 = (3.806u,5.162u);
+ z13\0\17c2 = (5.011u,5.408u);
+ z13\0\17 = (5.011u,6.022u);
+ z13\0\18c1 = (5.011u,7.072u);
+ z13\0\18c2 = (2.064u,6.802u);
+ z13\0\18 = (1.478u,6.462u);
+ z13\0\19c1 = (1.060u,6.220u);
+ z13\0\19c2 = (0.937u,5.941u);
+ z13\1\0s = (7.709u,4.336u);
+ z13\1\0c1 = (7.980u,2.825u);
+ z13\1\0c2 = (8.376u,1.263u);
+ z13\1\0 = (7.950u,-0.241u);
+ z13\1\1c1 = (6.784u,0.436u);
+ z13\1\1c2 = (5.895u,1.298u);
+ z13\1\1 = (4.577u,1.686u);
+ z13\1\2c1 = (4.652u,1.910u);
+ z13\1\2c2 = (4.675u,2.081u);
+ z13\1\2 = (4.813u,2.288u);
+ z13\1\3c1 = (5.322u,3.053u);
+ z13\1\3c2 = (6.855u,4.002u);
+ fill_or_unfill z13\0\0s
+ --z13\0\0
+ --z13\0\1
+ ..controls z13\0\2c1 and z13\0\2c2..z13\0\2
+ ..controls z13\0\3c1 and z13\0\3c2..z13\0\3
+ --z13\0\4
+ ..controls z13\0\5c1 and z13\0\5c2..z13\0\5
+ ..controls z13\0\6c1 and z13\0\6c2..z13\0\6
+ ..controls z13\0\7c1 and z13\0\7c2..z13\0\7
+ --z13\0\8
+ --z13\0\9
+ ..controls z13\0\10c1 and z13\0\10c2..z13\0\10
+ ..controls z13\0\11c1 and z13\0\11c2..z13\0\11
+ ..controls z13\0\12c1 and z13\0\12c2..z13\0\12
+ ..controls z13\0\13c1 and z13\0\13c2..z13\0\13
+ ..controls z13\0\14c1 and z13\0\14c2..z13\0\14
+ ..controls z13\0\15c1 and z13\0\15c2..z13\0\15
+ ..controls z13\0\16c1 and z13\0\16c2..z13\0\16
+ ..controls z13\0\17c1 and z13\0\17c2..z13\0\17
+ ..controls z13\0\18c1 and z13\0\18c2..z13\0\18
+ ..controls z13\0\19c1 and z13\0\19c2..cycle;
+ fill_or_unfill z13\1\0s
+ ..controls z13\1\0c1 and z13\1\0c2..z13\1\0
+ ..controls z13\1\1c1 and z13\1\1c2..z13\1\1
+ ..controls z13\1\2c1 and z13\1\2c2..z13\1\2
+ ..controls z13\1\3c1 and z13\1\3c2..cycle;
+ proof_labels (
+ 13\0\0,
+ 13\0\1,
+ 13\0\2,
+ 13\0\3,
+ 13\0\4,
+ 13\0\5,
+ 13\0\6,
+ 13\0\7,
+ 13\0\8,
+ 13\0\9,
+ 13\0\10,
+ 13\0\11,
+ 13\0\12,
+ 13\0\13,
+ 13\0\14,
+ 13\0\15,
+ 13\0\16,
+ 13\0\17,
+ 13\0\18,
+ 13\0\19,
+ 13\1\0,
+ 13\1\1,
+ 13\1\2,
+ 13\1\3,
+);
+endchar;
+
+beginchar (98, 9.395u#, 6.745u#, 2.650u#);
+ "ba";
+ z14\0\0s = (0.482u,0.482u);
+ z14\0\0 = (2.650u,0.700u);
+ z14\0\1c1 = (3.986u,0.776u);
+ z14\0\1c2 = (5.479u,0.355u);
+ z14\0\1 = (6.494u,-0.535u);
+ z14\0\2c1 = (7.211u,-1.164u);
+ z14\0\2c2 = (7.587u,-1.924u);
+ z14\0\2 = (8.452u,-2.409u);
+ z14\0\3c1 = (8.431u,-0.828u);
+ z14\0\3c2 = (8.322u,0.838u);
+ z14\0\3 = (8.452u,2.409u);
+ z14\0\4 = (8.712u,4.577u);
+ z14\0\5 = (8.838u,5.768u);
+ z14\0\6c1 = (8.824u,5.985u);
+ z14\0\6c2 = (8.799u,6.180u);
+ z14\0\6 = (8.663u,6.360u);
+ z14\0\7c1 = (8.328u,6.806u);
+ z14\0\7c2 = (7.485u,6.742u);
+ z14\0\7 = (6.986u,6.745u);
+ z14\0\8c1 = (6.187u,6.750u);
+ z14\0\8c2 = (3.229u,6.830u);
+ z14\0\8 = (2.664u,6.601u);
+ z14\0\9c1 = (2.345u,6.472u);
+ z14\0\9c2 = (2.114u,6.299u);
+ z14\0\9 = (1.954u,5.987u);
+ z14\0\10c1 = (1.759u,5.610u);
+ z14\0\10c2 = (1.843u,5.218u);
+ z14\0\10 = (1.812u,4.818u);
+ z14\0\11c1 = (1.783u,4.435u);
+ z14\0\11c2 = (1.733u,4.215u);
+ z14\0\11 = (1.599u,3.854u);
+ z14\0\12c1 = (1.117u,2.557u);
+ z14\0\12c2 = (0.583u,1.952u);
+ z14\1\0s = (7.709u,0.000u);
+ z14\1\0c1 = (5.539u,1.447u);
+ z14\1\0c2 = (4.406u,2.427u);
+ z14\1\0 = (1.686u,2.650u);
+ z14\1\1c1 = (2.348u,4.578u);
+ z14\1\1c2 = (3.806u,5.370u);
+ z14\1\1 = (5.780u,5.295u);
+ z14\1\2c1 = (6.339u,5.274u);
+ z14\1\2c2 = (6.798u,5.264u);
+ z14\1\2 = (7.124u,4.742u);
+ z14\1\3c1 = (7.740u,3.754u);
+ z14\1\3c2 = (7.709u,1.182u);
+ fill_or_unfill z14\0\0s
+ --z14\0\0
+ ..controls z14\0\1c1 and z14\0\1c2..z14\0\1
+ ..controls z14\0\2c1 and z14\0\2c2..z14\0\2
+ ..controls z14\0\3c1 and z14\0\3c2..z14\0\3
+ --z14\0\4
+ --z14\0\5
+ ..controls z14\0\6c1 and z14\0\6c2..z14\0\6
+ ..controls z14\0\7c1 and z14\0\7c2..z14\0\7
+ ..controls z14\0\8c1 and z14\0\8c2..z14\0\8
+ ..controls z14\0\9c1 and z14\0\9c2..z14\0\9
+ ..controls z14\0\10c1 and z14\0\10c2..z14\0\10
+ ..controls z14\0\11c1 and z14\0\11c2..z14\0\11
+ ..controls z14\0\12c1 and z14\0\12c2..cycle;
+ fill_or_unfill z14\1\0s
+ ..controls z14\1\0c1 and z14\1\0c2..z14\1\0
+ ..controls z14\1\1c1 and z14\1\1c2..z14\1\1
+ ..controls z14\1\2c1 and z14\1\2c2..z14\1\2
+ ..controls z14\1\3c1 and z14\1\3c2..cycle;
+ proof_labels (
+ 14\0\0,
+ 14\0\1,
+ 14\0\2,
+ 14\0\3,
+ 14\0\4,
+ 14\0\5,
+ 14\0\6,
+ 14\0\7,
+ 14\0\8,
+ 14\0\9,
+ 14\0\10,
+ 14\0\11,
+ 14\0\12,
+ 14\1\0,
+ 14\1\1,
+ 14\1\2,
+ 14\1\3,
+);
+endchar;
+
+beginchar (109, 10.359u#, 6.745u#, 1.445u#); % 88
+ "ma";
+ z15\0\0s = (3.132u,4.095u);
+ z15\0\0c1 = (1.972u,3.817u);
+ z15\0\0c2 = (1.378u,3.592u);
+ z15\0\0 = (0.919u,2.405u);
+ z15\0\1c1 = (-0.203u,-0.492u);
+ z15\0\1c2 = (3.146u,-1.655u);
+ z15\0\1 = (4.227u,0.267u);
+ z15\0\2c1 = (4.521u,0.789u);
+ z15\0\2c2 = (4.545u,1.346u);
+ z15\0\2 = (4.577u,1.927u);
+ z15\0\3c1 = (5.696u,1.536u);
+ z15\0\3c2 = (6.746u,1.068u);
+ z15\0\3 = (7.665u,0.299u);
+ z15\0\4c1 = (8.293u,-0.226u);
+ z15\0\4c2 = (8.662u,-0.798u);
+ z15\0\4 = (9.406u,-1.204u);
+ z15\0\5 = (9.406u,3.132u);
+ z15\0\6 = (9.736u,5.536u);
+ z15\0\7c1 = (9.773u,5.751u);
+ z15\0\7c2 = (9.794u,5.981u);
+ z15\0\7 = (9.736u,6.188u);
+ z15\0\8c1 = (9.519u,6.670u);
+ z15\0\8c2 = (8.923u,6.776u);
+ z15\0\8 = (8.466u,6.666u);
+ z15\0\9c1 = (8.138u,6.587u);
+ z15\0\9c2 = (7.894u,6.422u);
+ z15\0\9 = (7.897u,6.056u);
+ z15\0\10 = (8.447u,4.574u);
+ z15\0\11c1 = (8.607u,4.019u);
+ z15\0\11c2 = (8.641u,3.459u);
+ z15\0\11 = (8.709u,2.891u);
+ z15\0\12 = (8.913u,0.964u);
+ z15\0\13c1 = (8.474u,1.199u);
+ z15\0\13c2 = (8.098u,1.420u);
+ z15\0\13 = (7.709u,1.739u);
+ z15\0\14 = (6.263u,2.964u);
+ z15\0\15 = (4.829u,3.672u);
+ z15\0\16c1 = (4.430u,3.873u);
+ z15\0\16c2 = (3.816u,4.199u);
+ z15\0\16 = (4.000u,4.756u);
+ z15\0\17c1 = (4.256u,5.533u);
+ z15\0\17c2 = (5.750u,5.267u);
+ z15\0\17 = (6.258u,5.922u);
+ z15\0\18c1 = (6.454u,6.174u);
+ z15\0\18c2 = (6.452u,6.451u);
+ z15\0\18 = (6.504u,6.745u);
+ z15\0\19c1 = (5.680u,6.745u);
+ z15\0\19c2 = (2.558u,6.853u);
+ z15\0\19 = (1.999u,6.568u);
+ z15\0\20c1 = (1.695u,6.413u);
+ z15\0\20c2 = (1.517u,6.167u);
+ z15\0\20 = (1.622u,5.818u);
+ z15\0\21c1 = (1.740u,5.424u);
+ z15\0\21c2 = (2.316u,5.052u);
+ z15\0\21 = (2.600u,4.757u);
+ z15\1\0s = (2.650u,2.469u);
+ z15\1\0 = (3.118u,2.469u);
+ z15\1\1c1 = (4.569u,1.858u);
+ z15\1\1c2 = (4.121u,-0.001u);
+ z15\1\1 = (2.651u,0.009u);
+ z15\1\2c1 = (1.478u,0.017u);
+ z15\1\2c2 = (0.952u,1.501u);
+ z15\1\2 = (1.966u,2.228u);
+ z15\1\3c1 = (2.207u,2.401u);
+ z15\1\3c2 = (2.385u,2.407u);
+ fill_or_unfill z15\0\0s
+ ..controls z15\0\0c1 and z15\0\0c2..z15\0\0
+ ..controls z15\0\1c1 and z15\0\1c2..z15\0\1
+ ..controls z15\0\2c1 and z15\0\2c2..z15\0\2
+ ..controls z15\0\3c1 and z15\0\3c2..z15\0\3
+ ..controls z15\0\4c1 and z15\0\4c2..z15\0\4
+ --z15\0\5
+ --z15\0\6
+ ..controls z15\0\7c1 and z15\0\7c2..z15\0\7
+ ..controls z15\0\8c1 and z15\0\8c2..z15\0\8
+ ..controls z15\0\9c1 and z15\0\9c2..z15\0\9
+ --z15\0\10
+ ..controls z15\0\11c1 and z15\0\11c2..z15\0\11
+ --z15\0\12
+ ..controls z15\0\13c1 and z15\0\13c2..z15\0\13
+ --z15\0\14
+ --z15\0\15
+ ..controls z15\0\16c1 and z15\0\16c2..z15\0\16
+ ..controls z15\0\17c1 and z15\0\17c2..z15\0\17
+ ..controls z15\0\18c1 and z15\0\18c2..z15\0\18
+ ..controls z15\0\19c1 and z15\0\19c2..z15\0\19
+ ..controls z15\0\20c1 and z15\0\20c2..z15\0\20
+ ..controls z15\0\21c1 and z15\0\21c2..z15\0\21
+ --cycle;
+ fill_or_unfill z15\1\0s
+ --z15\1\0
+ ..controls z15\1\1c1 and z15\1\1c2..z15\1\1
+ ..controls z15\1\2c1 and z15\1\2c2..z15\1\2
+ ..controls z15\1\3c1 and z15\1\3c2..cycle;
+ proof_labels (
+ 15\0\0,
+ 15\0\1,
+ 15\0\2,
+ 15\0\3,
+ 15\0\4,
+ 15\0\5,
+ 15\0\6,
+ 15\0\7,
+ 15\0\8,
+ 15\0\9,
+ 15\0\10,
+ 15\0\11,
+ 15\0\12,
+ 15\0\13,
+ 15\0\14,
+ 15\0\15,
+ 15\0\16,
+ 15\0\17,
+ 15\0\18,
+ 15\0\19,
+ 15\0\20,
+ 15\0\21,
+ 15\0\22,
+ 15\1\0,
+ 15\1\1,
+ 15\1\2,
+ 15\1\3,
+);
+endchar;
+
+beginchar (134, 9.877u#, 9.154u#, 1.445u#);
+ "tsa";
+ z16\0\0s = (6.986u,6.707u);
+ z16\0\0c1 = (6.212u,6.745u);
+ z16\0\0c2 = (3.197u,6.815u);
+ z16\0\0 = (2.664u,6.707u);
+ z16\0\1c1 = (2.429u,6.605u);
+ z16\0\1c2 = (2.248u,6.536u);
+ z16\0\1 = (2.071u,6.360u);
+ z16\0\2c1 = (1.766u,6.056u);
+ z16\0\2c2 = (1.752u,5.694u);
+ z16\0\2 = (1.686u,5.300u);
+ z16\0\3 = (4.818u,5.300u);
+ z16\0\4 = (4.676u,4.581u);
+ z16\0\5c1 = (4.329u,3.691u);
+ z16\0\5c2 = (3.346u,3.046u);
+ z16\0\5 = (2.409u,2.963u);
+ z16\0\6c1 = (1.794u,2.908u);
+ z16\0\6c2 = (1.102u,3.082u);
+ z16\0\6 = (0.482u,3.132u);
+ z16\0\7 = (1.316u,1.677u);
+ z16\0\8c1 = (1.688u,0.920u);
+ z16\0\8c2 = (1.830u,0.020u);
+ z16\0\8 = (2.503u,-0.554u);
+ z16\0\9c1 = (3.068u,-1.036u);
+ z16\0\9c2 = (3.859u,-1.163u);
+ z16\0\9 = (4.577u,-1.195u);
+ z16\0\10c1 = (5.881u,-1.252u);
+ z16\0\10c2 = (6.911u,-1.102u);
+ z16\0\10 = (7.466u,0.244u);
+ z16\0\11c1 = (7.620u,0.618u);
+ z16\0\11c2 = (7.694u,1.043u);
+ z16\0\11 = (7.644u,1.445u);
+ z16\0\12c1 = (7.501u,2.598u);
+ z16\0\12c2 = (6.501u,3.235u);
+ z16\0\12 = (5.857u,4.095u);
+ z16\0\13c1 = (5.550u,4.504u);
+ z16\0\13c2 = (5.440u,4.823u);
+ z16\0\13 = (5.300u,5.300u);
+ z16\0\14c1 = (7.211u,5.306u);
+ z16\0\14c2 = (8.147u,5.278u);
+ z16\0\14 = (7.227u,7.468u);
+ z16\0\15c1 = (7.867u,7.637u);
+ z16\0\15c2 = (8.937u,7.857u);
+ z16\0\15 = (9.253u,8.503u);
+ z16\0\16c1 = (9.359u,8.719u);
+ z16\0\16c2 = (9.355u,8.927u);
+ z16\0\16 = (9.395u,9.154u);
+ z16\0\17c1 = (7.372u,9.128u);
+ z16\0\17c2 = (7.012u,8.768u);
+ z16\1\0s = (2.409u,2.650u);
+ z16\1\0c1 = (2.941u,2.704u);
+ z16\1\0c2 = (3.835u,2.989u);
+ z16\1\0 = (4.315u,2.898u);
+ z16\1\1c1 = (4.834u,2.799u);
+ z16\1\1c2 = (5.205u,2.347u);
+ z16\1\1 = (5.560u,1.991u);
+ z16\1\2c1 = (5.925u,1.624u);
+ z16\1\2c2 = (6.585u,1.000u);
+ z16\1\2 = (6.685u,0.483u);
+ z16\1\3c1 = (6.897u,-0.608u);
+ z16\1\3c2 = (4.895u,-1.853u);
+ z16\1\3 = (3.374u,0.724u);
+ fill_or_unfill z16\0\0s
+ ..controls z16\0\0c1 and z16\0\0c2..z16\0\0
+ ..controls z16\0\1c1 and z16\0\1c2..z16\0\1
+ ..controls z16\0\2c1 and z16\0\2c2..z16\0\2
+ --z16\0\3
+ --z16\0\4
+ ..controls z16\0\5c1 and z16\0\5c2..z16\0\5
+ ..controls z16\0\6c1 and z16\0\6c2..z16\0\6
+ --z16\0\7
+ ..controls z16\0\8c1 and z16\0\8c2..z16\0\8
+ ..controls z16\0\9c1 and z16\0\9c2..z16\0\9
+ ..controls z16\0\10c1 and z16\0\10c2..z16\0\10
+ ..controls z16\0\11c1 and z16\0\11c2..z16\0\11
+ ..controls z16\0\12c1 and z16\0\12c2..z16\0\12
+ ..controls z16\0\13c1 and z16\0\13c2..z16\0\13
+ ..controls z16\0\14c1 and z16\0\14c2..z16\0\14
+ ..controls z16\0\15c1 and z16\0\15c2..z16\0\15
+ ..controls z16\0\16c1 and z16\0\16c2..z16\0\16
+ ..controls z16\0\17c1 and z16\0\17c2..cycle;
+ fill_or_unfill z16\1\0s
+ ..controls z16\1\0c1 and z16\1\0c2..z16\1\0
+ ..controls z16\1\1c1 and z16\1\1c2..z16\1\1
+ ..controls z16\1\2c1 and z16\1\2c2..z16\1\2
+ ..controls z16\1\3c1 and z16\1\3c2..z16\1\3
+ --cycle;
+ proof_labels (
+ 16\0\0,
+ 16\0\1,
+ 16\0\2,
+ 16\0\3,
+ 16\0\4,
+ 16\0\5,
+ 16\0\6,
+ 16\0\7,
+ 16\0\8,
+ 16\0\9,
+ 16\0\10,
+ 16\0\11,
+ 16\0\12,
+ 16\0\13,
+ 16\0\14,
+ 16\0\15,
+ 16\0\16,
+ 16\0\17,
+ 16\1\0,
+ 16\1\1,
+ 16\1\2,
+ 16\1\3,
+ 16\1\4,
+);
+endchar;
+
+beginchar (135, 10.600u#, 9.154u#, 1.927u#);
+ "tsha";
+ z17\0\0s = (7.262u,6.745u);
+ z17\0\0c1 = (6.289u,6.745u);
+ z17\0\0c2 = (3.413u,6.977u);
+ z17\0\0 = (2.794u,6.360u);
+ z17\0\1c1 = (2.489u,6.056u);
+ z17\0\1c2 = (2.475u,5.694u);
+ z17\0\1 = (2.409u,5.300u);
+ z17\0\2c1 = (4.039u,5.279u);
+ z17\0\2c2 = (4.673u,5.157u);
+ z17\0\2 = (4.818u,3.372u);
+ z17\0\3c1 = (-0.471u,3.114u);
+ z17\0\3c2 = (-0.341u,-1.388u);
+ z17\0\3 = (2.410u,-1.660u);
+ z17\0\4c1 = (3.597u,-1.777u);
+ z17\0\4c2 = (4.255u,-1.534u);
+ z17\0\4 = (4.818u,-0.482u);
+ z17\0\5 = (5.300u,-0.482u);
+ z17\0\6c1 = (5.950u,-1.747u);
+ z17\0\6c2 = (6.623u,-1.736u);
+ z17\0\6 = (7.949u,-1.682u);
+ z17\0\7c1 = (9.340u,-1.625u);
+ z17\0\7c2 = (9.880u,-0.912u);
+ z17\0\7 = (9.830u,0.482u);
+ z17\0\8c1 = (9.810u,1.039u);
+ z17\0\8c2 = (9.642u,1.467u);
+ z17\0\8 = (9.291u,1.902u);
+ z17\0\9c1 = (7.967u,3.544u);
+ z17\0\9c2 = (5.759u,3.048u);
+ z17\0\9 = (5.340u,3.926u);
+ z17\0\10c1 = (5.244u,4.127u);
+ z17\0\10c2 = (5.250u,4.326u);
+ z17\0\10 = (5.340u,4.527u);
+ z17\0\11c1 = (5.854u,5.682u);
+ z17\0\11c2 = (8.631u,5.056u);
+ z17\0\11 = (8.454u,6.236u);
+ z17\0\12c1 = (8.405u,6.561u);
+ z17\0\12c2 = (7.704u,7.194u);
+ z17\0\12 = (7.468u,7.468u);
+ z17\0\13c1 = (8.113u,7.567u);
+ z17\0\13c2 = (9.465u,7.782u);
+ z17\0\13 = (9.872u,8.325u);
+ z17\0\14c1 = (10.065u,8.584u);
+ z17\0\14c2 = (10.065u,8.855u);
+ z17\0\14 = (10.118u,9.154u);
+ z17\0\15c1 = (9.223u,9.146u);
+ z17\0\15c2 = (7.615u,9.212u);
+ z17\0\15 = (7.262u,8.137u);
+ z17\0\16c1 = (7.207u,7.829u);
+ z17\0\16c2 = (7.228u,7.091u);
+ z17\1\0s = (5.059u,1.204u);
+ z17\1\0 = (5.300u,2.168u);
+ z17\1\1 = (7.227u,1.527u);
+ z17\1\2c1 = (7.621u,1.384u);
+ z17\1\2c2 = (8.054u,1.254u);
+ z17\1\2 = (8.396u,0.983u);
+ z17\1\3c1 = (10.889u,-0.833u);
+ z17\1\3c2 = (5.903u,-3.351u);
+ z17\1\3 = (5.300u,0.983u);
+ z17\1\4 = (4.181u,-0.643u);
+ z17\1\5c1 = (3.502u,-1.326u);
+ z17\1\5c2 = (2.273u,-1.523u);
+ z17\1\5 = (1.624u,-0.643u);
+ z17\1\6c1 = (1.433u,-0.412u);
+ z17\1\6c2 = (1.311u,-0.081u);
+ z17\1\6 = (1.334u,0.238u);
+ z17\1\7c1 = (1.410u,1.291u);
+ z17\1\7c2 = (3.589u,2.389u);
+ z17\1\7 = (4.476u,2.020u);
+ z17\1\8c1 = (4.860u,1.860u);
+ z17\1\8c2 = (4.921u,1.547u);
+ fill_or_unfill z17\0\0s
+ ..controls z17\0\0c1 and z17\0\0c2..z17\0\0
+ ..controls z17\0\1c1 and z17\0\1c2..z17\0\1
+ ..controls z17\0\2c1 and z17\0\2c2..z17\0\2
+ ..controls z17\0\3c1 and z17\0\3c2..z17\0\3
+ ..controls z17\0\4c1 and z17\0\4c2..z17\0\4
+ --z17\0\5
+ ..controls z17\0\6c1 and z17\0\6c2..z17\0\6
+ ..controls z17\0\7c1 and z17\0\7c2..z17\0\7
+ ..controls z17\0\8c1 and z17\0\8c2..z17\0\8
+ ..controls z17\0\9c1 and z17\0\9c2..z17\0\9
+ ..controls z17\0\10c1 and z17\0\10c2..z17\0\10
+ ..controls z17\0\11c1 and z17\0\11c2..z17\0\11
+ ..controls z17\0\12c1 and z17\0\12c2..z17\0\12
+ ..controls z17\0\13c1 and z17\0\13c2..z17\0\13
+ ..controls z17\0\14c1 and z17\0\14c2..z17\0\14
+ ..controls z17\0\15c1 and z17\0\15c2..z17\0\15
+ ..controls z17\0\16c1 and z17\0\16c2..cycle;
+ fill_or_unfill z17\1\0s
+ --z17\1\0
+ --z17\1\1
+ ..controls z17\1\2c1 and z17\1\2c2..z17\1\2
+ ..controls z17\1\3c1 and z17\1\3c2..z17\1\3
+ --z17\1\4
+ ..controls z17\1\5c1 and z17\1\5c2..z17\1\5
+ ..controls z17\1\6c1 and z17\1\6c2..z17\1\6
+ ..controls z17\1\7c1 and z17\1\7c2..z17\1\7
+ ..controls z17\1\8c1 and z17\1\8c2..cycle;
+ proof_labels (
+ 17\0\0,
+ 17\0\1,
+ 17\0\2,
+ 17\0\3,
+ 17\0\4,
+ 17\0\5,
+ 17\0\6,
+ 17\0\7,
+ 17\0\8,
+ 17\0\9,
+ 17\0\10,
+ 17\0\11,
+ 17\0\12,
+ 17\0\13,
+ 17\0\14,
+ 17\0\15,
+ 17\0\16,
+ 17\1\0,
+ 17\1\1,
+ 17\1\2,
+ 17\1\3,
+ 17\1\4,
+ 17\1\5,
+ 17\1\6,
+ 17\1\7,
+ 17\1\8,
+);
+endchar;
+
+beginchar (136, 8.913u#, 9.154u#, 1.204u#);
+ "dza";
+ z18\0\0s = (0.482u,6.745u);
+ z18\0\0 = (0.482u,-0.933u);
+ z18\0\1 = (1.445u,-0.933u);
+ z18\0\2 = (3.613u,-0.486u);
+ z18\0\3c1 = (4.813u,-0.449u);
+ z18\0\3c2 = (5.819u,-0.844u);
+ z18\0\3 = (6.986u,-0.964u);
+ z18\0\4c1 = (6.911u,-0.750u);
+ z18\0\4c2 = (6.895u,-0.584u);
+ z18\0\4 = (6.750u,-0.391u);
+ z18\0\5c1 = (5.739u,0.956u);
+ z18\0\5c2 = (2.713u,0.723u);
+ z18\0\5 = (1.204u,0.723u);
+ z18\0\6 = (1.204u,2.461u);
+ z18\0\7c1 = (2.042u,2.409u);
+ z18\0\7c2 = (5.427u,2.332u);
+ z18\0\7 = (5.990u,2.461u);
+ z18\0\8c1 = (6.241u,2.593u);
+ z18\0\8c2 = (6.483u,2.710u);
+ z18\0\8 = (6.572u,2.980u);
+ z18\0\9c1 = (6.896u,3.966u);
+ z18\0\9c2 = (5.077u,3.853u);
+ z18\0\9 = (4.577u,3.854u);
+ z18\0\10 = (1.204u,3.854u);
+ z18\0\11 = (1.204u,5.300u);
+ z18\0\12c1 = (2.023u,5.300u);
+ z18\0\12c2 = (5.685u,5.199u);
+ z18\0\12 = (6.188u,5.444u);
+ z18\0\13c1 = (6.440u,5.567u);
+ z18\0\13c2 = (6.598u,5.748u);
+ z18\0\13 = (6.637u,6.032u);
+ z18\0\14c1 = (6.706u,6.532u);
+ z18\0\14c2 = (6.361u,6.731u);
+ z18\0\14 = (6.022u,6.986u);
+ z18\0\15 = (6.022u,7.468u);
+ z18\0\16c1 = (6.745u,7.614u);
+ z18\0\16c2 = (7.936u,7.760u);
+ z18\0\16 = (8.290u,8.497u);
+ z18\0\17c1 = (8.394u,8.716u);
+ z18\0\17c2 = (8.392u,8.925u);
+ z18\0\17 = (8.431u,9.154u);
+ z18\0\18c1 = (4.553u,9.118u);
+ z18\0\18c2 = (6.604u,7.577u);
+ z18\0\18 = (5.024u,6.889u);
+ z18\0\19c1 = (4.480u,6.653u);
+ z18\0\19c2 = (1.292u,6.745u);
+ fill_or_unfill z18\0\0s
+ --z18\0\0
+ --z18\0\1
+ --z18\0\2
+ ..controls z18\0\3c1 and z18\0\3c2..z18\0\3
+ ..controls z18\0\4c1 and z18\0\4c2..z18\0\4
+ ..controls z18\0\5c1 and z18\0\5c2..z18\0\5
+ --z18\0\6
+ ..controls z18\0\7c1 and z18\0\7c2..z18\0\7
+ ..controls z18\0\8c1 and z18\0\8c2..z18\0\8
+ ..controls z18\0\9c1 and z18\0\9c2..z18\0\9
+ --z18\0\10
+ --z18\0\11
+ ..controls z18\0\12c1 and z18\0\12c2..z18\0\12
+ ..controls z18\0\13c1 and z18\0\13c2..z18\0\13
+ ..controls z18\0\14c1 and z18\0\14c2..z18\0\14
+ --z18\0\15
+ ..controls z18\0\16c1 and z18\0\16c2..z18\0\16
+ ..controls z18\0\17c1 and z18\0\17c2..z18\0\17
+ ..controls z18\0\18c1 and z18\0\18c2..z18\0\18
+ ..controls z18\0\19c1 and z18\0\19c2..cycle;
+ proof_labels (
+ 18\0\0,
+ 18\0\1,
+ 18\0\2,
+ 18\0\3,
+ 18\0\4,
+ 18\0\5,
+ 18\0\6,
+ 18\0\7,
+ 18\0\8,
+ 18\0\9,
+ 18\0\10,
+ 18\0\11,
+ 18\0\12,
+ 18\0\13,
+ 18\0\14,
+ 18\0\15,
+ 18\0\16,
+ 18\0\17,
+ 18\0\18,
+ 18\0\19,
+);
+endchar;
+
+beginchar (119, 11.322u#, 6.745u#, 6.263u#);
+ "wa";
+ z19\0\0s = (1.393u,0.964u);
+ z19\0\0c1 = (1.324u,1.887u);
+ z19\0\0c2 = (1.067u,2.929u);
+ z19\0\0 = (1.393u,3.845u);
+ z19\0\1c1 = (1.858u,5.565u);
+ z19\0\1c2 = (4.886u,6.061u);
+ z19\0\1 = (5.637u,4.291u);
+ z19\0\2c1 = (5.864u,3.759u);
+ z19\0\2c2 = (5.782u,1.659u);
+ z19\0\2 = (5.782u,0.964u);
+ z19\0\3c1 = (4.967u,0.926u);
+ z19\0\3c2 = (3.680u,0.897u);
+ z19\0\3 = (3.162u,0.167u);
+ z19\0\4c1 = (3.013u,-0.043u);
+ z19\0\4c2 = (2.977u,-0.250u);
+ z19\0\4 = (2.891u,-0.482u);
+ z19\0\5c1 = (3.057u,-0.673u);
+ z19\0\5c2 = (3.226u,-0.791u);
+ z19\0\5 = (3.328u,-1.040u);
+ z19\0\6c1 = (3.699u,-1.938u);
+ z19\0\6c2 = (2.514u,-3.266u);
+ z19\0\6 = (2.481u,-4.336u);
+ z19\0\7c1 = (2.470u,-4.693u);
+ z19\0\7c2 = (2.562u,-4.964u);
+ z19\0\7 = (2.650u,-5.300u);
+ z19\0\8c1 = (3.278u,-5.158u);
+ z19\0\8c2 = (3.932u,-4.919u);
+ z19\0\8 = (4.577u,-4.902u);
+ z19\0\9 = (6.022u,-5.038u);
+ z19\0\10c1 = (6.588u,-5.078u);
+ z19\0\10c2 = (7.155u,-5.047u);
+ z19\0\10 = (7.709u,-5.195u);
+ z19\0\11 = (9.154u,-5.808u);
+ z19\0\12c1 = (9.487u,-5.933u);
+ z19\0\12c2 = (9.772u,-5.971u);
+ z19\0\12 = (10.134u,-6.022u);
+ z19\0\13 = (10.134u,-2.650u);
+ z19\0\14 = (10.134u,-1.204u);
+ z19\0\15 = (10.600u,0.723u);
+ z19\0\16c1 = (10.321u,0.962u);
+ z19\0\16c2 = (10.064u,1.128u);
+ z19\0\16 = (9.891u,1.472u);
+ z19\0\17c1 = (9.290u,2.673u);
+ z19\0\17c2 = (10.551u,5.271u);
+ z19\0\17 = (10.840u,6.504u);
+ z19\0\18c1 = (9.548u,6.732u);
+ z19\0\18c2 = (9.483u,6.732u);
+ z19\0\18 = (8.190u,6.504u);
+ z19\0\19c1 = (8.216u,6.171u);
+ z19\0\19c2 = (8.225u,5.866u);
+ z19\0\19 = (8.322u,5.541u);
+ z19\0\20 = (9.119u,3.623u);
+ z19\0\21c1 = (9.286u,2.768u);
+ z19\0\21c2 = (9.161u,1.835u);
+ z19\0\21 = (9.119u,0.964u);
+ z19\0\22 = (6.022u,0.964u);
+ z19\0\23 = (6.263u,2.650u);
+ z19\0\24 = (6.263u,4.577u);
+ z19\0\25 = (6.388u,5.987u);
+ z19\0\26 = (6.249u,6.360u);
+ z19\0\27c1 = (5.954u,6.768u);
+ z19\0\27c2 = (5.265u,6.736u);
+ z19\0\27 = (4.818u,6.744u);
+ z19\0\28c1 = (3.919u,6.760u);
+ z19\0\28c2 = (2.500u,6.799u);
+ z19\0\28 = (1.740u,6.279u);
+ z19\0\29c1 = (0.579u,5.485u);
+ z19\0\29c2 = (0.482u,3.650u);
+ z19\0\29 = (0.705u,2.410u);
+ z19\0\30c1 = (0.769u,2.052u);
+ z19\0\30c2 = (0.823u,1.646u);
+ z19\0\30 = (1.027u,1.335u);
+ z19\0\31c1 = (1.155u,1.140u);
+ z19\0\31c2 = (1.277u,1.095u);
+ z19\1\0s = (9.395u,-4.818u);
+ z19\1\0c1 = (7.306u,-4.268u);
+ z19\1\0c2 = (5.603u,-3.316u);
+ z19\1\0 = (3.372u,-3.613u);
+ z19\1\1c1 = (3.534u,-2.629u);
+ z19\1\1c2 = (3.838u,-1.718u);
+ z19\1\1 = (4.622u,-1.039u);
+ z19\1\2c1 = (4.916u,-0.785u);
+ z19\1\2c2 = (5.166u,-0.652u);
+ z19\1\2 = (5.542u,-0.592u);
+ z19\1\3c1 = (6.032u,-0.433u);
+ z19\1\3c2 = (8.168u,-0.423u);
+ z19\1\3 = (8.606u,-0.592u);
+ z19\1\4c1 = (8.827u,-0.728u);
+ z19\1\4c2 = (8.946u,-0.835u);
+ z19\1\4 = (9.079u,-1.039u);
+ z19\1\5c1 = (9.528u,-1.732u);
+ z19\1\5c2 = (9.395u,-3.931u);
+ fill_or_unfill z19\0\0s
+ ..controls z19\0\0c1 and z19\0\0c2..z19\0\0
+ ..controls z19\0\1c1 and z19\0\1c2..z19\0\1
+ ..controls z19\0\2c1 and z19\0\2c2..z19\0\2
+ ..controls z19\0\3c1 and z19\0\3c2..z19\0\3
+ ..controls z19\0\4c1 and z19\0\4c2..z19\0\4
+ ..controls z19\0\5c1 and z19\0\5c2..z19\0\5
+ ..controls z19\0\6c1 and z19\0\6c2..z19\0\6
+ ..controls z19\0\7c1 and z19\0\7c2..z19\0\7
+ ..controls z19\0\8c1 and z19\0\8c2..z19\0\8
+ --z19\0\9
+ ..controls z19\0\10c1 and z19\0\10c2..z19\0\10
+ --z19\0\11
+ ..controls z19\0\12c1 and z19\0\12c2..z19\0\12
+ --z19\0\13
+ --z19\0\14
+ --z19\0\15
+ ..controls z19\0\16c1 and z19\0\16c2..z19\0\16
+ ..controls z19\0\17c1 and z19\0\17c2..z19\0\17
+ ..controls z19\0\18c1 and z19\0\18c2..z19\0\18
+ ..controls z19\0\19c1 and z19\0\19c2..z19\0\19
+ --z19\0\20
+ ..controls z19\0\21c1 and z19\0\21c2..z19\0\21
+ --z19\0\22
+ --z19\0\23
+ --z19\0\24
+ --z19\0\25
+ --z19\0\26
+ ..controls z19\0\27c1 and z19\0\27c2..z19\0\27
+ ..controls z19\0\28c1 and z19\0\28c2..z19\0\28
+ ..controls z19\0\29c1 and z19\0\29c2..z19\0\29
+ ..controls z19\0\30c1 and z19\0\30c2..z19\0\30
+ ..controls z19\0\31c1 and z19\0\31c2..cycle;
+ fill_or_unfill z19\1\0s
+ ..controls z19\1\0c1 and z19\1\0c2..z19\1\0
+ ..controls z19\1\1c1 and z19\1\1c2..z19\1\1
+ ..controls z19\1\2c1 and z19\1\2c2..z19\1\2
+ ..controls z19\1\3c1 and z19\1\3c2..z19\1\3
+ ..controls z19\1\4c1 and z19\1\4c2..z19\1\4
+ ..controls z19\1\5c1 and z19\1\5c2..cycle;
+ proof_labels (
+ 19\0\0,
+ 19\0\1,
+ 19\0\2,
+ 19\0\3,
+ 19\0\4,
+ 19\0\5,
+ 19\0\6,
+ 19\0\7,
+ 19\0\8,
+ 19\0\9,
+ 19\0\10,
+ 19\0\11,
+ 19\0\12,
+ 19\0\13,
+ 19\0\14,
+ 19\0\15,
+ 19\0\16,
+ 19\0\17,
+ 19\0\18,
+ 19\0\19,
+ 19\0\20,
+ 19\0\21,
+ 19\0\22,
+ 19\0\23,
+ 19\0\24,
+ 19\0\25,
+ 19\0\26,
+ 19\0\27,
+ 19\0\28,
+ 19\0\29,
+ 19\0\30,
+ 19\0\31,
+ 19\1\0,
+ 19\1\1,
+ 19\1\2,
+ 19\1\3,
+ 19\1\4,
+ 19\1\5,
+);
+endchar;
+
+beginchar (137, 9.154u#, 6.745u#, 6.504u#);
+ "zha";
+ z20\0\0s = (4.577u,-3.372u);
+ z20\0\0c1 = (4.196u,-2.856u);
+ z20\0\0c2 = (3.889u,-2.734u);
+ z20\0\0 = (3.369u,-2.378u);
+ z20\0\1c1 = (2.624u,-1.868u);
+ z20\0\1c2 = (2.023u,-1.309u);
+ z20\0\1 = (1.630u,-0.482u);
+ z20\0\2c1 = (1.272u,0.272u);
+ z20\0\2c2 = (1.205u,1.105u);
+ z20\0\2 = (1.206u,1.927u);
+ z20\0\3c1 = (1.209u,4.015u);
+ z20\0\3c2 = (2.120u,5.430u);
+ z20\0\3 = (4.336u,5.531u);
+ z20\0\4c1 = (5.188u,5.570u);
+ z20\0\4c2 = (7.023u,5.488u);
+ z20\0\4 = (7.372u,4.524u);
+ z20\0\5c1 = (7.514u,4.130u);
+ z20\0\5c2 = (7.337u,3.744u);
+ z20\0\5 = (7.227u,3.372u);
+ z20\0\6c1 = (6.656u,3.690u);
+ z20\0\6c2 = (6.193u,3.981u);
+ z20\0\6 = (5.541u,4.120u);
+ z20\0\7c1 = (1.805u,4.915u);
+ z20\0\7c2 = (2.068u,-0.962u);
+ z20\0\7 = (6.745u,1.204u);
+ z20\0\8c1 = (7.150u,0.134u);
+ z20\0\8c2 = (7.474u,-1.032u);
+ z20\0\8 = (7.693u,-2.168u);
+ z20\0\9 = (7.693u,-3.854u);
+ z20\0\10 = (7.950u,-6.263u);
+ z20\0\11 = (8.652u,-6.263u);
+ z20\0\12 = (8.652u,-4.577u);
+ z20\0\13 = (8.411u,-2.409u);
+ z20\0\14 = (8.411u,-0.241u);
+ z20\0\15 = (7.954u,1.686u);
+ z20\0\16c1 = (7.913u,2.294u);
+ z20\0\16c2 = (8.159u,2.588u);
+ z20\0\16 = (8.302u,3.132u);
+ z20\0\17c1 = (8.519u,3.955u);
+ z20\0\17c2 = (8.448u,5.386u);
+ z20\0\17 = (7.889u,6.070u);
+ z20\0\18c1 = (7.174u,6.948u);
+ z20\0\18c2 = (5.602u,6.750u);
+ z20\0\18 = (4.577u,6.745u);
+ z20\0\19c1 = (3.816u,6.741u);
+ z20\0\19c2 = (3.094u,6.779u);
+ z20\0\19 = (2.434u,6.326u);
+ z20\0\20c1 = (1.325u,5.567u);
+ z20\0\20c2 = (1.015u,4.120u);
+ z20\0\20 = (0.771u,2.891u);
+ z20\0\21c1 = (0.677u,2.420u);
+ z20\0\21c2 = (0.557u,1.928u);
+ z20\0\21 = (0.566u,1.445u);
+ z20\0\22c1 = (0.576u,0.947u);
+ z20\0\22c2 = (0.729u,0.475u);
+ z20\0\22 = (0.862u,0.000u);
+ z20\0\23c1 = (1.179u,-1.129u);
+ z20\0\23c2 = (1.421u,-2.024u);
+ z20\0\23 = (2.419u,-2.768u);
+ z20\0\24c1 = (3.127u,-3.295u);
+ z20\0\24c2 = (3.737u,-3.331u);
+ z20\1\0s = (4.342u,2.898u);
+ z20\1\0c1 = (4.613u,2.954u);
+ z20\1\0c2 = (4.784u,2.976u);
+ z20\1\0 = (5.054u,2.898u);
+ z20\1\1c1 = (6.195u,2.469u);
+ z20\1\1c2 = (6.540u,1.250u);
+ z20\1\1 = (5.054u,1.124u);
+ z20\1\2c1 = (4.047u,1.040u);
+ z20\1\2c2 = (2.738u,2.011u);
+ z20\1\2 = (3.900u,2.898u);
+ fill_or_unfill z20\0\0s
+ ..controls z20\0\0c1 and z20\0\0c2..z20\0\0
+ ..controls z20\0\1c1 and z20\0\1c2..z20\0\1
+ ..controls z20\0\2c1 and z20\0\2c2..z20\0\2
+ ..controls z20\0\3c1 and z20\0\3c2..z20\0\3
+ ..controls z20\0\4c1 and z20\0\4c2..z20\0\4
+ ..controls z20\0\5c1 and z20\0\5c2..z20\0\5
+ ..controls z20\0\6c1 and z20\0\6c2..z20\0\6
+ ..controls z20\0\7c1 and z20\0\7c2..z20\0\7
+ ..controls z20\0\8c1 and z20\0\8c2..z20\0\8
+ --z20\0\9
+ --z20\0\10
+ --z20\0\11
+ --z20\0\12
+ --z20\0\13
+ --z20\0\14
+ --z20\0\15
+ ..controls z20\0\16c1 and z20\0\16c2..z20\0\16
+ ..controls z20\0\17c1 and z20\0\17c2..z20\0\17
+ ..controls z20\0\18c1 and z20\0\18c2..z20\0\18
+ ..controls z20\0\19c1 and z20\0\19c2..z20\0\19
+ ..controls z20\0\20c1 and z20\0\20c2..z20\0\20
+ ..controls z20\0\21c1 and z20\0\21c2..z20\0\21
+ ..controls z20\0\22c1 and z20\0\22c2..z20\0\22
+ ..controls z20\0\23c1 and z20\0\23c2..z20\0\23
+ ..controls z20\0\24c1 and z20\0\24c2..cycle;
+ fill_or_unfill z20\1\0s
+ ..controls z20\1\0c1 and z20\1\0c2..z20\1\0
+ ..controls z20\1\1c1 and z20\1\1c2..z20\1\1
+ ..controls z20\1\2c1 and z20\1\2c2..z20\1\2
+ --cycle;
+ proof_labels (
+ 20\0\0,
+ 20\0\1,
+ 20\0\2,
+ 20\0\3,
+ 20\0\4,
+ 20\0\5,
+ 20\0\6,
+ 20\0\7,
+ 20\0\8,
+ 20\0\9,
+ 20\0\10,
+ 20\0\11,
+ 20\0\12,
+ 20\0\13,
+ 20\0\14,
+ 20\0\15,
+ 20\0\16,
+ 20\0\17,
+ 20\0\18,
+ 20\0\19,
+ 20\0\20,
+ 20\0\21,
+ 20\0\22,
+ 20\0\23,
+ 20\0\24,
+ 20\1\0,
+ 20\1\1,
+ 20\1\2,
+ 20\1\3,
+);
+endchar;
+
+beginchar (122, 8.190u#, 6.745u#, 1.445u#); % 95
+ "za";
+ z21\0\0s = (6.986u,5.300u);
+ z21\0\0 = (6.986u,3.817u);
+ z21\0\1c1 = (6.205u,3.854u);
+ z21\0\1c2 = (2.424u,3.915u);
+ z21\0\1 = (1.962u,3.817u);
+ z21\0\2c1 = (1.702u,3.702u);
+ z21\0\2c2 = (1.473u,3.589u);
+ z21\0\2 = (1.384u,3.311u);
+ z21\0\3c1 = (1.055u,2.290u);
+ z21\0\3c2 = (2.843u,2.410u);
+ z21\0\3 = (3.372u,2.409u);
+ z21\0\4 = (6.986u,2.409u);
+ z21\0\5 = (6.986u,0.723u);
+ z21\0\6 = (4.818u,1.126u);
+ z21\0\7c1 = (3.280u,1.259u);
+ z21\0\7c2 = (1.816u,0.684u);
+ z21\0\7 = (0.482u,0.000u);
+ z21\0\8c1 = (0.623u,-0.438u);
+ z21\0\8c2 = (0.700u,-0.867u);
+ z21\0\8 = (1.239u,-0.967u);
+ z21\0\9c1 = (1.675u,-1.048u);
+ z21\0\9c2 = (2.433u,-0.678u);
+ z21\0\9 = (2.891u,-0.572u);
+ z21\0\10 = (4.336u,-0.365u);
+ z21\0\11c1 = (5.482u,-0.291u);
+ z21\0\11c2 = (6.582u,-0.790u);
+ z21\0\11 = (7.708u,-0.964u);
+ z21\0\12 = (7.708u,4.818u);
+ z21\0\13c1 = (7.701u,5.335u);
+ z21\0\13c2 = (7.734u,6.147u);
+ z21\0\13 = (7.290u,6.506u);
+ z21\0\14c1 = (7.121u,6.643u);
+ z21\0\14c2 = (6.926u,6.678u);
+ z21\0\14 = (6.719u,6.657u);
+ z21\0\15c1 = (6.147u,6.809u);
+ z21\0\15c2 = (2.161u,6.798u);
+ z21\0\15 = (1.763u,6.657u);
+ z21\0\16c1 = (1.526u,6.484u);
+ z21\0\16c2 = (1.356u,6.301u);
+ z21\0\16 = (1.356u,6.022u);
+ z21\0\17c1 = (1.356u,5.164u);
+ z21\0\17c2 = (2.818u,5.301u);
+ z21\0\17 = (3.372u,5.300u);
+ fill_or_unfill z21\0\0s
+ --z21\0\0
+ ..controls z21\0\1c1 and z21\0\1c2..z21\0\1
+ ..controls z21\0\2c1 and z21\0\2c2..z21\0\2
+ ..controls z21\0\3c1 and z21\0\3c2..z21\0\3
+ --z21\0\4
+ --z21\0\5
+ --z21\0\6
+ ..controls z21\0\7c1 and z21\0\7c2..z21\0\7
+ ..controls z21\0\8c1 and z21\0\8c2..z21\0\8
+ ..controls z21\0\9c1 and z21\0\9c2..z21\0\9
+ --z21\0\10
+ ..controls z21\0\11c1 and z21\0\11c2..z21\0\11
+ --z21\0\12
+ ..controls z21\0\13c1 and z21\0\13c2..z21\0\13
+ ..controls z21\0\14c1 and z21\0\14c2..z21\0\14
+ ..controls z21\0\15c1 and z21\0\15c2..z21\0\15
+ ..controls z21\0\16c1 and z21\0\16c2..z21\0\16
+ ..controls z21\0\17c1 and z21\0\17c2..z21\0\17
+ --cycle;
+ proof_labels (
+ 21\0\0,
+ 21\0\1,
+ 21\0\2,
+ 21\0\3,
+ 21\0\4,
+ 21\0\5,
+ 21\0\6,
+ 21\0\7,
+ 21\0\8,
+ 21\0\9,
+ 21\0\10,
+ 21\0\11,
+ 21\0\12,
+ 21\0\13,
+ 21\0\14,
+ 21\0\15,
+ 21\0\16,
+ 21\0\17,
+ 21\0\18,
+);
+endchar;
+
+beginchar (39, 10.600u#, 6.745u#, 3.613u#);
+ "-a";
+ z22\0\0s = (1.724u,-0.241u);
+ z22\0\0c1 = (1.432u,1.190u);
+ z22\0\0c2 = (0.645u,3.284u);
+ z22\0\0 = (1.724u,4.542u);
+ z22\0\1c1 = (2.009u,4.821u);
+ z22\0\1c2 = (2.302u,5.025u);
+ z22\0\1 = (2.651u,5.156u);
+ z22\0\2c1 = (3.073u,5.314u);
+ z22\0\2c2 = (3.647u,5.299u);
+ z22\0\2 = (4.095u,5.299u);
+ z22\0\3c1 = (5.103u,5.301u);
+ z22\0\3c2 = (6.390u,5.326u);
+ z22\0\3 = (6.632u,4.085u);
+ z22\0\4c1 = (6.729u,3.798u);
+ z22\0\4c2 = (6.705u,3.420u);
+ z22\0\4 = (6.632u,3.145u);
+ z22\0\5c1 = (6.019u,1.630u);
+ z22\0\5c2 = (3.822u,2.587u);
+ z22\0\5 = (3.172u,1.167u);
+ z22\0\6c1 = (2.907u,0.588u);
+ z22\0\6c2 = (3.374u,0.364u);
+ z22\0\6 = (3.868u,0.390u);
+ z22\0\7 = (5.782u,0.390u);
+ z22\0\8c1 = (7.967u,0.186u);
+ z22\0\8c2 = (9.023u,-1.575u);
+ z22\0\8 = (9.877u,-3.372u);
+ z22\0\9c1 = (10.550u,-1.670u);
+ z22\0\9c2 = (9.531u,0.277u);
+ z22\0\9 = (8.187u,1.351u);
+ z22\0\10c1 = (7.739u,1.709u);
+ z22\0\10c2 = (7.262u,1.933u);
+ z22\0\10 = (6.745u,2.168u);
+ z22\0\11 = (7.097u,2.891u);
+ z22\0\12c1 = (7.317u,3.583u);
+ z22\0\12c2 = (7.381u,5.799u);
+ z22\0\12 = (6.842u,6.326u);
+ z22\0\13c1 = (6.403u,6.756u);
+ z22\0\13c2 = (5.630u,6.736u);
+ z22\0\13 = (5.059u,6.698u);
+ z22\0\14c1 = (4.364u,6.754u);
+ z22\0\14c2 = (3.569u,6.806u);
+ z22\0\14 = (2.891u,6.698u);
+ z22\0\15c1 = (0.679u,6.143u);
+ z22\0\15c2 = (0.314u,4.366u);
+ z22\0\15 = (0.523u,2.409u);
+ z22\0\16c1 = (0.583u,1.847u);
+ z22\0\16c2 = (0.837u,0.561u);
+ z22\0\16 = (1.184u,0.130u);
+ z22\0\17c1 = (1.344u,-0.068u);
+ z22\0\17c2 = (1.488u,-0.112u);
+ fill_or_unfill z22\0\0s
+ ..controls z22\0\0c1 and z22\0\0c2..z22\0\0
+ ..controls z22\0\1c1 and z22\0\1c2..z22\0\1
+ ..controls z22\0\2c1 and z22\0\2c2..z22\0\2
+ ..controls z22\0\3c1 and z22\0\3c2..z22\0\3
+ ..controls z22\0\4c1 and z22\0\4c2..z22\0\4
+ ..controls z22\0\5c1 and z22\0\5c2..z22\0\5
+ ..controls z22\0\6c1 and z22\0\6c2..z22\0\6
+ --z22\0\7
+ ..controls z22\0\8c1 and z22\0\8c2..z22\0\8
+ ..controls z22\0\9c1 and z22\0\9c2..z22\0\9
+ ..controls z22\0\10c1 and z22\0\10c2..z22\0\10
+ --z22\0\11
+ ..controls z22\0\12c1 and z22\0\12c2..z22\0\12
+ ..controls z22\0\13c1 and z22\0\13c2..z22\0\13
+ ..controls z22\0\14c1 and z22\0\14c2..z22\0\14
+ ..controls z22\0\15c1 and z22\0\15c2..z22\0\15
+ ..controls z22\0\16c1 and z22\0\16c2..z22\0\16
+ ..controls z22\0\17c1 and z22\0\17c2..cycle;
+ proof_labels (
+ 22\0\0,
+ 22\0\1,
+ 22\0\2,
+ 22\0\3,
+ 22\0\4,
+ 22\0\5,
+ 22\0\6,
+ 22\0\7,
+ 22\0\8,
+ 22\0\9,
+ 22\0\10,
+ 22\0\11,
+ 22\0\12,
+ 22\0\13,
+ 22\0\14,
+ 22\0\15,
+ 22\0\16,
+ 22\0\17,
+);
+endchar;
+
+beginchar (121, 12.045u#, 6.745u#, 2.891u#);
+ "ya";
+ z23\0\0s = (11.082u,-2.650u);
+ z23\0\0 = (11.082u,0.482u);
+ z23\0\1 = (11.322u,2.650u);
+ z23\0\2 = (11.322u,4.336u);
+ z23\0\3 = (11.563u,6.745u);
+ z23\0\4c1 = (11.069u,6.743u);
+ z23\0\4c2 = (9.965u,6.836u);
+ z23\0\4 = (9.667u,6.360u);
+ z23\0\5c1 = (9.357u,5.866u);
+ z23\0\5c2 = (10.109u,4.458u);
+ z23\0\5 = (10.247u,3.854u);
+ z23\0\6c1 = (10.522u,2.649u);
+ z23\0\6c2 = (10.599u,1.471u);
+ z23\0\6 = (10.600u,0.241u);
+ z23\0\7c1 = (9.735u,0.956u);
+ z23\0\7c2 = (9.137u,1.824u);
+ z23\0\7 = (8.391u,2.650u);
+ z23\0\8 = (6.834u,4.234u);
+ z23\0\9c1 = (6.667u,4.450u);
+ z23\0\9c2 = (6.565u,4.576u);
+ z23\0\9 = (6.538u,4.858u);
+ z23\0\10c1 = (6.505u,5.198u);
+ z23\0\10c2 = (6.766u,5.686u);
+ z23\0\10 = (6.859u,6.023u);
+ z23\0\11 = (6.986u,6.745u);
+ z23\0\12c1 = (6.473u,6.745u);
+ z23\0\12c2 = (5.147u,6.859u);
+ z23\0\12 = (4.855u,6.360u);
+ z23\0\13c1 = (4.446u,5.662u);
+ z23\0\13c2 = (5.732u,4.617u);
+ z23\0\13 = (5.693u,3.613u);
+ z23\0\14c1 = (5.614u,1.590u);
+ z23\0\14c2 = (2.317u,0.485u);
+ z23\0\14 = (1.800u,2.892u);
+ z23\0\15c1 = (1.476u,4.401u);
+ z23\0\15c2 = (3.152u,5.033u);
+ z23\0\15 = (3.024u,6.009u);
+ z23\0\16c1 = (2.895u,6.986u);
+ z23\0\16c2 = (1.139u,6.860u);
+ z23\0\16 = (0.753u,6.160u);
+ z23\0\17c1 = (0.481u,5.666u);
+ z23\0\17c2 = (0.881u,4.874u);
+ z23\0\17 = (0.947u,4.336u);
+ z23\0\18c1 = (1.114u,2.988u);
+ z23\0\18c2 = (0.667u,1.422u);
+ z23\0\18 = (1.758u,0.335u);
+ z23\0\19c1 = (2.105u,-0.009u);
+ z23\0\19c2 = (2.647u,-0.299u);
+ z23\0\19 = (3.132u,-0.374u);
+ z23\0\20c1 = (5.249u,-0.703u);
+ z23\0\20c2 = (5.481u,2.081u);
+ z23\0\20 = (6.758u,1.785u);
+ z23\0\21c1 = (7.082u,1.710u);
+ z23\0\21c2 = (7.665u,1.315u);
+ z23\0\21 = (7.949u,1.120u);
+ z23\0\22c1 = (10.322u,-0.500u);
+ z23\0\22c2 = (9.767u,-1.704u);
+ fill_or_unfill z23\0\0s
+ --z23\0\0
+ --z23\0\1
+ --z23\0\2
+ --z23\0\3
+ ..controls z23\0\4c1 and z23\0\4c2..z23\0\4
+ ..controls z23\0\5c1 and z23\0\5c2..z23\0\5
+ ..controls z23\0\6c1 and z23\0\6c2..z23\0\6
+ ..controls z23\0\7c1 and z23\0\7c2..z23\0\7
+ --z23\0\8
+ ..controls z23\0\9c1 and z23\0\9c2..z23\0\9
+ ..controls z23\0\10c1 and z23\0\10c2..z23\0\10
+ --z23\0\11
+ ..controls z23\0\12c1 and z23\0\12c2..z23\0\12
+ ..controls z23\0\13c1 and z23\0\13c2..z23\0\13
+ ..controls z23\0\14c1 and z23\0\14c2..z23\0\14
+ ..controls z23\0\15c1 and z23\0\15c2..z23\0\15
+ ..controls z23\0\16c1 and z23\0\16c2..z23\0\16
+ ..controls z23\0\17c1 and z23\0\17c2..z23\0\17
+ ..controls z23\0\18c1 and z23\0\18c2..z23\0\18
+ ..controls z23\0\19c1 and z23\0\19c2..z23\0\19
+ ..controls z23\0\20c1 and z23\0\20c2..z23\0\20
+ ..controls z23\0\21c1 and z23\0\21c2..z23\0\21
+ ..controls z23\0\22c1 and z23\0\22c2..cycle;
+ proof_labels (
+ 23\0\0,
+ 23\0\1,
+ 23\0\2,
+ 23\0\3,
+ 23\0\4,
+ 23\0\5,
+ 23\0\6,
+ 23\0\7,
+ 23\0\8,
+ 23\0\9,
+ 23\0\10,
+ 23\0\11,
+ 23\0\12,
+ 23\0\13,
+ 23\0\14,
+ 23\0\15,
+ 23\0\16,
+ 23\0\17,
+ 23\0\18,
+ 23\0\19,
+ 23\0\20,
+ 23\0\21,
+ 23\0\22,
+);
+endchar;
+
+beginchar (114, 9.877u#, 6.745u#, 1.204u#);
+ "ra";
+ z24\0\0s = (1.204u,5.300u);
+ z24\0\0c1 = (2.590u,5.035u);
+ z24\0\0c2 = (2.846u,4.774u);
+ z24\0\0 = (3.613u,3.613u);
+ z24\0\1c1 = (2.557u,3.421u);
+ z24\0\1c2 = (0.748u,3.311u);
+ z24\0\1 = (0.667u,1.924u);
+ z24\0\2c1 = (0.584u,1.653u);
+ z24\0\2c2 = (0.671u,1.457u);
+ z24\0\2 = (0.667u,1.204u);
+ z24\0\3 = (2.650u,1.834u);
+ z24\0\4c1 = (4.213u,2.158u);
+ z24\0\4c2 = (6.445u,1.475u);
+ z24\0\4 = (7.699u,0.533u);
+ z24\0\5 = (9.395u,-0.964u);
+ z24\0\6c1 = (9.348u,-0.624u);
+ z24\0\6c2 = (9.323u,-0.323u);
+ z24\0\6 = (9.190u,0.000u);
+ z24\0\7c1 = (8.763u,1.038u);
+ z24\0\7c2 = (7.249u,2.371u);
+ z24\0\7 = (6.254u,2.893u);
+ z24\0\8c1 = (5.643u,3.214u);
+ z24\0\8c2 = (4.427u,3.479u);
+ z24\0\8 = (4.136u,4.144u);
+ z24\0\9c1 = (3.538u,5.507u);
+ z24\0\9c2 = (6.103u,5.192u);
+ z24\0\9 = (6.712u,5.546u);
+ z24\0\10c1 = (7.135u,5.791u);
+ z24\0\10c2 = (7.258u,6.097u);
+ z24\0\10 = (7.468u,6.504u);
+ z24\0\11c1 = (6.315u,6.785u);
+ z24\0\11c2 = (2.691u,7.031u);
+ z24\0\11 = (1.761u,6.299u);
+ z24\0\12c1 = (1.396u,6.010u);
+ z24\0\12c2 = (1.335u,5.714u);
+ fill_or_unfill z24\0\0s
+ ..controls z24\0\0c1 and z24\0\0c2..z24\0\0
+ ..controls z24\0\1c1 and z24\0\1c2..z24\0\1
+ ..controls z24\0\2c1 and z24\0\2c2..z24\0\2
+ --z24\0\3
+ ..controls z24\0\4c1 and z24\0\4c2..z24\0\4
+ --z24\0\5
+ ..controls z24\0\6c1 and z24\0\6c2..z24\0\6
+ ..controls z24\0\7c1 and z24\0\7c2..z24\0\7
+ ..controls z24\0\8c1 and z24\0\8c2..z24\0\8
+ ..controls z24\0\9c1 and z24\0\9c2..z24\0\9
+ ..controls z24\0\10c1 and z24\0\10c2..z24\0\10
+ ..controls z24\0\11c1 and z24\0\11c2..z24\0\11
+ ..controls z24\0\12c1 and z24\0\12c2..cycle;
+ proof_labels (
+ 24\0\0,
+ 24\0\1,
+ 24\0\2,
+ 24\0\3,
+ 24\0\4,
+ 24\0\5,
+ 24\0\6,
+ 24\0\7,
+ 24\0\8,
+ 24\0\9,
+ 24\0\10,
+ 24\0\11,
+ 24\0\12,
+);
+endchar;
+
+beginchar (108, 10.359u#, 6.745u#, 1.445u#); % 99
+ "la";
+ z25\0\0s = (1.686u,0.241u);
+ z25\0\0c1 = (1.515u,1.205u);
+ z25\0\0c2 = (1.134u,2.135u);
+ z25\0\0 = (1.231u,3.132u);
+ z25\0\1c1 = (1.521u,6.099u);
+ z25\0\1c2 = (5.571u,5.846u);
+ z25\0\1 = (5.304u,3.455u);
+ z25\0\2c1 = (5.149u,2.070u);
+ z25\0\2c2 = (3.061u,3.415u);
+ z25\0\2 = (2.650u,0.482u);
+ z25\0\3 = (4.336u,1.071u);
+ z25\0\4c1 = (5.515u,1.347u);
+ z25\0\4c2 = (6.777u,0.894u);
+ z25\0\4 = (7.696u,0.148u);
+ z25\0\5c1 = (8.372u,-0.401u);
+ z25\0\5c2 = (8.538u,-0.885u);
+ z25\0\5 = (9.406u,-1.204u);
+ z25\0\6c1 = (9.395u,0.536u);
+ z25\0\6c2 = (9.279u,2.364u);
+ z25\0\6 = (9.406u,4.095u);
+ z25\0\7 = (9.704u,5.768u);
+ z25\0\8 = (9.704u,6.188u);
+ z25\0\9c1 = (9.427u,6.974u);
+ z25\0\9c2 = (8.277u,6.640u);
+ z25\0\9 = (7.709u,6.504u);
+ z25\0\10 = (8.600u,4.095u);
+ z25\0\11c1 = (8.968u,2.830u);
+ z25\0\11c2 = (8.913u,1.542u);
+ z25\0\11 = (8.913u,0.241u);
+ z25\0\12c1 = (8.506u,0.744u);
+ z25\0\12c2 = (8.115u,1.169u);
+ z25\0\12 = (7.612u,1.581u);
+ z25\0\13c1 = (7.190u,1.926u);
+ z25\0\13c2 = (6.477u,2.406u);
+ z25\0\13 = (6.203u,2.866u);
+ z25\0\14c1 = (5.935u,3.315u);
+ z25\0\14c2 = (6.014u,3.841u);
+ z25\0\14 = (6.019u,4.340u);
+ z25\0\15c1 = (6.040u,6.209u);
+ z25\0\15c2 = (6.189u,6.716u);
+ z25\0\15 = (4.095u,6.744u);
+ z25\0\16c1 = (3.268u,6.755u);
+ z25\0\16c2 = (2.194u,6.838u);
+ z25\0\16 = (1.496u,6.326u);
+ z25\0\17c1 = (0.155u,5.342u);
+ z25\0\17c2 = (0.424u,3.328u);
+ z25\0\17 = (0.752u,1.927u);
+ z25\0\18c1 = (0.842u,1.539u);
+ z25\0\18c2 = (0.955u,0.928u);
+ z25\0\18 = (1.196u,0.612u);
+ z25\0\19c1 = (1.351u,0.409u);
+ z25\0\19c2 = (1.490u,0.371u);
+ fill_or_unfill z25\0\0s
+ ..controls z25\0\0c1 and z25\0\0c2..z25\0\0
+ ..controls z25\0\1c1 and z25\0\1c2..z25\0\1
+ ..controls z25\0\2c1 and z25\0\2c2..z25\0\2
+ --z25\0\3
+ ..controls z25\0\4c1 and z25\0\4c2..z25\0\4
+ ..controls z25\0\5c1 and z25\0\5c2..z25\0\5
+ ..controls z25\0\6c1 and z25\0\6c2..z25\0\6
+ --z25\0\7
+ --z25\0\8
+ ..controls z25\0\9c1 and z25\0\9c2..z25\0\9
+ --z25\0\10
+ ..controls z25\0\11c1 and z25\0\11c2..z25\0\11
+ ..controls z25\0\12c1 and z25\0\12c2..z25\0\12
+ ..controls z25\0\13c1 and z25\0\13c2..z25\0\13
+ ..controls z25\0\14c1 and z25\0\14c2..z25\0\14
+ ..controls z25\0\15c1 and z25\0\15c2..z25\0\15
+ ..controls z25\0\16c1 and z25\0\16c2..z25\0\16
+ ..controls z25\0\17c1 and z25\0\17c2..z25\0\17
+ ..controls z25\0\18c1 and z25\0\18c2..z25\0\18
+ ..controls z25\0\19c1 and z25\0\19c2..cycle;
+ proof_labels (
+ 25\0\0,
+ 25\0\1,
+ 25\0\2,
+ 25\0\3,
+ 25\0\4,
+ 25\0\5,
+ 25\0\6,
+ 25\0\7,
+ 25\0\8,
+ 25\0\9,
+ 25\0\10,
+ 25\0\11,
+ 25\0\12,
+ 25\0\13,
+ 25\0\14,
+ 25\0\15,
+ 25\0\16,
+ 25\0\17,
+ 25\0\18,
+ 25\0\19,
+);
+endchar;
+
+beginchar (139, 11.563u#, 6.745u#, 6.745u#); % 100
+ "sha";
+ z26\0\0s = (4.095u,0.000u);
+ z26\0\0c1 = (2.896u,1.132u);
+ z26\0\0c2 = (2.162u,1.749u);
+ z26\0\0 = (0.482u,1.927u);
+ z26\0\1c1 = (0.996u,-0.085u);
+ z26\0\1c2 = (1.810u,0.762u);
+ z26\0\1 = (3.087u,-0.174u);
+ z26\0\2 = (4.577u,-1.686u);
+ z26\0\3 = (4.577u,1.686u);
+ z26\0\4c1 = (6.454u,-0.356u);
+ z26\0\4c2 = (7.635u,0.027u);
+ z26\0\4 = (9.877u,1.204u);
+ z26\0\5 = (10.118u,-2.168u);
+ z26\0\6 = (10.118u,-6.504u);
+ z26\0\7 = (10.600u,-6.504u);
+ z26\0\8 = (10.600u,-0.723u);
+ z26\0\9 = (10.872u,2.168u);
+ z26\0\10 = (10.872u,3.854u);
+ z26\0\11c1 = (10.904u,4.474u);
+ z26\0\11c2 = (11.166u,5.415u);
+ z26\0\11 = (10.872u,5.987u);
+ z26\0\12c1 = (10.623u,6.751u);
+ z26\0\12c2 = (9.851u,6.732u);
+ z26\0\12 = (9.154u,6.744u);
+ z26\0\13c1 = (8.552u,6.755u);
+ z26\0\13c2 = (7.804u,6.796u);
+ z26\0\13 = (7.227u,6.622u);
+ z26\0\14c1 = (5.395u,6.072u);
+ z26\0\14c2 = (4.656u,4.125u);
+ z26\0\14 = (4.408u,2.409u);
+ z26\1\0s = (7.468u,5.218u);
+ z26\1\0c1 = (8.059u,5.250u);
+ z26\1\0c2 = (8.583u,5.288u);
+ z26\1\0 = (9.079u,4.881u);
+ z26\1\1c1 = (10.076u,4.061u);
+ z26\1\1c2 = (9.627u,1.647u);
+ z26\1\1 = (8.591u,1.006u);
+ z26\1\2c1 = (8.158u,0.737u);
+ z26\1\2c2 = (7.483u,0.701u);
+ z26\1\2 = (6.986u,0.749u);
+ z26\1\3c1 = (4.898u,0.953u);
+ z26\1\3c2 = (4.101u,3.343u);
+ z26\1\3 = (5.832u,4.616u);
+ z26\1\4c1 = (6.312u,4.968u);
+ z26\1\4c2 = (6.901u,5.093u);
+ fill_or_unfill z26\0\0s
+ ..controls z26\0\0c1 and z26\0\0c2..z26\0\0
+ ..controls z26\0\1c1 and z26\0\1c2..z26\0\1
+ --z26\0\2
+ --z26\0\3
+ ..controls z26\0\4c1 and z26\0\4c2..z26\0\4
+ --z26\0\5
+ --z26\0\6
+ --z26\0\7
+ --z26\0\8
+ --z26\0\9
+ --z26\0\10
+ ..controls z26\0\11c1 and z26\0\11c2..z26\0\11
+ ..controls z26\0\12c1 and z26\0\12c2..z26\0\12
+ ..controls z26\0\13c1 and z26\0\13c2..z26\0\13
+ ..controls z26\0\14c1 and z26\0\14c2..z26\0\14
+ --cycle;
+ fill_or_unfill z26\1\0s
+ ..controls z26\1\0c1 and z26\1\0c2..z26\1\0
+ ..controls z26\1\1c1 and z26\1\1c2..z26\1\1
+ ..controls z26\1\2c1 and z26\1\2c2..z26\1\2
+ ..controls z26\1\3c1 and z26\1\3c2..z26\1\3
+ ..controls z26\1\4c1 and z26\1\4c2..cycle;
+ proof_labels (
+ 26\0\0,
+ 26\0\1,
+ 26\0\2,
+ 26\0\3,
+ 26\0\4,
+ 26\0\5,
+ 26\0\6,
+ 26\0\7,
+ 26\0\8,
+ 26\0\9,
+ 26\0\10,
+ 26\0\11,
+ 26\0\12,
+ 26\0\13,
+ 26\0\14,
+ 26\0\15,
+ 26\1\0,
+ 26\1\1,
+ 26\1\2,
+ 26\1\3,
+ 26\1\4,
+);
+endchar;
+
+beginchar (115, 11.081u#, 6.745u#, 1.204u#); % 102
+ "sa";
+ z27\0\0s = (1.204u,5.300u);
+ z27\0\0 = (2.650u,5.300u);
+ z27\0\1c1 = (2.509u,4.860u);
+ z27\0\1c2 = (2.376u,4.497u);
+ z27\0\1 = (2.139u,4.095u);
+ z27\0\2c1 = (1.664u,3.291u);
+ z27\0\2c2 = (0.999u,2.576u);
+ z27\0\2 = (0.678u,1.686u);
+ z27\0\3c1 = (0.532u,1.280u);
+ z27\0\3c2 = (0.512u,0.905u);
+ z27\0\3 = (0.482u,0.482u);
+ z27\0\4c1 = (2.053u,0.519u);
+ z27\0\4c2 = (2.606u,0.654u);
+ z27\0\4 = (3.993u,-0.253u);
+ z27\0\5c1 = (4.630u,-0.669u);
+ z27\0\5c2 = (4.794u,-0.777u);
+ z27\0\5 = (5.541u,-0.964u);
+ z27\0\6c1 = (4.863u,0.710u);
+ z27\0\6c2 = (3.532u,2.151u);
+ z27\0\6 = (1.686u,2.409u);
+ z27\0\7c1 = (1.988u,2.739u);
+ z27\0\7c2 = (2.209u,3.030u);
+ z27\0\7 = (2.661u,3.173u);
+ z27\0\8c1 = (4.080u,3.621u);
+ z27\0\8c2 = (6.464u,1.429u);
+ z27\0\8 = (7.446u,0.541u);
+ z27\0\9c1 = (8.288u,-0.220u);
+ z27\0\9c2 = (8.453u,-0.766u);
+ z27\0\9 = (9.660u,-0.964u);
+ z27\0\10 = (9.660u,2.409u);
+ z27\0\11 = (9.660u,3.853u);
+ z27\0\12c1 = (9.761u,4.176u);
+ z27\0\12c2 = (9.841u,4.476u);
+ z27\0\12 = (9.967u,4.777u);
+ z27\0\13c1 = (10.116u,5.138u);
+ z27\0\13c2 = (10.473u,5.616u);
+ z27\0\13 = (10.453u,6.009u);
+ z27\0\14c1 = (10.427u,6.497u);
+ z27\0\14c2 = (10.043u,6.646u);
+ z27\0\14 = (9.622u,6.709u);
+ z27\0\15c1 = (9.151u,6.780u);
+ z27\0\15c2 = (8.300u,6.744u);
+ z27\0\15 = (8.128u,6.188u);
+ z27\0\16c1 = (7.976u,5.695u);
+ z27\0\16c2 = (8.491u,4.836u);
+ z27\0\16 = (8.642u,4.336u);
+ z27\0\17c1 = (8.759u,3.947u);
+ z27\0\17c2 = (8.831u,3.536u);
+ z27\0\17 = (8.893u,3.132u);
+ z27\0\18 = (8.893u,0.241u);
+ z27\0\19c1 = (8.242u,1.131u);
+ z27\0\19c2 = (7.509u,2.047u);
+ z27\0\19 = (6.705u,2.821u);
+ z27\0\20c1 = (5.843u,3.651u);
+ z27\0\20c2 = (4.828u,4.367u);
+ z27\0\20 = (3.854u,5.059u);
+ z27\0\21c1 = (5.134u,5.375u);
+ z27\0\21c2 = (5.748u,5.115u);
+ z27\0\21 = (6.263u,6.504u);
+ z27\0\22c1 = (5.333u,6.769u);
+ z27\0\22c2 = (2.339u,7.038u);
+ z27\0\22 = (1.623u,6.326u);
+ z27\0\23c1 = (1.328u,6.034u);
+ z27\0\23c2 = (1.290u,5.680u);
+ fill_or_unfill z27\0\0s
+ --z27\0\0
+ ..controls z27\0\1c1 and z27\0\1c2..z27\0\1
+ ..controls z27\0\2c1 and z27\0\2c2..z27\0\2
+ ..controls z27\0\3c1 and z27\0\3c2..z27\0\3
+ ..controls z27\0\4c1 and z27\0\4c2..z27\0\4
+ ..controls z27\0\5c1 and z27\0\5c2..z27\0\5
+ ..controls z27\0\6c1 and z27\0\6c2..z27\0\6
+ ..controls z27\0\7c1 and z27\0\7c2..z27\0\7
+ ..controls z27\0\8c1 and z27\0\8c2..z27\0\8
+ ..controls z27\0\9c1 and z27\0\9c2..z27\0\9
+ --z27\0\10
+ --z27\0\11
+ ..controls z27\0\12c1 and z27\0\12c2..z27\0\12
+ ..controls z27\0\13c1 and z27\0\13c2..z27\0\13
+ ..controls z27\0\14c1 and z27\0\14c2..z27\0\14
+ ..controls z27\0\15c1 and z27\0\15c2..z27\0\15
+ ..controls z27\0\16c1 and z27\0\16c2..z27\0\16
+ ..controls z27\0\17c1 and z27\0\17c2..z27\0\17
+ --z27\0\18
+ ..controls z27\0\19c1 and z27\0\19c2..z27\0\19
+ ..controls z27\0\20c1 and z27\0\20c2..z27\0\20
+ ..controls z27\0\21c1 and z27\0\21c2..z27\0\21
+ ..controls z27\0\22c1 and z27\0\22c2..z27\0\22
+ ..controls z27\0\23c1 and z27\0\23c2..cycle;
+ proof_labels (
+ 27\0\0,
+ 27\0\1,
+ 27\0\2,
+ 27\0\3,
+ 27\0\4,
+ 27\0\5,
+ 27\0\6,
+ 27\0\7,
+ 27\0\8,
+ 27\0\9,
+ 27\0\10,
+ 27\0\11,
+ 27\0\12,
+ 27\0\13,
+ 27\0\14,
+ 27\0\15,
+ 27\0\16,
+ 27\0\17,
+ 27\0\18,
+ 27\0\19,
+ 27\0\20,
+ 27\0\21,
+ 27\0\22,
+ 27\0\23,
+);
+endchar;
+
+beginchar (104, 9.154u#, 6.504u#, 6.263u#);
+ "ha";
+ z28\0\0s = (0.482u,1.204u);
+ z28\0\0c1 = (1.902u,1.322u);
+ z28\0\0c2 = (2.907u,1.212u);
+ z28\0\0 = (4.005u,0.200u);
+ z28\0\1c1 = (4.550u,-0.302u);
+ z28\0\1c2 = (4.570u,-0.471u);
+ z28\0\1 = (5.300u,-0.723u);
+ z28\0\2 = (5.078u,-0.000u);
+ z28\0\3c1 = (4.918u,0.413u);
+ z28\0\3c2 = (4.338u,1.323u);
+ z28\0\3 = (4.477u,1.734u);
+ z28\0\4c1 = (4.563u,1.988u);
+ z28\0\4c2 = (4.845u,2.153u);
+ z28\0\4 = (5.085u,2.230u);
+ z28\0\5c1 = (6.267u,2.608u);
+ z28\0\5c2 = (7.545u,1.291u);
+ z28\0\5 = (7.822u,0.241u);
+ z28\0\6c1 = (8.012u,-0.477u);
+ z28\0\6c2 = (7.749u,-1.022u);
+ z28\0\6 = (7.535u,-1.686u);
+ z28\0\7 = (6.905u,-3.613u);
+ z28\0\8c1 = (6.537u,-4.465u);
+ z28\0\8c2 = (6.022u,-5.234u);
+ z28\0\8 = (5.541u,-6.022u);
+ z28\0\9c1 = (5.990u,-5.887u);
+ z28\0\9c2 = (6.298u,-5.806u);
+ z28\0\9 = (6.652u,-5.465u);
+ z28\0\10c1 = (7.441u,-4.705u);
+ z28\0\10c2 = (8.410u,-2.072u);
+ z28\0\10 = (8.633u,-0.964u);
+ z28\0\11 = (8.633u,0.482u);
+ z28\0\12c1 = (8.675u,1.219u);
+ z28\0\12c2 = (8.771u,2.216u);
+ z28\0\12 = (8.287u,2.824u);
+ z28\0\13c1 = (7.718u,3.539u);
+ z28\0\13c2 = (6.631u,3.645u);
+ z28\0\13 = (5.782u,3.602u);
+ z28\0\14c1 = (4.607u,3.543u);
+ z28\0\14c2 = (4.245u,3.248u);
+ z28\0\14 = (3.854u,2.168u);
+ z28\0\15 = (1.445u,3.132u);
+ z28\0\16c1 = (1.943u,3.773u);
+ z28\0\16c2 = (2.389u,4.332u);
+ z28\0\16 = (3.132u,4.709u);
+ z28\0\17c1 = (3.521u,4.905u);
+ z28\0\17c2 = (3.907u,4.991u);
+ z28\0\17 = (4.336u,5.034u);
+ z28\0\18c1 = (5.101u,5.110u);
+ z28\0\18c2 = (7.237u,4.854u);
+ z28\0\18 = (7.698u,5.467u);
+ z28\0\19c1 = (8.194u,6.126u);
+ z28\0\19c2 = (7.197u,6.426u);
+ z28\0\19 = (6.741u,6.419u);
+ z28\0\20c1 = (6.080u,6.555u);
+ z28\0\20c2 = (2.684u,6.563u);
+ z28\0\20 = (2.182u,6.419u);
+ z28\0\21c1 = (1.859u,6.230u);
+ z28\0\21c2 = (1.631u,6.055u);
+ z28\0\21 = (1.459u,5.746u);
+ z28\0\22c1 = (1.196u,5.274u);
+ z28\0\22c2 = (1.302u,4.621u);
+ z28\0\22 = (1.187u,4.095u);
+ z28\0\23 = (0.628u,2.409u);
+ z28\0\24c1 = (0.524u,2.003u);
+ z28\0\24c2 = (0.505u,1.619u);
+ fill_or_unfill z28\0\0s
+ ..controls z28\0\0c1 and z28\0\0c2..z28\0\0
+ ..controls z28\0\1c1 and z28\0\1c2..z28\0\1
+ --z28\0\2
+ ..controls z28\0\3c1 and z28\0\3c2..z28\0\3
+ ..controls z28\0\4c1 and z28\0\4c2..z28\0\4
+ ..controls z28\0\5c1 and z28\0\5c2..z28\0\5
+ ..controls z28\0\6c1 and z28\0\6c2..z28\0\6
+ --z28\0\7
+ ..controls z28\0\8c1 and z28\0\8c2..z28\0\8
+ ..controls z28\0\9c1 and z28\0\9c2..z28\0\9
+ ..controls z28\0\10c1 and z28\0\10c2..z28\0\10
+ --z28\0\11
+ ..controls z28\0\12c1 and z28\0\12c2..z28\0\12
+ ..controls z28\0\13c1 and z28\0\13c2..z28\0\13
+ ..controls z28\0\14c1 and z28\0\14c2..z28\0\14
+ --z28\0\15
+ ..controls z28\0\16c1 and z28\0\16c2..z28\0\16
+ ..controls z28\0\17c1 and z28\0\17c2..z28\0\17
+ ..controls z28\0\18c1 and z28\0\18c2..z28\0\18
+ ..controls z28\0\19c1 and z28\0\19c2..z28\0\19
+ ..controls z28\0\20c1 and z28\0\20c2..z28\0\20
+ ..controls z28\0\21c1 and z28\0\21c2..z28\0\21
+ ..controls z28\0\22c1 and z28\0\22c2..z28\0\22
+ --z28\0\23
+ ..controls z28\0\24c1 and z28\0\24c2..cycle;
+ proof_labels (
+ 28\0\0,
+ 28\0\1,
+ 28\0\2,
+ 28\0\3,
+ 28\0\4,
+ 28\0\5,
+ 28\0\6,
+ 28\0\7,
+ 28\0\8,
+ 28\0\9,
+ 28\0\10,
+ 28\0\11,
+ 28\0\12,
+ 28\0\13,
+ 28\0\14,
+ 28\0\15,
+ 28\0\16,
+ 28\0\17,
+ 28\0\18,
+ 28\0\19,
+ 28\0\20,
+ 28\0\21,
+ 28\0\22,
+ 28\0\23,
+ 28\0\24,
+);
+endchar;
+
+beginchar (97, 13.972u#, 6.745u#, 2.168u#);
+ "a";
+ z29\0\0s = (4.818u,3.372u);
+ z29\0\0c1 = (5.250u,3.512u);
+ z29\0\0c2 = (5.627u,3.660u);
+ z29\0\0 = (6.091u,3.585u);
+ z29\0\1c1 = (7.493u,3.357u);
+ z29\0\1c2 = (10.877u,0.955u);
+ z29\0\1 = (11.598u,-0.242u);
+ z29\0\2c1 = (11.932u,-0.796u);
+ z29\0\2c2 = (11.986u,-1.302u);
+ z29\0\2 = (12.045u,-1.927u);
+ z29\0\3 = (12.788u,-1.927u);
+ z29\0\4c1 = (12.768u,-0.268u);
+ z29\0\4c2 = (12.650u,1.484u);
+ z29\0\4 = (12.788u,3.132u);
+ z29\0\5 = (13.061u,4.818u);
+ z29\0\6 = (13.260u,5.987u);
+ z29\0\7 = (13.260u,6.360u);
+ z29\0\8c1 = (12.976u,6.746u);
+ z29\0\8c2 = (12.213u,6.769u);
+ z29\0\8 = (11.818u,6.709u);
+ z29\0\9c1 = (11.483u,6.658u);
+ z29\0\9c2 = (11.139u,6.563u);
+ z29\0\9 = (11.059u,6.188u);
+ z29\0\10 = (11.059u,5.768u);
+ z29\0\11 = (11.676u,4.095u);
+ z29\0\12 = (11.909u,2.409u);
+ z29\0\13 = (12.286u,0.241u);
+ z29\0\14c1 = (11.549u,1.141u);
+ z29\0\14c2 = (10.813u,2.062u);
+ z29\0\14 = (9.994u,2.891u);
+ z29\0\15 = (7.709u,5.059u);
+ z29\0\16c1 = (8.749u,5.400u);
+ z29\0\16c2 = (9.047u,5.412u);
+ z29\0\16 = (9.395u,6.504u);
+ z29\0\17c1 = (8.489u,6.724u);
+ z29\0\17c2 = (6.201u,6.920u);
+ z29\0\17 = (5.332u,6.642u);
+ z29\0\18c1 = (4.814u,6.475u);
+ z29\0\18c2 = (4.438u,5.968u);
+ z29\0\18 = (4.966u,5.542u);
+ z29\0\19c1 = (5.207u,5.347u);
+ z29\0\19c2 = (5.496u,5.350u);
+ z29\0\19 = (5.782u,5.300u);
+ z29\0\20c1 = (5.274u,4.521u);
+ z29\0\20c2 = (4.621u,3.734u);
+ z29\0\20 = (4.233u,2.892u);
+ z29\0\21c1 = (3.538u,1.382u);
+ z29\0\21c2 = (4.652u,1.665u);
+ z29\0\21 = (5.530u,1.302u);
+ z29\0\22c1 = (5.994u,1.111u);
+ z29\0\22c2 = (6.192u,0.847u);
+ z29\0\22 = (6.504u,0.482u);
+ z29\0\23c1 = (4.745u,0.054u);
+ z29\0\23c2 = (1.554u,0.032u);
+ z29\0\23 = (1.802u,2.650u);
+ z29\0\24c1 = (1.853u,3.189u);
+ z29\0\24c2 = (1.989u,3.827u);
+ z29\0\24 = (2.173u,4.336u);
+ z29\0\25c1 = (2.415u,5.005u);
+ z29\0\25c2 = (3.571u,6.332u);
+ z29\0\25 = (2.373u,6.635u);
+ z29\0\26c1 = (2.065u,6.755u);
+ z29\0\26c2 = (1.534u,6.726u);
+ z29\0\26 = (1.240u,6.635u);
+ z29\0\27c1 = (0.118u,6.123u);
+ z29\0\27c2 = (0.814u,5.283u);
+ z29\0\27 = (1.093u,4.556u);
+ z29\0\28 = (1.339u,3.613u);
+ z29\0\29c1 = (1.594u,2.143u);
+ z29\0\29c2 = (1.099u,-0.040u);
+ z29\0\29 = (2.675u,-0.921u);
+ z29\0\30c1 = (3.105u,-1.162u);
+ z29\0\30c2 = (3.614u,-1.195u);
+ z29\0\30 = (4.095u,-1.197u);
+ z29\0\31c1 = (5.453u,-1.204u);
+ z29\0\31c2 = (6.960u,-0.657u);
+ z29\0\31 = (6.929u,0.963u);
+ z29\0\32c1 = (6.919u,1.480u);
+ z29\0\32c2 = (6.711u,1.936u);
+ z29\0\32 = (6.367u,2.316u);
+ z29\0\33c1 = (5.959u,2.767u);
+ z29\0\33c2 = (5.338u,3.068u);
+ fill_or_unfill z29\0\0s
+ ..controls z29\0\0c1 and z29\0\0c2..z29\0\0
+ ..controls z29\0\1c1 and z29\0\1c2..z29\0\1
+ ..controls z29\0\2c1 and z29\0\2c2..z29\0\2
+ --z29\0\3
+ ..controls z29\0\4c1 and z29\0\4c2..z29\0\4
+ --z29\0\5
+ --z29\0\6
+ --z29\0\7
+ ..controls z29\0\8c1 and z29\0\8c2..z29\0\8
+ ..controls z29\0\9c1 and z29\0\9c2..z29\0\9
+ --z29\0\10
+ --z29\0\11
+ --z29\0\12
+ --z29\0\13
+ ..controls z29\0\14c1 and z29\0\14c2..z29\0\14
+ --z29\0\15
+ ..controls z29\0\16c1 and z29\0\16c2..z29\0\16
+ ..controls z29\0\17c1 and z29\0\17c2..z29\0\17
+ ..controls z29\0\18c1 and z29\0\18c2..z29\0\18
+ ..controls z29\0\19c1 and z29\0\19c2..z29\0\19
+ ..controls z29\0\20c1 and z29\0\20c2..z29\0\20
+ ..controls z29\0\21c1 and z29\0\21c2..z29\0\21
+ ..controls z29\0\22c1 and z29\0\22c2..z29\0\22
+ ..controls z29\0\23c1 and z29\0\23c2..z29\0\23
+ ..controls z29\0\24c1 and z29\0\24c2..z29\0\24
+ ..controls z29\0\25c1 and z29\0\25c2..z29\0\25
+ ..controls z29\0\26c1 and z29\0\26c2..z29\0\26
+ ..controls z29\0\27c1 and z29\0\27c2..z29\0\27
+ --z29\0\28
+ ..controls z29\0\29c1 and z29\0\29c2..z29\0\29
+ ..controls z29\0\30c1 and z29\0\30c2..z29\0\30
+ ..controls z29\0\31c1 and z29\0\31c2..z29\0\31
+ ..controls z29\0\32c1 and z29\0\32c2..z29\0\32
+ ..controls z29\0\33c1 and z29\0\33c2..cycle;
+ proof_labels (
+ 29\0\0,
+ 29\0\1,
+ 29\0\2,
+ 29\0\3,
+ 29\0\4,
+ 29\0\5,
+ 29\0\6,
+ 29\0\7,
+ 29\0\8,
+ 29\0\9,
+ 29\0\10,
+ 29\0\11,
+ 29\0\12,
+ 29\0\13,
+ 29\0\14,
+ 29\0\15,
+ 29\0\16,
+ 29\0\17,
+ 29\0\18,
+ 29\0\19,
+ 29\0\20,
+ 29\0\21,
+ 29\0\22,
+ 29\0\23,
+ 29\0\24,
+ 29\0\25,
+ 29\0\26,
+ 29\0\27,
+ 29\0\28,
+ 29\0\29,
+ 29\0\30,
+ 29\0\31,
+ 29\0\32,
+ 29\0\33,
+);
+ apic:=currentpicture;
+endchar;
+
+beginchar (140, 10.118u#, 6.745u#, 7.227u#);
+ "rka";
+ z30\0\0s = (2.650u,5.300u);
+ z30\0\0 = (5.059u,5.300u);
+ z30\0\1c1 = (4.984u,5.067u);
+ z30\0\1c2 = (4.966u,4.864u);
+ z30\0\1 = (4.817u,4.652u);
+ z30\0\2c1 = (3.958u,3.429u);
+ z30\0\2c2 = (1.653u,4.835u);
+ z30\0\2 = (0.723u,3.338u);
+ z30\0\3c1 = (0.582u,3.110u);
+ z30\0\3c2 = (0.556u,2.895u);
+ z30\0\3 = (0.482u,2.650u);
+ z30\0\4c1 = (0.682u,2.469u);
+ z30\0\4c2 = (0.874u,2.357u);
+ z30\0\4 = (1.022u,2.114u);
+ z30\0\5c1 = (1.501u,1.321u);
+ z30\0\5c2 = (0.922u,0.513u);
+ z30\0\5 = (0.674u,-0.241u);
+ z30\0\6 = (0.482u,-1.204u);
+ z30\0\7c1 = (0.686u,-1.076u);
+ z30\0\7c2 = (0.836u,-1.026u);
+ z30\0\7 = (1.007u,-0.833u);
+ z30\0\8c1 = (1.758u,0.017u);
+ z30\0\8c2 = (1.748u,1.548u);
+ z30\0\8 = (2.715u,2.260u);
+ z30\0\9c1 = (4.824u,3.813u);
+ z30\0\9c2 = (4.817u,-1.711u);
+ z30\0\9 = (4.818u,-2.650u);
+ z30\0\10 = (5.300u,-2.650u);
+ z30\0\11c1 = (5.300u,-1.287u);
+ z30\0\11c2 = (5.078u,3.125u);
+ z30\0\11 = (7.442u,2.570u);
+ z30\0\12c1 = (7.848u,2.475u);
+ z30\0\12c2 = (8.083u,2.269u);
+ z30\0\12 = (8.254u,1.892u);
+ z30\0\13c1 = (8.457u,1.442u);
+ z30\0\13c2 = (8.422u,0.738u);
+ z30\0\13 = (8.472u,0.241u);
+ z30\0\14 = (8.662u,-1.204u);
+ z30\0\15 = (8.662u,-3.854u);
+ z30\0\16 = (8.913u,-6.986u);
+ z30\0\17 = (9.395u,-6.986u);
+ z30\0\18 = (9.395u,0.482u);
+ z30\0\19 = (9.636u,4.095u);
+ z30\0\20c1 = (8.182u,4.095u);
+ z30\0\20c2 = (6.720u,3.991u);
+ z30\0\20 = (5.300u,4.336u);
+ z30\0\21c1 = (5.614u,4.599u);
+ z30\0\21c2 = (5.891u,4.868u);
+ z30\0\21 = (6.263u,5.054u);
+ z30\0\22c1 = (6.817u,5.331u);
+ z30\0\22c2 = (7.841u,5.249u);
+ z30\0\22 = (8.150u,5.843u);
+ z30\0\23c1 = (8.601u,6.710u);
+ z30\0\23c2 = (7.213u,6.735u);
+ z30\0\23 = (6.745u,6.744u);
+ z30\0\24c1 = (5.874u,6.760u);
+ z30\0\24c2 = (3.859u,6.906u);
+ z30\0\24 = (3.207u,6.360u);
+ z30\0\25c1 = (2.845u,6.058u);
+ z30\0\25c2 = (2.778u,5.721u);
+ fill_or_unfill z30\0\0s
+ --z30\0\0
+ ..controls z30\0\1c1 and z30\0\1c2..z30\0\1
+ ..controls z30\0\2c1 and z30\0\2c2..z30\0\2
+ ..controls z30\0\3c1 and z30\0\3c2..z30\0\3
+ ..controls z30\0\4c1 and z30\0\4c2..z30\0\4
+ ..controls z30\0\5c1 and z30\0\5c2..z30\0\5
+ --z30\0\6
+ ..controls z30\0\7c1 and z30\0\7c2..z30\0\7
+ ..controls z30\0\8c1 and z30\0\8c2..z30\0\8
+ ..controls z30\0\9c1 and z30\0\9c2..z30\0\9
+ --z30\0\10
+ ..controls z30\0\11c1 and z30\0\11c2..z30\0\11
+ ..controls z30\0\12c1 and z30\0\12c2..z30\0\12
+ ..controls z30\0\13c1 and z30\0\13c2..z30\0\13
+ --z30\0\14
+ --z30\0\15
+ --z30\0\16
+ --z30\0\17
+ --z30\0\18
+ --z30\0\19
+ ..controls z30\0\20c1 and z30\0\20c2..z30\0\20
+ ..controls z30\0\21c1 and z30\0\21c2..z30\0\21
+ ..controls z30\0\22c1 and z30\0\22c2..z30\0\22
+ ..controls z30\0\23c1 and z30\0\23c2..z30\0\23
+ ..controls z30\0\24c1 and z30\0\24c2..z30\0\24
+ ..controls z30\0\25c1 and z30\0\25c2..cycle;
+ proof_labels (
+ 30\0\0,
+ 30\0\1,
+ 30\0\2,
+ 30\0\3,
+ 30\0\4,
+ 30\0\5,
+ 30\0\6,
+ 30\0\7,
+ 30\0\8,
+ 30\0\9,
+ 30\0\10,
+ 30\0\11,
+ 30\0\12,
+ 30\0\13,
+ 30\0\14,
+ 30\0\15,
+ 30\0\16,
+ 30\0\17,
+ 30\0\18,
+ 30\0\19,
+ 30\0\20,
+ 30\0\21,
+ 30\0\22,
+ 30\0\23,
+ 30\0\24,
+ 30\0\25,
+);
+endchar;
+
+beginchar (141, 10.600u#, 6.745u#, 7.950u#);
+ "rga";
+ z31\0\0s = (2.650u,5.298u);
+ z31\0\0 = (3.613u,5.298u);
+ z31\0\1c1 = (3.899u,5.283u);
+ z31\0\1c2 = (4.265u,5.278u);
+ z31\0\1 = (4.528u,5.157u);
+ z31\0\2c1 = (5.052u,4.916u);
+ z31\0\2c2 = (5.052u,4.479u);
+ z31\0\2 = (4.528u,4.238u);
+ z31\0\3c1 = (3.702u,3.858u);
+ z31\0\3c2 = (1.468u,4.432u);
+ z31\0\3 = (0.982u,3.710u);
+ z31\0\4c1 = (0.662u,3.234u);
+ z31\0\4c2 = (1.172u,2.301u);
+ z31\0\4 = (1.124u,1.686u);
+ z31\0\5c1 = (1.079u,1.117u);
+ z31\0\5c2 = (0.804u,0.552u);
+ z31\0\5 = (0.665u,0.000u);
+ z31\0\6c1 = (0.541u,-0.489u);
+ z31\0\6c2 = (0.506u,-0.945u);
+ z31\0\6 = (0.482u,-1.445u);
+ z31\0\7c1 = (2.947u,-1.332u);
+ z31\0\7c2 = (5.030u,-0.456u);
+ z31\0\7 = (6.504u,-3.132u);
+ z31\0\8c1 = (6.907u,-2.116u);
+ z31\0\8c2 = (6.740u,-0.846u);
+ z31\0\8 = (6.745u,0.241u);
+ z31\0\9c1 = (6.750u,1.151u);
+ z31\0\9c2 = (6.868u,1.992u);
+ z31\0\9 = (6.986u,2.891u);
+ z31\0\10c1 = (7.643u,2.868u);
+ z31\0\10c2 = (8.254u,2.904u);
+ z31\0\10 = (8.708u,2.333u);
+ z31\0\11c1 = (9.339u,1.538u);
+ z31\0\11c2 = (9.107u,-0.210u);
+ z31\0\11 = (9.175u,-1.204u);
+ z31\0\12 = (9.395u,-3.613u);
+ z31\0\13 = (9.395u,-7.709u);
+ z31\0\14 = (9.877u,-7.709u);
+ z31\0\15 = (9.877u,0.241u);
+ z31\0\16 = (10.076u,2.409u);
+ z31\0\17c1 = (10.307u,5.392u);
+ z31\0\17c2 = (7.391u,3.287u);
+ z31\0\17 = (6.166u,4.480u);
+ z31\0\18c1 = (5.914u,4.725u);
+ z31\0\18c2 = (5.881u,4.988u);
+ z31\0\18 = (5.782u,5.300u);
+ z31\0\19c1 = (7.217u,5.304u);
+ z31\0\19c2 = (8.062u,5.112u);
+ z31\0\19 = (8.431u,6.745u);
+ z31\0\20c1 = (7.453u,6.745u);
+ z31\0\20c2 = (4.089u,6.901u);
+ z31\0\20 = (3.408u,6.499u);
+ z31\0\21c1 = (2.906u,6.203u);
+ z31\0\21c2 = (2.806u,5.814u);
+ z31\1\0s = (6.263u,-1.204u);
+ z31\1\0c1 = (5.939u,-1.074u);
+ z31\1\0c2 = (5.667u,-0.967u);
+ z31\1\0 = (5.368u,-0.776u);
+ z31\1\1c1 = (4.854u,-0.447u);
+ z31\1\1c2 = (4.421u,-0.024u);
+ z31\1\1 = (3.851u,0.221u);
+ z31\1\2c1 = (3.108u,0.541u);
+ z31\1\2c2 = (2.233u,0.499u);
+ z31\1\2 = (1.445u,0.723u);
+ z31\1\3c1 = (1.621u,1.317u);
+ z31\1\3c2 = (1.793u,1.864u);
+ z31\1\3 = (2.262u,2.319u);
+ z31\1\4c1 = (2.932u,2.936u);
+ z31\1\4c2 = (5.122u,3.289u);
+ z31\1\4 = (5.647u,2.319u);
+ z31\1\5c1 = (5.944u,1.792u);
+ z31\1\5c2 = (5.982u,0.405u);
+ z31\1\5 = (6.065u,-0.241u);
+ fill_or_unfill z31\0\0s
+ --z31\0\0
+ ..controls z31\0\1c1 and z31\0\1c2..z31\0\1
+ ..controls z31\0\2c1 and z31\0\2c2..z31\0\2
+ ..controls z31\0\3c1 and z31\0\3c2..z31\0\3
+ ..controls z31\0\4c1 and z31\0\4c2..z31\0\4
+ ..controls z31\0\5c1 and z31\0\5c2..z31\0\5
+ ..controls z31\0\6c1 and z31\0\6c2..z31\0\6
+ ..controls z31\0\7c1 and z31\0\7c2..z31\0\7
+ ..controls z31\0\8c1 and z31\0\8c2..z31\0\8
+ ..controls z31\0\9c1 and z31\0\9c2..z31\0\9
+ ..controls z31\0\10c1 and z31\0\10c2..z31\0\10
+ ..controls z31\0\11c1 and z31\0\11c2..z31\0\11
+ --z31\0\12
+ --z31\0\13
+ --z31\0\14
+ --z31\0\15
+ --z31\0\16
+ ..controls z31\0\17c1 and z31\0\17c2..z31\0\17
+ ..controls z31\0\18c1 and z31\0\18c2..z31\0\18
+ ..controls z31\0\19c1 and z31\0\19c2..z31\0\19
+ ..controls z31\0\20c1 and z31\0\20c2..z31\0\20
+ ..controls z31\0\21c1 and z31\0\21c2..cycle;
+ fill_or_unfill z31\1\0s
+ ..controls z31\1\0c1 and z31\1\0c2..z31\1\0
+ ..controls z31\1\1c1 and z31\1\1c2..z31\1\1
+ ..controls z31\1\2c1 and z31\1\2c2..z31\1\2
+ ..controls z31\1\3c1 and z31\1\3c2..z31\1\3
+ ..controls z31\1\4c1 and z31\1\4c2..z31\1\4
+ ..controls z31\1\5c1 and z31\1\5c2..z31\1\5
+ --cycle;
+ proof_labels (
+ 31\0\0,
+ 31\0\1,
+ 31\0\2,
+ 31\0\3,
+ 31\0\4,
+ 31\0\5,
+ 31\0\6,
+ 31\0\7,
+ 31\0\8,
+ 31\0\9,
+ 31\0\10,
+ 31\0\11,
+ 31\0\12,
+ 31\0\13,
+ 31\0\14,
+ 31\0\15,
+ 31\0\16,
+ 31\0\17,
+ 31\0\18,
+ 31\0\19,
+ 31\0\20,
+ 31\0\21,
+ 31\1\0,
+ 31\1\1,
+ 31\1\2,
+ 31\1\3,
+ 31\1\4,
+ 31\1\5,
+ 31\1\6,
+);
+endchar;
+
+beginchar (147, 8.190u#, 6.745u#, 3.613u#);
+ "rnga";
+ z32\0\0s = (1.445u,5.300u);
+ z32\0\0c1 = (2.608u,5.259u);
+ z32\0\0c2 = (2.994u,5.281u);
+ z32\0\0 = (3.372u,4.095u);
+ z32\0\1c1 = (2.752u,4.095u);
+ z32\0\1c2 = (1.341u,4.191u);
+ z32\0\1 = (0.861u,3.812u);
+ z32\0\2c1 = (0.679u,3.669u);
+ z32\0\2c2 = (0.617u,3.535u);
+ z32\0\2 = (0.517u,3.318u);
+ z32\0\3c1 = (0.422u,2.881u);
+ z32\0\3c2 = (0.482u,-2.463u);
+ z32\0\3 = (0.517u,-3.338u);
+ z32\0\4 = (2.409u,-3.338u);
+ z32\0\5 = (4.095u,-3.018u);
+ z32\0\6c1 = (4.847u,-2.953u);
+ z32\0\6c2 = (5.530u,-3.153u);
+ z32\0\6 = (6.263u,-3.320u);
+ z32\0\7 = (7.709u,-3.320u);
+ z32\0\8c1 = (7.466u,-3.070u);
+ z32\0\8c2 = (7.272u,-2.806u);
+ z32\0\8 = (6.959u,-2.564u);
+ z32\0\9c1 = (5.947u,-1.782u);
+ z32\0\9c2 = (3.423u,-1.243u);
+ z32\0\9 = (2.168u,-1.516u);
+ z32\0\10c1 = (1.790u,-1.598u);
+ z32\0\10c2 = (1.538u,-1.751u);
+ z32\0\10 = (1.204u,-1.927u);
+ z32\0\11c1 = (1.204u,-1.032u);
+ z32\0\11c2 = (1.001u,1.677u);
+ z32\0\11 = (1.590u,2.265u);
+ z32\0\12c1 = (2.384u,3.059u);
+ z32\0\12c2 = (5.316u,2.381u);
+ z32\0\12 = (6.450u,2.720u);
+ z32\0\13c1 = (7.079u,2.909u);
+ z32\0\13c2 = (7.328u,3.618u);
+ z32\0\13 = (6.666u,3.951u);
+ z32\0\14c1 = (6.379u,4.096u);
+ z32\0\14c2 = (5.860u,4.088u);
+ z32\0\14 = (5.540u,4.095u);
+ z32\0\15 = (3.854u,4.095u);
+ z32\0\16c1 = (3.954u,4.408u);
+ z32\0\16c2 = (3.987u,4.668u);
+ z32\0\16 = (4.238u,4.915u);
+ z32\0\17c1 = (4.709u,5.375u);
+ z32\0\17c2 = (6.337u,5.226u);
+ z32\0\17 = (6.065u,6.200u);
+ z32\0\18c1 = (6.008u,6.402u);
+ z32\0\18c2 = (5.883u,6.510u);
+ z32\0\18 = (5.702u,6.621u);
+ z32\0\19c1 = (5.280u,6.814u);
+ z32\0\19c2 = (2.677u,6.795u);
+ z32\0\19 = (2.200u,6.621u);
+ z32\0\20c1 = (1.991u,6.575u);
+ z32\0\20c2 = (1.827u,6.502u);
+ z32\0\20 = (1.685u,6.326u);
+ z32\0\21c1 = (1.451u,6.038u);
+ z32\0\21c2 = (1.473u,5.645u);
+ fill_or_unfill z32\0\0s
+ ..controls z32\0\0c1 and z32\0\0c2..z32\0\0
+ ..controls z32\0\1c1 and z32\0\1c2..z32\0\1
+ ..controls z32\0\2c1 and z32\0\2c2..z32\0\2
+ ..controls z32\0\3c1 and z32\0\3c2..z32\0\3
+ --z32\0\4
+ --z32\0\5
+ ..controls z32\0\6c1 and z32\0\6c2..z32\0\6
+ --z32\0\7
+ ..controls z32\0\8c1 and z32\0\8c2..z32\0\8
+ ..controls z32\0\9c1 and z32\0\9c2..z32\0\9
+ ..controls z32\0\10c1 and z32\0\10c2..z32\0\10
+ ..controls z32\0\11c1 and z32\0\11c2..z32\0\11
+ ..controls z32\0\12c1 and z32\0\12c2..z32\0\12
+ ..controls z32\0\13c1 and z32\0\13c2..z32\0\13
+ ..controls z32\0\14c1 and z32\0\14c2..z32\0\14
+ --z32\0\15
+ ..controls z32\0\16c1 and z32\0\16c2..z32\0\16
+ ..controls z32\0\17c1 and z32\0\17c2..z32\0\17
+ ..controls z32\0\18c1 and z32\0\18c2..z32\0\18
+ ..controls z32\0\19c1 and z32\0\19c2..z32\0\19
+ ..controls z32\0\20c1 and z32\0\20c2..z32\0\20
+ ..controls z32\0\21c1 and z32\0\21c2..cycle;
+ proof_labels (
+ 32\0\0,
+ 32\0\1,
+ 32\0\2,
+ 32\0\3,
+ 32\0\4,
+ 32\0\5,
+ 32\0\6,
+ 32\0\7,
+ 32\0\8,
+ 32\0\9,
+ 32\0\10,
+ 32\0\11,
+ 32\0\12,
+ 32\0\13,
+ 32\0\14,
+ 32\0\15,
+ 32\0\16,
+ 32\0\17,
+ 32\0\18,
+ 32\0\19,
+ 32\0\20,
+ 32\0\21,
+);
+endchar;
+
+beginchar (143, 7.468u#, 6.745u#, 4.095u#);
+ "rja";
+ z33\0\0s = (0.964u,5.300u);
+ z33\0\0 = (2.891u,5.300u);
+ z33\0\1 = (2.891u,4.095u);
+ z33\0\2 = (0.482u,4.095u);
+ z33\0\3 = (0.482u,-3.854u);
+ z33\0\4c1 = (3.356u,-3.276u);
+ z33\0\4c2 = (4.084u,-2.740u);
+ z33\0\4 = (6.986u,-3.854u);
+ z33\0\5c1 = (6.916u,-3.443u);
+ z33\0\5c2 = (6.893u,-3.120u);
+ z33\0\5 = (6.601u,-2.786u);
+ z33\0\6c1 = (5.598u,-1.639u);
+ z33\0\6c2 = (2.412u,-1.927u);
+ z33\0\6 = (0.964u,-1.927u);
+ z33\0\7 = (0.964u,-0.241u);
+ z33\0\8 = (4.577u,-0.241u);
+ z33\0\9c1 = (4.947u,-0.238u);
+ z33\0\9c2 = (5.619u,-0.258u);
+ z33\0\9 = (5.946u,-0.097u);
+ z33\0\10c1 = (6.629u,0.241u);
+ z33\0\10c2 = (6.406u,0.934u);
+ z33\0\10 = (5.746u,1.167u);
+ z33\0\11c1 = (5.278u,1.267u);
+ z33\0\11c2 = (1.729u,1.204u);
+ z33\0\11 = (0.964u,1.167u);
+ z33\0\12 = (0.964u,2.650u);
+ z33\0\13c1 = (1.776u,2.650u);
+ z33\0\13c2 = (5.452u,2.550u);
+ z33\0\13 = (5.946u,2.794u);
+ z33\0\14c1 = (6.493u,3.064u);
+ z33\0\14c2 = (6.493u,3.681u);
+ z33\0\14 = (5.946u,3.951u);
+ z33\0\15c1 = (5.517u,4.163u);
+ z33\0\15c2 = (3.924u,4.095u);
+ z33\0\15 = (3.372u,4.095u);
+ z33\0\16c1 = (3.447u,4.328u);
+ z33\0\16c2 = (3.465u,4.531u);
+ z33\0\16 = (3.614u,4.743u);
+ z33\0\17c1 = (4.127u,5.475u);
+ z33\0\17c2 = (5.148u,5.163u);
+ z33\0\17 = (5.500u,5.843u);
+ z33\0\18c1 = (5.787u,6.396u);
+ z33\0\18c2 = (5.244u,6.635u);
+ z33\0\18 = (4.804u,6.710u);
+ z33\0\19c1 = (4.137u,6.823u);
+ z33\0\19c2 = (1.627u,6.887u);
+ z33\0\19 = (1.210u,6.360u);
+ z33\0\20c1 = (0.974u,6.063u);
+ z33\0\20c2 = (0.993u,5.654u);
+ fill_or_unfill z33\0\0s
+ --z33\0\0
+ --z33\0\1
+ --z33\0\2
+ --z33\0\3
+ ..controls z33\0\4c1 and z33\0\4c2..z33\0\4
+ ..controls z33\0\5c1 and z33\0\5c2..z33\0\5
+ ..controls z33\0\6c1 and z33\0\6c2..z33\0\6
+ --z33\0\7
+ --z33\0\8
+ ..controls z33\0\9c1 and z33\0\9c2..z33\0\9
+ ..controls z33\0\10c1 and z33\0\10c2..z33\0\10
+ ..controls z33\0\11c1 and z33\0\11c2..z33\0\11
+ --z33\0\12
+ ..controls z33\0\13c1 and z33\0\13c2..z33\0\13
+ ..controls z33\0\14c1 and z33\0\14c2..z33\0\14
+ ..controls z33\0\15c1 and z33\0\15c2..z33\0\15
+ ..controls z33\0\16c1 and z33\0\16c2..z33\0\16
+ ..controls z33\0\17c1 and z33\0\17c2..z33\0\17
+ ..controls z33\0\18c1 and z33\0\18c2..z33\0\18
+ ..controls z33\0\19c1 and z33\0\19c2..z33\0\19
+ ..controls z33\0\20c1 and z33\0\20c2..cycle;
+ proof_labels (
+ 33\0\0,
+ 33\0\1,
+ 33\0\2,
+ 33\0\3,
+ 33\0\4,
+ 33\0\5,
+ 33\0\6,
+ 33\0\7,
+ 33\0\8,
+ 33\0\9,
+ 33\0\10,
+ 33\0\11,
+ 33\0\12,
+ 33\0\13,
+ 33\0\14,
+ 33\0\15,
+ 33\0\16,
+ 33\0\17,
+ 33\0\18,
+ 33\0\19,
+ 33\0\20,
+);
+endchar;
+
+beginchar (144, 9.154u#, 6.745u#, 7.468u#);
+ "rnya";
+ z34\0\0s = (1.204u,5.300u);
+ z34\0\0c1 = (2.592u,5.298u);
+ z34\0\0c2 = (3.124u,5.474u);
+ z34\0\0 = (4.095u,4.336u);
+ z34\0\1c1 = (3.051u,4.059u);
+ z34\0\1c2 = (1.313u,3.865u);
+ z34\0\1 = (0.728u,2.859u);
+ z34\0\2c1 = (0.551u,2.555u);
+ z34\0\2c2 = (0.536u,2.260u);
+ z34\0\2 = (0.482u,1.927u);
+ z34\0\3 = (2.891u,2.604u);
+ z34\0\4c1 = (4.389u,2.783u);
+ z34\0\4c2 = (6.583u,1.874u);
+ z34\0\4 = (7.682u,0.882u);
+ z34\0\5c1 = (7.983u,0.610u);
+ z34\0\5c2 = (8.190u,0.320u);
+ z34\0\5 = (8.431u,0.000u);
+ z34\0\6c1 = (9.031u,1.582u);
+ z34\0\6c2 = (7.524u,2.706u);
+ z34\0\6 = (6.263u,3.377u);
+ z34\0\7c1 = (5.790u,3.628u);
+ z34\0\7c2 = (5.079u,3.855u);
+ z34\0\7 = (4.721u,4.251u);
+ z34\0\8c1 = (4.426u,4.577u);
+ z34\0\8c2 = (4.406u,4.892u);
+ z34\0\8 = (4.336u,5.300u);
+ z34\0\9c1 = (5.079u,5.300u);
+ z34\0\9c2 = (6.698u,5.080u);
+ z34\0\9 = (7.083u,5.857u);
+ z34\0\10c1 = (7.219u,6.132u);
+ z34\0\10c2 = (7.202u,6.450u);
+ z34\0\10 = (7.227u,6.745u);
+ z34\0\11c1 = (6.270u,6.745u);
+ z34\0\11c2 = (2.388u,6.910u);
+ z34\0\11 = (1.790u,6.499u);
+ z34\0\12c1 = (1.361u,6.204u);
+ z34\0\12c2 = (1.307u,5.765u);
+ z34\1\0s = (2.409u,-2.168u);
+ z34\1\0c1 = (2.241u,-1.184u);
+ z34\1\0c2 = (2.081u,-1.154u);
+ z34\1\0 = (1.204u,-0.723u);
+ z34\1\1c1 = (1.510u,-0.355u);
+ z34\1\1c2 = (1.738u,-0.060u);
+ z34\1\1 = (2.179u,0.165u);
+ z34\1\2c1 = (2.893u,0.530u);
+ z34\1\2c2 = (5.060u,0.543u);
+ z34\1\2 = (4.700u,-0.726u);
+ z34\1\3c1 = (4.429u,-1.684u);
+ z34\1\3c2 = (2.518u,-2.424u);
+ z34\1\3 = (2.518u,-3.844u);
+ z34\1\4c1 = (2.518u,-4.840u);
+ z34\1\4c2 = (3.908u,-5.623u);
+ z34\1\4 = (4.675u,-4.911u);
+ z34\1\5c1 = (4.928u,-4.675u);
+ z34\1\5c2 = (4.961u,-4.401u);
+ z34\1\5 = (5.059u,-4.095u);
+ z34\1\6 = (3.372u,-3.854u);
+ z34\1\7c1 = (3.520u,-3.428u);
+ z34\1\7c2 = (3.625u,-3.061u);
+ z34\1\7 = (3.956u,-2.725u);
+ z34\1\8c1 = (4.734u,-1.935u);
+ z34\1\8c2 = (6.886u,-1.965u);
+ z34\1\8 = (6.820u,-3.395u);
+ z34\1\9c1 = (6.766u,-4.558u);
+ z34\1\9c2 = (4.915u,-6.113u);
+ z34\1\9 = (4.336u,-7.227u);
+ z34\1\10c1 = (4.794u,-7.153u);
+ z34\1\10c2 = (5.134u,-7.105u);
+ z34\1\10 = (5.537u,-6.842u);
+ z34\1\11c1 = (6.766u,-6.040u);
+ z34\1\11c2 = (8.947u,-2.706u);
+ z34\1\11 = (7.364u,-1.410u);
+ z34\1\12c1 = (6.816u,-0.961u);
+ z34\1\12c2 = (5.969u,-0.979u);
+ z34\1\12 = (5.300u,-0.964u);
+ z34\1\13c1 = (5.413u,-0.436u);
+ z34\1\13c2 = (5.696u,0.393u);
+ z34\1\13 = (5.455u,0.897u);
+ z34\1\14c1 = (4.979u,1.891u);
+ z34\1\14c2 = (2.573u,1.886u);
+ z34\1\14 = (1.814u,1.268u);
+ z34\1\15c1 = (1.089u,0.676u);
+ z34\1\15c2 = (0.350u,-1.251u);
+ z34\1\15 = (1.309u,-1.922u);
+ z34\1\16c1 = (1.634u,-2.149u);
+ z34\1\16c2 = (2.034u,-2.137u);
+ fill_or_unfill z34\0\0s
+ ..controls z34\0\0c1 and z34\0\0c2..z34\0\0
+ ..controls z34\0\1c1 and z34\0\1c2..z34\0\1
+ ..controls z34\0\2c1 and z34\0\2c2..z34\0\2
+ --z34\0\3
+ ..controls z34\0\4c1 and z34\0\4c2..z34\0\4
+ ..controls z34\0\5c1 and z34\0\5c2..z34\0\5
+ ..controls z34\0\6c1 and z34\0\6c2..z34\0\6
+ ..controls z34\0\7c1 and z34\0\7c2..z34\0\7
+ ..controls z34\0\8c1 and z34\0\8c2..z34\0\8
+ ..controls z34\0\9c1 and z34\0\9c2..z34\0\9
+ ..controls z34\0\10c1 and z34\0\10c2..z34\0\10
+ ..controls z34\0\11c1 and z34\0\11c2..z34\0\11
+ ..controls z34\0\12c1 and z34\0\12c2..cycle;
+ fill_or_unfill z34\1\0s
+ ..controls z34\1\0c1 and z34\1\0c2..z34\1\0
+ ..controls z34\1\1c1 and z34\1\1c2..z34\1\1
+ ..controls z34\1\2c1 and z34\1\2c2..z34\1\2
+ ..controls z34\1\3c1 and z34\1\3c2..z34\1\3
+ ..controls z34\1\4c1 and z34\1\4c2..z34\1\4
+ ..controls z34\1\5c1 and z34\1\5c2..z34\1\5
+ --z34\1\6
+ ..controls z34\1\7c1 and z34\1\7c2..z34\1\7
+ ..controls z34\1\8c1 and z34\1\8c2..z34\1\8
+ ..controls z34\1\9c1 and z34\1\9c2..z34\1\9
+ ..controls z34\1\10c1 and z34\1\10c2..z34\1\10
+ ..controls z34\1\11c1 and z34\1\11c2..z34\1\11
+ ..controls z34\1\12c1 and z34\1\12c2..z34\1\12
+ ..controls z34\1\13c1 and z34\1\13c2..z34\1\13
+ ..controls z34\1\14c1 and z34\1\14c2..z34\1\14
+ ..controls z34\1\15c1 and z34\1\15c2..z34\1\15
+ ..controls z34\1\16c1 and z34\1\16c2..cycle;
+ proof_labels (
+ 34\0\0,
+ 34\0\1,
+ 34\0\2,
+ 34\0\3,
+ 34\0\4,
+ 34\0\5,
+ 34\0\6,
+ 34\0\7,
+ 34\0\8,
+ 34\0\9,
+ 34\0\10,
+ 34\0\11,
+ 34\0\12,
+ 34\1\0,
+ 34\1\1,
+ 34\1\2,
+ 34\1\3,
+ 34\1\4,
+ 34\1\5,
+ 34\1\6,
+ 34\1\7,
+ 34\1\8,
+ 34\1\9,
+ 34\1\10,
+ 34\1\11,
+ 34\1\12,
+ 34\1\13,
+ 34\1\14,
+ 34\1\15,
+ 34\1\16,
+);
+endchar;
+
+beginchar (145, 6.745u#, 6.745u#, 8.431u#);
+ "rta";
+ z35\0\0s = (2.891u,4.095u);
+ z35\0\0c1 = (2.239u,4.079u);
+ z35\0\0c2 = (1.370u,4.090u);
+ z35\0\0 = (0.861u,3.612u);
+ z35\0\1c1 = (0.683u,3.445u);
+ z35\0\1c2 = (0.619u,3.311u);
+ z35\0\1 = (0.517u,3.081u);
+ z35\0\2c1 = (0.421u,2.629u);
+ z35\0\2c2 = (0.482u,-0.715u);
+ z35\0\2 = (0.517u,-1.445u);
+ z35\0\3c1 = (1.218u,-1.381u);
+ z35\0\3c2 = (1.985u,-1.140u);
+ z35\0\3 = (2.718u,-1.183u);
+ z35\0\4c1 = (3.501u,-1.230u);
+ z35\0\4c2 = (4.207u,-1.475u);
+ z35\0\4 = (4.804u,-1.993u);
+ z35\0\5c1 = (5.222u,-2.356u);
+ z35\0\5c2 = (5.592u,-2.816u);
+ z35\0\5 = (5.693u,-3.372u);
+ z35\0\6c1 = (5.892u,-4.464u);
+ z35\0\6c2 = (4.500u,-7.086u);
+ z35\0\6 = (4.095u,-8.190u);
+ z35\0\7c1 = (4.563u,-7.817u);
+ z35\0\7c2 = (4.911u,-7.500u);
+ z35\0\7 = (5.231u,-6.982u);
+ z35\0\8c1 = (6.042u,-5.672u);
+ z35\0\8c2 = (6.733u,-2.387u);
+ z35\0\8 = (5.980u,-0.974u);
+ z35\0\9c1 = (5.518u,-0.106u);
+ z35\0\9c2 = (4.786u,0.177u);
+ z35\0\9 = (3.854u,0.230u);
+ z35\0\10c1 = (2.801u,0.290u);
+ z35\0\10c2 = (1.963u,0.019u);
+ z35\0\10 = (1.015u,-0.241u);
+ z35\0\11c1 = (0.974u,0.158u);
+ z35\0\11c2 = (0.959u,0.574u);
+ z35\0\11 = (1.015u,0.963u);
+ z35\0\12c1 = (1.784u,3.543u);
+ z35\0\12c2 = (4.975u,2.161u);
+ z35\0\12 = (5.874u,2.895u);
+ z35\0\13c1 = (6.022u,3.017u);
+ z35\0\13c2 = (6.112u,3.177u);
+ z35\0\13 = (6.112u,3.372u);
+ z35\0\14c1 = (6.112u,4.340u);
+ z35\0\14c2 = (3.999u,4.095u);
+ z35\0\14 = (3.372u,4.095u);
+ z35\0\15c1 = (3.447u,4.328u);
+ z35\0\15c2 = (3.465u,4.531u);
+ z35\0\15 = (3.614u,4.743u);
+ z35\0\16c1 = (4.127u,5.475u);
+ z35\0\16c2 = (5.148u,5.163u);
+ z35\0\16 = (5.500u,5.843u);
+ z35\0\17c1 = (6.183u,7.159u);
+ z35\0\17c2 = (1.929u,6.944u);
+ z35\0\17 = (1.486u,6.154u);
+ z35\0\18c1 = (1.126u,5.513u);
+ z35\0\18c2 = (2.190u,5.259u);
+ z35\0\18 = (2.508u,4.919u);
+ z35\0\19c1 = (2.753u,4.656u);
+ z35\0\19c2 = (2.788u,4.418u);
+ fill_or_unfill z35\0\0s
+ ..controls z35\0\0c1 and z35\0\0c2..z35\0\0
+ ..controls z35\0\1c1 and z35\0\1c2..z35\0\1
+ ..controls z35\0\2c1 and z35\0\2c2..z35\0\2
+ ..controls z35\0\3c1 and z35\0\3c2..z35\0\3
+ ..controls z35\0\4c1 and z35\0\4c2..z35\0\4
+ ..controls z35\0\5c1 and z35\0\5c2..z35\0\5
+ ..controls z35\0\6c1 and z35\0\6c2..z35\0\6
+ ..controls z35\0\7c1 and z35\0\7c2..z35\0\7
+ ..controls z35\0\8c1 and z35\0\8c2..z35\0\8
+ ..controls z35\0\9c1 and z35\0\9c2..z35\0\9
+ ..controls z35\0\10c1 and z35\0\10c2..z35\0\10
+ ..controls z35\0\11c1 and z35\0\11c2..z35\0\11
+ ..controls z35\0\12c1 and z35\0\12c2..z35\0\12
+ ..controls z35\0\13c1 and z35\0\13c2..z35\0\13
+ ..controls z35\0\14c1 and z35\0\14c2..z35\0\14
+ ..controls z35\0\15c1 and z35\0\15c2..z35\0\15
+ ..controls z35\0\16c1 and z35\0\16c2..z35\0\16
+ ..controls z35\0\17c1 and z35\0\17c2..z35\0\17
+ ..controls z35\0\18c1 and z35\0\18c2..z35\0\18
+ ..controls z35\0\19c1 and z35\0\19c2..cycle;
+ proof_labels (
+ 35\0\0,
+ 35\0\1,
+ 35\0\2,
+ 35\0\3,
+ 35\0\4,
+ 35\0\5,
+ 35\0\6,
+ 35\0\7,
+ 35\0\8,
+ 35\0\9,
+ 35\0\10,
+ 35\0\11,
+ 35\0\12,
+ 35\0\13,
+ 35\0\14,
+ 35\0\15,
+ 35\0\16,
+ 35\0\17,
+ 35\0\18,
+ 35\0\19,
+);
+endchar;
+
+beginchar (146, 8.913u#, 6.745u#, 7.709u#);
+ "rda";
+ z36\0\0s = (1.686u,5.300u);
+ z36\0\0 = (4.095u,5.300u);
+ z36\0\1 = (4.095u,4.095u);
+ z36\0\2c1 = (3.268u,4.095u);
+ z36\0\2c2 = (1.740u,4.268u);
+ z36\0\2 = (1.209u,3.510u);
+ z36\0\3c1 = (1.021u,3.240u);
+ z36\0\3c2 = (1.016u,2.957u);
+ z36\0\3 = (0.964u,2.650u);
+ z36\0\4 = (1.927u,2.409u);
+ z36\0\5c1 = (1.367u,1.108u);
+ z36\0\5c2 = (0.704u,-0.026u);
+ z36\0\5 = (0.482u,-1.445u);
+ z36\0\6c1 = (1.361u,-1.355u);
+ z36\0\6c2 = (2.258u,-0.956u);
+ z36\0\6 = (3.132u,-1.018u);
+ z36\0\7c1 = (5.073u,-1.155u);
+ z36\0\7c2 = (6.896u,-3.084u);
+ z36\0\7 = (7.550u,-4.818u);
+ z36\0\8c1 = (7.867u,-5.659u);
+ z36\0\8c2 = (7.930u,-6.579u);
+ z36\0\8 = (7.950u,-7.468u);
+ z36\0\9 = (8.391u,-7.468u);
+ z36\0\10c1 = (8.431u,-6.535u);
+ z36\0\10c2 = (8.522u,-5.493u);
+ z36\0\10 = (8.391u,-4.577u);
+ z36\0\11c1 = (8.104u,-3.264u);
+ z36\0\11c2 = (6.786u,-1.017u);
+ z36\0\11 = (5.710u,-0.239u);
+ z36\0\12c1 = (5.371u,0.006u);
+ z36\0\12c2 = (4.976u,0.175u);
+ z36\0\12 = (4.576u,0.292u);
+ z36\0\13c1 = (3.656u,0.561u);
+ z36\0\13c2 = (2.635u,0.482u);
+ z36\0\13 = (1.686u,0.482u);
+ z36\0\14c1 = (3.501u,3.828u);
+ z36\0\14c2 = (5.994u,2.034u);
+ z36\0\14 = (7.079u,2.892u);
+ z36\0\15c1 = (7.272u,3.046u);
+ z36\0\15c2 = (7.375u,3.280u);
+ z36\0\15 = (7.295u,3.524u);
+ z36\0\16c1 = (7.050u,4.270u);
+ z36\0\16c2 = (5.209u,4.095u);
+ z36\0\16 = (4.577u,4.095u);
+ z36\0\17 = (4.577u,5.300u);
+ z36\0\18c1 = (5.174u,5.300u);
+ z36\0\18c2 = (6.777u,5.108u);
+ z36\0\18 = (6.807u,6.019u);
+ z36\0\19c1 = (6.816u,6.302u);
+ z36\0\19c2 = (6.667u,6.479u);
+ z36\0\19 = (6.425u,6.550u);
+ z36\0\20c1 = (5.863u,6.884u);
+ z36\0\20c2 = (2.986u,6.819u);
+ z36\0\20 = (2.444u,6.550u);
+ z36\0\21c1 = (1.942u,6.203u);
+ z36\0\21c2 = (1.843u,5.814u);
+ fill_or_unfill z36\0\0s
+ --z36\0\0
+ --z36\0\1
+ ..controls z36\0\2c1 and z36\0\2c2..z36\0\2
+ ..controls z36\0\3c1 and z36\0\3c2..z36\0\3
+ --z36\0\4
+ ..controls z36\0\5c1 and z36\0\5c2..z36\0\5
+ ..controls z36\0\6c1 and z36\0\6c2..z36\0\6
+ ..controls z36\0\7c1 and z36\0\7c2..z36\0\7
+ ..controls z36\0\8c1 and z36\0\8c2..z36\0\8
+ --z36\0\9
+ ..controls z36\0\10c1 and z36\0\10c2..z36\0\10
+ ..controls z36\0\11c1 and z36\0\11c2..z36\0\11
+ ..controls z36\0\12c1 and z36\0\12c2..z36\0\12
+ ..controls z36\0\13c1 and z36\0\13c2..z36\0\13
+ ..controls z36\0\14c1 and z36\0\14c2..z36\0\14
+ ..controls z36\0\15c1 and z36\0\15c2..z36\0\15
+ ..controls z36\0\16c1 and z36\0\16c2..z36\0\16
+ --z36\0\17
+ ..controls z36\0\18c1 and z36\0\18c2..z36\0\18
+ ..controls z36\0\19c1 and z36\0\19c2..z36\0\19
+ ..controls z36\0\20c1 and z36\0\20c2..z36\0\20
+ ..controls z36\0\21c1 and z36\0\21c2..cycle;
+ proof_labels (
+ 36\0\0,
+ 36\0\1,
+ 36\0\2,
+ 36\0\3,
+ 36\0\4,
+ 36\0\5,
+ 36\0\6,
+ 36\0\7,
+ 36\0\8,
+ 36\0\9,
+ 36\0\10,
+ 36\0\11,
+ 36\0\12,
+ 36\0\13,
+ 36\0\14,
+ 36\0\15,
+ 36\0\16,
+ 36\0\17,
+ 36\0\18,
+ 36\0\19,
+ 36\0\20,
+ 36\0\21,
+);
+endchar;
+
+beginchar (142, 7.709u#, 6.745u#, 7.227u#);
+ "rna";
+ z37\0\0s = (2.168u,5.300u);
+ z37\0\0c1 = (3.330u,5.259u);
+ z37\0\0c2 = (3.716u,5.281u);
+ z37\0\0 = (4.095u,4.095u);
+ z37\0\1c1 = (2.672u,4.090u);
+ z37\0\1c2 = (2.064u,4.283u);
+ z37\0\1 = (1.927u,2.650u);
+ z37\0\2c1 = (3.137u,2.552u);
+ z37\0\2c2 = (3.490u,2.402u);
+ z37\0\2 = (3.854u,1.204u);
+ z37\0\3c1 = (2.410u,1.173u);
+ z37\0\3c2 = (0.699u,1.086u);
+ z37\0\3 = (0.517u,-0.724u);
+ z37\0\4c1 = (0.375u,-2.132u);
+ z37\0\4c2 = (1.368u,-3.489u);
+ z37\0\4 = (2.887u,-3.176u);
+ z37\0\5c1 = (3.306u,-3.090u);
+ z37\0\5c2 = (3.647u,-2.904u);
+ z37\0\5 = (3.927u,-2.578u);
+ z37\0\6c1 = (4.317u,-2.124u);
+ z37\0\6c2 = (4.443u,-1.527u);
+ z37\0\6 = (4.577u,-0.964u);
+ z37\0\7c1 = (5.534u,-2.100u);
+ z37\0\7c2 = (6.284u,-3.350u);
+ z37\0\7 = (6.618u,-4.818u);
+ z37\0\8 = (6.986u,-6.986u);
+ z37\0\9c1 = (7.575u,-5.501u);
+ z37\0\9c2 = (7.055u,-2.121u);
+ z37\0\9 = (6.306u,-0.726u);
+ z37\0\10c1 = (6.129u,-0.396u);
+ z37\0\10c2 = (5.934u,-0.111u);
+ z37\0\10 = (5.689u,0.172u);
+ z37\0\11c1 = (5.339u,0.577u);
+ z37\0\11c2 = (4.623u,1.095u);
+ z37\0\11 = (4.624u,1.676u);
+ z37\0\12c1 = (4.626u,2.705u);
+ z37\0\12c2 = (6.043u,2.453u);
+ z37\0\12 = (6.499u,3.035u);
+ z37\0\13c1 = (6.734u,3.335u);
+ z37\0\13c2 = (6.715u,3.739u);
+ z37\0\13 = (6.745u,4.095u);
+ z37\0\14 = (4.577u,4.095u);
+ z37\0\15 = (4.577u,5.300u);
+ z37\0\16c1 = (5.949u,5.318u);
+ z37\0\16c2 = (6.378u,5.239u);
+ z37\0\16 = (6.504u,6.745u);
+ z37\0\17c1 = (5.688u,6.745u);
+ z37\0\17c2 = (2.891u,6.962u);
+ z37\0\17 = (2.414u,6.360u);
+ z37\0\18c1 = (2.179u,6.063u);
+ z37\0\18c2 = (2.198u,5.654u);
+ z37\1\0s = (2.412u,0.068u);
+ z37\1\0c1 = (5.309u,-0.263u);
+ z37\1\0c2 = (4.063u,-2.765u);
+ z37\1\0 = (2.412u,-2.671u);
+ z37\1\1c1 = (1.121u,-2.598u);
+ z37\1\1c2 = (0.517u,-0.795u);
+ z37\1\1 = (1.741u,-0.119u);
+ z37\1\2c1 = (1.978u,0.013u);
+ z37\1\2c2 = (2.161u,0.011u);
+ fill_or_unfill z37\0\0s
+ ..controls z37\0\0c1 and z37\0\0c2..z37\0\0
+ ..controls z37\0\1c1 and z37\0\1c2..z37\0\1
+ ..controls z37\0\2c1 and z37\0\2c2..z37\0\2
+ ..controls z37\0\3c1 and z37\0\3c2..z37\0\3
+ ..controls z37\0\4c1 and z37\0\4c2..z37\0\4
+ ..controls z37\0\5c1 and z37\0\5c2..z37\0\5
+ ..controls z37\0\6c1 and z37\0\6c2..z37\0\6
+ ..controls z37\0\7c1 and z37\0\7c2..z37\0\7
+ --z37\0\8
+ ..controls z37\0\9c1 and z37\0\9c2..z37\0\9
+ ..controls z37\0\10c1 and z37\0\10c2..z37\0\10
+ ..controls z37\0\11c1 and z37\0\11c2..z37\0\11
+ ..controls z37\0\12c1 and z37\0\12c2..z37\0\12
+ ..controls z37\0\13c1 and z37\0\13c2..z37\0\13
+ --z37\0\14
+ --z37\0\15
+ ..controls z37\0\16c1 and z37\0\16c2..z37\0\16
+ ..controls z37\0\17c1 and z37\0\17c2..z37\0\17
+ ..controls z37\0\18c1 and z37\0\18c2..cycle;
+ fill_or_unfill z37\1\0s
+ ..controls z37\1\0c1 and z37\1\0c2..z37\1\0
+ ..controls z37\1\1c1 and z37\1\1c2..z37\1\1
+ ..controls z37\1\2c1 and z37\1\2c2..cycle;
+ proof_labels (
+ 37\0\0,
+ 37\0\1,
+ 37\0\2,
+ 37\0\3,
+ 37\0\4,
+ 37\0\5,
+ 37\0\6,
+ 37\0\7,
+ 37\0\8,
+ 37\0\9,
+ 37\0\10,
+ 37\0\11,
+ 37\0\12,
+ 37\0\13,
+ 37\0\14,
+ 37\0\15,
+ 37\0\16,
+ 37\0\17,
+ 37\0\18,
+ 37\1\0,
+ 37\1\1,
+ 37\1\2,
+);
+endchar;
+
+beginchar (148, 9.154u#, 6.745u#, 4.577u#);
+ "rba";
+ z38\0\0s = (2.891u,5.300u);
+ z38\0\0c1 = (4.115u,5.284u);
+ z38\0\0c2 = (4.646u,5.386u);
+ z38\0\0 = (5.059u,4.095u);
+ z38\0\1c1 = (4.413u,4.095u);
+ z38\0\1c2 = (2.564u,4.212u);
+ z38\0\1 = (2.096u,3.856u);
+ z38\0\2c1 = (1.457u,3.370u);
+ z38\0\2c2 = (1.591u,2.165u);
+ z38\0\2 = (1.403u,1.445u);
+ z38\0\3 = (0.628u,-0.723u);
+ z38\0\4c1 = (0.504u,-1.207u);
+ z38\0\4c2 = (0.494u,-1.673u);
+ z38\0\4 = (0.482u,-2.168u);
+ z38\0\5 = (2.650u,-1.740u);
+ z38\0\6c1 = (3.605u,-1.667u);
+ z38\0\6c2 = (5.225u,-2.051u);
+ z38\0\6 = (6.022u,-2.577u);
+ z38\0\7 = (7.709u,-3.965u);
+ z38\0\8 = (8.432u,-4.336u);
+ z38\0\9 = (8.432u,0.964u);
+ z38\0\10 = (8.672u,4.118u);
+ z38\0\11 = (7.709u,4.118u);
+ z38\0\12 = (6.987u,4.118u);
+ z38\0\13 = (6.523u,4.118u);
+ z38\0\14c1 = (6.289u,4.252u);
+ z38\0\14c2 = (5.994u,4.334u);
+ z38\0\14 = (5.931u,4.618u);
+ z38\0\15c1 = (5.794u,5.236u);
+ z38\0\15c2 = (7.250u,5.360u);
+ z38\0\15 = (7.634u,5.685u);
+ z38\0\16c1 = (7.995u,5.990u);
+ z38\0\16c2 = (8.062u,6.321u);
+ z38\0\16 = (8.190u,6.745u);
+ z38\0\17c1 = (7.277u,6.745u);
+ z38\0\17c2 = (4.318u,6.893u);
+ z38\0\17 = (3.667u,6.499u);
+ z38\0\18c1 = (3.187u,6.208u);
+ z38\0\18c2 = (3.065u,5.793u);
+ z38\1\0s = (6.986u,2.409u);
+ z38\1\0 = (7.554u,-0.482u);
+ z38\1\1c1 = (7.715u,-1.238u);
+ z38\1\1c2 = (7.906u,-1.866u);
+ z38\1\1 = (7.950u,-2.650u);
+ z38\1\2 = (5.782u,-1.258u);
+ z38\1\3c1 = (5.206u,-0.919u);
+ z38\1\3c2 = (3.536u,-0.230u);
+ z38\1\3 = (2.891u,-0.047u);
+ z38\1\4c1 = (2.415u,0.008u);
+ z38\1\4c2 = (1.928u,-0.005u);
+ z38\1\4 = (1.445u,-0.047u);
+ z38\1\5c1 = (2.951u,2.791u);
+ z38\1\5c2 = (4.003u,2.943u);
+ fill_or_unfill z38\0\0s
+ ..controls z38\0\0c1 and z38\0\0c2..z38\0\0
+ ..controls z38\0\1c1 and z38\0\1c2..z38\0\1
+ ..controls z38\0\2c1 and z38\0\2c2..z38\0\2
+ --z38\0\3
+ ..controls z38\0\4c1 and z38\0\4c2..z38\0\4
+ --z38\0\5
+ ..controls z38\0\6c1 and z38\0\6c2..z38\0\6
+ --z38\0\7
+ --z38\0\8
+ --z38\0\9
+ --z38\0\10
+ --z38\0\11
+ --z38\0\12
+ --z38\0\13
+ ..controls z38\0\14c1 and z38\0\14c2..z38\0\14
+ ..controls z38\0\15c1 and z38\0\15c2..z38\0\15
+ ..controls z38\0\16c1 and z38\0\16c2..z38\0\16
+ ..controls z38\0\17c1 and z38\0\17c2..z38\0\17
+ ..controls z38\0\18c1 and z38\0\18c2..cycle;
+ fill_or_unfill z38\1\0s
+ --z38\1\0
+ ..controls z38\1\1c1 and z38\1\1c2..z38\1\1
+ --z38\1\2
+ ..controls z38\1\3c1 and z38\1\3c2..z38\1\3
+ ..controls z38\1\4c1 and z38\1\4c2..z38\1\4
+ ..controls z38\1\5c1 and z38\1\5c2..cycle;
+ proof_labels (
+ 38\0\0,
+ 38\0\1,
+ 38\0\2,
+ 38\0\3,
+ 38\0\4,
+ 38\0\5,
+ 38\0\6,
+ 38\0\7,
+ 38\0\8,
+ 38\0\9,
+ 38\0\10,
+ 38\0\11,
+ 38\0\12,
+ 38\0\13,
+ 38\0\14,
+ 38\0\15,
+ 38\0\16,
+ 38\0\17,
+ 38\0\18,
+ 38\1\0,
+ 38\1\1,
+ 38\1\2,
+ 38\1\3,
+ 38\1\4,
+ 38\1\5,
+);
+endchar;
+
+beginchar (149, 10.359u#, 6.745u#, 4.577u#);
+ "rma";
+ z39\0\0s = (3.613u,4.095u);
+ z39\0\0c1 = (2.177u,4.090u);
+ z39\0\0c2 = (1.556u,4.244u);
+ z39\0\0 = (1.204u,2.650u);
+ z39\0\1c1 = (2.342u,2.465u);
+ z39\0\1c2 = (2.624u,2.240u);
+ z39\0\1 = (3.132u,1.204u);
+ z39\0\2c1 = (2.727u,1.181u);
+ z39\0\2c2 = (2.321u,1.182u);
+ z39\0\2 = (1.937u,1.027u);
+ z39\0\3c1 = (-0.426u,0.069u);
+ z39\0\3c2 = (0.504u,-3.467u);
+ z39\0\3 = (3.127u,-3.096u);
+ z39\0\4c1 = (3.645u,-3.022u);
+ z39\0\4c2 = (3.997u,-2.849u);
+ z39\0\4 = (4.252u,-2.374u);
+ z39\0\5c1 = (4.523u,-1.871u);
+ z39\0\5c2 = (4.501u,-1.052u);
+ z39\0\5 = (4.577u,-0.482u);
+ z39\0\6c1 = (5.970u,-1.011u);
+ z39\0\6c2 = (7.924u,-2.003u);
+ z39\0\6 = (8.631u,-3.373u);
+ z39\0\7c1 = (8.795u,-3.692u);
+ z39\0\7c2 = (8.840u,-3.993u);
+ z39\0\7 = (8.913u,-4.336u);
+ z39\0\8 = (9.415u,-4.336u);
+ z39\0\9c1 = (9.395u,-2.758u);
+ z39\0\9c2 = (9.279u,-1.084u);
+ z39\0\9 = (9.415u,0.482u);
+ z39\0\10c1 = (9.518u,1.308u);
+ z39\0\10c2 = (9.895u,2.312u);
+ z39\0\10 = (9.820u,3.118u);
+ z39\0\11c1 = (9.699u,4.426u);
+ z39\0\11c2 = (7.872u,4.248u);
+ z39\0\11 = (7.646u,3.547u);
+ z39\0\12c1 = (7.480u,3.029u);
+ z39\0\12c2 = (8.171u,2.212u);
+ z39\0\12 = (8.338u,1.677u);
+ z39\0\13c1 = (8.671u,0.607u);
+ z39\0\13c2 = (8.672u,-0.578u);
+ z39\0\13 = (8.672u,-1.686u);
+ z39\0\14 = (7.508u,-0.684u);
+ z39\0\15 = (6.464u,0.314u);
+ z39\0\16c1 = (5.963u,0.685u);
+ z39\0\16c2 = (5.380u,0.856u);
+ z39\0\16 = (4.823u,1.113u);
+ z39\0\17c1 = (4.481u,1.270u);
+ z39\0\17c2 = (3.730u,1.581u);
+ z39\0\17 = (3.935u,2.090u);
+ z39\0\18c1 = (4.242u,2.851u);
+ z39\0\18c2 = (5.694u,2.373u);
+ z39\0\18 = (6.258u,3.207u);
+ z39\0\19c1 = (6.446u,3.485u);
+ z39\0\19c2 = (6.452u,3.781u);
+ z39\0\19 = (6.504u,4.095u);
+ z39\0\20 = (4.095u,4.095u);
+ z39\0\21 = (4.095u,5.307u);
+ z39\0\22 = (5.058u,5.307u);
+ z39\0\23c1 = (5.527u,5.355u);
+ z39\0\23c2 = (6.644u,5.646u);
+ z39\0\23 = (6.223u,6.365u);
+ z39\0\24c1 = (6.118u,6.543u);
+ z39\0\24c2 = (5.932u,6.614u);
+ z39\0\24 = (5.745u,6.635u);
+ z39\0\25c1 = (5.286u,6.807u);
+ z39\0\25c2 = (2.650u,6.801u);
+ z39\0\25 = (2.245u,6.635u);
+ z39\0\26c1 = (2.008u,6.484u);
+ z39\0\26c2 = (1.837u,6.301u);
+ z39\0\26 = (1.837u,6.022u);
+ z39\0\27c1 = (1.837u,5.286u);
+ z39\0\27c2 = (2.939u,5.367u);
+ z39\0\27 = (3.372u,4.743u);
+ z39\0\28c1 = (3.520u,4.530u);
+ z39\0\28c2 = (3.539u,4.329u);
+ z39\1\0s = (2.431u,-0.116u);
+ z39\1\0c1 = (2.675u,-0.110u);
+ z39\1\0c2 = (2.828u,-0.036u);
+ z39\1\0 = (3.097u,-0.116u);
+ z39\1\1c1 = (4.278u,-0.307u);
+ z39\1\1c2 = (4.239u,-2.041u);
+ z39\1\1 = (3.097u,-2.418u);
+ z39\1\2c1 = (1.969u,-2.797u);
+ z39\1\2c2 = (1.109u,-1.501u);
+ z39\1\2 = (1.865u,-0.557u);
+ z39\1\3c1 = (2.045u,-0.333u);
+ z39\1\3c2 = (2.205u,-0.291u);
+ z39\2\0s = (8.913u,-1.686u);
+ z39\2\0 = (8.913u,-1.927u);
+ z39\2\1 = (8.672u,-1.686u);
+ fill_or_unfill z39\0\0s
+ ..controls z39\0\0c1 and z39\0\0c2..z39\0\0
+ ..controls z39\0\1c1 and z39\0\1c2..z39\0\1
+ ..controls z39\0\2c1 and z39\0\2c2..z39\0\2
+ ..controls z39\0\3c1 and z39\0\3c2..z39\0\3
+ ..controls z39\0\4c1 and z39\0\4c2..z39\0\4
+ ..controls z39\0\5c1 and z39\0\5c2..z39\0\5
+ ..controls z39\0\6c1 and z39\0\6c2..z39\0\6
+ ..controls z39\0\7c1 and z39\0\7c2..z39\0\7
+ --z39\0\8
+ ..controls z39\0\9c1 and z39\0\9c2..z39\0\9
+ ..controls z39\0\10c1 and z39\0\10c2..z39\0\10
+ ..controls z39\0\11c1 and z39\0\11c2..z39\0\11
+ ..controls z39\0\12c1 and z39\0\12c2..z39\0\12
+ ..controls z39\0\13c1 and z39\0\13c2..z39\0\13
+ --z39\0\14
+ --z39\0\15
+ ..controls z39\0\16c1 and z39\0\16c2..z39\0\16
+ ..controls z39\0\17c1 and z39\0\17c2..z39\0\17
+ ..controls z39\0\18c1 and z39\0\18c2..z39\0\18
+ ..controls z39\0\19c1 and z39\0\19c2..z39\0\19
+ --z39\0\20
+ --z39\0\21
+ --z39\0\22
+ ..controls z39\0\23c1 and z39\0\23c2..z39\0\23
+ ..controls z39\0\24c1 and z39\0\24c2..z39\0\24
+ ..controls z39\0\25c1 and z39\0\25c2..z39\0\25
+ ..controls z39\0\26c1 and z39\0\26c2..z39\0\26
+ ..controls z39\0\27c1 and z39\0\27c2..z39\0\27
+ ..controls z39\0\28c1 and z39\0\28c2..cycle;
+ fill_or_unfill z39\1\0s
+ ..controls z39\1\0c1 and z39\1\0c2..z39\1\0
+ ..controls z39\1\1c1 and z39\1\1c2..z39\1\1
+ ..controls z39\1\2c1 and z39\1\2c2..z39\1\2
+ ..controls z39\1\3c1 and z39\1\3c2..cycle;
+ fill_or_unfill z39\2\0s
+ --z39\2\0
+ --z39\2\1
+ --cycle;
+ proof_labels (
+ 39\0\0,
+ 39\0\1,
+ 39\0\2,
+ 39\0\3,
+ 39\0\4,
+ 39\0\5,
+ 39\0\6,
+ 39\0\7,
+ 39\0\8,
+ 39\0\9,
+ 39\0\10,
+ 39\0\11,
+ 39\0\12,
+ 39\0\13,
+ 39\0\14,
+ 39\0\15,
+ 39\0\16,
+ 39\0\17,
+ 39\0\18,
+ 39\0\19,
+ 39\0\20,
+ 39\0\21,
+ 39\0\22,
+ 39\0\23,
+ 39\0\24,
+ 39\0\25,
+ 39\0\26,
+ 39\0\27,
+ 39\0\28,
+ 39\1\0,
+ 39\1\1,
+ 39\1\2,
+ 39\1\3,
+ 39\2\0,
+ 39\2\1,
+ 39\2\2,
+);
+endchar;
+
+beginchar (150, 9.877u#, 6.745u#, 4.095u#);
+ "rtsa";
+ z40\0\0s = (3.854u,4.095u);
+ z40\0\0c1 = (2.402u,4.090u);
+ z40\0\0c2 = (1.851u,4.235u);
+ z40\0\0 = (1.445u,2.650u);
+ z40\0\1 = (4.577u,2.650u);
+ z40\0\2c1 = (4.082u,0.324u);
+ z40\0\2c2 = (2.517u,0.123u);
+ z40\0\2 = (0.482u,0.482u);
+ z40\0\3c1 = (0.609u,-0.444u);
+ z40\0\3c2 = (1.517u,-2.667u);
+ z40\0\3 = (2.219u,-3.250u);
+ z40\0\4c1 = (3.064u,-3.951u);
+ z40\0\4c2 = (5.525u,-4.105u);
+ z40\0\4 = (6.479u,-3.571u);
+ z40\0\5c1 = (6.949u,-3.308u);
+ z40\0\5c2 = (7.239u,-2.900u);
+ z40\0\5 = (7.432u,-2.405u);
+ z40\0\6c1 = (8.394u,0.065u);
+ z40\0\6c2 = (5.014u,0.809u);
+ z40\0\6 = (5.409u,2.093u);
+ z40\0\7c1 = (5.623u,2.790u);
+ z40\0\7c2 = (6.812u,2.497u);
+ z40\0\7 = (7.319u,3.035u);
+ z40\0\8c1 = (7.888u,3.638u);
+ z40\0\8c2 = (7.291u,4.377u);
+ z40\0\8 = (7.674u,4.918u);
+ z40\0\9c1 = (8.240u,5.719u);
+ z40\0\9c2 = (9.081u,4.918u);
+ z40\0\9 = (9.395u,6.745u);
+ z40\0\10c1 = (8.774u,6.731u);
+ z40\0\10c2 = (7.855u,6.753u);
+ z40\0\10 = (7.371u,6.299u);
+ z40\0\11c1 = (6.739u,5.705u);
+ z40\0\11c2 = (7.242u,4.661u);
+ z40\0\11 = (6.228u,4.208u);
+ z40\0\12c1 = (5.968u,4.132u);
+ z40\0\12c2 = (5.587u,4.114u);
+ z40\0\12 = (5.313u,4.208u);
+ z40\0\13c1 = (4.725u,4.308u);
+ z40\0\13c2 = (4.604u,4.585u);
+ z40\0\13 = (4.336u,5.059u);
+ z40\0\14 = (5.286u,5.303u);
+ z40\0\15c1 = (5.556u,5.417u);
+ z40\0\15c2 = (5.843u,5.563u);
+ z40\0\15 = (5.982u,5.840u);
+ z40\0\16c1 = (6.628u,7.129u);
+ z40\0\16c2 = (2.638u,6.971u);
+ z40\0\16 = (2.208u,6.174u);
+ z40\0\17c1 = (1.807u,5.428u);
+ z40\0\17c2 = (3.110u,5.280u);
+ z40\0\17 = (3.470u,4.916u);
+ z40\0\18c1 = (3.720u,4.663u);
+ z40\0\18c2 = (3.753u,4.412u);
+ z40\1\0s = (4.336u,0.482u);
+ z40\1\0c1 = (4.519u,0.157u);
+ z40\1\0c2 = (4.670u,-0.127u);
+ z40\1\0 = (4.918u,-0.413u);
+ z40\1\1c1 = (5.344u,-0.907u);
+ z40\1\1c2 = (6.244u,-1.531u);
+ z40\1\1 = (6.395u,-2.165u);
+ z40\1\2c1 = (6.690u,-3.401u);
+ z40\1\2c2 = (4.933u,-3.637u);
+ z40\1\2 = (4.120u,-3.232u);
+ z40\1\3c1 = (3.092u,-2.720u);
+ z40\1\3c2 = (2.578u,-1.248u);
+ z40\1\3 = (2.168u,-0.241u);
+ fill_or_unfill z40\0\0s
+ ..controls z40\0\0c1 and z40\0\0c2..z40\0\0
+ --z40\0\1
+ ..controls z40\0\2c1 and z40\0\2c2..z40\0\2
+ ..controls z40\0\3c1 and z40\0\3c2..z40\0\3
+ ..controls z40\0\4c1 and z40\0\4c2..z40\0\4
+ ..controls z40\0\5c1 and z40\0\5c2..z40\0\5
+ ..controls z40\0\6c1 and z40\0\6c2..z40\0\6
+ ..controls z40\0\7c1 and z40\0\7c2..z40\0\7
+ ..controls z40\0\8c1 and z40\0\8c2..z40\0\8
+ ..controls z40\0\9c1 and z40\0\9c2..z40\0\9
+ ..controls z40\0\10c1 and z40\0\10c2..z40\0\10
+ ..controls z40\0\11c1 and z40\0\11c2..z40\0\11
+ ..controls z40\0\12c1 and z40\0\12c2..z40\0\12
+ ..controls z40\0\13c1 and z40\0\13c2..z40\0\13
+ --z40\0\14
+ ..controls z40\0\15c1 and z40\0\15c2..z40\0\15
+ ..controls z40\0\16c1 and z40\0\16c2..z40\0\16
+ ..controls z40\0\17c1 and z40\0\17c2..z40\0\17
+ ..controls z40\0\18c1 and z40\0\18c2..cycle;
+ fill_or_unfill z40\1\0s
+ ..controls z40\1\0c1 and z40\1\0c2..z40\1\0
+ ..controls z40\1\1c1 and z40\1\1c2..z40\1\1
+ ..controls z40\1\2c1 and z40\1\2c2..z40\1\2
+ ..controls z40\1\3c1 and z40\1\3c2..z40\1\3
+ --cycle;
+ proof_labels (
+ 40\0\0,
+ 40\0\1,
+ 40\0\2,
+ 40\0\3,
+ 40\0\4,
+ 40\0\5,
+ 40\0\6,
+ 40\0\7,
+ 40\0\8,
+ 40\0\9,
+ 40\0\10,
+ 40\0\11,
+ 40\0\12,
+ 40\0\13,
+ 40\0\14,
+ 40\0\15,
+ 40\0\16,
+ 40\0\17,
+ 40\0\18,
+ 40\1\0,
+ 40\1\1,
+ 40\1\2,
+ 40\1\3,
+ 40\1\4,
+);
+endchar;
+
+beginchar (151, 8.431u#, 6.745u#, 4.336u#);
+ "rdza";
+ z41\0\0s = (0.723u,5.300u);
+ z41\0\0c1 = (1.947u,5.284u);
+ z41\0\0c2 = (2.478u,5.386u);
+ z41\0\0 = (2.891u,4.095u);
+ z41\0\1c1 = (2.372u,4.095u);
+ z41\0\1c2 = (1.275u,4.172u);
+ z41\0\1 = (0.867u,3.849u);
+ z41\0\2c1 = (0.685u,3.705u);
+ z41\0\2c2 = (0.621u,3.554u);
+ z41\0\2 = (0.520u,3.337u);
+ z41\0\3c1 = (0.417u,2.861u);
+ z41\0\3c2 = (0.482u,-2.652u);
+ z41\0\3 = (0.520u,-3.613u);
+ z41\0\4c1 = (1.848u,-3.551u);
+ z41\0\4c2 = (3.219u,-3.042u);
+ z41\0\4 = (4.577u,-3.174u);
+ z41\0\5c1 = (5.693u,-3.282u);
+ z41\0\5c2 = (6.634u,-3.843u);
+ z41\0\5 = (7.709u,-4.095u);
+ z41\0\6c1 = (6.795u,-2.252u);
+ z41\0\6c2 = (4.600u,-1.624u);
+ z41\0\6 = (2.650u,-1.711u);
+ z41\0\7 = (0.964u,-1.927u);
+ z41\0\8c1 = (0.995u,-1.543u);
+ z41\0\8c2 = (0.985u,-1.135u);
+ z41\0\8 = (1.210u,-0.798u);
+ z41\0\9c1 = (2.033u,0.435u);
+ z41\0\9c2 = (5.717u,-0.843u);
+ z41\0\9 = (6.499u,0.144u);
+ z41\0\10c1 = (6.735u,0.442u);
+ z41\0\10c2 = (6.716u,0.850u);
+ z41\0\10 = (6.745u,1.204u);
+ z41\0\11 = (0.964u,1.204u);
+ z41\0\12 = (0.964u,2.650u);
+ z41\0\13c1 = (1.806u,2.650u);
+ z41\0\13c2 = (5.682u,2.547u);
+ z41\0\13 = (6.188u,2.794u);
+ z41\0\14c1 = (6.440u,2.917u);
+ z41\0\14c2 = (6.598u,3.098u);
+ z41\0\14 = (6.637u,3.382u);
+ z41\0\15c1 = (6.706u,3.882u);
+ z41\0\15c2 = (6.361u,4.081u);
+ z41\0\15 = (6.022u,4.336u);
+ z41\0\16c1 = (6.208u,4.630u);
+ z41\0\16c2 = (6.324u,4.853u);
+ z41\0\16 = (6.603u,5.080u);
+ z41\0\17c1 = (7.485u,5.796u);
+ z41\0\17c2 = (7.721u,5.413u);
+ z41\0\17 = (7.950u,6.745u);
+ z41\0\18c1 = (7.186u,6.666u);
+ z41\0\18c2 = (6.520u,6.455u);
+ z41\0\18 = (5.782u,6.263u);
+ z41\0\19 = (5.782u,4.095u);
+ z41\0\20 = (3.372u,4.095u);
+ z41\0\21c1 = (3.448u,4.331u);
+ z41\0\21c2 = (3.467u,4.528u);
+ z41\0\21 = (3.614u,4.744u);
+ z41\0\22c1 = (4.306u,5.765u);
+ z41\0\22c2 = (4.903u,4.882u);
+ z41\0\22 = (5.059u,6.745u);
+ z41\0\23c1 = (4.154u,6.745u);
+ z41\0\23c2 = (1.732u,6.935u);
+ z41\0\23 = (1.107u,6.326u);
+ z41\0\24c1 = (0.802u,6.029u);
+ z41\0\24c2 = (0.789u,5.689u);
+ fill_or_unfill z41\0\0s
+ ..controls z41\0\0c1 and z41\0\0c2..z41\0\0
+ ..controls z41\0\1c1 and z41\0\1c2..z41\0\1
+ ..controls z41\0\2c1 and z41\0\2c2..z41\0\2
+ ..controls z41\0\3c1 and z41\0\3c2..z41\0\3
+ ..controls z41\0\4c1 and z41\0\4c2..z41\0\4
+ ..controls z41\0\5c1 and z41\0\5c2..z41\0\5
+ ..controls z41\0\6c1 and z41\0\6c2..z41\0\6
+ --z41\0\7
+ ..controls z41\0\8c1 and z41\0\8c2..z41\0\8
+ ..controls z41\0\9c1 and z41\0\9c2..z41\0\9
+ ..controls z41\0\10c1 and z41\0\10c2..z41\0\10
+ --z41\0\11
+ --z41\0\12
+ ..controls z41\0\13c1 and z41\0\13c2..z41\0\13
+ ..controls z41\0\14c1 and z41\0\14c2..z41\0\14
+ ..controls z41\0\15c1 and z41\0\15c2..z41\0\15
+ ..controls z41\0\16c1 and z41\0\16c2..z41\0\16
+ ..controls z41\0\17c1 and z41\0\17c2..z41\0\17
+ ..controls z41\0\18c1 and z41\0\18c2..z41\0\18
+ --z41\0\19
+ --z41\0\20
+ ..controls z41\0\21c1 and z41\0\21c2..z41\0\21
+ ..controls z41\0\22c1 and z41\0\22c2..z41\0\22
+ ..controls z41\0\23c1 and z41\0\23c2..z41\0\23
+ ..controls z41\0\24c1 and z41\0\24c2..cycle;
+ proof_labels (
+ 41\0\0,
+ 41\0\1,
+ 41\0\2,
+ 41\0\3,
+ 41\0\4,
+ 41\0\5,
+ 41\0\6,
+ 41\0\7,
+ 41\0\8,
+ 41\0\9,
+ 41\0\10,
+ 41\0\11,
+ 41\0\12,
+ 41\0\13,
+ 41\0\14,
+ 41\0\15,
+ 41\0\16,
+ 41\0\17,
+ 41\0\18,
+ 41\0\19,
+ 41\0\20,
+ 41\0\21,
+ 41\0\22,
+ 41\0\23,
+ 41\0\24,
+);
+endchar;
+
+beginchar (152, 9.877u#, 6.745u#, 6.986u#);
+ "lka";
+ z42\0\0s = (0.964u,1.686u);
+ z42\0\0 = (1.445u,1.686u);
+ z42\0\1c1 = (1.389u,2.361u);
+ z42\0\1c2 = (1.054u,3.558u);
+ z42\0\1 = (1.246u,4.160u);
+ z42\0\2c1 = (1.369u,4.546u);
+ z42\0\2c2 = (1.608u,4.853u);
+ z42\0\2 = (1.961u,5.054u);
+ z42\0\3c1 = (2.745u,5.502u);
+ z42\0\3c2 = (5.045u,5.457u);
+ z42\0\3 = (5.516u,4.523u);
+ z42\0\4c1 = (5.645u,4.202u);
+ z42\0\4c2 = (5.568u,3.940u);
+ z42\0\4 = (5.516u,3.613u);
+ z42\0\5c1 = (3.855u,3.853u);
+ z42\0\5c2 = (3.125u,3.280u);
+ z42\0\5 = (2.650u,1.686u);
+ z42\0\6 = (4.818u,2.324u);
+ z42\0\7c1 = (6.348u,2.569u);
+ z42\0\7c2 = (7.556u,1.464u);
+ z42\0\7 = (8.948u,0.964u);
+ z42\0\8 = (8.948u,3.132u);
+ z42\0\9c1 = (9.063u,3.792u);
+ z42\0\9c2 = (9.444u,5.437u);
+ z42\0\9 = (9.310u,5.987u);
+ z42\0\10c1 = (9.088u,6.896u);
+ z42\0\10c2 = (7.851u,6.862u);
+ z42\0\10 = (7.646u,6.188u);
+ z42\0\11c1 = (7.473u,5.618u);
+ z42\0\11c2 = (8.175u,4.699u);
+ z42\0\11 = (8.380u,4.095u);
+ z42\0\12c1 = (8.484u,3.486u);
+ z42\0\12c2 = (8.431u,2.793u);
+ z42\0\12 = (8.380u,2.168u);
+ z42\0\13c1 = (7.734u,2.569u);
+ z42\0\13c2 = (6.669u,3.182u);
+ z42\0\13 = (6.269u,3.896u);
+ z42\0\14c1 = (5.559u,5.163u);
+ z42\0\14c2 = (6.825u,6.604u);
+ z42\0\14 = (4.576u,6.735u);
+ z42\0\15c1 = (2.736u,6.842u);
+ z42\0\15c2 = (0.572u,6.349u);
+ z42\0\15 = (0.529u,4.095u);
+ z42\0\16c1 = (0.514u,3.309u);
+ z42\0\16c2 = (0.843u,2.470u);
+ z42\1\0s = (0.964u,-0.723u);
+ z42\1\0 = (1.927u,-0.964u);
+ z42\1\1c1 = (1.573u,-1.773u);
+ z42\1\1c2 = (1.339u,-2.499u);
+ z42\1\1 = (1.204u,-3.372u);
+ z42\1\2c1 = (1.412u,-3.244u);
+ z42\1\2c2 = (1.561u,-3.188u);
+ z42\1\2 = (1.739u,-3.001u);
+ z42\1\3c1 = (2.264u,-2.450u);
+ z42\1\3c2 = (2.458u,-1.602u);
+ z42\1\3 = (3.175u,-1.213u);
+ z42\1\4c1 = (4.911u,-0.272u);
+ z42\1\4c2 = (4.817u,-3.968u);
+ z42\1\4 = (4.818u,-4.818u);
+ z42\1\5c1 = (6.216u,-3.747u);
+ z42\1\5c2 = (5.322u,-1.928u);
+ z42\1\5 = (6.339u,-1.111u);
+ z42\1\6c1 = (6.591u,-0.909u);
+ z42\1\6c2 = (6.892u,-0.819u);
+ z42\1\6 = (7.214u,-0.861u);
+ z42\1\7c1 = (8.505u,-1.032u);
+ z42\1\7c2 = (8.376u,-3.377u);
+ z42\1\7 = (8.472u,-4.336u);
+ z42\1\8 = (8.672u,-6.745u);
+ z42\1\9 = (9.159u,-6.745u);
+ z42\1\10 = (9.159u,-2.168u);
+ z42\1\11 = (9.339u,-0.255u);
+ z42\1\12c1 = (9.319u,-0.040u);
+ z42\1\12c2 = (9.284u,0.162u);
+ z42\1\12 = (9.148u,0.338u);
+ z42\1\13c1 = (8.833u,0.746u);
+ z42\1\13c2 = (8.171u,0.713u);
+ z42\1\13 = (7.709u,0.722u);
+ z42\1\14c1 = (6.788u,0.739u);
+ z42\1\14c2 = (2.538u,0.820u);
+ z42\1\14 = (1.953u,0.578u);
+ z42\1\15c1 = (1.328u,0.320u);
+ z42\1\15c2 = (1.171u,-0.137u);
+ fill_or_unfill z42\0\0s
+ --z42\0\0
+ ..controls z42\0\1c1 and z42\0\1c2..z42\0\1
+ ..controls z42\0\2c1 and z42\0\2c2..z42\0\2
+ ..controls z42\0\3c1 and z42\0\3c2..z42\0\3
+ ..controls z42\0\4c1 and z42\0\4c2..z42\0\4
+ ..controls z42\0\5c1 and z42\0\5c2..z42\0\5
+ --z42\0\6
+ ..controls z42\0\7c1 and z42\0\7c2..z42\0\7
+ --z42\0\8
+ ..controls z42\0\9c1 and z42\0\9c2..z42\0\9
+ ..controls z42\0\10c1 and z42\0\10c2..z42\0\10
+ ..controls z42\0\11c1 and z42\0\11c2..z42\0\11
+ ..controls z42\0\12c1 and z42\0\12c2..z42\0\12
+ ..controls z42\0\13c1 and z42\0\13c2..z42\0\13
+ ..controls z42\0\14c1 and z42\0\14c2..z42\0\14
+ ..controls z42\0\15c1 and z42\0\15c2..z42\0\15
+ ..controls z42\0\16c1 and z42\0\16c2..cycle;
+ fill_or_unfill z42\1\0s
+ --z42\1\0
+ ..controls z42\1\1c1 and z42\1\1c2..z42\1\1
+ ..controls z42\1\2c1 and z42\1\2c2..z42\1\2
+ ..controls z42\1\3c1 and z42\1\3c2..z42\1\3
+ ..controls z42\1\4c1 and z42\1\4c2..z42\1\4
+ ..controls z42\1\5c1 and z42\1\5c2..z42\1\5
+ ..controls z42\1\6c1 and z42\1\6c2..z42\1\6
+ ..controls z42\1\7c1 and z42\1\7c2..z42\1\7
+ --z42\1\8
+ --z42\1\9
+ --z42\1\10
+ --z42\1\11
+ ..controls z42\1\12c1 and z42\1\12c2..z42\1\12
+ ..controls z42\1\13c1 and z42\1\13c2..z42\1\13
+ ..controls z42\1\14c1 and z42\1\14c2..z42\1\14
+ ..controls z42\1\15c1 and z42\1\15c2..cycle;
+ proof_labels (
+ 42\0\0,
+ 42\0\1,
+ 42\0\2,
+ 42\0\3,
+ 42\0\4,
+ 42\0\5,
+ 42\0\6,
+ 42\0\7,
+ 42\0\8,
+ 42\0\9,
+ 42\0\10,
+ 42\0\11,
+ 42\0\12,
+ 42\0\13,
+ 42\0\14,
+ 42\0\15,
+ 42\0\16,
+ 42\1\0,
+ 42\1\1,
+ 42\1\2,
+ 42\1\3,
+ 42\1\4,
+ 42\1\5,
+ 42\1\6,
+ 42\1\7,
+ 42\1\8,
+ 42\1\9,
+ 42\1\10,
+ 42\1\11,
+ 42\1\12,
+ 42\1\13,
+ 42\1\14,
+ 42\1\15,
+);
+endchar;
+
+beginchar (153, 9.636u#, 6.745u#, 6.986u#);
+ "lga";
+ z43\0\0s = (0.723u,1.686u);
+ z43\0\0c1 = (1.193u,2.870u);
+ z43\0\0c2 = (0.796u,3.979u);
+ z43\0\0 = (1.978u,4.930u);
+ z43\0\1c1 = (2.702u,5.503u);
+ z43\0\1c2 = (4.013u,5.663u);
+ z43\0\1 = (4.701u,4.930u);
+ z43\0\2c1 = (4.849u,4.780u);
+ z43\0\2c2 = (4.974u,4.582u);
+ z43\0\2 = (4.978u,4.358u);
+ z43\0\3c1 = (4.993u,3.482u);
+ z43\0\3c2 = (3.534u,3.744u);
+ z43\0\3 = (2.896u,2.624u);
+ z43\0\4c1 = (2.720u,2.317u);
+ z43\0\4c2 = (2.705u,2.022u);
+ z43\0\4 = (2.650u,1.686u);
+ z43\0\5 = (4.818u,2.182u);
+ z43\0\6c1 = (6.294u,2.374u);
+ z43\0\6c2 = (7.434u,1.421u);
+ z43\0\6 = (8.431u,0.470u);
+ z43\0\7 = (4.336u,0.470u);
+ z43\0\8c1 = (3.651u,0.482u);
+ z43\0\8c2 = (2.854u,0.560u);
+ z43\0\8 = (2.182u,0.470u);
+ z43\0\9c1 = (1.970u,0.411u);
+ z43\0\9c2 = (1.763u,0.373u);
+ z43\0\9 = (1.590u,0.235u);
+ z43\0\10c1 = (1.218u,-0.058u);
+ z43\0\10c2 = (1.240u,-0.540u);
+ z43\0\10 = (1.204u,-0.964u);
+ z43\0\11 = (2.168u,-0.964u);
+ z43\0\12c1 = (1.587u,-2.203u);
+ z43\0\12c2 = (1.320u,-2.962u);
+ z43\0\12 = (1.204u,-4.336u);
+ z43\0\13 = (2.650u,-3.970u);
+ z43\0\14c1 = (3.761u,-3.866u);
+ z43\0\14c2 = (4.673u,-4.727u);
+ z43\0\14 = (5.541u,-5.300u);
+ z43\0\15c1 = (5.541u,-4.286u);
+ z43\0\15c2 = (5.248u,-0.489u);
+ z43\0\15 = (7.202u,-1.122u);
+ z43\0\16c1 = (7.519u,-1.224u);
+ z43\0\16c2 = (7.741u,-1.440u);
+ z43\0\16 = (7.908u,-1.721u);
+ z43\0\17c1 = (8.413u,-2.571u);
+ z43\0\17c2 = (8.431u,-5.667u);
+ z43\0\17 = (8.431u,-6.745u);
+ z43\0\18 = (8.924u,-6.745u);
+ z43\0\19 = (8.924u,-3.132u);
+ z43\0\20c1 = (8.995u,-2.241u);
+ z43\0\20c2 = (9.198u,-1.394u);
+ z43\0\20 = (9.143u,-0.491u);
+ z43\0\21 = (8.713u,1.928u);
+ z43\0\22c1 = (8.657u,2.482u);
+ z43\0\22c2 = (8.661u,3.065u);
+ z43\0\22 = (8.713u,3.613u);
+ z43\0\23 = (9.115u,5.059u);
+ z43\0\24 = (9.115u,6.745u);
+ z43\0\25c1 = (6.179u,6.707u);
+ z43\0\25c2 = (7.567u,5.423u);
+ z43\0\25 = (8.044u,3.613u);
+ z43\0\26c1 = (8.210u,2.981u);
+ z43\0\26c2 = (8.188u,2.334u);
+ z43\0\26 = (8.190u,1.686u);
+ z43\0\27 = (7.185u,2.801u);
+ z43\0\28c1 = (6.821u,3.139u);
+ z43\0\28c2 = (6.284u,3.445u);
+ z43\0\28 = (6.068u,3.904u);
+ z43\0\29c1 = (5.728u,4.631u);
+ z43\0\29c2 = (6.303u,5.625u);
+ z43\0\29 = (5.604u,6.326u);
+ z43\0\30c1 = (5.214u,6.718u);
+ z43\0\30c2 = (4.610u,6.726u);
+ z43\0\30 = (4.095u,6.741u);
+ z43\0\31c1 = (1.826u,6.808u);
+ z43\0\31c2 = (0.356u,6.542u);
+ z43\0\31 = (0.504u,3.854u);
+ z43\1\0s = (4.818u,-3.854u);
+ z43\1\0c1 = (3.847u,-3.445u);
+ z43\1\0c2 = (2.942u,-3.163u);
+ z43\1\0 = (1.927u,-2.891u);
+ z43\1\1c1 = (1.999u,-2.556u);
+ z43\1\1c2 = (2.038u,-2.249u);
+ z43\1\1 = (2.209u,-1.941u);
+ z43\1\2c1 = (3.212u,-0.144u);
+ z43\1\2c2 = (5.596u,-0.887u);
+ fill_or_unfill z43\0\0s
+ ..controls z43\0\0c1 and z43\0\0c2..z43\0\0
+ ..controls z43\0\1c1 and z43\0\1c2..z43\0\1
+ ..controls z43\0\2c1 and z43\0\2c2..z43\0\2
+ ..controls z43\0\3c1 and z43\0\3c2..z43\0\3
+ ..controls z43\0\4c1 and z43\0\4c2..z43\0\4
+ --z43\0\5
+ ..controls z43\0\6c1 and z43\0\6c2..z43\0\6
+ --z43\0\7
+ ..controls z43\0\8c1 and z43\0\8c2..z43\0\8
+ ..controls z43\0\9c1 and z43\0\9c2..z43\0\9
+ ..controls z43\0\10c1 and z43\0\10c2..z43\0\10
+ --z43\0\11
+ ..controls z43\0\12c1 and z43\0\12c2..z43\0\12
+ --z43\0\13
+ ..controls z43\0\14c1 and z43\0\14c2..z43\0\14
+ ..controls z43\0\15c1 and z43\0\15c2..z43\0\15
+ ..controls z43\0\16c1 and z43\0\16c2..z43\0\16
+ ..controls z43\0\17c1 and z43\0\17c2..z43\0\17
+ --z43\0\18
+ --z43\0\19
+ ..controls z43\0\20c1 and z43\0\20c2..z43\0\20
+ --z43\0\21
+ ..controls z43\0\22c1 and z43\0\22c2..z43\0\22
+ --z43\0\23
+ --z43\0\24
+ ..controls z43\0\25c1 and z43\0\25c2..z43\0\25
+ ..controls z43\0\26c1 and z43\0\26c2..z43\0\26
+ --z43\0\27
+ ..controls z43\0\28c1 and z43\0\28c2..z43\0\28
+ ..controls z43\0\29c1 and z43\0\29c2..z43\0\29
+ ..controls z43\0\30c1 and z43\0\30c2..z43\0\30
+ ..controls z43\0\31c1 and z43\0\31c2..z43\0\31
+ --cycle;
+ fill_or_unfill z43\1\0s
+ ..controls z43\1\0c1 and z43\1\0c2..z43\1\0
+ ..controls z43\1\1c1 and z43\1\1c2..z43\1\1
+ ..controls z43\1\2c1 and z43\1\2c2..cycle;
+ proof_labels (
+ 43\0\0,
+ 43\0\1,
+ 43\0\2,
+ 43\0\3,
+ 43\0\4,
+ 43\0\5,
+ 43\0\6,
+ 43\0\7,
+ 43\0\8,
+ 43\0\9,
+ 43\0\10,
+ 43\0\11,
+ 43\0\12,
+ 43\0\13,
+ 43\0\14,
+ 43\0\15,
+ 43\0\16,
+ 43\0\17,
+ 43\0\18,
+ 43\0\19,
+ 43\0\20,
+ 43\0\21,
+ 43\0\22,
+ 43\0\23,
+ 43\0\24,
+ 43\0\25,
+ 43\0\26,
+ 43\0\27,
+ 43\0\28,
+ 43\0\29,
+ 43\0\30,
+ 43\0\31,
+ 43\0\32,
+ 43\1\0,
+ 43\1\1,
+ 43\1\2,
+);
+endchar;
+
+beginchar (154, 10.118u#, 6.745u#, 7.468u#);
+ "lnga";
+ z44\0\0s = (1.445u,1.204u);
+ z44\0\0c1 = (0.277u,6.011u);
+ z44\0\0c2 = (4.709u,5.875u);
+ z44\0\0 = (5.535u,4.523u);
+ z44\0\1c1 = (5.789u,4.107u);
+ z44\0\1c2 = (5.765u,3.598u);
+ z44\0\1 = (5.782u,3.132u);
+ z44\0\2c1 = (4.838u,3.123u);
+ z44\0\2c2 = (3.061u,3.104u);
+ z44\0\2 = (2.587u,2.107u);
+ z44\0\3c1 = (2.419u,1.755u);
+ z44\0\3c2 = (2.431u,1.342u);
+ z44\0\3 = (2.409u,0.964u);
+ z44\0\4 = (4.095u,1.367u);
+ z44\0\5c1 = (6.132u,1.701u);
+ z44\0\5c2 = (7.421u,1.092u);
+ z44\0\5 = (8.913u,-0.279u);
+ z44\0\6c1 = (8.036u,-0.241u);
+ z44\0\6c2 = (3.402u,-0.176u);
+ z44\0\6 = (2.926u,-0.279u);
+ z44\0\7c1 = (2.710u,-0.380u);
+ z44\0\7c2 = (2.558u,-0.444u);
+ z44\0\7 = (2.414u,-0.626u);
+ z44\0\8c1 = (1.987u,-1.166u);
+ z44\0\8c2 = (2.168u,-5.989u);
+ z44\0\8 = (2.168u,-6.933u);
+ z44\0\9 = (3.613u,-6.933u);
+ z44\0\10c1 = (4.417u,-6.755u);
+ z44\0\10c2 = (5.203u,-6.522u);
+ z44\0\10 = (6.022u,-6.523u);
+ z44\0\11c1 = (7.113u,-6.524u);
+ z44\0\11c2 = (8.116u,-6.954u);
+ z44\0\11 = (9.154u,-7.227u);
+ z44\0\12c1 = (9.079u,-6.979u);
+ z44\0\12c2 = (9.052u,-6.767u);
+ z44\0\12 = (8.913u,-6.535u);
+ z44\0\13c1 = (8.668u,-6.127u);
+ z44\0\13c2 = (8.352u,-5.926u);
+ z44\0\13 = (7.945u,-5.705u);
+ z44\0\14c1 = (6.311u,-4.817u);
+ z44\0\14c2 = (4.445u,-5.059u);
+ z44\0\14 = (2.650u,-5.059u);
+ z44\0\15c1 = (2.650u,-4.455u);
+ z44\0\15c2 = (2.584u,-3.184u);
+ z44\0\15 = (2.794u,-2.664u);
+ z44\0\16c1 = (3.621u,-0.611u);
+ z44\0\16c2 = (7.845u,-2.592u);
+ z44\0\16 = (8.871u,-1.101u);
+ z44\0\17c1 = (9.304u,-0.471u);
+ z44\0\17c2 = (9.112u,1.337u);
+ z44\0\17 = (9.195u,2.168u);
+ z44\0\18 = (9.601u,4.336u);
+ z44\0\19 = (9.601u,6.745u);
+ z44\0\20c1 = (9.225u,6.711u);
+ z44\0\20c2 = (8.718u,6.733u);
+ z44\0\20 = (8.440u,6.360u);
+ z44\0\21c1 = (8.307u,6.182u);
+ z44\0\21c2 = (8.279u,5.983u);
+ z44\0\21 = (8.275u,5.768u);
+ z44\0\22c1 = (8.266u,5.217u);
+ z44\0\22c2 = (8.546u,4.645u);
+ z44\0\22 = (8.658u,4.095u);
+ z44\0\23 = (8.658u,1.927u);
+ z44\0\24 = (8.913u,0.723u);
+ z44\0\25c1 = (7.999u,1.517u);
+ z44\0\25c2 = (7.123u,2.374u);
+ z44\0\25 = (6.001u,2.891u);
+ z44\0\26c1 = (6.219u,3.701u);
+ z44\0\26c2 = (6.492u,5.427u);
+ z44\0\26 = (6.001u,6.195u);
+ z44\0\27c1 = (5.314u,7.083u);
+ z44\0\27c2 = (2.587u,6.813u);
+ z44\0\27 = (1.737u,6.195u);
+ z44\0\28c1 = (0.759u,5.587u);
+ z44\0\28c2 = (0.425u,4.243u);
+ z44\0\28 = (0.523u,3.132u);
+ z44\0\29c1 = (0.603u,2.235u);
+ z44\0\29c2 = (0.680u,1.710u);
+ fill_or_unfill z44\0\0s
+ ..controls z44\0\0c1 and z44\0\0c2..z44\0\0
+ ..controls z44\0\1c1 and z44\0\1c2..z44\0\1
+ ..controls z44\0\2c1 and z44\0\2c2..z44\0\2
+ ..controls z44\0\3c1 and z44\0\3c2..z44\0\3
+ --z44\0\4
+ ..controls z44\0\5c1 and z44\0\5c2..z44\0\5
+ ..controls z44\0\6c1 and z44\0\6c2..z44\0\6
+ ..controls z44\0\7c1 and z44\0\7c2..z44\0\7
+ ..controls z44\0\8c1 and z44\0\8c2..z44\0\8
+ --z44\0\9
+ ..controls z44\0\10c1 and z44\0\10c2..z44\0\10
+ ..controls z44\0\11c1 and z44\0\11c2..z44\0\11
+ ..controls z44\0\12c1 and z44\0\12c2..z44\0\12
+ ..controls z44\0\13c1 and z44\0\13c2..z44\0\13
+ ..controls z44\0\14c1 and z44\0\14c2..z44\0\14
+ ..controls z44\0\15c1 and z44\0\15c2..z44\0\15
+ ..controls z44\0\16c1 and z44\0\16c2..z44\0\16
+ ..controls z44\0\17c1 and z44\0\17c2..z44\0\17
+ --z44\0\18
+ --z44\0\19
+ ..controls z44\0\20c1 and z44\0\20c2..z44\0\20
+ ..controls z44\0\21c1 and z44\0\21c2..z44\0\21
+ ..controls z44\0\22c1 and z44\0\22c2..z44\0\22
+ --z44\0\23
+ --z44\0\24
+ ..controls z44\0\25c1 and z44\0\25c2..z44\0\25
+ ..controls z44\0\26c1 and z44\0\26c2..z44\0\26
+ ..controls z44\0\27c1 and z44\0\27c2..z44\0\27
+ ..controls z44\0\28c1 and z44\0\28c2..z44\0\28
+ ..controls z44\0\29c1 and z44\0\29c2..cycle;
+ proof_labels (
+ 44\0\0,
+ 44\0\1,
+ 44\0\2,
+ 44\0\3,
+ 44\0\4,
+ 44\0\5,
+ 44\0\6,
+ 44\0\7,
+ 44\0\8,
+ 44\0\9,
+ 44\0\10,
+ 44\0\11,
+ 44\0\12,
+ 44\0\13,
+ 44\0\14,
+ 44\0\15,
+ 44\0\16,
+ 44\0\17,
+ 44\0\18,
+ 44\0\19,
+ 44\0\20,
+ 44\0\21,
+ 44\0\22,
+ 44\0\23,
+ 44\0\24,
+ 44\0\25,
+ 44\0\26,
+ 44\0\27,
+ 44\0\28,
+ 44\0\29,
+);
+endchar;
+
+beginchar (155, 10.118u#, 6.745u#, 5.782u#);
+ "lca";
+ z45\0\0s = (1.445u,1.445u);
+ z45\0\0c1 = (1.344u,2.164u);
+ z45\0\0c2 = (0.948u,3.433u);
+ z45\0\0 = (1.163u,4.085u);
+ z45\0\1c1 = (1.299u,4.498u);
+ z45\0\1c2 = (1.577u,4.805u);
+ z45\0\1 = (1.953u,5.017u);
+ z45\0\2c1 = (2.647u,5.408u);
+ z45\0\2c2 = (4.800u,5.465u);
+ z45\0\2 = (5.396u,4.881u);
+ z45\0\3c1 = (5.753u,4.532u);
+ z45\0\3c2 = (5.744u,4.072u);
+ z45\0\3 = (5.782u,3.613u);
+ z45\0\4c1 = (4.236u,3.538u);
+ z45\0\4c2 = (3.140u,3.314u);
+ z45\0\4 = (2.650u,1.686u);
+ z45\0\5 = (5.059u,2.349u);
+ z45\0\6c1 = (6.151u,2.460u);
+ z45\0\6c2 = (7.342u,1.855u);
+ z45\0\6 = (8.431u,1.686u);
+ z45\0\7c1 = (7.840u,1.518u);
+ z45\0\7c2 = (7.361u,1.455u);
+ z45\0\7 = (6.745u,1.446u);
+ z45\0\8c1 = (5.999u,1.436u);
+ z45\0\8c2 = (3.806u,1.582u);
+ z45\0\8 = (3.269u,1.206u);
+ z45\0\9c1 = (2.845u,0.910u);
+ z45\0\9c2 = (2.768u,0.462u);
+ z45\0\9 = (2.650u,0.000u);
+ z45\0\10 = (6.504u,0.000u);
+ z45\0\11c1 = (5.311u,-2.173u);
+ z45\0\11c2 = (4.150u,-2.168u);
+ z45\0\11 = (1.927u,-2.168u);
+ z45\0\12 = (2.663u,-3.372u);
+ z45\0\13c1 = (2.973u,-3.923u);
+ z45\0\13c2 = (3.221u,-4.720u);
+ z45\0\13 = (3.713u,-5.122u);
+ z45\0\14c1 = (4.233u,-5.547u);
+ z45\0\14c2 = (4.908u,-5.531u);
+ z45\0\14 = (5.541u,-5.540u);
+ z45\0\15c1 = (6.767u,-5.556u);
+ z45\0\15c2 = (8.463u,-5.733u);
+ z45\0\15 = (9.046u,-4.326u);
+ z45\0\16c1 = (9.133u,-4.008u);
+ z45\0\16c2 = (9.165u,-3.504u);
+ z45\0\16 = (9.046u,-3.172u);
+ z45\0\17c1 = (8.909u,-2.479u);
+ z45\0\17c2 = (8.200u,-1.949u);
+ z45\0\17 = (7.730u,-1.442u);
+ z45\0\18 = (6.745u,-0.241u);
+ z45\0\19 = (7.709u,-0.042u);
+ z45\0\20c1 = (8.350u,0.044u);
+ z45\0\20c2 = (8.936u,-0.038u);
+ z45\0\20 = (9.364u,0.557u);
+ z45\0\21c1 = (9.514u,0.765u);
+ z45\0\21c2 = (9.550u,0.974u);
+ z45\0\21 = (9.636u,1.204u);
+ z45\0\22c1 = (9.459u,1.394u);
+ z45\0\22c2 = (9.286u,1.526u);
+ z45\0\22 = (9.156u,1.762u);
+ z45\0\23c1 = (8.482u,2.983u);
+ z45\0\23c2 = (9.877u,5.264u);
+ z45\0\23 = (9.482u,6.188u);
+ z45\0\24c1 = (9.173u,6.913u);
+ z45\0\24c2 = (7.952u,6.827u);
+ z45\0\24 = (7.813u,6.009u);
+ z45\0\25c1 = (7.717u,5.445u);
+ z45\0\25c2 = (8.276u,4.694u);
+ z45\0\25 = (8.405u,4.092u);
+ z45\0\26c1 = (8.495u,3.402u);
+ z45\0\26c2 = (8.431u,2.628u);
+ z45\0\26 = (8.405u,1.927u);
+ z45\0\27 = (7.447u,2.810u);
+ z45\0\28c1 = (7.108u,3.073u);
+ z45\0\28c2 = (6.686u,3.324u);
+ z45\0\28 = (6.448u,3.691u);
+ z45\0\29c1 = (5.963u,4.440u);
+ z45\0\29c2 = (6.430u,5.868u);
+ z45\0\29 = (5.647u,6.462u);
+ z45\0\30c1 = (5.224u,6.783u);
+ z45\0\30c2 = (4.368u,6.745u);
+ z45\0\30 = (3.854u,6.745u);
+ z45\0\31c1 = (3.082u,6.745u);
+ z45\0\31c2 = (2.155u,6.769u);
+ z45\0\31 = (1.499u,6.299u);
+ z45\0\32c1 = (0.377u,5.495u);
+ z45\0\32c2 = (0.147u,2.870u);
+ z45\0\32 = (0.973u,1.810u);
+ z45\0\33c1 = (1.125u,1.614u);
+ z45\0\33c2 = (1.256u,1.573u);
+ z45\1\0s = (8.190u,-4.818u);
+ z45\1\0c1 = (7.695u,-4.978u);
+ z45\1\0c2 = (7.026u,-5.234u);
+ z45\1\0 = (6.504u,-5.189u);
+ z45\1\1c1 = (5.149u,-5.073u);
+ z45\1\1c2 = (4.286u,-3.536u);
+ z45\1\1 = (3.854u,-2.409u);
+ z45\1\2c1 = (4.416u,-2.363u);
+ z45\1\2c2 = (5.204u,-2.167u);
+ z45\1\2 = (5.741u,-2.255u);
+ z45\1\3c1 = (6.492u,-2.377u);
+ z45\1\3c2 = (7.602u,-3.451u);
+ z45\1\3 = (7.949u,-4.099u);
+ fill_or_unfill z45\0\0s
+ ..controls z45\0\0c1 and z45\0\0c2..z45\0\0
+ ..controls z45\0\1c1 and z45\0\1c2..z45\0\1
+ ..controls z45\0\2c1 and z45\0\2c2..z45\0\2
+ ..controls z45\0\3c1 and z45\0\3c2..z45\0\3
+ ..controls z45\0\4c1 and z45\0\4c2..z45\0\4
+ --z45\0\5
+ ..controls z45\0\6c1 and z45\0\6c2..z45\0\6
+ ..controls z45\0\7c1 and z45\0\7c2..z45\0\7
+ ..controls z45\0\8c1 and z45\0\8c2..z45\0\8
+ ..controls z45\0\9c1 and z45\0\9c2..z45\0\9
+ --z45\0\10
+ ..controls z45\0\11c1 and z45\0\11c2..z45\0\11
+ --z45\0\12
+ ..controls z45\0\13c1 and z45\0\13c2..z45\0\13
+ ..controls z45\0\14c1 and z45\0\14c2..z45\0\14
+ ..controls z45\0\15c1 and z45\0\15c2..z45\0\15
+ ..controls z45\0\16c1 and z45\0\16c2..z45\0\16
+ ..controls z45\0\17c1 and z45\0\17c2..z45\0\17
+ --z45\0\18
+ --z45\0\19
+ ..controls z45\0\20c1 and z45\0\20c2..z45\0\20
+ ..controls z45\0\21c1 and z45\0\21c2..z45\0\21
+ ..controls z45\0\22c1 and z45\0\22c2..z45\0\22
+ ..controls z45\0\23c1 and z45\0\23c2..z45\0\23
+ ..controls z45\0\24c1 and z45\0\24c2..z45\0\24
+ ..controls z45\0\25c1 and z45\0\25c2..z45\0\25
+ ..controls z45\0\26c1 and z45\0\26c2..z45\0\26
+ --z45\0\27
+ ..controls z45\0\28c1 and z45\0\28c2..z45\0\28
+ ..controls z45\0\29c1 and z45\0\29c2..z45\0\29
+ ..controls z45\0\30c1 and z45\0\30c2..z45\0\30
+ ..controls z45\0\31c1 and z45\0\31c2..z45\0\31
+ ..controls z45\0\32c1 and z45\0\32c2..z45\0\32
+ ..controls z45\0\33c1 and z45\0\33c2..cycle;
+ fill_or_unfill z45\1\0s
+ ..controls z45\1\0c1 and z45\1\0c2..z45\1\0
+ ..controls z45\1\1c1 and z45\1\1c2..z45\1\1
+ ..controls z45\1\2c1 and z45\1\2c2..z45\1\2
+ ..controls z45\1\3c1 and z45\1\3c2..z45\1\3
+ --cycle;
+ proof_labels (
+ 45\0\0,
+ 45\0\1,
+ 45\0\2,
+ 45\0\3,
+ 45\0\4,
+ 45\0\5,
+ 45\0\6,
+ 45\0\7,
+ 45\0\8,
+ 45\0\9,
+ 45\0\10,
+ 45\0\11,
+ 45\0\12,
+ 45\0\13,
+ 45\0\14,
+ 45\0\15,
+ 45\0\16,
+ 45\0\17,
+ 45\0\18,
+ 45\0\19,
+ 45\0\20,
+ 45\0\21,
+ 45\0\22,
+ 45\0\23,
+ 45\0\24,
+ 45\0\25,
+ 45\0\26,
+ 45\0\27,
+ 45\0\28,
+ 45\0\29,
+ 45\0\30,
+ 45\0\31,
+ 45\0\32,
+ 45\0\33,
+ 45\1\0,
+ 45\1\1,
+ 45\1\2,
+ 45\1\3,
+ 45\1\4,
+);
+endchar;
+
+beginchar (156, 10.359u#, 6.745u#, 7.227u#);
+ "lja";
+ z46\0\0s = (0.964u,1.204u);
+ z46\0\0c1 = (1.219u,1.901u);
+ z46\0\0c2 = (1.027u,2.431u);
+ z46\0\0 = (1.132u,3.131u);
+ z46\0\1c1 = (1.354u,4.610u);
+ z46\0\1c2 = (2.891u,5.569u);
+ z46\0\1 = (4.335u,5.223u);
+ z46\0\2c1 = (4.910u,5.085u);
+ z46\0\2c2 = (5.487u,4.671u);
+ z46\0\2 = (5.685u,4.094u);
+ z46\0\3c1 = (6.159u,2.717u);
+ z46\0\3c2 = (4.120u,2.710u);
+ z46\0\3 = (3.376u,2.231u);
+ z46\0\4c1 = (2.854u,1.895u);
+ z46\0\4c2 = (2.528u,1.453u);
+ z46\0\4 = (2.168u,0.964u);
+ z46\0\5 = (4.336u,1.334u);
+ z46\0\6c1 = (6.521u,1.717u);
+ z46\0\6c2 = (7.573u,1.249u);
+ z46\0\6 = (9.154u,-0.241u);
+ z46\0\7 = (5.059u,-0.241u);
+ z46\0\8c1 = (4.467u,-0.242u);
+ z46\0\8c2 = (3.493u,-0.181u);
+ z46\0\8 = (2.994u,-0.524u);
+ z46\0\9c1 = (2.725u,-0.709u);
+ z46\0\9c2 = (2.606u,-0.924u);
+ z46\0\9 = (2.461u,-1.230u);
+ z46\0\10c1 = (2.327u,-1.834u);
+ z46\0\10c2 = (2.409u,-5.813u);
+ z46\0\10 = (2.461u,-6.711u);
+ z46\0\11 = (3.854u,-6.711u);
+ z46\0\12 = (6.263u,-6.307u);
+ z46\0\13c1 = (7.521u,-6.216u);
+ z46\0\13c2 = (8.663u,-6.769u);
+ z46\0\13 = (9.877u,-6.986u);
+ z46\0\14c1 = (9.754u,-6.746u);
+ z46\0\14c2 = (9.689u,-6.543u);
+ z46\0\14 = (9.506u,-6.329u);
+ z46\0\15c1 = (9.145u,-5.909u);
+ z46\0\15c2 = (8.689u,-5.730u);
+ z46\0\15 = (8.190u,-5.533u);
+ z46\0\16c1 = (6.492u,-4.864u);
+ z46\0\16c2 = (4.684u,-5.059u);
+ z46\0\16 = (2.891u,-5.059u);
+ z46\0\17 = (2.891u,-4.095u);
+ z46\0\18 = (5.782u,-4.095u);
+ z46\0\19c1 = (6.790u,-4.095u);
+ z46\0\19c2 = (7.693u,-4.132u);
+ z46\0\19 = (8.672u,-3.854u);
+ z46\0\20 = (8.672u,-3.372u);
+ z46\0\21c1 = (7.693u,-3.094u);
+ z46\0\21c2 = (6.790u,-3.132u);
+ z46\0\21 = (5.782u,-3.132u);
+ z46\0\22 = (2.891u,-3.132u);
+ z46\0\23c1 = (3.019u,-2.710u);
+ z46\0\23c2 = (3.086u,-2.374u);
+ z46\0\23 = (3.448u,-2.071u);
+ z46\0\24c1 = (4.176u,-1.461u);
+ z46\0\24c2 = (6.705u,-1.704u);
+ z46\0\24 = (7.709u,-1.685u);
+ z46\0\25c1 = (8.322u,-1.674u);
+ z46\0\25c2 = (8.970u,-1.703u);
+ z46\0\25 = (9.353u,-1.129u);
+ z46\0\26c1 = (9.640u,-0.698u);
+ z46\0\26c2 = (9.628u,-0.019u);
+ z46\0\26 = (9.646u,0.482u);
+ z46\0\27 = (9.646u,3.854u);
+ z46\0\28 = (9.787u,5.536u);
+ z46\0\29c1 = (9.838u,5.750u);
+ z46\0\29c2 = (9.826u,5.990u);
+ z46\0\29 = (9.787u,6.188u);
+ z46\0\30c1 = (9.326u,7.037u);
+ z46\0\30c2 = (7.794u,6.693u);
+ z46\0\30 = (8.086u,5.599u);
+ z46\0\31 = (8.879u,4.092u);
+ z46\0\32c1 = (9.182u,3.307u);
+ z46\0\32c2 = (9.153u,2.511u);
+ z46\0\32 = (9.154u,1.686u);
+ z46\0\33 = (9.154u,0.723u);
+ z46\0\34 = (8.018u,1.738u);
+ z46\0\35c1 = (7.618u,2.064u);
+ z46\0\35c2 = (6.765u,2.551u);
+ z46\0\35 = (6.549u,2.984u);
+ z46\0\36c1 = (6.142u,3.801u);
+ z46\0\36c2 = (7.007u,5.416u);
+ z46\0\36 = (5.947u,6.290u);
+ z46\0\37c1 = (5.379u,6.757u);
+ z46\0\37c2 = (4.551u,6.757u);
+ z46\0\37 = (3.854u,6.741u);
+ z46\0\38c1 = (3.290u,6.728u);
+ z46\0\38c2 = (2.718u,6.689u);
+ z46\0\38 = (2.219u,6.395u);
+ z46\0\39c1 = (1.393u,5.908u);
+ z46\0\39c2 = (0.535u,4.074u);
+ z46\0\39 = (0.531u,3.132u);
+ z46\0\40c1 = (0.529u,2.486u);
+ z46\0\40c2 = (0.802u,1.825u);
+ fill_or_unfill z46\0\0s
+ ..controls z46\0\0c1 and z46\0\0c2..z46\0\0
+ ..controls z46\0\1c1 and z46\0\1c2..z46\0\1
+ ..controls z46\0\2c1 and z46\0\2c2..z46\0\2
+ ..controls z46\0\3c1 and z46\0\3c2..z46\0\3
+ ..controls z46\0\4c1 and z46\0\4c2..z46\0\4
+ --z46\0\5
+ ..controls z46\0\6c1 and z46\0\6c2..z46\0\6
+ --z46\0\7
+ ..controls z46\0\8c1 and z46\0\8c2..z46\0\8
+ ..controls z46\0\9c1 and z46\0\9c2..z46\0\9
+ ..controls z46\0\10c1 and z46\0\10c2..z46\0\10
+ --z46\0\11
+ --z46\0\12
+ ..controls z46\0\13c1 and z46\0\13c2..z46\0\13
+ ..controls z46\0\14c1 and z46\0\14c2..z46\0\14
+ ..controls z46\0\15c1 and z46\0\15c2..z46\0\15
+ ..controls z46\0\16c1 and z46\0\16c2..z46\0\16
+ --z46\0\17
+ --z46\0\18
+ ..controls z46\0\19c1 and z46\0\19c2..z46\0\19
+ --z46\0\20
+ ..controls z46\0\21c1 and z46\0\21c2..z46\0\21
+ --z46\0\22
+ ..controls z46\0\23c1 and z46\0\23c2..z46\0\23
+ ..controls z46\0\24c1 and z46\0\24c2..z46\0\24
+ ..controls z46\0\25c1 and z46\0\25c2..z46\0\25
+ ..controls z46\0\26c1 and z46\0\26c2..z46\0\26
+ --z46\0\27
+ --z46\0\28
+ ..controls z46\0\29c1 and z46\0\29c2..z46\0\29
+ ..controls z46\0\30c1 and z46\0\30c2..z46\0\30
+ --z46\0\31
+ ..controls z46\0\32c1 and z46\0\32c2..z46\0\32
+ --z46\0\33
+ --z46\0\34
+ ..controls z46\0\35c1 and z46\0\35c2..z46\0\35
+ ..controls z46\0\36c1 and z46\0\36c2..z46\0\36
+ ..controls z46\0\37c1 and z46\0\37c2..z46\0\37
+ ..controls z46\0\38c1 and z46\0\38c2..z46\0\38
+ ..controls z46\0\39c1 and z46\0\39c2..z46\0\39
+ ..controls z46\0\40c1 and z46\0\40c2..cycle;
+ proof_labels (
+ 46\0\0,
+ 46\0\1,
+ 46\0\2,
+ 46\0\3,
+ 46\0\4,
+ 46\0\5,
+ 46\0\6,
+ 46\0\7,
+ 46\0\8,
+ 46\0\9,
+ 46\0\10,
+ 46\0\11,
+ 46\0\12,
+ 46\0\13,
+ 46\0\14,
+ 46\0\15,
+ 46\0\16,
+ 46\0\17,
+ 46\0\18,
+ 46\0\19,
+ 46\0\20,
+ 46\0\21,
+ 46\0\22,
+ 46\0\23,
+ 46\0\24,
+ 46\0\25,
+ 46\0\26,
+ 46\0\27,
+ 46\0\28,
+ 46\0\29,
+ 46\0\30,
+ 46\0\31,
+ 46\0\32,
+ 46\0\33,
+ 46\0\34,
+ 46\0\35,
+ 46\0\36,
+ 46\0\37,
+ 46\0\38,
+ 46\0\39,
+ 46\0\40,
+);
+endchar;
+
+beginchar (157, 10.118u#, 6.745u#, 7.227u#);
+ "lta";
+ z47\0\0s = (1.445u,1.445u);
+ z47\0\0c1 = (1.344u,2.164u);
+ z47\0\0c2 = (0.948u,3.433u);
+ z47\0\0 = (1.163u,4.085u);
+ z47\0\1c1 = (1.299u,4.498u);
+ z47\0\1c2 = (1.577u,4.805u);
+ z47\0\1 = (1.953u,5.017u);
+ z47\0\2c1 = (2.647u,5.408u);
+ z47\0\2c2 = (4.800u,5.465u);
+ z47\0\2 = (5.396u,4.881u);
+ z47\0\3c1 = (5.753u,4.532u);
+ z47\0\3c2 = (5.744u,4.072u);
+ z47\0\3 = (5.782u,3.613u);
+ z47\0\4c1 = (4.236u,3.538u);
+ z47\0\4c2 = (3.140u,3.314u);
+ z47\0\4 = (2.650u,1.686u);
+ z47\0\5 = (4.818u,2.312u);
+ z47\0\6c1 = (5.969u,2.525u);
+ z47\0\6c2 = (7.567u,1.814u);
+ z47\0\6 = (8.672u,1.445u);
+ z47\0\7c1 = (7.109u,1.001u);
+ z47\0\7c2 = (5.240u,1.204u);
+ z47\0\7 = (3.613u,1.204u);
+ z47\0\8 = (3.613u,-3.132u);
+ z47\0\9c1 = (5.022u,-2.815u);
+ z47\0\9c2 = (6.254u,-2.221u);
+ z47\0\9 = (7.336u,-3.630u);
+ z47\0\10c1 = (7.637u,-4.022u);
+ z47\0\10c2 = (7.775u,-4.406u);
+ z47\0\10 = (7.567u,-4.877u);
+ z47\0\11c1 = (7.316u,-5.444u);
+ z47\0\11c2 = (6.748u,-5.777u);
+ z47\0\11 = (6.330u,-6.201u);
+ z47\0\12c1 = (6.072u,-6.464u);
+ z47\0\12c2 = (5.956u,-6.673u);
+ z47\0\12 = (5.782u,-6.986u);
+ z47\0\13c1 = (6.841u,-6.764u);
+ z47\0\13c2 = (7.862u,-6.219u);
+ z47\0\13 = (8.467u,-5.278u);
+ z47\0\14c1 = (8.745u,-4.846u);
+ z47\0\14c2 = (8.859u,-4.362u);
+ z47\0\14 = (8.887u,-3.854u);
+ z47\0\15c1 = (8.980u,-2.199u);
+ z47\0\15c2 = (8.072u,-1.477u);
+ z47\0\15 = (6.504u,-1.331u);
+ z47\0\16c1 = (5.684u,-1.255u);
+ z47\0\16c2 = (4.880u,-1.478u);
+ z47\0\16 = (4.095u,-1.686u);
+ z47\0\17c1 = (4.317u,-1.288u);
+ z47\0\17c2 = (4.494u,-0.911u);
+ z47\0\17 = (4.871u,-0.626u);
+ z47\0\18c1 = (5.625u,-0.054u);
+ z47\0\18c2 = (7.698u,-0.241u);
+ z47\0\18 = (8.672u,-0.241u);
+ z47\0\19 = (8.997u,0.964u);
+ z47\0\20 = (8.997u,3.132u);
+ z47\0\21 = (9.330u,4.577u);
+ z47\0\22c1 = (9.423u,4.950u);
+ z47\0\22c2 = (9.572u,5.381u);
+ z47\0\22 = (9.557u,5.768u);
+ z47\0\23c1 = (9.514u,6.893u);
+ z47\0\23c2 = (8.173u,6.922u);
+ z47\0\23 = (7.864u,6.197u);
+ z47\0\24c1 = (7.613u,5.606u);
+ z47\0\24c2 = (8.272u,4.721u);
+ z47\0\24 = (8.405u,4.092u);
+ z47\0\25c1 = (8.495u,3.402u);
+ z47\0\25c2 = (8.431u,2.628u);
+ z47\0\25 = (8.405u,1.927u);
+ z47\0\26 = (7.447u,2.810u);
+ z47\0\27c1 = (7.108u,3.073u);
+ z47\0\27c2 = (6.686u,3.324u);
+ z47\0\27 = (6.448u,3.691u);
+ z47\0\28c1 = (5.963u,4.440u);
+ z47\0\28c2 = (6.430u,5.868u);
+ z47\0\28 = (5.647u,6.462u);
+ z47\0\29c1 = (5.224u,6.783u);
+ z47\0\29c2 = (4.368u,6.745u);
+ z47\0\29 = (3.854u,6.745u);
+ z47\0\30c1 = (3.082u,6.745u);
+ z47\0\30c2 = (2.155u,6.769u);
+ z47\0\30 = (1.499u,6.299u);
+ z47\0\31c1 = (0.377u,5.495u);
+ z47\0\31c2 = (0.147u,2.870u);
+ z47\0\31 = (0.973u,1.810u);
+ z47\0\32c1 = (1.125u,1.614u);
+ z47\0\32c2 = (1.256u,1.573u);
+ fill_or_unfill z47\0\0s
+ ..controls z47\0\0c1 and z47\0\0c2..z47\0\0
+ ..controls z47\0\1c1 and z47\0\1c2..z47\0\1
+ ..controls z47\0\2c1 and z47\0\2c2..z47\0\2
+ ..controls z47\0\3c1 and z47\0\3c2..z47\0\3
+ ..controls z47\0\4c1 and z47\0\4c2..z47\0\4
+ --z47\0\5
+ ..controls z47\0\6c1 and z47\0\6c2..z47\0\6
+ ..controls z47\0\7c1 and z47\0\7c2..z47\0\7
+ --z47\0\8
+ ..controls z47\0\9c1 and z47\0\9c2..z47\0\9
+ ..controls z47\0\10c1 and z47\0\10c2..z47\0\10
+ ..controls z47\0\11c1 and z47\0\11c2..z47\0\11
+ ..controls z47\0\12c1 and z47\0\12c2..z47\0\12
+ ..controls z47\0\13c1 and z47\0\13c2..z47\0\13
+ ..controls z47\0\14c1 and z47\0\14c2..z47\0\14
+ ..controls z47\0\15c1 and z47\0\15c2..z47\0\15
+ ..controls z47\0\16c1 and z47\0\16c2..z47\0\16
+ ..controls z47\0\17c1 and z47\0\17c2..z47\0\17
+ ..controls z47\0\18c1 and z47\0\18c2..z47\0\18
+ --z47\0\19
+ --z47\0\20
+ --z47\0\21
+ ..controls z47\0\22c1 and z47\0\22c2..z47\0\22
+ ..controls z47\0\23c1 and z47\0\23c2..z47\0\23
+ ..controls z47\0\24c1 and z47\0\24c2..z47\0\24
+ ..controls z47\0\25c1 and z47\0\25c2..z47\0\25
+ --z47\0\26
+ ..controls z47\0\27c1 and z47\0\27c2..z47\0\27
+ ..controls z47\0\28c1 and z47\0\28c2..z47\0\28
+ ..controls z47\0\29c1 and z47\0\29c2..z47\0\29
+ ..controls z47\0\30c1 and z47\0\30c2..z47\0\30
+ ..controls z47\0\31c1 and z47\0\31c2..z47\0\31
+ ..controls z47\0\32c1 and z47\0\32c2..cycle;
+ proof_labels (
+ 47\0\0,
+ 47\0\1,
+ 47\0\2,
+ 47\0\3,
+ 47\0\4,
+ 47\0\5,
+ 47\0\6,
+ 47\0\7,
+ 47\0\8,
+ 47\0\9,
+ 47\0\10,
+ 47\0\11,
+ 47\0\12,
+ 47\0\13,
+ 47\0\14,
+ 47\0\15,
+ 47\0\16,
+ 47\0\17,
+ 47\0\18,
+ 47\0\19,
+ 47\0\20,
+ 47\0\21,
+ 47\0\22,
+ 47\0\23,
+ 47\0\24,
+ 47\0\25,
+ 47\0\26,
+ 47\0\27,
+ 47\0\28,
+ 47\0\29,
+ 47\0\30,
+ 47\0\31,
+ 47\0\32,
+);
+endchar;
+
+beginchar (158, 10.118u#, 6.745u#, 6.504u#);
+ "lda";
+ z48\0\0s = (1.445u,1.204u);
+ z48\0\0c1 = (1.320u,1.871u);
+ z48\0\0c2 = (0.998u,2.971u);
+ z48\0\0 = (1.182u,3.612u);
+ z48\0\1c1 = (1.712u,5.464u);
+ z48\0\1c2 = (4.913u,5.926u);
+ z48\0\1 = (5.726u,4.082u);
+ z48\0\2c1 = (5.829u,3.699u);
+ z48\0\2c2 = (5.788u,3.292u);
+ z48\0\2 = (5.726u,2.891u);
+ z48\0\3c1 = (4.283u,2.821u);
+ z48\0\3c2 = (3.437u,2.751u);
+ z48\0\3 = (2.891u,1.204u);
+ z48\0\4c1 = (5.229u,1.513u);
+ z48\0\4c2 = (5.228u,1.469u);
+ z48\0\4 = (7.468u,0.679u);
+ z48\0\5 = (6.745u,0.679u);
+ z48\0\6c1 = (5.717u,0.622u);
+ z48\0\6c2 = (2.829u,1.073u);
+ z48\0\6 = (2.185u,0.107u);
+ z48\0\7c1 = (1.897u,-0.326u);
+ z48\0\7c2 = (2.181u,-0.991u);
+ z48\0\7 = (2.040u,-1.514u);
+ z48\0\8 = (1.677u,-2.412u);
+ z48\0\9c1 = (1.536u,-2.822u);
+ z48\0\9c2 = (1.491u,-3.187u);
+ z48\0\9 = (1.445u,-3.613u);
+ z48\0\10c1 = (3.423u,-3.453u);
+ z48\0\10c2 = (5.027u,-2.957u);
+ z48\0\10 = (6.724u,-4.418u);
+ z48\0\11c1 = (7.438u,-5.034u);
+ z48\0\11c2 = (7.838u,-5.784u);
+ z48\0\11 = (8.672u,-6.263u);
+ z48\0\12c1 = (8.154u,-4.489u);
+ z48\0\12c2 = (6.698u,-2.511u);
+ z48\0\12 = (4.818u,-2.055u);
+ z48\0\13c1 = (4.047u,-1.868u);
+ z48\0\13c2 = (3.197u,-1.927u);
+ z48\0\13 = (2.409u,-1.927u);
+ z48\0\14c1 = (2.711u,-1.554u);
+ z48\0\14c2 = (2.944u,-1.239u);
+ z48\0\14 = (3.383u,-1.005u);
+ z48\0\15c1 = (4.510u,-0.407u);
+ z48\0\15c2 = (6.528u,-1.159u);
+ z48\0\15 = (7.226u,-0.166u);
+ z48\0\16c1 = (7.375u,0.046u);
+ z48\0\16c2 = (7.393u,0.249u);
+ z48\0\16 = (7.468u,0.482u);
+ z48\0\17c1 = (8.092u,-0.063u);
+ z48\0\17c2 = (8.244u,-0.258u);
+ z48\0\17 = (8.672u,-0.964u);
+ z48\0\18c1 = (8.965u,-0.226u);
+ z48\0\18c2 = (8.888u,0.426u);
+ z48\0\18 = (8.923u,1.204u);
+ z48\0\19 = (9.203u,3.854u);
+ z48\0\20 = (9.591u,5.300u);
+ z48\0\21c1 = (9.636u,5.780u);
+ z48\0\21c2 = (9.631u,6.259u);
+ z48\0\21 = (9.591u,6.745u);
+ z48\0\22c1 = (9.125u,6.738u);
+ z48\0\22c2 = (8.306u,6.810u);
+ z48\0\22 = (7.955u,6.360u);
+ z48\0\23c1 = (7.733u,6.076u);
+ z48\0\23c2 = (7.728u,5.638u);
+ z48\0\23 = (7.778u,5.299u);
+ z48\0\24 = (8.342u,3.613u);
+ z48\0\25c1 = (8.644u,2.508u);
+ z48\0\25c2 = (8.671u,1.377u);
+ z48\0\25 = (8.672u,0.241u);
+ z48\0\26c1 = (7.904u,1.411u);
+ z48\0\26c2 = (7.399u,2.177u);
+ z48\0\26 = (6.020u,2.650u);
+ z48\0\27c1 = (6.207u,3.410u);
+ z48\0\27c2 = (6.512u,5.734u);
+ z48\0\27 = (6.020u,6.401u);
+ z48\0\28c1 = (5.479u,7.040u);
+ z48\0\28c2 = (2.687u,6.734u);
+ z48\0\28 = (1.937u,6.401u);
+ z48\0\29c1 = (1.616u,6.316u);
+ z48\0\29c2 = (1.358u,6.176u);
+ z48\0\29 = (1.120u,5.920u);
+ z48\0\30c1 = (0.445u,5.194u);
+ z48\0\30c2 = (0.430u,4.056u);
+ z48\0\30 = (0.551u,3.132u);
+ z48\0\31c1 = (0.661u,2.288u);
+ z48\0\31c2 = (0.726u,1.704u);
+ fill_or_unfill z48\0\0s
+ ..controls z48\0\0c1 and z48\0\0c2..z48\0\0
+ ..controls z48\0\1c1 and z48\0\1c2..z48\0\1
+ ..controls z48\0\2c1 and z48\0\2c2..z48\0\2
+ ..controls z48\0\3c1 and z48\0\3c2..z48\0\3
+ ..controls z48\0\4c1 and z48\0\4c2..z48\0\4
+ --z48\0\5
+ ..controls z48\0\6c1 and z48\0\6c2..z48\0\6
+ ..controls z48\0\7c1 and z48\0\7c2..z48\0\7
+ --z48\0\8
+ ..controls z48\0\9c1 and z48\0\9c2..z48\0\9
+ ..controls z48\0\10c1 and z48\0\10c2..z48\0\10
+ ..controls z48\0\11c1 and z48\0\11c2..z48\0\11
+ ..controls z48\0\12c1 and z48\0\12c2..z48\0\12
+ ..controls z48\0\13c1 and z48\0\13c2..z48\0\13
+ ..controls z48\0\14c1 and z48\0\14c2..z48\0\14
+ ..controls z48\0\15c1 and z48\0\15c2..z48\0\15
+ ..controls z48\0\16c1 and z48\0\16c2..z48\0\16
+ ..controls z48\0\17c1 and z48\0\17c2..z48\0\17
+ ..controls z48\0\18c1 and z48\0\18c2..z48\0\18
+ --z48\0\19
+ --z48\0\20
+ ..controls z48\0\21c1 and z48\0\21c2..z48\0\21
+ ..controls z48\0\22c1 and z48\0\22c2..z48\0\22
+ ..controls z48\0\23c1 and z48\0\23c2..z48\0\23
+ --z48\0\24
+ ..controls z48\0\25c1 and z48\0\25c2..z48\0\25
+ ..controls z48\0\26c1 and z48\0\26c2..z48\0\26
+ ..controls z48\0\27c1 and z48\0\27c2..z48\0\27
+ ..controls z48\0\28c1 and z48\0\28c2..z48\0\28
+ ..controls z48\0\29c1 and z48\0\29c2..z48\0\29
+ ..controls z48\0\30c1 and z48\0\30c2..z48\0\30
+ ..controls z48\0\31c1 and z48\0\31c2..cycle;
+ proof_labels (
+ 48\0\0,
+ 48\0\1,
+ 48\0\2,
+ 48\0\3,
+ 48\0\4,
+ 48\0\5,
+ 48\0\6,
+ 48\0\7,
+ 48\0\8,
+ 48\0\9,
+ 48\0\10,
+ 48\0\11,
+ 48\0\12,
+ 48\0\13,
+ 48\0\14,
+ 48\0\15,
+ 48\0\16,
+ 48\0\17,
+ 48\0\18,
+ 48\0\19,
+ 48\0\20,
+ 48\0\21,
+ 48\0\22,
+ 48\0\23,
+ 48\0\24,
+ 48\0\25,
+ 48\0\26,
+ 48\0\27,
+ 48\0\28,
+ 48\0\29,
+ 48\0\30,
+ 48\0\31,
+);
+endchar;
+
+beginchar (159, 10.840u#, 6.745u#, 6.504u#);
+ "lpa";
+ z49\0\0s = (0.964u,1.204u);
+ z49\0\0c1 = (1.342u,2.239u);
+ z49\0\0c2 = (0.723u,3.323u);
+ z49\0\0 = (1.410u,4.282u);
+ z49\0\1c1 = (2.314u,5.541u);
+ z49\0\1c2 = (5.004u,5.645u);
+ z49\0\1 = (5.740u,4.073u);
+ z49\0\2c1 = (5.898u,3.624u);
+ z49\0\2c2 = (5.816u,3.122u);
+ z49\0\2 = (5.740u,2.650u);
+ z49\0\3c1 = (4.060u,2.633u);
+ z49\0\3c2 = (3.654u,2.595u);
+ z49\0\3 = (2.891u,0.964u);
+ z49\0\4c1 = (6.270u,1.412u);
+ z49\0\4c2 = (5.895u,1.623u);
+ z49\0\4 = (9.154u,0.241u);
+ z49\0\5c1 = (8.854u,-0.033u);
+ z49\0\5c2 = (8.478u,-0.284u);
+ z49\0\5 = (8.409u,-0.723u);
+ z49\0\6c1 = (8.336u,-1.187u);
+ z49\0\6c2 = (8.739u,-1.582u);
+ z49\0\6 = (8.931u,-1.968u);
+ z49\0\7c1 = (9.081u,-2.269u);
+ z49\0\7c2 = (9.171u,-2.564u);
+ z49\0\7 = (9.242u,-2.892u);
+ z49\0\8c1 = (9.432u,-3.760u);
+ z49\0\8c2 = (9.395u,-4.658u);
+ z49\0\8 = (9.395u,-5.541u);
+ z49\0\9c1 = (7.011u,-4.048u);
+ z49\0\9c2 = (5.881u,-3.854u);
+ z49\0\9 = (3.132u,-3.854u);
+ z49\0\10c1 = (4.159u,-0.636u);
+ z49\0\10c2 = (5.853u,-2.056u);
+ z49\0\10 = (6.745u,-0.669u);
+ z49\0\11c1 = (6.887u,-0.447u);
+ z49\0\11c2 = (6.911u,-0.240u);
+ z49\0\11 = (6.986u,0.000u);
+ z49\0\12c1 = (6.306u,0.000u);
+ z49\0\12c2 = (4.159u,0.080u);
+ z49\0\12 = (3.649u,-0.144u);
+ z49\0\13c1 = (3.348u,-0.276u);
+ z49\0\13c2 = (3.168u,-0.441u);
+ z49\0\13 = (3.055u,-0.758u);
+ z49\0\14c1 = (2.901u,-1.241u);
+ z49\0\14c2 = (3.130u,-1.876u);
+ z49\0\14 = (3.055u,-2.409u);
+ z49\0\15 = (2.598u,-3.854u);
+ z49\0\16c1 = (2.464u,-4.342u);
+ z49\0\16c2 = (2.433u,-4.799u);
+ z49\0\16 = (2.409u,-5.279u);
+ z49\0\17 = (3.613u,-5.279u);
+ z49\0\18 = (5.300u,-5.109u);
+ z49\0\19c1 = (6.056u,-5.148u);
+ z49\0\19c2 = (6.982u,-5.280u);
+ z49\0\19 = (7.709u,-5.489u);
+ z49\0\20 = (9.892u,-6.263u);
+ z49\0\21c1 = (9.877u,-5.009u);
+ z49\0\21c2 = (9.769u,-3.650u);
+ z49\0\21 = (9.892u,-2.409u);
+ z49\0\22 = (10.235u,-0.723u);
+ z49\0\23 = (9.918u,0.723u);
+ z49\0\24c1 = (9.825u,1.423u);
+ z49\0\24c2 = (9.875u,2.181u);
+ z49\0\24 = (9.918u,2.891u);
+ z49\0\25 = (9.918u,4.336u);
+ z49\0\26c1 = (10.061u,5.084u);
+ z49\0\26c2 = (10.754u,6.376u);
+ z49\0\26 = (9.602u,6.665u);
+ z49\0\27c1 = (9.181u,6.771u);
+ z49\0\27c2 = (8.512u,6.673u);
+ z49\0\27 = (8.370u,6.188u);
+ z49\0\28c1 = (8.200u,5.609u);
+ z49\0\28c2 = (9.041u,4.498u);
+ z49\0\28 = (9.221u,3.854u);
+ z49\0\29c1 = (9.514u,2.808u);
+ z49\0\29c2 = (9.395u,1.563u);
+ z49\0\29 = (9.395u,0.482u);
+ z49\0\30c1 = (8.062u,1.749u);
+ z49\0\30c2 = (7.700u,1.967u);
+ z49\0\30 = (6.022u,2.650u);
+ z49\0\31c1 = (6.197u,3.266u);
+ z49\0\31c2 = (6.576u,5.639u);
+ z49\0\31 = (6.249u,6.118u);
+ z49\0\32c1 = (5.570u,7.182u);
+ z49\0\32c2 = (2.574u,6.745u);
+ z49\0\32 = (1.718u,6.118u);
+ z49\0\33c1 = (1.049u,5.587u);
+ z49\0\33c2 = (0.663u,4.677u);
+ z49\0\33 = (0.581u,3.854u);
+ z49\0\34c1 = (0.506u,3.100u);
+ z49\0\34c2 = (0.776u,1.948u);
+ fill_or_unfill z49\0\0s
+ ..controls z49\0\0c1 and z49\0\0c2..z49\0\0
+ ..controls z49\0\1c1 and z49\0\1c2..z49\0\1
+ ..controls z49\0\2c1 and z49\0\2c2..z49\0\2
+ ..controls z49\0\3c1 and z49\0\3c2..z49\0\3
+ ..controls z49\0\4c1 and z49\0\4c2..z49\0\4
+ ..controls z49\0\5c1 and z49\0\5c2..z49\0\5
+ ..controls z49\0\6c1 and z49\0\6c2..z49\0\6
+ ..controls z49\0\7c1 and z49\0\7c2..z49\0\7
+ ..controls z49\0\8c1 and z49\0\8c2..z49\0\8
+ ..controls z49\0\9c1 and z49\0\9c2..z49\0\9
+ ..controls z49\0\10c1 and z49\0\10c2..z49\0\10
+ ..controls z49\0\11c1 and z49\0\11c2..z49\0\11
+ ..controls z49\0\12c1 and z49\0\12c2..z49\0\12
+ ..controls z49\0\13c1 and z49\0\13c2..z49\0\13
+ ..controls z49\0\14c1 and z49\0\14c2..z49\0\14
+ --z49\0\15
+ ..controls z49\0\16c1 and z49\0\16c2..z49\0\16
+ --z49\0\17
+ --z49\0\18
+ ..controls z49\0\19c1 and z49\0\19c2..z49\0\19
+ --z49\0\20
+ ..controls z49\0\21c1 and z49\0\21c2..z49\0\21
+ --z49\0\22
+ --z49\0\23
+ ..controls z49\0\24c1 and z49\0\24c2..z49\0\24
+ --z49\0\25
+ ..controls z49\0\26c1 and z49\0\26c2..z49\0\26
+ ..controls z49\0\27c1 and z49\0\27c2..z49\0\27
+ ..controls z49\0\28c1 and z49\0\28c2..z49\0\28
+ ..controls z49\0\29c1 and z49\0\29c2..z49\0\29
+ ..controls z49\0\30c1 and z49\0\30c2..z49\0\30
+ ..controls z49\0\31c1 and z49\0\31c2..z49\0\31
+ ..controls z49\0\32c1 and z49\0\32c2..z49\0\32
+ ..controls z49\0\33c1 and z49\0\33c2..z49\0\33
+ ..controls z49\0\34c1 and z49\0\34c2..cycle;
+ proof_labels (
+ 49\0\0,
+ 49\0\1,
+ 49\0\2,
+ 49\0\3,
+ 49\0\4,
+ 49\0\5,
+ 49\0\6,
+ 49\0\7,
+ 49\0\8,
+ 49\0\9,
+ 49\0\10,
+ 49\0\11,
+ 49\0\12,
+ 49\0\13,
+ 49\0\14,
+ 49\0\15,
+ 49\0\16,
+ 49\0\17,
+ 49\0\18,
+ 49\0\19,
+ 49\0\20,
+ 49\0\21,
+ 49\0\22,
+ 49\0\23,
+ 49\0\24,
+ 49\0\25,
+ 49\0\26,
+ 49\0\27,
+ 49\0\28,
+ 49\0\29,
+ 49\0\30,
+ 49\0\31,
+ 49\0\32,
+ 49\0\33,
+ 49\0\34,
+);
+endchar;
+
+beginchar (160, 11.081u#, 6.745u#, 6.986u#);
+ "lba";
+ z50\0\0s = (1.686u,1.204u);
+ z50\0\0c1 = (1.478u,1.829u);
+ z50\0\0c2 = (1.013u,2.979u);
+ z50\0\0 = (1.111u,3.610u);
+ z50\0\1c1 = (1.415u,5.562u);
+ z50\0\1c2 = (4.832u,5.884u);
+ z50\0\1 = (5.789u,4.319u);
+ z50\0\2c1 = (5.929u,4.089u);
+ z50\0\2c2 = (6.042u,3.770u);
+ z50\0\2 = (5.984u,3.498u);
+ z50\0\3c1 = (5.762u,2.449u);
+ z50\0\3c2 = (4.018u,2.925u);
+ z50\0\3 = (3.414u,2.064u);
+ z50\0\4c1 = (3.226u,1.797u);
+ z50\0\4c2 = (3.201u,1.509u);
+ z50\0\4 = (3.132u,1.204u);
+ z50\0\5 = (5.300u,1.403u);
+ z50\0\6c1 = (6.746u,1.400u);
+ z50\0\6c2 = (8.093u,0.793u);
+ z50\0\6 = (9.395u,0.241u);
+ z50\0\7c1 = (8.804u,0.073u);
+ z50\0\7c2 = (8.324u,0.010u);
+ z50\0\7 = (7.709u,0.001u);
+ z50\0\8c1 = (6.866u,-0.011u);
+ z50\0\8c2 = (3.855u,0.229u);
+ z50\0\8 = (3.379u,-0.385u);
+ z50\0\9c1 = (3.096u,-0.750u);
+ z50\0\9c2 = (3.198u,-1.262u);
+ z50\0\9 = (3.190u,-1.686u);
+ z50\0\10c1 = (3.172u,-2.645u);
+ z50\0\10c2 = (2.902u,-2.997u);
+ z50\0\10 = (2.601u,-3.854u);
+ z50\0\11 = (2.168u,-5.541u);
+ z50\0\12c1 = (4.318u,-5.521u);
+ z50\0\12c2 = (6.360u,-4.893u);
+ z50\0\12 = (8.431u,-5.886u);
+ z50\0\13 = (9.913u,-6.745u);
+ z50\0\14c1 = (9.877u,-5.648u);
+ z50\0\14c2 = (9.783u,-4.456u);
+ z50\0\14 = (9.913u,-3.372u);
+ z50\0\15 = (10.545u,-1.445u);
+ z50\0\16c1 = (10.598u,-0.964u);
+ z50\0\16c2 = (10.594u,-0.489u);
+ z50\0\16 = (10.545u,0.000u);
+ z50\0\17 = (9.928u,0.000u);
+ z50\0\18c1 = (9.877u,0.966u);
+ z50\0\18c2 = (9.841u,1.933u);
+ z50\0\18 = (9.928u,2.891u);
+ z50\0\19 = (10.575u,5.541u);
+ z50\0\20 = (10.575u,6.745u);
+ z50\0\21c1 = (9.669u,6.736u);
+ z50\0\21c2 = (7.921u,6.772u);
+ z50\0\21 = (8.438u,5.296u);
+ z50\0\22 = (9.258u,3.613u);
+ z50\0\23c1 = (9.499u,2.753u);
+ z50\0\23c2 = (9.395u,1.620u);
+ z50\0\23 = (9.395u,0.723u);
+ z50\0\24c1 = (8.433u,1.513u);
+ z50\0\24c2 = (7.453u,2.256u);
+ z50\0\24 = (6.263u,2.650u);
+ z50\0\25c1 = (6.409u,3.462u);
+ z50\0\25c2 = (6.830u,5.936u);
+ z50\0\25 = (6.119u,6.499u);
+ z50\0\26c1 = (5.797u,6.754u);
+ z50\0\26c2 = (5.210u,6.737u);
+ z50\0\26 = (4.818u,6.744u);
+ z50\0\27c1 = (3.965u,6.760u);
+ z50\0\27c2 = (2.725u,6.835u);
+ z50\0\27 = (1.978u,6.395u);
+ z50\0\28c1 = (0.275u,5.392u);
+ z50\0\28c2 = (0.033u,2.318u);
+ z50\1\0s = (9.636u,-5.782u);
+ z50\1\0 = (7.709u,-4.843u);
+ z50\1\1c1 = (5.954u,-4.102u);
+ z50\1\1c2 = (4.980u,-4.095u);
+ z50\1\1 = (3.132u,-4.095u);
+ z50\1\2c1 = (3.333u,-3.250u);
+ z50\1\2c2 = (3.651u,-2.433u);
+ z50\1\2 = (4.386u,-1.901u);
+ z50\1\3c1 = (5.208u,-1.306u);
+ z50\1\3c2 = (8.484u,-1.120u);
+ z50\1\3 = (9.112u,-2.031u);
+ z50\1\4c1 = (9.482u,-2.566u);
+ z50\1\4c2 = (9.629u,-5.050u);
+ fill_or_unfill z50\0\0s
+ ..controls z50\0\0c1 and z50\0\0c2..z50\0\0
+ ..controls z50\0\1c1 and z50\0\1c2..z50\0\1
+ ..controls z50\0\2c1 and z50\0\2c2..z50\0\2
+ ..controls z50\0\3c1 and z50\0\3c2..z50\0\3
+ ..controls z50\0\4c1 and z50\0\4c2..z50\0\4
+ --z50\0\5
+ ..controls z50\0\6c1 and z50\0\6c2..z50\0\6
+ ..controls z50\0\7c1 and z50\0\7c2..z50\0\7
+ ..controls z50\0\8c1 and z50\0\8c2..z50\0\8
+ ..controls z50\0\9c1 and z50\0\9c2..z50\0\9
+ ..controls z50\0\10c1 and z50\0\10c2..z50\0\10
+ --z50\0\11
+ ..controls z50\0\12c1 and z50\0\12c2..z50\0\12
+ --z50\0\13
+ ..controls z50\0\14c1 and z50\0\14c2..z50\0\14
+ --z50\0\15
+ ..controls z50\0\16c1 and z50\0\16c2..z50\0\16
+ --z50\0\17
+ ..controls z50\0\18c1 and z50\0\18c2..z50\0\18
+ --z50\0\19
+ --z50\0\20
+ ..controls z50\0\21c1 and z50\0\21c2..z50\0\21
+ --z50\0\22
+ ..controls z50\0\23c1 and z50\0\23c2..z50\0\23
+ ..controls z50\0\24c1 and z50\0\24c2..z50\0\24
+ ..controls z50\0\25c1 and z50\0\25c2..z50\0\25
+ ..controls z50\0\26c1 and z50\0\26c2..z50\0\26
+ ..controls z50\0\27c1 and z50\0\27c2..z50\0\27
+ ..controls z50\0\28c1 and z50\0\28c2..cycle;
+ fill_or_unfill z50\1\0s
+ --z50\1\0
+ ..controls z50\1\1c1 and z50\1\1c2..z50\1\1
+ ..controls z50\1\2c1 and z50\1\2c2..z50\1\2
+ ..controls z50\1\3c1 and z50\1\3c2..z50\1\3
+ ..controls z50\1\4c1 and z50\1\4c2..cycle;
+ proof_labels (
+ 50\0\0,
+ 50\0\1,
+ 50\0\2,
+ 50\0\3,
+ 50\0\4,
+ 50\0\5,
+ 50\0\6,
+ 50\0\7,
+ 50\0\8,
+ 50\0\9,
+ 50\0\10,
+ 50\0\11,
+ 50\0\12,
+ 50\0\13,
+ 50\0\14,
+ 50\0\15,
+ 50\0\16,
+ 50\0\17,
+ 50\0\18,
+ 50\0\19,
+ 50\0\20,
+ 50\0\21,
+ 50\0\22,
+ 50\0\23,
+ 50\0\24,
+ 50\0\25,
+ 50\0\26,
+ 50\0\27,
+ 50\0\28,
+ 50\1\0,
+ 50\1\1,
+ 50\1\2,
+ 50\1\3,
+ 50\1\4,
+);
+endchar;
+
+beginchar (161, 10.359u#, 6.745u#, 8.431u#);
+ "lha";
+ z51\0\0s = (1.445u,2.168u);
+ z51\0\0c1 = (1.343u,2.645u);
+ z51\0\0c2 = (1.110u,3.372u);
+ z51\0\0 = (1.219u,3.844u);
+ z51\0\1c1 = (1.611u,5.535u);
+ z51\0\1c2 = (5.011u,5.650u);
+ z51\0\1 = (5.739u,4.270u);
+ z51\0\2c1 = (5.877u,3.908u);
+ z51\0\2c2 = (5.806u,3.515u);
+ z51\0\2 = (5.739u,3.132u);
+ z51\0\3c1 = (4.850u,3.337u);
+ z51\0\3c2 = (3.513u,3.405u);
+ z51\0\3 = (3.033u,2.356u);
+ z51\0\4c1 = (2.930u,2.132u);
+ z51\0\4c2 = (2.931u,1.919u);
+ z51\0\4 = (2.891u,1.686u);
+ z51\0\5 = (5.059u,2.069u);
+ z51\0\6c1 = (6.896u,2.231u);
+ z51\0\6c2 = (8.255u,0.972u);
+ z51\0\6 = (9.641u,0.000u);
+ z51\0\7 = (9.641u,3.854u);
+ z51\0\8c1 = (9.671u,4.440u);
+ z51\0\8c2 = (9.917u,5.475u);
+ z51\0\8 = (9.792u,5.992u);
+ z51\0\9c1 = (9.538u,7.027u);
+ z51\0\9c2 = (8.058u,6.787u);
+ z51\0\9 = (7.928u,5.992u);
+ z51\0\10c1 = (7.835u,5.436u);
+ z51\0\10c2 = (8.636u,4.701u);
+ z51\0\10 = (8.810u,4.086u);
+ z51\0\11 = (8.953u,2.891u);
+ z51\0\12 = (9.154u,1.204u);
+ z51\0\13c1 = (8.127u,2.138u);
+ z51\0\13c2 = (7.371u,2.738u);
+ z51\0\13 = (6.074u,3.132u);
+ z51\0\14c1 = (6.188u,3.811u);
+ z51\0\14c2 = (6.442u,5.278u);
+ z51\0\14 = (6.074u,5.920u);
+ z51\0\15c1 = (5.556u,7.071u);
+ z51\0\15c2 = (0.926u,7.371u);
+ z51\0\15 = (0.536u,4.336u);
+ z51\0\16c1 = (0.415u,3.392u);
+ z51\0\16c2 = (0.655u,2.683u);
+ z51\1\0s = (1.686u,-4.095u);
+ z51\1\0c1 = (3.004u,-4.053u);
+ z51\1\0c2 = (3.467u,-3.978u);
+ z51\1\0 = (4.555u,-4.860u);
+ z51\1\1c1 = (4.984u,-5.208u);
+ z51\1\1c2 = (5.296u,-5.511u);
+ z51\1\1 = (5.782u,-5.782u);
+ z51\1\2c1 = (5.677u,-4.487u);
+ z51\1\2c2 = (5.444u,-4.315u);
+ z51\1\2 = (4.577u,-3.372u);
+ z51\1\3c1 = (4.969u,-3.229u);
+ z51\1\3c2 = (5.360u,-3.057u);
+ z51\1\3 = (5.782u,-3.026u);
+ z51\1\4c1 = (6.339u,-2.984u);
+ z51\1\4c2 = (6.956u,-3.179u);
+ z51\1\4 = (7.385u,-3.541u);
+ z51\1\5c1 = (8.640u,-4.599u);
+ z51\1\5c2 = (7.687u,-6.271u);
+ z51\1\5 = (6.720u,-7.148u);
+ z51\1\6c1 = (6.358u,-7.476u);
+ z51\1\6c2 = (5.959u,-7.705u);
+ z51\1\6 = (5.541u,-7.950u);
+ z51\1\7c1 = (7.057u,-8.524u);
+ z51\1\7c2 = (8.294u,-7.142u);
+ z51\1\7 = (8.720u,-5.782u);
+ z51\1\8c1 = (8.868u,-5.310u);
+ z51\1\8c2 = (8.898u,-4.826u);
+ z51\1\8 = (8.910u,-4.336u);
+ z51\1\9c1 = (8.928u,-3.581u);
+ z51\1\9c2 = (8.993u,-2.608u);
+ z51\1\9 = (8.356u,-2.071u);
+ z51\1\10c1 = (7.878u,-1.669u);
+ z51\1\10c2 = (7.098u,-1.664u);
+ z51\1\10 = (6.504u,-1.697u);
+ z51\1\11c1 = (5.281u,-1.764u);
+ z51\1\11c2 = (4.923u,-2.103u);
+ z51\1\11 = (4.336u,-3.132u);
+ z51\1\12 = (2.409u,-2.409u);
+ z51\1\13c1 = (4.076u,0.617u);
+ z51\1\13c2 = (6.160u,-1.567u);
+ z51\1\13 = (7.574u,-0.338u);
+ z51\1\14c1 = (7.912u,-0.043u);
+ z51\1\14c2 = (8.029u,0.326u);
+ z51\1\14 = (8.190u,0.685u);
+ z51\1\15c1 = (7.375u,0.723u);
+ z51\1\15c2 = (3.404u,0.788u);
+ z51\1\15 = (2.926u,0.685u);
+ z51\1\16c1 = (2.711u,0.583u);
+ z51\1\16c2 = (2.558u,0.520u);
+ z51\1\16 = (2.415u,0.338u);
+ z51\1\17c1 = (2.101u,-0.062u);
+ z51\1\17c2 = (2.239u,-0.813u);
+ z51\1\17 = (2.138u,-1.307u);
+ z51\1\18 = (1.813u,-2.412u);
+ z51\1\19c1 = (1.688u,-2.971u);
+ z51\1\19c2 = (1.691u,-3.527u);
+ fill_or_unfill z51\0\0s
+ ..controls z51\0\0c1 and z51\0\0c2..z51\0\0
+ ..controls z51\0\1c1 and z51\0\1c2..z51\0\1
+ ..controls z51\0\2c1 and z51\0\2c2..z51\0\2
+ ..controls z51\0\3c1 and z51\0\3c2..z51\0\3
+ ..controls z51\0\4c1 and z51\0\4c2..z51\0\4
+ --z51\0\5
+ ..controls z51\0\6c1 and z51\0\6c2..z51\0\6
+ --z51\0\7
+ ..controls z51\0\8c1 and z51\0\8c2..z51\0\8
+ ..controls z51\0\9c1 and z51\0\9c2..z51\0\9
+ ..controls z51\0\10c1 and z51\0\10c2..z51\0\10
+ --z51\0\11
+ --z51\0\12
+ ..controls z51\0\13c1 and z51\0\13c2..z51\0\13
+ ..controls z51\0\14c1 and z51\0\14c2..z51\0\14
+ ..controls z51\0\15c1 and z51\0\15c2..z51\0\15
+ ..controls z51\0\16c1 and z51\0\16c2..cycle;
+ fill_or_unfill z51\1\0s
+ ..controls z51\1\0c1 and z51\1\0c2..z51\1\0
+ ..controls z51\1\1c1 and z51\1\1c2..z51\1\1
+ ..controls z51\1\2c1 and z51\1\2c2..z51\1\2
+ ..controls z51\1\3c1 and z51\1\3c2..z51\1\3
+ ..controls z51\1\4c1 and z51\1\4c2..z51\1\4
+ ..controls z51\1\5c1 and z51\1\5c2..z51\1\5
+ ..controls z51\1\6c1 and z51\1\6c2..z51\1\6
+ ..controls z51\1\7c1 and z51\1\7c2..z51\1\7
+ ..controls z51\1\8c1 and z51\1\8c2..z51\1\8
+ ..controls z51\1\9c1 and z51\1\9c2..z51\1\9
+ ..controls z51\1\10c1 and z51\1\10c2..z51\1\10
+ ..controls z51\1\11c1 and z51\1\11c2..z51\1\11
+ --z51\1\12
+ ..controls z51\1\13c1 and z51\1\13c2..z51\1\13
+ ..controls z51\1\14c1 and z51\1\14c2..z51\1\14
+ ..controls z51\1\15c1 and z51\1\15c2..z51\1\15
+ ..controls z51\1\16c1 and z51\1\16c2..z51\1\16
+ ..controls z51\1\17c1 and z51\1\17c2..z51\1\17
+ --z51\1\18
+ ..controls z51\1\19c1 and z51\1\19c2..cycle;
+ proof_labels (
+ 51\0\0,
+ 51\0\1,
+ 51\0\2,
+ 51\0\3,
+ 51\0\4,
+ 51\0\5,
+ 51\0\6,
+ 51\0\7,
+ 51\0\8,
+ 51\0\9,
+ 51\0\10,
+ 51\0\11,
+ 51\0\12,
+ 51\0\13,
+ 51\0\14,
+ 51\0\15,
+ 51\0\16,
+ 51\1\0,
+ 51\1\1,
+ 51\1\2,
+ 51\1\3,
+ 51\1\4,
+ 51\1\5,
+ 51\1\6,
+ 51\1\7,
+ 51\1\8,
+ 51\1\9,
+ 51\1\10,
+ 51\1\11,
+ 51\1\12,
+ 51\1\13,
+ 51\1\14,
+ 51\1\15,
+ 51\1\16,
+ 51\1\17,
+ 51\1\18,
+ 51\1\19,
+);
+endchar;
+
+beginchar (162, 9.877u#, 6.745u#, 6.263u#);
+ "ska";
+ z52\0\0s = (0.723u,5.300u);
+ z52\0\0 = (1.927u,5.300u);
+ z52\0\1c1 = (1.157u,4.117u);
+ z52\0\1c2 = (0.634u,3.364u);
+ z52\0\1 = (0.482u,1.880u);
+ z52\0\2 = (1.686u,1.880u);
+ z52\0\3 = (4.095u,0.964u);
+ z52\0\4c1 = (3.764u,2.508u);
+ z52\0\4c2 = (2.925u,3.019u);
+ z52\0\4 = (1.445u,3.372u);
+ z52\0\5c1 = (1.763u,3.665u);
+ z52\0\5c2 = (1.973u,3.886u);
+ z52\0\5 = (2.420u,3.984u);
+ z52\0\6c1 = (3.399u,4.197u);
+ z52\0\6c2 = (5.941u,2.873u);
+ z52\0\6 = (6.745u,2.275u);
+ z52\0\7c1 = (7.446u,1.755u);
+ z52\0\7c2 = (8.055u,1.097u);
+ z52\0\7 = (8.672u,0.430u);
+ z52\0\8c1 = (7.650u,0.482u);
+ z52\0\8c2 = (3.062u,0.570u);
+ z52\0\8 = (2.423u,0.430u);
+ z52\0\9c1 = (2.139u,0.293u);
+ z52\0\9c2 = (1.870u,0.171u);
+ z52\0\9 = (1.732u,-0.103u);
+ z52\0\10c1 = (1.488u,-0.536u);
+ z52\0\10c2 = (1.763u,-1.201u);
+ z52\0\10 = (1.732u,-1.686u);
+ z52\0\11 = (1.445u,-3.372u);
+ z52\0\12c1 = (1.662u,-3.247u);
+ z52\0\12c2 = (1.829u,-3.183u);
+ z52\0\12 = (2.019u,-3.001u);
+ z52\0\13c1 = (2.529u,-2.514u);
+ z52\0\13c2 = (3.006u,-1.252u);
+ z52\0\13 = (3.826u,-1.252u);
+ z52\0\14c1 = (4.841u,-1.252u);
+ z52\0\14c2 = (4.880u,-3.347u);
+ z52\0\14 = (5.327u,-3.972u);
+ z52\0\15c1 = (5.472u,-4.174u);
+ z52\0\15c2 = (5.595u,-4.207u);
+ z52\0\15 = (5.782u,-4.336u);
+ z52\0\16c1 = (5.782u,-3.291u);
+ z52\0\16c2 = (5.481u,-1.402u);
+ z52\0\16 = (6.771u,-1.001u);
+ z52\0\17c1 = (7.162u,-0.929u);
+ z52\0\17c2 = (7.998u,-0.964u);
+ z52\0\17 = (8.431u,-1.001u);
+ z52\0\18 = (8.913u,-6.022u);
+ z52\0\19 = (9.395u,-6.022u);
+ z52\0\20 = (9.395u,-0.964u);
+ z52\0\21 = (9.200u,1.204u);
+ z52\0\22 = (9.200u,3.132u);
+ z52\0\23c1 = (9.164u,3.861u);
+ z52\0\23c2 = (9.511u,5.639u);
+ z52\0\23 = (9.200u,6.188u);
+ z52\0\24c1 = (8.876u,6.974u);
+ z52\0\24c2 = (7.557u,6.824u);
+ z52\0\24 = (7.537u,5.777u);
+ z52\0\25c1 = (7.525u,5.142u);
+ z52\0\25c2 = (8.009u,4.641u);
+ z52\0\25 = (8.222u,4.074u);
+ z52\0\26c1 = (8.496u,3.347u);
+ z52\0\26c2 = (8.570u,2.456u);
+ z52\0\26 = (8.672u,1.686u);
+ z52\0\27 = (6.745u,3.326u);
+ z52\0\28 = (4.336u,5.300u);
+ z52\0\29c1 = (5.278u,5.462u);
+ z52\0\29c2 = (5.329u,5.585u);
+ z52\0\29 = (5.541u,6.504u);
+ z52\0\30c1 = (4.636u,6.724u);
+ z52\0\30c2 = (1.791u,7.041u);
+ z52\0\30 = (1.107u,6.360u);
+ z52\0\31c1 = (0.802u,6.056u);
+ z52\0\31c2 = (0.789u,5.694u);
+ fill_or_unfill z52\0\0s
+ --z52\0\0
+ ..controls z52\0\1c1 and z52\0\1c2..z52\0\1
+ --z52\0\2
+ --z52\0\3
+ ..controls z52\0\4c1 and z52\0\4c2..z52\0\4
+ ..controls z52\0\5c1 and z52\0\5c2..z52\0\5
+ ..controls z52\0\6c1 and z52\0\6c2..z52\0\6
+ ..controls z52\0\7c1 and z52\0\7c2..z52\0\7
+ ..controls z52\0\8c1 and z52\0\8c2..z52\0\8
+ ..controls z52\0\9c1 and z52\0\9c2..z52\0\9
+ ..controls z52\0\10c1 and z52\0\10c2..z52\0\10
+ --z52\0\11
+ ..controls z52\0\12c1 and z52\0\12c2..z52\0\12
+ ..controls z52\0\13c1 and z52\0\13c2..z52\0\13
+ ..controls z52\0\14c1 and z52\0\14c2..z52\0\14
+ ..controls z52\0\15c1 and z52\0\15c2..z52\0\15
+ ..controls z52\0\16c1 and z52\0\16c2..z52\0\16
+ ..controls z52\0\17c1 and z52\0\17c2..z52\0\17
+ --z52\0\18
+ --z52\0\19
+ --z52\0\20
+ --z52\0\21
+ --z52\0\22
+ ..controls z52\0\23c1 and z52\0\23c2..z52\0\23
+ ..controls z52\0\24c1 and z52\0\24c2..z52\0\24
+ ..controls z52\0\25c1 and z52\0\25c2..z52\0\25
+ ..controls z52\0\26c1 and z52\0\26c2..z52\0\26
+ --z52\0\27
+ --z52\0\28
+ ..controls z52\0\29c1 and z52\0\29c2..z52\0\29
+ ..controls z52\0\30c1 and z52\0\30c2..z52\0\30
+ ..controls z52\0\31c1 and z52\0\31c2..cycle;
+ proof_labels (
+ 52\0\0,
+ 52\0\1,
+ 52\0\2,
+ 52\0\3,
+ 52\0\4,
+ 52\0\5,
+ 52\0\6,
+ 52\0\7,
+ 52\0\8,
+ 52\0\9,
+ 52\0\10,
+ 52\0\11,
+ 52\0\12,
+ 52\0\13,
+ 52\0\14,
+ 52\0\15,
+ 52\0\16,
+ 52\0\17,
+ 52\0\18,
+ 52\0\19,
+ 52\0\20,
+ 52\0\21,
+ 52\0\22,
+ 52\0\23,
+ 52\0\24,
+ 52\0\25,
+ 52\0\26,
+ 52\0\27,
+ 52\0\28,
+ 52\0\29,
+ 52\0\30,
+ 52\0\31,
+);
+endchar;
+
+beginchar (163, 10.359u#, 6.745u#, 6.263u#);
+ "sga";
+ z53\0\0s = (0.482u,1.706u);
+ z53\0\0 = (2.168u,1.706u);
+ z53\0\1 = (4.336u,1.204u);
+ z53\0\2 = (3.965u,1.897u);
+ z53\0\3c1 = (3.409u,2.614u);
+ z53\0\3c2 = (2.232u,3.146u);
+ z53\0\3 = (1.445u,3.613u);
+ z53\0\4c1 = (2.016u,3.752u);
+ z53\0\4c2 = (2.539u,3.861u);
+ z53\0\4 = (3.132u,3.829u);
+ z53\0\5c1 = (4.430u,3.758u);
+ z53\0\5c2 = (7.607u,2.714u);
+ z53\0\5 = (8.458u,1.738u);
+ z53\0\6c1 = (8.740u,1.415u);
+ z53\0\6c2 = (8.805u,1.120u);
+ z53\0\6 = (8.913u,0.723u);
+ z53\0\7c1 = (7.736u,0.723u);
+ z53\0\7c2 = (2.954u,0.919u);
+ z53\0\7 = (2.203u,0.476u);
+ z53\0\8c1 = (1.701u,0.180u);
+ z53\0\8c2 = (1.602u,-0.208u);
+ z53\0\8 = (1.445u,-0.723u);
+ z53\0\9 = (2.409u,-0.964u);
+ z53\0\10c1 = (2.019u,-2.133u);
+ z53\0\10c2 = (1.714u,-3.091u);
+ z53\0\10 = (1.686u,-4.350u);
+ z53\0\11c1 = (2.761u,-4.144u);
+ z53\0\11c2 = (3.767u,-3.923u);
+ z53\0\11 = (4.818u,-4.350u);
+ z53\0\12 = (6.263u,-5.059u);
+ z53\0\13c1 = (6.263u,-4.135u);
+ z53\0\13c2 = (6.137u,-2.250u);
+ z53\0\13 = (6.580u,-1.480u);
+ z53\0\14c1 = (7.089u,-0.596u);
+ z53\0\14c2 = (8.273u,-0.511u);
+ z53\0\14 = (8.739u,-1.480u);
+ z53\0\15c1 = (9.231u,-2.506u);
+ z53\0\15c2 = (9.154u,-4.851u);
+ z53\0\15 = (9.154u,-6.022u);
+ z53\0\16 = (9.868u,-6.022u);
+ z53\0\17 = (9.868u,-2.168u);
+ z53\0\18 = (9.868u,-0.021u);
+ z53\0\19 = (9.468u,1.245u);
+ z53\0\20c1 = (9.413u,1.632u);
+ z53\0\20c2 = (9.399u,2.013u);
+ z53\0\20 = (9.468u,2.409u);
+ z53\0\21 = (9.468u,3.854u);
+ z53\0\22c1 = (9.584u,4.389u);
+ z53\0\22c2 = (9.883u,5.505u);
+ z53\0\22 = (9.780u,5.987u);
+ z53\0\23c1 = (9.581u,6.924u);
+ z53\0\23c2 = (8.201u,6.911u);
+ z53\0\23 = (8.056u,5.987u);
+ z53\0\24c1 = (7.972u,5.453u);
+ z53\0\24c2 = (8.395u,4.627u);
+ z53\0\24 = (8.549u,4.095u);
+ z53\0\25 = (8.913u,2.409u);
+ z53\0\26 = (4.336u,5.059u);
+ z53\0\27c1 = (4.805u,5.236u);
+ z53\0\27c2 = (5.833u,5.484u);
+ z53\0\27 = (5.602u,6.201u);
+ z53\0\28c1 = (5.538u,6.400u);
+ z53\0\28c2 = (5.404u,6.512u);
+ z53\0\28 = (5.223u,6.601u);
+ z53\0\29c1 = (4.614u,6.902u);
+ z53\0\29c2 = (2.526u,6.814u);
+ z53\0\29 = (2.007u,6.360u);
+ z53\0\30c1 = (1.351u,5.787u);
+ z53\0\30c2 = (1.767u,5.197u);
+ z53\0\30 = (1.555u,4.509u);
+ z53\0\31 = (0.850u,3.131u);
+ z53\0\32c1 = (0.608u,2.616u);
+ z53\0\32c2 = (0.544u,2.242u);
+ z53\1\0s = (5.782u,-3.854u);
+ z53\1\0 = (2.409u,-2.650u);
+ z53\1\1c1 = (2.730u,-1.976u);
+ z53\1\1c2 = (3.118u,-1.328u);
+ z53\1\1 = (3.854u,-1.031u);
+ z53\1\2c1 = (5.388u,-0.412u);
+ z53\1\2c2 = (5.586u,-2.884u);
+ fill_or_unfill z53\0\0s
+ --z53\0\0
+ --z53\0\1
+ --z53\0\2
+ ..controls z53\0\3c1 and z53\0\3c2..z53\0\3
+ ..controls z53\0\4c1 and z53\0\4c2..z53\0\4
+ ..controls z53\0\5c1 and z53\0\5c2..z53\0\5
+ ..controls z53\0\6c1 and z53\0\6c2..z53\0\6
+ ..controls z53\0\7c1 and z53\0\7c2..z53\0\7
+ ..controls z53\0\8c1 and z53\0\8c2..z53\0\8
+ --z53\0\9
+ ..controls z53\0\10c1 and z53\0\10c2..z53\0\10
+ ..controls z53\0\11c1 and z53\0\11c2..z53\0\11
+ --z53\0\12
+ ..controls z53\0\13c1 and z53\0\13c2..z53\0\13
+ ..controls z53\0\14c1 and z53\0\14c2..z53\0\14
+ ..controls z53\0\15c1 and z53\0\15c2..z53\0\15
+ --z53\0\16
+ --z53\0\17
+ --z53\0\18
+ --z53\0\19
+ ..controls z53\0\20c1 and z53\0\20c2..z53\0\20
+ --z53\0\21
+ ..controls z53\0\22c1 and z53\0\22c2..z53\0\22
+ ..controls z53\0\23c1 and z53\0\23c2..z53\0\23
+ ..controls z53\0\24c1 and z53\0\24c2..z53\0\24
+ --z53\0\25
+ --z53\0\26
+ ..controls z53\0\27c1 and z53\0\27c2..z53\0\27
+ ..controls z53\0\28c1 and z53\0\28c2..z53\0\28
+ ..controls z53\0\29c1 and z53\0\29c2..z53\0\29
+ ..controls z53\0\30c1 and z53\0\30c2..z53\0\30
+ --z53\0\31
+ ..controls z53\0\32c1 and z53\0\32c2..cycle;
+ fill_or_unfill z53\1\0s
+ --z53\1\0
+ ..controls z53\1\1c1 and z53\1\1c2..z53\1\1
+ ..controls z53\1\2c1 and z53\1\2c2..cycle;
+ proof_labels (
+ 53\0\0,
+ 53\0\1,
+ 53\0\2,
+ 53\0\3,
+ 53\0\4,
+ 53\0\5,
+ 53\0\6,
+ 53\0\7,
+ 53\0\8,
+ 53\0\9,
+ 53\0\10,
+ 53\0\11,
+ 53\0\12,
+ 53\0\13,
+ 53\0\14,
+ 53\0\15,
+ 53\0\16,
+ 53\0\17,
+ 53\0\18,
+ 53\0\19,
+ 53\0\20,
+ 53\0\21,
+ 53\0\22,
+ 53\0\23,
+ 53\0\24,
+ 53\0\25,
+ 53\0\26,
+ 53\0\27,
+ 53\0\28,
+ 53\0\29,
+ 53\0\30,
+ 53\0\31,
+ 53\0\32,
+ 53\1\0,
+ 53\1\1,
+ 53\1\2,
+);
+endchar;
+
+beginchar (166, 10.359u#, 6.745u#, 6.745u#);
+ "snga";
+ z54\0\0s = (0.964u,5.300u);
+ z54\0\0 = (2.409u,5.300u);
+ z54\0\1c1 = (1.462u,4.143u);
+ z54\0\1c2 = (0.679u,2.951u);
+ z54\0\1 = (0.482u,1.445u);
+ z54\0\2c1 = (1.471u,1.436u);
+ z54\0\2c2 = (2.416u,1.358u);
+ z54\0\2 = (3.372u,1.081u);
+ z54\0\3 = (5.059u,0.482u);
+ z54\0\4c1 = (4.218u,2.254u);
+ z54\0\4c2 = (3.174u,2.554u);
+ z54\0\4 = (1.445u,3.132u);
+ z54\0\5 = (1.927u,4.095u);
+ z54\0\6 = (5.059u,2.917u);
+ z54\0\7c1 = (6.262u,2.346u);
+ z54\0\7c2 = (8.057u,1.012u);
+ z54\0\7 = (8.913u,0.000u);
+ z54\0\8c1 = (7.939u,0.000u);
+ z54\0\8c2 = (3.332u,0.179u);
+ z54\0\8 = (2.794u,-0.246u);
+ z54\0\9c1 = (2.612u,-0.390u);
+ z54\0\9c2 = (2.548u,-0.542u);
+ z54\0\9 = (2.447u,-0.758u);
+ z54\0\10c1 = (2.345u,-1.230u);
+ z54\0\10c2 = (2.409u,-5.651u);
+ z54\0\10 = (2.447u,-6.504u);
+ z54\0\11 = (6.022u,-6.045u);
+ z54\0\12c1 = (7.257u,-5.973u);
+ z54\0\12c2 = (8.414u,-6.402u);
+ z54\0\12 = (9.636u,-6.504u);
+ z54\0\13c1 = (7.757u,-4.504u);
+ z54\0\13c2 = (5.376u,-4.818u);
+ z54\0\13 = (2.891u,-4.818u);
+ z54\0\14c1 = (2.891u,-4.145u);
+ z54\0\14c2 = (2.786u,-2.529u);
+ z54\0\14 = (3.137u,-2.003u);
+ z54\0\15c1 = (4.018u,-0.681u);
+ z54\0\15c2 = (8.230u,-2.211u);
+ z54\0\15 = (9.112u,-0.888u);
+ z54\0\16c1 = (9.399u,-0.457u);
+ z54\0\16c2 = (9.387u,0.222u);
+ z54\0\16 = (9.417u,0.723u);
+ z54\0\17 = (9.417u,3.372u);
+ z54\0\18 = (9.838u,5.059u);
+ z54\0\19 = (9.838u,6.745u);
+ z54\0\20c1 = (7.098u,6.648u);
+ z54\0\20c2 = (8.357u,5.481u);
+ z54\0\20 = (8.780u,3.854u);
+ z54\0\21c1 = (9.010u,2.969u);
+ z54\0\21c2 = (9.080u,1.879u);
+ z54\0\21 = (9.154u,0.964u);
+ z54\0\22c1 = (8.257u,1.606u);
+ z54\0\22c2 = (7.537u,2.359u);
+ z54\0\22 = (6.746u,3.122u);
+ z54\0\23c1 = (5.999u,3.844u);
+ z54\0\23c2 = (5.225u,4.484u);
+ z54\0\23 = (4.577u,5.300u);
+ z54\0\24c1 = (5.041u,5.338u);
+ z54\0\24c2 = (6.472u,5.529u);
+ z54\0\24 = (5.982u,6.365u);
+ z54\0\25c1 = (5.632u,6.962u);
+ z54\0\25c2 = (2.291u,6.835u);
+ z54\0\25 = (1.721u,6.499u);
+ z54\0\26c1 = (1.219u,6.203u);
+ z54\0\26c2 = (1.120u,5.814u);
+ fill_or_unfill z54\0\0s
+ --z54\0\0
+ ..controls z54\0\1c1 and z54\0\1c2..z54\0\1
+ ..controls z54\0\2c1 and z54\0\2c2..z54\0\2
+ --z54\0\3
+ ..controls z54\0\4c1 and z54\0\4c2..z54\0\4
+ --z54\0\5
+ --z54\0\6
+ ..controls z54\0\7c1 and z54\0\7c2..z54\0\7
+ ..controls z54\0\8c1 and z54\0\8c2..z54\0\8
+ ..controls z54\0\9c1 and z54\0\9c2..z54\0\9
+ ..controls z54\0\10c1 and z54\0\10c2..z54\0\10
+ --z54\0\11
+ ..controls z54\0\12c1 and z54\0\12c2..z54\0\12
+ ..controls z54\0\13c1 and z54\0\13c2..z54\0\13
+ ..controls z54\0\14c1 and z54\0\14c2..z54\0\14
+ ..controls z54\0\15c1 and z54\0\15c2..z54\0\15
+ ..controls z54\0\16c1 and z54\0\16c2..z54\0\16
+ --z54\0\17
+ --z54\0\18
+ --z54\0\19
+ ..controls z54\0\20c1 and z54\0\20c2..z54\0\20
+ ..controls z54\0\21c1 and z54\0\21c2..z54\0\21
+ ..controls z54\0\22c1 and z54\0\22c2..z54\0\22
+ ..controls z54\0\23c1 and z54\0\23c2..z54\0\23
+ ..controls z54\0\24c1 and z54\0\24c2..z54\0\24
+ ..controls z54\0\25c1 and z54\0\25c2..z54\0\25
+ ..controls z54\0\26c1 and z54\0\26c2..cycle;
+ proof_labels (
+ 54\0\0,
+ 54\0\1,
+ 54\0\2,
+ 54\0\3,
+ 54\0\4,
+ 54\0\5,
+ 54\0\6,
+ 54\0\7,
+ 54\0\8,
+ 54\0\9,
+ 54\0\10,
+ 54\0\11,
+ 54\0\12,
+ 54\0\13,
+ 54\0\14,
+ 54\0\15,
+ 54\0\16,
+ 54\0\17,
+ 54\0\18,
+ 54\0\19,
+ 54\0\20,
+ 54\0\21,
+ 54\0\22,
+ 54\0\23,
+ 54\0\24,
+ 54\0\25,
+ 54\0\26,
+);
+endchar;
+
+beginchar (165, 10.840u#, 6.745u#, 8.190u#);
+ "snya";
+ z55\0\0s = (1.445u,5.300u);
+ z55\0\0 = (2.409u,5.300u);
+ z55\0\1c1 = (1.255u,4.197u);
+ z55\0\1c2 = (0.601u,3.585u);
+ z55\0\1 = (0.482u,1.888u);
+ z55\0\2c1 = (1.273u,1.927u);
+ z55\0\2c2 = (2.108u,1.980u);
+ z55\0\2 = (2.891u,1.888u);
+ z55\0\3 = (4.336u,1.445u);
+ z55\0\4c1 = (3.805u,1.192u);
+ z55\0\4c2 = (3.185u,0.966u);
+ z55\0\4 = (2.744u,0.567u);
+ z55\0\5c1 = (2.359u,0.219u);
+ z55\0\5c2 = (2.122u,-0.239u);
+ z55\0\5 = (1.953u,-0.723u);
+ z55\0\6c1 = (1.274u,-2.673u);
+ z55\0\6c2 = (2.784u,-2.915u);
+ z55\0\6 = (3.372u,-2.092u);
+ z55\0\7c1 = (3.522u,-1.882u);
+ z55\0\7c2 = (3.539u,-1.677u);
+ z55\0\7 = (3.613u,-1.445u);
+ z55\0\8 = (2.168u,-1.204u);
+ z55\0\9c1 = (2.377u,-0.797u);
+ z55\0\9c2 = (2.501u,-0.492u);
+ z55\0\9 = (2.923u,-0.246u);
+ z55\0\10c1 = (3.548u,0.117u);
+ z55\0\10c2 = (5.629u,0.214u);
+ z55\0\10 = (5.803u,-0.754u);
+ z55\0\11c1 = (5.979u,-1.743u);
+ z55\0\11c2 = (3.998u,-2.458u);
+ z55\0\11 = (3.902u,-4.092u);
+ z55\0\12c1 = (3.885u,-4.384u);
+ z55\0\12c2 = (3.933u,-4.708u);
+ z55\0\12 = (4.101u,-4.955u);
+ z55\0\13c1 = (4.990u,-6.263u);
+ z55\0\13c2 = (7.250u,-4.684u);
+ z55\0\13 = (5.286u,-4.058u);
+ z55\0\14 = (4.336u,-3.854u);
+ z55\0\15c1 = (4.632u,-3.475u);
+ z55\0\15c2 = (4.867u,-3.127u);
+ z55\0\15 = (5.310u,-2.897u);
+ z55\0\16c1 = (6.553u,-2.251u);
+ z55\0\16c2 = (8.807u,-3.145u);
+ z55\0\16 = (8.358u,-4.809u);
+ z55\0\17c1 = (8.130u,-5.652u);
+ z55\0\17c2 = (7.320u,-6.349u);
+ z55\0\17 = (6.763u,-6.989u);
+ z55\0\18 = (6.022u,-7.950u);
+ z55\0\19c1 = (6.348u,-7.894u);
+ z55\0\19c2 = (6.613u,-7.881u);
+ z55\0\19 = (6.908u,-7.705u);
+ z55\0\20c1 = (7.319u,-7.460u);
+ z55\0\20c2 = (7.657u,-6.979u);
+ z55\0\20 = (7.949u,-6.605u);
+ z55\0\21c1 = (8.821u,-5.487u);
+ z55\0\21c2 = (10.220u,-3.107u);
+ z55\0\21 = (8.810u,-1.861u);
+ z55\0\22c1 = (8.239u,-1.356u);
+ z55\0\22c2 = (7.232u,-1.266u);
+ z55\0\22 = (6.504u,-1.204u);
+ z55\0\23c1 = (6.734u,-0.704u);
+ z55\0\23c2 = (7.045u,-0.140u);
+ z55\0\23 = (6.832u,0.427u);
+ z55\0\24c1 = (6.564u,1.140u);
+ z55\0\24c2 = (5.651u,1.176u);
+ z55\0\24 = (5.059u,1.483u);
+ z55\0\25 = (3.372u,2.653u);
+ z55\0\26c1 = (2.761u,3.024u);
+ z55\0\26c2 = (2.134u,3.211u);
+ z55\0\26 = (1.445u,3.372u);
+ z55\0\27 = (1.445u,3.900u);
+ z55\0\28c1 = (1.957u,3.934u);
+ z55\0\28c2 = (2.366u,4.027u);
+ z55\0\28 = (2.891u,3.900u);
+ z55\0\29c1 = (4.683u,3.673u);
+ z55\0\29c2 = (7.668u,1.786u);
+ z55\0\29 = (8.860u,0.460u);
+ z55\0\30c1 = (9.194u,0.089u);
+ z55\0\30c2 = (9.403u,-0.289u);
+ z55\0\30 = (9.636u,-0.723u);
+ z55\0\31c1 = (10.129u,0.520u);
+ z55\0\31c2 = (9.773u,2.470u);
+ z55\0\31 = (9.902u,3.854u);
+ z55\0\32 = (10.314u,5.541u);
+ z55\0\33 = (10.314u,6.745u);
+ z55\0\34 = (8.431u,6.745u);
+ z55\0\35c1 = (8.485u,5.776u);
+ z55\0\35c2 = (8.782u,5.023u);
+ z55\0\35 = (8.991u,4.095u);
+ z55\0\36 = (9.203u,2.409u);
+ z55\0\37 = (9.636u,0.482u);
+ z55\0\38 = (6.745u,3.351u);
+ z55\0\39 = (4.577u,5.300u);
+ z55\0\40c1 = (5.079u,5.317u);
+ z55\0\40c2 = (6.112u,5.274u);
+ z55\0\40 = (6.112u,6.022u);
+ z55\0\41c1 = (6.112u,6.301u);
+ z55\0\41c2 = (5.942u,6.484u);
+ z55\0\41 = (5.705u,6.601u);
+ z55\0\42c1 = (5.413u,6.745u);
+ z55\0\42c2 = (4.901u,6.738u);
+ z55\0\42 = (4.577u,6.744u);
+ z55\0\43c1 = (3.613u,6.762u);
+ z55\0\43c2 = (2.274u,6.933u);
+ z55\0\43 = (1.687u,5.988u);
+ z55\0\44c1 = (1.545u,5.760u);
+ z55\0\44c2 = (1.520u,5.545u);
+ fill_or_unfill z55\0\0s
+ --z55\0\0
+ ..controls z55\0\1c1 and z55\0\1c2..z55\0\1
+ ..controls z55\0\2c1 and z55\0\2c2..z55\0\2
+ --z55\0\3
+ ..controls z55\0\4c1 and z55\0\4c2..z55\0\4
+ ..controls z55\0\5c1 and z55\0\5c2..z55\0\5
+ ..controls z55\0\6c1 and z55\0\6c2..z55\0\6
+ ..controls z55\0\7c1 and z55\0\7c2..z55\0\7
+ --z55\0\8
+ ..controls z55\0\9c1 and z55\0\9c2..z55\0\9
+ ..controls z55\0\10c1 and z55\0\10c2..z55\0\10
+ ..controls z55\0\11c1 and z55\0\11c2..z55\0\11
+ ..controls z55\0\12c1 and z55\0\12c2..z55\0\12
+ ..controls z55\0\13c1 and z55\0\13c2..z55\0\13
+ --z55\0\14
+ ..controls z55\0\15c1 and z55\0\15c2..z55\0\15
+ ..controls z55\0\16c1 and z55\0\16c2..z55\0\16
+ ..controls z55\0\17c1 and z55\0\17c2..z55\0\17
+ --z55\0\18
+ ..controls z55\0\19c1 and z55\0\19c2..z55\0\19
+ ..controls z55\0\20c1 and z55\0\20c2..z55\0\20
+ ..controls z55\0\21c1 and z55\0\21c2..z55\0\21
+ ..controls z55\0\22c1 and z55\0\22c2..z55\0\22
+ ..controls z55\0\23c1 and z55\0\23c2..z55\0\23
+ ..controls z55\0\24c1 and z55\0\24c2..z55\0\24
+ --z55\0\25
+ ..controls z55\0\26c1 and z55\0\26c2..z55\0\26
+ --z55\0\27
+ ..controls z55\0\28c1 and z55\0\28c2..z55\0\28
+ ..controls z55\0\29c1 and z55\0\29c2..z55\0\29
+ ..controls z55\0\30c1 and z55\0\30c2..z55\0\30
+ ..controls z55\0\31c1 and z55\0\31c2..z55\0\31
+ --z55\0\32
+ --z55\0\33
+ --z55\0\34
+ ..controls z55\0\35c1 and z55\0\35c2..z55\0\35
+ --z55\0\36
+ --z55\0\37
+ --z55\0\38
+ --z55\0\39
+ ..controls z55\0\40c1 and z55\0\40c2..z55\0\40
+ ..controls z55\0\41c1 and z55\0\41c2..z55\0\41
+ ..controls z55\0\42c1 and z55\0\42c2..z55\0\42
+ ..controls z55\0\43c1 and z55\0\43c2..z55\0\43
+ ..controls z55\0\44c1 and z55\0\44c2..cycle;
+ proof_labels (
+ 55\0\0,
+ 55\0\1,
+ 55\0\2,
+ 55\0\3,
+ 55\0\4,
+ 55\0\5,
+ 55\0\6,
+ 55\0\7,
+ 55\0\8,
+ 55\0\9,
+ 55\0\10,
+ 55\0\11,
+ 55\0\12,
+ 55\0\13,
+ 55\0\14,
+ 55\0\15,
+ 55\0\16,
+ 55\0\17,
+ 55\0\18,
+ 55\0\19,
+ 55\0\20,
+ 55\0\21,
+ 55\0\22,
+ 55\0\23,
+ 55\0\24,
+ 55\0\25,
+ 55\0\26,
+ 55\0\27,
+ 55\0\28,
+ 55\0\29,
+ 55\0\30,
+ 55\0\31,
+ 55\0\32,
+ 55\0\33,
+ 55\0\34,
+ 55\0\35,
+ 55\0\36,
+ 55\0\37,
+ 55\0\38,
+ 55\0\39,
+ 55\0\40,
+ 55\0\41,
+ 55\0\42,
+ 55\0\43,
+ 55\0\44,
+);
+endchar;
+
+beginchar (167, 9.877u#, 6.745u#, 7.227u#);
+ "sta";
+ z56\0\0s = (0.964u,5.300u);
+ z56\0\0 = (1.927u,5.300u);
+ z56\0\1c1 = (1.398u,4.562u);
+ z56\0\1c2 = (0.538u,3.346u);
+ z56\0\1 = (0.567u,2.409u);
+ z56\0\2 = (0.723u,1.686u);
+ z56\0\3c1 = (2.786u,2.037u);
+ z56\0\3c2 = (2.974u,1.623u);
+ z56\0\3 = (4.818u,0.964u);
+ z56\0\4c1 = (4.105u,2.375u);
+ z56\0\4c2 = (2.951u,2.894u);
+ z56\0\4 = (1.445u,3.132u);
+ z56\0\5c1 = (1.663u,3.497u);
+ z56\0\5c2 = (1.725u,3.737u);
+ z56\0\5 = (2.201u,3.840u);
+ z56\0\6c1 = (2.988u,4.009u);
+ z56\0\6c2 = (5.728u,2.757u);
+ z56\0\6 = (6.483u,2.332u);
+ z56\0\7c1 = (7.266u,1.891u);
+ z56\0\7c2 = (8.044u,1.361u);
+ z56\0\7 = (8.672u,0.723u);
+ z56\0\8 = (3.854u,0.723u);
+ z56\0\9 = (3.854u,-3.338u);
+ z56\0\10 = (5.059u,-3.338u);
+ z56\0\11c1 = (5.536u,-3.248u);
+ z56\0\11c2 = (6.021u,-3.129u);
+ z56\0\11 = (6.504u,-3.195u);
+ z56\0\12c1 = (7.027u,-3.268u);
+ z56\0\12c2 = (7.518u,-3.512u);
+ z56\0\12 = (7.873u,-3.909u);
+ z56\0\13c1 = (8.947u,-5.110u);
+ z56\0\13c2 = (7.656u,-6.047u);
+ z56\0\13 = (6.745u,-6.745u);
+ z56\0\14c1 = (9.226u,-7.526u);
+ z56\0\14c2 = (10.491u,-2.862u);
+ z56\0\14 = (7.708u,-2.065u);
+ z56\0\15c1 = (6.559u,-1.736u);
+ z56\0\15c2 = (5.361u,-2.152u);
+ z56\0\15 = (4.336u,-2.650u);
+ z56\0\16c1 = (4.352u,-2.201u);
+ z56\0\16c2 = (4.321u,-1.672u);
+ z56\0\16 = (4.582u,-1.280u);
+ z56\0\17c1 = (5.432u,-0.005u);
+ z56\0\17c2 = (8.181u,-1.586u);
+ z56\0\17 = (8.976u,0.267u);
+ z56\0\18c1 = (9.191u,0.766u);
+ z56\0\18c2 = (9.153u,1.618u);
+ z56\0\18 = (9.186u,2.168u);
+ z56\0\19 = (9.186u,4.095u);
+ z56\0\20c1 = (9.187u,4.634u);
+ z56\0\20c2 = (9.438u,5.734u);
+ z56\0\20 = (9.186u,6.188u);
+ z56\0\21c1 = (8.919u,6.933u);
+ z56\0\21c2 = (7.442u,6.889u);
+ z56\0\21 = (7.357u,5.998u);
+ z56\0\22c1 = (7.294u,5.339u);
+ z56\0\22c2 = (8.122u,4.739u);
+ z56\0\22 = (8.338u,4.082u);
+ z56\0\23 = (8.539u,3.132u);
+ z56\0\24 = (8.913u,1.445u);
+ z56\0\25c1 = (7.262u,2.725u);
+ z56\0\25c2 = (5.729u,4.099u);
+ z56\0\25 = (3.854u,5.059u);
+ z56\0\26c1 = (5.013u,5.493u);
+ z56\0\26c2 = (5.260u,5.471u);
+ z56\0\26 = (5.541u,6.745u);
+ z56\0\27c1 = (4.603u,6.745u);
+ z56\0\27c2 = (1.990u,6.952u);
+ z56\0\27 = (1.348u,6.326u);
+ z56\0\28c1 = (1.043u,6.029u);
+ z56\0\28c2 = (1.030u,5.689u);
+ fill_or_unfill z56\0\0s
+ --z56\0\0
+ ..controls z56\0\1c1 and z56\0\1c2..z56\0\1
+ --z56\0\2
+ ..controls z56\0\3c1 and z56\0\3c2..z56\0\3
+ ..controls z56\0\4c1 and z56\0\4c2..z56\0\4
+ ..controls z56\0\5c1 and z56\0\5c2..z56\0\5
+ ..controls z56\0\6c1 and z56\0\6c2..z56\0\6
+ ..controls z56\0\7c1 and z56\0\7c2..z56\0\7
+ --z56\0\8
+ --z56\0\9
+ --z56\0\10
+ ..controls z56\0\11c1 and z56\0\11c2..z56\0\11
+ ..controls z56\0\12c1 and z56\0\12c2..z56\0\12
+ ..controls z56\0\13c1 and z56\0\13c2..z56\0\13
+ ..controls z56\0\14c1 and z56\0\14c2..z56\0\14
+ ..controls z56\0\15c1 and z56\0\15c2..z56\0\15
+ ..controls z56\0\16c1 and z56\0\16c2..z56\0\16
+ ..controls z56\0\17c1 and z56\0\17c2..z56\0\17
+ ..controls z56\0\18c1 and z56\0\18c2..z56\0\18
+ --z56\0\19
+ ..controls z56\0\20c1 and z56\0\20c2..z56\0\20
+ ..controls z56\0\21c1 and z56\0\21c2..z56\0\21
+ ..controls z56\0\22c1 and z56\0\22c2..z56\0\22
+ --z56\0\23
+ --z56\0\24
+ ..controls z56\0\25c1 and z56\0\25c2..z56\0\25
+ ..controls z56\0\26c1 and z56\0\26c2..z56\0\26
+ ..controls z56\0\27c1 and z56\0\27c2..z56\0\27
+ ..controls z56\0\28c1 and z56\0\28c2..cycle;
+ proof_labels (
+ 56\0\0,
+ 56\0\1,
+ 56\0\2,
+ 56\0\3,
+ 56\0\4,
+ 56\0\5,
+ 56\0\6,
+ 56\0\7,
+ 56\0\8,
+ 56\0\9,
+ 56\0\10,
+ 56\0\11,
+ 56\0\12,
+ 56\0\13,
+ 56\0\14,
+ 56\0\15,
+ 56\0\16,
+ 56\0\17,
+ 56\0\18,
+ 56\0\19,
+ 56\0\20,
+ 56\0\21,
+ 56\0\22,
+ 56\0\23,
+ 56\0\24,
+ 56\0\25,
+ 56\0\26,
+ 56\0\27,
+ 56\0\28,
+);
+endchar;
+
+beginchar (168, 10.600u#, 6.745u#, 6.986u#);
+ "sda";
+ z57\0\0s = (1.204u,5.300u);
+ z57\0\0 = (2.168u,5.300u);
+ z57\0\1c1 = (1.549u,4.272u);
+ z57\0\1c2 = (0.847u,3.317u);
+ z57\0\1 = (0.482u,2.168u);
+ z57\0\2c1 = (1.890u,1.969u);
+ z57\0\2c2 = (3.037u,1.514u);
+ z57\0\2 = (4.336u,0.964u);
+ z57\0\3c1 = (2.890u,0.547u);
+ z57\0\3c2 = (2.382u,0.965u);
+ z57\0\3 = (1.927u,-0.723u);
+ z57\0\4 = (2.135u,-1.259u);
+ z57\0\5 = (1.874u,-2.409u);
+ z57\0\6 = (1.686u,-3.613u);
+ z57\0\7c1 = (2.180u,-3.602u);
+ z57\0\7c2 = (2.645u,-3.587u);
+ z57\0\7 = (3.132u,-3.490u);
+ z57\0\8 = (4.336u,-3.231u);
+ z57\0\9c1 = (5.555u,-3.123u);
+ z57\0\9c2 = (6.832u,-3.744u);
+ z57\0\9 = (7.664u,-4.602u);
+ z57\0\10c1 = (8.323u,-5.280u);
+ z57\0\10c2 = (8.641u,-6.188u);
+ z57\0\10 = (9.395u,-6.745u);
+ z57\0\11c1 = (8.978u,-4.525u);
+ z57\0\11c2 = (6.939u,-2.116u);
+ z57\0\11 = (4.577u,-1.950u);
+ z57\0\12c1 = (3.836u,-1.898u);
+ z57\0\12c2 = (3.133u,-2.038u);
+ z57\0\12 = (2.409u,-2.168u);
+ z57\0\13c1 = (4.726u,0.764u);
+ z57\0\13c2 = (6.518u,-2.209u);
+ z57\0\13 = (8.190u,0.760u);
+ z57\0\14c1 = (7.400u,0.723u);
+ z57\0\14c2 = (6.292u,0.611u);
+ z57\0\14 = (5.541u,0.760u);
+ z57\0\15c1 = (4.635u,1.024u);
+ z57\0\15c2 = (4.080u,1.767u);
+ z57\0\15 = (3.372u,2.316u);
+ z57\0\16c1 = (2.775u,2.780u);
+ z57\0\16c2 = (2.134u,3.074u);
+ z57\0\16 = (1.445u,3.372u);
+ z57\0\17c1 = (1.854u,3.642u);
+ z57\0\17c2 = (2.132u,3.880u);
+ z57\0\17 = (2.650u,3.896u);
+ z57\0\18c1 = (4.011u,3.938u);
+ z57\0\18c2 = (7.711u,1.694u);
+ z57\0\18 = (8.640u,0.700u);
+ z57\0\19c1 = (8.995u,0.320u);
+ z57\0\19c2 = (9.177u,-0.021u);
+ z57\0\19 = (9.395u,-0.482u);
+ z57\0\20c1 = (9.880u,0.741u);
+ z57\0\20c2 = (9.537u,2.299u);
+ z57\0\20 = (9.677u,3.613u);
+ z57\0\21 = (10.062u,5.300u);
+ z57\0\22 = (10.062u,6.745u);
+ z57\0\23c1 = (9.087u,6.732u);
+ z57\0\23c2 = (7.901u,6.758u);
+ z57\0\23 = (8.416u,5.299u);
+ z57\0\24 = (9.061u,3.854u);
+ z57\0\25c1 = (9.360u,2.850u);
+ z57\0\25c2 = (9.392u,1.761u);
+ z57\0\25 = (9.395u,0.723u);
+ z57\0\26c1 = (7.763u,2.355u);
+ z57\0\26c2 = (6.094u,3.880u);
+ z57\0\26 = (4.095u,5.059u);
+ z57\0\27c1 = (5.163u,5.513u);
+ z57\0\27c2 = (5.643u,5.573u);
+ z57\0\27 = (6.022u,6.745u);
+ z57\0\28c1 = (5.066u,6.745u);
+ z57\0\28c2 = (2.261u,6.961u);
+ z57\0\28 = (1.623u,6.326u);
+ z57\0\29c1 = (1.328u,6.034u);
+ z57\0\29c2 = (1.290u,5.680u);
+ fill_or_unfill z57\0\0s
+ --z57\0\0
+ ..controls z57\0\1c1 and z57\0\1c2..z57\0\1
+ ..controls z57\0\2c1 and z57\0\2c2..z57\0\2
+ ..controls z57\0\3c1 and z57\0\3c2..z57\0\3
+ --z57\0\4
+ --z57\0\5
+ --z57\0\6
+ ..controls z57\0\7c1 and z57\0\7c2..z57\0\7
+ --z57\0\8
+ ..controls z57\0\9c1 and z57\0\9c2..z57\0\9
+ ..controls z57\0\10c1 and z57\0\10c2..z57\0\10
+ ..controls z57\0\11c1 and z57\0\11c2..z57\0\11
+ ..controls z57\0\12c1 and z57\0\12c2..z57\0\12
+ ..controls z57\0\13c1 and z57\0\13c2..z57\0\13
+ ..controls z57\0\14c1 and z57\0\14c2..z57\0\14
+ ..controls z57\0\15c1 and z57\0\15c2..z57\0\15
+ ..controls z57\0\16c1 and z57\0\16c2..z57\0\16
+ ..controls z57\0\17c1 and z57\0\17c2..z57\0\17
+ ..controls z57\0\18c1 and z57\0\18c2..z57\0\18
+ ..controls z57\0\19c1 and z57\0\19c2..z57\0\19
+ ..controls z57\0\20c1 and z57\0\20c2..z57\0\20
+ --z57\0\21
+ --z57\0\22
+ ..controls z57\0\23c1 and z57\0\23c2..z57\0\23
+ --z57\0\24
+ ..controls z57\0\25c1 and z57\0\25c2..z57\0\25
+ ..controls z57\0\26c1 and z57\0\26c2..z57\0\26
+ ..controls z57\0\27c1 and z57\0\27c2..z57\0\27
+ ..controls z57\0\28c1 and z57\0\28c2..z57\0\28
+ ..controls z57\0\29c1 and z57\0\29c2..cycle;
+ proof_labels (
+ 57\0\0,
+ 57\0\1,
+ 57\0\2,
+ 57\0\3,
+ 57\0\4,
+ 57\0\5,
+ 57\0\6,
+ 57\0\7,
+ 57\0\8,
+ 57\0\9,
+ 57\0\10,
+ 57\0\11,
+ 57\0\12,
+ 57\0\13,
+ 57\0\14,
+ 57\0\15,
+ 57\0\16,
+ 57\0\17,
+ 57\0\18,
+ 57\0\19,
+ 57\0\20,
+ 57\0\21,
+ 57\0\22,
+ 57\0\23,
+ 57\0\24,
+ 57\0\25,
+ 57\0\26,
+ 57\0\27,
+ 57\0\28,
+ 57\0\29,
+);
+endchar;
+
+beginchar (164, 9.877u#, 6.745u#, 6.986u#);
+ "sna";
+ z58\0\0s = (0.723u,5.541u);
+ z58\0\0 = (1.927u,5.300u);
+ z58\0\1c1 = (1.303u,4.114u);
+ z58\0\1c2 = (0.657u,3.035u);
+ z58\0\1 = (0.482u,1.650u);
+ z58\0\2 = (2.409u,1.650u);
+ z58\0\3c1 = (3.232u,1.496u);
+ z58\0\3c2 = (4.031u,1.221u);
+ z58\0\3 = (4.818u,0.964u);
+ z58\0\4c1 = (4.696u,1.208u);
+ z58\0\4c2 = (4.625u,1.415u);
+ z58\0\4 = (4.447u,1.636u);
+ z58\0\5c1 = (3.774u,2.468u);
+ z58\0\5c2 = (2.452u,2.895u);
+ z58\0\5 = (1.445u,3.132u);
+ z58\0\6 = (1.686u,4.095u);
+ z58\0\7c1 = (3.153u,3.606u);
+ z58\0\7c2 = (4.681u,3.148u);
+ z58\0\7 = (6.022u,2.362u);
+ z58\0\8c1 = (7.033u,1.769u);
+ z58\0\8c2 = (7.834u,0.968u);
+ z58\0\8 = (8.926u,0.482u);
+ z58\0\9 = (8.926u,3.854u);
+ z58\0\10c1 = (8.997u,4.492u);
+ z58\0\10c2 = (9.402u,5.409u);
+ z58\0\10 = (9.295u,5.987u);
+ z58\0\11c1 = (9.136u,6.843u);
+ z58\0\11c2 = (7.919u,6.905u);
+ z58\0\11 = (7.624u,6.197u);
+ z58\0\12c1 = (7.354u,5.547u);
+ z58\0\12c2 = (8.153u,4.729u);
+ z58\0\12 = (8.330u,4.092u);
+ z58\0\13c1 = (8.550u,3.296u);
+ z58\0\13c2 = (8.605u,2.273u);
+ z58\0\13 = (8.672u,1.445u);
+ z58\0\14c1 = (6.978u,2.657u);
+ z58\0\14c2 = (5.602u,4.286u);
+ z58\0\14 = (3.613u,5.059u);
+ z58\0\15 = (5.027u,5.399u);
+ z58\0\16c1 = (5.657u,5.625u);
+ z58\0\16c2 = (5.941u,6.255u);
+ z58\0\16 = (5.223u,6.550u);
+ z58\0\17c1 = (4.677u,6.866u);
+ z58\0\17c2 = (1.804u,6.836u);
+ z58\0\17 = (1.306u,6.550u);
+ z58\0\18c1 = (0.940u,6.252u);
+ z58\0\18c2 = (0.865u,5.924u);
+ z58\1\0s = (2.650u,-0.723u);
+ z58\1\0c1 = (3.869u,-0.795u);
+ z58\1\0c2 = (4.168u,-0.856u);
+ z58\1\0 = (4.818u,-1.927u);
+ z58\1\1c1 = (4.313u,-1.932u);
+ z58\1\1c2 = (3.624u,-1.904u);
+ z58\1\1 = (3.157u,-2.105u);
+ z58\1\2c1 = (0.815u,-3.110u);
+ z58\1\2c2 = (3.300u,-6.898u);
+ z58\1\2 = (4.854u,-4.983u);
+ z58\1\3c1 = (5.186u,-4.575u);
+ z58\1\3c2 = (5.388u,-3.653u);
+ z58\1\3 = (5.541u,-3.132u);
+ z58\1\4c1 = (6.959u,-4.272u);
+ z58\1\4c2 = (7.144u,-4.977u);
+ z58\1\4 = (7.227u,-6.745u);
+ z58\1\5 = (7.709u,-6.745u);
+ z58\1\6c1 = (7.694u,-2.126u);
+ z58\1\6c2 = (5.345u,-2.371u);
+ z58\1\6 = (5.347u,-1.449u);
+ z58\1\7c1 = (5.349u,-0.631u);
+ z58\1\7c2 = (6.729u,-0.895u);
+ z58\1\7 = (7.222u,-0.165u);
+ z58\1\8c1 = (7.410u,0.113u);
+ z58\1\8c2 = (7.415u,0.408u);
+ z58\1\8 = (7.468u,0.723u);
+ z58\1\9c1 = (6.504u,0.723u);
+ z58\1\9c2 = (3.683u,0.936u);
+ z58\1\9 = (3.035u,0.304u);
+ z58\1\10c1 = (2.729u,0.007u);
+ z58\1\10c2 = (2.717u,-0.334u);
+ z58\2\0s = (3.854u,-3.110u);
+ z58\2\0c1 = (4.118u,-3.081u);
+ z58\2\0c2 = (4.227u,-2.994u);
+ z58\2\0 = (4.492u,-3.110u);
+ z58\2\1c1 = (5.133u,-3.530u);
+ z58\2\1c2 = (4.836u,-4.705u);
+ z58\2\1 = (4.236u,-4.962u);
+ z58\2\2c1 = (3.510u,-5.274u);
+ z58\2\2c2 = (2.281u,-4.293u);
+ z58\2\2 = (3.412u,-3.280u);
+ fill_or_unfill z58\0\0s
+ --z58\0\0
+ ..controls z58\0\1c1 and z58\0\1c2..z58\0\1
+ --z58\0\2
+ ..controls z58\0\3c1 and z58\0\3c2..z58\0\3
+ ..controls z58\0\4c1 and z58\0\4c2..z58\0\4
+ ..controls z58\0\5c1 and z58\0\5c2..z58\0\5
+ --z58\0\6
+ ..controls z58\0\7c1 and z58\0\7c2..z58\0\7
+ ..controls z58\0\8c1 and z58\0\8c2..z58\0\8
+ --z58\0\9
+ ..controls z58\0\10c1 and z58\0\10c2..z58\0\10
+ ..controls z58\0\11c1 and z58\0\11c2..z58\0\11
+ ..controls z58\0\12c1 and z58\0\12c2..z58\0\12
+ ..controls z58\0\13c1 and z58\0\13c2..z58\0\13
+ ..controls z58\0\14c1 and z58\0\14c2..z58\0\14
+ --z58\0\15
+ ..controls z58\0\16c1 and z58\0\16c2..z58\0\16
+ ..controls z58\0\17c1 and z58\0\17c2..z58\0\17
+ ..controls z58\0\18c1 and z58\0\18c2..cycle;
+ fill_or_unfill z58\1\0s
+ ..controls z58\1\0c1 and z58\1\0c2..z58\1\0
+ ..controls z58\1\1c1 and z58\1\1c2..z58\1\1
+ ..controls z58\1\2c1 and z58\1\2c2..z58\1\2
+ ..controls z58\1\3c1 and z58\1\3c2..z58\1\3
+ ..controls z58\1\4c1 and z58\1\4c2..z58\1\4
+ --z58\1\5
+ ..controls z58\1\6c1 and z58\1\6c2..z58\1\6
+ ..controls z58\1\7c1 and z58\1\7c2..z58\1\7
+ ..controls z58\1\8c1 and z58\1\8c2..z58\1\8
+ ..controls z58\1\9c1 and z58\1\9c2..z58\1\9
+ ..controls z58\1\10c1 and z58\1\10c2..cycle;
+ fill_or_unfill z58\2\0s
+ ..controls z58\2\0c1 and z58\2\0c2..z58\2\0
+ ..controls z58\2\1c1 and z58\2\1c2..z58\2\1
+ ..controls z58\2\2c1 and z58\2\2c2..z58\2\2
+ --cycle;
+ proof_labels (
+ 58\0\0,
+ 58\0\1,
+ 58\0\2,
+ 58\0\3,
+ 58\0\4,
+ 58\0\5,
+ 58\0\6,
+ 58\0\7,
+ 58\0\8,
+ 58\0\9,
+ 58\0\10,
+ 58\0\11,
+ 58\0\12,
+ 58\0\13,
+ 58\0\14,
+ 58\0\15,
+ 58\0\16,
+ 58\0\17,
+ 58\0\18,
+ 58\1\0,
+ 58\1\1,
+ 58\1\2,
+ 58\1\3,
+ 58\1\4,
+ 58\1\5,
+ 58\1\6,
+ 58\1\7,
+ 58\1\8,
+ 58\1\9,
+ 58\1\10,
+ 58\2\0,
+ 58\2\1,
+ 58\2\2,
+ 58\2\3,
+);
+endchar;
+
+beginchar (169, 10.118u#, 6.745u#, 6.263u#);
+ "spa";
+ z59\0\0s = (0.964u,5.300u);
+ z59\0\0 = (1.927u,5.300u);
+ z59\0\1c1 = (1.369u,4.005u);
+ z59\0\1c2 = (0.633u,2.870u);
+ z59\0\1 = (0.482u,1.445u);
+ z59\0\2c1 = (1.049u,1.440u);
+ z59\0\2c2 = (1.611u,1.446u);
+ z59\0\2 = (2.168u,1.318u);
+ z59\0\3 = (4.577u,0.482u);
+ z59\0\4c1 = (3.931u,1.784u);
+ z59\0\4c2 = (2.815u,2.488u);
+ z59\0\4 = (1.445u,2.891u);
+ z59\0\5c1 = (1.645u,3.258u);
+ z59\0\5c2 = (1.754u,3.580u);
+ z59\0\5 = (2.201u,3.722u);
+ z59\0\6c1 = (2.645u,3.863u);
+ z59\0\6c2 = (3.202u,3.625u);
+ z59\0\6 = (3.613u,3.467u);
+ z59\0\7c1 = (5.519u,2.733u);
+ z59\0\7c2 = (7.168u,1.610u);
+ z59\0\7 = (8.672u,0.241u);
+ z59\0\8c1 = (8.283u,0.104u);
+ z59\0\8c2 = (7.870u,0.022u);
+ z59\0\8 = (7.859u,-0.495u);
+ z59\0\9c1 = (7.849u,-0.950u);
+ z59\0\9c2 = (8.466u,-1.672u);
+ z59\0\9 = (8.638u,-2.177u);
+ z59\0\10c1 = (8.960u,-3.119u);
+ z59\0\10c2 = (9.023u,-4.308u);
+ z59\0\10 = (9.154u,-5.300u);
+ z59\0\11 = (6.745u,-4.174u);
+ z59\0\12c1 = (5.532u,-3.730u);
+ z59\0\12c2 = (4.162u,-3.854u);
+ z59\0\12 = (2.891u,-3.854u);
+ z59\0\13c1 = (3.173u,-3.200u);
+ z59\0\13c2 = (3.641u,-2.031u);
+ z59\0\13 = (4.189u,-1.590u);
+ z59\0\14c1 = (5.312u,-0.683u);
+ z59\0\14c2 = (6.387u,-1.895u);
+ z59\0\14 = (6.745u,0.241u);
+ z59\0\15c1 = (5.941u,0.241u);
+ z59\0\15c2 = (3.049u,0.545u);
+ z59\0\15 = (2.869u,-0.484u);
+ z59\0\16c1 = (2.797u,-0.897u);
+ z59\0\16c2 = (3.106u,-1.018u);
+ z59\0\16 = (3.372u,-1.204u);
+ z59\0\17 = (2.357u,-3.854u);
+ z59\0\18 = (2.168u,-5.300u);
+ z59\0\19 = (4.197u,-5.078u);
+ z59\0\20c1 = (4.771u,-5.001u);
+ z59\0\20c2 = (5.451u,-5.033u);
+ z59\0\20 = (6.022u,-5.078u);
+ z59\0\21c1 = (7.184u,-5.244u);
+ z59\0\21c2 = (8.256u,-5.777u);
+ z59\0\21 = (9.400u,-6.022u);
+ z59\0\22 = (9.400u,-2.168u);
+ z59\0\23 = (9.568u,-0.503u);
+ z59\0\24c1 = (9.561u,0.033u);
+ z59\0\24c2 = (9.310u,0.470u);
+ z59\0\24 = (9.196u,0.985u);
+ z59\0\25c1 = (9.094u,1.671u);
+ z59\0\25c2 = (9.153u,2.435u);
+ z59\0\25 = (9.196u,3.132u);
+ z59\0\26 = (9.196u,4.577u);
+ z59\0\27 = (9.636u,6.745u);
+ z59\0\28c1 = (9.130u,6.743u);
+ z59\0\28c2 = (8.044u,6.835u);
+ z59\0\28 = (7.681u,6.360u);
+ z59\0\29c1 = (7.601u,6.169u);
+ z59\0\29c2 = (7.602u,5.986u);
+ z59\0\29 = (7.681u,5.768u);
+ z59\0\30 = (8.160u,4.336u);
+ z59\0\31c1 = (8.456u,3.360u);
+ z59\0\31c2 = (8.590u,2.219u);
+ z59\0\31 = (8.672u,1.204u);
+ z59\0\32c1 = (7.034u,2.576u);
+ z59\0\32c2 = (5.523u,4.053u);
+ z59\0\32 = (3.613u,5.059u);
+ z59\0\33 = (5.004u,5.367u);
+ z59\0\34c1 = (5.621u,5.575u);
+ z59\0\34c2 = (5.897u,6.261u);
+ z59\0\34 = (5.220u,6.550u);
+ z59\0\35c1 = (4.720u,6.853u);
+ z59\0\35c2 = (1.781u,6.841u);
+ z59\0\35 = (1.349u,6.550u);
+ z59\0\36c1 = (0.977u,6.205u);
+ z59\0\36c2 = (0.999u,5.723u);
+ fill_or_unfill z59\0\0s
+ --z59\0\0
+ ..controls z59\0\1c1 and z59\0\1c2..z59\0\1
+ ..controls z59\0\2c1 and z59\0\2c2..z59\0\2
+ --z59\0\3
+ ..controls z59\0\4c1 and z59\0\4c2..z59\0\4
+ ..controls z59\0\5c1 and z59\0\5c2..z59\0\5
+ ..controls z59\0\6c1 and z59\0\6c2..z59\0\6
+ ..controls z59\0\7c1 and z59\0\7c2..z59\0\7
+ ..controls z59\0\8c1 and z59\0\8c2..z59\0\8
+ ..controls z59\0\9c1 and z59\0\9c2..z59\0\9
+ ..controls z59\0\10c1 and z59\0\10c2..z59\0\10
+ --z59\0\11
+ ..controls z59\0\12c1 and z59\0\12c2..z59\0\12
+ ..controls z59\0\13c1 and z59\0\13c2..z59\0\13
+ ..controls z59\0\14c1 and z59\0\14c2..z59\0\14
+ ..controls z59\0\15c1 and z59\0\15c2..z59\0\15
+ ..controls z59\0\16c1 and z59\0\16c2..z59\0\16
+ --z59\0\17
+ --z59\0\18
+ --z59\0\19
+ ..controls z59\0\20c1 and z59\0\20c2..z59\0\20
+ ..controls z59\0\21c1 and z59\0\21c2..z59\0\21
+ --z59\0\22
+ --z59\0\23
+ ..controls z59\0\24c1 and z59\0\24c2..z59\0\24
+ ..controls z59\0\25c1 and z59\0\25c2..z59\0\25
+ --z59\0\26
+ --z59\0\27
+ ..controls z59\0\28c1 and z59\0\28c2..z59\0\28
+ ..controls z59\0\29c1 and z59\0\29c2..z59\0\29
+ --z59\0\30
+ ..controls z59\0\31c1 and z59\0\31c2..z59\0\31
+ ..controls z59\0\32c1 and z59\0\32c2..z59\0\32
+ --z59\0\33
+ ..controls z59\0\34c1 and z59\0\34c2..z59\0\34
+ ..controls z59\0\35c1 and z59\0\35c2..z59\0\35
+ ..controls z59\0\36c1 and z59\0\36c2..cycle;
+ proof_labels (
+ 59\0\0,
+ 59\0\1,
+ 59\0\2,
+ 59\0\3,
+ 59\0\4,
+ 59\0\5,
+ 59\0\6,
+ 59\0\7,
+ 59\0\8,
+ 59\0\9,
+ 59\0\10,
+ 59\0\11,
+ 59\0\12,
+ 59\0\13,
+ 59\0\14,
+ 59\0\15,
+ 59\0\16,
+ 59\0\17,
+ 59\0\18,
+ 59\0\19,
+ 59\0\20,
+ 59\0\21,
+ 59\0\22,
+ 59\0\23,
+ 59\0\24,
+ 59\0\25,
+ 59\0\26,
+ 59\0\27,
+ 59\0\28,
+ 59\0\29,
+ 59\0\30,
+ 59\0\31,
+ 59\0\32,
+ 59\0\33,
+ 59\0\34,
+ 59\0\35,
+ 59\0\36,
+);
+endchar;
+
+beginchar (170, 10.118u#, 6.745u#, 6.504u#);
+ "sba";
+ z60\0\0s = (0.964u,5.300u);
+ z60\0\0 = (2.168u,5.300u);
+ z60\0\1c1 = (1.543u,4.001u);
+ z60\0\1c2 = (0.752u,2.886u);
+ z60\0\1 = (0.482u,1.445u);
+ z60\0\2c1 = (1.126u,1.443u);
+ z60\0\2c2 = (1.776u,1.463u);
+ z60\0\2 = (2.409u,1.318u);
+ z60\0\3 = (4.818u,0.482u);
+ z60\0\4c1 = (4.047u,1.916u);
+ z60\0\4c2 = (3.260u,2.667u);
+ z60\0\4 = (1.686u,3.132u);
+ z60\0\5c1 = (1.936u,3.434u);
+ z60\0\5c2 = (2.099u,3.726u);
+ z60\0\5 = (2.522u,3.804u);
+ z60\0\6c1 = (3.423u,3.970u);
+ z60\0\6c2 = (5.745u,2.537u);
+ z60\0\6 = (6.504u,2.020u);
+ z60\0\7c1 = (7.131u,1.593u);
+ z60\0\7c2 = (7.748u,1.039u);
+ z60\0\7 = (8.431u,0.714u);
+ z60\0\8 = (9.176u,0.482u);
+ z60\0\9c1 = (9.154u,1.583u);
+ z60\0\9c2 = (9.068u,2.763u);
+ z60\0\9 = (9.176u,3.854u);
+ z60\0\10 = (9.597u,5.541u);
+ z60\0\11 = (9.597u,6.745u);
+ z60\0\12c1 = (8.867u,6.742u);
+ z60\0\12c2 = (7.235u,6.897u);
+ z60\0\12 = (7.702u,5.605u);
+ z60\0\13 = (8.418u,4.092u);
+ z60\0\14c1 = (8.680u,3.143u);
+ z60\0\14c2 = (8.672u,2.178u);
+ z60\0\14 = (8.672u,1.204u);
+ z60\0\15 = (6.504u,3.295u);
+ z60\0\16 = (4.095u,5.300u);
+ z60\0\17c1 = (5.301u,5.398u);
+ z60\0\17c2 = (5.576u,5.516u);
+ z60\0\17 = (5.782u,6.745u);
+ z60\0\18c1 = (4.844u,6.745u);
+ z60\0\18c2 = (1.968u,6.977u);
+ z60\0\18 = (1.348u,6.360u);
+ z60\0\19c1 = (1.043u,6.056u);
+ z60\0\19c2 = (1.030u,5.694u);
+ z60\1\0s = (2.650u,-1.445u);
+ z60\1\0 = (3.613u,-1.445u);
+ z60\1\1c1 = (2.887u,-3.075u);
+ z60\1\1c2 = (2.261u,-3.654u);
+ z60\1\1 = (2.168u,-5.541u);
+ z60\1\2 = (5.059u,-5.078u);
+ z60\1\3c1 = (6.657u,-5.072u);
+ z60\1\3c2 = (7.903u,-5.912u);
+ z60\1\3 = (9.406u,-6.263u);
+ z60\1\4 = (9.406u,-3.372u);
+ z60\1\5 = (9.625u,-1.686u);
+ z60\1\6 = (9.625u,0.241u);
+ z60\1\7c1 = (8.569u,0.241u);
+ z60\1\7c2 = (3.840u,0.416u);
+ z60\1\7 = (3.207u,-0.005u);
+ z60\1\8c1 = (2.687u,-0.352u);
+ z60\1\8c2 = (2.695u,-0.891u);
+ z60\2\0s = (8.672u,-1.204u);
+ z60\2\0 = (8.903u,-2.891u);
+ z60\2\1 = (8.903u,-5.300u);
+ z60\2\2c1 = (6.574u,-3.889u);
+ z60\2\2c2 = (5.793u,-3.854u);
+ z60\2\2 = (3.132u,-3.854u);
+ z60\2\3c1 = (4.156u,-0.643u);
+ z60\2\3c2 = (5.930u,-1.204u);
+ fill_or_unfill z60\0\0s
+ --z60\0\0
+ ..controls z60\0\1c1 and z60\0\1c2..z60\0\1
+ ..controls z60\0\2c1 and z60\0\2c2..z60\0\2
+ --z60\0\3
+ ..controls z60\0\4c1 and z60\0\4c2..z60\0\4
+ ..controls z60\0\5c1 and z60\0\5c2..z60\0\5
+ ..controls z60\0\6c1 and z60\0\6c2..z60\0\6
+ ..controls z60\0\7c1 and z60\0\7c2..z60\0\7
+ --z60\0\8
+ ..controls z60\0\9c1 and z60\0\9c2..z60\0\9
+ --z60\0\10
+ --z60\0\11
+ ..controls z60\0\12c1 and z60\0\12c2..z60\0\12
+ --z60\0\13
+ ..controls z60\0\14c1 and z60\0\14c2..z60\0\14
+ --z60\0\15
+ --z60\0\16
+ ..controls z60\0\17c1 and z60\0\17c2..z60\0\17
+ ..controls z60\0\18c1 and z60\0\18c2..z60\0\18
+ ..controls z60\0\19c1 and z60\0\19c2..cycle;
+ fill_or_unfill z60\1\0s
+ --z60\1\0
+ ..controls z60\1\1c1 and z60\1\1c2..z60\1\1
+ --z60\1\2
+ ..controls z60\1\3c1 and z60\1\3c2..z60\1\3
+ --z60\1\4
+ --z60\1\5
+ --z60\1\6
+ ..controls z60\1\7c1 and z60\1\7c2..z60\1\7
+ ..controls z60\1\8c1 and z60\1\8c2..cycle;
+ fill_or_unfill z60\2\0s
+ --z60\2\0
+ --z60\2\1
+ ..controls z60\2\2c1 and z60\2\2c2..z60\2\2
+ ..controls z60\2\3c1 and z60\2\3c2..cycle;
+ proof_labels (
+ 60\0\0,
+ 60\0\1,
+ 60\0\2,
+ 60\0\3,
+ 60\0\4,
+ 60\0\5,
+ 60\0\6,
+ 60\0\7,
+ 60\0\8,
+ 60\0\9,
+ 60\0\10,
+ 60\0\11,
+ 60\0\12,
+ 60\0\13,
+ 60\0\14,
+ 60\0\15,
+ 60\0\16,
+ 60\0\17,
+ 60\0\18,
+ 60\0\19,
+ 60\1\0,
+ 60\1\1,
+ 60\1\2,
+ 60\1\3,
+ 60\1\4,
+ 60\1\5,
+ 60\1\6,
+ 60\1\7,
+ 60\1\8,
+ 60\2\0,
+ 60\2\1,
+ 60\2\2,
+ 60\2\3,
+);
+endchar;
+
+beginchar (171, 10.359u#, 6.745u#, 8.190u#);
+ "sma";
+ z61\0\0s = (0.964u,5.300u);
+ z61\0\0 = (2.168u,5.300u);
+ z61\0\1c1 = (1.543u,4.001u);
+ z61\0\1c2 = (0.752u,2.886u);
+ z61\0\1 = (0.482u,1.445u);
+ z61\0\2c1 = (1.127u,1.443u);
+ z61\0\2c2 = (1.775u,1.461u);
+ z61\0\2 = (2.409u,1.319u);
+ z61\0\3 = (4.336u,0.723u);
+ z61\0\4 = (3.372u,0.509u);
+ z61\0\5c1 = (2.686u,0.434u);
+ z61\0\5c2 = (1.937u,0.587u);
+ z61\0\5 = (1.487u,-0.076u);
+ z61\0\6c1 = (1.300u,-0.350u);
+ z61\0\6c2 = (1.273u,-0.652u);
+ z61\0\6 = (1.204u,-0.964u);
+ z61\0\7c1 = (2.342u,-1.148u);
+ z61\0\7c2 = (2.624u,-1.373u);
+ z61\0\7 = (3.132u,-2.409u);
+ z61\0\8c1 = (2.727u,-2.433u);
+ z61\0\8c2 = (2.321u,-2.431u);
+ z61\0\8 = (1.937u,-2.587u);
+ z61\0\9c1 = (-0.426u,-3.544u);
+ z61\0\9c2 = (0.504u,-7.080u);
+ z61\0\9 = (3.127u,-6.709u);
+ z61\0\10c1 = (3.645u,-6.636u);
+ z61\0\10c2 = (3.997u,-6.462u);
+ z61\0\10 = (4.252u,-5.987u);
+ z61\0\11c1 = (4.523u,-5.485u);
+ z61\0\11c2 = (4.501u,-4.666u);
+ z61\0\11 = (4.577u,-4.095u);
+ z61\0\12c1 = (5.970u,-4.624u);
+ z61\0\12c2 = (7.924u,-5.617u);
+ z61\0\12 = (8.631u,-6.987u);
+ z61\0\13c1 = (8.795u,-7.306u);
+ z61\0\13c2 = (8.840u,-7.607u);
+ z61\0\13 = (8.913u,-7.950u);
+ z61\0\14 = (9.636u,-7.950u);
+ z61\0\15 = (9.426u,-6.263u);
+ z61\0\16c1 = (9.347u,-5.336u);
+ z61\0\16c2 = (9.351u,-4.302u);
+ z61\0\16 = (9.426u,-3.372u);
+ z61\0\17 = (9.823u,-0.726u);
+ z61\0\18c1 = (9.840u,0.122u);
+ z61\0\18c2 = (9.504u,0.299u);
+ z61\0\18 = (9.224u,1.004u);
+ z61\0\19c1 = (9.164u,1.392u);
+ z61\0\19c2 = (9.162u,1.767u);
+ z61\0\19 = (9.224u,2.168u);
+ z61\0\20c1 = (9.144u,2.803u);
+ z61\0\20c2 = (9.130u,3.467u);
+ z61\0\20 = (9.224u,4.095u);
+ z61\0\21 = (9.597u,5.541u);
+ z61\0\22 = (9.597u,6.745u);
+ z61\0\23c1 = (8.867u,6.742u);
+ z61\0\23c2 = (7.235u,6.897u);
+ z61\0\23 = (7.702u,5.605u);
+ z61\0\24 = (8.418u,4.092u);
+ z61\0\25c1 = (8.680u,3.143u);
+ z61\0\25c2 = (8.672u,2.178u);
+ z61\0\25 = (8.672u,1.204u);
+ z61\0\26 = (6.504u,3.295u);
+ z61\0\27 = (4.095u,5.300u);
+ z61\0\28c1 = (5.301u,5.398u);
+ z61\0\28c2 = (5.576u,5.516u);
+ z61\0\28 = (5.782u,6.745u);
+ z61\0\29c1 = (4.844u,6.745u);
+ z61\0\29c2 = (1.968u,6.977u);
+ z61\0\29 = (1.348u,6.360u);
+ z61\0\30c1 = (1.043u,6.056u);
+ z61\0\30c2 = (1.030u,5.694u);
+ z61\1\0s = (8.431u,0.482u);
+ z61\1\0c1 = (8.110u,0.294u);
+ z61\1\0c2 = (7.779u,0.191u);
+ z61\1\0 = (7.746u,-0.252u);
+ z61\1\1c1 = (7.716u,-0.639u);
+ z61\1\1c2 = (8.276u,-1.454u);
+ z61\1\1 = (8.399u,-1.936u);
+ z61\1\2c1 = (8.678u,-3.039u);
+ z61\1\2c2 = (8.672u,-4.172u);
+ z61\1\2 = (8.672u,-5.300u);
+ z61\1\3c1 = (8.253u,-5.053u);
+ z61\1\3c2 = (7.875u,-4.824u);
+ z61\1\3 = (7.508u,-4.498u);
+ z61\1\4 = (6.242u,-3.299u);
+ z61\1\5c1 = (5.733u,-2.933u);
+ z61\1\5c2 = (5.146u,-2.767u);
+ z61\1\5 = (4.589u,-2.501u);
+ z61\1\6c1 = (4.229u,-2.329u);
+ z61\1\6c2 = (3.605u,-2.038u);
+ z61\1\6 = (3.784u,-1.523u);
+ z61\1\7c1 = (4.074u,-0.687u);
+ z61\1\7c2 = (5.562u,-1.333u);
+ z61\1\7 = (6.263u,-0.206u);
+ z61\1\8c1 = (6.404u,0.022u);
+ z61\1\8c2 = (6.430u,0.237u);
+ z61\1\8 = (6.504u,0.482u);
+ z61\1\9c1 = (6.071u,0.487u);
+ z61\1\9c2 = (5.503u,0.462u);
+ z61\1\9 = (5.099u,0.626u);
+ z61\1\10c1 = (4.509u,0.866u);
+ z61\1\10c2 = (4.065u,1.478u);
+ z61\1\10 = (3.604u,1.903u);
+ z61\1\11c1 = (2.973u,2.486u);
+ z61\1\11c2 = (2.458u,2.780u);
+ z61\1\11 = (1.686u,3.132u);
+ z61\1\12c1 = (1.852u,3.409u);
+ z61\1\12c2 = (1.910u,3.631u);
+ z61\1\12 = (2.239u,3.777u);
+ z61\1\13c1 = (3.410u,4.297u);
+ z61\1\13c2 = (6.801u,2.096u);
+ z61\1\13 = (7.682u,1.322u);
+ z61\1\14c1 = (7.981u,1.059u);
+ z61\1\14c2 = (8.188u,0.791u);
+ z61\2\0s = (2.431u,-3.730u);
+ z61\2\0c1 = (2.675u,-3.724u);
+ z61\2\0c2 = (2.828u,-3.649u);
+ z61\2\0 = (3.097u,-3.730u);
+ z61\2\1c1 = (4.278u,-3.921u);
+ z61\2\1c2 = (4.239u,-5.654u);
+ z61\2\1 = (3.097u,-6.032u);
+ z61\2\2c1 = (1.969u,-6.411u);
+ z61\2\2c2 = (1.109u,-5.114u);
+ z61\2\2 = (1.865u,-4.171u);
+ z61\2\3c1 = (2.045u,-3.947u);
+ z61\2\3c2 = (2.205u,-3.905u);
+ z61\3\0s = (8.913u,-5.300u);
+ z61\3\0 = (8.913u,-5.541u);
+ z61\3\1 = (8.672u,-5.300u);
+ fill_or_unfill z61\0\0s
+ --z61\0\0
+ ..controls z61\0\1c1 and z61\0\1c2..z61\0\1
+ ..controls z61\0\2c1 and z61\0\2c2..z61\0\2
+ --z61\0\3
+ --z61\0\4
+ ..controls z61\0\5c1 and z61\0\5c2..z61\0\5
+ ..controls z61\0\6c1 and z61\0\6c2..z61\0\6
+ ..controls z61\0\7c1 and z61\0\7c2..z61\0\7
+ ..controls z61\0\8c1 and z61\0\8c2..z61\0\8
+ ..controls z61\0\9c1 and z61\0\9c2..z61\0\9
+ ..controls z61\0\10c1 and z61\0\10c2..z61\0\10
+ ..controls z61\0\11c1 and z61\0\11c2..z61\0\11
+ ..controls z61\0\12c1 and z61\0\12c2..z61\0\12
+ ..controls z61\0\13c1 and z61\0\13c2..z61\0\13
+ --z61\0\14
+ --z61\0\15
+ ..controls z61\0\16c1 and z61\0\16c2..z61\0\16
+ --z61\0\17
+ ..controls z61\0\18c1 and z61\0\18c2..z61\0\18
+ ..controls z61\0\19c1 and z61\0\19c2..z61\0\19
+ ..controls z61\0\20c1 and z61\0\20c2..z61\0\20
+ --z61\0\21
+ --z61\0\22
+ ..controls z61\0\23c1 and z61\0\23c2..z61\0\23
+ --z61\0\24
+ ..controls z61\0\25c1 and z61\0\25c2..z61\0\25
+ --z61\0\26
+ --z61\0\27
+ ..controls z61\0\28c1 and z61\0\28c2..z61\0\28
+ ..controls z61\0\29c1 and z61\0\29c2..z61\0\29
+ ..controls z61\0\30c1 and z61\0\30c2..cycle;
+ fill_or_unfill z61\1\0s
+ ..controls z61\1\0c1 and z61\1\0c2..z61\1\0
+ ..controls z61\1\1c1 and z61\1\1c2..z61\1\1
+ ..controls z61\1\2c1 and z61\1\2c2..z61\1\2
+ ..controls z61\1\3c1 and z61\1\3c2..z61\1\3
+ --z61\1\4
+ ..controls z61\1\5c1 and z61\1\5c2..z61\1\5
+ ..controls z61\1\6c1 and z61\1\6c2..z61\1\6
+ ..controls z61\1\7c1 and z61\1\7c2..z61\1\7
+ ..controls z61\1\8c1 and z61\1\8c2..z61\1\8
+ ..controls z61\1\9c1 and z61\1\9c2..z61\1\9
+ ..controls z61\1\10c1 and z61\1\10c2..z61\1\10
+ ..controls z61\1\11c1 and z61\1\11c2..z61\1\11
+ ..controls z61\1\12c1 and z61\1\12c2..z61\1\12
+ ..controls z61\1\13c1 and z61\1\13c2..z61\1\13
+ ..controls z61\1\14c1 and z61\1\14c2..cycle;
+ fill_or_unfill z61\2\0s
+ ..controls z61\2\0c1 and z61\2\0c2..z61\2\0
+ ..controls z61\2\1c1 and z61\2\1c2..z61\2\1
+ ..controls z61\2\2c1 and z61\2\2c2..z61\2\2
+ ..controls z61\2\3c1 and z61\2\3c2..cycle;
+ fill_or_unfill z61\3\0s
+ --z61\3\0
+ --z61\3\1
+ --cycle;
+ proof_labels (
+ 61\0\0,
+ 61\0\1,
+ 61\0\2,
+ 61\0\3,
+ 61\0\4,
+ 61\0\5,
+ 61\0\6,
+ 61\0\7,
+ 61\0\8,
+ 61\0\9,
+ 61\0\10,
+ 61\0\11,
+ 61\0\12,
+ 61\0\13,
+ 61\0\14,
+ 61\0\15,
+ 61\0\16,
+ 61\0\17,
+ 61\0\18,
+ 61\0\19,
+ 61\0\20,
+ 61\0\21,
+ 61\0\22,
+ 61\0\23,
+ 61\0\24,
+ 61\0\25,
+ 61\0\26,
+ 61\0\27,
+ 61\0\28,
+ 61\0\29,
+ 61\0\30,
+ 61\1\0,
+ 61\1\1,
+ 61\1\2,
+ 61\1\3,
+ 61\1\4,
+ 61\1\5,
+ 61\1\6,
+ 61\1\7,
+ 61\1\8,
+ 61\1\9,
+ 61\1\10,
+ 61\1\11,
+ 61\1\12,
+ 61\1\13,
+ 61\1\14,
+ 61\2\0,
+ 61\2\1,
+ 61\2\2,
+ 61\2\3,
+ 61\3\0,
+ 61\3\1,
+ 61\3\2,
+);
+endchar;
+
+beginchar (172, 12.768u#, 6.745u#, 6.504u#);
+ "stsa";
+ z62\0\0s = (0.964u,5.300u);
+ z62\0\0 = (2.409u,5.300u);
+ z62\0\1c1 = (1.391u,4.092u);
+ z62\0\1c2 = (0.596u,3.064u);
+ z62\0\1 = (0.482u,1.488u);
+ z62\0\2 = (2.409u,1.488u);
+ z62\0\3c1 = (3.239u,1.440u);
+ z62\0\3c2 = (4.021u,0.967u);
+ z62\0\3 = (4.818u,0.723u);
+ z62\0\4c1 = (4.322u,2.406u);
+ z62\0\4c2 = (3.223u,2.835u);
+ z62\0\4 = (1.686u,3.372u);
+ z62\0\5c1 = (2.021u,3.542u);
+ z62\0\5c2 = (2.260u,3.703u);
+ z62\0\5 = (2.650u,3.739u);
+ z62\0\6c1 = (3.271u,3.798u);
+ z62\0\6c2 = (4.015u,3.439u);
+ z62\0\6 = (4.577u,3.199u);
+ z62\0\7c1 = (6.109u,2.545u);
+ z62\0\7c2 = (7.382u,1.783u);
+ z62\0\7 = (8.672u,0.723u);
+ z62\0\8c1 = (7.755u,0.723u);
+ z62\0\8c2 = (5.598u,0.918u);
+ z62\0\8 = (4.919u,0.338u);
+ z62\0\9c1 = (4.572u,0.040u);
+ z62\0\9c2 = (4.480u,-0.315u);
+ z62\0\9 = (4.336u,-0.723u);
+ z62\0\10c1 = (5.645u,-0.723u);
+ z62\0\10c2 = (6.909u,-0.652u);
+ z62\0\10 = (8.190u,-0.964u);
+ z62\0\11c1 = (7.289u,-2.140u);
+ z62\0\11c2 = (6.436u,-3.066u);
+ z62\0\11 = (4.818u,-2.797u);
+ z62\0\12 = (3.372u,-2.409u);
+ z62\0\13 = (4.323u,-3.876u);
+ z62\0\14c1 = (4.746u,-4.579u);
+ z62\0\14c2 = (4.881u,-5.288u);
+ z62\0\14 = (5.592u,-5.808u);
+ z62\0\15c1 = (6.402u,-6.401u);
+ z62\0\15c2 = (8.988u,-6.459u);
+ z62\0\15 = (9.863u,-5.980u);
+ z62\0\16c1 = (10.334u,-5.723u);
+ z62\0\16c2 = (10.647u,-5.344u);
+ z62\0\16 = (10.760u,-4.814u);
+ z62\0\17c1 = (11.006u,-3.663u);
+ z62\0\17c2 = (10.090u,-2.956u);
+ z62\0\17 = (9.447u,-2.168u);
+ z62\0\18c1 = (9.129u,-1.778u);
+ z62\0\18c2 = (8.909u,-1.404u);
+ z62\0\18 = (8.672u,-0.964u);
+ z62\0\19c1 = (10.180u,-0.596u);
+ z62\0\19c2 = (11.691u,-0.888u);
+ z62\0\19 = (10.600u,1.204u);
+ z62\0\20c1 = (12.362u,1.743u);
+ z62\0\20c2 = (12.280u,1.805u);
+ z62\0\20 = (12.286u,3.613u);
+ z62\0\21c1 = (11.521u,3.306u);
+ z62\0\21c2 = (10.204u,2.816u);
+ z62\0\21 = (10.083u,1.902u);
+ z62\0\22c1 = (9.997u,1.596u);
+ z62\0\22c2 = (10.083u,1.044u);
+ z62\0\22 = (10.083u,0.723u);
+ z62\0\23 = (9.448u,0.723u);
+ z62\0\24c1 = (9.395u,1.681u);
+ z62\0\24c2 = (9.342u,2.666u);
+ z62\0\24 = (9.448u,3.613u);
+ z62\0\25c1 = (9.605u,4.231u);
+ z62\0\25c2 = (10.096u,5.471u);
+ z62\0\25 = (10.012u,5.987u);
+ z62\0\26c1 = (9.948u,6.376u);
+ z62\0\26c2 = (9.735u,6.571u);
+ z62\0\26 = (9.361u,6.632u);
+ z62\0\27c1 = (9.119u,6.726u);
+ z62\0\27c2 = (8.735u,6.709u);
+ z62\0\27 = (8.534u,6.632u);
+ z62\0\28c1 = (7.638u,6.181u);
+ z62\0\28c2 = (8.409u,4.774u);
+ z62\0\28 = (8.534u,4.095u);
+ z62\0\29c1 = (8.737u,3.309u);
+ z62\0\29c2 = (8.848u,2.488u);
+ z62\0\29 = (8.913u,1.686u);
+ z62\0\30c1 = (7.618u,2.981u);
+ z62\0\30c2 = (6.358u,4.468u);
+ z62\0\30 = (4.577u,5.059u);
+ z62\0\31c1 = (5.530u,5.496u);
+ z62\0\31c2 = (5.862u,5.479u);
+ z62\0\31 = (6.263u,6.504u);
+ z62\0\32c1 = (5.241u,6.795u);
+ z62\0\32c2 = (2.368u,7.021u);
+ z62\0\32 = (1.521u,6.326u);
+ z62\0\33c1 = (1.159u,6.031u);
+ z62\0\33c2 = (1.094u,5.717u);
+ z62\1\0s = (9.877u,-5.541u);
+ z62\1\0c1 = (7.650u,-6.082u);
+ z62\1\0c2 = (6.206u,-5.697u);
+ z62\1\0 = (6.022u,-3.132u);
+ z62\1\1c1 = (6.450u,-3.060u);
+ z62\1\1c2 = (7.275u,-2.833u);
+ z62\1\1 = (7.668u,-2.917u);
+ z62\1\2c1 = (8.648u,-3.128u);
+ z62\1\2c2 = (9.578u,-4.664u);
+ fill_or_unfill z62\0\0s
+ --z62\0\0
+ ..controls z62\0\1c1 and z62\0\1c2..z62\0\1
+ --z62\0\2
+ ..controls z62\0\3c1 and z62\0\3c2..z62\0\3
+ ..controls z62\0\4c1 and z62\0\4c2..z62\0\4
+ ..controls z62\0\5c1 and z62\0\5c2..z62\0\5
+ ..controls z62\0\6c1 and z62\0\6c2..z62\0\6
+ ..controls z62\0\7c1 and z62\0\7c2..z62\0\7
+ ..controls z62\0\8c1 and z62\0\8c2..z62\0\8
+ ..controls z62\0\9c1 and z62\0\9c2..z62\0\9
+ ..controls z62\0\10c1 and z62\0\10c2..z62\0\10
+ ..controls z62\0\11c1 and z62\0\11c2..z62\0\11
+ --z62\0\12
+ --z62\0\13
+ ..controls z62\0\14c1 and z62\0\14c2..z62\0\14
+ ..controls z62\0\15c1 and z62\0\15c2..z62\0\15
+ ..controls z62\0\16c1 and z62\0\16c2..z62\0\16
+ ..controls z62\0\17c1 and z62\0\17c2..z62\0\17
+ ..controls z62\0\18c1 and z62\0\18c2..z62\0\18
+ ..controls z62\0\19c1 and z62\0\19c2..z62\0\19
+ ..controls z62\0\20c1 and z62\0\20c2..z62\0\20
+ ..controls z62\0\21c1 and z62\0\21c2..z62\0\21
+ ..controls z62\0\22c1 and z62\0\22c2..z62\0\22
+ --z62\0\23
+ ..controls z62\0\24c1 and z62\0\24c2..z62\0\24
+ ..controls z62\0\25c1 and z62\0\25c2..z62\0\25
+ ..controls z62\0\26c1 and z62\0\26c2..z62\0\26
+ ..controls z62\0\27c1 and z62\0\27c2..z62\0\27
+ ..controls z62\0\28c1 and z62\0\28c2..z62\0\28
+ ..controls z62\0\29c1 and z62\0\29c2..z62\0\29
+ ..controls z62\0\30c1 and z62\0\30c2..z62\0\30
+ ..controls z62\0\31c1 and z62\0\31c2..z62\0\31
+ ..controls z62\0\32c1 and z62\0\32c2..z62\0\32
+ ..controls z62\0\33c1 and z62\0\33c2..cycle;
+ fill_or_unfill z62\1\0s
+ ..controls z62\1\0c1 and z62\1\0c2..z62\1\0
+ ..controls z62\1\1c1 and z62\1\1c2..z62\1\1
+ ..controls z62\1\2c1 and z62\1\2c2..cycle;
+ proof_labels (
+ 62\0\0,
+ 62\0\1,
+ 62\0\2,
+ 62\0\3,
+ 62\0\4,
+ 62\0\5,
+ 62\0\6,
+ 62\0\7,
+ 62\0\8,
+ 62\0\9,
+ 62\0\10,
+ 62\0\11,
+ 62\0\12,
+ 62\0\13,
+ 62\0\14,
+ 62\0\15,
+ 62\0\16,
+ 62\0\17,
+ 62\0\18,
+ 62\0\19,
+ 62\0\20,
+ 62\0\21,
+ 62\0\22,
+ 62\0\23,
+ 62\0\24,
+ 62\0\25,
+ 62\0\26,
+ 62\0\27,
+ 62\0\28,
+ 62\0\29,
+ 62\0\30,
+ 62\0\31,
+ 62\0\32,
+ 62\0\33,
+ 62\1\0,
+ 62\1\1,
+ 62\1\2,
+);
+endchar;
+
+beginchar (173, 10.600u#, 6.745u#, 6.263u#);
+ "kwa";
+ z63\0\0s = (1.445u,5.059u);
+ z63\0\0c1 = (1.105u,3.885u);
+ z63\0\0c2 = (0.636u,2.650u);
+ z63\0\0 = (0.482u,1.445u);
+ z63\0\1c1 = (0.686u,1.573u);
+ z63\0\1c2 = (0.836u,1.624u);
+ z63\0\1 = (1.007u,1.817u);
+ z63\0\2c1 = (1.757u,2.665u);
+ z63\0\2c2 = (1.748u,4.202u);
+ z63\0\2 = (2.715u,4.910u);
+ z63\0\3c1 = (3.058u,5.161u);
+ z63\0\3c2 = (3.429u,5.231u);
+ z63\0\3 = (3.820u,5.040u);
+ z63\0\4c1 = (5.074u,4.424u);
+ z63\0\4c2 = (4.818u,1.209u);
+ z63\0\4 = (4.818u,0.000u);
+ z63\0\5 = (5.300u,0.000u);
+ z63\0\6c1 = (5.376u,0.946u);
+ z63\0\6c2 = (5.741u,4.076u);
+ z63\0\6 = (6.247u,4.742u);
+ z63\0\7c1 = (6.826u,5.504u);
+ z63\0\7c2 = (8.082u,5.431u);
+ z63\0\7 = (8.495u,4.542u);
+ z63\0\8c1 = (8.819u,3.846u);
+ z63\0\8c2 = (8.875u,2.018u);
+ z63\0\8 = (8.934u,1.204u);
+ z63\0\9 = (9.113u,-0.241u);
+ z63\0\10c1 = (9.245u,-1.956u);
+ z63\0\10c2 = (8.477u,-2.126u);
+ z63\0\10 = (7.227u,-2.977u);
+ z63\0\11 = (5.782u,-4.095u);
+ z63\0\12c1 = (6.837u,-5.338u);
+ z63\0\12c2 = (8.013u,-5.932u);
+ z63\0\12 = (9.657u,-6.022u);
+ z63\0\13 = (9.657u,2.891u);
+ z63\0\14 = (9.657u,4.336u);
+ z63\0\15c1 = (9.792u,4.913u);
+ z63\0\15c2 = (10.253u,5.835u);
+ z63\0\15 = (9.867u,6.360u);
+ z63\0\16c1 = (9.518u,6.836u);
+ z63\0\16c2 = (8.480u,6.744u);
+ z63\0\16 = (7.950u,6.707u);
+ z63\0\17c1 = (6.993u,6.747u);
+ z63\0\17c2 = (1.989u,6.815u);
+ z63\0\17 = (1.459u,6.707u);
+ z63\0\18c1 = (0.876u,6.510u);
+ z63\0\18c2 = (0.414u,6.042u);
+ z63\0\18 = (0.878u,5.464u);
+ z63\0\19c1 = (1.036u,5.267u);
+ z63\0\19c2 = (1.245u,5.189u);
+ z63\1\0s = (8.913u,-2.650u);
+ z63\1\0c1 = (9.211u,-3.699u);
+ z63\1\0c2 = (9.154u,-4.701u);
+ z63\1\0 = (9.154u,-5.782u);
+ z63\1\1c1 = (8.268u,-5.380u);
+ z63\1\1c2 = (7.539u,-4.893u);
+ z63\1\1 = (6.745u,-4.336u);
+ z63\1\2 = (6.745u,-3.854u);
+ z63\1\3c1 = (7.457u,-3.391u);
+ z63\1\3c2 = (8.137u,-2.997u);
+ fill_or_unfill z63\0\0s
+ ..controls z63\0\0c1 and z63\0\0c2..z63\0\0
+ ..controls z63\0\1c1 and z63\0\1c2..z63\0\1
+ ..controls z63\0\2c1 and z63\0\2c2..z63\0\2
+ ..controls z63\0\3c1 and z63\0\3c2..z63\0\3
+ ..controls z63\0\4c1 and z63\0\4c2..z63\0\4
+ --z63\0\5
+ ..controls z63\0\6c1 and z63\0\6c2..z63\0\6
+ ..controls z63\0\7c1 and z63\0\7c2..z63\0\7
+ ..controls z63\0\8c1 and z63\0\8c2..z63\0\8
+ --z63\0\9
+ ..controls z63\0\10c1 and z63\0\10c2..z63\0\10
+ --z63\0\11
+ ..controls z63\0\12c1 and z63\0\12c2..z63\0\12
+ --z63\0\13
+ --z63\0\14
+ ..controls z63\0\15c1 and z63\0\15c2..z63\0\15
+ ..controls z63\0\16c1 and z63\0\16c2..z63\0\16
+ ..controls z63\0\17c1 and z63\0\17c2..z63\0\17
+ ..controls z63\0\18c1 and z63\0\18c2..z63\0\18
+ ..controls z63\0\19c1 and z63\0\19c2..cycle;
+ fill_or_unfill z63\1\0s
+ ..controls z63\1\0c1 and z63\1\0c2..z63\1\0
+ ..controls z63\1\1c1 and z63\1\1c2..z63\1\1
+ --z63\1\2
+ ..controls z63\1\3c1 and z63\1\3c2..cycle;
+ proof_labels (
+ 63\0\0,
+ 63\0\1,
+ 63\0\2,
+ 63\0\3,
+ 63\0\4,
+ 63\0\5,
+ 63\0\6,
+ 63\0\7,
+ 63\0\8,
+ 63\0\9,
+ 63\0\10,
+ 63\0\11,
+ 63\0\12,
+ 63\0\13,
+ 63\0\14,
+ 63\0\15,
+ 63\0\16,
+ 63\0\17,
+ 63\0\18,
+ 63\0\19,
+ 63\1\0,
+ 63\1\1,
+ 63\1\2,
+ 63\1\3,
+);
+endchar;
+
+beginchar (174, 10.600u#, 6.745u#, 6.986u#);
+ "khwa";
+ z64\0\0s = (1.445u,-6.745u);
+ z64\0\0 = (1.927u,-6.745u);
+ z64\0\1 = (1.927u,2.650u);
+ z64\0\2c1 = (1.928u,3.210u);
+ z64\0\2c2 = (1.875u,4.035u);
+ z64\0\2 = (2.173u,4.523u);
+ z64\0\3c1 = (2.610u,5.238u);
+ z64\0\3c2 = (4.094u,5.580u);
+ z64\0\3 = (4.458u,4.644u);
+ z64\0\4c1 = (4.619u,4.229u);
+ z64\0\4c2 = (3.802u,2.261u);
+ z64\0\4 = (3.651u,1.686u);
+ z64\0\5c1 = (3.502u,1.119u);
+ z64\0\5c2 = (3.421u,0.583u);
+ z64\0\5 = (3.372u,0.000u);
+ z64\0\6 = (5.059u,0.590u);
+ z64\0\7c1 = (6.294u,0.894u);
+ z64\0\7c2 = (8.202u,0.750u);
+ z64\0\7 = (9.077u,-0.275u);
+ z64\0\8c1 = (9.432u,-0.691u);
+ z64\0\8c2 = (9.613u,-1.138u);
+ z64\0\8 = (9.376u,-1.664u);
+ z64\0\9c1 = (9.056u,-2.375u);
+ z64\0\9c2 = (7.867u,-2.981u);
+ z64\0\9 = (7.238u,-3.428u);
+ z64\0\10c1 = (6.843u,-3.708u);
+ z64\0\10c2 = (6.578u,-3.976u);
+ z64\0\10 = (6.263u,-4.336u);
+ z64\0\11 = (10.118u,-6.504u);
+ z64\0\12 = (10.118u,4.577u);
+ z64\0\13c1 = (10.114u,5.060u);
+ z64\0\13c2 = (10.147u,5.774u);
+ z64\0\13 = (9.872u,6.188u);
+ z64\0\14c1 = (9.426u,6.856u);
+ z64\0\14c2 = (8.410u,6.744u);
+ z64\0\14 = (7.709u,6.745u);
+ z64\0\15 = (2.891u,6.745u);
+ z64\0\16c1 = (2.223u,6.744u);
+ z64\0\16c2 = (1.138u,6.852u);
+ z64\0\16 = (0.737u,6.188u);
+ z64\0\17c1 = (0.391u,5.613u);
+ z64\0\17c2 = (0.993u,3.643u);
+ z64\0\17 = (1.177u,2.891u);
+ z64\0\18 = (1.177u,1.204u);
+ z64\0\19 = (1.177u,-1.445u);
+ z64\0\20 = (1.445u,-4.095u);
+ z64\1\0s = (9.877u,0.482u);
+ z64\1\0 = (7.950u,1.633u);
+ z64\1\1c1 = (6.841u,2.260u);
+ z64\1\1c2 = (5.566u,2.440u);
+ z64\1\1 = (4.336u,2.168u);
+ z64\1\2c1 = (4.750u,3.907u);
+ z64\1\2c2 = (5.716u,5.395u);
+ z64\1\2 = (7.708u,5.282u);
+ z64\1\3c1 = (8.219u,5.253u);
+ z64\1\3c2 = (8.614u,5.161u);
+ z64\1\3 = (8.949u,4.742u);
+ z64\1\4c1 = (9.505u,4.046u);
+ z64\1\4c2 = (9.856u,1.416u);
+ z64\2\0s = (9.636u,-2.650u);
+ z64\2\0 = (9.636u,-5.541u);
+ z64\2\1 = (7.227u,-4.336u);
+ z64\2\2c1 = (7.953u,-3.504u);
+ z64\2\2c2 = (8.621u,-3.074u);
+ fill_or_unfill z64\0\0s
+ --z64\0\0
+ --z64\0\1
+ ..controls z64\0\2c1 and z64\0\2c2..z64\0\2
+ ..controls z64\0\3c1 and z64\0\3c2..z64\0\3
+ ..controls z64\0\4c1 and z64\0\4c2..z64\0\4
+ ..controls z64\0\5c1 and z64\0\5c2..z64\0\5
+ --z64\0\6
+ ..controls z64\0\7c1 and z64\0\7c2..z64\0\7
+ ..controls z64\0\8c1 and z64\0\8c2..z64\0\8
+ ..controls z64\0\9c1 and z64\0\9c2..z64\0\9
+ ..controls z64\0\10c1 and z64\0\10c2..z64\0\10
+ --z64\0\11
+ --z64\0\12
+ ..controls z64\0\13c1 and z64\0\13c2..z64\0\13
+ ..controls z64\0\14c1 and z64\0\14c2..z64\0\14
+ --z64\0\15
+ ..controls z64\0\16c1 and z64\0\16c2..z64\0\16
+ ..controls z64\0\17c1 and z64\0\17c2..z64\0\17
+ --z64\0\18
+ --z64\0\19
+ --z64\0\20
+ --cycle;
+ fill_or_unfill z64\1\0s
+ --z64\1\0
+ ..controls z64\1\1c1 and z64\1\1c2..z64\1\1
+ ..controls z64\1\2c1 and z64\1\2c2..z64\1\2
+ ..controls z64\1\3c1 and z64\1\3c2..z64\1\3
+ ..controls z64\1\4c1 and z64\1\4c2..cycle;
+ fill_or_unfill z64\2\0s
+ --z64\2\0
+ --z64\2\1
+ ..controls z64\2\2c1 and z64\2\2c2..cycle;
+ proof_labels (
+ 64\0\0,
+ 64\0\1,
+ 64\0\2,
+ 64\0\3,
+ 64\0\4,
+ 64\0\5,
+ 64\0\6,
+ 64\0\7,
+ 64\0\8,
+ 64\0\9,
+ 64\0\10,
+ 64\0\11,
+ 64\0\12,
+ 64\0\13,
+ 64\0\14,
+ 64\0\15,
+ 64\0\16,
+ 64\0\17,
+ 64\0\18,
+ 64\0\19,
+ 64\0\20,
+ 64\0\21,
+ 64\1\0,
+ 64\1\1,
+ 64\1\2,
+ 64\1\3,
+ 64\1\4,
+ 64\2\0,
+ 64\2\1,
+ 64\2\2,
+);
+endchar;
+
+beginchar (175, 8.913u#, 6.745u#, 6.022u#);
+ "cwa";
+ z65\0\0s = (1.927u,6.022u);
+ z65\0\0 = (1.927u,5.541u);
+ z65\0\1 = (2.650u,5.354u);
+ z65\0\2c1 = (3.166u,5.271u);
+ z65\0\2c2 = (4.072u,5.364u);
+ z65\0\2 = (4.488u,5.054u);
+ z65\0\3c1 = (5.232u,4.499u);
+ z65\0\3c2 = (4.370u,3.734u);
+ z65\0\3 = (3.850u,3.407u);
+ z65\0\4c1 = (2.802u,2.856u);
+ z65\0\4c2 = (1.589u,3.172u);
+ z65\0\4 = (0.482u,3.407u);
+ z65\0\5 = (1.350u,1.897u);
+ z65\0\6c1 = (1.758u,1.085u);
+ z65\0\6c2 = (1.800u,0.080u);
+ z65\0\6 = (2.509u,-0.566u);
+ z65\0\7c1 = (2.759u,-0.794u);
+ z65\0\7c2 = (3.057u,-0.945u);
+ z65\0\7 = (3.376u,-1.037u);
+ z65\0\8c1 = (4.055u,-1.267u);
+ z65\0\8c2 = (6.325u,-1.286u);
+ z65\0\8 = (6.982u,-1.037u);
+ z65\0\9c1 = (7.489u,-0.827u);
+ z65\0\9c2 = (7.894u,-0.472u);
+ z65\0\9 = (8.148u,0.010u);
+ z65\0\10c1 = (9.396u,2.374u);
+ z65\0\10c2 = (5.677u,3.471u);
+ z65\0\10 = (6.103u,4.742u);
+ z65\0\11c1 = (6.323u,5.396u);
+ z65\0\11c2 = (7.521u,5.190u);
+ z65\0\11 = (8.060u,5.682u);
+ z65\0\12c1 = (8.260u,5.865u);
+ z65\0\12c2 = (8.307u,6.043u);
+ z65\0\12 = (8.431u,6.263u);
+ z65\0\13c1 = (8.028u,6.431u);
+ z65\0\13c2 = (7.661u,6.586u);
+ z65\0\13 = (7.227u,6.642u);
+ z65\0\14c1 = (6.480u,6.802u);
+ z65\0\14c2 = (4.104u,6.791u);
+ z65\0\14 = (3.372u,6.642u);
+ z65\0\15c1 = (2.849u,6.493u);
+ z65\0\15c2 = (2.402u,6.264u);
+ z65\1\0s = (2.650u,2.409u);
+ z65\1\0c1 = (3.125u,2.563u);
+ z65\1\0c2 = (3.830u,2.833u);
+ z65\1\0 = (4.327u,2.772u);
+ z65\1\1c1 = (5.181u,2.668u);
+ z65\1\1c2 = (6.916u,0.921u);
+ z65\1\1 = (6.770u,0.032u);
+ z65\1\2c1 = (6.601u,-0.994u);
+ z65\1\2c2 = (5.087u,-0.926u);
+ z65\1\2 = (4.429u,-0.460u);
+ z65\1\3c1 = (4.071u,-0.206u);
+ z65\1\3c2 = (3.888u,0.121u);
+ z65\1\3 = (3.676u,0.492u);
+ z65\2\0s = (2.891u,-3.854u);
+ z65\2\0c1 = (3.946u,-5.097u);
+ z65\2\0c2 = (5.122u,-5.691u);
+ z65\2\0 = (6.745u,-5.782u);
+ z65\2\1 = (6.745u,-1.445u);
+ z65\2\2c1 = (5.308u,-1.976u);
+ z65\2\2c2 = (4.054u,-2.870u);
+ z65\3\0s = (6.263u,-2.168u);
+ z65\3\0 = (6.263u,-5.541u);
+ z65\3\1c1 = (5.377u,-5.139u);
+ z65\3\1c2 = (4.648u,-4.652u);
+ z65\3\1 = (3.854u,-4.095u);
+ z65\3\2 = (3.854u,-3.613u);
+ fill_or_unfill z65\0\0s
+ --z65\0\0
+ --z65\0\1
+ ..controls z65\0\2c1 and z65\0\2c2..z65\0\2
+ ..controls z65\0\3c1 and z65\0\3c2..z65\0\3
+ ..controls z65\0\4c1 and z65\0\4c2..z65\0\4
+ --z65\0\5
+ ..controls z65\0\6c1 and z65\0\6c2..z65\0\6
+ ..controls z65\0\7c1 and z65\0\7c2..z65\0\7
+ ..controls z65\0\8c1 and z65\0\8c2..z65\0\8
+ ..controls z65\0\9c1 and z65\0\9c2..z65\0\9
+ ..controls z65\0\10c1 and z65\0\10c2..z65\0\10
+ ..controls z65\0\11c1 and z65\0\11c2..z65\0\11
+ ..controls z65\0\12c1 and z65\0\12c2..z65\0\12
+ ..controls z65\0\13c1 and z65\0\13c2..z65\0\13
+ ..controls z65\0\14c1 and z65\0\14c2..z65\0\14
+ ..controls z65\0\15c1 and z65\0\15c2..cycle;
+ fill_or_unfill z65\1\0s
+ ..controls z65\1\0c1 and z65\1\0c2..z65\1\0
+ ..controls z65\1\1c1 and z65\1\1c2..z65\1\1
+ ..controls z65\1\2c1 and z65\1\2c2..z65\1\2
+ ..controls z65\1\3c1 and z65\1\3c2..z65\1\3
+ --cycle;
+ fill_or_unfill z65\2\0s
+ ..controls z65\2\0c1 and z65\2\0c2..z65\2\0
+ --z65\2\1
+ ..controls z65\2\2c1 and z65\2\2c2..cycle;
+ fill_or_unfill z65\3\0s
+ --z65\3\0
+ ..controls z65\3\1c1 and z65\3\1c2..z65\3\1
+ --z65\3\2
+ --cycle;
+ proof_labels (
+ 65\0\0,
+ 65\0\1,
+ 65\0\2,
+ 65\0\3,
+ 65\0\4,
+ 65\0\5,
+ 65\0\6,
+ 65\0\7,
+ 65\0\8,
+ 65\0\9,
+ 65\0\10,
+ 65\0\11,
+ 65\0\12,
+ 65\0\13,
+ 65\0\14,
+ 65\0\15,
+ 65\1\0,
+ 65\1\1,
+ 65\1\2,
+ 65\1\3,
+ 65\1\4,
+ 65\2\0,
+ 65\2\1,
+ 65\2\2,
+ 65\3\0,
+ 65\3\1,
+ 65\3\2,
+ 65\3\3,
+);
+endchar;
+
+beginchar (176, 11.081u#, 6.745u#, 11.081u#);
+ "grwa";
+ z66\0\0s = (0.964u,5.300u);
+ z66\0\0 = (1.927u,5.059u);
+ z66\0\1c1 = (1.563u,4.416u);
+ z66\0\1c2 = (-0.036u,1.577u);
+ z66\0\1 = (1.043u,1.088u);
+ z66\0\2c1 = (1.516u,0.932u);
+ z66\0\2c2 = (3.466u,1.402u);
+ z66\0\2 = (4.576u,1.088u);
+ z66\0\3c1 = (5.721u,0.683u);
+ z66\0\3c2 = (5.859u,-0.140u);
+ z66\0\3 = (6.745u,-0.723u);
+ z66\0\4c1 = (6.745u,0.540u);
+ z66\0\4c2 = (6.388u,4.461u);
+ z66\0\4 = (7.742u,5.018u);
+ z66\0\5c1 = (7.966u,5.111u);
+ z66\0\5c2 = (8.173u,5.112u);
+ z66\0\5 = (8.397u,5.018u);
+ z66\0\6c1 = (9.252u,4.662u);
+ z66\0\6c2 = (9.153u,3.401u);
+ z66\0\6 = (9.165u,2.650u);
+ z66\0\7 = (9.165u,-0.482u);
+ z66\0\8 = (9.533u,-2.891u);
+ z66\0\9 = (9.877u,-5.300u);
+ z66\0\10c1 = (9.198u,-4.782u);
+ z66\0\10c2 = (8.538u,-4.296u);
+ z66\0\10 = (7.709u,-4.046u);
+ z66\0\11c1 = (7.093u,-3.861u);
+ z66\0\11c2 = (6.421u,-3.835u);
+ z66\0\11 = (5.782u,-3.864u);
+ z66\0\12c1 = (4.022u,-3.944u);
+ z66\0\12c2 = (3.148u,-4.704u);
+ z66\0\12 = (3.613u,-6.504u);
+ z66\0\13 = (5.300u,-5.408u);
+ z66\0\14c1 = (6.983u,-4.591u);
+ z66\0\14c2 = (8.405u,-5.489u);
+ z66\0\14 = (9.877u,-6.263u);
+ z66\0\15 = (6.263u,-8.913u);
+ z66\0\16c1 = (7.318u,-10.156u);
+ z66\0\16c2 = (8.495u,-10.750u);
+ z66\0\16 = (10.141u,-10.840u);
+ z66\0\17 = (10.141u,0.723u);
+ z66\0\18 = (10.141u,2.409u);
+ z66\0\19 = (10.577u,5.059u);
+ z66\0\20c1 = (10.594u,5.384u);
+ z66\0\20c2 = (10.600u,5.891u);
+ z66\0\20 = (10.455u,6.188u);
+ z66\0\21c1 = (10.118u,6.879u);
+ z66\0\21c2 = (9.075u,6.744u);
+ z66\0\21 = (8.431u,6.745u);
+ z66\0\22c1 = (7.255u,6.747u);
+ z66\0\22c2 = (2.239u,6.940u);
+ z66\0\22 = (1.521u,6.462u);
+ z66\0\23c1 = (1.074u,6.165u);
+ z66\0\23c2 = (1.046u,5.780u);
+ z66\1\0s = (6.022u,1.204u);
+ z66\1\0c1 = (3.968u,2.384u);
+ z66\1\0c2 = (3.971u,2.868u);
+ z66\1\0 = (1.445u,2.891u);
+ z66\1\1c1 = (1.956u,4.429u);
+ z66\1\1c2 = (2.833u,5.424u);
+ z66\1\1 = (4.573u,5.271u);
+ z66\1\2c1 = (5.040u,5.229u);
+ z66\1\2c2 = (5.410u,5.141u);
+ z66\1\2 = (5.665u,4.714u);
+ z66\1\3c1 = (6.091u,4.000u);
+ z66\1\3c2 = (6.022u,2.066u);
+ z66\2\0s = (9.636u,-7.227u);
+ z66\2\0 = (9.636u,-10.600u);
+ z66\2\1c1 = (8.750u,-10.198u);
+ z66\2\1c2 = (8.021u,-9.711u);
+ z66\2\1 = (7.227u,-9.154u);
+ z66\2\2 = (7.227u,-8.672u);
+ fill_or_unfill z66\0\0s
+ --z66\0\0
+ ..controls z66\0\1c1 and z66\0\1c2..z66\0\1
+ ..controls z66\0\2c1 and z66\0\2c2..z66\0\2
+ ..controls z66\0\3c1 and z66\0\3c2..z66\0\3
+ ..controls z66\0\4c1 and z66\0\4c2..z66\0\4
+ ..controls z66\0\5c1 and z66\0\5c2..z66\0\5
+ ..controls z66\0\6c1 and z66\0\6c2..z66\0\6
+ --z66\0\7
+ --z66\0\8
+ --z66\0\9
+ ..controls z66\0\10c1 and z66\0\10c2..z66\0\10
+ ..controls z66\0\11c1 and z66\0\11c2..z66\0\11
+ ..controls z66\0\12c1 and z66\0\12c2..z66\0\12
+ --z66\0\13
+ ..controls z66\0\14c1 and z66\0\14c2..z66\0\14
+ --z66\0\15
+ ..controls z66\0\16c1 and z66\0\16c2..z66\0\16
+ --z66\0\17
+ --z66\0\18
+ --z66\0\19
+ ..controls z66\0\20c1 and z66\0\20c2..z66\0\20
+ ..controls z66\0\21c1 and z66\0\21c2..z66\0\21
+ ..controls z66\0\22c1 and z66\0\22c2..z66\0\22
+ ..controls z66\0\23c1 and z66\0\23c2..cycle;
+ fill_or_unfill z66\1\0s
+ ..controls z66\1\0c1 and z66\1\0c2..z66\1\0
+ ..controls z66\1\1c1 and z66\1\1c2..z66\1\1
+ ..controls z66\1\2c1 and z66\1\2c2..z66\1\2
+ ..controls z66\1\3c1 and z66\1\3c2..cycle;
+ fill_or_unfill z66\2\0s
+ --z66\2\0
+ ..controls z66\2\1c1 and z66\2\1c2..z66\2\1
+ --z66\2\2
+ --cycle;
+ proof_labels (
+ 66\0\0,
+ 66\0\1,
+ 66\0\2,
+ 66\0\3,
+ 66\0\4,
+ 66\0\5,
+ 66\0\6,
+ 66\0\7,
+ 66\0\8,
+ 66\0\9,
+ 66\0\10,
+ 66\0\11,
+ 66\0\12,
+ 66\0\13,
+ 66\0\14,
+ 66\0\15,
+ 66\0\16,
+ 66\0\17,
+ 66\0\18,
+ 66\0\19,
+ 66\0\20,
+ 66\0\21,
+ 66\0\22,
+ 66\0\23,
+ 66\1\0,
+ 66\1\1,
+ 66\1\2,
+ 66\1\3,
+ 66\2\0,
+ 66\2\1,
+ 66\2\2,
+ 66\2\3,
+);
+endchar;
+
+beginchar (177, 10.600u#, 6.745u#, 8.672u#);
+ "rgwa";
+ z67\0\0s = (2.650u,5.298u);
+ z67\0\0 = (3.613u,5.298u);
+ z67\0\1c1 = (3.899u,5.283u);
+ z67\0\1c2 = (4.265u,5.278u);
+ z67\0\1 = (4.528u,5.157u);
+ z67\0\2c1 = (5.052u,4.916u);
+ z67\0\2c2 = (5.052u,4.479u);
+ z67\0\2 = (4.528u,4.238u);
+ z67\0\3c1 = (3.702u,3.858u);
+ z67\0\3c2 = (1.468u,4.432u);
+ z67\0\3 = (0.982u,3.710u);
+ z67\0\4c1 = (0.662u,3.234u);
+ z67\0\4c2 = (1.172u,2.301u);
+ z67\0\4 = (1.124u,1.686u);
+ z67\0\5c1 = (1.079u,1.117u);
+ z67\0\5c2 = (0.804u,0.552u);
+ z67\0\5 = (0.665u,0.000u);
+ z67\0\6c1 = (0.541u,-0.489u);
+ z67\0\6c2 = (0.506u,-0.945u);
+ z67\0\6 = (0.482u,-1.445u);
+ z67\0\7c1 = (2.947u,-1.332u);
+ z67\0\7c2 = (5.030u,-0.456u);
+ z67\0\7 = (6.504u,-3.132u);
+ z67\0\8c1 = (6.907u,-2.116u);
+ z67\0\8c2 = (6.740u,-0.846u);
+ z67\0\8 = (6.745u,0.241u);
+ z67\0\9c1 = (6.750u,1.151u);
+ z67\0\9c2 = (6.868u,1.992u);
+ z67\0\9 = (6.986u,2.891u);
+ z67\0\10c1 = (7.371u,2.877u);
+ z67\0\10c2 = (7.796u,2.900u);
+ z67\0\10 = (8.159u,2.747u);
+ z67\0\11c1 = (9.437u,2.205u);
+ z67\0\11c2 = (9.115u,0.160u);
+ z67\0\11 = (9.163u,-0.964u);
+ z67\0\12c1 = (9.198u,-1.747u);
+ z67\0\12c2 = (9.461u,-2.594u);
+ z67\0\12 = (9.357u,-3.369u);
+ z67\0\13c1 = (9.199u,-4.542u);
+ z67\0\13c2 = (8.092u,-4.941u);
+ z67\0\13 = (7.227u,-5.551u);
+ z67\0\14 = (6.022u,-6.504u);
+ z67\0\15c1 = (7.077u,-7.747u);
+ z67\0\15c2 = (8.254u,-8.341u);
+ z67\0\15 = (9.877u,-8.431u);
+ z67\0\16 = (9.877u,0.241u);
+ z67\0\17 = (10.076u,2.409u);
+ z67\0\18c1 = (10.307u,5.392u);
+ z67\0\18c2 = (7.391u,3.287u);
+ z67\0\18 = (6.166u,4.480u);
+ z67\0\19c1 = (5.914u,4.725u);
+ z67\0\19c2 = (5.881u,4.988u);
+ z67\0\19 = (5.782u,5.300u);
+ z67\0\20c1 = (7.217u,5.304u);
+ z67\0\20c2 = (8.062u,5.112u);
+ z67\0\20 = (8.431u,6.745u);
+ z67\0\21c1 = (7.453u,6.745u);
+ z67\0\21c2 = (4.089u,6.901u);
+ z67\0\21 = (3.408u,6.499u);
+ z67\0\22c1 = (2.906u,6.203u);
+ z67\0\22c2 = (2.806u,5.814u);
+ z67\1\0s = (6.263u,-1.204u);
+ z67\1\0c1 = (5.939u,-1.074u);
+ z67\1\0c2 = (5.667u,-0.967u);
+ z67\1\0 = (5.368u,-0.776u);
+ z67\1\1c1 = (4.854u,-0.447u);
+ z67\1\1c2 = (4.421u,-0.024u);
+ z67\1\1 = (3.851u,0.221u);
+ z67\1\2c1 = (3.108u,0.541u);
+ z67\1\2c2 = (2.233u,0.499u);
+ z67\1\2 = (1.445u,0.723u);
+ z67\1\3c1 = (1.621u,1.317u);
+ z67\1\3c2 = (1.793u,1.864u);
+ z67\1\3 = (2.262u,2.319u);
+ z67\1\4c1 = (2.932u,2.936u);
+ z67\1\4c2 = (5.122u,3.289u);
+ z67\1\4 = (5.647u,2.319u);
+ z67\1\5c1 = (5.944u,1.792u);
+ z67\1\5c2 = (5.982u,0.405u);
+ z67\1\5 = (6.065u,-0.241u);
+ z67\2\0s = (9.395u,-4.818u);
+ z67\2\0 = (9.395u,-8.190u);
+ z67\2\1c1 = (8.509u,-7.789u);
+ z67\2\1c2 = (7.780u,-7.302u);
+ z67\2\1 = (6.986u,-6.745u);
+ z67\2\2 = (6.986u,-6.263u);
+ fill_or_unfill z67\0\0s
+ --z67\0\0
+ ..controls z67\0\1c1 and z67\0\1c2..z67\0\1
+ ..controls z67\0\2c1 and z67\0\2c2..z67\0\2
+ ..controls z67\0\3c1 and z67\0\3c2..z67\0\3
+ ..controls z67\0\4c1 and z67\0\4c2..z67\0\4
+ ..controls z67\0\5c1 and z67\0\5c2..z67\0\5
+ ..controls z67\0\6c1 and z67\0\6c2..z67\0\6
+ ..controls z67\0\7c1 and z67\0\7c2..z67\0\7
+ ..controls z67\0\8c1 and z67\0\8c2..z67\0\8
+ ..controls z67\0\9c1 and z67\0\9c2..z67\0\9
+ ..controls z67\0\10c1 and z67\0\10c2..z67\0\10
+ ..controls z67\0\11c1 and z67\0\11c2..z67\0\11
+ ..controls z67\0\12c1 and z67\0\12c2..z67\0\12
+ ..controls z67\0\13c1 and z67\0\13c2..z67\0\13
+ --z67\0\14
+ ..controls z67\0\15c1 and z67\0\15c2..z67\0\15
+ --z67\0\16
+ --z67\0\17
+ ..controls z67\0\18c1 and z67\0\18c2..z67\0\18
+ ..controls z67\0\19c1 and z67\0\19c2..z67\0\19
+ ..controls z67\0\20c1 and z67\0\20c2..z67\0\20
+ ..controls z67\0\21c1 and z67\0\21c2..z67\0\21
+ ..controls z67\0\22c1 and z67\0\22c2..cycle;
+ fill_or_unfill z67\1\0s
+ ..controls z67\1\0c1 and z67\1\0c2..z67\1\0
+ ..controls z67\1\1c1 and z67\1\1c2..z67\1\1
+ ..controls z67\1\2c1 and z67\1\2c2..z67\1\2
+ ..controls z67\1\3c1 and z67\1\3c2..z67\1\3
+ ..controls z67\1\4c1 and z67\1\4c2..z67\1\4
+ ..controls z67\1\5c1 and z67\1\5c2..z67\1\5
+ --cycle;
+ fill_or_unfill z67\2\0s
+ --z67\2\0
+ ..controls z67\2\1c1 and z67\2\1c2..z67\2\1
+ --z67\2\2
+ --cycle;
+ proof_labels (
+ 67\0\0,
+ 67\0\1,
+ 67\0\2,
+ 67\0\3,
+ 67\0\4,
+ 67\0\5,
+ 67\0\6,
+ 67\0\7,
+ 67\0\8,
+ 67\0\9,
+ 67\0\10,
+ 67\0\11,
+ 67\0\12,
+ 67\0\13,
+ 67\0\14,
+ 67\0\15,
+ 67\0\16,
+ 67\0\17,
+ 67\0\18,
+ 67\0\19,
+ 67\0\20,
+ 67\0\21,
+ 67\0\22,
+ 67\1\0,
+ 67\1\1,
+ 67\1\2,
+ 67\1\3,
+ 67\1\4,
+ 67\1\5,
+ 67\1\6,
+ 67\2\0,
+ 67\2\1,
+ 67\2\2,
+ 67\2\3,
+);
+endchar;
+
+beginchar (178, 7.950u#, 6.745u#, 7.950u#);
+ "nywa";
+ z68\0\0s = (1.204u,4.336u);
+ z68\0\0c1 = (1.371u,4.637u);
+ z68\0\0c2 = (1.450u,4.868u);
+ z68\0\0 = (1.757u,5.073u);
+ z68\0\1c1 = (2.416u,5.512u);
+ z68\0\1c2 = (4.271u,5.399u);
+ z68\0\1 = (4.227u,4.323u);
+ z68\0\2c1 = (4.182u,3.217u);
+ z68\0\2c2 = (2.085u,2.416u);
+ z68\0\2 = (2.048u,0.968u);
+ z68\0\3c1 = (2.021u,-0.049u);
+ z68\0\3c2 = (3.210u,-0.720u);
+ z68\0\3 = (3.952u,0.085u);
+ z68\0\4c1 = (4.196u,0.349u);
+ z68\0\4c2 = (4.237u,0.640u);
+ z68\0\4 = (4.336u,0.964u);
+ z68\0\5 = (2.891u,1.445u);
+ z68\0\6c1 = (3.210u,1.763u);
+ z68\0\6c2 = (3.449u,2.014u);
+ z68\0\6 = (3.873u,2.201u);
+ z68\0\7c1 = (5.584u,2.958u);
+ z68\0\7c2 = (7.137u,1.545u);
+ z68\0\7 = (6.477u,-0.241u);
+ z68\0\8c1 = (6.097u,-1.272u);
+ z68\0\8c2 = (4.924u,-2.820u);
+ z68\0\8 = (4.086u,-3.523u);
+ z68\0\9 = (2.409u,-4.663u);
+ z68\0\10 = (0.964u,-5.782u);
+ z68\0\11c1 = (2.019u,-7.024u);
+ z68\0\11c2 = (3.195u,-7.618u);
+ z68\0\11 = (4.818u,-7.709u);
+ z68\0\12c1 = (4.818u,-6.907u);
+ z68\0\12c2 = (4.724u,-4.515u);
+ z68\0\12 = (4.959u,-3.895u);
+ z68\0\13c1 = (5.169u,-3.340u);
+ z68\0\13c2 = (5.666u,-2.885u);
+ z68\0\13 = (6.001u,-2.400u);
+ z68\0\14c1 = (6.843u,-1.179u);
+ z68\0\14c2 = (7.469u,0.180u);
+ z68\0\14 = (7.461u,1.686u);
+ z68\0\15c1 = (7.458u,2.213u);
+ z68\0\15c2 = (7.430u,2.797u);
+ z68\0\15 = (7.049u,3.204u);
+ z68\0\16c1 = (6.450u,3.845u);
+ z68\0\16c2 = (5.585u,3.794u);
+ z68\0\16 = (4.818u,3.613u);
+ z68\0\17 = (5.487u,5.055u);
+ z68\0\18c1 = (5.592u,5.332u);
+ z68\0\18c2 = (5.705u,5.629u);
+ z68\0\18 = (5.612u,5.928u);
+ z68\0\19c1 = (5.282u,6.988u);
+ z68\0\19c2 = (2.937u,6.832u);
+ z68\0\19 = (2.171u,6.429u);
+ z68\0\20c1 = (1.620u,6.138u);
+ z68\0\20c2 = (1.087u,5.609u);
+ z68\0\20 = (0.798u,5.055u);
+ z68\0\21c1 = (0.531u,4.543u);
+ z68\0\21c2 = (0.305u,3.300u);
+ z68\0\21 = (1.062u,3.064u);
+ z68\0\22c1 = (1.587u,2.900u);
+ z68\0\22c2 = (2.122u,3.458u);
+ z68\0\22 = (1.750u,3.969u);
+ z68\0\23c1 = (1.598u,4.179u);
+ z68\0\23c2 = (1.408u,4.218u);
+ z68\1\0s = (4.336u,-4.095u);
+ z68\1\0 = (4.336u,-7.468u);
+ z68\1\1c1 = (3.450u,-7.067u);
+ z68\1\1c2 = (2.721u,-6.579u);
+ z68\1\1 = (1.927u,-6.022u);
+ z68\1\2 = (1.927u,-5.541u);
+ fill_or_unfill z68\0\0s
+ ..controls z68\0\0c1 and z68\0\0c2..z68\0\0
+ ..controls z68\0\1c1 and z68\0\1c2..z68\0\1
+ ..controls z68\0\2c1 and z68\0\2c2..z68\0\2
+ ..controls z68\0\3c1 and z68\0\3c2..z68\0\3
+ ..controls z68\0\4c1 and z68\0\4c2..z68\0\4
+ --z68\0\5
+ ..controls z68\0\6c1 and z68\0\6c2..z68\0\6
+ ..controls z68\0\7c1 and z68\0\7c2..z68\0\7
+ ..controls z68\0\8c1 and z68\0\8c2..z68\0\8
+ --z68\0\9
+ --z68\0\10
+ ..controls z68\0\11c1 and z68\0\11c2..z68\0\11
+ ..controls z68\0\12c1 and z68\0\12c2..z68\0\12
+ ..controls z68\0\13c1 and z68\0\13c2..z68\0\13
+ ..controls z68\0\14c1 and z68\0\14c2..z68\0\14
+ ..controls z68\0\15c1 and z68\0\15c2..z68\0\15
+ ..controls z68\0\16c1 and z68\0\16c2..z68\0\16
+ --z68\0\17
+ ..controls z68\0\18c1 and z68\0\18c2..z68\0\18
+ ..controls z68\0\19c1 and z68\0\19c2..z68\0\19
+ ..controls z68\0\20c1 and z68\0\20c2..z68\0\20
+ ..controls z68\0\21c1 and z68\0\21c2..z68\0\21
+ ..controls z68\0\22c1 and z68\0\22c2..z68\0\22
+ ..controls z68\0\23c1 and z68\0\23c2..cycle;
+ fill_or_unfill z68\1\0s
+ --z68\1\0
+ ..controls z68\1\1c1 and z68\1\1c2..z68\1\1
+ --z68\1\2
+ --cycle;
+ proof_labels (
+ 68\0\0,
+ 68\0\1,
+ 68\0\2,
+ 68\0\3,
+ 68\0\4,
+ 68\0\5,
+ 68\0\6,
+ 68\0\7,
+ 68\0\8,
+ 68\0\9,
+ 68\0\10,
+ 68\0\11,
+ 68\0\12,
+ 68\0\13,
+ 68\0\14,
+ 68\0\15,
+ 68\0\16,
+ 68\0\17,
+ 68\0\18,
+ 68\0\19,
+ 68\0\20,
+ 68\0\21,
+ 68\0\22,
+ 68\0\23,
+ 68\1\0,
+ 68\1\1,
+ 68\1\2,
+ 68\1\3,
+);
+endchar;
+
+beginchar (180, 7.709u#, 6.745u#, 6.745u#);
+ "dwa";
+ z69\0\0s = (0.723u,5.300u);
+ z69\0\0 = (1.686u,5.300u);
+ z69\0\1 = (0.538u,2.650u);
+ z69\0\2 = (0.538u,1.445u);
+ z69\0\3c1 = (1.444u,1.618u);
+ z69\0\3c2 = (2.395u,1.782u);
+ z69\0\3 = (3.372u,1.607u);
+ z69\0\4c1 = (4.224u,1.455u);
+ z69\0\4c2 = (5.110u,1.007u);
+ z69\0\4 = (5.731u,0.403u);
+ z69\0\5c1 = (7.967u,-1.778u);
+ z69\0\5c2 = (4.992u,-3.505u);
+ z69\0\5 = (3.132u,-4.336u);
+ z69\0\6 = (3.132u,-4.818u);
+ z69\0\7 = (5.300u,-5.756u);
+ z69\0\8c1 = (5.965u,-6.053u);
+ z69\0\8c2 = (6.512u,-6.334u);
+ z69\0\8 = (7.210u,-6.504u);
+ z69\0\9 = (7.210u,-3.132u);
+ z69\0\10c1 = (7.227u,-2.273u);
+ z69\0\10c2 = (7.305u,-1.328u);
+ z69\0\10 = (7.210u,-0.482u);
+ z69\0\11c1 = (6.941u,1.063u);
+ z69\0\11c2 = (5.846u,2.656u);
+ z69\0\11 = (4.336u,3.167u);
+ z69\0\12c1 = (3.441u,3.470u);
+ z69\0\12c2 = (2.380u,3.372u);
+ z69\0\12 = (1.445u,3.372u);
+ z69\0\13c1 = (1.750u,3.840u);
+ z69\0\13c2 = (2.033u,4.300u);
+ z69\0\13 = (2.481u,4.650u);
+ z69\0\14c1 = (3.892u,5.749u);
+ z69\0\14c2 = (5.851u,4.905u);
+ z69\0\14 = (6.462u,5.679u);
+ z69\0\15c1 = (6.702u,5.982u);
+ z69\0\15c2 = (6.702u,6.383u);
+ z69\0\15 = (6.745u,6.745u);
+ z69\0\16c1 = (5.737u,6.745u);
+ z69\0\16c2 = (2.193u,6.920u);
+ z69\0\16 = (1.499u,6.499u);
+ z69\0\17c1 = (1.019u,6.208u);
+ z69\0\17c2 = (0.897u,5.793u);
+ z69\1\0s = (6.745u,-2.409u);
+ z69\1\0 = (6.745u,-6.022u);
+ z69\1\1c1 = (5.869u,-5.571u);
+ z69\1\1c2 = (5.032u,-5.133u);
+ z69\1\1 = (4.095u,-4.818u);
+ z69\1\2c1 = (4.486u,-4.192u);
+ z69\1\2c2 = (4.960u,-3.908u);
+ z69\1\2 = (5.532u,-3.454u);
+ fill_or_unfill z69\0\0s
+ --z69\0\0
+ --z69\0\1
+ --z69\0\2
+ ..controls z69\0\3c1 and z69\0\3c2..z69\0\3
+ ..controls z69\0\4c1 and z69\0\4c2..z69\0\4
+ ..controls z69\0\5c1 and z69\0\5c2..z69\0\5
+ --z69\0\6
+ --z69\0\7
+ ..controls z69\0\8c1 and z69\0\8c2..z69\0\8
+ --z69\0\9
+ ..controls z69\0\10c1 and z69\0\10c2..z69\0\10
+ ..controls z69\0\11c1 and z69\0\11c2..z69\0\11
+ ..controls z69\0\12c1 and z69\0\12c2..z69\0\12
+ ..controls z69\0\13c1 and z69\0\13c2..z69\0\13
+ ..controls z69\0\14c1 and z69\0\14c2..z69\0\14
+ ..controls z69\0\15c1 and z69\0\15c2..z69\0\15
+ ..controls z69\0\16c1 and z69\0\16c2..z69\0\16
+ ..controls z69\0\17c1 and z69\0\17c2..cycle;
+ fill_or_unfill z69\1\0s
+ --z69\1\0
+ ..controls z69\1\1c1 and z69\1\1c2..z69\1\1
+ ..controls z69\1\2c1 and z69\1\2c2..z69\1\2
+ --cycle;
+ proof_labels (
+ 69\0\0,
+ 69\0\1,
+ 69\0\2,
+ 69\0\3,
+ 69\0\4,
+ 69\0\5,
+ 69\0\6,
+ 69\0\7,
+ 69\0\8,
+ 69\0\9,
+ 69\0\10,
+ 69\0\11,
+ 69\0\12,
+ 69\0\13,
+ 69\0\14,
+ 69\0\15,
+ 69\0\16,
+ 69\0\17,
+ 69\1\0,
+ 69\1\1,
+ 69\1\2,
+ 69\1\3,
+);
+endchar;
+
+beginchar (181, 10.600u#, 9.154u#, 6.504u#);
+ "tshwa";
+ z70\0\0s = (7.262u,6.745u);
+ z70\0\0c1 = (6.289u,6.745u);
+ z70\0\0c2 = (3.413u,6.977u);
+ z70\0\0 = (2.794u,6.360u);
+ z70\0\1c1 = (2.489u,6.056u);
+ z70\0\1c2 = (2.475u,5.694u);
+ z70\0\1 = (2.409u,5.300u);
+ z70\0\2c1 = (4.039u,5.279u);
+ z70\0\2c2 = (4.673u,5.157u);
+ z70\0\2 = (4.818u,3.372u);
+ z70\0\3c1 = (-0.471u,3.114u);
+ z70\0\3c2 = (-0.341u,-1.388u);
+ z70\0\3 = (2.410u,-1.660u);
+ z70\0\4c1 = (3.597u,-1.777u);
+ z70\0\4c2 = (4.255u,-1.534u);
+ z70\0\4 = (4.818u,-0.482u);
+ z70\0\5 = (5.300u,-0.482u);
+ z70\0\6c1 = (5.950u,-1.747u);
+ z70\0\6c2 = (6.623u,-1.736u);
+ z70\0\6 = (7.949u,-1.682u);
+ z70\0\7c1 = (9.340u,-1.625u);
+ z70\0\7c2 = (9.880u,-0.912u);
+ z70\0\7 = (9.830u,0.482u);
+ z70\0\8c1 = (9.810u,1.039u);
+ z70\0\8c2 = (9.642u,1.467u);
+ z70\0\8 = (9.291u,1.902u);
+ z70\0\9c1 = (7.967u,3.544u);
+ z70\0\9c2 = (5.759u,3.048u);
+ z70\0\9 = (5.340u,3.926u);
+ z70\0\10c1 = (5.244u,4.127u);
+ z70\0\10c2 = (5.250u,4.326u);
+ z70\0\10 = (5.340u,4.527u);
+ z70\0\11c1 = (5.854u,5.682u);
+ z70\0\11c2 = (8.631u,5.056u);
+ z70\0\11 = (8.454u,6.236u);
+ z70\0\12c1 = (8.405u,6.561u);
+ z70\0\12c2 = (7.704u,7.194u);
+ z70\0\12 = (7.468u,7.468u);
+ z70\0\13c1 = (8.113u,7.567u);
+ z70\0\13c2 = (9.465u,7.782u);
+ z70\0\13 = (9.872u,8.325u);
+ z70\0\14c1 = (10.065u,8.584u);
+ z70\0\14c2 = (10.065u,8.855u);
+ z70\0\14 = (10.118u,9.154u);
+ z70\0\15c1 = (9.223u,9.146u);
+ z70\0\15c2 = (7.615u,9.212u);
+ z70\0\15 = (7.262u,8.137u);
+ z70\0\16c1 = (7.207u,7.829u);
+ z70\0\16c2 = (7.228u,7.091u);
+ z70\1\0s = (5.059u,1.204u);
+ z70\1\0 = (5.300u,2.168u);
+ z70\1\1 = (7.227u,1.527u);
+ z70\1\2c1 = (7.621u,1.384u);
+ z70\1\2c2 = (8.054u,1.254u);
+ z70\1\2 = (8.396u,0.983u);
+ z70\1\3c1 = (10.889u,-0.833u);
+ z70\1\3c2 = (5.903u,-3.351u);
+ z70\1\3 = (5.300u,0.983u);
+ z70\1\4 = (4.181u,-0.643u);
+ z70\1\5c1 = (3.502u,-1.326u);
+ z70\1\5c2 = (2.273u,-1.523u);
+ z70\1\5 = (1.624u,-0.643u);
+ z70\1\6c1 = (1.433u,-0.412u);
+ z70\1\6c2 = (1.311u,-0.081u);
+ z70\1\6 = (1.334u,0.238u);
+ z70\1\7c1 = (1.410u,1.291u);
+ z70\1\7c2 = (3.589u,2.389u);
+ z70\1\7 = (4.476u,2.020u);
+ z70\1\8c1 = (4.860u,1.860u);
+ z70\1\8c2 = (4.921u,1.547u);
+ z70\2\0s = (5.059u,-4.336u);
+ z70\2\0c1 = (6.114u,-5.579u);
+ z70\2\0c2 = (7.290u,-6.173u);
+ z70\2\0 = (8.913u,-6.263u);
+ z70\2\1 = (8.913u,-1.927u);
+ z70\2\2c1 = (7.476u,-2.458u);
+ z70\2\2c2 = (6.222u,-3.352u);
+ z70\3\0s = (8.431u,-2.650u);
+ z70\3\0 = (8.431u,-6.022u);
+ z70\3\1c1 = (7.545u,-5.621u);
+ z70\3\1c2 = (6.816u,-5.134u);
+ z70\3\1 = (6.022u,-4.577u);
+ z70\3\2 = (6.022u,-4.095u);
+ fill_or_unfill z70\0\0s
+ ..controls z70\0\0c1 and z70\0\0c2..z70\0\0
+ ..controls z70\0\1c1 and z70\0\1c2..z70\0\1
+ ..controls z70\0\2c1 and z70\0\2c2..z70\0\2
+ ..controls z70\0\3c1 and z70\0\3c2..z70\0\3
+ ..controls z70\0\4c1 and z70\0\4c2..z70\0\4
+ --z70\0\5
+ ..controls z70\0\6c1 and z70\0\6c2..z70\0\6
+ ..controls z70\0\7c1 and z70\0\7c2..z70\0\7
+ ..controls z70\0\8c1 and z70\0\8c2..z70\0\8
+ ..controls z70\0\9c1 and z70\0\9c2..z70\0\9
+ ..controls z70\0\10c1 and z70\0\10c2..z70\0\10
+ ..controls z70\0\11c1 and z70\0\11c2..z70\0\11
+ ..controls z70\0\12c1 and z70\0\12c2..z70\0\12
+ ..controls z70\0\13c1 and z70\0\13c2..z70\0\13
+ ..controls z70\0\14c1 and z70\0\14c2..z70\0\14
+ ..controls z70\0\15c1 and z70\0\15c2..z70\0\15
+ ..controls z70\0\16c1 and z70\0\16c2..cycle;
+ fill_or_unfill z70\1\0s
+ --z70\1\0
+ --z70\1\1
+ ..controls z70\1\2c1 and z70\1\2c2..z70\1\2
+ ..controls z70\1\3c1 and z70\1\3c2..z70\1\3
+ --z70\1\4
+ ..controls z70\1\5c1 and z70\1\5c2..z70\1\5
+ ..controls z70\1\6c1 and z70\1\6c2..z70\1\6
+ ..controls z70\1\7c1 and z70\1\7c2..z70\1\7
+ ..controls z70\1\8c1 and z70\1\8c2..cycle;
+ fill_or_unfill z70\2\0s
+ ..controls z70\2\0c1 and z70\2\0c2..z70\2\0
+ --z70\2\1
+ ..controls z70\2\2c1 and z70\2\2c2..cycle;
+ fill_or_unfill z70\3\0s
+ --z70\3\0
+ ..controls z70\3\1c1 and z70\3\1c2..z70\3\1
+ --z70\3\2
+ --cycle;
+ proof_labels (
+ 70\0\0,
+ 70\0\1,
+ 70\0\2,
+ 70\0\3,
+ 70\0\4,
+ 70\0\5,
+ 70\0\6,
+ 70\0\7,
+ 70\0\8,
+ 70\0\9,
+ 70\0\10,
+ 70\0\11,
+ 70\0\12,
+ 70\0\13,
+ 70\0\14,
+ 70\0\15,
+ 70\0\16,
+ 70\1\0,
+ 70\1\1,
+ 70\1\2,
+ 70\1\3,
+ 70\1\4,
+ 70\1\5,
+ 70\1\6,
+ 70\1\7,
+ 70\1\8,
+ 70\2\0,
+ 70\2\1,
+ 70\2\2,
+ 70\3\0,
+ 70\3\1,
+ 70\3\2,
+ 70\3\3,
+);
+endchar;
+
+beginchar (182, 9.877u#, 6.745u#, 8.672u#);
+ "rtswa";
+ z71\0\0s = (3.854u,4.095u);
+ z71\0\0c1 = (2.402u,4.090u);
+ z71\0\0c2 = (1.851u,4.235u);
+ z71\0\0 = (1.445u,2.650u);
+ z71\0\1 = (4.577u,2.650u);
+ z71\0\2c1 = (4.082u,0.324u);
+ z71\0\2c2 = (2.517u,0.123u);
+ z71\0\2 = (0.482u,0.482u);
+ z71\0\3c1 = (0.609u,-0.444u);
+ z71\0\3c2 = (1.517u,-2.667u);
+ z71\0\3 = (2.219u,-3.250u);
+ z71\0\4c1 = (3.064u,-3.951u);
+ z71\0\4c2 = (5.525u,-4.105u);
+ z71\0\4 = (6.479u,-3.571u);
+ z71\0\5c1 = (6.949u,-3.308u);
+ z71\0\5c2 = (7.239u,-2.900u);
+ z71\0\5 = (7.432u,-2.405u);
+ z71\0\6c1 = (8.394u,0.065u);
+ z71\0\6c2 = (5.014u,0.809u);
+ z71\0\6 = (5.409u,2.093u);
+ z71\0\7c1 = (5.623u,2.790u);
+ z71\0\7c2 = (6.812u,2.497u);
+ z71\0\7 = (7.319u,3.035u);
+ z71\0\8c1 = (7.888u,3.638u);
+ z71\0\8c2 = (7.291u,4.377u);
+ z71\0\8 = (7.674u,4.918u);
+ z71\0\9c1 = (8.240u,5.719u);
+ z71\0\9c2 = (9.081u,4.918u);
+ z71\0\9 = (9.395u,6.745u);
+ z71\0\10c1 = (8.774u,6.731u);
+ z71\0\10c2 = (7.855u,6.753u);
+ z71\0\10 = (7.371u,6.299u);
+ z71\0\11c1 = (6.739u,5.705u);
+ z71\0\11c2 = (7.242u,4.661u);
+ z71\0\11 = (6.228u,4.208u);
+ z71\0\12c1 = (5.968u,4.132u);
+ z71\0\12c2 = (5.587u,4.114u);
+ z71\0\12 = (5.313u,4.208u);
+ z71\0\13c1 = (4.725u,4.308u);
+ z71\0\13c2 = (4.604u,4.585u);
+ z71\0\13 = (4.336u,5.059u);
+ z71\0\14 = (5.286u,5.303u);
+ z71\0\15c1 = (5.556u,5.417u);
+ z71\0\15c2 = (5.843u,5.563u);
+ z71\0\15 = (5.982u,5.840u);
+ z71\0\16c1 = (6.628u,7.129u);
+ z71\0\16c2 = (2.638u,6.971u);
+ z71\0\16 = (2.208u,6.174u);
+ z71\0\17c1 = (1.807u,5.428u);
+ z71\0\17c2 = (3.110u,5.280u);
+ z71\0\17 = (3.470u,4.916u);
+ z71\0\18c1 = (3.720u,4.663u);
+ z71\0\18c2 = (3.753u,4.412u);
+ z71\1\0s = (4.336u,0.482u);
+ z71\1\0c1 = (4.519u,0.157u);
+ z71\1\0c2 = (4.670u,-0.127u);
+ z71\1\0 = (4.918u,-0.413u);
+ z71\1\1c1 = (5.344u,-0.907u);
+ z71\1\1c2 = (6.244u,-1.531u);
+ z71\1\1 = (6.395u,-2.165u);
+ z71\1\2c1 = (6.690u,-3.401u);
+ z71\1\2c2 = (4.933u,-3.637u);
+ z71\1\2 = (4.120u,-3.232u);
+ z71\1\3c1 = (3.092u,-2.720u);
+ z71\1\3c2 = (2.578u,-1.248u);
+ z71\1\3 = (2.168u,-0.241u);
+ z71\2\0s = (2.168u,-6.504u);
+ z71\2\0c1 = (3.223u,-7.747u);
+ z71\2\0c2 = (4.400u,-8.341u);
+ z71\2\0 = (6.022u,-8.431u);
+ z71\2\1 = (6.022u,-4.095u);
+ z71\2\2c1 = (4.585u,-4.626u);
+ z71\2\2c2 = (3.332u,-5.520u);
+ z71\3\0s = (5.541u,-4.818u);
+ z71\3\0 = (5.541u,-8.190u);
+ z71\3\1c1 = (4.654u,-7.789u);
+ z71\3\1c2 = (3.926u,-7.302u);
+ z71\3\1 = (3.132u,-6.745u);
+ z71\3\2 = (3.132u,-6.263u);
+ fill_or_unfill z71\0\0s
+ ..controls z71\0\0c1 and z71\0\0c2..z71\0\0
+ --z71\0\1
+ ..controls z71\0\2c1 and z71\0\2c2..z71\0\2
+ ..controls z71\0\3c1 and z71\0\3c2..z71\0\3
+ ..controls z71\0\4c1 and z71\0\4c2..z71\0\4
+ ..controls z71\0\5c1 and z71\0\5c2..z71\0\5
+ ..controls z71\0\6c1 and z71\0\6c2..z71\0\6
+ ..controls z71\0\7c1 and z71\0\7c2..z71\0\7
+ ..controls z71\0\8c1 and z71\0\8c2..z71\0\8
+ ..controls z71\0\9c1 and z71\0\9c2..z71\0\9
+ ..controls z71\0\10c1 and z71\0\10c2..z71\0\10
+ ..controls z71\0\11c1 and z71\0\11c2..z71\0\11
+ ..controls z71\0\12c1 and z71\0\12c2..z71\0\12
+ ..controls z71\0\13c1 and z71\0\13c2..z71\0\13
+ --z71\0\14
+ ..controls z71\0\15c1 and z71\0\15c2..z71\0\15
+ ..controls z71\0\16c1 and z71\0\16c2..z71\0\16
+ ..controls z71\0\17c1 and z71\0\17c2..z71\0\17
+ ..controls z71\0\18c1 and z71\0\18c2..cycle;
+ fill_or_unfill z71\1\0s
+ ..controls z71\1\0c1 and z71\1\0c2..z71\1\0
+ ..controls z71\1\1c1 and z71\1\1c2..z71\1\1
+ ..controls z71\1\2c1 and z71\1\2c2..z71\1\2
+ ..controls z71\1\3c1 and z71\1\3c2..z71\1\3
+ --cycle;
+ fill_or_unfill z71\2\0s
+ ..controls z71\2\0c1 and z71\2\0c2..z71\2\0
+ --z71\2\1
+ ..controls z71\2\2c1 and z71\2\2c2..cycle;
+ fill_or_unfill z71\3\0s
+ --z71\3\0
+ ..controls z71\3\1c1 and z71\3\1c2..z71\3\1
+ --z71\3\2
+ --cycle;
+ proof_labels (
+ 71\0\0,
+ 71\0\1,
+ 71\0\2,
+ 71\0\3,
+ 71\0\4,
+ 71\0\5,
+ 71\0\6,
+ 71\0\7,
+ 71\0\8,
+ 71\0\9,
+ 71\0\10,
+ 71\0\11,
+ 71\0\12,
+ 71\0\13,
+ 71\0\14,
+ 71\0\15,
+ 71\0\16,
+ 71\0\17,
+ 71\0\18,
+ 71\1\0,
+ 71\1\1,
+ 71\1\2,
+ 71\1\3,
+ 71\1\4,
+ 71\2\0,
+ 71\2\1,
+ 71\2\2,
+ 71\3\0,
+ 71\3\1,
+ 71\3\2,
+ 71\3\3,
+);
+endchar;
+
+beginchar (183, 9.636u#, 6.745u#, 7.227u#);
+ "zhwa";
+ z72\0\0s = (4.818u,-3.372u);
+ z72\0\0c1 = (3.943u,-2.020u);
+ z72\0\0c2 = (2.586u,-2.616u);
+ z72\0\0 = (1.592u,-0.241u);
+ z72\0\1c1 = (0.919u,1.365u);
+ z72\0\1c2 = (0.575u,3.341u);
+ z72\0\1 = (1.981u,4.665u);
+ z72\0\2c1 = (2.767u,5.406u);
+ z72\0\2c2 = (3.298u,5.521u);
+ z72\0\2 = (4.336u,5.540u);
+ z72\0\3c1 = (5.310u,5.557u);
+ z72\0\3c2 = (6.673u,5.661u);
+ z72\0\3 = (7.314u,4.764u);
+ z72\0\4c1 = (7.650u,4.293u);
+ z72\0\4c2 = (7.553u,3.894u);
+ z72\0\4 = (7.468u,3.372u);
+ z72\0\5 = (6.263u,3.928u);
+ z72\0\6c1 = (5.103u,4.296u);
+ z72\0\6c2 = (3.476u,4.238u);
+ z72\0\6 = (3.093u,2.880u);
+ z72\0\7c1 = (2.908u,2.433u);
+ z72\0\7c2 = (2.898u,1.912u);
+ z72\0\7 = (3.093u,1.496u);
+ z72\0\8c1 = (3.307u,1.203u);
+ z72\0\8c2 = (3.574u,0.990u);
+ z72\0\8 = (3.868u,0.833u);
+ z72\0\9c1 = (5.353u,0.040u);
+ z72\0\9c2 = (6.319u,1.388u);
+ z72\0\9 = (7.022u,0.967u);
+ z72\0\10c1 = (7.409u,0.736u);
+ z72\0\10c2 = (7.867u,-0.521u);
+ z72\0\10 = (8.020u,-0.964u);
+ z72\0\11c1 = (9.333u,-4.781u);
+ z72\0\11c2 = (7.406u,-3.839u);
+ z72\0\11 = (5.059u,-5.541u);
+ z72\0\12c1 = (6.349u,-6.256u);
+ z72\0\12c2 = (7.673u,-6.852u);
+ z72\0\12 = (9.154u,-6.986u);
+ z72\0\13c1 = (9.154u,-4.445u);
+ z72\0\13c2 = (9.319u,0.648u);
+ z72\0\13 = (7.709u,2.650u);
+ z72\0\14c1 = (7.966u,3.042u);
+ z72\0\14c2 = (8.224u,3.376u);
+ z72\0\14 = (8.308u,3.854u);
+ z72\0\15c1 = (8.507u,4.994u);
+ z72\0\15c2 = (7.546u,6.244u);
+ z72\0\15 = (6.495u,6.589u);
+ z72\0\16c1 = (5.584u,6.888u);
+ z72\0\16c2 = (3.532u,6.726u);
+ z72\0\16 = (2.659u,6.336u);
+ z72\0\17c1 = (1.616u,5.869u);
+ z72\0\17c2 = (1.212u,4.893u);
+ z72\0\17 = (0.939u,3.854u);
+ z72\0\18c1 = (0.778u,3.241u);
+ z72\0\18c2 = (0.620u,2.564u);
+ z72\0\18 = (0.621u,1.927u);
+ z72\0\19c1 = (0.621u,0.071u);
+ z72\0\19c2 = (1.588u,-2.337u);
+ z72\0\19 = (3.373u,-3.111u);
+ z72\0\20c1 = (3.863u,-3.324u);
+ z72\0\20c2 = (4.297u,-3.342u);
+ z72\1\0s = (6.504u,1.686u);
+ z72\1\0c1 = (6.120u,1.478u);
+ z72\1\0c2 = (5.734u,1.234u);
+ z72\1\0 = (5.300u,1.141u);
+ z72\1\1c1 = (4.819u,1.039u);
+ z72\1\1c2 = (4.299u,1.119u);
+ z72\1\1 = (3.894u,1.411u);
+ z72\1\2c1 = (2.282u,2.575u);
+ z72\1\2c2 = (5.135u,4.273u);
+ z72\2\0s = (8.672u,-4.336u);
+ z72\2\0 = (8.672u,-6.745u);
+ z72\2\1 = (5.782u,-5.541u);
+ z72\2\2c1 = (6.658u,-4.971u);
+ z72\2\2c2 = (7.666u,-4.608u);
+ fill_or_unfill z72\0\0s
+ ..controls z72\0\0c1 and z72\0\0c2..z72\0\0
+ ..controls z72\0\1c1 and z72\0\1c2..z72\0\1
+ ..controls z72\0\2c1 and z72\0\2c2..z72\0\2
+ ..controls z72\0\3c1 and z72\0\3c2..z72\0\3
+ ..controls z72\0\4c1 and z72\0\4c2..z72\0\4
+ --z72\0\5
+ ..controls z72\0\6c1 and z72\0\6c2..z72\0\6
+ ..controls z72\0\7c1 and z72\0\7c2..z72\0\7
+ ..controls z72\0\8c1 and z72\0\8c2..z72\0\8
+ ..controls z72\0\9c1 and z72\0\9c2..z72\0\9
+ ..controls z72\0\10c1 and z72\0\10c2..z72\0\10
+ ..controls z72\0\11c1 and z72\0\11c2..z72\0\11
+ ..controls z72\0\12c1 and z72\0\12c2..z72\0\12
+ ..controls z72\0\13c1 and z72\0\13c2..z72\0\13
+ ..controls z72\0\14c1 and z72\0\14c2..z72\0\14
+ ..controls z72\0\15c1 and z72\0\15c2..z72\0\15
+ ..controls z72\0\16c1 and z72\0\16c2..z72\0\16
+ ..controls z72\0\17c1 and z72\0\17c2..z72\0\17
+ ..controls z72\0\18c1 and z72\0\18c2..z72\0\18
+ ..controls z72\0\19c1 and z72\0\19c2..z72\0\19
+ ..controls z72\0\20c1 and z72\0\20c2..cycle;
+ fill_or_unfill z72\1\0s
+ ..controls z72\1\0c1 and z72\1\0c2..z72\1\0
+ ..controls z72\1\1c1 and z72\1\1c2..z72\1\1
+ ..controls z72\1\2c1 and z72\1\2c2..cycle;
+ fill_or_unfill z72\2\0s
+ --z72\2\0
+ --z72\2\1
+ ..controls z72\2\2c1 and z72\2\2c2..cycle;
+ proof_labels (
+ 72\0\0,
+ 72\0\1,
+ 72\0\2,
+ 72\0\3,
+ 72\0\4,
+ 72\0\5,
+ 72\0\6,
+ 72\0\7,
+ 72\0\8,
+ 72\0\9,
+ 72\0\10,
+ 72\0\11,
+ 72\0\12,
+ 72\0\13,
+ 72\0\14,
+ 72\0\15,
+ 72\0\16,
+ 72\0\17,
+ 72\0\18,
+ 72\0\19,
+ 72\0\20,
+ 72\1\0,
+ 72\1\1,
+ 72\1\2,
+ 72\2\0,
+ 72\2\1,
+ 72\2\2,
+);
+endchar;
+
+beginchar (184, 8.190u#, 6.745u#, 5.782u#);
+ "zwa";
+ z73\0\0s = (6.986u,5.300u);
+ z73\0\0 = (6.986u,3.817u);
+ z73\0\1c1 = (6.205u,3.854u);
+ z73\0\1c2 = (2.424u,3.915u);
+ z73\0\1 = (1.962u,3.817u);
+ z73\0\2c1 = (1.702u,3.702u);
+ z73\0\2c2 = (1.473u,3.589u);
+ z73\0\2 = (1.384u,3.311u);
+ z73\0\3c1 = (1.055u,2.290u);
+ z73\0\3c2 = (2.843u,2.410u);
+ z73\0\3 = (3.372u,2.409u);
+ z73\0\4 = (6.986u,2.409u);
+ z73\0\5 = (6.986u,0.723u);
+ z73\0\6 = (4.818u,1.126u);
+ z73\0\7c1 = (3.280u,1.259u);
+ z73\0\7c2 = (1.816u,0.684u);
+ z73\0\7 = (0.482u,0.000u);
+ z73\0\8c1 = (0.623u,-0.438u);
+ z73\0\8c2 = (0.700u,-0.867u);
+ z73\0\8 = (1.239u,-0.967u);
+ z73\0\9c1 = (1.675u,-1.048u);
+ z73\0\9c2 = (2.433u,-0.678u);
+ z73\0\9 = (2.891u,-0.572u);
+ z73\0\10c1 = (3.481u,-0.434u);
+ z73\0\10c2 = (4.213u,-0.324u);
+ z73\0\10 = (4.818u,-0.353u);
+ z73\0\11c1 = (5.621u,-0.392u);
+ z73\0\11c2 = (6.467u,-0.715u);
+ z73\0\11 = (7.227u,-0.964u);
+ z73\0\12 = (7.227u,-1.445u);
+ z73\0\13c1 = (5.960u,-2.011u);
+ z73\0\13c2 = (4.912u,-2.719u);
+ z73\0\13 = (3.854u,-3.613u);
+ z73\0\14c1 = (4.909u,-4.856u);
+ z73\0\14c2 = (6.086u,-5.450u);
+ z73\0\14 = (7.709u,-5.541u);
+ z73\0\15 = (7.709u,4.336u);
+ z73\0\16c1 = (7.708u,4.882u);
+ z73\0\16c2 = (7.770u,5.929u);
+ z73\0\16 = (7.426u,6.366u);
+ z73\0\17c1 = (7.283u,6.548u);
+ z73\0\17c2 = (7.148u,6.610u);
+ z73\0\17 = (6.932u,6.638u);
+ z73\0\18c1 = (6.438u,6.822u);
+ z73\0\18c2 = (2.165u,6.800u);
+ z73\0\18 = (1.763u,6.638u);
+ z73\0\19c1 = (1.526u,6.484u);
+ z73\0\19c2 = (1.356u,6.301u);
+ z73\0\19 = (1.356u,6.022u);
+ z73\0\20c1 = (1.356u,5.164u);
+ z73\0\20c2 = (2.818u,5.301u);
+ z73\0\20 = (3.372u,5.300u);
+ z73\1\0s = (7.227u,-1.927u);
+ z73\1\0 = (7.227u,-5.300u);
+ z73\1\1c1 = (6.341u,-4.899u);
+ z73\1\1c2 = (5.612u,-4.411u);
+ z73\1\1 = (4.818u,-3.854u);
+ z73\1\2 = (4.818u,-3.372u);
+ fill_or_unfill z73\0\0s
+ --z73\0\0
+ ..controls z73\0\1c1 and z73\0\1c2..z73\0\1
+ ..controls z73\0\2c1 and z73\0\2c2..z73\0\2
+ ..controls z73\0\3c1 and z73\0\3c2..z73\0\3
+ --z73\0\4
+ --z73\0\5
+ --z73\0\6
+ ..controls z73\0\7c1 and z73\0\7c2..z73\0\7
+ ..controls z73\0\8c1 and z73\0\8c2..z73\0\8
+ ..controls z73\0\9c1 and z73\0\9c2..z73\0\9
+ ..controls z73\0\10c1 and z73\0\10c2..z73\0\10
+ ..controls z73\0\11c1 and z73\0\11c2..z73\0\11
+ --z73\0\12
+ ..controls z73\0\13c1 and z73\0\13c2..z73\0\13
+ ..controls z73\0\14c1 and z73\0\14c2..z73\0\14
+ --z73\0\15
+ ..controls z73\0\16c1 and z73\0\16c2..z73\0\16
+ ..controls z73\0\17c1 and z73\0\17c2..z73\0\17
+ ..controls z73\0\18c1 and z73\0\18c2..z73\0\18
+ ..controls z73\0\19c1 and z73\0\19c2..z73\0\19
+ ..controls z73\0\20c1 and z73\0\20c2..z73\0\20
+ --cycle;
+ fill_or_unfill z73\1\0s
+ --z73\1\0
+ ..controls z73\1\1c1 and z73\1\1c2..z73\1\1
+ --z73\1\2
+ --cycle;
+ proof_labels (
+ 73\0\0,
+ 73\0\1,
+ 73\0\2,
+ 73\0\3,
+ 73\0\4,
+ 73\0\5,
+ 73\0\6,
+ 73\0\7,
+ 73\0\8,
+ 73\0\9,
+ 73\0\10,
+ 73\0\11,
+ 73\0\12,
+ 73\0\13,
+ 73\0\14,
+ 73\0\15,
+ 73\0\16,
+ 73\0\17,
+ 73\0\18,
+ 73\0\19,
+ 73\0\20,
+ 73\0\21,
+ 73\1\0,
+ 73\1\1,
+ 73\1\2,
+ 73\1\3,
+);
+endchar;
+
+beginchar (185, 10.359u#, 6.745u#, 6.263u#);
+ "rwa";
+ z74\0\0s = (3.854u,5.300u);
+ z74\0\0c1 = (3.787u,4.909u);
+ z74\0\0c2 = (3.774u,4.572u);
+ z74\0\0 = (3.469u,4.273u);
+ z74\0\1c1 = (2.832u,3.646u);
+ z74\0\1c2 = (1.680u,4.037u);
+ z74\0\1 = (0.905u,2.866u);
+ z74\0\2c1 = (0.748u,2.629u);
+ z74\0\2c2 = (0.604u,2.297u);
+ z74\0\2 = (0.680u,2.046u);
+ z74\0\3c1 = (0.903u,1.152u);
+ z74\0\3c2 = (2.580u,2.004u);
+ z74\0\3 = (3.132u,2.046u);
+ z74\0\4c1 = (4.735u,2.325u);
+ z74\0\4c2 = (8.042u,1.246u);
+ z74\0\4 = (8.811u,-0.251u);
+ z74\0\5c1 = (8.957u,-0.534u);
+ z74\0\5c2 = (9.069u,-0.861u);
+ z74\0\5 = (8.996u,-1.183u);
+ z74\0\6c1 = (8.867u,-1.746u);
+ z74\0\6c2 = (8.150u,-2.225u);
+ z74\0\6 = (7.708u,-2.547u);
+ z74\0\7 = (5.782u,-3.854u);
+ z74\0\8c1 = (6.368u,-4.440u);
+ z74\0\8c2 = (8.143u,-5.573u);
+ z74\0\8 = (8.913u,-5.849u);
+ z74\0\9c1 = (9.237u,-5.965u);
+ z74\0\9c2 = (9.541u,-5.984u);
+ z74\0\9 = (9.877u,-6.022u);
+ z74\0\10 = (9.877u,-2.891u);
+ z74\0\11c1 = (9.875u,-1.611u);
+ z74\0\11c2 = (9.855u,-0.680u);
+ z74\0\11 = (9.214u,0.482u);
+ z74\0\12c1 = (8.579u,1.633u);
+ z74\0\12c2 = (7.446u,2.811u);
+ z74\0\12 = (6.263u,3.393u);
+ z74\0\13c1 = (5.795u,3.624u);
+ z74\0\13c2 = (4.624u,3.921u);
+ z74\0\13 = (4.624u,4.574u);
+ z74\0\14c1 = (4.624u,5.697u);
+ z74\0\14c2 = (6.802u,4.882u);
+ z74\0\14 = (7.463u,5.857u);
+ z74\0\15c1 = (7.651u,6.135u);
+ z74\0\15c2 = (7.656u,6.431u);
+ z74\0\15 = (7.709u,6.707u);
+ z74\0\16c1 = (6.879u,6.745u);
+ z74\0\16c2 = (2.672u,6.808u);
+ z74\0\16 = (2.203u,6.707u);
+ z74\0\17c1 = (1.943u,6.593u);
+ z74\0\17c2 = (1.714u,6.480u);
+ z74\0\17 = (1.624u,6.201u);
+ z74\0\18c1 = (1.278u,5.126u);
+ z74\0\18c2 = (3.311u,5.300u);
+ z74\1\0s = (9.395u,-1.927u);
+ z74\1\0 = (9.395u,-5.782u);
+ z74\1\1c1 = (8.415u,-5.182u);
+ z74\1\1c2 = (7.384u,-4.592u);
+ z74\1\1 = (6.504u,-3.854u);
+ fill_or_unfill z74\0\0s
+ ..controls z74\0\0c1 and z74\0\0c2..z74\0\0
+ ..controls z74\0\1c1 and z74\0\1c2..z74\0\1
+ ..controls z74\0\2c1 and z74\0\2c2..z74\0\2
+ ..controls z74\0\3c1 and z74\0\3c2..z74\0\3
+ ..controls z74\0\4c1 and z74\0\4c2..z74\0\4
+ ..controls z74\0\5c1 and z74\0\5c2..z74\0\5
+ ..controls z74\0\6c1 and z74\0\6c2..z74\0\6
+ --z74\0\7
+ ..controls z74\0\8c1 and z74\0\8c2..z74\0\8
+ ..controls z74\0\9c1 and z74\0\9c2..z74\0\9
+ --z74\0\10
+ ..controls z74\0\11c1 and z74\0\11c2..z74\0\11
+ ..controls z74\0\12c1 and z74\0\12c2..z74\0\12
+ ..controls z74\0\13c1 and z74\0\13c2..z74\0\13
+ ..controls z74\0\14c1 and z74\0\14c2..z74\0\14
+ ..controls z74\0\15c1 and z74\0\15c2..z74\0\15
+ ..controls z74\0\16c1 and z74\0\16c2..z74\0\16
+ ..controls z74\0\17c1 and z74\0\17c2..z74\0\17
+ ..controls z74\0\18c1 and z74\0\18c2..cycle;
+ fill_or_unfill z74\1\0s
+ --z74\1\0
+ ..controls z74\1\1c1 and z74\1\1c2..z74\1\1
+ --cycle;
+ proof_labels (
+ 74\0\0,
+ 74\0\1,
+ 74\0\2,
+ 74\0\3,
+ 74\0\4,
+ 74\0\5,
+ 74\0\6,
+ 74\0\7,
+ 74\0\8,
+ 74\0\9,
+ 74\0\10,
+ 74\0\11,
+ 74\0\12,
+ 74\0\13,
+ 74\0\14,
+ 74\0\15,
+ 74\0\16,
+ 74\0\17,
+ 74\0\18,
+ 74\1\0,
+ 74\1\1,
+ 74\1\2,
+);
+endchar;
+
+beginchar (186, 10.840u#, 6.745u#, 4.818u#);
+ "lwa";
+ z75\0\0s = (1.445u,1.445u);
+ z75\0\0c1 = (1.328u,2.037u);
+ z75\0\0c2 = (1.090u,2.774u);
+ z75\0\0 = (1.192u,3.372u);
+ z75\0\1c1 = (1.636u,5.977u);
+ z75\0\1c2 = (5.667u,5.692u);
+ z75\0\1 = (5.667u,3.888u);
+ z75\0\2c1 = (5.667u,2.791u);
+ z75\0\2c2 = (3.618u,3.285u);
+ z75\0\2 = (2.896u,2.114u);
+ z75\0\3c1 = (2.715u,1.820u);
+ z75\0\3c2 = (2.704u,1.530u);
+ z75\0\3 = (2.650u,1.204u);
+ z75\0\4c1 = (3.529u,1.340u);
+ z75\0\4c2 = (4.408u,1.673u);
+ z75\0\4 = (5.300u,1.667u);
+ z75\0\5c1 = (6.183u,1.660u);
+ z75\0\5c2 = (9.690u,0.650u);
+ z75\0\5 = (9.114u,-0.636u);
+ z75\0\6c1 = (8.844u,-1.236u);
+ z75\0\6c2 = (6.677u,-2.277u);
+ z75\0\6 = (6.022u,-2.650u);
+ z75\0\7c1 = (6.870u,-3.460u);
+ z75\0\7c2 = (8.737u,-4.252u);
+ z75\0\7 = (9.914u,-4.577u);
+ z75\0\8 = (9.914u,2.168u);
+ z75\0\9 = (9.914u,3.613u);
+ z75\0\10 = (10.263u,5.299u);
+ z75\0\11c1 = (10.331u,5.577u);
+ z75\0\11c2 = (10.336u,5.930u);
+ z75\0\11 = (10.263u,6.188u);
+ z75\0\12c1 = (9.991u,6.656u);
+ z75\0\12c2 = (9.420u,6.785u);
+ z75\0\12 = (8.948u,6.665u);
+ z75\0\13c1 = (8.581u,6.572u);
+ z75\0\13c2 = (8.372u,6.382u);
+ z75\0\13 = (8.365u,5.987u);
+ z75\0\14c1 = (8.357u,5.520u);
+ z75\0\14c2 = (8.878u,4.600u);
+ z75\0\14 = (9.042u,4.095u);
+ z75\0\15c1 = (9.386u,3.033u);
+ z75\0\15c2 = (9.394u,2.064u);
+ z75\0\15 = (9.395u,0.964u);
+ z75\0\16c1 = (8.262u,1.719u);
+ z75\0\16c2 = (7.355u,2.502u);
+ z75\0\16 = (6.022u,2.891u);
+ z75\0\17c1 = (6.624u,4.189u);
+ z75\0\17c2 = (6.504u,5.120u);
+ z75\0\17 = (6.504u,6.504u);
+ z75\0\18c1 = (5.768u,6.636u);
+ z75\0\18c2 = (5.086u,6.735u);
+ z75\0\18 = (4.336u,6.693u);
+ z75\0\19c1 = (3.719u,6.752u);
+ z75\0\19c2 = (2.749u,6.803u);
+ z75\0\19 = (2.171u,6.693u);
+ z75\0\20c1 = (0.740u,6.241u);
+ z75\0\20c2 = (0.419u,4.926u);
+ z75\0\20 = (0.503u,3.613u);
+ z75\0\21c1 = (0.564u,2.662u);
+ z75\0\21c2 = (0.621u,1.990u);
+ z75\1\0s = (9.395u,-1.445u);
+ z75\1\0 = (9.395u,-4.095u);
+ z75\1\1 = (6.745u,-2.891u);
+ z75\1\2c1 = (7.529u,-2.108u);
+ z75\1\2c2 = (8.339u,-1.747u);
+ fill_or_unfill z75\0\0s
+ ..controls z75\0\0c1 and z75\0\0c2..z75\0\0
+ ..controls z75\0\1c1 and z75\0\1c2..z75\0\1
+ ..controls z75\0\2c1 and z75\0\2c2..z75\0\2
+ ..controls z75\0\3c1 and z75\0\3c2..z75\0\3
+ ..controls z75\0\4c1 and z75\0\4c2..z75\0\4
+ ..controls z75\0\5c1 and z75\0\5c2..z75\0\5
+ ..controls z75\0\6c1 and z75\0\6c2..z75\0\6
+ ..controls z75\0\7c1 and z75\0\7c2..z75\0\7
+ --z75\0\8
+ --z75\0\9
+ --z75\0\10
+ ..controls z75\0\11c1 and z75\0\11c2..z75\0\11
+ ..controls z75\0\12c1 and z75\0\12c2..z75\0\12
+ ..controls z75\0\13c1 and z75\0\13c2..z75\0\13
+ ..controls z75\0\14c1 and z75\0\14c2..z75\0\14
+ ..controls z75\0\15c1 and z75\0\15c2..z75\0\15
+ ..controls z75\0\16c1 and z75\0\16c2..z75\0\16
+ ..controls z75\0\17c1 and z75\0\17c2..z75\0\17
+ ..controls z75\0\18c1 and z75\0\18c2..z75\0\18
+ ..controls z75\0\19c1 and z75\0\19c2..z75\0\19
+ ..controls z75\0\20c1 and z75\0\20c2..z75\0\20
+ ..controls z75\0\21c1 and z75\0\21c2..cycle;
+ fill_or_unfill z75\1\0s
+ --z75\1\0
+ --z75\1\1
+ ..controls z75\1\2c1 and z75\1\2c2..cycle;
+ proof_labels (
+ 75\0\0,
+ 75\0\1,
+ 75\0\2,
+ 75\0\3,
+ 75\0\4,
+ 75\0\5,
+ 75\0\6,
+ 75\0\7,
+ 75\0\8,
+ 75\0\9,
+ 75\0\10,
+ 75\0\11,
+ 75\0\12,
+ 75\0\13,
+ 75\0\14,
+ 75\0\15,
+ 75\0\16,
+ 75\0\17,
+ 75\0\18,
+ 75\0\19,
+ 75\0\20,
+ 75\0\21,
+ 75\1\0,
+ 75\1\1,
+ 75\1\2,
+);
+endchar;
+
+beginchar (187, 11.563u#, 6.745u#, 6.745u#);
+ "shwa";
+ z76\0\0s = (4.095u,0.000u);
+ z76\0\0c1 = (2.896u,1.132u);
+ z76\0\0c2 = (2.162u,1.749u);
+ z76\0\0 = (0.482u,1.927u);
+ z76\0\1c1 = (0.996u,-0.085u);
+ z76\0\1c2 = (1.810u,0.762u);
+ z76\0\1 = (3.087u,-0.174u);
+ z76\0\2 = (4.577u,-1.686u);
+ z76\0\3 = (4.577u,1.686u);
+ z76\0\4c1 = (6.454u,-0.356u);
+ z76\0\4c2 = (7.635u,0.027u);
+ z76\0\4 = (9.877u,1.204u);
+ z76\0\5 = (10.083u,-1.203u);
+ z76\0\6c1 = (10.059u,-2.508u);
+ z76\0\6c2 = (9.134u,-2.816u);
+ z76\0\6 = (8.190u,-3.459u);
+ z76\0\7 = (6.745u,-4.577u);
+ z76\0\8c1 = (7.800u,-5.819u);
+ z76\0\8c2 = (8.977u,-6.414u);
+ z76\0\8 = (10.600u,-6.504u);
+ z76\0\9 = (10.600u,-0.723u);
+ z76\0\10 = (10.872u,2.168u);
+ z76\0\11 = (10.872u,3.854u);
+ z76\0\12c1 = (10.904u,4.474u);
+ z76\0\12c2 = (11.166u,5.415u);
+ z76\0\12 = (10.872u,5.987u);
+ z76\0\13c1 = (10.623u,6.751u);
+ z76\0\13c2 = (9.851u,6.732u);
+ z76\0\13 = (9.154u,6.744u);
+ z76\0\14c1 = (8.552u,6.755u);
+ z76\0\14c2 = (7.804u,6.796u);
+ z76\0\14 = (7.227u,6.622u);
+ z76\0\15c1 = (5.395u,6.072u);
+ z76\0\15c2 = (4.656u,4.125u);
+ z76\0\15 = (4.408u,2.409u);
+ z76\1\0s = (7.468u,5.218u);
+ z76\1\0c1 = (8.059u,5.250u);
+ z76\1\0c2 = (8.583u,5.288u);
+ z76\1\0 = (9.079u,4.881u);
+ z76\1\1c1 = (10.076u,4.061u);
+ z76\1\1c2 = (9.627u,1.647u);
+ z76\1\1 = (8.591u,1.006u);
+ z76\1\2c1 = (8.158u,0.737u);
+ z76\1\2c2 = (7.483u,0.701u);
+ z76\1\2 = (6.986u,0.749u);
+ z76\1\3c1 = (4.898u,0.953u);
+ z76\1\3c2 = (4.101u,3.343u);
+ z76\1\3 = (5.832u,4.616u);
+ z76\1\4c1 = (6.312u,4.968u);
+ z76\1\4c2 = (6.901u,5.093u);
+ z76\2\0s = (10.118u,-2.891u);
+ z76\2\0 = (10.118u,-6.263u);
+ z76\2\1c1 = (9.232u,-5.862u);
+ z76\2\1c2 = (8.503u,-5.375u);
+ z76\2\1 = (7.709u,-4.818u);
+ z76\2\2 = (7.709u,-4.336u);
+ fill_or_unfill z76\0\0s
+ ..controls z76\0\0c1 and z76\0\0c2..z76\0\0
+ ..controls z76\0\1c1 and z76\0\1c2..z76\0\1
+ --z76\0\2
+ --z76\0\3
+ ..controls z76\0\4c1 and z76\0\4c2..z76\0\4
+ --z76\0\5
+ ..controls z76\0\6c1 and z76\0\6c2..z76\0\6
+ --z76\0\7
+ ..controls z76\0\8c1 and z76\0\8c2..z76\0\8
+ --z76\0\9
+ --z76\0\10
+ --z76\0\11
+ ..controls z76\0\12c1 and z76\0\12c2..z76\0\12
+ ..controls z76\0\13c1 and z76\0\13c2..z76\0\13
+ ..controls z76\0\14c1 and z76\0\14c2..z76\0\14
+ ..controls z76\0\15c1 and z76\0\15c2..z76\0\15
+ --cycle;
+ fill_or_unfill z76\1\0s
+ ..controls z76\1\0c1 and z76\1\0c2..z76\1\0
+ ..controls z76\1\1c1 and z76\1\1c2..z76\1\1
+ ..controls z76\1\2c1 and z76\1\2c2..z76\1\2
+ ..controls z76\1\3c1 and z76\1\3c2..z76\1\3
+ ..controls z76\1\4c1 and z76\1\4c2..cycle;
+ fill_or_unfill z76\2\0s
+ --z76\2\0
+ ..controls z76\2\1c1 and z76\2\1c2..z76\2\1
+ --z76\2\2
+ --cycle;
+ proof_labels (
+ 76\0\0,
+ 76\0\1,
+ 76\0\2,
+ 76\0\3,
+ 76\0\4,
+ 76\0\5,
+ 76\0\6,
+ 76\0\7,
+ 76\0\8,
+ 76\0\9,
+ 76\0\10,
+ 76\0\11,
+ 76\0\12,
+ 76\0\13,
+ 76\0\14,
+ 76\0\15,
+ 76\0\16,
+ 76\1\0,
+ 76\1\1,
+ 76\1\2,
+ 76\1\3,
+ 76\1\4,
+ 76\2\0,
+ 76\2\1,
+ 76\2\2,
+ 76\2\3,
+);
+endchar;
+
+beginchar (188, 9.154u#, 6.504u#, 7.468u#);
+ "hwa";
+ z77\0\0s = (0.482u,1.204u);
+ z77\0\0c1 = (1.902u,1.322u);
+ z77\0\0c2 = (2.907u,1.212u);
+ z77\0\0 = (4.005u,0.200u);
+ z77\0\1c1 = (4.550u,-0.302u);
+ z77\0\1c2 = (4.570u,-0.471u);
+ z77\0\1 = (5.300u,-0.723u);
+ z77\0\2 = (5.078u,-0.000u);
+ z77\0\3c1 = (4.918u,0.413u);
+ z77\0\3c2 = (4.338u,1.323u);
+ z77\0\3 = (4.477u,1.734u);
+ z77\0\4c1 = (4.563u,1.988u);
+ z77\0\4c2 = (4.845u,2.153u);
+ z77\0\4 = (5.085u,2.230u);
+ z77\0\5c1 = (6.267u,2.608u);
+ z77\0\5c2 = (7.545u,1.291u);
+ z77\0\5 = (7.822u,0.241u);
+ z77\0\6c1 = (7.962u,-0.287u);
+ z77\0\6c2 = (7.859u,-0.701u);
+ z77\0\6 = (7.698u,-1.204u);
+ z77\0\7c1 = (7.516u,-1.773u);
+ z77\0\7c2 = (7.279u,-2.386u);
+ z77\0\7 = (6.884u,-2.841u);
+ z77\0\8c1 = (6.451u,-3.339u);
+ z77\0\8c2 = (5.843u,-3.662u);
+ z77\0\8 = (5.300u,-4.022u);
+ z77\0\9 = (3.613u,-5.300u);
+ z77\0\10c1 = (4.669u,-6.542u);
+ z77\0\10c2 = (5.845u,-7.137u);
+ z77\0\10 = (7.492u,-7.227u);
+ z77\0\11 = (7.492u,-5.059u);
+ z77\0\12c1 = (7.469u,-4.596u);
+ z77\0\12c2 = (7.436u,-4.088u);
+ z77\0\12 = (7.492u,-3.635u);
+ z77\0\13 = (8.336u,-1.918u);
+ z77\0\14c1 = (8.705u,-0.945u);
+ z77\0\14c2 = (8.679u,-0.054u);
+ z77\0\14 = (8.672u,0.964u);
+ z77\0\15c1 = (8.669u,1.495u);
+ z77\0\15c2 = (8.699u,2.143u);
+ z77\0\15 = (8.426u,2.618u);
+ z77\0\16c1 = (7.804u,3.699u);
+ z77\0\16c2 = (5.359u,3.966u);
+ z77\0\16 = (4.438u,3.195u);
+ z77\0\17c1 = (4.090u,2.904u);
+ z77\0\17c2 = (4.000u,2.571u);
+ z77\0\17 = (3.854u,2.168u);
+ z77\0\18 = (1.445u,3.132u);
+ z77\0\19c1 = (1.943u,3.773u);
+ z77\0\19c2 = (2.389u,4.332u);
+ z77\0\19 = (3.132u,4.709u);
+ z77\0\20c1 = (3.521u,4.905u);
+ z77\0\20c2 = (3.907u,4.991u);
+ z77\0\20 = (4.336u,5.034u);
+ z77\0\21c1 = (5.101u,5.110u);
+ z77\0\21c2 = (7.237u,4.854u);
+ z77\0\21 = (7.698u,5.467u);
+ z77\0\22c1 = (8.194u,6.126u);
+ z77\0\22c2 = (7.197u,6.426u);
+ z77\0\22 = (6.741u,6.419u);
+ z77\0\23c1 = (6.080u,6.555u);
+ z77\0\23c2 = (2.684u,6.563u);
+ z77\0\23 = (2.182u,6.419u);
+ z77\0\24c1 = (1.859u,6.230u);
+ z77\0\24c2 = (1.631u,6.055u);
+ z77\0\24 = (1.459u,5.746u);
+ z77\0\25c1 = (1.196u,5.274u);
+ z77\0\25c2 = (1.302u,4.621u);
+ z77\0\25 = (1.187u,4.095u);
+ z77\0\26 = (0.628u,2.409u);
+ z77\0\27c1 = (0.524u,2.003u);
+ z77\0\27c2 = (0.505u,1.619u);
+ z77\1\0s = (6.986u,-3.613u);
+ z77\1\0 = (6.986u,-6.986u);
+ z77\1\1c1 = (6.100u,-6.585u);
+ z77\1\1c2 = (5.371u,-6.097u);
+ z77\1\1 = (4.577u,-5.541u);
+ z77\1\2 = (4.577u,-5.059u);
+ fill_or_unfill z77\0\0s
+ ..controls z77\0\0c1 and z77\0\0c2..z77\0\0
+ ..controls z77\0\1c1 and z77\0\1c2..z77\0\1
+ --z77\0\2
+ ..controls z77\0\3c1 and z77\0\3c2..z77\0\3
+ ..controls z77\0\4c1 and z77\0\4c2..z77\0\4
+ ..controls z77\0\5c1 and z77\0\5c2..z77\0\5
+ ..controls z77\0\6c1 and z77\0\6c2..z77\0\6
+ ..controls z77\0\7c1 and z77\0\7c2..z77\0\7
+ ..controls z77\0\8c1 and z77\0\8c2..z77\0\8
+ --z77\0\9
+ ..controls z77\0\10c1 and z77\0\10c2..z77\0\10
+ --z77\0\11
+ ..controls z77\0\12c1 and z77\0\12c2..z77\0\12
+ --z77\0\13
+ ..controls z77\0\14c1 and z77\0\14c2..z77\0\14
+ ..controls z77\0\15c1 and z77\0\15c2..z77\0\15
+ ..controls z77\0\16c1 and z77\0\16c2..z77\0\16
+ ..controls z77\0\17c1 and z77\0\17c2..z77\0\17
+ --z77\0\18
+ ..controls z77\0\19c1 and z77\0\19c2..z77\0\19
+ ..controls z77\0\20c1 and z77\0\20c2..z77\0\20
+ ..controls z77\0\21c1 and z77\0\21c2..z77\0\21
+ ..controls z77\0\22c1 and z77\0\22c2..z77\0\22
+ ..controls z77\0\23c1 and z77\0\23c2..z77\0\23
+ ..controls z77\0\24c1 and z77\0\24c2..z77\0\24
+ ..controls z77\0\25c1 and z77\0\25c2..z77\0\25
+ --z77\0\26
+ ..controls z77\0\27c1 and z77\0\27c2..cycle;
+ fill_or_unfill z77\1\0s
+ --z77\1\0
+ ..controls z77\1\1c1 and z77\1\1c2..z77\1\1
+ --z77\1\2
+ --cycle;
+ proof_labels (
+ 77\0\0,
+ 77\0\1,
+ 77\0\2,
+ 77\0\3,
+ 77\0\4,
+ 77\0\5,
+ 77\0\6,
+ 77\0\7,
+ 77\0\8,
+ 77\0\9,
+ 77\0\10,
+ 77\0\11,
+ 77\0\12,
+ 77\0\13,
+ 77\0\14,
+ 77\0\15,
+ 77\0\16,
+ 77\0\17,
+ 77\0\18,
+ 77\0\19,
+ 77\0\20,
+ 77\0\21,
+ 77\0\22,
+ 77\0\23,
+ 77\0\24,
+ 77\0\25,
+ 77\0\26,
+ 77\0\27,
+ 77\1\0,
+ 77\1\1,
+ 77\1\2,
+ 77\1\3,
+);
+endchar;
+
+beginchar (190, 10.600u#, 6.745u#, 11.081u#);
+ "phywa";
+ z78\0\0s = (1.445u,5.300u);
+ z78\0\0 = (2.650u,5.059u);
+ z78\0\1c1 = (1.933u,3.404u);
+ z78\0\1c2 = (1.132u,2.349u);
+ z78\0\1 = (0.964u,0.482u);
+ z78\0\2c1 = (1.932u,0.658u);
+ z78\0\2c2 = (2.864u,0.866u);
+ z78\0\2 = (3.854u,0.749u);
+ z78\0\3c1 = (4.613u,0.659u);
+ z78\0\3c2 = (5.557u,0.527u);
+ z78\0\3 = (6.263u,0.241u);
+ z78\0\4c1 = (6.777u,0.033u);
+ z78\0\4c2 = (7.262u,-0.290u);
+ z78\0\4 = (7.686u,-0.645u);
+ z78\0\5c1 = (9.166u,-1.886u);
+ z78\0\5c2 = (8.504u,-2.579u);
+ z78\0\5 = (6.986u,-3.215u);
+ z78\0\6c1 = (5.682u,-3.868u);
+ z78\0\6c2 = (4.216u,-3.487u);
+ z78\0\6 = (2.891u,-3.215u);
+ z78\0\7c1 = (1.880u,-2.905u);
+ z78\0\7c2 = (1.550u,-2.683u);
+ z78\0\7 = (0.482u,-2.891u);
+ z78\0\8c1 = (1.062u,-3.661u);
+ z78\0\8c2 = (1.658u,-4.111u);
+ z78\0\8 = (2.409u,-4.699u);
+ z78\0\9c1 = (2.940u,-5.115u);
+ z78\0\9c2 = (3.451u,-5.644u);
+ z78\0\9 = (4.095u,-5.878u);
+ z78\0\10c1 = (4.461u,-6.011u);
+ z78\0\10c2 = (4.913u,-6.022u);
+ z78\0\10 = (5.300u,-6.018u);
+ z78\0\11c1 = (7.296u,-5.996u);
+ z78\0\11c2 = (8.992u,-4.689u);
+ z78\0\11 = (10.118u,-3.132u);
+ z78\0\12c1 = (9.774u,-3.204u);
+ z78\0\12c2 = (9.480u,-3.256u);
+ z78\0\12 = (9.154u,-3.404u);
+ z78\0\13c1 = (7.786u,-4.024u);
+ z78\0\13c2 = (6.468u,-5.308u);
+ z78\0\13 = (4.818u,-4.894u);
+ z78\0\14 = (2.891u,-4.084u);
+ z78\0\15c1 = (3.933u,-3.822u);
+ z78\0\15c2 = (4.290u,-4.016u);
+ z78\0\15 = (5.300u,-4.084u);
+ z78\0\16c1 = (6.066u,-4.116u);
+ z78\0\16c2 = (7.005u,-4.017u);
+ z78\0\16 = (7.709u,-3.698u);
+ z78\0\17c1 = (8.382u,-3.393u);
+ z78\0\17c2 = (8.987u,-2.874u);
+ z78\0\17 = (9.251u,-2.167u);
+ z78\0\18c1 = (9.581u,-1.283u);
+ z78\0\18c2 = (9.271u,2.325u);
+ z78\0\18 = (9.440u,3.613u);
+ z78\0\19 = (10.061u,5.541u);
+ z78\0\20c1 = (10.101u,5.944u);
+ z78\0\20c2 = (10.105u,6.334u);
+ z78\0\20 = (10.061u,6.745u);
+ z78\0\21c1 = (9.406u,6.745u);
+ z78\0\21c2 = (7.125u,6.985u);
+ z78\0\21 = (7.625u,5.607u);
+ z78\0\22c1 = (7.740u,5.289u);
+ z78\0\22c2 = (7.941u,5.227u);
+ z78\0\22 = (8.190u,5.059u);
+ z78\0\23c1 = (7.355u,4.467u);
+ z78\0\23c2 = (5.180u,2.814u);
+ z78\0\23 = (4.336u,2.544u);
+ z78\0\24c1 = (3.752u,2.357u);
+ z78\0\24c2 = (3.020u,2.410u);
+ z78\0\24 = (2.409u,2.409u);
+ z78\0\25c1 = (3.391u,5.316u);
+ z78\0\25c2 = (5.237u,4.968u);
+ z78\0\25 = (5.776u,5.681u);
+ z78\0\26c1 = (6.009u,5.989u);
+ z78\0\26c2 = (5.992u,6.383u);
+ z78\0\26 = (6.022u,6.745u);
+ z78\0\27c1 = (5.118u,6.745u);
+ z78\0\27c2 = (2.466u,6.972u);
+ z78\0\27 = (1.864u,6.360u);
+ z78\0\28c1 = (1.569u,6.061u);
+ z78\0\28c2 = (1.530u,5.685u);
+ z78\1\0s = (8.913u,-0.482u);
+ z78\1\0c1 = (7.691u,0.336u);
+ z78\1\0c2 = (6.631u,1.275u);
+ z78\1\0 = (5.300u,1.927u);
+ z78\1\1 = (5.300u,2.409u);
+ z78\1\2c1 = (5.886u,2.776u);
+ z78\1\2c2 = (7.101u,3.711u);
+ z78\1\2 = (7.695u,3.858u);
+ z78\1\3c1 = (7.985u,3.930u);
+ z78\1\3c2 = (8.213u,3.928u);
+ z78\1\3 = (8.430u,3.697u);
+ z78\1\4c1 = (8.980u,3.112u);
+ z78\1\4c2 = (8.913u,0.365u);
+ z78\2\0s = (2.650u,-8.913u);
+ z78\2\0c1 = (3.705u,-10.156u);
+ z78\2\0c2 = (4.881u,-10.750u);
+ z78\2\0 = (6.504u,-10.840u);
+ z78\2\1 = (6.504u,-6.504u);
+ z78\2\2c1 = (5.067u,-7.035u);
+ z78\2\2c2 = (3.813u,-7.929u);
+ z78\3\0s = (6.022u,-7.227u);
+ z78\3\0 = (6.022u,-10.600u);
+ z78\3\1c1 = (5.136u,-10.198u);
+ z78\3\1c2 = (4.408u,-9.711u);
+ z78\3\1 = (3.613u,-9.154u);
+ z78\3\2 = (3.613u,-8.672u);
+ fill_or_unfill z78\0\0s
+ --z78\0\0
+ ..controls z78\0\1c1 and z78\0\1c2..z78\0\1
+ ..controls z78\0\2c1 and z78\0\2c2..z78\0\2
+ ..controls z78\0\3c1 and z78\0\3c2..z78\0\3
+ ..controls z78\0\4c1 and z78\0\4c2..z78\0\4
+ ..controls z78\0\5c1 and z78\0\5c2..z78\0\5
+ ..controls z78\0\6c1 and z78\0\6c2..z78\0\6
+ ..controls z78\0\7c1 and z78\0\7c2..z78\0\7
+ ..controls z78\0\8c1 and z78\0\8c2..z78\0\8
+ ..controls z78\0\9c1 and z78\0\9c2..z78\0\9
+ ..controls z78\0\10c1 and z78\0\10c2..z78\0\10
+ ..controls z78\0\11c1 and z78\0\11c2..z78\0\11
+ ..controls z78\0\12c1 and z78\0\12c2..z78\0\12
+ ..controls z78\0\13c1 and z78\0\13c2..z78\0\13
+ --z78\0\14
+ ..controls z78\0\15c1 and z78\0\15c2..z78\0\15
+ ..controls z78\0\16c1 and z78\0\16c2..z78\0\16
+ ..controls z78\0\17c1 and z78\0\17c2..z78\0\17
+ ..controls z78\0\18c1 and z78\0\18c2..z78\0\18
+ --z78\0\19
+ ..controls z78\0\20c1 and z78\0\20c2..z78\0\20
+ ..controls z78\0\21c1 and z78\0\21c2..z78\0\21
+ ..controls z78\0\22c1 and z78\0\22c2..z78\0\22
+ ..controls z78\0\23c1 and z78\0\23c2..z78\0\23
+ ..controls z78\0\24c1 and z78\0\24c2..z78\0\24
+ ..controls z78\0\25c1 and z78\0\25c2..z78\0\25
+ ..controls z78\0\26c1 and z78\0\26c2..z78\0\26
+ ..controls z78\0\27c1 and z78\0\27c2..z78\0\27
+ ..controls z78\0\28c1 and z78\0\28c2..cycle;
+ fill_or_unfill z78\1\0s
+ ..controls z78\1\0c1 and z78\1\0c2..z78\1\0
+ --z78\1\1
+ ..controls z78\1\2c1 and z78\1\2c2..z78\1\2
+ ..controls z78\1\3c1 and z78\1\3c2..z78\1\3
+ ..controls z78\1\4c1 and z78\1\4c2..cycle;
+ fill_or_unfill z78\2\0s
+ ..controls z78\2\0c1 and z78\2\0c2..z78\2\0
+ --z78\2\1
+ ..controls z78\2\2c1 and z78\2\2c2..cycle;
+ fill_or_unfill z78\3\0s
+ --z78\3\0
+ ..controls z78\3\1c1 and z78\3\1c2..z78\3\1
+ --z78\3\2
+ --cycle;
+ proof_labels (
+ 78\0\0,
+ 78\0\1,
+ 78\0\2,
+ 78\0\3,
+ 78\0\4,
+ 78\0\5,
+ 78\0\6,
+ 78\0\7,
+ 78\0\8,
+ 78\0\9,
+ 78\0\10,
+ 78\0\11,
+ 78\0\12,
+ 78\0\13,
+ 78\0\14,
+ 78\0\15,
+ 78\0\16,
+ 78\0\17,
+ 78\0\18,
+ 78\0\19,
+ 78\0\20,
+ 78\0\21,
+ 78\0\22,
+ 78\0\23,
+ 78\0\24,
+ 78\0\25,
+ 78\0\26,
+ 78\0\27,
+ 78\0\28,
+ 78\1\0,
+ 78\1\1,
+ 78\1\2,
+ 78\1\3,
+ 78\1\4,
+ 78\2\0,
+ 78\2\1,
+ 78\2\2,
+ 78\3\0,
+ 78\3\1,
+ 78\3\2,
+ 78\3\3,
+);
+endchar;
+
+beginchar (191, 8.913u#, 6.745u#, 6.022u#);
+ "cwa";
+ z79\0\0s = (1.927u,6.022u);
+ z79\0\0 = (1.927u,5.541u);
+ z79\0\1 = (2.650u,5.354u);
+ z79\0\2c1 = (3.166u,5.271u);
+ z79\0\2c2 = (4.072u,5.364u);
+ z79\0\2 = (4.488u,5.054u);
+ z79\0\3c1 = (5.232u,4.499u);
+ z79\0\3c2 = (4.370u,3.734u);
+ z79\0\3 = (3.850u,3.407u);
+ z79\0\4c1 = (2.802u,2.856u);
+ z79\0\4c2 = (1.589u,3.172u);
+ z79\0\4 = (0.482u,3.407u);
+ z79\0\5 = (1.350u,1.897u);
+ z79\0\6c1 = (1.758u,1.085u);
+ z79\0\6c2 = (1.800u,0.080u);
+ z79\0\6 = (2.509u,-0.566u);
+ z79\0\7c1 = (2.759u,-0.794u);
+ z79\0\7c2 = (3.057u,-0.945u);
+ z79\0\7 = (3.376u,-1.037u);
+ z79\0\8c1 = (4.055u,-1.267u);
+ z79\0\8c2 = (6.325u,-1.286u);
+ z79\0\8 = (6.982u,-1.037u);
+ z79\0\9c1 = (7.489u,-0.827u);
+ z79\0\9c2 = (7.894u,-0.472u);
+ z79\0\9 = (8.148u,0.010u);
+ z79\0\10c1 = (9.396u,2.374u);
+ z79\0\10c2 = (5.677u,3.471u);
+ z79\0\10 = (6.103u,4.742u);
+ z79\0\11c1 = (6.323u,5.396u);
+ z79\0\11c2 = (7.521u,5.190u);
+ z79\0\11 = (8.060u,5.682u);
+ z79\0\12c1 = (8.260u,5.865u);
+ z79\0\12c2 = (8.307u,6.043u);
+ z79\0\12 = (8.431u,6.263u);
+ z79\0\13c1 = (8.028u,6.431u);
+ z79\0\13c2 = (7.661u,6.586u);
+ z79\0\13 = (7.227u,6.642u);
+ z79\0\14c1 = (6.480u,6.802u);
+ z79\0\14c2 = (4.104u,6.791u);
+ z79\0\14 = (3.372u,6.642u);
+ z79\0\15c1 = (2.849u,6.493u);
+ z79\0\15c2 = (2.402u,6.264u);
+ z79\1\0s = (2.650u,2.409u);
+ z79\1\0c1 = (3.125u,2.563u);
+ z79\1\0c2 = (3.830u,2.833u);
+ z79\1\0 = (4.327u,2.772u);
+ z79\1\1c1 = (5.181u,2.668u);
+ z79\1\1c2 = (6.916u,0.921u);
+ z79\1\1 = (6.770u,0.032u);
+ z79\1\2c1 = (6.601u,-0.994u);
+ z79\1\2c2 = (5.087u,-0.926u);
+ z79\1\2 = (4.429u,-0.460u);
+ z79\1\3c1 = (4.071u,-0.206u);
+ z79\1\3c2 = (3.888u,0.121u);
+ z79\1\3 = (3.676u,0.492u);
+ z79\2\0s = (2.168u,-3.854u);
+ z79\2\0c1 = (3.223u,-5.097u);
+ z79\2\0c2 = (4.400u,-5.691u);
+ z79\2\0 = (6.022u,-5.782u);
+ z79\2\1 = (6.022u,-1.445u);
+ z79\2\2c1 = (4.585u,-1.976u);
+ z79\2\2c2 = (3.332u,-2.870u);
+ z79\3\0s = (5.541u,-2.168u);
+ z79\3\0 = (5.541u,-5.541u);
+ z79\3\1c1 = (4.654u,-5.139u);
+ z79\3\1c2 = (3.926u,-4.652u);
+ z79\3\1 = (3.132u,-4.095u);
+ z79\3\2 = (3.132u,-3.613u);
+ fill_or_unfill z79\0\0s
+ --z79\0\0
+ --z79\0\1
+ ..controls z79\0\2c1 and z79\0\2c2..z79\0\2
+ ..controls z79\0\3c1 and z79\0\3c2..z79\0\3
+ ..controls z79\0\4c1 and z79\0\4c2..z79\0\4
+ --z79\0\5
+ ..controls z79\0\6c1 and z79\0\6c2..z79\0\6
+ ..controls z79\0\7c1 and z79\0\7c2..z79\0\7
+ ..controls z79\0\8c1 and z79\0\8c2..z79\0\8
+ ..controls z79\0\9c1 and z79\0\9c2..z79\0\9
+ ..controls z79\0\10c1 and z79\0\10c2..z79\0\10
+ ..controls z79\0\11c1 and z79\0\11c2..z79\0\11
+ ..controls z79\0\12c1 and z79\0\12c2..z79\0\12
+ ..controls z79\0\13c1 and z79\0\13c2..z79\0\13
+ ..controls z79\0\14c1 and z79\0\14c2..z79\0\14
+ ..controls z79\0\15c1 and z79\0\15c2..cycle;
+ fill_or_unfill z79\1\0s
+ ..controls z79\1\0c1 and z79\1\0c2..z79\1\0
+ ..controls z79\1\1c1 and z79\1\1c2..z79\1\1
+ ..controls z79\1\2c1 and z79\1\2c2..z79\1\2
+ ..controls z79\1\3c1 and z79\1\3c2..z79\1\3
+ --cycle;
+ fill_or_unfill z79\2\0s
+ ..controls z79\2\0c1 and z79\2\0c2..z79\2\0
+ --z79\2\1
+ ..controls z79\2\2c1 and z79\2\2c2..cycle;
+ fill_or_unfill z79\3\0s
+ --z79\3\0
+ ..controls z79\3\1c1 and z79\3\1c2..z79\3\1
+ --z79\3\2
+ --cycle;
+ proof_labels (
+ 79\0\0,
+ 79\0\1,
+ 79\0\2,
+ 79\0\3,
+ 79\0\4,
+ 79\0\5,
+ 79\0\6,
+ 79\0\7,
+ 79\0\8,
+ 79\0\9,
+ 79\0\10,
+ 79\0\11,
+ 79\0\12,
+ 79\0\13,
+ 79\0\14,
+ 79\0\15,
+ 79\1\0,
+ 79\1\1,
+ 79\1\2,
+ 79\1\3,
+ 79\1\4,
+ 79\2\0,
+ 79\2\1,
+ 79\2\2,
+ 79\3\0,
+ 79\3\1,
+ 79\3\2,
+ 79\3\3,
+);
+endchar;
+
+beginchar (192, 10.118u#, 6.745u#, 7.227u#);
+ "kya";
+ z80\0\0s = (0.964u,0.964u);
+ z80\0\0 = (1.445u,0.964u);
+ z80\0\1c1 = (1.455u,2.013u);
+ z80\0\1c2 = (1.519u,4.262u);
+ z80\0\1 = (2.462u,4.960u);
+ z80\0\2c1 = (2.733u,5.084u);
+ z80\0\2c2 = (3.009u,5.151u);
+ z80\0\2 = (3.319u,4.960u);
+ z80\0\3c1 = (4.401u,4.555u);
+ z80\0\3c2 = (4.574u,0.613u);
+ z80\0\3 = (4.577u,-0.482u);
+ z80\0\4c1 = (4.719u,-0.289u);
+ z80\0\4c2 = (4.838u,-0.184u);
+ z80\0\4 = (4.928u,0.054u);
+ z80\0\5c1 = (5.094u,0.493u);
+ z80\0\5c2 = (5.050u,1.210u);
+ z80\0\5 = (5.062u,1.686u);
+ z80\0\6c1 = (5.083u,2.475u);
+ z80\0\6c2 = (5.167u,4.572u);
+ z80\0\6 = (5.857u,5.016u);
+ z80\0\7c1 = (6.179u,5.222u);
+ z80\0\7c2 = (6.615u,5.264u);
+ z80\0\7 = (6.976u,5.145u);
+ z80\0\8c1 = (8.430u,4.667u);
+ z80\0\8c2 = (8.349u,2.430u);
+ z80\0\8 = (8.472u,1.204u);
+ z80\0\9c1 = (8.600u,-0.080u);
+ z80\0\9c2 = (8.966u,-1.472u);
+ z80\0\9 = (8.217u,-2.646u);
+ z80\0\10c1 = (7.134u,-4.344u);
+ z80\0\10c2 = (4.964u,-4.563u);
+ z80\0\10 = (3.132u,-4.258u);
+ z80\0\11c1 = (2.091u,-4.085u);
+ z80\0\11c2 = (1.599u,-3.710u);
+ z80\0\11 = (0.482u,-3.854u);
+ z80\0\12c1 = (1.160u,-4.554u);
+ z80\0\12c2 = (3.483u,-6.360u);
+ z80\0\12 = (4.336u,-6.725u);
+ z80\0\13c1 = (5.730u,-7.320u);
+ z80\0\13c2 = (8.585u,-6.890u);
+ z80\0\13 = (9.390u,-5.496u);
+ z80\0\14c1 = (9.603u,-5.127u);
+ z80\0\14c2 = (9.603u,-4.745u);
+ z80\0\14 = (9.636u,-4.336u);
+ z80\0\15 = (7.906u,-5.496u);
+ z80\0\16c1 = (5.538u,-6.720u);
+ z80\0\16c2 = (4.519u,-5.353u);
+ z80\0\16 = (2.409u,-4.813u);
+ z80\0\17c1 = (3.192u,-4.659u);
+ z80\0\17c2 = (3.794u,-4.779u);
+ z80\0\17 = (4.577u,-4.813u);
+ z80\0\18c1 = (5.669u,-4.849u);
+ z80\0\18c2 = (7.214u,-4.663u);
+ z80\0\18 = (8.137u,-4.041u);
+ z80\0\19c1 = (8.590u,-3.736u);
+ z80\0\19c2 = (8.794u,-3.399u);
+ z80\0\19 = (8.961u,-2.886u);
+ z80\0\20c1 = (9.312u,-1.809u);
+ z80\0\20c2 = (9.133u,1.775u);
+ z80\0\20 = (9.186u,3.132u);
+ z80\0\21 = (9.186u,4.095u);
+ z80\0\22c1 = (9.322u,4.742u);
+ z80\0\22c2 = (9.840u,5.770u);
+ z80\0\22 = (9.389u,6.360u);
+ z80\0\23c1 = (9.024u,6.836u);
+ z80\0\23c2 = (8.010u,6.744u);
+ z80\0\23 = (7.468u,6.745u);
+ z80\0\24c1 = (6.497u,6.747u);
+ z80\0\24c2 = (1.884u,6.922u);
+ z80\0\24 = (1.349u,6.499u);
+ z80\0\25c1 = (0.940u,6.175u);
+ z80\0\25c2 = (0.973u,5.528u);
+ z80\0\25 = (0.964u,5.059u);
+ fill_or_unfill z80\0\0s
+ --z80\0\0
+ ..controls z80\0\1c1 and z80\0\1c2..z80\0\1
+ ..controls z80\0\2c1 and z80\0\2c2..z80\0\2
+ ..controls z80\0\3c1 and z80\0\3c2..z80\0\3
+ ..controls z80\0\4c1 and z80\0\4c2..z80\0\4
+ ..controls z80\0\5c1 and z80\0\5c2..z80\0\5
+ ..controls z80\0\6c1 and z80\0\6c2..z80\0\6
+ ..controls z80\0\7c1 and z80\0\7c2..z80\0\7
+ ..controls z80\0\8c1 and z80\0\8c2..z80\0\8
+ ..controls z80\0\9c1 and z80\0\9c2..z80\0\9
+ ..controls z80\0\10c1 and z80\0\10c2..z80\0\10
+ ..controls z80\0\11c1 and z80\0\11c2..z80\0\11
+ ..controls z80\0\12c1 and z80\0\12c2..z80\0\12
+ ..controls z80\0\13c1 and z80\0\13c2..z80\0\13
+ ..controls z80\0\14c1 and z80\0\14c2..z80\0\14
+ --z80\0\15
+ ..controls z80\0\16c1 and z80\0\16c2..z80\0\16
+ ..controls z80\0\17c1 and z80\0\17c2..z80\0\17
+ ..controls z80\0\18c1 and z80\0\18c2..z80\0\18
+ ..controls z80\0\19c1 and z80\0\19c2..z80\0\19
+ ..controls z80\0\20c1 and z80\0\20c2..z80\0\20
+ --z80\0\21
+ ..controls z80\0\22c1 and z80\0\22c2..z80\0\22
+ ..controls z80\0\23c1 and z80\0\23c2..z80\0\23
+ ..controls z80\0\24c1 and z80\0\24c2..z80\0\24
+ ..controls z80\0\25c1 and z80\0\25c2..z80\0\25
+ --cycle;
+ proof_labels (
+ 80\0\0,
+ 80\0\1,
+ 80\0\2,
+ 80\0\3,
+ 80\0\4,
+ 80\0\5,
+ 80\0\6,
+ 80\0\7,
+ 80\0\8,
+ 80\0\9,
+ 80\0\10,
+ 80\0\11,
+ 80\0\12,
+ 80\0\13,
+ 80\0\14,
+ 80\0\15,
+ 80\0\16,
+ 80\0\17,
+ 80\0\18,
+ 80\0\19,
+ 80\0\20,
+ 80\0\21,
+ 80\0\22,
+ 80\0\23,
+ 80\0\24,
+ 80\0\25,
+ 80\0\26,
+);
+endchar;
+
+beginchar (193, 10.359u#, 6.745u#, 6.263u#);
+ "khya";
+ z81\0\0s = (0.722u,-5.782u);
+ z81\0\0 = (1.204u,-5.782u);
+ z81\0\1 = (1.445u,-2.891u);
+ z81\0\2 = (1.445u,-0.964u);
+ z81\0\3 = (1.676u,0.723u);
+ z81\0\4 = (1.676u,3.132u);
+ z81\0\5c1 = (1.698u,3.690u);
+ z81\0\5c2 = (1.689u,4.289u);
+ z81\0\5 = (2.071u,4.742u);
+ z81\0\6c1 = (2.620u,5.394u);
+ z81\0\6c2 = (3.570u,5.297u);
+ z81\0\6 = (4.336u,5.300u);
+ z81\0\7 = (3.970u,3.613u);
+ z81\0\8 = (3.499u,2.168u);
+ z81\0\9 = (3.372u,0.723u);
+ z81\0\10c1 = (4.560u,0.819u);
+ z81\0\10c2 = (5.802u,1.182u);
+ z81\0\10 = (6.986u,0.881u);
+ z81\0\11c1 = (7.511u,0.748u);
+ z81\0\11c2 = (8.003u,0.498u);
+ z81\0\11 = (8.418u,0.146u);
+ z81\0\12c1 = (10.372u,-1.511u);
+ z81\0\12c2 = (8.421u,-3.599u);
+ z81\0\12 = (6.504u,-3.959u);
+ z81\0\13c1 = (5.532u,-4.141u);
+ z81\0\13c2 = (3.549u,-3.666u);
+ z81\0\13 = (2.409u,-3.613u);
+ z81\0\14c1 = (2.839u,-4.306u);
+ z81\0\14c2 = (4.306u,-5.602u);
+ z81\0\14 = (5.059u,-5.878u);
+ z81\0\15c1 = (5.442u,-6.019u);
+ z81\0\15c2 = (5.861u,-6.014u);
+ z81\0\15 = (6.263u,-6.021u);
+ z81\0\16c1 = (8.140u,-6.055u);
+ z81\0\16c2 = (9.278u,-5.891u);
+ z81\0\16 = (9.877u,-3.854u);
+ z81\0\17c1 = (7.062u,-5.706u);
+ z81\0\17c2 = (6.885u,-5.639u);
+ z81\0\17 = (3.854u,-4.292u);
+ z81\0\18c1 = (5.396u,-4.188u);
+ z81\0\18c2 = (6.084u,-4.811u);
+ z81\0\18 = (7.705u,-4.292u);
+ z81\0\19c1 = (7.997u,-4.148u);
+ z81\0\19c2 = (8.330u,-4.021u);
+ z81\0\19 = (8.578u,-3.835u);
+ z81\0\20c1 = (9.170u,-3.390u);
+ z81\0\20c2 = (9.392u,-2.624u);
+ z81\0\20 = (9.612u,-1.927u);
+ z81\0\21c1 = (9.796u,-0.488u);
+ z81\0\21c2 = (9.634u,1.180u);
+ z81\0\21 = (9.612u,2.650u);
+ z81\0\22 = (9.612u,4.095u);
+ z81\0\23 = (9.842u,5.536u);
+ z81\0\24c1 = (9.837u,5.819u);
+ z81\0\24c2 = (9.812u,6.128u);
+ z81\0\24 = (9.630u,6.360u);
+ z81\0\25c1 = (9.256u,6.837u);
+ z81\0\25c2 = (8.258u,6.744u);
+ z81\0\25 = (7.709u,6.745u);
+ z81\0\26 = (2.650u,6.745u);
+ z81\0\27c1 = (2.105u,6.744u);
+ z81\0\27c2 = (1.097u,6.837u);
+ z81\0\27 = (0.729u,6.360u);
+ z81\0\28c1 = (0.593u,6.184u);
+ z81\0\28c2 = (0.558u,5.982u);
+ z81\0\28 = (0.596u,5.768u);
+ z81\0\29c1 = (0.501u,5.377u);
+ z81\0\29c2 = (0.609u,4.964u);
+ z81\0\29 = (0.596u,4.577u);
+ z81\0\30 = (0.722u,3.372u);
+ z81\1\0s = (9.395u,0.964u);
+ z81\1\0 = (6.745u,2.216u);
+ z81\1\1 = (4.095u,2.650u);
+ z81\1\2c1 = (4.353u,3.258u);
+ z81\1\2c2 = (4.718u,4.241u);
+ z81\1\2 = (5.178u,4.698u);
+ z81\1\3c1 = (5.920u,5.436u);
+ z81\1\3c2 = (7.948u,5.957u);
+ z81\1\3 = (8.670u,4.955u);
+ z81\1\4c1 = (9.035u,4.449u);
+ z81\1\4c2 = (9.335u,1.704u);
+ fill_or_unfill z81\0\0s
+ --z81\0\0
+ --z81\0\1
+ --z81\0\2
+ --z81\0\3
+ --z81\0\4
+ ..controls z81\0\5c1 and z81\0\5c2..z81\0\5
+ ..controls z81\0\6c1 and z81\0\6c2..z81\0\6
+ --z81\0\7
+ --z81\0\8
+ --z81\0\9
+ ..controls z81\0\10c1 and z81\0\10c2..z81\0\10
+ ..controls z81\0\11c1 and z81\0\11c2..z81\0\11
+ ..controls z81\0\12c1 and z81\0\12c2..z81\0\12
+ ..controls z81\0\13c1 and z81\0\13c2..z81\0\13
+ ..controls z81\0\14c1 and z81\0\14c2..z81\0\14
+ ..controls z81\0\15c1 and z81\0\15c2..z81\0\15
+ ..controls z81\0\16c1 and z81\0\16c2..z81\0\16
+ ..controls z81\0\17c1 and z81\0\17c2..z81\0\17
+ ..controls z81\0\18c1 and z81\0\18c2..z81\0\18
+ ..controls z81\0\19c1 and z81\0\19c2..z81\0\19
+ ..controls z81\0\20c1 and z81\0\20c2..z81\0\20
+ ..controls z81\0\21c1 and z81\0\21c2..z81\0\21
+ --z81\0\22
+ --z81\0\23
+ ..controls z81\0\24c1 and z81\0\24c2..z81\0\24
+ ..controls z81\0\25c1 and z81\0\25c2..z81\0\25
+ --z81\0\26
+ ..controls z81\0\27c1 and z81\0\27c2..z81\0\27
+ ..controls z81\0\28c1 and z81\0\28c2..z81\0\28
+ ..controls z81\0\29c1 and z81\0\29c2..z81\0\29
+ --z81\0\30
+ --cycle;
+ fill_or_unfill z81\1\0s
+ --z81\1\0
+ --z81\1\1
+ ..controls z81\1\2c1 and z81\1\2c2..z81\1\2
+ ..controls z81\1\3c1 and z81\1\3c2..z81\1\3
+ ..controls z81\1\4c1 and z81\1\4c2..cycle;
+ proof_labels (
+ 81\0\0,
+ 81\0\1,
+ 81\0\2,
+ 81\0\3,
+ 81\0\4,
+ 81\0\5,
+ 81\0\6,
+ 81\0\7,
+ 81\0\8,
+ 81\0\9,
+ 81\0\10,
+ 81\0\11,
+ 81\0\12,
+ 81\0\13,
+ 81\0\14,
+ 81\0\15,
+ 81\0\16,
+ 81\0\17,
+ 81\0\18,
+ 81\0\19,
+ 81\0\20,
+ 81\0\21,
+ 81\0\22,
+ 81\0\23,
+ 81\0\24,
+ 81\0\25,
+ 81\0\26,
+ 81\0\27,
+ 81\0\28,
+ 81\0\29,
+ 81\0\30,
+ 81\0\31,
+ 81\1\0,
+ 81\1\1,
+ 81\1\2,
+ 81\1\3,
+ 81\1\4,
+);
+endchar;
+
+beginchar (194, 10.600u#, 6.745u#, 6.745u#);
+ "gya";
+ z82\0\0s = (1.445u,4.818u);
+ z82\0\0c1 = (0.986u,3.570u);
+ z82\0\0c2 = (0.727u,2.268u);
+ z82\0\0 = (0.482u,0.964u);
+ z82\0\1 = (0.723u,0.723u);
+ z82\0\2c1 = (2.332u,1.085u);
+ z82\0\2c2 = (4.851u,1.815u);
+ z82\0\2 = (6.039u,0.159u);
+ z82\0\3c1 = (6.275u,-0.170u);
+ z82\0\3c2 = (6.379u,-0.585u);
+ z82\0\3 = (6.504u,-0.964u);
+ z82\0\4c1 = (6.912u,0.065u);
+ z82\0\4c2 = (6.743u,1.752u);
+ z82\0\4 = (6.745u,2.891u);
+ z82\0\5c1 = (6.747u,3.630u);
+ z82\0\5c2 = (6.618u,4.841u);
+ z82\0\5 = (7.502u,5.142u);
+ z82\0\6c1 = (7.962u,5.298u);
+ z82\0\6c2 = (8.403u,5.116u);
+ z82\0\6 = (8.688u,4.742u);
+ z82\0\7c1 = (9.341u,3.888u);
+ z82\0\7c2 = (9.860u,-1.369u);
+ z82\0\7 = (9.458u,-2.408u);
+ z82\0\8c1 = (8.566u,-4.713u);
+ z82\0\8c2 = (5.089u,-4.533u);
+ z82\0\8 = (3.132u,-4.035u);
+ z82\0\9 = (0.964u,-3.372u);
+ z82\0\10c1 = (1.313u,-4.350u);
+ z82\0\10c2 = (1.636u,-4.621u);
+ z82\0\10 = (2.413u,-5.299u);
+ z82\0\11c1 = (2.850u,-5.680u);
+ z82\0\11c2 = (3.311u,-6.079u);
+ z82\0\11 = (3.854u,-6.299u);
+ z82\0\12c1 = (4.260u,-6.462u);
+ z82\0\12c2 = (4.630u,-6.484u);
+ z82\0\12 = (5.059u,-6.500u);
+ z82\0\13c1 = (7.097u,-6.574u);
+ z82\0\13c2 = (8.438u,-5.900u);
+ z82\0\13 = (10.118u,-4.818u);
+ z82\0\14c1 = (9.402u,-4.640u);
+ z82\0\14c2 = (9.106u,-4.831u);
+ z82\0\14 = (8.431u,-5.081u);
+ z82\0\15c1 = (5.690u,-6.097u);
+ z82\0\15c2 = (4.773u,-6.327u);
+ z82\0\15 = (2.409u,-4.336u);
+ z82\0\16c1 = (3.367u,-4.590u);
+ z82\0\16c2 = (4.304u,-4.792u);
+ z82\0\16 = (5.300u,-4.814u);
+ z82\0\17c1 = (6.556u,-4.843u);
+ z82\0\17c2 = (9.088u,-4.688u);
+ z82\0\17 = (9.835u,-3.520u);
+ z82\0\18c1 = (10.126u,-3.065u);
+ z82\0\18c2 = (10.110u,-2.448u);
+ z82\0\18 = (10.117u,-1.927u);
+ z82\0\19 = (10.117u,4.577u);
+ z82\0\20c1 = (10.117u,5.130u);
+ z82\0\20c2 = (10.210u,6.121u);
+ z82\0\20 = (9.733u,6.499u);
+ z82\0\21c1 = (9.410u,6.754u);
+ z82\0\21c2 = (8.823u,6.737u);
+ z82\0\21 = (8.431u,6.744u);
+ z82\0\22c1 = (7.127u,6.768u);
+ z82\0\22c2 = (3.228u,6.879u);
+ z82\0\22 = (2.169u,6.617u);
+ z82\0\23c1 = (1.708u,6.503u);
+ z82\0\23c2 = (1.053u,6.259u);
+ z82\0\23 = (0.899u,5.754u);
+ z82\0\24c1 = (0.751u,5.268u);
+ z82\0\24c2 = (1.125u,5.062u);
+ z82\1\0s = (6.022u,1.445u);
+ z82\1\0 = (4.336u,2.307u);
+ z82\1\1c1 = (3.375u,2.773u);
+ z82\1\1c2 = (2.494u,2.868u);
+ z82\1\1 = (1.445u,2.891u);
+ z82\1\2c1 = (1.561u,3.436u);
+ z82\1\2c2 = (1.660u,3.862u);
+ z82\1\2 = (2.031u,4.305u);
+ z82\1\3c1 = (2.741u,5.153u);
+ z82\1\3c2 = (4.478u,5.768u);
+ z82\1\3 = (5.298u,4.742u);
+ z82\1\4c1 = (5.890u,4.003u);
+ z82\1\4c2 = (6.002u,2.372u);
+ fill_or_unfill z82\0\0s
+ ..controls z82\0\0c1 and z82\0\0c2..z82\0\0
+ --z82\0\1
+ ..controls z82\0\2c1 and z82\0\2c2..z82\0\2
+ ..controls z82\0\3c1 and z82\0\3c2..z82\0\3
+ ..controls z82\0\4c1 and z82\0\4c2..z82\0\4
+ ..controls z82\0\5c1 and z82\0\5c2..z82\0\5
+ ..controls z82\0\6c1 and z82\0\6c2..z82\0\6
+ ..controls z82\0\7c1 and z82\0\7c2..z82\0\7
+ ..controls z82\0\8c1 and z82\0\8c2..z82\0\8
+ --z82\0\9
+ ..controls z82\0\10c1 and z82\0\10c2..z82\0\10
+ ..controls z82\0\11c1 and z82\0\11c2..z82\0\11
+ ..controls z82\0\12c1 and z82\0\12c2..z82\0\12
+ ..controls z82\0\13c1 and z82\0\13c2..z82\0\13
+ ..controls z82\0\14c1 and z82\0\14c2..z82\0\14
+ ..controls z82\0\15c1 and z82\0\15c2..z82\0\15
+ ..controls z82\0\16c1 and z82\0\16c2..z82\0\16
+ ..controls z82\0\17c1 and z82\0\17c2..z82\0\17
+ ..controls z82\0\18c1 and z82\0\18c2..z82\0\18
+ --z82\0\19
+ ..controls z82\0\20c1 and z82\0\20c2..z82\0\20
+ ..controls z82\0\21c1 and z82\0\21c2..z82\0\21
+ ..controls z82\0\22c1 and z82\0\22c2..z82\0\22
+ ..controls z82\0\23c1 and z82\0\23c2..z82\0\23
+ ..controls z82\0\24c1 and z82\0\24c2..cycle;
+ fill_or_unfill z82\1\0s
+ --z82\1\0
+ ..controls z82\1\1c1 and z82\1\1c2..z82\1\1
+ ..controls z82\1\2c1 and z82\1\2c2..z82\1\2
+ ..controls z82\1\3c1 and z82\1\3c2..z82\1\3
+ ..controls z82\1\4c1 and z82\1\4c2..cycle;
+ proof_labels (
+ 82\0\0,
+ 82\0\1,
+ 82\0\2,
+ 82\0\3,
+ 82\0\4,
+ 82\0\5,
+ 82\0\6,
+ 82\0\7,
+ 82\0\8,
+ 82\0\9,
+ 82\0\10,
+ 82\0\11,
+ 82\0\12,
+ 82\0\13,
+ 82\0\14,
+ 82\0\15,
+ 82\0\16,
+ 82\0\17,
+ 82\0\18,
+ 82\0\19,
+ 82\0\20,
+ 82\0\21,
+ 82\0\22,
+ 82\0\23,
+ 82\0\24,
+ 82\1\0,
+ 82\1\1,
+ 82\1\2,
+ 82\1\3,
+ 82\1\4,
+);
+endchar;
+
+beginchar (195, 9.636u#, 6.745u#, 6.745u#);
+ "pya";
+ z83\0\0s = (0.723u,0.000u);
+ z83\0\0c1 = (1.593u,0.227u);
+ z83\0\0c2 = (2.461u,0.582u);
+ z83\0\0 = (3.372u,0.584u);
+ z83\0\1c1 = (3.955u,0.585u);
+ z83\0\1c2 = (4.962u,0.386u);
+ z83\0\1 = (5.500u,0.162u);
+ z83\0\2c1 = (6.368u,-0.198u);
+ z83\0\2c2 = (8.577u,-1.766u);
+ z83\0\2 = (8.150u,-2.847u);
+ z83\0\3c1 = (8.030u,-3.150u);
+ z83\0\3c2 = (7.710u,-3.403u);
+ z83\0\3 = (7.454u,-3.588u);
+ z83\0\4c1 = (6.896u,-3.989u);
+ z83\0\4c2 = (6.230u,-4.265u);
+ z83\0\4 = (5.541u,-4.302u);
+ z83\0\5c1 = (3.877u,-4.391u);
+ z83\0\5c2 = (2.316u,-3.429u);
+ z83\0\5 = (0.723u,-3.132u);
+ z83\0\6 = (0.994u,-3.788u);
+ z83\0\7c1 = (1.463u,-4.556u);
+ z83\0\7c2 = (3.007u,-5.975u);
+ z83\0\7 = (3.855u,-6.302u);
+ z83\0\8c1 = (5.050u,-6.762u);
+ z83\0\8c2 = (7.926u,-6.540u);
+ z83\0\8 = (8.769u,-5.474u);
+ z83\0\9c1 = (9.103u,-5.053u);
+ z83\0\9c2 = (9.113u,-4.603u);
+ z83\0\9 = (9.154u,-4.095u);
+ z83\0\10 = (7.227u,-5.246u);
+ z83\0\11c1 = (5.697u,-6.110u);
+ z83\0\11c2 = (4.338u,-5.781u);
+ z83\0\11 = (3.132u,-4.577u);
+ z83\0\12c1 = (4.705u,-5.231u);
+ z83\0\12c2 = (6.244u,-5.305u);
+ z83\0\12 = (7.704u,-4.310u);
+ z83\0\13c1 = (8.169u,-3.994u);
+ z83\0\13c2 = (8.561u,-3.661u);
+ z83\0\13 = (8.769u,-3.122u);
+ z83\0\14c1 = (8.928u,-2.711u);
+ z83\0\14c2 = (8.910u,-2.126u);
+ z83\0\14 = (8.914u,-1.686u);
+ z83\0\15 = (8.914u,3.613u);
+ z83\0\16 = (9.154u,6.745u);
+ z83\0\17c1 = (8.664u,6.739u);
+ z83\0\17c2 = (7.805u,6.809u);
+ z83\0\17 = (7.482u,6.360u);
+ z83\0\18c1 = (7.016u,5.713u);
+ z83\0\18c2 = (8.114u,2.345u);
+ z83\0\18 = (8.282u,1.445u);
+ z83\0\19c1 = (8.404u,0.797u);
+ z83\0\19c2 = (8.425u,0.175u);
+ z83\0\19 = (8.431u,-0.482u);
+ z83\0\20c1 = (7.481u,-0.040u);
+ z83\0\20c2 = (6.893u,0.707u);
+ z83\0\20 = (6.022u,1.252u);
+ z83\0\21c1 = (5.065u,1.852u);
+ z83\0\21c2 = (3.055u,2.449u);
+ z83\0\21 = (1.927u,2.650u);
+ z83\0\22c1 = (2.123u,3.215u);
+ z83\0\22c2 = (2.464u,4.282u);
+ z83\0\22 = (2.846u,4.714u);
+ z83\0\23c1 = (3.720u,5.701u);
+ z83\0\23c2 = (5.265u,4.928u);
+ z83\0\23 = (5.741u,5.843u);
+ z83\0\24c1 = (6.413u,7.135u);
+ z83\0\24c2 = (2.502u,6.830u);
+ z83\0\24 = (2.004u,6.500u);
+ z83\0\25c1 = (1.189u,5.959u);
+ z83\0\25c2 = (1.798u,5.262u);
+ z83\0\25 = (1.773u,4.556u);
+ z83\0\26c1 = (1.759u,4.157u);
+ z83\0\26c2 = (1.588u,3.745u);
+ z83\0\26 = (1.456u,3.372u);
+ z83\0\27c1 = (1.017u,2.133u);
+ z83\0\27c2 = (0.516u,1.356u);
+ fill_or_unfill z83\0\0s
+ ..controls z83\0\0c1 and z83\0\0c2..z83\0\0
+ ..controls z83\0\1c1 and z83\0\1c2..z83\0\1
+ ..controls z83\0\2c1 and z83\0\2c2..z83\0\2
+ ..controls z83\0\3c1 and z83\0\3c2..z83\0\3
+ ..controls z83\0\4c1 and z83\0\4c2..z83\0\4
+ ..controls z83\0\5c1 and z83\0\5c2..z83\0\5
+ --z83\0\6
+ ..controls z83\0\7c1 and z83\0\7c2..z83\0\7
+ ..controls z83\0\8c1 and z83\0\8c2..z83\0\8
+ ..controls z83\0\9c1 and z83\0\9c2..z83\0\9
+ --z83\0\10
+ ..controls z83\0\11c1 and z83\0\11c2..z83\0\11
+ ..controls z83\0\12c1 and z83\0\12c2..z83\0\12
+ ..controls z83\0\13c1 and z83\0\13c2..z83\0\13
+ ..controls z83\0\14c1 and z83\0\14c2..z83\0\14
+ --z83\0\15
+ --z83\0\16
+ ..controls z83\0\17c1 and z83\0\17c2..z83\0\17
+ ..controls z83\0\18c1 and z83\0\18c2..z83\0\18
+ ..controls z83\0\19c1 and z83\0\19c2..z83\0\19
+ ..controls z83\0\20c1 and z83\0\20c2..z83\0\20
+ ..controls z83\0\21c1 and z83\0\21c2..z83\0\21
+ ..controls z83\0\22c1 and z83\0\22c2..z83\0\22
+ ..controls z83\0\23c1 and z83\0\23c2..z83\0\23
+ ..controls z83\0\24c1 and z83\0\24c2..z83\0\24
+ ..controls z83\0\25c1 and z83\0\25c2..z83\0\25
+ ..controls z83\0\26c1 and z83\0\26c2..z83\0\26
+ ..controls z83\0\27c1 and z83\0\27c2..cycle;
+ proof_labels (
+ 83\0\0,
+ 83\0\1,
+ 83\0\2,
+ 83\0\3,
+ 83\0\4,
+ 83\0\5,
+ 83\0\6,
+ 83\0\7,
+ 83\0\8,
+ 83\0\9,
+ 83\0\10,
+ 83\0\11,
+ 83\0\12,
+ 83\0\13,
+ 83\0\14,
+ 83\0\15,
+ 83\0\16,
+ 83\0\17,
+ 83\0\18,
+ 83\0\19,
+ 83\0\20,
+ 83\0\21,
+ 83\0\22,
+ 83\0\23,
+ 83\0\24,
+ 83\0\25,
+ 83\0\26,
+ 83\0\27,
+);
+endchar;
+
+beginchar (189, 10.600u#, 6.745u#, 6.263u#);
+ "phya";
+ z84\0\0s = (1.445u,5.300u);
+ z84\0\0 = (2.650u,5.059u);
+ z84\0\1c1 = (1.933u,3.404u);
+ z84\0\1c2 = (1.132u,2.349u);
+ z84\0\1 = (0.964u,0.482u);
+ z84\0\2c1 = (1.932u,0.658u);
+ z84\0\2c2 = (2.864u,0.866u);
+ z84\0\2 = (3.854u,0.749u);
+ z84\0\3c1 = (4.613u,0.659u);
+ z84\0\3c2 = (5.557u,0.527u);
+ z84\0\3 = (6.263u,0.241u);
+ z84\0\4c1 = (6.777u,0.033u);
+ z84\0\4c2 = (7.262u,-0.290u);
+ z84\0\4 = (7.686u,-0.645u);
+ z84\0\5c1 = (9.166u,-1.886u);
+ z84\0\5c2 = (8.504u,-2.579u);
+ z84\0\5 = (6.986u,-3.215u);
+ z84\0\6c1 = (5.682u,-3.868u);
+ z84\0\6c2 = (4.216u,-3.487u);
+ z84\0\6 = (2.891u,-3.215u);
+ z84\0\7c1 = (1.880u,-2.905u);
+ z84\0\7c2 = (1.550u,-2.683u);
+ z84\0\7 = (0.482u,-2.891u);
+ z84\0\8c1 = (1.062u,-3.661u);
+ z84\0\8c2 = (1.658u,-4.111u);
+ z84\0\8 = (2.409u,-4.699u);
+ z84\0\9c1 = (2.940u,-5.115u);
+ z84\0\9c2 = (3.451u,-5.644u);
+ z84\0\9 = (4.095u,-5.878u);
+ z84\0\10c1 = (4.461u,-6.011u);
+ z84\0\10c2 = (4.913u,-6.022u);
+ z84\0\10 = (5.300u,-6.018u);
+ z84\0\11c1 = (7.296u,-5.996u);
+ z84\0\11c2 = (8.992u,-4.689u);
+ z84\0\11 = (10.118u,-3.132u);
+ z84\0\12c1 = (9.774u,-3.203u);
+ z84\0\12c2 = (9.481u,-3.258u);
+ z84\0\12 = (9.154u,-3.401u);
+ z84\0\13c1 = (7.891u,-3.954u);
+ z84\0\13c2 = (6.533u,-5.162u);
+ z84\0\13 = (5.059u,-4.943u);
+ z84\0\14c1 = (4.326u,-4.835u);
+ z84\0\14c2 = (3.592u,-4.352u);
+ z84\0\14 = (2.891u,-4.084u);
+ z84\0\15c1 = (3.933u,-3.822u);
+ z84\0\15c2 = (4.290u,-4.016u);
+ z84\0\15 = (5.300u,-4.084u);
+ z84\0\16c1 = (6.066u,-4.116u);
+ z84\0\16c2 = (7.005u,-4.017u);
+ z84\0\16 = (7.709u,-3.698u);
+ z84\0\17c1 = (8.382u,-3.393u);
+ z84\0\17c2 = (8.987u,-2.874u);
+ z84\0\17 = (9.251u,-2.167u);
+ z84\0\18c1 = (9.581u,-1.283u);
+ z84\0\18c2 = (9.271u,2.325u);
+ z84\0\18 = (9.440u,3.613u);
+ z84\0\19 = (10.061u,5.541u);
+ z84\0\20c1 = (10.101u,5.944u);
+ z84\0\20c2 = (10.105u,6.334u);
+ z84\0\20 = (10.061u,6.745u);
+ z84\0\21c1 = (9.406u,6.745u);
+ z84\0\21c2 = (7.125u,6.985u);
+ z84\0\21 = (7.625u,5.607u);
+ z84\0\22c1 = (7.740u,5.289u);
+ z84\0\22c2 = (7.941u,5.227u);
+ z84\0\22 = (8.190u,5.059u);
+ z84\0\23c1 = (7.355u,4.467u);
+ z84\0\23c2 = (5.180u,2.814u);
+ z84\0\23 = (4.336u,2.544u);
+ z84\0\24c1 = (3.752u,2.357u);
+ z84\0\24c2 = (3.020u,2.410u);
+ z84\0\24 = (2.409u,2.409u);
+ z84\0\25c1 = (3.391u,5.316u);
+ z84\0\25c2 = (5.237u,4.968u);
+ z84\0\25 = (5.776u,5.681u);
+ z84\0\26c1 = (6.009u,5.989u);
+ z84\0\26c2 = (5.992u,6.383u);
+ z84\0\26 = (6.022u,6.745u);
+ z84\0\27c1 = (5.118u,6.745u);
+ z84\0\27c2 = (2.466u,6.972u);
+ z84\0\27 = (1.864u,6.360u);
+ z84\0\28c1 = (1.569u,6.061u);
+ z84\0\28c2 = (1.530u,5.685u);
+ z84\1\0s = (8.913u,-0.482u);
+ z84\1\0c1 = (7.691u,0.336u);
+ z84\1\0c2 = (6.631u,1.275u);
+ z84\1\0 = (5.300u,1.927u);
+ z84\1\1 = (5.300u,2.409u);
+ z84\1\2c1 = (5.886u,2.776u);
+ z84\1\2c2 = (7.101u,3.711u);
+ z84\1\2 = (7.695u,3.858u);
+ z84\1\3c1 = (7.985u,3.930u);
+ z84\1\3c2 = (8.213u,3.928u);
+ z84\1\3 = (8.430u,3.697u);
+ z84\1\4c1 = (8.980u,3.112u);
+ z84\1\4c2 = (8.913u,0.365u);
+ fill_or_unfill z84\0\0s
+ --z84\0\0
+ ..controls z84\0\1c1 and z84\0\1c2..z84\0\1
+ ..controls z84\0\2c1 and z84\0\2c2..z84\0\2
+ ..controls z84\0\3c1 and z84\0\3c2..z84\0\3
+ ..controls z84\0\4c1 and z84\0\4c2..z84\0\4
+ ..controls z84\0\5c1 and z84\0\5c2..z84\0\5
+ ..controls z84\0\6c1 and z84\0\6c2..z84\0\6
+ ..controls z84\0\7c1 and z84\0\7c2..z84\0\7
+ ..controls z84\0\8c1 and z84\0\8c2..z84\0\8
+ ..controls z84\0\9c1 and z84\0\9c2..z84\0\9
+ ..controls z84\0\10c1 and z84\0\10c2..z84\0\10
+ ..controls z84\0\11c1 and z84\0\11c2..z84\0\11
+ ..controls z84\0\12c1 and z84\0\12c2..z84\0\12
+ ..controls z84\0\13c1 and z84\0\13c2..z84\0\13
+ ..controls z84\0\14c1 and z84\0\14c2..z84\0\14
+ ..controls z84\0\15c1 and z84\0\15c2..z84\0\15
+ ..controls z84\0\16c1 and z84\0\16c2..z84\0\16
+ ..controls z84\0\17c1 and z84\0\17c2..z84\0\17
+ ..controls z84\0\18c1 and z84\0\18c2..z84\0\18
+ --z84\0\19
+ ..controls z84\0\20c1 and z84\0\20c2..z84\0\20
+ ..controls z84\0\21c1 and z84\0\21c2..z84\0\21
+ ..controls z84\0\22c1 and z84\0\22c2..z84\0\22
+ ..controls z84\0\23c1 and z84\0\23c2..z84\0\23
+ ..controls z84\0\24c1 and z84\0\24c2..z84\0\24
+ ..controls z84\0\25c1 and z84\0\25c2..z84\0\25
+ ..controls z84\0\26c1 and z84\0\26c2..z84\0\26
+ ..controls z84\0\27c1 and z84\0\27c2..z84\0\27
+ ..controls z84\0\28c1 and z84\0\28c2..cycle;
+ fill_or_unfill z84\1\0s
+ ..controls z84\1\0c1 and z84\1\0c2..z84\1\0
+ --z84\1\1
+ ..controls z84\1\2c1 and z84\1\2c2..z84\1\2
+ ..controls z84\1\3c1 and z84\1\3c2..z84\1\3
+ ..controls z84\1\4c1 and z84\1\4c2..cycle;
+ proof_labels (
+ 84\0\0,
+ 84\0\1,
+ 84\0\2,
+ 84\0\3,
+ 84\0\4,
+ 84\0\5,
+ 84\0\6,
+ 84\0\7,
+ 84\0\8,
+ 84\0\9,
+ 84\0\10,
+ 84\0\11,
+ 84\0\12,
+ 84\0\13,
+ 84\0\14,
+ 84\0\15,
+ 84\0\16,
+ 84\0\17,
+ 84\0\18,
+ 84\0\19,
+ 84\0\20,
+ 84\0\21,
+ 84\0\22,
+ 84\0\23,
+ 84\0\24,
+ 84\0\25,
+ 84\0\26,
+ 84\0\27,
+ 84\0\28,
+ 84\1\0,
+ 84\1\1,
+ 84\1\2,
+ 84\1\3,
+ 84\1\4,
+);
+endchar;
+
+beginchar (196, 9.636u#, 6.745u#, 6.504u#);
+ "bya";
+ z85\0\0s = (2.409u,5.059u);
+ z85\0\0c1 = (1.698u,3.121u);
+ z85\0\0c2 = (1.015u,2.747u);
+ z85\0\0 = (0.964u,0.482u);
+ z85\0\1c1 = (1.759u,0.604u);
+ z85\0\1c2 = (2.572u,0.912u);
+ z85\0\1 = (3.372u,0.920u);
+ z85\0\2c1 = (4.654u,0.933u);
+ z85\0\2c2 = (7.638u,0.071u);
+ z85\0\2 = (8.104u,-1.242u);
+ z85\0\3c1 = (8.324u,-1.866u);
+ z85\0\3c2 = (7.812u,-2.486u);
+ z85\0\3 = (7.386u,-2.880u);
+ z85\0\4c1 = (6.678u,-3.538u);
+ z85\0\4c2 = (6.013u,-3.794u);
+ z85\0\4 = (5.059u,-3.844u);
+ z85\0\5c1 = (4.332u,-3.882u);
+ z85\0\5c2 = (3.594u,-3.820u);
+ z85\0\5 = (2.891u,-3.631u);
+ z85\0\6 = (0.482u,-2.891u);
+ z85\0\7c1 = (0.874u,-3.721u);
+ z85\0\7c2 = (1.391u,-4.341u);
+ z85\0\7 = (2.066u,-4.968u);
+ z85\0\8c1 = (4.513u,-7.238u);
+ z85\0\8c2 = (7.089u,-6.345u);
+ z85\0\8 = (8.913u,-3.854u);
+ z85\0\9c1 = (7.461u,-4.387u);
+ z85\0\9c2 = (5.961u,-5.743u);
+ z85\0\9 = (4.336u,-5.228u);
+ z85\0\10 = (2.409u,-4.315u);
+ z85\0\11c1 = (3.041u,-4.208u);
+ z85\0\11c2 = (3.461u,-4.257u);
+ z85\0\11 = (4.095u,-4.315u);
+ z85\0\12c1 = (5.131u,-4.352u);
+ z85\0\12c2 = (7.080u,-4.064u);
+ z85\0\12 = (7.896u,-3.408u);
+ z85\0\13c1 = (8.466u,-2.950u);
+ z85\0\13c2 = (8.665u,-2.382u);
+ z85\0\13 = (8.902u,-1.686u);
+ z85\0\14c1 = (8.925u,-1.050u);
+ z85\0\14c2 = (8.912u,-0.403u);
+ z85\0\14 = (8.902u,0.241u);
+ z85\0\15 = (8.902u,3.132u);
+ z85\0\16 = (8.902u,4.577u);
+ z85\0\17c1 = (9.026u,4.959u);
+ z85\0\17c2 = (9.136u,5.370u);
+ z85\0\17 = (9.101u,5.756u);
+ z85\0\18c1 = (9.082u,5.966u);
+ z85\0\18c2 = (9.049u,6.155u);
+ z85\0\18 = (8.914u,6.326u);
+ z85\0\19c1 = (8.511u,6.837u);
+ z85\0\19c2 = (7.338u,6.744u);
+ z85\0\19 = (6.745u,6.693u);
+ z85\0\20c1 = (5.952u,6.746u);
+ z85\0\20c2 = (3.266u,6.822u);
+ z85\0\20 = (2.676u,6.693u);
+ z85\0\21c1 = (2.176u,6.488u);
+ z85\0\21c2 = (1.491u,5.852u);
+ z85\0\21 = (1.938u,5.299u);
+ z85\0\22c1 = (2.074u,5.131u);
+ z85\0\22c2 = (2.233u,5.133u);
+ z85\1\0s = (8.431u,-0.241u);
+ z85\1\0c1 = (7.081u,0.695u);
+ z85\1\0c2 = (5.755u,1.957u);
+ z85\1\0 = (4.095u,2.362u);
+ z85\1\1c1 = (3.474u,2.450u);
+ z85\1\1c2 = (2.801u,2.408u);
+ z85\1\1 = (2.168u,2.362u);
+ z85\1\2c1 = (2.206u,2.736u);
+ z85\1\2c2 = (2.220u,3.038u);
+ z85\1\2 = (2.342u,3.351u);
+ z85\1\3c1 = (2.648u,4.135u);
+ z85\1\3c2 = (3.526u,4.973u);
+ z85\1\3 = (4.340u,5.247u);
+ z85\1\4c1 = (4.860u,5.340u);
+ z85\1\4c2 = (5.484u,5.307u);
+ z85\1\4 = (6.022u,5.247u);
+ z85\1\5c1 = (6.693u,5.289u);
+ z85\1\5c2 = (7.185u,5.324u);
+ z85\1\5 = (7.640u,4.747u);
+ z85\1\6c1 = (8.457u,3.711u);
+ z85\1\6c2 = (8.431u,1.064u);
+ fill_or_unfill z85\0\0s
+ ..controls z85\0\0c1 and z85\0\0c2..z85\0\0
+ ..controls z85\0\1c1 and z85\0\1c2..z85\0\1
+ ..controls z85\0\2c1 and z85\0\2c2..z85\0\2
+ ..controls z85\0\3c1 and z85\0\3c2..z85\0\3
+ ..controls z85\0\4c1 and z85\0\4c2..z85\0\4
+ ..controls z85\0\5c1 and z85\0\5c2..z85\0\5
+ --z85\0\6
+ ..controls z85\0\7c1 and z85\0\7c2..z85\0\7
+ ..controls z85\0\8c1 and z85\0\8c2..z85\0\8
+ ..controls z85\0\9c1 and z85\0\9c2..z85\0\9
+ --z85\0\10
+ ..controls z85\0\11c1 and z85\0\11c2..z85\0\11
+ ..controls z85\0\12c1 and z85\0\12c2..z85\0\12
+ ..controls z85\0\13c1 and z85\0\13c2..z85\0\13
+ ..controls z85\0\14c1 and z85\0\14c2..z85\0\14
+ --z85\0\15
+ --z85\0\16
+ ..controls z85\0\17c1 and z85\0\17c2..z85\0\17
+ ..controls z85\0\18c1 and z85\0\18c2..z85\0\18
+ ..controls z85\0\19c1 and z85\0\19c2..z85\0\19
+ ..controls z85\0\20c1 and z85\0\20c2..z85\0\20
+ ..controls z85\0\21c1 and z85\0\21c2..z85\0\21
+ ..controls z85\0\22c1 and z85\0\22c2..cycle;
+ fill_or_unfill z85\1\0s
+ ..controls z85\1\0c1 and z85\1\0c2..z85\1\0
+ ..controls z85\1\1c1 and z85\1\1c2..z85\1\1
+ ..controls z85\1\2c1 and z85\1\2c2..z85\1\2
+ ..controls z85\1\3c1 and z85\1\3c2..z85\1\3
+ ..controls z85\1\4c1 and z85\1\4c2..z85\1\4
+ ..controls z85\1\5c1 and z85\1\5c2..z85\1\5
+ ..controls z85\1\6c1 and z85\1\6c2..cycle;
+ proof_labels (
+ 85\0\0,
+ 85\0\1,
+ 85\0\2,
+ 85\0\3,
+ 85\0\4,
+ 85\0\5,
+ 85\0\6,
+ 85\0\7,
+ 85\0\8,
+ 85\0\9,
+ 85\0\10,
+ 85\0\11,
+ 85\0\12,
+ 85\0\13,
+ 85\0\14,
+ 85\0\15,
+ 85\0\16,
+ 85\0\17,
+ 85\0\18,
+ 85\0\19,
+ 85\0\20,
+ 85\0\21,
+ 85\0\22,
+ 85\1\0,
+ 85\1\1,
+ 85\1\2,
+ 85\1\3,
+ 85\1\4,
+ 85\1\5,
+ 85\1\6,
+);
+endchar;
+
+beginchar (197, 10.118u#, 6.745u#, 6.745u#);
+ "mya";
+ z86\0\0s = (1.204u,5.541u);
+ z86\0\0c1 = (2.362u,5.117u);
+ z86\0\0c2 = (2.748u,5.114u);
+ z86\0\0 = (3.132u,3.854u);
+ z86\0\1c1 = (2.547u,3.799u);
+ z86\0\1c2 = (1.992u,3.754u);
+ z86\0\1 = (1.490u,3.408u);
+ z86\0\2c1 = (0.516u,2.734u);
+ z86\0\2c2 = (0.121u,1.021u);
+ z86\0\2 = (0.867u,0.054u);
+ z86\0\3c1 = (1.190u,-0.364u);
+ z86\0\3c2 = (1.654u,-0.586u);
+ z86\0\3 = (2.168u,-0.665u);
+ z86\0\4c1 = (4.006u,-0.945u);
+ z86\0\4c2 = (4.217u,0.510u);
+ z86\0\4 = (4.336u,1.927u);
+ z86\0\5 = (6.022u,1.117u);
+ z86\0\6c1 = (6.849u,0.635u);
+ z86\0\6c2 = (8.637u,-0.852u);
+ z86\0\6 = (8.462u,-1.927u);
+ z86\0\7c1 = (8.402u,-2.294u);
+ z86\0\7c2 = (8.158u,-2.601u);
+ z86\0\7 = (7.914u,-2.865u);
+ z86\0\8c1 = (7.431u,-3.386u);
+ z86\0\8c2 = (6.728u,-3.824u);
+ z86\0\8 = (6.022u,-3.946u);
+ z86\0\9c1 = (4.980u,-4.126u);
+ z86\0\9c2 = (2.207u,-3.307u);
+ z86\0\9 = (0.964u,-3.132u);
+ z86\0\10c1 = (1.277u,-4.113u);
+ z86\0\10c2 = (1.680u,-4.370u);
+ z86\0\10 = (2.410u,-5.067u);
+ z86\0\11c1 = (3.205u,-5.827u);
+ z86\0\11c2 = (3.661u,-6.398u);
+ z86\0\11 = (4.818u,-6.490u);
+ z86\0\12c1 = (6.650u,-6.637u);
+ z86\0\12c2 = (8.372u,-5.473u);
+ z86\0\12 = (9.154u,-3.854u);
+ z86\0\13 = (6.918u,-5.172u);
+ z86\0\14c1 = (5.229u,-6.080u);
+ z86\0\14c2 = (3.686u,-4.753u);
+ z86\0\14 = (2.168u,-4.124u);
+ z86\0\15c1 = (3.809u,-3.928u);
+ z86\0\15c2 = (5.326u,-4.602u);
+ z86\0\15 = (6.986u,-4.124u);
+ z86\0\16c1 = (7.871u,-3.912u);
+ z86\0\16c2 = (8.576u,-3.531u);
+ z86\0\16 = (8.948u,-2.646u);
+ z86\0\17c1 = (9.286u,-1.842u);
+ z86\0\17c2 = (9.143u,0.902u);
+ z86\0\17 = (9.155u,1.927u);
+ z86\0\18c1 = (9.174u,3.555u);
+ z86\0\18c2 = (9.621u,5.108u);
+ z86\0\18 = (9.636u,6.745u);
+ z86\0\19 = (7.468u,6.745u);
+ z86\0\20c1 = (7.495u,6.411u);
+ z86\0\20c2 = (7.500u,6.106u);
+ z86\0\20 = (7.607u,5.782u);
+ z86\0\21 = (8.499u,3.854u);
+ z86\0\22c1 = (8.818u,2.713u);
+ z86\0\22c2 = (8.672u,1.193u);
+ z86\0\22 = (8.672u,0.000u);
+ z86\0\23c1 = (7.932u,0.927u);
+ z86\0\23c2 = (7.247u,2.041u);
+ z86\0\23 = (6.260u,2.723u);
+ z86\0\24 = (4.588u,3.543u);
+ z86\0\25c1 = (4.178u,3.766u);
+ z86\0\25c2 = (3.543u,4.182u);
+ z86\0\25 = (3.722u,4.747u);
+ z86\0\26c1 = (3.984u,5.567u);
+ z86\0\26c2 = (5.441u,5.009u);
+ z86\0\26 = (5.884u,5.885u);
+ z86\0\27c1 = (6.019u,6.150u);
+ z86\0\27c2 = (6.000u,6.460u);
+ z86\0\27 = (6.022u,6.745u);
+ z86\0\28c1 = (5.179u,6.745u);
+ z86\0\28c2 = (2.375u,6.896u);
+ z86\0\28 = (1.788u,6.499u);
+ z86\0\29c1 = (1.422u,6.252u);
+ z86\0\29c2 = (1.347u,5.924u);
+ z86\1\0s = (2.409u,2.466u);
+ z86\1\0c1 = (2.660u,2.489u);
+ z86\1\0c2 = (2.829u,2.526u);
+ z86\1\0 = (3.077u,2.466u);
+ z86\1\1c1 = (4.210u,1.993u);
+ z86\1\1c2 = (3.917u,0.110u);
+ z86\1\1 = (2.640u,-0.111u);
+ z86\1\2c1 = (1.181u,-0.365u);
+ z86\1\2c2 = (0.526u,1.345u);
+ z86\1\2 = (1.741u,2.228u);
+ z86\1\3c1 = (1.975u,2.398u);
+ z86\1\3c2 = (2.151u,2.412u);
+ fill_or_unfill z86\0\0s
+ ..controls z86\0\0c1 and z86\0\0c2..z86\0\0
+ ..controls z86\0\1c1 and z86\0\1c2..z86\0\1
+ ..controls z86\0\2c1 and z86\0\2c2..z86\0\2
+ ..controls z86\0\3c1 and z86\0\3c2..z86\0\3
+ ..controls z86\0\4c1 and z86\0\4c2..z86\0\4
+ --z86\0\5
+ ..controls z86\0\6c1 and z86\0\6c2..z86\0\6
+ ..controls z86\0\7c1 and z86\0\7c2..z86\0\7
+ ..controls z86\0\8c1 and z86\0\8c2..z86\0\8
+ ..controls z86\0\9c1 and z86\0\9c2..z86\0\9
+ ..controls z86\0\10c1 and z86\0\10c2..z86\0\10
+ ..controls z86\0\11c1 and z86\0\11c2..z86\0\11
+ ..controls z86\0\12c1 and z86\0\12c2..z86\0\12
+ --z86\0\13
+ ..controls z86\0\14c1 and z86\0\14c2..z86\0\14
+ ..controls z86\0\15c1 and z86\0\15c2..z86\0\15
+ ..controls z86\0\16c1 and z86\0\16c2..z86\0\16
+ ..controls z86\0\17c1 and z86\0\17c2..z86\0\17
+ ..controls z86\0\18c1 and z86\0\18c2..z86\0\18
+ --z86\0\19
+ ..controls z86\0\20c1 and z86\0\20c2..z86\0\20
+ --z86\0\21
+ ..controls z86\0\22c1 and z86\0\22c2..z86\0\22
+ ..controls z86\0\23c1 and z86\0\23c2..z86\0\23
+ --z86\0\24
+ ..controls z86\0\25c1 and z86\0\25c2..z86\0\25
+ ..controls z86\0\26c1 and z86\0\26c2..z86\0\26
+ ..controls z86\0\27c1 and z86\0\27c2..z86\0\27
+ ..controls z86\0\28c1 and z86\0\28c2..z86\0\28
+ ..controls z86\0\29c1 and z86\0\29c2..cycle;
+ fill_or_unfill z86\1\0s
+ ..controls z86\1\0c1 and z86\1\0c2..z86\1\0
+ ..controls z86\1\1c1 and z86\1\1c2..z86\1\1
+ ..controls z86\1\2c1 and z86\1\2c2..z86\1\2
+ ..controls z86\1\3c1 and z86\1\3c2..cycle;
+ proof_labels (
+ 86\0\0,
+ 86\0\1,
+ 86\0\2,
+ 86\0\3,
+ 86\0\4,
+ 86\0\5,
+ 86\0\6,
+ 86\0\7,
+ 86\0\8,
+ 86\0\9,
+ 86\0\10,
+ 86\0\11,
+ 86\0\12,
+ 86\0\13,
+ 86\0\14,
+ 86\0\15,
+ 86\0\16,
+ 86\0\17,
+ 86\0\18,
+ 86\0\19,
+ 86\0\20,
+ 86\0\21,
+ 86\0\22,
+ 86\0\23,
+ 86\0\24,
+ 86\0\25,
+ 86\0\26,
+ 86\0\27,
+ 86\0\28,
+ 86\0\29,
+ 86\1\0,
+ 86\1\1,
+ 86\1\2,
+ 86\1\3,
+);
+endchar;
+
+beginchar (198, 9.154u#, 6.745u#, 6.263u#);
+ "kra";
+ z87\0\0s = (0.482u,2.409u);
+ z87\0\0c1 = (0.676u,2.536u);
+ z87\0\0c2 = (0.813u,2.582u);
+ z87\0\0 = (0.974u,2.773u);
+ z87\0\1c1 = (1.489u,3.387u);
+ z87\0\1c2 = (1.538u,4.645u);
+ z87\0\1 = (2.262u,5.040u);
+ z87\0\2c1 = (2.533u,5.188u);
+ z87\0\2c2 = (2.808u,5.182u);
+ z87\0\2 = (3.081u,5.040u);
+ z87\0\3c1 = (4.023u,4.548u);
+ z87\0\3c2 = (4.037u,2.841u);
+ z87\0\3 = (4.135u,1.927u);
+ z87\0\4 = (4.336u,0.241u);
+ z87\0\5c1 = (4.812u,1.440u);
+ z87\0\5c2 = (4.399u,3.797u);
+ z87\0\5 = (5.203u,4.742u);
+ z87\0\6c1 = (5.905u,5.568u);
+ z87\0\6c2 = (7.167u,5.309u);
+ z87\0\6 = (7.565u,4.322u);
+ z87\0\7c1 = (7.775u,3.801u);
+ z87\0\7c2 = (7.694u,2.983u);
+ z87\0\7 = (7.749u,2.409u);
+ z87\0\8 = (8.190u,-0.723u);
+ z87\0\9 = (8.190u,-2.409u);
+ z87\0\10 = (8.431u,-4.818u);
+ z87\0\11c1 = (7.895u,-4.287u);
+ z87\0\11c2 = (7.366u,-3.721u);
+ z87\0\11 = (6.745u,-3.236u);
+ z87\0\12c1 = (5.410u,-2.354u);
+ z87\0\12c2 = (3.273u,-1.711u);
+ z87\0\12 = (2.057u,-3.236u);
+ z87\0\13c1 = (1.877u,-3.403u);
+ z87\0\13c2 = (1.808u,-3.611u);
+ z87\0\13 = (1.686u,-3.854u);
+ z87\0\14 = (1.927u,-4.095u);
+ z87\0\15 = (3.372u,-3.676u);
+ z87\0\16c1 = (4.532u,-3.481u);
+ z87\0\16c2 = (6.036u,-3.720u);
+ z87\0\16 = (6.982u,-4.439u);
+ z87\0\17 = (8.672u,-6.022u);
+ z87\0\18 = (8.672u,4.577u);
+ z87\0\19c1 = (8.671u,5.130u);
+ z87\0\19c2 = (8.765u,6.121u);
+ z87\0\19 = (8.287u,6.499u);
+ z87\0\20c1 = (7.965u,6.754u);
+ z87\0\20c2 = (7.378u,6.737u);
+ z87\0\20 = (6.986u,6.733u);
+ z87\0\21 = (3.372u,6.733u);
+ z87\0\22c1 = (2.761u,6.745u);
+ z87\0\22c2 = (2.059u,6.811u);
+ z87\0\22 = (1.459u,6.733u);
+ z87\0\23c1 = (1.176u,6.662u);
+ z87\0\23c2 = (0.917u,6.605u);
+ z87\0\23 = (0.732u,6.364u);
+ z87\0\24c1 = (0.304u,5.808u);
+ z87\0\24c2 = (0.952u,4.790u);
+ z87\0\24 = (0.901u,4.092u);
+ z87\0\25c1 = (0.860u,3.534u);
+ z87\0\25c2 = (0.623u,2.951u);
+ fill_or_unfill z87\0\0s
+ ..controls z87\0\0c1 and z87\0\0c2..z87\0\0
+ ..controls z87\0\1c1 and z87\0\1c2..z87\0\1
+ ..controls z87\0\2c1 and z87\0\2c2..z87\0\2
+ ..controls z87\0\3c1 and z87\0\3c2..z87\0\3
+ --z87\0\4
+ ..controls z87\0\5c1 and z87\0\5c2..z87\0\5
+ ..controls z87\0\6c1 and z87\0\6c2..z87\0\6
+ ..controls z87\0\7c1 and z87\0\7c2..z87\0\7
+ --z87\0\8
+ --z87\0\9
+ --z87\0\10
+ ..controls z87\0\11c1 and z87\0\11c2..z87\0\11
+ ..controls z87\0\12c1 and z87\0\12c2..z87\0\12
+ ..controls z87\0\13c1 and z87\0\13c2..z87\0\13
+ --z87\0\14
+ --z87\0\15
+ ..controls z87\0\16c1 and z87\0\16c2..z87\0\16
+ --z87\0\17
+ --z87\0\18
+ ..controls z87\0\19c1 and z87\0\19c2..z87\0\19
+ ..controls z87\0\20c1 and z87\0\20c2..z87\0\20
+ --z87\0\21
+ ..controls z87\0\22c1 and z87\0\22c2..z87\0\22
+ ..controls z87\0\23c1 and z87\0\23c2..z87\0\23
+ ..controls z87\0\24c1 and z87\0\24c2..z87\0\24
+ ..controls z87\0\25c1 and z87\0\25c2..cycle;
+ proof_labels (
+ 87\0\0,
+ 87\0\1,
+ 87\0\2,
+ 87\0\3,
+ 87\0\4,
+ 87\0\5,
+ 87\0\6,
+ 87\0\7,
+ 87\0\8,
+ 87\0\9,
+ 87\0\10,
+ 87\0\11,
+ 87\0\12,
+ 87\0\13,
+ 87\0\14,
+ 87\0\15,
+ 87\0\16,
+ 87\0\17,
+ 87\0\18,
+ 87\0\19,
+ 87\0\20,
+ 87\0\21,
+ 87\0\22,
+ 87\0\23,
+ 87\0\24,
+ 87\0\25,
+);
+endchar;
+
+beginchar (199, 10.118u#, 6.745u#, 6.745u#);
+ "khra";
+ z88\0\0s = (1.445u,-6.504u);
+ z88\0\0 = (1.927u,-6.504u);
+ z88\0\1 = (1.927u,5.300u);
+ z88\0\2 = (4.577u,5.300u);
+ z88\0\3c1 = (3.443u,3.307u);
+ z88\0\3c2 = (3.139u,2.541u);
+ z88\0\3 = (3.132u,0.241u);
+ z88\0\4c1 = (3.679u,0.451u);
+ z88\0\4c2 = (4.231u,0.685u);
+ z88\0\4 = (4.818u,0.759u);
+ z88\0\5c1 = (6.098u,0.921u);
+ z88\0\5c2 = (8.266u,0.346u);
+ z88\0\5 = (8.769u,-0.968u);
+ z88\0\6c1 = (8.999u,-1.568u);
+ z88\0\6c2 = (8.913u,-3.808u);
+ z88\0\6 = (8.913u,-4.577u);
+ z88\0\7c1 = (7.523u,-3.800u);
+ z88\0\7c2 = (5.476u,-2.082u);
+ z88\0\7 = (3.859u,-3.106u);
+ z88\0\8c1 = (3.134u,-3.565u);
+ z88\0\8c2 = (2.884u,-4.029u);
+ z88\0\8 = (2.650u,-4.818u);
+ z88\0\9 = (4.577u,-4.339u);
+ z88\0\10c1 = (5.649u,-4.137u);
+ z88\0\10c2 = (7.019u,-4.406u);
+ z88\0\10 = (7.905u,-5.051u);
+ z88\0\11 = (9.395u,-6.504u);
+ z88\0\12 = (9.395u,1.204u);
+ z88\0\13 = (9.632u,4.336u);
+ z88\0\14c1 = (9.645u,4.843u);
+ z88\0\14c2 = (9.705u,5.961u);
+ z88\0\14 = (9.390u,6.360u);
+ z88\0\15c1 = (9.245u,6.542u);
+ z88\0\15c2 = (9.094u,6.606u);
+ z88\0\15 = (8.878u,6.707u);
+ z88\0\16c1 = (8.414u,6.807u);
+ z88\0\16c2 = (3.528u,6.749u);
+ z88\0\16 = (2.650u,6.707u);
+ z88\0\17c1 = (2.041u,6.742u);
+ z88\0\17c2 = (0.926u,6.834u);
+ z88\0\17 = (0.597u,6.160u);
+ z88\0\18c1 = (0.542u,5.961u);
+ z88\0\18c2 = (0.552u,5.741u);
+ z88\0\18 = (0.597u,5.530u);
+ z88\0\19 = (0.940u,4.095u);
+ z88\0\20c1 = (0.965u,3.453u);
+ z88\0\20c2 = (0.962u,2.818u);
+ z88\0\20 = (0.940u,2.168u);
+ z88\0\21 = (0.940u,0.482u);
+ z88\0\22 = (1.215u,-1.686u);
+ z88\0\23 = (1.215u,-4.577u);
+ z88\1\0s = (9.154u,0.482u);
+ z88\1\0c1 = (8.709u,0.672u);
+ z88\1\0c2 = (8.350u,0.853u);
+ z88\1\0 = (7.950u,1.131u);
+ z88\1\1c1 = (7.471u,1.465u);
+ z88\1\1c2 = (7.035u,1.877u);
+ z88\1\1 = (6.504u,2.129u);
+ z88\1\2c1 = (5.707u,2.509u);
+ z88\1\2c2 = (4.717u,2.405u);
+ z88\1\2 = (3.854u,2.650u);
+ z88\1\3c1 = (4.537u,4.040u);
+ z88\1\3c2 = (5.440u,5.511u);
+ z88\1\3 = (7.226u,5.264u);
+ z88\1\4c1 = (7.879u,5.173u);
+ z88\1\4c2 = (8.262u,4.925u);
+ z88\1\4 = (8.549u,4.322u);
+ z88\1\5c1 = (8.890u,3.609u);
+ z88\1\5c2 = (8.868u,2.698u);
+ z88\1\5 = (8.934u,1.927u);
+ fill_or_unfill z88\0\0s
+ --z88\0\0
+ --z88\0\1
+ --z88\0\2
+ ..controls z88\0\3c1 and z88\0\3c2..z88\0\3
+ ..controls z88\0\4c1 and z88\0\4c2..z88\0\4
+ ..controls z88\0\5c1 and z88\0\5c2..z88\0\5
+ ..controls z88\0\6c1 and z88\0\6c2..z88\0\6
+ ..controls z88\0\7c1 and z88\0\7c2..z88\0\7
+ ..controls z88\0\8c1 and z88\0\8c2..z88\0\8
+ --z88\0\9
+ ..controls z88\0\10c1 and z88\0\10c2..z88\0\10
+ --z88\0\11
+ --z88\0\12
+ --z88\0\13
+ ..controls z88\0\14c1 and z88\0\14c2..z88\0\14
+ ..controls z88\0\15c1 and z88\0\15c2..z88\0\15
+ ..controls z88\0\16c1 and z88\0\16c2..z88\0\16
+ ..controls z88\0\17c1 and z88\0\17c2..z88\0\17
+ ..controls z88\0\18c1 and z88\0\18c2..z88\0\18
+ --z88\0\19
+ ..controls z88\0\20c1 and z88\0\20c2..z88\0\20
+ --z88\0\21
+ --z88\0\22
+ --z88\0\23
+ --cycle;
+ fill_or_unfill z88\1\0s
+ ..controls z88\1\0c1 and z88\1\0c2..z88\1\0
+ ..controls z88\1\1c1 and z88\1\1c2..z88\1\1
+ ..controls z88\1\2c1 and z88\1\2c2..z88\1\2
+ ..controls z88\1\3c1 and z88\1\3c2..z88\1\3
+ ..controls z88\1\4c1 and z88\1\4c2..z88\1\4
+ ..controls z88\1\5c1 and z88\1\5c2..z88\1\5
+ --cycle;
+ proof_labels (
+ 88\0\0,
+ 88\0\1,
+ 88\0\2,
+ 88\0\3,
+ 88\0\4,
+ 88\0\5,
+ 88\0\6,
+ 88\0\7,
+ 88\0\8,
+ 88\0\9,
+ 88\0\10,
+ 88\0\11,
+ 88\0\12,
+ 88\0\13,
+ 88\0\14,
+ 88\0\15,
+ 88\0\16,
+ 88\0\17,
+ 88\0\18,
+ 88\0\19,
+ 88\0\20,
+ 88\0\21,
+ 88\0\22,
+ 88\0\23,
+ 88\0\24,
+ 88\1\0,
+ 88\1\1,
+ 88\1\2,
+ 88\1\3,
+ 88\1\4,
+ 88\1\5,
+ 88\1\6,
+);
+endchar;
+
+beginchar (243, 11.081u#, 6.745u#, 6.745u#);
+ "gra";
+ z89\0\0s = (0.964u,5.300u);
+ z89\0\0 = (1.927u,5.059u);
+ z89\0\1c1 = (1.563u,4.416u);
+ z89\0\1c2 = (-0.036u,1.577u);
+ z89\0\1 = (1.043u,1.088u);
+ z89\0\2c1 = (1.516u,0.932u);
+ z89\0\2c2 = (3.466u,1.402u);
+ z89\0\2 = (4.576u,1.088u);
+ z89\0\3c1 = (5.721u,0.683u);
+ z89\0\3c2 = (5.859u,-0.140u);
+ z89\0\3 = (6.745u,-0.723u);
+ z89\0\4c1 = (6.745u,0.540u);
+ z89\0\4c2 = (6.388u,4.461u);
+ z89\0\4 = (7.742u,5.018u);
+ z89\0\5c1 = (7.966u,5.111u);
+ z89\0\5c2 = (8.173u,5.112u);
+ z89\0\5 = (8.397u,5.018u);
+ z89\0\6c1 = (9.252u,4.662u);
+ z89\0\6c2 = (9.153u,3.401u);
+ z89\0\6 = (9.165u,2.650u);
+ z89\0\7 = (9.165u,-0.482u);
+ z89\0\8 = (9.533u,-2.891u);
+ z89\0\9 = (9.877u,-5.300u);
+ z89\0\10c1 = (9.198u,-4.782u);
+ z89\0\10c2 = (8.538u,-4.296u);
+ z89\0\10 = (7.709u,-4.046u);
+ z89\0\11c1 = (7.093u,-3.861u);
+ z89\0\11c2 = (6.421u,-3.835u);
+ z89\0\11 = (5.782u,-3.864u);
+ z89\0\12c1 = (4.022u,-3.944u);
+ z89\0\12c2 = (3.148u,-4.704u);
+ z89\0\12 = (3.613u,-6.504u);
+ z89\0\13 = (5.300u,-5.408u);
+ z89\0\14c1 = (7.098u,-4.535u);
+ z89\0\14c2 = (8.620u,-5.592u);
+ z89\0\14 = (10.118u,-6.504u);
+ z89\0\15 = (10.118u,1.204u);
+ z89\0\16 = (10.577u,5.059u);
+ z89\0\17c1 = (10.594u,5.384u);
+ z89\0\17c2 = (10.600u,5.891u);
+ z89\0\17 = (10.455u,6.188u);
+ z89\0\18c1 = (10.118u,6.879u);
+ z89\0\18c2 = (9.075u,6.744u);
+ z89\0\18 = (8.431u,6.745u);
+ z89\0\19c1 = (7.255u,6.747u);
+ z89\0\19c2 = (2.239u,6.940u);
+ z89\0\19 = (1.521u,6.462u);
+ z89\0\20c1 = (1.074u,6.165u);
+ z89\0\20c2 = (1.046u,5.780u);
+ z89\1\0s = (6.022u,1.204u);
+ z89\1\0c1 = (3.968u,2.384u);
+ z89\1\0c2 = (3.971u,2.868u);
+ z89\1\0 = (1.445u,2.891u);
+ z89\1\1c1 = (1.956u,4.429u);
+ z89\1\1c2 = (2.833u,5.424u);
+ z89\1\1 = (4.573u,5.271u);
+ z89\1\2c1 = (5.040u,5.229u);
+ z89\1\2c2 = (5.410u,5.141u);
+ z89\1\2 = (5.665u,4.714u);
+ z89\1\3c1 = (6.091u,4.000u);
+ z89\1\3c2 = (6.022u,2.066u);
+ fill_or_unfill z89\0\0s
+ --z89\0\0
+ ..controls z89\0\1c1 and z89\0\1c2..z89\0\1
+ ..controls z89\0\2c1 and z89\0\2c2..z89\0\2
+ ..controls z89\0\3c1 and z89\0\3c2..z89\0\3
+ ..controls z89\0\4c1 and z89\0\4c2..z89\0\4
+ ..controls z89\0\5c1 and z89\0\5c2..z89\0\5
+ ..controls z89\0\6c1 and z89\0\6c2..z89\0\6
+ --z89\0\7
+ --z89\0\8
+ --z89\0\9
+ ..controls z89\0\10c1 and z89\0\10c2..z89\0\10
+ ..controls z89\0\11c1 and z89\0\11c2..z89\0\11
+ ..controls z89\0\12c1 and z89\0\12c2..z89\0\12
+ --z89\0\13
+ ..controls z89\0\14c1 and z89\0\14c2..z89\0\14
+ --z89\0\15
+ --z89\0\16
+ ..controls z89\0\17c1 and z89\0\17c2..z89\0\17
+ ..controls z89\0\18c1 and z89\0\18c2..z89\0\18
+ ..controls z89\0\19c1 and z89\0\19c2..z89\0\19
+ ..controls z89\0\20c1 and z89\0\20c2..cycle;
+ fill_or_unfill z89\1\0s
+ ..controls z89\1\0c1 and z89\1\0c2..z89\1\0
+ ..controls z89\1\1c1 and z89\1\1c2..z89\1\1
+ ..controls z89\1\2c1 and z89\1\2c2..z89\1\2
+ ..controls z89\1\3c1 and z89\1\3c2..cycle;
+ proof_labels (
+ 89\0\0,
+ 89\0\1,
+ 89\0\2,
+ 89\0\3,
+ 89\0\4,
+ 89\0\5,
+ 89\0\6,
+ 89\0\7,
+ 89\0\8,
+ 89\0\9,
+ 89\0\10,
+ 89\0\11,
+ 89\0\12,
+ 89\0\13,
+ 89\0\14,
+ 89\0\15,
+ 89\0\16,
+ 89\0\17,
+ 89\0\18,
+ 89\0\19,
+ 89\0\20,
+ 89\1\0,
+ 89\1\1,
+ 89\1\2,
+ 89\1\3,
+);
+endchar;
+
+beginchar (200, 8.190u#, 6.745u#, 6.504u#);
+ "tra";
+ z90\0\0s = (1.739u,1.204u);
+ z90\0\0c1 = (2.402u,1.406u);
+ z90\0\0c2 = (3.118u,1.781u);
+ z90\0\0 = (3.854u,1.873u);
+ z90\0\1c1 = (4.628u,1.970u);
+ z90\0\1c2 = (5.607u,1.752u);
+ z90\0\1 = (6.232u,1.277u);
+ z90\0\2c1 = (8.442u,-0.405u);
+ z90\0\2c2 = (6.165u,-3.742u);
+ z90\0\2 = (5.300u,-5.541u);
+ z90\0\3c1 = (4.993u,-4.955u);
+ z90\0\3c2 = (4.728u,-4.223u);
+ z90\0\3 = (4.236u,-3.718u);
+ z90\0\4c1 = (3.514u,-3.103u);
+ z90\0\4c2 = (1.089u,-2.340u);
+ z90\0\4 = (0.688u,-3.718u);
+ z90\0\5c1 = (0.544u,-3.999u);
+ z90\0\5c2 = (0.657u,-4.261u);
+ z90\0\5 = (0.688u,-4.577u);
+ z90\0\6c1 = (1.272u,-4.479u);
+ z90\0\6c2 = (1.848u,-4.334u);
+ z90\0\6 = (2.409u,-4.397u);
+ z90\0\7c1 = (4.046u,-4.580u);
+ z90\0\7c2 = (4.542u,-6.227u);
+ z90\0\7 = (5.491u,-5.941u);
+ z90\0\8c1 = (5.978u,-5.795u);
+ z90\0\8c2 = (6.348u,-5.000u);
+ z90\0\8 = (6.562u,-4.577u);
+ z90\0\9c1 = (7.379u,-2.959u);
+ z90\0\9c2 = (8.358u,0.726u);
+ z90\0\9 = (7.243u,2.355u);
+ z90\0\10c1 = (6.896u,2.863u);
+ z90\0\10c2 = (6.361u,3.104u);
+ z90\0\10 = (5.781u,3.245u);
+ z90\0\11c1 = (4.482u,3.560u);
+ z90\0\11c2 = (3.346u,3.165u);
+ z90\0\11 = (2.168u,2.650u);
+ z90\0\12c1 = (2.531u,4.647u);
+ z90\0\12c2 = (2.991u,5.285u);
+ z90\0\12 = (5.059u,5.337u);
+ z90\0\13c1 = (5.500u,5.303u);
+ z90\0\13c2 = (6.332u,5.266u);
+ z90\0\13 = (6.731u,5.337u);
+ z90\0\14c1 = (7.012u,5.452u);
+ z90\0\14c2 = (7.285u,5.570u);
+ z90\0\14 = (7.427u,5.843u);
+ z90\0\15c1 = (7.597u,6.170u);
+ z90\0\15c2 = (7.454u,6.445u);
+ z90\0\15 = (7.147u,6.550u);
+ z90\0\16c1 = (6.601u,6.880u);
+ z90\0\16c2 = (2.746u,6.833u);
+ z90\0\16 = (2.245u,6.550u);
+ z90\0\17c1 = (1.810u,6.211u);
+ z90\0\17c2 = (1.783u,5.871u);
+ z90\0\17 = (1.860u,5.401u);
+ z90\0\18 = (2.035u,4.556u);
+ z90\0\19c1 = (2.057u,4.002u);
+ z90\0\19c2 = (1.877u,3.435u);
+ z90\0\19 = (1.739u,2.891u);
+ fill_or_unfill z90\0\0s
+ ..controls z90\0\0c1 and z90\0\0c2..z90\0\0
+ ..controls z90\0\1c1 and z90\0\1c2..z90\0\1
+ ..controls z90\0\2c1 and z90\0\2c2..z90\0\2
+ ..controls z90\0\3c1 and z90\0\3c2..z90\0\3
+ ..controls z90\0\4c1 and z90\0\4c2..z90\0\4
+ ..controls z90\0\5c1 and z90\0\5c2..z90\0\5
+ ..controls z90\0\6c1 and z90\0\6c2..z90\0\6
+ ..controls z90\0\7c1 and z90\0\7c2..z90\0\7
+ ..controls z90\0\8c1 and z90\0\8c2..z90\0\8
+ ..controls z90\0\9c1 and z90\0\9c2..z90\0\9
+ ..controls z90\0\10c1 and z90\0\10c2..z90\0\10
+ ..controls z90\0\11c1 and z90\0\11c2..z90\0\11
+ ..controls z90\0\12c1 and z90\0\12c2..z90\0\12
+ ..controls z90\0\13c1 and z90\0\13c2..z90\0\13
+ ..controls z90\0\14c1 and z90\0\14c2..z90\0\14
+ ..controls z90\0\15c1 and z90\0\15c2..z90\0\15
+ ..controls z90\0\16c1 and z90\0\16c2..z90\0\16
+ ..controls z90\0\17c1 and z90\0\17c2..z90\0\17
+ --z90\0\18
+ ..controls z90\0\19c1 and z90\0\19c2..z90\0\19
+ --cycle;
+ proof_labels (
+ 90\0\0,
+ 90\0\1,
+ 90\0\2,
+ 90\0\3,
+ 90\0\4,
+ 90\0\5,
+ 90\0\6,
+ 90\0\7,
+ 90\0\8,
+ 90\0\9,
+ 90\0\10,
+ 90\0\11,
+ 90\0\12,
+ 90\0\13,
+ 90\0\14,
+ 90\0\15,
+ 90\0\16,
+ 90\0\17,
+ 90\0\18,
+ 90\0\19,
+ 90\0\20,
+);
+endchar;
+
+beginchar (201, 8.431u#, 6.745u#, 6.745u#);
+ "thra";
+ z91\0\0s = (3.613u,1.445u);
+ z91\0\0c1 = (2.840u,0.979u);
+ z91\0\0c2 = (1.453u,0.246u);
+ z91\0\0 = (1.005u,-0.526u);
+ z91\0\1c1 = (0.831u,-0.826u);
+ z91\0\1c2 = (0.794u,-1.116u);
+ z91\0\1 = (0.723u,-1.486u);
+ z91\0\2c1 = (1.653u,-1.445u);
+ z91\0\2c2 = (2.701u,-1.351u);
+ z91\0\2 = (3.613u,-1.486u);
+ z91\0\3c1 = (5.399u,-1.871u);
+ z91\0\3c2 = (6.656u,-3.329u);
+ z91\0\3 = (6.986u,-5.059u);
+ z91\0\4c1 = (5.837u,-4.029u);
+ z91\0\4c2 = (3.085u,-1.969u);
+ z91\0\4 = (1.459u,-2.624u);
+ z91\0\5c1 = (1.059u,-2.785u);
+ z91\0\5c2 = (0.796u,-3.002u);
+ z91\0\5 = (0.626u,-3.404u);
+ z91\0\6c1 = (0.472u,-3.767u);
+ z91\0\6c2 = (0.495u,-4.192u);
+ z91\0\6 = (0.482u,-4.577u);
+ z91\0\7c1 = (2.252u,-4.344u);
+ z91\0\7c2 = (4.094u,-4.038u);
+ z91\0\7 = (5.679u,-5.112u);
+ z91\0\8 = (7.484u,-6.504u);
+ z91\0\9 = (7.484u,2.650u);
+ z91\0\10 = (7.484u,4.095u);
+ z91\0\11 = (7.905u,5.541u);
+ z91\0\12 = (7.905u,6.707u);
+ z91\0\13c1 = (7.036u,6.745u);
+ z91\0\13c2 = (2.992u,6.821u);
+ z91\0\13 = (2.413u,6.707u);
+ z91\0\14c1 = (2.175u,6.607u);
+ z91\0\14c2 = (1.955u,6.526u);
+ z91\0\14 = (1.766u,6.360u);
+ z91\0\15c1 = (1.157u,5.823u);
+ z91\0\15c2 = (1.466u,5.250u);
+ z91\0\15 = (1.386u,4.577u);
+ z91\0\16 = (1.148u,3.614u);
+ z91\0\17c1 = (0.879u,1.942u);
+ z91\0\17c2 = (2.278u,1.520u);
+ z91\1\0s = (2.676u,5.156u);
+ z91\1\0c1 = (3.448u,5.328u);
+ z91\1\0c2 = (7.093u,5.753u);
+ z91\1\0 = (6.464u,4.100u);
+ z91\1\1c1 = (6.237u,3.504u);
+ z91\1\1c2 = (5.414u,2.944u);
+ z91\1\1 = (4.818u,2.774u);
+ z91\1\2c1 = (3.594u,2.422u);
+ z91\1\2c2 = (0.984u,3.471u);
+ z91\1\2 = (2.276u,4.915u);
+ z91\2\0s = (6.765u,3.372u);
+ z91\2\0 = (6.765u,1.445u);
+ z91\2\1 = (6.975u,0.000u);
+ z91\2\2 = (6.975u,-3.132u);
+ z91\2\3c1 = (5.753u,-1.718u);
+ z91\2\3c2 = (4.748u,-0.375u);
+ z91\2\3 = (2.891u,0.241u);
+ z91\2\4c1 = (3.467u,0.973u);
+ z91\2\4c2 = (4.084u,1.422u);
+ z91\2\4 = (4.818u,1.983u);
+ fill_or_unfill z91\0\0s
+ ..controls z91\0\0c1 and z91\0\0c2..z91\0\0
+ ..controls z91\0\1c1 and z91\0\1c2..z91\0\1
+ ..controls z91\0\2c1 and z91\0\2c2..z91\0\2
+ ..controls z91\0\3c1 and z91\0\3c2..z91\0\3
+ ..controls z91\0\4c1 and z91\0\4c2..z91\0\4
+ ..controls z91\0\5c1 and z91\0\5c2..z91\0\5
+ ..controls z91\0\6c1 and z91\0\6c2..z91\0\6
+ ..controls z91\0\7c1 and z91\0\7c2..z91\0\7
+ --z91\0\8
+ --z91\0\9
+ --z91\0\10
+ --z91\0\11
+ --z91\0\12
+ ..controls z91\0\13c1 and z91\0\13c2..z91\0\13
+ ..controls z91\0\14c1 and z91\0\14c2..z91\0\14
+ ..controls z91\0\15c1 and z91\0\15c2..z91\0\15
+ --z91\0\16
+ ..controls z91\0\17c1 and z91\0\17c2..cycle;
+ fill_or_unfill z91\1\0s
+ ..controls z91\1\0c1 and z91\1\0c2..z91\1\0
+ ..controls z91\1\1c1 and z91\1\1c2..z91\1\1
+ ..controls z91\1\2c1 and z91\1\2c2..z91\1\2
+ --cycle;
+ fill_or_unfill z91\2\0s
+ --z91\2\0
+ --z91\2\1
+ --z91\2\2
+ ..controls z91\2\3c1 and z91\2\3c2..z91\2\3
+ ..controls z91\2\4c1 and z91\2\4c2..z91\2\4
+ --cycle;
+ proof_labels (
+ 91\0\0,
+ 91\0\1,
+ 91\0\2,
+ 91\0\3,
+ 91\0\4,
+ 91\0\5,
+ 91\0\6,
+ 91\0\7,
+ 91\0\8,
+ 91\0\9,
+ 91\0\10,
+ 91\0\11,
+ 91\0\12,
+ 91\0\13,
+ 91\0\14,
+ 91\0\15,
+ 91\0\16,
+ 91\0\17,
+ 91\1\0,
+ 91\1\1,
+ 91\1\2,
+ 91\1\3,
+ 91\2\0,
+ 91\2\1,
+ 91\2\2,
+ 91\2\3,
+ 91\2\4,
+ 91\2\5,
+);
+endchar;
+
+beginchar (202, 9.636u#, 6.745u#, 7.227u#);
+ "dra";
+ z92\0\0s = (1.204u,5.300u);
+ z92\0\0 = (2.168u,5.300u);
+ z92\0\1c1 = (1.427u,4.217u);
+ z92\0\1c2 = (0.660u,2.749u);
+ z92\0\1 = (0.482u,1.445u);
+ z92\0\2c1 = (1.363u,1.517u);
+ z92\0\2c2 = (2.245u,1.725u);
+ z92\0\2 = (3.132u,1.663u);
+ z92\0\3c1 = (6.624u,1.418u);
+ z92\0\3c2 = (7.844u,-2.147u);
+ z92\0\3 = (8.431u,-5.059u);
+ z92\0\4c1 = (7.728u,-4.561u);
+ z92\0\4c2 = (7.042u,-4.023u);
+ z92\0\4 = (6.263u,-3.666u);
+ z92\0\5c1 = (5.153u,-3.110u);
+ z92\0\5c2 = (2.536u,-2.398u);
+ z92\0\5 = (1.691u,-3.666u);
+ z92\0\6c1 = (1.505u,-3.969u);
+ z92\0\6c2 = (1.499u,-4.259u);
+ z92\0\6 = (1.445u,-4.577u);
+ z92\0\7 = (3.854u,-4.346u);
+ z92\0\8c1 = (6.110u,-4.275u);
+ z92\0\8c2 = (7.568u,-5.248u);
+ z92\0\8 = (8.913u,-6.986u);
+ z92\0\9c1 = (9.277u,-5.992u);
+ z92\0\9c2 = (8.842u,-5.103u);
+ z92\0\9 = (8.710u,-4.095u);
+ z92\0\10 = (8.308u,-1.445u);
+ z92\0\11c1 = (7.988u,-0.186u);
+ z92\0\11c2 = (6.832u,1.920u);
+ z92\0\11 = (5.740u,2.630u);
+ z92\0\12c1 = (5.322u,2.902u);
+ z92\0\12c2 = (4.586u,3.143u);
+ z92\0\12 = (4.095u,3.248u);
+ z92\0\13c1 = (3.309u,3.416u);
+ z92\0\13c2 = (2.486u,3.372u);
+ z92\0\13 = (1.686u,3.372u);
+ z92\0\14c1 = (1.945u,3.936u);
+ z92\0\14c2 = (2.181u,4.501u);
+ z92\0\14 = (2.701u,4.881u);
+ z92\0\15c1 = (3.945u,5.792u);
+ z92\0\15c2 = (6.466u,4.741u);
+ z92\0\15 = (7.222u,5.857u);
+ z92\0\16c1 = (7.410u,6.135u);
+ z92\0\16c2 = (7.415u,6.431u);
+ z92\0\16 = (7.468u,6.745u);
+ z92\0\17c1 = (6.470u,6.745u);
+ z92\0\17c2 = (2.386u,6.914u);
+ z92\0\17 = (1.762u,6.499u);
+ z92\0\18c1 = (1.313u,6.200u);
+ z92\0\18c2 = (1.285u,5.780u);
+ fill_or_unfill z92\0\0s
+ --z92\0\0
+ ..controls z92\0\1c1 and z92\0\1c2..z92\0\1
+ ..controls z92\0\2c1 and z92\0\2c2..z92\0\2
+ ..controls z92\0\3c1 and z92\0\3c2..z92\0\3
+ ..controls z92\0\4c1 and z92\0\4c2..z92\0\4
+ ..controls z92\0\5c1 and z92\0\5c2..z92\0\5
+ ..controls z92\0\6c1 and z92\0\6c2..z92\0\6
+ --z92\0\7
+ ..controls z92\0\8c1 and z92\0\8c2..z92\0\8
+ ..controls z92\0\9c1 and z92\0\9c2..z92\0\9
+ --z92\0\10
+ ..controls z92\0\11c1 and z92\0\11c2..z92\0\11
+ ..controls z92\0\12c1 and z92\0\12c2..z92\0\12
+ ..controls z92\0\13c1 and z92\0\13c2..z92\0\13
+ ..controls z92\0\14c1 and z92\0\14c2..z92\0\14
+ ..controls z92\0\15c1 and z92\0\15c2..z92\0\15
+ ..controls z92\0\16c1 and z92\0\16c2..z92\0\16
+ ..controls z92\0\17c1 and z92\0\17c2..z92\0\17
+ ..controls z92\0\18c1 and z92\0\18c2..cycle;
+ proof_labels (
+ 92\0\0,
+ 92\0\1,
+ 92\0\2,
+ 92\0\3,
+ 92\0\4,
+ 92\0\5,
+ 92\0\6,
+ 92\0\7,
+ 92\0\8,
+ 92\0\9,
+ 92\0\10,
+ 92\0\11,
+ 92\0\12,
+ 92\0\13,
+ 92\0\14,
+ 92\0\15,
+ 92\0\16,
+ 92\0\17,
+ 92\0\18,
+);
+endchar;
+
+beginchar (203, 8.190u#, 6.745u#, 6.263u#);
+ "nra";
+ z93\0\0s = (1.927u,5.300u);
+ z93\0\0c1 = (3.134u,5.258u);
+ z93\0\0c2 = (3.517u,5.220u);
+ z93\0\0 = (4.095u,4.095u);
+ z93\0\1c1 = (3.365u,4.035u);
+ z93\0\1c2 = (2.340u,3.934u);
+ z93\0\1 = (1.697u,3.575u);
+ z93\0\2c1 = (-0.786u,2.187u);
+ z93\0\2c2 = (1.225u,-1.476u);
+ z93\0\2 = (3.609u,-0.235u);
+ z93\0\3c1 = (4.550u,0.254u);
+ z93\0\3c2 = (4.740u,0.958u);
+ z93\0\3 = (4.818u,1.927u);
+ z93\0\4c1 = (5.748u,0.886u);
+ z93\0\4c2 = (6.536u,-0.305u);
+ z93\0\4 = (6.859u,-1.686u);
+ z93\0\5 = (7.227u,-4.095u);
+ z93\0\6c1 = (6.910u,-3.753u);
+ z93\0\6c2 = (6.620u,-3.405u);
+ z93\0\6 = (6.221u,-3.194u);
+ z93\0\7c1 = (5.480u,-2.684u);
+ z93\0\7c2 = (4.002u,-2.384u);
+ z93\0\7 = (3.414u,-3.194u);
+ z93\0\8c1 = (3.185u,-3.568u);
+ z93\0\8c2 = (3.177u,-3.953u);
+ z93\0\8 = (3.132u,-4.336u);
+ z93\0\9c1 = (4.472u,-4.276u);
+ z93\0\9c2 = (5.297u,-3.919u);
+ z93\0\9 = (6.426u,-4.908u);
+ z93\0\10c1 = (6.892u,-5.316u);
+ z93\0\10c2 = (7.163u,-5.701u);
+ z93\0\10 = (7.687u,-6.022u);
+ z93\0\11c1 = (7.709u,-4.690u);
+ z93\0\11c2 = (7.822u,-3.246u);
+ z93\0\11 = (7.687u,-1.927u);
+ z93\0\12 = (7.301u,-0.241u);
+ z93\0\13c1 = (7.166u,0.486u);
+ z93\0\13c2 = (7.141u,1.241u);
+ z93\0\13 = (6.830u,1.926u);
+ z93\0\14c1 = (6.405u,2.858u);
+ z93\0\14c2 = (5.363u,3.430u);
+ z93\0\14 = (5.099u,4.112u);
+ z93\0\15c1 = (4.650u,5.273u);
+ z93\0\15c2 = (6.278u,5.225u);
+ z93\0\15 = (6.808u,5.739u);
+ z93\0\16c1 = (7.106u,6.028u);
+ z93\0\16c2 = (7.141u,6.366u);
+ z93\0\16 = (7.227u,6.745u);
+ z93\0\17c1 = (6.342u,6.745u);
+ z93\0\17c2 = (3.099u,6.902u);
+ z93\0\17 = (2.513u,6.499u);
+ z93\0\18c1 = (2.083u,6.204u);
+ z93\0\18c2 = (2.030u,5.765u);
+ z93\1\0s = (2.650u,2.720u);
+ z93\1\0c1 = (2.905u,2.746u);
+ z93\1\0c2 = (3.109u,2.759u);
+ z93\1\0 = (3.359u,2.720u);
+ z93\1\1c1 = (4.938u,2.085u);
+ z93\1\1c2 = (4.092u,0.164u);
+ z93\1\1 = (2.652u,0.164u);
+ z93\1\2c1 = (1.670u,0.164u);
+ z93\1\2c2 = (0.450u,1.592u);
+ z93\1\2 = (1.344u,2.376u);
+ z93\1\3c1 = (1.695u,2.684u);
+ z93\1\3c2 = (2.213u,2.716u);
+ z93\2\0s = (4.818u,2.168u);
+ z93\2\0 = (4.818u,1.927u);
+ z93\2\1 = (4.577u,2.168u);
+ fill_or_unfill z93\0\0s
+ ..controls z93\0\0c1 and z93\0\0c2..z93\0\0
+ ..controls z93\0\1c1 and z93\0\1c2..z93\0\1
+ ..controls z93\0\2c1 and z93\0\2c2..z93\0\2
+ ..controls z93\0\3c1 and z93\0\3c2..z93\0\3
+ ..controls z93\0\4c1 and z93\0\4c2..z93\0\4
+ --z93\0\5
+ ..controls z93\0\6c1 and z93\0\6c2..z93\0\6
+ ..controls z93\0\7c1 and z93\0\7c2..z93\0\7
+ ..controls z93\0\8c1 and z93\0\8c2..z93\0\8
+ ..controls z93\0\9c1 and z93\0\9c2..z93\0\9
+ ..controls z93\0\10c1 and z93\0\10c2..z93\0\10
+ ..controls z93\0\11c1 and z93\0\11c2..z93\0\11
+ --z93\0\12
+ ..controls z93\0\13c1 and z93\0\13c2..z93\0\13
+ ..controls z93\0\14c1 and z93\0\14c2..z93\0\14
+ ..controls z93\0\15c1 and z93\0\15c2..z93\0\15
+ ..controls z93\0\16c1 and z93\0\16c2..z93\0\16
+ ..controls z93\0\17c1 and z93\0\17c2..z93\0\17
+ ..controls z93\0\18c1 and z93\0\18c2..cycle;
+ fill_or_unfill z93\1\0s
+ ..controls z93\1\0c1 and z93\1\0c2..z93\1\0
+ ..controls z93\1\1c1 and z93\1\1c2..z93\1\1
+ ..controls z93\1\2c1 and z93\1\2c2..z93\1\2
+ ..controls z93\1\3c1 and z93\1\3c2..cycle;
+ fill_or_unfill z93\2\0s
+ --z93\2\0
+ --z93\2\1
+ --cycle;
+ proof_labels (
+ 93\0\0,
+ 93\0\1,
+ 93\0\2,
+ 93\0\3,
+ 93\0\4,
+ 93\0\5,
+ 93\0\6,
+ 93\0\7,
+ 93\0\8,
+ 93\0\9,
+ 93\0\10,
+ 93\0\11,
+ 93\0\12,
+ 93\0\13,
+ 93\0\14,
+ 93\0\15,
+ 93\0\16,
+ 93\0\17,
+ 93\0\18,
+ 93\1\0,
+ 93\1\1,
+ 93\1\2,
+ 93\1\3,
+ 93\2\0,
+ 93\2\1,
+ 93\2\2,
+);
+endchar;
+
+beginchar (204, 9.395u#, 6.745u#, 6.504u#);
+ "pra";
+ z94\0\0s = (1.445u,5.300u);
+ z94\0\0 = (1.927u,5.059u);
+ z94\0\1 = (2.168u,5.059u);
+ z94\0\2c1 = (1.406u,3.683u);
+ z94\0\2c2 = (0.645u,2.055u);
+ z94\0\2 = (0.482u,0.482u);
+ z94\0\3 = (2.650u,0.679u);
+ z94\0\4c1 = (4.394u,0.802u);
+ z94\0\4c2 = (7.356u,-0.196u);
+ z94\0\4 = (8.047u,-1.936u);
+ z94\0\5c1 = (8.352u,-2.704u);
+ z94\0\5c2 = (8.429u,-4.672u);
+ z94\0\5 = (8.431u,-5.541u);
+ z94\0\6c1 = (7.756u,-4.871u);
+ z94\0\6c2 = (7.088u,-4.156u);
+ z94\0\6 = (6.263u,-3.667u);
+ z94\0\7c1 = (5.287u,-3.087u);
+ z94\0\7c2 = (2.490u,-2.316u);
+ z94\0\7 = (1.692u,-3.476u);
+ z94\0\8c1 = (1.465u,-3.805u);
+ z94\0\8c2 = (1.477u,-4.199u);
+ z94\0\8 = (1.445u,-4.577u);
+ z94\0\9c1 = (3.067u,-4.446u);
+ z94\0\9c2 = (4.733u,-4.029u);
+ z94\0\9 = (6.263u,-4.850u);
+ z94\0\10 = (7.950u,-6.023u);
+ z94\0\11 = (8.679u,-6.263u);
+ z94\0\12 = (8.679u,3.132u);
+ z94\0\13 = (8.679u,4.336u);
+ z94\0\14c1 = (8.737u,4.968u);
+ z94\0\14c2 = (9.145u,6.272u);
+ z94\0\14 = (8.360u,6.587u);
+ z94\0\15c1 = (7.988u,6.737u);
+ z94\0\15c2 = (7.536u,6.582u);
+ z94\0\15 = (7.402u,6.188u);
+ z94\0\16c1 = (7.256u,5.759u);
+ z94\0\16c2 = (8.068u,3.407u);
+ z94\0\16 = (8.170u,2.650u);
+ z94\0\17c1 = (8.275u,1.474u);
+ z94\0\17c2 = (8.190u,0.221u);
+ z94\0\17 = (8.170u,-0.964u);
+ z94\0\18c1 = (7.712u,-0.394u);
+ z94\0\18c2 = (7.266u,0.259u);
+ z94\0\18 = (6.695u,0.740u);
+ z94\0\19c1 = (5.400u,1.832u);
+ z94\0\19c2 = (3.106u,2.273u);
+ z94\0\19 = (1.445u,2.409u);
+ z94\0\20c1 = (3.554u,7.128u);
+ z94\0\20c2 = (5.304u,3.898u);
+ z94\0\20 = (5.782u,6.745u);
+ z94\0\21c1 = (4.867u,6.745u);
+ z94\0\21c2 = (2.511u,6.926u);
+ z94\0\21 = (1.864u,6.306u);
+ z94\0\22c1 = (1.565u,6.020u);
+ z94\0\22c2 = (1.531u,5.676u);
+ fill_or_unfill z94\0\0s
+ --z94\0\0
+ --z94\0\1
+ ..controls z94\0\2c1 and z94\0\2c2..z94\0\2
+ --z94\0\3
+ ..controls z94\0\4c1 and z94\0\4c2..z94\0\4
+ ..controls z94\0\5c1 and z94\0\5c2..z94\0\5
+ ..controls z94\0\6c1 and z94\0\6c2..z94\0\6
+ ..controls z94\0\7c1 and z94\0\7c2..z94\0\7
+ ..controls z94\0\8c1 and z94\0\8c2..z94\0\8
+ ..controls z94\0\9c1 and z94\0\9c2..z94\0\9
+ --z94\0\10
+ --z94\0\11
+ --z94\0\12
+ --z94\0\13
+ ..controls z94\0\14c1 and z94\0\14c2..z94\0\14
+ ..controls z94\0\15c1 and z94\0\15c2..z94\0\15
+ ..controls z94\0\16c1 and z94\0\16c2..z94\0\16
+ ..controls z94\0\17c1 and z94\0\17c2..z94\0\17
+ ..controls z94\0\18c1 and z94\0\18c2..z94\0\18
+ ..controls z94\0\19c1 and z94\0\19c2..z94\0\19
+ ..controls z94\0\20c1 and z94\0\20c2..z94\0\20
+ ..controls z94\0\21c1 and z94\0\21c2..z94\0\21
+ ..controls z94\0\22c1 and z94\0\22c2..cycle;
+ proof_labels (
+ 94\0\0,
+ 94\0\1,
+ 94\0\2,
+ 94\0\3,
+ 94\0\4,
+ 94\0\5,
+ 94\0\6,
+ 94\0\7,
+ 94\0\8,
+ 94\0\9,
+ 94\0\10,
+ 94\0\11,
+ 94\0\12,
+ 94\0\13,
+ 94\0\14,
+ 94\0\15,
+ 94\0\16,
+ 94\0\17,
+ 94\0\18,
+ 94\0\19,
+ 94\0\20,
+ 94\0\21,
+ 94\0\22,
+);
+endchar;
+
+beginchar (205, 9.877u#, 6.745u#, 5.782u#);
+ "phra";
+ z95\0\0s = (0.964u,5.300u);
+ z95\0\0 = (2.409u,5.300u);
+ z95\0\1c1 = (1.557u,3.804u);
+ z95\0\1c2 = (0.662u,2.217u);
+ z95\0\1 = (0.482u,0.482u);
+ z95\0\2 = (2.891u,0.918u);
+ z95\0\3c1 = (4.595u,0.956u);
+ z95\0\3c2 = (7.567u,0.025u);
+ z95\0\3 = (8.254u,-1.696u);
+ z95\0\4c1 = (8.513u,-2.346u);
+ z95\0\4c2 = (8.431u,-3.610u);
+ z95\0\4 = (8.431u,-4.336u);
+ z95\0\5c1 = (7.193u,-3.009u);
+ z95\0\5c2 = (5.539u,-1.758u);
+ z95\0\5 = (3.617u,-1.954u);
+ z95\0\6c1 = (2.454u,-2.072u);
+ z95\0\6c2 = (2.293u,-2.565u);
+ z95\0\6 = (2.168u,-3.613u);
+ z95\0\7 = (4.336u,-3.385u);
+ z95\0\8c1 = (6.051u,-3.360u);
+ z95\0\8c2 = (7.424u,-4.204u);
+ z95\0\8 = (8.431u,-5.541u);
+ z95\0\9 = (8.654u,-5.005u);
+ z95\0\10c1 = (8.756u,-4.269u);
+ z95\0\10c2 = (8.672u,-3.401u);
+ z95\0\10 = (8.654u,-2.650u);
+ z95\0\11 = (8.654u,1.445u);
+ z95\0\12c1 = (8.674u,2.585u);
+ z95\0\12c2 = (8.779u,3.696u);
+ z95\0\12 = (8.988u,4.818u);
+ z95\0\13 = (9.395u,6.745u);
+ z95\0\14c1 = (8.786u,6.745u);
+ z95\0\14c2 = (7.183u,6.918u);
+ z95\0\14 = (6.922u,6.220u);
+ z95\0\15c1 = (6.790u,5.868u);
+ z95\0\15c2 = (7.017u,5.737u);
+ z95\0\15 = (7.227u,5.541u);
+ z95\0\16c1 = (6.920u,5.113u);
+ z95\0\16c2 = (6.628u,4.731u);
+ z95\0\16 = (6.253u,4.357u);
+ z95\0\17c1 = (5.439u,3.548u);
+ z95\0\17c2 = (4.858u,3.247u);
+ z95\0\17 = (4.336u,2.168u);
+ z95\0\18c1 = (3.357u,2.446u);
+ z95\0\18c2 = (2.454u,2.409u);
+ z95\0\18 = (1.445u,2.409u);
+ z95\0\19c1 = (1.892u,3.277u);
+ z95\0\19c2 = (2.459u,4.202u);
+ z95\0\19 = (3.243u,4.811u);
+ z95\0\20c1 = (4.350u,5.670u);
+ z95\0\20c2 = (5.005u,4.987u);
+ z95\0\20 = (5.300u,6.745u);
+ z95\0\21c1 = (4.484u,6.745u);
+ z95\0\21c2 = (1.686u,6.962u);
+ z95\0\21 = (1.210u,6.360u);
+ z95\0\22c1 = (0.974u,6.063u);
+ z95\0\22c2 = (0.993u,5.654u);
+ z95\1\0s = (7.709u,4.336u);
+ z95\1\0 = (8.431u,-0.241u);
+ z95\1\1c1 = (7.148u,0.337u);
+ z95\1\1c2 = (6.099u,1.302u);
+ z95\1\1 = (4.818u,1.927u);
+ z95\1\2c1 = (5.252u,3.371u);
+ z95\1\2c2 = (6.329u,3.933u);
+ fill_or_unfill z95\0\0s
+ --z95\0\0
+ ..controls z95\0\1c1 and z95\0\1c2..z95\0\1
+ --z95\0\2
+ ..controls z95\0\3c1 and z95\0\3c2..z95\0\3
+ ..controls z95\0\4c1 and z95\0\4c2..z95\0\4
+ ..controls z95\0\5c1 and z95\0\5c2..z95\0\5
+ ..controls z95\0\6c1 and z95\0\6c2..z95\0\6
+ --z95\0\7
+ ..controls z95\0\8c1 and z95\0\8c2..z95\0\8
+ --z95\0\9
+ ..controls z95\0\10c1 and z95\0\10c2..z95\0\10
+ --z95\0\11
+ ..controls z95\0\12c1 and z95\0\12c2..z95\0\12
+ --z95\0\13
+ ..controls z95\0\14c1 and z95\0\14c2..z95\0\14
+ ..controls z95\0\15c1 and z95\0\15c2..z95\0\15
+ ..controls z95\0\16c1 and z95\0\16c2..z95\0\16
+ ..controls z95\0\17c1 and z95\0\17c2..z95\0\17
+ ..controls z95\0\18c1 and z95\0\18c2..z95\0\18
+ ..controls z95\0\19c1 and z95\0\19c2..z95\0\19
+ ..controls z95\0\20c1 and z95\0\20c2..z95\0\20
+ ..controls z95\0\21c1 and z95\0\21c2..z95\0\21
+ ..controls z95\0\22c1 and z95\0\22c2..cycle;
+ fill_or_unfill z95\1\0s
+ --z95\1\0
+ ..controls z95\1\1c1 and z95\1\1c2..z95\1\1
+ ..controls z95\1\2c1 and z95\1\2c2..cycle;
+ proof_labels (
+ 95\0\0,
+ 95\0\1,
+ 95\0\2,
+ 95\0\3,
+ 95\0\4,
+ 95\0\5,
+ 95\0\6,
+ 95\0\7,
+ 95\0\8,
+ 95\0\9,
+ 95\0\10,
+ 95\0\11,
+ 95\0\12,
+ 95\0\13,
+ 95\0\14,
+ 95\0\15,
+ 95\0\16,
+ 95\0\17,
+ 95\0\18,
+ 95\0\19,
+ 95\0\20,
+ 95\0\21,
+ 95\0\22,
+ 95\1\0,
+ 95\1\1,
+ 95\1\2,
+);
+endchar;
+
+beginchar (206, 9.154u#, 6.745u#, 5.782u#);
+ "bra";
+ z96\0\0s = (2.184u,5.300u);
+ z96\0\0c1 = (1.534u,3.538u);
+ z96\0\0c2 = (1.009u,2.957u);
+ z96\0\0 = (0.964u,0.964u);
+ z96\0\1c1 = (3.125u,1.351u);
+ z96\0\1c2 = (5.110u,1.345u);
+ z96\0\1 = (6.917u,-0.106u);
+ z96\0\2c1 = (7.361u,-0.463u);
+ z96\0\2c2 = (7.848u,-0.922u);
+ z96\0\2 = (8.050u,-1.467u);
+ z96\0\3c1 = (8.277u,-2.080u);
+ z96\0\3c2 = (8.190u,-4.062u);
+ z96\0\3 = (8.190u,-4.818u);
+ z96\0\4c1 = (6.619u,-3.282u);
+ z96\0\4c2 = (5.218u,-2.045u);
+ z96\0\4 = (2.892u,-2.178u);
+ z96\0\5c1 = (2.386u,-2.208u);
+ z96\0\5c2 = (1.982u,-2.257u);
+ z96\0\5 = (1.572u,-2.587u);
+ z96\0\6c1 = (1.045u,-3.011u);
+ z96\0\6c2 = (0.751u,-3.735u);
+ z96\0\6 = (0.482u,-4.364u);
+ z96\0\7c1 = (0.751u,-4.372u);
+ z96\0\7c2 = (0.919u,-4.437u);
+ z96\0\7 = (1.204u,-4.364u);
+ z96\0\8c1 = (1.558u,-4.335u);
+ z96\0\8c2 = (1.851u,-4.142u);
+ z96\0\8 = (2.167u,-3.994u);
+ z96\0\9c1 = (2.841u,-3.677u);
+ z96\0\9c2 = (3.169u,-3.548u);
+ z96\0\9 = (3.924u,-3.583u);
+ z96\0\10c1 = (6.359u,-3.695u);
+ z96\0\10c2 = (6.490u,-4.880u);
+ z96\0\10 = (8.431u,-5.541u);
+ z96\0\11 = (8.431u,3.372u);
+ z96\0\12 = (8.672u,6.710u);
+ z96\0\13 = (3.372u,6.710u);
+ z96\0\14c1 = (3.026u,6.740u);
+ z96\0\14c2 = (2.527u,6.747u);
+ z96\0\14 = (2.184u,6.710u);
+ z96\0\15c1 = (1.241u,6.334u);
+ z96\0\15c2 = (1.527u,5.727u);
+ z96\1\0s = (7.929u,0.000u);
+ z96\1\0c1 = (7.296u,0.363u);
+ z96\1\0c2 = (6.852u,0.867u);
+ z96\1\0 = (6.260u,1.313u);
+ z96\1\1c1 = (4.554u,2.599u);
+ z96\1\1c2 = (3.473u,2.650u);
+ z96\1\1 = (1.445u,2.650u);
+ z96\1\2c1 = (1.685u,3.469u);
+ z96\1\2c2 = (2.007u,4.296u);
+ z96\1\2 = (2.729u,4.816u);
+ z96\1\3c1 = (2.999u,5.011u);
+ z96\1\3c2 = (3.294u,5.130u);
+ z96\1\3 = (3.617u,5.205u);
+ z96\1\4c1 = (4.288u,5.363u);
+ z96\1\4c2 = (6.744u,5.476u);
+ z96\1\4 = (7.185u,4.921u);
+ z96\1\5c1 = (7.434u,4.608u);
+ z96\1\5c2 = (7.856u,1.977u);
+ z96\1\5 = (7.929u,1.445u);
+ fill_or_unfill z96\0\0s
+ ..controls z96\0\0c1 and z96\0\0c2..z96\0\0
+ ..controls z96\0\1c1 and z96\0\1c2..z96\0\1
+ ..controls z96\0\2c1 and z96\0\2c2..z96\0\2
+ ..controls z96\0\3c1 and z96\0\3c2..z96\0\3
+ ..controls z96\0\4c1 and z96\0\4c2..z96\0\4
+ ..controls z96\0\5c1 and z96\0\5c2..z96\0\5
+ ..controls z96\0\6c1 and z96\0\6c2..z96\0\6
+ ..controls z96\0\7c1 and z96\0\7c2..z96\0\7
+ ..controls z96\0\8c1 and z96\0\8c2..z96\0\8
+ ..controls z96\0\9c1 and z96\0\9c2..z96\0\9
+ ..controls z96\0\10c1 and z96\0\10c2..z96\0\10
+ --z96\0\11
+ --z96\0\12
+ --z96\0\13
+ ..controls z96\0\14c1 and z96\0\14c2..z96\0\14
+ ..controls z96\0\15c1 and z96\0\15c2..cycle;
+ fill_or_unfill z96\1\0s
+ ..controls z96\1\0c1 and z96\1\0c2..z96\1\0
+ ..controls z96\1\1c1 and z96\1\1c2..z96\1\1
+ ..controls z96\1\2c1 and z96\1\2c2..z96\1\2
+ ..controls z96\1\3c1 and z96\1\3c2..z96\1\3
+ ..controls z96\1\4c1 and z96\1\4c2..z96\1\4
+ ..controls z96\1\5c1 and z96\1\5c2..z96\1\5
+ --cycle;
+ proof_labels (
+ 96\0\0,
+ 96\0\1,
+ 96\0\2,
+ 96\0\3,
+ 96\0\4,
+ 96\0\5,
+ 96\0\6,
+ 96\0\7,
+ 96\0\8,
+ 96\0\9,
+ 96\0\10,
+ 96\0\11,
+ 96\0\12,
+ 96\0\13,
+ 96\0\14,
+ 96\0\15,
+ 96\1\0,
+ 96\1\1,
+ 96\1\2,
+ 96\1\3,
+ 96\1\4,
+ 96\1\5,
+ 96\1\6,
+);
+endchar;
+
+beginchar (207, 10.359u#, 6.745u#, 6.022u#);
+ "mra";
+ z97\0\0s = (1.686u,5.300u);
+ z97\0\0c1 = (2.639u,4.987u);
+ z97\0\0c2 = (2.714u,4.738u);
+ z97\0\0 = (3.132u,3.854u);
+ z97\0\1c1 = (2.066u,3.792u);
+ z97\0\1c2 = (1.381u,3.671u);
+ z97\0\1 = (0.832u,2.639u);
+ z97\0\2c1 = (-0.644u,-0.133u);
+ z97\0\2c2 = (3.091u,-1.413u);
+ z97\0\2 = (4.090u,0.276u);
+ z97\0\3c1 = (4.387u,0.779u);
+ z97\0\3c2 = (4.334u,1.596u);
+ z97\0\3 = (4.336u,2.168u);
+ z97\0\4c1 = (6.112u,1.751u);
+ z97\0\4c2 = (8.445u,0.505u);
+ z97\0\4 = (8.880u,-1.445u);
+ z97\0\5c1 = (9.044u,-2.400u);
+ z97\0\5c2 = (8.913u,-3.595u);
+ z97\0\5 = (8.880u,-4.577u);
+ z97\0\6c1 = (7.485u,-3.698u);
+ z97\0\6c2 = (5.402u,-1.983u);
+ z97\0\6 = (3.618u,-2.532u);
+ z97\0\7c1 = (2.727u,-2.806u);
+ z97\0\7c2 = (2.552u,-3.254u);
+ z97\0\7 = (2.409u,-4.095u);
+ z97\0\8c1 = (4.261u,-4.055u);
+ z97\0\8c2 = (5.158u,-3.530u);
+ z97\0\8 = (6.983u,-4.415u);
+ z97\0\9 = (8.712u,-5.550u);
+ z97\0\10 = (9.419u,-5.782u);
+ z97\0\11 = (9.419u,2.891u);
+ z97\0\12 = (9.419u,4.336u);
+ z97\0\13 = (9.877u,6.745u);
+ z97\0\14c1 = (9.410u,6.739u);
+ z97\0\14c2 = (8.510u,6.809u);
+ z97\0\14 = (8.174u,6.360u);
+ z97\0\15c1 = (8.097u,6.169u);
+ z97\0\15c2 = (8.110u,5.983u);
+ z97\0\15 = (8.174u,5.768u);
+ z97\0\16 = (8.490u,4.095u);
+ z97\0\17 = (8.712u,2.168u);
+ z97\0\18 = (8.913u,0.241u);
+ z97\0\19c1 = (8.178u,1.137u);
+ z97\0\19c2 = (7.455u,2.056u);
+ z97\0\19 = (6.504u,2.738u);
+ z97\0\20c1 = (5.062u,3.772u);
+ z97\0\20c2 = (4.345u,3.533u);
+ z97\0\20 = (3.372u,5.300u);
+ z97\0\21c1 = (4.191u,5.300u);
+ z97\0\21c2 = (5.747u,5.102u);
+ z97\0\21 = (6.258u,5.857u);
+ z97\0\22c1 = (6.446u,6.135u);
+ z97\0\22c2 = (6.452u,6.431u);
+ z97\0\22 = (6.504u,6.745u);
+ z97\0\23c1 = (5.566u,6.745u);
+ z97\0\23c2 = (2.690u,6.977u);
+ z97\0\23 = (2.071u,6.360u);
+ z97\0\24c1 = (1.766u,6.056u);
+ z97\0\24c2 = (1.752u,5.694u);
+ z97\1\0s = (2.418u,2.522u);
+ z97\1\0c1 = (2.744u,2.567u);
+ z97\1\0c2 = (2.996u,2.635u);
+ z97\1\0 = (3.318u,2.522u);
+ z97\1\1c1 = (4.459u,2.031u);
+ z97\1\1c2 = (4.221u,0.227u);
+ z97\1\1 = (2.887u,-0.059u);
+ z97\1\2c1 = (1.505u,-0.355u);
+ z97\1\2c2 = (0.764u,1.355u);
+ z97\1\2 = (1.790u,2.231u);
+ z97\1\3c1 = (1.998u,2.409u);
+ z97\1\3c2 = (2.180u,2.439u);
+ fill_or_unfill z97\0\0s
+ ..controls z97\0\0c1 and z97\0\0c2..z97\0\0
+ ..controls z97\0\1c1 and z97\0\1c2..z97\0\1
+ ..controls z97\0\2c1 and z97\0\2c2..z97\0\2
+ ..controls z97\0\3c1 and z97\0\3c2..z97\0\3
+ ..controls z97\0\4c1 and z97\0\4c2..z97\0\4
+ ..controls z97\0\5c1 and z97\0\5c2..z97\0\5
+ ..controls z97\0\6c1 and z97\0\6c2..z97\0\6
+ ..controls z97\0\7c1 and z97\0\7c2..z97\0\7
+ ..controls z97\0\8c1 and z97\0\8c2..z97\0\8
+ --z97\0\9
+ --z97\0\10
+ --z97\0\11
+ --z97\0\12
+ --z97\0\13
+ ..controls z97\0\14c1 and z97\0\14c2..z97\0\14
+ ..controls z97\0\15c1 and z97\0\15c2..z97\0\15
+ --z97\0\16
+ --z97\0\17
+ --z97\0\18
+ ..controls z97\0\19c1 and z97\0\19c2..z97\0\19
+ ..controls z97\0\20c1 and z97\0\20c2..z97\0\20
+ ..controls z97\0\21c1 and z97\0\21c2..z97\0\21
+ ..controls z97\0\22c1 and z97\0\22c2..z97\0\22
+ ..controls z97\0\23c1 and z97\0\23c2..z97\0\23
+ ..controls z97\0\24c1 and z97\0\24c2..cycle;
+ fill_or_unfill z97\1\0s
+ ..controls z97\1\0c1 and z97\1\0c2..z97\1\0
+ ..controls z97\1\1c1 and z97\1\1c2..z97\1\1
+ ..controls z97\1\2c1 and z97\1\2c2..z97\1\2
+ ..controls z97\1\3c1 and z97\1\3c2..cycle;
+ proof_labels (
+ 97\0\0,
+ 97\0\1,
+ 97\0\2,
+ 97\0\3,
+ 97\0\4,
+ 97\0\5,
+ 97\0\6,
+ 97\0\7,
+ 97\0\8,
+ 97\0\9,
+ 97\0\10,
+ 97\0\11,
+ 97\0\12,
+ 97\0\13,
+ 97\0\14,
+ 97\0\15,
+ 97\0\16,
+ 97\0\17,
+ 97\0\18,
+ 97\0\19,
+ 97\0\20,
+ 97\0\21,
+ 97\0\22,
+ 97\0\23,
+ 97\0\24,
+ 97\1\0,
+ 97\1\1,
+ 97\1\2,
+ 97\1\3,
+);
+endchar;
+
+beginchar (208, 11.804u#, 6.745u#, 6.986u#);
+ "shra";
+ z98\0\0s = (4.336u,0.000u);
+ z98\0\0c1 = (2.859u,1.071u);
+ z98\0\0c2 = (2.411u,1.806u);
+ z98\0\0 = (0.482u,2.168u);
+ z98\0\1c1 = (0.568u,-0.281u);
+ z98\0\1c2 = (1.667u,0.786u);
+ z98\0\1 = (3.059u,-0.363u);
+ z98\0\2 = (4.577u,-1.927u);
+ z98\0\3 = (4.577u,1.686u);
+ z98\0\4c1 = (5.683u,0.381u);
+ z98\0\4c2 = (6.995u,-0.144u);
+ z98\0\4 = (8.672u,0.479u);
+ z98\0\5 = (10.128u,1.204u);
+ z98\0\6 = (10.128u,-2.409u);
+ z98\0\7 = (10.359u,-5.059u);
+ z98\0\8c1 = (9.808u,-4.595u);
+ z98\0\8c2 = (9.304u,-4.064u);
+ z98\0\8 = (8.669u,-3.715u);
+ z98\0\9c1 = (7.656u,-3.154u);
+ z98\0\9c2 = (5.348u,-2.722u);
+ z98\0\9 = (4.480u,-3.715u);
+ z98\0\10c1 = (4.187u,-4.053u);
+ z98\0\10c2 = (4.164u,-4.404u);
+ z98\0\10 = (4.095u,-4.818u);
+ z98\0\11 = (6.022u,-4.489u);
+ z98\0\12c1 = (6.910u,-4.428u);
+ z98\0\12c2 = (8.329u,-4.810u);
+ z98\0\12 = (9.049u,-5.334u);
+ z98\0\13c1 = (9.695u,-5.804u);
+ z98\0\13c2 = (10.117u,-6.357u);
+ z98\0\13 = (10.876u,-6.745u);
+ z98\0\14 = (10.876u,1.686u);
+ z98\0\15c1 = (10.841u,2.337u);
+ z98\0\15c2 = (10.845u,2.969u);
+ z98\0\15 = (10.876u,3.613u);
+ z98\0\16 = (11.225u,5.530u);
+ z98\0\17c1 = (11.273u,5.741u);
+ z98\0\17c2 = (11.273u,5.964u);
+ z98\0\17 = (11.225u,6.160u);
+ z98\0\18c1 = (10.887u,6.787u);
+ z98\0\18c2 = (9.978u,6.736u);
+ z98\0\18 = (9.395u,6.744u);
+ z98\0\19c1 = (8.710u,6.753u);
+ z98\0\19c2 = (7.887u,6.797u);
+ z98\0\19 = (7.227u,6.608u);
+ z98\0\20c1 = (6.658u,6.445u);
+ z98\0\20c2 = (6.229u,6.161u);
+ z98\0\20 = (5.807u,5.750u);
+ z98\0\21c1 = (4.237u,4.222u);
+ z98\0\21c2 = (4.336u,2.014u);
+ z98\1\0s = (8.430u,5.177u);
+ z98\1\0c1 = (8.778u,5.110u);
+ z98\1\0c2 = (9.022u,5.113u);
+ z98\1\0 = (9.319u,4.878u);
+ z98\1\1c1 = (9.799u,4.498u);
+ z98\1\1c2 = (9.862u,3.942u);
+ z98\1\1 = (9.869u,3.372u);
+ z98\1\2c1 = (9.887u,1.828u);
+ z98\1\2c2 = (9.090u,0.751u);
+ z98\1\2 = (7.468u,0.743u);
+ z98\1\3c1 = (4.667u,0.730u);
+ z98\1\3c2 = (4.336u,3.745u);
+ z98\1\3 = (6.308u,4.785u);
+ z98\1\4c1 = (6.887u,5.091u);
+ z98\1\4c2 = (7.781u,5.137u);
+ fill_or_unfill z98\0\0s
+ ..controls z98\0\0c1 and z98\0\0c2..z98\0\0
+ ..controls z98\0\1c1 and z98\0\1c2..z98\0\1
+ --z98\0\2
+ --z98\0\3
+ ..controls z98\0\4c1 and z98\0\4c2..z98\0\4
+ --z98\0\5
+ --z98\0\6
+ --z98\0\7
+ ..controls z98\0\8c1 and z98\0\8c2..z98\0\8
+ ..controls z98\0\9c1 and z98\0\9c2..z98\0\9
+ ..controls z98\0\10c1 and z98\0\10c2..z98\0\10
+ --z98\0\11
+ ..controls z98\0\12c1 and z98\0\12c2..z98\0\12
+ ..controls z98\0\13c1 and z98\0\13c2..z98\0\13
+ --z98\0\14
+ ..controls z98\0\15c1 and z98\0\15c2..z98\0\15
+ --z98\0\16
+ ..controls z98\0\17c1 and z98\0\17c2..z98\0\17
+ ..controls z98\0\18c1 and z98\0\18c2..z98\0\18
+ ..controls z98\0\19c1 and z98\0\19c2..z98\0\19
+ ..controls z98\0\20c1 and z98\0\20c2..z98\0\20
+ ..controls z98\0\21c1 and z98\0\21c2..cycle;
+ fill_or_unfill z98\1\0s
+ ..controls z98\1\0c1 and z98\1\0c2..z98\1\0
+ ..controls z98\1\1c1 and z98\1\1c2..z98\1\1
+ ..controls z98\1\2c1 and z98\1\2c2..z98\1\2
+ ..controls z98\1\3c1 and z98\1\3c2..z98\1\3
+ ..controls z98\1\4c1 and z98\1\4c2..cycle;
+ proof_labels (
+ 98\0\0,
+ 98\0\1,
+ 98\0\2,
+ 98\0\3,
+ 98\0\4,
+ 98\0\5,
+ 98\0\6,
+ 98\0\7,
+ 98\0\8,
+ 98\0\9,
+ 98\0\10,
+ 98\0\11,
+ 98\0\12,
+ 98\0\13,
+ 98\0\14,
+ 98\0\15,
+ 98\0\16,
+ 98\0\17,
+ 98\0\18,
+ 98\0\19,
+ 98\0\20,
+ 98\0\21,
+ 98\1\0,
+ 98\1\1,
+ 98\1\2,
+ 98\1\3,
+ 98\1\4,
+);
+endchar;
+
+beginchar (209, 10.359u#, 6.745u#, 5.300u#);
+ "sra";
+ z99\0\0s = (2.168u,5.059u);
+ z99\0\0c1 = (1.465u,3.824u);
+ z99\0\0c2 = (0.853u,2.581u);
+ z99\0\0 = (0.482u,1.204u);
+ z99\0\1c1 = (1.422u,0.917u);
+ z99\0\1c2 = (2.495u,0.853u);
+ z99\0\1 = (3.363u,0.376u);
+ z99\0\2 = (5.300u,-1.204u);
+ z99\0\3c1 = (4.644u,1.410u);
+ z99\0\3c2 = (2.929u,1.735u);
+ z99\0\3 = (1.927u,3.854u);
+ z99\0\4c1 = (2.663u,3.599u);
+ z99\0\4c2 = (3.403u,3.342u);
+ z99\0\4 = (4.095u,2.979u);
+ z99\0\5c1 = (5.456u,2.266u);
+ z99\0\5c2 = (8.135u,0.209u);
+ z99\0\5 = (8.708u,-1.204u);
+ z99\0\6c1 = (9.006u,-1.942u);
+ z99\0\6c2 = (8.913u,-3.055u);
+ z99\0\6 = (8.913u,-3.854u);
+ z99\0\7c1 = (7.046u,-2.806u);
+ z99\0\7c2 = (6.393u,-1.915u);
+ z99\0\7 = (4.095u,-1.929u);
+ z99\0\8c1 = (2.637u,-1.938u);
+ z99\0\8c2 = (2.406u,-2.202u);
+ z99\0\8 = (2.168u,-3.672u);
+ z99\0\9c1 = (3.485u,-3.609u);
+ z99\0\9c2 = (4.727u,-3.387u);
+ z99\0\9 = (6.022u,-3.672u);
+ z99\0\10c1 = (7.214u,-4.047u);
+ z99\0\10c2 = (8.213u,-4.749u);
+ z99\0\10 = (9.395u,-5.059u);
+ z99\0\11 = (9.395u,2.168u);
+ z99\0\12c1 = (9.403u,3.732u);
+ z99\0\12c2 = (9.843u,5.189u);
+ z99\0\12 = (9.877u,6.745u);
+ z99\0\13c1 = (9.362u,6.743u);
+ z99\0\13c2 = (8.303u,6.833u);
+ z99\0\13 = (7.967u,6.369u);
+ z99\0\14c1 = (7.609u,5.875u);
+ z99\0\14c2 = (8.240u,5.065u);
+ z99\0\14 = (8.400u,4.568u);
+ z99\0\15c1 = (8.600u,3.945u);
+ z99\0\15c2 = (8.633u,3.294u);
+ z99\0\15 = (8.709u,2.650u);
+ z99\0\16 = (8.913u,0.482u);
+ z99\0\17c1 = (7.914u,1.231u);
+ z99\0\17c2 = (7.234u,2.193u);
+ z99\0\17 = (6.402u,3.110u);
+ z99\0\18 = (4.336u,5.300u);
+ z99\0\19c1 = (4.573u,5.340u);
+ z99\0\19c2 = (4.795u,5.339u);
+ z99\0\19 = (5.023u,5.441u);
+ z99\0\20c1 = (5.544u,5.676u);
+ z99\0\20c2 = (5.856u,6.276u);
+ z99\0\20 = (5.220u,6.646u);
+ z99\0\21c1 = (4.818u,6.806u);
+ z99\0\21c2 = (2.660u,6.783u);
+ z99\0\21 = (2.173u,6.646u);
+ z99\0\22c1 = (1.567u,6.576u);
+ z99\0\22c2 = (0.606u,5.932u);
+ z99\0\22 = (1.353u,5.304u);
+ z99\0\23c1 = (1.590u,5.105u);
+ z99\0\23c2 = (1.886u,5.108u);
+ fill_or_unfill z99\0\0s
+ ..controls z99\0\0c1 and z99\0\0c2..z99\0\0
+ ..controls z99\0\1c1 and z99\0\1c2..z99\0\1
+ --z99\0\2
+ ..controls z99\0\3c1 and z99\0\3c2..z99\0\3
+ ..controls z99\0\4c1 and z99\0\4c2..z99\0\4
+ ..controls z99\0\5c1 and z99\0\5c2..z99\0\5
+ ..controls z99\0\6c1 and z99\0\6c2..z99\0\6
+ ..controls z99\0\7c1 and z99\0\7c2..z99\0\7
+ ..controls z99\0\8c1 and z99\0\8c2..z99\0\8
+ ..controls z99\0\9c1 and z99\0\9c2..z99\0\9
+ ..controls z99\0\10c1 and z99\0\10c2..z99\0\10
+ --z99\0\11
+ ..controls z99\0\12c1 and z99\0\12c2..z99\0\12
+ ..controls z99\0\13c1 and z99\0\13c2..z99\0\13
+ ..controls z99\0\14c1 and z99\0\14c2..z99\0\14
+ ..controls z99\0\15c1 and z99\0\15c2..z99\0\15
+ --z99\0\16
+ ..controls z99\0\17c1 and z99\0\17c2..z99\0\17
+ --z99\0\18
+ ..controls z99\0\19c1 and z99\0\19c2..z99\0\19
+ ..controls z99\0\20c1 and z99\0\20c2..z99\0\20
+ ..controls z99\0\21c1 and z99\0\21c2..z99\0\21
+ ..controls z99\0\22c1 and z99\0\22c2..z99\0\22
+ ..controls z99\0\23c1 and z99\0\23c2..cycle;
+ proof_labels (
+ 99\0\0,
+ 99\0\1,
+ 99\0\2,
+ 99\0\3,
+ 99\0\4,
+ 99\0\5,
+ 99\0\6,
+ 99\0\7,
+ 99\0\8,
+ 99\0\9,
+ 99\0\10,
+ 99\0\11,
+ 99\0\12,
+ 99\0\13,
+ 99\0\14,
+ 99\0\15,
+ 99\0\16,
+ 99\0\17,
+ 99\0\18,
+ 99\0\19,
+ 99\0\20,
+ 99\0\21,
+ 99\0\22,
+ 99\0\23,
+);
+endchar;
+
+beginchar (210, 9.154u#, 6.745u#, 6.022u#);
+ "hra";
+ z100\0\0s = (0.482u,1.686u);
+ z100\0\0c1 = (0.952u,1.744u);
+ z100\0\0c2 = (1.453u,1.847u);
+ z100\0\0 = (1.927u,1.808u);
+ z100\0\1c1 = (3.137u,1.708u);
+ z100\0\1c2 = (4.100u,0.911u);
+ z100\0\1 = (4.862u,0.000u);
+ z100\0\2c1 = (4.867u,0.204u);
+ z100\0\2c2 = (4.931u,0.305u);
+ z100\0\2 = (4.862u,0.536u);
+ z100\0\3c1 = (4.851u,1.080u);
+ z100\0\3c2 = (4.308u,1.723u);
+ z100\0\3 = (4.506u,2.235u);
+ z100\0\4c1 = (4.604u,2.490u);
+ z100\0\4c2 = (4.855u,2.665u);
+ z100\0\4 = (5.107u,2.746u);
+ z100\0\5c1 = (6.277u,3.120u);
+ z100\0\5c2 = (7.426u,1.931u);
+ z100\0\5 = (7.846u,0.963u);
+ z100\0\6c1 = (7.991u,0.628u);
+ z100\0\6c2 = (8.063u,0.368u);
+ z100\0\6 = (8.050u,0.000u);
+ z100\0\7c1 = (8.027u,-0.640u);
+ z100\0\7c2 = (6.913u,-3.922u);
+ z100\0\7 = (6.579u,-4.550u);
+ z100\0\8c1 = (6.417u,-4.855u);
+ z100\0\8c2 = (6.246u,-5.046u);
+ z100\0\8 = (6.022u,-5.300u);
+ z100\0\9c1 = (5.948u,-4.841u);
+ z100\0\9c2 = (5.900u,-4.502u);
+ z100\0\9 = (5.638u,-4.099u);
+ z100\0\10c1 = (4.891u,-2.951u);
+ z100\0\10c2 = (3.334u,-1.998u);
+ z100\0\10 = (1.932u,-2.204u);
+ z100\0\11c1 = (1.523u,-2.264u);
+ z100\0\11c2 = (1.210u,-2.368u);
+ z100\0\11 = (0.968u,-2.725u);
+ z100\0\12c1 = (0.781u,-3.003u);
+ z100\0\12c2 = (0.775u,-3.300u);
+ z100\0\12 = (0.723u,-3.613u);
+ z100\0\13c1 = (1.607u,-3.685u);
+ z100\0\13c2 = (3.077u,-3.816u);
+ z100\0\13 = (3.854u,-4.204u);
+ z100\0\14c1 = (4.524u,-4.539u);
+ z100\0\14c2 = (5.106u,-5.266u);
+ z100\0\14 = (5.771u,-5.501u);
+ z100\0\15c1 = (6.901u,-5.901u);
+ z100\0\15c2 = (7.345u,-3.890u);
+ z100\0\15 = (7.644u,-3.132u);
+ z100\0\16c1 = (7.987u,-2.263u);
+ z100\0\16c2 = (8.359u,-1.402u);
+ z100\0\16 = (8.549u,-0.482u);
+ z100\0\17c1 = (8.664u,0.078u);
+ z100\0\17c2 = (8.672u,0.635u);
+ z100\0\17 = (8.672u,1.204u);
+ z100\0\18c1 = (8.672u,1.707u);
+ z100\0\18c2 = (8.691u,2.402u);
+ z100\0\18 = (8.495u,2.866u);
+ z100\0\19c1 = (8.056u,3.901u);
+ z100\0\19c2 = (6.797u,4.168u);
+ z100\0\19 = (5.782u,4.069u);
+ z100\0\20c1 = (5.364u,4.028u);
+ z100\0\20c2 = (4.983u,3.939u);
+ z100\0\20 = (4.643u,3.677u);
+ z100\0\21c1 = (4.214u,3.344u);
+ z100\0\21c2 = (4.054u,2.889u);
+ z100\0\21 = (3.854u,2.409u);
+ z100\0\22c1 = (2.867u,2.968u);
+ z100\0\22c2 = (2.350u,3.251u);
+ z100\0\22 = (1.204u,3.372u);
+ z100\0\23c1 = (1.597u,3.999u);
+ z100\0\23c2 = (1.982u,4.694u);
+ z100\0\23 = (2.660u,5.053u);
+ z100\0\24c1 = (3.803u,5.659u);
+ z100\0\24c2 = (6.779u,4.866u);
+ z100\0\24 = (7.469u,5.718u);
+ z100\0\25c1 = (7.703u,6.007u);
+ z100\0\25c2 = (7.681u,6.400u);
+ z100\0\25 = (7.709u,6.707u);
+ z100\0\26c1 = (6.879u,6.745u);
+ z100\0\26c2 = (2.672u,6.808u);
+ z100\0\26 = (2.203u,6.707u);
+ z100\0\27c1 = (1.988u,6.606u);
+ z100\0\27c2 = (1.835u,6.542u);
+ z100\0\27 = (1.692u,6.360u);
+ z100\0\28c1 = (1.361u,5.939u);
+ z100\0\28c2 = (1.515u,5.057u);
+ z100\0\28 = (1.339u,4.509u);
+ z100\0\29c1 = (1.025u,3.528u);
+ z100\0\29c2 = (0.643u,2.727u);
+ fill_or_unfill z100\0\0s
+ ..controls z100\0\0c1 and z100\0\0c2..z100\0\0
+ ..controls z100\0\1c1 and z100\0\1c2..z100\0\1
+ ..controls z100\0\2c1 and z100\0\2c2..z100\0\2
+ ..controls z100\0\3c1 and z100\0\3c2..z100\0\3
+ ..controls z100\0\4c1 and z100\0\4c2..z100\0\4
+ ..controls z100\0\5c1 and z100\0\5c2..z100\0\5
+ ..controls z100\0\6c1 and z100\0\6c2..z100\0\6
+ ..controls z100\0\7c1 and z100\0\7c2..z100\0\7
+ ..controls z100\0\8c1 and z100\0\8c2..z100\0\8
+ ..controls z100\0\9c1 and z100\0\9c2..z100\0\9
+ ..controls z100\0\10c1 and z100\0\10c2..z100\0\10
+ ..controls z100\0\11c1 and z100\0\11c2..z100\0\11
+ ..controls z100\0\12c1 and z100\0\12c2..z100\0\12
+ ..controls z100\0\13c1 and z100\0\13c2..z100\0\13
+ ..controls z100\0\14c1 and z100\0\14c2..z100\0\14
+ ..controls z100\0\15c1 and z100\0\15c2..z100\0\15
+ ..controls z100\0\16c1 and z100\0\16c2..z100\0\16
+ ..controls z100\0\17c1 and z100\0\17c2..z100\0\17
+ ..controls z100\0\18c1 and z100\0\18c2..z100\0\18
+ ..controls z100\0\19c1 and z100\0\19c2..z100\0\19
+ ..controls z100\0\20c1 and z100\0\20c2..z100\0\20
+ ..controls z100\0\21c1 and z100\0\21c2..z100\0\21
+ ..controls z100\0\22c1 and z100\0\22c2..z100\0\22
+ ..controls z100\0\23c1 and z100\0\23c2..z100\0\23
+ ..controls z100\0\24c1 and z100\0\24c2..z100\0\24
+ ..controls z100\0\25c1 and z100\0\25c2..z100\0\25
+ ..controls z100\0\26c1 and z100\0\26c2..z100\0\26
+ ..controls z100\0\27c1 and z100\0\27c2..z100\0\27
+ ..controls z100\0\28c1 and z100\0\28c2..z100\0\28
+ ..controls z100\0\29c1 and z100\0\29c2..cycle;
+ proof_labels (
+ 100\0\0,
+ 100\0\1,
+ 100\0\2,
+ 100\0\3,
+ 100\0\4,
+ 100\0\5,
+ 100\0\6,
+ 100\0\7,
+ 100\0\8,
+ 100\0\9,
+ 100\0\10,
+ 100\0\11,
+ 100\0\12,
+ 100\0\13,
+ 100\0\14,
+ 100\0\15,
+ 100\0\16,
+ 100\0\17,
+ 100\0\18,
+ 100\0\19,
+ 100\0\20,
+ 100\0\21,
+ 100\0\22,
+ 100\0\23,
+ 100\0\24,
+ 100\0\25,
+ 100\0\26,
+ 100\0\27,
+ 100\0\28,
+ 100\0\29,
+);
+endchar;
+
+beginchar (211, 10.118u#, 6.745u#, 6.263u#);
+ "kla";
+ z101\0\0s = (0.482u,5.541u);
+ z101\0\0c1 = (1.458u,4.494u);
+ z101\0\0c2 = (1.197u,3.956u);
+ z101\0\0 = (0.964u,2.650u);
+ z101\0\1c1 = (1.155u,2.778u);
+ z101\0\1c2 = (1.281u,2.822u);
+ z101\0\1 = (1.439u,3.014u);
+ z101\0\2c1 = (1.923u,3.600u);
+ z101\0\2c2 = (2.013u,4.445u);
+ z101\0\2 = (2.701u,4.892u);
+ z101\0\3c1 = (2.979u,5.073u);
+ z101\0\3c2 = (3.258u,5.136u);
+ z101\0\3 = (3.583u,5.050u);
+ z101\0\4c1 = (4.808u,4.726u);
+ z101\0\4c2 = (4.810u,2.224u);
+ z101\0\4 = (5.059u,1.204u);
+ z101\0\5c1 = (5.504u,2.162u);
+ z101\0\5c2 = (5.768u,4.323u);
+ z101\0\5 = (6.420u,4.915u);
+ z101\0\6c1 = (7.017u,5.458u);
+ z101\0\6c2 = (7.959u,5.296u);
+ z101\0\6 = (8.287u,4.542u);
+ z101\0\7c1 = (8.503u,4.046u);
+ z101\0\7c2 = (8.416u,2.993u);
+ z101\0\7 = (8.472u,2.409u);
+ z101\0\8 = (8.682u,0.964u);
+ z101\0\9 = (8.682u,-0.482u);
+ z101\0\10 = (8.913u,-2.650u);
+ z101\0\11 = (8.913u,-5.059u);
+ z101\0\12c1 = (8.085u,-4.388u);
+ z101\0\12c2 = (7.772u,-4.157u);
+ z101\0\12 = (6.740u,-3.854u);
+ z101\0\13c1 = (6.960u,-3.098u);
+ z101\0\13c2 = (7.179u,-1.017u);
+ z101\0\13 = (6.740u,-0.354u);
+ z101\0\14c1 = (6.129u,0.571u);
+ z101\0\14c2 = (2.536u,0.418u);
+ z101\0\14 = (1.830u,-0.354u);
+ z101\0\15c1 = (1.399u,-0.842u);
+ z101\0\15c2 = (1.450u,-1.567u);
+ z101\0\15 = (1.445u,-2.168u);
+ z101\0\16c1 = (1.437u,-3.416u);
+ z101\0\16c2 = (1.523u,-4.547u);
+ z101\0\16 = (1.686u,-5.782u);
+ z101\0\17 = (2.409u,-5.782u);
+ z101\0\18c1 = (2.332u,-4.872u);
+ z101\0\18c2 = (1.927u,-3.783u);
+ z101\0\18 = (2.122u,-2.886u);
+ z101\0\19c1 = (2.621u,-0.630u);
+ z101\0\19c2 = (6.530u,-0.819u);
+ z101\0\19 = (6.374u,-2.886u);
+ z101\0\20c1 = (6.277u,-4.159u);
+ z101\0\20c2 = (4.605u,-3.537u);
+ z101\0\20 = (3.859u,-4.844u);
+ z101\0\21c1 = (3.684u,-5.151u);
+ z101\0\21c2 = (3.668u,-5.446u);
+ z101\0\21 = (3.613u,-5.782u);
+ z101\0\22c1 = (4.846u,-5.460u);
+ z101\0\22c2 = (5.938u,-4.935u);
+ z101\0\22 = (7.227u,-5.328u);
+ z101\0\23 = (9.395u,-6.022u);
+ z101\0\24 = (9.395u,2.168u);
+ z101\0\25 = (9.625u,5.059u);
+ z101\0\26 = (9.625u,6.745u);
+ z101\0\27c1 = (8.414u,6.745u);
+ z101\0\27c2 = (2.129u,6.869u);
+ z101\0\27 = (1.459u,6.601u);
+ z101\0\28c1 = (0.900u,6.378u);
+ z101\0\28c2 = (0.738u,6.039u);
+ fill_or_unfill z101\0\0s
+ ..controls z101\0\0c1 and z101\0\0c2..z101\0\0
+ ..controls z101\0\1c1 and z101\0\1c2..z101\0\1
+ ..controls z101\0\2c1 and z101\0\2c2..z101\0\2
+ ..controls z101\0\3c1 and z101\0\3c2..z101\0\3
+ ..controls z101\0\4c1 and z101\0\4c2..z101\0\4
+ ..controls z101\0\5c1 and z101\0\5c2..z101\0\5
+ ..controls z101\0\6c1 and z101\0\6c2..z101\0\6
+ ..controls z101\0\7c1 and z101\0\7c2..z101\0\7
+ --z101\0\8
+ --z101\0\9
+ --z101\0\10
+ --z101\0\11
+ ..controls z101\0\12c1 and z101\0\12c2..z101\0\12
+ ..controls z101\0\13c1 and z101\0\13c2..z101\0\13
+ ..controls z101\0\14c1 and z101\0\14c2..z101\0\14
+ ..controls z101\0\15c1 and z101\0\15c2..z101\0\15
+ ..controls z101\0\16c1 and z101\0\16c2..z101\0\16
+ --z101\0\17
+ ..controls z101\0\18c1 and z101\0\18c2..z101\0\18
+ ..controls z101\0\19c1 and z101\0\19c2..z101\0\19
+ ..controls z101\0\20c1 and z101\0\20c2..z101\0\20
+ ..controls z101\0\21c1 and z101\0\21c2..z101\0\21
+ ..controls z101\0\22c1 and z101\0\22c2..z101\0\22
+ --z101\0\23
+ --z101\0\24
+ --z101\0\25
+ --z101\0\26
+ ..controls z101\0\27c1 and z101\0\27c2..z101\0\27
+ ..controls z101\0\28c1 and z101\0\28c2..cycle;
+ proof_labels (
+ 101\0\0,
+ 101\0\1,
+ 101\0\2,
+ 101\0\3,
+ 101\0\4,
+ 101\0\5,
+ 101\0\6,
+ 101\0\7,
+ 101\0\8,
+ 101\0\9,
+ 101\0\10,
+ 101\0\11,
+ 101\0\12,
+ 101\0\13,
+ 101\0\14,
+ 101\0\15,
+ 101\0\16,
+ 101\0\17,
+ 101\0\18,
+ 101\0\19,
+ 101\0\20,
+ 101\0\21,
+ 101\0\22,
+ 101\0\23,
+ 101\0\24,
+ 101\0\25,
+ 101\0\26,
+ 101\0\27,
+ 101\0\28,
+);
+endchar;
+
+beginchar (212, 10.600u#, 6.745u#, 6.263u#);
+ "gla";
+ z102\0\0s = (1.686u,5.300u);
+ z102\0\0 = (0.482u,0.964u);
+ z102\0\1 = (2.891u,1.394u);
+ z102\0\2c1 = (4.160u,1.469u);
+ z102\0\2c2 = (5.293u,0.751u);
+ z102\0\2 = (6.504u,0.482u);
+ z102\0\3c1 = (6.507u,1.326u);
+ z102\0\3c2 = (6.619u,3.604u);
+ z102\0\3 = (6.923u,4.322u);
+ z102\0\4c1 = (7.057u,4.640u);
+ z102\0\4c2 = (7.224u,4.871u);
+ z102\0\4 = (7.522u,5.053u);
+ z102\0\5c1 = (7.938u,5.307u);
+ z102\0\5c2 = (8.447u,5.284u);
+ z102\0\5 = (8.913u,5.300u);
+ z102\0\6 = (9.165u,1.686u);
+ z102\0\7 = (9.165u,-0.723u);
+ z102\0\8 = (9.395u,-3.132u);
+ z102\0\9 = (9.395u,-5.059u);
+ z102\0\10c1 = (8.427u,-4.200u);
+ z102\0\10c2 = (8.194u,-4.047u);
+ z102\0\10 = (6.983u,-3.613u);
+ z102\0\11c1 = (7.173u,-2.843u);
+ z102\0\11c2 = (7.445u,-1.253u);
+ z102\0\11 = (6.983u,-0.557u);
+ z102\0\12c1 = (6.841u,-0.348u);
+ z102\0\12c2 = (6.698u,-0.244u);
+ z102\0\12 = (6.469u,-0.150u);
+ z102\0\13c1 = (5.906u,0.101u);
+ z102\0\13c2 = (3.498u,0.037u);
+ z102\0\13 = (2.892u,-0.150u);
+ z102\0\14c1 = (2.485u,-0.286u);
+ z102\0\14c2 = (2.106u,-0.492u);
+ z102\0\14 = (1.821u,-0.817u);
+ z102\0\15c1 = (1.242u,-1.478u);
+ z102\0\15c2 = (1.215u,-2.539u);
+ z102\0\15 = (1.205u,-3.372u);
+ z102\0\16c1 = (1.198u,-3.986u);
+ z102\0\16c2 = (1.131u,-5.149u);
+ z102\0\16 = (1.476u,-5.658u);
+ z102\0\17c1 = (1.615u,-5.863u);
+ z102\0\17c2 = (1.743u,-5.894u);
+ z102\0\17 = (1.927u,-6.022u);
+ z102\0\18c1 = (1.902u,-4.824u);
+ z102\0\18c2 = (1.522u,-2.976u);
+ z102\0\18 = (2.512u,-2.079u);
+ z102\0\19c1 = (3.369u,-1.271u);
+ z102\0\19c2 = (5.110u,-1.384u);
+ z102\0\19 = (5.983u,-2.079u);
+ z102\0\20c1 = (6.216u,-2.286u);
+ z102\0\20c2 = (6.457u,-2.543u);
+ z102\0\20 = (6.457u,-2.866u);
+ z102\0\21c1 = (6.457u,-4.263u);
+ z102\0\21c2 = (3.742u,-2.597u);
+ z102\0\21 = (3.372u,-5.782u);
+ z102\0\22c1 = (4.663u,-5.540u);
+ z102\0\22c2 = (5.879u,-4.749u);
+ z102\0\22 = (7.227u,-5.105u);
+ z102\0\23 = (8.672u,-5.698u);
+ z102\0\24c1 = (9.080u,-5.860u);
+ z102\0\24c2 = (9.449u,-5.942u);
+ z102\0\24 = (9.877u,-6.022u);
+ z102\0\25 = (9.877u,1.445u);
+ z102\0\26 = (10.113u,5.299u);
+ z102\0\27c1 = (10.100u,5.638u);
+ z102\0\27c2 = (10.093u,6.080u);
+ z102\0\27 = (9.872u,6.360u);
+ z102\0\28c1 = (9.493u,6.838u);
+ z102\0\28c2 = (8.502u,6.744u);
+ z102\0\28 = (7.950u,6.733u);
+ z102\0\29 = (4.095u,6.733u);
+ z102\0\30 = (2.173u,6.733u);
+ z102\0\31c1 = (1.273u,6.565u);
+ z102\0\31c2 = (0.544u,5.782u);
+ z102\1\0s = (6.022u,1.204u);
+ z102\1\0c1 = (5.321u,1.689u);
+ z102\1\0c2 = (4.654u,2.302u);
+ z102\1\0 = (3.854u,2.615u);
+ z102\1\1 = (1.686u,3.132u);
+ z102\1\2c1 = (1.835u,3.632u);
+ z102\1\2c2 = (1.963u,4.082u);
+ z102\1\2 = (2.324u,4.483u);
+ z102\1\3c1 = (3.031u,5.270u);
+ z102\1\3c2 = (4.629u,5.647u);
+ z102\1\3 = (5.397u,4.742u);
+ z102\1\4c1 = (5.911u,4.136u);
+ z102\1\4c2 = (6.098u,1.998u);
+ fill_or_unfill z102\0\0s
+ --z102\0\0
+ --z102\0\1
+ ..controls z102\0\2c1 and z102\0\2c2..z102\0\2
+ ..controls z102\0\3c1 and z102\0\3c2..z102\0\3
+ ..controls z102\0\4c1 and z102\0\4c2..z102\0\4
+ ..controls z102\0\5c1 and z102\0\5c2..z102\0\5
+ --z102\0\6
+ --z102\0\7
+ --z102\0\8
+ --z102\0\9
+ ..controls z102\0\10c1 and z102\0\10c2..z102\0\10
+ ..controls z102\0\11c1 and z102\0\11c2..z102\0\11
+ ..controls z102\0\12c1 and z102\0\12c2..z102\0\12
+ ..controls z102\0\13c1 and z102\0\13c2..z102\0\13
+ ..controls z102\0\14c1 and z102\0\14c2..z102\0\14
+ ..controls z102\0\15c1 and z102\0\15c2..z102\0\15
+ ..controls z102\0\16c1 and z102\0\16c2..z102\0\16
+ ..controls z102\0\17c1 and z102\0\17c2..z102\0\17
+ ..controls z102\0\18c1 and z102\0\18c2..z102\0\18
+ ..controls z102\0\19c1 and z102\0\19c2..z102\0\19
+ ..controls z102\0\20c1 and z102\0\20c2..z102\0\20
+ ..controls z102\0\21c1 and z102\0\21c2..z102\0\21
+ ..controls z102\0\22c1 and z102\0\22c2..z102\0\22
+ --z102\0\23
+ ..controls z102\0\24c1 and z102\0\24c2..z102\0\24
+ --z102\0\25
+ --z102\0\26
+ ..controls z102\0\27c1 and z102\0\27c2..z102\0\27
+ ..controls z102\0\28c1 and z102\0\28c2..z102\0\28
+ --z102\0\29
+ --z102\0\30
+ ..controls z102\0\31c1 and z102\0\31c2..cycle;
+ fill_or_unfill z102\1\0s
+ ..controls z102\1\0c1 and z102\1\0c2..z102\1\0
+ --z102\1\1
+ ..controls z102\1\2c1 and z102\1\2c2..z102\1\2
+ ..controls z102\1\3c1 and z102\1\3c2..z102\1\3
+ ..controls z102\1\4c1 and z102\1\4c2..cycle;
+ proof_labels (
+ 102\0\0,
+ 102\0\1,
+ 102\0\2,
+ 102\0\3,
+ 102\0\4,
+ 102\0\5,
+ 102\0\6,
+ 102\0\7,
+ 102\0\8,
+ 102\0\9,
+ 102\0\10,
+ 102\0\11,
+ 102\0\12,
+ 102\0\13,
+ 102\0\14,
+ 102\0\15,
+ 102\0\16,
+ 102\0\17,
+ 102\0\18,
+ 102\0\19,
+ 102\0\20,
+ 102\0\21,
+ 102\0\22,
+ 102\0\23,
+ 102\0\24,
+ 102\0\25,
+ 102\0\26,
+ 102\0\27,
+ 102\0\28,
+ 102\0\29,
+ 102\0\30,
+ 102\0\31,
+ 102\1\0,
+ 102\1\1,
+ 102\1\2,
+ 102\1\3,
+ 102\1\4,
+);
+endchar;
+
+beginchar (213, 9.877u#, 6.745u#, 6.263u#);
+ "bla";
+ z103\0\0s = (2.168u,5.300u);
+ z103\0\0c1 = (1.698u,4.043u);
+ z103\0\0c2 = (1.270u,2.793u);
+ z103\0\0 = (1.204u,1.445u);
+ z103\0\1 = (3.613u,1.848u);
+ z103\0\2c1 = (5.118u,1.979u);
+ z103\0\2c2 = (6.533u,1.345u);
+ z103\0\2 = (7.950u,0.964u);
+ z103\0\3c1 = (6.041u,-0.356u);
+ z103\0\3c2 = (7.930u,-0.942u);
+ z103\0\3 = (8.328u,-2.410u);
+ z103\0\4c1 = (8.455u,-2.878u);
+ z103\0\4c2 = (8.413u,-3.376u);
+ z103\0\4 = (8.453u,-3.854u);
+ z103\0\5 = (8.672u,-5.059u);
+ z103\0\6 = (7.877u,-4.327u);
+ z103\0\7c1 = (7.369u,-3.945u);
+ z103\0\7c2 = (6.613u,-3.688u);
+ z103\0\7 = (6.337u,-3.081u);
+ z103\0\8c1 = (6.186u,-2.749u);
+ z103\0\8c2 = (6.231u,-2.287u);
+ z103\0\8 = (6.206u,-1.927u);
+ z103\0\9 = (6.059u,-0.726u);
+ z103\0\10c1 = (5.843u,0.848u);
+ z103\0\10c2 = (5.289u,0.716u);
+ z103\0\10 = (3.854u,0.723u);
+ z103\0\11c1 = (3.168u,0.726u);
+ z103\0\11c2 = (2.093u,0.798u);
+ z103\0\11 = (1.499u,0.440u);
+ z103\0\12c1 = (-0.140u,-0.547u);
+ z103\0\12c2 = (0.366u,-4.233u);
+ z103\0\12 = (1.686u,-5.300u);
+ z103\0\13c1 = (1.562u,-4.419u);
+ z103\0\13c2 = (1.085u,-3.008u);
+ z103\0\13 = (1.283u,-2.170u);
+ z103\0\14c1 = (1.725u,-0.335u);
+ z103\0\14c2 = (5.175u,-0.359u);
+ z103\0\14 = (5.602u,-2.170u);
+ z103\0\15c1 = (5.977u,-3.741u);
+ z103\0\15c2 = (3.217u,-3.023u);
+ z103\0\15 = (2.853u,-4.190u);
+ z103\0\16c1 = (2.707u,-4.503u);
+ z103\0\16c2 = (2.825u,-4.760u);
+ z103\0\16 = (2.853u,-5.059u);
+ z103\0\17c1 = (4.236u,-4.709u);
+ z103\0\17c2 = (5.652u,-4.228u);
+ z103\0\17 = (6.986u,-4.921u);
+ z103\0\18 = (8.935u,-6.022u);
+ z103\0\19c1 = (8.913u,-4.767u);
+ z103\0\19c2 = (8.809u,-3.411u);
+ z103\0\19 = (8.935u,-2.168u);
+ z103\0\20 = (9.317u,-0.250u);
+ z103\0\21c1 = (9.305u,0.416u);
+ z103\0\21c2 = (8.980u,0.675u);
+ z103\0\21 = (8.736u,1.245u);
+ z103\0\22c1 = (8.661u,1.701u);
+ z103\0\22c2 = (8.675u,2.178u);
+ z103\0\22 = (8.736u,2.650u);
+ z103\0\23c1 = (8.669u,3.205u);
+ z103\0\23c2 = (8.644u,3.787u);
+ z103\0\23 = (8.736u,4.336u);
+ z103\0\24 = (9.100u,5.541u);
+ z103\0\25c1 = (9.132u,5.947u);
+ z103\0\25c2 = (9.141u,6.333u);
+ z103\0\25 = (9.100u,6.737u);
+ z103\0\26 = (5.300u,6.737u);
+ z103\0\27 = (3.135u,6.737u);
+ z103\0\28c1 = (2.337u,6.628u);
+ z103\0\28c2 = (1.357u,6.101u);
+ z103\1\0s = (8.190u,1.204u);
+ z103\1\0 = (6.263u,2.466u);
+ z103\1\1c1 = (5.098u,3.088u);
+ z103\1\1c2 = (3.246u,3.266u);
+ z103\1\1 = (1.927u,3.372u);
+ z103\1\2c1 = (2.242u,3.998u);
+ z103\1\2c2 = (2.546u,4.613u);
+ z103\1\2 = (3.176u,4.949u);
+ z103\1\3c1 = (3.878u,5.396u);
+ z103\1\3c2 = (6.916u,5.535u);
+ z103\1\3 = (7.485u,4.949u);
+ z103\1\4c1 = (8.180u,4.157u);
+ z103\1\4c2 = (8.190u,2.187u);
+ fill_or_unfill z103\0\0s
+ ..controls z103\0\0c1 and z103\0\0c2..z103\0\0
+ --z103\0\1
+ ..controls z103\0\2c1 and z103\0\2c2..z103\0\2
+ ..controls z103\0\3c1 and z103\0\3c2..z103\0\3
+ ..controls z103\0\4c1 and z103\0\4c2..z103\0\4
+ --z103\0\5
+ --z103\0\6
+ ..controls z103\0\7c1 and z103\0\7c2..z103\0\7
+ ..controls z103\0\8c1 and z103\0\8c2..z103\0\8
+ --z103\0\9
+ ..controls z103\0\10c1 and z103\0\10c2..z103\0\10
+ ..controls z103\0\11c1 and z103\0\11c2..z103\0\11
+ ..controls z103\0\12c1 and z103\0\12c2..z103\0\12
+ ..controls z103\0\13c1 and z103\0\13c2..z103\0\13
+ ..controls z103\0\14c1 and z103\0\14c2..z103\0\14
+ ..controls z103\0\15c1 and z103\0\15c2..z103\0\15
+ ..controls z103\0\16c1 and z103\0\16c2..z103\0\16
+ ..controls z103\0\17c1 and z103\0\17c2..z103\0\17
+ --z103\0\18
+ ..controls z103\0\19c1 and z103\0\19c2..z103\0\19
+ --z103\0\20
+ ..controls z103\0\21c1 and z103\0\21c2..z103\0\21
+ ..controls z103\0\22c1 and z103\0\22c2..z103\0\22
+ ..controls z103\0\23c1 and z103\0\23c2..z103\0\23
+ --z103\0\24
+ ..controls z103\0\25c1 and z103\0\25c2..z103\0\25
+ --z103\0\26
+ --z103\0\27
+ ..controls z103\0\28c1 and z103\0\28c2..cycle;
+ fill_or_unfill z103\1\0s
+ --z103\1\0
+ ..controls z103\1\1c1 and z103\1\1c2..z103\1\1
+ ..controls z103\1\2c1 and z103\1\2c2..z103\1\2
+ ..controls z103\1\3c1 and z103\1\3c2..z103\1\3
+ ..controls z103\1\4c1 and z103\1\4c2..cycle;
+ proof_labels (
+ 103\0\0,
+ 103\0\1,
+ 103\0\2,
+ 103\0\3,
+ 103\0\4,
+ 103\0\5,
+ 103\0\6,
+ 103\0\7,
+ 103\0\8,
+ 103\0\9,
+ 103\0\10,
+ 103\0\11,
+ 103\0\12,
+ 103\0\13,
+ 103\0\14,
+ 103\0\15,
+ 103\0\16,
+ 103\0\17,
+ 103\0\18,
+ 103\0\19,
+ 103\0\20,
+ 103\0\21,
+ 103\0\22,
+ 103\0\23,
+ 103\0\24,
+ 103\0\25,
+ 103\0\26,
+ 103\0\27,
+ 103\0\28,
+ 103\1\0,
+ 103\1\1,
+ 103\1\2,
+ 103\1\3,
+ 103\1\4,
+);
+endchar;
+
+beginchar (214, 9.636u#, 6.745u#, 7.227u#);
+ "zla";
+ z104\0\0s = (8.672u,3.854u);
+ z104\0\0c1 = (7.790u,3.854u);
+ z104\0\0c2 = (3.470u,3.959u);
+ z104\0\0 = (2.967u,3.710u);
+ z104\0\1c1 = (2.730u,3.593u);
+ z104\0\1c2 = (2.560u,3.411u);
+ z104\0\1 = (2.560u,3.132u);
+ z104\0\2c1 = (2.560u,2.853u);
+ z104\0\2c2 = (2.730u,2.670u);
+ z104\0\2 = (2.967u,2.553u);
+ z104\0\3c1 = (3.470u,2.305u);
+ z104\0\3c2 = (7.790u,2.409u);
+ z104\0\3 = (8.672u,2.409u);
+ z104\0\4 = (8.672u,0.482u);
+ z104\0\5c1 = (7.895u,0.817u);
+ z104\0\5c2 = (7.119u,1.105u);
+ z104\0\5 = (6.263u,1.154u);
+ z104\0\6c1 = (5.195u,1.216u);
+ z104\0\6c2 = (2.582u,0.572u);
+ z104\0\6 = (1.817u,-0.165u);
+ z104\0\7c1 = (1.628u,-0.346u);
+ z104\0\7c2 = (1.571u,-0.510u);
+ z104\0\7 = (1.445u,-0.723u);
+ z104\0\8 = (3.372u,-0.297u);
+ z104\0\9c1 = (3.852u,-0.241u);
+ z104\0\9c2 = (4.332u,-0.243u);
+ z104\0\9 = (4.818u,-0.297u);
+ z104\0\10c1 = (5.534u,-0.237u);
+ z104\0\10c2 = (6.278u,-0.204u);
+ z104\0\10 = (6.986u,-0.297u);
+ z104\0\11 = (9.154u,-0.723u);
+ z104\0\12 = (9.154u,4.577u);
+ z104\0\13c1 = (9.150u,5.135u);
+ z104\0\13c2 = (9.213u,5.881u);
+ z104\0\13 = (8.769u,6.299u);
+ z104\0\14c1 = (8.545u,6.510u);
+ z104\0\14c2 = (8.239u,6.600u);
+ z104\0\14 = (7.945u,6.632u);
+ z104\0\15c1 = (7.338u,6.792u);
+ z104\0\15c2 = (3.425u,6.827u);
+ z104\0\15 = (2.967u,6.632u);
+ z104\0\16c1 = (2.730u,6.484u);
+ z104\0\16c2 = (2.560u,6.301u);
+ z104\0\16 = (2.560u,6.022u);
+ z104\0\17c1 = (2.560u,5.216u);
+ z104\0\17c2 = (3.807u,5.303u);
+ z104\0\17 = (4.336u,5.300u);
+ z104\0\18c1 = (5.214u,5.294u);
+ z104\0\18c2 = (7.698u,5.502u);
+ z104\0\18 = (8.288u,4.915u);
+ z104\0\19c1 = (8.593u,4.610u);
+ z104\0\19c2 = (8.606u,4.248u);
+ z104\1\0s = (1.927u,-6.986u);
+ z104\1\0c1 = (1.645u,-6.283u);
+ z104\1\0c2 = (1.167u,-5.569u);
+ z104\1\0 = (1.050u,-4.818u);
+ z104\1\1c1 = (0.677u,-2.428u);
+ z104\1\1c2 = (4.504u,-1.691u);
+ z104\1\1 = (5.259u,-3.622u);
+ z104\1\2c1 = (5.769u,-4.926u);
+ z104\1\2c2 = (3.684u,-4.735u);
+ z104\1\2 = (3.174u,-5.428u);
+ z104\1\3c1 = (2.899u,-5.801u);
+ z104\1\3c2 = (2.917u,-6.307u);
+ z104\1\3 = (2.891u,-6.745u);
+ z104\1\4c1 = (4.445u,-6.341u);
+ z104\1\4c2 = (5.108u,-6.064u);
+ z104\1\4 = (6.745u,-6.486u);
+ z104\1\5c1 = (7.495u,-6.678u);
+ z104\1\5c2 = (8.134u,-6.906u);
+ z104\1\5 = (8.918u,-6.986u);
+ z104\1\6 = (8.918u,-3.854u);
+ z104\1\7c1 = (8.948u,-3.268u);
+ z104\1\7c2 = (9.194u,-2.233u);
+ z104\1\7 = (9.069u,-1.717u);
+ z104\1\8c1 = (8.833u,-0.751u);
+ z104\1\8c2 = (7.448u,-0.839u);
+ z104\1\8 = (7.337u,-1.717u);
+ z104\1\9c1 = (7.255u,-2.358u);
+ z104\1\9c2 = (8.064u,-3.181u);
+ z104\1\9 = (8.258u,-3.858u);
+ z104\1\10c1 = (8.498u,-4.696u);
+ z104\1\10c2 = (8.431u,-5.640u);
+ z104\1\10 = (8.431u,-6.504u);
+ z104\1\11c1 = (7.771u,-6.031u);
+ z104\1\11c2 = (6.424u,-5.393u);
+ z104\1\11 = (6.028u,-4.739u);
+ z104\1\12c1 = (5.816u,-4.389u);
+ z104\1\12c2 = (5.804u,-4.008u);
+ z104\1\12 = (5.786u,-3.613u);
+ z104\1\13c1 = (5.677u,-1.167u);
+ z104\1\13c2 = (5.727u,-0.930u);
+ z104\1\13 = (3.132u,-0.964u);
+ z104\1\14c1 = (2.478u,-0.973u);
+ z104\1\14c2 = (1.808u,-0.968u);
+ z104\1\14 = (1.259u,-1.382u);
+ z104\1\15c1 = (0.976u,-1.596u);
+ z104\1\15c2 = (0.792u,-1.852u);
+ z104\1\15 = (0.659u,-2.178u);
+ z104\1\16c1 = (0.313u,-3.029u);
+ z104\1\16c2 = (0.400u,-5.467u);
+ z104\1\16 = (0.928u,-6.231u);
+ z104\1\17c1 = (1.210u,-6.638u);
+ z104\1\17c2 = (1.507u,-6.772u);
+ fill_or_unfill z104\0\0s
+ ..controls z104\0\0c1 and z104\0\0c2..z104\0\0
+ ..controls z104\0\1c1 and z104\0\1c2..z104\0\1
+ ..controls z104\0\2c1 and z104\0\2c2..z104\0\2
+ ..controls z104\0\3c1 and z104\0\3c2..z104\0\3
+ --z104\0\4
+ ..controls z104\0\5c1 and z104\0\5c2..z104\0\5
+ ..controls z104\0\6c1 and z104\0\6c2..z104\0\6
+ ..controls z104\0\7c1 and z104\0\7c2..z104\0\7
+ --z104\0\8
+ ..controls z104\0\9c1 and z104\0\9c2..z104\0\9
+ ..controls z104\0\10c1 and z104\0\10c2..z104\0\10
+ --z104\0\11
+ --z104\0\12
+ ..controls z104\0\13c1 and z104\0\13c2..z104\0\13
+ ..controls z104\0\14c1 and z104\0\14c2..z104\0\14
+ ..controls z104\0\15c1 and z104\0\15c2..z104\0\15
+ ..controls z104\0\16c1 and z104\0\16c2..z104\0\16
+ ..controls z104\0\17c1 and z104\0\17c2..z104\0\17
+ ..controls z104\0\18c1 and z104\0\18c2..z104\0\18
+ ..controls z104\0\19c1 and z104\0\19c2..cycle;
+ fill_or_unfill z104\1\0s
+ ..controls z104\1\0c1 and z104\1\0c2..z104\1\0
+ ..controls z104\1\1c1 and z104\1\1c2..z104\1\1
+ ..controls z104\1\2c1 and z104\1\2c2..z104\1\2
+ ..controls z104\1\3c1 and z104\1\3c2..z104\1\3
+ ..controls z104\1\4c1 and z104\1\4c2..z104\1\4
+ ..controls z104\1\5c1 and z104\1\5c2..z104\1\5
+ --z104\1\6
+ ..controls z104\1\7c1 and z104\1\7c2..z104\1\7
+ ..controls z104\1\8c1 and z104\1\8c2..z104\1\8
+ ..controls z104\1\9c1 and z104\1\9c2..z104\1\9
+ ..controls z104\1\10c1 and z104\1\10c2..z104\1\10
+ ..controls z104\1\11c1 and z104\1\11c2..z104\1\11
+ ..controls z104\1\12c1 and z104\1\12c2..z104\1\12
+ ..controls z104\1\13c1 and z104\1\13c2..z104\1\13
+ ..controls z104\1\14c1 and z104\1\14c2..z104\1\14
+ ..controls z104\1\15c1 and z104\1\15c2..z104\1\15
+ ..controls z104\1\16c1 and z104\1\16c2..z104\1\16
+ ..controls z104\1\17c1 and z104\1\17c2..cycle;
+ proof_labels (
+ 104\0\0,
+ 104\0\1,
+ 104\0\2,
+ 104\0\3,
+ 104\0\4,
+ 104\0\5,
+ 104\0\6,
+ 104\0\7,
+ 104\0\8,
+ 104\0\9,
+ 104\0\10,
+ 104\0\11,
+ 104\0\12,
+ 104\0\13,
+ 104\0\14,
+ 104\0\15,
+ 104\0\16,
+ 104\0\17,
+ 104\0\18,
+ 104\0\19,
+ 104\1\0,
+ 104\1\1,
+ 104\1\2,
+ 104\1\3,
+ 104\1\4,
+ 104\1\5,
+ 104\1\6,
+ 104\1\7,
+ 104\1\8,
+ 104\1\9,
+ 104\1\10,
+ 104\1\11,
+ 104\1\12,
+ 104\1\13,
+ 104\1\14,
+ 104\1\15,
+ 104\1\16,
+ 104\1\17,
+);
+endchar;
+
+beginchar (215, 10.600u#, 6.745u#, 6.504u#);
+ "rla";
+ z105\0\0s = (2.168u,5.300u);
+ z105\0\0c1 = (3.648u,5.281u);
+ z105\0\0c2 = (4.310u,5.242u);
+ z105\0\0 = (4.577u,3.613u);
+ z105\0\1c1 = (3.054u,3.484u);
+ z105\0\1c2 = (2.160u,3.279u);
+ z105\0\1 = (1.686u,1.742u);
+ z105\0\2 = (3.132u,1.742u);
+ z105\0\3c1 = (3.776u,1.911u);
+ z105\0\3c2 = (4.397u,2.125u);
+ z105\0\3 = (5.059u,2.125u);
+ z105\0\4c1 = (6.479u,2.125u);
+ z105\0\4c2 = (8.532u,1.221u);
+ z105\0\4 = (9.877u,0.723u);
+ z105\0\5c1 = (9.418u,0.590u);
+ z105\0\5c2 = (8.218u,0.467u);
+ z105\0\5 = (7.969u,0.100u);
+ z105\0\6c1 = (7.559u,-0.503u);
+ z105\0\6c2 = (8.418u,-1.212u);
+ z105\0\6 = (8.675u,-1.707u);
+ z105\0\7c1 = (9.125u,-2.577u);
+ z105\0\7c2 = (9.373u,-4.315u);
+ z105\0\7 = (9.395u,-5.300u);
+ z105\0\8 = (8.191u,-4.241u);
+ z105\0\9c1 = (7.792u,-3.941u);
+ z105\0\9c2 = (7.199u,-3.626u);
+ z105\0\9 = (6.889u,-3.246u);
+ z105\0\10c1 = (5.951u,-2.094u);
+ z105\0\10c2 = (7.274u,-0.238u);
+ z105\0\10 = (5.058u,0.378u);
+ z105\0\11c1 = (4.300u,0.589u);
+ z105\0\11c2 = (2.374u,0.583u);
+ z105\0\11 = (1.740u,0.097u);
+ z105\0\12c1 = (0.721u,-0.685u);
+ z105\0\12c2 = (0.086u,-3.881u);
+ z105\0\12 = (0.984u,-4.921u);
+ z105\0\13c1 = (1.200u,-5.172u);
+ z105\0\13c2 = (1.398u,-5.197u);
+ z105\0\13 = (1.686u,-5.300u);
+ z105\0\14c1 = (1.549u,-4.528u);
+ z105\0\14c2 = (1.180u,-3.675u);
+ z105\0\14 = (1.297u,-2.891u);
+ z105\0\15c1 = (1.702u,-0.186u);
+ z105\0\15c2 = (5.746u,-0.601u);
+ z105\0\15 = (5.945u,-2.165u);
+ z105\0\16c1 = (6.108u,-3.443u);
+ z105\0\16c2 = (4.048u,-3.010u);
+ z105\0\16 = (3.371u,-3.991u);
+ z105\0\17c1 = (3.148u,-4.314u);
+ z105\0\17c2 = (3.161u,-4.687u);
+ z105\0\17 = (3.132u,-5.008u);
+ z105\0\18 = (4.577u,-5.008u);
+ z105\0\19c1 = (5.400u,-4.940u);
+ z105\0\19c2 = (5.890u,-4.758u);
+ z105\0\19 = (6.745u,-5.008u);
+ z105\0\20c1 = (7.860u,-5.190u);
+ z105\0\20c2 = (8.788u,-5.919u);
+ z105\0\20 = (9.909u,-6.263u);
+ z105\0\21 = (9.909u,-2.891u);
+ z105\0\22c1 = (9.891u,-1.754u);
+ z105\0\22c2 = (10.368u,-0.085u);
+ z105\0\22 = (9.909u,0.960u);
+ z105\0\23c1 = (9.218u,2.961u);
+ z105\0\23c2 = (6.114u,2.965u);
+ z105\0\23 = (5.203u,4.149u);
+ z105\0\24c1 = (4.921u,4.515u);
+ z105\0\24c2 = (4.889u,4.866u);
+ z105\0\24 = (4.818u,5.300u);
+ z105\0\25c1 = (5.649u,5.300u);
+ z105\0\25c2 = (7.405u,5.134u);
+ z105\0\25 = (8.017u,5.718u);
+ z105\0\26c1 = (8.262u,5.952u);
+ z105\0\26c2 = (8.316u,6.206u);
+ z105\0\26 = (8.431u,6.504u);
+ z105\0\27 = (7.709u,6.691u);
+ z105\0\28c1 = (6.868u,6.824u);
+ z105\0\28c2 = (3.591u,6.855u);
+ z105\0\28 = (2.926u,6.462u);
+ z105\0\29c1 = (2.426u,6.168u);
+ z105\0\29c2 = (2.328u,5.813u);
+ fill_or_unfill z105\0\0s
+ ..controls z105\0\0c1 and z105\0\0c2..z105\0\0
+ ..controls z105\0\1c1 and z105\0\1c2..z105\0\1
+ --z105\0\2
+ ..controls z105\0\3c1 and z105\0\3c2..z105\0\3
+ ..controls z105\0\4c1 and z105\0\4c2..z105\0\4
+ ..controls z105\0\5c1 and z105\0\5c2..z105\0\5
+ ..controls z105\0\6c1 and z105\0\6c2..z105\0\6
+ ..controls z105\0\7c1 and z105\0\7c2..z105\0\7
+ --z105\0\8
+ ..controls z105\0\9c1 and z105\0\9c2..z105\0\9
+ ..controls z105\0\10c1 and z105\0\10c2..z105\0\10
+ ..controls z105\0\11c1 and z105\0\11c2..z105\0\11
+ ..controls z105\0\12c1 and z105\0\12c2..z105\0\12
+ ..controls z105\0\13c1 and z105\0\13c2..z105\0\13
+ ..controls z105\0\14c1 and z105\0\14c2..z105\0\14
+ ..controls z105\0\15c1 and z105\0\15c2..z105\0\15
+ ..controls z105\0\16c1 and z105\0\16c2..z105\0\16
+ ..controls z105\0\17c1 and z105\0\17c2..z105\0\17
+ --z105\0\18
+ ..controls z105\0\19c1 and z105\0\19c2..z105\0\19
+ ..controls z105\0\20c1 and z105\0\20c2..z105\0\20
+ --z105\0\21
+ ..controls z105\0\22c1 and z105\0\22c2..z105\0\22
+ ..controls z105\0\23c1 and z105\0\23c2..z105\0\23
+ ..controls z105\0\24c1 and z105\0\24c2..z105\0\24
+ ..controls z105\0\25c1 and z105\0\25c2..z105\0\25
+ ..controls z105\0\26c1 and z105\0\26c2..z105\0\26
+ --z105\0\27
+ ..controls z105\0\28c1 and z105\0\28c2..z105\0\28
+ ..controls z105\0\29c1 and z105\0\29c2..cycle;
+ proof_labels (
+ 105\0\0,
+ 105\0\1,
+ 105\0\2,
+ 105\0\3,
+ 105\0\4,
+ 105\0\5,
+ 105\0\6,
+ 105\0\7,
+ 105\0\8,
+ 105\0\9,
+ 105\0\10,
+ 105\0\11,
+ 105\0\12,
+ 105\0\13,
+ 105\0\14,
+ 105\0\15,
+ 105\0\16,
+ 105\0\17,
+ 105\0\18,
+ 105\0\19,
+ 105\0\20,
+ 105\0\21,
+ 105\0\22,
+ 105\0\23,
+ 105\0\24,
+ 105\0\25,
+ 105\0\26,
+ 105\0\27,
+ 105\0\28,
+ 105\0\29,
+);
+endchar;
+
+beginchar (216, 10.600u#, 6.745u#, 6.263u#);
+ "sla";
+ z106\0\0s = (0.723u,5.300u);
+ z106\0\0 = (2.168u,5.300u);
+ z106\0\1c1 = (1.233u,3.896u);
+ z106\0\1c2 = (0.639u,3.179u);
+ z106\0\1 = (0.482u,1.474u);
+ z106\0\2 = (1.927u,1.474u);
+ z106\0\3c1 = (2.939u,1.416u);
+ z106\0\3c2 = (3.843u,0.766u);
+ z106\0\3 = (4.818u,0.482u);
+ z106\0\4c1 = (4.178u,1.826u);
+ z106\0\4c2 = (3.107u,2.708u);
+ z106\0\4 = (1.686u,3.132u);
+ z106\0\5 = (1.927u,4.095u);
+ z106\0\6c1 = (3.309u,3.683u);
+ z106\0\6c2 = (4.755u,3.223u);
+ z106\0\6 = (6.022u,2.526u);
+ z106\0\7 = (9.395u,0.482u);
+ z106\0\8c1 = (8.262u,-0.126u);
+ z106\0\8c2 = (8.232u,-0.159u);
+ z106\0\8 = (8.190u,-1.445u);
+ z106\0\9c1 = (8.419u,-1.521u);
+ z106\0\9c2 = (8.606u,-1.540u);
+ z106\0\9 = (8.815u,-1.687u);
+ z106\0\10c1 = (9.778u,-2.366u);
+ z106\0\10c2 = (9.636u,-4.253u);
+ z106\0\10 = (9.636u,-5.300u);
+ z106\0\11c1 = (9.165u,-4.939u);
+ z106\0\11c2 = (8.708u,-4.605u);
+ z106\0\11 = (8.191u,-4.311u);
+ z106\0\12c1 = (7.785u,-4.081u);
+ z106\0\12c2 = (7.193u,-3.846u);
+ z106\0\12 = (6.889u,-3.494u);
+ z106\0\13c1 = (5.860u,-2.304u);
+ z106\0\13c2 = (7.551u,-0.321u);
+ z106\0\13 = (4.818u,0.162u);
+ z106\0\14c1 = (3.659u,0.367u);
+ z106\0\14c2 = (1.866u,0.156u);
+ z106\0\14 = (1.246u,-0.977u);
+ z106\0\15c1 = (0.967u,-1.488u);
+ z106\0\15c2 = (0.972u,-2.085u);
+ z106\0\15 = (0.964u,-2.650u);
+ z106\0\16c1 = (0.954u,-3.440u);
+ z106\0\16c2 = (0.877u,-4.781u);
+ z106\0\16 = (1.406u,-5.410u);
+ z106\0\17c1 = (1.571u,-5.607u);
+ z106\0\17c2 = (1.725u,-5.655u);
+ z106\0\17 = (1.888u,-5.782u);
+ z106\0\18 = (1.888u,-4.577u);
+ z106\0\19c1 = (1.696u,-3.624u);
+ z106\0\19c2 = (1.242u,-2.843u);
+ z106\0\19 = (2.032u,-2.002u);
+ z106\0\20c1 = (2.941u,-1.033u);
+ z106\0\20c2 = (6.112u,-0.950u);
+ z106\0\20 = (6.112u,-2.641u);
+ z106\0\21c1 = (6.112u,-3.787u);
+ z106\0\21c2 = (4.456u,-3.431u);
+ z106\0\21 = (3.817u,-4.199u);
+ z106\0\22c1 = (3.548u,-4.523u);
+ z106\0\22c2 = (3.477u,-4.908u);
+ z106\0\22 = (3.372u,-5.300u);
+ z106\0\23 = (3.613u,-5.541u);
+ z106\0\24 = (5.782u,-4.934u);
+ z106\0\25c1 = (7.281u,-4.691u);
+ z106\0\25c2 = (8.703u,-5.640u);
+ z106\0\25 = (10.117u,-6.022u);
+ z106\0\26 = (10.117u,-1.445u);
+ z106\0\27 = (9.887u,0.964u);
+ z106\0\28 = (9.887u,3.132u);
+ z106\0\29 = (10.118u,6.745u);
+ z106\0\30c1 = (9.055u,6.741u);
+ z106\0\30c2 = (7.591u,6.882u);
+ z106\0\30 = (8.288u,5.299u);
+ z106\0\31 = (9.007u,3.854u);
+ z106\0\32c1 = (9.333u,2.924u);
+ z106\0\32c2 = (9.386u,1.938u);
+ z106\0\32 = (9.395u,0.964u);
+ z106\0\33 = (7.227u,2.983u);
+ z106\0\34 = (4.336u,5.300u);
+ z106\0\35c1 = (5.506u,5.437u);
+ z106\0\35c2 = (5.816u,5.543u);
+ z106\0\35 = (6.022u,6.745u);
+ z106\0\36c1 = (5.164u,6.745u);
+ z106\0\36c2 = (1.630u,6.912u);
+ z106\0\36 = (1.108u,6.499u);
+ z106\0\37c1 = (0.736u,6.205u);
+ z106\0\37c2 = (0.758u,5.723u);
+ fill_or_unfill z106\0\0s
+ --z106\0\0
+ ..controls z106\0\1c1 and z106\0\1c2..z106\0\1
+ --z106\0\2
+ ..controls z106\0\3c1 and z106\0\3c2..z106\0\3
+ ..controls z106\0\4c1 and z106\0\4c2..z106\0\4
+ --z106\0\5
+ ..controls z106\0\6c1 and z106\0\6c2..z106\0\6
+ --z106\0\7
+ ..controls z106\0\8c1 and z106\0\8c2..z106\0\8
+ ..controls z106\0\9c1 and z106\0\9c2..z106\0\9
+ ..controls z106\0\10c1 and z106\0\10c2..z106\0\10
+ ..controls z106\0\11c1 and z106\0\11c2..z106\0\11
+ ..controls z106\0\12c1 and z106\0\12c2..z106\0\12
+ ..controls z106\0\13c1 and z106\0\13c2..z106\0\13
+ ..controls z106\0\14c1 and z106\0\14c2..z106\0\14
+ ..controls z106\0\15c1 and z106\0\15c2..z106\0\15
+ ..controls z106\0\16c1 and z106\0\16c2..z106\0\16
+ ..controls z106\0\17c1 and z106\0\17c2..z106\0\17
+ --z106\0\18
+ ..controls z106\0\19c1 and z106\0\19c2..z106\0\19
+ ..controls z106\0\20c1 and z106\0\20c2..z106\0\20
+ ..controls z106\0\21c1 and z106\0\21c2..z106\0\21
+ ..controls z106\0\22c1 and z106\0\22c2..z106\0\22
+ --z106\0\23
+ --z106\0\24
+ ..controls z106\0\25c1 and z106\0\25c2..z106\0\25
+ --z106\0\26
+ --z106\0\27
+ --z106\0\28
+ --z106\0\29
+ ..controls z106\0\30c1 and z106\0\30c2..z106\0\30
+ --z106\0\31
+ ..controls z106\0\32c1 and z106\0\32c2..z106\0\32
+ --z106\0\33
+ --z106\0\34
+ ..controls z106\0\35c1 and z106\0\35c2..z106\0\35
+ ..controls z106\0\36c1 and z106\0\36c2..z106\0\36
+ ..controls z106\0\37c1 and z106\0\37c2..cycle;
+ proof_labels (
+ 106\0\0,
+ 106\0\1,
+ 106\0\2,
+ 106\0\3,
+ 106\0\4,
+ 106\0\5,
+ 106\0\6,
+ 106\0\7,
+ 106\0\8,
+ 106\0\9,
+ 106\0\10,
+ 106\0\11,
+ 106\0\12,
+ 106\0\13,
+ 106\0\14,
+ 106\0\15,
+ 106\0\16,
+ 106\0\17,
+ 106\0\18,
+ 106\0\19,
+ 106\0\20,
+ 106\0\21,
+ 106\0\22,
+ 106\0\23,
+ 106\0\24,
+ 106\0\25,
+ 106\0\26,
+ 106\0\27,
+ 106\0\28,
+ 106\0\29,
+ 106\0\30,
+ 106\0\31,
+ 106\0\32,
+ 106\0\33,
+ 106\0\34,
+ 106\0\35,
+ 106\0\36,
+ 106\0\37,
+);
+endchar;
+
+beginchar (217, 10.359u#, 6.745u#, 8.672u#);
+ "rkya";
+ z107\0\0s = (2.650u,5.300u);
+ z107\0\0c1 = (3.916u,5.295u);
+ z107\0\0c2 = (4.619u,5.473u);
+ z107\0\0 = (5.059u,4.095u);
+ z107\0\1c1 = (4.153u,4.095u);
+ z107\0\1c2 = (1.481u,4.361u);
+ z107\0\1 = (1.138u,3.306u);
+ z107\0\2c1 = (0.989u,2.848u);
+ z107\0\2c2 = (1.306u,2.191u);
+ z107\0\2 = (1.306u,1.686u);
+ z107\0\3c1 = (1.305u,1.275u);
+ z107\0\3c2 = (1.172u,0.878u);
+ z107\0\3 = (1.077u,0.482u);
+ z107\0\4 = (0.723u,-1.204u);
+ z107\0\5c1 = (1.010u,-1.026u);
+ z107\0\5c2 = (1.186u,-0.943u);
+ z107\0\5 = (1.393u,-0.652u);
+ z107\0\6c1 = (1.903u,0.065u);
+ z107\0\6c2 = (2.490u,2.945u);
+ z107\0\6 = (3.789u,2.368u);
+ z107\0\7c1 = (4.870u,1.889u);
+ z107\0\7c2 = (4.767u,-0.702u);
+ z107\0\7 = (4.840u,-1.686u);
+ z107\0\8 = (5.059u,-3.132u);
+ z107\0\9c1 = (5.596u,-1.820u);
+ z107\0\9c2 = (5.525u,1.142u);
+ z107\0\9 = (6.247u,2.092u);
+ z107\0\10c1 = (6.586u,2.538u);
+ z107\0\10c2 = (7.158u,2.692u);
+ z107\0\10 = (7.695u,2.570u);
+ z107\0\11c1 = (8.015u,2.497u);
+ z107\0\11c2 = (8.240u,2.367u);
+ z107\0\11 = (8.427u,2.092u);
+ z107\0\12c1 = (8.958u,1.314u);
+ z107\0\12c2 = (9.032u,-2.197u);
+ z107\0\12 = (8.760u,-3.131u);
+ z107\0\13c1 = (8.563u,-3.810u);
+ z107\0\13c2 = (8.183u,-4.422u);
+ z107\0\13 = (7.658u,-4.894u);
+ z107\0\14c1 = (5.487u,-6.846u);
+ z107\0\14c2 = (2.994u,-5.417u);
+ z107\0\14 = (0.482u,-5.300u);
+ z107\0\15c1 = (0.920u,-6.224u);
+ z107\0\15c2 = (1.358u,-6.678u);
+ z107\0\15 = (2.168u,-7.304u);
+ z107\0\16c1 = (4.052u,-8.762u);
+ z107\0\16c2 = (5.941u,-8.811u);
+ z107\0\16 = (7.949u,-7.538u);
+ z107\0\17c1 = (8.791u,-7.004u);
+ z107\0\17c2 = (9.191u,-6.676u);
+ z107\0\17 = (9.636u,-5.782u);
+ z107\0\18c1 = (7.926u,-6.685u);
+ z107\0\18c2 = (6.103u,-7.919u);
+ z107\0\18 = (4.095u,-7.195u);
+ z107\0\19 = (1.686u,-6.022u);
+ z107\0\20c1 = (2.818u,-6.129u);
+ z107\0\20c2 = (3.914u,-6.532u);
+ z107\0\20 = (5.059u,-6.479u);
+ z107\0\21c1 = (6.596u,-6.409u);
+ z107\0\21c2 = (8.597u,-5.919u);
+ z107\0\21 = (9.218u,-4.335u);
+ z107\0\22c1 = (9.394u,-3.885u);
+ z107\0\22c2 = (9.400u,-3.365u);
+ z107\0\22 = (9.463u,-2.891u);
+ z107\0\23 = (9.636u,-0.723u);
+ z107\0\24 = (9.877u,4.095u);
+ z107\0\25 = (5.782u,4.095u);
+ z107\0\26c1 = (5.881u,4.407u);
+ z107\0\26c2 = (5.914u,4.669u);
+ z107\0\26 = (6.166u,4.915u);
+ z107\0\27c1 = (6.735u,5.470u);
+ z107\0\27c2 = (8.279u,5.112u);
+ z107\0\27 = (8.285u,6.003u);
+ z107\0\28c1 = (8.287u,6.276u);
+ z107\0\28c2 = (8.105u,6.452u);
+ z107\0\28 = (7.878u,6.533u);
+ z107\0\29c1 = (7.265u,6.880u);
+ z107\0\29c2 = (3.996u,6.846u);
+ z107\0\29 = (3.408u,6.533u);
+ z107\0\30c1 = (2.906u,6.203u);
+ z107\0\30c2 = (2.806u,5.814u);
+ fill_or_unfill z107\0\0s
+ ..controls z107\0\0c1 and z107\0\0c2..z107\0\0
+ ..controls z107\0\1c1 and z107\0\1c2..z107\0\1
+ ..controls z107\0\2c1 and z107\0\2c2..z107\0\2
+ ..controls z107\0\3c1 and z107\0\3c2..z107\0\3
+ --z107\0\4
+ ..controls z107\0\5c1 and z107\0\5c2..z107\0\5
+ ..controls z107\0\6c1 and z107\0\6c2..z107\0\6
+ ..controls z107\0\7c1 and z107\0\7c2..z107\0\7
+ --z107\0\8
+ ..controls z107\0\9c1 and z107\0\9c2..z107\0\9
+ ..controls z107\0\10c1 and z107\0\10c2..z107\0\10
+ ..controls z107\0\11c1 and z107\0\11c2..z107\0\11
+ ..controls z107\0\12c1 and z107\0\12c2..z107\0\12
+ ..controls z107\0\13c1 and z107\0\13c2..z107\0\13
+ ..controls z107\0\14c1 and z107\0\14c2..z107\0\14
+ ..controls z107\0\15c1 and z107\0\15c2..z107\0\15
+ ..controls z107\0\16c1 and z107\0\16c2..z107\0\16
+ ..controls z107\0\17c1 and z107\0\17c2..z107\0\17
+ ..controls z107\0\18c1 and z107\0\18c2..z107\0\18
+ --z107\0\19
+ ..controls z107\0\20c1 and z107\0\20c2..z107\0\20
+ ..controls z107\0\21c1 and z107\0\21c2..z107\0\21
+ ..controls z107\0\22c1 and z107\0\22c2..z107\0\22
+ --z107\0\23
+ --z107\0\24
+ --z107\0\25
+ ..controls z107\0\26c1 and z107\0\26c2..z107\0\26
+ ..controls z107\0\27c1 and z107\0\27c2..z107\0\27
+ ..controls z107\0\28c1 and z107\0\28c2..z107\0\28
+ ..controls z107\0\29c1 and z107\0\29c2..z107\0\29
+ ..controls z107\0\30c1 and z107\0\30c2..cycle;
+ proof_labels (
+ 107\0\0,
+ 107\0\1,
+ 107\0\2,
+ 107\0\3,
+ 107\0\4,
+ 107\0\5,
+ 107\0\6,
+ 107\0\7,
+ 107\0\8,
+ 107\0\9,
+ 107\0\10,
+ 107\0\11,
+ 107\0\12,
+ 107\0\13,
+ 107\0\14,
+ 107\0\15,
+ 107\0\16,
+ 107\0\17,
+ 107\0\18,
+ 107\0\19,
+ 107\0\20,
+ 107\0\21,
+ 107\0\22,
+ 107\0\23,
+ 107\0\24,
+ 107\0\25,
+ 107\0\26,
+ 107\0\27,
+ 107\0\28,
+ 107\0\29,
+ 107\0\30,
+);
+endchar;
+
+beginchar (218, 10.118u#, 6.745u#, 8.431u#);
+ "rgya";
+ z108\0\0s = (2.650u,5.300u);
+ z108\0\0c1 = (3.916u,5.295u);
+ z108\0\0c2 = (4.619u,5.473u);
+ z108\0\0 = (5.059u,4.095u);
+ z108\0\1c1 = (4.188u,4.095u);
+ z108\0\1c2 = (1.692u,4.293u);
+ z108\0\1 = (1.107u,3.710u);
+ z108\0\2c1 = (0.802u,3.406u);
+ z108\0\2c2 = (0.789u,3.044u);
+ z108\0\2 = (0.723u,2.650u);
+ z108\0\3 = (1.686u,2.650u);
+ z108\0\4c1 = (0.724u,1.091u);
+ z108\0\4c2 = (0.487u,-0.124u);
+ z108\0\4 = (0.482u,-1.927u);
+ z108\0\5 = (2.650u,-1.196u);
+ z108\0\6c1 = (3.786u,-0.975u);
+ z108\0\6c2 = (5.186u,-1.551u);
+ z108\0\6 = (5.892u,-2.453u);
+ z108\0\7 = (6.263u,-3.132u);
+ z108\0\8c1 = (6.504u,-2.524u);
+ z108\0\8c2 = (6.501u,-2.095u);
+ z108\0\8 = (6.504u,-1.445u);
+ z108\0\9c1 = (6.510u,-0.391u);
+ z108\0\9c2 = (6.229u,1.802u);
+ z108\0\9 = (7.280u,2.446u);
+ z108\0\10c1 = (7.539u,2.546u);
+ z108\0\10c2 = (7.853u,2.591u);
+ z108\0\10 = (8.137u,2.446u);
+ z108\0\11c1 = (8.436u,2.387u);
+ z108\0\11c2 = (8.608u,2.171u);
+ z108\0\11 = (8.736u,1.892u);
+ z108\0\12c1 = (9.103u,1.090u);
+ z108\0\12c2 = (9.291u,-2.733u);
+ z108\0\12 = (9.051u,-3.613u);
+ z108\0\13c1 = (8.871u,-4.272u);
+ z108\0\13c2 = (8.460u,-4.778u);
+ z108\0\13 = (7.939u,-5.205u);
+ z108\0\14c1 = (6.764u,-6.171u);
+ z108\0\14c2 = (5.053u,-6.198u);
+ z108\0\14 = (3.613u,-5.947u);
+ z108\0\15 = (1.204u,-5.541u);
+ z108\0\16c1 = (2.199u,-6.992u);
+ z108\0\16c2 = (3.195u,-8.132u);
+ z108\0\16 = (5.059u,-8.187u);
+ z108\0\17c1 = (6.493u,-8.229u);
+ z108\0\17c2 = (6.777u,-8.184u);
+ z108\0\17 = (7.990u,-7.431u);
+ z108\0\18c1 = (8.738u,-6.966u);
+ z108\0\18c2 = (9.170u,-6.798u);
+ z108\0\18 = (9.636u,-6.022u);
+ z108\0\19c1 = (6.477u,-7.383u);
+ z108\0\19c2 = (5.436u,-8.727u);
+ z108\0\19 = (2.409u,-6.022u);
+ z108\0\20c1 = (3.206u,-6.183u);
+ z108\0\20c2 = (4.004u,-6.432u);
+ z108\0\20 = (4.818u,-6.482u);
+ z108\0\21c1 = (6.465u,-6.583u);
+ z108\0\21c2 = (8.861u,-6.080u);
+ z108\0\21 = (9.467u,-4.333u);
+ z108\0\22c1 = (9.678u,-3.728u);
+ z108\0\22c2 = (9.635u,-3.040u);
+ z108\0\22 = (9.636u,-2.409u);
+ z108\0\23 = (9.636u,4.095u);
+ z108\0\24 = (5.782u,4.095u);
+ z108\0\25c1 = (5.856u,4.328u);
+ z108\0\25c2 = (5.874u,4.531u);
+ z108\0\25 = (6.023u,4.743u);
+ z108\0\26c1 = (6.883u,5.966u);
+ z108\0\26c2 = (8.148u,4.376u);
+ z108\0\26 = (8.431u,6.745u);
+ z108\0\27c1 = (7.293u,6.745u);
+ z108\0\27c2 = (4.010u,6.984u);
+ z108\0\27 = (3.207u,6.326u);
+ z108\0\28c1 = (2.845u,6.031u);
+ z108\0\28c2 = (2.780u,5.717u);
+ z108\1\0s = (6.022u,-1.445u);
+ z108\1\0 = (3.854u,-0.133u);
+ z108\1\1 = (2.007u,0.582u);
+ z108\1\2 = (1.749u,0.857u);
+ z108\1\3c1 = (1.577u,1.124u);
+ z108\1\3c2 = (1.646u,1.409u);
+ z108\1\3 = (1.749u,1.665u);
+ z108\1\4c1 = (2.247u,2.601u);
+ z108\1\4c2 = (3.852u,2.912u);
+ z108\1\4 = (4.755u,2.506u);
+ z108\1\5c1 = (5.871u,2.004u);
+ z108\1\5c2 = (5.999u,-0.376u);
+ fill_or_unfill z108\0\0s
+ ..controls z108\0\0c1 and z108\0\0c2..z108\0\0
+ ..controls z108\0\1c1 and z108\0\1c2..z108\0\1
+ ..controls z108\0\2c1 and z108\0\2c2..z108\0\2
+ --z108\0\3
+ ..controls z108\0\4c1 and z108\0\4c2..z108\0\4
+ --z108\0\5
+ ..controls z108\0\6c1 and z108\0\6c2..z108\0\6
+ --z108\0\7
+ ..controls z108\0\8c1 and z108\0\8c2..z108\0\8
+ ..controls z108\0\9c1 and z108\0\9c2..z108\0\9
+ ..controls z108\0\10c1 and z108\0\10c2..z108\0\10
+ ..controls z108\0\11c1 and z108\0\11c2..z108\0\11
+ ..controls z108\0\12c1 and z108\0\12c2..z108\0\12
+ ..controls z108\0\13c1 and z108\0\13c2..z108\0\13
+ ..controls z108\0\14c1 and z108\0\14c2..z108\0\14
+ --z108\0\15
+ ..controls z108\0\16c1 and z108\0\16c2..z108\0\16
+ ..controls z108\0\17c1 and z108\0\17c2..z108\0\17
+ ..controls z108\0\18c1 and z108\0\18c2..z108\0\18
+ ..controls z108\0\19c1 and z108\0\19c2..z108\0\19
+ ..controls z108\0\20c1 and z108\0\20c2..z108\0\20
+ ..controls z108\0\21c1 and z108\0\21c2..z108\0\21
+ ..controls z108\0\22c1 and z108\0\22c2..z108\0\22
+ --z108\0\23
+ --z108\0\24
+ ..controls z108\0\25c1 and z108\0\25c2..z108\0\25
+ ..controls z108\0\26c1 and z108\0\26c2..z108\0\26
+ ..controls z108\0\27c1 and z108\0\27c2..z108\0\27
+ ..controls z108\0\28c1 and z108\0\28c2..cycle;
+ fill_or_unfill z108\1\0s
+ --z108\1\0
+ --z108\1\1
+ --z108\1\2
+ ..controls z108\1\3c1 and z108\1\3c2..z108\1\3
+ ..controls z108\1\4c1 and z108\1\4c2..z108\1\4
+ ..controls z108\1\5c1 and z108\1\5c2..cycle;
+ proof_labels (
+ 108\0\0,
+ 108\0\1,
+ 108\0\2,
+ 108\0\3,
+ 108\0\4,
+ 108\0\5,
+ 108\0\6,
+ 108\0\7,
+ 108\0\8,
+ 108\0\9,
+ 108\0\10,
+ 108\0\11,
+ 108\0\12,
+ 108\0\13,
+ 108\0\14,
+ 108\0\15,
+ 108\0\16,
+ 108\0\17,
+ 108\0\18,
+ 108\0\19,
+ 108\0\20,
+ 108\0\21,
+ 108\0\22,
+ 108\0\23,
+ 108\0\24,
+ 108\0\25,
+ 108\0\26,
+ 108\0\27,
+ 108\0\28,
+ 108\1\0,
+ 108\1\1,
+ 108\1\2,
+ 108\1\3,
+ 108\1\4,
+ 108\1\5,
+);
+endchar;
+
+beginchar (219, 9.636u#, 6.745u#, 8.672u#);
+ "skya";
+ z109\0\0s = (1.686u,5.300u);
+ z109\0\0 = (0.629u,2.650u);
+ z109\0\1 = (0.482u,1.445u);
+ z109\0\2c1 = (2.134u,1.409u);
+ z109\0\2c2 = (2.630u,1.224u);
+ z109\0\2 = (4.095u,0.482u);
+ z109\0\3c1 = (3.791u,2.653u);
+ z109\0\3c2 = (2.706u,2.484u);
+ z109\0\3 = (1.445u,3.842u);
+ z109\0\4c1 = (2.012u,3.883u);
+ z109\0\4c2 = (2.567u,3.915u);
+ z109\0\4 = (3.132u,3.842u);
+ z109\0\5c1 = (4.252u,3.660u);
+ z109\0\5c2 = (6.270u,2.811u);
+ z109\0\5 = (7.158u,2.115u);
+ z109\0\6c1 = (7.843u,1.579u);
+ z109\0\6c2 = (8.388u,0.927u);
+ z109\0\6 = (8.913u,0.229u);
+ z109\0\7 = (4.577u,0.229u);
+ z109\0\8c1 = (3.888u,0.241u);
+ z109\0\8c2 = (3.096u,0.317u);
+ z109\0\8 = (2.419u,0.229u);
+ z109\0\9c1 = (2.193u,0.169u);
+ z109\0\9c2 = (1.983u,0.127u);
+ z109\0\9 = (1.790u,-0.005u);
+ z109\0\10c1 = (1.361u,-0.300u);
+ z109\0\10c2 = (1.307u,-0.739u);
+ z109\0\10 = (1.204u,-1.204u);
+ z109\0\11c1 = (2.041u,-2.116u);
+ z109\0\11c2 = (1.690u,-2.506u);
+ z109\0\11 = (1.445u,-3.613u);
+ z109\0\12c1 = (1.724u,-3.476u);
+ z109\0\12c2 = (1.919u,-3.391u);
+ z109\0\12 = (2.151u,-3.168u);
+ z109\0\13c1 = (2.585u,-2.748u);
+ z109\0\13c2 = (3.239u,-1.492u);
+ z109\0\13 = (3.864u,-1.493u);
+ z109\0\14c1 = (4.782u,-1.493u);
+ z109\0\14c2 = (4.824u,-3.592u);
+ z109\0\14 = (5.309u,-4.213u);
+ z109\0\15c1 = (5.462u,-4.408u);
+ z109\0\15c2 = (5.592u,-4.449u);
+ z109\0\15 = (5.818u,-4.577u);
+ z109\0\16 = (5.818u,-2.891u);
+ z109\0\17c1 = (5.914u,-2.525u);
+ z109\0\17c2 = (6.019u,-2.062u);
+ z109\0\17 = (6.247u,-1.762u);
+ z109\0\18c1 = (6.723u,-1.136u);
+ z109\0\18c2 = (7.730u,-1.080u);
+ z109\0\18 = (8.185u,-1.762u);
+ z109\0\19c1 = (8.428u,-2.126u);
+ z109\0\19c2 = (8.427u,-2.708u);
+ z109\0\19 = (8.429u,-3.132u);
+ z109\0\20c1 = (8.437u,-4.801u);
+ z109\0\20c2 = (7.816u,-5.864u);
+ z109\0\20 = (6.022u,-6.034u);
+ z109\0\21c1 = (4.464u,-6.181u);
+ z109\0\21c2 = (2.921u,-5.447u);
+ z109\0\21 = (1.445u,-5.059u);
+ z109\0\22c1 = (1.963u,-6.154u);
+ z109\0\22c2 = (3.239u,-7.600u);
+ z109\0\22 = (4.336u,-8.148u);
+ z109\0\23c1 = (4.743u,-8.352u);
+ z109\0\23c2 = (5.095u,-8.396u);
+ z109\0\23 = (5.541u,-8.421u);
+ z109\0\24c1 = (7.237u,-8.517u);
+ z109\0\24c2 = (8.386u,-8.087u);
+ z109\0\24 = (9.154u,-6.504u);
+ z109\0\25c1 = (6.520u,-7.550u);
+ z109\0\25c2 = (5.448u,-7.960u);
+ z109\0\25 = (3.132u,-6.022u);
+ z109\0\26 = (4.577u,-6.426u);
+ z109\0\27c1 = (5.757u,-6.623u);
+ z109\0\27c2 = (8.210u,-6.647u);
+ z109\0\27 = (8.908u,-5.487u);
+ z109\0\28c1 = (9.155u,-5.077u);
+ z109\0\28c2 = (9.145u,-4.557u);
+ z109\0\28 = (9.153u,-4.095u);
+ z109\0\29 = (9.153u,4.818u);
+ z109\0\30c1 = (9.150u,5.373u);
+ z109\0\30c2 = (9.237u,6.334u);
+ z109\0\30 = (8.601u,6.541u);
+ z109\0\31c1 = (8.365u,6.681u);
+ z109\0\31c2 = (8.056u,6.651u);
+ z109\0\31 = (7.853u,6.541u);
+ z109\0\32c1 = (7.238u,6.022u);
+ z109\0\32c2 = (7.777u,5.110u);
+ z109\0\32 = (7.990u,4.577u);
+ z109\0\33 = (8.320u,3.613u);
+ z109\0\34c1 = (8.496u,3.038u);
+ z109\0\34c2 = (8.611u,2.525u);
+ z109\0\34 = (8.672u,1.927u);
+ z109\0\35c1 = (7.070u,3.065u);
+ z109\0\35c2 = (5.531u,4.499u);
+ z109\0\35 = (3.613u,5.059u);
+ z109\0\36c1 = (3.961u,5.171u);
+ z109\0\36c2 = (4.428u,5.254u);
+ z109\0\36 = (4.741u,5.432u);
+ z109\0\37c1 = (4.966u,5.560u);
+ z109\0\37c2 = (5.151u,5.722u);
+ z109\0\37 = (5.154u,6.003u);
+ z109\0\38c1 = (5.160u,6.945u);
+ z109\0\38c2 = (2.760u,6.822u);
+ z109\0\38 = (2.173u,6.669u);
+ z109\0\39c1 = (1.772u,6.566u);
+ z109\0\39c2 = (0.900u,6.078u);
+ z109\0\39 = (1.240u,5.540u);
+ z109\0\40c1 = (1.350u,5.366u);
+ z109\0\40c2 = (1.527u,5.369u);
+ fill_or_unfill z109\0\0s
+ --z109\0\0
+ --z109\0\1
+ ..controls z109\0\2c1 and z109\0\2c2..z109\0\2
+ ..controls z109\0\3c1 and z109\0\3c2..z109\0\3
+ ..controls z109\0\4c1 and z109\0\4c2..z109\0\4
+ ..controls z109\0\5c1 and z109\0\5c2..z109\0\5
+ ..controls z109\0\6c1 and z109\0\6c2..z109\0\6
+ --z109\0\7
+ ..controls z109\0\8c1 and z109\0\8c2..z109\0\8
+ ..controls z109\0\9c1 and z109\0\9c2..z109\0\9
+ ..controls z109\0\10c1 and z109\0\10c2..z109\0\10
+ ..controls z109\0\11c1 and z109\0\11c2..z109\0\11
+ ..controls z109\0\12c1 and z109\0\12c2..z109\0\12
+ ..controls z109\0\13c1 and z109\0\13c2..z109\0\13
+ ..controls z109\0\14c1 and z109\0\14c2..z109\0\14
+ ..controls z109\0\15c1 and z109\0\15c2..z109\0\15
+ --z109\0\16
+ ..controls z109\0\17c1 and z109\0\17c2..z109\0\17
+ ..controls z109\0\18c1 and z109\0\18c2..z109\0\18
+ ..controls z109\0\19c1 and z109\0\19c2..z109\0\19
+ ..controls z109\0\20c1 and z109\0\20c2..z109\0\20
+ ..controls z109\0\21c1 and z109\0\21c2..z109\0\21
+ ..controls z109\0\22c1 and z109\0\22c2..z109\0\22
+ ..controls z109\0\23c1 and z109\0\23c2..z109\0\23
+ ..controls z109\0\24c1 and z109\0\24c2..z109\0\24
+ ..controls z109\0\25c1 and z109\0\25c2..z109\0\25
+ --z109\0\26
+ ..controls z109\0\27c1 and z109\0\27c2..z109\0\27
+ ..controls z109\0\28c1 and z109\0\28c2..z109\0\28
+ --z109\0\29
+ ..controls z109\0\30c1 and z109\0\30c2..z109\0\30
+ ..controls z109\0\31c1 and z109\0\31c2..z109\0\31
+ ..controls z109\0\32c1 and z109\0\32c2..z109\0\32
+ --z109\0\33
+ ..controls z109\0\34c1 and z109\0\34c2..z109\0\34
+ ..controls z109\0\35c1 and z109\0\35c2..z109\0\35
+ ..controls z109\0\36c1 and z109\0\36c2..z109\0\36
+ ..controls z109\0\37c1 and z109\0\37c2..z109\0\37
+ ..controls z109\0\38c1 and z109\0\38c2..z109\0\38
+ ..controls z109\0\39c1 and z109\0\39c2..z109\0\39
+ ..controls z109\0\40c1 and z109\0\40c2..cycle;
+ proof_labels (
+ 109\0\0,
+ 109\0\1,
+ 109\0\2,
+ 109\0\3,
+ 109\0\4,
+ 109\0\5,
+ 109\0\6,
+ 109\0\7,
+ 109\0\8,
+ 109\0\9,
+ 109\0\10,
+ 109\0\11,
+ 109\0\12,
+ 109\0\13,
+ 109\0\14,
+ 109\0\15,
+ 109\0\16,
+ 109\0\17,
+ 109\0\18,
+ 109\0\19,
+ 109\0\20,
+ 109\0\21,
+ 109\0\22,
+ 109\0\23,
+ 109\0\24,
+ 109\0\25,
+ 109\0\26,
+ 109\0\27,
+ 109\0\28,
+ 109\0\29,
+ 109\0\30,
+ 109\0\31,
+ 109\0\32,
+ 109\0\33,
+ 109\0\34,
+ 109\0\35,
+ 109\0\36,
+ 109\0\37,
+ 109\0\38,
+ 109\0\39,
+ 109\0\40,
+);
+endchar;
+
+beginchar (220, 10.359u#, 6.745u#, 6.504u#);
+ "skra";
+ z110\0\0s = (1.204u,5.300u);
+ z110\0\0c1 = (1.372u,5.175u);
+ z110\0\0c2 = (1.528u,5.156u);
+ z110\0\0 = (1.621u,4.928u);
+ z110\0\1c1 = (1.847u,4.375u);
+ z110\0\1c2 = (1.005u,3.188u);
+ z110\0\1 = (0.773u,2.650u);
+ z110\0\2 = (0.482u,1.661u);
+ z110\0\3c1 = (1.346u,1.686u);
+ z110\0\3c2 = (2.276u,1.755u);
+ z110\0\3 = (3.132u,1.661u);
+ z110\0\4 = (5.059u,1.204u);
+ z110\0\5c1 = (4.688u,1.694u);
+ z110\0\5c2 = (4.375u,2.071u);
+ z110\0\5 = (3.851u,2.411u);
+ z110\0\6c1 = (2.959u,2.989u);
+ z110\0\6c2 = (2.523u,2.850u);
+ z110\0\6 = (1.927u,3.854u);
+ z110\0\7c1 = (3.675u,3.696u);
+ z110\0\7c2 = (7.097u,2.299u);
+ z110\0\7 = (8.377u,1.113u);
+ z110\0\8 = (8.913u,0.470u);
+ z110\0\9 = (4.818u,0.470u);
+ z110\0\10c1 = (4.126u,0.482u);
+ z110\0\10c2 = (3.335u,0.556u);
+ z110\0\10 = (2.654u,0.470u);
+ z110\0\11c1 = (2.425u,0.410u);
+ z110\0\11c2 = (2.200u,0.367u);
+ z110\0\11 = (2.003u,0.235u);
+ z110\0\12c1 = (1.554u,-0.063u);
+ z110\0\12c2 = (1.526u,-0.483u);
+ z110\0\12 = (1.445u,-0.964u);
+ z110\0\13 = (2.409u,-0.964u);
+ z110\0\14c1 = (2.066u,-1.855u);
+ z110\0\14c2 = (1.820u,-2.666u);
+ z110\0\14 = (1.686u,-3.613u);
+ z110\0\15c1 = (1.881u,-3.485u);
+ z110\0\15c2 = (2.005u,-3.433u);
+ z110\0\15 = (2.172u,-3.249u);
+ z110\0\16c1 = (2.765u,-2.596u);
+ z110\0\16c2 = (3.797u,-0.656u);
+ z110\0\16 = (4.945u,-1.572u);
+ z110\0\17c1 = (5.524u,-2.033u);
+ z110\0\17c2 = (5.692u,-2.928u);
+ z110\0\17 = (5.782u,-3.613u);
+ z110\0\18 = (6.263u,-3.613u);
+ z110\0\19c1 = (6.305u,-2.762u);
+ z110\0\19c2 = (6.448u,-0.934u);
+ z110\0\19 = (7.705u,-1.074u);
+ z110\0\20c1 = (8.018u,-1.109u);
+ z110\0\20c2 = (8.251u,-1.267u);
+ z110\0\20 = (8.430u,-1.521u);
+ z110\0\21c1 = (8.821u,-2.079u);
+ z110\0\21c2 = (8.873u,-3.634u);
+ z110\0\21 = (8.955u,-4.336u);
+ z110\0\22 = (9.154u,-5.541u);
+ z110\0\23c1 = (8.762u,-5.223u);
+ z110\0\23c2 = (8.396u,-4.919u);
+ z110\0\23 = (7.950u,-4.677u);
+ z110\0\24c1 = (6.853u,-4.082u);
+ z110\0\24c2 = (4.543u,-3.455u);
+ z110\0\24 = (3.644u,-4.677u);
+ z110\0\25c1 = (3.494u,-4.881u);
+ z110\0\25c2 = (3.459u,-5.075u);
+ z110\0\25 = (3.372u,-5.339u);
+ z110\0\26c1 = (4.435u,-5.515u);
+ z110\0\26c2 = (5.439u,-5.193u);
+ z110\0\26 = (6.504u,-5.339u);
+ z110\0\27 = (8.672u,-6.112u);
+ z110\0\28 = (9.647u,-6.263u);
+ z110\0\29 = (9.647u,-2.891u);
+ z110\0\30 = (9.867u,-0.964u);
+ z110\0\31 = (9.657u,2.168u);
+ z110\0\32 = (9.657u,4.095u);
+ z110\0\33 = (9.830u,5.537u);
+ z110\0\34c1 = (9.817u,5.823u);
+ z110\0\34c2 = (9.776u,6.132u);
+ z110\0\34 = (9.594u,6.366u);
+ z110\0\35c1 = (9.218u,6.848u);
+ z110\0\35c2 = (8.260u,6.743u);
+ z110\0\35 = (7.709u,6.745u);
+ z110\0\36c1 = (7.797u,5.501u);
+ z110\0\36c2 = (8.230u,4.964u);
+ z110\0\36 = (8.656u,3.854u);
+ z110\0\37c1 = (9.018u,2.912u);
+ z110\0\37c2 = (9.131u,2.206u);
+ z110\0\37 = (9.154u,1.204u);
+ z110\0\38c1 = (7.788u,3.009u);
+ z110\0\38c2 = (6.031u,4.371u);
+ z110\0\38 = (3.854u,5.059u);
+ z110\0\39 = (5.027u,5.392u);
+ z110\0\40c1 = (5.311u,5.503u);
+ z110\0\40c2 = (5.640u,5.663u);
+ z110\0\40 = (5.640u,6.022u);
+ z110\0\41c1 = (5.640u,7.053u);
+ z110\0\41c2 = (2.352u,6.848u);
+ z110\0\41 = (1.790u,6.462u);
+ z110\0\42c1 = (1.363u,6.169u);
+ z110\0\42c2 = (1.309u,5.764u);
+ fill_or_unfill z110\0\0s
+ ..controls z110\0\0c1 and z110\0\0c2..z110\0\0
+ ..controls z110\0\1c1 and z110\0\1c2..z110\0\1
+ --z110\0\2
+ ..controls z110\0\3c1 and z110\0\3c2..z110\0\3
+ --z110\0\4
+ ..controls z110\0\5c1 and z110\0\5c2..z110\0\5
+ ..controls z110\0\6c1 and z110\0\6c2..z110\0\6
+ ..controls z110\0\7c1 and z110\0\7c2..z110\0\7
+ --z110\0\8
+ --z110\0\9
+ ..controls z110\0\10c1 and z110\0\10c2..z110\0\10
+ ..controls z110\0\11c1 and z110\0\11c2..z110\0\11
+ ..controls z110\0\12c1 and z110\0\12c2..z110\0\12
+ --z110\0\13
+ ..controls z110\0\14c1 and z110\0\14c2..z110\0\14
+ ..controls z110\0\15c1 and z110\0\15c2..z110\0\15
+ ..controls z110\0\16c1 and z110\0\16c2..z110\0\16
+ ..controls z110\0\17c1 and z110\0\17c2..z110\0\17
+ --z110\0\18
+ ..controls z110\0\19c1 and z110\0\19c2..z110\0\19
+ ..controls z110\0\20c1 and z110\0\20c2..z110\0\20
+ ..controls z110\0\21c1 and z110\0\21c2..z110\0\21
+ --z110\0\22
+ ..controls z110\0\23c1 and z110\0\23c2..z110\0\23
+ ..controls z110\0\24c1 and z110\0\24c2..z110\0\24
+ ..controls z110\0\25c1 and z110\0\25c2..z110\0\25
+ ..controls z110\0\26c1 and z110\0\26c2..z110\0\26
+ --z110\0\27
+ --z110\0\28
+ --z110\0\29
+ --z110\0\30
+ --z110\0\31
+ --z110\0\32
+ --z110\0\33
+ ..controls z110\0\34c1 and z110\0\34c2..z110\0\34
+ ..controls z110\0\35c1 and z110\0\35c2..z110\0\35
+ ..controls z110\0\36c1 and z110\0\36c2..z110\0\36
+ ..controls z110\0\37c1 and z110\0\37c2..z110\0\37
+ ..controls z110\0\38c1 and z110\0\38c2..z110\0\38
+ --z110\0\39
+ ..controls z110\0\40c1 and z110\0\40c2..z110\0\40
+ ..controls z110\0\41c1 and z110\0\41c2..z110\0\41
+ ..controls z110\0\42c1 and z110\0\42c2..cycle;
+ proof_labels (
+ 110\0\0,
+ 110\0\1,
+ 110\0\2,
+ 110\0\3,
+ 110\0\4,
+ 110\0\5,
+ 110\0\6,
+ 110\0\7,
+ 110\0\8,
+ 110\0\9,
+ 110\0\10,
+ 110\0\11,
+ 110\0\12,
+ 110\0\13,
+ 110\0\14,
+ 110\0\15,
+ 110\0\16,
+ 110\0\17,
+ 110\0\18,
+ 110\0\19,
+ 110\0\20,
+ 110\0\21,
+ 110\0\22,
+ 110\0\23,
+ 110\0\24,
+ 110\0\25,
+ 110\0\26,
+ 110\0\27,
+ 110\0\28,
+ 110\0\29,
+ 110\0\30,
+ 110\0\31,
+ 110\0\32,
+ 110\0\33,
+ 110\0\34,
+ 110\0\35,
+ 110\0\36,
+ 110\0\37,
+ 110\0\38,
+ 110\0\39,
+ 110\0\40,
+ 110\0\41,
+ 110\0\42,
+);
+endchar;
+
+beginchar (221, 10.359u#, 6.745u#, 9.395u#);
+ "sgya";
+ z111\0\0s = (0.964u,5.300u);
+ z111\0\0 = (1.927u,5.059u);
+ z111\0\1 = (0.656u,2.650u);
+ z111\0\2 = (0.482u,1.661u);
+ z111\0\3 = (2.650u,1.661u);
+ z111\0\4 = (4.577u,1.204u);
+ z111\0\5 = (4.306u,1.850u);
+ z111\0\6c1 = (3.816u,2.595u);
+ z111\0\6c2 = (2.469u,3.168u);
+ z111\0\6 = (1.686u,3.613u);
+ z111\0\7c1 = (2.044u,3.730u);
+ z111\0\7c2 = (2.370u,3.854u);
+ z111\0\7 = (2.752u,3.864u);
+ z111\0\8c1 = (3.945u,3.893u);
+ z111\0\8c2 = (6.958u,2.910u);
+ z111\0\8 = (7.908u,2.189u);
+ z111\0\9c1 = (8.462u,1.768u);
+ z111\0\9c2 = (8.781u,1.295u);
+ z111\0\9 = (9.154u,0.687u);
+ z111\0\10c1 = (8.269u,0.723u);
+ z111\0\10c2 = (3.137u,0.782u);
+ z111\0\10 = (2.704u,0.687u);
+ z111\0\11c1 = (2.423u,0.568u);
+ z111\0\11c2 = (2.235u,0.452u);
+ z111\0\11 = (2.118u,0.170u);
+ z111\0\12c1 = (1.873u,-0.419u);
+ z111\0\12c2 = (2.314u,-1.275u);
+ z111\0\12 = (2.310u,-1.927u);
+ z111\0\13 = (2.168u,-4.095u);
+ z111\0\14c1 = (4.399u,-3.916u);
+ z111\0\14c2 = (4.180u,-3.824u);
+ z111\0\14 = (6.263u,-4.818u);
+ z111\0\15 = (6.263u,-3.854u);
+ z111\0\16c1 = (6.268u,-2.824u);
+ z111\0\16c2 = (6.232u,-0.793u);
+ z111\0\16 = (7.709u,-0.793u);
+ z111\0\17c1 = (8.117u,-0.793u);
+ z111\0\17c2 = (8.442u,-0.956u);
+ z111\0\17 = (8.688u,-1.280u);
+ z111\0\18c1 = (9.001u,-1.692u);
+ z111\0\18c2 = (9.091u,-2.387u);
+ z111\0\18 = (9.144u,-2.890u);
+ z111\0\19c1 = (9.172u,-3.309u);
+ z111\0\19c2 = (9.224u,-3.818u);
+ z111\0\19 = (9.144u,-4.234u);
+ z111\0\20c1 = (8.916u,-5.592u);
+ z111\0\20c2 = (7.534u,-6.486u);
+ z111\0\20 = (6.263u,-6.714u);
+ z111\0\21c1 = (4.763u,-6.983u);
+ z111\0\21c2 = (3.382u,-6.487u);
+ z111\0\21 = (1.927u,-6.263u);
+ z111\0\22c1 = (2.473u,-7.264u);
+ z111\0\22c2 = (3.774u,-8.404u);
+ z111\0\22 = (4.818u,-8.880u);
+ z111\0\23c1 = (5.837u,-9.346u);
+ z111\0\23c2 = (8.217u,-9.300u);
+ z111\0\23 = (9.079u,-8.516u);
+ z111\0\24c1 = (9.431u,-8.196u);
+ z111\0\24c2 = (9.502u,-7.897u);
+ z111\0\24 = (9.636u,-7.468u);
+ z111\0\25c1 = (9.094u,-7.798u);
+ z111\0\25c2 = (8.543u,-8.202u);
+ z111\0\25 = (7.950u,-8.431u);
+ z111\0\26c1 = (6.207u,-9.102u);
+ z111\0\26c2 = (4.830u,-7.972u);
+ z111\0\26 = (3.372u,-7.227u);
+ z111\0\27c1 = (5.168u,-7.039u);
+ z111\0\27c2 = (6.724u,-7.532u);
+ z111\0\27 = (8.421u,-6.484u);
+ z111\0\28c1 = (10.278u,-5.338u);
+ z111\0\28c2 = (9.904u,-2.613u);
+ z111\0\28 = (9.825u,-0.724u);
+ z111\0\29c1 = (9.870u,-0.336u);
+ z111\0\29c2 = (9.864u,0.034u);
+ z111\0\29 = (9.825u,0.413u);
+ z111\0\30 = (9.427u,1.467u);
+ z111\0\31c1 = (9.348u,2.076u);
+ z111\0\31c2 = (9.389u,2.754u);
+ z111\0\31 = (9.427u,3.372u);
+ z111\0\32 = (9.636u,6.745u);
+ z111\0\33c1 = (8.730u,6.736u);
+ z111\0\33c2 = (7.016u,6.805u);
+ z111\0\33 = (7.831u,5.365u);
+ z111\0\34 = (8.496u,4.315u);
+ z111\0\35c1 = (8.695u,3.803u);
+ z111\0\35c2 = (8.667u,3.191u);
+ z111\0\35 = (8.672u,2.650u);
+ z111\0\36c1 = (7.020u,3.577u);
+ z111\0\36c2 = (5.779u,4.709u);
+ z111\0\36 = (3.854u,5.059u);
+ z111\0\37c1 = (5.142u,5.459u);
+ z111\0\37c2 = (5.660u,5.216u);
+ z111\0\37 = (5.782u,6.745u);
+ z111\0\38c1 = (4.825u,6.745u);
+ z111\0\38c2 = (2.020u,6.961u);
+ z111\0\38 = (1.382u,6.326u);
+ z111\0\39c1 = (1.087u,6.034u);
+ z111\0\39c2 = (1.049u,5.680u);
+ z111\1\0s = (5.300u,-0.723u);
+ z111\1\0 = (5.782u,-3.613u);
+ z111\1\1c1 = (5.282u,-3.501u);
+ z111\1\1c2 = (3.553u,-3.105u);
+ z111\1\1 = (3.212u,-2.852u);
+ z111\1\2c1 = (2.366u,-2.226u);
+ z111\1\2c2 = (3.193u,-1.231u);
+ z111\1\2 = (3.896u,-0.932u);
+ z111\1\3c1 = (4.337u,-0.744u);
+ z111\1\3c2 = (4.830u,-0.746u);
+ fill_or_unfill z111\0\0s
+ --z111\0\0
+ --z111\0\1
+ --z111\0\2
+ --z111\0\3
+ --z111\0\4
+ --z111\0\5
+ ..controls z111\0\6c1 and z111\0\6c2..z111\0\6
+ ..controls z111\0\7c1 and z111\0\7c2..z111\0\7
+ ..controls z111\0\8c1 and z111\0\8c2..z111\0\8
+ ..controls z111\0\9c1 and z111\0\9c2..z111\0\9
+ ..controls z111\0\10c1 and z111\0\10c2..z111\0\10
+ ..controls z111\0\11c1 and z111\0\11c2..z111\0\11
+ ..controls z111\0\12c1 and z111\0\12c2..z111\0\12
+ --z111\0\13
+ ..controls z111\0\14c1 and z111\0\14c2..z111\0\14
+ --z111\0\15
+ ..controls z111\0\16c1 and z111\0\16c2..z111\0\16
+ ..controls z111\0\17c1 and z111\0\17c2..z111\0\17
+ ..controls z111\0\18c1 and z111\0\18c2..z111\0\18
+ ..controls z111\0\19c1 and z111\0\19c2..z111\0\19
+ ..controls z111\0\20c1 and z111\0\20c2..z111\0\20
+ ..controls z111\0\21c1 and z111\0\21c2..z111\0\21
+ ..controls z111\0\22c1 and z111\0\22c2..z111\0\22
+ ..controls z111\0\23c1 and z111\0\23c2..z111\0\23
+ ..controls z111\0\24c1 and z111\0\24c2..z111\0\24
+ ..controls z111\0\25c1 and z111\0\25c2..z111\0\25
+ ..controls z111\0\26c1 and z111\0\26c2..z111\0\26
+ ..controls z111\0\27c1 and z111\0\27c2..z111\0\27
+ ..controls z111\0\28c1 and z111\0\28c2..z111\0\28
+ ..controls z111\0\29c1 and z111\0\29c2..z111\0\29
+ --z111\0\30
+ ..controls z111\0\31c1 and z111\0\31c2..z111\0\31
+ --z111\0\32
+ ..controls z111\0\33c1 and z111\0\33c2..z111\0\33
+ --z111\0\34
+ ..controls z111\0\35c1 and z111\0\35c2..z111\0\35
+ ..controls z111\0\36c1 and z111\0\36c2..z111\0\36
+ ..controls z111\0\37c1 and z111\0\37c2..z111\0\37
+ ..controls z111\0\38c1 and z111\0\38c2..z111\0\38
+ ..controls z111\0\39c1 and z111\0\39c2..cycle;
+ fill_or_unfill z111\1\0s
+ --z111\1\0
+ ..controls z111\1\1c1 and z111\1\1c2..z111\1\1
+ ..controls z111\1\2c1 and z111\1\2c2..z111\1\2
+ ..controls z111\1\3c1 and z111\1\3c2..cycle;
+ proof_labels (
+ 111\0\0,
+ 111\0\1,
+ 111\0\2,
+ 111\0\3,
+ 111\0\4,
+ 111\0\5,
+ 111\0\6,
+ 111\0\7,
+ 111\0\8,
+ 111\0\9,
+ 111\0\10,
+ 111\0\11,
+ 111\0\12,
+ 111\0\13,
+ 111\0\14,
+ 111\0\15,
+ 111\0\16,
+ 111\0\17,
+ 111\0\18,
+ 111\0\19,
+ 111\0\20,
+ 111\0\21,
+ 111\0\22,
+ 111\0\23,
+ 111\0\24,
+ 111\0\25,
+ 111\0\26,
+ 111\0\27,
+ 111\0\28,
+ 111\0\29,
+ 111\0\30,
+ 111\0\31,
+ 111\0\32,
+ 111\0\33,
+ 111\0\34,
+ 111\0\35,
+ 111\0\36,
+ 111\0\37,
+ 111\0\38,
+ 111\0\39,
+ 111\1\0,
+ 111\1\1,
+ 111\1\2,
+ 111\1\3,
+);
+endchar;
+
+beginchar (222, 10.118u#, 6.745u#, 7.950u#);
+ "sgra";
+ z112\0\0s = (0.723u,5.300u);
+ z112\0\0 = (1.686u,5.300u);
+ z112\0\1c1 = (1.057u,3.882u);
+ z112\0\1c2 = (0.562u,3.307u);
+ z112\0\1 = (0.482u,1.686u);
+ z112\0\2c1 = (2.808u,2.103u);
+ z112\0\2c2 = (2.472u,1.798u);
+ z112\0\2 = (4.577u,1.204u);
+ z112\0\3c1 = (3.881u,2.639u);
+ z112\0\3c2 = (2.930u,3.024u);
+ z112\0\3 = (1.445u,3.372u);
+ z112\0\4c1 = (1.691u,3.631u);
+ z112\0\4c2 = (1.834u,3.854u);
+ z112\0\4 = (2.195u,3.979u);
+ z112\0\5c1 = (3.177u,4.320u);
+ z112\0\5c2 = (6.154u,3.098u);
+ z112\0\5 = (6.985u,2.497u);
+ z112\0\6c1 = (7.589u,2.061u);
+ z112\0\6c2 = (8.000u,1.560u);
+ z112\0\6 = (8.431u,0.964u);
+ z112\0\7c1 = (7.318u,0.964u);
+ z112\0\7c2 = (2.720u,1.153u);
+ z112\0\7 = (2.031u,0.681u);
+ z112\0\8c1 = (1.603u,0.387u);
+ z112\0\8c2 = (1.550u,-0.018u);
+ z112\0\8 = (1.445u,-0.482u);
+ z112\0\9c1 = (1.623u,-0.609u);
+ z112\0\9c2 = (1.769u,-0.631u);
+ z112\0\9 = (1.883u,-0.853u);
+ z112\0\10c1 = (2.142u,-1.356u);
+ z112\0\10c2 = (1.684u,-2.351u);
+ z112\0\10 = (1.570u,-2.891u);
+ z112\0\11 = (1.445u,-4.073u);
+ z112\0\12c1 = (2.557u,-3.886u);
+ z112\0\12c2 = (3.495u,-3.518u);
+ z112\0\12 = (4.577u,-4.073u);
+ z112\0\13 = (6.022u,-4.818u);
+ z112\0\14c1 = (6.022u,-3.835u);
+ z112\0\14c2 = (5.703u,-0.633u);
+ z112\0\14 = (7.229u,-0.633u);
+ z112\0\15c1 = (7.639u,-0.633u);
+ z112\0\15c2 = (7.950u,-0.906u);
+ z112\0\15 = (8.148u,-1.240u);
+ z112\0\16c1 = (8.526u,-1.873u);
+ z112\0\16c2 = (8.403u,-2.889u);
+ z112\0\16 = (8.472u,-3.613u);
+ z112\0\17c1 = (8.563u,-4.565u);
+ z112\0\17c2 = (8.653u,-5.589u);
+ z112\0\17 = (8.913u,-6.504u);
+ z112\0\18c1 = (7.360u,-5.708u);
+ z112\0\18c2 = (6.370u,-5.236u);
+ z112\0\18 = (4.577u,-5.304u);
+ z112\0\19c1 = (4.121u,-5.322u);
+ z112\0\19c2 = (3.621u,-5.340u);
+ z112\0\19 = (3.276u,-5.685u);
+ z112\0\20c1 = (2.970u,-5.989u);
+ z112\0\20c2 = (2.957u,-6.351u);
+ z112\0\20 = (2.891u,-6.726u);
+ z112\0\21c1 = (4.341u,-6.678u);
+ z112\0\21c2 = (5.800u,-6.216u);
+ z112\0\21 = (7.227u,-6.726u);
+ z112\0\22 = (9.395u,-7.709u);
+ z112\0\23 = (9.395u,-3.372u);
+ z112\0\24 = (9.625u,-0.964u);
+ z112\0\25 = (9.625u,0.964u);
+ z112\0\26 = (8.934u,0.964u);
+ z112\0\27 = (8.934u,3.132u);
+ z112\0\28 = (9.360u,5.300u);
+ z112\0\29 = (9.360u,6.745u);
+ z112\0\30c1 = (8.976u,6.740u);
+ z112\0\30c2 = (8.194u,6.783u);
+ z112\0\30 = (7.862u,6.499u);
+ z112\0\31c1 = (7.252u,5.975u);
+ z112\0\31c2 = (8.113u,4.299u);
+ z112\0\31 = (8.268u,3.613u);
+ z112\0\32c1 = (8.378u,3.128u);
+ z112\0\32c2 = (8.408u,2.663u);
+ z112\0\32 = (8.431u,2.168u);
+ z112\0\33c1 = (7.328u,3.558u);
+ z112\0\33c2 = (6.015u,4.483u);
+ z112\0\33 = (4.336u,5.059u);
+ z112\0\34c1 = (4.594u,5.188u);
+ z112\0\34c2 = (4.914u,5.302u);
+ z112\0\34 = (5.119u,5.513u);
+ z112\0\35c1 = (5.574u,5.983u);
+ z112\0\35c2 = (5.378u,6.492u);
+ z112\0\35 = (4.782u,6.669u);
+ z112\0\36c1 = (4.246u,6.829u);
+ z112\0\36c2 = (1.522u,6.826u);
+ z112\0\36 = (1.108u,6.499u);
+ z112\0\37c1 = (0.736u,6.205u);
+ z112\0\37c2 = (0.758u,5.723u);
+ z112\1\0s = (5.541u,-3.854u);
+ z112\1\0c1 = (4.083u,-2.967u);
+ z112\1\0c2 = (3.875u,-2.757u);
+ z112\1\0 = (2.168u,-2.409u);
+ z112\1\1c1 = (2.495u,-1.726u);
+ z112\1\1c2 = (2.859u,-1.009u);
+ z112\1\1 = (3.620u,-0.721u);
+ z112\1\2c1 = (5.179u,-0.130u);
+ z112\1\2c2 = (5.458u,-2.873u);
+ fill_or_unfill z112\0\0s
+ --z112\0\0
+ ..controls z112\0\1c1 and z112\0\1c2..z112\0\1
+ ..controls z112\0\2c1 and z112\0\2c2..z112\0\2
+ ..controls z112\0\3c1 and z112\0\3c2..z112\0\3
+ ..controls z112\0\4c1 and z112\0\4c2..z112\0\4
+ ..controls z112\0\5c1 and z112\0\5c2..z112\0\5
+ ..controls z112\0\6c1 and z112\0\6c2..z112\0\6
+ ..controls z112\0\7c1 and z112\0\7c2..z112\0\7
+ ..controls z112\0\8c1 and z112\0\8c2..z112\0\8
+ ..controls z112\0\9c1 and z112\0\9c2..z112\0\9
+ ..controls z112\0\10c1 and z112\0\10c2..z112\0\10
+ --z112\0\11
+ ..controls z112\0\12c1 and z112\0\12c2..z112\0\12
+ --z112\0\13
+ ..controls z112\0\14c1 and z112\0\14c2..z112\0\14
+ ..controls z112\0\15c1 and z112\0\15c2..z112\0\15
+ ..controls z112\0\16c1 and z112\0\16c2..z112\0\16
+ ..controls z112\0\17c1 and z112\0\17c2..z112\0\17
+ ..controls z112\0\18c1 and z112\0\18c2..z112\0\18
+ ..controls z112\0\19c1 and z112\0\19c2..z112\0\19
+ ..controls z112\0\20c1 and z112\0\20c2..z112\0\20
+ ..controls z112\0\21c1 and z112\0\21c2..z112\0\21
+ --z112\0\22
+ --z112\0\23
+ --z112\0\24
+ --z112\0\25
+ --z112\0\26
+ --z112\0\27
+ --z112\0\28
+ --z112\0\29
+ ..controls z112\0\30c1 and z112\0\30c2..z112\0\30
+ ..controls z112\0\31c1 and z112\0\31c2..z112\0\31
+ ..controls z112\0\32c1 and z112\0\32c2..z112\0\32
+ ..controls z112\0\33c1 and z112\0\33c2..z112\0\33
+ ..controls z112\0\34c1 and z112\0\34c2..z112\0\34
+ ..controls z112\0\35c1 and z112\0\35c2..z112\0\35
+ ..controls z112\0\36c1 and z112\0\36c2..z112\0\36
+ ..controls z112\0\37c1 and z112\0\37c2..cycle;
+ fill_or_unfill z112\1\0s
+ ..controls z112\1\0c1 and z112\1\0c2..z112\1\0
+ ..controls z112\1\1c1 and z112\1\1c2..z112\1\1
+ ..controls z112\1\2c1 and z112\1\2c2..cycle;
+ proof_labels (
+ 112\0\0,
+ 112\0\1,
+ 112\0\2,
+ 112\0\3,
+ 112\0\4,
+ 112\0\5,
+ 112\0\6,
+ 112\0\7,
+ 112\0\8,
+ 112\0\9,
+ 112\0\10,
+ 112\0\11,
+ 112\0\12,
+ 112\0\13,
+ 112\0\14,
+ 112\0\15,
+ 112\0\16,
+ 112\0\17,
+ 112\0\18,
+ 112\0\19,
+ 112\0\20,
+ 112\0\21,
+ 112\0\22,
+ 112\0\23,
+ 112\0\24,
+ 112\0\25,
+ 112\0\26,
+ 112\0\27,
+ 112\0\28,
+ 112\0\29,
+ 112\0\30,
+ 112\0\31,
+ 112\0\32,
+ 112\0\33,
+ 112\0\34,
+ 112\0\35,
+ 112\0\36,
+ 112\0\37,
+ 112\1\0,
+ 112\1\1,
+ 112\1\2,
+);
+endchar;
+
+beginchar (223, 10.600u#, 6.745u#, 9.154u#);
+ "spya";
+ z113\0\0s = (0.964u,5.300u);
+ z113\0\0 = (2.168u,5.300u);
+ z113\0\1c1 = (1.490u,4.087u);
+ z113\0\1c2 = (0.675u,3.097u);
+ z113\0\1 = (0.482u,1.686u);
+ z113\0\2c1 = (2.456u,1.668u);
+ z113\0\2c2 = (2.796u,1.383u);
+ z113\0\2 = (4.577u,0.723u);
+ z113\0\3c1 = (3.344u,0.328u);
+ z113\0\3c2 = (2.888u,0.459u);
+ z113\0\3 = (2.650u,-0.964u);
+ z113\0\4 = (3.613u,-0.964u);
+ z113\0\5c1 = (2.452u,-2.748u);
+ z113\0\5c2 = (2.175u,-3.156u);
+ z113\0\5 = (2.168u,-5.300u);
+ z113\0\6c1 = (3.136u,-5.125u);
+ z113\0\6c2 = (4.078u,-4.633u);
+ z113\0\6 = (5.059u,-4.621u);
+ z113\0\7c1 = (5.943u,-4.609u);
+ z113\0\7c2 = (8.866u,-5.030u);
+ z113\0\7 = (8.866u,-6.223u);
+ z113\0\8c1 = (8.866u,-6.616u);
+ z113\0\8c2 = (8.481u,-6.841u);
+ z113\0\8 = (8.176u,-6.994u);
+ z113\0\9c1 = (7.650u,-7.257u);
+ z113\0\9c2 = (6.851u,-7.419u);
+ z113\0\9 = (6.263u,-7.406u);
+ z113\0\10c1 = (5.533u,-7.390u);
+ z113\0\10c2 = (4.556u,-7.272u);
+ z113\0\10 = (3.854u,-7.075u);
+ z113\0\11 = (1.445u,-6.263u);
+ z113\0\12c1 = (1.521u,-6.514u);
+ z113\0\12c2 = (1.552u,-6.727u);
+ z113\0\12 = (1.687u,-6.964u);
+ z113\0\13c1 = (2.083u,-7.657u);
+ z113\0\13c2 = (3.342u,-8.494u);
+ z113\0\13 = (4.095u,-8.745u);
+ z113\0\14c1 = (5.237u,-9.126u);
+ z113\0\14c2 = (8.582u,-8.919u);
+ z113\0\14 = (9.565u,-8.207u);
+ z113\0\15c1 = (9.868u,-7.988u);
+ z113\0\15c2 = (9.946u,-7.775u);
+ z113\0\15 = (10.118u,-7.468u);
+ z113\0\16c1 = (9.649u,-7.704u);
+ z113\0\16c2 = (9.187u,-7.967u);
+ z113\0\16 = (8.672u,-8.074u);
+ z113\0\17c1 = (7.964u,-8.261u);
+ z113\0\17c2 = (5.045u,-8.239u);
+ z113\0\17 = (4.336u,-8.074u);
+ z113\0\18c1 = (3.505u,-7.843u);
+ z113\0\18c2 = (2.713u,-7.335u);
+ z113\0\18 = (1.927u,-6.986u);
+ z113\0\19 = (4.336u,-7.653u);
+ z113\0\20c1 = (5.126u,-7.745u);
+ z113\0\20c2 = (5.945u,-7.710u);
+ z113\0\20 = (6.745u,-7.653u);
+ z113\0\21c1 = (7.625u,-7.707u);
+ z113\0\21c2 = (8.633u,-7.788u);
+ z113\0\21 = (9.319u,-7.123u);
+ z113\0\22c1 = (9.583u,-6.868u);
+ z113\0\22c2 = (9.711u,-6.611u);
+ z113\0\22 = (9.855u,-6.260u);
+ z113\0\23c1 = (9.910u,-5.838u);
+ z113\0\23c2 = (9.876u,-5.257u);
+ z113\0\23 = (9.855u,-4.818u);
+ z113\0\24 = (9.855u,-2.168u);
+ z113\0\25c1 = (9.913u,-1.555u);
+ z113\0\25c2 = (10.115u,-0.864u);
+ z113\0\25 = (10.025u,-0.262u);
+ z113\0\26 = (9.525u,1.004u);
+ z113\0\27c1 = (9.344u,1.587u);
+ z113\0\27c2 = (9.383u,2.285u);
+ z113\0\27 = (9.398u,2.891u);
+ z113\0\28c1 = (9.409u,3.300u);
+ z113\0\28c2 = (9.430u,3.696u);
+ z113\0\28 = (9.528u,4.095u);
+ z113\0\29c1 = (9.672u,4.687u);
+ z113\0\29c2 = (10.195u,5.600u);
+ z113\0\29 = (9.961u,6.188u);
+ z113\0\30c1 = (9.611u,7.065u);
+ z113\0\30c2 = (7.659u,6.788u);
+ z113\0\30 = (7.609u,5.796u);
+ z113\0\31c1 = (7.587u,5.356u);
+ z113\0\31c2 = (8.194u,4.569u);
+ z113\0\31 = (8.369u,4.092u);
+ z113\0\32 = (8.913u,1.927u);
+ z113\0\33 = (6.745u,3.498u);
+ z113\0\34 = (4.336u,5.300u);
+ z113\0\35c1 = (4.839u,5.317u);
+ z113\0\35c2 = (5.871u,5.274u);
+ z113\0\35 = (5.871u,6.022u);
+ z113\0\36c1 = (5.871u,6.301u);
+ z113\0\36c2 = (5.701u,6.484u);
+ z113\0\36 = (5.464u,6.601u);
+ z113\0\37c1 = (4.890u,6.885u);
+ z113\0\37c2 = (2.078u,6.825u);
+ z113\0\37 = (1.549u,6.462u);
+ z113\0\38c1 = (1.122u,6.169u);
+ z113\0\38c2 = (1.068u,5.764u);
+ z113\1\0s = (8.913u,0.482u);
+ z113\1\0c1 = (8.579u,0.285u);
+ z113\1\0c2 = (8.259u,0.187u);
+ z113\1\0 = (8.227u,-0.274u);
+ z113\1\1c1 = (8.199u,-0.676u);
+ z113\1\1c2 = (8.600u,-1.297u);
+ z113\1\1 = (8.750u,-1.686u);
+ z113\1\2 = (9.252u,-3.372u);
+ z113\1\3c1 = (9.384u,-3.939u);
+ z113\1\3c2 = (9.389u,-4.481u);
+ z113\1\3 = (9.395u,-5.059u);
+ z113\1\4c1 = (6.828u,-3.762u);
+ z113\1\4c2 = (6.389u,-3.073u);
+ z113\1\4 = (3.400u,-3.613u);
+ z113\1\5c1 = (3.380u,-3.350u);
+ z113\1\5c2 = (3.349u,-3.157u);
+ z113\1\5 = (3.400u,-2.891u);
+ z113\1\6c1 = (3.650u,-2.142u);
+ z113\1\6c2 = (4.351u,-1.404u);
+ z113\1\6 = (5.062u,-1.103u);
+ z113\1\7c1 = (5.524u,-0.908u);
+ z113\1\7c2 = (5.997u,-0.929u);
+ z113\1\7 = (6.403u,-0.579u);
+ z113\1\8c1 = (6.750u,-0.278u);
+ z113\1\8c2 = (6.841u,0.072u);
+ z113\1\8 = (6.986u,0.482u);
+ z113\1\9 = (4.818u,0.482u);
+ z113\1\10c1 = (4.098u,1.999u);
+ z113\1\10c2 = (3.165u,2.490u);
+ z113\1\10 = (1.686u,3.132u);
+ z113\1\11c1 = (1.892u,3.492u);
+ z113\1\11c2 = (1.993u,3.781u);
+ z113\1\11 = (2.442u,3.907u);
+ z113\1\12c1 = (3.447u,4.189u);
+ z113\1\12c2 = (7.310u,1.939u);
+ z113\1\12 = (8.163u,1.257u);
+ z113\1\13c1 = (8.463u,1.018u);
+ z113\1\13c2 = (8.669u,0.770u);
+ fill_or_unfill z113\0\0s
+ --z113\0\0
+ ..controls z113\0\1c1 and z113\0\1c2..z113\0\1
+ ..controls z113\0\2c1 and z113\0\2c2..z113\0\2
+ ..controls z113\0\3c1 and z113\0\3c2..z113\0\3
+ --z113\0\4
+ ..controls z113\0\5c1 and z113\0\5c2..z113\0\5
+ ..controls z113\0\6c1 and z113\0\6c2..z113\0\6
+ ..controls z113\0\7c1 and z113\0\7c2..z113\0\7
+ ..controls z113\0\8c1 and z113\0\8c2..z113\0\8
+ ..controls z113\0\9c1 and z113\0\9c2..z113\0\9
+ ..controls z113\0\10c1 and z113\0\10c2..z113\0\10
+ --z113\0\11
+ ..controls z113\0\12c1 and z113\0\12c2..z113\0\12
+ ..controls z113\0\13c1 and z113\0\13c2..z113\0\13
+ ..controls z113\0\14c1 and z113\0\14c2..z113\0\14
+ ..controls z113\0\15c1 and z113\0\15c2..z113\0\15
+ ..controls z113\0\16c1 and z113\0\16c2..z113\0\16
+ ..controls z113\0\17c1 and z113\0\17c2..z113\0\17
+ ..controls z113\0\18c1 and z113\0\18c2..z113\0\18
+ --z113\0\19
+ ..controls z113\0\20c1 and z113\0\20c2..z113\0\20
+ ..controls z113\0\21c1 and z113\0\21c2..z113\0\21
+ ..controls z113\0\22c1 and z113\0\22c2..z113\0\22
+ ..controls z113\0\23c1 and z113\0\23c2..z113\0\23
+ --z113\0\24
+ ..controls z113\0\25c1 and z113\0\25c2..z113\0\25
+ --z113\0\26
+ ..controls z113\0\27c1 and z113\0\27c2..z113\0\27
+ ..controls z113\0\28c1 and z113\0\28c2..z113\0\28
+ ..controls z113\0\29c1 and z113\0\29c2..z113\0\29
+ ..controls z113\0\30c1 and z113\0\30c2..z113\0\30
+ ..controls z113\0\31c1 and z113\0\31c2..z113\0\31
+ --z113\0\32
+ --z113\0\33
+ --z113\0\34
+ ..controls z113\0\35c1 and z113\0\35c2..z113\0\35
+ ..controls z113\0\36c1 and z113\0\36c2..z113\0\36
+ ..controls z113\0\37c1 and z113\0\37c2..z113\0\37
+ ..controls z113\0\38c1 and z113\0\38c2..cycle;
+ fill_or_unfill z113\1\0s
+ ..controls z113\1\0c1 and z113\1\0c2..z113\1\0
+ ..controls z113\1\1c1 and z113\1\1c2..z113\1\1
+ --z113\1\2
+ ..controls z113\1\3c1 and z113\1\3c2..z113\1\3
+ ..controls z113\1\4c1 and z113\1\4c2..z113\1\4
+ ..controls z113\1\5c1 and z113\1\5c2..z113\1\5
+ ..controls z113\1\6c1 and z113\1\6c2..z113\1\6
+ ..controls z113\1\7c1 and z113\1\7c2..z113\1\7
+ ..controls z113\1\8c1 and z113\1\8c2..z113\1\8
+ --z113\1\9
+ ..controls z113\1\10c1 and z113\1\10c2..z113\1\10
+ ..controls z113\1\11c1 and z113\1\11c2..z113\1\11
+ ..controls z113\1\12c1 and z113\1\12c2..z113\1\12
+ ..controls z113\1\13c1 and z113\1\13c2..cycle;
+ proof_labels (
+ 113\0\0,
+ 113\0\1,
+ 113\0\2,
+ 113\0\3,
+ 113\0\4,
+ 113\0\5,
+ 113\0\6,
+ 113\0\7,
+ 113\0\8,
+ 113\0\9,
+ 113\0\10,
+ 113\0\11,
+ 113\0\12,
+ 113\0\13,
+ 113\0\14,
+ 113\0\15,
+ 113\0\16,
+ 113\0\17,
+ 113\0\18,
+ 113\0\19,
+ 113\0\20,
+ 113\0\21,
+ 113\0\22,
+ 113\0\23,
+ 113\0\24,
+ 113\0\25,
+ 113\0\26,
+ 113\0\27,
+ 113\0\28,
+ 113\0\29,
+ 113\0\30,
+ 113\0\31,
+ 113\0\32,
+ 113\0\33,
+ 113\0\34,
+ 113\0\35,
+ 113\0\36,
+ 113\0\37,
+ 113\0\38,
+ 113\1\0,
+ 113\1\1,
+ 113\1\2,
+ 113\1\3,
+ 113\1\4,
+ 113\1\5,
+ 113\1\6,
+ 113\1\7,
+ 113\1\8,
+ 113\1\9,
+ 113\1\10,
+ 113\1\11,
+ 113\1\12,
+ 113\1\13,
+);
+endchar;
+
+beginchar (224, 10.118u#, 6.745u#, 9.395u#);
+ "spra";
+ z114\0\0s = (0.723u,5.541u);
+ z114\0\0 = (2.168u,5.300u);
+ z114\0\1c1 = (1.665u,4.642u);
+ z114\0\1c2 = (-0.217u,2.229u);
+ z114\0\1 = (0.867u,1.472u);
+ z114\0\2c1 = (1.212u,1.231u);
+ z114\0\2c2 = (1.967u,1.373u);
+ z114\0\2 = (2.409u,1.269u);
+ z114\0\3 = (4.336u,0.482u);
+ z114\0\4c1 = (3.128u,0.063u);
+ z114\0\4c2 = (2.716u,0.156u);
+ z114\0\4 = (2.409u,-1.204u);
+ z114\0\5 = (3.372u,-1.204u);
+ z114\0\6c1 = (2.592u,-2.806u);
+ z114\0\6c2 = (1.858u,-3.416u);
+ z114\0\6 = (1.686u,-5.300u);
+ z114\0\7c1 = (3.561u,-5.052u);
+ z114\0\7c2 = (5.440u,-4.785u);
+ z114\0\7 = (7.226u,-5.600u);
+ z114\0\8c1 = (7.710u,-5.821u);
+ z114\0\8c2 = (8.151u,-6.055u);
+ z114\0\8 = (8.426u,-6.536u);
+ z114\0\9c1 = (8.702u,-7.018u);
+ z114\0\9c2 = (8.665u,-7.653u);
+ z114\0\9 = (8.672u,-8.190u);
+ z114\0\10c1 = (7.985u,-7.633u);
+ z114\0\10c2 = (7.289u,-7.020u);
+ z114\0\10 = (6.504u,-6.615u);
+ z114\0\11c1 = (5.581u,-6.112u);
+ z114\0\11c2 = (3.400u,-5.603u);
+ z114\0\11 = (2.655u,-6.615u);
+ z114\0\12c1 = (2.464u,-6.890u);
+ z114\0\12c2 = (2.462u,-7.166u);
+ z114\0\12 = (2.409u,-7.468u);
+ z114\0\13c1 = (3.681u,-7.468u);
+ z114\0\13c2 = (4.797u,-7.408u);
+ z114\0\13 = (6.022u,-7.840u);
+ z114\0\14c1 = (7.115u,-8.225u);
+ z114\0\14c2 = (8.013u,-8.883u);
+ z114\0\14 = (9.165u,-9.154u);
+ z114\0\15c1 = (9.154u,-7.485u);
+ z114\0\15c2 = (9.062u,-5.758u);
+ z114\0\15 = (9.165u,-4.095u);
+ z114\0\16 = (9.463u,-1.686u);
+ z114\0\17 = (9.587u,-0.503u);
+ z114\0\18c1 = (9.568u,-0.040u);
+ z114\0\18c2 = (9.372u,0.325u);
+ z114\0\18 = (9.215u,0.763u);
+ z114\0\19c1 = (9.137u,1.295u);
+ z114\0\19c2 = (9.140u,1.864u);
+ z114\0\19 = (9.215u,2.409u);
+ z114\0\20c1 = (9.207u,3.457u);
+ z114\0\20c2 = (9.618u,4.504u);
+ z114\0\20 = (9.601u,5.536u);
+ z114\0\21c1 = (9.573u,7.205u);
+ z114\0\21c2 = (7.864u,6.741u);
+ z114\0\21 = (7.647u,5.977u);
+ z114\0\22c1 = (7.480u,5.392u);
+ z114\0\22c2 = (8.208u,4.696u);
+ z114\0\22 = (8.405u,4.086u);
+ z114\0\23 = (8.405u,2.891u);
+ z114\0\24 = (8.672u,1.204u);
+ z114\0\25c1 = (7.163u,2.552u);
+ z114\0\25c2 = (5.911u,4.090u);
+ z114\0\25 = (4.095u,5.059u);
+ z114\0\26c1 = (5.248u,5.485u);
+ z114\0\26c2 = (5.565u,5.451u);
+ z114\0\26 = (5.782u,6.745u);
+ z114\0\27c1 = (4.814u,6.745u);
+ z114\0\27c2 = (2.222u,6.893u);
+ z114\0\27 = (1.478u,6.462u);
+ z114\0\28c1 = (1.060u,6.220u);
+ z114\0\28c2 = (0.937u,5.941u);
+ z114\1\0s = (8.431u,0.241u);
+ z114\1\0c1 = (8.208u,-0.011u);
+ z114\1\0c2 = (8.006u,-0.133u);
+ z114\1\0 = (7.971u,-0.509u);
+ z114\1\1c1 = (7.922u,-1.049u);
+ z114\1\1c2 = (8.450u,-1.833u);
+ z114\1\1 = (8.625u,-2.409u);
+ z114\1\2c1 = (8.778u,-3.307u);
+ z114\1\2c2 = (8.672u,-4.378u);
+ z114\1\2 = (8.625u,-5.300u);
+ z114\1\3c1 = (7.876u,-5.048u);
+ z114\1\3c2 = (7.249u,-4.651u);
+ z114\1\3 = (6.504u,-4.293u);
+ z114\1\4c1 = (5.300u,-3.713u);
+ z114\1\4c2 = (4.442u,-3.625u);
+ z114\1\4 = (3.132u,-3.613u);
+ z114\1\5c1 = (3.383u,-2.293u);
+ z114\1\5c2 = (3.706u,-1.601u);
+ z114\1\5 = (5.059u,-1.194u);
+ z114\1\6c1 = (5.467u,-1.072u);
+ z114\1\6c2 = (5.811u,-1.032u);
+ z114\1\6 = (6.164u,-0.758u);
+ z114\1\7c1 = (6.444u,-0.541u);
+ z114\1\7c2 = (6.565u,-0.289u);
+ z114\1\7 = (6.745u,0.000u);
+ z114\1\8 = (4.577u,0.241u);
+ z114\1\9c1 = (3.962u,1.542u);
+ z114\1\9c2 = (2.944u,2.456u);
+ z114\1\9 = (1.686u,3.132u);
+ z114\1\10c1 = (1.807u,3.472u);
+ z114\1\10c2 = (1.841u,3.778u);
+ z114\1\10 = (2.243u,3.907u);
+ z114\1\11c1 = (3.252u,4.230u);
+ z114\1\11c2 = (6.655u,2.000u);
+ z114\1\11 = (7.457u,1.322u);
+ z114\1\12c1 = (7.852u,0.988u);
+ z114\1\12c2 = (8.124u,0.650u);
+ fill_or_unfill z114\0\0s
+ --z114\0\0
+ ..controls z114\0\1c1 and z114\0\1c2..z114\0\1
+ ..controls z114\0\2c1 and z114\0\2c2..z114\0\2
+ --z114\0\3
+ ..controls z114\0\4c1 and z114\0\4c2..z114\0\4
+ --z114\0\5
+ ..controls z114\0\6c1 and z114\0\6c2..z114\0\6
+ ..controls z114\0\7c1 and z114\0\7c2..z114\0\7
+ ..controls z114\0\8c1 and z114\0\8c2..z114\0\8
+ ..controls z114\0\9c1 and z114\0\9c2..z114\0\9
+ ..controls z114\0\10c1 and z114\0\10c2..z114\0\10
+ ..controls z114\0\11c1 and z114\0\11c2..z114\0\11
+ ..controls z114\0\12c1 and z114\0\12c2..z114\0\12
+ ..controls z114\0\13c1 and z114\0\13c2..z114\0\13
+ ..controls z114\0\14c1 and z114\0\14c2..z114\0\14
+ ..controls z114\0\15c1 and z114\0\15c2..z114\0\15
+ --z114\0\16
+ --z114\0\17
+ ..controls z114\0\18c1 and z114\0\18c2..z114\0\18
+ ..controls z114\0\19c1 and z114\0\19c2..z114\0\19
+ ..controls z114\0\20c1 and z114\0\20c2..z114\0\20
+ ..controls z114\0\21c1 and z114\0\21c2..z114\0\21
+ ..controls z114\0\22c1 and z114\0\22c2..z114\0\22
+ --z114\0\23
+ --z114\0\24
+ ..controls z114\0\25c1 and z114\0\25c2..z114\0\25
+ ..controls z114\0\26c1 and z114\0\26c2..z114\0\26
+ ..controls z114\0\27c1 and z114\0\27c2..z114\0\27
+ ..controls z114\0\28c1 and z114\0\28c2..cycle;
+ fill_or_unfill z114\1\0s
+ ..controls z114\1\0c1 and z114\1\0c2..z114\1\0
+ ..controls z114\1\1c1 and z114\1\1c2..z114\1\1
+ ..controls z114\1\2c1 and z114\1\2c2..z114\1\2
+ ..controls z114\1\3c1 and z114\1\3c2..z114\1\3
+ ..controls z114\1\4c1 and z114\1\4c2..z114\1\4
+ ..controls z114\1\5c1 and z114\1\5c2..z114\1\5
+ ..controls z114\1\6c1 and z114\1\6c2..z114\1\6
+ ..controls z114\1\7c1 and z114\1\7c2..z114\1\7
+ --z114\1\8
+ ..controls z114\1\9c1 and z114\1\9c2..z114\1\9
+ ..controls z114\1\10c1 and z114\1\10c2..z114\1\10
+ ..controls z114\1\11c1 and z114\1\11c2..z114\1\11
+ ..controls z114\1\12c1 and z114\1\12c2..cycle;
+ proof_labels (
+ 114\0\0,
+ 114\0\1,
+ 114\0\2,
+ 114\0\3,
+ 114\0\4,
+ 114\0\5,
+ 114\0\6,
+ 114\0\7,
+ 114\0\8,
+ 114\0\9,
+ 114\0\10,
+ 114\0\11,
+ 114\0\12,
+ 114\0\13,
+ 114\0\14,
+ 114\0\15,
+ 114\0\16,
+ 114\0\17,
+ 114\0\18,
+ 114\0\19,
+ 114\0\20,
+ 114\0\21,
+ 114\0\22,
+ 114\0\23,
+ 114\0\24,
+ 114\0\25,
+ 114\0\26,
+ 114\0\27,
+ 114\0\28,
+ 114\1\0,
+ 114\1\1,
+ 114\1\2,
+ 114\1\3,
+ 114\1\4,
+ 114\1\5,
+ 114\1\6,
+ 114\1\7,
+ 114\1\8,
+ 114\1\9,
+ 114\1\10,
+ 114\1\11,
+ 114\1\12,
+);
+endchar;
+
+beginchar (225, 10.359u#, 6.745u#, 10.118u#);
+ "sbya";
+ z115\0\0s = (2.168u,5.059u);
+ z115\0\0c1 = (1.285u,3.972u);
+ z115\0\0c2 = (0.742u,3.075u);
+ z115\0\0 = (0.482u,1.686u);
+ z115\0\1c1 = (2.610u,1.638u);
+ z115\0\1c2 = (2.544u,1.225u);
+ z115\0\1 = (4.336u,0.482u);
+ z115\0\2c1 = (3.264u,0.002u);
+ z115\0\2c2 = (2.941u,-0.117u);
+ z115\0\2 = (2.409u,-1.204u);
+ z115\0\3 = (3.372u,-1.445u);
+ z115\0\4 = (2.863u,-2.650u);
+ z115\0\5c1 = (2.677u,-3.036u);
+ z115\0\5c2 = (2.428u,-3.430u);
+ z115\0\5 = (2.337u,-3.853u);
+ z115\0\6c1 = (2.239u,-4.310u);
+ z115\0\6c2 = (2.284u,-4.773u);
+ z115\0\6 = (2.726u,-5.077u);
+ z115\0\7c1 = (3.161u,-5.287u);
+ z115\0\7c2 = (4.067u,-5.084u);
+ z115\0\7 = (4.577u,-5.077u);
+ z115\0\8 = (5.782u,-5.077u);
+ z115\0\9c1 = (6.905u,-5.296u);
+ z115\0\9c2 = (7.883u,-5.820u);
+ z115\0\9 = (8.913u,-6.263u);
+ z115\0\10c1 = (7.558u,-8.700u);
+ z115\0\10c2 = (6.304u,-7.411u);
+ z115\0\10 = (4.336u,-6.875u);
+ z115\0\11c1 = (3.407u,-6.621u);
+ z115\0\11c2 = (2.404u,-6.525u);
+ z115\0\11 = (1.445u,-6.504u);
+ z115\0\12 = (1.817u,-7.187u);
+ z115\0\13c1 = (2.252u,-7.760u);
+ z115\0\13c2 = (4.398u,-9.498u);
+ z115\0\13 = (5.059u,-9.734u);
+ z115\0\14c1 = (5.432u,-9.866u);
+ z115\0\14c2 = (5.871u,-9.875u);
+ z115\0\14 = (6.263u,-9.872u);
+ z115\0\15c1 = (7.800u,-9.861u);
+ z115\0\15c2 = (9.143u,-9.361u);
+ z115\0\15 = (9.877u,-7.950u);
+ z115\0\16c1 = (6.844u,-9.299u);
+ z115\0\16c2 = (5.441u,-9.272u);
+ z115\0\16 = (2.891u,-6.986u);
+ z115\0\17 = (5.059u,-7.803u);
+ z115\0\18c1 = (6.110u,-8.092u);
+ z115\0\18c2 = (8.431u,-8.426u);
+ z115\0\18 = (9.149u,-7.365u);
+ z115\0\19c1 = (9.400u,-6.994u);
+ z115\0\19c2 = (9.386u,-6.453u);
+ z115\0\19 = (9.426u,-6.022u);
+ z115\0\20 = (9.426u,-2.653u);
+ z115\0\21 = (9.606u,-1.548u);
+ z115\0\22c1 = (9.665u,-1.216u);
+ z115\0\22c2 = (9.791u,-0.852u);
+ z115\0\22 = (9.762u,-0.513u);
+ z115\0\23c1 = (9.726u,-0.092u);
+ z115\0\23c2 = (9.514u,0.151u);
+ z115\0\23 = (9.371u,0.522u);
+ z115\0\24c1 = (9.178u,1.024u);
+ z115\0\24c2 = (9.150u,1.395u);
+ z115\0\24 = (9.176u,1.927u);
+ z115\0\25 = (9.456u,4.336u);
+ z115\0\26 = (9.822u,5.541u);
+ z115\0\27c1 = (9.855u,5.947u);
+ z115\0\27c2 = (9.864u,6.333u);
+ z115\0\27 = (9.822u,6.745u);
+ z115\0\28c1 = (9.114u,6.745u);
+ z115\0\28c2 = (7.186u,6.958u);
+ z115\0\28 = (7.714u,5.605u);
+ z115\0\29 = (8.366u,4.327u);
+ z115\0\30 = (8.913u,1.204u);
+ z115\0\31 = (7.205u,2.928u);
+ z115\0\32c1 = (6.378u,3.718u);
+ z115\0\32c2 = (5.508u,4.397u);
+ z115\0\32 = (4.577u,5.059u);
+ z115\0\33c1 = (5.407u,5.532u);
+ z115\0\33c2 = (5.550u,5.675u);
+ z115\0\33 = (6.022u,6.504u);
+ z115\0\34 = (5.300u,6.680u);
+ z115\0\35c1 = (4.818u,6.767u);
+ z115\0\35c2 = (2.127u,6.789u);
+ z115\0\35 = (1.721u,6.680u);
+ z115\0\36c1 = (1.129u,6.494u);
+ z115\0\36c2 = (0.886u,5.983u);
+ z115\0\36 = (1.353u,5.501u);
+ z115\0\37c1 = (1.575u,5.273u);
+ z115\0\37c2 = (1.888u,5.182u);
+ z115\1\0s = (8.672u,0.241u);
+ z115\1\0 = (4.818u,0.241u);
+ z115\1\1c1 = (4.113u,1.759u);
+ z115\1\1c2 = (3.325u,2.315u);
+ z115\1\1 = (1.927u,3.132u);
+ z115\1\2c1 = (2.126u,3.481u);
+ z115\1\2c2 = (2.236u,3.795u);
+ z115\1\2 = (2.682u,3.898u);
+ z115\1\3c1 = (3.271u,4.033u);
+ z115\1\3c2 = (4.075u,3.475u);
+ z115\1\3 = (4.577u,3.206u);
+ z115\1\4c1 = (6.094u,2.391u);
+ z115\1\4c2 = (7.553u,1.584u);
+ z115\2\0s = (8.913u,-5.300u);
+ z115\2\0 = (6.745u,-4.229u);
+ z115\2\1c1 = (5.715u,-3.764u);
+ z115\2\1c2 = (4.490u,-3.638u);
+ z115\2\1 = (3.372u,-3.613u);
+ z115\2\2c1 = (3.579u,-2.915u);
+ z115\2\2c2 = (3.804u,-2.293u);
+ z115\2\2 = (4.387u,-1.809u);
+ z115\2\3c1 = (5.294u,-1.057u);
+ z115\2\3c2 = (7.686u,-0.880u);
+ z115\2\3 = (8.389u,-1.993u);
+ z115\2\4c1 = (8.704u,-2.491u);
+ z115\2\4c2 = (8.883u,-4.634u);
+ fill_or_unfill z115\0\0s
+ ..controls z115\0\0c1 and z115\0\0c2..z115\0\0
+ ..controls z115\0\1c1 and z115\0\1c2..z115\0\1
+ ..controls z115\0\2c1 and z115\0\2c2..z115\0\2
+ --z115\0\3
+ --z115\0\4
+ ..controls z115\0\5c1 and z115\0\5c2..z115\0\5
+ ..controls z115\0\6c1 and z115\0\6c2..z115\0\6
+ ..controls z115\0\7c1 and z115\0\7c2..z115\0\7
+ --z115\0\8
+ ..controls z115\0\9c1 and z115\0\9c2..z115\0\9
+ ..controls z115\0\10c1 and z115\0\10c2..z115\0\10
+ ..controls z115\0\11c1 and z115\0\11c2..z115\0\11
+ --z115\0\12
+ ..controls z115\0\13c1 and z115\0\13c2..z115\0\13
+ ..controls z115\0\14c1 and z115\0\14c2..z115\0\14
+ ..controls z115\0\15c1 and z115\0\15c2..z115\0\15
+ ..controls z115\0\16c1 and z115\0\16c2..z115\0\16
+ --z115\0\17
+ ..controls z115\0\18c1 and z115\0\18c2..z115\0\18
+ ..controls z115\0\19c1 and z115\0\19c2..z115\0\19
+ --z115\0\20
+ --z115\0\21
+ ..controls z115\0\22c1 and z115\0\22c2..z115\0\22
+ ..controls z115\0\23c1 and z115\0\23c2..z115\0\23
+ ..controls z115\0\24c1 and z115\0\24c2..z115\0\24
+ --z115\0\25
+ --z115\0\26
+ ..controls z115\0\27c1 and z115\0\27c2..z115\0\27
+ ..controls z115\0\28c1 and z115\0\28c2..z115\0\28
+ --z115\0\29
+ --z115\0\30
+ --z115\0\31
+ ..controls z115\0\32c1 and z115\0\32c2..z115\0\32
+ ..controls z115\0\33c1 and z115\0\33c2..z115\0\33
+ --z115\0\34
+ ..controls z115\0\35c1 and z115\0\35c2..z115\0\35
+ ..controls z115\0\36c1 and z115\0\36c2..z115\0\36
+ ..controls z115\0\37c1 and z115\0\37c2..cycle;
+ fill_or_unfill z115\1\0s
+ --z115\1\0
+ ..controls z115\1\1c1 and z115\1\1c2..z115\1\1
+ ..controls z115\1\2c1 and z115\1\2c2..z115\1\2
+ ..controls z115\1\3c1 and z115\1\3c2..z115\1\3
+ ..controls z115\1\4c1 and z115\1\4c2..cycle;
+ fill_or_unfill z115\2\0s
+ --z115\2\0
+ ..controls z115\2\1c1 and z115\2\1c2..z115\2\1
+ ..controls z115\2\2c1 and z115\2\2c2..z115\2\2
+ ..controls z115\2\3c1 and z115\2\3c2..z115\2\3
+ ..controls z115\2\4c1 and z115\2\4c2..cycle;
+ proof_labels (
+ 115\0\0,
+ 115\0\1,
+ 115\0\2,
+ 115\0\3,
+ 115\0\4,
+ 115\0\5,
+ 115\0\6,
+ 115\0\7,
+ 115\0\8,
+ 115\0\9,
+ 115\0\10,
+ 115\0\11,
+ 115\0\12,
+ 115\0\13,
+ 115\0\14,
+ 115\0\15,
+ 115\0\16,
+ 115\0\17,
+ 115\0\18,
+ 115\0\19,
+ 115\0\20,
+ 115\0\21,
+ 115\0\22,
+ 115\0\23,
+ 115\0\24,
+ 115\0\25,
+ 115\0\26,
+ 115\0\27,
+ 115\0\28,
+ 115\0\29,
+ 115\0\30,
+ 115\0\31,
+ 115\0\32,
+ 115\0\33,
+ 115\0\34,
+ 115\0\35,
+ 115\0\36,
+ 115\0\37,
+ 115\1\0,
+ 115\1\1,
+ 115\1\2,
+ 115\1\3,
+ 115\1\4,
+ 115\2\0,
+ 115\2\1,
+ 115\2\2,
+ 115\2\3,
+ 115\2\4,
+);
+endchar;
+
+beginchar (226, 10.118u#, 6.745u#, 8.672u#);
+ "sbra";
+ z116\0\0s = (0.723u,5.300u);
+ z116\0\0 = (1.927u,5.300u);
+ z116\0\1c1 = (1.111u,3.774u);
+ z116\0\1c2 = (0.528u,3.262u);
+ z116\0\1 = (0.482u,1.445u);
+ z116\0\2c1 = (2.509u,1.439u);
+ z116\0\2c2 = (2.745u,1.258u);
+ z116\0\2 = (4.577u,0.482u);
+ z116\0\3c1 = (3.857u,1.999u);
+ z116\0\3c2 = (2.924u,2.490u);
+ z116\0\3 = (1.445u,3.132u);
+ z116\0\4 = (1.927u,4.095u);
+ z116\0\5c1 = (4.323u,3.295u);
+ z116\0\5c2 = (6.776u,2.227u);
+ z116\0\5 = (8.431u,0.241u);
+ z116\0\6c1 = (7.481u,0.241u);
+ z116\0\6c2 = (3.824u,0.405u);
+ z116\0\6 = (3.207u,-0.005u);
+ z116\0\7c1 = (2.758u,-0.304u);
+ z116\0\7c2 = (2.730u,-0.724u);
+ z116\0\7 = (2.650u,-1.204u);
+ z116\0\8 = (3.613u,-1.445u);
+ z116\0\9 = (2.608u,-3.132u);
+ z116\0\10c1 = (2.214u,-3.810u);
+ z116\0\10c2 = (1.397u,-5.469u);
+ z116\0\10 = (2.905u,-5.416u);
+ z116\0\11 = (4.577u,-5.084u);
+ z116\0\12c1 = (5.888u,-4.978u);
+ z116\0\12c2 = (8.229u,-5.546u);
+ z116\0\12 = (8.908u,-6.770u);
+ z116\0\13c1 = (9.118u,-7.148u);
+ z116\0\13c2 = (9.120u,-7.534u);
+ z116\0\13 = (9.154u,-7.950u);
+ z116\0\14c1 = (7.585u,-7.093u);
+ z116\0\14c2 = (5.000u,-5.290u);
+ z116\0\14 = (3.167u,-6.373u);
+ z116\0\15c1 = (2.358u,-6.850u);
+ z116\0\15c2 = (2.451u,-7.401u);
+ z116\0\15 = (2.650u,-8.190u);
+ z116\0\16c1 = (6.391u,-6.785u);
+ z116\0\16c2 = (6.176u,-8.141u);
+ z116\0\16 = (9.395u,-8.431u);
+ z116\0\17 = (9.395u,-2.650u);
+ z116\0\18 = (9.636u,0.241u);
+ z116\0\19 = (8.929u,0.241u);
+ z116\0\20c1 = (8.913u,1.649u);
+ z116\0\20c2 = (8.788u,3.184u);
+ z116\0\20 = (8.929u,4.577u);
+ z116\0\21 = (9.395u,6.745u);
+ z116\0\22c1 = (8.615u,6.742u);
+ z116\0\22c2 = (6.999u,6.907u);
+ z116\0\22 = (7.510u,5.605u);
+ z116\0\23 = (8.159u,4.327u);
+ z116\0\24c1 = (8.438u,3.478u);
+ z116\0\24c2 = (8.506u,2.334u);
+ z116\0\24 = (8.431u,1.445u);
+ z116\0\25c1 = (7.044u,2.829u);
+ z116\0\25c2 = (5.570u,4.095u);
+ z116\0\25 = (3.854u,5.059u);
+ z116\0\26c1 = (4.968u,5.415u);
+ z116\0\26c2 = (5.393u,5.287u);
+ z116\0\26 = (5.782u,6.502u);
+ z116\0\27c1 = (4.908u,6.717u);
+ z116\0\27c2 = (2.033u,6.996u);
+ z116\0\27 = (1.308u,6.502u);
+ z116\0\28c1 = (0.879u,6.204u);
+ z116\0\28c2 = (0.825u,5.765u);
+ z116\1\0s = (8.431u,-1.204u);
+ z116\1\0 = (8.841u,-3.132u);
+ z116\1\1 = (9.154u,-5.782u);
+ z116\1\2 = (7.186u,-4.575u);
+ z116\1\3c1 = (5.837u,-3.822u);
+ z116\1\3c2 = (4.613u,-3.855u);
+ z116\1\3 = (3.132u,-3.854u);
+ z116\1\4c1 = (4.132u,-0.719u);
+ z116\1\4c2 = (5.739u,-1.204u);
+ fill_or_unfill z116\0\0s
+ --z116\0\0
+ ..controls z116\0\1c1 and z116\0\1c2..z116\0\1
+ ..controls z116\0\2c1 and z116\0\2c2..z116\0\2
+ ..controls z116\0\3c1 and z116\0\3c2..z116\0\3
+ --z116\0\4
+ ..controls z116\0\5c1 and z116\0\5c2..z116\0\5
+ ..controls z116\0\6c1 and z116\0\6c2..z116\0\6
+ ..controls z116\0\7c1 and z116\0\7c2..z116\0\7
+ --z116\0\8
+ --z116\0\9
+ ..controls z116\0\10c1 and z116\0\10c2..z116\0\10
+ --z116\0\11
+ ..controls z116\0\12c1 and z116\0\12c2..z116\0\12
+ ..controls z116\0\13c1 and z116\0\13c2..z116\0\13
+ ..controls z116\0\14c1 and z116\0\14c2..z116\0\14
+ ..controls z116\0\15c1 and z116\0\15c2..z116\0\15
+ ..controls z116\0\16c1 and z116\0\16c2..z116\0\16
+ --z116\0\17
+ --z116\0\18
+ --z116\0\19
+ ..controls z116\0\20c1 and z116\0\20c2..z116\0\20
+ --z116\0\21
+ ..controls z116\0\22c1 and z116\0\22c2..z116\0\22
+ --z116\0\23
+ ..controls z116\0\24c1 and z116\0\24c2..z116\0\24
+ ..controls z116\0\25c1 and z116\0\25c2..z116\0\25
+ ..controls z116\0\26c1 and z116\0\26c2..z116\0\26
+ ..controls z116\0\27c1 and z116\0\27c2..z116\0\27
+ ..controls z116\0\28c1 and z116\0\28c2..cycle;
+ fill_or_unfill z116\1\0s
+ --z116\1\0
+ --z116\1\1
+ --z116\1\2
+ ..controls z116\1\3c1 and z116\1\3c2..z116\1\3
+ ..controls z116\1\4c1 and z116\1\4c2..cycle;
+ proof_labels (
+ 116\0\0,
+ 116\0\1,
+ 116\0\2,
+ 116\0\3,
+ 116\0\4,
+ 116\0\5,
+ 116\0\6,
+ 116\0\7,
+ 116\0\8,
+ 116\0\9,
+ 116\0\10,
+ 116\0\11,
+ 116\0\12,
+ 116\0\13,
+ 116\0\14,
+ 116\0\15,
+ 116\0\16,
+ 116\0\17,
+ 116\0\18,
+ 116\0\19,
+ 116\0\20,
+ 116\0\21,
+ 116\0\22,
+ 116\0\23,
+ 116\0\24,
+ 116\0\25,
+ 116\0\26,
+ 116\0\27,
+ 116\0\28,
+ 116\1\0,
+ 116\1\1,
+ 116\1\2,
+ 116\1\3,
+ 116\1\4,
+);
+endchar;
+
+beginchar (227, 10.359u#, 6.745u#, 7.950u#);
+ "rmya";
+ z117\0\0s = (1.686u,5.300u);
+ z117\0\0 = (3.854u,5.300u);
+ z117\0\1c1 = (3.231u,3.348u);
+ z117\0\1c2 = (2.179u,4.870u);
+ z117\0\1 = (1.445u,2.891u);
+ z117\0\2c1 = (2.474u,2.511u);
+ z117\0\2c2 = (2.779u,2.551u);
+ z117\0\2 = (3.132u,1.445u);
+ z117\0\3c1 = (2.086u,1.370u);
+ z117\0\3c2 = (1.428u,1.215u);
+ z117\0\3 = (0.888u,0.219u);
+ z117\0\4c1 = (-0.527u,-2.393u);
+ z117\0\4c2 = (3.182u,-4.130u);
+ z117\0\4 = (4.158u,-1.682u);
+ z117\0\5c1 = (4.359u,-1.178u);
+ z117\0\5c2 = (4.331u,-0.536u);
+ z117\0\5 = (4.336u,0.000u);
+ z117\0\6c1 = (5.592u,-0.671u);
+ z117\0\6c2 = (10.020u,-2.542u);
+ z117\0\6 = (7.894u,-4.424u);
+ z117\0\7c1 = (7.249u,-4.995u);
+ z117\0\7c2 = (5.920u,-5.476u);
+ z117\0\7 = (5.059u,-5.509u);
+ z117\0\8c1 = (3.822u,-5.556u);
+ z117\0\8c2 = (2.634u,-5.071u);
+ z117\0\8 = (1.445u,-4.818u);
+ z117\0\9c1 = (1.679u,-5.639u);
+ z117\0\9c2 = (1.921u,-6.040u);
+ z117\0\9 = (2.506u,-6.673u);
+ z117\0\10c1 = (2.767u,-6.955u);
+ z117\0\10c2 = (3.135u,-7.321u);
+ z117\0\10 = (3.478u,-7.495u);
+ z117\0\11c1 = (3.840u,-7.679u);
+ z117\0\11c2 = (4.185u,-7.692u);
+ z117\0\11 = (4.580u,-7.671u);
+ z117\0\12c1 = (4.969u,-7.717u);
+ z117\0\12c2 = (5.401u,-7.721u);
+ z117\0\12 = (5.782u,-7.671u);
+ z117\0\13c1 = (6.999u,-7.368u);
+ z117\0\13c2 = (8.418u,-6.270u);
+ z117\0\13 = (9.154u,-5.300u);
+ z117\0\14c1 = (7.631u,-5.935u);
+ z117\0\14c2 = (6.105u,-7.332u);
+ z117\0\14 = (4.336u,-6.830u);
+ z117\0\15 = (2.409u,-6.022u);
+ z117\0\16c1 = (3.924u,-5.592u);
+ z117\0\16c2 = (5.476u,-5.978u);
+ z117\0\16 = (6.986u,-5.487u);
+ z117\0\17c1 = (7.761u,-5.235u);
+ z117\0\17c2 = (8.476u,-4.830u);
+ z117\0\17 = (8.871u,-4.085u);
+ z117\0\18c1 = (8.992u,-3.857u);
+ z117\0\18c2 = (9.053u,-3.624u);
+ z117\0\18 = (9.138u,-3.372u);
+ z117\0\19 = (9.138u,-2.168u);
+ z117\0\20 = (9.435u,0.482u);
+ z117\0\21 = (9.877u,4.095u);
+ z117\0\22c1 = (9.403u,4.089u);
+ z117\0\22c2 = (8.511u,4.157u);
+ z117\0\22 = (8.209u,3.710u);
+ z117\0\23c1 = (7.870u,3.210u);
+ z117\0\23c2 = (8.357u,2.427u);
+ z117\0\23 = (8.509u,1.927u);
+ z117\0\24 = (8.668u,1.204u);
+ z117\0\25c1 = (8.879u,-0.019u);
+ z117\0\25c2 = (8.913u,-1.172u);
+ z117\0\25 = (8.913u,-2.409u);
+ z117\0\26c1 = (8.174u,-1.365u);
+ z117\0\26c2 = (7.280u,-0.397u);
+ z117\0\26 = (6.263u,0.388u);
+ z117\0\27c1 = (5.552u,0.937u);
+ z117\0\27c2 = (4.322u,1.242u);
+ z117\0\27 = (3.855u,1.980u);
+ z117\0\28c1 = (3.713u,2.204u);
+ z117\0\28c2 = (3.689u,2.409u);
+ z117\0\28 = (3.613u,2.650u);
+ z117\0\29c1 = (5.186u,2.650u);
+ z117\0\29c2 = (6.133u,2.361u);
+ z117\0\29 = (6.745u,4.095u);
+ z117\0\30 = (4.336u,4.095u);
+ z117\0\31 = (4.336u,5.300u);
+ z117\0\32c1 = (5.674u,5.334u);
+ z117\0\32c2 = (6.183u,5.324u);
+ z117\0\32 = (6.504u,6.745u);
+ z117\0\33c1 = (5.575u,6.745u);
+ z117\0\33c2 = (2.713u,6.978u);
+ z117\0\33 = (2.105u,6.360u);
+ z117\0\34c1 = (1.810u,6.061u);
+ z117\0\34c2 = (1.771u,5.685u);
+ z117\1\0s = (1.982u,0.096u);
+ z117\1\0c1 = (4.506u,0.649u);
+ z117\1\0c2 = (4.445u,-1.715u);
+ z117\1\0 = (3.106u,-2.227u);
+ z117\1\1c1 = (1.924u,-2.679u);
+ z117\1\1c2 = (0.796u,-1.394u);
+ z117\1\1 = (1.488u,-0.316u);
+ z117\1\2c1 = (1.638u,-0.083u);
+ z117\1\2c2 = (1.775u,-0.053u);
+ fill_or_unfill z117\0\0s
+ --z117\0\0
+ ..controls z117\0\1c1 and z117\0\1c2..z117\0\1
+ ..controls z117\0\2c1 and z117\0\2c2..z117\0\2
+ ..controls z117\0\3c1 and z117\0\3c2..z117\0\3
+ ..controls z117\0\4c1 and z117\0\4c2..z117\0\4
+ ..controls z117\0\5c1 and z117\0\5c2..z117\0\5
+ ..controls z117\0\6c1 and z117\0\6c2..z117\0\6
+ ..controls z117\0\7c1 and z117\0\7c2..z117\0\7
+ ..controls z117\0\8c1 and z117\0\8c2..z117\0\8
+ ..controls z117\0\9c1 and z117\0\9c2..z117\0\9
+ ..controls z117\0\10c1 and z117\0\10c2..z117\0\10
+ ..controls z117\0\11c1 and z117\0\11c2..z117\0\11
+ ..controls z117\0\12c1 and z117\0\12c2..z117\0\12
+ ..controls z117\0\13c1 and z117\0\13c2..z117\0\13
+ ..controls z117\0\14c1 and z117\0\14c2..z117\0\14
+ --z117\0\15
+ ..controls z117\0\16c1 and z117\0\16c2..z117\0\16
+ ..controls z117\0\17c1 and z117\0\17c2..z117\0\17
+ ..controls z117\0\18c1 and z117\0\18c2..z117\0\18
+ --z117\0\19
+ --z117\0\20
+ --z117\0\21
+ ..controls z117\0\22c1 and z117\0\22c2..z117\0\22
+ ..controls z117\0\23c1 and z117\0\23c2..z117\0\23
+ --z117\0\24
+ ..controls z117\0\25c1 and z117\0\25c2..z117\0\25
+ ..controls z117\0\26c1 and z117\0\26c2..z117\0\26
+ ..controls z117\0\27c1 and z117\0\27c2..z117\0\27
+ ..controls z117\0\28c1 and z117\0\28c2..z117\0\28
+ ..controls z117\0\29c1 and z117\0\29c2..z117\0\29
+ --z117\0\30
+ --z117\0\31
+ ..controls z117\0\32c1 and z117\0\32c2..z117\0\32
+ ..controls z117\0\33c1 and z117\0\33c2..z117\0\33
+ ..controls z117\0\34c1 and z117\0\34c2..cycle;
+ fill_or_unfill z117\1\0s
+ ..controls z117\1\0c1 and z117\1\0c2..z117\1\0
+ ..controls z117\1\1c1 and z117\1\1c2..z117\1\1
+ ..controls z117\1\2c1 and z117\1\2c2..cycle;
+ proof_labels (
+ 117\0\0,
+ 117\0\1,
+ 117\0\2,
+ 117\0\3,
+ 117\0\4,
+ 117\0\5,
+ 117\0\6,
+ 117\0\7,
+ 117\0\8,
+ 117\0\9,
+ 117\0\10,
+ 117\0\11,
+ 117\0\12,
+ 117\0\13,
+ 117\0\14,
+ 117\0\15,
+ 117\0\16,
+ 117\0\17,
+ 117\0\18,
+ 117\0\19,
+ 117\0\20,
+ 117\0\21,
+ 117\0\22,
+ 117\0\23,
+ 117\0\24,
+ 117\0\25,
+ 117\0\26,
+ 117\0\27,
+ 117\0\28,
+ 117\0\29,
+ 117\0\30,
+ 117\0\31,
+ 117\0\32,
+ 117\0\33,
+ 117\0\34,
+ 117\1\0,
+ 117\1\1,
+ 117\1\2,
+);
+endchar;
+
+beginchar (228, 10.600u#, 6.745u#, 9.636u#);
+ "smya";
+ z118\0\0s = (0.964u,5.300u);
+ z118\0\0 = (2.168u,5.300u);
+ z118\0\1c1 = (1.730u,4.601u);
+ z118\0\1c2 = (0.685u,2.946u);
+ z118\0\1 = (0.675u,2.168u);
+ z118\0\2c1 = (0.608u,1.892u);
+ z118\0\2c2 = (0.676u,1.705u);
+ z118\0\2 = (0.675u,1.445u);
+ z118\0\3c1 = (2.476u,1.721u);
+ z118\0\3c2 = (2.945u,1.389u);
+ z118\0\3 = (4.577u,0.964u);
+ z118\0\4c1 = (3.102u,0.544u);
+ z118\0\4c2 = (2.000u,1.147u);
+ z118\0\4 = (1.686u,-0.723u);
+ z118\0\5c1 = (2.832u,-0.855u);
+ z118\0\5c2 = (3.126u,-1.028u);
+ z118\0\5 = (3.854u,-1.927u);
+ z118\0\6c1 = (3.355u,-2.079u);
+ z118\0\6c2 = (2.681u,-2.224u);
+ z118\0\6 = (2.291u,-2.583u);
+ z118\0\7c1 = (1.551u,-3.263u);
+ z118\0\7c2 = (1.528u,-4.931u);
+ z118\0\7 = (2.291u,-5.604u);
+ z118\0\8c1 = (3.075u,-6.295u);
+ z118\0\8c2 = (4.514u,-6.002u);
+ z118\0\8 = (4.915u,-5.033u);
+ z118\0\9c1 = (5.078u,-4.640u);
+ z118\0\9c2 = (5.053u,-4.039u);
+ z118\0\9 = (5.059u,-3.613u);
+ z118\0\10c1 = (6.311u,-3.719u);
+ z118\0\10c2 = (7.997u,-4.078u);
+ z118\0\10 = (8.845u,-5.090u);
+ z118\0\11c1 = (9.069u,-5.357u);
+ z118\0\11c2 = (9.258u,-5.652u);
+ z118\0\11 = (9.212u,-6.018u);
+ z118\0\12c1 = (9.148u,-6.530u);
+ z118\0\12c2 = (8.636u,-6.913u);
+ z118\0\12 = (8.189u,-7.083u);
+ z118\0\13c1 = (7.036u,-7.521u);
+ z118\0\13c2 = (3.374u,-6.812u);
+ z118\0\13 = (1.927u,-6.745u);
+ z118\0\14 = (2.298u,-7.418u);
+ z118\0\15c1 = (2.680u,-7.898u);
+ z118\0\15c2 = (4.241u,-9.006u);
+ z118\0\15 = (4.818u,-9.218u);
+ z118\0\16c1 = (5.281u,-9.389u);
+ z118\0\16c2 = (5.777u,-9.388u);
+ z118\0\16 = (6.263u,-9.394u);
+ z118\0\17c1 = (7.944u,-9.414u);
+ z118\0\17c2 = (9.563u,-9.011u);
+ z118\0\17 = (10.118u,-7.227u);
+ z118\0\18c1 = (9.487u,-7.643u);
+ z118\0\18c2 = (8.878u,-8.133u);
+ z118\0\18 = (8.190u,-8.451u);
+ z118\0\19c1 = (6.475u,-9.245u);
+ z118\0\19c2 = (4.781u,-8.601u);
+ z118\0\19 = (3.613u,-7.227u);
+ z118\0\20c1 = (5.090u,-7.360u);
+ z118\0\20c2 = (7.258u,-8.174u);
+ z118\0\20 = (8.662u,-7.426u);
+ z118\0\21c1 = (10.304u,-6.551u);
+ z118\0\21c2 = (9.859u,-4.213u);
+ z118\0\21 = (9.878u,-2.650u);
+ z118\0\22 = (10.081u,-0.021u);
+ z118\0\23 = (9.680u,1.467u);
+ z118\0\24c1 = (9.603u,2.003u);
+ z118\0\24c2 = (9.631u,2.588u);
+ z118\0\24 = (9.680u,3.132u);
+ z118\0\25 = (9.680u,4.336u);
+ z118\0\26c1 = (9.759u,4.802u);
+ z118\0\26c2 = (9.890u,5.297u);
+ z118\0\26 = (9.832u,5.768u);
+ z118\0\27c1 = (9.807u,5.978u);
+ z118\0\27c2 = (9.766u,6.189u);
+ z118\0\27 = (9.630u,6.360u);
+ z118\0\28c1 = (9.322u,6.751u);
+ z118\0\28c2 = (8.507u,6.815u);
+ z118\0\28 = (8.221u,6.360u);
+ z118\0\29c1 = (7.866u,5.793u);
+ z118\0\29c2 = (8.776u,4.476u);
+ z118\0\29 = (8.962u,3.854u);
+ z118\0\30c1 = (9.129u,3.295u);
+ z118\0\30c2 = (9.141u,2.745u);
+ z118\0\30 = (9.154u,2.168u);
+ z118\0\31c1 = (7.337u,2.840u);
+ z118\0\31c2 = (5.843u,4.207u);
+ z118\0\31 = (4.095u,5.059u);
+ z118\0\32 = (5.264u,5.365u);
+ z118\0\33c1 = (5.895u,5.597u);
+ z118\0\33c2 = (6.178u,6.249u);
+ z118\0\33 = (5.464u,6.550u);
+ z118\0\34c1 = (4.922u,6.869u);
+ z118\0\34c2 = (2.245u,6.808u);
+ z118\0\34 = (1.721u,6.550u);
+ z118\0\35c1 = (1.219u,6.203u);
+ z118\0\35c2 = (1.120u,5.814u);
+ z118\1\0s = (9.395u,0.723u);
+ z118\1\0c1 = (8.988u,0.592u);
+ z118\1\0c2 = (8.499u,0.499u);
+ z118\1\0 = (8.409u,-0.014u);
+ z118\1\1c1 = (8.333u,-0.451u);
+ z118\1\1c2 = (8.748u,-0.878u);
+ z118\1\1 = (8.931u,-1.245u);
+ z118\1\2c1 = (9.081u,-1.546u);
+ z118\1\2c2 = (9.171u,-1.842u);
+ z118\1\2 = (9.242u,-2.169u);
+ z118\1\3c1 = (9.416u,-2.962u);
+ z118\1\3c2 = (9.394u,-3.770u);
+ z118\1\3 = (9.395u,-4.577u);
+ z118\1\4 = (7.468u,-3.210u);
+ z118\1\5 = (6.263u,-2.564u);
+ z118\1\6c1 = (5.800u,-2.354u);
+ z118\1\6c2 = (4.877u,-2.173u);
+ z118\1\6 = (4.582u,-1.786u);
+ z118\1\7c1 = (4.349u,-1.479u);
+ z118\1\7c2 = (4.366u,-1.084u);
+ z118\1\7 = (4.336u,-0.723u);
+ z118\1\8c1 = (5.678u,-0.614u);
+ z118\1\8c2 = (5.951u,-0.348u);
+ z118\1\8 = (6.745u,0.723u);
+ z118\1\9c1 = (6.277u,0.724u);
+ z118\1\9c2 = (5.555u,0.684u);
+ z118\1\9 = (5.127u,0.861u);
+ z118\1\10c1 = (4.551u,1.098u);
+ z118\1\10c2 = (4.098u,1.692u);
+ z118\1\10 = (3.610u,2.076u);
+ z118\1\11c1 = (3.016u,2.542u);
+ z118\1\11c2 = (2.373u,2.834u);
+ z118\1\11 = (1.686u,3.132u);
+ z118\1\12 = (1.686u,3.613u);
+ z118\1\13c1 = (2.114u,3.777u);
+ z118\1\13c2 = (2.421u,3.898u);
+ z118\1\13 = (2.891u,3.900u);
+ z118\1\14c1 = (4.185u,3.905u);
+ z118\1\14c2 = (7.873u,2.318u);
+ z118\1\14 = (8.842u,1.469u);
+ z118\1\15c1 = (9.117u,1.229u);
+ z118\1\15c2 = (9.220u,1.027u);
+ z118\2\0s = (3.610u,-3.490u);
+ z118\2\0c1 = (3.860u,-3.526u);
+ z118\2\0c2 = (4.024u,-3.484u);
+ z118\2\0 = (4.260u,-3.628u);
+ z118\2\1c1 = (5.098u,-4.140u);
+ z118\2\1c2 = (4.631u,-5.518u);
+ z118\2\1 = (3.607u,-5.596u);
+ z118\2\2c1 = (2.498u,-5.679u);
+ z118\2\2c2 = (1.794u,-4.328u);
+ z118\2\2 = (2.927u,-3.690u);
+ z118\2\3c1 = (3.163u,-3.557u);
+ z118\2\3c2 = (3.359u,-3.551u);
+ fill_or_unfill z118\0\0s
+ --z118\0\0
+ ..controls z118\0\1c1 and z118\0\1c2..z118\0\1
+ ..controls z118\0\2c1 and z118\0\2c2..z118\0\2
+ ..controls z118\0\3c1 and z118\0\3c2..z118\0\3
+ ..controls z118\0\4c1 and z118\0\4c2..z118\0\4
+ ..controls z118\0\5c1 and z118\0\5c2..z118\0\5
+ ..controls z118\0\6c1 and z118\0\6c2..z118\0\6
+ ..controls z118\0\7c1 and z118\0\7c2..z118\0\7
+ ..controls z118\0\8c1 and z118\0\8c2..z118\0\8
+ ..controls z118\0\9c1 and z118\0\9c2..z118\0\9
+ ..controls z118\0\10c1 and z118\0\10c2..z118\0\10
+ ..controls z118\0\11c1 and z118\0\11c2..z118\0\11
+ ..controls z118\0\12c1 and z118\0\12c2..z118\0\12
+ ..controls z118\0\13c1 and z118\0\13c2..z118\0\13
+ --z118\0\14
+ ..controls z118\0\15c1 and z118\0\15c2..z118\0\15
+ ..controls z118\0\16c1 and z118\0\16c2..z118\0\16
+ ..controls z118\0\17c1 and z118\0\17c2..z118\0\17
+ ..controls z118\0\18c1 and z118\0\18c2..z118\0\18
+ ..controls z118\0\19c1 and z118\0\19c2..z118\0\19
+ ..controls z118\0\20c1 and z118\0\20c2..z118\0\20
+ ..controls z118\0\21c1 and z118\0\21c2..z118\0\21
+ --z118\0\22
+ --z118\0\23
+ ..controls z118\0\24c1 and z118\0\24c2..z118\0\24
+ --z118\0\25
+ ..controls z118\0\26c1 and z118\0\26c2..z118\0\26
+ ..controls z118\0\27c1 and z118\0\27c2..z118\0\27
+ ..controls z118\0\28c1 and z118\0\28c2..z118\0\28
+ ..controls z118\0\29c1 and z118\0\29c2..z118\0\29
+ ..controls z118\0\30c1 and z118\0\30c2..z118\0\30
+ ..controls z118\0\31c1 and z118\0\31c2..z118\0\31
+ --z118\0\32
+ ..controls z118\0\33c1 and z118\0\33c2..z118\0\33
+ ..controls z118\0\34c1 and z118\0\34c2..z118\0\34
+ ..controls z118\0\35c1 and z118\0\35c2..cycle;
+ fill_or_unfill z118\1\0s
+ ..controls z118\1\0c1 and z118\1\0c2..z118\1\0
+ ..controls z118\1\1c1 and z118\1\1c2..z118\1\1
+ ..controls z118\1\2c1 and z118\1\2c2..z118\1\2
+ ..controls z118\1\3c1 and z118\1\3c2..z118\1\3
+ --z118\1\4
+ --z118\1\5
+ ..controls z118\1\6c1 and z118\1\6c2..z118\1\6
+ ..controls z118\1\7c1 and z118\1\7c2..z118\1\7
+ ..controls z118\1\8c1 and z118\1\8c2..z118\1\8
+ ..controls z118\1\9c1 and z118\1\9c2..z118\1\9
+ ..controls z118\1\10c1 and z118\1\10c2..z118\1\10
+ ..controls z118\1\11c1 and z118\1\11c2..z118\1\11
+ --z118\1\12
+ ..controls z118\1\13c1 and z118\1\13c2..z118\1\13
+ ..controls z118\1\14c1 and z118\1\14c2..z118\1\14
+ ..controls z118\1\15c1 and z118\1\15c2..cycle;
+ fill_or_unfill z118\2\0s
+ ..controls z118\2\0c1 and z118\2\0c2..z118\2\0
+ ..controls z118\2\1c1 and z118\2\1c2..z118\2\1
+ ..controls z118\2\2c1 and z118\2\2c2..z118\2\2
+ ..controls z118\2\3c1 and z118\2\3c2..cycle;
+ proof_labels (
+ 118\0\0,
+ 118\0\1,
+ 118\0\2,
+ 118\0\3,
+ 118\0\4,
+ 118\0\5,
+ 118\0\6,
+ 118\0\7,
+ 118\0\8,
+ 118\0\9,
+ 118\0\10,
+ 118\0\11,
+ 118\0\12,
+ 118\0\13,
+ 118\0\14,
+ 118\0\15,
+ 118\0\16,
+ 118\0\17,
+ 118\0\18,
+ 118\0\19,
+ 118\0\20,
+ 118\0\21,
+ 118\0\22,
+ 118\0\23,
+ 118\0\24,
+ 118\0\25,
+ 118\0\26,
+ 118\0\27,
+ 118\0\28,
+ 118\0\29,
+ 118\0\30,
+ 118\0\31,
+ 118\0\32,
+ 118\0\33,
+ 118\0\34,
+ 118\0\35,
+ 118\1\0,
+ 118\1\1,
+ 118\1\2,
+ 118\1\3,
+ 118\1\4,
+ 118\1\5,
+ 118\1\6,
+ 118\1\7,
+ 118\1\8,
+ 118\1\9,
+ 118\1\10,
+ 118\1\11,
+ 118\1\12,
+ 118\1\13,
+ 118\1\14,
+ 118\1\15,
+ 118\2\0,
+ 118\2\1,
+ 118\2\2,
+ 118\2\3,
+);
+endchar;
+
+beginchar (229, 11.081u#, 6.745u#, 8.913u#);
+ "smra";
+ z119\0\0s = (1.204u,5.300u);
+ z119\0\0 = (2.409u,5.300u);
+ z119\0\1c1 = (1.804u,4.060u);
+ z119\0\1c2 = (0.843u,3.019u);
+ z119\0\1 = (0.482u,1.630u);
+ z119\0\2c1 = (1.206u,1.686u);
+ z119\0\2c2 = (1.934u,1.708u);
+ z119\0\2 = (2.650u,1.630u);
+ z119\0\3 = (4.818u,0.964u);
+ z119\0\4c1 = (4.513u,1.378u);
+ z119\0\4c2 = (4.243u,1.739u);
+ z119\0\4 = (3.844u,2.075u);
+ z119\0\5 = (1.686u,3.613u);
+ z119\0\6c1 = (2.096u,3.733u);
+ z119\0\6c2 = (2.456u,3.850u);
+ z119\0\6 = (2.891u,3.844u);
+ z119\0\7c1 = (3.491u,3.835u);
+ z119\0\7c2 = (4.252u,3.565u);
+ z119\0\7 = (4.818u,3.360u);
+ z119\0\8c1 = (6.591u,2.716u);
+ z119\0\8c2 = (8.170u,1.923u);
+ z119\0\8 = (9.636u,0.723u);
+ z119\0\9c1 = (9.221u,0.578u);
+ z119\0\9c2 = (8.858u,0.501u);
+ z119\0\9 = (8.779u,-0.014u);
+ z119\0\10c1 = (8.698u,-0.532u);
+ z119\0\10c2 = (9.196u,-1.170u);
+ z119\0\10 = (9.326u,-1.696u);
+ z119\0\11c1 = (9.529u,-2.515u);
+ z119\0\11c2 = (9.597u,-3.493u);
+ z119\0\11 = (9.636u,-4.336u);
+ z119\0\12c1 = (8.774u,-3.732u);
+ z119\0\12c2 = (7.919u,-3.152u);
+ z119\0\12 = (6.986u,-2.659u);
+ z119\0\13c1 = (5.739u,-2.001u);
+ z119\0\13c2 = (5.191u,-2.237u);
+ z119\0\13 = (4.336u,-0.964u);
+ z119\0\14 = (5.537u,-0.719u);
+ z119\0\15c1 = (5.754u,-0.676u);
+ z119\0\15c2 = (5.992u,-0.651u);
+ z119\0\15 = (6.189u,-0.546u);
+ z119\0\16c1 = (6.732u,-0.262u);
+ z119\0\16c2 = (6.746u,0.309u);
+ z119\0\16 = (6.189u,0.599u);
+ z119\0\17c1 = (5.739u,0.796u);
+ z119\0\17c2 = (2.942u,0.780u);
+ z119\0\17 = (2.441u,0.599u);
+ z119\0\18c1 = (2.232u,0.552u);
+ z119\0\18c2 = (2.068u,0.479u);
+ z119\0\18 = (1.925u,0.304u);
+ z119\0\19c1 = (1.692u,0.015u);
+ z119\0\19c2 = (1.714u,-0.377u);
+ z119\0\19 = (1.686u,-0.723u);
+ z119\0\20c1 = (2.981u,-0.827u);
+ z119\0\20c2 = (3.152u,-1.060u);
+ z119\0\20 = (4.095u,-1.927u);
+ z119\0\21c1 = (3.600u,-1.980u);
+ z119\0\21c2 = (3.139u,-2.019u);
+ z119\0\21 = (2.695u,-2.277u);
+ z119\0\22c1 = (1.043u,-3.237u);
+ z119\0\22c2 = (1.558u,-5.938u);
+ z119\0\22 = (3.613u,-5.895u);
+ z119\0\23c1 = (4.124u,-5.884u);
+ z119\0\23c2 = (4.537u,-5.685u);
+ z119\0\23 = (4.814u,-5.245u);
+ z119\0\24c1 = (5.099u,-4.791u);
+ z119\0\24c2 = (5.166u,-3.914u);
+ z119\0\24 = (5.300u,-3.372u);
+ z119\0\25c1 = (6.720u,-3.784u);
+ z119\0\25c2 = (9.057u,-4.135u);
+ z119\0\25 = (9.584u,-5.791u);
+ z119\0\26c1 = (9.695u,-6.359u);
+ z119\0\26c2 = (9.636u,-7.338u);
+ z119\0\26 = (9.584u,-7.950u);
+ z119\0\27c1 = (9.014u,-7.483u);
+ z119\0\27c2 = (8.424u,-7.029u);
+ z119\0\27 = (7.705u,-6.716u);
+ z119\0\28c1 = (6.504u,-6.193u);
+ z119\0\28c2 = (3.946u,-5.864u);
+ z119\0\28 = (3.035u,-7.040u);
+ z119\0\29c1 = (2.753u,-7.405u);
+ z119\0\29c2 = (2.720u,-7.758u);
+ z119\0\29 = (2.650u,-8.190u);
+ z119\0\30c1 = (3.892u,-8.079u);
+ z119\0\30c2 = (4.993u,-7.663u);
+ z119\0\30 = (6.263u,-7.718u);
+ z119\0\31c1 = (7.625u,-7.778u);
+ z119\0\31c2 = (8.794u,-8.433u);
+ z119\0\31 = (10.128u,-8.672u);
+ z119\0\32c1 = (10.118u,-6.769u);
+ z119\0\32c2 = (10.001u,-4.785u);
+ z119\0\32 = (10.128u,-2.891u);
+ z119\0\33c1 = (10.204u,-2.005u);
+ z119\0\33c2 = (10.582u,-1.122u);
+ z119\0\33 = (10.547u,-0.241u);
+ z119\0\34c1 = (10.528u,0.269u);
+ z119\0\34c2 = (10.331u,0.714u);
+ z119\0\34 = (10.175u,1.204u);
+ z119\0\35c1 = (10.124u,1.687u);
+ z119\0\35c2 = (10.121u,2.159u);
+ z119\0\35 = (10.175u,2.650u);
+ z119\0\36c1 = (10.115u,3.205u);
+ z119\0\36c2 = (10.090u,3.787u);
+ z119\0\36 = (10.175u,4.336u);
+ z119\0\37 = (10.545u,5.541u);
+ z119\0\38c1 = (10.577u,5.947u);
+ z119\0\38c2 = (10.587u,6.333u);
+ z119\0\38 = (10.545u,6.745u);
+ z119\0\39c1 = (9.691u,6.742u);
+ z119\0\39c2 = (8.026u,6.843u);
+ z119\0\39 = (8.669u,5.367u);
+ z119\0\40 = (9.389u,4.086u);
+ z119\0\41c1 = (9.664u,3.334u);
+ z119\0\41c2 = (9.633u,2.476u);
+ z119\0\41 = (9.636u,1.686u);
+ z119\0\42 = (6.504u,3.730u);
+ z119\0\43c1 = (5.759u,4.228u);
+ z119\0\43c2 = (5.163u,4.610u);
+ z119\0\43 = (4.577u,5.300u);
+ z119\0\44c1 = (5.106u,5.307u);
+ z119\0\44c2 = (6.353u,5.214u);
+ z119\0\44 = (6.353u,6.022u);
+ z119\0\45c1 = (6.353u,6.301u);
+ z119\0\45c2 = (6.183u,6.484u);
+ z119\0\45 = (5.946u,6.550u);
+ z119\0\46c1 = (5.400u,6.871u);
+ z119\0\46c2 = (2.490u,6.810u);
+ z119\0\46 = (1.962u,6.550u);
+ z119\0\47c1 = (1.460u,6.203u);
+ z119\0\47c2 = (1.361u,5.814u);
+ z119\1\0s = (3.613u,-3.497u);
+ z119\1\0c1 = (3.848u,-3.476u);
+ z119\1\0c2 = (4.029u,-3.427u);
+ z119\1\0 = (4.260u,-3.497u);
+ z119\1\1c1 = (5.095u,-3.882u);
+ z119\1\1c2 = (4.761u,-5.237u);
+ z119\1\1 = (3.832u,-5.411u);
+ z119\1\2c1 = (2.786u,-5.608u);
+ z119\1\2c2 = (1.868u,-4.353u);
+ z119\1\2 = (2.949u,-3.689u);
+ z119\1\3c1 = (3.170u,-3.554u);
+ z119\1\3c2 = (3.374u,-3.537u);
+ fill_or_unfill z119\0\0s
+ --z119\0\0
+ ..controls z119\0\1c1 and z119\0\1c2..z119\0\1
+ ..controls z119\0\2c1 and z119\0\2c2..z119\0\2
+ --z119\0\3
+ ..controls z119\0\4c1 and z119\0\4c2..z119\0\4
+ --z119\0\5
+ ..controls z119\0\6c1 and z119\0\6c2..z119\0\6
+ ..controls z119\0\7c1 and z119\0\7c2..z119\0\7
+ ..controls z119\0\8c1 and z119\0\8c2..z119\0\8
+ ..controls z119\0\9c1 and z119\0\9c2..z119\0\9
+ ..controls z119\0\10c1 and z119\0\10c2..z119\0\10
+ ..controls z119\0\11c1 and z119\0\11c2..z119\0\11
+ ..controls z119\0\12c1 and z119\0\12c2..z119\0\12
+ ..controls z119\0\13c1 and z119\0\13c2..z119\0\13
+ --z119\0\14
+ ..controls z119\0\15c1 and z119\0\15c2..z119\0\15
+ ..controls z119\0\16c1 and z119\0\16c2..z119\0\16
+ ..controls z119\0\17c1 and z119\0\17c2..z119\0\17
+ ..controls z119\0\18c1 and z119\0\18c2..z119\0\18
+ ..controls z119\0\19c1 and z119\0\19c2..z119\0\19
+ ..controls z119\0\20c1 and z119\0\20c2..z119\0\20
+ ..controls z119\0\21c1 and z119\0\21c2..z119\0\21
+ ..controls z119\0\22c1 and z119\0\22c2..z119\0\22
+ ..controls z119\0\23c1 and z119\0\23c2..z119\0\23
+ ..controls z119\0\24c1 and z119\0\24c2..z119\0\24
+ ..controls z119\0\25c1 and z119\0\25c2..z119\0\25
+ ..controls z119\0\26c1 and z119\0\26c2..z119\0\26
+ ..controls z119\0\27c1 and z119\0\27c2..z119\0\27
+ ..controls z119\0\28c1 and z119\0\28c2..z119\0\28
+ ..controls z119\0\29c1 and z119\0\29c2..z119\0\29
+ ..controls z119\0\30c1 and z119\0\30c2..z119\0\30
+ ..controls z119\0\31c1 and z119\0\31c2..z119\0\31
+ ..controls z119\0\32c1 and z119\0\32c2..z119\0\32
+ ..controls z119\0\33c1 and z119\0\33c2..z119\0\33
+ ..controls z119\0\34c1 and z119\0\34c2..z119\0\34
+ ..controls z119\0\35c1 and z119\0\35c2..z119\0\35
+ ..controls z119\0\36c1 and z119\0\36c2..z119\0\36
+ --z119\0\37
+ ..controls z119\0\38c1 and z119\0\38c2..z119\0\38
+ ..controls z119\0\39c1 and z119\0\39c2..z119\0\39
+ --z119\0\40
+ ..controls z119\0\41c1 and z119\0\41c2..z119\0\41
+ --z119\0\42
+ ..controls z119\0\43c1 and z119\0\43c2..z119\0\43
+ ..controls z119\0\44c1 and z119\0\44c2..z119\0\44
+ ..controls z119\0\45c1 and z119\0\45c2..z119\0\45
+ ..controls z119\0\46c1 and z119\0\46c2..z119\0\46
+ ..controls z119\0\47c1 and z119\0\47c2..cycle;
+ fill_or_unfill z119\1\0s
+ ..controls z119\1\0c1 and z119\1\0c2..z119\1\0
+ ..controls z119\1\1c1 and z119\1\1c2..z119\1\1
+ ..controls z119\1\2c1 and z119\1\2c2..z119\1\2
+ ..controls z119\1\3c1 and z119\1\3c2..cycle;
+ proof_labels (
+ 119\0\0,
+ 119\0\1,
+ 119\0\2,
+ 119\0\3,
+ 119\0\4,
+ 119\0\5,
+ 119\0\6,
+ 119\0\7,
+ 119\0\8,
+ 119\0\9,
+ 119\0\10,
+ 119\0\11,
+ 119\0\12,
+ 119\0\13,
+ 119\0\14,
+ 119\0\15,
+ 119\0\16,
+ 119\0\17,
+ 119\0\18,
+ 119\0\19,
+ 119\0\20,
+ 119\0\21,
+ 119\0\22,
+ 119\0\23,
+ 119\0\24,
+ 119\0\25,
+ 119\0\26,
+ 119\0\27,
+ 119\0\28,
+ 119\0\29,
+ 119\0\30,
+ 119\0\31,
+ 119\0\32,
+ 119\0\33,
+ 119\0\34,
+ 119\0\35,
+ 119\0\36,
+ 119\0\37,
+ 119\0\38,
+ 119\0\39,
+ 119\0\40,
+ 119\0\41,
+ 119\0\42,
+ 119\0\43,
+ 119\0\44,
+ 119\0\45,
+ 119\0\46,
+ 119\0\47,
+ 119\1\0,
+ 119\1\1,
+ 119\1\2,
+ 119\1\3,
+);
+endchar;
+
+beginchar (179, 6.986u#, 6.745u#, 7.950u#);
+ "twa";
+ z120\0\0s = (0.520u,1.204u);
+ z120\0\0c1 = (1.267u,1.344u);
+ z120\0\0c2 = (2.091u,1.694u);
+ z120\0\0 = (2.891u,1.631u);
+ z120\0\1c1 = (4.103u,1.537u);
+ z120\0\1c2 = (5.522u,0.569u);
+ z120\0\1 = (5.637u,-0.723u);
+ z120\0\2c1 = (5.680u,-1.200u);
+ z120\0\2c2 = (5.489u,-1.718u);
+ z120\0\2 = (5.344u,-2.168u);
+ z120\0\3c1 = (5.217u,-2.564u);
+ z120\0\3c2 = (5.098u,-2.979u);
+ z120\0\3 = (4.854u,-3.322u);
+ z120\0\4c1 = (4.432u,-3.917u);
+ z120\0\4c2 = (3.722u,-4.262u);
+ z120\0\4 = (3.132u,-4.663u);
+ z120\0\5 = (1.686u,-5.782u);
+ z120\0\6c1 = (2.741u,-7.024u);
+ z120\0\6c2 = (3.918u,-7.618u);
+ z120\0\6 = (5.572u,-7.709u);
+ z120\0\7c1 = (5.541u,-6.551u);
+ z120\0\7c2 = (5.415u,-5.232u);
+ z120\0\7 = (5.572u,-4.095u);
+ z120\0\8 = (5.936u,-2.891u);
+ z120\0\9c1 = (6.324u,-1.567u);
+ z120\0\9c2 = (6.716u,-0.179u);
+ z120\0\9 = (6.376u,1.203u);
+ z120\0\10c1 = (6.256u,1.694u);
+ z120\0\10c2 = (6.053u,2.159u);
+ z120\0\10 = (5.681u,2.513u);
+ z120\0\11c1 = (4.119u,3.996u);
+ z120\0\11c2 = (2.798u,1.927u);
+ z120\0\11 = (1.445u,4.818u);
+ z120\0\12c1 = (1.924u,4.998u);
+ z120\0\12c2 = (2.381u,5.176u);
+ z120\0\12 = (2.891u,5.250u);
+ z120\0\13c1 = (3.637u,5.357u);
+ z120\0\13c2 = (5.827u,5.087u);
+ z120\0\13 = (6.285u,5.680u);
+ z120\0\14c1 = (6.351u,5.832u);
+ z120\0\14c2 = (6.382u,6.025u);
+ z120\0\14 = (6.285u,6.201u);
+ z120\0\15c1 = (6.086u,6.945u);
+ z120\0\15c2 = (4.247u,6.745u);
+ z120\0\15 = (3.613u,6.745u);
+ z120\0\16c1 = (3.001u,6.745u);
+ z120\0\16c2 = (1.315u,6.853u);
+ z120\0\16 = (0.867u,6.499u);
+ z120\0\17c1 = (0.685u,6.355u);
+ z120\0\17c2 = (0.621u,6.204u);
+ z120\0\17 = (0.520u,5.987u);
+ z120\0\18c1 = (0.419u,5.519u);
+ z120\0\18c2 = (0.482u,1.970u);
+ z120\1\0s = (5.059u,-4.095u);
+ z120\1\0 = (5.059u,-7.468u);
+ z120\1\1c1 = (4.173u,-7.067u);
+ z120\1\1c2 = (3.444u,-6.579u);
+ z120\1\1 = (2.650u,-6.022u);
+ z120\1\2 = (2.650u,-5.541u);
+ fill_or_unfill z120\0\0s
+ ..controls z120\0\0c1 and z120\0\0c2..z120\0\0
+ ..controls z120\0\1c1 and z120\0\1c2..z120\0\1
+ ..controls z120\0\2c1 and z120\0\2c2..z120\0\2
+ ..controls z120\0\3c1 and z120\0\3c2..z120\0\3
+ ..controls z120\0\4c1 and z120\0\4c2..z120\0\4
+ --z120\0\5
+ ..controls z120\0\6c1 and z120\0\6c2..z120\0\6
+ ..controls z120\0\7c1 and z120\0\7c2..z120\0\7
+ --z120\0\8
+ ..controls z120\0\9c1 and z120\0\9c2..z120\0\9
+ ..controls z120\0\10c1 and z120\0\10c2..z120\0\10
+ ..controls z120\0\11c1 and z120\0\11c2..z120\0\11
+ ..controls z120\0\12c1 and z120\0\12c2..z120\0\12
+ ..controls z120\0\13c1 and z120\0\13c2..z120\0\13
+ ..controls z120\0\14c1 and z120\0\14c2..z120\0\14
+ ..controls z120\0\15c1 and z120\0\15c2..z120\0\15
+ ..controls z120\0\16c1 and z120\0\16c2..z120\0\16
+ ..controls z120\0\17c1 and z120\0\17c2..z120\0\17
+ ..controls z120\0\18c1 and z120\0\18c2..cycle;
+ fill_or_unfill z120\1\0s
+ --z120\1\0
+ ..controls z120\1\1c1 and z120\1\1c2..z120\1\1
+ --z120\1\2
+ --cycle;
+ proof_labels (
+ 120\0\0,
+ 120\0\1,
+ 120\0\2,
+ 120\0\3,
+ 120\0\4,
+ 120\0\5,
+ 120\0\6,
+ 120\0\7,
+ 120\0\8,
+ 120\0\9,
+ 120\0\10,
+ 120\0\11,
+ 120\0\12,
+ 120\0\13,
+ 120\0\14,
+ 120\0\15,
+ 120\0\16,
+ 120\0\17,
+ 120\0\18,
+ 120\1\0,
+ 120\1\1,
+ 120\1\2,
+ 120\1\3,
+);
+endchar;
+
+beginchar (230, 9.877u#, 9.154u#, 6.022u#);
+ "tswa";
+ z121\0\0s = (6.986u,6.707u);
+ z121\0\0c1 = (6.212u,6.745u);
+ z121\0\0c2 = (3.197u,6.815u);
+ z121\0\0 = (2.664u,6.707u);
+ z121\0\1c1 = (2.429u,6.605u);
+ z121\0\1c2 = (2.248u,6.536u);
+ z121\0\1 = (2.071u,6.360u);
+ z121\0\2c1 = (1.766u,6.056u);
+ z121\0\2c2 = (1.752u,5.694u);
+ z121\0\2 = (1.686u,5.300u);
+ z121\0\3 = (4.818u,5.300u);
+ z121\0\4 = (4.676u,4.581u);
+ z121\0\5c1 = (4.329u,3.691u);
+ z121\0\5c2 = (3.346u,3.046u);
+ z121\0\5 = (2.409u,2.963u);
+ z121\0\6c1 = (1.794u,2.908u);
+ z121\0\6c2 = (1.102u,3.082u);
+ z121\0\6 = (0.482u,3.132u);
+ z121\0\7 = (1.316u,1.677u);
+ z121\0\8c1 = (1.688u,0.920u);
+ z121\0\8c2 = (1.830u,0.020u);
+ z121\0\8 = (2.503u,-0.554u);
+ z121\0\9c1 = (3.068u,-1.036u);
+ z121\0\9c2 = (3.859u,-1.163u);
+ z121\0\9 = (4.577u,-1.195u);
+ z121\0\10c1 = (5.881u,-1.252u);
+ z121\0\10c2 = (6.911u,-1.102u);
+ z121\0\10 = (7.466u,0.244u);
+ z121\0\11c1 = (7.620u,0.618u);
+ z121\0\11c2 = (7.694u,1.043u);
+ z121\0\11 = (7.644u,1.445u);
+ z121\0\12c1 = (7.501u,2.598u);
+ z121\0\12c2 = (6.501u,3.235u);
+ z121\0\12 = (5.857u,4.095u);
+ z121\0\13c1 = (5.550u,4.504u);
+ z121\0\13c2 = (5.440u,4.823u);
+ z121\0\13 = (5.300u,5.300u);
+ z121\0\14c1 = (7.211u,5.306u);
+ z121\0\14c2 = (8.147u,5.278u);
+ z121\0\14 = (7.227u,7.468u);
+ z121\0\15c1 = (7.867u,7.637u);
+ z121\0\15c2 = (8.937u,7.857u);
+ z121\0\15 = (9.253u,8.503u);
+ z121\0\16c1 = (9.359u,8.719u);
+ z121\0\16c2 = (9.355u,8.927u);
+ z121\0\16 = (9.395u,9.154u);
+ z121\0\17c1 = (7.372u,9.128u);
+ z121\0\17c2 = (7.012u,8.768u);
+ z121\1\0s = (2.409u,2.650u);
+ z121\1\0c1 = (2.941u,2.704u);
+ z121\1\0c2 = (3.835u,2.989u);
+ z121\1\0 = (4.315u,2.898u);
+ z121\1\1c1 = (4.834u,2.799u);
+ z121\1\1c2 = (5.205u,2.347u);
+ z121\1\1 = (5.560u,1.991u);
+ z121\1\2c1 = (5.925u,1.624u);
+ z121\1\2c2 = (6.585u,1.000u);
+ z121\1\2 = (6.685u,0.483u);
+ z121\1\3c1 = (6.897u,-0.608u);
+ z121\1\3c2 = (4.895u,-1.853u);
+ z121\1\3 = (3.374u,0.724u);
+ z121\2\0s = (2.168u,-3.854u);
+ z121\2\0c1 = (3.223u,-5.097u);
+ z121\2\0c2 = (4.400u,-5.691u);
+ z121\2\0 = (6.022u,-5.782u);
+ z121\2\1 = (6.022u,-1.445u);
+ z121\2\2c1 = (4.585u,-1.976u);
+ z121\2\2c2 = (3.332u,-2.870u);
+ z121\3\0s = (5.541u,-2.168u);
+ z121\3\0 = (5.541u,-5.541u);
+ z121\3\1c1 = (4.654u,-5.139u);
+ z121\3\1c2 = (3.926u,-4.652u);
+ z121\3\1 = (3.132u,-4.095u);
+ z121\3\2 = (3.132u,-3.613u);
+ fill_or_unfill z121\0\0s
+ ..controls z121\0\0c1 and z121\0\0c2..z121\0\0
+ ..controls z121\0\1c1 and z121\0\1c2..z121\0\1
+ ..controls z121\0\2c1 and z121\0\2c2..z121\0\2
+ --z121\0\3
+ --z121\0\4
+ ..controls z121\0\5c1 and z121\0\5c2..z121\0\5
+ ..controls z121\0\6c1 and z121\0\6c2..z121\0\6
+ --z121\0\7
+ ..controls z121\0\8c1 and z121\0\8c2..z121\0\8
+ ..controls z121\0\9c1 and z121\0\9c2..z121\0\9
+ ..controls z121\0\10c1 and z121\0\10c2..z121\0\10
+ ..controls z121\0\11c1 and z121\0\11c2..z121\0\11
+ ..controls z121\0\12c1 and z121\0\12c2..z121\0\12
+ ..controls z121\0\13c1 and z121\0\13c2..z121\0\13
+ ..controls z121\0\14c1 and z121\0\14c2..z121\0\14
+ ..controls z121\0\15c1 and z121\0\15c2..z121\0\15
+ ..controls z121\0\16c1 and z121\0\16c2..z121\0\16
+ ..controls z121\0\17c1 and z121\0\17c2..cycle;
+ fill_or_unfill z121\1\0s
+ ..controls z121\1\0c1 and z121\1\0c2..z121\1\0
+ ..controls z121\1\1c1 and z121\1\1c2..z121\1\1
+ ..controls z121\1\2c1 and z121\1\2c2..z121\1\2
+ ..controls z121\1\3c1 and z121\1\3c2..z121\1\3
+ --cycle;
+ fill_or_unfill z121\2\0s
+ ..controls z121\2\0c1 and z121\2\0c2..z121\2\0
+ --z121\2\1
+ ..controls z121\2\2c1 and z121\2\2c2..cycle;
+ fill_or_unfill z121\3\0s
+ --z121\3\0
+ ..controls z121\3\1c1 and z121\3\1c2..z121\3\1
+ --z121\3\2
+ --cycle;
+ proof_labels (
+ 121\0\0,
+ 121\0\1,
+ 121\0\2,
+ 121\0\3,
+ 121\0\4,
+ 121\0\5,
+ 121\0\6,
+ 121\0\7,
+ 121\0\8,
+ 121\0\9,
+ 121\0\10,
+ 121\0\11,
+ 121\0\12,
+ 121\0\13,
+ 121\0\14,
+ 121\0\15,
+ 121\0\16,
+ 121\0\17,
+ 121\1\0,
+ 121\1\1,
+ 121\1\2,
+ 121\1\3,
+ 121\1\4,
+ 121\2\0,
+ 121\2\1,
+ 121\2\2,
+ 121\3\0,
+ 121\3\1,
+ 121\3\2,
+ 121\3\3,
+);
+endchar;
+
+beginchar (231, 11.081u#, 6.745u#, 5.782u#);
+ "swa";
+ z122\0\0s = (1.204u,5.300u);
+ z122\0\0 = (2.650u,5.300u);
+ z122\0\1c1 = (2.509u,4.860u);
+ z122\0\1c2 = (2.376u,4.497u);
+ z122\0\1 = (2.139u,4.095u);
+ z122\0\2c1 = (1.664u,3.291u);
+ z122\0\2c2 = (0.999u,2.576u);
+ z122\0\2 = (0.678u,1.686u);
+ z122\0\3c1 = (0.532u,1.280u);
+ z122\0\3c2 = (0.512u,0.905u);
+ z122\0\3 = (0.482u,0.482u);
+ z122\0\4c1 = (2.053u,0.519u);
+ z122\0\4c2 = (2.606u,0.654u);
+ z122\0\4 = (3.993u,-0.253u);
+ z122\0\5c1 = (4.630u,-0.669u);
+ z122\0\5c2 = (4.794u,-0.777u);
+ z122\0\5 = (5.541u,-0.964u);
+ z122\0\6c1 = (4.863u,0.710u);
+ z122\0\6c2 = (3.532u,2.151u);
+ z122\0\6 = (1.686u,2.409u);
+ z122\0\7c1 = (2.050u,2.808u);
+ z122\0\7c2 = (2.322u,3.139u);
+ z122\0\7 = (2.895u,3.225u);
+ z122\0\8c1 = (4.724u,3.500u);
+ z122\0\8c2 = (8.177u,-0.024u);
+ z122\0\8 = (9.154u,-1.445u);
+ z122\0\9c1 = (7.888u,-2.011u);
+ z122\0\9c2 = (6.839u,-2.719u);
+ z122\0\9 = (5.782u,-3.613u);
+ z122\0\10c1 = (6.837u,-4.856u);
+ z122\0\10c2 = (8.013u,-5.450u);
+ z122\0\10 = (9.636u,-5.541u);
+ z122\0\11 = (9.636u,2.650u);
+ z122\0\12c1 = (9.643u,3.214u);
+ z122\0\12c2 = (9.655u,3.779u);
+ z122\0\12 = (9.809u,4.327u);
+ z122\0\13c1 = (9.954u,4.846u);
+ z122\0\13c2 = (10.582u,5.707u);
+ z122\0\13 = (10.421u,6.197u);
+ z122\0\14c1 = (10.242u,6.743u);
+ z122\0\14c2 = (9.395u,6.779u);
+ z122\0\14 = (8.927u,6.709u);
+ z122\0\15c1 = (8.586u,6.658u);
+ z122\0\15c2 = (8.242u,6.557u);
+ z122\0\15 = (8.128u,6.188u);
+ z122\0\16c1 = (7.976u,5.695u);
+ z122\0\16c2 = (8.491u,4.836u);
+ z122\0\16 = (8.642u,4.336u);
+ z122\0\17c1 = (8.759u,3.947u);
+ z122\0\17c2 = (8.831u,3.536u);
+ z122\0\17 = (8.893u,3.132u);
+ z122\0\18 = (8.893u,0.241u);
+ z122\0\19c1 = (8.242u,1.131u);
+ z122\0\19c2 = (7.509u,2.047u);
+ z122\0\19 = (6.705u,2.821u);
+ z122\0\20c1 = (5.843u,3.651u);
+ z122\0\20c2 = (4.828u,4.367u);
+ z122\0\20 = (3.854u,5.059u);
+ z122\0\21c1 = (5.134u,5.375u);
+ z122\0\21c2 = (5.748u,5.115u);
+ z122\0\21 = (6.263u,6.504u);
+ z122\0\22c1 = (5.333u,6.769u);
+ z122\0\22c2 = (2.339u,7.038u);
+ z122\0\22 = (1.623u,6.326u);
+ z122\0\23c1 = (1.328u,6.034u);
+ z122\0\23c2 = (1.290u,5.680u);
+ z122\1\0s = (9.154u,-1.927u);
+ z122\1\0 = (9.154u,-5.300u);
+ z122\1\1c1 = (8.268u,-4.899u);
+ z122\1\1c2 = (7.539u,-4.411u);
+ z122\1\1 = (6.745u,-3.854u);
+ z122\1\2 = (6.745u,-3.372u);
+ fill_or_unfill z122\0\0s
+ --z122\0\0
+ ..controls z122\0\1c1 and z122\0\1c2..z122\0\1
+ ..controls z122\0\2c1 and z122\0\2c2..z122\0\2
+ ..controls z122\0\3c1 and z122\0\3c2..z122\0\3
+ ..controls z122\0\4c1 and z122\0\4c2..z122\0\4
+ ..controls z122\0\5c1 and z122\0\5c2..z122\0\5
+ ..controls z122\0\6c1 and z122\0\6c2..z122\0\6
+ ..controls z122\0\7c1 and z122\0\7c2..z122\0\7
+ ..controls z122\0\8c1 and z122\0\8c2..z122\0\8
+ ..controls z122\0\9c1 and z122\0\9c2..z122\0\9
+ ..controls z122\0\10c1 and z122\0\10c2..z122\0\10
+ --z122\0\11
+ ..controls z122\0\12c1 and z122\0\12c2..z122\0\12
+ ..controls z122\0\13c1 and z122\0\13c2..z122\0\13
+ ..controls z122\0\14c1 and z122\0\14c2..z122\0\14
+ ..controls z122\0\15c1 and z122\0\15c2..z122\0\15
+ ..controls z122\0\16c1 and z122\0\16c2..z122\0\16
+ ..controls z122\0\17c1 and z122\0\17c2..z122\0\17
+ --z122\0\18
+ ..controls z122\0\19c1 and z122\0\19c2..z122\0\19
+ ..controls z122\0\20c1 and z122\0\20c2..z122\0\20
+ ..controls z122\0\21c1 and z122\0\21c2..z122\0\21
+ ..controls z122\0\22c1 and z122\0\22c2..z122\0\22
+ ..controls z122\0\23c1 and z122\0\23c2..cycle;
+ fill_or_unfill z122\1\0s
+ --z122\1\0
+ ..controls z122\1\1c1 and z122\1\1c2..z122\1\1
+ --z122\1\2
+ --cycle;
+ proof_labels (
+ 122\0\0,
+ 122\0\1,
+ 122\0\2,
+ 122\0\3,
+ 122\0\4,
+ 122\0\5,
+ 122\0\6,
+ 122\0\7,
+ 122\0\8,
+ 122\0\9,
+ 122\0\10,
+ 122\0\11,
+ 122\0\12,
+ 122\0\13,
+ 122\0\14,
+ 122\0\15,
+ 122\0\16,
+ 122\0\17,
+ 122\0\18,
+ 122\0\19,
+ 122\0\20,
+ 122\0\21,
+ 122\0\22,
+ 122\0\23,
+ 122\1\0,
+ 122\1\1,
+ 122\1\2,
+ 122\1\3,
+);
+endchar;
+
+%%
+%% tibsp
+%%
+
+beginchar (48, 5.541u#, 6.504u#, 0.000u#);
+ "zero";
+ z0\0\0s = (2.409u,6.347u);
+ z0\0\0c1 = (-0.491u,5.123u);
+ z0\0\0c2 = (0.099u,1.658u);
+ z0\0\0 = (3.132u,1.954u);
+ z0\0\1c1 = (5.978u,2.231u);
+ z0\0\1c2 = (5.822u,6.966u);
+ z0\1\0s = (2.410u,5.217u);
+ z0\1\0c1 = (5.904u,5.626u);
+ z0\1\0c2 = (4.929u,3.299u);
+ z0\1\0 = (3.131u,2.977u);
+ z0\1\1c1 = (1.074u,2.607u);
+ z0\1\1c2 = (0.048u,4.505u);
+ fill_or_unfill z0\0\0s
+ ..controls z0\0\0c1 and z0\0\0c2..z0\0\0
+ ..controls z0\0\1c1 and z0\0\1c2..cycle;
+ fill_or_unfill z0\1\0s
+ ..controls z0\1\0c1 and z0\1\0c2..z0\1\0
+ ..controls z0\1\1c1 and z0\1\1c2..cycle;
+ proof_labels (
+ 0\0\0,
+ 0\0\1,
+ 0\1\0,
+ 0\1\1,
+);
+ npic:=currentpicture;
+endchar;
+
+beginchar (49, 5.782u#, 6.745u#, 1.204u#);
+ "one";
+ z1\0\0s = (1.204u,3.613u);
+ z1\0\0c1 = (1.970u,4.091u);
+ z1\0\0c2 = (2.303u,4.833u);
+ z1\0\0 = (2.963u,5.424u);
+ z1\0\1c1 = (4.450u,6.756u);
+ z1\0\1c2 = (5.020u,5.559u);
+ z1\0\1 = (4.357u,4.095u);
+ z1\0\2c1 = (3.428u,2.048u);
+ z1\0\2c2 = (1.395u,0.928u);
+ z1\0\2 = (0.482u,-0.964u);
+ z1\0\3c1 = (5.531u,0.094u);
+ z1\0\3c2 = (6.938u,8.021u);
+ z1\0\3 = (3.373u,6.483u);
+ z1\0\4c1 = (2.102u,5.935u);
+ z1\0\4c2 = (1.564u,4.871u);
+ fill_or_unfill z1\0\0s
+ ..controls z1\0\0c1 and z1\0\0c2..z1\0\0
+ ..controls z1\0\1c1 and z1\0\1c2..z1\0\1
+ ..controls z1\0\2c1 and z1\0\2c2..z1\0\2
+ ..controls z1\0\3c1 and z1\0\3c2..z1\0\3
+ ..controls z1\0\4c1 and z1\0\4c2..cycle;
+ proof_labels (
+ 1\0\0,
+ 1\0\1,
+ 1\0\2,
+ 1\0\3,
+ 1\0\4,
+);
+endchar;
+
+beginchar (50, 6.022u#, 6.745u#, 1.686u#);
+ "two";
+ z2\0\0s = (0.723u,4.577u);
+ z2\0\0c1 = (1.270u,4.831u);
+ z2\0\0c2 = (1.668u,5.123u);
+ z2\0\0 = (2.168u,5.453u);
+ z2\0\1c1 = (2.908u,5.940u);
+ z2\0\1c2 = (4.879u,6.364u);
+ z2\0\1 = (3.965u,4.814u);
+ z2\0\2c1 = (3.140u,3.416u);
+ z2\0\2c2 = (1.465u,2.338u);
+ z2\0\2 = (0.482u,0.964u);
+ z2\0\3c1 = (2.441u,0.988u);
+ z2\0\3c2 = (4.170u,1.179u);
+ z2\0\3 = (3.854u,-1.445u);
+ z2\0\4c1 = (6.425u,-1.232u);
+ z2\0\4c2 = (6.133u,1.602u);
+ z2\0\4 = (2.409u,1.686u);
+ z2\0\5c1 = (3.227u,2.376u);
+ z2\0\5c2 = (4.530u,3.011u);
+ z2\0\5 = (5.122u,3.879u);
+ z2\0\6c1 = (7.269u,7.025u);
+ z2\0\6c2 = (2.308u,7.845u);
+ fill_or_unfill z2\0\0s
+ ..controls z2\0\0c1 and z2\0\0c2..z2\0\0
+ ..controls z2\0\1c1 and z2\0\1c2..z2\0\1
+ ..controls z2\0\2c1 and z2\0\2c2..z2\0\2
+ ..controls z2\0\3c1 and z2\0\3c2..z2\0\3
+ ..controls z2\0\4c1 and z2\0\4c2..z2\0\4
+ ..controls z2\0\5c1 and z2\0\5c2..z2\0\5
+ ..controls z2\0\6c1 and z2\0\6c2..cycle;
+ proof_labels (
+ 2\0\0,
+ 2\0\1,
+ 2\0\2,
+ 2\0\3,
+ 2\0\4,
+ 2\0\5,
+ 2\0\6,
+);
+endchar;
+
+beginchar (51, 6.504u#, 6.745u#, 2.650u#);
+ "three";
+ z3\0\0s = (0.482u,4.818u);
+ z3\0\0c1 = (1.041u,4.948u);
+ z3\0\0c2 = (3.896u,5.906u);
+ z3\0\0 = (3.154u,4.132u);
+ z3\0\1 = (1.927u,2.409u);
+ z3\0\2c1 = (2.771u,2.755u);
+ z3\0\2c2 = (3.931u,3.637u);
+ z3\0\2 = (4.719u,2.592u);
+ z3\0\3c1 = (4.856u,2.310u);
+ z3\0\3c2 = (4.902u,2.030u);
+ z3\0\3 = (4.719u,1.708u);
+ z3\0\4c1 = (3.975u,-0.382u);
+ z3\0\4c2 = (1.400u,1.573u);
+ z3\0\4 = (0.482u,-0.964u);
+ z3\0\5c1 = (3.743u,-0.843u);
+ z3\0\5c2 = (2.844u,-1.161u);
+ z3\0\5 = (5.541u,-2.409u);
+ z3\0\6c1 = (5.291u,-1.182u);
+ z3\0\6c2 = (4.741u,-0.551u);
+ z3\0\6 = (4.095u,0.482u);
+ z3\0\7c1 = (6.047u,1.533u);
+ z3\0\7c2 = (7.087u,3.759u);
+ z3\0\7 = (4.336u,4.577u);
+ z3\0\8c1 = (4.252u,7.859u);
+ z3\0\8c2 = (1.526u,6.919u);
+ fill_or_unfill z3\0\0s
+ ..controls z3\0\0c1 and z3\0\0c2..z3\0\0
+ --z3\0\1
+ ..controls z3\0\2c1 and z3\0\2c2..z3\0\2
+ ..controls z3\0\3c1 and z3\0\3c2..z3\0\3
+ ..controls z3\0\4c1 and z3\0\4c2..z3\0\4
+ ..controls z3\0\5c1 and z3\0\5c2..z3\0\5
+ ..controls z3\0\6c1 and z3\0\6c2..z3\0\6
+ ..controls z3\0\7c1 and z3\0\7c2..z3\0\7
+ ..controls z3\0\8c1 and z3\0\8c2..cycle;
+ proof_labels (
+ 3\0\0,
+ 3\0\1,
+ 3\0\2,
+ 3\0\3,
+ 3\0\4,
+ 3\0\5,
+ 3\0\6,
+ 3\0\7,
+ 3\0\8,
+);
+endchar;
+
+beginchar (52, 11.804u#, 6.504u#, 0.000u#);
+ "four";
+ z4\0\0s = (11.322u,6.022u);
+ z4\0\0 = (10.840u,6.022u);
+ z4\0\1c1 = (9.802u,2.487u);
+ z4\0\1c2 = (4.213u,1.852u);
+ z4\0\1 = (1.204u,2.650u);
+ z4\0\2c1 = (2.667u,4.434u);
+ z4\0\2c2 = (7.496u,3.369u);
+ z4\0\2 = (9.154u,6.504u);
+ z4\0\3c1 = (7.840u,6.023u);
+ z4\0\3c2 = (6.722u,5.329u);
+ z4\0\3 = (5.300u,5.139u);
+ z4\0\4c1 = (4.402u,5.006u);
+ z4\0\4c2 = (3.177u,5.407u);
+ z4\0\4 = (2.419u,5.139u);
+ z4\0\5c1 = (1.786u,4.929u);
+ z4\0\5c2 = (1.254u,4.190u);
+ z4\0\5 = (0.959u,3.613u);
+ z4\0\6c1 = (-1.325u,-0.868u);
+ z4\0\6c2 = (10.683u,0.502u);
+ fill_or_unfill z4\0\0s
+ --z4\0\0
+ ..controls z4\0\1c1 and z4\0\1c2..z4\0\1
+ ..controls z4\0\2c1 and z4\0\2c2..z4\0\2
+ ..controls z4\0\3c1 and z4\0\3c2..z4\0\3
+ ..controls z4\0\4c1 and z4\0\4c2..z4\0\4
+ ..controls z4\0\5c1 and z4\0\5c2..z4\0\5
+ ..controls z4\0\6c1 and z4\0\6c2..cycle;
+ proof_labels (
+ 4\0\0,
+ 4\0\1,
+ 4\0\2,
+ 4\0\3,
+ 4\0\4,
+ 4\0\5,
+ 4\0\6,
+);
+endchar;
+
+beginchar (53, 9.395u#, 6.745u#, 0.241u#);
+ "five";
+ z5\0\0s = (6.263u,6.745u);
+ z5\0\0c1 = (5.303u,5.034u);
+ z5\0\0c2 = (4.652u,4.454u);
+ z5\0\0 = (4.336u,2.409u);
+ z5\0\1c1 = (2.627u,4.122u);
+ z5\0\1c2 = (3.453u,5.984u);
+ z5\0\1 = (0.482u,6.022u);
+ z5\0\2c1 = (0.855u,4.454u);
+ z5\0\2c2 = (2.677u,0.705u);
+ z5\0\2 = (4.095u,0.000u);
+ z5\0\3c1 = (4.189u,1.674u);
+ z5\0\3c2 = (5.068u,3.544u);
+ z5\0\3 = (5.782u,5.059u);
+ z5\0\4c1 = (7.216u,3.598u);
+ z5\0\4c2 = (8.822u,3.160u);
+ z5\0\4 = (8.913u,5.782u);
+ z5\0\5c1 = (8.570u,5.485u);
+ z5\0\5c2 = (8.587u,5.489u);
+ z5\0\5 = (8.431u,5.059u);
+ z5\0\6c1 = (7.498u,5.534u);
+ z5\0\6c2 = (7.376u,5.793u);
+ z5\0\6 = (6.986u,6.745u);
+ fill_or_unfill z5\0\0s
+ ..controls z5\0\0c1 and z5\0\0c2..z5\0\0
+ ..controls z5\0\1c1 and z5\0\1c2..z5\0\1
+ ..controls z5\0\2c1 and z5\0\2c2..z5\0\2
+ ..controls z5\0\3c1 and z5\0\3c2..z5\0\3
+ ..controls z5\0\4c1 and z5\0\4c2..z5\0\4
+ ..controls z5\0\5c1 and z5\0\5c2..z5\0\5
+ ..controls z5\0\6c1 and z5\0\6c2..z5\0\6
+ --cycle;
+ proof_labels (
+ 5\0\0,
+ 5\0\1,
+ 5\0\2,
+ 5\0\3,
+ 5\0\4,
+ 5\0\5,
+ 5\0\6,
+ 5\0\7,
+);
+endchar;
+
+beginchar (54, 9.636u#, 6.745u#, 1.204u#);
+ "six";
+ z6\0\0s = (0.482u,3.132u);
+ z6\0\0c1 = (1.954u,-0.847u);
+ z6\0\0c2 = (9.095u,-2.917u);
+ z6\0\0 = (9.146u,1.445u);
+ z6\0\1c1 = (9.187u,4.936u);
+ z6\0\1c2 = (4.163u,2.372u);
+ z6\0\1 = (4.519u,4.787u);
+ z6\0\2c1 = (4.703u,6.033u);
+ z6\0\2c2 = (7.830u,5.338u);
+ z6\0\2 = (8.672u,5.300u);
+ z6\0\3c1 = (7.935u,7.468u);
+ z6\0\3c2 = (4.163u,7.008u);
+ z6\0\3 = (3.739u,4.817u);
+ z6\0\4c1 = (3.090u,1.461u);
+ z6\0\4c2 = (7.771u,2.732u);
+ z6\0\4 = (8.440u,1.612u);
+ z6\0\5c1 = (9.174u,0.382u);
+ z6\0\5c2 = (7.208u,0.218u);
+ z6\0\5 = (6.504u,0.282u);
+ z6\0\6c1 = (2.314u,0.660u);
+ z6\0\6c2 = (2.663u,2.477u);
+ fill_or_unfill z6\0\0s
+ ..controls z6\0\0c1 and z6\0\0c2..z6\0\0
+ ..controls z6\0\1c1 and z6\0\1c2..z6\0\1
+ ..controls z6\0\2c1 and z6\0\2c2..z6\0\2
+ ..controls z6\0\3c1 and z6\0\3c2..z6\0\3
+ ..controls z6\0\4c1 and z6\0\4c2..z6\0\4
+ ..controls z6\0\5c1 and z6\0\5c2..z6\0\5
+ ..controls z6\0\6c1 and z6\0\6c2..cycle;
+ proof_labels (
+ 6\0\0,
+ 6\0\1,
+ 6\0\2,
+ 6\0\3,
+ 6\0\4,
+ 6\0\5,
+ 6\0\6,
+);
+endchar;
+
+beginchar (55, 7.709u#, 6.745u#, 1.445u#);
+ "seven";
+ z7\0\0s = (6.281u,6.745u);
+ z7\0\0c1 = (6.115u,5.810u);
+ z7\0\0c2 = (6.410u,4.996u);
+ z7\0\0 = (6.281u,4.095u);
+ z7\0\1c1 = (6.047u,2.048u);
+ z7\0\1c2 = (3.916u,-0.946u);
+ z7\0\1 = (1.686u,-0.482u);
+ z7\0\2c1 = (2.400u,1.396u);
+ z7\0\2c2 = (4.044u,2.930u);
+ z7\0\2 = (3.828u,5.049u);
+ z7\0\3c1 = (3.619u,7.104u);
+ z7\0\3c2 = (1.272u,6.730u);
+ z7\0\3 = (0.723u,5.049u);
+ z7\0\4c1 = (1.223u,5.273u);
+ z7\0\4c2 = (2.499u,6.203u);
+ z7\0\4 = (2.456u,5.049u);
+ z7\0\5c1 = (2.401u,3.566u);
+ z7\0\5c2 = (-0.015u,1.531u);
+ z7\0\5 = (0.663u,-0.227u);
+ z7\0\6c1 = (1.912u,-3.464u);
+ z7\0\6c2 = (8.676u,1.598u);
+ z7\0\6 = (6.745u,6.745u);
+ fill_or_unfill z7\0\0s
+ ..controls z7\0\0c1 and z7\0\0c2..z7\0\0
+ ..controls z7\0\1c1 and z7\0\1c2..z7\0\1
+ ..controls z7\0\2c1 and z7\0\2c2..z7\0\2
+ ..controls z7\0\3c1 and z7\0\3c2..z7\0\3
+ ..controls z7\0\4c1 and z7\0\4c2..z7\0\4
+ ..controls z7\0\5c1 and z7\0\5c2..z7\0\5
+ ..controls z7\0\6c1 and z7\0\6c2..z7\0\6
+ --cycle;
+ proof_labels (
+ 7\0\0,
+ 7\0\1,
+ 7\0\2,
+ 7\0\3,
+ 7\0\4,
+ 7\0\5,
+ 7\0\6,
+ 7\0\7,
+);
+endchar;
+
+beginchar (56, 6.986u#, 6.504u#, 0.241u#);
+ "eight";
+ z8\0\0s = (2.650u,6.504u);
+ z8\0\0c1 = (2.140u,4.267u);
+ z8\0\0c2 = (0.997u,2.189u);
+ z8\0\0 = (0.482u,0.000u);
+ z8\0\1c1 = (2.427u,0.463u);
+ z8\0\1c2 = (4.487u,0.000u);
+ z8\0\1 = (6.504u,0.000u);
+ z8\0\2c1 = (5.284u,1.075u);
+ z8\0\2c2 = (3.236u,1.475u);
+ z8\0\2 = (1.686u,1.927u);
+ z8\0\3c1 = (2.325u,3.175u);
+ z8\0\3c2 = (3.219u,5.134u);
+ z8\0\3 = (3.372u,6.504u);
+ fill_or_unfill z8\0\0s
+ ..controls z8\0\0c1 and z8\0\0c2..z8\0\0
+ ..controls z8\0\1c1 and z8\0\1c2..z8\0\1
+ ..controls z8\0\2c1 and z8\0\2c2..z8\0\2
+ ..controls z8\0\3c1 and z8\0\3c2..z8\0\3
+ --cycle;
+ proof_labels (
+ 8\0\0,
+ 8\0\1,
+ 8\0\2,
+ 8\0\3,
+ 8\0\4,
+);
+endchar;
+
+beginchar (57, 8.672u#, 6.745u#, 0.964u#);
+ "nine";
+ z9\0\0s = (1.445u,-0.241u);
+ z9\0\0c1 = (1.234u,0.696u);
+ z9\0\0c2 = (0.854u,1.675u);
+ z9\0\0 = (1.019u,2.650u);
+ z9\0\1c1 = (1.535u,5.694u);
+ z9\0\1c2 = (6.637u,5.710u);
+ z9\0\1 = (7.338u,4.044u);
+ z9\0\2c1 = (8.645u,0.945u);
+ z9\0\2c2 = (2.183u,4.283u);
+ z9\0\2 = (2.273u,0.725u);
+ z9\0\3c1 = (2.323u,-1.224u);
+ z9\0\3c2 = (7.258u,-1.711u);
+ z9\0\3 = (8.190u,1.445u);
+ z9\0\4c1 = (7.194u,0.927u);
+ z9\0\4c2 = (4.187u,-0.879u);
+ z9\0\4 = (3.399u,1.017u);
+ z9\0\5c1 = (2.300u,3.660u);
+ z9\0\5c2 = (9.290u,0.209u);
+ z9\0\5 = (8.115u,4.814u);
+ z9\0\6c1 = (7.533u,7.092u);
+ z9\0\6c2 = (3.540u,7.113u);
+ z9\0\6 = (2.021u,5.848u);
+ z9\0\7c1 = (0.627u,4.687u);
+ z9\0\7c2 = (-0.337u,0.920u);
+ fill_or_unfill z9\0\0s
+ ..controls z9\0\0c1 and z9\0\0c2..z9\0\0
+ ..controls z9\0\1c1 and z9\0\1c2..z9\0\1
+ ..controls z9\0\2c1 and z9\0\2c2..z9\0\2
+ ..controls z9\0\3c1 and z9\0\3c2..z9\0\3
+ ..controls z9\0\4c1 and z9\0\4c2..z9\0\4
+ ..controls z9\0\5c1 and z9\0\5c2..z9\0\5
+ ..controls z9\0\6c1 and z9\0\6c2..z9\0\6
+ ..controls z9\0\7c1 and z9\0\7c2..cycle;
+ proof_labels (
+ 9\0\0,
+ 9\0\1,
+ 9\0\2,
+ 9\0\3,
+ 9\0\4,
+ 9\0\5,
+ 9\0\6,
+ 9\0\7,
+);
+endchar;
+
+%%
+% changes by Norbert Preining to get tsu on the correct high
+transform tt;
+tt:=currenttransform;
+currenttransform:=identity shifted (0,2.891u);
+% was:
+%beginchar (248, 10.359u#, 6.745u#, 7.709u#);
+% is:
+beginchar (248, 10.359u#, 9.636u#, 7.709u#);
+ "tsu";
+ z13\0\0s = (7.468u,3.854u);
+ z13\0\0c1 = (5.686u,3.854u);
+ z13\0\0c2 = (2.591u,4.538u);
+ z13\0\0 = (1.927u,2.409u);
+ z13\0\1c1 = (2.514u,2.409u);
+ z13\0\1c2 = (4.066u,2.478u);
+ z13\0\1 = (4.538u,2.265u);
+ z13\0\2c1 = (6.125u,1.548u);
+ z13\0\2c2 = (4.002u,0.081u);
+ z13\0\2 = (3.132u,-0.055u);
+ z13\0\3c1 = (2.346u,-0.282u);
+ z13\0\3c2 = (1.513u,-0.064u);
+ z13\0\3 = (0.723u,-0.055u);
+ z13\0\4c1 = (0.941u,-0.690u);
+ z13\0\4c2 = (1.315u,-1.084u);
+ z13\0\4 = (1.673u,-1.696u);
+ z13\0\5c1 = (3.295u,-4.464u);
+ z13\0\5c2 = (3.988u,-4.761u);
+ z13\0\5 = (7.227u,-4.336u);
+ z13\0\6c1 = (6.804u,-5.139u);
+ z13\0\6c2 = (6.774u,-5.367u);
+ z13\0\6 = (6.745u,-6.263u);
+ z13\0\7 = (8.913u,-4.577u);
+ z13\0\8c1 = (9.604u,-8.791u);
+ z13\0\8c2 = (3.171u,-5.179u);
+ z13\0\8 = (1.980u,-3.844u);
+ z13\0\9c1 = (1.406u,-3.200u);
+ z13\0\9c2 = (1.245u,-2.639u);
+ z13\0\9 = (0.482u,-2.168u);
+ z13\0\10c1 = (1.205u,-7.456u);
+ z13\0\10c2 = (9.401u,-9.038u);
+ z13\0\10 = (9.841u,-6.012u);
+ z13\0\11c1 = (10.086u,-4.321u);
+ z13\0\11c2 = (9.079u,-4.131u);
+ z13\0\11 = (7.709u,-4.095u);
+ z13\0\12c1 = (10.537u,-0.952u);
+ z13\0\12c2 = (5.994u,0.151u);
+ z13\0\12 = (6.205u,1.651u);
+ z13\0\13c1 = (6.327u,2.517u);
+ z13\0\13c2 = (7.551u,2.249u);
+ z13\0\13 = (8.045u,2.655u);
+ z13\0\14c1 = (8.626u,3.132u);
+ z13\0\14c2 = (8.132u,3.924u);
+ z13\0\14 = (8.444u,4.502u);
+ z13\0\15c1 = (8.990u,5.517u);
+ z13\0\15c2 = (9.797u,4.485u);
+ z13\0\15 = (9.877u,6.745u);
+ z13\0\16c1 = (7.543u,6.503u);
+ z13\0\16c2 = (7.470u,5.978u);
+ z13\1\0s = (3.132u,-0.723u);
+ z13\1\0c1 = (4.713u,-0.231u);
+ z13\1\0c2 = (4.961u,-0.011u);
+ z13\1\0 = (6.268u,-1.249u);
+ z13\1\1c1 = (9.105u,-3.935u);
+ z13\1\1c2 = (5.459u,-5.415u);
+ z13\1\1 = (3.806u,-2.409u);
+ z13\1\2c1 = (3.504u,-1.860u);
+ z13\1\2c2 = (3.302u,-1.322u);
+ fill_or_unfill z13\0\0s
+ ..controls z13\0\0c1 and z13\0\0c2..z13\0\0
+ ..controls z13\0\1c1 and z13\0\1c2..z13\0\1
+ ..controls z13\0\2c1 and z13\0\2c2..z13\0\2
+ ..controls z13\0\3c1 and z13\0\3c2..z13\0\3
+ ..controls z13\0\4c1 and z13\0\4c2..z13\0\4
+ ..controls z13\0\5c1 and z13\0\5c2..z13\0\5
+ ..controls z13\0\6c1 and z13\0\6c2..z13\0\6
+ --z13\0\7
+ ..controls z13\0\8c1 and z13\0\8c2..z13\0\8
+ ..controls z13\0\9c1 and z13\0\9c2..z13\0\9
+ ..controls z13\0\10c1 and z13\0\10c2..z13\0\10
+ ..controls z13\0\11c1 and z13\0\11c2..z13\0\11
+ ..controls z13\0\12c1 and z13\0\12c2..z13\0\12
+ ..controls z13\0\13c1 and z13\0\13c2..z13\0\13
+ ..controls z13\0\14c1 and z13\0\14c2..z13\0\14
+ ..controls z13\0\15c1 and z13\0\15c2..z13\0\15
+ ..controls z13\0\16c1 and z13\0\16c2..cycle;
+ fill_or_unfill z13\1\0s
+ ..controls z13\1\0c1 and z13\1\0c2..z13\1\0
+ ..controls z13\1\1c1 and z13\1\1c2..z13\1\1
+ ..controls z13\1\2c1 and z13\1\2c2..cycle;
+ proof_labels (
+ 13\0\0,
+ 13\0\1,
+ 13\0\2,
+ 13\0\3,
+ 13\0\4,
+ 13\0\5,
+ 13\0\6,
+ 13\0\7,
+ 13\0\8,
+ 13\0\9,
+ 13\0\10,
+ 13\0\11,
+ 13\0\12,
+ 13\0\13,
+ 13\0\14,
+ 13\0\15,
+ 13\0\16,
+ 13\1\0,
+ 13\1\1,
+ 13\1\2,
+);
+endchar;
+% resetting of the correct transformation
+currenttransform:=tt;
+
+beginchar (249, 10.359u#, 6.745u#, 7.709u#);
+ "cu";
+ z14\0\0s = (1.927u,5.300u);
+ z14\0\0c1 = (7.449u,5.300u);
+ z14\0\0c2 = (4.881u,2.343u);
+ z14\0\0 = (0.723u,2.891u);
+ z14\0\1c1 = (2.357u,-0.433u);
+ z14\0\1c2 = (2.624u,-1.445u);
+ z14\0\1 = (6.504u,-1.445u);
+ z14\0\2 = (6.504u,-2.409u);
+ z14\0\3 = (8.190u,-1.686u);
+ z14\0\4c1 = (7.999u,-5.354u);
+ z14\0\4c2 = (2.870u,-1.866u);
+ z14\0\4 = (1.838u,-0.483u);
+ z14\0\5c1 = (1.307u,0.229u);
+ z14\0\5c2 = (1.286u,0.496u);
+ z14\0\5 = (0.482u,0.964u);
+ z14\0\6c1 = (1.564u,-1.736u);
+ z14\0\6c2 = (3.293u,-4.084u);
+ z14\0\6 = (6.504u,-4.088u);
+ z14\0\7c1 = (7.113u,-4.089u);
+ z14\0\7c2 = (8.075u,-4.015u);
+ z14\0\7 = (8.569u,-3.629u);
+ z14\0\8c1 = (9.948u,-2.551u);
+ z14\0\8c2 = (8.917u,-1.134u);
+ z14\0\8 = (7.468u,-0.964u);
+ z14\0\9c1 = (9.975u,2.431u);
+ z14\0\9c2 = (6.701u,2.421u);
+ z14\0\9 = (6.063u,4.100u);
+ z14\0\10c1 = (5.419u,5.795u);
+ z14\0\10c2 = (7.992u,4.375u);
+ z14\0\10 = (8.190u,6.745u);
+ z14\0\11c1 = (6.089u,6.745u);
+ z14\0\11c2 = (2.971u,7.511u);
+ z14\1\0s = (2.650u,2.409u);
+ z14\1\0c1 = (3.246u,2.501u);
+ z14\1\0c2 = (3.988u,2.779u);
+ z14\1\0 = (4.576u,2.741u);
+ z14\1\1c1 = (5.231u,2.699u);
+ z14\1\1c2 = (5.679u,2.297u);
+ z14\1\1 = (6.121u,1.854u);
+ z14\1\2c1 = (8.845u,-0.872u);
+ z14\1\2c2 = (5.527u,-2.222u);
+ z14\1\2 = (3.846u,0.245u);
+ fill_or_unfill z14\0\0s
+ ..controls z14\0\0c1 and z14\0\0c2..z14\0\0
+ ..controls z14\0\1c1 and z14\0\1c2..z14\0\1
+ --z14\0\2
+ --z14\0\3
+ ..controls z14\0\4c1 and z14\0\4c2..z14\0\4
+ ..controls z14\0\5c1 and z14\0\5c2..z14\0\5
+ ..controls z14\0\6c1 and z14\0\6c2..z14\0\6
+ ..controls z14\0\7c1 and z14\0\7c2..z14\0\7
+ ..controls z14\0\8c1 and z14\0\8c2..z14\0\8
+ ..controls z14\0\9c1 and z14\0\9c2..z14\0\9
+ ..controls z14\0\10c1 and z14\0\10c2..z14\0\10
+ ..controls z14\0\11c1 and z14\0\11c2..cycle;
+ fill_or_unfill z14\1\0s
+ ..controls z14\1\0c1 and z14\1\0c2..z14\1\0
+ ..controls z14\1\1c1 and z14\1\1c2..z14\1\1
+ ..controls z14\1\2c1 and z14\1\2c2..z14\1\2
+ --cycle;
+ proof_labels (
+ 14\0\0,
+ 14\0\1,
+ 14\0\2,
+ 14\0\3,
+ 14\0\4,
+ 14\0\5,
+ 14\0\6,
+ 14\0\7,
+ 14\0\8,
+ 14\0\9,
+ 14\0\10,
+ 14\0\11,
+ 14\1\0,
+ 14\1\1,
+ 14\1\2,
+ 14\1\3,
+);
+endchar;
+
+beginchar (232, 8.672u#, 6.745u#, 10.118u#);
+ "dha";
+ z20\0\0s = (7.468u,-0.482u);
+ z20\0\0c1 = (3.241u,-0.482u);
+ z20\0\0c2 = (1.686u,0.581u);
+ z20\0\0 = (1.445u,-4.577u);
+ z20\0\1c1 = (3.050u,-5.052u);
+ z20\0\1c2 = (3.326u,-5.810u);
+ z20\0\1 = (4.577u,-6.745u);
+ z20\0\2c1 = (4.316u,-2.917u);
+ z20\0\2c2 = (7.354u,-4.659u);
+ z20\0\2 = (7.379u,-6.504u);
+ z20\0\3c1 = (7.394u,-7.625u);
+ z20\0\3c2 = (6.571u,-8.799u);
+ z20\0\3 = (6.263u,-9.877u);
+ z20\0\4c1 = (8.406u,-8.630u);
+ z20\0\4c2 = (9.440u,-2.265u);
+ z20\0\4 = (5.782u,-2.958u);
+ z20\0\5c1 = (4.885u,-3.128u);
+ z20\0\5c2 = (4.495u,-3.571u);
+ z20\0\5 = (4.095u,-4.336u);
+ z20\0\6c1 = (-0.572u,-1.359u);
+ z20\0\6c2 = (6.617u,-1.927u);
+ z20\0\6 = (8.190u,-1.927u);
+ z20\0\7c1 = (7.916u,2.118u);
+ z20\0\7c2 = (5.467u,3.611u);
+ z20\0\7 = (1.686u,3.613u);
+ z20\0\8c1 = (2.065u,5.882u);
+ z20\0\8c2 = (4.739u,5.300u);
+ z20\0\8 = (6.504u,5.300u);
+ z20\0\9c1 = (6.469u,5.723u);
+ z20\0\9c2 = (6.491u,6.205u);
+ z20\0\9 = (6.119u,6.499u);
+ z20\0\10c1 = (5.487u,6.999u);
+ z20\0\10c2 = (1.666u,6.902u);
+ z20\0\10 = (1.163u,6.188u);
+ z20\0\11c1 = (0.831u,5.585u);
+ z20\0\11c2 = (1.211u,4.781u);
+ z20\0\11 = (1.163u,4.117u);
+ z20\0\12c1 = (1.036u,3.605u);
+ z20\0\12c2 = (0.496u,2.962u);
+ z20\0\12 = (0.660u,2.479u);
+ z20\0\13c1 = (0.896u,1.785u);
+ z20\0\13c2 = (2.744u,2.190u);
+ z20\0\13 = (3.372u,2.158u);
+ z20\0\14c1 = (5.170u,2.066u);
+ z20\0\14c2 = (6.694u,1.151u);
+ fill_or_unfill z20\0\0s
+ ..controls z20\0\0c1 and z20\0\0c2..z20\0\0
+ ..controls z20\0\1c1 and z20\0\1c2..z20\0\1
+ ..controls z20\0\2c1 and z20\0\2c2..z20\0\2
+ ..controls z20\0\3c1 and z20\0\3c2..z20\0\3
+ ..controls z20\0\4c1 and z20\0\4c2..z20\0\4
+ ..controls z20\0\5c1 and z20\0\5c2..z20\0\5
+ ..controls z20\0\6c1 and z20\0\6c2..z20\0\6
+ ..controls z20\0\7c1 and z20\0\7c2..z20\0\7
+ ..controls z20\0\8c1 and z20\0\8c2..z20\0\8
+ ..controls z20\0\9c1 and z20\0\9c2..z20\0\9
+ ..controls z20\0\10c1 and z20\0\10c2..z20\0\10
+ ..controls z20\0\11c1 and z20\0\11c2..z20\0\11
+ ..controls z20\0\12c1 and z20\0\12c2..z20\0\12
+ ..controls z20\0\13c1 and z20\0\13c2..z20\0\13
+ ..controls z20\0\14c1 and z20\0\14c2..cycle;
+ proof_labels (
+ 20\0\0,
+ 20\0\1,
+ 20\0\2,
+ 20\0\3,
+ 20\0\4,
+ 20\0\5,
+ 20\0\6,
+ 20\0\7,
+ 20\0\8,
+ 20\0\9,
+ 20\0\10,
+ 20\0\11,
+ 20\0\12,
+ 20\0\13,
+ 20\0\14,
+);
+endchar;
+
+beginchar (233, 10.359u#, 6.745u#, 9.877u#);
+ "gha";
+ z21\0\0s = (0.948u,1.927u);
+ z21\0\0c1 = (3.858u,2.420u);
+ z21\0\0c2 = (3.885u,1.205u);
+ z21\0\0 = (6.263u,0.723u);
+ z21\0\1c1 = (6.270u,2.970u);
+ z21\0\1c2 = (5.885u,5.264u);
+ z21\0\1 = (8.672u,5.300u);
+ z21\0\2 = (8.913u,-0.723u);
+ z21\0\3c1 = (7.913u,-0.723u);
+ z21\0\3c2 = (3.363u,-0.536u);
+ z21\0\3 = (2.790u,-0.969u);
+ z21\0\4c1 = (2.357u,-1.296u);
+ z21\0\4c2 = (1.322u,-3.960u);
+ z21\0\4 = (1.204u,-4.577u);
+ z21\0\5c1 = (3.926u,-4.490u);
+ z21\0\5c2 = (3.931u,-5.027u);
+ z21\0\5 = (6.022u,-6.504u);
+ z21\0\6c1 = (6.168u,-2.338u);
+ z21\0\6c2 = (11.966u,-5.699u);
+ z21\0\6 = (6.504u,-9.395u);
+ z21\0\7c1 = (8.767u,-10.183u);
+ z21\0\7c2 = (10.731u,-5.478u);
+ z21\0\7 = (9.492u,-3.921u);
+ z21\0\8c1 = (7.921u,-1.947u);
+ z21\0\8c2 = (5.692u,-4.230u);
+ z21\0\8 = (5.140u,-4.170u);
+ z21\0\9c1 = (4.591u,-4.111u);
+ z21\0\9c2 = (3.750u,-3.096u);
+ z21\0\9 = (2.409u,-2.891u);
+ z21\0\10c1 = (4.191u,-1.716u);
+ z21\0\10c2 = (7.058u,-2.168u);
+ z21\0\10 = (9.154u,-2.168u);
+ z21\0\11c1 = (9.205u,-1.061u);
+ z21\0\11c2 = (9.927u,5.936u);
+ z21\0\11 = (9.621u,6.360u);
+ z21\0\12c1 = (9.299u,6.806u);
+ z21\0\12c2 = (8.439u,6.742u);
+ z21\0\12 = (7.950u,6.745u);
+ z21\0\13c1 = (6.748u,6.753u);
+ z21\0\13c2 = (0.799u,7.170u);
+ z21\0\13 = (0.585u,6.009u);
+ z21\0\14c1 = (0.495u,5.523u);
+ z21\0\14c2 = (0.870u,4.844u);
+ z21\0\14 = (0.948u,4.327u);
+ z21\1\0s = (5.782u,1.686u);
+ z21\1\0 = (1.716u,3.748u);
+ z21\1\1c1 = (0.886u,5.136u);
+ z21\1\1c2 = (5.711u,7.581u);
+ fill_or_unfill z21\0\0s
+ ..controls z21\0\0c1 and z21\0\0c2..z21\0\0
+ ..controls z21\0\1c1 and z21\0\1c2..z21\0\1
+ --z21\0\2
+ ..controls z21\0\3c1 and z21\0\3c2..z21\0\3
+ ..controls z21\0\4c1 and z21\0\4c2..z21\0\4
+ ..controls z21\0\5c1 and z21\0\5c2..z21\0\5
+ ..controls z21\0\6c1 and z21\0\6c2..z21\0\6
+ ..controls z21\0\7c1 and z21\0\7c2..z21\0\7
+ ..controls z21\0\8c1 and z21\0\8c2..z21\0\8
+ ..controls z21\0\9c1 and z21\0\9c2..z21\0\9
+ ..controls z21\0\10c1 and z21\0\10c2..z21\0\10
+ ..controls z21\0\11c1 and z21\0\11c2..z21\0\11
+ ..controls z21\0\12c1 and z21\0\12c2..z21\0\12
+ ..controls z21\0\13c1 and z21\0\13c2..z21\0\13
+ ..controls z21\0\14c1 and z21\0\14c2..z21\0\14
+ --cycle;
+ fill_or_unfill z21\1\0s
+ --z21\1\0
+ ..controls z21\1\1c1 and z21\1\1c2..cycle;
+ proof_labels (
+ 21\0\0,
+ 21\0\1,
+ 21\0\2,
+ 21\0\3,
+ 21\0\4,
+ 21\0\5,
+ 21\0\6,
+ 21\0\7,
+ 21\0\8,
+ 21\0\9,
+ 21\0\10,
+ 21\0\11,
+ 21\0\12,
+ 21\0\13,
+ 21\0\14,
+ 21\0\15,
+ 21\1\0,
+ 21\1\1,
+);
+endchar;
+
+beginchar (236, 9.877u#, 6.745u#, 10.359u#);
+ "dxha";
+ z22\0\0s = (3.132u,5.300u);
+ z22\0\0c1 = (4.889u,5.300u);
+ z22\0\0c2 = (6.941u,5.822u);
+ z22\0\0 = (7.950u,4.095u);
+ z22\0\1c1 = (5.468u,3.491u);
+ z22\0\1c2 = (1.642u,3.549u);
+ z22\0\1 = (0.630u,0.483u);
+ z22\0\2c1 = (0.339u,-0.401u);
+ z22\0\2c2 = (0.775u,-0.775u);
+ z22\0\2 = (1.445u,-1.204u);
+ z22\0\3c1 = (1.145u,-2.130u);
+ z22\0\3c2 = (0.986u,-2.879u);
+ z22\0\3 = (0.964u,-3.854u);
+ z22\0\4c1 = (4.417u,-3.885u);
+ z22\0\4c2 = (3.972u,-4.849u);
+ z22\0\4 = (6.504u,-6.263u);
+ z22\0\5c1 = (6.334u,-5.687u);
+ z22\0\5c2 = (5.369u,-4.035u);
+ z22\0\5 = (5.446u,-3.693u);
+ z22\0\6c1 = (5.735u,-2.402u);
+ z22\0\6c2 = (7.542u,-4.224u);
+ z22\0\6 = (7.772u,-4.819u);
+ z22\0\7c1 = (8.452u,-6.577u);
+ z22\0\7c2 = (7.437u,-8.556u);
+ z22\0\7 = (6.745u,-10.118u);
+ z22\0\8c1 = (8.459u,-9.128u);
+ z22\0\8c2 = (8.743u,-5.927u);
+ z22\0\8 = (8.668u,-4.095u);
+ z22\0\9c1 = (8.564u,-1.574u);
+ z22\0\9c2 = (6.002u,-1.324u);
+ z22\0\9 = (4.818u,-3.372u);
+ z22\0\10c1 = (3.760u,-2.864u);
+ z22\0\10c2 = (2.802u,-2.317u);
+ z22\0\10 = (1.686u,-1.927u);
+ z22\0\11c1 = (3.780u,0.251u);
+ z22\0\11c2 = (6.987u,-2.386u);
+ z22\0\11 = (7.468u,0.482u);
+ z22\0\12 = (0.964u,0.482u);
+ z22\0\13c1 = (4.962u,3.577u);
+ z22\0\13c2 = (4.650u,2.777u);
+ z22\0\13 = (9.154u,2.409u);
+ z22\0\14 = (8.431u,5.300u);
+ z22\0\15c1 = (9.211u,5.573u);
+ z22\0\15c2 = (9.748u,6.341u);
+ z22\0\15 = (8.637u,6.669u);
+ z22\0\16c1 = (7.966u,6.868u);
+ z22\0\16c2 = (4.230u,6.822u);
+ z22\0\16 = (3.689u,6.462u);
+ z22\0\17c1 = (3.242u,6.165u);
+ z22\0\17c2 = (3.214u,5.780u);
+ fill_or_unfill z22\0\0s
+ ..controls z22\0\0c1 and z22\0\0c2..z22\0\0
+ ..controls z22\0\1c1 and z22\0\1c2..z22\0\1
+ ..controls z22\0\2c1 and z22\0\2c2..z22\0\2
+ ..controls z22\0\3c1 and z22\0\3c2..z22\0\3
+ ..controls z22\0\4c1 and z22\0\4c2..z22\0\4
+ ..controls z22\0\5c1 and z22\0\5c2..z22\0\5
+ ..controls z22\0\6c1 and z22\0\6c2..z22\0\6
+ ..controls z22\0\7c1 and z22\0\7c2..z22\0\7
+ ..controls z22\0\8c1 and z22\0\8c2..z22\0\8
+ ..controls z22\0\9c1 and z22\0\9c2..z22\0\9
+ ..controls z22\0\10c1 and z22\0\10c2..z22\0\10
+ ..controls z22\0\11c1 and z22\0\11c2..z22\0\11
+ --z22\0\12
+ ..controls z22\0\13c1 and z22\0\13c2..z22\0\13
+ --z22\0\14
+ ..controls z22\0\15c1 and z22\0\15c2..z22\0\15
+ ..controls z22\0\16c1 and z22\0\16c2..z22\0\16
+ ..controls z22\0\17c1 and z22\0\17c2..cycle;
+ proof_labels (
+ 22\0\0,
+ 22\0\1,
+ 22\0\2,
+ 22\0\3,
+ 22\0\4,
+ 22\0\5,
+ 22\0\6,
+ 22\0\7,
+ 22\0\8,
+ 22\0\9,
+ 22\0\10,
+ 22\0\11,
+ 22\0\12,
+ 22\0\13,
+ 22\0\14,
+ 22\0\15,
+ 22\0\16,
+ 22\0\17,
+);
+endchar;
+
+beginchar (237, 8.672u#, 6.745u#, 10.600u#);
+ "bha";
+ z23\0\0s = (1.927u,5.059u);
+ z23\0\0c1 = (1.216u,3.121u);
+ z23\0\0c2 = (0.533u,2.747u);
+ z23\0\0 = (0.482u,0.482u);
+ z23\0\1c1 = (4.572u,1.111u);
+ z23\0\1c2 = (4.019u,0.816u);
+ z23\0\1 = (7.709u,-0.723u);
+ z23\0\2c1 = (3.893u,-1.806u);
+ z23\0\2c2 = (1.967u,0.966u);
+ z23\0\2 = (1.686u,-5.059u);
+ z23\0\3c1 = (3.291u,-5.533u);
+ z23\0\3c2 = (3.567u,-6.292u);
+ z23\0\3 = (4.818u,-7.227u);
+ z23\0\4c1 = (4.557u,-3.399u);
+ z23\0\4c2 = (7.595u,-5.141u);
+ z23\0\4 = (7.619u,-6.986u);
+ z23\0\5c1 = (7.635u,-8.107u);
+ z23\0\5c2 = (6.812u,-9.280u);
+ z23\0\5 = (6.504u,-10.359u);
+ z23\0\6c1 = (8.522u,-9.184u);
+ z23\0\6c2 = (9.381u,-2.804u);
+ z23\0\6 = (6.023u,-3.440u);
+ z23\0\7c1 = (5.126u,-3.610u);
+ z23\0\7c2 = (4.735u,-4.053u);
+ z23\0\7 = (4.336u,-4.818u);
+ z23\0\8c1 = (-0.263u,-1.884u);
+ z23\0\8c2 = (6.601u,-2.409u);
+ z23\0\8 = (8.190u,-2.409u);
+ z23\0\9 = (8.190u,6.718u);
+ z23\0\10c1 = (6.418u,6.745u);
+ z23\0\10c2 = (4.132u,7.022u);
+ z23\0\10 = (2.419u,6.718u);
+ z23\0\11c1 = (1.468u,6.507u);
+ z23\0\11c2 = (0.753u,5.553u);
+ z23\1\0s = (7.950u,-0.241u);
+ z23\1\0c1 = (5.446u,1.495u);
+ z23\1\0c2 = (4.908u,2.406u);
+ z23\1\0 = (1.686u,2.409u);
+ z23\1\1c1 = (1.954u,4.713u);
+ z23\1\1c2 = (3.443u,5.331u);
+ z23\1\1 = (5.540u,5.299u);
+ z23\1\2c1 = (6.211u,5.289u);
+ z23\1\2c2 = (6.703u,5.324u);
+ z23\1\2 = (7.158u,4.747u);
+ z23\1\3c1 = (7.975u,3.711u);
+ z23\1\3c2 = (7.950u,1.064u);
+ fill_or_unfill z23\0\0s
+ ..controls z23\0\0c1 and z23\0\0c2..z23\0\0
+ ..controls z23\0\1c1 and z23\0\1c2..z23\0\1
+ ..controls z23\0\2c1 and z23\0\2c2..z23\0\2
+ ..controls z23\0\3c1 and z23\0\3c2..z23\0\3
+ ..controls z23\0\4c1 and z23\0\4c2..z23\0\4
+ ..controls z23\0\5c1 and z23\0\5c2..z23\0\5
+ ..controls z23\0\6c1 and z23\0\6c2..z23\0\6
+ ..controls z23\0\7c1 and z23\0\7c2..z23\0\7
+ ..controls z23\0\8c1 and z23\0\8c2..z23\0\8
+ --z23\0\9
+ ..controls z23\0\10c1 and z23\0\10c2..z23\0\10
+ ..controls z23\0\11c1 and z23\0\11c2..cycle;
+ fill_or_unfill z23\1\0s
+ ..controls z23\1\0c1 and z23\1\0c2..z23\1\0
+ ..controls z23\1\1c1 and z23\1\1c2..z23\1\1
+ ..controls z23\1\2c1 and z23\1\2c2..z23\1\2
+ ..controls z23\1\3c1 and z23\1\3c2..cycle;
+ proof_labels (
+ 23\0\0,
+ 23\0\1,
+ 23\0\2,
+ 23\0\3,
+ 23\0\4,
+ 23\0\5,
+ 23\0\6,
+ 23\0\7,
+ 23\0\8,
+ 23\0\9,
+ 23\0\10,
+ 23\0\11,
+ 23\1\0,
+ 23\1\1,
+ 23\1\2,
+ 23\1\3,
+);
+endchar;
+
+beginchar (238, 9.636u#, 6.745u#, 13.009u#);
+ "dzha";
+ z24\0\0s = (0.482u,-3.372u);
+ z24\0\0c1 = (3.839u,-3.070u);
+ z24\0\0c2 = (5.752u,-0.887u);
+ z24\0\0 = (8.672u,-4.336u);
+ z24\0\1c1 = (7.593u,-4.336u);
+ z24\0\1c2 = (2.179u,-4.085u);
+ z24\0\1 = (1.696u,-4.755u);
+ z24\0\2 = (1.204u,-8.190u);
+ z24\0\3c1 = (3.176u,-8.640u);
+ z24\0\3c2 = (4.765u,-9.165u);
+ z24\0\3 = (5.300u,-11.322u);
+ z24\0\4c1 = (6.487u,-10.527u);
+ z24\0\4c2 = (5.675u,-9.450u);
+ z24\0\4 = (6.576u,-8.851u);
+ z24\0\5c1 = (7.294u,-8.375u);
+ z24\0\5c2 = (7.830u,-9.224u);
+ z24\0\5 = (7.801u,-9.878u);
+ z24\0\6c1 = (7.763u,-10.743u);
+ z24\0\6c2 = (6.835u,-11.902u);
+ z24\0\6 = (6.504u,-12.768u);
+ z24\0\7c1 = (9.540u,-11.873u);
+ z24\0\7c2 = (10.257u,-6.436u);
+ z24\0\7 = (6.745u,-6.828u);
+ z24\0\8c1 = (5.853u,-6.927u);
+ z24\0\8c2 = (5.482u,-7.191u);
+ z24\0\8 = (5.059u,-7.950u);
+ z24\0\9c1 = (4.582u,-7.675u);
+ z24\0\9c2 = (0.876u,-6.223u);
+ z24\0\9 = (3.378u,-5.800u);
+ z24\0\10 = (4.095u,-5.800u);
+ z24\0\11c1 = (4.959u,-5.767u);
+ z24\0\11c2 = (7.757u,-5.934u);
+ z24\0\11 = (8.356u,-5.535u);
+ z24\0\12c1 = (10.064u,-4.397u);
+ z24\0\12c2 = (8.071u,-2.114u);
+ z24\0\12 = (6.745u,-1.650u);
+ z24\0\13c1 = (4.849u,-0.986u);
+ z24\0\13c2 = (3.122u,-1.357u);
+ z24\0\13 = (1.204u,-1.445u);
+ z24\0\14 = (1.204u,0.241u);
+ z24\0\15 = (6.986u,0.241u);
+ z24\0\16 = (6.986u,1.686u);
+ z24\0\17 = (1.204u,1.686u);
+ z24\0\18 = (1.204u,3.132u);
+ z24\0\19 = (6.986u,3.132u);
+ z24\0\20c1 = (6.979u,3.832u);
+ z24\0\20c2 = (6.937u,4.382u);
+ z24\0\20 = (6.745u,5.059u);
+ z24\0\21c1 = (8.150u,5.406u);
+ z24\0\21c2 = (8.795u,5.113u);
+ z24\0\21 = (9.154u,6.745u);
+ z24\0\22c1 = (4.822u,6.741u);
+ z24\0\22c2 = (8.151u,4.585u);
+ z24\0\22 = (4.095u,4.577u);
+ z24\0\23c1 = (3.426u,4.576u);
+ z24\0\23c2 = (1.332u,4.699u);
+ z24\0\23 = (0.867u,4.331u);
+ z24\0\24c1 = (0.233u,3.829u);
+ z24\0\24c2 = (0.482u,-2.222u);
+ fill_or_unfill z24\0\0s
+ ..controls z24\0\0c1 and z24\0\0c2..z24\0\0
+ ..controls z24\0\1c1 and z24\0\1c2..z24\0\1
+ --z24\0\2
+ ..controls z24\0\3c1 and z24\0\3c2..z24\0\3
+ ..controls z24\0\4c1 and z24\0\4c2..z24\0\4
+ ..controls z24\0\5c1 and z24\0\5c2..z24\0\5
+ ..controls z24\0\6c1 and z24\0\6c2..z24\0\6
+ ..controls z24\0\7c1 and z24\0\7c2..z24\0\7
+ ..controls z24\0\8c1 and z24\0\8c2..z24\0\8
+ ..controls z24\0\9c1 and z24\0\9c2..z24\0\9
+ --z24\0\10
+ ..controls z24\0\11c1 and z24\0\11c2..z24\0\11
+ ..controls z24\0\12c1 and z24\0\12c2..z24\0\12
+ ..controls z24\0\13c1 and z24\0\13c2..z24\0\13
+ --z24\0\14
+ --z24\0\15
+ --z24\0\16
+ --z24\0\17
+ --z24\0\18
+ --z24\0\19
+ ..controls z24\0\20c1 and z24\0\20c2..z24\0\20
+ ..controls z24\0\21c1 and z24\0\21c2..z24\0\21
+ ..controls z24\0\22c1 and z24\0\22c2..z24\0\22
+ ..controls z24\0\23c1 and z24\0\23c2..z24\0\23
+ ..controls z24\0\24c1 and z24\0\24c2..cycle;
+ proof_labels (
+ 24\0\0,
+ 24\0\1,
+ 24\0\2,
+ 24\0\3,
+ 24\0\4,
+ 24\0\5,
+ 24\0\6,
+ 24\0\7,
+ 24\0\8,
+ 24\0\9,
+ 24\0\10,
+ 24\0\11,
+ 24\0\12,
+ 24\0\13,
+ 24\0\14,
+ 24\0\15,
+ 24\0\16,
+ 24\0\17,
+ 24\0\18,
+ 24\0\19,
+ 24\0\20,
+ 24\0\21,
+ 24\0\22,
+ 24\0\23,
+ 24\0\24,
+);
+endchar;
+
+beginchar (239, 7.950u#, 6.745u#, 4.095u#);
+ "thxa";
+ z25\0\0s = (1.204u,-3.854u);
+ z25\0\0c1 = (3.796u,-1.507u);
+ z25\0\0c2 = (3.812u,-1.039u);
+ z25\0\0 = (7.468u,-1.204u);
+ z25\0\1c1 = (7.240u,0.124u);
+ z25\0\1c2 = (6.234u,0.562u);
+ z25\0\1 = (5.300u,1.445u);
+ z25\0\2c1 = (7.465u,1.928u);
+ z25\0\2c2 = (7.325u,3.063u);
+ z25\0\2 = (6.992u,4.818u);
+ z25\0\3c1 = (6.877u,5.427u);
+ z25\0\3c2 = (7.020u,6.062u);
+ z25\0\3 = (6.428u,6.462u);
+ z25\0\4c1 = (5.961u,6.777u);
+ z25\0\4c2 = (5.124u,6.742u);
+ z25\0\4 = (4.577u,6.745u);
+ z25\0\5c1 = (3.778u,6.749u);
+ z25\0\5c2 = (1.395u,6.928u);
+ z25\0\5 = (0.877u,6.360u);
+ z25\0\6c1 = (0.710u,6.178u);
+ z25\0\6c2 = (0.664u,6.008u);
+ z25\0\6 = (0.647u,5.768u);
+ z25\0\7 = (0.953u,3.854u);
+ z25\0\8c1 = (1.095u,1.281u);
+ z25\0\8c2 = (1.204u,-1.272u);
+ z25\1\0s = (2.685u,5.156u);
+ z25\1\0c1 = (5.921u,5.878u);
+ z25\1\0c2 = (7.528u,3.389u);
+ z25\1\0 = (4.577u,2.631u);
+ z25\1\1c1 = (3.291u,2.300u);
+ z25\1\1c2 = (0.987u,3.957u);
+ z25\2\0s = (2.168u,3.132u);
+ z25\2\0c1 = (3.438u,2.360u);
+ z25\2\0c2 = (4.637u,1.618u);
+ z25\2\0 = (5.300u,0.241u);
+ z25\2\1c1 = (3.855u,-0.331u);
+ z25\2\1c2 = (2.928u,-1.290u);
+ z25\2\1 = (1.686u,-2.168u);
+ z25\2\2c1 = (1.686u,-0.490u);
+ z25\2\2c2 = (1.457u,1.589u);
+ fill_or_unfill z25\0\0s
+ ..controls z25\0\0c1 and z25\0\0c2..z25\0\0
+ ..controls z25\0\1c1 and z25\0\1c2..z25\0\1
+ ..controls z25\0\2c1 and z25\0\2c2..z25\0\2
+ ..controls z25\0\3c1 and z25\0\3c2..z25\0\3
+ ..controls z25\0\4c1 and z25\0\4c2..z25\0\4
+ ..controls z25\0\5c1 and z25\0\5c2..z25\0\5
+ ..controls z25\0\6c1 and z25\0\6c2..z25\0\6
+ --z25\0\7
+ ..controls z25\0\8c1 and z25\0\8c2..cycle;
+ fill_or_unfill z25\1\0s
+ ..controls z25\1\0c1 and z25\1\0c2..z25\1\0
+ ..controls z25\1\1c1 and z25\1\1c2..cycle;
+ fill_or_unfill z25\2\0s
+ ..controls z25\2\0c1 and z25\2\0c2..z25\2\0
+ ..controls z25\2\1c1 and z25\2\1c2..z25\2\1
+ ..controls z25\2\2c1 and z25\2\2c2..cycle;
+ proof_labels (
+ 25\0\0,
+ 25\0\1,
+ 25\0\2,
+ 25\0\3,
+ 25\0\4,
+ 25\0\5,
+ 25\0\6,
+ 25\0\7,
+ 25\0\8,
+ 25\1\0,
+ 25\1\1,
+ 25\2\0,
+ 25\2\1,
+ 25\2\2,
+);
+endchar;
+
+beginchar (234, 6.986u#, 6.745u#, 6.986u#);
+ "txa";
+ z26\0\0s = (3.854u,-6.745u);
+ z26\0\0c1 = (3.422u,-4.621u);
+ z26\0\0c2 = (0.039u,-0.923u);
+ z26\0\0 = (2.676u,0.971u);
+ z26\0\1c1 = (4.071u,1.974u);
+ z26\0\1c2 = (5.022u,1.666u);
+ z26\0\1 = (6.504u,1.204u);
+ z26\0\2 = (6.504u,6.745u);
+ z26\0\3 = (2.650u,6.745u);
+ z26\0\4c1 = (2.177u,6.744u);
+ z26\0\4c2 = (1.042u,6.831u);
+ z26\0\4 = (0.763u,6.370u);
+ z26\0\5c1 = (0.408u,5.785u);
+ z26\0\5c2 = (1.270u,5.434u);
+ z26\0\5 = (1.691u,5.354u);
+ z26\0\6c1 = (2.511u,5.199u);
+ z26\0\6c2 = (5.491u,5.670u);
+ z26\0\6 = (5.432u,4.321u);
+ z26\0\7c1 = (5.359u,2.682u);
+ z26\0\7c2 = (2.607u,3.604u);
+ z26\0\7 = (1.549u,2.374u);
+ z26\0\8c1 = (-0.252u,0.280u);
+ z26\0\8c2 = (1.936u,-5.291u);
+ fill_or_unfill z26\0\0s
+ ..controls z26\0\0c1 and z26\0\0c2..z26\0\0
+ ..controls z26\0\1c1 and z26\0\1c2..z26\0\1
+ --z26\0\2
+ --z26\0\3
+ ..controls z26\0\4c1 and z26\0\4c2..z26\0\4
+ ..controls z26\0\5c1 and z26\0\5c2..z26\0\5
+ ..controls z26\0\6c1 and z26\0\6c2..z26\0\6
+ ..controls z26\0\7c1 and z26\0\7c2..z26\0\7
+ ..controls z26\0\8c1 and z26\0\8c2..cycle;
+ proof_labels (
+ 26\0\0,
+ 26\0\1,
+ 26\0\2,
+ 26\0\3,
+ 26\0\4,
+ 26\0\5,
+ 26\0\6,
+ 26\0\7,
+ 26\0\8,
+);
+endchar;
+
+beginchar (235, 9.395u#, 6.504u#, 5.541u#);
+ "dxa";
+ z27\0\0s = (2.168u,6.504u);
+ z27\0\0c1 = (2.437u,3.294u);
+ z27\0\0c2 = (5.415u,7.034u);
+ z27\0\0 = (7.950u,3.132u);
+ z27\0\1c1 = (6.635u,3.132u);
+ z27\0\1c2 = (5.318u,3.249u);
+ z27\0\1 = (4.136u,2.551u);
+ z27\0\2c1 = (3.501u,2.176u);
+ z27\0\2c2 = (2.679u,1.330u);
+ z27\0\2 = (2.296u,0.701u);
+ z27\0\3c1 = (1.653u,-0.353u);
+ z27\0\3c2 = (0.147u,-4.539u);
+ z27\0\3 = (1.204u,-5.300u);
+ z27\0\4c1 = (1.760u,-2.579u);
+ z27\0\4c2 = (3.171u,0.859u);
+ z27\0\4 = (6.263u,1.366u);
+ z27\0\5c1 = (7.141u,1.510u);
+ z27\0\5c2 = (8.037u,1.275u);
+ z27\0\5 = (8.913u,1.204u);
+ z27\0\6c1 = (8.904u,2.200u);
+ z27\0\6c2 = (8.595u,2.923u);
+ z27\0\6 = (8.490u,3.854u);
+ z27\0\7c1 = (8.410u,4.562u);
+ z27\0\7c2 = (8.976u,5.308u);
+ z27\0\7 = (8.617u,5.947u);
+ z27\0\8c1 = (8.106u,6.855u);
+ z27\0\8c2 = (3.302u,6.504u);
+ fill_or_unfill z27\0\0s
+ ..controls z27\0\0c1 and z27\0\0c2..z27\0\0
+ ..controls z27\0\1c1 and z27\0\1c2..z27\0\1
+ ..controls z27\0\2c1 and z27\0\2c2..z27\0\2
+ ..controls z27\0\3c1 and z27\0\3c2..z27\0\3
+ ..controls z27\0\4c1 and z27\0\4c2..z27\0\4
+ ..controls z27\0\5c1 and z27\0\5c2..z27\0\5
+ ..controls z27\0\6c1 and z27\0\6c2..z27\0\6
+ ..controls z27\0\7c1 and z27\0\7c2..z27\0\7
+ ..controls z27\0\8c1 and z27\0\8c2..cycle;
+ proof_labels (
+ 27\0\0,
+ 27\0\1,
+ 27\0\2,
+ 27\0\3,
+ 27\0\4,
+ 27\0\5,
+ 27\0\6,
+ 27\0\7,
+ 27\0\8,
+);
+endchar;
+
+beginchar (240, 7.950u#, 6.745u#, 6.263u#);
+ "nxa";
+ z28\0\0s = (0.482u,-6.022u);
+ z28\0\0 = (1.204u,-6.022u);
+ z28\0\1c1 = (1.204u,-2.971u);
+ z28\0\1c2 = (1.163u,-0.691u);
+ z28\0\1 = (3.372u,1.686u);
+ z28\0\2c1 = (3.639u,0.042u);
+ z28\0\2c2 = (5.715u,-1.393u);
+ z28\0\2 = (7.083u,0.123u);
+ z28\0\3c1 = (8.031u,1.174u);
+ z28\0\3c2 = (7.425u,3.361u);
+ z28\0\3 = (6.021u,3.802u);
+ z28\0\4c1 = (5.439u,3.913u);
+ z28\0\4c2 = (4.478u,3.854u);
+ z28\0\4 = (3.854u,3.802u);
+ z28\0\5c1 = (4.463u,5.066u);
+ z28\0\5c2 = (4.958u,5.223u);
+ z28\0\5 = (6.263u,5.300u);
+ z28\0\6c1 = (5.830u,7.268u);
+ z28\0\6c2 = (4.041u,6.774u);
+ z28\0\6 = (2.409u,6.744u);
+ z28\0\7c1 = (1.906u,6.735u);
+ z28\0\7c2 = (0.877u,6.771u);
+ z28\0\7 = (0.902u,6.019u);
+ z28\0\8c1 = (0.941u,4.837u);
+ z28\0\8c2 = (3.308u,5.750u);
+ z28\0\8 = (3.156u,4.332u);
+ z28\0\9c1 = (3.094u,3.749u);
+ z28\0\9c2 = (1.652u,2.427u);
+ z28\0\9 = (1.298u,1.444u);
+ z28\0\10c1 = (0.668u,-0.303u);
+ z28\0\10c2 = (0.482u,-4.104u);
+ z28\1\0s = (5.060u,2.793u);
+ z28\1\0c1 = (7.695u,3.008u);
+ z28\1\0c2 = (7.362u,0.278u);
+ z28\1\0 = (5.778u,0.080u);
+ z28\1\1c1 = (4.394u,-0.093u);
+ z28\1\1c2 = (2.508u,1.958u);
+ fill_or_unfill z28\0\0s
+ --z28\0\0
+ ..controls z28\0\1c1 and z28\0\1c2..z28\0\1
+ ..controls z28\0\2c1 and z28\0\2c2..z28\0\2
+ ..controls z28\0\3c1 and z28\0\3c2..z28\0\3
+ ..controls z28\0\4c1 and z28\0\4c2..z28\0\4
+ ..controls z28\0\5c1 and z28\0\5c2..z28\0\5
+ ..controls z28\0\6c1 and z28\0\6c2..z28\0\6
+ ..controls z28\0\7c1 and z28\0\7c2..z28\0\7
+ ..controls z28\0\8c1 and z28\0\8c2..z28\0\8
+ ..controls z28\0\9c1 and z28\0\9c2..z28\0\9
+ ..controls z28\0\10c1 and z28\0\10c2..cycle;
+ fill_or_unfill z28\1\0s
+ ..controls z28\1\0c1 and z28\1\0c2..z28\1\0
+ ..controls z28\1\1c1 and z28\1\1c2..cycle;
+ proof_labels (
+ 28\0\0,
+ 28\0\1,
+ 28\0\2,
+ 28\0\3,
+ 28\0\4,
+ 28\0\5,
+ 28\0\6,
+ 28\0\7,
+ 28\0\8,
+ 28\0\9,
+ 28\0\10,
+ 28\1\0,
+ 28\1\1,
+);
+endchar;
+
+beginchar (241, 10.840u#, 6.745u#, 9.154u#);
+ "kshxa";
+ z29\0\0s = (0.482u,5.300u);
+ z29\0\0 = (1.445u,5.059u);
+ z29\0\1 = (0.482u,2.168u);
+ z29\0\2c1 = (1.855u,2.967u);
+ z29\0\2c2 = (1.733u,4.462u);
+ z29\0\2 = (2.715u,5.052u);
+ z29\0\3c1 = (5.117u,6.495u);
+ z29\0\3c2 = (4.818u,1.059u);
+ z29\0\3 = (4.818u,0.000u);
+ z29\0\4 = (1.483u,0.000u);
+ z29\0\5c1 = (1.445u,-1.089u);
+ z29\0\5c2 = (1.376u,-7.652u);
+ z29\0\5 = (1.483u,-8.158u);
+ z29\0\6c1 = (1.653u,-8.622u);
+ z29\0\6c2 = (1.804u,-8.669u);
+ z29\0\6 = (2.168u,-8.913u);
+ z29\0\7c1 = (2.168u,-7.677u);
+ z29\0\7c2 = (2.115u,-6.510u);
+ z29\0\7 = (2.409u,-5.300u);
+ z29\0\8c1 = (4.590u,-6.144u);
+ z29\0\8c2 = (5.901u,-6.454u);
+ z29\0\8 = (7.950u,-5.059u);
+ z29\0\9 = (8.431u,-8.431u);
+ z29\0\10c1 = (9.908u,-7.956u);
+ z29\0\10c2 = (10.267u,-7.565u);
+ z29\0\10 = (10.359u,-6.022u);
+ z29\0\11c1 = (9.620u,-6.257u);
+ z29\0\11c2 = (9.535u,-6.310u);
+ z29\0\11 = (9.154u,-6.986u);
+ z29\0\12c1 = (8.660u,-5.487u);
+ z29\0\12c2 = (9.006u,-3.742u);
+ z29\0\12 = (8.495u,-2.409u);
+ z29\0\13c1 = (7.795u,-0.584u);
+ z29\0\13c2 = (5.728u,-0.534u);
+ z29\0\13 = (5.375u,0.748u);
+ z29\0\14c1 = (5.077u,1.832u);
+ z29\0\14c2 = (5.540u,4.047u);
+ z29\0\14 = (5.541u,5.300u);
+ z29\0\15 = (8.431u,5.300u);
+ z29\0\16 = (8.913u,-0.482u);
+ z29\0\17 = (9.382u,-0.482u);
+ z29\0\18c1 = (9.395u,0.342u);
+ z29\0\18c2 = (9.526u,5.913u);
+ z29\0\18 = (9.382u,6.188u);
+ z29\0\19c1 = (9.040u,6.759u);
+ z29\0\19c2 = (8.280u,6.734u);
+ z29\0\19 = (7.709u,6.744u);
+ z29\0\20c1 = (6.618u,6.764u);
+ z29\0\20c2 = (1.700u,6.939u);
+ z29\0\20 = (1.039u,6.499u);
+ z29\0\21c1 = (0.590u,6.200u);
+ z29\0\21c2 = (0.562u,5.780u);
+ z29\1\0s = (4.095u,-0.662u);
+ z29\1\0c1 = (9.870u,-0.902u);
+ z29\1\0c2 = (7.897u,-5.350u);
+ z29\1\0 = (5.541u,-5.414u);
+ z29\1\1c1 = (2.238u,-5.502u);
+ z29\1\1c2 = (0.388u,-1.055u);
+ fill_or_unfill z29\0\0s
+ --z29\0\0
+ --z29\0\1
+ ..controls z29\0\2c1 and z29\0\2c2..z29\0\2
+ ..controls z29\0\3c1 and z29\0\3c2..z29\0\3
+ --z29\0\4
+ ..controls z29\0\5c1 and z29\0\5c2..z29\0\5
+ ..controls z29\0\6c1 and z29\0\6c2..z29\0\6
+ ..controls z29\0\7c1 and z29\0\7c2..z29\0\7
+ ..controls z29\0\8c1 and z29\0\8c2..z29\0\8
+ --z29\0\9
+ ..controls z29\0\10c1 and z29\0\10c2..z29\0\10
+ ..controls z29\0\11c1 and z29\0\11c2..z29\0\11
+ ..controls z29\0\12c1 and z29\0\12c2..z29\0\12
+ ..controls z29\0\13c1 and z29\0\13c2..z29\0\13
+ ..controls z29\0\14c1 and z29\0\14c2..z29\0\14
+ --z29\0\15
+ --z29\0\16
+ --z29\0\17
+ ..controls z29\0\18c1 and z29\0\18c2..z29\0\18
+ ..controls z29\0\19c1 and z29\0\19c2..z29\0\19
+ ..controls z29\0\20c1 and z29\0\20c2..z29\0\20
+ ..controls z29\0\21c1 and z29\0\21c2..cycle;
+ fill_or_unfill z29\1\0s
+ ..controls z29\1\0c1 and z29\1\0c2..z29\1\0
+ ..controls z29\1\1c1 and z29\1\1c2..cycle;
+ proof_labels (
+ 29\0\0,
+ 29\0\1,
+ 29\0\2,
+ 29\0\3,
+ 29\0\4,
+ 29\0\5,
+ 29\0\6,
+ 29\0\7,
+ 29\0\8,
+ 29\0\9,
+ 29\0\10,
+ 29\0\11,
+ 29\0\12,
+ 29\0\13,
+ 29\0\14,
+ 29\0\15,
+ 29\0\16,
+ 29\0\17,
+ 29\0\18,
+ 29\0\19,
+ 29\0\20,
+ 29\0\21,
+ 29\1\0,
+ 29\1\1,
+);
+endchar;
+
+beginchar (242, 11.563u#, 6.745u#, 6.504u#);
+ "shxa";
+ z30\0\0s = (1.204u,-6.263u);
+ z30\0\0 = (1.686u,-6.263u);
+ z30\0\1 = (1.927u,1.204u);
+ z30\0\2c1 = (3.808u,0.241u);
+ z30\0\2c2 = (5.695u,-0.577u);
+ z30\0\2 = (6.986u,1.686u);
+ z30\0\3c1 = (7.303u,0.569u);
+ z30\0\3c2 = (7.227u,-0.535u);
+ z30\0\3 = (7.227u,-1.686u);
+ z30\0\4c1 = (9.028u,-0.412u);
+ z30\0\4c2 = (8.247u,0.243u);
+ z30\0\4 = (11.081u,0.482u);
+ z30\0\5 = (11.081u,1.927u);
+ z30\0\6c1 = (9.520u,1.634u);
+ z30\0\6c2 = (8.844u,1.072u);
+ z30\0\6 = (7.709u,0.000u);
+ z30\0\7c1 = (6.776u,3.835u);
+ z30\0\7c2 = (7.794u,6.781u);
+ z30\0\7 = (2.409u,6.745u);
+ z30\0\8c1 = (1.847u,6.741u);
+ z30\0\8c2 = (0.895u,6.830u);
+ z30\0\8 = (0.639u,6.188u);
+ z30\0\9 = (1.204u,1.927u);
+ z30\1\0s = (3.377u,5.193u);
+ z30\1\0c1 = (7.316u,5.619u);
+ z30\1\0c2 = (7.952u,1.456u);
+ z30\1\0 = (5.299u,0.798u);
+ z30\1\1c1 = (2.410u,0.082u);
+ z30\1\1c2 = (0.876u,4.145u);
+ fill_or_unfill z30\0\0s
+ --z30\0\0
+ --z30\0\1
+ ..controls z30\0\2c1 and z30\0\2c2..z30\0\2
+ ..controls z30\0\3c1 and z30\0\3c2..z30\0\3
+ ..controls z30\0\4c1 and z30\0\4c2..z30\0\4
+ --z30\0\5
+ ..controls z30\0\6c1 and z30\0\6c2..z30\0\6
+ ..controls z30\0\7c1 and z30\0\7c2..z30\0\7
+ ..controls z30\0\8c1 and z30\0\8c2..z30\0\8
+ --z30\0\9
+ --cycle;
+ fill_or_unfill z30\1\0s
+ ..controls z30\1\0c1 and z30\1\0c2..z30\1\0
+ ..controls z30\1\1c1 and z30\1\1c2..cycle;
+ proof_labels (
+ 30\0\0,
+ 30\0\1,
+ 30\0\2,
+ 30\0\3,
+ 30\0\4,
+ 30\0\5,
+ 30\0\6,
+ 30\0\7,
+ 30\0\8,
+ 30\0\9,
+ 30\0\10,
+ 30\1\0,
+ 30\1\1,
+);
+endchar;
+
+beginchar (46, 3.132u#, 6.504u#, 0.000u#);
+ "tsheg";
+ z114\0\0s = (0.871u,6.258u);
+ z114\0\0c1 = (0.377u,5.453u);
+ z114\0\0c2 = (0.983u,4.665u);
+ z114\0\0 = (1.893u,4.976u);
+ z114\0\1c1 = (3.001u,5.354u);
+ z114\0\1c2 = (2.574u,6.965u);
+ fill_or_unfill z114\0\0s
+ ..controls z114\0\0c1 and z114\0\0c2..z114\0\0
+ ..controls z114\0\1c1 and z114\0\1c2..cycle;
+ proof_labels (
+ 114\0\0,
+ 114\0\1,
+);
+endchar;
+
+beginchar (47, 3.132u#, 6.745u#, 6.263u#);
+ "shad";
+ z115\0\0s = (1.445u,-6.022u);
+ z115\0\0 = (1.927u,-6.022u);
+ z115\0\1c1 = (1.927u,-2.836u);
+ z115\0\1c2 = (1.722u,0.459u);
+ z115\0\1 = (2.168u,3.613u);
+ z115\0\2c1 = (2.286u,4.447u);
+ z115\0\2c2 = (3.060u,6.371u);
+ z115\0\2 = (1.893u,6.665u);
+ z115\0\3c1 = (0.000u,7.142u);
+ z115\0\3c2 = (0.743u,5.007u);
+ z115\0\3 = (0.895u,4.095u);
+ z115\0\4c1 = (1.428u,0.898u);
+ z115\0\4c2 = (1.445u,-2.774u);
+ fill_or_unfill z115\0\0s
+ --z115\0\0
+ ..controls z115\0\1c1 and z115\0\1c2..z115\0\1
+ ..controls z115\0\2c1 and z115\0\2c2..z115\0\2
+ ..controls z115\0\3c1 and z115\0\3c2..z115\0\3
+ ..controls z115\0\4c1 and z115\0\4c2..cycle;
+ proof_labels (
+ 115\0\0,
+ 115\0\1,
+ 115\0\2,
+ 115\0\3,
+ 115\0\4,
+);
+endchar;
+
+beginchar (254, 30.594u#, 6.263u#, 2.650u#);
+ "swasti";
+ z116\0\0s = (13.972u,5.059u);
+ z116\0\0c1 = (17.615u,6.414u);
+ z116\0\0c2 = (20.723u,2.043u);
+ z116\0\0 = (16.622u,0.545u);
+ z116\0\1c1 = (14.998u,-0.048u);
+ z116\0\1c2 = (10.505u,0.819u);
+ z116\0\1 = (8.913u,1.538u);
+ z116\0\2c1 = (7.142u,2.339u);
+ z116\0\2c2 = (1.972u,6.321u);
+ z116\0\2 = (0.482u,4.095u);
+ z116\0\3c1 = (3.886u,4.890u);
+ z116\0\3c2 = (7.022u,-0.646u);
+ z116\0\3 = (12.768u,-0.722u);
+ z116\0\4c1 = (20.430u,-0.823u);
+ z116\0\4c2 = (21.053u,5.910u);
+ z116\0\4 = (16.622u,6.235u);
+ z116\0\5c1 = (14.706u,6.376u);
+ z116\0\5c2 = (12.058u,4.640u);
+ z116\0\5 = (14.066u,2.754u);
+ z116\0\6c1 = (14.678u,2.179u);
+ z116\0\6c2 = (16.063u,2.085u);
+ z116\0\6 = (15.618u,3.096u);
+ z116\0\7c1 = (15.350u,3.704u);
+ z116\0\7c2 = (14.398u,4.308u);
+ z116\1\0s = (24.572u,5.300u);
+ z116\1\0c1 = (25.822u,5.575u);
+ z116\1\0c2 = (26.421u,5.443u);
+ z116\1\0 = (27.458u,4.648u);
+ z116\1\1c1 = (31.722u,1.377u);
+ z116\1\1c2 = (24.206u,-2.263u);
+ z116\1\1 = (19.995u,3.613u);
+ z116\1\2c1 = (18.602u,0.064u);
+ z116\1\2c2 = (25.268u,-2.486u);
+ z116\1\2 = (28.641u,0.986u);
+ z116\1\3c1 = (29.305u,1.669u);
+ z116\1\3c2 = (29.716u,2.392u);
+ z116\1\3 = (29.573u,3.372u);
+ z116\1\4c1 = (28.937u,7.736u);
+ z116\1\4c2 = (22.009u,6.506u);
+ z116\1\4 = (24.268u,3.145u);
+ z116\1\5c1 = (24.528u,2.759u);
+ z116\1\5c2 = (25.004u,2.319u);
+ z116\1\5 = (25.500u,2.319u);
+ z116\1\6c1 = (26.949u,2.319u);
+ z116\1\6c2 = (24.816u,4.824u);
+ z116\2\0s = (3.613u,0.723u);
+ z116\2\0c1 = (7.693u,-2.560u);
+ z116\2\0c2 = (14.819u,-4.208u);
+ z116\2\0 = (19.031u,-0.241u);
+ z116\2\1c1 = (20.265u,-2.378u);
+ z116\2\1c2 = (25.370u,-3.046u);
+ z116\2\1 = (27.459u,-2.068u);
+ z116\2\2c1 = (28.662u,-1.505u);
+ z116\2\2c2 = (29.464u,-0.392u);
+ z116\2\2 = (30.112u,0.723u);
+ z116\2\3c1 = (29.236u,0.245u);
+ z116\2\3c2 = (28.741u,-0.517u);
+ z116\2\3 = (27.943u,-1.060u);
+ z116\2\4c1 = (26.221u,-2.301u);
+ z116\2\4c2 = (23.937u,-1.884u);
+ z116\2\4 = (22.163u,-1.060u);
+ z116\2\5c1 = (21.469u,-0.706u);
+ z116\2\5c2 = (20.120u,0.446u);
+ z116\2\5 = (19.534u,0.506u);
+ z116\2\6c1 = (18.904u,0.571u);
+ z116\2\6c2 = (17.648u,-0.796u);
+ z116\2\6 = (16.863u,-1.125u);
+ z116\2\7c1 = (15.741u,-1.597u);
+ z116\2\7c2 = (14.223u,-1.896u);
+ z116\2\7 = (13.009u,-1.924u);
+ z116\2\8c1 = (8.566u,-2.025u);
+ z116\2\8c2 = (7.067u,0.689u);
+ fill_or_unfill z116\0\0s
+ ..controls z116\0\0c1 and z116\0\0c2..z116\0\0
+ ..controls z116\0\1c1 and z116\0\1c2..z116\0\1
+ ..controls z116\0\2c1 and z116\0\2c2..z116\0\2
+ ..controls z116\0\3c1 and z116\0\3c2..z116\0\3
+ ..controls z116\0\4c1 and z116\0\4c2..z116\0\4
+ ..controls z116\0\5c1 and z116\0\5c2..z116\0\5
+ ..controls z116\0\6c1 and z116\0\6c2..z116\0\6
+ ..controls z116\0\7c1 and z116\0\7c2..cycle;
+ fill_or_unfill z116\1\0s
+ ..controls z116\1\0c1 and z116\1\0c2..z116\1\0
+ ..controls z116\1\1c1 and z116\1\1c2..z116\1\1
+ ..controls z116\1\2c1 and z116\1\2c2..z116\1\2
+ ..controls z116\1\3c1 and z116\1\3c2..z116\1\3
+ ..controls z116\1\4c1 and z116\1\4c2..z116\1\4
+ ..controls z116\1\5c1 and z116\1\5c2..z116\1\5
+ ..controls z116\1\6c1 and z116\1\6c2..cycle;
+ fill_or_unfill z116\2\0s
+ ..controls z116\2\0c1 and z116\2\0c2..z116\2\0
+ ..controls z116\2\1c1 and z116\2\1c2..z116\2\1
+ ..controls z116\2\2c1 and z116\2\2c2..z116\2\2
+ ..controls z116\2\3c1 and z116\2\3c2..z116\2\3
+ ..controls z116\2\4c1 and z116\2\4c2..z116\2\4
+ ..controls z116\2\5c1 and z116\2\5c2..z116\2\5
+ ..controls z116\2\6c1 and z116\2\6c2..z116\2\6
+ ..controls z116\2\7c1 and z116\2\7c2..z116\2\7
+ ..controls z116\2\8c1 and z116\2\8c2..cycle;
+ proof_labels (
+ 116\0\0,
+ 116\0\1,
+ 116\0\2,
+ 116\0\3,
+ 116\0\4,
+ 116\0\5,
+ 116\0\6,
+ 116\0\7,
+ 116\1\0,
+ 116\1\1,
+ 116\1\2,
+ 116\1\3,
+ 116\1\4,
+ 116\1\5,
+ 116\1\6,
+ 116\2\0,
+ 116\2\1,
+ 116\2\2,
+ 116\2\3,
+ 116\2\4,
+ 116\2\5,
+ 116\2\6,
+ 116\2\7,
+ 116\2\8,
+);
+endchar;
+
+beginchar (250, 9.636u#, -0.241u#, 6.504u#);
+ "achunglow";
+ z117\0\0s = (1.686u,-5.300u);
+ z117\0\0 = (1.405u,-4.337u);
+ z117\0\1c1 = (0.978u,-1.817u);
+ z117\0\1c2 = (6.952u,-0.283u);
+ z117\0\1 = (6.745u,-4.095u);
+ z117\0\2c1 = (5.149u,-4.096u);
+ z117\0\2c2 = (4.185u,-3.923u);
+ z117\0\2 = (3.372u,-5.580u);
+ z117\0\3c1 = (4.312u,-5.541u);
+ z117\0\3c2 = (5.338u,-5.459u);
+ z117\0\3 = (6.263u,-5.580u);
+ z117\0\4c1 = (7.280u,-5.796u);
+ z117\0\4c2 = (8.089u,-6.205u);
+ z117\0\4 = (9.154u,-6.263u);
+ z117\0\5c1 = (8.734u,-4.742u);
+ z117\0\5c2 = (8.047u,-5.016u);
+ z117\0\5 = (7.472u,-4.033u);
+ z117\0\6c1 = (7.049u,-3.309u);
+ z117\0\6c2 = (7.352u,-2.131u);
+ z117\0\6 = (6.882u,-1.175u);
+ z117\0\7c1 = (6.056u,0.355u);
+ z117\0\7c2 = (2.438u,-0.108u);
+ z117\0\7 = (1.287u,-1.175u);
+ z117\0\8c1 = (0.109u,-2.153u);
+ z117\0\8c2 = (0.041u,-4.753u);
+ fill_or_unfill z117\0\0s
+ --z117\0\0
+ ..controls z117\0\1c1 and z117\0\1c2..z117\0\1
+ ..controls z117\0\2c1 and z117\0\2c2..z117\0\2
+ ..controls z117\0\3c1 and z117\0\3c2..z117\0\3
+ ..controls z117\0\4c1 and z117\0\4c2..z117\0\4
+ ..controls z117\0\5c1 and z117\0\5c2..z117\0\5
+ ..controls z117\0\6c1 and z117\0\6c2..z117\0\6
+ ..controls z117\0\7c1 and z117\0\7c2..z117\0\7
+ ..controls z117\0\8c1 and z117\0\8c2..cycle;
+ proof_labels (
+ 117\0\0,
+ 117\0\1,
+ 117\0\2,
+ 117\0\3,
+ 117\0\4,
+ 117\0\5,
+ 117\0\6,
+ 117\0\7,
+ 117\0\8,
+);
+endchar;
+
+beginchar (1, 13.972u#, 7.468u#, 0.000u#);
+ "odz";
+ z118\0\0s = (13.009u,7.468u);
+ z118\0\0c1 = (11.329u,5.175u);
+ z118\0\0c2 = (8.366u,4.956u);
+ z118\0\0 = (6.986u,2.409u);
+ z118\0\1c1 = (4.945u,3.227u);
+ z118\0\1c2 = (1.923u,5.519u);
+ z118\0\1 = (0.482u,2.650u);
+ z118\0\2c1 = (2.004u,2.269u);
+ z118\0\2c2 = (2.069u,2.996u);
+ z118\0\2 = (3.132u,2.924u);
+ z118\0\3c1 = (4.127u,2.857u);
+ z118\0\3c2 = (6.101u,1.095u);
+ z118\0\3 = (6.986u,0.482u);
+ z118\0\4c1 = (7.386u,1.328u);
+ z118\0\4c2 = (7.536u,2.308u);
+ z118\0\4 = (8.245u,2.967u);
+ z118\0\5c1 = (10.121u,4.713u);
+ z118\0\5c2 = (13.119u,4.267u);
+ z118\0\5 = (13.490u,7.468u);
+ z118\1\0s = (7.709u,0.482u);
+ z118\1\0c1 = (8.899u,0.861u);
+ z118\1\0c2 = (10.384u,2.112u);
+ z118\1\0 = (10.600u,3.372u);
+ z118\1\1c1 = (9.054u,2.782u);
+ z118\1\1c2 = (7.766u,2.268u);
+ fill_or_unfill z118\0\0s
+ ..controls z118\0\0c1 and z118\0\0c2..z118\0\0
+ ..controls z118\0\1c1 and z118\0\1c2..z118\0\1
+ ..controls z118\0\2c1 and z118\0\2c2..z118\0\2
+ ..controls z118\0\3c1 and z118\0\3c2..z118\0\3
+ ..controls z118\0\4c1 and z118\0\4c2..z118\0\4
+ ..controls z118\0\5c1 and z118\0\5c2..z118\0\5
+ --cycle;
+ fill_or_unfill z118\1\0s
+ ..controls z118\1\0c1 and z118\1\0c2..z118\1\0
+ ..controls z118\1\1c1 and z118\1\1c2..cycle;
+ proof_labels (
+ 118\0\0,
+ 118\0\1,
+ 118\0\2,
+ 118\0\3,
+ 118\0\4,
+ 118\0\5,
+ 118\0\6,
+ 118\1\0,
+ 118\1\1,
+);
+endchar;
+
+beginchar (2, 12.527u#, 4.818u#, 0.000u#);
+ "idz";
+ z119\0\0s = (4.336u,1.927u);
+ z119\0\0c1 = (2.878u,2.000u);
+ z119\0\0c2 = (2.486u,2.295u);
+ z119\0\0 = (1.204u,2.891u);
+ z119\0\1 = (1.204u,3.372u);
+ z119\0\2c1 = (4.600u,4.196u);
+ z119\0\2c2 = (6.130u,1.804u);
+ z119\0\2 = (8.913u,0.723u);
+ z119\0\3c1 = (7.658u,2.476u);
+ z119\0\3c2 = (4.142u,5.875u);
+ z119\0\3 = (1.697u,4.572u);
+ z119\0\4c1 = (1.173u,4.293u);
+ z119\0\4c2 = (0.706u,3.734u);
+ z119\0\4 = (0.636u,3.131u);
+ z119\0\5c1 = (0.419u,1.270u);
+ z119\0\5c2 = (3.648u,-0.038u);
+ z119\1\0s = (11.804u,3.613u);
+ z119\1\0c1 = (10.711u,2.697u);
+ z119\1\0c2 = (10.550u,2.668u);
+ z119\1\0 = (9.154u,2.650u);
+ z119\1\1 = (9.154u,0.723u);
+ z119\1\2c1 = (10.522u,1.234u);
+ z119\1\2c2 = (12.517u,1.732u);
+ fill_or_unfill z119\0\0s
+ ..controls z119\0\0c1 and z119\0\0c2..z119\0\0
+ --z119\0\1
+ ..controls z119\0\2c1 and z119\0\2c2..z119\0\2
+ ..controls z119\0\3c1 and z119\0\3c2..z119\0\3
+ ..controls z119\0\4c1 and z119\0\4c2..z119\0\4
+ ..controls z119\0\5c1 and z119\0\5c2..cycle;
+ fill_or_unfill z119\1\0s
+ ..controls z119\1\0c1 and z119\1\0c2..z119\1\0
+ --z119\1\1
+ ..controls z119\1\2c1 and z119\1\2c2..cycle;
+ proof_labels (
+ 119\0\0,
+ 119\0\1,
+ 119\0\2,
+ 119\0\3,
+ 119\0\4,
+ 119\0\5,
+ 119\1\0,
+ 119\1\1,
+ 119\1\2,
+);
+endchar;
+
+beginchar (3, 11.563u#, 4.577u#, 0.000u#);
+ "edz";
+ z120\0\0s = (0.482u,3.372u);
+ z120\0\0c1 = (1.927u,3.255u);
+ z120\0\0c2 = (3.758u,3.067u);
+ z120\0\0 = (5.059u,2.410u);
+ z120\0\1c1 = (6.032u,1.918u);
+ z120\0\1c2 = (6.667u,1.061u);
+ z120\0\1 = (7.709u,0.723u);
+ z120\0\2c1 = (6.861u,2.516u);
+ z120\0\2c2 = (1.619u,6.703u);
+ z120\1\0s = (8.190u,2.409u);
+ z120\1\0c1 = (8.161u,1.812u);
+ z120\1\0c2 = (8.091u,1.304u);
+ z120\1\0 = (7.950u,0.723u);
+ z120\1\1c1 = (9.389u,1.033u);
+ z120\1\1c2 = (10.808u,1.257u);
+ z120\1\1 = (11.081u,2.891u);
+ z120\1\2c1 = (10.055u,2.624u);
+ z120\1\2c2 = (9.262u,2.419u);
+ fill_or_unfill z120\0\0s
+ ..controls z120\0\0c1 and z120\0\0c2..z120\0\0
+ ..controls z120\0\1c1 and z120\0\1c2..z120\0\1
+ ..controls z120\0\2c1 and z120\0\2c2..cycle;
+ fill_or_unfill z120\1\0s
+ ..controls z120\1\0c1 and z120\1\0c2..z120\1\0
+ ..controls z120\1\1c1 and z120\1\1c2..z120\1\1
+ ..controls z120\1\2c1 and z120\1\2c2..cycle;
+ proof_labels (
+ 120\0\0,
+ 120\0\1,
+ 120\0\2,
+ 120\1\0,
+ 120\1\1,
+ 120\1\2,
+);
+endchar;
+
+beginchar (33, 6.986u#, 6.745u#, 9.877u#);
+ "tsheg shad";
+ z121\0\0s = (0.868u,6.498u);
+ z121\0\0c1 = (0.279u,5.619u);
+ z121\0\0c2 = (0.953u,4.567u);
+ z121\0\0 = (1.852u,5.078u);
+ z121\0\1c1 = (2.723u,5.572u);
+ z121\0\1c2 = (2.379u,7.085u);
+ z121\1\0s = (4.963u,6.498u);
+ z121\1\0c1 = (4.374u,5.619u);
+ z121\1\0c2 = (5.048u,4.567u);
+ z121\1\0 = (5.948u,5.078u);
+ z121\1\1c1 = (6.818u,5.572u);
+ z121\1\1c2 = (6.474u,7.085u);
+ z121\2\0s = (4.095u,-9.636u);
+ z121\2\0 = (4.577u,-9.636u);
+ z121\2\1c1 = (4.577u,-6.313u);
+ z121\2\1c2 = (4.588u,-3.070u);
+ z121\2\1 = (4.812u,0.241u);
+ z121\2\2c1 = (4.870u,1.102u);
+ z121\2\2c2 = (5.442u,3.007u);
+ z121\2\2 = (4.302u,3.292u);
+ z121\2\3c1 = (2.370u,3.777u);
+ z121\2\3c2 = (3.070u,1.238u);
+ z121\2\3 = (3.138u,0.241u);
+ z121\2\4c1 = (3.359u,-3.028u);
+ z121\2\4c2 = (4.093u,-6.382u);
+ fill_or_unfill z121\0\0s
+ ..controls z121\0\0c1 and z121\0\0c2..z121\0\0
+ ..controls z121\0\1c1 and z121\0\1c2..cycle;
+ fill_or_unfill z121\1\0s
+ ..controls z121\1\0c1 and z121\1\0c2..z121\1\0
+ ..controls z121\1\1c1 and z121\1\1c2..cycle;
+ fill_or_unfill z121\2\0s
+ --z121\2\0
+ ..controls z121\2\1c1 and z121\2\1c2..z121\2\1
+ ..controls z121\2\2c1 and z121\2\2c2..z121\2\2
+ ..controls z121\2\3c1 and z121\2\3c2..z121\2\3
+ ..controls z121\2\4c1 and z121\2\4c2..cycle;
+ proof_labels (
+ 121\0\0,
+ 121\0\1,
+ 121\1\0,
+ 121\1\1,
+ 121\2\0,
+ 121\2\1,
+ 121\2\2,
+ 121\2\3,
+ 121\2\4,
+);
+endchar;
+
+beginchar (247, 9.636u#, -0.241u#, 4.577u#);
+ "vowel u";
+ z123\0\0s = (0.482u,-0.241u);
+ z123\0\0c1 = (1.654u,-2.721u);
+ z123\0\0c2 = (4.583u,-5.090u);
+ z123\0\0 = (7.468u,-4.180u);
+ z123\0\1c1 = (8.087u,-3.984u);
+ z123\0\1c2 = (8.798u,-3.538u);
+ z123\0\1 = (8.996u,-2.881u);
+ z123\0\2c1 = (9.509u,-1.178u);
+ z123\0\2c2 = (6.219u,-0.284u);
+ z123\0\2 = (5.541u,-2.409u);
+ z123\0\3c1 = (7.139u,-2.128u);
+ z123\0\3c2 = (7.355u,-2.095u);
+ z123\0\3 = (8.672u,-3.132u);
+ z123\0\4c1 = (4.387u,-4.518u);
+ z123\0\4c2 = (3.646u,-1.737u);
+ fill_or_unfill z123\0\0s
+ ..controls z123\0\0c1 and z123\0\0c2..z123\0\0
+ ..controls z123\0\1c1 and z123\0\1c2..z123\0\1
+ ..controls z123\0\2c1 and z123\0\2c2..z123\0\2
+ ..controls z123\0\3c1 and z123\0\3c2..z123\0\3
+ ..controls z123\0\4c1 and z123\0\4c2..cycle;
+ proof_labels (
+ 123\0\0,
+ 123\0\1,
+ 123\0\2,
+ 123\0\3,
+ 123\0\4,
+);
+endchar;
+
+beginchar (244, 14.936u#, 6.022u#, 0.000u#);
+ "vowel o";
+ z125\0\0s = (13.972u,6.022u);
+ z125\0\0c1 = (12.070u,3.556u);
+ z125\0\0c2 = (9.027u,4.759u);
+ z125\0\0 = (6.745u,2.168u);
+ z125\0\1c1 = (4.683u,3.843u);
+ z125\0\1c2 = (1.951u,5.003u);
+ z125\0\1 = (0.482u,1.927u);
+ z125\0\2c1 = (3.406u,2.190u);
+ z125\0\2c2 = (3.913u,3.022u);
+ z125\0\2 = (6.504u,0.723u);
+ z125\0\3c1 = (7.208u,1.154u);
+ z125\0\3c2 = (7.905u,1.671u);
+ z125\0\3 = (8.672u,1.981u);
+ z125\0\4c1 = (10.951u,2.900u);
+ z125\0\4c2 = (13.938u,2.830u);
+ z125\0\4 = (14.454u,6.022u);
+ fill_or_unfill z125\0\0s
+ ..controls z125\0\0c1 and z125\0\0c2..z125\0\0
+ ..controls z125\0\1c1 and z125\0\1c2..z125\0\1
+ ..controls z125\0\2c1 and z125\0\2c2..z125\0\2
+ ..controls z125\0\3c1 and z125\0\3c2..z125\0\3
+ ..controls z125\0\4c1 and z125\0\4c2..z125\0\4
+ --cycle;
+ proof_labels (
+ 125\0\0,
+ 125\0\1,
+ 125\0\2,
+ 125\0\3,
+ 125\0\4,
+ 125\0\5,
+);
+ opic:=currentpicture;
+endchar;
+
+beginchar (245, 9.395u#, 5.059u#, 0.000u#);
+ "vowel i";
+ z126\0\0s = (4.336u,2.168u);
+ z126\0\0c1 = (2.878u,2.240u);
+ z126\0\0c2 = (2.486u,2.536u);
+ z126\0\0 = (1.204u,3.132u);
+ z126\0\1 = (1.204u,3.613u);
+ z126\0\2c1 = (4.600u,4.436u);
+ z126\0\2c2 = (6.130u,2.045u);
+ z126\0\2 = (8.913u,0.964u);
+ z126\0\3c1 = (7.658u,2.717u);
+ z126\0\3c2 = (4.142u,6.116u);
+ z126\0\3 = (1.697u,4.813u);
+ z126\0\4c1 = (1.173u,4.534u);
+ z126\0\4c2 = (0.706u,3.975u);
+ z126\0\4 = (0.636u,3.372u);
+ z126\0\5c1 = (0.419u,1.511u);
+ z126\0\5c2 = (3.648u,0.203u);
+ fill_or_unfill z126\0\0s
+ ..controls z126\0\0c1 and z126\0\0c2..z126\0\0
+ --z126\0\1
+ ..controls z126\0\2c1 and z126\0\2c2..z126\0\2
+ ..controls z126\0\3c1 and z126\0\3c2..z126\0\3
+ ..controls z126\0\4c1 and z126\0\4c2..z126\0\4
+ ..controls z126\0\5c1 and z126\0\5c2..cycle;
+ proof_labels (
+ 126\0\0,
+ 126\0\1,
+ 126\0\2,
+ 126\0\3,
+ 126\0\4,
+ 126\0\5,
+);
+endchar;
+
+beginchar (246, 8.190u#, 4.818u#, 0.000u#);
+ "vowel e";
+ z127\0\0s = (0.482u,3.613u);
+ z127\0\0c1 = (1.927u,3.496u);
+ z127\0\0c2 = (3.758u,3.307u);
+ z127\0\0 = (5.059u,2.651u);
+ z127\0\1c1 = (6.032u,2.159u);
+ z127\0\1c2 = (6.667u,1.301u);
+ z127\0\1 = (7.709u,0.964u);
+ z127\0\2c1 = (6.861u,2.757u);
+ z127\0\2c2 = (1.619u,6.944u);
+ fill_or_unfill z127\0\0s
+ ..controls z127\0\0c1 and z127\0\0c2..z127\0\0
+ ..controls z127\0\1c1 and z127\0\1c2..z127\0\1
+ ..controls z127\0\2c1 and z127\0\2c2..cycle;
+ proof_labels (
+ 127\0\0,
+ 127\0\1,
+ 127\0\2,
+);
+endchar;
+
+
+beginchar (4, 13.972u#, 15.504u#, 2.168u#);
+ "om";
+ currentpicture := currentpicture + apic
+ + (opic shifted (-0.482u,6.745u))
+ + (npic shifted (3.5u,9u));
+endchar;
+
+
+beginchar (5, 10u#, 6.745u#, 3.255u#);
+ pickup pencircle scaled 0.5pt;
+ for d=0 step 10 until 350:
+ drawdot ((sind(d),cosd(d))*w/2+(w/2,1.745u));
+ endfor;
+endchar;
+
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/pacioli/cpclig.mf b/Master/texmf-dist/fonts/source/public/pacioli/cpclig.mf
new file mode 100644
index 00000000000..8d0424c0228
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pacioli/cpclig.mf
@@ -0,0 +1,81 @@
+%%
+%% This is file `cpclig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pacioli.dtx (with options: `lig')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+ligtable "`": "`"=:oct"134";
+ligtable "'": "'"=:oct"042", "?" kern 2u#, "!" kern 2u#;
+
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+
+
+cmchar "Closing quotes";
+beginchar(oct"042",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+
+cmchar "Opening quotes";
+beginchar(oct"134",7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+
+cmchar "En dash";
+beginchar(oct"173",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+%%pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+pickup crisp.nib; pos1(medium,90); pos2(medium,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+
+cmchar "Em dash";
+beginchar(oct"174",18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+%%pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+pickup crisp.nib; pos1(medium,90); pos2(medium,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/pacioli/cpcpunct.mf b/Master/texmf-dist/fonts/source/public/pacioli/cpcpunct.mf
new file mode 100644
index 00000000000..f9bcb814f09
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pacioli/cpcpunct.mf
@@ -0,0 +1,175 @@
+%%
+%% This is file `cpcpunct.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pacioli.dtx (with options: `punct')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+
+cmchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+
+cmchar "Semicolon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+
+cmchar "Left bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Right bracket";
+numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",wd#,body_height#,paren_depth#);
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Reverse apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/pacioli/cpcr10.mf b/Master/texmf-dist/fonts/source/public/pacioli/cpcr10.mf
new file mode 100644
index 00000000000..8d0bfca2c68
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pacioli/cpcr10.mf
@@ -0,0 +1,87 @@
+%%
+%% This is file `cpcr10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pacioli.dtx (with options: `up')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+ %%% CPCR10.MF Computer Pacioli Roman at 10 point design size.
+if unknown cmbase: input cmbase fi
+font_identifier:="CPCR"; font_size 10pt#;
+u#:=20/36pt#; % unit width
+hstretch:=1; % horizontal stretching factors; in lieu of u
+vstretch:=1; % vertical stretching factor
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+half_height#:=1/2cap_height#; % half the height of caps
+side#:=cap_height#; % Height and width of the square
+thickfudge:=1/9; mediumfudge:=1/2; thinfudge:=1/3;
+thick#:=thickfudge*side#; % thickness of all thick limbs in Roman font
+medium#:=mediumfudge*thick#; % width of medium limbs
+thin#:=thinfudge*thick#; % thinness of all thin limbs
+eta:=2-sqrt2; % darkness for serifs; $\eta \approx 0.58$
+serif_darkness:=eta;
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+cap_stem#:=thick#; % thickness of majuscule stems
+stem#:=thick#; % thickness of minuscule stems
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=thick#; % vertical distance from serif base to tangent
+jut#:=thick#; % protrusion of lowercase serifs
+cap_jut#:=2/3thick#; % protrusion of uppercase serifs for I
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+slab#:=eps*1pt#; % serif and arm thickness
+dslab#=0; %slab value used in Pacioli fonts
+Hrad#:=2thick#; % Huge
+Lrad#:=3/2thick#; % Large
+lrad#:=thick#; % large
+srad#:=1/2thick#; % small
+trad#:=3/8thick#; % tiny
+hair#:=vair#:=thin#;
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=0pt#; % fine tuning of overshoot
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+dot_size#:=38/36pt#; % size of dots
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+ligs:=2; % level of ligatures to be included
+
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+stem_corr#:=1/36pt#; % small refinement of stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+
+boolean whole_font; % try generating a complete font?
+whole_font:=false;
+
+generate cpctitle %% switch to the driver file---Pacioli title
+
diff --git a/Master/texmf-dist/fonts/source/public/pacioli/cpcromanp.mf b/Master/texmf-dist/fonts/source/public/pacioli/cpcromanp.mf
new file mode 100644
index 00000000000..1c2869ba6f3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pacioli/cpcromanp.mf
@@ -0,0 +1,88 @@
+%%
+%% This is file `cpcromanp.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pacioli.dtx (with options: `xp')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+
+cmchar "Ampersand";
+beginchar("&",14u#,asc_height#,0);
+italcorr x_height#*slant-serif_fit# - if serifs: .4u# else: 1.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos2(slab,-90); x2=4u; bot y2r=-o;
+if not hefty:(x,y2l)=whatever[z2r,(w-5u,x_height)]; x2l:=x; fi
+if serifs: pos0(fudged.hair,0);
+ rt x0r+jut=hround(w-.9u); top y0=x_height;
+ pos1(fudged.hair,0); z1=whatever[z0,(.6[x0,x2],0)];
+ y1=max(y0-1.5bracket-.2x_height,2/3x_height);
+ filldraw stroke z0e---z1e...{left}z2e; % short diagonal
+else: pickup fine.nib; pos1(.25[slab,flare],-15); rt x1r=hround(w-2u);
+ y1r=good.y .75[bar_height,x_height]; x1l:=good.x x1l; y1l:=good.y y1l;
+ top z2'l=(x2l,tiny.top y2l); bot z2'r=(x2r,tiny.bot y2r);
+ filldraw stroke term.e(2',1,right,1,4); fi % short diagonal and terminal
+pickup tiny.nib; numeric slope,theta,reduced_hair;
+slope=(h-2vair-slab)/10.5u; theta=angle(-slope,1);
+reduced_hair=max(tiny.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+lft x3r=hround .75u; x5=.5[x3r,x6l]; lft x6r=hround .5(w-u);
+x3l-x3r=curve-tiny; pos6(reduced_hair,180);
+pos5(vair,theta); y5=.5h;
+ellipse_set(2l,3l,4l,5l); ellipse_set(2r,3r,4r,5r);
+pos7(vair,270); top y7l=h+o; x7=.45[x6r,x8r];
+pos8(fudged.stem,30); x8l=good.x(x8l+3.5u-x8); y8r=y6;
+ellipse_set(7l,6l,5',5l);
+filldraw stroke z2e{left}...z3e{up}...z4e---z5e...{up}z6e
+ ...z7e{left}...z8e{down}; % bowls
+pos10(slab,90); x10=w-3.5u; bot y10l=-o;
+pos9(fudged.stem,angle(z8-z10)-90);
+z9=.5[z8,z10]+(1.75u,0) rotated(angle(z8-z10)+90);
+filldraw stroke z8e{down}...z9e{z10-z8}...{right}z10e; % long diagonal
+if serifs: pickup crisp.nib; pos10'(slab,90); z10'=z10;
+ pos11(fudged.hair,180); rt x11l=hround(w-u); y11=.5bar_height;
+ filldraw stroke z10'e{right}...{up}z11e; % terminal
+ numeric inner_jut; if rt x6l+.5u<lft x0l-1.5jut: inner_jut=1.5jut;
+ else: rt x6l+.5u=lft x0l-inner_jut; fi
+ dish_serif(0,1,a,.6,inner_jut,b,.5,jut)(dark); % serif
+else: pickup fine.nib; pos10'(slab,90); z10'=z10;
+ pos11(Vround .5[slab,flare],90);
+ rt x11=hround(r-letter_fit-u); bot y11l=vround .07bar_height-o;
+ filldraw stroke term.e(10',11,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+cmchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+%%filldraw stroke pulled_super_arc.e(2,3)(superpull) % macro changed in cpctitle.mf
+filldraw stroke pulled_super_arc.e(2,3,eta)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else:
+ pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4);
+fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/pacioli/cpcromanu.mf b/Master/texmf-dist/fonts/source/public/pacioli/cpcromanu.mf
new file mode 100644
index 00000000000..cfbbeae095f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pacioli/cpcromanu.mf
@@ -0,0 +1,970 @@
+%%
+%% This is file `cpcromanu.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pacioli.dtx (with options: `maj')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+
+def checkthin=
+if thin-currentbreadth<eps: thin:=currentbreadth+eps; fi;
+if thin-currentbreadth<eps: thin:=currentbreadth+eps; fi enddef;
+
+numeric P_width#; P_width#=cap_jut#+3thick#+1/4side#-thin#;
+define_pixels(P_width);
+
+pair xeps, yeps; xeps=(eps,0); yeps=(0,eps);
+numeric tail_corr; tail_corr=1/8;
+numeric cap_jut_factor; cap_jut_factor=8/7;
+
+numeric pcshiftx#; % x value of LHS of Pacioli box wrt origin of char box
+define_pixels(pcshiftx);
+
+
+cmchar "Pacioli's letter A";
+beginchar("A", 2u#+side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+pcshiftx := u;
+top y3= top y2=h + 2cap_jut;
+ % for left leg
+numeric alpha[]; alpha1=(h++(0.5side - cap_jut - 0.5thin))/(side);
+penpos1(alpha1*medium,0); penpos2(alpha1*medium,0);
+ % and for the right leg
+alpha2=(h++(0.5side-0.5thick))/(side);
+penpos3(alpha2*thick,0); penpos4(alpha2*thick,0);
+lft x1l=cap_jut_factor*lrad+.5u; rt x4r=pcshiftx + side;
+bot y1=bot y4=0 if monospace: +1/2 crisp fi;
+x3r=x2l = 0.5side + pcshiftx;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+fill z0--diag_end(0,4l,1,1,4r,3r)--z3r..z2l--diag_end(2l,1l,1,1,1r,0)
+ --z0..cycle; % diagonals
+top y5r=top y6r=hround(h/2); top y5r-bot y5l=top y6r-bot y6l=thin;
+penpos5(whatever, angle(z2-z1)); penpos6(whatever, angle(z3-z4));
+z5=whatever[z1,z2]; z6=whatever[z3,z4];
+penstroke z5e--z6e; % bar line
+pickup tiny.nib;
+numeric top_bar; top_bar=top y5r-bot y6l;
+if monospace: pickup pencircle scaled 0pt;
+ pos11(top_bar,90); pos12(top_bar,90);
+ top y11r=top y12r=h; w/2=.5[x11,x12]; x12-x11=apex_corr+2cap_jut;
+ fill z11l--z12l{right}..tension atleast.95..{left}z12r--z11r{left}..
+ tension atleast.95..{right}cycle;
+ penlabels(11,12); fi
+if serifs: bracket:=10/7 bracket; cap_jut:=cap_jut_factor*cap_jut;
+ pickup tiny.nib; numeric jut_factor;
+ if monospace: jut_factor:=1; else: jut_factor:=3/4; fi
+ serif(1,2,a,.8serif_darkness,-cap_jut);serif(4,3,d,.8serif_darkness, cap_jut);
+ bracket:=jut_factor*bracket; if monospace: jut_factor:=.6; fi
+ serif(1,2,b,7/8 serif_darkness,jut_factor*cap_jut);
+ serif(4,3,c,7/8 serif_darkness,-jut_factor*cap_jut);
+ fi
+ x20 = x2l - 0.5lrad; y20 = side+lrad;
+ erase filldraw fullcircle scaled 2lrad shifted (x20,y20);
+proofpcbb(1, lrad+0.5medium, 0);
+penlabels(0,1,2,3,4,5,6,20); endchar;
+
+
+cmchar "Pacioli's letter B";
+beginchar("B",u#+cap_jut#+0.64side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#,0); pickup tiny.nib;
+pcshiftx := 0.5u;
+pos1(thick,0); pos2(thick,0); lft x1l=lft x2l=pcshiftx+cap_jut;
+ bot y2=0; top y1=h; filldraw stroke z1e--z2e; % vertical stem
+pos3(thin,-90); pos5(thick,0); pos7(medium,90);
+z3r=z2; y4l=y3l; x4l=x3l+thick; y4r=y3r; x4r=x4l+thick-1/2thin; z4=.5[z4l,z4r];
+y7=h/2; x7=x1; y6l=y7l; x6l=x4l; top y6r-bot y6l=medium; x6r=x4r;
+z6=.5[z6r,z6l];
+x5=hround(x1+0.64side-thick); y5=0.25side;
+filldraw stroke z3e--z4e..pulled_arc.e(4,5)&pulled_arc.e(5,6)..z6e--z7e;
+ % bottom lobe
+pos7'(thin,-90); pos8(thick,0); pos10(medium,90);
+z7'=z7; z6'=z6; x6'r=x4r; x6'l=x4l; y6'r=y7'r; y6'l=y7'l;
+z10r=z1; x9r=x6'r; x9l=x6'l; y9r=y10r; top y9r-bot y9l=medium; z9=.5[z9r,z9l];
+x8=hround(x1+0.53side-thick); y8=.75side;
+filldraw stroke z7'e--z6'e..pulled_arc.e(6',8)&pulled_arc.e(8,9)
+ ..z9e--z10e; % upper lobe
+if serifs: serif(1,2,a, serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut);
+ numeric tempa_, tempb_; tempa_=slab; tempb_=bracket;
+ slab:=thin; bracket:=2/3cap_jut; serif(2,1,c,serif_darkness,2/3cap_jut);
+ slab:=tempa_; bracket:=tempb_; fi
+proofpcbb(2, cap_jut+0.5thick, 0);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+penlabels(6',7'); endchar;
+
+
+cmchar "Pacioli's original letter C";
+beginchar("c",2u#+.95side#, cap_height#, 0);
+adjust_fit(0, 0); if monospace: pickup fine.nib; else: pickup tiny.nib;fi
+pcshiftx := u;
+numeric alpha; alpha=w-u-thick;
+pos2(thin, 90); x2=.5[x3r,x0r]; top y2r=h;% topmost pen position
+pos3(thick,180); lft z3r=(u,h/2);
+pos4(thin, 270); x4=x2; bot y4r=0; % bottommost pen position
+pos0(thick,0); lft z0l=(w+thick-u,h/2);
+path p, p', line.u, line.b; line.u=(alpha,1.5h)--(alpha,h/2);
+ line.b=(.5[alpha,x0],0)--(.5[alpha,x0],h/2);
+p=pulled_arc.r(0,2)&pulled_arc.r(2,3)&pulled_arc.r(3,4)
+ &pulled_arc.r(4,0)&cycle;
+p'=pulled_arc.l(0,2)&pulled_arc.l(2,3)&pulled_arc.l(3,4)
+ &pulled_arc.l(4,0)&cycle;
+z'1l=line.u intersectionpoint p'; z'1r=line.u intersectionpoint p;
+bot rt z1l=z'1l; top rt z1r=z'1r; z1=.5[z1l,z1r];
+z'5l=line.b intersectionpoint p'; z'5r=line.b intersectionpoint p;
+z5r = (side+pcshiftx-3/4thick, 3/4thick); z5l = (x5r+o, y5r+1.5thick); z5=.5[z5r,z5l];
+if not monospace:
+ x1l:=x1l+.6thin; y1l:=y1r-1.0thick-2tiny;
+ y5l:=2thick+y5r-2tiny; fi
+if monospace: x1:=x1l:=x1r:=x5; y1:=y1-thin; y1l:=y1l-thin; y1r:=y1r-.6thin; fi
+ % readjust to have a better opening in CDTT
+numeric slope_factor; if monospace:slope_factor=4/3; else:slope_factor=3/4; fi
+filldraw
+ z1r{-1,slope_factor}...{left}z2r..pulled_arc.r(2,3)&
+ pulled_arc.r(3,4)..{right}z4r..tension 0.9..z5r--
+ reverse
+ (z1l..tension 0.9..{left}z2l..pulled_arc.l(2,3)&pulled_arc.l(3,4)..{right}z4l
+ ..tension 0.9..z5l)
+ ..(z1l+(eps,0))--(z1r+(eps,0))..cycle;
+proofpcbb(3, 0.5thick, 0.5side);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+cmchar "Pacioli's letter C";
+beginchar("C",2u#+.95side#, cap_height#, 0);
+adjust_fit(0, 0); if monospace: pickup fine.nib; else: pickup tiny.nib;fi
+pcshiftx := u;
+numeric alpha; alpha=w-u-thick;
+pos2(thin, 90); x2=.5[x3r,x0r]; top y2r=h+o;% topmost pen position
+pos3(thick,180); lft z3r=(u,h/2);
+pos4(thin, 270); x4=x2; bot y4r=-o; % bottommost pen position
+pos0(thick,0); lft z0l=(w+thick-u,h/2);
+path p, p', line.u, line.b; line.u=(alpha,1.5h)--(alpha,h/2);
+ line.b=(.5[alpha,x0],0)--(.5[alpha,x0],h/2);
+p=pulled_arc.r(0,2)&pulled_arc.r(2,3)&pulled_arc.r(3,4)
+ &pulled_arc.r(4,0)&cycle;
+p'=pulled_arc.l(0,2)&pulled_arc.l(2,3)&pulled_arc.l(3,4)
+ &pulled_arc.l(4,0)&cycle;
+z'1l=line.u intersectionpoint p'; z'1r=line.u intersectionpoint p;
+bot rt z1l=z'1l; top rt z1r=z'1r; z1=.5[z1l,z1r];
+z'5l=line.b intersectionpoint p'; z'5r=line.b intersectionpoint p;
+z5r = (side+pcshiftx-3/4thick, 3/4thick); z5l = (x5r+o, y5r+1.5thick); z5=.5[z5r,z5l];
+if not monospace:
+ x1l:=x1l+.6thin; y1l:=y1r-1.0thick-2tiny;
+ y5l:=2thick+y5r-2tiny; fi
+if monospace: x1:=x1l:=x1r:=x5; y1:=y1-thin; y1l:=y1l-thin; y1r:=y1r-.6thin; fi
+ % readjust to have a better opening in CDTT
+numeric slope_factor; if monospace:slope_factor=4/3; else:slope_factor=3/4; fi
+filldraw
+ z1r{-1,slope_factor}...{left}z2r..pulled_arc.r(2,3)&
+ pulled_arc.r(3,4)..{right}z4r..tension 0.9..z5r--
+ reverse
+ (z1l..tension 0.9..{left}z2l..pulled_arc.l(2,3)&pulled_arc.l(3,4)..{right}z4l
+ ..tension 0.9..z5l)
+ ..(z1l+(eps,0))--(z1r+(eps,0))..cycle;
+proofpcbb(3, 0.5thick, 0.5side);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+cmchar "Pacioli's letter D";
+beginchar("D", cap_jut#+.95side#+u#, cap_height#, 0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=.5u+cap_jut; x2=x1; bot y2=0; top y1=h;
+filldraw stroke z1e--z2e; % stem
+pos3(thin, 90); pos5(thick, 0); pos7(5/4thin, -90);
+x3=x7=x1; top y3r=h; bot y7r=0;
+y5=good.y h/2; x5=h-3/2thick+x1;
+if not monospace: x4r=x6r=hround(w/2); top y4r=h; bot y6r=0;
+ bot y4l=vround(h-thin); top y6l=vround 5/4thin;
+ x4l=x6l; 2(lft x5l-x4l)=y4l-y6l;
+ z4=.5[z4l, z4r]; z6=.5[z6l, z6r];
+ else: pos4(thin,90); pos6(thin,-90); x4=x6=hround w/2; top y4r=h; bot y6r=0;
+fi
+filldraw stroke z3e{right}...pulled_super_arc.e(4,5,eta)&
+ pulled_super_arc.e(5,6,eta)...{left}z7e; % lobe
+if serifs: serif(1, 2, a, serif_darkness, -cap_jut);
+ serif(2, 1, b, serif_darkness, -cap_jut);
+ if not monospace: numeric temp_; temp_=slab; slab:=5/4thin;
+ serif(2, 1, c, serif_darkness, cap_jut); slab:=temp_; fi fi
+proofpcbb(2, cap_jut+0.5thick, 0);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+cmchar "Pacioli's letter E";
+numeric topbar_; topbar_=1/2; % half the square for Pacioli
+numeric middlebar_; middlebar_=10/31; % as measured
+beginchar("E", u#+cap_jut#+5.25thick#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pcshiftx := 0.5u;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % prepare for arms and serifs
+pos3(medium,90); pos4(dslab,0);
+x1=x3; top y3r=h; rt x4l=x2l+topbar_*side;
+ bot y4=vround(h-if monospace: 2 fi vstretch*thick);
+arm(3,4,d,serif_darkness,0); % top arm and beak
+pos5(thin,-90); pos0(thin,90); pos6(dslab,0); pos7(dslab,0);
+x5=x0=x1; y5=y0=hround(h/2); rt x6r=rt x7r= x1r+middlebar_*side;
+top y6-bot y7= thin+3/4thick; y5=.5[y6,y7];
+arm(5,6,e,eta,0); arm(0,7,f,eta,0); % middle arms and beaks
+pos8(medium,-90); pos9(dslab,0); x8=x2; bot y8r=0; rt x9r=hround(x2l+5.25thick);
+y9=y8r+thick;
+foot(8,9,g,serif_darkness,0.25thick); % lower arm
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut);
+ if not monospace: temp_:=slab; slab:=medium; tmp_:=bracket; bracket:=cap_jut+medium;
+ serif(2,1,c,serif_darkness,cap_jut);
+ slab:=temp_; bracket:=tmp_; fi fi
+proofpcbb(2, cap_jut+0.5thick, 0);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar; % end of "E"
+
+
+cmchar "Pacioli's letter F";
+numeric topbar_; topbar_=1/2; % half the square for Pacioli
+numeric middlebar_; middlebar_=10/31; % as measured
+beginchar("F", u#+1/2side#+cap_jut#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pcshiftx := 0.5u;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % prepare for arms and serifs
+pos3(medium,90); pos4(dslab,0);
+x1=x3; top y3r=h; rt x4l= x2l+topbar_*side;
+ bot y4=vround(h-if monospace: 2 fi vstretch*thick);
+arm(3,4,d,serif_darkness,0); % top arm and beak
+pos5(thin,-90); pos0(thin,90); pos6(dslab,0); pos7(dslab,0);
+x5=x0=x1; y5=y0=hround(h/2); rt x6r=rt x7r= x1r+middlebar_*side;
+top y6-bot y7= thin + 3/4thick; y5=.5[y6,y7];
+arm(5,6,e,eta,0); arm(0,7,f,eta,0); % middle arms and beaks
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut); serif(2,1,c,serif_darkness, cap_jut);
+ fi
+proofpcbb(2, cap_jut+0.5thick, 0);
+penlabels(0,1,2,3,4,5,6,7); endchar; % end of "F"
+
+
+cmchar "Pacioli's original letter G";
+beginchar("g",2u#+.925side#, cap_height#, 0);
+adjust_fit(0, cap_serif_fit#);
+pcshiftx := u;
+if monospace: pickup fine.nib; else: pickup tiny.nib;fi
+numeric alpha; alpha=w-u-thick;
+pos2(thin, 90); x2=.5[x3r,x0r]; top y2r=h;% topmost pen position
+pos3(thick,180); lft z3r=(u,h/2);
+pos4(thin, 270); x4=x2; bot y4r=0;
+pos0(thick,0); lft z0l=(w+thick-u,h/2);
+path p, p', line.u, line.b; line.u=(alpha,1.5h)--(alpha,h/2);
+ line.b=(.5[alpha,x0],0)--(.5[alpha,x0],h/2);
+p=pulled_arc.r(0,2)&pulled_arc.r(2,3)&pulled_arc.r(3,4)
+ &pulled_arc.r(4,0)&cycle;
+p'=pulled_arc.l(0,2)&pulled_arc.l(2,3)&pulled_arc.l(3,4)
+ &pulled_arc.l(4,0)&cycle;
+z'1l=line.u intersectionpoint p'; z'1r=line.u intersectionpoint p;
+bot rt z1l=z'1l; top rt z1r=z'1r; z1=.5[z1l,z1r];
+z'5l=line.b intersectionpoint p'; z'5r=line.b intersectionpoint p;
+z5r = (side+pcshiftx-3/4thick, 3/4thick); z5l = (x5r+o, y5r+1.5thick); z5=.5[z5r, z5l];
+if not monospace:
+ x1l:=x1l+.6thin; y1l:=y1r-1.0thick-2tiny;
+ y5l:=2thick+y5r-2tiny; fi
+if monospace: x1:=x1l:=x1r:=x5; y1:=y1-thin; y1l:=y1l-thin; y1r:=y1r-.6thin; fi
+ % readjust to have a better opening in CDTT
+numeric slope_factor; if monospace:slope_factor=4/3; else:slope_factor=3/4; fi
+path p,p',line.o, line.i;
+p=z1r{-1,slope_factor}..{left}pulled_arc.r(2,3)&
+ pulled_arc.r(3,4){right}..tension 0.9..z5r;
+p'= reverse
+ (z1l..tension 0.9..{left}pulled_arc.l(2,3)&pulled_arc.l(3,4){right}
+ ..tension 0.9..z5l);
+pos7(thick,0);
+top z7=(x1r,7/2thick);
+numeric counter; counter=0;
+forever:
+ counter:=counter+1;
+ line.o:=z7r--(x7r,-2o); line.i:=(z7r-(thick,0))--(x7r-thick,-2o);
+ numeric t[],tt[];
+ (t1,tt1)=p intersectiontimes line.o; (t2,tt2)=p' intersectiontimes line.i;
+ exitif t1*t2>0; forsuffixes $$=l, r: x7$$:=x7$$-.1u; endfor
+ x7:=x7-.1u; endfor
+x6r=x7r; x6l=x7l; bot y6r=ypart point t1 of p; bot y6l=ypart point t2 of p';
+z6=.5[z6r,z6l];
+p:= subpath(0,t1) of p..(z6r-xeps+yeps)--(z6l+xeps+yeps)..
+ subpath(t2,infinity) of p'..(z1l+xeps)--cycle;
+filldraw p;
+filldraw z6l--z7l--z7r--z6r--cycle;
+if serifs: serif(7,6,a,serif_darkness,-srad);
+ serif(7,6,b,serif_darkness, srad); fi
+proofpcbb(3, 0.5thick, 0.5side);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+cmchar "Pacioli's letter G";
+beginchar("G",2u#+.925side#, cap_height#, 0);
+adjust_fit(0, cap_serif_fit#);
+pcshiftx := u;
+if monospace: pickup fine.nib; else: pickup tiny.nib;fi
+numeric alpha; alpha=w-u-thick;
+pos2(thin, 90); x2=.5[x3r,x0r]; top y2r=h+o;% topmost pen position
+pos3(thick,180); lft z3r=(u,h/2);
+pos4(thin, 270); x4=x2; bot y4r=-o;
+pos0(thick,0); lft z0l=(w+thick-u,h/2);
+path p, p', line.u, line.b; line.u=(alpha,1.5h)--(alpha,h/2);
+ line.b=(.5[alpha,x0],0)--(.5[alpha,x0],h/2);
+p=pulled_arc.r(0,2)&pulled_arc.r(2,3)&pulled_arc.r(3,4)
+ &pulled_arc.r(4,0)&cycle;
+p'=pulled_arc.l(0,2)&pulled_arc.l(2,3)&pulled_arc.l(3,4)
+ &pulled_arc.l(4,0)&cycle;
+z'1l=line.u intersectionpoint p'; z'1r=line.u intersectionpoint p;
+bot rt z1l=z'1l; top rt z1r=z'1r; z1=.5[z1l,z1r];
+z'5l=line.b intersectionpoint p'; z'5r=line.b intersectionpoint p;
+z5r = (side+pcshiftx-3/4thick, 3/4thick); z5l = (x5r+o, y5r+1.5thick); z5=.5[z5r, z5l];
+if not monospace:
+ x1l:=x1l+.6thin; y1l:=y1r-1.0thick-2tiny;
+ y5l:=2thick+y5r-2tiny; fi
+if monospace: x1:=x1l:=x1r:=x5; y1:=y1-thin; y1l:=y1l-thin; y1r:=y1r-.6thin; fi
+ % readjust to have a better opening in CDTT
+numeric slope_factor; if monospace:slope_factor=4/3; else:slope_factor=3/4; fi
+path p,p',line.o, line.i;
+p=z1r{-1,slope_factor}..{left}pulled_arc.r(2,3)&
+ pulled_arc.r(3,4){right}..tension 0.9..z5r;
+p'= reverse
+ (z1l..tension 0.9..{left}pulled_arc.l(2,3)&pulled_arc.l(3,4){right}
+ ..tension 0.9..z5l);
+pos7(thick,0);
+top z7=(x1r,7/2thick);
+numeric counter; counter=0;
+forever:
+ counter:=counter+1;
+ line.o:=z7r--(x7r,-2o); line.i:=(z7r-(thick,0))--(x7r-thick,-2o);
+ numeric t[],tt[];
+ (t1,tt1)=p intersectiontimes line.o; (t2,tt2)=p' intersectiontimes line.i;
+ exitif t1*t2>0; forsuffixes $$=l, r: x7$$:=x7$$-.1u; endfor
+ x7:=x7-.1u; endfor
+x6r=x7r; x6l=x7l; bot y6r=ypart point t1 of p; bot y6l=ypart point t2 of p';
+z6=.5[z6r,z6l];
+p:= subpath(0,t1) of p..(z6r-xeps+yeps)--(z6l+xeps+yeps)..
+ subpath(t2,infinity) of p'..(z1l+xeps)--cycle;
+filldraw p;
+filldraw z6l--z7l--z7r--z6r--cycle;
+if serifs: serif(7,6,a,serif_darkness,-srad);
+ serif(7,6,b,serif_darkness, srad); fi
+proofpcbb(3, 0.5thick, 0.5side);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+cmchar "Pacioli's letter H";
+beginchar("H", u#+side#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+forsuffixes t=1,2,3,4: pos.t(thick,0); endfor
+lft x1l=lft x2l=.5u+cap_jut; bot y2=0; top y1=h;
+filldraw stroke z1e--z2e; % left vertical stem
+x3=x4=w-x1; y3=y1; y4=y2;
+filldraw stroke z3e--z4e; % right vertical stem
+pos5(thin, 90); pos6(thin,90);
+x5=.5[x1r,x1l]; x6=w-x5; top y5r=top y6r=h/2;
+filldraw stroke z5e--z6e; % horizontal crossbar
+if serifs:
+ serif(1,2,a,serif_darkness,-cap_jut); serif(1,2,b,serif_darkness,cap_jut);
+ serif(2,1,c,serif_darkness,-cap_jut); serif(2,1,d,serif_darkness,cap_jut);
+ serif(3,4,e,serif_darkness,-cap_jut); serif(3,4,f,serif_darkness,cap_jut);
+ serif(4,3,g,serif_darkness,-cap_jut); serif(4,3,h,serif_darkness,cap_jut); fi
+proofpcbb(2, cap_jut+0.5thick, 0);
+labels(1,2,3,4,5,6); endchar;
+
+
+cmchar "Pacioli's letter I";
+beginchar("I", .5u#+2cap_jut#+cap_stem#+.5u#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+pickup tiny.nib; checkthin; pos1(cap_stem,0); pos2(cap_stem,0);
+x1=x2=hround(w/2); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % vertical stem
+if serifs:
+ serif(1, 2, a, serif_darkness, -cap_jut);
+ serif(1, 2, b, serif_darkness, cap_jut); % top lft,rt
+ serif(2, 1, c, serif_darkness, -cap_jut);
+ serif(2, 1, d, serif_darkness, cap_jut); % bot lft,rt
+fi
+proofpcbb(2, 0.5side, 0);
+penlabels(1, 2); endchar;
+
+
+cmchar "Pacioli's letter J";
+%% Pacioli didn't have a J, so use Durer's.
+beginchar("J",u#+3thick#+cap_jut#,cap_height#, 1/4 cap_height#);
+adjust_fit(0, cap_serif_fit#); pickup tiny.nib;
+pos1(thick,0); pos2(thick,0); pos3(thin, -90);
+top y1=h; rt x1r=w-.5u-cap_jut; x2=x1; bot y2=0; lft x3=.5u; bot y3r=-d;
+filldraw stroke z1e--z2e{down}..{left}z3e;
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(1,2,b,serif_darkness,cap_jut); fi
+proofpcbb(2, 0.5side, 0);
+penlabels(1,2,3); endchar;
+
+
+cmchar "Pacioli's letter K";
+beginchar("K", 3/2u#+side#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0); pickup tiny.nib;
+pcshiftx := 3/4u;
+pair durer[]; % represent Pacioli's corner points
+durer1=(pcshiftx,side); durer2=(pcshiftx+side,side); durer3=(xpart durer1,0);
+ durer4=(xpart durer2,0);
+numeric diag_angle[];
+diag_angle1=angle(durer2-durer3);
+diag_angle2=angle(durer1-durer4);
+numeric alpha;
+alpha=((xpart durer2 - xpart durer1)++h)/h;
+pos1(thick,0); pos2(thick,0);
+lft x1l=lft x2l=pcshiftx+cap_jut;
+ top y1=h; bot y2=0; filldraw stroke z1e--z2e; % left stem
+pos3(alpha*medium,0); pos4(alpha*medium,0); z4l = (x2,h/2);
+top y3=h; z3r-z4r=whatever*(durer2-durer3);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+filldraw z4l--z3l--z3r--z4r--cycle; % upper diagonal stroke
+pos5(alpha*thick,0); pos6(alpha*thick,0);
+z5l = z4l;
+bot y6=0; z5r-z6r=whatever*(durer1-durer4);
+z10 = whatever[z3r,z4r]=whatever[z6r,z5r];
+filldraw z6l--z5l--z10--z6r--cycle; % bottom leg
+if serifs:
+ serif(1,2,a,serif_darkness,-cap_jut); serif(1,2,b,serif_darkness,cap_jut);
+ serif(2,1,c,serif_darkness,-cap_jut); serif(2,1,d,serif_darkness,cap_jut);
+ numeric old_jut, old_brack; old_jut=cap_jut; old_brack=bracket;
+ bracket:=.5old_brack;cap_jut:=.5old_jut;
+ if not monospace: serif(3,4,e,serif_darkness,-cap_jut); fi
+ bracket:=2old_brack; cap_jut:=2old_jut;
+ serif(3,4,f,.6serif_darkness,if monospace:.7 fi cap_jut);
+ bracket:=.5old_brack;cap_jut:=.5old_jut;
+ if not monospace: serif(6,5,g,serif_darkness,-cap_jut); fi
+ bracket:=2old_brack; cap_jut:=2old_jut;
+ serif(6,5,h,.6serif_darkness,if monospace:.7 fi cap_jut);
+ cap_jut:=old_jut; bracket:=old_brack;
+fi
+proofpcbb(2, pcshiftx+cap_jut+0.5thick, 0);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+
+cmchar "Pacioli's letter L";
+numeric topbar_; if monospace: topbar_=11/15;
+ else: topbar_=17/30; fi % Duerer's wierd value
+beginchar("L", u#+cap_jut#+5.75thick#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pcshiftx := 0.5u;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; % prepare for arms and serifs
+pos3(thin,90);
+pos8(medium,-90); pos9(dslab,0); x8=x2; bot y8r=0; rt x9r=hround(x2l+5.75thick);
+y9=y8r+1.5thick; foot(8,9,g,serif_darkness,0.75thick);
+ % lower arm
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut); serif(1,2,d,serif_darkness,cap_jut);
+ if not monospace: temp_:=slab; slab:=medium; tmp_:=bracket; bracket:=thick+medium;
+ serif(2,1,c,serif_darkness,thick);
+ slab:=temp_; bracket:=tmp_; fi fi
+proofpcbb(2, cap_jut+0.5thick, 0);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar; % end of "L"
+
+
+cmchar"Pacioli's letter M";
+beginchar("M", u#+cap_jut#+side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+pcshiftx := 0.5u;
+pos1(medium,0); pos2(medium,0);
+ lft x2l=pcshiftx+cap_jut; top y1=h; bot y2=0;
+ lft x1l = lft x2l + side*sind(1); % left leg has 1 degree angle
+pos3(thick,0); pos4(thick,0);
+ x4r=pcshiftx+side; top y3=h; bot y4=0;
+ x3r=x4r-side*sind(3); % right leg has 3 degree angle
+numeric long, short, hypot, alpha; long=side; short=1/2side;
+hypot=long++short; alpha=hypot/long;
+pos5(alpha*thick,0); pos6(alpha*thick,0); % left inner
+z5l=(2pcshiftx,side); bot lft z6l=(pcshiftx+1/2side,0);
+pos7(alpha*medium,0); pos8(alpha*medium,0); % right inner
+z7r=z6l; z8r=z3r; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+z10=whatever[z5l,z6l]=whatever[z1r,z2r];
+z11=whatever[z7r,z8r]=whatever[z3l,z4l];
+filldraw z5r--z0--z8l--z3r--z4r--z4l--z11--z6l--z10--z2r--z2l--z1l--cycle;
+if serifs:
+ serif(2,1,a,serif_darkness,-cap_jut); serif(1,2,b,serif_darkness,-lrad);
+ serif(3,4,c,serif_darkness, lrad); serif(4,3,d,serif_darkness, lrad);
+ serif(2,1,e,serif_darkness,cap_jut); serif(4,3,f,serif_darkness,-cap_jut);
+ % lower, inner serifs
+ fi
+proofpcbb(2, cap_jut+0.5medium, 0);
+penlabels(0,1,2,3,4,5,6,7,8,10,11); endchar;
+
+
+cmchar "Pacioli's letter N";
+beginchar("N", u#+2cap_jut#+.8side#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+numeric long, short, hypot, alpha; long=h; short=side-2cap_jut;
+hypot=long++short; alpha=hypot/long;
+pos1(medium,0); pos2(medium,0); lft x1l=lft x2l=.5u+cap_jut; top y1=h; bot y2=0;
+pos3(medium,0); pos4(medium,0); x3=x4; x3=x2+side-2cap_jut-medium; y3=y1; y4=y2;
+pos 5(alpha*thick,0); pos6(alpha*thick,0);
+z5r=z1r; z6l=z4r; z0=whatever[z1r,z2r]=whatever[z5l,z6l]; % under notch point
+z0'=whatever[z5r,z6r]=whatever[z3l,z4l];
+filldraw z1r--z1l--z2l--z2r--z0--z6l--z3r--z3l--z0'--cycle;
+if serifs:
+ serif(2,1,b,serif_darkness,-cap_jut); serif(2,1,c,serif_darkness,cap_jut);
+ % bottom, left serifs
+ serif(3,4,d,serif_darkness,-cap_jut);serif(3,4,e,serif_darkness,cap_jut);
+ % top right serifs
+ z.a=(x1l-1.5cap_jut,y1); pickup tiny.nib; filldraw
+ z0{z0-z4r}..{left}(z.a-(0,eps))..z.a--z1r--cycle;
+ % top left serif
+ serif(1,2,a,serif_darkness,-lrad);
+ fi
+proofpcbb(2, cap_jut+0.5medium, 0);
+penlabels(0,0',1,2,3,4,5,6); endchar;
+
+
+cmchar "Pacioli's original letter O";
+beginchar("o", 2u#+side#+2o#, cap_height#, 0);
+adjust_fit(0,0); pair durer[];
+pcshiftx := u;
+x2r=pcshiftx-o; x4r=w-pcshiftx+o; y1r=h; y3r=0; z0=(w/2,h/2);
+z0=.5[z5,z6]; numeric axis_angle;
+durer1=(x2r,y1r-o); durer2=(x4r, ypart durer1);
+durer3=(xpart durer1, y3r+o); durer4=(xpart durer2, ypart durer3);
+axis_angle=angle(durer2-durer3);
+z5-z6=(thick,0)rotated axis_angle;
+y2r=y6; y4r=y5; x1r=x5; x3r=x6;
+forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor
+x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r;
+x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r;
+path p,p';
+p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)&
+ pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle;
+path anti_diag; anti_diag=z0--durer1;
+z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90);
+x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270);
+path diag; diag=z0--durer2;
+z41r=diag intersectionpoint p; penpos41(thick, axis_angle);
+x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180);
+if not monospace: p'=
+ z1l{left}..z21l..z2l{down}..z32l..
+ z3l{right}..z43l..
+ z4l{up}..z41l..{left}cycle;
+ else:p'=z1l..z21l..z32l..z3l..z43l..z41l..cycle; fi
+fill p; unfill p';
+proofpcbb(0, 0.5side, 0.5side);
+penlabels(0,1,2,3,4,5,6,21,32,43,41); endchar;
+
+
+cmchar "Pacioli's letter O";
+beginchar("O", 2u#+side#+2o#, cap_height#, 0);
+adjust_fit(0,0); pair durer[];
+pcshiftx := u;
+x2r=pcshiftx-o; x4r=w-pcshiftx+o; y1r=h+o; y3r=-o; z0=(w/2,h/2);
+z0=.5[z5,z6]; numeric axis_angle;
+durer1=(x2r,y1r-o); durer2=(x4r, ypart durer1);
+durer3=(xpart durer1, y3r+o); durer4=(xpart durer2, ypart durer3);
+axis_angle=angle(durer2-durer3);
+z5-z6=(thick,0)rotated axis_angle;
+y2r=y6; y4r=y5; x1r=x5; x3r=x6;
+forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor
+x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r;
+x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r;
+path p,p';
+p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)&
+ pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle;
+path anti_diag; anti_diag=z0--durer1;
+z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90);
+x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270);
+path diag; diag=z0--durer2;
+z41r=diag intersectionpoint p; penpos41(thick, axis_angle);
+x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180);
+if not monospace: p'=
+ z1l{left}..z21l..z2l{down}..z32l..
+ z3l{right}..z43l..
+ z4l{up}..z41l..{left}cycle;
+ else:p'=z1l..z21l..z32l..z3l..z43l..z41l..cycle; fi
+fill p; unfill p';
+proofpcbb(0, 0.5side, 0.5side);
+penlabels(0,1,2,3,4,5,6,21,32,43,41); endchar;
+
+
+cmchar "Pacioli's letter P";
+beginchar("P", 1.5u#+P_width#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, 0);
+pickup tiny.nib; pos1(thick,0); pos2(thick,0);
+top lft z1l=(.5u+cap_jut,h); bot lft z2l=(.5u+cap_jut,0);
+filldraw stroke z1e--z2e; % vertical stem
+pos3(medium,90); pos4(medium,90); pos5(thick,0);
+pos6(if not monospace and serifs: .5thin else:thin fi,-90);
+top y3r=top y4r=h; x3=x1; x4=x1r+thick; filldraw stroke z3e--z4e;
+x6=x4; y6=hround(h/2 -medium); rt x5r=hround(x2+0.65side-cap_jut-0.5medium); y5=.75side;
+y7=y6; if serifs: x7=.5[rt x1r, x6]; else: x7=x3; fi
+pos7(if not monospace and serifs:.5thin else:thin fi,-90);
+filldraw stroke pulled_super_arc.e(4,5,eta)&pulled_super_arc.e(5,6,eta)
+ ..z7e; % lobe
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut);
+ serif(2,1,c,serif_darkness,cap_jut); fi
+proofpcbb(2, cap_jut+0.5thick, 0);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+
+cmchar "Pacioli's original letter Q";
+beginchar("q", 2u#+side#+2o#, cap_height#, 0);
+adjust_fit(0,0); pair durer[];
+pcshiftx := u;
+x2r=pcshiftx-o; x4r=w-pcshiftx+o; y1r=h; y3r=0; z0=(w/2,h/2);
+z0=.5[z5,z6]; numeric axis_angle;
+durer1=(x2r,y1r-o); durer2=(x4r, ypart durer1);
+durer3=(xpart durer1, y3r+o); durer4=(xpart durer2, ypart durer3);
+axis_angle=angle(durer2-durer3);
+z5-z6=(thick,0)rotated axis_angle;
+y2r=y6; y4r=y5; x1r=x5; x3r=x6;
+forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor
+x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r;
+x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r;
+path p,p';
+p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)&
+ pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle;
+path anti_diag; anti_diag=z0--durer1;
+z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90);
+x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270);
+path diag; diag=z0--durer2;
+z41r=diag intersectionpoint p; penpos41(thick, axis_angle);
+x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180);
+if not monospace: p'=
+ z1l{left}..z21l..z2l{down}..z32l..
+ z3l{right}..z43l..
+ z4l{up}..z41l..{left}cycle;
+ else:p'=z1l..z21l..z32l..z3l..z43l..z41l..cycle; fi
+fill p; unfill p';
+z10r=z3l; z10l=z3r;
+z11r=(pcshiftx+side,-0.25side); z11l=z11r-(0,thick);
+z12l=z11l+(0.5side+medium,-thick); z12r=z12l+(0,0.5thin);
+filldraw z10r..z11r..z12r--z12l..z11l..z10l--cycle;
+proofpcbb(0, 0.5side, 0.5side);
+penlabels(0,1,2,3,4,5,6,10,11,12,13,14,15); endchar;
+
+
+cmchar "Pacioli's letter Q";
+beginchar("Q", 2u#+side#+2o#, cap_height#, 0);
+adjust_fit(0,0); pair durer[];
+pcshiftx := u;
+x2r=pcshiftx-o; x4r=w-pcshiftx+o; y1r=h+o; y3r=-o; z0=(w/2,h/2);
+z0=.5[z5,z6]; numeric axis_angle;
+durer1=(x2r,y1r-o); durer2=(x4r, ypart durer1);
+durer3=(xpart durer1, y3r+o); durer4=(xpart durer2, ypart durer3);
+axis_angle=angle(durer2-durer3);
+z5-z6=(thick,0)rotated axis_angle;
+y2r=y6; y4r=y5; x1r=x5; x3r=x6;
+forsuffixes $=1,2,3,4: z$=.5[z$l,z$r]; endfor
+x1l=x3r; y1l-y6=y6-y3r; x5-x2l=x4r-x5; y2l=y4r;
+x3l=x1r; y1r-y5=y5-y3l; x4l-x6=x6-x2r; y4l=y2r;
+path p,p';
+p=pulled_arc.r(1,2)&reverse pulled_arc.r(3,2)&
+ pulled_arc.r(3,4)&reverse pulled_arc.r(1,4)&cycle;
+path anti_diag; anti_diag=z0--durer1;
+z21r=p intersectionpoint anti_diag; penpos21(thin, axis_angle+90);
+x43r=w-x21r; y43r=h-y21r; penpos43(thin, axis_angle+270);
+path diag; diag=z0--durer2;
+z41r=diag intersectionpoint p; penpos41(thick, axis_angle);
+x32r=w-x41r; y32r=h-y41r; penpos32(thick, axis_angle+180);
+if not monospace: p'=
+ z1l{left}..z21l..z2l{down}..z32l..
+ z3l{right}..z43l..
+ z4l{up}..z41l..{left}cycle;
+ else:p'=z1l..z21l..z32l..z3l..z43l..z41l..cycle; fi
+fill p; unfill p';
+z10r=z3l; z10l=z3r;
+z11r=(pcshiftx+side,-0.25side); z11l=z11r-(0,thick);
+z12l=z11l+(0.5side+medium,-thick); z12r=z12l+(0,0.5thin);
+filldraw z10r..z11r..z12r--z12l..z11l..z10l--cycle;
+proofpcbb(0, 0.5side, 0.5side);
+penlabels(0,1,2,3,4,5,6,10,11,12,13,14,15); endchar;
+
+
+cmchar "Pacioli's letter R";
+beginchar("R", u#+side#, cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(thick,0); pos2(thick,0);
+top lft z1l=(.5u+cap_jut,h); bot lft z2l=(.5u+cap_jut,0);
+filldraw stroke z1e--z2e; % vertical stem
+pos3(thin,90); pos4(thin,90); pos5(thick,0);
+pos6(thin, -90);
+top y3r=top y4r=h; x3=x1; x4=x1r+thick;
+x6=x4; y6=hround h/2; rt x5r=hround(.5u+P_width if not monospace:
+ +1/2thin fi); y5=.5[y4,y6];
+y7=y6; x7=x3; pos7(thin, -90);
+filldraw stroke z3e--pulled_super_arc.e(4,5,eta)&
+ pulled_super_arc.e(5,6,eta)..z7e; % lobe
+numeric half_letter_width; 2half_letter_width+1/2u=w;
+if serifs: half_letter_width:=half_letter_width+1/2u;
+ else: half_letter_width:=half_letter_width-1.6thin; fi
+path p; p=pulled_super_arc.r(5,6,eta)..z7r;
+z0r=p intersectionpoint ((half_letter_width,0)--(half_letter_width,h));
+path circ_; circ_= (((halfcircle scaled 2thick) rotated 180) shifted z0r);
+z0l= p intersectionpoint circ_;
+if not monospace: z0'=(.45[half_letter_width,w],0);
+ else: z0'=(.42[half_letter_width,w],0); fi
+numeric tail_angle; tail_angle=angle(z0l-z0');
+penpos8(thick, tail_angle-90); z8l=whatever[z0', z0l];
+ x8=1/5[half_letter_width,w];
+penpos9(2/3thick,tail_angle-90); z9r=whatever[z0r, z8r];
+ x9r=.5[half_letter_width, w];
+penpos10(if monospace:1/2 dslab else: .5thin fi,90); z10l=(w,0);
+fill z0l--z8l...{right}z10l--z10r{-w,1/4h}..z9r--z0r--cycle; % tail
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(2,1,b,serif_darkness,-cap_jut);
+ serif(2,1,c,serif_darkness,cap_jut); fi
+proofpcbb(2, 1.5cap_jut+0.5thick, 0);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); labels(0'); endchar;
+
+
+cmchar "The Knuthian S";
+beginchar("S", 2u#+1/2 side# if not monospace:+thick# fi, cap_height#, 0);
+adjust_fit(0,0); pickup tiny.nib;
+pair durer[]; % points to contain corner coords of Durer square
+ypart durer3=ypart durer4=0; xpart durer4-xpart durer1=side;
+xpart durer1=u-1.5thick;
+durer1=(xpart durer3, h); durer2=(xpart durer 4, ypart durer1);
+numeric slope, diag_angle; diag_angle=angle(durer2-durer3);
+slope=-if not monospace: 3/4 else: 1/2 fi h/(xpart durer4-xpart durer3);
+pos0(thick,diag_angle); x0=.52[xpart durer1, xpart durer2];
+y0=h/2;
+lft x3l=u if not monospace:+2/3thick fi; rt x3r=lft x3l+5/6thick;
+pos2(thin,-diag_angle); top y2l=h;
+if x0-x3r>thick: x2l=x0 if monospace:+.4thin fi; else:
+ x2l=x0r; slope:=-1/2; fi
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r);
+pos7(thin,-diag_angle); x7r=x0; bot y7r=0; rt x6r=w-if monospace:.75 fi u;
+ lft x6l=rt x6r-thick;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r);
+pos1(max(currentbreadth+eps,5/6 thick),-90);
+top y1l=h-thin; rt x1=x0+2thick+o;
+pos8(1.5thick,-80);lft x8r=u; bot y8r=medium;
+if not monospace:
+ filldraw z1l..z2l{left}..{down}z3l..z4l--z5l..{down}z6l..{left}z7l..z8l
+ --z8r..{right}z7r..{up}z6r..z5r--z4r..{up}z3r..{right}z2r..z1r--cycle;
+ else: draw z1l..z2l{left}..{down}z3l..z4l--z5l..{down}z6l..{left}z7l..z8l;
+ draw z8r..{right}z7r..{up}z6r..z5r--z4r..{up}z3r..{right}z2r..z1r;
+ fi
+proofpcbb(0, 0.5side, 0.5side);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "Pacioli's letter T";
+beginchar("T",2u#+side#-2medium#, cap_height#,0);
+adjust_fit(0,0); pickup tiny.nib;
+pos1(thick,0); pos2(thick,0); .5[x1r,x1l]=w/2; .5[x2r,x2l]=w/2;
+top y1=h; bot y2=0; filldraw stroke z1e--z2e; % central stem
+numeric top_bar; top_bar=0.5side-medium; % half length of top bar
+pos3(medium,90); pos4(dslab,0);
+x1=x3; top y3r=h; rt x4l=x1+top_bar;
+ bot y4=vround(h-if monospace: 2 fi vstretch*(medium+cap_jut));
+arm(3,4,c,serif_darkness,0);
+pos5(dslab,180);
+lft x5r=x1-top_bar;
+ bot y5= bot y4;
+arm(3,5,d,serif_darkness,0);
+if serifs:
+ serif(2,1,a,serif_darkness,-cap_jut);serif(2,1,b,serif_darkness,cap_jut);
+ fi
+proofpcbb(2, 0.5side, 0);
+penlabels(1,2,3,4); endchar;
+
+
+cmchar "Pacioli's letter U";
+beginchar("U", u#+2cap_jut#+.8side#, cap_height#,0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+pickup tiny.nib; pos1(thick,0); pos2(thick,0); pos2'(thick,180);
+pos3(medium,-90); pos4(medium,0); pos5(medium,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=0; z2'=z2;
+lft x1l=hround .5u+cap_jut;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_super_arc.e(2',3,eta)
+ & pulled_super_arc.e(3,4,eta)&z4e--z5e;
+if serifs: serif(1,2,a,serif_darkness,-cap_jut);
+ serif(1,2,b,serif_darkness,cap_jut);
+ serif(5,4,c,serif_darkness,-cap_jut); serif(5,4,d,serif_darkness,cap_jut); fi
+penlabels(1,2,3,4,5); endchar;
+
+
+cmchar "Pacioli's letter V";
+beginchar("V",u#+side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+pcshiftx := 0.5u;
+z10 = (pcshiftx+0.5side,0);
+numeric alpha; alpha=((0.5h-cap_jut)++(h))/(h);
+pos1(alpha*thick,0); pos2(alpha*thick,0);
+pos3(alpha*medium,0); pos4(alpha*medium,0);
+top y1=top y4=h; lft x1l=pcshiftx+cap_jut; x4r=x1l+side-2cap_jut;
+lft x2l=hround(pcshiftx+0.5side); x3r=x2l; bot y2=bot y3=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l]; % notch point
+filldraw z0--diag_end(0,4l,1,1,4r,3r)--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle;
+if serifs: bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut;
+ pickup tiny.nib; numeric jut_factor;
+ if monospace: jut_factor=1; else: jut_factor=3/4; fi
+ serif(1,2,a,.8serif_darkness,-Lrad);
+ serif(4,3,d,.8serif_darkness,lrad);
+ bracket:=jut_factor*bracket;
+ serif(1,2,b,7/8 serif_darkness, jut_factor*cap_jut);
+ serif(4,3,c,7/8 serif_darkness,-jut_factor*cap_jut); fi
+proofpcbb(10, 0.5side, 0);
+penlabels(0,1,2,3,4); endchar;
+
+
+cmchar "Pacioli's letter W";
+numeric alpha;
+ alpha=((cap_height#+cap_jut#)++(.4side#+cap_jut_factor*cap_jut#))/
+ (cap_height#+cap_jut#);
+beginchar("W", 2cap_jut_factor*cap_jut#+1.6side#-alpha*thick#, cap_height#, 0);
+adjust_fit(.5cap_serif_fit#, cap_serif_fit#); pickup tiny.nib;
+mid_corr=if monospace: -apex_corr else: 1/3jut fi;
+pos1(alpha*thick,0); pos2(alpha*thick,0);
+pos3(alpha*medium,0); pos4(alpha*medium,0);
+pos5(alpha*thick,0); pos6(alpha*thick,0);
+pos7(alpha*medium,0); pos8(alpha*medium,0);
+numeric V_width; V_width=2cap_jut_factor*cap_jut+4/5side;
+if not monospace:
+ top y1=top y4=h; lft x1l=cap_jut_factor*cap_jut; x4r=V_width-x1l;
+ lft x2l=hround V_width/2; x3r=x2l; bot y2=bot y3=0;
+ pair shift_amt; ypart shift_amt=0;
+ xpart shift_amt=V_width-2cap_jut_factor*cap_jut-alpha*(thick);
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l]; % notch point
+ path p; p=z0--diag_end(0,4l,1,1,4r,3r)--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle;
+ filldraw p; filldraw (p shifted shift_amt); % the 2 V's
+ forsuffixes t=1,2,3,4: z[t+4]=z.t shifted shift_amt; endfor
+else: top y1=h; lft x1l=cap_jut_factor*cap_jut; bot y2=bot y3=0;
+ x2l+apex_corr=x3l;
+ x8=w-x1; y8=y1; x2-x1=x4-x3=x6-x5=x8-x7;
+ x6l+apex_corr=x7l; y6=y7=y2;
+ y4:=vround .6h; y5=y4;
+ x5=x4;
+ y4l:=y4r:=y4; % ??
+ z0 =whatever[z1r,z2r];
+ z0'=whatever[z7l,z8l]; y0=y0'=h/9;
+ z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+ filldraw z0--diag_end(0,4l,1,1,4r,3r)--z2l--diag_end(2l,1l,1,1,1r,0)--cycle;
+ filldraw z0'--diag_end(0',8l,1,1,8r,7r)--z7l--diag_end(7l,5l,1,1,5r,0')
+ --cycle; fi
+if serifs: bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut;
+ pickup tiny.nib; numeric jut_factor;
+ if monospace: jut_factor=1.8; else: jut_factor=3/4; fi
+ serif(1,2,a,.8serif_darkness,-cap_jut);
+ serif(8,7,f,.8serif_darkness,cap_jut);
+ if not monospace: serif(5,6,d,.8serif_darkness,cap_jut);
+ serif(5,6,c,.8serif_darkness,-cap_jut); fi
+ bracket:=jut_factor*bracket;
+ serif(1,2,b,7/8 serif_darkness, jut_factor*cap_jut);
+ serif(8,7,e,7/8 serif_darkness,-jut_factor*cap_jut);
+ fi
+penlabels(0,0',1,2,3,4,5,6,7,8,45); endchar;
+
+
+cmchar "Pacioli's letter X";
+beginchar("X", u#+side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#);
+pcshiftx := 0.5u;
+z10=(pcshiftx+0.5side, 0.5side); % center of the square
+numeric alpha; alpha=(h++(h-2thick))/h;
+penpos1(alpha*thick,0); penpos4(alpha*thick,0);
+penpos2(alpha*medium,0); penpos3(alpha*medium,0);
+lft x3l = pcshiftx+thick; y3=0; y2=side;
+0.5[z3l,z2l]=z10;
+y4 = 0; y1 = side;
+lft x1l = pcshiftx+1.5thick;
+0.5[z4l,z1l]=z10;
+filldraw z1l--z1r--z4r--z4l--cycle; % draw the thick limb
+filldraw z2l--z2r--z3r--z3l--cycle; % draw the other limb
+if serifs: bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut;
+ pickup tiny.nib; numeric jut_factor;
+ if monospace: cap_jut:=.5cap_jut; jut_factor=1; else: jut_factor=3/4; fi
+ serif(1,4,a,.8serif_darkness,-Lrad);
+ serif(4,1,d,.8serif_darkness,cap_jut);
+ serif(2,3,f,.8serif_darkness,cap_jut);
+ serif(3,2,g,.8serif_darkness,-lrad);
+ bracket:=jut_factor*bracket;
+ serif(1,4,b,7/8 serif_darkness,.75cap_jut);
+ serif(4,1,c,7/8 serif_darkness,-.75cap_jut);
+ serif(2,3,e,7/8 serif_darkness,-.75cap_jut);
+ serif(3,2,h,7/8 serif_darkness,.75cap_jut); fi
+proofpcbb(10, 0.5side, 0.5side);
+penlabels(1,2,3,4); endchar;
+
+
+cmchar "Pacioli's letter Y";
+beginchar("Y", u#+side#, cap_height#, 0);
+adjust_fit(cap_serif_fit#, cap_serif_fit#); pickup pencircle scaled 0pt;
+pcshiftx := 0.5u;
+z100 = (pcshiftx+0.5side,0.5side); % center of the square
+numeric alpha, long, short, hypot; long=h/2;
+short=0.5side-thick;
+ hypot=long++short; alpha=hypot/long;
+penpos1(alpha*thick,0);
+lft x1l=pcshiftx+thick;
+top y1=h;
+penpos4(alpha*medium,0); y4=y1; x4r=x1l+side-2thick;
+penpos2(alpha*thick,0); penpos3(alpha*medium,0);
+y2 = y3 = 0.5side;
+penpos5(thick,0); penpos6(thick,0);
+z2l = z3r = z100;
+z6 = (pcshiftx+0.5side,0);
+z5 = (x6,side);
+z0=whatever[z1r, z2r]=whatever[z3l,z4l]; % notch point
+z7=whatever[z6l,z5l] = whatever[z2l,z1l]; % left stem and V
+z8=whatever[z6r,z5r] = whatever[z3r,z4r]; % right stem and V
+filldraw z1r--z0--z4l--z4r--z8--z6r--z6l--z7--z1l--cycle;
+if serifs: numeric jut_factor;
+ serif(6,5,e,serif_darkness,-cap_jut); serif(6,5,f,serif_darkness,cap_jut);
+ bracket:=cap_jut_factor*bracket; cap_jut:=cap_jut_factor*cap_jut;
+ if monospace: cap_jut:=.5cap_jut; jut_factor=1; else: jut_factor=3/4; fi
+ % top outer serifs
+ serif(1,2,a,serif_darkness,-lrad);serif(4,3,d,serif_darkness,lrad);
+ bracket:=jut_factor*bracket;
+ if monospace: cap_jut:=1.5cap_jut; fi
+ % top inner serifs
+ serif(1,2,b,7/8 serif_darkness,.6cap_jut);
+ serif(4,3,c,7/8 serif_darkness,-.6cap_jut);
+ fi
+proofpcbb(100, 0.5side, 0.5side);
+penlabels(0,1,2,3,4,5,6); endchar; % End of "Y"
+
+
+cmchar "Pacioli's letter Z";
+beginchar("Z", 2u#+.8side#, cap_height#,0);
+adjust_fit(0, 0); pickup tiny.nib;
+pcshiftx := u;
+numeric alpha, long, short, hypot;
+long=h; short=w-2u-thick; hypot=long++short;
+alpha=hypot/long;
+pos1(medium,90); pos2(medium,90); pos3(alpha*thick, 0);
+pos4(alpha*thick, 0); pos5(medium,-90); pos6(medium,-90);
+rt x3r=w-u; top y3=h; x4l=w-x3r; bot y4=0;
+top y1r=h; lft x1=u; y2=y1; rt x2=x3;
+bot y5r=bot y6r=0; lft x5=x4; rt x6=w-u;
+filldraw stroke z1e--z2e; % top bar
+filldraw stroke z3e--z4e; % diagonal
+filldraw stroke z5e--z6e; % bottom bar
+z100 = (0.5(x1+x3r),0.5side); % center of square
+if serifs: pickup crisp.nib; % prepare for arms and serifs
+ pos7(medium, 90); pos8(dslab,180); z7=z2; lft x8r=u;
+ bot y8=h-if monospace:2 fi vstretch*thick;
+ arm(7,8,a,serif_darkness,0); % upper dropped serif
+ pos9(medium,-90); z9=z5; pos10(dslab,0); rt x10r=w-u;
+ top y10=if monospace: 2.5 fi vstretch*thick;
+ arm(9,10,b,serif_darkness,0); fi
+proofpcbb(100, 0.5side, 0.5side);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/pacioli/cpcsl10.mf b/Master/texmf-dist/fonts/source/public/pacioli/cpcsl10.mf
new file mode 100644
index 00000000000..ea5d8738b03
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pacioli/cpcsl10.mf
@@ -0,0 +1,87 @@
+%%
+%% This is file `cpcsl10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pacioli.dtx (with options: `sl')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+ %%% CPCSL10.MF Computer Pacioli Slanted at 10 point design size.
+if unknown cmbase: input cmbase fi
+font_identifier:="CPCSL"; font_size 10pt#;
+u#:=20/36pt#; % unit width
+hstretch:=1; % horizontal stretching factors; in lieu of u
+vstretch:=1; % vertical stretching factor
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+half_height#:=1/2cap_height#; % half the height of caps
+side#:=cap_height#; % Height and width of the square
+thickfudge:=1/9; mediumfudge:=1/2; thinfudge:=1/3;
+thick#:=thickfudge*side#; % thickness of all thick limbs in Roman font
+medium#:=mediumfudge*thick#; % width of medium limbs
+thin#:=thinfudge*thick#; % thinness of all thin limbs
+eta:=2-sqrt2; % darkness for serifs; $\eta \approx 0.58$
+serif_darkness:=eta;
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+cap_stem#:=thick#; % thickness of majuscule stems
+stem#:=thick#; % thickness of minuscule stems
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=thick#; % vertical distance from serif base to tangent
+jut#:=thick#; % protrusion of lowercase serifs
+cap_jut#:=2/3thick#; % protrusion of uppercase serifs for I
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+slab#:=eps*1pt#; % serif and arm thickness
+dslab#=0; %slab value used in Pacioli fonts
+Hrad#:=2thick#; % Huge
+Lrad#:=3/2thick#; % Large
+lrad#:=thick#; % large
+srad#:=1/2thick#; % small
+trad#:=3/8thick#; % tiny
+hair#:=vair#:=thin#;
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=thin#; % amount of overshoot for diagonal junctions
+apex_corr#=0pt#; % fine tuning of overshoot
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+dot_size#:=38/36pt#; % size of dots
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+ligs:=2; % level of ligatures to be included
+
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+stem_corr#:=1/36pt#; % small refinement of stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+
+boolean whole_font; % try generating a complete font?
+whole_font:=false;
+
+generate cpctitle %% switch to the driver file---Pacioli title
+
diff --git a/Master/texmf-dist/fonts/source/public/pacioli/cpctitle.mf b/Master/texmf-dist/fonts/source/public/pacioli/cpctitle.mf
new file mode 100644
index 00000000000..8a23a501c21
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pacioli/cpctitle.mf
@@ -0,0 +1,202 @@
+%%
+%% This is file `cpctitle.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% pacioli.dtx (with options: `mfd')
+%%
+%% Copyright 1999 Peter R. Wilson
+%%
+%% This program is provided under the terms of the
+%% LaTeX Project Public License distributed from CTAN
+%% archives in directory macros/latex/base/lppl.txt.
+%%
+%% Author: Peter Wilson (CUA and NIST)
+%% now at: peter.r.wilson@boeing.com
+%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% MACRO SECTION %%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def makebox(text rule) =
+ for y=0,half_height,cap_height,body_height,x_height,-desc_depth,-body_depth:
+ rule((l,y)t_,(r,y)t_); endfor % horizontals
+ for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+ for x=u*(1+floor(1/u)) step u until r-1:
+ rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+enddef;
+
+
+def proofpcbb(suffix $)(expr xoff, yoff) =
+if proofing > 0:
+ x$bl = x$ - xoff; y$bl = y$ - yoff; % Bottom Left Hand Corner
+ z$br = (x$bl+cap_height, y$bl); % BRHC
+ z$tr = (x$bl+cap_height, y$bl+cap_height); % TRHC
+ z$tl = (x$bl, y$bl+cap_height); % TLHC
+ z$bc = 1/2[z$bl,z$br]; z$tc = 1/2[z$tl,z$tr]; % horizontal mid points
+ pair hc, vc;
+ hc = (2u,0); vc = (0,2u);
+ pickup pensquare scaled 2;
+ for s = z$bl, z$br, z$tr, z$tl, z$bc, z$tc:
+ draw s-hc--s+hc;
+ draw s-vc--s+vc;
+ endfor
+fi
+enddef;
+
+
+let cm_arm=arm;
+
+vardef arm(suffix $,$$,@)(expr darkness, armjut) = % arm from |z$| to |z$$|
+numeric vjut_; vjut_= abs(bot y$l-bot y$$);
+x@0=good.x(x$$r-armjut); y@0=y$r;
+ if serifs: y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0);
+ if x$$>=x$: x@2=x@1 - vjut_; else: x@2=x@1+vjut_; fi y@2=y$l;
+ filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l]]{z@2-z$$l}...
+ z@2if x$$>=x$: {left} else: {right} fi
+ ---z$l--z$r--z@0--z$$r..cycle; % arm and beak
+ else: filldraw z$l--z$r--z@0--z$$r--cycle; fi % sans-serif arm
+ penlabels(@0,@1,@2); enddef;
+
+
+vardef foot(suffix $, $$, @)(expr darkness, armjut) = % curved beak on E and L
+numeric vjut_; vjut_= abs(bot y$-bot y$$);
+x@0=good.x(x$$r-armjut); y@0=y$r;
+ if serifs:
+ y@1=y$l; z@1=z$$l+whatever*(z$$r-z@0);
+ x@2=x@1-vjut_; y@2=y$l;
+ filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l] ]...z@2
+ ---z$l--z$r--z@0--z$$r--cycle; % arm and beak
+ else:
+ filldraw z$l--z$r--(x$$r,y$r)--(x$$r,y$l)--cycle;
+ fi
+ penlabels(@0,@1,@2); enddef;
+
+
+vardef pulled_super_arc.l(suffix $, $$)(expr darkness)=
+ pair corner;
+ if y$=y$r: corner=(x$l, y$$l);
+ else: corner=(x$$l,y$l); fi
+ z$l{corner-z$l}...(darkness)[corner, .5[z$l, z$$l]]{z$$l-z$l}
+ ...{z$$l-corner}z$$l enddef;
+
+vardef pulled_super_arc.r(suffix $, $$)(expr darkness)=
+ pair corner;
+ if y$=y$r: corner=(x$r,y$$r);
+ else: corner=(x$$r, y$r); fi
+ z$r{corner-z$r}...(darkness)[corner, .5[z$r, z$$r]]{z$$r-z$r}
+ ...z$$r{z$$r-corner} enddef;
+
+vardef pulled_arc@#(suffix $, $$)=
+ pulled_super_arc@#($,$$)(eta) enddef;
+
+
+let cm_font_setup=font_setup; % Knuth's original font_setup
+
+def slim_font_setup = % trimmed font_setup for use with Pacioli caps only
+ if monospace: let adjust_fit=mono_adjust_fit;
+ def mfudged=fudged enddef;
+ mono_charic#:=body_height#*slant;
+ if mono_charic#<0: mono_charic#:=0; fi
+ mono_charwd#:=9u#; define_whole_pixels(mono_charwd);
+ else: let adjust_fit=normal_adjust_fit;
+ def mfudged= enddef; fi
+ define_pixels(u,width_adj,serif_fit,cap_serif_fit,jut,cap_jut,bar_height,
+ dish,bracket,beak_jut,apex_o,apex_corr);
+ define_whole_pixels(letter_fit,fine,crisp,tiny);
+ define_whole_vertical_pixels(body_height,asc_height,
+ cap_height,x_height,comma_depth,desc_depth);
+ define_whole_blacker_pixels(hair,stem,cap_stem);
+ define_whole_vertical_blacker_pixels(vair,dslab,slab);
+if slab<eps: slab:=eps fi;
+ define_corrected_pixels(o);
+ forsuffixes $=hair,stem,cap_stem:
+ fudged$.#:=fudge*$.#; fudged$:=hround(fudged$.#*hppp+blacker);
+ forever: exitif fudged$>.9fudge*$; fudged$:=fudged$+1; endfor endfor
+ rule_thickness:=ceiling(rule_thickness#*hppp);
+ heavy_rule_thickness:=ceiling(3rule_thickness#*hppp);
+ oo:=vround(.5o#*hppp*o_correction)+eps;
+ apex_oo:=vround(.5apex_o#*hppp*o_correction)+eps;
+ lowres_fix(stem) 1.3;
+ ess:=(ess#/stem#)*stem; cap_ess:=(cap_ess#/cap_stem#)*cap_stem;
+ dw:=(curve#-stem#)*hppp; bold:=curve#*hppp+blacker;
+ dh#:=.6designsize;
+ more_super:=max(superness,sqrt .77superness);
+ hein_super:=max(superness,sqrt .81225258superness); % that's $2^{-.3}$
+ clear_pen_memory;
+ if fine=0: fine:=1; fi
+ forsuffixes $=fine,crisp,tiny:
+%%% fine $ %%%% temporary formatting convention for MFT
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor endfor
+%%% @ $ %%%% restore ordinary formatting for $
+ min_Vround:=max(fine.breadth,crisp.breadth,tiny.breadth);
+ if min_Vround<vround min_Vround: min_Vround:=vround min_Vround; fi
+ pickup pencircle scaled rule_thickness; rule.nib:=savepen;
+ currenttransform:=identity slanted slant
+ yscaled aspect_ratio scaled granularity;
+ if currenttransform=identity: let t_=relax
+ else: def t_ = transformed currenttransform enddef fi;
+ numeric paren_depth#; .5[body_height#,-paren_depth#]=math_axis#;
+ numeric asc_depth#; .5[asc_height#,-asc_depth#]=math_axis#;
+ body_depth:=desc_depth+body_height-asc_height;
+ shrink_fit:=1+hround(2letter_fit#*hppp)-2letter_fit;
+ if not string mode: if mode<=smoke: shrink_fit:=0; fi fi
+ enddef;
+
+
+def pacioli_font_setup= % contains special stuff for Pacioli fonts
+ define_pixels(side,thick,thin,medium,half_height);
+ define_pixels(Hrad,Lrad,lrad,srad,trad);
+ define_pixels(dot_size,math_axis,flare,stem_corr,curve);
+ if not known dslab#: dslab=eps; fi
+enddef;
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%% END OF MACROS %%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+font_coding_scheme:="ASCII caps and punctuation";
+
+mode_setup;
+
+pacioli_font_setup;
+if whole_font: font_setup; %slab:=eps;
+ define_whole_vertical_blacker_pixels(dslab,slab);
+ else: slim_font_setup; fi
+
+
+input cpcromanu; % Pacioli upper case (majuscules)
+input cpcpunct; % punctuation
+input cpclig; % the several dashes
+input cpcromanp % ampersand and ?mark
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "P": "T": "Y": "A" kern kk#;
+ ligtable "F": "V": "W": "A" kern if serifs: kkk# else: kk#fi,
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ ligtable "A": if serifs: "R": fi
+ "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+ "L": "T" kern kk#, "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+ligtable "I": "I" kern -k#; fi % Richard III
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmph10.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmph10.mf
new file mode 100644
index 00000000000..b5ee03ba240
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmph10.mf
@@ -0,0 +1,83 @@
+% Computer Modern Phonetic 10 point. Modified version of cmr10.mf.
+% modified by Emma Pease, CSLI, Stanford University
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPH"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+% crisp#:=8/36pt#; % diameter of serif corners for mathit
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+% stem#:=24/36pt#; % lowercase stem breadth for mathit
+curve#:=30/36pt#; % lowercase curve breadth
+%curve#:=29/36pt#; % lowercase curve breadth for mathit
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+% flare#:=32/36pt#; % diameter of bulbs or breadth of terminals for mathit
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+% cap_stem#:=30/36pt#; % uppercase stem breadth for mathit
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+% cap_curve#:=35/36pt#; % uppercase curve breadth for mathit
+% cap_ess#:=33/36pt#; % breadth in middle of uppercase s for mathit
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phosym % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmph5.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmph5.mf
new file mode 100644
index 00000000000..01e6b80c23f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmph5.mf
@@ -0,0 +1,76 @@
+% Computer Modern Phonetic 5 point, Modified version of cmr5.mf
+% modified by Emma Pease, CSLI, Stanford University
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPH"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=18/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phosym % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmph6.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmph6.mf
new file mode 100644
index 00000000000..85f0da19f92
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmph6.mf
@@ -0,0 +1,76 @@
+% Computer Modern Phonetic 6 point; modified cmr6.mf
+% modified by Emma Pease, CSLI, Stanford University
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPH"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phosym % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmph7.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmph7.mf
new file mode 100644
index 00000000000..a044f149c9f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmph7.mf
@@ -0,0 +1,76 @@
+% Computer Modern Phonetic 7 point; modified cmr7
+% modified by Emma Pease, CSLI, Stanford University
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPH"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phosym % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmph8.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmph8.mf
new file mode 100644
index 00000000000..f2e5a6f9195
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmph8.mf
@@ -0,0 +1,76 @@
+% Computer Modern Phonetic 8 point;
+% modified by Emma Pease, CSLI, Stanford University
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPH"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phosym % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmph9.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmph9.mf
new file mode 100644
index 00000000000..4e36a7a19d1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmph9.mf
@@ -0,0 +1,76 @@
+% Computer Modern Roman 9 point
+% modified by Emma Pease, CSLI, Stanford University
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPH"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phosym % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmphb10.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmphb10.mf
new file mode 100644
index 00000000000..31b8599fb6b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmphb10.mf
@@ -0,0 +1,75 @@
+% Computer Modern Bold Extended Roman Phonetic 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPHB"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phosym % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmphi10.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmphi10.mf
new file mode 100644
index 00000000000..fbfb3b220a5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmphi10.mf
@@ -0,0 +1,76 @@
+% Computer Modern Phonetic Italic 10 point
+% modified version of cmti10.mf. Modified by Emma Pease
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPHI"; font_size 10pt#;
+
+u#:=18.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phoital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmphi7.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmphi7.mf
new file mode 100644
index 00000000000..900d77ca32d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmphi7.mf
@@ -0,0 +1,76 @@
+% Computer Modern Phonetic Italic 7 point
+% modified version of cmti10.mf. Modified by Emma Pease
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPHI"; font_size 7pt#;
+
+u#:=14.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=10.5/36pt#; % lowercase hairline breadth
+stem#:=18.5/36pt#; % lowercase stem breadth
+curve#:=21.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=10.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24.5/36pt#; % uppercase curve breadth
+cap_ess#:=21/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=24/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phoital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmphi8.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmphi8.mf
new file mode 100644
index 00000000000..a436122f1c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmphi8.mf
@@ -0,0 +1,76 @@
+% Computer Modern Phonetic Italic 8 point
+% modified version of cmti10.mf. Modified by Emma Pease
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPHI"; font_size 8pt#;
+
+u#:=15.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=7.9/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phoital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/cmphi9.mf b/Master/texmf-dist/fonts/source/public/phonetic/cmphi9.mf
new file mode 100644
index 00000000000..49bd120519f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/cmphi9.mf
@@ -0,0 +1,76 @@
+% Computer Modern Phonetic Italic 9 point
+% modified version of cmti10.mf. Modified by Emma Pease
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMPHI"; font_size 9pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=8.5/36pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=26/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=26/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=30.5/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.5/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate phoital % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/local.mf b/Master/texmf-dist/fonts/source/public/phonetic/local.mf
new file mode 100644
index 00000000000..6f61b9877de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/local.mf
@@ -0,0 +1,58 @@
+% A file to be loaded after "plain.mf". Not final by any means.
+base_version:=base_version&"/drofnats";
+
+mode_def canon = % canon mode: for the old Imagen (Canon LBP10)
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=240;
+ blacker:=.2; % make pens a wee bit blacker
+ fillin:=.2; % and compensate for fillin
+ o_correction:=.4; % but don't overshoot as much
+ enddef;
+
+mode_def escher = % mode for the 300 imagen printer
+ proofing:=0;
+ fontmaking:=1;
+ tracingtitles:=0;
+ pixels_per_inch:=300;
+ blacker:=0;
+ fillin:=.2;
+ o_correction:=.6;
+ enddef;
+
+mode_def think = % think mode: for the think jet and screen
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=0; % no, don't show titles in the log
+ pixels_per_inch:=96; % really lowres
+ blacker:=0; % don't make the pens any blacker
+ fillin:=0; % and don't compensate for fillin
+ o_correction:=.2; % but suppress most overshoots
+ enddef;
+
+mode_def aps = % aps mode: for the Autologic APS-Micro5
+ proofing:=0; % no, we're not making proofs
+ fontmaking:=1; % yes, we are making a font
+ tracingtitles:=1; % yes, show titles online
+ pixels_per_inch:=722.909; % that's roughly 10 per pt
+ blacker:=.2; % make pens a teeny bit blacker
+ fillin:=.2; % but compensate for diagonal fillin
+ o_correction:=1; % and keep the full overshoot
+ enddef;
+
+% mode for Imagewriter (144 dots per inch) taken from pktor documentation
+mode_def imagewriter =
+ proofing := 0;
+ fontmaking := 1;
+ tracingtitles := 1;
+ pixels_per_inch := 144;
+ blacker := 0;
+ fillin := 0;
+ o_correction := .2;
+enddef;
+
+
+
+
+localfont:=escher;
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/phochar.mf b/Master/texmf-dist/fonts/source/public/phonetic/phochar.mf
new file mode 100644
index 00000000000..be8b387bb9e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/phochar.mf
@@ -0,0 +1,1314 @@
+% Actual phonetic character codes. Created by Emma Pease, CSLI,
+% Stanford University. Based for the most part on computer modern characters
+
+cmchar "Reverse Cedilla accent";
+beginchar(oct"011",8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+x1=.5w+.5u;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,180); pos5(vair,-90);
+ x1=x2; z3l=z2r; x4=x2-1.5u; x5=x3+1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{left}...z4e{down}...{right}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1+1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter phonetic a";
+beginchar("a",10u#+serif_fit#,x_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h+oo;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180);
+pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=1/3[lft x2,edge]; y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter rotated phonetic a";
+beginchar("A",10u#+serif_fit#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h+min(oo,serif_drop);
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter voiced implosive b";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=.25[x_height,h];
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-270); pos9'(vair,-90);z9=z9';x9=.5[x1,x10]; top y9r=h;
+ pos10(hair,-360); rt x10r=w- hround u; y10=.75[x_height,h]-.5flare;
+ pos11(flare,-360); %z11l=z10l;
+ bulb(9,10,11); filldraw stroke super_arc.e(1,9'); % tail
+else: pickup fine.nib; pos1'(stem,0); z1'=z1;
+ z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0);
+ pos9(vair,-90); x9=4.5u; top y9l=h;
+ pos10(.5[vair,flare],90); rt x10=hround 1.25u;
+ y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l;
+ filldraw stroke z1'e..z1''e&super_arc.e(1'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The letter variant open o";
+beginchar("C",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=x;
+filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..z5e; fi % arc and lower terminal
+ currentpicture:=currentpicture rotatedaround ((.5w,.5h),180);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter open o";
+beginchar("c",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w-u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,0); rt x3r=hround min(w-.6u,w-1.35u+.5curve); y3=.5h;
+if serifs: pos1(hair,180); pos0(flare,180);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ lft x1r=hround(.7u); bulb(2,1,0); % bulb
+ pos5(hair,180); lft x5r=hround(.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ lft x1r=hround(.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); lft x5r=hround(.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter glottal d";
+beginchar("D",10.5u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib;
+pos2(stem,0);
+lft x2l=w-hround(3u+.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+pos8(bulb_diam,0); y8+.5bulb_diam=.9[x_height,h+oo];
+if monospace: rt x8r=hround(w-.5u)+1 else: lft x8l=hround(w-.75u+.5)
+fi;
+else: pos8(5/7[vair,flare],90); top y8r=h;
+rt x8=hround(if monospace:w-.5u else:w+.75u fi); fi;
+ pickup tiny.nib; bot y2=-oo;
+ penpos a0(x2r-x2l,0); x.a0l=x2l; top y.a0=x_height;
+ filldraw stroke z2e--z.a0e; % stem
+ pickup fine.nib; pos a0'(x2r-x2l-(hround stem_corr)+tiny,180);
+ y.a0'=y.a0; lft x.a0'r=tiny.lft x2l;
+ penpos a1(x.a0'l-x.a0'r,180); x.a1=x.a0'; y.a1+.5vair=.5[x_height,h];
+ pos a2(vair,90); top y.a2r=h+oo;
+ if serifs: x.a2=.6[x.a1,x8r]; (x.a,y.a2r)=whatever[z.a2l,z.a1l];
+ x.a2r:=min(x.a,.5[x.a2,x8r]); pos a3(hair,0); bulb(a2,a3,8); % bulb
+ filldraw stroke z.a0'e--z.a1e & super_arc.e(a1,a2); % arc
+ sloped_serif.r(2,a0,b,1/3,jut,min(oo,serif_drop)); % lower serif
+ else: x.a2=.6[x.a1,x8]; y.a1l:=1/3[y.a1l,y.a2l];
+ filldraw stroke z.a0'e--z.a1e & super_arc.e(a1,a2)
+ & term.e(a2,8,right,.9,4); fi % arc and terminal
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit-.5u)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+penlabels(a1,a2,2,3,4,5,6,7,8,a0); endchar;
+
+cmchar "The letter eth";
+beginchar("d",9u#,asc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height; % +vround 1.5oo;
+y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos5(hair/(sind 45),45); penpos4'(stem,0);
+x4r=x4'r; y4=y4';
+top y5r=h+oo; x5=x2;
+penstroke pulled_arc.e(4',5);
+penpos6(bar+stem_corr,120); penpos7(bar+stem_corr,120);
+y6=.35[y1,y5]; y7r=h+oo;
+x7r=rt x4; x6l=rt x2l;
+filldraw stroke z6e--z7e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter schwa";
+beginchar("e",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,180);
+pos2(vair,-90); pos3(left_curve,0);
+y1=good.y (h-bar_height); bot y2r=-vround 1.5oo; y0l=top y1;
+lft x1r=hround min(.5u,u-.5right_curve);
+rt x3r=hround max(w-.5u,w-1.25u+.5left_curve); x2=.5w-.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; top y4r=h+oo; x4=x2+.25u;
+if serifs: pos4(vair',90); pos5(hair,180);
+ y5=min(good.y(h-.5(h-bar_height)+.9),y4l-vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l-.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,90); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l-.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,1',2,3,4,5); endchar;
+
+cmchar "The letter variant schwa";
+beginchar("E",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=x;
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+ currentpicture:=currentpicture rotatedaround ((.5w,.5h),180);
+penlabels(0,1,2,3,4,5); endchar;
+
+
+
+
+cmchar "The letter flap";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("f",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos0'(hround(stem-3stem_corr),180);
+rt x0'l=hround(2.5u-.5stem')+stem'; top y0'=bar_height;
+filldraw stroke z0'e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+%pos0'(hround(stem-3stem_corr),0);
+y0=y0'; x1l=x0l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z0e--z2e; % stem
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,0',4,5,6); endchar;
+
+cmchar "rotated Variant letter g";
+beginchar("g",10u#+serif_fit#,x_height#+desc_depth#,0);
+h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); % vertical adj.
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180);
+pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=2/3[lft x2,edge]; y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+ currentpicture:=currentpicture rotatedaround ((.5w,.5h),180);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Variant letter g";
+beginchar("G",10u#+serif_fit#,x_height#,desc_depth#);
+h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); % vertical adj.
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180);
+pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=2/3[lft x2,edge]; y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "The letter voiced h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=.25[x_height,h]; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: pickup tiny.nib;
+ pos9(vair,-270); pos9'(vair,-90);z9=z9';x9=.5[x1,x10]; top y9r=h;
+ pos10(hair,-360);
+ rt x10r=min(w- hround u,rt x3r);
+ y10=.75[x_height,h]-.5flare;
+ pos11(flare,-360); %z11l=z10l;
+ bulb(9,10,11); filldraw stroke super_arc.e(1,9'); % tail
+else: pickup fine.nib; pos1'(stem,0); z1'=z1;
+ z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0);
+ pos9(vair,-270); x9=4.5u; top y9r=h;
+ pos10(.5[vair,flare],90); rt x10=hround 1.25u;
+ y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l;
+ filldraw stroke z1'e..z1''e&super_arc.e(1'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,9,10,11); endchar;
+
+cmchar "letter variant i";
+beginchar("i",4u#,x_height#,0); l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ x_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: u#,u# fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=h; x1=x2; filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4); endchar;
+
+cmchar "The letter dj";
+beginchar("J",10.5u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+ rt x1r=hround(w-3u+.5stem'+serif_fit); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-.5u)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ pickup tiny.nib; pos2'(stem',-180); z2'=z2;
+ pos8(vair,-90); pos9(hair,0); pos10(flare,0);
+ x8=.5[x2',x9r]; bot y8r=-d-oo; y9-.5flare=-.88d;
+ if monospace: rt x9r = w else: z9r=z10r; lft x10l= w-floor .75u fi;
+ (xc,y8r)=whatever[z8l,z2'l]; x8r:=min(xc,.5[x9r,x8]);
+ filldraw stroke z2'e{down}...z8e{right}; bulb(8,9,10); % arc and bulb
+else: pickup fine.nib; pos2'(stem',180); z2'=z2;
+ pos9(.2[vair,stem'],-90); pos10(vair,-90);
+ rt x10r=w-(hround.75u); bot y10r=vround 5/6(-d-oo);
+ (x,y10l)=whatever[z10r,z2]; x7l:=x;
+ z8l=z2'l; (x2'r,y8r)=whatever[z10r,z8l]; x8r=x2'r;y8=y8l;
+ x9r=.5[x10l,x8l]; x9l:=.5[x10l,x8l]; bot y9r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(8,9)
+ & z9e{right}..z10e; fi % arc and terminal
+penlabels(0,1,2',3,4,5,6,7,8,9,10); endchar;
+
+
+cmchar "Dotless letter j barred";
+beginchar("j",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+pickup crisp.nib; bot y3r=bot y4r=0; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter hook k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=.25[x_height,h]; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+ top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+ fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upperDiagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lowerDiagonal serif
+if serifs: pickup tiny.nib;
+ pos7(vair,-270); pos7'(vair,-90);z7=z7';x7=.5[x1,x8]; top y7r=h;
+ pos8(hair,-360); rt x8r=rt x3r; y8=.75[x_height,h]-.5flare;
+ pos9(flare,-360);
+ bulb(7,8,9); filldraw stroke super_arc.e(1,7'); % hook
+else: pickup fine.nib; pos1'(stem,0); z1'=z1;
+ z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0);
+ pos7(vair,-90); x7=4.5u; top y7l=h;
+ pos8(.5[vair,flare],90); rt x8=hround 1.25u;
+ y8r=good.y 5/6[x_height,h]; y8l:=good.y y8l;
+ filldraw stroke z1'e..z1''e&super_arc.e(1'',7)
+ & term.e(7,8,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,11); endchar;
+
+cmchar "The letter rotated m";
+beginchar("m",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+ currentpicture:=currentpicture rotatedaround ((.5w,.5h),180);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter emgma";
+beginchar("M",15u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+x10=x6; bot y10=-1/3d; penpos10(x5r-x5l,0); % stuff added
+pickup tiny.nib; filldraw stroke z6e--z10e; % right stem continuation
+pickup tiny.nib; pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+ x7=.5[x10,x8r]; bot y7r=-d-oo; y8-.5flare=-.88d;
+ if monospace: lft x8r=lft x4l; else: z8r=z9r; lft x9r= rt x4r; fi
+ (x,y7r)=whatever[z7l,z10l]; x7r:=max(x,.5[x8r,x7]);
+ filldraw stroke z10e{down}...z7e{left}; bulb(7,8,9); fi % arc and bulb
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+cmchar "The letter engma";
+beginchar("n",10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+% dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+x8=x4; bot y8=-1/3d; penpos8(x3r-x3l,0); % stuff added
+pickup tiny.nib; filldraw stroke z4e--z8e; % right stem continuation
+pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x8,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0; else: z6r=z7r; lft x7r= rt x2r; fi
+ (x,y5r)=whatever[z5l,z8l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z8e{down}...z5e{left}; bulb(5,6,7); fi % arc and bulb
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter thorn";
+beginchar("p",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter rotated r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; bot y4r=0-oo;
+if serifs: pos4(vair,-90); pos5(hair,180);
+ x4=min(1.75u,.25u+r_flare);
+ lft x5r=hround(.5u-.5); y5-.5r_flare=h-.9[bar_height,h]-oo;
+ pos6(r_flare,180); bulb(4,5,6); % bulb
+else: pos4(r_flare,-90); lft x4=hround(.25u); fi
+pos3(thin_join,0); lft x3l=w-hround(2.5u-.5stem')-stem'; bot y3=h-bar_height;
+filldraw stroke z3e{down}...{left}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); bot y1=0-min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1r=x0r=x0'r=x2r;
+rt x1r=w-hround(2.5u-.5stem'); top y2=h;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.r(1,0',a,1/3,jut,serif_drop); % lower serif
+sloped_serif.l(2,0,b,1/3,jut,serif_drop); fi % upper serif
+% dish_serif(2,0,b,1/3,1.25jut,c,1/3,jut); fi % upper serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter esh";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("s",5.5u#,asc_height#,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pickup tiny.nib; pos0(stem',0); pos1(shaved_stem,0);
+x0=x1;
+x1=.5w;
+top y0=x_height if serifs: +min(oo,serif_drop) fi;
+bot y1=-1/3d;
+pickup fine.nib; numeric bulb_diam;
+if serifs:
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x1,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z1l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z1e{down}...z5e{left}; bulb(5,6,7); % lower arc and bulb
+ bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pickup fine.nib; pos1'(stem',0); z1'=z1;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z1'r; (x1'l,y5l)=whatever[z7l,z5r]; x5l=x1'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z1'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; % arc and terminal
+ pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+pickup tiny.nib;
+penpos3(x1r-x1l,0); x3l=x1l; top y3=x_height;
+filldraw stroke z1e--z3e; % stem
+pickup fine.nib; pos3'(x1r-x1l-(hround stem_corr)+tiny,180);
+y3'=y3; lft x3'r=tiny.lft x1l;
+penpos4(x3'l-x3'r,180); x4=x3'; y4+.5vair=.5[x_height,h];
+pos8(vair,90); top y8r=h+oo;
+if serifs: x8=.5[x4,x2r]; (xa,y8r)=whatever[z8l,z4l];
+ x8r:=min(xa,.5[x8,x2r]); pos9(hair,0); bulb(8,9,2); % bulb
+ filldraw stroke z3'e--z4e & super_arc.e(4,8); % arc
+else: x8=.6[x4,x2]; y4l:=1/3[y4l,y8l];
+ filldraw stroke z3'e--z4e & super_arc.e(4,8)
+ & term.e(8,2,right,.9,4); fi % arc and terminal
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "The letter wedge";
+beginchar("U",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=fudged.stem-stem_corr;
+left_stem=min(fudged.hair if hefty:-2stem_corr fi,right_stem);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=0;
+x2-x1=x4-x3; x2r+apex_corr=x3r; y2=y3=h+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut); fi % right serif
+penlabels(0,1',2,3,4'); endchar;
+
+
+cmchar "The letter rotated h";
+beginchar("u",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-d;
+else: top y1=h; bot y4=-d; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(light_vair-fine,-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ dish_serif(4,0',c,1/3,jut,d,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+cmchar "The letter rotated w";
+beginchar("w",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.5[z5l,z6l]
+ --.5[z5r,z6r]--cycle;% middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+ currentpicture:=currentpicture rotatedaround ((.5w,.5h),180);
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter yogh";
+beginchar("x",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem,stem[];
+stem1=fudged.stem-4stem_corr;
+if hefty: arm_thickness1=stem1; arm_thickness2=stem1;
+ z_stem=fudged.hair;
+else: arm_thickness1=stem1; arm_thickness2=stem1; z_stem=fudged.hair; fi
+if arm_thickness1<tiny.breadth: arm_thickness1:=tiny.breadth; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u);
+lft x3l=lft x4l=hround .3[.5u, w-.8u];
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=.3[0,h]; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pickup fine.nib; pos11(vair,-90);
+pos12(vair,180); x12r=x3r; %.5[1.5u,x7];
+x8=x13=hround .5[.5u, w-.8u];
+pos7(curve,0); rt x7r=hround(w-.75u);
+lft x11=lft x4; %min(hround 3u,lft x12)-eps;
+pos8(vair,-90); bot y8r=-d; pos13(vair, 90); y13=.1[y3,y5];
+y7=.5[bot y13l,top y8l];
+top y11l=top y4l; %vround(0+.5vair);
+y3=y12;
+filldraw stroke pulled_arc.e(12,13); %link
+filldraw stroke pulled_arc.e(13,7)
+ & pulled_arc.e(7,8); % bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam2=flare+cap_stem-stem;
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=-.3d; %max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround -.3d;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(1,2,3,4,5,6,7,8,9,10,12,13); endchar;
+
+
+cmchar "The letter rotated y";
+beginchar("y",if serifs:9.5u# else:9u# fi,x_height#+desc_depth#,0);
+h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); %adj. vertical
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+ currentpicture:=currentpicture rotatedaround ((.5w,.5h),180);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter hausa K";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=.9h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+if serifs: z10r=z3'l; z10r-z10l=whatever*(z1-z6); z10l=whatever[z4r,z3'r];
+ pos7(vair,90); x7=hround(x3+.5u); top y7 = top y3;
+ pos8(cap_hair,0); pos9(flare,0);
+ y8= .3[y5r,y7]; rt x8r=hround(w);
+ fill z10r{z3-z4}..top z7r{right}--bot z7l{left}...{z4-z3}z10l--cycle;
+% filldraw stroke z10e{z3-z4}...z7e{right};
+ bulb(7,8,9); fi % bulb
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter hausa D";
+beginchar("T",15.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(4u,5u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5(w+2u#)+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper serif
+nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+if serifs: pickup fine.nib; top y10r= y3r;
+ pos8(flare,180); pos9(hair,180);
+ pos10(cap_band,90); rt x8r=0; x10=lft x1l - .5cap_jut;
+ y8=vround(.7h);
+ bulb(10,9,8); fi % bulb
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter hausa B";
+beginchar("B",14.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(4u,5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+if serifs: pickup fine.nib; top y15r= y3r;
+ pos13(flare,180); pos14(hair,180);
+ pos15(cap_band,90); rt x13r=0; x15=lft x1l - .5cap_jut;
+ y13=vround(.7h);
+ bulb(15,14,13); fi % bulb
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+cmchar "The letter rotated R";
+beginchar("R",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#);
+transform mirror; mirror=identity rotatedaround ((.5w,.5h),180)
+reflectedabout ((.5w,0),(.5w,h));
+ currentpicture:=currentpicture transformed mirror;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+cmchar "Glottal stop";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(stem',0); bot y7=0; x7=.47w;
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(stem',0); pos6(stem',0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.5[top y7r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z7e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+ dish_serif(7,5,e,1/3,jut,f,1/3,jut); %serif
+else: pos1(vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Upward harpoon";
+beginchar("z",9u#,asc_height#,asc_depth#);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=3u+eps;
+y3=y4=y0-.24asc_height-eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--(x2l,y0)--cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "The letter variant u";
+beginchar(oct"012",10u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(curve,180);
+pos3(vair,180); pos4(curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=vround(if hefty:slab+2stem_corr else:.75[slab,vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u;
+y7=good.y(y6l+.3beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#);
+ currentpicture:=currentpicture rotatedaround ((.5w,.5h),180);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter variant varu";
+beginchar(oct"010",11u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos2(curve,-180); lft x2r=hround.5u; y2=y8=bar_height;
+y4=y6=vround.4h;
+%y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90);
+y1r=h+oo; x1=.5w; pos1(hair,90);
+pos3(hair,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(hair,270); pos8(curve,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.1[y4,h]+.5vair);
+x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5w+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw circ_stroke z1e{left}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}...{up}z8e...z1e{left};
+math_fit(-bar_height#*slant,2/3ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "Lowercase Greek bar lambda";
+beginchar(oct"001",10.5u#,asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e; % short diagonal
+pos7(bar,90+theta); pos8(bar,90+theta);
+z7r=whatever[z1l,z6l]; z9=.8[z3,z2];z9=.5[z7,z8];
+(x9-x7)*(y2-y1)/(x2-x1)=y7-y9;
+showdependencies;
+ %angle(z2-z3)+90=angle(z7-z8);
+filldraw stroke z7e--z8e;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+cmchar "Lowercase Greek upsidedown iota";
+beginchar(oct"000",5u#,x_height#,0);
+italcorr x_height#*slant+.5hair#-u#;
+adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib;
+pos1(stem,0); rt x1r=hround(w-1.5u+.5stem); y1-.5stem=-oo;
+x2=x1+.25u; x4=0; hook_in(4,3,2); % opening hook
+filldraw circ_stroke z1e{up}...{u,x_height}z2e; % stem
+math_fit(0,ic#); penlabels(1,2,3,4); endchar;
+
+
+cmchar "The letter enya";
+beginchar(oct"116",10.5u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos8(stem',0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(3u-.5stem); x1l=x1'l=x2l=x2'l=x8l; x3=w+.5u-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+bot y8=-1/3d;
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(8,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+if serifs:
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x8,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z8l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z8e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos8'(stem',0); z8'=z8;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z8'r; (x8'l,y5l)=whatever[z7l,z5r]; x5l=x8'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z8'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "The ligature fj";
+beginchar(oct"106",10u#+2letter_fit#,asc_height#,desc_depth#);
+% written by Dimitri Vulis
+% mostly based on cm program for fi from romligs
+italcorr asc_height#*slant-serif_fit#+.5if serifs:stem# else:dot_size# fi-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pos11(stem',0); rt x11r=hround(w-2.5u+.5stem');
+pos12(stem',0); x11=x12; bot y12=-1/3d;
+pickup fine.nib; numeric bulb_diam, inner_jut;
+if serifs: bulb_diam=hround 1/4[.8[stem,flare],dot_size];
+ pos2(bulb_diam,0); x2r=x12r;
+ y2+.5bulb_diam=.8[x_height,h+oo]; top y11=x_height+min(oo,serif_drop);
+ if rt x1r+jut+.5u+2<=lft x11l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+2=lft x11l-inner_jut; fi
+else: bulb_diam=max(stem,dot_size);
+ pos2(6/7[vair,flare],90); top y2r=h; rt x2=hround 5.3u;
+ pickup tiny.nib; pos13(bulb_diam,0); pos14(bulb_diam,90);
+ x13=x11-.5; top y14r=min(2x_height,h+1); top y11=x_height;
+ if bot y14l-x_height<tiny: y14l:=min(y14r-eps,y11+2tiny); fi
+ x13=x14; y13=.5[y14l,y14r]; dot(13,14); % dot
+fi
+f_stroke(1,2,a,b,c,jut,inner_jut); % left stem, arc, terminal, serif
+pickup tiny.nib; filldraw stroke z11e--z12e; % right stem
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if serifs: x4=x11; % bar will overlap upper right serif
+ sloped_serif.l(11,12,d,1/3,jut,min(oo,serif_drop)); % upper right serif
+ pickup tiny.nib; pos16(vair,-90); pos17(hair,-180); pos15(flare,-180);
+ x16=.5[x12,x17r]; bot y16r=-d-oo; y17-.5flare=-.88d;
+ if monospace: lft x17r=0 else: z17r=z15r; rt x17l=floor 5.25u fi;
+ (x,y16r)=whatever[z16l,z12l]; x16r:=max(x,.5[x17r,x16]);
+ filldraw stroke z12e{down}...z16e{left}; bulb(16,17,15); % arc and bulb
+else: pickup fine.nib; pos12'(stem',0); z12'=z12;
+ pos17(.2[vair,stem'],-90); pos15(vair,-90);
+ lft x15r=hround 3.75u; bot y15r=vround 5/6(-d-oo);
+ (x,y15l)=whatever[z15r,z13]; x15l:=x;
+ z16r=z12'r; (x12'l,y16l)=whatever[z15l,z16r]; x16l=x12'l; y16=y16r;
+ x17r=.5[x15r,x16r]; x17l:=.5[x15l,x16l]; bot y17r=-d-oo;
+ filldraw stroke z12'e..{down}z16e & super_arc.e(16,17)
+ & z17e{left}..z15e; % arc and terminal
+ rt x4= hround 5.3u;
+ fi
+pickup crisp.nib; filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,11,12,13,14,15,16,17); endchar;
+
+cmchar "The letter reverse D";
+beginchar(oct"002",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+rt x1r=rt x2r=hround max(w-2u,w-3u+.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,-90); penpos4(cap_band,-90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,90); penpos7(cap_band,90);
+z3l=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7l=bot z2; x4=x6=.5w-.25u; x5l=hround(u);
+x4r:=x6r:=x4+.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.5cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7); endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/phoital.mf b/Master/texmf-dist/fonts/source/public/phonetic/phoital.mf
new file mode 100644
index 00000000000..50d638f900c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/phoital.mf
@@ -0,0 +1,65 @@
+% The Computer Modern Text Italic family (by D. E. Knuth, 1979--1985)
+% this file has been changed to run the phonetic fonts instead of the
+% standard italic fonts.
+
+mode_setup; font_setup;
+
+
+input phoitchar;
+input greekl; % lowercase greek
+%input testital;
+%input itall; % lower case (minuscules)
+%input italsp; % lowercase specials (dotless \i, ligature \ae, etc.)
+%if ligs>1: font_coding_scheme:="TeX text";
+% spanish_shriek=oct"074"; spanish_query=oct"076";
+% input italig; % letter ligatures
+%else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+% else: "TeX text without f-ligatures" fi;
+% spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+
+%input romanu; % upper case (majuscules)
+%input greeku; % upper case greek letters
+%input itald; % numerals
+%input italp; % ampersand, question marks, currency sign
+%input romspu; % uppercase specials (\AE, \OE, \O)
+%input punct; % punctuation symbols common to roman and italic text
+%input accent; % accents common to roman and italic text
+%if ligs>0: input comlig; fi % ligatures common with roman text
+%if ligs<=1: input romsub; fi % substitutes for ligatures
+
+%ligtable "!": "`" =: spanish_shriek;
+%ligtable "?": "`" =: spanish_query;
+
+bye.
+
+if not monospace:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "d": "w": "l": "l" kern +u#;
+ ligtable "F": "V": "o" kern kk#, "e" kern kk#,
+ "u" kern kk#, "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": "y" kern kk#,
+ "Y": "e" kern kk#, "o" kern kk#, "r" kern kk#, "a" kern kk#, "u" kern kk#,
+ "P": "W": "A" kern kk#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ ligtable "A": "R": "n" kern k#, "l" kern k#, "r" kern k#, "u" kern k#,
+ "m" kern k#, "t" kern k#, "i" kern k#, "C" kern k#, "O" kern k#, "G" kern k#,
+ "h" kern k#, "b" kern k#, "U" kern k#, "k" kern k#, "v" kern k#, "w" kern k#,
+ "Q" kern k#, "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#,
+ "b": "c": "e": "o": "p": "r": "e" kern -u#, "a" kern -u#, "o" kern -u#,
+ "d" kern -u#, "c" kern -u#, "g" kern -u#, "q" kern -u#;
+ ligtable "n": "'" kern kkk#; fi
+% there are ligature/kern programs for |"f"| in the {\tt romlig} file
+% and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/phoitchar.mf b/Master/texmf-dist/fonts/source/public/phonetic/phoitchar.mf
new file mode 100644
index 00000000000..c77359f91f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/phoitchar.mf
@@ -0,0 +1,853 @@
+
+% the italic characters that correspond to those in phochar.
+% created by Emma Pease. In most cases these are modified forms of
+% standard computer modern characters
+
+cmchar "Italic letter rotated a";
+beginchar("A",9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+currentpicture:=currentpicture rotatedaround ((.5(w+slant*h),.5h),180);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter rotated c";
+beginchar("c",8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,180); pos1(hair,180); pos2(vair,90);
+pos3(curve,0); pos4(vair,270); pos5(hair,220);
+x2=x4=.5(w-u); lft x1r=min(lft x2,hround(u))-eps;
+rt x3r=w-hround(1.5u-.5curve); x5r=good.x(eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{left}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+
+
+% need an eth (d)
+cmchar "The letter eth";
+beginchar("d",9u#,asc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height; % +vround 1.5oo;
+y3r=-oo;
+y2=y4=.5x_height-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos5(hair/(sind 45),45); penpos4'(stem,0);
+x4r=x4'r; y4=y4';
+top y5r=h+oo; x5=x2;
+penstroke pulled_arc.e(4',5);
+penpos6(bar+stem_corr,120); penpos7(bar+stem_corr,120);
+y6=.35[y1,y5]; y7r=h+oo;
+x7r=rt x4; x6l=rt x2l;
+filldraw stroke z6e--z7e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter schwa";
+beginchar("e",8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,90); pos1(heavy_hair,180); pos2(vair,-90);
+pos3(curve,0); pos4(vair,90); pos5(hair,140);
+x0=lft x3l; lft x1r=hround(1.5u-.5heavy_hair); x2=x4=.5(w-u);
+rt x3r=hround(w-1.5u+.5curve); x5r=good.x(eps); x6=x5;
+y0=y3=y6=h-bar_height; y1=.5[y0,y2]; bot y2r=-oo; top y4r=h+oo;
+bot y5l=vround(h-.5bar_height); path p; p=z4{left}..z5..z6;
+filldraw stroke z0e{left}...z1e{down}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "The letter variant schwa";
+beginchar("E",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+ currentpicture:=currentpicture rotatedaround ((.5(w+slant*h),.5h),180);
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Italic letter rotated g";
+beginchar("g",8u#,x_height#+desc_depth#,0);
+h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); % vertical adj.
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem);
+top y1r=h+oo; bot y3r=0; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pos4(stem,0); y4+.5stem=vround .98h;
+pos5(stem,0); x5=x4; y5=-1/3d;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=vround -.9d;
+lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
+filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
+math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
+ ic#-1/3x_height#*slant);
+ currentpicture:=currentpicture rotatedaround ((.5(w+slant*h),.5h),180);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "letter variant i";
+beginchar("i",4u#,x_height#,0); l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ x_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=h; x1=x2; filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Dotless letter j barred";
+beginchar("j",5.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+pickup crisp.nib; bot y3r=bot y4r=0; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter m";
+beginchar("m",15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+ currentpicture:=currentpicture rotatedaround ((.5(w+h*slant),.5h),180);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+% letter italic engma
+
+
+cmchar "Italic letter thorn";
+beginchar("p",8u#,asc_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); pos6(stem,0);x1=x2=x6;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;bot y6=-d;
+filldraw stroke z1e--z6e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % top serif
+dish_serif(6,2,b,1/3,.75jut,c,1/3,jut); % bottom serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Italic letter rotated r";
+beginchar("r",5.5u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+hook_in(0,1,2); % opening hook
+filldraw circ_stroke z3e--z2e; % left stem
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=h+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+ currentpicture:=currentpicture rotatedaround ((.5(w+h*slant),.5h),180);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+% the letter esh
+
+cmchar "Italic letter rotated h";
+beginchar("u",9.5u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos7(stem,0);pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; bot y7=-d;
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+dish_serif(7,6,a,1/3,jut,b,1/3,jut); % serif
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% the letter yogh
+
+cmchar "Italic letter y";
+beginchar("y",8.5u#,x_height#+desc_depth#,0);
+h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); %adj. vertical
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+ currentpicture:=currentpicture rotatedaround ((.5(w+h*slant),.5h),180);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+
+cmchar "The letter variant u";
+beginchar(oct"012",10u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(curve,180);
+pos3(vair,180); pos4(curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=vround(if hefty:slab+2stem_corr else:.75[slab,vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u;
+y7=good.y(y6l+.3beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#);
+ currentpicture:=currentpicture rotatedaround ((.5(w+h*slant),.5h),180);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter variant varu";
+beginchar(oct"010",11u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos2(curve,-180); lft x2r=hround.5u; y2=y8=bar_height;
+y4=y6=vround.4h;
+%y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90);
+y1r=h+oo; x1=.5w; pos1(hair,90);
+pos3(hair,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(hair,270); pos8(curve,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.1[y4,h]+.5vair);
+x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5w+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw circ_stroke z1e{left}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}...{up}z8e...z1e{left};
+math_fit(-bar_height#*slant,2/3ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Glottal stop";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(stem',0); bot y7=0; x7=.47w;
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(stem',0); pos6(stem',0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.5[top y7r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z7e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+ dish_serif(7,5,e,1/3,jut,f,1/3,jut); %serif
+else: pos1(vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic letter df";
+beginchar("D",9.5u#,asc_height#,0);
+italcorr .9[x_height#,asc_height#]*slant+.5u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem-.5u);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w-.5u; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0); pos4'(stem,180);
+z5'=z5; y4=.25[x_height,h]; filldraw stroke z4e--z5'e; % stem
+z4=z4'; pickup fine.nib;
+pos11(.5[hair,stem],180);
+pos8(vair,90);pos9(hair,0);pos10(flare,0);
+top y8r=h+oo;y10+.5flare=vround .9[x_height,h];
+rt x9r=hround(w+.25u); x8=.6[x9,x4']; x11r=x4'; y11=.8[y4',y8];
+bulb(8,9,10);
+filldraw stroke z8e{left}...z11e...{down}z4'e;
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4',5,6,7,8,9,10,11); endchar;
+
+
+cmchar "Italic letter emgma";
+beginchar("M",14u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+lft x7l=hround(w-1.5u-.5stem);
+x8=x7; ital_arch(5,6,7); % right arch
+pos8(stem,0);bot y8=-1/3d;
+pos9(vair,-90);pos10(hair,-180);pos11(flare,-180);
+bot y9r=-d-oo; y11-.5flare=-vround.9d;
+x9=w-3.5u; lft x10r=min(hround-.5u,lft x10r+x9-x10l-eps)+9u;
+filldraw stroke z7e---z8e...{left}z9e; % right stem and arc
+bulb(9,10,11);
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+
+cmchar "Italic letter engma";
+beginchar("n",9u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+lft x4l=hround(w-1.5u-.5stem); x5=x4; ital_arch(2,3,4); % arch
+pos5(stem,0);bot y5=-1/3d;
+pos6(vair,-90);pos7(hair,-180);pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=-vround.9d;
+x6=w-3.5u; lft x7r=min(hround-.5u,lft x7r+x6-x7l-eps)+4u;
+filldraw stroke z4e---z5e...{left}z6e; % right stem and arc
+bulb(6,7,8);
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8); endchar;
+
+% the following characters were borrowed without adjustment from the
+% regular character set.
+
+cmchar "The letter flap";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("f",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos0'(hround(stem-3stem_corr),180);
+rt x0'l=hround(2.5u-.5stem')+stem'; top y0'=bar_height;
+filldraw stroke z0'e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+%pos0'(hround(stem-3stem_corr),0);
+y0=y0'; x1l=x0l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z0e--z2e; % stem
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,0',4,5,6); endchar;
+
+cmchar "The letter voiced h";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=.25[x_height,h]; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: pickup tiny.nib;
+ pos9(vair,-270); pos9'(vair,-90);z9=z9';x9=.5[x1,x10]; top y9r=h;
+ pos10(hair,-360);
+ rt x10r=min(w- hround u,rt x3r);
+ y10=.75[x_height,h]-.5flare;
+ pos11(flare,-360); %z11l=z10l;
+ bulb(9,10,11); filldraw stroke super_arc.e(1,9'); % tail
+else: pickup fine.nib; pos1'(stem,0); z1'=z1;
+ z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0);
+ pos9(vair,-270); x9=4.5u; top y9r=h;
+ pos10(.5[vair,flare],90); rt x10=hround 1.25u;
+ y10r=good.y 5/6[x_height,h]; y10l:=good.y y10l;
+ filldraw stroke z1'e..z1''e&super_arc.e(1'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,9,10,11); endchar;
+
+cmchar "The letter hook k";
+beginchar("k",9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=.25[x_height,h]; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+ top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+ fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upperDiagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lowerDiagonal serif
+if serifs: pickup tiny.nib;
+ pos7(vair,-270); pos7'(vair,-90);z7=z7';x7=.5[x1,x8]; top y7r=h;
+ pos8(hair,-360); rt x8r=rt x3r; y8=.75[x_height,h]-.5flare;
+ pos9(flare,-360);
+ bulb(7,8,9); filldraw stroke super_arc.e(1,7'); % hook
+else: pickup fine.nib; pos1'(stem,0); z1'=z1;
+ z1''r=z1'r; z1''=z1'; z1''l=(x1'l,0);
+ pos7(vair,-90); x7=4.5u; top y7l=h;
+ pos8(.5[vair,flare],90); rt x8=hround 1.25u;
+ y8r=good.y 5/6[x_height,h]; y8l:=good.y y8l;
+ filldraw stroke z1'e..z1''e&super_arc.e(1'',7)
+ & term.e(7,8,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,11); endchar;
+
+cmchar "The letter esh";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("s",5.5u#,asc_height#,desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pickup tiny.nib; pos0(stem',0); pos1(shaved_stem,0);
+x0=x1;
+x1=.5w;
+top y0=x_height if serifs: +min(oo,serif_drop) fi;
+bot y1=-1/3d;
+pickup fine.nib; numeric bulb_diam;
+if serifs:
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x1,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z1l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z1e{down}...z5e{left}; bulb(5,6,7); % lower arc and bulb
+ bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pickup fine.nib; pos1'(stem',0); z1'=z1;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z1'r; (x1'l,y5l)=whatever[z7l,z5r]; x5l=x1'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z1'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; % arc and terminal
+ pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+pickup tiny.nib;
+penpos3(x1r-x1l,0); x3l=x1l; top y3=x_height;
+filldraw stroke z1e--z3e; % stem
+pickup fine.nib; pos3'(x1r-x1l-(hround stem_corr)+tiny,180);
+y3'=y3; lft x3'r=tiny.lft x1l;
+penpos4(x3'l-x3'r,180); x4=x3'; y4+.5vair=.5[x_height,h];
+pos8(vair,90); top y8r=h+oo;
+if serifs: x8=.5[x4,x2r]; (xa,y8r)=whatever[z8l,z4l];
+ x8r:=min(xa,.5[x8,x2r]); pos9(hair,0); bulb(8,9,2); % bulb
+ filldraw stroke z3'e--z4e & super_arc.e(4,8); % arc
+else: x8=.6[x4,x2]; y4l:=1/3[y4l,y8l];
+ filldraw stroke z3'e--z4e & super_arc.e(4,8)
+ & term.e(8,2,right,.9,4); fi % arc and terminal
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter yogh";
+beginchar("x",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem,stem[];
+stem1=fudged.stem-4stem_corr;
+if hefty: arm_thickness1=stem1; arm_thickness2=stem1;
+ z_stem=fudged.hair;
+else: arm_thickness1=stem1; arm_thickness2=stem1; z_stem=fudged.hair; fi
+if arm_thickness1<tiny.breadth: arm_thickness1:=tiny.breadth; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u);
+lft x3l=lft x4l=hround .3[.5u, w-.8u];
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=.3[0,h]; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pickup fine.nib; pos11(vair,-90);
+pos12(vair,180); x12r=x3r; %.5[1.5u,x7];
+x8=x13=hround .5[.5u, w-.8u];
+pos7(curve,0); rt x7r=hround(w-.75u);
+lft x11=lft x4; %min(hround 3u,lft x12)-eps;
+pos8(vair,-90); bot y8r=-d; pos13(vair, 90); y13=.1[y3,y5];
+y7=.5[bot y13l,top y8l];
+top y11l=top y4l; %vround(0+.5vair);
+y3=y12;
+filldraw stroke pulled_arc.e(12,13); %link
+filldraw stroke pulled_arc.e(13,7)
+ & pulled_arc.e(7,8); % bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam2=flare+cap_stem-stem;
+ pos10(bulb_diam2,-180); pos9(cap_hair,-180);
+ lft x10r=hround .75u; y10=-.3d; %max(.1h+.5bulb_diam2,.3h-.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround -.3d;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % lower terminal
+penlabels(1,2,3,4,5,6,7,8,9,10,12,13); endchar;
+
+cmchar "The letter dj";
+beginchar("J",10.5u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+ rt x1r=hround(w-3u+.5stem'+serif_fit); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-.5u)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ pickup tiny.nib; pos2'(stem',-180); z2'=z2;
+ pos8(vair,-90); pos9(hair,0); pos10(flare,0);
+ x8=.5[x2',x9r]; bot y8r=-d-oo; y9-.5flare=-.88d;
+ if monospace: rt x9r = w else: z9r=z10r; lft x10l= w-floor .75u fi;
+ (xc,y8r)=whatever[z8l,z2'l]; x8r:=min(xc,.5[x9r,x8]);
+ filldraw stroke z2'e{down}...z8e{right}; bulb(8,9,10); % arc and bulb
+else: pickup fine.nib; pos2'(stem',180); z2'=z2;
+ pos9(.2[vair,stem'],-90); pos10(vair,-90);
+ rt x10r=w-(hround.75u); bot y10r=vround 5/6(-d-oo);
+ (x,y10l)=whatever[z10r,z2]; x7l:=x;
+ z8l=z2'l; (x2'r,y8r)=whatever[z10r,z8l]; x8r=x2'r;y8=y8l;
+ x9r=.5[x10l,x8l]; x9l:=.5[x10l,x8l]; bot y9r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(8,9)
+ & z9e{right}..z10e; fi % arc and terminal
+penlabels(0,1,2',3,4,5,6,7,8,9,10); endchar;
+
+
+cmchar "Italic letter enya";
+beginchar(oct"116",11u#,x_height#,desc_depth#);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2=x2'; pos2(stem,0); pos2'(stem,0);
+lft x2l=hround(3.5u-.5stem); bot y2=-1/3d; y2'-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2',3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+pos8(vair,-90); pos9(hair,-180); pos10(flare,-180);
+bot y8r=-d-oo; y10-.5flare=-vround.9d;
+x8=1/3(4u); lft x9r=min(hround-.5u,lft x9r+x8-x9l-eps);
+%filldraw circ_stroke z2e--z1e; % left stem
+filldraw stroke z1e---z2e...{left}z8e; % stem and arc
+bulb(8,9,10); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Lowercase Greek bar lambda";
+beginchar(oct"001",10.5u#,asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e; % short diagonal
+pos7(bar,90+theta); pos8(bar,90+theta);
+z7r=whatever[z1l,z6l]; z9=.8[z3,z2];z9=.5[z7,z8];
+(x9-x7)*(y2-y1)/(x2-x1)=y7-y9;
+showdependencies;
+ %angle(z2-z3)+90=angle(z7-z8);
+filldraw stroke z7e--z8e;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+
+cmchar "Lowercase Greek upsidedown iota";
+beginchar(oct"000",5u#,x_height#,0);
+italcorr x_height#*slant+.5hair#-u#;
+adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib;
+pos1(stem,0); rt x1r=hround(w-1.5u+.5stem); y1-.5stem=-oo;
+x2=x1+.25u; x4=0; hook_in(4,3,2); % opening hook
+filldraw circ_stroke z1e{up}...{u,x_height}z2e; % stem
+math_fit(0,ic#); penlabels(1,2,3,4); endchar;
+
+
+cmchar "Italic ligature fj";
+beginchar(oct"106",5.5u#+.5max(1.5u#,stem#)+.5max(3.5u#,2flare#)
+ +2letter_fit#,asc_height#,desc_depth#);
+italcorr max(asc_height#*slant+.5stem#-2u#,1/3x_height#*slant+.5hair#+.5u#);
+adjust_fit(0,0); pickup fine.nib;
+.5[x88,x89]=.5(w-3u-2letter_fit); x89-x88=u; y88=h; y89=-d;
+numeric theta; theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+pos11(stem,0); pos12(stem,0); lft x12l=hround(w-1.5u-.5stem);
+pos13(vair,-90); pos14(hair,-180); pos15(flare,-180);
+top y11=x_height;
+x12=x11; bot y12=-1/3d; bot y13r=-d-oo; y15-.5flare=-vround.9d;
+x13=lft x12l-u; lft x14r = hround(.5w-.25u);
+x1r=x11r; lft x8r=hround-.35u; x2=.5[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround-.85d; bot y7r=-d-oo;
+y0+.5flare=vround(.85[x_height,h]); top y2r=h+oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+filldraw stroke z11e---z12e...{left}z13e;
+bulb(13,14,15);
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % left stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; x21=x11;
+filldraw stroke z20e--z21e; % crossbar
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,20,21,88,89); endchar;
+
+cmchar "The letter hausa K";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=.9h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+if serifs: z10r=z3'l; z10r-z10l=whatever*(z1-z6); z10l=whatever[z4r,z3'r];
+ pos7(vair,90); x7=hround(x3+.5u); top y7 = top y3;
+ pos8(cap_hair,0); pos9(flare,0);
+ y8= .3[y5r,y7]; rt x8r=hround(w);
+ fill z10r{z3-z4}..top z7r{right}--bot z7l{left}...{z4-z3}z10l--cycle;
+% filldraw stroke z10e{z3-z4}...z7e{right};
+ bulb(7,8,9); fi % bulb
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter hausa D";
+beginchar("T",15.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(4u,5u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5(w+2u#)+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper serif
+nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+if serifs: pickup fine.nib; top y10r= y3r;
+ pos8(flare,180); pos9(hair,180);
+ pos10(cap_band,90); rt x8r=0; x10=lft x1l - .5cap_jut;
+ y8=vround(.7h);
+ bulb(10,9,8); fi % bulb
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter hausa B";
+beginchar("B",14.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(4u,5u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+if serifs: pickup fine.nib; top y15r= y3r;
+ pos13(flare,180); pos14(hair,180);
+ pos15(cap_band,90); rt x13r=0; x15=lft x1l - .5cap_jut;
+ y13=vround(.7h);
+ bulb(15,14,13); fi % bulb
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+cmchar "The letter reverse D";
+beginchar(oct"002",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+rt x1r=rt x2r=hround max(w-2u,w-3u+.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,-90); penpos4(cap_band,-90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,90); penpos7(cap_band,90);
+z3l=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7l=bot z2; x4=x6=.5w-.25u; x5l=hround(u);
+x4r:=x6r:=x4+.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.5cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/phosym.mf b/Master/texmf-dist/fonts/source/public/phonetic/phosym.mf
new file mode 100644
index 00000000000..98f035b0466
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/phosym.mf
@@ -0,0 +1,46 @@
+
+% Phonetic characters created by Emma Pease
+% based on the Computer Modern Roman
+% fonts (by D. E. Knuth, 1979--1985)
+
+if ligs>1: font_coding_scheme:="TeX text";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+mode_setup; font_setup;
+
+input phochar; % phonetics symbols
+input symchar; % arrows, hooks ....
+input greekl; %lowercase greek letters
+%input testchar; % test characters before inserting in phochar
+%input romanu; % upper case (majuscules)
+%input romanl; % lower case (minuscules)
+%input greeku; % upper case Greek letters
+%input romand; % numerals
+%input romanp; % ampersand, question marks, currency sign
+%input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+%input romspu; % uppercase specials (\AE, \OE, \O)
+%input punct; % punctuation symbols common to roman and italic text
+%input accent; % accents common to roman and italic text
+%if ligs>1: input romlig; fi % letter ligatures
+%if ligs>0: input comlig; fi % ligatures common with italic text
+%if ligs<=1: input romsub; fi % substitutes for ligatures
+
+bye.
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;fi;
+
+ % kerning removed until further notice
+ % there are ligature/kern programs for |"f"| in the {\tt romlig} file
+ % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
diff --git a/Master/texmf-dist/fonts/source/public/phonetic/symchar.mf b/Master/texmf-dist/fonts/source/public/phonetic/symchar.mf
new file mode 100644
index 00000000000..b019c92e8cc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/phonetic/symchar.mf
@@ -0,0 +1,47 @@
+% More character codes. Created by Emma Pease, CSLI,
+% Stanford University. Based for the most part on computer modern characters
+
+% down hook and up hook were created in order to form hookuparrows and
+% hookdownarrows
+
+cmchar "Down hook";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"173",5u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+rt x2=hround(w-u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
+draw z1{right}...z2{down}...z3{left}; % hook
+currentpicture:=currentpicture rotatedaround ((.5w,y2),90);
+labels(1,2,3); endchar;
+
+cmchar "Up hook";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(oct"174",5u#,v_center(2spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+rt x2=hround(w-u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; y3=math_axis;
+draw z1{right}...z2{down}...z3{left}; % hook
+currentpicture:=currentpicture rotatedaround ((.5w,y2),-90);
+labels(1,2,3); endchar;
+
+cmchar "2bsquare";
+beginchar(oct"176",9u#,fig_height#,comma_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x4=x8=x7; x2=x3=x5=x6; top y1=top y2=h;
+y3=.6[y2,math_axis]; y3=y4; y5=y8; y7=y6;
+y5=.6[y6,math_axis]; math_axis=.5[y3,y5];
+y1-y4=x3-x4; lft x4=w-rt x3;
+filldraw z1--z2--z3--z4--cycle;
+filldraw z5--z6--z7--z8--cycle;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+
+cmchar "bsquare";
+beginchar(oct"175",9u#,v_center(7u#));
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=sqrt(3.14159);
+lft x6=lft x7=lft x5=hround (w/2 - (w-2u)*a/4);
+x2=x1=x3=w-x6; top y1=top y7=h;
+y6=y2=math_axis; y5=y3; z2=.5[z3,z1];
+filldraw z1--z2--z3--z5--z7--cycle;
+labels(1,2,3,5,7); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/pl/cmssbi10.mf b/Master/texmf-dist/fonts/source/public/pl/cmssbi10.mf
new file mode 100644
index 00000000000..b111772f3ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/cmssbi10.mf
@@ -0,0 +1,8 @@
+%%\normalcomments
+%%% addto use_driver generate
+% slanted CMSSBX10 font; this parameter file is assumed to be input by
+% the |use_driver| routine (defined in FIK_MIK.MF) which reinterpretes
+% the |generate| command (see PLSSBI... files)
+input cmssbx10;
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$ like in SSI fonts
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/pl/dlr10.mf b/Master/texmf-dist/fonts/source/public/pl/dlr10.mf
new file mode 100644
index 00000000000..547c49afcb0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/dlr10.mf
@@ -0,0 +1,4 @@
+%%% input use_driver
+% see the respective CM file
+basic_unit#:=dd#;
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/fik_mik.mf b/Master/texmf-dist/fonts/source/public/pl/fik_mik.mf
new file mode 100644
index 00000000000..53592771bc3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/fik_mik.mf
@@ -0,0 +1,75 @@
+% ---------------------------------------------------------------------------
+%%% input use_driver
+% This is an auxiliary file which prepares reading a CM parametric file using
+% a sneaky-tricky method. Every PL parametric file (such as PLB10, PLBX10,
+% ..., etc.) inputs this file, optionally changes some of PL parameters, and
+% then calls the macro |use_driver|.
+% ---------------------------------------------------------------------------
+% AUTHORS: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% In particular, only the authors are entitled to modify this file.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+if unknown cmbase: input cmbase fi
+
+string driver_name,ss; numeric ii;
+
+vardef generate @# = driver_name:=str @#; endgroup enddef;
+
+vardef use_driver @# =
+% |@#| either is empty or is equal to the pt-size of a respective
+% CM parametric file
+ if unknown param_base:
+% in sophisticated applications a user may wish to specify
+% |param_base| prior to calling |use_driver|:
+ string param_base; param_base=jobname;
+ fi
+ ii:=0;
+ forever:
+ ii:=ii+1;
+ ss:=substring(length(param_base)-ii,length(param_base)-ii+1) of param_base;
+ exitif (ss<"0") or (ss>"9") or (ii>=length(param_base));
+ endfor;
+ ii:=ii-1;
+ if unknown basic_unit#: basic_unit#=pt#; fi % i.e., |basic_unit#:=1|
+ numeric scale;
+ if str@# <> "":
+ scale=basic_unit#*scantokens(
+ substring(length(param_base)-ii,length(param_base)) of param_base)/@#;
+ ss:="input cm"&(substring(2,length(param_base)-ii) of param_base)&str @#;
+ else:
+ scale:=basic_unit#;
+ ss:="input cm"&(substring(2,length(param_base)) of param_base);
+ fi
+
+% |ogonek_pen#| is the only sharp extra PL parameter;
+% it must be rescaled separately:
+ if known ogonek_pen#: ogonek_pen#:=scale*ogonek_pen#; fi
+% input the original driver, possibly rescaling:
+ numeric true_pt#; true_pt#=pt#;
+ pt#:=scale*true_pt#; scantokens(ss); pt#:=true_pt#;
+
+ if (basic_unit#<>pt#):
+ message "Actual font size is " & decimal(designsize) & "pt#";
+ message "";
+ fi
+
+ font_identifier:=substring(0,length(param_base)-ii) of param_base;
+ scantokens("input "&
+ if driver_name="roman": "polan"
+ elseif driver_name="textit": "polkur"
+ elseif driver_name="mathsy": "polmat"
+ elseif driver_name="title": "poltyt"
+ elseif driver_name="csc": "polkap"
+ else: driver_name fi);
+
+enddef;
+
+endinput;
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/pl/pl.mft b/Master/texmf-dist/fonts/source/public/pl/pl.mft
new file mode 100644
index 00000000000..fc10e7b73b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pl.mft
@@ -0,0 +1,111 @@
+%%%% MFT style for the Polish extension of Computer Modern (PL fonts)
+%%%% CMBASE style:
+%%% } ( ) ]] {{ }} ! ^ %%%% tokens that need no special formatting
+%%% step upto downto %%%% boldface binary operators
+%%% addto fill unfill draw undraw %%%% boldface unary operators
+%%% addto filldraw unfilldraw drawdot undrawdot erase pickup
+%%% addto exitunless stop incr decr proofrulethickness screenrule
+%%% addto define_pixels define_whole_pixels define_whole_vertical_pixels
+%%% addto define_blacker_pixels define_whole_blacker_pixels
+%%% addto define_corrected_pixels lowres_fix proofoffset penstroke
+%%% addto beginchar beginarithchar italcorr font_size font_slant
+%%% addto font_normal_space font_normal_stretch font_normal_shrink font_quad
+%%% addto font_x_height font_extra_space font_identifier font_coding_scheme
+%%% addto cmchar iff generate adjust_fit math_fit labels penlabels
+%%% addto stroke circ_stroke padded
+%%% enddef endchar %%%% boldface closing
+%%% true relax mode_setup font_setup %%%% boldface nullary operators
+%%% true clearit shipit cullit openit showit clearxy clearpen
+%%% true nodisplay notransforms screenchars screenstrokes imagerules
+%%% .. ... .... -- --- %%%% path operators made of dots and dashes
+%%% length flex abs dir %%%% unary operators to be in roman type
+%%% length unitvector inverse ceiling hround vround Vround counterclockwise
+%%% length tensepath byte reflectedabout rotatedaround magstep max min
+%%% and mod dotprod intersectionpoint softjoin %%%% binary operators to be roman
+%%% ++ ** %%%% binary operators made of two special characters
+%%% penoffset goodval direction directionpoint %%%% operators that take "of"
+%%% pausing tolerance pixels_per_inch blacker o_correction %%%% internals
+%%% pausing screen_rows screen_cols currentwindow displaying
+%%% pausing pen_top pen_bot pen_lft pen_rt shrink_fit rt lft top bot
+%%% = <= >= <> %%%% conversions for the SAIL character set only
+%%% good crisp fine tiny rule light_rule cal light_cal med_cal heavy_cal
+%%% good term fudged mfudged sloped_serif tilted med_tilted
+%%% pausing slant fudge math_spread superness superpull beak_darkness ligs
+%% \outer\def^^L{\par\vfill\eject} % obeypages
+%%%%-------------------------------------------------------------------------
+%%%% So far it was CMBASE; now
+%% %--------- BJ & MR predilections & idiosyncrasies (ver. 1.09) ------------
+%%%% follow:
+%%%%-------------------------------------------------------------------------
+%%% end bye %%%% end=bye, isn't it?
+%%% screenrule proofrule %%%% proofrule=screenrule, isn't it?
+%%% def mode_def %%%% def=mode_def, isn't it?
+%%% input generate %%%% input=generate, isn't it?
+%%% for range %%%% we prefere \MF{}book convention
+%%% step thru %%%% ditto
+%%% good lower
+%%%%-------------------------------------------------------------------------
+%%%% our slight modifications:
+%%\newcount\hours \newcount\minutes
+%%\ifx\plconventions\undefined %%%% don't define some dangerous macros twice
+%%%%-------------------------------------------------------------------------
+%%\let\plconventions\relax
+%%\def\MeX{M\kern-.111em\lower.5ex\hbox{E}\kern-.125emX}
+%%\let\OSH\#
+%%\def\SH{\raise.7ex\hbox{$\scriptstyle\OSH$}} % sharp sign for sharped units
+%%\let\#\SH \def\\#1{{\let\#\OSH\it#1}}
+%%\def\finstring"#1"{\tentex"#1"\egroup}
+%%\def\frac#1/#2{\leavevmode\kern.1em
+%% \raise.5ex\hbox{\the\scriptfont0 #1}\kern-.1em
+%% /\kern-.15em\lower.25ex\hbox{\the\scriptfont0 #2}\,} %%%% \, added
+%%\let\UL\_
+%%\def\_{\ifdim\fontdimen1\the\font=0pt \UL\kern0.01em\else\kern-0.08em\UL\kern0.04em\fi}
+%%%%-------------------------------------------------------------------------
+%%%% our string treatment:
+%%\font\ttfont pltt10
+%%\def\vispace{{\ttfont\char32}}
+%%%% strings may be broken in a .TeX file:
+%%{\obeyspaces\obeylines%
+%%\gdef\prepspnl{\obeyspaces\obeylines\let \vispace\let^^M\vispace}}
+%%\def\7{\hbox\bgroup\prepspnl\nocats\frenchspacing\finstring} % string token
+%%%%-------------------------------------------------------------------------
+%%%% our comment treatment:
+%%\font\commfont plsltt10 % standard comment font
+%%\font\bif plbxti10 % comment bold italic font
+%%%% sorry, but we're using the UNderSCOre in COmments (see the dirty trick)
+%%\def\unscoco{\ifmmode_\else\_\fi} \catcode`\_\active \let_\unscoco
+%%\font\trifnt plmib10 scaled \magstep2 \def\lftri{{\trifnt \char'57}}
+%%{\obeyspaces\gdef\prepsp{\obeyspaces\everymath{\catcode`\ 10\relax}\let \ }}
+%%\fi %%%% no more dangerous macros
+%%\def\specialcomments{%
+%% \def\9{$\bgroup\def\par{\hfill\lftri\endgraf\egroup}\commfont\%\prepsp}}
+%%\def\normalcomments{%
+%% \def\9{$\bgroup\def\par{\endgraf\egroup}\hfill\commfont\%\prepsp}}
+%%\specialcomments % our favorite form of comments
+%%%%-------------------------------------------------------------------------
+%%%% DIRTY TRICK---sorry, but we're also using the underscore in file names
+%%%% (assumption: \tt appears only as \hbox{\tt...})
+%%\def\tt{\nocats\namett}
+%%{\catcode`\}\other \catcode`\)2\gdef\namett#1}{\tentex#1\egroup))
+%%%%-------------------------------------------------------------------------
+%%%% our footline:
+%%\def\oktime{% format `hh:mm'
+%%\hours=\time \divide \hours by 60 %
+%%\minutes=-\hours \multiply \minutes by 60 \advance \minutes by \time
+%%\ifnum\hours>9 \the\hours \else 0\the\hours \fi
+%%:%
+%%\ifnum\minutes>9 \the\minutes \else 0\the\minutes \fi}
+%%\def\monthnazwa{\ifcase \month
+%%\or stycznia\or lutego\or marca\or kwietnia\or maja\or czerwca\or lipca%
+%%\or sierpnia\or wrze\'snia\or pa\'zdziernika\or listopada\or grudnia%
+%%\fi}
+%%\def\makefootline{\baselineskip18pt\null\hrule\null\baselineskip12pt
+%% \line{\it\oktime\quad \the\day\ \monthnazwa\ \the\year\
+%% \hfill\llap{\tentex page \the\pageno}}}
+%%%%-------------------------------------------------------------------------
+%%%% our headline:
+%%\font\TT pltt12 scaled\magstep2
+%%\headline{\vbox to 0pt{\vss
+%% \rightline{\TT\uppercase\expandafter{\jobname.mf}}\vskip5mm}}
+%% %-------------------------------------------------------------------------
+
diff --git a/Master/texmf-dist/fonts/source/public/pl/pl_cud.mf b/Master/texmf-dist/fonts/source/public/pl/pl_cud.mf
new file mode 100644
index 00000000000..aa930937443
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pl_cud.mf
@@ -0,0 +1,146 @@
+% ---------------------------------------------------------------------------
+% This is PL_CUD.MF ({\bif{}polskie i francuskie cudzys\l{}owy}, i.e., Polish
+% and French quotation marks: ,, << and >>) in text format.
+% The program is based on excerpts from the COMLIG.MF and ROMSUB.MF files.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% In particular, only the authors are entitled to modify this file.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+%%% italcorr corrital
+%%% beginchar beginchar_twice
+%%% endfor repeat_once
+% ---------------------------------------------------------------------------
+
+cmchar "Polish opening quotes";
+if ligs>0:
+% in typical fonts the Polish opening quotation mark is based on COMLIG's
+% |"Closing quotes"|:
+beginchar(polish_opening_quotes,7u#+max(2u#,dot_size#),dot_size#,
+ comma_depth#);
+ adjust_fit(0,0);
+ x2+.5dot_size=hround(w-1.2u);
+ y2+.5dot_size=h;
+ x2-x1=hround(1.5u+max(2u,dot_size));
+ y2=y1;
+ comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+ penlabels(1,2);
+else:
+% in tt-like fonts the Polish opening quotation mark are based on ROMSUB's
+% |"Straight double quote"|:
+beginchar(polish_opening_quotes,9u#,asc_height#,0);
+ numeric top_width#,spread#,shifth_down;
+ top_width#=if serifs: flare# else: stem# fi;
+ spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+ adjust_fit(0,0);
+ numeric the_shift;
+ x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+ y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height)-the_shift;
+ if serifs:
+ y1=flare/2; the_shift=h-.5stem-y1;
+ pickup crisp.nib;
+ pos1(flare,0); pos2(vair,0); pos3(flare,0); pos4(vair,0);
+ filldraw circ_stroke (z1e--z2e); % left stem and bulb
+ filldraw circ_stroke (z3e--z4e); % right stem and bulb
+ else:
+ top y1=stem; the_shift=h-y1;
+ pickup fine.nib;
+ pos1(stem,0); pos2(vair,0); pos3(stem,0); pos4(vair,0);
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ fi
+ charht:=dot_size#; chardp:=desc_depth#;
+ penlabels(1,2,3,4);
+fi
+endchar;
+% ------------------------------------------------------------------------
+cmchar "French opening quotes";
+beginchar_twice(
+ if not serifs or monospace:
+ french_opening_quotes,9u#,2bar_height#,0
+ else:
+ french_opening_quotes,10u#,2bar_height#,0
+ fi
+ );
+ adjust_fit(0,0);
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ rt x1r=rt x3r=hround(5u-shift_corr)-eps;
+ lft x2l=hround(if not monospace: 2 fi\\ u-shift_corr)-eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*right; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z1'r;
+ penlabels(1,2,3,1',2',3');
+repeat_once
+endchar; % French opening quotes
+% ------------------------------------------------------------------------
+cmchar "French closing quotes";
+ beginchar_twice(
+ if not serifs or monospace:
+ french_closing_quotes,9u#,2bar_height#,0
+ else:
+ french_closing_quotes,10u#,2bar_height#,0
+ fi
+ );
+ adjust_fit(0,0);
+ pickup fine.nib;
+ numeric the_shift,shift_corr;
+ the_shift=hround(max(3u,1.7stem)); shift_corr=the_shift-3u;
+ pos1(qvair,0); pos2(if monospace: qvair else: stem fi,0); pos3(qvair,0);
+ lft x1l=lft x3l=w-hround(5u-shift_corr)+eps;
+ rt x2r=w-hround(if not monospace: 2 fi\\ u-shift_corr)+eps;
+ bot y3=0; y2=good.y(h/2); top y1=2y2;
+ for i:=1,2,3:
+ forsuffixes $:=r, ,l: z[i]'$=z[i]$ + the_shift*left; endfor
+ endfor
+ if not serifs or monospace:
+ filldraw stroke z1e--z2e--z3e; filldraw stroke z1'e--z2'e--z3'e;
+ else:
+ filldraw stroke
+ z1e{(x2e-x1e),1.8(y2e-y1e)}..{curl1}z2e{curl1}..
+ {(x3e-x2e),1.8(y3e-y2e)}z3e;
+ filldraw stroke
+ z1'e{(x2'e-x1'e),1.8(y2'e-y1'e)}..{curl1}z2'e{curl1}..
+ {(x3'e-x2'e),1.8(y3'e-y2'e)}z3'e;
+ fi;
+% italic correction is set to |0| in |beginchar|, so let's correct it
+ corrital z2r;
+ penlabels(1,2,3,1',2',3');
+repeat_once
+endchar; % French closing quotes
+% ------------------------------------------------------------------------
+if ligs>0: % no ligatures in tt fonts
+ ligtable ",": "," =: polish_opening_quotes;
+ ligtable "<": "<" =: french_opening_quotes;
+ ligtable ">": ">" =: french_closing_quotes;
+fi
+% ------------------------------------------------------------------------
+endinput;
+%%\end
+
diff --git a/Master/texmf-dist/fonts/source/public/pl/pl_dl.mf b/Master/texmf-dist/fonts/source/public/pl/pl_dl.mf
new file mode 100644
index 00000000000..bb1cc5b3629
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pl_dl.mf
@@ -0,0 +1,314 @@
+% ---------------------------------------------------------------------------
+% This is PL_DL.MF ({\bif{}du\.ze polskie litery}, i.e., uppercase Polish
+% letters: A and E with ogonek, crossed L, accented C, N, O, S, Z,
+% and dotted Z) in text format.
+% The program is based on excerpts from the ROMANU.MF file.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS OF ADAPTATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+%%% fine fisp
+%%% beginchar beginchar_twice
+%%% endfor repeat_once
+% ---------------------------------------------------------------------------
+
+cmchar "The letter A with ogonek";
+beginchar(ogonked_A,13u#,cap_height#,the_ogonek_depth);
+ adjust_fit(cap_serif_fit#,cap_serif_fit#);
+ numeric left_stem,right_stem,outer_jut,alpha;
+ right_stem=cap_stem-stem_corr;
+ left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+ outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+ x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+ alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+ penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+ penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+ z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+ if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+ else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+ penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+ penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+ if hefty: y5r else: y5 fi =5/12y0;
+ y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+ if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+ penlabels(0,1,2,3,4,5,6);
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+% |diag_end| refers to |tiny| pen, hence |tiny| in the following equation:
+ ogonek_pos=(x4 if not serifs: l if is_bold: +.75tiny fi\\ fi,.5the_pen)
+ if serifs and not is_egyptian: +(.5xvair,0) fi;
+ put_ogonek(the_pen);
+endchar; % A with ogonek
+
+cmchar "The letter accented C";
+if serifs: beginchar_twice(accented_C,13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ penlabels(1,1',2,3,4,5,6);
+ put_accent;
+ repeat_once
+else: beginchar_twice(accented_C,11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4);
+ penlabels(1,1',2,3,4,5,6);
+ put_accent;
+ repeat_once
+ fi % arc and terminals
+endchar; % accented C
+
+cmchar "The letter E with ogonek";
+beginchar(ogonked_E,12u#-width_adj#,cap_height#,the_ogonek_depth);
+ italcorr cap_height#*slant-beak_jut#-.5u#;
+ adjust_fit(cap_serif_fit#,0);
+ h:=vround(h-stem_corr);
+ pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+ top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+ arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+ pos5(cap_bar,-90); pos6(hair,0);
+ top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+ pos0(cap_bar,90); pos7(hair,0);
+ z0=z5; x6=x7; y6-y5l=y0l-y7;
+ if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+ else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+ arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+ pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+ bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+ arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+ if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+ penlabels(0,1,2,3,4,5,6,7,8,9);
+ def the_pen=if known ogonek_pen: ogonek_pen
+ elseif serifs: tiny elseif is_bold: fisp else: fine fi
+ enddef;
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+ ogonek_pos=
+ (x.h0-if serifs: 2 else: if is_bold: 1.5 else: 1.75 fi\\ fi\\ u,.5the_pen)+
+ .5 ogonek_breadth*if is_egyptian: origin elseif serifs: right else: left fi;
+ put_ogonek(the_pen);
+endchar; % E with ogonek
+
+cmchar "The letter crossed L";
+beginchar_twice(crossed_L,11u#-width_adj#,cap_height#,0);
+ adjust_fit(cap_serif_fit# if not serifs: +1.5u# fi,0);
+ pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+ lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+ bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+ arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+ if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+ penlabels(1,2,3,4);
+% some funny fonts have an extremally small |cap_jut|:
+ put_cross(.5cap_stem+if serifs: .9max(limit_dist,cap_jut) else: 1.8u fi,
+ .5cap_stem+3u);
+ repeat_once
+endchar; % crossed L
+
+cmchar "The letter accented N";
+beginchar_twice(accented_N,13u#+width_adj#,cap_height#,0);
+ italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+ adjust_fit(cap_serif_fit#,cap_serif_fit#);
+ numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+ pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+ pos3(thin_stem,0); pos4(thin_stem,0);
+ pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+ x1=x2; x3=x4; x1l=w-x3r;
+ rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+ filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; % right stem
+ if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+ else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+ if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+ penlabels(1,1',2,3,4,4',5,6,7);
+ hpos_corr=-.75u; put_accent;
+ repeat_once
+endchar; % accented N
+
+cmchar "The letter accented O";
+beginchar_twice(accented_O,14u#-width_adj#,cap_height#,0);
+ italcorr .7cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+ penpos2(cap_curve,180); penpos4(cap_curve,0);
+ if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+ else: x2r=hround u; fi
+ x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+ y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+ penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+ penlabels(1,2,3,4);
+ hpos_corr=-.75u; put_accent;
+ repeat_once
+endchar; % accented O
+
+cmchar "The letter accented S";
+beginchar_twice(accented_S,10u#,cap_height#,0);
+ italcorr cap_height#*slant-u#;
+ adjust_fit(0,0);
+ numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+ numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+ numeric ess'; ess'=max(fine.breadth,cap_ess);
+ pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+ pos0(ess',theta); pos7(s_slab,-90);
+ x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+ y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+ x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+ filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+ if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+ else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+ penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+ hpos_corr=-u; put_accent;
+ repeat_once
+endchar; % accented S
+
+cmchar "The letter accented Z";
+beginchar_twice(accented_Z,11u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+ else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+ pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+ arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+ arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ hpos_corr=-.5u; put_accent;
+ repeat_once
+endchar; % accented Z
+
+cmchar "The letter dotted Z";
+beginchar_twice(dotted_Z,11u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+ else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+ pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+ arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+ arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ put_dot(tiny,max(dot_size#,cap_curve#));
+ repeat_once
+endchar; % dotted Z
+
+endinput;
+%%\end
+
diff --git a/Master/texmf-dist/fonts/source/public/pl/pl_dod.mf b/Master/texmf-dist/fonts/source/public/pl/pl_dod.mf
new file mode 100644
index 00000000000..0ee4de52785
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pl_dod.mf
@@ -0,0 +1,832 @@
+% ---------------------------------------------------------------------------
+% This is PL_DOD.MF ({\bif{}dodatkowy}, i.e., additional file for the Polish
+% extension of CM family) in text format.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% In particular, only the authors are entitled to modify this file.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+%%{\let\:\sl
+%\: This file provides accessories for making Polish diacritical characters:
+%\: acute accent for |"C"|, |"N"|, |"L"|, |"S"|, |"Z"|, dot accent for |"Z"|,
+%\: cross for |"L"| and ogonek for |"A"| and |"E"|. In order to avoid extra
+%\: parameters (62 should be enough) the macros do a lot of ``clever'' stuff,
+%\: trying to figure out needed dimensions. This is not always a trivial
+%\: task and in some cases such extra parameters may prove to be unavoidable.
+%\: Several additional parameters may be assigned a value, prior to reading
+%\: the driver file, in order to override the default behaviour.
+
+%\: One of them is
+%\: --- the factor controlling the slope of accents over majuscules,
+%\: |cap_flat|; if the default slope is, say, $\beta$, the resulting
+%\: slope is equal to |(1-cap_flat)*|$\beta$; this parameter is used
+%\: in the sources of the following fonts:
+%\ PLCSC10, PLDUNH10, PLTCSC10
+
+%\: Unexpectedly difficult to program turned out to be ogoneks. We decided
+%\: that the best looking are ogoneks such that a single B\`ezier segment
+%\: describes each of ogonek's edges. This necessitated introducing many
+%\: parameters controlling the positions of control points (for more details
+%\: see comments in the section ``OGONEK ACCESSORIES''). All these
+%\: (optional) parameters may be splitted into three groups of importance:
+%\: primary, secondary and tertiary. The primary parameters are intended
+%\: to be ``normally'' accessible to users, the secondary ones---only in
+%\: case of emergency, the tertiary ones---rather not at all.
+
+%\: The primary parameters are:
+
+%\: --- the factor controlling the depth of ogoneks, |depth_corr|; the
+%\: resulting depth is equal to |depth_corr*desc_depth#| if the value
+%\: of |depth_corr| is known, |desc_depth#| otherwise
+%\: --- the factor controlling the leftmost and tip positions
+%\: of an ogonek, |left_corr|, |tip_xcorr| and |tip_ycorr|;
+%\: the default distances are scaled using the values of the
+%\: corresponding parameters
+%\: --- the scaling factor for the top and tip breadths of an ogonek,
+%\: |top_breadth_corr|, |tip_breadth_corr|
+
+%\: Some of the primary parameters are used in the sources of the following
+%\: fonts:
+% PLB10, PLBX5, PLBX6, PLBX7, PLBX8, PLFI10, PLITT10, PLR5, PLR6, PLR7,
+% PLR8, PLR9, PLR12, PLR17, PLSL8, PLSL9, PLSL12, PLSSQ8, PLSSQI8, PLTI7,
+% PLTI8, PLTI12, PLVTT10
+
+%\: The following four parameters we regard as of a secondary importance:
+
+%\: --- the pen ogoneks are to be filled with, |ogonek_pen#| (this is
+%\: the only sharp ogonek parameter and is used in the sources of
+%\: the {\commfont{}PLFF10} and {\commfont{}PLFI10} fonts)
+%\: --- the darkness of ogoneks may be controlled using two parameters,
+%\: |0<pre_lightness<1| and |0<post_lightness<1|, referring to the top
+%\: and tip of an ogonek, respectively; used in {\commfont{}PLB10.MF}
+%\: --- next two parameters, |pre_deflexion| and |post_deflexion|, control
+%\: a rather small deflexion angle (in degrees) of the inner ogonek
+%\: outline as compared to the outer one; they refere to the top and
+%\: tip of an ogonek, respectively
+
+%\: The complete list of `ogonek' parameters can be found in the section
+%\: ``OGONEK ACCESSORIES.''
+
+%\: There is one more (rather unimportant) parameter, |is_smoke|. If this
+%\: variable is assigned a known value, `smoked' proofs will not contain
+%\: a rule marking the height of accented letters.
+%%}
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+% LAYOUT SETUP:
+% (A MIXTURE OF EXTENDED CM, EXTENDED ASCII, AND ``LOCAL'')
+% ---------------------------------------------------------------------------
+% Polish letters are in the positions of extended CM layout:
+
+def polish_uc_positions =
+ ogonked_A:=oct"201"; % 129
+ accented_C:=oct"202"; % 130
+ ogonked_E:=oct"206"; % 134
+ crossed_L:=oct"212"; % 138
+ accented_N:=oct"213"; % 139
+ accented_O:=oct"323"; % 211
+ accented_S:=oct"221"; % 145
+ accented_Z:=oct"231"; % 153
+ dotted_Z:=oct"233"; % 155
+enddef;
+
+def polish_lc_positions =
+ ogonked_a:=oct"241"; % 161
+ accented_c:=oct"242"; % 162
+ ogonked_e:=oct"246"; % 166
+ crossed_l:=oct"252"; % 170
+ accented_n:=oct"253"; % 171
+ accented_o:=oct"363"; % 243
+ accented_s:=oct"261"; % 177
+ accented_z:=oct"271"; % 185
+ dotted_z:=oct"273"; % 187
+enddef;
+
+% French quotation marks are in the positions of extended ASCII layout,
+% while Polish opening quotation mark is in the position of ASCII 255:
+
+def quotes_positions =
+ french_opening_quotes:=174; % <<
+ french_closing_quotes:=175; % >>
+ % exceptionally:
+ polish_opening_quotes:=255; % ,,
+enddef;
+
+polish_uc_positions; polish_lc_positions; quotes_positions;
+% ---------------------------------------------------------------------------
+% EXTRA PARAMETERS
+% ---------------------------------------------------------------------------
+% The variable |improve_kerns| should not be set to |true| if one wants
+% to have PL fonts compatible with respective CM ones; thus the commands
+% |if improve_kerns| ... |fi| may be regarded as comments (see also the files
+% POLAN.MF, POLKUR.MF, POLTYT.MF and POLKAP.MF).
+if unknown improve_kerns: boolean improve_kerns; improve_kerns=false; fi;
+
+if unknown is_small_cap: boolean is_small_cap; is_small_cap=false; fi;
+
+% The variable |limit_dist| is used in an argument to |put_cross| in
+% PL_DL.MF, PL_ML.MF, and PL_MLK.MF. It was introduced because of some
+% funny (although troublesome) fonts. The value of |u| is corrected by
+% |adjust_fit|, hence |limit_dist| is defined useng |vardef| and |u#|
+vardef limit_dist = 5/4u#*hppp enddef;
+
+% The proportion of |vair/stem| depends drastically on resolution;
+% e.g., for 300 dpi cmbx10 |vair=1| and |stem=5|, for 746 dpi cmbx10
+% (300 dpi, magstep 5) |vair=4| and |stem=12|, while, sharply speaking,
+% |stem#/vair#=3.15381|; hence a new variable |xvair| has been introduced
+% to be used in some crucial places instead of |vair|.
+vardef xvair = stem*vair#/stem# enddef;
+
+% In particular, |qvair| (``quote vair'') is defined using |xvair|.
+vardef qvair = max(round(xvair),fine+epsilon) enddef;
+% ---------------------------------------------------------------------------
+% GENERAL PURPOSE ACCESSORIES
+% ---------------------------------------------------------------------------
+vardef is_egyptian =
+% |false| for most of the CM fonts, except funny fonts;
+% |true| for the CC fonts
+ serifs and (1.4max(fine#,crisp#, tiny#)<slab#) and (1.6slab#>stem#)
+enddef;
+
+vardef is_bold = if serifs: (hair#+.5stem#)>1.5u# else: stem#>2u# fi\\ enddef;
+
+vardef is_cap =
+ (charcode=ogonked_A) or (charcode=accented_C) or (charcode=ogonked_E)\\ or
+ (charcode=crossed_L) or (charcode=accented_N) or (charcode=accented_O)\\ or
+ (charcode=accented_S) or (charcode=accented_Z) or (charcode=dotted_Z)
+enddef;
+
+%%% top is_known
+%%% top fix_virgin
+vardef is_known z suffix $ =
+% an auxiliary macro for |fix_virgin z|, used also while constructing ogoneks
+ (known x$) or (known x$l) or (known x$r)\\ or
+ (known y$) or (known y$l) or (known y$r)
+enddef;
+
+vardef fix_virgin z = % find a pair of virgin pairs
+ numeric ii,jj; jj:=1;
+ forever:
+ if is_known z[jj] or is_known z[jj+1]: % unknown gaps may occur
+ jj:=incr jj else: jj=ii fi; exitif known ii;
+ endfor;
+ jj:=ii+1;
+% now |ii+1=jj| and |z[ii]| and |z[jj]| are ``untouched''
+enddef;
+
+%%% italcorr corrital
+% correction of italic correction (cf. D. E. Knuth, The \MF{}book, p. 105):
+vardef corrital z suffix $ =
+% |z$| is the rightmost position of a pen (in accent path)
+ if known sharp_calc:
+ if not monospace:
+ save charic_; charic_=(rt(x$)-r)/hppp+slant*y$/vppp+.5u#;
+ if charic_>charic: charic:=charic_; fi
+ fi
+%| else: %| |charic=mono_charic#|, do nothing
+ fi
+enddef;
+
+%%% fine hi higher
+% |higher| is a counterpart to |lower| (see the file POLKAP.MF),
+% |hi| facilitates using higher values (which are reference points in
+% the floating world of CM fonts)
+def hi = if is_small_cap: higher fi\\ enddef;
+
+%%% top prepare_pen
+def prepare_pen suffix $ =
+%%% fine $ %%%% temporary MFT convention
+ if $>fudged.hair: $:=fudged.hair; fi
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor
+%%% qq $ %%%% ordinary MFT convention
+enddef;
+% ---------------------------------------------------------------------------
+% ACCENT ACCESSORIES
+% ---------------------------------------------------------------------------
+% |the_cap_flat| is a factor controlling the flatness of accents over
+% majuscules; a default value may be overriden by assigning a value to the
+% variable |cap_flat| (cf. also |the_|... macros in ogonek accessories).
+vardef the_cap_flat =
+ if known cap_flat: cap_flat elseif serifs and hefty: 1/5 else: 1/3 fi
+enddef;
+% ---------------------------------------------------------------------------
+% The |hpos_corr| variable is an optional parameter to |put_ogonek|, meant
+% to be set locally inside |beginchar| ... |endchar|, if a horizontal
+% correction of the accent position is needed:
+numeric hpos_corr;
+% ---------------------------------------------------------------------------
+%%%% temporary MFT convention:
+%%% top x_height diam a_wd a_ht i_ht u asc_height cap_A_wd
+% width of the acute accent:
+vardef a_wd@# = 9hi.u@# enddef;
+% height of the acute accent:
+vardef a_ht@# = min(asc_height@#,2hi.x_height@#) enddef;
+% height of the letter `i':
+vardef i_ht@#(suffix diam) =
+ if is_small_cap: a_ht@# % usually there is no dot over a small cap `i'
+ else: min(asc_height@#, 10/7hi.x_height@#+.5diam@#) fi
+enddef;
+% width of the letter `A' (used in |put_ogonek|):
+vardef cap_A_wd@# = 13u@# enddef;
+%%%% ordinary MFT convention:
+%%% qq x_height diam a_wd a_ht i_ht u asc_height cap_A_wd
+
+def mark_height(expr sharp_h)=
+% |sharp_h| is the height of an accented minuscule
+ if known sharp_calc:
+ charht:=if is_cap: h/vppp else: sharp_h fi;
+ if\\ (proofing>0) and is_cap:
+% BJ likes to have proofs vertically aligned (somehow):
+ proofoffset(0,h-charht*vppp-1mm);
+ fi
+ fi
+% say earlier, e.g., |is_smoke=1| if you're making `smoked' proofs
+% and you don't like to have a rule marking the height
+ if unknown is_smoke:
+ if proofing>0: proofrule((l+w/2,charht*hppp)t_,(r+u,charht*hppp)t_); fi
+ if displaying>0: screenrule((l+w/2,charht*hppp)t_,(r+u,charht*hppp)t_); fi
+ fi
+enddef;
+
+def fix_acc_pairs =
+ fix_virgin z;
+ begingroup
+% excerpt from |beginchar|:
+ save w,h; w=round(a_wd); h=round(a_ht);
+% excerpt from |mono_adjust|:
+ if monospace:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_factor;
+ mono_charwd#=2 hi.letter_fit#+expansion_factor*a_wd#;
+ hi.u:=u#*expansion_factor*hppp;
+ w:=mono_charwd-shrink_fit-2 hi.letter_fit;
+ fi
+% end of the excerpts
+ numeric accent_gap,mid_stem; mid_stem=2/3[stem,hi.stem];
+ if serifs:
+ pickup crisp.nib;
+ x[jj]'=hround(w-2hi.u)-.5mid_stem; x[jj]':=x[jj]'-2/3[x[jj]',w-x[jj]'];
+ y[jj]'=h-.5mid_stem+eps-max(2/3[h,hi.x_height],hi.x_height+o+hair);
+ accent_gap=a_ht-(y[jj]'+.5mid_stem)-hi.x_height;
+ bot z[ii]=round(accent_hpos,
+ accent_gap+if is_cap: cap_height else: hi.x_height fi);
+ z[jj]=z[ii]+(z[jj]'
+ if is_cap: rotated (-the_cap_flat*angle(z[jj]')) fi);
+ numeric theta; theta=angle(z[ii]-z[jj])+90;
+ pos[jj](mid_stem,theta); pos[ii](hair,theta);
+ else:
+ pickup fine.nib;
+ rt x[jj]'r=hround(.5w-1.25hi.u);
+ top y[jj]'=h-vround(2/3[h,hi.x_height]);
+ z[ii]'=origin; pos[jj]'(mid_stem,0); pos[ii]'(vair,0);
+ accent_gap=a_ht-y[jj]'-hi.x_height;
+ if is_cap:
+ numeric beta; beta=-the_cap_flat*angle(z[jj]'-z[ii]');
+ z[ii]=round(accent_hpos,accent_gap+cap_height);
+ z[jj]=z[ii]+(z[jj]' rotated beta);
+ y[jj]r=y[jj]l=y[jj]; y[ii]r=y[ii]l=y[ii];
+ for xx:=jj,ii: forsuffixes $:=l,r:
+ (z[xx]$-z[ii]) rotated -beta=whatever[z[jj]'$,z[ii]'$];
+ endfor\\ endfor
+ else:
+ for xx:=jj,ii: forsuffixes $:=r, ,l:
+ z[xx]$=z[xx]'$+round(accent_hpos,
+ accent_gap+if is_small_cap: cap_height else: x_height fi);
+ endfor\\ endfor
+ fi
+ fi
+ endgroup;
+enddef;
+
+def fix_acc_top =
+ save accent_hpos; accent_hpos=0; % the value does not matter here
+ fix_acc_pairs; % |fix_acc_pairs| uses private values of |w|, |h| \& |u|
+% |z[ii]$| and |z[jj]$| (|$= ,r,l|) are fixed temporarily, will be released
+% fix the y coordinate of the top point of accent:
+ if serifs:
+ pickup crisp.nib;
+ y.a_top:=ypart(directionpoint left of
+ (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l)); y'a_top:=top y.a_top;
+ else:
+ pickup fine.nib; y.a_top:=ypart(z[jj]r); y'a_top:=top y.a_top;
+ fi
+% release |z[ii]$| and |z[jj]$| (|$= ,r,l|):
+ forsuffixes $= ,r,l:
+ x[ii]$:=whatever; y[ii]$:=whatever; x[jj]$:=whatever; y[jj]$:=whatever;
+ endfor
+enddef;
+
+def put_accent =
+ numeric accent_hpos;
+ accent_hpos=.5w - if is_cap: .75 else: .5 fi\\ u
+ if known hpos_corr: +hpos_corr fi;
+ fix_acc_pairs; % |fix_acc_pairs| uses private values of |w|, |h| \& |u|
+ numeric hpos_corr; % |hpos_corr| is local: forget its value
+% draw the diagonal:
+ if serifs:
+ pickup crisp.nib; filldraw circ_stroke (z[jj]e--z[ii]e);
+ z.right=directionpoint up of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ z.top=directionpoint left of (z[jj]r{z[jj]r-z[ii]r}..{z[ii]l-z[jj]l}z[jj]l);
+ else:
+ pickup fine.nib; filldraw stroke (z[jj]e--z[ii]e);
+ z.right=z.top=z[jj]r;
+ fi
+ corrital z.right; % correct italic correction
+% adjust height (the same height is used in the program for the dotted `Z'):
+ h:=if is_cap: y.top else: a_ht fi;
+ mark_height(a_ht#);
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% DOT ACCENT ACCESSORIES
+% ---------------------------------------------------------------------------
+%%% good penkind
+def put_dot (suffix penkind) (expr sharp_d_d) = % the dot of the lc letter `i'
+% assumptions: for lowercase `z' the dot accent should be exactly the same
+% as the dot over `i'; a virtually contradictory demand is to be fullfiled
+% for capital `Z': the dot should have exactly the same shape as the dot
+% over dotted `z' (in any case, must not be smaller), not too close to
+% the top of `Z', and not protruding (too much) over the nominal height,
+% i.e., over the height of acute accent.
+ fix_acc_top;
+% now |y.a_top| and |y'a_top| are fixed; |y'a_top=top y.a_top| for a pen
+% appropriate for the acute accent
+ fix_virgin z;
+ save d_d_; % for sharp and discrete dot diameter
+ d_d_#=sharp_d_d; define_whole_blacker_pixels(d_d_);
+% compute the nominal height
+ h:=vround(
+ if charcode=dotted_Z: (cap_height#+i_ht#(d_d_)-hi.x_height#)
+ elseif charcode=dotted_z: % branch not used when |is_small_cap=true|
+ i_ht#(d_d_) fi\\ *hppp);
+ pickup penkind.nib; pos[jj](d_d_,90); pos[ii](d_d_,0);
+ x[jj]=x[ii]=good.x(.5w+if is_cap: .5 else: .25 fi\\ u);
+ top y[jj]r=h+1;
+ top y.i_top=if charcode=dotted_Z: cap_height else: x_height fi
+ if serifs: +min(oo,serif_drop) fi;
+ save gap_; gap_=bot y[jj]l-top y.i_top; % nominal gap between the dot and `z'
+% raise the lower edge of the dot if needed (cf. the code for the letter `i'
+% in ROMANL.MF):
+ if gap_ < slab: y[jj]l:=min(y[jj]r-eps,y.i_top+tiny+slab); fi
+ save ove_; ove_=top y[jj]r-y'a_top; % a nominal overshoot of the dot
+% lower the dot if needed (for dotted `Z' only):
+ if (charcode=dotted_Z) and (ove_>0):
+ save low_; % |low_| is to be the maximal acceptable lowering of the dot
+ low_=max(0,min(ove_,gap_-penkind)); % somewhat arbitrary formula...
+ forsuffixes $= ,l,r: y[jj]$:=y[jj]$-low_; endfor
+ fi
+ y[ii]=.5[y[jj]l,y[jj]r];
+% draw the dot:
+ dot([ii],[jj]);
+% dotted `Z' inherits the height of the accented `Z' which enables decreasing
+% by one the number of different heights in a font; dotted `z' has the height
+% of a lowercase `i' (exception: caps and small caps)
+ h:=y.a_top; mark_height(i_ht#(d_d_));
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% L's CROSS ACCESSORIES
+% ---------------------------------------------------------------------------
+def put_cross(expr l_jut,r_jut) =
+ fix_virgin z;
+ numeric c_ht_; % height of the center of the cross
+ c_ht_=if is_cap: cap_bar else: bar fi;
+ numeric theta; theta=angle(11u#,.3[x_height#,cap_height#]);
+ pickup crisp.nib; pos[ii](c_ht_,theta+90); pos[jj](c_ht_,theta+90);
+ lft x[ii]r = hround(x1-l_jut)-eps;
+ rt x[jj]l = hround(x1+r_jut)+eps;
+ z[ii]-z[jj]=whatever*dir theta;
+% |.52| is one of CM (Computer Magic) numbers appearing in many CM programs,
+% among others in the programs for B, F, and H:
+ whatever[z[ii],z[jj]]=if not is_cap and hefty: top fi\\ (x1,.52cap_height);
+% |1/2[z[ii],z[jj]]| is now the center of the cross;
+% before drawing the stroke improve discretization:
+ save eps_;
+ eps_:=y[ii]l-good.y(y[ii]l);
+ forsuffixes $:=l, ,r: y[ii]$:=y[ii]$-eps_; endfor
+ eps_:=y[jj]r-good.y(y[jj]r);
+ forsuffixes $:=l, ,r: y[jj]$:=y[jj]$-eps_; endfor
+ filldraw stroke z[ii]e--z[jj]e; % now draw the stroke
+ corrital z[jj]l; % correct italic correction
+ penlabels([ii],[jj]);
+enddef;
+% ---------------------------------------------------------------------------
+% OGONEK ACCESSORIES
+% ---------------------------------------------------------------------------
+% This part is admittedly sophisticated, however, a wide spectrum of
+% different ogonek shapes is in fact to be programmed: one shape is needed
+% for caps, another for `a' with ogonek, yet another for `e' with ogonek,
+% as they all have different joins. Moreover, a sansserif ogonek differs
+% significantly from a serif one, a bold ogonek from a non-bold, an ogonek
+% for hefty fonts should still be different. And if you take into account
+% that the basic font unit |u| may change during one session of font
+% generation (monospace and caps-small-caps) and that a few different
+% pens may be used to draw a single letter, you'll understand why so many
+% |if| ... |else:| ... |fi| commands are used in the following code.
+%
+% Outer and inner edges of an ogonek (suffixed with |l| and |r|, resp.)
+% are single B\`ezier segments; the outer one, a path
+% |p=z_a..controls z_b and z_c ..z_d|
+% is constructed as follows: given pairs |z_a|, |z_d|, angles |alpha_a|,
+% |alpha_d| and two numbers |x_down|, |y_right|, find pairs |z_b| and |z_c|
+% such that the path |p| has the following properties:
+% (a) |direction p(z_a)=alpha_a|
+% (b) |direction p(z_d)=alpha_d-180|
+% (c) |direction p(x_down,some_y)=down|
+% (d) |direction p(some_x,y_right)=right|
+% The problem is solved using a ``double'' bisection method, provided
+% that appropriate limits |z_b'|, |z_b''| and |z_c'|, |z_c''| for |z_b|
+% and |z_c|, respectively, are given; more precisely,
+% |z_b=|$\lambda_b$|[z_b',zb'']| and |z_c=|$\lambda_c$|[z_c',zc'']|
+% is supposed to hold for given |z_b'|, |z_b''|, |z_c'|, |z_c''| and
+% some $0<\lambda_b,\lambda_c<1$.
+%
+% The inner edge is constructed by a careful modification of the outer one.
+%
+% If a default behaviour of our program is not satisfying, the user may
+% assign a value to the following ``emergency'' parameters (provided E knows
+% what E is doing):
+% |depth_corr|, |left_corr|, |top_breadth_corr|, |tip_breadth_corr|,
+% |tip_xcorr|, |tip_ycorr|, |pre_angle|, |post_angle|,
+% |pre_limit|, |post_limit|, |pre_lightness|, |post_lightness|,
+% |pre_deflexion|, and |post_deflexion|.
+% Any of these parameters, if known while generating a font, is used instead
+% of a default setting. The parameters are accessed only via macros:
+% |the_ogonek_depth|, |the_left_pos|, |the_top_breadth_corr|,
+% |the_tip_breadth_corr|, |the_tip_pos|,
+% |the_pre_angle|, |the_post_angle|, |the_pre_limit|, |the_post_limit|,
+% |the_pre_lightness|, |the_post_lightness|,
+% |the_pre_deflexion|, and |the_post_deflexion|.
+% There is one sharp ogonek parameter, |ogonek_pen#|; a respective pen is
+% defined at the end of this file (and once again in POLKAP.MF after
+% |font_setup|) and used in the files PL_DL.MF, PL_ML.MF, PL_MLK.MF.
+% Any parameter may have its |lower| variant (see the file POLKAP.MF).
+% ---------------------------------------------------------------------------
+% two handy macros:
+vardef cross_point(expr a,b) (expr c,d) =
+ save z_; pair z_; z_=whatever[a,b]; z_=whatever[c,d]; z_
+% the crossing point of lines (not segments) |a--b| and |c--d| is returned
+enddef;
+
+vardef touch_time(expr p,q) = % a variant of |intersectionpoint|
+ save x_,y_; (x_,y_)=p intersectiontimes q; if x_<0: 0 else: y_ fi
+enddef;
+% ---------------------------------------------------------------------------
+% the kernel routine for the ogonek:
+numeric x_down,x_down',y_right,y_right',alpha_a,alpha_d;
+pair z_a,z_b,z_b',z_b'',z_c,z_c',z_c'',z_d;
+
+pair nz_,pz_;
+% with plain's |solve| embeded calls are not allowed, hence a bit tricky
+% variation:
+%%% known zsolve
+vardef zsolve@#(suffix z_)=
+% |@#| is the name of a real monotonic function; it is assumed that
+% |@#(z_')<=0|, |@#(z_'')>0| holds for given |z_'| and |z_''|
+ save nz_,pz_; pair nz_,pz_; % recursive calls are possible
+ nz_:=z_'; pz_:=z_'';
+ forever:
+ z_:=.5[nz_,pz_]; exitif abs(nz_-pz_)<=tolerance; % by default |tolerance=.1|
+ if @#(z_)<=0: nz_ else: pz_ fi :=z_;
+ endfor
+% on exit |z_| is (hopefully) near the point where |@#| changes from
+% negative to positive
+enddef;
+
+vardef down_dir(expr z_b)=
+ zsolve right_dir(z_c); % here |z_c| is computed
+ lft(xpart(directionpoint down of (z_a..controls z_b and z_c..z_d)))-x_down
+enddef;
+
+vardef right_dir(expr z_c)=
+ bot(ypart(directionpoint right of (z_a..controls z_b and z_c..z_d)))-y_right
+enddef;
+% ---------------------------------------------------------------------------
+% ogonek defaults:
+vardef the_ogonek_depth = % sharp value
+ if known depth_corr: depth_corr* fi\\ desc_depth#
+enddef;
+
+vardef the_left_pos =
+ if known left_corr: left_corr* fi
+ if monospace: 3.75 elseif serifs:
+ if hefty: 2.3 elseif is_bold: 1.7 else: 1.9 fi
+ else: % sansserif
+ if is_bold: 1.65 else: 1.55 fi\\ fi\\ hi.u
+enddef;
+
+vardef the_tip_pos =
+ (if monospace: 1.9 elseif serifs: if hefty: 1.85
+ elseif is_bold: 1.75 else: 2 fi\\ else: % sansserif
+ if is_bold: 2.1 else: 1.95 fi\\ fi\\ hi.u,
+ if serifs:
+ if monospace: 1.25 elseif hefty: 1 elseif is_bold: .75 else: 1.45 fi
+ else: % sansserif
+ .45 fi\\ hi.u)
+ if known tip_xcorr: xscaled\\ tip_xcorr fi
+ if known tip_ycorr: yscaled\\ tip_ycorr fi
+enddef;
+
+vardef the_top_breadth_corr =
+ if known top_breadth_corr: top_breadth_corr else:
+ if serifs: 1 elseif is_bold: 1.12 elseif is_cap: 1.06 else: .96 fi\\ fi
+enddef;
+
+vardef the_tip_breadth_corr =
+ if known tip_breadth_corr: tip_breadth_corr else: 1 fi
+enddef;
+
+vardef the_pre_angle = % refers to the outer edge
+ if known pre_angle: pre_angle else:
+ if serifs: if hefty: 208 elseif is_bold: 211 else: 214 fi\\ else: 211 fi
+ fi
+enddef;
+
+vardef the_post_angle = % refers to the outer edge
+ if known post_angle: post_angle else:
+ if serifs: if monospace: 60 elseif hefty: 66 elseif is_bold: 55 else: 74 fi
+ else: 25 fi\\ fi
+enddef;
+
+vardef the_pre_limit = % refers to the outer edge
+ if known pre_limit: pre_limit else: x_down-3.5hi.u fi
+enddef;
+
+vardef the_post_limit = % refers to the outer edge
+ if known post_limit: post_limit else: x_down-2hi.u fi
+enddef;
+
+vardef the_pre_lightness = % refers to the inner edge
+ if known pre_lightness: pre_lightness else:
+ if serifs and hefty: .97 elseif not serifs and is_bold: .6
+ elseif is_bold: .66 else: .78 fi\\ fi
+enddef;
+
+vardef the_post_lightness = % refers to the inner edge
+ if known post_lightness: post_lightness else:
+ if serifs:
+ if hefty: .95 elseif is_bold: .66 else: .82 fi
+ else: % sansserif
+ .75 fi\\ fi
+enddef;
+
+vardef the_post_deflexion = % refers to the inner edge
+ if known post_deflexion: post_deflexion elseif serifs and hefty: 0
+ else: -5 fi
+enddef;
+
+vardef the_pre_deflexion = % refers to the inner edge
+ if known pre_deflexion: pre_deflexion
+ elseif known join_angle and not serifs:
+ if is_bold: -4 else: -2 fi\\
+ elseif not serifs: if is_bold: -8 else: -4 fi\\ else: 0 fi
+enddef;
+% ---------------------------------------------------------------------------
+%%% fine lo
+vardef lo suffix z = % in a way |lo| is a counterpart to |hi|
+ if is_small_cap: z_a+((z-z_a) scaled sqrt(body_height#/higher.body_height#))
+ else: z fi
+enddef;
+% ---------------------------------------------------------------------------
+% parameters to |put_ogonek|:
+numeric join_angle; % starting (inner) ogonek direction, if known
+numeric ogonek_breadth; % ogonek breadth at the tip
+% starting (inner for `e' with ogonek, otherwise outer) ogonek position:
+pair ogonek_pos;
+% ---------------------------------------------------------------------------
+def put_ogonek(suffix penkind) =
+ begingroup
+ if monospace:
+% excerpt from |mono_adjust|:
+ save u_; numeric u_; u_:=hi.u#; save u; u#:=u_;
+ numeric expansion_factor;
+ mono_charwd#=2hi.letter_fit#+expansion_factor*cap_A_wd#; % cap_A_wd=13u
+ hi.u:=u#*expansion_factor*hppp;
+% now |u| is like in the letter `A'
+ fi
+
+ fix_virgin z; pickup penkind.nib;
+
+% `a' with ogonek attached to the hook deserves a special treatment:
+ if\\ (not is_small_cap) and (charcode=ogonked_a) and serifs and not is_bold:
+ if ypart(ogonek_pos)>.5penkind:
+ z[ii]~l=ogonek_pos;
+ pos[ii]~(max(the_top_breadth_corr*ogonek_breadth,penkind+epsilon),0);
+ ogonek_pos:=cross_point((0,.5penkind),(1,.5penkind))
+ (z[ii]~l,z[ii]~l+dir(the_pre_angle));
+ fi
+ fi
+
+% similarly, `e' with ogonek deserves a special treatment:
+ if\\ (not is_small_cap) and (charcode=ogonked_e):
+ if ypart(ogonek_pos)>.5penkind:
+ z[ii]~r=ogonek_pos;
+ pos[ii]~(max(the_top_breadth_corr*ogonek_breadth,penkind+epsilon),0);
+ ogonek_pos:=cross_point((0,.5penkind),(1,.5penkind))
+ (z[ii]~l,z[ii]~l+dir(join_angle));
+ fi
+ fi
+
+% invariant: |ypart(ogonek_pos)|$\le$|.5penkind|;
+% moreover, for `A' and `E': |ypart(ogonek_pos)=.5penkind|
+
+% OUTER EDGE:
+ alpha_a:=the_pre_angle; % starting direction
+ alpha_d:=180+the_post_angle; % ending direction
+ x_down:=if serifs: hround else: ceiling fi
+ (xpart(ogonek_pos)-the_left_pos); % left bound
+ y_right:=-vround(d+hi.o); % bottom bound
+ z_a:=(x_down+the_left_pos,ypart(ogonek_pos)); % starting point
+ z_d:=(xpart(z_a)-.5penkind,y_right+ypart(ogonek_pos))+
+ the_tip_pos; % ending point
+% guess the boundaries for control points:
+ z_b':=cross_point (z_a,z_a+dir alpha_a)
+ ((the_pre_limit,0),(the_pre_limit,1));
+ z_b'':=cross_point (z_b',z_a)\\ ((x_down,0),(x_down,1));
+ z_c':=cross_point (z_d,z_d+dir alpha_d)
+ ((the_post_limit,0),(the_post_limit,1));
+ z_c'':=cross_point (z_c',z_d)\\ ((0,y_right),(1,y_right));
+% THE PIVOT STEP OF THE OGONEK PROCEDURE, i.e.,
+% determine the control points (|z_b| and |z_c|) of the outer path:
+ zsolve down_dir(z_b); % |down_dir| calls `|zsolve right_dir(z_c)|'
+ x_down':=xpart(lft(directionpoint down of
+ (z_a..controls z_b and z_c..z_d)));
+ y_right':=ypart(bot(directionpoint right of
+ (z_a..controls z_b and z_c..z_d)));
+ if abs(x_down'-x_down,y_right'-y_right)>sqrt2:
+ message "ERROR: `ogonek' iteration hasn't converged! Final values:";
+ message "x_down="&decimal x_down'&" (should be "&decimal x_down&")";
+ message "y_right="&decimal y_right'&" (should be "&decimal y_right&")";
+ errhelp "Maybe Jackowski knows how to change them...";
+ errmessage "Probably, you have to change somehow the boundary values";
+ fi
+
+% small caps have ogoneks a bit smaller:
+ z[ii]l=z_a; z[ii]'l=lo.z_b; z[jj]'l=lo.z_c; z[jj]l=lo.z_d;
+
+% INNER EDGE:
+ pos[ii](max(the_top_breadth_corr*ogonek_breadth,penkind+epsilon),0);
+ pos[jj](max(the_tip_breadth_corr*ogonek_breadth,penkind+epsilon),
+ angle(direction 1 of (z_a..controls z_b and z_c..z_d))+
+ if serifs: 90 else: 80 fi);
+
+ z[ii]'r=z[ii]r+((z[ii]'l-z[ii]l) scaled the_pre_lightness
+ rotated the_pre_deflexion);
+ z[jj]'r=z[jj]r+((z[jj]'l-z[jj]l) scaled the_post_lightness
+ rotated the_post_deflexion);
+
+% trim the top of the ogonek, if necessary:
+ path ogonek.l, ogonek.r; numeric tt.r, tt.l;
+
+ ogonek.l=if is_known z[ii]~: % minuscule with ogonek
+ z[ii]~l{dir if charcode=ogonked_a: the_pre_angle else: join_angle fi}..fi
+ z[ii]l..controls z[ii]'l and z[jj]'l..z[jj]l;
+ ogonek.r=if is_known z[ii]~: % ditto
+ z[ii]~r{dir if charcode=ogonked_a: the_pre_angle else: join_angle fi}..fi
+ z[ii]r..controls z[ii]'r and z[jj]'r..z[jj]r;
+
+ tt.r=if serifs and (not is_small_cap) and (charcode=ogonked_a):
+ touch_time(p.l,ogonek.r) else: 0 fi;
+ tt.l=if\\ (not is_small_cap) and (charcode=ogonked_e):
+ touch_time(p.r,ogonek.l) else: 0 fi;
+% at last, draw the ogonek:
+ if ogonek_breadth>.5:
+ interim turningcheck:=0; filldraw
+ if\\ (not is_small_cap) and (charcode=ogonked_e):
+ (point tt.r of ogonek.r){direction tt.r of ogonek.r}..{curl 1} fi
+ subpath (tt.l,length ogonek.l) of ogonek.l--
+ reverse(subpath (tt.r,length ogonek.r) of ogonek.r)
+ if is_small_cap or (charcode<>ogonked_e): -- else: & fi\\ cycle;
+% the |draw| command covers with ink unwanted breaks:
+ pickup pensquare scaled (.5*sqrt2) rotated 45;
+ draw .5[z[ii]l,z[ii]r]..controls .5[z[ii]'l,z[ii]'r] and
+ .5[z[jj]'l,z[jj]'r].. .5[z[jj]l,z[jj]r];
+ else: % poor resolution:
+ pickup pensquare scaled (.5*sqrt2) rotated 45;
+ draw z[ii]l..controls z[ii]'l and z[jj]'l..z[jj]l;
+ fi
+
+ numeric join_angle, ogonek_breadth; pair ogonek_pos; % all they are local
+
+ penlabels([ii],[jj]);
+
+ endgroup
+enddef;
+% ---------------------------------------------------------------------------
+% MACROS FOR PROCESSING CHARS TWICE:
+% PASS 1: COLLECTING TFM (SHARP) INFORMATION
+% PASS 2: CREATING THE GLYPH
+% ---------------------------------------------------------------------------
+%%% define_pixels prepare_pen
+%%% beginchar beginchar_twice
+%%% endfor repeat_once
+
+let ori_draw:=draw;
+let ori_fill:=fill;
+let ori_filldraw:=filldraw;
+let ori_erase:=erase;
+let ori_special:=special;
+let ori_numspecial:=numspecial;
+
+mode_def canonical_sharp_mode = % nearly |proof| mode
+ proofing:=0; % no, we aren't making full proofs
+ fontmaking:=0; % no, we aren't making a font
+ tracingtitles:=0; % don't show titles online
+ pixels_per_inch:=2601.72; % that's 36 pixels per pt
+ blacker:=0; % no additional blackness
+ fillin:=0; % no compensation for fillin
+ o_correction:=1; % no reduction in overshoot
+ blacker_min:=0; % no write_white provision
+enddef;
+
+def beginchar_twice(expr c,w_sharp,h_sharp,d_sharp) =
+ begingroup
+ if string mode: string prev_mode; prev_mode:=mode;
+ else: numeric prev_mode; prev_mode:=mode;
+ fi
+ for sharp_calc_:=1, whatever:
+% |sharp_calc| is checked in |corrital|, |mark_height|, |put_accent|,
+% and |put_dot|
+ sharp_calc:=sharp_calc_;
+ if known sharp_calc: % carry out ``sharp'' calculations
+ begingroup save mode,mag; mode:=canonical_sharp_mode; mode_setup;
+ if known cmbase: font_setup;
+ if not serifs: fisp:=round(1/3[fine,crisp]); prepare_pen fisp; fi
+ if known ogonek_pen#:
+ define_whole_pixels(ogonek_pen); prepare_pen ogonek_pen;
+ fi
+% In POLKAP.MF the following setting is performed:
+%| forsuffixes $=u,o,letter_fit,x_height,bar_height,body_height,stem:|
+%| higher.$:=higher.$.# * hppp;|
+%| endfor|
+ if is_small_cap: % a supplement to |font_setup|
+ define_pixels(higher.u,higher.bar_height);
+ define_corrected_pixels(higher.o);
+ define_whole_pixels(higher.letter_fit);
+ define_whole_vertical_pixels(higher.x_height,higher.body_height);
+ define_whole_blacker_pixels(higher.stem);
+ fi
+ fi
+ endgroup;
+ let draw:=killtext; % |killtext| was absent from earlier versions of plain
+ let fill:=killtext;
+ let filldraw:=killtext;
+ let erase:=killtext;
+ def special expr t = enddef;
+ def numspecial expr t = enddef;
+ charwd:=w_sharp; charht:=h_sharp; chardp:=d_sharp; charic:=0;
+ else: % carry out ``discrete'' calculations
+ save mode_guard_; % dedicated to those who use Karl Berry's modes.mf
+ mode:=prev_mode; mode_setup;
+ if known cmbase: font_setup;
+ if not serifs: fisp:=round(1/3[fine,crisp]); prepare_pen fisp; fi
+ if known ogonek_pen#:
+ define_whole_pixels(ogonek_pen); prepare_pen ogonek_pen;
+ fi
+ if is_small_cap: % a supplement to |font_setup| (see sharp calculations)
+ define_pixels(higher.u,higher.bar_height);
+ define_corrected_pixels(higher.o);
+ define_whole_pixels(higher.letter_fit);
+ define_whole_vertical_pixels(higher.x_height,higher.body_height);
+ define_whole_blacker_pixels(higher.stem);
+ fi
+ fi
+ let draw:=ori_draw;
+ let fill:=ori_fill;
+ let filldraw:=ori_filldraw;
+ let erase:=ori_erase;
+ let special:=ori_special;
+ let numspecial:=ori_numspecial;
+ charwd:=w_sharp;
+ fi
+ charcode:=if known c: byte c else: 0 fi;
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+ clearxy; clearit; clearpen; scantokens extra_beginchar;
+enddef;
+
+let repeat_once = endfor;
+
+% ---------------------------------------------------------------------------
+% LAST MINUTE EXTRA FONT SETUP (repeated in POLKAP.MF)
+% ---------------------------------------------------------------------------
+if not serifs: fisp:=round(1/3[fine,crisp]); prepare_pen fisp; fi
+if known ogonek_pen#:
+ define_whole_pixels(ogonek_pen); prepare_pen ogonek_pen;
+fi
+% ---------------------------------------------------------------------------
+% THAT'S ALL, FOLKS.
+% ---------------------------------------------------------------------------
+endinput;
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/pl/pl_ml.mf b/Master/texmf-dist/fonts/source/public/pl/pl_ml.mf
new file mode 100644
index 00000000000..239afbb9154
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pl_ml.mf
@@ -0,0 +1,327 @@
+% ---------------------------------------------------------------------------
+% This is PL_ML.MF ({\bif{}ma\l{}e polskie litery}, i.e., lowercase Polish
+% letters: a and e with ogonek, crossed l, accented c, n, o, s, z,
+% and dotted z) in text format.
+% The program is based on excerpts from the ROMANL.MF file.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS OF ADAPTATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+%%% beginchar beginchar_twice
+%%% endfor repeat_once
+% ---------------------------------------------------------------------------
+
+cmchar "The letter a with ogonek";
+beginchar(ogonked_a,9u#,x_height#,the_ogonek_depth);
+ bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+ italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+ adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+ pickup fine.nib; top y3r=h+vround 1.5oo;
+ if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+ else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+ pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+ pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+ filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+ pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+ pos7(hround(curve-2stem_corr),180);
+ lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+ pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+ pos9(thin_join,360); z9l=z5l;
+ (x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+ {{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+ if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if is_bold: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+ else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; % base of stem
+ fi;
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+ if serifs: path p.l; p.l=z5'l---z10l...z11l{right}; fi
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+ ogonek_pos=if serifs: (point if is_bold: 1.75 of p.l) else: 1.85 of p.l)+
+ .5the_pen*up fi\\ else: (x10l,.5the_pen) fi;
+ put_ogonek(the_pen);
+endchar; % a with ogonek
+
+cmchar "The letter accented c";
+beginchar_twice(accented_c,8u#,x_height#,0);
+ italcorr x_height#*slant-.2u#;
+ adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+ pickup fine.nib; pos2(vair',90); pos4(vair',270);
+ x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+ pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+ if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+ penlabels(0,1,2,3,4,5);
+ hpos_corr=-.25u; put_accent;
+ repeat_once
+endchar; % accented c
+
+cmchar "The letter e with ogonek";
+beginchar(ogonked_e,7.25u#+max(.75u#,.5curve#),x_height#,the_ogonek_depth);
+ italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+ adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+ numeric left_curve,right_curve;
+ left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+ if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+ if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+ pickup tiny.nib; pos1(right_curve,0);
+ pos2(vair,90); pos3(left_curve,180);
+ y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+ rt x1r=hround min(w-.5u,w-u+.5right_curve);
+ lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+ {{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+ y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+ if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+ else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+ path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+ y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+ forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+ fill stroke z0e--z1'e; % crossbar
+ penlabels(0,1,2,3,4,5);
+ path p.r;
+ p.r=if serifs: pulled_arc.r(3,4)...{x5-x4,5(y5-y4)}z5r
+ else: term.r(4',5,right,1,4) fi;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen elseif serifs: tiny else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if serifs: if hefty: 2.6 else: 2.5 fi else: % sansserif
+ if is_bold: .6 else: .8 fi\\ fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_breadth=if serifs and is_bold: slab else: xvair fi;
+ ogonek_pos=(point tt of p.r)+.5(the_pen-if serifs: tiny else: fine fi)*
+ unitvector((direction tt of p.r) rotated 90);
+ put_ogonek(the_pen);
+endchar; % e with ogonek
+
+cmchar "The letter crossed l";
+beginchar_twice(crossed_l,5u#,asc_height#,0);
+ italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+ charwd_:=charwd;
+ adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+ pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+ if odd(w-stem'): change_width; fi
+ lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+ filldraw stroke z1e--z2e; % stem
+ if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+ penlabels(1,2);
+ numeric unbalance;
+ unbalance=if monospace: 1 else: 1.1 fi;
+ if not monospace:
+ numeric cross_fit#;
+ cross_fit#=serif_fit#+if not serifs: if is_bold: 1 else: .75 fi\\ else:
+ .5 fi\\ u#;
+ charwd:=charwd_;
+ adjust_fit(cross_fit#+stem_shift#,unbalance*cross_fit#-stem_shift#);
+ fi
+ numeric l_jut;
+% some funny fonts have an extremally small |jut|:
+ l_jut=.5stem+if serifs: max(limit_dist,if hefty: .8 fi\\ jut) else: 1.7u fi;
+ put_cross(l_jut,unbalance*l_jut);
+ repeat_once
+endchar; % crossed l
+
+cmchar "The letter accented n";
+beginchar_twice(accented_n,10u#,x_height#,0);
+ italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+ adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+ pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+ numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+ pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+ lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+ top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+ filldraw stroke z1'e--z2'e; % left stem
+ h_stroke(2,a,3,4); % arch and right stem
+ if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+ penlabels(1,2,3,4);
+ hpos_corr=-.5u; put_accent;
+ repeat_once
+endchar;% accented n
+
+cmchar "The letter accented o";
+beginchar_twice(accented_o,9u#,x_height#,0);
+ italcorr .7x_height#*slant;
+ adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+ penpos1(vair,90); penpos3(vair',-90);
+ penpos2(curve,180); penpos4(curve,0);
+ x2r=hround max(.5u,1.25u-.5curve);
+ x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+ y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+ penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+ penlabels(1,2,3,4);
+ put_accent;
+ repeat_once
+endchar;% accented o
+
+cmchar "The letter accented s";
+beginchar_twice(accented_s,7.1u#,x_height#,0);
+ italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+ adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+ numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+ numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+ numeric ess'; ess'=max(fine.breadth,ess);
+ pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+ pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+ top y2l=h+vround 1.5oo; bot y7r=-oo;
+ y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+ lft x3l=hround .6u; rt x6r=hround(w-.6u);
+ x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+ interim superness:=more_super;
+ filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+ if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+ else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+ penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10);
+ hpos_corr=-.5u; put_accent;
+ repeat_once
+endchar;% accented s
+
+cmchar "The letter accented z";
+beginchar_twice(accented_z,8u#,x_height#,0);
+ italcorr x_height#*slant-.5serif_fit#-.3u#;
+ adjust_fit(0,.5serif_fit#);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+ else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+ pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+ arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+ arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ hpos_corr=-.5u; put_accent;
+ repeat_once
+endchar;% accented z
+
+cmchar "The letter dotted z";
+beginchar_twice(dotted_z,8u#,x_height#,0);
+ italcorr x_height#*slant-.5serif_fit#-.3u#;
+ adjust_fit(0,.5serif_fit#);
+ numeric arm_thickness[\\],z_stem;
+ if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+ else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+ pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=0; y3=max(y4,2/3arm_thickness2);
+ numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+ arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+ pos7(arm_thickness2,-90); pos8(hair,0);
+ bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+ arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+ penlabels(1,2,3,4,5,6,7,8);
+ put_dot(tiny,max(dot_size#,cap_curve#));
+ repeat_once
+endchar;% dotted z
+
+endinput;
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/pl/pl_mlk.mf b/Master/texmf-dist/fonts/source/public/pl/pl_mlk.mf
new file mode 100644
index 00000000000..f1d9aeb7b5e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pl_mlk.mf
@@ -0,0 +1,204 @@
+% ---------------------------------------------------------------------------
+% This is PL_MLK.MF ({\bif{}ma\l{}e polskie litery --- kursywa}, i.e.,
+% lowercase italic Polish letters: a and e with ogonek, crossed l,
+% accented c, n, o, s, z, and dotted z) in text format.
+% The program is based on excerpts from the ITALL.MF file.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS OF ADAPTATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+%%% beginchar beginchar_twice
+%%% endfor repeat_once
+% ---------------------------------------------------------------------------
+
+cmchar "Italic letter a with ogonek";
+beginchar(ogonked_a,9u#,x_height#,the_ogonek_depth);
+ italcorr 1/3x_height#*slant+.5hair#+.5u#;
+ adjust_fit(0,0); pickup fine.nib;
+ pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+ pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+ x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+ rt x4r=hround(w-2.5u+.5stem);
+ top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+ filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+ x5=x4; x7=w; hook_out(5,6,7); % closing hook
+ filldraw circ_stroke z4e--z5e; % stem
+ penlabels(0,1,2,3,4,5,6,7);
+ path p.l;
+ p.l=if skewed: z5l{-u,-x_height}...z6l{right}...{up}z7l
+ else: z5l{down}...z6l{right}...{x7-(x5+2.5u),x_height}z7l fi;
+ ogonek_breadth=xvair; ogonek_pos=point .9 of p.l;
+ put_ogonek(if known ogonek_pen: ogonek_pen else: fine fi);
+endchar; % italic a with ogonek
+
+cmchar "Italic letter accented c";
+beginchar_twice(accented_c,8u#,x_height#,0);
+ italcorr x_height#*slant-u#;
+ adjust_fit(0,0); pickup fine.nib;
+ pos0(flare,0); pos1(hair,0); pos2(vair,90);
+ pos3(curve,180); pos4(vair,270); pos5(hair,320);
+ x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+ lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+ y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+ bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+ path p; p=z4{right}..z5..z6;
+ filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+ penlabels(0,1,2,3,4,5,6);
+ hpos_corr=-.25u; put_accent;
+ repeat_once
+endchar; % italic accented c
+
+cmchar "Italic letter e with ogonek";
+beginchar(ogonked_e,8u#,x_height#,the_ogonek_depth);
+ italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+ adjust_fit(0,0); pickup fine.nib;
+ numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+ pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+ pos3(curve,180); pos4(vair,270); pos5(hair,320);
+ x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+ lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+ y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+ top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+ filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+ penlabels(0,1,2,3,4,5,6);
+ path p.r; p.r=pulled_arc.r(3,4)...{direction 1 of p}z5r;
+ def the_pen=
+ if known ogonek_pen: ogonek_pen else: fine fi
+ enddef;
+ numeric tt; % the time...
+ tt=if hefty: 2.8 else: 2.6 fi;
+ join_angle=angle((direction tt of p.r) rotated 180);
+ ogonek_breadth=xvair;
+ ogonek_pos=point tt of p.r+.5(the_pen-fine)*
+ unitvector((direction tt of p.r) rotated 90);
+ put_ogonek(the_pen);
+endchar; % italic e with ogonek
+
+cmchar "Italic letter crossed l";
+beginchar_twice(crossed_l,4u#,asc_height#,0);
+ l_width#:=4u#;
+ italcorr max(1/3x_height#*slant+.5hair#+.5u#,asc_height#*slant+.5stem#-2u#);
+ charwd_:=charwd; adjust_fit(if monospace:u#,u# else: 0,0 fi);
+ pickup fine.nib;
+ x2-.5stem=hround(1.5u-.5stem);
+ x4=w; hook_out(2,3,4); % closing hook
+ pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+ top y1=h; x1=x2; filldraw stroke z1e--z2'e; % stem
+ sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+ penlabels(1,2,3,4);
+ if not monospace:
+ charwd:=charwd_; adjust_fit(.25u#,if is_bold: .75 fi\\ u#);
+ fi
+% some funny fonts have an extremally small |jut|:
+ numeric l_jut; l_jut=.5stem+max(limit_dist,if hefty: .8 fi\\ jut);
+ put_cross(l_jut,1.15l_jut);
+ repeat_once
+endchar; % italic crossed l
+
+cmchar "Italic letter accented n";
+ beginchar_twice(accented_n,10u#,x_height#,0);
+ italcorr 1/3x_height#*slant+.5hair#+.5u#;
+ adjust_fit(0,0); pickup fine.nib;
+ x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+ hook_in(0,a,1); % opening hook
+ filldraw circ_stroke z2e--z1e; % left stem
+ x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+ x7=w; hook_out(5,6,7)(skewed); % closing hook
+ filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+ penlabels(0,a,1,2,3,4,5,6,7);
+ hpos_corr=-.5u; put_accent;
+ repeat_once
+endchar; % italic accented n
+
+cmchar "Italic letter accented o";
+beginchar_twice(accented_o,9u#,x_height#,0);
+ italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+ adjust_fit(0,0); pickup fine.nib;
+ pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+ x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+ top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+ filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+ penlabels(1,2,3,4);
+ put_accent;
+ repeat_once
+endchar; % italic accented o
+
+cmchar "Italic letter accented s";
+beginchar_twice(accented_s,5.25u#+max(1.75u#,flare#),x_height#,0);
+ italcorr x_height#*slant-.5u#;
+ adjust_fit(0,0); pickup fine.nib;
+ numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+ pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+ x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+ y0-.5ess=y7l+.55(y2r-y7l-ess);
+ lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+ x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+ interim superness:=more_super;
+ filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+ pos1(hair,0); pos10(hround .75[hair,flare],0);
+ pos2'(vair,90); z2'=z2;
+ pos8(hair,-180); pos9(flare,-180);
+ rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+ bulb(2',1,10); bulb(7,8,9); % bulbs
+ penlabels(0,1,2,3,4,5,6,7,8,9,10);
+ hpos_corr=-.5u; put_accent;
+ repeat_once
+endchar; % italic accented s
+
+cmchar "Italic letter accented z";
+beginchar_twice(accented_z,5.5u#+max(1.5u#,stem#),x_height#,0);
+ italcorr x_height#*slant+.5hair#;
+ adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+ pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+ lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+ top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+ pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+ x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+ bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+ pair p; p=(z4-z5) yscaled 2;
+ filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+ filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+ filldraw stroke z5e{p}..{p}z4e; % diagonal
+ penlabels(1,2,3,4,5,6,7,8);
+ hpos_corr=-.5u; put_accent;
+ repeat_once
+endchar; % italic accented z
+
+cmchar "Italic letter dotted z";
+beginchar_twice(dotted_z,5.5u#+max(1.5u#,stem#),x_height#,0);
+ italcorr x_height#*slant+.5hair#;
+ adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+ pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+ lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+ top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+ pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+ x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+ bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+ pair p; p=(z4-z5) yscaled 2;
+ filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+ filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+ filldraw stroke z5e{p}..{p}z4e; % diagonal
+ penlabels(1,2,3,4,5,6,7,8);
+ put_dot(fine,flare#);
+ repeat_once
+endchar; % italic dotted z
+
+endinput;
+%%\end
+
diff --git a/Master/texmf-dist/fonts/source/public/pl/pl_sym.mf b/Master/texmf-dist/fonts/source/public/pl/pl_sym.mf
new file mode 100644
index 00000000000..88dc3b93a41
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pl_sym.mf
@@ -0,0 +1,49 @@
+% ---------------------------------------------------------------------------
+% This is PL_SYM.MF ({\bif{}polskie symbole matematyczne, i.e., extra
+% Polish math symbols) in text format. Characters |xleq| and |xgeq| are
+% generated when their codes are known.
+% The program is a modification of the SYM.MF file.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS OF MODIFICATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+iff known xleq: cmchar "Extra less than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(xleq,14u#,v_center(spread#'+spread#+rule_thickness#));
+ italcorr h#*slant-u#;
+ adjust_fit(0,0); pickup rule.nib;
+ lft x2=hround 1.5u-eps; x1=x3=w-x2;
+ y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+ draw z1--z2--z3; % diagonals
+ x8=x1; x9=x2; y2-y9=y3-y8=floor(spread'); draw z8--z9; % skew bar
+ labels(1,2,3,8,9);
+endchar;
+
+iff known xgeq: cmchar "Extra greater than or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(xgeq,14u#,v_center(spread#'+spread#+rule_thickness#));
+ italcorr h#*slant-u#;
+ adjust_fit(0,0); pickup rule.nib;
+ lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+ y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+ draw z1--z2--z3; % diagonals
+ x8=x1; x9=x2; y2-y9=y3-y8=floor(spread'); draw z8--z9; % skew bar
+ labels(1,2,3,8,9);
+endchar;
+
+endinput
+
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/pl/plb10.mf b/Master/texmf-dist/fonts/source/public/pl/plb10.mf
new file mode 100644
index 00000000000..1b9e2c35aff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plb10.mf
@@ -0,0 +1,6 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+post_lightness:=.6; pre_lightness:=.6;
+left_corr:=1.1; tip_ycorr:=1.15;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbsy10.mf b/Master/texmf-dist/fonts/source/public/pl/plbsy10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbsy10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbsy5.mf b/Master/texmf-dist/fonts/source/public/pl/plbsy5.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbsy5.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbsy7.mf b/Master/texmf-dist/fonts/source/public/pl/plbsy7.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbsy7.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbx10.mf b/Master/texmf-dist/fonts/source/public/pl/plbx10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbx10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbx12.mf b/Master/texmf-dist/fonts/source/public/pl/plbx12.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbx12.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbx5.mf b/Master/texmf-dist/fonts/source/public/pl/plbx5.mf
new file mode 100644
index 00000000000..36d233d1d7e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbx5.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.14;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbx6.mf b/Master/texmf-dist/fonts/source/public/pl/plbx6.mf
new file mode 100644
index 00000000000..421e1a0be3b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbx6.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.09;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbx7.mf b/Master/texmf-dist/fonts/source/public/pl/plbx7.mf
new file mode 100644
index 00000000000..208653109af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbx7.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.06;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbx8.mf b/Master/texmf-dist/fonts/source/public/pl/plbx8.mf
new file mode 100644
index 00000000000..0f83c7b80f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbx8.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.02;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbx9.mf b/Master/texmf-dist/fonts/source/public/pl/plbx9.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbx9.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbxsl10.mf b/Master/texmf-dist/fonts/source/public/pl/plbxsl10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbxsl10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plbxti10.mf b/Master/texmf-dist/fonts/source/public/pl/plbxti10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plbxti10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plcsc10.mf b/Master/texmf-dist/fonts/source/public/pl/plcsc10.mf
new file mode 100644
index 00000000000..2781dbe8e94
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plcsc10.mf
@@ -0,0 +1,4 @@
+%%% fine lower
+%%% input use_driver
+% see the respective CM file
+input fik_mik; lower.cap_flat:=0; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/pldunh10.mf b/Master/texmf-dist/fonts/source/public/pl/pldunh10.mf
new file mode 100644
index 00000000000..39186cdf8d7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pldunh10.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+cap_flat=0; % dunhill font is slim
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plex10.mf b/Master/texmf-dist/fonts/source/public/pl/plex10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plex10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plff10.mf b/Master/texmf-dist/fonts/source/public/pl/plff10.mf
new file mode 100644
index 00000000000..a3910b2ee08
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plff10.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+ogonek_pen#:=9/36pt#;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plfi10.mf b/Master/texmf-dist/fonts/source/public/pl/plfi10.mf
new file mode 100644
index 00000000000..a96790f2bc8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plfi10.mf
@@ -0,0 +1,6 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+ogonek_pen#:=9/36pt#;
+tip_xcorr:=.7;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plfib8.mf b/Master/texmf-dist/fonts/source/public/pl/plfib8.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plfib8.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plinch.mf b/Master/texmf-dist/fonts/source/public/pl/plinch.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plinch.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plitt10.mf b/Master/texmf-dist/fonts/source/public/pl/plitt10.mf
new file mode 100644
index 00000000000..f76d4b2da34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plitt10.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+tip_xcorr:=1.5; tip_ycorr:=.9;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmi10.mf b/Master/texmf-dist/fonts/source/public/pl/plmi10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmi10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmi12.mf b/Master/texmf-dist/fonts/source/public/pl/plmi12.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmi12.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmi5.mf b/Master/texmf-dist/fonts/source/public/pl/plmi5.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmi5.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmi6.mf b/Master/texmf-dist/fonts/source/public/pl/plmi6.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmi6.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmi7.mf b/Master/texmf-dist/fonts/source/public/pl/plmi7.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmi7.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmi8.mf b/Master/texmf-dist/fonts/source/public/pl/plmi8.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmi8.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmi9.mf b/Master/texmf-dist/fonts/source/public/pl/plmi9.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmi9.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmib10.mf b/Master/texmf-dist/fonts/source/public/pl/plmib10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmib10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmib5.mf b/Master/texmf-dist/fonts/source/public/pl/plmib5.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmib5.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plmib7.mf b/Master/texmf-dist/fonts/source/public/pl/plmib7.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plmib7.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plr10.mf b/Master/texmf-dist/fonts/source/public/pl/plr10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plr10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plr12.mf b/Master/texmf-dist/fonts/source/public/pl/plr12.mf
new file mode 100644
index 00000000000..42de91a461b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plr12.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+left_corr:=.94; depth_corr:=.98;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plr17.mf b/Master/texmf-dist/fonts/source/public/pl/plr17.mf
new file mode 100644
index 00000000000..7d775e260f5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plr17.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+left_corr:=.9; depth_corr:=.92;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plr5.mf b/Master/texmf-dist/fonts/source/public/pl/plr5.mf
new file mode 100644
index 00000000000..287f42e3d59
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plr5.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.17;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plr6.mf b/Master/texmf-dist/fonts/source/public/pl/plr6.mf
new file mode 100644
index 00000000000..543ccb0eb26
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plr6.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.12;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plr7.mf b/Master/texmf-dist/fonts/source/public/pl/plr7.mf
new file mode 100644
index 00000000000..03c47d84d04
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plr7.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.08;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plr8.mf b/Master/texmf-dist/fonts/source/public/pl/plr8.mf
new file mode 100644
index 00000000000..0f83c7b80f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plr8.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.02;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plr9.mf b/Master/texmf-dist/fonts/source/public/pl/plr9.mf
new file mode 100644
index 00000000000..ca6f0603f0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plr9.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.01;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsl10.mf b/Master/texmf-dist/fonts/source/public/pl/plsl10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsl10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsl12.mf b/Master/texmf-dist/fonts/source/public/pl/plsl12.mf
new file mode 100644
index 00000000000..42de91a461b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsl12.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+left_corr:=.94; depth_corr:=.98;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsl8.mf b/Master/texmf-dist/fonts/source/public/pl/plsl8.mf
new file mode 100644
index 00000000000..0f83c7b80f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsl8.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.02;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsl9.mf b/Master/texmf-dist/fonts/source/public/pl/plsl9.mf
new file mode 100644
index 00000000000..ca6f0603f0c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsl9.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.01;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsltt10.mf b/Master/texmf-dist/fonts/source/public/pl/plsltt10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsltt10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plss10.mf b/Master/texmf-dist/fonts/source/public/pl/plss10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plss10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plss12.mf b/Master/texmf-dist/fonts/source/public/pl/plss12.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plss12.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plss17.mf b/Master/texmf-dist/fonts/source/public/pl/plss17.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plss17.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plss8.mf b/Master/texmf-dist/fonts/source/public/pl/plss8.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plss8.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plss9.mf b/Master/texmf-dist/fonts/source/public/pl/plss9.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plss9.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssbi10.mf b/Master/texmf-dist/fonts/source/public/pl/plssbi10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssbi10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssbx10.mf b/Master/texmf-dist/fonts/source/public/pl/plssbx10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssbx10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssdc10.mf b/Master/texmf-dist/fonts/source/public/pl/plssdc10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssdc10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssi10.mf b/Master/texmf-dist/fonts/source/public/pl/plssi10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssi10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssi12.mf b/Master/texmf-dist/fonts/source/public/pl/plssi12.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssi12.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssi17.mf b/Master/texmf-dist/fonts/source/public/pl/plssi17.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssi17.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssi8.mf b/Master/texmf-dist/fonts/source/public/pl/plssi8.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssi8.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssi9.mf b/Master/texmf-dist/fonts/source/public/pl/plssi9.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssi9.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssq8.mf b/Master/texmf-dist/fonts/source/public/pl/plssq8.mf
new file mode 100644
index 00000000000..722545cd1e1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssq8.mf
@@ -0,0 +1,7 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+top_breadth_corr:=.77;
+tip_breadth_corr:=.77;
+tip_xcorr:=.85; depth_corr:=1.32;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plssqi8.mf b/Master/texmf-dist/fonts/source/public/pl/plssqi8.mf
new file mode 100644
index 00000000000..722545cd1e1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plssqi8.mf
@@ -0,0 +1,7 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+top_breadth_corr:=.77;
+tip_breadth_corr:=.77;
+tip_xcorr:=.85; depth_corr:=1.32;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsy10.mf b/Master/texmf-dist/fonts/source/public/pl/plsy10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsy10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsy5.mf b/Master/texmf-dist/fonts/source/public/pl/plsy5.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsy5.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsy6.mf b/Master/texmf-dist/fonts/source/public/pl/plsy6.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsy6.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsy7.mf b/Master/texmf-dist/fonts/source/public/pl/plsy7.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsy7.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsy8.mf b/Master/texmf-dist/fonts/source/public/pl/plsy8.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsy8.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plsy9.mf b/Master/texmf-dist/fonts/source/public/pl/plsy9.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plsy9.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/pltcsc10.mf b/Master/texmf-dist/fonts/source/public/pl/pltcsc10.mf
new file mode 100644
index 00000000000..2781dbe8e94
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pltcsc10.mf
@@ -0,0 +1,4 @@
+%%% fine lower
+%%% input use_driver
+% see the respective CM file
+input fik_mik; lower.cap_flat:=0; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/pltex10.mf b/Master/texmf-dist/fonts/source/public/pl/pltex10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pltex10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/pltex8.mf b/Master/texmf-dist/fonts/source/public/pl/pltex8.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pltex8.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/pltex9.mf b/Master/texmf-dist/fonts/source/public/pl/pltex9.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pltex9.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plti10.mf b/Master/texmf-dist/fonts/source/public/pl/plti10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plti10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plti12.mf b/Master/texmf-dist/fonts/source/public/pl/plti12.mf
new file mode 100644
index 00000000000..05393fa7324
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plti12.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=.94;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plti7.mf b/Master/texmf-dist/fonts/source/public/pl/plti7.mf
new file mode 100644
index 00000000000..543ccb0eb26
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plti7.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.12;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plti8.mf b/Master/texmf-dist/fonts/source/public/pl/plti8.mf
new file mode 100644
index 00000000000..4ca5ee493f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plti8.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+depth_corr:=1.04;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plti9.mf b/Master/texmf-dist/fonts/source/public/pl/plti9.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plti9.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/pltt10.mf b/Master/texmf-dist/fonts/source/public/pl/pltt10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pltt10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/pltt12.mf b/Master/texmf-dist/fonts/source/public/pl/pltt12.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pltt12.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/pltt8.mf b/Master/texmf-dist/fonts/source/public/pl/pltt8.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pltt8.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/pltt9.mf b/Master/texmf-dist/fonts/source/public/pl/pltt9.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/pltt9.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plu10.mf b/Master/texmf-dist/fonts/source/public/pl/plu10.mf
new file mode 100644
index 00000000000..ba10746154d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plu10.mf
@@ -0,0 +1,3 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik; use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/plvtt10.mf b/Master/texmf-dist/fonts/source/public/pl/plvtt10.mf
new file mode 100644
index 00000000000..14f95ef9782
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/plvtt10.mf
@@ -0,0 +1,5 @@
+%%% input use_driver
+% see the respective CM file
+input fik_mik;
+tip_xcorr:=.85; tip_ycorr:=.85;
+use_driver;
diff --git a/Master/texmf-dist/fonts/source/public/pl/polan.mf b/Master/texmf-dist/fonts/source/public/pl/polan.mf
new file mode 100644
index 00000000000..20396123fb8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/polan.mf
@@ -0,0 +1,163 @@
+% ---------------------------------------------------------------------------
+% This is POLAN.MF ({\bif{}polska antykwa}, i.e., roman) in text format.
+% The program is a modification of the ROMAN.MF file.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS OF MODIFICATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+if ligs>1: font_coding_scheme:="TeX text";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ spanish_shriek=oct"016"; spanish_query=oct"017"; fi
+
+mode_setup; font_setup;
+
+input pl_dod; % Polish additional definitions
+input pl_dl; % Polish majuscules
+input pl_ml; % Polish minuscules
+input pl_cud; % Polish and French quotation marks
+
+input romanu; % upper case (majuscules)
+input romanl; % lower case (minuscules)
+input greeku; % upper case Greek letters
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to roman and italic text
+input accent; % accents common to roman and italic text
+
+if ligs>1: input romlig; fi % letter ligatures
+if ligs>0: input comlig; fi % ligatures common with italic text
+if ligs<=1: input romsub; fi % substitutes for ligatures
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+
+font_slant slant; font_x_height x_height#;
+if monospace:
+ font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else:
+ font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+% IMPLICIT KERNS:
+
+% three degrees of kerning (more precisely, |-u#| is fourth):
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+% Usually a kern for a latin letter is repeated for the corresponding
+% diacritical one, except that no kerns after accented |"c"| are inserted,
+% and that some kerns after accented |"n"| and |"a"| with ogonek
+% are not inserted; the following kerns have been added:
+% - between |"a"| with ogonek and |"g"|, |"p"|
+% - between Polish crossed |"l"| and |"'"|
+% - between sansserif Polish crossed |"l"| and some minuscules
+% - between Polish opening quotes and some letters
+% the following kerns should have been added:
+% - between |"."| and |"."| (...)
+% - between |"A"| and |"v"| (Average)
+% - between |"A"| and |"w"| (Awkward or Lem's Awruk)
+% - between |"F"|, |"P"|, |"T"|, |"V"|, |"W"|, |"Y"| and |"."|, |","|
+% but for the sake of compatibility with CM's they would have been
+% inserted only if |improve_kerns=true| (by default |improve_kerns=false|).
+
+if improve_kerns: ligtable ".": "." kern -kkk#; fi
+ligtable "k":
+ if serifs: "v": "a" kern -u#, ogonked_a kern -u#, fi
+ "w": "e" kern k#, ogonked_e kern k#, "a" kern k#, ogonked_a kern k#,
+ "o" kern k#, accented_o kern k#, "c" kern k#, accented_c kern k#;
+ligtable "P":
+ if improve_kerns: "." kern k#, "," kern k#, fi
+ "A" kern kk#, ogonked_A kern kk#, "y":
+ "o" kern k#, accented_o kern k#, "e" kern k#, ogonked_e kern k#,
+ "a" kern k#, ogonked_a kern k#, "." kern kk#, "," kern kk#;
+ligtable "F": "V": "W":
+ if improve_kerns: "." kern -u#, "," kern -u#, fi
+ if serifs:
+ "o" kern kk#, accented_o kern kk#, "e" kern kk#, ogonked_e kern kk#,
+ "u" kern kk#, "r" kern kk#, "a" kern kk#, ogonked_a kern kk#,
+ "A" kern kkk#, ogonked_A kern kkk#,
+ else:
+ "o" kern k#, accented_o kern k#, "e" kern k#, ogonked_e kern k#,
+ "u" kern k#, "r" kern k#, "a" kern k#, ogonked_a kern k#, "A" kern kk#,
+ ogonked_A kern kk#,
+ fi
+ "K": "X": "O" kern k#, accented_O kern k#, "C" kern k#, accented_C kern k#,
+ "G" kern k#, "Q" kern k#;
+ligtable "T":
+ "y" kern if serifs: k# else: kk# fi, "Y": "e" kern kk#, ogonked_e kern kk#,
+ "o" kern kk#, accented_o kern kk#, "r" kern kk#,
+ "a" kern kk#, ogonked_a kern kk#, "A" kern kk#, ogonked_A kern kk#,
+ "u" kern kk# if improve_kerns:, "." kern k#, "," kern k# fi;
+ligtable "O": accented_O: "D":
+ "X" kern k#, "W" kern k#, "A" kern k#, ogonked_A kern k#,
+ "V" kern k#, "Y" kern k#;
+if serifs:
+ ligtable "h": "m": "n":
+ "t" kern k#, "b" kern k#,
+ accented_n: "u" kern k#, "y" kern k#, "v" kern k#, "w" kern k#;
+ ligtable "c": "h" kern k#, "k" kern k#;
+fi
+ligtable "o": accented_o: "b": "p":
+ "e" kern -k#, ogonked_e kern -k#, "o" kern -k#, accented_o kern -k#,
+ "x" kern k#, "d" kern -k#, "c" kern -k#, accented_c kern -k#, "q" kern -k#,
+ "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "t": "y" kern k#, "u": "w" kern k#;
+
+ligtable "A":
+ if improve_kerns:
+ "v" kern if serifs: kkk# else: k# fi, "w" kern if serifs: kk# else: k# fi,
+ fi
+ ogonked_A: if serifs: "R": fi "t" kern k#, "C" kern k#, accented_C kern k#,
+ "O" kern k#, accented_O kern k#, "G" kern k#, "U" kern k#, "Q" kern k#,
+ "L": crossed_L: "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#;
+ligtable "g": "j" kern -k#; % logjam
+ligtable "I": "I" kern -k#; % Richard III
+
+ligtable ogonked_a:
+ if serifs: "g" kern -k# , "p" kern -k#, fi\\ "w" kern k#;
+ligtable crossed_l: "'" kern -k#
+ if not serifs: ,
+ "a" kern k#, ogonked_a kern k#, "c" kern k#, accented_c kern k#,
+ "d" kern k#, "e" kern k#, ogonked_e kern k#, "g" kern k#,
+ "o" kern k#, accented_o kern k#, "s" kern k#, accented_s kern k#
+ fi;
+ligtable polish_opening_quotes:
+ "g" kern -k#, "j" kern -kkk#, "p" kern -k#, "y" kern u#,
+ "v" kern k#, "w" kern k#,
+ if serifs:
+ "A" kern u#, ogonked_A kern u#,
+ "C" kern u#, accented_C kern u#, "D" kern u#,
+ "E" kern u#, ogonked_E kern u#, "F" kern u#, "H" kern u#,
+ "I" kern u#, "J" kern u#, "K" kern u#, "L" kern u#, crossed_L kern u#,
+ "M" kern u#, "N" kern u#, accented_N kern u#, "P" kern u#,
+ "R" kern u#, "S" kern u#, accented_S kern u#, "T" kern k#, "X" kern u#,
+ "Y" kern k#, "Z" kern u#, accented_Z kern u#, dotted_Z kern u#,
+ else:
+ "T" kern kk#, "Y" kern kk#,
+ fi
+ "V" kern kk#, "W" kern k#;
+
+fi
+
+% There are also ligature/kern programs for |"f"| in the ROMLIG file,
+% for |"-"|, |"`"|, and |"'"| in the COMLIG file,
+% and for |"<"|, |">"|, |","| in the PL_CUD file.
+
+bye.
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/pl/polkap.mf b/Master/texmf-dist/fonts/source/public/pl/polkap.mf
new file mode 100644
index 00000000000..eaf5d0ab04f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/polkap.mf
@@ -0,0 +1,224 @@
+% ---------------------------------------------------------------------------
+% This is POLKAP.MF ({\bif{}polskie kapitaliki}, i.e., caps \& small caps) in
+% text format.
+% The program is a modification of the CSC.MF file.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS OF MODIFICATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+spanish_shriek=oct"016"; spanish_query=oct"017";
+
+mode_setup; font_setup;
+
+input pl_dod; % Polish additional definitions
+input pl_dl; % Polish majuscules
+input pl_cud; % Polish and French quotation marks
+
+input romanu; % upper case (majuscules)
+input greeku; % upper case greek letters
+input romand; % numerals
+input romanp; % ampersand, question marks, currency sign
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to all roman and italic
+input accent; % accents common to roman and italic text
+input romsub; % substitutes for ligatures
+
+if ligs>0: input comlig; fi % ligatures common with italic
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+% IMPLICIT KERNS (the first portion):
+
+% three degrees of kerning (more precisely, |-u#| is fourth):
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+% The kern for a latin letter is repeated for the corresponding
+% diacritical one; the following kerns, however, should have been added
+% between |"F"|, |"P"|, |"T"|, |"V"|, |"W"|, |"Y"| and |"."|, |","|,
+% and between dots (because of `...') but for the sake of compatibility
+% with CM's they would have been inserted only if |improve_kerns=true|
+% (by default |improve_kerns=false|).
+
+if improve_kerns: ligtable ".": "." kern -kkk#; fi
+ligtable "P": "T": "Y":
+ if improve_kerns: "." kern k#, "," kern k#, fi
+ "a" kern kk#, ogonked_a kern kk#, "A" kern kk#, ogonked_A kern kk#;
+ligtable "F": "V": "W":
+ if improve_kerns: "." kern -u#, "," kern -u#, fi
+ if serifs: "a" kern kkk#, ogonked_a kern kkk#,
+ "A" kern kkk#, ogonked_A kern kkk#,
+ else:
+ "a" kern kk#, ogonked_a kern kk#, "A" kern kk#, ogonked_A kern kk#,
+ fi
+ "K": "X": "o" kern k#, accented_o kern k#, "O" kern k#, accented_O kern k#,
+ "c" kern k#, accented_c kern k#, "C" kern k#, accented_C kern k#,
+ "g" kern k#, "G" kern k#, "q" kern k#, "Q" kern k#;
+ligtable "O": accented_O: "D":
+ "x" kern k#, "X" kern k#, "w" kern k#, "W" kern k#,
+ "a" kern k#, ogonked_a kern k#, "A" kern k#, ogonked_A kern k#,
+ "v" kern k#, "V" kern k#, "y" kern k#, "Y" kern k#;
+ligtable "A": ogonked_A: if serifs: "R": fi
+ "c" kern k#, accented_c kern k#, "C" kern k#, accented_C kern k#,
+ "o" kern k#, accented_o kern k#, "O" kern k#, accented_O kern k#,
+ "g" kern k#, "G" kern k#, "u" kern k#, "U" kern k#, "q" kern k#,
+ "Q" kern k#, "L": crossed_L: "T" kern kk#, "t" kern kk#,
+ "Y" kern kk#, "y" kern kk#, "V" kern kkk#, "v" kern kkk#,
+ "W" kern kkk#, "w" kern kkk#;
+ligtable "I": "I" kern -k#; % Richard III
+
+fi
+
+boolean is_small_cap; is_small_cap:=true;
+%%% fine higher
+% the `higher' values are used while putting accents and attaching ogoneks
+forsuffixes $=u,o,letter_fit,cap_height,x_height,bar_height,body_height,stem:
+ higher.$.#:=$.#; higher.$:=$;
+endfor
+
+%%% fine lower
+forsuffixes $ = u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#;
+endfor
+fudge:=lower.fudge;
+
+% optional part:
+forsuffixes $ = depth_corr, left_corr, top_breadth_corr, tip_breadth_corr,
+ tip_xcorr, tip_ycorr, pre_angle, post_angle, pre_limit, post_limit,
+ pre_lightness, post_lightness, pre_deflexion, post_deflexion, cap_flat,
+ ogonek_pen#: if known lower.$: $:=lower.$; fi
+endfor
+
+font_setup; % now try again with |lower| settings
+
+% repeat ``last minute font setup'' from PL_DOD.MF, as |font_setup|
+% clears pen memory
+%%% define_pixels prepare_pen
+if not serifs: fisp:=round(1/3[fine,crisp]); prepare_pen fisp; fi
+if known ogonek_pen#:
+ define_whole_pixels(ogonek_pen); prepare_pen ogonek_pen;
+fi
+
+ogonked_A:=ogonked_a;
+accented_C:=accented_c;
+ogonked_E:=ogonked_e;
+crossed_L:=crossed_l;
+accented_N:=accented_n;
+accented_O:=accented_o;
+accented_S:=accented_s;
+accented_Z:=accented_z;
+dotted_Z:=dotted_z;
+
+saved_height:=whatever;
+
+input pl_dl; % Polish majuscules (in positions of respective minuscules)
+
+% restore the previous state (ordnung must sein):
+polish_uc_positions; is_small_cap:=false;
+
+extra_endchar:=extra_endchar&";charcode:=charcode+code_offset";
+
+code_offset:=ASCII"a" - ASCII"A";
+input romanu; % majuscules (in positions of respective minuscules)
+code_offset:=-3;
+input romspu; % \AE, \OE, \O\ (in positions of \ae, \oe, \o)
+code_offset:=0;
+input cscspu; % substitutes for the remaining characters of romspl
+
+if not monospace:
+
+% IMPLICIT KERNS (the second portion):
+
+% three degrees of kerning (more precisely, |-u#| is fourth):
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+% Usually a kern for a latin letter is repeated for the corresponding
+% diacritical one except that kerns
+% - between Polish opening quotes and some letters
+% have been added; the following kerns should have been added:
+% - between |"f"|, |"p"|, |"t"|, |"v"|, |"w"|, |"y"| and |"."|, |","|
+% - between |"a"| with ogonek, |"a"| and |"'"|
+% but for the sake of compatibility with CM's they would have been
+% inserted only if |improve_kerns=true| (see the comment in the first
+% of implicit kerns).
+
+ligtable "p": "t": "y":
+ if improve_kerns: "." kern k#, "," kern k#, fi
+ "a" kern kk#, ogonked_a kern kk#;
+ligtable "f": "v": "w":
+ if improve_kerns: "." kern -u#, "," kern -u#, fi
+ "a" kern if serifs: kkk# else: kk# fi,
+ ogonked_a kern if serifs: kkk# else: kk# fi,
+ "k": "x": "o" kern k#, accented_o kern k#, "c" kern k#,
+ accented_c kern k#, "g" kern k#, "q" kern k#;
+ligtable "o": accented_o: "d":
+ "x" kern k#, "w" kern k#, "a" kern k#, ogonked_a kern k#,
+ "v" kern k#, "y" kern k#;
+ligtable "a": ogonked_a:
+ if improve_kerns: "'" kern kk#, fi
+ if serifs: "r": fi "c" kern k#, accented_c kern k#,
+ "o" kern k#, accented_o kern k#, "g" kern k#, "u" kern k#, "q" kern k#,
+ "l": crossed_l: "'" kern kk#, "t" kern kk#, "y" kern kk#, "v" kern kkk#,
+ "w" kern kkk#;
+ligtable "i": "i" kern -k#; % skiing (in Polish, e.g., poliizopren)
+
+ligtable polish_opening_quotes:
+ if serifs:
+ "A" kern -k#, ogonked_A kern -k#,
+ "C" kern -k#, accented_C kern -k#, "D" kern -k#,
+ "E" kern -k#, ogonked_E kern -k#, "F" kern -k#, "H" kern -k#,
+ "I" kern -k#, "J" kern -k#, "K" kern -k#,
+ "L" kern -k#, crossed_L kern -k#, "M" kern -k#,
+ "N" kern -k#, accented_N kern -k#, "P" kern -k#,
+ "R" kern -k#, "S" kern -k#, accented_S kern -k#, "T" kern k#,
+ "X" kern -k#, "Y" kern k#,
+ "Z" kern -k#, accented_Z kern -k#, dotted_Z kern -k#,
+ else:
+ "T" kern kk#, "Y" kern kk#,
+ fi
+ "V" kern kk#, "W" kern k#,
+ if serifs:
+ "a" kern -k#, ogonked_a kern -k#,
+ "c" kern -k#, accented_c kern -k#, "d" kern -k#,
+ "e" kern -k#, ogonked_e kern -k#, "f" kern -k#, "h" kern -k#,
+ "i" kern -k#, "j" kern -k#, "k" kern -k#,
+ "l" kern -k#, crossed_l kern -k#, "m" kern -k#,
+ "n" kern -k#, accented_n kern -k#, "p" kern -k#,
+ "r" kern -k#, "s" kern -k#, accented_s kern -k#, "t" kern k#,
+ "x" kern -k#, "y" kern k#,
+ "z" kern -k#, accented_z kern -k#, dotted_z kern -k#,
+ else:
+ "t" kern kk#, "y" kern kk#,
+ fi
+ "v" kern kk#, "w" kern k#;
+fi
+
+% There are also ligature/kern |"-"|, |"`"|, and |"'"| in the COMLIG file
+% and for |"<"|, |">"|, |","| in the PL_CUD file.
+
+bye.
+%%\end
+
diff --git a/Master/texmf-dist/fonts/source/public/pl/polkur.mf b/Master/texmf-dist/fonts/source/public/pl/polkur.mf
new file mode 100644
index 00000000000..ee31ca5f3ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/polkur.mf
@@ -0,0 +1,132 @@
+% ---------------------------------------------------------------------------
+% This is POLKUR.MF ({\bif{}polska kursywa}, i.e., text italic)
+% in text format.
+% The program is a modification of the TEXTIT.MF file.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS OF MODIFICATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+mode_setup; font_setup;
+
+input pl_dod; % Polish additional definitions
+input pl_mlk; % Polish italic minuscules
+input itall; % lower case (minuscules)
+input italsp; % lowercase specials (dotless \i, ligature \ae, etc.)
+
+if ligs>1: font_coding_scheme:="TeX text";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+ input italig; % letter ligatures
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ spanish_shriek=oct"016"; spanish_query=oct"017";
+fi
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0; % caps are wider
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+input pl_cud; % Polish and French quotation marks
+input pl_dl; % Polish majuscules
+
+input romanu; % upper case (majuscules)
+input greeku; % upper case greek letters
+input itald; % numerals
+input italp; % ampersand, question marks, currency sign
+input romspu; % uppercase specials (\AE, \OE, \O)
+input punct; % punctuation symbols common to roman and italic text
+input accent; % accents common to roman and italic text
+
+if ligs>0: input comlig; fi % ligatures common with roman text
+if ligs<=1: input romsub; fi % substitutes for ligatures
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+
+if not monospace:
+% IMPLICIT KERNS:
+
+% three degrees of kerning (more precisely, |-u#| is fourth):
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#;
+
+% Usually a kern for a latin letter is repeated for the corresponding
+% diacritical one, except that the kern between accented |"n"| and |"'"|
+% is not been inserted, also some kerns after crossed |"l"| are not inserted;
+% the following kerns have been added:
+% - between Polish crossed |"l"| and |"'"|
+% - between Polish opening quotes and some letters
+% the following kerns should have been added:
+% - between |"."| and |"."| (...)
+% - between |"A"| and |"v"| (Average)
+% - between |"A"| and |"w"| (Awkward or Lem's Awruk)
+% - between |"F"|, |"P"|, |"T"|, |"V"|, |"W"|, |"Y"| and |"."|, |","|
+% but for the sake of compatibility with CM's they would have been
+% inserted only if |improve_kerns=true| (by default |improve_kerns=false|).
+
+if improve_kerns: ligtable ".": "." kern -kkk#; fi
+ligtable "d": "w": "l": "l" kern u#;
+ligtable crossed_l: "'" kern -k#;
+ligtable "F": "V":
+ if improve_kerns: "." kern -u#, "," kern -u#, fi
+ "o" kern kk#, accented_o kern kk#,
+ "e" kern kk#, ogonked_e kern kk#, "u" kern kk#, "r" kern kk#,
+ "a" kern kk#, ogonked_a kern kk#, "A" kern kkk#, ogonked_A kern kkk#,
+ "K": "X": "O" kern k#, accented_O kern k#,
+ "C" kern k#, accented_C kern k#, "G" kern k#, "Q" kern k#;
+ligtable "T": "y" kern kk#,
+ "Y": "e" kern kk#, ogonked_e kern kk#,
+ "o" kern kk#, accented_o kern kk#, "r" kern kk#,
+ "a" kern kk#, ogonked_a kern kk#, "u" kern kk#,
+ "P": "W": "A" kern kk#, ogonked_A kern kk#
+ if improve_kerns: , "." kern k#, "," kern k# fi;
+ligtable "O": accented_O: "D":
+ "X" kern k#, "W" kern k#, "A" kern k#, ogonked_A kern k#,
+ "V" kern k#, "Y" kern k#;
+ligtable "A":
+ if improve_kerns: "v" kern kk#, "w" kern kk#, fi
+ ogonked_A: "R": "n" kern k#, accented_n kern k#,
+ "l" kern k#, crossed_l kern k#, "r" kern k#, "u" kern k#,
+ "m" kern k#, "t" kern k#, "i" kern k#, "C" kern k#, accented_C kern k#,
+ "O" kern k#, accented_O kern k#, "G" kern k#,
+ "h" kern k#, "b" kern k#, "U" kern k#, "k" kern k#, "v" kern k#,
+ "w" kern k#, "Q" kern k#, "L": crossed_L: "T" kern kk#, "Y" kern kk#,
+ "V" kern kkk#, "W" kern kkk#,
+ "b": "c": accented_c: "e": ogonked_e: "o": accented_o: "p": "r":
+ "e" kern -u#, ogonked_e kern -u#, "a" kern -u#, ogonked_a kern -u#,
+ "o" kern -u#, accented_o kern -u#, "d" kern -u#,
+ "c" kern -u#, accented_c kern -u#, "g" kern -u#, "q" kern -u#;
+ligtable "n": "'" kern kkk#;
+ligtable polish_opening_quotes:
+ "f" kern u#, "g" kern -k#, "j" kern u#,
+ "p" kern -k#, "y" kern -k#, "v" kern k#, "w" kern k#,
+ "A" kern -k#, ogonked_A kern -k#, "C" kern -k#, accented_C kern -k#,
+ "D" kern -k#, "E" kern -k#, ogonked_E kern -k#, "F" kern -k#, "H" kern -k#,
+ "I" kern -k#, "J" kern -k#, "K" kern -k#, "L" kern -k#, crossed_L kern -k#,
+ "M" kern -k#, "N" kern -k#, accented_N kern -k#, "P" kern -k#,
+ "R" kern -k#, "S" kern -k#, accented_S kern -k#, "T" kern kk#,
+ "X" kern -k#, "Y" kern kk#,
+ "Z" kern -k#, dotted_Z kern -k#, accented_Z kern -k#,
+ "V" kern kkk#, "W" kern kk#;
+fi
+
+% There are also ligature/kern programs for |"f"| in the ITALIG file,
+% for |"-"|, |"`"|, and |"'"| in the COMLIG file,
+% and for |"<"|,|">"|,|","| in the PL_CUD file
+
+bye.
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/pl/polmat.mf b/Master/texmf-dist/fonts/source/public/pl/polmat.mf
new file mode 100644
index 00000000000..8d9e3dc350d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/polmat.mf
@@ -0,0 +1,48 @@
+% ---------------------------------------------------------------------------
+% This is POLMAT.MF ({\bif{}polski font matematyczny}, i.e., the Polish
+% extension of Computer Modern Symbol fonts) in text format.
+% The program is a modification of the MATHSY.MF file.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS OF MODIFICATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+font_coding_scheme:="TeX math symbols";
+mode_setup; font_setup;
+
+autorounding:=hair;
+input calu; % upper case calligraphic alphabet
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+input symbol; % the symbols
+xleq=172; xgeq=173; % codes similar to codes of French quotation marks
+input pl_sym; % extra symbols used in Polish math typesetting
+
+if not monospace:
+ skewchar=oct"060"; skew#=.5u#;
+ ligtable "I": "T": "V": skewchar kern skew#;
+ ligtable "K": skewchar kern 2skew#;
+ ligtable "D": "N": "P": "R": "U": "W": "Y": skewchar kern 3skew#;
+ ligtable "E": "F": "G": "H": "O": "Q": skewchar kern 4skew#;
+ ligtable "B": "C": "L": "M": "S": "X": "Z": skewchar kern 5skew#;
+ ligtable "J": skewchar kern 6skew#;
+ ligtable "A": skewchar kern 7skew#;
+fi;
+
+bye.
+%%\end
diff --git a/Master/texmf-dist/fonts/source/public/pl/poltyt.mf b/Master/texmf-dist/fonts/source/public/pl/poltyt.mf
new file mode 100644
index 00000000000..7eb35982e30
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/pl/poltyt.mf
@@ -0,0 +1,63 @@
+% ---------------------------------------------------------------------------
+% This is POLTYT.MF ({\bif{}polski font tytu\l{}owy}, i.e., title font)
+% in text format. The font contains caps and digits only.
+% The program is a modification of the MATHSY.MF file.
+% ---------------------------------------------------------------------------
+% PL VERSION 1.09, April 13th, 2001 -- released for BachoTeX 2001
+% ---------------------------------------------------------------------------
+% AUTHORS OF MODIFICATION: {\bif{}Bogus\l{}aw Jackowski \& Marek Ry\'cko}
+% ---------------------------------------------------------------------------
+% This file belongs to the public domain under conditions similar to
+% those of D. E. Knuth specified for the Computer Modern family of fonts.
+%
+% For details see either the file MEXINFO.POL or MEXINFO.ENG.
+% ---------------------------------------------------------------------------
+
+
+% ---------------------------------------------------------------------------
+font_coding_scheme:="Caps and digits only";
+
+mode_setup; font_setup;
+
+input pl_dod; % Polish additional definitions
+input pl_dl; % Polish majuscules
+
+input romanu; % upper case (majuscules)
+input romand; % numerals
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else:
+ font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+
+% IMPLICIT KERNS:
+
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+% A kern for a latin letter is repeated for the corresponding
+% diacritical one:
+ligtable "P": "T": "Y": "A" kern kk#, ogonked_A kern kk#;
+ligtable "F": "V": "W":
+ "A" kern if serifs: kkk# else: kk# fi,
+ ogonked_A kern if serifs: kkk# else: kk# fi,
+ "K": "X": "O" kern k#, accented_O kern k#,
+ "C" kern k#, accented_C kern k#, "G" kern k#, "Q" kern k#;
+ligtable "O": accented_O: "D":
+ "X" kern k#, "W" kern k#, "A" kern k#, ogonked_A kern k#,
+ "V" kern k#, "Y" kern k#;
+ligtable "A": ogonked_A: if serifs: "R": fi
+ "C" kern k#, accented_C kern k#, "O" kern k#, accented_O kern k#,
+ "G" kern k#, "U" kern k#, "Q" kern k#, "L": crossed_L: "T" kern kk#,
+ "Y" kern kkk#, "V" kern kk#, "W" kern kkk#;
+ligtable "I": "I" kern -k#; % Richard III
+
+fi
+
+bye.
+%%\end
+
diff --git a/Master/texmf-dist/fonts/source/public/punk/punk.mf b/Master/texmf-dist/fonts/source/public/punk/punk.mf
new file mode 100644
index 00000000000..99ea8af6535
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punk.mf
@@ -0,0 +1,56 @@
+% Font inspired by Gerard and Marjan Unger's lectures, Feb 1985
+mode_setup;
+
+randomseed:=seed;
+
+define_pixels(u,dev);
+define_blacker_pixels(px,py,dot);
+define_whole_pixels(s);
+xoffset:=s;
+pickup pencircle xscaled px yscaled py; punk_pen:=savepen;
+pickup pencircle scaled dot; def_pen_path_;
+path dot_pen_path; dot_pen_path:=currentpen_path;
+currenttransform:=identity slanted slant yscaled aspect_ratio;
+
+def beginpunkchar(expr c,n,h,v) = % code $c$; width is $n$ units
+ hdev:=h*dev; vdev:=v*dev;% modify horizontal and vertical amounts of deviation
+ beginchar(c,n*u#,ht#,0); italcorr ht#*slant; pickup punk_pen enddef;
+extra_endchar:=extra_endchar&"w:=w+2s;charwd:=charwd+2s#";
+
+def ^ = transformed currenttransform enddef;
+def makebox(text rule) =
+ for y=0,h:
+ rule((-s,y)^,(w-s,y)^); endfor % horizontals
+ for x=-s,0,w-2s,w-s: rule((x,0)^,(x,h)^); endfor % verticals
+ enddef;
+rulepen:=pensquare;
+
+vardef pp expr z = z+(hdev*normaldeviate,vdev*normaldeviate) enddef;
+
+def pd expr z = addto_currentpicture contour
+ dot_pen_path shifted z.t_ withpen penspeck enddef; % {\bf drawdot}
+
+input punkl % uppercase letters
+input punkae % uppercase \AE, \OE, \O
+input punkg % uppercase greek
+input punkp % punctuation
+input punkd % digits
+input punka % accents
+
+ht#:=.6ht#; dev:=.7dev;
+input punksl % special lowercase
+extra_beginchar:=extra_beginchar&"charcode:=charcode+32;";
+input punkl % lowercase letters
+extra_beginchar:=extra_beginchar&"charcode:=charcode-35;";
+input punkae % lowercase \ae, \oe, \o
+
+font_slant:=slant;
+font_quad:=18u#+2s#;
+font_normal_space:=9u#+2s#;
+font_normal_stretch:=6u#;
+font_normal_shrink:=4u#;
+font_x_height:=ht#;
+font_coding_scheme:="TeX text without f-ligatures";
+
+
+bye
diff --git a/Master/texmf-dist/fonts/source/public/punk/punk10.mf b/Master/texmf-dist/fonts/source/public/punk/punk10.mf
new file mode 100644
index 00000000000..6ff3bcbde6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punk10.mf
@@ -0,0 +1,13 @@
+% 10-point PUNK font
+designsize:=10pt#; font_identifier:="PUNK";
+ht#:=7pt#; % height of characters
+u#:=1/4pt#; % unit width
+s#:=1.2pt#; % extra sidebar
+px#:=.6pt#; % horizontal thickness of pen
+py#:=.5pt#; % vertical thickness of pen
+dot#:=1.3pt#; % diameter of dots
+dev#:=.3pt#; % standard deviation of punk points
+slant:=0; % obliqueness
+seed:=sqrt2; % seed for random number generator
+input punk
+bye
diff --git a/Master/texmf-dist/fonts/source/public/punk/punk12.mf b/Master/texmf-dist/fonts/source/public/punk/punk12.mf
new file mode 100644
index 00000000000..6f0def43497
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punk12.mf
@@ -0,0 +1,13 @@
+% 12-point PUNK font
+designsize:=12pt#; font_identifier:="PUNK";
+ht#:=8.4pt#; % height of characters
+u#:=.3pt#; % unit width
+s#:=1.4pt#; % extra sidebar
+px#:=.75pt#; % horizontal thickness of pen
+py#:=.62pt#; % vertical thickness of pen
+dot#:=1.6pt#; % diameter of dots
+dev#:=.36pt#; % standard deviation of punk points
+slant:=0; % obliqueness
+seed:=sqrt3; % seed for random number generator
+input punk
+bye
diff --git a/Master/texmf-dist/fonts/source/public/punk/punk20.mf b/Master/texmf-dist/fonts/source/public/punk/punk20.mf
new file mode 100644
index 00000000000..d5da8109db1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punk20.mf
@@ -0,0 +1,13 @@
+% 20-point PUNK font
+designsize:=20pt#; font_identifier:="PUNK";
+ht#:=14pt#; % height of characters
+u#:=4/9pt#; % unit width
+s#:=2pt#; % extra sidebar
+px#:=.8pt#; % horizontal thickness of pen
+py#:=.6pt#; % vertical thickness of pen
+dot#:=2.7pt#; % diameter of dots
+dev#:=.5pt#; % standard deviation of punk points
+slant:=0; % obliqueness
+seed:=2.71828; % seed for random number generator
+input punk
+bye
diff --git a/Master/texmf-dist/fonts/source/public/punk/punka.mf b/Master/texmf-dist/fonts/source/public/punk/punka.mf
new file mode 100644
index 00000000000..be1343eedd0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punka.mf
@@ -0,0 +1,60 @@
+% Punk accents
+
+beginpunkchar(oct"022",9,1,1); % \`{}
+z1=pp(2.5u,h); z2=pp(.6w,.8h); pd z1; pd z2; draw z1--z2; % diagonal
+endchar;
+
+beginpunkchar(oct"023",9,1,1); % \'{}
+z1=pp(w-2.5u,h); z2=pp(.4w,.8h); pd z1; pd z2; draw z1--z2; % diagonal
+endchar;
+
+beginpunkchar(oct"136",13,1,1); % \^{}
+z1=pp(2.5u,.8h); z2=pp(.5w,h); z3=(w-2.5u,.8h);
+pd z1; pd z3; draw z1--z2--z3; % diagonals
+endchar;
+
+beginpunkchar(oct"024",13,1,1); % \v{}
+z1=pp(2.5u,.9h); z2=pp(.5w,.7h); z3=pp(w-2.5u,.9h);
+pd z1; pd z3; draw z1--z2--z3; % diagonals
+endchar;
+
+beginpunkchar(oct"025",11,1,1); % \u{}
+z1=pp(2u,h); z2=pp(.5w,.75h); z3=pp(w-2u,h);
+pd z1; pd z3; draw flex(z1,z2,z3); % stroke
+endchar;
+
+beginpunkchar(oct"026",12,1,1); % \={}
+z1=pp(u,.8h); z2=pp(w-u,.8h); pd z1; pd z2; draw z1--z2; % bar
+endchar;
+
+beginpunkchar(oct"137",5,1,1); % \.{}
+pd pp(.5w,.9h); % dot
+endchar;
+
+beginpunkchar(oct"177",13,1,1); % \"{}
+pd pp(1/5w,.9h); pd pp(4/5w,.9h); % dots
+endchar;
+
+beginpunkchar(oct"176",13,1,1); % \~{}
+z1=pp(u,.75h); z2=pp(w-u,.9h); pd z1; pd z2; draw z1{up}..{up}z2; % stroke
+endchar;
+
+beginpunkchar(oct"175",13,1,1); % \H{}
+z1=pp(4u,h); z2=pp(2.5u,.7h); z3=pp(w-2u,h); z4=pp(w-3.5u,.7h);
+pd z1; pd z3; draw z1--z2--z4--z3; % diagonals (linked)
+endchar;
+
+beginpunkchar(oct"027",13,0,0); % Scandinavian loop, for \AA\ and \aa
+z0=(.5w,.66h); % point $z2$ of lowercase A
+z1=(.5w,.9h); draw z0{z0-(1.5u,0)}..z1..{(w-1.5u,0)-z0}z0; % loop
+endchar;
+
+beginpunkchar(oct"030",13,.5,.5); % Cedilla, for \c c
+z1=(.6w,0); z2=pp(.6w,-.1h); z3=pp(2.5u,-.1h);
+pd z3; draw z1--z2--z3; % stroke
+endchar;
+
+beginpunkchar(oct"040",11,.5,.5); % Polish cross, for \L\ and \l
+z1=pp(0,.25h); z2=pp(4u,.4h); pd z1; pd z2; draw z1--z2; % diagonal
+endchar;
+ligtable oct"040": "l" kern -charwd, "L" kern -charwd;
diff --git a/Master/texmf-dist/fonts/source/public/punk/punkae.mf b/Master/texmf-dist/fonts/source/public/punk/punkae.mf
new file mode 100644
index 00000000000..15a70326e83
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punkae.mf
@@ -0,0 +1,23 @@
+% special punk letter combinations
+
+beginpunkchar(oct"035",16,1,2); % \AE
+z1=pp(1.5u,0); z2=pp(.6w,h); z3=pp(w-1.5u,h);
+pd z1; pd z3; draw z1--z2--z3; % left diagonal and upper arm
+z4=pp .3[z1,z2]; z5=pp(.6w,0); z6=pp(w-2u,.3h);
+pd z4; pd z6; draw z4--z6; % crossbar
+z7=pp(w-u,0); pd z2; pd z7; draw z2--z5--z7; % stem and lower arm
+endchar;
+
+beginpunkchar(oct"036",18,1,2); % \OE
+z1=pp(.5w,h); z2=pp(u,.4h); z3=pp(.5w,0);
+pd z1; draw z1..z2..{right}z3; % bowl
+z4=pp(w-1.5u,h); z5=pp(w-2u,.4h); z6=pp(w-u,0);
+pd z4; pd z6; draw z4--z1--z3--z6; % arms and stem
+pd z5; draw z5--.4[z3,z1]; % crossbar
+endchar;
+
+beginpunkchar(oct"037",14,1,1); % \O
+z1=pp(.5w,h); z2=pp(u,.5h); z3=pp(.5w,0); z4=pp(w-u,.5h);
+z5=pp(w-2u,1.1h); z6=pp(2u,-.1h);
+pd z1; pd z6; draw z1..z2..z3..z4..z5--z6; % bowl and diagonal
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/punk/punkbx20.mf b/Master/texmf-dist/fonts/source/public/punk/punkbx20.mf
new file mode 100644
index 00000000000..e045c44e857
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punkbx20.mf
@@ -0,0 +1,13 @@
+% 20-point bold extended PUNK font
+designsize:=20pt#; font_identifier:="PUNKBX";
+ht#:=14pt#; % height of characters
+u#:=.6pt#; % unit width
+s#:=2.2pt#; % extra sidebar
+px#:=2pt#; % horizontal thickness of pen
+py#:=1.6pt#; % vertical thickness of pen
+dot#:=3.5pt#; % diameter of dots
+dev#:=.5pt#; % standard deviation of punk points
+slant:=0; % obliqueness
+seed:=0.57722; % seed for random number generator
+input punk
+bye
diff --git a/Master/texmf-dist/fonts/source/public/punk/punkd.mf b/Master/texmf-dist/fonts/source/public/punk/punkd.mf
new file mode 100644
index 00000000000..0d44c03b3b5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punkd.mf
@@ -0,0 +1,54 @@
+% Punk digits
+
+beginpunkchar("0",9,.5,1);
+z1=pp(.5w,h); z2=pp(u,.55h); z3=pp(.5w,0); z4=pp(w-u,.55h);
+pd z1; draw z1{curl 2}..z2..z3..z4..z1; % bowl
+endchar;
+
+beginpunkchar("1",9,.3,1);
+z1=pp(2u,.7h); z2=pp(.6w,h); z3=pp(.6w,0);
+pd z1; pd z3; draw z1--z2--z3; % serif and stem
+endchar;
+
+beginpunkchar("2",9,1,1);
+z1=pp(2u,.7h); z2=pp(.5w,h); z3=pp(w-u,.6h); z4=pp(u,0); z5=pp(w-2u,0);
+pd z1; pd z5; draw z1..z2..z3..z4--z5; % stroke
+endchar;
+
+beginpunkchar("3",9,.5,.5);
+z1=pp(2u,.7h); z2=pp(.5w,h); z3=pp(w-u,.5[y2,y4]);
+z4=pp(.5w-u,.55h); z5=pp(w-u,.5[y4,y6]); z6=pp(.5w,0); z7=pp(1.5u,.2h);
+pd z1; pd z7; draw z1..z2..z3..z4&z4..z5..z6..z7; % arcs
+endchar;
+
+beginpunkchar("4",9,1,1);
+z1=pp(w-u,.3h); z2=pp(u,.3h); z3=pp(2/3w,h); z4=pp(2/3w,0);
+pd z1; pd z4; draw z1--z2--z3--z4; % stem and diagonals
+endchar;
+
+beginpunkchar("5",9,.5,.5);
+z1=pp(w-2u,h); z2=pp(2u,h); z3=pp(u,.7h); z4=pp(w-u,.5[y3,y5]);
+z5=pp(.5w,0); z6=pp(u,.2h);
+pd z1; pd z6; draw z1--z2--z3..z4..z5..z6; % stroke
+endchar;
+
+beginpunkchar("6",9,1,1);
+z1=pp(2/3w,h); z2=pp(u,.3h); z3=pp(.5w,0); z4=pp(w-u,.3h); z5=pp(.6w,.6h);
+z6=pp z2; pd z1; pd z6; draw z1..z2..z3..z4..z5--z6; % stroke
+endchar;
+
+beginpunkchar("7",9,.5,1);
+z1=pp(2u,h); z2=pp(w-.5u,h); z3=pp(.4w,0);
+pd z1; pd z3; draw z1--z2&z2..z3{down}; % stroke
+endchar;
+
+beginpunkchar("8",9,.5,.5);
+z1=pp(.5w,h); z2=pp(u,.5[y1,y3]); z3=pp(.5w,.6h); z4=pp(w-u,.5[y3,y5]);
+z5=pp(.5w,0); z6=pp(u,.5[y5,y3]); z7=pp(w-u,.5[y1,y3]);
+pd z1; draw z1{curl 8}..z2..z3..z4..z5..z6..z3..z7..z1; % stroke
+endchar;
+
+beginpunkchar("9",9,1,1);
+z1=pp(1/3w,0); z2=pp(w-u,.7h); z3=pp(.5w,h); z4=pp(u,.7h); z5=pp(.5w,.4h);
+pd z1; pd z5; draw z1..z2..z3..z4..z5; % stroke
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/punk/punkg.mf b/Master/texmf-dist/fonts/source/public/punk/punkg.mf
new file mode 100644
index 00000000000..54904a13ed6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punkg.mf
@@ -0,0 +1,63 @@
+% punk greek uppercase
+
+beginpunkchar(oct"000",11,1,2); % $\Gamma$
+z1=pp(2u,0); z2=pp(2u,h); z3=pp(w-1.5u,h);
+pd z1; pd z3; draw z1--z2--z3; % stem and arm
+endchar;
+
+beginpunkchar(oct"001",15,1,2); % $\Delta$
+z1=pp(u,0); z2=pp(.5w,h); z3=pp(w-u,0);
+pd z1; draw z1--z2..tension 5..z3..tension 5..z1; % triangle
+endchar;
+
+beginpunkchar(oct"002",15,.5,2); % $\Theta$
+z1=pp(.5w,h); z2=pp(u,.6h); z3=pp(.5w,0); z4=pp(w-u,.6h);
+pd z1; draw z1..tension.8..z2..z3..z4..tension.8..z1; % bowl
+z5=pp(x2+2u,.4h); z6=pp(x4-2u,.4h); pd z5; pd z6; draw z5--z6; % bar
+endchar;
+
+beginpunkchar(oct"003",12,1,2); % $\Lambda$
+z1=pp(u,0); z2=pp(.5w,h); z3=pp(w-u,0);
+pd z1; pd z3; draw z1--z2--z3; % diagonals
+endchar;
+
+beginpunkchar(oct"004",12,1,1); % $\Xi$
+z1=pp(u,h); z2=pp(w-u,h); pd z1; pd z2; draw z1--z2; % upper arm
+z3=pp(2u,.55h); z4=pp(w-2u,.55h); pd z3; pd z4; draw z3--z4; % bar
+z5=pp(u,0); z6=pp(w-u,0); pd z5; pd z6; draw z5--z6; % lower arm
+endchar;
+
+beginpunkchar(oct"005",13,1,.5); % $\Pi$
+z1=pp(1.5u,0); z2=pp(1.5u,h); z3=pp(w-1.5u,h); z4=pp(w-1.5u,0);
+pd z1; pd z4; draw z1--z2--z3--z4; % stems and bar
+endchar;
+
+beginpunkchar(oct"006",13,1,1); % $\Sigma$
+z1=pp(w-u,h); z2=pp(u,h); z3=pp(.5w-u,.5h); z4=pp(u,0); z5=pp(w-u,0);
+pd z1; pd z5; draw z1--z2{.5[z4,z5]-z2}..z3--z4--z5; % arms and diagonals
+endchar;
+
+beginpunkchar(oct"007",15,1,.5); % $\Upsilon$
+z1=pp(u,.8h); z2=pp(.3w,h); z3=pp(.5w,.5h); z4=pp(.5w,0);
+pd z1; pd z4; draw z1..z2..tension2..z3---z4; % left arc and stem
+z5=pp(w-u,.8h); z6=pp(.7w,h);
+pd z5; draw z5..z6..tension2..{z4-z3}z3; % right arc
+endchar;
+
+beginpunkchar(oct"010",13,1,2); % $\Phi$
+z1=pp(.5w,h); z2=pp(.5w,0); pd z1; pd z2; draw z1--z2; % stem
+z3=pp(.5w,2/3h); z4=pp(u,.5h); z5=pp(.5w,1/4h); z6=pp(w-u,.5h);
+pd z3; draw z3..z4..z5..z6..z3; % bowl
+endchar;
+
+beginpunkchar(oct"011",14,1,1); % $\Psi$
+z1=pp(.5w,h); z2=pp(.5w,0); pd z1; pd z2; draw z1--z2; % stem
+z3=pp(u,.8h); z4=pp(.5w,.2h); z5=pp(w-u,.8h);
+pd z3; pd z5; draw z3{.4[z1,z2]-z3}..z4{right}..{z5-.4[z1,z2]}z5; % stroke
+endchar;
+
+beginpunkchar(oct"012",13,1,2); % $\Omega$
+z1=pp(u,0); z2=pp(1/3w,0); z3=pp(u,2/3h); z4=pp(.5w,h);
+z5=pp(w-u,2/3h); z6=pp(2/3w,0); z7=pp(w-u,0);
+pd z1; pd z7; draw z1--z2{up}..z3..z4..z5..{down}z6--z7; % bowl and arms
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/punk/punkl.mf b/Master/texmf-dist/fonts/source/public/punk/punkl.mf
new file mode 100644
index 00000000000..c546de07110
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punkl.mf
@@ -0,0 +1,150 @@
+% punk letters
+
+beginpunkchar("A",13,1,2);
+z1=pp(1.5u,0); z2=(.5w,1.1h); z3=pp(w-1.5u,0);
+pd z1; pd z3; draw z1--z2--z3; % left and right diagonals
+z4=pp .3[z1,z2]; z5=pp .3[z3,z2]; pd z4; pd z5; draw z4--z5; % crossbar
+endchar;
+
+beginpunkchar("B",12,1,1);
+z1=pp(2u,0); z2=pp(2u,.6h); z3=pp(2u,h); pd z1; pd z3; draw z1--z3; % stem
+z1.5=pp(w-u,.5y2); z2.5=pp(w-u,.5[y2,y3]); draw z2--z2.5--z3; % upper lobe
+draw flex(z2,z1.5,z1); % lower lobe
+endchar;
+
+beginpunkchar("C",13,1,2);
+z1=pp(w-2u,.8h); z2=pp(.6w,h); z3=pp(u,.5h); z4=(.6w,0); z5=(w-2u,.2h);
+pd z1; pd z5; draw z1..z2..z3..z4..z5; % arc
+endchar;
+
+beginpunkchar("D",14,1,2);
+z1=pp(2u,0); z2=pp(2u,h); z3=pp(w-u,.6h);
+pd z1; pd z2; draw flex(z1,z3,z2); % lobe
+draw z1--z2; % stem
+endchar;
+
+beginpunkchar("E",12,.5,1);
+z1=pp(2u,0); z2=pp(2u,h); z3=pp(w-2.5u,h); z4=pp(w-2u,0);
+pd z3; pd z4; draw z4--z1--z2--z3; % stem and arms
+z5=pp(2u,.6h); z6=pp(w-3u,.6h); pd z5; pd z6; draw z5--z6; % crossbar
+endchar;
+
+beginpunkchar("F",12,.5,2);
+z1=pp(2u,0); z2=pp(2u,h); z3=pp(w-2u,h);
+pd z1; pd z3; draw z1--z2--z3; % stem and arm
+z5=pp(2u,.6h); z6=pp(w-3u,.6h); z4=pp .5[z5,z6]-(0,.1h);
+pd z5; pd z6; draw flex (z5,z4,z6); % crossbar
+endchar;
+
+beginpunkchar("G",13,.5,.5);
+z1=pp(w-2u,.8h); z2=pp(.6w,h); z3=pp(u,.5h); z4=pp(.6w,0); z5=(w-2u,0);
+pd z1; draw z1..z2..z3..z4---z5; % arc
+z6=pp(.5[u,x5],.4h); pd z6; pd z5; draw z6--(pp(x5,y6))--z5; % spur
+endchar;
+
+beginpunkchar("H",14,1,.5);
+z1=pp(2u,0); z2=pp(2u,h); z3=pp(w-2u,0); z4=pp(w-2u,h);
+z5=pp(2u,.6h); z6=pp(w-2u,.6h);
+pd z1; pd z2; pd z3; pd z4; draw z1--z2; draw flex(z3,z6,z4); % stems
+pd z5; draw z5--z6; % crossbar
+endchar;
+
+beginpunkchar("I",5,1,2);
+z1=pp(.5w,0); z2=(.5w,1/3h); z3=(.5w,2/3h); z4=(.5w,h);
+pd z1; pd z4; draw flex(z1,z2,z3,z4); % stem
+endchar;
+
+beginpunkchar("J",9,1,2);
+z1=pp(w-2u,h); z2=pp(w-2u,-.1h); z3=pp(u,0);
+pd z1; pd z3; draw z1--z2--z3; % arc
+endchar;
+
+beginpunkchar("K",14,1,2);
+z1=pp(2u,0); z2=pp(2u,h); z3=pp(2u,1/3h); z4=pp(w-1.5u,h);
+pd z1; pd z2; draw z1--z2; % stem
+pd z3; pd z4; draw z3--z4; % upper diagonal
+z6=pp(w-u,0); z5=1/3[z3,z4];
+pd z6; draw flex(z5,.8[z1,2/3[z5,z6] ],z6);% lower diagonal
+endchar;
+
+beginpunkchar("L",11,1,2);
+z1=pp(2u,h); z2=pp(2u,0); z3=pp(w-1.5u,0);
+pd z1; pd z3; draw z1--z2--z3; % stem and arm
+endchar;
+
+beginpunkchar("M",17,.5,2);
+z1=pp(2u,0); z2=pp(2u,h); z3=pp(.5w,0); z4=pp(w-2u,h); z5=pp(w-2u,0);
+pd z1; pd z5; draw z1--z2--z3--z4--z5; % stems and diagonals
+endchar;
+
+beginpunkchar("N",13,.75,2);
+z1=pp(2u,0); z2=pp(2u,h); z3=pp(w-2u,0); z4=pp(w-2u,h);
+pd z1; pd z4; draw z1--z2--z3--z4; % stems and diagonals
+endchar;
+
+beginpunkchar("O",12,.5,2);
+z1=pp(.5w,h); z2=pp(u,.55h); z3=pp(.5w,0); z4=pp(w-u,.55h);
+pd z1; draw z1{left}..z2..z3..z4..z1; % bowl
+endchar;
+
+beginpunkchar("P",13,1,2);
+z1=pp(2u,0); z2=pp(2u,1.1h); z3=pp(2u,.5h); z4=pp(w,.6[y3,y2]);
+pd z1; pd z3; draw z1--z2--z4--z3; % stem and bowl
+endchar;
+
+beginpunkchar("Q",14,.5,2);
+z1=pp(.5w,h); z2=pp(u,.55h); z3=pp(.5w,0); z4=pp(w-u,.55h);
+pd z1; draw z1{curl 2}..z2..z3..z4..z1; % bowl
+z5=pp(.4w,.2h); z6=pp(w-u,-.1h); z7=pp(.5[x5,x6],-.2h);
+pd z5; pd z6; draw z5--z7--z6; % tail
+endchar;
+
+beginpunkchar("R",16,1,2);
+z1=pp(2u,0); z2=pp(2u,h); z3=pp(w-u,.6[y2,y4]); z4=pp(2u,.5h); z5=pp(w-1.5u,0);
+pd z1; pd z2; pd z5; draw z1--flex(z2,z3,z4)--z5; % stem, bowl, and diagonal
+endchar;
+
+beginpunkchar("S",11,.3,1);
+z1=pp(w-2u,.9h); z2=pp(.5w,h); z3=pp(u,.7h); z4=.6[z6,z2];
+z5=pp(w-u,.35h); z6=pp(.5w,u); z7=pp(u,.2h);
+pd z1; pd z7; draw z1--z2...z3..z4..z5...z6--z7; % stroke
+endchar;
+
+beginpunkchar("T",13,.75,2);
+z1=pp(u,h); z2=pp(w-u,h); z3=pp(.5w,0);
+pd z1; pd z2; pd z3; draw z1--z2; % arms
+draw .5[z1,z2]--z3; % stem
+endchar;
+
+beginpunkchar("U",13,.3,2);
+z1=pp(2u,h); z2=pp(2u,.2h); z3=pp(.5w,0); z4=pp(w-2u,.2h); z5=pp(w-2u,h);
+pd z1; pd z5; draw z1---z2...z3{z4-z2}...z4---z5; % stroke
+endchar;
+
+beginpunkchar("V",13,1,2);
+z1=pp(1.5u,h); z2=pp(.5w,0); z3=pp(w-1.5u,h);
+pd z1; pd z3; draw z1--z2--z3; % diagonals
+endchar;
+
+beginpunkchar("W",18,1,2);
+z1=pp(1.5u,h); z2=pp(.5[x1,x3],0); z3=pp(.5w,.8h); z4=pp(.5[x3,x5],0);
+z5=pp(w-1.5u,h);
+pd z1; pd z5; draw z1--z2--z3--z4--z5; % diagonals
+endchar;
+
+beginpunkchar("X",13,1,1);
+z1=pp(1.5u,h); z2=pp(w-1.5u,0); z3=pp(1.5u,0); z4=pp(w-2.5u,h);
+pd z1; pd z2; draw z1--z2; % main diagonal
+pd z3; pd z4; draw z3--z4; % cross diagonal
+endchar;
+
+beginpunkchar("Y",13,1,2);
+z1=pp(1.5u,h); z2=pp(w-1.5u,h); z3=pp(.5w,.5h); z4=pp(.5w,0);
+pd z1; pd z2; pd z4; draw z1--z3--z4; % stem and left diagonal
+draw z2--z3; % right diagonal
+endchar;
+
+beginpunkchar("Z",11,1,2);
+z1=pp(1.5u,h); z2=pp(w-2.5u,h); z3=pp(1.5u,0); z4=pp(w-1.5u,0);
+pd z1; pd z4; draw z1--z2--z3--z4; % diagonals
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/punk/punkp.mf b/Master/texmf-dist/fonts/source/public/punk/punkp.mf
new file mode 100644
index 00000000000..2ed9d6be15a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punkp.mf
@@ -0,0 +1,177 @@
+% Punk punctuation
+
+beginpunkchar(".",5,1,2);
+pd pp(.5w,0); % dot
+endchar;
+
+beginpunkchar(",",5,.5,.5);
+z1=pp(.5w,0); z2=pp(w-u,-.1h); z3=pp(.5w,-.3h);
+pd z1; pd z3; draw z1--z2--z3; % stroke
+endchar;
+
+beginpunkchar(":",5,1,.5);
+pd pp(.5w,0); pd pp(.5w,.4h); % dots
+endchar;
+
+beginpunkchar(";",5,.5,.5);
+z1=pp(.5w,0); z2=pp(w-u,-.1h); z3=pp(.5w,-.3h);
+pd z1; pd z3; draw z1--z2--z3; % stroke
+pd pp(.5w,.4h); % dot
+endchar;
+
+beginpunkchar("!",5,.5,.5);
+pd pp(.5w,0); % dot
+z1=pp(.5w,1.05h); z2=pp(.5w,.3h); pd z1; pd z2; draw z1--z2; % stem
+endchar;
+ligtable "!": "`" =: oct"016";
+
+beginpunkchar(oct"016",5,.5,.5); % spanish inverted !
+pd pp(.5w,.9h); % dot
+z1=pp(.5w,-.1h); z2=pp(.5w,.6h); pd z1; pd z2; draw z1--z2; % stem
+endchar;
+
+beginpunkchar("?",9,1,.5);
+z1=pp(1.5u,.8h); z2=pp(.5w,h); z3=pp(w-u,.8h); z4=pp(.5w,.3h);
+pd z1; pd z4; draw z1..z2..z3..{down}z4; % arc and stem
+pd pp(.5w,0); % dot
+endchar;
+ligtable "?": "`" =: oct"017";
+
+beginpunkchar(oct"017",9,1,.5); % spanish inverted ?
+z1=pp(1.5u,.1h); z2=pp(.5w,-.1h); z3=pp(w-u,.1h); z4=pp(.5w,.6h);
+pd z1; pd z4; draw z1..z2..z3..{up}z4; % arc and stem
+pd pp(.5w,.9h); % dot
+endchar;
+
+beginpunkchar("&",14,.5,.5);
+z1=pp(w-2u,h); z2=pp(u,h); z3=pp(3u,0); z5=pp(w-u,.6h); z6=pp(w-2u,0);
+pd z1; pd z5; draw z1--z2--z3--z5; % arms and stem
+draw z1--.5[z2,z3]; pd z6; draw z6--.6[z3,z5]; % diagonals
+endchar;
+
+beginpunkchar("$",12,.5,.5);
+z1=pp(w-1.5u,.7h); z2=pp(.5w,h); z3=pp(u,.7h); z4=.5[z3,z5];
+z5=pp(w-u,.3h); z6=pp(.5w,0); z7=pp(u,.3h);
+pd z1; pd z7; draw z1..z2..z3..z4..z5..z6..z7; % stroke
+z8=z2+(0,.1h); pd z8; draw z8--z6; % stem
+endchar;
+
+beginpunkchar("%",18,.5,.5);
+z1=pp(3.5u,1.1h); z2=pp(u,.8h); z3=pp(3.5u,.5h); z4=pp(6u,.8h);
+z5=pp(w-3.5u,.5h); z6=pp(w-6u,.2h); z7=pp(w-3.5u,-.1h); z8=pp(w-u,.2h);
+pd z1; draw z1..z2..z3..z4..z1; % upper bowl
+pd z5; draw z5..z6..z7..z8..z5; % lower bowl
+z9=pp(w-3u,1.1h); z0=pp(3u,-.1h); pd z0; draw z9--z0; % diagonal
+draw z1{z5-z1}..z9; % link
+endchar;
+
+beginpunkchar("@",18,1,.5);
+z1=pp(2u,0); z2=pp(1/3w,.7h); z3=pp(w-6u,0);
+z4=pp(w,.3h); z5=pp(1/3w,h); z6=pp(u,.5h); z7=.7[z2,z3];
+pd z1; pd z7; draw z1--z2--z3{right}..z4..z5..z6..z7; % diagonals and stroke
+endchar;
+
+beginpunkchar("-",7,.5,.5);
+z1=pp(u,.4h); z2=pp(w-u,.5h); pd z1; pd z2; draw z1--z2; % bar
+endchar;
+ligtable "-": "-" =: oct"173";
+
+beginpunkchar(oct"173",9,.5,.5); % --
+z1=pp(0,.5h); z2=pp(w,.4h); pd z1; pd z2; draw z1--z2; % bar
+endchar;
+ligtable oct"173": "-" =: oct"174";
+
+beginpunkchar(oct"174",18,.5,.5); % ---
+z1=pp(0,.5h); z2=pp(w,.4h); pd z1; pd z2; draw z1--z2; % bar
+endchar;
+
+beginpunkchar("+",9,.5,1);
+z1=pp(0,.5h); z2=pp(w,.5h); pd z1; pd z2; draw z1--z2; % bar
+z3=pp(.5w,.1h); z4=pp(.5w,.9h); pd z3; pd z4; draw z3--z4; % stem
+endchar;
+
+beginpunkchar("*",13,.5,1);
+z0=pp(.5w,1.1h); z1=pp(u,.9h); z2=pp(2u,.3h); z3=pp(w-u,.3h); z4=pp(w-u,.9h);
+pd z0; draw z0--z2..1/3[.5[z2,z4],z0]..z4--z1--z3--z0; % star
+endchar;
+
+beginpunkchar("'",5,.3,.5);
+z1=pp(1.5u,h); z2=pp(w-u,.85h); z3=pp(u,2/3h);
+pd z1; pd z3; draw z1--z2--z3; % stroke
+endchar;
+ligtable "'": "'" =: oct"042";
+
+beginpunkchar(oct"042",9,.3,.5); % ''
+z1=pp(.5w-.5u,h); z2=pp(u,.6h); z3=pp(w-u,.95h);
+pd z1; pd z3; draw z1--z2--z3; % stroke
+endchar;
+
+beginpunkchar("`",5,.3,.5);
+z1=pp(w-1.5u,h); z2=pp(u,.85h); z3=pp(w-u,2/3h);
+pd z1; pd z3; draw z1--z2--z3; % stroke
+endchar;
+ligtable "`": "`" =: oct"134";
+
+beginpunkchar(oct"134",9,.3,.5); % ``
+z1=pp(.5w+.5u,h); z2=pp(w-u,.6h); z3=pp(u,.95h);
+pd z1; pd z3; draw z1--z2--z3; % stroke
+endchar;
+
+beginpunkchar(oct"015",9,.3,.5); % {\tt\char'15}
+z1=pp(.5w,h); z2=pp(.5w,.6h); pd z1; pd z2; draw z1--z2; % stem
+endchar;
+
+beginpunkchar("(",7,.5,.5);
+z1=pp(w-u,h); z2=pp(u,.5h); z3=pp(w-u,0);
+pd z1; pd z3; draw z1..z2..z3; % stroke
+endchar;
+
+beginpunkchar(")",7,.5,.5);
+z1=pp(u,h); z2=pp(w-u,.5h); z3=pp(u,0); pd z1; pd z3; draw z1..z2..z3; % stroke
+endchar;
+
+beginpunkchar("[",8,.5,.5);
+z1=pp(w-u,h); z2=pp(.5w,h); z3=pp(.5w,0); z4=pp(w-u,0);
+pd z1; pd z4; draw z1--z2--z3--z4; % bars and stem
+endchar;
+
+beginpunkchar("]",8,.5,.5);
+z1=pp(u,h); z2=pp(.5w,h); z3=pp(.5w,0); z4=pp(u,0);
+pd z1; pd z4; draw z1--z2--z3--z4; % bars and stem
+endchar;
+
+beginpunkchar("<",9,.5,.5);
+z1=pp(w-u,.9h); z2=pp(u,.5h); z3=pp(w-u,.1h);
+pd z1; pd z3; draw z1--z2--z3; % diagonals
+endchar;
+
+beginpunkchar(">",9,.5,.5);
+z1=pp(u,.9h); z2=pp(w-u,.5h); z3=pp(u,.1h);
+pd z1; pd z3; draw z1--z2--z3; % diagonals
+endchar;
+
+beginpunkchar("=",9,.5,.5);
+z5=pp(u,2/3h); z6=pp(w-u,2/3h); pd z5; pd z6; draw z5--z6; % upper bar
+z7=pp(u,1/3h); z8=pp(w-u,1/3h); pd z7; pd z8; draw z7--z8; % lower bar
+endchar;
+
+beginpunkchar("#",15,.5,.5);
+z1=pp(.5w,h); z2=pp(3u,0); z3=pp(w-3u,h); z4=pp(.5w,0);
+pd z2; pd z3; draw z3--z1--z2; draw z3--z4--z2; % diagonals (linked)
+z5=pp(u,2/3h); z6=pp(w-u,2/3h); pd z5; pd z6; draw z5--z6; % upper bar
+z7=pp(u,1/3h); z8=pp(w-u,1/3h); pd z7; pd z8; draw z7--z8; % lower bar
+endchar;
+
+beginpunkchar("/",9,1,1);
+z1=pp(1.5u,-.05h); z2=pp(w-1.5u,1.05h); pd z1; pd z2; draw z1--z2; % diagonal
+endchar;
+
+beginpunkchar(oct"013",12,.5,.5); % {\tt\char'13}
+z1=pp(u,.7h); z2=pp(.5w,h); z3=pp(w-u,.7h); z4=pp(.5w,0);
+pd z1; pd z3; pd z4; draw z1--z2--z4; draw z3--z2; % stem and diagonals
+endchar;
+
+beginpunkchar(oct"014",12,.5,.5); % {\tt\char'14}
+z1=pp(u,.3h); z2=pp(.5w,0); z3=pp(w-u,.3h); z4=pp(.5w,h);
+pd z1; pd z3; pd z4; draw z1--z2--z4; draw z3--z2; % stem and diagonals
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/punk/punksl.mf b/Master/texmf-dist/fonts/source/public/punk/punksl.mf
new file mode 100644
index 00000000000..ab1ec92df6c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punksl.mf
@@ -0,0 +1,20 @@
+% punk special lowercase
+
+beginpunkchar(oct"020",5,1,2); % dotless I
+z1=pp(.5w,0); z2=(.5w,1/3h); z3=(.5w,2/3h); z4=(.5w,h);
+pd z1; pd z4; draw flex(z1,z2,z3,z4); % stem
+endchar;
+
+beginpunkchar(oct"021",9,1,2); % dotless J
+z1=pp(w-2u,h); z2=pp(w-2u,-.1h); z3=pp(u,0);
+pd z1; pd z3; draw z1--z2--z3; % arc
+endchar;
+
+beginpunkchar(oct"031",18,.3,1); % German SS
+z1=pp(.5w-u,.9h); z2=pp(1/3w,h); z3=pp(u,.7h); z4=.6[z6,z2];
+z5=pp(.5w,.35h); z6=pp(1/3w,u); z7=pp(u,.2h);
+pd z1; pd z7; draw z1--z2...z3..z4..z5...z6--z7; % left stroke
+for i=1 upto 7: z[i+10]=pp(z[i] shifted (.5w-u,0)); endfor
+pd z11; pd z17; draw z11--z12...z13..z14..z15...z16--z17; % right stroke
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/punk/punksl20.mf b/Master/texmf-dist/fonts/source/public/punk/punksl20.mf
new file mode 100644
index 00000000000..a8071c5fc0b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/punk/punksl20.mf
@@ -0,0 +1,13 @@
+% 20-point slanted PUNK font
+designsize:=20pt#; font_identifier:="PUNKSL";
+ht#:=14pt#; % height of characters
+u#:=4/9pt#; % unit width
+s#:=2pt#; % extra sidebar
+px#:=.8pt#; % horizontal thickness of pen
+py#:=.6pt#; % vertical thickness of pen
+dot#:=2.7pt#; % diameter of dots
+dev#:=.5pt#; % standard deviation of punk points
+slant:=1/3; % obliqueness
+seed:=3.14159; % seed for random number generator
+input punk
+bye
diff --git a/Master/texmf-dist/fonts/source/public/rsfs/rsfs10.mf b/Master/texmf-dist/fonts/source/public/rsfs/rsfs10.mf
new file mode 100644
index 00000000000..c6a9ee3802e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/rsfs/rsfs10.mf
@@ -0,0 +1,80 @@
+% Formal Script Math Symbols 10 point
+%
+% Ralph A. Smith, September 1991
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RSFS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=252/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=84/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=44/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=100/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=7/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=20/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.707; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% input scrmac; % only needed for lower case - not yet provided
+generate script % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/rsfs/rsfs5.mf b/Master/texmf-dist/fonts/source/public/rsfs/rsfs5.mf
new file mode 100644
index 00000000000..49f224b6daa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/rsfs/rsfs5.mf
@@ -0,0 +1,76 @@
+% Formal Script Math Symbols 5 point
+% Ralph A. Smith, September 1991
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RSFS"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=10/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=100/36pt#; % height of lowercase ascenders
+cap_height#:=126/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=42/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=50/36pt#; % depth of lowercase descenders
+
+crisp#:=6/36pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=15.5/36pt#; % lowercase stem breadth
+curve#:=17.5/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=18.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=12/36pt#; % uppercase curve breadth
+cap_ess#:=13.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+beak#:=35/36pt#; % vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.707; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=1; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate script % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/rsfs/rsfs7.mf b/Master/texmf-dist/fonts/source/public/rsfs/rsfs7.mf
new file mode 100644
index 00000000000..29dd14ca7a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/rsfs/rsfs7.mf
@@ -0,0 +1,76 @@
+% Formal Script Math Symbols 7 point
+% Ralph A. Smith, September 1991
+if unknown cmbase: input cmbase fi
+
+font_identifier:="RSFS"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=140/36pt#; % height of lowercase ascenders
+cap_height#:=176.4/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=58.8/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=7/36pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=19.5/36pt#; % lowercase stem breadth
+curve#:=22.5/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=23.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=15/36pt#; % uppercase curve breadth
+cap_ess#:=22.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=21/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.707; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.6; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+generate script % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/rsfs/script.mf b/Master/texmf-dist/fonts/source/public/rsfs/script.mf
new file mode 100644
index 00000000000..dd78d68bf41
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/rsfs/script.mf
@@ -0,0 +1,40 @@
+% Formal Script Math Symbol Family
+% Author: Ralph A. Smith, September 1991
+%
+
+font_coding_scheme := "RAS Script";
+mode_setup; font_setup;
+% input scriptl; % not yet provided
+input scriptu;
+font_slant slant; font_x_height x_height#;
+font_quad 18u#+4letter_fit#;
+skewchar=oct"177"; skew#=.5u#;
+ligtable "A": skewchar kern 14skew#;
+ligtable "B": skewchar kern 7skew#;
+ligtable "C": skewchar kern 10skew#;
+ligtable "D": skewchar kern 4skew#;
+ligtable "E": skewchar kern 5skew#;
+ligtable "F": skewchar kern 8skew#;
+ligtable "G": skewchar kern 9skew#;
+ligtable "H": skewchar kern 12skew#;
+ligtable "I": skewchar kern 12skew#;
+ligtable "J": skewchar kern 15skew#;
+ligtable "K": skewchar kern 13skew#;
+ligtable "L": skewchar kern 11skew#;
+ligtable "M": skewchar kern 16skew#;
+ligtable "N": skewchar kern 14skew#;
+ligtable "O": skewchar kern 6skew#;
+ligtable "P": skewchar kern 8skew#;
+ligtable "Q": skewchar kern 10skew#;
+ligtable "R": skewchar kern 7skew#;
+ligtable "S": skewchar kern 12skew#;
+ligtable "T": skewchar kern 8skew#;
+ligtable "U": skewchar kern 9skew#;
+ligtable "V": skewchar kern 8skew#;
+ligtable "W": skewchar kern 9skew#;
+ligtable "X": skewchar kern 10skew#;
+ligtable "Y": skewchar kern 7skew#;
+ligtable "Z": skewchar kern 11skew#;
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/rsfs/scriptu.mf b/Master/texmf-dist/fonts/source/public/rsfs/scriptu.mf
new file mode 100644
index 00000000000..55c46b6d916
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/rsfs/scriptu.mf
@@ -0,0 +1,650 @@
+% Formal Script upper case letters:
+% These letters were coded by R. A. Smith in the Fall of 1991,
+% based upon the Formal Script designed by R. Hunter Middleton.
+% Computer Modern parameters and macros are used.
+
+% Character codes \0101 through \0132 and \0177 are generated.
+
+% Initial version (1.0) September 1991.
+def bulb(suffix $,$$,$$$) =
+ z$$$r=z$$r; numeric dist; dist=y$r-y$$r;
+ path_.l:=z$l{x$$r-x$r,0}...{0,y$$r-y$r}z$$l;
+ filldraw path_.l--z$$r{0,y$r-y$$r}...{x$r-x$$r,0}z$r--cycle; % link
+ path_.r:=z$$$l{-slant*dist,dist}..z$$$r{slant*dist,-dist}; % near-circle
+ filldraw subpath(0,xpart(path_.r intersectiontimes path_.l)) of path_.r
+ --z$$r{0,y$$r-y$r}..cycle; % bulb
+ enddef;
+
+cmchar "Script letter A";
+beginchar("A",14u#,cap_height#,0);
+italcorr h#*slant-3u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,110); pos3(vair,90); pos5(cap_curve,-20);
+x1l=hround w-u; y1=.2h; x3=w-3u; y3=.08h; x5l=hround u; y5=.55h;
+pos7(vair,-90); pos9(cap_hair,-180);
+x7=2.5u; top y7l=.65h; x11l=10u; bot y9=0;
+pos11(cap_stem,0); pos13(cap_hair,0);
+x11r=x9l; bot y11=0; x13l=x11l; top y13=h+apex_o;
+filldraw stroke z1e..{left}z3e...z5e{up}
+...z7e{right}...{.5 slant,-1}z9e; % crossbar
+filldraw stroke z11e--z13e; % right ascender
+pos15(.5[vair,cap_curve],-90); pos17(cap_hair,0); pos19(cap_hair,0);
+rt x15l=rt x13r; y15l=y13r; x17=8.5u; y17=.8h; x19=6u; y19=.25h;
+pos21(vair,-90); pos23(vair,-180); pos25(flare,-180);
+bot y21r=-oo; x21=3.5u; y25=.15h; lft x25r=hround u;
+filldraw stroke z15e..z17e...{down}z19e...{left}z21e; % left ascender
+bulb(21,23,25);
+penlabels(1,3,5,7,9,11,13,15,17,19,21,23,25);
+math_fit(-.15h#*slant,.2h#*slant);
+endchar;
+
+
+cmchar "Script letter B";
+beginchar("B",17u#,cap_height#,0);
+italcorr h#*slant-5.5u#;
+adjust_fit(0,0); pickup fine.nib;
+ pos1(cap_hair,-45); x1r=11u; top y1l=h;
+pos2(cap_stem,0); pos3(vair,-90); pos4(hair,-180); pos5(flare,-180);
+x2r=10u; y2=.3h; bot y3l=-oo; x3=6.5u; x5r=hround 3u; y5=.17h;
+filldraw stroke z1e{-1,-1}...z2e{down}...{left}z3e; % stem
+bulb(3,4,5);
+pos6(vair,-270); pos8(vair,-180); pos10(vair,-90); pos12(cap_curve,0); %-15
+pos14(vair,90); pos16(.5[cap_curve,cap_stem],180); pos18(vair,270);
+pos20(cap_curve,360); pos22(vair,450); pos24(cap_hair,540);
+pos26(vair,630); pos28(cap_curve,720); pos30(vair,750);
+x6=13u; y6=.3h; x8r=11u; y8=.2h; x10=13.5u; bot y10r=-oo;
+rt x12r=hround w-u; y12=.2h; x14=11u; y14=.52h;
+x16l=10.5u; y16=.48h; x18=11u; y18=.44h; x20r=13.5u; y20=.65h;
+x22=6u; top y22r=h+oo; lft x24r=hround u; y24=.7h;
+x26=4.5u; y26=.4h; x28=6.5u; y28=.55h; x30=5.5u; y30=.8h;
+filldraw stroke pulled_arc.e(6,8)&pulled_arc.e(8,10)&pulled_arc.e(10,12)
+&pulled_arc.e(12,14)&pulled_arc.e(14,16)&pulled_arc.e(16,18)
+&pulled_arc.e(18,20)&pulled_arc.e(20,22)&pulled_arc.e(22,24)
+&pulled_arc.e(24,26)&pulled_arc.e(26,28)..{dir(130)}z30e;
+%z6e{left}...z8e{down}...z10e{right}
+%...z12e..z14e{left}...z16e{down}...z18e{right}
+%...z20e{up}...z22e{left}...z24e{down}...z26e{right}
+%...z28e{up}..z30e;
+penlabels(1,2,3,4,5,6,8,10,12,14,16,18,20,22,24,26,28,30);
+math_fit(-.15h#*slant-2u#,.3h#*slant);
+endchar;
+
+cmchar "Script letter C";
+beginchar("C",16u#,cap_height#,0);
+italcorr h#*slant-2.75u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(vair,210); pos1(cap_hair,180); pos2(vair,90);
+pos3(cap_curve,0); pos4(vair,-90); pos5(cap_stem,-180);
+pos6(vair,-270);
+pos7(cap_hair,-360); pos8(vair,-450); pos9(cap_curve,-540); pos10(vair,-630);
+lft x0r=12u; bot y0r=.1h;
+x1=11u; bot y1=.25h; x2=12.25u; y2=.4h; x3=15u; y3=.15h;
+x4=13u; y4=-oo; lft x5r=hround 7.5u; y5=.5h; x6=11.5u; top y6l=h+oo;
+rt x7r=hround 14u; y7=.8h; x8=7u; bot y8r=.5h; lft x9r=hround u; y9=.8h;
+x10=4u; y10=.95h;
+filldraw stroke z0e..pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4);
+filldraw stroke pulled_arc.e(4,5)&pulled_arc.e(5,6)&pulled_arc.e(6,7);
+filldraw stroke pulled_arc.e(7,8)&pulled_arc.e(8,9)&pulled_arc.e(9,10);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+math_fit(-.8h#*slant,.35h#*slant);
+endchar;
+
+cmchar "Script letter D";
+beginchar("D",15u#,cap_height#,0);
+italcorr 0.8h#*slant-2.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(cap_stem,180); pos3(vair,90);
+x1=hround w-3u; y1=0.8h;
+x2=.5[x1,x3]; y2=.5[y1,y3];
+x3=8u; bot y3l=-o;
+pos4(cap_curve,0); pos5(vair,-90); pos6(vair,-90);
+lft x4l=hround 5u; y4=y3+0.03h; x5=7u; y5=y3+0.06h; x6=w-2.5u; bot y6r=-o;
+pos7(cap_hair,0); pos8(vair,90); pos9(cap_curve,180);
+x7r=hround w-u; y7=0.33h; x8=5u; top y8r=h+oo; x9r=hround u; y9=0.75h;
+pos10(vair,270); pos11(cap_hair,360); pos12(vair,380);
+x10=5u; y10r=0.4h; x11r=7u; y11=0.6h; x12l=6u; y12r=0.8h;
+filldraw stroke z1e{left}...z2e{down}...z3e{left}...z4e{up} % stem
+...z5e{right}...z6e..z7e..z8e{left}...z9e{down} % bowl
+...z10e{right}...z11e{up}..z12e; % flourish
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+math_fit(-4u#,.33h#*slant);
+endchar;
+
+
+cmchar "Script letter E";
+beginchar("E",11u#,cap_height#,0);
+italcorr .8h#*slant-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,-270); pos2(cap_hair,-180); pos3(vair,-90);
+numeric light_stem; hv_curve=.5[cap_curve,cap_stem];
+pos4(cap_hair,0); pos5(.3[vair,cap_curve],90); pos6(hv_curve,180);
+pos7(vair,270); pos8(cap_hair,360); pos9(vair,450); pos10(hv_curve,540);
+pos11(vair,630); pos12(cap_curve,720); pos13(vair,810);
+pos14(vair,930);
+x1=6u; top y1r=.9h; x2r=5u; y2=.8h; x3=7u; y3=.65h; x4=8u; y4=.75h;
+x5=4u; top y5r=h+oo; lft x6r=hround 1.2u; y6=.8h; x7=5.5u; y7=.51h;
+x8=6u; y8=.53h; x9=4.5u; y9=.57h; lft x10r=hround u; y10=.38h;
+x11=7u; bot y11r=-oo; rt x12r=hround w-u; y12=.18h; x13=6u; y13=.38h;
+x14r=5.5u; y14r=.15h;
+filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4)
+&pulled_arc.e(4,5)&pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8)
+&pulled_arc.e(8,9)&pulled_arc.e(9,10)&pulled_arc.e(10,11)&pulled_arc.e(11,12)
+&pulled_arc.e(12,13)..{dir(300)}z14e;
+%filldraw stroke z1e{left}...z2e{down}...z3e{right}...z4e{up}
+%...z5e{left}...z6e{down}...z7e{right}...z8e{up}...z9e{left}
+%...z10e{down}...z11e{right}...z12e{up}...z13e{left}..z14e;
+math_fit(-.3h#*slant,.2h#*slant);
+endchar;
+
+cmchar "Script letter F";
+beginchar("F",14u#,cap_height#,0);
+italcorr h#*slant-2.0u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,-45); pos2(cap_curve,0); pos3(cap_stem,0); pos4(vair,-90);
+pos5(hair,-180); pos6(flare,-180);
+x1r=9.3u; y1=.85h; lft x2l=8u; y2=.65h; rt x3r=10u; y3=.3h;
+x4=6.25u; bot y4l=-o; lft x6r=hround 2u; y6=.17h;
+filldraw stroke z1e..z2e{down}...z3e{down}...{left}z4e; % stem
+bulb(4,5,6);
+pos7(cap_curve,90); rt x7=hround 12u; top y7r=.93h;
+pos9(cap_curve,90); x9=5u; top y9=h+oo;
+pos10(cap_hair,180); lft x10r=hround u; y10=.75h;
+pos11(vair,270); x11=4u; bot y11r=.5h;
+pos12(cap_curve,360); rt x12r=7u; y12=.65h;
+pos13(vair,415); x13=5u; y13=.85h;
+filldraw stroke z7e{left}...pulled_arc.e(9,10)&pulled_arc.e(10,11)
+&pulled_arc.e(11,12)..z13e; % cap
+pos14(cap_hair,0); pos15(vair,-90); pos16(cap_hair,0);
+pos17(vair,90); pos18(.5[cap_hair,cap_curve],180);
+pos19(.2[cap_curve,cap_stem],210);
+lft x14l=hround 5u; y14=.28h; x15=9u; y15=.4h; rt x16r=hround 13u; y16=.5h;
+x17=12u; top y17r=.58h; lft x18r=11u; y18=.45h; rt x19l=12.3u; bot y19r=.3h;
+filldraw stroke pulled_arc.e(14,15)&pulled_arc.e(15,16)&pulled_arc.e(16,17)
+&pulled_arc.e(17,18)..z19e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+math_fit(-.15h#*slant-u#,.5h#*slant);
+endchar;
+
+
+cmchar "Script letter G";
+beginchar("G",15.2u#,cap_height#,0);
+italcorr .85h#*slant-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(vair,-270); pos1(cap_curve,-180); pos2(vair,-90); pos3(cap_curve,0);
+pos4(vair,90); pos5(cap_stem,180); pos6(vair,270); pos7(vair,315);
+x0=3.5u; y0=.95h; lft x1r=hround u; y1=.75h; x2=6.5u; bot y2r=vround .4h;
+rt x3r=hround 12u; y3=.85h; x4=9.5u; top y4r=h+o; lft x5r=hround 6.7u;
+y5=.6h; x6=10.5u; y6=.3h; x7=13u; y7=.6h;
+filldraw stroke pulled_arc.e(0,1)&pulled_arc.e(1,2)&pulled_arc.e(2,3)
+&pulled_arc.e(3,4)&pulled_arc.e(4,5)&pulled_arc.e(5,6)..{dir(45)}z7e;
+pos8(cap_hair,-45); pos9(.2[cap_curve,cap_stem],0);
+pos10(cap_stem,0); pos11(vair,-90);
+pos12(hair,-180); pos13(flare,-180);
+z8=z7; lft x9l=hround 12u; y9=.4h; rt x10r=hround 14.2u; y10=.12h;
+x11=11.25u; bot y11l=-o; x13r=hround 7u; y13=.17h;
+filldraw stroke z8e{dir(225)}..z9e{down}...z10e{down}...{left}z11e;
+bulb(11,12,13);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13);
+math_fit(-.75h#*slant,.5h#*slant-2u#);
+endchar;
+
+cmchar "Script letter H";
+beginchar("H",17u#,cap_height#,0);
+italcorr 0.8h#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,180); pos2(vair,90);
+pos3(cap_stem,0); pos4(vair,-90);
+pos5(cap_hair,-180); pos6(vair,-270);
+pos7(cap_hair,-180);
+x1l=hround w-u; y1=0.2h; x2=w-2.5u; bot y2l=-oo; x3=w-6u; y3=.4h;
+x4=w-3.5u; top y4l=h+oo; x5l=hround w-u; y5=0.75h; x6=9u; y6=.55h;
+x7r=hround 3u; y7=.35h;
+filldraw stroke z1e{down}...z2e{left}...z3e{up}...z4e{right} % hook, rt stem
+...z5e{down}...z6e{left}...{down}z7e; % crossbar
+pos8(cap_hair,180); pos9(vair,90); pos10(cap_curve,0);
+pos11(vair,90); pos12(cap_hair,180);
+x8r=hround u; y8=.725h; x9=2u; top y9r=.9h; x10r=4u; y10=.75h;
+x11=5u; bot y11l=.65h; x12r=7u; y12=.8h;
+filldraw stroke z8e{up}...z9e{right}...z10e{down}...z11e{right}
+...{up}z12e; % flourish
+ pos13(cap_hair,-45); x13r=8u; top y13l=h+apex_o;
+pos14(cap_stem,0); pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+x14=7u; y14=.3h; bot y15l=-o; x15=4.5u; x17r=hround u; y17=.17h;
+filldraw stroke z13e..z14e{down}...{left}z15e; % left stem
+bulb(15,16,17);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
+math_fit(-.15h#*slant,.2h#*slant);
+endchar;
+
+
+cmchar "Script letter I";
+beginchar("I",11u#,cap_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,135); pos2(cap_curve,180);
+pos3(vair,270); pos4(cap_hair,360); pos5(vair,390);
+pos6(cap_hair,-45); x6r=9u; top y6l=h+apex_o;
+z1r=z6l; x2r=3u; y2=.7h; x3=8u; y3l=.35h; x4l=10u; y4=.5h;
+x5r=9u; y5r=.7h;
+filldraw stroke z1e{dir(210)}..pulled_arc.e(2,3)&pulled_arc.e(3,4)
+..{dir(130)}z5e;
+pos7(cap_stem,0); pos8(vair,-90); pos9(hair,-180); pos10(flare,-180);
+x7l=7u; y7=.3h; bot y8r=-o; x8=4.5u; x10r=hround u; y10=.17h;
+pos11(cap_curve,0); x11l=6.75u; y11=.67h;
+filldraw stroke z6e..z11e{down}...z7e{down}...{left}z8e;
+bulb(8,9,10);
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+math_fit(-.1h#*slant,.5h#*slant);
+endchar;
+
+
+cmchar "Script letter J";
+beginchar("J",12u#,cap_height#,desc_depth#);
+italcorr h#*slant-u#;
+adjust_fit(.7d#*slant,0); pickup fine.nib;
+pos1(vair,135); pos2(cap_curve,180);
+pos3(vair,270); pos4(cap_hair,360); pos5(vair,390);
+pos6(cap_hair,-45); x6r=9u; top y6l=h+apex_o;
+z1r=z6l; x2r=3u; y2=.7h; x3=8u; y3l=.35h; x4l=10u; y4=.5h;
+x5r=9u; y5r=.7h;
+filldraw stroke z1e{dir(210)}..pulled_arc.e(2,3)&pulled_arc.e(3,4)
+..{dir(130)}z5e;
+pos7(cap_stem,0); pos8(vair,-90); pos9(hair,-180); pos10(hair,-180);
+x7l=7u; y7=.25h; bot y8l=-d-o; x8=4.5u; rt x9r=hround 2u; y9=-.5d;
+rt x10l=hround 11u; y10=.2h;
+pos11(cap_curve,0); x11l=6.75u; y11=.67h;
+pos12(vair,-240); z12=.5[z9,z10];
+filldraw stroke z6e..{down}z11e...{down}z7e&pulled_arc.e(7,8)
+&pulled_arc.e(8,9)...z12e{dir(15)}...{up}z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+math_fit(0,.5h#*slant);
+endchar;
+
+cmchar "Script letter K";
+beginchar("K",16u#,cap_height#,0);
+italcorr h#*slant-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,180); pos2(vair,90);
+pos3(.5[cap_curve,cap_stem],0); pos4(vair,90);
+pos5(cap_hair,180); pos6(vair,270);
+pos7(.75[cap_hair,cap_curve],360); pos8(vair,315);
+x1l=hround w-u; y1=0.2h; x2=w-2.5u; bot y2l=-o; x3=w-6u; y3=.35h;
+x4=8.5u; top y4l=.55h; x5l=8u; y5=0.475h; x6=8.5u; y6=.45h;
+x7r=hround w-4u; y7=.825h; x8l=hround w-2u; top y8l=h;
+filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3) % hook
+&pulled_arc.e(3,4)&pulled_arc.e(4,5) % right leg
+&pulled_arc.e(5,6)&pulled_arc.e(6,7)..z8e; % right arm
+pos9(cap_hair,180); pos10(vair,90); pos11(cap_curve,0);
+pos13(vair,90); pos12(cap_hair,180);
+x9r=hround u; y9=.715h; x10=2u; top y10r=.9h; x11r=4u; y11=.75h;
+x13=5u; bot y13l=.65h; x12r=7u; y12=.8h;
+filldraw stroke pulled_arc.e(9,10)&pulled_arc.e(10,11)
+&pulled_arc.e(11,13)&pulled_arc.e(13,12); % flourish
+pos14(cap_hair,-45); x14r=8u; top y14l=h+apex_o;
+pos15(cap_stem,0); pos16(vair,-90); pos17(hair,-180); pos18(flare,-180);
+x15=7u; y15=.3h; bot y16l=-o; x16=4.5u; x18r=hround u; y18=.17h;
+filldraw stroke z14e..z15e{down}...{left}z16e; % stem
+bulb(16,17,18);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,13,12,14,15,16,17,18);
+math_fit(-.15h#*slant,.2h#*slant);
+endchar;
+
+cmchar "Script letter L";
+beginchar("L",15.5u#,cap_height#,0);
+italcorr 0.75 h#*slant-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,180); pos2(0.8[vair,cap_curve],90);
+pos3(vair,90);
+x1l=hround w-u; y1=0.2h; x2=12u; bot y2l=-o; x3=4u; y3=0.12h;
+pos4(cap_curve,180); pos5(vair,270); pos6(cap_stem,360);
+x4r=hround 2u; x5=5u; x6=8.5u;
+y4=0.06h; bot y5r=-o; y6=0.3h;
+pos7(vair,270); pos8(0.5[cap_hair,cap_curve],180); pos9(vair,90);
+x7=10u; top y7l=h+o; x8l=hround w-2.5u; y8=0.75h; x9=7u; y9r=.5h;
+pos10(cap_curve,0); pos11(vair,-90);
+x10l=hround u; y10=0.8h; x11=4u; top y11l=h;
+filldraw stroke z1e{down}...z2e{left}...z3e{left} % foot
+...z4e{down}...z5e{right}...z6e{up}...z7e{right}...z8e{down} % stem
+...z9e{left}...z10e{up}..z11e; % flourish
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+math_fit(-2u#,.25h#*slant);
+endchar;
+
+cmchar "Script letter M";
+beginchar("M",19u#,cap_height#,0);
+italcorr h#*slant-4.25u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,-15); pos2(.6[cap_curve,cap_stem],0);
+pos3(cap_stem,0); pos4(vair,90); pos5(cap_hair,180);
+rt x1r=hround 14.25u; top y1=h+apex_o; lft x3l=hround 13u; y3=.25h;
+x4=16u; y4=-o; top y5=.2h; rt x5l=hround 18u;
+rt x2r=14u; y2=.8h; % should be intersectionpoint!
+filldraw stroke z1e{dir(-105)}---z2e{down}...
+% {down}z3e...{right}z4e..{up}z5e; % right descender
+pulled_arc.e(3,4)&pulled_arc.e(4,5);
+pos6(.2[vair,cap_stem],90); pos7(cap_stem,0); pos8(cap_hair,-20);
+x6=10.25u; bot y6r=-apex_o; x8=9.5u; top y8=h+apex_o;
+pos9(cap_hair,0); pos10(vair,-90); pos11(cap_hair,-180); pos12(flare,-180);
+x9=6u; y9=.45h; x10=3.5u; bot y10r=-oo; lft x12r=hround u; y12=.13h;
+filldraw stroke z8e{dir(-110)}..{dir(-100)}z9e..{left}z10e; % left descender
+bulb(10,11,12);
+x7l=8u; y7=.25h; pos15(.5[cap_curve,cap_stem],0);
+rt x15r=hround 9.5u; y15=.8h; % should be intersectionpoint!
+pos13(cap_hair,165); z13=z1; pos14(cap_hair,180); x14=11.5u; y14=.45h;
+filldraw stroke z13e{dir(-105)}...{dir(-98)}z14e...
+% {left}z6e...{up}z7e
+pulled_arc.e(6,7)...{up}z15e---{dir(70)}z8e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17);
+math_fit(-.15h#*slant,.2h#*slant);
+endchar;
+
+cmchar "Script letter N";
+beginchar("N",15u#,cap_height#,0);
+italcorr h#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos1(.5[cap_hair,cap_curve],-60); pos2(cap_hair,0);
+x1=14u; y1=h; lft x2l=hround 12u; y2=.65h;
+pos4(cap_hair,0); pos5(cap_stem,0); x4l=13u; y4=0; x5=10u; y5=.5h;
+pos6(cap_hair,0); x6l=6.75u; top y6=h;
+filldraw stroke z1e{dir(-150)}..{down}z2e..z4e;
+filldraw stroke z6e{down}..z5e..{dir(-80)}z4e;
+pos7(cap_hair,0); pos8(vair,-90); pos9(hair,-180); pos10(flare,-180);
+x7l=6.75u; y7=.3h; bot y8l=-o; x8=4.5u; x10r=hround u; y10=.17h;
+filldraw stroke z6e...z7e...{left}z8e;
+bulb(8,9,10);
+penlabels(1,2,3,4,5,6,7,8,9,10);
+math_fit(-.15h#*slant,.4h#*slant-u#);
+endchar;
+
+cmchar "Script letter O";
+beginchar("O",11.5u#,cap_height#,0);
+italcorr h#*slant-3u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(vair,-110); pos1(vair,-90); pos2(cap_hair,0);
+pos3(vair,90); pos4(cap_stem,180); pos5(vair,270); pos6(cap_curve,360);
+pos7(vair,450); pos8(cap_hair,540); pos9(cap_hair,570); x0=6u; y0=.7h;
+x1=8.5u; y1=.65h; rt x2r=hround 10u; y2=.75h; x3=5u; top y3r=h+oo;
+lft x4r=hround u; y4=.6h; x5=7.5u; bot y5r=-oo; rt x6r=hround 10.5u; y6=.3h;
+x7=5.5u; y7=.8h; x8=3.7u; y8=.5h; x9=5u; y9=.17h;
+filldraw stroke z0e{dir(-20)}..pulled_arc.e(1,2)
+&pulled_arc.e(2,3)&pulled_arc.e(3,4)
+&pulled_arc.e(4,5)&pulled_arc.e(5,6)&pulled_arc.e(6,7)&pulled_arc.e(7,8)
+..{dir(-60)}z9e;
+penlabels(0,1,2,3,4,5,6,7,8,9);
+math_fit(-.3h#*slant,.5h#*slant);
+endchar;
+
+cmchar "Script letter P";
+beginchar("P",16u#,cap_height#,0);
+italcorr max(.8h#*slant-1.5u#,h#*slant-3u#);
+adjust_fit(0,0); pickup fine.nib;
+ pos1(cap_hair,-45); x1r=12u; top y1l=h;
+pos2(cap_stem,0); pos3(vair,-90); pos4(cap_hair,-180); pos5(flare,-180);
+x2l=10u; y2=.35h; bot y3l=-o; x3=6.5u; x5r=hround 3u; y5=.17h;
+filldraw stroke z1e{-1,-1}...z2e{down}...{left}z3e; % stem
+bulb(3,4,5);
+pos14(vair,-270); pos16(cap_hair,-180); pos18(vair,-90);
+pos20(.5[cap_curve,cap_stem],0); pos22(vair,90); pos24(cap_hair,180);
+pos26(vair,270); pos28(.5[cap_hair,cap_curve],360); pos30(vair,390);
+x6=13u; y6=.3h; x8r=11u; y8=.2h; x10=13.5u; bot y10r=-oo;
+rt x12r=hround w-u; y12=.2h; x14=9u; y14=.62h;
+x16l=8.5u; y16=.55h; x18=12u; y18=.4h; rt x20r=hround 15u; y20=.55h;
+x22=6u; top y22r=h+o; lft x24r=hround u; y24=.7h;
+x26=4.5u; y26=.4h; x28r=7u; y28=.65h; x30=5.5u; top y30r=.9h;
+filldraw stroke pulled_arc.e(14,16)&pulled_arc.e(16,18)
+&pulled_arc.e(18,20)&pulled_arc.e(20,22)&pulled_arc.e(22,24)
+&pulled_arc.e(24,26)&pulled_arc.e(26,28)..{dir(130)}z30e;
+penlabels(1,2,3,4,5,6,8,10,12,14,16,18,20,22,24,26,28,30);
+math_fit(-.25h#*slant,.5h#*slant);
+endchar;
+
+cmchar "Script letter Q";
+beginchar("Q",16u#,cap_height#,0);
+italcorr max(.2h#*slant-.5u#,.8h#*slant-4.75u#);
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,390); pos2(cap_curve,360); pos3(vair,270);
+lft x1l=5u; y1l=.85h; rt x2r=hround 8u; y2=.6h; x3=5u; bot y3r=vround .42h;
+pos4(cap_curve,180); pos5(vair,90); pos6(cap_stem,0);
+lft x4r=hround u; y4=.75h; x5=5u; top y5r=h+o; rt x6r=hround 12u; y6=.5h;
+filldraw stroke pulled_arc.e(6,5)&pulled_arc.e(5,4)&pulled_arc.e(4,3)
+&pulled_arc.e(3,2)..{dir(150)}z1e; % flourish and top
+pos7(vair,-90); pos8(.5[cap_hair,cap_curve],-180); pos9(cap_curve,-270);
+pos10(.6[vair,cap_curve],-270); pos11(cap_hair,-180);
+x7=5.5u; bot y7r=-o; lft x8r=hround 2u; y8=.12h; x9=4u;
+top y9r= vround (y8+cap_curve); x10=12.5u; bot y10l=-o; rt x11l=hround 15u;
+y11=.2h;
+filldraw stroke pulled_arc.e(6,7)&pulled_arc.e(7,8)&pulled_arc.e(8,9)..
+pulled_arc.e(10,11); % bottom
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+math_fit(-.1h#*slant-u#,.2h#*slant);
+endchar;
+
+cmchar "Script letter R";
+beginchar("R",17.5u#,cap_height#,0);
+italcorr h#*slant-6u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,390); pos2(cap_curve,360); pos3(vair,270);
+x1=5.5u; y1=.8h; rt x2r=hround 6.5u; y2=.55h;
+x3=4.5u; bot y3r=vround .38h;
+pos4(cap_hair,180); pos5(vair,90); pos6(cap_curve,0);
+lft x4r=hround u; y4=.7h; x5=6u; top y5r=h+o; rt x6r=hround 13.5u; y6=.65h;
+filldraw stroke pulled_arc.e(6,5)&pulled_arc.e(5,4)&pulled_arc.e(4,3)
+&pulled_arc.e(3,2)..{dir(130)}z1e; % flourish and bowl top
+pos7(vair,-90); pos8(cap_hair,-180); pos9(vair,-270); pos10(cap_stem,-360);
+pos11(cap_stem,-360); pos12(vair,-450); pos13(cap_hair,-540);
+x7=10u; bot y7r=vround .45h; lft x8r=hround 8.5u; y8=.5h;
+x9=10.5u; top y9r=vround .52h; rt x10r=rt x11r=hround 13.2u; y10=.3h;
+y11=.15h; x12=14.8u; bot y12r=-o; rt x13l=hround (w-u); y13=.2h;
+filldraw stroke pulled_arc.e(10,9)&pulled_arc.e(9,8)&pulled_arc.e(8,7)
+&pulled_arc.e(7,6); % inner loop
+filldraw stroke z10e..pulled_arc.e(11,12)&pulled_arc.e(12,13); % leg
+pos14(cap_hair,-45);
+pos16(cap_stem,0); pos17(vair,-90);
+pos18(cap_hair,-180); pos19(flare,-180);
+x14r=11u; top y14l=h; x15r=8.8u; y15=.8h; x16r=10u; y16=.3h;
+x17=6.5u; bot y17=-oo; x19r=hround 3u; y19=.17h;
+filldraw stroke z14e{-1,-1}..{down}z16e...{left}z17e; % stem
+bulb(17,18,19);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+math_fit(-.2h#*slant-2.2u#,.2h#*slant);
+endchar;
+
+cmchar "Script letter S";
+beginchar("S",12.5u#,cap_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,-450); pos2(.5[cap_hair,cap_curve],-360);
+pos3(vair,-270); pos4(cap_hair,-180);
+lft x1=5u; top y1l=.95h; lft x2r=hround u; y2=.75h; x3=7.5u; bot y3l=.45h;
+rt x4l=hround 12u; y4=.75h;
+pos5(vair,-90); x5r=10u; top y5l=h+oo;
+pos6(cap_stem,0); x6l=7.75u; y6=.67h;
+pos7(cap_stem,0); pos8(vair,-90); pos9(hair,-180); pos10(flare,-180);
+x7l=7.5u; y7=.3h; bot y8l=-o; x8=4.5u; x10r=hround u; y10=.17h;
+filldraw stroke pulled_arc.e(1,2)&pulled_arc.e(2,3)&pulled_arc.e(3,4)
+&pulled_arc.e(4,5)..z6e{down}...z7e{down}...{left}z8e;
+bulb(8,9,10);
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+math_fit(-.15h#*slant,.5h#*slant);
+endchar;
+
+cmchar "Script letter T";
+beginchar("T",13u#,cap_height#,0);
+italcorr h#*slant-1.0u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,-45); pos2(cap_curve,0); pos3(cap_stem,0); pos4(vair,-90);
+pos5(hair,-180); pos6(flare,-180);
+x1r=10.3u; y1=.85h; lft x2l=9u; y2=.65h; rt x3r=11u; y3=.3h;
+x4=7.25u; bot y4l=-o; x6r=hround 3u; y6=.17h;
+filldraw stroke z1e..z2e{down}...z3e{down}...{left}z4e; % stem
+bulb(4,5,6);
+pos7(cap_curve,90); rt x7=hround 12u; top y7r=.93h;
+pos9(cap_curve,90); x9=5u; top y9=h+oo;
+pos10(cap_hair,180); lft x10r=hround u; y10=.75h;
+pos11(vair,270); x11=4u; bot y11r=.5h;
+pos12(cap_curve,360); rt x12r=7u; y12=.65h;
+pos13(vair,415); x13=5u; y13=.85h;
+filldraw stroke z7e{left}...pulled_arc.e(9,10)&pulled_arc.e(10,11)
+&pulled_arc.e(11,12)..z13e; % cap
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+math_fit(-.25h#*slant,.3h#*slant);
+endchar;
+
+cmchar "Script letter U";
+beginchar("U",18.25u#,cap_height#,0);
+italcorr .87h#*slant-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,390); pos2(cap_curve,360); pos3(vair,270);
+lft x1l=4.5u; y1l=.85h; rt x2r=hround 6.5u; y2=.6h; x3=4u;
+bot y3r=vround .43h;
+pos4(cap_hair,180); pos5(vair,90); pos6(.5[cap_curve,cap_stem],0);
+lft x4r=hround u; y4=.7h; x5=5u; top y5r=h+o; rt x6r=hround 10u; y6=.6h;
+pos7(cap_stem,0); pos8(vair,90); pos9(cap_hair,180);
+rt x7r=hround 10u; y7=.25h; x8=11u; bot y8l=-o;
+lft x9r=hround 12.7u; y9=.2h; % should be intersectionpoint or tangent
+filldraw stroke pulled_arc.e(6,5)&pulled_arc.e(5,4)&pulled_arc.e(4,3)
+&pulled_arc.e(3,2)..{dir(120)}z1e; % flourish and bowl top
+filldraw stroke z6e---pulled_arc.e(7,8)&pulled_arc.e(8,9);
+pos10(cap_stem,0); pos11(cap_stem,0); pos12(vair,90); pos13(cap_hair,180);
+rt x10r=hround 15u; y10=.87h; lft x11l=lft x9r; y11=.2h;
+x12=15u; bot y12l=-o; rt x13l=hround 17.25u; y13=.18h;
+filldraw stroke z10e..pulled_arc.e(11,12)&pulled_arc.e(12,13);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+math_fit(-.5h#*slant-u#,.18h#*slant);
+endchar;
+
+cmchar "Script letter V";
+beginchar("V",13.8u#,cap_height#,0);
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,180); pos2(vair,90); pos3(cap_curve,0); pos4(vair,90);
+pos5(cap_hair,180); pos5'(cap_hair,180);
+lft x1r=hround u; y1=.68h; top y2r=vround .86h; x2=3u; lft x3l=hround 3.8u;
+y3=.75h; bot y4l=vround .62h; x4=5.5u; x5r=6.7u; y5=.8h;
+x5'l=hround 7u; top y5'=h+apex_o;
+filldraw stroke pulled_arc.e(1,2)...z3e{dir(-105)}
+...pulled_arc.e(4,5); % flourish
+pos6(cap_stem,180); pos7(cap_hair,180); pos8(cap_hair,180);
+pos9(.5[cap_hair,cap_curve],135);
+x6=8.5u; y6=.5h; rt x7l=10u; bot y7=-apex_o; x8=11.5u; y8=.5h;
+x9l=12.8u; top y9r=h;
+filldraw stroke z5'e{dir(-105)}...z6e...{dir(-105)}z7e; % stem
+filldraw stroke z7e{dir(80)}..{up}z8e..{(1,1)}z9e; % right arm
+penlabels(1,2,3,4,5,5',6,7,8,9);
+math_fit(-.68h#*slant,.5h#*slant-u#);
+endchar;
+
+cmchar "Script letter W";
+beginchar("W",17.5u#,cap_height#,0);
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(cap_hair,0); pos2(cap_stem,0); pos3(cap_hair,0);
+x1l=hround 11u; x3l=hround 12.5u; x2=.5[x1,x3]; top y1=h+apex_o;
+bot y3=-apex_o; y2=.5h;
+filldraw stroke z1e{down}...z2e...{down}z3e; % inner left
+pos4(cap_hair,0); x4=.5[x3,x5]; y4=.5h;
+pos5(cap_hair,0); pos6(cap_stem,0); pos7(cap_hair,0);
+x5l=hround 7u; x7l=hround 8.5u; x6=.5[x5,x7]; top y5=h+apex_o;
+bot y7=-apex_o; y6=.5h;
+filldraw stroke z1e{dir(-105)}...z4e...{dir(-105)}z7e; % inner right
+filldraw stroke z5e{dir(-105)}...z6e...{dir(-105)}z7e; % right arm
+pos8(cap_hair,180); pos9(vair,90); pos10(cap_curve,0);
+pos11(vair,90); pos12(cap_hair,180);
+x8r=hround u; y8=.725h; x9=2u; top y9r=.9h; x10r=4u; y10=.75h;
+x11=5u; bot y11l=.65h; x12r=7u; y12=.8h;
+filldraw stroke z8e{up}...z9e{right}...z10e{dir(-105)}...z11e{right}
+...{up}z12e; % flourish
+pos13(cap_hair,0); pos14(.5[cap_hair,cap_curve],-60);
+lft x13l=hround 15u; y13=.5h; rt x14r=hround 16.5u; top y14l=h;
+filldraw stroke z14e{dir(-150)}..{down}z13e..{dir(-105)}z3e;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13);
+math_fit(-.725h#*slant,.5h#*slant-u#);
+endchar;
+
+cmchar "Script letter X";
+beginchar("X",17u#,cap_height#,0);
+italcorr h#*slant-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,405); pos2(cap_curve,360); pos3(vair,270); pos4(cap_hair,180);
+pos5(vair,90); pos6(cap_stem,0); pos7(vair,-90); pos8(cap_hair,-180);
+pos9(flare,-180);
+lft x1l=4u; top y1r=.9h; rt x2r=hround 6u; y2=.65h; x3=4u; bot y3r=vround .5h;
+lft x4r=hround u; y4=.8h; x5=3.75u; top y5r=h+o; rt x6r=hround 10u; y6=.45h;
+x7=6.5u; bot y7r=-o; lft x9r=hround 3u; y9=.17h;
+filldraw stroke z1e..pulled_arc.e(2,3)&pulled_arc.e(3,4)&pulled_arc.e(4,5)
+&pulled_arc.e(5,6)&pulled_arc.e(6,7); % left side
+bulb(7,8,9);
+pos10(vair,90); pos11(vair,90); x10=7u; x11=11.5u; y10r=y11r=vround .5h;
+filldraw stroke z10e..z11e; % crossbar
+pos12(flare,0); pos13(cap_hair,0); pos14(vair,90); pos15(cap_hair,180);
+pos16(vair,270); pos17(cap_hair,360);
+rt x12r=hround 14u; y12=.95h; x14=12u; top y14r=h+o; z15l=z6r;
+x16=14u; bot y16r=-o; rt x17r=hround 16u; y17=.25h;
+bulb(14,13,12);
+filldraw stroke pulled_arc.e(14,15)&pulled_arc.e(15,16)&pulled_arc.e(16,17);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+math_fit(-.25h#*slant,.25h#*slant);
+endchar;
+
+cmchar "Script letter Y";
+beginchar("Y",15u#,cap_height#,0);
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,405); pos2(cap_curve,360); pos3(vair,270); pos4(cap_hair,180);
+pos5(vair,90); pos6(cap_stem,0); pos7(cap_stem,0); pos8(vair,90);
+pos9(cap_hair,180);
+lft x1l=4u; top y1r=.9h; rt x2r=hround 6.5u; y2=.6h;
+x3=4.5u; bot y3r=vround .4h;
+lft x4r=hround u; y4=.7h; x5=5u; top y5r=h+o; rt x6r=hround 10u; y6=.7h;
+rt x7r=hround 10u; y7=.5h; x8=11.5u; bot y8l=vround .27h; x9=13u; y9=.4h;
+filldraw stroke z1e..pulled_arc.e(2,3)&pulled_arc.e(3,4)&pulled_arc.e(4,5)
+&pulled_arc.e(5,6)---pulled_arc.e(7,8)&pulled_arc.e(8,9); % left side
+pos10(vair,-45); pos11(cap_curve,0); pos12(cap_stem,0); pos13(vair,-90);
+pos14(cap_hair,-180); pos15(flare,-180);
+rt x10r=hround 14u; top y10l=h; lft x11l=hround 12u; y11=.8h;
+rt x12r=hround 14u; y12=.35h; x13=10u; bot y13r=-o; lft x15r=hround 6u;
+y15=.17h;
+filldraw stroke z10e{dir(-135)}..z11e{down}...z12e{down}...{left}z13e;
+bulb(13,14,15);
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+math_fit(-.6h#*slant,.35h#*slant);
+endchar;
+
+cmchar "Script letter Z";
+beginchar("Z",16u#,cap_height#,0);
+italcorr h#*slant-2.8u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,405); pos2(cap_curve,360); pos3(vair,270); pos4(cap_hair,180);
+pos5(vair,90); pos6(cap_stem,0); pos7(cap_stem,0); pos8(vair,90);
+pos9(cap_hair,180);
+lft x1l=4u; top y1r=.85h; rt x2r=hround 6u; y2=.65h;
+x3=4u; bot y3r=vround .5h;
+lft x4r=hround u; y4=.75h; x5=4.5u; top y5r=h+o; rt x6r=hround 7.5u; y6=.85h;
+rt x7r=hround 7.5u; y7=.75h; x8=9.5u; bot y8l=vround .7h;
+rt x9l=hround 13.7u; y9=.85h;
+pos10(vair,270); pos11(vair,-90); pos12(cap_stem,0); pos13(vair,-90);
+pos14(cap_hair,-180); pos15(vair,-270); pos16(cap_curve,-270);
+pos17(cap_hair,-180);
+top y10l=h+oo; x10=11.5u; z11=z10; x12=10u; y12=.5h; x13=6.5u; bot y13r=-oo;
+lft x14r=hround 4u; x15=6u; top y15r=vround .16h; x16=12.5u; bot y16l=-o;
+y14=.075h; rt x17l=hround 15u; top y17=vround .2h;
+filldraw stroke z1e..pulled_arc.e(2,3)&pulled_arc.e(3,4)&pulled_arc.e(4,5)
+&pulled_arc.e(5,6)&pulled_arc.e(6,8)&pulled_arc.e(8,9)&pulled_arc.e(9,10);
+filldraw stroke z11e{left}..{down}z12e..{left}z13e...{up}z14e...{right}z15e
+...{right}z16e..{up}z17e; % stem and foot
+pos18(vair,90); pos19(vair,90); x18=8u; x19=13u; y18r=y19r=vround .5h;
+filldraw stroke z18e..z19e; % crossbar;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19);
+math_fit(max(-3u#,-.75h#*slant-u#),.2h#*slant);
+endchar;
+
+cmchar "Tie accent";
+beginchar(oct"177",5u#,asc_height#,0);
+italcorr 4/9[x_height#,asc_height#]*slant+4.5u#+2letter_fit#+.5hair#;
+adjust_fit(if monospace:2u#,2u# else:serif_fit#,serif_fit# fi);
+pickup fine.nib; pos1(hair,180); pos2(vround 1/5[vair,stem],90); pos3(hair,0);
+lft x1r=hround(.5w-.5hair); x2=.5[x1,x3];
+rt x3r=hround(w+4u+2letter_fit+.5hair);
+y1=y3=4/9[x_height,asc_height]; top y2r=vround 8/9[x_height,asc_height];
+filldraw stroke super_arc.e(1,2) & super_arc.e(2,3); % arc
+penlabels(1,2,3); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/skt10.mf b/Master/texmf-dist/fonts/source/public/sanskrit/skt10.mf
new file mode 100644
index 00000000000..db5a5bf9274
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/skt10.mf
@@ -0,0 +1,33 @@
+%
+% SKT10.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+mode_setup;
+design_size := 2.032;
+cap# := design_size*1mm#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+ font_size 10pt#;
+ font_identifier := "SKT10";
+ slant := 0;
+ pen_scale := 7.6;
+ pen_ratio := 1;
+ pen_rot := 135;
+ charwd_scale := 1;
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input sktdefs;
+input sktchars;
+input sktligs;
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/skt8.mf b/Master/texmf-dist/fonts/source/public/sanskrit/skt8.mf
new file mode 100644
index 00000000000..e05c65f28c3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/skt8.mf
@@ -0,0 +1,33 @@
+%
+% SKT8.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+mode_setup;
+design_size := 1.70;
+cap# := design_size*1mm#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+ font_size 8pt#;
+ font_identifier := "SKT8";
+ slant := 0;
+ pen_scale := 7.6;
+ pen_ratio := 1;
+ pen_rot := 135;
+ charwd_scale := 1;
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input sktdefs;
+input sktchars;
+input sktligs;
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/skt9.mf b/Master/texmf-dist/fonts/source/public/sanskrit/skt9.mf
new file mode 100644
index 00000000000..cd721060e15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/skt9.mf
@@ -0,0 +1,33 @@
+%
+% SKT9.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+mode_setup;
+design_size := 1.863;
+cap# := design_size*1mm#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+ font_size 9pt#;
+ font_identifier := "SKT9";
+ slant := 0;
+ pen_scale := 7.6;
+ pen_ratio := 1;
+ pen_rot := 135;
+ charwd_scale := 1;
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input sktdefs;
+input sktchars;
+input sktligs;
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/sktb10.mf b/Master/texmf-dist/fonts/source/public/sanskrit/sktb10.mf
new file mode 100644
index 00000000000..1a7ad9fd468
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/sktb10.mf
@@ -0,0 +1,33 @@
+%
+% SKTB10.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+mode_setup;
+design_size := 2.032;
+cap# := design_size*1mm#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+ font_size 10pt#;
+ font_identifier := "SKTB10";
+ slant := 0;
+ pen_scale := 7;
+ pen_ratio := 1.1;
+ pen_rot := 135;
+ charwd_scale := 1.1;
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input sktdefs;
+input sktchars;
+input sktligs;
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/sktbs10.mf b/Master/texmf-dist/fonts/source/public/sanskrit/sktbs10.mf
new file mode 100644
index 00000000000..076e2c70d99
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/sktbs10.mf
@@ -0,0 +1,33 @@
+%
+% SKTBS10.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+mode_setup;
+design_size := 2.032;
+cap# := design_size*1mm#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+ font_size 10pt#;
+ font_identifier := "SKTB10";
+ slant := 1/5;
+ pen_scale := 7;
+ pen_ratio := 1.1;
+ pen_rot := 135;
+ charwd_scale := 1.1;
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input sktdefs;
+input sktchars;
+input sktligs;
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/sktchars.mf b/Master/texmf-dist/fonts/source/public/sanskrit/sktchars.mf
new file mode 100644
index 00000000000..9c928c5610e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/sktchars.mf
@@ -0,0 +1,1254 @@
+%
+% SKTCHARS.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.1 1997/02/11 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+
+beginchar(hex"00",5/12wd#,18/12ht#,0); "left-half 17/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(5W,18H);
+endchar;
+beginchar(hex"01",0wd#,18/12ht#,0); "3/12 i-hook";
+ bedraw (0W,12H){dir115}..{dir0}(-1W,18H)..{dir305}(3W,12.5H)..(3W,12H);
+endchar;
+beginchar(hex"02",0wd#,18/12ht#,0); "4/12 i-hook";
+ bedraw (0W,12H){dir115}..{dir0}(-1W,18H)..{dir305}(4W,12.5H)..(4W,12H);
+endchar;
+beginchar(hex"03",0wd#,18/12ht#,0); "5/12 i-hook";
+ bedraw (0W,12H){dir115}..{dir0}(-0.5W,18H)..{dir305}(5W,12.5H)..(5W,12H);
+endchar;
+beginchar(hex"04",0wd#,18/12ht#,0); "6/12 i-hook";
+ bedraw (0W,12H){dir115}..{dir0}(-0.5W,18H)..{dir305}(6W,12.5H)..(6W,12H);
+endchar;
+beginchar(hex"05",0wd#,18/12ht#,0); "7/12 i-hook";
+ bedraw (0W,12H){dir110}..{dir0}(-0.5W,18H)..{dir305}(7W,12.5H)..(7W,12H);
+endchar;
+beginchar(hex"06",0wd#,18/12ht#,0); "8/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(0W,18H)..{dir305}(8W,12.5H)..(8W,12H);
+endchar;
+beginchar(hex"07",0wd#,18/12ht#,0); "9/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(0.5W,18H)..{dir305}(9W,12.5H)..(9W,12H);
+endchar;
+beginchar(hex"08",0wd#,18/12ht#,0); "10/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(1W,18H)..{dir305}(10W,12.5H)..(10W,12H);
+endchar;
+beginchar(hex"09",0wd#,18/12ht#,0); "11/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(1.5W,18H)..{dir305}(11W,12.5H)..(11W,12H);
+endchar;
+beginchar(hex"0A",0wd#,18/12ht#,0); "12/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(2W,18H)..{dir305}(12W,12.5H)..(12W,12H);
+endchar;
+beginchar(hex"0B",0wd#,18/12ht#,0); "13/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(2.5W,18H)..{dir305}(13W,12.5H)..(13W,12H);
+endchar;
+beginchar(hex"0C",0wd#,18/12ht#,0); "14/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(3W,18H)..{dir305}(14W,12.5H)..(14W,12H);
+endchar;
+beginchar(hex"0D",0wd#,18/12ht#,0); "15/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(3.5W,18H)..{dir305}(15W,12.5H)..(15W,12H);
+endchar;
+beginchar(hex"0E",0wd#,18/12ht#,0); "16/12 i-hook";
+ bedraw (0W,12H){dir100}..{dir0}(4W,18H)..{dir305}(16W,12.5H)..(16W,12H);
+endchar;
+beginchar(hex"0F",12/12wd#,ht#,0); "right-half 17/12 i-hook";
+ bedraw (0W,18H){dir0}..{dir305}(12W,12.5H)..(12W,12H);
+endchar;
+beginchar(hex"10",0,.5penht#+23/12ht#,.5penht#); "^ = udaatta";
+ bedraw (0W,23H){dir315}..{dir200}(0W,20H)..{dir160}(-1W,20H);
+ bedraw (1W,20H){dir315}..{dir180}(0W,17H)..{dir135}(-3W,19H);
+ bedraw (-3W,23H)--(2.5W,23H);
+endchar;
+beginchar(hex"11",0/12wd#,.5penht#+23/12ht#,0); "mini-1";
+ sedraw (-.5W,21H){dir160}..{dir0}(0W,23H)..{dir270}(1.5W,21.5H)
+ ..{dir225}(1W,20.5H)--(-.5W,19.5H)--(0W,19H){dir315}..{dir225}(0W,17H);
+endchar;
+beginchar(hex"12",0/12wd#,.5penht#+23/12ht#,0); "mini-2";
+ sbdraw (-1.5W,22H)..{dir0}(0W,23H)..{dir270}(1.5W,21H)..{dir180}(-.5W,18H);
+ sedraw (-.5W,18H){dir180}..{dir90}(-1.5W,18.25H)..{dir315}(-.5W,19H)
+ --(2W,16.5H);
+endchar;
+beginchar(hex"13",0/12wd#,.5penht#+23/12ht#,0); "mini-3";
+ sbdraw (-1.5W,23H)--(-.5W,23H){dir0}..{dir270}(1W,21.5H)..{dir180}(0W,20.75H);
+ sbdraw (-1W,20.75H)--(0W,20.75H);
+ sedraw (0W,20.75H){dir0}..{dir270}(1.5W,19.5H)..{dir180}(-.5W,18H)
+ ..{dir315}(-.5W,19H)--(2W,16.5H);
+endchar;
+beginchar(hex"14",0/12wd#,.5penht#+23/12ht#,0); "mini-2ra";
+ sbdraw (-3.5W,22H)..{dir0}(-2W,23H)..{dir270}(-.5W,21H)..{dir180}(-2.5W,18H);
+ sedraw (-2.5W,18H){dir180}..{dir90}(-3.5W,18.25H)..{dir315}(-2.5W,19H)
+ --(0W,16.5H);
+ sbdraw (1W,23H)--(3W,23H);
+ sedraw (3W,23H)--(5W,23H);
+ sbdraw (3W,23H)--(3W,20H){dir270}..{dir135}(2W,19H);
+ sdraw (2W,19H){dir 315}..{dir90}(2.5W,19H)..{dir135}(2W,20H)
+ ..{dir270}(1.5W,20H)..cycle;
+ sedraw (2W,19H)--(4W,16H);
+endchar;
+beginchar(hex"15",0/12wd#,.5penht#+23/12ht#,0); "mini-2u";
+ sbdraw (-3.5W,22H)..{dir0}(-2W,23H)..{dir270}(-.5W,21H)..{dir180}(-2.5W,18H);
+ sedraw (-2.5W,18H){dir180}..{dir90}(-3.5W,18.25H)..{dir315}(-2.5W,19H)
+ --(0W,16.5H);
+ sedraw (3W,23H){dir315}..{dir200}(3W,20H)..{dir160}(2W,20H);
+ sbdraw (4W,20H){dir315}..{dir180}(3W,17H);
+ sedraw (3W,17H){dir180}..{dir135}(0.5W,18.5H);
+ sbdraw (0.5W,23H)--(3W,23H);
+ sedraw (3W,23H)--(5W,23H);
+endchar;
+beginchar(hex"16",0/12wd#,.5penht#+23/12ht#,0); "mini-3ka";
+ sbdraw (-4.5W,23H)--(-3.5W,23H){dir0}..{dir270}(-2W,21.5H)..{dir180}(-3W,20.75H);
+ sbdraw (-4W,20.75H)--(-3W,20.75H);
+ sedraw (-3W,20.75H){dir0}..{dir270}(-1.5W,19.5H)..{dir180}(-3.5W,18H)
+ ..{dir315}(-3.5W,19H)--(-1W,16.5H);
+ sbdraw (0W,23H)--(3W,23H);
+ sedraw (3W,23H)--(5.5W,23H);
+ sdraw (0W,19.75H)..(1.5W,21.25H)..(3W,19.75H)..(1.5W,18.75H)..cycle;
+ sedraw (3W,19.25H){dir90}..{dir0}(4W,21H)..{dir225}(5W,17.75H);
+ sedraw (3W,23H)--(3W,17H);
+endchar;
+beginchar(hex"17",0,.5penht#+23/12ht#,0); "svarita";
+ bedraw (0W,17H)--(0W,23H);
+endchar;
+beginchar(hex"18",15/12wd#,.5penht#+ht#,.5penht#); "front-uu";
+ bedraw (5W,12H){dir0}..{dir225}(7W,7H)..(5W,6H);
+ edraw (7W,7H){dir330}..{dir180}(6W,0)..{dir135}(0W,4H);
+ bedraw (7W,7H){dir330}..(10W,6H)..{dir0}(12.5W,7.5H)..{dir270}(15W,5H);
+ bedraw (15W,5H){dir270}..{dir180}(12.5W,2.5H)..{dir135}(10.5W,3.5H);
+ bedraw (1W,12H)--(15.5W,12H);
+endchar;
+beginchar(hex"19",15/12wd#,ht#,.5penht#+1/12ht#); "front-.r";
+ bedraw (0W,7H){dir45}..{dir315}(6W,7H)--(7W,6H)--(1W,2H);
+ bedraw (7W,12H)--(7W,0H);
+ bedraw (7W,6H)--(12W,7H)..{dir135}(13W,9H)..{dir315}(11W,7H)--(14W,4H)
+ --(13W,4H){dir180}..{dir270}(11W,2H)..{dir0}(13W,0)..{dir45}(15W,1H);
+ bedraw (0W,12H)--(15.5W,12H);
+endchar;
+beginchar(hex"1A",16/12wd#,ht#,.5penht#+3/12ht#); "front-.R";
+ path p;
+ bedraw (0W,7H){dir45}..{dir315}(6W,7H)--(7W,6H)--(1W,2H);
+ bedraw (7W,12H)--(7W,0H);
+ p = (7W,6H)--(12W,7H)..{dir135}(13W,9H)..{dir315}(11W,7H)--(14W,4H)
+ --(13W,4H){dir180}..{dir270}(11W,2H)..{dir0}(13W,0)..{dir45}(15W,1H);
+ bedraw p;
+ z1 = p intersectionpoint ((12W,-1H)--(12W,1H));
+ bedraw z1{dir240}..{dir0}(14W,-3H)..{dir45}(16W,-2H);
+ bedraw (0W,12H)--(16.5W,12H);
+endchar;
+beginchar(hex"1B",12/12wd#,ht#,.5penht#+1/12ht#); "front-.l";
+ bedraw (5W,7H){dir135}..{dir180}(3W,8H)..{dir270}(0W,5H)
+ ..{dir315}(3W,0H-.5penht);
+ bedraw (4.5W,5.5H){dir60}..{dir0}(8W,8H)..{dir270}(10W,6H)
+ ..{dir225}(9W,4H)--(7W,2H){dir225}..{dir0}(9W,-1H)..{dir45}(11W,0)--(12W,1H);
+ bedraw (8W,12H)--(8W,8H);
+ bedraw (0W,12H)--(12.5W,12H);
+endchar;
+beginchar(hex"1C",12/12wd#,ht#,.5penht#+3/12ht#); "front-.L";
+ bedraw (5W,7H){dir135}..{dir180}(3W,8H)..{dir270}(0W,5H)
+ ..{dir315}(3W,0H-.5penht);
+ bedraw (4.5W,5.5H){dir60}..{dir0}(8W,8H)..{dir270}(10W,6H)
+ ..{dir225}(9W,4H)--(8W,3H){dir225}..{dir0}(9W,0)..{dir45}(11W,1H);
+ bedraw (9W,0){dir225}..{dir0}(10W,-3H)..{dir45}(12W,-2H);
+ bedraw (8W,12H)--(8W,8H);
+ bedraw (0W,12H)--(12.5W,12H);
+endchar;
+beginchar(hex"1D",8/12wd#,.5penht#+ht#,.5penht#); "ru";
+ bedraw (3W,12H)--(3W,6H)..{dir135}(1W,5H);
+ mdraw (1W,5H){dir 315}..{dir90}(2W,5H)..{dir135}(1W,7H)
+ ..{dir315}(0W,6H)..cycle;
+ bedraw (1W,5H)--(7.5W,0H-.5penht);
+ bedraw (3W,5.5H){dir60}..{dir0}(6W,8H)..{dir225}(7W,4H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar(hex"1E",10/12wd#,.5penht#+ht#,.5penht#); "ruu";
+ bedraw (3W,12H)--(3W,6H)..{dir135}(1W,5H);
+ mdraw (1W,5H){dir 315}..{dir90}(2W,5H)..{dir135}(1W,7H)
+ ..{dir315}(0W,6H)..cycle;
+ bedraw (1W,5H)--(6.5W,0H-.5penht);
+ bedraw (7W,5H){dir225}..{dir0}(5W,7.5H)..{dir315}(10W,4H);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar(hex"1F",14/12wd#,.5penht#+13/12ht#,1/12ht#+.5penht#); "alt-Vedic-anusvaara";
+ bdraw (4W,8H){dir135}..(3W,10H){dir90}..(5W,12H){dir0}..{dir270}(6.5W,10.5H);
+ edraw (6.5W,10.5H){dir270}..(5W,5H){dir270}..(8W,3H){dir0}..(11W,4H)
+ ..(13W,8H){dir90}..(11.5W,10H){dir180}..(10W,8H){dir270}..(13W,2H){dir270}
+ ..{dir180}(10W,-1H);
+ putdot (9W,13H);
+endchar;
+beginchar(hex"20",0,.5penht#+19/12ht#,0); "pre-ra with bindu";
+ bedraw (0W,12H)..{dir125}(0W,12.5H)..{dir90}(-2W,17H)..{dir0}(0W,19H)
+ ..{dir315}(2W,18H);
+ putdot (1W,16H);
+endchar;
+beginchar(hex"21",0,.5penht#+ht#,.5penht#+5/12ht#); "anudaatta";
+ bedraw (-5W,-5H)--(3W,-5H);
+endchar;
+beginchar(hex"22",0wd#,.5penht#+0/12ht#,.5penht#+4/12ht#); "r2";
+ bedraw (0W,-4H)--(0W,0)--(-6W,-4H);
+endchar;
+beginchar(hex"23",12/12wd#,.5penht#+ht#,.5penht#); "k1";
+ edraw (6W,6.5H)--(5W,7.5H){dir135}..{dir180}(3W,8.5H)..{dir270}(0W,6H)
+ ..{dir0}(3W,3.5H)..{dir0}(9W,8H)..{dir315}(12W,6H);
+ bedraw (0W,12H)--(12.5W,12H);
+ bedraw (6W,0)--(6W,12H);
+endchar;
+beginchar(hex"24",11/12wd#,.5penht#+ht#,.5penht#); "j1";
+ bedraw (3W,6H)--(11W,6H);
+ bedraw (5W,6H){dir315}..{dir180}(4W,0)..{dir135}(-2W,5H);
+ bedraw (0W,12H)--(11.5W,12H);
+endchar;
+beginchar(hex"25",12/12wd#,.5penht#+ht#,.5penht#); "P = ph";
+ bedraw (0W,12H)--(0W,7H)..{dir0}(3W,4H)..{dir45}(6W,6H)..{dir0}(9W,8H)
+ ..{dir315}(12W,6H);
+ bedraw (6W,12H)--(6W,0H);
+ bedraw (0W,12H)--(12.5W,12H);
+endchar;
+beginchar(hex"26",8/12wd#,.5penht#+ht#,.5penht#+3/12ht#); "h.r";
+ bedraw (6W,12H)--(6W,8.5H)--(2W,8.5H){dir180}..{dir270}(0W,6H)..(1W,4H);
+ bedraw (8W,-.5H){dir200}..(3.5W,.5H)..{dir20}(6W,2.5H)..{dir200}(3W,5H)
+ ..{dir270}(0W,2H)..{dir315}(5W,-4H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar(hex"27",0wd#,.5penht#+0/12ht#,.5penht#+6/12ht#); "r3";
+ bedraw (0W,-6H)--(0W,0H);
+ bedraw (-6W,-6H)--(0W,-2H);
+endchar;
+beginchar(hex"28",9/12wd#,.5penht#+ht#,0); "front-''sa-loop1";
+ bedraw (0W,6H){dir0}..{dir90}(6W,10H)..{dir180}(4W,12H)..{dir270}(2.5W,10H)
+ ..{dir0}(9W,6H);
+ bedraw (7W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"29",9/12wd#,.5penht#+ht#,0); "front-''sa-loop2";
+ bedraw (0W,6H){dir0}..(4W,7H)..{dir180}(4W,11H)..(4W,7H)..{dir0}(9W,6H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"2A",8/12wd#,.5penht#+ht#,.5penht#); "8-W horizontal bar";
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar(hex"2B",4/12wd#,.5penht#+ht#,0); "4-W horizontal bar";
+ bedraw (0W,12H)--(4.5W,12H);
+endchar;
+beginchar(hex"2C",0,0,.5penht#+5/12ht#); "viraama (halanta)";
+ bedraw (0W,-3H){dir0}..{dir315}(5W,-6H);
+endchar;
+beginchar(hex"2D",5/12wd#,.5penht#+ht#,0); "hyphen character";
+ bedraw (-1W,5H)--(5W,5H);
+endchar;
+beginchar(hex"2E",1/12wd#,.5penht#+ht#,0); "1-W horizontal bar";
+ bedraw (0W,12H)--(1.5W,12H);
+endchar;
+beginchar(hex"2F",1/12wd#,.5penht#+18/12ht#,0); "i-link";
+ bedraw (0W,18H)--(1.5W,18H);
+endchar;
+beginchar(hex"30",12/12wd#,.5penht#+ht#,.5penht#); "0";
+ mdraw (3W,6H)..(6.5W,9.5H)..(10W,6H)..(6.5W,2.5H)..cycle;
+endchar;
+beginchar(hex"31",12/12wd#,.5penht#+ht#,.5penht#+1/12ht#); "1";
+ edraw (9W,7.5H){dir225}..(4W,7.5H)..(4W,11H)..(9W,11H)..{dir225}(9W,7.5H)
+ ..(4W,3H)--(6W,1H)..{dir270}(7W,-0.5H)..{dir225}(6W,-2H);
+endchar;
+beginchar(hex"32",12/12wd#,.5penht#+ht#,.5penht#+1/12ht#); "2";
+ bedraw (2W,10H)..{dir0}(6W,12H)..{dir270}(10W,7H)..{dir180}(6W,2H)
+ ..{dir90}(2.5W,4.5H)..{dir315}(5W,5.5H)--(11.5W,-1H);
+endchar;
+beginchar(hex"33",12/12wd#,.5penht#+ht#,.5penht#+1/12ht#); "3";
+ bedraw (3W,11.5H)--(7W,11.5H){dir0}..{dir270}(9.5W,9.5H)..{dir180}(7W,7H)
+ --(4W,7H);
+ bedraw (7W,7H){dir0}..{dir270}(10W,4H)..{dir180}(6.5W,1H)..{dir90}(2.5W,3H)
+ ..{dir315}(5W,4H)--(10W,-1H);
+endchar;
+beginchar(hex"34",12/12wd#,.5penht#+ht#,.5penht#); "4";
+ bedraw (4.5W,11.5H){dir180}..{dir315}(3.5W,8H)--(9W,4H){dir315}..{dir180}(6W,0)
+ ..{dir45}(3W,4H)--(8.5W,8H){dir45}..{dir135}(8.5W,12.5H);
+endchar;
+beginchar(hex"35",12/12wd#,.5penht#+ht#,1/12ht#+.5penht#); "5";
+ bedraw (3.5W,11H)--(3.5W,9H){dir270}..{dir0}(6.5W,5.5H)..{dir90}(10W,9H);
+ bedraw (10W,11H)--(10W,9H){dir270}..{dir180}(4.5W,0H)..{dir0}(4W,3H)
+ ..{dir315}(10W,-1H);
+endchar;
+beginchar(hex"36",12/12wd#,.5penht#+ht#,.5penht#+2/12ht#); "6";
+ bedraw (9W,11H)--(5W,11H){dir180}..{dir270}(2.5W,9H)..{dir0}(5W,6H)
+ --(8.5W,6H);
+ bedraw (7W,6H){dir180}..{dir270}(2.5W,3H)..{dir0}(7W,0H)..{dir180}(9W,3H)
+ ..{dir315}(9W,0H)--(11W,-2H);
+endchar;
+beginchar(hex"37",12/12wd#,.5penht#+ht#,.5penht#); "7";
+ edraw (10W,6.5H){dir270}..{dir180}(7.75W,4H)..{dir90}(5.5W,6.5H)
+ ..{dir0}(7.75W,9H)..(10W,6.5H)..{dir180}(7W,0H)..{dir90}(2W,11H);
+endchar;
+beginchar(hex"38",12/12wd#,.5penht#+ht#,.5penht#); "8";
+ bedraw (8W,10.5H)--(2.5W,4H){dir225}..{dir315}(2.5W,1.5H)..{dir0}(5W,0H)
+ ..{dir65}(9.5W,3H);
+endchar;
+beginchar(hex"39",12/12wd#,.5penht#+ht#,.5penht#+1/12ht#); "9";
+ edraw (3W,7.5H){dir315}..(8W,7.5H)..(8W,11H)..(3W,11H)..{dir315}(3W,7.5H)
+ --(8W,2.5H)..{dir225}(8W,0H)--(7W,-1H);
+endchar;
+beginchar(hex"3A",2/12wd#,.5penht#+ht#,0); "2-W horizontal bar";
+ bedraw (0W,12H)--(2.5W,12H);
+endchar;
+beginchar(hex"3B",3/12wd#,.5penht#+ht#,0); "3-W horizontal bar";
+ bedraw (0W,12H)--(3.5W,12H);
+endchar;
+beginchar(hex"3C",0,.5penht#+19/12ht#,0); "candrabindu (nasal vowel)";
+ bedraw (-4W,18H){dir315}..{dir45}(4W,18H);
+ putdot (0W,19H);
+endchar;
+beginchar("=",6/12wd#,.5penht#+ht#,.5penht#); "ra";
+ bedraw (3W,12H)--(3W,6H)..{dir135}(1W,5H);
+ mdraw (1W,5H){dir 315}..{dir90}(2W,5H)..{dir135}(1W,7H)
+ ..{dir315}(0W,6H)..cycle;
+ bedraw (1W,5H)--(6.5W,0H-.5penht);
+ bedraw (0W,12H)--(6.5W,12H);
+endchar;
+beginchar(hex"3E",13/12wd#,.5penht#+ht#,.5penht#); "Vedic anusvaara";
+ bedraw (2W,10H){dir315}..{dir45}(12W,10H);
+ putdot (7W,12H);
+ bedraw (5W,2H)..{dir0}(7W,4H)..{dir315}(11W,1H);
+endchar;
+beginchar("?",16/12wd#,.5penht#+16/12ht#,.5penht#); "OM";
+ bedraw (2W,10.5H)..{dir0}(5W,12H)..{dir225}(7W,7H)..(5W,6H);
+ bedraw (7W,7H)--(8W,6H){dir315}..{dir180}(6W,0)..{dir135}(2W,2H)--(0W,4H);
+ bedraw (7W,7H){dir315}..(11W,6H)..{dir0}(13.5W,7.5H)..{dir270}(16W,5H);
+ bedraw (16W,5H){dir270}..{dir180}(13.5W,2.5H)..{dir135}(11W,4H);
+ bedraw (8W,14H){dir315}..{dir45}(16W,14H);
+ putdot (12W,16H);
+endchar;
+beginchar("@",12/12wd#,.5penht#+12/12ht#,0); "empty";
+ empty;
+endchar;
+beginchar("A",16/12wd#,.5penht#+ht#,.5penht#); "front-a";
+ bedraw (2W,10.5H)..{dir0}(5W,12H)..{dir225}(7W,7H)..(5W,6H);
+ path p;
+ p = (7W,7H)--(8W,6H){dir315}..{dir180}(6W,0)..{dir135}(2W,2H)--(0W,4H);
+ bedraw p;
+ z1 = p intersectionpoint ((7W,4H)--(11W,4H));
+ bedraw z1--(13W,7H);
+ bedraw (13W,12H)--(13W,0H);
+ bedraw (10W,12H)--(16.5W,12H);
+endchar;
+beginchar("B",10/12wd#,.5penht#+ht#,.5penht#); "B = bh";
+ bedraw (0W,12H)--(3W,12H)--(3W,5H){dir270}..{dir90}(0W,5H)
+ ..{dir0}(1W,6H)--(10W,6H);
+ bedraw (7W,12H)--(10.5W,12H);
+endchar;
+beginchar("C",11/12wd#,.5penht#+ht#,.5penht#); "C = cha";
+ bedraw (4W,9H)..(2W,9H)..{dir270}(0W,7H)..{dir0}(3W,5H)--(4W,5H);
+ bedraw (2W,5H){dir180}..{dir270}(0W,3H)..{dir0}(3W,0)..(9W,4H)..(9.5W,8H)
+ ..{dir220}(8W,9H)..(7W,8H)..(7W,4H)..{dir315}(11W,0H-.5penht);
+ bedraw (8W,12H)--(8W,9H);
+ bedraw (0W,12H)--(11.5W,12H);
+endchar;
+beginchar("D",7/12wd#,.5penht#+ht#,.5penht#); "D = dh";
+ bedraw (-1W,12H)--(1W,12H);
+ bedraw (0W,12H){dir225}..{dir315}(1W,8H);
+ bedraw (3W,8H)--(2W,8H)..{dir270}(0W,6H)..{dir0}(3W,3H)..{dir75}(7W,6H);
+ bedraw (4W,12H)--(7.5W,12H);
+endchar;
+beginchar("E",0wd#,.5penht#+19/12ht#,.5penht#); "ai-hook";
+ bedraw (-8W,18H)..{dir0}(-6W,19H)..{dir305}(0W,12.5H)..(0W,12H);
+ bedraw (-7W,15H)..{dir0}(-5W,16H)..{dir305}(0W,12.5H)..(0W,12H);
+endchar;
+beginchar("F",10/12wd#,.5penht#+ht#,.5penht#); "F = .tha";
+ path p;
+ p = (0W,4.5H)..(4.5W,8.5H)..(9W,4.5H)..(4.5W,0H)..cycle;
+ mdraw p;
+ z1 = p intersectionpoint ((6W,12H)--(6W,6H));
+ bedraw (6W,12H)--z1;
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar("G",7/12wd#,.5penht#+ht#,.5penht#); "gh";
+ bedraw (0W,12H)--(7.5W,12H);
+ bedraw (0W,12H){dir225}..{dir315}(1W,8H);
+ bedraw (3W,8H)--(2W,8H)..{dir270}(0W,6H)..{dir0}(3W,3H)..{dir60}(7W,6H);
+endchar;
+beginchar("H",7/12wd#,.5penht#+ht#,.5penht#); "visarga";
+ putdot (4W,8H);
+ putdot (4W,3H);
+endchar;
+beginchar("I",9/12wd#,.5penht#+ht#,.5penht#+3/12ht#); "front-i";
+ bedraw (6W,12H)--(6W,9H)--(2W,9H)..{dir270}(0W,7H)..{dir0}(2W,5H)
+ ..{dir0}(6W,6H)..{dir180}(3W,0)..{dir90}(0W,2H)..{dir0}(1W,3H)
+ ..{dir315}(3W,2H)--(8W,-3H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar("J",12/12wd#,.5penht#+ht#,.5penht#+3/12ht#); "jh";
+ path p;
+ p = (6W,12H)--(6W,9H)--(2W,9H)..{dir270}(0W,7H)..{dir0}(2W,5H)
+ ..{dir0}(6W,6H)..{dir180}(3W,0)..{dir90}(0W,2H)..{dir0}(1W,3H)
+ ..{dir315}(3W,2H)--(8W,-3H);
+ bedraw p;
+ z1 = p intersectionpoint ((6W,4H)--(10W,4H));
+ mdraw z1{dir0}..{dir45}(12W,6H);
+ bedraw (0W,12H)--(12.5W,12H);
+endchar;
+beginchar("K",11/12wd#,.5penht#+ht#,.5penht#); "kh";
+ bedraw (3W,12H)--(3W,6H){dir270}..{dir135}(1W,5H);
+ mdraw (1W,5H){dir 315}..{dir90}(2W,5H)..{dir135}(1W,7H)
+ ..{dir315}(0W,6H)..cycle;
+ edraw (1W,5H)--(3W,3H)..{dir0}(9W,0H);
+ mdraw (6W,6H)..(11W,6H)..cycle;
+ bedraw (0W,12H)--(11.5W,12H);
+endchar;
+beginchar("L",10/12wd#,.5penht#+ht#,.5penht#); "La";
+ path p;
+ p = (5W,5H){dir315}..{dir0}(7.5W,3.5H)..{dir90}(10W,6H)..{dir180}(7.5W,8.5H)
+ ..(5W,6H)..{dir180}(2.5W,3.5H)..{dir90}(0W,6H)..{dir0}(2.5W,8.5H)
+ ..{dir315}(5W,7H);
+ mdraw p;
+ z1 = p intersectionpoint ((7W,12H)--(7W,6H));
+ bedraw (7W,12H)--z1;
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar("M",0,.5penht#+18/12ht#,0); "anusvaara";
+ putdot (0W,18H);
+endchar;
+beginchar("N",9/12wd#,.5penht#+ht#,.5penht#); ".n";
+ bedraw (0W,12H)--(0W,7H){dir270}..(2.75W,4H)..{dir90}(5.5W,7H)--(5.5W,12H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar("O",8/12wd#,.5penht#+ht#,.5penht#+1/12ht#); "front-e";
+ bedraw (2W,12H)--(2W,7H){dir270}..(6W,2H)..{dir270}(8.5W,-1H)
+ ..{dir180}(6.5W,-3H);
+ bedraw (8W,12H)--(8W,8H){dir270}..{dir180}(5.5W,4H)..{dir135}(4W,5H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar("P",11/12wd#,.5penht#+ht#,.5penht#); "pha";
+ bedraw (0W,12H)--(0W,7H)..{dir0}(3W,4H)..{dir45}(6W,6H)..{dir0}(9W,8H)
+ ..{dir240}(10W,3H);
+ bedraw (6W,12H)--(6W,0H);
+ bedraw (0W,12H)--(11.5W,12H);
+endchar;
+beginchar("Q",10/12wd#,.5penht#+ht#,.5penht#); "Q = .dha";
+ bdraw (7W,12H)--(7W,8.5H)--(4W,8.5H){dir180}..{dir270}(0W,5H)..{dir0}(4W,0)
+ ..(8W,2.5H)..{dir180}(6W,5H)..(5W,1H);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar("R",0wd#,.5penht#+18/12ht#,.5penht#); "pre-ra-hook";
+ bedraw (0W,12H)..{dir125}(0W,12.5H)..{dir90}(-2W,17H)..{dir0}(0W,19H)
+ ..{dir315}(2W,18H);
+endchar;
+beginchar("S",6/12wd#,.5penht#+ht#,.5penht#); "S = .s";
+ bedraw (0W,12H)--(0W,7H){dir270}..{dir0}(3W,4H)..(6W,6H);
+ bdraw (0W,12H)--(6W,6H);
+ bedraw (0W,12H)--(6.5W,12H);
+endchar;
+beginchar("T",8/12wd#,.5penht#+ht#,.5penht#); "T = th";
+ mdraw (1W,8H){dir145}..{dir0}(0.5W,12H)..(3W,8H)..(0W,6H);
+ edraw (0W,6H){dir315}..{dir0}(4W,4H)..{dir45}(8W,6H);
+ bedraw (5W,12H)--(8.5W,12H);
+endchar;
+beginchar("U",0wd#,.5penht#+ht#,.5penht#+5/12ht#); "U = uu-hook";
+ bdraw (4W,-6H){dir135}..{dir200}(-2.5W,-3H)..{dir0}(-2.5W,-6H)
+ ..{dir90}(0W,-3H);
+endchar;
+beginchar("V",10/12wd#,.5penht#+ht#,.5penht#); "~n";
+ bedraw (0W,8H)..(4W,8H)..{dir270}(5W,6H)..(4W,4H)..(-.5W,4.5H);
+ bedraw (5W,6H)--(10W,6H);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar("W",0,0,.5penht#+12/12ht#); ".L-hook";
+ bedraw (-1W,-7.5H){dir135}..(-2W,-4H)..(0W,-3H)..(1W,-3H)
+ ..{dir225}(2W,-6H)..{dir0}(3W,-9H)..{dir45}(5W,-8H);
+ bedraw (3W,-9H){dir225}..{dir0}(5W,-12H)..{dir45}(7W,-11H);
+ edraw (-2W,-4H){dir135}..{dir180}(-4W,-3H)..{dir270}(-6W,-5H)
+ ..{dir315}(-4W+.5penht,-9H-.5penht);
+ edraw (0W,0)--(0W,-3H);
+endchar;
+beginchar("X",0,.5penht#+ht#,.5penht#+10/12ht#); "X = .R-hook";
+ path p;
+ p = (0W,0)--(0W,-3H)--(-1W,-3H){dir180}..{dir270}(-3W,-5H)..{dir0}(-1W,-7H)
+ ..{dir45}(1W,-6H);
+ edraw p;
+ z1 = p intersectionpoint ((0W,-4H)--(-4W,-8H));
+ bedraw z1{dir225}..{dir0}(0W,-10H)..{dir45}(3W,-9H);
+endchar;
+beginchar("Y",12/12wd#,.5penht#+ht#,.5penht#); "avagraha";
+ bedraw (12W,12H)--(7W,12H){dir180}..{dir270}(4W,10H)..(7W,6H)
+ ..{dir270}(9W,2H)..{dir180}(7W,0)..{dir135}(2W,4H);
+endchar;
+beginchar("Z",9/12wd#,.5penht#+ht#,.5penht#); "Z = ''s";
+ bedraw (3W,7H){dir180}..{dir90}(0W,9H)..{dir0}(2W,11H)..{dir270}(6W,6H)
+ ..{dir180}(2W,2H)..{dir90}(0W,3H)..{dir0}(2W,4H)..{dir315}(7.5W,0H-.5penht);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar("[",10/12wd#,.5penht#+ht#,.5penht#); "k.s";
+ bedraw (10W,6H){dir180}..(4W,7H)..{dir0}(4W,12H)..(4W,7H)..{dir270}(0W,3H)
+ ..{dir0}(4W,0)..(6W,1H)..{dir180}(6W,4H)..{dir315}(4W,1H)..(6.5W,-1.5H);
+ bedraw (7W,12H)--(10.5W,12H);
+endchar;
+beginchar(hex"5C",10/12wd#,.5penht#+ht#,.5penht#); "L";
+ mdraw (5W,5H){dir315}..{dir0}(7.5W,3.5H)..{dir90}(10W,6H)..{dir180}(7.5W,8.5H)
+ ..(5W,6H)..{dir180}(2.5W,3.5H)..{dir90}(0W,6H)..{dir0}(2.5W,8.5H)
+ ..{dir315}(5W,7H);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar(hex"5D",6/12wd#,.5penht#+ht#,.5penht#+2/12ht#); "j~n";
+ bedraw (6W,6H){dir135}..{dir180}(1W,8.5H)..(0W,6H)..{dir180}(1W,0)
+ ..{dir90}(-2W,2H)..{dir315}(0W,2H)--(3W,-2H);
+ bedraw (0W,12H)--(6.5W,12H);
+endchar;
+beginchar(hex"5E",12/12wd#,.5penht#+ht#,.5penht#); "jihvamuuliiya";
+ bedraw (2W,9H){dir315}..{dir45}(10W,9H);
+ bedraw (2.5W,2H){dir45}..{dir315}(10.5W,2H);
+endchar;
+beginchar(hex"5F",0/12wd#,.5penht#+20/12ht#,.5penht#); "R1";
+ bedraw (0W,12H)--(0W,12.5H){dir125}..{dir90}(-1W,15H)..{dir0}(0W,16H)
+ ..{dir315}(2W,15H);
+ bedraw (-3W,19H){dir315}..{dir45}(3W,19H);
+ putdot (0W,20H);
+endchar;
+beginchar(hex"60",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar("a",3/12wd#,.5penht#+ht#,.5penht#); "V-bar + 3-W horizontal bar";
+ bedraw (0W,0H)--(0W,12H)--(3.5W,12H);
+endchar;
+beginchar("b",6/12wd#,.5penht#+ht#,.5penht#); "b";
+ mdraw (0W,6H)..(1W,8H)..(5W,8H)..(6W,6H)..(5W,4H)..(1W,4H)..cycle;
+ bedraw (1W,8H)--(5W,4H);
+ bedraw (0W,12H)--(6.5W,12H);
+endchar;
+beginchar("c",7/12wd#,.5penht#+ht#,.5penht#); "c";
+ bedraw (-2W,8H)--(4W,8H);
+ bedraw (3W,8H){dir180}..{dir270}(0W,6H)..{dir0}(3W,3H)..(7W,6H);
+ bedraw (0W,12H)--(7.5W,12H);
+endchar;
+beginchar("d",9/12wd#,.5penht#+ht#,.5penht#); "da";
+ bedraw (6W,12H)--(6W,8.5H)--(4W,8.5H){dir180}..{dir270}(0W,6H)..{dir0}(4W,2H)
+ ..{dir90}(6.5W,4H)..(5.5W,5H)..{dir270}(4W,4H)..{dir315}(5W,2H)
+ --(7W+.5penht,0H-.5penht);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar("e",0wd#,.5penht#+17/12ht#,.5penht#); "e-hook";
+ bedraw (-7W,17H)..{dir0}(-5W,18H)..{dir305}(0W,12.5H)..(0W,12H);
+endchar;
+beginchar("f",11/12wd#,.5penht#+ht#,.5penht#); ".ta";
+ bedraw (7W,12H)--(7W,8.5H)--(5W,8.5H){dir180}..{dir270}(0W,4H)..{dir0}(5W,0)
+ ..{dir45}(9W,2H);
+ bedraw (0W,12H)--(11.5W,12H);
+endchar;
+beginchar("g",7/12wd#,.5penht#+ht#,.5penht#); "g";
+ bedraw (3W,12H)--(3W,6H)..{dir135}(1W,5H);
+ mdraw (1W,5H){dir 315}..{dir90}(2W,5H)..{dir135}(1W,7H)
+ ..{dir315}(0W,6H)..cycle;
+ bedraw (0W,12H)--(7.5W,12H);
+endchar;
+beginchar("h",9/12wd#,.5penht#+ht#,.5penht#+3/12ht#); "ha";
+ bedraw (6W,12H)--(6W,8.5H)--(2W,8.5H){dir180}..{dir270}(0W,6.5H)..(1W,4H);
+ bedraw (5W,1H)..(6W,2H)..{dir190}(3W,5H)..{dir270}(0W,2H)
+ ..{dir315}(5W,-4H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar("i",8/12wd#,.5penht#,.5penht#); "low-ja";
+ bedraw (0W,6H)--(8W,6H);
+ bedraw (2W,6H)..(4W,4H)..{dir180}(1W,-1H)..{dir135}(-4W,1H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar("j",11/12wd#,.5penht#+ht#,.5penht#); "j";
+ bedraw (3W,7H)--(11W,7H);
+ bedraw (5W,7H){dir315}..{dir180}(4W,0)..{dir135}(-2W,5H);
+ bedraw (0W,12H)--(11.5W,12H);
+endchar;
+beginchar("k",12/12wd#,.5penht#+ht#,.5penht#); "ka";
+ edraw (6W,6.5H)--(5W,7.5H){dir135}..{dir180}(3W,8.5H)..{dir270}(0W,6H)
+ ..{dir0}(3W,3.5H)..{dir0}(10W,8H)..{dir270}(12W,6H)..{dir240}(11W,3H);
+ bedraw (0W,12H)--(12.5W,12H);
+ bedraw (6W,0)--(6W,12H);
+endchar;
+beginchar("l",12/12wd#,.5penht#+ht#,.5penht#); "la";
+ bedraw (5W,7H){dir135}..{dir180}(3W,8H)..{dir270}(0W,5H)
+ ..{dir315}(2.5W+.5penht,0H-.5penht);
+ bedraw (5W,5H){dir90}..{dir0}(8W,8H)..{dir270}(11W,5H)..(9W,0H);
+ bedraw (8W,8H)--(8W,12H);
+ bedraw (0W,12H)--(12.5W,12H);
+endchar;
+beginchar("m",10/12wd#,.5penht#+ht#,.5penht#); "m";
+ bedraw (3W,12H)--(3W,4H){dir270}..{dir90}(0W,4H)..{dir0}(1W,5H)--(10W,5H);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar("n",8/12wd#,.5penht#+ht#,.5penht#); "n";
+ bedraw (3W,5H){dir270}..{dir90}(0W,5H)..{dir0}(1W,6H);
+ bedraw (1W,6H)--(8W,6H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar("o",10/12wd#,.5penht#+ht#,.5penht#); "front-u";
+ bedraw (5W,12H){dir0}..{dir225}(7W,7H)..(5W,6H);
+ edraw (7W,7H){dir330}..{dir180}(6W,0)..{dir135}(0W,4H);
+ bedraw (1W,12H)--(10.5W,12H);
+endchar;
+beginchar("p",6/12wd#,.5penht#+ht#,.5penht#); "p";
+ bedraw (0W,12H)--(0W,7H){dir270}..{dir0}(3W,4H)..{dir45}(6W,6H);
+ bedraw (0W,12H)--(6.5W,12H);
+endchar;
+beginchar("q",9/12wd#,.5penht#+ht#,.5penht#); ".da";
+ bedraw (6W,12H)--(6W,9H)--(2W,9H)..{dir270}(0W,7H)..{dir0}(2W,5H)
+ ..{dir0}(6W,6H)..{dir180}(4W,0)..{dir135}(-1W,3H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar("r",0,.5penht#+ht#,.5penht#); "r = basic post-ra stroke";
+ bedraw (0W,6H)--(0W,5.5H)--(-6W,0H);
+endchar;
+beginchar("s",10/12wd#,.5penht#+ht#,.5penht#); "s";
+ bedraw (3W,12H)--(3W,6H)..{dir135}(1W,5H);
+ mdraw (1W,5H){dir 315}..{dir90}(2W,5H)..{dir135}(1W,7H)
+ ..{dir315}(0W,6H)..cycle;
+ bedraw (1W,5H)--(6.5W,0H-.5penht);
+ bedraw (2W,5H)--(10W,5H);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar("t",7/12wd#,.5penht#+12/12ht#,.5penht#); "t";
+ bedraw (7W,6H){dir135}..(3W,8H)..{dir270}(0W,6H)..{dir315}(3.5W,0H-.5penht);
+ bedraw (0W,12H)--(7.5W,12H);
+endchar;
+beginchar("u",0wd#,.5penht#+ht#,.5penht#+5/12ht#); "u-hook";
+ bdraw (-5W,-3H){dir315}..{dir10}(1.5W,-6H)..{dir180}(1.5W,-3H)
+ ..{dir270}(-1W,-5H);
+endchar;
+beginchar("v",6/12wd#,.5penht#+ht#,.5penht#); "v";
+ mdraw (0W,6H)..(1W,8H)..(5W,8H)..(6W,6H)..(5W,4H)..(1W,4H)..cycle;
+ bedraw (0W,12H)--(6.5W,12H);
+endchar;
+beginchar("w",0,.5penht#+ht#,.5penht#+9/12ht#); ".l-hook";
+ bedraw (-1W,-7.5H){dir135}..(-2W,-4H)..(0W,-3H)..(1W,-3H)
+ ..{dir225}(2W,-6H)..{dir0}(3W,-9H)..{dir45}(5W,-8H);
+ edraw (-2W,-4H){dir135}..{dir180}(-4W,-3H)..{dir270}(-6W,-5H)..(-4W,-9H);
+ edraw (0W,0)--(0W,-3H);
+endchar;
+beginchar("x",0wd#,.5penht#+ht#,.5penht#+7.5/12ht#); ".r-hook";
+ edraw (0W,0)--(0W,-3H)--(-1W,-3H){dir180}..{dir0}(-.5W,-7.5H)
+ ..{dir45}(2.5W,-6.5H);
+endchar;
+beginchar("y",8/12wd#,.5penht#+ht#,.5penht#); "y";
+ bedraw (2W,12H){dir315}..{dir200}(0W,6H);
+ edraw (0W,6H)..{dir0}(4W,4H)..{dir45}(8W,6H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar("z",11/12wd#,.5penht#+ht#,.5penht#); "''na";
+ bedraw (6W,12H)--(6W,9H)--(2W,9H)..{dir270}(0W,7H)..{dir0}(2W,5H)
+ ..{dir0}(6W,6H)..{dir180}(4W,0)..{dir135}(-1W,3H);
+ bedraw (0W,12H)--(11.5W,12H);
+ putdot(10W,7H);
+endchar;
+beginchar(hex"7B",0/12wd#,.5penht#+6/12ht#,.5penht#); "post-ra-4";
+ edraw (0W,6H){dir270}..{dir214}(-2W,2H)--(-5W,0H);
+endchar;
+beginchar(hex"7C",10/12wd#,.5penht#+8/12ht#,.5penht#); "alt-Vedic-.dha";
+ mdraw (10W,7H){dir135}..{dir180}(7.5W,8H)..{dir180}(2.5W,3H)
+ ..{dir90}(0W,5.5H)..{dir0}(2.5W,8H)..{dir0}(7.5W,3H)..{dir45}(10W,4H);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar(hex"7D",9/12wd#,.5penht#+ht#,.5penht#); "m1";
+ bedraw (3W,12H)--(3W,5H){dir270}..{dir90}(0W,5H)..{dir0}(1W,6H)--(9W,6H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"7E",9/12wd#,.5penht#+ht#,.5penht#); "s1";
+ bedraw (3W,12H)--(3W,6H)..{dir135}(1W,5H);
+ mdraw (1W,5H){dir 315}..{dir90}(2W,5H)..{dir135}(1W,7H)
+ ..{dir315}(0W,6H)..cycle;
+ bedraw (1W,5H)--(6.5W,0H-.5penht);
+ bedraw (3W,6H)--(9W,6H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"7F",11/12wd#,.5penht#+ht#,.5penht#); "l-";
+ edraw (5W,7H){dir135}..{dir180}(3W,8H)..{dir270}(0W,5H)
+ ..{dir315}(2.5W+.5penht,0H-.5penht);
+ bedraw (5.5W,4H)..(5W,5H){dir90}..{dir0}(8W,8H)..{dir315}(11W,6H);
+ bedraw (0W,12H)--(11.5W,12H);
+endchar;
+beginchar(hex"80",12/12wd#,.5penht#+ht#,1/12ht#+.5penht#); "kta";
+ bedraw (7W,5.5H)--(3W,5.5H){dir180}..{dir270}(0W,2.5H)
+ ..{dir315}(2W+.5penht,-1H-.5penht);
+ bedraw (0W,8.5H)--(9W,8.5H){dir0}..{dir270}(12W,6H)..{dir240}(11W,3H);
+ bedraw (7W,-1H)--(7W,12H);
+ bedraw (0W,12H)--(12.5W,12H);
+endchar;
+beginchar(hex"81",15/12wd#,.5penht#+ht#,2/12ht#+.5penht#); "ktva";
+ bedraw (5W,5H)--(3W,5H){dir180}..{dir270}(0W,2H)
+ ..{dir315}(2W+.5penht,-2H-.5penht);
+ mdraw (5W,5H)..(5W,2H)..(9.5W,2H)..(9W,5H)..cycle;
+ bedraw (0W,8.5H)--(12W,8.5H){dir0}..{dir270}(15W,6H)..{dir240}(14W,3H);
+ bedraw (10W,12H)--(10W,-2H);
+ bedraw (0W,12H)--(15.5W,12H);
+endchar;
+beginchar(hex"82",20/12wd#,.5penht#+ht#,.5penht#); "kma";
+ edraw (6W,6.5H)--(5W,7.5H){dir135}..{dir180}(3W,8.5H)..{dir270}(0W,6H)
+ ..{dir0}(3W,3.5H)..{dir0}(9W,8H)..{dir270}(12W,4H)..{dir90}(9W,4H)
+ ..{dir0}(10W,5H)--(17W,5H);
+ bedraw (6W,12H)--(6W,0H);
+ bedraw (17W,12H)--(17W,0H);
+ bedraw (0W,12H)--(20.5W,12H);
+endchar;
+beginchar(hex"83",9/12wd#,.5penht#+ht#,.5penht#); "cc";
+ bedraw (0W,9H)--(6W,9H);
+ bedraw (3W,9H){dir225}..{dir270}(2W,7H)..{dir0}(5W,5H);
+ bedraw (0W,5H)--(6W,5H);
+ bedraw (3W,5H){dir225}..{dir270}(2W,3H)..{dir0}(5W,1H)..{dir90}(9W,6H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"84",18/12wd#,.5penht#+ht#,.5penht#); "chya";
+ bedraw (4W,9H)..(2W,9H)..{dir270}(0W,7H)..{dir0}(3W,5H)--(4W,5H);
+ bedraw (2W,5H){dir180}..{dir270}(0W,3H)..{dir0}(3W,0)..(9W,3H)
+ ..(10W,6H)..(9W,9H)..(8W,9H)..(7W,5H)..(8W,3H)..(12W,2H)..(15W,4H);
+ bedraw (8W,12H)--(8W,9H);
+ bedraw (15W,12H)--(15W,0H);
+ bedraw (0W,12H)--(18.5W,12H);
+endchar;
+beginchar(hex"85",18/12wd#,.5penht#+ht#,.5penht#); "jj-horizontal";
+ bedraw (4W,7H)--(16W,7H){dir0}..(18W,6H);
+ mdraw (6W,7H){dir315}..{dir180}(6W,0H)..{dir135}(0W,5H);
+ bedraw (12W,7H){dir315}..{dir180}(12W,0H)..(9W,2H);
+ bedraw (0W,12H)--(18.5W,12H);
+endchar;
+beginchar(hex"86",10/12wd#,.5penht#+ht#,.5penht#); "tt";
+ bedraw (0W,8H)--(6W,8H);
+ bedraw (10W,6H){dir135}..{dir180}(6W,8H)..{dir270}(3W,4H)
+ ..{dir315}(5W+.5penht,0-.5penht);
+ bedraw (0W,12H)..(10.5W,12H);
+endchar;
+beginchar(hex"87",10/12wd#,.5penht#+ht#,.5penht#); "tn";
+ bedraw (6W,4H){dir270}..{dir90}(3W,4H)..{dir0}(4W,5H);
+ bedraw (4W,5H)--(10W,5H);
+ bedraw (10W,8H)--(3W,8H){dir180}..{dir270}(0W,5H)
+ ..{dir315}(3W+.5penht,0H-.5penht);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar(hex"88",7/12wd#,.5penht#+ht#,.5penht#); "tr";
+ bedraw (1W,2H)--(7W,6H)--(6W,7H){dir135}..{dir225}(0W,7H);
+ bedraw (0W,12H)--(7.5W,12H);
+endchar;
+beginchar(hex"89",8/12wd#,.5penht#+ht#,.5penht#+2/12H); "dda";
+ bedraw (5W,12H)--(5W,9H)--(2W,9H){dir180}..{dir270}(0W,7H)..(2W,5H);
+ bedraw (5W,5H)--(2W,5H){dir180}..{dir270}(0W,3H)..{dir0}(4W,0H)
+ ..{dir90}(6.5W,1.5H)..{dir270}(5W,1.5H)..{dir315}(8W,-2.5H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar(hex"8A",9/12wd#,.5penht#+ht#,.5penht#); "nn";
+ bdraw (3W,8H){dir270}..{dir90}(0W,8H)..{dir0}(1W,9H);
+ mdraw (1W,9H){dir0}..(9W,6H);
+ bdraw (4W,2.5H){dir315}..{dir135}(2W,0.5H)..{dir35}(2.5W,3H);
+ mdraw (2.5W,3H){dir35}..(9W,6H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"8B",7/12wd#,.5penht#+ht#,.5penht#); "pt";
+ bedraw (0W,12H)--(0W,10H){dir270}..{dir0}(5W,6H)--(7W,6H);
+ bedraw (5W,6H){dir180}..{dir270}(0W,4H)..(2W+.5penht,0H-.5penht);
+ bedraw (0W,12H)--(7.5W,12H);
+endchar;
+beginchar(hex"8C",8/12wd#,.5penht#+ht#,1/12ht#+.5penht#); "lla";
+ path p; path q;
+ p = (6.5W,-1H)..{dir90}(8W,2H)..{dir180}(6W,4H)..(4W,3H)
+ ..{dir315}(4.5W,1H);
+ q = (4W,3H){dir135}..{dir180}(2W,4H)..{dir270}(0W,2H)
+ ..{dir315}(1.5W+0.5penht,-1H-0.5penht);
+ bedraw p;
+ bedraw q;
+ z1 = p intersectionpoint ((6.4W,2H)--(6.5W,5H));
+ z2 = q intersectionpoint ((1.5W,2H)--(1.5W,5H));
+ bedraw z1..{dir90}(8W,7H)..{dir180}(6W,9H)..(4W,8H)..{dir315}(4.5W,6H);
+ bedraw (4W,8H){dir135}..{dir180}(2W,9H)..{dir270}(0W,7H)..{dir315}z2;
+ bedraw (6W,12H)--(6W,9H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar(hex"8D",9/12wd#,.5penht#+ht#,.5penht#); ".s.ta";
+ bedraw (0W,12H)--(0W,9H){dir270}..{dir0}(2W,6H);
+ bedraw (0W,12H)--(5W,7H);
+ bedraw (6W,12H)--(6W,9H){dir270}..(5W,7H)..(2W,6H)..{dir270}(0W,3H)
+ ..{dir0}(3W,0)..{dir45}(7W,2H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"8E",9/12wd#,.5penht#+ht#,.5penht#); ".s.tha";
+ bedraw (0W,12H)--(0W,9H){dir270}..{dir0}(2W,6H);
+ bedraw (0W,12H)--(5W,7H);
+ bedraw (6W,12H)--(6W,9H){dir270}..(5W,7H)..(2W,6H)..{dir270}(0W,3H)
+ ..{dir0}(3.5W,0H);
+ bedraw (3.5W,0){dir0}..{dir90}(7W,3H)..{dir135}(5W,6H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"8F",15/12wd#,.5penht#+ht#,3/12ht#+.5penht#); "hma";
+ path p;
+ p = (12W,2H)--(5W,2H){dir180}..{dir270}(4W,1H)..{dir90}(7W,1H)
+ --(7W,2H){dir90}..{dir180}(3W,5H)..{dir270}(0W,2H)..{dir315}(5W,-4H);
+ bedraw p;
+ z1 = p intersectionpoint ((0W,5H)--(2W,3H));
+ bedraw (6W,12H)--(6W,8.5H)--(2W,8.5H){dir180}..{dir270}(0W,6H)..z1;
+ bedraw (12W,12H)--(12W,-2H);
+ bedraw (0W,12H)--(15.5W,12H);
+endchar;
+beginchar(hex"90",3/12wd#,.5penht#+ht#,0); "alt-tr";
+ bdraw (3W,6H)--(1W,8H){dir135}..{dir210}(-3W,8.5H);
+ edraw (3W,6H)--(-1.5W,1.5H);
+ bedraw (0W,12H)--(3.5W,12H);
+endchar;
+beginchar(hex"91",9/12wd#,.5penht#+ht#,.5penht#+0/12ht#); "half-da";
+ bdraw (6W,12H)--(6W,9H)--(4W,9H){dir180}..{dir270}(0W,6H)..{dir0}(5W,3H)
+ ..{dir90}(7W,4H)..{dir270}(5.5W,4H)..{dir315}(7W,2H);
+ bedraw (7W,4H)--(7W,1H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"92",9/12wd#,.5penht#+ht#,.5penht#+0/12ht#); "add-m";
+ bdraw (-1W,9H)--(0W,9H){dir0}..{dir270}(3W,6H)--(3W,4H){dir270}
+ ..{dir90}(0W,4H)..{dir0}(1W,5H)--(9W,5H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"93",8/12wd#,.5penht#+ht#,.5penht#+0/12ht#); "add-y";
+ bdraw (-1W,9H)--(2W,9H){dir0}..{dir225}(2W,5H);
+ edraw (2W,5H){dir315}..{dir0}(5W,3H)..(8W,6H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar(hex"94",0/12wd#,.5penht#+ht#,.5penht#); "y-bottom-loop";
+ mdraw (-1W,3H){dir315}..{dir0}(2W,1H)..(5W,3H);
+endchar;
+beginchar(hex"95",2/12wd#,.5penht#+ht#,.5penht#); "y3";
+ bdraw (-3.3W,2H){dir0}..(2W,5H);
+ bedraw (0W,12H)--(2.5W,12H);
+endchar;
+beginchar(hex"96",10/12wd#,.5penht#+ht#,.5penht#+3/12ht#); "wide-ha";
+ path p;
+ p = (10W,-3H)--(10W,2H){dir90}..{dir180}(7W,5H)--(3W,5H){dir180}
+ ..{dir270}(0W,2H)..{dir315}(5W,-4H);
+ bedraw p;
+ z1 = p intersectionpoint ((0W,5H)--(2W,3H));
+ bedraw (6W,12H)--(6W,8.5H)--(2W,8.5H){dir180}..{dir270}(0W,6H)..z1;
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar(hex"97",12/12wd#,.5penht#+ht#,.5penht#+4/12ht#); "extra-wide-ha";
+ path p;
+ p = (12W,-4H)--(12W,1H){dir90}..{dir180}(9W,5H)--(5W,5H){dir180}
+ ..{dir270}(0W,2H)..{dir315}(3W,-4H);
+ bedraw p;
+ z1 = p intersectionpoint ((0W,5H)--(2W,3H));
+ bedraw (6W,12H)--(6W,8.5H)--(2W,8.5H){dir180}..{dir270}(0W,6H)..z1;
+ bedraw (0W,12H)--(12.5W,12H);
+endchar;
+beginchar(hex"98",9/12wd#,.5penht#+ht#,.5penht#+3/12ht#); "h.r.r";
+ bedraw (6W,12H)--(6W,8.5H)--(2W,8.5H){dir180}..{dir270}(0W,6H)..(1W,4H);
+ bedraw (4W,-1H){dir135}..(3.75W,1.4H)..{dir18}(6W,2.5H)..{dir200}(3W,5H)
+ ..{dir270}(0W,2H)..{dir315}(3.0W,-4H);
+ bedraw (7.75W,-.25H){dir200}..(4.5W,-2.25H)..{dir20}(9.25W,-3H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"99",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"9A",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"9B",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"9C",0,.5penht#+23/12ht#,0); "Kaataka jaatya svarita";
+ sbedraw (0W,17H)--(0W,23H);
+ sbedraw (2.5W,17H)--(2.5W,23H);
+ sbedraw (5W,17H)--(5W,23H);
+endchar;
+beginchar(hex"9D",10/12wd#,.5penht#+ht#,.5penht#); "Jaatya Svarita (Atharvaveda)";
+ bedraw (0W,1.5H){dir315}..{dir0}(2W,0H)..{dir90}(4W,3H)--(4W,9H){dir90}
+ ..{dir0}(5.75W,12H)..{dir270}(7.5W,10H)--(7.5W,9H);
+endchar;
+beginchar(hex"9E",0,.5penht#+ht#,.5penht#+5/12ht#); "Jaatya Svarita (Maitrayaniiya)";
+ bedraw (-5.5W,-2.5H){dir305}..(-1.5W,-5H)..{dir55}(2.5W,-3H);
+endchar;
+beginchar(hex"9F",0,.5penht#+ht#,.5penht#+5/12ht#); "Jaatya Svarita (''Sukla Yajurveda)";
+ bedraw (-5.5W,-3H)--(-5.5W,-3.6H){dir270}..{dir90}(-1.5W,-3.6H)--(-1.5W,-3H);
+ bedraw (-1.5W,-3.6H){dir270}..{dir90}(2.5W,-3.6H)--(2.5W,-3H);
+endchar;
+beginchar(hex"A0",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"A1",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"A2",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"A3",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"A4",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"A5",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"A6",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"A7",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"A8",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"A9",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"AA",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"AB",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"AC",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"AD",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"AE",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"AF",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"B0",12/12wd#,.5penht#+ht#,.5penht#); "alt-5a";
+ bedraw (4W,11H)..(2.5W,8H)..(6.5W,4H)..{dir90}(9.5W,6H)..(8.5W,7.5H)
+ ..{dir270}(7.5W,6H)..{dir270}(9.5W,2H)..(8.5W,0H);
+endchar;
+beginchar(hex"B1",12/12wd#,.5penht#+ht#,.5penht#); "alt-1";
+ edraw (8.5W,8H)..(5.5W,6H)..(2.5W,9H)..(5.5W,12H)..{dir270}(8.5W,10H)
+ --(8.5W,0H);
+endchar;
+beginchar(hex"B2",12/12wd#,.5penht#+ht#,.5penht#); "alt-9b";
+ bedraw (5W,7H){dir0}..(7.5W,8H)..(4.5W,11H)..(2.5W,8H)..{dir330}(9.5W,0H);
+endchar;
+beginchar(hex"B3",15/12wd#,.5penht#+ht#,1/12ht#+.5penht#); "alt-.r";
+ bedraw (0W,7H){dir45}..{dir315}(4W,7H)--(5W,6H)--(1W,2H);
+ bedraw (5W,12H)--(5W,0H);
+ bedraw (5W,6H)--(12W,6H);
+ bedraw (12W,12H)--(12W,2H)--(11W,2H){dir180}..(9W,0H)..{dir0}(11W,-2H)
+ ..{dir45}(13.5W,-1H);
+ bedraw (0W,12H)--(15W,12H);
+endchar;
+beginchar(hex"B4",12/12wd#,.5penht#+ht#,.5penht#); "alt-4";
+ bedraw (1W,10H)..(6W,5H)..(8W,2.5H)..(6W,0H)..(4W,2.5H)..(6W,5H)..(11W,9H);
+endchar;
+beginchar(hex"B5",12/12wd#,.5penht#+ht#,.5penht#); "alt-5";
+ bedraw (3W,12H)--(3W,7H){dir270}..(6W,4H)..{dir90}(9W,7H);
+ bedraw (9W,10H)--(9W,0H);
+endchar;
+beginchar(hex"B6",12/12wd#,.5penht#+ht#,.5penht#); "alt-6";
+ bedraw (8W,11.5H)--(7.5W,12H){dir135}..{dir315}(5.5W,9H);
+ bedraw (8.5W,9H)--(5.5W,9H){dir180}..{dir270}(3W,7H)..{dir0}(5.5W,5H)
+ --(8.5W,5H);
+ bedraw (6.5W,5H){dir180}..{dir270}(3.5W,2.5H)..{dir0}(6.5W,0H)
+ ..{dir180}(8.5W,2H)..{dir315}(8.5W,0H)--(10.5W,-2H);
+endchar;
+beginchar(hex"B7",15/12wd#,.5penht#+ht#,4/12ht#+.5penht#); "alt-.R";
+ bedraw (0W,7H){dir45}..{dir315}(4W,7H)--(5W,6H)--(1W,2H);
+ bedraw (5W,12H)--(5W,0H);
+ bedraw (5W,6H)--(12W,6H);
+ bedraw (12W,12H)--(12W,3H)--(11W,3H){dir180}..(9W,1H)..{dir0}(11W,-1H)
+ ..{dir45}(13W,0H);
+ bedraw (10W,-1H){dir240}..{dir0}(12W,-4H)..{dir45}(14W,-3H);
+ bedraw (0W,12H)--(15W,12H);
+endchar;
+beginchar(hex"B8",12/12wd#,.5penht#+ht#,.5penht#); "alt-8";
+ bedraw (1.5W,9H)--(10.5W,9H);
+ bedraw (6.5W,9H){dir180}..{dir270}(2.5W,5H)..{dir0}(4.5W,2H)..(8.5W,3H)
+ ..(9.5W,1H)..(8.5W,0H);
+endchar;
+beginchar(hex"B9",12/12wd#,.5penht#+ht#,.5penht#); "alt-9";
+ bedraw (9.5W,10H)..(6.5W,12H)..{dir270}(4.5W,11H)..{dir330}(6.5W,8H);
+ bedraw (5.5W,9H)..{dir270}(2.5W,7H)..{dir330}(10.5W,0H);
+endchar;
+beginchar(hex"BA",14/12wd#,ht#+.5penht#,.5penht#); "A-alt";
+ bedraw (5.7W,12H)--(5.7W,8H){dir270}..{dir0}(9W,5H)..(11W,6H);
+ bdraw (0W,9H)--(2W,9H){dir0}..{dir315}(4W,8H);
+ edraw (4W,8H){dir270}..{dir210}(3W,6H)--(1W,5H);
+ bedraw (3.5W,1.5H)--(6.5W,4.5H);
+ bedraw (0,12H)--(14W,12H);
+ bedraw (11W,12H)--(11W,0H);
+endchar;
+beginchar(hex"BB",10/12wd#,.5penht#+ht#,.5penht#); "alt-k.sa";
+ bedraw (6W,7H){dir180}..{dir270}(2W,3H)..{dir0}(5W,0H)..{dir90}(7W,2H)
+ ..{dir180}(6W,3H)..{dir270}(4.5W,2H)..{dir315}(7W,-1.5H);
+ bedraw (0W,7H)--(8W,7H){dir0}..{dir315}(10W,6H);
+ bedraw (0W,12H)--(10.5W,12H);
+endchar;
+beginchar(hex"BC",8/12wd#,.5penht#+ht#,.5penht#); "alt-j~na";
+ bedraw (1W,7H){dir0}..(5W,3.5H)..{dir180}(2W,0H)..(0W,1H)..{dir0}(1W,2H)
+ ..{dir315}(3W,1H)--(6W,-2H);
+ bedraw (0W,7H)--(6W,7H){dir0}..{dir315}(8W,6H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar(hex"BD",14/12wd#,ht#+.5penht#,.5penht#) "alt-jha";
+ bedraw (0W,12H)--(3W,12H)--(3W,5H){dir270}..{dir90}(0W,5H)..{dir0}(1W,6H)
+ --(12W,6H){dir0}..(13.5W,3H)..(12.5W,1H);
+ bedraw (7W,12H)--(14.5W,12H);
+ bedraw (10W,12H)--(10W,0H);
+endchar;
+beginchar(hex"BE",9/12wd#,.5penht#+ht#,.5penht#); "alt-.na";
+ bedraw (3W,12H)--(3W,7H)..{dir135}(1W,6H);
+ mdraw (1W,6H){dir 315}..{dir90}(2W,6H)..{dir105}(1W,8.2H)
+ ..{dir315}(0W,7H)..cycle;
+ bedraw (1W,6H)--(7.5W,-.5H);
+ bedraw (6W,12H)--(6W,3H);
+ bedraw (0W,12H)--(9.5W,12H);
+endchar;
+beginchar(hex"BF",8/12wd#,.5penht#+ht#,.5penht#); "alt-th";
+ mdraw (1W,8H){dir145}..{dir0}(0.5W,11H)..(3W,8H)..(0W,6H);
+ edraw (0W,6H){dir315}..{dir0}(4W,4H)..{dir45}(8W,6H);
+ bedraw (0W,12H)--(8.5W,12H);
+endchar;
+beginchar(hex"C0",12/12wd#,.5penht#+ht#,0/12ht#+.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"C1",0/12wd#,.5penht#+ht#,.5penht#); "12-vert";
+ bedraw (0W,12H)--(0W,0H);
+endchar;
+beginchar(hex"C2",8/12wd#,.5penht#+4/12ht#,.5penht#+2/12ht#); "mini-bha";
+ bdraw (0W,4H){dir0}..{dir270}(3W,-1H)..{dir90}(0W,-1H)
+ ..{dir0}(1W,0H)--(8W,0H);
+endchar;
+beginchar(hex"C3",8/12wd#,.5penht#+4/12ht#,5/12ht#+.5penht#); "mini-cha";
+ bedraw (3W,1H)..(2.5W,1H)..{dir270}(0W,-0.5H)..{dir0}(3W,-2H);
+ bedraw (2.5W,-2H){dir180}..{dir270}(0W,-3.5H)..{dir0}(4W,-5H)..(7.5W,1H)
+ ..(7W,1.5H)..(6W,1H)..{dir315}(8W,-5H-.5penht);
+ mdraw (7W,1.5H)--(7W,4H);
+endchar;
+beginchar(hex"C4",8/12wd#,.5penht#+4/12ht#,3/12ht#+.5penht#); "mini-dha";
+ bdraw (-2W,4H)--(-2W,2H){dir270}..{dir0}(1W,0H);
+ bdraw (3W,1H){dir180}..(1W,0H)..{dir0}(3W,-2.5H)..(8W,0H);
+endchar;
+beginchar(hex"C5",0/12wd#,.5penht#+4/12ht#,3/12ht#+.5penht#); "7-vert";
+ bedraw (0W,4H)--(0W,-3H);
+endchar;
+beginchar(hex"C6",8/12wd#,.5penht#+4/12ht#,.5penht#+4/12ht#); "mini-.tha";
+ mdraw (5W,4H)--(5W,1H)--(4W,1H){dir180}..
+ (0W,-2H)..{dir0}(4W,-4H)..(8W,-2H)..{dir180}(5W,1H);
+endchar;
+beginchar(hex"C7",8/12wd#,.5penht#+4/12ht#,3/12ht#+.5penht#); "mini-gha";
+ mdraw (0W,4H){dir200}..{dir270}(-2W,2H)..{dir0}(1W,0H);
+ bdraw (3W,1H){dir180}..(1W,0H)..{dir0}(3W,-2.5H)..(8W,0H);
+endchar;
+beginchar(hex"C8",8/12wd#,.5penht#+4/12ht#,.5penht#+3/12ht#); "mini-gha-2";
+ mdraw (1W,5H){dir225}..{dir270}(0W,3.5H)..{dir315}(2.5W,0.5H);
+ bdraw (4W,1.5H){dir180}..{dir270}(2.5W,0H)..{dir0}(5W,-2.5H)
+ ..{dir90}(8W,0H);
+endchar;
+beginchar(hex"C9",0/12wd#,.5penht#+3/12ht#,0/12ht#+.5penht#); "3-vert";
+ bedraw (0W,3H)--(0W,0H);
+endchar;
+beginchar(hex"CA",9/12wd#,.5penht#+4/12ht#,.5penht#+8/12ht#); "mini-jha";
+ edraw (4W,4H)--(4W,1.5H)--(2W,1.5H)..{dir270}(0.5W,0H)..{dir0}(2.5W,-2H)
+ ..{dir0}(4.5W,-1.25H)..(6W,-1.5H)..{dir180}(3W,-5H)..{dir90}(0.5W,-3.5H)
+ ..{dir315}(1.5W,-3.5H)--(5.5W,-7.5H);
+ mdraw (6.5W,-3H){dir0}..{dir45}(9W,-1H);
+endchar;
+beginchar(hex"CB",9/12wd#,.5penht#+4/12ht#,.5penht#+5/12ht#); "mini-kha";
+ edraw (3W,4H)--(3W,0H){dir270}..{dir135}(1W,-1H);
+ mdraw (1W,-1H){dir 315}..{dir90}(2W,-1H)..{dir135}(1W,1H)
+ ..{dir315}(0W,0H)..cycle;
+ bedraw (1W,-1H)--(2W,-2H){dir315}..{dir0}(7W,-5H);
+ mdraw (5W,0H)..(7W,-2H)..(9W,0H)..(7W,2H)..cycle;
+endchar;
+beginchar(hex"CC",8/12wd#,.5penht#+3/12ht#,4/12ht#+.5penht#); "mini-alt-la";
+ bedraw (8W,0H){dir90}..{dir180}(6W,2H)..(4W,1H)
+ ..{dir315}(4.5W,-1H);
+ bedraw (4W,1H){dir135}..{dir180}(2W,2H)..{dir270}(0W,0H)
+ ..{dir315}(1.5W+0.5penht,-3H-0.5penht);
+endchar;
+beginchar(hex"CD",0/12wd#,.5penht#+3/12ht#,.5penht#+0/12ht#); "bindu";
+ putdot(1W,1H);
+endchar;
+beginchar(hex"CE",3.5/12wd#,.5penht#+4/12ht#,1/12ht#+.5penht#); "mini-.na";
+ mdraw (0W,4H)--(0W,1H){dir270}..{dir0}(1.5W,-1H)..{dir90}(3.5W,1H)--(3.5W,4H);
+endchar;
+beginchar(hex"CF",9/12wd#,.5penht#+4/12ht#,.5penht#+4/12ht#); "mini-alt-.na";
+ edraw (3W,4H)--(3W,1H){dir270}..{dir135}(1W,1H);
+ mdraw (1W,1H){dir 315}..{dir90}(2W,1H)..{dir135}(1W,3H)
+ ..{dir315}(0W,2H)..cycle;
+ bedraw (0W,2H)--(6W,-4H);
+ edraw (6W,4H)--(6W,-2H);
+endchar;
+beginchar(hex"D0",3/12wd#,.5penht#+3/12ht#,3/12ht#+.5penht#); "mini-ka-hook";
+ edraw (0W,0H){dir70}..{dir0}(1.5W,1.5H)..{dir225}(3W,-3H);
+endchar;
+beginchar(hex"D1",7/12wd#,.5penht#+4/12ht#,.5penht#+4/12ht#); "mini-.dha";
+ path q;
+ q = (5W,4H)--(5W,1.5H)--(4W,1.5H){dir180}..{dir270}(0W,-1.5H)..{dir0}(4W,-5H)
+ ..{dir90}(7W,-3H)..{dir180}(5.5W,-1.5H);
+ mdraw q;
+ z2 = q intersectionpoint ((4.5W,-2H)--(4.5W,-6H));
+ bedraw (5.5W,-1.5H){dir180}..{dir315}z2;
+endchar;
+beginchar(hex"D2",0/12wd#,.5penht#+4/12ht#,.5penht#); "alt-mini-post-ra";
+ edraw (0W,4H)--(-5W,0H);
+endchar;
+beginchar(hex"D3",5/12wd#,.5penht#+4/12ht#,2/12ht#+.5penht#); "mini-.sa";
+ path p;
+ p = (0W,4H)--(0W,1H){dir270}..{dir0}(2.5W,-2H)..{dir90}(5W,0H);
+ mdraw p;
+ z1 = p intersectionpoint ((2W,2H)--(6W,-2H));
+ edraw (0W,4H)--z1;
+endchar;
+beginchar(hex"D4",6/12wd#,.5penht#+6/12ht#,.5penht#+2/12ht#); "mini-tha";
+ mdraw (0W,2H){dir135}..(0W,5H)..(2W,3H)..(0W,0H);
+ mdraw (0W,0H)..(3W,-2H)..(6W,0H);
+endchar;
+beginchar(hex"D5",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"D6",4/12wd#,.5penht#+3/12ht#,.5penht#+2/12ht#); "micro-va";
+ mdraw (0W,0H)..(2W,2H)..(4W,0H)..(2W,-2H)..cycle;
+endchar;
+beginchar(hex"D7",6/12wd#,.5penht#+4/12ht#,0/12ht#+.5penht#); "mini-''sa-loop";
+ bdraw (0W,0H){dir0}..(3W,1H)..{dir180}(3W,4H)..(2.5W,1H)..{dir0}(6W,0H);
+endchar;
+beginchar(hex"D8",8/12wd#,.5penht#+4/12ht#,3/12ht#+.5penht#); "mini-alt-k.sa";
+ bedraw (4W,4H){dir180}..(1W,1H)..{dir0}(4W,-1H)..{dir180}(5W,1.5H)
+ ..{dir315}(5W,-1H)--(7W,-3H);
+ bdraw (0W,4H)--(8W,4H);
+endchar;
+beginchar(hex"D9",0/12wd#,.5penht#+6/12ht#,.5penht#); "ya-left";
+ edraw (-1W,5H){dir0}..(1W,3H)..(0W,0H);
+endchar;
+beginchar(hex"DA",8/12wd#,.5penht#+3/12ht#,5/12ht#+.5penht#); "mini-''sa";
+ bdraw (3W,0.5H){dir180}..{dir90}(0W,1.5H)..{dir0}(2W,3H);
+ edraw (2W,3H){dir0}..{dir270}(5W,0H)..{dir180}(2W,-3H)
+ ..{dir90}(0W,-2.5H)..{dir0}(1W,-2H)..{dir315}(5W,-4.5H-.5penht);
+endchar;
+beginchar(hex"DB",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"DC",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"DD",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"DE",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"DF",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"E0",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"E1",1/12wd#,.5penht#+0/12ht#,.5penht#+0/12ht#); "1-horiz";
+ bedraw (0W,0H)--(1W,0H);
+endchar;
+beginchar(hex"E2",0/12wd#,.5penht#+3/12ht#,.5penht#+2/12ht#); "mini-ba";
+ path p; p = (0W,0H)..(3W,2H)..(6W,0H)..(3W,-2H)..cycle;
+ z1 = p intersectionpoint ((3W,0H)--(0W,3H));
+ z2 = p intersectionpoint ((3W,0H)--(6W,-3H));
+ bedraw (1.5W,1.5H)--(4.5W,-1.5H);
+endchar;
+beginchar(hex"E3",9/12wd#,.5penht#+4/12ht#,.5penht#); "mini-ca";
+ bedraw (0W,4H)--(5W,4H);
+ bdraw (4W,4H){dir200}..{dir270}(2W,2H)..{dir0}(5W,0H)..{dir90}(9W,4H);
+endchar;
+beginchar(hex"E4",5/12wd#,.5penht#+4/12ht#,5/12ht#+.5penht#); "micro-da";
+ edraw (4W,4H)--(4W,1.5H)--(3W,1.5H){dir180}..{dir270}(0W,-0.5H)
+ ..{dir0}(3W,-3H)
+ ..{dir90}(4.5W,-1.75H)..(3.75W,-1H)..{dir270}(3W,-1.75H)..{dir315}(4W,-3H)
+ --(5.25W+.5penht,-4.75H-.5penht);
+endchar;
+beginchar(hex"E5",2/12wd#,.5penht#+0/12ht#,.5penht#+0/12ht#); "2-horiz";
+ bedraw (0W,0H)--(2.5W,0H);
+endchar;
+beginchar(hex"E6",8/12wd#,.5penht#+4/12ht#,.5penht#+4/12ht#); "mini-.ta";
+ edraw (5W,4H)--(5W,1H)--(4W,1H){dir180}..
+ (0W,-2H)..{dir0}(4W,-4H)..{dir70}(8W,-2H);
+endchar;
+beginchar(hex"E7",6/12wd#,.5penht#+4/12ht#,.5penht#+2/12ht#); "mini-ga";
+ edraw (3W,4H)--(3W,-1H){dir270}..{dir135}(1W,-1H);
+ mdraw (1W,-1H){dir 315}..{dir90}(2W,-1H)..{dir135}(1W,1H)
+ ..{dir315}(0W,0H)..cycle;
+endchar;
+beginchar(hex"E8",5/12wd#,.5penht#+4/12ht#,.5penht#+7/12ht#); "mini-ha";
+ edraw (3.5W,4H)--(3.5W,1.5H)--(2W,1.5H){dir180}..{dir270}(0W,0.5H)
+ ..(1W,-1.5H);
+ bedraw (4W,-3H)..(4.5W,-2H)..{dir190}(1.5W,-1.25H)..{dir270}(0W,-2.5H)
+ ..{dir315}(3.5W,-6H)--(4.5W,-7H);
+endchar;
+beginchar(hex"E9",3/12wd#,.5penht#+0/12ht#,.5penht#+0/12ht#); "3-horiz";
+ bedraw (0W,0H)--(3.5W,0H);
+endchar;
+beginchar(hex"EA",9/12wd#,.5penht#+4/12ht#,0/12ht#+.5penht#); "mini-ja";
+ bedraw (4W,4H)..(6W,2H)..{dir180}(4W,0H)..{dir135}(0W,4H);
+ bdraw (3W,4H)--(9W,4H);
+endchar;
+beginchar(hex"EB",6/12wd#,.5penht#+3/12ht#,.5penht#+2/12ht#); "mini-ka";
+ mdraw (0W,0H)..(3W,2H)..(6W,0H)..(3W,-2H)..cycle;
+endchar;
+beginchar(hex"EC",8/12wd#,.5penht#+4/12ht#,4/12ht#+.5penht#); "mini-la";
+ bedraw (7W,-3H)..{dir90}(8W,0H)..{dir180}(6W,2H)..(4W,1H)
+ ..{dir315}(4.5W,-1H);
+ bedraw (4W,1H){dir135}..{dir180}(2W,2H)..{dir270}(0W,0H)
+ ..{dir315}(1.5W+0.5penht,-3H-0.5penht);
+ edraw (6W,4H)--(6W,2H);
+endchar;
+beginchar(hex"ED",8/12wd#,.5penht#+4/12ht#,.5penht#+3/12ht#); "mini-ma";
+ mdraw (3W,4H)--(3W,-1H){dir270}..{dir90}(0W,-1H)..{dir0}(1W,0H)--(8W,0H);
+endchar;
+beginchar(hex"EE",6/12wd#,.5penht#+0/12ht#,.5penht#+2/12ht#); "mini-na";
+ bdraw (3W,-1H){dir270}..{dir90}(0W,-1H)..{dir0}(1W,0H);
+ mdraw (1W,0H)--(6W,0H);
+endchar;
+beginchar(hex"EF",7/12wd#,.5penht#+0/12ht#,.5penht#+0/12ht#); "7-horiz";
+ bedraw (0W,0H)--(7.5W,0H);
+endchar;
+beginchar(hex"F0",5/12wd#,.5penht#+4/12ht#,2/12ht#+.5penht#); "mini-pa";
+ mdraw (0W,4H)--(0W,1H){dir270}..{dir0}(2.5W,-2H)..{dir90}(5W,0H);
+endchar;
+beginchar(hex"F1",8/12wd#,.5penht#+4/12ht#,.5penht#+5/12ht#); "mini-.da";
+ edraw (6W,4H)--(6W,1.5H)--(3W,1.5H)..{dir270}(1W,-0.5H)..{dir0}(3W,-2H)
+ ..{dir0}(6.5W,-1.25H)..(8W,-3H)..{dir180}(4W,-5H)..{dir135}(0W,-3H);
+endchar;
+beginchar(hex"F2",0/12wd#,.5penht#+4/12ht#,.5penht#); "basic post-ra";
+ edraw (0W,4H)--(-4W,0H);
+endchar;
+beginchar(hex"F3",6/12wd#,.5penht#+4/12ht#,.5penht#+4/12ht#); "mini-sa";
+ edraw (3W,4H)--(3W,0H){dir270}..{dir135}(1W,0H);
+ mdraw (1W,0H){dir 315}..{dir90}(2W,0H)..{dir135}(1W,2H)
+ ..{dir315}(0W,1H)..cycle;
+ bedraw (0W,1H)--(5W,-4H);
+ mdraw (3W,0H)--(6W,0H);
+endchar;
+beginchar(hex"F4",4/12wd#,.5penht#+4/12ht#,.5penht#+1/12ht#); "mini-ta";
+ edraw (4W,4H)--(2W,4H){dir180}..{dir270}(0W,2.5H)..{dir315}(2W,-1H);
+endchar;
+beginchar(hex"F5",5/12wd#,.5penht#+3/12ht#,.5penht#+3/12ht#); "midi-va";
+ mdraw (0W,0H)..(5W,0H)..cycle;
+endchar;
+beginchar(hex"F6",5/12wd#,.5penht#+3/12ht#,.5penht#+2/12ht#); "mini-va";
+ mdraw (0W,0H)..(2.5W,2H)..(5W,0H)..(2.5W,-2H)..cycle;
+endchar;
+beginchar(hex"F7",5/12wd#,.5penht#+3/12ht#,0/12ht#+.5penht#); "mini-ka-join-hook1";
+ edraw (0W,0H){dir60}..{dir0}(2.5W,1.4H)..{dir315}(5W,0H);
+endchar;
+beginchar(hex"F8",6/12wd#,.5penht#+4/12ht#,.5penht#+6/12ht#); "mini-k.sa";
+ edraw (6W,0H){dir180}..(1.5W,3H)..{dir0}(3W,4H)..(4W,3H)
+ ..{dir270}(0W,-2H)
+ ..{dir0}(3W,-4H)..{dir180}(4W,-1.5H)..{dir315}(4W,-4H)--(6W,-6H);
+endchar;
+beginchar(hex"F9",6/12wd#,.5penht#+0/12ht#,.5penht#+2/12ht#); "ya-bottom";
+ mdraw (0W,0H){dir315}..(3W,-2H)..(6W,0H);
+endchar;
+beginchar(hex"FA",8/12wd#,.5penht#+3/12ht#,.5penht#+2/12ht#); "mini-~na";
+ bedraw (0W,1H)..(2W,2H)..{dir270}(4W,0H)..(2W,-2H)..(0W,-1H);
+ bdraw (4W,0H)--(8W,0H);
+endchar;
+beginchar(hex"FB",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"FC",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"FD",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"FE",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+beginchar(hex"FF",12/12wd#,.5penht#+ht#,.5penht#); "empty";
+ empty;
+endchar;
+\endinput
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/sktdefs.mf b/Master/texmf-dist/fonts/source/public/sanskrit/sktdefs.mf
new file mode 100644
index 00000000000..e7f405d8bc0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/sktdefs.mf
@@ -0,0 +1,195 @@
+%
+% SKTDEFS.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.1 1997/02/11 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+% Make pen adjustments here.
+%
+ thin_weight := 2; % factor to increase thin pen stroke
+ penwd# := cap#/pen_scale; % width of horizontal or vertical pen stroke
+ penht# := penwd#; % ht = wd, at this stage anyway!
+ thin# := (penwd#/6.5cosd(45))*thin_weight; % pen stroke width at 135-deg
+ thick# := (pen_ratio*6.25thin#)/thin_weight; % pen stroke width at 45-deg
+%
+ ht# := cap#; % character height at horizontal line
+ wd# := charwd_scale*ht#; % character width - nominal reference
+%
+
+define_pixels(penwd,penht,wd);
+define_whole_pixels(ht);
+define_blacker_pixels(thin,thick);
+smoothing := 0;
+
+font_slant := slant;
+font_quad wd#; % specifies width of `em'
+font_x_height cap#; % specifies height of `ex'
+font_normal_space := .75wd#; % inter-word spacing
+font_normal_stretch := .5wd#; % glue for inter-word spacing
+font_normal_shrink := .2wd#; % glue for inter-word spacing
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% P E N D E F I N I T I O N S %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+clear_pen_memory;
+
+pickup pencircle xscaled thick yscaled thin rotated (pen_rot);
+ main_pen := savepen;
+
+if unknown squarepen :
+ capsule_def (squarepen) makepen (unitsquare shifted (-.5,-.5)
+ scaled thick rotated 135);
+fi
+
+if unknown penoffsquare :
+ capsule_def (penoffsquare) makepen (unitsquare shifted (0,-.5));
+fi
+
+pickup penoffsquare xscaled (.8thick) yscaled (1.4thin) rotated pen_rot;
+ mpen135 := savepen;
+
+pickup penoffsquare xscaled (.8thick) yscaled (1.4thin) rotated (pen_rot-180);
+ mpen315 := savepen;
+
+pickup penoffsquare xscaled (.8thin) yscaled (1.4thick) rotated (pen_rot+90);
+ mpen225 := savepen;
+
+pickup penoffsquare xscaled (.8thin) yscaled (1.4thick) rotated (pen_rot-90);
+ mpen45 := savepen;
+
+pickup pencircle xscaled .667thick yscaled thin rotated (pen_rot);
+ sub_pen := savepen;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% M A C R O S %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def mdraw expr p =
+ pickup main_pen;
+ draw p;
+ cullit
+enddef;
+
+def bedraw expr p =
+ picture savedpicture; savedpicture = currentpicture; clearit;
+ pickup main_pen;
+ draw p;
+ cullit;
+ trim (point 0 of p, 180+angle direction 0 of p);
+ trim (point infinity of p, angle direction infinity of p);
+ cullit;
+ addto currentpicture also savedpicture
+enddef;
+
+def bdraw expr p =
+ picture savedpicture; savedpicture = currentpicture; clearit;
+ pickup main_pen;
+ draw p;
+ cullit;
+ trim (point 0 of p, 180+angle direction 0 of p);
+ cullit;
+ addto currentpicture also savedpicture
+enddef;
+
+def edraw expr p =
+ picture savedpicture; savedpicture = currentpicture; clearit;
+ pickup main_pen;
+ draw p;
+ cullit;
+ trim (point infinity of p, angle direction infinity of p);
+ cullit;
+ addto currentpicture also savedpicture
+enddef;
+
+vardef trim (expr z, theta) =
+ if (theta <= 0) : alpha := (theta + 360) ;
+ else : alpha := theta;
+ fi
+ if ((alpha < 120) or (alpha > 330)) : pickup mpen45;
+ elseif ((alpha >= 120) and (alpha <= 150)) : pickup mpen135;
+ elseif ((alpha >= 300) and (alpha <= 330)) : pickup mpen315;
+ else : pickup mpen225;
+ fi
+ undrawdot z;
+enddef;
+
+def vector (expr z, length, theta) =
+ z--z shifted (length * cosd theta, length * sind theta)
+enddef;
+
+def putdot expr z =
+ pickup squarepen; drawdot z;
+enddef;
+
+def empty =
+ pickup pencircle;
+ draw (12W,0)--(12W,12H)--(0,0)--(12W,0)--(0,12H)--(12W,12H);
+ draw (0,0)--(0,12H);
+enddef;
+
+% sdraw = mdraw with sub-pen
+def sdraw expr p =
+ pickup sub_pen;
+ draw p;
+ cullit
+enddef;
+
+% sbdraw = bdraw with subpen
+def sbdraw expr p =
+ picture savedpicture; savedpicture = currentpicture; clearit;
+ pickup sub_pen;
+ draw p;
+ cullit;
+ trim (point 0 of p, 180+angle direction 0 of p);
+ cullit;
+ addto currentpicture also savedpicture
+enddef;
+
+% sedraw = edraw with subpen
+def sedraw expr p =
+ picture savedpicture; savedpicture = currentpicture; clearit;
+ pickup sub_pen;
+ draw p;
+ cullit;
+ trim (point infinity of p, angle direction infinity of p);
+ cullit;
+ addto currentpicture also savedpicture
+enddef;
+
+% sbedraw = bedraw with subpen
+def sbedraw expr p =
+ picture savedpicture; savedpicture = currentpicture; clearit;
+ pickup sub_pen;
+ draw p;
+ cullit;
+ trim (point 0 of p, 180+angle direction 0 of p);
+ trim (point infinity of p, angle direction infinity of p);
+ cullit;
+ addto currentpicture also savedpicture
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% M A G I C N U M B E R S %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def H := ht/12 enddef;
+def W := H enddef; % used to be wd/12, but because angles used in
+ % defining pen movements would also need to change
+ % with aspect ratio, it is simpler to work with a
+ % fixed grid and then use TRANSFORMATION to scale
+ % the x-axis.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% F I N I S %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+currenttransform:=identity xscaled (wd#/ht#) slanted slant;
+
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/sktf10.mf b/Master/texmf-dist/fonts/source/public/sanskrit/sktf10.mf
new file mode 100644
index 00000000000..20b5b822a39
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/sktf10.mf
@@ -0,0 +1,33 @@
+%
+% SKTF10.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+mode_setup;
+design_size := 2.032;
+cap# := design_size*1mm#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+ font_size 10pt#;
+ font_identifier := "SKTF10";
+ slant := 0;
+ pen_scale := 10;
+ pen_ratio := 1;
+ pen_rot := 135;
+ charwd_scale := .91;
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input sktdefs;
+input sktchars;
+input sktligs;
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/sktfs10.mf b/Master/texmf-dist/fonts/source/public/sanskrit/sktfs10.mf
new file mode 100644
index 00000000000..137423fa2c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/sktfs10.mf
@@ -0,0 +1,33 @@
+%
+% SKTFS10.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+mode_setup;
+design_size := 2.032;
+cap# := design_size*1mm#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+ font_size 10pt#;
+ font_identifier := "SKTFS10";
+ slant := 1/5;
+ pen_scale := 10;
+ pen_ratio := 1;
+ pen_rot := 135;
+ charwd_scale := .91;
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input sktdefs;
+input sktchars;
+input sktligs;
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/sktligs.mf b/Master/texmf-dist/fonts/source/public/sanskrit/sktligs.mf
new file mode 100644
index 00000000000..da0e264a03e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/sktligs.mf
@@ -0,0 +1,158 @@
+%
+% SKTLIGS.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.1 1997/02/11 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+ligtable "i" : "0" =: hex"00",
+ "3" =: hex"01",
+ "4" =: hex"02",
+ "5" =: hex"03",
+ "6" =: hex"04",
+ "7" =: hex"05",
+ "8" =: hex"06",
+ "9" =: hex"07";
+ligtable "Y" : "0" =: hex"08",
+ "1" =: hex"09",
+ "2" =: hex"0A",
+ "3" =: hex"0B",
+ "4" =: hex"0C",
+ "5" =: hex"0D",
+ "6" =: hex"0E",
+ "7" =: hex"0F";
+ligtable "`" : "0" =: hex"10",
+ "1" =: hex"11",
+ "2" =: hex"12",
+ "3" =: hex"13",
+ "4" =: hex"14",
+ "5" =: hex"15",
+ "6" =: hex"16",
+ "7" =: hex"17",
+ "8" =: hex"21",
+ "o" =: hex"18",
+ "x" =: hex"19",
+ "X" =: hex"1A",
+ "w" =: hex"1B",
+ "W" =: hex"1C",
+ ">" =: hex"1F",
+ "!" =: hex"9C",
+ "s" =: hex"9D",
+ "u" =: hex"9E",
+ "z" =: hex"9F",
+ "r" =: hex"B3",
+ "R" =: hex"B7",
+ "A" =: hex"BA",
+ "[" =: hex"BB",
+ "]" =: hex"BC",
+ "J" =: hex"BD",
+ "T" =: hex"BF",
+ "N" =: hex"BE";
+ligtable "k" : "1" =: hex"23",
+ "2" =: hex"80",
+ "3" =: hex"81",
+ "4" =: hex"82";
+ligtable "c" : "1" =: hex"83";
+ligtable "C" : "1" =: hex"84";
+ligtable "j" : "1" =: hex"24",
+ "2" =: hex"85";
+ligtable "t" : "1" =: hex"86",
+ "2" =: hex"87",
+ "3" =: hex"88",
+ "4" =: hex"90";
+ligtable "d" : "1" =: hex"89",
+ "2" =: hex"91";
+ligtable "n" : "1" =: hex"8A";
+ligtable "p" : "1" =: hex"8B";
+ligtable "P" : "1" =: hex"25";
+ligtable "m" : "1" =: hex"7D",
+ "2" =: hex"92";
+ligtable "y" : "1" =: hex"93",
+ "2" =: hex"94",
+ "3" =: hex"95";
+ligtable "r" : "1" =: hex"22",
+ "2" =: hex"27",
+ "4" =: hex"7B",
+ "8" =: hex"1D",
+ "9" =: hex"1E";
+ligtable "R" : "1" =: hex"5F",
+ "2" =: hex"20";
+ligtable "l" : "1" =: hex"7F",
+ "2" =: hex"8C";
+ligtable "S" : "1" =: hex"8D",
+ "2" =: hex"8E";
+ligtable "s" : "1" =: hex"7E";
+ligtable "h" : "1" =: hex"26",
+ "2" =: hex"8F",
+ "3" =: hex"96",
+ "4" =: hex"97",
+ "5" =: hex"98";
+ligtable "H" : "1" =: hex"5E";
+ligtable "L" : "1" =: hex"5C",
+ "2" =: hex"7C";
+ligtable "@" : "0" =: hex"B0",
+ "1" =: hex"B1",
+ "2" =: hex"B2",
+ "4" =: hex"B4",
+ "5" =: hex"B5",
+ "6" =: hex"B6",
+ "8" =: hex"B8",
+ "9" =: hex"B9",
+ "A" =: hex"C1",
+ "B" =: hex"C2",
+ "C" =: hex"C3",
+ "D" =: hex"C4",
+ "E" =: hex"C5",
+ "F" =: hex"C6",
+ "G" =: hex"C7",
+ "H" =: hex"C8",
+ "I" =: hex"C9",
+ "J" =: hex"CA",
+ "K" =: hex"CB",
+ "L" =: hex"CC",
+ "M" =: hex"CD",
+ "N" =: hex"CE",
+ "O" =: hex"CF",
+ "P" =: hex"D0",
+ "Q" =: hex"D1",
+ "R" =: hex"D2",
+ "S" =: hex"D3",
+ "T" =: hex"D4",
+ "U" =: hex"D5",
+ "V" =: hex"D6",
+ "W" =: hex"D7",
+ "X" =: hex"D8",
+ "Y" =: hex"D9",
+ "Z" =: hex"DA",
+ "a" =: hex"E1",
+ "b" =: hex"E2",
+ "c" =: hex"E3",
+ "d" =: hex"E4",
+ "e" =: hex"E5",
+ "f" =: hex"E6",
+ "g" =: hex"E7",
+ "h" =: hex"E8",
+ "i" =: hex"E9",
+ "j" =: hex"EA",
+ "k" =: hex"EB",
+ "l" =: hex"EC",
+ "m" =: hex"ED",
+ "n" =: hex"EE",
+ "o" =: hex"EF",
+ "p" =: hex"F0",
+ "q" =: hex"F1",
+ "r" =: hex"F2",
+ "s" =: hex"F3",
+ "t" =: hex"F4",
+ "u" =: hex"F5",
+ "v" =: hex"F6",
+ "w" =: hex"F7",
+ "x" =: hex"F8",
+ "y" =: hex"F9",
+ "z" =: hex"FA";
diff --git a/Master/texmf-dist/fonts/source/public/sanskrit/skts10.mf b/Master/texmf-dist/fonts/source/public/sanskrit/skts10.mf
new file mode 100644
index 00000000000..c7e8e7dfc7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sanskrit/skts10.mf
@@ -0,0 +1,33 @@
+%
+% SKTS10.MF
+%
+% Revision 1.0 1996/02/13 Charles Wikner wikner@nacdh4.nac.ac.za
+% Revision 2.0 1996/11/27 Charles Wikner wikner@nacdh4.nac.ac.za
+%
+% Copyright 1996 & 2002 Charles Wikner
+% This program can be redistributed and/or modified under the terms
+% of the LaTeX Project Public License Distributed from CTAN
+% archives in directory macros/latex/base/lppl.txt; either
+% version 1 of the License, or any later version.
+%
+mode_setup;
+design_size := 2.032;
+cap# := design_size*1mm#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+ font_size 10pt#;
+ font_identifier := "SKTS10";
+ slant := 1/5;
+ pen_scale := 7.6;
+ pen_ratio := 1;
+ pen_rot := 135;
+ charwd_scale := 1;
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+input sktdefs;
+input sktchars;
+input sktligs;
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmb.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmb.mf
new file mode 100644
index 00000000000..9f116e3798d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmb.mf
@@ -0,0 +1,27 @@
+% Computer Modern Bold Roman
+% Changes[Sauter-2.2] formula for u# matches cmr value;
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMB"; font_size design_size * pt#;
+
+% This font is a modification of Computer Modern Bold Extended.
+
+input c-cmbx;
+
+%u#:=(20*(design_size/10))/36pt#; % unit width
+u#:= % unit width, the same as for cmr fonts.
+ (if design_size < 10: ((design_size*15)+50)
+%elseif design_size < 12: ((design_size*17.5)+25)
+ else: (-(0.062437562437*design_size*design_size) +
+ (18.8736263736*design_size) +
+ (17.5074925074))fi)/360pt#;
+
+width_adj#:=(10*(design_size/10))/36pt#;
+ % width adjustment for certain characters
+cap_serif_fit#:=(6*(design_size/10))/36pt#;
+ % extra sidebar near uppercase serifs
+
+cap_jut#:=(34*(design_size/10))/36pt#; % protrusion of uppercase serifs
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmbsy.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmbsy.mf
new file mode 100644
index 00000000000..e5e83c9ac24
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmbsy.mf
@@ -0,0 +1,20 @@
+% Computer Modern Bold Symbols
+% This font combines CMBX and CMSY, with some modifications.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier := "CMBSY";
+font_size design_size * pt#;
+
+input c-cmbx;
+input c-bmath;
+
+subs:= % subscript point size
+ (if design_size < 8: (50/(design_size*10))
+ elseif design_size < 10: (60/(design_size*10))
+ elseif design_size < 12: (70/(design_size*10))
+ else: (((design_size*10)-30)/(design_size*10))fi);
+
+input c-sigma;
+
+generate mathsy
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmbx.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmbx.mf
new file mode 100644
index 00000000000..a0a53a4695b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmbx.mf
@@ -0,0 +1,9 @@
+% Computer Modern Bold Extended Roman
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBX"; font_size design_size * pt#;
+
+input c-cmbx;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmbxsl.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmbxsl.mf
new file mode 100644
index 00000000000..3c2f6c105ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmbxsl.mf
@@ -0,0 +1,14 @@
+% Computer Modern Bold Extended Slanted Roman
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBXSL"; font_size design_size * pt#;
+
+% This font is a minor modification of Computer Modern Bold Extended
+
+input c-cmbx;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 1/6;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmbxti.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmbxti.mf
new file mode 100644
index 00000000000..619f520fe4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmbxti.mf
@@ -0,0 +1,68 @@
+% Computer Modern Bold Extended Text Italic
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMBXTI"; font_size design_size * pt#;
+
+% This font is a modification of Computer Modern Bold Extended.
+
+input c-cmbx;
+
+u#:= % unit width
+ ((u#*360pt#) - (design_size * 1.8))/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 11))/360pt#;
+
+crisp#:= % diameter of serif corners
+ ((crisp#*360pt#) + (design_size * 13))/360pt#;
+
+hair#:= % lowercase hairline breadth
+ ((hair#*360pt#) + (design_size * 3))/360pt#;
+
+stem#:= % lowercase stem breadth
+ ((stem#*360pt#) - (design_size * 3))/360pt#;
+
+curve#:= % lowercase curve breadth
+ ((curve#*360pt#) - (design_size * 3))/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ ((ess#*360pt#) - (design_size * 3))/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ ((flare#*360pt#) - (design_size * 3))/360pt#;
+
+dot_size#:= % diameter of dots
+ ((dot_size#*360pt#) - (design_size * 3))/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ ((cap_hair#*360pt#) + (design_size * 3))/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ ((cap_stem#*360pt#) - (design_size * 2))/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ ((cap_curve#*360pt#) - (design_size * 3))/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ ((cap_ess#*360pt#) - (design_size * 3) - 0.001)/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ ((jut#*360pt#) + (design_size * 2))/360pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ ((beak_jut#*360pt#) - (design_size * 1) - 0.00032)/360pt#;
+
+o#:= % amount of overshoot for curves
+ ((o#*360pt#) + (design_size * 2))/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ ((apex_o#*360pt#) + (design_size * 3) + 0.00091)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+generate textit % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmcsc.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmcsc.mf
new file mode 100644
index 00000000000..4fdc9526fb2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmcsc.mf
@@ -0,0 +1,224 @@
+% Computer Modern Roman Caps and Small Caps
+% Completely rebuildt for Sauter-2.3 version.
+% Now truely supports the ams extracm fonts cmcsc8 and cmcsc9.
+% Sauter-2.3b: Bugs for design_sizes \ge 10 fixed
+% Changes[Sauter-2.4] Bug in lower.comma_depth for design_sizes \ge 10 fixed;
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMCSC"; font_size design_size * pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+% These parameters are nearly the same as the Computer Modern Roman
+% parameters.
+
+input c-cmr;
+
+% cmcsc8 is 18, cmcsc9 is 19, cmcsc10 is 21.
+u#:= % unit width
+ (if design_size < 9:
+ (u#*36 - 0.5*design_size + 5)
+ elseif design_size < 10:
+ (u#*36 + 0.5*(design_size - 8))
+ else:
+ ((u#*36) + (design_size/10))
+ fi) / 36*pt#;
+
+% cmcsc8 is 2.5, cmcsc9 is 3.5, cmcsc10 is 5.
+letter_fit#:= % extra space added to all sidebars
+ (if design_size < 8:
+ (letter_fit# * 36 + 2.5)
+ elseif design_size < 9:
+ ((design_size - 8) + 2.5)
+ elseif design_size < 10:
+ (1.5 * design_size -10)
+ else:
+ ((letter_fit#*36) + (design_size *0.5))
+ fi) / 36*pt#;
+
+ligs:=1; % level of ligatures to be included
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:= % unit width
+ (if design_size < 10:
+ (1.5*design_size + 1)
+ else:
+ (u#*36*16/21)
+ fi) / 36*pt#;
+
+lower.width_adj#:= % width adjustment for certain characters
+ width_adj#;
+
+% cmsc8 is 2.7, cmcsc9 is 3.4, cmsc10 is 4.
+lower.cap_serif_fit#:= % extra sidebar near uppercase serifs
+ (if design_size < 9:
+ ((design_size - 8) * 0.7 + 2.7)
+ elseif design_size < 10:
+ (0.6*design_size -2)
+ else:
+ (cap_serif_fit# * 36 * 4)/5
+ fi) / 36*pt#;
+
+% cmsc8 is 4, cmcsc9 is 3.5, cmsc10 is 2.4.
+lower.letter_fit#:= % extra space added to all sidebars
+ (if design_size <= 9:
+ ( -(design_size - 8)/2 + 4)
+ elseif design_size < 10:
+ (-1.1*design_size + 13.4)
+ else:
+ (letter_fit# * 36 * 12) / 25
+ fi) / 36*pt#;
+
+
+lower.body_height#:= % height of tallest characters
+ (if design_size < 10:
+ (27*design_size -70)
+ else:
+ (body_height#*36*20/27)
+ fi) /36*pt#;
+
+% cmsc8 is 145.8, cmcsc9 is 170.4, cmsc10 is 185.
+lower.cap_height#:= % height of caps
+ (if design_size < 9:
+ (24.6*design_size - 51)
+ elseif design_size < 10:
+ (14.6*design_size + 39)
+ else:
+ ((cap_height#*36*18.5)/24.6)
+ fi) / 36*pt#;
+
+lower.x_height#:= % height of lowercase without ascenders
+ if design_size < 10:
+ (15.5*design_size - 39)/36pt#;
+ else:
+ (x_height#*116)/(155);
+ fi;
+
+lower.bar_height#:= % height of crossbar in lowercase e
+ (if design_size < 10:
+ (8.7*design_size - 22)
+ else:
+ (bar_height#*36*65)/87
+ fi) / 36*pt#;
+
+% cmsc8 is 38, cmcsc9 is 45, cmsc10 is 52.
+lower.comma_depth#:= % depth of comma below baseline
+ (if design_size < 10:
+ ((design_size - 8) * 7 + 38)
+ else:
+ (comma_depth#*36*52)/70
+ fi) / 36*pt#;
+
+lower.flare#:= % diameter of bulbs or breadth of terminals
+ (if design_size < 9:
+ (2*design_size + 4)
+ elseif design_size < 10:
+ (3*design_size -5)
+ else:
+ (flare#*36*25)/33
+ fi) / 36*pt#;
+
+lower.cap_hair#:= % uppercase hairline breadth
+ (if design_size < 10:
+ (0.5*design_size + 4.1)
+ else:
+ (cap_hair#*36*91)/110
+ fi) / 36*pt#;
+
+lower.stem#:= % lowercase stem breadth
+ (if design_size < 10:
+ (2*design_size + 1)
+ else:
+ (stem#*36*21)/25
+ fi) / 36*pt#;
+
+% cmcsc8 is 21, cmcsc9 is 23.5, cmcsc10 is 26.
+lower.cap_stem#:= % uppercase stem breadth
+ (if design_size < 10:
+ (2.5*design_size + 1)
+ else:
+ (cap_stem#*36*13)/16
+ fi) / 36*pt#;
+
+lower.cap_curve#:= % uppercase curve breadth
+ (if design_size < 10:
+ (3*design_size + 1)
+ else:
+ (cap_curve#*36*31)/37
+ fi) / 36*pt#;
+
+lower.cap_ess#:= % breadth in middle of uppercase s
+ (if design_size < 10:
+ (4*design_size -12)
+ else:
+ (cap_ess#*36*4)/5
+ fi) / 36*pt#;
+
+lower.cap_jut#:= % protrusion of uppercase serifs
+ (if design_size < 10:
+ (3*design_size - 4)
+ else:
+ (cap_jut#*36*26)/37
+ fi) / 36*pt#;
+
+lower.beak_jut#:= % horizontal protrusion of beak serifs
+ (if design_size < 10:
+ (0.8*design_size - 1)
+ else:
+ (beak_jut#*36*7)/10
+ fi) / 36*pt#;
+
+lower.beak#:= % vertical protrusion of beak serifs
+ (if design_size < 10:
+ (7*design_size - 18)
+ else:
+ (beak#*36*52)/70
+ fi) / 36*pt#;
+
+lower.slab#:= % serif and arm thickness
+ (if design_size < 10:
+ (0.5*design_size + 4.1)
+ else:
+ (slab#*36*91)/110
+ fi) / 36*pt#;
+
+lower.cap_bar#:= % uppercase bar thickness
+ (if design_size < 10:
+ (0.5*design_size + 4.1)
+ else:
+ (cap_bar#*36*91)/110
+ fi) / 36*pt#;
+
+lower.cap_band#:= % uppercase thickness above/below lobes
+ (if design_size < 10:
+ (0.5*design_size + 4.1)
+ else:
+ (cap_band#*36*91)/110
+ fi) / 36*pt#;
+
+lower.cap_notch_cut#:= % max breadth above/below uppercase notches
+ cap_notch_cut#;
+
+lower.o#:= % amount of overshoot for curves
+ (if design_size < 10:
+ 0.5*design_size
+ else:
+ (o#*36*5)/8
+ fi) / 36*pt#;
+
+lower.apex_o#:= % amount of overshoot for diagonal junctions
+ (if design_size < 9:
+ 3
+ elseif design_size < 10:
+ (design_size -6)
+ else:
+ (apex_o#*36*0.5)
+ fi) / 36*pt#;
+
+lower.fudge:= % factor applied to weights of heavy characters
+ fudge;
+
+generate csc % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmdunh.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmdunh.mf
new file mode 100644
index 00000000000..8aa0fb798ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmdunh.mf
@@ -0,0 +1,23 @@
+% Computer Modern Dunhill Roman
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMDUNH"; font_size design_size * pt#;
+
+% This font is a simple modification of Computer Modern Roman.
+
+input c-cmr;
+
+body_height#:= % height of tallest characters
+ ((body_height#*360pt#) + (design_size*100))/360pt#;
+
+asc_height#:= % height of lowercase ascenders
+ ((asc_height#*360pt#) + (design_size*100) + 0.0003)/360pt#;
+
+cap_height#:= % height of caps
+ ((cap_height#*360pt#) + (design_size*100) + 0.0003)/360pt#;
+
+fig_height#:= % height of numerals
+ ((fig_height#*360pt#) + (design_size*100) + 0.0003)/360pt#;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmex.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmex.mf
new file mode 100644
index 00000000000..875d2458bd3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmex.mf
@@ -0,0 +1,38 @@
+% Computer Modern Math Extension
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMEX"; font_size design_size * pt#;
+
+% This font has the same parameters as Computer Modern Roman,
+% plus a few, and a different set of characters.
+
+input c-cmr;
+
+if design_size <= 7pt#:
+ letter_fit# := ((8pt# - design_size) * 4pt#) / 36pt#;
+fi;
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+
+% fontdimen 9
+ ((design_size - 7pt#) * 4pt# + 28pt#) / 36pt#, % big\_op\_spacing1
+
+% fontdimen 10
+ ((design_size - 7pt#) * 6pt# + 42pt#) / 36pt#, % big\_op\_spacing2
+
+% fontdimen 11
+ ((design_size - 7pt#) * 7.2pt# + 50.4pt#) / 36pt#, % big\_op\_spacing3
+
+% fontdimen 12
+% cmex7=154, cmex8=175, cmex9=196, cmex=216. Argh.
+ ((design_size - 7pt#) * 21pt# + 154pt#
+ - (if design_size >= 10pt#: 1pt# else: 0pt# fi))
+ / 36pt#, % big\_op\_spacing4
+
+% fontdimen 13
+ 36 / 36pt#; % big\_op\_spacing5
+
+generate mathex % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmff.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmff.mf
new file mode 100644
index 00000000000..149c657a463
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmff.mf
@@ -0,0 +1,9 @@
+% Computer Modern Roman Funny
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMFF"; font_size design_size * pt#;
+
+input c-cmff;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmfi.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmfi.mf
new file mode 100644
index 00000000000..dc35e849b22
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmfi.mf
@@ -0,0 +1,32 @@
+% Computer Modern Funny Italic
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMFI"; font_size design_size * pt#;
+
+input c-cmff
+
+u#:=(21*(design_size/10))/36pt#; % unit width
+
+crisp#:=(11*(design_size/10))/36pt#; % diameter of serif corners
+hair#:=(11*(design_size/10))/36pt#; % lowercase hairline breadth
+stem#:=(17*(design_size/10))/36pt#; % lowercase stem breadth
+curve#:=(21*(design_size/10))/36pt#; % lowercase curve breadth
+ess#:=(23*(design_size/10))/36pt#; % breadth in middle of lowercase s
+flare#:=(25*(design_size/10))/36pt#; % diameter of bulbs or breadth of terminals
+cap_hair#:=(15*(design_size/10))/36pt#; % uppercase hairline breadth
+cap_stem#:=(25*(design_size/10))/36pt#; % uppercase stem breadth
+cap_curve#:=(27*(design_size/10))/36pt#; % uppercase curve breadth
+cap_ess#:=(29*(design_size/10))/36pt#; % breadth in middle of uppercase s
+
+vair#:=(15*(design_size/10))/36pt#; % vertical diameter of hairlines
+bar#:=(18*(design_size/10))/36pt#; % lowercase bar thickness
+slab#:=(21*(design_size/10))/36pt#; % serif and arm thickness
+cap_bar#:=(23*(design_size/10))/36pt#; % uppercase bar thickness
+cap_band#:=(18*(design_size/10))/36pt#; % uppercase thickness above/below lobes
+
+slant:=+.1; % tilt ratio $(\Delta x/\Delta y)$
+
+variant_g:=true; % should an italic-style g be used?
+
+generate textit % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmfib.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmfib.mf
new file mode 100644
index 00000000000..c1416814ab1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmfib.mf
@@ -0,0 +1,76 @@
+% Computer Modern Roman Fibonacci Font
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMFIB"; font_size design_size * pt#;
+
+u#:=(21*(design_size/8))/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=(-2*(design_size/8))/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=(233*(design_size/8))/36pt#; % height of tallest characters
+asc_height#:=(233*(design_size/8))/36pt#; % height of lowercase ascenders
+cap_height#:=(233*(design_size/8))/36pt#; % height of caps
+fig_height#:=(233*(design_size/8))/36pt#; % height of numerals
+x_height#:=(144*(design_size/8))/36pt#; % height of lowercase without ascenders
+math_axis#:=(89*(design_size/8))/36pt#; % axis of symmetry for math symbols
+bar_height#:=(89*(design_size/8))/36pt#; % height of crossbar in lowercase e
+comma_depth#:=(55*(design_size/8))/36pt#; % depth of comma below baseline
+desc_depth#:=(55*(design_size/8))/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=(13*(design_size/8))/36pt#; % diameter of rounded corners
+fine#:=(13*(design_size/8))/36pt#; % diameter of sharply rounded corners
+thin_join#:=(13*(design_size/8))/36pt#; % width of extrafine details
+hair#:=(21*(design_size/8))/36pt#; % lowercase hairline breadth
+stem#:=(34*(design_size/8))/36pt#; % lowercase stem breadth
+curve#:=(39*(design_size/8))/36pt#; % lowercase curve breadth
+ess#:=(34*(design_size/8))/36pt#; % breadth in middle of lowercase s
+flare#:=(34*(design_size/8))/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=(34*(design_size/8))/36pt#; % diameter of dots
+cap_hair#:=(21*(design_size/8))/36pt#; % uppercase hairline breadth
+cap_stem#:=(34*(design_size/8))/36pt#; % uppercase stem breadth
+cap_curve#:=(39*(design_size/8))/36pt#; % uppercase curve breadth
+cap_ess#:=(34*(design_size/8))/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=(21*(design_size/8))/36pt#; % thickness of lines in math symbols
+
+dish#:=(1*(design_size/8))/36pt#; % amount erased at top or bottom of serifs
+bracket#:=(21*(design_size/8))/36pt#; % vertical distance from serif base to tangent
+jut#:=(21*(design_size/8))/36pt#; % protrusion of lowercase serifs
+cap_jut#:=(21*(design_size/8))/36pt#; % protrusion of uppercase serifs
+beak_jut#:=(13*(design_size/8))/36pt#; % horizontal protrusion of beak serifs
+beak#:=(55*(design_size/8))/36pt#; % vertical protrusion of beak serifs
+vair#:=(13*(design_size/8))/36pt#; % vertical diameter of hairlines
+notch_cut#:=(8*(design_size/8)) * pt#; % maximum breadth above or below notches
+bar#:=(13*(design_size/8))/36pt#; % lowercase bar thickness
+slab#:=(13*(design_size/8))/36pt#; % serif and arm thickness
+cap_bar#:=(13*(design_size/8))/36pt#; % uppercase bar thickness
+cap_band#:=(13*(design_size/8))/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=(8*(design_size/8)) * pt#; % max breadth above/below uppercase notches
+serif_drop#:=(3*(design_size/8))/36pt#; % vertical drop of sloped serifs
+stem_corr#:=(1*(design_size/8))/36pt#; % for small refinements of stem breadth
+vair_corr#:=(1*(design_size/8))/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=(8*(design_size/8))/36pt#; % amount of overshoot for curves
+apex_o#:=(8*(design_size/8))/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=3/8; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/13; % extra openness inside bowls
+beak_darkness:=5/13; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cminch.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cminch.mf
new file mode 100644
index 00000000000..a3d5f034821
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cminch.mf
@@ -0,0 +1,61 @@
+% Computer Modern Inch-high Letters.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMINCH"; font_size design_size * pt#;
+
+% This font is just CMSSBX with a large point size. The corrections
+% below are to compensate for rounding errors, to give exactly the
+% same parameters as the original CMINCH.
+
+input c-cmssbx;
+
+asc_height#:= % height of lowercase ascenders
+ asc_height# - 0.00001 pt#;
+
+cap_height#:= % height of caps
+ cap_height# - 0.00001 pt#;
+
+fig_height#:= % height of numerals
+ fig_height# - 0.00001 pt#;
+
+x_height#:= % height of lowercase without ascenders
+ x_height# - 0.00006 pt#;
+
+comma_depth#:= % depth of comma below baseline
+ comma_depth# + 0.00002 pt#;
+
+desc_depth#:= % depth of lowercase descenders
+ desc_depth# - 0.00002 pt#;
+
+hair#:= % lowercase hairline breadth
+ hair# + 0.00003 pt#;
+
+stem#:= % lowercase stem breadth
+ stem# + 0.00003 pt#;
+
+curve#:= % lowercase curve breadth
+ curve# + 0.00003 pt#;
+
+ess#:= % breadth in middle of lowercase s
+ ess# - 0.00002 pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ flare# + 0.00003 pt#;
+
+dot_size#:= % diameter of dots
+ dot_size# + 0.00002 pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ cap_hair# + 0.00003 pt#;
+
+cap_stem#:= % uppercase stem breadth
+ cap_stem# + 0.00007 pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ cap_ess# + 0.00006 pt#;
+
+notch_cut#:= % maximum breadth above or below notches
+ notch_cut# + 0.00003 pt#;
+
+generate title % switch to the driver file - caps and digits only
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmitt.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmitt.mf
new file mode 100644
index 00000000000..2be9bf206b9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmitt.mf
@@ -0,0 +1,23 @@
+% Computer Modern Italic Typewriter Text
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMITT"; font_size design_size * pt#;
+
+% This font is a modification of Computer Modern Typewriter Text
+
+input c-cmtt;
+
+letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 15))/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ ((jut#*360pt#) + (design_size * 6))/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+generate textit % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmmi.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmmi.mf
new file mode 100644
index 00000000000..2254faf1a78
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmmi.mf
@@ -0,0 +1,9 @@
+% Computer Modern Math Italic
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMI"; font_size design_size * pt#;
+
+input c-cmmi;
+
+generate mathit % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmmib.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmmib.mf
new file mode 100644
index 00000000000..b02a70b26d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmmib.mf
@@ -0,0 +1,42 @@
+% Computer Modern Math Italic Bold
+% This font is a modification of Computer Modern Bold Extended.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMMIB"; font_size design_size * pt#;
+
+input c-cmbx;
+input c-bmath;
+
+% cmmib5=21, cmmib6=24, cmmib7=27, cmmib8=30, cmmib9=35, cmmib10=39
+cap_jut# :=
+ (if design_size <= 8: (design_size - 5pt#) * 3pt# + 21pt#
+ elseif designsize <= 9: (design_size - 9pt#) * 4pt# + 35pt#
+ else: (design_size * 3.5) + 4.0
+ fi) / 36pt#;
+
+% cmmib5=27, cmmib6=32, cmmib7=37, cmmib8=42, cmmib9=46, cmmib10=50
+cap_stem# :=
+ (if design_size <= 8: (design_size - 5pt#) * 5pt# + 27pt#
+ else: (design_size - 9pt#) * 4pt# + 46pt#
+ fi) / 36pt#;
+
+% cmmib5=26, cmmib6=29, cmmib7=33, cmmib8=37, cmmib9=40, cmmib10=42
+flare# :=
+ (if design_size <= 6: (design_size - 5pt#) * 3pt# + 26pt#
+ elseif designsize <= 8: (design_size - 7pt#) * 4pt# + 33pt#
+ elseif designsize <= 9: (design_size - 9pt#) * 3pt# + 40pt#
+ else: 36flare# % already computed, in c-bmath
+ fi) / 36pt#;
+
+% cmmib5=23, cmmib6=27, cmmib7=31, cmmib8=34, cmmib9=37, cmmib10=40
+stem# :=
+ (if design_size <= 7: (design_size - 5pt#) * 4pt# + 23pt#
+ else: (design_size - 8pt#) * 3pt# + 34pt#
+ fi) / 36pt#;
+
+% cmmib5=7, cmmib6=7.8, etc.
+width_adj# := ((design_size - 5pt#) * .8pt# + 7pt#) / 36pt#;
+
+generate mathit % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmr.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmr.mf
new file mode 100644
index 00000000000..857e6e2a7a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmr.mf
@@ -0,0 +1,9 @@
+% Computer Modern Roman
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMR"; font_size design_size*pt#;
+
+input c-cmr; % compute size parameters for CMR family
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmsl.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmsl.mf
new file mode 100644
index 00000000000..91f18629586
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmsl.mf
@@ -0,0 +1,13 @@
+% Computer Modern Slanted Roman
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSL"; font_size design_size * pt#;
+
+% This font is a simple modification of Computer Modern Roman.
+
+input c-cmr;
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmsltt.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmsltt.mf
new file mode 100644
index 00000000000..447c114e22b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmsltt.mf
@@ -0,0 +1,14 @@
+% Computer Modern Slanted Typewriter Text
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSLTT"; font_size design_size * pt#;
+
+% This font is a modification of Computer Modern Typewriter Text.
+
+input c-cmtt;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 1/6;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmss.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmss.mf
new file mode 100644
index 00000000000..580137ef74c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmss.mf
@@ -0,0 +1,9 @@
+% Computer Modern Sans Serif
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSS"; font_size design_size * pt#;
+
+input c-cmss;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmssbx.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmssbx.mf
new file mode 100644
index 00000000000..2f63a0bb997
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmssbx.mf
@@ -0,0 +1,9 @@
+% Computer Modern Sans Serif Bold Extended.
+if unknown cmbase: input cmbase fi
+
+ font_identifier:="CMSSBX"; font_size design_size * pt#;
+
+input c-cmssbx;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmssdc.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmssdc.mf
new file mode 100644
index 00000000000..e202fd010ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmssdc.mf
@@ -0,0 +1,76 @@
+% Computer Modern Sans Serif Demibold Condensed
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSDC"; font_size design_size * pt#;
+
+u#:=(19*(design_size/10))/36pt#; % unit width
+width_adj#:=(15*(design_size/10))/36pt#; % width adjustment for certain characters
+serif_fit#:=(-8*(design_size/10))/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=(-9*(design_size/10))/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=(270*(design_size/10))/36pt#; % height of tallest characters
+asc_height#:=(250*(design_size/10))/36pt#; % height of lowercase ascenders
+cap_height#:=(250*(design_size/10))/36pt#; % height of caps
+fig_height#:=(250*(design_size/10))/36pt#; % height of numerals
+x_height#:=(170*(design_size/10))/36pt#; % height of lowercase without ascenders
+math_axis#:=(95*(design_size/10))/36pt#; % axis of symmetry for math symbols
+bar_height#:=(95*(design_size/10))/36pt#; % height of crossbar in lowercase e
+comma_depth#:=(40*(design_size/10))/36pt#; % depth of comma below baseline
+desc_depth#:=(60*(design_size/10))/36pt#; % depth of lowercase descenders
+
+crisp#:=(23*(design_size/10))/36pt#; % diameter of serif corners
+tiny#:=(23*(design_size/10))/36pt#; % diameter of rounded corners
+fine#:=(8*(design_size/10))/36pt#; % diameter of sharply rounded corners
+thin_join#:=(8*(design_size/10))/36pt#; % width of extrafine details
+hair#:=(40*(design_size/10))/36pt#; % lowercase hairline breadth
+stem#:=(40*(design_size/10))/36pt#; % lowercase stem breadth
+curve#:=(40*(design_size/10))/36pt#; % lowercase curve breadth
+ess#:=(37*(design_size/10))/36pt#; % breadth in middle of lowercase s
+flare#:=(31*(design_size/10))/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=(38*(design_size/10))/36pt#; % diameter of dots
+cap_hair#:=(40*(design_size/10))/36pt#; % uppercase hairline breadth
+cap_stem#:=(44*(design_size/10))/36pt#; % uppercase stem breadth
+cap_curve#:=(44*(design_size/10))/36pt#; % uppercase curve breadth
+cap_ess#:=(42*(design_size/10))/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=(25*(design_size/10))/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=(1.5*(design_size/10))/36pt#; % vertical protrusion of beak serifs
+vair#:=(23*(design_size/10))/36pt#; % vertical diameter of hairlines
+notch_cut#:=(40*(design_size/10))/36pt#; % maximum breadth above or below notches
+bar#:=(23*(design_size/10))/36pt#; % lowercase bar thickness
+slab#:=(31*(design_size/10))/36pt#; % serif and arm thickness
+cap_bar#:=(29*(design_size/10))/36pt#; % uppercase bar thickness
+cap_band#:=(27*(design_size/10))/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=(37*(design_size/10))/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=(2*(design_size/10))/36pt#; % vertical drop of sloped serifs
+stem_corr#:=(1*(design_size/10))/36pt#; % for small refinements of stem breadth
+vair_corr#:=(2*(design_size/10))/36pt#; % for small refinements of hairline height
+apex_corr#:=(14*(design_size/10))/36pt#; % extra width at diagonal junctions
+
+o#:=(7*(design_size/10))/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.91; % factor applied to weights of heavy characters
+math_spread:=.3; % extra openness of math symbols
+superness:=.74; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmssi.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmssi.mf
new file mode 100644
index 00000000000..38dcdd0eb3b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmssi.mf
@@ -0,0 +1,13 @@
+% Computer Modern Slanted Sans Serif
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSI"; font_size design_size * pt#;
+
+% This font is a simple modification of CMSS.
+
+input c-cmss;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmssq.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmssq.mf
new file mode 100644
index 00000000000..7c56e40abce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmssq.mf
@@ -0,0 +1,9 @@
+% Computer Modern Sans Serif Quotation Style
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSQ"; font_size design_size * pt#;
+
+input c-cmssq;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmssqi.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmssqi.mf
new file mode 100644
index 00000000000..f612878035f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmssqi.mf
@@ -0,0 +1,14 @@
+% Computer Modern Sans Serif Quotation Style Slanted
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMSSQI"; font_size design_size * pt#;
+
+% This font's parameters are a simple modification of the parameters
+% of Computer Modern Sans Serif Quotation Style.
+
+input c-cmssq;
+
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmssxi.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmssxi.mf
new file mode 100644
index 00000000000..c027576f41f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmssxi.mf
@@ -0,0 +1,10 @@
+% This is b-cmssbxsl.mf as of 21-Aug-1990
+% Computer Modern Sans Serif Bold Extended Slanted.
+if unknown cmbase: input cmbase fi
+
+ font_identifier:="CMSSBXSL"; font_size design_size * pt#;
+
+input c-cmssbx;
+slant:=sind 12/cosd 12; % tilt ratio $(\Delta x/\Delta y)$
+
+generate roman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmsy.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmsy.mf
new file mode 100644
index 00000000000..f8097b4242e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmsy.mf
@@ -0,0 +1,23 @@
+% Computer Modern Math Symbols.
+%
+% This is essentially the Computer Modern Math Italic family with more
+% parameters and a different character set.
+
+if unknown cmbase: input cmbase fi
+
+font_identifier := "CMSY";
+font_size design_size * pt#;
+
+input c-cmmi;
+
+subs:= % subscript point size
+ (if design_size < 7.5: (5/design_size)
+ elseif design_size < 9.5: (6/design_size)
+ elseif design_size < 10.5: (7/design_size)
+ elseif design_size < 12.5: (8/design_size)
+ elseif design_size < 12.96: (1/1.44)
+ else: (1/1.2)fi);
+
+input c-sigma;
+
+generate mathsy
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmtcsc.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmtcsc.mf
new file mode 100644
index 00000000000..daf9a6ef6f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmtcsc.mf
@@ -0,0 +1,89 @@
+% Computer Modern Typewriter Caps and Small Caps
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTCSC"; font_size design_size * pt#;
+
+% first come parameters used to set the uppercase letters
+% (including some for lowercase that aren't actually used)
+
+input c-cmtt;
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:= % unit width
+ u#;
+
+lower.width_adj#:= % width adjustment for certain characters
+ width_adj#;
+
+lower.cap_serif_fit#:= % extra sidebar near uppercase serifs
+ cap_serif_fit#;
+
+lower.letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size * 3))/360pt#;
+
+lower.body_height#:= % height of tallest characters
+ (body_height#*36pt#*19)/(25*36pt#);
+
+lower.cap_height#:= % height of caps
+ (cap_height#*36pt#*17)/(22*36pt#);
+
+lower.x_height#:= % height of lowercase without ascenders
+ (x_height#*36pt#*12)/(15.5*36pt#);
+
+lower.bar_height#:= % height of crossbar in lowercase e
+ ((bar_height#*36pt#*62)+0.002)/(79*36pt#);
+
+lower.comma_depth#:= % depth of comma below baseline
+ (comma_depth#*36pt#*38)/(50*36pt#);
+
+lower.stem#:= % lowercase stem breadth
+ stem#;
+
+lower.flare#:= % diameter of bulbs or breadth of terminals
+ (flare#*360pt#*30)/(32*360pt#);
+
+lower.cap_hair#:= % uppercase hairline breadth
+ cap_hair#;
+
+lower.cap_stem#:= % uppercase stem breadth
+ cap_stem#;
+
+lower.cap_curve#:= % uppercase curve breadth
+ cap_curve#;
+
+lower.cap_ess#:= % breadth in middle of uppercase s
+ cap_ess#;
+
+lower.cap_jut#:= % protrusion of uppercase serifs
+ ((cap_jut#*360pt#*26)+0.01)/(34*360pt#);
+
+lower.beak_jut#:= % horizontal protrusion of beak serifs
+ beak_jut#;
+
+lower.beak#:= % vertical protrusion of beak serifs
+ ((beak#*360pt#*26)+0.01)/(34*360pt#);
+
+lower.slab#:= % serif and arm thickness
+ slab#;
+
+lower.cap_bar#:= % uppercase bar thickness
+ cap_bar#;
+
+lower.cap_band#:= % uppercase thickness above/below lobes
+ cap_band#;
+
+lower.cap_notch_cut#:= % max breadth above/below uppercase notches
+ (cap_notch_cut#*360pt#*24)/(25*360pt#);
+
+lower.o#:= % amount of overshoot for curves
+ ((o#*360pt#*3)-0.0018)/(4*360pt#);
+
+lower.apex_o#:= % amount of overshoot for diagonal junctions
+ (apex_o#*360pt#*2)/(3*360pt#);
+
+lower.fudge:= % factor applied to weights of heavy characters
+ ((fudge*10*85)+0.001)/(81*10);
+
+generate csc % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmtex.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmtex.mf
new file mode 100644
index 00000000000..3ec317a8a54
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmtex.mf
@@ -0,0 +1,14 @@
+% Computer Modern TeX extended ASCII characters
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTEX"; font_size design_size * pt#;
+
+% This font's parameters are a simple modification of CMTT's.
+
+input c-cmtt;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+generate texset % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmti.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmti.mf
new file mode 100644
index 00000000000..7b9c31960b4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmti.mf
@@ -0,0 +1,9 @@
+% Computer Modern Text Italic
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTI"; font_size design_size * pt#;
+
+input c-cmti;
+
+generate textit % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmtt.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmtt.mf
new file mode 100644
index 00000000000..6d5fa39d58b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmtt.mf
@@ -0,0 +1,9 @@
+% Computer Modern Typewriter Text
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMTT"; font_size design_size * pt#;
+
+input c-cmtt;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmu.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmu.mf
new file mode 100644
index 00000000000..5b5653932a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmu.mf
@@ -0,0 +1,23 @@
+% Computer Modern Unslanted Italic
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMU"; font_size design_size * pt#;
+
+% This font is a modification of Computer Modern Roman.
+
+input c-cmr;
+
+letter_fit#:= % extra space added to all sidebars
+ ((letter_fit#*360pt#) + (design_size*10))/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ ((ess#*360pt#) - (design_size * 5))/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ ((cap_ess#*360pt#) - (design_size * 3))/360pt#;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+generate textit % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/b-cmvtt.mf b/Master/texmf-dist/fonts/source/public/sauter/b-cmvtt.mf
new file mode 100644
index 00000000000..2ff88715989
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/b-cmvtt.mf
@@ -0,0 +1,17 @@
+% Computer Modern Variable-Width Typewriter Text
+if unknown cmbase: input cmbase fi
+
+font_identifier:="CMVTT"; font_size design_size * pt#;
+
+% This font is a simple modification of CMTT.
+
+input c-cmtt;
+
+ligs:= % level of ligatures to be included
+ 2;
+
+monospace:= % should all characters have the same width?
+ false;
+
+generate roman % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-bmath.mf b/Master/texmf-dist/fonts/source/public/sauter/c-bmath.mf
new file mode 100644
index 00000000000..2ed5700f3e2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-bmath.mf
@@ -0,0 +1,67 @@
+% Modify a set of "bold" parameters to make them suitable for a
+% bolded math font. This is used to turn CMBX into CMBSY and CMMIB.
+
+% AMS doubles cmbx's values for cmbsy. But we can't just multiply
+% c-cmbx's value of |letter_fit| by two, since that introduces round-off
+% error -- cmbsy5's value should be 0.16667, not 0.16666. So instead we
+% halve the divisor.
+letter_fit#:= % extra space added to all sidebars
+ (if design_size < 8: (-(design_size*10)+80)
+ else: (0)fi)/180pt#;
+
+% Version 2.1 of the AMS fonts has confused values for this -- 5--8pt
+% are whole numbers 9--12pt#, while 9pt is 13/36pt#. CM's 10pt value
+% is also 13/36pt#.
+crisp#:= % diameter of serif corners
+ (if design_size < 9: (design_size + 4pt#)
+ else: ((crisp#*360pt#) + (design_size * 13))/360pt#
+ fi);
+
+% cmbsy5=23, cmbsy6=27, cmbsy7=31, cmbsy8=34, cmbsy9=37, cmbsy10=40.
+stem#:= % lowercase stem breadth
+ (if design_size <= 7: ((design_size - 5pt#) * 4pt# + 23pt#)
+ else: ((design_size - 8pt#) * 3pt# + 34pt#)
+ fi) / 36pt#;
+
+curve#:= % lowercase curve breadth
+ (if design_size < 10: ((design_size - 5pt#) * 4pt# + 26pt#)
+ else: ((design_size - 10pt#) * 3pt# + 45pt#)
+ fi) / 36pt#;
+
+ess#:= % breadth in middle of lowercase s
+ ((ess#*360pt#) - (design_size * 2))/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ ((flare#*360pt#) - (design_size * 3))/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ ((cap_stem#*360pt#) - (design_size * 1) - 0.0004)/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ (if design_size < 10:
+ ((design_size - 5pt#) * 5pt# + 30pt#)
+ else:
+ ((design_size - 10pt#) * 3pt# + 53pt#)
+ fi) / 36pt#;
+% ((cap_curve#*360pt#) - (design_size * 2) + 0.0025)/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ ((cap_ess#*360pt#) - (design_size * 2))/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ ((jut#*360pt#) + (design_size * 2))/360pt#;
+
+o#:= % amount of overshoot for curves
+ ((o#*360pt#) + (design_size * 2))/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ ((apex_o#*360pt#) + (design_size * 3) + 0.001)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+math_fitting:= % should math-mode spacing be used?
+ true;
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmbx.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmbx.mf
new file mode 100644
index 00000000000..7b5e00ff8b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmbx.mf
@@ -0,0 +1,246 @@
+% Compute the font construction parameters for the Computer
+% Modern Bold Extended family. Some other fonts in the
+% Computer Modern family compute their parameters as
+% modifications of these.
+
+u#:= % unit width
+ (if design_size < 10: ((design_size*17)+60)
+ else: ((design_size*20)+30)fi)/360pt#;
+
+width_adj#:= % width adjustment for certain characters
+ (if design_size < 10: ((design_size*8)+30)
+ else: ((design_size*10)+10)fi)/360pt#;
+
+serif_fit#:= % extra sidebar near lowercase serifs
+ 0pt#;
+
+cap_serif_fit#:= % extra sidebar near uppercase serifs
+ (if design_size < 10: ((design_size*8)-10)
+ else: ((design_size*5)+20)fi)/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ (if design_size < 8: (-(design_size*10)+80)
+ else: (0)fi)/360pt#;
+
+body_height#:= % height of tallest characters
+ (design_size*270)/360pt#;
+
+asc_height#:= % height of lowercase ascenders
+ (design_size*250)/360pt#;
+
+cap_height#:= % height of caps
+ (design_size*247)/360pt#;
+
+fig_height#:= % height of numerals
+ ((design_size*232) + 0.00006)/360pt#;
+
+x_height#:= % height of lowercase without ascenders
+ (design_size*160)/360pt#;
+
+math_axis#:= % axis of symmetry for math symbols
+ (design_size*90)/360pt#;
+
+bar_height#:= % height of crossbar in lowercase e
+ (if design_size < 10: ((design_size*90)-50)
+ else: (design_size*85)fi)/360pt#;
+
+comma_depth#:= % depth of comma below baseline
+ (design_size*70)/360pt#;
+
+desc_depth#:= % depth of lowercase descenders
+ (design_size*70)/360pt#;
+
+crisp#:= % diameter of serif corners
+ 0/360pt#;
+
+tiny#:= % diameter of rounded corners
+ (if design_size < 9: ((design_size*10)+40)
+ else: (130)fi)/360pt#;
+
+fine#:= % diameter of sharply rounded corners
+ (if design_size < 6: ((design_size*10)+30)
+ elseif design_size < 7: (90)
+ elseif design_size < 8: ((design_size*10)+20)
+ else: (100)fi)/360pt#;
+
+thin_join#:= % width of extrafine details
+ (if design_size < 6: ((design_size*10)+30)
+ elseif design_size < 7: (90)
+ elseif design_size < 8: ((design_size*10)+20)
+ elseif design_size < 10: (100)
+ else: ((design_size*2.5)+75)fi)/360pt#;
+
+hair#:= % lowercase hairline breadth
+ (if design_size < 10: ((design_size*4)+130)
+ else: ((design_size*6.5)+105)fi)/360pt#;
+
+stem#:= % lowercase stem breadth
+ (if design_size < 7: ((design_size*40)+40)
+ else: ((design_size*30)+110)fi)/360pt#;
+
+curve#:= % lowercase curve breadth
+ (if design_size < 9: ((design_size*40)+70)
+ else: ((design_size*30)+160)fi)/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ (if design_size < 7: (-(design_size*design_size*10) +
+ (design_size*170)-410)
+ else: ((design_size*30)+80)fi)/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ (if design_size < 8: ((design_size*40)+70)
+ else: ((design_size*30)+150)fi)/360pt#;
+
+dot_size#:= % diameter of dots
+ (if design_size < 10: ((design_size*50)+60)
+ else: ((design_size*30)+260)fi)/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ (if design_size < 6: ((design_size*10)+120)
+ elseif design_size < 7: (180)
+ elseif design_size < 8: ((design_size*10)+110)
+ elseif design_size < 9: (190)
+ else: ((design_size*5)+140)fi)/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ (if design_size < 8: ((design_size*50)+30)
+ elseif design_size < 10: ((design_size*40)+110)
+ else: ((design_size*30)+210)fi)/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ (if design_size < 9: ((design_size*50)+60)
+ elseif design_size < 10: ((design_size*40)+150)
+ else: ((design_size*30)+250)fi)/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ (if design_size < 7: (-(design_size*design_size*5) +
+ (design_size*125) - 260)
+ elseif design_size < 9: (-(design_size*design_size*5) +
+ (design_size*135) - 330)
+ elseif design_size < 10: ((design_size*50)+30)
+ else: ((design_size*30)+230)fi)/360pt#;
+
+rule_thickness#:= % thickness of lines in math symbols
+ (if design_size < 7: ((design_size*4)+23)
+ else: ((design_size*3)+30)fi)/100pt#;
+
+dish#:= % amount erased at top or bottom of serifs
+ (if design_size < 8: ((design_size*1)+2)
+ else: (10)fi)/360pt#;
+
+bracket#:= % vertical distance from serif base to tangent
+ (design_size*10)/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ (if design_size < 8: ((design_size*20)+30)
+ elseif design_size < 10: ((design_size*30)-50)
+ else: (design_size*25)fi)/360pt#;
+
+cap_jut#:= % protrusion of uppercase serifs
+ (if design_size < 10: ((design_size*40)-10)
+ else: ((design_size*35)+40)fi)/360pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ (if design_size < 10: ((design_size*8)+30)
+ else: ((design_size*7)+40)fi)/360pt#;
+
+beak#:= % vertical protrusion of beak serifs
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*165) - 450)
+ else: (design_size*70)fi)/360pt#;
+
+vair#:= % vertical diameter of hairlines
+ (if design_size < 6: ((design_size*10)+50)
+ elseif design_size < 10: ((design_size*5)+80)
+ else: ((design_size*6.5)+65)fi)/360pt#;
+
+notch_cut#:= % maximum breadth above or below notches
+ (design_size) * pt#;
+
+bar#:= % lowercase bar thickness
+ (if design_size < 10: ((design_size*10)+70)
+ else: ((design_size*7.5)+95)fi)/360pt#;
+
+slab#:= % serif and arm thickness
+ (if design_size < 10: ((design_size*10)+70)
+ else: ((design_size*7.5)+95)fi)/360pt#;
+
+cap_bar#:= % uppercase bar thickness
+ (if design_size < 10: ((design_size*10)+70)
+ else: ((design_size*7.5)+95)fi)/360pt#;
+
+cap_band#:= % uppercase thickness above/below lobes
+ (if design_size < 10: ((design_size*10)+70)
+ else: ((design_size*7.5)+95)fi)/360pt#;
+
+cap_notch_cut#:= % max breadth above/below uppercase notches
+ (design_size) * pt#;
+
+serif_drop#:= % vertical drop of sloped serifs
+ (design_size*3)/360pt#;
+
+stem_corr#:= % for small refinements of stem breadth
+ (if design_size < 10: ((design_size*1)+10)
+ else: (20)fi)/360pt#;
+
+vair_corr#:= % for small refinements of hairline height
+ (if design_size < 10: ((design_size*1)+5)
+ else: (15)fi)/360pt#;
+
+apex_corr#:= % extra width at diagonal junctions
+ (if design_size < 8: ((design_size*design_size*5) -
+ (design_size*95)+440)
+ else: (0)fi)/360pt#;
+
+o#:= % amount of overshoot for curves
+ (if design_size < 7: (30)
+ elseif design_size < 8: ((design_size*10)-40)
+ elseif design_size < 10: (40)
+ else: ((design_size*5)-10)fi)/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ (if design_size < 10: (30)
+ else: ((design_size*5)-20)fi)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0;
+
+fudge:= % factor applied to weights of heavy characters
+ 1;
+
+math_spread:= % extra openness of math symbols
+ (if design_size < 10: (-(design_size*20)+250)
+ else: (-(design_size*5)+100)fi)/100;
+
+superness:= % parameter for superellipses
+ 8/11;
+
+superpull:= % extra openness inside bowls
+ 1/8;
+
+beak_darkness:= % fraction of triangle inside beak serifs
+ 0.4;
+
+ligs:= % level of ligatures to be included
+ 2;
+
+square_dots:= % should dots be square?
+ false;
+
+hefty:= % should we try hard not to be overweight?
+ false;
+
+serifs:= % should serifs and bulbs be attached?
+ true;
+
+monospace:= % should all characters have the same width?
+ false;
+
+variant_g:= % should an italic-style g be used?
+ false;
+
+low_asterisk:= % should the asterisk be centered at the axis?
+ false;
+
+math_fitting:= % should math-mode spacing be used?
+ false;
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmex.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmex.mf
new file mode 100644
index 00000000000..34fa49c5cfb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmex.mf
@@ -0,0 +1,34 @@
+% Computer Modern Math Extension
+% This font has the same parameters as Computer Modern Roman,
+% plus a few, and a different set of characters.
+
+input c-cmr;
+
+if design_size <= 7pt#:
+ letter_fit# := ((8pt# - design_size) * 4pt#) / 36pt#;
+fi;
+
+% the following font parameters are explained in {\sl The \TeX book},
+Appendix G
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+
+% fontdimen 9
+ ((design_size - 7pt#) * 4pt# + 28pt#) / 36pt#, % big\_op\_spacing1
+
+% fontdimen 10
+ ((design_size - 7pt#) * 6pt# + 42pt#) / 36pt#, % big\_op\_spacing2
+
+% fontdimen 11
+ ((design_size - 7pt#) * 7.2pt# + 50.4pt#) / 36pt#, % big\_op\_spacing3
+
+% fontdimen 12
+% cmex7=154, cmex8=175, cmex9=196, cmex=216. Argh.
+ ((design_size - 7pt#) * 21pt# + 154pt#
+ - (if design_size >= 10pt#: 1pt# else: 0pt# fi))
+ / 36pt#, % big\_op\_spacing4
+
+% fontdimen 13
+ 36 / 36pt#; % big\_op\_spacing5
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmff.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmff.mf
new file mode 100644
index 00000000000..05246a8a2d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmff.mf
@@ -0,0 +1,71 @@
+% Parameters for CMFF and CMFI fonts.
+
+u#:=(16*(design_size/10))/36pt#; % unit width
+width_adj#:=(-16*(design_size/10))/36pt#; % width adjustment for certain characters
+serif_fit#:=(-3*(design_size/10))/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=(-4*(design_size/10))/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=(2*(design_size/10))/36pt#; % extra space added to all sidebars
+
+body_height#:=(240*(design_size/10))/36pt#; % height of tallest characters
+asc_height#:=(220*(design_size/10))/36pt#; % height of lowercase ascenders
+cap_height#:=(225*(design_size/10))/36pt#; % height of caps
+fig_height#:=(210*(design_size/10))/36pt#; % height of numerals
+x_height#:=(190*(design_size/10))/36pt#; % height of lowercase without ascenders
+math_axis#:=(55*(design_size/10))/36pt#; % axis of symmetry for math symbols
+bar_height#:=(60*(design_size/10))/36pt#; % height of crossbar in lowercase e
+comma_depth#:=(70*(design_size/10))/36pt#; % depth of comma below baseline
+desc_depth#:=(100*(design_size/10))/36pt#; % depth of lowercase descenders
+
+crisp#:=(10*(design_size/10))/36pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=(14*(design_size/10))/36pt#; % width of extrafine details
+hair#:=(12*(design_size/10))/36pt#; % lowercase hairline breadth
+stem#:=(16*(design_size/10))/36pt#; % lowercase stem breadth
+curve#:=(20*(design_size/10))/36pt#; % lowercase curve breadth
+ess#:=(22*(design_size/10))/36pt#; % breadth in middle of lowercase s
+flare#:=(24*(design_size/10))/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=(26*(design_size/10))/36pt#; % diameter of dots
+cap_hair#:=(16*(design_size/10))/36pt#; % uppercase hairline breadth
+cap_stem#:=(24*(design_size/10))/36pt#; % uppercase stem breadth
+cap_curve#:=(26*(design_size/10))/36pt#; % uppercase curve breadth
+cap_ess#:=(28*(design_size/10))/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=(.5*(design_size/10))*pt#; % thickness of lines in math symbols
+
+dish#:=(5*(design_size/10))/36pt#; % amount erased at top or bottom of serifs
+bracket#:=(20*(design_size/10))/36pt#; % vertical distance from serif base to tangent
+jut#:=(3*(design_size/10))/36pt#; % protrusion of lowercase serifs
+cap_jut#:=(4*(design_size/10))/36pt#; % protrusion of uppercase serifs
+beak_jut#:=(-8*(design_size/10))/36pt#; % horizontal protrusion of beak serifs
+beak#:=(10*(design_size/10))/36pt#; % vertical protrusion of beak serifs
+vair#:=(14*(design_size/10))/36pt#; % vertical diameter of hairlines
+notch_cut#:=(2*(design_size/10))/36pt#; % maximum breadth above or below notches
+bar#:=(17*(design_size/10))/36pt#; % lowercase bar thickness
+slab#:=(20*(design_size/10))/36pt#; % serif and arm thickness
+cap_bar#:=(22*(design_size/10))/36pt#; % uppercase bar thickness
+cap_band#:=(17*(design_size/10))/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=(3*(design_size/10))/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=(-10*(design_size/10))/36pt#; % vertical drop of sloped serifs
+stem_corr#:=(-1*(design_size/10))/36pt#; % for small refinements of stem breadth
+vair_corr#:=(-1*(design_size/10))/36pt#; % for small refinements of hairline height
+apex_corr#:=(6*(design_size/10))/36pt#; % extra width at diagonal junctions
+
+o#:=(4*(design_size/10))/36pt#; % amount of overshoot for curves
+apex_o#:=(9*(design_size/10))/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=-.1; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=2/3; % parameter for superellipses
+superpull:=-1/8; % extra openness inside bowls
+beak_darkness:=.5; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmmi.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmmi.mf
new file mode 100644
index 00000000000..0ca62fa4031
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmmi.mf
@@ -0,0 +1,80 @@
+% Compute the font construction parameters for the Computer
+% Modern Math Italic family. The parameters are mostly the
+% same as Computer Modern Roman, with differences as noted
+% below.
+% Changes[Sauter-2.4] New formula for cap_ess for design_sizes >12pt#,
+% this avoids the letter `S' becoming too thin at large sizes, the
+% metrics aren't affected by this change.
+
+input c-cmr;
+
+letter_fit#:= % extra space added to all sidebars
+ (if design_size < 6: (-(design_size*40)+300)
+ elseif design_size < 7: (-(design_size*20)+180)
+ elseif design_size < 8: (-(design_size*40)+320)
+ else: (0)fi)/360pt#;
+
+crisp#:= % diameter of serif corners
+ (if design_size < 7: ((design_size*5)+35)
+ elseif design_size < 8: (design_size*10)
+ else: (80)fi)/360pt#;
+
+tiny#:= % diameter of rounded corners
+ (if design_size < 7: ((design_size*5)+35)
+ elseif design_size < 8: (design_size*10)
+ else: (80)fi)/360pt#;
+
+stem#:= % lowercase stem breadth
+ (if design_size < 8: ((design_size*20)+55)
+ elseif design_size < 9: ((design_size*15)+95)
+ elseif design_size < 10: ((design_size*10)+140)
+ else: ((design_size*15)+90)fi)/360pt#;
+
+curve#:= % lowercase curve breadth
+ (if design_size < 8: ((design_size*25)+50)
+ elseif design_size < 10: ((design_size*20)+90)
+ else: ((design_size*15)+140)fi)/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ (if design_size < 6: ((design_size*20)+85)
+ elseif design_size < 8: ((design_size*30)+25)
+ elseif design_size < 9: ((design_size*25)+65)
+ elseif design_size < 10: ((design_size*30)+20)
+ else: ((design_size*15)+170)fi)/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ (if design_size < 7: ((design_size*25)+60)
+ elseif design_size < 8: ((design_size*20)+95)
+ elseif design_size < 9: ((design_size*25)+55)
+ elseif design_size < 10: ((design_size*20)+100)
+ else: ((design_size*15)+150)fi)/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ (if design_size < 7: ((design_size*30)+55)
+ elseif design_size < 8: ((design_size*25)+90)
+ elseif design_size < 10: ((design_size*30)+50)
+ else: ((design_size*15)+200)fi)/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ (if design_size < 6: ((design_size*50)-115)
+ elseif design_size < 7: ((design_size*40)-55)
+ elseif design_size < 8: ((design_size*35)-20)
+ elseif design_size < 9: ((design_size*40)-60)
+ elseif design_size < 10: ((design_size*30)+30)
+ elseif design_size < 12: (-(design_size*5)+380)
+ else: (design_size*9 + 216)fi)/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ (if design_size < 7: ((design_size*20)+70)
+ elseif design_size < 10: (design_size*30)
+ else: ((design_size*25)+50)fi)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+variant_g:= % should an italic-style g be used?
+ true;
+
+math_fitting:= % should math-mode spacing be used?
+ true;
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmr.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmr.mf
new file mode 100644
index 00000000000..6de85a5e3d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmr.mf
@@ -0,0 +1,348 @@
+% Compute the font construction parameters for the Computer
+% Modern Roman family. Some other Computer Modern families
+% compute their parameters as modifications of these.
+
+u#:= % unit width
+ (if design_size < 10: ((design_size*15)+50)
+%elseif design_size < 12: ((design_size*17.5)+25)
+ else: (-(0.062437562437*design_size*design_size) +
+ (18.8736263736*design_size) +
+ (17.5074925074))fi)/360pt#;
+
+width_adj#:= % width adjustment for certain characters
+ 0pt#;
+
+serif_fit#:= % extra sidebar near lowercase serifs
+ 0pt#;
+
+cap_serif_fit#:= % extra sidebar near uppercase serifs
+ (if design_size < 9: ((-0.5*design_size*design_size)+
+ (13.5*design_size)-35)
+ elseif design_size < 10: ((design_size*4)+10)
+ else: (((0.022893772893*design_size*design_size) +
+ (3.4963369963*design_size) +
+ (12.7472527472))+0.002)fi)/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ (if design_size < 6: (-(design_size*20)+150)
+ elseif design_size < 7: (-(design_size*10)+90)
+ elseif design_size < 8: (-(design_size*20)+160)
+ elseif design_size < 10: (0)
+ else: (-(0.9365634365616*design_size*design_size)+
+ (20.60439560424*design_size) -
+ (112.38761238732))fi)/360pt#;
+
+body_height#:= % height of tallest characters
+ (if design_size < 10: (design_size*270)
+ else: (-(0.14568764568*design_size*design_size) +
+ (273.205128205*design_size) -
+ (17.482517482))fi)/360pt#;
+
+asc_height#:= % height of lowercase ascenders
+ (design_size*250)/360pt#;
+
+cap_height#:= % height of caps
+ (if design_size < 10: (design_size*246)
+ else: (-(0.0228937728937*design_size*design_size) +
+ (246.503663003*design_size) -
+ (2.74725274725))fi)/360pt#;
+
+fig_height#:= % height of numerals
+ (if design_size < 10: ((design_size*232)+0.00006)
+ else: ((0.0270562770562*design_size*design_size) +
+ (231.404761904*design_size) +
+ (3.24675324675))fi)/360pt#;
+
+x_height#:= % height of lowercase without ascenders
+ (if design_size < 10: (design_size*155)
+ else: (-(0.010406260406*design_size*design_size) +
+ (155.22893772*design_size) -
+ (1.2487512487))fi)/360pt#;
+
+math_axis#:= % axis of symmetry for math symbols
+ (if design_size < 10: (design_size*90)
+ else: (-(0.00520313020313*design_size*design_size) +
+ (90.1144688644*design_size) -
+ (0.624375624375))fi)/360pt#;
+
+bar_height#:= % height of crossbar in lowercase e
+ (if design_size < 10: (design_size*87)
+ else: ((-(0.087412587412*design_size*design_size) +
+ (88.923076923*design_size) -
+ (10.4895104895))+0.0008)fi)/360pt#;
+
+comma_depth#:= % depth of comma below baseline
+ (if design_size < 10: (design_size*70)
+ else: ((0.010406260406*design_size*design_size) +
+ (69.771062271*design_size) +
+ (1.2487512487))fi)/360pt#;
+
+desc_depth#:= % depth of lowercase descenders
+ (if design_size < 10: (design_size*70)
+ else: ((0.010406260406*design_size*design_size) +
+ (69.771062271*design_size) +
+ (1.2487512487))fi)/360pt#;
+
+crisp#:= % diameter of serif corners
+ 0/360pt#;
+
+tiny#:= % diameter of rounded corners
+ (if design_size < 6: ((design_size*10)+10)
+ elseif design_size < 7: (70)
+ elseif design_size < 8: (design_size*10)
+ else: (80)fi)/360pt#;
+
+fine#:= % diameter of sharply rounded corners
+ (if design_size < 6: (design_size*10)
+ elseif design_size < 7: (60)
+ elseif design_size < 8: ((design_size*10)-10)
+ else: (70)fi)/360pt#;
+
+thin_join#:= % width of extrafine details
+ (if design_size < 6: (design_size*10)
+ elseif design_size < 7: (60)
+ elseif design_size < 8: ((design_size*10)-10)
+ elseif design_size < 10: (70)
+%elseif design_size < 12: ((design_size*2.5)+45)
+ else: ((0.046828171828*design_size*design_size) +
+ (1.4697802197*design_size) +
+ (50.6193806193))fi)/360pt#;
+
+hair#:= % lowercase hairline breadth
+ (if design_size < 8: ((design_size*5)+50)
+ elseif design_size < 10: (90)
+%elseif design_size < 12: ((design_size*2.5)+65)
+ else: ((0.046828171828*design_size*design_size) +
+ (1.4697802197*design_size) +
+ (70.6193806193))fi)/360pt#;
+
+stem#:= % lowercase stem breadth
+ (if design_size < 9: ((design_size*20)+60)
+ elseif design_size < 10: ((design_size*10)+150)
+ elseif design_size < 12: ((design_size*15)+100)
+ else: ((design_size*9.4696969696)+166.36363637)fi)/360pt#;
+
+curve#:= % lowercase curve breadth
+ (if design_size < 9: ((design_size*25)+55)
+ elseif design_size < 10: ((design_size*20)+100)
+ elseif design_size < 40: ((-0.23934398934*design_size*design_size) +
+ (20.265567765*design_size) +
+ (121.278721278))
+ else: (548.951048934)fi)/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ (if design_size < 7: (-(design_size*design_size*5) +
+ (design_size*105)-280)
+ elseif design_size < 10: ((design_size*20)+70)
+ elseif design_size < 12: ((design_size*15)+120)
+ else: ((design_size*9.4696969696)+186.36363637)fi)/360pt#;
+
+
+flare#:= % diameter of bulbs or breadth of terminals
+ (if design_size < 6: ((design_size*20)+90)
+ elseif design_size < 10: ((design_size*30)+30)
+%elseif design_size < 12: ((design_size*15)+180)
+ else: ((0.280969030969*design_size*design_size) +
+ (8.8186813186*design_size) +
+ (213.71628317))fi)/360pt#;
+
+dot_size#:= % diameter of dots
+ (if design_size < 6: ((design_size*40)+20)
+ elseif design_size < 10: ((design_size*30)+80)
+ elseif design_size < 12: ((design_size*20)+180)
+ else: ((design_size*17.0454545454)+215.45454546)fi)/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ (if design_size < 9: ((design_size*5)+55)
+ elseif design_size < 10: ((design_size*10)+10)
+%elseif design_size < 12: ((design_size*2.5)+85)
+ else: ((0.046828171828*design_size*design_size) +
+ (1.4697802197*design_size) +
+ (90.6193806193))fi)/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ (if design_size < 9: ((design_size*25)+65)
+ elseif design_size < 10: ((design_size*30)+20)
+ elseif design_size < 12: ((design_size*15)+170)
+ elseif design_size < 30: ((-0.4995004995*design_size*design_size) +
+ (25.989010989*design_size) +
+ (110.059940059))
+ else: (440.179820179)fi)/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ (if design_size < 9: ((design_size*30)+60)
+ elseif design_size < 10: ((design_size*40)-30)
+%elseif design_size < 12: ((design_size*15)+220)
+ elseif design_size < 45: ((-0.23934398934*design_size*design_size) +
+ (20.265567765*design_size) +
+ (191.278721278))
+ else: (618.557692303)fi)/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ (if design_size < 6: ((design_size*50)-110)
+ elseif design_size < 10: ((design_size*40)-50)
+ elseif design_size < 12: ((design_size*15)+200)
+ else: ((design_size*9.46969696)+266.36363637)fi)/360pt#;
+
+rule_thickness#:= % thickness of lines in math symbols
+ (if design_size < 7: ((design_size*3)+13)
+ elseif design_size < 12: ((design_size*2)+20)
+ else: ((design_size*3.0303030303)+7.6363636364)fi)/100pt#;
+
+dish#:= % amount erased at top or bottom of serifs
+ (if design_size < 8: ((design_size*1)+2)
+ else: (10)fi)/360pt#;
+
+bracket#:= % vertical distance from serif base to tangent
+ (if design_size < 10: (design_size*20)
+ else: (-(0.145687645687*design_size*design_size) +
+ (23.2051282051*design_size) -
+ (17.4825174825))fi)/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ (if design_size < 7: ((design_size*20)+50)
+ elseif design_size < 10: ((design_size*30)-20)
+ elseif design_size < 12: ((design_size*25)+30)
+ else: ((design_size*17.0454545454)+125.45454546)fi)/360pt#;
+
+cap_jut#:= % protrusion of uppercase serifs
+ (if design_size < 8: ((design_size*30)+50)
+ elseif design_size < 10: ((design_size*40)-30)
+ elseif design_size < 12: ((design_size*20)+170)
+ else: ((design_size*17.0454545454)+205.45454546)fi)/360pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ (if design_size < 10: ((design_size*8)+20)
+%elseif design_size < 12: ((design_size*7)+30)
+ else: ((-(0.024975024975*design_size*design_size) +
+ (7.5494505494*design_size) +
+ (27.0029970029))+0.0005)fi)/360pt#;
+
+beak#:= % vertical protrusion of beak serifs
+ (if design_size < 10: (design_size*70)
+ else: ((0.010406260406*design_size*design_size) +
+ (69.771062271*design_size) +
+ (1.2487512487))fi)/360pt#;
+
+vair#:= % vertical diameter of hairlines
+ (if design_size < 6: ((design_size*10)+10)
+ elseif design_size < 7: (70)
+ elseif design_size < 8: (design_size*10)
+ elseif design_size < 10: (80)
+%elseif design_size < 12: ((design_size*2.5)+55)
+ else: (((0.046828171828*design_size*design_size) +
+ (1.4697802197*design_size) +
+ (60.6193806193))-0.00013)fi)/360pt#;
+
+notch_cut#:= % maximum breadth above or below notches
+ (if design_size < 10: (design_size*100)
+ else: (-(0.728438228438*design_size*design_size) +
+ (116.02564102*design_size) -
+ (87.4125874125))fi)/100pt#;
+
+bar#:= % lowercase bar thickness
+ (if design_size < 9: ((design_size*5)+55)
+ elseif design_size < 10: ((design_size*10)+10)
+ elseif design_size < 12: ((design_size*7.5)+35)
+ else: ((design_size*6.6287878787)+45.45454546)fi)/360pt#;
+
+slab#:= % serif and arm thickness
+ (if design_size < 9: ((design_size*5)+55)
+ elseif design_size < 10: ((design_size*10)+10)
+ elseif design_size < 12: ((design_size*7.5)+35)
+ else: ((design_size*6.6287878787)+45.45454546)fi)/360pt#;
+
+cap_bar#:= % uppercase bar thickness
+ (if design_size < 9: ((design_size*5)+55)
+ elseif design_size < 10: ((design_size*10)+10)
+ elseif design_size < 12: ((design_size*7.5)+35)
+ else: ((design_size*6.6287878787)+45.45454546)fi)/360pt#;
+
+cap_band#:= % uppercase thickness above/below lobes
+ (if design_size < 9: ((design_size*5)+55)
+ elseif design_size < 10: ((design_size*10)+10)
+ elseif design_size < 12: ((design_size*7.5)+35)
+ else: ((design_size*6.6287878787)+45.45454546)fi)/360pt#;
+
+cap_notch_cut#:= % max breadth above/below uppercase notches
+ (if design_size < 10: (design_size*100)
+ else: (-(0.72843822843*design_size*design_size) +
+ (116.025641025*design_size) -
+ (87.412587412))fi)/100pt#;
+
+serif_drop#:= % vertical drop of sloped serifs
+ (if design_size < 12: (design_size*4)
+ else: ((design_size*design_size*0.0228937728937) +
+ (design_size * 3.49633699633) +
+ 2.74725274725)fi)/360pt#;
+
+stem_corr#:= % for small refinements of stem breadth
+ (if design_size < 8: ((design_size*1)+2)
+ else: (10)fi)/360pt#;
+
+vair_corr#:= % for small refinements of hairline height
+ (if design_size < 7: ((design_size*2)-5)
+ elseif design_size < 8: (-(design_size*design_size*0.5) +
+ (design_size*8.5) - 26)
+ else: (10)fi)/360pt#;
+
+apex_corr#:= % extra width at diagonal junctions
+ 0pt#;
+
+o#:= % amount of overshoot for curves
+ (if design_size < 7: ((design_size*5)+15)
+ elseif design_size < 10: ((design_size*10)-20)
+ elseif design_size < 12: ((design_size*5)+30)
+ else: ((design_size*1.8939393939)+67.2727272732)fi)/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ (if design_size < 7: ((design_size*5)+15)
+ elseif design_size < 10: ((design_size*10)-20)
+ elseif design_size < 12: ((design_size*5)+30)
+ else: ((design_size*1.8939393939)+67.2727272732)fi)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0;
+
+fudge:= % factor applied to weights of heavy characters
+ 1;
+
+math_spread:= % extra openness of math symbols
+ (if design_size < 10: (-(design_size*200)+2000)
+ elseif design_size < 12: (-(design_size*100)+1000)
+ else: (-(design_size*37.8787878787)+254.545454)fi)/1000;
+
+superness:= % parameter for superellipses
+ 1/sqrt2;
+
+superpull:= % extra openness inside bowls
+ 1/6;
+
+beak_darkness:= % fraction of triangle inside beak serifs
+ 11/30;
+
+ligs:= % level of ligatures to be included
+ (if design_size < 6: (1)
+ else: (2)fi);
+
+square_dots:= % should dots be square?
+ false;
+
+hefty:= % should we try hard not to be overweight?
+ false;
+
+serifs:= % should serifs and bulbs be attached?
+ true;
+
+monospace:= % should all characters have the same width?
+ false;
+
+variant_g:= % should an italic-style g be used?
+ false;
+
+low_asterisk:= % should the asterisk be centered at the axis?
+ false;
+
+math_fitting:= % should math-mode spacing be used?
+ false;
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmss.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmss.mf
new file mode 100644
index 00000000000..0918e750643
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmss.mf
@@ -0,0 +1,329 @@
+% Compute the font construction parameters for the Computer
+% Modern Sans-Serif family. Some other Computer Modern families
+% compute their parameters as modifications of these.
+
+u#:= % unit width
+ (if design_size < 10: ((design_size*15)+50)
+%elseif design_size < 12: ((design_size*17.5)+25)
+ else: (-(0.0624375624375*design_size*design_size) +
+ (18.873626373*design_size) +
+ (17.507492507))fi)/360pt#;
+
+width_adj#:= % width adjustment for certain characters
+ (if design_size < 9: ((design_size*10)+40)
+ elseif design_size < 10: ((design_size*20)-50)
+%elseif design_size < 12: ((design_size*10)+50)
+ else: (((0.44746919746*design_size*design_size) +
+ (0.15567765567*design_size) +
+ (103.696303696))+0.0008)fi)/360pt#;
+
+serif_fit#:= % extra sidebar near lowercase serifs
+ (if design_size < 10: (-(design_size*5)-20)
+ elseif design_size < 12: (-(design_size*10)+30)
+ else: (-(design_size*5.6818181818)-21.8181818184)fi)/360pt#;
+
+cap_serif_fit#:= % extra sidebar near uppercase serifs
+ (if design_size < 9: (-(design_size*5)-45)
+ elseif design_size < 10: (-design_size*10)
+ elseif design_size < 12: (-(design_size*15)+50)
+ else: (-(design_size*7.5757575757)-39.0909091)fi)/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ 0pt#;
+
+body_height#:= % height of tallest characters
+ (if design_size < 10: (design_size*270)
+ else: (-(0.14568764568*design_size*design_size) +
+ (273.205128205*design_size) -
+ (17.482517482))fi)/360pt#;
+
+asc_height#:= % height of lowercase ascenders
+ (design_size*250)/360pt#;
+
+cap_height#:= % height of caps
+ (design_size*250)/360pt#;
+
+fig_height#:= % height of numerals
+ (if design_size < 9: ((design_size*230)+50)
+ elseif design_size < 10: ((design_size*240)-40)
+%elseif design_size < 12: ((design_size*235)+10)
+ else: (((0.23934398934*design_size*design_size) +
+ (229.734432234*design_size) +
+ (38.721278721))-0.00068)fi)/360pt#;
+
+x_height#:= % height of lowercase without ascenders
+ (if design_size < 10: (design_size*160)
+ else: (-(2.25815850815*design_size*design_size) +
+ (209.679487179*design_size) -
+ (270.979020979))fi)/360pt#;
+
+math_axis#:= % axis of symmetry for math symbols
+ (if design_size < 10: (design_size*90)
+ else: ((-0.0052031302031*design_size*design_size) +
+ (90.11446864*design_size) -
+ (0.62437562437))fi)/360pt#;
+
+bar_height#:= % height of crossbar in lowercase e
+ (if design_size < 10: ((design_size*80)-10)
+ elseif design_size < 12: ((design_size*90)-110)
+ else: ((design_size*73.863636363)+83.636363644)fi)/360pt#;
+
+comma_depth#:= % depth of comma below baseline
+ (if design_size < 10: ((design_size*40)+50)
+%elseif design_size < 12: (design_size*45)
+ else: ((0.0624375624375*design_size*design_size) +
+ (43.626373626*design_size) +
+ (7.4925074925))fi)/360pt#;
+
+desc_depth#:= % depth of lowercase descenders
+ (if design_size < 10: (design_size*70)
+ else: ((0.0104062604062*design_size*design_size) +
+ (69.771062271*design_size) +
+ (1.24875124875))fi)/360pt#;
+
+crisp#:= % diameter of serif corners
+ 0pt#;
+
+tiny#:= % diameter of rounded corners
+ 0pt#;
+
+fine#:= % diameter of sharply rounded corners
+ 0pt#;
+
+thin_join#:= % width of extrafine details
+ (if design_size < 10: ((design_size*10)+70)
+%elseif design_size < 12: ((design_size*15)+20)
+ else: ((0.0208125208125*design_size*design_size) +
+ (14.542124542*design_size) +
+ (22.497502497))fi)/360pt#;
+
+hair#:= % lowercase hairline breadth
+ (if design_size < 9: ((design_size*20)+90)
+ elseif design_size < 10: ((design_size*10)+180)
+%elseif design_size < 12: ((design_size*25)+30)
+ else: (((0.20812520812*design_size*design_size) +
+ (20.421245421*design_size) +
+ (54.975024975))-0.0003)fi)/360pt#;
+
+stem#:= % lowercase stem breadth
+ (if design_size < 9: ((design_size*20)+90)
+ elseif design_size < 10: ((design_size*10)+180)
+%elseif design_size < 12: ((design_size*25)+30)
+ else: (((0.20812520812*design_size*design_size) +
+ (20.421245421*design_size) +
+ (54.975024975))-0.0003)fi)/360pt#;
+
+curve#:= % lowercase curve breadth
+ (if design_size < 9: ((design_size*20)+90)
+ elseif design_size < 10: ((design_size*10)+180)
+%elseif design_size < 12: ((design_size*25)+30)
+ else: (((0.20812520812*design_size*design_size) +
+ (20.421245421*design_size) +
+ (54.975024975))-0.0003)fi)/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ (if design_size < 9: ((design_size*20)+90)
+ elseif design_size < 10: ((design_size*10)+180)
+%elseif design_size < 12: ((design_size*25)+30)
+ else: (((0.20812520812*design_size*design_size) +
+ (20.421245421*design_size) +
+ (54.975024975))-0.0003)fi)/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ (if design_size < 9: ((design_size*20)+60)
+ elseif design_size < 10: ((design_size*10)+150)
+ elseif design_size < 12: (design_size*25)
+ else: ((design_size*22.727272727)+27.272727276)fi)/360pt#;
+
+dot_size#:= % diameter of dots
+ (if design_size < 10: ((design_size*20)+100)
+%elseif design_size < 12: ((design_size*25)+50)
+ else: (((0.46828171828*design_size*design_size) +
+ (14.697802197*design_size) +
+ (106.193806193))+0.0007)fi)/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ (if design_size < 9: ((design_size*20)+90)
+ elseif design_size < 10: ((design_size*10)+180)
+%elseif design_size < 12: ((design_size*25)+30)
+ else: (((0.20812520812*design_size*design_size) +
+ (20.421245421*design_size) +
+ (54.975024975))-0.0003)fi)/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ (if design_size < 9: ((design_size*20)+130)
+ elseif design_size < 10: ((design_size*10)+220)
+%elseif design_size < 12: ((design_size*25)+70)
+ else: ((0.46828171828*design_size*design_size) +
+ (14.697802197*design_size) +
+ (126.193806193))fi)/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ (if design_size < 9: ((design_size*20)+130)
+ elseif design_size < 10: ((design_size*10)+220)
+%elseif design_size < 12: ((design_size*25)+70)
+ else: ((0.46828171828*design_size*design_size) +
+ (14.697802197*design_size) +
+ (126.193806193))fi)/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ (if design_size < 9: ((design_size*30)+40)
+ elseif design_size < 10: ((design_size*10)+220)
+%elseif design_size < 12: ((design_size*25)+70)
+ else: ((0.46828171828*design_size*design_size) +
+ (14.697802197*design_size) +
+ (126.193806193))fi)/360pt#;
+
+rule_thickness#:= % thickness of lines in math symbols
+ (if design_size < 7: ((design_size*3)+13)
+ elseif design_size < 12: ((design_size*2)+20)
+ else: ((design_size*3.0303030303)+7.6363636364)fi)/100pt#;
+
+dish#:= % amount erased at top or bottom of serifs
+ 0pt#;
+
+bracket#:= % vertical distance from serif base to tangent
+ 0pt#;
+
+jut#:= % protrusion of lowercase serifs
+ 0pt#;
+
+cap_jut#:= % protrusion of uppercase serifs
+ 0pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ 0pt#;
+
+beak#:= % vertical protrusion of beak serifs
+ (if design_size < 9: ((design_size*1)-4)
+ elseif design_size < 10: (5)
+%elseif design_size < 12: (design_size*0.5)
+ else: ((-(0.01665001665*design_size*design_size) +
+ (0.8663003663*design_size) -
+ (1.998001998))-0.00048)fi)/360pt#;
+
+vair#:= % vertical diameter of hairlines
+ (if design_size < 9: ((design_size*20)+30)
+ elseif design_size < 10: ((design_size*10)+120)
+%elseif design_size < 12: ((design_size*20)+20)
+ else: (((0.37462537462*design_size*design_size) +
+ (11.758241758*design_size) +
+ (64.955044955))+0.00106)fi)/360pt#;
+
+notch_cut#:= % maximum breadth above or below notches
+ (if design_size < 10: ((design_size*10)+80)
+ else: (-(design_size*design_size*0.14568764568) +
+ (design_size*23.205128205) -
+ (37.482517482))fi)/360pt#;
+
+bar#:= % lowercase bar thickness
+ (if design_size < 9: ((design_size*20)+20)
+ elseif design_size < 10: ((design_size*10)+110)
+%elseif design_size < 12: ((design_size*20)+10)
+ else: ((0.11446886446*design_size*design_size) +
+ (17.481684981*design_size) +
+ (23.736263736))fi)/360pt#;
+
+slab#:= % serif and arm thickness
+ (if design_size < 9: ((design_size*20)+40)
+ elseif design_size < 10: ((design_size*10)+130)
+ elseif design_size < 12: ((design_size*20)+30)
+ else: ((design_size*24.6212121212)-25.45454545)fi)/360pt#;
+
+cap_bar#:= % uppercase bar thickness
+ (if design_size < 9: ((design_size*20)+30)
+ elseif design_size < 10: ((design_size*10)+120)
+%elseif design_size < 12: ((design_size*20)+20)
+ else: (((0.37462537462*design_size*design_size) +
+ (11.758241758*design_size) +
+ (64.955044955))+0.00106)fi)/360pt#;
+
+cap_band#:= % uppercase thickness above/below lobes
+ (if design_size < 9: ((design_size*20)+10)
+ elseif design_size < 10: ((design_size*10)+100)
+%elseif design_size < 12: (design_size*20)
+ else: ((0.11446886446*design_size*design_size) +
+ (17.481684981*design_size) +
+ (13.736263736))fi)/360pt#;
+
+cap_notch_cut#:= % max breadth above/below uppercase notches
+ (if design_size < 9: ((design_size*20)+60)
+ elseif design_size < 10: ((design_size*10)+150)
+ else: (-(design_size*design_size*0.218531468531) +
+ (design_size*34.8076923076) -
+ 76.2237762237)fi)/360pt#;
+
+serif_drop#:= % vertical drop of sloped serifs
+ 20/360pt#;
+
+stem_corr#:= % for small refinements of stem breadth
+ 10/360pt#;
+
+vair_corr#:= % for small refinements of hairline height
+ 10/360pt#;
+
+apex_corr#:= % extra width at diagonal junctions
+ (if design_size < 10: (design_size*5)
+ else: (-(0.426656676656*design_size*design_size) +
+ (14.3864468864*design_size) -
+ (51.1988011988))fi)/360pt#;
+
+o#:= % amount of overshoot for curves
+ (if design_size < 7: ((design_size*5)+15)
+ elseif design_size < 10: ((design_size*10)-20)
+%elseif design_size < 12: ((design_size*5)+30)
+ else: ((-(0.42665667665*design_size*design_size) +
+ (14.386446886*design_size) -
+ (21.198801198))-0.00082)fi)/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ 0/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0;
+
+fudge:= % factor applied to weights of heavy characters
+ (if design_size < 9: ((design_size*2)+77)
+ elseif design_size < 14: ((design_size*1)+86)
+ else: (100)fi)/100;
+
+math_spread:= % extra openness of math symbols
+ (if design_size < 10: (-(design_size*20)+200)
+ else: ((design_size*design_size*0.853313353313) -
+ (design_size*28.7728937728) +
+ 202.39760239)fi)/100;
+
+superness:= % parameter for superellipses
+ 1/sqrt2;
+
+superpull:= % extra openness inside bowls
+ 1/20;
+
+beak_darkness:= % fraction of triangle inside beak serifs
+ 0;
+
+ligs:= % level of ligatures to be included
+ (if design_size < 6: (1)
+ else: (2)fi);
+
+square_dots:= % should dots be square?
+ true;
+
+hefty:= % should we try hard not to be overweight?
+ true;
+
+serifs:= % should serifs and bulbs be attached?
+ false;
+
+monospace:= % should all characters have the same width?
+ false;
+
+variant_g:= % should an italic-style g be used?
+ false;
+
+low_asterisk:= % should the asterisk be centered at the axis?
+ false;
+
+math_fitting:= % should math-mode spacing be used?
+ false;
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmssbx.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmssbx.mf
new file mode 100644
index 00000000000..3c6a837731d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmssbx.mf
@@ -0,0 +1,71 @@
+% Parameters for CMSSBX and CMINCH.
+
+u#:=(22*(design_size/10))/36pt#; % unit width
+width_adj#:=(22*(design_size/10))/36pt#; % width adjustment for certain characters
+serif_fit#:=(-9*(design_size/10))/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=(-11*(design_size/10))/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=(270*(design_size/10))/36pt#; % height of tallest characters
+asc_height#:=(250*(design_size/10))/36pt#; % height of lowercase ascenders
+cap_height#:=(250*(design_size/10))/36pt#; % height of caps
+fig_height#:=(250*(design_size/10))/36pt#; % height of numerals
+x_height#:=(165*(design_size/10))/36pt#; % height of lowercase without ascenders
+math_axis#:=(90*(design_size/10))/36pt#; % axis of symmetry for math symbols
+bar_height#:=(90*(design_size/10))/36pt#; % height of crossbar in lowercase e
+comma_depth#:=(38*(design_size/10))/36pt#; % depth of comma below baseline
+desc_depth#:=(70*(design_size/10))/36pt#; % depth of lowercase descenders
+
+crisp#:=(26*(design_size/10))/36pt#; % diameter of serif corners
+tiny#:=(26*(design_size/10))/36pt#; % diameter of rounded corners
+fine#:=(9*(design_size/10))/36pt#; % diameter of sharply rounded corners
+thin_join#:=(9*(design_size/10))/36pt#; % width of extrafine details
+hair#:=(49*(design_size/10))/36pt#; % lowercase hairline breadth
+stem#:=(49*(design_size/10))/36pt#; % lowercase stem breadth
+curve#:=(49*(design_size/10))/36pt#; % lowercase curve breadth
+ess#:=(43*(design_size/10))/36pt#; % breadth in middle of lowercase s
+flare#:=(40*(design_size/10))/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=(47*(design_size/10))/36pt#; % diameter of dots
+cap_hair#:=(49*(design_size/10))/36pt#; % uppercase hairline breadth
+cap_stem#:=(53*(design_size/10))/36pt#; % uppercase stem breadth
+cap_curve#:=(53*(design_size/10))/36pt#; % uppercase curve breadth
+cap_ess#:=(51*(design_size/10))/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=(30*(design_size/10))/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=(1.5*(design_size/10))/36pt#; % vertical protrusion of beak serifs
+vair#:=(26*(design_size/10))/36pt#; % vertical diameter of hairlines
+notch_cut#:=(49*(design_size/10))/36pt#; % maximum breadth above or below notches
+bar#:=(26*(design_size/10))/36pt#; % lowercase bar thickness
+slab#:=(36*(design_size/10))/36pt#; % serif and arm thickness
+cap_bar#:=(34*(design_size/10))/36pt#; % uppercase bar thickness
+cap_band#:=(31*(design_size/10))/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=(45*(design_size/10))/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=(2*(design_size/10))/36pt#; % vertical drop of sloped serifs
+stem_corr#:=(1*(design_size/10))/36pt#; % for small refinements of stem breadth
+vair_corr#:=(2*(design_size/10))/36pt#; % for small refinements of hairline height
+apex_corr#:=(18*(design_size/10))/36pt#; % extra width at diagonal junctions
+
+o#:=(8*(design_size/10))/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.88; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=3/4; % parameter for superellipses
+superpull:=1/18; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmssq.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmssq.mf
new file mode 100644
index 00000000000..34c4f9d8a57
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmssq.mf
@@ -0,0 +1,71 @@
+% Parameters for Computer Modern Sans Serif Quotation Style
+
+u#:=(20*(design_size/8))/36pt#; % unit width
+width_adj#:=(2*(design_size/8))/36pt#; % width adjustment for certain characters
+serif_fit#:=(-10*(design_size/8))/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=(-14*(design_size/8))/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=(220*(design_size/8))/36pt#; % height of tallest characters
+asc_height#:=(200*(design_size/8))/36pt#; % height of lowercase ascenders
+cap_height#:=(197*(design_size/8))/36pt#; % height of caps
+fig_height#:=(190*(design_size/8))/36pt#; % height of numerals
+x_height#:=(150*(design_size/8))/36pt#; % height of lowercase without ascenders
+math_axis#:=(80*(design_size/8))/36pt#; % axis of symmetry for math symbols
+bar_height#:=(80*(design_size/8))/36pt#; % height of crossbar in lowercase e
+comma_depth#:=(40*(design_size/8))/36pt#; % depth of comma below baseline
+desc_depth#:=(40*(design_size/8))/36pt#; % depth of lowercase descenders
+
+crisp#:=(18*(design_size/8))/36pt#; % diameter of serif corners
+tiny#:=(18*(design_size/8))/36pt#; % diameter of rounded corners
+fine#:=(8*(design_size/8))/36pt#; % diameter of sharply rounded corners
+thin_join#:=(8*(design_size/8))/36pt#; % width of extrafine details
+hair#:=(23*(design_size/8))/36pt#; % lowercase hairline breadth
+stem#:=(23*(design_size/8))/36pt#; % lowercase stem breadth
+curve#:=(23*(design_size/8))/36pt#; % lowercase curve breadth
+ess#:=(23*(design_size/8))/36pt#; % breadth in middle of lowercase s
+flare#:=(21*(design_size/8))/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=(28*(design_size/8))/36pt#; % diameter of dots
+cap_hair#:=(23*(design_size/8))/36pt#; % uppercase hairline breadth
+cap_stem#:=(27*(design_size/8))/36pt#; % uppercase stem breadth
+cap_curve#:=(27*(design_size/8))/36pt#; % uppercase curve breadth
+cap_ess#:=(27*(design_size/8))/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=(20*(design_size/8))/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=0pt#; % vertical protrusion of beak serifs
+vair#:=(18*(design_size/8))/36pt#; % vertical diameter of hairlines
+notch_cut#:=(23*(design_size/8))/36pt#; % maximum breadth above or below notches
+bar#:=(18*(design_size/8))/36pt#; % lowercase bar thickness
+slab#:=(19*(design_size/8))/36pt#; % serif and arm thickness
+cap_bar#:=(19*(design_size/8))/36pt#; % uppercase bar thickness
+cap_band#:=(19*(design_size/8))/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=(23*(design_size/8))/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=(.5*(design_size/8))/36pt#; % for small refinements of stem breadth
+vair_corr#:=(.5*(design_size/8))/36pt#; % for small refinements of hairline height
+apex_corr#:=(4*(design_size/8))/36pt#; % extra width at diagonal junctions
+
+o#:=(6*(design_size/8))/36pt#; % amount of overshoot for curves
+apex_o#:=(2*(design_size/8))/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.95; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/10; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmsy.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmsy.mf
new file mode 100644
index 00000000000..f20ab7ba01e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmsy.mf
@@ -0,0 +1,14 @@
+% Parameters for (I)CMSY
+% This is essentially the Computer Modern Math Italic family with more
+% parameters and a different character set.
+
+input c-cmmi;
+subs:= % subscript point size
+ (if design_size < 7.5: (5/design_size)
+ elseif design_size < 9.5: (6/design_size)
+ elseif design_size < 10.5: (7/design_size)
+ elseif design_size < 12.5: (8/design_size)
+ elseif design_size < 12.96: (1/1.44)
+ else: (1/1.2)fi);
+input c-sigma;
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmti.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmti.mf
new file mode 100644
index 00000000000..02df3b68d11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmti.mf
@@ -0,0 +1,92 @@
+% Compute the font construction parameters for the Computer
+% Modern Text Italic family. This is computed as a modification
+% of Computer Modern Roman.
+
+input c-cmr;
+
+u#:= % unit width
+ (if design_size < 10: ((design_size*design_size*1) -
+ (design_size*5) + 134)
+ else: ((design_size*16)+24)fi)/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ (if design_size < 8: (-(design_size*15)+199)
+ elseif design_size < 9: ((design_size*06)+31)
+ elseif design_size < 10: ((design_size*7)+22)
+ else: ((design_size*8)+12)fi)/360pt#;
+
+crisp#:= % diameter of serif corners
+ (if design_size < 7: ((design_size*5)+35)
+ elseif design_size < 8: (design_size*10)
+ else: (80)fi)/360pt#;
+
+hair#:= % lowercase hairline breadth
+ (if design_size < 8: ((design_size*5)+70)
+ elseif design_size < 10: (110)
+ else: ((design_size*5)+60)fi)/360pt#;
+
+stem#:= % lowercase stem breadth
+ (if design_size < 8: ((design_size*15)+80)
+ elseif design_size < 9: ((design_size*20)+40)
+ elseif design_size < 10: ((design_size*10)+130)
+ else: ((design_size*15)+80)fi)/360pt#;
+
+curve#:= % lowercase curve breadth
+ (if design_size < 8: ((design_size*20)+75)
+ elseif design_size < 9: ((design_size*25)+35)
+ elseif design_size < 10: ((design_size*20)+80)
+ else: ((design_size*15)+130)fi)/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ (if design_size < 7: (-(design_size*design_size*5) +
+ (design_size*105)-280)
+ elseif design_size < 10: ((design_size*20)+70)
+ else: ((design_size*10)+170)fi)/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ (if design_size < 8: (design_size*30)
+ elseif design_size < 9: ((design_size*20)+80)
+ elseif design_size < 10: ((design_size*30)-10)
+ else: ((design_size*15)+140)fi)/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ (if design_size < 7: ((design_size*5)+70)
+ elseif design_size < 10: (110)
+ else: ((design_size*2.5)+85)fi)/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ (if design_size < 10: ((design_size*design_size*2.5) -
+ (design_size*17.5) + 215)
+ else: ((design_size*15)+140)fi)/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ (if design_size < 8: ((design_size*25)+70)
+ elseif design_size < 9: ((design_size*30)+30)
+ elseif design_size < 10: ((design_size*40)-60)
+ else: ((design_size*15)+190)fi)/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ (if design_size < 9: (design_size*30)
+ elseif design_size < 10: ((design_size*40)-90)
+ else: ((design_size*15)+160)fi)/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ (if design_size < 10: (design_size*30)
+ else: ((design_size*25)+50)fi)/360pt#;
+
+cap_jut#:= % protrusion of uppercase serifs
+ (if design_size < 8: ((design_size*30)+30)
+ elseif design_size < 10: ((design_size*35)-10)
+ else: ((design_size*20)+140)fi)/360pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ (if design_size < 8: ((design_size*5)+39)
+ elseif design_size < 9: ((design_size*6)+31)
+ elseif design_size < 10: ((design_size*5)+40)
+ else: ((design_size*7)+20)fi)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0.25;
+
+variant_g:= % should an italic-style g be used?
+ true;
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-cmtt.mf b/Master/texmf-dist/fonts/source/public/sauter/c-cmtt.mf
new file mode 100644
index 00000000000..8d4889bd23c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-cmtt.mf
@@ -0,0 +1,245 @@
+% Compute the font construction parameters for the Computer
+% Modern Typewriter Text family. Some other Computer Modern families
+% compute their parameters as modifications of these.
+
+u#:= % unit width
+ (if design_size < 10: ((design_size*design_size*1) +
+ (design_size*2)+90)
+ else: ((design_size*18.5)+25)fi)/360pt#;
+
+width_adj#:= % width adjustment for certain characters
+ 0pt#;
+
+serif_fit#:= % extra sidebar near lowercase serifs
+ 0pt#;
+
+cap_serif_fit#:= % extra sidebar near uppercase serifs
+ 0/360pt#;
+
+letter_fit#:= % extra space added to all sidebars
+ 0/360pt#;
+
+body_height#:= % height of tallest characters
+ (design_size*250)/360pt#;
+
+asc_height#:= % height of lowercase ascenders
+ (design_size*220)/360pt#;
+
+cap_height#:= % height of caps
+ (design_size*220)/360pt#;
+
+fig_height#:= % height of numerals
+ (design_size*220)/360pt#;
+
+x_height#:= % height of lowercase without ascenders
+ (design_size*155)/360pt#;
+
+math_axis#:= % axis of symmetry for math symbols
+ (design_size*110)/360pt#;
+
+bar_height#:= % height of crossbar in lowercase e
+ ((design_size*80)-10)/360pt#;
+
+comma_depth#:= % depth of comma below baseline
+ (design_size*50)/360pt#;
+
+desc_depth#:= % depth of lowercase descenders
+ (design_size*80)/360pt#;
+
+crisp#:= % diameter of serif corners
+ (if design_size < 9: ((design_size*20)+30)
+ elseif design_size < 10: ((design_size*10)+120)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+tiny#:= % diameter of rounded corners
+ (if design_size < 9: ((design_size*20)+30)
+ elseif design_size < 10: ((design_size*10)+120)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+fine#:= % diameter of sharply rounded corners
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 340)
+ else: ((design_size*5)+160)fi)/360pt#;
+
+thin_join#:= % width of extrafine details
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 340)
+ else: ((design_size*5)+160)fi)/360pt#;
+
+hair#:= % lowercase hairline breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+stem#:= % lowercase stem breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+curve#:= % lowercase curve breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+ess#:= % breadth in middle of lowercase s
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+flare#:= % diameter of bulbs or breadth of terminals
+ (if design_size < 10: ((design_size*20)+120)
+ else: ((design_size*15)+170)fi)/360pt#;
+
+dot_size#:= % diameter of dots
+ (if design_size < 9: ((design_size*20)+150)
+ elseif design_size < 10: ((design_size*30)+60)
+ else: ((design_size*15)+210)fi)/360pt#;
+
+cap_hair#:= % uppercase hairline breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+cap_stem#:= % uppercase stem breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+cap_curve#:= % uppercase curve breadth
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+cap_ess#:= % breadth in middle of uppercase s
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+rule_thickness#:= % thickness of lines in math symbols
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+dish#:= % amount erased at top or bottom of serifs
+ 0/360pt#;
+
+bracket#:= % vertical distance from serif base to tangent
+ 0/360pt#;
+
+jut#:= % protrusion of lowercase serifs
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*125) - 410)
+ else: ((design_size*25)+90)fi)/360pt#;
+
+cap_jut#:= % protrusion of uppercase serifs
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*125) - 410)
+ else: ((design_size*25)+90)fi)/360pt#;
+
+beak_jut#:= % horizontal protrusion of beak serifs
+ 0/360pt#;
+
+beak#:= % vertical protrusion of beak serifs
+ (if design_size < 10: (-(design_size*design_size*05) +
+ (design_size*125) - 410)
+ else: ((design_size*25)+90)fi)/360pt#;
+
+vair#:= % vertical diameter of hairlines
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+notch_cut#:= % maximum breadth above or below notches
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+bar#:= % lowercase bar thickness
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+slab#:= % serif and arm thickness
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+cap_bar#:= % uppercase bar thickness
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+cap_band#:= % uppercase thickness above/below lobes
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 330)
+ else: ((design_size*15)+70)fi)/360pt#;
+
+cap_notch_cut#:= % max breadth above/below uppercase notches
+ (if design_size < 10: (-(design_size*design_size*5) +
+ (design_size*105) - 300)
+ else: ((design_size*15)+100)fi)/360pt#;
+
+serif_drop#:= % vertical drop of sloped serifs
+ 0/360pt#;
+
+stem_corr#:= % for small refinements of stem breadth
+ 0/360pt#;
+
+vair_corr#:= % for small refinements of hairline height
+ 0/360pt#;
+
+apex_corr#:= % extra width at diagonal junctions
+ (if design_size < 10: (design_size*10)
+ else: ((design_size*5)+50)fi)/360pt#;
+
+o#:= % amount of overshoot for curves
+ ((design_size*5)-10)/360pt#;
+
+apex_o#:= % amount of overshoot for diagonal junctions
+ (if design_size < 10: (30)
+ else: ((design_size*5)-20)fi)/360pt#;
+
+slant:= % tilt ratio $(\Delta x/\Delta y)$
+ 0;
+
+fudge:= % factor applied to weights of heavy characters
+ (if design_size < 10: (81)
+ elseif design_size < 17.6: ((design_size*2.5)+56)
+ else: (100)fi)/100;
+
+math_spread:= % extra openness of math symbols
+ -1;
+
+superness:= % parameter for superellipses
+ 1/sqrt2;
+
+superpull:= % extra openness inside bowls
+ 0;
+
+beak_darkness:= % fraction of triangle inside beak serifs
+ 0;
+
+ligs:= % level of ligatures to be included
+ 0;
+
+square_dots:= % should dots be square?
+ false;
+
+hefty:= % should we try hard not to be overweight?
+ true;
+
+serifs:= % should serifs and bulbs be attached?
+ true;
+
+monospace:= % should all characters have the same width?
+ true;
+
+variant_g:= % should an italic-style g be used?
+ false;
+
+low_asterisk:= % should the asterisk be centered at the axis?
+ true;
+
+math_fitting:= % should math-mode spacing be used?
+ false;
+
diff --git a/Master/texmf-dist/fonts/source/public/sauter/c-sigma.mf b/Master/texmf-dist/fonts/source/public/sauter/c-sigma.mf
new file mode 100644
index 00000000000..53d351f6aa7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/sauter/c-sigma.mf
@@ -0,0 +1,88 @@
+% Compute the math symbol font parameters sigma 8 through sigma 22.
+% 22-MAY-1994: Changed formulae for sup1 and sup2 above 10pt# (JK)
+
+% Having this match |rule_thickness| is a nice idea, but the AMS CM fonts
+% fonts set it to a constant 0.4pt.
+
+rth# :=
+ (if design_size <= 9pt#: 0.4pt#
+ else: rule_thickness#
+ fi);
+
+% Parameters $\sigma_8$ through $\sigma_{22}$ will now be listed.
+
+fontdimen 8: % num1
+ math_axis# + 3.51rth#
+ + (if design_size < 9: 360
+ else: ((design_size*180)-1260) fi) / 360pt#
+ + subs * desc_depth#,
+
+ math_axis#+1.51rth#+
+ (if design_size < 6: ((design_size*60)-270)
+ elseif design_size < 7: ((design_size*30)-90)
+ elseif design_size < 9: (-(design_size*design_size*30) +
+ (design_size*570) - 2400)
+ else: (300)fi)/360pt#, % num2
+
+ math_axis#+1.51rth#+
+ (if design_size < 7: ((design_size*50)-10)
+ elseif design_size < 8: ((design_size*40)+60)
+ else: ((design_size*50)-20)fi)/360pt#, % num3
+
+ -(math_axis#-3.51rth#-subs*fig_height#+
+ (if design_size < 6: (-(design_size*110)-80)
+ elseif design_size < 8: (-(design_size*120)-20)
+ else: (-(design_size*130)+60)fi)/360pt#), % denom1
+
+ -(math_axis#-1.51rth#-subs*fig_height#-
+ (if design_size < 6: ((design_size*60)-270)
+ elseif design_size < 7: ((design_size*30)-90)
+ elseif design_size < 9: (-(design_size*design_size*30) +
+ (design_size*570) - 2400)
+ else: (300)fi)/360pt#), % denom2
+
+ ((if design_size < 8: ((design_size*50)+349)
+ elseif design_size < 9: ((design_size*100)-51)
+ elseif design_size < 10: ((design_size*50)+399)
+ else: ((design_size*90)-1)fi)/100pt#) -
+ subs*asc_height#, % sup1
+
+ ((if design_size < 8: ((design_size*50)+299)
+ elseif design_size < 9: ((design_size*100)-101)
+ elseif design_size < 10: ((design_size*50)+349)
+ else: ((design_size*90)-51)fi)/100pt#) -
+ subs*asc_height#, % sup2
+
+ (if design_size < 6: ((design_size*90)+80)
+ elseif design_size < 8: ((design_size*100)+20)
+ else: ((design_size*110)-60)fi)/360pt#, % sup3
+
+ (if design_size < 9: (360)
+ elseif design_size < 10: ((design_size*180)-1260)
+ else: ((design_size*110)-560)fi)/360pt#, % sub1
+
+ (if design_size < 9: (72/36pt#)
+ elseif design_size < 10: -((((design_size*50)+349)/100pt#) -
+ 2subs*asc_height#-3.1rth#)
+ else: ((if font_identifier_ <> "CMBSY": 247.217
+ else: 309.219 fi)
+ /100pt#)fi), % sub2
+
+ subs*asc_height#-36/36pt#, % sup\_drop
+
+ 180/360pt#, % sub\_drop
+
+ (if design_size < 6: ((design_size*20)-1)
+ elseif design_size < 8: (119)
+ elseif design_size < 9: ((design_size*120)-841)
+ elseif design_size < 10: (239)
+ else: ((design_size*25)-11)fi)/10pt#, % delim1
+
+ (if design_size < 6: ((design_size*10)+21)
+ elseif design_size < 7: (81)
+ elseif design_size < 8: ((design_size*10)+11)
+ elseif design_size < 9: (91)
+ elseif design_size < 10: ((design_size*10)+1)
+ else: ((design_size*5)+51)fi)/10pt#, % delim2
+
+ math_axis#; % axis\_height
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/semaf.mf b/Master/texmf-dist/fonts/source/public/semaphor/semaf.mf
new file mode 100644
index 00000000000..874e98d7cfd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/semaf.mf
@@ -0,0 +1,691 @@
+%% SEMAPHORE ALPHABET FONT, METAFONT driver file "semaf.mf"
+%%
+%% Font znaku semaforove abecedy, ridici soubor pro METAFONT.
+%%
+%% Copyright (C) 1998 Vit ZYKA, zyka@cmp.felk.cvut.cz
+%%
+%% This program is free software; you can redistribute it and/or
+%% modify it under the terms of the GNU General Public License
+%% as published by the Free Software Foundation; either version 2
+%% of the License, or (at your option) any later version.
+%%
+%% This program is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+%% GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public License
+%% along with this program; if not, see web page
+%% http://www.gnu.org/copyleft/fdl.html or write to the Free Software
+%% Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+%%
+% ----------------------------------------------------------------------- CODE
+L#:=4.75u#; % left width
+C#:=1u#; % center width
+R#:=4.75u#; % right width
+H#:=10u#; % character height
+HC#:=H#/2; % center height
+%% |width#|, |height#|, |WC#|, |HC#| (center width, height)
+%% is evaluated in macro |beginchar|
+define_pixels(u,C);
+
+% ----------------------------------------------------------------------- BASE
+def base_empty=
+ pickup pencircle scaled (series*1*u);
+ drawdot origin slanted slant;
+enddef;
+
+def base_pillar=
+ pickup pencircle scaled (series*1*u);
+ drawdot origin slanted slant;
+ pickup pencircle scaled (series*.2*u);
+ draw (origin--(0,-HC)) slanted slant;
+ draw ((-C,-HC)--(C,-HC)) slanted slant;
+enddef;
+
+def base_person=
+ pickup pencircle scaled (series*1.2*u);
+ drawdot (0,.4*HC) slanted slant;
+ pickup pencircle scaled (series*.2*u);
+ draw ((0,.4*HC)--(0,-.2*HC)) slanted slant;
+ draw ((-.7C,-HC)--(0,-.2*HC)--(.7C,-HC)) slanted slant;
+enddef;
+
+% ---------------------------------------------------------------------- FLAG
+r:=if proportional: 4.5u else: 4.3u fi; % flag radius
+a:=1.5u; % flag width
+b:=1.8u; % flag height
+def flag=
+ pickup pencircle scaled (series*.5*u);
+ draw (origin--(r,0)) withweight 2;
+ pickup pencircle scaled (series*.3*u);
+ unfill ((r,0)--(r-a,0)--(r-a,b)--cycle);
+ draw ((r-a,0)--(r-a,b)--(r,b)--(r,0));
+ fill ((r,0)--(r-a,b)--(r,b)--cycle);
+enddef;
+def flagL(expr angel)=
+ begingroup;
+ save currenttransform; transform currenttransform;
+ currenttransform:= identity rotated angel slanted slant;
+ flag;
+ endgroup;
+enddef;
+def flagR(expr angel)=
+ begingroup;
+ save currenttransform; transform currenttransform;
+ currenttransform:= identity reflectedabout ((0,0),(1,0))
+ rotated angel slanted slant;
+ flag;
+ endgroup;
+enddef;
+
+uu:=0.95; % upper portion of |L#| (|R#|)
+bb:=0.8; % botton
+dd:=0.55; % character d
+
+def charA=
+ if SL#<(uu*L#): SL#:= bb*L# fi;
+ flagL(-135);
+enddef;
+
+def charB=
+ SL#:= L#;
+ flagL(180);
+enddef;
+
+def charC=
+ if SL#<L#: SL#:= uu*L# fi;
+ SH#:= H#;
+ flagL(135);
+enddef;
+
+def charD=
+ if SL#<(bb*L#): SL#:= dd*L#; fi;
+ charic:= slant*HC#;
+ SH#:= H#;
+ flagL(90);
+enddef;
+
+def charE=
+ if SR#<R#: SR#:= uu*R# fi;
+ SH#:= H#;
+ if charic=0: charic:=.5*slant*HC# fi;
+ flagR(45);
+enddef;
+
+def charF=
+ SR#:= R#;
+ flagR(0);
+enddef;
+
+def charG=
+ if SR#<(uu*R#): SR#:= bb*R# fi;
+ flagR(-45);
+enddef;
+
+def sipka(expr length, direct, point)=
+ begingroup
+ save x,y;
+ z1=origin; x2=x3=-length; -y2=y3=3/7length;
+ draw (z2..{dir 5}z1) rotated direct shifted point slanted slant;
+ draw (z3..{dir -5}z1) rotated direct shifted point slanted slant;
+ endgroup
+enddef;
+
+% ------------------------------------ extensions tokens into begin and end char
+extra_beginchar:=
+ "SL#:= 0.75u#; SR#:= 0.75u#; SH#:= HC#+(C#/2);";
+extra_endchar:=
+ "if proportional:" &
+ "WC#:= (C#/2)+SL#;" &
+ "charwd:= SL#+C#+SR#; charht:= SH#; chardp:= 0u#;" &
+ "else:" &
+ "charwd:= L#+(C#/2)+R#; WC#:= charwd/2; charht:= SH#; chardp:= 0u#;" &
+ "fi;" &
+ "w:=hround(charwd*hppp); h:=vround(charht*hppp); d:= vround(chardp*hppp);" &
+ "define_pixels( WC, HC);" &
+ "scantokens center;" &
+ "currentpicture:= currentpicture shifted (WC,HC);";
+
+% ------------------------------------------------------------ lowercase letter
+beginchar("a", 0pt, 0pt, 0pt);
+ charA;
+endchar;
+
+beginchar("b", 0pt, 0pt, 0pt);
+ charB;
+endchar;
+
+beginchar("c", 0pt, 0pt, 0pt);
+ charC;
+endchar;
+
+beginchar("d", 0pt, 0pt, 0pt);
+ charD;
+endchar;
+
+beginchar("e", 0pt, 0pt, 0pt);
+ charE;
+endchar;
+
+beginchar("f", 0pt, 0pt, 0pt);
+ charF;
+endchar;
+
+beginchar("g", 0pt, 0pt, 0pt);
+ charG;
+endchar;
+
+beginchar("h", 0pt, 0pt, 0pt);
+ charA; charB;
+endchar;
+
+beginchar("i", 0pt, 0pt, 0pt);
+ charA; charC;
+endchar;
+
+beginchar("k", 0pt, 0pt, 0pt);
+ charA; charD;
+endchar;
+
+beginchar("l", 0pt, 0pt, 0pt);
+ charA; charE;
+endchar;
+
+beginchar("m", 0pt, 0pt, 0pt);
+ charA; charF;
+endchar;
+
+beginchar("n", 0pt, 0pt, 0pt);
+ charA; charG;
+endchar;
+
+beginchar("o", 0pt, 0pt, 0pt);
+ charB; charC;
+endchar;
+
+beginchar("p", 0pt, 0pt, 0pt);
+ charB; charD;
+endchar;
+
+beginchar("q", 0pt, 0pt, 0pt);
+ charB; charE;
+endchar;
+
+beginchar("r", 0pt, 0pt, 0pt);
+ charB; charF;
+endchar;
+
+beginchar("s", 0pt, 0pt, 0pt);
+ charB; charG;
+endchar;
+
+beginchar("t", 0pt, 0pt, 0pt);
+ charC; charD;
+endchar;
+
+beginchar("u", 0pt, 0pt, 0pt);
+ charC; charE;
+endchar;
+
+beginchar("y", 0pt, 0pt, 0pt);
+ charC; charF;
+endchar;
+
+beginchar("j", 0pt, 0pt, 0pt);
+ charD; charF;
+endchar;
+
+beginchar("v", 0pt, 0pt, 0pt);
+ charD; charG;
+endchar;
+
+beginchar("w", 0pt, 0pt, 0pt);
+ charE; charF;
+endchar;
+
+beginchar("x", 0pt, 0pt, 0pt);
+ charE; charG;
+endchar;
+
+beginchar("z", 0pt, 0pt, 0pt);
+ charF; charG;
+endchar;
+
+% -------------------------------------------------------------- capital letter
+beginchar("A", 0pt, 0pt, 0pt);
+ charA;
+endchar;
+
+beginchar("B", 0pt, 0pt, 0pt);
+ charB;
+endchar;
+
+beginchar("C", 0pt, 0pt, 0pt);
+ charC;
+endchar;
+
+beginchar("D", 0pt, 0pt, 0pt);
+ charD;
+endchar;
+
+beginchar("E", 0pt, 0pt, 0pt);
+ charE;
+endchar;
+
+beginchar("F", 0pt, 0pt, 0pt);
+ charF;
+endchar;
+
+beginchar("G", 0pt, 0pt, 0pt);
+ charG;
+endchar;
+
+beginchar("H", 0pt, 0pt, 0pt);
+ charA; charB;
+endchar;
+
+beginchar("I", 0pt, 0pt, 0pt);
+ charA; charC;
+endchar;
+
+beginchar("K", 0pt, 0pt, 0pt);
+ charA; charD;
+endchar;
+
+beginchar("L", 0pt, 0pt, 0pt);
+ charA; charE;
+endchar;
+
+beginchar("M", 0pt, 0pt, 0pt);
+ charA; charF;
+endchar;
+
+beginchar("N", 0pt, 0pt, 0pt);
+ charA; charG;
+endchar;
+
+beginchar("O", 0pt, 0pt, 0pt);
+ charB; charC;
+endchar;
+
+beginchar("P", 0pt, 0pt, 0pt);
+ charB; charD;
+endchar;
+
+beginchar("Q", 0pt, 0pt, 0pt);
+ charB; charE;
+endchar;
+
+beginchar("R", 0pt, 0pt, 0pt);
+ charB; charF;
+endchar;
+
+beginchar("S", 0pt, 0pt, 0pt);
+ charB; charG;
+endchar;
+
+beginchar("T", 0pt, 0pt, 0pt);
+ charC; charD;
+endchar;
+
+beginchar("U", 0pt, 0pt, 0pt);
+ charC; charE;
+endchar;
+
+beginchar("Y", 0pt, 0pt, 0pt);
+ charC; charF;
+endchar;
+
+beginchar("J", 0pt, 0pt, 0pt);
+ charD; charF;
+endchar;
+
+beginchar("V", 0pt, 0pt, 0pt);
+ charD; charG;
+endchar;
+
+beginchar("W", 0pt, 0pt, 0pt);
+ charE; charF;
+endchar;
+
+beginchar("X", 0pt, 0pt, 0pt);
+ charE; charG;
+endchar;
+
+beginchar("Z", 0pt, 0pt, 0pt);
+ charF; charG;
+endchar;
+
+% --------------------------------------------------- accented letters (in IL2)
+beginchar(152, 0pt, 0pt, 0pt);
+ charA;
+endchar;
+
+beginchar(165, 0pt, 0pt, 0pt);
+ charA; charE;
+endchar;
+
+beginchar(169, 0pt, 0pt, 0pt);
+ charB; charG;
+endchar;
+
+beginchar(171, 0pt, 0pt, 0pt);
+ charC; charD;
+endchar;
+
+beginchar(174, 0pt, 0pt, 0pt);
+ charF; charG;
+endchar;
+
+beginchar(181, 0pt, 0pt, 0pt);
+ charA; charE;
+endchar;
+
+beginchar(184, 0pt, 0pt, 0pt);
+ charA;
+endchar;
+
+beginchar(185, 0pt, 0pt, 0pt);
+ charB; charG;
+endchar;
+
+beginchar(187, 0pt, 0pt, 0pt);
+ charC; charD;
+endchar;
+
+beginchar(190, 0pt, 0pt, 0pt);
+ charF; charG;
+endchar;
+
+beginchar(192, 0pt, 0pt, 0pt);
+ charB; charF;
+endchar;
+
+beginchar(193, 0pt, 0pt, 0pt);
+ charA;
+endchar;
+
+beginchar(196, 0pt, 0pt, 0pt);
+ charA;
+endchar;
+
+beginchar(197, 0pt, 0pt, 0pt);
+ charA; charE;
+endchar;
+
+beginchar(200, 0pt, 0pt, 0pt);
+ charC;
+endchar;
+
+beginchar(201, 0pt, 0pt, 0pt);
+ charE;
+endchar;
+
+beginchar(204, 0pt, 0pt, 0pt);
+ charE;
+endchar;
+
+beginchar(205, 0pt, 0pt, 0pt);
+ charA; charC;
+endchar;
+
+beginchar(207, 0pt, 0pt, 0pt);
+ charD;
+endchar;
+
+beginchar(210, 0pt, 0pt, 0pt);
+ charA; charG;
+endchar;
+
+beginchar(211, 0pt, 0pt, 0pt);
+ charB; charC;
+endchar;
+
+beginchar(212, 0pt, 0pt, 0pt);
+ charB; charC;
+endchar;
+
+beginchar(214, 0pt, 0pt, 0pt);
+ charB; charC;
+endchar;
+
+beginchar(216, 0pt, 0pt, 0pt);
+ charB; charF;
+endchar;
+
+beginchar(217, 0pt, 0pt, 0pt);
+ charC; charE;
+endchar;
+
+beginchar(218, 0pt, 0pt, 0pt);
+ charC; charE;
+endchar;
+
+beginchar(220, 0pt, 0pt, 0pt);
+ charC; charE;
+endchar;
+
+beginchar(221, 0pt, 0pt, 0pt);
+ charC; charF;
+endchar;
+
+beginchar(224, 0pt, 0pt, 0pt);
+ charB; charF;
+endchar;
+
+beginchar(225, 0pt, 0pt, 0pt);
+ charA;
+endchar;
+
+beginchar(228, 0pt, 0pt, 0pt);
+ charA;
+endchar;
+
+beginchar(229, 0pt, 0pt, 0pt);
+ charA; charE;
+endchar;
+
+beginchar(232, 0pt, 0pt, 0pt);
+ charC;
+endchar;
+
+beginchar(233, 0pt, 0pt, 0pt);
+ charE;
+endchar;
+
+beginchar(236, 0pt, 0pt, 0pt);
+ charE;
+endchar;
+
+beginchar(237, 0pt, 0pt, 0pt);
+ charA; charC;
+endchar;
+
+beginchar(239, 0pt, 0pt, 0pt);
+ charD;
+endchar;
+
+beginchar(242, 0pt, 0pt, 0pt);
+ charA; charG;
+endchar;
+
+beginchar(243, 0pt, 0pt, 0pt);
+ charB; charC;
+endchar;
+
+beginchar(244, 0pt, 0pt, 0pt);
+ charB; charC;
+endchar;
+
+beginchar(246, 0pt, 0pt, 0pt);
+ charB; charC;
+endchar;
+
+beginchar(248, 0pt, 0pt, 0pt);
+ charB; charF;
+endchar;
+
+beginchar(249, 0pt, 0pt, 0pt);
+ charC; charE;
+endchar;
+
+beginchar(250, 0pt, 0pt, 0pt);
+ charC; charE;
+endchar;
+
+beginchar(252, 0pt, 0pt, 0pt);
+ charC; charE;
+endchar;
+
+beginchar(253, 0pt, 0pt, 0pt);
+ charC; charF;
+endchar;
+
+% --------------------------------------------------------------------- digits
+beginchar("1", 0pt, 0pt, 0pt);
+ charA;
+endchar;
+
+beginchar("2", 0pt, 0pt, 0pt);
+ charB;
+endchar;
+
+beginchar("3", 0pt, 0pt, 0pt);
+ charC;
+endchar;
+
+beginchar("4", 0pt, 0pt, 0pt);
+ charD;
+endchar;
+
+beginchar("5", 0pt, 0pt, 0pt);
+ charE;
+endchar;
+
+beginchar("6", 0pt, 0pt, 0pt);
+ charF;
+endchar;
+
+beginchar("7", 0pt, 0pt, 0pt);
+ charG;
+endchar;
+
+beginchar("8", 0pt, 0pt, 0pt);
+ charA; charB;
+endchar;
+
+beginchar("9", 0pt, 0pt, 0pt);
+ charA; charC;
+endchar;
+
+beginchar("0", 0pt, 0pt, 0pt);
+ charA; charD;
+endchar;
+
+% ---------------------------------------------------------- special characters
+beginchar(" ", L#+C#+R#, 0pt, 0pt); % space
+endchar;
+
+beginchar("*", 0pt, 0pt, 0pt); % all flag positions (asterisk)
+ charA; charB; charC; charD; charE; charF; charG;
+endchar;
+
+beginchar(".", 0pt, 0pt, 0pt); % separator (period)
+ begingroup;
+ save currenttransform; transform currenttransform;
+ currenttransform:= identity rotated -90 slanted slant;
+ flag;
+ currenttransform:= identity reflectedabout ((0,0),(1,0))
+ rotated -90 slanted slant;
+ flag;
+ endgroup;
+ SL#:= L#; SR#:= R#;
+ k:= (r-a)++b;
+ pickup pencircle scaled (series*.2*u);
+ z1=(0,-k) rotated -50; z2=(0,-k) rotated 50;
+ draw (z1..(-k,0)..(0,k)..(k,0)..z2) slanted slant;
+ sipka( 2/5b, -50-5, z1); sipka( 2/5b, 180+50+5, z2);
+endchar;
+
+beginchar("~", 0pt, 0pt, 0pt); % mistake
+ charC; charG;
+endchar;
+
+beginchar("$", 0pt, 0pt, 0pt); % begin digits
+ charD; charE;
+endchar;
+
+beginchar("#", 0pt, 0pt, 0pt); % end digits
+ charD; charF;
+endchar;
+
+% ------------------------------------------------------- fontdimen parameters
+font_identifier:="SEMAF";
+font_coding_scheme:="TEX CS TEXT";
+designsize:=10u#;
+
+font_slant:=slant; % fontdimen 1
+font_height:=10u#; % 5
+if proportional:
+ font_normal_space:=8u#; % 2
+ font_normal_stretch:=4u#; % 3
+ font_normal_shrink:=2u#; % 4
+ font_extra_space:=5u#; % 7
+ font_quad:=16u#; % 6
+else:
+ font_normal_space:=10u#; % 2
+ font_normal_stretch:=0u#; % 3
+ font_normal_shrink:=0u#; % 4
+ font_extra_space:=10u#; % 7
+ font_quad:=20u#; % 6
+fi;
+
+% ------------------------------------------------------ kernings and ligatures
+def chars="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",
+ "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",
+ 152, 165, 169, 171, 174, 181, 184, 185, 187, 190, 192, 193, 196, 197,
+ 200, 201, 204, 205, 207, 210, 211, 212, 214, 216, 217, 218, 220, 221,
+ 224, 225, 228, 229, 232, 233, 236, 237, 239, 242, 243, 244, 246, 248,
+ 249, 250, 252, 253 enddef;
+def digits="1", "2", "3", "4", "5", "6", "7", "8", "9", "0" enddef;
+def chars_tr="e", "l", "q", "u", "$", "E", "L", "Q", "U",
+ 165, 181, 197, 201, 204, 217, 218, 220, 229, 233, 236, 249, 250, 252 enddef;
+def chars_br="g", "n", "s", "~", "v", "G", "N", "S", "V",
+ 169, 185, 210, 242 enddef;
+def digits_tr="5" enddef;
+def digits_br="7" enddef;
+def chars_nr="a", "b", "c", "d", "f", "h", "i", "j", "k", "m",
+ "o", "p", "r", "t", "w", "x", "y", "z",
+ "A", "B", "C", "D", "F", "H", "I", "J", "K", "M",
+ "O", "P", "R", "T", "W", "X", "Y", "Z",
+ 152, 171, 174, 184, 187, 190, 192, 193, 196, 200, 205, 207, 211, 212,
+ 214, 216, 221, 224, 225, 228, 232, 237, 239, 243, 244, 246, 248, 253 enddef;
+def digits_nr="1", "2", "3", "4", "6", "8", "9", "0" enddef;
+def tr=chars_tr, digits_tr enddef;
+def br=chars_br, digits_br enddef;
+def tl="c", "t", "u", "y", "~", "C", "T", "U", "Y", "3",
+ 171, 187, 200, 217, 218, 220, 221, 232, 249, 250, 252, 253 enddef;
+def bl="a", "l", "m", "n", "A", "L", "M", "N", "1",
+ 152, 165, 181, 184, 193, 196, 197, 210, 225, 228, 229, 242 enddef;
+def td="d", "$", "j", "v", "D", "J", "V", "4", 207, 239 enddef;
+boundarychar:=1;
+
+ligtable for i=chars_tr: i: endfor for i=digits: i|=:|>>"$", endfor skipto 1;
+ligtable for i=digits_tr: i: endfor for i=chars: i|=:|>>"#", endfor
+ 1|=:|"#", skipto 1;
+ligtable 1:: if proportional: for i=bl: i kern-1u#, endfor fi " " kern 0u#;
+ligtable for i=chars_br: i: endfor for i=digits: i|=:|>>"$", endfor skipto 2;
+ligtable for i=digits_br: i: endfor for i=chars: i|=:|>>"#", endfor
+ 1|=:|"#", skipto 2;
+ligtable 2:: if proportional: for i=tl: i kern-1u#, endfor
+ for i=td: i kern-.5u#, endfor fi " " kern 0u#;
+ligtable for i=chars_nr: i: endfor for i=digits: i|=:|>>"$", endfor
+ " "|=:>" ";
+ligtable for i=digits_nr: i: endfor for i=chars: i|=:|>>"#", endfor
+ 1|=:|"#";
+ligtable ||: for i=digits: i|=:|>>"$", endfor " "|=:>" ";
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfbf10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfbf10.mf
new file mode 100644
index 00000000000..518dd4d7a55
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfbf10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfbf10.mf"
+%% family: roman, series: bold, shape: upper, size: 10pt;
+%% base part: pillar
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: silny, tvar: rovny, velikost: 10pt;
+%% zakladna: sloupek
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=2; % series factor (1=medium)
+slant:=0; % slant factor (0=upper)
+proportional:=true; % font proportionality (false=nonproportial)
+center="base_pillar"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfebf10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfebf10.mf
new file mode 100644
index 00000000000..761e152a376
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfebf10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfebf10.mf"
+%% family: roman, series: bold, shape: upper, size: 10pt;
+%% base part: empty
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: silny, tvar: rovny, velikost: 10pt;
+%% zakladna: zadna
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=2; % series factor (1=medium)
+slant:=0; % slant factor (0=upper)
+proportional:=true; % font proportionality (false=nonproportial)
+center="base_empty"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfer10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfer10.mf
new file mode 100644
index 00000000000..454b4b4e78e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfer10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfer10.mf"
+%% family: roman, series: medium, shape: upper, size: 10pt;
+%% base part: empty
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: stredni, tvar: rovny, velikost: 10pt;
+%% zakladna: zadna
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=1; % series factor (1=medium)
+slant:=0; % slant factor (0=upper)
+proportional:=true; % font proportionality (false=nonproportial)
+center="base_empty"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfesl10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfesl10.mf
new file mode 100644
index 00000000000..cb0a0aceefb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfesl10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfesl10.mf"
+%% family: roman, series: medium, shape: slanted, size: 10pt;
+%% base part: empty
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: stredni, tvar: sikmy, velikost: 10pt;
+%% zakladna: zadna
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=1; % series factor (1=medium)
+slant:=0.4; % slant factor (0=upper)
+proportional:=true; % font proportionality (false=nonproportial)
+center="base_empty"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfett10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfett10.mf
new file mode 100644
index 00000000000..19ecc2858f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfett10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfett10.mf"
+%% family: roman, series: medium, shape: typewriter, size: 10pt;
+%% base part: empty
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: stredni, tvar: strojopis, velikost: 10pt;
+%% zakladna: zadna
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=1; % series factor (1=medium)
+slant:=0; % slant factor (0=upper)
+proportional:=false; % font proportionality (false=nonproportial)
+center="base_empty"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfpbf10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfpbf10.mf
new file mode 100644
index 00000000000..8d121b2a3d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfpbf10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfpbf10.mf"
+%% family: roman, series: bold, shape: upper, size: 10pt;
+%% base part: person
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: silny, tvar: rovny, velikost: 10pt;
+%% zakladna: postava
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=2; % series factor (1=medium)
+slant:=0; % slant factor (0=upper)
+proportional:=true; % font proportionality (false=nonproportial)
+center="base_person"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfpr10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfpr10.mf
new file mode 100644
index 00000000000..701da3b821f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfpr10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfpr10.mf"
+%% family: roman, series: medium, shape: upper, size: 10pt;
+%% base part: person
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: stredni, tvar: rovny, velikost: 10pt;
+%% zakladna: postava
+%%
+%% Vit ZYKA, 1998, zyka@vision.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=1; % series factor (1=medium)
+slant:=0; % slant factor (0=upper)
+proportional:=true; % font proportionality (false=typewriter)
+center="base_person"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfpsl10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfpsl10.mf
new file mode 100644
index 00000000000..1601876e736
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfpsl10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfpsl10.mf"
+%% family: roman, series: medium, shape: slanted, size: 10pt;
+%% base part: person
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: stredni, tvar: sikmy, velikost: 10pt;
+%% zakladna: postava
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=1; % series factor (1=medium)
+slant:=0.4; % slant factor (0=upper)
+proportional:=true; % font proportionality (false=nonproportial)
+center="base_person"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfptt10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfptt10.mf
new file mode 100644
index 00000000000..26dc1048797
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfptt10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfptt10.mf"
+%% family: roman, series: medium, shape: typewriter, size: 10pt;
+%% base part: person
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: stredni, tvar: strojopis, velikost: 10pt;
+%% zakladna: postava
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=1; % series factor (1=medium)
+slant:=0; % slant factor (0=upper)
+proportional:=false; % font proportionality (false=nonproportial)
+center="base_person"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfr10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfr10.mf
new file mode 100644
index 00000000000..1bf8dbca433
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfr10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smfr10.mf"
+%% family: roman, series: medium, shape: upper, size: 10pt;
+%% base part: pillar
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: stredni, tvar: rovny, velikost: 10pt;
+%% zakladna: sloupek
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=1; % series factor (1=medium)
+slant:=0; % slant factor (0=upper)
+proportional:=true; % font proportionality (false=nonproportial)
+center="base_pillar"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smfsl10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smfsl10.mf
new file mode 100644
index 00000000000..e2518479472
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smfsl10.mf
@@ -0,0 +1,19 @@
+% Characters of semaphore alphabet, METAFONT parametric file. "smfsl10.mf"
+% family: roman, series: medium, shape: slanted, size: 10pt
+% base part: pillar
+% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+% rodina: roman, duktus: stredni, tvar: sikmy, velikost: 10pt
+% zakladna: sloupek
+% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=1; % series factor (1=medium)
+slant:=0.4; % slant factor (0=upper)
+proportional:=true; % font proportionality (false=nonproportial)
+center="base_pillar"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/semaphor/smftt10.mf b/Master/texmf-dist/fonts/source/public/semaphor/smftt10.mf
new file mode 100644
index 00000000000..8f9d630bcbc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/semaphor/smftt10.mf
@@ -0,0 +1,21 @@
+%% Characters of semaphore alphabet, METAFONT parametric file "smftt10.mf"
+%% family: roman, series: medium, shape: typewriter, size: 10pt;
+%% base part: pillar
+%%
+%% Znaky semaforove abecedy, parametricky soubor pro METAFONT.
+%% rodina: roman, duktus: stredni, tvar: strojopis, velikost: 10pt;
+%% zakladna: sloupek
+%%
+%% Vit ZYKA, 1998, zyka@cmp.felk.cvut.cz
+
+mode_setup;
+boolean proportional; string center;
+
+u#:=1pt#; % unit (=1/10 font size)
+series:=1; % series factor (1=medium)
+slant:=0; % slant factor (0=upper)
+proportional:=false; % font proportionality (false=nonproportial)
+center="base_pillar"; % type of center part of character
+
+input semaf;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/simpsons/bart.mf b/Master/texmf-dist/fonts/source/public/simpsons/bart.mf
new file mode 100644
index 00000000000..f37d35cd3fe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/simpsons/bart.mf
@@ -0,0 +1,123 @@
+% bart.mf by Raymond Chen (rjc@math.princeton.edu)
+
+% Bart Simpson.
+
+pictureof(Bart, 24u#, 24u#, 0);
+ pickup thinpen;
+
+ localpath eye_left, eye_right;
+ eye_right = superellipse( (16.6u, 11.5u), (14u, 13.7u), (11.5u, 11u),
+ (13.5u, 9u), .7);
+ draw eye_right;
+
+ localpath nose;
+ nose = preclip((15u, 10u).. (17.5u, 10.8u){right} ...
+ (20u, 9.7u){down} ... (16.7u, 8.2u){left}, eye_right);
+ draw nose;
+
+ localpath dimple;
+ z1d = (12.8u, 6.3u);
+ z2d = (12.2u, 5.2u);
+ dimple = z1d{(z2d-z1d) rotated dimple_depth}..
+ {(z2d-z1d) rotated -dimple_depth}z2d;
+ draw dimple;
+ labels(1d, 2d);
+
+ localpath mouth;
+ mouth = prepostclip(
+ (18u, 9u).. tension infinity and 3..
+ (19.6u, 5.3u) ..
+ (19u, 5u){left} ..
+ (14.3u, 5u) ..
+ (12u, 6.2u), nose, dimple);
+ draw mouth;
+
+ eye_left = prepostclip(
+ (18u, 9.7u){right}..
+ (20u, 12.2u){up}..
+ (18u, 14.2u){left}..
+ {down}(15.5u, 12u), nose, eye_right);
+ draw eye_left;
+
+ % The spikes of the hair are equally spaced along a path.
+ % (Which means they really aren't equally spaced, since speed
+ % along a path is nonconstant. But that's good, because
+ % that introduces variability.)
+ %
+ % n is two less than the number of spikes atop Bart's head. Although
+ % you can choose any value you want, the official Bart has 9 spikes,
+ % so you should set n to 7.
+ %
+
+ localpath hair_top, hair_bot;
+ local(numeric)(bumpiness, n);
+ bumpiness = 5; n = 7;
+
+ z0h = (18.3u, 13u); z3h = (8.8u, 5.5u);
+ z1h = (15.5u, 22u); z2h = (4u, 18.6u);
+ z4h = (8.5u, 3.8u);
+
+ hair_top = z1h{(z2h-z1h) rotated -bumpiness} ..
+ {(z2h-z1h) rotated bumpiness}z2h;
+ z1h' = z1h - 2u * (z1h-z0h) / length(z1h-z0h);
+ z2h' = z2h - (2u * (z2h-z3h) / length(z2h-z3h)) rotated 10;
+ hair_bot = z1h'{(z2h-z1h) rotated -bumpiness} ..
+ {(z2h-z1h) rotated bumpiness}z2h';
+
+ % What we want is for the valleys to be equally spaced, but 50%
+ % further from the ends.
+ numeric t[];
+
+ % The following wild macro makes t0 ... t[n] equally spaced.
+
+ for i = 1 upto 2n: t[i] - t[i-1] = endfor
+
+ % and we make them 50% further from the far endpoints 0 and 1.
+
+ .6(t0 - 0) = .6(1 - t[2n]);
+
+ % But we allow the points to vary randomly, so it doesn't look
+ % too computerized.
+
+ localpath hair;
+ hair = preclip(z0h --- z1h ---
+ for i = 0 upto n-1:
+ point t[2i] of hair_bot
+ shifted (kemptness*(normaldeviate, normaldeviate)) ---
+ point t[2i+1] of hair_top
+ shifted (kemptness*(normaldeviate, normaldeviate)) ---
+ endfor
+ point t[2n] of hair_bot ---
+ z2h .. tension infinity and 1 .. z3h{down} .. z4h, eye_left);
+ draw hair;
+
+ numeric t;
+
+ localpath ear;
+ ear = (9.5u, 8.9u) .. (8u, 7.5u) ..(9.3u, 6.5u);
+ erase fill ear .. cycle;
+ draw ear;
+
+ drawtau( (8.5u, 7.8u), (9.5u, 8.2u), (9.1u, 7u), (9.1u, 8.3u) );
+
+ % chin and neck
+ z.chin = (14.4u, 2u);
+ draw preclip(
+ (17u, 5u){down} .. (16u, 4u){left} .. {(-1/2, -2)}z.chin,
+ mouth);
+
+ % Bart's shirt
+ z1s = (x4h - 1.2u, 0u);
+ z2s = z4h + (-.5u, -.8u);
+ z3s = z.chin + (.2u, -.2u);
+ z4s = (x.chin + .3u, 0u);
+ draw z1s
+ .. {z2s-z1s}z2s
+ .. {dir -45}z4h
+ .. (12u, 1.8u){right}
+ ... z.chin &
+ flex(z.chin, z3s, z4s);
+ labels(1s, 2s, 4h);
+
+ eyepos(Bart, 13.5u#, 11.2u#, 17.5u#, 12u#);
+endpicture;
diff --git a/Master/texmf-dist/fonts/source/public/simpsons/burns.mf b/Master/texmf-dist/fonts/source/public/simpsons/burns.mf
new file mode 100644
index 00000000000..e60d2309bfe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/simpsons/burns.mf
@@ -0,0 +1,171 @@
+% burns.mf by Raymond Chen (rjc@math.princeton.edu)
+
+% Monty Burns.
+
+pictureof(Burns, 24u#, 24u#, 0);
+ pickup thinpen;
+
+ localpath ear;
+ ear = (8u, 15u) .. (6u, 15.9u) .. (4.4u, 14.5u) .. (5.5u, 12.4u) ..
+ (6.7u, 12.8u);
+ % We don't draw the ear until it's been clipped by Burns' sideburns.
+
+ localpath head;
+ z1h = (9u, 20.6u); % join point for Burns' hair
+ z2h = (7u, 13u); % terminal join point for interpathing
+ z1e = (12u, 15u); % beginning of Burns' eye
+ z2e = (16u, 12u); % end of Burns' eye
+ z3e = (20u, 14u); % where Burns' eyebrow might be
+ z4e = (20.5u, 17u); % the forward lobe of his forehead
+ labels(1h, 2h, 1e, 2e, 3e, 4e);
+ head = postclip(
+ z1e .. tension 3 and 1 ..
+ z2e{dir -5} ..
+ z3e ..
+ z4e{up} ..
+ (16 u, 21.8u) ..
+ (12 u, 21.6u) ..
+ z1h .. tension 1 and 2 ..
+ ( 5.7u, 19 u) .. % inflection upwards slightly
+ ( 3.7u, 16.5u){down} ..
+% ( 5 u, 14 u)
+ z2h
+ , ear);
+
+% Now split the head at z1h into the forehead and the hair.
+% Although the intersectiontimes should give us an integer, we round just
+% in case something got lost in translation.
+
+ numeric t; t = round xpart(head intersectiontimes z1h);
+ if t < 0: errmessage("Unable to find Burns' hairline"); fi
+
+ localpath outerhair;
+ outerhair = subpath(t, infinity) of head;
+ head := subpath(0, t) of head;
+
+ localpath innerhair; % the inner boundary of Burns' hair,
+ % and his sideburns.
+ innerhair =
+ z1h{direction 0 of outerhair} ..
+ (8.8u, 16u){down} ..
+ (8.3u, 12.5u) ..
+ (8u, 12.3u) .. tension 2 ..
+ z2h .. tension 2 ..
+ (8u, 16u) ..
+ (8.5u, 18u) ..
+ {up} z1h;
+
+ draw preclip(ear, innerhair); % now the ear can be drawn
+ drawtau( (5.2u, 14.5u), (6.7u, 15u), (6.1u, 13.4u), (6.3u, 15.5u) );
+
+% Now split innerhair at z2h.
+
+ numeric t; t = round xpart(innerhair intersectiontimes z2h);
+ if t < 0: errmessage("Unable to find Burns' sideburns"); fi
+
+ localpath interhair;
+ interhair = reverse subpath(t, length innerhair - .5) of innerhair;
+ innerhair := subpath(0,t) of innerhair;
+
+% Now we can clip the innerhair so his sideburns stop at the hairline
+ draw innerhair;
+ draw preclip(interhair, innerhair);
+
+% Now what's left of Burns' hair can be drawn
+ for i= 0 step .3 until .8:
+ draw prepostclip(interpath(i, outerhair, interhair), innerhair, ear);
+ endfor
+
+ localpath beak;
+ z1b = (17 u, 12.5u); % first two beak points
+ z2b = (20.3u, 8.5u);
+ % Beak contains an inflection point
+ beak = z1b{(z2b-z1b) rotated -5} .. z2b ..
+ (21.6u, 6 u) .. tension 1 and 3 ..
+ (21.7u, 3.8u) .. tension 3 and 3 ..
+ (20.3u, 5.3u) ..
+ (18 u, 7 u) ..
+ (17 u, 8 u){up} ..
+ {right}(18.4u, 9 u);
+
+ draw (reverse beak) hardjoin head;
+
+% Now Burns' right eye.
+ draw subpath(0,1) of head;
+ localpath eye_bottom;
+ eye_bottom = z1e {direction 0 of head} ..
+ (14.5u, 10.9u) .. {dir 40} z2e;
+ draw eye_bottom;
+% The bag under Burns' eye.
+ draw (subpath(.4, 1) of eye_bottom) shifted (-.3u, -.5u);
+
+% Burns' left eye.
+ draw prepostclip(
+ (18u, 10.5u) .. (19.8u, 12u) .. (19u, 13u),
+ beak, head);
+
+ localpath mouth;
+ mouth = preclip(
+ (18.5u, 7u) .. tension 1 and 2 ..
+ (18u, 4.5u) .. tension 2 and 1 ..
+ (10u, 7.8u) ..
+ (8.2u, 7.5u), beak);
+ draw mouth;
+
+if false:
+ % back of neck
+ localpath neck;
+ neck = preclip(
+ (9u, 7u){down} .. %tension .9 and 3 ..
+ {-(1,1.5)}(7.2u, 0u), ear);
+ draw neck;
+
+fi
+
+ % Burns' fangs, err, teeth. Must be drawn after the chin.
+ numeric n; n = 5; % number of teeth, minus 1
+ % n points equally spaced.
+ numeric t[];
+
+ % The following wild macro makes t0 ... t[n] equally spaced.
+
+ for i = 1 upto n: t[i] - t[i-1] = endfor whatever;
+ t0 = 1.1; t[n] = 2;
+
+ localpath teeth;
+ teeth =
+ for i = 1 upto n:
+ hide( makelabel.top(decimal(i-1), point t[i-1] of mouth); )
+ bend(60, point t[i-1] of mouth, point t[i] of mouth) &
+ endfor
+ bend(60, point 2 of mouth, point 3 of mouth);
+ draw teeth;
+
+ z1c = (13.3u, 5.5u); % the inner cavity of the chin
+ z2c = (9.5u, 0u); % the bottom tip of the neck
+ z3c = (5.5u, 4u); % the bottom of the back of the neck
+ labels(1c, 2c, 3c);
+
+ localpath neck;
+ neck = prepostclip( (15u, 7u) .. z1c .. tension 2 .. z2c &
+ bend(20, z2c, z3c) &
+ z3c{dir 80}.. (6.4u, 13u), teeth, ear);
+ draw neck;
+
+ % Draw Burns' suit jacket
+ draw z3c .. {curl5} (2.5u, 0u);
+ draw z3c .. (6u, 0u);
+
+ z1j = neck intersectionpoint ((0u, 3u) .. (24u, 3u));
+ draw z1j .. (14.3u, 0u);
+ draw z1j .. (11.4u, 0u);
+
+% Burns' age spots.
+ localpath agespot;
+ agespot = fullcircle xscaled 1.5 scaled .4u rotated -15;
+ draw agespot shifted (12u, 19.5u);
+ draw agespot shifted (10.4u, 17.4u);
+ draw agespot shifted (12.8u, 15.8u);
+
+ eyepos(Burns, 14.2u#, 12.1u#, 18.6u#, 12.0u#);
+endpicture;
diff --git a/Master/texmf-dist/fonts/source/public/simpsons/homer.mf b/Master/texmf-dist/fonts/source/public/simpsons/homer.mf
new file mode 100644
index 00000000000..31557a6a796
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/simpsons/homer.mf
@@ -0,0 +1,130 @@
+% homer.mf by Raymond Chen (rjc@math.princeton.edu)
+
+% Homer Simpson.
+
+pictureof(Homer, 24u#, 24u#, 0);
+ pickup thinpen;
+
+ localpath eye_left, eye_right;
+ eye_right = superellipse( (14.2u, 14.5u), (12.2u, 16.3u),
+ (10u, 14u), (12u, 12u), .7);
+ draw eye_right;
+
+ localpath nose; % extends down and around to chin
+ nose = preclip((12u, 13u)..
+ (16u, 13.2u)..
+ (17.7u, 12.5u){down} ..
+ (16u, 11.5u)..
+ (10u, 7u){down}..
+ (12.5u, 4u){right}..tension 1 and 6..
+ (14.7u, 6.5u)..
+ (15.7u, 6.8u)..
+ {up}(15.7u, 8u), eye_right);
+ localpath dimple;
+ z1d = (11.3u, 8.1u);
+ z2d = (10.9u, 6.8u);
+ dimple = z1d{(z2d-z1d) rotated dimple_depth}..
+ {(z2d-z1d) rotated -dimple_depth}z2d;
+ draw dimple;
+
+ localpath mouth;
+ mouth = prepostclip(
+ (16u, 12u).. tension infinity and 3..
+ (17.7u, 8u){down} .. tension 2 and 1 ..
+ (15.7u, 7.2u){left}..
+ (12.2u, 7.7u){left}..
+ (0u, 7u), nose, dimple);
+ draw mouth;
+
+ nose := postclip(nose, mouth);
+ draw nose;
+
+ eye_left = prepostclip(
+ (15u, 12.6u){right}..
+ (17.2u, 14.5u){up}..
+ (15.5u, 16.4u){left}..
+ {down}(13.1u, 14.2u), nose, eye_right);
+ draw eye_left;
+
+ localpath scalp;
+ scalp = preclip(
+ (16u, 15.3u) .. tension 1.5 ..
+ (12u, 20u) ..
+ (9.5u, 20.8u){left}.. tension 1 ..
+ (4u, 16.4u){down} .. tension 1 ..
+ (7.4u, 7u) ..
+ (5.4u, 0u), eye_left);
+
+ % scalp and collar interact
+ localpath collar;
+ collar = (11.4u, 2.3u) .. tension infinity and 1 ..
+ (7u, 4.2u) .. (6.7u, 4.7u) ..
+ (9u, 6u) .. tension 1 and infinity .. (15.2u, 2.5u);
+ z0c = point 0 of collar;
+ draw postclip(scalp, collar);
+ draw postclip(collar, scalp);
+
+ % the rest of the collar is also tricky
+ numeric t;
+ t = directiontime dir (90-starch) of collar;
+ z1c = point t of collar;
+ x2c = 5u; z1c - z2c = whatever * dir (90-starch);
+ draw z1c -- z2c & reverse subpath (0,t) of collar shifted (z2c-z1c) -- z0c;
+ y.bottom = ypart (z0c + (z2c-z1c));
+ numeric t;
+
+ % while I'm here, I may as well finish the right collar
+ draw postclip (z0c .. (z0c + 100u * dir -machismo),
+ (0u,y.bottom)..(100u,y.bottom));
+
+ localpath ear;
+ ear = (7.5u, 11.5u) .. % (6.8u, 11.6u) ..
+ (6u, 11.3u) ..
+ (5.7u, 10u) .. (6.6u, 8.5u) .. (7.5u, 9u);
+ erase fill ear .. cycle;
+ draw ear;
+
+ drawtau( (6.2u, 10.5u), (7.4u, 11u), (6.8u, 9.3u), (6.8u, 11.1u) );
+
+ % tufts on top
+ draw postclip (
+ (5.2u, 17.7u){dir 100} ... (6u, 22u) ... {dir -60}(9.3u, 19.5u), scalp);
+ localpath tuft;
+ tuft = (6.2u, 18.7u){dir 100} ... (8u, 22.3u) ... {dir -70}(10.8u, 19.5u);
+ draw subpath (0,1) of tuft &
+ postclip(subpath (1,2) of tuft, scalp);
+ numeric tuft;
+
+ % the tuft by the ear
+ draw (4.5u, 11.5u) --- (4.6u, 14u) --- (6.1u, 12.2u)
+ --- (6.4u, 14.4u) --- (7.7u, 12.5u);
+
+ % The interaction between the left collar and the front of the neck
+ % is also messy.
+
+ % shift part of left collar
+ localpath lcollar;
+ z2cr = point infinity of collar;
+ y1cr = y.bottom; z2cr - z1cr = whatever * dir machismo;
+ lcollar = z2cr .. z1cr;
+ draw lcollar;
+
+ % now the front of the neck
+ localpath neck;
+ neck = prepostclip(
+ (13u, 7u){down} .. (14.7u, 0u), nose, lcollar);
+ draw neck;
+
+ % now the top of the left collar
+ draw preclip(collar, neck);
+
+ % and the other side of the left collar.
+ z2cr - z3cr = 1.5u * dir machismo;
+ z4cr - z3cr = whatever * dir (270+starch+30);
+ z4cr - z2cr = whatever * dir (270+starch);
+ draw z2cr -- z4cr -- z3cr;
+ labels(1cr, 2cr, 3cr, 4cr);
+
+ eyepos(Homer, 11.5u#, 14u#, 15.2u#, 14.5u#);
+
+endpicture;
diff --git a/Master/texmf-dist/fonts/source/public/simpsons/lisa.mf b/Master/texmf-dist/fonts/source/public/simpsons/lisa.mf
new file mode 100644
index 00000000000..5586d4cdb99
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/simpsons/lisa.mf
@@ -0,0 +1,108 @@
+% lisa.mf by Raymond Chen (rjc@math.princeton.edu)
+
+% Lisa Simpson.
+
+% Dependencies:
+%
+% eye_right dimple tau
+% | | |
+% nose | vertical part of tau
+% | \ |
+% | mouth
+% ear eye_left |
+% | \ / | chin
+% neck hair lashes /
+% \ /
+% \ /
+% pearls
+%
+% The ordering is so that we draw the pearls as early as possible.
+
+pictureof(Lisa, 24u#, 24u#, 0);
+ pickup thinpen;
+
+ localpath eye_left, eye_right;
+ eye_right = superellipse( (16u, 10.1u), (14u, 12u), (11.5u, 10u),
+ (13.75u, 8u), .7);
+ draw eye_right;
+
+ localpath nose;
+ nose = preclip((14u, 10u).. (16.5u, 8.7u){right} ...
+ (19.3u, 7.5u){down} ... (17u, 6.5u){left}, eye_right);
+ draw nose;
+
+ localpath dimple; dimple = dimplepath( (11.8u, 6u), (10.9u, 5.5u));
+ draw dimple;
+
+ localpath mouth;
+ mouth = prepostclip(
+ (18.3u, 6.8u).. tension infinity and 3..
+ (20u, 5.6u){down} .. tension 5 and 1 ..
+ (16u, 4.7u){left} ..
+ (11.5u, 5.8u), nose, dimple);
+ draw mouth;
+
+ localpath ear;
+ ear = (8.5u, 7.9u) .. (7u, 6.5u) ..(8.3u, 5.5u);
+ draw ear;
+
+ localpath chin;
+ z1c = (15.7u, 5.5u);
+ z2c = (15.5u, 4.1u);
+ z3c = (15u, 3.6u);
+ z4c = (13.5u, 0u);
+ chin = preclip(z1c{down}..z2c..z3c..{z4c-z3c}z4c, mouth);
+ draw chin;
+
+ localpath neck;
+ neck = preclip((8u, 5.8u){dir -60}..{-dir 60}(8u,3.2u)..(6.75u,u), ear);
+ draw neck;
+
+ % For efficiency, we draw the pearls as soon as it becomes possible.
+ if pearl > 0:
+ pickup lacepen;
+ overdraw fullcircle scaled .9pearl shifted (7.5u, 2.7u); % far left
+ overdraw fullcircle scaled .95pearl shifted (13.7u, 1.4u); % far right
+ overdraw fullcircle scaled .95pearl shifted (8.8u, 2.3u); % left of center
+ overdraw fullcircle scaled pearl shifted (12u, 1.5u); % right of center
+ overdraw fullcircle scaled pearl shifted (10.3u, 1.7u); % center
+ pickup thinpen;
+ fi
+
+ drawtau( (7.5u, 6.8u), (8.5u, 7.2u), (8.1u, 6u), (8.1u, 7.3u) );
+
+ eye_left = prepostclip(
+ (17.2u, 8.2u){right}..
+ (19.25u, 10.5u){up}..
+ (17u, 12.2u){left}..
+ {down}(15.3u, 10.5u), nose, eye_right);
+ draw eye_left;
+
+ localpath hair;
+ hair = prepostclip((18u, 11.3u) :: (21u, 13u) ::
+ %(18.5u, 16u) ::
+ (18.7u, 15.5u) ::
+ %(19.25u, 19.25u) ::
+ (19.5u, 19u) ::
+ (16u, 18u) :: (14u, 21u) :: (11.6u, 18.7u) ::
+ (8u, 20u) ..tension 3.. (7u, 17.5u) ..tension 3.. (3u, 16u) ::
+ (4.75u, 13.75u) :: (2.5u, 11.5u) :: (4.5u, 9.5u) :: (3.3u, 7u) ::
+ (6u, 6.7u) :: (6.5u, 4.25u) :: (8u, 5.8u), eye_left, ear);
+ draw hair;
+
+ pickup lashpen;
+ localpath lash;
+
+ rlash((12u, 10.5u), (11u, 11.7u), 3);
+ rlash((12.75u, 11.25u), (12.2u, 12.8u), 3);
+ rlash((14u, 12u), (14.2u, 13.5u), -3);
+ rlash((15u, 11.7u), (15.5u, 12.9u), -3);
+
+ llash((17.0u, 12.0u), (17.6u, 13.1u), -3);
+ llash((18.2u, 11.8u), (18.9u, 13.1u), -2);
+ llash((18.9u, 11.4u), (19.8u, 12.1u), -2);
+ llash((19.0u, 10.4u), (20.3u, 11.1u), -2);
+
+ eyepos(Lisa, 12.5u#, 9.75u#, 16.8u#, 9.75u#);
+
+endpicture;
diff --git a/Master/texmf-dist/fonts/source/public/simpsons/maggie.mf b/Master/texmf-dist/fonts/source/public/simpsons/maggie.mf
new file mode 100644
index 00000000000..700ce386a15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/simpsons/maggie.mf
@@ -0,0 +1,136 @@
+% maggie.mf by Raymond Chen (rjc@math.princeton.edu)
+
+% Maggie Simpson.
+
+pictureof(Maggie, 20u#, 20u#, 0);
+ pickup thinpen;
+
+ localpath eye_right;
+ z.eye_right = (8u, 8u); % base for right eye
+
+ eye_right = (superellipse( (3.6u, 0u), (1.5u, 2u),
+ (-.8u, 0u), (1.5u, -2u), .7) ) shifted z.eye_right;
+ draw eye_right;
+
+ localpath nose;
+ z.nose = (12u, 4u); % base for nose
+ z1n = (.8u, .9u); % where nose meets pacifier
+ z1n.dir = -dir10; % direction through z1n
+ z2n = (xpart z1n, -2.7u); % bottom turn of pacifier
+ labelsoffset(z.nose, 1n, 2n, 3n); % Label the points
+ nose = preclip( (
+ (-u, 3u) --- (1u, 3u) .. % bridge of nose
+ (2u, 2u) .. % tip
+ z1n{z1n.dir} .. % through here
+ (0u, .8u) .. % return
+ (-1.7u, -1.4u) .. % back of pacifier
+ (0u, -3u) .. % bottom of pacifier
+ z2n .. % turn
+ tension 2 ..
+ {z1n.dir}z1n % end of front of pacifier
+ )shifted z.nose, eye_right);
+ draw nose;
+
+ % The handle of the pacifier
+ numeric t; t = 1.2u; % handle thickness
+
+ penpos1p(t, 0); % hump of the bowl
+ penpos2p(t, 90); % upper handle
+ penpos3p(t,-90); % lower handle
+ z1p = z.nose + (1.3u, -1u);
+ x2p =
+ x3p = xpart z.nose + .2u;
+ y1p = 1/2[y2p, y3p];
+ y2p - y1p = .8u;
+
+ penlabels(1p, 2p, 3p);
+
+ overdraw z1p.l{up} .. z2p.l{left} .. z2p.r{right} ..
+ z1p.r{down} .. z3p.r{left} .. z3p.l{right} .. cycle;
+
+ localpath eye_left;
+ z.eye_left = (12u, 8u);
+
+ eye_left = prepostclip( (
+ (1u, -1.3u){right}..
+ (2.7u, .5u){up}..
+ (1u, 2u){left}..
+ {down}(-.8u, .5u) ) shifted z.eye_left, nose, eye_right);
+ draw eye_left;
+
+ localpath hair;
+ hair = preclip(
+ (14u, 7.5u) ::
+ (16.2u, 8.8u) ::
+ (15u, 9.1u) ::
+ (17u, 11u) ::
+ (14.7u, 11.8u) ::
+ (15.4u, 14.4u) ::
+ (13u, 14u) ::
+ (10.7u, 16.4u) ::
+ (8.7u, 13.9u) ::
+ (5.3u, 15.5u) ::
+ (4u, 12u) ::
+ (1.4u, 11u) ::
+ (2.8u, 8u) ::
+ (1.1u, 6u) ::
+ (4.2u, 4.5u) ::
+ (3u, 2.5u) ::
+ (6u, 2.6u) .. (6u, 1.5u) .. (8u, .7u){right} ..
+ (10.3u, 1u), eye_left);
+ z1h = point infinity of hair;
+ draw hair;
+
+ % Maggie's adorable bow
+ numeric t; t = .7u; % size of knot
+ def ::: = ..tension 2 .. enddef; % for bow drawing
+ z.bow = (11u, 13u);
+ z1b = (-t, t); % 7\ /5
+ z2b = ( t, t); % | \ / |
+ z3b = ( t, -t); % | 1--2 |
+ z4b = (-t, -t); % | | | |
+ z5b = (3t, 2.5t); % | 4--3 |
+ z6b = (3t, -2t); % | / \ |
+ z7b = (-3.5t, 3t); % 8/ \6
+ z8b = (-3.2t, -2.5t);
+
+ overdraw (z2b ::: z5b ::: z6b ::: z3b -- cycle) shifted z.bow; % right bow
+ overdraw (z1b ::: z7b ::: z8b ::: z4b -- cycle) shifted z.bow; % left bow
+ overdraw (z1b ::: z2b ::: z3b ::: z4b ::: cycle) shifted z.bow; % the knot
+
+ labelsoffset(z.bow, 1b, 2b, 3b, 4b, 5b, 6b, 7b, 8b);
+
+ % Maggie's ear
+ z.ear = (5u, 5u);
+ draw ( (1.5u, 1u) .. (-.2u, -.4u) .. (1.5u, -1.4u) ) shifted z.ear;
+
+ drawtau( z.ear + (.3u, -.5u),
+ z.ear + (1.3u, .5u),
+ z.ear + (1u, -1.1u),
+ z.ear + (1u, .5u) );
+
+ % Maggie's chin (and mouth, sucking on the pacifier)
+ draw postclip(
+ ( (-.4u, .2u) .. (0,0) .. (2u, 1u) ) shifted z1h, nose);
+
+ % The front of the Maggie baggie
+ draw bend(20, z1h, (.3u + xpart z1h, 0));
+
+ % The back of the Maggie baggie
+ draw postclip(
+ (4.2u, 0u){dir 60} .. {dir 45}(5.5u, 2.5u), hair);
+
+ pickup lashpen;
+ localpath lash;
+
+ rlash( (0 u, .8u), (-.6u, 1.8u), 0);
+ rlash( (1 u, 1.6u), ( .8u, 2.4u), 0);
+ rlash( (2.5u, 1.5u), (2.7u, 2.2u), 0);
+
+ llash( ( .5u, 1.9u), ( .4u, 2.3u), 0);
+ llash( (1.8u, 1.9u), (1.9u, 2.3u), 0);
+ llash( (2.5u, 1.5u), (2.7u, 1.8u), 0);
+
+ eyepos(Maggie, 9.2u#, 8.1u#, 12.7u#, 8.1u#);
+
+endpicture;
diff --git a/Master/texmf-dist/fonts/source/public/simpsons/marge.mf b/Master/texmf-dist/fonts/source/public/simpsons/marge.mf
new file mode 100644
index 00000000000..35f88979972
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/simpsons/marge.mf
@@ -0,0 +1,136 @@
+% marge.mf by Raymond Chen (rjc@math.princeton.edu)
+
+% Marge Simpson.
+
+pictureof(Marge, 22u#, 40u#, 0);
+ pickup thinpen;
+
+ localpath eye_left, eye_right;
+ eye_right = superellipse( (15.5u, 11.5u), (13.5u, 13.5u), (11.2u, 11.3u),
+ (13.5u, 9.5u), .7);
+ draw eye_right;
+ localpath nose;
+ nose = preclip((15u, 10.5u)..
+ (16.3u,10.1u) ..
+ (18 u,10 u){right} ..
+ (18.8u, 9.5u){down} ...
+ {-dir 30}(17 u, 8 u), eye_right);
+ draw nose;
+
+ localpath dimple;
+ z1d = (12.5u, 7.4u);
+ z2d = (11.8u, 6.8u);
+ dimple = z1d{(z2d-z1d) rotated dimple_depth}..
+ {(z2d-z1d) rotated -dimple_depth}z2d;
+ draw dimple;
+ labels(1d, 2d);
+
+ localpath mouth;
+ mouth = prepostclip(
+ (17u, 8.8u).. tension infinity and 3..
+ (19.6u, 7.5u) ..
+ (17u, 6.5u){left} ..
+ (14u, 7u) ..
+ (12u, 7.1u), nose, dimple);
+ draw mouth;
+
+ eye_left = prepostclip(
+ (17u, 9.7u){right}..
+ (19u, 12u){up}..
+ (17u, 13.6u){left}..
+ {down}(14.7u, 11u), nose, eye_right);
+ draw eye_left;
+
+ localpath ear;
+ ear = (9.5u, 9.6u) .. (8.1u, 8.3u) ..(10u, 6.9u);
+ draw ear;
+
+ drawtau( (8.7u, 8.5u), (9.7u, 8.9u), (9.3u, 7.7u), (9.3u, 9.0u) );
+
+ % chin
+ draw preclip(
+ (16.3u, 6.5u){down} ..
+ (16u, 6u){-dir30} ..
+ (15u, 4u){down} ..
+ (16.5u, 0u),
+ mouth);
+
+ % back of neck
+ localpath neck;
+ neck = preclip(
+ (9u, 7u){down} .. %tension .9 and 3 ..
+ {-(1,1.5)}(7.2u, 0u), ear);
+ draw neck;
+
+ if pearl > 0:
+ pickup lacepen;
+ overdraw fullcircle scaled .9pearl shifted (8.7u, 3u); % far left
+ overdraw fullcircle scaled .95pearl shifted (15u, 2u); % far right
+ overdraw fullcircle scaled .95pearl shifted (10.1u, 2.2u); % left of center
+ overdraw fullcircle scaled pearl shifted (13.3u, 1.9u); % right of center
+ overdraw fullcircle scaled pearl shifted (11.6u, 1.8u); % center
+ pickup thinpen;
+ fi
+
+ % Marge's beehive 'do
+ draw preclip( puffhair(
+ (18.3u, 12.6u), % 1
+ (18.6u, 16.5u), % 2
+ (18.6u, 19 u), % 3
+ (17.8u, 22.8u), % 4
+ (17 u, 26 u), % 5
+ (16 u, 29 u), % 6
+ (14.8u, 32.7u), % 7
+ (13 u, 35 u)),% 8
+ eye_left);
+
+ curlers := curlers + 10; % more curliness on top
+
+ draw puffhair(
+ (13 u, 35 u), % 1
+ (10 u, 37 u), % 2
+ ( 6 u, 37 u), % 3
+ ( 4 u, 35 u), % 4
+ ( 2.6u, 32 u), % 5
+ ( 3.3u, 28 u));% 6
+
+ curlers := curlers - 10; % back to normal curliness
+ draw postclip( puffhair(
+ ( 3.3u, 28 u), % 1
+ ( 5.2u, 25.2u), % 2
+ ( 6.3u, 22.6u), % 3
+ ( 6.5u, 18.5u), % 4
+ ( 6.1u, 14.4u), % 5
+ ( 6.4u, 11.1u), % 6
+ ( 7.3u, 8.7u), % 7
+ ( 9.3u, 6 u)),% 8
+ neck);
+
+ % And the hairline above her eyes
+ draw postclip( puffhair(
+ ( 9.5u, 9.6u), % 1
+ ( 9.5u, 12.2u), % 2
+ (10 u, 14.3u), % 3
+ (11.7u, 15 u), % 4
+ (13.8u, 15 u), % 5
+ (16.5u, 15.2u), % 6
+ (17.9u, 14.1u), % 7
+ (18.3u, 12.6u)),% 8
+ eye_left);
+
+ % And finally, the eyelashes
+ pickup lashpen;
+ localpath lash;
+
+ rlash((12.0u, 12.5u), (11.8u, 14.0u), 3);
+ rlash((13.0u, 13.2u), (13.0u, 14.4u), 2);
+ rlash((14.1u, 13.2u), (14.2u, 14.4u),-2);
+ rlash((14.9u, 12.8u), (15.5u, 14.2u),-3);
+
+ llash((16.5u, 13.4u), (16.6u, 14.3u),-1);
+ llash((17.3u, 13.4u), (17.6u, 14.4u),-2);
+ llash((18.0u, 13.0u), (18.5u, 14.4u),-3);
+ llash((18.7u, 13.0u), (19.6u, 13.9u),-3);
+
+ eyepos(Marge, 12.5u#, 11.4u#, 16.5u#, 11.7u#);
+endpicture;
diff --git a/Master/texmf-dist/fonts/source/public/simpsons/simpsons.mf b/Master/texmf-dist/fonts/source/public/simpsons/simpsons.mf
new file mode 100644
index 00000000000..7a1f991f85b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/simpsons/simpsons.mf
@@ -0,0 +1,309 @@
+% simpsons.mf by Raymond Chen (rjc@math.princeton.edu)
+
+mode_setup;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Parameters (and typical values)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Pen control
+%
+% u# the basic unit.
+% A choice of 1/16in# makes Lisa fit into a 1.5" square.
+%
+% thin# The pen used for everything, unless otherwise noted.
+% A value of 1/18u# produces a razor-sharp-ish pen,
+% good for low resolution work (and which scales nicely).
+% But a value of 1/9u# produces a slightly thicker line
+% which might show up better.
+% And a value of 1/5u# produces a heavy pen, more in keeping
+% with MG's drawing style.
+%
+% fine# For fine detail, like the atom logo on the SNPP cooling tower.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Physical attributes for everybody
+%
+% tau_top Curviness of the top part of the little `t' that
+% forms the ridges inside the ear. Recommend 45.
+%
+% tau_side Curviness of the side part of the little `t' that
+% forms the ridges inside the ear. Recommend 45.
+%
+% dimple_depth Amount of curve (in degrees) to give the dimple.
+% Positive value makes the cheeks puffier.
+% Negative value makes the dimple deeper.
+% Recommend -10.
+%
+% innocence# Size of pupils. Suggest 0.5u#.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Controls for the ladies
+%
+% lace# The pen used for necklaces. Recommend = thin#.
+%
+% pearl# Size of pearls in the necklace. Set pearl < 0
+% to suppress the necklace altogether.
+% Recommend 1.9u#.
+%
+% mascara Thickness of the eyelashes, relative to thin#.
+% 1.5 means eyelashes are 1.5 times thicker than regular strokes.
+% Recommend a value of 1.0.
+%
+% seductiveness Curliness of the eyelashes. In degrees. Suggest 5.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Controls for the kids
+%
+% spikiness Controls spikiness (tension) of Lisa and Maggie's hair.
+% Lower numbers make it wavier,
+% higher numbers make it spikier. 5 seems about right.
+%
+% kemptness# How uniform the spikes of Bart's hair are.
+% Higher values make Bart's hair more erratic.
+% A value of 0 makes them perfectly evenly spaced.
+% I think 0.05u# looks about right.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Controls for Homer
+%
+% starch How much Homer's collar points flare outwards.
+% Larger values make Homer's collar stick out more.
+% In degrees 0..90. Recommend 30.
+%
+% machismo How much the front of Homer's shirt opens.
+% Larger values make it more open. Degrees 0..90. Recommend 60.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Controls for Marge
+%
+% curlers How large to make the `bumps' the make up Marge's hair.
+% In degrees. Suggest 30.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+u# = 1/80in#;
+%thin# = 1/9 u#; % heavy lines
+thin# = 1/5 u#; % realistically heavy
+fine# = 1/9u#;
+
+tau_top := 45;
+tau_side := 45;
+dimple_depth = -10;
+innocence# := .5u#;
+
+lace# = thin#;
+pearl# = 1.9u#;
+mascara = 1.0;
+seductiveness := 7;
+
+spikiness := 5;
+kemptness# := 1/20u#;
+
+starch := 30;
+machismo := 60;
+
+curlers := 30;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Preparing to do business
+
+define_pixels(u, pearl, innocence, kemptness);
+define_whole_blacker_pixels(thin, fine, lace);
+
+pickup pencircle scaled thin; thinpen = savepen;
+pickup pencircle scaled fine; finepen = savepen;
+pickup pencircle scaled (thin * mascara); lashpen = savepen;
+pickup pencircle scaled lace; lacepen = savepen;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Private macros
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def openit = % so screen previewing works better
+ openwindow currentwindow from origin to (screen_rows, screen_cols)
+ at (0, screen_rows-1) enddef;
+
+def :: = ..tension spikiness.. enddef; % For drawing the kids' spiky hair.
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% preclip -- clips the path p to start at q.
+% postclip -- clips the path p to end at r.
+% prepostclip -- clips the path p to start at q and end at r.
+% hardjoin -- start on p and end on q, transition when they intersect
+
+def preclip(expr p,q)=
+ subpath (xpart(p intersectiontimes q), infinity) of p enddef;
+def postclip(expr p, r) = reverse preclip(reverse p, r) enddef;
+def prepostclip(expr p, q, r) = postclip(preclip(p, q), r) enddef;
+
+secondarydef p hardjoin q =
+ begingroup dz_ := p intersectiontimes q;
+ subpath (0, xpart dz_) of p .. subpath(ypart dz_, infinity) of q
+ endgroup enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Drawing bent lines (i.e., shallowly curved).. Positive theta curves
+% to the left, negative to the right.
+
+vardef bend(expr theta, p, q) =
+ p{(q-p) rotated theta}..
+ {(q-p) rotated -theta}q enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Drawing opaquely
+def overdraw expr c = erase fill c; draw c enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Labelling shifted points
+vardef labelsoffset@#(expr offset)(text t) =
+ if proofing > 1: forsuffixes $=t: makelabel@#(str$, z$+offset); endfor
+ fi enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Facial features
+
+def dimplepath(expr p, q) = % top coordinate first
+ if proofing>1: hide( makelabel("", p); makelabel("", q); ) fi
+% p{(q-p) rotated dimple_depth}..
+% {(q-p) rotated -dimple_depth}q
+ bend(dimple_depth, p, q)
+enddef;
+
+% _s__q
+% p/ |
+% |
+% \r
+
+def drawtau(expr p, q, r, s) =
+ if proofing>1: makelabel("p", p); makelabel("q", q);
+ makelabel("r", r); makelabel("s", s); fi
+ c_ := p{(q-p) rotated tau_top}..q;
+ draw c_;
+% draw postclip( (r{(s-r) rotated tau_side}..
+% {(s-r) rotated -tau_side}s), c_) enddef;
+ draw postclip( bend(tau_side, r, s), c_) enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Eyelashes either bend clockwise or counter-clockwise as they leave
+% the eye.
+%
+% p = starting point, q = ending point, d = delta
+% d>0 = curves right, d<0 = curves left. Bigger d means more curve.
+
+def makelash(expr ofs,p,q,d) =
+ if proofing>1: hide( makelabel("", ofs+p); makelabel("", ofs+q); ) fi
+ bend(d*seductiveness, ofs+p, ofs+q) enddef;
+
+% Right lashes clip to the right eye, left lashes to the left eye_
+vardef rlash@#(expr p,q,d) =
+ lash@# := preclip(makelash(
+ if known z.eye_right: z.eye_right else:origin fi, p,q,d),
+ eye_right);
+ draw lash@# enddef;
+vardef llash@#(expr p,q,d) =
+ lash@# := preclip(makelash(
+ if known z.eye_left: z.eye_left else:origin fi, p, q, d),
+ eye_left);
+ draw lash@# enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Marge's hair contains little puffs.
+
+def puffhair(text t) = % t is a list of pairs
+ hide( n_ := 0; for z=t: z_[incr n_] := z;
+ if proofing>1: makelabel(decimal n_, z); fi endfor)
+ z_1
+ for k = 2 upto n_:
+ {(z_[k] - z_[k-1]) rotated -curlers} ..
+ {(z_[k] - z_[k-1]) rotated curlers} z_[k]
+ endfor enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Character positions
+
+def simpdochar(expr c, ht, wd, dp, name) =
+ beginchar(c, ht, wd, dp); name enddef;
+
+string current_char_name;
+def pictureof(suffix c)(expr wd, ht, dp) =
+ beginchar(2c, wd, ht, dp);
+ current_char_name := str c;
+ current_char_name & " looking right, no pupils" enddef;
+
+def endpicture =
+ pic_ := currentpicture;
+ endchar;
+
+ beginchar(incr charcode, charwd, charht, chardp);
+ current_char_name & " looking left, no pupils";
+ currentpicture := pic_ reflectedabout ((.5w, 0), (.5w, h));
+ endchar;
+ pic_ := nullpicture enddef;
+
+def unreflectedpictureof(suffix c)(expr wd, ht, dp) =
+ beginchar(c, wd, ht, dp); str c enddef;
+
+let unreflectedendpicture = endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Draw grid marks during proofing
+
+def makebox(text rule) =
+ for y = 0 step 4u.o_ until charht*hppp:
+ rule((0, y), (w, y));
+ endfor
+ rule((0, charht*hppp), (w, charht*hppp));
+ rule((0, chardp*hppp), (w, chardp*hppp));
+
+ for x = 0 step 4u until charwd*hppp:
+ rule ((x, -d.o_), (x, h.o_));
+ endfor
+ rule ((charwd*hppp, -d.o_), (charwd*hppp, h.o_));
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Eye positions
+%
+% Eye positions are stored in the fontdimens.
+
+def eyepos(expr p, a, b, c, d) = fontdimen 4 + 4p: a, b, c, d enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% Local variables
+
+def local(text t, v) =
+ forsuffixes $=v: save v; t v; endfor enddef;
+
+def localpath text v = local(path)(v) enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+Lisa = 1;
+Homer = 2;
+Bart = 3;
+Marge = 4;
+Maggie = 5;
+Burns = 6;
+
+proofing:=2;
+% screenstrokes;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(0, 0, innocence#, 0); "A pupil (no width)";
+ fill fullcircle scaled innocence;
+endchar;
+
+% and character 1 is SNPP.
+input snpp
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The x-height is 1pt. The purpose of this is so that pupil positioning
+% can be done in ex-units, which will therefore scale properly if the
+% font is loaded at nonstandard magnifications.
+
+fontdimen 5: 1pt#;
+
+input lisa
+input homer
+input bart
+input marge
+input maggie
+input burns
+end
diff --git a/Master/texmf-dist/fonts/source/public/simpsons/snpp.mf b/Master/texmf-dist/fonts/source/public/simpsons/snpp.mf
new file mode 100644
index 00000000000..2b03af17ae9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/simpsons/snpp.mf
@@ -0,0 +1,89 @@
+% snpp.mf by Raymond Chen (rjc@math.princeton.edu)
+
+% The SNPP logo.
+
+beginchar(1, 8u#, 8u#, 0); "Springfield Nuclear Power Plant";
+
+ % We will need 8 symmetrically paired points
+ forsuffixes $=range 1 thru 8: x$ = w - x$'; y$ = y$'; endfor
+
+ pickup thinpen;
+ save u; u = w/8; % IMPORTANT!
+ save v; v = h/8; % IMPORTANT!
+
+ z0 = (4u, 4v); % = 1/2(w,h), the center.
+
+ % The circular seal
+ numeric r; r = y0;
+ draw fullcircle scaled 2r shifted z0;
+
+ % The cooling tower
+
+ localpath tower;
+
+ z1 = (2.2u, 4v);
+ z2 = (2.5u, 3.5v);
+ z3 = (1.7u, 0);
+
+ tower = z3 .. tension 3 .. z2 ..
+ z1{up} .. tension 3 .. z1'{down} ..
+ z2'.. tension 3 .. z3';
+ draw prepostclip(tower, quartercircle scaled 2r rotated 180 shifted z0,
+ quartercircle scaled 2r rotated -90 shifted z0);
+
+ % The atom logo
+ % The ellipse is 2u by .5u.
+ x4 = .5w;
+ y4 + u * sind 60 = y2;
+
+ pickup finepen;
+ draw fullcircle xscaled 2u yscaled .5v shifted z4;
+ draw fullcircle xscaled 2u yscaled .5v rotated 60 shifted z4;
+ draw fullcircle xscaled 2u yscaled .5v rotated-60 shifted z4;
+ pickup thinpen;
+
+ % The rising fumes
+ z5 = (.5w - .8u, 6v);
+ z5 - z5a = z5a - z5b = z5b - z5'; % equally spaced
+ y5a := y5a + .3v;
+ y5b := y5b - .3v;
+
+ forsuffixes $=,a,b,': draw preclip( (x5$,0) .. z5$, tower); endfor
+
+ % The outer cloud
+ localpath cloud;
+ y6 = y5;
+ x6 = xpart z0 - (r +-+ (y6-y0)); % length(z0 - z6) = r
+
+ cloud = bend(-30, z6, z6');
+
+ localpath puffcloud;
+ numeric n; n = 13;
+ puffcloud =
+ point 0 of cloud
+ for k = 1 upto n:
+ {direction (k+.5)/n of cloud rotated -80} ..
+ {direction (k+.5)/n of cloud rotated 80} point k/n of cloud
+ endfor;
+
+ draw postclip(puffcloud, (x5, 0) .. z5);
+ draw preclip(puffcloud, (x5', 0) .. z5');
+
+ % the inner cloud
+ y7 = h - v;
+ x7 = 1/3[x5, x6];
+
+ cloud := bend(-20, z7, z7');
+ n := 5;
+ draw
+ point 0 of cloud
+ for k = 1 upto n:
+ {direction (k+.5)/n of cloud rotated -80} ..
+ {direction (k+.5)/n of cloud rotated 80} point k/n of cloud
+ endfor;
+
+ labels(1', 2', 3', 4', 5', 6', 7');
+ labels(range 0 thru 7);
+endchar;
+
+endinput
diff --git a/Master/texmf-dist/fonts/source/public/skak/skak10.mf b/Master/texmf-dist/fonts/source/public/skak/skak10.mf
new file mode 100644
index 00000000000..2585341e9a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skak10.mf
@@ -0,0 +1,27 @@
+% This is `chess10.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 10 points chess font.
+% A complete chess diagram is 80 X 80 points.
+
+mode_setup;
+input skakbase;
+
+font_size 10pt#;
+
+M=1; % number of squares
+d#:=10pt#/M; % size per square
+lift=0;
+figshift:=0;
+u#:=d#;
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled thin; hairline_pen:=savepen ;
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input skakbrikker;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/skak/skak15.mf b/Master/texmf-dist/fonts/source/public/skak/skak15.mf
new file mode 100644
index 00000000000..89f91ead440
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skak15.mf
@@ -0,0 +1,30 @@
+% This is `chess15.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (uucp: rcpt@urc.tue.nl)
+
+% Parameters needed for a 15 points chess font.
+% A complete chess diagram is 120 X 120 points.
+
+mode_setup;
+input skakbase;
+
+font_size 15pt#;
+
+M=1; % number of squares
+d#:=15pt#/M; % size per square
+lift=0;
+figshift:=0;
+u#:=d#;
+fine#:=1/100*d#;
+thin#:=1/90*d#;
+thick#:=1/36*d#;
+border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled thin; hairline_pen:=savepen ; %for drawing king's cross
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input skakbrikker;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/skak/skak20.mf b/Master/texmf-dist/fonts/source/public/skak/skak20.mf
new file mode 100644
index 00000000000..12f4a4d5247
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skak20.mf
@@ -0,0 +1,28 @@
+% This is `chess20.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% Parameters needed for a 20 points chess font.
+% A complete chess diagram is 160 X 160 points.
+
+mode_setup;
+input skakbase;
+
+font_size 20pt#;
+
+M=1; % number of squares
+d#:=20pt#/M; % size per square
+lift=0;
+figshift:=0;
+u#:=d#;
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+%fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/25*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled thin; hairline_pen:=savepen ; %for drawing king's cross
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input skakbrikker;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/skak/skak30.mf b/Master/texmf-dist/fonts/source/public/skak/skak30.mf
new file mode 100644
index 00000000000..26c34454475
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skak30.mf
@@ -0,0 +1,28 @@
+% This is `skak30.mf' version 1.0 as of 7/99
+% based on original work by Piet Tutelaers
+% Modified by Torben Hoffmann: smaller pieces and nicer looking knight
+
+% Parameters needed for a 30 points chess font.
+% A complete chess diagram is 240 X 240 points.
+
+mode_setup;
+input skakbase;
+
+font_size 30pt#;
+
+M=1; % number of squares
+d#:=30pt#/M; % size per square
+lift=0;
+figshift:=0;
+u#:=d#;
+fine#:=1/100*d#; thin#:=1/90*d#; thick#:=1/36*d#; border#:=1/20*d#;
+define_blacker_pixels(fine, thin, thick, border);
+pickup pencircle scaled thin; hairline_pen:=savepen ; %for drawing king's cross
+pickup pencircle scaled fine; fine_pen:=savepen ; % for drawing dark squares
+pickup pencircle scaled border; border_pen:=savepen ; % for border ofboard
+pickup pencircle scaled thin; thin_pen:=savepen ; % for drawing pieces
+pickup pencircle scaled thick; thick_pen:=savepen; % for drawing inside pieces
+light=0; dark=1; white=0; black=1;
+
+input skakbrikker;
+end;
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakbase.mf b/Master/texmf-dist/fonts/source/public/skak/skakbase.mf
new file mode 100644
index 00000000000..c01a63eca99
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakbase.mf
@@ -0,0 +1,337 @@
+% This is `skakbase.mf' version 1.0 as of 6/99
+% based on original work by Piet Tutelaers
+% Modified by Torben Hoffmann: smaller pieces and nicer looking knight
+
+% In this file all pieces are defined.
+% The points defining a piece are all in the unitsquare
+% (0,0)--(0,1)--(1,1)--cycle.
+
+
+def g(expr x) = (.5+(x-.5)*.87) enddef;
+def f(expr x,y) = (g(x)+figshift,g(y)+lift) enddef;
+
+def dark_square(expr D) =
+ clearit; L:=min(D/4, 9); delta:=1/L;
+ pickup fine_pen;
+ for i=1 upto min(D/4,9):
+ draw (0,delta*i*D)--(D-delta*i*D,D);
+ draw (delta*i*D,0)--(D,D-delta*i*D);
+ endfor;
+ draw (0,0)--(D,D);
+ enddef;
+
+def erase_square(expr D, col, row) =
+ currentpicture:=board;
+ erase fill (0,0)--(0,1)--(1,1)--(1,0)--cycle scaled D shifted(col*D, row*D);
+ board:=currentpicture;
+ enddef;
+
+def empty_board(expr D) =
+ picture board; path border;
+ border = ((0,0)--(1,0)--(1,1)--(0,1)--cycle);
+ dark_square(D); board:=nullpicture;
+ for i=0 upto M-1:
+ for j=0 upto M-1:
+ if not odd(i+j): addto board also currentpicture shifted (D*i,D*j) fi;
+ endfor
+ endfor;
+ clearit;
+ pickup border_pen;
+ draw border scaled (M*D);
+ addto board also currentpicture;
+ currentpicture:=board;
+ enddef;
+
+% def reflect(text t) =
+% forsuffixes $=t: z$'=z$ reflectedabout (z1,z2); endfor;
+% enddef;
+def reflect(text t) =
+ forsuffixes $=t: x$'=1-x$+2figshift; y$'=y$; endfor;
+ enddef;
+
+def opr(suffix $) = (g(x$+thick#/d#), y$) enddef; % one point right
+def opl(suffix $) = (g(x$-thick#/d#), y$) enddef; % one point left
+def opu(suffix $) = (x$, g(y$+thick#/d#)) enddef; % one point up
+def opd(suffix $) = (x$, g(y$-thick#/d#)) enddef; % one point down
+def opur(suffix $) = f(x$+thick#/d#,y$+thick#/d#) enddef;
+ % one point up and right
+def opul(suffix $) = f(x$-thick#/d#,y$+thick#/d#) enddef;
+ % one point up and left
+
+
+
+vardef K(expr D, col, row) =
+ clearxy;
+ path cross_bar, crown, crown_top, crown_left, crown_right, crown_lower,
+ crown_top_inner, crown_left_inner, crown_right_inner;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup hairline_pen;
+% draw cross
+ z1=f(.5,.96); z2=f(.5,.8); z11=f(.42,.9); reflect(11);
+% cutdraw (z1--z2) moved; cutdraw (z11--z11') moved;
+ draw (z1--z2) moved; draw (z11--z11') moved;
+% top part of crown
+ z3=f(.5,.38); z21=f(.475,.5); z22=f(.45,.575); z23=f(.45,.775);
+ reflect(21,22,23);
+ crown_top= ((z3..z21..z22..z23..z2..z23'..z22'..z21'..z3) & cycle);
+% left and right part
+ z31=z21; z32=z22; z33=f(.32,.67); z34=f(.13,.69); z35=f(.07,.55);
+ z36=f(.13,.45); z37=f(.2,.34);
+ reflect(31, 32, 33, 34, 35, 36, 37);
+ crown_left=(z3..z31..z33..z34..z35..z36..z37);
+ crown_right=(z37'..z36'..z35'..z34'..z33'..z31'..z3);
+% lower part of the crown
+% z6=f(.5,.095); z61=f(.27,.12); z62=f(.2,.15); z63=f(.21,.23);
+ z6=f(.5,.095); z61=(x62,.09); z62=f(.2,.15); z63=f(.21,.23);
+ reflect(61, 62, 63);
+% crown_lower= ((z37--z63) & (z63--z62) & (z62..z61..z6..z61'..z62') &
+ crown_lower= ((z37--z63) & (z63--z62) & (z62..controls z61 and z61'..z62') &
+ (z62'--z63') & (z63'--z37') & (z37'..z3..z37) & cycle);
+% draw contour of crown
+ pickup thin_pen;
+ crown= crown_left & z37..z3..z37' & crown_right & cycle;
+ if background=dark: erase fill crown moved;
+ erase fill crown_top moved;
+ erase fill crown_lower moved;fi;
+ draw crown moved; draw crown_top moved;
+ if color=black:
+ z121=f(.5,.5); z123=f(.45,.675); z102=f(.5,.77);
+ reflect(123);
+ crown_top_inner = (z121{curl 0}..z123..z102..z123'..{curl 0}z121 & cycle);
+ z131=f(.45,.5); z133=f(.32,.64); z134=f(.13,.66); z135=f(.10,.55);
+ z136=f(.16,.45); z137=f(.22,.36); z103=f(.475,.4);
+ crown_left_inner= ((z103..z131..z133..z134..z135..z136..z137)
+ & (z137..{right}z103) & cycle);
+ crown_right_inner=crown_left_inner reflectedabout (z1,z2);
+ fill crown_top_inner moved;
+ fill crown_left_inner moved;
+ fill crown_right_inner moved;
+ fill crown_lower moved;
+ else: draw crown_lower moved;
+ fi;
+% draw inner parts
+ z4=f(.5,.28); z5=f(.5,.21);
+ if color=white:
+ draw (z37..z3..z37') moved;
+ draw (z63..z4..z63') moved;
+ draw (z62..z5..z62') moved;
+ else: pickup thick_pen;
+ erase draw (opr(37)..z3..opl(37')) moved;
+ erase draw (opr(63)..z4..opl(63')) moved;
+ erase draw (opr(62)..z5..opl(62')) moved;
+ fi;
+ enddef;
+
+vardef Q(expr D, col, row) =
+ clearxy;
+ path crown_top, crown, crown_lower;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% top part of crown
+ z1=f(.5,.92); z2=f(.5,.5); z11=f(.42,.46); z12=f(.275,.88);
+ z13=f(.25,.44); z14=f(.075,.8); z15=f(.125,.4);
+ reflect(11,12,13,14,15);
+ crown_top = (z15'--z14'--z13'--z12'--z11'--z1--z11--z12--z13--z14--z15);
+% lower part of the crown
+% z6=f(.5,.0775); z61=f(.25,.1); z62=f(.18,.125); z63=f(.22,y62+1/3(y15-y62));
+ z6=f(.5,.0775); z61=f(.18,0.05); z62=f(.18,.125); z63=(g(.22)+figshift,y62+1/3(y15-y62));
+ z64=(g(.19)+figshift,y62+2/3(y15-y62)); z65=(g(.15)+figshift,y64+1/3(y15-y64));
+ reflect(61,62,63,64,65);
+% crown_lower= ((z15--z64) & (z64--z63) & (z63--z62) &
+ crown_lower= ((z15..z65..z64) & (z64..z63..z62) &
+ (z62..controls z61 and z61'..z62') &
+ (z62'..z63'..z64') & (z64'..z65'..z15'));
+% draw contour of crown
+ crown= (crown_top & crown_lower & cycle);
+ if background=dark:
+ if color=white: erase fill crown moved; fi; fi;
+ if color=white: draw crown moved;
+ forsuffixes $:=1,12,12',14,14':
+ erase fill (fullcircle scaled .1 shifted z$) moved;
+ draw (fullcircle scaled .1 shifted z$) moved; endfor;
+ else: fill crown moved;
+ forsuffixes $:=1,12,12',14,14':
+ fill (fullcircle scaled .1 shifted z$) moved; endfor; fi;
+% draw inner parts
+ z3=(.5+figshift,y5+(y64-y62)); z4=(.5+figshift,y5+(y63-y62)); z5=f(.5,.17);
+ z67=(x62,y62+.7(y62-y61));
+ reflect(67);
+ if color=white: draw (z64..z3..z64') moved; draw (z63..z4..z63') moved;
+% draw (z62..z5..z62') moved;
+ draw (z62..controls z67 and z67'..z62') moved;
+ z21=z11; z22=f(.325,.475); z23=z13; z24=f(.175,.44); z25=z15;
+ reflect(21,22,23,24,25);
+ draw ((z2..z21..z22) & (z22..z23..z24) & (z24--z25)) moved;
+ draw ((z2..z21'..z22') & (z22'..z23'..z24') & (z24'--z25')) moved;
+ else: pickup thick_pen;
+ erase draw (opr(64)..z3..opl(64')) moved;
+ erase draw (opr(63)..z4..opl(63')) moved;
+ z72=f(.25,.14); z73=(x72+0.08,y72+.9(y67-y62));
+ reflect(72,73);
+% erase draw (opr(62)..z5..opl(62')) moved;
+ erase draw (z72..controls z73 and z73'..z72') moved;
+ fi;
+ enddef;
+
+
+vardef N(expr D, col, row) =
+ clearxy;
+ path knight, ear, eye, nose, mouth, neck;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the knight's contour
+ z1=f(.5,.82); z2=f(.5,.075); z11=f(.45,.93); z12=f(.375,.85);
+ z13=f(.25,.925);
+ z14=f(.26,.8); z15=f(.22,.75); z16=f(.18,.7); z17=f(.18,.66); z18=f(.07,.42);
+ z19=f(.07,.36); z20=f(.14,.3); z21=f(.17,.3); z22=f(.175,.275);
+ z23=f(.225,.28);
+ z24=f(.29,.38); z25=f(.41,.46); z26=f(.49,.51); z27=f(.435,.295);
+% z28=f(.32,.165);
+% z29=(.31,y2); z30=(.93,y2); z31=(.87,.5); z32=(.7,.78);
+ z28=f(.34,.18);
+ z29=(g(.33)+figshift,y2); z30=(g(.92)+figshift,y2); z31=f(.85,.5); z32=f(.73,.72);
+ knight = ((z1--z11--z12--z13--z14) &
+ (z14..z15..z16..z17..z18..z19..z20..z21) &
+ (z21..z22..z23..z24..z25..z26) &
+ (z26..z27..z28..z29) & (z29--z30) &
+ (z30..z31..z32..z1) &cycle);
+% draw contour of knight
+ if color=white: erase fill knight moved;
+ draw knight moved;
+ else: fill knight moved; fi;
+% draw inner parts
+ z4=f(.22,.62); z41=f(.25,.67); z42=f(.29,.705); z43=f(.31,.7); z44=f(.3,.68);
+ eye = (z4..z41..z42..z43 & z43..z44..z4 & cycle);
+ z5=f(.1,.36); z51=f(.1,.39); z52=f(.135,.43); z53=f(.15,.4); z54=f(.13,.38);
+ nose = (z5..z51..z52..z53..z54..z5 &cycle);
+ if color=white: z21'=f(.2,.34); draw (z21'--z21) moved; %mouth
+ z26'=f(.54,.63); draw (z26'..z26{z24-z26}) moved; %neck
+ draw (z12--z14) moved; % ear
+ fill eye moved; fill nose moved;
+ else: erase fill eye moved; erase fill nose moved; fi;
+% z30'=z30 + f(-thick#/d#,thick#/d#); pickup thick_pen
+ z30'=opul(30); pickup thick_pen
+ erase draw (.4[opd(1),z1]..opd(32)..1/2[opl(31),z31]..1/2[z30',z30]) moved; % mane
+ enddef;
+
+vardef B(expr D, col, row) =
+ clearxy;
+ path top, hat, brim, mitre, stole;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the top circle
+ z1=f(.5,.85); z2=f(.5,.8);
+ top = (fullcircle scaled .1 shifted z1);
+ if color=white: erase fill top moved; draw top moved;
+ else: fill top moved; fi;
+% the hat
+ z3=f(.5,.43); z21=f(.27,.57); z31=f(.35,.4); reflect(21,31);
+ hat = (z31'..z21'..z2{(-1,1)}) & (z2{(-1,-1)}..z21..z31);
+% the brim
+ z4=f(.5,.33); z5=f(.5,.23);
+ z41=f(.32,.28); reflect(41);
+ brim = ((z31--z41) & (z41..z5..z41') & (z41'--z31'));
+% the stole
+ z6=f(.5,.15); z7=f(.5,.3); z61=f(.44,.12); z62=f(.25,.1); z63=f(.15,.05);
+ z64=f(.09,.11); z65=f(.25,.18); z66=f(.44,.2);
+ reflect(61,62,63,64,65,66);
+ stole = ((z7..z66..z65..z64) & (z64--z63) & (z63..z62..z61..z6) &
+ (z6..z61'..z62'..z63') & (z63'--z64') & (z64'..z65'..z66'..z7) &cycle);
+% the mitre
+ mitre = (hat & brim & cycle);
+ if background=dark:
+ if color=white: erase fill mitre moved;
+ erase fill stole moved; fi; fi;
+ if color=black: fill mitre moved; fill stole moved;
+ else: draw mitre moved; draw stole moved;
+ erase fill mitre moved; draw mitre moved; fi;
+
+% inner parts of mitre
+ center:=g(.59); width:=g(.065);
+ if color=white: draw (z31..z3..z31') moved; draw (z41..z4..z41') moved;
+ draw (f(.5,center-width)--f(.5,center+width)) moved;
+ draw (f(.5-width,center)--f(.5+width,center)) moved;
+ else: pickup thick_pen;
+ erase cutdraw (opr(31)..z3..opl(31')) moved;
+ erase cutdraw (opr(41)..z4..opl(41')) moved;
+ erase cutdraw (f(.5,center-width)--f(.5,center+width)) moved;
+ erase cutdraw (f(.5-width,center)--f(.5+width,center)) moved;
+ fi;
+ enddef;
+
+vardef p(expr D, col, row) =
+ clearxy;
+ path pawn;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% the pawn's contour
+% z1=(.5,.9); z2=(.5,.1); z11=(.41,.85); z12=(.46,.73); z13=(.32,.6);
+% z14=(.41,.46); z15=(.3,.4); z16=(.2,.1);
+
+ z1=f(.5,.9);
+ z2=f(.5,.1); z11=f(.41,.85); z12=f(.46,.73); z13=f(.32,.6);
+ z14=f(.41,.46); z15=f(.3,.4); z16=f(.2,.1);
+ reflect(11,12,13,14,15,16);
+ pawn = ((z12'..z11'..z1..z11..z12) &
+ (z12..z13..z14) &
+ (z14..z15..z16) &
+ (z16--z16') &
+ (z16'..z15'..z14') &
+ (z14'..z13'..z12') & cycle);
+
+% draw contour of pawn
+ if background=dark:
+ if color=white: erase fill pawn moved; fi; fi;
+ if color=black: fill pawn moved;
+ else: draw pawn moved; fi;
+ enddef;
+
+% the rook should be shrunk slightly less than the other pieces
+%def g(expr x) = .5+(x-.5)*.9 enddef;
+ def rookscale(expr x) = .5+(x-.5)*.95 enddef;
+ def j(expr x,y) = (rookscale(x)+figshift,rookscale(y)) enddef;
+
+
+vardef R(expr D, col, row) =
+ clearxy;
+ path rook;
+ def moved = scaled D shifted (col*D, row*D) enddef;
+
+ pickup thin_pen;
+% top part of rook
+ z1=j(.5,.86); y15=y14=y11=y1; x15=x16=rookscale(.21)+figshift;
+ x19=x20=rookscale(.225)+figshift; y13=y12=rookscale(.8);
+ y16=rookscale(.725); y17=rookscale(.65); y18=rookscale(.35); y19=rookscale(.26); y20=y21=rookscale(.175); y22=rookscale(.1);
+ x22=x21=rookscale(.175)+figshift; x17=x18=rookscale(.31)+figshift;
+ x13=x14=rookscale(.325)+figshift; x11=x12=rookscale(.43)+figshift;
+ z2=j(.5,.1);
+ reflect(11,12,13,14,15,16,17,18,19,20,21,22);
+ rook = (z11--z12--z13--z14--z15--z16--z17--z18--z19--z20--z21--z22--z22'
+ --z21'--z20'--z19'--z18'--z17'--z16'--z15'--z14'--z13'--z12'--z11'--cycle);
+% draw contour of rook
+ if background=dark:
+ if color=white: erase fill rook moved; fi; fi;
+ if color=white: draw rook moved; else: fill rook moved; fi;
+% draw inner parts
+ if color=white: draw (z16--z16') moved; draw (z17--z17') moved;
+ draw (z18--z18') moved; draw (z19--z19') moved;
+ draw (z20--z20') moved;
+ else: pickup thick_pen;
+ erase draw (opr(16)--opl(16')) moved;
+ erase draw (opr(17)--opl(17')) moved;
+ erase draw (opr(18)--opl(18')) moved;
+ erase draw (opr(19)--opl(19')) moved;
+ erase draw (opr(20)--opl(20')) moved; fi;
+ enddef;
+
+
+
+
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakbrikker.mf b/Master/texmf-dist/fonts/source/public/skak/skakbrikker.mf
new file mode 100644
index 00000000000..31ccf6d6770
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakbrikker.mf
@@ -0,0 +1,197 @@
+% This is `chesspieces.mf' version 1.0 as of 8/90
+% METAfounded by Piet Tutelaers (internet: rcpt@urc.tue.nl)
+
+% this file generates the final chess font
+
+background:=light; color:=white;
+
+beginchar("0", d#, d#, 0); "0: light square";
+endchar;
+
+background:=dark;
+
+beginchar("Z", d#, d#, 0); "Z: dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("K", d#, d#, 0); "K: white king on light square";
+ define_whole_pixels(d);
+ K(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("k", d#, d#, 0); "k: black king on light square";
+ define_whole_pixels(d);
+ K(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("J", d#, d#, 0); "J: white king on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ K(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("j", d#, d#, 0); "j: black king on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ K(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("Q", d#, d#, 0); "Q: white queen on light square";
+ define_whole_pixels(d);
+ Q(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("q", d#, d#, 0); "q: black queen on light square";
+ define_whole_pixels(d);
+ Q(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("L", d#, d#, 0); "L: white queen on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ Q(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("l", d#, d#, 0); "l: black queen on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ Q(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("R", d#, d#, 0); "R: white rook on light square";
+ define_whole_pixels(d);
+ R(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("r", d#, d#, 0); "r: black rook on light square";
+ define_whole_pixels(d);
+ R(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("S", d#, d#, 0); "S: white rook on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ R(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("s", d#, d#, 0); "s: black rook on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ R(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("B", d#, d#, 0); "B: white bishop on light square";
+ define_whole_pixels(d);
+ B(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("b", d#, d#, 0); "b: black bishop on light square";
+ define_whole_pixels(d);
+ B(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("A", d#, d#, 0); "A: white bishop on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ B(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("a", d#, d#, 0); "a: black bishop on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ B(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("N", d#, d#, 0); "N: white knight on light square";
+ define_whole_pixels(d);
+ N(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("n", d#, d#, 0); "n: black knight on light square";
+ define_whole_pixels(d);
+ N(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("M", d#, d#, 0); "M: white knight on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ N(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("m", d#, d#, 0); "m: black knight on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ N(d, 0, 0);
+endchar;
+
+background:=light; color:=white;
+
+beginchar("P", d#, d#, 0); "P: white pawn on light square";
+ define_whole_pixels(d);
+ p(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("p", d#, d#, 0); "p: black pawn on light square";
+ define_whole_pixels(d);
+ p(d, 0, 0);
+endchar;
+
+background:=dark; color:=white;
+
+beginchar("O", d#, d#, 0); "O: white pawn on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ p(d, 0, 0);
+endchar;
+
+color:=black;
+
+beginchar("o", d#, d#, 0); "o: black pawn on dark square";
+ define_whole_pixels(d);
+ dark_square(d);
+ p(d, 0, 0);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakf10.mf b/Master/texmf-dist/fonts/source/public/skak/skakf10.mf
new file mode 100644
index 00000000000..d3adce449bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakf10.mf
@@ -0,0 +1,65 @@
+% This is `skakf10.mf' version 1.0 as of 6/99
+% based on original work by Piet Tutelaers
+
+% Informator symbols added
+% by Dirk Baechle, dl9obn@darc.de <2002-11-06>
+
+% generates a font consisting of chess figurines
+
+mode_setup;
+font_size 10pt#;
+
+u#:=10pt#;
+
+input skakbase;
+
+def figurine(expr code) =
+ beginchar(code, d#, 0.9d#, .1d#);
+ pickup pencircle scaled hairline; %gg
+ hairline_pen:=savepen; %gg
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ figshift:=0;
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+def narrow_figurine(expr code) =
+ beginchar(code, 0.8d#, 0.9d#, .1d#);
+ pickup pencircle scaled hairline; %gg
+ hairline_pen:=savepen; %gg
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ figshift:=-0.1;
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+M=1; % number of squares
+d#:=10pt#/M; %10pt#/M; % size per square
+lift=0.08;
+hairline#:=.30pt#; %gg
+thin#:=1/3pt#;
+middle#:=1/2pt#;
+thick#:=5/6pt#;
+define_blacker_pixels(hairline, thin, middle, thick); %gg added hairline???
+light=0; dark=1; white=0; black=1;
+background:=light; color:=white;
+
+narrow_figurine("K");
+narrow_figurine("R");
+narrow_figurine("B");
+figurine("N");
+figurine("p");
+figurine("Q");
+
+input skakinf;
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakf10b.mf b/Master/texmf-dist/fonts/source/public/skak/skakf10b.mf
new file mode 100644
index 00000000000..6caa09e9a1d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakf10b.mf
@@ -0,0 +1,65 @@
+% This is `skakf10b.mf' version 1.0 as of 6/99
+% based on original work by Piet Tutelaers
+
+% Informator symbols added
+% by Dirk Baechle, dl9obn@darc.de <2002-11-06>
+
+% generates a font consisting of chess figurines
+
+mode_setup;
+font_size 10pt#;
+
+u#:=10pt#;
+
+input skakbase;
+
+def figurine(expr code) =
+ beginchar(code, d#, .8d#, .2d#);
+ pickup pencircle scaled fine;
+ hairline_pen:=savepen;
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ figshift:=0;
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+def narrow_figurine(expr code) =
+ beginchar(code, 0.8d#, .8d#, .2d#);
+ pickup pencircle scaled fine;
+ hairline_pen:=savepen;
+ pickup pencircle scaled thin;
+ thin_pen:=savepen ; % for drawing pieces
+ pickup pencircle scaled thick;
+ thick_pen:=savepen; % for drawing inside pieces
+ define_whole_pixels(d);
+ figshift:=-0.1;
+ scantokens code(d, 0, -.2);
+ endchar;
+enddef;
+
+M=1; % number of squares
+d#:=10pt#/M; % size per square
+lift=0.08;
+thin#:=.47pt#;
+middle#:=.7pt#;
+fine#:=9/10thin#;
+thick#:=5/6pt#;
+define_blacker_pixels(fine, thin, middle, thick);
+light=0; dark=1; white=0; black=1;
+background:=light; color:=white;
+
+narrow_figurine("K");
+narrow_figurine("R");
+narrow_figurine("B");
+figurine("N");
+figurine("p");
+figurine("Q");
+
+input skakinf;
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/skak/skakinf.mf b/Master/texmf-dist/fonts/source/public/skak/skakinf.mf
new file mode 100644
index 00000000000..224a7740181
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skak/skakinf.mf
@@ -0,0 +1,739 @@
+
+% First, the markers (cross and circle) are defined for usage
+% in the normal text.
+
+beginchar("x", d#, .8d#, .2d#);
+ "x: Cross marker";
+
+ pickup pencircle scaled thick;
+ define_whole_pixels(d);
+
+ % lower left point
+ z1=(.2d,0);
+ % upper left point
+ z2=(.2d,.6d);
+ % lower right point
+ z3=(.8d,0);
+ % upper right point
+ z4=(.8d,.6d);
+
+ draw z1..z4;
+ draw z2..z3;
+endchar;
+
+beginchar("y", d#, .8d#, .2d#);
+ "y: Circle marker";
+
+ pickup pencircle scaled thick;
+ define_whole_pixels(d);
+
+ draw fullcircle scaled .6d shifted (.5d,.3d);
+endchar;
+
+% Additionally, a "plus" and "minus" sign and the
+% ``capture'' symbol are provided
+
+beginchar("+", .7d#, d#, 0);
+ "+: Plus";
+
+ pickup pencircle scaled middle;
+ define_whole_pixels(d);
+
+ % Plus sign
+ z1=(.1d,.25d);
+ z2=(.6d,.25d);
+ z3=(.35d,.5d);
+ z4=(.35d,0);
+
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+
+beginchar("-", .4d#, d#, 0);
+ "-: Minus";
+
+ pickup pencircle scaled middle;
+ define_whole_pixels(d);
+
+ % Minus sign
+ z1=(.1d,.3d);
+ z2=(.3d,.3d);
+
+ draw z1--z2;
+endchar;
+
+beginchar("X", .6d#, d#, 0);
+ "X: Capture symbol";
+
+ pickup pencircle scaled middle;
+ define_whole_pixels(d);
+
+ % lower left point
+ z1=(.1d,.5middle);
+ % upper left point
+ z2=(.1d,.4d+.5middle);
+ % lower right point
+ z3=(.5d,.5middle);
+ % upper right point
+ z4=(.5d,.4d+.5middle);
+
+ draw z1..z4;
+ draw z2..z3;
+endchar;
+
+% Here, the definitions of the informator symbols start
+
+beginchar("a", d#, d#, 0);
+ "a: Informator symbol ``pair of bishops''";
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Points for lower square
+ z1=(.1d,.5d);
+ z2=(.1d,0);
+ z3=(.6d,.5d);
+ z4=(.6d,0);
+
+ % Points for upper square
+ z5=(.4d,.8d);
+ z6=(.4d,.3d);
+ z7=(.9d,.8d);
+ z8=(.9d,.3d);
+
+ draw z1--z2--z4--z3--z1;
+ draw z5--z6--z8--z7--z5;
+endchar;
+
+beginchar("b", 1.2d#, d#, 0);
+ "b: Informator symbol ``better is''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Points for vertical line
+ z1=(.1d,0);
+ z2=(1.1d,0);
+
+ draw z1..z2;
+ draw halfcircle scaled d shifted (.6d,0);
+endchar;
+
+beginchar("c", .7d#, d#, 0);
+ "c: Informator symbol ``white has the upper hand''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Minus sign
+ z1=(.1d,.2d);
+ z2=(.6d,.2d);
+ % Plus sign
+ z3=(.1d,.55d);
+ z4=(.6d,.55d);
+ z5=(.35d,.8d);
+ z6=(.35d,.3d);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+
+beginchar("d", .9d#, d#, 0);
+ "d: Informator symbol ``double pawns''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ draw fullcircle scaled .35d shifted (.45d,.125d);
+ draw fullcircle scaled .35d shifted (.45d,.625d);
+endchar;
+
+beginchar("e", .7d#, d#, 0);
+ "e: Informator symbol ``black has the upper hand''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Minus sign
+ z1=(.1d,.6d);
+ z2=(.6d,.6d);
+ % Plus sign
+ z3=(.1d,.25d);
+ z4=(.6d,.25d);
+ z5=(.35d,.5d);
+ z6=(.35d,0);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+
+beginchar("f", .7d#, d#, 0);
+ "f: Informator symbol ``white stands slightly better''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Equal sign
+ z1=(.1d,.2d);
+ z2=(.6d,.2d);
+ z3=(.1d,.1d);
+ z4=(.6d,.1d);
+ % Plus sign
+ z5=(.1d,.55d);
+ z6=(.6d,.55d);
+ z7=(.35d,.8d);
+ z8=(.35d,.3d);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+
+beginchar("g", .7d#, d#, 0);
+ "g: Informator symbol ``black stands slightly better''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Equal sign
+ z1=(.1d,.6d);
+ z2=(.6d,.6d);
+ z3=(.1d,.7d);
+ z4=(.6d,.7d);
+ % Plus sign
+ z5=(.1d,.25d);
+ z6=(.6d,.25d);
+ z7=(.35d,.5d);
+ z8=(.35d,0);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+
+beginchar("h", 1.3d#, d#, 0);
+ "h: Informator symbol ``white has a decisive advantage''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Plus sign
+ z1=(.1d,.25d);
+ z2=(.6d,.25d);
+ z3=(.35d,.5d);
+ z4=(.35d,0);
+ % Minus sign
+ z5=(.7d,.25d);
+ z6=(1.2d,.25d);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+
+beginchar("i", 1.3d#, d#, 0);
+ "i: Informator symbol ``black has a decisive advantage''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Minus sign
+ z1=(.1d,.25d);
+ z2=(.6d,.25d);
+ % Plus sign
+ z3=(.7d,.25d);
+ z4=(1.2d,.25d);
+ z5=(.95d,.5d);
+ z6=(.95d,0);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+
+beginchar("j", .7d#, d#, 0);
+ "j: Informator symbol ``even''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,.4d);
+ z2=(.6d,.4d);
+ z3=(.1d,.3d);
+ z4=(.6d,.3d);
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+
+beginchar("k", .7d#, d#, 0);
+ "k: Informator symbol ``unclear''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,.35d);
+ z2=(.2d,.475d);
+ z3=(.35d,.35d);
+ z4=(.5d,.225d);
+ z5=(.6d,.35d);
+ z6=(.5d,.475d);
+ z7=(.2d,.225d);
+
+ draw z1..z2..z3..z4..z5..z6..z3..z7..cycle;
+endchar;
+
+beginchar("l", d#, d#, 0);
+ "l: Informator symbol ``see''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,.35d);
+ z2=(.9d,.35d);
+ draw z1--z2;
+endchar;
+
+beginchar("m", .9d#, d#, 0);
+ "m: Informator symbol ``mate''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Points for vertical lines
+ z1=(.1d,.5d);
+ z2=(.1d,.2d);
+ z3=(.8d,.5d);
+ z4=(.8d,.2d);
+
+ % Points for horizontal lines
+ z5=(.3d,.7d);
+ z6=(.6d,.7d);
+ z7=(.3d,0);
+ z8=(.6d,0);
+
+ draw z1..z3;
+ draw z2..z4;
+ draw z5..z7;
+ draw z6..z8;
+endchar;
+
+beginchar("n", .7d#, d#, 0);
+ "n: Informator symbol ``with compensation for the material''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Infinity symbol
+ z1=(.1d,.25d);
+ z2=(.2d,.375d);
+ z3=(.35d,.25d);
+ z4=(.5d,.125d);
+ z5=(.6d,.25d);
+ z6=(.5d,.375d);
+ z7=(.2d,.125d);
+ % Equal sign
+ z8=(.1d,.575d);
+ z9=(.6d,.575d);
+ z10=(.1d,.475d);
+ z11=(.6d,.475d);
+
+ draw z1..z2..z3..z4..z5..z6..z3..z7..cycle;
+ draw z8--z9;
+ draw z10--z11;
+endchar;
+
+beginchar("o", d#, d#, 0);
+ "o: Informator symbol ``bishops of opposite color''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Points for lower square
+ z1=(.1d,.5d);
+ z2=(.1d,0);
+ z3=(.6d,.5d);
+ z4=(.6d,0);
+
+ % Points for upper square
+ z5=(.4d,.8d);
+ z6=(.4d,.3d);
+ z7=(.9d,.8d);
+ z8=(.9d,.3d);
+
+ draw z1--z2--z4--z3--z1;
+ fill z5--z6--z8--z7--cycle;
+endchar;
+
+beginchar("q", 1.25d#, d#, 0);
+ "q: Informator symbol ``separated pawns''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ draw fullcircle scaled .35d shifted (.275d,.4d);
+ fill fullcircle scaled .1d shifted (.55d,.4d);
+ fill fullcircle scaled .1d shifted (.7d,.4d);
+ draw fullcircle scaled .35d shifted (.975d,.4d);
+endchar;
+
+beginchar("r", d#, d#, 0);
+ "r: Informator symbol ``passed pawn''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.5d,.7d);
+ z2=(.5d,.4d);
+ draw fullcircle scaled .4d shifted (.5d,.2d);
+ draw z1--z2;
+ draw quartercircle rotated 270 scaled .2d shifted (.4d,.7d);
+ draw quartercircle rotated 180 scaled .2d shifted (.6d,.7d);
+endchar;
+
+beginchar("s", d#, d#, 0);
+ "s: Informator symbol ``bishops of the same color''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Points for lower square
+ z1=(.1d,.5d);
+ z2=(.1d,0);
+ z3=(.6d,.5d);
+ z4=(.6d,0);
+
+ % Points for upper square
+ z5=(.4d,.8d);
+ z6=(.4d,.3d);
+ z7=(.9d,.8d);
+ z8=(.9d,.3d);
+
+ fill z1--z2--z4--z3--cycle;
+ fill z5--z6--z8--z7--cycle;
+endchar;
+
+beginchar("t", d#, d#, 0);
+ "t: Informator symbol ``development advantage''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Arcus
+ z1=(.8d,.65d);
+ z2=(.5d,.8d);
+ z3=(.1d,.4d);
+ z4=(.5d,0);
+ z5=(.9d,.4d);
+ z6=(.85d,.55d);
+ % Arrow
+ z7=(.65d,.65d);
+ z8=(.8d,.8d);
+
+ draw z1..z2..z3..z4..z5..z6;
+ draw z7--z1;
+ draw z8--z1;
+endchar;
+
+beginchar("u", d#, d#, 0);
+ "u: Informator symbol ``united pawns''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ draw fullcircle scaled .35d shifted (.275d,.4d);
+ draw fullcircle scaled .35d shifted (.725d,.4d);
+endchar;
+
+beginchar("v", d#, d#, 0);
+ "v: Informator symbol ``without''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,.8d);
+ z2=(.1d,0);
+ z3=(.9d,0);
+ draw z1--z2--z3;
+endchar;
+
+beginchar("w", d#, d#, 0);
+ "w: Informator symbol ``with''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,0);
+ z2=(.9d,0);
+ z3=(.9d,.8d);
+ draw z1--z2--z3;
+endchar;
+
+beginchar("A", .9d#, d#, 0);
+ "A: Informator symbol ``with attack''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,.4d);
+ z2=(.7d,.4d);
+
+ draw z1--z2;
+ draw quartercircle rotated 180 scaled .2d shifted (.7d,.5d);
+ draw quartercircle rotated 90 scaled .2d shifted (.7d,.3d);
+endchar;
+
+beginchar("C", .6d#, d#, 0);
+ "C: Informator symbol ``with initiative''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.3d,.7d);
+ z2=(.3d,.1d);
+
+ draw z1--z2;
+ draw quartercircle rotated 270 scaled .2d shifted (.2d,.7d);
+ draw quartercircle rotated 180 scaled .2d shifted (.4d,.7d);
+endchar;
+
+beginchar("D", d#, d#, 0);
+ "D: Informator symbol ``zugzwang''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ draw fullcircle scaled .8d shifted (.5d,.4d);
+ fill fullcircle scaled .15d shifted (.5d,.4d);
+endchar;
+
+beginchar("E", d#, d#, 0);
+ "E: Informator symbol ``with the idea''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,0);
+ z2=(.9d,0);
+ z3=(.5d,.8d);
+
+ draw z1--z2--z3--z1;
+endchar;
+
+beginchar("F", d#, d#, 0);
+ "F: Informator symbol ``only move''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,0);
+ z2=(.9d,0);
+ z3=(.9d,.8d);
+ z4=(.1d,.8d);
+
+ draw z1--z2--z3--z4--z1;
+endchar;
+
+beginchar("G", d#, d#, 0);
+ "G: Informator symbol ``diagonal''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,.15d);
+ z2=(.75d,.8d);
+ z3=(.25d,0);
+ z4=(.9d,.65d);
+ z5=(.55d,.8d);
+ z6=(.9d,.45d);
+ z7=(.9d,.8d);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z7--z6;
+endchar;
+
+beginchar("H", d#, d#, 0);
+ "H: Informator symbol ``file''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.2d,.5d);
+ z2=(.8d,.5d);
+ z3=(.2d,.3d);
+ z4=(.8d,.3d);
+ z5=(.3d,.6d);
+ z6=(.1d,.4d);
+ z7=(.3d,.2d);
+ z8=(.7d,.6d);
+ z9=(.9d,.4d);
+ z10=(.7d,.2d);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6--z7;
+ draw z8--z9--z10;
+endchar;
+
+beginchar("I", d#, d#, 0);
+ "I: Informator symbol ``centre''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Outer square
+ z1=(.1d,0);
+ z2=(.9d,0);
+ z3=(.9d,.8d);
+ z4=(.1d,.8d);
+ % Cross
+ z5=(.2d,.4d);
+ z6=(.8d,.4d);
+ z7=(.5d,.7d);
+ z8=(.5d,.1d);
+
+ draw z1--z2--z3--z4--z1;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+
+beginchar("J", d#, d#, 0);
+ "J: Informator symbol ``weak point''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,0);
+ z2=(.9d,0);
+ z3=(.9d,.8d);
+ z4=(.1d,.8d);
+
+ draw z1--z3;
+ draw z2--z4;
+endchar;
+
+beginchar("L", d#, d#, 0);
+ "L: Informator symbol ``ending''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,0);
+ z2=(.9d,0);
+ z3=(.5d,0);
+ z4=(.5d,.8d);
+
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+
+beginchar("M", .8d#, d#, 0);
+ "M: Informator symbol ``queen's side''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.4d,.7d);
+ z2=(.1d,.4d);
+ z3=(.4d,.1d);
+ z4=(.6d,.7d);
+ z5=(.3d,.4d);
+ z6=(.6d,.1d);
+
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+endchar;
+
+beginchar("O", .8d#, d#, 0);
+ "O: Informator symbol ``king's side''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.4d,.7d);
+ z2=(.7d,.4d);
+ z3=(.4d,.1d);
+ z4=(.2d,.7d);
+ z5=(.5d,.4d);
+ z6=(.2d,.1d);
+
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+endchar;
+
+beginchar("P", .4d#, d#, 0);
+ "P: Informator symbol ``etc''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,.8d);
+ z2=(.1d,0);
+ z3=(.3d,.8d);
+ z4=(.3d,0);
+
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+
+beginchar("S", .8d#, d#, 0);
+ "S: Informator symbol ``advantage in number of pawns''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,.8d);
+ z2=(.7d,.4d);
+ z3=(.1d,0);
+
+ draw z1--z2--z3;
+endchar;
+
+beginchar("T", d#, d#, 0);
+ "T: Informator symbol ``time''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ % Cross
+ z1=(.2d,.4d);
+ z2=(.8d,.4d);
+ z3=(.5d,.7d);
+ z4=(.5d,.1d);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw fullcircle scaled .8d shifted (.5d,.4d);
+endchar;
+
+beginchar("U", d#, d#, 0);
+ "U: Informator symbol ``greater board room''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ draw fullcircle scaled .8d shifted (.5d,.4d);
+endchar;
+
+beginchar("V", .8d#, d#, 0);
+ "V: Informator symbol ``with counter-play''";
+
+ pickup pencircle scaled thin;
+ define_whole_pixels(d);
+
+ z1=(.1d,.5d);
+ z2=(.7d,.5d);
+ z3=(.1d,.3d);
+ z4=(.7d,.3d);
+
+ draw z1--z2;
+ draw z3--z4;
+ draw quartercircle rotated 270 scaled .2d shifted (.1d,.6d);
+ draw quartercircle scaled .2d shifted (.1d,.4d);
+ draw quartercircle rotated 180 scaled .2d shifted (.7d,.4d);
+ draw quartercircle rotated 90 scaled .2d shifted (.7d,.2d);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/skull/skull.mf b/Master/texmf-dist/fonts/source/public/skull/skull.mf
new file mode 100644
index 00000000000..44673a1bb0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/skull/skull.mf
@@ -0,0 +1,82 @@
+% (c) 2002 Henrik Christian Grove
+% Frigivet under GPL
+%
+
+font_size:=12pt#;
+
+mode_setup;
+u#:= 8pt#;
+
+define_pixels(u);
+
+def enkelt_op(expr l,b,r) =
+ (0,b/2)..(l,b/2)..(l+r*b,0)..(l,-b/2)..(l/2,-b/2)
+enddef;
+
+def enkelt_ned(expr l,b,r) =
+ (l/2,b/2)..(l,b/2)..(l+r*b,0)..(l,-b/2)..(0,-b/2)
+enddef;
+
+def dobbelt(expr l,b,l_op,b_op,r_op,v_op,l_ned,b_ned,r_ned,v_ned) =
+ (0,b/2){right}..(l-2*b_op,b/2)..
+ ((enkelt_op(l_op,b_op,r_op)) rotated v_op shifted (l-b_op/3,b/2))..
+ (l,0)..
+ ((enkelt_ned(l_ned,b_ned,r_ned)) rotated -v_ned shifted (l-b_ned/3,-b/2))..
+ (l-2*b_ned,-b/2)..{left}(0,-b/2)
+enddef;
+
+beginchar("A",1.5u#,1.4u#,0.4u#);
+ pickup pencircle scaled .01u;
+
+ filldraw ((dobbelt(.3u,.1u,.1u,.1u,.5,45,.08u,.11u,.52,74)) shifted (u,0)---
+ (dobbelt(.3u,.096u,.1u,.13u,.49,47,.08u,.11u,.52,42)) rotated 180
+ shifted (.5u,0)---cycle) rotated 15 shifted (0,-.24u);
+
+ pickup pencircle scaled .07u;
+
+ erase filldraw ((dobbelt(.3u,.1u,.078u,.1u,.5,41,.08u,.12u,.52,44)) shifted (u,0)---
+ (dobbelt(.28u,.104u,.1u,.099u,.53,63,.06u,.11u,.52,43)) rotated 180
+ shifted (.5u,0)---cycle) rotated -18 shifted (.1u,.2u);
+
+ pickup pencircle scaled .01u;
+
+ filldraw ((dobbelt(.3u,.1u,.078u,.1u,.5,41,.08u,.12u,.52,44)) shifted (u,0)---
+ (dobbelt(.28u,.104u,.1u,.099u,.53,63,.06u,.11u,.52,43)) rotated 180
+ shifted (.5u,0)---cycle) rotated -18 shifted (.1u,.2u);
+
+ pickup pencircle scaled .02u;
+
+ filldraw (0.4w,0.18h)--(0.66w,0.18h){right}..{up}(0.71w,0.32h)..
+ (0.79w,0.7h)..(0.5w,0.9h)..(0.353w,0.86h)--(0.368w,0.8h)--(0.397w,0.73h)--
+ (0.33w,0.66h)--(0.28w,0.67h)--
+ (0.34w,0.731h)--(0.314w,0.81h)--
+ (0.307w,0.84h)..(0.24w,0.7h)..(0.35w,0.32h){down}..{right}cycle;
+
+ erase fill (0.39w,0.57h)..(0.46w,0.62h)..(0.39w,0.67h)..(0.32w,0.62h)..cycle;
+ erase fill (0.64w,0.57h)..(0.71w,0.62h)..(0.64w,0.67h)..(0.57w,0.62h)..cycle;
+
+ erase filldraw (0.52w,0.59h)..tension 2..{down}(0.47w,0.48h)..(0.49w,0.46h)..
+ (0.52w,0.49h)..(0.55w,0.47h)..(0.57w,0.485h){up}..tension 2.4..cycle;
+
+ pickup pencircle scaled .01u;
+
+ erase filldraw (0.34w,0.45h)---(0.34w,0.47h)..(0.37w,0.465h)..(0.41w,0.4h)..
+ (0.5w,0.37h)..(0.64w,0.4h)..(0.68w,0.465h)..(0.71w,0.47h)---
+ (0.71w,0.45h){dir 260}..(0.5w,0.28h)..{dir 100}cycle;
+
+ pickup pensquare scaled .02u;
+
+ fill (0.4w,0.42h)--(0.44w,0.4h)--(0.445w,0.365h)--(0.407w,0.35h)--cycle;
+ fill (0.46w,0.38h)--(0.49w,0.37h)--(0.487w,0.34h)--(0.456w,0.35h)--cycle;
+ fill (0.5w,0.37h)--(0.53w,0.39h)--(0.535w,0.33h)--(0.5w,0.33h)--cycle;
+ fill (0.55w,0.38h)--(0.586w,0.4h)--(0.58w,0.335h)--(0.552w,0.335h)--cycle;
+ fill (0.59w,0.38h)--(0.63w,0.4h)--(0.624w,0.355h)--(0.594w,0.335h)--cycle;
+
+ fill (0.42w,0.345h)--(0.458w,0.337h)--(0.452w,0.3h)--(0.425w,0.3h)--cycle;
+ fill (0.48w,0.32h)--(0.506w,0.315h)--(0.50w,0.27h)--(0.48w,0.27h)--cycle;
+ fill (0.515w,0.315h)--(0.557w,0.31h)--(0.557w,0.27h)--(0.52w,0.27h)--cycle;
+ fill (0.6w,0.325h)--(0.63w,0.335h)--(0.63w,0.295h)--(0.61w,0.295h)--cycle;
+endchar;
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/soyombo/soyombo.mf b/Master/texmf-dist/fonts/source/public/soyombo/soyombo.mf
new file mode 100644
index 00000000000..2608fa1e077
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/soyombo/soyombo.mf
@@ -0,0 +1,1996 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: soyombo.mf
+% Date: August 20, 1996
+% Author: Oliver Corff
+% (c) 1996 Ulaanbaatar, Macau, Berlin
+%
+% A metafont for providing the Soyombo script to LaTeX-users.
+%
+% Usage: see package soyombo
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%%%%%%% This font contains the Soyombo alphabet. %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+ if unknown mag: mag := 1; fi;
+ mg:=3/4;
+ n#:=mg*pt#;
+ margin#:=mg*2pt#;
+ o_width#:=mg*12pt#;
+ bwidth#:=mg*4pt#;
+ full_w#:=2margin#+o_width#+bwidth#;
+ thin#:=mg*1pt#;
+ height#:=mg*24pt#;
+ vheight#:=height#+mg*4pt#;
+ om_height#:=vheight#+mg*4pt#;
+ depth#:=mg*4pt#;
+ center#:=.5o_width#+margin#;
+ width#:=o_width#+margin#;
+ define_pixels(thin,width,bwidth,o_width,height,
+ vheight,om_height,n,margin,depth,center);
+
+ font_size = 17pt#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%% Segment definitions. %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+def full_balken = % Rechter Balken
+ x1=x4=width;
+ x2=x3=width+bwidth;
+ y1-2n=y2=0;
+ y3=y4=height;
+ fill z1--z2--z3--z4--cycle;
+enddef;
+
+def full_k_balken = % Rechter Balken fuer 'k's
+ x1=x4=width;
+ x2=x3=width+bwidth;
+ y1-2n=y2=0;
+ y3=y4+2n=height;
+ fill z1--z2--z3--z4--cycle;
+enddef;
+
+def middle_k_beam = % Mittlerer Balken fuer 'k's
+ x5=x8=center-1thin;
+ x6=x7=center+3thin;
+ y5-2n=y6=1/3height+thin;
+ y7=y8=height-2n;
+ fill z5--z6--z7--z8--cycle;
+enddef;
+
+
+def hor_k_beam = % Horizontaler Balken fuer 'k's
+ x20=center+3thin;
+ x21=width;
+ y20=y21=2/3height;
+ pickup pencircle scaled 1.5thin;
+ draw z20--z21;
+enddef;
+
+def shorter_g_horn(expr xofs) = % Linkes, nach oben weisendes Horn
+ x71=x72=margin;
+ x77=x78=x71+2thin;
+ x73=x76=x77+thin;
+ x74=x75=center-xofs*thin;
+
+ y71=y78=height-5n;
+ y75=y76=2/3height;
+ y73=y74=2/3height-1.5thin;
+ y72=y77=y75+thin;
+
+ fill z71---z72{down}..{right}z73---z74--z75---z76{left}..{up}z77---z78--cycle;
+enddef;
+
+def g_horn(expr xofs) = % Linkes, nach oben weisendes Horn
+ x71=x72=margin;
+ x77=x78=x71+2thin;
+ x73=x76=x77+thin;
+ x74=x75=center-xofs*thin;
+
+ y71=y78=height-3n;
+ y75=y76=2/3height+.75thin;
+ y73=y74=2/3height-.75thin;
+ y72=y77=y75+thin;
+
+ fill z71---z72{down}..{right}z73---z74--z75---z76{left}..{up}z77---z78--cycle;
+enddef;
+
+def common_triangle = % Oberes Dreieck
+ x11=margin;
+ x12=center;
+ x13=width;
+ y11=y13=height;
+ y12=height-3n;
+ fill z11--z12--z13--cycle;
+enddef;
+
+def k_triangle = % Oberes Dreieck fuer 'k's
+ x11=margin;
+ x12=center+1thin;
+ x13=width+1/2bwidth;
+ y11=y13=height;
+ y12=height-3n;
+ fill z11--z12--z13--cycle;
+enddef;
+
+def upper_fish = % Oberer Fisch;
+ x21=width-thin;
+ x22=x27=center;
+ x23=margin;
+ x25=x23+1/4[margin,center];
+ x24=x26=.5[x23,x25];
+
+ y21-1.5n=y23=y25=5/6height;
+ y22=2/3height;
+ y27=1/2[2/3height,5/6height];
+ y24=height-2n;
+ y26=height-4n;
+
+ fill z21..z22..z23..z24..z25..z26 & z26..z27..z21 & cycle;
+enddef;
+
+def lower_fish = % Unterer Fisch;
+ x31=margin;
+ x32=x35=x38=margin+2/3o_width;
+ x33=width-2thin;
+ x34=x36=margin+5/6o_width-thin;
+ x37=x33-1.5thin;
+
+ y33=y37=1/2height;
+ y32=y38-1thin=4/9height;
+ y31=y34=y36+1.5thin=2/3height;
+ y35=2/3[4/9height,2/3height];
+
+ fill z31..z32..z33..z34..z35 & z35..z36..z37..z38..z31 & cycle;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+ %%%%%%%%%% Character definitions. %%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar("{",margin#+bwidth#+width#+bwidth#,vheight#+14thin#,depth#);
+ "Soyombo Initial";
+ % Linker Balken
+ z1=(margin,0);
+ z2=(margin+bwidth,0);
+ z3=(x2,height);
+ z4=(x1,height);
+ fill z1--z2--z3--z4--cycle;
+
+ % Rechter Balken
+ z5=(bwidth+width,0);
+ z6=(bwidth+width+bwidth,0);
+ z7=(x6,height);
+ z8=(x5,height);
+ fill z5--z6--z7--z8--cycle;
+
+ % Oberes Dreieck
+ z9=(margin+bwidth,height);
+ z10=(center+bwidth,height-3n);
+ z11=(width+bwidth,height);
+ fill z9--z10--z11--cycle;
+
+ % Unteres Dreieck
+ z12=(margin+bwidth,3n);
+ z13=(center+bwidth,0);
+ z14=(width+bwidth,3n);
+ fill z12--z13--z14--cycle;
+
+ % Unterer Balken
+ z15=(x12+thin,y12+thin);
+ z16=(x15,y15+2thin);
+ z17=(x14-thin,y16);
+ z18=(x17,y15);
+ fill z15--z16--z17--z18--cycle;
+
+ % Oberer Balken
+ z19=(x12+thin,y10-thin);
+ z20=(x19,y19-2thin);
+ z21=(x14-thin,y20);
+ z22=(x21,y19);
+ fill z19--z20--z21--z22--cycle;
+
+ % Fische
+ z23=(x10,y20-thin);
+ z24=(x10,y16+thin);
+ pickup pencircle scaled .5thin;
+ draw z23..z24..cycle;
+
+ % Hilfspunkt z25, wird nur fuer die Halbkreise benoetigt!
+ z25=(x10,.5[y23,y24]);
+ draw halfcircle rotated 90 scaled 5n shifted (x10,.5[y23,y25]) ;
+ draw halfcircle rotated 270 scaled 5n shifted (x10,.5[y25,y24]);
+
+ % Die Augen
+ pickup pencircle scaled .75thin;
+ draw (x10,.5[y23,y25]);
+ draw (x10,.5[y25,y24]);
+
+ % Mond
+ z26=(x9,vheight);
+ z27=(x10,height+thin);
+ z28=(x11,y26);
+ z29=(x10,y27+thin);
+ fill z26..z27..z28 & z28..z29..z26 & cycle;
+
+ % Sonne
+ % pickup pencircle scaled .5thin;
+ z30=(x10,y29+thin);
+ z31=(x10,y30+4thin);
+ draw z30..z31..cycle;
+
+ % Feuer
+ z32=(x10,y31+5thin+thin);
+ penpos32(epsilon,0);
+ z33=(x10-1.5thin,y32-1.5thin);
+ penpos33(.75thin,0);
+ z34=(x10,y31+2thin);
+ penpos34(.75thin,90);
+ z35=(x10+1.5thin,y33+thin);
+ penpos35(.75thin,180);
+ z36=(x10,y32+4thin);
+ penpos36(epsilon,180);
+
+ penstroke z32e{down}..z33e..z34e..z35e{dir 135}..{up}z36e;
+endchar;
+
+beginchar(".",2margin#+bwidth#,height#+2pt#,0);
+ "Punctuation";
+ x1=x4=margin;
+ x2=x3=margin+bwidth;
+ y1=y2=0;
+ y3=y4=height;
+ fill z1--z2--z3--z4--cycle;
+endchar;
+
+beginchar("`",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "Empty Carrier";
+ % Balken
+ x1=x4=width;
+ x2=x3=width+bwidth;
+ y1-2n=y2=0;
+ y3=y4=height;
+
+ % Dreieck
+ x11=margin;
+ x12=center;
+ x13=width;
+ y11=y13=height;
+ y12=height-3n;
+
+ % Oberer Fisch
+ x21=width-thin;
+ x22=x27=center;
+ x23=margin;
+ x25=x23+1/4[margin,center];
+ x24=x26=.5[x23,x25];
+
+ y21-1.5n=y23=y25=5/6height;
+ y22=2/3height;
+ y27=1/2[2/3height,5/6height];
+ y24=height-2n;
+ y26=height-4n;
+
+ % Unterer Fisch
+ x31=margin;
+ x32=x35=x38=margin+2/3o_width;
+ x33=width-2thin;
+ x34=x36=margin+5/6o_width-thin;
+ x37=x33-1.5thin;
+
+ y33=y37=1/2height;
+ y32=y38-1thin=4/9height;
+ y31=y34=y36+1.5thin=2/3height;
+ y35=2/3[4/9height,2/3height];
+
+ pickup pencircle scaled .5n;
+
+ draw z1--z2--z3--z4--cycle; % Balken
+ draw z11--z12--z13--cycle; % Dreieck
+ draw z21..z22..z23..z24..z25..z26 & z26..z27..z21 & cycle; % Fisch
+ draw z31..z32..z33..z34..z35 & z35..z36..z37..z38..z31 & cycle;
+endchar;
+
+beginchar("'",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "Vowel Carrier";
+ full_balken;
+ common_triangle;
+ upper_fish;
+ lower_fish;
+endchar;
+
+beginchar("-",0,0,depth#);
+ "Long Vowel";
+ x5=x8=-margin-bwidth;
+ x6=-margin;
+ x7=0;
+ y5-2n=y6=y8=0;
+ y7=-depth;
+ fill z5--z6--z7--z8--cycle;
+endchar;
+
+beginchar("i",0,vheight#+2pt#,0);
+ "i";
+ x100=-bwidth-width;
+ x101=x103=1/2[x100,x102];
+ x102=-margin;
+ y100=y102=height;
+ y101=2/3[height,vheight];
+ y103=vheight;
+ fill z100..z101..z102 & z102..z103..z100 & cycle;
+endchar;
+
+beginchar("e",0,vheight#+2pt#,0);
+ "Umlaut a";
+ x100=x105=-bwidth-width;
+ x101+n=x102+n=x103=x104=-margin;
+ y100=y101=1/2[height,vheight];
+ y105=y104=vheight;
+ y102=y103=height;
+ fill z100--z101--z102--z103--z104--z105--cycle;
+endchar;
+
+beginchar("U",0,height#,0);
+ "U";
+ z101=(-bwidth-width,1/6height);
+ z102=(-bwidth-center,thin);
+ z103=(-bwidth-width+5/6o_width,1/6height);
+ z104=(-bwidth-width+2/3o_width,1/3height-thin);
+ z105=(-bwidth-width+5/6o_width-2thin,1/6height);
+ z106=(-bwidth-center,2thin);
+
+ fill z101{right}..{right}z102{right}..{up}z103..z104
+ ..z105{down}..{left}z106{left}..{left}z101 & cycle;
+endchar;
+
+beginchar("V",0,height#,0);
+ "V";
+ z101=(-width-bwidth,1/6height);
+ z102=(-width-bwidth+1/3o_width,thin);
+ z103=(-width-bwidth+2/3o_width-thin,1/6height);
+ z104=(-width-bwidth+1/2o_width,1/3height-.5thin);
+ z105=(-width-bwidth+2/3o_width-2.5thin,1/6height);
+ z106=(-width-bwidth+1/3o_width,2thin);
+
+ fill z101{right}..{right}z102{right}..{up}z103..z104
+ ..z105{down}..{left}z106{left}..{left}z101 & cycle;
+endchar;
+
+beginchar("u",0,height#,0);
+ "u";
+ x101=x106=-bwidth-width;
+ x102=x105+1.5n=x104+1.5n=x103+1n=5/6o_width-bwidth-width;
+
+ y101=y102=1/9height;
+ y106=y105=2/9height;
+ y104=y103=1/3height;
+
+ fill z101--z102--z103--z104--z105--z106--cycle;
+endchar;
+
+beginchar("v",0,height#,0);
+ "u";
+ x101=x106=-bwidth-width;
+ x102=x105+1.5n=x104+1.5n=x103+1n=5/9o_width-bwidth-width-.5thin;
+
+ y101=y102=1/9height;
+ y106=y105=2/9height;
+ y104=y103=1/3height;
+
+ fill z101--z102--z103--z104--z105--z106--cycle;
+endchar;
+
+beginchar("o",0,vheight#+2pt#,0);
+ "o";
+ x100=-bwidth-width;
+ x101+n=x103-n=x102=1/2[x100,x104];
+ x104=-margin;
+ y100r=y101r=y103r=y104r=vheight;
+ y102l=height;
+ penpos100(2thin,90);
+ penpos101(2thin,90);
+ penpos102(2thin,90);
+ penpos103(2thin,90);
+ penpos104(2thin,90);
+ penstroke z100e--z101e--z102e--z103e--z104e;
+endchar;
+
+beginchar("O",0,vheight#+2pt#,0);
+ "Umlaut o";
+ x100=x107=-bwidth-width;
+ x101+n=x102+n=x103-n=x104-n=1/2[x100,x105];
+ x105=x106=-margin;
+ y100=y101=y104=y105=1/2[height,vheight];
+ y106=y107=vheight;
+ y102=y103=height;
+ fill z100--z101--z102--z103--z104--z105--z106--z107--cycle;
+endchar;
+
+beginchar("W",2/3o_width#,height#,0);
+ "diphthong u";
+ x81=x83=x85=-margin;
+ x90=x92=x81+2thin;
+ x82=x84=x87=-margin+1/3o_width;
+ x86=1/2[x85,x87];
+ x88=x89=x91=x93=-margin+2/3o_width;
+
+ y81=height;
+ y82=y93=5/6height;
+ y83=y92=2/3height+3thin;
+ y84=y91=1/2height+3thin;
+ y85=y90=1/3height+3thin;
+ y86=y89=1/6height;
+ y87=thin;
+ y88=0;
+
+ fill z81{right}..z82..{left}z83
+ & z83{right}..z84..{left}z85
+ & z85{right}..{down}z87 & z87--z88
+ & z88{up}...z89..z90 & z90{right}..z91..{left}z92
+ & z92{right}..z93..{left}z81 & cycle;
+endchar;
+
+beginchar("I",2/3o_width#,height#,0);
+ "diphthong i";
+ x81=x83=x85=x94=-margin;
+ x90=x92=x81+2thin;
+ x82=x84=x87=-margin+1/3o_width;
+ x86=1/2[x85,x87];
+ x88=x89=x91=x93=-margin+2/3o_width;
+
+ y94=y93=height;
+ y81=y82=height-1.5thin;
+ y83=y92=2/3height+3thin;
+ y84=y91=1/2height+3thin;
+ y85=y90=1/3height+3thin;
+ y86=y89=1/6height;
+ y87=thin;
+ y88=0;
+
+ fill z81--z82--z83--z84--z85 & z85{right}..{down}z87 & z87--z88
+ & z88...z89..z90 & z90--z91--z92--z93--z94--cycle;
+endchar;
+
+beginchar("g",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "g";
+ k_triangle;
+ full_k_balken;
+ middle_k_beam;
+ hor_k_beam;
+ g_horn(1);
+endchar;
+
+beginchar("k",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "k";
+ k_triangle;
+ full_k_balken;
+ middle_k_beam;
+ x71=x72=margin;
+ x77=x78=x71+2thin;
+ x73=x76=x77+thin;
+ x74=x75=center-thin;
+
+ z71=whatever[z5,z6];
+ z78=whatever[z5,z6];
+ y75=y76=5/6height-.75thin;
+ y73=y74=5/6height+.75thin;
+ y72=y77=y75-thin;
+
+ fill (center+3thin,y73)--(width,y73)--(width,y75)--(center+3thin,y75)--cycle;
+
+ fill z71---z72{up}..{right}z73---z74--z75---z76{left}..{down}z77---z78--cycle;
+endchar;
+
+beginchar("x",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "x";
+ k_triangle;
+ full_k_balken;
+ middle_k_beam;
+ hor_k_beam;
+ x71=x78=margin;
+ x72=x73=x76=x77=margin+3thin;
+ x74=x75=center-thin;
+ y73=y74=2/3height-.75thin;
+ y75=y76=2/3height+.75thin;
+ y71=y72=1/2height;
+ y78+thin=y77=height-3n;
+
+ fill z71--z72--z73--z74--z75--z76--z77--z78--cycle;
+endchar;
+
+beginchar("z",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "z";
+ full_balken;
+ common_triangle;
+ x20=x22=center;
+ x21=width;
+ lft x23=margin+thin;
+ y20=y12-thin;
+ y22=y20-o_width;
+ y21=y23=.5[y22,y20];
+
+ pickup pensquare scaled 2thin rotated 45;
+ draw z20--z21--z22--z23;
+endchar;
+
+beginchar("c",margin#+width#+bwidth#,vheight#,depth#);
+ "c";
+ full_balken;
+ common_triangle;
+
+ lft x19=lft x23=margin;
+ x20=x22=center;
+ rt x21=width-thin;
+
+ y19=1/3[y22,y20];
+ y23=2/3[y22,y20];
+ y20=y12-thin;
+ y22=y20-2/3o_width;
+ y21=.5[y22,y20];
+
+ pickup pensquare scaled 2thin rotated 45;
+ draw z19--z20--z21--z22--z23;
+endchar;
+
+beginchar("=",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\= n";
+ full_balken;
+ common_triangle;
+
+ x18=x20=x22=center;
+ x19=.5[margin,center];
+ x21=width;
+ lft x23=margin;
+ y20=y12-thin;
+ y22=y20-o_width;
+ y18=y21=y23=.5[y22,y20];
+ y19=.5[y23,y20];
+
+ pickup pensquare scaled 2thin rotated 45;
+ draw z18--z19--z20--z21--z22--z23;
+endchar;
+
+beginchar("d",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "d";
+ full_balken;
+ common_triangle;
+
+ % Wie Lower Fish, nur spiegelverkehrt
+ z31=(width,2/4height+.05thin);
+ z32=(margin+1/3o_width,3/4height);
+ z38=(x32,y32-1.5thin);
+ z33=(margin,1/2[y34,y32]);
+ z37=(x33+1.5thin,y33);
+ z34=(x32,1/3height+2thin);
+ z36=(x32,y34+1.25thin);
+ z35=(margin+5/12o_width,3/2[y34,y36]);
+ z39=(width,2/4height-.05thin);
+
+ fill z31..tension 1.8..z32..z33..z34..z35
+ & z35..z36..z37..z38..tension 1.7..z39
+ & z39..z31 & cycle;
+endchar;
+
+beginchar("t",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "t";
+ full_balken;
+ common_triangle;
+ x20=x21=center;
+ y20=3/4height;
+ y21=1/2height;
+ y22=y23=1/3height+2thin;
+ x22=margin+1/4o_width;
+ x23=margin+3/4o_width;
+ x24=x25=center;
+ y24=y21;
+ y25=y22;
+ pickup pencircle scaled 1.5thin;
+ draw z20..z21..cycle;
+ draw z22--z23;
+ draw z24--z25;
+endchar;
+
+beginchar("n",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "n";
+ full_balken;
+ common_triangle;
+ x21=x23=x24=x25=margin+2/3width;
+ x22=margin+thin;
+ y24=5/6height;
+ y25=1/2height-2thin;
+ y21=y24-2thin;
+ y23=y25+2thin;
+ y22=1/2[y21,y23];
+
+ pickup pencircle scaled 2thin;
+ draw z21{left}..z22..{right}z23;
+ draw z24--z25;
+endchar;
+
+beginchar("b",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "b";
+ full_balken;
+ common_triangle;
+
+ % Wie Lower Fish, nur spiegelverkehrt
+ z31=(width,2/3height-.05thin);
+ z39=(width,2/3height+.05thin);
+ z32=(margin+1/3o_width,1/3height);
+ z38=(x32,y32+1.5thin);
+ z33=(margin,1/2height);
+ z37=(x33+1.5thin,y33);
+ z34=(x32,2/3height);
+ z36=(x32,y34-1.25thin);
+ z35=(margin+5/12o_width,3/2[y34,y36]);
+
+ fill z31..tension 1.8..z32..z33..z34..z35
+ & z35..z36..z37..z38..tension 1.8..z39
+ & z39--z31 & cycle;
+endchar;
+
+beginchar("p",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "p";
+ full_balken;
+ common_triangle;
+ upper_fish;
+
+ % Wie Lower Fish, nur spiegelverkehrt
+ z31=(width,2/4height);
+ z32=(margin+1/3o_width,1/3height);
+ z38=(x32,y32+1.5thin);
+ z33=(margin,1/2[y34,y32]);
+ z37=(x33+1.5thin,y33);
+ z34=(x32,2/3height-2thin);
+ z36=(x32,y34-1.25thin);
+ z35=(margin+5/12o_width,3/2[y34,y36]);
+
+ fill z31..tension 1.8..z32..z33..z34..z35
+ & z35..z36..z37..z38..tension 1.8..z31 & cycle;
+endchar;
+
+beginchar("m",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "m";
+ full_balken;
+ common_triangle;
+ upper_fish;
+ x31=x32=center;
+ y31=1/3height+1.5n;
+ y32=2/3height-1.5n;
+ pickup pencircle scaled 1.5thin;
+ draw z31..z32..cycle;
+endchar;
+
+beginchar("y",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "y";
+ full_balken;
+ common_triangle;
+ upper_fish;
+ x31=margin+1/4o_width;
+ x32=center;
+ x33=margin+3/4o_width;
+ y31=y33=1/3height+thin;
+ y32=2/3height-2thin;
+
+ pickup pencircle scaled 2thin ;
+ draw z31{up}..z32..{down}z33 & z33--z31;
+endchar;
+
+beginchar("r",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "r";
+ full_balken;
+ common_triangle;
+ upper_fish;
+ x40=margin+2thin;
+ x41=width-2thin;
+ x42=center;
+ y40=y41=1/3height+thin;
+ y42=2/3height-2thin;
+ pickup pencircle scaled 2thin;
+ draw z40--z41--z42--cycle;
+endchar;
+
+beginchar("w",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "w";
+ full_balken;
+ common_triangle;
+ x20=x21=center;
+ y20=3/4height;
+ y21=1/2height;
+ pickup pencircle scaled 1.5thin;
+ draw z20..z21..cycle;
+endchar;
+
+beginchar("l",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "l";
+ full_balken;
+ common_triangle;
+ z21=(margin+1thin,5/6height-1thin);
+ z22=(margin,1/9[y21,y29]);
+ z23=(margin+1/3o_width,4/9[y21,y29]);
+ z24=(x23+2thin,y23);
+ z25=(width-thin,y24+thin);
+ z26=(x25,y25+thin);
+ z27=(x23+thin,y23+thin);
+ z28=(margin+2thin,y22);
+
+ z29=(x21,1/3height+2thin);
+
+ z30=(x22,8/9[y21,y29]);
+ z31=(x23,5/9[y21,y29]);
+ z32=(x24,y31);
+ z33=(x25,y32-thin);
+ z34=(x33,y33-thin);
+ z35=(x27,y32-thin);
+ z36=(x28,y30);
+
+ fill z21..z22..z23..z24..z25--z26..z27..{up}z28..z21..cycle;
+ fill z23--z24--z32--z31--cycle;
+ fill z29..z30..z31..z32..z33--z34..z35..{down}z36..z29..cycle;
+endchar;
+
+beginchar("$",2margin#+width#+bwidth#,height#+2pt#,depth#);
+ "$";
+ full_balken;
+ common_triangle;
+ x31=x33=margin;
+ x32=x34=width;
+ y31r=y32r=5/6height;
+ y33l=y34l=1/3height;
+ penpos31(3thin,90);
+ penpos32(3thin,90);
+ penpos33(3thin,90);
+ penpos34(3thin,90);
+ penstroke z31e--z34e;
+ penstroke z33e--z32e;
+endchar;
+
+beginchar("s",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "s";
+ full_balken;
+ common_triangle;
+
+ z60=(margin,1/2height+thin);
+ z64=(center,height-3n);
+ z65=(width,1/2height+thin);
+ z66=(width,y65-3thin);
+ z67=(center,y64-3thin);
+ z61=1/12[z60,z64];
+ z63=1/2[z60,z64];
+ z62=1/2[z61,z63];
+ z62-z70=(z63-z61) rotated 90;
+ z62-z69=4/3(z63-z61) rotated 90;
+ z71=7/12[z60,z64];
+ z72=(margin,y60-3thin);
+ z68-z71=whatever*(z70-z62);
+ z68=whatever[z72,z67];
+
+ fill z60--z61
+ & z61{z70-z62}..z70..{z62-z70}z63
+ & z63--z64--z65--z66--z67--z68
+ & z68{z70-z62}..z69..{z62-z70}z60 & cycle;
+endchar;
+
+beginchar("h",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "h";
+ full_k_balken;
+
+ z11=(margin,height);
+ z12=(center+thin,height-3n);
+ z13=(width+1/2bwidth,y11);
+
+ z20=(margin,height-1.5n);
+ z21=(x20,1/2height-n);
+ z22=(margin+3thin,y21+n);
+ x23=x22;
+ z20-z23=whatever*(z11-z12);
+
+ z24=(x22,2/3height);
+ z25=(x22,y24+1.5thin);
+ z26=(center-.5thin,y25);
+ z27=(center+2thin,y24-.5thin);
+ z28=(x27,1/2height);
+ z29=(center,y28);
+ z30=(x29,y27);
+ z31=(x26,y24);
+
+ x32=x22;
+ z32-z35=whatever*(z12-z13);
+ z33=(x22,y32+2thin);
+ z34=whatever[z11,z12];
+ z35=(center+1thin,height-4n);
+ z34-z33=whatever*(z35-z32);
+
+ x36=width;
+ z35-z36=whatever*(z11-z12);
+ z37=(x36,y36+2thin);
+ z38=whatever[z12,z13];
+ z38-z37=whatever*(z35-z36);
+
+ fill z20--z21--z22--z23--cycle;
+ fill z24--z25--z26{right}..{down}z27--z28--
+ z29--z30{up}..{left}z31--z24--cycle;
+
+ fill z32--z33--z34--z11--z13--z38--z37--z36--z35--cycle;
+endchar;
+
+beginchar("!",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "k\d s";
+ k_triangle;
+ full_k_balken;
+ hor_k_beam;
+ g_horn(1);
+ z5=(center-1thin,height-2n);
+ z6=(x5,1/2height+.75thin);
+ z7=(x5-4thin,1/2[y6,y8]);
+ z8=(x5,1/3height);
+ z9=(center+3thin,y8);
+ z10=(x9,y9+thin);
+ z14=(x7+3thin,y7);
+ z15=(x9,y6-.5thin);
+ z16=(x9,y5);
+
+ fill z5--z6{left}..z7..{right}z9--
+ z10{left}..z14..{right}z15--z16--cycle;
+endchar;
+
+beginchar("G",0,height#,0);
+ "aG";
+ x201=x202=-margin-bwidth-1/3o_width;
+ x207=x208=x201+2thin;
+ x203=x206=x207+.5thin;
+ x204=x205=-margin-bwidth;
+ y201=y208=1/3height;
+ y203=y204=2n;
+ y205=y206=y203+thin;
+ y202=y207=y206+.5n;
+
+
+ fill z201---z202{down}..{right}z203---z204--z205
+ ---z206{left}..{up}z207---z208--cycle;
+endchar;
+
+beginchar("K",0,height#,0);
+ "aK";
+ x201=x202=-margin-bwidth-1/3o_width;
+ x207=x208=x201+2thin;
+ x203=x206=x207+.5thin;
+ x204=x205=-margin-bwidth;
+
+ y201=y208=0;
+ y203=y204=1/3height;
+ y205=y206=y203-thin;
+ y202=y207=y206-.5n;
+
+ fill z201---z202{up}..{right}z203---z204--z205
+ ---z206{left}..{down}z207---z208--cycle;
+endchar;
+
+beginchar("*",0,height#,0);
+ "ang";
+ x201=x208=-margin-bwidth-1/3o_width;
+ x202=x203=x206=x207=x201+2thin;
+ x204=x205=-margin-bwidth;
+ y201=y202=0;
+ y203=y204=1/6height;
+ y205=y206=1/6height+1n;
+ y207=y208+1n=1/3height;
+
+ fill z201--z202--z203--z204--z205--z206--z207--z208--cycle;
+endchar;
+
+beginchar("D",0,height#,0);
+ "aD";
+ z201=(-margin-bwidth,1/6height+1/2thin);
+ z203=(x201-1/3o_width,1/6height);
+ z202=(1/2[x201,x203],1/3height-thin);
+ z204=(x202,0);
+ z205=(1/3[x202,x201],1/3[y204,y203]);
+ z206=(x204,y204+1.5thin);
+ z207=(x203+1.5thin,y203);
+ z208=(x202,y202-2thin);
+ z209=(x201,1/6height-1/2thin);
+
+ fill z201{left}..z202..z203..z204..z205
+ & z205..z206..z207..z208..{right}z209
+ & z209--z201 & cycle;
+endchar;
+
+beginchar("N",0,height#,0);
+ "aN";
+ z201=(-margin-bwidth-2thin,2n);
+ z202=(x201-1/3o_width,1/2[y201,y203]);
+ z203=(x201,1/3height);
+ z204=(x201,y202);
+ z205=(-margin-bwidth,y202);
+
+ pickup pencircle scaled thin;
+ draw z201{left}..z202..{right}z203;
+ pickup penrazor scaled 1thin;
+ draw z201--z203;
+ pickup penrazor scaled 1thin rotated 90;
+ draw z204--z205;
+endchar;
+
+beginchar("B",0,height#,0);
+ "aB";
+ z201=(-margin-bwidth,1/6height-1/2thin);
+ z203=(x201-1/3o_width,1/6height);
+ z202=(1/2[x201,x203],thin);
+ z204=(x202,1/3height-thin);
+ z205=(1/3[x202,x201],1/3[y204,y203]);
+ z206=(x204,y204-1.5thin);
+ z207=(x203+1.5thin,y203);
+ z208=(x202,y202+2thin);
+ z209=(x201,1/6height+1/2thin);
+
+ fill z201{left}..z202..z203..z204..z205
+ & z205..z206..z207..z208..{right}z209
+ & z209--z201 & cycle;
+endchar;
+
+beginchar("M",0,height#,0);
+ "aM";
+ y201=y202=1/6height+thin;
+ x201+thin=x202+1/3o_width=-margin-bwidth-.5thin;
+ pickup pencircle scaled thin;
+ draw z201..z202..cycle;
+endchar;
+
+beginchar("R",0,height#,0);
+ "aR";
+ y201=y202=3n;
+ y203=1/3height-thin;
+ x201=x203=-margin-bwidth;
+ x202+1/3o_width=-margin-bwidth;
+ pickup penrazor scaled thin rotated 90;
+ draw z201--z202--z203;
+endchar;
+
+beginchar("L",0,height#,0);
+ "aL";
+ x201=x204=-margin-bwidth-1/3o_width;
+ x203=x206=-margin-bwidth;
+ x202=x205=1/2[x201,x203];
+
+ y201=y202=y203=2n;
+ y204=y205=y206=1/3height-2n;
+
+ pickup penrazor scaled 1.5thin rotated 90;
+ draw z201--z203;
+ draw z204--z206;
+ pickup penrazor scaled 1thin;
+ draw z202--z205;
+endchar;
+
+beginchar("Q",0,height#,0);
+ "a$";
+ x201=x203=-1/3o_width-margin-bwidth;
+ x202=x204=-margin-bwidth;
+ y201=3/4[2n,1/3height];
+ y202=3n;
+ y203=1/4[2n,1/3height];
+ y204=1/3height;
+ pickup penrazor scaled 1.5thin rotated 90;
+ draw z201--z202;
+ draw z203--z204;
+endchar;
+
+beginchar("S",0,height#,0);
+ "aS";
+ z204=(-margin-bwidth,1/3height);
+ z201=(-margin-bwidth-1/3o_width-2thin,2n);
+ z203=1/2[z201,z204];
+ z205=1/2[z201,z203];
+ z202-z205=2/3(z201-z203) rotated 90;
+
+ pickup pencircle scaled 1.5thin;
+ draw z201{z202-z205}..z202..{z205-z202}z203--z204;
+endchar;
+
+beginchar("a",2/3o_width#,height#,0);
+ "\'a\.n";
+ z81=(-margin+2/3o_width,0);
+ z82=(-margin+1/3o_width,0);
+ z83=(-margin,1/6height);
+ z84=(-margin,1/3height);
+
+ fill z81--z82--z83--z84--cycle;
+endchar;
+
+beginchar("%",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\d r";
+ full_balken;
+ common_triangle;
+ upper_fish;
+ lower_fish;
+
+ z41=(margin+1/6o_width,1/3height+1thin);
+ z42=(margin+1/3o_width-.25thin,y50+1.5thin);
+ z43=(center-.125thin-thin,y41);
+ z44=(center+.125thin-thin,y43);
+ z45=(margin+2/3o_width-1.75thin,y42);
+ z46=(margin+5/6o_width-2thin,y41);
+ z47=(x45,y41-1/3height+2thin);
+ z48=(x44,y45);
+ z49=(x43,y42);
+ z50=(x42,y47);
+
+ fill z41..tension 1.1..z42..tension 1.3..{up}z43
+ ..z44{down}..tension 1.3..z45..tension 1.2..z46
+ & z46..tension 1.2..z47..tension 1.3..{up}z48
+ ..z49{down}..tension 1.3..z50..tension 1.1..z41 & cycle;
+endchar;
+
+beginchar("&",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\d l";
+ full_balken;
+ common_triangle;
+ upper_fish;
+ lower_fish;
+
+ z41=(margin+1/6o_width,3thin);
+ z42=(margin+1/3o_width-.25thin,y50-1.5thin);
+ z43=(center-.1thin-thin,y41);
+ z44=(center+.1thin-thin,y43);
+ z45=(margin+2/3o_width-1.75thin,y42);
+ z46=(margin+5/6o_width-2thin,y41);
+ z47=(x45,y41+1/3height-2thin);
+ z48=(x44+.1thin,y45);
+ z49=(x43-.1thin,y42);
+ z50=(x42,y47);
+
+ fill z41..tension 1.1..z42..tension 1.3..{down}z43
+ ..z44{up}..tension 1.3..z45..tension 1.2..z46
+ & z46..tension 1.2..z47..tension 1.3..{down}z48
+ ..z49{up}..tension 1.3..z50..tension 1.1..z41 & cycle;
+endchar;
+
+beginchar("0",0,om_height#+2pt#,0);
+ "am0";
+ x91=x92=-bwidth-center;
+ y91=vheight+3n;
+ y92=vheight;
+ pickup pencircle scaled thin;
+ draw z91..z92..cycle;
+endchar;
+
+beginchar("H",2/3o_width#,height#+2pt#,0);
+ "H";
+ x81=lft x84=lft x88=-margin;
+ x82=x86=x90=-margin+2/3o_width;
+ x83=x85=x87=x89=x91=-margin+1/3o_width;
+
+ y81=y82=height;
+ y83=5/6height;
+ y85=y83-thin;
+ y87-thin=y89+thin=.5[0,y85];
+ y84=y86=.5[y85,y87];
+ y88=y90=.5[y89,0];
+ bot y91=0;
+
+ fill z81--z82--z83--cycle;
+ pickup pencircle scaled 1.5thin;
+ draw z84--z85--z86--z87--cycle;
+ draw z88--z89--z90--z91--cycle;
+endchar;
+
+beginchar("(",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "g";
+ k_triangle;
+ full_k_balken;
+ middle_k_beam;
+ hor_k_beam;
+ z41=(margin+3thin,1/2height);
+ z42=(margin,2/3height);
+ z43=(x41,5/6height);
+ z44=(x41,2/3height+.75thin);
+ z45=(x5,y44);
+ z46=(x5,2/3height-.75thin);
+ z47=(x41,y46);
+
+ fill z41..z42..z43 & z43--z44--z45--z46--z47--z41 & cycle;
+endchar;
+
+beginchar(")",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "gh";
+ k_triangle;
+ full_k_balken;
+ middle_k_beam;
+ hor_k_beam;
+ z41=(margin,1/2height);
+ z42=(1/2[x41,x48],2/3height);
+ z43=(margin,5/6height);
+ z48=(4/6[x41,x45],y42);
+ z44=(x48,2/3height+.75thin);
+ z45=(x5,y44);
+ z46=(x5,2/3height-.75thin);
+ z47=(x44,y46);
+
+ fill z41..z42..z43 & z43..{down}z44
+ & z44--z45--z46--z47 & z47{down}..z41 & cycle;
+endchar;
+
+beginchar("j",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "j";
+ full_balken;
+ common_triangle;
+ x20=x22=center;
+ x21=width;
+ lft x23=margin+thin;
+ y20=y12-thin;
+ y22=y20-o_width;
+ y21=y23=.5[y22,y20];
+
+ pickup pensquare scaled 2thin rotated 45;
+ draw z23--z20--z21--z22;
+endchar;
+
+beginchar(",",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "jh";
+ full_balken;
+ common_triangle;
+ x20=x22=center;
+ rt x21=width;
+ lft x23=margin;
+ y20=y12-thin;
+ y22=y20-o_width;
+ y21=y23=.5[y22,y20];
+ z24=(x23,y20);
+ pickup pensquare scaled 2thin rotated 45;
+ draw z23--z20--z21--z22;
+ pickup penrazor scaled 2.5thin rotated -45;
+ draw z23--z24;
+endchar;
+
+beginchar("T",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\d t";
+ full_balken;
+ common_triangle;
+ z21=(center-2n,1/3height+2n-thin);
+ z22=(center+2n,y21-2n);
+ z23=(x22,height-2n);
+ z24=(x21,y23);
+ z25=(x21,5/6height);
+ z26=(x21-2.5thin,1/2[y25,y27]);
+ z27=(x21,1/2[y25,y29]);
+ z28=(x26,1/2[y27,y29]);
+ z29=(x21,1/2height);
+
+ fill z21--z22--z23--z24--z25--z26--z27--z28--z29--cycle;
+endchar;
+
+beginchar("1",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\d th";
+ full_balken;
+ common_triangle;
+ z21=(center-2n,1/3height+2n-thin);
+ z22=(center+2n,y21-2n);
+ z23=(x22,height-2n);
+ z24=(x21,y23);
+ z25=(x21,5/6height); % << Beginn des oberen Dreiecks,
+ z26=(x21-2.5thin,1/2[y25,y27]); % von dem alle anderen Dreiecke
+ z27=(x21,1/2[y25,y29]); % abhaengen!
+ z28=(x26,1/2[y27,y29]);
+ z29=(x21,1/2height);
+ z30=(x22,y28);
+ z31=(x22+2.5thin,y27);
+ z32=(x22,y26);
+
+ fill z21--z22--z30--z31--z32--z23--z24--z25--z26--z27--z28--z29--cycle;
+endchar;
+
+beginchar("2",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\d d";
+ full_balken;
+ common_triangle;
+ z21=(center-2n,1/3height+2n-thin);
+ z22=(center+2n,y21-2n);
+ z23=(x22,height-2n);
+ z24=(x21,y23);
+ z25=(x21,2/3[y21,y24]); % << Beginn des Dreiecks
+ z26=(x21-2.5thin,1/2[y25,y27]); %
+ z27=(x21,1/3[y21,y24]); %
+
+ fill z21--z22--z23--z24--z25--z26--z27--cycle;
+endchar;
+
+beginchar("3",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\d dh";
+ full_balken;
+ common_triangle;
+ g_horn(2);
+ z21=(center-2n,1/3height+2n-thin);
+ z22=(center+2n,y21-2n);
+ z23=(x22,height-2n);
+ z24=(x21,y23);
+ z25=(x21,2/3[y21,y74]); % << Beginn des Dreiecks
+ z26=(x21-2.5thin,1/2[y25,y27]); %
+ z27=(x21,1/3[y21,y74]); %
+
+ fill z21--z22--z23--z24--z25--z26--z27--cycle;
+endchar;
+
+beginchar("4",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\d n";
+ full_balken;
+ common_triangle;
+ z5=(center,y12-2n);
+ z6=(center,1/3[y5,y9]);
+ z7=(center-3thin,1/2[y6,y8]);
+ z8=(center,2/3[y5,y9]);
+ z9=(center,1/3height+2n);
+ z10=(center+3thin,1/3height);
+ z14=(x10,y8);
+ z15=(width,y8);
+ z16=(width,y6);
+ z17=(x10,y6);
+ x18=x10;
+ z5-z18=whatever*(z12-z13);
+
+ fill z5--z6--z7--z8--z9--z10--z14--z15--z16--z17--z18--cycle;
+endchar;
+beginchar("5",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\_d";
+ full_balken;
+ common_triangle;
+ x5=center-2thin;
+ z5=whatever[z11,z12];
+ z6=(x5,2/3[y9,y5]+.5thin);
+ z7=(x5-4thin,1/2[y6,y8]);
+ z8=(x5,1/3[y9,y5]-.5thin);
+ z9=(x5,1/3height+n);
+ z10=(center+2thin,1/3height-n);
+ z14=(x10,y8+thin);
+ z15=(x7+3thin,1/2[y14,y16]);
+ z16=(x10,y6-thin);
+ x17=x10;
+ z17=whatever[z12,z13];
+
+ fill z5--z6{left}..z7..{right}z8--z9--z10--
+ z14{left}..z15..{right}z16--z17--cycle;
+endchar;
+
+beginchar("6",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\_dh";
+ full_balken;
+ common_triangle;
+ g_horn(2);
+ z5=(center-2thin,height-2n);
+ z6=(x5,2/3height-2thin);
+ z7=(x5-4thin,1/2[y6,y8]);
+ z8=(x5,1/3height);
+ z9=(center+2thin,y8);
+ z10=(x9,y9+thin);
+ z14=(x7+3thin,y7);
+ z15=(x9,y6-.5thin);
+ z16=(x9,y5);
+
+ fill z5--z6{left}..z7..{right}z9--
+ z10{left}..z14..{right}z15--z16--cycle;
+
+endchar;
+
+beginchar("7",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\_b";
+ full_balken;
+ common_triangle;
+
+ x16=center+2thin;
+ y16=y17-thin;
+ x17=x19=x21=center;
+ y17=5/6height;
+ y19=1/3height+2thin;
+ y21=2/3[y19,y17];
+ x18=margin+thin;
+ x20=width-3thin;
+ y18=1/2[y17,y19];
+ y20=1/2[y19,y21];
+ x22=center-1thin;
+ y22=y21-thin;
+
+ z23=(center,y21-thin);
+ z24=(x20-1.5thin,y20);
+ z25=(x19,y19+1.5thin);
+ z26=(x18+1.5thin,y18);
+ z27=(center,y17-.75thin);
+
+ fill z16..z17..z18..z19..z20..z21..z22
+ & z22..z23..z24..z25..z26..z27..z16 & cycle;
+endchar;
+
+beginchar("8",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\_bh";
+ full_balken;
+ common_triangle;
+ upper_fish;
+
+ x16=center+2thin;
+ y16=y17-thin;
+ x17=x19=x31=center;
+ y17=2/3height-thin;
+ y19=1/3height;
+ y31=2/3[y19,y17];
+ x18=margin+thin;
+ x30=width-3thin;
+ y18=1/2[y17,y19];
+ y30=1/2[y19,y31];
+ x32=center-1thin;
+ y32=y31-thin;
+
+ z33=(center,y31-thin);
+ z34=(x30-1.5thin,y30);
+ z35=(x19,y19+1thin);
+ z36=(x18+1.5thin,y18);
+ z37=(center,y17-.75thin);
+
+ fill z16..z17..z18..z19..z30..z31..z32
+ & z32..z33..z34..z35..z36..z37..z16 & cycle;
+endchar;
+
+beginchar("9",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\d s";
+ full_balken;
+ common_triangle;
+
+ z71=(margin,5/6height);
+ z88=(margin,y71-3thin);
+ z73=(width,y71);
+ z74=(width,y88);
+ z77=(width,1/3height);
+ z76=(width,y77+3thin);
+ z75=(whatever,1/2[y74,y76]);
+ z75=whatever[z71,z76];
+ z72=whatever[z71,z76];
+ z72=(center,whatever);
+ z78=(center,y72-3thin);
+ z88=(margin,y74);
+ z87=whatever[z88,z77];
+ z87=whatever[z72,z73];
+ z81=(margin,y76);
+ z82=1/12[z81,z87];
+ z83=1/2[z82,z85];
+ z84-z83=7/6(z82-z85) rotated 90;
+ z85=2/3[z81,z87];
+ z86=9/12[z81,z87];
+ z79=whatever[z74,z75];
+ z86-z79=whatever*(z81-z73) rotated 90;
+ z80-z83=5/3(z82-z85) rotated 90;
+ z89-z81=whatever*(z81-z73) rotated 90;
+ z89=whatever[z75,z74];
+
+ fill z87--z88--z71--z72--z73--z74--z75--z76--z77--z78--z79
+ & z79{z84-z83}..z80..{z83-z84}z89
+ ---z89--z81--z82{z84-z83}..z84..{z83-z84}z85--z87 & cycle;
+endchar;
+
+beginchar(":",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "ky";
+ full_k_balken;
+ k_triangle;
+ g_horn(1);
+
+ x5=x8=center-1thin;
+ x6=x7=center+3thin;
+ z7=whatever[z13,z12];
+ z8=whatever[z12,z11];
+ y5=y6-2n=1/2height+thin;
+
+ z14=(x6,1/2[y6,y7]+.75thin);
+ z15=(width,y14);
+ z16=(x15,y14-1.5thin);
+ z17=(x14,y16);
+
+ z18=(center,y5-2thin);
+ z19=(x18-1/3o_width,1/3height-3thin);
+ z20=(x18+1/3o_width,y19);
+
+ fill z5--z6--z7--z8--cycle;
+ fill z14--z15--z16--z17--cycle;
+
+ pickup pencircle scaled 1.5thin;
+ draw z19{up}..z18..{down}z20--z19 & cycle;
+endchar;
+
+beginchar(";",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "kr";
+ full_k_balken;
+ k_triangle;
+ g_horn(1);
+
+ x5=x8=center-1thin;
+ x6=x7=center+3thin;
+ z7=whatever[z13,z12];
+ z8=whatever[z12,z11];
+ y5=y6-2n=1/2height+thin;
+
+ z14=(x6,1/2[y6,y7]+.75thin);
+ z15=(width,y14);
+ z16=(x15,y14-1.5thin);
+ z17=(x14,y16);
+
+ z18=(center,y5-2thin);
+ z19=(x18-1/3o_width,1/3height-3thin);
+ z20=(x18+1/3o_width,y19);
+
+ fill z5--z6--z7--z8--cycle;
+ fill z14--z15--z16--z17--cycle;
+
+ pickup pencircle scaled 1.5thin;
+ draw z18--z19--z20--cycle;
+endchar;
+
+beginchar("<",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "kl";
+ full_k_balken;
+ k_triangle;
+ g_horn(1);
+
+ x5=x8=center-1thin;
+ x6=x7=center+3thin;
+ z7=whatever[z13,z12];
+ z8=whatever[z12,z11];
+ y5=y6-2n=1/2height+thin;
+
+ z14=(x6,1/2[y6,y7]+.75thin);
+ z15=(width,y14);
+ z16=(x15,y14-1.5thin);
+ z17=(x14,y16);
+
+ z21=(margin+1thin,2/3height-2thin);
+ z22=(margin,1/9[y21,y29]);
+ z23=(margin+1/3o_width,4/9[y21,y29]);
+ z24=(x23+2thin,y23);
+ z25=(width-thin,y24+thin);
+ z26=(x25,y25+thin);
+ z27=(x23+thin,y23+thin);
+ z28=(margin+2thin,y22);
+
+ z29=(x21,1/3height-2thin);
+
+ z30=(x22,8/9[y21,y29]);
+ z31=(x23,5/9[y21,y29]);
+ z32=(x24,y31);
+ z33=(x25,y32-thin);
+ z34=(x33,y33-thin);
+ z35=(x27,y32-thin);
+ z36=(x28,y30);
+
+ fill z5--z6--z7--z8--cycle;
+ fill z14--z15--z16--z17--cycle;
+ fill z21..z22..z23..z24..z25--z26..z27..{up}z28..z21..cycle;
+ fill z23--z24--z32--z31--cycle;
+ fill z29..z30..z31..z32..z33--z34..z35..{down}z36..z29..cycle;
+endchar;
+
+beginchar(">",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "km";
+ full_k_balken;
+ k_triangle;
+ g_horn(1);
+
+ x5=x8=center-1thin;
+ x6=x7=center+3thin;
+ z7=whatever[z13,z12];
+ z8=whatever[z12,z11];
+ y5=y6-2n=1/2height+thin;
+
+ z14=(x6,1/2[y6,y7]+.75thin);
+ z15=(width,y14);
+ z16=(x15,y14-1.5thin);
+ z17=(x14,y16);
+
+ z18=(center,y5-2thin);
+ z19=(center,1/3height-3thin);
+
+ fill z5--z6--z7--z8--cycle;
+ fill z14--z15--z16--z17--cycle;
+
+ pickup pencircle scaled 1.5thin;
+ draw z18..z19..cycle;
+endchar;
+
+beginchar("?",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "kk";
+ g_horn(1);
+
+ z10=(margin,height);
+ z11=(margin+2thin,height-1.25thin);
+ z12=(margin,y11);
+ z13=(center+thin,height-3thin);
+
+ z14=(center-thin,whatever);
+ z14=whatever[z12,z13];
+ z15=(x14,1/3height+thin);
+ z16=(center+3thin,1/3height-thin);
+ z17=(x16,whatever);
+ z18=(width+2thin,y11);
+ z17=whatever[z13,z18];
+
+ z19=(x18-2thin,y11);
+ z20=(x18,height);
+
+ z21=(width,whatever);
+ z24=(width+bwidth,whatever);
+ z21-z24=whatever*(z13-z18);
+
+ y21=y25-1.5n;
+ x25=width;
+ z25=whatever[z13,z18];
+
+ y22-2n=y23=0;
+ x22=x21;
+ x23=x24;
+
+ x26=x29=x16;
+ x27=x28=width;
+ y26=y27=y75;
+ y28=y29=y73;
+
+ fill z20--z10--z11--z12--z14--z15--z16--z17--z18--z19--z20--cycle;
+ fill z21--z22--z23--z24--cycle;
+ fill z26--z27--z28--z29--cycle;
+endchar;
+
+beginchar("A",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\.nk";
+ z11=(margin,height);
+ z12=(center+1thin,height-3n);
+ z13=(width+1/2bwidth,height);
+ z14=(center-thin,whatever);
+ z14=whatever[z11,z12];
+ z31=(center+3thin,whatever);
+ z31=whatever[z12,z13];
+ z15=(x14,5/6height+.75thin);
+ z16=(1/2[x11,x14],y15);
+ z17=(margin,y16+2thin);
+ z18=(margin,y19-2thin);
+ z19=(x16,5/6height-.75thin);
+ z20=(x14,y19);
+ z21=(x14,1/3height+thin);
+ z22=(x31,1/3height-thin);
+ z23=(x31,1/2height-.75thin);
+ z24=(width,y23);
+ z32=(width,2n);
+ z33=(width+bwidth,0);
+ z34=(x33,2/3height-.75thin);
+ z35=(x32,y34);
+ z25=(x24,y24+1.5thin);
+ z26=(x31,y25);
+ z27=(x31,y20);
+ z28=(x24,y20);
+ z36=(x32,y35+1.5thin);
+ z37=(x33,y36);
+ z38=(x33,height);
+ z39=(x36,height-2n);
+ z29=(x28,y15);
+ z30=(x31,y15);
+
+ x71=x72=margin+thin;
+ x77=x78=x71+2thin;
+ x73=x76=x77+thin;
+ x74=x75=center-thin;
+
+ y71=y78=y18-thin;
+ y75=y76=y26;
+ y73=y74=y23;
+ y72=y77=y75+thin;
+
+ fill z71---z72{down}..{right}z73---z74--z75
+ ---z76{left}..{up}z77---z78--cycle;
+
+ fill z11--z14--z15--z16--z17--z18--z19--z20--z21--z22
+ --z23--z24--z32--z33--z34--z35--z25--z26
+ --z27--z28--z36--z37--z38--z39--z29--z30--z31--z13--cycle;
+
+endchar;
+beginchar("E",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\=nc";
+ full_balken;
+ common_triangle;
+
+ z23=(center,y12-1thin);
+ z21=(center,1/2[y23,y25]);
+ z20=1/2[z21,z22];
+ z22=(whatever,1/2[y21,y23]);
+ z28=(center,1/3height-2thin);
+ z25=(center,6/12[y23,y28]);
+ z22-z23=(z22-z21) rotated 90;
+ y24=y21;
+ z23-z24=whatever*(z23-z28) rotated 45;
+ z23-z24=whatever*(z22-z21);
+ z27=(x24,1/2[y25,y28]);
+ z26=(margin+1/6o_width,whatever);
+ z26=whatever[z25,z27];
+ z29=(margin+1/6o_width,whatever);
+ z29-z28=whatever*(z26-z27);
+
+ pickup pensquare scaled 1.5thin rotated 45;
+ draw z21--z22--z23--z24--z25;
+ draw z26--z27--z28--z29;
+endchar;
+
+beginchar("|",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\d n\d t";
+ full_balken;
+ common_triangle;
+ z14=(center-2thin,height-4thin);
+ z15=(x14,1/9[y14,y23]);
+ z16=(x14-2.5thin,1/2[y15,y17]);
+ z17=(x14,3/9[y14,y23]);
+ z18=(x14,5/9[y14,y23]);
+ z19=(x16,1/2[y18,y20]);
+ z20=(x14,1/2[y18,y22]);
+ z21=(x16,1/2[y20,y22]);
+ z22=(x14,8/9[y14,y23]);
+ z23=(x14,1/3height+thin);
+
+ z24=(center+2thin,1/3height-thin);
+ z25=(x24,y18);
+ z26=(width,y18);
+ z27=(width,y17);
+ z28=(x24,y17);
+ z29=(x24,y14);
+
+ fill z14--z15--z16--z17--z18--z19--z20--z21--z22
+ --z23--z24--z25--z26--z27--z28--z29--cycle;
+endchar;
+
+beginchar("~",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "nt";
+ full_balken;
+ common_triangle;
+
+ % Wie Lower Fish, nur spiegelverkehrt
+ z31=(width,2/6height+.05thin);
+ z32=(margin+1/3o_width,y31+1/4height-.05thin);
+ z38=(x32,y32-1.5thin);
+ z33=(margin,1/2[y34,y32]);
+ z37=(x33+1.5thin,y33);
+ z34=(x32,y32-1/3height+2thin);
+ z36=(x32,y34+1.25thin);
+ z35=(margin+5/12o_width,3/2[y34,y36]);
+ z39=(width,y31-.1thin);
+
+ z40=(width-1/6o_width,2/3height-2thin);
+ z41=(width-2/3o_width+2thin,1/2[y40,y42]);
+ z42=(x40,5/6height);
+ z43=(width,y41);
+ z44=(x40,y41);
+ pickup pencircle scaled 1.5thin;
+ draw z40{left}..z41..{right}z42--z40 & cycle;
+ draw z43--z44;
+
+ fill z31..tension 1.8..z32..z33..z34..z35
+ & z35..z36..z37..z38..tension 1.7..z39
+ & z39..z31 & cycle;
+endchar;
+
+beginchar("P",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "mp";
+ full_balken;
+ common_triangle;
+ upper_fish;
+
+ % Wie Lower Fish, nur spiegelverkehrt
+ z31=(width,2/6height);
+ z32=(margin+1/3o_width,y31-1/6height);
+ z38=(x32,y32+1.5thin);
+ z33=(margin,1/2[y34,y32]);
+ z37=(x33+1.5thin,y33);
+ z34=(x32,y31+1/6height-2thin);
+ z36=(x32,y34-1.25thin);
+ z35=(margin+5/12o_width,3/2[y34,y36]);
+
+ z39=(center,2/3height-1.5thin);
+ z40=(center,1/3height+3thin);
+
+ fill z31..tension 1.8..z32..z33..z34..z35
+ & z35..z36..z37..z38..tension 1.8..z31 & cycle;
+
+ pickup pencircle scaled 1.5thin;
+
+ draw z39..z40..cycle;
+endchar;
+
+beginchar("Y",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "lk";
+ k_triangle;
+ full_k_balken;
+ middle_k_beam;
+ hor_k_beam;
+ shorter_g_horn(1);
+
+ z61=(margin,height-thin);
+ z62=(whatever,y61);
+ z62=whatever[z11,z12];
+ z63=(margin,height-2thin);
+ z64=(whatever,y63);
+ z64=whatever[z11,z12];
+
+ fill z61--z62--z64--z63--cycle;
+endchar;
+
+beginchar("[",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "\vsk";
+ k_triangle;
+ full_k_balken;
+ middle_k_beam;
+ hor_k_beam;
+ shorter_g_horn(1);
+
+ z61=(margin+1thin,height-thin);
+ z62=(whatever,y61);
+ z62=whatever[z11,z12];
+ z63=(margin+1thin,height-2thin);
+ z64=(whatever,y63);
+ z64=whatever[z11,z12];
+
+ z65=(x64-1.5thin,height-4thin);
+ z66=(x64-.5thin,y65);
+ z67=(x64-.5thin,y64);
+ z68=(x64-1.5thin,y64);
+
+ fill z61--z62--z64--z63--cycle;
+ fill z68--z65--z66--z67--cycle;
+endchar;
+
+beginchar("]",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "sk";
+ k_triangle;
+ full_k_balken;
+ middle_k_beam;
+ hor_k_beam;
+ shorter_g_horn(1);
+
+ z14=5/12[z11,z12];
+ z15=(x14,y14-3thin);
+ z16=(whatever,1/2[y14,y15]);
+ z16-z15=(z14-z15) rotated 60;
+
+ fill z14--z15--z16--cycle;
+endchar;
+
+beginchar("f",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "rk";
+ k_triangle;
+ full_k_balken;
+ middle_k_beam;
+ hor_k_beam;
+ shorter_g_horn(1);
+
+ z14=whatever[z11,z12];
+ z14=whatever[z5,z8];
+ z15=3/12[z11,z14];
+ z16=9/12[z11,z14];
+ z17=1/2[z11,z14];
+ z18-z17=8/6(z15-z16) rotated 90;
+
+ fill z15--z16--z18--cycle;
+endchar;
+
+beginchar("Z",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "Z";
+ x20=x22=center;
+ x21=width;
+ lft x23=margin;
+ y20=y12-thin;
+ y22=y20-o_width;
+ y21=y23=.5[y22,y20];
+
+ full_balken;
+ common_triangle;
+
+ pickup pensquare scaled 2thin rotated 45;
+ draw z20--z21--z22--z23--cycle;
+endchar;
+
+beginchar("C",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "C";
+ x20=x22=center;
+ x21=width;
+ lft x23=margin;
+ y20=y12-thin;
+ y22=y20-o_width;
+ y21=y23=.5[y22,y20];
+
+ full_balken;
+ common_triangle;
+ pickup pensquare scaled 2thin rotated 45;
+ draw z20--z21--z22--z23--cycle;
+
+ pickup pencircle scaled thin;
+ draw z20--z22;
+endchar;
+
+beginchar("J",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "J";
+ x20=x22=center;
+ x21=width;
+ x23=margin;
+ y20=y12-thin;
+ y22=y20-o_width;
+ y21=y23=.5[y22,y20];
+
+ full_balken;
+ common_triangle;
+ pickup pensquare scaled 2thin rotated 45;
+ draw z20--z21--z22--z23--cycle;
+ pickup pencircle scaled thin;
+ draw z21--z23;
+endchar;
+
+beginchar("X",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "X";
+ full_balken;
+ common_triangle;
+ upper_fish;
+ x31=margin+1/4o_width;
+ x32=center;
+ x33=margin+3/4o_width;
+ y31=y33=1/3height;
+ y32=2/3height-2thin;
+
+ pickup pencircle scaled 2thin ;
+ draw z31{up}..z32..{down}z33 ;
+endchar;
+
+beginchar("q",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "z";
+ full_balken;
+ common_triangle;
+ z21=(margin+1thin,5/6height-1thin);
+ z22=(margin,1/9[y21,y29]);
+ z23=(margin+1/3o_width,4/9[y21,y29]);
+ z24=(x23+2thin,y23);
+ z25=(width-thin,y24+thin);
+ z26=(x25,y25+thin);
+ z27=(x23+thin,y23+thin);
+ z28=(margin+2thin,y22);
+
+ z29=(x21,1/3height+2thin);
+
+ z30=(x22,8/9[y21,y29]);
+ z31=(x23,5/9[y21,y29]);
+ z32=(x24,y31);
+ z33=(x25,y32-thin);
+ z34=(x33,y33-thin);
+ z35=(x27,y32-thin);
+ z36=(x28,y30);
+
+ z37=(width,1/6height+.5thin);
+ z38=(width-1/4o_width,y37);
+ z39=(x38,y37-1thin);
+ z40=(x37,y39);
+
+ fill z21..z22..z23..z24..z25--z26..z27..{up}z28..z21..cycle;
+ fill z23--z24--z32--z31--cycle;
+ fill z29..z30..z31..z32..z33--z34..z35..{down}z36..z29..cycle;
+ fill z37--z38--z39--z40--cycle;
+endchar;
+
+beginchar("@",margin#+width#+bwidth#,height#+2pt#,depth#);
+ "'a";
+ full_balken;
+ common_triangle;
+ z21=(center-.05thin,1/3height);
+ z27=(center,height-3n-thin);
+ z23=(center,y27-1.5thin);
+ z26=(margin+2thin,2/3[y21,y27]);
+ z24=(x26+1.5thin,y26);
+ z28=(width-2thin,y26);
+ z22=(x28-1.5thin,y26);
+ z25=(3/2[x26,x24],5/12[y27,y21]);
+ z29=(center+.05thin,1/3height);
+
+ fill z21{up}..tension 1.1..z22..z23..z24..z25
+ & z25..z26..z27..z28..tension 1.2..{down}z29
+ & z29..z21 & cycle;
+endchar;
+
+beginchar("}",margin#+bwidth#+width#+bwidth#,vheight#+2pt#,depth#);
+ "Soyombo Terminal";
+ % Linker Balken
+ z1=(margin,0);
+ z2=(margin+bwidth,0);
+ z3=(x2,height);
+ z4=(x1,height);
+ fill z1--z2--z3--z4--cycle;
+
+ % Rechter Balken
+ z5=(bwidth+width,0);
+ z6=(bwidth+width+bwidth,0);
+ z7=(x6,height);
+ z8=(x5,height);
+ fill z5--z6--z7--z8--cycle;
+
+ % Symmetrieachse festlegen
+ z9=(1/2[x2,x5],0.25thin);
+ z10=(x9,height);
+
+ % Unterer Lotusbluetenboden, linke Haelfte
+ z11=(1/3[x12,x9],1.75thin);
+ z12=(2/3[x2,x9],0.25thin);
+ z13=(1/3[x14,x12],1.25thin);
+ z14=(1/3[x2,x9],0.25thin);
+ pickup pencircle scaled .5thin;
+ draw z9{up}..z11..{down}z12 & z12{up}..z13..{down}z14;
+
+ % Unterer Lotusbluetenboden, rechte Haelfte
+ z15=z11 reflectedabout (z9,z10);
+ z16=z12 reflectedabout (z9,z10);
+ z17=z13 reflectedabout (z9,z10);
+ z18=z14 reflectedabout (z9,z10);
+ draw z9{up}..z15..{down}z16 & z16{up}..z17..{down}z18 & z18--z14;
+
+ % Erstes Blatt links
+ z20=(x9,2thin);
+ z21=(x12,2.5thin);
+ z22=(x14,1.5thin);
+ z23=(x21,3.5thin);
+ draw z20..z21..z22 & z22..z23..z20;
+
+ % Erstes Blatt rechts
+ z24=z21 reflectedabout (z9,z10);
+ z25=z22 reflectedabout (z9,z10);
+ z26=z23 reflectedabout (z9,z10);
+ draw z20..z24..z25 & z25..z26..z20;
+
+
+ % Vertikales Blatt
+ z37=(2/3[x11,x9],2/3[y9,y38]);
+ z38=(x9,1/4[y9,y10]);
+ z39=z37 reflectedabout (z9,z10);
+ draw z20..z37..z38 & z38..z39..z20;
+
+ % Zweites Blatt links
+ z27=(x13,y37);
+ z28=(1/2[x2,x14],y27-thin);
+ z29=(x13,y27+thin);
+ draw z20..z27..z28 & z28..tension 1.5..z29..tension 1.5..z20;
+
+ % Zweites Blatt rechts
+ z30=z27 reflectedabout (z9,z10);
+ z31=z28 reflectedabout (z9,z10);
+ z32=z29 reflectedabout (z9,z10);
+ draw z20..z30..z31 & z31..tension 1.5..z32..tension 1.5..z20;
+
+ % Drittes, kleines Blatt links
+ z33=(1/2[x37,x34],y37+thin);
+ z34=(x11,y37);
+ % draw z37..z33..z34;
+
+ % Drittes, kleines Blatt rechts
+ z35=z33 reflectedabout (z9,z10);
+ z36=z34 reflectedabout (z9,z10);
+ % draw z39..z35..z36;
+
+ % Gluehbirne
+ z40=(x28,height-4thin);
+ z41=(x9,vheight);
+ z42=z40 reflectedabout (z9,z10);
+ path leftglass, rightglass;
+ leftglass=(z37...z40{up}..{up}z41);
+ rightglass=(z41{down}..{down}z42...z39);
+ draw leftglass & rightglass;
+
+ % Gluehfaden
+ path Horizontale;
+ Horizontale=((x2,1/2height)--(x5,1/2height));
+ z43=Horizontale intersectionpoint leftglass;
+ z44=(2/3[x43,x9],y43+2thin);
+ z45=(1/2[x43,x9],y40);
+ z46=(x9,height-thin);
+ z47=z45 reflectedabout (z9,z10);
+ z48=z44 reflectedabout (z9,z10);
+ z49=z43 reflectedabout (z9,z10);
+ draw z43..z44..z45..z46..z47..z48..z49;
+ penlabels(range 1 thru 50);
+endchar;
+
+font_normal_space 1/2full_w#;
+font_x_height height#;
+font_quad full_w#;
+font_extra_space .25full_w#;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/soyombo/soyombot.mf b/Master/texmf-dist/fonts/source/public/soyombo/soyombot.mf
new file mode 100644
index 00000000000..d532a047539
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/soyombo/soyombot.mf
@@ -0,0 +1,145 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% File: soyombot.mf
+% Date: August 20, 1996
+% Author: Oliver Corff
+% (c) 1996 Ulaanbaatar, Macau, Berlin
+%
+% A metafont for providing the Soyombo symbol to LaTeX-users.
+%
+% Usage: see package soyombo
+%
+% No options.
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%% This font contains only one character, the Soyombo. %%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+mode_setup;
+ mg:=3/4;
+ n#:=mg*pt#;
+ width#:=mg*24pt#;
+ height#:=mg*45pt#;
+ depth#:=mg*0pt#;
+ y_ofs#:=mg*0pt#;
+ center#:=.5width#;
+
+ define_pixels(width,height,depth,
+ n,y_ofs,center);
+
+ font_size = 10pt#;
+
+beginchar("#",width#,height#,depth#);
+ "Soyombo";
+ % First the vertical walls:
+ x1=x4=x2-5n=x3-5n=center-11n;
+ x5+5n=x8+5n=x6=x7=center+11n;
+ y1=y2=y5=y6=0-y_ofs;
+ y3=y4=y7=y8=24n-y_ofs;
+ fill z1--z2--z3--z4--cycle;
+ fill z5--z6--z7--z8--cycle;
+
+ % Now the triangles:
+ x10=x13=center;
+ x9=x12=center-5n;
+ x11=x14=center+5n;
+ y9=y11=3n-y_ofs;
+ y10=0-y_ofs;
+ y12=y14=y4;
+ y13=y12-3n;
+ fill z9--z10--z11--cycle;
+ fill z12--z13--z14--cycle;
+
+ % Now the horizontal walls:
+ x15+5n=x18+5n=x19+5n=x22+5n=center=x16-5n=x17-5n=x20-5n=x21-5n;
+ y15=y16=y9+1n;
+ y17=y18=y15+2n;
+ y19=y20=y21-2n;
+ y21=y22=y13-1n;
+ fill z15--z16--z17--z18--cycle;
+ fill z19--z20--z21--z22--cycle;
+
+ % Now the Yin and Yang:
+ % First the "big" circle:
+ x23=x24=center;
+ y23=y18+1n;
+ y24=y19-1n;
+ fill z23..z24..cycle;
+
+ % Then one "eye":
+ x25=x26=center;
+ y25=y23+2.35n-1n;
+ y26=y23+2.25n+1n;
+ unfill z25..z26..cycle;
+
+ % And the other "eye":
+ x27=x28=center;
+ y27=y24-2.35n-1n;
+ y28=y24-2.25n+1n;
+ unfill z27..z28..cycle;
+
+ % Finally the separation between the two fishes:
+ pickup pencircle scaled .5n;
+ undraw halfcircle rotated 90 scaled 5.30n shifted (center,.5[y25,y26]) ;
+ undraw halfcircle rotated 270 scaled 5.30n shifted (center,.5[y27,y28]);
+
+ % Now the moon:
+ x29+5.5n=x31-5.5n=center;
+ x30=x32=center;
+ y29=y31=y4+6.5n;
+ y30=y4+1n;
+ y32=y30+2n;
+
+ fill z29..z30..z31 & z31..z32..z29 & cycle;
+
+ % Now the sun:
+ x33=x34=center;
+ y33=y32+1n;
+ y34=y33+8n;
+ fill z33..z34..cycle;
+
+ % Now the flame:
+ x126=x113=center;
+ x101+2.5n=center;
+ x125-2.5n=center;
+ x102=x107=center-1.75n;
+ x103=center-1.75n;
+ x119=x121=center+1.5n;
+ x104=x108=center-1n;
+ x106=center-1.25n;
+ x110=center-.5n;
+ x111=center-.25n;
+ x105=center-1.5n;
+ x109=x112=center-.5n;
+ x114=center-1/4n;
+ x115=center+.75n;
+ x116=x117=center+0.5n;
+ x118=x122=center+1n;
+ x120=center+1.25n;
+ x123=center+2n;
+ x124=center+1.75n;
+
+
+ y126=y34+n;
+ y101=y108=y118=y125=y126+2.5n;
+ y102=y106=y120=y124=y101+1.25n;
+ y103=y105=y110=y115=y121=y123=y101+2n;
+ y104=y122=y111-.25n=y101+3n;
+ y107=y109=y117=y119=y101+.5n;
+ y116=y101+1n;
+ y112=y114=y101+4n;
+ y113=y101+5.5n;
+
+ fill z125..z126..z101 % lower half circle
+ ..flex(z101,z102,z103,z104) % left small flame
+ & flex(z104,z105,z106,z107) % left small flame
+ ..z107..z108..z109 % left flame separator
+ ..flex(z109,z110,z111,z112,z113)% central flame
+ & flex(z113,z114,z115,z116,z117)% central flame
+ ..z117..z118..z119 % right flame separator
+ ..flex(z119,z120,z121,z122) % right small flame
+ & flex(z122,z123,z124,z125) % right small flame
+ ..cycle;
+ penlabels(range 1 thru 125);
+endchar;
+
+end.
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmary10.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary10.mf
new file mode 100644
index 00000000000..47dee9d3ca0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary10.mf
@@ -0,0 +1,60 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmary10.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "55779 60 311 2704",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "stmaryrd.mf stmaryba.mf stmarych.mf
+%%% stmaryjg.mf stmaryaj.mf",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the font out of alans.mf and galileo.mf.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+if unknown cmbase: input cmbase fi;
+def generate suffix t = enddef;
+input cmsy10;
+slant:= 0;
+input stmaryrd;
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmary5.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary5.mf
new file mode 100644
index 00000000000..886e72c1079
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary5.mf
@@ -0,0 +1,59 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmary5.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "34417 59 310 2701",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "stmaryrd.mf stmaryba.mf stmarych.mf
+%%% stmaryjg.mf stmaryaj.mf",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the font out of alans.mf and galileo.mf.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+if unknown cmbase: input cmbase fi;
+def generate suffix t = enddef;
+input cmsy5; slant:=0;
+input stmaryrd;
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmary6.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary6.mf
new file mode 100644
index 00000000000..131179e5e41
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary6.mf
@@ -0,0 +1,59 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmary6.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "40321 59 310 2701",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "stmaryrd.mf stmaryba.mf stmarych.mf
+%%% stmaryjg.mf stmaryaj.mf",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the font out of alans.mf and galileo.mf.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+if unknown cmbase: input cmbase fi;
+def generate suffix t = enddef;
+input cmsy6; slant:=0;
+input stmaryrd;
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmary7.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary7.mf
new file mode 100644
index 00000000000..9021aa4d1b7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary7.mf
@@ -0,0 +1,59 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmary7.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "63333 59 311 2702",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "stmaryrd.mf stmaryba.mf stmarych.mf
+%%% stmaryjg.mf stmaryaj.mf",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the font out of alans.mf and galileo.mf.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+if unknown cmbase: input cmbase fi;
+def generate suffix t = enddef;
+input cmsy7; slant:= 0;
+input stmaryrd;
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmary8.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary8.mf
new file mode 100644
index 00000000000..16a060ab923
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary8.mf
@@ -0,0 +1,59 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmary8.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "57569 59 310 2701",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "stmaryrd.mf stmaryba.mf stmarych.mf
+%%% stmaryjg.mf stmaryaj.mf",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the font out of alans.mf and galileo.mf.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+if unknown cmbase: input cmbase fi;
+def generate suffix t = enddef;
+input cmsy8; slant:=0;
+input stmaryrd;
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmary9.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary9.mf
new file mode 100644
index 00000000000..05cbc1189d7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmary9.mf
@@ -0,0 +1,59 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmary9.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "59825 59 310 2701",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "stmaryrd.mf stmaryba.mf stmarych.mf
+%%% stmaryjg.mf stmaryaj.mf",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the font out of alans.mf and galileo.mf.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+if unknown cmbase: input cmbase fi;
+def generate suffix t = enddef;
+input cmsy9; slant:=0;
+input stmaryrd;
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryaj.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryaj.mf
new file mode 100644
index 00000000000..dfe4f630b10
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryaj.mf
@@ -0,0 +1,1066 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmaryaj.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "16420 1066 3686 40419",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "none",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the font out of alans.mf and galileo.mf.
+%%%
+%%% 24 May 1991, v1.01: Finished the first version.
+%%%
+%%% 25 Jun 1991, v1.02: Corrected bugs with arrow_not and Arrow_not.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+iff known left_right_arrow_eq:
+cmchar "Left and right arrow equality";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(left_right_arrow_eq,14u#,v_center(spread#+.96asc_height#));
+adjust_fit(0,0); pickup crisp.nib; pos1(rule_thickness,90);
+pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1=.5w; rt
+x0=hround(w-.75u); y3-y0=y0-y4=.24asc_height+eps;
+x3=x4=x0-3u-eps; pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r; t=xpart(p
+intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+path p; p=z0..{z4-z9}z4r--subpath (0,t)
+of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+p:=p shifted (0,.5spread); filldraw p; % top
+addto currentpicture also currentpicture xscaled -1 shifted (w,0);
+pickup rule.nib;
+lft x10=hround u; x11=w-x10; y10=y11=math_axis-.5spread;
+draw z10--z11; % bottom
+penlabels(0,1,2,3,4,5,6,9,10,11); endchar;
+
+iff known curly_vee_down_arrow:
+cmchar "Upside-down upwards accumulate symbol";
+beginchar(curly_vee_down_arrow,12u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x2=good.x .5w; w:=r:=2x2;
+lft x1=0; x3=w-x1;
+bot y1=-d; top y2=h+o; y3=y1;
+x4=x2; y4=h-(x_height+d);
+pickup crisp.nib;
+pos11(rule_thickness,0); pos12(rule_thickness,0); % arrow head nicked from
+pos13(bar,90); pos14(bar,90); % up_arrow
+lft x11l=hround(.5w-.5rule_thickness); y11-.5rule_thickness=-d;
+x10=x11=x12; top y10=top y2; x10-x13=x14-x10=3u+eps;
+y13=y14=y10-.24asc_height-eps;
+pos15(bar,angle(z14-z10)); z15l=z10;
+pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((x12r,-d)--(x12r,h))); y12=ypart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z12r
+ -- % ---z11r..z11l---
+ z12l--subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % arrowhead
+pickup rule.nib;
+numeric t; path p; p=z1{z4-z1}..{up}z2;
+t=xpart(p intersectiontimes((0,y12)--(w,y12)));
+draw subpath (0,t) of\\(z1{z4-z1}..{up}z2); % left arm
+draw subpath (0,t) of\\(z3{z4-z3}..{up}z2); % right arm
+currentpicture:= currentpicture yscaled -1 shifted (0,h-d);
+endchar;
+
+iff known curly_vee_up_arrow:
+cmchar "Upside-down downwards accumulate symbol";
+beginchar(curly_vee_up_arrow,12u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x2=good.x .5w; w:=r:=2x2;
+lft x1=0; x3=w-x1;
+bot y1=-d; top y2=h+o; y3=y1;
+x4=x2; y4=h-(x_height+d);
+pickup crisp.nib;
+numeric theta,delta; theta=angle(z4-z1); delta=3u++.24asc_height;
+pos11(rule_thickness,-90+theta); pos12(rule_thickness,-90+theta);
+pos13(bar,-180+theta); pos14(bar,-180+theta);
+lft x10=0; bot y10=-d;
+x11=w; z11=z10+whatever*(dir theta); % where the arrow stem would go
+y13a=y10; x14a=x10; x13a-x10=y14a-y10=delta+eps;
+z13=z13a rotatedaround(z10,theta-45);
+z14=z14a rotatedaround(z10,theta-45);
+pos15(bar,theta+45); z15l=z10; pos16(bar,theta-45); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes (z11l--(z11l+2(z10-z11)))); z12l=point t of p;
+filldraw z10..{z14-z19}z14r
+ --subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z12l
+ -- % ---z11l..z11r---
+ z12r
+ --subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % left arrowhead
+numeric theta,delta; theta=angle(z3-z4); delta=3u++.24asc_height;
+pos21(rule_thickness,90+theta); pos22(rule_thickness,90+theta);
+pos23(bar,theta); pos24(bar,theta);
+rt x20=w; bot y20=-d;
+x21=0; z21=z20+whatever*-(dir theta); % where the arrow stem would go
+x23a=x20; y24a=y20; y23a-y20=x20-x24a=delta+eps;
+z23=z23a rotatedaround(z20,theta+45);
+z24=z24a rotatedaround(z20,theta+45);
+pos25(bar,theta+225); z25l=z20; pos26(bar,theta+135); z26l=z20;
+z29=.381966[.5[z23,z24],z20];
+numeric t; path p; p=z24l{z29-z24}..z26r;
+t=xpart(p intersectiontimes (z21l--(z21l+2(z20-z21)))); z22l=point t of p;
+filldraw z20..{z24-z29}z24r
+ --subpath (0,t) of\\(z24l{z29-z24}..z26r)
+ --z22l
+ -- % ---z21l..z21r---
+ z22r
+ --subpath (t,0) of\\(z23l{z29-z23}..z25r)
+ --z23r{z29-z23}..z20 & cycle; % right arrowhead
+pickup rule.nib;
+numeric t; path p; p=z2{down}..{z1-z4}z1;
+t=xpart(p intersectiontimes(z12l--z12r));
+draw subpath (0,t) of\\(z2{down}..{z1-z4}z1); % left arm
+draw subpath (0,t) of\\(z2{down}..{z3-z4}z3); % right arm
+currentpicture:= currentpicture yscaled -1 shifted (0,h-d);
+endchar;
+
+iff known nnw_arrow: cmchar "Northnorthwest arrow";
+beginchar(nnw_arrow,11u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1+.5rule_thickness=hround(w-u); lft x0=hround 3u; % This 3u used to be a u in
+y1+.5rule_thickness=h; bot y0=-d; % the program for swarrow.
+ % 3u (with width 11u) gives
+ % arrow parallel to langle.
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta); pos2(rule_thickness,-90+theta);
+pos3(bar,-180+theta); pos4(bar,-180+theta);
+ %y3=y0; x4=x0; x3-x0=y4-y0=delta+eps;
+y10=y0; x11=x0; x10-x0=y11-y0=delta+eps; % Can now do arrows of any angle
+z3=z10 rotatedaround(z0,theta-45);
+z4=z11 rotatedaround(z0,theta-45);
+pos5(bar,theta+45); z5l=z0; pos6(bar,theta-45); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+currentpicture:= currentpicture yscaled -1 shifted (0,h-d);
+endchar;
+
+iff known nne_arrow: cmchar "Northnortheast arrow";
+beginchar(nne_arrow,11u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1-.5rule_thickness=hround u; rt x0=hround(w-3u);
+y1+.5rule_thickness=h; bot y0=-d;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta+45)<2.5: theta:=-45; y1:=y0+x0-x1; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(rule_thickness,90+theta);
+pos3(bar,theta); pos4(bar,theta);
+ %x3=x0; y4=y0; y3-y0=x0-x4=delta+eps;
+x10=x0; y11=y0; y10-y0=x0-x11=delta+eps;
+z3=z10 rotatedaround(z0,theta+45);
+z4=z11 rotatedaround(z0,theta+45);
+pos5(bar,theta+225); z5l=z0; pos6(bar,theta+135); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+currentpicture:= currentpicture yscaled -1 shifted (0,h-d);
+endchar;
+
+iff known left_slice: cmchar "Left slice";
+beginarithchar(left_slice); pickup rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; y8-y2 = .5(x2-x6);
+circle_points; % circle
+draw z1--z6--z3; % lessthan
+draw z1..z2..z3; % arc
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known right_slice: cmchar "Right slice";
+beginarithchar(right_slice); pickup rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; y8-y2 = .5(x2-x6);
+circle_points; % circle
+draw z5--z2--z7; % greaterthan
+draw z5..z6..z7; % arc
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_less_than: cmchar "Circular circle-lessthan operator";
+begincircle(var_o_less_than);
+draw z1--z6--z3; % lessthan
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_greater_than: cmchar "Circular circle-greaterthan operator";
+begincircle(var_o_greater_than);
+draw z5--z2--z7; % greaterthan
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_vee: cmchar "Circular circle-vee operator";
+begincircle(var_o_vee);
+draw z1--z4--z7; % vee
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_wedge: cmchar "Circular circle-wedge operator";
+begincircle(var_o_wedge);
+draw z3--z8--z5; % wedge
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known tall_oblong: cmchar "Tall oblong (Dijkstra choice symbol)";
+beginchar(tall_oblong,9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x1=x2; top y1=h; .5[y1,y2]=math_axis;
+x3=x4=w-x1; y3=y1; y4=y2;
+compute_spread(.45x_height#,.55x_height#); x3-x1=spread;
+draw z1--z2--z4--z3--cycle; % stems
+labels(1,2,3,4); endchar;
+
+iff known interleave:
+cmchar "Triple vertical line (interleaving)";
+beginchar(interleave,12.5u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+x1=x2; top y1=h; .5[y1,y2]=math_axis;
+x4=x3; x5=x6=w-x1; y5=y3=y1; y6=y4=y2;
+x3-x1=x5-x3=hround spread;
+draw z1--z2; draw z3--z4; draw z5--z6; % stems
+labels(1,2,3,4,5,6); endchar;
+
+iff known o_bar: cmchar "Circle-bar operator";
+beginarithchar(o_bar); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z4--z8; % bar
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known o_bslash: cmchar "Circle-backslash operator";
+beginarithchar(o_bslash); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z3--z7; % diagonal
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known o_less_than: cmchar "Circle-lessthan operator";
+beginarithchar(o_less_than); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z1--z6--z3; % lessthan
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known o_greater_than: cmchar "Circle-greaterthan operator";
+beginarithchar(o_greater_than); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z5--z2--z7; % greaterthan
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known o_vee: cmchar "Circle-vee operator";
+beginarithchar(o_vee); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z1--z4--z7; % vee
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known o_wedge: cmchar "Circle-wedge operator";
+beginarithchar(o_wedge); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+draw z3--z8--z5; % wedge
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known oblong:
+cmchar "Oblong (Hoare choice)";
+beginchar(oblong,12u#,.8asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.1u; x2=x1; x4=x5=w-x1;
+y1=good.y h+o; bot y2=0; y4=y2; y5=y1;
+draw z1---z2---z4---z5--cycle; % stems and bar
+labels(1,2,4,5); endchar;
+
+iff known in_plus: cmchar "Bag element sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(in_plus,12u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=x6=w-x2;
+y1-y3=spread; y2=y6=.5[y1,y3]=math_axis;
+x4=x5=.5w+u; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+draw z2--z6; % middle bar
+x12=x13=.47[x1,x2]; y12=y1-3rule_thickness+eps; y13=y3+3rule_thickness+eps;
+draw z12--z13; % vertical bar
+labels(1,2,3,4,5,6,12,13); endchar;
+
+iff known ni_plus: cmchar "Reversed bag element sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(ni_plus,12u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x1=x3=x6=w-x2;
+y1-y3=spread; y2=y6=.5[y1,y3]=math_axis;
+x4=x5=.5w-u; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+draw z2--z6; % middle bar
+x12=x13=.47[x1,x2]; y12=y1-3rule_thickness+eps; y13=y3+3rule_thickness+eps;
+draw z12--z13; % vertical bar
+labels(1,2,3,4,5,6,12,13); endchar;
+
+iff known n_plus: cmchar "Bag intersection";
+beginchar(n_plus,12u#,.8asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+y3=good.y h+o; bot y1=-o; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+y8=y9=.47[y1,y3]; x8=w-x9=x1+2rule_thickness+eps;
+x6=x7=x3; .5[y6,y7]=y8; y7-y6=x9-x8;
+draw z6--z7; draw z8--z9; % enclosed plus sign
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+iff known sub_set_plus: cmchar "Proper subbag sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(sub_set_plus,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x12=x13=.40[x1,x2]; y12=y1-3rule_thickness+eps; y13=y3+3rule_thickness+eps;
+y10=y11=y2; .5[x10,x11]=x12; x11-x10=y12-y13;
+draw z12--z13; draw z10--z11; % enclosed plus sign
+labels(1,2,3,4,5,10,11,12,13); endchar;
+
+iff known sup_set_plus: cmchar "Proper superbag sign";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(sup_set_plus,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x12=x13=.40[x1,x2]; y12=y1-3rule_thickness+eps; y13=y3+3rule_thickness+eps;
+y10=y11=y2; .5[x10,x11]=x12; x11-x10=y12-y13;
+draw z12--z13; draw z10--z11; % enclosed plus sign
+labels(1,2,3,4,5,10,11,12,13); endchar;
+
+iff known sub_set_plus_eq: cmchar "Subbag or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(sub_set_plus_eq,14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; lft x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x12=x13=.40[x1,x2]; y12=y1-3rule_thickness+eps; y13=y3+3rule_thickness+eps;
+y10=y11=y2; .5[x10,x11]=x12; x11-x10=y12-y13;
+draw z12--z13; draw z10--z11; % enclosed plus sign
+labels(1,2,3,4,5,7,8,10,11,12,13); endchar;
+
+iff known sup_set_plus_eq: cmchar "Superbag or equal to sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(sup_set_plus_eq,14u#,v_center(spread#'+spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+x4=x5=.5w; y4=y1; y5=y3;
+draw z1---z4...z2{down}...z5---z3; % arc and bars
+x8=x1; rt x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % lower bar
+x12=x13=.40[x1,x2]; y12=y1-3rule_thickness+eps; y13=y3+3rule_thickness+eps;
+y10=y11=y2; .5[x10,x11]=x12; x11-x10=y12-y13;
+draw z12--z13; draw z10--z11; % enclosed plus sign
+labels(1,2,3,4,5,7,8,10,11,12,13); endchar;
+
+iff known L_bag: cmchar "Left bag bracket";
+beginchar(L_bag,8u#,body_height#,paren_depth#);
+ % ht and dp from "left parenthesis" symbol
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(hair,0);
+pos3(cap_stem,0); pos4(vair,90); pos5(flare,180);
+lft x0r=lft x3l=lft x5r=hround u; y0=h-2u;
+x1=1/2[x0,x2]; top y1r=h;
+x2=2/3[x0,x4]; y2=y0;
+y3=0;
+x4=w-x0r; bot y4l=-d;
+filldraw stroke z1e{right}..z2e{down}..z3e{down}..{right}z4e; % arc
+bulb(1,0,5);
+penlabels(0,1,2,3,4,5); endchar;
+
+iff known R_bag: cmchar "Right bag bracket";
+beginchar(R_bag,8u#,body_height#,paren_depth#);
+ % ht and dp from "left parenthesis" symbol
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(hair,0);
+pos3(cap_stem,0); pos4(vair,90); pos5(flare,180);
+lft x0r=lft x3l=lft x5r=hround u; y0=h-2u;
+x1=1/2[x0,x2]; top y1r=h;
+x2=2/3[x0,x4]; y2=y0;
+y3=0;
+x4=w-x0r; bot y4l=-d;
+filldraw stroke z1e{right}..z2e{down}..z3e{down}..{right}z4e; % arc
+bulb(1,0,5);
+currentpicture:= currentpicture xscaled -1 shifted (w,0); % OK, so sue me!
+endchar;
+
+iff known ll_bracket:
+cmchar "Left semantic bracket [[";
+beginchar(ll_bracket,7.25u#,body_height#,paren_depth#);
+adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5rule_thickness)-1-eps;
+filldraw stroke z1e--z2e; % left stem
+pos7(rule_thickness,0); pos8(rule_thickness,0);
+top y7=h; bot y8=-d; lft x7l=lft x8l=hround(4.75u-.5rule_thickness)-1-eps;
+filldraw stroke z7e--z8e; % right stem
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+pos5(rule_thickness,90); pos6(rule_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known rr_bracket:
+cmchar "Right semantic bracket ]]";
+beginchar(rr_bracket,7.25u#,body_height#,paren_depth#);
+adjust_fit(0,0);
+pickup crisp.nib; pos1(rule_thickness,0); pos2(rule_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5rule_thickness)+1+eps;
+filldraw stroke z1e--z2e; % left stem
+pos7(rule_thickness,0); pos8(rule_thickness,0);
+top y7=h; bot y8=-d; rt x7r=rt x8r=hround(w-4.75u+.5rule_thickness)+1+eps;
+filldraw stroke z7e--z8e; % right stem
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+pos5(rule_thickness,90); pos6(rule_thickness,90);
+x3=x5=x1l; lft x4=lft x6=ceiling(.4u)-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+iff known ll_parenthesis:
+cmchar "Left relational image (|";
+beginchar(ll_parenthesis,7u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+pos4(whatever,45); pos5(whatever,-45);
+rt x4r-lft x4l=rt x5r-lft x5l=rule_thickness;
+z4r=z1r; z5r=z3r;
+filldraw stroke z4e--z5e;
+penlabels(1,2,3,4,5); endchar;
+
+iff known rr_parenthesis:
+cmchar "Right relational image |)";
+beginchar(rr_parenthesis,7u#,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+pos4(whatever,-45); pos5(whatever,45);
+rt x4r-lft x4l=rt x5r-lft x5l=rule_thickness;
+z4l=z1l; z5l=z3l;
+filldraw stroke z4e--z5e;
+penlabels(1,2,3,4,5); endchar;
+
+iff known bin_ampersand:
+cmchar "Binary operator ampersand (for linear logic)";
+beginarithchar(bin_ampersand); pickup rule.nib; autorounded;
+rt x1=hround(w-u)+eps; y1=.5[y2,y5]=math_axis;
+x2=.25[x3,x1]; y5-y2=x1-x3;
+lft x3=hround u-eps; y3=.45[y2,y1];
+x5=.5[x3,x1]; x6=x1; y6=y2+o;
+z4=whatever[z2,z5]; z4=z6+whatever*dir 140;
+draw z1..z2{left}..z3{up}..z4..tension .85..z5{left}..tension .75..z4---z6;
+labels(1,2,3,4,5,6);
+endchar;
+
+iff known bin_dnasrepma:
+cmchar "Binary operator dnasrepma (for linear logic)";
+beginarithchar(bin_dnasrepma); pickup rule.nib; autorounded;
+rt x1=hround(w-u)+eps; y1=.5[y2,y5]=math_axis;
+x2=.25[x3,x1]; y5-y2=x1-x3;
+lft x3=hround u-eps; y3=.45[y2,y1];
+x5=.5[x3,x1]; x6=x1; y6=y2+o;
+z4=whatever[z2,z5]; z4=z6+whatever*dir 140;
+draw z1..z2{left}..z3{up}..z4..tension .85..z5{left}..tension .75..z4---z6;
+currentpicture:= currentpicture scaled -1 shifted (w,h-d);
+endchar;
+
+iff known triangle_left_eq_slant:
+cmchar "Triangular less than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(triangle_left_eq_slant,14u#,
+ v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h;
+x2=x9; x1=x8;
+draw z1--z2--z3--cycle; % diagonals
+draw z8--z9; % equal sign
+penlabels(1,2,3,8,9); endchar;
+
+iff known triangle_right_eq_slant:
+cmchar "Triangular greater than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(triangle_right_eq_slant,14u#,
+ v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x9; x1=x8;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h;
+draw z1--z2--z3--cycle; % diagonals
+draw z8--z9;
+penlabels(1,2,3,8,9); endchar;
+
+iff known n_triangle_left_eq_slant:
+cmchar "Not triangular less than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(n_triangle_left_eq_slant,14u#,
+ v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2; y1-y3=spread;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u;
+x2=x9; x1=x8;
+draw z1--z2--z3--cycle; % diagonals
+draw z8--z9; % equal sign
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,8,9); endchar;
+
+iff known n_triangle_right_eq_slant:
+cmchar "Not triangular greater than or (slanted) equal sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread;
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(n_triangle_right_eq_slant,14u#,
+ v_center(spread#'+spread#+rule_thickness#+6u#));
+italcorr h#*slant-u#; adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2; y1-y3=spread;
+x2=x9; x1=x8;
+y2=.5[y1,y3]; y3-y8=y2-y9=spread'; top y1=h-3u;
+draw z1--z2--z3--cycle; % diagonals
+draw z8--z9;
+char_center(c); x.t=w-3u; y.t=y1+3u;
+char_negate(c,t,b);
+penlabels(1,2,3,8,9); endchar;
+
+iff known ll_floor:
+cmchar "Left merge or left double-floor";
+beginchar(ll_floor,10u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+x1=x2; top y1=h; .5[y1,y2]=math_axis;
+x4=x3; rt x5=rt x6=w; y5=y3=y1; y6=y4=y2;
+x3-x1=x5-x3=hround spread;
+draw z1--z2; draw z3--z4; % stems
+draw z2--z6; % horizontal
+labels(1,2,3,4,5,6); endchar;
+
+iff known rr_floor:
+cmchar "Right merge or right double-floor";
+beginchar(rr_floor,10u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+x5=x6; top y1=h; .5[y1,y2]=math_axis;
+x4=x3; lft x1=lft x2=0; y5=y3=y1; y6=y4=y2;
+x3-x1=x5-x3=hround spread;
+draw z3--z4; draw z5--z6; % stems
+draw z2--z6; % horizontal
+labels(1,2,3,4,5,6); endchar;
+
+iff known ll_ceil:
+cmchar "Left double-ceiling";
+beginchar(ll_ceil,10u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+x1=x2; bot y1=-d; .5[y1,y2]=math_axis;
+x4=x3; rt x5=rt x6=w; y5=y3=y1; y6=y4=y2;
+x3-x1=x5-x3=hround spread;
+draw z1--z2; draw z3--z4; % stems
+draw z2--z6; % horizontal
+labels(1,2,3,4,5,6); endchar;
+
+iff known rr_ceil:
+cmchar "Right double-ceiling";
+beginchar(rr_ceil,10u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+compute_spread(.45x_height#,.55x_height#);
+x5=x6; bot y1=-d; .5[y1,y2]=math_axis;
+x4=x3; lft x1=lft x2=0; y5=y3=y1; y6=y4=y2;
+x3-x1=x5-x3=hround spread;
+draw z3--z4; draw z5--z6; % stems
+draw z2--z6; % horizontal
+labels(1,2,3,4,5,6); endchar;
+
+iff known arrow_not:
+cmchar "Negated nonexistant arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(arrow_not,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+y3=.24asc_height+eps+math_axis;
+char_center(100); top y101=top y3; x101=x100+2u;
+char_negate(100,101,102);
+zero_width; endchar;
+
+iff known Arrow_not:
+cmchar "Negated nonexistant double arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(Arrow_not,18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+y1-y2=spread; .5[y1,y2]=math_axis;
+y3=.24asc_height+eps+y1;
+char_center(100); top y101=top y3; x101=x100+1.5u; char_negate(100,101,102);
+zero_width; endchar;
+
+iff known Maps_to_char:
+cmchar "Maps-To relation";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(Maps_to_char,14u#,v_center(spread#+rule_thickness#));
+% this character should be followed immediately by equals or Rightarrow
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; x6=x2=x1+.5u; x3=x4=x5=x1;
+.5[y1,y5]=.5[y2,y6]=math_axis; y5-y3=y4-y1=.24asc_height+eps;
+y1-y5=y2-y6=spread;
+draw z3--z4; % stem
+draw z1--z2; % top bar stub
+draw z5--z6; % bottom bar stub
+labels(1,2,3,4,5,6); zero_width; endchar;
+
+iff known maps_from_char:
+cmchar "Maps-from relation";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(maps_from_char,14u#,v_center(spread#+rule_thickness#));
+% this character should be preceded immediately by minus or leftarrow
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; x2=x1+.5u; x3=x4=x1;
+y1=y2=math_axis; y1-y3=y4-y1=.24asc_height+eps;
+draw z3--z4; % stem
+draw z1--z2; % bar stub
+zero_width;
+currentpicture:= currentpicture xscaled -1;
+endchar;
+
+iff known Maps_from_char:
+cmchar "Maps-From relation";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(Maps_from_char,14u#,v_center(spread#+rule_thickness#));
+% this character should be preceded immediately by equals or Rightarrow
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; x6=x2=x1+.5u; x3=x4=x5=x1;
+.5[y1,y5]=.5[y2,y6]=math_axis; y5-y3=y4-y1=.24asc_height+eps;
+y1-y5=y2-y6=spread;
+draw z3--z4; % stem
+draw z1--z2; % top bar stub
+draw z5--z6; % bottom bar stub
+zero_width;
+currentpicture:= currentpicture xscaled -1;
+endchar;
+
+iff known left_right_arrow_triangle:
+cmchar "Left-right arrow with triangular heads";
+beginchar(left_right_arrow_triangle,18u#,4u#+math_axis#,4u#-math_axis#);
+adjust_fit(0,0); pickup rule.nib;
+z1=z2 + whatever*(dir -150); y4=y1=math_axis;
+lft x1=hround u-eps; x4=x3=x2;
+top y2=h-u; bot y3=-d+u;
+z5=z6 + whatever*(dir 150); y8=y5=math_axis;
+rt x5=hround(w-u)+eps; x8=x7=x6;
+top y6=h-u; bot y7=-d+u;
+draw z1--z2--z3--cycle; % left head
+draw z5--z6--z7--cycle; % right head
+draw z4--z8; % stem
+labels(1,2,3,4,5); endchar;
+
+iff known left_arrow_triangle:
+cmchar "Left arrow with triangular head";
+beginchar(left_arrow_triangle,18u#,4u#+math_axis#,4u#-math_axis#);
+adjust_fit(0,0); pickup rule.nib;
+rt x1=w-u; y1 = math_axis;
+z2=z3 + whatever*(dir -150); y5=y2=y1;
+lft x2=u; x5=x4=x3;
+top y3=h-u; bot y4=-d+u;
+draw z1--z5; draw z2--z3--z4--cycle;
+labels(1,2,3,4,5); endchar;
+
+iff known right_arrow_triangle:
+cmchar "Right arrow with triangular head";
+beginchar(right_arrow_triangle,18u#,4u#+math_axis#,4u#-math_axis#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=u; y1 = math_axis;
+z2=z3 + whatever*(dir 150); y5=y2=y1;
+rt x2=w-u; x5=x4=x3;
+top y3=h-u; bot y4=-d+u;
+draw z1--z5; draw z2--z3--z4--cycle;
+labels(1,2,3,4,5); endchar;
+
+iff known big_triangle_down:
+cmchar "\textstyle triangular join";
+beginchar(big_triangle_down,15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y1=eps; bot y3=-d; y5=y1;
+draw z1--z3--z5--cycle; % diagonals
+labels(1,3,5); endchar;
+
+iff known big_triangle_up:
+cmchar "\textstyle triangular meet";
+beginchar(big_triangle_up,15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y3=0; bot y1=-d-eps; y5=y1;
+draw z1--z3--z5--cycle; % diagonals
+labels(1,3,5); endchar;
+
+iff known big_curly_vee:
+cmchar "\textstyle big curly vee";
+beginchar(big_curly_vee,15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y1=eps; bot y3=-d; y5=y1;
+draw z1{dir -30}..{down}z3{up}..{dir 30}z5; % diagonals
+labels(1,3,5); endchar;
+
+iff known big_curly_wedge:
+cmchar "\textstyle big curly wedge";
+beginchar(big_curly_wedge,15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y3=0; bot y1=-d-eps; y5=y1;
+draw z1{dir 30}..{up}z3{down}..{dir -30}z5; % diagonals
+labels(1,3,5); endchar;
+
+iff known big_sq_cap:
+cmchar "\textstyle square set intersection sign";
+beginchar(big_sq_cap,15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z2---z1---z5---z4; % stems and bar
+labels(1,2,4,5); endchar;
+
+iff known big_box:
+cmchar "\textstyle box sign";
+beginchar(big_box,15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z1---z2---z4---z5---cycle; % stems and bar
+labels(1,2,4,5); endchar;
+
+iff known big_parallel:
+cmchar "\textstyle big parallelism sign";
+beginchar(big_parallel,8u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z1---z2; % left line
+draw z4---z5; % right line
+labels(1,2,4,5); endchar;
+
+iff known big_interleave:
+cmchar "\textstyle big interleaving sign";
+beginchar(big_interleave,9u#,0,10/6dh#);
+adjust_fit(u#,u#); pickup pencircle scaled stem;
+lft x1=hround 0; x2=x1;
+top y1=eps; bot y2=-d;
+x4=x5=x1+2hround(.5w);
+y4=y1;y5=y2;
+x6=x7=x1+hround(.5w);
+y6=y1;y7=y2;
+draw z1---z2; % left line
+draw z4---z5; % right line
+draw z6---z7; % middle line
+labels(1,2,4,5,6,7); endchar;
+
+iff known big_triangle_down:
+cmchar "\displaystyle triangular join";
+beginchar(big_triangle_down+8,20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y1=eps; bot y3=-d; y5=y1;
+draw z1--z3--z5--cycle; % diagonals
+labels(1,3,5); endchar;
+
+iff known big_triangle_up:
+cmchar "\displaystyle triangular meet";
+beginchar(big_triangle_up+8,20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y3=0; bot y1=-d-eps; y5=y1;
+draw z1--z3--z5--cycle; % diagonals
+labels(1,3,5); endchar;
+
+iff known big_curly_vee:
+cmchar "\displaystyle big curly vee";
+beginchar(big_curly_vee+8,20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y1=eps; bot y3=-d; y5=y1;
+draw z1{dir -30}..{down}z3{up}..{dir 30}z5; % diagonals
+labels(1,3,5); endchar;
+
+iff known big_curly_wedge:
+cmchar "\displaystyle big curly wedge";
+beginchar(big_curly_wedge+8,20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u-eps; x3=w-x3; x5=w-x1;
+top y3=0; bot y1=-d-eps; y5=y1;
+draw z1{dir 30}..{up}z3{down}..{dir -30}z5; % diagonals
+labels(1,3,5); endchar;
+
+iff known big_sq_cap:
+cmchar "\displaystyle square set union sign";
+beginchar(big_sq_cap+8,20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z2---z1---z5---z4; % stems and bar
+labels(1,2,4,5); endchar;
+
+iff known big_box:
+cmchar "\displaystyle box sign";
+beginchar(big_box+8,20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z1---z2---z4---z5---cycle; % stems and bar
+labels(1,2,4,5); endchar;
+
+iff known big_parallel:
+cmchar "\displaystyle big parallelism sign";
+beginchar(big_parallel+8,10u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x4=x5=w-x1;
+top y1=eps; bot y2=-d; y4=y2; y5=y1;
+draw z1---z2; % left line
+draw z4---z5; % right line
+labels(1,2,4,5); endchar;
+
+iff known big_interleave:
+cmchar "\displaystyle big interleaving sign";
+beginchar(big_interleave+8,13u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(u#,u#); pickup pencircle scaled curve;
+lft x1=hround 0; x2=x1;
+top y1=eps; bot y2=-d;
+x4=x5=x1+2hround(.5w);
+y4=y1;y5=y2;
+x6=x7=x1+hround(.5w);
+y6=y1;y7=y2;
+draw z1---z2; % left line
+draw z4---z5; % right line
+draw z6---z7; % middle line
+labels(1,2,4,5,6,7); endchar;
+
+iff known big_n_plus:
+cmchar "\textstyle multiset intersection sign";
+beginchar(big_n_plus,15u#,0,10/6dh#);
+adjust_fit(0,0); pickup pencircle scaled stem;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+y8=y9=.47[y1,y3]; x8=w-x9=x1+2stem+eps; x6=x7=x3;
+.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7; % enclosed `$+$'
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+iff known big_ll_bracket:
+cmchar "\big left semantic bracket";
+beginchar(big_ll_bracket,8u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(1.5u#,0); left_semantic_bracket(rule_thickness,true,true); endchar;
+
+iff known big_ll_bracket:
+cmchar "\Big left semantic bracket";
+beginchar(big_ll_bracket+1,8.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(2u#,0); left_semantic_bracket(.25[rule_thickness,stem],true,true); endchar;
+
+iff known big_ll_bracket:
+cmchar "\bigg left semantic bracket";
+beginchar(big_ll_bracket+2,9u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(2.5u#,0); left_semantic_bracket(.5[rule_thickness,stem],true,true); endchar;
+
+iff known big_ll_bracket:
+cmchar "\Bigg left semantic bracket";
+beginchar(big_ll_bracket+3,9.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,0); left_semantic_bracket(.75[rule_thickness,stem],true,true); endchar;
+
+iff known big_ll_bracket:
+cmchar "Extensible left semantic bracket---top";
+beginchar(big_ll_bracket+4,10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,0); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+top y1=h-1; y2=-d-eps; lft x1l=lft x2l=hround(2.5u-.5stem);
+filldraw stroke z1e--z2e; % stem1
+pos3(stem,90); pos4(stem,90);
+x3=x1l; rt x4=hround(w-.75u+.5stem); y3r=y4r=y1;
+filldraw stroke z3e--z4e; % upper bar
+pos7(stem,0); pos8(stem,0);
+y7=y1; y8=y2; x7=x8=0.5(x1+x4);
+filldraw stroke z7e--z8e; % stem2
+penlabels(1,2,3,4,7,8); endchar;
+
+iff known big_ll_bracket:
+cmchar "Extensible left semantic bracket---bottom";
+beginchar(big_ll_bracket+5,10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,0); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+eps; bot y2=1-d; lft x1l=lft x2l=hround(2.5u-.5stem);
+filldraw stroke z1e--z2e; % stem1
+pos5(stem,90); pos6(stem,90);
+x5=x1l; rt x6=hround(w-.75u+.5stem); y5l=y6l=y2;
+filldraw stroke z5e--z6e; % lower bar
+pos7(stem,0); pos8(stem,0);
+y7=y1; y8=y2; x7=x8=0.5(x1+x6);
+filldraw stroke z7e--z8e; % stem2
+penlabels(1,2,5,6); endchar;
+
+iff known big_ll_bracket:
+cmchar "Extensible left semantic bracket---extension module";
+beginchar(big_ll_bracket+6,10u#,0,dh#);
+adjust_fit(4u#,0); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+1+eps; bot y2=-d-1-eps; lft x1l=lft x2l=hround(2.5u-.5stem);
+filldraw stroke z1e--z2e; % stem1
+rt x6=hround(w-.75u+.5stem);
+pos7(stem,0); pos8(stem,0);
+y7=y1; y8=y2; x7=x8=0.5(x1+x6);
+filldraw stroke z7e--z8e; % stem2
+penlabels(1,2,7,8); endchar;
+
+iff known big_n_plus:
+cmchar "\displaystyle multiset intersection sign";
+beginchar(big_n_plus+8,20u#,0,14/6dh#); padded 1/6dh#;
+adjust_fit(0,0); pickup pencircle scaled curve;
+lft x1=hround u; x2=x1; x3=w-x3; x4=x5=w-x1;
+top y3=0; bot y1=-d-eps; y2=y4=2/3[y1,y3]; y5=y1;
+draw z1---z2...z3...z4---z5; % stems and cap
+y8=y9=.47[y1,y3]; x8=w-x9=x1+2curve+eps; x6=x7=x3;
+.5[y6,y7]=y8; y7-y6=x9-x8; draw z8--z9; draw z6--z7; % enclosed `$+$'
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+iff known big_rr_bracket:
+cmchar "\big right semantic bracket";
+beginchar(big_rr_bracket,8u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(0,1.5u#); right_semantic_bracket(rule_thickness,true,true); endchar;
+
+iff known big_rr_bracket:
+cmchar "\Big right semantic bracket";
+beginchar(big_rr_bracket+1,8.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,2u#); right_semantic_bracket(.25[rule_thickness,stem],true,true); endchar;
+
+iff known big_rr_bracket:
+cmchar "\bigg right semantic bracket";
+beginchar(big_rr_bracket+2,9u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(0,2.5u#); right_semantic_bracket(.5[rule_thickness,stem],true,true); endchar;
+
+iff known big_rr_bracket:
+cmchar "\Bigg right semantic bracket";
+beginchar(big_rr_bracket+3,9.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(0,3u#); right_semantic_bracket(.75[rule_thickness,stem],true,true); endchar;
+
+iff known big_rr_bracket:
+cmchar "Extensible right semantic bracket---top";
+beginchar(big_rr_bracket+4,10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,4u#); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+top y1=h-1; y2=-d-eps; rt x1r=rt x2r=hround(w-2.5u+.5stem);
+filldraw stroke z1e--z2e; % stem1
+pos3(stem,90); pos4(stem,90);
+x3=x1r; lft x4=hround(.75u-.5stem); y3r=y4r=y1;
+filldraw stroke z3e--z4e; % upper bar
+pos7(stem,0); pos8(stem,0);
+y7=y1; y8=y2; x7=x8=0.5(x1+x4);
+filldraw stroke z7e--z8e; % stem2
+penlabels(1,2,3,4,7,8); endchar;
+
+iff known big_rr_bracket:
+cmchar "Extensible right semantic bracket---bottom";
+beginchar(big_rr_bracket+5,10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,4u#); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+eps; bot y2=1-d; rt x1r=rt x2r=hround(w-2.5u+.5stem);
+filldraw stroke z1e--z2e; % stem1
+pos5(stem,90); pos6(stem,90);
+x5=x1r; lft x6=hround(.75u-.5stem); y5l=y6l=y2;
+filldraw stroke z5e--z6e; % lower bar
+pos7(stem,0); pos8(stem,0);
+y7=y1; y8=y2; x7=x8=0.5(x1+x6);
+filldraw stroke z7e--z8e; % stem2
+penlabels(1,2,5,6,7,8); endchar;
+
+iff known big_rr_bracket:
+cmchar "Extensible right semantic bracket---extension module";
+beginchar(big_rr_bracket+6,10u#,0,dh#);
+adjust_fit(0,4u#); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+1+eps; bot y2=-d-1-eps; rt x1r=rt x2r=hround(w-2.5u+.5stem);
+filldraw stroke z1e--z2e; % stem1
+lft x6=hround(.75u-.5stem);
+pos7(stem,0); pos8(stem,0);
+y7=y1; y8=y2; x7=x8=0.5(x1+x6);
+filldraw stroke z7e--z8e; % stem2
+penlabels(1,2,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryba.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryba.mf
new file mode 100644
index 00000000000..6f9a1d8d0d3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryba.mf
@@ -0,0 +1,121 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmaryba.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "49457 121 567 4939",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "none",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the font out of alans.mf and galileo.mf.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+% This is the base file for the St Mary's Road symbol font, stmaryrd.mf.
+
+% The following stolen from the AMS bsymbols.mf file:
+
+def char_negate(suffix c,t,b) = %c is center point; t is top point; b is bottom
+pickup rule.nib;
+w-x.t=x.b; y.t-y.c=y.c-y.b; draw z.t--z.b;
+penlabels(t,c,b); enddef;
+def char_center(suffix c) = % find center of type character
+x.c=w/2; y.c=.5[-d,h]; enddef;
+
+% The command to draw semantic brackets:
+
+def left_semantic_bracket(expr breadth,do_top,do_bot) =
+ pickup crisp.nib;
+ numeric thickness; thickness=hround breadth;
+ pos1(thickness,0); pos2(thickness,0);
+ top y1=h; bot y2=1-d; lft x1l=lft x2l=hround(2.5u-.5thickness);
+ filldraw stroke z1e--z2e; % stem1
+ pos3(thickness,90); pos4(thickness,90);
+ pos5(thickness,90); pos6(thickness,90);
+ x3=x5=x1l; rt x4=rt x6=hround(w-.75u+.5thickness);
+ y3r=y4r=y1; y5l=y6l=y2;
+ if do_top: filldraw stroke z3e--z4e; fi % upper bar
+ if do_bot: filldraw stroke z5e--z6e; fi % lower bar
+ pos7(thickness,0); pos8(thickness,0);
+ y7=y1; y8=y2; x7=x8=x1+hround(0.5(w - 3.25u));
+ filldraw stroke z7e--z8e; % stem2
+ penlabels(1,2,3,4,5,6,7,8); enddef;
+
+def right_semantic_bracket(expr breadth,do_top,do_bot) =
+ pickup crisp.nib;
+ numeric thickness; thickness=hround breadth;
+ pos1(thickness,0); pos2(thickness,0);
+ top y1=h; bot y2=1-d; rt x1r=rt x2r=hround(w-2.5u+.5thickness);
+ filldraw stroke z1e--z2e; % stem1
+ pos3(thickness,90); pos4(thickness,90);
+ pos5(thickness,90); pos6(thickness,90);
+ x3=x5=x1r; lft x4=lft x6=hround(.75u-.5thickness);
+ y3r=y4r=y1; y5l=y6l=y2;
+ if do_top: filldraw stroke z3e--z4e; fi % upper bar
+ if do_bot: filldraw stroke z5e--z6e; fi % lower bar
+ pos7(thickness,0); pos8(thickness,0);
+ y7=y1; y8=y2; x7=x8=x1-hround(0.5(w - 3.25u));
+ filldraw stroke z7e--z8e; % stem2
+ penlabels(1,2,3,4,5,6,7,8); enddef;
+
+% The command to draw a circle (with free symmetry hacks):
+
+def begincircle (expr n) =
+ beginarithchar(n);
+ pickup rule.nib;
+ if .5w <> good.x .5w: change_width; fi
+ lft x6=hround u-eps; x2=w-x6; y2=math_axis; y8-y2 = .5(x2-x6);
+ circle_points; draw_circle % circle
+enddef;
+
+% And to draw a box (with free symmetry hacks):
+
+def beginbox (expr n) =
+ beginarithchar(n);
+ pickup rule.nib;
+ if .5w <> good.x .5w: change_width; fi
+ lft x1=hround 1.5u-eps; x2=w-x1; x3=x2; x4=x1;
+ y1-y4 = x2-x1; .5[y1,y4]=math_axis; y1=y2; y3=y4;
+ draw z1--z2--z3--z4--cycle; % box
+enddef
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmarych.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmarych.mf
new file mode 100644
index 00000000000..6bb836a24f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmarych.mf
@@ -0,0 +1,221 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmarych.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "17234 221 693 7683",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "none",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the file out of which.mf, which performed a
+%%% similar job for alans.mf and galileo.mf.
+%%%
+%%% 21 May 1991, v1.01: Renamed some of the characters to be more AMSy.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+% Defines the character positions and extension information for the St
+% Mary's Road font, stmaryrd.mf.
+
+short_left_arrow := 0;
+short_right_arrow := 1;
+short_up_arrow := 2;
+short_down_arrow := 3;
+
+Y_up := 4;
+Y_down := 5;
+Y_left := 6;
+Y_right := 7;
+
+var_curly_vee := 8;
+var_curly_wedge := 9;
+
+minus_o := 10;
+bar_o := 11;
+
+sslash := 12;
+bbslash := 13;
+
+moo := 14;
+
+var_o_times := 15;
+var_o_ast := 16;
+var_o_bar := 17;
+var_o_dot := 18;
+var_o_slash := 19;
+var_o_bslash := 20;
+var_o_circle := 21;
+var_o_plus := 22;
+var_o_minus := 23;
+
+box_ast := 24;
+box_bar := 25;
+box_dot := 26;
+box_slash := 27;
+box_bslash := 28;
+box_circle := 29;
+box_box := 30;
+box_empty := 31;
+
+lightning := 32;
+merge := 33;
+var_times := 34;
+
+fat_semi := 35;
+
+ssw_arrow := 36;
+sse_arrow := 37;
+
+curly_wedge_up_arrow := 38;
+curly_wedge_down_arrow := 39;
+
+fat_slash := 40;
+fat_bslash := 41;
+
+l_bag := 42;
+r_bag := 43;
+
+var_big_circ := 44;
+
+left_right_arrow_eq := 45;
+
+curly_vee_down_arrow := 46;
+curly_vee_up_arrow := 47;
+
+nnw_arrow := 48;
+nne_arrow := 49;
+
+left_slice := 50;
+right_slice := 51;
+
+var_o_less_than := 52;
+var_o_greater_than := 53;
+var_o_vee := 54;
+var_o_wedge := 55;
+
+tall_oblong := 56;
+interleave := 57;
+
+o_bar := 58;
+o_bslash := 59;
+o_less_than := 60;
+o_greater_than := 61;
+o_vee := 62;
+o_wedge := 63;
+
+oblong := 64;
+
+in_plus := 65;
+ni_plus := 66;
+n_plus := 67;
+sub_set_plus := 68;
+sup_set_plus := 69;
+sub_set_plus_eq := 70;
+sup_set_plus_eq := 71;
+
+L_bag := 72;
+R_bag := 73;
+ll_bracket := 74;
+rr_bracket := 75;
+ll_parenthesis := 76;
+rr_parenthesis := 77;
+
+bin_ampersand := 78;
+bin_dnasrepma := 79;
+
+triangle_left_eq_slant := 80;
+triangle_right_eq_slant := 81;
+n_triangle_left_eq_slant := 82;
+n_triangle_right_eq_slant := 83;
+
+ll_floor := 84;
+rr_floor := 85;
+
+ll_ceil := 86;
+rr_ceil := 87;
+
+arrow_not := 88;
+Arrow_not := 89;
+
+Maps_to_char := 90;
+maps_from_char := 91;
+Maps_from_char := 92;
+
+left_right_arrow_triangle := 93;
+left_arrow_triangle := 94;
+right_arrow_triangle := 95;
+
+big_triangle_down := 96;
+big_triangle_up := 97;
+big_curly_vee := 98;
+big_curly_wedge := 99;
+big_sq_cap := 100;
+big_box := 101;
+big_parallel := 102;
+big_interleave := 103;
+
+big_n_plus := 112;
+
+big_ll_bracket := 113;
+big_rr_bracket := 121;
+
+charlist big_sq_cap: big_sq_cap+8;
+charlist big_box: big_box+8;
+charlist big_parallel: big_parallel+8;
+charlist big_interleave: big_interleave+8;
+charlist big_n_plus: big_n_plus+8;
+charlist big_triangle_down: big_triangle_down+8;
+charlist big_triangle_up: big_triangle_up+8;
+charlist big_curly_vee: big_curly_vee+8;
+charlist big_curly_wedge: big_curly_wedge+8;
+
+charlist big_ll_bracket:
+ big_ll_bracket+1: big_ll_bracket+2: big_ll_bracket+3: big_ll_bracket+4;
+extensible big_ll_bracket+4:
+ big_ll_bracket+4,0,big_ll_bracket+5,big_ll_bracket+6;
+charlist big_rr_bracket:
+ big_rr_bracket+1: big_rr_bracket+2: big_rr_bracket+3: big_rr_bracket+4;
+extensible big_rr_bracket+4:
+ big_rr_bracket+4,0,big_rr_bracket+5,big_rr_bracket+6;
+
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryjg.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryjg.mf
new file mode 100644
index 00000000000..c5ff3fa43bb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryjg.mf
@@ -0,0 +1,600 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmaryjg.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "58461 600 2192 23548",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "none",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the file out of galileo.mf.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+% These are Jeremy's symbols for the St Mary's Road font, stmaryrd.mf.
+
+iff known short_left_arrow: cmchar "Short leftwards arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(short_left_arrow,14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+.5rule_thickness=hround(w-u); lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9);
+endchar;
+
+iff known short_right_arrow: cmchar "Short rightwards arrow";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(short_right_arrow,14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90); pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9);
+endchar;
+
+iff known short_up_arrow: cmchar "Upward arrow";
+beginchar(short_up_arrow,9u#,
+ if monospace: 27/7u#+math_axis#,27/7u#-math_axis#
+ else: 6u#+math_axis#,6u#-math_axis#
+ fi);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=3u+eps;
+y3=y4=y0-.24asc_height-eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known short_down_arrow: cmchar "Downward arrow";
+beginchar(short_down_arrow,9u#,
+ if monospace: 27/7u#+math_axis#,27/7u#-math_axis#
+ else: 6u#+math_axis#,6u#-math_axis#
+ fi);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known Y_up: cmchar "Fork (upside-down Y)";
+beginchar(Y_up,10u#,6u#+math_axis#,5u#-math_axis#); pickup rule.nib;
+adjust_fit(0,0);
+x1=.5w; top y1=h-u;
+x2=x1; y2=math_axis;
+lft x3=u; rt x4=w-u; bot y3 = -d+u; y4=y3;
+draw z1--z2; draw z3--z2--z4;
+labels(1,2,3,4); endchar;
+
+iff known Y_down: cmchar "Join (Y)";
+beginchar(Y_down,10u#,5u#+math_axis#,6u#-math_axis#); pickup rule.nib;
+adjust_fit(0,0);
+x1=.5w; bot y1=-d+u;
+x2=x1; y2=math_axis;
+lft x3=u; rt x4=w-u; top y3 = h-u; y4=y3;
+draw z1--z2; draw z3--z2--z4;
+labels(1,2,3,4); endchar;
+
+iff known Y_left: cmchar "Leftwards pointing Y -<";
+beginchar(Y_left,11u#,5u#+math_axis#,5u#-math_axis#); pickup rule.nib;
+adjust_fit(0,0);
+lft x1=hround u; x2=6u; y1=y2=vround math_axis;
+rt x3=rt x4=hround(w-u); top y3=vround(h-u)+eps; bot y4=vround(u-d)+eps;
+draw z1--z2; draw z3--z2--z4;
+labels(1,2,3,4); endchar;
+
+iff known Y_right: cmchar "Rightwards pointing Y >-";
+beginchar(Y_right,11u#,5u#+math_axis#,5u#-math_axis#); pickup rule.nib;
+adjust_fit(0,0);
+rt x1=hround(w-u); x2=5u; y1=y2=vround math_axis;
+lft x3=lft x4=hround u; top y3=vround(h-u)+eps; bot y4=vround(u-d)+eps;
+draw z1--z2; draw z3--z2--z4;
+labels(1,2,3,4); endchar;
+
+iff known var_curly_vee: cmchar "Zipwith symbol";
+beginchar(var_curly_vee,12u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x2=good.x .5w; w:=r:=2x2;
+lft x1=0; x3=w-x1;
+top y1=h; bot y2=-d-o; y3=y1;
+x4=x2; y4=x_height;
+draw z1{z4-z1}..{down}z2; % left arm
+draw z3{z4-z3}..{down}z2; % right arm
+labels(1,2,3,4); endchar;
+
+iff known var_curly_wedge: cmchar "Upside-down zipwith symbol";
+beginchar(var_curly_wedge,12u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x2=good.x .5w; w:=r:=2x2;
+lft x1=0; x3=w-x1;
+top y2=h; bot y1=-d-o; y3=y1;
+x4=x2; y4=h-(x_height+d);
+draw z1{z4-z1}..{up}z2; % left arm
+draw z3{z4-z3}..{up}z2; % right arm
+labels(1,2,3,4); endchar;
+
+iff known minus_o: cmchar "Above sign"; % Parts nicked from "plus"
+beginchar(minus_o,14u#,5u#+math_axis#,5u#-math_axis#); pickup rule.nib;
+adjust_fit(0,0);
+%x11=x12=good.x .5w; top y11=h+eps; .5[y11,y12]=math_axis;
+lft x13=hround u-eps; x14=w-x13; y13=y14=math_axis;
+%draw z11--z12; % stem
+draw z13--z14; % crossbar
+top y8=vround h-u-eps; y8-math_axis = math_axis-y4; x4=.5w; .5(y8-y4) = x2-x4;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8,13,14); endchar;
+
+iff known bar_o: cmchar "Beside sign";
+beginchar(bar_o,10u#,6u#+math_axis#,6u#-math_axis#); pickup rule.nib;
+adjust_fit(0,0);
+x11=x12=good.x .5w; top y11=h+eps; .5[y11,y12]=math_axis;
+%lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z11--z12; % stem
+%draw z3--z4; % crossbar
+lft x6=hround u; x2=w-x6; y2=math_axis; y8-y2 = .5(x2-x6);
+circle_points; draw_circle; % circle
+penlabels(1,2,3,4,5,6,7,8,11,12); endchar;
+
+iff known sslash: cmchar "Double forwards slash";
+beginchar(sslash,9u#+slash_separation#,body_height#, paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround u-eps; bot y4=bot y2=-d-eps;
+rt x3=hround(w-u)+eps; top y3=top y1= h+eps;
+x1=x3-hround slash_separation;
+x4=x2+hround slash_separation;
+draw z1--z2; draw z3--z4;
+penlabels(1,2,3,4);
+endchar;
+
+iff known bbslash: cmchar "Double backwards slash";
+beginchar(bbslash,9u#+slash_separation#,body_height#, paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround u-eps; bot y3=bot y1=-d-eps;
+rt x3=hround(w-u)+eps; top y4=top y2= h+eps;
+x1=x3-hround slash_separation;
+x4=x2+hround slash_separation;
+draw z1--z2; draw z3--z4;
+penlabels(1,2,3,4);
+endchar;
+
+iff known moo: cmchar "Moo (Chinese for `tree')";
+beginarithchar(moo); pickup rule.nib;
+if .5w <> good.x .5w: change_width; fi
+x1= .5w; y1-y3=y3-y7;
+lft x3=hround 2u-eps; x4=w-x3; y3=y4=math_axis;
+z2 = .5[z3,z4];
+lft x5=hround 2u-eps; x6=w-x5; y6=y5=.3[y7,y3];
+x7 = .4[x5,x1]; x8=w-x7; bot y7 = vround -o; y8=y7;
+draw z1--z2{down}..z7{left}..z5; % left leg
+draw z1--z2{down}..z8{right}..z6; % right leg
+draw z3--z4; % crossbar
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_times: cmchar "Circular circle-times operator";
+begincircle(var_o_times);
+draw z1--z5; draw z3--z7; % diagonals
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_ast: cmchar "Circular circle-asterisk operator";
+begincircle(var_o_ast);
+z0=.5[z2,z6]; % centre of circle
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+for d=-150 step 60 until 150: z[d]=z0+.7dir d scaled (y8-y2); % ie scaled radius
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150,1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_bar: cmchar "Circular circle-bar operator";
+begincircle(var_o_bar);
+draw z4--z8; % bar
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_dot: cmchar "Circle-dot operator";
+begincircle(var_o_dot);
+fill fullcircle scaled(1.3dot_size+eps) shifted(.5[z4,z8]); % dot
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_slash: cmchar "Circular circle-slash operator";
+begincircle(var_o_slash);
+draw z1--z5; % diagonal
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_bslash: cmchar "Circular circle-backslash operator";
+begincircle(var_o_bslash);
+draw z3--z7; % diagonal
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_circle: cmchar "Circular circle-circle operator";
+begincircle(var_o_circle);
+z0=.5[z2,z6]; % centre of circle
+for i = 1 upto 8:
+ z[i+8]=.5[z0,z[i]];
+endfor;
+draw z16{right}...z9{z10-z16}...z10{down}...z11{z12-z10}...z12{left}
+ ...z13{z14-z12}...z14{up}...z15{z16-z14}...cycle; % inner circle
+labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+iff known var_o_plus: cmchar "Circular circle-plus operator";
+begincircle(var_o_plus);
+draw z2--z6; draw z4--z8; % bar and stem
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known var_o_minus: cmchar "Circular circle-minus operator";
+begincircle(var_o_minus);
+draw z2--z6; % bar
+labels(1,2,3,4,5,6,7,8); endchar;
+
+% Changed hround to floor in the following to make sure that x1<>x2,
+% otherwise theta ends up being angle(0,0). AJ.
+
+iff known box_ast: cmchar "Box_ast operator";
+beginbox(box_ast);
+z0=.5[z1,z3];
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+for d=-150 step 60 until 150: z[d]=z0+.7dir d scaled .5(x2-x1); % ie scaled `radius'
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150,1,2,3,4); endchar;
+
+iff known box_bar: cmchar "Box_bar operator";
+beginbox(box_bar);
+draw .5[z1,z2]--.5[z3,z4];
+labels(1,2,3,4); endchar;
+
+iff known box_dot: cmchar "Box_dot operator";
+beginbox(box_dot);
+fill fullcircle scaled(1.3dot_size+eps) shifted(.5[z1,z3]); % dot
+labels(1,2,3,4); endchar;
+
+iff known box_slash: cmchar "Box_slash operator";
+beginbox(box_slash);
+draw z2--z4;
+labels(1,2,3,4); endchar;
+
+iff known box_bslash: cmchar "Box_bslash operator";
+beginbox(box_bslash);
+draw z1--z3;
+labels(1,2,3,4); endchar;
+
+iff known box_circle: cmchar "Box_circle operator";
+beginarithchar(box_circle);
+if .5w <> good.x .5w: change_width; fi
+pickup rule.nib; autorounded;
+lft x11=hround 1.5u; x12=w-x11; x13=x12; x14=x11;
+y11-y14 = x12-x11; .5[y11,y14]=math_axis; y11=y12; y13=y14;
+lft x6=hround .25[x11,x12]; x2=w-x6; y2=math_axis; y8-y2 = .5(x2-x6);
+circle_points; draw_circle; % circle
+draw z11--z12--z13--z14--cycle; % box
+labels(11,12,13,14); endchar;
+
+iff known box_box: cmchar "Box_box operator";
+beginbox(box_box);
+z0=.5[z1,z3];
+for i = 1 upto 4: z[i+4]=.4[z0,z[i]]; endfor
+draw z5--z6--z7--z8--cycle;
+labels(1,2,3,4); endchar;
+
+iff known box_empty: cmchar "Box operator";
+beginbox(box_empty);
+labels(1,2,3,4); endchar; % like LaTeX Box, only with less side bearing
+
+iff known lightning: cmchar "Lightning strike"; % Adapted from sswarrow
+beginchar(lightning,11u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1+.5rule_thickness=hround(w-u); lft x0=hround 3u;
+y1+.5rule_thickness=h; bot y0=-d;
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta); pos2(rule_thickness,-90+theta);
+pos3(bar,-180+theta); pos4(bar,-180+theta);
+ %y3=y0; x4=x0; x3-x0=y4-y0=delta+eps;
+y10=y0; x11=x0; x10-x0=y11-y0=delta+eps; % Can now do arrows of any angle
+z3=z10 rotatedaround(z0,theta-45);
+z4=z11 rotatedaround(z0,theta-45);
+pos5(bar,theta+45); z5l=z0; pos6(bar,theta-45); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ % --z2l---z1l..z1r---z2r
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead
+z20=.45[z1,z2];
+z21=z22 + .55(z2-z1);
+x22=x1-3u; y22=y1;
+pickup rule.nib; draw z2--z20--z21--z22; % stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known merge: cmchar "Merge symbol";
+beginchar(merge,16u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.1u; x3 = .65[x1,x6]; x2 = .5[x1,x3];
+y2=h+o; bot y1=0; y3 = y1;
+x6=w-x1; y6=y1;
+z4-z1 = z5-z2 = z6-z3;
+draw z1---z2---z3; % left-hand
+draw z4--z5--z6; % right-hand
+labels(1,2,3,4,5,6); endchar;
+
+iff known var_times: cmchar "Cartesian Product operator"; % bits of this taken
+beginchar(var_times,10u#,asc_height#,0); % from "exists"
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x2=x3=w-x1; x4=x1;
+top y1=h; bot y4=0; y2=y1; y3=y4;
+draw z1--z3; draw z2--z4; % diagonals
+labels(1,2,3,4); endchar;
+
+iff known fat_semi: cmchar "Fat semicolon";
+beginchar(fat_semi,6u#,0.5[x_height#,asc_height#],comma_depth#);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x3=lft x7=hround u; rt x1=rt x5=hround(w-u); x2=x4=x6=x8=w/2;
+top y4=h; bot y6=0; y4-y2=y8-y6=x1-x3; y1=y3=0.5[y2,y4];
+y5=y7=0.5[y6,y8]; lft x9=2u; bot y9=-d;
+draw z1..z2..z3..z4..cycle;
+draw z5{down}..z6..z7..z8..z5{down}..{curl 0}z9;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+iff known ssw_arrow: cmchar "Southsouthwest arrow";
+beginchar(ssw_arrow,11u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1+.5rule_thickness=hround(w-u); lft x0=hround 3u; % This 3u used to be a u in
+y1+.5rule_thickness=h; bot y0=-d; % the program for swarrow.
+ % 3u (with width 11u) gives
+ % arrow parallel to langle.
+numeric theta,delta; theta=angle(z1-z0); delta=3u++.24asc_height;
+if abs(theta-45)<2.5: theta:=45; y1:=y0+x1-x0; fi % near-45$^\circ$ angle
+pos1(rule_thickness,-90+theta); pos2(rule_thickness,-90+theta);
+pos3(bar,-180+theta); pos4(bar,-180+theta);
+ %y3=y0; x4=x0; x3-x0=y4-y0=delta+eps;
+y10=y0; x11=x0; x10-x0=y11-y0=delta+eps; % Can now do arrows of any angle
+z3=z10 rotatedaround(z0,theta-45);
+z4=z11 rotatedaround(z0,theta-45);
+pos5(bar,theta+45); z5l=z0; pos6(bar,theta-45); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known sse_arrow: cmchar "Southsoutheast arrow";
+beginchar(sse_arrow,11u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+x1-.5rule_thickness=hround u; rt x0=hround(w-3u);
+y1+.5rule_thickness=h; bot y0=-d;
+numeric theta,delta; theta=angle(z0-z1); delta=3u++.24asc_height;
+if abs(theta+45)<2.5: theta:=-45; y1:=y0+x0-x1; fi % near-45$^\circ$ angle
+pos1(rule_thickness,90+theta); pos2(rule_thickness,90+theta);
+pos3(bar,theta); pos4(bar,theta);
+ %x3=x0; y4=y0; y3-y0=x0-x4=delta+eps;
+x10=x0; y11=y0; y10-y0=x0-x11=delta+eps;
+z3=z10 rotatedaround(z0,theta+45);
+z4=z11 rotatedaround(z0,theta+45);
+pos5(bar,theta+225); z5l=z0; pos6(bar,theta+135); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+iff known curly_wedge_up_arrow:
+cmchar "Upwards accumulate symbol";
+beginchar(curly_wedge_up_arrow,12u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x2=good.x .5w; w:=r:=2x2;
+lft x1=0; x3=w-x1;
+bot y1=-d; top y2=h+o; y3=y1;
+x4=x2; y4=h-(x_height+d);
+pickup crisp.nib;
+pos11(rule_thickness,0); pos12(rule_thickness,0); % arrow head nicked from
+pos13(bar,90); pos14(bar,90); % up_arrow
+lft x11l=hround(.5w-.5rule_thickness); y11-.5rule_thickness=-d;
+x10=x11=x12; top y10=top y2; x10-x13=x14-x10=3u+eps;
+y13=y14=y10-.24asc_height-eps;
+pos15(bar,angle(z14-z10)); z15l=z10;
+pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((x12r,-d)--(x12r,h))); y12=ypart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z12r
+ -- % ---z11r..z11l---
+ z12l--subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % arrowhead
+pickup rule.nib;
+numeric t; path p; p=z1{z4-z1}..{up}z2;
+t=xpart(p intersectiontimes((0,y12)--(w,y12)));
+draw subpath (0,t) of\\(z1{z4-z1}..{up}z2); % left arm
+draw subpath (0,t) of\\(z3{z4-z3}..{up}z2); % right arm
+penlabels(10,11,12,13,14,15,16,19);
+labels(1,2,3,4); endchar;
+
+iff known curly_wedge_down_arrow:
+cmchar "Downwards accumulate symbol";
+beginchar(curly_wedge_down_arrow,12u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup rule.nib;
+x2=good.x .5w; w:=r:=2x2;
+lft x1=0; x3=w-x1;
+bot y1=-d; top y2=h+o; y3=y1;
+x4=x2; y4=h-(x_height+d);
+pickup crisp.nib;
+numeric theta,delta; theta=angle(z4-z1); delta=3u++.24asc_height;
+pos11(rule_thickness,-90+theta); pos12(rule_thickness,-90+theta);
+pos13(bar,-180+theta); pos14(bar,-180+theta);
+lft x10=0; bot y10=-d;
+x11=w; z11=z10+whatever*(dir theta); % where the arrow stem would go
+y13a=y10; x14a=x10; x13a-x10=y14a-y10=delta+eps;
+z13=z13a rotatedaround(z10,theta-45);
+z14=z14a rotatedaround(z10,theta-45);
+pos15(bar,theta+45); z15l=z10; pos16(bar,theta-45); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes (z11l--(z11l+2(z10-z11)))); z12l=point t of p;
+filldraw z10..{z14-z19}z14r
+ --subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ --z12l
+ -- % ---z11l..z11r---
+ z12r
+ --subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % left arrowhead
+numeric theta,delta; theta=angle(z3-z4); delta=3u++.24asc_height;
+pos21(rule_thickness,90+theta); pos22(rule_thickness,90+theta);
+pos23(bar,theta); pos24(bar,theta);
+rt x20=w; bot y20=-d;
+x21=0; z21=z20+whatever*-(dir theta); % where the arrow stem would go
+x23a=x20; y24a=y20; y23a-y20=x20-x24a=delta+eps;
+z23=z23a rotatedaround(z20,theta+45);
+z24=z24a rotatedaround(z20,theta+45);
+pos25(bar,theta+225); z25l=z20; pos26(bar,theta+135); z26l=z20;
+z29=.381966[.5[z23,z24],z20];
+numeric t; path p; p=z24l{z29-z24}..z26r;
+t=xpart(p intersectiontimes (z21l--(z21l+2(z20-z21)))); z22l=point t of p;
+filldraw z20..{z24-z29}z24r
+ --subpath (0,t) of\\(z24l{z29-z24}..z26r)
+ --z22l
+ -- % ---z21l..z21r---
+ z22r
+ --subpath (t,0) of\\(z23l{z29-z23}..z25r)
+ --z23r{z29-z23}..z20 & cycle; % right arrowhead
+pickup rule.nib;
+numeric t; path p; p=z2{down}..{z1-z4}z1;
+t=xpart(p intersectiontimes(z12l--z12r));
+draw subpath (0,t) of\\(z2{down}..{z1-z4}z1); % left arm
+draw subpath (0,t) of\\(z2{down}..{z3-z4}z3); % right arm
+penlabels(10,11,12,13,14,15,16,19);
+labels(1,2,3,4); endchar;
+
+iff known fat_slash: cmchar "Fat slash";
+beginchar(fat_slash,13u#,body_height#,paren_depth#);
+numeric fatness; fatness = w-9u;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps; z4 = z1+fatness*right;
+lft x2=hround(fatness+u)+eps; bot y2=-d-eps; z3 = z2+fatness*right;
+draw z1--z2--z3--z4--z1; % diagonal
+labels(1,2); endchar;
+
+iff known fat_bslash: cmchar "Fat reverse slash";
+beginchar(fat_bslash,13u#,body_height#,paren_depth#);
+numeric fatness; fatness = w-9u;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; top y1=h+eps; z4 = z1+fatness*right;
+rt x2=hround(w-fatness-u)+eps; bot y2=-d-eps; z3 = z2+fatness*right;
+draw z1--z2--z3--z4--z1; % diagonal
+labels(1,2); endchar;
+
+iff known l_bag: cmchar "Left bag bracket";
+beginchar(l_bag,8u#,body_height#,paren_depth#);
+ % ht and dp from "left parenthesis" symbol
+adjust_fit(0,0); pickup rule.nib;
+lft x0=u; y0=h-2u;
+x1=1/2[x0,x2]; top y1=h;
+x2=2/3[x0,x3]; y2=y0;
+bot rt z3=(w-u,-d);
+draw z0..z1{right}..z2{down}..{right}z3;
+penlabels(0,1,2,3); endchar;
+
+iff known r_bag: cmchar "Right bag bracket";
+beginchar(r_bag,8u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+rt x0=w-u; y0=h-2u;
+x1=1/2[x0,x2]; top y1=h;
+x2=2/3[x0,x3]; y2=y0;
+bot lft z3=(u,-d);
+draw z0..z1{left}..z2{down}..{left}z3;
+penlabels(0,1,2,3); endchar;
+
+iff known var_big_circ: cmchar "Circular circle for copyright, etc.";
+beginchar(var_big_circ,18u#,asc_height#,desc_depth#); autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup rule.nib;
+lft x6=hround u; x2=w-x6; y2=.5[h+o,-d-o]; y8-y2 = .5(x2-x6);
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryrd.mf b/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryrd.mf
new file mode 100644
index 00000000000..44b8ac3b3e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/stmaryrd/stmaryrd.mf
@@ -0,0 +1,95 @@
+%%% ====================================================================
+%%% @METAFONT-file{
+%%% author-1 = "Jeremy Gibbons",
+%%% author-2 = "Alan Jeffrey",
+%%% version = "1.1",
+%%% date = "02 June 1992",
+%%% time = "15:06:36 BST",
+%%% filename = "stmaryrd.mf",
+%%% address-1 = "Department of Computer Science
+%%% University of Aukland
+%%% Private Bag
+%%% Aukland
+%%% New Zealand",
+%%% address-2 = "School of Cognitive and Computing Sciences
+%%% University of Sussex
+%%% Brighton BN1 9QH
+%%% UK",
+%%% telephone-1 = "+64 9 373 7599 x 5120",
+%%% telephone-2 = "+44 273 606755 x 3238",
+%%% FAX-1 = "+64 9 373 7453",
+%%% FAX-2 = "+44 273 678188",
+%%% checksum = "50004 95 506 4017",
+%%% email-1 = "jeremy@cs.aukuni.ac.nz",
+%%% email-2 = "alanje@cogs.sussex.ac.uk",
+%%% codetable = "ISO/ASCII",
+%%% keywords = "metafont symbols math fonts",
+%%% supported = "yes",
+%%% abstract = "This is part of the metafont program for
+%%% the St Mary's Road symbol font.",
+%%% docstring = "This is part of the metafont program for
+%%% the St Mary's Road symbol font. The font
+%%% contains a number of mathematical
+%%% characters which are not present in the
+%%% standard TeX and AMS symbol fonts.
+%%%
+%%% It is described in stmaryrd.tex.
+%%%
+%%% Copyright 1992 Jeremy Gibbons and Alan Jeffrey.
+%%%
+%%% The checksum field above contains a CRC-16
+%%% checksum as the first value, followed by the
+%%% equivalent of the standard UNIX wc (word
+%%% count) utility output of lines, words, and
+%%% characters. This is produced by Robert
+%%% Solovay's checksum utility.",
+%%% package = "St Mary's Road",
+%%% dependencies = "stmaryba.mf stmarych.mf stmaryjg.mf stmaryaj.mf",
+%%% }
+%%% ====================================================================
+%%%
+%%% 20 May 1991, v1.0: Created the font out of alans.mf and galileo.mf.
+%%%
+%%% 2 Jun 1992, v1.1: added the headers.
+
+% This is the driver file for the St Mary's Road symbol font, named
+% after the palatial mansion (currently under investigation by the
+% Enviromental Health Officer) where we lived, and where many of the
+% symbols were designed and discussed over a bottle of wine and some
+% halva.
+%
+% Many of the symbols are derived (or `stolen', to use the technical
+% phrase from Knuth's Computer Modern fonts, and the American
+% Mathematical Society's msam and msbm fonts. Please don't sue.
+
+% We assume the parameters have been set by whichever file called us
+% (for example stmary10.mf).
+
+% Here we steal a bit from mathsy
+
+mode_setup; font_setup;
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+
+% The parameters for slashes for reductions:
+
+slash_width := 7u; % horizontal extent of a slash
+slash_height := body_height;
+define_pixels(paren_depth); slash_depth := paren_depth;
+slash_offset := 3u; % offset of slash from arrowhead for reduction and accm
+slash_separation# := 3u#; % gap between slashes for accumulates
+
+define_pixels(slash_separation);
+
+% The input files:
+
+input stmaryba; % Various macros we need.
+input stmarych; % Defines the character positions and extension information.
+input stmaryjg; % Jeremy's symbols.
+input stmaryaj; % Alan's symbols.
+
+end
diff --git a/Master/texmf-dist/fonts/source/public/tapir/tap-enc.mf b/Master/texmf-dist/fonts/source/public/tapir/tap-enc.mf
new file mode 100644
index 00000000000..21250f8e4cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tapir/tap-enc.mf
@@ -0,0 +1,192 @@
+%%Characters used in czech and slovak
+latin_aacute:=225;
+latin_aumlaut:=228;
+latin_agrave:=oct"270";
+latin_ccaron:=232;
+latin_dcaron:=239;
+latin_eacute:=233;
+latin_ecaron:=236;
+latin_iacute:=237;
+latin_lacute:=229;
+latin_lcaron:=181;
+latin_ncaron:=242;
+latin_oacute:=243;
+latin_ocircumflex:=244;
+latin_oumlaut:=246;
+latin_rcaron:=248;
+latin_racute:=224;
+latin_scaron:=185;
+latin_tcaron:=187;
+latin_uacute:=250;
+latin_uring:=249;
+latin_uumlaut:=252;
+latin_yacute:=253;
+latin_zcaron:=190;
+latin_Aacute:=193;
+latin_Aumlaut:=196;
+latin_Agrave:=oct"230";
+latin_Ccaron:=200;
+latin_Dcaron:=207;
+latin_Eacute:=201;
+latin_Ecaron:=204;
+latin_Iacute:=205;
+latin_Lacute:=197;
+latin_Lcaron:=165;
+latin_Ncaron:=210;
+latin_Oacute:=211;
+latin_Ocircumflex:=212;
+latin_Oumlaut:=214;
+latin_Rcaron:=216;
+latin_Racute:=192;
+latin_Scaron:=169;
+latin_Tcaron:=171;
+latin_Uacute:=218;
+latin_Uring:=217;
+latin_Uumlaut:=220;
+latin_Yacute:=221;
+latin_Zcaron:=174;
+latin_hyphen_alt:=oct"234";
+sign_czech_closing:=255;
+sign_CE_opening:=254;
+sign_ogonek:=oct"235";
+sign_per_thousand:=oct"215";
+sign_french_opening:=oct"236";
+sign_french_closing:=oct"237";
+
+%%Characters used in polish
+latin_aogonek:=177;
+latin_cacute:=230;
+latin_eogonek:=234;
+latin_lstroke:=179;
+latin_nacute:=241;
+latin_sacute:=182;
+latin_zacute:=188;
+latin_zdotabove:=191;
+
+latin_Aogonek:=161;
+latin_Cacute:=198;
+latin_Eogonek:=202;
+latin_Lstroke:=163;
+latin_Nacute:=209;
+latin_Sacute:=166;
+latin_Zacute:=172;
+latin_Zdotabove:=175;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Ligtable for letters
+def okr:= kern -3u# enddef;
+def ko:= kern -.5u# enddef;
+def kc:= kern -.25u# enddef;
+def kv:= kern -.1u# enddef;
+def kz:= kern 1.5u# enddef;
+def kzz:=kern 1u# enddef;
+def kr expr t:= kern -t*u# enddef;
+
+ligtable "A": "C" kr 1.5, 198 kr 1.5, "G" kr 1.5, "O" kr 1.5, "Q" kr 1.5, "S" kr .5, 166 kr .5, "T" kr 2.5, "V" kr 3.5, "W" kr 3.5, "Y" kr 2, "b" ko, "c" ko, 230 ko, "d" ko, "e" ko, 234 ko, "g" kr 1, "o" ko, "q" ko, "s" ko, 182 ko, "t" kr 1, "u" ko, "v" kr 2, "w" kr 2, "x" kr .3, "y" kr 2, 169 kr .5, 171 kr 2.5, 185 ko, 187 kr 1, 200 kr 1.5, 211 kr 1.5, 212 kr 1.5, 214 kr 1.5, 221 kr 2, 232 ko, 233 ko, 236 ko, 239 ko, 243 ko, 246 ko, 244 ko, 249 ko, 250 ko, 252 ko, 253 kr 2;
+ligtable 161: "C" kr 1.5, 198 kr 1.5, "G" kr 1.5, "O" kr 1.5, "Q" kr 1.5, "S" kr .5, 166 kr .5, "T" kr 2.5, "V" kr 3.5, "W" kr 3.5, "Y" kr 2, "b" ko, "c" ko, 230 ko, "d" ko, "e" ko, 234 ko, "g" kr 1, "j" kr -2, "o" ko, "q" ko, "s" ko, 182 ko, "t" kr 1, "u" ko, "v" kr 2, "w" kr 2, "x" kr .3, "y" kr 2, 169 kr .5, 171 kr 2.5, 185 ko, 187 kr 1, 200 kr 1.5, 211 kr 1.5, 212 kr 1.5, 214 kr 1.5, 221 kr 2, 232 ko, 233 ko, 236 ko, 239 ko, 243 ko, 246 ko, 244 ko, 249 ko, 250 ko, 252 ko, 253 kr 2;
+ligtable 196: "C" kr 1.5, 198 kr 1.5, "G" kr 1.5, "O" kr 1.5, "Q" kr 1.5, "S" kr .5, 166 kr .5, "T" kr 2.5, "V" kr 3.5, "W" kr 3.5, "Y" kr 2, "b" ko, "c" ko, 230 ko, "d" ko, "e" ko, 234 ko, "g" kr 1, "o" ko, "q" ko, "s" ko, 182 ko, "t" kr 1, "u" ko, "v" kr 2, "w" kr 2, "x" kr .3, "y" kr 2, 169 kr .5, 171 kr 2.5, 185 ko, 187 kr 1, 200 kr 1.5, 211 kr 1.5, 212 kr 1.5, 214 kr 1.5, 221 kr 2, 232 ko, 233 ko, 236 ko, 239 ko, 243 ko, 246 ko, 244 ko, 249 ko, 250 ko, 252 ko, 253 kr 2;
+ligtable 193: "C" kr 1.5, 198 kr 1.5, "G" kr 1.5, "O" kr 1.5, "Q" kr 1.5, "S" kr .5, 166 kr .5, "T" kr 2.5, "V" kr 3.5, "W" kr 3.5, "Y" kr 2, "b" ko, "c" ko, 230 ko, "d" ko, "e" ko, 234 ko, "g" kr 1, "o" ko, "q" ko, "s" ko, 182 ko, "t" kr 1, "u" ko, "v" kr 2, "w" kr 2, "x" kr .3, "y" kr 2, 169 kr .5, 171 kr 2.5, 185 ko, 187 kr 1, 200 kr 1.5, 211 kr 1.5, 212 kr 1.5, 214 kr 1.5, 221 kr 2, 232 ko, 233 ko, 236 ko, 239 ko, 243 ko, 246 ko, 244 ko, 249 ko, 250 ko, 252 ko, 253 kr 2;
+ligtable "B": "M" kr .7, "V" kr .7, "W" kr .7, "Y" kr .5, "Z" kr .2, 172 kr .2, 175 kr .2, "g" kr 1.5, "s" kr .5, 182 kr .5, "v" kr 1, "w" kr 1, "x" kr .7, "y" kr .7, 174 kr .2, 185 kr .5, 221 kr .5 , 253 kr .7;
+ligtable "C": "C" ko, 198 ko, "G" ko, "O" ko, "Q" ko, "g" kr 2, "v" kr 1, "w" kr 1, "y" kr 2, 200 ko, 211 ko, 214 ko, 212 ko, 253 kr 2;
+ligtable 200: "C" ko, 198 ko, "G" ko, "O" ko, "Q" ko, "g" kr 2, "v" kr 1, "w" kr 1, "y" kr 2, 200 ko, 211 ko, 214 ko, 212 ko, 253 kr 2;
+ligtable 198: "C" ko, 198 ko, "G" ko, "O" ko, "Q" ko, "g" kr 2, "v" kr 1, "w" kr 1, "y" kr 2, 200 ko, 211 ko, 214 ko, 212 ko, 253 kr 2;
+ligtable "D": "A" kr 1, 177 kr 1, "J" kr 1, "M" kr .5, "T" kr 1, "V" kr 1, "W" kr 1, "X" kr 1, "Y" kr 1, "Z" kr 1, 172 kr 1, 175 kr 1, "c" ko, 230 ko, "d" ko, "e" ko, 234 ko, "g" kr 2, "o" ko, "q" ko, "s" kr .3, 182 kr .3, 171 kr 1, 174 kr 1, 185 kr .3, 193 kr 1, 196 kr 1, 221 kr 1, 232 ko, 239 ko, 236 ko, 233 ko, 243 ko, 246 ko, 244 ko;
+ligtable 207: "A" kr 1, 177 kr 1, "J" kr 1, "M" kr .5, "T" kr 1, "V" kr 1, "W" kr 1, "X" kr 1, "Y" kr 1, "Z" kr 1, 172 kr 1, 175 kr 1, "c" ko, 230 ko, "d" ko, "e" ko, 234 ko, "g" kr 2, "o" ko, "q" ko, "s" kr .3, 171 kr 1, 174 kr 1, 185 kr .3, 193 kr 1, 196 kr 1, 221 kr 1, 232 ko, 239 ko, 236 ko, 233 ko, 243 ko, 246 ko, 244 ko;
+ligtable "E": "C" kr 1, 198 kr 1, "G" kr 1, "O" kr 1, "Q" kr 1, "g" kr 1.5, "v" kr 1.5, "w" kr 1.5, "y" kr 1.5, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 253 kr 1.5;
+ligtable 201: "C" kr 1, 198 kr 1, "G" kr 1, "O" kr 1, "Q" kr 1, "g" kr 1.5, "v" kr 1.5, "w" kr 1.5, "y" kr 1.5, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 253 kr 1.5;
+ligtable 202: "C" kr 1, 198 kr 1, "G" kr 1, "O" kr 1, "Q" kr 1, "g" kr 1.5, "j" kr -2, "v" kr 1.5, "w" kr 1.5, "y" kr 1.5, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 253 kr 1.5;
+ligtable 204: "C" kr 1, 198 kr 1, "G" kr 1, "O" kr 1, "Q" kr 1, "g" kr 1.5, "v" kr 1.5, "w" kr 1.5, "y" kr 1.5, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 253 kr 1.5;
+ligtable "F": "A" kr 2, 161 kr 2, "C" kr 1, 198 kr 1, "G" kr 1, "J" kr 4, "M" kr 1, "O" kr 1, "Q" kr 1, "a" kr 1.8, 177 kr 1.8, "c" kr 1.5, 230 kr 1.5, "d" kr 1.5, "e" kr 1.5, 234 kr 1.5, "f" kr .5, "g" kr 2, "i" kr 1.5, "j" kr 1.5, "m" kr 1, "n" kr 1, 241 kr 1, "o" kr 1.5, "p" kr 1, "q" kr 1.5, "r" kr 1, "s" kr 1.5, 182 kr 1.5, "t" kr 1, "u" kr 1, "v" kr 1, "w" kr 1, "x" kr 1, "y" kr 1, "z" kr 1, 185 kr 1, 187 kr 1, 188 kr 1, 190 kr 1, 191 kr 1, 193 kr 2, 196 kr 2, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 224 kr 1, 225 kr 1.8, 228 kr 1.8, 232 kr 1.5, 236 kr 1.5, 233 kr 1.5, 237 kr 1.5, 239 kr 1.5, 242 kr 1, 243 kr 1.5, 246 kr 1.5, 244 kr 1.5, 248 kr 1, 249 kr 1, 250 kr 1, 252 kr 1, 253 kr 1;
+ligtable "G": "g" kr 1;
+ligtable "I": "g" kr .5;
+ligtable 205: "g" kr .5;
+ligtable "J": "A" kr .75, 161 kr .75, "J" kr 1, "g" kr 1, 193 kr .75, 196 kr .75;
+ligtable "K": "C" kr 1.75, 198 kr 1.75, 200 kr 1.75, "G" kr 1.75, "J" kr 1, "O" kr 1.75, 214 kr 1.75, 211 kr 1.75, 212 kr 1.75, "Q" kr 1.75, "S" kr 1.15, 166 kr 1.15, 169 kr 1.15, "a" kr 1, 177 kr 1, 225 kr 1, 228 kr 1, "c" kr 1, 230 kr 1, 232 kr 1, "d" kr 1, 239 kr 1, "e" kr 1, 234 kr 1, 236 kr 1, 233 kr 1, "f" kr .5, "g" kr 2, "o" kr 1, 243 kr 1, 246 kr 1, 244 kr 1, "q" kr 1, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "u" kr .5, 249 kr .5, 250 kr .5, 252 kr .5, "v" kr 1.7, "w" kr 1.7, "y" kr 1.7, 253 kr 1.7, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable "L": "C" kr 1.75, 198 kr 1.75, 200 kr 1.75, "G" kr 1.75, "J" kr .75, "O" kr 1.75, 214 kr 1.75, 211 kr 1.75, 212 kr 1.75, "Q" kr 1.75, "S" kr .5, 166 kr .5, 169 kr .5, "T" kr 4, 171 kr 4, "V" kr 4, "W" kr 4, "Y" kr 2, 221 kr 2, "a" ko, 177 ko, 225 ko, 228 ko, "b" ko, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 233 ko, 234 ko, 236 ko, "f" kr .7, "g" kr 2, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "u" ko, 249 ko, 250 ko, 252 ko, "v" kr 2, "w" kr 2, "y" kr 1.5, 253 kr 1.5;
+ligtable 163: "C" kr 1.75, 198 kr 1.75, 200 kr 1.75, "G" kr 1.75, "J" kr .75, "O" kr 1.75, 214 kr 1.75, 211 kr 1.75, 212 kr 1.75, "Q" kr 1.75, "S" kr .5, 166 kr .5, 169 kr .5, "T" kr 4, 171 kr 4, "V" kr 4, "W" kr 4, "Y" kr 2, 221 kr 2, "a" ko, 177 ko, 225 ko, 228 ko, "b" ko, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 233 ko, 234 ko, 236 ko, "f" kr .7, "g" kr 2, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "u" ko, 249 ko, 250 ko, 252 ko, "v" kr 2, "w" kr 2, "y" kr 1.5, 253 kr 1.5;
+ligtable "M": "C" kr .5, 198 kr .5, 200 kr .5, "G" kr .5, "O" kr .5, 214 kr .5, 211 kr .5, 212 kr .5, "Q" kr .5, "T" kr 1.5, 171 kr 1.5, "V" kr 1.8, "W" kr 1.8, "Y" kr 1.8, 221 kr 1.8, "g" kr 1, "t" kr .5, 187 kr .5, "v" kr 1.5, "w" kr 1.5, "y" kr 1.5, 253 kr 1.5;
+ligtable "N": "g" kr .5;
+ligtable 209: "g" kr .5;
+ligtable 210: "g" kr .5;
+ligtable "O": "A" kr 2, 161 kr 2, 193 kr 2, 196 kr 2, "J" kr 2, "M" kr .5, "T" kr 2, 171 kr 2, "V" kr 2, "W" kr 2, "X" kr 2, "Y" kr 2, 221 kr 2, "Z" kr 2, 172 kr 2, 174 kr 2, 175 kr 2, "g" kr 1.3;
+ligtable 211: "A" kr 2, 161 kr 2, 193 kr 2, 196 kr 2, "J" kr 2, "M" kr .5, "T" kr 2, 171 kr 2, "V" kr 2, "W" kr 2, "X" kr 2, "Y" kr 2, 221 kr 2, "Z" kr 2, 172 kr 2, 174 kr 2, 175 kr 2, "g" kr 1.3;
+ligtable 214: "A" kr 2, 161 kr 2, 193 kr 2, 196 kr 2, "J" kr 2, "M" kr .5, "T" kr 2, 171 kr 2, "V" kr 2, "W" kr 2, "X" kr 2, "Y" kr 2, 221 kr 2, "Z" kr 2, 172 kr 2, 174 kr 2, 175 kr 2, "g" kr 1.3;
+ligtable 212: "A" kr 2, 161 kr 2, 193 kr 2, 196 kr 2, "J" kr 2, "M" kr .5, "T" kr 2, 171 kr 2, "V" kr 2, "W" kr 2, "X" kr 2, "Y" kr 2, 221 kr 2, "Z" kr 2, 172 kr 2, 174 kr 2, 175 kr 2, "g" kr 1.3;
+ligtable "P": "A" kr 2, 161 kr 2, "C" kr 1, 198 kr 1, "G" kr 1, "J" kr 5, "M" kr 1, "O" kr 1, "Q" kr 1, "T" kr 1, 171 kr 1, "V" kr 1, "W" kr 1, "X" kr 1, "Y" kr 1, 221 kr 1, "Z" kr 1, 172 kr 1, 174 kr 1, 175 kr 1, "a" kr 1.8, 177 kr 1.8, "c" kr 1.5, 230 kr 1.5, "d" kr 1.5, "e" kr 1.5, 234 kr 1.5, "f" kr .3, "g" kr 2, "m" kr 1, "n" kr 1, 241 kr 1, "o" kr 1.5, "p" kr 1, "q" kr 1.5, "r" kr 1, "s" kr 1.5, 182 kr 1.5, "t" kr 1, "u" kr 1, "v" kr 1, "w" kr 1, "x" kr 1, "y" kr 1, "z" kr 1, 185 kr 1, 187 kr 1, 188 kr 1, 190 kr 1, 191 kr 1, 193 kr 2, 196 kr 2, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 224 kr 1, 225 kr 1.8, 228 kr .5, 232 kr 1.5, 236 kr 1.5, 233 kr 1.5, 239 kr 1.5, 242 kr 1, 243 kr 1.5, 246 kr 1.5, 244 kr 1.5, 248 kr 1, 249 kr 1, 250 kr 1, 252 kr 1, 253 kr 1;
+ligtable "Q": "A" kr 2, 161 kr 2, 193 kr 2, 196 kr 2, "J" kr 2, "M" kr .5, "T" kr 2, 171 kr 2, "V" kr 2, "W" kr 2, "X" kr 2, "Y" kr 2, 221 kr 2, "Z" kr 2, 172 kr 2, 175 kr 2, 174 kr 2, "g" kr 1.3, "j" kr -.5;
+ligtable "R": "A" kr .5, 161 kr .5, 193 kr .5, 196 kr .5, "C" kr .5, 198 kr .5, 200 kr .5, "G" kr .5, "J" kr .5, "O" kr .5, 214 kr .5, 211 kr .5, 212 kr .5, "Q" kr .5, "T" kr 1, 171 kr 1, "V" kr 1, "W" kr 1, "X" kr .5, "Y" kr 1, 221 kr 1, "Z" kr .5, 172 kr .5, 174 kr .5, 175 kr .5, "a" ko, 177 ko, 225 ko, 228 ko, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "u" ko, "v" kr 1.5, "w" kr 1.5, "x" kr 1, "y" kr 1.5, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable 192: "A" kr .5, 161 kr .5, 193 kr .5, 196 kr .5, "C" kr .5, 198 kr .5, 200 kr .5, "G" kr .5, "J" kr .5, "O" kr .5, 214 kr .5, 211 kr .5, 212 kr .5, "Q" kr .5, "T" kr 1, 171 kr 1, "V" kr 1, "W" kr 1, "X" kr .5, "Y" kr 1, 221 kr 1, "Z" kr .5, 172 kr .5, 174 kr .5, 175 kr .5, "a" ko, 177 ko, 225 ko, 228 ko, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "u" ko, "v" kr 1.5, "w" kr 1.5, "x" kr 1, "y" kr 1.5, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable 216: "A" kr .5, 161 kr .5, 193 kr .5, 196 kr .5, "C" kr .5, 198 kr .5, 200 kr .5, "G" kr .5, "J" kr .5, "O" kr .5, 214 kr .5, 211 kr .5, 212 kr .5, "Q" kr .5, "T" kr 1, 171 kr 1, "V" kr 1, "W" kr 1, "X" kr .5, "Y" kr 1, 221 kr 1, "Z" kr .5, 172 kr .5, 174 kr .5, 175 kr .5, "a" ko, 177 ko, 225 ko, 228 ko, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "u" ko, "v" kr 1.5, "w" kr 1.5, "x" kr 1, "y" kr 1.5, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable "S": "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "C" kr .5, 198 kr .5, 200 kr .5, "G" kr .5, "J" kr .5, "M" kr .3, "O" kr .5, 214 kr .5, 211 kr .5, 212 kr .5, "Q" kr .5, "T" kr .5, 171 kr .5, "V" kr .5, "W" kr .5, "X" kr .5, "Y" kr .5, 221 kr .5 , "g" kr 1, "v" ko, "w" ko, "x" ko, "y" ko, 253 ko, "z" ko, 188 ko, 190 ko, 191 ko;
+ligtable 166: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "C" kr .5, 198 kr .5, 200 kr .5, "G" kr .5, "J" kr .5, "M" kr .3, "O" kr .5, 214 kr .5, 211 kr .5, 212 kr .5, "Q" kr .5, "T" kr .5, 171 kr .5, "V" kr .5, "W" kr .5, "X" kr .5, "Y" kr .5, 221 kr .5 , "g" kr 1, "v" ko, "w" ko, "x" ko, "y" ko, 253 ko, "z" ko, 188 ko, 190 ko, 191 ko;
+ligtable 169: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "C" kr .5, 198 kr .5, 200 kr .5, "G" kr .5, "J" kr .5, "M" kr .3, "O" kr .5, 214 kr .5, 211 kr .5, 212 kr .5, "Q" kr .5, "T" kr .5, 171 kr .5, "V" kr .5, "W" kr .5, "X" kr .5, "Y" kr .5, 221 kr .5 , "g" kr 1, "v" ko, "w" ko, "x" ko, "y" ko, 253 ko, "z" ko, 188 ko, 190 ko, 191 ko;
+ligtable "T": "A" kr 3, 161 kr 3, 193 kr 3, 196 kr 3, "C" kr 2, 198 kr 2, 200 kr 2, "G" kr 2, "J" kr 4, "M" kr 2, "O" kr 2, 214 kr 2, 211 kr 2, 212 kr 2, "Q" kr 2, "S" kr 1, 166 kr 1, 169 kr 1, "a" okr, 177 okr, 225 okr, 228 kr 2, "c" okr, 230 okr, 232 kr 2, "d" okr, 239 okr, "e" okr, 234 okr, 236 kr 2, 233 okr, "f" kr 1.5, "g" kern -3.5u#, "i" kr 2, 237 kr 2, "j" kr 2, "m" okr, "n" okr, 241 okr, 242 kr 2, "o" okr, 243 okr, 246 kr 2, 244 kr 2, "p" okr, "q" okr, "r" okr, 224 kr 2, "s" okr, 182 okr, 185 kr 1.5, "t" okr, 187 kr 2, "u" okr, 249 kr 2, 250 kr 2, 252 kr 2, "v" okr, "w" okr, "x" okr, "y" okr, 253 okr, "z" okr, 188 okr, 190 kr 2, 191 okr;
+ligtable 171: "A" kr 3, 161 kr 3, 193 kr 3, 196 kr 3, "C" kr 2, 198 kr 2, 200 kr 2, "G" kr 2, "J" kr 4, "M" kr 2, "O" kr 2, 214 kr 2, 211 kr 2, 212 kr 2, "Q" kr 2, "S" kr 1, 166 kr 1, 169 kr 1, "a" okr, 177 okr, 225 okr, 228 kr 2, "c" okr, 230 okr, 232 kr 2, "d" okr, 239 okr, "e" okr, 234 okr, 236 kr 2, 233 okr, "f" kr 1.5, "g" kern -3.5u#, "i" kr 2, 237 kr 2, "j" kr 2, "m" okr, "n" okr, 241 okr, 242 kr 2, "o" okr, 243 okr, 246 kr 2, 244 kr 2, "p" okr, "q" okr, "r" okr, 224 kr 2, "s" okr, 182 okr, 185 kr 1.5, "t" okr, 187 kr 2, "u" okr, 249 kr 2, 250 kr 2, 252 kr 2, "v" okr, "w" okr, "x" okr, "y" okr, 253 okr, "z" okr, 188 okr, 190 kr 2, 191 okr;
+ligtable "U": "g" kr 1;
+ligtable 218: "g" kr 1;
+ligtable 220: "g" kr 1;
+ligtable 217: "g" kr 1;
+ligtable "V": "A" kr 3.5, 161 kr 3.5, 193 kr 3.5, 196 kr 3.5, "C" kr 1.5, 198 kr 1.5, 200 kr 1.5, "G" kr 1.5, "J" kr 3.5, "M" kr 2, "O" kr 1.5, 214 kr 1.5, 211 kr 1.75, 212 kr 1.5, "Q" kr 1.5, "S" kr .5, 166 kr .5, 169 kr .5, "a" kr 2, 177 kr 2, 225 kr 2, 228 kr 2, "c" kr 2.5, 230 kr 2.5, 232 kr 2.5, "d" kr 2.5, 239 kr 2.5, "e" kr 2.5, 234 kr 2.5, 236 kr 2.5, 233 kr 2.5, "f" kr 1, "g" kr 3.5, 237 kr 1, "m" kr 1.5, "n" kr 1.5, 241 kr 1.5, 242 kr 1.5, "o" kr 2.5, 243 kr 2.5, 246 kr 2.5, 244 kr 2.5, "p" kr 1.5, "q" kr 2.5, "r" kr 1.5, 224 kr 1.5, 248 kr 1, "s" kr 2.2, 182 kr 2.2, 185 kr 1.5, "t" kr 1, 187 kr 1, "u" kr 1.5, 250 kr 1.5, 249 kr 1.5, 252 kr 1.5, "v" kr 1.5, "w" kr 1.5, "x" kr 1.5, "y" kr 1.5, 253 kr 1.5, "z" kr 1.5, 188 kr 1.5, 190 kr 1, 191 kr 1.5;
+ligtable "W": "A" kr 4.5, 161 kr 4.5, 193 kr 4.5, 196 kr 4.5, "C" kr 1.5, 198 kr 1.5, 200 kr 1.5, "G" kr 1.5, "J" kr 3.5, "M" kr 2, "O" kr 1.5, 214 kr 1.5, 211 kr 1.75, 212 kr 1.5, "Q" kr 1.5, "S" kr .5, 166 kr .5, 169 kr .5, "a" kr 2, 177 kr 2, 225 kr 2, 228 kr 1.5, "c" kr 2.5, 230 kr 2.5, 232 kr 2.5, "d" kr 2.5, 239 kr 2.5, "e" kr 2.5, 234 kr 2.5, 236 kr 2.5, 233 kr 2.5, "f" kr 1, "g" kr 3.5, "i" kr 1, 237 kr 1, "j" kr 1, "m" kr 1.5, "n" kr 1.5, 241 kr 1.5, 242 kr 1.5, "o" kr 2.5, 243 kr 2.5, 246 kr 2.5, 244 kr 2.5, "p" kr 1.5, "q" kr 2.5, "r" kr 1.5, 224 kr 1.5, 248 kr 1, "s" kr 2.2, 182 kr 2.2, 185 kr 1.5, "t" kr 1, 187 kr 1, "u" kr 1.5, 250 kr 1.5, 249 kr 1.5, 252 kr 1.5, "v" kr 1.5, "w" kr 1.5, "x" kr 1.5, "y" kr 1.5, 253 kr 1.5, "z" kr 1.5, 188 kr 1.5, 190 kr 1, 191 kr 1.5;
+ligtable "X": "C" kr 1.75, 198 kr 1.75, 200 kr 1.75, "G" kr 1.75, "J" kr 1, "O" kr 1.75, 214 kr 1.75, 211 kr 1.75, 212 kr 1.75, "Q" kr 1.75, "S" kr 1.15, 166 kr 1.15, 169 kr 1.15, "a" kr .5, 177 kr .5, 225 kr .5, 228 kr .5, "c" kr 1, 230 kr 1, 232 kr 1, "d" kr 1, 239 kr 1, "e" kr 1, 234 kr 1, 236 kr 1, 233 kr 1, "f" kr .5, "g" kr 2, "o" kr 1, 243 kr 1, 246 kr 1, 244 kr 1, "q" kr 1, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "u" kr .5, 249 kr .5, 250 kr .5, 252 kr .5, "v" kr 1.7, "w" kr 1.7, "y" kr 1.7, 253 kr 1.7, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable "Y": "A" kr 4, 161 kr 4, 193 kr 4, 196 kr 4, "C" kr 1.5, 198 kr 1.5, 200 kr 1.5, "G" kr 1.5, "J" kr 4, "M" kr 2, "O" kr 1.5, 214 kr 1.5, 211 kr 1.75, 212 kr 1.5, "Q" kr 1.5, "S" kr .5, 166 kr .5, 169 kr .5, "a" kr 2.5, 177 kr 2.5, 225 kr 2.5, 228 kr 2, "c" kr 2.5, 230 kr 2.5, 232 kr 2.5, "d" kr 2.5, 239 kr 2.5, "e" kr 2.5, 234 kr 2.5, 236 kr 2.5, 233 kr 2.5, "f" kr 1, "g" kr 3.5, 237 kr 1, "m" kr 1.5, "n" kr 1.5, 241 kr 1.5, 242 kr 1.5, "o" kr 2.5, 243 kr 2.5, 246 kr 2.5, 244 kr 2.5, "p" kr 1.5, "q" kr 2.5, "r" kr 1.5, 224 kr 1.5, 248 kr 1, "s" kr 2.2, 182 kr 1.5, 185 kr 1.5, "t" kr 1, 187 kr 1, "u" kr 1.5, 250 kr 1.5, 249 kr 1.5, 252 kr 1.5, "v" kr 1.5, "w" kr 1.5, "x" kr 1.5, "y" kr 1.5, 253 kr 1.5, "z" kr 1.5, 188 kr 1.5, 190 kr 1, 191 kr 1.5;
+ligtable 221: "A" kr 4, 161 kr 4, 193 kr 4, 196 kr 4, "C" kr 1.5, 198 kr 1.5, 200 kr 1.5, "G" kr 1.5, "J" kr 4, "M" kr 2, "O" kr 1.5, 214 kr 1.5, 211 kr 1.75, 212 kr 1.5, "Q" kr 1.5, "S" kr .5, 166 kr .5, 169 kr .5, "a" kr 2.5, 177 kr 2.5, 225 kr 2.5, 228 kr 2, "c" kr 2.5, 230 kr 2.5, 232 kr 2.5, "d" kr 2.5, 239 kr 2.5, "e" kr 2.5, 234 kr 2.5, 236 kr 2.5, 233 kr 2.5, "f" kr 1, "g" kr 3.5, 237 kr 1, "m" kr 1.5, "n" kr 1.5, 241 kr 1.5, 242 kr 1.5, "o" kr 2.5, 243 kr 2.5, 246 kr 2.5, 244 kr 2.5, "p" kr 1.5, "q" kr 2.5, "r" kr 1.5, 224 kr 1.5, 248 kr 1, "s" kr 2.2, 182 kr 1.5, 185 kr 1.5, "t" kr 1, 187 kr 1, "u" kr 1.5, 250 kr 1.5, 249 kr 1.5, 252 kr 1.5, "v" kr 1.5, "w" kr 1.5, "x" kr 1.5, "y" kr 1.5, 253 kr 1.5, "z" kr 1.5, 188 kr 1.5, 190 kr 1, 191 kr 1.5;
+ligtable "Z": "C" kr 1, 198 kr 1, "G" kr 1, "O" kr 1, 214 kr 1, 211 kr 1, 212 kr 1, "Q" kr 1, "g" kr 1.5, "i" kr -.5, "j" kr -.5, "v" kr 1.5, "w" kr 1.5, "y" kr 1.5, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 253 kr 1.5;
+ligtable 174: "C" kr 1, 198 kr 1, "G" kr 1, "O" kr 1, 214 kr 1, 211 kr 1, 212 kr 1, "Q" kr 1, "g" kr 1.5, "i" kr -.5, "j" kr -.5, "v" kr 1.5, "w" kr 1.5, "y" kr 1.5, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 253 kr 1.5;
+ligtable 172: "C" kr 1, 198 kr 1, "G" kr 1, "O" kr 1, 214 kr 1, 211 kr 1, 212 kr 1, "Q" kr 1, "g" kr 1.5, "i" kr -.5, "j" kr -.5, "v" kr 1.5, "w" kr 1.5, "y" kr 1.5, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 253 kr 1.5;
+ligtable 175: "C" kr 1, 198 kr 1, "G" kr 1, "O" kr 1, 214 kr 1, 211 kr 1, 212 kr 1, "Q" kr 1, "g" kr 1.5, "i" kr -.5, "j" kr -.5, "v" kr 1.5, "w" kr 1.5, "y" kr 1.5, 200 kr 1, 211 kr 1, 214 kr 1, 212 kr 1, 253 kr 1.5;
+
+ligtable "a": "T" kr 2, 171 kr 2, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.2, 221 kr 1.2, "g" kr 1;
+ligtable 177: "T" kr 2, 171 kr 2, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.2, 221 kr 1.2, "g" kr 1, "j" kr -1.5;
+ligtable 225: "T" kr 2, 171 kr 2, "g" kr 1;
+ligtable 228: "T" kr 2, 171 kr 2, "V" kr .5, "W" kr .5, "Y" kr .5, 221 kr .5, "g" kr 1;
+ligtable "b": "A" kr .8, 161 kr .8, 193 kr .8, 196 kr .8, "C" kr .5, 198 kr .5, 200 kr .5, "G" kr .5, "J" kr .5, "M" kr .3, "O" kr .5, 211 kr .5, 214 kr .5, 212 kr .5, "Q" kr .5, "S" kr .3, 166 kr .3, 169 kr .3, "T" kr 2, 171 kr 2, "V" kr 2, "W" kr 2, "Y" kr 2, 221 kr 2, "Z" kr .5, 172 kr .5, 174 kr .5, 175 kr .5, "a" kr .2, 177 kr .2, 225 kr .2, 228 kr .2, "c" kc, 230 kc, 232 kc, "d" kc, 239 kc, "e" kc, 233 kc, 234 kc, 236 kc, "f" kr .8, "g" kr 1, "i" kv, 237 kv, "j" kv, "l" kv, 179 kv, 181 kv, "o" kc, 243 kv, 246 kv, 244 kv, "q" kc, "s" kv, 182 kv, 185 kv, "v" kr .5, "w" kr .5, "x" kr .5, "y" kr .5, 253 kr .5, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable "c": "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 2.5, 171 kr 2.5, "V" kr 2, "W" kr 2, "Y" kr 2, 221 kr 2, "a" kc, 177 kc, 225 kc, 228 kc, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 233 ko, 234 ko, 236 ko, "g" kr 1, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko;
+ligtable 230: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 1.5, 171 kr 1.5, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "a" kc, 177 kc, 225 kc, 228 kc, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 233 ko, 234 ko, 236 ko, "g" kr 1, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko;
+ligtable 232: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 1.5, 171 kr 1.5, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "a" kc, 177 kc, 225 kc, 228 kc, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 233 ko, 234 ko, 236 ko, "g" kr 1, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko;
+ligtable "d": "g" kr .8;
+ligtable 239: "A" kr 2.5, 161 kr 2.5, 193 kr 2.5, 196 kr 2.5, "C" kr 2, 198 kr 2, 200 kr 2, "G" kr 2, "J" kr 2.5, "M" kr 2, "O" kr 2, 211 kr 2, 214 kr 2, 212 kr 2, "Q" kr 2, "S" kr 1, 166 kr 1, 169 kr 1, "a" kr 2, 177 kr 2, 225 kr 2, 228 kr 2, "c" kr 2, 230 kr 2, 232 kr 2, "d" kr 2, "ï" kr 2, "e" kr 2, 233 kr 2, 234 kr 2, 236 kr 2, "f" kr 1, "g" kr 2.5 , "i" kr 2, 237 kr 2, "j" kr 2, "m" kr 2, "n" kr 2, 241 kr 2, 242 kr 2, "o" kr 2, 243 kr 2, 246 kr 2, 244 kr 2, "p" kr 2, "q" kr 2, "r" kr 2, 248 kr 2, "s" kr 2, 182 kr 2, 185 kr 2, "t" kr 2, 187 kr 2, "u" kr 2, 250 kr 2, 249 kr 2, 252 kr 2, "v" kr 2, "w" kr 2, "x" kr 2, "y" kr 2, 253 kr 2, "z" kr 2, 188 kr 2, 190 kr 2, 191 kr 2;
+ligtable "e": "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "Y" kr 2, 221 kr 2, "g" kr 1;
+ligtable 234: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "Y" kr 2, 221 kr 2, "g" kr 1, "j" kr -1.5;
+ligtable 233: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "g" kr 1;
+ligtable 236: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 1, "W" kr 1, "Y" kr 2, 221 kr 2, "g" kr 1;
+ligtable "f": "A" kr .5, 161 kr .5, 193 kr .5, 196 kr .5, "J" kr 1.5, "M" kr .5, "a" kr .5, 177 kr .5, 225 kr .5, 228 kr .5, "c" kr .5, 230 kr .5, 232 kr .5, "d" kr .5, 239 kr .5, "e" kr .5, 233 kr .5, 234 kr .5, 236 kr .5, "f"=:oct"013", "g" kr 2, "i"=:oct"014", 237 kr .5, "l"=:oct"015", "o" kr .5, 243 kr .5, 246 kr .5, 244 kr .5, "q" kr .5, "s" kr .25, 182 kr .25, "t" kr .5, 187 kr .5;
+ligtable "g": "A" kr .5, 161 kr .5, 193 kr .5, 196 kr .5, "J" kr .5, "T" kr 2.5, 171 kr 2.5, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "j" kr -1.5;
+ligtable "h": "T" kr 2, 171 kr 2, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "g" kr .5;
+ligtable "i": "T" kr 2, 171 kr 2;
+ligtable 237: "B" kz, "C" kzz, 198 kzz, 200 kzz, "D" kz, 207 kz, "E" kz, 202 kz, 204 kz, 201 kz, "F" kz, "G" kzz, "H" kz, "I" kz, 205 kz, "K" kz, "L" kz, 163 kz, 197 kz, 165 kz, "M" kzz, "N" kz, 209 kz, 210 kz, "O" kzz, 211 kzz, 214 kzz, 212 kzz, "P" kz, "Q" kzz, "R" kz, 216 kz, "S" kz, 166 kzz, 169 kzz, "T" kr 1, 171 kr 1, "U" kz, 218 kz, 217 kz, 220 kz, "V" kzz, "W" kzz, "X" kzz, "Y" kzz, 221 kzz, "b" kz, "f" kzz, "h" kz, "i" kzz, "j" kzz, "k" kz, "l" kz, 179 kz, 181 kz, 229 kz, 248 kzz, "t" kzz, 187 kzz, "!" kz;
+ligtable "j": "T" kr 2, 171 kr 2, "j" kr -1;
+ligtable "k": "J" kr 1, "T" kr 2, 171 kr 2, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "a" kv, 177 kv, 225 kv, 228 kv, "c" kr 1, 230 kr 1, 232 kr 1, "d" kr 1, 239 kr 1, "e" kr 1, 234 kr 1, 236 kr 1, 233 kr 1, "g" kr 1.5, "o" kr 1, 243 kr 1, 246 kr 1, 244 kr 1, "q" kr 1, "s" kr .5, 182 kr .5, 185 kr .5;
+ligtable "l": "g" kr .5;
+ligtable 179: "g" kr 1.5;
+ligtable "m": "T" kr 2.5, 171 kr 2.5, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "g" kr 1, "t" kr .5, 187 kr .5;
+ligtable "n": "T" kr 3, 171 kr 3, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "g" kr 1, "t" kr .5, 187 kr .5;
+ligtable 241: "T" kr 3, 171 kr 3, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "g" kr 1, "t" kr .5, 187 kr .5;
+ligtable 242: "T" kr 3, 171 kr 3, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "g" kr 1, "t" kr .5, 187 kr .5;
+ligtable "o": "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "X" kr 1, "Y" kr 2, 221 kr 2, "Z" kr 1, 172 kr 1, 174 kr 1, 175 kr 1, "g" kr 1, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "v" kr 1, "w" kr 1, "x" kr .5, "y" kr 1, 253 kr 1, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable 243: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "X" kr 1, "Y" kr 2, 221 kr 2, "Z" kr 1, 172 kr 1, 174 kr 1, 175 kr 1, "g" kr 1, "o" ko, "ó" ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "v" kr 1, "w" kr 1, "x" kr .5, "y" kr 1, 253 kr 1, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable 246: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "X" kr 1, "Y" kr 2, 221 kr 2, "Z" kr 1, 172 kr 1, 174 kr 1, 175 kr 1, "g" kr 1, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "v" kr 1, "w" kr 1, "x" kr .5, "y" kr 1, 253 kr 1, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable 244: "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "X" kr 1, "Y" kr 2, 221 kr 2, "Z" kr 1, 172 kr 1, 174 kr 1, 175 kr 1, "g" kr 1, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "v" kr 1, "w" kr 1, "x" kr .5, "y" kr 1, 253 kr 1, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable "p": "A" kr 1, 161 kr 1, 193 kr 1, 196 kr 1, "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "X" kr 1, "Y" kr 2, 221 kr 2, "Z" kr 1, 172 kr 1, 174 kr 1, 175 kr 1, "a" kr .5, 177 kr .5, 225 kr .5, 228 kr .5, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 233 ko, 234 ko, 236 ko, "g" kr 1, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "v" kr 1, "w" kr 1, "x" kr .5, "y" kr 1, 253 kr 1, "z" kr .5, 188 kr .5, 190 kr .5, 191 kr .5;
+ligtable "q": "T" kr 2.5, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "g" kr .5, "j" kr -1;
+ligtable "r": "A" kr 2, 161 kr 2, 193 kr 2, 196 kr 2, "J" kr 2.5, "M" kr 1, "S" kr .5, 166 kr .5, 169 kr .5, "T" kr 3, 171 kr 3, "V" kr 1.5, "W" kr 1.5, "X" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "Z" kr 1.5, 172 kr 1.5, 174 kr 1.5, 175 kr 1.5, "a" kr .5, 177 kr .5, 225 kr .5, 228 kr .5, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 233 ko, 234 ko, 236 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .3, 182 kr .3, 185 kr .3;
+ligtable 248: "A" kr 2, 161 kr 2, 193 kr 2, 196 kr 2, "J" kr 2.5, "M" kr 1, "T" kr 2, 171 kr 2, "V" kr 1, "W" kr 1, "X" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "Z" kr .5, 172 kr .5, 174 kr .5, 175 kr .5, "a" kr .5, 177 kr .5, 225 kr .5, 228 kr .5, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 233 ko, 234 ko, 236 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .3, 182 kr .3, 185 kr .3;
+ligtable "s": "T" kr 3, 171 kr 3, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "g" kr 1, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "v" kr .5, "w" kr .5, "y" kr .5, 253 kr .5;
+ligtable 182: "T" kr 2, 171 kr 2, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "g" kr 1, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "v" kr .5, "w" kr .5, "y" kr .5, 253 kr .5;
+ligtable 185: "T" kr 2, 171 kr 2, "V" kr 1.5, "W" kr 1.5, "Y" kr 1.5, 221 kr 1.5, "g" kr 1, "s" kr .5, 182 kr .5, 185 kr .5, "t" kr .5, 187 kr .5, "v" kr .5, "w" kr .5, "y" kr .5, 253 kr .5;
+ligtable "t": "J" kr .5, "T" kr 2.5, 171 kr 2.5, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "g" kr 1;
+ligtable 187: "J" kr .5, "T" kr 2.5, 171 kr 2.5, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "g" kr 1;
+ligtable "u": "T" kr 2.5, 171 kr 2.5, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "g" kr .5;
+ligtable 250: "T" kr 2.5, 171 kr 2.5, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "g" kr .5;
+ligtable 249: "T" kr 2.5, 171 kr 2.5, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "g" kr .5;
+ligtable 252: "T" kr 2.5, 171 kr 2.5, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "g" kr .5;
+ligtable "v": "A" kr 2, 161 kr 2, 193 kr 2, 196 kr 2, "J" kr 2, "M" kr .5, "S" kr .5, 166 kr .5, 169 kr .5, "T" kr 2.5, 171 kr 2.5, "V" kr 2, "W" kr 2, "X" kr 2, "Y" kr 2.5, 221 kr 2.5, "Z" kr 2, 172 kr 2, 174 kr 2, 175 kr 2, "a" kr .8, 177 kr .8, 225 kr .8, 228 kr .8, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .3, 182 kr .3, 185 kr .3;
+ligtable "w": "A" kr 2.5, 161 kr 2.5, 193 kr 2.5, 196 kr 2.5, "J" kr 2, "M" kr .5, "S" kr .5, 166 kr .5, 169 kr .5, "T" kr 2.5, 171 kr 2.5, "V" kr 2, "W" kr 2, "X" kr 2, "Y" kr 2.5, 221 kr 2.5, "Z" kr 2, 172 kr 2, 174 kr 2, 175 kr 2, "a" kr .8, 177 kr .8, 225 kr .8, 228 kr .8, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .3, 182 kr .3, 185 kr .3;
+ligtable "x": "J" kr 1, "S" kr .5, 166 kr .5, 169 kr .5, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "Y" kr 2.5, 221 kr 2.5, "a" kr .8, 177 kr .8, 225 kr .8, 228 kr .8, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko,236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko;
+ligtable "y": "A" kr 2.5, 161 kr 2.5, 193 kr 2.5, 196 kr 2.5, "J" kr 2, "M" kr .5, "S" kr .5, 166 kr .5, 169 kr .5, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "X" kr 2, "Y" kr 2.5, 221 kr 2.5, "Z" kr 2, 172 kr 2, 174 kr 2, 175 kr 2, "a" kr .8, 177 kr .8, 225 kr .8, 228 kr .8, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .3, 182 kr .3, 185 kr .3;
+ligtable 253: "A" kr 2.5, 161 kr 2.5, 193 kr 2.5, 196 kr 2.5, "J" kr 2, "M" kr .5, "S" kr .5, 166 kr .5, 169 kr .5, "T" kr 3, 171 kr 3, "V" kr 2, "W" kr 2, "X" kr 2, "Y" kr 2.5, 221 kr 2.5, "Z" kr 2, 172 kr 2, 174 kr 2, 175 kr 2, "a" kr .8, 177 kr .8, 225 kr .8, 228 kr .8, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .3, 182 kr .3, 185 kr .3;
+ligtable "z": "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "a" kv, 177 kv, 225 kv, 228 kv, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5;
+ligtable 188: "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "a" kv, 177 kv, 225 kv, 228 kv, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5;
+ligtable 190: "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "a" kv, 177 kv, 225 kv, 228 kv, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5;
+ligtable 191: "J" kr 1, "T" kr 3, 171 kr 3, "V" kr 1, "W" kr 1, "Y" kr 1, 221 kr 1, "a" kv, 177 kv, 225 kv, 228 kv, "c" ko, 230 ko, 232 ko, "d" ko, 239 ko, "e" ko, 234 ko, 236 ko, 233 ko, "g" kr 1.5, "o" ko, 243 ko, 246 ko, 244 ko, "q" ko, "s" kr .5, 182 kr .5, 185 kr .5;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/tapir/tap.mf b/Master/texmf-dist/fonts/source/public/tapir/tap.mf
new file mode 100644
index 00000000000..1b3ef587045
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tapir/tap.mf
@@ -0,0 +1,3866 @@
+font_identifier:="Tapir";
+u#:=20/36pt#;
+asc_height#:=12u#;
+cap_height#:=14.5u#;
+Asc_height#:=19u#;
+desc_depth#:=4.5u#;
+par_height#:=15.5u#;
+par_depth#:=u#;
+x_height#:=8u#;
+stem#:=1.1u#;
+cap_stem#:=1.1u#;
+fig_width#:=.5cap_height#+2u#+.5stem#;
+can:=15;
+dot_height#:=1.5cap_stem#;
+math_axis#:=5u#;
+font_size 10pt#;
+font_x_height 8u#;
+font_normal_space 4u#;
+font_normal_shrink 2u#;
+font_normal_stretch 3u#;
+
+mode_setup;
+define_pixels(u, cap_height, asc_height, Asc_height, x_height, desc_depth, stem, cap_stem, dot_height, math_axis, par_height, par_depth, fig_width);
+
+if unknown tapir_extended_charset: input tap-enc fi;
+
+let semi_ =;; let colon_ = :; let endchar_ = endchar;
+def iff expr b = if b:let next_=use_it else:let next_=lose_it fi; next_ enddef;
+def use_it = let : = restore_colon; enddef;
+def restore_colon = let : = colon_; enddef;
+def lose_it = let endchar=fi; inner cmchar; let ;=fix_ semi_ if false enddef;
+def fix_=let ;=semi_; let endchar=endchar_; outer cmchar; enddef;
+def always_iff = let : = endgroup; killboolean enddef;
+def killboolean text t = use_it enddef;
+
+%%Taken from cmbase
+vardef diag_ratio(expr a,b,y,c) = % assuming that $a>\vert b/y\vert$,
+% compute the value $\alpha=(x\6{++}y)/y$ such that $ax+b\alpha=c$
+ numeric aa_,bb_,cc_; bb_=b/y; cc_=c/y; aa_=a*a-bb_*bb_;
+ (a*(cc_++sqrt aa_)-bb_*cc_)/aa_ enddef;
+
+
+def t_:=slanted slant enddef;
+if unknown serifs: boolean serifs; serifs:=false; fi
+if unknown italic: boolean italic; italic:=false; fi
+if unknown slant: numeric slant ; slant:=0; fi
+numeric c_height;
+picture used_p;
+boolean low, low.low, upper, upper.upper;
+low=upper=false; low.low=upper.upper=true;
+extra_beginchar:="pickup pencircle scaled .005pt;";
+
+def savep:= used_p:=currentpicture; enddef;
+def usep:= addto currentpicture also used_p; enddef;
+def v_center(expr t):= .5t+math_axis#, .5t-math_axis# enddef;
+def serif(suffix $)(expr tha, thb):=
+if serifs:
+ penpos$sa(.45stem,thb); penpos$sb(.45stem,90+tha);
+ z$sa.l=z$; z$sb=z$sa+(1.5stem,0) rotated tha;
+ z$sc=z$+(.5stem,0) rotated tha;
+ filldraw z$sa.l---z$sb.l..z$sb.r---z$sa.r--cycle;
+ penlabels($sa,$sb);
+fi
+enddef;
+
+def hpos(suffix $)(expr wid, ang):=
+ x$r-x$l=wid; .5[x$r,x$l]=x$; y$=y$l=y$r-wid*sind(ang)*aspect_ratio;
+enddef;
+
+def vpos(suffix $)(expr wid, ang):=
+ y$r-y$l=wid; .5[y$r,y$l]=y$; x$=x$l=x$r-wid*sind(ang)*aspect_ratio;
+enddef;
+
+def kruh(suffix $)(expr rad):=
+.5[z$a,z$c]=.5[z$b,z$d]=z$; x$a-x$c=y$b-y$d=rad; x$b=x$d; y$a=y$c;
+penpos$a(stem,0); penpos$b(stem,90); penpos$c(stem,180); penpos$d(stem,270);
+filldraw z$a.r{up}..{left}z$b.r..{down}z$c.r..{right}z$d.r..{up}z$a.r--z$a.l{down}..{left}z$d.l..{up}z$c.l..{right}z$b.l..{down}z$a.l--cycle;
+penlabels($,$a,$b,$c,$d);
+enddef;
+
+def italic_a(suffix $)(expr rad):=
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+penpos14(stem,0);
+.5[z10,z12]=.5[z11,z13]; .5[y13,y11]=y$; y10=y12; x11=x13; y11-y13=x10-x12; x10-x12=rad;
+x11=x$; %.5[x12,x14]=x$;
+y14=y10; x14=x11+2stem; z15r=(x14r,y11r); z15l=(x14l,y11l);
+filldraw z14r--z15r---z11r..{down}z12r..{right}z13r..{up}z14r--z14l{down}..{left}z13l..{up}z12l..{right}z11l
+---z15l--z14l--cycle;
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Accent macros
+def acute(suffix $)suffix modifier:=
+numeric acutewid;
+y$'=y$=y$''+3u; .5[x$',x$'']=x$; x$'-x$''=2.5u;
+acutewid:=(if low.modifier: cap_stem else: stem fi)/cosd(90+angle(z$''-z$'));
+penpos$'(acutewid,0); penpos$''(.75acutewid,0);
+filldraw (z$'l--z$'r--z$''r--z$''l--cycle) if low.modifier: shifted -z$ yscaled .75 shifted z$ fi;
+enddef;
+
+def grave(suffix $)suffix modifier:=
+numeric acutewid;
+y$'=y$=y$''+3u; .5[x$',x$'']=x$; x$'-x$''=-2.5u;
+acutewid:=(if low.modifier: cap_stem else: stem fi)/cosd(90+angle(z$''-z$'));
+penpos$'(acutewid,0); penpos$''(.75acutewid,0);
+filldraw (z$'l--z$'r--z$''r--z$''l--cycle) if low.modifier: shifted -z$ yscaled .75 shifted z$ fi;
+enddef;
+
+def dot(suffix $):=
+.5[y$c,y$d]=y$b=y$a=y$; .5[x$a,x$b]=x$c=x$d=x$; x$a-x$b=dot_height=.8(y$c-y$d);
+filldraw z$a--z$c--z$b--z$d--cycle;
+enddef;
+
+def acc_dot(suffix $):=
+.5[y$c,y$d]=y$b=y$a=y$; .5[x$a,x$b]=x$c=x$d=x$; x$a-x$b=1.2stem=.75(y$c-y$d);
+filldraw z$a--z$c--z$b--z$d--cycle;
+enddef;
+
+def caron(suffix $)suffix modifier:=
+numeric carontheta, caron_stem;
+caron_stem:=if low.modifier: cap_stem else: stem fi;
+hpos($a)(caron_stem,can); hpos($b)(caron_stem,-can);
+y$a.r=y$=y$b.l;
+x$c.r=.5[x$a.r,x$b.l]=x$; y$-y$c.r=3u; x$b.l-x$a.r=2.5u;
+carontheta:=90+angle(z$a.l-z$c.r);
+penpos$c(if low.modifier: 0.8\\fi caron_stem/sind(carontheta),90);
+filldraw (z$a.l--z$c.r--z$b.r--z$b.l--z$c.l--z$a.r--cycle);% if low.modifier: shifted -z$ scaled .8 shifted z$ fi;
+penlabels($c);
+enddef;
+
+def ring(suffix $)suffix modifier:=
+numeric ring_stem;
+ring_stem:=.7* if low.modifier: cap_stem else: stem fi;
+.5[z$a,z$c]=.5[z$d,z$b]; .5[x$a,x$c]=x$; x$a-x$c=y$b-y$d=2.5u; y$b=y$-.5ring_stem; y$a=y$c; x$b=x$d;
+penpos$a(ring_stem,0);penpos$b(ring_stem,90);penpos$c(ring_stem,180);penpos$d(ring_stem,270);
+filldraw z$a.r{up}..z$b.r{left}..z$c.r{down}..{right}z$d.r..{up}z$a.r--z$a.l{down}..z$d.l{left}..{up}z$c.l..{right}z$b.l..{down}z$a.l--cycle;
+penlabels($a,$b,$c,$d);
+enddef;
+
+def ac_caron(suffix $)suffix modifier:=
+numeric ac_carwid;
+y$'=y$=y$''+2u; .5[x$',x$'']=x$; x$'-x$''=.8u;
+ac_carwid:=(if low.modifier: cap_stem else: stem fi)/cosd(90+angle(z$''-z$'));
+penpos$'(ac_carwid,0); penpos$''(.75ac_carwid,0);
+filldraw (z$'l--z$'r--z$''r--z$''l--cycle) if low.modifier: shifted -z$ yscaled .75 shifted z$ fi;
+enddef;
+
+def umlaut(suffix $):=
+.5[x$a,x$b]=x$; y$a=y$b=y$; x$b-x$a=2.5u;
+acc_dot($a); acc_dot($b);
+enddef;
+
+def H_acute(suffix $)suffix modifier:=
+numeric H_acutewid;
+y$'=y$=y$''+3u; .5[x$',x$'']=x$; x$'-x$''=1.4u;
+H_acutewid:=(if low.modifier: cap_stem else: stem fi)/cosd(90+angle(z$''-z$'));
+penpos$'(H_acutewid,0); penpos$''(.75H_acutewid,0);
+filldraw (z$'l--z$'r--z$''r--z$''l--cycle) if low.modifier: shifted -z$ yscaled .75 shifted z$ fi;
+enddef;
+
+def H_umlaut(suffix $)suffix modifier:=
+.5[x$a,x$b]=x$; y$a=y$b=y$; x$b-x$a=2u;
+H_acute($a).modifier; H_acute($b).modifier;
+enddef;
+
+def quota(suffix $)suffix modifier:=
+y$'=y$=y$''+3.5u; .5[x$',x$'']=x$; x$'=x$'';
+hpos($')(if not upper.modifier: 1.5\\fi stem,if not upper.modifier: 0\\fi can); hpos($'')(if upper.modifier: 1.5\\fi stem, if upper.modifier:0\\fi can);
+filldraw z$'l--z$'r--z$''r--z$''l--cycle;
+enddef;
+
+def circumflex(suffix $)suffix modifier:=
+numeric circtheta, circ_stem;
+circ_stem:=if low.modifier: cap_stem else: stem fi;
+hpos($a)(circ_stem,-can); hpos($b)(circ_stem,can);
+y$a.r=y$b.l; y$c.r=y$;
+x$c.r=.5[x$a.r,x$b.l]=x$; y$-y$a.r=3u; x$b.l-x$a.r=2.5u;
+circtheta:=180+angle(z$c.r-z$a.r);
+penpos$c(1.5*if low.modifier: 0.8\\fi circ_stem/sind(circtheta),270);
+filldraw (z$a.l--z$c.r--z$b.r--z$b.l--z$c.l--z$a.r--cycle);
+penlabels($c);
+enddef;
+
+def cedilla(suffix $):=
+vpos($')(.75stem,can); vpos($'')(.75stem,can); vpos($'''')(.5stem,can); penpos$'''(.5stem,90);
+.5[x$',x$'']=x$; x$''-x$'=3u; y$'r=y$''r=y$; y$'''l=y$''''l=-d; x$'''=x$; x$''''=x$';
+filldraw z$'l+u*right--z$''l{down}..{left}z$'''r..z$''''r--z$''''l..z$'''l{right}..z$''r---z$'r+u*right--cycle;
+penlabels($',$'',$''',$'''');
+enddef;
+
+def breve(suffix $)suffix modifier:=
+hpos($')(stem,can); hpos($''')(stem,can); penpos$''(stem,90);
+.5[x$'l,x$'''r]=x$; x$'''r-x$'l=5u; x$''=x$; y$'r=y$'''r=y$; y$''=y$-if low.modifier: .35 else: .5fi\\(x$'''-x$');
+filldraw z$'l{down}..{right}z$''l..{up}z$'''r--z$'''l{down}..{left}z$''r..{up}z$'r--cycle;
+penlabels($',$'',$''',$);
+enddef;
+
+def macron(suffix $):=
+vpos($')(stem,can); penpos$''(stem,90);
+y$'r=y$''r=y$; x$''-x$'l=4u; .5[x$'l,x$'']=x$;
+filldraw z$'l--z$''l--z$''r--z$'r--cycle;
+enddef;
+
+def tilde(suffix $):=
+hpos($')(stem,-can); hpos($'''')(stem,-can); penpos$''(stem,90); penpos$'''(stem,90);
+x$'l-x$''''r=-7u; .5[x$'l,x$''''r]=x$; x$''=.5[x$',x$]; x$'''=.5[x$'''',x$];
+y$''r=y$; y$''-y$'=1.5u; y$''-y$'=y$''''-y$'''=.75(y$''-y$''');
+penpos$''a(stem, angle(z$''-z$''')-90); z$''a=.5[z$'',z$'''];
+filldraw z$'r{up}..z$''l..z$''a.l..z$'''l ..{up}z$''''r--z$''''l{down}..z$'''r..z$''a.r..z$''r..{down}z$'l--cycle;
+penlabels($',$'',$''a,$''',$'''',$);
+enddef;
+
+def acc_tilde(suffix $)suffix modifier:=
+hpos($')(.9stem,-can); hpos($'''')(.9stem,-can); penpos$''(.9stem,90); penpos$'''(.9stem,90);
+x$'l-x$''''r=-7u; .5[x$'l,x$''''r]=x$; x$''=.5[x$',x$]; x$'''=.5[x$'''',x$];
+y$''r=y$; y$''-y$'=if not low.modifier: 1.5fi\\u; y$''-y$'=y$''''-y$'''=.75(y$''-y$''');
+penpos$''a(stem, angle(z$''-z$''')-90); z$''a=.5[z$'',z$'''];
+filldraw z$'r{up}..z$''l..z$''a.l..z$'''l ..{up}z$''''r--z$''''l{down}..z$'''r..z$''a.r..z$''r..{down}z$'l--cycle;
+penlabels($',$'',$''a,$''',$'''',$);
+enddef;
+
+def ogonek(suffix $):=
+.5[z$',z$''']=.5[z$'',z$'''']; y$''''=y$-desc_depth+.5stem; .5[x$',x$''']=x$; x$'''-x$'=-3.5u;
+y$'=y$'''; x$''=x$''''; y$''=y$-.5stem;
+penpos$'(stem,0); penpos$''(stem,90); penpos$'''(stem,180); penpos$''''(stem,-90);
+p:= z$'{up}..{left}z$''..{down}z$'''..{right}z$''''..cycle;
+vpos($''''')(stem,-can); z$'''''=point 3.5 of p; penpos$''''''(stem,135);
+filldraw z$'''l{down}..z$''''l..{direction 3.5 of p}z$'''''r--z$'''''l{dir (angle(direction 3.5 of p)-180)}..z$''''r..{up}z$'''r..z$''r+stem*up--z$''l+stem*up..cycle;
+penlabels($',$'',$''',$'''');
+enddef;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Lowercase
+if italic:
+beginchar("a", x_height#+stem#, x_height#,0);
+z0=(.5w+.5stem,.5h); vpos(1)(stem,can);
+x1r=w-.5u; y1l=0;
+italic_a(0)(w-2u);
+filldraw z14l{down}..{right}z1l--z1r{left}..{up}z14r--cycle;
+penlabels(1,10,11,12,13,14);
+savep;
+endchar;
+
+iff known latin_aacute:
+beginchar(latin_aacute,x_height#+stem#,asc_height#,0);
+usep;
+z0=(5.3u,h);
+acute(0);
+endchar;
+
+iff known latin_aumlaut:
+beginchar(latin_aumlaut,x_height#+stem#,.15[asc_height#,x_height#],0);
+usep;
+z0=(.5w+u,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_agrave:
+beginchar(latin_agrave,x_height#+stem#,asc_height#,0);
+usep;
+z0=(.5w+1.5u,h);
+grave(0);
+endchar;
+
+iff known latin_acircumflex:
+beginchar(latin_acircumflex,7.6u#,asc_height#,0);
+usep;
+z0=(.5w+1.8u,h);
+circumflex(0);
+endchar;
+
+iff known latin_atilde:
+beginchar(latin_atilde,8.6u#,asc_height#,0);
+addto currentpicture also used_p shifted (.2u,0);
+z0=(.5w+u,h);
+acc_tilde(0);
+endchar;
+
+iff known latin_aring:
+beginchar(latin_aring,7.6u#,asc_height#,0);
+usep;
+z0=(.5w+1.7u,h);
+ring(0);
+endchar;
+
+iff known latin_amacron:
+beginchar(latin_amacron,7.6u#,asc_height#,0);
+usep;
+z0=(.5w+u,h);
+macron(0);
+endchar;
+
+iff known latin_abreve:
+beginchar(latin_abreve,7.6u#,asc_height#,0);
+usep;
+z0=(.5w+1.5u,h);
+breve(0);
+endchar;
+
+iff known latin_aogonek:
+beginchar(latin_aogonek, x_height#+stem#, x_height#,desc_depth#);
+z0=(.5w+.5stem,.5h); vpos(1)(stem,can);
+x1r=w-.5u; y1l=0;
+italic_a(0)(w-2u);
+penlabels(1,10,11,12,13,14);
+.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=(w+u)-u; y20=y22; x21=x23; y21-y23=x20-x22; y21=-.5stem;
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90);
+path p;
+p:= z20{up}..{left}z21..{down}z22..{right}z23..cycle;
+vpos(24)(stem,-can); z24=point 3.5 of p; penpos25(stem,135);
+path p[]; numeric t[];
+p1:=z22r{up}..{z1l-z22r}z1r;
+p2:=z1l{left}..{up}z14l--z14r{down}..{right}z1r;
+(t1,t2)=p1 intersectiontimes p2;
+t3-2=xpart(subpath (2,infinity) of p2 intersectiontimes (z21--z10r));
+filldraw z22l{down}..z23l..{direction 3.5 of p}z24r--z24l{dir (angle(direction 3.5 of p)-180)}..z23r..subpath (0,t1) of p1--
+subpath (t2,t3) of p2..z1l{z22r-z1l}..cycle;
+penlabels(20,21,22,23,24,25,100);
+endchar;
+
+else:
+beginchar("a", 7.6u#, x_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); penpos3(stem,90); vpos(4)(stem,-can);
+lft x1r=w-u; y1=0; x2=x1; y2=.72h; x3=.5w; top y3r=h; y4=.9h; x4l=2u;
+filldraw z1l--z1r--z2r{up}..{left}z3r..z4r--z4l..z3l{right}..{down}z2l--cycle;
+serif(4r,angle(z4l-z4r),180+angle(direction 1 of (z3r{left}..z4r)));
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+labels(4l);
+savep;
+endchar;
+
+iff known latin_aacute:
+beginchar(latin_aacute,7.6u#,asc_height#,0);
+usep;
+z0=(5.3u,h);
+acute(0);
+endchar;
+
+iff known latin_aumlaut:
+beginchar(latin_aumlaut,7.6u#,.15[asc_height#,x_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_agrave:
+beginchar(latin_agrave,7.6u#,asc_height#,0);
+usep;
+z0=(.5w,h);
+grave(0);
+endchar;
+
+iff known latin_acircumflex:
+beginchar(latin_acircumflex,7.6u#,asc_height#,0);
+usep;
+z0=(.5w+.25u,h);
+circumflex(0);
+endchar;
+
+iff known latin_atilde:
+beginchar(latin_atilde,8.6u#,asc_height#,0);
+addto currentpicture also used_p shifted (.2u,0);
+z0=(.5w,h);
+acc_tilde(0);
+endchar;
+
+iff known latin_aring:
+beginchar(latin_aring,7.6u#,asc_height#,0);
+usep;
+z0=(.5w+.25u,h);
+ring(0);
+endchar;
+
+iff known latin_amacron:
+beginchar(latin_amacron,7.6u#,asc_height#,0);
+usep;
+z0=(.5w+.5u,h);
+macron(0);
+endchar;
+
+iff known latin_abreve:
+beginchar(latin_abreve,7.6u#,asc_height#,0);
+usep;
+z0=(.5w+.5u,h);
+breve(0);
+endchar;
+
+iff known latin_aogonek:
+beginchar(latin_aogonek,7.6u#,x_height#,desc_depth#);
+path p;
+hpos(1)(stem,can); penpos2(stem,0); penpos3(stem,90); vpos(4)(stem,-can);
+lft x1r=w-u; y1=0; x2=x1; y2=.72h; x3=.5w; top y3r=h; y4=.9h; x4l=2u;
+filldraw z1l--z1r--z2r{up}..{left}z3r..z4r--z4l..z3l{right}..{down}z2l--cycle;
+serif(4r,angle(z4l-z4r),180+angle(direction 1 of (z3r{left}..z4r)));
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+penlabels(1,2,3,4);
+.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=(w+u)-u; y20=y22; x21=x23; y21-y23=x20-x22; y21=-.5stem;
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90);
+p:= z20{up}..{left}z21..{down}z22..{right}z23..cycle;
+vpos(24)(stem,-can); z24=point 3.5 of p; penpos25(stem,135);
+filldraw z22l{down}..z23l..{direction 3.5 of p}z24r--z24l{dir (angle(direction 3.5 of p)-180)}..z23r..{up}z22r..{z1l-z22r}z1l--z1r{down}..z21l..cycle;
+penlabels(20,21,22,23,24,25);
+endchar;
+fi
+
+beginchar("b", 10u#,cap_height#,0);
+penpos1(stem,0); hpos(2)(stem,can);
+x1l=u=x2l; y1=y10; y2r=h;
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+endchar;
+
+beginchar("c", 9u#,x_height#,0);
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .5 of p;
+z2=point 3.5 of p;
+penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p)));
+filldraw z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle;
+c_height:=y2l;
+penlabels(1,2);
+serif(1r,angle(z1l-z1r),180+angle(direction.5 of p));
+savep;
+endchar;
+
+iff known latin_ccaron:
+beginchar(latin_ccaron,9u#,asc_height#,0);
+usep;
+z0=(.5w+.7u,h);
+caron(0);
+endchar;
+
+iff known latin_cacute:
+beginchar(latin_cacute,9u#,asc_height#,0);
+usep;
+z0=(.5w+1.9u,h);
+acute(0);
+endchar;
+
+iff known latin_ccircumflex:
+beginchar(latin_ccircumflex,9u#,asc_height#,0);
+usep;
+z0=(.5w+.75u,h);
+circumflex(0);
+endchar;
+
+iff known latin_cdotabove:
+beginchar(latin_cdotabove,9u#,.15[asc_height#,x_height#],0);
+usep;
+z0=(.5w+.5u,h-.6stem);
+acc_dot(0);
+endchar;
+
+
+iff known latin_ccedilla:
+beginchar(latin_ccedilla,9u#,x_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(.5w,.5stem);
+cedilla(0);
+endchar;
+
+beginchar("d", 10u#,cap_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,can);
+x1r=w-u=x2r; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+savep;
+endchar;
+
+iff known latin_dcaron:
+beginchar(latin_dcaron,12u#,cap_height#,0);
+usep;
+z0=(w-1.8u,h);
+ac_caron(0);
+endchar;
+
+iff known latin_dslash:
+beginchar(latin_dslash,10.5u#,cap_height#,0);
+usep;
+y0=.75h; rt x0''=w-.75u;
+macron(0);
+endchar;
+
+iff known latin_eth:
+beginchar(latin_eth, 10u#,cap_height#,0);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+hpos(1)(stem,can); vpos(2)(stem,-can);
+x1r=w-u; x2=.3w; y1=y10; y2r=.9h;
+filldraw z1l--z1r{up}..z2r--z2l..{down}cycle;
+z0=((.5w,0)--(.5w,h)) intersectionpoint (z1{up}..z2);
+.5[z3,z4]=z0; z3-z4=(4u,0) rotated 30;
+penpos3(.9stem,120); penpos4(.9stem,120-can);
+filldraw z3r--z3l--z4l--z4r--cycle;
+penlabels(3,4);
+endchar;
+
+beginchar("e", 9u#,x_height#,0);
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .5 of p;
+z2=point 3.5 of p;
+z3=((0,.25h)--(.5w,.25h)) intersectionpoint p;
+penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p)));
+penpos3(stem,(90+angle(z3-z1))); z1''=(subpath (0,.5) of (z1r--z3r)) intersectionpoint p; z1'''=z1''+stem*dir(270+angle(z3-z1));
+z1'=(z1'''--z3l) intersectionpoint (z11l{right}..z1l);
+filldraw z3r--z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1'--z3l--cycle;
+penlabels(3); labels(1'', 1');
+savep;
+endchar;
+
+iff known latin_eacute:
+beginchar(latin_eacute,9u#,asc_height#,0);
+usep;
+z0=(6.5u,h);
+acute(0);
+endchar;
+
+iff known latin_ecaron:
+beginchar(latin_ecaron,9u#,asc_height#,0);
+usep;
+z0=(.5w+.56u,h);
+caron(0);
+endchar;
+
+iff known latin_egrave:
+beginchar(latin_egrave,9u#,asc_height#,0);
+usep;
+z0=(.5w-.56u,h);
+grave(0);
+endchar;
+
+iff known latin_eumlaut:
+beginchar(latin_eumlaut,9u#,.15[asc_height#,x_height#],0);
+usep;
+z0=(.5w+.5u,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_ecircumflex:
+beginchar(latin_ecircumflex,9u#,asc_height#,0);
+usep;
+z0=(.5w+.56u,h);
+circumflex(0);
+endchar;
+
+iff known latin_emacron:
+beginchar(latin_emacron,9u#,asc_height#,0);
+usep;
+z0=(.5w+.4u,h);
+macron(0);
+endchar;
+
+iff known latin_ebreve:
+beginchar(latin_ebreve,9u#,asc_height#,0);
+usep;
+z0=(.5w+.56u,h);
+breve(0);
+endchar;
+
+iff known latin_edotabove:
+beginchar(latin_edotabove,9u#,.15[asc_height#,x_height#],0);
+usep;
+z0=(.5w+.75u,h-.6stem);
+acc_dot(0);
+endchar;
+
+iff known latin_eogonek:
+beginchar(latin_eogonek,9u#,x_height#,desc_depth#);
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .5 of p;
+z2=point 3.5 of p;
+z3=((0,.25h)--(.5w,.25h)) intersectionpoint p;
+penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p)));
+penpos3(stem,(90+angle(z3-z1))); z1''=(subpath (0,.5) of (z1r--z3r)) intersectionpoint p; z1'''=z1''+stem*dir(270+angle(z3-z1));
+z1'=(z1'''--z3l) intersectionpoint (z11l{right}..z1l);
+filldraw z3r--z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1'--z3l--cycle;
+penlabels(1,2,3,4,12); labels(1'', 1');
+vpos(5)(stem,-can); x5=x2; y5=-.8d; penpos6(stem,0); y6=-.5d; (x5-x6)/(y6-y5)=(x2-x12)/(y12-y2);
+filldraw z2l{dir (angle(direction 3.5 of p)-180)}..{down}z6r..z5r--z5l..z6l{up}..{dir angle(direction 3.5 of p)}z2r--cycle;
+penlabels(5,6);
+endchar;
+
+beginchar("f", 6u#,cap_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can);
+x1l=2u=x2l; y1=0; y2=.8h;
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle;
+vpos(4)(stem,can); penpos5(stem,90);
+y4=y5=x_height; x4l=u; x5=w-u;
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(3);
+serif(3r)(angle(z3l-z3r),180-angle(direction 0 of (z3r..{left}z11r)));
+endchar;
+
+iff known latin_long_s:
+beginchar(latin_long_s, 6u#,cap_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can);
+x1l=2u=x2l; y1=0; y2=.8h;
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle;
+penlabels(3);
+serif(3r)(angle(z3l-z3r),180-angle(direction 0 of (z3r..{left}z11r)));
+endchar;
+
+if italic:
+beginchar("g", x_height#+stem#, x_height#,desc_depth#);
+z0=(.5w+.5stem,.5h); vpos(1)(stem,can); penpos2(stem,0);
+x1r=x12l; y1l=-.95d; y2=0; x2=x14;
+italic_a(0)(w-2u);
+filldraw z14l---z2l..z1r--z1l..z2r---z14r--cycle;
+savep;
+penlabels(1,2,10,11,12,13,14);
+endchar;
+else:
+beginchar("g", 9.5u#,x_height#,desc_depth#);
+.5[z10,z12]=.5[z11,z13];
+x10+.5stem=w-1.5u; y10=y12; x11=x13; y11=h-.5stem; x12-.5stem=2u;
+penpos20(stem,180); penpos21(stem,270); penpos23(stem,90);
+.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=w-u; y20=y22; x21=x23;
+y21=y13; y21-y23=x20-x22;
+x22-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+path p;
+p:=subpath(2.2,5.4) of (z20{up}..{left}z21..{down}z22..{right}z23..cycle);
+z1=point 0 of p; z2=point 4 of p;
+penpos1(stem,90+angle(direction 0 of p)+can); penpos2(stem,90+angle(direction 4 of p)-can);
+filldraw (z1l..{right}z23l..{up}z20l..{left}z21l..z2l--z2r..{right}z21r..{down}z20r..{left}z23r..z1r--cycle);
+vpos(3)(stem,can); penpos4(stem,90);
+z4=z11; x3r=w-u; y3r=h;
+filldraw z4r--z3r--z3l--z4l--cycle;
+serif(2l)(angle(z2r-z2l),0);
+savep;
+penlabels(1,2,3,4);
+endchar;
+fi
+
+iff known latin_gcircumflex:
+beginchar(latin_gcircumflex,9.5u#,asc_height#,desc_depth#);
+usep;
+z0=(.5w+.5u,h);
+circumflex(0);
+endchar;
+
+iff known latin_gbreve:
+beginchar(latin_gbreve,9.5u#,asc_height#,desc_depth#);
+usep;
+z0=(.5w+.5u,h);
+breve(0);
+endchar;
+
+iff known latin_gdotabove:
+beginchar(latin_gdotabove,9.5u#,.15[asc_height#,x_height#],desc_depth#);
+usep;
+z0=(.5w+.5u,h-.6stem);
+acc_dot(0);
+endchar;
+
+iff known latin_gcedilla:
+beginchar(latin_gcedilla,9.5u#,x_height#,1.75desc_depth#-.5stem#);
+usep;
+z0=(.5w-u,-desc_depth+.5stem);
+cedilla(0);
+endchar;
+
+beginchar("h", 9u#,cap_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can);
+x1l=u=x2l; y1=y5=0; y2r=h; y4=.7x_height; x5r=x4r=w-u;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+1u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+filldraw z4r{up}..z11r{left}..{down}z12l--z12r{up}..{right}z11l..{down}z4l--z5l--z5r--cycle;
+penlabels(3);
+savep;
+endchar;
+
+iff known latin_hcircumflex:
+beginchar(latin_hcircumflex,9u#,Asc_height#,0);
+usep;
+z0=(.5w+.5u,h);
+circumflex(0);
+endchar;
+
+iff known latin_hbar:
+beginchar(latin_hbar,10u#,cap_height#,0);
+addto currentpicture also used_p shifted (u,0);;
+vpos(1)(.75stem,can); vpos(2)(.75stem,0);
+lft x1l=u; rt x2=.75w; y1=y2=.75h;
+filldraw z1r--z2r--z2l--z1l--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar(16, 3u#,x_height#,0); %dotless i
+hpos(1)(stem,can); hpos(2)(stem,can);
+x1=.5w=x2; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+savep;
+endchar;
+
+beginchar("i", 3u#,.15[asc_height#,x_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+acc_dot(0);
+endchar;
+
+iff known latin_iacute:
+beginchar(latin_iacute, 3u#,asc_height#,0);
+usep;
+z0=(2.75u,h);
+acute(0);
+endchar;
+
+iff known latin_igrave:
+beginchar(latin_igrave, 3u#,asc_height#,0);
+usep;
+z0=(.45u,h);
+grave(0);
+endchar;
+
+iff known latin_icircumflex:
+beginchar(latin_icircumflex, 5u#,asc_height#,0);
+addto currentpicture also used_p shifted (u,0);
+z0=(.5w,h);
+circumflex(0);
+endchar;
+
+iff known latin_iumlaut:
+beginchar(latin_iumlaut, 5u#,.15[asc_height#,x_height#],0);
+addto currentpicture also used_p shifted (u,0);
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_itilde:
+beginchar(latin_itilde, 8u#,asc_height#,0);
+addto currentpicture also used_p shifted (2.5u,0);
+z0=(.5w,h);
+acc_tilde(0);
+endchar;
+
+iff known latin_imacron:
+beginchar(latin_imacron, 5.5u#,asc_height#,0);
+addto currentpicture also used_p shifted (1.25u,0);
+z0=(.5w,h);
+macron(0);
+endchar;
+
+iff known latin_ibreve:
+beginchar(latin_ibreve, 6.5u#,asc_height#,0);
+addto currentpicture also used_p shifted (1.75u,0);
+z0=(.5w,h);
+breve(0);
+endchar;
+
+iff known latin_iogonek:
+beginchar(latin_iogonek, 3u#,.15[asc_height#,x_height#],desc_depth#);
+usep;
+z0=(.5w,h-.6stem); z1=(.5w+.5stem,0);
+acc_dot(0);
+ogonek(1);
+endchar;
+
+beginchar(17, 3u#,x_height#,4u#-.5stem#); %dotless j
+hpos(1)(stem,0); hpos(2)(stem,can); vpos(3)(stem,can);
+x1=.5w=x2; y1=-u; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+path p;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y10=0; x10+.5stem=w-u; y10=y12;
+x11=x13; y11-y13=x10-x12; x12-.5stem=2u-(w+4u);
+p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle;
+z3l=z13l;
+filldraw z3l{right}..{up}z1r--z2r--z2l--z1l{down}..{left}z3r--cycle;
+serif(3l)(angle(z3r-z3l),angle(direction 0 of (z3l..{right}z13r)));
+savep;
+penlabels(3,10,11,12,13);
+endchar;
+
+beginchar("j", 3u#,.15[asc_height#,x_height#],4u#-.5stem#);
+usep;
+z0=(.5w,h-.6stem);
+acc_dot(0);
+endchar;
+
+iff known latin_jcircumflex:
+beginchar(latin_jcircumflex, 5u#,asc_height#,4u#-.5stem#);
+addto currentpicture also used_p shifted (u,0);
+z0=(.5w,h);
+circumflex(0);
+endchar;
+
+beginchar("k", 8u#, cap_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,can); hpos(4)(stem,-can); hpos(6)(stem,can);
+x1l=u=x2l; y1=0; y2r=h; x4r=x6r=w-u; y4r=x_height; y6=0; x5l=.25[x2r,x2l]; y5l=.6y4;
+penpos5(stem/cosd(angle(z4l-z5l)),0);
+filldraw z1l--z1r--z2r--z2l--cycle;
+filldraw z4l--z5l--z6l--z6r--z5r--z4r--cycle;
+serif(2r)(angle(z2l-z2r),270); serif(4r)(angle(z4l-z4r),180+ angle(z4r-z5r));
+penlabels(1,2,3,4,5,6);
+savep;
+endchar;
+
+iff known latin_kcedilla:
+beginchar(latin_kcedilla, 8u#,cap_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(.5w-u,0);
+cedilla(0);
+endchar;
+
+iff known latin_kra:
+"Greenlandic kra";
+beginchar(latin_kra, 8u#, x_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,can); hpos(4)(stem,-can); hpos(6)(stem,can);
+x1l=u=x2l; y1=0; y2r=h; x4r=x6r=w-u; y4r=x_height; y6=0; x5l=.25[x2r,x2l]; y5l=.6y4;
+penpos7(stem,-90); y7l=h; x7=.78w;
+x8l=w-u; z8r=z7r; y8l=y8r+stem+-+(x8l-x8r);
+penpos5(stem/cosd(angle(z4l-z5l)),0);
+filldraw z1l--z1r--z2r--z2l--cycle;
+filldraw z8l..z7l{left}..z5l--z6l--z6r--z5r..{right}z7r--cycle;
+serif(2r)(angle(z2l-z2r),270);
+penlabels(1,2,3,5,6,7,8);
+endchar;
+
+beginchar("l", 3u#,cap_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,can);
+x1=.5w=x2; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+savep;
+endchar;
+
+iff known latin_lacute:
+beginchar(latin_lacute, 3u#, Asc_height#,0);
+usep;
+z0=(2.75u,h);
+acute(0);
+endchar;
+
+iff known latin_lcaron:
+beginchar(latin_lcaron, 5u#, cap_height#,0);
+usep;
+z0=(w-1.5u,h);
+ac_caron(0);
+endchar;
+
+iff known latin_lstroke:
+beginchar(latin_lstroke, 5u#, cap_height#,0);
+addto currentpicture also (used_p shifted (u,0));
+vpos(1)(stem,can); penpos2(stem,90);
+y1=.65h; y2=.8h; x1l=.5u; x2=w-.5u;
+filldraw z1l--z2l--z2r--z1r--cycle;
+penlabels(1,2);
+endchar;
+
+iff known latin_lcedilla:
+beginchar(latin_lcedilla, 5u#, cap_height#,.75desc_depth#-.5stem#);
+addto currentpicture also used_p shifted (u,0);
+z0=(.3w,.5stem);
+cedilla(0);
+endchar;
+
+iff known latin_ldot:
+beginchar(latin_ldot, 5u#, cap_height#,0);
+usep;
+z0=(3.5u,.6h);
+dot(0);
+endchar;
+
+beginchar("m", 12u#,x_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can);
+penpos6(stem,0); hpos(7)(stem,can);
+x1l=u=x2l; y1=y5=y7=0; y2r=h; y4=y6=.7h; x5=x4; x6r=x7r=w-u; x6r-x4r=x4r-x1r;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w-3u)-u; y10=y12; x11=x13; y11-y13-u=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+filldraw z4r{up}..z11r{left}..{down}z12l--z12r{up}..{right}z11l..{down}z4l--z5l--z5r--cycle;
+filldraw z6r{up}..((z11r{left}..{down}z12l--z12r{up}..{right}z11l) shifted (z6r-z4r))..{down}z6l--z7l--z7r--cycle;
+penlabels(3);
+endchar;
+
+beginchar("n", 9u#,x_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can);
+x1l=u=x2l; y1=y5=0; y2r=h; y4=.7h; x5r=x4r=w-u;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+1u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+filldraw z4r{up}..z11r{left}..{down}z12l--z12r{up}..{right}z11l..{down}z4l--z5l--z5r--cycle;
+penlabels(3);
+savep;
+endchar;
+
+iff known latin_ncaron:
+beginchar(latin_ncaron,9u#,asc_height#,0);
+usep;
+z0=(.5w+.5u,h);
+caron(0);
+endchar;
+
+iff known latin_nacute:
+beginchar(latin_nacute,9u#,asc_height#,0);
+usep;
+z0=(.5w+1.5u,h);
+acute(0);
+endchar;
+
+iff known latin_ntilde:
+beginchar(latin_ntilde,9u#,asc_height#,0);
+usep;
+z0=(.5w,h);
+acc_tilde(0);
+endchar;
+
+iff known latin_ncedilla:
+beginchar(latin_ncedilla,9u#,x_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(.5w-.75u,0);
+cedilla(0);
+endchar;
+
+iff known latin_napostrophe:
+beginchar(latin_napostrophe,10.5u#,asc_height#,0);
+addto currentpicture also used_p shifted (1.5u,0);
+z0=(2u,h);
+quota(0);
+endchar;
+
+iff known latin_eng:
+beginchar(latin_eng, 9u#,x_height#,desc_depth#);
+hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can);
+x1l=u=x2l; y1=0; y5=-d; y2r=h; y4=.7h; x5r=x4r=w-u;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+1u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+filldraw z4r{up}..z11r{left}..{down}z12l--z12r{up}..{right}z11l..{down}z4l--z5l--z5r--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("o", 10u#,x_height#,0);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+savep;
+endchar;
+
+iff known latin_oacute:
+beginchar(latin_oacute,10u#,asc_height#,0);
+usep;
+z0=(6.5u,h);
+acute(0);
+endchar;
+
+iff known latin_oacute:
+beginchar(latin_ograve,10u#,asc_height#,0);
+usep;
+z0=(4u,h);
+grave(0);
+endchar;
+
+iff known latin_ocircumflex:
+beginchar(latin_ocircumflex,10u#,asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0);
+endchar;
+
+iff known latin_oumlaut:
+beginchar(latin_oumlaut,10u#,.15[asc_height#,x_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_otilde:
+beginchar(latin_otilde,10u#,asc_height#,0);
+usep;
+z0=(.5w+.5u,h);
+acc_tilde(0);
+endchar;
+
+iff known latin_omacron:
+beginchar(latin_omacron,10u#,asc_height#,0);
+usep;
+z0=(.5w,h);
+macron(0);
+endchar;
+
+iff known latin_obreve:
+beginchar(latin_obreve,10u#,asc_height#,0);
+usep;
+z0=(.5w+.25u,h);
+breve(0);
+endchar;
+
+iff known latin_ohungarumlaut:
+beginchar(latin_ohungarumlaut,10u#,asc_height#,0);
+usep;
+z0=(.5w+u,h);
+H_umlaut(0);
+endchar;
+
+beginchar("p", 10u#,x_height#,desc_depth#);
+hpos(1)(stem,can); hpos(2)(stem,can);
+x1l=u=x2l; y1=-d; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+endchar;
+
+iff known latin_thorn:
+beginchar(latin_thorn, 10u#,cap_height#,desc_depth#);
+hpos(1)(stem,can); hpos(2)(stem,can);
+x1l=u=x2l; y1=-d; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+endchar;
+
+beginchar("q", 10u#,x_height#,desc_depth#);
+hpos(1)(stem,can); hpos(2)(stem,-can);
+x1r=w-u=x2r; y1=-d; y2l=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+z2l'=z2l+.45stem*down;
+serif(2l')(angle(z2r-z2l),90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+endchar;
+
+beginchar("r", 6u#,x_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,can); vpos(3)(stem,can);
+x1l=u=x2l; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+filldraw z3r..z11r{left}..{down}z12l--z12r{up}..{right}z11l--cycle;
+serif(2r)(angle(z2l-z2r),270); serif(3r)(angle(z3l-z3r),180+angle(direction 0 of (z3r..{left}z11r)));
+penlabels(3);
+savep;
+endchar;
+
+iff known latin_rcaron:
+beginchar(latin_rcaron,6u#,asc_height#,0);
+usep;
+z0=(.5w+.2u,h);
+caron(0);
+endchar;
+
+iff known latin_racute:
+beginchar(latin_racute,6u#,asc_height#,0);
+usep;
+z0=(.5w-.2u,h);
+acute(0);
+endchar;
+
+iff known latin_rcedilla:
+beginchar(latin_rcedilla,6u#,x_height#,.75desc_depth#-stem#);
+usep;
+z0=(1.5u,stem);
+cedilla(0);
+endchar;
+
+beginchar("s",8u#,x_height#,0);
+numeric theta;
+path p;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w); y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=0;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .5 of p;
+z2=point 1.5 of p;
+z3=point 2.5 of p;
+z4=point 3.5 of p;
+theta:=280+angle(z4-z2);
+penpos1(stem,(170-angle(direction .5 of p))); penpos2(stem,theta);
+penpos3(stem,(-10-angle(direction 2.5 of p))); penpos4(stem,theta);
+penpos5(stem,theta); z5=(.5w,.5h);
+%z2l'=z2l+(.8stem,0) rotated (90+theta);
+z2l'=z2r+1.1stem*dir10;
+z4r'=z4r+(.8stem,0) rotated (theta-90);
+filldraw z1r..{left}z11r..z2r..z5r..z4r'..{left}z13r..z3r--z3l..{right}z13l..z4l..z5l..z2l'..{right}z11l..z1l--cycle;
+penlabels(1,2,3,4,5,11);
+labels(2l',4r');
+serif(1r)(angle(z1l-z1r),90-angle(direction 0 of (z1r..{left}z11r)));
+savep;
+endchar;
+
+iff known latin_scaron:
+beginchar(latin_scaron,8u#,asc_height#,0);
+usep;
+z0=(.5w+.3u,h);
+caron(0);
+endchar;
+
+iff known latin_sacute:
+beginchar(latin_sacute,8u#,asc_height#,0);
+usep;
+z0=(.5w+u,h);
+acute(0);
+endchar;
+
+iff known latin_scircumflex:
+beginchar(latin_scircumflex,8u#,asc_height#,0);
+usep;
+z0=(.5w+.25u,h);
+circumflex(0);
+endchar;
+
+iff known latin_scedilla:
+beginchar(latin_scedilla,8u#,x_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(.5w-u,.5stem);
+cedilla(0);
+endchar;
+
+beginchar("t", 7u#,.5[x_height#,cap_height#],0);
+hpos(1)(stem,0); hpos(2)(stem,can); vpos(3)(stem,-can);
+vpos(4)(stem,can); penpos5(stem,90);
+y4=y5=x_height; x4l=u; x5=w-u;
+x1l=2u=x2l; y2r=h;
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z13l; y1=y12-2u;
+filldraw z1l--z1r--z2r--z2l--cycle;
+filldraw z12r+2u*down{down}..{right}z3r--z3l{left}..{up}z12l+2u*down--cycle;
+filldraw z4l--z5l--z5r--z4r--cycle;
+serif(3l)(angle(z3r-z3l),+angle(direction 0 of (z3r..{left}z13r)));
+penlabels(1,2,3,4,5);
+savep;
+endchar;
+
+iff known latin_tcaron:
+beginchar(latin_tcaron,7u#,.4[cap_height#,x_height#],0);
+usep;
+z0=(2u+2stem+.5u,h);
+ac_caron(0);
+endchar;
+
+iff known latin_tcommaaccent:
+beginchar(latin_tcommaaccent,7u#,.5[cap_height#,x_height#],2.5u#);
+usep;
+y1r=-.5u; y2l=-d; x1r-x2l=2u; .5[x1r,x2l]=.5w;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+endchar;
+
+iff known latin_tbar:
+beginchar(latin_tbar,7u#,.4[cap_height#,x_height#],0);
+usep;
+vpos(1)(.75stem,can); vpos(2)(.75stem,0);
+lft x1l=u; rt x2=w-2u; y1=y2=.7x_height;
+filldraw z1r--z2r--z2l--z1l--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("u", 9u#,x_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,-can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can);
+x1r=w-u=x2r; y1=0; y2l=y5r=h; y4=.3h; x5l=u; x4r=w-u;
+filldraw z1l--z1r--z2r--z2l--cycle;
+serif(2r)(angle(z2l-z2r),270);
+path p;
+penpos10(stem,180);penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+0u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+filldraw z10l{down}..z13l{left}..{up}z12l--z5l--z5r--z12r{down}..{right}z13r..{up}z10r--cycle;
+serif(5r)(angle(z5l-z5r),270);
+penlabels(1,2,3,4,5,6);
+savep;
+endchar;
+
+iff known latin_uacute:
+beginchar(latin_uacute,9u#,asc_height#,0);
+usep;
+z0=(5u,h);
+acute(0);
+endchar;
+
+iff known latin_ugrave:
+beginchar(latin_ugrave,9u#,asc_height#,0);
+usep;
+z0=(3.5u,h);
+grave(0);
+endchar;
+
+iff known latin_ucircumflex:
+beginchar(latin_ucircumflex,9u#,asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0);
+endchar;
+
+iff known latin_uring:
+beginchar(latin_uring,9u#, asc_height#,0);
+usep;
+z0=(.5w,h);
+ring(0);
+endchar;
+
+iff known latin_utilde:
+beginchar(latin_utilde,9u#, asc_height#,0);
+usep;
+z0=(.5w,h);
+acc_tilde(0);
+endchar;
+
+iff known latin_uumlaut:
+beginchar(latin_uumlaut,9u#, .15[asc_height#,x_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_umacron:
+beginchar(latin_umacron,9u#, asc_height#,0);
+usep;
+z0=(.5w,h);
+macron(0);
+endchar;
+
+iff known latin_ubreve:
+beginchar(latin_ubreve,9u#, asc_height#,0);
+usep;
+z0=(.5w,h);
+breve(0);
+endchar;
+
+iff known latin_uhungarumlaut:
+beginchar(latin_uhungarumlaut,9u#, asc_height#,0);
+usep;
+z0=(.5w+.75u,h);
+H_umlaut(0);
+endchar;
+
+iff known latin_uogonek:
+beginchar(latin_uogonek,9u#, x_height#,desc_depth#);
+usep;
+z0=(.5w+.75u,0);
+ogonek(0);
+endchar;
+
+beginchar("v", 10u#,x_height#,0);
+numeric theta;
+hpos(1)(stem,-can); hpos(2)(stem,can);
+x1r=w-u; y1l=h=y2r; x2l=u; z3l=(.5w,0);
+theta:=90+angle(z1r-z3l);
+penpos3(stem/sind(theta),90);
+filldraw z1l--z3r--z2r--z2l--z3l--z1r--cycle;
+penlabels(1,2,3,4);
+serif(1r)(angle(z1l-z1r),180+angle(z1r-z3r));serif(2r)(angle(z2l-z2r),180+angle(z2r-z3r));
+endchar;
+
+beginchar("w", 14u#,x_height#,0);
+numeric theta;
+hpos(1)(stem,-can); hpos(2)(stem,can);
+x1r=w-u; y1l=h=y2r; x2l=u; z3r=(.5w,h); y4l=y5l=0; .5[x4l,x5l]=x3; x5l=.75w-u;
+theta:=90+angle(z1r-z5l);
+penpos4(stem/sind(theta),90); penpos5(stem/sind(theta),90);
+penpos3(stem/cosd(angle(z5r-z3r)),90);
+z4'=whatever[z2r,z4r]=whatever[z3r,z4l+z3r-z3l];
+z5'=whatever[z1r,z5r]=whatever[z3r,z5l+z3r-z3l];
+filldraw z1l--z1r--z5l--z3l--z4l--z2l--z2r--z4'--z3r--z5'--cycle;
+penlabels(1,2,3,4,5);
+serif(1r)(angle(z1l-z1r),180+angle(z1r-z3r));serif(2r)(angle(z2l-z2r),180+angle(z2r-z3r));
+savep;
+endchar;
+
+iff known latin_wcircumflex:
+beginchar(latin_wcircumflex,14u#, asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0);
+endchar;
+
+beginchar("x", 8.5u#,x_height#,0);
+numeric theta;
+hpos(1)(stem,-can); hpos(2)(stem,can);
+hpos(3)(stem,-can); hpos(4)(stem,can);
+x1r=w-u=x4r; y1l=h=y2r; x2l=x3l=u; y3r=y4l=0;
+filldraw z1l--z3l--z3r--z1r--cycle;
+filldraw z2l--z4l--z4r--z2r--cycle;
+penlabels(1,2,3,4);
+serif(1r)(angle(z1l-z1r),180+angle(z1r-z3r));serif(2r)(angle(z2l-z2r),180+angle(z2r-z4r));
+endchar;
+
+beginchar("y", 10u#,x_height#,desc_depth#);
+hpos(1)(stem,-can); hpos(2)(stem,-can); hpos(3)(stem,can);
+x1r=w-u; y1l=h=y3r; x3l=u; y2r=-d; x2l=2u; z4l=whatever[z1l,z2l]; y4l=c_height;
+z4r=z4l+(stem/sind(angle(z3l-z4l)),0) rotated (angle(z1l-z4l)-10);
+filldraw z1l--z1r--z2r--z2l--cycle;
+filldraw z3l--z3r--z4r--z4l--cycle;
+penlabels(1,2,3,4);
+serif(3r)(angle(z3l-z3r),180+angle(z3r-z4r));serif(1r)(angle(z1l-z1r),180+angle(z1r-z2r));
+savep;
+endchar;
+
+iff known latin_yacute:
+beginchar(latin_yacute, 10u#,asc_height#,desc_depth#);
+usep;
+z0=(.5w+.5u,h);
+acute(0);
+endchar;
+
+iff known latin_yumlaut:
+beginchar(latin_yumlaut,10u#, .15[asc_height#,x_height#],desc_depth#);
+usep;
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_ycircumflex:
+beginchar(latin_ycircumflex, 10u#,asc_height#,desc_depth#);
+usep;
+z0=(.5w,h);
+circumflex(0);
+endchar;
+
+beginchar("z", 8u#, x_height#, 0);
+vpos(1)(stem,can); vpos(4)(stem,0);
+x1l=u=x3; x2=w-u=x4r; y1r=h=y2; y4l=y3=0;
+y3'=stem; y2'=h-stem; x3'-x3=x2-x2'; y2''=h; x2''=x2-1.2stem; z2'=whatever[z3,z2''];
+filldraw z1r--z2--z3'--z4r--z4l--z3--z2'--z1l--cycle;
+serif(1r)(angle(z1l-z1r),0);
+penlabels(1,4); labels(2,2',3,3');
+savep;
+endchar;
+
+iff known latin_zcaron:
+beginchar(latin_zcaron,8u#,asc_height#,0);
+usep;
+z0=(.5w,h);
+caron(0);
+endchar;
+
+iff known latin_zacute:
+beginchar(latin_zacute,8u#,asc_height#,0);
+usep;
+z0=(.5w+u,h);
+acute(0);
+endchar;
+
+iff known latin_zdotabove:
+beginchar(latin_zdotabove,8u#,.15[asc_height#,x_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+acc_dot(0);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Uppercase
+beginchar("A", 14u#,cap_height#,0);
+numeric theta;
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,-can);
+x1r=w-u; y1l=0=y2r; x2l=u; z3r=(.5w,h);
+theta:=90+angle(z1r-z3r);
+penpos3(cap_stem/sind(theta),90);
+filldraw z1r--z3r--z2l--z2r--z3l--z1l--cycle;
+y4r-y4l=cap_stem; y5r=y4r; y5l=y4l; .5[y4r,y4l]=.6x_height;
+z4r=whatever[z1,z3]; z4l=whatever[z1,z3]; z5l=whatever[z3,z2]; z5r=whatever[z3,z2];
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5);
+savep;
+endchar;
+
+iff known latin_Aacute:
+beginchar(latin_Aacute,14u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+acute(0).low;
+endchar;
+
+iff known latin_Aumlaut:
+beginchar(latin_Aumlaut,14u#,.3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_Agrave:
+beginchar(latin_Agrave,14u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+grave(0).low;
+endchar;
+
+iff known latin_Acircumflex:
+beginchar(latin_Acircumflex,14u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0).low;
+endchar;
+
+iff known latin_Atilde:
+beginchar(latin_Atilde,14u#,Asc_height#,0);
+usep;
+z0=(.5w+.5u,h);
+acc_tilde(0).low;
+endchar;
+
+iff known latin_Amacron:
+beginchar(latin_Amacron,14u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+macron(0);
+endchar;
+
+iff known latin_Abreve:
+beginchar(latin_Abreve,14u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+breve(0);
+endchar;
+
+iff known latin_Aring:
+beginchar(latin_Aring,14u#,Asc_height#-1.25u#-.75cap_stem#,0);
+usep;
+z0=(.5w,h);
+ring(0).low;
+endchar;
+
+iff known latin_Aogonek:
+beginchar(latin_Aogonek,14u#,cap_height#,desc_depth#);
+numeric theta;
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,-can);
+x1r=w-u; y1l=0=y2r; x2l=u; z3r=(.5w,h);
+theta:=90+angle(z1r-z3r);
+penpos3(cap_stem/sind(theta),90);
+filldraw z1r--z3r--z2l--z2r--z3l--z1l--cycle;
+y4r-y4l=cap_stem; y5r=y4r; y5l=y4l; .5[y4r,y4l]=.6x_height;
+z4r=whatever[z1,z3]; z4l=whatever[z1,z3]; z5l=whatever[z3,z2]; z5r=whatever[z3,z2];
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5);
+.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=(w+u)-u; y20=y22; x21=x23; y21-y23=x20-x22; y21=-.5stem;
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90);
+p:= z20{up}..{left}z21..{down}z22..{right}z23..cycle;
+vpos(24)(stem,-can); z24=point 3.5 of p; penpos25(stem,135);
+filldraw z22l{down}..z23l..{direction 3.5 of p}z24r--z24l{dir (angle(direction 3.5 of p)-180)}..z23r..{up}z22r..{z1l-z22r}z1l--z1r{down}..z21l..cycle;
+penlabels(20,21,22,23,24,25);
+endchar;
+
+beginchar("B", 12u#,cap_height#,0);
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,0);
+x1l=u=x2l; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; y13=.5h;%x12-.5cap_stem=2u;
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+penpos2'(cap_stem,90); penpos2''(cap_stem,270);
+.5[y2'',y2']=y10; x2'=x2''=x2r; y2'r=y2r;
+filldraw z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle;
+filldraw (z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle) shifted (0,-.5h+.5cap_stem);
+endchar;
+
+beginchar("C", 12.5u#,cap_height#,0);
+path p;
+penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=(w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .68 of p;
+z2=point 3.28 of p;
+vpos(1)(cap_stem,-.5can); vpos(2)(cap_stem,.5can);
+filldraw z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle;
+penlabels(1,2);
+savep;
+endchar;
+
+iff known latin_Ccaron:
+beginchar(latin_Ccaron,12.5u#,Asc_height#,0);
+usep;
+z0=(.65w,h);
+caron(0).low;
+endchar;
+
+iff known latin_Cacute:
+beginchar(latin_Cacute,12.5u#,Asc_height#,0);
+usep;
+z0=(.75w,h);
+acute(0).low;
+endchar;
+
+iff known latin_Ccircumflex:
+beginchar(latin_Ccircumflex,12.5u#,Asc_height#,0);
+usep;
+z0=(.5w+2u,h);
+circumflex(0).low;
+endchar;
+
+iff known latin_Cdotabove:
+beginchar(latin_Cdotabove,12.5u#,.3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w+2u,h-.6stem);
+acc_dot(0);
+endchar;
+
+iff known latin_Ccedilla:
+beginchar(latin_Ccedilla,12.5u#,Asc_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(.5w,.5stem);
+cedilla(0);
+endchar;
+
+iff known sign_euro:
+beginchar(sign_euro,11u#,cap_height#,0);
+path p;
+penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=(w+3.5u)-u; y10=y12; x11=x13; y11=h-.5cap_stem; x12-.5cap_stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .68 of p;
+z2=point 3.28 of p;
+vpos(1)(cap_stem,-.5can); vpos(2)(cap_stem,.5can);
+filldraw z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle;
+penpos3(.75stem,90); vpos(4)(.75stem,can); y3=.55h; y4=.6h;
+x4r=.75w; x3l=x12;
+filldraw z3r--z4r--z4l--z3l--cycle;
+filldraw (z3r--z4r--z4l--z3l--cycle) shifted (0,-2stem);
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("D", 13u#,cap_height#,0);
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,0);
+x1l=u=x2l; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y13=.5cap_stem; x12-.5cap_stem=0;
+penpos2'(cap_stem,90); penpos2''(cap_stem,270);
+.5[y2'',y2']=y10; x2'=x2''=x2r; y2'r=y2r;
+filldraw z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle;
+savep;
+endchar;
+
+iff known latin_Dcaron:
+beginchar(latin_Dcaron,13u#,Asc_height#,0);
+usep;
+z0=(.35w,h);
+caron(0).low;
+endchar;
+
+iff known latin_Dstroke:
+beginchar(latin_Dstroke,14u#,cap_height#,0);
+addto currentpicture also used_p shifted (u,0);
+z0=(3u,.55h);
+macron(0);
+endchar;
+
+iff known latin_Eth:
+beginchar(latin_Eth,14u#,cap_height#,0);
+addto currentpicture also used_p shifted (u,0);
+z0=(3u,.55h);
+macron(0);
+endchar;
+
+beginchar("E", 11u#,cap_height#,0);
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); vpos(3)(cap_stem,-can); penpos4(cap_stem,90); vpos(5)(cap_stem,0); vpos(6)(cap_stem,can);
+x1l=u=x2l; y1=y6l=0; y2r=h; y3r=h; x3l=x6r=w-u; x2r=x4; y4=y5=.5h; x5r=.75[x2r,x3r];
+filldraw z1l--z2l--z3r--z3l--(x2r,y3l)--z4r--z5r--z5l--z4l--(x1r,y6r)--z6r--z6l--cycle;
+penlabels(1,2,3,4,5,6);
+savep;
+endchar;
+
+iff known latin_Eacute:
+beginchar(latin_Eacute,11u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+acute(0).low;
+endchar;
+
+iff known latin_Ecaron:
+beginchar(latin_Ecaron,11u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+caron(0).low;
+endchar;
+
+iff known latin_Emacron:
+beginchar(latin_Emacron,11u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+macron(0);
+endchar;
+
+iff known latin_Edotabove:
+beginchar(latin_Edotabove,11u#,.3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w+.3u,h-.6stem);
+acc_dot(0);
+endchar;
+
+iff known latin_Ebreve:
+beginchar(latin_Ebreve,11u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+breve(0);
+endchar;
+
+iff known latin_Eogonek:
+beginchar(latin_Eogonek,11u#,cap_height#,desc_depth#);
+usep;
+.5[z20,z22]=.5[z21,z23]; y23=-d+.5stem; x20+.5stem=(w+u)-u; y20=y22; x21=x23; y21-y23=x20-x22; y21=-.5stem;
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90);
+p:= z20{up}..{left}z21..{down}z22..{right}z23..cycle;
+vpos(24)(stem,-can); z24=point 3.5 of p; penpos25(stem,135);
+filldraw z22l{down}..z23l..{direction 3.5 of p}z24r--z24l{dir (angle(direction 3.5 of p)-180)}..z23r..{up}z22r..z21r+stem*up--z21l+stem*up..cycle;
+penlabels(20,21,22,23,24,25);
+endchar;
+
+iff known latin_Egrave:
+beginchar(latin_Egrave,11u#,Asc_height#,0);
+usep;
+z0=(.45w,h);
+grave(0).low;
+endchar;
+
+iff known latin_Ecircumflex:
+beginchar(latin_Ecircumflex,11u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0).low;
+endchar;
+
+iff known latin_Eumlaut:
+beginchar(latin_Eumlaut,11u#,.3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+beginchar("F", 11u#,cap_height#,0);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); vpos(3)(cap_stem,-can); penpos4(cap_stem,90); vpos(5)(cap_stem,0);
+x1l=u=x2l; y1=0; y2r=h; y3r=h; x3l=w-u; x2r=x4; y4=y5=.5h; x5r=.75[x2r,x3r];
+filldraw z1r--z1l--z2l--z3r--z3l--(x2r,y3l)--z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar("G", 14.5u#,cap_height#,0);
+path p;
+penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=(w+2u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1'=point .5 of p;
+z2'=point 3.4 of p;
+penpos1(cap_stem,170-(angle(direction .5 of p))); penpos2(cap_stem,90+(angle(direction 3.5 of p)));
+penpos3(cap_stem,0); penpos4(cap_stem,0); vpos(5)(cap_stem,can);
+x1r=w-u; y1=y1';
+z3l=z2r; x4=x3; y4=.8x_height=y5r; y4l:=y5l; x5=.55w; x3r=w-u; y2=y2';
+filldraw z1r..{left}z11r..{down}z12l..{right}z13l..{direction 3.4 of p}z2l..{up}z3r--z4r--z5r--z5l--z4l--z3l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle;
+penlabels(1,2,3,4,5);
+savep;
+endchar;
+
+iff known latin_Gcircumflex:
+beginchar(latin_Gcircumflex,14.5u#,Asc_height#,0);
+usep;
+z0=(.5w+1.3u,h);
+circumflex(0).low;
+endchar;
+
+iff known latin_Gbreve:
+beginchar(latin_Gbreve,14.5u#,Asc_height#,0);
+usep;
+z0=(.5w+1.3u,h);
+breve(0);
+endchar;
+
+iff known latin_Gdotabove:
+beginchar(latin_Gdotabove,14.5u#,.3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w+u,h-.6stem);
+acc_dot(0);
+endchar;
+
+iff known latin_Gcedilla:
+beginchar(latin_Gcedilla,14.5u#,cap_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(.5w-.5u,.5stem);
+cedilla(0);
+endchar;
+
+beginchar("H", 11.5u#,cap_height#,0);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); hpos(3)(cap_stem,can); hpos(4)(cap_stem,can);
+penpos5(cap_stem,90); penpos6(cap_stem,90);
+x1l=u=x2l; y1=y3=0; y2r=y4r=h; x3r=x4r=w-u;
+y5=y6=.5h; x5=x1r; x6=x3l;
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw z3l--z4l--z4r--z3r--cycle;
+filldraw z5l--z6l--z6r--z5r--cycle;
+penlabels(1,2,3,4);
+savep;
+endchar;
+
+iff known latin_Hcircumflex:
+beginchar(latin_Hcircumflex,11.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0).low;
+endchar;
+
+iff known latin_Hbar:
+beginchar(latin_Hbar,13.5u#,cap_height#,0);
+addto currentpicture also used_p shifted (u,0);;
+vpos(1)(.75stem,can); vpos(2)(.75stem,0);
+lft x1l=u; rt x2=w-u; y1=y2=.75h;
+filldraw z1r--z2r--z2l--z1l--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("I", 3.5u#,cap_height#,0);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can);
+x1=.5w=x2; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+savep;
+endchar;
+
+iff known latin_Iacute:
+beginchar(latin_Iacute,3.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+acute(0).low;
+endchar;
+
+iff known latin_Igrave:
+beginchar(latin_Igrave,3.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+grave(0).low;
+endchar;
+
+iff known latin_Icircumflex:
+beginchar(latin_Icircumflex,3.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0).low;
+endchar;
+
+iff known latin_Iumlaut:
+beginchar(latin_Iumlaut,4u#,.3[Asc_height#,cap_height#],0);
+addto currentpicture also used_p shifted (.25u,0);
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_Itilde:
+beginchar(latin_Itilde,3.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+acc_tilde(0).low;
+endchar;
+
+iff known latin_Imacron:
+beginchar(latin_Imacron,3.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+macron(0);
+endchar;
+
+iff known latin_Ibreve:
+beginchar(latin_Ibreve,3.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+breve(0);
+endchar;
+
+iff known latin_Idot:
+beginchar(latin_Idot,3.5u#,.3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+acc_dot(0);
+endchar;
+
+iff known latin_Iogonek:
+beginchar(latin_Iogonek,3.5u#,cap_height#,desc_depth#);
+usep;
+z0=(.5w+.5cap_stem,0);
+ogonek(0);
+endchar;
+
+beginchar("J", 10u#,cap_height#,0);
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,can); vpos(3)(cap_stem,can);
+x1r=x2r=w-u; y1=.5x_height; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+path p;
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12;
+x11=x13; y11-y13=x10-x12; x13=.5w; x3=x12l; y3=.25x_height;
+p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle;
+filldraw z3l..z13l{right}..{up}z1r--z2r--z2l--z1l{down}..{left}z13r..z3r--cycle;
+penlabels(1,2,3,10,11,12,13);
+savep;
+endchar;
+
+iff known latin_Jcircumflex:
+beginchar(latin_Jcircumflex, 10u#,Asc_height#,0);
+usep;
+z0=(w-1.5u,h);
+circumflex(0).low;
+endchar;
+
+beginchar("K", 11u#, cap_height#,0);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can); hpos(4)(cap_stem,-can); hpos(6)(cap_stem,can);
+x1l=u=x2l; y1=0; y2r=h; x4r=x6r=w-u; y4l=h; y6=0; x5l=.25[x2r,x2l]; y5l=.5y4;
+penpos5(.9cap_stem/cosd(angle(z4l-z5l)),0);
+filldraw z1l--z1r--z2r--z2l--cycle;
+filldraw z4l--z5l--z6l--z6r--z5r--z4r--cycle;
+penlabels(1,2,3,4,5,6);
+savep;
+endchar;
+
+iff known latin_Kcedilla:
+beginchar(latin_Kcedilla, 11u#,cap_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(.5w-u,.5stem);
+cedilla(0);
+endchar;
+
+beginchar("L", 10u#,cap_height#,0);
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,can); vpos(3)(cap_stem,can);
+x1l=u=x2l; y1=0; y2r=h; y3l=0; x3r=w-u;
+filldraw z3l--z1l--z2l--z2r--(x2r,y3r)--z3r--cycle;
+penlabels(1,2,3);
+savep;
+endchar;
+
+iff known latin_Lacute:
+beginchar(latin_Lacute, 10u#,Asc_height#,0);
+usep;
+z0=(2u+stem,h);
+acute(0).low;
+endchar;
+
+iff known latin_Lcaron:
+beginchar(latin_Lcaron, 10u#,cap_height#,0);
+usep;
+z0=(stem+3u,h);
+ac_caron(0);
+endchar;
+
+iff known latin_Lstroke:
+beginchar(latin_Lstroke, 11u#,cap_height#,0);
+addto currentpicture also used_p shifted (u,0);
+vpos(1)(stem,can); penpos2(stem,90);
+y1=.65h; y2=.8h; x1l=.5u; x2=w-6u;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+iff known latin_Lcedilla:
+beginchar(latin_Lcedilla, 10u#,cap_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(.5w-u,.25stem);
+cedilla(0);
+endchar;
+
+iff known latin_Ldot:
+beginchar(latin_Ldot, 10u#,cap_height#,0);
+usep;
+z0=(4u,.6h);
+dot(0);
+endchar;
+
+beginchar("M", 18u#,cap_height#,0);
+numeric theta;
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,-can);
+x1r=w-u; y1l=0=y2r; x2l=u; z3l=(.5w,0); y4r=y5r=h; .5[x4l,x5l]=x3; x5r=.85w-u;
+theta:=angle(z1r-z5r);
+penpos4(cap_stem/cosd(theta),90); penpos5(cap_stem/cosd(theta),90);
+penpos3(cap_stem/cosd(angle(z5-z3l)),90);
+z4'=z3l+whatever*(z4r-z3r)=z2r+whatever*(z4r-z2l);
+z5'=z3l+whatever*(z5r-z3r)=z1l+whatever*(z5r-z1r);
+filldraw z1r--z5r--z3r--z4r--z2l--z2r--z4'--z3l--z5'--z1l--cycle;
+penlabels(1,2,3,4,5); labels(4',5');
+endchar;
+
+beginchar("N", 12u#,cap_height#,0);
+numeric theta;
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); hpos(3)(cap_stem,0); hpos(4)(cap_stem,can);
+x1l=w-x4r=u; x2=x1; x3=x4; y1l=y3=0; y2=y4r=h;
+theta:=(angle(z2l-z3r));
+z3''=z3r+((cap_stem,0) rotated (theta-90)); z3'=whatever[z3'',(z2l)]=whatever[z4l,z3l];
+z2''=z2l+((cap_stem,0) rotated (theta+90)); z2'=whatever[z2'',(z3r)]=whatever[z1r,z2r];
+filldraw z1l--z1r--z2'--z3r--z4r--z4l--z3'--z2l--cycle;
+penlabels(1,2,3,4); labels(2',2'',3',3'');
+savep;
+endchar;
+
+iff known latin_Ncaron:
+beginchar(latin_Ncaron,12u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+caron(0);
+endchar;
+
+iff known latin_Nacute:
+beginchar(latin_Nacute,12u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+acute(0).low;
+endchar;
+
+iff known latin_Ntilde:
+beginchar(latin_Ntilde,12u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+acc_tilde(0).low;
+endchar;
+
+iff known latin_Ncedilla:
+beginchar(latin_Ncedilla,12u#,cap_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(u+.45stem,.5stem);
+cedilla(0);
+endchar;
+
+iff known latin_Eng:
+beginchar(latin_Eng, 12u#,cap_height#,desc_depth#);
+numeric theta;
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); hpos(3)(cap_stem,0); hpos(4)(cap_stem,can);
+hpos(5)(cap_stem,can);
+x1l=w-x4r=u; x2=x1; x3=x4; y1l=y3=0; y2=y4r=h; x5=x3; y5l=-d;
+theta:=(angle(z2l-z3r));
+z3''=z3r+((cap_stem,0) rotated (theta-90)); z3'=whatever[z3'',(z2l)]=whatever[z4l,z3l];
+z2''=z2l+((cap_stem,0) rotated (theta+90)); z2'=whatever[z2'',(z3r)]=whatever[z1r,z2r];
+filldraw z1l--z1r--z2'--z3r--z4r--z4l--z3'--z2l--cycle;
+filldraw z4l--z5l--z5r--z4r--cycle;
+penlabels(1,2,3,4); labels(2',2'',3',3'');
+endchar;
+
+beginchar("O", 16.5u#,cap_height#,0);
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u;
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+savep;
+endchar;
+
+iff known latin_Oacute:
+beginchar(latin_Oacute,16.5u#,Asc_height#,0);
+usep;
+z0=(.5w+1.5u,h);
+acute(0).low;
+endchar;
+
+iff known latin_Ocircumflex:
+beginchar(latin_Ocircumflex,16.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0).low;
+endchar;
+
+iff known latin_Oumlaut:
+beginchar(latin_Oumlaut,16.5u#,.3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_Ograve:
+beginchar(latin_Ograve,16.5u#,Asc_height#,0);
+usep;
+z0=(.5w-1.5u,h);
+grave(0);
+endchar;
+
+iff known latin_Otilde:
+beginchar(latin_Otilde,16.5u#,Asc_height#,0);
+usep;
+z0=(.5w+.5u,h);
+acc_tilde(0).low;
+endchar;
+
+iff known latin_Omacron:
+beginchar(latin_Omacron,16.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+macron(0);
+endchar;
+
+iff known latin_Obreve:
+beginchar(latin_Obreve,16.5u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+breve(0);
+endchar;
+
+iff known latin_Ohungarumlaut:
+beginchar(latin_Ohungarumlaut,16.5u#,Asc_height#,0);
+usep;
+z0=(.5w+.8u,h);
+H_umlaut(0).low;
+endchar;
+
+beginchar("P", 11u#,cap_height#,0);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,0);
+x1l=u=x2l; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=2u;
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+penpos2'(cap_stem,90); penpos2''(cap_stem,270);
+.5[y2'',y2']=y10; x2'=x2''=x2r; y2'r=y2r;
+filldraw z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle;
+penlabels(1,2,10,11,12,13);
+endchar;
+
+beginchar(latin_Thorn, 11u#,cap_height#,0);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,0);
+x1l=u=x2l; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+.5[z10,z12]=.5[z11,z13]; y10=.55h; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=2u;
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+penpos2'(cap_stem,90); penpos2''(cap_stem,270);
+.5[y2'',y2']=y10; x2'=x2''=x2r; y2'=y11;
+filldraw z2'r---z11r..{down}z10r..{left}z13r---z2''r--z2''l---z13l{right}..{up}z10l..{left}z11l---z2'l--cycle;
+penlabels(1,2,2',2'',10,11,12,13);
+endchar;
+
+beginchar("Q", 16.5u#,cap_height#,.5desc_depth#);
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u;
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can);
+y1l=-d; x1r=w-u; y2=.5x_height; z2=z1+whatever*(-1,1.5);
+filldraw z1l--z2l--z2r--z1r--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("R", 11u#,cap_height#,0);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,0);
+x1l=u=x2l; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=2u;
+z2'=z2r+.5cap_stem*down; x2'=x2''; .5[y2',y2'']=.5[y11,y13];
+penpos2'(cap_stem,90); penpos2''(cap_stem,270); penpos11(cap_stem,90); penpos10(cap_stem,0); penpos13(cap_stem,270);
+hpos(3)(cap_stem,0); hpos(4)(cap_stem,can);
+z3l=z2''l; x4r=w-u; y4l=0;
+z0=(z4r--z3r) intersectionpoint (z13r--z2''r);
+filldraw z2'r---z11r..{down}z10r..{left}z13r--- z0--z4r--z4l --z2''l---z13l..{up}z10l..z11l---z2'l--cycle;
+penlabels(2',2'',3,4,10,11,13); labels(0);
+savep;
+endchar;
+
+iff known latin_Rcaron:
+beginchar(latin_Rcaron,11u#,Asc_height#,0);
+usep;
+z0=(.45w,h);
+caron(0).low;
+endchar;
+
+iff known latin_Racute:
+beginchar(latin_Racute,11u#,Asc_height#,0);
+usep;
+z0=(.45w,h);
+acute(0).low;
+endchar;
+
+iff known latin_Rcedilla:
+beginchar(latin_Rcedilla,11u#,cap_height#,.75desc_depth#-stem#);
+usep;
+z0=(1.5u,stem);
+cedilla(0);
+endchar;
+
+beginchar("S", 12u#,cap_height#,0);
+hpos(1)(cap_stem,0); penpos2(cap_stem,(-can+90)); vpos(3)(cap_stem,can); hpos(4)(cap_stem,0); penpos0(cap_stem,90);
+x1r=w-u; y1=.5x_height; y4=h-.5x_height; x4l=u;
+path p;
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12;
+x11=x13; y11-y13=x10-x12; x13=.5w; x3=x12l; y3=.35x_height;
+p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle;
+penpos20(cap_stem,0); penpos21(cap_stem,90); penpos22(cap_stem,0); penpos23(cap_stem,90);
+.5[z20,z22]=.5[z21,z23]; y21=h-.5cap_stem; x20+.5cap_stem=w-u; y20=y22;
+x21=x23; y21-y23=x20-x22; x23=.5w; x2r=x10r; y2r=h-.25x_height;
+filldraw z3l..z13l{right}..{up}z1r--z1l{down}..{left}z13r..z3r--cycle;
+filldraw z2l..z21l{left}..{down}z4r--z4l{up}..{right}z21r..z2r--cycle;
+p:=z4r{down}..{down}z1r; z0=((.5w,0)--(.5w,h)) intersectionpoint p;
+filldraw z4l{down}..z0l..{down}z1l--z1r{up}..z0r..{up}z4r--cycle;
+penlabels(1,2,3,4,10,11,12,13,20,21,22,23);
+savep;
+endchar;
+
+iff known latin_Scaron:
+beginchar(latin_Scaron,12u#,Asc_height#,0);
+usep;
+z0=(.55w,h);
+caron(0).low;
+endchar;
+
+iff known latin_Sacute:
+beginchar(latin_Sacute,12u#,Asc_height#,0);
+usep;
+z0=(.6w,h);
+acute(0).low;
+endchar;
+
+iff known latin_Scedilla:
+beginchar(latin_Scedilla,12u#,cap_height#,.75desc_depth#-.5stem#);
+usep;
+z0=(.45w,.5stem);
+cedilla(0);
+endchar;
+
+iff known latin_Scircumflex:
+beginchar(latin_Scircumflex,12u#,Asc_height#,0);
+usep;
+z0=(.5w+.5u,h);
+circumflex(0).low;
+endchar;
+
+beginchar("T", 12u#, cap_height#, 0);
+hpos(1)(cap_stem,can); penpos2(cap_stem,0); penpos3(cap_stem,90); vpos(4)(cap_stem,can)
+z1=(.5w,0); z2=(x1,h-cap_stem); x3=w-x4l=w-u; y3=y4=h-.5cap_stem;
+filldraw z1l--z1r--z2r--z3l--z3r--z4r--z4l--z2l--cycle;
+%serif(3r,angle(z3l-z3r),0); serif(4r,angle(z4l-z4r),0);
+savep;
+endchar;
+
+iff known latin_Tcaron:
+beginchar(latin_Tcaron,12u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+caron(0).low;
+endchar;
+
+iff known latin_Tcommaaccent:
+beginchar(latin_Tcommaaccent,12u#,cap_height#,2.5u#);
+usep;
+y1r=-.5u; y2l=-d; x1r-x2l=2u; .5[x1r,x2l]=.5w-.5cap_stem;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+endchar;
+
+iff known latin_Tbar:
+beginchar(latin_Tbar,12u#,cap_height#,0);
+usep;
+vpos(1)(.75stem,can); vpos(2)(.75stem,0);
+lft x1l=3u; rt x2=w-3u; y1=y2=x_height;
+filldraw z1r--z2r--z2l--z1l--cycle;
+penlabels(1,2);
+endchar;
+
+beginchar("U", 13u#,cap_height#,0);
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,can); hpos(3)(cap_stem,0); hpos(4)(cap_stem,can);
+x1r=x2r=w-u; y1=.5x_height=y3; y2r=y4r=h; x4l=x3l=u;
+filldraw z1l--z1r--z2r--z2l--cycle;
+filldraw z3l--z3r--z4r--z4l--cycle;
+path p;
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12;
+x11=x13; y11-y13=x10-x12; x13=.5w;
+p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle;
+filldraw z3l{down}..z13l{right}..{up}z1r--z2r--z2l--z1l{down}..{left}z13r..{up}z3r--cycle;
+penlabels(1,2,3,10,11,12,13);
+savep;
+endchar;
+
+iff known latin_Uacute:
+beginchar(latin_Uacute,13u#,Asc_height#,0);
+usep;
+z0=(.5w+.5u,h);
+acute(0).low;
+endchar;
+
+iff known latin_Uring:
+beginchar(latin_Uring,13u#, Asc_height#,0);
+usep;
+z0=(.5w,h);
+ring(0).low;
+endchar;
+
+iff known latin_Uumlaut:
+beginchar(latin_Uumlaut,13u#, .3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known latin_Ugrave:
+beginchar(latin_Ugrave,13u#, Asc_height#,0);
+usep;
+z0=(.5w,h);
+grave(0).low;
+endchar;
+
+iff known latin_Ucircumflex:
+beginchar(latin_Ucircumflex,13u#, Asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0).low;
+endchar;
+
+iff known latin_Utilde:
+beginchar(latin_Utilde,13u#, Asc_height#,0);
+usep;
+z0=(.5w,h);
+acc_tilde(0).low;
+endchar;
+
+iff known latin_Umacron:
+beginchar(latin_Umacron,13u#, Asc_height#,0);
+usep;
+z0=(.5w,h);
+macron(0);
+endchar;
+
+iff known latin_Uhungarumlaut:
+beginchar(latin_Uhungarumlaut,13u#, Asc_height#,0);
+usep;
+z0=(.5w+.75u,h);
+H_umlaut(0).low;
+endchar;
+
+iff known latin_Ubreve:
+beginchar(latin_Ubreve,13u#, Asc_height#,0);
+usep;
+z0=(.5w,h);
+breve(0);
+endchar;
+
+iff known latin_Uogonek:
+beginchar(latin_Uogonek,13u#, cap_height#,desc_depth#);
+usep;
+z0=(.5w+u,0);
+ogonek(0);
+endchar;
+
+beginchar("V", 13u#,cap_height#,0);
+numeric theta;
+hpos(1)(cap_stem,-can); hpos(2)(cap_stem,can);
+x1r=w-u; y1l=h=y2r; x2l=u; z3l=(.5w,0);
+theta:=90+angle(z1r-z3l);
+penpos3(cap_stem/sind(theta),90);
+filldraw z1l--z3r--z2r--z2l--z3l--z1r--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("W", 18u#,cap_height#,0);
+numeric theta, wid;
+wid=12u;
+hpos(1)(cap_stem,-can); hpos(2)(cap_stem,can);
+x1r=wid; y1l=h=y2r; x2l=u; z3l=(.5[x1,x2],0); x4=w-u; y4=y1r;
+theta:=90+angle(z1r-z3l);
+penpos3(cap_stem/sind(theta),90);
+filldraw z1l--z3r--z2r--z2l--z3l--z1r--cycle;
+filldraw (z1l--z3r--z2r--z2l--z3l--z1r--cycle) shifted (z4-z1r);
+penlabels(1,2,3,4);
+savep;
+endchar;
+
+iff known latin_Wcircumflex:
+beginchar(latin_Wcircumflex,18u#, Asc_height#,0);
+usep;
+z0=(.5w+.25u,h);
+circumflex(0);
+endchar;
+
+beginchar("X", 14u#,cap_height#,0);
+numeric theta;
+hpos(1)(cap_stem,-can); hpos(2)(cap_stem,can);
+hpos(3)(cap_stem,-can); hpos(4)(cap_stem,can);
+x1r=w-u=x4r; y1l=h=y2r; x2l=x3l=u; y3r=y4l=0;
+filldraw z1l--z3l--z3r--z1r--cycle;
+filldraw z2l--z4l--z4r--z2r--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("Y", 13u#,cap_height#,0);
+hpos(1)(cap_stem,-can); hpos(2)(cap_stem,-can); hpos(3)(cap_stem,can);
+x1r=w-u; y1l=h=y3r; x3l=u; y2r=0; x2l=3.5u; z4l=whatever[z1l,z2l]; y4l=.4h;
+z4r=z4l+(cap_stem/sind(angle(z3l-z4l)),0) rotated (angle(z1l-z4l)-10);
+filldraw z1l--z1r--z2r--z2l--cycle;
+filldraw z3l--z3r--z4r--z4l--cycle;
+penlabels(1,2,3,4);
+savep;
+endchar;
+
+iff known latin_Yacute:
+beginchar(latin_Yacute,13u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+acute(0).low;
+endchar;
+
+iff known latin_Ycircumflex:
+beginchar(latin_Ycircumflex,13u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+circumflex(0).low;
+endchar;
+
+iff known latin_Yumlaut:
+beginchar(latin_Yumlaut,13u#,.3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w+.5u,h-.6stem);
+umlaut(0);
+endchar;
+
+beginchar("Z", 14u#,cap_height#,0);
+numeric theta;
+vpos(1)(cap_stem,can); vpos(2)(cap_stem,0); vpos(3)(cap_stem,0); vpos(4)(cap_stem,-can);
+x1l=w-x4r=u; x1l=x3; x4r=x2; y1r=y2r=h; y4l=y3l=0;
+theta:=(-angle(z2r-z3l));
+z3''=z3l+((0,cap_stem) rotated (theta-90)); z3'=whatever[z3'',(z2r)]=whatever[z4r,z3r];
+z2''=z2r+((0,cap_stem) rotated (theta+90)); z2'=whatever[z2'',(z3l)]=whatever[z1l,z2l];
+filldraw z1l--z2'--z3l--z4l--z4r--z3'--z2r--z1r--cycle;
+penlabels(1,2,3,4); labels(2',2'',3',3'');
+savep;
+endchar;
+
+iff known latin_Zcaron:
+beginchar(latin_Zcaron,14u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+caron(0).low;
+endchar;
+
+iff known latin_Zacute:
+beginchar(latin_Zacute,14u#,Asc_height#,0);
+usep;
+z0=(.5w,h);
+acute(0).low;
+endchar;
+
+iff known latin_Zdotabove:
+beginchar(latin_Zdotabove,14u#,.3[Asc_height#,cap_height#],0);
+usep;
+z0=(.5w,h-.6stem);
+acc_dot(0);
+endchar;
+
+"German sharp s";
+beginchar(oct"031", 10.5u#, cap_height#,0);
+hpos(1)(stem,can);
+z1l=(x12r,0);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-2.5u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); vpos(13)(stem,can);
+.5[z20,z22]=.5[z21,z23]; y21=y13; x20+.5stem=w-u; y20=y22; x21=x23; y23-.5stem=0; x22-.5stem=u;
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,90); vpos(2)(stem,can);
+y2=y23; x2=.5[x23,x1l];
+filldraw z1l---z12r..{right}z11r..{down}z10r..{left}z13l--z13r{right}..z10l{up}..z11l{left}..z12l---z1r--cycle;
+filldraw z13r{right}..{down}z20r..z23l---z2l--z2r---z23r..z20l{up}..{left}z13l--cycle;
+penlabels(1,10,11,12,13,14,20,21,22,23);
+endchar;
+
+"ae";
+beginchar(oct"032", 12.8u#,x_height#,0);
+path p, op[]; numeric t[];
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=w-8u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .5 of p;
+z2=point 3.5 of p;
+z3=((0,.25h)--(.75w,.25h)) intersectionpoint p;
+penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p)));
+penpos3(stem,(90+angle(z3-z1))); z1''=(subpath (0,.5) of (z1r--z3r)) intersectionpoint p; z1'''=z1''+stem*dir(270+angle(z3-z1));
+z1'=(z1'''--z3l) intersectionpoint (z11l{right}..z1l);
+filldraw z3r--z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1'--z3l--cycle;
+penlabels(3); labels(1'', 1');
+.5[z20,z22]=.5[z21,z23]; y23=.5stem; x20-x22=5.6u-stem; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5stem=u;
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90);
+op1:=z20r{up}..{left}z21r;
+op2:=z21l{right}..{down}z20l;
+op0:=z11{left}..{down}z12..{right}z13;
+op3:=z11l{left}..{down}z12l..{right}z13l;
+op4:=z11r{left}..{down}z12r..{right}z13r;
+t1=xpart(op1 intersectiontimes op0);
+t2=xpart(op2 intersectiontimes op0);
+filldraw subpath (t1,1) of op1..{down}z22r..{right}z23r..z3r--z3l..{left}z23l..{up}z22l..
+subpath (0,t2) of op2--cycle;
+z5r=op4 intersectionpoint op1; z5l=op3 intersectionpoint op2;
+penpos6(stem,0); penpos7(stem,90); vpos(8)(stem,-can);
+x6l=x5l; y6=.72h; x7=.5[x5l,x8l]; top y7r=h; y8=.9h; x8l=2u;
+filldraw z5l--z5r--z6r{up}..{left}z7r..z8r--z8l..z7l{right}..{down}z6l--cycle;
+endchar;
+
+"oe";
+beginchar(oct"033", 14.7u#,x_height#,0);
+path p, op[]; numeric t[];
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=w-8u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .5 of p;
+z2=point 3.5 of p;
+z3=((0,.25h)--(.75w,.25h)) intersectionpoint p;
+penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p)));
+penpos3(stem,(90+angle(z3-z1))); z1''=(subpath (0,.5) of (z1r--z3r)) intersectionpoint p; z1'''=z1''+stem*dir(270+angle(z3-z1));
+z1'=(z1'''--z3l) intersectionpoint (z11l{right}..z1l);
+filldraw z3r--z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1'--z3l--cycle;
+penlabels(3); labels(1'', 1');
+.5[z20,z22]=.5[z21,z23]; y23=.5stem; x20-x22=8u-stem; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5stem=u;
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90);
+op1:=z20r{up}..{left}z21r;
+op2:=z21l{right}..{down}z20l;
+op0:=z11{left}..{down}z12;
+t1=xpart(op1 intersectiontimes op0);
+t2=xpart(op2 intersectiontimes op0);
+filldraw subpath (t1,1) of op1..{down}z22r..{right}z23r..z3r--z3l..{left}z23l..{up}z22l..
+subpath (0,t2) of op2--cycle;
+endchar;
+
+"oslash";
+beginchar(oct"034", 10u#,x_height#,0);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+hpos(1)(stem,can); hpos(2)(stem,can);
+y1l=0; y2r=h; x1l=u; x2r=w-u;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+"AE";
+beginchar(oct"035", 18u#,cap_height#,0);
+numeric theta;
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); vpos(3)(cap_stem,-can); penpos4(cap_stem,90); vpos(5)(cap_stem,0); vpos(6)(cap_stem,can);
+x1l=8u=x2l; y1=y6l=0; y2r=h; y3r=h; x3l=x6r=w-u; x2r=x4; y4=y5=.8x_height; x5r=.75[x2r,x3r];
+filldraw z1l--z2l--z3r--z3l--(x2r,y3l)--z4r--z5r--z5l--z4l--(x1r,y6r)--z6r--z6l--cycle;
+hpos(7)(cap_stem,-can);
+y7r=0; x7l=u; z8r=(x1l,h);
+theta:=90+angle(z8r-z7l);
+penpos8(cap_stem/sind(theta),90);
+filldraw z8r--z7l--z7r--z8l--cycle;
+y14r-y14l=cap_stem; y15r=y14r; y15l=y14l; .5[y14r,y14l]=y4;
+x14r=x14l=x1l; z15l=whatever[z8,z7]; z15r=whatever[z8,z7];
+filldraw z14r--z15r--z15l--z14l--cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+"OE";
+beginchar(oct"036", 18u#,cap_height#,0);
+numeric theta;
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,0); vpos(3)(cap_stem,-can); penpos4(cap_stem,90); vpos(5)(cap_stem,0); vpos(6)(cap_stem,can); penpos7(cap_stem,270); penpos8(cap_stem,0); penpos9(cap_stem,90);
+x1l=8u=x2l; y1=y6l=0; y2r=h; y3r=h; x3l=x6r=w-u; x2r=x4; y4=y5=.5h; x5r=.75[x2r,x3r];
+z7l=z2l; z9l=z1l; x8l=u; y8l=.5h;
+filldraw z1l--z2l--z3r--z3l--(x2r,y3l)--z4r--z5r--z5l--z4l--(x1r,y6r)--z6r--z6l--cycle;
+filldraw z7l{left}..{down}z8l..{right}z9l--z9r{left}..{up}z8r..{right}z7r--cycle;
+penlabels(1,2,3,4,5,6,7,8,9);
+endchar;
+
+"Oslash";
+beginchar(oct"037", 16.5u#,cap_height#,0);
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u;
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+hpos(1)(stem,can); hpos(2)(stem,can);
+y1l=0; y2r=h; x1l=u; x2r=w-u;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+beginchar("@", asc_height#+2u#, asc_height#,0);
+z0=(.5w,.5h);
+italic_a(0)(.4w);
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); vpos(23)(stem,-can);
+penpos1(stem,90); z1l=(.5[x14r,x20l],y13r);
+.5[z20,z22]=.5[z21,z23]; y23=.5stem; x20+.5stem=w-u; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5stem=u;
+filldraw z14l{down}..{right}z1l..z20r{up}..{left}z21r..{down}z22r..{right}z23l--z23r{left}..{up}z22l..{right}z21l
+..{down}z20l..z1r{left}..{up}z14r--cycle;
+penlabels(1,10,11,12,13,14,15,20,21,22,23);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Greek uppercase
+beginchar(0, 10u#,cap_height#,0);%Gamma
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,0); vpos(3)(cap_stem,can);
+x1l=u=x2l; y1=0; y2r=h; y3r=h; x3r=w-u;
+filldraw z1r--z1l--z2l--z3r--z3l--(x2r,y3l)--cycle;
+penlabels(1,2,3);
+endchar;
+
+beginchar(1, 15u#,cap_height#,0);%Delta
+numeric theta;
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,0);
+penpos4(cap_stem,90); penpos5(cap_stem,90);
+x1r=w-u; y1l=0=y2r; x2l=u; z3r=(.5w,h);
+theta:=90+angle(z1r-z3r);
+penpos3(cap_stem/sind(theta),90);
+z4l=z1l; z5l=z2r;
+filldraw z1r--z3r--z2l--z2r--z3l--z1l--cycle;
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(2, 16.5u#,cap_height#,0);%Theta
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+.5[z10,z12]=.5[z11,z13]; y13=.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u;
+vpos(5)(cap_stem,can); vpos(6)(cap_stem,0);
+.5[x5l,x6r]=.5w; y5=y6=.5h; x6r=.65w;
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+filldraw z5l--z6l--z6r--z5r--cycle;
+endchar;
+
+beginchar(3, 13u#,cap_height#,0);%Lambda
+numeric theta;
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,-can);
+x1r=w-u; y1l=0=y2r; x2l=u; z3r=(.5w,h);
+theta:=90+angle(z1r-z3r);
+penpos3(cap_stem/sind(theta),90);
+filldraw z1r--z3r--z2l--z2r--z3l--z1l--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+beginchar(4, 11u#,cap_height#,0);
+vpos(1)(cap_stem,can); vpos(2)(cap_stem,0);
+vpos(3)(cap_stem,0); vpos(4)(cap_stem,-can);
+vpos(5)(cap_stem,0); vpos(6)(cap_stem,0);
+x1l=u=x3l; x2r=x4l=w-u; y1r=y2r=h; y3l=y4l=0;
+.5[x5l,x6r]=.5w; y5=y6=x_height; x6r=.75w;
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw z3l--z4l--z4r--z3r--cycle;
+filldraw z5l--z6l--z6r--z5r--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar(5, 13.5u#, cap_height#, 0);%Pi
+hpos(1)(cap_stem,can); penpos2(cap_stem,0); penpos3(cap_stem,90); vpos(4)(cap_stem,can)
+z1l=(2.5u,0); z2=(x1,h-cap_stem); x3=w-x4l=w-u; y3=y4=h-.5cap_stem;
+filldraw z1l--z1r--z2r--z2l--cycle;
+filldraw (z1l--z1r--z2r--z2l--cycle) shifted (w-2x1,0);
+filldraw z3l--z3r--z4r--z4l--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar(6,14u#, cap_height#,0);%Sigma
+vpos(1)(cap_stem,can); vpos(5)(cap_stem,-can); penpos3(cap_stem,180);
+x1r=x5l=w-u; y1r=y2r=h; y4r=y5l=0; y3=.5h; x3=.65w; x2r=x4r=u; y2l=y1l; y4l=y5r;
+z4'=z4r+((cap_stem,0) rotated (angle((z3r-z4r))-90));
+z2'=z2r+((cap_stem,0) rotated (angle((z3r-z2r))+90));
+z4l=z4'+whatever*(z3r-z4r); z2l=z2'+whatever*(z3r-z2r);
+filldraw z1r--z2r--z3r--z4r--z5l--z5r--z4l--z3l--z2l--z1l--cycle;
+penlabels(1,2,3,4,5); labels(2',4');
+endchar;
+
+beginchar(7,12u#,cap_height#,0);
+path lp, rp;
+numeric t[];
+vpos(1)(cap_stem,-can); penpos2(cap_stem,0); hpos(3)(cap_stem,can); vpos(4)(cap_stem,0);
+x1r=u=w-x4r; x2=x3=.5w; y1r=y4r=h; y2=x_height; y3l=0;
+lp:=z2r{up}..{left}z1r;
+rp:=z2l{up}..{right}z4r;
+(t2,t1)=lp intersectiontimes rp;
+z2'=point t1 of lp;
+filldraw z1l{right}..z2l---z3l--z3r---z2r..{right}z4l--subpath (0,1-t1) of (reverse rp)--z2'--subpath (t2,1) of lp --cycle;
+penlabels(1,2,3);
+endchar;
+
+beginchar(8, 13u#,cap_height#,0);%Phi
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can);
+x1=x2=.5w; y1l=0; y2r=h;
+.5[z10,z12]=.5[z11,z13]=(.5w,.5h); x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=.75(x10-x12); %x12-.5cap_stem=u;
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+beginchar(9, 13u#,cap_height#,0);%Psi
+hpos(10)(cap_stem,can); penpos11(cap_stem,90); hpos(12)(cap_stem,can); penpos13(cap_stem,-90);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can);
+x1=x2=.5w; y1l=0; y2r=h;
+.5[z10,z12]=.5[z11,z13]; x10+.5cap_stem=w-u; y10r=y12r=h; x11=x13; y11-y13=1.35(x10-x12); .5[x10,x12]=x1;
+filldraw z12l{down}..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12r--cycle;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+beginchar(10, 14u#,cap_height#,0);%Omega
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=.9(x10-x12); x12-.5cap_stem=u;
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can);
+penpos3(cap_stem,0); penpos4(cap_stem,0);
+y1l=y2l=0; .5[x1,x2]=.5w; x2-x1=.2w; x3=x1; x4=x2;
+y3=y4=.3y13;
+filldraw z2r--z4r{up}..z10r{up}..{left}z11r..{down}z12r..{down}z3l--z1l--z1r--z3r{up}..{up}z12l..{right}z11l..{down}z10l..{down}z4l--z2l--cycle;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Digits
+beginchar("0", fig_width#,cap_height#,0);
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; x12-.5stem=u;
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+endchar;
+
+beginchar("1", fig_width#,cap_height#,0);
+numeric theta;
+hpos(1)(stem,can); hpos(3)(stem,-can);
+x1r=w-u; y1l=0; y3l=.6h; x3l=u; z2r=(w-u,h);
+theta:=(angle(z2r-z3l));
+z2'=z2r+((stem,0) rotated (theta-90));
+z2l=whatever[z2',z3r]=whatever[z1l,z2r-(stem,0)];
+filldraw z1r--z2r--z3l--z3r--z2l--z1l--cycle;
+penlabels(1,2,3); labels(2');
+endchar;
+
+beginchar("2", fig_width#,cap_height#,0);
+numeric theta;
+vpos(1)(stem,can);
+x1r=w-u; y1l=0; z2l=(u,0); y2r=y1r;
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90); penpos10'(stem,0);
+y10'=y10; x10'r=w;
+theta:=angle(z10'l-z2l);
+z2'=z2l+((stem,0) rotated (theta-90));
+z2r=whatever[z2',z10'r];
+y3l=y3r=y13; z3=.5[z3l,z3r];
+z3l=whatever[z2l,z10'l]; z3r=whatever[z2r,z10'r];
+penpos4(stem,180+theta); z4=z13;
+filldraw z1r--z2r---z3r..z10r{up}..{left}z11r..{down}z12r..{right}z4r--z4l{left}..z12l..{right}z11l..{down}z10l..z3l---z2l--z1l--cycle;
+penlabels(1,2,3,4,10,10',11,12,13); labels(2');
+endchar;
+
+beginchar("3", fig_width#, cap_height#,0);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); hpos(12)(stem,-can); vpos(13)(stem,can);
+.5[z20,z22]=.5[z21,z23]; y21=y13; x20+.5stem=w-u; y20=y22; x21=x23; y23-.5stem=0; x22-.5stem=u;
+penpos20(stem,0); penpos21(stem,90); hpos(22)(stem,can); penpos23(stem,90); vpos(2)(stem,can);
+filldraw z12l{up}..{right}z11r..{down}z10r..{left}z13l--z13r{right}..z10l{up}..z11l{left}..{down}z12r--cycle;
+filldraw z13r{right}..{down}z20r..{left}z23l..{up}z22l--z22r{down}..{right}z23r..z20l{up}..{left}z13l--cycle;
+penlabels(10,11,12,13,14,20,21,22,23);
+endchar;
+
+beginchar("4", fig_width#,cap_height#,0);
+numeric theta;
+hpos(1)(stem,can); penpos4(stem,90);
+x1r=w-2.5u; y1l=0; y3l=.7x_height; x3l=u; z2r=(x1r,h); y4l=y3l; x4=w-u; y3r=y4r;
+theta:=(angle(z2r-z3l));
+z2'=z2r+((stem,0) rotated (theta-90));
+z2l=z2'+whatever*(z3l-z2r)=whatever[z1l,z2r-(stem,0)];
+z3r=whatever[z2l,z2'];
+filldraw z1r--z2r--z3l--z4l--z4r--z3r--z2l--z1l--cycle;
+penlabels(1,2,3,4); labels(2');
+endchar;
+
+beginchar("5", fig_width#,cap_height#,0);
+path op[]; numeric t[];
+vpos(1)(stem,can);
+x1r=w-u; y1r=h; y2r=h; y2l=y1l; x2r=u; x2l=x2r+stem;
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=1(x10-x12); x12-.5stem=-.5u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+op1:=z11r{left}..{down}z12r;
+op2:=z12l{up}..{right}z11l;
+op3:=z2r--(x2r,0);
+op4:=z2l--(x2l,0);
+op5:=.5[z2l,z2r]--(.5[x2l,x2r],0);
+op6:=z13{left}..{up}z12;
+t1=xpart (op1 intersectiontimes op4); t2=xpart (op2 intersectiontimes op3);
+z4=op5 intersectionpoint op6;
+z3=op2 intersectionpoint op3;
+op7:=z4--z4+w*(cosd(can),sind(can));
+op8:=z4--z4-w*(cosd(can),sind(can));
+op9:=z12r{down}..{right}z13r;
+op10:=z13l{left}..{up}z12l;
+filldraw z1r--z2r-- subpath (t2,1) of op2..{down}z10l..{left}z13l--subpath (0, xpart (op10 intersectiontimes op7)) of op10-- subpath (xpart (op9 intersectiontimes op8),1) of op9 --z13r{right}..{up}z10r..subpath (0,t1) of op1--z2l--z1l--cycle;
+penlabels(1,2,10,11,12,13); labels(3);
+endchar;
+
+beginchar("6", fig_width#,cap_height#,0);
+vpos(1)(stem,-can);
+x1=.65w; y1r=h;
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=1.2(x10-x12); x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+filldraw z12r{up}..z1r--z1l..{down}z12l--cycle;
+penlabels(1,10,11,12,13);
+endchar;
+
+beginchar("7", fig_width#,cap_height#,0);
+numeric theta;
+hpos(1)(stem,can); vpos(3)(stem,can);
+x1=.5w; y1l=0; x3l=u; y3r=h; y2r=h; x2r=w-u; y2l=y3l;
+theta:=(angle(z2r-z1r));
+z2'=z2r+((-stem,0) rotated (theta-90));
+z2l=whatever[z2',z1l];
+filldraw z1r--z2r--z3r--z3l--z2l--z1l--cycle;
+penlabels(1,2,3);
+endchar;
+
+beginchar("8", fig_width#,cap_height#,0);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+filldraw (z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle) shifted (z11-z13);
+endchar;
+
+beginchar("9", fig_width#,cap_height#,0);
+vpos(1)(stem,-can);
+x1=.35w; y1l=0;
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=1.2(x10-x12); x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+filldraw z10r{down}..z1l--z1r..{up}z10l--cycle;
+penlabels(1,10,11,12,13);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Punctation, accents, etc.
+beginchar(".",2u#+dot_height#, 2dot_height#/1.2,0);
+z0=(.5w,dot_height/1.2);
+dot(0);
+endchar;
+
+beginchar("-", 6u#, x_height#,0);
+vpos(1)(stem,can); penpos2(stem,90);
+y1=y2=.65h; x1l=u; x2=w-u;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+iff known latin_hyphen_alt:
+beginchar(latin_hyphen_alt, 6u#, x_height#,0);
+vpos(1)(stem,can); penpos2(stem,90);
+y1=y2=.65h; x1l=u; x2=w-u;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+beginchar(oct"173", 9u#, x_height#,0);
+vpos(1)(stem,can); penpos2(stem,90);
+y1=y2=.65h; x1l=u; x2=w-u;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+beginchar(oct"174", 12u#, x_height#,0);
+vpos(1)(stem,can); penpos2(stem,90);
+y1=y2=.65h; x1l=u; x2=w-u;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+beginchar("+", 10u#, v_center(8u#));
+vpos(1)(stem,can); penpos2(stem,90); hpos(3)(stem,can); hpos(4)(stem,can);
+y1=y2=math_axis; x1l=u; x2=w-u; x3=x4=.5w; y3r=h; y4l=-d;
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw z3l--z4l--z4r--z3r--cycle;
+endchar;
+
+beginchar("*", 8u#, cap_height#,0);
+hpos(1)(stem,can); hpos(2)(stem,can);
+hpos(3)(stem,-45+can); hpos(4)(stem,-45+can);
+hpos(5)(stem,45-can); hpos(6)(stem,45-can);
+x1=x2=x0=.5w; y1r=h; y2l=h-6u; .5[y1,y2]=y0;
+.5[z3l,z4r]=z0=.5[z5r,z6l]; x3r=w-u=x6r; cosd(45)*(x3r-x4l)=y3l-y4r;
+cosd(45)*(x5l-x6r)=y6l-y5r;
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw z3l--z4l--z4r--z3r--cycle;
+filldraw z5l--z6l--z6r--z5r--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+beginchar("&", 14u#, cap_height#,0);
+vpos(1)(stem,-can); hpos(2)(stem,can); penpos3(stem,210);
+y1l=0; x1r=w-u=x2r+u; y2l=x_height; z3=z11l;
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=.65w; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+.5[z20,z22]=.5[z21,z23]; y21=h-.5stem; .5[x20,x22]=.5w-u; y20=y22; x21=x23; y21-y23=x20-x22; x20-x22=.3w+u;
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90);
+filldraw z2r{down}..z13r{left}..{up}z12r..{right}z11r..{up}z20l..{left}z21l..{down}z22l..z3l..{right}z1r--z1l{left}..z3r..z22r{up}..{right}z21r..{down}z20r..{left}z11l..{down}z12l..{right}z13l..{up}z2l--cycle;
+penlabels(1,2,3,10,11,12,13,20,21,22,23);
+endchar;
+
+beginchar("'",2.5u#,asc_height#,0);
+z0=(.5w,h);
+quota(0);
+endchar;
+
+beginchar("`",2.5u#,asc_height#,0);
+z0=(.5w,h);
+quota(0).upper;
+endchar;
+
+beginchar(34,7u#,asc_height#,0);
+.5[z1,z2]=(.5w,h); y1=y2; x1=2u;
+quota(1); quota(2);
+endchar;
+
+beginchar(oct"134",7u#,asc_height#,0);
+.5[z1,z2]=(.5w,h); y1=y2; x1=2u;
+quota(1).upper; quota(2).upper;
+endchar;
+
+iff known sign_czech_closing:
+beginchar(sign_czech_closing,7u#,asc_height#,0);
+.5[z1,z2]=(.5w,h); y1=y2; x1=2u;
+quota(1).upper; quota(2).upper;
+endchar;
+
+iff known sign_CE_opening:
+beginchar(sign_CE_opening,7u#,1.5u#,2u#);
+.5[z1,z2]=(.5w,h); y1=y2; x1=2u;
+quota(1); quota(2);
+endchar;
+
+"Grave accent";
+beginchar(oct"022",6u#,asc_height#,0);
+z0=(.5w,h);
+grave(0);
+endchar;
+
+"Acute accent";
+beginchar(oct"023",6u#,asc_height#,0);
+z0=(.5w,h);
+acute(0);
+endchar;
+
+"Caron";
+beginchar(oct"024",6u#,asc_height#,0);
+z0=(.5w,h);
+caron(0);
+endchar;
+
+
+"Breve";
+beginchar(oct"025",7u#,asc_height#,0);
+z0=(.5w,h);
+breve(0);
+endchar;
+
+"Macron (bar)";
+beginchar(oct"026",6u#,asc_height#,0);
+z0=(.5w,h);
+macron(0);
+endchar;
+
+"Ring accent";
+beginchar(oct"027",6u#,asc_height#,0);
+z0=(.5w,h);
+ring(0);
+endchar;
+
+"Circumflex";
+beginchar(oct"136",6u#,asc_height#,0);
+z0=(.5w,h);
+circumflex(0);
+endchar;
+
+"Dot accent";
+beginchar(oct"137",6u#,asc_height#,0);
+z0=(.5w,h-.6stem);
+acc_dot(0);
+endchar;
+
+"Hungarian umlaut";
+beginchar(oct"175",6u#,asc_height#,0);
+z0=(.5w,h);
+H_umlaut(0);
+endchar;
+
+"Tilde";
+beginchar(oct"176",9u#,asc_height#,0);
+z0=(.5w,h);
+tilde(0)
+endchar;
+
+"Umlaut";
+beginchar(oct"177",6u#,asc_height#,0);
+z0=(.5w,h-.6stem);
+umlaut(0);
+endchar;
+
+iff known sign_ogonek:
+"Ogonek";
+beginchar(sign_ogonek,6u#,0,desc_depth#);
+z0=(.5w+.7u,0); ogonek(0);
+endchar;
+
+"Cedilla";
+beginchar(oct"030",6u#,0,.75desc_depth#);
+z0=(.5w,0); cedilla(0);
+penlabels(1,2,3);
+endchar;
+
+beginchar(",",4u#,dot_height#,2u#);
+y1r=h; y2l=-d; x1r=w-u; x2l=u;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+endchar;
+
+beginchar(";",4u#,x_height#,2u#);
+y1r=1.5dot_height; y2l=-d; x1r=w-u; x2l=u;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+z0=(x1,h-.5dot_height); dot(0);
+endchar;
+
+beginchar(":",4u#,x_height#,0);
+.5[y1,y2]=.5h; x1=x2=.5w; y1=.75dot_height;
+dot(1); dot(2);
+endchar;
+
+beginchar("/", 7u#, cap_height#,0);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can);
+x1l=u; x2r=w-u; y1l=0; y2r=h;
+path slash_path;
+slash_path:=z1l--z2l--z2r--z1r--cycle;
+filldraw slash_path;
+endchar;
+
+beginchar("=", 10u#, v_center(7u#));
+vpos(1)(stem,can); penpos2(stem,90);
+x1l=u; x2=w-u; y1=y2; .5[y1,y3]=math_axis; y1-y3=2dot_height;
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw (z1l--z2l--z2r--z1r--cycle) shifted (0,y3-y1);
+endchar;
+
+beginchar("#", 11u#, cap_height#, 0);
+vpos(1)(stem,can); penpos2(stem,90);
+hpos(3)(cap_stem,can); hpos(4)(cap_stem,can);
+x1l=u; x2=w-u; y1=y2; .5[y1,y1']=.5h; y1-y1'=2dot_height;
+x3l=u; x4r=.5w+u; y3l=0; y4r=h;
+filldraw z3l--z4l--z4r--z3r--cycle;
+filldraw (z3l--z4l--z4r--z3r--cycle) shifted (w-u-x4r,0);
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw (z1l--z2l--z2r--z1r--cycle) shifted (0,y1'-y1);
+endchar;
+
+beginchar("$",8u#,cap_height#,par_depth#);
+penpos10(stem,0); penpos11(stem,90); hpos(12)(stem,can); penpos13(stem,270);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w-u); y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+hpos(20)(stem,can); penpos21(stem,90); penpos22(stem,180); penpos23(stem,270);
+penpos15(stem,45); z15=.5[z23,z11];
+.5[z20,z22]=.5[z21,z23]; y21=h-1.5stem; x20+.5stem=(w-u); y20=y22; x21=x23; y21-y23=x20-x22; x22-.5stem=u;
+filldraw z20r{up}..{left}z21r..{down}z22r..z15l..{down}z10l..{left}z13l..{up}z12r--z12l{down}..{right}z13r..z10r{up}
+..z15r..z22l{up}..{right}z21l..{down}z20l--cycle;
+hpos(1)(stem,can); hpos(2)(stem,can);
+x1=x2=.5w; y1r=h; y2l=-d;
+filldraw z1l--z2l--z2r--z1r--cycle;
+penlabels(10,11,12,13,20,21,22,23);
+endchar;
+
+beginchar("%", 11u#, cap_height#, 0);
+numeric circ; circ=3u;
+.5[z1,z2]=.5(w,h); x1-.5circ-.5stem=u; y1+.5circ+.5stem=h;
+kruh(1)(circ); kruh(2)(circ);
+hpos(3)(cap_stem,can); hpos(4)(cap_stem,can);
+y3l=0; y4r=h; x4r=w-u; x3l=u ;
+filldraw z4l--z3l--z3r--z4r--cycle;
+endchar;
+
+iff known sign_per_thousand:
+beginchar(sign_per_thousand, 15u#, cap_height#, 0);
+numeric circ; circ=3u;
+.5[z1,z2]=.5(10u,h); x1-.5circ-.5stem=u; y1+.5circ+.5stem=h;
+y2'=y2; x2'=w-u-.5circ-.5stem;
+kruh(1)(circ); kruh(2)(circ); kruh(2')(circ);
+hpos(3)(cap_stem,can); hpos(4)(cap_stem,can);
+y3l=0; y4r=h; x4r=10u; x3l=u ;
+filldraw z4l--z3l--z3r--z4r--cycle;
+endchar;
+
+iff known sign_per_ten_thousand:
+beginchar(sign_per_ten_thousand, 19u#, cap_height#, 0);
+numeric circ; circ=3u;
+.5[z1,z2]=.5(10u,h); x1-.5circ-.5stem=u; y1+.5circ+.5stem=h;
+y2'=y2''=y2; x2''=w-u-.5circ-.5stem; x2'=x2''-circ-1.4stem;
+kruh(1)(circ); kruh(2)(circ); kruh(2')(circ); kruh(2'')(circ);
+hpos(3)(cap_stem,can); hpos(4)(cap_stem,can);
+y3l=0; y4r=h; x4r=10u; x3l=u ;
+filldraw z4l--z3l--z3r--z4r--cycle;
+endchar;
+
+beginchar("(", 5u#, par_height#, par_depth#);
+hpos(1)(stem,can); penpos2(stem,0); hpos(3)(stem,can);
+x1r=x3r=w-u; x2l=u; y2=.5[y1,y3]; y3l=-d; y1r=h;
+filldraw z1l..z2l..z3l--z3r..z2r..z1r--cycle;
+penlabels(1,2,3);
+endchar;
+
+beginchar(")", 5u#, par_height#, par_depth#);
+hpos(1)(stem,-can); penpos2(stem,0); hpos(3)(stem,-can);
+x1l=x3l=u; x2r=w-u; y2=.5[y1,y3]; y3r=-d; y1l=h;
+filldraw z1l..z2l..z3l--z3r..z2r..z1r--cycle;
+penlabels(1,2,3);
+endchar;
+
+beginchar("[", 7u#, par_height#, par_depth#);
+vpos(1)(stem,can); vpos(4)(stem,can);
+x1r=x4r=w-u; x2r=x3r=u; y1r=y2r=h; y4l=y3r=-d; z3l=(x3r+stem,y4r); z2l=(x2r+stem,y1l);
+filldraw z1r--z2r--z3r--z4l--z4r--z3l--z2l--z1l--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("]", 7u#, par_height#, par_depth#);
+vpos(1)(stem,-can); vpos(4)(stem,-can);
+x1r=x4r=u; x2r=x3r=w-u; y1r=y2r=h; y4l=y3r=-d; z3l=(x3r-stem,y4r); z2l=(x2r-stem,y1l);
+filldraw z1r--z2r--z3r--z4l--z4r--z3l--z2l--z1l--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+beginchar("!", 4u#, par_height#, 0);
+hpos(1)(stem,can); hpos(2)(cap_stem,can);
+x0=x1=x2=.5w; y2r=h; y1l=1.5dot_height; y0=.6stem;
+filldraw z1l--z2l--z2r--z1r--cycle;
+dot(0);
+endchar;
+
+"Reversed exclamation mark";
+beginchar(oct"074", 4u#, par_height#-desc_depth#, desc_depth#);
+hpos(1)(stem,can); hpos(2)(cap_stem,can);
+x0=x1=x2=.5w; y2l=-d; y1l=h-1.5dot_height; y0=h-.6stem;
+filldraw z1l--z2l--z2r--z1r--cycle;
+dot(0);
+endchar;
+
+beginchar("?", 9u#, par_height#, 0);
+path p;
+hpos(1)(stem,can); hpos(2)(stem,0);
+x0=x1=x2=.5w; y2r=.5[y1,y13]; y1l=1.5dot_height; y0=.6stem;
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); hpos(12)(stem,-can); penpos13(stem,-90);
+p:=z2{up}..{up}z10; z3=point .5 of p; penpos3(stem,270+angle(direction .5 of p));
+filldraw z1l---z2l..z3l..z10l{up}..{left}z11l..{down}z12r--z12l{up}..z11r{right}..{down}z10r..z3r..z2r---z1r--cycle;
+dot(0);
+penlabels(1,2,3,10,11,12,13);
+used_p:=nullpicture; addto used_p also currentpicture rotatedaround ((.5w,.5h),180);
+endchar;
+
+"Reversed question sign";
+beginchar(oct"076", 9u#, par_height#-desc_depth#, desc_depth#);
+addto currentpicture also used_p shifted (0,h-par_height);
+endchar;
+
+iff known sign_less_than:
+beginchar(sign_less_than, 10u#, .8cap_height#,0);
+hpos(1)(stem/cosd(45),can); penpos2(stem/cosd(60),0);hpos(3)(stem/cosd(45),-can);
+x2l=u; x1=x3; .5[y1l,y3l]=y2; y3l=h; y2=.5cap_height; rt x1r=w-u;
+filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle;
+penlabels(1,2,3);
+endchar;
+
+iff known sign_greater_than:
+beginchar(sign_greater_than, 10u#, .8cap_height#,0);
+hpos(1)(stem/cosd(45),-can); penpos2(stem/cosd(60),0);hpos(3)(stem/cosd(45),can);
+x2r=w-u; x1=x3; .5[y1r,y3r]=y2; y3r=h; y2=.5cap_height; lft x1l=u;
+filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle;
+endchar;
+
+iff known sign_french_opening:
+"Left guillemot";
+beginchar(sign_french_opening, 8u#, .75[cap_height#,x_height#],0);
+hpos(1)(stem,can); penpos2(stem,0);hpos(3)(stem,can);
+x2l=u; x1=x3; y1l=0; y3r=h; y2=.5h; x1r=.6w;
+filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle;
+filldraw (z1l--z2l--z3l--z3r--z2r--z1r--cycle) shifted (w-u-x1r,0);
+endchar;
+
+iff known sign_french_closing:
+"Right guillemot";
+beginchar(sign_french_closing, 8u#, .75[cap_height#,x_height#],0);
+hpos(1)(stem,-can); penpos2(stem,0);hpos(3)(stem,-can);
+x2r=w-u; x1=x3; y1r=0; y3l=h; y2=.5h; x1l=.4w;
+filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle;
+filldraw (z1l--z2l--z3l--z3r--z2r--z1r--cycle) shifted (u-x1l,0);
+endchar;
+
+"Polish crossbar";
+beginchar(oct"040", 3u#, cap_height#,0);
+vpos(1)(stem,can); penpos2(stem,90);
+y1=.65h; y2=.8h; x1l=0; x2=w;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+"Ligature ff";
+beginchar(oct"013", 10u#,cap_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can);
+x1l=2u=x2l; y1=0; y2=.8h;
+path p; pair shift;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(.6w+4u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+shift:=(w-u-x3r,0);
+filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle;
+filldraw (z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle) shifted shift;
+filldraw z3r--z3r+shift--z3l+shift--z3l--cycle;
+vpos(4)(stem,can); penpos5(stem,90);
+y4=y5=x_height; x4l=u; x5=w-u;
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(3);
+z6r=z3r+shift; z6l=z3l+shift;
+serif(6r)(angle(z6l-z6r),180-angle(direction 0 of (z3r..{left}z11r)));
+endchar;
+
+"Ligature fi";
+beginchar(oct"014", 6u#+stem#,cap_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can);
+x1l=2u=x2l; y1=0; y2=.8h;
+path p; pair shift;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+4u)-u-stem; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle;
+vpos(4)(stem,can); penpos5(stem,90);
+y4=y5=x_height; x4l=u; x5=w-u;
+filldraw z4r--z5r--z5l--z4l--cycle;
+hpos(6)(stem,can); penpos7(stem,0);
+x6r=x7r=w-u; y7r=x_height; y6l=0;
+filldraw z6l--z7l--z7r--z6r--cycle;
+z8a=(w-u,y3r); z8b=(x8a-(x3r-x3l),y3l); z8c=(x8a-.6stem,y8b-.8stem); z8d=(x8c-.6stem,y8b);
+filldraw z3r--z8a--z8b--z8c--z8d--cycle;
+penlabels(3);
+endchar;
+
+"Ligature fl";
+beginchar(oct"015", 6u#+stem#,cap_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can);
+x1l=2u=x2l; y1=0; y2=.8h;
+path p; pair shift;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+4u)-u-stem; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle;
+vpos(4)(stem,can); penpos5(stem,90);
+y4=y5=x_height; x4l=u; x5=w-u;
+filldraw z4r--z5r--z5l--z4l--cycle;
+hpos(6)(stem,can); penpos7(stem,0);
+x6r=x7r=w-u; y7r=h; y6l=0;
+filldraw z6l--z7l--z7r--z6r--cycle;
+penlabels(3);
+endchar;
+
+"Ligature ffi";
+beginchar(oct"016", 10u#+stem#,cap_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can);
+x1l=2u=x2l; y1=0; y2=.8h;
+path p; pair shift;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w)-u-stem; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+shift:=(w-u-stem-x3r,0);
+filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle;
+filldraw (z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle) shifted shift;
+filldraw z3r--z3r+shift--z3l+shift--z3l--cycle;
+vpos(4)(stem,can); penpos5(stem,90);
+y4=y5=x_height; x4l=u; x5=w-u;
+filldraw z4r--z5r--z5l--z4l--cycle;
+hpos(6)(stem,can); penpos7(stem,0);
+x6r=x7r=w-u; y7r=x_height; y6l=0;
+filldraw z6l--z7l--z7r--z6r--cycle;
+z8a=(w-u,y3r); z8b=(x8a-(x3r-x3l),y3l); z8c=(x8a-.6stem,y8b-.8stem); z8d=(x8c-.6stem,y8b);
+filldraw z3r+shift--z8a--z8b--z8c--z8d--cycle;
+penlabels(3);
+endchar;
+
+"Ligature ffl";
+beginchar(oct"017", 10u#+stem#,cap_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can);
+x1l=2u=x2l; y1=0; y2=.8h;
+path p; pair shift;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w)-u-stem; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l;
+shift:=(w-u-stem-x3r,0);
+filldraw z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle;
+filldraw (z3r..z11r{left}..{down}z2l--z1l--z1r--z2r{up}..{right}z11l--cycle) shifted shift;
+filldraw z3r--z3r+shift--z3l+shift--z3l--cycle;
+vpos(4)(stem,can); penpos5(stem,90);
+y4=y5=x_height; x4l=u; x5=w-u;
+filldraw z4r--z5r--z5l--z4l--cycle;
+hpos(6)(stem,can); penpos7(stem,0);
+x6r=x7r=w-u; y7r=h; y6l=0;
+filldraw z6l--z7l--z7r--z6r--cycle;
+penlabels(3);
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Ligatures and specials
+ligtable "!": "`"=:oct"074";
+ligtable "?": "`"=:oct"076";
+ligtable oct"040": "l" kern -3u#;
+ligtable oct"013": "i"=:oct"016", "l"=:oct"017";
+ligtable "-": "-"=:oct"173";
+ligtable oct"173": "-"=:oct"174";
+ligtable "/": "/" kern -3u#;
+
+w:=fig_width;
+h:=cap_height;
+numeric theta, sstem;
+path digit[];
+sstem:=3/2stem;%digit one
+hpos(1)(sstem,can); hpos(3)(sstem,-can);
+x1r=w-u; y1l=0; y3l=.6h; x3l=2u; z2r=(w-u,h);
+theta:=(angle(z2r-z3l));
+z2'=z2r+((sstem,0) rotated (theta-90));
+z2l=whatever[z2',z3r]=whatever[z1l,z2r-(sstem,0)];
+digit[1]:=(z1r--z2r--z3l--z3r--z2l--z1l--cycle) scaled 2/3;
+clearxy; %digit two
+vpos(1)(sstem,can);
+x1r=w-u; y1l=0; z2l=(u,0); y2r=y1r;
+.5[z10,z12]=.5[z11,z13]; y11=h-.5sstem; x10+.5sstem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5sstem=u;
+penpos10(sstem,0); penpos11(sstem,90); penpos12(sstem,180); penpos13(sstem,-90); penpos10'(sstem,0);
+y10'=y10; x10'r=w;
+theta:=angle(z10'l-z2l);
+z2'=z2l+((sstem,0) rotated (theta-90));
+z2r=whatever[z2',z10'r];
+y3l=y3r=y13; z3=.5[z3l,z3r];
+z3l=whatever[z2l,z10'l]; z3r=whatever[z2r,z10'r];
+penpos4(sstem,180+theta); z4=z13;
+digit[2]:=(z1r--z2r---z3r..z10r{up}..{left}z11r..{down}z12r..{right}z4r--z4l{left}..z12l..{right}z11l..{down}z10l..z3l---z2l--z1l--cycle) scaled 2/3;
+clearxy; %digit three
+.5[z10,z12]=.5[z11,z13]; y11=h-.5sstem; x10+.5sstem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5sstem=u;
+penpos10(sstem,0); penpos11(sstem,90); hpos(12)(sstem,-can); vpos(13)(sstem,can);
+.5[z20,z22]=.5[z21,z23]; y21=y13; x20+.5sstem=w-u; y20=y22; x21=x23; y23-.5sstem=0; x22-.5sstem=u;
+penpos20(sstem,0); penpos21(sstem,90); hpos(22)(sstem,can); penpos23(sstem,90); vpos(2)(sstem,can);
+digit[3]:= (z12l{up}..{right}z11r..{down}z10r..{left}z13l--z13r{right}..z10l{up}..z11l{left}..{down}z12r--cycle) scaled 2/3;
+digit3.1:=(z13r{right}..{down}z20r..{left}z23l..{up}z22l--z22r{down}..{right}z23r..z20l{up}..{left}z13l--cycle) scaled 2/3;
+clearxy; %digit four
+hpos(1)(sstem,can); penpos4(sstem,90);
+x1r=w-2.5u; y1l=0; y3l=.7x_height; x3l=u; z2r=(x1r,h); y4l=y3l; x4=w-u; y3r=y4r;
+theta:=(angle(z2r-z3l));
+z2'=z2r+((sstem,0) rotated (theta-90));
+z2l=z2'+whatever*(z3l-z2r)=whatever[z1l,z2r-(sstem,0)];
+z3r=whatever[z2l,z2'];
+digit4:=(z1r--z2r--z3l--z4l--z4r--z3r--z2l--z1l--cycle) scaled 2/3;
+
+iff known sign_sup_one:
+"One superscript";
+beginchar(sign_sup_one,.75fig_width#,cap_height#,0);
+filldraw digit1 shifted (.5u,1/3*cap_height);
+endchar;
+
+iff known sign_sup_two:
+"Two superscript";
+beginchar(sign_sup_two,.75fig_width#,cap_height#,0);
+filldraw digit2 shifted (.5u,1/3*cap_height);
+endchar;
+
+iff known sign_sup_three:
+"Three superscript";
+beginchar(sign_sup_three,.75fig_width#,cap_height#,0);
+filldraw digit3 shifted (.5u,1/3*cap_height);
+filldraw digit3.1 shifted (.5u,1/3*cap_height);
+endchar;
+
+iff known sign_sup_a:
+"Underbared letter 'a' supperscript (ordfeminine)";
+beginchar(sign_sup_a, 5.4u#, cap_height#,0);
+hpos(1)(sstem,can); penpos2(sstem,0); penpos3(sstem,90); vpos(4)(sstem,-can);
+lft x1r=6.6u; y1=0; x2=x1; y2=.7x_height; x3=3.8u; top y3r=x_height; y4=.86x_height; x4l=2u;
+filldraw (z1l--z1r--z2r{up}..{left}z3r..z4r--z4l..z3l{right}..{down}z2l--cycle) scaled 2/3 shifted (0,1/3cap_height+1/3x_height);
+.5[z10,z12]=.5[z11,z13]; y13=.5sstem; x10+.5sstem=6.6u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5sstem=u;
+penpos10(sstem,0); penpos11(sstem,90); penpos12(sstem,180); penpos13(sstem,-90);
+filldraw (z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle) scaled 2/3 shifted (0,1/3*cap_height+1/3x_height);
+z0=(.5w,1/3(cap_height+x_height)-.75stem); macron(0);
+endchar;
+
+iff known sign_sup_o:
+"Underbared letter 'o' superscript (ordmasculine)";
+beginchar(sign_sup_o, 6.7u#,cap_height#,0);
+.5[z10,z12]=.5[z11,z13]; y13=.5sstem; x10+.5sstem=9u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5sstem=u;
+penpos10(sstem,0); penpos11(sstem,90); penpos12(sstem,180); penpos13(sstem,-90);
+filldraw (z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle) scaled 2/3 shifted (0, 1/3cap_height+1/3x_height);
+z0=(.5w,1/3(cap_height+x_height)-.75stem); macron(0);
+endchar;
+
+iff known sign_onequarter:
+"One quarter sign";
+beginchar(sign_onequarter,13u#,cap_height#+stem#,-stem#);
+filldraw digit[1] shifted (-.5u,1/3cap_height+2stem);
+filldraw slash_path shifted (3.5u,stem);
+filldraw digit[4] shifted (w-.7fig_width,0);
+endchar;
+
+iff known sign_threequarters:
+"Three quarters sign";
+beginchar(sign_threequarters,13.5u#,cap_height#+stem#,-stem#);
+filldraw digit[3] shifted (.5u,1/3cap_height+2stem);
+filldraw digit3.1 shifted (.5u,1/3cap_height+2stem);
+filldraw slash_path shifted (4u,stem);
+filldraw digit[4] shifted (w-.7fig_width,0);
+endchar;
+
+iff known sign_onehalf:
+"One half sign";
+beginchar(sign_onehalf,14u#,cap_height#+stem#,-stem#);
+filldraw digit[1] shifted (-.5u,1/3cap_height+2stem);
+filldraw slash_path shifted (3.5u,stem);
+filldraw digit[2] shifted (w-.7fig_width,0);
+endchar;
+
+iff known sign_registered:
+"Registered sign";
+beginchar(sign_registered, 16.5u#,cap_height#,0);
+numeric scap_stem; scap_stem:=cap_stem/.65;
+pair shift_it;
+shift_it:=(.5*(16.5-.65*11)*u+.5u,.5*.35h);
+hpos(1)(scap_stem,can); hpos(2)(scap_stem,0);
+x1l=u=x2l; y1=0; y2r=h;
+filldraw (z1l--z1r--z2r--z2l--cycle) scaled .65 shifted shift_it;
+.5[z10,z12]=.5[z11,z13]; y11=h-.5scap_stem; x10+.5scap_stem=10u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5scap_stem=2u;
+z2'=z2r+.5scap_stem*down; x2'=x2''; .5[y2',y2'']=.5[y11,y13];
+penpos2'(scap_stem,90); penpos2''(scap_stem,270); penpos11(scap_stem,90); penpos10(scap_stem,0); penpos13(scap_stem,270);
+hpos(3)(scap_stem,0); hpos(4)(scap_stem,can);
+z3l=z2''l; x4r=10u; y4l=0;
+z0=(z4r--z3r) intersectionpoint (z13r--z2''r);
+filldraw (z2'r---z11r..{down}z10r..{left}z13r--- z0--z4r--z4l --z2''l---z13l..{up}z10l..z11l---z2'l--cycle) scaled .65 shifted shift_it;
+penpos20(cap_stem,0); penpos21(cap_stem,90); penpos22(cap_stem,180); penpos23(cap_stem,-90);
+.5[z20,z22]=.5[z21,z23]; y23=.5cap_stem; x20+.5cap_stem=w-u; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5cap_stem=u;
+filldraw z20r{up}..{left}z21r..{down}z22r..{right}z23r..{up}z20r--z20l{down}..{left}z23l..{up}z22l..{right}z21l..{down}z20l--cycle;
+endchar;
+
+iff known sign_copyright:
+"Copyright sign";
+beginchar(sign_copyright, 16.5u#,cap_height#,0);
+numeric scap_stem; scap_stem:=cap_stem/.65;
+path p;
+penpos11(scap_stem,90); penpos12(scap_stem,0); penpos13(scap_stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5scap_stem; x10+.5scap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5scap_stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .68 of p;
+z2=point 3.28 of p;
+vpos(1)(scap_stem,-.5can); vpos(2)(scap_stem,.5can);
+filldraw (z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle) scaled .65 shifted (.22*w,.5*.35h);
+penpos20(cap_stem,0); penpos21(cap_stem,90); penpos22(cap_stem,180); penpos23(cap_stem,-90);
+.5[z20,z22]=.5[z21,z23]; y23=.5cap_stem; x20+.5cap_stem=w-u; y20=y22; x21=x23; y21-y23=x20-x22; x22-.5cap_stem=u;
+filldraw z20r{up}..{left}z21r..{down}z22r..{right}z23r..{up}z20r--z20l{down}..{left}z23l..{up}z22l..{right}z21l..{down}z20l--cycle;
+endchar;
+
+iff known sign_period_centered:
+"Centered period";
+beginchar(sign_period_centered,2u#+dot_height#, .5cap_height#+dot_height#/1.2,0);
+z0=(.5w,h-2dot_height);
+dot(0);
+endchar;
+
+iff known sign_logicalnot:
+"Logical not sign";
+beginchar(sign_logicalnot,10u#,x_height#,0);
+vpos(1)(stem,can); penpos3(stem,0);
+lft z1l=(u,h-stem); rt x3r=w-u; y3l=.45h; z2r=(x3r,y1r); z2l=(x3l,y1l);
+filldraw z1r--z2r--z3r--z3l--z2l--z1l--cycle;
+penlabels(1,2,3);
+endchar;
+
+iff known sign_alinea:
+"Paragraph sign";
+beginchar(sign_alinea, 11u#,cap_height#,0);
+hpos(1)(cap_stem,0); hpos(2)(cap_stem,0);
+x1r=w-u=x2r; y1=0; y2r=h;
+filldraw z1l--z1r--z2r--z2l--cycle;
+.5[z10,z12]=.5[z11,z13]; y11=h-.5cap_stem; x10+.5cap_stem=w-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5cap_stem=u;
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,180); penpos13(cap_stem,-90);
+penpos2'(cap_stem,90); penpos2''(cap_stem,270);
+.5[y2'',y2']=y10; x2'=x2''+2.5stem=x2l; y2'r=y2r;
+filldraw z2'r---z11r..{down}z12r..{right}z13r---z2''r--z2''l---z13l{left}..{up}z12l..{right}z11l---z2'l--cycle;
+z3=(x2''+stem,y2r); hpos(4)(cap_stem,can); x4r=x3; y4l=0;
+filldraw z3--z4r--z4l--z2''r---z13r{left}..{up}z12r..z11r--cycle;
+penlabels(1,2,2',3,4,10,11,12,13);
+endchar;
+
+iff known sign_micron:
+"Micron sign (greek mu)";
+beginchar(sign_micron, 9u#,x_height#,desc_depth#);
+hpos(1)(stem,0); hpos(2)(stem,-can); vpos(3)(stem,can); penpos4(stem,0); hpos(5)(stem,can);
+vpos(1')(stem,can);
+x1l=u=x2l; y1=-.35d; y2l=y5r=h; y4=.3h; x5r=w-u; x4r=w-u; y1'l=-d; x1-x1'=y1'-y1;
+filldraw z1'r--z1'l..z1l---z2l--z2r--z1r..{right}cycle;
+path p;
+penpos10(stem,180);penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=(w+0u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+filldraw z5l--z5r--z10l{down}..z13l{left}..{up}z12l--z12r{down}..{right}z13r..{up}z10r--cycle;
+endchar;
+
+iff known sign_plusminus:
+"Plus minus sign";
+beginchar(sign_plusminus, 10u#, v_center(8u#));
+vpos(1)(stem,can); penpos2(stem,90); hpos(3)(stem,can); hpos(4)(stem,can);
+y1=y2=math_axis; x1l=u; x2=w-u; x3=x4=.5w; y3r=h; y4l=-d;
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw z3l--z4l--z4r--z3r--cycle;
+filldraw (z1l--z2l--z2r--z1r--cycle) shifted (0,y2-y3);
+endchar;
+
+iff known sign_minusplus:
+"Minus plus sign";
+beginchar(sign_minusplus, 10u#, v_center(8u#));
+vpos(1)(stem,can); penpos2(stem,90); hpos(3)(stem,can); hpos(4)(stem,can);
+y1=y2=math_axis; x1l=u; x2=w-u; x3=x4=.5w; y3r=h; y4l=-d;
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw z3l--z4l--z4r--z3r--cycle;
+filldraw (z1l--z2l--z2r--z1r--cycle) shifted (0,y3-y1);
+endchar;
+
+iff known sign_cent:
+"Cent sign";
+beginchar(sign_cent, 9u#,cap_height#,0);
+path p;
+penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=.25h; x10+.5stem=(w+u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z1=point .5 of p;
+z2=point 3.5 of p;
+penpos1(stem,(170-angle(direction.5 of p))); penpos2(stem,(100+angle(direction 3.5 of p)));
+filldraw z1r..{left}z11r..{down}z12l..{right}z13l..z2l--z2r..z13r{left}..z12r{up}..z11l{right}..z1l--cycle;
+serif(1r,angle(z1l-z1r),180+angle(direction.5 of p));
+filldraw slash_path shifted (u,0);
+endchar;
+
+iff known sign_yen:
+"Yen sign";
+beginchar(sign_yen, 13u#,cap_height#,0);
+hpos(1)(cap_stem,-can); hpos(2)(cap_stem,-can); hpos(3)(cap_stem,can);
+x1r=w-u; y1l=h=y3r; x3l=u; y2r=0; x2l=3.5u; z4l=whatever[z1l,z2l]; y4l=.4h;
+z4r=z4l+(cap_stem/sind(angle(z3l-z4l)),0) rotated (angle(z1l-z4l)-10);
+filldraw z1l--z1r--z2r--z2l--cycle;
+filldraw z3l--z3r--z4r--z4l--cycle;
+vpos(6)(.75stem,can); vpos(7)(.75stem,0);
+lft x6l=2u; rt x7=w-2u; y6=y7=y4l;
+filldraw z6r--z7r--z7l--z6l--cycle;
+filldraw (z6r--z7r--z7l--z6l--cycle) shifted (0,-2stem);
+endchar;
+
+iff known sign_currency:
+beginchar(sign_currency, 12u#,cap_height#,0);
+"Currency sign";
+.5[z10,z12]=.5[z11,z13]=z0=(.5w,.5h); y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+path p; p:=z10{up}..{left}z11..{down}z12..{right}z13..{up}cycle;
+x1'l=x4'r=w-u; x2'r=x3'l=u;
+for i=1,2,3,4:
+z[i]=point (i-.5) of p; penpos[i](stem,angle(direction (i-.5) of p));
+penpos[i]'(stem,angle(direction (i-.5) of p));
+z[i]'=whatever[z0,z[i]];
+filldraw z[i]r--z[i]l--z[i]'l--z[i]'r--cycle;
+endfor;
+penlabels(1,1',2,2',3,3',4,4');
+endchar;
+
+iff known sign_sterling:
+"Sterling sing";
+beginchar(sign_sterling, 10u#,cap_height#,0);
+vpos(1)(cap_stem,can); vpos(2)(cap_stem,can); penpos3(cap_stem,0); penpos4(cap_stem,0); vpos(5)(cap_stem,can);
+y1l=0; x1r=w-u; y2l=0; x2l=u; y3=.15x_height; x3l-x2=y3-y2l; x4=x3; y4=.75h; y5r=h; x5-x4r=y5r-y4;
+filldraw z1r--z1l--z2l{dir10}..{up}z3l---z4l..z5r--z5l..z4r---z3r--(x3r,y1r)--cycle;
+vpos(6)(cap_stem,can); penpos7(cap_stem,90);
+y6=y7=.5h; x6l=u; x7=.55w;
+filldraw z6r--z6l--z7l--z7r--cycle;
+penlabels(1,2,3,4,5,6,7);
+endchar;
+
+iff known sign_bar:
+"Vertical bar";
+beginchar(sign_bar, 5u#, cap_height#,0);
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can);
+x1=x2=.5w; y1l=0; y2r=h;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+iff known sign_broken_bar:
+"Vertical broken bar";
+beginchar(sign_broken_bar, 5u#, cap_height#,0);
+hpos(1)(cap_stem,can); penpos2(cap_stem,0); hpos(3)(cap_stem,can); penpos4(cap_stem,0);
+x1=x2=x3=x4=.5w; y1l=0; y4r=h; .5[y2,y3]=.5h; y3l-y2=2cap_stem;
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw z3l--z4l--z4r--z3r--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+iff known sign_section:
+"Section sign";
+beginchar(sign_section, 12u#,cap_height#,desc_depth#);
+hpos(1)(cap_stem,0); penpos2(cap_stem,(-can+90)); vpos(3)(cap_stem,can); hpos(4)(cap_stem,0); penpos0(cap_stem,90);
+x1r=w-u; y1=.6x_height; y4=h-.4x_height; x4l=u;
+path p;
+penpos10(cap_stem,0); penpos11(cap_stem,90); penpos12(cap_stem,0); penpos13(cap_stem,90);
+.5[z10,z12]=.5[z11,z13]; y13=cap_stem+.1x_height; x10+.5cap_stem=w-u; y10=y12;
+x11=x13; y11-y13=x10-x12; x13=.5w; x3=x12l; y3=.45x_height;
+p:= z10{down}..{left}z13..{up}z12..{right}z11..cycle;
+penpos20(cap_stem,0); penpos21(cap_stem,90); penpos22(cap_stem,0); penpos23(cap_stem,90);
+.5[z20,z22]=.5[z21,z23]; y21=h-cap_stem+.1x_height; x20+.5cap_stem=w-u; y20=y22;
+x21=x23; y21-y23=x20-x22; x23=.5w; x2r=x10r; y2r=h-.15x_height;
+filldraw z13l{right}..{up}z1r--z1l{down}..{left}z13r--cycle;
+filldraw z2l..z21l{left}..{down}z4r--z4l{up}..{right}z21r..z2r--cycle;
+p:=z4r{down}..{down}z1r; z0=((.5w,0)--(.5w,h)) intersectionpoint p;
+filldraw z4l{down}..z0l..{down}z1l--z1r{up}..z0r..{up}z4r--cycle;
+filldraw (z4r{up}..{right}z21l--z21r{left}..{down} z4l) shifted (z0-z21)..{right}z13l..(z1l{down}..{left}z13r..z3r--z3l..z13l{right}..{up}z1r) shifted (z0-z21)..z13r{left}..{up}cycle;
+penlabels(0,1,2,3,4,10,11,12,13,20,21,22,23);
+endchar;
+
+iff known sign_divide:
+"Divide sign";
+beginchar(sign_divide, 10u#, v_center(8u#));
+vpos(1)(stem,can); penpos2(stem,90);
+y1=y2=math_axis; x1l=u; x2=w-u; .5[y3,y4]=math_axis; x3=x4=.5w; y3=dot_height;
+filldraw z1l--z2l--z2r--z1r--cycle;
+dot(3); dot(4);
+endchar;
+
+iff known sign_backslash:
+beginchar(sign_backslash, 8u#, cap_height#,0);
+hpos(1)(cap_stem,-can); hpos(2)(cap_stem,-can);
+x1r=w-u; x2l=u; y1r=0; y2l=h;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+iff known sign_underscore:
+beginchar(sign_underscore, 9u#, 0,stem#);
+vpos(1)(stem,can); penpos2(stem,90);
+y1=y2=-.5stem; x1l=0; x2=w;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+iff known sign_times:
+"Times sign";
+beginchar(sign_times, 9u#, v_center(6u#));
+numeric mstem; mstem=stem/cosd(15);
+hpos(1)(stem/cosd(15),0); hpos(2)(stem/cosd(15),0); hpos(3)(mstem,can); hpos(4)(mstem,can);
+x1l=x4l=u; x2r=x3r=w-u; y1l=y3l=0; y2r=y4r=h;
+filldraw z1l--z2l--z2r--z1r--cycle;
+filldraw z3l--z4l--z4r--z3r--cycle;
+penlabels(1,2,3,4);
+endchar;
+
+iff known sign_brace_left:
+"Brace left";
+beginchar(sign_brace_left, 6.5u#, par_height#, par_depth#);
+vpos(0)(.5stem,can);
+vpos(1)(stem,can); penpos2(stem,180); penpos3(stem,180);
+penpos4(stem,180); penpos5(stem,180); vpos(6)(stem,-can);
+z0=(u,.5(h-d)); x1r=x6r=w-u; y1r=h; y2=.85h; y1-y2=x1-x2l; y3-y0=y1-y2; x3=x4=x5=x2;
+y7=y0; x7=x3l-stem;
+y6l=-d; y5=-d+.15h; .5[y4,y3]=y0;
+filldraw z1r..z2r---z3r..{left}z0r--z0l{right}..z4r---z5r..{right}z6l--z6r{left}..z5l---z4l..{left}z7{right}..z3l---z2l..z1l--cycle;
+penlabels(0,1,2,3,4,5,6,7);
+endchar;
+
+iff known sign_brace_right:
+"Brace right";
+beginchar(sign_brace_right, 6.5u#, par_height#, par_depth#);
+vpos(0)(.5stem,-can);
+vpos(1)(stem,-can); penpos2(stem,0); penpos3(stem,0);
+penpos4(stem,0); penpos5(stem,0); vpos(6)(stem,can);
+z0=(w-u,.5(h-d)); x1l=x6l=u; y1r=h; y2=.85h; y1-y2=x2l-x1; y3-y0=y1-y2; x3=x4=x5=x2;
+y7=y0; x7=x3l+stem;
+y6l=-d; y5=-d+.15h; .5[y4,y3]=y0;
+filldraw z1r..z2r---z3r..{right}z0r--z0l{left}..z4r---z5r..{left}z6l--z6r{right}..z5l---z4l..{right}z7{left}..z3l---z2l..z1l--cycle;
+penlabels(0,1,2,3,4,5,6,7);
+endchar;
+
+iff known sign_dag:
+"Dagger sign";
+beginchar(sign_dag, 8u#,cap_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can);
+x1=.5w=x2; y1=0; y2=h;
+filldraw z2l--z1l--z1r--z2r--cycle;
+vpos(4)(stem,can); penpos5(stem,90);
+y4=y5=.4[x_height,h]; x4l=u; x5=w-u;
+filldraw z4r--z5r--z5l--z4l--cycle;
+endchar;
+
+iff known sign_dagg:
+"Double dagger sign";
+beginchar(sign_dagg, 8u#,cap_height#,0);
+hpos(1)(stem,can); penpos2(stem,0); vpos(3)(stem,can);
+x1=.5w=x2; y1=0; y2=h;
+filldraw z2l--z1l--z1r--z2r--cycle;
+vpos(4)(stem,can); penpos5(stem,90);
+vpos(7)(stem,can); penpos6(stem,90);
+y4=y5=.4[x_height,h]; x4l=u; x5=w-u;
+y6=y7=.5x_height; x6l=u; x7=w-u;
+filldraw z4r--z5r--z5l--z4l--cycle;
+filldraw z6r--z7r--z7l--z6l--cycle;
+endchar;
+
+iff known sign_bullet:
+"Bullet sign";
+beginchar(sign_bullet, 8u#,v_center(6u#));
+filldraw fullcircle scaled 6u shifted (.5w,.5(h-d));
+endchar;
+
+iff known sign_bullet_triangle:
+"Triangle bullet sign";
+beginchar(sign_bullet_triangle, 7u#,v_center(6u#));
+filldraw (u,-d)--(w-u,math_axis)--(u,h)--cycle;
+endchar;
+
+iff known sign_prime:
+"Prime sign";
+beginchar(sign_prime,4u#,asc_height#,0);
+y1r=h; y2l=.9x_height; x1r=w-u; x2l=u;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+endchar;
+
+iff known sign_doubleprime:
+"Double prime sign";
+beginchar(sign_doubleprime,6u#,asc_height#,0);
+y1r=h; y2l=.9x_height; x1r=w-3u; x2l=u;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+filldraw (z1l--z1r--z2r--z2l--cycle) shifted (2u,0);
+endchar;
+
+iff known sign_tripleprime:
+"Triple prime sign";
+beginchar(sign_tripleprime,8u#,asc_height#,0);
+y1r=h; y2l=.9x_height; x1r=w-5u; x2l=u;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+filldraw (z1l--z1r--z2r--z2l--cycle) shifted (2u,0);
+filldraw (z1l--z1r--z2r--z2l--cycle) shifted (4u,0);
+endchar;
+
+iff known sign_prime_reversed:
+"Reversed prime sign";
+beginchar(sign_prime_reversed,4u#,asc_height#,0);
+y1r=h; y2l=.9x_height; x1l=u; x2r=w-u;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+endchar;
+
+iff known sign_doubleprime_reversed:
+"Reversed double prime sign";
+beginchar(sign_doubleprime_reversed,6u#,asc_height#,0);
+y1r=h; y2l=.9x_height; x1l=u; x2r=w-3u;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+filldraw (z1l--z1r--z2r--z2l--cycle) shifted (2u,0);
+endchar;
+
+iff known sign_tripleprime_reversed:
+"Reversed triple prime sign";
+beginchar(sign_tripleprime_reversed,8u#,asc_height#,0);
+y1r=h; y2l=.9x_height; x1l=u; x2r=w-5u;
+hpos(2)(stem,-can); hpos(1)(cap_stem,-can);
+filldraw (z1l--z1r--z2r--z2l--cycle);
+filldraw (z1l--z1r--z2r--z2l--cycle) shifted (2u,0);
+filldraw (z1l--z1r--z2r--z2l--cycle) shifted (4u,0);
+endchar;
+
+iff known sign_arrow_left:
+"Left arrow";
+beginchar(sign_arrow_left, 18u#, .8cap_height#,0);
+hpos(1)(stem/cosd(30),can); penpos2(stem/cosd(45),0);hpos(3)(stem/cosd(30),-can);
+penpos4(stem,90); vpos(5)(stem,-can);
+x2l=u; x1=x3; .5[y1l,y3l]=y2; y3l=h; y2=.5cap_height; rt x1l=.3w;
+rt x5r=w-u; y5=y2; z4=z2r;
+filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle;
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known sign_arrow_right:
+"Right arrow";
+beginchar(sign_arrow_right, 18u#, .8cap_height#,0);
+hpos(1)(stem/cosd(30),-can); penpos2(stem/cosd(45),0);hpos(3)(stem/cosd(30),can);
+penpos4(stem,90); vpos(5)(stem,can);
+x2r=w-u; x1=x3; .5[y1r,y3r]=y2; y3r=h; y2=.5cap_height; lft x1r=.7w;
+lft x5l=u; y5=y2; z4=z2l;
+filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle;
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known sign_arrow_left_filled:
+"Filled left arrow";
+beginchar(sign_arrow_left_filled, 18u#, .8cap_height#,0);
+hpos(1)(stem/cosd(30),can); penpos2(stem/cosd(45),0);hpos(3)(stem/cosd(30),-can);
+penpos4(stem,90); vpos(5)(stem,-can);
+x2l=u; x1=x3; .5[y1l,y3l]=y2; y3l=h; y2=.5cap_height; rt x1l=.3w;
+rt x5r=w-u; y4=y5=y2; x4=x3l;
+filldraw z1l--z2l--z3l--z3r--z4r--z5r--z5l--z4l--z1r--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known sign_arrow_leftright:
+"Left-right arrow";
+beginchar(sign_arrow_leftright, 18u#, .8cap_height#,0);
+hpos(1)(stem/cosd(30),can); penpos2(stem/cosd(45),0);hpos(3)(stem/cosd(30),-can);
+hpos(6)(stem/cosd(30),-can); penpos7(stem/cosd(45),0);hpos(8)(stem/cosd(30),can);
+penpos4(stem,90); vpos(5)(stem,can);
+x7r=w-u; x6=x8; .5[y6r,y8r]=y7; y8r=h; y7=.5cap_height; lft x6r=.7w;
+x2l=u; x1=x3; .5[y1l,y3l]=y2; y3l=h; y2=.5cap_height; rt x1l=.3w;
+z5=z7l; z4=z2r;
+filldraw z1l--z2l--z3l--z3r--z2r--z1r--cycle;
+filldraw z6l--z7l--z8l--z8r--z7r--z6r--cycle;
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+iff known sign_arrow_up:
+"Up arrow";
+beginchar(sign_arrow_up, 10u#, cap_height#,0);
+hpos(1)(stem/cosd(30),-can); penpos2(stem/cosd(60),90);hpos(3)(stem/cosd(30),can);
+penpos4(stem,0); hpos(5)(stem,can);
+y2r=h; y1=y3; .5[x1l,x3r]=x2; rt x3r=w-u; x2=.5w; y1=x_height;
+y5l=0; x5=x2; z4=z2l;
+filldraw z1l--z2r--z3r--z3l--z2l--z1r--cycle;
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known sign_arrow_down:
+"Down arrow";
+beginchar(sign_arrow_down, 10u#, cap_height#,0);
+hpos(1)(stem/cosd(30),can); penpos2(stem/cosd(60),90);hpos(3)(stem/cosd(30),-can);
+penpos4(stem,0); hpos(5)(stem,can);
+y2l=0; y1=y3; .5[x1l,x3r]=x2; rt x3r=w-u; x2=.5w; y1=h-x_height;
+y5r=h; x5=x2; z4=z2r;
+filldraw z1l--z2l--z3r--z3l--z2r--z1r--cycle;
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known sign_arrow_updown:
+"Up-down arrow";
+beginchar(sign_arrow_updown, 10u#, cap_height#,0);
+hpos(1)(stem/cosd(30),-can); penpos2(stem/cosd(50),90);hpos(3)(stem/cosd(30),can);
+hpos(6)(stem/cosd(30),can); penpos7(stem/cosd(50),90);hpos(8)(stem/cosd(30),-can);
+penpos4(stem,0); hpos(5)(stem,can);
+y2r=h; y1=y3; .5[x1l,x3r]=x2; rt x3r=w-u; x2=.5w; y1=1.2x_height;
+y7l=0; y6=y8; .5[x6l,x8r]=x7; rt x8r=w-u; x7=.5w; y6=h-1.2x_height;
+z5=z7r; z4=z2l;
+filldraw z1l--z2r--z3r--z3l--z2l--z1r--cycle;
+filldraw z6l--z7l--z8r--z8l--z7r--z6r--cycle;
+filldraw z4r--z5r--z5l--z4l--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known sign_sum:
+"Sumation sign (text mode)";
+beginchar(sign_sum,14u#, par_height#,desc_depth#);
+vpos(1)(cap_stem,can); vpos(5)(cap_stem,-can); penpos3(cap_stem/cosd(45),180);
+x1r=x5l=w-u; y1r=y2r=h; y4r=y5l=-d; y3=.5(h-d); x3=.65w; x2r=x4r=u; y2l=y1l; y4l=y5r;
+z4'=z4r+((cap_stem,0) rotated (angle((z3r-z4r))-90));
+z2'=z2r+((cap_stem,0) rotated (angle((z3r-z2r))+90));
+z4l=z4'+whatever*(z3r-z4r); z2l=z2'+whatever*(z3r-z2r);
+filldraw z1r--z2r--z3r--z4r--z5l--z5r--z4l--z3l--z2l--z1l--cycle;
+penlabels(1,2,3,4,5); labels(2',4');
+endchar;
+
+iff known sign_integral:
+"Simple integral sign (text mode)";
+beginchar(sign_integral, 6u#,par_height#,desc_depth#);
+penpos1(stem,0); penpos2(stem,0); vpos(3)(stem,can); vpos(3')(stem,-can);
+x1=.5w=x2; y1=0; y2=.8cap_height;path p;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,0); penpos13(stem,90);
+.5[z10,z12]=.5[z11,z13]; y11=h-.5stem; x10+.5stem=(w+6u)-u; y10=y12; x11=x13; y11-y13=x10-x12; x12-.5stem=2u;
+p:= z10{up}..{left}z11..{down}z12..{right}z13..cycle;
+z3l=z11l; z3'=z13;
+filldraw z3r..z11r{left}..{down}z2l---z1l..{left}((z3'r--z3'l) shifted (z1l-z10l)){right}..z1r--z2r{up}..{right}z11l--cycle;
+penlabels(1,2,3,3');
+endchar;
+
+iff known sign_exist:
+"Exists sign";
+beginchar(sign_exist, 8u#,cap_height#,0);
+hpos(1)(stem,0); hpos(2)(stem,0); vpos(3)(stem,-can); penpos4(stem,90); vpos(5)(stem,0); vpos(6)(stem,can);
+x1r=w-u=x2r; y1=y6l=0; y2r=h; y3r=h; x3r=x6l=u; x2l=x4; y4=y5=.5h; x5=x3;
+filldraw z1r--z2r--z3r--z3l--(x2l,y3l)--z4r--z5r--z5l--z4l--(x1l,y6r)--z6r--z6l--cycle;
+penlabels(1,2,3,4,5,6);
+endchar;
+
+iff known sign_forall:
+"For all sign";
+beginchar(sign_forall, 11u#,cap_height#,2u#);
+numeric theta;
+hpos(1)(stem,-can); hpos(2)(stem,can);
+x1r=w-u; y1l=h=y2r; x2l=u; z3l=(.5w,-d);
+theta:=90+angle(z1r-z3l);
+penpos3(stem/sind(theta),90);
+penpos4(stem,90); penpos5(stem,90);
+y5=y4=.6h; z4=whatever[z2,z3]; z5=whatever[z1,z3];
+filldraw z1l--z3r--z2r--z2l--z3l--z1r--cycle;
+filldraw z4l--z5l--z5r--z4r--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known sign_infinity:
+"Infinity";
+beginchar(sign_infinity, 17u#,x_height#,0);
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+penpos20(stem,0); penpos21(stem,90); penpos22(stem,180); penpos23(stem,-90);
+.5[z10,z12]=.5[z11,z13]; y13=y23=.5stem; y10=y20=y12=y22; x11=x13; y11-y13=x10-x12=y21-y23=x20-x22;
+.5[z20,z22]=.5[z21,z23]; x21=x23; x12-.5stem=u; x10=.5w; .5[x12,x20]=.5w;
+filldraw z13r{left}..{up}z12r..{right}z11r..z10r..{right}z23l..{up}z20l..{left}z21l..z22l..{left}z13r--z13l{right}..z22r..z21r{right}..z20r{down}..z23r{left}..z10l..z11l{left}..{down}z12l..{right}z13l--cycle;
+penlabels(10,11,12,13,20,21,22,23);
+endchar;
+
+iff known sign_partial:
+"Partial derivative sign";
+beginchar(sign_partial, 10u#,cap_height#,0);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; x10+.5stem=w-u; y10=y12; x11=x13; y11-y13=1.1(x10-x12); x12-.5stem=u;
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+penpos1(stem,30); vpos(2)(stem,-can);
+x1r=w-2u; y1=.75h; x2l=.3w; y2r=h;
+filldraw z10r{up}..z1r..{left}z2r--z2l{right}..z1l..{down}z10l--cycle;
+penlabels(0,1,2,10,11,12,13);
+endchar;
+
+iff known sign_root:
+"Square root sign";
+beginchar(sign_root, 13u#,par_height#,desc_depth#);
+numeric theta;
+hpos(1)(stem,-can);
+x1r=w-u; y1l=h; z3l=(.5w,-d);
+theta:=90+angle(z1r-z3l);
+penpos3(stem/sind(theta),90);
+x4l=u; y2r=.5cap_height; x2r=4u; z4l=z2r+whatever*dir(angle(z3r-z2r)+90);
+z4r=z4l+stem*dir(angle(z2r-z4l)-90);
+z2l=z4r+whatever*(z2r-z4l)=z3l+whatever*(z2r-z3r);
+filldraw z1l--z3r--z3l--z1r--cycle;
+filldraw z4l--z2r--z3r--z3l--z2l--z4r--cycle;
+penlabels(1,2,3,4,5);
+endchar;
+
+iff known sign_in_set:
+"In set sign";
+beginchar(sign_in_set, 8u#,v_center(.75cap_height#));
+hpos(2)(stem,0); vpos(3)(stem,can); penpos4(stem,90); vpos(5)(stem,0); vpos(6)(stem,-can);
+x2l=u; y1=y6l=-d; z2r=z4; y3r=h; x3r=x6l=w-u; y4=y5=.5(h-d); x5r=x3l;
+filldraw z2l{up}...{right}z3r--z3l{left}..{down}z4r--z5r--z5l--z4l{down}..{right}z6r--z6l{left}...cycle;
+penlabels(2,3,4,5,6);
+endchar;
+
+iff known sign_empty_set:
+"Empty set";
+beginchar(sign_empty_set, fig_width#,cap_height#,0);
+penpos10(stem,0); penpos11(stem,90); penpos12(stem,180); penpos13(stem,-90);
+.5[z10,z12]=.5[z11,z13]; y13=.5stem; y11=h-.5stem; x10+.5stem=w-u; y10=y12; x11=x13; x12-.5stem=u;
+filldraw z10r{up}..{left}z11r..{down}z12r..{right}z13r..{up}z10r--z10l{down}..{left}z13l..{up}z12l..{right}z11l..{down}z10l--cycle;
+hpos(1)(cap_stem,can); hpos(2)(cap_stem,can);
+x1l=u; x2r=w-u; y1l=0; y2r=h;
+filldraw z1l--z2l--z2r--z1r--cycle;
+endchar;
+
+end.
+
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/accents.mf b/Master/texmf-dist/fonts/source/public/tengwar/accents.mf
new file mode 100644
index 00000000000..b93d38add4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/accents.mf
@@ -0,0 +1,223 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)accents.mf 1.1 10/1/86
+
+def centerpt=
+ (w-((w-leadgap)/2), xht+3.2thin)
+enddef;
+
+beginchar (19, shortwidth, cap#, 0); "The acute accent (e)";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h; %z1-z0=whatever*(dir tilt);
+ rt x1 = w;
+ draw z0--z1;
+ endgroup;
+endchar;
+
+beginchar ("}", shortwidth, cap#, 0); "The double acute accent (e')";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h; %z1-z0=whatever*(dir tilt);
+ rt x1 = w;
+ draw z0--z1;
+ draw ((z0--z1) shifted (2.5*thin*right));
+ endgroup;
+endchar;
+
+
+beginchar ("_", shortwidth, cap#, 0); "The dot-above accent (i)";
+ begingroup;
+ save x,y;
+ pickup pensquare scaled thick rotated 45;
+ z0 = centerpt;
+ drawdot z0;
+ endgroup;
+endchar;
+
+beginchar (127, shortwidth, cap#, 0); "The umlaut accent (double i)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z0 = centerpt;
+ z1 = z0 + thick*left;
+ z2 = z0 + thick*right;
+ drawdot z1; drawdot z2;
+ endgroup;
+endchar;
+
+beginchar (25, shortwidth, 0, -6thin#); "The schwa accent (dot below)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z0 = centerpt;
+ x1 = x0;
+ y1 = -3thin;
+ drawdot z1;
+ endgroup;
+endchar;
+
+beginchar (24, shortwidth, 0, -6thin#); "The 'y' accent (two dots below)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z0 = centerpt;
+ x1 = x0 - thick;
+ x2 = x0 + thick;
+ y1 = y2 = -3thin;
+ drawdot z1; drawdot z2;
+ endgroup;
+endchar;
+
+beginchar ("^", shortwidth, cap#, 0); "The circumflex (3-dot 'a')";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+
+ agap := w/6;
+ alength := 1.5*thick;
+
+ z0 = centerpt;
+
+ z1 = z0 + agap*left;
+ z2=z1+alength*(dir (tilt+90));
+
+ z3 = z0 + agap*up;
+ z4 = z3 + alength*up;
+
+ z5 = z0 + agap*right;
+ z6 = z5 + alength*(dir tilt);
+
+ draw z1--z2; draw z3--z4; draw z5--z6;
+ endgroup;
+endchar;
+
+beginchar (20, shortwidth, cap#, 0); "The right-loop accent (o)";
+ begingroup;
+ save x,y, rightcurl;
+ path rightcurl;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h; x1 = .7[x0, w];
+ rt x2=w; y2 = .7[y0, h];
+ x3 = .8[x0,w]; y1-y2 = y2-y3;
+ rightcurl = (z0..tension 2.0..z1{right}..z2..z3);
+ draw rightcurl;
+ endgroup;
+endchar;
+
+beginchar (22, shortwidth, cap#, 0); "The double right-loop accent (o')";
+ begingroup;
+ save x,y, rightcurl;
+ path rightcurl;
+ pickup elvishpen;
+ z0 = centerpt;
+ top y1=h; x1 = .7[x0, w];
+ rt x2=w; y2 = .7[y0, h];
+ x3 = .8[x0,w]; y1-y2 = y2-y3;
+ rightcurl = (z0..tension 2.0..z1{right}..z2..z3);
+ draw rightcurl;
+ draw (rightcurl shifted (3*thin,0));
+ endgroup;
+endchar;
+
+beginchar (21, shortwidth, cap#, 0); "The left-loop accent (u)";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ z0 = centerpt;
+ lft x1 = 1/3[leadgap, x0]; top y1 = 3/4[y0,h];
+ top y2 = h; x2 = x0;
+ y3 = y1; x3-x0 = x0-x1;
+ draw z1..z2{right}..z0{down};
+ endgroup;
+endchar;
+beginchar (23, shortwidth, cap#, 0); "The left-loop accent (u)";
+ begingroup;
+ save x,y, leftcurl;
+ path leftcurl;
+ pickup elvishpen;
+ z0 = centerpt;
+ lft x1 = 1/3[leadgap, x0]; top y1 = 3/4[y0,h];
+ top y2 = h; x2 = x0;
+ y3 = y1; x3-x0 = x0-x1;
+ leftcurl = (z1..z2{right}..z0{down});
+ draw leftcurl;
+ draw leftcurl shifted ((x1-x0)*right);
+ endgroup;
+endchar;
+
+beginchar (28, .7shortwidth, 0, .8dep#); "S-hook";
+ begingroup;
+ save x, y;
+ pickup elvishpen rotated 90;
+ x0 = leadgap; y0=0;
+ rt x1=w; y1=.7[y0,-d];
+ x2=.5[x0,x1]; y2=-d;
+ x3=x0+thin; y3=y1;
+ draw z0..tension 2.0..z1{down}..z2..z3{up};
+ endgroup;
+endchar;
+
+beginchar (30, shortwidth, .5[xht#,cap#], 0); "Beleriandic W";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ x0=w-((w-leadgap)/2); y0=h;
+ lft x2=leadgap/2; top y1=y0+thick; z1=z2+whatever*(dir tilt);
+ y2=y3=y0;
+ rt x3=w-leadgap/2;
+ bot y4=y3-thick; z4=z3-whatever*(dir tilt);
+ draw z1.. z2..z0{right}.. z3..z4;
+ endgroup;
+oldendchar;
+
+
+beginchar (8, shortwidth, 0, .4xht#); "Short bottom bar";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ lft x0 = leadgap; rt x1 = w;
+ y0=y1=-d;
+ draw z0--z1;
+ endgroup;
+endchar;
+
+beginchar (9, 1em#, 0, .4xht#); "Long bottom bar";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ lft x0 = leadgap; rt x1 = w;
+ y0=y1=-d;
+ draw z0--z1;
+ endgroup;
+endchar;
+
+beginchar (10, shortwidth, .4[xht#,cap#], 0); "Short top bar";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ lft x0 = leadgap; rt x1 = w;
+ y0=y1=h;
+ draw z0--z1;
+ endgroup;
+oldendchar;
+beginchar (11, 1em#, .4[xht#,cap#], 0); "Long top bar";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ lft x0 = leadgap; rt x1 = w;
+ y0=y1=h;
+ draw z0--z1;
+ endgroup;
+oldendchar;
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/additionals.mf b/Master/texmf-dist/fonts/source/public/tengwar/additionals.mf
new file mode 100644
index 00000000000..29e1b313d17
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/additionals.mf
@@ -0,0 +1,203 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)additionals.mf 1.1 10/1/86
+
+def commonr=
+ pickup elvishpen;
+ save x,y,sweep;
+ path sweep;
+ lft x0 = leadgap; top y0 = h;
+ lft x1 = 0; z0-z1 = whatever*(dir tilt);
+ x2 = .75w; top y2=h;
+ rt x3 = w; y3 = .5h;
+ lft x4 = leadgap; y4 = -.65d;
+ x5 = .5w; y5 = -d;
+ x6 = .85w; z6-z5 = whatever*(dir tilt);
+ sweep = (z2..z3{down}..z4{down}..z5{right}..z6);
+ z7 = sweep intersectionpoint
+ ((-infinity,0)--(infinity,0));
+ draw sweep;
+ draw z1--z0..z7;
+enddef;
+
+beginchar("r", shortwidth, xht#, dep#); "The letter r (romen)";
+ begingroup;
+ commonr;
+ endgroup;
+endchar;
+beginchar(18, shortwidth, xht#, dep#); "The ligature rh (arda)";
+ begingroup;
+ commonr;
+ z8 = point .5 of (z0..z7);
+ x9 = x1;
+ z8-z9 = whatever*(dir tilt);
+ x10 = x0; y10=y9;
+ draw z8--z9..tension 3.0..z10{dir tilt};
+ endgroup;
+endchar;
+
+def commonl=
+ save x,y;
+ pickup elvishpen;
+ path tilde;
+
+ lft x1=leadgap;top y1=h;
+ rt x4 = w; y4=h;
+ y2-y1 = y4-y3 = 3(y4-y1);
+ z2-z1=z4-z3=whatever*(dir tilt);
+ tilde = ( z1..controls z2 and z3..z4); % straight from Page 152 of MFbook
+ z5 = point .6 of tilde;
+ lft x6 = leadgap+1/20em; y6 = -.25d;
+ x7 = .5[leadgap, w]; bot y7=-d;
+ rt x8 = w-leadgap; y8 = 0;
+ y9=.25h; z9-z8=whatever*(dir (tilt+90));
+ draw tilde;
+ z10 = point .6 of (z5..z6{down});
+enddef;
+beginchar("l", .8em#, xht#, dep#); "The letter l (lambe)";
+ begingroup;
+ commonl;
+ draw z5..z6{down}..z7{right}..z8..z9;
+ endgroup;
+endchar;
+
+beginchar("L", .8em#, xht#, dep#); "The ligature ld (alda)";
+ begingroup;
+ commonl;
+ draw z5..tension 1.5..z10..z9..z8..z7..z6;
+ endgroup;
+endchar;
+
+def commonsz=
+ pickup elvishpen;
+ save x,y,spath;
+ path spath,zspath,zpath;
+ x0 =.9w; top y0=height;
+ x0-x1 = .08w; z0-z1=whatever*(dir(tilt-10));
+ y3=xht/2; lft x3=leadgap;
+ x4 = w/2+leadgap; bot y4=0;
+ rt x5 = w; y5 = xht/2; %z5-z4 = whatever*(dir tilt);
+ z6-z5=whatever*(dir (tilt+90));
+ x6=x5-.3w;
+ spath=(z0..z1..tension 2.2..z3{down}..z4{right}..z5{up}..z6{dir(tilt+90)});
+ zspath=(z0..z1..tension 2.2..z3{down}..z4{right}..z5);
+ x7=x3; y7= -.6d;
+ x8=x4; bot y8=-d;
+ x9=x5; y9= -.6d;
+ z10-z9= z6-z5;
+ zpath=(z4..tension 2.2..z7{down}..z8{right}..z9{up}..z10{dir(tilt+90)});
+enddef;
+beginchar("s", shortwidth, cap#, 0); "The letter s (silme)";
+ begingroup;
+ save height;
+ height=h;
+ commonsz;
+ draw spath;
+ endgroup;
+endchar;
+
+beginchar(3, shortwidth, xht#, dep#); "The letter s reversed (silme nuquerna)";
+ begingroup;
+ save height;
+ height=cap;
+ commonsz;
+ draw (spath rotatedabout ( (.5[leadgap,w],xht/2), 180));
+ endgroup;
+endchar;
+
+beginchar ("z", shortwidth, cap#, dep#); "The letter z (aze)";
+ begingroup;
+ save height; height=h;
+ commonsz;
+ draw zspath;
+ draw zpath;
+ endgroup;
+endchar;
+
+beginchar (26, shortwidth, cap#, dep#); "The letter z reversed (aze nuquerna)";
+
+ begingroup;
+ save height; height=cap;
+ commonsz;
+ draw (zspath rotatedabout ( (.5[leadgap,w],0), 180));
+ draw (zpath rotatedabout ( (.5[leadgap,w],0), 180));
+ endgroup;
+endchar;
+
+beginchar("e", shortwidth, xht#, 0); "The letter e (yanta)";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ top y0 = h; x0=.5[0, w];
+ lft x1 = 0; y1=0;
+ y2=0; rt x2=w;
+ y3=y0; x3=x0-.7thick;
+ z4-z1 = whatever*(z0-z2);
+ x1-x4=.2thin;
+ z6-z2 = whatever*(z0-z1);
+ x6=w;
+ draw z3..z0--z2..z6;
+ draw z4..z1--z0;
+ endgroup;
+endchar;
+
+beginchar("h", shortwidth, cap#, 0); "The letter h (hyarmen)";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ top y0 = h; x0=leadgap;
+ lft x1 = leadgap+.3thick; y1=0;
+ y2=0; rt x2=w;
+ y3=y0; x3=x0-.7thick;
+ z4-z1 = whatever*(z0-z2);
+ x1-x4=.2thin;
+ z5 = point .5 of (z0--z2);
+ z6-z2 = whatever*(z5-z1);
+ x6=w;
+ draw z3..z0--z2..z6;
+ draw z4..z1--z5;
+ endgroup;
+%
+% This character requires a bit more height than the others so that
+% accents get raised enough.
+%
+ charht := .3[xht#,cap#];
+oldendchar;
+
+beginchar ("u", shortwidth, xht#, 0); "The letter u (ure)";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ lft x0 = leadgap;
+ top y1 = h;
+ rt x2 = w;
+ bot y3 = 0;
+ y0 = .65h; x1 = leadgap+.35w;
+ y2 = .35h; x3 = leadgap+.65w;
+ draw z0..z1..z2..z3..cycle;
+ endgroup;
+endchar;
+
+
+beginchar (15, shortwidth+thick#, cap#,0); "The ligature hw (hwesta sindarinwa)";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ nutelco(w-thick, longstem, stemdepth)
+ z7=bowpoint;
+ bot y8 = 0; x8=1/2[x7,leadgap];
+ lft x9 = leadgap; y9=1/2xht;
+ top y10 = xht; x10=x8;
+ draw z7{down}..z8{left}..z9{up}..z10{right}..cycle;
+ rt x11 = w-thick; y11 = 0;
+ z12= (w, 0);
+ draw z11--z12;
+ endgroup;
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/calmatema.mf b/Master/texmf-dist/fonts/source/public/tengwar/calmatema.mf
new file mode 100644
index 00000000000..22c7648a88a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/calmatema.mf
@@ -0,0 +1,49 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)calmatema.mf 1.1 10/1/86
+
+
+beginchar("C", shortwidth,xht#,dep#); "The ligature CH (calma)";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint, 0, true);
+endchar;
+
+beginchar("j", 1em#,xht#,dep#); "The letter j (anga)";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint,w-bowsize*em+leadgap, true);
+ nuluva (bowpoint, leadgap, true);
+endchar;
+
+beginchar("S", shortwidth,cap#,0); "The ligature SH (harma)";
+ pickup elvishpen;
+ nutelco(w,longstem, stemdepth);
+ nuluva (bowpoint, leadgap, true);
+endchar;
+
+beginchar("Z", 1em#,cap#,0); "The ligature ZH (anca)";
+ pickup elvishpen;
+ nutelco(w,longstem, stemdepth);
+ nuluva (bowpoint,w-bowsize*em+leadgap, true);
+ nuluva (bowpoint, leadgap, true);
+endchar;
+
+beginchar("O", shortwidth,xht#,0); "The letter o (anna)";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint, leadgap, true);
+endchar;
+
+beginchar("Y", 1em#,xht#,0); "The ligature ny (ngoldo)";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint,w-bowsize*em+leadgap, true);
+ nuluva (bowpoint, leadgap, true);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/carriers.mf b/Master/texmf-dist/fonts/source/public/tengwar/carriers.mf
new file mode 100644
index 00000000000..cc0b6b30204
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/carriers.mf
@@ -0,0 +1,43 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)carriers.mf 1.1 10/1/86
+
+def commoncarrier=
+ pickup elvishpen;
+ x0=x1-thick; top y0=h;
+ x1=1/2[leadgap,w]; y1=y0;
+ x2=x1; y2=-d/2;
+ x3=x0; y3=-d;
+ draw z0--z1{down}..z2{down}..z3;
+enddef;
+
+beginchar ("i",3*leadgap#,xht#,.2dep#); "Short carrier";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ endgroup;
+endchar;
+
+beginchar (16,3*leadgap#,xht#,dep#); "Long carrier";
+ begingroup;
+ save x,y;
+ commoncarrier;
+ endgroup;
+endchar;
+
+beginchar (17,3*leadgap#,cap#,0); "Carrier Halla";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ x0=x1-thick/3; top y0=h;
+ x1=1/2[leadgap,w]; y1=y0;
+ x2=x1; y2=-d;
+ draw z0--z1{down}..z2;
+ endgroup;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/fullvowels.mf b/Master/texmf-dist/fonts/source/public/tengwar/fullvowels.mf
new file mode 100644
index 00000000000..d3db6dcf7c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/fullvowels.mf
@@ -0,0 +1,42 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)fullvowels.mf 1.1 10/1/86
+
+beginchar ("a",shortwidth, xht#, 0); "The letter a (modus beleriandi)";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ top y1= h; x1 = .75[leadgap, w];
+ lft x2= leadgap; y2= .4h;
+ bot y3= 0; x3= .5[leadgap, w];
+ y4= .2h; rt x4=w;
+ draw z1..z2{down}..z3{right}..z4;
+ endgroup;
+endchar;
+
+beginchar ("y", shortwidth, xht#, 1/2dep#); "The letter y (modus beleriandi)";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ x1=leadgap; y1=.5h;
+ x2 = 2/3[x1,w]; top y2=h;
+ rt x3=w; y3=0;
+ lft x4=leadgap; y4=-d;
+ draw z1..z2{right}..z3..z4;
+ endgroup;
+endchar;
+
+
+beginchar("o", shortwidth,xht#,0); "The letter o (anna ar taith)";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint, leadgap, true);
+ draw barpoint..barpoint+3thin*right;
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/ligtable.mf b/Master/texmf-dist/fonts/source/public/tengwar/ligtable.mf
new file mode 100644
index 00000000000..dc258c00d0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/ligtable.mf
@@ -0,0 +1,17 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)ligtable.mf 1.1 10/1/86
+
+ligtable "t": "h" =: "T";
+ligtable "d": "h" =: "D";
+ligtable "c": "h" =: "C";
+ligtable "s": "h" =: "S";
+ligtable "n": "g" =: "N";
+ligtable "h": "w" =: oct"027";
+
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/numerals.mf b/Master/texmf-dist/fonts/source/public/tengwar/numerals.mf
new file mode 100644
index 00000000000..fbd4992b2ee
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/numerals.mf
@@ -0,0 +1,197 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)numerals.mf 1.1 10/1/86
+
+def firstbow(expr start,finish,looped) =
+ begingroup;
+ save x,y,t;
+ x0 = start; top y0=xht;
+ x1 = x0; bot y1=0;
+ x2=finish; bot y2=0;
+ if looped:
+ t=1.0;
+ else:
+ t=1.0;
+ fi;
+ draw z0{down}..z1..tension t..z2;
+ bowpoint:=z1;
+ penlabels (0,1,2);
+ endgroup;
+enddef;
+
+def secondstem(expr start, finishpoint) =
+ begingroup;
+ save x,y, stem;
+ path stem;
+ z0=(start, h);
+ z1 = z0 + serifthick*left;
+ z2 = z0 + serifthick*right;
+ z3= (start, 0);
+ x4 = 1/2[x3, (xpart finishpoint)]; y4 = -d;
+ draw z1--z0;%--z2;
+ stem = ( z0..z3{down}..z4..tension 1.2..finishpoint);
+ draw stem;
+ top y5 = xht;
+ barpoint := stem intersectionpoint
+ ((-infinity,y5)--(infinity, y5));
+ penlabels (0,1,2,3,4);
+
+ endgroup;
+enddef;
+
+
+def thirdstem(expr start)=
+ begingroup;
+ save x,y,stem;
+ path stem;
+ z0=(start, h);
+ z1 = z0 + serifthick*left;
+ z2 = z0 + serifthick*right;
+ z3= (start, 0);
+ x4 = .5[0,start]; y4 = -d;
+ x5=0; y5 = 1/2 (-d);
+ draw z1--z0;%--z2;
+ stem = ( z0..z3{down}..z4..z5);
+ draw stem;
+ bowpoint := stem intersectionpoint
+ ((-infinity,bowstart)--(infinity, bowstart));
+ barpoint := stem intersectionpoint
+ ((-infinity,0)--(infinity, 0));
+ penlabels (0,1,2,3,4,5);
+ endgroup;
+enddef;
+
+
+beginchar ("0", shortwidth, xht#, 1/2dep#); "The numeral 0";
+ begingroup;
+ save x,y;
+ pickup elvishpen;
+ lft x1=leadgap; y1=.5h;
+ x2 = 1/2[x1,w]; top y2=h;
+ rt x3=w; y3=0;
+ x4=leadgap; y4=-d;
+ draw z1..z2{right}..z3{down}..z4;
+ endgroup;
+endchar;
+
+beginchar ("1", shortwidth, xht#, 0); "The numeral 1";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+
+ firstbow(leadgap, w-thick, true);
+ top y10=h;
+ barpoint:=(w,y10);
+ overbar;
+ endgroup;
+endchar;
+
+beginchar ("2", .75em#, xht#, 0); "The numeral 2";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+
+ firstbow (1/2[leadgap,w], w-thick, true);
+ firstbow (leadgap, xpart bowpoint, false);
+ top y10=h;
+ barpoint:=(w,y10);
+ overbar;
+ endgroup;
+endchar;
+
+beginchar ("3", 1em#, xht#, 0); "The numeral 3";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+
+ firstbow (2/3[leadgap,w], w-thick, true);
+ firstbow (1/3[leadgap,w], xpart bowpoint, false);
+ firstbow (leadgap, xpart bowpoint, false);
+ top y10=h;
+ barpoint:=(w,y10);
+ overbar;
+ endgroup;
+endchar;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+beginchar ("4", shortwidth, 3/4[xht#,cap#], 3/4xht#); "The numeral 4";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+
+ rt x0 = w; y0 = -d/3;
+ secondstem (leadgap, z0);
+ endgroup;
+endchar;
+
+beginchar ("5", .75em#, 3/4[xht#, cap#], 3/4xht#); "The numeral 5";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+
+ firstbow (1/2[leadgap,w], w-thick, true);
+ secondstem (leadgap, bowpoint);
+ top y10=xht;
+ draw barpoint--(w,y10);
+ endgroup;
+endchar;
+
+beginchar ("6", 1em#, 3/4[xht#, cap#], 3/4xht#); "The numeral 6";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+
+ firstbow (2/3[leadgap,w], w-thick, true);
+ firstbow (1/3[leadgap,w], xpart bowpoint, false);
+ secondstem (leadgap, bowpoint);
+ top y10=xht;
+ draw barpoint--(w,y10);
+ endgroup;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+thirdwidth := 2.5*leadgap;
+
+beginchar ("7", 3*leadgap#, 3/4[xht#, cap#], 3/4xht#); "The numeral 7";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+
+ thirdstem (thirdwidth);
+ endgroup;
+endchar;
+
+
+beginchar ("8", .75em#, 3/4[xht#, cap#], 3/4xht#); "The numeral 8";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+
+ thirdstem (thirdwidth);
+ luva (bowpoint, w, false);
+ underbar;
+ endgroup;
+endchar;
+
+
+beginchar ("9", 1em#, 3/4[xht#, cap#], 3/4xht#); "The numeral 9";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+
+ thirdstem (thirdwidth);
+ luva (bowpoint, 1/2[thirdwidth,w], false);
+ luva (bowpoint, w, false);
+ underbar;
+ endgroup;
+endchar;
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/parmatema.mf b/Master/texmf-dist/fonts/source/public/tengwar/parmatema.mf
new file mode 100644
index 00000000000..03b2819faa7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/parmatema.mf
@@ -0,0 +1,68 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)parmatema.mf 1.1 10/1/86
+
+beginchar("p", shortwidth,xht#,dep#); "The letter p (parma)";
+ pickup elvishpen;
+ telco(leadgap,shortstem, stemdepth);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+beginchar("b", 1em#,xht#,dep#); "The letter b (umbar)";
+ pickup elvishpen;
+ telco(leadgap,shortstem, stemdepth);
+ luva (bowpoint, bowsize*em, false);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+
+beginchar("f", shortwidth, cap#, 0); "the letter f (formen)";
+ pickup elvishpen;
+ telco(leadgap, longstem, stemdepth);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+beginchar("v", 1em#, cap#, 0); "the letter v (ampa)";
+ pickup elvishpen;
+ telco(leadgap, longstem, stemdepth);
+ luva (bowpoint, bowsize*em, false);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+
+beginchar (14, 1em#, cap#, dep#); "the word 'OF'";
+ pickup elvishpen;
+ telco(leadgap, longstem, stemdepth);
+ luva (bowpoint, bowsize*em, false);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+%
+% Should also be a related "of the" glyph
+%
+
+beginchar ("w", shortwidth, xht#, 0); "the letter w (vala)";
+ pickup elvishpen;
+ telco (leadgap, shortstem, stemdepth);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
+
+beginchar ("m", 1em#, xht#, 0); "the letter m (malta)";
+ pickup elvishpen;
+ telco(leadgap, shortstem, stemdepth);
+ luva (bowpoint, bowsize*em, false);
+ luva (bowpoint, w, false);
+ underbar;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/punctuation.mf b/Master/texmf-dist/fonts/source/public/tengwar/punctuation.mf
new file mode 100644
index 00000000000..b63c5a4e910
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/punctuation.mf
@@ -0,0 +1,86 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)punctuation.mf 1.1 10/1/86
+
+beginchar (",", 3*leadgap#, xht#, 0); "The punctuation comma (one dot)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z1 = (1/2w, h/2);
+ drawdot z1;
+ endgroup;
+endchar;
+
+beginchar (";", 2*leadgap#, xht#, 0); "The punctuation semicolon (two dots)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z1 = (w/2, h-2thin);
+ z2 = (w/2, 2thin);
+ drawdot z1;
+ drawdot z2;
+ endgroup;
+endchar;
+
+beginchar (".", 3*leadgap#, xht#, 0); "The punctuation period (four dots)";
+ begingroup;
+ save x, y;
+ pickup pensquare scaled thick rotated 45;
+ z1 = (w/3, h-2thin);
+ z2 = (w/3, 2thin);
+ z3 = (w, h-2thin);
+ z4 = (w, 2thin);
+ drawdot z1;
+ drawdot z2;
+ drawdot z3;
+ drawdot z4;
+ endgroup;
+endchar;
+
+beginchar ("!", .7shortwidth, cap#, 0); "The exclamation point";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ rt x1 = w; top y1=h;
+ y2 = y3 = h/2;
+ z1-z2 = z3-z4 = whatever*(dir 40);
+ x4 = leadgap; %bot y4=0;
+ draw z1..controls z2 and z3..z4;
+ endgroup;
+endchar;
+
+beginchar ("?", .7shortwidth, cap#, 0); "The question mark";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ telco (leadgap, longstem, stemdepth);
+ z1 = bowpoint;
+ top y2 = xht; x2 = .6[leadgap, w];
+ rt x3 = w; y3 = .7xht;
+ lft x4 = leadgap; bot y4 = 0;
+ draw z1..tension 2.0..z2..z3..z4;
+ z6-z5 = z2-z1;
+ top y6 = h; x6 = x2;
+ z7-z6 = z3-z2;
+ draw z5..tension 2.0..z6..z7..tension 1.5..z1;
+ endgroup;
+endchar;
+
+beginchar ("-", shortwidth, xht#, 0); "The dash (tilde)";
+ begingroup;
+ save x, y;
+ pickup elvishpen;
+ x1 = leadgap;
+ x4 = w;
+ y1 = .4h; y4 = .6h;
+ z2-z1 = z4-z3 = whatever*(dir tilt);
+ y2-y1 = 3 (y4-y1);
+ draw z1..controls z2 and z3..z4;
+ endgroup;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/quessetema.mf b/Master/texmf-dist/fonts/source/public/tengwar/quessetema.mf
new file mode 100644
index 00000000000..ee6c40d3be1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/quessetema.mf
@@ -0,0 +1,57 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)quessetema.mf 1.1 10/1/86
+
+beginchar("k", shortwidth,xht#,dep#); "The letter k (quesse)";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint, 0, false);
+ overbar;
+endchar;
+
+beginchar("g", 1em#,xht#,dep#); "The letter g (ungwe)";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint,w-bowsize*em+leadgap, false);
+ nuluva (bowpoint, leadgap, false);
+ overbar;
+endchar;
+
+beginchar("K", shortwidth,cap#,0); "The ligature KH (hwesta)";
+ pickup elvishpen;
+ nutelco(w,longstem, stemdepth);
+ nuluva (bowpoint, leadgap, false);
+ overbar;
+endchar;
+
+beginchar("G", 1em#,cap#,0); "The ligature GH (unque)";
+ pickup elvishpen;
+ nutelco(w,longstem, stemdepth);
+ nuluva (bowpoint,w-bowsize*em+leadgap, false);
+ nuluva (bowpoint, leadgap, false);
+ overbar;
+endchar;
+
+
+beginchar("A", shortwidth,xht#,0); "The letter A (Vilya)";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint, leadgap, false);
+ overbar;
+endchar;
+
+
+beginchar("N", 1em#,xht#,0); "The ligature NG (Ngwalme)";
+ pickup elvishpen;
+ nutelco(w,shortstem, stemdepth);
+ nuluva (bowpoint,w-bowsize*em+leadgap, false);
+ nuluva (bowpoint, leadgap, false);
+ overbar;
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/tengwar.mf b/Master/texmf-dist/fonts/source/public/tengwar/tengwar.mf
new file mode 100644
index 00000000000..9b0f7ae7574
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/tengwar.mf
@@ -0,0 +1,58 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)tengwar.mf 1.1 10/1/86
+
+mode_setup;
+em#:=10pt#; cap#=.8em#; dep#=.4em#; xht#=.4em#;
+shortwidth := .6em#;
+
+thick#:=9/80em#; thin#:=3/80em#;
+leadgap# := .1em#;
+bowstart#= .66xht#;
+serifthick# := 1.1thick#;
+
+tilt:=50; seriftilt := 110; botseriftilt:=80;
+shortstem := .7;
+longstem := .85;
+stemdepth := .9;
+bowsize := .58;
+
+define_pixels(em,cap,dep,xht,bowstart);
+define_pixels(thin,thick,serifthick,leadgap);
+
+pen elvishpen; elvishpen = pencircle xscaled thick yscaled thin rotated tilt;
+
+%
+% Because even "tall" characters want to be accented in the same place,
+% but because we want to use "h" in "beginchar" definitions
+% in a typical plain-MF way,
+% we force all characters to have a character height of xht#. This is
+% something a kludge, and makes tall characters stick into preceding lines
+% when the baselines are not sufficiently separated. But that iss how the
+% title-page inscription looks anyway.
+%
+let oldendchar = endchar;
+def endchar=
+ charht := xht#;
+ oldendchar;
+enddef;
+
+input tiw;
+
+font_normal_space .45em#;
+font_normal_stretch .22em#;
+font_normal_shrink .15em#;
+font_x_height xht#;
+font_quad 1em#;
+font_extra_space 1/6em#;
+designsize:=1em#;
+
+input ligtable;
+
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/tengwarweird.mf b/Master/texmf-dist/fonts/source/public/tengwar/tengwarweird.mf
new file mode 100644
index 00000000000..42f439852a1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/tengwarweird.mf
@@ -0,0 +1,62 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)tengwar.mf 1.1 10/1/86
+
+mode_setup;
+slant := sind 10/cosd 10;
+currenttransform := identity slanted slant;
+em#:=10pt#; cap#=.7em#; dep#=.4em#; xht#=.4em#;
+shortwidth := .4em#;
+
+slant:=sind 12/cosd 12;
+thick#:=2/80em#; thin#:=1/150em#;
+leadgap# := .08em#;
+bowstart#= .9xht#;
+serifthick# := .01pt#;
+
+tilt:=45; seriftilt := 45; botseriftilt:=45;
+shortstem := .6;
+longstem := .95;
+stemdepth := .9;
+bowsize := .5;
+
+define_pixels(em,cap,dep,xht,bowstart);
+define_pixels(thin,thick,serifthick,leadgap);
+
+pen elvishpen; elvishpen = pensquare xscaled thick yscaled thin rotated tilt;
+
+%
+% Because even "tall" characters want to be accented in the same place,
+% but because we want to use "h" in "beginchar" definitions
+% in a typical plain-MF way,
+% we force all characters to have a character height of xht#. This is
+% something a kludge, and makes tall characters stick into preceding lines
+% when the baselines are not sufficiently separated. But that iss how the
+% title-page inscription looks anyway.
+%
+let oldendchar = endchar;
+def endchar=
+ charht := xht#;
+ oldendchar;
+enddef;
+
+input tiw;
+
+font_normal_space .45em#;
+font_normal_stretch .22em#;
+font_normal_shrink .15em#;
+font_slant slant;
+font_x_height xht#;
+font_quad 1em#;
+font_extra_space 1/6em#;
+designsize:=1em#;
+
+input ligtable;
+
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/tincotema.mf b/Master/texmf-dist/fonts/source/public/tengwar/tincotema.mf
new file mode 100644
index 00000000000..2692b53e540
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/tincotema.mf
@@ -0,0 +1,55 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)tincotema.mf 1.1 10/1/86
+
+beginchar("t", shortwidth,xht#,dep#); "The letter t (tinco)";
+ pickup elvishpen;
+ telco(leadgap,shortstem, stemdepth);
+ luva (bowpoint, w, true);
+endchar;
+
+beginchar("d", 1em#,xht#,dep#); "The letter d (ando)";
+ pickup elvishpen;
+ telco(leadgap,shortstem, stemdepth);
+ luva (bowpoint, bowsize*em, true);
+ luva (bowpoint, w, true);
+endchar;
+
+beginchar("T", shortwidth, cap#, 0); "the ligature th (thule)";
+ pickup elvishpen;
+ telco(leadgap, longstem, stemdepth);
+ luva (bowpoint, w, true);
+endchar;
+
+beginchar("D", 1em#, cap#, 0); "the ligature dh (anto)";
+ pickup elvishpen;
+ telco(leadgap, longstem, stemdepth);
+ luva (bowpoint, bowsize*em, true);
+ luva (bowpoint, w, true);
+endchar;
+
+beginchar (004, 1em#, cap#, dep#); "the word 'THE'";
+ pickup elvishpen;
+ telco(leadgap, longstem, stemdepth);
+ luva (bowpoint, bowsize*em, true);
+ luva (bowpoint, w, true);
+endchar;
+
+beginchar ("R", shortwidth, xht#, 0); "the weak letter R (ore)";
+ pickup elvishpen;
+ telco (leadgap, shortstem, stemdepth);
+ luva (bowpoint, w, true);
+endchar;
+
+beginchar ("n", 1em#, xht#, 0); "the letter n (numen)";
+ pickup elvishpen;
+ telco(leadgap, shortstem, stemdepth);
+ luva (bowpoint, bowsize*em, true);
+ luva (bowpoint, w, true);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/tengwar/tiw.mf b/Master/texmf-dist/fonts/source/public/tengwar/tiw.mf
new file mode 100644
index 00000000000..c71bf61bc0f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tengwar/tiw.mf
@@ -0,0 +1,28 @@
+% Copyright 1988 Michael Urban
+% Everyone is granted permission to copy, modify and redistribute
+% this file, provided that a currently-dated copy of this
+% copyright notice is included in the copy.
+% License is granted to produce fonts based on the information
+% in this file, provided that such fonts are redistributed
+% without charge to any third party.
+
+% SCCS ID @(#)tiw.mf 1.1 10/1/86
+
+pair bowpoint, barpoint, hookpoint;
+
+input telcor;
+input luvar;
+
+input bars;
+
+input tincotema; input parmatema;
+input calmatema;
+input quessetema;
+
+input additionals;
+input fullvowels;
+input carriers;
+input accents;
+
+input punctuation;
+input numerals;
diff --git a/Master/texmf-dist/fonts/source/public/timing/timing.mf b/Master/texmf-dist/fonts/source/public/timing/timing.mf
new file mode 100644
index 00000000000..2aef4c82403
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/timing/timing.mf
@@ -0,0 +1,492 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% TIMING.MF
+%
+% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler
+% Schaltungen.
+% Hauptdatei fr alle Zeichens„tze
+%
+% Ludwig May, Dezember 1991
+% Jens Leilich, Žnderungen im Mai 1994
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+define_pixels(p_size,p3_size);
+%define_good_x_pixels(c_width);
+%define_good_y_pixels(c_height);
+define_whole_pixels(c_width,c_height,p2_size);
+if not odd c_width: c_width:=c_width-1; fi
+
+font_x_height c_height#;
+font_quad c_width#;
+
+pen pinsel;
+pinsel=(pencircle xscaled (0.8*p_size) yscaled p_size);
+
+
+beginchar("H",c_width#,c_height#,bt#); "High Level";
+
+pickup pinsel;
+draw (-c_width,c_height)--(0,c_height);
+showit;
+endchar;
+
+
+beginchar("L",c_width#,c_height#,bt#); "Low Level";
+
+pickup pinsel;
+draw (-c_width,0)--(0,0);
+showit;
+endchar;
+
+%1/12->xs#/12, damit Steigung von HL und LH wie UV (JL,8.1.94)
+beginchar(0,2*c_width#,c_height#,bt#); "High-Low";
+
+pickup pinsel;
+draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0);
+showit;
+endchar;
+
+beginchar(1,2*c_width#,c_height#,bt#); "Low-High";
+
+pickup pinsel;
+draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height);
+showit;
+endchar;
+
+beginchar(12,2*c_width#,c_height#,bt#); "Change Bus";
+
+pickup pinsel;
+draw (-c_width,0)--(-xs#/12*c_width,0);
+draw (-c_width,c_height)--(-xs#/12*c_width,c_height);
+draw (xs#/12*c_width,0)--(c_width,0);
+draw (xs#/12*c_width,c_height)--(c_width,c_height);
+draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height);
+draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0);
+showit;
+endchar;
+
+beginchar("V",c_width#,c_height#,bt#); "Valid Bus";
+
+pickup pinsel;
+draw (-c_width,0)--(0,0);
+draw (-c_width,c_height)--(0,c_height);
+showit;
+endchar;
+
+beginchar("Z",c_width#,c_height#,bt#); "Tristate Bus";
+
+pickup pinsel;
+draw (-c_width,c_height/2)--(0,c_height/2);
+showit;
+endchar;
+
+beginchar(2,2*c_width#,c_height#,bt#); "Tristate -> Valid Bus";
+
+pickup pinsel;
+draw (-c_width,c_height/2)--(0/12*c_width,c_height/2);
+draw (0/12*c_width,c_height/2)--(xs#/12*c_width,c_height)--(c_width,c_height);
+draw (0/12*c_width,c_height/2)--(xs#/12*c_width,0)--(c_width,0);
+showit;
+endchar;
+
+beginchar(3,2*c_width#,c_height#,bt#); "Valid -> Tristate Bus";
+
+pickup pinsel;
+draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(0/12*c_width,c_height/2);
+draw (-c_width,0)--(-xs#/12*c_width,0)--(0/12*c_width,c_height/2);
+draw (0/12*c_width,c_height/2)--(c_width,c_height/2);
+showit;
+endchar;
+
+
+beginchar("U",c_width#,c_height#,bt#); "Invalid Bus";
+
+pickup pinsel;
+draw (-c_width,0)--(0,0);
+draw (-c_width,c_height)--(0,c_height);
+
+pickup pencircle scaled p3_size;
+draw (-c_width,5/6*c_height)--(-c_width/2,c_height);
+draw (-c_width,c_height/2)--(0,5/6*c_height);
+draw (-c_width,1/6*c_height)--(0,c_height/2);
+draw (-c_width/2,0)--(0,1/6*c_height);
+showit;
+endchar;
+
+
+beginchar(4,2*c_width#,c_height#,bt#); "Tristate -> Invalid Bus";
+
+y1=s_f#*2/3*(x1+c_width)+1/2*c_height;
+x1=y1*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 1. Linie
+%y1=s_f#* 12/xs#*(x1+c_width)-(6/xs#-0.5)*c_height;% Startpunkt der 1. Linie
+y2=s_f#*2/3*(x2+c_width)+1/6*c_height;
+x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie
+%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% Startpunkt der 2. Linie
+y3=s_f#*2/3*(x3+c_width)-1/6*c_height;
+x3=y3*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 3. Linie
+%y3=s_f#*-12/xs#*(x3+c_width)+(6/xs#+0.5)*c_height;% Startpunkt der 3. Linie
+
+pickup pinsel;
+draw (-c_width,c_height/2)--(0/12*c_width,c_height/2);
+draw (0/12*c_width,c_height/2)--(xs#/12*c_width,c_height)--(c_width,c_height);
+draw (0/12*c_width,c_height/2)--(xs#/12*c_width,0)--(c_width,0);
+
+pickup pencircle scaled p3_size;
+draw z1--(1/2*c_width,c_height);
+draw z2--(c_width,5/6*c_height);
+draw z3--(c_width,c_height/2);
+draw (1/2*c_width,0)--(c_width,1/6*c_height);
+showit;
+endchar;
+
+beginchar(5,2*c_width#,c_height#,bt#); "Invalid -> Tristate Bus";
+
+y1=s_f#*2/3*(x1+c_width)+1/2*c_height ;
+x1=y1*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 1. Linie
+%y1=s_f#*-12/xs#*(x1+c_width)+(6/xs#+0.5)*c_height; % Startpunkt der 1. Linie
+y2=s_f#*2/3*(x2+c_width)+1/6*c_height ;
+x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie
+%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height; % Startpunkt der 2. Linie
+y3=s_f#*2/3*(x3+c_width)-1/6*c_height ;
+x3=y3*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 3. Linie
+%y3=s_f#* 12/xs#*(x3+c_width)-(6/xs#-0.5)*c_height; % Startpunkt der 3. Linie
+
+pickup pinsel;
+draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(0/12*c_width,c_height/2);
+draw (-c_width,0)--(-xs#/12*c_width,0)--(0/12*c_width,c_height/2);
+draw (0/12*c_width,c_height/2)--(c_width,c_height/2);
+
+pickup pencircle scaled p3_size;
+draw (-c_width,5/6*c_height)--(-c_width/2,c_height);
+draw (-c_width,c_height/2)--z1;
+draw (-c_width,1/6*c_height)--z2;
+draw (-c_width/2,0)--z3;
+showit;
+endchar;
+
+
+beginchar(6,2*c_width#,c_height#,bt#); "Valid -> Invalid Bus";
+
+y1=s_f#*2/3*(x1+c_width)+1/2*c_height;
+x1=y1*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 1. Linie
+%y1=s_f#* 12/xs#*(x1+c_width)-(6/xs#-0.5)*c_height;% 1. Linie
+y2=s_f#*2/3*(x2+c_width)+1/6*c_height;
+x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie
+%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% 2. Linie
+y3=s_f#*2/3*(x3+c_width)-1/6*c_height;
+x3=y3*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 3. Linie
+%y3=s_f#*-12/xs#*(x3+c_width)+(6/xs#+0.5)*c_height;% 3. Linie
+
+pickup pinsel;
+draw (-c_width,0)--(-xs#/12*c_width,0);
+draw (-c_width,c_height)--(-xs#/12*c_width,c_height);
+draw (xs#/12*c_width,0)--(c_width,0);
+draw (xs#/12*c_width,c_height)--(c_width,c_height);
+draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height);
+draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0);
+
+pickup pencircle scaled p3_size;
+draw z1--(1/2*c_width,c_height);
+draw z2--(c_width,5/6*c_height);
+draw z3--(c_width,1/2*c_height);
+draw (1/2*c_width,0)--(c_width,1/6*c_height);
+showit;
+endchar;
+
+beginchar(7,2*c_width#,c_height#,bt#); "Invalid -> Valid Bus";
+
+y1=s_f#*2/3*(x1+c_width)+1/2*c_height;
+x1=y1*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 1. Linie
+%y1=s_f#*-12/xs#*(x1+c_width)+(6/xs#+0.5)*c_height;% 1. Linie
+y2=s_f#*2/3*(x2+c_width)+1/6*c_height;
+x2=y2*(xs#/s_f#/-12)-(6+xs#*0.5)*c_height/s_f#/-12-c_width;% Startpunkt der 2. Linie
+%y2=s_f#*-12/xs#*(x2+c_width)+(6/xs#+0.5)*c_height;% 2. Linie
+y3=s_f#*2/3*(x3+c_width)-1/6*c_height;
+x3=y3*(xs#/s_f#/12)+(6-xs#*0.5)*c_height/s_f#/12-c_width;% Startpunkt der 3. Linie
+%y3=s_f#* 12/xs#*(x3+c_width)-(6/xs#-0.5)*c_height;% 3. Linie
+
+pickup pinsel;
+draw (-c_width,0)--(-xs#/12*c_width,0);
+draw (-c_width,c_height)--(-xs#/12*c_width,c_height);
+draw (xs#/12*c_width,0)--(c_width,0);
+draw (xs#/12*c_width,c_height)--(c_width,c_height);
+draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height);
+draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0);
+
+pickup pencircle scaled p3_size;
+draw (-c_width,5/6*c_height)--(-1/2*c_width,c_height);
+draw (-c_width,1/2*c_height)--z1;
+draw (-c_width,1/6*c_height)--z2;
+draw (-1/2*c_width,0)--z3;
+showit;
+endchar;
+
+beginchar("F",c_width#,c_height#,bt#); "Floating Line";
+
+pickup pinsel;
+draw (-c_width,0)--(0,0);
+draw (-c_width,c_height)--(0,c_height);
+showit;
+endchar;
+
+%1/12->xs#/12, damit Steigung von FL und FH wie UV (JL,8.1.94)
+beginchar(13,2*c_width#,c_height#,bt#); "Float-Low";
+
+pickup pinsel;
+draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0);
+draw (-c_width,0)--(c_width,0);
+showit;
+endchar;
+
+beginchar(14,2*c_width#,c_height#,bt#); "Float-High";
+
+pickup pinsel;
+draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height);
+draw (-c_width,c_height)--(c_width,c_height);
+showit;
+endchar;
+
+beginchar(15,2*c_width#,c_height#,bt#); "High-Float";
+
+pickup pinsel;
+draw (-c_width,c_height)--(c_width,c_height);
+draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0);
+showit;
+endchar;
+
+beginchar(16,2*c_width#,c_height#,bt#); "Low-Float";
+
+pickup pinsel;
+draw (-c_width,0)--(c_width,0);
+draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height);
+showit;
+endchar;
+
+
+beginchar("-",c_width#/2,c_height#,bt#); "...";
+
+pickup pencircle scaled p3_size;
+draw (-c_width,-1/12*c_height)--(-c_width,13/12*c_height);
+draw (-c_width/2-1,-1/12*c_height)--(-c_width/2-1,13/12*c_height);
+showit;
+endchar;
+
+beginchar("T",c_width#,1/6*c_height#,bt#); "TOP";
+
+pickup pinsel;
+draw (-c_width,1/12*c_height)--(-c_width,1/6*c_height)--(0,1/6*c_height);
+showit;
+endchar;
+
+beginchar("B",c_width#,1/6*c_height#,bt#); "BOTTOM";
+
+pickup pinsel;
+draw (-c_width,1/12*c_height)--(-c_width,0)--(0,0);
+showit;
+endchar;
+
+beginchar(8,3/2*c_width#,1/6*c_height#,bt#); "TOP-";
+
+pickup pinsel;
+draw (-c_width,1/12*c_height)--(-c_width,1/6*c_height)--(0,1/6*c_height);
+pickup pencircle scaled p3_size;
+draw (0+1,0)--(0+1,2/12*c_height);
+draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height);
+showit;
+endchar;
+
+beginchar(9,3/2*c_width#,1/6*c_height#,bt#); "BOTTOM-";
+
+pickup pinsel;
+draw (-c_width,1/12*c_height)--(-c_width,0)--(0,0);
+pickup pencircle scaled p3_size;
+draw (0+1,0)--(0+1,2/12*c_height);
+draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height);
+showit;
+endchar;
+
+beginchar(10,3/2*c_width#,1/6*c_height#,bt#); "top-";
+
+pickup pinsel;
+draw (-c_width,1/6*c_height)--(0,1/6*c_height);
+pickup pencircle scaled p3_size;
+draw (0+1,0)--(0+1,2/12*c_height);
+draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height);
+showit;
+endchar;
+
+beginchar(11,3/2*c_width#,1/6*c_height#,bt#); "bottom-";
+
+pickup pinsel;
+draw (-c_width,0)--(0,0);
+pickup pencircle scaled p3_size;
+draw (0+1,0)--(0+1,2/12*c_height);
+draw (1/2*c_width-1,0)--(1/2*c_width-1,2/12*c_height);
+showit;
+endchar;
+
+beginchar("t",c_width#,1/6*c_height#,bt#);
+
+pickup pinsel;
+draw (-c_width,1/6*c_height)--(0,1/6*c_height);
+showit;
+endchar;
+
+beginchar("b",c_width#,1/6*c_height#,bt#);
+
+pickup pinsel;
+draw (-c_width,0)--(0,0);
+showit;
+endchar;
+
+%Pfeil von 1/2 nach 7/8 der Breite vergr”žert (JL,8.1.94)
+beginchar("A",c_width#,3/12*c_height#,0); "Arrow left";
+
+pickup pencircle scaled p_size;
+draw (-1/8*c_width,1/12*c_height)--(0,1/12*c_height);
+fill (-1/8*c_width,2/12*c_height)--(-c_width,1/12*c_height)--(-1/8*c_width,0)--cycle;
+showit;
+endchar;
+
+beginchar("P",c_width#,3/12*c_height#,0); "Arrow right";
+
+pickup pencircle scaled p_size;
+draw (-c_width,1/12*c_height)--(-1/8*c_width,1/12*c_height);
+fill (-7/8*c_width,2/12*c_height)--(0,1/12*c_height)--(-7/8*c_width,0)--cycle;
+showit;
+endchar;
+
+beginchar("a",c_width#,3/12*c_height#,0); "Arrow line";
+
+pickup pencircle scaled p_size;
+draw (-c_width,1/12*c_height)--(0,1/12*c_height);
+showit;
+endchar;
+
+
+%dasselbe wie "U"
+beginchar("X",c_width#,c_height#,bt#); "Unknown";
+pickup pinsel;
+draw (-c_width,0)--(0,0);
+draw (-c_width,c_height)--(0,c_height);
+
+pickup pencircle scaled p3_size;
+draw (-c_width,5/6*c_height)--(-c_width/2,c_height);
+draw (-c_width,c_height/2)--(0,5/6*c_height);
+draw (-c_width,1/6*c_height)--(0,c_height/2);
+draw (-c_width/2,0)--(0,1/6*c_height);
+showit;
+endchar;
+
+%Leerzeichen mit Punkten, damit nachtr„glich gezeichnet werden kann
+%(JL,8.1.94)
+
+beginchar(".",c_width#,c_height#,bt#); "Leer";
+pickup pinsel;
+fill (-c_width,0)--(-c_width+p2_size,0)--
+ (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle;
+fill (-c_width,c_height)--(-c_width+p2_size,c_height)--
+ (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle;
+showit;
+endchar;
+
+beginchar("h",c_width#,c_height#,bt#); "High Level";
+pickup pinsel;
+draw (-c_width,c_height)--(0,c_height);
+fill (-c_width,0)--(-c_width+p2_size,0)--
+ (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle;
+showit;
+endchar;
+
+
+beginchar("l",c_width#,c_height#,bt#); "Low Level";
+pickup pinsel;
+draw (-c_width,0)--(0,0);
+fill (-c_width,c_height)--(-c_width+p2_size,c_height)--
+ (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle;
+showit;
+endchar;
+
+beginchar(20,2*c_width#,c_height#,bt#); "High-Low";
+pickup pinsel;
+draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0);
+fill (-c_width,0)--(-c_width+p2_size,0)--
+ (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle;
+fill (0,c_height)--(p2_size,c_height)--
+ (p2_size,c_height-p2_size)--(0,c_height-p2_size)--cycle;
+showit;
+endchar;
+
+beginchar(21,2*c_width#,c_height#,bt#); "Low-High";
+pickup pinsel;
+draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height);
+fill (0,0)--(p2_size,0)--
+ (p2_size,p2_size)--(0,p2_size)--cycle;
+fill (-c_width,c_height)--(-c_width+p2_size,c_height)--
+ (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle;
+showit;
+endchar;
+
+beginchar("f",c_width#,c_height#,bt#); "Floating Line";
+pickup pinsel;
+draw (-c_width,0)--(0,0);
+draw (-c_width,c_height)--(0,c_height);
+showit;
+endchar;
+
+beginchar(33,2*c_width#,c_height#,bt#); "Float-Low";
+pickup pinsel;
+draw (-c_width,c_height)--(-xs#/12*c_width,c_height)--(xs#/12*c_width,0);
+draw (-c_width,0)--(c_width,0);
+fill (0,c_height)--(p2_size,c_height)--
+ (p2_size,c_height-p2_size)--(0,c_height-p2_size)--cycle;
+showit;
+endchar;
+
+beginchar(34,2*c_width#,c_height#,bt#); "Float-High";
+pickup pinsel;
+draw (-c_width,0)--(-xs#/12*c_width,0)--(xs#/12*c_width,c_height);
+draw (-c_width,c_height)--(c_width,c_height);
+fill (0,0)--(p2_size,0)--
+ (p2_size,p2_size)--(0,p2_size)--cycle;
+showit;
+endchar;
+
+beginchar(35,2*c_width#,c_height#,bt#); "High-Float";
+pickup pinsel;
+draw (-c_width,c_height)--(c_width,c_height);
+draw (-xs#/12*c_width,c_height)--(xs#/12*c_width,0)--(c_width,0);
+fill (-c_width,0)--(-c_width+p2_size,0)--
+ (-c_width+p2_size,p2_size)--(-c_width,p2_size)--cycle;
+showit;
+endchar;
+
+beginchar(36,2*c_width#,c_height#,bt#); "Low-Float";
+pickup pinsel;
+draw (-c_width,0)--(c_width,0);
+draw (-xs#/12*c_width,0)--(xs#/12*c_width,c_height)--(c_width,c_height);
+fill (-c_width,c_height)--(-c_width+p2_size,c_height)--
+ (-c_width+p2_size,c_height-p2_size)--(-c_width,c_height-p2_size)--cycle;
+showit;
+endchar;
+
+
+% HX,LX,XH,XL und dasselbe mit U statt X sind eigtl. Pfusch
+% vielleicht mal Zeichen fr machen... (JL)
+ligtable "H":"L"=:0, "F"=:15, "V"=:15, "X"=:15;
+ligtable "L":"H"=:1, "F"=:16, "V"=:16, "X"=:16;
+ligtable "F":"L"=:13,"H"=:14;
+ligtable "h":"l"=:20,"f"=:35; % Version mit Punkten zum Zeichnen (JL, 4.2.94)
+ligtable "l":"h"=:21,"f"=:36;
+ligtable "f":"l"=:33,"h"=:34;
+ligtable "Z":"V"=:2, "U"=:4;
+ligtable "V":"Z"=:3, "U"=:6, "X"=:12, "L"=:13, "H"=:14;
+ligtable "U":"Z"=:5, "V"=:7, "X"=:7, "L"=:13, "H"=:14; % UX=:7 [UV] (JL, 8.1.94)
+ligtable "X":"V"=:12,"U"=:6, "L"=:13, "H"=:14; % XU=:6 [VU] (JL, 8.1.94)
+ligtable "T":"-"=:8;
+ligtable "B":"-"=:9;
+ligtable "t":"-"=:10;
+ligtable "b":"-"=:11;
+
+end;
+
diff --git a/Master/texmf-dist/fonts/source/public/timing/timing1.mf b/Master/texmf-dist/fonts/source/public/timing/timing1.mf
new file mode 100644
index 00000000000..64b42dc0770
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/timing/timing1.mf
@@ -0,0 +1,29 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% TIMING1.MF
+%
+% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler
+% Schaltungen.
+% Datei fr Zeichensatz mit ca. 1mm Breite
+%
+% Ludwig May, Dezember 1991
+% Jens Leilich, Žnderungen im Mai 1994
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+
+font_size 10/300in#;
+font_identifier:="TIMING1";
+font_coding_scheme:="UNSPECIFIED";
+
+u#:=1/60in#;
+c_width#:=5/2u#;
+c_height#:=15u#;
+p_size#:=u#/2;
+p2_size#:=p_size#*2;
+p3_size#:=p_size#/3;
+s_f#:=c_height#/2/c_width#;
+xs#:=0; % muss zwischen 0 und 6 liegen
+bt#:=10;
+
+input timing
+
diff --git a/Master/texmf-dist/fonts/source/public/timing/timing1s.mf b/Master/texmf-dist/fonts/source/public/timing/timing1s.mf
new file mode 100644
index 00000000000..42df26490f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/timing/timing1s.mf
@@ -0,0 +1,29 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% TIMING1.MF
+%
+% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler
+% Schaltungen.
+% Datei fr Zeichensatz mit ca. 1mm Breite
+%
+% Ludwig May, Dezember 1991
+% Jens Leilich, Žnderungen im Mai 1994
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+
+font_size 10/300in#;
+font_identifier:="TIMING1";
+font_coding_scheme:="UNSPECIFIED";
+
+u#:=1/60in#;
+c_width#:=5/2u#;
+c_height#:=15u#;
+p_size#:=u#/2;
+p2_size#:=p_size#*2;
+p3_size#:=p_size#/3;
+s_f#:=c_height#/2/c_width#;
+xs#:=3; % muss zwischen 0 und 6 liegen
+bt#:=10;
+
+input timing
+
diff --git a/Master/texmf-dist/fonts/source/public/timing/timing2.mf b/Master/texmf-dist/fonts/source/public/timing/timing2.mf
new file mode 100644
index 00000000000..8ca48e7c566
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/timing/timing2.mf
@@ -0,0 +1,29 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% TIMING2.MF
+%
+% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler
+% Schaltungen.
+% Datei fr Zeichensatz mit ca. 2mm Breite
+%
+% Ludwig May, Dezember 1991
+% Jens Leilich, Žnderungen im Mai 1994
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+
+font_size 10/300in#;
+font_identifier:="TIMING2";
+font_coding_scheme:="UNSPECIFIED";
+
+u#:=1/60in#;
+c_width#:=5u#;
+c_height#:=15u#;
+p_size#:=u#/2;
+p2_size#:=p_size#*2;
+p3_size#:=p_size#/3;
+s_f#:=c_height#/2/c_width#;
+xs#:=0; % muss zwischen 0 und 6 liegen
+bt#:=10;
+
+input timing
+
diff --git a/Master/texmf-dist/fonts/source/public/timing/timing2s.mf b/Master/texmf-dist/fonts/source/public/timing/timing2s.mf
new file mode 100644
index 00000000000..1452dfaa9bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/timing/timing2s.mf
@@ -0,0 +1,29 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% TIMING2.MF
+%
+% Zeichensatz zum Darstellen von Zeitdiagrammen digitaler
+% Schaltungen.
+% Datei fr Zeichensatz mit ca. 2mm Breite
+%
+% Ludwig May, Dezember 1991
+% Jens Leilich, Žnderungen im Mai 1994
+%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+mode_setup;
+
+font_size 10/300in#;
+font_identifier:="TIMING2";
+font_coding_scheme:="UNSPECIFIED";
+
+u#:=1/60in#;
+c_width#:=5u#;
+c_height#:=15u#;
+p_size#:=u#/2;
+p2_size#:=p_size#*2;
+p3_size#:=p_size#/3;
+s_f#:=c_height#/2/c_width#;
+xs#:=3; % muss zwischen 0 und 6 liegen
+bt#:=10;
+
+input timing
+
diff --git a/Master/texmf-dist/fonts/source/public/tipa/gentfm.sh b/Master/texmf-dist/fonts/source/public/tipa/gentfm.sh
new file mode 100644
index 00000000000..f7f3dea67ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/gentfm.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+
+modename="ljfour"
+
+tipafonts="tipa10.mf tipa12.mf tipa17.mf tipa8.mf tipa9.mf\
+ tipabx10.mf tipabx12.mf tipabx8.mf tipabx9.mf\
+ tipasl10.mf tipasl12.mf tipasl8.mf tipasl9.mf\
+ tipass10.mf tipass12.mf tipass17.mf tipass8.mf tipass9.mf\
+ tipab10.mf tipabs10.mf tipasb10.mf tipasi10.mf\
+ tipatt10.mf tipatt12.mf tipatt8.mf tipatt9.mf tipats10.mf"
+
+tipxfonts="tipx10.mf tipx12.mf tipx17.mf tipx8.mf tipx9.mf\
+ tipxbx10.mf tipxbx12.mf tipxbx8.mf tipxbx9.mf\
+ tipxsl10.mf tipxsl12.mf tipxsl8.mf tipxsl9.mf\
+ tipxss10.mf tipxss12.mf tipxss17.mf tipxss8.mf tipxss9.mf\
+ tipxb10.mf tipxbs10.mf tipxsb10.mf tipxsi10.mf\
+ tipxtt10.mf tipxtt12.mf tipxtt8.mf tipxtt9.mf tipxts10.mf"
+
+xipafonts="xipa10.mf xipab10.mf xipasl10.mf xipass10.mf\
+ xipabs10 xipasi10 xipasb10"
+
+xipxfonts="xipx10.mf xipxb10.mf xipxsl10.mf xipxss10.mf\
+ xipxbs10 xipxsi10 xipxsb10"
+
+allfonts="$tipafonts $tipxfonts $xipafonts $xipxfonts"
+
+for i in $allfonts
+do
+ mf '\mode='$modename'; input' $i
+done
+
+install -c -m 644 *.tfm ../tfm
+
+exit 0
diff --git a/Master/texmf-dist/fonts/source/public/tipa/gentipa.sh b/Master/texmf-dist/fonts/source/public/tipa/gentipa.sh
new file mode 100644
index 00000000000..2da32b7d62a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/gentipa.sh
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+# gentipa.sh --- a shell script for producing TIPA parameter files.
+#
+# 1996/06/24 first version
+# 2001/11/07 bs10 (= BXSL10), sb10 (=SSBX10), si10 (=SSSL10) added.
+# 2001/12/21 tt8, tt9, tt10, tt12, ts10 (=SLTT10) added.
+
+AWK=gawk
+
+DATE="2003/01/01"
+VERSION="1.2"
+
+PARAMFILE="tipaprm.def"
+
+FILES="tipa8 tipa9 tipa10 tipa12 tipa17 tipasl8 tipasl9 tipasl10 tipasl12 \
+ tipabx8 tipabx9 tipabx10 tipabx12 tipass8 tipass9 tipass10 tipass12 \
+ tipass17 tipab10 tipabs10 tipasb10 tipasi10 \
+ tipatt8 tipatt9 tipatt10 tipatt12 tipats10"
+
+for FNAME in $FILES
+do
+ case "$FNAME" in
+ tipa8) NUM=3; FID="TIPA"; FSIZE="8"; FDESC="Roman 8" ;;
+ tipa9) NUM=4; FID="TIPA"; FSIZE="9"; FDESC="Roman 9" ;;
+ tipa10) NUM=5; FID="TIPA"; FSIZE="10";FDESC="Roman 10" ;;
+ tipa12) NUM=6; FID="TIPA"; FSIZE="12";FDESC="Roman 12" ;;
+ tipa17) NUM=7; FID="TIPA"; FSIZE="17.28";FDESC="Roman 17.28" ;;
+ tipasl8) NUM=8; FID="TIPASL";FSIZE="8"; FDESC="Slanted Roman 8" ;;
+ tipasl9) NUM=9; FID="TIPASL";FSIZE="9"; FDESC="Slanted Roman 9" ;;
+ tipasl10) NUM=10;FID="TIPASL";FSIZE="10";FDESC="Slanted Roman 10" ;;
+ tipasl12) NUM=11;FID="TIPASL";FSIZE="12";FDESC="Slanted Roman 12" ;;
+ tipabx8) NUM=12;FID="TIPABX";FSIZE="8"; FDESC="Bold Extended Roman 8" ;;
+ tipabx9) NUM=13;FID="TIPABX";FSIZE="9"; FDESC="Bold Extended Roman 9" ;;
+ tipabx10) NUM=14;FID="TIPABX";FSIZE="10";FDESC="Bold Extended Roman 10" ;;
+ tipabx12) NUM=15;FID="TIPABX";FSIZE="12";FDESC="Bold Extended Roman 12" ;;
+ tipass8) NUM=16;FID="TIPASS";FSIZE="8"; FDESC="Sans Serif 8" ;;
+ tipass9) NUM=17;FID="TIPASS";FSIZE="9"; FDESC="Sans Serif 9" ;;
+ tipass10) NUM=18;FID="TIPASS";FSIZE="10";FDESC="Sans Serif 10" ;;
+ tipass12) NUM=19;FID="TIPASS";FSIZE="12";FDESC="Sans Serif 12" ;;
+ tipass17) NUM=20;FID="TIPASS";FSIZE="17.28";FDESC="Sans Serif 17.28" ;;
+ tipab10) NUM=21;FID="TIPAB"; FSIZE="10";FDESC="Bold Roman 10" ;;
+ tipabs10) NUM=22;FID="TIPABS";FSIZE="10";FDESC="Bold Extended Slanted Roman 10" ;;
+ tipasb10) NUM=23;FID="TIPASB";FSIZE="10";FDESC="Sans Serif Bold Extended 10" ;;
+ tipasi10) NUM=24;FID="TIPASI";FSIZE="10";FDESC="Sans Serif Slanted 10" ;;
+ tipatt8) NUM=25;FID="TIPATT";FSIZE="8"; FDESC="Typewriter Text 8" ;;
+ tipatt9) NUM=26;FID="TIPATT";FSIZE="9"; FDESC="Typewriter Text 9" ;;
+ tipatt10) NUM=27;FID="TIPATT";FSIZE="10";FDESC="Typewriter Text 10" ;;
+ tipatt12) NUM=28;FID="TIPATT";FSIZE="12";FDESC="Typewriter Text 12" ;;
+ tipats10) NUM=29;FID="TIPATS";FSIZE="10";FDESC="Typewriter Text Slanted 10" ;;
+ esac
+
+ echo "% $FNAME.mf: TIPA $FDESC point parameter file" > $FNAME.mf
+ echo "% Copyright 1996-2003 FUKUI Rei" >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% This program may be distributed and/or modified under the" >> $FNAME.mf
+ echo "% conditions of the LaTeX Project Public License, either version 1.2" >> $FNAME.mf
+ echo "% of this license or (at your option) any later version." >> $FNAME.mf
+ echo "% The latest version of this license is in" >> $FNAME.mf
+ echo "% http://www.latex-project.org/lppl.txt" >> $FNAME.mf
+ echo "% and version 1.2 or later is part of all distributions of LaTeX " >> $FNAME.mf
+ echo "% version 1999/12/01 or later." >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% This program consists of all files listed in Manifest.txt." >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% Version $VERSION $DATE" >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo '% This file is based on:' >> $FNAME.mf
+ echo '% Computer Modern font series by D. E. Knuth and' >> $FNAME.mf
+ echo '% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'if unknown cmbase: input cmbase fi' >> $FNAME.mf
+ echo 'if unknown tipabase: input tipabase fi' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo "font_identifier:=\"$FID\"; font_size ${FSIZE}pt#;" >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'Times_Compat:=false;' >> $FNAME.mf
+ echo 'if Times_Compat: input tipatr fi' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ $AWK "{if (\$1 == \"p\") {
+ if (\$$NUM == \"0\") print \$2 \"#:=\" \$$NUM \"pt#;\";\
+ else print \$2 \"#:=\" \$$NUM \"/36pt#;\";\
+ }\
+ else if (\$1 == \"P\") print \$2 \"#:=\" \$$NUM \"pt#;\";\
+ else if (\$1 == \"n\") print \$2 \":=\" \$$NUM \";\";}" $PARAMFILE |\
+ sed 's/SQ/sqrt/' | sed 's/SC12/sind 12\/cosd 12/' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'generate tipa % switch to the driver file' >> $FNAME.mf
+done
+
+exit 0
diff --git a/Master/texmf-dist/fonts/source/public/tipa/gentipx.sh b/Master/texmf-dist/fonts/source/public/tipa/gentipx.sh
new file mode 100644
index 00000000000..3b76a1e0300
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/gentipx.sh
@@ -0,0 +1,90 @@
+#!/bin/sh
+
+# gentipx.sh --- a shell script for producing TIPX parameter files.
+#
+# 2001/11/21 first version
+# 2001/12/21 tt8, tt9, tt10, tt12, ts10 (=SLTT10) added.
+
+AWK=gawk
+
+DATE="2003/01/01"
+VERSION="1.2"
+
+PARAMFILE="tipaprm.def"
+
+FILES="tipx8 tipx9 tipx10 tipx12 tipx17 tipxsl8 tipxsl9 tipxsl10 tipxsl12 \
+ tipxbx8 tipxbx9 tipxbx10 tipxbx12 tipxss8 tipxss9 tipxss10 tipxss12 \
+ tipxss17 tipxb10 tipxbs10 tipxsb10 tipxsi10 \
+ tipxtt8 tipxtt9 tipxtt10 tipxtt12 tipxts10"
+
+for FNAME in $FILES
+do
+ case "$FNAME" in
+ tipx8) NUM=3; FID="TIPX"; FSIZE="8"; FDESC="Roman 8" ;;
+ tipx9) NUM=4; FID="TIPX"; FSIZE="9"; FDESC="Roman 9" ;;
+ tipx10) NUM=5; FID="TIPX"; FSIZE="10";FDESC="Roman 10" ;;
+ tipx12) NUM=6; FID="TIPX"; FSIZE="12";FDESC="Roman 12" ;;
+ tipx17) NUM=7; FID="TIPX"; FSIZE="17.28";FDESC="Roman 17.28" ;;
+ tipxsl8) NUM=8; FID="TIPXSL";FSIZE="8"; FDESC="Slanted Roman 8" ;;
+ tipxsl9) NUM=9; FID="TIPXSL";FSIZE="9"; FDESC="Slanted Roman 9" ;;
+ tipxsl10) NUM=10;FID="TIPXSL";FSIZE="10";FDESC="Slanted Roman 10" ;;
+ tipxsl12) NUM=11;FID="TIPXSL";FSIZE="12";FDESC="Slanted Roman 12" ;;
+ tipxbx8) NUM=12;FID="TIPXBX";FSIZE="8"; FDESC="Bold Extended Roman 8" ;;
+ tipxbx9) NUM=13;FID="TIPXBX";FSIZE="9"; FDESC="Bold Extended Roman 9" ;;
+ tipxbx10) NUM=14;FID="TIPXBX";FSIZE="10";FDESC="Bold Extended Roman 10" ;;
+ tipxbx12) NUM=15;FID="TIPXBX";FSIZE="12";FDESC="Bold Extended Roman 12" ;;
+ tipxss8) NUM=16;FID="TIPXSS";FSIZE="8"; FDESC="Sans Serif 8" ;;
+ tipxss9) NUM=17;FID="TIPXSS";FSIZE="9"; FDESC="Sans Serif 9" ;;
+ tipxss10) NUM=18;FID="TIPXSS";FSIZE="10";FDESC="Sans Serif 10" ;;
+ tipxss12) NUM=19;FID="TIPXSS";FSIZE="12";FDESC="Sans Serif 12" ;;
+ tipxss17) NUM=20;FID="TIPXSS";FSIZE="17.28";FDESC="Sans Serif 17.28" ;;
+ tipxb10) NUM=21;FID="TIPXB"; FSIZE="10";FDESC="Bold Roman 10" ;;
+ tipxbs10) NUM=22;FID="TIPXBS";FSIZE="10";FDESC="Bold Extended Slanted Roman 10" ;;
+ tipxsb10) NUM=23;FID="TIPXSB";FSIZE="10";FDESC="Sans Serif Bold Extended 10" ;;
+ tipxsi10) NUM=24;FID="TIPXSI";FSIZE="10";FDESC="Sans Serif Slanted 10" ;;
+ tipxtt8) NUM=25;FID="TIPXTT";FSIZE="8"; FDESC="Typewriter Text 8" ;;
+ tipxtt9) NUM=26;FID="TIPXTT";FSIZE="9"; FDESC="Typewriter Text 9" ;;
+ tipxtt10) NUM=27;FID="TIPXTT";FSIZE="10";FDESC="Typewriter Text 10" ;;
+ tipxtt12) NUM=28;FID="TIPXTT";FSIZE="12";FDESC="Typewriter Text 12" ;;
+ tipxts10) NUM=29;FID="TIPXTS";FSIZE="10";FDESC="Typewriter Text Slanted 10" ;;
+ esac
+
+ echo "% $FNAME.mf: TIPX $FDESC point parameter file" > $FNAME.mf
+ echo "% Copyright 1996-2003 FUKUI Rei" >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% This program may be distributed and/or modified under the" >> $FNAME.mf
+ echo "% conditions of the LaTeX Project Public License, either version 1.2" >> $FNAME.mf
+ echo "% of this license or (at your option) any later version." >> $FNAME.mf
+ echo "% The latest version of this license is in" >> $FNAME.mf
+ echo "% http://www.latex-project.org/lppl.txt" >> $FNAME.mf
+ echo "% and version 1.2 or later is part of all distributions of LaTeX " >> $FNAME.mf
+ echo "% version 1999/12/01 or later." >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% This program consists of all files listed in Manifest.txt." >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% Version $VERSION $DATE FUKUI Rei" >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo '% This file is based on:' >> $FNAME.mf
+ echo '% Computer Modern font series by D. E. Knuth and' >> $FNAME.mf
+ echo '% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'if unknown cmbase: input cmbase fi' >> $FNAME.mf
+ echo 'if unknown tipabase: input tipabase fi' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo "font_identifier:=\"$FID\"; font_size ${FSIZE}pt#;" >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'Times_Compat:=false;' >> $FNAME.mf
+ echo 'if Times_Compat: input tipatr fi' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ $AWK "{if (\$1 == \"p\") {
+ if (\$$NUM == \"0\") print \$2 \"#:=\" \$$NUM \"pt#;\";\
+ else print \$2 \"#:=\" \$$NUM \"/36pt#;\";\
+ }\
+ else if (\$1 == \"P\") print \$2 \"#:=\" \$$NUM \"pt#;\";\
+ else if (\$1 == \"n\") print \$2 \":=\" \$$NUM \";\";}" $PARAMFILE |\
+ sed 's/SQ/sqrt/' | sed 's/SC12/sind 12\/cosd 12/' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'generate tipx % switch to the driver file' >> $FNAME.mf
+done
+
+exit 0
diff --git a/Master/texmf-dist/fonts/source/public/tipa/genxipa.sh b/Master/texmf-dist/fonts/source/public/tipa/genxipa.sh
new file mode 100644
index 00000000000..2a1320993f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/genxipa.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# genxipa.sh --- a shell script for producing TIPA parameter files.
+#
+# 1996/06/24 first version
+#
+
+AWK=gawk
+
+DATE="2003/01/01"
+VERSION="1.2"
+
+PARAMFILE="xipaprm.def"
+
+FILES="xipa10 xipasl10 xipab10 xipabs10 xipass10 xipasi10 xipasb10"
+
+for FNAME in $FILES
+do
+ case "$FNAME" in
+ xipa10) NUM=3;FID="XIPA"; FSIZE="10";FDESC="Roman 10" ;;
+ xipasl10) NUM=4;FID="XIPASL";FSIZE="10";FDESC="Slanted Roman 10" ;;
+ xipab10) NUM=5;FID="XIPAB"; FSIZE="10";FDESC="Bold Roman 10" ;;
+ xipabs10) NUM=6;FID="XIPABS";FSIZE="10";FDESC="Bold Slanted Roman 10" ;;
+ xipass10) NUM=7;FID="XIPASS";FSIZE="10";FDESC="Sans Serif 10" ;;
+ xipasi10) NUM=8;FID="XIPASI";FSIZE="10";FDESC="Sans Serif Slanted 10" ;;
+ xipasb10) NUM=9;FID="XIPASB";FSIZE="10";FDESC="Sans Serif Bold 10" ;;
+ esac
+
+ echo "% $FNAME.mf: XIPA $FDESC point parameter file" > $FNAME.mf
+ echo "% Copyright 1996-2003 FUKUI Rei" >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% This program may be distributed and/or modified under the" >> $FNAME.mf
+ echo "% conditions of the LaTeX Project Public License, either version 1.2" >> $FNAME.mf
+ echo "% of this license or (at your option) any later version." >> $FNAME.mf
+ echo "% The latest version of this license is in" >> $FNAME.mf
+ echo "% http://www.latex-project.org/lppl.txt" >> $FNAME.mf
+ echo "% and version 1.2 or later is part of all distributions of LaTeX " >> $FNAME.mf
+ echo "% version 1999/12/01 or later." >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% This program consists of all files listed in Manifest.txt." >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% Version $VERSION $DATE FUKUI Rei" >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo '% This file is based on:' >> $FNAME.mf
+ echo '% Computer Modern font series by D. E. Knuth and' >> $FNAME.mf
+ echo '% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'if unknown cmbase: input cmbase fi' >> $FNAME.mf
+ echo 'if unknown tipabase: input tipabase fi' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo "font_identifier:=\"$FID\"; font_size ${FSIZE}pt#;" >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'Times_Compat:=true;' >> $FNAME.mf
+ echo 'if Times_Compat: input tipatr fi' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ $AWK "{if (\$1 == \"p\") {
+ if (\$$NUM == \"0\") print \$2 \"#:=\" \$$NUM \"pt#;\";\
+ else print \$2 \"#:=\" \$$NUM \"/36pt#;\";\
+ }\
+ else if (\$1 == \"P\") print \$2 \"#:=\" \$$NUM \"pt#;\";\
+ else if (\$1 == \"n\") print \$2 \":=\" \$$NUM \";\";}" $PARAMFILE |\
+ sed 's/SQ/sqrt/' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'generate tipa % switch to the driver file' >> $FNAME.mf
+done
+
+exit 0
diff --git a/Master/texmf-dist/fonts/source/public/tipa/genxipx.sh b/Master/texmf-dist/fonts/source/public/tipa/genxipx.sh
new file mode 100644
index 00000000000..4cd09f4a650
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/genxipx.sh
@@ -0,0 +1,67 @@
+#!/bin/sh
+
+# genxipx.sh --- a shell script for producing XIPX parameter files.
+#
+# 1996/06/24 first version
+#
+
+AWK=gawk
+
+DATE="2003/01/01"
+VERSION="1.2"
+
+PARAMFILE="xipaprm.def"
+
+FILES="xipx10 xipxsl10 xipxb10 xipxbs10 xipxss10 xipxsi10 xipxsb10"
+
+for FNAME in $FILES
+do
+ case "$FNAME" in
+ xipx10) NUM=3;FID="XIPX"; FSIZE="10";FDESC="Roman 10" ;;
+ xipxsl10) NUM=4;FID="XIPXSL";FSIZE="10";FDESC="Slanted Roman 10" ;;
+ xipxb10) NUM=5;FID="XIPXB"; FSIZE="10";FDESC="Bold Roman 10" ;;
+ xipxbs10) NUM=6;FID="XIPXBS";FSIZE="10";FDESC="Bold Slanted Roman 10" ;;
+ xipxss10) NUM=7;FID="XIPXSS";FSIZE="10";FDESC="Sans Serif 10" ;;
+ xipxsi10) NUM=8;FID="XIPXSI";FSIZE="10";FDESC="Sans Serif Slanted 10" ;;
+ xipxsb10) NUM=9;FID="XIPXSB";FSIZE="10";FDESC="Sans Serif Bold 10" ;;
+ esac
+
+ echo "% $FNAME.mf: XIPX $FDESC point parameter file" > $FNAME.mf
+ echo "% Copyright 1996-2003 FUKUI Rei" >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% This program may be distributed and/or modified under the" >> $FNAME.mf
+ echo "% conditions of the LaTeX Project Public License, either version 1.2" >> $FNAME.mf
+ echo "% of this license or (at your option) any later version." >> $FNAME.mf
+ echo "% The latest version of this license is in" >> $FNAME.mf
+ echo "% http://www.latex-project.org/lppl.txt" >> $FNAME.mf
+ echo "% and version 1.2 or later is part of all distributions of LaTeX " >> $FNAME.mf
+ echo "% version 1999/12/01 or later." >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% This program consists of all files listed in Manifest.txt." >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo "% Version $VERSION $DATE" >> $FNAME.mf
+ echo "%" >> $FNAME.mf
+ echo '% This file is based on:' >> $FNAME.mf
+ echo '% Computer Modern font series by D. E. Knuth and' >> $FNAME.mf
+ echo '% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'if unknown cmbase: input cmbase fi' >> $FNAME.mf
+ echo 'if unknown tipabase: input tipabase fi' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo "font_identifier:=\"$FID\"; font_size ${FSIZE}pt#;" >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'Times_Compat:=true;' >> $FNAME.mf
+ echo 'if Times_Compat: input tipatr fi' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ $AWK "{if (\$1 == \"p\") {
+ if (\$$NUM == \"0\") print \$2 \"#:=\" \$$NUM \"pt#;\";\
+ else print \$2 \"#:=\" \$$NUM \"/36pt#;\";\
+ }\
+ else if (\$1 == \"P\") print \$2 \"#:=\" \$$NUM \"pt#;\";\
+ else if (\$1 == \"n\") print \$2 \":=\" \$$NUM \";\";}" $PARAMFILE |\
+ sed 's/SQ/sqrt/' >> $FNAME.mf
+ echo '' >> $FNAME.mf
+ echo 'generate tipx % switch to the driver file' >> $FNAME.mf
+done
+
+exit 0
diff --git a/Master/texmf-dist/fonts/source/public/tipa/mktipapk.sh b/Master/texmf-dist/fonts/source/public/tipa/mktipapk.sh
new file mode 100644
index 00000000000..e13a0ee85eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/mktipapk.sh
@@ -0,0 +1,173 @@
+#!/bin/sh
+#
+# This script generates pk font files for tipa.
+#
+# TIPA is a set of metafont source files for IPA (International
+# Phonetic Alphabet) symbols. You can get it from the CTAN archive.
+#
+# In order to use this script, metafont programs, gftopk, and metafont
+# source files (*.mf) must be installed properly.
+#
+# You should also be familiar with the `modes.mf' file which contains
+# parameters for various printers.
+#
+# 1996/03/12 FUKUI Rei (fkr@tooyoo.L.u-tokyo.ac.jp)
+#
+
+progname=`basename "$0"`
+MF=mf
+
+if [ $# != 0 ]; then
+ MODE=$1
+else
+ echo "Usage: $progname mode_name"
+ echo "Examples: $progname localfont"
+ echo " : $progname CanonCX"
+ exit 1
+fi
+
+execmf()
+{
+ for file in $MFFILES
+ do
+ echo "[ $file at mag=$MAG ]"
+ $MF "\mode=$MODE; mag=$MAG; nonstopmode;" input $file
+ done
+}
+
+cmbase=/usr/local/lib/texmf/fonts/public/cm/src/cmbase.mf
+if [ -f $cmbase ]; then
+ ln -s $cmbase cmbase.mf
+fi
+
+##############################
+# make all fonts for mag 5/8 #
+##############################
+
+MFFILES="tipa8 tipasl8 tipabx8 tipass8"
+MAG=5/8
+execmf
+
+##############################
+# make all fonts for mag 6/8 #
+##############################
+
+MFFILES="tipa8 tipasl8 tipabx8 tipass8"
+MAG=6/8
+execmf
+
+##############################
+# make all fonts for mag 7/8 #
+##############################
+
+MFFILES="tipa8 tipasl8 tipabx8 tipass8"
+MAG=7/8
+execmf
+
+#############################
+# make all fonts for mag .5 #
+#############################
+
+MFFILES="tipab10"
+MAG=.5
+execmf
+
+#############################
+# make all fonts for mag .6 #
+#############################
+
+MFFILES="tipab10"
+MAG=.6
+execmf
+
+#############################
+# make all fonts for mag .7 #
+#############################
+
+MFFILES="tipab10"
+MAG=.7
+execmf
+
+#############################
+# make all fonts for mag .8 #
+#############################
+
+MFFILES="tipab10"
+MAG=.8
+execmf
+
+#############################
+# make all fonts for mag .9 #
+#############################
+
+MFFILES="tipab10"
+MAG=.9
+execmf
+
+############################
+# make all fonts for mag 1 #
+############################
+
+MFFILES="tipa8 tipa9 tipa10 tipa12 tipa17 tipasl8 tipasl9 tipasl10 tipasl12 \
+ tipabx8 tipabx9 tipabx10 tipabx12 tipass8 tipass9 tipass10 tipass12 \
+ tipass17 tipab10"
+MAG=1
+execmf
+
+##################################
+# make all fonts for magstep 0.5 #
+##################################
+
+MFFILES="tipa10 tipasl10 tipabx10 tipass10 tipab10"
+MAG=magstep.5
+execmf
+
+################################
+# make all fonts for magstep 1 #
+################################
+
+MFFILES="tipa12 tipa17 tipasl12 tipabx12 tipass12 tipass17 tipab10"
+MAG=magstep1
+execmf
+
+################################
+# make all fonts for magstep 2 #
+################################
+
+MFFILES="tipa17 tipasl12 tipabx12 tipass17 tipab10"
+MAG=magstep2
+execmf
+
+################################
+# make all fonts for magstep 3 #
+################################
+
+MFFILES="tipasl12 tipabx12 tipab10"
+MAG=magstep3
+execmf
+
+################################
+# make all fonts for magstep 4 #
+################################
+
+MFFILES="tipasl12 tipabx12 tipab10"
+MAG=magstep4
+execmf
+
+################################
+# make all fonts for magstep 5 #
+################################
+
+MFFILES="tipab10"
+MAG=magstep5
+execmf
+
+for gf in tipa*gf
+do
+ gftopk $gf
+done
+
+rm -f *gf *.log cmbase.mf
+#rm -f *.tfm
+
+exit 0
diff --git a/Master/texmf-dist/fonts/source/public/tipa/mkxipapk.sh b/Master/texmf-dist/fonts/source/public/tipa/mkxipapk.sh
new file mode 100644
index 00000000000..64fb4f87111
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/mkxipapk.sh
@@ -0,0 +1,147 @@
+#!/bin/sh
+#
+# This script generates pk font files for tipa.
+#
+# TIPA is a set of metafont source files for IPA (International
+# Phonetic Alphabet) symbols. You can get it from the CTAN archive.
+#
+# In order to use this script, metafont programs, gftopk, and metafont
+# source files (*.mf) must be installed properly.
+#
+# You should also be familiar with the `modes.mf' file which contains
+# parameters for various printers.
+#
+# 1996/03/12 FUKUI Rei (fkr@tooyoo.L.u-tokyo.ac.jp)
+#
+
+progname=`basename "$0"`
+MF=mf
+
+if [ $# != 0 ]; then
+ MODE=$1
+else
+ echo "Usage: $progname mode_name"
+ echo "Examples: $progname localfont"
+ echo " : $progname CanonCX"
+ exit 1
+fi
+
+execmf()
+{
+ for file in $MFFILES
+ do
+ echo "[ $file at mag=$MAG ]"
+ $MF "\mode=$MODE; mag=$MAG; nonstopmode;" input $file
+ done
+}
+
+cmbase=/usr/local/lib/texmf/fonts/public/cm/src/cmbase.mf
+if [ -f $cmbase ]; then
+ ln -s $cmbase cmbase.mf
+fi
+
+#############################
+# make all fonts for mag .5 #
+#############################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=.5
+execmf
+
+#############################
+# make all fonts for mag .6 #
+#############################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=.6
+execmf
+
+#############################
+# make all fonts for mag .7 #
+#############################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=.7
+execmf
+
+#############################
+# make all fonts for mag .8 #
+#############################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=.8
+execmf
+
+#############################
+# make all fonts for mag .9 #
+#############################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=.9
+execmf
+
+############################
+# make all fonts for mag 1 #
+############################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=1
+execmf
+
+##################################
+# make all fonts for magstep 0.5 #
+##################################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=magstep.5
+execmf
+
+################################
+# make all fonts for magstep 1 #
+################################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=magstep1
+execmf
+
+################################
+# make all fonts for magstep 2 #
+################################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=magstep2
+execmf
+
+################################
+# make all fonts for magstep 3 #
+################################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=magstep3
+execmf
+
+################################
+# make all fonts for magstep 4 #
+################################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=magstep4
+execmf
+
+################################
+# make all fonts for magstep 5 #
+################################
+
+MFFILES="xipa10 xipasl10 xipabx10 xipass10 xipab10"
+MAG=magstep5
+execmf
+
+for gf in xipa*gf
+do
+ gftopk $gf
+done
+
+rm -f *gf *.log cmbase.mf
+#rm -f *.tfm
+
+exit 0
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipa.mf b/Master/texmf-dist/fonts/source/public/tipa/tipa.mf
new file mode 100644
index 00000000000..5fe29292857
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipa.mf
@@ -0,0 +1,166 @@
+% tipa.mf: TIPA driver file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+font_coding_scheme:="TeX IPA";
+
+mode_setup;
+font_setup;
+
+input tipanew % new materials for testing
+input tipadiac % accents and diacritics
+input tipapnct % punctuation marks
+input tiparoml % lower case (minuscules)
+input tipasym1 % ipa symbols (1)
+input tipasym2 % ipa symbols (2)
+input tipasym3 % ipa symbols (3)
+input tipasym4 % ipa symbols (4)
+input tipagerm % symbols for germanic languages
+input tipatone % parts of tone letters
+
+smallcap_setup;
+input tipasc % ipa small capitals
+restore_normal_setup;
+
+font_slant slant; font_x_height x_height#;
+
+% Modified on 2001/12/24 for the Times Roman compatibility;
+% The values for Times_Compat are calculated from the data
+% from ptmr7t.tfm.
+if monospace:
+ font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else:
+ if Times_Compat:
+ font_normal_space 5u#+2letter_fit#;
+ font_normal_stretch 2.2u#; font_normal_shrink 1.2u#;
+ font_quad 20u#+4letter_fit#;
+ font_extra_space 1.2u#;
+ else:
+ font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ fi
+fi
+
+% ligatures made by ligtables
+
+ligtable oct"047": oct"047" kern -1.5u#; % ' + ' -> ''
+ligtable oct"140": oct"140" kern -1.5u#; % ` + ` => ``
+ligtable "|": "|" =: oct"173"; % Pipe + Pipe -> Double Pipe
+ligtable oct"042": oct"042" =: oct"177"; % Prim. Stress + Prim. Stress -> Sec. Stress
+
+% kernings (need to modify)
+
+numeric itc#; % modified italic correction on `f'
+itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi;
+
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+ligtable "f":
+ "'" kern itc#, "?" kern itc#, "!" kern itc#, ")" kern itc#, "]" kern itc#;
+
+ligtable "y":
+ "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, "," kern kk#,
+ "2" kern -u#, "L" kern -u#, oct"300" kern -u#, oct"373" kern -u#;
+
+ligtable "g":
+ "j" kern -k#; % logjam
+
+if serifs:
+
+ ligtable "k":
+ "a" kern -u#, "e" kern k#, "a" kern k#, "o" kern k#, "c" kern k#;
+
+ ligtable "v":
+ "a" kern -u#, "e" kern k#, "a" kern k#, "o" kern k#, "c" kern k#,
+ "2" kern -u#, "L" kern -u#, oct"300" kern -u#, oct"373" kern -u#;
+
+ ligtable "w":
+ "e" kern k#, "a" kern k#, "o" kern k#, "c" kern k#,
+ "2" kern -u#, "L" kern -u#, oct"300" kern -u#, oct"373" kern -u#;
+
+ ligtable "h": "m": "n":
+ "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern k#,
+ "w" kern k#;
+
+ ligtable "c":
+ "h" kern k#, "k" kern k#;
+
+ ligtable "o": "b": "p":
+ "e" kern -k#, "o" kern -k#, "x" kern k#, "d" kern -k#, "c" kern -k#,
+ "q" kern -k#, "v" kern k#, "j" kern u#, "y" kern k#, "w" kern k#;
+
+ ligtable "a":
+ "v" kern k#, "j" kern u#, "y" kern k#, "w" kern k#;
+
+ ligtable "t":
+ "y" kern k#, "w" kern k#;
+
+ ligtable "u":
+ "w" kern k#;
+
+else:
+
+ ligtable "k":
+ "e" kern k#, "a" kern k#, "o" kern k#, "c" kern k#;
+
+ ligtable "w":
+ "e" kern k#, "a" kern k#, "o" kern k#, "c" kern k#,
+ "2" kern -u#, "L" kern -u#, oct"300" kern -u#, oct"373" kern -u#;
+
+ ligtable "v":
+ "2" kern -u#, "L" kern -u#, oct"300" kern -u#, oct"373" kern -u#;
+
+ ligtable "o": "b": "p":
+ "e" kern -k#, "o" kern -k#, "x" kern k#, "d" kern -k#, "c" kern -k#,
+ "q" kern -k#, "r" kern k#, "y" kern k#, "w" kern k#;
+
+ ligtable "a":
+ "r" kern k#, "y" kern k#, "w" kern k#;
+
+ ligtable "t":
+ "y" kern k#, "w" kern k#;
+
+ ligtable "u":
+ "w" kern k#;
+
+fi
+
+ligtable "2": "L": oct"300": oct"373": % Turned V, SC A, Turned y, Turned W
+ "v" kern -u#, "w" kern -u#, "y" kern -u#;
+
+ligtable "S": oct"342": oct"344": oct"352": oct"301": oct"311":
+ oct"323": oct"264": oct"331": % symbols with hooktop
+ "b" kern -kk#, "f" kern -k#, "h" kern -kk#, "i" kern -kk#,
+ "j" kern -kk#, "k" kern -kk#, "P" kern -kk#, "Q" kern -kk#,
+ "]" kern -kk#, ")" kern -kk#;
+
+ligtable oct"343": oct"355": oct"357": oct"365": oct"374": % symbols with right-tail
+ "g" kern -k#, "j" kern -kk#, "p" kern -kk#, "y" kern -kk#, "S" kern -kk#,
+ "B" kern -kk#, "J" kern -kk#, oct"351" kern -kk#, oct"361" kern -kk#,
+ "]" kern -kk#, ")" kern -kk#;
+
+ligtable "[": "(":
+ "S" kern -kk#, oct"361" kern -kk#, "j" kern -kk#, oct"351" kern -kk#,
+ oct"352" kern -kk#, oct"315" kern -kk#;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipa10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipa10.mf
new file mode 100644
index 00000000000..060a9146146
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipa10.mf
@@ -0,0 +1,92 @@
+% tipa10.mf: TIPA Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPA"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=87/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=25/36pt#;
+curve#:=30/36pt#;
+ess#:=27/36pt#;
+flare#:=33/36pt#;
+dot_size#:=38/36pt#;
+cap_hair#:=11/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=37/36pt#;
+cap_ess#:=35/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=1/36pt#;
+bracket#:=20/36pt#;
+jut#:=28/36pt#;
+cap_jut#:=37/36pt#;
+beak_jut#:=10/36pt#;
+beak#:=70/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=10pt#;
+bar#:=11/36pt#;
+slab#:=11/36pt#;
+cap_bar#:=11/36pt#;
+cap_band#:=11/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=4/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=8/36pt#;
+apex_o#:=8/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipa12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipa12.mf
new file mode 100644
index 00000000000..61ec67fbcf9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipa12.mf
@@ -0,0 +1,92 @@
+% tipa12.mf: TIPA Roman 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPA"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5.8/36pt#;
+letter_fit#:=0pt#;
+body_height#:=324/36pt#;
+asc_height#:=300/36pt#;
+cap_height#:=295.2/36pt#;
+fig_height#:=278.4/36pt#;
+x_height#:=186/36pt#;
+math_axis#:=108/36pt#;
+bar_height#:=104.4/36pt#;
+comma_depth#:=84/36pt#;
+desc_depth#:=84/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7.5/36pt#;
+hair#:=9.5/36pt#;
+stem#:=28/36pt#;
+curve#:=33/36pt#;
+ess#:=30/36pt#;
+flare#:=36/36pt#;
+dot_size#:=42/36pt#;
+cap_hair#:=11.5/36pt#;
+cap_stem#:=35/36pt#;
+cap_curve#:=40/36pt#;
+cap_ess#:=38/36pt#;
+rule_thickness#:=.44pt#;
+dish#:=1/36pt#;
+bracket#:=24/36pt#;
+jut#:=33/36pt#;
+cap_jut#:=41/36pt#;
+beak_jut#:=11.4/36pt#;
+beak#:=84/36pt#;
+vair#:=8.5/36pt#;
+notch_cut#:=12pt#;
+bar#:=12.5/36pt#;
+slab#:=12.5/36pt#;
+cap_bar#:=12.5/36pt#;
+cap_band#:=12.5/36pt#;
+cap_notch_cut#:=12pt#;
+serif_drop#:=4.8/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=9/36pt#;
+apex_o#:=9/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=-0.2;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=16.45/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipa17.mf b/Master/texmf-dist/fonts/source/public/tipa/tipa17.mf
new file mode 100644
index 00000000000..ff089e9a3e5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipa17.mf
@@ -0,0 +1,92 @@
+% tipa17.mf: TIPA Roman 17.28 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPA"; font_size 17.28pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=32.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=8/36pt#;
+letter_fit#:=-0.1/36pt#;
+body_height#:=466/36pt#;
+asc_height#:=432/36pt#;
+cap_height#:=425/36pt#;
+fig_height#:=401/36pt#;
+x_height#:=267.8/36pt#;
+math_axis#:=155.5/36pt#;
+bar_height#:=150/36pt#;
+comma_depth#:=121/36pt#;
+desc_depth#:=121/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=9/36pt#;
+hair#:=11/36pt#;
+stem#:=33/36pt#;
+curve#:=40/36pt#;
+ess#:=35/36pt#;
+flare#:=45/36pt#;
+dot_size#:=51/36pt#;
+cap_hair#:=13/36pt#;
+cap_stem#:=41/36pt#;
+cap_curve#:=47/36pt#;
+cap_ess#:=43/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=1/36pt#;
+bracket#:=34/36pt#;
+jut#:=42/36pt#;
+cap_jut#:=50/36pt#;
+beak_jut#:=15/36pt#;
+beak#:=121/36pt#;
+vair#:=10/36pt#;
+notch_cut#:=17pt#;
+bar#:=16/36pt#;
+slab#:=16/36pt#;
+cap_bar#:=16/36pt#;
+cap_band#:=16/36pt#;
+cap_notch_cut#:=17pt#;
+serif_drop#:=7/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=10/36pt#;
+apex_o#:=10/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=-0.4;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=22.75/36pt#;
+sc.letter_fit#:=2.2/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipa8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipa8.mf
new file mode 100644
index 00000000000..03f4802761d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipa8.mf
@@ -0,0 +1,92 @@
+% tipa8.mf: TIPA Roman 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPA"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=17/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=4.1/36pt#;
+letter_fit#:=0pt#;
+body_height#:=216/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=196.8/36pt#;
+fig_height#:=185.6/36pt#;
+x_height#:=124/36pt#;
+math_axis#:=72/36pt#;
+bar_height#:=69.6/36pt#;
+comma_depth#:=56/36pt#;
+desc_depth#:=56/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=22/36pt#;
+curve#:=25.5/36pt#;
+ess#:=23/36pt#;
+flare#:=27/36pt#;
+dot_size#:=32/36pt#;
+cap_hair#:=9.5/36pt#;
+cap_stem#:=26.5/36pt#;
+cap_curve#:=30/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.36pt#;
+dish#:=1/36pt#;
+bracket#:=16/36pt#;
+jut#:=22/36pt#;
+cap_jut#:=29/36pt#;
+beak_jut#:=8.4/36pt#;
+beak#:=56/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=8pt#;
+bar#:=9.5/36pt#;
+slab#:=9.5/36pt#;
+cap_bar#:=9.5/36pt#;
+cap_band#:=9.5/36pt#;
+cap_notch_cut#:=8pt#;
+serif_drop#:=3.2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=6/36pt#;
+apex_o#:=6/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.4;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipa9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipa9.mf
new file mode 100644
index 00000000000..0d3f3b33bd1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipa9.mf
@@ -0,0 +1,92 @@
+% tipa9.mf: TIPA Roman 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPA"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=18.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=4.6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=243/36pt#;
+asc_height#:=225/36pt#;
+cap_height#:=221.4/36pt#;
+fig_height#:=208.8/36pt#;
+x_height#:=139.5/36pt#;
+math_axis#:=81/36pt#;
+bar_height#:=78.3/36pt#;
+comma_depth#:=63/36pt#;
+desc_depth#:=63/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=24/36pt#;
+curve#:=28/36pt#;
+ess#:=25/36pt#;
+flare#:=30/36pt#;
+dot_size#:=35/36pt#;
+cap_hair#:=10/36pt#;
+cap_stem#:=29/36pt#;
+cap_curve#:=33/36pt#;
+cap_ess#:=31/36pt#;
+rule_thickness#:=.38pt#;
+dish#:=1/36pt#;
+bracket#:=18/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=33/36pt#;
+beak_jut#:=9.2/36pt#;
+beak#:=63/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=9pt#;
+bar#:=10/36pt#;
+slab#:=10/36pt#;
+cap_bar#:=10/36pt#;
+cap_band#:=10/36pt#;
+cap_notch_cut#:=9pt#;
+serif_drop#:=3.6/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=7/36pt#;
+apex_o#:=7/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.2;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12.95/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipab10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipab10.mf
new file mode 100644
index 00000000000..92be21db34e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipab10.mf
@@ -0,0 +1,92 @@
+% tipab10.mf: TIPA Bold Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPAB"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=10/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=41/36pt#;
+curve#:=46/36pt#;
+ess#:=38/36pt#;
+flare#:=45/36pt#;
+dot_size#:=56/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=51/36pt#;
+cap_curve#:=55/36pt#;
+cap_ess#:=53/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=1/36pt#;
+bracket#:=10/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=17/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=3/36pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipabase.mf b/Master/texmf-dist/fonts/source/public/tipa/tipabase.mf
new file mode 100644
index 00000000000..74c6cce63d5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipabase.mf
@@ -0,0 +1,431 @@
+% tipabase.mf: TIPA miscellaneous macros
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+% N.B. This file is an addition to cmbase.mf, not a replacement.
+%
+
+if unknown cmbase:
+ errmessage "`cmbase' should have been read before `tipabase'"; fi
+
+tipabase:=1; % when |tipabase| is known, this file has been input
+
+boolean Times_Compat;
+
+let _font_setup = font_setup;
+
+def font_setup =
+ _font_setup;
+ vu#:=u#; hair_rule#:=hair#;
+ diacritic#:=.2[vair#,stem#]; % breadth of some diacritics
+ diacr#:=diacritic#;
+ define_whole_vertical_pixels(vu);
+ define_whole_blacker_pixels(diacritic,diacr);
+ forsuffixes $=diacritic:
+ $.breadth:=$;
+ pickup if $=0: nullpen else: pencircle scaled $; $:=$-eps fi;
+ $.nib:=savepen; breadth_[$.nib]:=$;
+ forsuffixes $$=lft,rt,top,bot: shiftdef($.$$,$$ 0); endfor endfor
+ hair_rule:=ceiling(hair_rule#*hppp);
+ pickup pencircle scaled hair_rule; hair_rule.nib:=savepen;
+ enddef;
+
+boolean debug; debug:=false;
+
+let _endchar = endchar;
+
+def endchar =
+ _endchar; if debug: stop_here; fi enddef;
+
+def sc_compress(suffix $)(expr rate_fix) = % for small caps
+ $.#:=$.# * ((rate_fix[x_height#,cap_height#])/cap_height#); enddef;
+
+def smallcap_setup =
+ forsuffixes $=save_var_list: old.$.#:=$.#; endfor
+ forsuffixes $= u, letter_fit: $.#:=sc.$.#; endfor
+ sc_compress(flare,.7);
+ sc_compress(cap_jut,.1);
+ sc_compress(beak_jut,.1);
+ sc_compress(beak,0);
+ sc_compress(slab,.4);
+ sc_compress(cap_bar,.8);
+ sc_compress(o,.1);
+ sc_compress(apex_o,0);
+ font_setup; enddef;
+
+def save_var_list =
+ u, letter_fit, flare, cap_jut, beak_jut, beak, slab, cap_bar,
+ o, apex_o enddef;
+
+def restore_normal_setup =
+ forsuffixes $=save_var_list: $.#:=old.$.#; endfor
+ font_setup; enddef;
+
+def turn_picture =
+ _center_h:=hround(.5charwd*hppp+.5slant*charht*hppp);
+ _center_v:=vround(.5charht*hppp);
+ currentpicture:=currentpicture
+ rotatedabout((_center_h,_center_v),180); enddef;
+
+def turn_picture_lower =
+ _center_h:=hround(.5charwd*hppp+.5slant*charht*hppp);
+ _center_v:=vround(.5x_height#*hppp);
+ currentpicture:=currentpicture
+ rotatedabout((_center_h,_center_v),180); enddef;
+
+def comMA(suffix $,@)(expr dot_size,jut,depth) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1-depth;
+ x@0l=x@1l=x$'l; lft x@2l=good.x(x$+eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,180); pos@3(vair,225); % 96/02/10 fkr
+ z@1r=z$r; lft x@2r=hround(x$-.5dot_size-jut)-2eps; x@3=x$+.5u;
+ y@2=1/3[y@1,y@3]; bot y@3r=vround(y$-.5dot_size-depth);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{down}...z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+def hook_out_bot(suffix $,$$,$$$) % used in ``Viby I'' and ``Viby Y''
+ suffix modifier= % x$ and x$$$ (only) are known
+ pos$(stem,0); pos$$(vair,90);
+ x$$$:=hround(x$$$+.5hair-eps)-.5hair; pos$$$(hair,180);
+ y$=1/4x_height-d; bot y$$l=-oo-d; y$$$=1/3x_height-d;
+ if skewed.modifier: x$$=x$+1.25u;
+ filldraw stroke z$e{-u,-x_height}...z$$e{right}...{up}z$$$e; % hook
+ else: x$$=x$+1.5u;
+ filldraw stroke z$e{down}...z$$e{right}
+ ...{x$$$-(x$+2.5u),x_height}z$$$e; fi enddef; % hook
+
+def hbar(suffix $, $$)(expr loffset, roffset, ypos) =
+ pickup if serifs: tiny.nib; else: fine.nib fi;
+ lft x$r = loffset; rt x$$r = roffset;
+ top y$r = top y$$r = vround(ypos);
+ pos$(bar,90); pos$$(bar,90);
+ filldraw stroke z$e--z$$e;
+ penlabels($, $$); enddef;
+
+def left_tail(suffix $, $$, @, @@)(expr stem_br, x_offset) =
+ if serifs: pickup tiny.nib;
+ pos$.a(stem_br,0); z$=z$.a;
+ x$$=x$.a; bot y$$=-1/3d; pos$$(stem_br,0);
+ pos@(vair,-90); pos@@(hair,-180); pos@@'(flare,-180);
+ x@=.5[x$$,x@@r]; bot y@r=-d-oo; y@@-.5flare=-.88d;
+ z@@r=z@@'r; lft x@@'r= x_offset;
+ numeric xx;
+ (xx,y@r)=whatever[z@l,z$$l]; x@r:=max(xx,.5[x@@r,x@]);
+ filldraw stroke z$.a e--z$$e{down}...z@e{left}; bulb(@,@@,@@'); % arc and bulb
+ else: pickup fine.nib;
+ pos$.a(stem_br,0); z$=z$.a;
+ x$$=x$.a; bot y$$=-1/3d; pos$$(stem_br,0);
+ pos@(vair,-90); x@=.5[x$$,x@@r]; bot y@r=-d-o;
+ pos@@(.6[vair,flare],-110); lft x@@r=x_offset;
+ y@@r=good.y -5/6d; y@@l:=good.y y@@l;
+ filldraw stroke z$.a e--z$$e & super_arc.e($$,@)
+ & term.e(@,@@,left,.9,4); fi
+ enddef;
+
+def right_tail(suffix $, $$, @, @@)(expr stem_br, x_offset, y_end,
+ x_rate, y_rate) =
+ if serifs: pickup tiny.nib;
+ pos$.a(stem_br,180); z$=z$.a;
+ x$$=x$.a; bot y$$=-y_rate*d; pos$$(stem_br,180);
+ pos@(vair,270); pos@@(hair,360); pos@@'(flare,360);
+ x@=x_rate[x$$,x@@r]; bot y@r=-d-oo; y@@-.5flare=-y_end*d;
+ z@@r=z@@'r; rt x@@'r= x_offset;
+ numeric xx;
+ (xx,y@r)=whatever[z@l,z$$l]; x@r:=min(xx,.5[x@,x@@r]);
+ filldraw stroke z$.a e--z$$e{down}...z@e{right}; bulb(@,@@,@@');%arc and bulb
+ else: pickup fine.nib;
+ pos$.a(stem_br,180); z$=z$.a;
+ x$$=x$.a; bot y$$=-y_rate*d; pos$$(stem_br,180);
+ pos@(vair,270); x@=x_rate[x$$,x@@r]; bot y@r=-d-o;
+ pos@@(.6[vair,flare],290); rt x@@r=x_offset;
+ y@@r=good.y(-y_end*d); y@@l:=good.y y@@l;
+ filldraw stroke z$.a e--z$$e & super_arc.e($$,@)
+ & term.e(@,@@,right,.9,4); fi
+ enddef;
+
+def hooktop(suffix $, $$, @, @@)(expr stem_br, x_offset, height,
+ y_end, x_rate, y_rate) =
+ if serifs: pickup tiny.nib;
+ pos$.a(stem_br,180); z$=z$.a;
+ x$$=x$.a; top y$$=y_rate[y$.a,height]; pos$$(stem_br,180);
+ pos@(vair,90); pos@@(hair,0); pos@@'(flare,0);
+ x@=x_rate[x$$,x@@r]; top y@r=height+oo; y@@+.5flare=y_end[y$.a,height];
+ z@@r=z@@'r; rt x@@'r= x_offset;
+ numeric xx;
+ (xx,y@r)=whatever[z@l,z$$l]; x@r:=min(xx,.5[x@,x@@r]);
+ filldraw stroke z$.a e--z$$e{up}...z@e{right}; bulb(@,@@,@@'); % arc and bulb
+ else: pickup fine.nib;
+ pos$.a(stem_br,180); z$=z$.a;
+ x$$=x$.a; top y$$=y_rate[y$.a,height]; pos$$(stem_br,180);
+ pos@(vair,90); x@=x_rate[x$$,x@@r]; top y@r=height+o;
+ pos@@(.6[vair,flare],70); rt x@@r=x_offset;
+ y@@r=good.y y_end[y$.a,height]; y@@l:=good.y y@@l;
+ filldraw stroke z$.a e--z$$e & super_arc.e($$,@)
+ & term.e(@,@@,right,.9,4); fi
+ enddef;
+
+def c_stroke(expr Width) =
+ numeric BH; BH=if Times_Compat:.5613h else: bar_height fi;
+ pickup fine.nib; pos2(vair',90); pos4(vair',270);
+ x2=x4=.5(Width+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+ pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+ if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(BH+.5flare+2vair'+2,.9[BH,h]-.5flare);
+ rt x1r=hround(Width-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(Width-.5u);
+ y5=max(good.y(.5BH-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+ else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(Width-.6u); top y1r=vround .82[BH,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(Width-.5u);
+ y5r=good.y(y5r+1/3BH-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+ enddef;
+
+def d_stroke(expr Topserif, Botserif, bot_y) =
+ pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+ pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+ rt x1r=hround(w-side_gap+.5stem'); top y1=h;
+ numeric edge; edge=lft x2l;
+ pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+ pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+ lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+ y3=1/8[bar_height,x_height];
+ x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+ lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+ x6l=x4l-.2u; bot y6r=-oo;
+ x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+ (x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+ (x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+ filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+ y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+ pickup tiny.nib; numeric lower_serif_drop;
+ lower_serif_drop = if Times_Compat: serif_drop else: min(oo,serif_drop) fi;
+ bot y2=if Botserif: if serifs:-min(oo,serif_drop) else: 0 fi; else: bot_y; fi
+ if Topserif: filldraw stroke z1e--z0'e--z0e--z2e; % stem
+ else: filldraw stroke z0e--z2e; fi % stem
+ if serifs: if Topserif: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+ if Botserif: sloped_serif.r(2,0,b,1/3,jut,lower_serif_drop); fi fi % lower serif
+ enddef;
+
+def epsilon_stroke(expr reverse,mid_jut) = % derived from `3' of cm
+ numeric top_thickness,mid_thickness,bot_thickness,mid_thickness';
+ top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+ mid_thickness=max(fine.breadth,vround 2/3vair);
+ bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+ mid_thickness'=max(hround .6fine.breadth,
+ hround .35[curve,cap_curve]-stem_corr);
+ pickup fine.nib; pos2(top_thickness,90);
+ pos4(vair,-90); pos5(vair,-90); pos6(mid_thickness,90);
+ pos8(bot_thickness,-90); top y2r=h+o; bot y8r=-o;
+ if reverse=true: pos3(mid_thickness',0); pos7(mid_thickness',0);
+ rt x3r=hround(w-u); rt x7r=hround(w-.75u);
+ x2=x6=x8=.5[1.5u,x7]; lft x5=min(hround mid_jut,lft x6)-eps;
+ z4=z5+whatever*(150u,h);
+ else: pos3(mid_thickness',180); pos7(mid_thickness',180);
+ lft x3r=hround(u); lft x7r=hround(.75u);
+ x2=x6=x8=.5[x7,w-1.5u]; rt x5=max(hround(w-mid_jut),w-rt x6)+eps;
+ z4=z5+whatever*(-150u,h); fi
+ x4=1/3[x5,x3l]; y3=.5[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+ top y5l=vround(.54h+.5vair); y5r=y6l;
+ filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+ filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+ filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+ enddef;
+
+def yogh_stroke(expr xmid,xmidrate,xoffset,Comb,Notail) = % derived from `z' of cm
+ numeric arm_thickness[],z_stem,stem[];
+ stem1=fudged.stem-4stem_corr;
+ if hefty: arm_thickness1=stem1; arm_thickness2=stem1;
+ z_stem=fudged.hair;
+ else: arm_thickness1=stem1; arm_thickness2=stem1; z_stem=fudged.hair; fi
+ if arm_thickness1<tiny.breadth: arm_thickness1:=tiny.breadth; fi
+ pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u);
+ lft x3l=lft x4l=hround(xmidrate[xmid, w-.8u]-.25hair);
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=.3[0,h]; y3=max(y4,2/3arm_thickness2);
+ numeric alpha;
+ alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1;
+ lft x6r=if Comb: hround xmid; else: hround xoffset; fi
+ y6=if Comb: y5l; else: good.y(y5l-beak/1.8)-eps; fi
+ arm(5,6,a',beak_darkness,if Comb: 0 else: -.4beak_jut fi); % upper arm and beak
+ pickup tiny.nib;
+ pos12(stem,angle(z2-z3)); x12l=x3l; bot y12l=bot y3l;
+ pos7(curve,0); pos8(vair,-90);
+ rt x7r=hround(w-.75u+.1curve); y7=.48[bot y12l,top y8l];
+ x8=hround(if Times_Compat: .5[xoffset,w-.8u]-.25u else: .5[xoffset,w-.8u] fi);
+ bot y8r=-d-oo;
+ filldraw stroke pulled_arc.e(12,7) & pulled_arc.e(7,8); % bowl
+ if Notail: else:
+ if serifs: pos10(flare,-180); pos9(cap_hair,-180);
+ lft x10r=hround(xoffset if Times_Compat: -.5u fi);
+ y10=if Comb: -.45d; else: -.35d; fi
+ bulb(8,9,10); % lower bulb
+ else: pickup fine.nib; pos8'(vair,-90); z8'=z8;
+ pos9(.6[vair',flare],-110);
+ lft x9r=hround xoffset; top y9l=vround -.3d;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(8',9,left,1,4); fi % lower terminal
+ fi enddef;
+
+def full_circ_stroke(suffix $,$$) =
+ filldraw circ_stroke z$e--z$$e;
+ filldraw circ_stroke z$$e--z$e;
+ enddef;
+
+% added on 2001/11/22 fkr
+vardef inverted_sloped_serif.r(suffix $,$$,@)(expr darkness,jut,drop) =
+ pickup crisp.nib; pos@2(slab,90);
+ rt x@0=tiny.rt x$r; lft x@1=tiny.lft x$l; top y@1=tiny.top y$l;
+ rt x@2=rt x@0+jut; y@2r=y@1-drop;
+ y@0=max(y@2l-bracket,y$$)-eps;
+if drop>0: erase fill z@1--top z@1
+ --(x@2r,top y@1)--z@2r--cycle; fi % erase excess at bottom
+ filldraw z@1--z@2r--z@2l{left}
+ ...darkness[(x@0,y@2l),.5[z@2l,z@0] ]{z@0-z@2l}
+ ...{down}z@0--(x@1,y@0)--cycle; % sloped serif
+ labels(@0,@1,@2); enddef;
+
+% moved from tipagerm.mf on 2001/11/22 fkr
+vardef varm(suffix $,$$,@)(expr darkness,jut)=
+ y@0=good.y(y$$r-jut); x@0=x$r;
+ x@1=x$l; z@1=z$$l+whatever*(z$$r-z@0); z@2=.5[z$l,z@1];
+ filldraw z$$l{z@1-z$$l}...darkness[z@1,.5[z@2,z$$l]]...z@2
+ ---z$l--z$r--z@0--z$$r--cycle;
+ penlabels(@0,@1,@2); enddef;
+
+% front_hook and bulbvar added on 2001/12/06 fkr
+
+def front_hook(suffix $, $$, @, @@)(expr stem_br, stem_angle,
+ x_offset, y_offset, x_end, x_rate, y_rate) =
+ if serifs: pickup tiny.nib;
+ pos$(stem_br,stem_angle); pos$$(stem_br,stem_angle);
+ y$=y$$; x$$=x_rate[x@,x$];
+ pos@(vair,180); pos@@(hair,270); pos@@'(flare,270); % anomoulous but ...
+ y@=y_rate[y@@r,y$$]; lft x@r=hround(x_offset);
+ x@@-.5flare=x_end[x@,x$];
+ z@@r=z@@'r; bot y@@'r=y_offset;
+ filldraw stroke z$e--z$$e{left}...z@e{down}; bulbvar(@,@@,@@');%arc and bulb
+ else: pickup fine.nib;
+ pos$(stem_br,stem_angle); pos$$(stem_br,stem_angle);
+ y$=y$$; x$$=x_rate[x@,x$];
+ pos@(vair,180); pos@@(.6[vair,flare],220);
+ y@=y_rate[y$$r,y@@]; lft x@r=hround(x_offset);
+ x@@-.5vair=x_end[x@,x$]; bot y@@r=y_offset;
+ filldraw stroke z$e--z$$e & super_arc.e($$,@)
+ & term.e(@,@@,down,.9,4); fi
+ enddef;
+
+def bulbvar(suffix $,$$,$$$) =
+ z$$$r=z$$r;
+ path_.l:=z$l{0,y$$r-y$r}...{x$$r-x$r,0}z$$l;
+ filldraw path_.l--z$$r{x$r-x$$r,0}...{0,y$r-y$$r}z$r--cycle; % link
+ path_.r:=z$$$l{x$r-x$$r,0}..z$$$r{x$$r-x$r,0}; % near-circle
+ filldraw subpath(0,xpart(path_.r intersectiontimes path_.l)) of path_.r
+ --z$$r{x$$r-x$r,0}..cycle; % bulb
+ enddef;
+
+def turned_h_stroke(suffix $,@,@@,$$) =
+ penpos$$(x@@r-x@@l,0); x$$=x@@; top y$$=h;
+ y@@=x_height-1/3[bar_height,x_height];
+ penpos$''(x$r-x$l,0); x$''=x$; y$''=x_height-1/8[bar_height,x_height];
+ filldraw stroke z$''e--z$e; % thicken the lower left stem
+ penpos@0(min(rt x$r-lft x$l,thin_join)-fine,180); pickup fine.nib;
+ lft x@0r=tiny.lft x$l; y@0=y$'';
+ pos@1(vair,90); pos@@'(x@@r-x@@l+tiny,0); z@@'=z@@;
+ x@1=.5[lft x@0r,lft x@@'l]; bot y@1l=-oo;
+ (x@,y@1r)=whatever[z@1l,z@0r]; x@1r:=x@;
+ filldraw stroke z@0e{down}...{left}z@1e
+ &{{interim superness:=hein_super; super_arc.e(@1,@@')}}; % arch
+ pickup tiny.nib; filldraw stroke z@@e--z$$e; % right stem
+ labels(@0); penlabels(@1); enddef;
+
+def raised_h_stroke(suffix $,@,@@,$$) =
+ penpos$$(x@@r-x@@l,0); x$$=x@@; y$$=.45bar_height;
+ y@@=1/3[bar_height,x_height];
+ penpos$''(x$r-x$l,0); x$''=x$; y$''=1/8[bar_height,x_height];
+ filldraw stroke z$''e--z$e; % thicken the lower left stem
+ penpos@0(min(rt x$r-lft x$l,thin_join)-fine,180); pickup fine.nib;
+ rt x@0l=tiny.rt x$r; y@0=y$'';
+ pos@1(vair,90); pos@@'(x@@r-x@@l+tiny,0); z@@'=z@@;
+ x@1=.5[rt x@0l,rt x@@'r]; top y@1r=x_height+oo;
+ (x@,y@1l)=whatever[z@1r,z@0l]; x@1l:=x@;
+ filldraw stroke z@0e{up}...{right}z@1e
+ &{{interim superness:=hein_super; super_arc.e(@1,@@')}}; % arch
+ pickup tiny.nib; filldraw stroke z@@e--z$$e; % right stem
+ labels(@0); penlabels(@1); enddef;
+
+vardef turned_special_diag_end(suffix $$,$,@,@@) = % for top middle of turned w
+ if x@l<=x$: diag_end($$r,$r,1,1,@l,@@l)
+ else: z0=whatever[z$$l,z$l]=whatever[z@l,z@@l];
+ diag_end($$r,$r,1,1,$l,0)--z0 fi enddef;
+
+def CT(expr $, @) = % Computer modern or Times Roman?
+ if Times_Compat: @ else: $ fi enddef;
+
+% Redefinition for Times_Compat.
+def f_stroke(suffix $,$$,@,left_serif,right_serif)(expr left_jut,right_jut)=
+ pickup tiny.nib; bot y$=0;
+ penpos@0(x$r-x$l,0); x@0l=x$l; top y@0=x_height;
+ filldraw stroke z$e--z@0e; % stem
+ pickup fine.nib; pos@0'(x$r-x$l-(hround stem_corr)+tiny,180);
+ y@0'=y@0; lft x@0'r=tiny.lft x$l;
+ penpos@1(x@0'l-x@0'r,180); x@1=x@0';
+ y@1+.5vair=if Times_Compat:.33 else:.5 fi[x_height,h];
+ pos@2(vair,90); top y@2r=h+oo;
+ if serifs: x@2=.6[x@1,x$$r]; (x@,y@2r)=whatever[z@2l,z@1l];
+ x@2r:=min(x@,.5[x@2,x$$r]); pos@3(hair,0); bulb(@2,@3,$$); % bulb
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2); % arc
+ dish_serif($,@0,left_serif,1/3,left_jut,right_serif,1/3,right_jut); % serif
+ else: x@2=.6[x@1,x$$]; y@1l:=1/3[y@1l,y@2l];
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2)
+ & term.e(@2,$$,right,.9,4); fi % arc and terminal
+ penlabels(@0,@1,@2); enddef;
+
+def thin_hair = if hair# > 1.5u#: hround(.6hair) else: hair fi enddef;
+
+def side_gap = if Times_Compat: 2.4u else: 2.5u fi enddef;
+
+% end of tipabase.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipabs10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipabs10.mf
new file mode 100644
index 00000000000..9cef2692dcd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipabs10.mf
@@ -0,0 +1,92 @@
+% tipabs10.mf: TIPA Bold Extended Slanted Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPABS"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23/36pt#;
+width_adj#:=11/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=7/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=41/36pt#;
+curve#:=46/36pt#;
+ess#:=38/36pt#;
+flare#:=45/36pt#;
+dot_size#:=56/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=51/36pt#;
+cap_curve#:=55/36pt#;
+cap_ess#:=53/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=1/36pt#;
+bracket#:=10/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=39/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=17/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=3/36pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=18/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipabx10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipabx10.mf
new file mode 100644
index 00000000000..580e38427c4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipabx10.mf
@@ -0,0 +1,92 @@
+% tipabx10.mf: TIPA Bold Extended Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPABX"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23/36pt#;
+width_adj#:=11/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=7/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=41/36pt#;
+curve#:=46/36pt#;
+ess#:=38/36pt#;
+flare#:=45/36pt#;
+dot_size#:=56/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=51/36pt#;
+cap_curve#:=55/36pt#;
+cap_ess#:=53/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=1/36pt#;
+bracket#:=10/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=39/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=17/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=3/36pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=18/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipabx12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipabx12.mf
new file mode 100644
index 00000000000..394a6d4937a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipabx12.mf
@@ -0,0 +1,92 @@
+% tipabx12.mf: TIPA Bold Extended Roman 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPABX"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=27/36pt#;
+width_adj#:=13/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=8/36pt#;
+letter_fit#:=0pt#;
+body_height#:=324/36pt#;
+asc_height#:=300/36pt#;
+cap_height#:=296.4/36pt#;
+fig_height#:=278.4/36pt#;
+x_height#:=192/36pt#;
+math_axis#:=108/36pt#;
+bar_height#:=102/36pt#;
+comma_depth#:=84/36pt#;
+desc_depth#:=84/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10.5/36pt#;
+hair#:=18.3/36pt#;
+stem#:=47/36pt#;
+curve#:=52/36pt#;
+ess#:=44/36pt#;
+flare#:=51/36pt#;
+dot_size#:=62/36pt#;
+cap_hair#:=20/36pt#;
+cap_stem#:=57/36pt#;
+cap_curve#:=61/36pt#;
+cap_ess#:=59/36pt#;
+rule_thickness#:=.66pt#;
+dish#:=1/36pt#;
+bracket#:=12/36pt#;
+jut#:=30/36pt#;
+cap_jut#:=46/36pt#;
+beak_jut#:=12.4/36pt#;
+beak#:=84/36pt#;
+vair#:=14.3/36pt#;
+notch_cut#:=12pt#;
+bar#:=18.5/36pt#;
+slab#:=18.5/36pt#;
+cap_bar#:=18.5/36pt#;
+cap_band#:=18.5/36pt#;
+cap_notch_cut#:=12pt#;
+serif_drop#:=3.6/36pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=5/36pt#;
+apex_o#:=4/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.4;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=21.13/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipabx8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipabx8.mf
new file mode 100644
index 00000000000..f0a777186ae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipabx8.mf
@@ -0,0 +1,92 @@
+% tipabx8.mf: TIPA Bold Extended Roman 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPABX"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=19.6/36pt#;
+width_adj#:=9.4/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5.4/36pt#;
+letter_fit#:=0pt#;
+body_height#:=216/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197.6/36pt#;
+fig_height#:=185.6/36pt#;
+x_height#:=128/36pt#;
+math_axis#:=72/36pt#;
+bar_height#:=67/36pt#;
+comma_depth#:=56/36pt#;
+desc_depth#:=56/36pt#;
+crisp#:=0pt#;
+tiny#:=12/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=16.2/36pt#;
+stem#:=35/36pt#;
+curve#:=39/36pt#;
+ess#:=32/36pt#;
+flare#:=39/36pt#;
+dot_size#:=46/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=43/36pt#;
+cap_curve#:=46/36pt#;
+cap_ess#:=43/36pt#;
+rule_thickness#:=.54pt#;
+dish#:=1/36pt#;
+bracket#:=8/36pt#;
+jut#:=19/36pt#;
+cap_jut#:=31/36pt#;
+beak_jut#:=9.4/36pt#;
+beak#:=55/36pt#;
+vair#:=12/36pt#;
+notch_cut#:=8pt#;
+bar#:=15/36pt#;
+slab#:=15/36pt#;
+cap_bar#:=15/36pt#;
+cap_band#:=15/36pt#;
+cap_notch_cut#:=8pt#;
+serif_drop#:=2.4/36pt#;
+stem_corr#:=1.8/36pt#;
+vair_corr#:=1.3/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.9;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.34/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipabx9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipabx9.mf
new file mode 100644
index 00000000000..513c9216667
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipabx9.mf
@@ -0,0 +1,92 @@
+% tipabx9.mf: TIPA Bold Extended Roman 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPABX"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=21.3/36pt#;
+width_adj#:=10.2/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=6.2/36pt#;
+letter_fit#:=0pt#;
+body_height#:=243/36pt#;
+asc_height#:=225/36pt#;
+cap_height#:=222.3/36pt#;
+fig_height#:=208.8/36pt#;
+x_height#:=144/36pt#;
+math_axis#:=81/36pt#;
+bar_height#:=76/36pt#;
+comma_depth#:=63/36pt#;
+desc_depth#:=63/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=16.6/36pt#;
+stem#:=38/36pt#;
+curve#:=43/36pt#;
+ess#:=35/36pt#;
+flare#:=42/36pt#;
+dot_size#:=51/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=47/36pt#;
+cap_curve#:=51/36pt#;
+cap_ess#:=48/36pt#;
+rule_thickness#:=.57pt#;
+dish#:=1/36pt#;
+bracket#:=9/36pt#;
+jut#:=22/36pt#;
+cap_jut#:=35/36pt#;
+beak_jut#:=10.2/36pt#;
+beak#:=63/36pt#;
+vair#:=12.5/36pt#;
+notch_cut#:=9pt#;
+bar#:=16/36pt#;
+slab#:=16/36pt#;
+cap_bar#:=16/36pt#;
+cap_band#:=16/36pt#;
+cap_notch_cut#:=9pt#;
+serif_drop#:=2.7/36pt#;
+stem_corr#:=1.9/36pt#;
+vair_corr#:=1.4/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.7;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=16.67/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipadiac.mf b/Master/texmf-dist/fonts/source/public/tipa/tipadiac.mf
new file mode 100644
index 00000000000..aa0343d3099
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipadiac.mf
@@ -0,0 +1,806 @@
+% tipadiac.mf: TIPA accents and diacritics
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This font is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+numeric ipacode;
+ipacode := -1;
+
+cmchar "Grave accent";
+beginchar(incr ipacode,9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Acute accent";
+beginchar(incr ipacode,9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Circumflex (hat) accent";
+beginchar(incr ipacode,9u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(CT(.5,.6)[vair,curve],90); top y2r=h; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Tilde (squiggle) accent";
+beginchar(incr ipacode,9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Umlaut (double dot) accent";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(incr ipacode,9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Double acute (Long Hungarian umlaut) accent";
+beginchar(incr ipacode,9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-1.5u); x2=2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-1.5u); lft x4l=hround(.5w+u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+cmchar "Scandinavian circle accent";
+beginchar(incr ipacode,13u#+4/3(asc_height#-x_height#)*slant,asc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Hachek (check) accent";
+beginchar(incr ipacode,9u#,CT(.75,.9)[x_height#,min(asc_height#,2x_height#)],0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(CT(.5,.6)[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Breve accent";
+beginchar(incr ipacode,9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(incr ipacode,9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(incr ipacode,5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Cedilla accent";
+beginchar(incr ipacode,8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+x1=.5w+.5u;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Polish Hook";
+beginchar(incr ipacode,6u#,0,desc_depth#);
+adjust_fit(if monospace: 1u#,1u# else: 0,0 fi);
+pickup if serifs: crisp.nib; else: fine.nib; fi
+pos1(vair,-60); pos4(vair,135);
+if serifs: pos2(stem,10);pos3(max(.7stem,hair),80);
+else: pos2(vair,10);pos3(vair,80); fi
+x1-u=x4-2u=.5w; y1=0; y2l=y4r=-3/5d; bot y3l=-d-oo;
+x3r=.7[x4r,x2r]; x2l=u;
+if serifs: filldraw circ_stroke z1e{(-3,-1)}...{down}z2e...
+ {right}z3e...{(1,1)}z4e;
+else: filldraw stroke z1e{(-3,-1)}...{down}z2e...{right}z3e...{(1,1)}z4e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Double Grave Accent";
+beginchar(incr ipacode,9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+x3-x1=x4-x2=hround 3u; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x1-.5stem=hround(1.5u); x4=w-2.5u;
+ y1+.5stem=h; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ lft x1l=hround(1.5u); rt x2r=hround(.5w-u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+cmchar "Grave Accent (under)";
+beginchar(incr ipacode,9u#,asc_height#,0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y2+.5stem=h+eps; y1=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y2=h; bot y1=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Acute Accent (under)";
+beginchar(incr ipacode,9u#,asc_height#,0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y2+.5stem=h+eps; y1=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y2=h; bot y1=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Subscript Arch";
+beginchar(incr ipacode,9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,90); x2=.5w;
+bot y1=bot y3=vround max(x_height+tiny,1/3[x_height,h]-.5mid_thickness);
+top y2r=h-o; lft x1r=w-rt x3r=hround(2u-.5vair);
+filldraw stroke z1e{up}...z2e{right}...{down}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+def subtop = -hround(4/7desc_depth) enddef;
+
+cmchar "Subscript Bridge";
+beginchar(incr ipacode,9u#,0,1.36desc_depth#+.5vair#);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ lft x1=lft x2=hround(.5w-2.5u); x3=x4=w-x1;
+ top y1=top y3=subtop; bot y2=-d; y2=y4;
+ draw z2--z1--z3--z4;
+else: pickup crisp.nib;
+ pos1(vair,0); pos2(vair,0); pos2'(vair,90);
+ pos3(vair,0); pos3'(vair,90); pos4(vair,0);
+ lft x1l=lft x2l=hround(.5w-2.5u-.5vair); x3=x4=w-x1; x2l=x2'; x3r=x3';
+ top y2'r=subtop; bot y1=bot y4=-d; y2=y3=y2'r=y3'r;
+ filldraw stroke z1e--z2e;
+ filldraw stroke z3e--z4e;
+ filldraw stroke z2'e--z3'e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Inverted Subscript Bridge";
+beginchar(incr ipacode,9u#,0,1.36desc_depth#+.5vair#);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ lft x1=lft x2=hround(.5w-2.5u); x3=x4=w-x1;
+ top y1=top y3=subtop; bot y2=-d; y2=y4;
+ draw z1--z2--z4--z3;
+else: pickup crisp.nib;
+ pos1(vair,0); pos2(vair,0); pos2'(vair,90);
+ pos3(vair,0); pos3'(vair,90); pos4(vair,0);
+ lft x1l=lft x2l=hround(.5w-2.5u-.5vair); x3=x4=w-x1; x2l=x2'; x3r=x3';
+ top y1=top y4=subtop; bot y2'l=-d; y2=y3=y2'l=y3'l;
+ filldraw stroke z1e--z2e;
+ filldraw stroke z3e--z4e;
+ filldraw stroke z2'e--z3'e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Subscript Square";
+beginchar(incr ipacode,9u#,0,1.36desc_depth#+vair#);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ lft x1=lft x2=hround(.5w-2.5u); x3=x4=w-x1;
+ top y1=top y3=subtop; bot y2=-d; y2=y4;
+ draw z1--z2--z4--z3--z1;
+else: pickup crisp.nib;
+ pos1(vair,0); pos1'(vair,90); pos2(vair,0); pos2'(vair,90);
+ pos3(vair,0); pos3'(vair,90); pos4(vair,0); pos4'(vair,90);
+ lft x1l=lft x2l=hround(.5w-2.5u-.5vair); x3=x4=w-x1;
+ x2l=x1'=x2'; x3r=x3'=x4';
+ top y1'r=subtop; bot y2'l=-d; y2=y3=y2'l=y3'l; y1=y1'r=y4=y4'r;
+ filldraw stroke z1e--z2e;
+ filldraw stroke z3e--z4e;
+ filldraw stroke z1'e--z4'e;
+ filldraw stroke z2'e--z3'e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Subscript Right Half-ring";
+beginchar(incr ipacode,6u#,.5x_height#+vair#,0);
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+autorounded;
+if serifs: pickup diacritic.nib;
+ rt x2=hround(w-1.75u)+eps; x1=x3=w-x2;
+ bot y3=-d; y2=.5[y1,y3]; top y1=h;
+ draw z1{right}...z2{down}...z3{left};
+else: pickup crisp.nib;
+ pos1(vair,90); pos2(vair,0); pos3(vair,-90);
+ rt x2r=hround(w-2u+.5vair)+eps; lft x1=lft x3=hround(w-rt x2r+.3vair);
+ bot y3r=-d; y2=.5[y1,y3]; top y1r=h;
+ filldraw stroke z1e{right}...z2e{down}...z3e{left}; fi
+penlabels(1,2,3); endchar;
+
+cmchar "Subscript Left Half-ring";
+beginchar(incr ipacode,6u#,.5x_height#+vair#,0);
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+autorounded;
+if serifs: pickup diacritic.nib;
+ lft x2=hround 1.75u-eps; x1=x3=w-x2;
+ bot y3=-d; y2=.5[y1,y3]; top y1=h;
+ draw z1{left}...z2{down}...z3{right};
+else: pickup crisp.nib;
+ pos1(vair,-90); pos2(vair,0); pos3(vair,90);
+ lft x2l=hround(2u-.5vair)-eps; rt x1=rt x3=hround(w-lft x2l-.3vair);
+ bot y3l=-d; y2=.5[y1,y3]; top y1l=h;
+ filldraw stroke z1e{left}...z2e{down}...z3e{right}; fi
+penlabels(1,2,3); endchar;
+
+cmchar "Subscript W";
+beginchar(incr ipacode,9u#,0,1.4desc_depth#+.5vair#);
+adjust_fit(0,0);
+if serifs: pickup fine.nib;
+ numeric hbreadth; hbreadth=max(diacritic,hair);
+ pos2(vair,-210); pos3(hbreadth,-90); pos4(vair,10);
+ pos6(vair,170); pos7(hbreadth,270); pos8(vair,30);
+ lft x2r=hround 1.5u; top y2=top y8=subtop; y4=y6=y2-vair;
+ bot y3r=bot y7r=-d;
+ x3=.4[x2,x4]; x7=w-x3; x8=w-x2; x4=x6=good.x .5w;
+ filldraw circ_stroke z2e{(-1,-2)}...z3e{right}...{(-1,5)}z4e;
+ filldraw circ_stroke z8e{(1,-2)}...z7e{left}...{(1,5)}z6e;
+else: pickup crisp.nib;
+ pos2(vair,-210); pos3(vair,-90); pos4(vair,0);
+ pos6(vair,180); pos7(vair,270); pos8(vair,30);
+ lft x2r=hround(1.5u-.25vair); top y2=top y8=subtop; y4=y6=y2-vair;
+ bot y3r=bot y7r=-d;
+ x3=.4[x2,x4]; x7=w-x3; x8=w-x2; x4=x6=good.x .5w;
+ filldraw circ_stroke z4e{down}...z3e{left}...{(1,2)}z2e;
+ filldraw circ_stroke z6e{down}...z7e{right}...{(-1,2)}z8e; fi
+penlabels(2,3,4,6,7,8); endchar;
+
+cmchar "Seagull";
+beginchar(incr ipacode,9u#,0,1.2desc_depth#+.5vair#);
+adjust_fit(0,0);
+if serifs: pickup fine.nib;
+ numeric hbreadth; hbreadth=max(diacritic,hair);
+ pos1(vair,160); pos2(hbreadth,90); pos3(vair,0);
+ pos4(hbreadth,-90); pos5(vair,-160);
+ x1=w-x5=1.2u; x3=.5w; x2=w-x4=.5[x1,x3];
+ top y2r=top y4l=subtop+oo; bot y3=-d; bot y1=bot y5=.1[y3,y2];
+ filldraw stroke z1e{(1,4)}...{right}z2e...{down}z3e;
+ filldraw stroke z3e{up}...{right}z4e...{(1,-4)}z5e;
+else: pickup crisp.nib;
+ pos1(vair,150); pos2(vair,90); pos3(vair,0);
+ pos4(vair,-90); pos5(vair,-150);
+ x1=w-x5=1.2u; x3=.5w; x2=w-x4=.5[x1,x3];
+ top y2r=top y4l=subtop+oo; bot y3=-d+.5vair;
+ bot y1l=bot y5r=0[y3,y2]-.5vair;
+ filldraw circ_stroke z3e{up}...{left}z2e...{(-1,-5)}z1e;
+ filldraw circ_stroke z3e{up}...{right}z4e...{(1,-5)}z5e; fi
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Over-cross";
+beginchar(incr ipacode,9u#,asc_height#,0);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ lft x1=lft x2=hround(.5w-2.5u); x3=x4=w-x1;
+ top y1=top y3=h-o; bot y2=bot y4=.2[x_height,h];
+ draw z1--z4; draw z2--z3;
+else: pickup crisp.nib;
+ pos1(vair,65); pos2(vair,115); pos3(vair,115); pos4(vair,65);
+ lft x1l=lft x2r=hround(.5w-2.5u-.25vair); x3=x4=w-x1;
+ top y1r=top y3r=h-o; bot y2l=bot y4l=.2[x_height,h]-.6vair;
+ filldraw stroke z1e--z4e; filldraw stroke z2e--z3e; fi
+penlabels(1,2,3,4); endchar;
+
+ipacode:=ipacode+2; % dotless i and j come here;
+
+cmchar "Subscript Plus";
+beginchar(incr ipacode,8u#,4vu#+vair#,0);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ top y3=h; bot y4=0; x3=x4=good.x .5w;
+ lft x1=hround(.5(w-(top y3-bot y4))); x2=w-x1; y1=y2=good.y .5[y3,y4];
+ draw z1--z2; draw z3--z4;
+else: pickup crisp.nib;
+ pos1(vair,90); pos2(vair,90); pos3(vair,0); pos4(vair,0);
+ top y3=h; bot y4=0;
+ lft x3l=lft x4l=hround(.5w-.5vair);
+ lft x1=hround(.5(w-(top y3-bot y4))); x2=w-x1;
+ top y1r=top y2r=vround(.5[y3,y4]+.5vair);
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Raising Sign";
+beginchar(incr ipacode,8u#,4vu#+vair#,0);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ x1=w-x2; x3=x4=good.x(.5[x1,x2]); x2-x1=4u;
+ y1=y2=y4; top y3=h; y4=good.y(y3-3vu);
+ draw z1--z2; draw z3--z4;
+else: pickup crisp.nib;
+ pos1(vair,90); pos2(vair,90); pos3(vair,0); pos4(vair,0);
+ x1=w-x2; lft x1=hround(2u-.25vair); lft x3l=lft x4l=hround(.5w-.5vair);
+ y1l=y2l=y4; top y3=h; bot y4=vround(y3-3vu-.5vair);
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Lowering Sign";
+beginchar(incr ipacode,8u#,4vu#+vair#,0);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ x1=w-x2; x3=x4=good.x(.5[x1,x2]); x2-x1=4u;
+ top y1=h; y1=y2=y3; y4=vround(y3-3vu);
+ draw z1--z2; draw z3--z4;
+else: pickup crisp.nib;
+ pos1(vair,90); pos2(vair,90); pos3(vair,0); pos4(vair,0);
+ x1=w-x2; lft x1=hround(2u-.25vair); lft x3l=lft x4l=hround(.5w-.5vair);
+ y1r=y2r=y3; top y3=h; bot y4=vround(y3-3vu-.5vair);
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Advancing Sign";
+beginchar(incr ipacode,8u#,4vu#+vair#,0);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ x2=x3=x4=good.x(.5w+u); x1=good.x(x2-3u);
+ top y3=h; bot y4=0; y1=y2=good.y(.5[y3,y4]);
+ draw z1--z2; draw z3--z4;
+else: pickup crisp.nib;
+ pos1(vair,90); pos2(vair,90); pos3(vair,0); pos4(vair,0);
+ lft x1=hround 2u; rt x2=rt x3r=rt x4r=hround(w-3u+.5vair);
+ top y3=h; bot y4=vround(y3-4vu-.5vair);
+ top y1r=top y2r=vround(.5[y3,y4]+.5vair);
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Retracting Sign";
+beginchar(incr ipacode,8u#,4vu#+vair#,0);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ x1=x3=x4=good.x(.5w-u); x2=good.x(x1+3u);
+ top y3=h; bot y4=0; y1=y2=good.y(.5[y3,y4]);
+ draw z1--z2; draw z3--z4;
+else: pickup crisp.nib;
+ pos1(vair,90); pos2(vair,90); pos3(vair,0); pos4(vair,0);
+ rt x1=hround(w-2u); lft x2=lft x3l=lft x4l=hround(3u-.5vair);
+ top y3=h; bot y4=vround(y3-4vu-.5vair);
+ top y1r=top y2r=vround(.5[y3,y4]+.5vair);
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Vertical Stroke (Superior)";
+beginchar(oct"042",4u#,asc_height#,0);
+adjust_fit(0,0);
+if serifs: pickup tiny.nib;
+ pos1(diacr,0); pos2(diacr,0);
+ lft x1l=lft x2l=hround(.5w-.5diacr);
+ top y1=h; bot y2=vround(top y1-4vu);
+ filldraw stroke z1e--z2e;
+else: pickup crisp.nib;
+ pos1(vair,0); pos2(vair,0);
+ lft x1l=lft x2l=hround(.5w-.5vair);
+ top y1=h; bot y2=vround(top y1-4vu);
+ filldraw stroke z1e--z2e; fi
+penlabels(1,2); endchar;
+
+cmchar "Length Mark";
+beginchar(oct"072",5u#,x_height#,0);
+adjust_fit(if monospace: 1u#,1u# else: 0,0 fi);
+pickup if serifs: tiny.nib; else: crisp.nib; fi
+x1=w-x2; x3=.5[x1,x2]; rt x2-lft x1=3u;
+top y1=top y2=h if serifs: +oo fi; top y1-bot y3=.387x_height;
+filldraw z1--z2--z3--cycle;
+x5=w-x6; x4=.5[x5,x6]; rt x6-lft x5=3u;
+bot y5=bot y6=if serifs: -oo else: 0 fi; top y4-bot y5=.387x_height;
+filldraw z4--z5--z6--cycle;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Half-length Mark";
+beginchar(oct"073",5u#,x_height#,0);
+adjust_fit(if monospace: 1u#,1u# else: 0,0 fi);
+pickup if serifs: tiny.nib; else: crisp.nib; fi
+x1=w-x2; x3=.5[x1,x2]; rt x2-lft x1=3u;
+top y1=top y2=h if serifs: +oo fi; top y1-bot y3=.387x_height;
+filldraw z1--z2--z3--cycle;
+penlabels(1,2,3); endchar;
+
+cmchar "Bottom Tie Bar";
+beginchar(oct"074",14u#,v_center(.35x_height#));
+adjust_fit(0,0);
+pickup fine.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+x1-.5hair=hround u; y1+.5hair=vround(h+.5hair); x3=w-x1; y3=y1;
+pos2(light_stem,90); x2=.5w; y2l=good.y -d;
+numeric theta; theta=angle((z2-z1)yscaled 3);
+pos1(hair,90+theta); pos3(hair,90-theta);
+filldraw z1l{dir theta}...z2l...{dir-theta}z3l
+ ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Top Tie Bar";
+beginchar(oct"076",14u#,v_center(.35x_height#));
+adjust_fit(0,0);
+pickup fine.nib;
+numeric light_stem; light_stem=Vround .5[vair,stem];
+x1-.5hair=hround u; y1-.5hair=vround(-d-.5hair); x3=w-x1; y3=y1;
+pos2(light_stem,90); x2=.5w; y2=good.y h;
+numeric theta; theta=angle((z2-z1)yscaled 3);
+pos1(hair,90+theta); pos3(hair,90-theta);
+filldraw z1l{dir theta}...z2l...{dir-theta}z3l
+ ..z3r{-dir-theta}...z2r...{-dir theta}z1r..cycle; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Reversed Apostrophe";
+beginchar(oct"134",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comMA(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comMA(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+cmchar "Corner";
+beginchar(oct"136",5.2u#,asc_height#,0);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ lft x1=hround .2u; rt x2=rt x3=hround(w-1u); top y1=top y2=h-o;
+ top y2-bot y3=vround 4vu;
+ draw z1--z2--z3;
+else: pickup crisp.nib;
+ pos1(vair,90); pos2(vair,90); pos3(vair,0); pos4(vair,0);
+ lft x1=hround .2u; rt x2=rt x3r=rt x4r=hround(w-1u);
+ top y1r=top y2r=top y3=h-o; top y3-bot y4=vround 4vu;
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Open corner";
+beginchar(oct"137",5.2u#,asc_height#,0);
+adjust_fit(0,0);
+if serifs: pickup diacritic.nib;
+ rt x1=hround(w-.2u); lft x2=lft x3=hround 1u; top y1=top y2=h-o;
+ top y2-bot y3=vround 4vu;
+ draw z1--z2--z3;
+else: pickup crisp.nib;
+ pos1(vair,90); pos2(vair,90); pos3(vair,0); pos4(vair,0);
+ rt x1=hround(w-.2u); lft x2=lft x3l=lft x4l=hround 1u;
+ top y1r=top y2r=top y3=h-o; top y3-bot y4=vround 4vu;
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Right-hook (rhoticity)";
+beginchar(oct"176",6u#,x_height#,0);
+adjust_fit(0,if monospace: 2u# else: 0 fi);
+if serifs: pickup tiny.nib;
+ numeric hook_hair; hook_hair=max(vround .6stem, hair);
+ pos3(hook_hair,0); pos4(hook_hair,0); pos5(vair,90); pos6(hair,180);
+ x1=0; top y2=h; rt x6l=vround(w-.75u+.5hair);
+ y1=min(.95x_height,y2-2hook_hair);
+ x2=x4=.36[x1,x6]; x5=.5[x2,x6]; y4=.8[y5,y2]; z3=z2;
+ y5l=bar_height; y6=.5[bar_height,h];
+ pos1(hook_hair,angle(z2-z1)+90); pos2(hook_hair,angle(z2-z1)+90);
+ filldraw circ_stroke z2e--z1e;
+ filldraw circ_stroke z3e--z4e{down}..z5e{right}..{up}z6e;
+else: pickup crisp.nib;
+ pos3(thin_hair,0); pos4(thin_hair,0); pos5(vair,90); pos6(thin_hair,180);
+ x1=0; top y2=h; rt x6l=vround(w-.75u+.5hair);
+ y1=min(.95x_height,y2-2vair);
+ x2=x4=.36[x1,x6]; x5=.5[x2,x6]; y4=.8[y5,y2]; z3=z2;
+ y5l=bar_height; y6=.5[bar_height,h];
+ pos1(vair,angle(z2-z1)+90); pos2(vair,angle(z2-z1)+90);
+ filldraw circ_stroke z2e--z1e;
+ filldraw circ_stroke z3e--z4e{down}..z5e{right}..{up}z6e; fi
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Vertical Stroke (Inferior)";
+beginchar(oct"177",4u#,4vu#-desc_depth#,desc_depth#);
+adjust_fit(if monospace: 2u#,2u# else: 0,0 fi);
+if serifs: pickup tiny.nib;
+ pos1(diacr,0); pos2(diacr,0);
+ lft x1l=lft x2l=hround(.5w-.5diacr);
+ bot y2=-d; top y1=h;
+ filldraw stroke z1e--z2e;
+else: pickup crisp.nib;
+ pos1(vair,0); pos2(vair,0);
+ lft x1l=lft x2l=hround(.5w-.5vair);
+ bot y2=-d; top y1=h;
+ filldraw stroke z1e--z2e; fi
+penlabels(1,2); endchar;
+
+cmchar "Hooktop";
+beginchar(oct"043",4u#,.9asc_height#,0);
+italcorr h#*slant+1.5u#;
+adjust_fit(if monospace: 2u#,2u# else: 0,0 fi);
+if serifs: pickup tiny.nib;
+ pos1(diacr,0); pos2(diacr,0);
+ lft x1l=lft x2l=hround(.5w-.5diacr); y1+.5flare=y2=x_height;
+ filldraw stroke z1e--z2e;
+ hooktop(2,3,4,5,diacr,hround(x1+3.25u),h+.5vair,.88,.5,1/3);
+else: pickup fine.nib;
+ pos1(vair,0); pos2(vair,0);
+ lft x1l=lft x2l=hround(.5w-.5vair); y1+.5flare=y2=x_height;
+ filldraw stroke z1e--z2e;
+ hooktop(2,3,4,5,vair,hround(x1+3.25u),h+.5vair,5/6,.5,1/3); fi
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Right-tail";
+beginchar(oct"044",4u#,0,desc_depth#);
+adjust_fit(if monospace: 2u#,2u# else: 0,0 fi);
+if serifs: pickup tiny.nib;
+ pos1(diacr,0); lft x1l=hround(.5w-.5diacr); y1=oo;
+ right_tail(1,2,3,4,diacr,hround(x1+3.25u),.9,.5,.6);
+else: pickup fine.nib;
+ pos1(vair,0); lft x1l=hround(.5w-.5vair); y1=oo;
+ right_tail(1,2,3,4,vair,hround(x1+3.25u),.85,.5,.5); fi
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Palatalization Hook";
+beginchar(oct"045",4u#,0,desc_depth#);
+adjust_fit(if monospace: 2u#,2u# else: 0,0 fi);
+if serifs: pickup tiny.nib;
+ pos1(diacr,0); lft x1l=hround(.5w-.5diacr); y1=oo;
+ left_tail(1,2,3,4,diacr,hround(x1-3.25u));
+else: pickup fine.nib;
+ pos1(vair,0); lft x1l=hround(.5w-.5vair); y1=oo;
+ left_tail(1,2,3,4,vair,hround(x1-3.25u)); fi
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Superimposed Tilde";
+beginchar(oct"046",10u#,.5[asc_height#,body_height#],0);
+big_tilde; endchar;
+
+cmchar "Vertical Bar Accent";
+beginchar(oct"234",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1=x2=.5w;
+ top y1=h+o+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ pos1(stem,0); pos2(hair,0);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0); x1=x2=.5w;
+ top y1=h+o; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Double Vertical Bar Accent";
+beginchar(oct"235",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+x1=x2; x3=x4; y3=y1; y4=y2;
+if serifs: pickup crisp.nib; x1=hround(3.8u-.5stem); x3=w-x1;
+ top y1=h+o+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ pos3(stem,theta); pos4(hair,theta);
+ filldraw circ_stroke z1e--z2e; % left diagonal
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0); x1=hround(3.8u-.5stem); x3=w-x1;
+ top y1=h+o; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; % left diagonal
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+cmchar "Grave Dot Accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"236",9u#,min(asc_height#,2x_height#),0);
+define_whole_blacker_pixels(dot_diam);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 1.5u; x2=.45[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w-.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+pickup tiny.nib; pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x4=.7w; y4=.45[bot y2,top y1];
+y3=.5[y4l,y4r]; dot(3,4); % dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Acute Dot Accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"237",9u#,min(asc_height#,2x_height#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-if serifs: 1 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-1.5u); x2=.45[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w+.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+pickup tiny.nib; pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x4=.3w; y4=.45[bot y2,top y1];
+y3=.5[y4l,y4r]; dot(3,4); % dot
+penlabels(1,2); endchar;
+
+cmchar "Celtic palatalization mark";
+beginchar(oct"040",6u#,asc_height#,0);
+italcorr h#*slant;
+adjust_fit(if monospace: 1u#,1u# else: 0,0 fi);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-.5u);
+ x2=hround 1u;
+ y1+.5stem=h+eps; y2=.9x_height;
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-.5u); lft x2l=hround 1u;
+ top y1=h; bot y2=vround .9x_height;
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Leftward Pointer";
+beginchar(oct"275",6u#,asc_height#,0);
+adjust_fit(if monospace: 1u#,1u# else: 0,0 fi);
+pickup diacritic.nib;
+lft x2=hround .5u-eps; x1=x3=w-x2;
+y1-y2=y2-y3; y2=.65[x_height,h]; y1=h;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Rightward Pointer";
+beginchar(oct"276",6u#,asc_height#,0);
+adjust_fit(if monospace: 1u#,1u# else: 0,0 fi);
+pickup diacritic.nib;
+rt x2=hround(w-.5u)+eps; x1=x3=w-x2;
+y1-y2=y2-y3; y2=.65[x_height,h]; y1=h;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+% This symbol looks like a pipe but is used as the vertical line of tone bars.
+cmchar "Tone bar";
+beginchar(oct"277",CT(5u#,5.56u#),asc_height#,0);
+italcorr asc_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0);
+if serifs: pickup rule.nib;
+ x1=x2=good.x .5w; y1=h; y2=-d;
+ draw z1--z2; % stem
+ labels(1,2);
+else: pickup fine.nib;
+ pos1(hair,0); pos2(hair,0);
+ lft x1l = lft x2l = hround(.5w-.5hair);
+ top y1=h+o; bot y2=-d-o;
+ filldraw stroke z1e--z2e;
+ penlabels(1,2); fi
+endchar;
+
+
+% end of tipadiac.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipaextr.mf b/Master/texmf-dist/fonts/source/public/tipa/tipaextr.mf
new file mode 100644
index 00000000000..6f61819449f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipaextr.mf
@@ -0,0 +1,1909 @@
+% tipaextr.mf: TIPX Symbols --- a supplement for TIPA.
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% (Most of the symbols are now obsolete and not adopted in
+% the T3 encoding for TIPA.)
+%
+
+%%%%% Adaptations for Times_Compat are not yet complete.
+
+numeric ipacode; ipacode := -1;
+
+cmchar "Reversed Polish hook";
+beginchar(incr ipacode,6u#,0,desc_depth#);
+adjust_fit(if monospace: 1u#,1u# else: 0,0 fi);
+pickup if serifs: crisp.nib; else: fine.nib; fi
+pos1(vair,-120); pos4(vair,45);
+if serifs: pos2(stem,170);pos3(max(.7stem,hair),100);
+else: pos2(vair,170);pos3(vair,100); fi
+x1+u=x4+2u=.5w; y1=0; y2l=y4r=-3/5d; bot y3l=-d-oo;
+x3r=.7[x4r,x2r]; x2l=w-u;
+if serifs: filldraw circ_stroke z1e{(3,-1)}...{down}z2e
+ ...{left}z3e...{(-1,1)}z4e;
+else: filldraw stroke z1e{(3,-1)}...{down}z2e...{left}z3e...{(-1,1)}z4e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Right-tail (long)";
+beginchar(incr ipacode,4u#,.2x_height#,desc_depth#);
+adjust_fit(if monospace: 2u#,2u# else: 0,0 fi);
+if serifs: pickup tiny.nib;
+ pos1(diacr,0); lft x1l=hround(.5w-.5diacr); y1=h+oo;
+ right_tail(1,2,3,4,diacr,hround(x1+3.25u),.9,.5,.6);
+else: pickup fine.nib;
+ pos1(vair,0); lft x1l=hround(.5w-.5vair); y1=h+oo;
+ right_tail(1,2,3,4,vair,hround(x1+3.25u),.85,.5,.5); fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Palatalization hook (long)";
+beginchar(incr ipacode,4u#,.2x_height#,desc_depth#);
+adjust_fit(if monospace: 2u#,2u# else: 0,0 fi);
+if serifs: pickup tiny.nib;
+ pos1(diacr,0); lft x1l=hround(.5w-.5diacr); y1=h+oo;
+ left_tail(1,2,3,4,diacr,hround(x1-3.25u));
+else: pickup fine.nib;
+ pos1(vair,0); lft x1l=hround(.5w-.5vair); y1=h+oo;
+ left_tail(1,2,3,4,vair,hround(x1-3.25u)); fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Palatalization hook (a variety)";
+beginchar(incr ipacode,5u#,.2x_height#,desc_depth#);
+adjust_fit(if monospace: 1.5u#,1.5u# else: 0,0 fi);
+if serifs: pickup tiny.nib;
+ pos1(diacr,0); lft x1l=hround(.5w-.5diacr+.5u); y1=h+oo;
+ pos5(diacr,-90); pos6(diacr,-180); bot y5r=0; y6=.1x_height;
+ x6=0; x5=.5[x1,x6];
+ filldraw stroke z1e..z5e..z6e;
+ left_tail(1,2,3,4,diacr,hround(x1-3.25u));
+else: pickup fine.nib;
+ pos1(vair,0); lft x1l=hround(.5w-.5vair+.5u); y1=h+oo;
+ pos5(vair,-90); pos6(vair,-135); bot y5r=0; y6=.1x_height;
+ x6=0; x5=.5[x1,x6];
+ filldraw stroke z1e..z5e..z6e;
+ left_tail(1,2,3,4,vair,hround(x1-3.25u)); fi
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Superscript rectangle";
+beginchar(incr ipacode,5u#+vair#,asc_height#,0);
+adjust_fit(if monospace: 1u#,1u# else: 0,0 fi);
+if serifs: pickup diacritic.nib;
+ lft x1=lft x2=hround u; x3=x4=w-x1;
+ top y1=top y3=vround(h-oo); bot y2=bot y4=vround x_height;
+ draw z1--z2--z4--z3--cycle;
+else: pickup crisp.nib;
+ pos1(vair,0); pos2(vair,0); pos3(vair,0); pos4(vair,0);
+ lft x1l=lft x2l=hround u; x3=x4=w-x1;
+ top y1=top y3=vround(h-oo); bot y2=bot y4=vround x_height;
+ filldraw stroke z1e--z2e; filldraw stroke z3e--z4e;
+ pos1'(vair,90); pos2'(vair,90); pos3'(vair,90); pos4'(vair,90);
+ lft x1'=lft x3'=hround u; x2'=x4'=w-x1;
+ top y1'r=top y2'r=vround(h-oo); bot y3'l=bot y4'l=vround x_height;
+ filldraw stroke z1'e--z2'e; filldraw stroke z3'e--z4'e; fi
+penlabels(1,2,3,4); endchar;
+
+cmchar "Superscript left arrow";
+beginchar(incr ipacode,8u#,asc_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2; bot y4=.15[x_height,asc_height];
+x1+.5rule_thickness=hround(w-.5u); lft x0=hround .5u;
+y3-y0=y0-y4=if monospace:.24 else:.18 fi asc_height+eps;
+x3=x4=x0+if monospace:3u else:2.5u fi+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+% Sources: Principles (1949:17), PSG (1996:231).
+% Is this symbol a horizontal small capital I? I don't know.
+cmchar "Retracting sign (a variety)";
+beginchar(incr ipacode,8u#,x_height#,0);
+adjust_fit(0,0);
+numeric v_thickness;
+v_thickness=if monospace: vair; else: .5[vair,flare]; fi
+pickup fine.nib; pos1(v_thickness,90); pos2(v_thickness,90);
+lft x1=lft x3l=lft x4l=hround u;
+rt x2=rt x5r=rt x6r=hround(w-u);
+top y1r=top y2r=vround(.5h+.5v_thickness);
+filldraw stroke z1e--z2e;
+if serifs:
+ pos3(stem,0); pos4(stem,0); pos5(stem,0); pos6(stem,0);
+ top y3=top y5=top y2r+v_thickness; bot y4=bot y6=bot y2l-v_thickness;
+ filldraw stroke z3e--z4e; filldraw stroke z5e--z6e;
+ x1'=x4r+.2(x2-x1); y1'=y1; pos1'(v_thickness, 90);
+ filldraw z4r{up}..{right}z1'l--z1'r{left}..{up}z3r--cycle;
+ x2'=x6l-.2(x2-x1); y2'=y2; pos2'(v_thickness, 90);
+ filldraw z5l{down}..{left}z2'r--z2'l{right}..{down}z6l--cycle; fi
+penlabels(1,1',2,2',3,4,5,6); endchar;
+
+cmchar "Down full arrow";
+beginchar(incr ipacode,CT(9u#,10u#),asc_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=if monospace:3u else:3u fi+eps;
+y3=y4=y0+if monospace:.24 else:.27 fi asc_height+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Up full arrow";
+beginchar(incr ipacode,CT(9u#,10u#),asc_height#,0);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=-d;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=if monospace:3u else:3u fi+eps;
+y3=y4=y0-if monospace:.24 else:.27 fi asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Subscript right arrow";
+beginchar(incr ipacode,16u#,0,desc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2; x1-.5rule_thickness=hround .5u; rt x0=hround(w-.5u);
+y3-y0=y0-y4=if monospace:.24 else:.18 fi asc_height+eps;
+top y1r=vround -.67d;
+x3=x4=x0-if monospace:3u else:2.5u fi-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ ---z1l..z1r---subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Subscript double arrow";
+beginchar(incr ipacode,10u#,0,desc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(rule_thickness,0); pos4(rule_thickness,0);
+y0=y1=y2; lft x0=hround .1u;
+if monospace: x1+.5rule_thickness=hround(w-.1u) else: x1=.5w fi;
+y3-y0=y0-y4=if monospace:.24 else:.18 fi asc_height+eps;
+top y1r=top y11r=vround -.67d;
+x3=x4=x0+if monospace:3u else:2.5u fi+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ ---z1l..z1r---subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % left arrowhead and stem
+pos11(rule_thickness,90); pos12(rule_thickness,90);
+pos13(rule_thickness,0); pos14(rule_thickness,0);
+y10=y11=y12; rt x10=hround(w-.1u);
+if monospace: x11-.5rule_thickness=hround .1u else: x11=.5w fi;
+y13-y10=y10-y14=if monospace:.24 else:.18 fi asc_height+eps;
+x13=x14=x10-if monospace:3u else:2.5u fi-eps;
+pos15(rule_thickness,angle(z14-z10)); z15l=z10;
+pos16(rule_thickness,angle(z13-z10)); z16l=z10;
+z19=.2[.5[z13,z14],z10];
+numeric t; path p; p=z14l{z19-z14}..z16r;
+t=xpart(p intersectiontimes((0,y12l)--(w,y12l))); x12=xpart point t of p;
+filldraw z10..{z14-z19}z14r--subpath (0,t) of\\(z14l{z19-z14}..z16r)
+ ---z11l..z11r---subpath (t,0) of\\(z13l{z19-z13}..z15r)
+ --z13r{z19-z13}..z10 & cycle; % right arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9,10,11,12,13,14,15,16,19); endchar;
+
+ipacode:=31;
+
+cmchar "Right-hook A";
+beginchar(incr ipacode,CT(9u#,8.88u#),x_height#,desc_depth#);
+if Times_Compat: bh#:=.6x_height#;
+else: bh#:=min(bar_height#,1.14x_height#-bar_height#); fi
+define_pixels(bh);
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi+1u#);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180); pos3(vair,90);
+ lft x1r=hround max(u,if Times_Compat:1.5u else:2.1u fi-.5flare);
+ x3=.5w if Times_Compat:-.25u else:-.5u fi;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-side_gap+.5stem);
+y4=if Times_Compat: .5 else: 1/3 fi[bh,h];
+pos5(stem,0); x5=x4;
+y5=if Times_Compat: max(.45bh,2vair) else: max(.55bh,2vair) fi;
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=if Times_Compat: 1.1 fi bh;
+pos7(hround(curve-2stem_corr),if Times_Compat: 200 else: 180 fi);
+lft x7r=hround max(.5u,1.5u-.5curve);
+if Times_Compat: y7=.3[top y8l,top y6r]; pos8(.6[vair,flare],240); x8l=.5w-1u;
+else: y7=1/3[top y8l,top y6r]; pos8(vair,270); x8l=.5w-.75u; fi
+pos9(thin_join,360); z9l=z5l; bot y8r=-oo;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e &
+ if Times_Compat: z7e{up}...{(35,10)}z6e else:
+ super_arc.e(7,6)fi}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ pickup tiny.nib; x14r=x12r; y14=y12; pos14(diacr,0);
+ right_tail(14,15,16,17,diacr,hround(x14+3.25u),.9,.5,.6);
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ if Times_Compat: y13l:=.05[y12l,y13l]; y13r:=y13l; fi
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; % hook
+ pickup tiny.nib; x14=x13; y14=y13l; pos14(hair,0);
+ right_tail(14,15,16,17,diacr,hround(x14+3.25u),.9,.5,.6); fi
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; % base of stem
+ pickup fine.nib; %x14r=x5r; y14=y10; pos14(vair,0);
+ right_tail(10,15,16,17,shaved_stem,hround(w-.5u+.5hair),.85,.5,.5); fi
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+cmchar "Inverted script A";
+beginchar(incr ipacode,10u#+serif_fit#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-.5u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-side_gap+.5stem'); bot y1=-oo;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,270); pos5(curve,180);
+pos6(vair,90); penpos7(x3r-x3l,360);
+lft x3l=1/3[lft x2,edge]; y3=h-1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; bot y4r=-oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; top y6r=h+oo;
+x7=x3; y7=max(y3,y6+y4-y3-.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{down}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{down}z7e; % bowl
+y0=ypart(((edge,0)--(edge,h))intersectionpoint(z3l{down}...{left}z4l));
+pickup tiny.nib; top y2=h+if serifs:min(oo,serif_drop) else: 0 fi;
+filldraw stroke z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z0'; x8r=x7'r; bot y8=-oo;
+filldraw stroke z7'e--z8e;
+if serifs: inverted_sloped_serif.r(2,0,b,1/3,jut,serif_drop); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "A-O Ligature";
+beginchar(incr ipacode,CT(13u#,14.44u#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=.5h; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5w-.5mfudged.stem); x12=.5[x13,x11];
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12; pos14(vair,270);
+filldraw stroke pulled_arc.e(12,13) & pulled_arc.e(13,14) &
+ pulled_arc.e(14,11) & pulled_arc.e(11,12);
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(mfudged.hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=4u;
+ y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=4.3u; top y1r=vround .82[bar_height,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % left terminal
+pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
+pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
+filldraw stroke super_arc.e(3,4)&z4e--z5e; % arc and stem
+pos6(.6[thin_join,vair],90); x6=x4; bot y6=if Times_Compat: .9 fi bar_height;
+pos7(left_curve,180);
+lft x7r=hround max(.5u,1.5u-.5left_curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=3.75u; bot y8r=-oo;
+pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
+(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if y9<y5: filldraw stroke z5e{down}..{down}z9e; fi % link (usually hidden)
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+cmchar "Left-hook four";
+beginchar(incr ipacode,CT(9u#,10u#),fig_height#,desc_depth#);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_stem, light_stem', diag_stem, alpha, cut; cut=.75notch_cut;
+light_stem=hround .4[fudged.stem,fudged.cap_stem];
+light_stem'=hround max(tiny.breadth,light_stem-2stem_corr);
+diag_stem=max(tiny.breadth,.4[vair,fudged.hair]);
+pickup crisp.nib; pos5(cap_bar,90); pos6(cap_bar,90);
+lft x5=hround .5u; rt x6=hround(w-.5u);
+top y5r=vround(if serifs: 5/18[slab,h-light_stem]+1
+ else:.35(h-light_stem) fi+.5cap_bar);
+z4l=top lft z5r; y2=y2'=y5=y6; x1r=x2r=hround(w-3u+.5light_stem);
+penpos1(light_stem',0); penpos2(light_stem',0); y1=y3=h+apex_o+apex_oo;
+x3r+apex_corr=x1r; alpha=diag_ratio(1,diag_stem,y3-y4l,x3r-x4l);
+penpos3(alpha*diag_stem,0); penpos4(alpha*diag_stem,0);
+x0=x1l; z0=whatever[z3r,z4r];
+x5'=x5; z5''=z5'+penoffset z4-z3 of currentpen=whatever[z4l,z3l];
+fill diag_end(2r,1r,1,.5,3l,4l)---z5''...lft z5'
+ ---lft z5l -- (x4r,y5l) -- z4r
+ if y0<h-cut:{z3r-z4r}...{up}(x1l-1,h-cut)
+ --(x1l,h-cut) else: -- z0 fi
+ --z2l--z2r--cycle; % diagonal and upper stem
+filldraw stroke z5e--z6e; % bar
+pickup tiny.nib; pos7(light_stem,0); rt x7r=x1r; bot y7=0;
+pos2'(light_stem,0); x2'=x7;
+filldraw stroke z2'e--z7e; % lower stem
+left_tail(7,8,9,10,light_stem,hround(lft x7-3.75u));
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Stretched C (original form)";
+beginchar(incr ipacode,CT(8u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-d-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h-.5d;
+if serifs: pos1(hair,0); pos0(flare,0);
+ if Times_Compat:
+ y1=min(bar_height+.4flare+1.8vair'+2,.8[bar_height,h]-.5flare);
+ else:
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare); fi
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9-d),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5-d); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Curly-tail stretched C";
+beginchar(incr ipacode,CT(9u#,10u#),asc_height#,desc_depth#);
+italcorr asc_height#*slant-1u#;
+adjust_fit(0,0);
+pickup fine.nib; interim superness:=more_super;
+pos2(.6[vair,flare],90); pos5(.6[vair,flare],270);
+x2=x5=.5w; top y2r=vround(h+1.5oo); bot y5r=-d-oo;
+pos3(stem,180); pos4(stem,180);
+lft x3r=lft x4r=hround1.2u; y3=.75h; y4=0;
+pos1(stem,0); rt x1r=hround(w-1.1u); top y1=vround .75h;
+pos6(stem,0); rt x6r=hround(w-1u); y6=.6[-d,y7];
+pos7(.6[vair,flare],90); x7l=.2[x5,x6]; y7=.25h+.5stem-d;
+pos8(stem,160); lft x8r=0; bot y8=-d-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & z3e--z4e & pulled_arc.e(4,5) & pulled_arc.e(5,6);
+filldraw stroke z6e{up}...z7e{left}...{dir250}z8e;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Curly-tail stretched C (original form)";
+beginchar(incr ipacode,CT(8u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-d-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h-.5d;
+if serifs: pos1(hair,0); pos0(flare,0);
+ if Times_Compat:
+ y1=min(bar_height+.4flare+1.8vair'+2,.8[bar_height,h]-.5flare);
+ else:
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare); fi
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(.9w); y5=.35bar_height-d+.25hair;
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{up}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],0); x5r=hround(w-.5u);
+ y5=.37bar_height-d+.25hair;
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & z4e{right}...{up}z5e; fi
+pos6(vair,90); x6l=.3[x4,x5]; y6=.6bar_height+.5vair-d;
+pos8(hair,160); x8=u; bot y8=-d-oo;
+filldraw stroke z5e{up}...z6e{left}...{dir250}z8e;
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+% This shape is found in PSG (1996:38).
+cmchar "Front-hook D";
+beginchar(incr ipacode,10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(3.25u#,serif_fit#);
+d_stroke(true,true,0);
+if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+top y8r=.95x_height; x8=2.7u;
+front_hook(8,9,10,11,1.1stem,50,-2.75u,.4x_height,.05,1/2,.5);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+% This shape is the original shape introduced by Daniel Jones.
+cmchar "Front-hook D (Original)";
+beginchar(incr ipacode,10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(2u#,serif_fit#);
+d_stroke(true,true,0);
+if serifs: pickup tiny.nib;
+ pos8(.5[vair,hair],50); pos9(vair,90); pos10(vair,180); pos11(flare,180);
+ top y8r=.95x_height; x8=2.7u;
+ top y9r=1.1x_height; x9=.5u;
+ y10=.9x_height; x10r=-1.5u;
+ filldraw stroke z8e..{left}z9e; bulb(9,10,11);%arc and bulb
+else: pickup fine.nib;
+ pos8(.5[vair,hair],50); pos9(vair,90); pos10(vair,100);
+ top y8r=.95x_height; x8=2.7u;
+ top y9r=1.1x_height; x9=.5u;
+ y10=.9x_height; x10r=-1.5u;
+ filldraw stroke z8e..z9e{left}..z10e; fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "D-B ligature";
+beginchar(incr ipacode,CT(15u#,15.56u#),asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(0,0);
+numeric w_org; w_org=w; w:=10u if Times_Compat: +.28u fi;
+d_stroke(true,false,.1h); w:=w_org;
+pickup tiny.nib; pos11(stem',0); pos12(stem,0);
+pos10'(stem',0); pos10(stem,0); z10l=z10'l; x10'=x11; x10=x12;
+x11l=x1l; top y11=h;
+numeric edge; edge=rt x12r;
+pickup fine.nib; pos13(if hefty:thin_join else: hair fi,180);
+pos14(vair,90); pos15(curve,0); pos16(vair,-90); penpos17(x13l-x13r,-180);
+rt x13l=max(rt x13l-(lft x13r-tiny.lft x12l),1/3[rt x12,edge]);
+y13=1/8[bar_height,x_height];
+x14l=w-5u+serif_fit+.5u; top y14r=x_height+oo;
+rt x15r=hround min(w-1.35u+.5curve,w-.6u); y15=.5x_height;
+x16l=x14l-.2u; bot y16r=-oo;
+x17=x13; y17=min(y13,y16+y14-y13+.6vair);
+numeric X, X';
+(X,y14r)=whatever[z13l,z14l]; x14r:=min(X,.5[x14,x15r]);
+(X',y16r)=whatever[z17l,z16l]; x16r:=min(X',.5[x16,x15r]);
+filldraw stroke z13e{up}...pulled_arc.e(14,15)&pulled_arc.e(15,16)
+ ...{up}z17e; % bowl
+y10=ypart(((edge,h)--(edge,0))intersectionpoint(z13l{up}...{right}z14l));
+y12=ypart(((edge,h)--(edge,0))intersectionpoint(z16l{left}...{up}z17l));
+pickup tiny.nib; filldraw stroke z10'e--z10e--z12e; % stem
+pickup crisp.nib; pos18(hair,0); pos17'(stem,0);
+z17'=z12; x18l=x17'l; bot y18=0;
+filldraw stroke z17'e--z18e; % point
+penlabels(0,1,2,3,4,5,6,7,10,11,12,13,14,15,16,17,18); endchar;
+
+cmchar "Right-hook E";
+beginchar(incr ipacode,CT(7.25u#+max(.75u#,.5curve#),8.88u#),
+ x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0)-1u#;
+adjust_fit(if monospace: .25u#,.5u# else: 0,1u# fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+if serifs: pickup tiny.nib; z6=z5;
+ pos6(diacr,0); right_tail(6,7,8,9,diacr,hround(x6+3.25u),.9,.5,.6);
+else: pickup fine.nib; x6r=x5r; y6=y5r;
+ pos6(vair,0); right_tail(6,7,8,9,vair,hround(x6+3.25u),.85,.5,.5); fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Right-hook epsilon";
+beginchar(incr ipacode,CT(8.5u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-1.5u#;
+adjust_fit(0,1u#);
+epsilon_stroke(false,3.5u);
+if serifs: numeric bulb_diam;
+ bulb_diam=max(flare-.75(cap_stem-stem),stem);
+ pos0(bulb_diam,0); pos1(hair,0);
+ rt x0r=hround (w-u); y0=min(.9h-.5bulb_diam,.75h+.5bulb_diam);
+ bulb(2,1,0); % upper bulb
+ pos9(bot_thickness,angle(2u,-h));
+else: pos1(hair,70); rt x1r = w-1u; top y1r = .9h;
+ filldraw stroke term.e(2,1,right,1,4);
+ pos9(hair,-70); fi
+rt x9r=hround (w-.75u); top y9=vround .25h-o;
+y9r:=good.y y9r-eps; x9l:=good.x x9l;
+filldraw stroke term.e(8,9,right,1,4); % lower terminal
+if serifs: pickup tiny.nib; x11l=x9l; y11=y9;
+ pos11(diacr,0); right_tail(11,12,13,14,diacr,hround(x11+3.25u),.9,.5,.6);
+else: pickup fine.nib; x11r=x9r; y11=y9r;
+ pos11(vair,0); right_tail(11,12,13,14,vair,hround(x11+3.25u),.85,.5,.5); fi
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+% based on greekl.mf.
+cmchar "Greek gamma";
+beginchar(incr ipacode,10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,180); pos2(vstem+dw,90);
+pos4(stem,0); pos5(vair,-90); pos6(stem,-180); pos7(stem,-180);
+bot y1=.5772156649h; top y2r=h+oo; y4=y6=-.5d;
+bot y5r=-d-o; top y7=h;
+lft x1r=hround(.5u-.5hair); x2=2.5u; rt x4r=hround(w-4.2u); x5=.5[x4,x6];
+rt x4r-lft x6r=hround stem+eps; rt x7l=hround(w-u);
+if x4l<x6l: x4l:=x6l:=x5; fi
+pos3(hair,angle(z4-z2)+90); x3=superness[x2,x4]; y3=superness[y4,y2];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4-z2}
+ ...z4e{down}...{left}z5e; % arc
+filldraw stroke z5e{left}...z6e{up}..{2(x7-x6),y7-y6}z7e; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Front-tail gamma";
+beginchar(incr ipacode,10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,180); pos2(vstem+dw,90); pos5(stem,0); pos5'(stem,-180);
+pos4(stem,0); pos6(stem,-180); pos7(stem,-180);
+bot y1=.5772156649h; top y2r=h+oo; y4=y6=-.5d; top y7=h;
+lft x1r=hround(.5u-.5hair); x2=2.5u; rt x4r=hround(w-3.8u);
+x4=x6; rt x7l=hround(w-u); x5=x5'=x4; y5=y5'=0;
+pos3(hair,angle(z4-z2)+90); x3=superness[x2,x4]; y3=superness[y4,y2];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4-z2}
+ ...{down}z5e; % arc
+filldraw stroke z5'e{up}..{2(x7-x6),y7-y6}z7e; % stem
+left_tail(5,8,9,10,stem,hround(2u-.5hair));
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Back-tail gamma";
+beginchar(incr ipacode,10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,180); pos2(vstem+dw,90); pos5(stem,0); pos5'(stem,-180);
+pos4(stem,0); pos6(stem,-180); pos7(stem,-180);
+bot y1=.5772156649h; top y2r=h+oo; y4=y6=-.5d; top y7=h;
+lft x1r=hround(.5u-.5hair); x2=2.5u; rt x4r=hround(w-4.2u);
+x4=x6; rt x7l=hround(w-u); x5=x5'=x4; y5=y5'=0;
+pos3(hair,angle(z4-z2)+90); x3=superness[x2,x4]; y3=superness[y4,y2];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4-z2}
+ ...{down}z5e; % arc
+filldraw stroke z5'e{up}..{2(x7-x6),y7-y6}z7e; % stem
+right_tail(5,8,9,10,stem,hround(w-u),.88,.5,1/3);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Right-tail hooktop H";
+beginchar(incr ipacode,10u#,asc_height#,desc_depth#);
+italcorr .7[x_height#,asc_height#]*slant-serif_fit#+.5stem#-u#;
+adjust_fit(serif_fit#+stem_shift#,-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=.25[x_height,h]; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+hooktop(1,9,10,11,stem',rt x3r,h,.8,.55,.2);
+if serifs: right_tail(4,5,6,7,stem,hround(w+1u),.88,.5,1/3);
+else: right_tail(4,5,6,7,stem,hround(w+1u),.833,.5,1/3); fi
+penlabels(1,2,3,4,5,6,7,9,10,11); endchar;
+
+cmchar "Heng";
+beginchar(incr ipacode,10u#,asc_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant+.5stem#-1.25u#;
+adjust_fit(serif_fit#+stem_shift#,-stem_shift#-.5u#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+left_tail(4,5,6,7,stem,rt x2r);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+% Moved from tipasym2.mf (2001/11/23 fkr)
+cmchar "Left-hooktop I";
+beginchar(incr ipacode,CT(6u#,6.66u#),x_height#,0);
+italcorr x_height#*slant-2u#;
+adjust_fit(0 if monospace:+1u# fi,serif_fit# if monospace:+1u# fi);
+pickup tiny.nib; pos3(stem,0); x2=x3; bot y3=0;
+x0=.75u; lft x2l = hround(.5w+.5u-.5stem); hook_in(0,1,2);
+filldraw stroke z2e--z3e;
+dish_serif(3,2,a,1/3,jut,b,1/3,jut);
+penlabels(0,1,2,3); endchar;
+
+% The shape of the upper serif differs from the normal Curly-tail J.
+cmchar "Curly-tail J (a variety found in 1996 IPA)";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(incr ipacode,CT(5.5u#,6.66u#),
+ min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+1.5u# fi +.5u#,
+ -2stem_shift# if monospace:+1u# fi +.3u#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: dish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180);
+ pos7(vair,-270); pos8(vair,-270);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6=-.6d;
+ if monospace: lft x6r=0 else: x6r=-.3u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ y7r=y8r=0h; x7=x2l-.5u; x8=w-.5u;
+ filldraw stroke z2e{down}...z5e{left}...z6e{up}...z7e{right}---z8e;
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-180);
+ pos8(vair,-270); pos9(vair,-270);
+ lft x7r=hround -.75u; y7=-.5d;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ bot y8l = bot y9l = vround(-.5vair); x8 = .5[x7,x2]; x9 = w;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e...{right}z8e--z9e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+% Bar postion differs from the normal Hooktop Barred Dotless J.
+cmchar "Hooktop barred dotless J (a variety)";
+beginchar(incr ipacode,CT(6u#,6.66u#),.9asc_height#,desc_depth#);
+italcorr h#*slant+1u#;
+adjust_fit(if monospace: 1.5u#,1.5u# else: 0,0 fi);
+pickup if serifs: tiny.nib; else: fine.nib; fi
+pos1(stem',0); pos2(stem',0); x1=x2=.5w;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+left_tail(2,5,6,7,stem',hround-.75u);
+hooktop(1,8,9,10,stem',hround(w+.75u),h,.84,.5,.4);
+pickup crisp.nib; bot y3l=bot y4l=0; lft x3=x2-2.5u; x4=w-x3;
+pos3(bar,90); pos4(bar,90);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "H-M ligature";
+beginchar(incr ipacode,CT(15u#,15.56u#),asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; % stem, sic
+lft x3l=hround(.5w-.5mfudged.stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)+r-w; fi % change width for better fit
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+% This shape is found in PSG(1996:119).
+cmchar "Front-bar N";
+beginchar(incr ipacode,10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(2u#+serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs:
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+pickup crisp.nib;
+pos5(.8[vair,stem],90);pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround -1.5u; y6=good.y(y5l-beak/2.4)-eps;
+arm(5,6,b,beak_darkness, -.8beak_jut);
+penlabels(1,2,3,4,5,6); endchar;
+
+% Moved from tipasym2.mf (2001/11/23 fkr)
+cmchar "Right leg N";
+beginchar(incr ipacode,10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#-.5u#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+pos5(stem,0); x5=x3; bot y5=-d;
+filldraw stroke z4e--z5e;
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(5,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+% PSG (1996:130). \textbf{(I'm sorry; the codes below are a makeshift.)}
+cmchar "Female sign";
+beginchar(incr ipacode,CT(9u#,10u#),x_height#,desc_depth#);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(rule_thickness,90); penpos3(rule_thickness,-90);
+penpos2(rule_thickness,180); penpos4(rule_thickness,0);
+x2r=hround .8u; x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=.05h; y2=y4=.5[y3,y1];
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos5(rule_thickness,0); penpos6(rule_thickness,0);
+y5=y3; y6=-d-o; x5=x6=.5w; penstroke z5e--z6e;
+penpos7(rule_thickness,90); penpos8(rule_thickness,90);
+y7=y8=.5[y6,y3]; x7=hround 1.5u; x8=w-x7; penstroke z7e--z8e;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+% PSG (1996:131). \textbf{(I'm sorry; the codes below are a makeshift.)}
+cmchar "Uncrossed female sign";
+beginchar(incr ipacode,CT(9u#,10u#),x_height#,desc_depth#);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(rule_thickness,90); penpos3(rule_thickness,-90);
+penpos2(rule_thickness,180); penpos4(rule_thickness,0);
+x2r=hround .8u; x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=.05h; y2=y4=.5[y3,y1];
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos5(rule_thickness,0); penpos6(rule_thickness,0);
+y5=y3; y6=-d-o; x5=x6=.5w; penstroke z5e--z6e;
+penlabels(1,2,3,4,5,6); endchar;
+
+% Moved from tipasym2.mf (2001/11/23 fkr)
+cmchar "Bull's eye (an old version)";
+beginchar(incr ipacode,asc_height#+2(u#+o#),asc_height#,0); autorounded;
+adjust_fit(if monospace:-1u#,-1u# else: 0,0 fi); pickup light_rule.nib;
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+fill fullcircle scaled(dot_size+eps) shifted(.5[z4,z8]); % dot
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Right-hook open O";
+beginchar(incr ipacode,CT(8u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+numeric BH; BH=if Times_Compat:.5613h else: bar_height fi;
+pickup fine.nib; pos2(vair',-90); pos4(vair',90);
+x2=x4=.5(w-u); bot y2r=vround(-1.5oo); top y4r=h+oo;
+pos3(curve,0); rt x3r=hround min(w-.6u,w-1.35u+.5curve); y3=.5h;
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ y1=max(h-BH-.5flare-2vair'-2,h-.9[BH,h]+.5flare);
+ lft x1r=hround(.7u); bulb(2,1,0); % bulb
+ pos5(hair,-180); lft x5r=hround(.5u);
+ y5=min(h-good.y(.5BH-.9),y4l-vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=x;
+filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],-100);
+ lft x1r=hround(.6u); bot y1r=h-vround .82[BH,top y4r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ pos5(.6[vair',flare],95); lft x5r=hround .5u;
+ y5r=good.y(h+y5r-1/3BH-y5);
+ y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..z5e; fi % arc and lower terminal
+if serifs: pickup tiny.nib; x6l=x0r; y6=y0;
+ pos6(diacr,0); right_tail(6,7,8,9,diacr,hround(x6+3.25u),.9,.5,.6);
+else: pickup fine.nib; x6l=x1r; y6=y1r;
+ pos6(vair,0); right_tail(6,7,8,9,vair,hround(x6+3.25u),.85,.5,.5); fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Inverted omega";
+beginchar(incr ipacode,CT(11u#,12u#),x_height#,0); % 2003/03/16
+italcorr .6x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos2(curve,0); rt x2r=hround(w-.5u); y2=y8=.55h;
+y4=y6=vround.4h; y1r=-oo; x1=x5=.5w; pos1(vair,270);
+pos3(vair,90); pos4(hair,180); pos5(vair,270);
+pos6(hair,0); pos7(vair,90); pos8(curve,180);
+top y3r=top y7r=h+oo; bot y5r=vround(.9[0,y4]-.5vair);
+x3=.5[x2,x4]; x7=.5[x6,x8]; lft x8r=hround .5u;
+x5=.5[x4,x6]; rt x6r-lft x4r=min(stem,2hair)+2eps;
+if x4l>x6l: x4l:=x6l:=x5; fi
+pos9(vair,290);pos10(vair,250);
+y9r=y10r=0; x9=w-x10=x2+1/2(x1-x2);
+filldraw stroke z9e{dir30}...z2e{up}...z3e{left}
+ ...{down}z4e...{right}z5e; % left arc
+filldraw stroke z5e{right}...z6e{up}...z7e{left}
+ ...{down}z8e...z10e{dir330};
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Left-hook P";
+beginchar(incr ipacode,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#+.5u#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+left_tail(2,9,10,11,stem,hround(-.75u));
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Q-P ligature";
+beginchar(incr ipacode,CT(15u#,15.56u#),x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(0,0);
+numeric w_org; w_org=w; w:=10u if Times_Compat: +.28u fi;
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-side_gap+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+w:=w_org;
+pickup tiny.nib; pos11(stem',0); pos12(stem,0);
+pos10'(stem',0); pos10(stem,0); z10l=z10'l; x10'=x11; x10=x12;
+x11l=x1l; top y11=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x12r;
+pickup fine.nib; pos13(if hefty:thin_join else: hair fi,180);
+pos14(vair',90); pos15(curve,0); pos16(vair,-90); penpos17(x13l-x13r,-180);
+rt x13l=max(rt x13l-(lft x13r-tiny.lft x12l), 1/3[rt x12,edge]);
+y13=1/8[bar_height,x_height];
+x14l=w-5u+serif_fit+.5u; top y14r=x_height+oo;
+rt x15r=hround min(w-1.35u+.5curve,w-.6u); y15=.5x_height;
+x16l=x14l-.2u; bot y16r=-oo;
+x17=x13; y17=min(y13,y16+y14-y13+.6vair);
+numeric X, X';
+(X,y14r)=whatever[z13l,z14l]; x14r:=min(X,.5[x15r,x14]);
+(X',y16r)=whatever[z17l,z16l]; x16r:=min(X',.5[x15r,x16]);
+filldraw stroke z13e{up}...{right}z14e&super_arc.e(14,15)
+ &super_arc.e(15,16)&z16e{left}...{up}z17e; % bowl
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14,15,16,17,18); endchar;
+
+cmchar "Reversed esh with top loop";
+beginchar(incr ipacode,CT(5u#,5.56u#),asc_height#,desc_depth#);
+italcorr asc_height#*slant-1u#;
+adjust_fit(.5hair#+.25u# if monospace:+1u# fi,.5u# if monospace:+1.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=hround(.5w-.5stem'); x2=x1; y2=0; h-y1=d;
+filldraw stroke z1e--z2e; % stem
+if serifs: right_tail(2,3,4,5,stem',hround(w+1u),.88,.5,1/3);
+else: right_tail(2,3,4,5,stem',hround(w+1u),.833,.5,1/3); fi
+if serifs: pickup tiny.nib;
+ pos1.a(stem',0); z1=z1.a;
+ x6=x1.a; top y6=1/3[y1.a,h]; pos6(stem',0);
+ pos7(vair,90); pos8(hair,180); pos9(vair,270); pos10(hair,360);
+ x7=x9=.5[x6,x8r]; top y7r=h+oo; y9r=.4[x_height,h]-vair;
+ y8=y10=.5[y9r,y7r]; lft x8r=hround-.5u; x10r=x1;
+ filldraw stroke z1.a e--z6e{up}...z7e{left}...z8e{down}...
+ {right}z9e...{up}z10e; % arc and loop
+else: pickup fine.nib;
+ pos1.a(stem',0); z1=z1.a;
+ x6=x1.a; top y6=1/3[y1.a,h]; pos6(stem',0);
+ pos7(vair,90); pos8(.5[vair,flare],180); pos9(vair,270);
+ pos10(.5[vair,flare],315);
+ x7=x9=.5[x6r,x8r]; top y7r=h+o; y9r=.4[x_height,h]-vair;
+ lft x8r=hround(-.5u-.5vair); y8=y10=.5[y9r,y7r]; x10l=x1l;
+ filldraw stroke z1.a e--z6e & super_arc.e(6,7)
+ & z7e{left}...z8e{down}...{right}z9e...{up}z10e; fi
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+% This shape is found in PSG (1996:176).
+cmchar "Front-hook T";
+beginchar(incr ipacode,6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(3u#,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(side_gap-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ if Times_Compat: y6l:=.2[y5l,y6l]; y6r:=y6l; fi
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+y10=y7; x10=x2r;
+front_hook(10,11,12,13,bar,90,-2.5u,.55x_height,.05,1/2,.5);
+penlabels(1,2,3,4,5,6,7,8,10,11,12,13); endchar;
+
+cmchar "Curly-tail turned T";
+beginchar(incr ipacode,6u#+max(u#,.5stem#),x_height#,desc_depth#);
+italcorr .7x_height#*slant -.5u#;
+adjust_fit(if serifs: 0 else: -.5u# fi,0 if monospace:+1u# fi);
+numeric shaved_stem,td; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+td=min(asc_height,if hefty:9/7 else:10/7 fi\\ x_height)-x_height;
+td:=vround .7td;
+pickup fine.nib; pos2(shaved_stem,0);pos3(shaved_stem,0);
+rt x2r=rt x3r=hround(w-(2.5u-.5shaved_stem));
+y2=y8; y3=min(h-.5bar_height,h-2vair);
+pickup crisp.nib; pos8(bar,270);
+lft x8=hround 1.3u; bot y8r=0; rt x7=hround(w-1/3u); y7l=y8l;
+if hefty: pos7(bar,270);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),180);
+ lft x1r=fine.lft x2l; bot y1=-td;
+ penpos2'(x1l-x1r,180); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,270); pos1(hair,180);
+ lft x1r=fine.lft x2l; bot y1=-td;
+ filldraw z1l{up}...{right}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',90); top y4r=h+oo; lft x5r=hround u;
+if serifs: pos5(hair,180); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=min(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{down}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,180); pos5'(hair,180);
+ x6=x5=x5'; bot y6=min(vround (h-.75bar_height),bot y5); y5=y5';
+ if Times_Compat: y6l:=.2[y5l,y6l]; y6r:=y6l; fi
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,105); bot y5l=vround .2[bot y4l,h-bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l-.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{left}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)>=0) or (xpart(z5r-postcontrol 2 of p)>=0):
+ filldraw stroke z4e{left}...{down}z5e;
+ else: filldraw p; fi fi;
+if serifs: pos10(vair,90); pos11(hair,10); pos12(vair,-100); pos13(hair,190);
+else: pos10(vair,90); pos11(.6hair,10); pos12(vair,-100); pos13(vair,240); fi
+bot y10l=-d-o; x10=.4[x11,x1]; lft x11l=hround 1u; y11=-.7d;
+z12=(x1,-.4d); lft x13r=hround(w-1u); y13=-d-o;
+filldraw stroke z1e..tension .9 and atleast 1..{left}z10e...z11e
+ ...z12e...{down}z13e;
+penlabels(1,2,3,4,5,6,7,8,10,11,12,13); endchar;
+
+cmchar "Turned two";
+beginchar(incr ipacode,CT(9u#,10u#),x_height#,fig_height#-x_height#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,0);
+numeric arm_thickness, hair_vair; hair_vair=.25[vair,hair];
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.4[stem,cap_stem] fi);
+pickup crisp.nib; pos7(arm_thickness,90); pos8(hair,180);
+top y7r=h; rt x7=hround(w-.9u); lft x8r=hround .9u; y8=good.y(y7l-beak/2)-eps;
+arm(7,8,a,.3beak_darkness,-beak_jut); % arm and beak
+pickup fine.nib; pos2(slab,270); pos3(.4[curve,cap_curve],180);
+bot y2r=-d-o; x2=.5(w+.5u); lft x3r=hround .9u; y3-.5vair=h-.75(h+d);
+if serifs: numeric bulb_diam; bulb_diam=hround(flare+2/3(cap_stem-stem));
+ pos0(bulb_diam,360); pos1(cap_hair,360);
+ rt x1r=hround(w-.9u); y1+.5bulb_diam=h-2/3(h+d);
+ (x,y2l)=whatever[z1l,z2r]; x2l:=x; bulb(2,1,0); % bulb and arc
+else: x2l:=x2l+.25u; pos1(flare,angle(-9u,h)+180);
+ rt x1r=hround(w-.75u); top y1l=vround (h-.7(h+d));
+ y1r:=good.y y1r-eps; x1l:=good.x x1l;
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal and arc
+pos4(.25[hair_vair,cap_stem],180);
+pos5(hair_vair,180); pos6(hair_vair,180);
+y5=h-arm_thickness; y4=.3[y5,y3]; bot y6=max(y5,h-slab,bot y7l);
+rt x6l=crisp.rt x7; z4l=whatever[z6l,(x3l,top (h-.58(h+d)))];
+z5l=whatever[z6l,z4l];
+erase fill z4l--z6l--rt z6l--(rt x6l,y4l)--cycle; % erase excess at left
+filldraw stroke z2e{left}..tension atleast .9 and atleast 1
+ ..z3e{up}.. z4e---z5e--z6e; % stroke
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Bent-tail yogh";
+beginchar(incr ipacode,CT(8u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+ numeric arm_thickness[],z_stem,stem[];
+ stem1=fudged.stem-4stem_corr;
+ if hefty: arm_thickness1=stem1; arm_thickness2=stem1;
+ z_stem=fudged.hair;
+ else: arm_thickness1=stem1; arm_thickness2=stem1; z_stem=fudged.hair; fi
+ if arm_thickness1<tiny.breadth: arm_thickness1:=tiny.breadth; fi
+ pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u);
+ lft x3l=lft x4l=hround .3[.5u, w-.8u];
+ top y1=h; y2=min(y1,h-2/3arm_thickness1);
+ bot y4=.4[0,h]; y3=max(y4,2/3arm_thickness2);
+ numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+ penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+ penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+ pair delta; delta=penoffset z3-z2 of currentpen;
+ fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+ pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+ top y5r=h; x5=x1; lft x6r=hround .75u;
+ y6=good.y(y5l-beak/1.8)-eps;
+ arm(5,6,a',beak_darkness,-.4beak_jut); % upper arm and beak
+ pickup fine.nib;
+ pos12(stem,angle(z2-z3)); z12l=z3l;
+ pos7(curve,-20); pos8(curve,-20); pos9(vair,90); pos10(hair,135);
+ rt x7r=hround(w-.75u); y7=.2[bot y12l,top y8l];
+ x8=hround .3[.75u, w-.8u]; y8=-1/2d;
+ x9=.5[x8l,x7r]; bot y9l=-d-oo;
+ x10=x7r; y10=.7[y9,y8];
+ filldraw stroke z12e{right}...z7e{down}.. tension 1.2 ..{down}z8e...
+ {right}z9e...z10e; % bowl and tail
+penlabels(1,2,3,4,5,6,7,8,9,10,12); endchar;
+
+cmchar "Turned three";
+beginchar(incr ipacode,CT(9u#,10u#),x_height#,fig_height#-x_height#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,270); bot y2r=-d-o;
+pos3(max(fine.breadth,.6[curve,cap_curve]-stem_corr),180);
+lft x3r=hround 1.25u;
+pos4(vair,90); pos5(vair,90);
+pos6(mid_thickness,270); x2=x6=x8=.5[w-1.5u,x7];
+pos7(cap_curve,180); lft x7r=hround .75u; rt x5=max(hround(w-3u),rt x6)+eps;
+pos8(bot_thickness,90); top y8r=h+o;
+y3=.6[bot y4l,top y2l]; y7=.5[top y6l,bot y8l];
+bot y5l=vround(h-.54(h+d)-.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5-whatever*(15u,.1(h+d));
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{up}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,360); pos1(hair,360);
+ rt x0r=hround(w-1.25u);
+ y0=max((h-.9(h+d))+.5bulb_diam1,(h-.75(h+d))-.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos10(bulb_diam2,0); pos9(cap_hair,0);
+ rt x10r=hround(w-.75u);
+ y10=min((h-.1(h+d))-.5bulb_diam2,(h-.3(h+d))+.5bulb_diam2);
+ bulb(8,9,10); % lower bulb
+else: pos1(.5[vair,flare],angle(-8u,h)+180);
+ rt x1r=hround(w-u); top y1l=vround(h-.75(h+d))-o;
+ y1r:=good.y y1r-eps; x1l:=good.x x1l;
+ pos9(bot_thickness,angle(-2u,-h)+180);
+ rt x9r=hround(w-.75u); bot y9l=vround(h-.25(h+d))+o;
+ y9r:=good.y y9r+eps; x9l:=good.x x9l;
+ filldraw stroke term.e(2,1,right,1,4); % upper terminal
+ filldraw stroke term.e(8,9,right,1,4); fi % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+% N.B. This symbols is not a descender.
+cmchar "Curly-tail inverted glottal stop";
+beginchar(incr ipacode,CT(9u#,10u#),asc_height#,0);
+italcorr .5x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos2(vair,-90); pos3(curve,0);
+pos4(vair,90); pos5(stem,0); pos6(stem,0);
+x5=x6; x2=.5w; x4=x5l; rt x3r=hround(w-u);
+lft x6l=hround(.42w-.5stem); top y6=h;
+bot y2r=-oo; y3=.5[y2,y4]; y4r=.9x_height; y5=y4l;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & z3e{up}...{(-10,-1)}z4e;
+ filldraw stroke z5e--z6e\\}}; % arc and stem
+pos1(stem-stem_corr, 180); lft x1r=hround u; y1=.5[y3,y2];
+pos7(vair,-270); x7=.2[x2,x6]; y7=.3[y3,y2];
+pos8(hair,0); rt x8r=hround(w-2u); bot y8=-.15x_height;
+filldraw stroke z2e{left}...{up}z1e...z7e...{dir-80}z8e;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+% Attested in PSG (1996:211) as a typesetter's error for a normal
+% glottal stop. The error is said to appear in the second edition
+% of Gimson (1970).
+%
+% Why do I have to make a symbol like this? Sigh...
+%
+cmchar "Turned glottal stop (PSG 1996:211)";
+beginchar(incr ipacode,CT(9u#,10u#),asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(stem,0); top y7=h; x7=.53w;
+pos2(vair,270); pos3(curve,180);
+pos4(vair,90); pos5(stem,0); pos6(stem,180);
+x2=x5=x6=x7; x4=x5r;
+lft x3r=hround u; top y6=h-.3x_height;
+bot y2r=-oo; y3=.5[y2,y4]; y4r=.5h; y5=y4l;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & z3e{up}...{(10,1)}z4e;
+ filldraw stroke z5e--z7e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround(w-u); y1=.3[y3,y2]; bulb(2,1,0); % bulb
+ dish_serif(7,5,e,1/3,jut,f,1/3,jut); %serif
+else: pos1(vround 5/7[vair,flare],290);
+ rt x1r=hround(w-u); bot y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Pipe (a variety with no descender)";
+beginchar(incr ipacode,CT(5u#,5.56u#),asc_height#,0);
+italcorr asc_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0);
+numeric thickness; thickness=hround.4[hair,stem];
+pickup tiny.nib; pos1(thickness,0); pos2(thickness,0);
+lft x1l = lft x2l = hround(.5w-.5thickness);
+top y1=h+o; bot y2=-d-o;
+filldraw stroke z1e--z2e;
+penlabels(1,2); endchar;
+
+cmchar "Double pipe (a variety with no descender)";
+beginchar(incr ipacode,CT(8u#,8.88u#),asc_height#,0);
+italcorr asc_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0);
+numeric thickness; thickness=hround(.4[hair,stem]-2stem_corr);
+pickup tiny.nib; pos1(thickness,0); pos2(thickness,0);
+pos3(thickness,0); pos4(thickness,0);
+x1=x2; x3=x4=w-x1; lft x1l = hround((w-3.2u-thickness)/2);
+top y1=top y3=h+o; bot y2=bot y4=-d-o;
+filldraw stroke z1e--z2e; filldraw stroke z3e--z4e;
+penlabels(1,2,3,4); endchar;
+
+cmchar "Double-barred pipe (a variety with no descender)";
+beginchar(incr ipacode,10u#,asc_height#,0);
+italcorr asc_height#*slant+.5rule_thickness#-1.5u#;
+adjust_fit(0,0);
+numeric thickness[]; thickness1=hround.4[hair,stem];
+pickup tiny.nib; pos1(thickness1,0); pos2(thickness1,0);
+lft x1l = lft x2l = hround(.5w-.5thickness1);
+top y1=h+o; bot y2=-d-o;
+filldraw stroke z1e--z2e;
+thickness2=vround .3[vair,flare];
+pos3(thickness2,90); pos4(thickness2,90);
+pos5(thickness2,90); pos6(thickness2,90);
+lft x3l = lft x5l = hround 1u;
+rt x4l = rt x6l = hround(w-1u);
+top y3r = top y4r = h-d-bot y5;
+bot y5l = bot y6l = vround(1/3(h+d)-d-.5thickness2);
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "L-Fish-hook R ligature";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(incr ipacode,CT(if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,6.66u#),
+ asc_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=x_height+oo;
+if serifs: pos4(vair,90); pos5(hair,0); x4=.5[x6,.5w];
+ rt x5r=hround(w-if Times_Compat: .25u else: .5u fi +.5);
+ y5+.8r_flare=.9[bar_height,x_height]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos0'(hround(stem-3stem_corr),180);
+rt x0'l=hround(side_gap-.5stem')+stem'; top y0'=bar_height+1.8u;
+filldraw stroke z0'e{up}...{right}z4e; % arc
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+x1=x2=x0'; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,0',4,5,6); endchar;
+
+ipacode:=79;
+
+cmchar "A variety of thorn (1)";
+beginchar(incr ipacode,10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6=x3; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+cmchar "A variety of thorn (2)";
+beginchar(incr ipacode,10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6=x3; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=if serifs: -.7d; else: -d; fi
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ pickup tiny.nib; pos10(stem,0); pos11(vair,-90);
+ z10=z2; lft x11l=.5u; y11l=-d-oo;
+ varm(10,11,b,.8beak_darkness,-1.5beak_jut); fi
+penlabels(0,1,2,3,4,5,6,8,10,11); endchar;
+
+cmchar "A variety of thorn (3)";
+beginchar(incr ipacode,10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6=x3; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(1,2,a,1/3,jut,d,1/3,jut); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+cmchar "A variety of thorn (4)";
+beginchar(incr ipacode,10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6=x3; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+left_tail(2,9,10,11,stem,hround(-.75u));
+penlabels(0,1,2,3,4,5,6,8,9,10,11); endchar;
+
+cmchar "A variety of glottal stop (1)";
+beginchar(incr ipacode,CT(9u#,10u#),asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8;
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=0;
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "A variety of glottal stop (2)";
+beginchar(incr ipacode,CT(9u#,10u#),asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(stem,0); bot y7=0; x7=.47w;
+pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(stem,0); pos6(stem,0);
+x2=x5=x6=x7; x4=x5l;
+rt x3r=hround(w-u); y6=.67[y3,y7];
+top y2r=h+oo; y3=.5[y2,y4]; y4r=.5y2; y5=y4l;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & z3e{down}..{down}z6e--z7e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=.3[y3,y2]; bulb(2,1,0); % bulb
+ dish_serif(7,5,e,1/3,jut,f,1/3,jut); %serif
+else: pickup fine.nib; pos2'(vair,90); z2'=z2;
+ pos1(vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2',1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "A variety of glottal stop (3)";
+beginchar(incr ipacode,CT(8u#,8.88u#),asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib;
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pos7(bot_width,0); bot y7=0; x7=.4w;
+pos2(vair,90); pos3(curve,-60);
+pos4(min(curve,3vair),-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x5=x6=x7; x4=x5l;
+rt x3r=hround(w-u); bot y6=.3x_height;
+top y2r=h+oo; y3=.6[y2,y4]; y4r=.4y2; y5=y4r;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ ..z3e{down}..z4e;
+ filldraw stroke z5e--z7e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround 2u; y1=.8[y3,y2]; bulb(2,1,0); % bulb
+% dish_serif(7,5,e,1/3,jut,f,1/3,jut); %serif
+else: pickup fine.nib; pos2'(vair,90); z2'=z2;
+ pos1(vround 5/7[vair,flare],110);
+ lft x1r=hround 1.5u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2',1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+%%%%%%%% Smallcaps
+
+ipacode:=oct"157";
+
+smallcap_setup;
+
+def sc_hair = hair enddef;
+def sc_stem = stem enddef;
+def sc_curve = curve enddef;
+def sc_jut = cap_jut enddef;
+def sc_bar = cap_bar enddef;
+def sc_band = cap_band enddef;
+
+% romanu.mf -> tipasc.mf conversion:
+%
+% x_height -> .626x_height
+% bar_height -> .632bar_height
+% cap_height -> x_height
+% comma_depth -> 44/70comma_depth
+% cap_hair -> sc_hair
+% cap_stem -> sc_stem
+% cap_curve -> sc_curve
+% cap_ess -> sc_ess
+% cap_jut -> sc_jut
+% cap_bar -> sc_bar
+% cap_band -> sc_band
+
+cmchar "Inverted small capital A";
+beginchar(incr ipacode,13u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=sc_stem-stem_corr;
+left_stem=min(sc_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8sc_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=h;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=-apex_o-apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5l else: y5 fi =h-5/12(h-y0);
+y5r-y5l=y6r-y6l=sc_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+sc_jut+.5u+1<=lft x4'l-sc_jut: inner_jut=sc_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Small capital A-O Ligature";
+beginchar(incr ipacode,18u#,x_height#,0);
+italcorr .7x_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,mid_stem,outer_jut,alpha;
+mid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.sc_stem]);
+pickup tiny.nib; pos1(mid_stem,0); pos2(mid_stem,0);
+lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; pos5(sc_bar,-90); x5=x1;
+top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5sc_bar);
+pos0(sc_bar,90); z0=z5;
+pos8(slab if not serifs:+2stem_corr fi,-90);
+bot y8r=0; x8=x2;
+left_stem=if monospace:fudged.hair else: sc_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8sc_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(sc_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+penpos21(vair,90); penpos23(vair,-90);
+if monospace: penpos22(fudged.sc_stem,0);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: penpos22(hround(sc_curve-stem_corr),0); fi
+x21=x23=rt x1r+2u; y21r=h+o; y23r=-o; y22=.5h-vair_corr; x22r=hround(w-u);
+rt x24=rt x25=tiny.rt x1r; y24=2/3h; y25=1/3h; y22l:=.52h;
+penstroke super_arc.e(21,22) & super_arc.e(22,23); % left half of bowl
+fill z23r{left}..{left}(x2,0)--(x1,h){right}..{right}z21r
+ --z21l{left}...{z24-z21l}(.82[x21l,x24],.82[y24,y21l])
+ ...z24---z25...{z23l-z25}(.82[x23l,x25],.82[y25,y23l])
+ ...{right}z23l--cycle; % right half of bowl
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+sc_jut+.5u+1<=lft x2l-.75sc_jut: inner_jut=sc_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ serif(1,2,a,1/3,-(sc_jut+x1l-x12)); % upper serif
+ serif(2,1,c,1/3,-.75inner_jut); fi % lower middle serif
+penlabels(0,1,2,3,5,8,10,11,12,13,14,21,22,23,24,25); endchar;
+
+cmchar "Small capital Greek delta";
+beginchar(incr ipacode,15u#,x_height#,0);
+adjust_fit(0,0);
+numeric left_stem,alpha;
+left_stem=sc_hair if hefty: -3stem_corr fi;
+x1l=w-x4r=.75u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*sc_stem,0); penpos4(alpha*sc_stem,0);
+fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+y5=y6=cap_vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ unfill z0+.5right{down}...{z4-z3}z6--z5{z2-z1}
+ ...{up}z0+.5left--cycle; % counter
+else: unfill z0--z5--z6--cycle; fi % counter
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Small capital F";
+beginchar(incr ipacode,11.5u#-width_adj#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(sc_stem,0); pos2(sc_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5sc_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(sc_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5sc_bar); x5=x1;
+pos0(sc_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,sc_jut,b,1/3,.5sc_jut); % upper serif
+ dish_serif(2,1,c,1/3,sc_jut,d,1/3,1.25sc_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Small capital K";
+beginchar(incr ipacode,13.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6sc_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.sc_stem,0); pos2(fudged.sc_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.sc_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.sc_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4);
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+sc_jut+.5u+1<=lft x6l-sc_jut: inner_jut=sc_jut;
+ else: rt x2r+sc_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,sc_jut,b,1/3,sc_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,sc_jut,d,1/3,sc_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2sc_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi% lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Turned small capital K";
+beginchar(incr ipacode,13.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6sc_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.sc_stem,0); pos2(fudged.sc_stem,0);
+rt x1r=rt x2r=hround max(w-2u,w-(3u-.5fudged.sc_stem)); bot y1=0; top y2=h;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.sc_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+bot y3=0; lft x3l=hround(l+letter_fit+u+right_jut);
+top y6=h; lft x6l=hround(l+letter_fit+.75u+right_jut);
+x4=x1; y4=2/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y4-y3,x4-x3l);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y6-y1,x1-x6l);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=0; y6'$=h; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5r,z5l];
+z3'l=z3l+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4);
+z6'l=z6l+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'r=z6r+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4l--diag_end(4l,3'l,1,.5,3'r,4r)--z4r--cycle; % upper diagonal
+fill z5r--diag_end(5r,6'r,.5,1,6'l,5l)--z5l--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if lft x2l-sc_jut-.5u+1>=rt x6r+sc_jut: inner_jut=sc_jut;
+ else: lft x2l-sc_jut-.5u-1=rt x6r+inner_jut; fi
+ dish_serif(1,2,a,1/3,sc_jut,b,1/3,sc_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,sc_jut,d,1/3,sc_jut); % lower stem serif
+ dish_serif(3,4,e,1/2,right_jut,f,2/3,1.2sc_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/3,right_jut,h,1/2,inner_jut)(dark);fi% lower diagonal serif
+math_fit(0,.5ic#); penlabels(1,2,3,3',4,5,6,6'); endchar;
+
+cmchar "Reversed small capital L";
+beginchar(incr ipacode,11u#-width_adj#,x_height#,0);
+adjust_fit(0, cap_serif_fit#);
+italcorr x_height#*slant-1u#;
+pickup tiny.nib; pos1(sc_stem,0); pos2(sc_stem,0);
+rt x1r=rt x2r=hround min(w-2u,w-(3u-.5sc_stem)); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,180);
+bot y3r=0; x3=x2; y4=y3l+beak+eps; lft x4r=hround .75u;
+arm(3,4,e,1.2beak_darkness,-beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,b,1/3,1.25sc_jut,a,1/3,sc_jut); % upper serif
+ nodish_serif(2,1,d,1/3,.5sc_jut,c,1/3,sc_jut); fi % lower serif
+math_fit(0,u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Small capital M";
+beginchar(incr ipacode,16u#+width_adj#,x_height#,0);
+italcorr x_height#*slant-cap_serif_fit#+sc_jut#-2.5u#+min(.5sc_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.sc_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.sc_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-sc_jut); % upper left serif
+ dish_serif(2,1,b,1/2,sc_jut,c,1/2,sc_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,sc_jut); % upper right serif
+ dish_serif(4,3,e,1/3,sc_jut,f,1/3,sc_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "Small capital P";
+beginchar(incr ipacode,12u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(sc_stem'-tiny,0); penpos2(sc_stem-tiny,0);
+pos0(sc_stem',0); pos0'(sc_stem,0);
+lft x1l=hround max(2u,3u-.5sc_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(sc_band,90); penpos4(sc_band,90);
+penpos5(sc_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,sc_band],-90); penpos7(.5[vair,sc_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25sc_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,sc_jut,b,1/3,.5sc_jut); % upper serif
+ dish_serif(2,0',c,1/3,sc_jut,d,1/3,sc_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Small capital Q";
+beginchar(incr ipacode,14u#-width_adj#,x_height#,44/70comma_depth#);
+italcorr .7x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=sc_curve-hround stem_corr;
+penpos1(vair',90); penpos3(vair',-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"Q"| like |"O"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup tiny.nib;
+if hefty: penpos5(1.2(.5[sc_bar,light_curve]),0); penpos6(1.2light_curve,0);
+ x5=.5w; x6r=hround(w-1.5u);
+ y5=vround .28h; y6=-d;
+ fill diag_end(6r,5r,.25,1,5l,6l)--diag_end(5l,6l,.5,1,6r,5r)--cycle; % tail
+else: pos3'(vair,270); pos5(vair,180); pos6(vair,90);
+ pos7(sc_curve,85); penpos8(eps,180);
+ z3'=z3; x6=x3; top y6r=vround(.2h+.5vair);
+ lft x5r=hround(.5w-1.25u-.5vair); y5=.5[y3,y6];
+ bot y7l=-d; x7l=2/3[x6,x8]; y8=0; rt x8=hround(x4r+.1u);
+ filldraw stroke z3'e{left}...z5e{up}...z6e{right}
+ ..z7e{right}...z8e{up}; fi % tail
+math_fit(-.3x_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Reversed small capital R";
+beginchar(incr ipacode,if serifs: 12u#+.5max(2u#,sc_curve#)
+ else:12.5u#-.5width_adj# fi,x_height#,0);
+italcorr x_height#*slant-1u#;
+adjust_fit(0, cap_serif_fit#);
+pickup tiny.nib; pos1(sc_stem',0); pos2(sc_stem',0);
+rt x1r=rt x2r=hround min(w-2u,w-(3u-.5sc_stem')); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(sc_band,90); penpos4(sc_band,90);
+penpos5(sc_curve if hefty:-3stem_corr fi,180);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w+.5u; x5r=hround 2.25u;
+else: x4=.5w-.5u; x5r=hround u; fi
+x4l:=x6l:=x4+.125sc_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(sc_stem,0);
+ pos8(sc_curve,0); pos9(vair,-90); pos10(hair,180);
+ z6'=z6; rt x0r=rt x8r=hround(x5+2/3u+.5sc_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; lft x10r=hround .05u; y10=1/4[y2,y7];
+ filldraw stroke z6'e{left}..z0e---z8e....z9e{left}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,.5sc_jut,b,1/3,sc_jut); % upper serif
+ dish_serif(2,1,c,1/3,sc_jut,d,1/3,sc_jut); % lower serif
+else: penpos8(sc_stem-2stem_corr,180); penpos9(sc_stem,180);
+ x8=x6-.5u; y8=y6; x9r=hround .5u; y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Turned small capital U";
+beginchar(incr ipacode,13u#+.5width_adj#,x_height#,0);
+italcorr .75x_height#*slant-cap_serif_fit#+sc_jut#-2.5u#+min(.5sc_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(sc_stem,0); pos2(sc_stem,0);
+pos2'(sc_stem,0); z2'=z2;
+pos3(sc_band,90); pos4(sc_hair,180); pos5(sc_hair,180);
+x1=x2; x3=.5[x1,x5]; x4=x5; x5r=w-x1r;
+bot y1=bot y5=0; y2=y4=2/3h; top y3r=h+o;
+rt x1r=hround min(w-2u,w-(3u-.5sc_stem));
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,sc_jut,b,1/3,sc_jut); % left serif
+ dish_serif(5,4,c,1/2,sc_jut,d,1/2,sc_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3x_height#*slant-min(x_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5); endchar;
+
+restore_normal_setup;
+
+%%% back to normal.
+
+endinput
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+% This accent is now realized as macro.
+cmchar "Macron Acute accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"040",9u#,asc_height#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=vround(.3[x_height,asc_height]+macron_breadth)+o;
+lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+if serifs: pickup crisp.nib; x3+.5stem=hround(w-2u); x4=2/3[x3,w-x3];
+ y3=h+o+eps; pos4(hair,0); y4r=y1l;
+ numeric theta; theta=angle(z4-z3)+90;
+ pos3(stem,theta);
+ filldraw circ_stroke z3e--z4e; % diagonal
+else: pickup fine.nib; pos3(stem,0); pos4(vair,0);
+ rt x3r=hround(w-2u); lft x4l=hround(.5w-.75u-.5vair);
+ top y3=h+o; y4r=y1l;
+ filldraw stroke z3e--z4e; fi % diagonal
+penlabels(1,2,3,4); endchar;
+
+% end of file.
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipagerm.mf b/Master/texmf-dist/fonts/source/public/tipa/tipagerm.mf
new file mode 100644
index 00000000000..cd92a0a3484
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipagerm.mf
@@ -0,0 +1,137 @@
+% tipagerm.mf: TIPA symbols for germanic languages
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This font is based on:
+% Computer Modern font series by D. E. Knuth,
+% DC fonts by J"org Knappen and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+% The next codes are from cmman.
+cmchar "Thorn";
+beginchar(oct"376",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6=x3; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+cmchar "Wynn";
+beginchar(oct"337",9u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.75u#,.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos2(stem,if serifs:0 else: 15 fi);
+pos0'(stem',0); pos0(stem,0); pos1(stem',0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem');top y1=h;
+pickup fine.nib; pos3(vair,90); pos4(vair,90);
+pos5(curve,0); pos6(vair,-90); pos7(vair,-90);
+x3=x7=x0; x4+.5u=x6=.6w; top y4r=x_height; y4-y3=y6-y7;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.6x_height;
+bot y6r=.1x_height-oo; bot y7r=-oo; y0=y3;
+pickup tiny.nib; bot y2=if serifs: -.7d; else: -d; fi
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+filldraw stroke z3e--z4e{z6-z7}...z5e{down}...{z7-z6}z6e--z7e;
+if serifs: pickup crisp.nib; pos10(stem,0); pos11(vair,-90);
+ z10=z2; lft x11l=x22=.5u; y11l=-d-oo;
+ varm(10,11,a,.8beak_darkness,-1.5beak_jut);
+ pickup crisp.nib;
+ pos21(stem',0); pos22(vair,90); z21=(x1,.6h); y22r=y4r;
+ varm(21,22,b,.8beak_darkness,-1.3beak_jut); fi
+penlabels(0,0',1,2,3,4,5,6,7,8,9,10,11,21,22); endchar;
+
+cmchar "H-V ligature";
+beginchar(oct"377",13.8u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1-3.8u;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+y3=1/3[bar_height,x_height];
+penpos2''(x2r-x2l,0); x2''=x2; y2''=1/8[bar_height,x_height];
+filldraw stroke z2''e--z2e; % thicken the lower left stem
+penpos a0(min(rt x2r-lft x2l,thin_join)-fine,180); pickup fine.nib;
+rt x a0l=tiny.rt x2r; y a0=y2'';
+pos a1(vair,90); pos3'(x3r-x3l+tiny,0); z3'=z3;
+x a1=.5[rt x a0l,rt x3'r]; top y a1r=x_height+oo;
+(x a,y a1l)=whatever[z a1r,z a0l]; x a1l:=x a;
+filldraw stroke z a0e{up}...{right}z a1e
+ &{{interim superness:=hein_super; super_arc.e(a1,3')}}; % arch
+labels(a0); penlabels(a1);
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x3l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+pickup tiny.nib; interim superness:=more_super;
+pos3''(stem,180);y3''=y3;
+pos4(stem,180); x4=x3''=x3;
+pos5(vair,-90); pos6(hair,0);
+x5=x4+2.8u; rt x6r=hround(w-.7u); y4=.4h; bot y5r=-oo; y6=.4h;
+filldraw stroke z3''e{down}--super_arc.e(4,5) % v stroke
+ ..tension atleast 1.05..{up}z6e; % left stem and arc
+v_bulb(6,7); % closing bulb
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Comma-tail Z";
+beginchar(oct"336",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-1u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+arm_thickness1=vair; arm_thickness2=1.2vair; z_stem=.9[vair,stem];
+pickup tiny.nib; rt x1r=rt x2r=hround(.89w-.8u);
+lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup tiny.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,90); pos8(arm_thickness2,90);
+x7=x4; bot y8l=bot y7l=y8'=0; x8=x5-1.5u;
+if serifs: pos9(hair,0); pos10(vair,-90); pos11(vair,-100);
+else: pos9(fudged.hair,0); pos10(vair,-90); pos11(vair,-100); fi
+y9=-.4d; rt x9r =hround(w-1.5u+.5hair); y10=-.8d;
+y11=-.7d; x11=.5[x3,x9]; x9-x10=x10-x11;
+filldraw stroke z7e--z8e{right}..z9e{down}..{left}z10e..z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+% end of tipagerm.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipanew.mf b/Master/texmf-dist/fonts/source/public/tipa/tipanew.mf
new file mode 100644
index 00000000000..e0c1cf022a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipanew.mf
@@ -0,0 +1,8 @@
+endinput
+debug:=true;
+if debug: let input = endinput; fi
+
+%%% This is a scratch file for testing new materials.
+
+
+endinput
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipapnct.mf b/Master/texmf-dist/fonts/source/public/tipa/tipapnct.mf
new file mode 100644
index 00000000000..4a94db11abb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipapnct.mf
@@ -0,0 +1,221 @@
+% tipapnct.mf: TIPA punctuation marks
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This font is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Apostrophe";
+beginchar("'",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+cmchar "Left parenthesis";
+beginchar("(",CT(7u# if monospace: -u# fi,6.66u#),
+ CT(body_height#,asc_height#),CT(paren_depth#,.9desc_depth#));
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",CT(7u# if monospace: -u# fi,6.66u#),
+ CT(body_height#,asc_height#),CT(paren_depth#,.9desc_depth#));
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+cmchar "Question mark";
+beginchar("?",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.5w-.25u-.5dot_size); bot y8l=0; z7=z8; dot(7,8); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(bot_width,0); pos6(bot_width,0);
+x2=x4=x5=x6=x7; rt x3r=hround(w-u); bot y6=1+.25[top y8r,x_height];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & subpath (0,1) of super_arc.e(3,4) .. z5e---z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=y3; bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Left bracket";
+%numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+% Modified on 2001/11/25 fkr
+numeric wd#; wd#=max(5.5u#,5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("[",CT(wd#,6.66u#),CT(body_height#,asc_height#),
+ CT(paren_depth#,.9desc_depth#));
+italcorr body_height#*slant;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+if Times_Compat and serifs: side_thickness:=1.8side_thickness;
+ top_thickness:=.8top_thickness; fi
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; lft x1l=lft x2l=hround(2.5u-.5side_thickness)-1-eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1l; rt x4=rt x6=ceiling(w-.4u)+eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right bracket";
+%numeric wd#; wd#=max(5u#,4.5u#+.5if hefty:stem# else:rule_thickness# fi);
+% Modified on 2001/11/25 fkr
+numeric wd#; wd#=max(5.5u#,5u#+.5if hefty:stem# else:rule_thickness# fi);
+beginchar("]",CT(wd#,6.66u#),CT(body_height#,asc_height#),
+ CT(paren_depth#,.9desc_depth#));
+italcorr body_height#*slant-2u#+.5if hefty:stem# else:rule_thickness# fi;
+adjust_fit(0,0);
+numeric top_thickness,side_thickness;
+if hefty: top_thickness=vair;
+ side_thickness=max(crisp.breadth,stem-2stem_corr);
+else: top_thickness=side_thickness=rule_thickness; fi;
+if Times_Compat and serifs: side_thickness:=1.8side_thickness;
+ top_thickness:=.8top_thickness; fi
+pickup crisp.nib; pos1(side_thickness,0); pos2(side_thickness,0);
+top y1=h; bot y2=-d; rt x1r=rt x2r=hround(w-2.5u+.5side_thickness)+1+eps;
+filldraw stroke z1e--z2e; % stem
+pos3(top_thickness,90); pos4(top_thickness,90);
+pos5(top_thickness,90); pos6(top_thickness,90);
+x3=x5=x1r; lft x4=lft x6=floor .4u-eps; y3r=y4r=y1; y5l=y6l=y2;
+filldraw stroke z3e--z4e; % upper bar
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Turned apostrophe";
+beginchar("`",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h-comma_depth;
+if monospace: ammoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large ammoc
+else: ammoc(1,a,dot_size,.25u,comma_depth); fi % normal ammoc
+penlabels(1); endchar;
+
+% end of tipapnct.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipaprm.def b/Master/texmf-dist/fonts/source/public/tipa/tipaprm.def
new file mode 100644
index 00000000000..8344e96e2b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipaprm.def
@@ -0,0 +1,78 @@
+# tipaprm.def --- parameters for TIPA font families.
+#
+# 1996/06/24 first version
+# 2001/11/07 bs10 (= BXSL10), sb10 (=SSBX10), si10 (=SSSL10) added.
+# 2001/12/21 tt8, tt9, tt10, tt12, ts10 (=SLTT10) added.
+#
+# The basic idea of this file is borrowed from dc fonts. But this file
+# is processed by awk, not by a Metafont macro.
+#
+# NB: The parameter `variant_g' is omitted, and sc.u, sc.letter_fit added.
+# For TT family of fonts, sc.u# shuold be equal to u# !!!
+# p: x/36pt#, P: xpt#, n: x, SC12: sind 12 / cosd 12, SQ2: sqrt 2
+#
+# 8 9 10 12 17 sl8 sl9 sl10 sl12 bx8 bx9 bx10 bx12 ss8 ss9 ss10 ss12 ss17 b10 bs10 sb10 si10 tt8 tt9 tt10 tt12 ts10
+#
+p u 17 18.5 20 23.5 32.5 17 18.5 20 23.5 19.6 21.3 23 27 17 18.5 20 23.5 32.5 20 23 22 20 17 18.9 21 24.7 21
+p width_adj 0 0 0 0 0 0 0 0 0 9.4 10.2 11 13 12 13 15 17 24 10 11 22 15 0 0 0 0 0
+p serif_fit 0 0 0 0 0 0 0 0 0 0 0 0 0 -6 -6.5 -7 -9 -12 0 0 -9 -7 0 0 0 0 0
+p cap_serif_fit 4.1 4.6 5 5.8 8 4.1 4.6 5 5.8 5.4 6.2 7 8 -8.5 -9 -10 -13 -17 6 7 -11 -10 0 0 0 0 0
+p letter_fit 0 0 0 0 -0.1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+p body_height 216 243 270 324 466 216 243 270 324 216 243 270 324 216 243 270 324 466 270 270 270 270 200 225 250 300 250
+p asc_height 200 225 250 300 432 200 225 250 300 200 225 250 300 200 225 250 300 432 250 250 250 250 176 198 220 264 220
+p cap_height 196.8 221.4 246 295.2 425 196.8 221.4 246 295.2 197.6 222.3 247 296.4 200 225 250 300 432 247 247 250 250 176 198 220 264 220
+p fig_height 185.6 208.8 232 278.4 401 185.6 208.8 232 278.4 185.6 208.8 232 278.4 189 212 236 283 408 232 232 250 236 176 198 220 264 220
+p x_height 124 139.5 155 186 267.8 124 139.5 155 186 128 144 160 192 128 144 160 192 267.8 160 160 165 160 124 139.5 155 186 155
+p math_axis 72 81 90 108 155.5 72 81 90 108 72 81 90 108 72 81 90 108 155.5 90 90 90 90 88 99 110 132 110
+p bar_height 69.6 78.3 87 104.4 150 69.6 78.3 87 104.4 67 76 85 102 63 71 79 97 136 85 85 90 79 63 71 79 95 79
+p comma_depth 56 63 70 84 121 56 63 70 84 56 63 70 84 37 41 45 54 78 70 70 38 45 40 45 50 60 50
+p desc_depth 56 63 70 84 121 56 63 70 84 56 63 70 84 56 63 70 84 121 70 70 70 70 64 72 80 96 80
+p crisp 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 26 0 19 21 22 25 22
+p tiny 8 8 8 8 8 8 8 8 8 12 13 13 13 0 0 0 0 0 13 13 26 0 19 21 22 25 22
+p fine 7 7 7 7 7 7 7 7 7 10 10 10 10 0 0 0 0 0 10 10 9 0 18 20 21 22 21
+p thin_join 7 7 7 7.5 9 7 7 7 7.5 10 10 10 10.5 15 16 17 20 28 10 10 9 17 18 20 21 22 21
+p hair 9 9 9 9.5 11 9 9 9 9.5 16.2 16.6 17 18.3 25 27 28 33 47 17 17 49 28 22 24 25 28 25
+p stem 22 24 25 28 33 22 24 25 28 35 38 41 47 25 27 28 33 47 41 41 49 28 22 24 25 28 25
+p curve 25.5 28 30 33 40 25.5 28 30 33 39 43 46 52 25 27 28 33 47 46 46 49 28 22 24 25 28 25
+p ess 23 25 27 30 35 23 25 27 30 32 35 38 44 25 27 28 33 47 38 38 43 28 19 21 22 25 22
+p flare 27 30 33 36 45 27 30 33 36 39 42 45 51 22 24 25 30 42 45 45 40 25 28 30 32 35 32
+p dot_size 32 35 38 42 51 32 35 38 42 46 51 56 62 26 28 30 35 50 56 56 47 30 31 33 36 39 36
+p cap_hair 9.5 10 11 11.5 13 9.5 10 11 11.5 19 19 19 20 25 27 28 33 47 19 19 49 28 22 24 25 28 25
+p cap_stem 26.5 29 32 35 41 26.5 29 32 35 43 47 51 57 29 31 32 37 52 51 51 53 32 22 24 25 28 25
+p cap_curve 30 33 37 40 47 30 33 37 40 46 51 55 61 29 31 32 37 52 55 55 53 32 22 24 25 28 25
+p cap_ess 27 31 35 38 43 27 31 35 38 43 48 53 59 28 31 32 37 52 53 53 51 32 22 24 25 28 25
+P rule_thickness .36 .38 .4 .44 .6 .36 .38 .4 .44 .54 .57 .6 .66 .36 .38 .4 .44 .6 .6 .6 30/36 .4 22/36 24/36 25/36 28/36 25/36
+p dish 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 0
+p bracket 16 18 20 24 34 16 18 20 24 8 9 10 12 0 0 0 0 0 10 10 0 0 0 0 0 0 0
+p jut 22 25 28 33 42 22 25 28 33 19 22 25 30 0 0 0 0 0 25 25 0 0 27 31 34 39 34
+p cap_jut 29 33 37 41 50 29 33 37 41 31 35 39 46 0 0 0 0 0 34 39 0 0 27 31 34 39 34
+p beak_jut 8.4 9.2 10 11.4 15 8.4 9.2 10 11.4 9.4 10.2 11 12.4 0 0 0 0 0 11 11 0 0 0 0 0 0 0
+p beak 56 63 70 84 121 56 63 70 84 55 63 70 84 .4 .5 .5 .6 .8 70 70 1.5 .5 27 31 34 39 34
+p vair 8 8 8 8.5 10 8 8 8 8.5 12 12.5 13 14.3 19 21 22 26 38 13 13 26 22 19 21 22 25 22
+P notch_cut 8 9 10 12 17 8 9 10 12 8 9 10 12 16/36 17/36 18/36 22/36 32/36 10 10 49/36 18/36 22/36 24/36 25/36 28/36 25/36
+p bar 9.5 10 11 12.5 16 9.5 10 11 12.5 15 16 17 18.5 18 20 21 25 36 17 17 26 21 19 21 22 25 22
+p slab 9.5 10 11 12.5 16 9.5 10 11 12.5 15 16 17 18.5 20 22 23 27 40 17 17 36 23 19 21 22 25 22
+p cap_bar 9.5 10 11 12.5 16 9.5 10 11 12.5 15 16 17 18.5 19 21 22 26 38 17 17 34 22 19 21 22 25 22
+p cap_band 9.5 10 11 12.5 16 9.5 10 11 12.5 15 16 17 18.5 17 19 20 24 35 17 17 31 20 19 21 22 25 22
+P cap_notch_cut 8 9 10 12 17 8 9 10 12 8 9 10 12 22/36 24/36 25/36 31/36 46/36 10 10 45/36 25/36 22/36 24/36 25/36 28/36 25/36
+p serif_drop 3.2 3.6 4 4.8 7 3.2 3.6 4 4.8 2.4 2.7 3 3.6 2 2 2 2 2 3 3 2 2 0 0 0 0 0
+p stem_corr 1 1 1 1 1 1 1 1 1 1.8 1.9 2 2 1 1 1 1 1 2 2 1 1 0 0 0 0 0
+p vair_corr 1 1 1 1 1 1 1 1 1 1.3 1.4 1.5 1.5 1 1 1 1 1 1.5 1.5 2 1 0 0 0 0 0
+p apex_corr 0 0 0 0 0 0 0 0 0 0 0 0 0 4 4.5 5 6 7 0 0 18 5 8 9 10 11 10
+p o 6 7 8 9 10 6 7 8 9 4 4 4 5 6 7 8 9 10 4 4 8 8 3 3.5 4 5 4
+p apex_o 6 7 8 9 10 6 7 8 9 3 3 3 4 0 0 0 0 0 3 3 0 0 3 3 3 4 3
+n slant 0 0 0 0 0 1/6 1/6 1/6 1/6 0 0 0 0 0 0 0 0 0 0 1/6 0 SC12 0 0 0 0 1/6
+n fudge 1 1 1 1 1 1 1 1 1 1 1 1 1 .93 .95 .96 .98 1 1 1 .88 .96 0.81 0.81 0.81 0.86 0.81
+n math_spread .4 .2 0 -0.2 -0.4 .4 .2 0 -0.2 .9 .7 .5 .4 .4 .2 0 -0.2 -0.4 .5 .5 .5 0 -1 -1 -1 -1 -1
+n superness 1/SQ2 1/SQ2 1/SQ2 1/SQ2 1/SQ2 1/SQ2 1/SQ2 1/SQ2 1/SQ2 8/11 8/11 8/11 8/11 1/SQ2 1/SQ2 1/SQ2 1/SQ2 1/SQ2 8/11 8/11 3/4 1/SQ2 1/SQ2 1/SQ2 1/SQ2 1/SQ2 1/SQ2
+n superpull 1/6 1/6 1/6 1/6 1/6 1/6 1/6 1/6 1/6 1/8 1/8 1/8 1/8 1/20 1/20 1/20 1/20 1/20 1/8 1/8 1/18 1/20 0 0 0 0 0
+n beak_darkness 11/30 11/30 11/30 11/30 11/30 11/30 11/30 11/30 11/30 .4 .4 .4 .4 0 0 0 0 0 .4 .4 0 0 0 0 0 0 0
+n ligs 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 0 0 0 0 0
+n square_dots false false false false false false false false false false false false false true true true true true false false true true false false false false false
+n hefty false false false false false false false false false false false false false true true true true true false false true true true true true true true
+n serifs true true true true true true true true true true true true true false false false false false true true false false true true true true true
+n monospace false false false false false false false false false false false false false false false false false false false false false false true true true true true
+n low_asterisk false false false false false false false false false false false false false false false false false false false false false false true true true true true
+n math_fitting false false false false false false false false false false false false false false false false false false false false false false false false false false false
+p sc.u 12 12.95 14 16.45 22.75 12 12.95 14 16.45 15.34 16.67 18 21.13 12 12.95 14 16.45 22.75 14 18 17.21 14 17 18.9 21 24.7 21
+p sc.letter_fit 2.4 2.4 2.4 2.4 2.2 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.2 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4 2.4
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tiparoml.mf b/Master/texmf-dist/fonts/source/public/tipa/tiparoml.mf
new file mode 100644
index 00000000000..2895d6f62dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tiparoml.mf
@@ -0,0 +1,813 @@
+% tiparoml.mf: TIPA roman lowercase letters
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This font is based on:
+% Computer Modern font series by D. E. Knuth.
+%
+
+cmchar "Lower-case A";
+beginchar("a",CT(9u#,8.88u#),x_height#,0);
+if Times_Compat: bh#:=.6x_height#;
+else: bh#:=min(bar_height#,1.14x_height#-bar_height#); fi
+define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180); pos3(vair,90);
+ lft x1r=hround max(u,if Times_Compat:1.5u else:2.1u fi-.5flare);
+ x3=.5w if Times_Compat:-.25u else:-.5u fi;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-side_gap+.5stem);
+y4=if Times_Compat: .5 else: 1/3 fi[bh,h];
+pos5(stem,0); x5=x4;
+y5=if Times_Compat: max(.45bh,2vair) else: max(.55bh,2vair) fi;
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=if Times_Compat: 1.1 fi bh;
+pos7(hround(curve-2stem_corr),if Times_Compat: 200 else: 180 fi);
+lft x7r=hround max(.5u,1.5u-.5curve);
+if Times_Compat: y7=.3[top y8l,top y6r]; pos8(.6[vair,flare],210); x8l=.5w-1u;
+else: y7=1/3[top y8l,top y6r]; pos8(vair,270); x8l=.5w-.75u; fi
+pos9(thin_join,360); z9l=z5l; bot y8r=-oo;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e &
+ if Times_Compat: z7e{up}...{(35,10)}z6e
+ else: super_arc.e(7,6)fi}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ if Times_Compat: y13l:=.05[y12l,y13l]; y13r:=y13l; fi
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Lower-case B";
+beginchar("b",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lower-case C";
+beginchar("c",CT(8u#,8.88u#),x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+c_stroke(w);
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Lower-case D";
+beginchar("d",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+d_stroke(true,true,0);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lower-case E";
+beginchar("e",CT(7.25u#+max(.75u#,.5curve#),8.88u#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Lower-case F";
+beginchar("f",CT(5.5u#,6.66u#),asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(side_gap-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+if Times_Compat: rt x4=hround(w-if monospace:.75u+1 else:2/3u fi);
+else: rt x4=hround(w-if monospace:.75u+1 else:1/3u fi); fi
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4); endchar;
+
+cmchar "Lower-case G";
+beginchar("g",10u#+serif_fit#,x_height#,desc_depth#);
+h:=vround(x_height#*hppp); d:=vround(desc_depth#*hppp); % vertical adj.
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-side_gap+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=2/3[lft x2,edge]; y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Lower-case H";
+beginchar("h",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "Lower-case I";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("i",CT(5u#,5.56u#),min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,hround(x1+.5dot_diam-.2jut)-.5tiny)
+else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "Lower-case J";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("j",CT(5.5u#,5.56u#),min(asc_height#,10/7x_height#+.5dot_diam#),
+ desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Lower-case K";
+beginchar("k",CT(9.5u#,10u#),asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(side_gap-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also z3'l=z3l+penoffset z4$-$z3 of currentpen+whatever$*$(z3$-$z4);
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+cmchar "Lower-case L";
+beginchar("l",CT(5u#,5.56u#),asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2); endchar;
+
+cmchar "Lower-case M";
+beginchar("m",CT(15u#,15.56u#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; % stem, sic
+lft x3l=hround(.5w-.5mfudged.stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)+r-w; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lower-case N";
+beginchar("n",10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "Lower-case O";
+beginchar("o",CT(9u#,10u#),x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Lower-case P";
+beginchar("p",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lower-case Q";
+beginchar("q",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if not Times_Compat: if serifs: -.5u# fi fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-side_gap+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lower-case R";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("r",CT(if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,6.66u#),
+ x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(if Times_Compat: 1.6 else: 1.75 fi u,.25u+r_flare);
+ rt x5r=hround(w-if Times_Compat: .1u else: .5u fi +.5);
+ y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(side_gap-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(side_gap-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lower-case S";
+beginchar("s",CT(7.1u#,7.78u#),x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+cmchar "Lower-case T";
+beginchar("t",CT(6u#+max(u#,.5stem#),5.56u#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(side_gap-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w- if Times_Compat: .4u else: 1.3u fi);
+top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w- if Times_Compat: 0 fi u);
+if serifs: pos5(hair,0); x4l=.5[x3l,x5l];
+ y5= if Times_Compat: .5 else: 1 fi [0,y3];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ if Times_Compat: else:
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; fi % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lower-case U";
+beginchar("u",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(side_gap-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h if Times_Compat: else: +min(oo,serif_drop) fi;
+ bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: numeric upper_serif_drop, lower_serif_drop;
+ if Times_Compat: upper_serif_drop=0; lower_serif_drop=serif_drop;
+ else: upper_serif_drop=serif_drop; lower_serif_drop=min(oo,serif_drop); fi
+ sloped_serif.l(1,2,a,1/3,jut,upper_serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,upper_serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,lower_serif_drop); fi % lower right serif
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+cmchar "Lower-case V";
+beginchar("v",CT(if serifs: 9.5u# else:9u# fi,10u#),x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Lower-case W";
+beginchar("w",CT(13u#,14.44u#),x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % x5r $\approx$ x4r+mid_corr
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.9[z5l,z6l]
+ ..{z5-z6}.1[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "Lower-case X";
+beginchar("x",CT(if serifs:9.5u# else:9u# fi,10u#),x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "Lower-case Y";
+beginchar("y",CT(if serifs:9.5u# else:9u# fi,10u#),x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lower-case Z";
+beginchar("z",CT(8u#,8.88u#),x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Dotless I";
+beginchar(oct"031",CT(5u#,5.56u#),x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+penlabels(1,2); endchar;
+
+cmchar "Dotless letter J";
+beginchar(oct"032",CT(5.5u#,5.56u#),x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+penlabels(1,2,5,6,7); endchar;
+
+% end of tiparoml.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasb10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasb10.mf
new file mode 100644
index 00000000000..1eef96f4c86
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasb10.mf
@@ -0,0 +1,92 @@
+% tipasb10.mf: TIPA Sans Serif Bold Extended 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASB"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=22/36pt#;
+width_adj#:=22/36pt#;
+serif_fit#:=-9/36pt#;
+cap_serif_fit#:=-11/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=250/36pt#;
+fig_height#:=250/36pt#;
+x_height#:=165/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=90/36pt#;
+comma_depth#:=38/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=26/36pt#;
+tiny#:=26/36pt#;
+fine#:=9/36pt#;
+thin_join#:=9/36pt#;
+hair#:=49/36pt#;
+stem#:=49/36pt#;
+curve#:=49/36pt#;
+ess#:=43/36pt#;
+flare#:=40/36pt#;
+dot_size#:=47/36pt#;
+cap_hair#:=49/36pt#;
+cap_stem#:=53/36pt#;
+cap_curve#:=53/36pt#;
+cap_ess#:=51/36pt#;
+rule_thickness#:=30/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=1.5/36pt#;
+vair#:=26/36pt#;
+notch_cut#:=49/36pt#;
+bar#:=26/36pt#;
+slab#:=36/36pt#;
+cap_bar#:=34/36pt#;
+cap_band#:=31/36pt#;
+cap_notch_cut#:=45/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=2/36pt#;
+apex_corr#:=18/36pt#;
+o#:=8/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.88;
+math_spread:=.5;
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=17.21/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasc.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasc.mf
new file mode 100644
index 00000000000..def61220f4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasc.mf
@@ -0,0 +1,496 @@
+% tipasc.mf: TIPA small capital phonetic symbols
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This font is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+% romanu.mf -> tipasc.mf conversion:
+%
+% x_height -> .626x_height
+% bar_height -> .632bar_height
+% cap_height -> x_height
+% comma_depth -> 44/70comma_depth
+% cap_hair -> sc_hair
+% cap_stem -> sc_stem
+% cap_curve -> sc_curve
+% cap_ess -> sc_ess
+% cap_jut -> sc_jut
+% cap_bar -> sc_bar
+% cap_band -> sc_band
+
+def sc_hair = hair enddef;
+def sc_stem = stem enddef;
+def sc_curve = curve enddef;
+def sc_jut = cap_jut enddef;
+def sc_bar = cap_bar enddef;
+def sc_band = cap_band enddef;
+
+cmchar "Small capital Y";
+beginchar("Y",13u#,x_height#,0);
+italcorr x_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=sc_stem-stem_corr;
+right_stem=min(sc_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75sc_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+sc_jut+.5u+1<=lft x4'l-sc_jut: inner_jut=sc_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,sc_jut,f,1/3,sc_jut); fi % lower serif
+math_fit(.5u#-x_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Small capital I";
+beginchar("I",max(6u#,4u#+sc_stem#),x_height#,0);
+italcorr x_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(sc_stem,0); pos2(sc_stem,0);
+lft x1l=lft x2l=hround(.5w-.5sc_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05sc_jut,b,1/3,1.05sc_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05sc_jut,d,1/3,1.05sc_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "Inverted small capital R";
+beginchar("K",if serifs: 12u#+.5max(2u#,sc_curve#)
+ else:12.5u#-.5width_adj# fi,x_height#,0);
+italcorr .75x_height#*slant+ if serifs: .25 else: 1 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(sc_stem',0); pos2(sc_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5sc_stem'); bot y1=0; top y2=h;
+filldraw stroke z2e--z1e; % stem
+penpos3(sc_band,-90); penpos4(sc_band,-90);
+penpos5(sc_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,90); penpos7(vair,90);
+z3r=bot z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h-.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125sc_curve;
+fill stroke z7e..pulled_arc.e(6,5) & pulled_arc.e(5,4)..z3e; % lobe
+if serifs: pos6'(vair,90); pos0(sc_stem,180);
+ pos8(sc_curve,180); pos9(vair,90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5sc_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ top y9r=h+o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{down}; % tail
+ nodish_serif(1,2,a,1/3,sc_jut,b,1/3,.5sc_jut); % upper serif
+ dish_serif(2,1,c,1/3,sc_jut,d,1/3,sc_jut); % lower serif
+else: penpos8(sc_stem-2stem_corr,0); penpos9(sc_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=h;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Small capital A";
+beginchar(oct"300",13u#,x_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=sc_stem-stem_corr;
+left_stem=min(sc_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8sc_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=sc_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+sc_jut+.5u+1<=lft x4'l-sc_jut: inner_jut=sc_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Small capital B";
+beginchar(oct"340",12.5u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=sc_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(sc_band,90); penpos4(sc_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(sc_band,-90); penpos12(sc_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=sc_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=sc_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,sc_jut,b,1/3,.5sc_jut); % upper serif
+ nodish_serif(2,1,c,1/3,sc_jut,d,1/3,.5sc_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Small capital O-E ligature";
+beginchar(oct"327",18u#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric light_stem;
+light_stem=max(tiny.breadth,hround .8[mfudged.hair,mfudged.sc_stem]);
+pickup tiny.nib; pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround .5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-.8beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(sc_bar,-90); pos6(mfudged.hair,0);
+top y5l=vround(.52[y2,y1]+.5sc_bar); x5=x1;
+pos0(sc_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.4u+.5mfudged.hair);
+ y6=good.y(y5l+.5beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+.9beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+penpos11(vair,90); penpos13(vair,-90);
+if monospace: penpos12(fudged.sc_stem,180);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: penpos12(hround(sc_curve-stem_corr),180); fi
+x11=x13=.5w-2u; y11r=h+o; y13r=-o; y12=.5h-vair_corr; x12r=hround u;
+x14=x15=.5w; y14=2/3h; y15=1/3h; y12l:=.52h;
+penstroke super_arc.e(11,12) & super_arc.e(12,13); % left half of bowl
+fill z13r{right}..{right}(x2,0)--(x1,h){left}..{left}z11r
+ --z11l{right}...{z14-z11l}(.82[x11l,x14],.82[y14,y11l])
+ ...z14---z15...{z13l-z15}(.82[x13l,x15],.82[y15,y13l])
+ ...{left}z13l--cycle; % right half of bowl
+if serifs: serif(1,2,a,1/3,.5sc_jut); % upper serif
+ serif(2,1,b,1/3,.5sc_jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15); endchar;
+
+cmchar "Small capital G";
+if serifs: beginchar(oct"345",14u#,x_height#,0);
+ italcorr x_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(sc_stem,0); pos7(sc_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[.632bar_height,.626x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(sc_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(sc_hair,0); pos8(sc_stem,0);
+ y7=.316bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(sc_hair,0); pos2(sc_band,90);
+ pos3(sc_curve,180); pos4(sc_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,.626x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,sc_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2sc_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(sc_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3x_height#*slant-.5u#,ic#);
+else: beginchar(oct"345",12u#,x_height#,0);
+ italcorr x_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(sc_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5sc_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[.632bar_height,.626x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(sc_bar,90); pos9(sc_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3x_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Small capital N";
+beginchar(oct"360",13u#+width_adj#,x_height#,0);
+italcorr x_height#*slant-cap_serif_fit#+sc_jut#-2.5u#+min(.5sc_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.sc_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.sc_stem,0); penpos6(fudged.sc_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,sc_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-sc_jut); % upper left serif
+ else: serif(5,6,a,1/3,-sc_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,sc_jut,c,1/2,sc_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,sc_jut,f,1/2,sc_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+cmchar "Small capital R";
+beginchar(oct"366",if serifs: 12u#+.5max(2u#,sc_curve#)
+ else:12.5u#-.5width_adj# fi,x_height#,0);
+italcorr .75x_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(sc_stem',0); pos2(sc_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5sc_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(sc_band,90); penpos4(sc_band,90);
+penpos5(sc_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125sc_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(sc_stem,180);
+ pos8(sc_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5sc_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,sc_jut,b,1/3,.5sc_jut); % upper serif
+ dish_serif(2,1,c,1/3,sc_jut,d,1/3,sc_jut); % lower serif
+else: penpos8(sc_stem-2stem_corr,0); penpos9(sc_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Hooktop small capital G";
+if serifs: beginchar(oct"311",14u#,x_height#,0);
+ italcorr .9asc_height#*slant-.5cap_serif_fit#+2u#;
+ adjust_fit(0,.5cap_serif_fit#+.5u#);
+ pickup tiny.nib; pos0(sc_stem,0); pos7(sc_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[.632bar_height,.626x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(sc_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(sc_hair,0); pos8(sc_stem,0);
+ y7=.316bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(sc_hair,0); pos2(sc_band,90);
+ pos3(sc_curve,180); pos4(sc_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,.626x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,sc_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2sc_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(sc_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3x_height#*slant-.5u#,ic#);
+ pos10(hair,0); y10=y1; rt x10r=rt x1r;
+ hooktop(10,11,12,13,hair,hround(w+2.5u),.9asc_height+.5vair,.9,.55,.6);
+else: beginchar(oct"311",12u#,x_height#,0);
+ italcorr x_height#*slant-.5u#+2u#;
+ adjust_fit(0,.5u#);
+ pickup fine.nib; pos1(1.2flare,30); pos2(slab,90);
+ pos3(sc_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.2u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5sc_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .83h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[.632bar_height,.626x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(sc_bar,90); pos9(sc_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3x_height#*slant-.5u#,.5ic#);
+ pos10(vair,0); y10=y1r; rt x10r=rt x1r;
+ hooktop(10,11,12,13,vair,hround(w+2.5u),.9asc_height+.5vair,.9,.5,.5); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Small capital H";
+beginchar(oct"313",13u#+width_adj#,x_height#,0);
+italcorr x_height#*slant-cap_serif_fit#+sc_jut#-2.5u#+min(.5sc_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(sc_stem,0); pos2(sc_stem,0);
+pos3(sc_stem,0); pos4(sc_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5sc_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(sc_bar,90); penpos6(sc_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+sc_jut+.5u+1<=lft x3l-sc_jut: inner_jut=sc_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,sc_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,sc_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,sc_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,sc_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Small capital L";
+beginchar(oct"317",11u#-width_adj#,x_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(sc_stem,0); pos2(sc_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5sc_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,sc_jut,b,1/3,1.25sc_jut); % upper serif
+ nodish_serif(2,1,c,1/3,sc_jut,d,1/3,.5sc_jut); fi % lower serif
+math_fit(0,u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Small capital U";
+beginchar(oct"332",13u#+.5width_adj#,x_height#,0);
+italcorr x_height#*slant-cap_serif_fit#+sc_jut#-2.5u#+min(.5sc_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(sc_stem,0); pos2(sc_stem,0);
+pos2'(sc_stem,180); z2'=z2;
+pos3(sc_band,-90);
+pos4(sc_hair,0); pos5(sc_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5sc_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,sc_jut,b,1/3,sc_jut); % left serif
+ dish_serif(5,4,c,1/2,sc_jut,d,1/2,sc_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3x_height#*slant-min(x_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5); endchar;
+
+cmchar "Small capital E";
+beginchar(oct"244",12u#-width_adj#,x_height#,0);
+italcorr x_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(sc_stem,0); pos2(sc_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5sc_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-.8beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(sc_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5sc_bar); x5=x1;
+pos0(sc_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.5beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+.9beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,sc_jut,b,1/3,.5sc_jut); % upper serif
+ nodish_serif(2,1,c,1/3,sc_jut,d,1/3,.5sc_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Small capital J";
+beginchar(oct"250",9u#,x_height#,0);
+italcorr x_height#*slant-cap_serif_fit#
+ +.75sc_jut#-2.5u#+min(.5sc_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(sc_stem',0); pos2(sc_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(sc_hair,-180);
+ pos5(flare+(sc_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3sc_jut,b,1/3,.75sc_jut); % serif
+ pickup tiny.nib; bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(sc_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+cmchar "Small capital omega";
+beginchar(oct"261",13u#,x_height#,0);
+italcorr .75x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(sc_curve,180);
+pos3(vair,180); pos4(sc_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+% end of tipasc.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasi10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasi10.mf
new file mode 100644
index 00000000000..1b36f0ef573
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasi10.mf
@@ -0,0 +1,92 @@
+% tipasi10.mf: TIPA Sans Serif Slanted 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASI"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-7/36pt#;
+cap_serif_fit#:=-10/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=250/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=79/36pt#;
+comma_depth#:=45/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=17/36pt#;
+hair#:=28/36pt#;
+stem#:=28/36pt#;
+curve#:=28/36pt#;
+ess#:=28/36pt#;
+flare#:=25/36pt#;
+dot_size#:=30/36pt#;
+cap_hair#:=28/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=32/36pt#;
+cap_ess#:=32/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=18/36pt#;
+bar#:=21/36pt#;
+slab#:=23/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=20/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=5/36pt#;
+o#:=8/36pt#;
+apex_o#:=0pt#;
+slant:=sind 12/cosd 12;
+fudge:=.96;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasl10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasl10.mf
new file mode 100644
index 00000000000..92cc2804b76
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasl10.mf
@@ -0,0 +1,92 @@
+% tipasl10.mf: TIPA Slanted Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASL"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=87/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=25/36pt#;
+curve#:=30/36pt#;
+ess#:=27/36pt#;
+flare#:=33/36pt#;
+dot_size#:=38/36pt#;
+cap_hair#:=11/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=37/36pt#;
+cap_ess#:=35/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=1/36pt#;
+bracket#:=20/36pt#;
+jut#:=28/36pt#;
+cap_jut#:=37/36pt#;
+beak_jut#:=10/36pt#;
+beak#:=70/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=10pt#;
+bar#:=11/36pt#;
+slab#:=11/36pt#;
+cap_bar#:=11/36pt#;
+cap_band#:=11/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=4/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=8/36pt#;
+apex_o#:=8/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasl12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasl12.mf
new file mode 100644
index 00000000000..359b3c99ef0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasl12.mf
@@ -0,0 +1,92 @@
+% tipasl12.mf: TIPA Slanted Roman 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASL"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5.8/36pt#;
+letter_fit#:=0pt#;
+body_height#:=324/36pt#;
+asc_height#:=300/36pt#;
+cap_height#:=295.2/36pt#;
+fig_height#:=278.4/36pt#;
+x_height#:=186/36pt#;
+math_axis#:=108/36pt#;
+bar_height#:=104.4/36pt#;
+comma_depth#:=84/36pt#;
+desc_depth#:=84/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7.5/36pt#;
+hair#:=9.5/36pt#;
+stem#:=28/36pt#;
+curve#:=33/36pt#;
+ess#:=30/36pt#;
+flare#:=36/36pt#;
+dot_size#:=42/36pt#;
+cap_hair#:=11.5/36pt#;
+cap_stem#:=35/36pt#;
+cap_curve#:=40/36pt#;
+cap_ess#:=38/36pt#;
+rule_thickness#:=.44pt#;
+dish#:=1/36pt#;
+bracket#:=24/36pt#;
+jut#:=33/36pt#;
+cap_jut#:=41/36pt#;
+beak_jut#:=11.4/36pt#;
+beak#:=84/36pt#;
+vair#:=8.5/36pt#;
+notch_cut#:=12pt#;
+bar#:=12.5/36pt#;
+slab#:=12.5/36pt#;
+cap_bar#:=12.5/36pt#;
+cap_band#:=12.5/36pt#;
+cap_notch_cut#:=12pt#;
+serif_drop#:=4.8/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=9/36pt#;
+apex_o#:=9/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=-0.2;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=16.45/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasl8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasl8.mf
new file mode 100644
index 00000000000..5ed37ef9058
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasl8.mf
@@ -0,0 +1,92 @@
+% tipasl8.mf: TIPA Slanted Roman 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASL"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=17/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=4.1/36pt#;
+letter_fit#:=0pt#;
+body_height#:=216/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=196.8/36pt#;
+fig_height#:=185.6/36pt#;
+x_height#:=124/36pt#;
+math_axis#:=72/36pt#;
+bar_height#:=69.6/36pt#;
+comma_depth#:=56/36pt#;
+desc_depth#:=56/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=22/36pt#;
+curve#:=25.5/36pt#;
+ess#:=23/36pt#;
+flare#:=27/36pt#;
+dot_size#:=32/36pt#;
+cap_hair#:=9.5/36pt#;
+cap_stem#:=26.5/36pt#;
+cap_curve#:=30/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.36pt#;
+dish#:=1/36pt#;
+bracket#:=16/36pt#;
+jut#:=22/36pt#;
+cap_jut#:=29/36pt#;
+beak_jut#:=8.4/36pt#;
+beak#:=56/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=8pt#;
+bar#:=9.5/36pt#;
+slab#:=9.5/36pt#;
+cap_bar#:=9.5/36pt#;
+cap_band#:=9.5/36pt#;
+cap_notch_cut#:=8pt#;
+serif_drop#:=3.2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=6/36pt#;
+apex_o#:=6/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=.4;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasl9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasl9.mf
new file mode 100644
index 00000000000..fc0d51ece4b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasl9.mf
@@ -0,0 +1,92 @@
+% tipasl9.mf: TIPA Slanted Roman 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASL"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=18.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=4.6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=243/36pt#;
+asc_height#:=225/36pt#;
+cap_height#:=221.4/36pt#;
+fig_height#:=208.8/36pt#;
+x_height#:=139.5/36pt#;
+math_axis#:=81/36pt#;
+bar_height#:=78.3/36pt#;
+comma_depth#:=63/36pt#;
+desc_depth#:=63/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=24/36pt#;
+curve#:=28/36pt#;
+ess#:=25/36pt#;
+flare#:=30/36pt#;
+dot_size#:=35/36pt#;
+cap_hair#:=10/36pt#;
+cap_stem#:=29/36pt#;
+cap_curve#:=33/36pt#;
+cap_ess#:=31/36pt#;
+rule_thickness#:=.38pt#;
+dish#:=1/36pt#;
+bracket#:=18/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=33/36pt#;
+beak_jut#:=9.2/36pt#;
+beak#:=63/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=9pt#;
+bar#:=10/36pt#;
+slab#:=10/36pt#;
+cap_bar#:=10/36pt#;
+cap_band#:=10/36pt#;
+cap_notch_cut#:=9pt#;
+serif_drop#:=3.6/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=7/36pt#;
+apex_o#:=7/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=.2;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12.95/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipass10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipass10.mf
new file mode 100644
index 00000000000..1149ecc8cf6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipass10.mf
@@ -0,0 +1,92 @@
+% tipass10.mf: TIPA Sans Serif 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASS"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-7/36pt#;
+cap_serif_fit#:=-10/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=250/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=79/36pt#;
+comma_depth#:=45/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=17/36pt#;
+hair#:=28/36pt#;
+stem#:=28/36pt#;
+curve#:=28/36pt#;
+ess#:=28/36pt#;
+flare#:=25/36pt#;
+dot_size#:=30/36pt#;
+cap_hair#:=28/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=32/36pt#;
+cap_ess#:=32/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=18/36pt#;
+bar#:=21/36pt#;
+slab#:=23/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=20/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=5/36pt#;
+o#:=8/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.96;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipass12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipass12.mf
new file mode 100644
index 00000000000..5277cc8f393
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipass12.mf
@@ -0,0 +1,92 @@
+% tipass12.mf: TIPA Sans Serif 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASS"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23.5/36pt#;
+width_adj#:=17/36pt#;
+serif_fit#:=-9/36pt#;
+cap_serif_fit#:=-13/36pt#;
+letter_fit#:=0pt#;
+body_height#:=324/36pt#;
+asc_height#:=300/36pt#;
+cap_height#:=300/36pt#;
+fig_height#:=283/36pt#;
+x_height#:=192/36pt#;
+math_axis#:=108/36pt#;
+bar_height#:=97/36pt#;
+comma_depth#:=54/36pt#;
+desc_depth#:=84/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=20/36pt#;
+hair#:=33/36pt#;
+stem#:=33/36pt#;
+curve#:=33/36pt#;
+ess#:=33/36pt#;
+flare#:=30/36pt#;
+dot_size#:=35/36pt#;
+cap_hair#:=33/36pt#;
+cap_stem#:=37/36pt#;
+cap_curve#:=37/36pt#;
+cap_ess#:=37/36pt#;
+rule_thickness#:=.44pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.6/36pt#;
+vair#:=26/36pt#;
+notch_cut#:=22/36pt#;
+bar#:=25/36pt#;
+slab#:=27/36pt#;
+cap_bar#:=26/36pt#;
+cap_band#:=24/36pt#;
+cap_notch_cut#:=31/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=6/36pt#;
+o#:=9/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.98;
+math_spread:=-0.2;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=16.45/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipass17.mf b/Master/texmf-dist/fonts/source/public/tipa/tipass17.mf
new file mode 100644
index 00000000000..1ec586c2c42
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipass17.mf
@@ -0,0 +1,92 @@
+% tipass17.mf: TIPA Sans Serif 17.28 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASS"; font_size 17.28pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=32.5/36pt#;
+width_adj#:=24/36pt#;
+serif_fit#:=-12/36pt#;
+cap_serif_fit#:=-17/36pt#;
+letter_fit#:=0pt#;
+body_height#:=466/36pt#;
+asc_height#:=432/36pt#;
+cap_height#:=432/36pt#;
+fig_height#:=408/36pt#;
+x_height#:=267.8/36pt#;
+math_axis#:=155.5/36pt#;
+bar_height#:=136/36pt#;
+comma_depth#:=78/36pt#;
+desc_depth#:=121/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=28/36pt#;
+hair#:=47/36pt#;
+stem#:=47/36pt#;
+curve#:=47/36pt#;
+ess#:=47/36pt#;
+flare#:=42/36pt#;
+dot_size#:=50/36pt#;
+cap_hair#:=47/36pt#;
+cap_stem#:=52/36pt#;
+cap_curve#:=52/36pt#;
+cap_ess#:=52/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.8/36pt#;
+vair#:=38/36pt#;
+notch_cut#:=32/36pt#;
+bar#:=36/36pt#;
+slab#:=40/36pt#;
+cap_bar#:=38/36pt#;
+cap_band#:=35/36pt#;
+cap_notch_cut#:=46/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=7/36pt#;
+o#:=10/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=1;
+math_spread:=-0.4;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=22.75/36pt#;
+sc.letter_fit#:=2.2/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipass8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipass8.mf
new file mode 100644
index 00000000000..223b2156a88
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipass8.mf
@@ -0,0 +1,92 @@
+% tipass8.mf: TIPA Sans Serif 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASS"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=17/36pt#;
+width_adj#:=12/36pt#;
+serif_fit#:=-6/36pt#;
+cap_serif_fit#:=-8.5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=216/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=200/36pt#;
+fig_height#:=189/36pt#;
+x_height#:=128/36pt#;
+math_axis#:=72/36pt#;
+bar_height#:=63/36pt#;
+comma_depth#:=37/36pt#;
+desc_depth#:=56/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=15/36pt#;
+hair#:=25/36pt#;
+stem#:=25/36pt#;
+curve#:=25/36pt#;
+ess#:=25/36pt#;
+flare#:=22/36pt#;
+dot_size#:=26/36pt#;
+cap_hair#:=25/36pt#;
+cap_stem#:=29/36pt#;
+cap_curve#:=29/36pt#;
+cap_ess#:=28/36pt#;
+rule_thickness#:=.36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.4/36pt#;
+vair#:=19/36pt#;
+notch_cut#:=16/36pt#;
+bar#:=18/36pt#;
+slab#:=20/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=22/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=4/36pt#;
+o#:=6/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.93;
+math_spread:=.4;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipass9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipass9.mf
new file mode 100644
index 00000000000..4e71ab37265
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipass9.mf
@@ -0,0 +1,92 @@
+% tipass9.mf: TIPA Sans Serif 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPASS"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=18.5/36pt#;
+width_adj#:=13/36pt#;
+serif_fit#:=-6.5/36pt#;
+cap_serif_fit#:=-9/36pt#;
+letter_fit#:=0pt#;
+body_height#:=243/36pt#;
+asc_height#:=225/36pt#;
+cap_height#:=225/36pt#;
+fig_height#:=212/36pt#;
+x_height#:=144/36pt#;
+math_axis#:=81/36pt#;
+bar_height#:=71/36pt#;
+comma_depth#:=41/36pt#;
+desc_depth#:=63/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=16/36pt#;
+hair#:=27/36pt#;
+stem#:=27/36pt#;
+curve#:=27/36pt#;
+ess#:=27/36pt#;
+flare#:=24/36pt#;
+dot_size#:=28/36pt#;
+cap_hair#:=27/36pt#;
+cap_stem#:=31/36pt#;
+cap_curve#:=31/36pt#;
+cap_ess#:=31/36pt#;
+rule_thickness#:=.38pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=21/36pt#;
+notch_cut#:=17/36pt#;
+bar#:=20/36pt#;
+slab#:=22/36pt#;
+cap_bar#:=21/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=24/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=4.5/36pt#;
+o#:=7/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.95;
+math_spread:=.2;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12.95/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasym1.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasym1.mf
new file mode 100644
index 00000000000..0fd8d769654
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasym1.mf
@@ -0,0 +1,922 @@
+% tipasym1.mf: TIPA phonetic symbols (1)
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This font is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+cmchar "Barred U";
+beginchar("0",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-1.5u#;
+if serifs: adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+else: adjust_fit(serif_fit#+stem_shift#+.5u#,serif_fit#-stem_shift#+.5u#); fi
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(side_gap-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h if Times_Compat: else: +min(oo,serif_drop) fi;
+ bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: numeric upper_serif_drop, lower_serif_drop;
+ if Times_Compat: upper_serif_drop=0; lower_serif_drop=serif_drop;
+ else: upper_serif_drop=serif_drop; lower_serif_drop=min(oo,serif_drop); fi
+ sloped_serif.l(1,2,a,1/3,jut,upper_serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,upper_serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,lower_serif_drop); fi % lower right serif
+hbar(7,8,lft x1l - hround(1.5u),rt x3r + hround(1.5u),.58x_height);
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+cmchar "Barred I";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("1",CT(5u#,5.56u#),min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+if serifs: adjust_fit(serif_fit#+stem_shift#+.3u# if monospace:+.25u#fi,
+ serif_fit#-stem_shift#+.3u#);
+else: adjust_fit(serif_fit#+stem_shift#+.8u# if monospace:+.25u#fi,
+ serif_fit#-stem_shift#+.8u#); fi
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,hround(x1+.5dot_diam-.2jut)-.5tiny)
+else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+hbar(5,6,lft x1l - hround(1.8u),rt x1r + hround(1.8u),.58x_height);
+penlabels(1,2,3,4); endchar;
+
+cmchar "Turned V";
+beginchar("2",CT(if serifs: 9.5u# else:9u# fi,10u#),x_height#,0);
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=fudged.stem-stem_corr;
+left_stem=min(fudged.hair if hefty:-2stem_corr fi,right_stem);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=0;
+x2-x1=x4-x3; x2r+apex_corr=x3r; y2=y3=h+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-notch_cut: y0:=h-notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut); fi % right serif
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Reversed epsilon";
+beginchar("3",CT(8.5u#,8.88u#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+epsilon_stroke(true,3.5u);
+if serifs: numeric bulb_diam;
+ bulb_diam=max(flare-.75(cap_stem-stem),stem);
+ pos0(bulb_diam,180); pos1(hair,180);
+ lft x0r=hround u; y0=min(.9h-.5bulb_diam,.75h+.5bulb_diam);
+ bulb(2,1,0); % upper bulb
+ pos9(bot_thickness,angle(-2u,-h));
+else: pos1(.47[vair',flare],100); lft x1r = 1u; top y1r = .9h;
+ filldraw stroke term.e(2,1,left,1,4);
+ pos9(.6[vair',flare],-100); fi
+lft x9r=hround .75u; top y9=vround .25h-o;
+y9r:=good.y y9r-eps; x9l:=good.x x9l;
+filldraw stroke term.e(8,9,left,1,4); % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Turned H";
+beginchar("4",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant+serif_fit#;
+adjust_fit(serif_fit#-stem_shift#,serif_fit#+stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+rt x1r=hround(w-(2.5u-.5stem)); x1r=x1'r=x2r=x2'r; x3=w-x1;
+bot y1=-d-min(oo,serif_drop); top y2=h; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+turned_h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.r(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if lft x2l-jut-.5u-1>=rt x4r+jut: inner_jut=jut;
+ else: lft x2l-jut-.5u-1=rt x4r+inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "Turned A";
+beginchar("5",CT(9u#,8.88u#),x_height#,0);
+if Times_Compat: bh#:=.6x_height#;
+else: bh#:=min(bar_height#,1.14x_height#-bar_height#); fi
+define_pixels(bh);
+italcorr .8x_height#*slant+.5stem#-1u#;
+adjust_fit(serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi,0);
+pickup fine.nib; bot y3r=-vround 1.5oo;
+if serifs: pos1(flare,0); pos2(hair,0); pos3(vair,-90);
+ rt x1r=hround(w-max(u,if Times_Compat:1.5u else:2.1u fi-.5flare));
+ x3=.5w if Times_Compat:+.25u else:+.5u fi;
+ y1=h-(min(bh+.5flare+2vair+2,.9[bh,h]-.5flare));
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],-85); x1l=good.x(w-1.5u); x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],-90);
+ x3=.5w+.2u; bot y1r=vround(.18[bot y3r,h-bh]);
+ filldraw stroke term.e(3,1,right,.9,4); fi % terminal
+pos4(stem,180); lft x4r=hround(side_gap-.5stem);
+y4=h-if Times_Compat: .5 else: 1/3 fi[bh,h];
+pos5(stem,180); x5=x4;
+y5=h-if Times_Compat: max(.45bh,2vair) else: max(.55bh,2vair) fi;
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],-90); x6=x4; top y6=h-if Times_Compat: 1.1 fi bh;
+pos7(hround(curve-2stem_corr),if Times_Compat: 20 else: 0 fi);
+rt x7r=hround(w-max(.5u,1.5u-.5curve));
+if Times_Compat: y7=.3[bot y8l,bot y6r]; pos8(.6[vair,flare],30); x8l=.5w+1u;
+else: y7=1/3[bot y8l,bot y6r]; pos8(vair,90); x8l=.5w+.75u; fi
+pos9(thin_join,180); z9l=z5l; top y8r=h+oo;
+(x,y8r)=whatever[z8l,z9l]; x8r:=min(x,x8+u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{up}...z8e{right}...{down}z7e &
+ if Times_Compat: z7e{down}...{(-35,-10)}z6e
+ else: super_arc.e(7,6)fi}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,180); lft x5'r=fine.lft x5r; y5'=y5;
+ pos10(shaved_stem,180); x10=x5'; y10=h-.2[.5tiny,bh];
+ pos11(shaved_stem,180); lft x11r=hround .25u; top y11=h;
+ pos12(shaved_stem,180); x11=x12; bot y12=h-(slab+eps);
+ filldraw z5'l---z10l...z11l{left}--z11r
+ --z12r{right}...z10r-.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,180); lft x5'r=fine.lft x5r; y5'=y5;
+ pos10(shaved_stem,180); x10=x5'; y10=h-1/3bh;
+ pos11(.2[vair,stem],-90); x11r=.5[x10r,x12r]; top y11l=h+vround .5oo;
+ pos12(hair,0); lft x12l=hround(.1u); y12=min(y10,y11-vair);
+ pos13(hair,0); x13=x12; bot y13=min(vround(h-.6bh),bot y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=min(x',x10);
+ if Times_Compat: y13l:=.05[y12l,y13l]; y13r:=y13l; fi
+ filldraw stroke z5'e---z10e...z11e{left}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,180); lft x5'r=fine.lft x5r; y5'=y5;
+ pos10(shaved_stem,180); x10=x5'; top y10=h;
+ filldraw stroke z5'e--z10e; fi % base of stem
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Turned script A";
+beginchar("6",10u#+serif_fit#,x_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h+min(oo,serif_drop);
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Ram's horns";
+beginchar("7",CT(9.5u#,10u#),x_height#,0);
+italcorr x_height#*slant+.5hair#-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+if serifs: pos1(hair,0); pos9(hair,180);
+else: pos1(fudged.stem,-10); pos9(fudged.stem,190); fi
+pos2(vair,-90); pos5(vair,90); pos8(vair,-90);
+lft x1l=w-rt x9l=hround(.5u-.25hair); y1=y9=.9h-.5hair; x5=.5w; bot y5l=-o;
+x2=w-x8=x1+1u+.15hair; top y2l=top y8l=h+o;
+if serifs: pos4(stem,180); pos6(hair,0); pos3(stem,180);pos7(hair,0);
+else: pos4(fudged.stem,180); pos6(fudged.hair,0);
+ pos3(fudged.stem,180);pos7(fudged.hair,0); fi
+rt x4l=hround(x5+1u+.5stem); lft x6l=hround(x5-1u-.5hair);
+y4=y6=.25h+.5max(vair,.5stem);
+rt x3l=lft x7l=.5w+.5(.5stem-.5hair);
+y3=y7=.55h+1.5max(vair,.5stem);
+filldraw stroke z3e--z4e{z4-z3}...{left}z5e...{z7-z6}z6e--z7e;
+filldraw stroke z1e{up}..z2e...{z4-z3}z3e;
+filldraw stroke z7e{z7-z6}...z8e..{down}z9e;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Barred O";
+beginchar("8",CT(9u#,10u#),x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+hbar(5,6,x2,x4,.5x_height+.5bar);
+penlabels(1,2,3,4); endchar;
+
+cmchar "Reversed E";
+beginchar("9",CT(7.25u#+max(.75u#,.5curve#),8.88u#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,180);
+pos2(vair,90); pos3(left_curve,0);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+lft x1r=hround max(.5u,u-.5right_curve);
+rt x3r=hround min(w-.5u,w-(1.25u-.5left_curve)); x2=.5w-.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2-.25u;
+if serifs: pos4(vair',-90); pos5(hair,-180);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=max(x,x4l-.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,-90);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,-90); z4=z4';
+ pos5(.5[vair,flare],-95); lft x5r=hround(.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,left,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(w,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Schwa";
+beginchar("@",CT(7.25u#+max(.75u#,.5curve#),8.88u#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,180);
+pos2(vair,-90); pos3(left_curve,0);
+y1=good.y (h-bar_height); bot y2r=-vround 1.5oo; y0l=top y1;
+lft x1r=hround min(.5u,u-.5right_curve);
+rt x3r=hround max(w-.5u,w-1.25u+.5left_curve); x2=.5w-.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; top y4r=h+oo; x4=x2-.25u;
+if serifs: pos4(vair',90); pos5(hair,180);
+ y5=min(good.y(h-(.5bar_height-.9)),y4l-vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=max(x,x4l-.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,90);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,90); z4=z4';
+ pos5(.5[vair,flare],95); lft x5r=hround(.6u);
+ y5r=good.y(h-(-y5r+1/3bar_height+y5)); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,left,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l-.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,1',2,3,4,5); endchar;
+
+cmchar "Script A";
+beginchar("A",10u#+serif_fit#,x_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2.5u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-side_gap+.5stem'); top y1=h+oo;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180);
+pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=1/3[lft x2,edge]; y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z0'; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e;
+if serifs: sloped_serif.r(2,0,b,1/3,jut,serif_drop); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Beta";
+beginchar("B",CT(9.0u#,9.5u#),asc_height#,desc_depth#);
+italcorr .5[x_height#,asc_height#]*slant-u#;
+adjust_fit(serif_fit#+.5u#,0); pickup tiny.nib;
+pos0(stem,180); pos1(stem,180); pos2(vair,90);
+pos3(stem,0); pos4(vair,-90); pos5(vair,90);
+pos6(vair,-270); pos7(curve,-360); pos8(vair,-450);
+if serifs: if monospace: pos9(stem,-540); else: pos9(1.25hair,-540); fi
+else: pos9(stem,-540); fi
+pos0'(stem,0); pos1'(stem,0); z0'=z0; z1'=z1;
+x0=x1=x9; lft x0r=hround u; x4=x6=x8=.5w+.5u-.25curve; x2=.5w;
+rt x3r=hround(w-1.5u); rt x7r=hround(w-1.5u+.5curve);
+lft x5r=min(hround(rt x1l+1.2u),hround(x2-.3curve));
+bot y0'=-d; top y4l=vround(.56asc_height+.5vair);
+top y2r=h+oo; y1+o=y3=.5[y2,y4];
+y5=.5[y4,y6]; y4l=y6r; bot y8=-oo; y7=y9=.5[y6,y8];
+pos4'(vair,-90); pos6'(vair,-270); z4'=z6'=z5;
+filldraw stroke z0e---z1e...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{left}z4'e; % stem and upper bowl
+filldraw stroke z6'e{right}...pulled_arc.e(6,7)
+ & pulled_arc.e(7,8)...{up}z9e; % lower bowl
+if serifs: dish_serif(0',1',a,1/3,jut,b,1/3,jut); fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Curly-tail C";
+beginchar("C",CT(8u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+numeric BH; BH=if Times_Compat:.5613h else: bar_height fi;
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(BH+.5flare+2vair'+2,.9[BH,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(.92w); y5=.16h+.5vair;
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{up}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[BH,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],0); x5r=hround(w-.4u);
+ y5=.16h+.5vair;
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & z4e{right}...{up}z5e; fi
+pos6(vair,100); x6l=.3[x4,x5]; y6=.3h+.5vair;
+pos8(vair,180); x8=u; bot y8=-.75d;
+pos7(vair,160); x7=.65[x3r,x4r]; y7=.4[y4,y6];
+filldraw stroke z5e{up}...{(-8,-1)}z6e...{z8-z7}z7e...{(-1,-2)}z8e;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Eth";
+beginchar("D",CT(9u#,10u#),asc_height#,0);
+italcorr asc_height#*slant-.5u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=if serifs:else:.95 fi x_height; y3r=-oo;
+y2=y4=.5y1r-vair_corr; y2l:=y4l:=.52x_height;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+if serifs and (not monospace): penpos5(hair/(sind 45),45);
+else: penpos5(vair,80); fi
+penpos4'(stem,0); x4r=x4'r; y4=y4'; top y5r=h+oo; x5=x2;
+penstroke pulled_arc.e(4',5);
+penpos6(bar+stem_corr,120); penpos7(bar+stem_corr,120);
+y6=.35[y1,y5]; y7r=h+oo; x7r=rt x4; x6l=rt x2l;
+filldraw stroke z6e--z7e;
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Epsilon";
+beginchar("E",CT(8.5u#,8.88u#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+epsilon_stroke(false,3.5u);
+if serifs: numeric bulb_diam;
+ bulb_diam=max(flare-.75(cap_stem-stem),stem);
+ pos0(bulb_diam,0); pos1(hair,0);
+ rt x0r=hround (w-u); y0=min(.9h-.5bulb_diam,.75h+.5bulb_diam);
+ bulb(2,1,0); % upper bulb
+ pos9(bot_thickness,angle(2u,-h));
+else: pos1(.47[vair',flare],80); rt x1r = w-1u; top y1r = .9h;
+ filldraw stroke term.e(2,1,right,1,4);
+ pos9(.6[vair',flare],-80); fi
+rt x9r=hround (w-.75u); top y9=vround .25h-o;
+y9r:=good.y y9r-eps; x9l:=good.x x9l;
+filldraw stroke term.e(8,9,right,1,4); % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Phi";
+beginchar("F",11u#,asc_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-1.25u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_curve; light_curve=hround(.5[stem,curve]-2stem_corr);
+pos1(vair,90); pos2(light_curve,180); pos3(vair,270); pos4(light_curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5light_curve); x4=w-x2;
+top y1r=min(.75h,x_height+2oo); bot y3r=h-top y1r-d-oo;
+y2=y4=.5[y1,y3];
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos5(stem,0); pos6(stem,0); x5=x6=.5w; top y5=h; bot y6=-d;
+filldraw stroke z5e--z6e; % stem
+if serifs: dish_serif(5,6,a,1/3,jut,b,1/3,jut);
+ dish_serif(6,5,c,1/3,jut,d,1/3,jut); fi
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Gamma";
+beginchar("G",CT(if serifs: 9.5u# else:9u# fi,10u#),x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha,raise;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+raise=if serifs: .05x_height; else: .08x_height; fi
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=raise;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut+raise: y0:=notch_cut+raise;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+pickup penrazor;
+penpos5(alpha*left_stem,0); penpos7(vair,-90); penpos9(alpha*right_stem,180);
+y5=y9=y0; z5=whatever[z1,z2]; z9=whatever[z4,z3];
+y6=y8=-.5d if not serifs:+.5vair fi;
+z6=whatever[z1,z2]; z8=whatever[z4,z3];
+bot y7r=-d-o; x7=.5w+.2(left_stem-right_stem);
+numeric stem_jut[], y_shift, circle_gap;
+circle_gap=(x6-.5left_stem)-(x8+.5right_stem);
+stem_jut1=if circle_gap<.5u: .5 else: .15 fi left_stem;
+stem_jut2=if circle_gap<.5u: .5 else: .15 fi right_stem;
+y_shift=if (left_stem-1.2right_stem)>0: .25d else: 0 fi;
+x6:=x6+stem_jut1; x8:=x8-stem_jut2; y8:=y8+y_shift;
+penpos6(left_stem,0); penpos8(right_stem,180);
+filldraw stroke z5e{z2-z1}..z6e..{left}z7e..z8e..{z4-z3}z9e; % bottom loop
+if not serifs: % minor adjustments
+ pos5'(alpha*left_stem,0);pos9'(alpha*right_stem,180);
+ y5'=y9'=0; z5'l=whatever[z1l,z2l]; z9'l=whatever[z4r,z3r];
+ fill z5l--z5'l--z5'--z5--cycle;
+ fill z9l--z9'l--z9'--z9--cycle; fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Hooktop H";
+beginchar("H",10u#,asc_height#,0);
+italcorr .7[x_height#,asc_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=.25[x_height,h]; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,b,3,4); % arch and right stem
+hooktop(1,9,10,11,stem',hround(w-1.5u),h,.8,.55,.2);
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,9,10,11); endchar;
+
+cmchar "Curly-tail J";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar("J",CT(5.5u#,6.66u#),min(asc_height#,10/7x_height#+.5dot_diam#),
+ desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi +.5u#,
+ -2stem_shift# if monospace:-.5u# fi +.3u#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180);
+ pos7(vair,-270); pos8(vair,-270);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6=-.6d;
+ if monospace: lft x6r=0 else: x6r=-.3u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ y7r=y8r=0h; x7=x2l-.5u; x8=w-.5u;
+ filldraw stroke z2e{down}...z5e{left}...z6e{up}...z7e{right}---z8e;
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-180);
+ pos8(vair,-270); pos9(vair,-270);
+ lft x7r=hround -.75u; y7=-.5d;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ bot y8l = bot y9l = vround(-.5vair); x8 = .5[x7,x2]; x9 = w;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e...{right}z8e--z9e; fi % arc and terminal
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Turned Y";
+beginchar("L",CT(if serifs:9.5u# else:9u# fi,10u#),x_height#+desc_depth#,0);
+italcorr (x_height#+.6desc_depth#)*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+right_stem=fudged.stem-stem_corr;
+left_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1l=y4r=0; y2r=y3=x_height; x2r=x3r;
+numeric alpha,alpha[]; x9=w-3u; y9=h+oo-bot_vair;
+alpha1=diag_ratio(2,bot_stem,y3-y1l,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y9-y1l,x4r-x9);
+if alpha1>=alpha2: x4r-x3r=x2l-x1l+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z2r=whatever[z9,z1l-(alpha*bot_stem,0)]; fi
+penpos1(alpha*left_stem,0); penpos2(alpha*bot_stem,0);
+alpha3=(y3++(x4r-x3r))/y3;
+penpos3(alpha3*right_stem,0); penpos4(alpha3*right_stem,0);
+z0=whatever[z4l,z3l]=z1r+whatever*(z2l-z1l);
+if y0<x_height-notch_cut: y0:=x_height-notch_cut;
+ fill z0+.5right{down}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z2r,z1r];
+y5+.5vair=x_height+.5desc_depth;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,0); penpos8(light_bulb,0);
+ penpos6'(vair,90);z6'=z6;
+ x6=w-2u; y6l=h+oo; y8+.5light_bulb=x_height+.85desc_depth; x8r=hround(w-.35u);
+ fill stroke z2e---z5e...{right}z6e; bulb(6',7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); % right serif
+else: penpos6(bot_vair,-90); x6=w-2.5u; y6l=h+oo;
+ fill stroke z2e---z5e...{right}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ rt x7r=hround(w-u); top y7l=x_height+vround(.96desc_depth)+oo;y7r:=good.y y7r;
+ filldraw stroke term.e(6',7,right,1,4); fi % arc and terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Left-tail M (at right)";
+beginchar("M",CT(15u#,15.56u#),x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-1.75u#;
+adjust_fit(serif_fit#+stem_shift#,-stem_shift# if serifs:-.5u# fi);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); fi % lower middle serif
+left_tail(6,7,8,9,mfudged.stem,rt x4r);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Eng";
+beginchar("N",10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-1.25u#;
+adjust_fit(serif_fit#+stem_shift#,-stem_shift# if serifs:-.5u# fi);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+left_tail(4,5,6,7,stem,rt x2r);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Open O";
+beginchar("O",CT(8u#,8.88u#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+numeric BH; BH=if Times_Compat:.5613h else: bar_height fi;
+pickup fine.nib; pos2(vair',-90); pos4(vair',90);
+x2=x4=.5(w-u); bot y2r=vround(-1.5oo); top y4r=h+oo;
+pos3(curve,0); rt x3r=hround min(w-.6u,w-1.35u+.5curve); y3=.5h;
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ y1=max(h-BH-.5flare-2vair'-2,h-.9[BH,h]+.5flare);
+ lft x1r=hround(.7u); bulb(2,1,0); % bulb
+ pos5(hair,-180); lft x5r=hround(.5u);
+ y5=min(h-good.y(.5BH-.9),y4l-vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=x;
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],-100);
+ lft x1r=hround(.6u); bot y1r=h-vround .82[BH,top y4r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ pos5(.6[vair',flare],95); lft x5r=hround .5u;
+ y5r=good.y(h+y5r-1/3BH-y5);
+ y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..z5e; fi % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Glottal stop";
+beginchar("P",CT(9u#,10u#),asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(stem,0); bot y7=0; x7=.47w;
+pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(stem,0); pos6(stem,0);
+x2=x5=x6=x7; x4=x5l;
+rt x3r=hround(w-u); bot y6=.3x_height;
+top y2r=h+oo; y3=.5[y2,y4]; y4r=.5y2; y5=y4l;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & z3e{down}...{(-10,-1)}z4e;
+ filldraw stroke z5e--z7e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=.3[y3,y2]; bulb(2,1,0); % bulb
+ dish_serif(7,5,e,1/3,jut,f,1/3,jut); %serif
+else: pickup fine.nib; pos2'(vair,90); z2'=z2;
+ pos1(vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2',1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Reversed glottal stop";
+beginchar("Q",CT(9u#,10u#),asc_height#,0);
+italcorr .8asc_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(stem,0); bot y7=0; x7=.53w;
+pos2(vair,90); pos3(curve,180);
+pos4(vair,-90); pos5(stem,0); pos6(stem,0);
+x2=x5=x6=x7; x4=x5r;
+lft x3r=hround(u); bot y6=.3x_height;
+top y2r=h+oo; y3=.5[y2,y4]; y4r=.5y2; y5=y4l;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & z3e{down}...{(10,-1)}z4e;
+ filldraw stroke z5e--z7e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround (w-u); y1=.3[y3,y2]; bulb(2,1,0); % bulb
+ dish_serif(7,5,e,1/3,-jut,f,1/3,-jut); %serif
+else: pickup fine.nib; pos2'(vair,90); z2'=z2;
+ pos1(vround 5/7[vair,flare],70);
+ rt x1r=hround (w-u); top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2',1,right,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Fish-hook R";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar("R",CT(if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,6.66u#),
+ x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0); x4=.5[x6,.5w];
+ rt x5r=hround(w-if Times_Compat: .25u else: .5u fi +.5);
+ y5+.8r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos0'(hround(stem-3stem_corr),180);
+rt x0'l=hround(side_gap-.5stem')+stem'; top y0'=bar_height+1.8u;
+filldraw stroke z0'e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+y0=y0'; x1l=x0l=x2l;
+lft x1l=hround(side_gap-.5stem'); bot y2=0;
+filldraw stroke z0e--z2e; % stem
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,0',4,5,6); endchar;
+
+cmchar "Esh";
+beginchar("S",CT(5u#,5.56u#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+1u#;
+adjust_fit(.5u# if monospace:+1.5u# fi,.5u# if monospace:+1.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=hround(.5w-.5stem'); x2=x1; y2=0; h-y1=d;
+filldraw stroke z1e--z2e; % stem
+left_tail(2,3,4,5,stem',-1u);
+hooktop(1,6,7,8,stem',w+1u,h,.9,.5,1/3);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Theta";
+beginchar("T",CT(8.25u#,8.88u#),asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l;
+filldraw stroke z2'e--z4'e; % bar
+penlabels(1,2,3,4); endchar;
+
+cmchar "Upsilon";
+beginchar("U",CT(10u#,11u#),x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,-90); pos2(curve,180);
+pos3(vair,180); pos4(curve,0); pos5(vair,0);
+x1=.5w; bot y1r=-o; lft x2r=hround 1.25u; y2=y4=.45h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.25hair); top y3=top y5=h; x5=w-x3;
+filldraw stroke z3e{down}...{down}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{up}...{up}z5e; % bowl
+numeric arm_thickness[]; path p; p=z3{down}...{down}z2;
+arm_thickness1=vround(if hefty:slab+2stem_corr else: min(1.5slab,vstem) fi);
+arm_thickness2=if (not serifs) or monospace: arm_thickness1;
+else: vround(if hefty:.5slab+2stem_corr else: min(slab,.5vstem) fi); fi
+pickup crisp.nib; pos6(arm_thickness1,90); pos7(arm_thickness2,90);
+top y6r=top y7r=h; x6=x3; lft x7r=hround 1.0u;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+filldraw stroke z6e--z7e;
+pos8(arm_thickness1,90); pos9(arm_thickness2,90);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+filldraw stroke z8e--z9e;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Script V";
+beginchar("V",CT(9u#,9u#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(serif_fit#+stem_shift#,stem_shift#);
+pickup tiny.nib; interim superness:=more_super;
+pos3(stem,-180); lft x3r=hround(side_gap-.5stem);
+x0=0; x2=x3; top y2=h+min(oo,serif_drop);
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w; rt x5r=hround(w-.8u); y3=.5[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{down}--super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+if serifs: v_bulb(5,6); % closing bulb
+ pos7(stem,0); pos8(stem,0); z7=z2; z8=z3;
+ sloped_serif.l(7,8,a,1/3,jut,serif_drop);
+else: pos6(hair,15); top y6=h; x6=x5-.5u;
+ filldraw stroke z5e{up}..z6e; fi
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Turned M";
+beginchar("W",CT(15u#,15.56u#),x_height#,0);
+italcorr x_height#*slant+serif_fit#;
+adjust_fit(serif_fit#-stem_shift#,serif_fit#+stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+rt x1r=hround(w-(2.5u-.5stem)); x1r=x1'r=x2r=x2'r;
+rt x3r=hround(.5w+.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+bot y1=-min(oo,serif_drop); top y2=h; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+turned_h_stroke(2,a,3,4); % left arch and middle stem
+turned_h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.r(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if lft x2l-jut-.5u-1>=rt x4r+jut: inner_jut=jut;
+ else: lft x2l-jut-.5u-1=rt x4r+inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Chi";
+beginchar("X",CT(9.5u#,10u#),x_height#,desc_depth#);
+italcorr x_height#*slant+.5hair#-.75u#;
+adjust_fit(0,0); pickup fine.nib;
+if serifs: pos1(hair,180); pos6(hair,180);
+ y1=y2l-h/6; y6=y5r+h/6;
+else: pos1(fudged.hair,130); pos6(fudged.hair,130);
+ y1=y2l-h/8; y6=y5r+h/8; fi
+pos2(curve,80); pos5(curve,80);
+x1-.5hair=hround-.5hair+.5u; x6=w-x1; x2=w-x5=2u;
+top y2r=h+oo; bot y5l=-d-oo;
+z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0);
+numeric theta; theta=angle(z5'-z2')+90;
+if serifs: pos3(hair,theta); pos4(hair,theta);
+else: pos3(fudged.hair,theta); pos4(fudged.hair,theta); fi
+y3r=y2r-h/3; y4l=y5l+h/3; %z3l=whatever[z2',z0]; z4r=whatever[z0,z5'];
+if serifs: x3r+u=x4l-u=.5w;
+else: x3r+.4u=x4l-.4u=.5w; fi
+filldraw stroke z1e{up}..z2e{right}..z3e{z4r-z3r}
+ ..z4e{z4r-z3r}..{right}z5e..{up}z6e; % major diagonal and hooks
+x8l=w-x7r=u; top y7=h; bot y8=-d;
+if serifs: pos7(stem,0); pos8(stem,0);
+else: pos7(fudged.stem,0); pos8(fudged.stem,0); fi
+filldraw stroke z7e--z8e; % minor diagonal
+penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar;
+
+cmchar "Yogh";
+beginchar("Z",CT(8u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+yogh_stroke(.5u,.3,.75u,false,false);
+penlabels(1,2,3,4,5,6,7,8,9,10,12); endchar;
+
+cmchar "Pipe";
+beginchar("|",CT(5u#,5.56u#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0);
+numeric thickness; thickness=hround.4[hair,stem];
+pickup tiny.nib; pos1(thickness,0); pos2(thickness,0);
+lft x1l = lft x2l = hround(.5w-.5thickness);
+top y1=h; bot y2=-d;
+filldraw stroke z1e--z2e;
+penlabels(1,2); endchar;
+
+cmchar "Double pipe";
+beginchar("{",CT(8u#,8.88u#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0);
+numeric thickness; thickness=hround(.4[hair,stem]-2stem_corr);
+pickup tiny.nib; pos1(thickness,0); pos2(thickness,0);
+pos3(thickness,0); pos4(thickness,0);
+x1=x2; x3=x4=w-x1; lft x1l = hround((w-3.2u-thickness)/2);
+top y1=top y3=h; bot y2=bot y4=-d;
+filldraw stroke z1e--z2e; filldraw stroke z3e--z4e;
+penlabels(1,2,3,4); endchar;
+
+cmchar "Double-barred pipe";
+beginchar("}",10u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant+.5rule_thickness#-1.5u#;
+adjust_fit(0,0);
+numeric thickness[]; thickness1=hround.4[hair,stem];
+pickup tiny.nib; pos1(thickness1,0); pos2(thickness1,0);
+lft x1l = lft x2l = hround(.5w-.5thickness1);
+top y1=h; bot y2=-d;
+filldraw stroke z1e--z2e;
+thickness2=vround .3[vair,flare];
+pos3(thickness2,90); pos4(thickness2,90);
+pos5(thickness2,90); pos6(thickness2,90);
+lft x3l = lft x5l = hround 1u;
+rt x4l = rt x6l = hround(w-1u);
+top y3r = top y4r = h-d-bot y5;
+bot y5l = bot y6l = vround(.4(h+d)-d-.5thickness2);
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+penlabels(1,2,3,4,5,6); endchar;
+
+% end of tipasym1.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasym2.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasym2.mf
new file mode 100644
index 00000000000..5b4738c0da8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasym2.mf
@@ -0,0 +1,720 @@
+% tipasym2.mf: TIPA phonetic symbols (2)
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This font is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+% symbols in the section '340--'377
+
+cmchar "Hooktop B";
+beginchar(oct"341",10u#,asc_height#,0);
+italcorr .7[x_height#,asc_height#]*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(if serifs:-.5u# else:0 fi,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=.1[x_height,h];
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+hooktop(1,9,10,11,stem',hround(w-1u),h,.8,.55,.2);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Hooktop D";
+beginchar(oct"342",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant+1.75u#;
+adjust_fit(0,serif_fit#);
+d_stroke(false,true,0);
+hooktop(0,9,10,11,stem,hround(w+1.5u),h,.9,.6,.5);
+penlabels(0,1,2,3,4,5,6,7,9,10,11); endchar;
+
+cmchar "Right-tail D";
+beginchar(oct"343",10u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+d_stroke(true,false,0);
+if serifs: right_tail(2,8,9,10,stem,hround(w+1u),.88,.5,1/3);
+else: right_tail(2,8,9,10,stem,hround(w+1u),.833,.5,1/3); fi
+penlabels(0,1,2',3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Hooktop G";
+beginchar(oct"344",10u#+serif_fit#,.9asc_height#,desc_depth#);
+h:=vround(.9asc_height#*hppp); d:=vround(desc_depth#*hppp); % vertical adj.
+italcorr .9asc_height#*slant+1.75u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-side_gap+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180);
+pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=2/3[lft x2,edge]; y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+hooktop(0,12,13,14,stem',hround(w+1.5u),h,.92,.55,.7);
+penlabels(0,1,2,3,4,5,6,7,9,10,11,12,13,14); endchar;
+
+cmchar "Crossed H";
+beginchar(oct"350",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(stem_shift#+.5u#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+hbar(5,6,lft x1l - hround(2u),rt x1r + hround(side_gap),
+ x_height + .5(h - x_height));
+penlabels(1,2,3,4); endchar;
+
+cmchar "Barred dotless J";
+beginchar(oct"351",CT(5.5u#,5.56u#),x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-.5u#;
+adjust_fit(2stem_shift# if monospace:+1u# fi,
+ -2stem_shift# if monospace:+.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,b,1/3,1.25jut,c,1/3,jut); % serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+hbar(8,9,lft x1l - hround(1.75u),rt x1r + hround(1.5u),.58x_height);
+penlabels(1,2,5,6,7); endchar;
+
+cmchar "Hooktop barred dotless J";
+beginchar(oct"352",6u#,.9asc_height#,desc_depth#);
+italcorr h#*slant+1u#;
+adjust_fit(if monospace: 1u#,1u# else: 0,0 fi);
+pickup if serifs: tiny.nib; else: fine.nib; fi
+pos1(stem',0); pos2(stem',0); x1=x2=.5w;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+left_tail(2,5,6,7,stem',hround-.75u);
+hooktop(1,8,9,10,stem',hround(w+.75u),h,.84,.5,.4);
+pickup crisp.nib; top y3r=top y4r=vround(bar_height+.5bar);
+lft x3=x2-2.5u; x4=w-x3;
+pos3(bar,90); pos4(bar,90);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "L with tilde";
+beginchar(oct"353",7u#,asc_height#,0);
+l_width#:=5u#+2serif_fit#;
+numeric hook_depth#; hook_depth#:=1.1desc_depth#;
+define_whole_vertical_pixels(hook_depth);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#+.3u#,serif_fit#-stem_shift#+.3u#);
+numeric tilde_height; tilde_height:=min(.66h,.9x_height); % tilde
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround .75u; top y4r=tilde_height;
+ bot y1l= top y4r - .13h;
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround .75u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=top y5 - .13h;
+ top y2r=top y5=vround(tilde_height); y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5);
+pickup tiny.nib; pos6(stem',0); pos7(stem',0);
+if odd(w-stem'): change_width; fi
+lft x6l=hround(.5w-.5stem'); x6=x7; top y6=h; bot y7=0;
+filldraw stroke z6e--z7e; % stem
+if serifs: sloped_serif.l(6,7,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(7,6,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(6,7); endchar;
+
+cmchar "Belted L";
+beginchar(oct"354",7u#,asc_height#,0);
+l_width#:=5u#+2serif_fit#;
+numeric hook_depth#; hook_depth#:=1.1desc_depth#;
+define_whole_vertical_pixels(hook_depth);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+1u# fi,
+ if monospace: 1u#+fi serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+if serifs: pickup crisp.nib;
+ pos13(vair,90); pos14(max(.8stem,vair),180); pos15(vair,-50);
+ x13=x1; x14r=x1-3.2u; x15=x1+2.8u;
+ top y13r=x_height; y14=y15; bot y15=if monospace:.65 else:.8 fi x_height;
+ filldraw stroke z13e{(-10,1)}...z14e{down}...{(1,1)}z15e; % hook
+else: pickup fine.nib;
+ pos13(vair,85); pos14(min(.8stem,vair),180); pos15(vair,-50);
+ x13=x1; x14r=x1-2.8u; x15=x1+2.6u;
+ top y13r=x_height; y14=y15; bot y15=.7x_height;
+ filldraw stroke z13e{(-10,1)}...z14e{down}...{(1,1)}z15e; fi % hook
+penlabels(1,2,11,12,13,14,15); endchar;
+
+cmchar "Right-tail L";
+beginchar(oct"355",CT(5u#,5.56u#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.5stem#-1.5u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.5u# fi,
+ if monospace: 1.5u#fi -stem_shift#);
+pickup if serifs: tiny.nib; else: fine.nib; fi
+pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop);fi% upper serif
+if serifs: right_tail(2,3,4,5,stem',hround(w+1u),.88,.5,1/3);
+else: right_tail(2,3,4,5,stem',hround(w+1u),.833,.5,1/3); fi
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Turned M, right leg";
+beginchar(oct"356",CT(15u#,15.56u#),x_height#,desc_depth#);
+italcorr x_height#*slant+serif_fit#;
+adjust_fit(serif_fit#-stem_shift#,serif_fit#+stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+rt x1r=hround(w-(2.5u-.5stem)); x1r=x1'r=x2r=x2'r;
+rt x3r=hround(.5w+.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+bot y1=-d-min(oo,serif_drop); top y2=h; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+turned_h_stroke(2,a,3,4); % left arch and middle stem
+turned_h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.r(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if lft x2l-jut-.5u-1>=rt x4r+jut: inner_jut=jut;
+ else: lft x2l-jut-.5u-1=rt x4r+inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Right-tail N";
+beginchar(oct"357",10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs:
+ sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+if serifs: right_tail(4,5,6,7,stem,hround(w+1u),.88,.5,1/3);
+else: right_tail(4,5,6,7,stem,hround(w+1u),.833,.5,1/3); fi
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Left-tail N (at left)";
+beginchar(oct"361",10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0); pos8(stem',0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l=x8l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2'; bot y8=-1/3d;
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(8,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+left_tail(2',5,6,7,shaved_stem,hround(-.75u));
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Bull's eye";
+beginchar(oct"362",CT(14u#-width_adj#,14.44u#),cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make "O", not "0"
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+fill fullcircle scaled(dot_size+eps) shifted(.5[z3,z1]); % dot
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Right-tail R";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"363",CT(if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,6.66u#),
+ x_height#,desc_depth#);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(if Times_Compat: 1.6 else: 1.75 fi u,.25u+r_flare);
+ rt x5r=hround(w-if Times_Compat: .1u else: .5u fi +.5);
+ y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(side_gap-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(side_gap-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ pickup tiny.nib;
+ right_tail(2,7,8,9,stem',hround(w-.1u),.88,.5,1/3);
+else: pickup fine.nib;
+ right_tail(2,7,8,9,stem',hround(w-.1u),.833,.5,1/3); fi
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Turned R";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"364",CT(if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,6.66u#),
+ x_height#,0);
+italcorr x_height#*slant if not serifs: -.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup fine.nib; bot y4r=-oo;
+if serifs: pos4(vair,-90); pos5(hair,-180);
+ x4=max(if Times_Compat: 1.6 else: 1.75 fi u,.25u+r_flare);
+ lft x5r=hround(if Times_Compat: .1u else: .5u fi -.5);
+ y5-.5r_flare=h-.9[bar_height,h]-oo;
+ pos6(r_flare,-180); bulb(4,5,6); % bulb
+else: pos4(r_flare,-90); lft x4=hround(.25u); fi
+pos3(thin_join,0); lft x3l=hround(w-side_gap+.5stem')-stem'; bot y3=h-bar_height;
+filldraw stroke z3e{down}...{left}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y2=h;
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1r=x0r=x0'r=x2r;
+rt x1r=hround(w-side_gap+.5stem'); bot y1=-min(oo,serif_drop);
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.r(1,0',a,1/3,jut,serif_drop); % lower serif
+ dish_serif(2,0,b,1/3,1.25jut,c,1/3,jut); fi % upper serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Turned R, right tail";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"365",CT(if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,6.66u#),
+ x_height#,desc_depth#);
+italcorr x_height#*slant if not serifs: -.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup fine.nib; bot y4r=-oo;
+if serifs: pos4(vair,-90); pos5(hair,-180);
+ x4=max(if Times_Compat: 1.6 else: 1.75 fi u,.25u+r_flare);
+ lft x5r=hround(if Times_Compat: .1u else: .5u fi -.5);
+ y5-.5r_flare=h-.9[bar_height,h]-oo;
+ pos6(r_flare,-180); bulb(4,5,6); % bulb
+else: pos4(r_flare,-90); lft x4=hround(.25u); fi
+pos3(thin_join,0); lft x3l=hround(w-side_gap+.5stem')-stem'; bot y3=h-bar_height;
+filldraw stroke z3e{down}...{left}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y2=h;
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1r=x0r=x0'r=x2r;
+rt x1r=hround(w-side_gap+.5stem'); bot y1=-min(oo,serif_drop);
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: dish_serif(2,0,b,1/3,1.25jut,c,1/3,jut); % upper serif
+ right_tail(2,7,8,9,hround(stem'),hround(w+1u),.88,.5,1/3);
+else: pickup fine.nib;
+ right_tail(2,7,8,9,hround(stem'),hround(w+1u),.833,.5,1/3); fi
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Right-tail S (at left)";
+beginchar(oct"371",CT(7.1u#,7.78u#),x_height#,desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-90);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+if serifs: pos11(hair,0); y11=y9l; x11l=x8r;
+ right_tail(11,12,13,14,hair,hround(x7+.5u),.88,.5,1/3);
+else: pos11(.8stem,-10); y11=y8r; lft x11l=lft x8l;
+ right_tail(11,12,13,14,.8stem,hround(x7+.5u+.25hair),.833,.5,1/3); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10,11,12,13,14);
+endchar;
+
+cmchar "Right-tail T";
+beginchar(oct"372",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: -.5u# else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180); pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(side_gap-.5shaved_stem); y2=y8; y3=0;
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(.93w- if Times_Compat: .4u else: 1.3u fi);
+top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; %terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib;
+filldraw stroke z2e--z3e; % stem
+if serifs: right_tail(3,9,10,11,shaved_stem,hround(w-.5u),.88,.5,1/3);
+else: right_tail(3,9,10,11,shaved_stem,hround(w-1u),.833,.5,1/3); fi
+penlabels(1,2,3,7,8,9,10,11); endchar;
+
+cmchar "Turned W";
+beginchar(oct"373",CT(13u#,14.44u#),x_height#,0);
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem4=fudged.stem-stem_corr;
+stem1=min(fudged.hair if hefty:-2stem_corr fi,stem4);
+stem3=if hefty:.1[vair,stem1] else: stem1 fi;
+stem2=max(stem3,stem4-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2r+apex_corr=x3r; x6r+apex_corr=x7r;
+y1=y8=0; y2=y3=y6=y7=h+apex_oo;
+y4=y5=if monospace: vround .4h else: 0 fi; upper_notch=y4+notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem3-stem2+stem1,y2-y1,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+ x8r-x5r=floor(x8r-x5r+.5(x5l+mid_corr-x4l)); % x5r $\approx$ x4r+mid_corr
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45>upper_notch:(x45,upper_notch)+.5left{down}
+ --(x45,upper_notch)+.5right{up} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67<h-notch_cut:(x67,h-notch_cut)+.5right{up}
+ --(x67,h-notch_cut)+.5left{down} else: z67&z67 fi
+ ...{z5-z6}turned_special_diag_end(6,5,4,3){z3-z4}
+ ...if y23<h-notch_cut:(x23,h-notch_cut)+.5right{up}
+ --(x23,h-notch_cut)+.5left{down} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(3l,4l,1,1,4r,3r)--.9[z4r,z3r]
+ ..{z4-z3}.1[z4l,z3l]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if lft x8'l-jut-.5u-1>=rt x4'r+.7jut: inner_jut1=jut;
+ else: lft x8'l-inner_jut1-.5u-1=rt x4'r+inner_jut2; fi
+ if lft x4'l-jut-.5u-1>=rt x1'r+1.1jut: inner_jut3=jut;
+ else: lft x4'l-inner_jut3-.5u-1=rt x1'r+inner_jut4; fi
+ dish_serif(4',3,e,1/2,inner_jut3,f,1/3,inner_jut2); fi % middle serif
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut4)(dark); % left serif
+ dish_serif(8',7,c,1/2,inner_jut1,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "Right-tail Z";
+beginchar(oct"374",CT(8u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,if monospace:.5u#+fi .5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+if serifs: pos11(hair,0); y11=y.b0;
+ x11r=hround(x.b0-.05u);
+ right_tail(11,12,13,14,hair,hround(w+2u),.88,.5,1/3);
+else: pos11(.8stem,0); y11=.5[0,y8]; rt x11r=rt x8r;
+ right_tail(11,12,13,14,.8stem,hround(w+1.5u),.833,.5,1/3); fi
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14);
+endchar;
+
+cmchar "Curly-tail Z";
+beginchar(oct"375",CT(9u#,9.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+arm_thickness1=vair; arm_thickness2=1.2vair; z_stem=.9[vair,stem];
+pickup tiny.nib; rt x1r=rt x2r=hround(.89w-.8u);
+lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,90); pos8(arm_thickness2,90);
+x7=x4; bot y8l=bot y7l=0; pos9(vair,-80);
+if serifs: pos11(hair,180); pos10(hair,0);
+else: pos11(fudged.hair,180); pos10(fudged.hair,0); fi
+rt x11l=hround(w-1u+.5hair); y11=.5[y9r,y8r];
+x9-.5u=x8=.7[x7,x11]; y9=.32h+.5vair; x10l=1.5u+.6hair; bot y10=-.75d;
+filldraw stroke z7e--z8e{right}...{up}z11e...{(-5,-1)}z9e
+ ...{(-1,-2)}z10e;
+penlabels(1,2,3,4,5,6,7,8,8',9,10,11); endchar;
+
+cmchar "Ash; Lower-case A-E ligature";
+beginchar(oct"346",13u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % right terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(mfudged.hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=4u;
+ y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=4.3u; top y1r=vround .82[bar_height,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % left terminal
+pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
+pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
+filldraw stroke super_arc.e(3,4)&z4e--z5e; % arc and stem
+pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
+pos7(left_curve,if (Times_Compat and serifs): 200 else: 180 fi);
+lft x7r=hround max(.5u,1.5u-.5left_curve); y7=1/3[top y8l,top y6r];
+if (Times_Compat and serifs): pos8(.6[vair,flare],210); else: pos8(vair,270);fi
+x8l=3.75u; bot y8r=-oo;
+pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
+(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&%super_arc.e(7,6)}}; % bowl
+ if (Times_Compat and serifs): z7e{up}...{(50,10)}z6e
+ else: super_arc.e(7,6)fi}}; % bowl
+if y9<y5: filldraw stroke z5e{down}..{down}z9e; fi % link (usually hidden)
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+cmchar "C cedilla";
+beginchar(oct"347",CT(8u#,8.88u#),x_height#,0.875desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+c_stroke(w); x6=x4;
+if serifs: pickup crisp.nib; pos6(stem,0); pos7(stem,0);
+ pos8(vair,90); pos9(stem,0); pos10(vair,-90);
+ x6=x7; z8l=z7l; x9=x7+1.5u; x10=x8-1.5u;
+ bot y6=0; bot y7=-vround 2/7d-o; y9=.5[y8,y10]; bot y10=-d-o;
+ filldraw stroke z6e--z7e; % stem
+ filldraw stroke z8e{right}...z9e{down}...{left}z10e; % hook
+else: pickup fine.nib; pos6(vair,0); top y6=-o-2;
+ pos7(.5[vair,stem],0); bot y7=-d-o; x7=x6-1.25u;
+ filldraw stroke z6e--z7e; fi % diagonal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Lower-case O-E ligature";
+beginchar(oct"367",14u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(fine.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5(w+u)-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; pos1(vair,90); pos3(vair,-90);
+pos2(left_curve,180); pos4(mfudged.stem,0);
+lft x2r=hround max(.5u,1.25u-.5curve);
+z4=z13; x1=x3=.5[x2,x4]; top y1r=h+vround 1.5oo; bot y3r=-oo;
+y2=y4; y2l:=y4l:=.52h;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of left bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of left bowl
+penlabels(1,2,3,4,10,11,12,13,14,15); endchar;
+
+cmchar "Slashed O";
+beginchar(oct"370",CT(9u#,10u#),x_height#+.5desc_depth#,.5desc_depth#);
+italcorr h#*slant-u#-max(.5fudge*stem#,.75u#)+.5vair#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90);
+penpos2(fudged.stem,180); penpos4(fudged.stem,0);
+x2r=hround max(.5u,1.25u-.5fudged.stem);
+x4r=w-x2r; x1=x3=.5w;
+y1r=x_height+vround 1.5oo; y2=y4=.5x_height-vair_corr; y3r=-oo;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+x5=x4; x6=x2; y5=h; y6=-d;
+numeric theta; theta=angle(z5-z6)-90;
+pickup crisp.nib; pos5(vair,theta); pos6(vair,theta);
+filldraw stroke z5e--z6e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+% end of tipasym2.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasym3.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasym3.mf
new file mode 100644
index 00000000000..7b5c2c29ff5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasym3.mf
@@ -0,0 +1,646 @@
+% tipasym3.mf: TIPA phonetic symbols (3)
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This font is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+cmchar "Hooktop C";
+beginchar(oct"301",CT(8u#,8.8u#),x_height#,0);
+italcorr .9asc_height#*slant + 1.5u#;
+adjust_fit(if monospace: .5u#,1.5u# else: 0,1u# fi);
+c_stroke(w);
+if serifs: pos6(hair,0); y6=y1; rt x6r=rt x1r;
+ hooktop(6,7,8,9,hair,hround(w+2.25u),.9asc_height+.5vair,.95,.55,.5);
+else: pos6(vair,0); y6=y1r; rt x6r=rt x1r;
+ hooktop(6,7,8,9,vair,hround(w+2.25u),.9asc_height+.5vair,.9,.5,.5); fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Stretched C";
+beginchar(oct"302",CT(9u#,10u#),asc_height#,desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(0,0);
+pickup fine.nib; interim superness:=more_super;
+pos2(.6[vair,flare],90); pos5(.6[vair,flare],270);
+x2=x5=.5w; top y2r=vround(h+1.5oo); bot y5r=-d-oo;
+pos3(stem,180); pos4(stem,180);
+lft x3r=lft x4r=hround1.2u; y3=.75h; y4=0;
+pos1(stem,0); rt x1r=hround(w-1.1u); top y1=vround .75h;
+pos6(stem,0); rt x6r=hround(w-1u); top y6=0;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & z3e--z4e & pulled_arc.e(4,5) & pulled_arc.e(5,6);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "D-Yogh ligature";
+beginchar(oct"303",CT(13u#,14.44u#),asc_height#,desc_depth#);
+numeric d_w; d_w=if monospace: .48w else: .65w+.5stem+serif_fit fi;
+italcorr asc_height#*slant-serif_fit#+.5stem#-1.75u#;
+adjust_fit(0,.5serif_fit#);
+pickup tiny.nib; pos21(stem',0); pos22(stem,0); % d
+pos20'(stem',0); pos20(stem,0); z20r=z20'r; x20'=x21; x20=x22;
+rt x21r=hround(d_w-2.5u+.5stem'); top y21=h;
+numeric edge; edge=lft x22l;
+pickup fine.nib; pos23(if hefty:thin_join else: hair fi,0);
+pos24(vair,90); pos25(curve,180); pos26(vair,270); penpos27(x23r-x23l,360);
+lft x23l=min(lft x23l-(rt x23r-tiny.rt x22r),1/3[lft x22,edge]);
+y23=.616x_height;
+x24l=.5(d_w-serif_fit)-.3u; top y24r=x_height+oo;
+lft x25r=hround max(1.35u-.5curve,.6u); y25=.5x_height;
+x26l=x24l-.2u; bot y26r=-oo;
+x27=x23; y27=min(y23,y26+y24-y23+.6vair);
+(x,y24r)=whatever[z23l,z24l]; x24r:=max(x,.5[x25r,x24]);
+(x',y26r)=whatever[z27l,z26l]; x26r:=max(x',.5[x25r,x26]);
+filldraw stroke z23e{up}...pulled_arc.e(24,25)
+ & pulled_arc.e(25,26)...{up}z27e; % bowl
+y20=ypart(((edge,h)--(edge,0))intersectionpoint(z23l{up}...{left}z24l));
+pickup tiny.nib; bot y22=.33x_height;
+filldraw stroke z21e--z20'e--z20e--z22e; % stem
+if serifs: sloped_serif.l(21,20',a,1/3,jut,serif_drop); fi % upper serif
+h:=x_height; % yogh
+yogh_stroke(x20l,.15,x20l-.5u,true,false);
+if serifs: pickup tiny.nib; pos40(vair,0);
+ x40=x40'=x22l; y40'=.2bar_height; y40=.5[y22,y40'];
+ filldraw stroke z22e--z40e; % joint
+ pickup fine.nib; pos40'(vair,180); pos12'(vair,180); z12'=z3;
+ filldraw stroke z12'e{z3-z5}...{z40'-z22}z40'e; % joint
+ penlabels(40',12');
+else: pickup tiny.nib; pos40(stem/cosd30,30);
+ x40=x22; y40=.3[0,y22];
+ filldraw stroke z22e--z40e; fi % joint
+penlabels(1,2,3,4,5,6,7,8,9,10,12,20,21,22,23,24,25,26,27,40); endchar;
+
+cmchar "Right-hook schwa";
+beginchar(oct"304",CT(11.5u#,12u#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.75u#;
+adjust_fit(if monospace:.25u#,0u# else: 0,0 fi);
+numeric ow,left_curve,diagbar;
+ow=w; w:=if Times_Compat: 8.88u else: 8u fi -.25curve;
+left_curve=curve if not serifs: -3stem_corr fi;
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+diagbar=if serifs: if monospace: hair else: 1.2hair fi
+ else: min(1.1hair,stem) fi;
+pickup tiny.nib; pos1(diagbar,180);
+pos2(vair,-90); pos3(left_curve,0);
+y1=good.y (.33h); bot y2r=-vround 1.5oo; y0l=top y1;
+lft x1r=hround min(.5u,1.5u-.5diagbar);
+rt x3r=hround max(w-.5u,w-1.25u+.5left_curve); x2=.5w-.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; top y4r=h+oo; x4=x2-.25u;
+if serifs: pos4(vair',90); pos5(hair,180);
+ y5=min(good.y(h-(.5bar_height-.9)),y4l-vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=max(x,x4l-.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,90);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,90); z4=z4';
+ pos5(.5[vair,flare],95); lft x5r=hround(.6u);
+ y5r=good.y(h-(-y5r+1/3bar_height+y5)); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,left,1,4); fi % terminal
+w:=ow; pickup tiny.nib;
+if serifs: if monospace:
+ pos10(diagbar,0); pos11(diagbar,0); pos11'(hair,0); pos12(hair,0);
+ else: pos10(1.5hair,0); pos11(1.5hair,0); pos11'(1.5hair,0);
+ pos12(1.5hair,0); fi
+ pos13(vair,90); pos14(hair,180);
+else: pos10(diagbar,0); pos11(diagbar,0);
+ pos11'(thin_hair,0); pos12(thin_hair,0);
+ pos13(vair,90); pos14(thin_hair,180); fi
+lft x10l=lft x1r; top y10l=top y1; top y11l=h+oo;
+rt x11r=rt x12r=hround(x3+.5curve+2.25u-.25hair);
+y11'=y11; x11'r=x11r;
+x13=.5[x11,x14]; y12=y14=.33[y13,x_height];
+bot y13l=.55h-.5vair; rt x14l=w;
+filldraw stroke z10e--z11e; % diagonal crossbar
+filldraw stroke z11'e--z12e{down}...{right}z13e...{up}z14e; % hook
+penlabels(1,2,3,4,5,10,11,12,13,14); endchar;
+
+cmchar "Closed epsilon";
+beginchar(oct"305",CT(9u#,10u#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup fine.nib; pos5'(thin_hair,0);
+rt x5'r=hround(w-.5u); top y5'l=vround(.45h+.5vair);
+epsilon_stroke(false,4u);
+filldraw stroke z8e{right}..{up}z5'e..{left}z2e;
+penlabels(2,3,4,5,6,7,8,5'); endchar;
+
+cmchar "Closed reversed epsilon";
+beginchar(oct"306",CT(9u#,10u#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup fine.nib; pos5'(thin_hair,180);
+lft x5'r=hround.5u; top y5'l=vround(.45h+.5vair);
+epsilon_stroke(true,4u);
+filldraw stroke z8e{left}..{up}z5'e..{right}z2e;
+penlabels(2,3,4,5,6,7,8,5'); endchar;
+
+cmchar "Right-hook reversed epsilon";
+beginchar(oct"307",CT(11.5u#,12u#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5u#;
+adjust_fit(0,0);
+ow:=w; w:=w-3u;
+epsilon_stroke(true,3.5u);
+w:=ow;
+if serifs: numeric bulb_diam;
+ bulb_diam=max(flare-.75(cap_stem-stem),stem);
+ pos0(bulb_diam,180); pos1(hair,180);
+ lft x0r=hround u; y0=min(.9h-.5bulb_diam,.75h+.5bulb_diam);
+ bulb(2,1,0); % upper bulb
+ pos9(bot_thickness,angle(-2u,-h));
+else: pos1(.47[vair',flare],100); lft x1r = 1u; top y1r = .9h;
+ filldraw stroke term.e(2,1,left,1,4);
+ pos9(.6[vair',flare],-100); fi
+lft x9r=hround .75u; top y9=vround .25h-o;
+y9r:=good.y y9r-eps; x9l:=good.x x9l;
+filldraw stroke term.e(8,9,left,1,4); % lower terminal
+if serifs: if monospace: pos3'(hair,0); pos11(hair,0);pos12(hair,0);
+ else: pos3'(1.5hair,0); pos11(1.5hair,0);pos12(1.5hair,0); fi
+ pos13(vair,90); pos14(hair,180);
+else: pos3'(.6hair,0); pos11(.6hair,0);pos12(.6hair,0);
+ pos13(vair,90); pos14(.6hair,180); fi
+z3'=z3; lft x11l=lft x12l=hround(x3+.5curve+1.5u); top y11l=h+oo;
+x13=.5[x11,x14]; y12=y14=.3[y13,x_height];
+bot y13l=.5h; x14=w;
+filldraw stroke z3'e--z11e; % hook
+filldraw stroke z11e--z12e{down}...{right}z13e...{up}z14e;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+cmchar "Baby gamma";
+beginchar(oct"310",CT(if serifs: 9.5u# else:9u# fi,10u#),x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha,raise;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+raise=if serifs: .45h; else: .5h; fi
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=raise;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut+raise: y0:=notch_cut+raise;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+pickup penrazor;
+penpos5(alpha*left_stem,0); penpos7(vair,-90); penpos9(alpha*right_stem,180);
+y5=y9=y0; z5=whatever[z1,z2]; z9=whatever[z4,z3];
+y6=y8=.4[y7,y5] if not serifs:+.5vair fi;
+z6=whatever[z1,z2]; z8=whatever[z4,z3];
+bot y7r=-o; x7=.5w+.2(left_stem-right_stem);
+numeric stem_jut[], y_shift, circle_gap;
+circle_gap=(x6-.5left_stem)-(x8+.5right_stem);
+stem_jut1=if circle_gap<.5u: .4 else: .1 fi left_stem;
+stem_jut2=if circle_gap<.5u: .4 else: .1 fi right_stem;
+y_shift=if (left_stem-1.2right_stem)>0: .1[y7,y5] else: 0 fi;
+x6:=x6+stem_jut1; x8:=x8-stem_jut2; y8:=y8+y_shift;
+penpos6(left_stem,0); penpos8(right_stem,180);
+fill stroke z5e{z2-z1}..z6e..{left}z7e..z8e..{z4-z3}z9e; % bottom loop
+if not serifs: % minor adjustments
+ pos5'(alpha*left_stem,0);pos9'(alpha*right_stem,180);
+ y5'=y9'=1.2[y0,y3]; z5'l=whatever[z1l,z2l]; z9'l=whatever[z4r,z3r];
+ filldraw z5l--z5'l--z5'--z5--cycle;
+ filldraw z9l--z9'l--z9'--z9--cycle; fi
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Hooktop heng";
+beginchar(oct"312",10u#,asc_height#,desc_depth#);
+italcorr .7[x_height#,asc_height#]*slant-serif_fit#+.5stem#-u#;
+adjust_fit(serif_fit#+stem_shift#,-stem_shift#-.5u#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=.25[x_height,h]; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+hooktop(1,9,10,11,stem',rt x3r,h,.8,.55,.2);
+left_tail(4,5,6,7,stem,rt x2r);
+penlabels(1,2,3,4,5,6,7,9,10,11); endchar;
+
+cmchar "Iota";
+beginchar(oct"314",CT(5u#,5.56u#),x_height#,0); l_width#:=4u#;
+adjust_fit(if monospace:2u#,2u# else: u#,0 fi); pickup fine.nib;
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi;
+x2-.5stem=hround(1.5u-.5stem); x4=hround(w-1u+.25hair);
+hook_out(2,3,4); % closing hook
+x1=x2; filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); fi % serif
+penlabels(1,2,3,4); endchar;
+
+cmchar "Barred dotless J (an old version)";
+beginchar(oct"315",CT(5.5u#,6.66u#),x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-.5u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+1.5u# fi,
+ serif_fit#-2stem_shift# if monospace:+.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,b,1/3,1.25jut,c,1/3,jut); % serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ x3r=x1r; top y4r=min(2x_height,h+1);
+ (x,y7l)=whatever[z7r,(x1,min(h,asc_height))]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & term.e(6,7,left,1,4); fi % arc and terminal
+hbar(8,9,lft x1l - hround(1.75u),rt x1r + hround(1.5u),.1x_height);
+penlabels(1,2,5,6,7); endchar;
+
+cmchar "Hooktop K";
+beginchar(oct"316",CT(9.5u#,10u#),asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=.25[x_height,h]; bot y2=0;
+lft x1l=lft x2l=hround(side_gap-.5stem1);
+ top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also z3'l=z3l+penoffset z4$-$z3 of currentpen+whatever$*$(z3$-$z4);
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+ fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upperDiagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lowerDiagonal serif
+hooktop(1,7,8,9,stem1,rt x3r,h,.8,.55,.2);
+penlabels(0,1,2,3,4,5,6,7,8,9,11); endchar;
+
+cmchar "L-Yogh ligature";
+beginchar(oct"320",10u#,asc_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(serif_fit#+stem_shift#,.5serif_fit#);
+pickup tiny.nib; pos21(stem',0); pos22(stem',0); % l
+lft x21l=hround(side_gap-.5stem'); x21=x22; top y21=h; bot y22=0;
+filldraw stroke z21e--z22e; % stem
+if serifs: sloped_serif.l(21,22,e,1/3,jut,serif_drop); % upper serif
+ dish_serif(22,21,f,1/3,jut,g,1/3,jut); fi % lower serif
+h:=x_height; % yogh
+yogh_stroke(x21,.28,x21l+.25u,true,false);
+penlabels(1,2,3,4,5,6,7,8,9,10,12,21,22); endchar;
+
+cmchar "Closed omega";
+beginchar(oct"321",CT(11u#,12u#),x_height#,0); % 2003/03/16
+italcorr .7x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos2(curve,-180); lft x2r=hround.5u; y2=y8=.45x_height;
+y4=y6=vround.6h; y1r=h+oo; x1=.5w; pos1(vair,90);
+pos3(vair,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vair,270); pos8(curve,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.1[y4,h]+.5vair);
+x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5w+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw circ_stroke z1e{left}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}...{up}z8e...z1e{left};
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Hooktop P";
+beginchar(oct"322",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .7[x_height#,asc_height#]*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#-.5u#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0); pos2'(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2=x2'; bot y2'=-d;
+lft x1l=hround(side_gap-.5stem'); top y1=.25[x_height,h];
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e--z2'e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2',0,b,1/3,jut,c,1/3,jut); fi
+hooktop(1,9,10,11,stem',rt x5r,h,.8,.55,.2);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,2'); endchar;
+
+cmchar "Hooktop Q";
+beginchar(oct"323",10u#+serif_fit#,.9asc_height#,desc_depth#);
+italcorr .9asc_height#*slant+1.75u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-side_gap+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+hooktop(1,9,10,11,stem',hround(w+1.5u),h,.9,.6,.5);
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Long-leg R";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"324",CT(if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,6.66u#),
+ x_height#,desc_depth#);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(if Times_Compat: 1.6 else: 1.75 fi u,.25u+r_flare);
+ rt x5r=hround(w-if Times_Compat: .1u else: .5u fi +.5);
+ y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(side_gap-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(side_gap-.5stem'); bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Turned Long-leg R";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"325",CT(if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,6.66u#),
+ x_height#+desc_depth#,0);
+italcorr (x_height#+desc_depth#)*slant if not serifs: -.5u# fi;
+adjust_fit(0,serif_fit#);
+pickup fine.nib; bot y4r=-oo;
+if serifs: pos4(vair,-90); pos5(hair,-180);
+ x4=max(if Times_Compat: 1.6 else: 1.75 fi u,.25u+r_flare);
+ lft x5r=hround(if Times_Compat: .1u else: .5u fi -.5);
+ y5-.5r_flare=x_height-.9[bar_height,x_height]-oo;
+ pos6(r_flare,-180); bulb(4,5,6); % bulb
+else: pos4(r_flare,-90); lft x4=hround(.25u); fi
+pos3(thin_join,0); lft x3l=hround(w-side_gap+.5stem')-stem';
+bot y3=x_height-bar_height;
+filldraw stroke z3e{down}...{left}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y2=h;
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1r=x0r=x0'r=x2r;
+rt x1r=hround(w-side_gap+.5stem'); bot y1=-min(oo,serif_drop);
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.r(1,0',a,1/3,jut,serif_drop); % lower serif
+ dish_serif(2,0,b,1/3,1.25jut,c,1/3,jut); fi % upper serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Hooktop T";
+beginchar(oct"326",CT(6u#+max(u#,.5stem#),5.56u#),
+ if not monospace:.9 fi asc_height#,0);
+italcorr x_height#*slant if serifs: -.25u# else: +.25u# fi;
+adjust_fit(0,if serifs: .5u# else: 0u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(side_gap-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w- if Times_Compat: .4u else: 1.3u fi);
+top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+pos7(bar,90); filldraw stroke z7e--z8e; % crossbar
+pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=.75h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+hooktop(1,9,10,11,hround(shaved_stem-stem_corr),
+ hround(w if Times_Compat:+.5u else: -.5u fi),h,.88,.5,.2);
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w- if Times_Compat: 0 fi u);
+if serifs: pos5(hair,0); x4l=.5[x3l,x5l];
+ y5= if Times_Compat: .5 else: 1 fi [0,y3];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ if Times_Compat: else:
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; fi % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Turned T";
+beginchar(oct"330",CT(6u#+max(u#,.5stem#),5.56u#),x_height#,
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#)-x_height#);
+italcorr .7x_height#*slant -.5u#;
+adjust_fit(if serifs: 0 else: -.5u# fi,0);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,0);pos3(shaved_stem,0);
+rt x2r=rt x3r=hround(w-(2.5u-.5shaved_stem));
+y2=y8; y3=min(h-.5bar_height,h-2vair);
+pickup crisp.nib; pos8(bar,270);
+lft x8=hround(if Times_Compat: .4u else: 1.3u fi);
+bot y8r=0; rt x7=hround(w-1/3u); y7l=y8l;
+if hefty: pos7(bar,270);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),180);
+ lft x1r=fine.lft x2l; bot y1=-d;
+ penpos2'(x1l-x1r,180); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,270); pos1(hair,180);
+ lft x1r=fine.lft x2l; bot y1=-d;
+ filldraw z1l{up}...{right}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',90); top y4r=h+oo; lft x5r=hround(if Times_Compat: 0 fi u);
+if serifs: pos5(hair,180); x4l=.5[x3l,x5l];
+ y5=if Times_Compat: .5 else: 1 fi [h,y3];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=min(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{down}z5e; % stem and hook
+ if Times_Compat: else:
+ pickup crisp.nib; pos6(hair,180); pos5'(hair,180);
+ x6=x5=x5'; bot y6=min(vround (h-.75bar_height),bot y5); y5=y5';
+ filldraw stroke z5'e--z6e; fi % terminal
+else: pos5(vair,105); bot y5l=vround .2[bot y4l,h-bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l-.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{left}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)>=0) or (xpart(z5r-postcontrol 2 of p)>=0):
+ filldraw stroke z4e{left}...{down}z5e;
+ else: filldraw p; fi fi;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "T-Esh ligature";
+beginchar(oct"331",CT(9.5u#,10u#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.5u#;
+adjust_fit(0,if serifs: .5u# else: 0 fi);
+numeric H,D; H:=vround 10/7x_height; D:=0; % t
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(side_gap-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround6u; top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=H;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=H;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; x4l=.5[x3l,x5l];
+lft x5l=hround x8; y5=if serifs: .35bar_height; else: .6bar_height; fi
+pos5(if serifs: hair else: stem' fi,0);
+(x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+filldraw stroke z2e..super_arc.e(3,4); % stem
+filldraw stroke z4e{right}...{up}z5e;
+pos11(stem',0); pos12(stem',0); % Esh
+lft x11l=hround x8; x12=x11; y12=0; h-y11=d;
+filldraw stroke z11e--z12e; % stem
+left_tail(12,13,14,15,stem',hround(lft x11l-2.8u));
+hooktop(11,16,17,18,stem',hround(rt x11r+2.8u),h,.9,.5,1/3);
+penlabels(1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18); endchar;
+
+cmchar "Inverted glottal stop";
+beginchar(oct"333",CT(9u#,10u#),asc_height#,0);
+italcorr .5x_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos2(vair,-90); pos3(curve,0);
+pos4(vair,90); pos5(stem,0); pos6(stem,0);
+x5=x6; x2=.5w; x4=x5l; rt x3r=hround(w-u);
+lft x6l=hround(.42w-.5stem); top y6=h;
+bot y2r=-oo; y3=.5[y2,y4]; y4r=.9x_height; y5=y4l;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & z3e{up}...{(-10,-1)}z4e;
+ filldraw stroke z5e--z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=.3[y3,y2]; bulb(2,1,0); % bulb
+else: pickup fine.nib; pos2'(vair,-90); z2'=z2;
+ pos1(vround 5/7[vair,flare],-110);
+ lft x1r=hround u; bot y1r=vround .1[bot y2r,y6];
+ filldraw stroke term.e(2',1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Barred glottal stop";
+beginchar(oct"334",CT(9u#,10u#),asc_height#,0);
+italcorr .7asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(stem,0); bot y7=0; x7=.47w;
+pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(stem,0); pos6(stem,0);
+x2=x5=x6=x7; x4=x5l;
+rt x3r=hround(w-u); bot y6=.3x_height;
+top y2r=h+oo; y3=.5[y2,y4]; y4r=.5y2; y5=y4l;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & z3e{down}...{(-10,-1)}z4e;
+ filldraw stroke z5e--z7e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=.3[y3,y2]; bulb(2,1,0); % bulb
+ dish_serif(7,5,e,1/3,jut,f,1/3,jut); %serif
+else: pickup fine.nib; pos2'(vair,90); z2'=z2;
+ pos1(vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2',1,left,1,4); fi % terminal
+hbar(8,9,lft x5l - hround(side_gap),rt x5r + hround(side_gap),.55x_height);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Barred reversed glottal stop";
+beginchar(oct"335",CT(9u#,10u#),asc_height#,0);
+italcorr .7asc_height#*slant;
+adjust_fit(0,0);
+pickup tiny.nib; pos7(stem,0); bot y7=0; x7=.53w;
+pos2(vair,90); pos3(curve,180);
+pos4(vair,-90); pos5(stem,0); pos6(stem,0);
+x2=x5=x6=x7; x4=x5r;
+lft x3r=hround(u); bot y6=.3x_height;
+top y2r=h+oo; y3=.5[y2,y4]; y4r=.5y2; y5=y4l;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & z3e{down}...{(10,-1)}z4e;
+ filldraw stroke z5e--z7e\\}}; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ rt x1r=hround (w-u); y1=.3[y3,y2]; bulb(2,1,0); % bulb
+ dish_serif(7,5,e,1/3,-jut,f,1/3,-jut); %serif
+else: pickup fine.nib; pos2'(vair,90); z2'=z2;
+ pos1(vround 5/7[vair,flare],70);
+ rt x1r=hround (w-u); top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2',1,right,1,4); fi % terminal
+hbar(8,9,lft x5l - hround(side_gap),rt x5r + hround(side_gap),.55x_height);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% end of tipasym2.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipasym4.mf b/Master/texmf-dist/fonts/source/public/tipa/tipasym4.mf
new file mode 100644
index 00000000000..ad0fd594296
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipasym4.mf
@@ -0,0 +1,670 @@
+% tipasym4.mf: TIPA phonetic symbols (4) non-IPA, old IPA symbols
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This font is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+cmchar "Crossed B";
+beginchar(oct"240",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(side_gap-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+pickup if serifs: tiny.nib else: fine.nib fi;
+hbar(9,10,lft x0l-hround(1.8u+serif_fit),rt x0r+hround(side_gap),
+ x_height+.5(h-x_height));
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Crossed D";
+beginchar(oct"241",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-.5u#;
+adjust_fit(0,serif_fit#);
+d_stroke(true,true,0);
+pickup if serifs: tiny.nib else: fine.nib fi;
+hbar(8,9,lft x0l-hround 2.5u,rt x0r+hround(1.8u+serif_fit),
+ x_height + .5(h-x_height));
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Curly-tail D";
+beginchar(oct"242",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2.25u#;
+adjust_fit(0,serif_fit#+u#);
+d_stroke(true,false,.45bar_height);
+if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+pos2'(stem,0); z2'=z2; numeric curlytail[];
+curlytail1=if serifs: vair; else: vair; fi
+curlytail2=if serifs: hair; else: .8hair; fi
+curlytail3=if serifs: vair; else: vair; fi
+pos10(curlytail1,90); x10=.4[x2r,x11]; bot y10l=if serifs: -oo; else: -o; fi
+pos11(curlytail2,180); rt x11=w+.5u; y11=.3bar_height;
+pos12(curlytail3,280); x12=x2r+.5u; y12=2y11;
+pos13(hair,360); x13=.4w; y13=-.75desc_depth;
+filldraw stroke z2'e{down}..z10e..{up}z11e...
+ {(-3,-1)}z12e...{(-1,-2)}z13e; % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "Hooktop right-tail D";
+beginchar(oct"243",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr asc_height#*slant+.5u#;
+adjust_fit(0,serif_fit#+1.75u#);
+d_stroke(false,false,0);
+hooktop(0,9,10,11,stem,hround(w+1.5u),h,.9,.6,.5);
+if serifs: right_tail(2,12,13,14,stem,hround(w+1u),.88,.5,1/3);
+else: right_tail(2,12,13,14,stem,hround(w+1u),.833,.5,1/3); fi
+penlabels(0,1,2',3,4,5,6,7,9,10,11,12,13,14); endchar;
+
+cmchar "The letter g";
+beginchar(oct"245",CT(9u#,10u#),x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=h+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=h+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,h]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=h+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+cmchar "Left-hooktop Long I";
+beginchar(oct"246",CT(6u#,6.66u#),x_height#,desc_depth#);
+italcorr x_height#*slant-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos3(stem,0); x2=x3; bot y3=-d;
+x0=.75u; lft x2l = hround(.5w+.5u-.5stem); hook_in(0,1,2);
+filldraw stroke z2e--z3e;
+dish_serif(3,2,a,1/3,jut,b,1/3,jut);
+penlabels(0,1,2,3); endchar;
+
+cmchar "Viby I";
+beginchar(oct"247",CT(7.1u#,7.78u#),x_height#,desc_depth#);
+italcorr x_height#*slant-2u#;
+adjust_fit(if monospace:.5u#,.5u# else:0,-.5u# fi);
+pickup tiny.nib; x0=.75u;
+lft x2l = hround(.5w-.5stem); x3=x2; x5=w-.75u;
+hook_in(0,1,2); hook_out_bot(3,4,5);
+filldraw stroke z2e--z3e;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Turned K";
+beginchar(oct"251",CT(9.5u#,10u#),x_height#,desc_depth#);
+italcorr x_height#*slant;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=x_height+d+min(oo,serif_drop); bot y2=0;
+lft x1l=lft x2l=hround(side_gap-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4);
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+turn_picture_lower; penlabels(0,1,2,3,4,5,6,11); endchar;
+
+cmchar "Barred L";
+beginchar(oct"252",7u#,asc_height#,0);
+italcorr asc_height#*slant-1u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+hbar(3,4,lft x1l - hround(2u),rt x2r + hround(2u), .82x_height+.5bar);
+penlabels(1,2); endchar;
+
+cmchar "Lambda";
+beginchar(oct"253",CT(9.5u#,10u#),asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e; % short diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Crossed lambda";
+beginchar(oct"254",CT(9.5u#,10u#),asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e; % short diagonal
+z7=whatever[z2,z3]; y7=1/3[y5,y2]; pos7(stem,theta+90);
+z8=z7+whatever*dir theta; x8=1.5u-.25stem;
+z9=z7+whatever*dir theta; x9-x7=x7-x8;
+pos8(.6[vair,stem],theta+90); pos9(.6[vair,stem],theta+90);
+filldraw stroke z8e--z9e;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Old L-Yogh Ligature";
+beginchar(oct"255",CT(9.5u#,10u#),asc_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-u#;
+adjust_fit(serif_fit#+stem_shift#,.5serif_fit#);
+pickup fine.nib;
+pos1(if serifs: vair else: stem' fi,180);
+lft x1r=hround(side_gap-.5stem'); y1=.68x_height;
+pos2(.3[hair,stem],90); x2=.5w+u; top y2r=x_height+o;
+pos3(stem,0); x3=x7-.5u; y3=.4[bar_height,x_height];
+pos5(.7[hair,curve],0); x5r=.7[x2,x3]; y5=.7bar_height;
+pos6(.8[hair,curve],30); x6=.5[x5l,x7r]; y6=.45[y5,y7];
+pos7(curve,0); rt x7r=hround(w-.75u); y7=0;
+filldraw stroke z1e{up}...{right}z2e...{down}z3e...{down}z5e
+ ...z6e...{down}z7e; % bowl
+if serifs: pickup tiny.nib;
+ x8=x7; bot y8=-.16d; pos8(curve,0);
+ pos9(vair,-90); pos10(hair,-180); pos10'(flare,-180);
+ x9=.5[x8,x10r]; bot y9r=-d-oo; y10-.5flare=-.7d;
+ z10r=z10'r; lft x10'r=hround 2u;
+ numeric xx;
+ (xx,y9r)=whatever[z9l,z8l]; x9r:=max(xx,.5[x10r,x9]);
+ filldraw stroke z7e--z8e{down}...z9e{left}; bulb(9,10,10'); % arc and bulb
+else: pickup fine.nib;
+ x8=x7; bot y8=-.16d; pos8(curve,0);
+ pos9(vair,-90); x9=.5[x8,x10r]; bot y9r=-d-o;
+ pos10(.7[vair,flare],-130); lft x10r=hround 2u;
+ y10r=good.y -.7d; y10l:=good.y y10l;
+ filldraw stroke z7e--z8e & super_arc.e(8,9)
+ & term.e(9,10,left,.9,4); fi
+pickup tiny.nib; pos51(stem',0); pos52(stem',0); % l
+if odd(w-stem'): change_width; fi
+lft x51l=hround(side_gap-.5stem'); x51=x52; top y51=h; bot y52=0;
+filldraw stroke z51e--z52e; % stem
+if serifs: sloped_serif.l(51,52,e,1/3,jut,serif_drop); % upper serif
+ dish_serif(52,51,f,1/3,jut,g,1/3,jut); fi % lower serif
+penlabels(1,2,3,4,5,6,7,8,9,10,12,13,51,52); endchar;
+
+cmchar "Curly-tail N";
+beginchar(oct"256",10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#+u#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(side_gap-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+raised_h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi % lower left serif
+if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+pos4'(stem,0); z4'=z4; numeric curlytail[];
+curlytail1=if serifs: vair; else: vair; fi
+curlytail2=if serifs: hair; else: .8hair; fi
+curlytail3=if serifs: vair; else: vair; fi
+pos10(curlytail1,90); x10=.4[x4r,x11]; bot y10l=if serifs: -oo; else: -o; fi
+pos11(curlytail2,180); rt x11=w+.5u; y11=.3bar_height;
+pos12(curlytail3,280); x12=x4r+.5u; y12=2y11;
+pos13(hair,360); x13=.45w; y13=-.75desc_depth;
+filldraw stroke z4'e{down} % stem
+ ..z10e..{up}z11e...{(-3,-1)}z12e...{(-1,-2)}z13e; % tail
+penlabels(1,2,3,4,10,11,12,13); endchar;
+
+cmchar "Open O-E Ligature";
+beginchar(oct"257",13u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(fine.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5(w)-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+numeric BH; BH=if Times_Compat:.5613h else: bar_height fi; % Open O
+pickup fine.nib; pos2(vair',-90); pos4(vair',90);
+pos3(mfudged.stem,0); z3=z13;
+x2=x4=.5[.5u,x3]; bot y2r=vround(-1.5oo); top y4r=h+oo;
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ y1=max(h-BH-.5flare-2vair'-2,h-.9[BH,h]+.5flare);
+ lft x1r=hround(.7u); bulb(2,1,0); % bulb
+ pos5(hair,-180); lft x5r=hround(.5u);
+ y5=min(h-good.y(.5BH-.9),y4l-vair');
+filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],-100);
+ lft x1r=hround(.6u); bot y1r=h-vround .82[BH,top y4r];
+ filldraw stroke term.e(2,1,left,.8,4); % upper terminal
+ pos5(.6[vair',flare],95); lft x5r=hround(.5u);
+ y5r=good.y(h+y5r-1/3BH-y5);
+ y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..z5e; fi % arc and lower terminal
+penlabels(1,2,3,4,10,11,12,13,14,15); endchar;
+
+cmchar "Omega";
+beginchar(oct"260",CT(11u#,12u#),x_height#,0); % 2003/03/16
+italcorr .5x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos2(curve,-180); lft x2r=hround.5u; y2=y8=.45x_height;
+y4=y6=vround.6h; y1r=h+oo; x1=x5=.5w; pos1(vair,90);
+pos3(vair,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vair,270); pos8(curve,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.1[y4,h]+.5vair);
+x3=.5[x2,x4]; x7=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+pos9(vair,110);pos10(vair,70);
+y9r=y10r=h; x9=w-x10=x2+1/2(x1-x2);
+filldraw stroke z9e{dir210}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}
+ ...{up}z8e...z10e{dir150};
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Curly-tail Esh";
+beginchar(oct"262",CT(5u#,5.56u#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+1.5u#;
+adjust_fit(.5u# if monospace:+1.5u# fi,.5u# if monospace:+1.5u# fi);
+pickup fine.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=hround(.5w-.5stem'); x2=x1; y2=0; h-y1=d;
+filldraw stroke z1e--z2e; % stem
+hooktop(1,3,4,5,stem',w+1u,h,.9,.5,1/3);
+if serifs: pickup tiny.nib; else: pickup fine.nib; fi
+pos2'(stem,0); z2'=z2; numeric curlytail[];
+curlytail1=if serifs: vair; else: vair; fi
+curlytail2=if serifs: hair; else: .8hair; fi
+curlytail3=if serifs: vair; else: vair; fi
+pos7(curlytail1,-90); pos8(curlytail2,-180);
+pos9(curlytail3,-270); pos10(hair,0);
+bot y7r=-d-o; x7=.45[x8,x2]; lft x8r=hround -1u; y8=-.7d;
+z9=(.5w,-.2d); rt x10r=w+.25hair; y10=-d-apex_o;
+filldraw stroke z2e{down}...{left}z7e...z8e
+ ...z9e...{down}z10e; % lower stem
+penlabels(1,2,3,4,5,7,8,9,10); endchar;
+
+cmchar "Left-hook T";
+beginchar(oct"263",CT(6u#+max(u#,.5stem#),5.56u#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: .5u# else: 0u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(side_gap-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w- if Times_Compat: .4u else: 1.3u fi);
+top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w- if Times_Compat: 0 fi u);
+if serifs: pos5(hair,0); x4l=.5[x3l,x5l];
+ y5= if Times_Compat: .5 else: 1 fi [0,y3];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ if Times_Compat: else:
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; fi % terminal
+ left_tail(5,10,11,12,hair,hround(.5[x3r,x3]));
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi;
+ pos9(.8hair,0); x9r=x5r; y9=y5r;
+ left_tail(9,10,11,12,.8hair,hround(.5[x3r,x3])); fi
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Curly-tail T";
+beginchar(oct"264",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(side_gap-.5shaved_stem); y2=y8;
+y3=if serifs: max(.5bar_height,2vair); else: max(.3bar_height,1.5vair); fi
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=if serifs: -oo; else: -o; fi
+rt x5r=hround(w-u+.25hair); x4l=.6[x3,x5];
+pos5(if serifs:hair else: .8hair fi,0);
+y5=if serifs: .35bar_height; else: .8[0,y3]; fi
+(x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+pos11(if serifs: hair else: vair' fi,110); x11=x4-.5u; top y11r=2y5;
+pos12(hair,180); x12=0; y12=-.75desc_depth;
+filldraw stroke z2e..super_arc.e(3,4)...{up}z5e % stem and hook
+ ...{(-3,-1)}z11e...{(-1,-4)}z12e;
+penlabels(1,2,3,4,5,6,7,8,10,11,12); endchar;
+
+cmchar "T-S Ligature";
+beginchar(oct"265",12u#,10/7x_height#,0);
+italcorr x_height#*slant if serifs: -.75u# else: -.25u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi); % t
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(side_gap-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround5u; top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround7u;
+pos5(hair,0); y5=.35bar_height; x4l=.5[x3l,x5l];
+(x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+filldraw stroke z2e..super_arc.e(3,4); % stem
+numeric x_org, theta; x_org=5u; % s
+ theta=90-angle(40u,x_height); slope:=-x_height/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos12(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos10(ess',theta); pos17(vair',-90); x12l=x10=x17=x_org+.5(w-x_org);
+top y12l=x_height+vround 1.5oo; bot y17r=-oo;
+y10-.5ess'=y17l+if serifs:.54 else: .52 fi\\(y12r-y17l-ess');
+lft x13l=hround(x_org+.6u); rt x16r=hround(w-.6u);
+x13r-x13l=x16r-x16l=hround .5[s_slab,ess']-fine;
+ellipse_set(12l,13l,14l,10l); ellipse_set(12r,13r,14r,10r); y13=y13r;
+ellipse_set(17l,16l,15l,10l); ellipse_set(17r,16r,15r,10r); y16=y16r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(12,13) & z13e{down}
+ ..z14e---z15e..z16e{down} & super_arc.e(16,17)..z4e; % main stroke
+if serifs: pos11(hair,180); rt x11l=hround(w-1.05u);
+ bot y11=min(bot y12r,vround 1/5[top y15r,x_height]);
+ filldraw stroke z11e{up}....{left}z12e; % upper arc
+ path upper_arc; upper_arc=z11{up}....{left}z12;
+ pos20(.3[fine.breadth,cap_hair],0);
+ x20r=x11l; top y20=top y12l; x11l-x11'=1.6cap_curve-fine; y11'=y11;
+ numeric t; t=xpart(upper_arc intersectiontimes(z20l--z11'));
+ filldraw z11l--z20r--z20l--subpath(t,0) of upper_arc--cycle; % upper barb
+else: pos11(4/7[s_slab,flare],-100);
+ x11l=good.x(x11l+w-u-rt x11); top y11l=vround(.93x_height+1.5oo);
+ filldraw stroke term.e(12,11,right,.9,4); fi % upper arc and terminal
+penlabels(1,2,3,4,5,6,7,8);
+penlabels(10,11,11',12,13,14,15,16,20); endchar;
+
+cmchar "Long Viby Y";
+beginchar(oct"266",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0); interim superness:=more_super;
+pickup fine.nib;
+lft x0=hround .25u; lft x2l=hround(2.75u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pickup tiny.nib; pos2'(stem,-180); z2'=z2; x3=x2; pos3(stem,-180);
+lft x8l=hround(w-side_gap-.5stem); bot y8=-d;
+pos4(vair,-90); pos5(hair,0); pos6(stem,0); pos8(stem,0);
+x4=.5[x3,x5]; bot y4r=-oo; y3=.7[y4,y5];
+x5=x6=x8; y5=.57h; top y6=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw stroke z6e--z8e;
+if serifs: dish_serif(6,8,a,1/3,jut,b,1/3,jut);
+ dish_serif(8,6,c,1/3,jut,d,1/3,jut); fi
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+cmchar "Viby Y";
+beginchar(oct"267",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.25u#;
+adjust_fit(0,0); interim superness:=more_super;
+pickup fine.nib;
+rt x10=hround(w+.25u); lft x8l=hround(w-side_gap-.5stem);
+hook_out_bot(8,9,10);
+lft x0=hround .25u; lft x2l=hround(2.75u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pickup tiny.nib; pos2'(stem,-180); pos8'(stem,0);
+z2'=z2; z8'=z8; x3=x2; pos3(stem,-180);
+pos4(vair,-90); pos5(hair,0); pos6(stem,0);
+x4=.5[x3,x5]; bot y4r=-oo; y3=.7[y4,y5];
+x5=x6=x8; y5=.57h; top y6=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw stroke z6e--z8'e;
+if serifs: dish_serif(6,8,a,1/3,jut,b,1/3,jut); fi
+penlabels(0,1,2,3,4,5,6,8,9,10); endchar;
+
+cmchar "Curly-tail Yogh";
+beginchar(oct"270",CT(8u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+yogh_stroke(.5u,.3,.75u,false,true); % yogh
+pos9(vair,-180); pos21(vair,-270);
+if serifs: pos22(hair,0); else: pos22(hair,0); fi
+x21=.5(w-u); y21=0; rt x22r=w; y22=-d-apex_o; x9=u; y9=.5[y8,y21];
+filldraw stroke z8e{left}...{up}z9e...{right}z21e..{(2,-10)}z22e; % curly-tail
+penlabels(1,2,3,4,5,6,7,8,9,12,21,22); endchar;
+
+%%%%% not yet good; to be corrected!!!
+cmchar "Reversed Yogh";
+beginchar(oct"271",CT(8u#,8.88u#),x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem,stem[];
+stem1=fudged.stem-4stem_corr;
+if hefty: arm_thickness1=stem1; arm_thickness2=stem1;
+ z_stem=fudged.hair;
+else: arm_thickness1=stem1; arm_thickness2=stem1; z_stem=fudged.hair; fi
+if arm_thickness1<tiny.breadth: arm_thickness1:=tiny.breadth; fi
+pickup tiny.nib; lft x1r=lft x2r=hround(.8u);
+rt x3l=rt x4l=hround.7[.8u, w-.5u];
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y3=.3[0,h];
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x3l-x2r-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),-180); penpos2(alpha*(z_stem-tiny),-180);
+penpos3(alpha*(z_stem-tiny),-180); penpos4(alpha*(z_stem-tiny),-180);
+filldraw stroke z1e--z2e--z3e;
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,0);
+top y5r=h; x5=x1; rt x6r=w-hround .75u; y6=good.y(y5l-beak/1.8)-eps;
+arm(5,6,a,beak_darkness,.4beak_jut); % upper arm and beak
+pickup fine.nib;
+pos12(stem,angle(z2-z3)); z12l=z3r;
+pos7(curve,180); pos8(vair,270);
+lft x7r=hround(.75u); y7=.5[bot y12l,top y8l];
+x8=w-hround .5[.5u, w-.8u]; bot y8r=-d-oo;
+filldraw stroke pulled_arc.e(12,7) & pulled_arc.e(7,8); % bowl
+if serifs: numeric bulb_diam[];
+ bulb_diam2=flare; %+cap_stem-stem;
+ pos10(bulb_diam2,0); pos9(cap_hair,0);
+ rt x10r=w-hround .75u; y10=-.35d;
+ bulb(8,9,10); % lower bulb
+else: pos9(.6[vair',flare],-80);
+ rt x9r=w-hround .75u; top y9l=vround -.3d;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(8,9,right,1,3); fi % lower terminal
+penlabels(1,2,3,4,5,6,7,8,9,10,12); endchar;
+
+cmchar "Soft Sign";
+beginchar(oct"272",CT(8.5u#+serif_fit#,8.88u#),x_height#,0);
+italcorr .5x_height#*slant-1u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(side_gap-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(vair,90); pos5(curve,0); pos7(vair,-90);
+top y3r=vround(.6x_height+.5vair); y5=.45[y7,y3];
+bot y7r=bot y2; rt x5r=hround(w-1.5u+.5curve); x3=x7=x1;
+filldraw stroke z3e{right}...z5e...{left}z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+ nodish_serif(2,1,c,1/3,jut,d,1/3,0jut); fi % lower serif
+penlabels(1,2,3,5,6,7); endchar;
+
+cmchar "Hard Sign";
+beginchar(oct"273",10u#+serif_fit#,x_height#,0);
+italcorr .5x_height#*slant-1u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+lft x1l=lft x2l=hround(4u-.5stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(vair,90); pos5(curve,0); pos7(vair,-90);
+top y3r=vround(.6x_height+.5vair); y5=.45[y7,y3];
+bot y7r=bot y2; rt x5r=hround(w-1.5u+.5curve); x3=x7=x1;
+filldraw stroke z3e{right}...z5e...{left}z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,jut,b,1/3,jut); % upper serif
+ nodish_serif(2,1,c,1/3,jut,d,1/3,0jut); fi % lower serif
+pickup crisp.nib; pos8(slab,90);pos9(hair,180);
+top y8r = h; x8 = x1;
+lft x9r = hround .75u; y9 = good.y(y8l-beak/1.8) - eps;
+arm(8,9,e,beak_darkness, -.4beak_jut);
+penlabels(1,2,3,5,6,7,8,9); endchar;
+
+cmchar "Raised Glottal Stop";
+beginchar(oct"274",CT(8u#,8.88u#),body_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0); pickup tiny.nib;
+pos2(vair,90); pos3(curve,0);
+pos4(vair,-90); pos5(stem,0); pos6(stem,0);
+lft x6l=hround(.47w-.5stem);
+x2=x5=x6; x4=x5l;
+rt x3r=hround(w-u); bot y6=.8x_height;
+top y2r=h+oo; y3=.5[y2,y4]; y4r=.25[y6,y2]; y5=y4l;
+{{interim superness:=more_super;
+ filldraw stroke pulled_super_arc.e(2,3)(superpull)
+ & z3e{down}...{(-10,-1)}z4e;
+ filldraw stroke z5e--z6e\\}}; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=.3[y3,y2]; bulb(2,1,0); % bulb
+else: pickup fine.nib; pos2'(vair,90); z2'=z2;
+ pos1(vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2',1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6); endchar;
+
+% end of tipasym3.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipatone.mf b/Master/texmf-dist/fonts/source/public/tipa/tipatone.mf
new file mode 100644
index 00000000000..d5dcaf8f2d4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipatone.mf
@@ -0,0 +1,311 @@
+% tipatone.mf: TIPA symbols for tone letters and other suprasegmentals
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+
+def tone_bar(suffix $, $$)(expr start_y, end_y) =
+ adjust_fit(0,0); pickup if serifs: rule.nib; else: hair_rule.nib; fi
+ x$ = 0; x$$ = w; % lft, rt are not used for adjusting tone letters.
+ y$ = start_y; y$$ = end_y; % same thing for not using top, bot.
+ draw z$--z$$;
+ penlabels($,$$); enddef;
+
+def long_width = 6u enddef;
+def short_width = 4u enddef;
+
+numeric ipacode;
+ipacode := 127;
+
+cmchar "Tone letter: long level tone";
+beginchar(incr ipacode,long_width#,0,0);
+tone_bar(1,2,0,0); endchar;
+
+cmchar "Tone letter: long falling tone (1)";
+beginchar(incr ipacode,long_width#,1/4asc_height#,0);
+tone_bar(1,2,h,0); endchar;
+
+cmchar "Tone letter: long falling tone (2)";
+beginchar(incr ipacode,long_width#,2/4asc_height#,0);
+tone_bar(1,2,h,0); endchar;
+
+cmchar "Tone letter: long falling tone (3)";
+beginchar(incr ipacode,long_width#,3/4asc_height#,0);
+tone_bar(1,2,h,0); endchar;
+
+cmchar "Tone letter: long falling tone (4)";
+beginchar(incr ipacode,long_width#,asc_height#,0);
+tone_bar(1,2,h,0); endchar;
+
+cmchar "Tone letter: long rising tone (1)";
+beginchar(incr ipacode,long_width#,1/4asc_height#,0);
+tone_bar(1,2,0,h); endchar;
+
+cmchar "Tone letter: long rising tone (2)";
+beginchar(incr ipacode,long_width#,2/4asc_height#,0);
+tone_bar(1,2,0,h); endchar;
+
+cmchar "Tone letter: long rising tone (3)";
+beginchar(incr ipacode,long_width#,3/4asc_height#,0);
+tone_bar(1,2,0,h); endchar;
+
+cmchar "Tone letter: long rising tone (4)";
+beginchar(incr ipacode,long_width#,asc_height#,0);
+tone_bar(1,2,0,h); endchar;
+
+cmchar "Tone letter: short level tone";
+beginchar(incr ipacode,short_width#,0,0);
+tone_bar(1,2,0,0); endchar;
+
+cmchar "Tone letter: short falling tone (1)";
+beginchar(incr ipacode,short_width#,1/4asc_height#,0);
+tone_bar(1,2,h,0); endchar;
+
+cmchar "Tone letter: short falling tone (2)";
+beginchar(incr ipacode,short_width#,2/4asc_height#,0);
+tone_bar(1,2,h,0); endchar;
+
+cmchar "Tone letter: short falling tone (3)";
+beginchar(incr ipacode,short_width#,3/4asc_height#,0);
+tone_bar(1,2,h,0); endchar;
+
+cmchar "Tone letter: short falling tone (4)";
+beginchar(incr ipacode,short_width#,asc_height#,0);
+tone_bar(1,2,h,0); endchar;
+
+cmchar "Tone letter: short rising tone (1)";
+beginchar(incr ipacode,short_width#,1/4asc_height#,0);
+tone_bar(1,2,0,h); endchar;
+
+cmchar "Tone letter: short rising tone (2)";
+beginchar(incr ipacode,short_width#,2/4asc_height#,0);
+tone_bar(1,2,0,h); endchar;
+
+cmchar "Tone letter: short rising tone (3)";
+beginchar(incr ipacode,short_width#,3/4asc_height#,0);
+tone_bar(1,2,0,h); endchar;
+
+cmchar "Tone letter: short rising tone (4)";
+beginchar(incr ipacode,short_width#,asc_height#,0);
+tone_bar(1,2,0,h); endchar;
+
+cmchar "Vertical line (minor group)";
+beginchar(incr ipacode,CT(5u#,5.56u#),body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0);
+numeric thickness; thickness=hround.6[hair,stem];
+pickup tiny.nib; pos1(thickness,0); pos2(thickness,0);
+lft x1l = lft x2l = hround(.5w-.5thickness);
+top y1=h+eps; bot y2=-d-eps;
+filldraw stroke z1e--z2e;
+penlabels(1,2); endchar;
+
+cmchar "Double vertical line (Major group)";
+beginchar(incr ipacode,CT(9u#,10u#),body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0);
+numeric thickness; thickness=hround(.6[hair,stem]-2stem_corr);
+pickup tiny.nib; pos1(thickness,0); pos2(thickness,0);
+pos3(thickness,0); pos4(thickness,0);
+x1=x2; x3=x4=w-x1; lft x1l = hround((w-3.5u-thickness)/2);
+top y1=top y3=h+eps; bot y2=bot y4=-d-eps;
+filldraw stroke z1e--z2e; filldraw stroke z3e--z4e;
+penlabels(1,2,3,4); endchar;
+
+cmchar "Down arrow (Downstep)";
+beginchar(incr ipacode,8u#,body_height#,0);
+italcorr .76body_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1+.5rule_thickness=h;
+x0=x1=x2; bot y0=bar_height; x0-x3=x4-x0=if monospace:2.5u else:2.5u fi+eps;
+y3=y4=y0+if monospace:.24 else:.27 fi asc_height+eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Up arrow (Upstep)";
+beginchar(incr ipacode,8u#,body_height#,0);
+italcorr .76body_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(rule_thickness,90); pos4(rule_thickness,90);
+lft x1l=hround(.5w-.5rule_thickness); y1-.5rule_thickness=bar_height;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=if monospace:2.5u else:2.5u fi+eps;
+y3=y4=y0-if monospace:.24 else:.27 fi asc_height-eps;
+pos5(rule_thickness,angle(z4-z0)); z5l=z0;
+pos6(rule_thickness,angle(z3-z0)); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Northeast arrow (Global rise)";
+beginchar(incr ipacode,14u#,asc_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y1-.5rule_thickness=-d; top y0=h;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta); pos2(rule_thickness,90+theta);
+pos3(rule_thickness,theta); pos4(rule_thickness,theta);
+z3-z0=(-3u,.27asc_height) rotated theta;
+z4-z0=(-3u,-.27asc_height) rotated theta;
+pos5(rule_thickness,-90); z5l=z0; pos6(rule_thickness,-180); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Southeast arrow (global fall)";
+beginchar(incr ipacode,14u#,asc_height#,0);
+adjust_fit(0,0); pickup crisp.nib;
+x1-.5rule_thickness=hround u; rt x0=hround(w-u);
+y1+.5rule_thickness=h; bot y0=-d;
+numeric theta; theta=angle(z0-z1);
+pos1(rule_thickness,90+theta); pos2(rule_thickness,90+theta);
+pos3(rule_thickness,theta); pos4(rule_thickness,theta);
+z3-z0=(-3u,.27asc_height) rotated theta;
+z4-z0=(-3u,-.27asc_height) rotated theta;
+pos5(rule_thickness,180); z5l=z0; pos6(rule_thickness,90); z6l=z0;
+z9=.2[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes (z1l--(z1l+2(z0-z1)))); z2l=point t of p;
+filldraw z0..{z4-z9}z4r
+ --subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Mid acute accent";
+beginchar(oct"230",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric accent.stem, accent.hair;
+accent.stem = max(.8stem,hair);
+accent.hair = max(.6stem,hair);
+y1 = y2; x1 = hround(1.5u+.5accent.stem); x2 = x4;
+pos1(accent.hair,-90); pos2(accent.hair,-90);
+if serifs: pickup tiny.nib;
+ x3+.5accent.stem=hround(w-1.5u); x3-x4=1.8u; y2 = y4;
+ y3+.5accent.stem=h; top y4'l=vround(.4[x_height,asc_height])+o;
+ y4=y4'; pos4'(accent.hair,-90);
+ numeric theta; theta=angle(z4-z3)+90;
+ pos3(accent.stem,theta); pos4(accent.hair,theta);
+ filldraw stroke z1e--z2e; % bar
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib;
+ pos3(stem,0); pos4(accent.hair,0); bot y2r = bot y4;
+ rt x3r=hround(w-1.5u); rt x4r=hround(rt x3r-1.8u);
+ top y3=h; top y2l=vround(.4[x_height,asc_height])+o;
+ filldraw stroke z1e--z2e; % bar
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+cmchar "Grave mid accent";
+beginchar(oct"231",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric accent.stem, accent.hair;
+accent.stem = max(.8stem,hair);
+accent.hair = max(.6stem,hair);
+y1 = y2; x1 = hround(w-1.5u-.5accent.stem); x2 = x4;
+pos1(accent.hair,-90); pos2(accent.hair,-90);
+if serifs: pickup tiny.nib;
+ x3-.5accent.stem=hround(1.5u); x4-x3=1.8u; y2 = y4;
+ y3+.5accent.stem=h; top y4'r=vround(.4[x_height,asc_height])+o;
+ y4=y4'; pos4'(accent.hair,90);
+ numeric theta; theta=angle(z4-z3)+90;
+ pos3(accent.stem,theta); pos4(accent.hair,theta);
+ filldraw stroke z1e--z2e; % bar
+ filldraw circ_stroke z3e--z4e; % right diagonal
+else: pickup fine.nib;
+ pos3(stem,0); pos4(accent.hair,0); bot y2r = bot y4;
+ lft x3l=hround(1.5u); lft x4l=hround(lft x3l+1.8u);
+ top y3=h; top y2l = vround(.4[x_height,asc_height])+o;
+ filldraw stroke z1e--z2e; % bar
+ filldraw stroke z3e--z4e; fi % right diagonal
+penlabels(1,2,3,4); endchar;
+
+cmchar "Rising-falling accent";
+beginchar(oct"232",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric accent.stem, accent.hair;
+accent.stem = max(.8stem,hair);
+accent.hair = max(.5stem,hair);
+if serifs: pickup tiny.nib;
+ x2-x1=x6-x5=2.2u; x2=x4; x3=x5; x1=1.2u; x6=w-1.2u;
+ y1=y3=y5=h-.5accent.stem;
+ y2=y4=y6=vround(max(2/3[h,x_height],x_height+o+hair));
+ numeric theta; theta=angle(z1-z2)+90;
+ pos1(accent.stem,theta); pos2(accent.hair,theta);
+ pos3(accent.stem,180-theta); pos4(accent.hair,180-theta);
+ pos5(accent.stem,theta); pos6(accent.hair,theta);
+ full_circ_stroke(1,2);
+ full_circ_stroke(3,4);
+ full_circ_stroke(5,6);
+else: pickup fine.nib;
+ x2-x1=x6-x5=2.2u; x2=x4; x3=x5; x1=1.2u; x6=w-1.2u;
+ top y1=top y3=top y5=h; bot y2=bot y4=bot y6=vround 2/3[h,x_height];
+ pos1(stem,0); pos2(accent.hair,0);
+ pos3(stem,0); pos4(accent.hair,0);
+ pos5(stem,0); pos6(accent.hair,0);
+ filldraw stroke z1e--z2e;
+ filldraw stroke z3e--z4e;
+ filldraw stroke z5e--z6e; fi
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Falling-rising accent";
+beginchar(oct"233",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric accent.stem, accent.hair;
+accent.stem = max(.8stem,hair);
+accent.hair = max(.5stem,hair);
+if serifs: pickup tiny.nib;
+ x1-x2=x5-x6=2.2u; x1=x3; x4=x6; x2=1.2u; x5=w-1.2u;
+ y1=y3=y5=h-.5accent.stem;
+ y2=y4=y6=vround(max(2/3[h,x_height],x_height+o+hair));
+ numeric theta; theta=angle(z1-z2)+90;
+ pos1(accent.stem,theta); pos2(accent.hair,theta);
+ pos3(accent.stem,180-theta); pos4(accent.hair,180-theta);
+ pos5(accent.stem,theta); pos6(accent.hair,theta);
+ full_circ_stroke(1,2);
+ full_circ_stroke(3,4);
+ full_circ_stroke(5,6);
+else: pickup fine.nib;
+ x1-x2=x5-x6=2.2u; x1=x3; x4=x6; x2=1.2u; x5=w-1.2u;
+ top y1=top y3=top y5=h; bot y2=bot y4=bot y6=vround 2/3[h,x_height];
+ pos1(stem,0); pos2(accent.hair,0);
+ pos3(stem,0); pos4(accent.hair,0);
+ pos5(stem,0); pos6(accent.hair,0);
+ filldraw stroke z1e--z2e;
+ filldraw stroke z3e--z4e;
+ filldraw stroke z5e--z6e; fi
+penlabels(1,2,3,4,5,6); endchar;
+
+% end of tipatone.mf
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipatr.mf b/Master/texmf-dist/fonts/source/public/tipa/tipatr.mf
new file mode 100644
index 00000000000..b57c662e8ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipatr.mf
@@ -0,0 +1,31 @@
+% tipatr.mf -- correction for Times Roman compatible fonts
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+
+def bulb(suffix $,$$,$$$) =
+ z$$$r=z$$r;
+ numeric theta; theta=angle(0,y$r-y$$r);
+ filldraw z$r{x$$r-x$r,0}...{0,y$$r-y$r}z$$r...{dir theta}z$$$l...
+ {x$r-x$$r,0}z$l--cycle;
+ enddef;
+
+def bulbvar(suffix $,$$,$$$) =
+ z$$$r=z$$r;
+ numeric theta; theta=angle(x$r-x$$r,0);
+ filldraw z$r{0,y$$r-y$r}...{x$$r-x$r,0}z$$r...{dir theta}z$$$l...
+ {0,y$r-y$$r}z$l--cycle;
+ enddef;
+
+endinput
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipats10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipats10.mf
new file mode 100644
index 00000000000..a645a567762
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipats10.mf
@@ -0,0 +1,92 @@
+% tipats10.mf: TIPA Typewriter Text Slanted 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPATS"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=21/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=250/36pt#;
+asc_height#:=220/36pt#;
+cap_height#:=220/36pt#;
+fig_height#:=220/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=110/36pt#;
+bar_height#:=79/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=80/36pt#;
+crisp#:=22/36pt#;
+tiny#:=22/36pt#;
+fine#:=21/36pt#;
+thin_join#:=21/36pt#;
+hair#:=25/36pt#;
+stem#:=25/36pt#;
+curve#:=25/36pt#;
+ess#:=22/36pt#;
+flare#:=32/36pt#;
+dot_size#:=36/36pt#;
+cap_hair#:=25/36pt#;
+cap_stem#:=25/36pt#;
+cap_curve#:=25/36pt#;
+cap_ess#:=25/36pt#;
+rule_thickness#:=25/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=34/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=0pt#;
+beak#:=34/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=25/36pt#;
+bar#:=22/36pt#;
+slab#:=22/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=22/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=10/36pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=1/6;
+fudge:=0.81;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=21/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipatt10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipatt10.mf
new file mode 100644
index 00000000000..ece73bfb77b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipatt10.mf
@@ -0,0 +1,92 @@
+% tipatt10.mf: TIPA Typewriter Text 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPATT"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=21/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=250/36pt#;
+asc_height#:=220/36pt#;
+cap_height#:=220/36pt#;
+fig_height#:=220/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=110/36pt#;
+bar_height#:=79/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=80/36pt#;
+crisp#:=22/36pt#;
+tiny#:=22/36pt#;
+fine#:=21/36pt#;
+thin_join#:=21/36pt#;
+hair#:=25/36pt#;
+stem#:=25/36pt#;
+curve#:=25/36pt#;
+ess#:=22/36pt#;
+flare#:=32/36pt#;
+dot_size#:=36/36pt#;
+cap_hair#:=25/36pt#;
+cap_stem#:=25/36pt#;
+cap_curve#:=25/36pt#;
+cap_ess#:=25/36pt#;
+rule_thickness#:=25/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=34/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=0pt#;
+beak#:=34/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=25/36pt#;
+bar#:=22/36pt#;
+slab#:=22/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=22/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=10/36pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=0.81;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=21/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipatt12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipatt12.mf
new file mode 100644
index 00000000000..ca20d299237
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipatt12.mf
@@ -0,0 +1,92 @@
+% tipatt12.mf: TIPA Typewriter Text 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPATT"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=24.7/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=300/36pt#;
+asc_height#:=264/36pt#;
+cap_height#:=264/36pt#;
+fig_height#:=264/36pt#;
+x_height#:=186/36pt#;
+math_axis#:=132/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=60/36pt#;
+desc_depth#:=96/36pt#;
+crisp#:=25/36pt#;
+tiny#:=25/36pt#;
+fine#:=22/36pt#;
+thin_join#:=22/36pt#;
+hair#:=28/36pt#;
+stem#:=28/36pt#;
+curve#:=28/36pt#;
+ess#:=25/36pt#;
+flare#:=35/36pt#;
+dot_size#:=39/36pt#;
+cap_hair#:=28/36pt#;
+cap_stem#:=28/36pt#;
+cap_curve#:=28/36pt#;
+cap_ess#:=28/36pt#;
+rule_thickness#:=28/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=39/36pt#;
+cap_jut#:=39/36pt#;
+beak_jut#:=0pt#;
+beak#:=39/36pt#;
+vair#:=25/36pt#;
+notch_cut#:=28/36pt#;
+bar#:=25/36pt#;
+slab#:=25/36pt#;
+cap_bar#:=25/36pt#;
+cap_band#:=25/36pt#;
+cap_notch_cut#:=28/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=11/36pt#;
+o#:=5/36pt#;
+apex_o#:=4/36pt#;
+slant:=0;
+fudge:=0.86;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=24.7/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipatt8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipatt8.mf
new file mode 100644
index 00000000000..12877a60915
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipatt8.mf
@@ -0,0 +1,92 @@
+% tipatt8.mf: TIPA Typewriter Text 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPATT"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=17/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=200/36pt#;
+asc_height#:=176/36pt#;
+cap_height#:=176/36pt#;
+fig_height#:=176/36pt#;
+x_height#:=124/36pt#;
+math_axis#:=88/36pt#;
+bar_height#:=63/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=64/36pt#;
+crisp#:=19/36pt#;
+tiny#:=19/36pt#;
+fine#:=18/36pt#;
+thin_join#:=18/36pt#;
+hair#:=22/36pt#;
+stem#:=22/36pt#;
+curve#:=22/36pt#;
+ess#:=19/36pt#;
+flare#:=28/36pt#;
+dot_size#:=31/36pt#;
+cap_hair#:=22/36pt#;
+cap_stem#:=22/36pt#;
+cap_curve#:=22/36pt#;
+cap_ess#:=22/36pt#;
+rule_thickness#:=22/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=27/36pt#;
+cap_jut#:=27/36pt#;
+beak_jut#:=0pt#;
+beak#:=27/36pt#;
+vair#:=19/36pt#;
+notch_cut#:=22/36pt#;
+bar#:=19/36pt#;
+slab#:=19/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=22/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=8/36pt#;
+o#:=3/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=0.81;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=17/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipatt9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipatt9.mf
new file mode 100644
index 00000000000..b6a60cada74
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipatt9.mf
@@ -0,0 +1,92 @@
+% tipatt9.mf: TIPA Typewriter Text 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPATT"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=18.9/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=225/36pt#;
+asc_height#:=198/36pt#;
+cap_height#:=198/36pt#;
+fig_height#:=198/36pt#;
+x_height#:=139.5/36pt#;
+math_axis#:=99/36pt#;
+bar_height#:=71/36pt#;
+comma_depth#:=45/36pt#;
+desc_depth#:=72/36pt#;
+crisp#:=21/36pt#;
+tiny#:=21/36pt#;
+fine#:=20/36pt#;
+thin_join#:=20/36pt#;
+hair#:=24/36pt#;
+stem#:=24/36pt#;
+curve#:=24/36pt#;
+ess#:=21/36pt#;
+flare#:=30/36pt#;
+dot_size#:=33/36pt#;
+cap_hair#:=24/36pt#;
+cap_stem#:=24/36pt#;
+cap_curve#:=24/36pt#;
+cap_ess#:=24/36pt#;
+rule_thickness#:=24/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=31/36pt#;
+cap_jut#:=31/36pt#;
+beak_jut#:=0pt#;
+beak#:=31/36pt#;
+vair#:=21/36pt#;
+notch_cut#:=24/36pt#;
+bar#:=21/36pt#;
+slab#:=21/36pt#;
+cap_bar#:=21/36pt#;
+cap_band#:=21/36pt#;
+cap_notch_cut#:=24/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=9/36pt#;
+o#:=3.5/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=0.81;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=18.9/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipx.mf b/Master/texmf-dist/fonts/source/public/tipa/tipx.mf
new file mode 100644
index 00000000000..85ee787adcc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipx.mf
@@ -0,0 +1,55 @@
+% tipx.mf: TIPA Extra Symbols driver file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+%
+
+font_coding_scheme:="TeX IPA";
+
+mode_setup;
+font_setup;
+
+input tipanew % new materials for testing
+input tipaextr % tipx symbols
+
+font_slant slant; font_x_height x_height#;
+
+if monospace:
+ font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else:
+ font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+fi
+
+% ligatures made by ligtables
+
+% no ligatures available.
+
+% kernings (need to modify)
+
+numeric itc#; % modified italic correction on `f'
+itc#=if serifs: max(0,flare#-.25u#) else: 1.25u# fi;
+
+k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+% no ligtable prepared.
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipx10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipx10.mf
new file mode 100644
index 00000000000..efc3312de81
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipx10.mf
@@ -0,0 +1,92 @@
+% tipx10.mf: TIPX Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPX"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=87/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=25/36pt#;
+curve#:=30/36pt#;
+ess#:=27/36pt#;
+flare#:=33/36pt#;
+dot_size#:=38/36pt#;
+cap_hair#:=11/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=37/36pt#;
+cap_ess#:=35/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=1/36pt#;
+bracket#:=20/36pt#;
+jut#:=28/36pt#;
+cap_jut#:=37/36pt#;
+beak_jut#:=10/36pt#;
+beak#:=70/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=10pt#;
+bar#:=11/36pt#;
+slab#:=11/36pt#;
+cap_bar#:=11/36pt#;
+cap_band#:=11/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=4/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=8/36pt#;
+apex_o#:=8/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipx12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipx12.mf
new file mode 100644
index 00000000000..1dfbadd391f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipx12.mf
@@ -0,0 +1,92 @@
+% tipx12.mf: TIPX Roman 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPX"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5.8/36pt#;
+letter_fit#:=0pt#;
+body_height#:=324/36pt#;
+asc_height#:=300/36pt#;
+cap_height#:=295.2/36pt#;
+fig_height#:=278.4/36pt#;
+x_height#:=186/36pt#;
+math_axis#:=108/36pt#;
+bar_height#:=104.4/36pt#;
+comma_depth#:=84/36pt#;
+desc_depth#:=84/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7.5/36pt#;
+hair#:=9.5/36pt#;
+stem#:=28/36pt#;
+curve#:=33/36pt#;
+ess#:=30/36pt#;
+flare#:=36/36pt#;
+dot_size#:=42/36pt#;
+cap_hair#:=11.5/36pt#;
+cap_stem#:=35/36pt#;
+cap_curve#:=40/36pt#;
+cap_ess#:=38/36pt#;
+rule_thickness#:=.44pt#;
+dish#:=1/36pt#;
+bracket#:=24/36pt#;
+jut#:=33/36pt#;
+cap_jut#:=41/36pt#;
+beak_jut#:=11.4/36pt#;
+beak#:=84/36pt#;
+vair#:=8.5/36pt#;
+notch_cut#:=12pt#;
+bar#:=12.5/36pt#;
+slab#:=12.5/36pt#;
+cap_bar#:=12.5/36pt#;
+cap_band#:=12.5/36pt#;
+cap_notch_cut#:=12pt#;
+serif_drop#:=4.8/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=9/36pt#;
+apex_o#:=9/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=-0.2;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=16.45/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipx17.mf b/Master/texmf-dist/fonts/source/public/tipa/tipx17.mf
new file mode 100644
index 00000000000..a3b49473261
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipx17.mf
@@ -0,0 +1,92 @@
+% tipx17.mf: TIPX Roman 17.28 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPX"; font_size 17.28pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=32.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=8/36pt#;
+letter_fit#:=-0.1/36pt#;
+body_height#:=466/36pt#;
+asc_height#:=432/36pt#;
+cap_height#:=425/36pt#;
+fig_height#:=401/36pt#;
+x_height#:=267.8/36pt#;
+math_axis#:=155.5/36pt#;
+bar_height#:=150/36pt#;
+comma_depth#:=121/36pt#;
+desc_depth#:=121/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=9/36pt#;
+hair#:=11/36pt#;
+stem#:=33/36pt#;
+curve#:=40/36pt#;
+ess#:=35/36pt#;
+flare#:=45/36pt#;
+dot_size#:=51/36pt#;
+cap_hair#:=13/36pt#;
+cap_stem#:=41/36pt#;
+cap_curve#:=47/36pt#;
+cap_ess#:=43/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=1/36pt#;
+bracket#:=34/36pt#;
+jut#:=42/36pt#;
+cap_jut#:=50/36pt#;
+beak_jut#:=15/36pt#;
+beak#:=121/36pt#;
+vair#:=10/36pt#;
+notch_cut#:=17pt#;
+bar#:=16/36pt#;
+slab#:=16/36pt#;
+cap_bar#:=16/36pt#;
+cap_band#:=16/36pt#;
+cap_notch_cut#:=17pt#;
+serif_drop#:=7/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=10/36pt#;
+apex_o#:=10/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=-0.4;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=22.75/36pt#;
+sc.letter_fit#:=2.2/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipx8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipx8.mf
new file mode 100644
index 00000000000..bc97c5ebc62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipx8.mf
@@ -0,0 +1,92 @@
+% tipx8.mf: TIPX Roman 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPX"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=17/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=4.1/36pt#;
+letter_fit#:=0pt#;
+body_height#:=216/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=196.8/36pt#;
+fig_height#:=185.6/36pt#;
+x_height#:=124/36pt#;
+math_axis#:=72/36pt#;
+bar_height#:=69.6/36pt#;
+comma_depth#:=56/36pt#;
+desc_depth#:=56/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=22/36pt#;
+curve#:=25.5/36pt#;
+ess#:=23/36pt#;
+flare#:=27/36pt#;
+dot_size#:=32/36pt#;
+cap_hair#:=9.5/36pt#;
+cap_stem#:=26.5/36pt#;
+cap_curve#:=30/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.36pt#;
+dish#:=1/36pt#;
+bracket#:=16/36pt#;
+jut#:=22/36pt#;
+cap_jut#:=29/36pt#;
+beak_jut#:=8.4/36pt#;
+beak#:=56/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=8pt#;
+bar#:=9.5/36pt#;
+slab#:=9.5/36pt#;
+cap_bar#:=9.5/36pt#;
+cap_band#:=9.5/36pt#;
+cap_notch_cut#:=8pt#;
+serif_drop#:=3.2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=6/36pt#;
+apex_o#:=6/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.4;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipx9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipx9.mf
new file mode 100644
index 00000000000..a2edadb1cde
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipx9.mf
@@ -0,0 +1,92 @@
+% tipx9.mf: TIPX Roman 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPX"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=18.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=4.6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=243/36pt#;
+asc_height#:=225/36pt#;
+cap_height#:=221.4/36pt#;
+fig_height#:=208.8/36pt#;
+x_height#:=139.5/36pt#;
+math_axis#:=81/36pt#;
+bar_height#:=78.3/36pt#;
+comma_depth#:=63/36pt#;
+desc_depth#:=63/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=24/36pt#;
+curve#:=28/36pt#;
+ess#:=25/36pt#;
+flare#:=30/36pt#;
+dot_size#:=35/36pt#;
+cap_hair#:=10/36pt#;
+cap_stem#:=29/36pt#;
+cap_curve#:=33/36pt#;
+cap_ess#:=31/36pt#;
+rule_thickness#:=.38pt#;
+dish#:=1/36pt#;
+bracket#:=18/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=33/36pt#;
+beak_jut#:=9.2/36pt#;
+beak#:=63/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=9pt#;
+bar#:=10/36pt#;
+slab#:=10/36pt#;
+cap_bar#:=10/36pt#;
+cap_band#:=10/36pt#;
+cap_notch_cut#:=9pt#;
+serif_drop#:=3.6/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=7/36pt#;
+apex_o#:=7/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.2;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12.95/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxb10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxb10.mf
new file mode 100644
index 00000000000..b7bf56b4757
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxb10.mf
@@ -0,0 +1,92 @@
+% tipxb10.mf: TIPX Bold Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXB"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=10/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=41/36pt#;
+curve#:=46/36pt#;
+ess#:=38/36pt#;
+flare#:=45/36pt#;
+dot_size#:=56/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=51/36pt#;
+cap_curve#:=55/36pt#;
+cap_ess#:=53/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=1/36pt#;
+bracket#:=10/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=17/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=3/36pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxbs10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxbs10.mf
new file mode 100644
index 00000000000..7d551a2dda5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxbs10.mf
@@ -0,0 +1,92 @@
+% tipxbs10.mf: TIPX Bold Extended Slanted Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXBS"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23/36pt#;
+width_adj#:=11/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=7/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=41/36pt#;
+curve#:=46/36pt#;
+ess#:=38/36pt#;
+flare#:=45/36pt#;
+dot_size#:=56/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=51/36pt#;
+cap_curve#:=55/36pt#;
+cap_ess#:=53/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=1/36pt#;
+bracket#:=10/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=39/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=17/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=3/36pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=18/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxbx10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxbx10.mf
new file mode 100644
index 00000000000..2808f0ee742
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxbx10.mf
@@ -0,0 +1,92 @@
+% tipxbx10.mf: TIPX Bold Extended Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXBX"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23/36pt#;
+width_adj#:=11/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=7/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=247/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=85/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=41/36pt#;
+curve#:=46/36pt#;
+ess#:=38/36pt#;
+flare#:=45/36pt#;
+dot_size#:=56/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=51/36pt#;
+cap_curve#:=55/36pt#;
+cap_ess#:=53/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=1/36pt#;
+bracket#:=10/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=39/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=17/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=3/36pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=18/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxbx12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxbx12.mf
new file mode 100644
index 00000000000..ed767f2b115
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxbx12.mf
@@ -0,0 +1,92 @@
+% tipxbx12.mf: TIPX Bold Extended Roman 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXBX"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=27/36pt#;
+width_adj#:=13/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=8/36pt#;
+letter_fit#:=0pt#;
+body_height#:=324/36pt#;
+asc_height#:=300/36pt#;
+cap_height#:=296.4/36pt#;
+fig_height#:=278.4/36pt#;
+x_height#:=192/36pt#;
+math_axis#:=108/36pt#;
+bar_height#:=102/36pt#;
+comma_depth#:=84/36pt#;
+desc_depth#:=84/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10.5/36pt#;
+hair#:=18.3/36pt#;
+stem#:=47/36pt#;
+curve#:=52/36pt#;
+ess#:=44/36pt#;
+flare#:=51/36pt#;
+dot_size#:=62/36pt#;
+cap_hair#:=20/36pt#;
+cap_stem#:=57/36pt#;
+cap_curve#:=61/36pt#;
+cap_ess#:=59/36pt#;
+rule_thickness#:=.66pt#;
+dish#:=1/36pt#;
+bracket#:=12/36pt#;
+jut#:=30/36pt#;
+cap_jut#:=46/36pt#;
+beak_jut#:=12.4/36pt#;
+beak#:=84/36pt#;
+vair#:=14.3/36pt#;
+notch_cut#:=12pt#;
+bar#:=18.5/36pt#;
+slab#:=18.5/36pt#;
+cap_bar#:=18.5/36pt#;
+cap_band#:=18.5/36pt#;
+cap_notch_cut#:=12pt#;
+serif_drop#:=3.6/36pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=5/36pt#;
+apex_o#:=4/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.4;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=21.13/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxbx8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxbx8.mf
new file mode 100644
index 00000000000..b638b6f168a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxbx8.mf
@@ -0,0 +1,92 @@
+% tipxbx8.mf: TIPX Bold Extended Roman 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXBX"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=19.6/36pt#;
+width_adj#:=9.4/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5.4/36pt#;
+letter_fit#:=0pt#;
+body_height#:=216/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=197.6/36pt#;
+fig_height#:=185.6/36pt#;
+x_height#:=128/36pt#;
+math_axis#:=72/36pt#;
+bar_height#:=67/36pt#;
+comma_depth#:=56/36pt#;
+desc_depth#:=56/36pt#;
+crisp#:=0pt#;
+tiny#:=12/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=16.2/36pt#;
+stem#:=35/36pt#;
+curve#:=39/36pt#;
+ess#:=32/36pt#;
+flare#:=39/36pt#;
+dot_size#:=46/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=43/36pt#;
+cap_curve#:=46/36pt#;
+cap_ess#:=43/36pt#;
+rule_thickness#:=.54pt#;
+dish#:=1/36pt#;
+bracket#:=8/36pt#;
+jut#:=19/36pt#;
+cap_jut#:=31/36pt#;
+beak_jut#:=9.4/36pt#;
+beak#:=55/36pt#;
+vair#:=12/36pt#;
+notch_cut#:=8pt#;
+bar#:=15/36pt#;
+slab#:=15/36pt#;
+cap_bar#:=15/36pt#;
+cap_band#:=15/36pt#;
+cap_notch_cut#:=8pt#;
+serif_drop#:=2.4/36pt#;
+stem_corr#:=1.8/36pt#;
+vair_corr#:=1.3/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.9;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.34/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxbx9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxbx9.mf
new file mode 100644
index 00000000000..e8ab6c8a6ef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxbx9.mf
@@ -0,0 +1,92 @@
+% tipxbx9.mf: TIPX Bold Extended Roman 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXBX"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=21.3/36pt#;
+width_adj#:=10.2/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=6.2/36pt#;
+letter_fit#:=0pt#;
+body_height#:=243/36pt#;
+asc_height#:=225/36pt#;
+cap_height#:=222.3/36pt#;
+fig_height#:=208.8/36pt#;
+x_height#:=144/36pt#;
+math_axis#:=81/36pt#;
+bar_height#:=76/36pt#;
+comma_depth#:=63/36pt#;
+desc_depth#:=63/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=16.6/36pt#;
+stem#:=38/36pt#;
+curve#:=43/36pt#;
+ess#:=35/36pt#;
+flare#:=42/36pt#;
+dot_size#:=51/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=47/36pt#;
+cap_curve#:=51/36pt#;
+cap_ess#:=48/36pt#;
+rule_thickness#:=.57pt#;
+dish#:=1/36pt#;
+bracket#:=9/36pt#;
+jut#:=22/36pt#;
+cap_jut#:=35/36pt#;
+beak_jut#:=10.2/36pt#;
+beak#:=63/36pt#;
+vair#:=12.5/36pt#;
+notch_cut#:=9pt#;
+bar#:=16/36pt#;
+slab#:=16/36pt#;
+cap_bar#:=16/36pt#;
+cap_band#:=16/36pt#;
+cap_notch_cut#:=9pt#;
+serif_drop#:=2.7/36pt#;
+stem_corr#:=1.9/36pt#;
+vair_corr#:=1.4/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.7;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=16.67/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxsb10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxsb10.mf
new file mode 100644
index 00000000000..02025d75b4a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxsb10.mf
@@ -0,0 +1,92 @@
+% tipxsb10.mf: TIPX Sans Serif Bold Extended 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSB"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=22/36pt#;
+width_adj#:=22/36pt#;
+serif_fit#:=-9/36pt#;
+cap_serif_fit#:=-11/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=250/36pt#;
+fig_height#:=250/36pt#;
+x_height#:=165/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=90/36pt#;
+comma_depth#:=38/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=26/36pt#;
+tiny#:=26/36pt#;
+fine#:=9/36pt#;
+thin_join#:=9/36pt#;
+hair#:=49/36pt#;
+stem#:=49/36pt#;
+curve#:=49/36pt#;
+ess#:=43/36pt#;
+flare#:=40/36pt#;
+dot_size#:=47/36pt#;
+cap_hair#:=49/36pt#;
+cap_stem#:=53/36pt#;
+cap_curve#:=53/36pt#;
+cap_ess#:=51/36pt#;
+rule_thickness#:=30/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=1.5/36pt#;
+vair#:=26/36pt#;
+notch_cut#:=49/36pt#;
+bar#:=26/36pt#;
+slab#:=36/36pt#;
+cap_bar#:=34/36pt#;
+cap_band#:=31/36pt#;
+cap_notch_cut#:=45/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=2/36pt#;
+apex_corr#:=18/36pt#;
+o#:=8/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.88;
+math_spread:=.5;
+superness:=3/4;
+superpull:=1/18;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=17.21/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxsi10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxsi10.mf
new file mode 100644
index 00000000000..c9b1490bf0f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxsi10.mf
@@ -0,0 +1,92 @@
+% tipxsi10.mf: TIPX Sans Serif Slanted 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSI"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-7/36pt#;
+cap_serif_fit#:=-10/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=250/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=79/36pt#;
+comma_depth#:=45/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=17/36pt#;
+hair#:=28/36pt#;
+stem#:=28/36pt#;
+curve#:=28/36pt#;
+ess#:=28/36pt#;
+flare#:=25/36pt#;
+dot_size#:=30/36pt#;
+cap_hair#:=28/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=32/36pt#;
+cap_ess#:=32/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=18/36pt#;
+bar#:=21/36pt#;
+slab#:=23/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=20/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=5/36pt#;
+o#:=8/36pt#;
+apex_o#:=0pt#;
+slant:=sind 12/cosd 12;
+fudge:=.96;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxsl10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxsl10.mf
new file mode 100644
index 00000000000..b701afc711f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxsl10.mf
@@ -0,0 +1,92 @@
+% tipxsl10.mf: TIPX Slanted Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSL"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=246/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=87/36pt#;
+comma_depth#:=70/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=25/36pt#;
+curve#:=30/36pt#;
+ess#:=27/36pt#;
+flare#:=33/36pt#;
+dot_size#:=38/36pt#;
+cap_hair#:=11/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=37/36pt#;
+cap_ess#:=35/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=1/36pt#;
+bracket#:=20/36pt#;
+jut#:=28/36pt#;
+cap_jut#:=37/36pt#;
+beak_jut#:=10/36pt#;
+beak#:=70/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=10pt#;
+bar#:=11/36pt#;
+slab#:=11/36pt#;
+cap_bar#:=11/36pt#;
+cap_band#:=11/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=4/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=8/36pt#;
+apex_o#:=8/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxsl12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxsl12.mf
new file mode 100644
index 00000000000..6eb11e12692
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxsl12.mf
@@ -0,0 +1,92 @@
+% tipxsl12.mf: TIPX Slanted Roman 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSL"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5.8/36pt#;
+letter_fit#:=0pt#;
+body_height#:=324/36pt#;
+asc_height#:=300/36pt#;
+cap_height#:=295.2/36pt#;
+fig_height#:=278.4/36pt#;
+x_height#:=186/36pt#;
+math_axis#:=108/36pt#;
+bar_height#:=104.4/36pt#;
+comma_depth#:=84/36pt#;
+desc_depth#:=84/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7.5/36pt#;
+hair#:=9.5/36pt#;
+stem#:=28/36pt#;
+curve#:=33/36pt#;
+ess#:=30/36pt#;
+flare#:=36/36pt#;
+dot_size#:=42/36pt#;
+cap_hair#:=11.5/36pt#;
+cap_stem#:=35/36pt#;
+cap_curve#:=40/36pt#;
+cap_ess#:=38/36pt#;
+rule_thickness#:=.44pt#;
+dish#:=1/36pt#;
+bracket#:=24/36pt#;
+jut#:=33/36pt#;
+cap_jut#:=41/36pt#;
+beak_jut#:=11.4/36pt#;
+beak#:=84/36pt#;
+vair#:=8.5/36pt#;
+notch_cut#:=12pt#;
+bar#:=12.5/36pt#;
+slab#:=12.5/36pt#;
+cap_bar#:=12.5/36pt#;
+cap_band#:=12.5/36pt#;
+cap_notch_cut#:=12pt#;
+serif_drop#:=4.8/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=9/36pt#;
+apex_o#:=9/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=-0.2;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=16.45/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxsl8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxsl8.mf
new file mode 100644
index 00000000000..49702308056
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxsl8.mf
@@ -0,0 +1,92 @@
+% tipxsl8.mf: TIPX Slanted Roman 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSL"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=17/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=4.1/36pt#;
+letter_fit#:=0pt#;
+body_height#:=216/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=196.8/36pt#;
+fig_height#:=185.6/36pt#;
+x_height#:=124/36pt#;
+math_axis#:=72/36pt#;
+bar_height#:=69.6/36pt#;
+comma_depth#:=56/36pt#;
+desc_depth#:=56/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=22/36pt#;
+curve#:=25.5/36pt#;
+ess#:=23/36pt#;
+flare#:=27/36pt#;
+dot_size#:=32/36pt#;
+cap_hair#:=9.5/36pt#;
+cap_stem#:=26.5/36pt#;
+cap_curve#:=30/36pt#;
+cap_ess#:=27/36pt#;
+rule_thickness#:=.36pt#;
+dish#:=1/36pt#;
+bracket#:=16/36pt#;
+jut#:=22/36pt#;
+cap_jut#:=29/36pt#;
+beak_jut#:=8.4/36pt#;
+beak#:=56/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=8pt#;
+bar#:=9.5/36pt#;
+slab#:=9.5/36pt#;
+cap_bar#:=9.5/36pt#;
+cap_band#:=9.5/36pt#;
+cap_notch_cut#:=8pt#;
+serif_drop#:=3.2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=6/36pt#;
+apex_o#:=6/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=.4;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxsl9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxsl9.mf
new file mode 100644
index 00000000000..5946487ff7b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxsl9.mf
@@ -0,0 +1,92 @@
+% tipxsl9.mf: TIPX Slanted Roman 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSL"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=18.5/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=4.6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=243/36pt#;
+asc_height#:=225/36pt#;
+cap_height#:=221.4/36pt#;
+fig_height#:=208.8/36pt#;
+x_height#:=139.5/36pt#;
+math_axis#:=81/36pt#;
+bar_height#:=78.3/36pt#;
+comma_depth#:=63/36pt#;
+desc_depth#:=63/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=7/36pt#;
+hair#:=9/36pt#;
+stem#:=24/36pt#;
+curve#:=28/36pt#;
+ess#:=25/36pt#;
+flare#:=30/36pt#;
+dot_size#:=35/36pt#;
+cap_hair#:=10/36pt#;
+cap_stem#:=29/36pt#;
+cap_curve#:=33/36pt#;
+cap_ess#:=31/36pt#;
+rule_thickness#:=.38pt#;
+dish#:=1/36pt#;
+bracket#:=18/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=33/36pt#;
+beak_jut#:=9.2/36pt#;
+beak#:=63/36pt#;
+vair#:=8/36pt#;
+notch_cut#:=9pt#;
+bar#:=10/36pt#;
+slab#:=10/36pt#;
+cap_bar#:=10/36pt#;
+cap_band#:=10/36pt#;
+cap_notch_cut#:=9pt#;
+serif_drop#:=3.6/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=7/36pt#;
+apex_o#:=7/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=.2;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12.95/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxss10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxss10.mf
new file mode 100644
index 00000000000..705b3e965ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxss10.mf
@@ -0,0 +1,92 @@
+% tipxss10.mf: TIPX Sans Serif 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSS"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-7/36pt#;
+cap_serif_fit#:=-10/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=250/36pt#;
+cap_height#:=250/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=160/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=79/36pt#;
+comma_depth#:=45/36pt#;
+desc_depth#:=70/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=17/36pt#;
+hair#:=28/36pt#;
+stem#:=28/36pt#;
+curve#:=28/36pt#;
+ess#:=28/36pt#;
+flare#:=25/36pt#;
+dot_size#:=30/36pt#;
+cap_hair#:=28/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=32/36pt#;
+cap_ess#:=32/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=18/36pt#;
+bar#:=21/36pt#;
+slab#:=23/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=20/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=5/36pt#;
+o#:=8/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.96;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxss12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxss12.mf
new file mode 100644
index 00000000000..d4626c72f99
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxss12.mf
@@ -0,0 +1,92 @@
+% tipxss12.mf: TIPX Sans Serif 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSS"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=23.5/36pt#;
+width_adj#:=17/36pt#;
+serif_fit#:=-9/36pt#;
+cap_serif_fit#:=-13/36pt#;
+letter_fit#:=0pt#;
+body_height#:=324/36pt#;
+asc_height#:=300/36pt#;
+cap_height#:=300/36pt#;
+fig_height#:=283/36pt#;
+x_height#:=192/36pt#;
+math_axis#:=108/36pt#;
+bar_height#:=97/36pt#;
+comma_depth#:=54/36pt#;
+desc_depth#:=84/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=20/36pt#;
+hair#:=33/36pt#;
+stem#:=33/36pt#;
+curve#:=33/36pt#;
+ess#:=33/36pt#;
+flare#:=30/36pt#;
+dot_size#:=35/36pt#;
+cap_hair#:=33/36pt#;
+cap_stem#:=37/36pt#;
+cap_curve#:=37/36pt#;
+cap_ess#:=37/36pt#;
+rule_thickness#:=.44pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.6/36pt#;
+vair#:=26/36pt#;
+notch_cut#:=22/36pt#;
+bar#:=25/36pt#;
+slab#:=27/36pt#;
+cap_bar#:=26/36pt#;
+cap_band#:=24/36pt#;
+cap_notch_cut#:=31/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=6/36pt#;
+o#:=9/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.98;
+math_spread:=-0.2;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=16.45/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxss17.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxss17.mf
new file mode 100644
index 00000000000..0810d664369
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxss17.mf
@@ -0,0 +1,92 @@
+% tipxss17.mf: TIPX Sans Serif 17.28 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSS"; font_size 17.28pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=32.5/36pt#;
+width_adj#:=24/36pt#;
+serif_fit#:=-12/36pt#;
+cap_serif_fit#:=-17/36pt#;
+letter_fit#:=0pt#;
+body_height#:=466/36pt#;
+asc_height#:=432/36pt#;
+cap_height#:=432/36pt#;
+fig_height#:=408/36pt#;
+x_height#:=267.8/36pt#;
+math_axis#:=155.5/36pt#;
+bar_height#:=136/36pt#;
+comma_depth#:=78/36pt#;
+desc_depth#:=121/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=28/36pt#;
+hair#:=47/36pt#;
+stem#:=47/36pt#;
+curve#:=47/36pt#;
+ess#:=47/36pt#;
+flare#:=42/36pt#;
+dot_size#:=50/36pt#;
+cap_hair#:=47/36pt#;
+cap_stem#:=52/36pt#;
+cap_curve#:=52/36pt#;
+cap_ess#:=52/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.8/36pt#;
+vair#:=38/36pt#;
+notch_cut#:=32/36pt#;
+bar#:=36/36pt#;
+slab#:=40/36pt#;
+cap_bar#:=38/36pt#;
+cap_band#:=35/36pt#;
+cap_notch_cut#:=46/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=7/36pt#;
+o#:=10/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=1;
+math_spread:=-0.4;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=22.75/36pt#;
+sc.letter_fit#:=2.2/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxss8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxss8.mf
new file mode 100644
index 00000000000..289f97ce6ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxss8.mf
@@ -0,0 +1,92 @@
+% tipxss8.mf: TIPX Sans Serif 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSS"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=17/36pt#;
+width_adj#:=12/36pt#;
+serif_fit#:=-6/36pt#;
+cap_serif_fit#:=-8.5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=216/36pt#;
+asc_height#:=200/36pt#;
+cap_height#:=200/36pt#;
+fig_height#:=189/36pt#;
+x_height#:=128/36pt#;
+math_axis#:=72/36pt#;
+bar_height#:=63/36pt#;
+comma_depth#:=37/36pt#;
+desc_depth#:=56/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=15/36pt#;
+hair#:=25/36pt#;
+stem#:=25/36pt#;
+curve#:=25/36pt#;
+ess#:=25/36pt#;
+flare#:=22/36pt#;
+dot_size#:=26/36pt#;
+cap_hair#:=25/36pt#;
+cap_stem#:=29/36pt#;
+cap_curve#:=29/36pt#;
+cap_ess#:=28/36pt#;
+rule_thickness#:=.36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.4/36pt#;
+vair#:=19/36pt#;
+notch_cut#:=16/36pt#;
+bar#:=18/36pt#;
+slab#:=20/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=22/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=4/36pt#;
+o#:=6/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.93;
+math_spread:=.4;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxss9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxss9.mf
new file mode 100644
index 00000000000..6af7f0dcda9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxss9.mf
@@ -0,0 +1,92 @@
+% tipxss9.mf: TIPX Sans Serif 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXSS"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=18.5/36pt#;
+width_adj#:=13/36pt#;
+serif_fit#:=-6.5/36pt#;
+cap_serif_fit#:=-9/36pt#;
+letter_fit#:=0pt#;
+body_height#:=243/36pt#;
+asc_height#:=225/36pt#;
+cap_height#:=225/36pt#;
+fig_height#:=212/36pt#;
+x_height#:=144/36pt#;
+math_axis#:=81/36pt#;
+bar_height#:=71/36pt#;
+comma_depth#:=41/36pt#;
+desc_depth#:=63/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=16/36pt#;
+hair#:=27/36pt#;
+stem#:=27/36pt#;
+curve#:=27/36pt#;
+ess#:=27/36pt#;
+flare#:=24/36pt#;
+dot_size#:=28/36pt#;
+cap_hair#:=27/36pt#;
+cap_stem#:=31/36pt#;
+cap_curve#:=31/36pt#;
+cap_ess#:=31/36pt#;
+rule_thickness#:=.38pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=21/36pt#;
+notch_cut#:=17/36pt#;
+bar#:=20/36pt#;
+slab#:=22/36pt#;
+cap_bar#:=21/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=24/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=4.5/36pt#;
+o#:=7/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.95;
+math_spread:=.2;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=12.95/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxts10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxts10.mf
new file mode 100644
index 00000000000..987d819aca1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxts10.mf
@@ -0,0 +1,92 @@
+% tipxts10.mf: TIPX Typewriter Text Slanted 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXTS"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=21/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=250/36pt#;
+asc_height#:=220/36pt#;
+cap_height#:=220/36pt#;
+fig_height#:=220/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=110/36pt#;
+bar_height#:=79/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=80/36pt#;
+crisp#:=22/36pt#;
+tiny#:=22/36pt#;
+fine#:=21/36pt#;
+thin_join#:=21/36pt#;
+hair#:=25/36pt#;
+stem#:=25/36pt#;
+curve#:=25/36pt#;
+ess#:=22/36pt#;
+flare#:=32/36pt#;
+dot_size#:=36/36pt#;
+cap_hair#:=25/36pt#;
+cap_stem#:=25/36pt#;
+cap_curve#:=25/36pt#;
+cap_ess#:=25/36pt#;
+rule_thickness#:=25/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=34/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=0pt#;
+beak#:=34/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=25/36pt#;
+bar#:=22/36pt#;
+slab#:=22/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=22/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=10/36pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=1/6;
+fudge:=0.81;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=21/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxtt10.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxtt10.mf
new file mode 100644
index 00000000000..6a2751b9fca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxtt10.mf
@@ -0,0 +1,92 @@
+% tipxtt10.mf: TIPX Typewriter Text 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXTT"; font_size 10pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=21/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=250/36pt#;
+asc_height#:=220/36pt#;
+cap_height#:=220/36pt#;
+fig_height#:=220/36pt#;
+x_height#:=155/36pt#;
+math_axis#:=110/36pt#;
+bar_height#:=79/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=80/36pt#;
+crisp#:=22/36pt#;
+tiny#:=22/36pt#;
+fine#:=21/36pt#;
+thin_join#:=21/36pt#;
+hair#:=25/36pt#;
+stem#:=25/36pt#;
+curve#:=25/36pt#;
+ess#:=22/36pt#;
+flare#:=32/36pt#;
+dot_size#:=36/36pt#;
+cap_hair#:=25/36pt#;
+cap_stem#:=25/36pt#;
+cap_curve#:=25/36pt#;
+cap_ess#:=25/36pt#;
+rule_thickness#:=25/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=34/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=0pt#;
+beak#:=34/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=25/36pt#;
+bar#:=22/36pt#;
+slab#:=22/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=22/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=10/36pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=0.81;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=21/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxtt12.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxtt12.mf
new file mode 100644
index 00000000000..edc13aaf97e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxtt12.mf
@@ -0,0 +1,92 @@
+% tipxtt12.mf: TIPX Typewriter Text 12 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXTT"; font_size 12pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=24.7/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=300/36pt#;
+asc_height#:=264/36pt#;
+cap_height#:=264/36pt#;
+fig_height#:=264/36pt#;
+x_height#:=186/36pt#;
+math_axis#:=132/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=60/36pt#;
+desc_depth#:=96/36pt#;
+crisp#:=25/36pt#;
+tiny#:=25/36pt#;
+fine#:=22/36pt#;
+thin_join#:=22/36pt#;
+hair#:=28/36pt#;
+stem#:=28/36pt#;
+curve#:=28/36pt#;
+ess#:=25/36pt#;
+flare#:=35/36pt#;
+dot_size#:=39/36pt#;
+cap_hair#:=28/36pt#;
+cap_stem#:=28/36pt#;
+cap_curve#:=28/36pt#;
+cap_ess#:=28/36pt#;
+rule_thickness#:=28/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=39/36pt#;
+cap_jut#:=39/36pt#;
+beak_jut#:=0pt#;
+beak#:=39/36pt#;
+vair#:=25/36pt#;
+notch_cut#:=28/36pt#;
+bar#:=25/36pt#;
+slab#:=25/36pt#;
+cap_bar#:=25/36pt#;
+cap_band#:=25/36pt#;
+cap_notch_cut#:=28/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=11/36pt#;
+o#:=5/36pt#;
+apex_o#:=4/36pt#;
+slant:=0;
+fudge:=0.86;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=24.7/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxtt8.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxtt8.mf
new file mode 100644
index 00000000000..fe66e1b3b1d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxtt8.mf
@@ -0,0 +1,92 @@
+% tipxtt8.mf: TIPX Typewriter Text 8 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXTT"; font_size 8pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=17/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=200/36pt#;
+asc_height#:=176/36pt#;
+cap_height#:=176/36pt#;
+fig_height#:=176/36pt#;
+x_height#:=124/36pt#;
+math_axis#:=88/36pt#;
+bar_height#:=63/36pt#;
+comma_depth#:=40/36pt#;
+desc_depth#:=64/36pt#;
+crisp#:=19/36pt#;
+tiny#:=19/36pt#;
+fine#:=18/36pt#;
+thin_join#:=18/36pt#;
+hair#:=22/36pt#;
+stem#:=22/36pt#;
+curve#:=22/36pt#;
+ess#:=19/36pt#;
+flare#:=28/36pt#;
+dot_size#:=31/36pt#;
+cap_hair#:=22/36pt#;
+cap_stem#:=22/36pt#;
+cap_curve#:=22/36pt#;
+cap_ess#:=22/36pt#;
+rule_thickness#:=22/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=27/36pt#;
+cap_jut#:=27/36pt#;
+beak_jut#:=0pt#;
+beak#:=27/36pt#;
+vair#:=19/36pt#;
+notch_cut#:=22/36pt#;
+bar#:=19/36pt#;
+slab#:=19/36pt#;
+cap_bar#:=19/36pt#;
+cap_band#:=19/36pt#;
+cap_notch_cut#:=22/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=8/36pt#;
+o#:=3/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=0.81;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=17/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/tipxtt9.mf b/Master/texmf-dist/fonts/source/public/tipa/tipxtt9.mf
new file mode 100644
index 00000000000..c1e7f9e5cbe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/tipxtt9.mf
@@ -0,0 +1,92 @@
+% tipxtt9.mf: TIPX Typewriter Text 9 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="TIPXTT"; font_size 9pt#;
+
+Times_Compat:=false;
+if Times_Compat: input tipatr fi
+
+u#:=18.9/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=0pt#;
+letter_fit#:=0pt#;
+body_height#:=225/36pt#;
+asc_height#:=198/36pt#;
+cap_height#:=198/36pt#;
+fig_height#:=198/36pt#;
+x_height#:=139.5/36pt#;
+math_axis#:=99/36pt#;
+bar_height#:=71/36pt#;
+comma_depth#:=45/36pt#;
+desc_depth#:=72/36pt#;
+crisp#:=21/36pt#;
+tiny#:=21/36pt#;
+fine#:=20/36pt#;
+thin_join#:=20/36pt#;
+hair#:=24/36pt#;
+stem#:=24/36pt#;
+curve#:=24/36pt#;
+ess#:=21/36pt#;
+flare#:=30/36pt#;
+dot_size#:=33/36pt#;
+cap_hair#:=24/36pt#;
+cap_stem#:=24/36pt#;
+cap_curve#:=24/36pt#;
+cap_ess#:=24/36pt#;
+rule_thickness#:=24/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=31/36pt#;
+cap_jut#:=31/36pt#;
+beak_jut#:=0pt#;
+beak#:=31/36pt#;
+vair#:=21/36pt#;
+notch_cut#:=24/36pt#;
+bar#:=21/36pt#;
+slab#:=21/36pt#;
+cap_bar#:=21/36pt#;
+cap_band#:=21/36pt#;
+cap_notch_cut#:=24/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=0pt#;
+vair_corr#:=0pt#;
+apex_corr#:=9/36pt#;
+o#:=3.5/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=0.81;
+math_spread:=-1;
+superness:=1/sqrt2;
+superpull:=0;
+beak_darkness:=0;
+ligs:=0;
+square_dots:=false;
+hefty:=true;
+serifs:=true;
+monospace:=true;
+low_asterisk:=true;
+math_fitting:=false;
+sc.u#:=18.9/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipa10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipa10.mf
new file mode 100644
index 00000000000..04a7f18f71e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipa10.mf
@@ -0,0 +1,92 @@
+% xipa10.mf: XIPA Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPA"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=18/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=245.5/36pt#;
+cap_height#:=240.5/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=162/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=106/36pt#;
+comma_depth#:=50.7/36pt#;
+desc_depth#:=77.9/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=8/36pt#;
+hair#:=9/36pt#;
+stem#:=30/36pt#;
+curve#:=34/36pt#;
+ess#:=30/36pt#;
+flare#:=27/36pt#;
+dot_size#:=32/36pt#;
+cap_hair#:=11/36pt#;
+cap_stem#:=36/36pt#;
+cap_curve#:=42/36pt#;
+cap_ess#:=39/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=22/36pt#;
+jut#:=26/36pt#;
+cap_jut#:=37/36pt#;
+beak_jut#:=10/36pt#;
+beak#:=70/36pt#;
+vair#:=9/36pt#;
+notch_cut#:=10pt#;
+bar#:=11/36pt#;
+slab#:=1.5/36pt#;
+cap_bar#:=11/36pt#;
+cap_band#:=11/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=15/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=6/36pt#;
+apex_o#:=6/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipab10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipab10.mf
new file mode 100644
index 00000000000..4986336e631
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipab10.mf
@@ -0,0 +1,92 @@
+% xipab10.mf: XIPA Bold Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPAB"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=10/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=245.5/36pt#;
+cap_height#:=242.1/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=165.96/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=97.73/36pt#;
+comma_depth#:=51/36pt#;
+desc_depth#:=73.26/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=47/36pt#;
+curve#:=52/36pt#;
+ess#:=49/36pt#;
+flare#:=39/36pt#;
+dot_size#:=52/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=57/36pt#;
+cap_curve#:=61/36pt#;
+cap_ess#:=58/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=0pt#;
+bracket#:=22/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=2.2/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=0pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.56/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipabs10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipabs10.mf
new file mode 100644
index 00000000000..5d027973b27
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipabs10.mf
@@ -0,0 +1,92 @@
+% xipabs10.mf: XIPA Bold Slanted Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPABS"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=10/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=245.5/36pt#;
+cap_height#:=242.1/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=165.96/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=97.73/36pt#;
+comma_depth#:=51/36pt#;
+desc_depth#:=73.26/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=47/36pt#;
+curve#:=52/36pt#;
+ess#:=49/36pt#;
+flare#:=39/36pt#;
+dot_size#:=52/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=57/36pt#;
+cap_curve#:=61/36pt#;
+cap_ess#:=58/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=0pt#;
+bracket#:=22/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=2.2/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=0pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.56/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipaprm.def b/Master/texmf-dist/fonts/source/public/tipa/xipaprm.def
new file mode 100644
index 00000000000..1372f49a1a7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipaprm.def
@@ -0,0 +1,80 @@
+# xipaprm.def --- parameters for XIPA font families.
+#
+# 1996/06/24 first version
+# 2001/12/29 Values modified esp. for xipa10.
+# bs10 (Bold Slanted), sb10 (Sans Serif Bold),
+# si10 (Sans Serif Slanted) added.
+# 2003/01/01 values of stem and jut modified.
+#
+# The basic idea of this file is borrowed from dc fonts. But this file
+# is processed by awk, not by a Metafont macro.
+#
+# NB: The parameter `variant_g' is omitted, and sc.u, sc.letter_fit added.
+# For TT family of fonts, sc.u# shuold be equal to u# !!!
+# p: x/36pt#, P: xpt#, n: x, SC12: sind 12 / cosd 12, SQ2: sqrt 2
+#
+# 10 sl10 b10 bs10 ss10 si10 sb10
+#
+p u 18 18 20 20 20 20 22
+p width_adj 0 0 10 10 15 15 15
+p serif_fit 0 0 0 0 -7 -7 -9
+p cap_serif_fit 5 5 6 6 -10 -10 -11
+p letter_fit 0 0 0 0 0 0 0
+p body_height 270 270 270 270 270 270 270
+p asc_height 245.5 245.5 245.5 245.5 260 260 260
+p cap_height 240.5 240.5 242.1 242.1 260 260 260
+p fig_height 232 232 232 232 236 236 236
+p x_height 162 162 165.96 165.96 188.28 188.28 191.52
+p math_axis 90 90 90 90 90 90 90
+p bar_height 106 106 97.73 97.73 95 95 95
+p comma_depth 50.7 50.7 51 51 50 50 50
+p desc_depth 77.9 77.9 73.26 73.26 75.8 75.8 75.8
+p crisp 0 0 0 0 0 0 0
+p tiny 8 8 13 13 0 0 0
+p fine 7 7 10 10 0 0 0
+p thin_join 8 8 10 10 17 17 20
+p hair 9 9 17 17 30 30 49
+p stem 30 30 47 47 30 30 49
+p curve 34 34 52 52 30 30 49
+p ess 30 30 49 49 30 30 43
+p flare 27 27 39 39 27 27 40
+p dot_size 32 32 52 52 30 30 47
+p cap_hair 11 11 19 19 30 30 49
+p cap_stem 36 36 57 57 32 32 53
+p cap_curve 42 42 61 61 32 32 53
+p cap_ess 39 39 58 58 32 32 51
+P rule_thickness .4 .4 .6 .6 .4 .4 30/36
+p dish 0 0 0 0 0 0 0
+p bracket 22 22 22 22 0 0 0
+p jut 26 26 25 25 0 0 0
+p cap_jut 37 37 34 34 0 0 0
+p beak_jut 10 10 11 11 0 0 0
+p beak 70 70 70 70 .5 .5 1.5
+p vair 9 9 13 13 22 22 26
+P notch_cut 10 10 10 10 18/36 18/36 49/36
+p bar 11 11 17 17 21 21 26
+p slab 1.5 1.5 2.2 2.2 21 21 36
+p cap_bar 11 11 17 17 22 22 34
+p cap_band 11 11 17 17 20 20 31
+P cap_notch_cut 10 10 10 10 25/36 25/36 45/36
+p serif_drop 15 15 0 0 2 2 0
+p stem_corr 1 1 2 2 1 1 1
+p vair_corr 1 1 1.5 1.5 1 1 2
+p apex_corr 0 0 0 0 5 5 18
+p o 6 6 4 4 6 6 8
+p apex_o 6 6 3 3 0 0 0
+n slant 0 1/6 0 1/6 0 1/6 0
+n fudge 1 1 1 1 .96 .96 .88
+n math_spread 0 0 .5 .5 0 0 .5
+n superness 1/SQ2 1/SQ2 8/11 8/11 1/SQ2 1/SQ2 .75
+n superpull 1/6 1/6 1/8 1/8 1/20 1/20 1/18
+n beak_darkness 11/30 11/30 .4 .4 0 0 0
+n ligs 2 2 2 2 2 2 2
+n square_dots false false false false true true true
+n hefty false false false false true true true
+n serifs true true true true false false false
+n monospace false false false false false false false
+n low_asterisk false false false false false false false
+n math_fitting false false false false false false false
+p sc.u 14 14 15.56 15.56 15.56 15.56 17.11
+p sc.letter_fit 2.4 2.4 2.4 2.4 2.4 2.4 2.4
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipasb10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipasb10.mf
new file mode 100644
index 00000000000..3f2e5c81fca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipasb10.mf
@@ -0,0 +1,92 @@
+% xipasb10.mf: XIPA Sans Serif Bold 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPASB"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=22/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-9/36pt#;
+cap_serif_fit#:=-11/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=260/36pt#;
+cap_height#:=260/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=191.52/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=75.8/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=20/36pt#;
+hair#:=49/36pt#;
+stem#:=49/36pt#;
+curve#:=49/36pt#;
+ess#:=43/36pt#;
+flare#:=40/36pt#;
+dot_size#:=47/36pt#;
+cap_hair#:=49/36pt#;
+cap_stem#:=53/36pt#;
+cap_curve#:=53/36pt#;
+cap_ess#:=51/36pt#;
+rule_thickness#:=30/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=1.5/36pt#;
+vair#:=26/36pt#;
+notch_cut#:=49/36pt#;
+bar#:=26/36pt#;
+slab#:=36/36pt#;
+cap_bar#:=34/36pt#;
+cap_band#:=31/36pt#;
+cap_notch_cut#:=45/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=2/36pt#;
+apex_corr#:=18/36pt#;
+o#:=8/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.88;
+math_spread:=.5;
+superness:=.75;
+superpull:=1/18;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=17.11/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipasi10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipasi10.mf
new file mode 100644
index 00000000000..842d0f1aa35
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipasi10.mf
@@ -0,0 +1,92 @@
+% xipasi10.mf: XIPA Sans Serif Slanted 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPASI"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-7/36pt#;
+cap_serif_fit#:=-10/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=260/36pt#;
+cap_height#:=260/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=188.28/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=75.8/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=17/36pt#;
+hair#:=30/36pt#;
+stem#:=30/36pt#;
+curve#:=30/36pt#;
+ess#:=30/36pt#;
+flare#:=27/36pt#;
+dot_size#:=30/36pt#;
+cap_hair#:=30/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=32/36pt#;
+cap_ess#:=32/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=18/36pt#;
+bar#:=21/36pt#;
+slab#:=21/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=20/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=5/36pt#;
+o#:=6/36pt#;
+apex_o#:=0pt#;
+slant:=1/6;
+fudge:=.96;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.56/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipasl10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipasl10.mf
new file mode 100644
index 00000000000..43146921eb1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipasl10.mf
@@ -0,0 +1,92 @@
+% xipasl10.mf: XIPA Slanted Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPASL"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=18/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=245.5/36pt#;
+cap_height#:=240.5/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=162/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=106/36pt#;
+comma_depth#:=50.7/36pt#;
+desc_depth#:=77.9/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=8/36pt#;
+hair#:=9/36pt#;
+stem#:=30/36pt#;
+curve#:=34/36pt#;
+ess#:=30/36pt#;
+flare#:=27/36pt#;
+dot_size#:=32/36pt#;
+cap_hair#:=11/36pt#;
+cap_stem#:=36/36pt#;
+cap_curve#:=42/36pt#;
+cap_ess#:=39/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=22/36pt#;
+jut#:=26/36pt#;
+cap_jut#:=37/36pt#;
+beak_jut#:=10/36pt#;
+beak#:=70/36pt#;
+vair#:=9/36pt#;
+notch_cut#:=10pt#;
+bar#:=11/36pt#;
+slab#:=1.5/36pt#;
+cap_bar#:=11/36pt#;
+cap_band#:=11/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=15/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=6/36pt#;
+apex_o#:=6/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipass10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipass10.mf
new file mode 100644
index 00000000000..3fe6a9a16b0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipass10.mf
@@ -0,0 +1,92 @@
+% xipass10.mf: XIPA Sans Serif 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01 FUKUI Rei
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPASS"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-7/36pt#;
+cap_serif_fit#:=-10/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=260/36pt#;
+cap_height#:=260/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=188.28/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=75.8/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=17/36pt#;
+hair#:=30/36pt#;
+stem#:=30/36pt#;
+curve#:=30/36pt#;
+ess#:=30/36pt#;
+flare#:=27/36pt#;
+dot_size#:=30/36pt#;
+cap_hair#:=30/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=32/36pt#;
+cap_ess#:=32/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=18/36pt#;
+bar#:=21/36pt#;
+slab#:=21/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=20/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=5/36pt#;
+o#:=6/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.96;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.56/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipa % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipx10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipx10.mf
new file mode 100644
index 00000000000..b4ec2e938fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipx10.mf
@@ -0,0 +1,92 @@
+% xipx10.mf: XIPX Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPX"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=18/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=245.5/36pt#;
+cap_height#:=240.5/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=162/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=106/36pt#;
+comma_depth#:=50.7/36pt#;
+desc_depth#:=77.9/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=8/36pt#;
+hair#:=9/36pt#;
+stem#:=30/36pt#;
+curve#:=34/36pt#;
+ess#:=30/36pt#;
+flare#:=27/36pt#;
+dot_size#:=32/36pt#;
+cap_hair#:=11/36pt#;
+cap_stem#:=36/36pt#;
+cap_curve#:=42/36pt#;
+cap_ess#:=39/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=22/36pt#;
+jut#:=26/36pt#;
+cap_jut#:=37/36pt#;
+beak_jut#:=10/36pt#;
+beak#:=70/36pt#;
+vair#:=9/36pt#;
+notch_cut#:=10pt#;
+bar#:=11/36pt#;
+slab#:=1.5/36pt#;
+cap_bar#:=11/36pt#;
+cap_band#:=11/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=15/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=6/36pt#;
+apex_o#:=6/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipxb10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipxb10.mf
new file mode 100644
index 00000000000..5248e83041b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipxb10.mf
@@ -0,0 +1,92 @@
+% xipxb10.mf: XIPX Bold Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPXB"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=10/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=245.5/36pt#;
+cap_height#:=242.1/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=165.96/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=97.73/36pt#;
+comma_depth#:=51/36pt#;
+desc_depth#:=73.26/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=47/36pt#;
+curve#:=52/36pt#;
+ess#:=49/36pt#;
+flare#:=39/36pt#;
+dot_size#:=52/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=57/36pt#;
+cap_curve#:=61/36pt#;
+cap_ess#:=58/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=0pt#;
+bracket#:=22/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=2.2/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=0pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=0;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.56/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipxbs10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipxbs10.mf
new file mode 100644
index 00000000000..6bd05d99858
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipxbs10.mf
@@ -0,0 +1,92 @@
+% xipxbs10.mf: XIPX Bold Slanted Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPXBS"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=10/36pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=6/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=245.5/36pt#;
+cap_height#:=242.1/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=165.96/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=97.73/36pt#;
+comma_depth#:=51/36pt#;
+desc_depth#:=73.26/36pt#;
+crisp#:=0pt#;
+tiny#:=13/36pt#;
+fine#:=10/36pt#;
+thin_join#:=10/36pt#;
+hair#:=17/36pt#;
+stem#:=47/36pt#;
+curve#:=52/36pt#;
+ess#:=49/36pt#;
+flare#:=39/36pt#;
+dot_size#:=52/36pt#;
+cap_hair#:=19/36pt#;
+cap_stem#:=57/36pt#;
+cap_curve#:=61/36pt#;
+cap_ess#:=58/36pt#;
+rule_thickness#:=.6pt#;
+dish#:=0pt#;
+bracket#:=22/36pt#;
+jut#:=25/36pt#;
+cap_jut#:=34/36pt#;
+beak_jut#:=11/36pt#;
+beak#:=70/36pt#;
+vair#:=13/36pt#;
+notch_cut#:=10pt#;
+bar#:=17/36pt#;
+slab#:=2.2/36pt#;
+cap_bar#:=17/36pt#;
+cap_band#:=17/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=0pt#;
+stem_corr#:=2/36pt#;
+vair_corr#:=1.5/36pt#;
+apex_corr#:=0pt#;
+o#:=4/36pt#;
+apex_o#:=3/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=.5;
+superness:=8/11;
+superpull:=1/8;
+beak_darkness:=.4;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.56/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipxsb10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipxsb10.mf
new file mode 100644
index 00000000000..7da1b518c44
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipxsb10.mf
@@ -0,0 +1,92 @@
+% xipxsb10.mf: XIPX Sans Serif Bold 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPXSB"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=22/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-9/36pt#;
+cap_serif_fit#:=-11/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=260/36pt#;
+cap_height#:=260/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=191.52/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=75.8/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=20/36pt#;
+hair#:=49/36pt#;
+stem#:=49/36pt#;
+curve#:=49/36pt#;
+ess#:=43/36pt#;
+flare#:=40/36pt#;
+dot_size#:=47/36pt#;
+cap_hair#:=49/36pt#;
+cap_stem#:=53/36pt#;
+cap_curve#:=53/36pt#;
+cap_ess#:=51/36pt#;
+rule_thickness#:=30/36pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=1.5/36pt#;
+vair#:=26/36pt#;
+notch_cut#:=49/36pt#;
+bar#:=26/36pt#;
+slab#:=36/36pt#;
+cap_bar#:=34/36pt#;
+cap_band#:=31/36pt#;
+cap_notch_cut#:=45/36pt#;
+serif_drop#:=0pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=2/36pt#;
+apex_corr#:=18/36pt#;
+o#:=8/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.88;
+math_spread:=.5;
+superness:=.75;
+superpull:=1/18;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=17.11/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipxsi10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipxsi10.mf
new file mode 100644
index 00000000000..2d5b0a0e7eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipxsi10.mf
@@ -0,0 +1,92 @@
+% xipxsi10.mf: XIPX Sans Serif Slanted 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPXSI"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-7/36pt#;
+cap_serif_fit#:=-10/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=260/36pt#;
+cap_height#:=260/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=188.28/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=75.8/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=17/36pt#;
+hair#:=30/36pt#;
+stem#:=30/36pt#;
+curve#:=30/36pt#;
+ess#:=30/36pt#;
+flare#:=27/36pt#;
+dot_size#:=30/36pt#;
+cap_hair#:=30/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=32/36pt#;
+cap_ess#:=32/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=18/36pt#;
+bar#:=21/36pt#;
+slab#:=21/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=20/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=5/36pt#;
+o#:=6/36pt#;
+apex_o#:=0pt#;
+slant:=1/6;
+fudge:=.96;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.56/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipxsl10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipxsl10.mf
new file mode 100644
index 00000000000..c03f4a6ecc5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipxsl10.mf
@@ -0,0 +1,92 @@
+% xipxsl10.mf: XIPX Slanted Roman 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPXSL"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=18/36pt#;
+width_adj#:=0pt#;
+serif_fit#:=0pt#;
+cap_serif_fit#:=5/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=245.5/36pt#;
+cap_height#:=240.5/36pt#;
+fig_height#:=232/36pt#;
+x_height#:=162/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=106/36pt#;
+comma_depth#:=50.7/36pt#;
+desc_depth#:=77.9/36pt#;
+crisp#:=0pt#;
+tiny#:=8/36pt#;
+fine#:=7/36pt#;
+thin_join#:=8/36pt#;
+hair#:=9/36pt#;
+stem#:=30/36pt#;
+curve#:=34/36pt#;
+ess#:=30/36pt#;
+flare#:=27/36pt#;
+dot_size#:=32/36pt#;
+cap_hair#:=11/36pt#;
+cap_stem#:=36/36pt#;
+cap_curve#:=42/36pt#;
+cap_ess#:=39/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=22/36pt#;
+jut#:=26/36pt#;
+cap_jut#:=37/36pt#;
+beak_jut#:=10/36pt#;
+beak#:=70/36pt#;
+vair#:=9/36pt#;
+notch_cut#:=10pt#;
+bar#:=11/36pt#;
+slab#:=1.5/36pt#;
+cap_bar#:=11/36pt#;
+cap_band#:=11/36pt#;
+cap_notch_cut#:=10pt#;
+serif_drop#:=15/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=0pt#;
+o#:=6/36pt#;
+apex_o#:=6/36pt#;
+slant:=1/6;
+fudge:=1;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/6;
+beak_darkness:=11/30;
+ligs:=2;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=14/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/tipa/xipxss10.mf b/Master/texmf-dist/fonts/source/public/tipa/xipxss10.mf
new file mode 100644
index 00000000000..b92e259e26a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/tipa/xipxss10.mf
@@ -0,0 +1,92 @@
+% xipxss10.mf: XIPX Sans Serif 10 point parameter file
+% Copyright 1996-2003 FUKUI Rei
+%
+% This program may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.2
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.2 or later is part of all distributions of LaTeX
+% version 1999/12/01 or later.
+%
+% This program consists of all files listed in Manifest.txt.
+%
+% Version 1.2 2003/01/01
+%
+% This file is based on:
+% Computer Modern font series by D. E. Knuth and
+% TSIPA by KOBAYASHI Hajime, FUKUI Rei and SHIRAKAWA Shun.
+
+if unknown cmbase: input cmbase fi
+if unknown tipabase: input tipabase fi
+
+font_identifier:="XIPXSS"; font_size 10pt#;
+
+Times_Compat:=true;
+if Times_Compat: input tipatr fi
+
+u#:=20/36pt#;
+width_adj#:=15/36pt#;
+serif_fit#:=-7/36pt#;
+cap_serif_fit#:=-10/36pt#;
+letter_fit#:=0pt#;
+body_height#:=270/36pt#;
+asc_height#:=260/36pt#;
+cap_height#:=260/36pt#;
+fig_height#:=236/36pt#;
+x_height#:=188.28/36pt#;
+math_axis#:=90/36pt#;
+bar_height#:=95/36pt#;
+comma_depth#:=50/36pt#;
+desc_depth#:=75.8/36pt#;
+crisp#:=0pt#;
+tiny#:=0pt#;
+fine#:=0pt#;
+thin_join#:=17/36pt#;
+hair#:=30/36pt#;
+stem#:=30/36pt#;
+curve#:=30/36pt#;
+ess#:=30/36pt#;
+flare#:=27/36pt#;
+dot_size#:=30/36pt#;
+cap_hair#:=30/36pt#;
+cap_stem#:=32/36pt#;
+cap_curve#:=32/36pt#;
+cap_ess#:=32/36pt#;
+rule_thickness#:=.4pt#;
+dish#:=0pt#;
+bracket#:=0pt#;
+jut#:=0pt#;
+cap_jut#:=0pt#;
+beak_jut#:=0pt#;
+beak#:=.5/36pt#;
+vair#:=22/36pt#;
+notch_cut#:=18/36pt#;
+bar#:=21/36pt#;
+slab#:=21/36pt#;
+cap_bar#:=22/36pt#;
+cap_band#:=20/36pt#;
+cap_notch_cut#:=25/36pt#;
+serif_drop#:=2/36pt#;
+stem_corr#:=1/36pt#;
+vair_corr#:=1/36pt#;
+apex_corr#:=5/36pt#;
+o#:=6/36pt#;
+apex_o#:=0pt#;
+slant:=0;
+fudge:=.96;
+math_spread:=0;
+superness:=1/sqrt2;
+superpull:=1/20;
+beak_darkness:=0;
+ligs:=2;
+square_dots:=true;
+hefty:=true;
+serifs:=false;
+monospace:=false;
+low_asterisk:=false;
+math_fitting:=false;
+sc.u#:=15.56/36pt#;
+sc.letter_fit#:=2.4/36pt#;
+
+generate tipx % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/trsym/trsy.mf b/Master/texmf-dist/fonts/source/public/trsym/trsy.mf
new file mode 100644
index 00000000000..aea5f6ea0e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/trsym/trsy.mf
@@ -0,0 +1,90 @@
+%%
+%% This is file `trsy.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% trsym.dtx (with options: `metafont')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from trsy.mf.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file trsym.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+
+
+font_identifier:="TRANSFORMATION";
+
+qqs:=ceiling(qqs#*hppp);
+define_pixels(qqw,qqh);
+
+fontdimen 1: 0,0,0,0,0,0,0,qqs#;
+let cmchar=\;
+
+cmchar "horizontal transformation symbol";
+beginchar(0,1.5qqw#,.75qqh#,0);
+ pickup pencircle scaled qqs;
+ y1=y2=y3=y4=1/2h;
+ 20x1=5x2=4w;
+ 70x3=30x4=21w;
+ diam_sharp:=1/5w;
+ draw fullcircle scaled diam_sharp shifted z1;
+ draw z3--z4;
+ pickup pencircle scaled (diam_sharp+qqs);
+ drawdot z2;
+endchar;
+
+cmchar "horizontal inverse transformation symbol";
+beginchar(1,1.5qqw#,.75qqh#,0);
+ pickup pencircle scaled qqs;
+ y1=y2=y3=y4=1/2h;
+ 20x1=5x2=4w;
+ 70x3=30x4=21w;
+ diam_sharp:=1/5w;
+ draw fullcircle scaled diam_sharp shifted z2;
+ draw z3--z4;
+ pickup pencircle scaled (diam_sharp+qqs);
+ drawdot z1;
+endchar;
+
+cmchar "vertical transformation symbol";
+beginchar(2,.75qqw#,1.15qqh#,.35qqh#);
+ pickup pencircle scaled qqs;
+ x1=x2=x3=x4=1/2w;
+ 5(y1+d)=20(y2+d)=4(h+d);
+ 70(y3+d)=30(y4+d)=21(h+d);
+ diam_sharp:=1/5(h+d);
+ draw fullcircle scaled diam_sharp shifted z1;
+ draw z3--z4;
+ pickup pencircle scaled (diam_sharp+qqs);
+ drawdot z2;
+endchar;
+
+cmchar "vertical inverse transformation symbol";
+beginchar(3,.75qqw#,1.15qqh#,.35qqh#);
+ pickup pencircle scaled qqs;
+ x1=x2=x3=x4=1/2w;
+ 5(y1+d)=20(y2+d)=4(h+d);
+ 70(y3+d)=30(y4+d)=21(h+d);
+ diam_sharp:=1/5(h+d);
+ draw fullcircle scaled diam_sharp shifted z2;
+ draw z3--z4;
+ pickup pencircle scaled (diam_sharp+qqs);
+ drawdot z1;
+endchar;
+
+bye
+
+
+%%
+%%
+%% End of file `trsy.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/trsym/trsy10.mf b/Master/texmf-dist/fonts/source/public/trsym/trsy10.mf
new file mode 100644
index 00000000000..2e267ea4f40
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/trsym/trsy10.mf
@@ -0,0 +1,42 @@
+%%
+%% This is file `trsy10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% trsym.dtx (with options: `metafont10')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from trsy10.mf.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file trsym.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+
+
+
+inner bye;
+if not unknown cmbase:
+ errhelp "This font must be generated using the plain base.";
+ errmessage "You can't use cmbase for this font!";
+ expandafter bye
+fi
+font_size 10pt#;
+mode_setup;
+qqs# = .4pt#;
+qqh# = 10pt#;
+qqw# = 10pt#;
+input trsy;
+bye.
+
+%%
+%%
+%% End of file `trsy10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/trsym/trsy12.mf b/Master/texmf-dist/fonts/source/public/trsym/trsy12.mf
new file mode 100644
index 00000000000..6c2881d231e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/trsym/trsy12.mf
@@ -0,0 +1,42 @@
+%%
+%% This is file `trsy12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% trsym.dtx (with options: `metafont12')
+%%
+%% IMPORTANT NOTICE:
+%%
+%% For the copyright see the source file.
+%%
+%% Any modified versions of this file must be renamed
+%% with new filenames distinct from trsy12.mf.
+%%
+%% For distribution of the original source see the terms
+%% for copying and modification in the file trsym.dtx.
+%%
+%% This generated file may be distributed as long as the
+%% original source files, as listed above, are part of the
+%% same distribution. (The sources need not necessarily be
+%% in the same archive or directory.)
+
+
+
+
+inner bye;
+if not unknown cmbase:
+ errhelp "This font must be generated using the plain base.";
+ errmessage "You can't use cmbase for this font!";
+ expandafter bye
+fi
+font_size 12pt#;
+mode_setup;
+qqs# = .4pt#;
+qqh# = 12pt#;
+qqw# = 12pt#;
+input trsy;
+bye.
+%%
+%%
+%% End of file `trsy12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/ulsy/ulsy10.mf b/Master/texmf-dist/fonts/source/public/ulsy/ulsy10.mf
new file mode 100644
index 00000000000..47fc079c813
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/ulsy/ulsy10.mf
@@ -0,0 +1,289 @@
+% Computer Modern Math Symbols 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="ULSY"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=29/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=30/36pt#; % uppercase stem breadth
+cap_curve#:=35/36pt#; % uppercase curve breadth
+cap_ess#:=33/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=true; % should math-mode spacing be used?
+
+% the following font parameters are explained in {\sl The \TeX book}, Appendix G
+subs:=7/10; % subscripts to 10pt will normally be in 7pt type
+rth#:=.4pt#; % assume that rules will come from cmex10
+fontdimen 8: % parameters $\sigma_8$ through $\sigma_{22}$ will now be listed
+ math_axis#+3.51rth#+54/36pt#+subs*desc_depth#, % num1
+ math_axis#+1.51rth#+30/36pt#, % num2
+ math_axis#+1.51rth#+48/36pt#, % num3
+ -(math_axis#-3.51rth#-subs*fig_height#-124/36pt#), % denom1
+ -(math_axis#-1.51rth#-subs*fig_height#-30/36pt#), % denom2
+ 8.99pt#-subs*asc_height#, % sup1
+ 8.49pt#-subs*asc_height#, % sup2
+ 104/36pt#, % sup3
+ 54/36pt#, % sub1
+ -(8.49pt#-2subs*asc_height#-3.1rth#), % sub2
+ subs*asc_height#-36/36pt#, % sup\_drop
+ 18/36pt#, % sub\_drop
+ 23.9pt#, % delim1
+ 10.1pt#, % delim2
+ math_axis#; % axis\_height
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% generate ulsydv % switch to the driver file
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% The Computer Modern Symbols family (by D. E. Knuth, 1979--1985)
+
+font_coding_scheme:="TeX math symbols";
+mode_setup; font_setup;
+
+autorounding:=hair;
+% input calu; % upper case calligraphic alphabet
+autorounding:=0;
+
+font_slant slant; font_x_height x_height#;
+font_quad 18u# if not monospace:+4letter_fit# fi;
+% (The spacing is zero so that \TeX\ will always add the italic correction.)
+% (The calling file should give the other math symbol font parameters.)
+
+slant:=mono_charic#:=0; % the remaining characters will not be slanted
+currenttransform:=identity yscaled aspect_ratio scaled granularity;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% input ulsymbol; % the symbols
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This file defines the symbols of a \TeX\ math symbol font.
+% Character codes \0000--\0100 and \0133--\0177 are generated.
+% Changes til 20 February 1989 included
+
+% (Improvements to the author's original characters were worked out in 1982
+% by Ronald F. Whitney and other members of
+% the American Mathematical Society.)
+
+% Italic corrections have not been computed for most of these characters,
+% since they are generally not slanted.
+
+odplus=oct"010";
+blitza=oct"011";
+blitzb=oct"012";
+blitzc=oct"013";
+blitzd=oct"014";
+blitze=oct"015";
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% input ulsym; % symbols common to other fonts
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% This file generates the following characters when their codes are known:
+% Changes til 20 February 1989 included
+% odplus,blitza,...,blitze
+
+iff known odplus: cmchar "Circle-plus operator";
+beginarithchar(odplus); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+y9=math_axis;x9=x8;
+circle_points; draw_circle; % circle
+draw z2--z6; draw z9--z8; % bar and stem
+labels(1,2,3,4,5,6,7,8); endchar;
+
+iff known blitza: cmchar "WIDERSPRUCHSBLITZA";
+beginarithchar(blitza);
+f:=1.2;
+g:=1.2;
+x0=w/2;y0=1.5math_axis;
+x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
+x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
+x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
+x3=x2;y3=y0+f*0.75math_axis;
+x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
+z7=0.5[z5,z6];
+z8=(y6-y7,x7-x6)+z7;
+z9=(y7-y6,x6-x7)+z7;
+z10=2[z5,z6];
+z11=0.5[z8,z10];z12=0.4[z11,z6];
+z13=0.5[z9,z10];z14=0.4[z13,z6];
+penpos4(g*f*1pt,45);
+penpos3(g*f*0.75pt,45);
+penpos2(g*f*0.9pt,60);
+penpos0(g*f*0.9pt,60);
+penpos1(g*f*0.9pt,60);
+penpos5(g*f*0.30pt,30);
+penpos6(g*f*0.20pt,0);
+fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
+fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+iff known blitzb: cmchar "WIDERSPRUCHSBLITZB";
+beginarithchar(blitzb);
+f:=1.3;
+g:=1.2;
+x0=w/2;y0=1.5math_axis;
+x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
+x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
+x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
+x3=x2;y3=y0+f*0.75math_axis;
+x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
+z7=0.5[z5,z6];
+z8=(y6-y7,x7-x6)+z7;
+z9=(y7-y6,x6-x7)+z7;
+z10=2[z5,z6];
+z11=0.5[z8,z10];z12=0.4[z11,z6];
+z13=0.5[z9,z10];z14=0.4[z13,z6];
+penpos4(g*f*1pt,45);
+penpos3(g*f*0.75pt,45);
+penpos2(g*f*0.9pt,60);
+penpos0(g*f*0.9pt,60);
+penpos1(g*f*0.9pt,60);
+penpos5(g*f*0.30pt,30);
+penpos6(g*f*0.20pt,0);
+fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
+fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+iff known blitzc: cmchar "WIDERSPRUCHSBLITZC";
+beginarithchar(blitzc);
+f:=1.4;
+g:=1.2;
+x0=w/2;y0=1.5math_axis;
+x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
+x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
+x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
+x3=x2;y3=y0+f*0.75math_axis;
+x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
+z7=0.5[z5,z6];
+z8=(y6-y7,x7-x6)+z7;
+z9=(y7-y6,x6-x7)+z7;
+z10=2[z5,z6];
+z11=0.5[z8,z10];z12=0.4[z11,z6];
+z13=0.5[z9,z10];z14=0.4[z13,z6];
+penpos4(g*f*1pt,45);
+penpos3(g*f*0.75pt,45);
+penpos2(g*f*0.9pt,60);
+penpos0(g*f*0.9pt,60);
+penpos1(g*f*0.9pt,60);
+penpos5(g*f*0.30pt,30);
+penpos6(g*f*0.20pt,0);
+fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
+fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+iff known blitzd: cmchar "WIDERSPRUCHSBLITZD";
+beginarithchar(blitzd);
+f:=1.5;
+g:=1.2;
+x0=w/2;y0=1.5math_axis;
+x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
+x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
+x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
+x3=x2;y3=y0+f*0.75math_axis;
+x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
+z7=0.5[z5,z6];
+z8=(y6-y7,x7-x6)+z7;
+z9=(y7-y6,x6-x7)+z7;
+z10=2[z5,z6];
+z11=0.5[z8,z10];z12=0.4[z11,z6];
+z13=0.5[z9,z10];z14=0.4[z13,z6];
+penpos4(g*f*1pt,45);
+penpos3(g*f*0.75pt,45);
+penpos2(g*f*0.9pt,60);
+penpos0(g*f*0.9pt,60);
+penpos1(g*f*0.9pt,60);
+penpos5(g*f*0.30pt,30);
+penpos6(g*f*0.20pt,0);
+fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
+fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+iff known blitze: cmchar "WIDERSPRUCHSBLITZE";
+beginarithchar(blitze);
+f:=1.6;
+g:=1.2;
+x0=w/2;y0=1.5math_axis;
+x1-x0=f*0.3math_axis=x0-x2;y1-y0=f*0.105math_axis=y0-y2;
+x5=x1-f*0.25math_axis;y5=y0-f*0.75math_axis;
+x6=x1-f*0.55math_axis;y6=y0-f*1.5math_axis;
+x3=x2;y3=y0+f*0.75math_axis;
+x4=x2-f*0.05math_axis;y4=y0+f*1.5math_axis;
+z7=0.5[z5,z6];
+z8=(y6-y7,x7-x6)+z7;
+z9=(y7-y6,x6-x7)+z7;
+z10=2[z5,z6];
+z11=0.5[z8,z10];z12=0.4[z11,z6];
+z13=0.5[z9,z10];z14=0.4[z13,z6];
+penpos4(g*f*1pt,45);
+penpos3(g*f*0.75pt,45);
+penpos2(g*f*0.9pt,60);
+penpos0(g*f*0.9pt,60);
+penpos1(g*f*0.9pt,60);
+penpos5(g*f*0.30pt,30);
+penpos6(g*f*0.20pt,0);
+fill z4r..z3r..{z2-z3}z2r{z0-z2}..z0r..{z1-z0}z1r{z5-z1}..z5r..z6r--z6l..z5l..{z1-z5}z1l{z0-z1}..z0l..{z2-z0}z2l{z3-z2}..z3l..z4l--z4r..cycle;
+fill z6r--z9..{z10-z14}z10{z12-z10}..z8--z6l--cycle;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14);
+endchar;
+
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/umrand/ua000.mf b/Master/texmf-dist/fonts/source/public/umrand/ua000.mf
new file mode 100644
index 00000000000..d35b82d8ac2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/umrand/ua000.mf
@@ -0,0 +1,57 @@
+input umrand
+
+def wood(expr W) =
+ beginchar(incr nextchar,charsize#,charsize#,0cm#);
+ pickup pencircle scaled penwid;
+
+ xscal:=1;
+
+ u:=w/10; v:=h/20; ab:=0;
+
+ x0=x1=0+ab;
+ x2=x3=x4=x5=x6=u+ab;
+ x7=x8=x9=x10=x11=x12=2u+ab;
+ x13=x14=x15=3u+ab;
+ x16=x17=x18=x19=4u+ab;
+ x20=x21=x22=5u+ab;
+ x23=x24=x25=6u+ab;
+ x26=7u+ab; x27=8u+ab;
+ x28=x29=10u+ab;
+ y2=20v; y0=19v; y3=16v;
+ y7=y16=15v; y13=y20=14v;
+ y8=13v; y21=12v;
+ y9=y17=y23=y27=y28=11v;
+ y4=y14=y26=10v;
+ y18=y24=y29=9v;
+ y5=8v; y10=y19=y25=7v;
+ y15=y22=6v;
+ y11=5v; y12=3v; y1=v; y6=0v;
+
+ def WoodRotation(expr w,p) =
+ CenterRotation(w,
+ p if abs(abs(sind(w))-abs(cosd(w))) < eps:
+ shifted (2u,0)
+ fi)
+ enddef;
+
+ draw WoodRotation(W,z2--z0--z1--z6--z5--z15);
+ draw WoodRotation(W,z10--z12--z22--z19--z11);
+ draw WoodRotation(W,z0--z16--z8--z7--z13);
+ draw WoodRotation(W,z7--z3--z4--z9--z8);
+ draw WoodRotation(W,z4--z19--z18--z9--z20--z21--z14);
+ draw WoodRotation(W,z17--z18);
+ draw WoodRotation(W,z21--z22--z25--z24--z23--z21);
+ draw WoodRotation(W,z23--z26--z24);
+ draw WoodRotation(W,z20--z27--z26);
+ draw WoodRotation(W,z2--z28--z25);
+ draw WoodRotation(W,z28--z29--z6);
+ testbox; endchar;
+enddef;
+
+nextchar:=-1; % -1: we start first char width incr(-1) = 0!
+
+wood(0);
+
+end;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbc10.mf b/Master/texmf-dist/fonts/source/public/universa/fulbc10.mf
new file mode 100644
index 00000000000..9c9f6ed86d7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbc10.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbc10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,caps,ten')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+caps := true ;
+start_font(10pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbc10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbc12.mf b/Master/texmf-dist/fonts/source/public/universa/fulbc12.mf
new file mode 100644
index 00000000000..37eb75f771d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbc12.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbc12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,caps,twelve')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+caps := true ;
+start_font(12pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbc12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbc17.mf b/Master/texmf-dist/fonts/source/public/universa/fulbc17.mf
new file mode 100644
index 00000000000..a396976a6f1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbc17.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbc17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,caps,seventeen')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+caps := true ;
+start_font(17pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbc17.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbc8.mf b/Master/texmf-dist/fonts/source/public/universa/fulbc8.mf
new file mode 100644
index 00000000000..15f7067155d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbc8.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbc8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,caps,eight')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+caps := true ;
+start_font(8pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbc8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbc9.mf b/Master/texmf-dist/fonts/source/public/universa/fulbc9.mf
new file mode 100644
index 00000000000..388a882c9a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbc9.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbc9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,caps,nine')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+caps := true ;
+start_font(9pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbc9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbo10.mf b/Master/texmf-dist/fonts/source/public/universa/fulbo10.mf
new file mode 100644
index 00000000000..ec5e56bb7af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbo10.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbo10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,slanted,ten')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+slant := true ;
+start_font(10pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbo10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbo12.mf b/Master/texmf-dist/fonts/source/public/universa/fulbo12.mf
new file mode 100644
index 00000000000..5187b3f9b6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbo12.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbo12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,slanted,twelve')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+slant := true ;
+start_font(12pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbo12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbo17.mf b/Master/texmf-dist/fonts/source/public/universa/fulbo17.mf
new file mode 100644
index 00000000000..e9631dc8ab9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbo17.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbo17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,slanted,seventeen')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+slant := true ;
+start_font(17pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbo17.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbo8.mf b/Master/texmf-dist/fonts/source/public/universa/fulbo8.mf
new file mode 100644
index 00000000000..0438fe42a5d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbo8.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbo8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,slanted,eight')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+slant := true ;
+start_font(8pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbo8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbo9.mf b/Master/texmf-dist/fonts/source/public/universa/fulbo9.mf
new file mode 100644
index 00000000000..7ee8d2dc42a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbo9.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbo9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,slanted,nine')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+slant := true ;
+start_font(9pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbo9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbr10.mf b/Master/texmf-dist/fonts/source/public/universa/fulbr10.mf
new file mode 100644
index 00000000000..7b93fd11728
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbr10.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulbr10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,ten')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+start_font(10pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbr10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbr12.mf b/Master/texmf-dist/fonts/source/public/universa/fulbr12.mf
new file mode 100644
index 00000000000..9b783c4d1e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbr12.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulbr12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,twelve')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+start_font(12pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbr12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbr17.mf b/Master/texmf-dist/fonts/source/public/universa/fulbr17.mf
new file mode 100644
index 00000000000..4a4cb1c57c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbr17.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulbr17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,seventeen')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+start_font(17pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbr17.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbr8.mf b/Master/texmf-dist/fonts/source/public/universa/fulbr8.mf
new file mode 100644
index 00000000000..04b994a0182
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbr8.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulbr8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,eight')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+start_font(8pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbr8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbr9.mf b/Master/texmf-dist/fonts/source/public/universa/fulbr9.mf
new file mode 100644
index 00000000000..e5cb1401aa2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbr9.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulbr9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,nine')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+start_font(9pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbr9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbst10.mf b/Master/texmf-dist/fonts/source/public/universa/fulbst10.mf
new file mode 100644
index 00000000000..4e218f98a47
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbst10.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbst10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,strict,ten')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+strict := true ;
+start_font(10pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbst10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbst12.mf b/Master/texmf-dist/fonts/source/public/universa/fulbst12.mf
new file mode 100644
index 00000000000..8a4d50436b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbst12.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbst12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,strict,twelve')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+strict := true ;
+start_font(12pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbst12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbst17.mf b/Master/texmf-dist/fonts/source/public/universa/fulbst17.mf
new file mode 100644
index 00000000000..d0b6ea83264
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbst17.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbst17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,strict,seventeen')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+strict := true ;
+start_font(17pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbst17.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbst8.mf b/Master/texmf-dist/fonts/source/public/universa/fulbst8.mf
new file mode 100644
index 00000000000..667b7f6448f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbst8.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbst8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,strict,eight')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+strict := true ;
+start_font(8pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbst8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulbst9.mf b/Master/texmf-dist/fonts/source/public/universa/fulbst9.mf
new file mode 100644
index 00000000000..937f247707c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulbst9.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulbst9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,bold,strict,nine')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+bold := true ;
+strict := true ;
+start_font(9pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulbst9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmc10.mf b/Master/texmf-dist/fonts/source/public/universa/fulmc10.mf
new file mode 100644
index 00000000000..1ab6a18ef1f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmc10.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmc10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,caps,ten')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+caps := true ;
+start_font(10pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmc10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmc12.mf b/Master/texmf-dist/fonts/source/public/universa/fulmc12.mf
new file mode 100644
index 00000000000..4c99016720a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmc12.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmc12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,caps,twelve')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+caps := true ;
+start_font(12pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmc12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmc17.mf b/Master/texmf-dist/fonts/source/public/universa/fulmc17.mf
new file mode 100644
index 00000000000..4f3d469468e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmc17.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmc17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,caps,seventeen')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+caps := true ;
+start_font(17pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmc17.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmc8.mf b/Master/texmf-dist/fonts/source/public/universa/fulmc8.mf
new file mode 100644
index 00000000000..fbcc9e8ab38
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmc8.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmc8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,caps,eight')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+caps := true ;
+start_font(8pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmc8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmc9.mf b/Master/texmf-dist/fonts/source/public/universa/fulmc9.mf
new file mode 100644
index 00000000000..16d998eb6bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmc9.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmc9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,caps,nine')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+caps := true ;
+start_font(9pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmc9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmo10.mf b/Master/texmf-dist/fonts/source/public/universa/fulmo10.mf
new file mode 100644
index 00000000000..e275580fa08
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmo10.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmo10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,slanted,ten')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+slant := true ;
+start_font(10pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmo10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmo12.mf b/Master/texmf-dist/fonts/source/public/universa/fulmo12.mf
new file mode 100644
index 00000000000..27f82bf9e11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmo12.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmo12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,slanted,twelve')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+slant := true ;
+start_font(12pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmo12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmo17.mf b/Master/texmf-dist/fonts/source/public/universa/fulmo17.mf
new file mode 100644
index 00000000000..aad5cd800f0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmo17.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmo17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,slanted,seventeen')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+slant := true ;
+start_font(17pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmo17.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmo8.mf b/Master/texmf-dist/fonts/source/public/universa/fulmo8.mf
new file mode 100644
index 00000000000..c383a76dc1a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmo8.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmo8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,slanted,eight')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+slant := true ;
+start_font(8pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmo8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmo9.mf b/Master/texmf-dist/fonts/source/public/universa/fulmo9.mf
new file mode 100644
index 00000000000..527c58ebd62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmo9.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmo9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,slanted,nine')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+slant := true ;
+start_font(9pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmo9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmr10.mf b/Master/texmf-dist/fonts/source/public/universa/fulmr10.mf
new file mode 100644
index 00000000000..9ec12a7bc74
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmr10.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulmr10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,ten')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+start_font(10pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmr10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmr12.mf b/Master/texmf-dist/fonts/source/public/universa/fulmr12.mf
new file mode 100644
index 00000000000..fd849054193
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmr12.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulmr12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,twelve')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+start_font(12pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmr12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmr17.mf b/Master/texmf-dist/fonts/source/public/universa/fulmr17.mf
new file mode 100644
index 00000000000..efeb2f06d06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmr17.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulmr17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,seventeen')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+start_font(17pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmr17.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmr8.mf b/Master/texmf-dist/fonts/source/public/universa/fulmr8.mf
new file mode 100644
index 00000000000..05c0c81c61e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmr8.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulmr8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,eight')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+start_font(8pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmr8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmr9.mf b/Master/texmf-dist/fonts/source/public/universa/fulmr9.mf
new file mode 100644
index 00000000000..93495cbcf8a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmr9.mf
@@ -0,0 +1,31 @@
+%%
+%% This is file `fulmr9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,nine')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+start_font(9pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmr9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmst10.mf b/Master/texmf-dist/fonts/source/public/universa/fulmst10.mf
new file mode 100644
index 00000000000..1e2b0857195
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmst10.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmst10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,strict,ten')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+strict := true ;
+start_font(10pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmst10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmst12.mf b/Master/texmf-dist/fonts/source/public/universa/fulmst12.mf
new file mode 100644
index 00000000000..82e86948cd2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmst12.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmst12.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,strict,twelve')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+strict := true ;
+start_font(12pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmst12.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmst17.mf b/Master/texmf-dist/fonts/source/public/universa/fulmst17.mf
new file mode 100644
index 00000000000..9b5bb0d8b62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmst17.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmst17.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,strict,seventeen')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+strict := true ;
+start_font(17pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmst17.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmst8.mf b/Master/texmf-dist/fonts/source/public/universa/fulmst8.mf
new file mode 100644
index 00000000000..346f7c55ce1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmst8.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmst8.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,strict,eight')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+strict := true ;
+start_font(8pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmst8.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/fulmst9.mf b/Master/texmf-dist/fonts/source/public/universa/fulmst9.mf
new file mode 100644
index 00000000000..31208f7a0fd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/fulmst9.mf
@@ -0,0 +1,32 @@
+%%
+%% This is file `fulmst9.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `font,medium,strict,nine')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if unknown unibase : input unibase; fi;
+
+medium := true ;
+strict := true ;
+start_font(9pt#) ;
+input uniupp ; input unilow ; input unidig ; input unispe ;
+input unilig ; input unipun ; input uniacc ; input uniext ;
+
+end_font;
+
+\endinput
+%%
+%% End of file `fulmst9.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/uniacc.mf b/Master/texmf-dist/fonts/source/public/universa/uniacc.mf
new file mode 100644
index 00000000000..4dd4b8a73a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/uniacc.mf
@@ -0,0 +1,109 @@
+%%
+%% This is file `uniacc.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `acc')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+beginchar(hex"12",x_w#,l_h#,0) ; "The accent `" ;
+ uniend(P_T/2,(w/2,a_h+P_T/2),90,270,10) ;
+ z1 = (w/2,a_h+P_T) ; z2 = (w/2,a_h) ; z3 = (w/2+P_T,a_h) ;
+ fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
+endchar ;
+
+beginchar(hex"13",x_w#,l_h#,0) ; "The accent '" ;
+ uniend(P_T/2,(w/2,a_h+P_T/2),-90,90,10) ;
+ z1 = (w/2,a_h+P_T) ; z2 = (w/2,a_h) ; z3 = (w/2-P_T,a_h) ;
+ fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
+endchar ;
+
+beginchar(hex"14",x_w#,l_h#,0) ; "The accent hachek" ;
+ z1 = (w/2,a_h+p_t) ; uniend(p_t,z1,225,315,10) ;
+ z2 = z1 + p_t*(-1,-1)/sqrt(2) ; z3 = z1 + p_t*(-1,1) ;
+ z4 = z3 + (-p_t*sqrt(2),0) ; path rombe ;
+ rombe := z1--z2--z4--z3--cycle ; fill rombe ;
+ fill rombe reflectedabout ((w/2,0),(w/2,h)) ;
+ penlabels(1,2,3,4) ;
+endchar ;
+
+beginchar(hex"15",x_w#,l_h#,0) ; "The accent breve" ;
+ rad := 3p_t/2 ; uniarc(rad,p_t,(w/2,a_h+rad),180,360,10) ;
+endchar ;
+
+beginchar(hex"16",x_w#,a_h#+p_t#,0) ; "The accent macron (bar)" ;
+ pickup unipensqu ;
+ bot lft z1 = (w/2-2p_t,a_h) ; bot rt z2 = (w/2+2p_t,a_h) ;
+ draw z1--z2 ; penlabels(1,2) ;
+endchar ;
+
+beginchar(hex"17",A_w#+4/3*(l_h#-x_h#)*slantratio,l_h#,0) ;
+ "The accent circle" ;
+ rad := P_T ; unicir(rad,p_t,(w/2,h-rad),10) ;
+endchar ;
+
+beginchar(hex"18",x_w#,x_h#,2c_d#) ; "The accent cidelia" ;
+ uniarc(d/2,2P_T/3,(w/2+d/4,-d/2),90,270,10) ;
+endchar ;
+
+phi := 15 ; tmp# := 3c_d# ; define_pixels(tmp) ;
+beginchar(hex"20",tmp#*cosd(phi)+p_t#*sind(phi),l_h#,0) ;
+ "The accent bar over l" ;
+ z1 = (0,(h+p_t*cosd(phi)-tmp*sind(phi))/2) ;
+ z2 = (p_t*sind(phi),(h-p_t*cosd(phi)-tmp*sind(phi))/2) ;
+ z3 = (w,(h-p_t*cosd(phi)+tmp*sind(phi))/2) ;
+ z4 = (w-p_t*sind(phi),(h+p_t*cosd(phi)+tmp*sind(phi))/2) ;
+ fill z1--z2--z3--z4--cycle ;
+ penlabels(1,2,3,4) ;
+endchar ;
+
+beginchar(hex"5E",x_w#,l_h#,0) ; "The accent hat" ;
+ z1 = (w/2,a_h+p_t) ; uniend(p_t,z1,45,136,10) ;
+ z2 = z1 + p_t*(-1,1)/sqrt(2) ; z3 = z1 + p_t*(-1,-1) ;
+ z4 = z3 + (-p_t*sqrt(2),0) ; path rombe ;
+ rombe := z1--z2--z4--z3--cycle ; fill rombe ;
+ fill rombe reflectedabout ((w/2,0),(w/2,h)) ;
+ penlabels(1,2,3,4) ;
+endchar ;
+
+beginchar(hex"5F",x_w#,l_h#,0) ; "The accent dot" ;
+ pickup UniPencir ; bot z1 = (w/2,a_h) ; drawdot z1 ; penlabels(1) ;
+endchar ;
+
+beginchar(hex"7D",x_w#,l_h#,0) ; "The accent ''" ;
+ rad := P_T/2 ;
+ uniend(rad,(w/2-rad,a_h+rad),-90,90,10) ;
+ uniend(rad,(w/2+P_T,a_h+rad),-90,90,20) ;
+ z1 = (w/2-rad-P_T,a_h) ; z2 = (w/2-rad,a_h) ;
+ z3 = (w/2-rad,a_h+P_T) ; fill z1--z2--z3--cycle ;
+ z4 = (w/2,a_h) ; z5 = (w/2+P_T,a_h) ;
+ z6 = (w/2+P_T,a_h+P_T) ; fill z4--z5--z6--cycle ;
+ penlabels(range 1 thru 6) ;
+endchar ;
+
+beginchar(hex"7E",x_w#,l_h#,0) ; "The accent ~" ;
+ rad := (w*sqrt(2)+p_t)/4 ; temp := (2w-p_t*sqrt(2))/8 ;
+ uniarc(rad,p_t,(w/2+temp,a_h+rad),225,315,10) ;
+ uniarc(rad,p_t,(w/2-temp,a_h+rad-2temp),45,135,20) ;
+endchar ;
+
+beginchar(hex"7F",x_w#,l_h#,0) ; "The accent umlout (double dot)" ;
+ pickup UniPencir ;
+ bot z1 = (w/2-P_T,a_h) ; bot z2 = (w/2+P_T,a_h) ;
+ drawdot z1 ; drawdot z2 ; penlabels(1,2) ;
+endchar ;
+
+\endinput
+%%
+%% End of file `uniacc.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/unibase.mf b/Master/texmf-dist/fonts/source/public/universa/unibase.mf
new file mode 100644
index 00000000000..27e04d9581d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/unibase.mf
@@ -0,0 +1,279 @@
+%%
+%% This is file `unibase.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `unibase')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% This file is NOT the source for universal, because almost all
+%% comments have been stripped from it. It is NOT the preferred
+%% form of universal for making modifications to it.
+%%
+%% Therefore you can NOT redistribute and/or modify THIS file.
+%% You can however redistribute the complete source (uni.dtx
+%% and uni.ins) and/or modify it under the terms of the GNU
+%% General Public License as published by the Free Software
+%% Foundation; either version 2, or (at your option) any later
+%% version.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% You should have received a copy of the GNU General Public
+%% License along with this package; if not, write to the
+%% Free Software Foundation, Inc.,
+%% 675 Mass Ave, Cambridge,
+%% MA 02139, USA.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+unibase := 1 ;
+string univer ;
+univer = "2.0" ;
+if proofing > 1 :
+ message "Base file for font `universal', version " & univer ;
+fi
+boolean medium , slant , bold , caps , strict ;
+medium := false ; slant := false ; bold := false ;
+caps := false ; strict := false ;
+font_identifier:="universal";
+
+def start_font(expr size) =
+ u# := size/18 ;
+ mode_setup;
+ x_h# := 8u# ; x_w# := 8u# ; m_w# := 11u# ; l_h# := 13u# ;
+ p_d# := 5u# ; l_s# := 2u# ; r_s# := 2u# ; A_w# := 10u# ;
+ M_w# := 14u# ; c_d# := 3u#/2 ; C_d# := 2u# ;
+ if (medium and bold) :
+ message "Font can't be both medium and bold, making medium font." ;
+ medium := true ;
+ fi;
+ if medium : p_t# := 2u#/3 ; P_t# := u# ; P_T# := u# ; fi ;
+ if bold : P_T# := 3u#/2 ; p_t# := 3u#/2 ; P_t# := 2u# ; fi ;
+ a_h# := x_h#+p_t#/2 ;
+ if (slant and (caps or strict)) : double_shape := 1 ; fi ;
+ if (caps and (slant or strict)) : double_shape := 1 ; fi ;
+ if (strict and (caps or slant)) : double_shape := 1 ; fi ;
+ if known double_shape :
+ message "Font cannot be two shapes, doing upright shape." ;
+ slant := false ; caps := false ; strict := false ;
+ fi ;
+ if slant : slantratio := 1/6 ; else: slantratio := 0 ; fi ;
+ currenttransform := identity slanted slantratio ;
+ font_x_height 8u# ; font_quad 12u#+2u# ;
+ font_normal_space 8u# ; font_normal_stretch 3u# ;
+ font_normal_shrink 2u# ; font_extra_space 2u# ;
+ font_coding_scheme:="TeX text" ; font_size 18u# ;
+ spanish_shriek:=hex"3C" ; spanish_query:=hex"3E";
+ define_pixels(u,x_h,x_w,m_w,l_h,p_d,A_w,M_w,c_d,C_d,a_h);
+ define_blacker_pixels(p_t,P_t,P_T);
+ picture e_pic, a_pic ;
+ do_pens ;
+ extra_beginchar := extra_beginchar&"fit_font;" ;
+ extra_endchar := extra_endchar&
+ "end_fit_font;extra_proof_rules;charcode:=charcode+code_offset;" ;
+ code_offset := 0 ;
+enddef;
+
+def do_pens =
+ clear_pen_memory ;
+ pickup pencircle scaled P_T slanted slantratio ;
+ UniPencir := savepen ;
+ pickup pencircle scaled p_t slanted slantratio ;
+ unipencir := savepen ;
+ pickup pencircle scaled P_t slanted slantratio ;
+ Unipencir := savepen ;
+ pickup pensquare scaled P_T slanted slantratio ;
+ UniPensqu := savepen ;
+ pickup pensquare scaled p_t slanted slantratio ;
+ unipensqu := savepen ;
+ pickup pensquare scaled P_t slanted slantratio ;
+ Unipensqu := savepen ;
+enddef ;
+
+def fit_font =
+ l := -hround(l_s#*hppp) ; interim xoffset := -l ;
+ charwd := charwd+l_s#+r_s# ; r := l+hround(charwd*hppp) ;
+ w := r-hround(r_s#*hppp) ;
+ italcorr charht*slantratio ;
+enddef;
+
+def end_fit_font =
+ w := r+l ;
+enddef;
+
+def extra_proof_rules =
+ if proofing > 1 :
+ for xa = l,r,w/2: proofrule((xa,-d), (xa,h)) ; endfor ;
+ for ya = 0,h/4,h/2,3h/4,h: proofrule((l,ya), (r,ya)) ; endfor ;
+ if d > 0 :
+ proofrule((l,-d/2), (r,-d/2)) ;
+ proofrule((l,-d), (r,-d)) ;
+ fi
+ fi
+enddef ;
+
+def end_font =
+ ligtable "u" : "h" kern u# ;
+ ligtable "f" : "f" kern 0 , "l" kern 0 , "i" kern 0 ;
+ ligtable "o" : "l" kern u# ;
+ ligtable "?" : "`" =: spanish_query ;
+ ligtable "!" : "`" =: spanish_shriek ;
+ ligtable "`" : "`" kern -l_s#-r_s#+p_t# ;
+ ligtable "'" : "'" kern -l_s#-r_s#+p_t# ,
+ "?" kern 2u#, "!" kern 2u# ;
+ ligtable "-" : "-" =: hex"7B" ;
+ ligtable hex"7B" : "-" =: hex"7C" ;
+ ligtable hex"22" : hex"22" kern -l_s#-r_s# ;
+ ligtable hex"5C" : hex"5C" kern -l_s#-r_s# ;
+ ligtable hex"20" :
+ "l" kern -3c_d#*cosd(15)-p_t#*sind(15)-l_s#-r_s# ,
+ "L" kern -3c_d#*cosd(15)-p_t#*sind(15)-l_s#-r_s# ;
+ bye
+enddef;
+
+def do_caps(expr offset) =
+ sc_shrink := x_h#/l_h# ;
+ P_t# := sc_shrink*P_t# ; l_h# := sc_shrink*l_h# ;
+ A_w# := sc_shrink*A_w# ; M_w# := sc_shrink*M_w# ;
+ C_d# := sc_shrink*C_d# ;
+ code_offset := offset ;
+ define_pixels(l_h,A_w,M_w,C_d) ;
+ define_blacker_pixels(P_t) ;
+ do_pens ;
+enddef ;
+
+def end_do_caps =
+ no_shrink := 1/sc_shrink ;
+ P_t# := no_shrink*P_t# ; l_h# := no_shrink*l_h# ;
+ A_w# := no_shrink*A_w# ; M_w# := no_shrink*M_w# ;
+ C_d# := no_shrink*C_d# ;
+ code_offset := 0 ;
+ define_pixels(l_h,A_w,M_w,C_d) ;
+ define_blacker_pixels(P_t) ;
+ do_pens ;
+enddef ;
+
+def no_adjust=
+ old_begin_adjust := extra_beginchar ;
+ old_end_adjust := extra_endchar ;
+ extra_beginchar := " " ;
+ extra_endchar :=
+ "extra_proof_rules;charcode:=charcode+code_offset" ;
+enddef;
+
+def restore_adjust=
+ extra_beginchar := old_begin_adjust ;
+ extra_endchar := old_end_adjust ;
+enddef;
+string old_begin_adjust, old_end_adjust ;
+
+def unicir(expr rad, thick, center, m)=
+ pickup pensquare scaled thick;
+ top z[m] = (0,rad) + center ; penpos[m](thick,90) ;
+ lft z[m+1] = (-rad,0) + center ; penpos[m+1](thick,180) ;
+ bot z[m+2] = (0,-rad) + center ; penpos[m+2](thick,270) ;
+ rt z[m+3] = (rad,0) + center ; penpos[m+3](thick,0) ;
+ penstroke z[m]e{left}..z[m+1]e{down}..
+ z[m+2]e{right}..z[m+3]e{up}..cycle ;
+ penlabels(range m thru m+3);
+enddef;
+
+def uniarc(expr rad, thick, center, ang_a, ang_b, m)=
+ pickup pensquare scaled thick ;
+ path arc.l, arc.r, arc.e ; n:=m ; ang_c := abs(ang_b-ang_a) ;
+ if ang_c >= 360 :
+ unicir(rad,center,n) ;
+ else:
+ top z[n] = (0,rad) + center ; penpos[n](thick,90) ;
+ arc.r := z[n]r{left} ;
+ arc.l := z[n]l{left} ;
+ if ang_c > 90 :
+ n := n+1 ; lft z[n] = (-rad,0) + center ; penpos[n](thick,180) ;
+ arc.r := arc.r&z[n-1]r..z[n]r{down} ;
+ arc.l := arc.l&z[n-1]l..z[n]l{down} ;
+ if ang_c > 180 :
+n := n+1 ; bot z[n] = (0,-rad) + center ; penpos[n](thick,270) ;
+arc.r := arc.r&z[n-1]r..z[n]r{right} ;
+arc.l := arc.l&z[n-1]l..z[n]l{right} ;
+if ang_c > 270 :
+ n := n+1 ; rt z[n] = (rad,0) + center ; penpos[n](thick,0) ;
+ arc.r := arc.r&z[n-1]r..z[n]r{up} ;
+ arc.l := arc.l&z[n-1]l..z[n]l{up} ;
+fi ;
+ fi ;
+ fi ;
+ n:=n+1 ; z[n] = z[m] rotatedabout(center,ang_c) ;
+ penpos[n](thick,90+ang_c) ;
+ arc.r := arc.r&z[n-1]r..z[n]r{dir(180+ang_c)} ;
+ arc.l := arc.l&z[n-1]l..z[n]l{dir(180+ang_c)} ;
+ arc.e := arc.l--reverse arc.r--cycle;
+ fill (arc.e rotatedabout(center,-90+ang_a));
+ fi;
+ penlabels(range m thru n);
+enddef;
+
+def uniend(expr rad, center, ang_a, ang_b, m)=
+ path arc ; n:=m ; ang_c := abs(ang_b-ang_a) ;
+ if ang_c >= 360 :
+ Rad := 2*rad ;
+ pickup pencircle scaled Rad ; z[n]=center ; drawdot z[n] ;
+ else:
+ z[n] = (0,rad) + center ; arc := center{up}--z[n]{left} ;
+ if ang_c > 90 :
+ n := n+1 ; z[n] = (-rad,0) + center ;
+ arc := arc&z[n-1]..z[n]{down} ;
+ if ang_c > 180 :
+n := n+1 ; z[n] = (0,-rad) + center ;
+arc := arc&z[n-1]..z[n]{right} ;
+if ang_c > 270 :
+ n := n+1 ; z[n] = (rad,0) + center ;
+ arc := arc&z[n-1]..z[n]{up} ;
+fi ;
+ fi ;
+ fi ;
+ n := n+1 ; z[n] = z[m] rotatedabout(center,ang_c) ;
+ arc := arc&z[n-1]..z[n]{dir(180+ang_c)}--cycle ;
+ fill (arc rotatedabout(center,-90+ang_a));
+ fi;
+ penlabels(range m thru n);
+enddef;
+
+
+def unilne(expr thick, start, stop, endcutstart, endcutstop, m)=
+ pickup pensquare scaled thick;
+ if endcutstart = endcutstop :
+ if endcutstart = 0 :
+ lft bot z[m] = start ; rt top z[m+1] = stop ;
+ ang_c := angle(z[m+1]-z[m]) ;
+ penpos[m](thick,-90+ang_c) ;
+ penpos[m+1](thick,-90+ang_c) ;
+ elseif endcutstart > 0 :
+ lft z[m] = start ; rt z[m+1] = stop ;
+ ang_c := angle(z[m+1]-z[m]) ;
+ penpos[m](thick/sind(ang_c),0) ;
+ penpos[m+1](thick/sind(ang_c),0) ;
+ elseif endcutstart < 0:
+ bot z[m] = start ; top z[m+1] = stop ;
+ ang_c := angle(z[m+1]-z[m]) ;
+ penpos[m](thick/cosd(ang_c),90) ;
+ penpos[m+1](thick/cosd(ang_c),90) ;
+ fi;
+ penstroke z[m]e--z[m+1]e ;
+ else :
+ message "Different endcuts on unilne not implemented yet.";
+ fi;
+ n := m + 1 ;
+ penlabels(range m thru n);
+enddef;
+
+\endinput
+%%
+%% End of file `unibase.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/unidig.mf b/Master/texmf-dist/fonts/source/public/universa/unidig.mf
new file mode 100644
index 00000000000..415a7f3b9be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/unidig.mf
@@ -0,0 +1,119 @@
+%%
+%% This is file `unidig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `dig')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+beginchar("0",A_w#,l_h#,0) ; "The number 0" ;
+ uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
+ uniarc(w/2,p_t,(w/2,w/2),180,360,20) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h-w/2) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
+ top rt z3 = (w,h-w/2) ; bot rt z4 = (w,w/2) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+endchar;
+
+beginchar("1",2c_d#,l_h#,0) ; "The number 1" ;
+ uniend(p_t,(w-p_t,h-p_t),0,90,10) ;
+ pickup unipensqu ;
+ lft top z1 = (0,h) ; rt top z2 = (w-p_t,h) ; draw z1--z2 ;
+ rt top z3 = (w,h-p_t) ; rt bot z4 = (w,0) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+endchar;
+
+beginchar("2",A_w#,l_h#,0) ; "The number 2" ;
+ uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
+ phi := angle((w,h-w/2)-(0,p_t)) ;
+ z1 = (w-p_t,h-w/2) ; z2 = z1 + p_t*(sind(phi),-cosd(phi)) ;
+ z3 = (p_t,p_t) ; z4 = z3 + p_t*(-sind(phi),cosd(phi)) ;
+ fill z1--z2--z3--z4--cycle ;
+ uniend(p_t,z1,270+phi,360,20) ;
+ uniend(p_t,z3,90+phi,270,30) ;
+ pickup unipensqu ;
+ bot lft z5 = (p_t,0) ; bot rt z6 = (w,0) ; draw z5--z6 ;
+ penlabels(range 1 thru 6) ;
+endchar;
+
+beginchar("3",A_w#,l_h#,0) ; "The number 3" ;
+ path arc_a, arc_b ;
+ arc_a = (w,h-w/2)..(w/2,h-w) ; arc_b = (w,w/2)..(w/2,w) ;
+ z3 = arc_a intersectionpoint arc_b ; phi := angle(z3-(w/2,w/2)) ;
+ uniarc(w/2,p_t,(w/2,h-w/2),-phi,180,10) ;
+ uniarc(w/2,p_t,(w/2,w/2),-180,phi,20) ;
+ pickup unipensqu ;
+ rt z1 = (w/2*(1+cosd(phi)),h/2) ; lft z2 = (w/2,h/2) ; draw z1--z2 ;
+ penlabels(1,2) ;
+endchar;
+
+beginchar("4",A_w#,l_h#,0) ; "The number 4" ;
+ z1 = (w-p_t,h-p_t) ; z2 = z1 + p_t*(-1/sqrt(2),1/sqrt(2)) ;
+ z3 = (p_t,h-w+p_t) ; z4 = z3 + p_t*(-1/sqrt(2),1/sqrt(2)) ;
+ fill z1--z2--z4--z3--cycle ;
+ uniend(p_t,z1,0,135,10) ;
+ uniend(p_t,z3,135,270,20) ;
+ pickup unipensqu ;
+ top rt z5 = (w,h-p_t) ; bot rt z6 = (w,0) ; draw z5--z6 ;
+ bot lft z7 = (p_t,h-w) ; bot rt z8 = (w,h-w) ; draw z7--z8 ;
+ penlabels(range 1 thru 8) ;
+endchar;
+
+beginchar("5",A_w#,l_h#,0) ; "The number 5" ;
+ rad := 9w/20 ;
+ uniarc(rad,p_t,(w-rad,rad),-150,90,10) ;
+ uniend(p_t,(p_t,h-p_t),90,180,20) ;
+ uniend(p_t,(p_t,2rad),180,270,30) ;
+ pickup unipensqu ;
+ top lft z1 = (p_t,2rad) ; top rt z2 = (w-rad,2rad) ; draw z1--z2 ;
+ bot lft z3 = (0,2rad) ; top lft z4 = (0,h-p_t) ; draw z3--z4 ;
+ top lft z5 = (p_t,h) ; top rt z6 = (w,h) ; draw z5--z6 ;
+ penlabels(range 1 thru 6) ;
+endchar;
+
+beginchar("6",A_w#,l_h#,0) ; "The number 6" ;
+ unicir(w/2,p_t,(w/2,w/2),10) ;
+ uniarc(w/2,p_t,(w/2,h-w/2),60,180,20) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h-w/2) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
+ penlabels(1,2) ;
+endchar;
+
+beginchar("7",A_w#,l_h#,0) ; "The number 7" ;
+ z1 = (w-p_t,h-p_t) ; phi := angle(z1) ;
+ uniend(p_t,z1,-90+phi,90,10) ;
+ z2 = z1 + p_t*(cosd(90-phi),-sind(90-phi)) ;
+ z3 = (p_t/cosd(90-phi),0) ; z4 = (0,0) ;
+ fill z1--z2--z3--z4--cycle ;
+ pickup unipensqu ;
+ top lft z5 = (0,h) ; top rt z6 = (w-p_t,h) ; draw z5--z6 ;
+ penlabels(range 1 thru 6) ;
+endchar;
+
+beginchar("8",1/2*(l_h#+p_t#),l_h#,0) ; "The number 8" ;
+ unicir(w/2,p_t,(w/2,w/2),10) ;
+ unicir(w/2,p_t,(w/2,h-w/2),20) ;
+endchar;
+
+beginchar("9",A_w#,l_h#,0) ; "The number 9" ;
+ unicir(w/2,p_t,(w/2,h-w/2),10) ;
+ uniarc(w/2,p_t,(w/2,w/2),-150,0,20) ;
+ pickup unipensqu ;
+ top rt z1 = (w,h-w/2) ; bot rt z2 = (w,w/2) ; draw z1--z2 ;
+ penlabels(1,2) ;
+endchar;
+
+\endinput
+%%
+%% End of file `unidig.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/uniext.mf b/Master/texmf-dist/fonts/source/public/universa/uniext.mf
new file mode 100644
index 00000000000..587e6a048a6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/uniext.mf
@@ -0,0 +1,239 @@
+%%
+%% This is file `uniext.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `ext')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+currenttransform := identity ;
+
+beginchar(hex"00",l_h#,l_h#,0) ; "The filled square symbol" ;
+ z1 = (0,0) ; z2 = (w,0) ; z3 = (w,h) ; z4 = (0,h) ;
+ fill z1--z2--z3--z4--cycle ;
+ penlabels(1,2,3,4) ;
+endchar ;
+
+beginchar(hex"01",l_h#,l_h#,0) ; "The filled circle symbol" ;
+ z1 = (w,h/2) ; z2 = (w/2,h) ; z3 = (0,h/2) ; z4 = (w/2,0) ;
+ fill z1..z2..z3..z4..cycle ;
+ penlabels(1,2,3,4) ;
+endchar ;
+
+beginchar(hex"02",l_h#,l_h#,0) ; "The filled triangle symbol" ;
+ z1 = (0,0) ; z2 = (w,0) ; z3 = (w/2,h) ;
+ fill z1--z2--z3--cycle ;
+ penlabels(1,2,3) ;
+endchar ;
+
+beginchar(hex"03",2l_h#,2l_h#,0) ; "The bauhaus-head symbol" ;
+ unicir(w/2,2c_d/9,(w/2,w/2),40) ;
+ a1 := .702h ; a2 := .561h ; a3 := .491h ; a4 := .351h ;
+ a5 := .272h ; a6 := .140h ;
+ b1 := .202w ; b2 := .307w ; b3 := .412w ; b4 := .447w ;
+ b5 := .465w ; b6 := .518w ; b7 := .588w ; b8 := .623w ;
+ temp := c_d/6 ; pickup pensquare scaled temp ;
+ top lft z1 = (b1,a1) ; top rt z2 = (b2,a1) ; draw z1--z2 ;
+ bot rt z3 = (b4,a3) ; top rt z4 = (b4,a2) ; draw z3--z4 ;
+ z5 = (b2,a1) ; z6 = (b4,a1) ; z7 = (b4,a2) ; z8 = (b2,a2) ;
+ fill z5--z6--z7--z8--cycle ;
+ lft bot z9 = (b4,a4) ; lft bot z10 = (b7,a4) ; draw z9--z10 ;
+ lft bot z11 = (b2,a6) ; rt bot z12 = (b6,a6) ; draw z11--z12 ;
+ temp := 3c_d/5 ; pickup pensquare scaled temp ;
+ lft top z13 = (b5,a5) ; rt top z14 = (b6,a5) ; draw z13--z14 ;
+ z15 = (b6,a4) ; z16 = (b7,a4) ; z17 = (b7,a6) ; z18 = (b6,a6) ;
+ fill z15--z16--z17--z18--cycle ;
+ path noselft, nosert, necklft, neckrt ;
+ path headcircle , parttop, partbot;
+ z19 = (b7,a4) ; z20 = (b7,h) ; noselft = z19--z20 ;
+ z21 = (b8,h) ; z22 = (b8,a4) ; nosert = z21--z22 ;
+ z23 = (b3,a6) ; z24 = (b3,0) ; necklft = z23--z24 ;
+ z25 = (b6,0) ; z26 = (b6,a6) ; neckrt = z25--z26 ;
+ z27 = (w/2,h) ; z28 = (w,h/2) ; z29 = (w/2,0) ; z30 = (0,h/2) ;
+ headcircle := z27..z28..z29..z30..cycle ;
+ z31 = noselft intersectiontimes headcircle ;
+ z32 = nosert intersectiontimes headcircle ;
+ parttop = subpath(y31,y32) of headcircle ;
+ z33 = neckrt intersectiontimes headcircle ;
+ z34 = necklft intersectiontimes headcircle ;
+ partbot = subpath(y34,y33) of headcircle ;
+ fill z19--parttop--z22--cycle ;
+ fill z23--partbot--z26--cycle ;
+ penlabels(range 1 thru 34) ;
+endchar ;
+
+beginchar(hex"04",2l_h#,2l_h#,0) ; "The bauhaus-forms symbol" ;
+ phi := 36.673 ;
+ thn_pen := 2c_d/9 ; med_pen := 3c_d/9 ; thk_pen := 4c_d/9 ;
+ unicir(w/2,thn_pen,(w/2,w/2),20) ;
+ z1 = (thn_pen+med_pen,h/2) ;
+ z2 = (.6433w-med_pen,.9790h-med_pen) ;
+ z3 = (.6433w-med_pen,.0210h+med_pen) ;
+ uniend(med_pen,z1,phi+90,270-phi,30) ;
+ uniend(med_pen,z2,0,phi+90,40) ;
+ uniend(med_pen,z3,270-phi,360,50) ;
+ z4 = z1 + med_pen*(-sind(phi),cosd(phi)) ;
+ z5 = z2 + med_pen*(-sind(phi),cosd(phi)) ;
+ path sl_line ; sl_line = z1--z4--z5--z2--cycle ; fill sl_line ;
+ fill sl_line reflectedabout((0,h/2),(w,h/2)) ;
+ pickup pensquare scaled med_pen ;
+ lft bot z6 = z2 ; lft top z7 = z3 ; draw z6--z7 ;
+ z8 = (.3687w+thk_pen,.2254h+thk_pen) ;
+ z9 = (.9179w-thk_pen,.2254h+thk_pen) ;
+ z10 = (.9179w-thk_pen,.7746h-thk_pen) ;
+ z11 = (.3687w+thk_pen,.7746h-thk_pen) ;
+ uniend(thk_pen,z8,180,270,60) ;
+ uniend(thk_pen,z9,270,360,70) ;
+ uniend(thk_pen,z10,0,90,80) ;
+ uniend(thk_pen,z11,90,180,90) ;
+ pickup pensquare scaled thk_pen ;
+ lft top z12 = z8 ; rt top z13 = z9 ; draw z12--z13 ;
+ lft bot z14 = z9 ; lft top z15 = z10 ; draw z14--z15 ;
+ bot rt z16 = z10 ; bot lft z17 = z11 ; draw z16--z17 ;
+ top rt z18 = z11 ; bot rt z19 = z8 ; draw z18--z19 ;
+ penlabels(range 1 thru 19) ;
+endchar ;
+
+currenttransform := identity slanted slantratio ;
+
+if not caps :
+ for temp = 1,2 :
+ if temp = 2 : code_offset := 3 ; fi ;
+ beginchar(hex"05",x_w#,l_h#,0) ; "The letter eth" ;
+ unicir(w/2,p_t,(w/2,w/2),10) ;
+ uniarc(w/2,p_t,(w/2,h-w/2),0,120,20) ;
+ pickup unipensqu ;
+ top rt z1 = (w,h-w/2) ; bot rt z2 = (w,w/2) ; draw z1--z2 ;
+ z3 = (w/2,h-w/2+p_t/sqrt(2)) ; z4 = (w/2+p_t/sqrt(2),h-w/2) ;
+ z5 = (w,h-p_t/sqrt(2)) ; z6 = (w-p_t/sqrt(2),h) ;
+ fill z3--z4--z5--z6--cycle ;
+ penlabels(range 1 thru 6) ;
+ endchar ;
+
+ beginchar(hex"06",x_w#,x_h#,p_d#) ; "The letter eng" ;
+ uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ top rt z3 = (w,h-w/2) ; bot rt z4 = (w,-d) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar ;
+
+ beginchar(hex"07",x_w#,l_h#,p_d#) ; "The letter thorn" ;
+ rad := (h+d)/4 ;
+ uniarc(rad,p_t,(w-rad,rad),-90,90,10) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,-d) ; draw z1--z2 ;
+ top lft z3 = (p_t,2rad) ; top rt z4 = (w-rad,2rad) ;
+ bot lft z5 = (p_t,0) ; bot rt z6 = (w-rad,0) ;
+ draw z3--z4 ; draw z5--z6 ;
+ penlabels(range 1 thru 6) ;
+ endchar ;
+ exitif (not strict) ;
+ if temp = 2 : code_offset := 0 ; fi ;
+ endfor ;
+fi ;
+
+if not strict :
+ for temp = 1,2 :
+ if temp = 2 : do_caps(-3) ; fi ;
+
+ beginchar(hex"08",A_w#,l_h#,0) ; "The variant letter Q";
+ unicir(w/2,P_t,(w/2,h-w/2),10)
+ pickup Unipensqu ;
+ rt top z1 = (w,h-w/2) ; rt bot z2 = (w,0) ; draw z1--z2 ;
+ penlabels(1,2);
+ endchar ;
+
+ beginchar(hex"09",A_w#,l_h#,0) ; "The letter Eng" ;
+ rad := 3C_d ;
+ uniarc(w/2,P_t,(w/2,h-w/2),0,180,10) ;
+ uniarc(rad,P_t,(w-rad,rad),-90,0,20) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0); draw z1--z2 ;
+ top rt z3 = (w,h-w/2) ; bot rt z4 = (w,rad) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar ;
+
+ beginchar(hex"0A",A_w#,l_h#,0) ; "The letter Thorn" ;
+ rad := h/4 ;
+ uniarc(rad,P_t,(w-rad,h/2),-90,90,10) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ top lft z3 = (P_t,h/2+rad) ; top rt z4 = (w-rad,h/2+rad) ;
+ bot lft z5 = (P_t,h/2-rad) ; bot rt z6 = (w-rad,h/2-rad) ;
+ draw z3--z4 ; draw z5--z6 ;
+ penlabels(range 1 thru 6) ;
+ endchar ;
+ exitif (not caps) ;
+ if temp = 2 : end_do_caps ; fi ;
+ endfor ;
+fi ;
+
+beginchar(hex"0B",x_w#,x_h#,2c_d#) ; "The accent ogoneck" ;
+ uniarc(d/2,2P_T/3,(w/2-d/4,-d/2),-90,90,10) ;
+endchar ;
+
+beginchar(hex"0C",3c_d#,l_h#,p_d#) ; "The left brace ({)" ;
+ uniarc(2c_d,p_t,(3c_d,h-2c_d),90,180,10) ;
+ uniarc(2c_d,p_t,(3c_d,-d+2c_d),180,270,20) ;
+ pickup unipensqu ;
+ top lft z1 = (c_d,h-2c_d) ; bot lft z2 = (c_d,-d+2c_d) ; draw z1--z2 ;
+ lft z3 = (0,(h-d)/2) ; rt z4 = (c_d,(h-d)/2) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+endchar ;
+
+beginchar(hex"0D",3c_d#,l_h#,p_d#) ; "The right brace (})" ;
+ uniarc(2c_d,p_t,(0,h-2c_d),0,90,10) ;
+ uniarc(2c_d,p_t,(0,-d+2c_d),270,360,20) ;
+ pickup unipensqu ;
+ top rt z1 = (w-c_d,h-2c_d) ; bot rt z2 = (w-c_d,-d+2c_d) ;
+ draw z1--z2 ;
+ rt z3 = (w,(h-d)/2) ; lft z4 = (w-c_d,(h-d)/2) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+endchar ;
+
+beginchar(hex"0E",(l_h#+p_d#+2p_t#)/3,l_h#,p_d#) ;
+ "The Paragraph sign" ;
+ uniarc(w/2,p_t,(w/2,h-w/2),30,270,10) ;
+ uniarc(w/2,p_t,(w/2,w/2-d),-150,90,20) ;
+ unicir(w/2,p_t,(w/2,(h-d)/2),30) ;
+endchar ;
+
+beginchar(hex"0F",p_t#,l_h#,p_d#) ; "The symbol bar (|)" ;
+ pickup unipensqu ;
+ lft top z1 = (0,h) ; lft bot z2 = (0,-d) ; draw z1--z2 ;
+ penlabels(1,2);
+endchar ;
+
+beginchar(hex"22",2x_w#/3,x_h#,0) ; "The single left guillomot" ;
+ z1 = (p_t,h/2) ; z2 = (w,h) ; phi := angle(z2-z1) ;
+ uniend(p_t,(z1),90+phi,270-phi,10) ;
+ z3 = (w-p_t/sind(phi),h) ; z4 = z1 + p_t*(-sind(phi),cosd(phi)) ;
+ path rombe ; rombe := z1--z2--z3--z4--cycle ; fill rombe ;
+ fill rombe reflectedabout ((0,h/2),(w,h/2)) ;
+ penlabels(1,2,3,4) ;
+endchar ;
+
+beginchar(hex"5C",2x_w#/3,x_h#,0) ; "The single right guillomot";
+ z1 = (w-p_t,h/2) ; z2 = (0,h) ; phi := 180-angle(z2-z1) ;
+ uniend(p_t,(z1),phi-90,90-phi,10) ;
+ z3 = (p_t/sind(phi),h) ; z4 = z1 + p_t*(sind(phi),cosd(phi)) ;
+ path rombe ; rombe := z1--z2--z3--z4--cycle ; fill rombe ;
+ fill rombe reflectedabout ((0,h/2),(w,h/2)) ;
+ penlabels(1,2,3,4) ;
+endchar ;
+
+\endinput
+%%
+%% End of file `uniext.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/unilig.mf b/Master/texmf-dist/fonts/source/public/universa/unilig.mf
new file mode 100644
index 00000000000..540f79876cb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/unilig.mf
@@ -0,0 +1,110 @@
+%%
+%% This is file `unilig.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `lig')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if caps:
+ beginchar(hex"19",5/2x_w#,x_h#,0) ; "Ligature SS" ;
+ temp := (h+p_t)/4 ;
+ uniarc(temp,p_t,(temp,temp),180,270,10) ;
+ uniarc(temp,p_t,(2w/5-temp,temp),270,450,20) ;
+ uniarc(temp,p_t,(temp,h-temp),90,270,30) ;
+ uniarc(temp,p_t,(2w/5-temp,h-temp),0,90,40) ;
+ pickup unipensqu ;
+ bot lft z1 = (temp,0) ; bot rt z2 = (2w/5-temp,0) ;
+ lft z3 = (temp,h/2) ; rt z4 = (2w/5-temp,h/2) ;
+ top lft z5 = (temp,h) ; top rt z6 = (2w/5-temp,h) ;
+ draw z1--z2 ; draw z3--z4 ; draw z5--z6 ;
+ penlabels(1,2,3,4,5,6) ;
+ currentpicture := currentpicture + (currentpicture shifted
+ (3/5w,0)) ;
+ endchar ;
+
+else:
+ beginchar(hex"19",(l_h#+3p_t#)/2,l_h#,p_t#) ; "Ligature ss" ;
+ rad := (w-p_t)/2 ;
+ uniarc(rad,p_t,(p_t+rad,h-rad),-90,180,10) ;
+ uniarc(rad,p_t,(p_t+rad,rad),-90,90,20) ;
+ pickup unipensqu ;
+ top lft z1 = (p_t,h-rad) ; bot lft z2 = (p_t,-d) ; draw z1--z2 ;
+ lft z3 = (0,h/2) ; rt z4 = (w-rad,h/2) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar ;
+fi ;
+
+if not caps :
+ for temp = 1,2 :
+ if temp = 2 : code_offset := 3 ; fi ;
+ beginchar(hex"1A",2x_w#-p_t#,x_h#,0) ; "Ligature ae" ;
+ currentpicture := a_pic + ( e_pic shifted ((w-p_t)/2,0)) ;
+ endchar ;
+
+ beginchar(hex"1B",2x_w#-p_t#,x_h#,0) ; "Ligature oe" ;
+ unicir(h/2,p_t,(h/2,h/2),10) ;
+ currentpicture := currentpicture + (e_pic shifted ((w-p_t)/2,0)) ;
+ endchar ;
+
+ beginchar(hex"1C",x_w#,x_h#,0) ; "Ligature o/" ;
+ unicir(w/2,p_t,(w/2,h/2),10) ;
+ unilne(p_t,(0,0),(w,h),1,1,20) ;
+ endchar ;
+ exitif (not strict) ;
+ if temp = 2 : code_offset := 0 ; fi ;
+ endfor ;
+fi ;
+
+if not strict :
+ for temp = 1,2 :
+ if temp = 2 : do_caps(-3) ; fi ;
+
+ beginchar(hex"1D",M_w#,l_h#,0) ; "Ligature AE" ;
+ uniarc(w/2,P_t,(w/2,h-w/2),90,180,21) ;
+ uniend(P_t,((w+P_t)/2,P_t),180,270,30) ;
+ pickup Unipensqu ;
+ top lft z1 = (w/2,h) ; top rt z2 = (w,h) ;
+ top lft z3 = (0,h-w/2) ; bot lft z4 = (0,0) ;
+ lft z5 = (0,h/2) ; rt z6 = (w,h/2) ;
+ bot lft z7 = ((w+P_t)/2,0) ; bot rt z8 = (w,0) ;
+ top z9 = (w/2,h) ; bot z10 = (w/2,P_t) ;
+ draw z1--z2 ; draw z3--z4 ; draw z5--z6 ;
+ draw z7--z8 ; draw z9--z10 ;
+ penlabels(range 1 thru 10) ;
+ endchar ;
+
+ beginchar(hex"1E",M_w#,l_h#,0) ; "Ligature OE" ;
+ uniarc(h/2,P_t,(h/2,h/2),90,270,10) ;
+ pickup Unipensqu ;
+ top lft z1 = (h/2,h) ; top rt z2 = (w,h) ; draw z1--z2 ;
+ lft z3 = (h/2,h/2) ; rt z4 = (w,h/2) ; draw z3--z4 ;
+ bot lft z5 = (h/2,0) ; bot rt z6 = (w,0) ; draw z5--z6 ;
+ top z7 = (h/2,h) ; bot z8 = (h/2,0) ; draw z7--z8 ;
+ penlabels(range 1 thru 8) ;
+ endchar ;
+
+ beginchar(hex"1F",l_h#,l_h#,0) ; "Liguture O/" ;
+ unicir(w/2,P_t,(w/2,h/2),10) ;
+ unilne(P_t,(0,0),(w,h),1,1,20) ;
+ endchar ;
+
+ exitif (not caps) ;
+ if temp = 2 : end_do_caps ; fi ;
+ endfor ;
+fi ;
+
+\endinput
+%%
+%% End of file `unilig.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/unilow.mf b/Master/texmf-dist/fonts/source/public/universa/unilow.mf
new file mode 100644
index 00000000000..13332715391
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/unilow.mf
@@ -0,0 +1,247 @@
+%%
+%% This is file `unilow.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `low')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if not caps :
+
+ beginchar("a",x_w#,x_h#,0); "The letter a";
+ uniarc(w/2,p_t,(w/2,h/2),0,290,10);
+ pickup unipensqu ;
+ z1 = ((cosd(290)*(w-p_t)+w)/2,(sind(290)*(w-p_t)+w)/2);
+ z2 = (w-p_t/2,2h/5) ; penpos1(p_t,-70); penpos2(p_t,-45);
+ fill z1l{dir(20)}..z2l{dir(45)}--
+ z2r{dir(225)}..z1r{dir(200)}--cycle;
+ top rt z3 = (w,.5h) ; bot rt z4 = (w,0) ; draw z3{down}--z4 ;
+ penlabels(1,2,3,4);
+ a_pic := currentpicture ;
+ endchar;
+
+ beginchar("b",x_w#,l_h#,0); "The letter b";
+ unicir(w/2,p_t,(w/2,w/2),10);
+ pickup unipensqu ;
+ lft bot z1 = (0,w/2) ; lft top z2 = (0,h) ; draw z1{up}--z2 ;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("c",x_w#*(1+cosd(30))/2,x_h#,0); "The letter c";
+ uniarc(h/2,p_t,(h/2,h/2),30,330,10);
+ endchar;
+
+ beginchar("d",x_w#,l_h#,0); "The letter d";
+ unicir(w/2,p_t,(w/2,w/2),10);
+ pickup unipensqu ;
+ rt bot z1 = (w,w/2) ; rt top z2 = (w,h) ; draw z1{up}--z2 ;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("e",x_w#,x_h#,0); "The letter e";
+ uniarc(w/2,p_t,(w/2,h/2),0,330,10);
+ temp := p_t/2 ;
+ pickup pensquare xscaled p_t yscaled temp slanted slantratio ;
+ top rt z1 = (w,h/2) ; drawdot z1 ;
+ pickup unipensqu ;
+ z2 = (p_t,h/2) ; z3 = (w-p_t,h/2) ; draw z2--z3 ;
+ penlabels(1,2,3);
+ e_pic := currentpicture ;
+ endchar;
+
+ beginchar("f",4p_t#,l_h#,0); "The letter f";
+ uniarc(3/4w,p_t,(3/4w,h-3/4w),90,180,10);
+ pickup unipensqu ;
+ top rt z1 = (w,h) ; drawdot z1 ;
+ lft top z2 = (0,h-3/4w) ; bot lft z3 = (0,0) ; draw z2--z3 ;
+ top lft z4 = (0,x_h) ; top rt z5 = (w,x_h) ; draw z4--z5 ;
+ penlabels(1,2,3,4,5);
+ endchar;
+
+ beginchar("g",x_w#,x_h#,p_d#); "The letter g" ;
+ uniarc(w/2,p_t,(w/2,h/2),30,360,10) ;
+ pickup unipensqu ;
+ top rt z1 = (w,h/2) ; bot rt z2 = (w,-d) ; draw z1--z2;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("h",x_w#,l_h#,0); "The letter h" ;
+ uniarc(w/2,p_t,(w/2,w/2),0,180,10) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ top rt z3 = (w,x_h-w/2) ; bot rt z4 = (w,0) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar;
+
+ beginchar("i",p_t#,l_h#,0) ; "The letter i" ;
+ pickup unipensqu ;
+ top lft z1 = (0,x_h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ pickup unipencir ;
+ top lft z3 = (0,h) ; drawdot z3 ;
+ penlabels(1,2,3) ;
+ endchar;
+
+ beginchar("j",p_t#,l_h#,p_d#); "The letter j" ;
+ pickup unipensqu ;
+ top lft z1 = (0,x_h) ; bot lft z2 = (0,-d) ; draw z1--z2 ;
+ pickup unipencir ;
+ top lft z3 = (0,h) ; drawdot z3 ;
+ penlabels(1,2,3) ;
+ endchar;
+
+ beginchar("k",(x_h#+3p_t#)/2,x_h#,0) ; "The letter k" ;
+ uniarc((h+p_t)/2,p_t,(p_t,h),270,360,10) ;
+ uniarc((h+p_t)/2,p_t,(p_t,0),0,90,20) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("l",p_t#,l_h#,0) ; "The letter l" ;
+ pickup unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("m",m_w#,x_h#,0) ; "The letter m" ;
+ temp := .25*(w+p_t);
+ uniarc(temp,p_t,(temp,h-temp),0,180,10) ;
+ uniarc(temp,p_t,(w-temp,h-temp),0,180,20) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h-temp) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ top z3 = (w/2,h-temp) ; bot z4 = (w/2,0) ; draw z3--z4 ;
+ top rt z5 = (w,h-temp) ; bot rt z6 = (w,0) ; draw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+ endchar;
+
+ beginchar("n",x_w#,x_h#,0); "The letter n" ;
+ uniarc(w/2,p_t,(w/2,h-w/2),0,180,10) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ top rt z3 = (w,h-w/2) ; bot rt z4 = (w,0) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar;
+
+ beginchar("o",x_w#,x_h#,0) ; "The letter o";
+ unicir(w/2,p_t,(w/2,h/2),10);
+ endchar;
+
+ beginchar("p",x_w#,x_h#,p_d#) ; "The letter p" ;
+ unicir(w/2,p_t,(w/2,w/2),10);
+ pickup unipensqu ;
+ lft top z1 = (0,h/2) ; lft bot z2 = (0,-d) ; draw z1--z2 ;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("q",x_w#,x_h#,p_d#) ; "The letter q" ;
+ unicir(w/2,p_t,(w/2,w/2),10);
+ pickup unipensqu ;
+ rt top z1 = (w,h/2) ; rt bot z2 = (w,-d) ; draw z1--z2 ;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("r",3p_t#,x_h#,0) ; "The letter r" ;
+ uniarc(w,p_t,(w,h-w),90,180,10) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h-w) ; bot lft z2 = (0,0) ; draw z1--z2;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("s",x_w#,x_h#,0) ; "The letter s" ;
+ temp := (h+p_t)/4 ;
+ uniarc(temp,p_t,(temp,temp),180,270,10) ;
+ uniarc(temp,p_t,(w-temp,temp),270,450,20) ;
+ uniarc(temp,p_t,(temp,h-temp),90,270,30) ;
+ uniarc(temp,p_t,(w-temp,h-temp),0,90,40) ;
+ pickup unipensqu ;
+ bot lft z1 = (temp,0) ; bot rt z2 = (w-temp,0) ; draw z1--z2 ;
+ lft z3 = (temp,h/2) ; rt z4 = (w-temp,h/2) ; draw z3--z4 ;
+ top lft z5 = (temp,h) ; top rt z6 = (w-temp,h) ; draw z5--z6 ;
+ penlabels(1,2,3,4,5,6) ;
+ endchar;
+
+ beginchar("t",p_t#+2c_d#,l_h#,0); "The letter t" ;
+ pickup unipensqu ;
+ top z1 = (w/2,h) ; bot z2 = (w/2,0) ; draw z1--z2 ;
+ top lft z3 = (0,x_h) ; top rt z4 = (w,x_h) ; draw z3--z4 ;
+ penlabels(1,2,3,4);
+ endchar;
+
+ beginchar("u",x_w#,x_h#,0); "The letter u" ;
+ uniarc(w/2,p_t,(w/2,w/2),180,360,10) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
+ top rt z3 = (w,h) ; bot rt z4 = (w,w/2) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar;
+
+ beginchar("v",x_w#,x_h#,0); "The letter v" ;
+ unilne(p_t,(0,h),(w/2,p_t),1,1,10);
+ unilne(p_t,(w/2,p_t),(w,h),1,1,20);
+ uniarc(p_t,p_t,(w/2,p_t),180,360,30);
+ endchar;
+
+ beginchar("w",m_w#,x_h#,0) ; "The letter w" ;
+ temp := .25*(w+p_t);
+ uniarc(temp,p_t,(temp,temp),180,360,10) ;
+ uniarc(temp,p_t,(w-temp,temp),180,360,20) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,temp) ; draw z1--z2 ;
+ top z3 = (w/2,h) ; bot z4 = (w/2,temp) ; draw z3--z4 ;
+ top rt z5 = (w,h) ; bot rt z6 = (w,temp) ; draw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+ endchar;
+
+ beginchar("x",x_w#,x_h#,0) ; "The letter x" ;
+ uniarc(h/2,p_t,(p_t/2,h/2),270,90,10);
+ uniarc(h/2,p_t,(w-p_t/2,h/2),90,270,20);
+ temp := (w-h+p_t)/2 ;
+ pickup pensquare xscaled temp yscaled p_t slanted slantratio ;
+ lft top z1 = (0,h) ; drawdot z1 ;
+ lft bot z2 = (0,0) ; drawdot z2 ;
+ rt top z3 = (w,h) ; drawdot z3 ;
+ rt bot z4 = (w,0) ; drawdot z4 ;
+ penlabels(1,2,3,4);
+ endchar;
+
+ beginchar("y",x_w#,x_h#,p_d#); "The letter y" ;
+ uniarc(w/2,p_t,(w/2,w/2),180,360,10) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,w/2); draw z1--z2 ;
+ top rt z3 = (w,h) ; bot rt z4 = (w,-d) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar;
+
+ beginchar("z",x_w#,x_h#,0) ; "The letter z" ;
+ pickup unipensqu ;
+ top lft z1 = (0,h) ; top rt z2 = (w-p_t,h) ; draw z1--z2 ;
+ bot lft z3 = (p_t,0) ; bot rt z4 = (w,0) ; draw z3--z4 ;
+ phi := angle((w,h-p_t)-(0,p_t)) ; % Uuuuupps !?!!!!!!
+ z5 = (p_t,p_t) ; z6 = z5 + p_t*(-sind(phi),cosd(phi)) ;
+ z7 = (w-p_t,h-p_t) ; z8 = z7 + p_t*(sind(phi),-cosd(phi)) ;
+ uniend(p_t,z5,90+phi,270,10);
+ uniend(p_t,z7,-90+phi,90,20);
+ fill z5--z6--z7--z8--cycle ;
+ penlabels(range 1 thru 8);
+ endchar;
+
+else :
+ do_caps(ASCII"a" - ASCII"A") ;
+ input uniupp ;
+ end_do_caps ;
+fi ;
+
+\endinput
+%%
+%% End of file `unilow.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/unipun.mf b/Master/texmf-dist/fonts/source/public/universa/unipun.mf
new file mode 100644
index 00000000000..9fdb2cf625a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/unipun.mf
@@ -0,0 +1,170 @@
+%%
+%% This is file `unipun.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `pun')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+beginchar("!",P_T#,l_h#,0) ; "The exclamation mark (!)" ;
+ pickup UniPensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,2P_T) ; draw z1--z2 ;
+ pickup UniPencir ;
+ bot lft z3 = (0,0) ; drawdot z3 ;
+ penlabels(1,2,3) ;
+endchar;
+
+beginchar("(",x_w#/2,l_h#,p_d#) ; "The left paranthesis (()" ;
+ z1 = (w,h) ; z2 = (p_t,(h-d)/2) ; z3 = (w,-d) ;
+ z4 = (w-p_t,-d) ; z5 = (0,(h-d)/2) ; z6 = (w-p_t,h) ;
+ fill z1..z2..z3--z4..z5..z6--cycle ;
+ penlabels(range 1 thru 6) ;
+endchar;
+
+beginchar(")",x_w#/2,l_h#,p_d#) ; "The right paranthesis ())" ;
+ z1 = (p_t,h) ; z2 = (w,(h-d)/2) ; z3 = (p_t,-d) ;
+ z4 = (0,-d) ; z5 = (w-p_t,(h-d)/2) ; z6 = (0,h) ;
+ fill z1..z2..z3--z4..z5..z6--cycle ;
+ penlabels(range 1 thru 6) ;
+endchar;
+
+beginchar("#",x_w#,x_h#,0) ; "The hash mark (#)" ;
+ unilne(p_t,(0,0),(w/2,h),1,1,10) ;
+ unilne(p_t,(w/2,0),(w,h),1,1,20) ;
+ pickup unipensqu ;
+ top lft z1 = (0,(h-c_d)/2) ; top rt z2 = (w,(h-c_d)/2) ;
+ bot lft z3 = (0,(h+c_d)/2) ; bot rt z4 = (w,(h+c_d)/2) ;
+ draw z1--z2 ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+endchar;
+
+beginchar("%",x_w#,l_h#,0) ; "The percent sign (%)" ;
+ temp := 3c_d/2 ;
+ unicir(temp,p_t,(temp,h-temp),10) ;
+ unicir(temp,p_t,(w-temp,temp),20) ;
+ unilne(p_t,(0,0),(w,h),1,1,30) ;
+endchar;
+
+beginchar("'",2P_T#,l_h#,0) ; "The apostrophe (')" ;
+ uniend(w/2,(w/2,h-w/2),0,180,10) ;
+ z1 = (0,h-w/2) ; z2 = (w,h-w/2) ; z3 = (0,h-3w/2) ;
+ fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
+endchar;
+
+beginchar("*",x_w#,l_h#,0) ; "The ast (*)" ;
+ path rect ;
+ temp := h-(w*sind(60)-p_t*cosd(60))/2 ;
+ pickup unipensqu ;
+ lft z1 = (0,temp) ; rt z2 = (w,temp) ; draw z1--z2 ;
+ rect = (bot lft z1)--(top lft z1)--(top rt z2)--(bot rt z2)--cycle ;
+ fill rect rotatedabout((w/2,temp),60) ;
+ fill rect rotatedabout((w/2,temp),120) ;
+ penlabels(1,2) ;
+endchar;
+
+beginchar("+",x_w#,x_h#,0) ; "The plus sign (+)" ;
+ pickup unipensqu ;
+ lft z1 = (0,w/2) ; rt z2 = (w,w/2) ; draw z1--z2 ;
+ bot z3 = (w/2,0) ; top z4 = (w/2,w) ; draw z3--z4 ;
+endchar;
+
+beginchar(",",2P_T#,2P_T#,2P_T#) ; "The punctuation ," ;
+ uniend(w/2,(w/2,0),0,180,10) ;
+ z1 = (0,0) ; z2 = (w,0) ; z3 = (0,-d) ;
+ fill z1--z2--z3--cycle ; penlabels(1,2,3) ;
+endchar;
+
+beginchar("-",4x_w#/5,x_h#,0) ; "The hyphen (-)" ;
+ pickup unipensqu ;
+ lft z1 = (0,h/2) ; rt z2 = (w,h/2) ; draw z1--z2 ;
+ penlabels(1,2);
+endchar;
+
+beginchar(".",2P_T#,2P_T#,0) ; "The punctuation ." ;
+ uniend(w/2,(w/2,h/2),0,360,10) ;
+endchar;
+
+beginchar("/",x_w#,l_h#,0) ; "The slash (/)" ;
+ unilne(p_t,(0,0),(w,h),1,1,10) ;
+endchar;
+
+beginchar(":",2P_T#,x_h#,0) ; "The punctuation :" ;
+ uniend(w/2,(w/2,h-w/2),0,360,10) ;
+ uniend(w/2,(w/2,w/2),0,360,20) ;
+endchar;
+
+beginchar(";",2P_T#,x_h#,2P_T#) ; "The punctuation ;" ;
+ uniend(w/2,(w/2,h-w/2),0,360,10) ;
+ uniend(w/2,(w/2,0),0,180,20) ;
+ z2 = (0,0) ; z3 = (w,0) ; z4 = (0,-d) ; fill z2--z3--z4--cycle ;
+ penlabels(1,2,3,4) ;
+endchar;
+
+beginchar("=",x_w#,x_h#,0) ; "The equal sign (=)" ;
+ pickup unipensqu ;
+ top lft z1 = (0,(h-p_t)/2) ; top rt z2 = (w,(h-p_t)/2) ;
+ bot lft z3 = (0,(h+p_t)/2) ; bot rt z4 = (w,(h+p_t)/2) ;
+ draw z1--z2 ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+endchar;
+
+beginchar("@",l_h#,l_h#,0) ; "The at sign (@)" ;
+ uniarc(w/2,p_t,(w/2,h/2),0,240,10) ;
+ unicir(w/3,p_t,(2w/3,w/3),20) ;
+ pickup unipensqu ;
+ top rt z1 = (w,w/2) ; bot rt z2 = (w,0) ; draw z1--z2 ;
+ penlabels(1,2) ;
+endchar;
+
+beginchar("[",3p_t#,l_h#,p_d#) ; "The left bracket ([)" ;
+ uniend(p_t,(p_t,h-p_t),90,180,10) ;
+ uniend(p_t,(p_t,-d+p_t),180,270,20) ;
+ pickup unipensqu ;
+ top lft z1 = (p_t,h) ; top rt z2 = (w,h) ; draw z1--z2 ;
+ top lft z3 = (0,h-p_t) ; bot lft z4 = (0,-d+p_t) ; draw z3--z4 ;
+ bot lft z5 = (p_t,-d) ; bot rt z6 = (w,-d) ; draw z5--z6 ;
+ penlabels(range 1 thru 6) ;
+endchar;
+
+beginchar("]",3p_t#,l_h#,p_d#) ; "The right braket (])" ;
+ uniend(p_t,(w-p_t,h-p_t),0,90,10) ;
+ uniend(p_t,(w-p_t,-d+p_t),270,360,20) ;
+ pickup unipensqu ;
+ top lft z1 = (0,h) ; top rt z2 = (w-p_t,h) ; draw z1--z2 ;
+ top rt z3 = (w,h-p_t) ; bot rt z4 = (w,-d+p_t) ; draw z3--z4 ;
+ bot lft z5 = (0,-d) ; bot rt z6 = (w-p_t,-d) ; draw z5--z6 ;
+ penlabels(range 1 thru 6) ;
+endchar;
+
+beginchar("`",2P_T#,l_h#,0) ; "The reversed apostroph (`)" ;
+ uniend(w/2,(w/2,h-w),180,360,10) ;
+ z1 = (0,h) ; z2 = (0,h-w) ; z3 = (w,h-w) ; fill z1--z2--z3--cycle ;
+ penlabels(1,2,3) ;
+endchar;
+
+beginchar(hex"7B",m_w#,x_h#,0) ; "The en-dash (--)" ;
+ pickup unipensqu ;
+ lft z1 = (0,h/2) ; rt z2 = (w,h/2) ; draw z1--z2 ;
+ penlabels(1,2) ;
+endchar;
+
+beginchar(hex"7C",M_w#,x_h#,0) ; "The em-dash (---)" ;
+ pickup unipensqu ;
+ lft z1 = (0,h/2) ; rt z2 = (w,h/2) ; draw z1--z2 ;
+ penlabels(1,2) ;
+endchar;
+
+\endinput
+%%
+%% End of file `unipun.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/unispe.mf b/Master/texmf-dist/fonts/source/public/universa/unispe.mf
new file mode 100644
index 00000000000..8f728daa191
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/unispe.mf
@@ -0,0 +1,82 @@
+%%
+%% This is file `unispe.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `spe')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+beginchar(hex"10",p_t#,x_h#,0) ; "The dotless letter i" ;
+ pickup unipensqu ;
+ bot lft z1 = (0,0) ; top lft z2 = (0,h) ; draw z1--z2;
+ penlabels(1,2);
+endchar;
+
+beginchar(hex"11",p_t#,x_h#,p_d#) ; "The dotless letter j" ;
+ pickup unipensqu ;
+ bot lft z1 = (0,-d) ; top lft z2 = (0,h) ; draw z1--z2 ;
+ penlabels(1,2);
+endchar;
+
+beginchar("$",(l_h#-c_d#+p_t#)/2,l_h#,c_d#) ; "The dollar sign ($)" ;
+ uniarc(w/2,p_t,(w/2,w/2),180,450,10) ;
+ uniarc(w/2,p_t,(w/2,h-c_d-w/2),0,270,20) ;
+ pickup unipensqu ;
+ top z1 = (w/2,h) ; bot z2 = (w/2,-d) ; draw z1--z2 ;
+ penlabels(1,2) ;
+endchar;
+
+beginchar("&",(l_h#+p_t#)/2+c_d#,l_h#,c_d#) ; "The ampersand (&)" ;
+ rad := (w-c_d)/2 ;
+ unicir(rad,p_t,(rad,h-rad),10) ;
+ uniarc(rad,p_t,(rad,rad),0,270,20) ;
+ pickup unipensqu ;
+ lft bot z1 = (rad,0) ; rt bot z2 = (w,0) ; draw z1--z2 ;
+ rt top z3 = (w-c_d,rad) ; rt bot z4 = (w-c_d,-d) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+endchar;
+
+beginchar("?",l_h#-5c_d#/2,l_h#,0) ; "The question mark (?)" ;
+ temp := angle((P_T,-w/2)) - 0.01 ;
+ uniarc(w/2,P_T,(w/2,h-w/2),temp,180,10) ;
+ uniend(P_T,((w+P_T)/2,h-w),90,180,20) ;
+ uniend(P_T,((w+P_T)/2,h-w+P_T),270,360+temp,30) ;
+ pickup UniPensqu ;
+ top z1 = (w/2,h-w) ; bot z2 = (w/2,2P_T) ; draw z1--z2 ;
+ pickup UniPencir ;
+ bot z3 = (w/2,0) ; drawdot z3 ;
+ penlabels(1,2,3) ;
+endchar;
+
+beginchar(spanish_query,l_h#-5c_d#/2,x_h#,p_d#) ; "The Spanish query" ;
+ temp := angle((-P_T,w/2))-0.01 ;
+ uniarc(w/2,P_T,(w/2,-d+w/2),temp,360,10) ;
+ uniend(P_T,((w-P_T)/2,-d+w),270,360,20) ;
+ uniend(P_T,((w-P_T)/2,-d+w-P_T),90,temp,30) ;
+ pickup UniPensqu ;
+ bot z1 = (w/2,-d+w) ; top z2 = (w/2,h-2P_T) ; draw z1--z2 ;
+ pickup UniPencir ;
+ top z3 = (w/2,h) ; drawdot z3 ;
+ penlabels(1,2,3) ;
+endchar;
+
+beginchar(spanish_shriek,P_T#,x_h#,p_d#) ; "The Spanish shriek" ;
+ pickup UniPencir ; top z1 = (w/2,h) ; drawdot z1 ;
+ pickup UniPensqu ; top z2 = (w/2,h-2P_T) ; bot z3 = (w/2,-d) ;
+ draw z2--z3 ; penlabels(1,2,3) ;
+endchar;
+
+\endinput
+%%
+%% End of file `unispe.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/universa/uniupp.mf b/Master/texmf-dist/fonts/source/public/universa/uniupp.mf
new file mode 100644
index 00000000000..2890fa5557c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/universa/uniupp.mf
@@ -0,0 +1,264 @@
+%%
+%% This is file `uniupp.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% uni.dtx (with options: `upp')
+%%
+%% Copyright (C) 1998 Christian Holm.
+%%
+%% The universal font and package is distributed in the hope that
+%% it will be useful, but WITHOUT ANY WARRANTY; without even the
+%% implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+%% PURPOSE. See the GNU General Public License for more details.
+%%
+%% See the file uni.dtx for further comments and documentation.
+%%
+
+
+if not strict :
+
+ beginchar("A",A_w#,l_h#,0); "The letter A";
+ uniarc(w/2,P_t,(w/2,h-w/2),0,180,10);
+ pickup Unipensqu ;
+ top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ top rt z3 = (w,h-w/2) ; bot rt z4 = (w,0) ; draw z3--z4 ;
+ lft z5 = (0,h/2) ; rt z6 = (w,h/2) ; draw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+ endchar;
+
+ beginchar("B",A_w#,l_h#,0) ; "The letter B" ;
+ rad := 1/4(h+P_t) ;
+ uniarc(rad,P_t,(w-rad,h-rad),-90,90,10) ;
+ uniarc(rad,P_t,(w-rad,rad),-90,90,20) ;
+ uniend(P_t,(P_t,h-P_t),90,180,30) ;
+ uniend(P_t,(P_t,P_t),180,270,40) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h-P_t) ; bot lft z2 = (0,P_t) ; draw z1--z2 ;
+ top lft z3 = (P_t,h) ; top rt z4 = (w-rad,h) ; draw z3--z4 ;
+ lft z5 = (P_t,h/2) ; rt z6 = (w-rad,1/2h) ; draw z5--z6 ;
+ bot lft z7 = (P_t,0) ; bot rt z8 = (w-rad,0) ; draw z7--z8 ;
+ penlabels(range 1 thru 8);
+ endchar;
+
+ beginchar("C",l_h#*(1+cosd(30))/2,l_h#,0); "The letter C";
+ uniarc(h/2,P_t,(h/2,h/2),30,330,10);
+ endchar;
+
+ beginchar("D",A_w#,l_h#,0); "The letter D";
+ uniarc(1/2h,P_t,(w-1/2h,1/2h),-90,90,10);
+ uniend(P_t,(P_t,h-P_t),90,180,20);
+ uniend(P_t,(P_t,P_t),180,270,30);
+ pickup Unipensqu ;
+ top lft z1 = (0,h-P_t) ; bot lft z2 = (0,P_t) ; draw z1--z2 ;
+ top lft z3 = (P_t,h) ; top rt z4 = (w-1/2h,h) ; draw z3--z4 ;
+ bot lft z5 = (P_t,0) ; bot rt z6 = (w-1/2h,0) ; draw z5--z6 ;
+ penlabels(1,2) ;
+ endchar;
+
+ beginchar("E",A_w#,l_h#,0); "The letter E" ;
+ uniend(P_t,(P_t,h-P_t),90,180,10);
+ uniend(P_t,(P_t,P_t),180,270,20);
+ pickup Unipensqu ;
+ lft top z1 = (P_t,h) ; rt top z2 = (w,h) ; draw z1--z2 ;
+ lft z3 = (P_t,h/2) ; rt z4 = (w,h/2) ; draw z3--z4 ;
+ lft bot z5 = (P_t,0) ; rt bot z6 = (w,0) ; draw z5--z6 ;
+ lft top z7 = (0,h-P_t) ; lft bot z8 = (0,P_t) ; draw z7--z8 ;
+ penlabels(range 1 thru 8) ;
+ endchar;
+
+ beginchar("F",A_w#,l_h#,0); "The letter F" ;
+ uniend(P_t,(P_t,h-P_t),90,180,10);
+ pickup Unipensqu ;
+ lft top z1 = (P_t,h) ; rt top z2 = (w,h) ; draw z1--z2 ;
+ lft z3 = (P_t,h/2) ; rt z4 = (w,h/2) ; draw z3--z4 ;
+ lft top z5 = (0,h-P_t) ; lft bot z6 = (0,0) ; draw z5--z6 ;
+ penlabels(range 1 thru 8);
+ endchar;
+
+ beginchar("G",l_h#,l_h#,0); "The letter G" ;
+ uniarc(w/2,P_t,(w/2,h/2),30,360,10) ;
+ pickup Unipensqu ;
+ top rt z1 = (w,h/2) ; bot rt z2 = (w,0) ;
+ draw z1--z2;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("H",A_w#,l_h#,0); "The letter H" ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ top rt z3 = (w,h) ; bot rt z4 = (w,0) ; draw z3--z4 ;
+ lft z5 = (0,h/2) ; rt z6 = (w,h/2) ; draw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+ endchar;
+
+ beginchar("I",P_t#,l_h#,0); "The letter I" ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("J",P_t#+2C_d#,l_h#,0); "The letter J";
+ uniend(P_t,(w-P_t,P_t),270,360,10);
+ pickup Unipensqu ;
+ lft bot z1 = (0,0) ; rt bot z2 = (w-P_t,0) ; draw z1--z2 ;
+ rt bot z3 = (w,P_t) ; rt top z4 = (w,h) ; draw z3--z4 ;
+ penlabels(1,2,3,4);
+ endchar;
+
+ beginchar("K",(l_h#+3P_t#)/2,l_h#,0) ; "The letter K" ;
+ uniarc((h+P_t)/2,P_t,(P_t,h),270,360,10) ;
+ uniarc((h+P_t)/2,P_t,(P_t,0),0,90,20) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("L",P_t#+2C_d#,l_h#,0) ; "The letter L" ;
+ uniend(P_t,(P_t,P_t),180,270,10) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,P_t) ; draw z1--z2 ;
+ bot lft z3 = (P_t,0) ; bot rt z4 = (w,0) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar;
+
+ beginchar("M",M_w#,l_h#,0) ; "The letter M" ;
+ temp := .25*(w+P_t);
+ uniarc(temp,P_t,(temp,h-temp),0,180,10) ;
+ uniarc(temp,P_t,(w-temp,h-temp),0,180,20) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h-temp) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ top z3 = (w/2,h-temp) ; bot z4 = (w/2,0) ; draw z3--z4 ;
+ top rt z5 = (w,h-temp) ; bot rt z6 = (w,0) ; draw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+ endchar;
+
+ beginchar("N",A_w#,l_h#,0); "The letter N" ;
+ uniarc(w/2,P_t,(w/2,h-w/2),0,180,10) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h-w/2) ; bot lft z2 = (0,0); draw z1--z2 ;
+ top rt z3 = (w,h-w/2) ; bot rt z4 = (w,0) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar;
+
+ beginchar("O",l_h#,l_h#,0) ; "The letter O";
+ unicir(w/2,P_t,(w/2,h/2),10);
+ endchar;
+
+ beginchar("P",A_w#,l_h#,0) ; "The letter P";
+ unicir(w/2,P_t,(w/2,h-w/2),10)
+ pickup Unipensqu ;
+ lft top z1 = (0,h-w/2) ; lft bot z2 = (0,0) ; draw z1--z2 ;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("Q",l_h#,l_h#,p_d#) ; "The letter Q";
+ unicir(w/2,P_t,(w/2,w/2),10);
+ pickup Unipensqu ;
+ top z1 = (w/2,3P_t) ; bot z2 = (w/2,-d) ; draw z1--z2 ;
+ penlabels(1,2);
+ endchar;
+
+ beginchar("R",A_w#,l_h#,0) ; "The letter R";
+ unicir(w/2,P_t,(w/2,h-w/2),10) ;
+ rad := h-w+P_t ;
+ uniarc(rad,P_t,(w-rad,0),0,90,20) ;
+ pickup Unipensqu ;
+ lft top z1 = (0,h-w/2) ; bot lft z2 = (0,0) ; draw z1--z2 ;
+ temp := w/2-rad ;
+ if temp>0 :
+ pickup pensquare xscaled temp yscaled P_t ;
+ lft top z3 = (1/2w,rad) ; drawdot z3 ;
+ fi;
+ penlabels(1,2,3) ;
+ endchar;
+
+ beginchar("S",A_w#,l_h#,0) ; "The letter S" ;
+ temp := (h+P_t)/4 ;
+ uniarc(temp,P_t,(temp,temp),180,270,10) ;
+ uniarc(temp,P_t,(w-temp,temp),270,450,20) ;
+ uniarc(temp,P_t,(temp,h-temp),90,270,30) ;
+ uniarc(temp,P_t,(w-temp,h-temp),0,90,40) ;
+ pickup Unipensqu ;
+ bot lft z1 = (temp,0) ; bot rt z2 = (w-temp,0) ; draw z1--z2 ;
+ lft z3 = (temp,h/2) ; rt z4 = (w-temp,h/2) ; draw z3--z4 ;
+ top lft z5 = (temp,h) ; top rt z6 = (w-temp,h) ; draw z5--z6 ;
+ penlabels(1,2,3,4,5,6) ;
+ endchar;
+
+ beginchar("T",A_w#,l_h#,0); "The letter T" ;
+ pickup Unipensqu ;
+ top z1 = (w/2,h) ; bot z2 = (w/2,0) ; draw z1--z2 ;
+ top lft z3 = (0,h) ; top rt z4 = (w,h) ; draw z3--z4 ;
+ penlabels(1,2,3,4);
+ endchar;
+
+ beginchar("U",A_w#,l_h#,0); "The letter U" ;
+ uniarc(w/2,P_t,(w/2,w/2),180,360,10) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,w/2) ; draw z1--z2 ;
+ top rt z3 = (w,h) ; bot rt z4 = (w,w/2) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar;
+
+ beginchar("V",A_w#,l_h#,0); "The letter V" ;
+ unilne(P_t,(0,h),(w/2,P_t),1,1,10);
+ unilne(P_t,(w/2,P_t),(w,h),1,1,20);
+ uniarc(P_t,P_t,(w/2,P_t),180,360,30);
+ endchar;
+
+ beginchar("W",M_w#,l_h#,0) ; "The letter W" ;
+ temp := .25*(w+P_t);
+ uniarc(temp,P_t,(temp,temp),180,360,10) ;
+ uniarc(temp,P_t,(w-temp,temp),180,360,20) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h) ; bot lft z2 = (0,temp) ; draw z1--z2 ;
+ top z3 = (w/2,h) ; bot z4 = (w/2,temp) ; draw z3--z4 ;
+ top rt z5 = (w,h) ; bot rt z6 = (w,temp) ; draw z5--z6 ;
+ penlabels(1,2,3,4,5,6);
+ endchar;
+
+ beginchar("X",l_h#,l_h#,0) ; "The letter X" ;
+ uniarc(h/2,P_t,(P_t/2,h/2),270,90,10);
+ uniarc(h/2,P_t,(w-P_t/2,h/2),90,270,20);
+ temp := (h-w+P_t)/2 ;
+ pickup pensquare xscaled temp yscaled P_t slanted slantratio ;
+ lft top z1 = (0,h) ; draw z1 ;
+ lft bot z2 = (0,0) ; draw z2 ;
+ rt top z3 = (w,h) ; draw z3 ;
+ rt bot z4 = (w,0) ; draw z4 ;
+ penlabels(1,2,3,4);
+ endchar;
+
+ beginchar("Y",A_w#,l_h#,0); "The letter Y" ;
+ uniarc(w/2,P_t,(w/2,h-P_t),180,360,10) ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h) ; drawdot z1 ;
+ top rt z2 = (w,h) ; drawdot z2 ;
+ top z3 = (w/2,h-w/2) ; bot z4 = (w/2,0) ; draw z3--z4 ;
+ penlabels(1,2,3,4) ;
+ endchar;
+
+ beginchar("Z",A_w#,l_h#,0) ; "The letter Z" ;
+ pickup Unipensqu ;
+ top lft z1 = (0,h) ; top rt z2 = (w-P_t,h) ; draw z1--z2 ;
+ bot lft z3 = (P_t,0) ; bot rt z4 = (w,0) ; draw z3--z4 ;
+ phi := angle((w,h-P_t)-(0,P_t)) ;
+ z5 = (P_t,P_t) ; z6 = z5 + P_t*(-sind(phi),cosd(phi)) ;
+ z7 = (w-P_t,h-P_t) ; z8 = z7 + P_t*(sind(phi),-cosd(phi)) ;
+ uniend(P_t,z5,90+phi,270,10);
+ uniend(P_t,z7,-90+phi,90,20);
+ fill z5--z6--z7--z8--cycle ;
+ penlabels(range 1 thru 8);
+ endchar;
+
+else :
+ code_offset := ASCII"A" - ASCII"a" ;
+ input unilow ;
+ code_offset := 0 ;
+fi ;
+
+\endinput
+%%
+%% End of file `uniupp.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/wasy/lasychr.mf b/Master/texmf-dist/fonts/source/public/wasy/lasychr.mf
new file mode 100644
index 00000000000..0c94770291e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/lasychr.mf
@@ -0,0 +1,388 @@
+%
+% Copyright, The LaTeX Project and Roland Waldi, 1992.
+%
+% These characters are taken from LASY.MF from the LaTeX project with minor
+% changes and extensions (so 100% compatible). LASY.MF is part of the
+% "LaTeX fonts" package which is usually part of every LaTeX system. It
+% is also available at the URL
+% ftp://ftp.dante.de/tex-archive/fonts/latex/
+%
+% Permission is granted without fee to use, modify and distribute this
+% file, but you are not allowed to distribute this file or any files
+% derived from it using the name LASY.MF.
+%
+
+cmchar "Leftward arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(hex"28",6u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,0); pos4(bar,0);
+y0=math_axis; lft x0=hround u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t[]; path p[];
+(t1,t2)=(z4r{z9-z4}..z6r) intersectiontimes (z3r{z9-z3}..z5r);
+z10=(z4r{z9-z4}..z6r) intersectionpoint (z3r{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4l--subpath (0,t1) of (z4r{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle;
+ % arrowhead
+penlabels(0,3,4,5,6,9,10); endchar;
+
+% This character is an alteration of the leftward arrow
+% The tip of the arrowhead rests one unit from left edge, same as left arrow
+% Changes:
+% 1) deletion of the stem ... points z1,z2 etc
+% The rest of the numbers stay the same, for any referencing
+% 2) new intersectinpoint z10 is introduced and path slightly altered
+% 3) name, code number and width changed, otherwise essentially the same
+
+
+
+cmchar "Rightward arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(hex"29",6u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,0); pos4(bar,0);
+y0=math_axis; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t[]; path p[];
+(t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r);
+z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle;
+ % arrowhead
+penlabels(0,3,4,5,6,9,10); endchar;
+
+% This character is an alteration of the rightward arrow
+% The tip of the arrowhead rests one unit from right edge, same as right arrow
+% Changes:
+% 1) deletion of the stem ... points z1,z2 etc
+% The rest of the numbers stay the same, for any referencing
+% 2) new intersectinpoint z10 is introduced and path slightly altered
+% 3) name, code number and width changed, otherwise essentially the same
+
+
+
+cmchar "Upward arrowhead";
+beginchar(hex"2A",9u#,asc_height#,asc_depth#);
+italcorr .76asc_height#*slant+.5crisp#-u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,90); pos4(bar,90);
+top z0=(.5w,0); x0-x3=x4-x0=3u+eps;
+y3=y4=y0-.24asc_height-eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t[]; path p[];
+(t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r);
+z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle;
+ % arrowhead
+penlabels(0,3,4,5,6,9,10); endchar;
+
+% This character is an alteration of the upward arrow
+% The tip of the arrowhead rests on the baseline for reference
+% Changes:
+% 1) deletion of the stem ... points z1,z2 etc
+% The rest of the numbers stay the same, for any referencing
+% 2) point z0 is moved down from the ascender line; the tip touches
+% the baseline
+% 3) new intersectinpoint z10 is introduced and path slightly altered
+% 4) name and code number changed, otherwise essentially the same
+
+
+
+cmchar "Downward arrowhead";
+beginchar(hex"2B",9u#,asc_height#,asc_depth#);
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,90); pos4(bar,90);
+bot z0=(.5w,0); x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0]; % z9 iintroduces curve to arrowhead
+numeric t[]; path p[]; % rather direction{z9-z4} does this
+(t1,t2)=(z4r{z9-z4}..z6r) intersectiontimes (z3r{z9-z3}..z5r);
+z10=(z4r{z9-z4}..z6r) intersectionpoint (z3r{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4l--subpath (0,t1) of (z4r{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle;
+ % arrowhead
+penlabels(0,3,4,5,6,9,10); endchar;
+
+% This character is an alteration of the downward arrow
+% The tip of the arrowhead rests on the baseline for reference
+% Changes:
+% 1) deletion of the stem ... points z1,z2 etc
+% The rest of the numbers stay the same, for any referencing
+% 2) point z0 is moved up from the descender line to rest on the baseline
+% 3) new intersectinpoint z10 is introduced and path slightly altered
+% 4) name and code number changed, otherwise essentially the same
+
+
+cmchar "Upside-down Uppercase Greek Omega";
+beginchar(hex"30",13u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#; %italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,-90); pos2(cap_curve,0);
+pos3(vair,0); pos4(cap_curve,180); pos5(vair,180);
+x1=.5w; bot y1r=0-o; lft x4r=hround u; y2=y4=1/3h; x2=w-x4;
+rt x5l=hround(1/3(w+.5u)+.5hair); top y3=top y5=h; x3=w-x5;
+filldraw stroke z3e{down}...{down}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{up}...{up}z5e; % bowl
+numeric arm_thickness; path p; p=z3{down}...{down}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,90); pos7(fudged.hair,0);
+top y6r=h; x6=x3; rt x7r=hround (w-.8u); y7=good.y(y6l-.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w+h,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,1.2beak_jut); % right arm and beak
+pos8(arm_thickness,90); pos9(fudged.hair,180);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,-1.2beak_jut); % left arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+% This character is taken from the Upper Case Omega of cmr
+% Directions and reference points are reversed and flipped
+% pos angles are flipped by 180 degrees
+% vertical values are reversed, up/down directions in the
+% filldraw stroke are reversed
+% left strokes same, but changes reference points
+% italic correction based on furthest pont of character , so made it
+% full cap_height minus amount for the beak, taken from the cap XI
+% I suppose a transformation of paths would have worked also, but this
+% way, limits are maintained better, i think
+% w+h instead of just w in intersection to make sure paths do intersect
+
+cmchar "Square subset sign";
+compute_spread(5/4x_height#,3/2x_height#); % the spread of `$=$'
+beginchar(hex"3C",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround(1.5u+oo); x1=x4=hround(w-1.5u)+eps; x3=x2;
+y1-y4=spread; y2=y1; y3=y4; y1=math_axis+.5spread;
+draw z1--z2--z3--z4; % bars and stem
+labels(1,2,3,4); endchar;
+
+% This character is an alteration of the square subset or equal to sign
+% Changes:
+% 1) changed position of y1 to be .5 of the spread above the math_axis
+% 2) got rid of lower bar (points z8/z9,etc) and the extra spread#' amount
+% which was used in calculations for the lower bar
+% 3) name and code number and height changed, otherwise essentially the same
+
+cmchar "Square superset sign";
+compute_spread(5/4x_height#,3/2x_height#); % the spread of `$=$'
+beginchar(hex"3D",14u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+x1=x4=hround 1.5u-eps; rt x2=hround(w-1.5u-oo); x3=x2;
+y1-y4=spread; y2=y1; y3=y4; y1=math_axis+.5spread;
+draw z1--z2--z3--z4; % bars and stem
+labels(1,2,3,4); endchar;
+
+% This character is an alteration of the square superset or equal to sign
+% Changes:
+% 1) changed position of y1 to be .5 of the spread above the math_axis
+% 2) got rid of lower bar (points z8/z9,etc) and the extra spread#' amount
+% which was used in calculations for the lower bar
+% 3) name and code number and height changed, otherwise essentially the same
+
+cmchar "Diamond";
+%beginchar(oct"063",2(.85asc_height#-math_axis#)+2u#,v_center(7u#));
+beginchar(hex"33",2(.85asc_height#-math_axis#)+2u#,
+ v_center(2(.85asc_height#-math_axis#)));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=.85asc_height-math_axis;
+x4=x8=good.x .5w; w:=r:=2x4; rt x2=w-lft x6=good.x(x4+a);
+y2=y6=.5[y4,y8]=.5cap_height; top y8=good.y(y2+a);
+draw z2--z4--z6--z8--cycle;
+labels(2,4,6,8); endchar;
+
+% This character is an alteration of the diamond operator
+% The four tips are equidistant from the center point (.5w,math_axis),
+% this distance being half of the cap height
+% and related to that in the square character
+% slightly less though, since it looks too big if the actually have same
+% length
+% Changes:
+% 1) To the amount a, which gives the distance of the tips from the center
+% 2) The width is related to the asc_height, so it changes with it
+% 3) name and code number and width changed, otherwise essentially the same
+% The numbers stay the same, for any referencing
+
+cmchar "Bowtie operator";
+beginchar(hex"31",13u#,v_center(7u#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=round(1.1*math_axis);
+x1=x4=good.x 1.5u; x2=x3=w-x1;
+y1=y2=good.y(.5(cap_height-2a)); y3=y4=y1+2a;
+draw z1--z3--z2--z4--cycle;
+labels(1,2,3,4); endchar;
+
+% Arbitrary width given
+% Length of the bars at the edges are 2.2*math_axis length
+% and it's vertically aligned on the high, i.e., .5 cap height as opposed
+% to being aligned on the math axis
+
+
+
+
+cmchar "Leads to character extension";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(hex"3A",12u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=round(.45math_axis);
+y11=y13=y15=math_axis; y12-a=y14+a=good.y math_axis;
+x11=0; x15=w; x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15];
+path p; p=z12{right}...z13...z14{right};
+draw z11{dir(-angle direction 1 of p)}...z12{right}...z13...
+ z14{right}...z15{dir(-angle direction 1 of p)};
+penlabels(11,12,13,14,15); endchar;
+
+% This character is an extension to fit with the Leads to character with
+% arrowhead
+% This character goes from edge to edge and a series of these can be linked
+% as desired.
+% It has 2/3 the width of that character, and if this relation is kept, the
+% the curves should all match
+
+
+
+cmchar "Leads to character with arrowhead";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(hex"3B",18u#,v_center(spread#+rule_thickness#));
+adjust_fit(0,0); pickup crisp.nib;
+pos3(bar,0); pos4(bar,0);
+y0=math_axis; rt x0=hround(w-u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t[]; path p[];
+(t1,t2)=(z4l{z9-z4}..z6r) intersectiontimes (z3l{z9-z3}..z5r);
+z10=(z4l{z9-z4}..z6r) intersectionpoint (z3l{z9-z3}..z5r);
+filldraw z0..{z4-z9}z4r--subpath (0,t1) of (z4l{z9-z4}..z6r)
+ --z10--subpath (t2,0) of (z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle;
+ % arrowhead
+pickup rule.nib;
+numeric a; a=round(.45math_axis);
+y11=y13=y15=y16=y0; y12-a=y14+a=good.y math_axis;
+%x11=0; x15=2/3w; z17=lft z10;
+%x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15]; x16=.3[x15,x0];
+x11=0; x15=0.7w; z17=lft z10;
+x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15]; x16=.5[x15,x0];
+path p; p=z12{right}...z13...z14{right};
+draw z11{dir(-angle direction 1 of p)}...
+ z12{right}...z13...z14{right}...z16{right}...z17;
+penlabels(0,3,4,5,6,9,10,11,12,13,14,15,16); endchar;
+
+% This character uses the rightward arrow arrowhead
+% The width is the same as that of the regular arrow
+% An extension character can be added for longer squiggles
+
+
+cmchar "LASY \lhd triangle";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(1,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+% taken directly from CMR "less than" character
+% the path was closed to make a triangle
+
+cmchar "black LASY \lhd triangle";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(16,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup crisp.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+filldraw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+
+cmchar "LASY \unlhd triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(2,14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3--cycle; % triangle
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+% taken directly from CMR "less than or equal to sign"
+% the "less than" path was closed to make a triangle
+
+
+
+cmchar "LASY \rhd triangle";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(3,14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+% taken directly from CMR "greater than" character
+% the path was closed to make a triangle
+
+cmchar "black LASY \rhd triangle";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(17,14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup crisp.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+filldraw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+cmchar "LASY \unrhd triangle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(4,14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; x3=x1;
+y1-y3=spread; y2=.5[y1,y3]; top y1=h;
+draw z1--z2--z3--cycle; % triangle
+x8=x1; x9=x2; y8=y9; y3-y9=spread'; draw z8--z9; % bar
+labels(1,2,3,8,9); endchar;
+
+% taken directly from CMR "greater than or equal to sign"
+% the "greater than" path was closed to make a triangle
+
+cmchar "upwards pointing black triangle";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(hex"4B",spread#+rule_thickness#,v_center(11u#));
+italcorr 0;
+adjust_fit(0,0); pickup crisp.nib;
+top y2= h+eps; y1=y3; y2-y1 = vround (h+d);
+x1-x3=spread; x2=.5[x1,x3]=good.x .5w;
+filldraw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
+cmchar "downwards pointing black triangle";
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(hex"4C",spread#+rule_thickness#,v_center(11u#));
+italcorr 0;
+adjust_fit(0,0); pickup crisp.nib;
+bot y2= (-d)-eps; y1=y3; y1-y2 = vround (h+d);
+x1-x3=spread; x2=.5[x1,x3]=good.x .5w;
+filldraw z1--z2--z3--cycle; % triangle
+labels(1,2,3); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/wasy/rsym.mf b/Master/texmf-dist/fonts/source/public/wasy/rsym.mf
new file mode 100644
index 00000000000..1d1a4c1f736
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/rsym.mf
@@ -0,0 +1,1732 @@
+% This is RSYM.MF in text format, version 1.1
+
+cmchar "therefore";
+beginchar(hex"05",12u#,x_height#,0);
+italcorr 0;
+adjust_fit(0,0); pickup fine.nib;
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+pos1(dot_diam,0); pos2(dot_diam,90);
+pos3(dot_diam,0); pos4(dot_diam,90);
+pos5(dot_diam,0); pos6(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); y1+.5dot_diam=vround(x_height+.5dot_diam);
+x1=.5[x3,x5]; y3=y5; bot y4l=0;
+sqrt3 * (x5-x3) = 2(y1-y4);
+z1=z2; dot(1,2); % dots
+z3=z4; dot(3,4);
+z5=z6; dot(5,6);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "pointer";
+beginchar(hex"09",9u#,fig_height#,0);
+italcorr 0;
+adjust_fit(0,0); pickup rule.nib;
+lft x1 = hround .5u;
+rt x4 = hround (w-.6u);
+x7=x1; x2=x3=x5=x6=.5[x1,x4];
+(top y5) - (bot y3) = h;
+y5-y6 = y2-y3 = vround .3h;
+y4=good.y .5[-d,h]=.5[y3,y5];
+y1=y2; y7=y6;
+draw z1--z2--z3--z4--z5--z6--z7--cycle;
+labels(1,2,3,4,5,6,7); endchar;
+
+cmchar "lightning";
+beginchar(hex"12",8u#,asc_height#,.5desc_depth#);
+italcorr 0;
+adjust_fit(0,0); pickup rule.nib;
+x1 = .5w; x3 = w-u; x2 = u; x5 = .5w - u;
+top y1 = h; bot y5 = -d; y2=y3=.5[y4,y1]; z4=1/5[z5,z3];
+z6 = 2[z5,z4] = .5[z7,z8]; y8 = y6; x8-x7 = .5(x3-x2);
+x5'=.5[x4,x5]; y5'=y5;
+draw z1--z2--z3--z4;
+filldraw z5'--z7--z8--cycle;
+labels(1,2,3,4,5,6,7); endchar;
+
+cmchar "inverse logical not sign";
+beginchar(hex"18",12u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(if monospace: -1.5u#,-1.5u# else: 0,0 fi); pickup rule.nib;
+lft x2=hround u-eps; x3=w-x2; x1=x2;
+y2=y3=good.y .5[bar_height,h]; y3-y1=1.2(h-bar_height);
+draw z1--z2--z3; % bar and stem
+labels(1,2,3); endchar;
+
+cmchar "aries";
+beginchar(hex"17",asc_height#+2u#,asc_height#,0);
+italcorr 2/3asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+y1=y6; y2-y1=x2-x1; top y2 = h+oo; y5=y2; bot y4 = 0-oo;
+y3=.85[y4,y1];
+x3-x1 = x6-x3 = 1/2h; x3 = x4 = good.x .5w;
+x2=.5[x1,x3]; x5=.5[x3,x6];
+draw z1{dir 100}..z2..z3---z4 & z4---z3..z5..{dir -100}z6;
+labels(1,2,3); endchar;
+
+cmchar "taurus";
+beginchar(hex"5D",asc_height#+2u#,asc_height#,0);
+italcorr .7asc_height#*slant;
+adjust_fit(0,0);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; y8-y4=x2-x6=2/3h; y2=good.y .34h;
+circle_points;
+draw_circle;
+x2'=x2; x6'=x6; y2'=y6'=h;
+x8'=x4; y8'=2h;
+draw z2'{z2'-z8'}..z8..{z8'-z6'}z6';
+labels(1,2,3,4,5,6,7,8);
+labels(2',6',8'); endchar;
+
+cmchar "gemini";
+beginchar(hex"5E",asc_height#+2u#,asc_height#,0);
+italcorr 2/3asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+top y2 = h+u; bot y1 = 0-u; y4 = y1; y3 = y2;
+x1 = x2 = u; x3 = x4 = w-u;
+bot y5 = 1/18h; top y6 = 17/18h; y8 = y5; y7 = y6;
+x5 = x6 = 1/3w; x7 = x8 = 2/3w;
+draw z5--z6;
+draw z7--z8;
+draw z1..z5..z8..z4;
+draw z2..z6..z7..z3;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "capricorn";
+beginchar(hex"64",asc_height#+2u#,asc_height#,0);
+italcorr 2/3asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+top y1 = h; x1 = hround u;
+y2 = y1; x2 = hround (w-u);
+x3 = 0.42w; y3 = 0.60h;
+x4 = 0.60w; bot y4 = 0;
+x5 = x2 + oo; y5 = 0.28h;
+x6 = x1; y6 = 0.35h;
+draw z1--z2{dir 200}..z3..z4..z5..z3..z6;
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "pisces";
+beginchar(hex"66",asc_height#+2u#,asc_height#,0);
+italcorr 2/3asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+top y2 = h; bot y1 = 0; y4 = y1; y3 = y2;
+y2 - y5 = y5 - y1; y6 = y5;
+x5 = 1/3w; x5-x1 = x3-x6;
+x1 = x2 = hround u; x3 = x4 = hround w-u;
+draw z5--z6;
+draw z1..z5..z2;
+draw z3..z6..z4;
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "virgo";
+beginchar(hex"60",1.5asc_height#+2u#,asc_height#,desc_depth#);
+italcorr .7asc_height#*slant;
+adjust_fit(0,0);
+pickup rule.nib; autorounded;
+top y1 = h; x1 = hround u;
+bot y2 = 0; x2 = hround u + (w-2u)/7;
+y4-y3 = x3-x1; x3=x2;
+y4=y7=y10=y1; x4-x3=x5-x4=x7-x5=x8-x7=x10-x8=0.77(x11-x10)=x3-x1;
+x5=x6; x8=x9;
+y5=y8=y11=y3;
+y6=y9=y2;
+x9'=x9+1/4(x11-x9);
+y9'=y9+2/3(y12-y9);
+bot y12 = -d; x12-x6 = x9-x12;
+draw z1{right}..{down}z3--z2--z3..z4..z5--z6--z5..z7..z8--z9{down}..z9';
+draw z9--z8..z10..z11{down}..z12;
+labels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+cmchar "scorpio";
+beginchar(hex"62",1.5asc_height#+2u#,asc_height#,desc_depth#);
+italcorr .7asc_height#*slant;
+adjust_fit(0,0);
+pickup rule.nib; autorounded;
+top y1 = h; x1 = hround u;
+bot y2 = 0; x2 = hround u + (w-2u)/7;
+y4-y3 = x3-x1; x3=x2;
+y4=y7=y10=y1; x4-x3=x5-x4=x7-x5=x8-x7=x10-x8=0.77(x11-x10)=x3-x1;
+x5=x6; x8=x9;
+y5=y8=y3;
+y6=y9=y11=y2;
+x12=x11; y12=y11-2u;
+x13=x11-2u; y13=y11;
+draw z1{right}..{down}z3--z2--z3..z4..z5--z6--z5..z7..z8
+ --z9{down}..{dir 45}z11;
+draw z12--z11--z13;
+labels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+
+cmchar "cancer";
+beginchar(hex"5F",1.3asc_height#+2u#,asc_height#,0);
+italcorr .7asc_height#*slant;
+adjust_fit(0,0);
+pickup rule.nib; autorounded;
+y6 = 0.5h; x6 = hround u; x2-x6 = y8-y4 = 0.35h;
+circle_points;
+y1'=y1; y2'=y2; y3'=y3; y4'=y4; y5'=y5; y6'=y6; y7'=y7; y8'=y8;
+x6'= hround (w-u);
+x9 = hround (0.55w); top y9 = h; bot y9' = 0;
+x10 = hround (w-u-1/7h); y10-y8' = 1/7h; y4-y10' = 1/7h;
+x2'-x6'=x6-x2; x3'-x6'=x6-x3; x4'-x6'=x6-x4; x5'-x6'=x6-x5;
+x1'-x6'=x6-x1; x7'-x6'=x6-x7; x8'-x6'=x6-x8; x9'-x6'=x6-x9;
+x10'-x6'=x6-x10;
+draw z6{up}...z7{z8-z6}
+ ...z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}..z9{right}..z10;
+draw z6'{down}...z5'{z4'-z6'}
+ ...z4'{left}...z3'{z2'-z4'}...z2'{up}...z1'{z8'-z2'}...z8'{right}
+ ...z7'{z6'-z8'}...z6'{down}..z9'{left}..z10';
+labels(1,2,3,4,5,6,7,8,9,10);
+labels(1',2',3',4',5',6',7',8',9',10');
+endchar;
+
+cmchar "libra";
+beginchar(hex"61",1.5asc_height#+2u#,0.75asc_height#,0);
+italcorr .7asc_height#*slant;
+adjust_fit(0,0);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; y8-y4=x2-x6=.5w-2u; bot y4 = 0;
+circle_points;
+top y6' = bot y6; x6' = x6;
+top y2' = bot y2; x2' = x2;
+y9 = y10 = y2'; x10-x9 = w-2u; x10-x4 = x4-x9;
+y11 = y12 = y4; x11=x9; x12=x10;
+draw z11--z12;
+draw z9--z6'{dir 95}..z7..z8..z1..{dir -95}z2'--z10;
+labels(1,2',3,4,5,6',7,8,9,10,11,12);
+endchar;
+
+cmchar "aquarius";
+beginchar(hex"65",1.5asc_height#+2u#,x_height#,0);
+italcorr .7asc_height#*slant;
+adjust_fit(0,0);
+pickup rule.nib; autorounded;
+x1 = hround u; x6 = hround (w-u);
+x2-x1 = x3-x2 = x4-x3 = x5-x4 = x6-x5;
+top y2 = h; y2=y4=y6;
+bot y1 = 0.55h; y1=y3=y5;
+x1'=x1;x2'=x2;x3'=x3;x4'=x4;x5'=x5;x6'=x6;
+bot y1' = 0; y1'=y3'=y5';
+y2'-y1' = y2-y1; y2'=y4'=y6';
+draw z1..z2..z3..z4..z5..z6;
+draw z1'..z2'..z3'..z4'..z5'..z6';
+labels(1,2.3,4,5,6);
+labels(1',2',3',4',5',6');
+endchar;
+
+cmchar "sun";
+beginchar(hex"2E",asc_height#+2u#,asc_height#,0);
+italcorr .5asc_height#*slant;
+adjust_fit(0,0);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; y8-y4=x2-x6=3/5h; y2=good.y .5h;
+circle_points;
+z1'=4/3[z5,z1];
+z2'=4/3[z6,z2];
+z3'=4/3[z7,z3];
+z4'=4/3[z8,z4];
+z5'=4/3[z1,z5];
+z6'=4/3[z2,z6];
+z7'=4/3[z3,z7];
+z8'=4/3[z4,z8];
+draw_circle;
+for n=1 upto 8: draw z[n]--z[n]'; endfor
+labels(1,2,3,4,5,6,7,8);
+labels(1',2',3',4',5',6',7',8'); endchar;
+
+cmchar "check";
+beginchar(8,.90*asc_height#+2u#,asc_height#,0);
+italcorr asc_height#*slant - .5u#;
+adjust_fit(0,0); pickup crisp.nib;
+x1=u; x2=x1+.26h; x3=x2+.65h;
+y1=.35h; bot y2=0; top y3l=h-eps;
+pos1(hair,45); pos2(stem,0); pos3(hair,-45);
+filldraw stroke z1e{(1,-1)}..z2e;
+filldraw stroke z2e..{(1,1)}z3e;
+penlabels(1,2,3); endchar;
+
+cmchar "bell";
+beginchar(10,1.7math_axis#+u#,1.9math_axis#,0);
+italcorr u#*slant + .5u#;
+adjust_fit(0,0); pickup crisp.nib;
+x11=good.x u; x14 = good.x .5w; x17-x14=x14-x11;
+x12=x11; x16=x17; x13=1/3[x12,x14]; x15=1/3[x16,x14];
+bot y11=1.5u; y17=y11; y12=y11+stem; y16=y12;
+top y14=h; y13=y15=.5[y12,y14];
+filldraw z11--z12{right}..z13..z14{right}..z15..{right}z16--z17--cycle;
+x1=x3=x14; y1-y3=x2-x4=1.6u; x1=.5[x2,x4]; y4=y2=.5[y1,y3]=good.y .8u;
+filldraw z1..z2..z3..z4..cycle;
+labels(1,2,3,4,11,12,13,14,15,16,17); endchar;
+
+cmchar "1/8 note";
+beginchar(11,10u#,asc_height#,0);
+italcorr 1/3asc_height#*slant;
+adjust_fit(0,0); pickup crisp.nib;
+lft x1=u; rt x3r=.5w; rt x7r = w-u;
+x5=x5'=x3; x7'=x7; x2=x4=.5[x1,x3r];
+bot y2=0; top y4=3u; y1=y3=.5[y2,y4];
+top y5=h; y7=1/3h; z6=.5[z5,z7];
+pos3(hair,0); pos5(hair,0); pos7(hair,0);
+pos5'(hair,0); pos7'(hair,0);
+y5-y5'=y7'-y7=1.0u;
+pos6(2u,45);
+filldraw z1..z2..z3r..z4..cycle; % corpus
+filldraw stroke z3e--z5e; % beam
+filldraw stroke z5'e{down}...z6e...{down}z7'e--z7e; % flag
+penlabels(3,5,5',6,7,7'); labels(1,2,4); endchar;
+
+cmchar "1/4 note";
+beginchar(12,6u#,asc_height#,0);
+italcorr 1/3asc_height#*slant;
+adjust_fit(0,0); pickup crisp.nib;
+lft x1=u; rt x3r=w-u;
+x5=x3; x2=x4=.5[x1,x3r];
+bot y2=0; top y4=3u; y1=y3=.5[y2,y4];
+top y5=h;
+pos3(hair,0); pos5(hair,0);
+filldraw z1..z2..z3r..z4..cycle; % corpus
+filldraw stroke z3e--z5e; % beam
+penlabels(3,5); labels(1,2,4); endchar;
+
+cmchar "1/2 note";
+beginchar(13,6u#,asc_height#,0);
+italcorr 1/3asc_height#*slant;
+adjust_fit(0,0); pickup crisp.nib;
+.5[x1,x3] = good.x .5w; x3r-x1r=4u;
+x5=x3; x2=x4=.5[x1,x3];
+bot y2=0; top y4=3u; y1=y3=.5[y2,y4];
+top y5=h;
+pos1(hair,180); pos3(hair,0); pos5(hair,0);
+pos2(2hair,-90); pos4(2hair,90);
+penstroke z1e..z2e..z3e..z4e..cycle; % corpus
+filldraw stroke z3e--z5e; % beam
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "1/1 note";
+beginchar(14,7u#,3.5u#,0.5u#);
+italcorr 1/3asc_height#*slant;
+adjust_fit(0,0); pickup crisp.nib;
+.5[x1,x3] = good.x .5w; x3r-x1r=5u;
+x2=x4=.5[x1,x3];
+y4r-y2r=vround h+eps; y1=y3=.5[y2,y4]=good.y .5(h-d);
+pos1(2.5hair,180); pos3(2.5hair,0);
+pos2(vair,-90); pos4(vair,90);
+penstroke z1e..z2e..z3e..z4e..cycle; % corpus
+penlabels(1,2,3,4); endchar;
+
+cmchar "2 1/8 notes";
+beginchar(15,13u#,asc_height#,0);
+italcorr 1/3asc_height#*slant;
+adjust_fit(0,0); pickup crisp.nib;
+lft x1=u; x3=x1+4u;
+x5=x3; x2=x4=.5[x1,x3r];
+bot y2=.2h; top y4=y2+3u; y1=y3=.5[y2,y4];
+top y5=h;
+x1'=x3'-4u; rt x3'r=w-u;
+x5'=x3'; x2'=x4'=.5[x1',x3'r];
+bot y2'=0; top y4'=3u; y1'=y3'=.5[y2',y4'];
+top y5'=.8h;
+pos3(hair,0); pos5(hair,0);
+pos3'(hair,0); pos5'(hair,0);
+pos6(3hair,-90); pos6'(3hair,-90);
+x6=x5l; x6'=x5'r;
+y6'l=y5'; y6l=y5 + (hair/(x6'-x6))*(y5-y5') + eps;
+filldraw z1..z2..z3r..z4..cycle; % corpus 1
+filldraw z1'..z2'..z3'r..z4'..cycle; % corpus 2
+filldraw stroke z3e--z5e; % beam 1
+filldraw stroke z3'e--z5'e; % beam 2
+filldraw stroke z6e--z6'e; % bar
+penlabels(3,5,6,7); labels(1,2,4); endchar;
+
+cmchar "female";
+beginchar(hex"19",x_height#+2u#,1.7x_height#-desc_depth#,desc_depth#);
+italcorr 1/2x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x8=good.x (.5x_height + u);
+y6 = good.y (h-.5x_height); y8-y4=x2-x6;
+circle_points;
+x9 := x8;
+numeric a; a = round .5(h+d-x_height) + eps;
+x10=x8-a;
+x11=x8+a;
+y10 = y11; y11 = -d+a;
+y9 = -desc_depth;
+draw_circle;
+draw z10--z11; draw z4--z9;
+math_fit(0,ic#);
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "earth";
+beginchar(hex"26",x_height#+2u#,1.7x_height#,0);
+italcorr 1/2x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x8=good.x (.5x_height + u);
+y6 = good.y .5x_height; y8-y4=x2-x6;
+circle_points;
+x9 := x8;
+numeric a; a = round .5(h-x_height) + eps;
+x10=x8-a;
+x11=x8+a;
+y10 = y11 = h-a;
+y9 = h;
+draw_circle;
+draw z10--z11; draw z8--z9;
+math_fit(0,ic#);
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Uranus";
+beginchar(hex"5A",x_height#+2u#,v_center(1.7x_height#));
+italcorr 1/2x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x12 = x8 = good.x (.5x_height + u);
+y12 = y6 = good.y (.5x_height-d); y8-y4=x2-x6;
+circle_points;
+x9 := x8;
+numeric a; a = round .5(h+d-x_height) + eps;
+x10=x8-a+.5u;
+x11=x8+a-.5u;
+y10 = y11 = h-a+.5u;
+y9 = h;
+draw_circle;
+draw z8--z9;
+draw z10--z9--z11;
+drawdot z12;
+math_fit(0,ic#);
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Neptun";
+beginchar(hex"5B",x_height#+4u#,v_center(2x_height#));
+italcorr 2x_height#*slant - .5u#;
+adjust_fit(0,0);
+pickup rule.nib; autorounded;
+lft x6=hround u; x8 = good.x (.5x_height + u);
+y6 = good.y (.5x_height-d); y8-y4=x2-x6;
+circle_points;
+x9 = x11 = x11' = x8;
+x10=x10'=x6; x12=x12'=x2;
+top y10' = top y11' = top y12' = h;
+top y10 = top y11 = top y12 = h-u;
+y10-y9 = x9-x10;
+pos10(2u,0);
+pos11(2u,0);
+pos12(2u,0);
+draw_circle;
+draw z8--z11';
+draw z10'---z10..z9..z12---z12';
+draw z10l--z10'--z10r;
+draw z11l--z11'--z11r;
+draw z12l--z12'--z12r;
+math_fit(0,ic#);
+penlabels(10,11,12);
+labels(1,2,3,4,5,6,7,8,9,10',11',12'); endchar;
+
+cmchar "Mercury";
+beginchar(hex"27",x_height#+2u#,2.2x_height#-desc_depth#,desc_depth#);
+italcorr 1/2x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x8=good.x (.5x_height + u);
+y6 = good.y (h-x_height); y8-y4=x2-x6;
+circle_points;
+x9 := x8;
+numeric a; a = round .5(h+d-1.5x_height) + eps;
+x10=x8-a;
+x11=x8+a;
+y10 = y11; y11 = -d+a;
+y9 = -desc_depth;
+x12=x6; x13=x2; y12=y13; y12-y8=y8-y2;
+draw_circle;
+draw z10--z11; draw z4--z9;
+draw z12{down}...z8{right}...{up}z13;
+math_fit(0,ic#);
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "male";
+numeric this_size#;
+this_size# = x_height#*(1+0.9/sqrt2);
+beginchar(hex"1A",this_size#+1.7u#,this_size#,0);
+italcorr this_size#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x2=x_height+2u-x6; y2=.5x_height; bot y4=0;
+circle_points;
+z9 = 1.9[z5,z1];
+draw_circle;
+x9 := good.x x9;
+y9 := good.y y9;
+x10 = x9; y11 = y9;
+y10 = y9-3.5u; x11 = x9-3.5u;
+draw z1--z9;
+draw z10--z9--z11;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "sagittarius";
+numeric this_size#;
+this_size# = x_height#*(1+0.9/sqrt2);
+beginchar(hex"63",this_size#,this_size#,0);
+italcorr this_size#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x7=hround u; x2-x6 = y8-y4 = x_height; bot y5=0;
+circle_points;
+z9 = 1.9[z5,z1];
+x9 := good.x x9;
+y9 := good.y y9;
+x10 = x9; y11 = y9;
+y10 = y9-3.5u; x11 = x9-3.5u;
+draw z5--z9;
+draw z3--z7;
+draw z10--z9--z11;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "conjunction";
+numeric this_size#;
+this_size# = x_height#*(1+0.9/sqrt2);
+beginchar(hex"56",this_size#+1.7u#,this_size#,0);
+italcorr this_size#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x2=x_height+2u-x6; y2=.5x_height; bot y4=0;
+circle_points;
+z9 = 1.9[z5,z1];
+draw_circle;
+x9 := good.x x9;
+y9 := good.y y9;
+draw z1--z9;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "opposition";
+beginchar(hex"57",2x_height#+2u#,
+ 2.2x_height#-0.5desc_depth#,0.5desc_depth#);
+italcorr 1.5x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+lft x6=hround u; x2-x6=y8-y4=x_height; bot y4=-d-oo;
+circle_points;
+draw_circle;
+x10 = w-u-x2; y10=h+oo-y8;
+for n=1 upto 8: z[n]' = z[n] + z10; endfor
+draw z8'{right}...z1'{z2-z8}...z2'{down}...z3'{z4-z2}...z4'{left}
+ ...z5'{z6-z4}...z6'{up}...z7'{z8-z6}...cycle;
+draw z1--z5';
+labels(1',2',3',4',5',6',7',8');
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "automatic telephone recorder";
+beginchar(hex"06",
+ 1.13 min(asc_height#,9/7x_height#)+2u#,
+ min(asc_height#,9/7x_height#),0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo;
+circle_points;
+z9 = 1.30[z1,z5];
+z10 = 0.70[z1,z5];
+draw_circle;
+draw z9--z10;
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "currency";
+beginchar(hex"1B",
+ 1.13 min(asc_height#,9/7x_height#)+2u#,
+ min(asc_height#,9/7x_height#),0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x4 = good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=-oo;
+circle_points;
+z9 = 1.30[z5,z1];
+z10 = 1.30[z7,z3];
+z11 = 1.30[z1,z5];
+z12 = 1.30[z3,z7];
+draw_circle;
+draw z1--z9;
+draw z3--z10;
+draw z5--z11;
+draw z7--z12;
+labels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "clock";
+beginchar(hex"1C",asc_height#+2u#,0.95asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x8=good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=0;
+circle_points;
+draw_circle;
+z9 = 0.55[z5,z1];
+z10 = 0.55[z7,z3];
+z11 = 0.55[z1,z5];
+z12 = 0.55[z3,z7];
+z13 = 0.5[z2,z6];
+z14 = 0.25[z2,z6];
+z15 = 0.15[z8,z4];
+filldraw z9..z10..z11..z12..cycle;
+draw z14--z13--z15;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16); endchar;
+
+cmchar "smiley";
+beginchar(hex"2C",asc_height#+2u#,0.95asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x8=good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=0;
+circle_points;
+draw_circle; % circle
+pickup crisp.nib;
+numeric ethickness;
+numeric mthickness;
+ethickness = min(1.2stem,max(1,round(h/4)-1));
+mthickness = min(stem,max(1,round(h/11)));
+z7' = .27[z7,z3]; pos7'(ethickness,45); z17 = z7'; pos17(ethickness,-45);
+z1' = .27[z1,z5]; pos1'(ethickness,45); z11 = z1'; pos11(ethickness,-45);
+x3' = .23[x3,x7];
+y3' = .28[y3,y7]; pos3'(hair,135);
+x5' = .23[x5,x1];
+y5' = .28[y5,y1]; pos5'(hair,45);
+z4' = .25[z4,z8]; pos4'(mthickness,90);
+filldraw stroke z5'e...z4'e{right}...z3'e; % mouth
+filldraw z7'r...z17l...z7'l...z17r...cycle; % eyes
+filldraw z1'r...z11l...z1'l...z11r...cycle;
+penlabels(1',11,3',4',5',7',17);
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "frowney";
+beginchar(hex"2F",asc_height#+2u#,0.95asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+x8=good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=0;
+circle_points;
+draw_circle; % circle
+pickup crisp.nib;
+numeric ethickness;
+numeric mthickness;
+ethickness = min(1.2stem,max(1,round(h/4)-1));
+mthickness = min(stem,max(1,round(h/11)));
+z7' = .27[z7,z3]; pos7'(ethickness,45); z17 = z7'; pos17(ethickness,-45);
+z1' = .27[z1,z5]; pos1'(ethickness,45); z11 = z1'; pos11(ethickness,-45);
+x3' = .25[x3,x7];
+y3' = .15[y3,y7]; pos3'(hair,45);
+x5' = .25[x5,x1];
+y5' = .15[y5,y1]; pos5'(hair,135);
+z4' = .35[z4,z8]; pos4'(mthickness,90);
+filldraw stroke z5'e...z4'e{right}...z3'e; % mouth
+filldraw z7'r...z17l...z7'l...z17r...cycle; % eyes
+filldraw z1'r...z11l...z1'l...z11r...cycle;
+penlabels(1',11,3',4',5',7',17);
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "black smiley";
+beginchar(hex"2D",asc_height#+2u#,0.95asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup crisp.nib; autorounded;
+x8=good.x .5w; x2-x6=y8-y4; y2=good.y .5h; bot y4=0;
+circle_points;
+numeric ethickness;
+numeric mthickness;
+ethickness = min(1.2stem,max(1,round(h/4)-1))+1;
+mthickness = min(stem,max(1,round(h/11)))+1;
+z7' = .27[z7,z3]; pos7'(ethickness,45); z17 = z7'; pos17(ethickness,-45);
+z1' = .27[z1,z5]; pos1'(ethickness,45); z11 = z1'; pos11(ethickness,-45);
+z3' = .25[z3,z7]; pos3'(1.5hair,135);
+z5' = .25[z5,z1]; pos5'(1.5hair,45);
+z4' = .25[z4,z8]; pos4'(mthickness,90);
+filldraw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle;
+unfilldraw stroke z5'e...z4'e{right}...z3'e; % mouth
+unfilldraw z7'r...z17l...z7'l...z17r...cycle; % eyes
+unfilldraw z1'r...z11l...z1'l...z11r...cycle;
+penlabels(1',11,3',4',5',7',17);
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "varprop";
+beginchar(hex"1D",14u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(if monospace: -u#,-u# else: 0,0 fi);
+pickup light_rule.nib;
+lft x1 = hround 1.5u; y1 := good.y math_axis;
+numeric a; a = round(2.75u);
+x2 := good.x .5(w+a);
+y2 = y1;
+x3 = x4 = x1+a; y3 = y1 + a; y4 = y1 - a;
+x5 = x6 = w-x1; y5 = y3; y6 = y4;
+draw z5{left}..z2..z4..z1..z3..z2..{right}z6;
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "variant angle";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(hex"1E",14u#,v_center(spread#'+spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+lft x10=hround 1.5u-eps; x9=x11=w-x10;
+y9-y11=spread; y10=.5[y9,y11]=math_axis;
+x4 = x10; x6 = 0.7[x10,x11]; y6 = y10; x6 - x1 = y4 - y1;
+pickup rule.nib; autorounded;
+circle_points;
+draw z5{z6-z4}..z6..{z8-z6}z7;
+pickup light_rule.nib;
+draw z9--z10--z11;
+labels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "reverse diameter";
+beginchar(hex"15",1.5556x_height#+2u#,v_center(1.5556x_height#));
+italcorr 1.348x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+numeric diam; diam := max(round(x_height/rule_thickness),1);
+diam := round( diam*rule_thickness ); if odd diam: diam := diam + 1; fi
+x0=x8=good.x .5w; y8-y4=x2-x6=diam;
+y0=y2=good.y math_axis;
+circle_points;
+z9' = 2.2[z0,z7];
+numeric delta; delta = round(y9'-y8);
+lft x9 = x6-delta+eps;
+top y9 = y8+delta+eps;
+rt x10 = x2+delta+eps;
+bot y10 = y4-delta+eps;
+draw_circle;
+draw z9--z10;
+labels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "diameter";
+beginchar(hex"1F",1.5556x_height#+2u#,v_center(1.5556x_height#));
+italcorr 1.348x_height#*slant;
+adjust_fit(if monospace: u#,u# else: 0,0 fi);
+pickup rule.nib; autorounded;
+numeric diam; diam := max(round(x_height/rule_thickness),1);
+diam := round( diam*rule_thickness ); if odd diam: diam := diam + 1; fi
+x0=x8=good.x .5w; y8-y4=x2-x6=diam;
+y0=y2=good.y math_axis;
+circle_points;
+z9' = 2.2[z0,z7];
+numeric delta; delta = round(y9'-y8);
+lft x9 = x6-delta+eps;
+bot y9 = y4-delta+eps;
+rt x10 = x2+delta+eps;
+top y10 = y8+delta+eps;
+draw_circle;
+draw z9--z10;
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "rightcycle";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(hex"21",
+ 18u#,asc_height#,desc_depth#);
+adjust_fit(if monospace:-2u#,-2u# else: 0,0 fi);
+italcorr x_height#*slant;
+pickup light_rule.nib; autorounded;
+numeric a; a = h + d + 2o - (spread+rule_thickness);
+x4 = good.x .5w; x2-x6=a; y8-y4=a;
+top y8=asc_height+o-.5(spread+rule_thickness);
+circle_points;
+y10=y8-eps; rt x10=hround .4[x8,x1];
+draw z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...{right}z8;
+pickup crisp.nib;
+pos13(bar,0); pos14(bar,0);
+y13-y10=y10-y14=.24asc_height+eps; x13=x14=x10-3u-eps;
+pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t[]; path p[];
+(t1,t2)=(z14l{z19-z14}..z16r) intersectiontimes (z13l{z19-z13}..z15r);
+z20=(z14l{z19-z14}..z16r) intersectionpoint (z13l{z19-z13}..z15r);
+filldraw z10..{z14-z19}z14r--subpath (0,t1) of (z14l{z19-z14}..z16r)
+ --z20--subpath (t2,0) of (z13l{z19-z13}..z15r)--z13r{z19-z13}..z10
+ & cycle; % arrowhead
+penlabels(10,13,14,15,16,19,20);
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "leftcycle";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(hex"22",
+ 18u#,asc_height#,desc_depth#);
+adjust_fit(if monospace:-2u#,-2u# else: 0,0 fi);
+italcorr x_height#*slant;
+pickup light_rule.nib; autorounded;
+numeric a; a = h + d + 2o - (spread+rule_thickness);
+x4 = good.x .5w; x2-x6=a; y8-y4=a;
+top y8=asc_height+o-.5(spread+rule_thickness);
+circle_points;
+y10=y8-eps; lft x10=hround .4[x8,x7];
+draw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...{z8-z6}z7;
+pickup crisp.nib;
+pos13(bar,180); pos14(bar,180);
+y13-y10=y10-y14=.24asc_height+eps; x13=x14=x10+3u+eps;
+pos15(bar,angle(z14-z10)); z15l=z10; pos16(bar,angle(z13-z10)); z16l=z10;
+z19=.381966[.5[z13,z14],z10];
+numeric t[]; path p[];
+(t1,t2)=(z14l{z19-z14}..z16r) intersectiontimes (z13l{z19-z13}..z15r);
+z20=(z14l{z19-z14}..z16r) intersectionpoint (z13l{z19-z13}..z15r);
+filldraw z10..{z14-z19}z14r--subpath (0,t1) of (z14l{z19-z14}..z16r)
+ --z20--subpath (t2,0) of (z13l{z19-z13}..z15r)--z13r{z19-z13}..z10
+ & cycle; % arrowhead
+penlabels(10,13,14,15,16,19,20);
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "ocircle same size as operators";
+beginarithchar(hex"23"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "pentagon";
+beginarithchar(hex"44"); pickup rule.nib;
+x0=good.x .5w; y0=good.y math_axis;
+x8=x0; top y8=h;
+numeric theta; theta=360/5; % degrees between points
+z0=.5[z4,z8]; z9-z0=(z8-z0) rotated theta;
+z10-z0=(z9-z0) rotated theta;
+z12-z0=(z8-z0) rotated (-theta);
+z11-z0=(z12-z0) rotated (-theta);
+draw z8--z9--z10--z11--z12--cycle;
+labels(0,8,9,10,11,12); endchar;
+
+cmchar "ostar five-ended star in circle";
+beginarithchar(hex"16"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points; draw_circle; % circle
+numeric theta; theta=360/5; % degrees between points
+z0=.5[z4,z8]; z9-z0=(z8-z0) rotated theta;
+z10-z0=(z9-z0) rotated theta;
+z11-z0=(z8-z0) rotated (-theta);
+z12-z0=(z11-z0) rotated (-theta);
+draw z0--z8; draw z0--z9;
+draw z0--z10; draw z0--z11;
+draw z0--z12;
+labels(0,1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "pentastar";
+beginarithchar(hex"45"); pickup light_rule.nib; autorounded;
+top y8=h; x0=x8=good.x .5w;
+numeric theta; theta=360/5; % degrees between points
+y0=.5h; z9-z0=(z8-z0) rotated theta;
+z10-z0=(z9-z0) rotated theta;
+z11-z0=(z8-z0) rotated (-theta);
+z12-z0=(z11-z0) rotated (-theta);
+draw z0--z8; draw z0--z9;
+draw z0--z10; draw z0--z11;
+draw z0--z12;
+labels(0,8,9,10,11,12); endchar;
+
+cmchar "Filled ocircle";
+beginarithchar(hex"20"); pickup crisp.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points;
+filldraw z8{right}...z1{z2-z8}...z2{down}...z3{z4-z2}...z4{left}
+ ...z5{z6-z4}...z6{up}...z7{z8-z6}...cycle;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Filled left half ocircle";
+beginarithchar(hex"47"); pickup crisp.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points;
+filldraw z8---z4{left}...z5{z6-z4}...z6{up}...z7{z8-z6}...{right}cycle;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Filled right half ocircle";
+beginarithchar(hex"48"); pickup crisp.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points;
+filldraw z8---z4{right}...z3{z2-z4}...z2{up}...z1{z8-z2}...{left}cycle;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Left half ocircle";
+beginarithchar(hex"49"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points;
+draw z8---z4{left}...z5{z6-z4}...z6{up}...z7{z8-z6}...{right}cycle;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Right half ocircle";
+beginarithchar(hex"4A"); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points;
+draw z8---z4{right}...z3{z2-z4}...z2{up}...z1{z8-z2}...{left}cycle;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Open moon";
+beginarithchar(hex"24"); pickup rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; y2=math_axis; top y8=h;
+circle_points;
+z9=1/3[z6,z2];
+x8:=x8+u;
+x4:=x8;
+draw z4{(-1,-0.1)}..z5{z6-z4}..z6{up}..z7{z8-z6}..{(1,-0.1)}z8
+ & z8..z9{down}..z4;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Close moon";
+beginarithchar(hex"25"); pickup rule.nib; autorounded;
+lft x2=hround u; x6=w-x2; y2=math_axis; top y8=h;
+circle_points;
+z9=1/3[z6,z2];
+x8:=x8-u;
+x4:=x8;
+draw z4{(1,-0.1)}..z5{z6-z4}..z6{up}..z7{z8-z6}..{(-1,-0.1)}z8
+ & z8..z9{down}..z4;
+labels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Jupiter";
+beginchar(hex"58",.7cap_height#+4u#,cap_height#,0);
+pickup rule.nib;
+lft x1 = hround u; x3-x2=y4-y5; y2=good.y .35h; bot y5=0;
+x4=x5=.505[x2,x3]; y2=y3=.5[y4,y5];
+x1=x2-2u; bot y1=top y4;
+top y1'=h; x1'=.35[x1,x4];
+draw z1..z1'{right}..{(-1,-2)}z2--z3;
+draw z4--z5;
+labels(1,2,3,4,5); endchar;
+
+cmchar "Saturn";
+beginchar(hex"59",10.5u#,cap_height#,desc_depth#);
+pickup rule.nib;
+lft x1 = hround 2.5u; rt x5 = w-u; x6=x5; x4=.5[x1,x5]; x2=x3=x1;
+bot y1=0; top y2=h; y4=x_height; y3=y5=.51x_height; bot y6=-d;
+y7=y8=h-2.0u; lft x7=x1-2.0u; rt x8=x1+2.0u;
+draw z1--z2;
+draw z3{up}...z4{right}..z5{down}..{right}z6;
+draw z7--z8;
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Pluto";
+beginchar(hex"5C",10.5u#,cap_height#,0);
+pickup rule.nib; autorounded;
+lft x2 = hround u; x3=x5=x2; x1=x4=w-x2;
+bot y2 = 0; y1=y2; top y3=h; y5=good.y .45[y2,y3]; y4=.5[y3,y5];
+draw z1--z2--z3{right}...z4...{left}z5;
+labels(1,2,3,4,5); endchar;
+
+cmchar "Ascendent";
+beginchar(hex"13",15u#,v_center(0.9(asc_height#+desc_depth#)));
+italcorr 0.8asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+y1=y3=y8=y10=1/7(h+d)-d;
+y4=y9=-d;
+y5=y7=0.7(h+d)-d;
+y6=h;
+y1=.5[y2,y4];
+x3=u; x5=2u;
+x10=w-u; x7=w-2u;
+x6=.5w;
+x10-x8=x1-x3=y2-y4;
+x2=x4=.5[x1,x3];
+x9=.5[x8,x10];
+draw z1{up}...z2{left}...z3{down}...z4{right}...z1{up}...z5{up}
+ ...z6{right}...z7{down}...z8{down}...z9{right}...{up}z10;
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Descendent";
+beginchar(hex"14",15u#,v_center(0.9(asc_height#+desc_depth#)));
+italcorr 0.8asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+y1=y3=y8=y10=6/7(h+d)-d;
+y4=y9=h;
+y5=y7=0.3(h+d)-d;
+y6=-d;
+y1=.5[y2,y4];
+x3=u; x5=2u;
+x10=w-u; x7=w-2u;
+x6=.5w;
+x10-x8=x1-x3=y4-y2;
+x2=x4=.5[x1,x3];
+x9=.5[x8,x10];
+draw z1{down}...z2{left}...z3{up}...z4{right}...z1{down}...z5{down}
+ ...z6{right}...z7{up}...z8{up}...z9{right}...{down}z10;
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Square";
+beginchar(hex"32",2.1math_axis#+4u#,
+ v_center(2.1math_axis#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=round(2.1math_axis);
+if odd a: a := a + 1; fi
+x1=x4; x2=x3=x1+a; x5 = .5[x1,x2] = good.x .5w;
+y3=y4; y1=y2=y3+a;
+y5 = .5[y1,y3] = good.y .5(h-d);
+draw z1--z2--z3--z4--cycle;
+labels(1,2,3,4,5); endchar;
+
+cmchar "sharp triangle, delta form";
+beginchar(hex"00",12u#,asc_height#,0);
+italcorr asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; x3=w-x1; x2=.5[x1,x3];
+y1=y3; bot y1=-oo; top y2=h;
+draw z1--z2--z3--cycle;
+labels(1,2,3,4,5); endchar;
+
+cmchar "sharp triangle, nabla form";
+beginchar(hex"46",12u#,asc_height#,0);
+italcorr asc_height#*slant;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u; x3=w-x1; x2=.5[x1,x3];
+y1=y3; top y3=h; bot y2=-oo;
+draw z1--z2--z3--cycle;
+labels(1,2,3,4,5); endchar;
+
+cmchar "Crossedsquare";
+beginchar(hex"34",2.1math_axis#+4u#,
+ v_center(2.1math_axis#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=round(2.1math_axis);
+if odd a: a := a + 1; fi
+x1=x4; x2=x3=x1+a; x5 = .5[x1,x2] = good.x .5w;
+y3=y4; y1=y2=y3+a;
+y5 = .5[y1,y3] = good.y .5(h-d);
+draw z1--z2--z3--z4--cycle;
+draw z1--z3;
+draw z2--z4;
+labels(1,2,3,4,5); endchar;
+
+cmchar "Lozenge";
+beginchar(hex"35",2.1math_axis#+4u#,
+ v_center(2.1math_axis#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=round(2.1math_axis);
+x1=x4; x2=x3=x1+a; .5(x1+x2) = good.x .5w;
+y3=y4; y1=y2=y3+a;
+y5 = good.y .5(h-d);
+z5=.5[z1,z3];
+x13-x5=x5-x11=1/3a; y13=y11=y5;
+y12-y5=y5-y14=1/3a; x12=x14=x5;
+draw z1...z12...z2
+ & z2...z13...z3
+ & z3...z14...z4
+ & z4...z11...z1 & cycle;
+labels(1,2,3,4,5,11,12,13,14); endchar;
+
+cmchar "Kreuz";
+beginchar(hex"36",2.1math_axis#+4u#,
+ v_center(2.1math_axis#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup crisp.nib;
+numeric a; a=round(2.1math_axis)+eps;
+numeric outerthickness; outerthickness=round(math_axis);
+numeric innerthickness; innerthickness=stem;
+x1=x4; x2=x3=x1+a; .5(x1+x2) = good.x .5w;
+y3=y4; y1=y2=y3+a;
+y5 = good.y .5(h-d);
+z5=.5[z1,z3];
+lft x10=x1; x11=x5; rt x12=x2; y10=y11=y12=y5;
+pos10(outerthickness,90);
+pos11(innerthickness,90);
+pos12(outerthickness,90);
+filldraw stroke z10e...z11e...z12e;
+bot y13=y1; y14=y5; top y15=y4; x13=x14=x15=x5;
+pos13(outerthickness,0);
+pos14(innerthickness,0);
+pos15(outerthickness,0);
+filldraw stroke z13e...z14e...z15e;
+labels(1,2,3,4,5);
+penlabels(10,11,12,13,14,15); endchar;
+
+cmchar "Very high frequency";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(hex"40",14u#,v_center(1.9math_axis#+rule_thickness#));
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=round(.45math_axis);
+numeric b; b=round(math_axis+rule_thickness);
+if odd b: b := b+1; fi
+y11=y13=y15=math_axis; y12-a=y14+a=good.y math_axis;
+x11=u; x15=w-u; x13=.5[x11,x15]; x12=.5[x11,x13]; x14=.5[x13,x15];
+path p; p=z12{right}...z13...z14{right};
+pos11(b,90);
+pos12(b,90);
+pos13(b,90);
+pos14(b,90);
+pos15(b,90);
+draw z11{dir(-angle direction 1 of p)}...z12{right}...z13...
+ z14{right}...z15{dir(-angle direction 1 of p)};
+draw z11r{dir(-angle direction 1 of p)}...z12r{right}...z13r...
+ z14r{right}...z15r{dir(-angle direction 1 of p)};
+draw z11l{dir(-angle direction 1 of p)}...z12l{right}...z13l...
+ z14l{right}...z15l{dir(-angle direction 1 of p)};
+penlabels(11,12,13,14,15); endchar;
+
+cmchar "APL comment";
+beginchar(hex"7F",9u#,9u#,0);
+adjust_fit(0,0); pickup rule.nib; autorounded;
+lft x6=hround u; x2=w-x6; top y8=h; bot y4=2u;
+circle_points;
+y9 = y10 = 0; x9=x2; x10=x6;
+draw_circle; % circle
+draw z2--z9; draw z6--z10;
+labels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "APLleftarrowbox";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(hex"70",14u#,7u#+math_axis#,7u#-math_axis#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1+rule_thickness=hround(w-1.5u);
+lft x0=hround 1.5u;
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0+3u+eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9);
+pickup rule.nib;
+y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
++.5dot_size);
+lft x11=hround u-eps; x11'=x11; x12=x12'=w-x11;
+y11=y12=math_axis-1.8(y-math_axis);
+y11'=y12'=math_axis+1.8(y-math_axis);
+draw z11--z12--z12'--z11'--cycle;
+penlabels(11,12,11',12'); endchar;
+
+cmchar "APLrightarrowbox";
+compute_spread(.45x_height#,.55x_height#);
+beginchar(hex"71",14u#,7u#+math_axis#,7u#-math_axis#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,90); pos2(rule_thickness,90);
+pos3(bar,0); pos4(bar,0);
+y0=y1=y2=math_axis; x1-rule_thickness=hround 1.5u;
+rt x0=hround(w-1.5u);
+y3-y0=y0-y4=.24asc_height+eps; x3=x4=x0-3u-eps;
+pos5(bar,angle(z4-z0)); z5l=z0; pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((0,y2l)--(w,y2l))); x2=xpart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2l---z1l..z1r---z2r--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9);
+pickup rule.nib;
+y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
++.5dot_size);
+lft x11=hround u-eps; x11'=x11; x12=x12'=w-x11;
+y11=y12=math_axis-1.8(y-math_axis);
+y11'=y12'=math_axis+1.8(y-math_axis);
+draw z11--z12--z12'--z11'--cycle;
+penlabels(11,12,11',12'); endchar;
+
+cmchar "APLuparrowbox";
+beginchar(hex"6E",14u#,7u#+math_axis#,7u#-math_axis#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); bot y1-rule_thickness=-d;
+x0=x1=x2; top y0=h-.5u; x0-x3=x4-x0=3u+eps;
+y3=y4=y0-.24asc_height-eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9);
+pickup rule.nib;
+y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
++.5dot_size);
+lft x11=hround u-eps; x11'=x11; x12=x12'=w-x11;
+y11=y12=math_axis-1.8(y-math_axis);
+y11'=y12'=math_axis+1.8(y-math_axis);
+draw z11--z12--z12'--z11'--cycle;
+penlabels(11,12,11',12'); endchar;
+
+cmchar "APLdownarrowbox";
+beginchar(hex"6F",14u#,7u#+math_axis#,7u#-math_axis#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup crisp.nib;
+pos1(rule_thickness,0); pos2(rule_thickness,0);
+pos3(bar,90); pos4(bar,90);
+lft x1l=hround(.5w-.5rule_thickness); top y1+rule_thickness=h;
+x0=x1=x2; bot y0=-d+.5u; x0-x3=x4-x0=3u+eps;
+y3=y4=y0+.24asc_height+eps;
+pos5(bar,angle(z4-z0)); z5l=z0;
+pos6(bar,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r..z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9);
+pickup rule.nib;
+y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
++.5dot_size);
+lft x11=hround u-eps; x11'=x11; x12=x12'=w-x11;
+y11=y12=math_axis-1.8(y-math_axis);
+y11'=y12'=math_axis+1.8(y-math_axis);
+draw z11--z12--z12'--z11'--cycle;
+penlabels(11,12,11',12'); endchar;
+
+cmchar "APL box";
+beginchar(hex"7E",14u#,7u#+math_axis#,7u#-math_axis#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0);
+pickup rule.nib;
+y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
++.5dot_size);
+lft x1=hround u-eps; x1'=x1; x2=x2'=w-x1;
+y1=y2=math_axis-1.8(y-math_axis);
+y1'=y2'=math_axis+1.8(y-math_axis);
+draw z1--z2--z2'--z1'--cycle;
+penlabels(1,2,1',2'); endchar;
+
+cmchar "APL input";
+beginchar(hex"7D",14u#,7u#+math_axis#,7u#-math_axis#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0);
+pickup rule.nib;
+y+.5dot_size=vround(math_axis+math_spread[.5x_height,.6x_height]
++.5dot_size);
+rt x2 - lft x1=w-2u; x1'=x1; x2=x2'=w-x1;
+y1=y2=math_axis-1.8(y-math_axis);
+y3=y4=y1'=y2'=math_axis+1.8(y-math_axis);
+y5=.66[y1,y1'];
+x5=.5[x1,x2];
+x2-x4 = x3-x1;
+x4-x3 = 1.5rule_thickness;
+draw z1--z2--z2'--z1'--cycle;
+filldraw z3--z4--z5--cycle;
+penlabels(1,2,3,4,5,1',2'); endchar;
+
+cmchar "Hexagon";
+beginchar(hex"37",2.43math_axis#+2u#,
+ v_center(2.1math_axis#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=2.1math_axis/sqrt 3;
+x4=x1+2a; x3=x2+a; x2=x6; x3=x5; .5[x2,x3] = .5[x1,x4] = good.x .5w;
+y1 = y4 = .5[y2,y6] = good.y .5(h-d);
+y2=y3; y5=y6; y6-y2=2.1math_axis;
+draw z1--z2--z3--z4--z5--z6--cycle;
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Hexagon B";
+beginchar(hex"39",2.1math_axis#+2u#,
+ v_center(2.43math_axis#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup rule.nib;
+numeric a; a=2.1math_axis/sqrt 3;
+y4=y1+2a; y3=y2+a; y2=y6; y3=y5; .5[y2,y3] = .5[y1,y4] = good.y .5(h-d);
+x1 = x4 = .5[x2,x6] = good.x .5w;
+x2=x3; x5=x6; x6-x2=2.1math_axis;
+draw z1--z2--z3--z4--z5--z6--cycle;
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Hexastar";
+beginchar(hex"41",2.65math_axis#+2u#,
+ v_center(2.3math_axis#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup light_rule.nib;
+numeric a; a=2.3math_axis/sqrt 3;
+x4=x1+2a; x3=x2+a; x2=x6; x3=x5; .5[x2,x3] = .5[x1,x4] = good.x .5w;
+y1 = y4 = .5[y2,y6] = good.y .5(h-d);
+y2=y3; y5=y6; y6-y2=2.3math_axis;
+draw z1--z4; draw z2--z5; draw z3--z6;
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Hexastar B";
+beginchar(hex"42",2.3math_axis#+2u#,
+ v_center(2.65math_axis#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup light_rule.nib;
+numeric a; a=2.3math_axis/sqrt 3;
+y4=y1+2a; y3=y2+a; y2=y6; y3=y5; .5[y2,y3] = .5[y1,y4] = good.y .5(h-d);
+x1 = x4 = .5[x2,x6] = good.x .5w;
+x2=x3; x5=x6; x6-x2=2.3math_axis;
+draw z1--z4; draw z2--z5; draw z3--z6;
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Davids star";
+beginchar(hex"43",2.3math_axis#+2u#,
+ v_center(2.65math_axis#));
+italcorr math_axis#*slant;
+adjust_fit(0,0); pickup light_rule.nib;
+numeric a; a=2.3math_axis/sqrt 3;
+y4=y1+2a; y3=y2+a; y2=y6; y3=y5; .5[y2,y3] = .5[y1,y4] = good.y .5(h-d);
+x1 = x4 = .5[x2,x6] = good.x .5w;
+x2=x3; x5=x6; x6-x2=2.3math_axis;
+draw z1--z3--z5--cycle; draw z2--z4--z6--cycle;
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Approximate less than sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(hex"3E",14u#,v_center(spread#+1.2spread#'+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=good.y h-.5(spread+rule_thickness);
+draw z1--z2--z3; % diagonals
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+x1'=x2; x2'=4u; x3'=w-x2'; x4'=w-x1';
+bot y1'=bot y3'=-d; top y2'=top y4'=.8spread'-d;
+draw z1'{up}...z2'{right}..{right}z3'...{up}z4'; % stroke
+labels(1,2,3,1',2',3',4'); endchar;
+
+cmchar "Approximate greater than sign";
+compute_spread(.45x_height#,.55x_height#);
+spread#':=spread#; spread':=spread; % the spread of `$=$'
+compute_spread(5/4x_height#,3/2x_height#);
+beginchar(hex"3F",14u#,v_center(spread#+1.2spread#'+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x1=x3; x2=w-x1;
+y1-y3=spread; y2=.5[y1,y3]=good.y h-.5(spread+rule_thickness);
+draw z1--z2--z3; % diagonals
+pickup pencircle xscaled .7rule_thickness yscaled 1.4rule_thickness;
+if vair#>.8curve#: pickup rule.nib; autorounded; fi % monoline
+x1'=x1; x2'=4u; x3'=w-x2'; x4'=w-x1';
+bot y1'=bot y3'=-d; top y2'=top y4'=.8spread'-d;
+draw z1'{up}...z2'{right}..{right}z3'...{up}z4'; % stroke
+labels(1,2,3,1',2',3',4'); endchar;
+
+cmchar "double bar";
+beginchar(hex"7C",2u#,asc_height#,0);
+italcorr asc_height#*slant - u#;
+adjust_fit(0,0); pickup rule.nib;
+bot y1 = good.y oo; top y2 = good.y (h-oo);
+top y1' + 1.5u = bot y2'; .5[y1',y2'] = .5h;
+x1=x1'=x2=x2'=good.x .5w;
+draw z1--z1'; draw z2--z2';
+labels(1,2,1',2'); endchar;
+
+cmchar "octagon";
+beginchar(hex"38",
+ 18u#,asc_height#,desc_depth#);
+pickup light_rule.nib;
+y1=y8; x2=x3; y4=y5; x6=x7; y2=y7; y3=y6; x8=x5; x1=x4;
+.5[y2,y3]=.5[y1,y4]=good.y .5(h-d);
+.5[x1,x8]=.5[x2,x7]=good.x .5w;
+x1-x8 = y3-y2 = sqrt2*(x2-x1) = (h+d)/2.62;
+y4-y1=x2-x7;
+draw (z1--z2--z3--z4--z5--z6--z7--z8--cycle);
+labels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Gluon element";
+beginchar(hex"50",6u#,v_center(1.4x_height#));
+adjust_fit(0,0); pickup rule.nib;
+y1=y5=h; y3=-d; y3'=0.8[y3,y1];
+x1=0; x5=w; x3=x3'=.5w;
+y2=y4=0.35[y3,y3'];
+x2-x3=x3-x4=0.33w;
+draw z1{right}...z3'...z2{down}...z3{left}...z4{up}...z3'...{right}z5;
+labels(1,2,3,3',4,5); endchar;
+
+cmchar "Gluon begin element";
+beginchar(hex"51",6u#,v_center(1.4x_height#));
+adjust_fit(0,0); pickup rule.nib;
+y1=good.y math_axis; y2=h;
+x1=0; x2=w;
+draw z1{(1,2)}...{right}z2;
+labels(1,2); endchar;
+
+cmchar "Gluon end element";
+beginchar(hex"52",6u#,v_center(1.4x_height#));
+adjust_fit(0,0); pickup rule.nib;
+y2=good.y math_axis; y1=h;
+x1=0; x2=w;
+draw z1{right}...{(1,-2)}z2;
+labels(1,2); endchar;
+
+cmchar "Telephone";
+beginchar(hex"07",1.5asc_height#,asc_height#,0);
+adjust_fit(0,0); pickup crisp.nib; autorounded;
+numeric uu; uu = 1/20 asc_height;
+bot y1 = 0; y2 = 3uu; y3 = 13uu; y4=y2; y5=y1; y0 = good.y 9uu;
+lft x1 = hround (4uu+eps); x2 = x1; x4 = x5 = w-x1; x0 = x3 = .5 w;
+y6 = y8 = y0 = .5[y9,y7]; x7 = x9 = x0 = .5[x8,x6];
+y7-y9 = 8uu; x6-x8 = 9uu;
+y6' = y8' = y0 = .5[y9',y7']; x7' = x9' = x0 = .5[x8',x6'];
+y7'-y9' = 10.5uu+0.5+eps; x6'-x8' = 11.5uu+0.5+eps;
+y10 = y15 = 10uu; y11 = y12 = y14 = y17 = y10+2uu;
+y13 = y16 = y18 = y20 = y10+5uu; y21 = y10+5uu+eps; y19 = y10+8uu+eps;
+x19=x21=x0; x20=hround(uu+eps); x18 = w-x20;
+x12=hround(uu+eps); x17 = w-x12; x10= 2uu+eps; x15 = w-x10;
+x11=x10+6uu; x13=x12+6uu; x14=x15-6uu; x16=x17-6uu;
+filldraw z1---z2...z3...z4---z5--cycle; % body
+erase filldraw z6'...z7'...z8'...z9'...cycle; % space for dial
+filldraw z6...z7...z8...z9...cycle; % dial
+filldraw z10--z11--z13--z12--cycle;
+filldraw z14--z15--z17--z16--cycle;
+filldraw z20{(3,1)}...z19{right}...{(3,-1)}z18--z17{(-3,1)}...
+ z21{left}...{(-3,-1)}z12--cycle;
+labels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20);
+labels(6',7',8',9'); endchar;
+
+
+cmchar "\textstyle integral sign";
+beginchar(hex"72",11u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(curve,180);
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(curve,0);
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=x4=x6; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower curve
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\textstyle loop-integral sign";
+beginchar(hex"75",13u#,0,100/54dh#);
+italcorr 0; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180);
+pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0);
+pos17(vair,-90); pos18(hair,-180); pos19(curve,-180);
+rt x11r=hround(w-2u); x19=w-x11; x17=w-x13=4u;
+x15=x14=x16; lft x15r=hround(.5w-.5curve);
+top y13r=0; bot y17r=-d; y19-.5curve=vround(top y17l+.25curve);
+y13-y11=y19-y17; y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
+bulb(13,12,11); bulb(17,18,19); % bulbs
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+pickup light_rule.nib;
+x4 = x15; y8-y4=x2-x6=.8(y14-y16); y2=y15;
+circle_points;
+draw_circle;
+labels(1,2,3,4,5,6,7,8);
+penlabels(11,12,13,14,15,16,17,18,19); endchar;
+
+cmchar "\textstyle two-dimensional integral sign";
+beginchar(hex"73",17u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(curve,180);
+pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180); %2
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(curve,0);
+pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0); %2
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+pos17(vair,-90); pos18(hair,-180); pos19(curve,-180); %2
+numeric ww; ww = 2/3w-2/3u;
+numeric xx; xx = 1/3w+2/3u;
+rt x1r=hround(ww-u); x9=ww-x1; x7=ww-x3=3u;
+rt x11r=hround(w-u); x19=w-x1; x17=w-x3; w-x13=3u; %2
+x5=x4=x6; lft x5r=hround(.5ww-.5curve);
+x15=x14=x16; lft x15r=hround(.5[xx,w]-.5curve); %2
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+y11=y1; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y19=y9; %2
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(13,12,11); bulb(17,18,19); %2 bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower curve
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+pickup light_rule.nib;
+penlabels(1,2,3,4,5,6,7,8,9);
+penlabels(11,12,13,14,15,16,17,18,19); endchar;
+
+cmchar "\textstyle two-dimensional surface-integral sign";
+beginchar(hex"76",17u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos21(curve,0); pos22(hair,0); pos23(vair,90); pos24(curve,180);
+pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180); %2
+pos25(curve,180); pos25'(curve,0); z25'=z25; pos26(curve,0);
+pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0); %2
+pos27(vair,-90); pos28(hair,-180); pos29(curve,-180);
+pos17(vair,-90); pos18(hair,-180); pos19(curve,-180); %2
+numeric ww; ww = 2/3w-2/3u;
+numeric xx; xx = 1/3w+2/3u;
+rt x21r=hround(ww-u); x29=ww-x21; x27=ww-x23=3u;
+rt x11r=hround(w-u); x19=w-x21; x17=w-x23; w-x13=3u; %2
+x25=x24=x26; lft x25r=hround(.5ww-.5curve);
+x15=x14=x16; lft x15r=hround(.5[xx,w]-.5curve); %2
+top y23r=0; bot y27r=-d; y29-.5curve=vround(top y27l+.25curve);
+y23-y21=y29-y27; y25=.5[y23,y27]=.5[y24,y26]; y24-y26=.6(y23-y27);
+y11=y21; y13=y23; y14=y24; y15=y25; y16=y26; y17=y27; y19=y29; %2
+bulb(23,22,21); bulb(27,28,29); % bulbs
+bulb(13,12,11); bulb(17,18,19); %2 bulbs
+filldraw stroke z23e{left}...z24e{(z25e-z24e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z25-z24}z25e; % upper curve
+filldraw stroke z25'e{z26-z25}..tension atleast.8 and atleast 1
+ ..{(z26e-z25'e)xscaled 1.1}z26e...{left}z27e; % lower curve
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+pickup light_rule.nib;
+x4 = x25+.75u; y8-y4=x2-x6=.8(y14-y16); y2=y15;
+circle_points;
+x4' = x8' = x15-.75u;
+x1' := x1 + (x4'-x4); x2' := x2 + (x4'-x4); x3' := x3 + (x4'-x4);
+y1'=y1; y2'=y2; y3'=y3; y4'=y4; y8'=y8;
+draw z8---z8'...z1'...z2'...z3'...z4'---z4...z5...z6...z7...cycle;
+labels(1',2',3',4',4,5,6,7,8,8');
+penlabels(11,12,13,14,15,16,17,18,19);
+penlabels(21,22,23,24,25,26,27,28,29); endchar;
+
+cmchar "\textstyle three-dimensional integral sign";
+beginchar(hex"74",23u#,0,100/54dh#);
+italcorr 3.5u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+pos1(curve,0); pos2(hair,0); pos3(vair,90); pos4(curve,180);
+pos11(curve,0); pos12(hair,0); pos13(vair,90); pos14(curve,180); %2
+pos21(curve,0); pos22(hair,0); pos23(vair,90); pos24(curve,180); %3
+pos5(curve,180); pos5'(curve,0); z5'=z5; pos6(curve,0);
+pos15(curve,180); pos15'(curve,0); z15'=z15; pos16(curve,0); %2
+pos25(curve,180); pos25'(curve,0); z25'=z25; pos26(curve,0); %3
+pos7(vair,-90); pos8(hair,-180); pos9(curve,-180);
+pos17(vair,-90); pos18(hair,-180); pos19(curve,-180); %2
+pos27(vair,-90); pos28(hair,-180); pos29(curve,-180); %3
+numeric ww; ww = 1/2w-u;
+numeric xx; xx = 1/4w+.5u;
+numeric www; www = 3/4w-.5u;
+numeric xxx; xxx = 1/2w+u;
+rt x1r=hround(ww-u); x9=ww-x1; x7=ww-x3=3u;
+rt x11r=hround(www-u); x19=www-x1; x17=www-x3; www-x13=3u; %2
+rt x21r=hround(w-u); x29=w-x1; x27=w-x3; w-x23=3u; %3
+x5=x4=x6; lft x5r=hround(.5ww-.5curve);
+x15=x14=x16; lft x15r=hround(.5[xx,www]-.5curve); %2
+x25=x24=x26; lft x25r=hround(.5[xxx,w]-.5curve); %3
+top y3r=0; bot y7r=-d; y9-.5curve=vround(top y7l+.25curve);
+y3-y1=y9-y7; y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+y11=y1; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y19=y9; %2
+y21=y1; y23=y3; y24=y4; y25=y5; y26=y6; y27=y7; y29=y9; %3
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(13,12,11); bulb(17,18,19); %2 bulbs
+bulb(23,22,21); bulb(27,28,29); %3 bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower curve
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+filldraw stroke z23e{left}...z24e{(z25e-z24e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z25-z24}z25e; % upper curve
+filldraw stroke z25'e{z26-z25}..tension atleast.8 and atleast 1
+ ..{(z26e-z25'e)xscaled 1.1}z26e...{left}z27e; % lower curve
+penlabels(1,2,3,4,5,6,7,8,9);
+penlabels(11,12,13,14,15,16,17,18,19);
+penlabels(21,22,23,24,25,26,27,28,29); endchar;
+
+cmchar "\displaystyle integral sign";
+beginchar(hex"77",14u#,0,150/54dh#);
+italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(max_size,180);
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(max_size,0);
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+rt x1r=hround(w-u); x9=w-x1; x7=w-x3=3u;
+x5=x4=x6; lft x5r=hround(.5w-.5curve);
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+bulb(3,2,1); bulb(7,8,9); % bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower curve
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "\displaystyle loop-integral sign";
+beginchar(hex"7A",14u#,0,150/54dh#);
+italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180);
+pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0);
+pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180);
+rt x11r=hround(w-u); x19=w-x11; x17=w-x13=3u;
+x15=x14=x16; lft x15r=hround(.5w-.5curve);
+top y13r=0; bot y17r=-d;
+y19-.5bulb_size=vround(top y17l+.25bulb_size); y13-y11=y19-y17;
+y15=.5[y13,y17]=.5[y14,y16]; y14-y16=.6(y13-y17);
+bulb(13,12,11); bulb(17,18,19); % bulbs
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+pickup light_rule.nib;
+x4 = x15; y8-y4=x2-x6=.76(y14-y16); y2=y15;
+circle_points;
+draw_circle;
+labels(1,2,3,4,5,6,7,8);
+penlabels(11,12,13,14,15,16,17,18,19); endchar;
+
+cmchar "\displaystyle two-dimensional integral sign";
+beginchar(hex"78",23u#,0,150/54dh#);
+italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(max_size,180);
+pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180); %2
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(max_size,0);
+pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0); %2
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180); %2
+numeric ww; ww = 2/3w-4/3u;
+numeric xx; xx = 1/3w+4/3u;
+rt x1r=hround(ww-u); x9=ww-x1; x7=ww-x3=3u;
+rt x11r=hround(w-u); x19=w-x1; x17=w-x3; w-x13=3u; %2
+x5=x4=x6; lft x5r=hround(.5ww-.5curve);
+x15=x14=x16; lft x15r=hround(.5[xx,w]-.5curve); %2
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+y11=y1; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y19=y9; %2
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(13,12,11); bulb(17,18,19); %2 bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower curve
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+penlabels(1,2,3,4,5,6,7,8,9);
+penlabels(11,12,13,14,15,16,17,18,19); endchar;
+
+cmchar "\displaystyle two-dimensional surface-integral sign";
+beginchar(hex"7B",23u#,0,150/54dh#);
+italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos21(bulb_size,0); pos22(hair,0); pos23(vair,90); pos24(max_size,180);
+pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180); %2
+pos25(max_size,180); pos25'(max_size,0); z25'=z25; pos26(max_size,0);
+pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0); %2
+pos27(vair,-90); pos28(hair,-180); pos29(bulb_size,-180);
+pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180); %2
+numeric ww; ww = 2/3w-4/3u;
+numeric xx; xx = 1/3w+4/3u;
+rt x21r=hround(ww-u); x29=ww-x21; x27=ww-x23=3u;
+rt x11r=hround(w-u); x19=w-x21; x17=w-x23; w-x13=3u; %2
+x25=x24=x26; lft x25r=hround(.5ww-.5curve);
+x15=x14=x16; lft x15r=hround(.5[xx,w]-.5curve); %2
+top y23r=0; bot y27r=-d;
+y29-.5bulb_size=vround(top y27l+.25bulb_size); y23-y21=y29-y27;
+y25=.5[y23,y27]=.5[y24,y26]; y24-y26=.6(y23-y27);
+y11=y21; y13=y23; y14=y24; y15=y25; y16=y26; y17=y27; y19=y29; %2
+bulb(23,22,21); bulb(27,28,29); % bulbs
+bulb(13,12,11); bulb(17,18,19); %2 bulbs
+filldraw stroke z23e{left}...z24e{(z25e-z24e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z25-z24}z25e; % upper curve
+filldraw stroke z25'e{z26-z25}..tension atleast.8 and atleast 1
+ ..{(z26e-z25'e)xscaled 1.1}z26e...{left}z27e; % lower curve
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+pickup light_rule.nib;
+x4 = x25+2u; y8-y4=x2-x6=.76(y14-y16); y2=y15;
+circle_points;
+x4' = x8' = x15-2u;
+x1' := x1 + (x4'-x4); x2' := x2 + (x4'-x4); x3' := x3 + (x4'-x4);
+y1'=y1; y2'=y2; y3'=y3; y4'=y4; y8'=y8;
+draw z8---z8'...z1'...z2'...z3'...z4'---z4...z5...z6...z7...cycle;
+labels(1',2',3',4',4,5,6,7,8,8');
+penlabels(21,22,23,24,25,26,27,28,29);
+penlabels(11,12,13,14,15,16,17,18,19); endchar;
+
+cmchar "\displaystyle three-dimensional integral sign";
+beginchar(hex"79",32u#,0,150/54dh#);
+italcorr 4u#; % \TeX\ kerning between upper limit and lower limit
+adjust_fit(0,-ic#); pickup fine.nib;
+numeric bulb_size, max_size;
+bulb_size=hround(bold+dw); max_size=bold+dw;
+pos1(bulb_size,0); pos2(hair,0); pos3(vair,90); pos4(max_size,180);
+pos11(bulb_size,0); pos12(hair,0); pos13(vair,90); pos14(max_size,180); %2
+pos21(bulb_size,0); pos22(hair,0); pos23(vair,90); pos24(max_size,180); %3
+pos5(max_size,180); pos5'(max_size,0); z5'=z5; pos6(max_size,0);
+pos15(max_size,180); pos15'(max_size,0); z15'=z15; pos16(max_size,0); %2
+pos25(max_size,180); pos25'(max_size,0); z25'=z25; pos26(max_size,0); %3
+pos7(vair,-90); pos8(hair,-180); pos9(bulb_size,-180);
+pos17(vair,-90); pos18(hair,-180); pos19(bulb_size,-180); %2
+pos27(vair,-90); pos28(hair,-180); pos29(bulb_size,-180); %3
+numeric ww; ww = 1/2w-2u;
+numeric xx; xx = 1/4w+u;
+numeric www; www = 3/4w-u;
+numeric xxx; xxx = 1/2w+2u;
+rt x1r=hround(ww-u); x9=ww-x1; x7=ww-x3=3u;
+rt x11r=hround(www-u); x19=www-x1; x17=www-x3; www-x13=3u; %2
+rt x21r=hround(w-u); x29=w-x1; x27=w-x3; w-x23=3u; %3
+x5=x4=x6; lft x5r=hround(.5ww-.5curve);
+x15=x14=x16; lft x15r=hround(.5[xx,www]-.5curve); %2
+x25=x24=x26; lft x25r=hround(.5[xxx,w]-.5curve); %3
+top y3r=0; bot y7r=-d;
+y9-.5bulb_size=vround(top y7l+.25bulb_size); y3-y1=y9-y7;
+y5=.5[y3,y7]=.5[y4,y6]; y4-y6=.6(y3-y7);
+y11=y1; y13=y3; y14=y4; y15=y5; y16=y6; y17=y7; y19=y9; %2
+y21=y1; y23=y3; y24=y4; y25=y5; y26=y6; y27=y7; y29=y9; %3
+bulb(3,2,1); bulb(7,8,9); % bulbs
+bulb(13,12,11); bulb(17,18,19); %2 bulbs
+bulb(23,22,21); bulb(27,28,29); %3 bulbs
+filldraw stroke z3e{left}...z4e{(z5e-z4e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z5-z4}z5e; % upper curve
+filldraw stroke z5'e{z6-z5}..tension atleast.8 and atleast 1
+ ..{(z6e-z5'e)xscaled 1.1}z6e...{left}z7e; % lower curve
+filldraw stroke z13e{left}...z14e{(z15e-z14e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z15-z14}z15e; % upper curve
+filldraw stroke z15'e{z16-z15}..tension atleast.8 and atleast 1
+ ..{(z16e-z15'e)xscaled 1.1}z16e...{left}z17e; % lower curve
+filldraw stroke z23e{left}...z24e{(z25e-z24e)xscaled 1.1}
+ ..tension atleast 1 and atleast .8..{z25-z24}z25e; % upper curve
+filldraw stroke z25'e{z26-z25}..tension atleast.8 and atleast 1
+ ..{(z26e-z25'e)xscaled 1.1}z26e...{left}z27e; % lower curve
+penlabels(1,2,3,4,5,6,7,8,9);
+penlabels(11,12,13,14,15,16,17,18,19);
+penlabels(21,22,23,24,25,26,27,28,29); endchar;
+
+cmchar "ataribox (Alternate)";
+beginchar(hex"6D",5.5pt#,7.5pt#,0);
+ pickup pencircle scaled .85pt;
+ x1=0.05w; y1=0;
+ x2=x1; y2=h;
+ x3=0.95w; y3=y2;
+ x4=x3; y4=y1;
+ fill z1--z2--z3--z4--cycle;
+ x5=x1; y5=.5h;
+ x6=.5w; y6=h;
+ x7=x3; y7=y5;
+ x8=x6; y8=0;
+ undraw z5--z6--z7--z8--cycle;
+ penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+charlist hex"72": hex"77"; % integral signs
+charlist hex"73": hex"78"; % iintegral signs
+charlist hex"74": hex"79"; % iiintegral signs
+charlist hex"75": hex"7A"; % ointegral signs
+charlist hex"76": hex"7B"; % oiintegral signs
+
+input wasychr
diff --git a/Master/texmf-dist/fonts/source/public/wasy/wasy10.mf b/Master/texmf-dist/fonts/source/public/wasy/wasy10.mf
new file mode 100644
index 00000000000..cc5671448de
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/wasy10.mf
@@ -0,0 +1,100 @@
+% This is WASY10.MF in text format
+% additional symbols for math, physics, astronomy and other fields
+
+%input modes;
+%mode=hp_laser;
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WASY"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+if ligs>1: font_coding_scheme:="TeX text";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ fi
+
+mode_setup; font_setup;
+
+input rsym; % symbols
+input lasychr; % lasy font symbols
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/wasy/wasy5.mf b/Master/texmf-dist/fonts/source/public/wasy/wasy5.mf
new file mode 100644
index 00000000000..bebc38cea8e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/wasy5.mf
@@ -0,0 +1,103 @@
+% This is WASY5.MF in text format
+% additional symbols for math, physics, astronomy and other fields
+
+%input modes;
+%mode=nec_low;
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WASY"; font_size 5pt#;
+
+u#:=12.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=5/36pt#; % extra space added to all sidebars
+
+body_height#:=135/36pt#; % height of tallest characters
+asc_height#:=125/36pt#; % height of lowercase ascenders
+cap_height#:=123/36pt#; % height of caps
+fig_height#:=116/36pt#; % height of numerals
+x_height#:=77.5/36pt#; % height of lowercase without ascenders
+math_axis#:=45/36pt#; % axis of symmetry for math symbols
+bar_height#:=43.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=35/36pt#; % depth of comma below baseline
+desc_depth#:=35/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=6/36pt#; % diameter of rounded corners
+fine#:=5/36pt#; % diameter of sharply rounded corners
+thin_join#:=5/36pt#; % width of extrafine details
+hair#:=7.5/36pt#; % lowercase hairline breadth
+stem#:=16/36pt#; % lowercase stem breadth
+curve#:=18/36pt#; % lowercase curve breadth
+ess#:=12/36pt#; % breadth in middle of lowercase s
+flare#:=19/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=22/36pt#; % diameter of dots
+cap_hair#:=8/36pt#; % uppercase hairline breadth
+cap_stem#:=19/36pt#; % uppercase stem breadth
+cap_curve#:=21/36pt#; % uppercase curve breadth
+cap_ess#:=14/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.28pt#; % thickness of lines in math symbols
+
+dish#:=.7/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=15/36pt#; % protrusion of lowercase serifs
+cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6/36pt#; % horizontal protrusion of beak serifs
+%if write_white > 0: %% CS: replaced this line by the following:
+if known write_white:
+ beak#:=25/36pt#; % "WRITE WHITE" ONLY!
+ else: beak#:=35/36pt#;fi %vertical protrusion of beak serifs
+vair#:=6/36pt#; % vertical diameter of hairlines
+notch_cut#:=5pt#; % maximum breadth above or below notches
+bar#:=8/36pt#; % lowercase bar thickness
+slab#:=8/36pt#; % serif and arm thickness
+cap_bar#:=8/36pt#; % uppercase bar thickness
+cap_band#:=8/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=5pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.7/36pt#; % for small refinements of stem breadth
+vair_corr#:=.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+if ligs>1: font_coding_scheme:="TeX text";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ fi
+
+mode_setup; font_setup;
+
+input rsym; % symbols
+input lasychr; % lasy font symbols
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/wasy/wasy6.mf b/Master/texmf-dist/fonts/source/public/wasy/wasy6.mf
new file mode 100644
index 00000000000..32fdbaa5582
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/wasy6.mf
@@ -0,0 +1,100 @@
+% This is WASY6.MF in text format
+% additional symbols for math, physics, astronomy and other fields
+
+%input modes;
+%mode=nec_low;
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WASY"; font_size 6pt#;
+
+u#:=14/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=2.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=3/36pt#; % extra space added to all sidebars
+
+body_height#:=162/36pt#; % height of tallest characters
+asc_height#:=150/36pt#; % height of lowercase ascenders
+cap_height#:=147.6/36pt#; % height of caps
+fig_height#:=139.2/36pt#; % height of numerals
+x_height#:=93/36pt#; % height of lowercase without ascenders
+math_axis#:=54/36pt#; % axis of symmetry for math symbols
+bar_height#:=52.2/36pt#; % height of crossbar in lowercase e
+comma_depth#:=42/36pt#; % depth of comma below baseline
+desc_depth#:=42/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8/36pt#; % lowercase hairline breadth
+stem#:=18/36pt#; % lowercase stem breadth
+curve#:=20.5/36pt#; % lowercase curve breadth
+ess#:=17/36pt#; % breadth in middle of lowercase s
+flare#:=21/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=8.5/36pt#; % uppercase hairline breadth
+cap_stem#:=21.5/36pt#; % uppercase stem breadth
+cap_curve#:=24/36pt#; % uppercase curve breadth
+cap_ess#:=19/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.31pt#; % thickness of lines in math symbols
+
+dish#:=.8/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=17/36pt#; % protrusion of lowercase serifs
+cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+beak_jut#:=6.8/36pt#; % horizontal protrusion of beak serifs
+beak#:=42/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=6pt#; % maximum breadth above or below notches
+bar#:=8.5/36pt#; % lowercase bar thickness
+slab#:=8.5/36pt#; % serif and arm thickness
+cap_bar#:=8.5/36pt#; % uppercase bar thickness
+cap_band#:=8.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=6pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=.7/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4.5/36pt#; % amount of overshoot for curves
+apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+if ligs>1: font_coding_scheme:="TeX text";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ fi
+
+mode_setup; font_setup;
+
+input rsym; % symbols
+input lasychr; % lasy font symbols
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/wasy/wasy7.mf b/Master/texmf-dist/fonts/source/public/wasy/wasy7.mf
new file mode 100644
index 00000000000..9002a2cd8c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/wasy7.mf
@@ -0,0 +1,100 @@
+% This is WASY7.MF in text format
+% additional symbols for math, physics, astronomy and other fields
+
+%input modes;
+%mode=nec_low;
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WASY"; font_size 7pt#;
+
+u#:=15.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=3.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=2/36pt#; % extra space added to all sidebars
+
+body_height#:=189/36pt#; % height of tallest characters
+asc_height#:=175/36pt#; % height of lowercase ascenders
+cap_height#:=172.2/36pt#; % height of caps
+fig_height#:=162.4/36pt#; % height of numerals
+x_height#:=108.5/36pt#; % height of lowercase without ascenders
+math_axis#:=63/36pt#; % axis of symmetry for math symbols
+bar_height#:=60.9/36pt#; % height of crossbar in lowercase e
+comma_depth#:=49/36pt#; % depth of comma below baseline
+desc_depth#:=49/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=7/36pt#; % diameter of rounded corners
+fine#:=6/36pt#; % diameter of sharply rounded corners
+thin_join#:=6/36pt#; % width of extrafine details
+hair#:=8.5/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23/36pt#; % lowercase curve breadth
+ess#:=21/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=29/36pt#; % diameter of dots
+cap_hair#:=9/36pt#; % uppercase hairline breadth
+cap_stem#:=24/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=23/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.34pt#; % thickness of lines in math symbols
+
+dish#:=.9/36pt#; % amount erased at top or bottom of serifs
+bracket#:=14/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=49/36pt#; % vertical protrusion of beak serifs
+vair#:=7/36pt#; % vertical diameter of hairlines
+notch_cut#:=7pt#; % maximum breadth above or below notches
+bar#:=9/36pt#; % lowercase bar thickness
+slab#:=9/36pt#; % serif and arm thickness
+cap_bar#:=9/36pt#; % uppercase bar thickness
+cap_band#:=9/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=7pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=.9/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=5/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+if ligs>1: font_coding_scheme:="TeX text";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ fi
+
+mode_setup; font_setup;
+
+input rsym; % symbols
+input lasychr; % lasy font symbols
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/wasy/wasy8.mf b/Master/texmf-dist/fonts/source/public/wasy/wasy8.mf
new file mode 100644
index 00000000000..ac7557bb310
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/wasy8.mf
@@ -0,0 +1,100 @@
+% This is WASY8.MF in text format
+% additional symbols for math, physics, astronomy and other fields
+
+%input modes;
+%mode=nec_low;
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WASY"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+if ligs>1: font_coding_scheme:="TeX text";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ fi
+
+mode_setup; font_setup;
+
+input rsym; % symbols
+input lasychr; % lasy font symbols
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/wasy/wasy9.mf b/Master/texmf-dist/fonts/source/public/wasy/wasy9.mf
new file mode 100644
index 00000000000..b734d844faa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/wasy9.mf
@@ -0,0 +1,100 @@
+% This is WASY9.MF in text format
+% additional symbols for math, physics, astronomy and other fields
+
+%input modes;
+%mode=nec_low;
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WASY"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+if ligs>1: font_coding_scheme:="TeX text";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ fi
+
+mode_setup; font_setup;
+
+input rsym; % symbols
+input lasychr; % lasy font symbols
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/wasy/wasyb10.mf b/Master/texmf-dist/fonts/source/public/wasy/wasyb10.mf
new file mode 100644
index 00000000000..8105c506111
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/wasyb10.mf
@@ -0,0 +1,100 @@
+% This is WASY10.MF in text format
+% additional symbols for math, physics, astronomy and other fields
+
+%input modes;
+%mode=hp_laser;
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WASY"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=40/36pt#; % lowercase stem breadth
+curve#:=45/36pt#; % lowercase curve breadth
+ess#:=36/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=50/36pt#; % uppercase stem breadth
+cap_curve#:=53/36pt#; % uppercase curve breadth
+cap_ess#:=51/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=12/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+if ligs>1: font_coding_scheme:="TeX text";
+else: font_coding_scheme:=if ligs=0: "TeX typewriter text"
+ else: "TeX text without f-ligatures" fi;
+ fi
+
+mode_setup; font_setup;
+
+input rsym; % symbols
+input lasychr; % lasy font symbols
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/wasy/wasychr.mf b/Master/texmf-dist/fonts/source/public/wasy/wasychr.mf
new file mode 100644
index 00000000000..7af4d698df7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wasy/wasychr.mf
@@ -0,0 +1,225 @@
+%
+% These characters should rather be in an character font than in a
+% symbol font
+%
+
+cmchar "Cent sign";
+beginchar(hex"67",9u#,asc_height#,desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(0,0);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+pickup crisp.nib;
+x6=x7=x8=x9=x2; y7=y2; y8=y4; bot y9=-d; y6-y7 = y8-y9;
+pos6(bar,0); pos7(bar,0);
+pos8(bar,0); pos9(bar,0);
+filldraw stroke z6e--z7e; % upper bar
+filldraw stroke z8e--z9e; % lower bar
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Upside down e";
+beginchar(hex"55",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,180);
+pos2(vair,270); pos3(left_curve,0);
+y1=good.y (h-bar_height); bot y2r=vround (-1.5oo); y0l=top y1;
+lft x1r=hround max(.5u,u-.5right_curve);
+rt x3r=hround min(w-.5u,w-(1.25u-.5left_curve)); x2=.5w-.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(2,1)}}; % left bowl
+y3=.5[y2,y4]; top y4r=h+oo; x4=x2-.25u;
+if serifs: pos4(vair',90); pos5(hair,180);
+ y5=min(good.y(h-(.5bar_height-.9)),y4l-vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=max(x,x4l-.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % right bowl, arc, and terminal
+else: pos4(vair,90);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % right bowl and arc
+ pickup fine.nib; pos4'(vair,90); z4=z4';
+ pos5(.5[vair,flare],95); lft x5r=hround(.6u);
+ y5r=good.y(y5r-1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,left,1,4); fi % terminal
+path testpath; testpath=super_arc.l(2,3) & super_arc.l(3,4);
+y1'r=y0r=y0l-.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((2h,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Phonetic open o";
+beginchar(hex"6C",8.5u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',270); pos4(vair',90);
+x2=x4=.5w; top y4r=vround(h+oo); bot y2r=-1.5oo;
+pos3(curve,0); rt x3l=hround (w-max(.6u,1.35u-.5curve)); y3=.5h;
+if serifs: pos1(hair,180); pos0(flare,180);
+ y1=h-.70[bar_height,h]+.5flare;
+ lft x1r=hround(1.0u); bulb(2,1,0); % bulb
+ pos5(hair,180); lft x5r=hround(1.2u);
+ y5=min(good.y(h+oo-.45bar_height+.9),y4l-vair');
+ (x,y4l)=whatever[z4l,z5r]; x4l:=max(x,x4l-.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and upper terminal
+else: pos1(4/7[vair',flare],260);
+ lft x1r=hround(.6u); bot y1r=vround (.82[h-bar_height,bot y2r]);
+ filldraw stroke term.e(2,1,left,.8,4); % lower terminal
+ pos5(.6[vair',flare],95); lft x5r=hround(1.5u);
+ y5r=good.y(y5l+h-1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{left}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e<255:
+ p.e:=z4e{left}..tension atleast.9 and 1..{dir 255}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and upper terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The small islandic thorn";
+beginchar(hex"69",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,x_height)--(edge,0)) intersectionpoint
+ (z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase Thorn";
+beginchar(hex"6A",12u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x3=x7=x2; x4=x6=.5w+.75u; x5r=hround(w-u);
+y3r=vround(.80h);
+y7r=vround(.20h);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: dish_serif(1,0,a,1/3,cap_jut,b,1/3,cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Islandic edh";
+beginchar(hex"6B",9u#,asc_height#,0);
+italcorr .8x_height#*slant;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair',-90);
+penpos1'(hair,0);
+penpos2(curve,180); penpos4(curve,0); penpos4'(curve,0);
+penpos5(curve,0); penpos6(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=x_height; y3r=-oo;
+y2=y4=.5(x_height-oo)-vair_corr; y2l:=y4l:=.5x_height;
+y4'=y4+1.5u; x4'=x4;
+top y6 = h;
+x6= if monospace: 2/3 else: 1/3 fi [x2,x5];
+y5=0.66[y4',y6];
+x5=0.60[x4',x6];
+z1' = z4';
+penstroke pulled_arc.e(1',1)
+ & pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)..z4'e..z5e---z6e; % bowl and stem
+numeric newstem; newstem = .5[hair,.7stem];
+penpos7(newstem,-45); penpos8(newstem,-45);
+top y8l = h;
+bot y7r = .12[top y1r,h];
+(x8-x7)/(y6-y5) = (y8-y7)/(x5-x6);
+z=.5[z7,z8]; % make bar symmetric
+(y6-y)/(y6-y5) = (x6-x)/(x6-x5);
+penstroke z7e--z8e; % bar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Permille sign";
+cmchar "Per mille sign";
+beginchar(hex"68",9u#+max(9u#,3fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.35w-u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4) & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270);
+pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(.70w-u); x6-x8 = x2-x4;
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bowl
+pos5'(vair,90); pos6'(left_curve,180); pos7'(vair,270);
+pos8'(right_curve,360);
+bot y7'r=-d; rt x8'r=hround(w-u); x6'-x8' = x6-x8;
+top y5'r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5'=x7'=.5[x6',x8']; y6'=y8'=.5[y5',y7'];
+filldraw stroke pulled_super_arc.e(5',6')(superpull)
+ & pulled_super_arc.e(6',7')(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7',8') & super_arc.e(8',5'); % right half of lower bowl
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(.67w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/wnri/acctmax.mf b/Master/texmf-dist/fonts/source/public/wnri/acctmax.mf
new file mode 100644
index 00000000000..3ff533b9bd3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/acctmax.mf
@@ -0,0 +1,106 @@
+%
+% Washington Romanized Indic accent driver
+%
+% File : acctmax.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+transform At,Tf; At=Tf=identity;
+
+numeric acctdiff; acctdiff = min(dot_size,1/3(asc_height-x_height));
+
+def makeACCENT(suffix $) =
+transform Tf; Tf = identity shifted(-.5w,0);
+if tracingspecs>0:
+ message ">> savepicture ";
+ show str $;
+ show Tf;
+ fi
+picture $; $=currentpicture transformed Tf;
+enddef;
+
+def savePicture(suffix $) =
+if tracingspecs>0:
+ message ">> savepicture ";
+ show str $;
+ show Tf;
+ fi
+picture $; $=currentpicture transformed Tf;
+enddef;
+
+% addpicture
+def ap(suffix $) =
+ if unknown At: transform At; At=identity; fi
+ if tracingspecs>0:
+ message ">> addpicture ";
+ show str $;
+ show At;
+ fi
+ addto currentpicture also $ transformed At;
+enddef;
+
+def whap(suffix $,$$,$$$) =
+ if unknown At: transform At; At=identity; fi
+ if tracingspecs>0:
+ message ">> addpicture ";
+ show str $;
+ show At;
+ fi
+ if w > $$$: addto currentpicture also $ transformed At;
+ else: addto currentpicture also $$ transformed At;
+ fi
+enddef;
+
+numeric adhocht; adhocht=0;
+
+% shall accented characters show the height and depth of the accent?
+if unknown trueheights: boolean trueheights; trueheights=false; fi
+
+%adjustacctht
+def ah =
+ if trueheights:
+ if asc_height + (h - x_height) + adhocht > h:
+ h:=asc_height + (h - x_height)+ adhocht; charht:= h / vppp;
+ fi
+ fi
+enddef;
+
+%adjustacctdp
+def ad =
+ if trueheights:
+ if d < desc_depth: d:=desc_depth; chardp:= d / vppp; fi
+ fi
+enddef;
+
+def deepen =
+ if trueheights:
+ if d < max(dot_size,cap_curve)+.25x_height: d:=dot_diam+.25x_height;
+ chardp:=max(dot_size#,cap_curve#)+.25x_height#;
+ fi
+ fi
+enddef;
+
+% general accent height shift from x_height
+numeric acht;
+acht:= if serifs: max(2/3[asc_height,x_height],x_height+o+hair)
+ else: vround 2/3[asc_height,x_height]
+ fi ;
+
+% replaced by use of czd
+%def slurped (expr accentpoint) =
+% identity shifted ((xpart accentpoint) + slant*(ypart accentpoint),aspect_ratio * (ypart accentpoint))
+%enddef;
+
+% end of file acctmax.mf
diff --git a/Master/texmf-dist/fonts/source/public/wnri/acutacct.mf b/Master/texmf-dist/fonts/source/public/wnri/acutacct.mf
new file mode 100644
index 00000000000..a259ad2b608
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/acutacct.mf
@@ -0,0 +1,30 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw acute accents
+%
+
+boolean ACUTE; ACUTE=true;
+
+cmchar "Acute accent";
+beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+makeACCENT(AcutePic);
+penlabels(1,2); endgroup;
+extra_endchar:=
+ " czu ap(AcutePic); ah; oechar; ";
+def cp = acute enddef;
+boolean dotson; dotson:=false;
+
+% end of file acutacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/addpunc.mf b/Master/texmf-dist/fonts/source/public/wnri/addpunc.mf
new file mode 100644
index 00000000000..f94945d7567
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/addpunc.mf
@@ -0,0 +1,115 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros for various punctuation marks
+%
+
+cmchar "Circumflex (hat) accent";
+newchar(hat,9u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Underbar";
+compute_spread((5/8+.45)*x_height#,(3/4+.55)*x_height#);
+newchar(underscore,14u#,0,spread#-math_axis#+.5rule_thickness#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x2=w-x1; bot y1=bot y2=-d;
+draw z1--z2; % bar
+labels(1,2); endchar;
+
+cmchar "Left curly brace";
+newchar(left_brace,9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Right curly brace";
+newchar(right_brace,9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Tilde (squiggle) accent";
+newchar(Tilde,9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Reverse slash (backslash)";
+newchar(backslash,9u#,body_height#,paren_depth#);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; top y1=h+eps;
+rt x2=hround(w-u)+eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+labels(1,2); endchar;
+
+cmchar "Vertical line";
+newchar(vertical,5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+cmchar "Closing quotes";
+newchar(rquote,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+% end of file addpunc.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/baraacct.mf b/Master/texmf-dist/fonts/source/public/wnri/baraacct.mf
new file mode 100644
index 00000000000..012b5a39ce2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/baraacct.mf
@@ -0,0 +1,52 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros for macron + acute accent
+%
+
+numeric barwidth; barwidth=vround .2[vair,stem];
+numeric semiwidth; semiwidth=7.5u;
+
+cmchar "Acute accent";
+beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+transform Tf; Tf = identity shifted (-.5w+slant*(-y2),-y2*aspect_ratio);
+savePicture(MacronPic);
+endgroup;
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+transform At; At=identity shifted(.5w+slant*(h+acctdiff),aspect_ratio*(h+acctdiff));
+ap(MacronPic);
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+endgroup;
+
+
+
+extra_endchar:=
+ " czu ap(MacronPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = baract enddef;
+
+% end of file baracct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/bargacct.mf b/Master/texmf-dist/fonts/source/public/wnri/bargacct.mf
new file mode 100644
index 00000000000..59f2564ae43
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/bargacct.mf
@@ -0,0 +1,49 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros for macron + grave accent
+%
+
+numeric barwidth; barwidth=vround .2[vair,stem];
+numeric semiwidth; semiwidth=7.5u;
+
+cmchar "Grave accent";
+beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+transform Tf; Tf = identity shifted (-.5w+slant*(-y2),-y2*aspect_ratio);
+savePicture(MacronPic);
+endgroup;
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+transform At; At=identity shifted(.5w+slant*(h+acctdiff),aspect_ratio*(h+acctdiff));
+ap(MacronPic);
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(MacronPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = bargrv enddef;
+
+% end of file bargacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/bnduacct.mf b/Master/texmf-dist/fonts/source/public/wnri/bnduacct.mf
new file mode 100644
index 00000000000..d36283b2e35
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/bnduacct.mf
@@ -0,0 +1,32 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macro for candrabindu accent
+%
+
+cmchar "candrabindu accent";
+numeric dot_diam#, dot_diam; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+y1=y3=.5[y2l,h]; lft x1r=w-rt x3r=hround(2u-.5vair);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+pickup tiny.nib; pos11(dot_diam,0); pos12(dot_diam,90);
+x11=x12=.5w; top y12r=max(h+1,y2l+1.5dot_diam);
+y11=.5[y12l,y12r]; dot(11,12);
+makeACCENT(CbPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(CbPic); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = bindu enddef;
+
+% end of file bnduacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/brbracct.mf b/Master/texmf-dist/fonts/source/public/wnri/brbracct.mf
new file mode 100644
index 00000000000..d580ce0c17f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/brbracct.mf
@@ -0,0 +1,48 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw macron + breve accents
+%
+
+numeric barwidth; barwidth=vround .2[vair,stem];
+numeric semiwidth; semiwidth=7.5u;
+
+%cmchar "Breve accent";
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+transform Tf; Tf = identity shifted (-.5w+slant*(-y2r),-y2r*aspect_ratio);
+savePicture(MacronPic);
+endgroup;
+
+%cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+transform At; At=identity shifted(.5w+slant*(h+acctdiff),aspect_ratio*(h+acctdiff));
+ap(MacronPic);
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(MacronPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = mcbrv enddef;
+
+% end of file brbracct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/brevacct.mf b/Master/texmf-dist/fonts/source/public/wnri/brevacct.mf
new file mode 100644
index 00000000000..a9c1f6501f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/brevacct.mf
@@ -0,0 +1,26 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw breve accents
+%
+
+cmchar "Breve accent";
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+makeACCENT(BrevePic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(BrevePic); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+def cp = brev enddef;
+
+% end of file brevacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/cdilacct.mf b/Master/texmf-dist/fonts/source/public/wnri/cdilacct.mf
new file mode 100644
index 00000000000..0f8bdd2e4d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/cdilacct.mf
@@ -0,0 +1,34 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw cedilla accents
+%
+
+% cdilorigin marks where the top of the connector starts
+if unknown cdilorigin: numeric cdilorigin; cdilorigin=-o; fi
+
+cmchar "Cedilla accent";
+beginchar(oct"030",8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+x1=.5w+.5u;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ if monospace: top else: bot fi y1=cdilorigin;
+ bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+ makeACCENT(CedilPic);
+endgroup;
+extra_endchar:=
+ " czd ap(CedilPic); ah; oechar; ";
+
+boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.
+
+def cp = cdil enddef;
+
+% end of file cdilacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/facutact.mf b/Master/texmf-dist/fonts/source/public/wnri/facutact.mf
new file mode 100644
index 00000000000..062d29a189a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/facutact.mf
@@ -0,0 +1,33 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw flat acute accents
+%
+
+boolean ACUTE; ACUTE=true;
+
+cmchar "Flat acute accent";
+beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ y1:=.825[y2,y1]; % flatten it a bit
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=.825[x_height,h]; % flattened a bit
+ bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+makeACCENT(AcutePic);
+penlabels(1,2); endgroup;
+extra_endchar:=
+ " czu ap(AcutePic); ah; oechar; ";
+def cp = acute enddef;
+boolean dotson; dotson:=false;
+
+% end of file facutact.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/fbaraact.mf b/Master/texmf-dist/fonts/source/public/wnri/fbaraact.mf
new file mode 100644
index 00000000000..cdd675b8e2b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/fbaraact.mf
@@ -0,0 +1,52 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw macron and flattened acute accents
+%
+
+numeric barwidth; barwidth=vround .2[vair,stem];
+numeric semiwidth; semiwidth=7.5u;
+
+cmchar "Acute accent";
+beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ y1:=.825[y2,y1]; % flatten it a bit
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=.825[x_height,h]; % flattened a bit
+ bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+transform Tf; Tf = identity shifted (-.5w+slant*(-y2),-y2*aspect_ratio);
+savePicture(MacronPic);
+endgroup;
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+transform At; At=identity shifted(.5w+slant*(h+acctdiff),aspect_ratio*(h+acctdiff));
+ap(MacronPic);
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(MacronPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = baract enddef;
+
+% end of file fbaraact.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/fbargact.mf b/Master/texmf-dist/fonts/source/public/wnri/fbargact.mf
new file mode 100644
index 00000000000..6273e14cac5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/fbargact.mf
@@ -0,0 +1,52 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw macron and flat grave accents
+%
+
+numeric barwidth; barwidth=vround .2[vair,stem];
+numeric semiwidth; semiwidth=7.5u;
+
+cmchar "Grave accent";
+beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ y1:=.825[y2,y1]; % flatten it a bit
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=.825[x_height,h]; % flattened a bit
+ bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+transform Tf; Tf = identity shifted (-.5w+slant*(-y2),-y2*aspect_ratio);
+savePicture(MacronPic);
+endgroup;
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+transform At; At=identity shifted(.5w+slant*(h+acctdiff),aspect_ratio*(h+acctdiff));
+ap(MacronPic);
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(MacronPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = bargrv enddef;
+
+% end of file fbargact.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/fbrevact.mf b/Master/texmf-dist/fonts/source/public/wnri/fbrevact.mf
new file mode 100644
index 00000000000..cc270d7f435
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/fbrevact.mf
@@ -0,0 +1,26 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw flat breve accents
+%
+
+cmchar "Flat breve accent";
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=.825[x_height,h]; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+makeACCENT(BrevePic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(BrevePic); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+def cp = cup enddef;
+
+% end of file fbrevact.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/fgravact.mf b/Master/texmf-dist/fonts/source/public/wnri/fgravact.mf
new file mode 100644
index 00000000000..072e7646781
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/fgravact.mf
@@ -0,0 +1,32 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw grave accents
+%
+
+cmchar "Grave accent";
+beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ y1:=.825[y2,y1]; % flatten it a bit
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=.825[x_height,h]; % flattened a bit
+ bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+makeACCENT(GravePic);
+endgroup;
+extra_endchar:=
+ " czu ap(GravePic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = grave enddef;
+
+% end of file fgravact.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/fhachact.mf b/Master/texmf-dist/fonts/source/public/wnri/fhachact.mf
new file mode 100644
index 00000000000..c7508435975
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/fhachact.mf
@@ -0,0 +1,37 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw flat hachek accents
+%
+
+cmchar "Hachek (check) accent";
+beginchar(oct"024",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=.825[x_height,h];
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=.825[x_height,h]; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=.825[x_height,h]; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(CaronPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(CaronPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = hach enddef;
+
+% end of file fhachact.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/fhattact.mf b/Master/texmf-dist/fonts/source/public/wnri/fhattact.mf
new file mode 100644
index 00000000000..4a1245b2565
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/fhattact.mf
@@ -0,0 +1,32 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw flat circumflex accents
+%
+
+cmchar "Circumflex (hat) accent";
+beginchar(oct"136",9u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=.825[x_height,h]; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=.825[x_height,h]; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+makeACCENT(HatPic);
+endgroup;
+extra_endchar:=
+ " czu ap(HatPic); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = hatt enddef;
+
+% end of file fhattact.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/fubrvact.mf b/Master/texmf-dist/fonts/source/public/wnri/fubrvact.mf
new file mode 100644
index 00000000000..e6a1991d3bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/fubrvact.mf
@@ -0,0 +1,28 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw flat subscript breve accents
+%
+
+cmchar "Breve accent";
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=.825[x_height,h]; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+transform Tf; Tf=identity shifted(-.5w+slant*(-y1-.25x_height),aspect_ration(-y1-.25x_height));
+savePicture(UBrevPic);
+endgroup;
+
+extra_endchar:=
+ " czd ap(UBrevPic); ah; oechar; ";
+boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.
+
+def cp = ubrv enddef;
+
+% end of file fubrvact.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/fudacact.mf b/Master/texmf-dist/fonts/source/public/wnri/fudacact.mf
new file mode 100644
index 00000000000..0be19e75b7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/fudacact.mf
@@ -0,0 +1,46 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw combination flat acute accent and underdot
+%
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+transform Tf; Tf = identity shifted (-.5w + slant*(-h-.25x_height),aspect_ratio*(-h-.25x_height));
+savePicture(UdotPic);
+endgroup;
+
+cmchar "Acute accent";
+beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ y1:=.825[y2,y1]; % flatten it a bit
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=.825[x_height,h]; % flattened a bit
+ bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+makeACCENT(AcutePic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(AcutePic); czdm ap(UdotPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+def cp = udac enddef;
+
+% end of file fudacact.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/fudgract.mf b/Master/texmf-dist/fonts/source/public/wnri/fudgract.mf
new file mode 100644
index 00000000000..840bf97ad15
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/fudgract.mf
@@ -0,0 +1,45 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw combination flat grave accent and underdot
+%
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+transform Tf; Tf = identity shifted (-.5w+ slant*(-h-.25x_height),aspect_ratio*(-h-.25x_height));
+savePicture(UdotPic);
+endgroup;
+
+cmchar "Grave accent";
+beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ y1:=.825[y2,y1]; % flatten it a bit
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=.825[x_height,h]; % flattened a bit
+ bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+makeACCENT(GravePic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(GravePic); czdm ap(UdotPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+def cp = udgr enddef;
+
+% end of file fudgract.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/gamma.mf b/Master/texmf-dist/fonts/source/public/wnri/gamma.mf
new file mode 100644
index 00000000000..cf808baef30
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/gamma.mf
@@ -0,0 +1,50 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw roman gammas
+%
+
+% cmchar "gamma";
+newchar(lgam,if serifs: 9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut; pickup tiny.nib;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=if serifs:l+letter_fit+outer_jut+.25u+tiny else: u fi;
+y1=y4=h; x5=x3=x2=.5[x1,x4]; y3=y2=.3h; bot y5r=-d;
+numeric gbot; gbot=.5(left_stem+right_stem);
+pos1(left_stem,0); pos4(right_stem,-180); pos2(left_stem,0);
+pos3(right_stem,-180); pos5(gbot,-90);
+filldraw stroke z1e--z2e{z2-z1}...{left}z5e{left}...{z4-z3}z3e--z4e;
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(1,2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4,3,c,.6,inner_jut,d,1/2,outer_jut)(dark);
+ fi % right serif
+penlabels(0,1,2,3,4,5); endchar;
+
+newchar(CGam,if serifs: 13.5u# else:13u# fi,cap_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut; pickup tiny.nib;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=if serifs:l+letter_fit+outer_jut+.25u+tiny else: u fi;
+y1=y4=h; x5=x3=x2=.5[x1,x4]; y3=y2=.625x_height; bot y5r=-d;
+numeric gbot; gbot=.5(left_stem+right_stem);
+pos1(left_stem,0); pos4(right_stem,-180); pos2(left_stem,0);
+pos3(right_stem,-180); pos5(gbot,-90);
+filldraw stroke z1e--z2e{z2-z1}...{left}z5e{left}...{z4-z3}z3e--z4e;
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x4l-jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(1,2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4,3,c,.6,inner_jut,d,1/2,outer_jut)(dark);
+ fi % right serif
+penlabels(0,1,2,3,4,5); endchar;
+
+% end of file gamma.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/gram_max.mf b/Master/texmf-dist/fonts/source/public/wnri/gram_max.mf
new file mode 100644
index 00000000000..5c84be03f62
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/gram_max.mf
@@ -0,0 +1,552 @@
+%
+% Washington Romanized Indic accent driver
+%
+
+% grmax
+grmax:=1; % when |grmax| is known, this file has been input
+
+numeric xxxpr; xxxpr:=0;
+
+pen penpixel; penpixel = pensquare;
+
+% Grave_accent is called with suffix, dummy_suffix e.g.
+% Grave_accent(2,q)
+% the accent is centered above 'suffix' 1 to 1.5 dot_sizes higher
+def Grave_accent (suffix $,@) =
+if serifs: pickup crisp.nib;
+ x@_1+1.5curve=x$; x@_2=x$+1.5curve;
+ if y$ < .9cap_height: y@_1=y$+if hefty: 1.5 fi dot_size+.5bar_height; y@_2=y$+if hefty: 1.5 fi dot_size;
+ else: y@_1=y$+if hefty: 1.2 else: .8 fi dot_size+.4bar_height; y@_2=y$+if hefty: 1.2 else: .8 fi dot_size; fi
+ numeric theta; theta=angle(z@_2-z@_1)+90;
+ pos@_1(stem,theta); pos@_2(hair,theta);
+ filldraw circ_stroke z@_1e--z@_2e; % diagonal
+else: pickup fine.nib; pos@_1(stem,0); pos@_2(vair,0);
+ x@_1l=x$-1.5u; x@_2r=x$+1.5u;
+ y@_1=y$+1.5dot_size+2.5u; y@_2=y$+1.5dot_size;
+ filldraw stroke z@_1e--z@_2e; fi % diagonal
+penlabels(@_1,@_2); enddef;
+
+% Acute_accent is called with suffix, and dummy_suffix
+% as in the Grave_accent call
+def Acute_accent (suffix $,@) =
+if serifs: pickup crisp.nib; x@_1=x$+1.5curve; x@_2=x$-1.5curve;
+ if y$ < .9cap_height: y@_1=y$+ if hefty: 1.5 fi dot_size+.5bar_height; y@_2=y$+ if hefty: 1.5 fi dot_size;
+ else: y@_1=y$+if hefty: 1.2 else: .8 fi dot_size+.4bar_height; y@_2=y$+if hefty: 1.2 else: .8 fi dot_size; fi
+% y@_2=y$+dot_size;
+ numeric theta; theta=angle(z@_2-z@_1)+90;
+ pos@_1(stem,theta); pos@_2(hair,theta);
+ filldraw circ_stroke z@_1e--z@_2e; % diagonal
+else: pickup fine.nib; pos@_1(stem,0); pos@_2(vair,0);
+ x@_1r=x$+1.5u; x@_2l=x$-1.5u;
+ y@_1=y$+1.5dot_size+2.5u; y@_2=y$+1.5dot_size;
+ filldraw stroke z@_1e--z@_2e; fi % diagonal
+penlabels(@_1,@_2); enddef;
+
+numeric barwidth; barwidth=vround .2[vair,stem];
+
+def baracute (suffix $,@) =
+if serifs: pickup crisp.nib; x@_1=x$+1.5curve; x@_2=x$-1.5curve;
+ if y$ < .9cap_height: y@_1=2curve+y$+ if hefty: 1.5 fi dot_size+.5bar_height; y@_2=2curve+y$+ if hefty: 1.5 fi dot_size;
+ else: y@_1=2curve+y$+ if hefty: 1.5 fi dot_size+.4bar_height; y@_2=2curve+y$+ if hefty: 1.5 fi dot_size; fi
+ numeric theta; theta=angle(z@_2-z@_1)+90;
+ pos@_1(stem,theta); pos@_2(hair,theta);
+ filldraw circ_stroke z@_1e--z@_2e; % diagonal
+else: pickup fine.nib; pos@_1(stem,0); pos@_2(vair,0);
+ x@_1r=x$+1.5u; x@_2l=x$-1.5u;
+ y@_1=2curve+y$+1.5dot_size+2.5u; y@_2=2curve+y$+1.5dot_size;
+ filldraw stroke z@_1e--z@_2e; fi % diagonal
+pos@_99(barwidth,90); pos@_100(barwidth,90);
+bot y@_99l=bot y@_100l=y$+dot_size; x@_99=x$-.21body_height; x@_100=x$+.21body_height;
+filldraw stroke z@_99e--z@_100e;
+penlabels(@_1,@_2,@_99,@_100); enddef;
+
+% bar_accent
+% called with left-coord,right coord, dummy coord,accent_bar_height
+% e.g. bar_accent(3,6,q,.5(asc_height-bar_height))
+% bar extends from x_left to x_right at height_h
+def bar_accent (suffix $,$$,@)(expr bH) =
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos@1(macron_breadth,90); pos@2(macron_breadth,90);
+top y@1r=top y@2r=bH+o; lft x@1=x$; rt x@2=x$$;
+filldraw stroke z@1e--z@2e; % bar
+penlabels(@1,@2); enddef;
+
+% macron, fixed width macron, centered over $ and .4[x_height,asc_height] above
+% suffix passed should be a point at top center of main portion of char
+def Macron (suffix $,@) =
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos@1(macron_breadth,90); pos@2(macron_breadth,90);
+y@1=y@2=y$+.4[x_height,asc_height]-x_height;
+if hefty: lft x@1=x$-.35w ; rt x@2=x$+.35w ;
+ else: lft x@1=x$-3.25u; rt x@2=x$+3.25u; fi
+filldraw stroke z@1e--z@2e; % bar
+penlabels(@1,@2); enddef;
+
+% cross for l call with suffix of crossing point on stem
+def cross_for_l (suffix $,@) =
+pickup crisp.nib; x@_2-x@_1=max(4u,2.8u+stem); .5[x@_1,x@_2]=x$;
+y@_1-.75bar=y$-.75dot_size; y@_2+.75bar=y$+.75dot_size;
+numeric theta; theta=angle(z@_2-z@_1)+90;
+pos@_1(1.5bar,theta); pos@_2(1.5bar,theta);
+filldraw stroke z@_1e--z@_2e; % diagonal
+penlabels(1,2); enddef;
+
+% longer cross for l
+def cross_for_lz (suffix $,@) =
+pickup crisp.nib; x@_2-x@_1=max(6u,4.2u+stem); .5[x@_1,x@_2]=x$;
+y@_1-.75bar=y$-.75dot_size; y@_2+.75bar=y$+.75dot_size;
+numeric theta; theta=angle(z@_2-z@_1)+90;
+pos@_1(1.5bar,theta); pos@_2(1.5bar,theta);
+filldraw stroke z@_1e--z@_2e; % diagonal
+penlabels(1,2); enddef;
+
+% dot_sharp_values used by underdot
+def dot_sharp_values =
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+numeric dot_top#; dot_top#=min(asc_height#,10/7x_height#+.5dot_diam#);
+enddef;
+
+% underdot draws a dot one dot-diameter below the baseline of an x-coordinate
+% specified in the call to underdot; the x-coordinate will ordinarily be
+% the low-center point of the character shape. The suffix only of the
+% x-coordinate is passed, along with a dummy suffix to use for point
+% plotting, e.g.
+% underdot(6,q);
+def underdot (suffix $,@) =
+dot_sharp_values;
+define_whole_blacker_pixels(dot_diam);
+pickup tiny.nib; pos@_1(dot_diam,0); pos@_2(dot_diam,90);
+x@_1=x@_2=x$; top y@_2r=-dot_diam;
+y@_1=.5[y@_2l,y@_2r];
+dot(@_1,@_2); % dot
+penlabels(@_1,@_2); enddef;
+
+% overdot
+% calling specification is as in underdot
+def overdot (suffix $,@) =
+dot_sharp_values;
+define_whole_blacker_pixels(dot_diam);
+pickup tiny.nib; pos@_1(dot_diam,0); pos@_2(dot_diam,90);
+x@_1=x@_2=x$; top y@_2r=2dot_diam+y$;
+y@_1=.5[y@_2l,y@_2r];
+dot(@_1,@_2); % dot
+penlabels(@_1,@_2); enddef;
+
+% umlaut
+% calling specification is as in underdot
+def umlaut (suffix $,@) =
+dot_sharp_values;
+define_whole_blacker_pixels(dot_diam);
+pickup tiny.nib; pos@_1(dot_diam,0); pos@_2(dot_diam,90);
+x@_1=x@_2=x$-1.25dot_diam; top y@_2r=2dot_diam+y$;
+y@_1=.5[y@_2l,y@_2r];
+dot(@_1,@_2); % dot
+pos@_3(dot_diam,0); pos@_4(dot_diam,90);
+x@_3=x@_4=x$+1.25dot_diam; top y@_4r=2dot_diam+y$;
+y@_3=.5[y@_4l,y@_4r];
+dot(@_3,@_4); % dot
+enddef;
+% calling specification is as in underdot
+def underumlaut (suffix $,@) =
+dot_sharp_values;
+define_whole_blacker_pixels(dot_diam);
+pickup tiny.nib; pos@_1(dot_diam,0); pos@_2(dot_diam,90);
+x@_1=x@_2=x$-1.75u; top y@_2r=y$-dot_diam;
+y@_1=.5[y@_2l,y@_2r];
+dot(@_1,@_2); % dot
+pos@_3(dot_diam,0); pos@_4(dot_diam,90);
+x@_3=x@_4=x$+1.75u; top y@_4r=y$-dot_diam;
+y@_3=.5[y@_4l,y@_4r];
+dot(@_3,@_4); % dot
+enddef;
+
+% glottal puts a comma/apostrophe with dot at specified location
+% called with suffix above spot to place glottal
+% glottal(2);
+def glottal(suffix $)=
+x95=x$;
+if hefty: y95=y$+2dot_size+comma_depth else: y95=y$+1.25dot_size+.75comma_depth fi;
+if hefty: comma(95,hacc,dot_size,.28u,comma_depth); % large comma
+else: comma(95,hacc,.75dot_size,.25u,.75comma_depth); fi % comma with increased jut
+enddef;
+
+% glotchek draws glottal and hachek above the specified x coordinate supplied
+% as a suffix
+def glotchek (suffix @) =
+if serifs:
+ pickup crisp.nib; pos@_2'(.5[vair,curve],90); top y@_2'r=h;
+ pos@_2(.5[vair,curve],90); x@_2=.5w;
+ x@_1=w-x@_3=good.x 2.25u; top y@_1=top y@_3=h-.25dot_size; y@_1-y@_2=.5(y@_2'-x_height-.25dot_size);
+ pos@_1(hair,angle(z@_2-z@_1)+90); pos@_3(hair,angle(z@_3-z@_2)+90);
+ filldraw stroke z@_1e--z@_2e--z@_3e; % diagonals
+else:
+ pickup fine.nib; pos@_1(vair,0); pos@_3(vair,0); x@_1=w-x@_3;
+ pos@_2(stem,0); bot y@_2=vround(1/12[x_height,vround min(asc_height,2x_height)]+o)-.25dot_size; x@_2=.5w;
+ top y@_1=top y@_3=h+o-.25dot_size; lft x@_1l=hround(rt x@_2r-3.25u-.5vair);
+ z@_0=whatever[z@_1r,z@_2r]=whatever[z@_2l,z@_3l];
+ y@_4l=y@_4r=y@_2; x@_4l=good.x .2[x@_2l,x@_2]; x@_4r=w-x@_4l;
+ filldraw z@_4l--z@_1l--z@_1r--z@_0--z@_3l--z@_3r--z@_4r--cycle; fi % diagonals
+x95-.5dot_size=hround(x@_2-.5dot_size); % y95=y@_2+.75comma_depth+.5dot_size;
+y95=body_height+dot_size;
+if hefty: comma(95,hacc,dot_size,.28u,.85comma_depth); % large comma
+else: comma(95,hacc,.75dot_size,.25u,.75comma_depth); fi % comma with increased jut
+penlabels(0,1,2,3,4); enddef;
+
+% hachek accent macro, give suffix of point above which to center it
+def hachekit (suffix $,@) =
+if serifs:
+ pickup crisp.nib; pos@_2'(.5[vair,curve],90); bot y@_2'=y$+dot_size;
+ pos@_2(.5[vair,curve],90); x@_2=x$; y@_2=y@_2';
+x@_1+.21body_height=x@_2=x@_3-.21body_height;
+y@_1=y@_3=y@_2+.21body_height;
+% x@_1=w-x@_3=good.x 2.25u; top y@_1=top y@_3=h; y@_1-y@_2=.5(y@_2'-x_height);
+ pos@_1(hair,angle(z@_2-z@_1)+90); pos@_3(hair,angle(z@_3-z@_2)+90);
+ filldraw stroke z@_1e--z@_2e--z@_3e; % diagonals
+% show z@_1,z@_2,z@_3,z@_1r,z@_2r,z@_3r,z@_1l,z@_2l,z@_3l;
+else:
+ pickup fine.nib; pos@_1(vair,0); pos@_3(vair,0); x@_1+.21body_height=x$=x@_2=x@_3-.21body_height;
+ pos@_2(stem,0); bot y@_2=y$+dot_size;
+ top y@_1=top y@_3=top y@_2+.21body_height; % lft x@_1l=hround(rt x@_2r-3.25u-.5vair);
+ z@_0=whatever[z@_1r,z@_2r]=whatever[z@_2l,z@_3l];
+ y@_4l=y@_4r=y@_2; x@_4l=good.x .2[x@_2l,x@_2]; x@_4r=2x$-x@_4l;
+ filldraw z@_4l--z@_1l--z@_1r--z@_0--z@_3l--z@_3r--z@_4r--cycle; fi % diagonals
+% show z@_0,z@_1,z@_2,z@_3,z@_1r,z@_2r,z@_3r,z@_1l,z@_2l,z@_3l;
+penlabels(0,1,2,3,4); enddef;
+
+def hatme (suffix $,@) =
+if serifs:
+ pickup crisp.nib; pos@_2'(.5[vair,curve],90); top y@_2'=y$+ if hefty: 2 else: 1.5 fi dot_size+.21body_height;
+ pos@_2(.5[vair,curve],90); x@_2=x$; y@_2=y@_2';
+ x@_1+.21body_height=x@_2=x@_3-.21body_height;
+ y@_1=y@_3=y@_2-.21body_height;
+ pos@_1(hair,angle(z@_2-z@_1)+90); pos@_3(hair,angle(z@_3-z@_2)+90);
+ filldraw stroke z@_1e--z@_2e--z@_3e; % diagonals
+else:
+ pickup fine.nib; pos@_1(vair,0); pos@_3(vair,0); x@_1+.21body_height=x$=x@_2=x@_3-.21body_height;
+ pos@_2(stem,0); top y@_2=y$+dot_size+.21body_height;
+ y@_1=y@_3=y@_2-.21body_height;
+ z@_0=whatever[z@_1r,z@_2r]=whatever[z@_2l,z@_3l];
+ y@_4l=y@_4r=y@_2; x@_4l=good.x .2[x@_2l,x@_2]; x@_4r=2x$-x@_4l;
+ filldraw z@_4l--z@_1l--z@_1r--z@_0--z@_3l--z@_3r--z@_4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); enddef;
+
+% glotchek a hachek with glottal accent
+def glotchekit (suffix $,@) =
+if serifs:
+ pickup crisp.nib; pos@_2'(.5[vair,curve],90); bot y@_2'=y$+.75dot_size;
+ pos@_2(.5[vair,curve],90); x@_2=x$; y@_2=y@_2';
+x@_1+3u=x@_2=x@_3-3u;
+y@_1=y@_3=y@_2+3u;
+ pos@_1(hair,angle(z@_2-z@_1)+90); pos@_3(hair,angle(z@_3-z@_2)+90);
+ filldraw stroke z@_1e--z@_2e--z@_3e; % diagonals
+else:
+ pickup fine.nib; pos@_1(vair,0); pos@_3(vair,0); x@_1+3u=x$=x@_2=x@_3-3u;
+ pos@_2(stem,0); bot y@_2=y$+.75dot_size;
+ top y@_1=top y@_3=top y@_2+3u; % lft x@_1l=hround(rt x@_2r-3.25u-.5vair);
+ z@_0=whatever[z@_1r,z@_2r]=whatever[z@_2l,z@_3l];
+ y@_4l=y@_4r=y@_2; x@_4l=good.x .2[x@_2l,x@_2]; x@_4r=2x$-x@_4l;
+ filldraw z@_4l--z@_1l--z@_1r--z@_0--z@_3l--z@_3r--z@_4r--cycle; fi % diagonals
+x95-.5dot_size=hround(x@_2-.5dot_size); y95=y@_2+.75comma_depth+dot_size;
+% y95=top y@_2 + dot_size;
+if hefty: comma(95,hacc,dot_size,.28u,.85comma_depth); % large comma
+else: comma(95,hacc,.75dot_size,.25u,.75comma_depth); fi % comma with increased jut
+enddef;
+
+
+def cedilla (suffix $,@)(expr cD_shift) =
+save @;
+forsuffixes $$=@,@_: transform $$; endfor
+if serifs: pickup crisp.nib; pos@_1(stem,0); pos@_2(stem,0);
+ pos@_3(vair,90); pos@_4(stem,0); pos@_5(1.1vair,-90); pos@_6(vair,-180);
+ x@_1=x@_2=x$; z@_3l=z@_2l; x@_4=x@_2+1.5u; x@_5=x@_3-1.5u;
+% bot y@_1=-o;
+ top y@_1=0;
+ bot y@_2=-vround 2/7(.875desc_depth)-o;
+ y@_4=.5[y@_3,y@_5]; bot y@_5=-.875desc_depth-o;
+ @ = identity shifted(0,cD_shift);
+ for n = 1,2,3,4,5: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw stroke z@1e--z@2e; % stem
+ filldraw stroke z@3e{right}...z@4e{down}...{left}z@5e; % hook
+else: pickup fine.nib; pos@_1(vair,0); top y@_1=-o-2;
+ pos@_2(.5[vair,stem],0); bot y@_2=-.875desc_depth-o; x@_1=x$; x@_2=x@_1-1.25u;
+ @ = identity shifted(0,cD_shift);
+ for n = 1,2: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw stroke z@1e--z@2e; fi % diagonal
+% filldraw stroke z$e--z@1e; % fill gap
+penlabels(@1,@2,@3,@4,@5); enddef;
+
+def polhook (suffix $,@)(expr cD_shift) =
+save @;
+forsuffixes $$=@,@_: transform $$; endfor
+if serifs: pickup crisp.nib; pos@_1(stem,0); pos@_2(stem,0);
+ pos@_3(vair,-90); pos@_4(stem,0); pos@_5(vair,90);
+ x@_1=x@_2=x$; z@_3r=z@_2r; x@_4=x@_2-1.5u; x@_5=x@_3+.5u;
+ top y@_1=0; bot y@_2=-vround 2/7(.875desc_depth)-o; % bot y@_1=-o;
+ y@_4=.5[y@_3,y@_5]; bot y@_5=-.875desc_depth-o;
+ @ = identity shifted(0,cD_shift);
+ for n = 1,2,3,4,5: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+x@6=x@5+u+.25dot_size; y@6=y@5+.25dot_size;
+pos@6(hair,180);
+ filldraw stroke z@1e--z@2e; % stem
+ filldraw stroke z@3e{left}...z@4e{down}...{right}z@5e...z@6e; % hook
+else: pickup fine.nib; pos@_1(vair,0); top y@_1=-o-2;
+ pos@_2(.5[vair,stem],0); bot y@_2=-.875desc_depth-o; x@_1=x$; x@_2=x@_1+1.25u;
+ @ = identity shifted(0,cD_shift);
+ for n = 1,2: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw stroke z@1e--z@2e; fi % diagonal
+% filldraw stroke z$e--z@1e; % fill gap
+penlabels(@1,@2,@3,@4,@5); enddef;
+
+% controls for font size changing
+
+%%% the following have to be put, suitably modified into parameter files
+%%% string myfontstyle, mynormalsize, mysmallsize;
+%%%
+%%% myfontstyle := "CMR";
+%%% mynormalsize := "10";
+%%% mysmallsize := "8";
+
+def generate suffix t=enddef; %ignore generate on subsequent read-ins
+ %of parameter files
+
+def shrinksize = scantokens ("input " & myfontstyle & mysmallsize );
+ mode_setup; font_setup; enddef;
+
+def resumesize = scantokens ("input " & myfontstyle & mynormalsize );
+ mode_setup; font_setup; enddef;
+
+% resumesize;
+
+normala_ht# := asc_height#;
+
+
+% define reverse adjust fit for use with rotated characters
+def r_adjust_fit(expr adjr,adjl) =
+ adjust_fit(adjl,adjr);
+enddef;
+
+def tilde_accent (suffix $,@)(expr tY_shift) =
+save @;
+forsuffixes $$=@,@_: transform $$; endfor
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(asc_height-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos@_1(vair,theta+90); pos@_2(vair,theta+90);
+ pos@_3(vair,theta+90); pos@_4(vair,theta+90);
+ z@_2-z@_1=z@_4-z@_3=(mid_width-crisp)*dir theta;
+ rt x@_4l-x$=x$-lft x@_1r=3u; top y@_4r=asc_height;
+ bot y@_1l=vround(bot y@_1l+min(2/3[x_height,asc_height],y@_3l-.25vair)-top y@_1r);
+ pair delta; ypart delta=3(y@_3l-y@_1l); delta=whatever*dir theta;
+ @ = identity shifted(0,tY_shift);
+ for n = 1,2,3,4: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw z@1l..controls(z@1l+delta)and(z@3l-delta)..z@3l..z@4l
+ --z@4r..controls(z@4r-delta)and(z@2r+delta)..z@2r..z@1r--cycle; % stroke
+else: pickup fine.nib; pos@_1(vair,180); pos@_2(vair,90);
+ pos@_3(.5[vair,slab],90); pos@_4(vair,90); pos@_5(vair,180);
+ rt x@_5l-x$=x$-lft x@_1r=3u; x@_2-x@_1=x@_3-x@_2=x@_4-x@_3=x@_5-x@_4;
+ bot y@_1=bot y@_4l=vround(.75[x_height,asc_height]-vair);
+ top y@_2r=top y@_5=asc_height; y@_3=.5[y@_2,y@_4];
+ @ = identity shifted(0,tY_shift);
+ for n = 1,2,3,4,5: forsuffixes e = l,,r:
+ z@[n]e = z@_[n]e transformed @; endfor endfor
+ filldraw stroke z@1e{up}...z@2e{right}..z@3e..{right}z@4e...{up}z@5e; fi % stroke
+penlabels(@1,@2,@3,@4,@5); enddef;
+
+def humlaut (suffix $,@) =
+x@_3-x@_1=x@_4-x@_2=hround 3u; y@_3=y@_1; y@_4=y@_2;
+if serifs: pickup crisp.nib; x@_3=hround(x$+2.5u);
+ x@_2=hround(x$-2u);
+ y@_1+.5stem=h+asc_height-x_height;
+ y@_2=max(2/3[h+asc_height-x_height,h],h+o+hair);
+% if h > .9cap_height: y@_2:=.67[y@_1,y@_2]; fi
+% above line shortens & flattens humlaut marks
+ numeric theta; theta=angle(z@_2-z@_1)+90;
+ pos@_1(stem,theta); pos@_2(hair,theta);
+ pos@_3(stem,theta); pos@_4(hair,theta);
+ filldraw circ_stroke z@_1e--z@_2e; % left diagonal
+ filldraw circ_stroke z@_3e--z@_4e; % right diagonal
+else: pickup fine.nib; pos@_1(stem,0); pos@_2(vair,0);
+ pos@_3(stem,0); pos@_4(vair,0);
+ % rt x@_3r=hround(w-1.5u); lft x@_4l=hround(.5w+u-.5vair);
+ x@_3=x@_4+u; x@_4=x$+1.5u;
+ top y@_1=h+asc_height-x_height;
+ bot y@_2=vround 2/3[h+asc_height-x_height,h];
+ filldraw stroke z@_1e--z@_2e; % left diagonal
+ filldraw stroke z@_3e--z@_4e; fi % right diagonal
+% penlabels(1,2,3,4);
+enddef;
+
+% set output character height after a beginchar has been issued
+def sethtto(expr newht) =
+charht:=newht / hppp;
+enddef;
+
+def setwdto(expr newwd) =
+charwd:=newwd / hppp;
+enddef;
+
+def addht(expr inc_ht) =
+charht:= charht + (inc_ht / hppp);
+enddef;
+
+def addwd(expr inc_wd) =
+charwd:= charwd + (inc_wd / hppp);
+enddef;
+
+% flip rotates 180 degrees about the centerpoint whose suffix is passed
+def flip (suffix $) =
+picture V; transform t;
+y$:=y$*aspect_ratio;
+t=identity rotatedaround(z$,180) shifted(2y$*slant,0);
+V=currentpicture transformed t; currentpicture:=V;
+enddef;
+
+def invbreve (suffix $,@) =
+pickup crisp.nib; pos@_1(vair,-180); pos@_3(vair,0);
+bot y@_1=bot y@_3=y$+dot_size; lft x@_1r=hround(x$-2curve-.5vair); rt x@_3r=hround(x$+2curve+.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos@_2(mid_thickness,-90); x@_2=x$;
+y@_2r= y@_1+2curve;
+filldraw stroke z@_1e{up}...z@_2e{right}...{down}z@_3e; % stroke
+penlabels(@_1,@_2,@_3); enddef;
+
+def ringdot (suffix $,@) =
+numeric rdcirc_hair,rdcirc_vair;
+rdcirc_hair=hround min(hair,u+.5); rdcirc_vair=vround min(vair,(asc_height-x_height)/6+.5);
+penpos@_1(rdcirc_vair,90); penpos@_3(rdcirc_vair,-90);
+penpos@_2(rdcirc_hair,180); penpos@_4(rdcirc_hair,0);
+x@_2r=hround(x$-.105body_height-.5rdcirc_hair);
+x@_4r=hround(x$+.105body_height+.5rdcirc_hair); x@_1=x@_3=x$;
+if y$ > bar_height: y@_1r=y$+dot_size+2rdcirc_vair+.105body_height; y@_2=y@_4=.5[y@_1,y@_3]; y@_3=y$+dot_size+rdcirc_vair;
+else: y@_1r=y$-dot_size; y@_2=y@_4=.5[y@_1,y@_3];
+ y@_3r=-d; fi
+penstroke pulled_arc.e(@_1,@_2) & pulled_arc.e(@_2,@_3)
+ & pulled_arc.e(@_3,@_4) & pulled_arc.e(@_4,@_1) & cycle; % bowl
+enddef;
+numeric shrinkfactor; shrinkfactor=1;
+
+def slantswitch =
+slant:=-slant;
+currenttransform:= identity slanted slant yscaled aspect_ratio scaled granularity;
+enddef; %reverse slant so that mirror() will work
+
+def mirror (expr axis) =
+x._qa=x._qb=axis; y._qa=h; y._qb=0; picture V; transform MIRROR;
+MIRROR=identity reflectedabout(z._qa,z._qb);
+V=currentpicture transformed MIRROR; currentpicture:=V;
+slantswitch; %restore original slant
+enddef;
+
+
+def l_tail(suffix $,@) =
+x@_22=x$; x@_22r=x$r; x@_22l=x$l; bot y@_22=-1/3d; y@_22r=y@_22l=y@_22;
+filldraw stroke z$e--z@_22e;
+if serifs: pickup tiny.nib; pos@_55(vair,-90); pos@_66(hair,-180); pos@_77(flare,-180);
+ x@_55=.5[x@_22,x@_66r]; bot y@_55r=-d-oo; y@_66-.5flare=-.88d;
+ if monospace: lft x@_66r=x$-3.5u else: z@_66r=z@_77r; rt x@_77l=floor x$-2.5u fi;
+ (x@_,y@_55r)=whatever[z@_55l,z@_22l]; x@_55r:=max(x@_,.5[x@_66r,x@_55]);
+ filldraw stroke z@_22e{down}...z@_55e{left}; bulb(@_55,@_66,@_77); % arc and bulb
+else: pickup fine.nib; pos@_22'(stem',0); z@_22'=z@_22;
+ pos@_66(.2[vair,stem'],-90); pos@_77(vair,-90);
+ lft x@_77r=hround x$-2.5u; bot y@_77r=vround 5/6(-d-oo);
+ (x@_,y@_77l)=whatever[z@_77r,(x$,h)]; x@_77l:=x@_;
+ z@_55r=z@_22'r; (x@_22'l,y@_55l)=whatever[z@_77l,z@_55r]; x@_55l=x@_22'l; y@_55=y@_55r;
+ x@_66r=.5[x@_77r,x@_55r]; x@_66l:=.5[x@_77l,x@_55l]; bot y@_66r=-d-oo;
+ filldraw stroke z@_22'e..{down}z@_55e & super_arc.e(@_55,@_66)
+ & z@_66e{left}..z@_77e; fi % arc and terminal
+enddef;
+
+def r_tail(suffix $,@) =
+ pickup if serifs: tiny.nib else: fine.nib fi ;
+x@_22=x$; x@_22r=x$r; x@_22l=x$l; bot y@_22=-1/3d; y@_22r=y@_22l=y@_22;
+filldraw stroke z$e--z@_22e;
+if serifs: pickup tiny.nib; pos@_55(vair,90); pos@_66(hair,0); pos@_77(flare,0);
+ x@_55=.5[x@_22,x@_66l]; bot y@_55l=-d-oo; y@_66-.5flare=-.88d;
+ if monospace: rt x@_66r=x$+3.5u else: z@_66r=z@_77r; lft x@_77l=floor x$+2.5u fi;
+% (x@_,y@_55l)=whatever[z@_55r,z@_22l]; x@_55l:=max(x@_,.5[x@_66l,x@_55]);
+ filldraw stroke z@_22e{down}...z@_55e{right};
+z@_55'=z@_55; pos@_55'(vair,-90);
+bulb(@_55',@_66,@_77); % arc and bulb
+else: pickup fine.nib; pos@_22'(stem',0); z@_22'=z@_22;
+ pos@_66(.2[vair,stem'],90); pos@_77(vair,90);
+ rt x@_77r=hround x$+2.5u; bot y@_77l=vround 5/6(-d-oo);
+ (x@_,y@_77r)=whatever[z@_77l,(x$,h)]; x@_77r:=x@_;
+ z@_55l=z@_22'l; (x@_22'r,y@_55r)=whatever[z@_77r,z@_55l]; x@_55r=x@_22'r; y@_55=y@_55l;
+ x@_66l=.5[x@_77l,x@_55l]; x@_66r:=.5[x@_77r,x@_55r]; bot y@_66l=-d-oo;
+ filldraw stroke z@_77e..{left}z@_66e & super_arc.e(@_66,@_55)
+ & z@_55e{up}..z@_22'e; fi
+% filldraw stroke z@_22'e..{down}z@_55e & super_arc.e(@_55,@_66)
+% & z@_66e{right}..z@_77e; fi % arc and terminal
+penlabels(@_22,@_55,@_66,@_77);
+enddef;
+
+def oef_stroke(suffix $,$$,@,left_serif,right_serif)(expr left_jut,right_jut)=
+% pickup tiny.nib; bot y$l=-d;
+ pickup fine.nib; bot y$l=-d;
+ if spike: y$r:=y$l+1.5stem; y$:=.5[y$l,y$r]; fi
+ penpos@0(x$r-x$l,0); x@0l=x$l; top y@0=x_height;
+ filldraw stroke z$e--z@0e; % stem
+% pickup fine.nib; pos@0'(x$r-x$l-(hround stem_corr)+tiny,180);
+ pos@0'(x$r-x$l,180); z@0'=z@0;
+% y@0'=y@0; lft x@0'r=tiny.lft x$l;
+ penpos@1(x@0'l-x@0'r,180); x@1=x@0'; y@1+.5vair=.5[x_height,h];
+ pos@2(vair,90); top y@2r=h+oo;
+ if serifs: x@2=.6[x@1,x$$r]; (x@,y@2r)=whatever[z@2l,z@1l];
+ x@2r:=min(x@,.5[x@2,x$$r]); pos@3(hair,0); bulb(@2,@3,$$); % bulb
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2); % arc
+ if not spike: dish_serif($,@0,left_serif,1/3,left_jut,right_serif,1/3,right_jut); fi
+ else: x@2=.6[x@1,x$$]; y@1l:=1/3[y@1l,y@2l];
+ filldraw stroke z@0'e--z@1e & super_arc.e(@1,@2)
+ & term.e(@2,$$,right,.9,4); % arc and terminal
+ fi
+ penlabels(@0,@1,@2); enddef;
+
+def oeh_stroke(suffix $,@,@@,$$) =
+ penpos$$(x@@r-x@@l,0); x$$=x@@-u; bot y$$=0;
+% y@@=1/3[bar_height,x_height];
+ y@@=bar_height;
+ penpos$''(x$r-x$l,0); x$''=x$; y$''=1/8[bar_height,x_height];
+ filldraw stroke z$''e--z$e; % thicken the lower left stem
+ penpos@0(min(rt x$r-lft x$l,thin_join)-fine,180); pickup fine.nib;
+ rt x@0l=tiny.rt x$r; y@0=y$'';
+ pos@1(vair,90); pos@@'(x@@r-x@@l+tiny,0); z@@'=z@@;
+ x@1=.5[rt x@0l,rt x@@'r]; top y@1r=x_height+oo;
+ (x@,y@1l)=whatever[z@1r,z@0l]; x@1l:=x@;
+% filldraw stroke z@0e{up}...{right}z@1e
+% &{{interim superness:=hein_super; super_arc.e(@1,@@')}}; % arch and right stem
+% pickup tiny.nib; filldraw stroke z@@e{down}...{-2,-1}z$$e; % right stem
+ filldraw stroke z@0e{up}...{right}z@1e
+ & pulled_super_arc.e(@1,@@)(.5superpull) & pulled_super_arc.e(@@,$$)(.5superpull); %arch and curved left stem
+ labels(@0); penlabels(@1); enddef;
+
+def circ_coord(suffix $,$$) (expr len, ang) =
+ x$ := x$$ + (len * cosd ang);
+ y$ := y$$ - (len * aspect_ratio * cosd (ang + 90));
+enddef;
+
+let cmbulb=bulb;
+% if a cmbase bulb is very close to its takeoff point (vertically)
+% path_l will be relatively flat at its intersection with path_r and
+% subpath(0,xpart(path_.r intersectiontimes path_.l)) of path_.r--z$$r
+% may not lie entirely within the link contour (path_.l--z$$r{0,y$r-y$$r}...{x$r-x$$r,0}z$r--cycle)
+% this will result in a wedge from the intersectionpoint to z$$r not being filled.
+%
+% therefore we redefine
+def bulb(suffix $,$$,$$$) =
+ z$$$r=z$$r;
+ path_.l:=z$l{x$$r-x$r,0}...{0,y$$r-y$r}z$$l;
+ filldraw path_.l--z$$r{0,y$r-y$$r}...{x$r-x$$r,0}z$r--cycle; % link
+ path_.r:=z$$$l{0,y$r-y$$r}..z$$$r{0,y$$r-y$r}; % near-circle
+ filldraw path_.r{0,y$$r-y$r}..{0,y$r-y$$r}cycle; % bulb in filleverything mode
+enddef;
+
+% end of file gram_max.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/grampunc.mf b/Master/texmf-dist/fonts/source/public/wnri/grampunc.mf
new file mode 100644
index 00000000000..0453a0bdcd4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/grampunc.mf
@@ -0,0 +1,255 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw punctuation characters. Partly based on comlig.mf
+% of Computer Modern miscellaneous punctuation and free accents
+%
+
+cmchar "close quote";
+newchar(closequote,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant+dot_size#-4.1u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround .6u; y2+.5dot_size=h;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+comma(1,a,dot_size,.25u,comma_depth); % left dot and tail
+comma(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+cmchar "Hyphen";
+newchar(hyphen,6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Opening quotes";
+newchar(openquote,7u#+max(2u#,dot_size#),asc_height#,0);
+italcorr asc_height#*slant-.1u#;
+adjust_fit(0,0);
+x2+.5dot_size=hround(w-.6u); y1+.5dot_size=h-comma_depth;
+x2-x1=hround(1.5u+max(2u,dot_size)); y2=y1;
+ammoc(1,a,dot_size,.25u,comma_depth); % left dot and tail
+ammoc(2,b,dot_size,.25u,comma_depth); % right dot and tail
+penlabels(1,2); endchar;
+
+cmchar "En dash";
+newchar(endash,9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Em dash";
+newchar(emdash,18u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(letter_fit#,letter_fit#);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "Less than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+newchar(lesser,14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Greater than sign";
+compute_spread(5/4x_height#,3/2x_height#);
+newchar(greater,14u#,v_center(spread#+rule_thickness#));
+italcorr math_axis#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1-y3=spread; y2=.5[y1,y3]=math_axis;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+iff known vertical: cmchar "Vertical line";
+newchar(vertical,5u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5rule_thickness#-2u#;
+adjust_fit(0,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+iff known left_brace: cmchar "Left curly brace";
+newchar(left_brace,9u#,body_height#,paren_depth#);
+italcorr body_height#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+lft x4l=hround(1.5u-.5vair); lft x2l=hround(.5w-.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1l{left}...z2l---z3l...{left}z4l
+ --z4'l{right}...z5l---z6l...{right}z7l
+ --z7r--z7'r{left}...z6r---z5r...{left}.5[z4r,z4'r]{right}
+ ...z3r---z2r...{right}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+iff known right_brace: cmchar "Right curly brace";
+newchar(right_brace,9u#,body_height#,paren_depth#);
+italcorr math_axis#*slant+.5vair#-u#;
+adjust_fit(0,0); pickup fine.nib;
+forsuffixes $=1,1',4,4',7,7': pos$(vair,0); endfor
+forsuffixes $=2,3,5,6: pos$(stem,0); endfor
+x2=x3=x5=x6; x1=x1'=x7=x7'=w-x4=w-x4';
+rt x4r=hround(w-1.5u+.5vair); rt x2r=hround(.5w+.5stem);
+top y1=h; bot y7=-d; .5[y4,y4']=.5[y1,y7]=.5[y2,y6]=.5[y3,y5];
+y1-y2=y3-y4=(y1-y4)/4; y1-y1'=y4-y4'=y7'-y7=vair-fine;
+filldraw z1r{right}...z2r---z3r...{right}z4r
+ --z4'r{left}...z5r---z6r...{left}z7r
+ --z7l--z7'l{right}...z6l---z5l...{right}.5[z4l,z4'l]{left}
+ ...z3l---z2l...{left}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Straight double quotes";
+newchar(typequote,9u#,asc_height#,0);
+numeric top_width#,spread#;
+top_width#=if serifs: flare# else: stem# fi;
+spread#=max(3u#,top_width#+.5u#); define_pixels(spread);
+italcorr asc_height#*slant+.5top_width#+.5spread#-4u#;
+adjust_fit(0,0);
+x1=x2; x3=x4=w-x1; x3-x1=spread+2; y1=y3;
+y2=y4=max(.5[bar_height,x_height]+.5vair,h-x_height);
+if serifs: pickup crisp.nib; pos1(flare,0); pos2(vair,0);
+ pos3(flare,0); pos4(vair,0);
+ y1+.5stem=h; filldraw circ_stroke z1e--z2e; % left stem and bulb
+ filldraw circ_stroke z3e--z4e; % right stem and bulb
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ pos3(stem,0); pos4(vair,0);
+ top y1=h; filldraw stroke z1e--z2e; % left stem
+ filldraw stroke z3e--z4e; fi % right stem
+penlabels(1,2,3,4); endchar;
+
+cmchar "Therefore symbol == Old English period";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+newchar(oeper,x_height#+2u#+dot_diam#,.86x_height#+dot_diam#,0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=u+.5dot_diam; bot y2l=-o;
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+pos5(dot_diam,0); pos6(dot_diam,90);
+x5=x6=.5w; bot y6l=.86x_height-o;
+y5=.5[y6l,y6r]; dot(5,6);
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "subscript Scandinavian circle accent";
+newchar(Ring,5u#+hair#,0,desc_depth#);
+adjust_fit(0,0);
+numeric circ_hair,circ_vair; h:=asc_height;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(asc_height-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+currentpicture:=currentpicture shifted (0,-(asc_height+dot_size)*aspect_ratio);
+endchar;
+
+cmchar "Grave accent";
+newchar(Grave,9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Acute accent";
+newchar(Acute,9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Hachek (check) accent";
+newchar(Hachek,9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Breve accent";
+newchar(Breve,9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Inverted Breve accent";
+newchar(Ibreve,9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y2r=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,90); x2=.5w;
+bot y1=bot y3=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{up}...z2e{right}...{down}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Subscript Inverted Breve accent";
+newchar(Uibreve,9u#,0,.5desc_depth#);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0); h:=min(asc_height,2x_height);
+pickup crisp.nib;
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+y2=-dot_size; y1=y3=vround max(x_height+o+tiny, 1/3[x_height,asc_height]+o-.5mid_thickness)-asc_height-dot_size;
+x2=x1+2.5u=x3-2.5u=.5w;
+pos2(mid_thickness,90); pos1(vair,-180); pos3(vair,0);
+filldraw stroke z1e{up}...z2e{right}...{down}z3e;
+chardp:= (bot y1) / hppp; %adjust depth
+penlabels(1,2,3); endchar;
+
+% end of file grampunc.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/gravacct.mf b/Master/texmf-dist/fonts/source/public/wnri/gravacct.mf
new file mode 100644
index 00000000000..756118cc22a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/gravacct.mf
@@ -0,0 +1,30 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw grave accents
+%
+
+cmchar "Grave accent";
+beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+makeACCENT(GravePic);
+endgroup;
+extra_endchar:=
+ " czu ap(GravePic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = grave enddef;
+
+% end of file gravacct.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/greeks.mf b/Master/texmf-dist/fonts/source/public/wnri/greeks.mf
new file mode 100644
index 00000000000..47e7fc6fdc0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/greeks.mf
@@ -0,0 +1,83 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw Greek characters
+%
+
+cmchar "Lowercase Greek theta";
+newchar(lthet,8.25u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l;
+filldraw stroke z2'e--z4'e; % bar
+math_fit(-.3asc_height#*slant-u#+.5curve#,ic#-.5u#);
+penlabels(1,2,3,4); endchar;
+
+cmchar "delta";
+newchar(ldelta,9u#,x_height#,0);
+adjust_fit(0,0);
+numeric left_stem,alpha;
+left_stem=hair if hefty: -stem_corr fi;
+x1l=w-x4r=.75u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*stem,0); penpos4(alpha*stem,0);
+fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+y5=y6=vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+if y0<h-notch_cut: y0:=h-notch_cut;
+ unfill z0+.5right{down}...{z4-z3}z6--z5{z2-z1}
+ ...{up}z0+.5left--cycle; % counter
+else: unfill z0--z5--z6--cycle; fi % counter
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "phonetic gamma";
+newchar(lgama,if serifs: 9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut; pickup tiny.nib;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=if serifs:l+letter_fit+outer_jut+.25u+tiny else: u fi;
+y1=y4=h; x5=x3=x2=.5[x1,x4]; y3=y2=.265h; bot y5r=-d;
+numeric gbot; gbot=.5(left_stem+right_stem);
+pos1(left_stem,0); pos4(right_stem,-180); pos2(left_stem,0);
+pos3(right_stem,-180); pos5(gbot,-90);
+filldraw stroke z1e--z2e{z2-z1}...{left}z5e{left}...{z4-z3}z3e--z4e;
+if serifs: numeric inner_jut; pickup tiny.nib;
+ if rt x1r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x1r+inner_jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(1,2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4,3,c,.6,inner_jut,d,1/2,outer_jut)(dark);
+ fi % right serif
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "epsilon";
+newchar(lepsi,8u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric light_vstem; light_vstem=Vround 2/3[vair,vstem];
+pos2(vstem,90); x2=x8=.5w+.5u; top y2r=h+o;
+x1+.5vstem=hround(w-u); y1=.2[y2,bar_height];
+pos1(vstem,angle(x1-x2,2(y1-y2))+90); pos3(slab,180); pos4(vair,270);
+pos5(slab,360); pos6(vair,450); pos7(hair,540); pos8(vstem,630);
+lft x3r=hround u; x4=x6=.5w; rt x5r=hround(w-2.5u); x7=x3;
+y3=.5[y2,y4]; y5=bar_height=.5[y4,y6]; y7=.5[y6,y8]; bot y8r=-o;
+top y6r-bot y4r=vstem+eps; if y6l<y4l: y6l:=y4l:=y5; fi
+x9+.5vstem=hround(w-.5u); y9=1/3[y8,bar_height];
+pos9(vstem,angle(x8-x9,2(y8-y9))+90);
+filldraw circ_stroke z1e{x2-x1,2(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & super_arc.e(3,4)...{up}z5e; % upper arc
+filldraw circ_stroke z9e{x8-x9,8(y8-y9)}...pulled_arc.e(8,7)
+ & super_arc.e(7,6)...{down}z5e; % lower arc
+math_fit(-.5bar_height#*slant-.5u#,ic#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+% end of file greeks.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/haccbase.mf b/Master/texmf-dist/fonts/source/public/wnri/haccbase.mf
new file mode 100644
index 00000000000..083573bb6ed
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/haccbase.mf
@@ -0,0 +1,67 @@
+%
+% Washington Romanized Indic base file
+%
+% File : haccbase.mf (was nuhacccm.mf)
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+string charmsg; % charmsg will hold text passed by redefined cmchar
+
+% if we are very short of string space we will dodge instead
+% redef cmchar so that it saves the string until known if needed
+%def cmchar text t = charmsg := t; enddef;
+def cmchar text t = enddef;
+
+string oldendchar; oldendchar=extra_endchar;
+def oechar = r:=r+shrink_fit; w:=r-l; enddef;
+
+if unknown testing: boolean testing; testing=false; fi
+
+% redef beginchar: beginchar if the charcode symbol is known, else skip
+def newchar (suffix mycode)(expr w_sharp,h_sharp,d_sharp) =
+ if testing: if unknown cp.mycode: show cp.mycode; fi fi
+ iff known cp.mycode:
+ beginchar(cp.mycode,w_sharp,h_sharp,d_sharp);
+enddef;
+
+% define points relative to which accents may be placed
+pair tla,tca,tra,lla,lca,lra;
+
+% assign values to a pair from x and y expressions
+%%% !!! the suffixes passed are really pairs !!!
+def pairassign (suffix thispair)(expr thisx, thisy) =
+ pair thispair;
+ xpart thispair=thisx; ypart thispair=thisy;
+enddef;
+
+% equate one pair to another thispair:=thatpair
+%%% !!! the suffixes passed are really pairs !!!
+def pairequate (suffix thispair, thatpair) =
+ pair thispair;
+ xpart thispair= xpart thatpair;
+ ypart thispair= ypart thatpair;
+enddef;
+
+% abbreviations for reducing string lengths
+def cza = addto currentpicture also enddef;
+%def czt = shifted (xpart tca,aspect_ratio(ypart tca - x_height)); adjustacctht; enddef;
+%def czl = shifted (xpart lca,0); deepen; enddef;
+def czo = & oldendchar; enddef;
+def czu = At:=identity shifted ((xpart tca) + slant*(ypart tca - x_height),aspect_ratio*(ypart tca - x_height)); enddef;
+def czr = At:=identity shifted ((xpart tra) + slant*(ypart tra - x_height),aspect_ratio*(ypart tra - x_height)); enddef;
+def czd = At:=identity shifted ((xpart lca) + slant*(ypart lca),aspect_ratio*ypart lca); enddef;
+def czdm = At:=identity shifted ((xpart lca) + slant*(ypart lca),aspect_ratio*(if (ypart lca)> -o: -o else: (ypart lca) fi)); enddef;
+
+% end of file haccbase.mf
diff --git a/Master/texmf-dist/fonts/source/public/wnri/hachacct.mf b/Master/texmf-dist/fonts/source/public/wnri/hachacct.mf
new file mode 100644
index 00000000000..96c8fe879f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/hachacct.mf
@@ -0,0 +1,37 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw hachek accents
+%
+
+cmchar "Hachek (check) accent";
+beginchar(oct"024",9u#,.75[x_height#,min(asc_height#,2x_height#)],0);
+h':=vround min(asc_height,2x_height); % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.5[vair,curve],90); top y2'r=h;
+ pos2(.5[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=h; y1-y2=.5(y2'-x_height);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[x_height,h']+o); x2=.5w;
+ top y1=top y3=h+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+if hefty: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(CaronPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(CaronPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = hach enddef;
+
+% end of file hachacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/hattacct.mf b/Master/texmf-dist/fonts/source/public/wnri/hattacct.mf
new file mode 100644
index 00000000000..4ad0b6906ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/hattacct.mf
@@ -0,0 +1,32 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw circumflex accents
+%
+
+cmchar "Circumflex (hat) accent";
+beginchar(oct"136",9u#,min(asc_height#,2x_height#),0);
+if serifs: italcorr .5[x_height#,h#]*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2(.5[vair,curve],90); top y2r=h; x2=.5w;
+ x1=w-x3=good.x 2.25u; y1=y3=.5[x_height,y2];
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr 2/3[x_height#,h#]*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); top y2=h; x2=.5w; bot y1=bot y3=vround 2/3[h,x_height]-eps;
+ lft x1l=hround(rt x2r-3.25u-.5vair); % same slope as in the acute accent
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+makeACCENT(HatPic);
+endgroup;
+extra_endchar:=
+ " czu ap(HatPic); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = hatt enddef;
+
+% end of file hattacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/iaesc.mf b/Master/texmf-dist/fonts/source/public/wnri/iaesc.mf
new file mode 100644
index 00000000000..736843fb86e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/iaesc.mf
@@ -0,0 +1,94 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw variant italic \ae ligature
+%
+
+% aesc.mf italic variant of ae
+
+cmchar "Italic ligature ae";
+newchar(aesc,13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+% the a part
+pos7(light_stem,0); pos8(light_stem,0);
+x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
+pos7'(vair,-225); pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x12=.4[x11,x3];
+y11=.3[y12,y7]; bot y12r=-oo;
+z3''=z3; pos3''(light_stem,0);
+filldraw stroke z3'e{left}...{down}pulled_arc.e(11,12)
+ & pulled_arc.e(12,3''); % bowl of a
+ x31=.1[x11,x3]; y31=.8h; pos31(heavy_hair,0);
+ x32=.4[x31,x3]; top y32l=h+o; pos32(vair,-90);
+ filldraw stroke pulled_arc.e(31,32) & pulled_arc.e(32,3);
+%filldraw z7l---z8l..z8r---z7r..cycle; % stem
+penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
+
+cmchar "The ligature AE";
+newchar(Aesc,16u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,mid_stem,outer_jut,alpha;
+mid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(mid_stem,0); pos2(mid_stem,0);
+lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0); x5=x1;
+top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.65u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,.5cap_jut); fi % lower middle serif
+pairequate(tca,z3); %top center accentpoint
+pairequate(lca,z8); %low center accentpoint
+pairassign(tra,x.e2,y3); %top right accentpoint
+pairequate(tla,z12); %top left accentpoint
+pairequate(lla,z11); %low left accentpoint
+pairassign(lra,x.h2,y2); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+% end of file iaesc.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/ibrvacct.mf b/Master/texmf-dist/fonts/source/public/wnri/ibrvacct.mf
new file mode 100644
index 00000000000..ef14a3b49e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/ibrvacct.mf
@@ -0,0 +1,28 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw inverted breve accents
+%
+
+cmchar "inverted Breve accent";
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,180); pos3(vair,0);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+bot y1=bot y3=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+lft x1r=w-rt x3r=hround(2u-.5vair);
+pos2(mid_thickness,90); x2=.5w;
+top y2r=h;
+filldraw stroke z1e{up}...{right}z2e...{down}z3e; % stroke
+makeACCENT(IbrvPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(IbrvPic); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = ibrv enddef;
+
+% end of file ibrvacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/igamma.mf b/Master/texmf-dist/fonts/source/public/wnri/igamma.mf
new file mode 100644
index 00000000000..4b18f698c94
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/igamma.mf
@@ -0,0 +1,40 @@
+%
+% Washington Romanized Indic
+%
+% Macros to draw italic gammas
+%
+
+% cmchar "italic gamma";
+newchar(lgam,if serifs: 9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut; pickup tiny.nib;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=if serifs:l+letter_fit+outer_jut+.25u+tiny else: u fi;
+y1=y4=h; x5=x3=x2=.5[x1,x4]; y3=y2=.3h; bot y5r=-d;
+numeric gbot; gbot=.5(left_stem+right_stem);
+pos1(left_stem,0); pos4(right_stem,-180); pos2(left_stem,0);
+pos3(right_stem,-180); pos5(gbot,-90);
+filldraw circ_stroke z1e--z2e{z2-z1}..{left}z5e; %{left}...{z4-z3}z3e--z4e;
+filldraw circ_stroke z4e--z3e{z3-z4}..{right}z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+newchar(CGam,if serifs: 13.5u# else:13u# fi,cap_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut; pickup tiny.nib;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=if serifs:l+letter_fit+outer_jut+.25u+tiny else: u fi;
+y1=y4=h; x5=x3=x2=.5[x1,x4]; y3=y2=.625x_height; bot y5r=-d;
+numeric gbot; gbot=.5(left_stem+right_stem);
+pos1(left_stem,0); pos4(right_stem,-180); pos2(left_stem,0);
+pos3(right_stem,-180); pos5(gbot,-90);
+filldraw circ_stroke z1e--z2e{z2-z1}..{left}z5e; %{left}...{z4-z3}z3e--z4e;
+filldraw circ_stroke z4e--z3e{z3-z4}..{right}z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+% end of file igamma.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/italcskt.mf b/Master/texmf-dist/fonts/source/public/wnri/italcskt.mf
new file mode 100644
index 00000000000..0eb8f17626f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/italcskt.mf
@@ -0,0 +1,171 @@
+%
+% Washington Romanized Indic Italic font driver file
+%
+% File : italcskt.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+mode_setup; font_setup;
+input product;
+if production:
+input itall; % lower case (minuscules)
+input italsp; % lowercase specials (dotless \i, ligature \ae, etc.)
+fi
+font_coding_scheme:="TeX Romanized Indic";
+ spanish_shriek=oct"074"; spanish_query=oct"076";
+
+def cp = plain enddef;
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#; fi
+
+if production:
+ input romanu; % upper case (majuscules)
+ input greeku; % upper case greek letters
+ input itald; % numerals
+ input italp; % ampersand, question marks, currency sign
+ input romspu; % uppercase specials (\AE, \OE, \O)
+ input punct; % punctuation symbols common to roman and italic text
+ input accent; % accents common to roman and italic text
+ if ligs>1: input italig; fi % letter ligatures
+ if ligs>0: input comlig; fi % ligatures common with roman text
+ if ligs<=1: input romsub; fi % substitutes for ligatures
+
+ ligtable "!": "`" =: spanish_shriek;
+ ligtable "?": "`" =: spanish_query;
+fi
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% begin massive departure from textit.mf, our parent file
+
+
+mono_charic#:=0;
+input haccbase; % altered base
+input acctmax;
+% dot_sharp_values used by various other macros
+def dot_sharp_values =
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+numeric dot_top#; dot_top#=min(asc_height#,10/7x_height#+.5dot_diam#);
+enddef;
+
+%tracingstats:=1;
+input wnindic.map;
+
+input igamma;
+input iaesc; % pickup the ae AE
+input sktmisc; % eszett and rootsign
+
+% now --- numerous characters with built-in diacritics
+% overdot characters
+input odotacct; input romanua; input italla;
+
+% underdot characters
+input udotacct; input romanua; input italla;
+
+% hatted characters
+input hattacct; input italla; input romanua;
+
+% scandinavian ring accent characters
+input orngacct; input romanua; input italla;
+
+% umlauted characters
+input umlaacct; input italla; input romanua;
+
+% acute accents
+input acutacct; input italla; input romanua; input ligature;
+
+% macron characters
+input macracct; input romanua; input italla;
+
+% hachek characters
+input hachacct; input italla; input fhachact; input romanua;
+
+% macron and acute
+input baraacct; input italla; input romanua;
+
+% grave accented
+input gravacct; input italla; input romanua;
+
+% macron and grave
+input bargacct; input italla; input romanua;
+
+% cedillas
+input cdilacct; input italla; input romanua;
+
+% tilde characters
+input tildacct; input italla; input romanua;
+
+% breve accent characters
+input brevacct; input italla;
+
+% macron breve characters
+input brbracct; input italla;
+
+% underbar characters
+input ubaracct; input italla; input romanua;
+
+% underdot acute characters
+input udacacct; input italla;
+
+% underdot grave characters
+input udgracct; input italla;
+
+% underdot macron characters
+input udmcacct; input italla; input romanua;
+
+% underdot macron acute
+input mudaacct; input italla;
+
+% under double dot (under-umlaut)
+input uumlacct; input italla; input romanua;
+
+% under breve
+input ubrvacct; input italla; input romanua;
+
+% candrabindu
+input bnduacct; input italla; % input romanua;
+% resume textit.mf original text ( no kerning for extended chars yet)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+if not monospace:
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "d": "w": "l": "l" kern +u#;
+ ligtable "F": "V": "o" kern kk#, "e" kern kk#,
+ "u" kern kk#, "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": "y" kern kk#,
+ "Y": "e" kern kk#, "o" kern kk#, "r" kern kk#, "a" kern kk#, "u" kern kk#,
+ "P": "W": "A" kern kk#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ ligtable "A": "R": "n" kern k#, "l" kern k#, "r" kern k#, "u" kern k#,
+ "m" kern k#, "t" kern k#, "i" kern k#, "C" kern k#, "O" kern k#, "G" kern k#,
+ "h" kern k#, "b" kern k#, "U" kern k#, "k" kern k#, "v" kern k#, "w" kern k#,
+ "Q" kern k#, "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#,
+ "b": "c": "e": "o": "p": "r": "e" kern -u#, "a" kern -u#, "o" kern -u#,
+ "d" kern -u#, "c" kern -u#, "g" kern -u#, "q" kern -u#;
+ ligtable "n": "'" kern kkk#; fi
+% there are ligature/kern programs for |"f"| in the {\tt italig} file
+% and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
+
+% end of file italcskt.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/italla.mf b/Master/texmf-dist/fonts/source/public/wnri/italla.mf
new file mode 100644
index 00000000000..82b849d6cbe
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/italla.mf
@@ -0,0 +1,643 @@
+%
+% Washington Roman Indic lowercase base file
+%
+% based on ITALL.MF (Computer Modern Roman Italic lowercase base file)
+%
+% Modified by: Thomas Ridgeway <ridgeway@u.washington.edu>, June 19 1993
+% Updated: Anshuman Pandey <apandey@u.washington.edu>, Feb 18 1998
+%
+% Changes: modified accent positions of some characters
+%
+
+if unknown dotson: boolean dotson; dotson=true; fi
+
+% cmchar "Italic letter a";
+newchar(a,9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,z4); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,z6); %low right accentpoint
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% cmchar "Italic letter b";
+newchar(b,8u#,asc_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2=.5x_height;
+filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos2'(stem,-180); pos3(vair,-90);
+pos4(curve,0); pos5(vair,90); pos0(hair,180);
+z0=z2=z2'; x3=x5=.5[x2,x4]; rt x4r=hround(w-1.5u+.5curve);
+bot y3r=-oo; top y5r=x_height+oo; y4=y2;
+filldraw stroke pulled_arc.e(2',3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & super_arc.e(5,0); % bowl
+pairassign(tca,x5,asc_height); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5); endchar;
+
+% cmchar "Italic letter c";
+newchar(c,8u#,x_height#,0);
+italcorr if math_fitting:1/3x_height#*slant else:x_height#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x2=x4=.5(w+u); rt x1r=max(rt x2,hround(w-u))+eps;
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y1=.5[bar_height,h]; top y2r=h+oo; bulb(2,1,0); % bulb
+bot y4r=-oo; y3=.5[y2,y4]; top y5l=vround .5bar_height; y6=bar_height;
+path p; p=z4{right}..z5..z6;
+filldraw stroke pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+pairequate(tca,z2); %top center accentpoint
+pairequate(lca,z4); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+% cmchar "Italic letter d";
+newchar(d,9u#,asc_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ h#*slant+.5stem#-2u#) if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-2.5u+.5stem);
+top y1r=x_height+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x0; x7=w; hook_out(5,6,7); % closing hook
+pickup tiny.nib; pos5'(stem,0); pos4(stem,0);
+z5'=z5; top y4=h; filldraw stroke z4e--z5'e; % stem
+sloped_serif.l(4,5',a,1/3,jut,serif_drop); % serif
+pairassign(tca,x1,asc_height); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,z4); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,z6); %low right accentpoint
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% cmchar "Italic letter e";
+newchar(e,8u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(0,0); pickup fine.nib;
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(curve,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+u);
+lft x3r=hround(1.5u-.5curve); x5r=good.x(w-eps); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround .5bar_height; path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc
+pairequate(tca,z2); %top center accentpoint
+pairequate(lca,z4); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+% cmchar "Italic letter f";
+newchar(f,max(1.5u#,stem#)+max(3.5u#,2flare#),asc_height#,desc_depth#);
+italcorr asc_height#*slant+.75u#;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+numeric theta; z88=(.5w-.5u,h); z89=(.5w+.5u,-d); theta=angle(z88-z89);
+pos0(flare,0); pos1(hair,0); pos2(vair,90);
+pos3(.5[hair,stem],180); pos4(stem,theta+90);
+pos5(stem,theta-90); pos6(.5[hair,stem],0);
+pos7(vair,-90); pos8(hair,-180); pos9(flare,-180);
+rt x1r=hround(w+.25u); lft x8r=hround-.35u; x2=.6[x1,x4]; x7=.6[x8,x5];
+y9-.5flare=vround -.85d; y2-y0=y9-y7; top y2r=h+oo; bot y7r=-d-oo;
+y4=.25[x_height,h]; y5=.5[-d,y4];
+z4=whatever[z88,z89]; z5=whatever[z88,z89];
+x3=.8[x2+x4-x88,x88]; x6=.8[x7+x5-x89,x89]; y3=.8[y4,y2]; y6=.8[y5,y7];
+bulb(2,1,0); bulb(7,8,9); % bulbs
+filldraw stroke z2e{left}...z3e...{z89-z88}z4e; % upper arc
+filldraw z4r--z5l--z5r--z4l--cycle; % stem
+filldraw stroke z5e{z89-z88}...z6e...{left}z7e; % lower arc
+pickup crisp.nib; pos20(bar,90); pos21(bar,90);
+top y20r=top y21r=x_height;
+lft x20=lft x4r-.5stem-u; rt x21=rt x4l+.5stem+1.5u;
+filldraw stroke z20e--z21e; % crossbar
+pairequate(tca,z2); %top center accentpoint
+pairequate(lca,z7); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(desc_depth#*slant+u#,x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,20,21,88,89); endchar;
+
+% cmchar "Italic letter g";
+newchar(g,8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem);
+top y1r=h+oo; bot y3r=0; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pos4(stem,0); y4+.5stem=vround .98h;
+pos5(stem,0); x5=x4; y5=-1/3d;
+pos6(vair,-90); pos7(hair,-180); pos8(flare,-180);
+bot y6r=-d-oo; y8-.5flare=vround -.9d;
+lft x8r=hround(2u-.5flare); x6=x1; bulb(6,7,8); % bulb
+filldraw circ_stroke z4e---z5e...{left}z6e; % stem and arc
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z6); %low center accentpoint
+pairequate(tra,z4); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-min(.3x_height#*slant+.5curve#-u#,1.5u#-desc_depth#*slant),
+ ic#-1/3x_height#*slant); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+% cmchar "Italic letter h";
+newchar(h,9u#,asc_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; x4+.5stem=hround(w-2.5u+.5stem);
+x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+pairassign(tca,x3,asc_height); %top center accentpoint
+pairassign(lca,x3,0); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z6); %low right accentpoint
+math_fit(0,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+% cmchar "Italic letter i";
+newchar(i,5u#,min(asc_height#,10/7x_height#+.5flare#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,h#*slant+.5flare#-2u#);
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x0=0; x5=w; x2=.5w+.25u; x3=.5w-.25u;
+hook_in(0,1,2)(skewed); hook_out(3,4,5)(skewed); % hooks
+filldraw stroke z2e--z3e; % stem
+pos8(flare,0); pos9(flare,90);
+x8=.5w if not monospace:-.4(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r];
+if dotson: dot(8,9); fi % dot
+pairassign(tca,.5[x1,x2],x_height); %top center accentpoint
+pairassign(lca,.5[x3,x4],0); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,8,9); endchar;
+
+% cmchar "Italic letter j";
+newchar(j,5u#,min(asc_height#,10/7x_height#+.5flare#),desc_depth#);
+italcorr h#*slant+.5stem#-u#;
+adjust_fit(if monospace:2u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(w-1.5u-.5stem);
+hook_in(0,1,2); % opening hook
+pos4(vair,-90); pos5(hair,-180); pos6(flare,-180);
+bot y3=-1/3d; bot y4r=-d-oo; y6-.5flare=-vround.9d;
+x4=1/3(w-u); lft x5r=min(hround-.5u,lft x5r+x4-x5l-eps);
+filldraw stroke z2e---z3e...{left}z4e; % stem and arc
+bulb(4,5,6); % bulb
+pos8(flare,0); pos9(flare,90);
+rt x8r=rt x2r if not monospace:-.6(h-x_height)*slant fi; top y9r=h+1;
+if bot y9l-top y1<slab: y9l:=min(y9r-eps,y1+fine+slab); fi
+x8=x9; y8=.5[y9l,y9r];
+if dotson: dot(8,9); fi % dot
+pairassign(tca,.5[x1,x2],x_height); %top center accentpoint
+pairequate(lca,z4); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(desc_depth#*slant,x_height#*slant+.5stem#-u#);
+penlabels(0,1,2,3,4,5,6,8,9); endchar;
+
+% cmchar "Italic letter k";
+newchar(k,8u#,asc_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup tiny.nib;
+pos1(stem,0); pos2(stem,0); x1=x2;
+lft x1l=hround(1.5u-.5stem); top y1=h; y2-.5stem=-oo;
+filldraw circ_stroke z2e--z1e; % left stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pickup fine.nib; pos3(vair,90); x3=x1; y3=bar_height;
+pos4(vair,90); x4=w-2u; top y4r=x_height+oo;
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+pos5(hair,0); pos6(flare,0);
+rt x5r=hround(w-.5u); y5+.5flare=vround(bot y4l-.03x_height);
+bulb(4,5,6); % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-eps); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+pairequate(tra,z4); %top right accentpoint
+if unknown gltl.k: pairassign(tca,.5w,h); %top center accentpoint
+else:
+ if cp.k=gltl.k: pairequate(tca,tra);
+ else: pairassign(tca,.5w,h); %top center accentpoint
+ fi
+fi
+pairassign(lca,.5[x2,x8],0); %low center accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+% cmchar "Italic letter l";
+newchar(l,4u#,asc_height#,0); l_width#:=4u#;
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,
+ asc_height#*slant+.5stem#-2u#) if math_fitting:+.5u# fi;
+adjust_fit(if monospace:u#,u# else: 0,0 fi); pickup fine.nib;
+x2-.5stem=hround(1.5u-.5stem); x4=w; hook_out(2,3,4); % closing hook
+pickup tiny.nib; pos1(stem,0); pos2'(stem,0); z2'=z2;
+top y1=h; x1=x2; filldraw stroke z1e--z2e; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); % serif
+pairassign(tra,x4,y4); %top right accentpoint
+if unknown gltl.l: pairequate(tca,z1); %top center accentpoint
+else:
+ if cp.l=gltl.l: pairequate(tca,tra);
+ else: pairequate(tca,z1); %top center accentpoint
+ fi
+fi
+pairequate(lca,z3); %low center accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-.5u#,1/3x_height#*slant+.5hair#+u#); penlabels(1,2,3,4); endchar;
+
+% cmchar "Italic letter m";
+newchar(m,15u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace:-1.5u#,-2u# else: 0,0 fi); pickup fine.nib;
+numeric shaved_stem; shaved_stem=mfudged.stem;
+save stem; stem=shaved_stem;
+pos2(stem,0); x1=x2;
+if monospace: pos1(stem,0); lft x1l=hround(2.5u-.5stem); top y1=h;
+else: x0=0; lft x2l=hround(2.5u-.5stem);
+ hook_in(0,a,1); fi % opening hook
+y2-.5stem=-oo; filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(.5w+.5stem); ital_arch(2,3,4); % left arch
+pos5(stem,0); y5=y2; x5=x4;
+filldraw circ_stroke z5e--z4e; % middle stem
+x7+.5stem=hround(w-2.5u+.5stem);
+x8=x7-.25u; ital_arch(5,6,7); % right arch
+if monospace: pos9(vair,90); x9=good.x .5[x8,w]; bot y9l=0; y8=1/3h;
+ pos8(stem,0); filldraw stroke z8e{-u,-x_height}...{right}z9e; % terminal
+else: x9=w; hook_out(8,b,9)(skewed); fi % closing hook
+filldraw stroke z7e{down}..{-u,-x_height}z8e; % right stem
+pairassign(tca,x4,x_height); %top center accentpoint
+pairequate(lca,z5); %low center accentpoint
+pairequate(tra,z6); %top right accentpoint
+pairequate(tla,z.a); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z.b); %low right accentpoint
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7,8,9); endchar;
+
+% cmchar "Italic letter n";
+newchar(n,10u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-2.5u+.5stem); x5=x4-.25u; ital_arch(2,3,4); % arch
+x7=w; hook_out(5,6,7)(skewed); % closing hook
+filldraw stroke z4e{down}..{-u,-x_height}z5e; % right stem
+pairassign(tca,x3,x_height); %top center accentpoint
+%pairequate(tca,z3); %top center accentpoint
+pairassign(lca,x3,0); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z.a); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z6); %low right accentpoint
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,a,1,2,3,4,5,6,7); endchar;
+
+% cmchar "Italic letter o";
+newchar(o,9u#,x_height#,0);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#); penlabels(1,2,3,4); endchar;
+
+% cmchar "Italic letter p";
+newchar(p,9u#,x_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+x0=0; x2-.5stem=hround(2.5u-.5stem); hook_in(0,1,2); % opening hook
+pos4(hair,-180); pos5(vair,-90); pos6(curve,0); pos7(vair,90);
+x4=x2; rt x6r=hround(w-1.5u+.5curve); x5=x7=.5[x4,x6];
+bot y5r=-oo; top y7r=h+oo; y4=y6=.5[y5,y7];
+filldraw stroke super_arc.e(4,5) & pulled_arc.e(5,6)
+ & pulled_arc.e(6,7) & super_arc.e(7,4); % bowl
+pickup tiny.nib; pos2'(stem,0); pos3(stem,0);
+z2=z2'; x3=x2; bot y3=-d; filldraw stroke z2'e--z3e; % stem
+dish_serif(3,2',a,1/3,.75jut,b,1/3,jut); % serif
+pairequate(tca,z7); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-min(2/3x_height#*slant-.5hair#-.5u#,
+ 2u#-.5stem#-desc_depth#*slant),ic#);
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% cmchar "Italic letter q";
+newchar(q,8u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+x0=x4; x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+x4+.5stem=hround(w-1.5u+.5stem)+eps;
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+pickup tiny.nib; pos4(stem,0); pos5(stem,0);
+x4=x5; x6=x5r; top y6=h+oo; bot y4=-d;
+y5=ypart(((x4l,0)--(x4l,y6))intersectionpoint super_arc.r(0,1));
+filldraw z6{2(x5l-x6),y5-y6}...z5l---z4l--z4r--cycle; % stem
+dish_serif(4,5,a,1/3,jut,b,1/3,jut); % serif
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z4); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z6); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+% cmchar "Italic letter r";
+newchar(r,5.5u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:.25u#,.5u# else: 0,0 fi); pickup fine.nib;
+x0=0; x2=x3; pos3(stem,0); lft x3l=hround(2.5u-.5stem); y3-.5stem=-oo;
+hook_in(0,1,2); % opening hook
+filldraw circ_stroke z3e--z2e; % left stem
+pos3'(hair,180); z3'=z3; pos4(vair,90); pos5(hair,0); pos6(flare,0);
+x4=w-.5u-max(1.75u,flare); rt x5r=hround(r-.5u); top y4r=h+oo;
+filldraw stroke z3'e{up}...z4e{right}; % link
+y6+.5flare=vround(bot y4l-.03x_height); bulb(4,5,6); % bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-.5u#);
+pairequate(tca,z4); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5,6); endchar;
+
+% cmchar "Italic letter s";
+newchar(s,5.25u#+max(1.75u#,flare#),x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+pos2(vair,-90); pos0(max(fine.breadth,ess),theta); pos7(vair,-90);
+x2l=x0=x7=.5w; top y2l=h+oo; bot y7r=-oo;
+y0-.5ess=y7l+.55(y2r-y7l-ess);
+lft x3l=hround u-eps; rt x6r=hround(w-.5u)+eps;
+x3r-x3l=x6r-x6l=hround .5[vair,ess]-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+pos1(hair,0); pos10(hround .75[hair,flare],0);
+pos2'(vair,90); z2'=z2;
+pos8(hair,-180); pos9(flare,-180);
+rt x10r=hround(w-u)+2eps; lft x9r=hround .5u-2eps; y10=.78h; y9=.25h;
+bulb(2',1,10); bulb(7,8,9); % bulbs
+pairequate(tca,z2); %top center accentpoint
+pairequate(lca,z7); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+% cmchar "Italic letter t";
+newchar(t,5.5u#,min(asc_height#,10/7x_height#),0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.25u#);
+adjust_fit(if monospace:u#,u# else:0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(2u-.5stem); y1+.5stem=h+oo;
+x2=x1; x4=w; hook_out(2,3,4); % closing hook
+filldraw circ_stroke z1e--z2e; % stem
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+lft x5=hround-.75u; rt x6=hround(w-.75u); top y5r=top y6r=x_height;
+filldraw stroke z5e--z6e; % crossbar
+pairequate(tra,z6); %top right accentpoint
+if unknown gltl.t: pairequate(tca,z1); %top center accentpoint
+else:
+ if cp.t=gltl.t: pairequate(tca,tra);
+ else: pairequate(tca,z1); %top center accentpoint
+ fi
+fi
+pairequate(lca,z3); %low center accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(1.25u#-x_height#*slant,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+% cmchar "Italic letter u";
+newchar(u,9.5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+pairassign(tca,x4,x_height); %top center accentpoint
+pairequate(lca,z4); %low center accentpoint
+pairequate(tra,z6); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,z8); %low right accentpoint
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+% cmchar "Italic letter v";
+newchar(v,8u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+pairassign(tca,x4,x_height); %top center accentpoint
+pairequate(lca,z4); %low center accentpoint
+pairequate(tra,z6); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+% cmchar "Italic letter w";
+newchar(w,12u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(if monospace:-1.5u#,-u# else: 0,0 fi);
+pickup fine.nib; interim superness:=more_super; begingroup
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+if monospace: pos1(vair,90); x1=good.x .5[x0,x2]; top y1r=h; y2=2/3h;
+ pos2(stem,0); filldraw stroke z1e{right}...{-u,-x_height}z2e;
+else: hook_in(0,1,2)(skewed); fi % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0);
+x4=.6[x2,x5]; x5=x6=x7; pos6(stem,-180); pos7(stem,-180);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+rt x6l=hround(rt x6l+.5w+.75u-x6); y6+.5stem=h; y7=y3;
+pos8(vair,-90); pos9(hair,0);
+x8=w-2.75u; rt x9r=hround(w-.5u); bot y8r=-oo; y9=y5;
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e..super_arc.e(7,8)...{up}z9e; % middle stem and arc
+v_bulb(9,10); % closing bulb
+endgroup; math_fit(-2/3x_height#*slant+.5hair#+.5u#,3/4ic#);
+pairequate(tca,z6); %top center accentpoint
+pairassign(lca,x5,0); %low center accentpoint
+pairequate(tra,z10); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z4); %low left accentpoint
+pairequate(lra,z8); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+% cmchar "Italic letter x";
+newchar(x,6.5u#+max(1.5u#,flare#),x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant+.25u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,180); pos1(vair,90); pos2(stem,0);
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0);
+y0=y2=2/3h; y3=y5=1/3h; top y1r=h+oo; bot y4r=-oo;
+rt x2r=hround(.5w+.5stem-eps); x2=x3;
+x0-.5hair=hround-.5hair; x5+.5hair=hround(w+.5hair-eps);
+x1=.5[x0,x2]; x4=.5[x3,x5];
+filldraw stroke z0e{up}...pulled_arc.e(1,2); % opening hook
+filldraw z2l--z3r--z3l--z2r--cycle; % stem
+filldraw stroke pulled_arc.e(3,4)...{up}z5e; % closing hook
+pos3'(hair,180); pos6(hair,180); pos7(vair,90);
+pos8(hair,0); pos9(flare,0);
+x3'l=x6l=x3l; y3'=y3; y6=3/4h; x7=.5[x8,x2]; top y7r=h+oo;
+rt x8r=hround(w-.25u); y8+.5flare=vround(bot y7l-.03x_height);
+filldraw stroke z3'e---z6e...{right}z7e; bulb(7,8,9); % upper link and bulb
+pos2'(hair,0); pos16(hair,0); pos17(vair,-90);
+pos18(hair,-180); pos19(flare,-180);
+x2'l=x16l=x2l; y2'=y2; y16=1/4h; x17=.5[x18,x3]; bot y17r=-oo;
+lft x18r=hround.25u; y18-.5flare=vround(top y17l+.03x_height);
+filldraw stroke z2'e---z16e...{left}z17e; bulb(17,18,19); % lower link and bulb
+pairassign(tca,x2,x_height); %top center accentpoint
+pairassign(lca,x3,0); %low center accentpoint
+pairequate(tra,z7); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z17); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+math_fit(0,ic#); penlabels(0,1,2,3,4,5,6,7,8,9,16,17,18,19); endchar;
+
+% cmchar "Italic letter y";
+newchar(y,8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2;
+pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-1.5u+.5stem);
+pos7(stem,0); pos8(vair,-90);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+y7=0; bot y8r=-d-oo; x5=x6=x7; x8=.5w;
+pos9(hair,-180); pos10(flare,-180); y9=-.5d;
+lft x9r=hround(2.75u-.5flare); bulb(8,9,10); % bulb
+filldraw stroke z2'e{-u,-x_height}
+ ...super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e---z7e...{left}z8e; % right stem and link
+pairassign(tca,x4,x_height); %top center accentpoint
+pairequate(lca,z8); %low center accentpoint
+pairequate(tra,z6); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+% cmchar "Italic letter z";
+newchar(z,5.5u#+max(1.5u#,stem#),x_height#,0);
+italcorr x_height#*slant+.5hair#;
+adjust_fit(if monospace:.5u#,.5u# else: 0,0 fi); pickup fine.nib;
+pos1(hair,0); pos2(stem,-90); pos3(vair,-90); pos4(hair,0);
+lft x1l=hround(u-.5hair); x2=2.5u; x3=w-2u; rt x4r=hround(w-.5u);
+top y1=.78h; top y2l=top y4=h+oo; y3=.825h;
+pos5(hair,0); pos6(vair,-90); pos7(stem,-90); pos8(hair,0);
+x5=x1; x6=2.5u; x7=w-2u; x8+.5hair=hround(w+.5hair-eps);
+bot y5=bot y7r=-oo; y6=.175h; bot y8=.31h;
+pair p; p=(z4-z5) yscaled 2;
+filldraw stroke z1e{up}...z2e{right}..z3e{right}...{p}z4e; % upper bar
+filldraw stroke z5e{p}...z6e{right}..{right}z7e...{up}z8e; % lower bar
+filldraw stroke z5e{p}..{p}z4e; % diagonal
+pairassign(tca,.5[x5,x4],x_height); %top center accentpoint
+pairassign(lca,.5[x5,x4],0); %low center accentpoint
+pairequate(tra,z4); %top right accentpoint
+pairequate(tla,z2); %top left accentpoint
+pairequate(lla,z5); %low left accentpoint
+pairequate(lra,z7); %low right accentpoint
+math_fit(0,1/3x_height#*slant+.5hair#+.5u#);
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+% end of file italla.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/ligature.mf b/Master/texmf-dist/fonts/source/public/wnri/ligature.mf
new file mode 100644
index 00000000000..d991fd3f122
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/ligature.mf
@@ -0,0 +1,218 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw roman ligature characters
+%
+
+cmchar "The ligature ae";
+newchar(ae,13u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(tiny.breadth,hround(curve-2stem_corr));
+right_curve=max(tiny.breadth,hround(curve-if serifs:6
+else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5w-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y
+ y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % right terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l;
+ x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(mfudged.hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=4u;
+ y1=min(bar_height+.5flare+2vair+2,.9[bar_height,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=4.3u; top y1r=vround .82[bar_height,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % left terminal
+pos4(mfudged.stem,0); x4=x13; y4=1/3[bar_height,h];
+pos5(mfudged.stem,0); x5=x4; y5=min(y4,y13);
+filldraw stroke super_arc.e(3,4)&z4e--z5e; % arc and stem
+pos6(.6[thin_join,vair],90); x6=x4; bot y6=y10l;
+pos7(left_curve,180);
+lft x7r=hround max(.5u,1.5u-.5left_curve);
+y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=3.75u; bot y8r=-oo;
+pos9(.5[vair,fudged.stem],360); x9=x5; y9=.55bar_height;
+(x',y8r)=whatever[z8l,z9l]; x8r:=max(x',x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if y9<y5:
+filldraw stroke z5e{down}..{down}z9e;
+fi % link (usually hidden)
+pairassign(tca,x4,y3); %top center accentpoint
+pairassign(lca,x4,y8); %low center accentpoint
+pairequate(tra,z12); %top right accentpoint
+pairequate(tla,z3); %top left accentpoint
+pairequate(lla,z8); %low left accentpoint
+pairequate(lra,z14); %low right accentpoint
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+cmchar "The ligature oe";
+newchar(oe,14u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(0,0);
+numeric left_curve,right_curve;
+if monospace: right_curve=left_curve=fudged.stem;
+else: left_curve=max(fine.breadth,hround(curve-2stem_corr));
+ right_curve=max(tiny.breadth,hround(curve-if serifs:6 else:8 fi\\stem_corr));fi
+pickup tiny.nib; pos11(right_curve,0);
+pos12(vair,90); pos13(mfudged.stem,180);
+y11=good.y bar_height; top y12r=h+vround 1.5oo; y10l=bot y11;
+rt x11r=hround min(w-.5u,w-u+.5right_curve);
+lft x13r=hround (.5(w+u)-.5mfudged.stem); x12=.55[x13,x11];
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(11,12)}}; % right bowl of e
+y13=.5[y12,y14]; bot y14r=-oo; x14=x12+.25u;
+if serifs: pos14(vair',270); pos15(mfudged.hair,360);
+ y15=max(good.y(.5bar_height-.9),y14l+vair); x15r=x11r;
+ (x,y14l)=whatever[z14r,z15]; x14l:=min(x,x14l+.5u);
+ filldraw stroke pulled_arc.e(12,13)
+ & pulled_super_arc.e(13,14)(.8superpull)
+ ...{x15-x14,5(y15-y14)}z15e; % left bowl, arc, and terminal of e
+else: pos14(vair,270);
+ filldraw stroke super_arc.e(12,13)
+ & super_arc.e(13,14); % left bowl and arc of e
+ pickup fine.nib; pos14'(vair,270); z14=z14';
+ pos15(.5[vair,flare],275); rt x15r=hround(w-.6u);
+ y15r=good.y(y15r+1/3bar_height-y15); y15l:=good.y y15l; x15l:=good.x x15l;
+ filldraw stroke term.e(14',15,right,1,4); fi % terminal
+y11'r=y10r=y10l+.6[thin_join,vair]; y11'l=y10l; x11'l=x11'r=x11; x10l=x10r=x13;
+fill stroke z10e--z11'e; % crossbar
+pickup fine.nib; pos1(vair,90); pos3(vair,-90);
+pos2(left_curve,180); pos4(mfudged.stem,0);
+lft x2r=hround max(.5u,1.25u-.5curve);
+z4=z13; x1=x3=.5[x2,x4]; top y1r=h+vround 1.5oo; bot y3r=-oo;
+y2=y4; y2l:=y4l:=.52h;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of left bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of left bowl
+pairassign(tca,x4,y1); %top center accentpoint
+pairassign(lca,x4,y3); %low center accentpoint
+pairequate(tra,z12); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z3); %low left accentpoint
+pairequate(lra,z14); %low right accentpoint
+penlabels(1,2,3,4,10,11,12,13,14,15); endchar;
+
+cmchar "The ligature AE";
+newchar(AE,16u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,mid_stem,outer_jut,alpha;
+mid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(mid_stem,0); pos2(mid_stem,0);
+lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0); x5=x1;
+top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.65u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,.5cap_jut); fi % lower middle serif
+pairequate(tca,z3); %top center accentpoint
+pairequate(lca,z8); %low center accentpoint
+pairassign(tra,x.e2,y3); %top right accentpoint
+pairequate(tla,z12); %top left accentpoint
+pairequate(lla,z11); %low left accentpoint
+pairassign(lra,x.h2,y2); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+cmchar "The ligature OE";
+newchar(OE,18u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric light_stem;
+light_stem=max(tiny.breadth,hround .8[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround .5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.4u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+penpos11(vair,90); penpos13(vair,-90);
+if monospace: penpos12(fudged.cap_stem,180);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: penpos12(hround(cap_curve-stem_corr),180); fi
+x11=x13=.5w-2u; y11r=h+o; y13r=-o; y12=.5h-vair_corr; x12r=hround u;
+x14=x15=.5w; y14=2/3h; y15=1/3h; y12l:=.52h;
+penstroke super_arc.e(11,12) & super_arc.e(12,13); % left half of bowl
+fill z13r{right}..{right}(x2,0)--(x1,h){left}..{left}z11r
+ --z11l{right}...{z14-z11l}(.82[x11l,x14],.82[y14,y11l])
+ ...z14---z15...{z13l-z15}(.82[x13l,x15],.82[y15,y13l])
+ ...{left}z13l--cycle; % right half of bowl
+if serifs: serif(1,2,a,1/3,.5cap_jut); % upper serif
+ serif(2,1,b,1/3,.5cap_jut); fi % lower serif
+pairequate(tca,z3); %top center accentpoint
+pairequate(lca,z8); %low center accentpoint
+pairassign(tra,x.e2,y3); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z13); %low left accentpoint
+pairassign(lra,x.h2,y2); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15); endchar;
+
+% end of file ligature.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/ligaturi.mf b/Master/texmf-dist/fonts/source/public/wnri/ligaturi.mf
new file mode 100644
index 00000000000..980b5d67f3a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/ligaturi.mf
@@ -0,0 +1,163 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw italic ligature characters
+%
+
+cmchar "The italic ligature ae";
+newchar(ae,13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+numeric light_stem; light_stem=hround .75[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(light_stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5light_stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos7(light_stem,0); pos8(light_stem,0);
+x7=x8=x3; y7+.5light_stem=h+oo; y8-.5light_stem=-oo;
+pos7'(vair,-225); pos11(curve,-180); z7'=z7;
+pos12(vair,-90); pos3'(hair,0); z3'=z3;
+lft x11r=hround(1.5u-.5curve); x12=.5[x11,x3];
+y11=.3[y12,y7]; bot y12r=-oo;
+filldraw stroke z7'e{3(x11-x7),y11-y7}...pulled_arc.e(11,12)
+ & pulled_arc.e(12,3'); % bowl of a
+filldraw z7l---z8l..z8r---z7r..cycle; % stem
+pairequate(tca,z7); %top center accentpoint
+pairequate(lca,z8); %low center accentpoint
+pairequate(tra,z2); %top right accentpoint
+pairassign(tla,x12,y7); %top left accentpoint
+pairequate(lla,z12); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
+
+cmchar "The italic ligature oe";
+newchar(oe,13u#,x_height#,0);
+italcorr max(1/3x_height#*slant,x_height#*slant+.5(.2[hair#,stem#])-u#);
+adjust_fit(if monospace:-u#,-u# else: 0,0 fi); pickup fine.nib;
+forsuffixes $=hair,stem: shaved$:=mfudged$; save $; $=shaved$; endfor
+numeric heavy_hair; heavy_hair=hround .2[hair,stem];
+pos0(vair,-90); pos1(heavy_hair,0); pos2(vair,90);
+pos3(stem,180); pos4(vair,270); pos5(hair,320);
+x0=rt x3l; rt x1r=hround(w-1.5u+.5heavy_hair); x2=x4=.5(w+6u);
+lft x3r=hround(.5w-.5stem); x5r=good.x(w-.5u); x6=x5;
+y0=y3=y6=bar_height; y1=.5[y0,y2]; top y2r=h+oo; bot y4r=-oo;
+top y5l=vround(.5bar_height+.5); path p; p=z4{right}..z5..z6;
+filldraw stroke z0e{right}...z1e{up}...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{direction 1 of p}z5e; % arc of e
+pos11(vair,90); pos12(curve,180); pos13(vair,270); pos14(stem,360);
+x11=x13=.5[x12,x14]; lft x12r=hround(1.5u-.5curve); x14=x3;
+top y11=h+oo; y12=y14=.5[y11,y13]; bot y13=-oo;
+filldraw stroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
+ & pulled_arc.e(13,14) & pulled_arc.e(14,11); % bowl
+pairassign(tca,x3,y2); %top center accentpoint
+pairassign(lca,x3,y4); %low center accentpoint
+pairequate(tra,z2); %top right accentpoint
+pairequate(tla,z11); %top left accentpoint
+pairequate(lla,z13); %low left accentpoint
+pairequate(lra,z14); %low right accentpoint
+penlabels(1,2,3,4,5,6,11,12,13,14); endchar;
+
+cmchar "The ligature AE";
+newchar(AE,16u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,mid_stem,outer_jut,alpha;
+mid_stem=max(tiny.breadth,hround .9[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(mid_stem,0); pos2(mid_stem,0);
+lft x1l=lft x2l=hround(if monospace or hefty:.55 else:.5 fi\\w-.75u);
+top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0); x5=x1;
+top y5l=vround(if hefty:.52 else:.48 fi\\[y2,y1]+.5cap_bar);
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.65u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+left_stem=if monospace:fudged.hair else: cap_hair fi if hefty: -3stem_corr fi;
+outer_jut=.8cap_jut; x11l=l+letter_fit+outer_jut+.5u; y11=0;
+x12=x1l-apex_corr-if monospace:2 fi\\u; y12=h;
+alpha=diag_ratio(1,.5left_stem,y12-y11,x12-x11l);
+penpos11(alpha*left_stem,0); penpos12(alpha*left_stem,0);
+fill diag_end(12l,11l,1,1,11r,12r)
+ --diag_end(11r,12r,1,1,12l,11l)--cycle; % diagonal
+y10=h-slab; z10=whatever[z11,z12];
+fill z10--(x1,y10)--(x1,h)--z12--cycle; % link
+penpos13(whatever,angle(z2-z1)); z13=whatever[z11,z12];
+penpos14(cap_band,90); x14=x0; y13l=y14l; y13r=y14r;
+if hefty: y14r=.4h; else: y14=y0; fi
+penstroke z13e--z14e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(11,12);
+ if rt x11'r+cap_jut+.5u+1<=lft x2l-.75cap_jut: inner_jut=cap_jut;
+ else: rt x11'r+inner_jut+.5u+1=lft x2l-.75inner_jut; fi
+ dish_serif(11',12,i,1/2,outer_jut,j,.6,inner_jut)(dark); % lower left serif
+ nodish_serif(1,2,a,1/3,cap_jut+x1l-x12,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,.75inner_jut,d,1/3,.5cap_jut); fi % lower middle serif
+pairequate(tca,z3); %top center accentpoint
+pairequate(lca,z8); %low center accentpoint
+pairassign(tra,x.e2,y3); %top right accentpoint
+pairequate(tla,z12); %top left accentpoint
+pairequate(lla,z11); %low left accentpoint
+pairassign(lra,x.h2,y2); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+cmchar "The ligature OE";
+newchar(OE,18u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric light_stem;
+light_stem=max(tiny.breadth,hround .8[mfudged.hair,mfudged.cap_stem]);
+pickup tiny.nib; pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround .5w; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(mfudged.hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(mfudged.hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(mfudged.hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs and not(monospace and hefty): rt x6r=hround(w-3.4u+.5mfudged.hair);
+ y6=good.y(y5l+.6beak)+eps; rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90);
+pos9(mfudged.hair,0); bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+penpos11(vair,90); penpos13(vair,-90);
+if monospace: penpos12(fudged.cap_stem,180);
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: penpos12(hround(cap_curve-stem_corr),180); fi
+x11=x13=.5w-2u; y11r=h+o; y13r=-o; y12=.5h-vair_corr; x12r=hround u;
+x14=x15=.5w; y14=2/3h; y15=1/3h; y12l:=.52h;
+penstroke super_arc.e(11,12) & super_arc.e(12,13); % left half of bowl
+fill z13r{right}..{right}(x2,0)--(x1,h){left}..{left}z11r
+ --z11l{right}...{z14-z11l}(.82[x11l,x14],.82[y14,y11l])
+ ...z14---z15...{z13l-z15}(.82[x13l,x15],.82[y15,y13l])
+ ...{left}z13l--cycle; % right half of bowl
+if serifs: serif(1,2,a,1/3,.5cap_jut); % upper serif
+ serif(2,1,b,1/3,.5cap_jut); fi % lower serif
+pairequate(tca,z3); %top center accentpoint
+pairequate(lca,z8); %low center accentpoint
+pairassign(tra,x.e2,y3); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z13); %low left accentpoint
+pairassign(lra,x.h2,y2); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,9,11,12,13,14,15); endchar;
+
+% end of file ligaturi.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/macracct.mf b/Master/texmf-dist/fonts/source/public/wnri/macracct.mf
new file mode 100644
index 00000000000..37b7de2baf7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/macracct.mf
@@ -0,0 +1,36 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw macron accents
+%
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+currentpicture:=nullpicture;
+z1'=0.25[z1,z2]; z2'=0.75[z1,z2];
+pos1'(macron_breadth,90); pos2'(macron_breadth,90);
+filldraw stroke z1'e--z2'e; % bar
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(ShortMac);
+endgroup;
+
+extra_endchar:=
+ " czu ap(MacronPic); ah; oechar; ";
+%extra_endchar:=
+% " czu whap(MacronPic,ShortMac,6.5u); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = macron enddef;
+
+% end of file macracct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/mudaacct.mf b/Master/texmf-dist/fonts/source/public/wnri/mudaacct.mf
new file mode 100644
index 00000000000..9ac0263739b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/mudaacct.mf
@@ -0,0 +1,61 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw combination macron, acute accent, and underdot
+%
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+transform Tf; Tf = identity shifted (-.5w + slant*(-h-dot_diam) ,aspect_ratio*(-h-dot_diam));
+savePicture(UdotPic);
+endgroup;
+
+cmchar "Acute accent";
+beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+transform Tf; Tf=identity shifted (-.5w + slant*(-y2) ,aspect_ratio*(-y2));
+savePicture(MacronPic);
+endgroup;
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+transform At; At=identity shifted(.5w + slant*(h+acctdiff),aspect_ratio*(h+acctdiff));
+ap(MacronPic);
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+endgroup;
+
+
+extra_endchar:=
+ " czu ap(MacronPic); czd ap(UdotPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+def cp = muda enddef;
+
+% end of file mudaacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/odotacct.mf b/Master/texmf-dist/fonts/source/public/wnri/odotacct.mf
new file mode 100644
index 00000000000..8e80b9df827
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/odotacct.mf
@@ -0,0 +1,27 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw superscript dot accents
+%
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+makeACCENT(DotPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(DotPic); ah; oechar; ";
+boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.
+
+def cp = odot enddef;
+
+% end of file odotacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/orngacct.mf b/Master/texmf-dist/fonts/source/public/wnri/orngacct.mf
new file mode 100644
index 00000000000..97b65cea8ac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/orngacct.mf
@@ -0,0 +1,30 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw high circle accents
+%
+
+cmchar "Scandinavian circle accent";
+beginchar(oct"027",13u#+4/3(asc_height#-x_height#)*slant,asc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+makeACCENT(RingPic);
+endgroup;
+
+
+extra_endchar:=
+ " czu ap(RingPic); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = orng enddef;
+
+% end of file orngacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/product.mf b/Master/texmf-dist/fonts/source/public/wnri/product.mf
new file mode 100644
index 00000000000..466ebb5adf2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/product.mf
@@ -0,0 +1,9 @@
+%
+% Washington Romanized Indic accent driver
+%
+
+boolean production; production=true;
+%boolean production; production=false;
+
+% end of file product.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/romanla.mf b/Master/texmf-dist/fonts/source/public/wnri/romanla.mf
new file mode 100644
index 00000000000..342d42da63a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/romanla.mf
@@ -0,0 +1,1075 @@
+%
+% Washington Roman Indic lowercase base file
+%
+% based on ROMANL.MF (Computer Modern Roman lowercase base file)
+%
+% Modified by: Thomas Ridgeway <ridgeway@u.washington.edu>, June 19 1993
+% Updated: Anshuman Pandey <apandey@u.washington.edu>, Feb 18 1998
+%
+% Changes: modified some characters to get better looking accent
+% positions.
+%
+
+% cmchar "The letter a";
+newchar(a,9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+% accent points
+pairequate(tca,z3); %top center accentpoint
+pairequate(lca,z8); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+% cmchar "The letter b";
+newchar(b,10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+% accent points
+pairassign(tca,.3[x4,x5],y4); %top center accentpoint
+pairequate(lca,z6); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z8); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+% cmchar "The letter c";
+newchar(c,8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+% accent points
+pairequate(tca,z2); %top center accentpoint
+pairequate(lca,z4); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5); endchar;
+
+% cmchar "The letter d";
+newchar(d,10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+% accent points
+pairassign(tca,.3[x5,x4],y4); %top center accentpoint
+pairequate(lca,z6); %low center accentpoint
+pairequate(tra,z1); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,z2); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% cmchar "The letter e";
+newchar(e,7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+% accent points
+pairequate(tca,z2); %top center accentpoint
+pairequate(lca,z4); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5); endchar;
+
+% cmchar "The letter f";
+newchar(f,5.5u#,asc_height#,0);
+italcorr asc_height#*slant+if serifs:flare#-.25u# else: 1.25u# fi;
+adjust_fit(stem_shift#,if monospace: .5u# else:-stem_shift# fi);
+pickup tiny.nib; pos1(stem',0); lft x1l=hround(2.5u-.5stem');
+pickup fine.nib; numeric bulb_diam;
+if serifs: bulb_diam=hround .8[stem,flare];
+ pos2(bulb_diam,0); y2+.5bulb_diam=.9[x_height,h+oo];
+ if monospace: rt x2r=hround(w-.5u)+1 else: lft x2l=hround(w-.75u+.5) fi;
+else: pos2(5/7[vair,flare],90); top y2r=h;
+ rt x2=hround(if monospace:w-.5u else:w+.75u fi); fi
+f_stroke(1,2,a,b,c,jut,if not monospace:1.25fi\\ jut); % stem, terminal, serif
+pickup crisp.nib; top y3r=top y4r=x_height; lft x3=hround .5u-1;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else:1/3u fi);
+filldraw stroke z3e--z4e; % bar
+% accent points
+pairequate(tca,z.a2); %top center accentpoint
+pairequate(lca,z1); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2,3,4); endchar;
+
+% cmchar "letter g inverted breve";
+newchar(g,9u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(0,0);
+numeric light_vair,light_curve,loop_top,loop_side;
+light_vair=Vround(.5[thin_join,vair]+vair_corr);
+light_curve=max(fine.breadth,hround(curve-3stem_corr));
+loop_top=Vround .77[vair,fudged.stem];
+loop_side=hround .64[vair,fudged.stem];
+pickup fine.nib; pos1(light_vair,90);
+pos2(light_curve,180); pos3(light_vair,270);
+pos4(light_curve,360); pos11(loop_top,90);
+y11r=good.y(y11r+.15bar_height-y11); x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+lft x2r=hround(1.75u-.5light_curve); rt x4r=hround(w-2.75u+.5light_curve);
+top y1r=x_height+oo; y3r=good.y(y3r+.27[top y11r,bot y1l]-y3);
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % left half of bowl
+filldraw stroke pulled_arc.e(3,4) & pulled_arc.e(4,1); % right half of bowl
+x0=superness[x1r,x4r]; y0=superness[y4r,y1r]; % NE point on the super bowl
+x8'=superness[x3r,x2r]; y8'=superness[y2r,y3r]; % SW point on the super bowl
+x8''=superness[x3,x2]; y8''=superness[y2,y3];
+pos0(thin_join,angle(z0-z8')+90);
+pos8(thin_join,angle(z0-z8')-90); z8=.618[z8',z8''];
+if serifs: pos5(vair,90);
+ pos6(hair,0); pos7(.5[hair,flare],0); x5=.75[x0,x6]; top y5r=x_height+o;
+ rt x6r=hround(w-.25u); y6+(.5[hair,flare])/2=.95[bar_height,x_height]+oo;
+ filldraw stroke z0e..{right}z5e; bulb(5,6,7); % ear
+else: pos5(vair',100); top y5r=x_height+oo;
+ rt x5l=hround(w-.25u); y5l:=good.y y5l;
+ filldraw z0l{z5-z0}..z5l--z5r{left}..{curl 1}z0r--cycle; fi % ear
+pos10(loop_top,90); x10=x8+.75u; y10=y11;
+pos12(loop_side,0); pos13(light_vair,-90);
+pos14(loop_side,-180); pos10'(.5[thin_join,vair],-270);
+rt x12r=hround max(w-1.25u+.5loop_side,w-.5u); y12=y14=.5[y11,y13];
+x11=x13=max(.5w,x10+eps); bot y13r=-d-oo-1; x14=w-x12; z10'l=z10l;
+filldraw stroke z8e{z8-z0}..z10e---z11e; % link
+filldraw stroke {{interim superness:=hein_super; super_arc.e(11,12)}}
+ & super_arc.e(12,13) & super_arc.e(13,14) & super_arc.e(14,10'); % loop
+% accent points
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z13); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12,13,14); labels(8',8''); endchar;
+
+% cmchar "Variant letter g round";
+newchar(vg,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4); fi % tail
+% accent points
+pairequate(tca,z4); %top center accentpoint
+pairequate(lca,z9); %low center accentpoint
+pairequate(tra,z8); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+% cmchar "The letter h";
+newchar(h,10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+% accent points
+pairassign(tca,.3[x.a1,x3],y.a1); %top center accentpoint
+pairassign(lca,.5[x2,x4],y2); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+penlabels(1,2,3,4); endchar;
+
+% cmchar "The letter i";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+newchar(i,5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(dot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; if dotson: dot(3,4); fi % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+% accent points
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z2); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2,3,4); endchar;
+
+% cmchar "The letter j";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+newchar(j,5.5u#,min(asc_height#,10/7x_height#+.5dot_diam#),desc_depth#);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3r=x1r; top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; if dotson: dot(3,4); fi % dot
+if serifs: sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+% accent points
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z5); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2,3,4,5,6,7); endchar;
+
+% cmchar "The letter k";
+newchar(k,9.5u#,asc_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(serif_fit#,serif_fit#); pickup tiny.nib;
+numeric right_jut,stem[],alpha[];
+stem1=max(tiny.breadth,hround(fudged.stem-stem_corr));
+stem2=max(tiny.breadth,hround(fudged.stem-2stem_corr));
+stem3=max(tiny.breadth,hround(fudged.hair if hefty:-\\4stem_corr fi));
+stem4=max(tiny.breadth,hround(fudged.stem-3stem_corr));
+if serifs: right_jut=.6jut; else: right_jut=.4tiny; fi
+pos1(stem1,0); pos2(stem2,0); top y1=h; bot y2=0;
+lft x1l=lft x2l=hround(2.5u-.5stem1);
+top y3=x_height; rt x3r=hround(r-letter_fit-.7u-right_jut)+eps;
+bot y6=0; rt x6r=hround(r-letter_fit-.3u-right_jut)+eps;
+x4=x11=x1; y4=.7bar_height; y11=y3;
+alpha1=diag_ratio(1,.5(stem3-tiny),y3-y4,x3r-x4);
+alpha2=diag_ratio(1,.5(stem4-tiny),y11-y6,x6r-x1);
+penpos3(alpha1*(stem3-tiny),0); penpos4(whatever,-90);
+z5=.5[z5l,z5r]; penpos6(alpha2*(stem4-tiny),0);
+forsuffixes $=l,r: y3'$=x_height; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z11-z6)=whatever[z3,z4]; endfor
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z11-z6 of currentpen+whatever*(z11-z6);
+z6'l=z6l+penoffset z6-z11 of currentpen+whatever*(z11-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+pos0(stem1,0); pos0'(stem2,0); y0=y0'; x0=x1; x0'=x2;
+rt z0r=whatever[z3,z4]; filldraw stroke z1e..z0e--z0'e..z2e; % stem
+if serifs: numeric inner_jut;
+ if rt x2r+jut+.5u+1<=lft x6l-jut: inner_jut=jut;
+ else: rt x2r+inner_jut+.5u+1=lft x6l-inner_jut; fi
+ sloped_serif.l(1,0,a,1/3,jut,serif_drop); % upper stem serif
+ dish_serif(2,0',b,1/3,jut,c,1/3,inner_jut); % lower stem serif
+ dish_serif(3,4,d,2/3,1.4jut,e,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,f,1/2,inner_jut,g,1/3,right_jut)(dark);fi % lower diagonal serif
+% accent points
+pairassign(tca,.5[x5,x3],y3); %top center accentpoint
+pairassign(lca,.5[x2,x6],y2); %low center accentpoint
+pairequate(tra,z3); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z6); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,11); endchar;
+
+% cmchar "The letter l";
+newchar(l,5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+% accent points
+pairequate(lca,z2); %low center accentpoint
+pairassign(tra,x1+min(stem+.25dot_size+.5jut,2dot_size),y1-slab-.5dot_size); %top right accentpoint
+if unknown gltl.l: pairequate(tca,z1); %top center accentpoint
+else:
+ if cp.l=gltl.l: pairequate(tca,tra);
+ else: pairequate(tca,z1); %top center accentpoint
+ fi
+fi
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2); endchar;
+
+% cmchar "The letter m";
+newchar(m,15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+% accent points
+pairassign(tca,x4,y1); %top center accentpoint
+pairequate(lca,z4); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z6); %low right accentpoint
+penlabels(1,2,3,4,5,6); endchar;
+
+% cmchar "The letter n";
+newchar(n,10u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+% accent points
+pairassign(tca,.5[x1,x3],y1); %top center accentpoint
+%pairequate(tca,z.a1); %top center accentpoint
+pairassign(lca,.5[x2,x4],y2); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+penlabels(1,2,3,4); endchar;
+
+% cmchar "The letter o";
+newchar(o,9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+% accent points
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2,3,4); endchar;
+
+% cmchar "The letter p";
+newchar(p,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+% accent points
+pairequate(tca,z4); %top center accentpoint
+pairequate(lca,z2); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+% cmchar "The letter q";
+newchar(q,10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair',90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo; y7=min(y3,y6+y4-y3+.6vair);
+lft x7l=min(lft x7l-(rt x7r-tiny.rt x2r),1/3[lft x2,edge]);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{right}...{up}z7l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+% accent points
+pairequate(tca,z4); %top center accentpoint
+pairequate(lca,z2); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+% cmchar "The letter r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+newchar(r,if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+% accent points
+if serifs: pairassign(tca,0.5[x1,x6],y1); %top center accentpoint
+else: pairassign(tca,0.625[x3,x4],y1); %top center accentpoint
+fi
+if unknown ubar.r: pairequate(lca,z2);
+else:
+ if cp.r=ubar.r: pairassign(lca,.5w,0); %low center accentpoint
+ else:
+ pairequate(lca,z2); %low center accentpoint
+ fi
+fi
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2,3,4,5,6); endchar;
+
+% cmchar "The letter s";
+newchar(s,7.1u#,x_height#,0);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+% accent points
+pairequate(tca,z2); %top center accentpoint
+
+pairequate(lca,z7); %low center accentpoint
+if unknown udot.s:
+ pairequate(lca,z7); %low center accentpoint
+else:
+ if cp.s=udot.s:
+ pairassign(lca,x7-.25dot_size,0); %low center accentpoint
+ else:
+ pairequate(lca,z7); %low center accentpoint
+ fi
+fi
+
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+% cmchar "The letter t";
+newchar(t,6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),0);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+% accent points
+if unknown ubar.t:
+ if unknown udot.t:
+ pairequate(lca,z4); %low center accentpoint
+ else:
+ if cp.t=udot.t:
+ pairassign(lca,x1r,0); %low center accentpoint
+ else:
+ pairequate(lca,z4); %low center accentpoint
+ fi
+ fi
+else:
+ if cp.t=ubar.t:
+ pairassign(lca,x1,0); %low center accentpoint
+ else:
+ if unknown udot.t:
+ pairequate(lca,z4); %low center accentpoint
+ else:
+ if cp.t=udot.t:
+ pairassign(lca,x1r,0); %low center accentpoint
+ else:
+ pairequate(lca,z4); %low center accentpoint
+ fi
+ fi
+ fi
+fi
+pairequate(tra,z8); %top right accentpoint
+if unknown gltl.t: pairequate(tca,z1); %top center accentpoint
+else:
+ if cp.t=gltl.t: pairequate(tca,tra);
+ else: pairequate(tca,z1); %top center accentpoint
+ fi
+fi
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+% cmchar "The letter u";
+newchar(u,10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% accent points
+pairassign(tca,.5[x1,x3],y1); %top center accentpoint
+pairequate(lca,z5); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2,3,4,5); labels(6); endchar;
+
+% cmchar "The letter v";
+newchar(v,if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+% accent points
+pairassign(tca,x0,y1); %top center accentpoint
+if hefty pairassign(lca,x0,y2); else: pairequate(lca,z3); fi %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4); endchar;
+
+% cmchar "The letter w";
+newchar(w,13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.5[z5l,z6l]
+ --.5[z5r,z6r]--cycle;% middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+% accent points
+pairassign(tca,x45,h); %top center accentpoint
+pairassign(lca,x45,y2); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+% cmchar "The letter x";
+newchar(x,if serifs:9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+outer_jut+xjut; x4r=r-letter_fit-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+% accent points
+pairassign(tca,.5[x1,x2],y1); %top center accentpoint
+pairassign(lca,.5[x3,x4],y3); %low center accentpoint
+pairequate(tra,z2); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z3); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+% cmchar "The letter y";
+newchar(y,if serifs:9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=h; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0); z5r=whatever[z3r,z4r]; y5-.5vair=-.5d;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-d-oo; y8-.5light_bulb=-.85d; x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-d-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96d-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+% accent points
+pairassign(tca,x0,y1); %top center accentpoint
+pairassign(lca,x0,y6); %low center accentpoint
+%pairequate(tra,z4); %top right accentpoint
+%
+% this top-right, top-center, top-left business isn't terribly
+% well worked out--- we really need some sort of conceptual
+% / functional way of specifiying this
+%
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z6); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+% cmchar "The letter z";
+newchar(z,8u#,x_height#,0);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.8u); lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+% accent points
+pairassign(tca,.5[x6,x1],y1); %top center accentpoint
+pairassign(lca,.5[x3,x8],y3); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+% end of file romanla.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/romanskt.mf b/Master/texmf-dist/fonts/source/public/wnri/romanskt.mf
new file mode 100644
index 00000000000..86d3d656637
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/romanskt.mf
@@ -0,0 +1,193 @@
+%
+% Washington Romanized Indic Roman fonts driver file
+%
+% File : romanskt.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+%font_coding_scheme:="TeX Romanized Indic";
+font_coding_scheme:="Classical Sanskrit eXtended (CSX)";
+spanish_shriek=oct"074"; spanish_query=oct"076";
+
+numeric cdilorigin; cdilorigin=if monospace: -o else: 0 fi;
+
+mode_setup; font_setup;
+input product;
+if production:
+ input romanu; % upper case (majuscules)
+ input romanl; % lower case (minuscules)
+ input greeku; % upper case Greek letters
+ input romand; % numerals
+ input romanp; % ampersand, question marks, currency sign
+ input romspl; % lowercase specials (dotless \i, ligature \ae, etc.)
+ input romspu; % uppercase specials (\AE, \OE, \O)
+ input punct; % punctuation symbols common to roman and italic text
+ input accent; % accents common to roman and italic text
+ if ligs>1: input romlig; fi % letter ligatures
+ if ligs>0: input comlig; fi % ligatures common with italic text
+ if ligs<=1: input romsub; fi % substitutes for ligatures
+fi
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% begin massive departure from roman.mf parent file
+
+mono_charic#:=0;
+input haccbase; % altered base
+
+% dot_sharp_values used by various other macros
+def dot_sharp_values =
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+numeric dot_top#;
+dot_top#=min(asc_height#,10/7x_height#+.5dot_diam#);
+enddef;
+
+input wnindic.map;
+def cp = plain enddef;
+input gamma;
+input ligature; % pickup the ae AE
+input sktmisc; % eszett and rootsign
+input acctmax;
+
+% create characters with diacritics
+
+% overdot characters
+input odotacct; input romanua; input romanla;
+
+% underdot characters
+input udotacct; input romanua; input romanla;
+
+% hatted characters
+input hattacct; input romanla;
+
+% scandinavian ring accent characters
+input orngacct; input romanua; input romanla;
+
+% umlauted characters
+input umlaacct; input romanla; input romanua;
+
+% acute accented characters
+input acutacct; input romanla; input ligature;
+input facutact; input romanua;
+
+% macron characters
+input macracct; input romanua; input romanla;
+
+% macron and acute accented characters
+input baraacct; input romanla;
+input fbaraact; input romanua;
+
+% grave accented characters
+input gravacct; input romanla;
+
+% macron and grave accented characters
+input bargacct; input romanla;
+input fbargact; input romanua;
+
+% cedilla characters
+input cdilacct; input romanla; input romanua;
+
+% tilde characters
+input tildacct; input romanla; input romanua;
+
+% breve accented characters
+input brevacct; input romanla;
+
+% macron breve accented characters
+input brbracct; input romanla;
+
+% underbar characters
+input ubaracct; input romanla; input romanua;
+
+% underdot acute accented characters
+input udacacct; input romanla;
+
+% underdot grave characters
+input udgracct; input romanla;
+
+% underdot macron characters
+input udmcacct; input romanla; input romanua;
+
+% underdot macron acute accented characters
+input mudaacct; input romanla;
+
+% hachek accented characters
+input hachacct; input romanla;
+input fhachact; input romanua;
+
+% under double dot (under-umlaut) accented characters
+input uumlacct; input romanla; input romanua;
+
+% candrabindu characters
+input bnduacct; input romanla; % input romanua;
+
+% flat breve/cup accented characters
+%input fbrevact; input romanla; input romanua;
+
+% under-breve accented characters
+input ubrvacct; input romanla; input romanua;
+
+% resume roman.mf original text ( no kerning for extended chars yet)
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%
+
+ligtable "!": "`" =: spanish_shriek;
+ligtable "?": "`" =: spanish_query;
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+ ligtable "k": if serifs: "v": "a" kern -u#, fi\\"w": "e" kern
+k#,
+ "a" kern k#, "o" kern k#, "c" kern k#;
+ ligtable "P": "A" kern kk#,
+ "y": "o" kern k#, "e" kern k#, "a" kern k#, "." kern kk#, ","
+kern kk#;
+ ligtable "F": "V": "W": if serifs: "o" kern kk#, "e" kern kk#,
+"u" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kkk#,
+ else: "o" kern k#, "e" kern k#, "u" kern k#,
+ "r" kern k#, "a" kern k#, "A" kern kk#, fi
+ "K": "X": "O" kern k#, "C" kern k#, "G" kern k#, "Q" kern k#;
+ ligtable "T": "y" kern if serifs: k# else: kk# fi,
+ "Y": "e" kern kk#, "o" kern kk#,
+ "r" kern kk#, "a" kern kk#, "A" kern kk#, "u" kern kk#;
+ ligtable "O": "D": "X" kern k#, "W" kern k#, "A" kern k#,
+ "V" kern k#, "Y" kern k#;
+ if serifs: ligtable "h": "m": "n":
+ "t" kern k#, "u" kern k#, "b" kern k#, "y" kern k#, "v" kern
+k#, "w" kern k#;
+ ligtable "c": "h" kern k#, "k" kern k#; fi
+ ligtable "o": "b": "p": "e" kern -k#, "o" kern -k#, "x" kern k#,
+ "d" kern -k#, "c" kern -k#, "q" kern -k#,
+ "a": if serifs: "v" kern k#, "j" kern u#, else: "r" kern k#, fi
+ "t": "y" kern k#,
+ "u": "w" kern k#;
+ ligtable "A": if serifs: "R": fi\\ "t" kern k#,
+ "C" kern k#, "O" kern k#, "G" kern k#, "U" kern k#, "Q" kern
+k#,
+ "L": "T" kern kk#, "Y" kern kk#, "V" kern kkk#, "W" kern kkk#;
+ ligtable "g": "j" kern -k#; % logjam
+ ligtable "I": "I" kern -k#; fi % Richard III
+ % there are ligature/kern programs for |"f"| in the {\tt romlig} file
+ % and for |"-"|, |"`"|, and |"'"| in the {\tt comlig} file
+bye.
+
+% end of file romanskt.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/romanua.mf b/Master/texmf-dist/fonts/source/public/wnri/romanua.mf
new file mode 100644
index 00000000000..056b0e30dd2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/romanua.mf
@@ -0,0 +1,941 @@
+%
+% Washington Roman Indic uppercase base file
+%
+% based on ROMANU.MF (Computer Modern Roman uppercase base file)
+%
+% Modified by: Thomas Ridgeway <ridgeway@u.washington.edu>, June 19 1993
+% Updated: Anshuman Pandey <apandey@u.washington.edu>, Feb 18 1998
+%
+
+if unknown dotson: boolean dotson; dotson=true; fi
+
+% cmchar "The letter A";
+newchar(A,13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+pairassign(tca,x2,cap_height); %top center accentpoint-- lowered slightly
+if unknown ogon.A :pairassign(lca,.5[x1,x4],0); %low center accentpoint
+else:
+ if cp.A = ogon.A: pairassign(lca,x4,y4+.5vair); %low center accentpoint
+ else: pairassign(lca,.5[x1,x4],0); %low center accentpoint
+ fi
+fi
+pairequate(tra,z4); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,z1); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+penlabels(0,1,2,3,4,5,6); endchar;
+
+% cmchar "The letter B";
+newchar(B,12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pairassign(tca,.5[x7,x5],cap_height); %top center accentpoint
+pairassign(lca,.5[x7,x10],0); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z11); %low right accentpoint
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+% cmchar "The letter C";
+if serifs:
+ newchar(C,13u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270); pos5(hair,360);
+ rt x1r=rt x5r=hround(w-u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ y5=max(good.y .95(h-y1),y4l+eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...{up}z5e; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pairequate(tca,z2r); %top center accentpoint
+ pairequate(lca,z4); %low center accentpoint
+ pairequate(tra,tca); %top right accentpoint
+ pairequate(tla,tca); %top left accentpoint
+ pairequate(lla,lca); %low left accentpoint
+ pairequate(lra,lca); %low right accentpoint
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+ penlabels(1,1',2,3,4,5,6); endchar;
+else:
+ newchar(C,11.5u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,275);
+ rt x1r=hround(w-1.1u); x2=x4=.5w+1.25u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5r=hround(w-.9u);
+ top y1r=vround .95h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .08h-o; y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke rterm.e(2,1,right,.9,4) & super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,.8,4); % arc and terminals
+ pairequate(tca,z2); %top center accentpoint
+ pairequate(lca,z4); %low center accentpoint
+ pairequate(tra,tca); %top right accentpoint
+ pairequate(tla,tca); %top left accentpoint
+ pairequate(lla,lca); %low left accentpoint
+ pairequate(lra,lca); %low right accentpoint
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+ penlabels(1,1',2,3,4,5,6); endchar;
+fi
+
+% cmchar "The letter D";
+newchar(D,13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pairequate(tca,z4); %top center accentpoint
+pairequate(lca,z6); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7); endchar;
+
+% cmchar "The letter E";
+newchar(E,12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+pairassign(tca,.5[x5,x6],cap_height); %top center accentpoint
+pairassign(lca,.5[x8,x.h0],if monospace: .5vair else: 0 fi); %low center accentpoint
+pairequate(tra,z.e0); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+% cmchar "The letter F";
+newchar(F,11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+pairassign(tca,.5[x5,x6],cap_height); %top center accentpoint
+pairequate(lca,z2); %low center accentpoint
+pairequate(tra,z.e0); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+% cmchar "The letter G";
+if serifs:
+ newchar(G,14u#,cap_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+ pairequate(tca,z2r); %top center accentpoint
+ pairequate(lca,z4); %low center accentpoint
+ pairequate(tra,tca); %top right accentpoint
+ pairequate(tla,tca); %top left accentpoint
+ pairequate(lla,lca); %low left accentpoint
+ pairequate(lra,lca); %low right accentpoint
+ penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+else:
+ newchar(G,12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#);
+ pairequate(tca,z2); %top center accentpoint
+ pairequate(lca,z4); %low center accentpoint
+ pairequate(tra,tca); %top right accentpoint
+ pairequate(tla,tca); %top left accentpoint
+ pairequate(lla,lca); %low left accentpoint
+ pairequate(lra,lca); %low right accentpoint
+ penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+fi
+
+% cmchar "The letter H";
+newchar(H,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+pairassign(tca,.5[x1,x3],cap_height); %top center accentpoint
+pairassign(lca,.5[x2,x4],0); %low center accentpoint
+pairequate(tra,z3); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+% cmchar "The letter I";
+newchar(I,max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z2); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+% cmchar "The letter J";
+newchar(J,9u#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#
+ +.75cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(0,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+top y1=h; rt x1r=hround(w-2u); x2=x1; y2=.21h;
+if serifs: pos3(vair,-90); pos4(cap_hair,-180);
+ pos5(flare+(cap_stem-stem),-180);
+ bot y3r=-o; x3=.5[x4,x2]; y5=1/6h; rt x5l=hround 2.75u; z5r=z4r;
+ filldraw stroke z1e--z2e&super_arc.e(2,3); % stem and arc
+ dish_serif(1,2,a,1/3,1.3cap_jut,b,1/3,.75cap_jut); % serif
+ bulb(3,4,5); % bulb
+else: filldraw stroke z1e--z2e; % stem
+ pickup fine.nib; pos3(cap_stem',0); z3=z2;
+ pos4(flare,angle(6.5u,-h)); pos5(1.1flare,-100);
+ bot y4r=-o; x4r=.5[x5r,x3r]; lft x5r=hround.75u; bot y5r=vround.06h-o;
+ filldraw stroke z3e{down}....term.e(4,5,left,1,4); fi % arc and terminal
+pairequate(tca,z1); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(0,.5ic#-.5u#); penlabels(1,2,3,4,5); endchar;
+
+% cmchar "The letter K";
+newchar(K,13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal serif
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal serif
+pairassign(tca,.5[x1,x3],cap_height); %top center accentpoint
+pairassign(lca,.5[x2,x6],0); %low center accentpoint
+pairequate(tra,z3); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z6); %low right accentpoint
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+% cmchar "The letter L";
+newchar(L,11u#-width_adj#,cap_height#,0);
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,-90); pos4(hair,0);
+bot y3r=0; x3=x2; y4=y3l+7/6beak+eps; rt x4r=hround(w-.75u);
+arm(3,4,e,1.2beak_darkness,beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,1.25cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+if unknown gltl.L: pairequate(tca,z1); %top center accentpoint
+else:
+ if cp.L=gltl.L: pairassign(tca,x1+cap_stem+dot_size+.5cap_jut,.85h);
+ else: pairequate(tca,z1); %top center accentpoint
+ fi
+fi
+if serifs: pairassign(lca,x.e2,0); %low center accentpoint
+else: pairassign(lca,.5x3+.5x4,0); %low center accentpoint
+fi
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+if serifs: pairequate(lra,z.e0); %low right accentpoint
+else: pairequate(lra,z4); %low right accentpoint
+fi
+math_fit(0,u#); penlabels(1,2,3,4); endchar;
+
+% cmchar "The letter M";
+newchar(M,16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+pairassign(tca,x0,cap_height); %top center accentpoint
+if monospace: pairassign(lca,x7,0); %low center accentpoint
+else: pairequate(lca,z7); %low center accentpoint
+fi
+pairequate(tra,z3); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+% cmchar "The letter N";
+newchar(N,13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+pairassign(tca,.5[x1,x3],cap_height); %top center accentpoint
+pairassign(lca,.5[x2,x4],0); %low center accentpoint
+pairequate(tra,z3); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+% cmchar "The letter O";
+newchar(O,14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pairequate(tca,z1r); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+% cmchar "The letter P";
+newchar(P,12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+pairassign(tca,x6,cap_height); %top center accentpoint
+pairequate(lca,z2); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+% cmchar "The letter Q";
+newchar(Q,14u#-width_adj#,cap_height#,comma_depth#);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=cap_curve-hround stem_corr;
+penpos1(vair',90); penpos3(vair',-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"Q"| like |"O"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup tiny.nib;
+if hefty: penpos5(1.2(.5[cap_bar,light_curve]),0); penpos6(1.2light_curve,0);
+ x5=.5w; x6r=hround(w-1.5u);
+ y5=vround .28h; y6=-d;
+ fill diag_end(6r,5r,.25,1,5l,6l)--diag_end(5l,6l,.5,1,6r,5r)--cycle; % tail
+else: pos3'(vair,270); pos5(vair,180); pos6(vair,90);
+ pos7(cap_curve,85); penpos8(eps,180);
+ z3'=z3; x6=x3; top y6r=vround(.2h+.5vair);
+ lft x5r=hround(.5w-1.25u-.5vair); y5=.5[y3,y6];
+ bot y7l=-d; x7l=2/3[x6,x8]; y8=0; rt x8=hround(x4r+.1u);
+ filldraw stroke z3'e{left}...z5e{up}...z6e{right}
+ ..z7e{right}...z8e{up}; fi % tail
+pairequate(tca,z1r); %top center accentpoint
+pairassign(lca,x3,.5desc_depth); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,z7); %low right accentpoint
+math_fit(-.3cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6,7); endchar;
+
+% cmchar "The letter R";
+newchar(R,if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+pairequate(tca,z4); %top center accentpoint
+pairassign(lca,.5[x2,x9],0); %low center accentpoint
+pairequate(tra,tca); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z2); %low left accentpoint
+pairequate(lra,z9); %low right accentpoint
+math_fit(0,.75ic#); penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+% cmchar "The letter S";
+newchar(S,10u#,cap_height#,0);
+italcorr cap_height#*slant-u#;
+adjust_fit(0,0);
+numeric theta; theta=90-angle(50u,h); slope:=-h/50u; % angle at middle
+numeric s_slab; s_slab=if serifs:slab else:vround .2[slab,cap_stem] fi;
+numeric ess'; ess'=max(fine.breadth,cap_ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-90);
+pos0(ess',theta); pos7(s_slab,-90);
+x2+x7=2x0=w; x7-x2=if serifs: u else: 0 fi; top y2l=h+o; bot y7r=-o;
+y0=.52h; lft x3l=hround u; rt x6r=hround(w-u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.5u); lft x8r=hround u;
+ bot y1=vround 2/3h+1; top y8=vround 1/3h-1;
+ filldraw stroke z1e{x2-x1,10(y2-y1)}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{up}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{x2-x1,10(y2-y1)}....{left}z2;
+ lower_arc=z7{left}....{up}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(1.2flare,-100); pos8(1.2flare,-100);
+ x1l=good.x(x1l+w-1.75u-rt x1); lft x8r=hround .8u;
+ top y1l=vround .93h+o; bot y8r=vround .1h-o;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+pairequate(tca,z2l); %top center accentpoint
+pairequate(lca,z7); %low center accentpoint
+pairequate(tra,z10); %top right accentpoint
+pairequate(tla,tca); %top left accentpoint
+pairequate(lla,z9); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(0,.5ic#); penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10); endchar;
+
+% cmchar "The letter T";
+newchar(T,13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); % lower serif
+ nodish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); fi % upper bracketing
+pairequate(tca,z3); %top center accentpoint
+pairequate(lca,z2); %low center accentpoint
+pairequate(tra,z.e0); %top right accentpoint
+pairequate(tla,z.f0); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+% cmchar "The letter U";
+newchar(U,13u#+.5width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+pairassign(tca,x3,cap_height); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,z5); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5); endchar;
+
+% cmchar "The letter V";
+newchar(V,13u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_o;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>cap_notch_cut: y0:=cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+pairassign(tca,x0,cap_height); %top center accentpoint
+pairequate(lca,z3); %low center accentpoint
+pairequate(tra,z4); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(.75u#-cap_height#*slant,ic#-4u#); penlabels(0,1,2,3,4); endchar;
+
+% cmchar "The letter W";
+newchar(W,18u#,cap_height#,0);
+italcorr cap_height#*slant+.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7cap_jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.cap_stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=stem4 if hefty:-2stem_corr fi;
+stem3=stem1 if hefty:-2stem_corr fi;
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_o; y4=y5=if monospace: vround .6 fi\\ h;
+mid_corr=if monospace or hefty:-apex_corr else: 1/3jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r+mid_corr| $\approx$ |x4r|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l]; upper_notch=y4-cap_notch_cut;
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>cap_notch_cut:(x67,cap_notch_cut)+.5right{down}
+ --(x67,cap_notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>cap_notch_cut:(x23,cap_notch_cut)+.5right{down}
+ --(x23,cap_notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5cap_jut;
+ elseif hefty: inner_jut1=inner_jut4=cap_jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)
+ --.5[z5l,z6l]--.5[z5r,z6r]--cycle; % middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+cap_jut+.5u+1<=lft x5'l-.7cap_jut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+cap_jut+.5u+1<=lft x8'l-1.1cap_jut: inner_jut3=cap_jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+pairassign(tca,x45,cap_height); %top center accentpoint
+pairassign(lca,x45,0); %low center accentpoint
+pairequate(tra,z8); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z3); %low left accentpoint
+pairequate(lra,z7); %low right accentpoint
+math_fit(.75u#-cap_height#*slant,ic#-2.5u#);
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+% cmchar "The letter X";
+newchar(X,13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+pairassign(tca,.5[x1,x2],cap_height); %top center accentpoint
+pairassign(lca,.5[x3,x4],0); %low center accentpoint
+pairequate(tra,z2); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,z3); %low left accentpoint
+pairequate(lra,z4); %low right accentpoint
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+% cmchar "The letter Y";
+newchar(Y,13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+pairassign(tca,x0,cap_height); %top center accentpoint
+pairequate(lca,z6); %low center accentpoint
+pairequate(tra,z4); %top right accentpoint
+pairequate(tla,z1); %top left accentpoint
+pairequate(lla,lca); %low left accentpoint
+pairequate(lra,lca); %low right accentpoint
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+% cmchar "The letter Z";
+newchar(Z,11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+if serifs: pairassign(tca,x.a2,cap_height); %top center accentpoint
+ pairassign(lca,x.b2,0); %low center accentpoint
+ pairequate(tla,z.a0); %top left accentpoint
+ pairequate(lra,z.b0); %low right accentpoint
+else: pairassign(tca,.5w,cap_height); %top center accentpoint
+ pairassign(lca,.5w,0); %low center accentpoint
+ pairassign(tla,x3,cap_height); %top left accentpoint
+ pairassign(lra,x8,0); %low right accentpoint
+fi
+pairequate(tra,z1); %top right accentpoint
+pairequate(lla,z4); %low left accentpoint
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+% end of file romanua.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/sktmisc.mf b/Master/texmf-dist/fonts/source/public/wnri/sktmisc.mf
new file mode 100644
index 00000000000..2e195a25de9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/sktmisc.mf
@@ -0,0 +1,72 @@
+%
+% Washington Romanized Indic miscellaneous characters
+%
+% File : sktmisc.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Italic and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+% Contains programs to produce the characters "es-zet" and "rootsign".
+%
+
+% cmchar "German letter es-zet (sharp s)";
+newchar(eszett,4.5u#+max(4.5u#,.5stem#+flare#+curve#),asc_height#,0);
+italcorr asc_height#*slant-u#;
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+lft x1l=lft x2l=hround(2.5u-.5stem'); bot y1=0; y2=y4=.5[x_height,y3];
+penpos3(vair-fine,90); fine.top y3r=h+oo;
+filldraw stroke z1e--z2e; % stem
+numeric stem_edge,curve'; stem_edge=rt x1r; curve'=hround .5[stem',curve];
+pickup fine.nib; pos4(curve',0); pos5(vair,-90);
+pos2'(stem',180); z2'=z2; x3=.5[x2,x4]; rt x4r=hround(w-u);
+top y5l=x_height; lft x5=min(lft x4l,hround(stem_edge+u));
+filldraw stroke pulled_super_arc.e(2',3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,5)(.5superpull); % upper bowl
+pos5'(vair,90); z5'=z5; pos6(curve',0); pos7(vair,-90);
+rt x6r=hround(w-.5u)+3eps; y6=.4x_height; bot y7r=-oo;
+if serifs: pos8(hair,-180) else: pos8(vair,-110) fi;
+lft x8r=min(hround(stem_edge+.5u+1),lft x8r+x6r-2eps-x8l);
+x7=max(x8l+eps,.4[lft x8r,x6]);
+filldraw stroke pulled_super_arc.e(5',6)(.5superpull)
+ & pulled_super_arc.e(6,7)(.5superpull); % lower bowl
+if serifs: pos9(5/7[vair,flare],-180);
+ y9-(x9-lft x9r)=vround .07x_height; bulb(7,8,9); % bulb
+ penpos0(stem'-tiny,0); x0=x1; tiny.top y0=x_height;
+ serif(0,1,a,0,-jut); % bar
+ dish_serif(1,2,b,1/3,jut,c,0,epsilon); % serif
+else: bot y8r=vround .01h; x8l:=good.x x8l; y8l:=good.y(y8l+.5);
+ filldraw stroke term.e(7,8,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+% cmchar "Root sign";
+newchar(rootsign,8.5u#,body_height#,paren_depth#-rule_thickness#);
+ adjust_fit(0,-letter_fit#); pickup rule.nib;
+ w':=7u;
+ x1=good.x 1/9w'; x2=good.x .65w'; bot y1=-.5d; bot y2=asc_height;
+ draw z1--z2; % diagonal
+ pickup crisp.nib; pos3(if monospace: else: .7 fi max(curve,rule_thickness),0);
+ x3l=1.5[x2,x1]; y3=.5[y1,y2];
+ pos4(rule_thickness,0); x4=x1; bot y4=-.5d;
+ pos5(vair,-45); x5l=good.x(x3l-u); z5l=whatever[z3r,z2];
+ z6=z5r+whatever*(z2-z3r)=whatever[z3l,z4l];
+ z7=whatever[z1,z2]=z3r+whatever*(z4l-z3l);
+ filldraw z5r--z6--z4l--z4--z7--z3r--z5l--cycle; % left diagonal and serif
+x8=x2+2u; y8=y2;
+pickup rule.nib;
+draw z2--z8;
+picture V; transform t; t=identity shifted(2.5u,0);
+V=currentpicture transformed t; currentpicture:=V;
+% penlabels(1,2,3,4,5,6,7,8);
+endchar;
+
+% end of file sktmisc.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/tildacct.mf b/Master/texmf-dist/fonts/source/public/wnri/tildacct.mf
new file mode 100644
index 00000000000..29b1f5e3b39
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/tildacct.mf
@@ -0,0 +1,37 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macro to draw tilde accent
+%
+
+cmchar "Tilde (squiggle) accent";
+beginchar(oct"176",9u#,min(asc_height#,10/7x_height#+.5dot_size#),0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(6u-vair),1/4(h-x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(2/3[x_height,h],y3l-.25vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+makeACCENT(TildPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(TildPic); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = tild enddef;
+
+% end of file tildacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/u-ring.mf b/Master/texmf-dist/fonts/source/public/wnri/u-ring.mf
new file mode 100644
index 00000000000..31c2789f3e0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/u-ring.mf
@@ -0,0 +1,18 @@
+%
+% TO REPLACE CURRENT UNDERRING ACCENT FILE
+%
+
+cmchar "subscript Scandinavian circle accent";
+newchar(Ring,5u#+hair#,0,desc_depth#);
+adjust_fit(0,0);
+numeric circ_hair,circ_vair; h:=asc_height;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(asc_height-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+currentpicture:=currentpicture shifted (0,-(asc_height+dot_size)*aspect_ratio);
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/wnri/ubaracct.mf b/Master/texmf-dist/fonts/source/public/wnri/ubaracct.mf
new file mode 100644
index 00000000000..c388fb12f9f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/ubaracct.mf
@@ -0,0 +1,28 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macro to draw underbar accents
+%
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+transform Tf; Tf=identity shifted(-.5w+slant*(-h-.25x_height),aspect_ratio*(-h-.25x_height));
+savePicture(MacronPic);
+endgroup;
+extra_endchar:=
+% " czdm ap(MacronPic); ad; oechar; ";
+ " czd ap(MacronPic); ad; oechar; ";
+boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.
+
+def cp = ubar enddef;
+
+% end of file ubaracct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/ubrvacct.mf b/Master/texmf-dist/fonts/source/public/wnri/ubrvacct.mf
new file mode 100644
index 00000000000..06fe8e76d97
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/ubrvacct.mf
@@ -0,0 +1,29 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macro to draw subscript breve accent
+%
+
+cmchar "Breve accent";
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+%bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+bot y2r=h - vround max(2.5mid_thickness,1.5stem);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+transform Tf; Tf=identity shifted(-.5w+slant*(-h-.25x_height),aspect_ratio*(-h-.25x_height));
+savePicture(UBrevPic);
+endgroup;
+
+extra_endchar:=
+ " czd ap(UBrevPic); ah; oechar; ";
+boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.
+
+def cp = ubrv enddef;
+
+% end of file ubrvacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/udacacct.mf b/Master/texmf-dist/fonts/source/public/wnri/udacacct.mf
new file mode 100644
index 00000000000..c387e13278a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/udacacct.mf
@@ -0,0 +1,44 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw combination acute accent and underdot
+%
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+transform Tf; Tf = identity shifted (-.5w+ slant*(-h-.325desc_depth),aspect_ratio*(-h-.325desc_depth));
+savePicture(UdotPic);
+endgroup;
+
+cmchar "Acute accent";
+beginchar(oct"023",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant-if serifs: 1.5 fi u#;
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1+.5stem=hround(w-2u); x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ rt x1r=hround(w-1.5u); lft x2l=hround(.5w-.25u-.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+makeACCENT(AcutePic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(AcutePic); czdm ap(UdotPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+def cp = udac enddef;
+
+% end of file udacacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/udgracct.mf b/Master/texmf-dist/fonts/source/public/wnri/udgracct.mf
new file mode 100644
index 00000000000..3116437ba9a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/udgracct.mf
@@ -0,0 +1,43 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw combination grave accent and underdot
+%
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+transform Tf; Tf = identity shifted (-.5w+ slant*(-h-.325desc_depth),aspect_ratio*(-h-.325desc_depth));
+savePicture(UdotPic);
+endgroup;
+
+cmchar "Grave accent";
+beginchar(oct"022",9u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+if serifs: pickup crisp.nib; x1-.5stem=hround 2u; x2=2/3[x1,w-x1];
+ y1+.5stem=h+eps; y2=max(2/3[h,x_height],x_height+o+hair);
+ numeric theta; theta=angle(z2-z1)+90;
+ pos1(stem,theta); pos2(hair,theta);
+ filldraw circ_stroke z1e--z2e; % diagonal
+else: pickup fine.nib; pos1(stem,0); pos2(vair,0);
+ lft x1l=hround 1.5u; rt x2r=hround(.5w+.25u+.5vair);
+ top y1=h; bot y2=vround 2/3[h,x_height];
+ filldraw stroke z1e--z2e; fi % diagonal
+makeACCENT(GravePic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(GravePic); czdm ap(UdotPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+def cp = udgr enddef;
+
+% end of file udgracct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/udmcacct.mf b/Master/texmf-dist/fonts/source/public/wnri/udmcacct.mf
new file mode 100644
index 00000000000..eea75adca34
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/udmcacct.mf
@@ -0,0 +1,43 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw combination macron accent and underdot
+%
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+transform Tf; Tf = identity shifted (-.5w+ slant*(-h-.325desc_depth),aspect_ratio*(-h-.325desc_depth));
+savePicture(UdotPic);
+endgroup;
+
+cmchar "Macron accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+endgroup;
+
+
+extra_endchar:=
+ " czu ap(MacronPic); czdm ap(UdotPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+def cp = udmc enddef;
+
+% end of file udmcacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/udotacct.mf b/Master/texmf-dist/fonts/source/public/wnri/udotacct.mf
new file mode 100644
index 00000000000..c864770a090
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/udotacct.mf
@@ -0,0 +1,29 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw subscript dot accents
+%
+
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"137",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+transform Tf; Tf = identity shifted (-.5w+ slant*(-h-.325desc_depth),aspect_ratio*(-h-.325desc_depth));
+savePicture(UdotPic); transform Tf;
+endgroup;
+
+extra_endchar:=
+ " czdm ap(UdotPic); ad; oechar; ";
+
+boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.
+
+def cp = udot enddef;
+
+% end of file udotacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/uibvacct.mf b/Master/texmf-dist/fonts/source/public/wnri/uibvacct.mf
new file mode 100644
index 00000000000..13eac2ab344
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/uibvacct.mf
@@ -0,0 +1,30 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw subscript inverted breve accents
+%
+
+cmchar "inverted Breve accent";
+beginchar(oct"025",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,180); pos3(vair,0);
+bot y1=bot y3=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,90); x2=.5w;
+top y2r=h;
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+transform Tf; Tf = identity shifted (-.5w+slant*(-h-.25x_height),aspect_ratio*(-h-.25x_height));
+savePicture(IbrvPic);
+endgroup;
+
+extra_endchar:=
+ " czd ap(IbrvPic); ad; oechar; ";
+
+boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.
+
+def cp = uibv enddef;
+
+% end of file uibvacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/umlaacct.mf b/Master/texmf-dist/fonts/source/public/wnri/umlaacct.mf
new file mode 100644
index 00000000000..c54db5c646e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/umlaacct.mf
@@ -0,0 +1,30 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macro to draw umlaut/diaresis accent
+%
+
+cmchar "Umlaut (double dot) accent";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"177",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+makeACCENT(UmlPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(UmlPic); ah; oechar; ";
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+
+def cp = uml enddef;
+
+% end of file umlaacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/urmcacct.mf b/Master/texmf-dist/fonts/source/public/wnri/urmcacct.mf
new file mode 100644
index 00000000000..bf40b538e72
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/urmcacct.mf
@@ -0,0 +1,44 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macros to draw combination macron accent and underring
+%
+
+cmchar "Vocalic underring accent";
+beginchar(oct"027",13u#+4/3(asc_height#-x_height#)*slant,asc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+transform Tf; Tf = identity shifted (-.5w+slant*(-y1r-.25x_height),-y1r-.25x_height);
+savePicture(RingPic);
+endgroup;
+
+cmchar "Macron accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"026",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+if monospace: currentpicture:=currentpicture shifted(0,1/2aspect_ratio*dot_size); fi
+makeACCENT(MacronPic);
+endgroup;
+
+extra_endchar:=
+ " czu ap(MacronPic); czdm ap(RingPic); ah; oechar; ";
+
+boolean dotson; dotson=false; % omit dots on i, j, and possibly etc.
+def cp = urmc enddef;
+
+% end of file urmcacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/urngacct.mf b/Master/texmf-dist/fonts/source/public/wnri/urngacct.mf
new file mode 100644
index 00000000000..7fee37d73d8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/urngacct.mf
@@ -0,0 +1,31 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macro for vocalic underring accent
+%
+
+cmchar "Vocalic underring accent";
+beginchar(oct"027",13u#+4/3(asc_height#-x_height#)*slant,asc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+transform Tf; Tf = identity shifted (-.5w+slant*(-y1r-.25x_height),-y1r-.25x_height);
+savePicture(RingPic);
+endgroup;
+
+extra_endchar:=
+ " czd ap(RingPic); ad; oechar; ";
+
+boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.
+
+def cp = urng enddef;
+
+% end of file urngacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/uumlacct.mf b/Master/texmf-dist/fonts/source/public/wnri/uumlacct.mf
new file mode 100644
index 00000000000..42b80d28d31
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/uumlacct.mf
@@ -0,0 +1,31 @@
+%
+% Washington Romanized Indic accent driver
+%
+% Macro to draw subscript umlaut accent
+%
+
+cmchar "Umlaut (diaresis) accent";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"177",9u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+transform Tf; Tf = identity shifted (-.5w+ slant*(-h-.325desc_depth),aspect_ratio*(-h-.325desc_depth));
+savePicture(UmlPic);
+endgroup;
+
+extra_endchar:=
+ " czdm ap(UmlPic); ah; oechar; ";
+boolean dotson; dotson=true; % don't omit dots on i, j, and possibly etc.
+
+def cp = uuml enddef;
+
+% end of file uumlacct.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnindic.map b/Master/texmf-dist/fonts/source/public/wnri/wnindic.map
new file mode 100644
index 00000000000..3a319460003
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnindic.map
@@ -0,0 +1,146 @@
+%
+% Washington Romanized Indic font map file
+%
+% File : wnindic.map
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman Bold and encoded according
+% to the Classical Sanskrit/Classical Sanskrit eXtended character set.
+%
+
+cdil.C := 128 ; % cedilla C : HACC extended CSX
+uml.u := 129 ; % umlaut u : HACC extended CSX
+acute.e := 130 ; % acute e : HACC extended CSX
+ubar.k := 131 ; % underbar k : HACC extended CSX
+uml.a := 132 ; % umlaut a : HACC extended CSX
+grave.a := 133 ; % grave a : HACC extended CSX
+odot.g := 134 ; % overdot g : HACC extended CSX
+cdil.c := 135 ; % cedilla c : HACC extended CSX
+ubar.h := 136 ; % underbar h : HACC extended CSX
+uml.e := 137 ; % umlaut e : HACC extended CSX
+grave.e := 138 ; % grave e : HACC extended CSX
+uml.i := 139 ; % umlaut i : HACC extended CSX
+uuml.L := 140 ; % underumlaut L : HACC extended CSX
+grave.i := 141 ; % grave i : HACC extended CSX
+uml.A := 142 ; % umlaut A : HACC extended CSX
+odot.G := 143 ; % overdot G : HACC extended CSX
+acute.E := 144 ; % acute E : HACC extended CSX
+plain.ae := 145 ; % plain aesc : HACC extended CSX
+plain.AE := 146 ; % plain Aesc : HACC extended CSX
+ubar.K := 147 ; % underbar K : HACC extended CSX
+uml.o := 148 ; % umlaut o : HACC extended CSX
+grave.o := 149 ; % grave o : HACC extended CSX
+odot.A := 150 ; % overdot A : HACC extended CSX
+grave.u := 151 ; % grave u : HACC extended CSX
+uuml.R := 152 ; % underumlaut R : HACC extended CSX
+uml.O := 153 ; % umlaut O : HACC extended CSX
+uml.U := 154 ; % umlaut U : HACC extended CSX
+macron.e := 155 ; % macron e : HACC extended CSX
+macron.E := 156 ; % macron E : HACC extended CSX
+macron.o := 157 ; % macron o : HACC extended CSX
+macron.O := 158 ; % macron O : HACC extended CSX
+ubar.r := 159 ; % underbar r : CSX
+acute.a := 160 ; % acute a : HACC extended CSX
+acute.i := 161 ; % acute i : HACC extended CSX
+acute.o := 162 ; % acute o : HACC extended CSX
+acute.u := 163 ; % acute u : HACC extended CSX
+tild.n := 164 ; % tilde n : HACC extended CSX
+tild.N := 165 ; % tilde N : HACC extended CSX
+tild.l := 166 ; % tilde l : CSX
+odot.m := 167 ; % overdot m : CSX
+mcbrv.a := 168 ; % macron breve a : CSX
+mcbrv.i := 169 ; % macron breve i : CSX
+mcbrv.u := 170 ; % macron breve u : CSX
+hach.z := 171 ; % hachek z : HACC extended CSX
+hach.Z := 172 ; % hachek Z : HACC extended CSX
+ubar.n := 173 ; % underbar n : CSX
+udot.k := 174 ; % underdot k : HACC extended CSX
+udot.K := 175 ; % underdot K : HACC extended CSX
+hach.c := 176 ; % hachek c : HACC extended CSX
+hach.C := 177 ; % hachek C : HACC extended CSX
+hach.s := 178 ; % hachek s : HACC extended CSX
+uuml.r := 179 ; % underumlaut r : HACC extended CSX
+ubar.t := 180 ; % underbar t : HACC extended CSX
+baract.a := 181 ; % macron acute a : CSX
+bargrv.a := 182 ; % macron grave a : CSX
+baract.i := 183 ; % macron acute i : CSX
+bargrv.i := 184 ; % macron grave i : CSX
+ubar.D := 185 ; % underbar D : HACC extended CSX
+ubar.S := 186 ; % underbar S : HACC extended CSX
+ubar.T := 187 ; % underbar T : HACC extended CSX
+ubar.Z := 188 ; % underbar Z : HACC extended CSX
+baract.u := 189 ; % macron acute u : CSX
+bargrv.u := 190 ; % macron grave u : CSX
+bindu.m := 191 ; % candrabindu m : HACC extended CSX
+mcbrv.e := 192 ; % macron breve e : HACC extended CSX
+mcbrv.o := 193 ; % macron breve o : HACC extended CSX
+plain.lgam := 194 ; % plain gamma : HACC extended CSX
+ubrv.H := 195 ; % underbreve H : HACC extended CSX
+ubar.d := 196 ; % underbar d : HACC extended CSX
+uuml.l := 197 ; % underumlaut l : HACC extended CSX
+udac.r := 198 ; % underdot acute r : CSX
+udgr.r := 199 ; % underdot grave r : CSX
+odot.Y := 200 ; % overdot Y : HACC extended CSX
+ubar.z := 201 ; % underbar z : HACC extended CSX
+ubar.s := 202 ; % underbar s : HACC extended CSX
+ubar.N := 203 ; % underbar N : HACC extended CSX
+ubar.L := 204 ; % underbar L : HACC extended CSX
+odot.y := 205 ; % overdot y : HACC extended CSX
+ubar.R := 206 ; % underbar R : HACC extended CSX
+muda.r := 207 ; % macron acute underdot r : CSX
+tild.a := 208 ; % tilde a : CSX
+tild.i := 209 ; % tilde i : CSX
+tild.u := 210 ; % tilde u : CSX
+tild.e := 211 ; % tilde e : CSX
+tild.o := 212 ; % tilde o : CSX
+brev.e := 213 ; % breve e : CSX
+brev.o := 214 ; % breve o : CSX
+ubar.l := 215 ; % underbar l : CSX
+plain.CGam := 216 ; % plain Gamma : HACC extended CSX
+odot.a := 217 ; % overdot a : HACC extended CSX
+udot.z := 218 ; % underdot z : HACC extended CSX
+hach.S := 219 ; % hachek S : HACC extended CSX
+hach.j := 220 ; % hachek j : HACC extended CSX
+udot.Z := 221 ; % underdot Z : HACC extended CSX
+ubrv.h := 222 ; % underbreve h : HACC extended CSX
+hach.J := 223 ; % hachek J : HACC extended CSX
+macron.a := 224 ; % macron a : CSX
+plain.eszett := 225 ; % plain eszett : HACC extended CSX
+macron.A := 226 ; % macron A : CSX
+macron.i := 227 ; % macron i : CSX
+macron.I := 228 ; % macron I : CSX
+macron.u := 229 ; % macron u : CSX
+macron.U := 230 ; % macron U : CSX
+udot.r := 231 ; % underdot r : CSX
+udot.R := 232 ; % underdot R : CSX
+udmc.r := 233 ; % underdot macron r : CSX
+udmc.R := 234 ; % underdot macron R : CSX
+udot.l := 235 ; % underdot l : CSX
+udot.L := 236 ; % underdot L : CSX
+udmc.l := 237 ; % underdot macron l : CSX
+udmc.L := 238 ; % underdot macron L : CSX
+odot.n := 239 ; % overdot n : CSX
+odot.N := 240 ; % overdot N : CSX
+udot.t := 241 ; % underdot t : CSX
+udot.T := 242 ; % underdot T : CSX
+udot.d := 243 ; % underdot d : CSX
+udot.D := 244 ; % underdot D : CSX
+udot.n := 245 ; % underdot n : CSX
+udot.N := 246 ; % underdot N : CSX
+acute.s := 247 ; % acute s : CSX
+acute.S := 248 ; % acute S : CSX
+udot.s := 249 ; % underdot s : CSX
+udot.S := 250 ; % underdot S : CSX
+plain.rootsign := 251 ; % plain rootsign : HACC extended CSX
+udot.m := 252 ; % underdot m : CSX
+udot.M := 253 ; % underdot M : CSX
+udot.h := 254 ; % underdot h : CSX
+udot.H := 255 ; % underdot H : CSX
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnrib10.mf b/Master/texmf-dist/fonts/source/public/wnri/wnrib10.mf
new file mode 100644
index 00000000000..9fc735e4be7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnrib10.mf
@@ -0,0 +1,96 @@
+%
+% Washington Romanized Indic Roman Bold 10 point
+%
+% File : wnrib10.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman Bold and encoded according
+% to the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRIB"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=10/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate romanskt % switch to the driver file
+
+% end of file wnrib10.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnrib8.mf b/Master/texmf-dist/fonts/source/public/wnri/wnrib8.mf
new file mode 100644
index 00000000000..4cc4cd3eab9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnrib8.mf
@@ -0,0 +1,96 @@
+%
+% Washington Romanized Indic Bold (Extended) 8 point
+%
+% File : wnrib8.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman Bold Extended and encoded
+% according to the Classical Sanskrit/Classical Sanskrit eXtended
+% character set. See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRIB"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate romanskt % switch to the driver file
+
+% end of file wnrib8.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnribi10.mf b/Master/texmf-dist/fonts/source/public/wnri/wnribi10.mf
new file mode 100644
index 00000000000..38f49999b2c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnribi10.mf
@@ -0,0 +1,96 @@
+%
+% Washington Romanized Indic Bold (Extended) Italic 10 point
+%
+% File : wnribi10.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Bold Extended Italic and encoded
+% according to the Classical Sanskrit/Classical Sanskrit eXtended
+% character set. See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRIBI"; font_size 10pt#;
+
+u#:=21.2/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=11/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=13/36pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=20/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=53/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=49/36pt#; % uppercase stem breadth
+cap_curve#:=52/36pt#; % uppercase curve breadth
+cap_ess#:=50/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(^Delta x/^Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate italcskt % switch to the driver file
+
+% end of file wnribi10.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnrii10.mf b/Master/texmf-dist/fonts/source/public/wnri/wnrii10.mf
new file mode 100644
index 00000000000..a3506dd34f7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnrii10.mf
@@ -0,0 +1,98 @@
+%
+% Washington Romanized Indic Italic 10 point
+%
+% File : wnrii10.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRII"; font_size 10pt#;
+
+u#:=18.4/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate italcskt; % switch to the driver file
+
+% end of file wnrii10.mf
+
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnrii8.mf b/Master/texmf-dist/fonts/source/public/wnri/wnrii8.mf
new file mode 100644
index 00000000000..375644628fc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnrii8.mf
@@ -0,0 +1,96 @@
+%
+% Washington Romanized Indic Italic 8 point
+%
+% File : wnrii8.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Italic and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRII"; font_size 8pt#;
+
+u#:=15.8/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=7.9/36pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=20/36pt#; % lowercase stem breadth
+curve#:=23.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=24/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=23.5/36pt#; % uppercase stem breadth
+cap_curve#:=27/36pt#; % uppercase curve breadth
+cap_ess#:=24/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=24/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=7.9/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate italcskt % switch to the driver file
+
+% end of file wnrii8.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnrir10.mf b/Master/texmf-dist/fonts/source/public/wnri/wnrir10.mf
new file mode 100644
index 00000000000..4e45ab08976
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnrir10.mf
@@ -0,0 +1,97 @@
+%
+% Washington Romanized Indic Roman 10 point
+%
+% File : wnrir10.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRIR"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate romanskt; % switch to the driver file
+
+% end of file wnrir10.mf
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnrir8.mf b/Master/texmf-dist/fonts/source/public/wnri/wnrir8.mf
new file mode 100644
index 00000000000..7b42cbcaf11
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnrir8.mf
@@ -0,0 +1,96 @@
+%
+% Washington Romanized Indic Roman 8 point
+%
+% File : wnrir8.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% Date : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRIR"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate romanskt % switch to the driver file
+
+% end of file wnrir8.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnris10.mf b/Master/texmf-dist/fonts/source/public/wnri/wnris10.mf
new file mode 100644
index 00000000000..e45b6f62360
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnris10.mf
@@ -0,0 +1,96 @@
+%
+% Washington Romanized Indic San Serif 10 point
+%
+% File : wnris10.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRIS"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=15/36pt#; % width adjustment for certain characters
+serif_fit#:=-7/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-10/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=250/36pt#; % height of caps
+fig_height#:=236/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=45/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=17/36pt#; % width of extrafine details
+hair#:=28/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=28/36pt#; % breadth in middle of lowercase s
+flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=30/36pt#; % diameter of dots
+cap_hair#:=28/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=32/36pt#; % uppercase curve breadth
+cap_ess#:=32/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.5/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=18/36pt#; % maximum breadth above or below notches
+bar#:=21/36pt#; % lowercase bar thickness
+slab#:=23/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=20/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=5/36pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.96; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate romanskt % switch to the driver file
+
+% end of file wnris10.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnris8.mf b/Master/texmf-dist/fonts/source/public/wnri/wnris8.mf
new file mode 100644
index 00000000000..6d7f9b70980
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnris8.mf
@@ -0,0 +1,96 @@
+%
+% Washington Romanized Indic San Serif 8 point
+%
+% File : wnris8.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Roman and encoded according to
+% the Classical Sanskrit/Classical Sanskrit eXtended character set.
+% See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRIS"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=12/36pt#; % width adjustment for certain characters
+serif_fit#:=-6/36pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=-8.5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=200/36pt#; % height of caps
+fig_height#:=189/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=37/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=0pt#; % diameter of rounded corners
+fine#:=0pt#; % diameter of sharply rounded corners
+thin_join#:=15/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=26/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=29/36pt#; % uppercase curve breadth
+cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=0pt#; % protrusion of lowercase serifs
+cap_jut#:=0pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=.4/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=16/36pt#; % maximum breadth above or below notches
+bar#:=18/36pt#; % lowercase bar thickness
+slab#:=20/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=4/36pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=0pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=.93; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt 2; % parameter for superellipses
+superpull:=1/20; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=true; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=false; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate romanskt % switch to the driver file
+
+% end of file wnris8.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnrit10.mf b/Master/texmf-dist/fonts/source/public/wnri/wnrit10.mf
new file mode 100644
index 00000000000..8dfce9704bc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnrit10.mf
@@ -0,0 +1,96 @@
+%
+% Washington Romanized Indic Typewriter 10 point
+%
+% File : wnrit10.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Typewriter and encoded according
+% to the Classical Sanskrit/Classical Sanskrit eXtended character
+% set. See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRIT"; font_size 10pt#;
+
+u#:=21/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=250/36pt#; % height of tallest characters
+asc_height#:=220/36pt#; % height of lowercase ascenders
+cap_height#:=220/36pt#; % height of caps
+fig_height#:=220/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=110/36pt#; % axis of symmetry for math symbols
+bar_height#:=79/36pt#; % height of crossbar in lowercase e
+comma_depth#:=50/36pt#; % depth of comma below baseline
+desc_depth#:=80/36pt#; % depth of lowercase descenders
+
+crisp#:=22/36pt#; % diameter of serif corners
+tiny#:=22/36pt#; % diameter of rounded corners
+fine#:=21/36pt#; % diameter of sharply rounded corners
+thin_join#:=21/36pt#; % width of extrafine details
+hair#:=25/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=25/36pt#; % lowercase curve breadth
+ess#:=22/36pt#; % breadth in middle of lowercase s
+flare#:=32/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=36/36pt#; % diameter of dots
+cap_hair#:=25/36pt#; % uppercase hairline breadth
+cap_stem#:=25/36pt#; % uppercase stem breadth
+cap_curve#:=25/36pt#; % uppercase curve breadth
+cap_ess#:=25/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=25/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=34/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=34/36pt#; % vertical protrusion of beak serifs
+vair#:=22/36pt#; % vertical diameter of hairlines
+notch_cut#:=25/36pt#; % maximum breadth above or below notches
+bar#:=22/36pt#; % lowercase bar thickness
+slab#:=22/36pt#; % serif and arm thickness
+cap_bar#:=22/36pt#; % uppercase bar thickness
+cap_band#:=22/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=25/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=10/36pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate romanskt % switch to the driver file
+
+% end of file wnrit10.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wnri/wnrit8.mf b/Master/texmf-dist/fonts/source/public/wnri/wnrit8.mf
new file mode 100644
index 00000000000..353b4cc5983
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wnri/wnrit8.mf
@@ -0,0 +1,96 @@
+%
+% Washington Romanized Indic Typewriter 8 point
+%
+% File : wnrit8.mf
+% Author : Thomas Ridgeway <ridgeway@u.washington.edu>
+% Date : May 19 1992
+%
+% Updated by : Anshuman Pandey <apandey@u.washington.edu>
+% On : 18 Feb 1998
+%
+% Copyright 1992 Humanities and Arts Computing Center, University of
+% Washington. Licensed to the public according to the terms of the
+% Free Software Foundation General Public License.
+%
+% WNRI is based on Computer Modern Typewriter and encoded according
+% to the Classical Sanskrit/Classical Sanskrit eXtended character
+% set. See wnindic.map for more details.
+%
+
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNRIT"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=0pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=200/36pt#; % height of tallest characters
+asc_height#:=176/36pt#; % height of lowercase ascenders
+cap_height#:=176/36pt#; % height of caps
+fig_height#:=176/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=88/36pt#; % axis of symmetry for math symbols
+bar_height#:=63/36pt#; % height of crossbar in lowercase e
+comma_depth#:=40/36pt#; % depth of comma below baseline
+desc_depth#:=64/36pt#; % depth of lowercase descenders
+
+crisp#:=19/36pt#; % diameter of serif corners
+tiny#:=19/36pt#; % diameter of rounded corners
+fine#:=18/36pt#; % diameter of sharply rounded corners
+thin_join#:=18/36pt#; % width of extrafine details
+hair#:=22/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=22/36pt#; % lowercase curve breadth
+ess#:=19/36pt#; % breadth in middle of lowercase s
+flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=31/36pt#; % diameter of dots
+cap_hair#:=22/36pt#; % uppercase hairline breadth
+cap_stem#:=22/36pt#; % uppercase stem breadth
+cap_curve#:=22/36pt#; % uppercase curve breadth
+cap_ess#:=22/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=22/36pt#; % thickness of lines in math symbols
+
+dish#:=0pt#; % amount erased at top or bottom of serifs
+bracket#:=0pt#; % vertical distance from serif base to tangent
+jut#:=27/36pt#; % protrusion of lowercase serifs
+cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+beak_jut#:=0pt#; % horizontal protrusion of beak serifs
+beak#:=27/36pt#; % vertical protrusion of beak serifs
+vair#:=19/36pt#; % vertical diameter of hairlines
+notch_cut#:=22/36pt#; % maximum breadth above or below notches
+bar#:=19/36pt#; % lowercase bar thickness
+slab#:=19/36pt#; % serif and arm thickness
+cap_bar#:=19/36pt#; % uppercase bar thickness
+cap_band#:=19/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=22/36pt#; % max breadth above/below uppercase notches
+serif_drop#:=0pt#; % vertical drop of sloped serifs
+stem_corr#:=0pt#; % for small refinements of stem breadth
+vair_corr#:=0pt#; % for small refinements of hairline height
+apex_corr#:=8/36pt#; % extra width at diagonal junctions
+
+o#:=3/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=0.81; % factor applied to weights of heavy characters
+math_spread:=-1; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=0; % extra openness inside bowls
+beak_darkness:=0; % fraction of triangle inside beak serifs
+ligs:=0; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=true; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=true; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=true; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate romanskt % switch to the driver file
+
+% end of file wnrit8.mf
+
diff --git a/Master/texmf-dist/fonts/source/public/wntamil/tamil.mf b/Master/texmf-dist/fonts/source/public/wntamil/tamil.mf
new file mode 100644
index 00000000000..d2c30d53140
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wntamil/tamil.mf
@@ -0,0 +1,2020 @@
+boolean dodraw;
+dodraw=true;
+boolean goleft;
+goleft=false;
+def tthinnest=max(hair,2) enddef;
+def tthinner=max(1.4hair,2) enddef;
+def tthin=max(1.8hair,2) enddef;
+def tmed=max(.75curve,2) enddef;
+def tthick=curve enddef;
+def tthicker=1.2curve enddef;
+def tthickest=1.4curve enddef;
+
+string callchar;
+numeric oldh; numeric oldw; numeric oldd;
+
+def charspec(expr c, w_sharp, h_sharp, d_sharp) =
+ oldh:=h; oldw:=w; oldd:=d;
+ w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+enddef;
+
+input tamilmax;
+
+def cloney(suffix $,@) =
+ y$=y@; y$r=y@r; y$l=y@l;
+enddef;
+
+def clonex(suffix $,@) =
+ x$=x@; x$r=x@r; x$l=x@l;
+enddef;
+
+def small_iito (suffix @,$)(expr iheight) =
+x$99=x@; y$99=y@; pos$99(tthin,180);
+x$100=x$99-2.5u; y$100=.5[y$99,y$1]; pos$100(tthin,135);
+x$1=x@+.5u; top y$1r=iheight; pos$1(tthick,90);
+x$2=x$1+u; y$2=y$1-.5u; pos$2(.7tthick,60);
+x$3=x$2; y$3=y$2-2u; pos$3(tthin,-90);
+x$4=x$4l=x$4r=x$2; y$4=y$2; y$4r=y$4+1; y$4l=y$4-1;
+filldraw stroke z$99e{left}...{up}z$100e...{right}z$1e...z$2e...{left}z$3e...{right}z$4e;
+penlabels($1,$2,$3,$4);
+enddef;
+
+def help_uu =
+charspec("9",x_height#,.75x_height#,0);
+x181=x101=u; x106=x107=x108=x109=.55w; x111=x112=.8w; x110=w;
+x103=x105=.5[x101,x106]; x102=x104=.5[x101,x103];
+bot y104r=y106=y107=y111=0; top y105r=y108=top y109r=top y110r=y112=h;
+y101=y181=y103=.5y102; y102=.6h;
+pos101(.8tthinner,180); pos102(.8tthin,90); pos103(.8tmed,0);
+pos104(.8tthin,-90); pos181(.8tthinner,-180); pos105(.8tthick,-270);
+pos106(.8tthin,-360); pos107(.8tthin,0); pos108(.8tthin,0);
+pos109(.8tthin,90); pos110(.8tthin,90); pos111(.8tthick,0); pos112(.8tthick,0);
+if dodraw:
+filldraw stroke z101e...{right}z102e...{down}z103e...{left}z104e..z181e...{right}z105e...{down}z106e;
+filldraw stroke z107e---z108e; filldraw stroke z109e---z110e;
+filldraw stroke z111e---z112e;
+fi
+enddef;
+
+
+cmchar "Tamil vii";
+beginchar(115,1.5x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21r=x10l; x21l=x10r; x21=x10; cloney(21,10); small_iito(21,s,h);
+endchar;
+
+cmchar "tamil a";
+beginchar(0,2x_height#,x_height#,.6desc_depth#);
+adjust_fit(0,0);
+x3=.5[x9,x11]; top y1r=h; y5=y12=h; y2=y4=y6=.5[y3,y1]; y3=.8bar_height; x1=x3;
+x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=w-u;
+x9=u; x10=.15[x9,x11]; y8=-.8d; y13=-d; y7=bar_height; y9=.2bar_height; y10=y11=.25bar_height;
+z20=z1;
+pos1(tthinnest,90); pos2(tthin,0); pos3(tthinnest,-90); pos4(tthinnest,-180);
+pos5(hair,90); pos6(curve,0); pos7(tthick,-360); pos8(tthinner,-450);
+pos9(tthinnest,-580); pos10(tthinnest,-630); pos11(tthinnest,-630); pos12(tthick,0);
+pos13(tthick,0);pos20(tthinner,-270);
+filldraw stroke z1e...z2e...z3e...z4e...z20e...{down}z7e...{left}z8e...{up}z9e...z10e---z11e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "tamil aa";
+beginchar(1,2.5x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+x3=.5[x9,x11]; top y1r=h; y5=y12=h; y2=y4=y6=.5[y3,y1]; y3=.8bar_height; x1=x3;
+x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=2x_height-u;
+x9=u; x10=.15[x9,x11]; y8=-.48desc_depth; y13=-.6desc_depth; y7=bar_height; y9=.2bar_height; y10=y11=.25bar_height;
+z20=z1; x31=x31r=x31l=x11+u; cloney(31,11);
+x32r=x13r; y32=y13; pos32(tthinner,0); x34=w-u; y34=y32; pos34(tthinner,-720);
+x33=.5[x32,x34]; y33=0; pos33(tthin,-90); x35=.1[x13,x8]; y35=-1.2d; %bot y35l=-d;
+pos35(.8tthick,-810); x36=.2[x8,x13]; y36=-desc_depth; pos36(tthin,-900);
+x37=.5[x8,x13]; y37=y13; pos37(tthinner,-990);
+pos1(tthinnest,90); pos2(tthin,0); pos3(tthinnest,-90); pos4(tthinnest,-180);
+pos5(hair,90); pos6(curve,0); pos7(tthick,-360); pos8(tthinner,-450);
+pos9(tthinnest,-580); pos10(tthinnest,-630); pos11(tthinnest,-630); pos12(tthick,0);
+pos13(tthick,0);pos20(tthinner,-270);
+filldraw stroke z1e...z2e...z3e...z4e...z20e...{down}z7e...{left}z8e...{up}z9e...z10e---z31e{right}
+ ...{down}z34e...{left}z35e...{up}z36e...{right}z37e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,31,32,33,34,35,36,37);
+endchar;
+
+cmchar "tamil i";
+beginchar(2,2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+pickup crisp.nib;
+x6=.6w; x11=x13=x15=.5w; x16=x17=.9w; x12=.75w;
+x5=x7=.55w; x4=.3w; x3=.4w; x2=.5w; x1=.35w;
+x8=x10=x14=.15w; x9=.1w;
+y15=h; y5=x_height; y14=y11=.1h; y10=0; y16=.8x_height;
+y7=-.1d; y8=y13=y17=-d; y9=y12=-.6d;
+y2=y4=y6=.6x_height; y1=.8x_height; y3=.4x_height;
+z20=z1; pos20(tthinnest,-200);
+z65=.5[z6,z7]; pos65(tthicker,-370);
+pos1(tmed,45); pos2(tmed,0); pos3(tthin,-90); pos4(tthinnest,-180);
+pos5(tmed,-270); pos6(tthick,-360); pos7(tthicker,-380); pos8(tmed,-450);
+pos9(tthinner,-540); pos10(tthinnest,-585); pos11(tthin,-630);
+pos12(tthick,-720); pos13(tthin,-810); pos14(tthinner,-880);
+pos15(tthick,-990); pos16(tthin,-1060); pos17(tthin,-1060);
+filldraw stroke z1e..z2e..z3e..z4e..z20e..z5e..z65e..z8e..z9e..z10e..z11e..z12e..z13e..z14e..z15e...{down}z16e---z17e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17); endchar;
+
+cmchar "Tamil ii";
+beginchar(3,1.125x_height#+2u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="r";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=.5[x1,x6]; x8=x4-.5dot_size;
+top y77r=top y88r=bar_height+.375dot_size;
+y7=y8=.5[y77r,y77l];
+x77=x7; x88=x8; pos7(.75dot_size,0); pos77(.75dot_size,90);
+pos8(.75dot_size,0); pos88(.75dot_size,90);
+dot(7,77); dot(8,88);
+penlabels(7,8); endchar;
+
+cmchar "tamil u";
+beginchar(4,2x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="u";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+
+cmchar "tamil uu";
+beginchar(5,2.8x_height#,x_height#,0);
+adjust_fit(0,0);
+help_uu;
+picture V; transform t;
+t=identity shifted(1.4x_height,.25x_height);
+V=currentpicture transformed t; currentpicture:=V;
+h:=oldh; w:=oldw; d:=oldd;
+callchar:="u";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x12=w-u; y12=y11; pos12(tthin,-290);
+filldraw stroke z11e--z12e;
+endchar;
+
+cmchar "tamil e";
+beginchar(6,1.6x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "tamil ai";
+beginchar(7,1.75x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+pickup crisp.nib;
+y7=y10=h; y4=y8=y9=.2h; y15=y19=-d; y12=.9bar_height;
+y21=.25h; y13=-.2d; y14=-.6d; y16=-.8d; y17=y18=-.3d; y20=-.2d;
+y1=y3=.4h; y2=.7h; y11=.75h; y85=0;
+%
+x14=x1=u; x11=x12=w-u; x8=x9=x17=x18=.55[x1,x11]; x85=x8;
+x7=.6[x1,x8]; x10=.5[x9,x11]; x3=.6[x1,x8]; x2=x4=.5[x1,x3];
+x13=x2; x15=x7-.7u; x16=x17; x19=.5[x18,x11]; x20=.95x11; x21=.9x11;
+%
+x77=x8; y77=.6h; z99=z77;
+pos77(tthick,-360); pos99(tthick,0);
+pos1(tthinner,180); pos2(tmed,90); pos3(tthick,0); pos4(tmed,-90);
+z55=z1; pos55(tthinner,-180);
+%pos6 ?
+pos7(tthick,-270); pos8(tthick,-405);
+pos9(tthick,-45); pos10(tthin,-90); pos11(tthick,-180); pos12(tthick,-200);
+pos21(tthin,-240); pos13(tthin,-240); pos14(tmed,-180);
+pos15(tthick,-90); pos16(tthick,-45); pos17(tthick,-45);
+pos18(tthick,-45); pos19(tthick,90); pos20(tmed,225);
+pos85(tthin,-270);
+%pickup pencircle scaled .2pt
+filldraw stroke z1e..z2e{right}..z3e{down}..z4e{left}..z55e...{right}z7e...{down}z77e---z8e;
+%pickup crisp.nib
+%filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e..z21e---z13e..z14e{down}...z15e{right}...z16e...{up}z17e;
+filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e...{left}z85e{left}..z14e{down}...z15e{right}...z16e...{up}z17e;
+filldraw stroke z18e{down}...z19e{right}...z20e;
+%pickup pencircle scaled .2pt
+%draw stroke z18e{down}...z19e{right}...z20e;
+penlabels(1,2,3,4,55,7,8,9,10,11,12,21,13,14,15,16,17,19,20); endchar;
+
+cmchar "Tamil k";
+beginchar(8,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="k";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil o";
+beginchar(9,1.6x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+x1=x5=x16=u; x7=rt x12r=rt x13r=w-u;
+x6=.5[x1,x7]; x15=.5[x16,x12]; x17=.1[x16,x12]; x14=.85[x16,x12];
+x11=x9; x8=.4[x9,x7]; x9=x10=.7[x1,x7];
+x3=.3[x1,x7]; x2=x4=.5[x1,x3];
+top y6r=h; bot y15r=-d;
+y2=.5h; y1=y5=y3=.5y2;
+bot y4r=bot y8r=0;
+y9=y10=y2; y7=.3h; y11=-.1d; y12=y13=-.3d;
+y14=-.6d; y16=-.5d; y17=-.2d;
+pos1(tthin,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos5(tthin,-180); pos6(tmed,-270); pos7(tthick,-360); pos8(tmed,-450);
+pos9(tthin,-540); pos10(tthin,0); pos11(tmed,5); pos12(tthin,10);
+pos13(tthick,10); pos14(tthick,0); pos15(tmed,-90); pos16(tthinner,-180);
+pos17(tmed,-250);
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e...z5e...{right}z6e
+ ...{down}z7e...{left}z8e...z9e;
+% pickup pencircle scaled .2pt;
+filldraw stroke z10e..z11e...{right}z12e;
+filldraw stroke z13e...z14e...{left}z15e...{up}z16e...z17e;
+penlabels(1,2,3,4,6,7,8,9,11,12,14,15,16,17);
+endchar;
+
+
+cmchar "Tamil ki";
+beginchar(10,1.8x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="k";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z45=z21; x46=x3; top y46r=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,270); pos46(tthick,90); pos47(tthinner,0);
+x48l=x48-.5; x48r=x48+.5; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+penlabels(46,47,48);
+endchar;
+
+cmchar "Tamil kii";
+beginchar(11,1.5x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="k";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z45=z21; x46=x3; top y46r=h;
+pos45(tthinnest,270); pos46(tmed,90);
+x47=.6[x3,x4]; y47=.9[y3,y46]; x48=x4; y48=.5[y3,y46];
+y49=.3[y3,y46]; x49=x47; x50=.2[x3,x4]; y50=y48; z51=z47;
+pos47(.7tmed,45); pos48(tthinner,0); pos49(tthinnest,-90);
+pos50(tthinnest,-180); pos51(tthinnest,-225);
+filldraw stroke z45e{left}...{right}z46e...z47e...{down}z48e...{left}z49e...{up}z50e...z51e;
+penlabels(46,47,48,49,50);
+endchar;
+
+cmchar "Tamil ku";
+beginchar(12,2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x45=x5; bot y45r=-d; pos45(tthick,-450);
+x46=x46r=x46l=x2; y46=y2; y46r=y46+1; y46l=y46-1;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=.7[x3,x4];
+x47=-.25x_height; y47=y8; pos47(tthin,-540);
+filldraw stroke z25e---z26e{right}...z45e...{up}z47e...{right}z46e;
+picture V; transform t; t=identity shifted(.4x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(26,45,46,47);
+endchar;
+
+cmchar "Tamil kuu";
+beginchar(13,2.1x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+cloney(26,25); x26=x26l=x26r=.6[x3,x4];
+x28=x4; y28=0; x30=x28+(x4-x3); y30=0; top y29l=bar_height; x29=.5[x28,x30];
+x31=x30; bot y31l=0; pos31(tthin,90); x32=w-u; bot y32l=0; pos32(tthin,90);
+pos28(tthin,0); pos29(tthinner,-90); pos30(tthin,-180);
+filldraw stroke z25e--z26e{right}...{down}z28e;
+filldraw stroke z28e{up}...{right}z29e...{down}z30e;
+filldraw stroke z31e--z32e;
+penlabels(26,28,29,30,31); endchar;
+
+cmchar "Tamil long o";
+beginchar(14,1.6x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+x1=x5=x16=u; x7=rt x12r=rt x13r=w-u;
+x6=.5[x1,x7]; x15=.5[x16,x12]; x17=.25[x16,x12]; x14=.85[x16,x12];
+x11=x9; x8=.4[x9,x7]; x9=x10=.7[x1,x7];
+x3=.3[x1,x7]; x2=x4=.5[x1,x3];
+top y6r=h; bot y15r=-d;
+y2=.5h; y1=y5=y3=.5y2;
+bot y4r=bot y8r=0;
+y9=y10=y2; y7=.3h; y11=-.1d; y12=y13=-.3d;
+y14=-.6d; y16=-.5d; y17=-.2d;
+x18=.4[x16,x12]; y18=-.5d; pos18(tthinner,-360);
+pos1(tthin,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos5(tthin,-180); pos6(tmed,-270); pos7(tthick,-360); pos8(tmed,-450);
+pos9(tthin,-540); pos10(tthin,0); pos11(tmed,5); pos12(tthin,10);
+pos13(tthick,10); pos14(tthick,0); pos15(tmed,-90); pos16(tthinner,-180);
+pos17(tmed,-250);
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e...z5e...{right}z6e
+ ...{down}z7e...{left}z8e...z9e;
+% pickup pencircle scaled .2pt;
+filldraw stroke z10e..z11e...{right}z12e;
+filldraw stroke z13e...z14e...{left}z15e...{up}z16e...{right}z17e...{down}z18e;
+penlabels(1,2,3,4,6,7,8,9,11,12,14,15,16,17,18);
+endchar;
+
+cmchar "tamil long e";
+beginchar(15,1.6x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x10=x4; bot y10r=-d; pos10(tthick,-90);
+x11=x9; bot y11r=0; pos11(tthick,-90);
+filldraw stroke z11e--z10e;
+penlabels(10);
+endchar;
+
+cmchar "tamil ng";
+beginchar(16,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil ai matra";
+beginchar(17,2x_height#,x_height#,0);
+adjust_fit(0,0);
+w:=3x_height;
+x1=x81=u; x6=.6x10; x8=.6[x1,x6]; x7=.5[x8,x6];
+x5=.5[x1,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
+x9=.5[x8,x10]; x10=.7w; x12=.6[x8,x10]; x11=.5[x12,x10];
+top y5r=top y9r=h;
+bot y4r=bot y7r=bot y11r=0;
+y2=y8=y6=y12=y10=.5h;
+y81=y1=y3=.5y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
+pos7(tmed,-450); pos8(tthin,-540); pos9(tmed,-630); pos10(tthicker,-720);
+pos11(tmed,-810); pos12(tthin,-900);
+x30=x11; y30=y10; x31=x12; bot y31r=0; pos30(tthick,-720); pos31(tmed,-790);
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z30e...z31e;
+penlabels(1,2,3,4,5,6,7,8,9,30,31);
+endchar;
+
+cmchar "tamil ngi";
+beginchar(18,1.85x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x40=x13; y40=y13; pos40(tthin,0); x41=x40; top y41l=h; pos41(tthick,-90);
+x50=x40-2u; y50=.5[y40,y41]; pos50(tmed,-30);
+x42=w-u; y42=x_height; x43=x42; y43=y43l=y43r=0; pos42(tthin,-180);
+x43r=x43-.6; x43l=x43+.6;
+filldraw stroke z40e{left}...{right}z41e...{down}z42e--z43e;
+penlabels(41,42,43,44);
+endchar;
+
+
+
+cmchar "tamil ngii";
+beginchar(19,1.75x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+small_iito(13,s,h);
+endchar;
+
+cmchar "tamil ngu";
+beginchar(20,1.5x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(40,12); y40=y40l=y40r=-d;
+filldraw stroke z12e--z40e;
+endchar;
+
+cmchar "tamil nguu";
+beginchar(21,1.85x_height#,x_height#,1.5desc_depth#);
+adjust_fit(0,0);
+callchar:="g";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(40,12); y40=y40l=y40r=-.5d;
+filldraw stroke z12e--z40e;
+x22=w-u; y22=.5y40; x21=.6[x12,x22]; y21=.25d;
+pos21(tthinner,-90); pos22(tthin,-180);
+x23=.7[x1,x12]; bot y23l=-d; pos23(tthick,-270);
+x24=x2; y24=-.5d; pos24(tthin,-360); x25=x7; y25=-.25d; pos25(tthinner,-450);
+x26=.5[x1,x12]; y26=-.5d; pos26(tthinnest,-540);
+filldraw stroke z40e{up}...{right}z21e...{down}z22e...{left}z23e...{up}z24e
+ ...{right}z25e...{down}z26e;
+penlabels(40,21,22,23,24,25,26);
+endchar;
+
+cmchar "tamil e matra";
+beginchar(22,1.4x_height#,body_height#,0);
+adjust_fit(0,0);
+x1=x3=x5=.6w; x2=x1-1.5u; x4=x1+1.5u; top y3l=bar_height;
+pos3(1.2tthin,-90); y2=y4=.5[y1,y3]; bot y1l=.25u; pos1(tthin,90);
+pos2(tthin,0); pos4(tmed,-180); y5=y1; pos5(tthin,-270);
+x6=u; y6=.5h; pos6(tthinner,-360); top y7l=h; x7=.5w; pos7(1.2tmed,-450);
+x8=w-u; y8=x_height; pos8(tthin,-540); x9=x8; y9=0; x9r=x9-.6; x9l=x9+.6;
+y9r=y9l=y9; x75=x7; bot y75l=0; pos75(tthin,-280);
+filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...z5e...{left}z75e
+ ...{up}z6e...{right}z7e...z8e--z9e;
+penlabels(1,2,3,4,5,75,6,7,8,9);
+endchar;
+
+cmchar "tamil long e matra";
+beginchar(23,1.4x_height#,body_height#,0);
+adjust_fit(0,0);
+x1=x3=x5=x10=x8=x12=w-2.5u; x2=x11=x1-1.5u; x4=x9=x1+1.5u; top y3l=bar_height;
+pos3(1.2tthin,-90); y2=y4=.5[y1,y3]; bot y1l=.25u; pos1(tthin,90);
+pos2(tthin,0); pos4(tmed,-180); y5=y1; pos5(tthin,-270);
+x6=u; y6=.5h; pos6(tthinner,-360); top y7l=h; x7=.55w; pos7(1.2tmed,-450);
+x75=x7; bot y75l=0; pos75(tthin,-280);
+top y8l=h-.25u; pos8(.8tmed,-460); y9=y11=.5[y8,y10]; y10=y8-y3+y1;
+y12=y8; pos9(tthin,-540); pos10(tthin,-630); pos11(tthinner,-720);
+pos12(tthinnest,-810);
+filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...z5e...{left}z75e
+ ...{up}z6e...{right}z7e...z8e...{down}z9e...{left}z10e...{up}z11e...z12e;
+penlabels(1,2,3,4,5,75,6,7,8,9,10,11,12);
+endchar;
+
+cmchar "Tamil c";
+beginchar(24,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u;
+filldraw stroke z25e---z26e;
+penlabels(26);
+endchar;
+
+cmchar "Tamil ci";
+beginchar(26,1.7x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u-.2x_height;
+filldraw stroke z25e---z26e;
+z45=z21; x46=x3; top y46r=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,270); pos46(tthick,90); pos47(tthinner,0);
+x48l=x48-.5; x48r=x48+.5; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+penlabels(26,46,47,48);
+endchar;
+
+cmchar "Tamil cii";
+beginchar(27,1.6x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u-.1x_height;
+filldraw stroke z25e---z26e;
+z45=z21; x46=x3; top y46r=h;
+pos45(tthinnest,270); pos46(tmed,90);
+x47=.6[x3,x4]; y47=.9[y3,y46]; x48=x4; y48=.5[y3,y46];
+y49=.3[y3,y46]; x49=x47; x50=.2[x3,x4]; y50=y48; z51=z47;
+pos47(.7tmed,45); pos48(tthinner,0); pos49(tthinnest,-90);
+pos50(tthinnest,-180); pos51(tthinnest,-225);
+filldraw stroke z45e{left}...{right}z46e...z47e...{down}z48e...{left}z49e...{up}z50e...z51e;
+penlabels(26,46,47,48,49,50);
+endchar;
+
+cmchar "Tamil cu";
+beginchar(28,1.65x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u;
+filldraw stroke z25e---z26e;
+x27=x28=.5[x25,x26]; y27=y26; y28=0; pos27(tmed,0); pos28(tmed,0);
+filldraw stroke z27e--z28e;
+penlabels(26,27,28);
+endchar;
+
+cmchar "Tamil cuu";
+beginchar(29,2x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=1.65x_height;
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y26=y25; y26l=y25l; y26r=y25r; x26=x26l=x26r=w-u;
+filldraw stroke z25e---z26e;
+x27=x28=.5[x25,x26]; y27=y26; y28=0; pos27(tmed,0); pos28(tmed,0);
+filldraw stroke z27e--z28e;
+x40=x6; bot y40r=-d; pos40(tthick,-90);
+x41=-.25x_height; y41=y8; x42=x42l=x42r=x2; y42=y2; y42r=y42+.6; y42l=y42-.6;
+pos41(tthinner,-180);
+x48=x28; y48=0; pos48(tthinner,180); x49=w-u; y49=0; pos49(tthin,0);
+filldraw stroke z48e{up}...{down}z49e...{left}z40e...{up}z41e...{right}z42e;
+picture V; transform t; t=identity shifted(.35x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(26,27,28,40,41);
+endchar;
+
+cmchar "tamil ny";
+beginchar(32,2x_height#+2u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; bot y12l=-d; pos12(tthick,-270);
+x13=-.2x_height; y13=.3bar_height; pos13(tthin,-360); x14=x5-.75u; y14=y5; pos14(tthinner,-400);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...z14e;
+picture V; transform t; t=identity shifted(.3x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "tamil nyi";
+beginchar(34,2.2x_height#+2u#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; bot y12l=-d; pos12(tthick,-270);
+x13=-.2x_height; y13=.3bar_height; pos13(tthin,-360); x14=x5-.75u; y14=y5; pos14(tthinner,-400);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...z14e;
+x30=x8; y30=x_height; pos30(tthin,0); x31=x30; top y31l=h; pos31(tthick,-90);
+x33=x32=x11+2u; y32=x_height; y33=y33l=y33r=0; pos32(tthin,-180); x33l=x33+.6;
+x33r=x33-.6; filldraw stroke z30e{left}...{right}z31e...{down}z32e--z33e;
+picture V; transform t; t=identity shifted(.3x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "tamil nyii";
+beginchar(35,2x_height#+2u#,body_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; bot y12l=-d; pos12(tthick,-270);
+x13=-.2x_height; y13=.3bar_height; pos13(tthin,-360); x14=x5-.75u; y14=y5; pos14(tthinner,-400);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...z14e;
+small_iito(8,s,h);
+picture V; transform t; t=identity shifted(.3x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "tamil nyu";
+beginchar(36,2x_height#+u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; y12=-d; pos12(tthick,-270);
+x13=0; y13=-.3d; pos13(tthin,-360); x14=x13+.2u; y14=y13+.2u; pos14(tthin,-450);
+x15=x11+1.5u; y15=y14; pos15(tthin,-450);
+x16=x15; y16=y15r; pos16(tthick,0); x17=x16; y17=x_height; pos17(tthick,0);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...{right}z14e--z15e;
+filldraw stroke z16e--z17e;
+penlabels(10,11,12,13,14,15,16,17);
+endchar;
+
+
+cmchar "tamil nyuu";
+beginchar(37,2.4x_height#+2u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=1.7x_height;
+callchar:="e";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x99=x9; y99=0; pos99(tthin,0);
+x11=x9+4u; x10=.5[x9,x11]; top y10l=bar_height; pos10(tmed,-90);
+y11=.2bar_height; pos11(tthin,-180); x12=.5[x4,x9]; y12=-d; pos12(tthick,-270);
+x13=0; y13=-.3d; pos13(tthin,-360); x14=x13+.2u; y14=y13+.2u; pos14(tthin,-450);
+x15=x11+2u; y15=y14; pos15(tthin,-450);
+x16=x15; y16=y15r; pos16(tthin,0); x17=x16; y17=x_height; pos17(tthin,0);
+filldraw stroke z99e{up}...{right}z10e...{down}z11e...{left}z12e...{up}z13e...{right}z14e--z15e;
+filldraw stroke z16e--z17e;
+w:=2.4x_height+2u;
+top y18r=y17; x18=x17l; pos18(tmed,90); y19=y18; x19=w-u; x40r=x19-u;
+y40=y17; x21=x40; y21=0; pos19(tmed,90); pos40(tmed,0); pos21(tmed,0);
+filldraw stroke z18e--z19e; filldraw stroke z40e--z21e;
+penlabels(10,11,12,13,14,15,16,17,18,19,40,21);
+endchar;
+
+cmchar "Tamil t dot";
+beginchar(40,1.75x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="T";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil t dot i";
+beginchar(42,1.75x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="T";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x5=.7[x3,x4]; bot y5r=0; pos5(tthin,270); x6=x5-1.5u; top y6r=h; pos6(tthick,90);
+x7=x5; y7=bar_height; pos7(tthin,0); x8=x7; y8=-d; pos8(tthinnest,0);
+x40=x1; y40=.6[y1,y2];
+filldraw stroke z5e{z40-z5}...{right}z6e...{down}z7e--z8e;
+penlabels(5,6,7,8); endchar;
+
+cmchar "Tamil t dot ii";
+beginchar(43,1.75x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="T";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x5=.7[x3,x4]; y5=0; pos5(tmed,180);
+small_iito(5,s,x_height);
+penlabels(5,6,7,8); endchar;
+
+cmchar "tamil t dot u";
+beginchar(44,1.6x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+x1=x2=.45w; y1=x_height; y2=0; pos1(tmed,0); pos2(tmed,0);
+x3r=x2r; y3=y2; pos3(tthinner,0); x5l=w-2.5u; y5=.5[y4,y6]; pos5(tthinner,-180);
+x4=.5[x3,x5]; y4=bar_height; pos4(tthin,-90);
+x6=x3; bot y6l=-d; pos6(tthick,-270); x7=u; y7=.5[y6,y8]; pos7(tthinner,-360);
+x8=x1+u; top y8l=h; pos8(tmed,-450); x9=x10=w-u; y9=y1; pos9(tthin,-540);
+y10=y10r=y10l=0; x10l=x10+.6; x10r=x10-.6;
+filldraw stroke z1e--z2e;
+filldraw stroke z3e{up}...{right}z4e...{down}z5e...{left}z6e...{up}z7e...{right}z8e...{down}z9e--z10e;
+penlabels(1,2,4,5,6,7,8,9,10);
+endchar;
+
+cmchar "tamil t dot uu";
+beginchar(45,1.6x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+x1=x2=.45w; y1=x_height; y2=0; pos1(tmed,0); pos2(tmed,0);
+x3r=x2r; y3=y2; pos3(tthinner,0); x5l=w-2.5u; y5=.5[y4,y6]; pos5(tthinner,-180);
+x4=.5[x3,x5]; y4=bar_height; pos4(tthin,-90);
+x6=x3; bot y6l=-d; pos6(tthick,-270); x7=u; y7=.5[y6,y8]; pos7(tthinner,-360);
+x8=x1+u; top y8l=h; pos8(tmed,-450); x9=w-3.5u; y9=asc_height-.25u;
+x10=x9+1.5u; y10=.5[y9,y11]; x11=x9; y11=y9-4u; x12=x9-1.5u; y12=y10;
+x13=x9; y13=y9; pos9(tthin,-470); pos10(tthin,-540); pos11(tthinner,-630);
+pos12(tthinnest,-720); x13l=x13r=x13; y13l=y13+.6; y13r=y13-.6;
+filldraw stroke z1e--z2e;
+filldraw stroke z3e{up}...{right}z4e...{down}z5e...{left}z6e...{up}z7e...{right}z8e
+ ...z9e...{down}z10e...{left}z11e...{up}z12e...{right}z13e;
+penlabels(1,2,4,5,6,7,8,9,10,11,12,13);
+endchar;
+
+cmchar "Tamil n dot";
+beginchar(48,2.8x_height#+u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+endchar;
+
+cmchar "Tamil n.aa";
+beginchar(49,2.8x_height#+3u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1; y23=.8x_height;
+pos21(tthick,-1080); pos22(tthin,-1170);
+y23l+.5=y23r-.5=y23; x23l=x23; x23r=x23-1;
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{right}z23e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+%penlabels(21,22,23);
+endchar;
+
+cmchar "Tamil n.i";
+beginchar(50,3x_height#+u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+x17=.5[x13,x14]; top y17l=x_height; x18=x17; top y18r=h;
+pos17(tthin,270); pos18(tthick,90);
+x20=x19=x14+u; y19=x_height; y20=y20r=y20l=0;
+pos19(tthin,0); x20l=x20-.6; x20r=x20+.6;
+filldraw stroke z17e{left}...{right}z18e...{down}z19e--z20e;
+penlabels(17,18,19,20);
+endchar;
+
+cmchar "Tamil n.ii";
+beginchar(51,3x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+x17=.5[x13,x14]; top y17l=x_height; pos17(tthin,270);
+small_iito(17,s,h);
+penlabels(17);
+endchar;
+
+cmchar "Tamil n.u";
+beginchar(52,2.8x_height#+3u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.6[x1,x21];
+x23=x1; y23=-.3d; x24=x23+.2u; y24=y23+.2u; x25=w-u; y25=y24;
+x27r=x26r=x25; y27=x_height; y26=y25r;
+pos21(tthin,-1080); pos22(tthick,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350); pos25(tthin,-1350);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e...{right}z24e--z25e;
+pos26(tmed,0); pos27(tmed,0); filldraw stroke z26e--z27e;
+penlabels(21,22,23,24,25,27);
+endchar;
+
+cmchar "Tamil n.uu";
+beginchar(53,3.6x_height#+u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=3x_height+u;
+callchar:="1";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.6[x1,x21];
+x23=x1; y23=-.3d; x24=x23+.2u; y24=y23+.2u; x25=w-u; y25=y24;
+x27r=x26r=x25; y27=x_height; y26=y25r;
+pos21(tthin,-1080); pos22(tthick,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350); pos25(tthin,-1350);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e...{right}z24e--z25e;
+pos26(tmed,0); pos27(tmed,0); filldraw stroke z26e--z27e;
+w:=3.6x_height+u; x28=x27l; top y28r=y27; y29=y28; y30=y27; x29=w-u; x30=x29-2u;
+x31=x30; y31=0;
+pos28(tthin,90); pos29(tthin,90); pos30(tthin,0); pos31(tthin,0);
+filldraw stroke z28e--z29e; filldraw stroke z30e--z31e;
+penlabels(21,22,23,24,25,27,28,29,30,31);
+endchar;
+
+
+
+cmchar "Tamil n dot ai";
+beginchar(54,3.8x_height#+u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="1";
+dodraw:=false;
+tspecs;
+dodraw:=true;
+h:=oldh; w:=oldw; d:=oldd;
+aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z10e
+ ...{left}z11e...{up}z12e...{right}z13e---z14e;
+filldraw stroke z15e---z16e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil t";
+beginchar(56,1.7x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=w-u; y62=.5y61; pos62(tthick,0);
+y63=y64=-.3d; lft y66l=-d; y65=.4[y64,y66];
+x63=x61; x64=x2; x65=u; x66=.7[x65,x64];
+pos63(tthin,-90); pos64(tthin,-90); pos65(tthinner,0);
+pos66(tthick,45);
+%filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e---z64e{left}...{down}z65e..z66e;
+filldraw stroke z66e...{up}z65e...{right}z64e---z63e{right}...{up}z62e...{left}z61e---z25e;
+penlabels(45,47,48,61,62,63,64,65,66);
+endchar;
+
+
+cmchar "Tamil ti";
+beginchar(58,1.85x_height#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% draw the i loop
+z45=z21; x46=x3; top y46r=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,270); pos46(tthick,90); pos47(tthinner,0);
+x48l=x48-.5; x48r=x48+.5; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=.5[x4,x48]; % note this is based on position of i-loop
+y62=.5y61; pos62(tthick,0);
+y63=y64=-.3d; lft y66l=-d; y65=.4[y64,y66];
+x63=x61; x64=x2; x65=u; x66=.7[x65,x64];
+pos63(tthinner,-90); pos64(tthinner,-90); pos65(tthinner,0);
+pos66(tthick,45);
+%filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e---z64e{left}...{down}z65e..z66e;
+filldraw stroke z66e...{up}z65e...{right}z64e---z63e{right}...{up}z62e...{left}z61e---z25e;
+penlabels(45,47,48,61,62,63,64,65,66);
+endchar;
+
+cmchar "Tamil tii";
+beginchar(59,1.65x_height#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% do the upper loop for ii
+z45=z21; x46=x3; top y46r=h;
+pos45(tthinnest,270); pos46(tmed,90);
+x47=.6[x3,x4]; y47=.9[y3,y46]; x48=x4; y48=.5[y3,y46];
+y49=.3[y3,y46]; x49=x47; x50=.2[x3,x4]; y50=y48; z51=z47;
+pos47(.7tmed,45); pos48(tthinner,0); pos49(tthinnest,-90);
+pos50(tthinnest,-180); pos51(tthinnest,-225);
+filldraw stroke z45e{left}...{right}z46e...z47e...{down}z48e...{left}z49e...{up}z50e...z51e;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=w-u; y62=.5y61; pos62(tthick,0);
+y63=y64=-.3d; lft y66l=-d; y65=.4[y64,y66];
+x63=x61; x64=x2; x65=u; x66=.7[x65,x64];
+pos63(tthin,-90); pos64(tthin,-90); pos65(tthinner,0);
+pos66(tthick,45);
+%filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e---z64e{left}...{down}z65e..z66e;
+filldraw stroke z66e...{up}z65e...{right}z64e---z63e{right}...{up}z62e...{left}z61e---z25e;
+penlabels(45,47,48,49,50,61,62,63,64,65,66);
+endchar;
+
+cmchar "Tamil tu";
+beginchar(60,2.2x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=w-2u;
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=.35[x4,x90]; y62=.5y61; pos62(tthick,0);
+x63=x7; y63=-d; x64=x8-2u; y64=.85[y63,y65]; y66=y65=-.3d;
+x65=.25[x64,x8]; x66=w-u;rt x67r=x66; y67=bot y66l; x90=x67; y90=x_height;
+pos63(tthin,-90); pos64(tthinner,-180); pos65(tthinner,-270);
+pos66(tthinner,-270); pos67(.8tthick,0); pos90(.8tthick,0);
+filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e...{up}z64e
+ ...{right}z65e---z66e;
+filldraw stroke z67e---z90e;
+picture V; transform t; t= identity shifted(2u,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(61,62,63,64,65,66,90);
+endchar;
+
+cmchar "Tamil tuu";
+beginchar(61,2.6x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+w:=2.2x_height-2u;
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+%
+% finish with tail for t shape
+cloney(61,25); x61r=x61l=x61=.5[x3,x4];
+rt x62r=.35[x4,x90]; y62=.5y61; pos62(tthick,0);
+x63=x7; y63=-d; x64=x8-2u; y64=.85[y63,y65]; y66=y65=-.3d;
+x65=.25[x64,x8]; x66=w-u;rt x67r=x66; y67=bot y66l; x90=x67; y90=x_height;
+pos63(tthin,-90); pos64(tthinner,-180); pos65(tthinner,-270);
+pos66(tthinner,-270); pos67(tthin,0); pos90(tthin,0);
+filldraw stroke z25e--z61e{right}...{down}z62e...{left}z63e...{up}z64e
+ ...{right}z65e---z66e;
+filldraw stroke z67e---z90e;
+w:=2.6x_height-2u;
+x201=x90l; top y201r=x_height; y202=y201; x202=w-u; pos201(tthin,90);
+pos202(tthin,90); x203=.6[x201,x202]; y203=x_height; x204=x203;
+y204=0; pos203(tmed,0); pos204(tmed,0);
+filldraw stroke z201e--z202e; filldraw stroke z203e--z204e;
+picture V; transform t; t= identity shifted(2u,0);
+V=currentpicture transformed t; currentpicture:=V;
+penlabels(61,62,63,64,65,66,90);
+endchar;
+
+cmchar "Tamil n";
+beginchar(64,1.5x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+endchar;
+
+cmchar "Tamil ni";
+beginchar(66,1.75x_height#,asc_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+% draw the i loop
+x45=.8[x5,x4]; top y45r=x_height; x46=x45; top y46l=h; x47=x48=w-u; y47=y4; y48=0;
+pos45(tthinnest,90); pos46(tthick,-90); pos47(tthinner,-180);
+x48l=x48+.65; x48r=x48-.65; y48l=y48r=0;
+filldraw stroke z45e{left}...{right}z46e...z47e{down}---z48e;
+penlabels(45,46,47,48);
+endchar;
+
+cmchar "Tamil nii";
+beginchar(67,1.65x_height#,body_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+x31=x9l; y31=x_height; small_iito(31,s,h);
+endchar;
+
+cmchar "Tamil nu";
+beginchar(68,1.8x_height#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+x70=.5[x1,x6]; y70=-d; x72=w-u; y72=y82; rt x73r=x72;
+y73=y72; x74=x73; y74=x_height;
+z81=z12; z82=z11; pos70(tthinner,-90); pos81(tthinner,-180);
+pos82(tthinner,-270); pos72(tthinner,-270);
+pos73(.8tthick,0); pos74(.8tthick,0);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z70e...{up}z81e
+ ...{right}z82e---z72e;
+filldraw stroke z73e--z74e;
+penlabels(70,72,73,74,81,82);
+endchar;
+
+cmchar "Tamil nuu";
+beginchar(69,2.1x_height#,x_height#,.5x_height#);
+adjust_fit(0,0);
+callchar:="n";
+tspecs; h:= oldh; w:=oldw; d:=oldd;
+%draw the end loop
+x70=.5[x1,x6]; y70=-d; x72=w-3u; y72=y82; rt x73r=x72;
+y73=y72; x74=x73; y74=x_height;
+z81=z12; z82=z11; pos70(tthinner,-90); pos81(tthinner,-180);
+pos82(tthinner,-270); pos72(tthinner,-270);
+pos73(tthinner,0); pos74(tthinner,0);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z70e...{up}z81e
+ ...{right}z82e---z72e;
+filldraw stroke z73e--z74e;
+top y90r=x_height; x90=lft x73l; x91=w-u; y91=y90;
+pos90(tthinner,90); pos91(tthinner,90); filldraw stroke z90e--z91e;
+rt x92r=x91; y92=x_height; y93=0; x93=x92;
+pos92(.8tthick,0); pos93(.8tthick,0); filldraw stroke z92e--z93e;
+penlabels(70,72,73,74,81,82,90,91,92,93);
+endchar;
+
+cmchar "Tamil p";
+beginchar(72,1.4x_height#+u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil pi";
+beginchar(74,1.5x_height#+2u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; top y7l=h; pos7(tthick,-90); x8=x9=w-u; y8=x_height; y9=y9r=y9l=0;
+x9r=x9-.6; x9l=x9+.6; pos8(tthin,-180);
+filldraw stroke z6e{left}...{right}z7e...{down}z8e--z9e;
+penlabels(7,8,9); endchar;
+
+cmchar "Tamil pii";
+beginchar(75,1.4x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; x7r=x6l; x7l=x6r; cloney(7,6);
+small_iito(7,s,h);
+endchar;
+
+cmchar "Tamil pu";
+beginchar(76,1.4x_height#+u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(7,5); y7r=y7l=y7=-d; filldraw stroke z5e--z7e;
+endchar;
+
+cmchar "Tamil puu";
+beginchar(77,1.4x_height#+4u#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="p";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(7,5); y7r=y7l=y7=-.5d; filldraw stroke z5e--z7e;
+x8=x7; y8=y7; pos8(tthin,0); x10=w-u; y10=.5[y9,y11]; pos10(tthin,-180);
+x9=.5[x8,x10]; top y9l=0; pos9(tthin,-90); x11=.5[x1,x10]; y11=-d;
+x12=x1; y12=-.4d; x13=.25[x1,x4]; y13=-.2d; x14=.5[x1,x4]; y14=-.45d;
+pos11(tthick,-270); pos12(tthin,-360); pos13(tthin,-450); pos14(tthinner,-540);
+filldraw stroke z8e{up}...{right}z9e...{down}z10e...{left}z11e...{up}z12e
+ ...{right}z13e...{down}z14e;
+endchar;
+
+cmchar "Tamil m";
+beginchar(80,1.6x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil mi";
+beginchar(82,1.85x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x10=x6; top y10l=h; y11=x_height; x12=x11=w-u; y12=0;
+pos10(tthick,-90); pos11(tthin,-180); y12r=y12l=y12;
+x12r=x12-.6; x12l=x12+.6;
+filldraw stroke z6e{left}...{right}z10e...{down}z11e--z12e;
+penlabels(10,11,12); endchar;
+
+cmchar "Tamil mii";
+beginchar(83,1.6x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x10=x6; y10l=x_height; x10r=x10-.6; x10l=x10+.6; y10=y10l-.6; y10r=y10-.6;
+small_iito(10,s,h);
+endchar;
+
+cmchar "Tamil mu";
+beginchar(84,2.2x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=1.6x_height;
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x8; y9=0; pos9(tthick,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=x1-.5u; y12l=h;
+pos11(tthin,-360); x12l=x12r=x12; y12=y12l-.6; y12r=y12-.6;
+filldraw stroke z9e{down}...{left}z10e...{up}z11e...{right}z12e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+
+cmchar "Tamil muu";
+beginchar(85,2.2x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=1.6x_height;
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x8; y9=0; pos9(tthick,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=x1-2.5u; y12l=h;
+pos11(tthin,-360); pos12(tthinnest,-450);
+x13=x12+u; y14=y12-u; x14=x13-2u; y14=y13;
+pos13(tthinnest,-540); x14l=x14-.6; x14r=x14+.6; y14r=y14l=y14;
+filldraw stroke z9e{down}...{left}z10e...{up}z11e...{right}z12e...{down}z13e...{z14-z2}z14e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+cmchar "Tamil y";
+beginchar(88,1.5x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil yi";
+beginchar(90,1.9x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x20=x9; y20l=h; pos20(tthick,-90); x21=w-u; y21=x_height; pos21(tthin,-180);
+x22=x21; y22=y22l=y22r=0; x22r=x22-.6; x22l=x22+.6;
+filldraw stroke z9e{left}...{right}z20e...{down}z21e--z22e;
+penlabels(20,21,22); endchar;
+
+cmchar "Tamil yii";
+beginchar(91,1.65x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x20=x9; y20=y9; pos20(tthin,180);
+small_iito(20,s,h);
+endchar;
+
+cmchar "Tamil yu";
+beginchar(92,1.5x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(20,10); y20=y20l=y20r=-d;
+filldraw stroke z10e--z20e;
+penlabels(20); endchar;
+
+cmchar "Tamil yuu";
+beginchar(93,1.75x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="y";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(20,10); y20=y20l=y20r=-.5d;
+filldraw stroke z10e--z20e;
+x22=w-u; y22=0; x21=.6[x10,x22]; y21=.25d;
+pos21(tthinner,-90); pos22(tthin,-180);
+x23=.7[x7,x8]; y23=-1.2d; pos23(tthick,-270);
+x24=x2; y24=-.5d; pos24(tthin,-360); x25=x7; y25=-.25d; pos25(tthinner,-450);
+x26=.5[x7,x8]; y26=-.5d; pos26(tthinnest,-540);
+filldraw stroke z20e{up}...{right}z21e...{down}z22e...{left}z23e...{up}z24e
+ ...{right}z25e...{down}z26e;
+penlabels(20,21,22,23,24,25,26); endchar;
+
+cmchar "Tamil r";
+beginchar(96,.9x_height#+2u#,x_height#,.75desc_depth#);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; bot y7l=y6; x8=x1; bot y8l=-d;
+pos7(tthin,90); pos8(tthin,90);
+filldraw stroke z7e--z8e;
+penlabels(7,8); endchar;
+
+cmchar "Tamil aa matra";
+beginchar(97,.9x_height#+2u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil ri";
+beginchar(98,.9x_height#+3.5u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=.5[x5,x4]; y7=y5; x8=x7; top y8r=h; x9=x10=w-u; y9=x_height; y10=0;
+pos7(tthinner,-90); pos8(tthick,90); pos9(tthin,0);
+x10l=x10-.6; x10r=x10+.6; y10r=y10l=0;
+filldraw stroke z7e{left}...{right}z8e...{down}z9e--z10e;
+penlabels(7,8,9,10); endchar;
+
+cmchar "Tamil rii";
+beginchar(99,.9x_height#+2.5u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=.5[x5,x4]; y7=x_height; pos7(tthinner,-90);
+small_iito(7,s,body_height);
+penlabels(7,8,9,10); endchar;
+
+cmchar "Tamil ru";
+beginchar(100,.9x_height#+7u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; y7=y6; x8=.7[x5,x4]; top y8l=bar_height; pos8(tthick,-90);
+pos7(tthin,0); x9=1.4[x5,x4]; y9=0; pos9(tthin,-180);
+x10=.7[x1,x6]; bot y10l=-d; pos10(tthinner,-270); x11=x1-4u; y11=.5bar_height;
+pos11(tthinner,-360); x12=x2-u; top y12l=x_height; pos12(tthinnest,-450);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{up}z11e...{right}z12e;
+picture V; transform t; t=identity shifted(3.75u,0);
+V=currentpicture transformed t; currentpicture:= V;
+penlabels(7,8,9,10,11,12); endchar;
+
+
+cmchar "Tamil ruu";
+beginchar(101,.9x_height#+9u#,x_height#,1.2desc_depth#);
+adjust_fit(0,0);
+callchar:="r2";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x7=x6; y7=y6; x8=.7[x5,x4]; top y8l=bar_height; pos8(tthick,-90);
+pos7(tthin,0); x9=1.4[x5,x4]; y9=0; pos9(tthin,-180);
+x10=.7[x1,x6]; bot y10l=-d; pos10(tthinner,-270); x11=x1-6u; y11=.5bar_height;
+pos11(tthinner,-360); x12=.5[x11,x2]; top y12l=x_height; pos12(tthin,-450);
+x13=.8[x11,x2]; y13=y12-1.5u; x14=.3[x11,x2]; y14=y12-3u;
+pos13(tthin,-540); pos14(tthinner,-600);
+filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{up}z11e...{right}z12e
+ ...{down}z13e...z14e;
+picture V; transform t; t=identity shifted(5.75u,0);
+V=currentpicture transformed t; currentpicture:= V;
+penlabels(7,8,9,10,11,12); endchar;
+
+
+cmchar "Tamil l";
+beginchar(104,1.4x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x11=x9; top y11r=h; x12=x11+.5u; y12=y11-.25u; pos11(tthick,90); pos12(.7tthick,60);
+x13=x12; y13=x12-2u; pos13(tthin,-90); x14r=x14l=x14=x12; y14=y12; y14r=y14+1; y14l=y14-1;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e;
+endchar;
+
+cmchar "Tamil li";
+beginchar(106,1.6x_height#+2u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x11=x10; top y11r=h; pos11(tthick,90); x13=x12=w-u; y12=x_height;
+y13r=y13l=y13=0; x13l=x13-.6; x13r=x13+.6; pos12(tthin,0);
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e...{right}z11e...{down}z12e--z13e;
+%filldraw stroke z10e...{right}z11e...{down}z12e--z13e;
+penlabels(11,12,13);
+endchar;
+
+cmchar "Tamil lii";
+beginchar(107,1.5x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x11=x9; top y11r=h; x12=x11+.5u; y12=y11-.25u; pos11(tthick,90); pos12(.7tthick,60);
+x13=x12; y13=x12-2u; pos13(tthin,-90); x14r=x14l=x14=x12; y14=y12; y14r=y14+1; y14l=y14-1;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e...{right}z11e..z12e...{left}z13e...{right}z14e;
+%small_iito(10,s,h);
+endchar;
+
+cmchar "Tamil lu";
+beginchar(108,2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e;
+z21=z8; pos21(tthin,0); x22=.15[x5,x21]; bot y22r=-d; pos22(tthick,-90);
+x23=x81-u; y23=-.4d; x24=x23+.5u; y24=y23+.5u; pos23(tthin,-180); pos24(tthin,-270);
+x25=w-u; y25=y24; pos25(tthin,-270); x26r=x25; x27=x26; pos26(tmed,0);
+y26=y25l; y27=x_height; pos27(tmed,0);
+filldraw stroke z21e{down}...{left}z22e...{up}z23e...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+penlabels(21,22,23,24,25,26,27);
+endchar;
+
+cmchar "Tamil luu";
+beginchar(109,2.4x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+w:=1.9x_height;
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e
+ ...{left}z10e;
+z21=z8; pos21(tthin,0); x22=.15[x5,x21]; bot y22r=-d; pos22(tthick,-90);
+x23=x81-u; y23=-.4d; x24=x23+.5u; y24=y23+.5u; pos23(tthin,-180); pos24(tthin,-270);
+x25=w-u; y25=y24; pos25(tthin,-270); x26r=x25; x27=x26; pos26(tthin,0);
+y26=y25l; y27=x_height; pos27(tthin,0);
+filldraw stroke z21e{down}...{left}z22e...{up}z23e...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+w:=2.4x_height;
+x28=x27l; y28r=y27; y29=y28; x29=w-u; pos28(tthin,90); pos29(tthin,90);
+filldraw stroke z28e--z29e;
+x31=x30=.65[x28,x29]; y30=y27; y31=0; pos30(tmed,0); pos31(tmed,0);
+filldraw stroke z30e--z31e;
+penlabels(21,22,23,24,25,26,27,28,29,30);
+endchar;
+
+cmchar "Tamil lai";
+beginchar(110,2.8x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="l";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e...{up}z81e...{right}z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e...{left}z10e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+
+
+cmchar "Tamil v";
+beginchar(112,1.4x_height#+2u#,x_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil vi";
+beginchar(114,1.65x_height#+2u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd; x21r=x10l; x21l=x10r; x21=x10; cloney(21,10);
+x11=x10; top y11r=h; pos11(tthick,90); x13=x12=w-u; y12=x_height;
+y13r=y13l=y13=0; x13l=x13-.6; x13r=x13+.6; pos12(tthin,0);
+filldraw stroke z21e{left}...{right}z11e...{down}z12e--z13e;
+penlabels(11,12,13);
+endchar;
+
+cmchar "Tamil vii";
+beginchar(115,1.5x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21r=x10l; x21l=x10r; x21=x10; cloney(21,10); small_iito(21,s,h);
+endchar;
+
+cmchar "Tamil vu";
+beginchar(116,1.5x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(11,9); y11r=y11l=y11=-d; filldraw stroke z9e--z11e;
+penlabels(11); endchar;
+
+cmchar "Tamil vuu";
+beginchar(117,1.5x_height#+3u#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="v";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(11,9); y11r=y11l=y11=-.5d; filldraw stroke z9e--z11e;
+x18=x11; y18=y11; pos18(tthin,0); x20=w-u; y20=.5[y19,y21]; pos20(tthin,-180);
+x19=.5[x18,x20]; top y19l=0; pos19(tthin,-90); x21=.5[x1,x20]; y21=-d;
+x22=x1; y22=-.4d; x23=.25[x1,x9]; y23=-.2d; x24=.5[x1,x9]; y24=-.45d;
+pos21(tthick,-270); pos22(tthin,-360); pos23(tthin,-450); pos24(tthinner,-540);
+filldraw stroke z18e{up}...{right}z19e...{down}z20e...{left}z21e...{up}z22e
+ ...{right}z23e...{down}z24e;
+penlabels(11); endchar;
+
+cmchar "Tamil z";
+beginchar(120,1.6x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x9r=x9l=x5; y9=-.3d; y9l=y9+.6;y9r=y9-.6; filldraw stroke z8e{down}...{right}z9e;
+x90l=x9l; y90l=y9l; pos90(tthin,-170);
+x10=.4[x1,x5]; bot y10r=-d; x11=x1; y11=.3[y9,y10]; pos10(tthick,-90); pos11(tthin,-180);
+x12=.25[x2,x5]; y12=.5[y2,y11]; pos12(tthinner,40);
+filldraw stroke z9e{left}...{left}z10e...{up}z11e...z12e;
+penlabels(9,10,11,12);
+endchar;
+
+cmchar "Tamil zi";
+beginchar(122,1.9x_height#,asc_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x9r=x9l=x5; y9=-.3d; y9l=y9+.6;y9r=y9-.6; filldraw stroke z8e{down}...{right}z9e;
+x90l=x9l; y90l=y9l; pos90(tthin,-170);
+x10=.4[x1,x5]; bot y10r=-d; x11=x1; y11=.3[y9,y10]; pos10(tthick,-90); pos11(tthin,-180);
+x12=.25[x2,x5]; y12=.5[y2,y11]; pos12(tthinner,40);
+filldraw stroke z9e{left}...{left}z10e...{up}z11e...z12e;
+x30=x6; top y30l=h; y31=x_height; x32=x31=w-u; y32=0;
+pos30(tthick,-90); pos31(tthin,-180); y32r=y32l=y32;
+x32r=x32-.6; x32l=x32+.6;
+filldraw stroke z6e{left}...{right}z30e...{down}z31e--z32e;
+penlabels(9,10,11,12,30,31,32);
+endchar;
+
+cmchar "Tamil zii";
+beginchar(123,1.6x_height#,body_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x9=x9r=x9l=x5; y9=-.3d; y9l=y9+.6;y9r=y9-.6; filldraw stroke z8e{down}...{right}z9e;
+x90l=x9l; y90l=y9l; pos90(tthin,-170);
+x10=.4[x1,x5]; bot y10r=-d; x11=x1; y11=.3[y9,y10]; pos10(tthick,-90); pos11(tthin,-180);
+x12=.25[x2,x5]; y12=.5[y2,y11]; pos12(tthinner,40);
+filldraw stroke z9e{left}...{left}z10e...{up}z11e...z12e;
+small_iito(6,s,h);
+penlabels(9,10,11,12);
+endchar;
+
+cmchar "Tamil zu";
+beginchar(124,2.2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(88,8); y88r=y88l=y88=-.5d; filldraw stroke z8e--z88e;
+x9=x88; y9=y88; pos9(tthin,-360); x99=x4; y99=y9; pos99(tthin,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=x1-.5u; y12l=h;
+pos11(tthin,-360); x12l=x12r=x12; y12=y12l-.6; y12r=y12-.6;
+filldraw stroke z9e{up}...{down}z99e...{left}z10e...{up}z11e...{right}z12e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+cmchar "Tamil zuu";
+beginchar(125,2.2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="m";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+clonex(88,8); y88r=y88l=y88=-.5d; filldraw stroke z8e--z88e;
+x9=x88; y9=y88; pos9(tthin,-360); x99=x4; y99=y9; pos99(tthin,-180);
+x10=.25[x2,x8]; bot y10l=-d; pos10(tmed,-270);
+x11=-.6x_height+u; y11=.5bar_height; x12=.5[x11,x1]; top y12l=h;
+pos11(tthin,-360); pos12(tthin,-450); x13=.8[x11,x1]; y13=y12-1.5u;
+pos13(tthin,-540); x14=.3[x11,x1]; y14=y13-1.5u; pos14(tthinner,-600);
+filldraw stroke z9e{up}...{down}z99e...{left}z10e...{up}z11e...{right}z12e
+ ...{down}z13e...z14e;
+picture V; transform t; t=identity shifted(.6x_height,0);
+V=currentpicture transformed t; currentpicture:= V;
+endchar;
+
+
+
+cmchar "Tamil l dot";
+beginchar(128,1.75x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "Tamil l dot i";
+beginchar(130,1.75x_height#+2u#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y13=y12; x13=x12r; x14=x13; top y14r=h; x15=x16=w-u; y15=y12; y16l=y16r=y16=0;
+x16l=x16-.6; x16r=x16+.6; pos13(tthin,180); pos14(tthick,90); pos15(tthin,0);
+filldraw stroke z13e{left}...{right}z14e...{down}z15e--z16e;
+penlabels(14,15,16); endchar;
+
+cmchar "Tamil l dot ii";
+beginchar(131,1.75x_height#+u#,body_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y13=y12; x13=x12r;
+pos13(tthin,0);
+small_iito(13,s,h);
+endchar;
+
+cmchar "Tamil l dot u";
+beginchar(132,2.05x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=2.05x_height; d:=oldd;
+x31=x11; y31=0; pos31(tthin,0); x33=w-u; y33=.5[y32,y34]; pos33(tthin,-180);
+x32=.5[x31,x33]; y32=bar_height; pos32(tthin,-90);
+x35=x1-3u; y35=.5[y1,y2]; pos35(tthin,-360); x34=.5[x35,x33]; bot y34l=-d;
+pos34(tthick,-270); x36=x1; y36=y5; x36r=x36+.6; x36l=x36-.6;
+y36r=y36-.6; y36l=y36+.6;
+filldraw stroke z31e{up}...{right}z32e...{down}z33e...{left}z34e...{up}z35e..{right}z36e;
+picture V; transform t; t=identity shifted(3u,0); V=currentpicture transformed t;
+currentpicture:=V;
+endchar;
+
+cmchar "Tamil l dot uu";
+beginchar(133,2.05x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="L";
+tspecs;
+h:=oldh; w:=2.05x_height; d:=oldd;
+x31=x11; y31=0; pos31(tthin,0); x33=w-u; y33=.5[y32,y34]; pos33(tthin,-180);
+x32=.5[x31,x33]; y32=bar_height; pos32(tthin,-90);
+x35=x1-3u; y35=.5[y1,y2]; pos35(tthin,-360); x34=.5[x35,x33]; bot y34l=-d;
+pos34(tthick,-270); x36=.5[x35,x1]; top y36l=h; pos36(tthin,-450);
+x37=.9[x35,x1]; y37=y36-u; pos37(tthin,-540); x38=.3[x35,x1]; y38=y37-u;
+pos38(tthinner,-600);
+filldraw stroke z31e{up}...{right}z32e...{down}z33e...{left}z34e...{up}z35e..{right}z36e
+ ...{down}z37e...z38e;
+picture V; transform t; t=identity shifted(3u,0); V=currentpicture transformed t;
+currentpicture:=V;
+endchar;
+
+cmchar "Tamil l dot ai";
+beginchar(134,2.75x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="L";
+dodraw:=false;
+tspecs;
+dodraw:=true;
+h:=oldh; w:=oldw; d:=oldd;
+aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e...{up}z1e...{right}z5e...{down}z6e;
+filldraw stroke z7e---z8e; filldraw stroke z9e---z10e;
+filldraw stroke z11e---z12e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil alv. r";
+beginchar(136,1.3x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+endchar;
+
+cmchar "Tamil alv. raa";
+beginchar(137,1.3x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x77=x7; y77=.4[y6,y7]; pos77(tthin,-180);
+x7:=x7-u; x7r:=x7r-u; x7l:=x7l-u;
+x88=x77; y88=0; pos88(tthin,-180);
+x31=x5; bot y31l=-d; x32=-2u; y32=.3bar_height;
+pos31(tthick,-270); pos32(tthin,-360);
+x33=x33r=x33l=x11-.5u; y33=y11; y33l=y33+.6; y33r=y33-.6;
+filldraw stroke z4e{up}...{right}z6e...{down}z77e...{down}z7e...{down}z88e...{left}z31e...{up}z32e...z33e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil alv. ri";
+beginchar(138,1.7x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+x77=x6; top y77r=h; pos77(tthick,-270);
+x78=w-u; y78=x_height; x79=x78; y79=y79r=y79l=0;
+x79r=x79+.6; x79l=x79-.6; pos78(tthin,-360);
+filldraw stroke z6e{left}...{right}z77e...{down}z78e--z79e;
+endchar;
+
+cmchar "Tamil alv. rii";
+beginchar(139,1.3x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+small_iito(6,s,h);
+endchar;
+
+cmchar "Tamil alv. ru";
+beginchar(140,1.75x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x77=x7; y77=y7; pos77(tthin,-180);
+x31=x5; bot y31l=-d; x32=x1; y32=-.5d; y33=y32+.5u; x33=x32+.5u; x34=w-u; y34=y33;
+pos31(tthick,-270); pos32(tthin,-360); pos33(tthin,-450); pos34(tthin,-450);
+filldraw stroke z4e{up}...{right}z6e...{down}z77e...{left}z31e...{up}z32e...{right}z33e--z34e;
+x35r=x34; y35=y34r; x36=x35; y36=x_height; pos35(tthick,0); pos36(tthick,0);
+filldraw stroke z35e--z36e;
+endchar;
+
+cmchar "Tamil alv. ruu";
+beginchar(141,2x_height#,x_height#,1.4desc_depth#);
+adjust_fit(0,0);
+callchar:="R";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x77=x7; y77=y7; pos77(tthin,-180);
+x31=x5; bot y31l=-d; x32=x1; y32=-.5d; y33=y32+.5u; x33=x32+.5u; x34=w-3.3u; y34=y33;
+pos31(tthick,-270); pos32(tthin,-360); pos33(tthin,-450); pos34(tthin,-450);
+filldraw stroke z4e{up}...{right}z6e...{down}z77e...{left}z31e...{up}z32e...{right}z33e--z34e;
+x35r=x34; y35=y34r; x36=x35; y36=x_height; pos35(tthin,0); pos36(tthin,0);
+filldraw stroke z35e--z36e;
+x37=x36l; top y37r=x_height; x38=w-.3u; y38=y37; pos37(tthin,90); pos38(tthin,90);
+filldraw stroke z37e--z38e;
+x39r=x38-.7u; y39=x_height; x40=x39; y40=0; pos39(tthick,0); pos40(tthick,0);
+filldraw stroke z39e--z40e;
+endchar;
+
+
+cmchar "Tamil 2loop n";
+beginchar(144,2x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+endchar;
+
+cmchar "Tamil 2loop naa";
+beginchar(145,2x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=2x_height;
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1; y23=.8x_height;
+pos21(tthick,-1080); pos22(tthin,-1170);
+y23l+.5=y23r-.5=y23; x23l=x23; x23r=x23-1;
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{right}z23e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+
+
+cmchar "Tamil 2loop ni";
+beginchar(146,2.25x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+x21=x16; y21=x_height; pos21(tthin,0); x22=x21; top y22l=h; pos22(tthick,-90);
+x23=w-u; y23=x_height; x24=x23; y24=y24l=y24r=0; x24r=x24-.6; x24l=x24+.6;
+pos23(tthin,-180);
+filldraw stroke z21e{left}...{right}z22e...{down}z23e--z24e;
+penlabels(22,23,24);
+endchar;
+
+cmchar "Tamil 2loop nii";
+beginchar(147,2x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+filldraw stroke z13e---z14e;
+filldraw stroke z15e---z16e;
+small_iito(16,s,h);
+endchar;
+
+cmchar "Tamil 2loop nu";
+beginchar(148,2.5x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=2x_height;
+callchar:="N";
+tspecs;
+h:=oldh; w:=2.5x_height; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1-3u; y23=-.43d; x24=x23+u; y24=-.25d;
+pos21(tthick,-1080); pos22(tthin,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350);
+y25=y24; x25=w-2u; pos25(tthin,-1350);
+rt x26r=x25; y26=y25; pos26(tthick,0); x27=x26; y27=h; pos27(tthick,0);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e{up}...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil 2loop nuu";
+beginchar(149,2.8x_height#+3u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+w:=2x_height;
+callchar:="N";
+tspecs;
+h:=oldh; w:=2.5x_height; d:=oldd;
+x21=x16+u; y21=y6;
+y22=-d; x22=.4[x1,x21];
+x23=x1-3u; y23=-.43d; x24=x23+u; y24=-.25d;
+pos21(tthick,-1080); pos22(tthin,-1170);
+pos23(tthin,-1260); pos24(tthin,-1350);
+y25=y24; x25=w-3u; pos25(tthin,-1350);
+rt x26r=x25; y26=y25; pos26(tthin,0); x27=x26; y27=h; pos27(tthin,0);
+filldraw stroke z13e{right}...{down}z21e...{left}z22e...{up}z23e{up}...{right}z24e--z25e;
+filldraw stroke z26e--z27e;
+w:=2.8x_height;
+x28=lft x27l; top y28r=h; x29=w-u; y29=y28; pos28(tthin,90); pos29(tthin,90);
+rt x30r=x29-.7u; y30=h; x31=x30; y31=0; pos30(tthick,0); pos31(tthick,0);
+filldraw stroke z28e--z29e; filldraw stroke z30e--z31e;
+picture V; transform t; t=identity shifted(3u,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "Tamil 2loop n ai";
+beginchar(150,3x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="N";
+dodraw:=false;
+tspecs;
+dodraw:=true;
+h:=oldh; w:=oldw; d:=oldd;
+aipoints;
+z211=.5[z210,z2]; pos211(tthin,135);
+filldraw stroke z201e...{down}z202e...{left}z203e...{up}z204e...z205e...{right}z206e
+ ...{down}z207e...z208e...{down}z209e...{right}z210e...z211e
+ ...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z13e---z14e;
+filldraw stroke z15e---z16e;
+picture V; transform t; t=identity shifted(x_height,0);
+V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "grantha s dot";
+beginchar(176,2.2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="S";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "grantha s dot i";
+beginchar(178,2.5x_height#,body_height#+2u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="S";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x50=x44; y50=y44; pos50(tthin,90);
+x51=x50; top y51l=h; pos51(tthick,-90);
+x52=x53=w-u; y52=x_height; y53=y53r=y53l=0; pos52(tthin,-180);
+x53r=x53-.6; x53l=x53+.6;
+filldraw stroke z50e{left}...{right}z51e...{down}z52e--z53e;
+penlabels(50,51,52,53);
+endchar;
+
+cmchar "grantha s dot ii";
+beginchar(179,2.4x_height#,body_height#+4u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="S";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x50=x44; y50=y44; pos50(tthin,0);
+small_iito(50,s,h);
+endchar;
+
+cmchar "grantha s";
+beginchar(184,2.4x_height#,x_height#,0);
+adjust_fit(0,0);
+callchar:="s";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+cmchar "grantha si";
+beginchar(186,2.6x_height#,asc_height#,0);
+adjust_fit(0,0);
+callchar:="s";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z82=z16; x83=x16; top y83l=h; pos82(tthin,45); pos83(tthick,-90);
+x85=x84=w-u; y84=x_height; y85=y85r=y85l=0; x85r=x85-.6; x85l=x85+.6;
+pos84(tthin,-180);
+filldraw stroke z82e{left}...{right}z83e...{down}z84e--z85e;
+penlabels(83,84,85);
+endchar;
+
+cmchar "grantha sii";
+beginchar(187,2.4x_height#,body_height#,0);
+adjust_fit(0,0);
+callchar:="s";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+x100=x16-2.5u; x101=x16+.5u; top y101l=h; pos101(tthick,-90);
+y100=.5[y16,y101]; pos100(tthin,0);
+x102=x101+u; y102=y101-.5u; pos102(.7tthick,-135); x103=x102;
+y103=y102-2u; pos103(tthin,-270); x104=x104r=x104l=x102;
+y104=y101; y104r=y104-.6; y104l=y104+.6;
+filldraw stroke z16e{left}...{up}z100e...{right}z101e...z102e...{left}z103e...{right}z104e;
+endchar;
+
+cmchar "grantha j";
+beginchar(192,1.75x_height#,x_height#,.8x_height#);
+adjust_fit(0,0);
+callchar:="j";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+
+cmchar "grantha ji";
+beginchar(194,2.05x_height#,asc_height#,.8x_height#);
+adjust_fit(0,0);
+callchar:="j";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z182=z10; x183=x10; top y183l=h; pos182(tthin,90); pos183(tthick,-90);
+x185=x184=w-u; y184=x_height; y185=y185r=y185l=0; x185r=x185-.6; x185l=x185+.6;
+pos184(tthin,-180);
+filldraw stroke z182e{left}...{right}z183e...{down}z184e--z185e;
+penlabels(183,184,185);
+endchar;
+
+cmchar "grantha jii";
+beginchar(195,1.75x_height#,body_height#,.8x_height#);
+adjust_fit(0,0);
+callchar:="j";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z82=z10; pos82(tthinner,0); small_iito(82,s,h);
+endchar;
+
+
+
+
+
+cmchar "grantha h";
+beginchar(200,3x_height#,x_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="h";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+endchar;
+
+
+cmchar "grantha hi";
+beginchar(202,3.2x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="h";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+z180=z106; pos180(tthin,90); x181=x180; top y181l=h; pos181(tthick,-90);
+x182=x183=w-u; y182=x_height; y183=y183r=y183l=0; pos182(tthin,-180);
+x183r=x183-.6; x183l=x183+.6;
+filldraw stroke z180e{left}...{right}z181e...{down}z182e--z183e;
+penlabels(180,181,182,183);
+endchar;
+
+cmchar "grantha hii";
+beginchar(203,3x_height#,body_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="h";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+small_iito(106,s,h);
+endchar;
+
+cmchar "grantha ksh";
+beginchar(208,3.6x_height#,asc_height#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y202=y25; x202=x4+2.5u; pos202(tthin,90); x241r=w-u;
+x206=.4[x202,x241]; x207=.3[x202,x241]; x205=.2[x202,x241];
+top y205r=x_height; pos205(tthin,-270); y206=.5[y205,y207]; pos206(tthick,-360);
+bot y207r=0; pos207(tmed,-450); x240=.8[x207,x241]; bot y240r=0;
+pos240(tmed,-450); y241=.5bar_height; pos241(tthick,-360);
+x243=.5[x207,x240]; y243=h-y241; z242=.5[z241,z243];
+pos242(.5(tthick+tthin),-315); pos243(tthin,-360);
+x244=.5[x243,x245]; top y244l=h; pos244(tmed,-450); x245=x243+4u; y245=y243;
+pos245(tthin,-540); x246=.5[x207,x243]; bot y246l=-d; pos246(tthinner,-585);
+x203=.4[x202,x207]; y203=.5[y202,y204]; pos203(tthick,0); x204=x202;
+bot y204r=0; pos204(tthin,-90); x201=2x202-x203; y201=y203; pos201(tthin,-180);
+filldraw stroke z25e--z202e{right}...{down}z203e...{left}z204e...z201e...{right}z205e
+ ...{down}z206e...{left}z207e;
+filldraw stroke z207e--z240e{right}...{up}z241e...{z243-z241}z242e...{up}z243e
+ ...{right}z244e...z245e--z246e;
+endchar;
+
+cmchar "grantha kshi";
+beginchar(210,3.6x_height#+2.6u#,body_height#+2u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=3.6x_height; d:=oldd;
+y202=y25; x202=x4+2.5u; pos202(tthin,90); x241r=w-u;
+x206=.4[x202,x241]; x207=.3[x202,x241]; x205=.2[x202,x241];
+top y205r=x_height; pos205(tthin,-270); y206=.5[y205,y207]; pos206(tthick,-360);
+bot y207r=0; pos207(tmed,-450); x240=.8[x207,x241]; bot y240r=0;
+pos240(tmed,-450); y241=.5bar_height; pos241(tthick,-360);
+x243=.5[x207,x240]; y243=asc_height-y241; z242=.5[z241,z243];
+pos242(.5(tthick+tthin),-315); pos243(tthin,-360);
+x244=.5[x243,x245]; top y244l=asc_height; pos244(tmed,-450); x245=x243+4u; y245=y243;
+pos245(tthin,-540); x246=.5[x207,x243]; bot y246l=-d; pos246(tthinner,-585);
+x203=.4[x202,x207]; y203=.5[y202,y204]; pos203(tthick,0); x204=x202;
+bot y204r=0; pos204(tthin,-90); x201=2x202-x203; y201=y203; pos201(tthin,-180);
+filldraw stroke z25e--z202e{right}...{down}z203e...{left}z204e...z201e...{right}z205e
+ ...{down}z206e...{left}z207e;
+filldraw stroke z207e--z240e{right}...{up}z241e...{z243-z241}z242e...{up}z243e
+ ...{right}z244e...z245e--z246e;
+w:=oldw;
+x250=x244; top y250l=asc_height; pos250(tthin,-90); x251=x245; top y251=h;
+pos251(tthick,90); x252=w-u; y252=x_height; pos252(tthin,0); x253=x252;
+y253=y253r=y253l=0; x253l=x253-.6; x253r=x253+.6;
+filldraw stroke z250e{left}...{right}z251e...{down}z252e--z253e;
+endchar;
+
+cmchar "grantha kshii";
+beginchar(211,3.6x_height#,body_height#+4u#,desc_depth#);
+adjust_fit(0,0);
+callchar:="c";
+tspecs;
+h:=oldh; w:=oldw; d:=oldd;
+y202=y25; x202=x4+2.5u; pos202(tthin,90); x241r=w-u;
+x206=.4[x202,x241]; x207=.3[x202,x241]; x205=.2[x202,x241];
+top y205r=x_height; pos205(tthin,-270); y206=.5[y205,y207]; pos206(tthick,-360);
+bot y207r=0; pos207(tmed,-450); x240=.8[x207,x241]; bot y240r=0;
+pos240(tmed,-450); y241=.5bar_height; pos241(tthick,-360);
+x243=.5[x207,x240]; y243=asc_height-y241; z242=.5[z241,z243];
+pos242(.5(tthick+tthin),-315); pos243(tthin,-360);
+x244=.5[x243,x245]; top y244l=asc_height; pos244(tmed,-450); x245=x243+4u; y245=y243;
+pos245(tthin,-540); x246=.5[x207,x243]; bot y246l=-d; pos246(tthinner,-585);
+x203=.4[x202,x207]; y203=.5[y202,y204]; pos203(tthick,0); x204=x202;
+bot y204r=0; pos204(tthin,-90); x201=2x202-x203; y201=y203; pos201(tthin,-180);
+filldraw stroke z25e--z202e{right}...{down}z203e...{left}z204e...z201e...{right}z205e
+ ...{down}z206e...{left}z207e;
+filldraw stroke z207e--z240e{right}...{up}z241e...{z243-z241}z242e...{up}z243e
+ ...{right}z244e...z245e--z246e;
+small_iito(244,s,h)
+endchar;
+
+cmchar "Tamil ayyatham";
+beginchar(240,asc_height#+2u#,asc_height#,0);
+adjust_fit(0,0); pickup light_rule.nib; autorounded;
+lft x6=hround u; x2=5u-x6; bot y4=0; y2=2u; circle_points; draw_circle;
+transform ta; ta=identity shifted(w-5u,0); transform tb; tb=identity shifted(.5w-2.5u,h-6u);
+picture VA; VA=currentpicture transformed ta;
+picture VB; VB=currentpicture transformed tb;
+addto currentpicture also VA; addto currentpicture also VB;
+endchar;
+
+% following taken directly from cmr's accent.mf
+cmchar "Dot accent";
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(241,5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=.5w; top y2r=h+1;
+if bot y2l<x_height+o+slab: y2l:=min(y2r-eps,x_height+o+slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "grantha u";
+beginchar(242,x_height#,asc_height#,0);
+adjust_fit(0,0);
+x1=u; x2=w-u; top y1r=h; y2=y1; pos1(tthinner,90); pos2(tthinner,90);
+rt x3r=x2; x4=x3; y3=h; y4=h-3u; pos3(tthinner,0); pos4(tthinner,0);
+x5=x2; bot y5l=y4; x6=x5-3u; y6=y5; pos5(tthinner,90); pos6(tthinner,90);
+lft x7l=x6; y7=y4; y8=y3; x8=x7; pos7(tthinner,0); pos8(tthinner,0);
+filldraw stroke z1e--z2e;
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+filldraw stroke z7e--z8e;
+%picture V; transform t; t=identity shifted(-x_height,0);
+%V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+cmchar "grantha uu";
+beginchar(243,1.2x_height#,asc_height#+3u#,0);
+adjust_fit(0,0);
+w:=x_height; h:=asc_height;
+x1=u; x2=w-u; top y1r=h; y2=y1; pos1(tthinner,90); pos2(tthinner,90);
+rt x3r=x2; x4=x3; y3=h; y4=h-3u; pos3(tthinner,0); pos4(tthinner,0);
+x5=x2; bot y5l=y4; x6=x5-3u; y6=y5; pos5(tthinner,90); pos6(tthinner,90);
+lft x7l=x6; y7=y4; y8=y3; x8=x7; pos7(tthinner,0); pos8(tthinner,0);
+filldraw stroke z1e--z2e;
+filldraw stroke z3e--z4e;
+filldraw stroke z5e--z6e;
+filldraw stroke z7e--z8e;
+w:=1.2x_height; h:=asc_height+3u;
+x10=w-u; x11=.5[x10,x12]; y11=y4-3u; y10=.5[y9,y11]; top y9l=h; x9=.5[x8,x10];
+pos9(tthinner,-90); pos10(tthinner,-180); pos11(tthinner,-270);
+y12=y4; x12=x6-2u; pos12(tthinner,-360);
+filldraw stroke z8e{up}...{right}z9e...{down}z10e...{left}z11e...{up}z12e;
+%picture V; transform t; t=identity shifted(-x_height,0);
+%V=currentpicture transformed t; currentpicture:=V;
+endchar;
+
+
diff --git a/Master/texmf-dist/fonts/source/public/wntamil/tamilmax.mf b/Master/texmf-dist/fonts/source/public/wntamil/tamilmax.mf
new file mode 100644
index 00000000000..bfa7b49106e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wntamil/tamilmax.mf
@@ -0,0 +1,446 @@
+def tspecs =
+if callchar = "k":
+% cmchar "Tamil k";
+charspec("k",1.5x_height#,x_height#,0);
+top y2r=top y3r=top y4r=h;
+bot y7=bot y11=0;
+y1=y9=y5=.6x_height;
+y8=.5y1; y10=.5y1;
+y6=.3x_height;
+y22=h;
+x10=w-u; x8=w-x10;
+x3=x5=.6[x8,x10];
+x1=x2-.5hair=x22=.2[x8,x10]; x7=.25[x8,x10];
+x6=x5;
+x4=.9[x8,x10]; x11=.75[x8,x10]; x9=.65[x8,x10];
+z21=z1; x101=x10+.6u; y101=y10;
+%pickup crisp.nib;
+pos1(tthinner,30); pos22(tthinner,30); pos2(.8tmed,90); pos4(.8tmed,90);
+pos3(tthick,0); pos5(tthick,0); pos6(tthick,-10);
+pos7(tthin,-60); pos8(tthinner,-180);pos21(tmed,-210);
+pos9(tmed,-210); pos10(tthick,-340); pos11(tthin,-450);
+pos101(tthickest,-340);
+% show z1,z1r,z1l,z22,z22r,z22l;
+filldraw stroke z1e--z22e;
+filldraw stroke z2e--z4e;
+x65=x11-.075w; y65=y11+.075h; pos65(tthinnest,-540);
+filldraw stroke z3e...z5e...z6e{down}...{left}z7e...{up}z8e...{right}z21e
+ ...z9e{right}...z10e{down}...{left}z11e...z65e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,21);
+% endchar;
+
+elseif callchar = "c":
+charspec("c",1.5x_height#,x_height#,0);
+top y2r=top y3r=top y4r=h;
+bot y7=bot y11=0;
+y1=y9=y5=.6x_height;
+y8=.5y1; y10=.5y1;
+y6=.3x_height;
+y22=h;
+x10=w-u; x8=w-x10;
+x3=x5=.6[x8,x10];
+x1=x2-.5hair=x22=.2[x8,x10]; x7=.25[x8,x10];
+x6=x5;
+x4=.9[x8,x10]; x11=.75[x8,x10]; x9=.65[x8,x10];
+z21=z1; x101=x10+.6u; y101=y10;
+%pickup crisp.nib;
+pos1(tthinner,30); pos22(tthinner,30); pos2(.8tmed,90); pos4(.8tmed,90);
+pos3(tthick,0); pos5(tthick,0); pos6(tthick,-10);
+pos7(tthin,-60); pos8(tthinner,-180);pos21(tmed,-210);
+pos9(tmed,-210); pos10(tthick,-340); pos11(tthin,-450);
+pos101(tthickest,-340);
+% show z1,z1r,z1l,z22,z22r,z22l;
+filldraw stroke z1e--z22e;
+filldraw stroke z2e--z4e;
+x25=x25r=x25l=x5; y25=y21; y25r=y21r; y25l=y21l;
+filldraw stroke z3e...z5e...z6e{down}...{left}z7e...{up}z8e...{right}z21e---z25e;
+penlabels(1,2,3,4,5,6,7,8,21,25);
+% endchar;
+
+elseif callchar = "1":
+
+%cmchar "Tamil n dot";
+charspec("1",3x_height#,x_height#,0);
+%adjust_fit(0,0);
+x1=x81=u; x6=.6x10; x8=.6[x1,x6]; x7=.5[x8,x6];
+x5=.5[x1,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
+x9=.5[x8,x10]; x10=.7w; x12=.6[x8,x10]; x11=.5[x12,x10];
+x13=rt x10r; x14=w-u; x15=x16=.5[x13,x14];
+top y5r=top y9r=top y13r=y16=top y14r=h;
+bot y4r=bot y7r=bot y11r=y15=0;
+y2=y8=y6=y12=y10=.5h;
+y81=y1=y3=.5y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
+pos7(tmed,-450); pos8(tthin,-540); pos9(tmed,-630); pos10(tthicker,-720);
+pos11(tmed,-810); pos12(tthin,-900); pos13(tthin,-990);
+pos14(tthin,-990); pos15(tthicker,0); pos16(tthicker,0);
+if dodraw:
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z9e...{down}z10e
+ ...{left}z11e...{up}z12e...{right}z13e; %---z14e;
+fi
+%filldraw stroke z15e---z16e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+
+elseif callchar = "p":
+
+charspec("p",1.4x_height#,x_height#,0);
+y1=y6=h; y2=y5=bot y3l=bot y4l=0;
+lft x1l=lft x2l=x3=u;
+rt x5r=rt x6r=x4=w-u;
+pos1(tthick,0); pos2(tthick,0); pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0); pos6(tthick,0);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e;
+filldraw stroke z5e---z6e;
+penlabels(1,2,4,6);
+
+elseif callchar = "n":
+
+charspec("n",1.5x_height#,x_height#,.5x_height#);
+x12=u; x11=x1=x2=x3=3u; x4=rt x9r=w-u;
+x7=x5=x6=.4[x1,x9]; x8=.6[x7,x9]; x13=.6[x12,x11]; x10=.5[x7,x8];
+y1=y6=y7=0; top y3r=top y4r=y2=y5=h;
+y8=.55h; y9=.5y8; bot y13l=-d; y10=y11=-.3d; y12=.4[y10,y13];
+pos1(tthinner,0); pos2(tthinner,0); pos3(tmed,90); pos4(tmed,90);
+pos5(tthick,0); pos6(tthick,0); pos7(tthin,180); pos8(tthin,90);
+pos9(tthick,0); pos10(tthin,-90); pos11(tthin,-90); pos12(tthinner,0);
+pos13(tthick,45);
+filldraw stroke z1e--z2e; filldraw stroke z3e--z4e; filldraw stroke z5e--z6e;
+%filldraw stroke z7e{up}...{right}z8e...{down}z9e...{left}z10e...{left}z11e...{down}z12e..z13e;
+penlabels(1,2,4,5,6,8,9,10,11,12,13);
+%endchar;
+
+elseif callchar = "r":
+
+charspec("?",1.125x_height#+2u#,x_height#,0);
+lft x1l=lft x2l=x3=u; x4=w-u; x5=x6=.6w;
+y1=y6=0; y2=y3=y4=y5=h;
+pos1(tthinnest,0); pos2(tthinnest,0); pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0); pos6(tthick,0);
+filldraw stroke z1e---z2e; filldraw stroke z3e---z4e; filldraw stroke z5e---z6e;
+penlabels(1,2,3,4,5,6);
+
+elseif callchar = "r2":
+
+charspec("?",.9x_height#+2u#,x_height#,0);
+lft x1l=lft x2l=x3=u; x4=w-u; x5=x6=.6w;
+y1=y6=0; y2=y3=y4=y5=h;
+pos1(tthinnest,0); pos2(tthinnest,0); pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0); pos6(tthick,0);
+filldraw stroke z1e---z2e; filldraw stroke z3e---z4e; filldraw stroke z5e---z6e;
+penlabels(1,2,3,4,5,6);
+
+elseif callchar="y":
+
+charspec("y",1.5x_height#,x_height#,0);
+x1=x2=u; x8=x9=x10=w-u; x7=x4=x5=x6=.35[x1,x9]; x3=.35[x1,x5];
+y9=y5=y1=h; y2=.3h; y4=.5h; bot y7l=bot y8l=bot y3l=y6=y10=0;
+pos1(.8tmed,0); pos2(.8tmed,0); pos3(tthin,90); pos4(tthinner,180);
+pos5(tthick,0); pos6(tthick,0); pos7(tthin,90); pos8(tthin,90);
+pos9(tthick,0); pos10(tthick,0);
+filldraw stroke z1e--z2e{down}...{right}z3e...{up}z4e;
+filldraw stroke z5e--z6e; filldraw stroke z7e--z8e; filldraw stroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+%endchar;
+
+elseif callchar="a":
+
+charspec("a",2x_height#,x_height#,desc_depth#);
+%adjust_fit(0,0);
+x3=.5[x9,x11]; y1=.8h; y5=y12=h; y2=y4=y6=.6h; y3=.2h; x1=.45[x9,x11];
+x4=x8=.4[x9,x11]; x2=.6[x9,x11]; x5=.6[x9,x11]; x6=.7[x9,x11]; x7=.8[x9,x11]; x11=x12=x13=w-u;
+x9=u; x10=.15[x9,x11]; y8=y13=-d; y7=y3; y9=-.1d; y10=y11=0;
+z20=z1;
+pos1(hair,70); pos2(.8curve,0); pos3(hair,-90); pos4(hair,190);
+pos5(hair,90); pos6(curve,0); pos7(tthickest,-20); pos8(tmed,-90);
+pos9(hair,-180); pos10(hair,90); pos11(hair,90); pos12(.8curve,20);
+pos13(.8curve,20);pos20(hair,135);
+filldraw stroke z1e...z2e...z3e...z4e...z20e...z5e...{down}z7e...{left}z8e...{up}z9e...z10e---z11e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13);
+
+elseif callchar="v":
+
+charspec("v",1.5x_height#,x_height#,0);
+x1=x81=u; x6=.6[x1,x9]; x8=x9=x10=w-u; x7=.4[x5,x6];
+x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y2=.5h; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
+top y5r=y10=h; y9=0; y6=.5h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-450);
+pos8(tthick,-450); pos9(tthick,0); pos10(tthick,0);
+filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
+filldraw stroke z7e--z8e; filldraw stroke z9e--z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+
+
+elseif callchar="l":
+
+charspec("l",1.5x_height#,x_height#,0);
+x81=u; x9=w-u; x6=x7=.55[x81,x9]; x8=x10=.5[x6,x9]; x1=.1[x81,x6];
+x5=.5[x81,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y81=y2=.5h; y1=y3=.5y2; bot y4r=bot y8l=0;
+top y5r=h; top y10l=h; y9=.5h; y6=.6h; y7=.4h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-360);
+pos8(tmed,-270); pos9(tthin,-180); pos10(tmed,-120);
+%filldraw stroke z4e...z1e..z2e..z3e..z4e...{up}z81e..z5e...{down}z6e--z7e{down}...{right}z8e...{up}z9e..z10e;
+penlabels(1,2,3,4,5,6,7,8,9,10);
+
+elseif callchar="m":
+
+charspec("m",1.6x_height#,x_height#,0);
+lft x1l=lft x2l=x3=u;
+rt x5r=w-u; x8=x7=.5w;
+x6=.3[x8,x5]; x4=.8[x8,x5];
+y1=top y6r=h;
+y2=bot y3r=bot y4r=y8=0;
+y5=.5h; y7=.8h;
+pos1(tthick,0); pos2(tthick,0);
+pos3(tthin,-90); pos4(tthin,-90);
+pos5(tthinner,0); pos6(tmed,90);
+pos7(tthick,180); pos8(tthick,180);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e...{up}z5e...{left}z6e...{down}z7e---z8e;
+penlabels(1,2,4,5,6,7,8);
+
+elseif callchar="T":
+
+charspec("7",1.75x_height#,x_height#,0);
+lft x1l=lft x2l=x3=u; x4=w-u;
+y1=h; y2=bot y3l=bot y4l=0;
+pos1(tthick,0); pos2(tthick,0);
+pos3(tthin,90); pos4(tthin,90);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e;
+penlabels(1,2,4);
+
+elseif callchar="L":
+
+charspec("9",1.75x_height#,x_height#,0);
+x81=x1=u; x6=x7=x8=x9=.55w; x11=x12=.8w; x10=w-u;
+x3=x5=.5[x1,x6]; x2=x4=.5[x1,x3];
+bot y4r=y6=y7=y11=0; top y5r=y8=top y9r=top y10r=y12=h;
+y1=y81=y3=.5y2; y2=.6h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0);
+pos4(tthin,-90); pos81(tthinner,-180); pos5(tthick,-270);
+pos6(tthin,-360); pos7(tthin,0); pos8(tthin,0);
+pos9(tthin,90); pos10(tthin,90); pos11(tthick,0); pos12(tthick,0);
+if dodraw:
+filldraw stroke z1e...{right}z2e...{down}z3e...{left}z4e..z81e...{right}z5e...{down}z6e;
+filldraw stroke z7e---z8e; filldraw stroke z9e---z10e;
+filldraw stroke z11e---z12e;
+fi
+penlabels(1,2,3,4,5,6,8,10,11,12);
+
+elseif callchar="N":
+
+charspec("N",2x_height#,x_height#,0);
+x81=u; x1=.05[x81,x6]; x6=.6w; x8=.6[x81,x6]; x7=.5[x8,x6];
+x5=.5[x81,x6]; x3=.5[x1,x8]; x4=x2=.5[x1,x3];
+x13=rt x6r; x14=w-u; x15=x16=.5[x13,x14];
+top y5r=top y13r=y16=top y14r=h;
+bot y4r=bot y7r=y15=0;
+y8=y6=.5h; y2=bar_height; y81=y2;
+y1=y3=.5y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
+pos81(tthinner,-180); pos5(tmed,-270); pos6(tthicker,-360);
+pos7(tmed,-450); pos8(tthin,-540);
+pos13(tthin,-630);
+pos14(tthin,-630); pos15(tthicker,0); pos16(tthicker,0);
+if dodraw:
+filldraw stroke z4e...{up}z1e...{right}z2e...{down}z3e...{left}z4e...{up}z81e...{right}z5e
+ ...{down}z6e...{left}z7e...{up}z8e...{right}z13e; %---z14e;
+%filldraw stroke z15e---z16e;
+fi
+penlabels(1,2,3,4,5,6,7,8,13,14,15,16);
+
+elseif callchar="R":
+
+charspec("R",1.3x_height#,x_height#,desc_depth#);
+x1=x11=u; x7=w-u; x3=x5=.4[x1,x7]; x2=.5[x1,x3]; x6=.5[x4,x7]; x8=.9[x1,x7];
+rt x12r=.5u; x9=x10=.05[x1,x7]; x4r=x3l;
+top y2l=top y6l=h; y8=y1=y5=.05h; y9=-.4d; y10=-.8d; y12=-.6d;
+y11=y3=y4=.7h; y7=.4h;
+pos1(tthin,0); pos11(tthin,0); pos2(tmed,-90); pos3(tthick,-180);
+pos4(tthinnest,0); pos5(tthick,-180); pos6(tthin,-90); pos7(tthick,-180);
+pos8(tthin,-245); pos9(tthin,-245); pos12(tthin,-180); pos10(tthin,-135);
+filldraw stroke z1e--z11e{up}...{right}z2e...{down}z3e--z5e;
+%filldraw stroke z4e{up}...{right}z6e...{down}z7e..z8e..z9e...{down}z12e..z10e;
+penlabels(1,2,3,5,6,7,8,9,10,11,12);
+
+elseif callchar="g":
+
+charspec("2",1.5x_height#,x_height#,0);
+lft x1l=lft x2l=x3=u; x11=x12=x13=w-u;
+x8=.7[x1,x12]; x5=x6=x7=x10=.4[x1,x8]; x9=.5[x1,x12]; % x7=x6r; will line up
+x4=.8[x1,x13]; x77=.6[x7,x8];
+y1=bot y10l=y9=bot y11l=y12=0;
+y2=top y3r=top y4r=y5=y13=h;
+y6=.35h; y8=.4h; y77=.65h;
+pos1(tthinnest,0); pos2(tthinnest,0);
+pos3(tthin,90); pos4(tthin,90);
+pos5(tthick,0);
+% pos6(tthick,45);
+x6l+.5tthick=x6=x6r-.5tthick; y6l+.5tthick=y6=y6r-.5tthick;
+y7l=y6r;
+pos77(tthin,90);
+pos7(tthinner,90); pos8(tthicker,45); pos9(tthick,0);
+pos10(tthin,90); pos11(tthin,90);
+pos12(tthick,0); pos13(tthick,0);
+filldraw stroke z1e---z2e;
+filldraw stroke z3e---z4e;
+filldraw stroke z5e---z6e;
+filldraw stroke z7e..z77e{right}...z8e{down}...z9e;
+filldraw stroke z10e---z11e;
+filldraw stroke z12e---z13e;
+penlabels(1,2,4,5,6,8,9,10,11,13);
+
+
+elseif callchar = "e":
+
+charspec(6,1.6x_height#,x_height#,0);
+y6=y7=y8=h; y9=bot y4r=0; y2=.6h; y1=.3h; y3=.3h; y5=y2; %y5=.85h;
+x5=u; x7=w-u; x8=x9=x7-2u; x6=x3=x1+3u; x1=x5+hair; x2=x4=x1+1.5u;
+z20=z1;
+pos1(tthinnest,180); pos2(tmed,90); pos3(tthick,0); pos4(tmed,-90); pos20(tthin,-160);
+pos5(tthinner,-180); pos6(tthin,-270); pos7(tthin,-270);
+pos8(tthick,0); pos9(tthick,0);
+filldraw stroke z1e..z2e..z3e..z4e..z20e...{right}z6e---z7e;
+filldraw stroke z8e---z9e;
+penlabels(1,2,3,4,5,6,7,8,9);
+
+elseif callchar = "u":
+
+charspec(4,2x_height#,x_height#,0);
+x6=.55w; x4=x9=.1w; x1=x8=x10=.15w; x3=.2w; x2=.3w; x5=x7=.4w; x11=.9w;
+y10=y11=0; y5=h; y1=.85h; y2=y4=y6=.65h; y3=.45h;
+y7=y8=.25h; y9=.125h;
+z20=z1;
+pos1(tmed,45); pos2(tmed,0); pos3(tthinner,-90); pos4(tthinnest,-180);
+pos20(tthinnest,-225); pos5(tthinner,-270); pos6(tthick,-360); pos7(tmed,-430);
+pos8(tthin,-450); pos9(tthinnest,-360); pos10(tthin,-290);
+pos11(tthin,-290);
+filldraw stroke z1e..z2e..z3e..z4e..z20e...{right}z5e;
+filldraw stroke z5e{right}...{down}z6e...{left}z7e;
+filldraw stroke z7e{left}...{left}z8e...{down}z9e;
+filldraw stroke z9e{down}...{right}z10e---z11e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11);
+
+elseif callchar = "S":
+
+charspec("S",2.2x_height#,asc_height#,desc_depth#);
+x1=x81=u; x6=.45[x1,x9]; x8=x9=x10=w-u; x7=.4[x5,x6];
+x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y2=.5x_height; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
+top y5r=y10=x_height; y9=0; y6=y2;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tmed,-450);
+pos8(tthick,-450); pos9(tthick,0); pos10(tthick,0);
+filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
+x40=w-3.5u; y40=y7; pos40(tmed,-450); y41=.5bar_height; x41=w-u;
+pos41(tthick,-360); x43=.5[x7,x40]; y43=h-y41; z42=.5[z41,z43];
+pos42(.5(tthick+tthin),-315); pos43(tthin,-360);
+x44=.5[x43,x45]; top y44l=h; pos44(tmed,-450); x45=x43+4u; y45=y43;
+pos45(tthin,-540); x46=.5[x7,x43]; bot y46l=-d; pos46(tthinner,-585);
+filldraw stroke z7e--z40e{right}...{up}z41e...{z43-z41}z42e...{up}z43e
+ ...{right}z44e...z45e--z46e;
+penlabels(1,2,3,4,5,6,7,40,41,42,43,45,46);
+
+elseif callchar = "s":
+
+charspec("s",2.4x_height#,x_height#,0);
+x6=u; y6=.5h; x8=x9=.43w; x12=x13=.7w; x15=w-u;
+x7=x3=x1=.5[x6,x9]; x2=x1-1.5u; x4=x1+1.5u; y2=y4=.5[y1,y3];
+top y3l=bar_height; bot y1l=0; z5=z1; top y7l=top y11l=top y16r=h;
+y8=.65h; y9=0; bot y14r=0; x11=.5[x9,x14]; x14=.4[x13,x15]; x16=.65[x13,x15];
+y15=y6; y12=y8; y13=1.5u; z10=z8;
+pos1(tthin,90); pos2(tthin,0); pos3(tthin,-90); pos4(tmed,-180);
+pos5(tthin,-270); pos6(tthin,-360); pos7(1.2tthin,-450); pos8(tmed,-540);
+pos9(tmed,-540); pos10(tthin,0); pos11(tthin,-90); pos12(tmed,-180);
+pos13(tmed,-180); pos14(.8tmed,-90); pos15(tthin,0); pos16(tthinner,45);
+filldraw stroke z1e...{up}z2e...{right}z3e...{down}z4e...{left}z5e
+ ...{up}z6e...{right}z7e...{down}z8e--z9e;
+filldraw stroke z10e{up}...{right}z11e...{down}z12e--z13e...{right}z14e
+ ...{up}z15e...{left}z16e;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16);
+
+elseif callchar = "j":
+%cmchar "grantha j";
+charspec("j",1.75x_height#,x_height#,.8x_height#);
+top y7r=y10l=h; y4=y8=y9=.2h; bot y15r=bot y19l=-d; y12=.9bar_height;
+y21=.25h; y13=-.2d; y14=-.6d; y16=-.8d; y17=y18=-.3d; y20=-.2d;
+y1=y3=.4h; y2=.7h; y11=.75h; y85=0;
+x14r=x1r=u; x11=x12l=w-u; x8=x9=x17=x18=.55[x1,x11]; x85=x8;
+x7=.6[x1,x8]; x10=.5[x9,x11]; x3=.6[x1,x8]; x2=x4=.5[x1,x3];
+x13=x2; x15=x7-.7u; x16=x17; x19=.5[x18,x11]; x20=.95x11; x21=.9x11;
+x77=x8; y77=.6h; z99=z77;
+pos77(tthick,-360); pos99(tthick,0);
+pos1(tthinner,180); pos2(tthin,90); pos3(tmed,0); pos4(tthin,-90);
+z55=z1; pos55(tthinner,-180);
+pos7(tthick,-270); pos8(tmed,-405);
+pos9(tmed,-45); pos10(tthin,-90); pos11(tthick,-180); pos12(tthick,-200);
+pos21(tthin,-240); pos13(tthinner,-240); pos14(tthin,-180);
+pos15(tthick,-90); pos16(tthick,-45); pos17(tthick,-45);
+pos18(tthick,-45); pos19(tthin,-270); pos20(tmed,225);
+pos85(tthin,-270);
+x65=x19; y65=y17; pos65(tthin,-90); x66=x12; y66=.5[y65,y19]; pos66(tmed,-180);
+z67=.5[z15,z65]; pos67(tthin,-315);
+filldraw stroke z1e..z2e{right}..z3e{down}..z4e{left}..z55e...{right}z7e...{down}z77e---z8e;
+filldraw stroke z9e---z99e{up}...z10e{right}...{down}z12e...{left}z85e{left}..z14e{down}...z15e{right}
+ ...{right}z65e...{down}z66e...{left}z19e...z67e;
+penlabels(1,2,3,4,55,7,8,9,10,11,12,21,13,14,15,65,66,19,67);
+
+elseif callchar="h":
+
+charspec("h",3x_height#,x_height#,desc_depth#);
+x1=x81=u; x6=.6[x1,x8]; x8=1.5x_height-u; x7=.4[x5,x6];
+x5=.5[x1,x6]; x3=.4[x1,x6]; x2=x4=.5[x1,x3];
+y2=.5h; y1=y3=y81=.5y2; bot y4r=bot y7r=bot y8r=0;
+top y5r=h; y6=.5h;
+pos1(tthinner,180); pos2(tthin,90); pos3(tthick,0); pos4(tthin,-90);
+pos81(tthin,-180); pos5(tmed,-270); pos6(tthick,-360); pos7(tthick,-450);
+pos8(tthick,-450);
+filldraw stroke z1e..z2e..z3e..z4e..z81e..z5e...{down}z6e...{left}z7e;
+filldraw stroke z7e--z8e;
+
+x101=x111=x8; x107=w-2u; x103=x105=.4[x101,x107]; x102=.5[x101,x103];
+x106=.5[x104,x107]; x108=.9[x101,x107];
+rt x112r=u; x109=x110=x112+.75u; x104r=x103l;
+top y102l=top y106l=h; y108=y101=y105=0; y109=-.4d; y110=-.8d; y112=-.6d;
+y111=y103=y104=.7h; y107=.4h; y131=y109+.2u; x131=.3[x108,x109]; pos131(tthinner,-270);
+pos101(tthin,0); pos111(tthin,0); pos102(tmed,-90); pos103(tthick,-180);
+pos104(tthinnest,0); pos105(tthick,-180); pos106(tthin,-90); pos107(tthick,-180);
+pos108(tthin,-245); pos109(tthin,-245); pos112(tthin,-180); pos110(tthin,-135);
+filldraw stroke z101e--z111e{up}...{right}z102e...{down}z103e--z105e;
+filldraw stroke z104e{up}...{right}z106e...{down}z107e..z108e...{left}z131e...z109e...{down}z112e..z110e;
+penlabels(101,102,103,104,105,106,107,108,109,110);
+
+
+
+
+fi
+
+enddef;
+
+def aipoints =
+x209=x204=-x_height+u; x201=x203=x205=x204+1.5u; x202=x201+1.5u; x207=0;
+y209=.9bar_height; y207=asc_height-y209;
+y208=.5[y209,y207]; x206=x208=x210=-.5x_height+.5u;
+y201=y205=y206-.5u; y204=y202=y201-1.5u; y203=y202-1.5u;
+if goleft:
+top y206l=asc_height; bot y210r=0;
+pos201(tthin,-90); pos202(tmed,-180); pos203(tthin,-270);
+pos204(tthin,-360); pos205(tthin,-450); pos206(tthin,-450);
+pos207(tthick,-540); pos208(tthin,-585); pos209(tthin,-540);
+pos210(tthin,-450);
+else:
+top y206r=asc_height; bot y210l=0;
+pos201(tthin,90); pos202(tmed,0); pos203(tthin,-90);
+pos204(tthin,-180); pos205(tthin,-270); pos206(tthin,-270);
+pos207(tthick,-360); pos208(tthin,-405); pos209(tthin,-360);
+pos210(tthin,-270);
+fi
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/wntamil/wntamil.mf b/Master/texmf-dist/fonts/source/public/wntamil/wntamil.mf
new file mode 100644
index 00000000000..48fb61b9c3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wntamil/wntamil.mf
@@ -0,0 +1,16 @@
+% This is WNTAMIL as of July 21, 1988
+% Washington Tamil is designed for use with
+% the Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+
+
+mode_setup; font_setup;
+
+input tamil
+
+ font_slant slant;
+ font_x_height x_height#;
+ font_normal_space 9u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/wntamil/wntml10.mf b/Master/texmf-dist/fonts/source/public/wntamil/wntml10.mf
new file mode 100644
index 00000000000..dfa6ee08e9b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wntamil/wntml10.mf
@@ -0,0 +1,76 @@
+% This is WNTML10.MF (Washington Tamil 10pt) as of July 21, 1988.
+% This is based on CMR10.MF in text format, as of May 5, 1986.
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WNTML"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+generate wntamil % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/compilefonts b/Master/texmf-dist/fonts/source/public/wsuipa/compilefonts
new file mode 100644
index 00000000000..8dbba3d9df2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/compilefonts
@@ -0,0 +1,56 @@
+#! /bin/sh
+#
+#Here is a shell script, compilefonts, to call mf to generate a set of gf
+#fonts in the desired sizes, e.g. for a screen previewer or possibly for a
+#400 or 600 dpi printer, and then to call gftopk to convert to pk format
+#and finally to remove the gf fonts. I have also included a help file,
+#mf.help. Please feel free to edit these in any way you see fit. I have
+#tested the script and can guarantee that it works.
+#
+#Chet Creider
+#<creider@csd.uwo.ca>
+#
+# Compile wusipa fonts for a previewer.
+sizes="10"
+fonts="wsuipa8 wsuipa9 wsuipa10 wsuipa11 wsuipa12 wsuipa17 \
+ wbxipa8 wbxipa9 wbxipa10 wbxipa11 wbxipa12 wbxipa17 \
+ wslipa8 wslipa9 wslipa10 wslipa11 wslipa12 wslipa17"
+
+mode=OneTwoZero
+dpi=120
+
+for f in $fonts; do
+ for s in $sizes; do
+ virmf "&cm \\mode=$mode; mag=$s/10; batchmode; input $f" >/dev/null
+ mag=`expr $s \* $dpi / 10`
+ gftopk $f.${mag}gf >/dev/null
+ rm $f.${mag}gf
+ done
+done
+
+------------------------------------8<------------------------------------
+The 300pk fonts in this directory should be sufficient for use with most
+standard 300dpi laserprinters. If you use a recent version of dvips, it
+will call metafont on the fly to generate the fonts it needs as long as
+it can find the .mf files. If you use xdvi or maxview as your
+previewer, the 300pk fonts should be sufficient. For other previewers,
+however, you will probably have to generate your own screen fonts. The
+easiest way to use metafont to do this is with the script, compilefonts,
+based on a script, CompileFonts, by James Clark, the author of groff.
+However, it is essential that the mode chosen be one which is in
+/usr/local/lib/tex/mf/inputs/modes.mf (or wherever on one's installation
+this file is kept). E.g. for 120dpi fonts for dvipage under Sunview,
+choose mode=OneTwoZero. For 110dpi fonts for dvivga under Xenix, use
+mode=IBMVGA and dpi=110. If one is using dvivga under MS-DOS, it will
+be necessary to rename the fonts because of filename limitations under
+MS-DOS. Use the directory structure and filenames in your dvivga
+installation as a model.
+
+Let me repeat again that the modes MUST be defined in modes.mf. If
+you need the above modes and they are not present, ask your system
+administrator to obtain a more up-to-date modes.mf file. (One should
+always be available at a nearby CTAN archive site.)
+
+It is recommended that compilefonts be invoked in the background as
+the process can be lengthy (15 minutes on a Sun IPC). To do this,
+type "compilefonts &" at your Unix shell prompt.
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/iaccent.mf b/Master/texmf-dist/fonts/source/public/wsuipa/iaccent.mf
new file mode 100644
index 00000000000..2258e5fa1f8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/iaccent.mf
@@ -0,0 +1,306 @@
+% This is IACCENT.MF in text format, as of April 22, 1989.
+% This file contains accents common to text roman and italic fonts.
+% Character codes \0022--\0030, \0040, \0136--\0137, \0175--\0177 are generated.
+
+% (Actually the accents in positions \0040, \0137, and \0175 are not generated
+% unless |ligs>0|, since other symbols are substituted
+% for those accents in non-ligature fonts.)
+
+
+cmchar "Reversed Apostrophe";
+beginchar(oct"163",5u#,asc_height#,0);
+italcorr asc_height#*slant+.5dot_size#-2u#;
+adjust_fit(0,0);
+x1-.5dot_size=hround(.5w-.5dot_size); y1+.5dot_size=h;
+def mymoc(suffix $,@)(expr dot_size,jut,depth) = % reversed comma
+ pickup fine.nib; pos$(dot_size,90);
+ pos@1(vair,90); pos@2(vair,180); pos@3(vair,-45);
+ z@1r=z$r; rt x@2r=hround(x$-.5dot_size-jut)-2eps; x@3=x$+.5u;
+ y@2=1/3[y@1,y@3]; bot y@3l=vround(y$-.5dot_size-depth);
+ y_:=ypart((z@1{left}...z@2{down}...z@3)
+ intersectiontimes (z$l{left}..{right}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{right}..subpath (0,y_) of (z$l{left}..{right}z$r)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{down}...z@3e; % tail
+ penlabels(@1,@2,@3); enddef;
+
+if monospace: mymoc(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: mymoc(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+penlabels(1); endchar;
+
+cmchar "Corner accent";
+beginchar(oct"153",7u#,min(asc_height#,2x_height#),0);
+adjust_fit(0,0);
+pickup light_rule.nib;
+x1=1u; x2=x3=w-x1;
+ y1=h+eps=y2; y3=.87x_height;
+ draw z1--z2; draw z2--z3; % corner
+penlabels(1,2,3); endchar;
+
+cmchar "Scandinavian circle accent";
+beginchar(oct"170",13u#+4/3(asc_height#-x_height#)*slant,asc_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5); circ_vair=vround min(vair,(h-x_height)/6+.5);
+penpos1(circ_vair,90); penpos3(circ_vair,-90);
+penpos2(circ_hair,180); penpos4(circ_hair,0);
+x2r=hround(.5w-1.5u-.5circ_hair);
+x4r=w-x2r; x1=x3=.5w; y1r=h+apex_o; y2=y4=.5[y1,y3];
+y3r=vround(1/3[x_height,h]+apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Mid-Tilde (squiggle) accent";
+beginchar(oct"173",12u#,x_height#+.5dot_size#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta; theta=angle(1/6(8u-vair),1/4(h-.62x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=h;
+ bot y1l=vround(bot y1l+min(.6[.62x_height,h],y3l-.2vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(.75[.62x_height,h]-vair);
+ top y2r=top y5=h; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Polish hook accent";
+beginchar(oct"176",8u#,0,.875desc_depth#);
+adjust_fit(0,0);
+x1=.5w+.5u;
+if serifs: pickup crisp.nib; pos1(stem,0); pos2(stem,0);
+ pos3(vair,90); pos4(stem,0); pos5(vair,-90);
+ x1=x2; z3l=z2l; x4=x2+1.5u; x5=x3-1.5u;
+ bot y1=-o; bot y2=-vround 2/7d-o; y4=.5[y3,y5]; bot y5=-d-o;
+ filldraw stroke z1e--z2e; % stem
+ filldraw stroke z3e{right}...z4e{down}...{left}z5e; % hook
+else: pickup fine.nib; pos1(vair,0); top y1=-o-2;
+ pos2(.5[vair,stem],0); bot y2=-d-o; x2=x1-1.25u;
+ filldraw stroke z1e--z2e; fi % diagonal
+currentpicture:= currentpicture reflectedabout((.5w,0),(.5w,d));
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Half-length Mark";
+beginchar(oct"160",5.8u#,x_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.1u; x2=w-x1; x3=.5w;
+y2=good.y h+o=y1; bot y3=.57h;
+filldraw z1---z2---z3---cycle; % triangle
+labels(1,2,3); endchar;
+
+cmchar "Length Mark";
+beginchar(oct"161",5.8u#,x_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.1u=lft x5; x2=w-x1=x6; x3=.5w=x4;
+top y4=vround .43h; y5=y6=0;
+y2=good.y h+o=y1; bot y3=.57h;
+filldraw z1---z2---z3---cycle; % triangle
+filldraw z4---z5---z6---cycle; % triangle
+labels(1,2,3,4,5,6); endchar;
+
+cmchar "Subscript Bridge";
+beginchar(oct"147",7u#,0,1.1desc_depth#);
+adjust_fit(0,0); pickup light_rule.nib;
+lft x1=hround 1.1u; x2=x1; x4=x5=w-x1;
+y2=good.y -.3d-o; bot y1=-d; y4=y2; y5=y1;
+draw z2---z1; % stems and bar
+draw z2---z4;
+draw z5---z4; % stems and bar
+labels(1,2,4,5); endchar;
+
+cmchar "Under-ring";
+beginchar(oct"171",13u#+4/3(asc_height#-x_height#)*slant,0,1.3desc_depth#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric circ_hair,circ_vair;
+circ_hair=hround min(hair,u+.5);
+circ_vair=vround min(vair,(-d-x_height)/6+.5);
+penpos1(vair,90); penpos3(vair,-90);
+penpos2(hair,180); penpos4(hair,0);
+x2r=hround(.5w-1.5u-.5hair);
+x4r=w-x2r; x1=x3=.5w; y1r=-.2d-apex_o; y2=y4=.5[y1,y3];
+y3r=vround(-d-apex_o);
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Subscript Umlaut (double dot) accent";
+numeric dot_diam#,dot_diam;
+dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"162",9u#,0,min(desc_depth#,10/7x_height#+.5dot_diam#));
+dot_diam=max(tiny.breadth,hround(max(dot_size,cap_curve)-2stem_corr));
+italcorr h#*slant+.5dot_diam#-2.25u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(dot_diam,0); pos2(dot_diam,90);
+x1=x2=2.75u; top y2r=-.3d-1;
+if bot y2l<-desc_depth-o-slab:
+ y2l:=min(y2r-eps,-desc_depth-o-slab+.5tiny); fi
+y1=.5[y2l,y2r]; dot(1,2); % left dot
+pos3(dot_diam,0); penpos4(y2r-y2l,90); y3=y4=y1; x3=x4=w-x1;
+dot(3,4); % right dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "Subscript Left Half-ring";
+beginchar(oct"172",13u#+4/3(asc_height#-x_height#)*slant,0,1.2desc_depth#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+penpos1(cap_hair+stem_corr,90); penpos3(cap_hair+stem_corr,-90);
+penpos2(cap_hair+stem_corr,180);
+x2r=hround(.5w-1.5u-.5hair);
+x1=x3=.58w; top y1r=-.15d-apex_o; y2=.5[y1,y3];
+y3r=vround(-d-apex_o);
+%penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3); % bowl
+penstroke z1e{left}...{down}z2e{down}...{right}z3e;
+penlabels(1,2,3); endchar;
+
+cmchar "Under tilde (squiggle) accent";
+beginchar(oct"174",12u#,0, 1.1desc_depth#);
+italcorr d#*slant-u#;
+adjust_fit(0,0);
+if serifs: numeric theta;
+theta=angle(1/6(8u-vair),1/3(h+desc_depth));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta+90); pos2(vair,theta+90);
+ pos3(vair,theta+90); pos4(vair,theta+90);
+ z2-z1=z4-z3=(mid_width-crisp)*dir theta;
+ lft x1r=w-rt x4l=hround 1.5u; top y4r=-.3d+vair;
+ bot y1l=vround(bot y1l+min(.4[-d,-.15d],y3l-.35vair)-top y1r);
+ pair delta; ypart delta=3(y3l-y1l); delta=whatever*dir theta;
+ filldraw z1l..controls(z1l+delta)and(z3l-delta)..z3l..z4l
+ --z4r..controls(z4r-delta)and(z2r+delta)..z2r..z1r--cycle; % stroke
+else: pickup fine.nib; pos1(vair,180); pos2(vair,90);
+ pos3(.5[vair,slab],90); pos4(vair,90); pos5(vair,180);
+ lft x1r=w-rt x5l=hround 1.5u; x2-x1=x3-x2=x4-x3=x5-x4;
+ bot y1=bot y4l=vround(-.76d-vair);
+ top y2r=top y5=-.2d; y3=.5[y2,y4];
+ filldraw stroke z1e{up}...z2e{right}..z3e..{right}z4e...{up}z5e; fi % stroke
+penlabels(1,2,3,4,5); endchar;
+
+cmchar "Subscript Hachek (check) accent";
+beginchar(oct"175",9u#,0,desc_depth#);
+h':=vround -d; % height of circumflex being inverted
+if serifs: italcorr h#*slant+.5hair#-1.75u#;
+ adjust_fit(0,0);
+ pickup crisp.nib; pos2'(.4[vair,curve],90); top y2'r=h;
+ pos2(.4[vair,curve],90); x2=.5w;
+ x1=w-x3=good.x 2.25u; top y1=top y3=-.2d; y1-y2=-.5(y2'-d);
+ pos1(hair,angle(z2-z1)+90); pos3(hair,angle(z3-z2)+90);
+ filldraw stroke z1e--z2e--z3e; % diagonals
+else: italcorr h#*slant-.5stem#+.5vair#-.75u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(vair,0); pos3(vair,0); x1=w-x3;
+ pos2(stem,0); bot y2=vround(1/12[-d,h']+o); x2=.5w;
+ top y1=top y3=-.1d+o; lft x1l=hround(rt x2r-3.25u-.5vair);
+ z0=whatever[z1r,z2r]=whatever[z2l,z3l];
+ y4l=y4r=y2; x4l=good.x .2[x2l,x2]; x4r=w-x4l;
+ filldraw z4l--z1l--z1r--z0--z3l--z3r--z4r--cycle; fi % diagonals
+penlabels(0,1,2,3,4); endchar;
+
+
+cmchar "subscript arch (inverted breve)";
+beginchar(oct"177",9u#,0,desc_depth#);
+italcorr h#*slant+.5vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,-180); pos3(vair,0);
+top y1=top y3=-d; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,90); x2=.5w;
+top y2r=vround max(-.15d-o-tiny,-.68mid_thickness);
+filldraw stroke z1e{up}...z2e{right}...{down}z3e; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Vertical Stroke (superior)";
+beginchar(oct"150",4u#,asc_height#,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=x_height-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+cmchar "Vertical Stroke (inferior)";
+beginchar(oct"151",4u#,.25x_height#,desc_depth#); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; bot y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+cmchar "Syllabicity Mark";
+beginchar(oct"152",4u#,0,1.4desc_depth#); pickup rule.nib;
+x1=x2=good.x .5w; top y1=0-eps; bot y2=-d;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+cmchar "left pointer";
+beginchar(oct"166",8.2u#,asc_height#,0);
+italcorr h#*slant-u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x2=hround 1.5u-eps; x1=x3=w-x2;
+y1=h; y3=.7h;
+y2=.5[y1,y3];
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "right pointer";
+beginchar(oct"167",8.2u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+y1=h; y3=.7h;
+y2=.5[y1,y3];
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "down pointer";
+beginchar(oct"165",8.2u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x3=w-x1;
+x2=.5[x1,x3];
+y1=asc_height=y3; y2=1.1x_height;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "up pointer";
+beginchar(oct"164",8.2u#,asc_height#,0);
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround 1.5u-eps; x3=w-x1;
+x2=.5[x1,x3];
+y1=1.1x_height=y3; y2=asc_height;
+draw z1--z2--z3; % diagonals
+labels(1,2,3); endchar;
+
+cmchar "Bar down sign";
+beginchar(oct"155",8u#,x_height#,0); pickup rule.nib;
+x1=x2=.5w;
+lft x3=hround 0+eps; x4=w-x3; top y1=top y3=top y4=h-stem_corr;
+bot y2=0+u;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Bar up sign";
+beginchar(oct"154",8u#,x_height#,0); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h-stem_corr;
+lft x3=hround 0+eps; x4=w-x3; bot y2=bot y3=bot y4=0+u;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+
+cmchar "Bar right sign";
+beginchar(oct"157",8u#,x_height#,0); pickup rule.nib;
+lft x1=lft x2=hround 0+eps=lft x3; top y1=h-stem_corr;
+x4=w-x1; bot y2= u; y3=.5[y1,y2]=y4;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Bar Left sign";
+beginchar(oct"156",8u#,x_height#,0); pickup rule.nib;
+x1=x2=w-x4=x3; top y1=h-stem_corr;
+lft x4=hround 0+eps; bot y2=u;
+y3=.5[y1,y2]=y4;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/igreekl.mf b/Master/texmf-dist/fonts/source/public/wsuipa/igreekl.mf
new file mode 100644
index 00000000000..5dfc2602c30
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/igreekl.mf
@@ -0,0 +1,441 @@
+% This is IGREEKL.MF in text format, as of Apr. 22, 1989.
+% This lowercase Greek alphabet was prepared by D. E. Knuth in December, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% (It has been designed for math formulas, not Greek texts.)
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Character codes \0013--\0047 are generated.
+
+cmchar "Lowercase Greek epsilon";
+beginchar(oct"030",8.25u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2l=h+o;
+pos3(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),180);
+lft x3l=hround(1.25u);
+ pos9(bot_thickness,angle(-2u,-h));
+ rt x9l=hround w-.75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9r:=good.x x9r;
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x9];
+pos7(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),180);
+lft x7l=hround(.75u);
+lft x5=min(hround 4u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+numeric bulb_diam[];
+ bulb_diam1=flare-.75(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,0); pos1(hair,0);
+ lft x0r=hround w-1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ filldraw stroke term.e(8,9,right,1,4); % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Lowercase Greek reversed epsilon";
+beginchar(oct"31",8.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2l=h+o;
+pos3(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),0);
+rt x7r=hround(w-.75u);
+lft x5=min(hround 4u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+numeric bulb_diam[];
+ bulb_diam1=flare-.75(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(8,9,left,1,4); % lower terminal
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Right-hook lowercase Greek reversed epsilon";
+beginchar(oct"32",11.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(.3[curve,cap_curve]-stem_corr,0);
+rt x3r=hround(.78w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(.3[curve,cap_curve]-stem_corr,0);
+rt x7r=hround(.78w-.75u);
+lft x5=min(hround 4u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+numeric bulb_diam[];
+ bulb_diam1=flare-.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos0(bulb_diam1,180); pos1(hair,180);
+ lft x0r=hround 1.25u; y0=min(.9h-.5bulb_diam1,.75h+.5bulb_diam1);
+ bulb(2,1,0); % upper bulb
+ pos9(bot_thickness,angle(-2u,-h));
+ lft x9r=hround .75u; top y9l=vround .25h-o;
+ y9r:=good.y y9r-eps; x9l:=good.x x9l;
+ filldraw stroke term.e(8,9,left,1,4); % lower terminal
+% right hook
+pos10(hair,0); pos11(hair,0); pos12(hair,0);
+pos13(hair,90); pos14(hair,180);
+z10=z3; top y11=h; rt x11r=hround(x3r+2u)=rt x12r;
+y12=.65[y11,y13]=y14; x13=.5[x11,x14];
+bot y13l=.5h; x14l=w;
+filldraw stroke z10e--z11e;
+filldraw stroke z11e--z12e...z13e...z14e;
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14); endchar;
+
+cmchar "Lowercase Greek closed reversed epsilon";
+beginchar(oct"33",8.5u#,x_height#,0);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib; pos2(top_thickness,90); top y2r=h+o;
+pos3(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),0);
+rt x3r=hround(w-1.25u);
+pos4(vair,-90); pos5(vair,-90);
+pos5'(slab,180); y5'=y5; x5'=0;
+pos6(mid_thickness,90); x2=x6=x8=.5[1.5u,x7];
+pos7(max(.6fine.breadth,.35[curve,cap_curve]-stem_corr),0);
+rt x7r=hround(w-.75u);
+lft x5=min(hround 4u,lft x6)-eps;
+pos8(bot_thickness,-90); bot y8r=-o;
+y3=.6[top y4l,bot y2l]; y7=.5[bot y6l,top y8l];
+top y5l=vround(.54h+.5vair); y5r=y6l;
+x4=1/3[x5,x3l]; z4=z5+whatever*(150u,h);
+filldraw stroke z8e{left}...{up}z5'e...z2e
+&pulled_super_arc.e(2,3)(.5superpull)
+ & z3e{down}...z4e---z5e; % upper bowl
+filldraw z5r--z6l--z6r--z5l---cycle; % middle tip
+filldraw stroke pulled_super_arc.e(6,7)(.5superpull)
+ & pulled_super_arc.e(7,8)(.5superpull); % lower bowl
+penlabels(2,3,4,5,6,7,8,,5'); endchar;
+
+cmchar "Lowercase Greek theta";
+beginchar(oct"123",8.25u#,asc_height#,0);
+italcorr .7asc_height#*slant+.5curve#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l;
+filldraw stroke z2'e--z4'e; % bar
+math_fit(-.3asc_height#*slant-u#+.5curve#,ic#-.5u#);
+penlabels(1,2,3,4); endchar;
+
+cmchar "Lowercase Greek iota";
+beginchar(oct"051",5u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo;
+x2=x1-.25u; x4=w; hook_out(2,3,4)(skewed); % closing hook
+filldraw circ_stroke z1e{down}...{-u,-x_height}z2e; % stem
+math_fit(0,ic#); penlabels(1,2,3,4); endchar;
+
+cmchar "Lowercase Greek lambda";
+beginchar(oct"62",10.5u#,asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e; % short diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase crossed Greek lambda";
+beginchar(oct"063",10.5u#,asc_height#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e; % short diagonal
+pickup fine.nib;
+pos7(bar,125); pos8(bar,125);
+x7=x1; y7 = .57h; top y8=.9h;
+x8=.5[x5,x4];
+filldraw stroke z7e--z8e; % crossbar
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Script v (Lowercase Greek upsilon)";
+beginchar(oct"131",9u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase Greek chi";
+beginchar(oct"133",9.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant+.5hair#-1.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180);
+x1-.5hair=hround-.5hair; x6=w-x1; x2=w-x5=u;
+y1=y2l-h/8; top y2r=h+oo; bot y5l=-d-oo; y6=y5r+h/8;
+z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0);
+numeric theta; theta=angle(z5'-z2')+90;
+pos3(stem,theta); pos4(stem,theta);
+y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5'];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l}
+ ..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks
+x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d;
+numeric theta; theta=angle(z7-z8)-90;
+pos7(hair,theta); pos8(hair,theta);
+filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal
+math_fit((desc_depth#-x_height#)*slant+ic#,ic#);
+penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar;
+
+cmchar "Lowercase Greek omega";
+beginchar(oct"076",11u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height;
+y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90);
+pos3(vstem,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vstem,270); pos8(hair,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair);
+x3=.4[x2,x4]; x7+.25u=.6[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5w+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw circ_stroke z1e{2(x2-x1),y2-y1}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}...{up}z8e; % right arc
+v_bulb(8,9); % closing bulb
+math_fit(-bar_height#*slant,2/3ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Closed lowercase Greek omega";
+beginchar(oct"077",11u#,x_height#,0);
+italcorr x_height#*slant;
+adjust_fit(0,0); pickup fine.nib;
+pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height;
+y1-.5hair=h; x1=.5w; pos1(hair,angle(2(x1-x2),y1-y2)+90);
+pos3(vstem,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vstem,270); pos8(hair,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair);
+x3=.4[x2,x4]; x7+.25u=.6[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5w+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw circ_stroke z1e{left}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}...{up}z8e...{left}z1e;
+ % right arc
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter baby gamma";
+beginchar(oct"041",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(1.5fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+2.5outer_jut+xjut; x4r=r-letter_fit-2outer_jut;
+y1=y2=h; y3=y4=.3h; z11=z3;
+x10=.5[x3,x4]; y10r=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+penpos10(alpha2*stem2,-90); penpos11(alpha2*stem2,180);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+filldraw stroke pulled_arc.e(4,10) & pulled_arc.e(10,11);% lower bowl
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); fi % upper right serif
+penlabels(0,1,2,3,4,10,12,13,24,34); endchar;
+
+cmchar "The letter IPA Gamma";
+beginchar(oct"040",if serifs: 9.5u# else:9u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant-.05u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=fudged.stem-4stem_corr; stem2=min(fudged.hair,stem1);
+outer_jut=.75jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.1u+outer_jut; x2r=r-letter_fit-.3u-outer_jut-xjut;
+x3l=l+letter_fit+2.2outer_jut+xjut; x4r=r-letter_fit-2.2outer_jut;
+y1=y2=h; y3=y4=-.25d; z11=z3;
+x10=.5[x3,x4]; y10r=-d;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+penpos10(alpha2*stem2,-90); penpos11(alpha2*stem2,180);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.2[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+filldraw stroke pulled_arc.e(4,10) & pulled_arc.e(10,11);% lower bowl
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+jut+.5u+1<=lft x2'l-jut-xjut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+jut+.5u+1<=lft x4'l-jut-xjut: inner_jut2=jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); fi % upper right serif
+penlabels(0,1,2,3,4,10,12,13,24,34); endchar;
+
+cmchar "Lowercase Greek gamma";
+beginchar(oct"037",10u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(hair,180); pos2(vstem+dw,90);
+pos4(hair,0); pos5(vair,-90); pos6(hair,-180); pos7(hair,-180);
+bot y1=.5772156649h; top y2r=h+oo; y4=y6=-.5d;
+bot y5r=-d-o; top y7=h;
+lft x1r=hround(.5u-.5hair); x2=3u; rt x4r=hround(w-2.5u); x5=.5[x4,x6];
+rt x4r-lft x6r= hround 3/4[hair,stem] + eps; rt x7l=hround(w-.5u);
+if x4l<x6l: x4l:=x6l:=x5; fi
+pos3(vair,angle(z4-z2)+90); x3=superness[x2,x4]; y3=superness[y4,y2];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4-z2}
+ ...z4e{down}...{left}z5e; % arc
+filldraw stroke z5e{left}...z6e{up}..{2(x7-x6),y7-y6}z7e; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase Greek alpha";
+beginchar(oct"002",11u#,x_height#,0);
+italcorr max(1/3x_height#*slant+.5hair#+.5u#,x_height#*slant-.5u#);
+adjust_fit(0,0); pickup fine.nib;
+pos0(2hair,0); pos1(2vair,-90); pos2(curve,-180); pos3(vair,-270);
+z4=(w-3.25u,9/16h); z5=(w-2.75u,.5[vair,y4]);
+numeric theta; theta=angle(z4-z5)-90;
+pos4(stem,theta); pos5(stem,theta);
+pos6(vair,90); pos7(hair,180);
+rt x0r=hround(w-u); x1=x3=.5w-u; lft x2r=hround(1.5u-.5curve);
+x6=w-u; x7+.5hair=hround(w+.5hair-epsilon);
+y0=vround .9[bar_height,h]; bot y1r=bot y6l=-oo;
+y2=.5[y1,y3]; top y3r=h+oo; y7=1/4bar_height;
+filldraw stroke z0e{down}...pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ ...z4e---z5e...z6e{right}...{up}z7e; % diagonal, bowl, and hook
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase Greek beta";
+beginchar(oct"011",9.5u#,asc_height#,desc_depth#);
+italcorr .5[x_height#,asc_height#]*slant-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(1.5hair,180); pos1(1.5hair,180); pos2(vair,90);
+pos3(stem,0); pos4(vair,-90); pos5(hair,-180);
+pos6(vair,-270); pos7(curve,-360); pos8(vair,-450); pos9(1.25hair,-540);
+x0=x1=x9; lft x0l=hround(1.5u-.5hair); x2=x4=x6=x8=.5w+.25u;
+rt x3r=hround(w-1.5u); rt x7r=hround(w-1.5u+.5curve); rt x5l=hround(x4-u);
+bot y0=-d; y1=top y6r=x_height; top y2r=h+oo; y3=.5[y2,y4];
+y5=.5[y4,y6]; top y6r-bot y4r=vstem+eps; bot y8=-oo; y7=y9=.5[y6,y8];
+if y6l<y4l: y6l:=y4l:=y5; fi
+filldraw stroke z0e---z1e...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{up}z5e; % stem and upper bowl
+filldraw stroke z5e{up}...pulled_arc.e(6,7)
+ & pulled_arc.e(7,8)...{up}z9e; % lower bowl
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lowercase Greek phi";
+beginchar(oct"103",11u#,asc_height#,desc_depth#);
+italcorr .7x_height#*slant+.5curve#-u# if math_fitting:-.5u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric light_curve; light_curve=hround(.5[stem,curve]-2stem_corr);
+pos1(vair,90); pos2(light_curve,180); pos3(vair,270); pos4(light_curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5light_curve); x4=w-x2;
+top y1=x_height+oo; y2=y4=.5[y1,y3]; bot y3=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos5(hair,0); pos6(hair,0); x5=x6=.5w; top y5=.9h; bot y6=-d-oo;
+filldraw stroke z5e--z6e; % stem
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Lowercase Greek sigma";
+beginchar(oct"117",10.25u#,x_height#,0);
+italcorr x_height#*slant+.5stem#-u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vstem,90); pos2(stem,0); pos3(vair,-90);
+pos4(stem,-180); pos5(vstem,-270); pos6(vstem,-270);
+x1=x3=x5=.5[x2,x4]; rt x2r=hround(w-2.5u);
+lft x4r=hround(1.5u-.5curve);x6=w-1.5u;
+top y1r=h; y2=y4=.5[y1,y3]; bot y3r=-oo; y5=y6=y1;
+filldraw circ_stroke z6e..pulled_arc.e(5,4) & pulled_arc.e(4,3)
+ & pulled_arc.e(3,2) & pulled_arc.e(2,1); % ear and bowl
+penlabels(1,2,3,4,5,6); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/iparoman.mf b/Master/texmf-dist/fonts/source/public/wsuipa/iparoman.mf
new file mode 100644
index 00000000000..8f2366a3332
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/iparoman.mf
@@ -0,0 +1,33 @@
+% This is IPAROMAN.MF in text format, as of Jan 13, 1988.
+% The Computer Modern Roman family of fonts (by D. E. Knuth, 1979--1985)
+
+mode_setup; font_setup;
+
+input iromanl; % lower case (minuscules)
+input igreekl; % lower case Greek letters
+input iromanp; % ampersand, question marks, currency sign
+input iaccent; % accents common to roman and italic text
+
+font_slant slant; font_x_height x_height#;
+ font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+% This is CSC.MF in text format, as of May 13, 1986.
+% Caps and Small Caps in Computer Modern Roman
+font_slant slant; font_x_height x_height#;
+ font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#; font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+%%% fine lower
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+font_setup; % now try again with |lower| settings
+input iromanu; % majuscules (in lowercase positions)
+bye.
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/iromanl.mf b/Master/texmf-dist/fonts/source/public/wsuipa/iromanl.mf
new file mode 100644
index 00000000000..d9880e9121a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/iromanl.mf
@@ -0,0 +1,2236 @@
+% This is IROMANL.MF in text format, as of Apr. 29, 1989.
+% Computer Modern Roman lower case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+% Character codes \0141 through \0172 are generated.
+
+cmchar "The letter inverted a";
+beginchar(oct"000",9u#,x_height#,0);
+bh#:=min(bar_height#,1.14x_height#-bar_height#); define_pixels(bh);
+italcorr 1/3[bh#,x_height#]*slant+.5stem#-serif_fit#-2u#;
+adjust_fit(0,serif_fit# if serifs: if hair#+.5stem#>1.5u#:-.25u# fi\\fi);
+pickup fine.nib; top y3r=h+vround 1.5oo;
+if serifs: pos1(flare,180); pos2(hair,180);
+ pos3(vair,90); lft x1r=hround max(u,2.1u-.5flare); x3=.5w-.5u;
+ y1=min(bh+.5flare+2vair+2,.9[bh,h]-.5flare);
+ bulb(3,2,1); % bulb
+else: pos1(5/7[vair,flare],95); x1l=good.x 1.5u; x1r:=good.x x1r;
+ pos3(1/8[vair,thin_join],90);
+ x3=.5w-.2u; top y1r=vround .82[bh,top y3r];
+ filldraw stroke term.e(3,1,left,.9,4); fi % terminal
+pos4(stem,0); rt x4r=hround(w-2.5u+.5stem); y4=1/3[bh,h];
+pos5(stem,0); x5=x4; y5=max(.55bh,2vair);
+filldraw stroke super_arc.e(3,4)&z4e..z5e; % arc and stem
+pos6(.3[thin_join,vair],90); x6=x4; bot y6=bh;
+pos7(hround(curve-2stem_corr),180);
+lft x7r=hround max(.5u,1.5u-.5curve); y7=1/3[top y8l,top y6r];
+pos8(vair,270); x8l=.5w-.75u; bot y8r=-oo;
+pos9(thin_join,360); z9l=z5l;
+(x,y8r)=whatever[z8l,z9l]; x8r:=max(x,x8-u);
+{{interim superness:=more_super;
+ filldraw stroke z9e{down}...z8e{left}...{up}z7e&super_arc.e(7,6)}}; % bowl
+if serifs: numeric shaved_stem; shaved_stem=hround(stem-3stem_corr);
+ if hair#+.5stem#>1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=.2[.5tiny,bh];
+ pos11(shaved_stem,0); rt x11r=hround(w-.25u); bot y11=0;
+ pos12(shaved_stem,0); x11=x12; top y12=slab+eps;
+ filldraw z5'l---z10l...z11l{right}--z11r
+ --z12r{left}...z10r+.75(z12-z11)---z5'r--cycle; % foot
+ else: pickup crisp.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; y10=1/3bh;
+ pos11(.2[vair,stem],90); x11r=.5[x10r,x12r]; bot y11l=-vround .5oo;
+ pos12(hair,180); rt x12l=hround(w-.1u); y12=max(y10,y11+vair);
+ pos13(hair,180); x13=x12; top y13=max(vround .6bh,top y12);
+ (x',y11l)=whatever[z11r,z12r]; x11l:=max(x',x10);
+ filldraw stroke z5'e---z10e...z11e{right}...z12e---z13e; fi % hook
+else: numeric shaved_stem; shaved_stem=hround(stem-stem_corr);
+ pickup tiny.nib; pos5'(shaved_stem,0); rt x5'r=fine.rt x5r; y5'=y5;
+ pos10(shaved_stem,0); x10=x5'; bot y10=0;
+ filldraw stroke z5'e--z10e; fi % base of stem
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+cmchar "letter script a";
+beginchar(oct"001",9u#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w;
+pos5(stem,0); pos6(vair,90);
+pos7(hair,180);
+y5=.25x_height; bot y6l=-oo; y7=.2x_height;
+x6=x5+1.5u;
+filldraw stroke z5e{-u,-x_height}...z6e{right}...{up}z7e;
+%hook_out(5,6,7); % closing hook
+filldraw stroke z4e--z5e; % stem
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Inverted script letter a";
+beginchar(oct"03",10u#+serif_fit#,x_height#,0);
+italcorr 1/3x_height#*slant+.5hair#+.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w;
+pos5(stem,0); pos6(vair,90);
+pos7(hair,180);
+y5=.25x_height; bot y6l=-oo; y7=.2x_height;
+x6=x5+1.5u;
+filldraw stroke z5e{-u,-x_height}...z6e{right}...{up}z7e;
+filldraw stroke z4e--z5e; % stem
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter crossed b";
+beginchar(oct"005",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+pickup crisp.nib; pos15(bar,90); pos16(bar,90);
+top y15r=.8[y2,y1]=top y16r;
+lft x15=.25u; rt x16=.2[x5,x1];
+filldraw stroke z15e--z16e; % bar
+penlabels(0,1,2,3,4,5,6,7,8,15,16); endchar;
+
+cmchar "The letter barred b";
+beginchar(oct"06",10.5u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(3u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.85u+.5curve,w-1.1u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+% bar
+pos10(bar,90); pos11(bar,90);
+x10=hround .1u; x11=w-x10;
+y10=y11=y5;
+filldraw stroke z10e--z11e;
+penlabels(0,1,2,3,4,5,6,7,8,10,11); endchar;
+
+cmchar "The letter slashed b";
+beginchar(oct"07",10u#+serif_fit#,body_height#,paren_depth#);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=asc_height;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,asc_height)--(edge,0))intersectionpoint(z3l{up}...
+{right}z4l));
+y2=ypart(((edge,asc_height)--(edge,0))intersectionpoint(z6l{left}...
+{up}z7l));
+pickup tiny.nib; filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+% slash
+adjust_fit(0,0); pickup rule.nib;
+rt x11=hround(w-.1u)+eps; top y11=h+eps;
+lft x12=hround u-eps; bot y12=-d-eps;
+draw z11--z12; % diagonal
+penlabels(0,1,2,3,4,5,6,7,8,11,12); endchar;
+
+cmchar "The letter hooktop b";
+beginchar(oct"010",10u#+serif_fit#,asc_height#,0);
+italcorr .5x_height#*slant+min(.5curve#-u#,-.25u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=.7h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair,90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l),1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x4,x5r]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x6,x5r]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)&pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+y2=ypart(((edge,h)--(edge,0))intersectionpoint(z6l{left}...{up}z7l));
+pickup tiny.nib; filldraw stroke z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+%if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.35[x1,x5]; top y10l=h+o+1;
+ pos11(hair,0); rt x11r=hround(w-2.25u); y11=.85h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke z0e{up}...pulled_super_arc.e(1,10)(.4superpull);
+ % arc and stem
+penlabels(0,1,2,3,4,5,6,7,8,10,11,12); endchar;
+
+cmchar "The letter open o (turned c)";
+beginchar(oct"075",8u#,x_height#,0);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=.45(w+u); x4=.5(w+u);
+top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.9u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi % arc and lower terminal
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(0,1,2,3,4,5); endchar;
+
+
+cmchar "The letter curly-tail c";
+beginchar(oct"013",8u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5h;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,h]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w+.2u);
+ y5=max(good.y(.4bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w+.2u);
+ y5r=good.y(y5r+1/4bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi%arc and lower terminal
+numeric edge; edge=lft x3l;path edge_path;
+edge_path=(edge,h)--(edge,0);
+ pos6(hair,70); x6l=.4[x4,x5]; y6=.35h;
+ pos8(hair,180); x8l= lft x3r; bot y8=-.75d;
+ pos7(hair,180); x7=.54[x3r,x4r];
+y7=ypart(edge_path intersectionpoint(z3r{down}...{right}z4r));
+ filldraw stroke pulled_super_arc.e(5,6)(.9superpull){left}
+ ...z7e--z8e;
+penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter stretched c";
+beginchar(oct"14",9u#,asc_height#,desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(.7cap_curve,90); pos4(.7cap_curve,270);
+x2=x4=.5(w+u); top y2r=vround(h+1.5oo); bot y4r=-d-oo;
+pos3(.9cap_curve,180); lft x3r=hround max(.6u,1.35u-.5cap_curve); y3=.5h;
+pos3'(.9cap_curve,180); lft x3'r=hround max(.6u,1.35u-.5cap_curve);
+y3'=.25h;
+pos1(.8cap_curve,80);
+ rt x1r=hround(w-.6u); top y1r=vround .82(asc_height);
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.8cap_curve,275); rt x5r=hround(w-.5u);
+ top y5l=vround -.01d; y5r:=good.y y5r;
+ x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.9superpull)..z3'e
+ ...pulled_super_arc.e(3',4)(.9superpull) & p.e; % arc and lower terminal
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter slashed c";
+beginchar(oct"12",8u#,.75asc_height#,.5desc_depth#);
+italcorr x_height#*slant-.2u#;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+pickup fine.nib; pos2(vair',90); pos4(vair',270);
+x2=x4=.5(w+u); top y2r=vround(x_height+1.5oo); bot y4r=-oo;
+pos3(curve,180); lft x3r=hround max(.6u,1.35u-.5curve); y3=.5x_height;
+if serifs: pos1(hair,0); pos0(flare,0);
+ y1=min(bar_height+.5flare+2vair'+2,.9[bar_height,x_height]-.5flare);
+ rt x1r=hround(w-.7u); bulb(2,1,0); % bulb
+ pos5(hair,0); rt x5r=hround(w-.5u);
+ y5=max(good.y(.5bar_height-.9),y4l+vair');
+ (x,y4l)=whatever[z4r,z5l]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ ..tension .9 and 1..{x5-x4,5(y5-y4)}z5e; % arc and lower terminal
+else: pos1(4/7[vair',flare],80);
+ rt x1r=hround(w-.6u); top y1r=vround .82[bar_height,top y2r];
+ filldraw stroke term.e(2,1,right,.8,4); % upper terminal
+ pos5(.6[vair',flare],275); rt x5r=hround(w-.5u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ forsuffixes e=l,r: path p.e; p.e=z4e{right}..tension .9 and 1..z5e;
+ if angle direction 1 of p.e>75:
+ p.e:=z4e{right}..tension atleast.9 and 1..{dir 75}z5e; fi endfor
+ filldraw stroke pulled_super_arc.e(2,3)(.7superpull)
+ & pulled_super_arc.e(3,4)(.5superpull) & p.e; fi %arc and lower terminal
+% slash
+adjust_fit(0,0); pickup rule.nib;
+rt x11=hround(w-.1u)+eps; top y11=h+eps;
+lft x12=hround u-eps; bot y12=-d-eps;
+draw z11--z12; % diagonal
+penlabels(0,1,2,3,4,5,11,12); endchar;
+
+cmchar "The letter barred d";
+beginchar(oct"16",10.5u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-3u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.8u; top y4r=x_height+oo;
+lft x5r=hround max(1.85u-.5curve,1.1u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+% bar
+pos10(bar,90); pos11(bar,90);
+x10=hround .1u; x11=w-x10;
+y10=y11=y5;
+filldraw stroke z10e--z11e;
+penlabels(0,1,2,3,4,5,6,7,10,11); endchar;
+
+cmchar "The letter slashed d";
+beginchar(oct"17",10u#+serif_fit#,body_height#,paren_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=asc_height;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,asc_height)--(edge,0))intersectionpoint(z3l{up}...
+{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+% slash
+adjust_fit(0,0); pickup rule.nib;
+rt x11=hround(w-.1u)+eps; top y11=h+eps;
+lft x12=hround u-eps; bot y12=-d-eps;
+draw z11--z12; % diagonal
+penlabels(0,1,2,3,4,5,6,7,11,12);endchar;
+
+cmchar "The letter hooktop d";
+beginchar(oct"20",12u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(.76w-2.5u+.5stem'); top y1=.7h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(.76w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); % lower serif
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.5[x1,x11]; top y10l=h+o+1;
+ pos11(hair,0); rt x11r=hround(w-.5u); y11=.85h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke z0e{up}...pulled_super_arc.e(1,10)(.4superpull);
+ % arc and stem
+penlabels(0,1,2,3,4,5,6,7,10,11,12); endchar;
+
+cmchar "The letter right-tailed d";
+beginchar(oct"021",12.5u#+serif_fit#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(.8w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(.8w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=-1/2d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop);fi% upper serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos20(stem,180); z2=z20;
+ pos15(vair,-90); pos16(hair,0); pos17(flare,0);
+ x15=.5[x16,x20]; bot y15l=-d+oo; y16=y20+.15dot_size;
+ rt x16r=hround(w-.1u);
+ bulb(15,16,17); % arc and bulb
+ filldraw stroke z20e{down}..{right}z15e{up};
+penlabels(0,1,2,3,4,5,6,7,15,16,17,20); endchar;
+
+cmchar "The letter crossed d";
+beginchar(oct"015",10u#+serif_fit#,asc_height#,0);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+pickup crisp.nib; pos15(bar,90); pos16(bar,90);
+top y15r=.8[y2,y1]=top y16r;
+lft x15=hround(w-.25u); lft x16=.23[x5r,x1];
+filldraw stroke z15e--z16e; % bar
+penlabels(0,1,2,3,4,5,6,7,15,16); endchar;
+
+cmchar "The letter (schwa) turned e";
+beginchar(oct"025",7.25u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(.5u,1.25u-.5left_curve); x2=.5w+.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair',270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((0,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter right-hook schwa (turned e)";
+beginchar(oct"026",10.4u#+max(.85u#,.6curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(.8right_curve,0);
+pos2(vair,90); pos3(left_curve,180);
+y1=.7h; top y2r=h+vround 1.5oo;
+rt x1r=hround min(w-.5u,w-u+.5right_curve);
+lft x3r=hround max(3.2u,3.7u-.25left_curve); x2=.61w+.26u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4r=-oo; x4=x2+.25u;
+if serifs: pos4(vair,270); pos5(hair,360);
+ y5=max(good.y(.5bar_height-.9),y4l+vair); x5r=x1r;
+ (x,y4l)=whatever[z4r,z5]; x4l:=min(x,x4l+.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5r=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+pos0(hair,0); pos1'(hair,0);
+z1'=z1; bot y0=0-oo; x0l=hround(x3r-1.65u)=x12l;
+filldraw stroke z1'e--z0e; % crossbar
+% hook
+pos12(hair,0); pos13(vair',90); pos14(vair,180);
+y14=.5[y0,y13]; x13=.5[x0,x14];
+y12=.7[y0,y13];
+bot y13l=.45h; x14=0;
+filldraw stroke z14e{up}..z13e{right}...{down}z12e---z0e;
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(0,1,2,3,4,5,12,13,14); endchar;
+
+
+cmchar "The letter reversed e";
+beginchar(oct"027",7.15u#+max(.75u#,.5curve#),x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant+.5min(curve#-1.5u#,0);
+adjust_fit(if monospace: .25u#,.5u# else: 0,0 fi);
+numeric left_curve,right_curve;
+left_curve=right_curve+6stem_corr=curve if not serifs: -3stem_corr fi;
+if right_curve<tiny.breadth: right_curve:=tiny.breadth; fi
+if left_curve<tiny.breadth: left_curve:=tiny.breadth; fi
+pickup tiny.nib; pos1(right_curve,180);
+pos2(vair,90); pos3(left_curve,0);
+y1=good.y bar_height; top y2r=h+vround 1.5oo; y0l=bot y1;
+rt x1r=hround min(.5u,u+.5right_curve);
+lft x3r=hround max(w-.75u,w-1.25u-.5left_curve); x2=.5w-.25u;
+{{interim superness:=more_super;
+ filldraw stroke super_arc.e(1,2)}}; % right bowl
+y3=.5[y2,y4]; bot y4l=-oo; x4=x2-.25u;
+if serifs: pos4(vair',-90); pos5(hair,180);
+ y5=max(good.y(.5bar_height-.9),y4r+vair); x5r=x1r;
+ (x,y4r)=whatever[z4r,z5]; x4l:=min(x,x4l-.5u);
+ filldraw stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ ...{x5-x4,5(y5-y4)}z5e; % left bowl, arc, and terminal
+else: pos4(vair,270);
+ filldraw stroke super_arc.e(2,3) & super_arc.e(3,4); % left bowl and arc
+ pickup fine.nib; pos4'(vair,270); z4=z4';
+ pos5(.5[vair,flare],275); rt x5l=hround(w-.6u);
+ y5r=good.y(y5r+1/3bar_height-y5); y5l:=good.y y5l; x5l:=good.x x5l;
+ filldraw stroke term.e(4',5,right,1,4); fi % terminal
+path testpath; testpath=super_arc.r(2,3) & super_arc.r(3,4);
+y1'r=y0r=y0l+.6[thin_join,vair]; y1'l=y0l; x1'l=x1'r=x1;
+forsuffixes $=l,r:
+ x0$=xpart(((w,y0$)--(x1,y0$)) intersectionpoint testpath); endfor
+fill stroke z0e--z1'e; % crossbar
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "The letter eth (crossed o)";
+beginchar(oct"023",9u#,asc_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=.62h+vround 1.5oo; y3r=-oo;
+y2=y4=.31h-vair_corr; y2l:=y4l:=.32h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos5(stem,0); penpos6(stem,0);
+x5l = x4l; y5 =vround(y4+.2h);
+x6l=x2; top y6=h;
+penstroke z4e..z5e..z6e;
+%penstroke pulled_arc.e(4,5)&z5e--z6e;
+pickup fine.nib;
+pos7(bar,125); pos8(bar,125);
+x7r=x2l; y7 = .75h; top y8=h;
+x8=x4;
+filldraw stroke z7e--z8e;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Variant letter g";
+beginchar(oct"034",10u#+serif_fit#,x_height#,desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,h)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib;
+pos8(hround(hair-stem_corr),0); pos7'(stem',0);
+z7'=z1; x8r=x7'r; top y8=h+oo;
+filldraw stroke z7'e--z8e; % point
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4);fi % tail
+penlabels(0,1,2,3,4,5,6,7,8,9,10,11); endchar;
+cmchar "Variant letter hooktop g";
+beginchar(oct"35",12u#+serif_fit#,asc_height#,1.1desc_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u# if serifs:+.5u# fi;
+adjust_fit(0,serif_fit# if serifs: -.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(.8w-2.5u+.5stem');
+numeric edge; edge=lft x2l;
+path edge_path; edge_path=(edge,x_height)--(edge,0);
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),2/3[lft x2,edge]); y3=bar_height;
+x4l=.5(.8w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=vround 1/3vair;
+lft x7l=edge; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{left}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{right}...{up}z7e; % bowl
+%y1=ypart(edge_path intersectionpoint(z3l{up}...{left}z4l));
+top y1=.8h;
+y0=ypart(edge_path intersectionpoint(z7l{down}...{left}z6l));
+pickup tiny.nib; bot y2=if serifs: -.25d else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: pickup tiny.nib;
+ pos9(vair,-90); x9=.5[x2,x10]; bot y9r=-d-o-1;
+ pos10(hair,-180); lft x10r=hround u; y10=-.75d+.5flare;
+ pos11(flare,-180); z11r=z10r;
+ bulb(9,10,11); filldraw stroke super_arc.e(2,9); % tail
+else: pickup fine.nib; pos2'(stem,0); z2'=z2;
+ z2''r=z2'r; z2''=z2'; z2''l=(x2'l,0);
+ pos9(vair,-90); x9=4.5u; bot y9r=-d-o-1;
+ pos10(.5[vair,flare],-90); lft x10=hround 1.25u;
+ y10r=good.y -5/6d; y10l:=good.y y10l;
+ filldraw stroke z2'e..z2''e&super_arc.e(2'',9)
+ & term.e(9,10,left,.9,4);fi % tail
+% hooktop
+pickup tiny.nib;
+ pos13(vair,-90); x13=.5[x1,x14]; top y13l=.9h-o;
+ pos14(hair,0); rt x14r=hround(w-.4u); y14=.78h;
+ pos15(flare,0);
+ pos13'(vair,90); z13'=z13;
+ bulb(13',14,15); % bulb
+filldraw stroke pulled_arc.e(1,13); % arc and stem
+penlabels(0,1,2,3,4,5,6,7,9,10,11,12,13,14); endchar;
+
+cmchar "The ligature h-v";
+beginchar(oct"42",14u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=.72w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+% redefinition of h_stroke
+penpos4(x3r-x3l,0); x4=x3; bot y4=0;
+y3=1/3[bar_height,x_height];
+penpos2''(x2r-x2l,0); x2''=x2; y2''=1/8[bar_height,x_height];
+filldraw stroke z2''e--z2e;
+penpos55(min(rt x2r-lft x2l, thin_join)-fine,180);
+pickup fine.nib;
+rt x55l=tiny.rt x2r; y55=y2'';
+pos51(vair,90); pos3'(x3r-x3l+tiny,0); z3'=z3;
+x51=.5[rt x55l, rt x3'r]; top y51r=x_height+oo;
+(x50,y51l)=whatever[z51r,z55l]; x51l := x50;
+filldraw stroke z55e{up}...{right}z51e & {{interim
+superness := hein_super; super_arc.e(51,3')}};
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut);fi % lower left serif
+%
+%"lowercase Greek upsilon";
+%
+pickup fine.nib; interim superness:=more_super;
+pos13(stem,-180); x13r=x3l; bot y13=.5x_height;
+pos12(2.2vair,-180);
+y12r=y3l; x12=x3;
+pos12'(2.2vair,-180); z12'=z12;
+pos14(1.5vair,-90); pos15(hair,0);
+x14=.67w+u;
+rt x15=hround(w-.5u); bot y14r=-oo;
+y15=.67x_height;
+filldraw stroke z12e{-u,-x_height}...super_arc.e(13,14)
+ ..tension atleast 1.05..{up}z15e; % left stem and arc
+v_bulb(15,16); % closing bulb
+penlabels(1,2,3,4,10,11,12,13,14,15,16); endchar;
+
+cmchar "The letter turned h";
+beginchar(oct"046",10u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=asc_height; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.3asc_height),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.3asc_height),180);fi
+currentpicture:= rvchar;
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter crossed h";
+beginchar(oct"043",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+pickup crisp.nib; pos5(bar,90); pos6(bar,90);
+top y5r=.8[y2,y1]=top y6r;
+lft x5=.25u; rt x6=.2[x3,x1];
+filldraw stroke z5e--z6e; % bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter hooktop h";
+beginchar(oct"044",10u#,asc_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=.7h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); % lower right serif
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.4[x1,x3]; top y10l=h+o+1;
+ pos11(hair,0); rt x11r=hround(w-2u); y11=.84h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke pulled_super_arc.e(1,10)(.4superpull);
+ % arc and stem
+penlabels(1,2,3,4,10,11,12); endchar;
+
+cmchar "The letter hooktop heng";
+beginchar(oct"45",10u#,asc_height#,1.1desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=.7h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.4[x1,x3]; top y10l=h+o+1;
+ pos11(hair,0); rt x11r=hround(w-2u); y11=.84h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke pulled_super_arc.e(1,10)(.4superpull);
+ % arc and stem
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x4,x16r]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; rt x17r=x2r;
+ (x,y15r)=whatever[z15l,z4l]; x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke z4e{down}...pulled_super_arc.e(4,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,10,11,12,15,16,17); endchar;
+
+cmchar "The letter barred i";
+numeric thickness; thickness=if hefty:bar else:.7[hair,stem] fi;
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+beginchar(oct"47",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(dot_diam,0); pos4(dot_diam,90);
+if serifs: x3r=max(x1r,x1+.5(dot_diam-tiny)-.2jut) else: x3=x1-.5 fi;
+top y4r=h+1;
+if bot y4l-top y1<slab: y4l:=min(y4r-eps,y1+tiny+slab); fi
+x3=x4; y3=.5[y4l,y4r]; dot(3,4); % dot
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+pickup crisp.nib; pos5(.9thickness,90); pos6(.9thickness,90);
+top y5r=top y6r=vround(.35h+.5thickness); rt x6=hround(w-.5u)+eps;
+if monospace: x6=w-x1 else: lft x5=hround .2u-eps fi;
+filldraw stroke z5e--z6e; % bar
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter barred dotless i";
+numeric thickness; thickness=if hefty:bar else:.7[hair,stem] fi;
+beginchar(oct"50",5u#,min(asc_height#,10/7x_height#+.5dot_diam#),0);
+define_whole_blacker_pixels(dot_diam);
+italcorr h#*slant-serif_fit# + .5dot_diam# -2u#;
+adjust_fit(serif_fit#+stem_shift# if monospace:+.25u#fi,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,.95jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,.9jut); fi % lower serif
+pickup crisp.nib; pos5(.9thickness,90); pos6(.9thickness,90);
+top y5r=top y6r=vround(.35h+.5thickness); rt x6=hround(w-.1u)+eps;
+if monospace: x6=w-x1 else: lft x5=hround .2u-eps fi;
+filldraw stroke z5e--z6e; % bar
+penlabels(1,2,5,6); endchar;
+
+cmchar "The letter dotless barred j";
+beginchar(oct"054",5.5u#,x_height#,desc_depth#);
+italcorr h#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+2stem_shift# if monospace:+\\.5u# fi,
+ serif_fit#-2stem_shift# if monospace:-.5u# fi);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+rt x1r=hround(.5w+.25u+.5stem'); x1=x2;
+top y1=x_height if serifs: +min(oo,serif_drop) fi; bot y2=-1/3d;
+filldraw stroke z1e--z2e; % stem
+if serifs:
+dish_serif(1,2,c,1/3,jut,d,1/3,jut);
+%sloped_serif.l(1,2,a,1/3,1.1jut,serif_drop); % upper serif
+ pickup tiny.nib; pos5(vair,-90); pos6(hair,-180); pos7(flare,-180);
+ x5=.5[x2,x6r]; bot y5r=-d-oo; y6-.5flare=-.88d;
+ if monospace: lft x6r=0 else: z6r=z7r; rt x7l=floor .75u fi;
+ (x,y5r)=whatever[z5l,z2l]; x5r:=max(x,.5[x6r,x5]);
+ filldraw stroke z2e{down}...z5e{left}; bulb(5,6,7); % arc and bulb
+else: pickup fine.nib; pos2'(stem',0); z2'=z2;
+ pos6(.2[vair,stem'],-90); pos7(vair,-90);
+ lft x7r=hround -.75u; bot y7r=vround 5/6(-d-oo);
+ (x,y7l)=whatever[z7r,z3]; x7l:=x;
+ z5r=z2'r; (x2'l,y5l)=whatever[z7l,z5r]; x5l=x2'l; y5=y5r;
+ x6r=.5[x7r,x5r]; x6l:=.5[x7l,x5l]; bot y6r=-d-oo;
+ filldraw stroke z2'e..{down}z5e & super_arc.e(5,6)
+ & z6e{left}..z7e; fi % arc and terminal
+pickup crisp.nib;
+pos3(bar,90); pos4(bar,90);
+rt x4=hround(w-if monospace:.75u+1 else: 1/3u fi);
+top y3r=top y4r=vround(0+bar); lft x3=hround(.5u-1);
+filldraw stroke z3e--z4e; % bar
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter tilde l";
+beginchar(oct"55",12u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+%
+% "Mid-Tilde (squiggle) accent";
+if serifs: numeric theta;
+theta=angle(1/6(8u-vair),1/4(x_height+.5dot_size-.62x_height));
+ pickup crisp.nib; numeric mid_width; mid_width=.4[vair,stem];
+ pos11(vair,theta+90); pos12(vair,theta+90);
+ pos13(vair,theta+90); pos14(vair,theta+90);
+ z12-z11=z14-z13=(mid_width-crisp)*dir theta;
+ lft x11r=w-rt x14l=hround 1.5u; top y14r=x_height+.5dot_size;
+ bot y11l=vround(bot y11l+min(.6[.62x_height,x_height+.5dot_size],
+ y13l-.2vair)-top y11r);
+ pair delta; ypart delta=3(y13l-y11l); delta=whatever*dir theta;
+ filldraw z11l..controls(z11l+delta)and(z13l-delta)..z13l..z14l
+ --z14r..controls(z14r-delta)and(z12r+delta)..z12r..z11r--cycle; %stroke
+else: pickup fine.nib; pos11(vair,180); pos12(vair,90);
+ pos13(.5[vair,slab],90); pos14(vair,90); pos15(vair,180);
+ lft x11r=w-rt x15l=hround 1.5u; x12-x11=x13-x12=x14-x13=x15-x14;
+ bot y11=bot y14l=vround(.75[.62x_height,.6h]-vair);
+ top y12r=top y15=.5h; y13=.5[y12,y14];
+ filldraw stroke z11e{up}...z12e{right}..z13e..{right}z14e...{up}z15e; fi % stro
+penlabels(1,2,11,12,13,14,15); endchar;
+
+cmchar "The letter barred l";
+beginchar(oct"56",5.5u#,asc_height#,0); l_width#:=5u#+2serif_fit#;
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+% bar
+pos10(bar,90); pos11(bar,90);
+x10=hround .1u; x11=w-x10;
+y10=y11=.5[y1,y2];
+filldraw stroke z10e--z11e;
+penlabels(1,2,10,11); endchar;
+
+cmchar "The letter hooked l";
+beginchar(oct"057",8u#,asc_height#,0);
+l_width#:=5u#+2serif_fit#;
+numeric hook_depth#; hook_depth#:=1.1desc_depth#;
+define_whole_vertical_pixels(hook_depth);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+%"Polish hook"
+x11=.5w+.25u;
+if serifs: pickup crisp.nib; pos11(stem,180); pos12(stem,-90);
+ pos13(vair,90); pos14(.8stem,180); pos15(vair,-90);
+ x11=x12; z13r=z12r; x14=x12-4u; x15=x13+3u;
+ bot y11=.75h-o; bot y12=.75h-vround 2/7hook_depth-o; y14=.5[y13,y15];
+ bot y15=.75h-hook_depth-o;
+ filldraw stroke z13e{left}...z14e{down}...{right}z15e; % hook
+else: pickup fine.nib; pos11(vair,0); top y11=-o-2;
+ pos12(.5[vair,stem],0); bot y12=-d-o; x12=x11-1.5u;
+ filldraw stroke z11e--z12e; fi % diagonal
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+penlabels(1,2,11,12,13,14,15); endchar;
+
+cmchar "The letter right-tailed l";
+beginchar(oct"060",6.5u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.357w-.5stem'); x1=x2; top y1=h; bot y2=-.2d;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop);fi% upper serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos12(stem',180); z2=z12;
+ pos15(vair,-90); pos16(hair,0); pos17(flare,0);
+ x15=.5[x12,x16r]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; rt x17r=w;
+ filldraw stroke z12e{down}...{right}z15e{up};
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,15,16,17); endchar;
+
+cmchar "The letter turned m with long right leg";
+beginchar(oct"66",15u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=asc_height+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); % lower right serif
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter m with leftward tail at right";
+beginchar(oct"064",15u#,x_height#,1.1desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); fi % lower middle serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x6,x16r]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; rt x17r=x4r;
+ (x,y15r)=whatever[z15l,z6l]; x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke z6e{down}...pulled_super_arc.e(6,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,5,6,15,16,17); endchar;
+
+cmchar "The letter turned m";
+beginchar(oct"065",15u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric shaved_stem; shaved_stem=hround(mfudged.stem-2stem_corr);
+pickup tiny.nib; pos1(mfudged.stem,0); pos2(mfudged.stem,0);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0);
+pos3(mfudged.stem,0); pos5(mfudged.stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+lft x3l=hround(.5w-.5stem); x5-x3=x3-x1;
+if not monospace: r:=hround(x5+x1)-l; fi % change width for better fit
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % left arch and middle stem
+h_stroke(4,b,5,6); % right arch and right stem
+if serifs: sloped_serif.l(1',2',c,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,d,1/3,jut,e,1/3,jut); % lower left serif
+ dish_serif(4,3,f,1/3,inner_jut,g,1/3,jut); % lower middle serif
+ dish_serif(6,5,h,1/3,inner_jut,i,1/3,jut); fi % lower right serif
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter right-tailed n";
+beginchar(oct"071",12.5u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=.8w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); fi% lower left serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos14(stem,180); z4=z14;
+ pos15(vair,-90); pos16(hair,0); pos17(flare,0);
+ x15=.5[x14,x16r]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; rt x17r=w-.2u;
+ filldraw stroke z14e{down}...{right}z15e{up};
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,15,16,17); endchar;
+
+cmchar "The letter left-tailed n";
+beginchar(oct"067",12.5u#,x_height#,desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(3.4u-.35stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=-.2d; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(4,3,e,1/3,inner_jut,f,1/3,jut); fi % lower right serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180);
+ pos17(flare,-180);
+ rt x17=u;
+ x15=.5[x2,x16r]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r;
+ (x,y15r)=whatever[z15l,z2l]; x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke z2e{down}...pulled_super_arc.e(2,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,15,16,17); endchar;
+
+cmchar "The letter eng";
+beginchar(oct"070",10.2u#,x_height#,1.1desc_depth#);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+numeric shaved_stem; shaved_stem=hround(stem-2stem_corr);
+pos1'(shaved_stem,0); pos2'(shaved_stem,0); pos3(stem,0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l; x3=w-x1;
+top y1=h+min(oo,serif_drop); bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+h_stroke(2,a,3,4); % arch and right stem
+if serifs: sloped_serif.l(1',2',b,1/3,jut,serif_drop); % upper left serif
+ numeric inner_jut; pickup tiny.nib;
+ if rt x2r+jut+.5u+1<=lft x4l-jut: inner_jut=jut;
+ else: rt x2r+jut+.5u+1=lft x4l-inner_jut; fi
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut);fi % lower left serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x4,x16r]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; rt x17r=x2r;
+ (x,y15r)=whatever[z15l,z4l]; x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke z4e{down}...pulled_super_arc.e(4,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,15,16,17); endchar;
+
+cmchar "The letter barred o";
+beginchar(oct"074",9u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(.8curve,180); penpos4(.8curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4r=w-x2r; x1=x3=.5w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+pos2'(.8stem,90); pos4'(.8stem,90);
+x2'=x2; y4'=y2'=y2; x4'=x4;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penstroke z2'e--z4'e; % bar
+penlabels(1,2,3,4); endchar;
+
+cmchar "The letter barred p";
+beginchar(oct"101",10.5u#+serif_fit#,x_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(3u-.5stem'); top y1=h if serifs: +min(oo,serif_drop) fi;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90); penpos7(x3l-x3r,-180);
+rt x3l=max(rt x3l-(lft x3r-tiny.lft x2l), 1/3[rt x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.85u+.5curve,w-1.1u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=min(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &super_arc.e(5,6)&z6e{left}...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,jut); fi % lower serif
+% bar
+pos10(bar,90); pos11(bar,90);
+x10=hround .1u; x11=w-x10;
+y10=y11=y5;
+filldraw stroke z10e--z11e;
+penlabels(0,1,2,3,4,5,6,7,8,10,11); endchar;
+
+cmchar "The letter fish-hook r";
+beginchar(oct"104",6.5u#,x_height#,0);
+italcorr .5[bar_height#,x_height#]*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos1'(stem',0); pos2'(stem',0);
+lft x1l=hround(2.5u-.5stem); x1l=x1'l=x2l=x2'l;
+top y1=.7h; bot y2=0; y1=y1'; y2=y2';
+filldraw stroke z1'e--z2'e; % left stem
+ dish_serif(2,1,c,1/3,jut,d,1/3,jut); % lower left serif
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.4[x1,x11]; top y10l=h+o+1;
+ pos11(hair,0); rt x11r=hround(w+.1u); y11=.8h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke pulled_super_arc.e(1,10)(.2superpull);
+ % arc and stem
+penlabels(1,2,3,4,10,11,12); endchar;
+
+cmchar "The letter turned r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"107",if serifs:max(7u#,5.5u#+r_flare#) else:6.5u# fi,x_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(1,2,3,4,5,6); endchar;
+
+
+cmchar "The letter right-tailed r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"106",max(7u#,5.5u#+r_flare#),x_height#,desc_depth#);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=-.2d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); fi % upper serif
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos12(stem',180); z2=z12;
+ pos15(vair,-90); pos16(hair,0); pos17(flare,0);
+ x15=.5[x12,x16r]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; rt x17l=w-1.4u;
+ filldraw stroke z12e{down}...{right}z15e{up};
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,5,6,12,15,16,17); endchar;
+
+cmchar "The letter long legged r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"105",if serifs:max(7u#,5.5u#+r_flare#)
+ else:6.5u# fi,asc_height#,0);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=x_height+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,x_height]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=x_height+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=-desc_depth;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter turned long legged r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"111",if serifs:max(7u#,5.5u#+r_flare#)
+ else:6.5u# fi,x_height#,desc_depth#);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=h+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,h]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.25u); fi
+pos3(thin_join,180); rt x3l=hround(2.5u-.5stem')+stem'; top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=h+min(oo,serif_drop);
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(2.5u-.5stem'); bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,serif_drop); fi % lower serif
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "The letter turned hooked r";
+numeric r_flare#; r_flare#=.75[if serifs: stem# else: vair# fi,flare#];
+define_whole_blacker_pixels(r_flare);
+beginchar(oct"110",if serifs:max(8.4u#,6.6u#+r_flare#) else:6.5u# fi,
+x_height#,desc_depth#);
+italcorr x_height#*slant if not serifs: +.25u# fi;
+adjust_fit(serif_fit#,0);
+pickup fine.nib; top y4r=x_height+oo;
+if serifs: pos4(vair,90); pos5(hair,0);
+ x4=w-max(1.75u,.25u+r_flare);
+ rt x5r=hround(w-.5u+.5); y5+.5r_flare=.9[bar_height,x_height]+oo;
+ pos6(r_flare,0); bulb(4,5,6); % bulb
+else: pos4(r_flare,90); rt x4=hround(w-.3u); fi
+pos3(thin_join,180); rt x3l=hround(3.5u-.5stem')+stem';
+top y3=bar_height;
+filldraw stroke z3e{up}...{right}z4e; % arc
+pickup tiny.nib; pos0(stem',0); pos2(stem',0);
+pos1(hround(stem-3stem_corr),0); top y1=.8asc_height;
+pos0'(hround(stem-3stem_corr),0); y0=y0'=y3; x1l=x0l=x0'l=x2l;
+lft x1l=hround(3.5u-.5stem'); bot y2=0;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+% hooktop
+pickup tiny.nib;
+ pos10(vair,90); x10=.5[x1,x11l]; top y10r=asc_height;
+ pos11(hair,180); rt x11l=0; y11=.84asc_height;
+ pos12(flare,180);
+ bulb(10,11,12); % bulb
+filldraw stroke pulled_super_arc.e(1,10)(.4superpull); % arc and stem
+if serifs:
+ dish_serif(2,0,b,1/3,jut,c,1/3,1.25jut); fi % lower serif
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(1,2,3,4,5,6,10,11,12); endchar;
+
+cmchar "The letter skinny right-tailed s";
+beginchar(oct"114",7.1u#,x_height#,desc_depth#);
+italcorr x_height#*slant-if serifs:.55u# else:.3u# fi;
+adjust_fit(if monospace: .5u#,.4u# else: 0,if serifs:0 else:-.2u# fi fi);
+numeric theta; theta=90-angle(40u,h); slope:=-h/40u; % angle at middle
+numeric s_slab; s_slab=if serifs:vair else:Vround .1[vair,stem] fi;
+numeric ess'; ess'=max(fine.breadth,ess);
+pickup fine.nib; pos2(max(fine.breadth,s_slab-vround vair_corr),-100);
+pos0(ess',theta); pos7(s_slab,-90); x2l=x0=x7=.5w;
+top y2l=h+vround 1.5oo; bot y7r=-oo;
+y0-.5ess'=y7l+if serifs:.54 else: .52 fi\\(y2r-y7l-ess');
+lft x3l=hround .6u; rt x6r=hround(w-.6u);
+x3r-x3l=x6r-x6l=hround .5[s_slab,ess']-fine;
+ellipse_set(2l,3l,4l,0l); ellipse_set(2r,3r,4r,0r); y3=y3r;
+ellipse_set(7l,6l,5l,0l); ellipse_set(7r,6r,5r,0r); y6=y6r;
+interim superness:=more_super;
+filldraw stroke super_arc.e(2,3) & z3e{down}
+ ..z4e---z5e..z6e{down} & super_arc.e(6,7); % main stroke
+if serifs: pos1(hair,180); pos8(hair,180);
+ rt x1l=hround(w-1.05u); lft x8r=hround .6u;
+ bot y1=min(bot y2r,vround 1/5[top y5r,h]);
+ top y8=max(top y7l,vround 5/6 bot y4l);
+ filldraw stroke z1e{up}....{left}z2e; % upper arc
+ filldraw stroke z7e{left}....{x8-x7,5(y8-y7)}z8e; % lower arc
+ path upper_arc, lower_arc;
+ upper_arc=z1{up}....{left}z2; lower_arc=z7{left}....{x8-x7,5(y8-y7)}z8;
+ pos10(.3[fine.breadth,cap_hair],0); pos9(.3[fine.breadth,cap_hair],0);
+ x10r=x1l; top y10=top y2l; x9l=x8r; bot y9=bot y7r;
+ x1l-x1'=x8'-x8r=1.6cap_curve-fine; y1'=y1; y8'=y8;
+ numeric t; t=xpart(upper_arc intersectiontimes(z10l--z1'));
+ filldraw z1l--z10r--z10l--subpath(t,0) of upper_arc--cycle; % upper barb
+ t:=xpart(lower_arc intersectiontimes(z9r--z8'));
+ filldraw z8r--z9l--z9r--subpath(t,1) of lower_arc--cycle; % lower barb
+else: pos1(4/7[s_slab,flare],-100); pos8(flare,-100);
+ x1l=good.x(x1l+w-u-rt x1); lft x8r=hround .5u;
+ top y1l=vround(.93h+1.5oo); bot y8r=vround .1h-oo;
+ filldraw stroke term.e(2,1,right,.9,4); % upper arc and terminal
+ filldraw stroke term.e(7,8,left,1,4); fi % lower arc and terminal
+%tail
+numeric dot_diam#; dot_diam#=min(.7dot_size#,.7cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos19(1.5hair,180); pos14(1.5hair,180);
+ pos15(vair,-90); pos16(hair,0); pos17(flare,0);
+ z19=z9;
+ x19=x14; y14=-.6d;
+ bot y15r=-d+oo; y16-.5flare=-.75d;
+ rt x16r=hround(x6l-.5u);
+ x15=.5[x14,x16];
+ filldraw stroke z19e{down}---z14e{down}..{right}z15e{up};
+ bulb(15,16,17); % arc and bulb
+penlabels(0,1,1',2,3,4,5,6,7,8,8',9,10,14,15,16,17); endchar;
+
+
+cmchar "The letter turned t";
+beginchar(oct"122",6u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),.5desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(w-u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.33h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.33h),180);fi
+currentpicture:= rvchar;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter right-tailed t";
+beginchar(oct"120",6.2u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180); pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=-.3d;
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(.93w-1.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; %terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib;
+ filldraw stroke z2e--z3e; % stem
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,0); pos17(flare,0);
+ x15=.5[x3,x16r]; bot y15r=-d+oo; y16-.5flare=-.8d;
+ z16r=z17r; rt x17r=w-.4u;
+ filldraw stroke z3e{down}...{right}z15e{up};
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,7,8,15,16,17); endchar;
+
+cmchar "The letter barred u";
+beginchar(oct"124",10u#,x_height#,0);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=h+min(oo,serif_drop); bot y4=-min(oo,serif_drop);
+else: top y1=h; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+pickup crisp.nib;
+pos10(bar,90); pos11(bar,90);
+top y10=top y11=.5h+o; lft x10=w-rt x11=hround .25u;
+filldraw stroke z10e--z11e; %bar
+penlabels(1,2,3,4,5,10,11); labels(6); endchar;
+
+cmchar "The letter slashed u";
+beginchar(oct"125",10u#,asc_height#,paren_depth#);
+italcorr x_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+numeric light_vair; light_vair=vair if hefty: -vround 2vair_corr fi;
+if light_vair<fine.breadth: light_vair:=fine.breadth; fi
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+pos3(stem,0); pos4(stem',0);
+lft x1l=hround(2.5u-.5stem); x1=x2; x3=w-x1; x3r=x4r;
+if serifs: top y1=x_height+min(oo,serif_drop);bot y4=-min(oo,serif_drop);
+else: top y1=x_height; bot y4=0; fi
+pos0(stem,0); pos0'(stem',0); x0=x3; x0'=x4; y0=y0';
+penpos2'(stem-fine,-180); z2'=z2; y3=y1; y2=.5bar_height;
+penpos5(max(eps,light_vair-fine),-90); penpos6(thin_join-fine,0);
+y6=y0=2/3bar_height;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e..z0e--z0'e..z4e; % right stem
+pickup fine.nib; bot y5r=-oo; x5l=.5w-.25u; lft x6l=tiny.lft x0l;
+(x,y5r)=whatever[z5l,z6l]; x5r:=max(x,.5[x5,x2'r]);
+filldraw stroke {{interim superness:=hein_super;
+ pulled_arc.e(2',5)}} & z5e{right}...{up}z6e; % arc
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper left serif
+ sloped_serif.l(3,0,b,1/3,jut,serif_drop); % upper right serif
+ sloped_serif.r(4,0',c,1/3,jut,min(oo,serif_drop)); fi % lower right serif
+% slash
+adjust_fit(0,0); pickup rule.nib;
+rt x11=hround(w-.1u)+eps; top y11=.75h+eps;
+lft x12=hround u-eps; bot y12=-d-eps;
+draw z11--z12; % diagonal
+penlabels(1,2,3,4,5,11,12); labels(6); endchar;
+
+
+cmchar "The letter turned v";
+beginchar(oct"004",if serifs: 9.5u# else:9u# fi,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+left_stem=fudged.stem-stem_corr;
+right_stem=min(fudged.hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75jut; x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4=h;
+x2-x1=x4-x3; x2l+apex_corr=x3l; y2=y3=-apex_oo;
+alpha=diag_ratio(2,right_stem,y1-y2,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); fi % right serif
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "The letter turned w";
+beginchar(oct"132",13u#,x_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit#,serif_fit#);
+numeric stem[],outer_jut,upper_notch,alpha,mid_corr;
+outer_jut=.7jut; x1l=w-x8r=l+letter_fit+outer_jut+.25u;
+stem1=fudged.stem-stem_corr;
+stem4=min(fudged.hair if hefty:-2stem_corr fi,stem1);
+stem2=if hefty:.1[vair,stem4] else: stem4 fi;
+stem3=max(stem2,stem1-3stem_corr);
+x2-x1=x4-x3=x6-x5=x8-x7; x2l+apex_corr=x3l; x6l+apex_corr=x7l;
+y1=y8=h; y2=y3=y6=y7=-apex_oo;
+y4=y5=if monospace: vround .6 fi\\ h; upper_notch=y4-notch_cut;
+mid_corr=if monospace or hefty:-.3apex_corr else: .5jut fi;
+alpha=diag_ratio(4,stem2-stem3+stem4,y1-y2,x8r-x1l+mid_corr-2apex_corr);
+penpos1(alpha*stem1,0); penpos2(alpha*stem1,0);
+penpos3(alpha*stem2,0); penpos4(alpha*stem2,0);
+penpos5(alpha*stem3,0); penpos6(alpha*stem3,0);
+penpos7(alpha*stem4,0); penpos8(alpha*stem4,0);
+x4l-x1l=floor(x4l-x1l+.5(x5r+mid_corr-x4r)); % |x5r| $\approx$ |x4r+mid_corr|
+z23=whatever[z1r,z2r]=whatever[z3l,z4l];
+z45=whatever[z3r,z4r]=whatever[z5l,z6l];
+z67=whatever[z5r,z6r]=whatever[z7l,z8l];
+fill diag_end(1l,2l,1,1,3r,4r){z4-z3}
+ ...if y45<upper_notch:(x45,upper_notch)+.5left{up}
+ --(x45,upper_notch)+.5right{down} else: z45&z45 fi
+ ...{z6-z5}diag_end(5l,6l,1,1,7r,8r)--diag_end(7r,8r,1,1,8l,7l){z7-z8}
+ ...if y67>notch_cut:(x67,notch_cut)+.5right{down}
+ --(x67,notch_cut)+.5left{up} else: z67&z67 fi
+ ...{z5-z6}special_diag_end(6,5,4,3){z3-z4}
+ ...if y23>notch_cut:(x23,notch_cut)+.5right{down}
+ --(x23,notch_cut)+.5left{up} else: z23&z23 fi
+ ...{z1-z2}diag_end(2r,1r,1,1,1l,2l)--cycle; % diagonals
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(5,6); prime_points_inside(8,7);
+ if monospace: inner_jut1=inner_jut4=1.5jut;
+ elseif hefty: inner_jut1=inner_jut4=jut;
+ else: fill diag_end(6r,5r,1,1,5l,6l)--.5[z5l,z6l]
+ --.5[z5r,z6r]--cycle;% middle stem
+ inner_jut2=.7inner_jut1; inner_jut4=1.1inner_jut3;
+ if rt x1'r+jut+.5u+1<=lft x5'l-.7jut: inner_jut1=jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x5'l-inner_jut2; fi
+ if rt x5'r+jut+.5u+1<=lft x8'l-1.1jut: inner_jut3=jut;
+ else: rt x5'r+inner_jut3+.5u+1=lft x8'l-inner_jut4; fi
+ dish_serif(5',6,e,1/3,inner_jut2,f,1/2,inner_jut3); fi % middle serif
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut1); % left serif
+ dish_serif(8',7,c,.6,inner_jut4,d,1/2,outer_jut)(dark); fi % right serif
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(0,1,2,3,4,5,6,7,8,23,45,67); endchar;
+
+cmchar "The letter turned y";
+beginchar(oct"134",if serifs:9.5u# else:9u# fi,asc_height#,0);
+italcorr x_height#*slant+.25u#;
+adjust_fit(serif_fit# if monospace:+\\.5u#,.5u#+ else:,fi\\ serif_fit#);
+numeric left_stem,right_stem,bot_stem,bot_vair,outer_jut;
+left_stem=fudged.stem-stem_corr;
+right_stem=fudged.hair if hefty:-2stem_corr fi;
+bot_stem=fudged.hair if hefty:-8stem_corr fi;
+bot_vair=Vround(if serifs: vair else:.5[vair,bot_stem] fi);
+outer_jut=.75jut;
+x1l=w-x4r=l+letter_fit+outer_jut+.25u; y1=y4r=x_height; y2=y3=0; x2l=x3l;
+numeric alpha,alpha[]; x9=3u; y9=bot_vair-d-oo;
+alpha1=diag_ratio(2,bot_stem,y1-y3,x4r-x1l-apex_corr);
+alpha2=diag_ratio(1,bot_stem,y1-y9,x4r-x9);
+if alpha1<alpha2: x2l-x1l=x4r-x3r+apex_corr; alpha=alpha1;
+else: alpha=alpha2; z3l=whatever[z9,z4r-(alpha*bot_stem,0)]; fi
+penpos3(alpha*bot_stem,0); penpos4(alpha*right_stem,0);
+alpha3=(y1++(x2l-x1l))/y1;
+penpos1(alpha3*left_stem,0); penpos2(alpha3*left_stem,0);
+z0=whatever[z1r,z2r]=z4l+whatever*(z3r-z4r);
+if y0>notch_cut: y0:=notch_cut;
+ fill z0+.5right{up}...{z4r-z3r}diag_end(0,4l,1,1,4r,3r)
+ --z3r--z2l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z3r--z2l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(alpha*bot_stem,0);z5r=whatever[z3r,z4r]; y5-.5vair=-.5desc_depth;
+if serifs: numeric light_bulb; light_bulb=hround 7/8[hair,flare]; clearpen;
+ penpos6(vair,-90); penpos7(hair,-180); penpos8(light_bulb,-180);
+ x6=2u; y6r=-desc_depth-oo; y8-.5light_bulb=-.85desc_depth;
+ x8r=hround .35u;
+ fill stroke z3e---z5e...{left}z6e; bulb(6,7,8); % arc and bulb
+ numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+jut+.5u+1<=lft x4'l-jut: inner_jut=jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % right serif
+else: penpos6(bot_vair,-90); x6=2.5u; y6r=-desc_depth-oo;
+ fill stroke z3e---z5e...{left}z6e; % arc
+ pickup fine.nib; pos6'(bot_vair,-90); z6'=z6;
+ pos7(2/3[bot_vair,flare],-85);
+ lft x7l=hround u; bot y7r=vround-.96desc_depth-oo; y7l:=good.y y7l;
+ filldraw stroke term.e(6',7,left,1,4); fi % arc and terminal
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5x_height),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5x_height),180);fi
+currentpicture:= rvchar;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter curly-tail z";
+beginchar(oct"136",9u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+arm_thickness1=vair; arm_thickness2=1.2vair; z_stem=.9[vair,stem];
+pickup tiny.nib; rt x1r=rt x2r=hround(.89w-.8u);
+lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,90); pos8(arm_thickness2,90);
+ x7=x4; bot y8l=bot y7l=y8'=0;
+ pos8'(cap_hair,0); x8'=.5[x7,x8];
+ pos11(cap_hair,180); rt x11r=hround(w-.25u); y11=.2h+eps;
+ pos9(cap_hair,-90); x9=x8=.75[x7,x11];
+ y9=.3h;
+ pos10(cap_hair,0); x10l= x3l; bot y10=-.75d;
+filldraw stroke z7e--z8e{right}...{up}z11e..z9e
+..{down}z8'e{down}---z10e;
+penlabels(1,2,3,4,5,6,7,8,8',9,10,11); endchar;
+
+cmchar "The letter skinny right-tailed z";
+beginchar(oct"137",11.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=vair; arm_thickness2=vair'; z_stem=.9[vair,stem]; fi
+pickup tiny.nib; rt x1r=rt x2r=hround(.74w-.8u);
+lft x3l=lft x4l=hround .5u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .76u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(.74w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+arm(7,8,b,beak_darkness,.6beak_jut); % lower arm and beak
+%tail
+numeric dot_diam#; dot_diam#=min(.7dot_size#,.7cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos14(vair,180); pos18(1.5hair,180);
+ pos15(vair,-90); pos16(hair,0); pos17(flare,0);
+ z8=z18;
+ x14=x18; y14=-.6d;
+ bot y15r=-d+oo; y16-.5flare=-.75d;
+ rt x16r=hround(w-.1u);
+ x15=.5[x14,x16];
+ filldraw stroke z18e{down}---z14e{down}..{right}z15e{up};
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,5,6,7,8,14,15,16,17,18); endchar;
+
+cmchar "Lowercase thorn";
+beginchar(oct"102",10u#+serif_fit#,asc_height#,desc_depth#);
+italcorr .5x_height#*slant+min(.5curve#-.85u#,-.1u#);
+adjust_fit(serif_fit#,0);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0l=z0'l; x0'=x1; x0=x2;
+lft x1l=hround(2.5u-.5stem'); top y1=h;
+numeric edge; edge=rt x2r;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,180);
+pos4(vair',90); pos5(curve,0); pos6(vair,-90);
+rt x3l=1/3[rt x2,edge]; y3=1/8[bar_height,x_height];
+x4l=w-.5(w-serif_fit)+.5u; top y4r=x_height+oo;
+rt x5r=hround min(w-1.35u+.5curve,w-.6u); y5=.5x_height;
+x6=x3; bot y6r=-oo;
+(x,y4r)=whatever[z3l,z4l]; x4r:=min(x,.5[x5r,x4]);
+filldraw stroke z3e{up}...{right}z4e&super_arc.e(4,5)
+ &z5e{down}...{5(x6-x5),y6-y5}z6e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{right}z4l));
+pickup tiny.nib; bot y2=-d;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+pickup crisp.nib; pos8(hair,0); pos7'(stem,0);
+z7'=z2; x8l=x7'l; bot y8=0;
+filldraw stroke z7'e--z8e; % point
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,0,b,1/3,jut,c,1/3,0); fi % lower serif
+penlabels(0,1,2,3,4,5,6,8); endchar;
+
+cmchar "The letter esh";
+beginchar(oct"115",8.5u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+%if odd(.5w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=.8h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% hooktop
+pickup tiny.nib;
+ pos10(hair,-90); x10=.5[x1,x11l]; top y10l=h+o+1;
+ pos11(hair,0); rt x11l=hround(w-.2u); y11=.84h;
+ pos12(flare,0);
+ pos10'(hair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke pulled_super_arc.e(1,10)(.4superpull); % arc and stem
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x16r,x2]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; x17r=.4u;
+ (x,y15r)=whatever[z15l,z2l]; x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke pulled_super_arc.e(2,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,10,11,12,15,16,17); endchar;
+
+cmchar "The letter curly-tail esh";
+beginchar(oct"116",8.5u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+%if odd(.5w-stem'): change_width; fi
+lft x1l=hround(.5w-.5stem'); x1=x2; top y1=.8h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.5[x1,x11l]; top y10l=h+o+1;
+ pos11(hair,0); rt x11l=hround(w-.2u); y11=.84h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke pulled_super_arc.e(1,10)(.4superpull); % arc and stem
+%tail
+ pickup tiny.nib; pos15(vair,-90); pos16(cap_hair,-180);
+ x15=.5[x16r,x2]; bot y15r=-d+oo;
+ x16r=.4u; y16=.5[y15,y2];
+ (x,y15r)=whatever[z15l,z2l]; x15r:=max(x,.5[x16r,x15]);
+ x4=.5[x16l,x2]; y4r=vround(0+oo);
+ x5=w-u; y5=-d-2oo;
+ pos4(cap_hair,90); pos5(cap_hair,0);
+filldraw stroke pulled_super_arc.e(2,15)(.4superpull)
+ ... z15e{left}..z16e..z4e{right}..z5e{down}; % curly tail
+penlabels(1,2,3,4,5,10,11,12,15,16); endchar;
+
+cmchar "The letter yogh";
+beginchar(oct"140",8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=1.75vair; arm_thickness2=vair';
+z_stem=.75[vair,stem];fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.5u);
+lft x3l=lft x4l=hround .32w;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=.3h; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=.3h; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib;
+pos16(hair,90); x16=x3l;
+x18=.5[1.5u,x17];
+pos17(curve,0); rt x17r=hround(w-.05u);
+pos18(bot_thickness,-90); bot y18r=-d-o;
+top y16r=.29h;
+y17=.4[bot y16l,top y18l];
+filldraw stroke z16e{up}...{down}z17e{z18e}
+ & pulled_super_arc.e(17,18)(.5superpull); % lower bowl
+numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos10(bulb_diam2,-180); pos19(cap_hair,-180);
+ lft x10r=hround .75u; y10=max(-d+.1h+.5bulb_diam2,-d+.3h-.5bulb_diam2);
+ bulb(18,19,10); % lower bulb
+penlabels(1,2,3,4,5,6,7,8,10,16,17,18,19); endchar;
+
+cmchar "The letter curly-tail yogh";
+beginchar(oct"141",8.5u#,x_height#,desc_depth#);
+italcorr x_height#*slant-.5serif_fit#-.3u#;
+adjust_fit(0,.5serif_fit#);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=1.5vair; arm_thickness2=vair';
+z_stem=.75[vair,stem];fi
+pickup tiny.nib; rt x1r=rt x2r=hround(w-.5u);
+lft x3l=lft x4l=hround .32w;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=.3h; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l-slant*(y2-y3));
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround .75u; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,a,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=.3h; x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib;
+pos16(hair,90); x16=x3l;
+x18=.5[1.5u,x17];
+pos17(curve,0); rt x17r=hround(w-.05u);
+pos18(bot_thickness,-90); bot y18r=-d+o;
+top y16r=.29h;
+y17=.4[bot y16l,top y18l];
+lft x10r=x6r+.2u; y10=-.5d;
+ x11=x3r; y11r=vround(0+oo);
+ x12=hround(w+.3u); y12=-d-2oo;
+ pos10(cap_hair,-180); pos11(cap_hair,90); pos12(cap_hair,0);
+filldraw stroke z16e{up}...{down}z17e{z18e}
+ & pulled_super_arc.e(17,18)(.5superpull) % lower bowl
+ ... z18e{left}..z10e..z11e..z12e{down}; % curly tail
+penlabels(1,2,3,4,5,6,7,8,10,11,12,16,17,18); endchar;
+
+cmchar "The ligature t-esh";
+beginchar(oct"121",10u#+max(u#,.5stem#),
+ min(asc_height#,if hefty:9/7 else:10/7 fi\\ x_height#),desc_depth#);
+italcorr x_height#*slant if serifs: -.9u# else: -.4u# fi;
+adjust_fit(0,if serifs: 0 else: -.5u# fi);
+numeric shaved_stem; shaved_stem=hround(stem if hefty:-\\2stem_corr fi);
+pickup fine.nib; pos2(shaved_stem,180);pos3(shaved_stem,180);
+lft x2r=lft x3r=hround(2.5u-.5shaved_stem);
+y2=y8; y3=max(.5bar_height,2vair);
+pickup crisp.nib; pos8(bar,90);
+rt x8=hround(.6w-.3u); top y8r=x_height; lft x7=hround 1/3u; y7l=y8l;
+if hefty: pos7(bar,90);
+ filldraw stroke z7e--z8e; % crossbar
+ pickup tiny.nib; pos1(hround(shaved_stem-stem_corr),0);
+ rt x1r=fine.rt x2l; top y1=h;
+ penpos2'(x1r-x1l,0); x2'=x1; y2'=y2;
+ filldraw stroke z1e--z2'e; % upper terminal
+else: pos7(vair,90); pos1(hair,0);
+ rt x1r=fine.rt x2l; top y1=h;
+ filldraw z1l{down}...{left}z7r--z7l--z8l
+ --z8r--(x1r,y8r)--z1r--cycle; fi % upper terminal and crossbar
+pickup fine.nib; interim superness:=more_super;
+pos4(vair',-90); bot y4r=-oo; rt x5r=hround(.6w-.5u);
+if serifs: pos5(hair,0); y5=y3; x4l=.5[x3l,x5l];
+ (x,y4r)=whatever[z4l,z5l]; x4r:=max(x,.5[x3r,x4]);
+ filldraw stroke z2e..super_arc.e(3,4)...{up}z5e; % stem and hook
+ pickup crisp.nib; pos6(hair,0); pos5'(hair,0);
+ x6l=x5=x5'; top y6=max(vround .75bar_height,top y5); y5=y5';
+ filldraw stroke z5'e--z6e; % terminal
+else: pos5(vair,-75); top y5l=vround .2[top y4l,bar_height];
+ x5l:=good.x x5l; x4l=1/3[x3l,x5l]; x4r:=1/3[x3r,x5r]; y3l:=y3l+.2vair;
+ filldraw stroke z2e..super_arc.e(3,4); % stem and hook
+ path p; p=stroke z4e{right}..tension .9 and atleast 1..z5e; % terminal
+ if (xpart(z5l-precontrol 1 of p)<0) or (xpart(z5r-postcontrol 2 of p)<0):
+ filldraw stroke z4e{right}...{up}z5e;
+ else: filldraw p; fi fi;
+%cmchar "The letter esh";
+pickup tiny.nib; pos21(.9stem',0); pos22(.9stem',0);
+lft x21l=x6; x21=x22; top y21=.8h; bot y22=0;
+filldraw stroke z21e--z22e; % stem
+% hooktop
+pickup tiny.nib;
+ pos10(vair,-90); x10=.5[x21,x11l]; top y10l=h+o+1;
+ pos11(hair,0); rt x11l=hround(w-.4u); y11=.84h;
+ pos12(flare,0);
+ pos10'(vair,90); z10'=z10;
+ bulb(10',11,12); % bulb
+filldraw stroke pulled_super_arc.e(21,10)(.4superpull); % arc and stem
+%tail
+numeric dot_diam#; dot_diam#=max(dot_size#,cap_curve#);
+define_whole_blacker_pixels(dot_diam);
+ pickup tiny.nib; pos15(vair,-90); pos16(hair,-180); pos17(flare,-180);
+ x15=.5[x16r,x22]; bot y15r=-d+oo; y16-.5flare=-.85d;
+ z16r=z17r; x17r=hround(x3+.1u);
+ x15r:=max(x,.5[x16r,x15]);
+ filldraw stroke pulled_super_arc.e(22,15)(.4superpull);
+ bulb(15,16,17); % arc and bulb
+penlabels(1,2,3,4,5,6,7,8,10,11,12,15,16,17,21,22); endchar;
+
+cmchar "The ligature l-yogh";
+beginchar(oct"61",9u#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(serif_fit#+stem_shift#,serif_fit#-stem_shift#);
+pickup tiny.nib; pos1(stem',0); pos2(stem',0);
+if odd(w-stem'): change_width; fi
+lft x1l=hround(.26w-.5stem'); x1=x2; top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: sloped_serif.l(1,2,a,1/3,jut,serif_drop); % upper serif
+ dish_serif(2,1,b,1/3,jut,c,1/3,jut); fi % lower serif
+%cmchar "The letter yogh";
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=1.75vair; arm_thickness2=vair';
+z_stem=.75[vair,stem];fi
+pickup tiny.nib; rt x21r=rt x22r=hround(w-.2u);
+lft x3l=lft x4l=hround rt x2r+1.5u;
+top y21=x_height; y22=min(y21,x_height-2/3arm_thickness1);
+bot y4=.31x_height; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(21,z_stem-tiny,y22-y3,x22r-x3l-slant*(y22-y3));
+penpos21(alpha*(z_stem-tiny),0); penpos22(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z22 of currentpen;
+fill top lft z21l--z22l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z22r-delta..rt z22r---rt z21r..top z21r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=x_height; x5=x21; lft x6r=x2; y6=good.y(y5l-beak/1.4)-eps;
+arm(5,6,d,beak_darkness,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=.31x_height;
+x7=x4; rt x8r=hround(w-.75u); y8=good.y(y7l+beak/1.2)+eps;
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib;
+pos16(hair,90); x16=x3l;
+x18=.5[1.5u,x17];
+pos17(curve,0); rt x17r=hround(w-.05u);
+pos18(bot_thickness,-90); bot y18r=-d-o;
+top y16r=.29x_height;
+y17=.4[bot y16l,top y18l];
+filldraw stroke z16e{up}...{down}z17e{z18e}
+ & pulled_super_arc.e(17,18)(.5superpull); % lower bowl
+numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ pos10(bulb_diam2,-180); pos19(cap_hair,-180);
+ lft x10r=x2;
+ y10=min(-d+.1x_height+.5bulb_diam2,-d+.3x_height-.5bulb_diam2);
+ bulb(18,19,10); % lower bulb
+penlabels(1,2,21,22,3,4,5,6,7,8,10,16,17,18,19); endchar;
+
+cmchar "The ligature d-yogh";
+beginchar(oct"22",14.5u#+serif_fit#,asc_height#,desc_depth#);
+italcorr asc_height#*slant-serif_fit#+.5stem#-2u#;
+adjust_fit(0,serif_fit#);
+pickup tiny.nib; pos1(stem',0); pos2(stem,0);
+pos0'(stem',0); pos0(stem,0); z0r=z0'r; x0'=x1; x0=x2;
+rt x1r=hround(.67w-2.5u+.5stem'); top y1=h;
+numeric edge; edge=lft x2l;
+pickup fine.nib; pos3(if hefty:thin_join else: hair fi,0);
+pos4(vair,90); pos5(curve,180); pos6(vair,270); penpos7(x3r-x3l,360);
+lft x3l=min(lft x3l-(rt x3r-tiny.rt x2r),1/3[lft x2,edge]);
+y3=1/8[bar_height,x_height];
+x4l=.5(.67w-serif_fit)-.3u; top y4r=x_height+oo;
+lft x5r=hround max(1.35u-.5curve,.6u); y5=.5x_height;
+x6l=x4l-.2u; bot y6r=-oo;
+x7=x3; y7=min(y3,y6+y4-y3+.6vair);
+(x,y4r)=whatever[z3l,z4l]; x4r:=max(x,.5[x5r,x4]);
+(x',y6r)=whatever[z7l,z6l]; x6r:=max(x',.5[x5r,x6]);
+filldraw stroke z3e{up}...pulled_arc.e(4,5)
+ & pulled_arc.e(5,6)...{up}z7e; % bowl
+y0=ypart(((edge,h)--(edge,0))intersectionpoint(z3l{up}...{left}z4l));
+pickup tiny.nib; bot y2=if serifs:-min(oo,serif_drop) else: 0 fi;
+filldraw stroke z1e--z0'e--z0e--z2e; % stem
+if serifs: sloped_serif.l(1,0',a,1/3,jut,serif_drop); % upper serif
+ sloped_serif.r(2,0,b,1/3,jut,min(oo,serif_drop)); fi % lower serif
+%cmchar "The letter yogh";
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(vair-vair_corr); arm_thickness2=vair;
+ z_stem=.6[vair,stem];
+else: arm_thickness1=1.75vair; arm_thickness2=vair';
+z_stem=.75[vair,stem];fi
+pickup tiny.nib; rt x21r=rt x22r=hround(w-.5u);
+lft x23l=lft x24l=hround rt x2r+1.5u;
+top y21=x_height; y22=min(y21,x_height-2/3arm_thickness1);
+bot y24=.3x_height; y23=max(y24,2/3arm_thickness2);
+numeric alpha;
+alpha=diag_ratio(21,z_stem-tiny,y22-y23,x22r-x23l-slant*(y22-y23));
+penpos21(alpha*(z_stem-tiny),0); penpos22(alpha*(z_stem-tiny),0);
+penpos23(alpha*(z_stem-tiny),0); penpos24(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z23-z22 of currentpen;
+fill top lft z21l--z22l+delta---z23l+delta..lft z23l---lft z24l..bot z24l
+ ---bot rt z24r--z23r-delta---z22r-delta..rt z22r---rt z21r..top z21r
+ ---cycle; % diagonal
+pickup crisp.nib; pos25(arm_thickness1,90); pos26(hair,180);
+top y25r=x_height; x25=x21; lft x26r=x2; y26=good.y(y25l-beak/1.4)-eps;
+arm(25,26,d,beak_darkness,-.4beak_jut); % upper arm and beak
+pos27(arm_thickness2,-90); pos8(hair,0);
+bot y27r=.3x_height;
+x27=x24; rt x8r=hround(w-.75u); y8=good.y(y27l+beak/1.2)+eps;
+numeric top_thickness,mid_thickness,bot_thickness;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+mid_thickness=max(fine.breadth,vround 2/3vair);
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+pickup fine.nib;
+pos16(hair,90); x16=x23l;
+ pos10(bulb_diam2,-180); pos19(cap_hair,-180);
+ lft x10r=hround .45w+.75u;
+x18=.5[x10,x17];
+pos17(curve,0); rt x17r=hround(w-.05u);
+pos18(bot_thickness,-90); bot y18r=-d-o;
+top y16r=.29x_height;
+y17=.4[bot y16l,top y18l];
+filldraw stroke z16e{up}...{down}z17e{z18e}
+ & pulled_super_arc.e(17,18)(.5superpull); % lower bowl
+numeric bulb_diam[];
+ bulb_diam1=flare+.5(cap_stem-stem); bulb_diam2=flare+cap_stem-stem;
+ y10=min(-d+.1x_height+.5bulb_diam2,-d+.3x_height-.5bulb_diam2);
+ bulb(18,19,10); % lower bulb
+penlabels(0,1,2,3,4,5,6,7,21,22,23,24,25,26,27,8,10,16,17,18,19);
+endchar;
+
+cmchar "The letter oo";
+beginchar(oct"100",16.5u#,x_height#,0);
+italcorr .7x_height#*slant;
+adjust_fit(if monospace: .5u#,.5u# else: 0,0 fi);
+penpos1(vair,90); penpos3(vair',-90);
+penpos2(curve,180); penpos4(curve,0);
+x2r=hround max(.5u,1.25u-.5curve);
+x4=.5w; x1=x3=.28w; y1r=h+vround 1.5oo; y3r=-oo;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penpos11(vair,90); penpos13(vair',-90);
+penpos12(curve,180); penpos14(curve,0);
+x12r=x4l;
+x14r=w-x2r; x11=x13=.72w; y11r=h+vround 1.5oo; y13r=-oo;
+y12=y14=.5h-vair_corr; y12l:=y14l:=.52h;
+penstroke pulled_arc.e(11,12) & pulled_arc.e(12,13)
+ & pulled_arc.e(13,14) & pulled_arc.e(14,11) & cycle; % bowl
+penlabels(1,2,3,4,11,12,13,14); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/iromanp.mf b/Master/texmf-dist/fonts/source/public/wsuipa/iromanp.mf
new file mode 100644
index 00000000000..01e4cd59b8d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/iromanp.mf
@@ -0,0 +1,150 @@
+% This is IROMANP.MF in text format, as of Jan. 13, 1988.
+% This file contains `\$' and `\&' and `?' in the so-called roman style.
+
+% Codes \0044, \0046, and \0077 are generated, as well as code |spanish_query|
+% (for a Spanish question mark) if that code value is known.
+
+cmchar "superscript Glottal Stop";
+beginchar(oct"145",8.5u#,asc_height#-desc_depth#,desc_depth#);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.45w-.25u-.5dot_size); bot y8l=0; z7=z8; % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: stem fi;
+pickup fine.nib; pos2(vair,90); pos3(stem,0);
+pos4(.75curve,-90); pos5(bot_width,0); pos6(bot_width,0);
+pos14(bot_width,0); z4l=z14;
+x2=x7; rt x3r=hround(w-u); bot y6=1+oo;
+x4=x5=x6=.75[0,x2];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.45[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+&pulled_super_arc.e(3,4)(superpull)\\}};
+filldraw stroke z14e--- z5e---z6e; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround u; y1=.85[y6,y2];
+ bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Glottal Stop";
+beginchar(oct"142",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.45w-.25u-.5dot_size); bot y8l=0; z7=z8; % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: stem fi;
+pickup fine.nib; pos2(vair,90); pos3(stem,0);
+pos4(.75curve,-90); pos5(bot_width,0); pos6(bot_width,0);
+pos14(bot_width,0); z4l=z14;
+x2=x7; rt x3r=hround(w-u); bot y6=oo;
+x4=x5=x6=1.05[0,x2];
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+&pulled_super_arc.e(3,4)(superpull)\\}};
+filldraw stroke z14e--- z5e---z6e; % arc and stem
+if serifs: pos1(hair,180); pos0(flare,180);
+ lft x1r=hround .5u; y1=.85[y6,y2];
+ bulb(2,1,0); % bulb
+ dish_serif(6,5,c,1/3,.8cap_jut,b,1/3,.8cap_jut); %lower serif
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Reversed Glottal Stop";
+beginchar(oct"143",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.55w+.25u+.5dot_size); bot y8l=0; z7=z8; % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: stem fi;
+pickup fine.nib; pos2(vair,90); pos3(stem,180);
+pos4(.75curve,-90); pos5(bot_width,0); pos6(bot_width,0);
+pos14(bot_width,0); z4l=z14;
+x2=x7; rt x3r=hround(1.5u); bot y6=oo;
+x4=x5=x6=.9x2;
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+&pulled_super_arc.e(3,4)(superpull)\\}};
+filldraw stroke z14e--- z5e---z6e; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ lft x1r=hround w-.5u; y1=.85[y6,y2];
+ bulb(2,1,0); % bulb
+ dish_serif(6,5,c,1/3,.8cap_jut,b,1/3,.8cap_jut); %lower serif
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Inverted Glottal Stop";
+beginchar(oct"144",8.5u#,asc_height#,0);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pos7(dot_size,0); pos8(dot_size,90);
+lft x7l=hround(.55w+.25u+.5dot_size); bot y8l=0; z7=z8; % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: stem fi;
+pickup fine.nib; pos2(vair,90); pos3(stem,180);
+pos4(.75curve,-90); pos5(bot_width,0); pos6(bot_width,0);
+pos14(bot_width,0); z4l=z14;
+x2=x7; rt x3r=hround(1.5u); bot y6=.1h;
+x4=x5=x6=.85x2;
+top y2r=h+oo; y3=.75[y6,y2]; y4=.5[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+&pulled_super_arc.e(3,4)(superpull)\\}};
+
+filldraw stroke z14e--- z5e---z6e; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ lft x1r=hround w-.5u; y1=.85[y6,y2];
+ bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi
+currentpicture:= rvchar;
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "superscript reversed Glottal Stop";
+beginchar(oct"146",8.5u#,asc_height#-desc_depth#,desc_depth#);
+italcorr .8asc_height#*slant;
+adjust_fit(0,0);
+pos7(dot_size,180); pos8(dot_size,90);
+rt x7r=hround(.5w+.25u+.5dot_size); bot y8l=0; z7=z8; % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: stem fi;
+pickup fine.nib; pos2(vair,90); pos3(stem,180);
+pos4(.75curve,-90); pos5(bot_width,0); pos6(bot_width,0);
+pos14(bot_width,0); z4l=z14;
+x2=x7; rt x3r=hround(1.5u); bot y6=1+oo;
+x4=x5=x6=.88x2;
+top y2r=h+oo; y3=.75[y6,y2]; y4=.45[y6,y2]; y5=.1[y6,y2];
+{{interim superness:=more_super;
+filldraw stroke pulled_super_arc.e(2,3)(superpull)
+&pulled_super_arc.e(3,4)(superpull)\\}};
+filldraw stroke z14e--- z5e---z6e; % arc and stem
+if serifs: pos1(hair,0); pos0(flare,0);
+ lft x1r=hround w-u; y1=.85[y6,y2];
+ bulb(2,1,0); % bulb
+else: pos1(Vround 5/7[vair,flare],110);
+ lft x1r=hround u; top y1r=vround .9[y6,top y2r];
+ filldraw stroke term.e(2,1,left,1,4); fi % terminal
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Click ";
+beginchar(oct"073",18u#,asc_height#,desc_depth#); autorounded;
+adjust_fit(if monospace:-3u#,-3u# else: 0,0 fi); pickup light_rule.nib;
+lft x6=hround u; x2=w-x6; top y8=h+o; bot y4=-d-o;
+circle_points; draw_circle; % circle
+fill fullcircle scaled(dot_size+eps) shifted(.5[z4,z8]); % dot
+labels(1,2,3,4,5,6,7,8); endchar;
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/iromanu.mf b/Master/texmf-dist/fonts/source/public/wsuipa/iromanu.mf
new file mode 100644
index 00000000000..d28347e7a78
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/iromanu.mf
@@ -0,0 +1,321 @@
+% This is IROMANU.MF in text format, as of Apr 29, 1992.
+% 29. 4. 1992 (jk) added missing ºslantswitchº in inverted small cap r
+%
+% Computer Modern Roman upper case:
+% These letters were originally coded by D. E. Knuth in November, 1979,
+% inspired by the Monotype faces used in {\sl The Art of Computer Programming}.
+% Sans serif designs by Richard Southall were added in April, 1982.
+% The programs were revised for the new \MF\ conventions in 1985.
+
+def slantswitch = % macro from wncyr
+slant:=-slant;
+currenttransform:=identity slanted slant yscaled aspect_ratio
+ scaled granularity;
+enddef;
+
+
+% Character codes \0101 through \0132 are generated.
+
+cmchar "The letter D";
+beginchar(oct"24",13.5u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve-stem_corr,0);
+penpos6(cap_band,-90); penpos7(cap_band,-90);
+z3r=top z1; y4=y3; y5=.51[y4,y6]; y6=y7;
+z7r=bot z2; x4=x6=.5w+.25u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ nodish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,ic#-.5u#); penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "The letter G";
+if serifs: beginchar(oct"036",14u#,cap_height#,0);
+ italcorr cap_height#*slant-1.5u#-.5cap_serif_fit#;
+ adjust_fit(0,.5cap_serif_fit#);
+ pickup tiny.nib; pos0(cap_stem,0); pos7(cap_stem,0);
+ rt x0r=hround(w-2u); y0=good.y(.1[bar_height,x_height]+1); x7=x0;
+ pickup fine.nib;
+ if hefty: bot y7=0; pos5(cap_stem,0); x5=x0; top y5=tiny.top y0;
+ else: pos5(cap_hair,0); pos8(cap_stem,0);
+ y7=.5bar_height; z5l=z8l; z8=z7; x9=x8r; bot y9=0;
+ filldraw z8l{down}..{4(x9-x8),y9-y8}z9--z8r--cycle; fi % spur
+ pos1(cap_hair,0); pos2(cap_band,90);
+ pos3(cap_curve,180); pos4(cap_band,270);
+ rt x1r=hround(w-2u); lft x3r=hround u; x2=x4=.55[x3,x1];
+ top y2r=h+o; bot y4r=-o; y3=.5[y2,y4];
+ bot y1=min(vround max(.6h,x_height-.5vair),bot y2l-eps);
+ (x2l',y2l)=whatever[z2r,z1l]; x2l:=min(x2l',x2l+.5u);
+ (x4l',y4l)=whatever[z4r,z5l]; x4l:=min(x4l',x4l+.5u);
+ filldraw stroke z1e{x2-x1,10(y2-y1)}
+ ...pulled_arc.e(2,3) & pulled_arc.e(3,4)...z5e{up}; % arc
+ pos6(.3[fine.breadth,cap_hair],0); x6r=x1r; top y6=h+o;
+ x1r-x1'=2cap_curve-fine; y1'=y1;
+ path upper_arc; upper_arc=z1{x2-x1,10(y2-y1)}..z2{left};
+ numeric t; t=xpart(upper_arc intersectiontimes (z6l--z1'));
+ filldraw z1r--z6r--z6l--subpath(t,0) of upper_arc--cycle; % barb
+ pickup tiny.nib; filldraw stroke z0e--z7e; % stem
+ dish_serif(0,7,a,1/3,max(cap_jut,2.25u),b,1/3,1.25u); % serif
+ math_fit(-.3cap_height#*slant-.5u#,ic#);
+else: beginchar(oct"36",12u#,cap_height#,0);
+ italcorr cap_height#*slant-.5u#;
+ adjust_fit(0,0);
+ pickup fine.nib; pos1(1.2flare,80); pos2(slab,90);
+ pos3(cap_curve,180); pos4(slab,270); pos5(flare,270);
+ rt x1r=hround(w-1.35u); x2=x4=.5w+u;
+ lft x3r=hround max(u,2u-.5cap_curve); rt x5l=hround(w-1.2u);
+ top y1r=vround .93h+o; top y2r=h+o; y3=.5h;
+ bot y4r=-o; bot y5r=vround .07h-o;
+ filldraw stroke rterm.e(2,1,right,.9,4)&super_arc.e(2,3)
+ & super_arc.e(3,4) & term.e(4,5,right,1,4); % arc and terminals
+ pos0(stem,0); pos7(stem,0);
+ z7r=z5r; x0=x7; top y0=1+vround .35[bar_height,x_height];
+ filldraw stroke z0e--z7e; % stem
+ pos8(cap_bar,90); pos9(cap_bar,90);
+ z0r=z9r; y8=y9; lft x8=hround x4;
+ filldraw stroke z8e--z9e; % bar
+ math_fit(-.3cap_height#*slant-.5u#,.5ic#); fi
+penlabels(0,1,1',2,3,4,5,6,7,8,9); endchar;
+
+cmchar "The letter I";
+beginchar(oct"52",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "The letter small cap N";
+beginchar(oct"072",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+cmchar "The letter barred I";
+beginchar(oct"53",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#);
+% bar
+pickup rule.nib;
+x10 = hround .1u; x11 = hround(w-x10);
+y10=.5[y1,y2]=y11;
+draw z10--z11;
+penlabels(1,2,10,11); endchar;
+
+cmchar "The letter inverted small cap R";
+beginchar(oct"113",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+slantswitch;
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#);
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180)%
+ reflectedabout((.5w,0),(.5w,h));
+ else: rvchar=currentpicture rotatedabout((.42w,.5h),180);
+ rvchar:=rvchar reflectedabout((.5w,0),(.5w,h));fi
+ slantswitch;
+currentpicture:= rvchar;
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter small cap R";
+beginchar(oct"112",if serifs: 12u#+.5max(2u#,cap_curve#)
+ else:12.5u#-.5width_adj# fi,cap_height#,0);
+italcorr .75cap_height#*slant- if serifs: 1.75 else: .5 fi\\ u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; pos1(cap_stem',0); pos2(cap_stem',0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(vair,-90); penpos7(vair,-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround(.5h+.5vair); x4=x6;
+if serifs: x4=.5w-.5u; x5r=hround(w-2.25u);
+else: x4=.5w+.5u; x5r=hround(w-u); fi
+x4l:=x6l:=x4-.125cap_curve;
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: pos6'(vair,-90); pos0(cap_stem,180);
+ pos8(cap_curve,180); pos9(vair,-90); pos10(hair,0);
+ z6'=z6; lft x0r=lft x8r=hround(x5-2/3u-.5cap_curve);
+ y8=1/3[y2,y7]; y0=3/5[y2,y7]; x9=.5[x8l,x10r];
+ bot y9r=-o; rt x10r=hround(w-.05u); y10=1/4[y2,y7];
+ filldraw stroke z6'e{right}..z0e---z8e....z9e{right}..z10e{up}; % tail
+ nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower serif
+else: penpos8(cap_stem-2stem_corr,0); penpos9(cap_stem,0);
+ x8=x6+.5u; y8=y6; x9r=hround(w-.5u); y9=0;
+ fill z8l--diag_end(8l,9l,.5,1,9r,8r)--z8r--cycle; fi % tail
+math_fit(0,.75ic#);
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "The letter U";
+beginchar(oct"127",13u#+.5width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0)); penlabels(1,2,3,4,5); endchar;
+
+cmchar "The letter barred U";
+beginchar(oct"130",13u#+.5width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+if monospace: adjust_fit(cap_serif_fit#-.5u#,cap_serif_fit#-.5u#)
+else: adjust_fit(cap_serif_fit#,cap_serif_fit#) fi;
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos2'(cap_stem,180); z2'=z2;
+pos3(cap_band,-90);
+pos4(cap_hair,0); pos5(cap_hair,0);
+x1=x2; x3=.5[x1,x5]; x4=x5; x1l=w-x5r;
+top y1=top y5=h; y2=y4=1/3h; bot y3r=-o;
+lft x1l=hround max(2u,3u-.5cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke pulled_arc.e(2',3)
+ & pulled_arc.e(3,4)&z4e--z5e; % arc and right stem
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % left serif
+ dish_serif(5,4,c,1/2,cap_jut,d,1/2,cap_jut)(dark); fi % right serif
+math_fit(-cap_serif_fit#-.3cap_height#*slant-min(cap_height#*slant,u#),
+ max(.5ic#-.5u#,0));
+% bar
+pickup rule.nib;
+x10 = hround.1u; x11 = hround(w-x10);
+y10=.5[y1,y3]=y11;
+draw z10--z11;
+ penlabels(1,2,3,4,5,10,11); endchar;
+
+cmchar "The letter Y";
+beginchar(oct"135",13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Upsilon (Inverted Greek Omega)";
+beginchar(oct"126",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#);
+picture rvchar;
+if slant=0: rvchar=currentpicture rotatedabout((.5w,.5h),180);%
+ else: rvchar=currentpicture rotatedabout((.58w,.5h),180);fi%
+currentpicture:= rvchar;
+penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa10.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa10.mf
new file mode 100644
index 00000000000..fb33e0eda37
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa10.mf
@@ -0,0 +1,109 @@
+% This is WBXIPA10.MF in text format, as of Jan 13, 1988.
+% WSU Computer Modern Bold Extended IPA 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WBXIPA"; font_size 10pt#;
+
+u#:=23/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=17/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=46/36pt#; % lowercase curve breadth
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=13/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=18/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=187/36pt#; % height of caps
+lower.x_height#:=121/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=64/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=15/36pt#; % uppercase hairline breadth
+lower.stem#:=35/36pt#; % lowercase stem breadth
+lower.cap_stem#:=47/36pt#; % uppercase stem breadth
+lower.cap_curve#:=47/36pt#; % uppercase curve breadth
+lower.cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=27/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=8/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=13/36pt#; % serif and arm thickness
+lower.cap_bar#:=13/36pt#; % uppercase bar thickness
+lower.cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=2/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa11.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa11.mf
new file mode 100644
index 00000000000..c72c963d62a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa11.mf
@@ -0,0 +1,109 @@
+% This is WBXIPA11.MF in text format, as of June 10, 1988.
+% Computer Modern Bold Extended IPA 11 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WBXIPA"; font_size 11pt#;
+
+u#:=24.75/36pt#; % unit width
+width_adj#:=11.9/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7.3/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=271.7/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=176/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=93.5/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.38/36pt#; % width of extrafine details
+hair#:=17.23/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=47.66/36pt#; % lowercase curve breadth
+ess#:=40.33/36pt#; % breadth in middle of lowercase s
+flare#:=46.75/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56.83/36pt#; % diameter of dots
+cap_hair#:=19.7/36pt#; % uppercase hairline breadth
+cap_stem#:=52.25/36pt#; % uppercase stem breadth
+cap_curve#:=56/36pt#; % uppercase curve breadth
+cap_ess#:=54/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.61pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=11/36pt#; % vertical distance from serif base to tangent
+jut#:=27.5/36pt#; % protrusion of lowercase serifs
+cap_jut#:=42/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.36/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=13.11/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=17.04/36pt#; % lowercase bar thickness
+slab#:=17.04/36pt#; % serif and arm thickness
+cap_bar#:=17.04/36pt#; % uppercase bar thickness
+cap_band#:=17.04/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=3.66/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.366; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=18.5/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.6/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=246/36pt#; % height of tallest characters
+lower.cap_height#:=203/36pt#; % height of caps
+lower.x_height#:=132/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=71/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=57/36pt#; % depth of comma below baseline
+
+lower.flare#:=35/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=16/36pt#; % uppercase hairline breadth
+lower.stem#:=34/36pt#; % lowercase stem breadth
+lower.cap_stem#:=41/36pt#; % uppercase stem breadth
+lower.cap_curve#:=46/36pt#; % uppercase curve breadth
+lower.cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=8/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=57/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=14/36pt#; % serif and arm thickness
+lower.cap_bar#:=14/36pt#; % uppercase bar thickness
+lower.cap_band#:=14/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=1.8/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa12.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa12.mf
new file mode 100644
index 00000000000..3b5270d0c1b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa12.mf
@@ -0,0 +1,109 @@
+% This is WBXIPA12.MF in text format, as of June 10, 1988.
+% Computer Modern Bold Extended IPA 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WBXIPA"; font_size 12pt#;
+
+u#:=27/36pt#; % unit width
+width_adj#:=13/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=296.4/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=192/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=102/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10.5/36pt#; % width of extrafine details
+hair#:=18.3/36pt#; % lowercase hairline breadth
+stem#:=41/36pt#; % lowercase stem breadth
+curve#:=52/36pt#; % lowercase curve breadth
+ess#:=44/36pt#; % breadth in middle of lowercase s
+flare#:=51/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=62/36pt#; % diameter of dots
+cap_hair#:=20/36pt#; % uppercase hairline breadth
+cap_stem#:=57/36pt#; % uppercase stem breadth
+cap_curve#:=61/36pt#; % uppercase curve breadth
+cap_ess#:=59/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.66pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=12/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=46/36pt#; % protrusion of uppercase serifs
+beak_jut#:=12.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=14.3/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=18.5/36pt#; % lowercase bar thickness
+slab#:=18.5/36pt#; % serif and arm thickness
+cap_bar#:=18.5/36pt#; % uppercase bar thickness
+cap_band#:=18.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=5/36pt#; % amount of overshoot for curves
+apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=20/36pt#; % unit width
+lower.width_adj#:=1pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.88/36pt#; %extra space added to all sidebars
+
+lower.body_height#:=269/36pt#; % height of tallest characters
+lower.cap_height#:=222/36pt#; % height of caps
+lower.x_height#:=144/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=76.5/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=62/36pt#; % depth of comma below baseline
+
+lower.flare#:=38/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=16/36pt#; % uppercase hairline breadth
+lower.stem#:=37/36pt#; % lowercase stem breadth
+lower.cap_stem#:=44/36pt#; % uppercase stem breadth
+lower.cap_curve#:=50/36pt#; % uppercase curve breadth
+lower.cap_ess#:=47/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=32/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=8.6/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=62/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=15/36pt#; % serif and arm thickness
+lower.cap_bar#:=15/36pt#; % uppercase bar thickness
+lower.cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+
+lower.o#:=3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa17.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa17.mf
new file mode 100644
index 00000000000..340760a6330
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa17.mf
@@ -0,0 +1,109 @@
+% This is WBXIPA18.MF in text format, as of June 10, 1988.
+% Computer Modern Bold Extended IPA 17 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WBXIPA"; font_size 17pt#;
+
+u#:=40.5/36pt#; % unit width
+width_adj#:=19.5/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=12/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=486/36pt#; % height of tallest characters
+asc_height#:=450/36pt#; % height of lowercase ascenders
+cap_height#:=444.6/36pt#; % height of caps
+fig_height#:=417.6/36pt#; % height of numerals
+x_height#:=288/36pt#; % height of lowercase without ascenders
+math_axis#:=162/36pt#; % axis of symmetry for math symbols
+bar_height#:=153/36pt#; % height of crossbar in lowercase e
+comma_depth#:=126/36pt#; % depth of comma below baseline
+desc_depth#:=126/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=15.75/36pt#; % width of extrafine details
+hair#:=27.45/36pt#; % lowercase hairline breadth
+stem#:=73.5/36pt#; % lowercase stem breadth
+curve#:=78/36pt#; % lowercase curve breadth
+ess#:=66/36pt#; % breadth in middle of lowercase s
+flare#:=76.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=93/36pt#; % diameter of dots
+cap_hair#:=30/36pt#; % uppercase hairline breadth
+cap_stem#:=85.5/36pt#; % uppercase stem breadth
+cap_curve#:=91.1/36pt#; % uppercase curve breadth
+cap_ess#:=88.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.99pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=45/36pt#; % protrusion of lowercase serifs
+cap_jut#:=69/36pt#; % protrusion of uppercase serifs
+beak_jut#:=18.6/36pt#; % horizontal protrusion of beak serifs
+beak#:=126/36pt#; % vertical protrusion of beak serifs
+vair#:=21.45/36pt#; % vertical diameter of hairlines
+notch_cut#:=18pt#; % maximum breadth above or below notches
+bar#:=27.75/36pt#; % lowercase bar thickness
+slab#:=27.75/36pt#; % serif and arm thickness
+cap_bar#:=27.75/36pt#; % uppercase bar thickness
+cap_band#:=27.75/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+serif_drop#:=5.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7.5/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.41; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=30/36pt#; % unit width
+lower.width_adj#:=2pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=9/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=397/36pt#; % height of tallest characters
+lower.cap_height#:=333/36pt#; % height of caps
+lower.x_height#:=216/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=114/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=93/36pt#; % depth of comma below baseline
+
+lower.flare#:=57/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=24/36pt#; % up percase hairline breadth
+lower.stem#:=58/36pt#; % lowercase stem breadth
+lower.cap_stem#:=68/36pt#; % uppercase stem breadth
+lower.cap_curve#:=75/36pt#; % uppercase curve breadth
+lower.cap_ess#:=70/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=48/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=13/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=93/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=23/36pt#; % seri f and arm thickness
+lower.cap_bar#:=23/36pt#; % upp ercase bar thickness
+lower.cap_band#:=23/36pt#; % up percase thickness above/below lobes
+lower.cap_notch_cut#:=18pt#; % max breadth above/below uppercase notches
+
+lower.o#:=4.7/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa8.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa8.mf
new file mode 100644
index 00000000000..086f2d77288
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa8.mf
@@ -0,0 +1,110 @@
+% Washington State University International Phonetic Alphabet
+% Computer Modern Bold Extended 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WBXIPA"; font_size 8pt#;
+
+u#:=19.6/36pt#; % unit width
+width_adj#:=9.4/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=197.6/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=128/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=67/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=12/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.2/36pt#; % lowercase hairline breadth
+stem#:=35/36pt#; % lowercase stem breadth
+curve#:=39/36pt#; % lowercase curve breadth
+ess#:=32/36pt#; % breadth in middle of lowercase s
+flare#:=39/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=46/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=43/36pt#; % uppercase stem breadth
+cap_curve#:=46/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.54pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=8/36pt#; % vertical distance from serif base to tangent
+jut#:=19/36pt#; % protrusion of lowercase serifs
+cap_jut#:=31/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=55/36pt#; % vertical protrusion of beak serifs
+vair#:=12/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=15/36pt#; % lowercase bar thickness
+slab#:=15/36pt#; % serif and arm thickness
+cap_bar#:=15/36pt#; % uppercase bar thickness
+cap_band#:=15/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.8/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.3/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.9; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=15.68/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4.3/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=1.2/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=159.8/36pt#; % height of tallest characters
+lower.cap_height#:=147.99/36pt#; % height of caps
+lower.x_height#:=92.7/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=52/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=41.59/36pt#; % depth of comma below baseline
+
+lower.flare#:=28/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=13/36pt#; % uppercase hairline breadth
+lower.stem#:=29/36pt#; % lowercase stem breadth
+lower.cap_stem#:=34/36pt#; % uppercase stem breadth
+lower.cap_curve#:=37/36pt#; % uppercase curve breadth
+lower.cap_ess#:=34/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=21/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=6.5/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=40/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=12/36pt#; % serif and arm thickness
+lower.cap_bar#:=12/36pt#; % uppercase bar thickness
+lower.cap_band#:=12/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=8pt#; % m ax breadth above/below uppercase notches
+
+lower.o#:=2.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=1.5/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa9.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa9.mf
new file mode 100644
index 00000000000..5652cbfff0a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wbxipa9.mf
@@ -0,0 +1,109 @@
+% This is WBXIPA9.MF in text format, as of June 10, 1988.
+% Computer Modern Bold Extended IPA 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WBXIPA"; font_size 9pt#;
+
+u#:=21.3/36pt#; % unit width
+width_adj#:=10.2/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=6.2/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=222.3/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=144/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=76/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=16.6/36pt#; % lowercase hairline breadth
+stem#:=38/36pt#; % lowercase stem breadth
+curve#:=43/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=42/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=47/36pt#; % uppercase stem breadth
+cap_curve#:=51/36pt#; % uppercase curve breadth
+cap_ess#:=48/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.57pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=9/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=35/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=12.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=2.7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1.9/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.4/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.7; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.16/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=201/36pt#; % height of tallest characters
+lower.cap_height#:=166.49/36pt#; % height of caps
+lower.x_height#:=106/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=58.49/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=46.79/36pt#; % depth of comma below baseline
+
+lower.flare#:=31/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=15/36pt#; % uppercase hairline breadth
+lower.stem#:=32/36pt#; % lowercase stem breadth
+lower.cap_stem#:=37/36pt#; % uppercase stem breadth
+lower.cap_curve#:=42/36pt#; % uppercase curve breadth
+lower.cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=24.5/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=46/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=13/36pt#; % serif and arm thickness
+lower.cap_bar#:=13/36pt#; % uppercase bar thickness
+lower.cap_band#:=13/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % m ax breadth above/below uppercase notches
+
+lower.o#:=2.5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=2/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wslipa10.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa10.mf
new file mode 100644
index 00000000000..a1ca8930a82
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa10.mf
@@ -0,0 +1,109 @@
+% This is WSLIPA10.MF in text format, as of June 13, 1988.
+% WSU Computer Modern Slanted IPA 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSLIPA"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.5pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wslipa11.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa11.mf
new file mode 100644
index 00000000000..c63ddda77e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa11.mf
@@ -0,0 +1,109 @@
+% This is WSLIPA11.MF in text format, as of Mar 25, 1988.
+% WSU Computer Modern Slanted IPA 11 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSLIPA"; font_size 11pt#;
+
+u#:=21.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=270.6/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=170.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=95.7/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=25.67/36pt#; % lowercase stem breadth
+curve#:=30.25/36pt#; % lowercase curve breadth
+ess#:=27.5/36pt#; % breadth in middle of lowercase s
+flare#:=34.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38.5/36pt#; % diameter of dots
+cap_hair#:=11.15/36pt#; % uppercase hairline breadth
+cap_stem#:=32.1/36pt#; % uppercase stem breadth
+cap_curve#:=38.4/36pt#; % uppercase curve breadth
+cap_ess#:=39.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.41pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=22/36pt#; % vertical distance from serif base to tangent
+jut#:=30.25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37.58/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.45/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=8.2/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=11.46/36pt#; % lowercase bar thickness
+slab#:=11.46/36pt#; % serif and arm thickness
+cap_bar#:=11.46/36pt#; % uppercase bar thickness
+cap_band#:=11.46/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8.25/36pt#; % amount of overshoot for curves
+apex_o#:=8.25/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.08; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=17/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4.3/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.6/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=219/36pt#; % height of tallest characters
+lower.cap_height#:=203/36pt#; % height of caps
+lower.x_height#:=127/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=71/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=57/36pt#; % depth of comma below baseline
+
+lower.flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.2/36pt#; % uppercase hairline breadth
+lower.stem#:=21.56/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=32/36pt#; % uppercase curve breadth
+lower.cap_ess#:=31.6/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26.3/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7.3/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=56/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.4/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.4/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.4/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5.15/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4.12/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wslipa12.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa12.mf
new file mode 100644
index 00000000000..097dde81f04
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa12.mf
@@ -0,0 +1,109 @@
+% This is WSLIPA12.MF in text format, as of Feb 20, 1988.
+% Computer Modern Slanted IPA 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSLIPA"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=18.8/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.88/36pt#; %extra space added to all sidebars
+
+lower.body_height#:=239/36pt#; % height of tallest characters
+lower.cap_height#:=222/36pt#; % height of caps
+lower.x_height#:=139/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=78/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=62/36pt#; % depth of comma below baseline
+
+lower.flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+lower.stem#:=23.5/36pt#; % lowercase stem breadth
+lower.cap_stem#:=28/36pt#; % uppercase stem breadth
+lower.cap_curve#:=33/36pt#; % uppercase curve breadth
+lower.cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=28.7/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7.98/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=62/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=10.3/36pt#; % serif and arm thickness
+lower.cap_bar#:=10.3/36pt#; % uppercase bar thickness
+lower.cap_band#:=10.3/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5.6/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wslipa17.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa17.mf
new file mode 100644
index 00000000000..10dac0e125c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa17.mf
@@ -0,0 +1,112 @@
+% This is WSLIPA17.MF in text format, as of June 10, 1988.
+% Computer Modern Slanted IPA 17 point (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSLIPA"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=425/36pt#; % height of caps
+fig_height#:=401/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=150/36pt#; % height of crossbar in lowercase e
+comma_depth#:=121/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=13/36pt#; % uppercase hairline breadth
+cap_stem#:=41/36pt#; % uppercase stem breadth
+cap_curve#:=47/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=34/36pt#; % vertical distance from serif base to tangent
+jut#:=42/36pt#; % protrusion of lowercase serifs
+cap_jut#:=50/36pt#; % protrusion of uppercase serifs
+beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs
+beak#:=121/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=17pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches
+serif_drop#:=7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=26/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=355/36pt#; % height of tallest characters
+lower.cap_height#:=333/36pt#; % height of caps
+lower.x_height#:=208/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=116/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=93/36pt#; % depth of comma below baseline
+
+lower.flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=14/36pt#; % up percase hairline breadth
+lower.stem#:=44/36pt#; % lowercase stem breadth
+lower.cap_stem#:=42/36pt#; % uppercase stem breadth
+lower.cap_curve#:=50/36pt#; % uppercase curve breadth
+lower.cap_ess#:=45/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=43/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=93/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=15/36pt#; % seri f and arm thickness
+lower.cap_bar#:=15/36pt#; % upp ercase bar thickness
+lower.cap_band#:=15/36pt#; % up percase thickness above/below lobes
+lower.cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+
+lower.o#:=8/36pt#; % amount of overshoot for curves
+lower.apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wslipa8.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa8.mf
new file mode 100644
index 00000000000..85f936c3d9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa8.mf
@@ -0,0 +1,109 @@
+% Washington State University International Phonetic Alphabet
+% Computer Modern Roman Slanted 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSLIPA"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=13.6/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.28/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=1.9/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=159.8/36pt#; % height of tallest characters
+lower.cap_height#:=147.99/36pt#; % height of caps
+lower.x_height#:=92.7/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=52/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=41.59/36pt#; % depth of comma below baseline
+
+lower.flare#:=20.45/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7.85/36pt#; % uppercase hairline breadth
+lower.stem#:=18.48/36pt#; % lowercase stem breadth
+lower.cap_stem#:=21.46/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=21.6/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.88/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=41/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=7.8/36pt#; % serif and arm thickness
+lower.cap_bar#:=7.8/36pt#; % uppercase bar thickness
+lower.cap_band#:=7.8/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=8pt#; % m ax breadth above/below uppercase notches
+
+lower.o#:=3.75/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wslipa9.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa9.mf
new file mode 100644
index 00000000000..e9383aefd03
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wslipa9.mf
@@ -0,0 +1,109 @@
+% This is WSLIPA9.MF in text format, as of June 14, 1988.
+% Computer Modern IPA Slanted 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSLIPA"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=14.8/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.68/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.16/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=179/36pt#; % height of tallest characters
+lower.cap_height#:=166.49/36pt#; % height of caps
+lower.x_height#:=104/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=58.49/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=46.79/36pt#; % depth of comma below baseline
+
+lower.flare#:=22.7/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.27/36pt#; % uppercase hairline breadth
+lower.stem#:=20/36pt#; % lowercase stem breadth
+lower.cap_stem#:=23.49/36pt#; % uppercase stem breadth
+lower.cap_curve#:=27.6/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24.8/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=6.44/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=46.6/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.2/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.2/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.2/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % m ax breadth above/below uppercase notches
+
+lower.o#:=4.3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3.5/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa10.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa10.mf
new file mode 100644
index 00000000000..60b3de52674
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa10.mf
@@ -0,0 +1,109 @@
+% This is WSUIPA10.MF in text format, as of Jan 13, 1988.
+% WSU Computer Modern Roman IPA 10 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSUIPA"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.5pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=25/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=21/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa11.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa11.mf
new file mode 100644
index 00000000000..c0ca3d8bcf1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa11.mf
@@ -0,0 +1,109 @@
+% This is WSUIPA11.MF in text format, as of Mar 25, 1988.
+% WSU Computer Modern Roman IPA 11 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSUIPA"; font_size 11pt#;
+
+u#:=21.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.4/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=297/36pt#; % height of tallest characters
+asc_height#:=275/36pt#; % height of lowercase ascenders
+cap_height#:=270.6/36pt#; % height of caps
+fig_height#:=255.2/36pt#; % height of numerals
+x_height#:=170.5/36pt#; % height of lowercase without ascenders
+math_axis#:=99/36pt#; % axis of symmetry for math symbols
+bar_height#:=95.7/36pt#; % height of crossbar in lowercase e
+comma_depth#:=77/36pt#; % depth of comma below baseline
+desc_depth#:=77/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=25.67/36pt#; % lowercase stem breadth
+curve#:=30.25/36pt#; % lowercase curve breadth
+ess#:=27.5/36pt#; % breadth in middle of lowercase s
+flare#:=34.5/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38.5/36pt#; % diameter of dots
+cap_hair#:=11.15/36pt#; % uppercase hairline breadth
+cap_stem#:=32.1/36pt#; % uppercase stem breadth
+cap_curve#:=38.4/36pt#; % uppercase curve breadth
+cap_ess#:=39.5/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.41pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=22/36pt#; % vertical distance from serif base to tangent
+jut#:=30.25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37.58/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10.45/36pt#; % horizontal protrusion of beak serifs
+beak#:=77/36pt#; % vertical protrusion of beak serifs
+vair#:=8.2/36pt#; % vertical diameter of hairlines
+notch_cut#:=11pt#; % maximum breadth above or below notches
+bar#:=11.46/36pt#; % lowercase bar thickness
+slab#:=11.46/36pt#; % serif and arm thickness
+cap_bar#:=11.46/36pt#; % uppercase bar thickness
+cap_band#:=11.46/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8.25/36pt#; % amount of overshoot for curves
+apex_o#:=8.25/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.08; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=17/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4.3/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.6/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=219/36pt#; % height of tallest characters
+lower.cap_height#:=203/36pt#; % height of caps
+lower.x_height#:=127/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=71/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=57/36pt#; % depth of comma below baseline
+
+lower.flare#:=26/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.2/36pt#; % uppercase hairline breadth
+lower.stem#:=21.56/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=32/36pt#; % uppercase curve breadth
+lower.cap_ess#:=31.6/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26.3/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7.3/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=56/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.4/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.4/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.4/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=11pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5.15/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4.12/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa12.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa12.mf
new file mode 100644
index 00000000000..d80484a712e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa12.mf
@@ -0,0 +1,109 @@
+% This is IPA12.MF in text format, as of Feb 20, 1988.
+% Computer Modern IPA 12 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="IPA"; font_size 12pt#;
+
+u#:=23.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5.8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=324/36pt#; % height of tallest characters
+asc_height#:=300/36pt#; % height of lowercase ascenders
+cap_height#:=295.2/36pt#; % height of caps
+fig_height#:=278.4/36pt#; % height of numerals
+x_height#:=186/36pt#; % height of lowercase without ascenders
+math_axis#:=108/36pt#; % axis of symmetry for math symbols
+bar_height#:=104.4/36pt#; % height of crossbar in lowercase e
+comma_depth#:=84/36pt#; % depth of comma below baseline
+desc_depth#:=84/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7.5/36pt#; % width of extrafine details
+hair#:=9.5/36pt#; % lowercase hairline breadth
+stem#:=28/36pt#; % lowercase stem breadth
+curve#:=33/36pt#; % lowercase curve breadth
+ess#:=30/36pt#; % breadth in middle of lowercase s
+flare#:=36/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=42/36pt#; % diameter of dots
+cap_hair#:=11.5/36pt#; % uppercase hairline breadth
+cap_stem#:=35/36pt#; % uppercase stem breadth
+cap_curve#:=40/36pt#; % uppercase curve breadth
+cap_ess#:=38/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.44pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=24/36pt#; % vertical distance from serif base to tangent
+jut#:=33/36pt#; % protrusion of lowercase serifs
+cap_jut#:=41/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=84/36pt#; % vertical protrusion of beak serifs
+vair#:=8.5/36pt#; % vertical diameter of hairlines
+notch_cut#:=12pt#; % maximum breadth above or below notches
+bar#:=12.5/36pt#; % lowercase bar thickness
+slab#:=12.5/36pt#; % serif and arm thickness
+cap_bar#:=12.5/36pt#; % uppercase bar thickness
+cap_band#:=12.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+serif_drop#:=4.8/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=9/36pt#; % amount of overshoot for curves
+apex_o#:=9/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=18.8/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.88/36pt#; %extra space added to all sidebars
+
+lower.body_height#:=239/36pt#; % height of tallest characters
+lower.cap_height#:=222/36pt#; % height of caps
+lower.x_height#:=139/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=78/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=62/36pt#; % depth of comma below baseline
+
+lower.flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+lower.stem#:=23.5/36pt#; % lowercase stem breadth
+lower.cap_stem#:=28/36pt#; % uppercase stem breadth
+lower.cap_curve#:=33/36pt#; % uppercase curve breadth
+lower.cap_ess#:=30/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=28.7/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7.98/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=62/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=10.3/36pt#; % serif and arm thickness
+lower.cap_bar#:=10.3/36pt#; % uppercase bar thickness
+lower.cap_band#:=10.3/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=12pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5.6/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4.5/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa17.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa17.mf
new file mode 100644
index 00000000000..8bf826bbbe3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa17.mf
@@ -0,0 +1,112 @@
+% This is WSUIPA17.MF in text format, as of June 10, 1988.
+% Computer Modern Roman IPA 17 point (more or less)
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSUIPA"; font_size 17.28pt#;
+
+u#:=32.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=8/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=-0.1pt#; % extra space added to all sidebars
+
+body_height#:=466/36pt#; % height of tallest characters
+asc_height#:=432/36pt#; % height of lowercase ascenders
+cap_height#:=425/36pt#; % height of caps
+fig_height#:=401/36pt#; % height of numerals
+x_height#:=267.8/36pt#; % height of lowercase without ascenders
+math_axis#:=155.5/36pt#; % axis of symmetry for math symbols
+bar_height#:=150/36pt#; % height of crossbar in lowercase e
+comma_depth#:=121/36pt#; % depth of comma below baseline
+desc_depth#:=121/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=9/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=33/36pt#; % lowercase stem breadth
+curve#:=40/36pt#; % lowercase curve breadth
+ess#:=35/36pt#; % breadth in middle of lowercase s
+flare#:=45/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=51/36pt#; % diameter of dots
+cap_hair#:=13/36pt#; % uppercase hairline breadth
+cap_stem#:=41/36pt#; % uppercase stem breadth
+cap_curve#:=47/36pt#; % uppercase curve breadth
+cap_ess#:=43/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=34/36pt#; % vertical distance from serif base to tangent
+jut#:=42/36pt#; % protrusion of lowercase serifs
+cap_jut#:=50/36pt#; % protrusion of uppercase serifs
+beak_jut#:=15/36pt#; % horizontal protrusion of beak serifs
+beak#:=121/36pt#; % vertical protrusion of beak serifs
+vair#:=10/36pt#; % vertical diameter of hairlines
+notch_cut#:=17pt#; % maximum breadth above or below notches
+bar#:=16/36pt#; % lowercase bar thickness
+slab#:=16/36pt#; % serif and arm thickness
+cap_bar#:=16/36pt#; % uppercase bar thickness
+cap_band#:=16/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=17pt#; % max breadth above/below uppercase notches
+serif_drop#:=7/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=10/36pt#; % amount of overshoot for curves
+apex_o#:=10/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=-0.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=26/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=6/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=4/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=355/36pt#; % height of tallest characters
+lower.cap_height#:=333/36pt#; % height of caps
+lower.x_height#:=208/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=116/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=93/36pt#; % depth of comma below baseline
+
+lower.flare#:=40/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=14/36pt#; % up percase hairline breadth
+lower.stem#:=44/36pt#; % lowercase stem breadth
+lower.cap_stem#:=42/36pt#; % uppercase stem breadth
+lower.cap_curve#:=50/36pt#; % uppercase curve breadth
+lower.cap_ess#:=45/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=43/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=93/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=15/36pt#; % seri f and arm thickness
+lower.cap_bar#:=15/36pt#; % upp ercase bar thickness
+lower.cap_band#:=15/36pt#; % up percase thickness above/below lobes
+lower.cap_notch_cut#:=14pt#; % max breadth above/below uppercase notches
+
+lower.o#:=8/36pt#; % amount of overshoot for curves
+lower.apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa8.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa8.mf
new file mode 100644
index 00000000000..7116cbdee3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa8.mf
@@ -0,0 +1,109 @@
+% Washington State University International Phonetic Alphabet
+% Computer Modern Roman 8 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSUIPA"; font_size 8pt#;
+
+u#:=17/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.1/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=216/36pt#; % height of tallest characters
+asc_height#:=200/36pt#; % height of lowercase ascenders
+cap_height#:=196.8/36pt#; % height of caps
+fig_height#:=185.6/36pt#; % height of numerals
+x_height#:=124/36pt#; % height of lowercase without ascenders
+math_axis#:=72/36pt#; % axis of symmetry for math symbols
+bar_height#:=69.6/36pt#; % height of crossbar in lowercase e
+comma_depth#:=56/36pt#; % depth of comma below baseline
+desc_depth#:=56/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=22/36pt#; % lowercase stem breadth
+curve#:=25.5/36pt#; % lowercase curve breadth
+ess#:=23/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=32/36pt#; % diameter of dots
+cap_hair#:=9.5/36pt#; % uppercase hairline breadth
+cap_stem#:=26.5/36pt#; % uppercase stem breadth
+cap_curve#:=30/36pt#; % uppercase curve breadth
+cap_ess#:=27/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.36pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=16/36pt#; % vertical distance from serif base to tangent
+jut#:=22/36pt#; % protrusion of lowercase serifs
+cap_jut#:=29/36pt#; % protrusion of uppercase serifs
+beak_jut#:=8.4/36pt#; % horizontal protrusion of beak serifs
+beak#:=56/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=8pt#; % maximum breadth above or below notches
+bar#:=9.5/36pt#; % lowercase bar thickness
+slab#:=9.5/36pt#; % serif and arm thickness
+cap_bar#:=9.5/36pt#; % uppercase bar thickness
+cap_band#:=9.5/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=8pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.2/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=6/36pt#; % amount of overshoot for curves
+apex_o#:=6/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.4; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=13.6/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.28/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=1.9/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=159.8/36pt#; % height of tallest characters
+lower.cap_height#:=147.99/36pt#; % height of caps
+lower.x_height#:=92.7/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=52/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=41.59/36pt#; % depth of comma below baseline
+
+lower.flare#:=20.45/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=7.85/36pt#; % uppercase hairline breadth
+lower.stem#:=18.48/36pt#; % lowercase stem breadth
+lower.cap_stem#:=21.46/36pt#; % uppercase stem breadth
+lower.cap_curve#:=25/36pt#; % uppercase curve breadth
+lower.cap_ess#:=21.6/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=20/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=5.88/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=41/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=7.8/36pt#; % serif and arm thickness
+lower.cap_bar#:=7.8/36pt#; % uppercase bar thickness
+lower.cap_band#:=7.8/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=8pt#; % m ax breadth above/below uppercase notches
+
+lower.o#:=3.75/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa9.mf b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa9.mf
new file mode 100644
index 00000000000..f1c69d349af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/wsuipa/wsuipa9.mf
@@ -0,0 +1,109 @@
+% This is WSUIPA9.MF in text format, as of March 9, 1988.
+% Computer Modern IPA Roman 9 point
+if unknown cmbase: input cmbase fi
+
+font_identifier:="WSUIPA"; font_size 9pt#;
+
+u#:=18.5/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=4.6/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=243/36pt#; % height of tallest characters
+asc_height#:=225/36pt#; % height of lowercase ascenders
+cap_height#:=221.4/36pt#; % height of caps
+fig_height#:=208.8/36pt#; % height of numerals
+x_height#:=139.5/36pt#; % height of lowercase without ascenders
+math_axis#:=81/36pt#; % axis of symmetry for math symbols
+bar_height#:=78.3/36pt#; % height of crossbar in lowercase e
+comma_depth#:=63/36pt#; % depth of comma below baseline
+desc_depth#:=63/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=24/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=25/36pt#; % breadth in middle of lowercase s
+flare#:=30/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=35/36pt#; % diameter of dots
+cap_hair#:=10/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=33/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.38pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=18/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=33/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9.2/36pt#; % horizontal protrusion of beak serifs
+beak#:=63/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=9pt#; % maximum breadth above or below notches
+bar#:=10/36pt#; % lowercase bar thickness
+slab#:=10/36pt#; % serif and arm thickness
+cap_bar#:=10/36pt#; % uppercase bar thickness
+cap_band#:=10/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=9pt#; % max breadth above/below uppercase notches
+serif_drop#:=3.6/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=7/36pt#; % amount of overshoot for curves
+apex_o#:=7/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.2; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+% now come replacements used to set the lowercase caps
+
+lower.u#:=14.8/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=3.68/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=2.16/36pt#; % extra space added to all sidebars
+
+lower.body_height#:=179/36pt#; % height of tallest characters
+lower.cap_height#:=166.49/36pt#; % height of caps
+lower.x_height#:=104/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=58.49/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=46.79/36pt#; % depth of comma below baseline
+
+lower.flare#:=22.7/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=8.27/36pt#; % uppercase hairline breadth
+lower.stem#:=20/36pt#; % lowercase stem breadth
+lower.cap_stem#:=23.49/36pt#; % uppercase stem breadth
+lower.cap_curve#:=27.6/36pt#; % uppercase curve breadth
+lower.cap_ess#:=24.8/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=23/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=6.44/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=46.6/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=8.2/36pt#; % serif and arm thickness
+lower.cap_bar#:=8.2/36pt#; % uppercase bar thickness
+lower.cap_band#:=8.2/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=9pt#; % m ax breadth above/below uppercase notches
+
+lower.o#:=4.3/36pt#; % amount of overshoot for curves
+lower.apex_o#:=3.5/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+
+generate iparoman % switch to the driver file
diff --git a/Master/texmf-dist/fonts/source/public/xbmc/xbmc10.mf b/Master/texmf-dist/fonts/source/public/xbmc/xbmc10.mf
new file mode 100644
index 00000000000..483565483ea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xbmc/xbmc10.mf
@@ -0,0 +1,6 @@
+% &cm
+if unknown cmbase: input cmbase fi
+extra_endchar := extra_endchar &
+ "currentpicture:=currentpicture " &
+ "reflectedabout((.5[l,r],0),(.5[l,r],1));";
+input cmbx10
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyatip.mf b/Master/texmf-dist/fonts/source/public/xypic/xyatip.mf
new file mode 100644
index 00000000000..234b2b88aff
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyatip.mf
@@ -0,0 +1,69 @@
+% $Id: xyatip.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% Generate upper arrow tips for Xy-pic.
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+% _________________________________________________________________________
+%
+% CONTENTS: Arrow tips *pointing* in all directions. With zero bounding box
+% placed at the tip; note most of the ink goes on the opposite side of where
+% the tip points.
+%
+% Generates the half of the tip that is upper when pointing right.
+% _________________________________________________________________________
+%
+pickup pencircle scaled segw; char_pen := savepen;
+%
+% chartowards makes char cc a tip pointing towards (dx,dy)...
+%
+def chartowards(expr cc,dx,dy) =
+ beginchar(cc,0,0,0);
+ a := angle(dx,dy);
+ z0 = (tipo,0) rotated a; % tip of tip
+ z1 = (-segl,0) rotated a; % center of tail
+ z2 = (-segl,1/2 segx) rotated a; % tail ends
+ z3 = curvature [z1,z2]; % tail directions
+ pickup char_pen; draw z2..{-z3}z0;
+ penlabels(0,1,2,3);
+ endchar
+enddef;
+
+% TESTING...we redefine openit because the characters extend far to the
+% left of the bounding box!
+%
+def openit = openwindow currentwindow
+ from origin to (screen_cols,screen_rows) at (-200,300) enddef;
+
+% GENERATE...
+%
+input xyd
+
+bye.
+%
+% $Log: xyatip.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:05:28 krisrose
+% New for this maintenance release.
+%
+% Based on xyatip10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyatip10.mf b/Master/texmf-dist/fonts/source/public/xypic/xyatip10.mf
new file mode 100644
index 00000000000..59fd91ac0be
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyatip10.mf
@@ -0,0 +1,54 @@
+% $Id: xyatip10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYATIP10: upper arrow tips for Xy-pic at 10 point "technical style".
+% Copyright (c) 1991-1998 Kristoffer H. Rose <krisrose@ens-lyon.fr>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restrictions. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYATIP"; font_size 10pt#;
+mode_setup;
+
+input xytech
+input xyatip
+
+% $Log: xyatip10.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:11:17 kris
+% Ready to release v3?
+%
+% Revision 2.7 1992/12/14 01:41:26 kris
+% Now uses xyd.mf.
+%
+% Revision 2.1 1992/01/02 14:54:07 kris
+% Release version.
+%
+% Revision 1.1 1991/11/27 06:40:24 kris
+% Initial: \beta-test on DIKU.
+%
+% Based on obsolete xytip10.mf v.1.4.
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xybsql10.mf b/Master/texmf-dist/fonts/source/public/xypic/xybsql10.mf
new file mode 100644
index 00000000000..1ea03241e4f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xybsql10.mf
@@ -0,0 +1,82 @@
+% $Id: xybsql10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYBSQL10: lower squiggles/quarter circles for Xy-pic at 10 point.
+% Copyright (c) 1992 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+% _________________________________________________________________________
+%
+% CONTENTS: Squiggles are quarter circles with secant in all directions.
+% Each has zero bounding box around the start point, i.e., from which the
+% quarter circle `turns letf' ... this can be illustrated as follows:
+%
+% Code: [-1] 15 31 47 63 79 95 111 127
+% _
+% | ) | /\
+% _o o o o o- o o o _o
+% | ( |_ \/ |
+% _________________________________________________________________________
+%
+font_identifier "XYBSQL"; font_size 10pt#;
+mode_setup;
+
+% METANESS...
+%
+segl# = sqrt 2 * 1/4 designsize; define_pixels(segl); % segment length
+segx# = (sqrt 2 - 1)*segl#; define_pixels(segx); % segment height
+segw# = .4pt#; define_whole_blacker_pixels(segw); % segment thickness
+%
+pickup pencircle scaled segw; char_pen := savepen;
+%
+% chartowards makes char cc with quarter circle that is secant to line
+% from (0,0) to (dx,dy), turning left.
+%
+def chartowards(expr cc,dx,dy) =
+ beginchar(cc,0,0,0);
+ a := angle (dx,dy);
+ z0 = (0,0); z1 = segl * dir a;
+ pickup char_pen; draw z0{dir(a-45)}..{dir(a+45)}z1;
+ endchar
+enddef;
+
+% GENERATE...
+%
+input xyd
+
+bye.
+%
+% $Log: xybsql10.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:11:17 kris
+% Ready to release v3?
+%
+% Revision 2.7 1992/12/14 01:41:26 kris
+% Now uses xyd.mf.
+%
+% Based on obsolete xyqc10.mf [Revision 2.6 1992/06/24 01:23:34 kris]
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xybtip.mf b/Master/texmf-dist/fonts/source/public/xypic/xybtip.mf
new file mode 100644
index 00000000000..5b7de63a61f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xybtip.mf
@@ -0,0 +1,69 @@
+% $Id: xybtip.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% Generate lower arrow tips for Xy-pic.
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+% _________________________________________________________________________
+%
+% CONTENTS: Arrow tips *pointing* in all directions. With zero bounding box
+% placed at the tip; note most of the ink goes on the opposite side of where
+% the tip points.
+%
+% Generates the half of the tip that is lower when pointing right.
+% _________________________________________________________________________
+%
+pickup pencircle scaled segw; char_pen := savepen;
+%
+% chartowards makes char cc a tip pointing towards (dx,dy)...
+%
+def chartowards(expr cc,dx,dy) =
+ beginchar(cc,0,0,0);
+ a := angle(dx,dy);
+ z0 = (tipo,0) rotated a; % tip of tip
+ z1 = (-segl,0) rotated a; % center of tail
+ z2 = (-segl,-1/2 segx) rotated a; % tail ends
+ z3 = curvature [z1,z2] ; % tail directions
+ pickup char_pen; draw z2..{-z3}z0;
+ penlabels(0,1,2,3);
+ endchar
+enddef;
+
+% TESTING...we redefine openit because the characters extend far to the
+% left of the bounding box!
+%
+def openit = openwindow currentwindow
+ from origin to (screen_cols,screen_rows) at (-200,300) enddef;
+
+% GENERATE...
+%
+input xyd
+
+bye.
+%
+% $Log: xybtip.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:05:28 krisrose
+% New for this maintenance release.
+%
+% Based on xybtip10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xybtip10.mf b/Master/texmf-dist/fonts/source/public/xypic/xybtip10.mf
new file mode 100644
index 00000000000..0e204d9224b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xybtip10.mf
@@ -0,0 +1,54 @@
+% $Id: xybtip10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYBTIP10: lower arrow tips for Xy-pic at 10 point "technical style".
+% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYBTIP"; font_size 10pt#;
+mode_setup;
+
+input xytech
+input xybtip
+
+% $Log: xybtip10.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:11:17 kris
+% Ready to release v3?
+%
+% Revision 2.7 1992/12/14 01:41:26 kris
+% Now uses xyd.mf.
+%
+% Revision 2.1 1992/01/02 14:54:07 kris
+% Release version.
+%
+% Revision 1.1 1991/11/27 06:41:03 kris
+% Initial: \beta-test on DIKU.
+%
+% Based on obsolete xytip10.mf v.1.4.
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycirc10.mf b/Master/texmf-dist/fonts/source/public/xypic/xycirc10.mf
new file mode 100644
index 00000000000..dfdf2f63254
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xycirc10.mf
@@ -0,0 +1,154 @@
+% $Id: xycirc10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYCIRC10: 1/8 circles with varying radii for Xy-pic at 10 point.
+% Copyright (c) 1992,1993 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation, Inc.,
+% 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+% _________________________________________________________________________
+%
+% CONTENTS: 1/8 circles with radii from 1 to 32pt dissected into the 1/8
+% circle segments shown below
+% 6 5
+% ....... _
+% 7 .. | .. 4 |
+% : | | | : | radius
+% : | | | : |
+% Reference point ---> ___:__|___|___|__:_____|
+% : | | | :
+% : | | | :
+% 0 .! | !. 3
+% ...|...
+% 1 2
+%
+% such that each group of 8 characters cc+0 to cc+7 constitute a full circle
+% with the given radius when typeset on the same baseline (as shown).
+%
+% The bounding box of each segment is the vertical slice of the unit square
+% around the circle.
+%
+% The radius is given for each character group g = cc mod 8 by the formula
+%
+% radius [pt] = g+1, if 0 <= g < 8
+% 2(g-8) + 10, if 8 <= g < 12 [= 2g-6]
+% 4(g-12) + 20, if 12 <= g < 16 [= 4g-28]
+%
+% The bounding box of each segment is the smallest box enclosing it (not
+% including the rule width) with reference point on the horizontal line
+% through the center of the circle---so segment 1256 have either height or
+% depth negative.
+% _________________________________________________________________________
+%
+font_identifier "XYCIRC"; font_size 10pt#;
+mode_setup;
+
+% METANESS...
+%
+rulew# = .4pt#; define_whole_blacker_pixels(rulew); % line thickness
+%
+pickup pencircle scaled rulew; char_pen := savepen;
+
+% TESTING...we redefine openit because the characters extend far to the
+% left of the bounding box!
+%
+def openit = %let echar = endchar; def endchar = echar; stop ". " enddef;
+ openwindow currentwindow from origin to (1000,800) at (-200,300)
+enddef;
+
+% FONT.
+%
+% Font dimension 8 is the rule thickness (cf. The TeXbook, app.G)
+%
+font_coding_scheme:="Xy-pic 1/8 circles";
+fontdimen 8: rulew#; % default_rule_thickness
+
+% Use the following macro that generates an entire group from character cc
+% to cc+7 with radius:
+%
+def makeg(expr g,radius) =
+
+ minor# := (1 - sqrt 1/2) * radius;
+ major# := radius - minor#;
+ full# := radius;
+ define_pixels(minor,major,full);
+
+ beginchar(8g ,minor#,full#,full#); pickup char_pen;
+ z0=(0,0); z1=(minor,-major); draw z0{0,-1}..{1,-1}z1;
+ penlabels(0,1); endchar;
+
+ beginchar(8g+1,major#,full#,full#); pickup char_pen;
+ z0=(0,-major); z1=(major,-full ); draw z0{1,-1}..{1,0}z1;
+ penlabels(0,1); endchar;
+
+ beginchar(8g+2,major#,full#,full#); pickup char_pen;
+ z0=(0,-full); z1=(major,-major); draw z0{1,0}..{1, 1}z1;
+ penlabels(0,1); endchar;
+
+ beginchar(8g+3,minor#,full#,full#); pickup char_pen;
+ z0=(0,-major); z1=(minor,0); draw z0{1, 1}..{0, 1}z1;
+ penlabels(0,1); endchar;
+
+ beginchar(8g+4,minor#,full#,full#); pickup char_pen;
+ z0=(0, major); z1=(minor,0); draw z0{1,-1}..{0,-1}z1;
+ penlabels(0,1); endchar;
+
+ beginchar(8g+5,major#,full#,full#); pickup char_pen;
+ z0=(0, full); z1=(major, major); draw z0{1,0}..{1,-1}z1;
+ penlabels(0,1); endchar;
+
+ beginchar(8g+6,major#,full#,full#); pickup char_pen;
+ z0=(0, major); z1=(major, full); draw z0{1, 1}..{1,0}z1;
+ penlabels(0,1); endchar;
+
+ beginchar(8g+7,minor#,full#,full#); pickup char_pen;
+ z0=(0,0); z1=(minor, major); draw z0{0, 1}..{1, 1}z1;
+ penlabels(0,1); endchar
+
+enddef;
+
+% Make groups:
+%
+for g = 0 step 1 until 7: makeg(g, (g+1)*pt#); endfor;
+for g = 8 step 1 until 11: makeg(g, (2g-6)*pt#); endfor;
+for g = 12 step 1 until 15: makeg(g,(4g-28)*pt#); endfor;
+
+bye.
+
+% $Log: xycirc10.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:11:17 kris
+% Ready to release v3?
+%
+% Revision 2.7 1994/03/08 02:09:27 kris
+% Release 3alpha.
+%
+% Revision 2.6.9.1 1994/03/07 04:22:46 kris
+% Last internal 3alpha and pre-2.7 release.
+%
+% NEW file to go in version 2.7!
+% Based on xymisc10.mf [Revision 2.6 1992/06/24 01:23:34 kris]
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycm.mf b/Master/texmf-dist/fonts/source/public/xypic/xycm.mf
new file mode 100644
index 00000000000..414f4883cdb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xycm.mf
@@ -0,0 +1,40 @@
+% $Id: xycm.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% Parameter file for Xy-pic "Computer Modern style" arrow tips.
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+segl# = 1/5 designsize; define_pixels(segl); % segment length
+segx# = 1/2 designsize; define_pixels(segx); % segment height
+segw# = .4pt#; define_whole_blacker_pixels(segw); % segment thickness
+%
+tipo# = 0#; define_pixels(tipo); % tip overshoot
+curvature = 1/3; % 1 = straight tails, 0= curved tails
+%
+% $Log: xycm.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Extracted from xycmat10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmat10.mf b/Master/texmf-dist/fonts/source/public/xypic/xycmat10.mf
new file mode 100644
index 00000000000..cc35ec797cc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xycmat10.mf
@@ -0,0 +1,53 @@
+% $Id: xycmat10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYCMAT10: upper arrow tips for Xy-pic at 10 point "Computer Modern style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYCMAT"; font_size 10pt#;
+mode_setup;
+
+input xycm
+input xyatip
+
+% $Log: xycmat10.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:11:17 kris
+% Ready to release v3?
+%
+% Revision 2.12 1994/10/25 11:34:25 kris
+% Interim release just before v3 [works with AMS-LaTeX 1.2]...
+%
+% Recreated from xyatip10.mf (Revision 2.7 1992/12/14 01:41:26 kris).
+%
+% Revision 2.6 1993/10/21 21:21:24 kris
+% NEW for 2.7...
+%
+% Based on xyatip10.mf [2.6] and Knuth's SYMBOL.MF.
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmat11.mf b/Master/texmf-dist/fonts/source/public/xypic/xycmat11.mf
new file mode 100644
index 00000000000..7be6b114d3a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xycmat11.mf
@@ -0,0 +1,39 @@
+% $Id: xycmat11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYCMAT11: upper arrow tips for Xy-pic at 11 point "Computer Modern style".
+% Copyright (c) 1995 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYCMAT"; font_size 11pt#;
+mode_setup;
+
+input xycm
+input xyatip
+
+% $Log: xycmat11.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on xycmat10.mf,v 3.0 1995/07/07 20:14:21 kris Exp krisrose
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmat12.mf b/Master/texmf-dist/fonts/source/public/xypic/xycmat12.mf
new file mode 100644
index 00000000000..2feec42944d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xycmat12.mf
@@ -0,0 +1,39 @@
+% $Id: xycmat12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYCMAT12: upper arrow tips for Xy-pic at 12 point "Computer Modern style".
+% Copyright (c) 1995 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYCMAT"; font_size 12pt#;
+mode_setup;
+
+input xycm
+input xyatip
+
+% $Log: xycmat12.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on xycmat10.mf,v 3.0 1995/07/07 20:14:21 kris Exp krisrose
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmbt10.mf b/Master/texmf-dist/fonts/source/public/xypic/xycmbt10.mf
new file mode 100644
index 00000000000..d61f4bda2a3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xycmbt10.mf
@@ -0,0 +1,53 @@
+% $Id: xycmbt10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYCMBT10: lower arrow tips for Xy-pic at 10 point "Computer Modern style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYCMBT"; font_size 10pt#;
+mode_setup;
+
+input xycm
+input xybtip
+
+% $Log: xycmbt10.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:11:17 kris
+% Ready to release v3?
+%
+% Revision 2.12 1994/10/25 11:34:25 kris
+% Interim release just before v3 [works with AMS-LaTeX 1.2]...
+%
+% Recreated from xybtip10.mf (Revision 2.7 1992/12/14 01:41:26 kris).
+%
+% Revision 2.6 1993/10/21 21:21:24 kris
+% NEW for 2.7...
+%
+% Based on xyatip10.mf [2.6] and Knuth's SYMBOL.MF.
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmbt11.mf b/Master/texmf-dist/fonts/source/public/xypic/xycmbt11.mf
new file mode 100644
index 00000000000..10da60b2fd7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xycmbt11.mf
@@ -0,0 +1,39 @@
+% $Id: xycmbt11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYCMBT11: lower arrow tips for Xy-pic at 11 point "Computer Modern style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYCMBT"; font_size 11pt#;
+mode_setup;
+
+input xycm
+input xybtip
+
+% $Log: xycmbt11.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on : xycmbt10.mf,v 3.0 1995/07/07 20:14:21 kris Exp kris
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xycmbt12.mf b/Master/texmf-dist/fonts/source/public/xypic/xycmbt12.mf
new file mode 100644
index 00000000000..005aa7d5373
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xycmbt12.mf
@@ -0,0 +1,39 @@
+% $Id: xycmbt12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYCMBT12: lower arrow tips for Xy-pic at 12 point "Computer Modern style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYCMBT"; font_size 12pt#;
+mode_setup;
+
+input xycm
+input xybtip
+
+% $Log: xycmbt12.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on : xycmbt10.mf,v 3.0 1995/07/07 20:14:21 kris Exp kris
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyd.mf b/Master/texmf-dist/fonts/source/public/xypic/xyd.mf
new file mode 100644
index 00000000000..2c5b85384a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyd.mf
@@ -0,0 +1,71 @@
+% $Id: xyd.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYD: generate characters of `Xy-pic Directional' font.
+% Copyright (c) 1992 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+% _________________________________________________________________________
+%
+% CONTENTS: Generate `directional' characters from 0..127 by calling
+% `chartowards(Code, Dx, Dy)' with
+%
+% Code: 0 15 31 47 63 79 95 111 127
+% Dx,Dy: -15/16,-1 0,-1 1,-1 1,0 1,1 0,1 -1,1 -1,0 -1,-1
+% / | \
+% Direction: o o o o- o o o -o o
+% / | \ /
+%
+% where the intervening codes are got by interpolating either Dx or Dy as
+% appropriate.
+% _________________________________________________________________________
+%
+% Parameters:
+%
+font_coding_scheme:="Xy-pic directional";
+%
+font_x_height segx#;
+font_quad segl#;
+fontdimen 8: segw#; % default_rule_thickness
+%
+% Characters:
+%
+for cc = 0 step 1 until 31: chartowards(cc,(cc-15)/16, -1); endfor;
+for cc = 32 step 1 until 63: chartowards(cc, 1, (cc-47)/16); endfor;
+for cc = 64 step 1 until 95: chartowards(cc,(79-cc)/16, 1); endfor;
+for cc = 96 step 1 until 127: chartowards(cc, -1,(111-cc)/16); endfor;
+%
+% $Log: xyd.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:11:17 kris
+% Ready to release v3?
+%
+% Revision 2.7 1992/12/14 01:41:26 kris
+% Generate all Xy-pic `directional' characters.
+%
+% Extracted from xyatip10.mf [Revision 2.1 1992/01/02 14:54:07 kris]
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyd2.mf b/Master/texmf-dist/fonts/source/public/xypic/xyd2.mf
new file mode 100644
index 00000000000..150f1d2963d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyd2.mf
@@ -0,0 +1,73 @@
+% $Id: xyd2.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYD2: generate characters of `Xy-pic SemiDirectional' font.
+% Copyright (c) 1992 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+% _________________________________________________________________________
+%
+% CONTENTS: Generate `semidirectional' characters from 0..127 by calling
+% `chartowards(Code, Dx, Dy)' with
+%
+% Code: 0 30 31 63 95 127
+% Dx,Dy: 31/32,1 1/32,1 0,-1 1,-1 1,0 1,1
+% / | /
+% Direction: o o o o o- o
+% | \
+%
+% where the intervening codes are got by interpolating either Dx or Dy as
+% appropriate.
+% _________________________________________________________________________
+%
+% Parameters:
+%
+font_coding_scheme:="Xy-pic semidirectional";
+%
+font_x_height segx#;
+font_quad segl#;
+fontdimen 8: segw#; % default_rule_thickness
+%
+% Characters:
+%
+for cc = 0 step 1 until 30: chartowards(cc,(31-cc)/32, 1); endfor;
+for cc = 31 step 1 until 63: chartowards(cc,(cc-31)/32, -1); endfor;
+for cc = 64 step 1 until 127: chartowards(cc, 1,(cc-95)/32); endfor;
+%
+% $Log: xyd2.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:11:17 kris
+% Ready to release v3?
+%
+% Revision 2.12 1994/10/25 11:34:25 kris
+% Interim release just before v3 [works with AMS-LaTeX 1.2]...
+%
+% Revision 2.7 1992/12/14 01:41:26 kris
+% Generate all Xy-pic `semidirectionsl' characters.
+%
+% Extracted from xyline10.mf [Revision 2.1 1992/01/02 14:54:07 kris]
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xydash10.mf b/Master/texmf-dist/fonts/source/public/xypic/xydash10.mf
new file mode 100644
index 00000000000..c378acf0a59
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xydash10.mf
@@ -0,0 +1,84 @@
+% $Id: xydash10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYDASH10: dashes for Xy-pic at 10 point.
+% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+% _________________________________________________________________________
+%
+% CONTENTS: Line segments going segl# in all rightward directions...each
+% character has (width + italic correction) = cos(direction) * segl#.
+% _________________________________________________________________________
+%
+% SETUP:
+%
+font_identifier "XYDASH"; font_size 10pt#;
+mode_setup;
+
+% METANESS...
+%
+segl# = 1/2 designsize; define_pixels(segl); % segment length
+segx# = 1/5 designsize; define_pixels(segx); % segment height
+segw# = .4pt#; define_whole_blacker_pixels(segw); % segment thickness
+%
+pickup pencircle scaled segw; char_pen := savepen;
+%
+% chartowards makes char cc with length segl line from (0,0) towards (dx,dy)...
+%
+def chartowards(expr cc,dx,dy) =
+ beginchar(cc, abs(dx)*segl#, 0, 0);
+ a := angle(dx,dy);
+ z0 = (0,0); z1 = z0 + dir a scaled segl;
+ pickup char_pen; draw z0--z1;
+ charic := abs ((cosd a)*segl#) - charwd;
+ penlabels(0,1);
+ endchar
+enddef;
+
+% TESTING...we redefine openit because the characters extend far to the
+% left of the bounding box!
+%
+def openit = openwindow currentwindow
+ from origin to (screen_cols,screen_rows) at (-200,300) enddef;
+
+% GENERATE...
+%
+input xyd2
+
+bye.
+%
+% $Log: xydash10.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.13 1995/07/04 15:11:17 kris
+% Ready to release v3?
+%
+% Revision 2.7 1992/12/14 01:41:26 kris
+% Now uses xyd2.mf.
+%
+% Based on obsolete xyline10.mf 2.1 1992/01/02 14:54:07 kris
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeuat10.mf b/Master/texmf-dist/fonts/source/public/xypic/xyeuat10.mf
new file mode 100644
index 00000000000..8dbde2e8898
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyeuat10.mf
@@ -0,0 +1,39 @@
+% $Id: xyeuat10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYEUAT10: upper arrow tips for Xy-pic at 10 point "Euler style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYEUAT"; font_size 10pt#;
+mode_setup;
+
+input xyeuler
+input xyatip
+
+% $Log: xyeuat10.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on xycmat10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeuat11.mf b/Master/texmf-dist/fonts/source/public/xypic/xyeuat11.mf
new file mode 100644
index 00000000000..0b467291030
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyeuat11.mf
@@ -0,0 +1,39 @@
+% $Id: xyeuat11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYEUAT11: upper arrow tips for Xy-pic at 11 point "Euler style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this font file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYEUAT"; font_size 11pt#;
+mode_setup;
+
+input xyeuler
+input xyatip
+
+% $Log: xyeuat11.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on xycmat10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeuat12.mf b/Master/texmf-dist/fonts/source/public/xypic/xyeuat12.mf
new file mode 100644
index 00000000000..76f4d457d25
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyeuat12.mf
@@ -0,0 +1,39 @@
+% $Id: xyeuat12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYEUAT12: upper arrow tips for Xy-pic at 12 point "Euler style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this font file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYEUAT"; font_size 12pt#;
+mode_setup;
+
+input xyeuler
+input xyatip
+
+% $Log: xyeuat12.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on xycmat10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeubt10.mf b/Master/texmf-dist/fonts/source/public/xypic/xyeubt10.mf
new file mode 100644
index 00000000000..051f2f71ec7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyeubt10.mf
@@ -0,0 +1,39 @@
+% $Id: xyeubt10.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYEUBT10: lower arrow tips for Xy-pic at 10 point "Euler style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this font file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYEUBT"; font_size 10pt#;
+mode_setup;
+
+input xyeuler
+input xybtip
+
+% $Log: xyeubt10.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on xycmbt10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeubt11.mf b/Master/texmf-dist/fonts/source/public/xypic/xyeubt11.mf
new file mode 100644
index 00000000000..8a0511ea75a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyeubt11.mf
@@ -0,0 +1,39 @@
+% $Id: xyeubt11.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYEUBT11: lower arrow tips for Xy-pic at 11 point "Euler style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this font file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYEUBT"; font_size 11pt#;
+mode_setup;
+
+input xyeuler
+input xybtip
+
+% $Log: xyeubt11.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on xycmbt10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeubt12.mf b/Master/texmf-dist/fonts/source/public/xypic/xyeubt12.mf
new file mode 100644
index 00000000000..c1cca0f2155
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyeubt12.mf
@@ -0,0 +1,39 @@
+% $Id: xyeubt12.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% XYEUBT12: lower arrow tips for Xy-pic at 12 point "Euler style".
+% Copyright (c) 1994-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this font file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+font_identifier "XYEUBT"; font_size 12pt#;
+mode_setup;
+
+input xyeuler
+input xybtip
+
+% $Log: xyeubt12.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on xycmbt10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyeuler.mf b/Master/texmf-dist/fonts/source/public/xypic/xyeuler.mf
new file mode 100644
index 00000000000..fb4bb53c719
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyeuler.mf
@@ -0,0 +1,40 @@
+% $Id: xyeuler.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% Parameter file for Xy-pic "Euler style" arrow tips.
+% Copyright (c) 1995 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this font file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+segl# = 1/8 designsize; define_pixels(segl); % segment length
+segx# = 7/16 designsize; define_pixels(segx); % segment height
+segw# = .4pt#; define_whole_blacker_pixels(segw); % segment thickness
+%
+tipo# = 0#; define_pixels(tipo); % tip overshoot
+curvature = 2/3; % 1 = straight tails, 0= curved tails
+%
+% $Log: xyeuler.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 04:12:13 krisrose
+% New for this maintenance release.
+%
+% Based on xycmat10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyline10.mf b/Master/texmf-dist/fonts/source/public/xypic/xyline10.mf
new file mode 100644
index 00000000000..a80f7ced61b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyline10.mf
@@ -0,0 +1,114 @@
+% $Id: xyline10.mf,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-tex-*-
+%
+% XYLINE10: line segments for XY mode at 10 point.
+% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the XY-pic macro package.
+%
+% The XY-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The XY-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation, Inc.,
+% 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% CONTENTS: Line segments going either segl# down or to the right. Codes
+% range from 0 to 127, distributed evenly in each of the
+% intervals between the `purely' horizontal/
+% vertical/diagonal characters with code 31, ..../
+% 63, 95, and 127 (code -1 would be pure as : /:
+% well if it existed): : / :
+% :/ :
+% ..../ ..../ | o o.... o.... o---- o...:
+% : /: : /: | | :\ : :\ :
+% : / : : / : | | : \ : : \ :
+% :/ : :/ : | | : \: : \:
+% o...: o...: o | :...\ :...\
+%
+% Code: [-1] 0 30 31 63 64 95 127
+%
+font_identifier "XYLINE"; font_size 10pt#;
+font_coding_scheme:="XY line segments";
+mode_setup;
+
+% METANESS...
+%
+segl# = 1/2 designsize; define_pixels(segl); % line segment length
+rulew# = .4pt#; define_whole_blacker_pixels(rulew); % line thickness
+%
+% drawsegment draws a line from (0,0) to the argument point...
+def drawsegment expr endpoint =
+ z0 = (0,0); z1 = endpoint;
+ pickup pencircle scaled rulew rotated (angle (z1-z0) - 90);
+ draw z0--z1; penlabels(0,1) enddef;
+
+% TESTING...we redefine openit because the characters extend far to the
+% left of the bounding box!
+%
+def openit = openwindow currentwindow
+ from origin to (screen_cols,screen_rows) at (-200,300) enddef;
+
+% FONT.
+%
+% Font dimension 8 is the rule thickness (cf. The TeXbook, app.G)
+fontdimen 8: rulew#;
+%
+% The characters follow...
+%
+for cc = 0 step 1 until 30:
+ beginchar(cc,(31-cc)/32*segl#,segl#,0); drawsegment (w,h); endchar;
+endfor;
+%
+for cc = 31 step 1 until 63:
+ beginchar(cc,(cc-31)/32*segl#,0,segl#); drawsegment (w,-d); endchar;
+endfor;
+%
+for cc = 64 step 1 until 94:
+ beginchar(cc,segl#,0,(95-cc)/32*segl#); drawsegment (w,-d); endchar;
+endfor;
+%
+for cc = 95 step 1 until 126:
+ beginchar(cc,segl#,(cc-95)/32*segl#,0); drawsegment (w,h); endchar;
+endfor;
+%
+beginchar(127,segl#,segl#,0); drawsegment (w,h); endchar;
+
+bye.
+%
+% $Log: xyline10.mf,v $
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.1 1992/01/02 14:54:07 kris
+% Release version.
+%
+% Revision 1.7 1991/12/17 04:51:16 kris
+% Version distributed with `final draft' on Usenet.
+%
+% Revision 1.6 1991/11/27 06:54:21 kris
+% \beta-test on DIKU.
+%
+% Revision 1.5 1991/10/21 23:19:08 kris
+% Version described in DIKU student report 91-7-10.
+%
+% Revision 1.4 1991/07/28 22:16:18 kris
+% Inverted char0..30 to avoid negative widths.
+%
+% Revision 1.3 1991/07/26 01:22:28 kris
+% Set bounding box completely!
+%
+% Revision 1.2 91/06/09 21:59:49 kris
+% separated METANESS and CHARACTERS
+%
+% Revision 1.1 91/06/06 22:52:31 kris
+% furst succesful attempt
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xymisc10.mf b/Master/texmf-dist/fonts/source/public/xypic/xymisc10.mf
new file mode 100644
index 00000000000..96027754d8d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xymisc10.mf
@@ -0,0 +1,138 @@
+% $Id: xymisc10.mf,v 3.3 1996/12/19 03:31:56 krisrose Exp $ -*-tex-*-
+%
+% XYMISC10: miscellaneous characters for XY mode at 10 point.
+% Copyright (c) 1991,1992 Kristoffer H. Rose <krisrose@brics.dk>
+%
+% This file is part of the XY-pic macro package.
+%
+% The XY-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The XY-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation, Inc.,
+% 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% CONTENTS:
+% Metaness.
+% Testing...
+% Font.
+% Dot fitting the rule width.
+% Quarter circles with radii from 1 to 10 and 12 to 30 pt; all have
+% height = depth = .5width = radius and are centered such that they
+% enter and leave the box in the middle of the sides.
+%
+font_identifier "XYMISC"; font_size 10pt#;
+font_coding_scheme:="XY miscellaneous";
+mode_setup;
+
+% METANESS...
+%
+rulew# = .4pt#; define_whole_blacker_pixels(rulew); % line thickness
+%
+def pickuppen = pickup pencircle scaled rulew enddef;
+
+% TESTING...we redefine openit because the characters extend far to the
+% left of the bounding box!
+%
+def openit = %%let echar = endchar; def endchar = echar; stop ". " enddef;
+ openwindow currentwindow
+ from origin to (1000,800) at (-200,300)
+ enddef;
+
+% FONT.
+%
+% Font dimension 8 is the rule thickness (cf. The TeXbook, app.G)
+fontdimen 8: rulew#;
+
+% DOT FOR DOTTED LINES AND DUMMY CIRCLE...
+%
+beginchar(0,0,0,0); pickuppen; drawdot (0,0); endchar;
+beginchar(1,0,0,0); pickuppen; drawdot (0,0); endchar;
+beginchar(2,0,0,0); pickuppen; drawdot (0,0); endchar;
+beginchar(3,0,0,0); pickuppen; drawdot (0,0); endchar;
+
+% QUARTER CIRCLES... The four circles with radius N pt, 0 < N <= 10, are
+% located at N*4 + QUADRANT, where 1 <= QUADRANT <= 4. All have width as
+% their radius with reference point at the level of the horizontal end of the
+% arc and height, depth as the extent of the arc.
+%
+for radius = 1 step 1 until 10:
+ beginchar(radius*4,2radius*pt#,radius*pt#,radius*pt#);
+ pickuppen;
+ draw quartercircle rotated 180 shifted (1,.5) scaled (radius*2pt);
+ endchar;
+ beginchar(radius*4+1,2radius*pt#,radius*pt#,radius*pt#);
+ pickuppen;
+ draw quartercircle rotated -90 shifted (0,.5) scaled (radius*2pt);
+ endchar;
+ beginchar(radius*4+2,2radius*pt#,radius*pt#,radius*pt#);
+ pickuppen;
+ draw quartercircle shifted (0,-.5) scaled (radius*2pt);
+ endchar;
+ beginchar(radius*4+3,2radius*pt#,radius*pt#,radius*pt#);
+ pickuppen;
+ draw quartercircle rotated 90 shifted (1,-.5) scaled (radius*2pt);
+ endchar;
+endfor;
+%
+% For 12 <= N <= 40 we step in 2pt increments... so for 10 <= N <= 40 the
+% quarter circle with radius N is located at (N div 2 + 20 + QUADRANT).
+%
+for radius = 12 step 2 until 40:
+ beginchar(radius*2+20,2radius*pt#,radius*pt#,radius*pt#);
+ pickuppen;
+ draw quartercircle rotated 180 shifted (1,.5) scaled (radius*2pt);
+ endchar;
+ beginchar(radius*2+21,2radius*pt#,radius*pt#,radius*pt#);
+ pickuppen;
+ draw quartercircle rotated -90 shifted (0,.5) scaled (radius*2pt);
+ endchar;
+ beginchar(radius*2+22,2radius*pt#,radius*pt#,radius*pt#);
+ pickuppen;
+ draw quartercircle shifted (0,-.5) scaled (radius*2pt);
+ endchar;
+ beginchar(radius*2+23,2radius*pt#,radius*pt#,radius*pt#);
+ pickuppen;
+ draw quartercircle rotated 90 shifted (1,-.5) scaled (radius*2pt);
+ endchar;
+endfor;
+
+bye.
+%
+% $Log: xymisc10.mf,v $
+% Revision 3.3 1996/12/19 03:31:56 krisrose
+% Maintenance release
+%
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.6 1992/06/24 01:23:34 kris
+% Cleaned up.
+%
+% Revision 2.1 1992/01/02 14:54:07 kris
+% Release version.
+%
+% Revision 1.6 1991/11/27 06:54:21 kris
+% \beta-test on DIKU.
+%
+% Revision 1.5 1991/10/21 23:19:08 kris
+% Version described in DIKU student report 91-7-10.
+%
+% Revision 1.4 1991/08/22 01:07:46 kris
+% Now has quarter circles to radius 40pt as required for xy.doc[1.28].
+%
+% Revision 1.3 1991/07/21 21:04:35 kris
+% Tested with xy.doc[1.19].
+%
+% Revision 1.2 1991/07/19 14:52:26 kris
+% Changed quarter circles to fit xy.doc[1.19?].
+%
+% Revision 1.1 1991/06/24 20:57:37 kris
+% Works with xy.doc [1.6] :-)
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xyqc10.mf b/Master/texmf-dist/fonts/source/public/xypic/xyqc10.mf
new file mode 100644
index 00000000000..f1dc3c79a49
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xyqc10.mf
@@ -0,0 +1,94 @@
+% $Id: xyqc10.mf,v 3.0 1995/07/07 20:14:21 kris Exp $ -*-tex-*-
+%
+% XYQC10: quarter circles for XY mode at 10 point.
+% Copyright (c) 1992 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the XY-pic macro package.
+%
+% The XY-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The XY-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation, Inc.,
+% 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% CONTENTS: Quarter circles in all directions:
+%
+% -.
+% | ) | /\
+% o o o o-' o o o .-o o
+% ( |_ \/ | (
+%
+% Code: [-1] 15 31 47 65 79 95 111 127
+%
+% Each character has a cosinoid bounding box :-) with wd = cos I = sin F,
+% where I,F are the angles from direction --> to the initial,final direction.
+%
+font_identifier "XYQC"; font_size 10pt#;
+font_coding_scheme:="XY quarter circles";
+mode_setup;
+
+% METANESS...
+%
+qcd# = 1/2 designsize; % quarter circle diameter
+rulew# = .4pt#; % quarter circle line width
+define_pixels(qcd,rulew);
+%
+% beginqc draws the quarter circle starting in the direction towards endpoint
+% and turning left...
+def beginqc(expr cc,ex,ey) =
+ alpha := angle (ex,ey);
+ cw := sqrt(1/2) * abs(sind(alpha + 135));
+ beginchar(cc,cw*qcd#,0,0);
+ pickup pencircle scaled rulew rotated (alpha - 90);
+ if (cc<64): draw quartercircle shifted (-.5,0) rotated (alpha - 90)
+ scaled qcd
+ else: draw quartercircle shifted (-.5,0) rotated (alpha - 90) shifted (cw,0)
+ scaled qcd
+ fi
+enddef;
+
+% TESTING...we redefine openit because the characters extend far to the
+% left of the bounding box!
+%
+def openit = openwindow currentwindow
+ from origin to (screen_cols,screen_rows) at (-200,200) enddef;
+
+% FONT.
+%
+% Font dimension 8 is the rule thickness (cf. The TeXbook, app.G).
+fontdimen 8: rulew#;
+%
+% Here are the characters...
+%
+for cc = 0 step 1 until 31:
+ beginqc(cc,cc-15,-16); endchar;
+endfor;
+%
+for cc = 32 step 1 until 63:
+ beginqc(cc,16,cc-47); endchar;
+endfor;
+%
+for cc = 64 step 1 until 95:
+ beginqc(cc,79-cc,16); endchar;
+endfor;
+%
+for cc = 96 step 1 until 127:
+ beginqc(cc,-16,111-cc); endchar;
+endfor;
+
+bye.
+%
+% $Log: xyqc10.mf,v $
+% Revision 3.0 1995/07/07 20:14:21 kris
+% Major release w/new User's Guide!
+%
+% Revision 2.6 1992/06/24 01:23:34 kris
+% Implemented and used for hooks.
diff --git a/Master/texmf-dist/fonts/source/public/xypic/xytech.mf b/Master/texmf-dist/fonts/source/public/xypic/xytech.mf
new file mode 100644
index 00000000000..e4c6b830f7f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/xypic/xytech.mf
@@ -0,0 +1,40 @@
+% $Id: xytech.mf,v 3.7 1999/02/16 15:12:50 krisrose Exp $
+%
+% Parameter file for Xy-pic "technical style" arrow tips.
+% Copyright (c) 1991-1996 Kristoffer H. Rose <kris@diku.dk>
+%
+% This file is part of the Xy-pic macro package.
+%
+% The Xy-pic macro package is free software; you can redistribute it and/or
+% modify it under the terms of the GNU General Public License as published by
+% the Free Software Foundation; either version 2 of the License, or (at your
+% option) any later version.
+%
+% The Xy-pic macro package is distributed in the hope that it will be
+% useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+% Public License for more details.
+%
+% You should have received a copy of the GNU General Public License along
+% with this macro package; if not, write to the Free Software Foundation,
+% Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+%
+% As a special exception, you may use this font file and all files derived
+% from it without restriction. This special exception was added with
+% version 3.7 of Xy-pic.
+%
+segl# = 1/2 designsize; define_pixels(segl); % segment length
+segx# = 0.62 segl#; define_pixels(segx); % segment height
+segw# = .4pt#; define_whole_blacker_pixels(segw); % segment thickness
+%
+tipo# = 0#; define_pixels(tipo); % tip overshoot
+curvature = 1/3; % 1 = straight tails, 0= curved tails
+%
+% $Log: xytech.mf,v $
+% Revision 3.7 1999/02/16 15:12:50 krisrose
+% Interim release (Y&Y fonts now free).
+%
+% Revision 3.3 1996/12/19 03:53:24 krisrose
+% Maintenance release.
+%
+% Extracted from xyatip10.mf,v 3.0 1995/07/07 20:14:21 kris Exp
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/csc_misce.mf b/Master/texmf-dist/fonts/source/public/yannisgr/csc_misce.mf
new file mode 100644
index 00000000000..69713927111
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/csc_misce.mf
@@ -0,0 +1,678 @@
+cmchar "Tao";
+beginchar(oct"177",18u#,cap_height#,18u#-cap_height#);
+adjust_fit(0,0); pickup fine.nib;
+bot y1=cap_height;
+y2=-d; y3=.5[y1,y2];
+y6=.666[y2,y3]; y7=.333[y2,y3];
+top y5=.333[y3,y1]; bot y4=.666[y3,y1];
+y11=.25[y2,y1]; y10=.75[y2,y1]; y13=y3;x13=w;
+x1=x2=x3=x4=x5=x6=x7=.5w; penpos2(hair,90);
+lft x10=.25w; lft x11=.75w;
+draw z1..z2..cycle;
+fill z6..z7..cycle;
+fill z2r{right}..z11{up}..z3{left}..z10{up}..z1{right}..
+z13{down}..z2l{left}--z2r..cycle;
+unfill z4..z5..cycle; penlabels(1,2,3,4,5,6,7,10,11,13);
+endchar;
+
+picture savedpicture;
+
+cmchar "Diaeresis";
+beginchar(oct"042",9u#,circ_ht#,0);
+adjust_fit(0,0);diaeresis(.5w);
+endchar;
+picture savedpicture;
+
+cmchar "Iota subscript";
+beginchar("|",9u#,0,.6desc_depth#);
+adjust_fit(0,0);iota_sub(.5w);
+endchar;
+picture savedpicture;
+
+
+def width = 5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = if monospace: u#,u# else:0,2curve#-3u# fi enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ pos1(flare,180); lft x1r=hround u; top y1=x_height+oo; % top
+ numeric neck; neck=.2[hair,stem];
+ pos2(neck,180); .2[lft x2r,rt x2l]=.2[lft x1r,rt x1l]; % neck
+ pos3(curve,-90); bot y3r=-oo; % bottom
+ y2r=if monowidth: 2 else: 1.5 fi[bot y3r,top y3l];
+ z3r-z2r=whatever*(1,-1.25);
+ if monowidth:
+ y4r+.5neck=vround y2r; x3=.5[x2,x4]; pos4(neck,0); % tip of hook
+ filldraw stroke z4e...z3e...z2e---z1e;
+ else:
+ z4l=z4r; top y4r=y2r; z4l-z3l=whatever*(1,1);
+ path p.r, p.l; forsuffixes e=r,l: p.e=z1e---z2e...z3e...z4e; endfor
+ rt x3.5r=hround(rt xpart directionpoint up of p.r);
+ z4'r=direction 3 of p.r; z3'r=direction 2 of p.r;
+ forever: % avoid bad vertical tangent between 2l and 3l
+ x2.5l:= rt xpart directionpoint down of p.l;
+ exitif abs(hround(x2.5l)-x2.5l)<.05;
+ x2l:=x2l+hround(x2.5l)-x2.5l; p.l:=(z1l---z2l...z3l...z4l);
+ endfor
+ p.r:=z1r---z2r...club.r(3,3.5,4);
+ % avoid bad vertical tangent between 3r and 4r
+ filldraw stroke p.e;
+ fi
+ traba(.5u);
+ numeric x_baryctr; x_baryctr=x1;
+enddef;
+
+
+cmchar "Inverse lowercase iota with circumflex";
+beginchar(oct"126",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr);
+transform anokato; anokato:= identity rotatedaround ((.5w,.5[y3r,y1]),180);
+currentpicture:= currentpicture transformed anokato;
+endchar;
+
+picture savedpicture;
+
+def width = 8.5u enddef;
+def height = x_height enddef;
+def depth = desc_depth enddef;
+def dims = width#,height#,depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter_rho =
+adjust_fit(0,0);
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5x_height; % left and right
+ top y2r=x_height+oo; bot y6r=-oo; x2r=x6r=.5w; % top and bottom
+ filldraw stroke
+ gr_arc.e(4,5,6)(curve,vair,-otilt) & gr_arc.e(6,7,8)(curve,vair,-otilt) &
+ gr_arc.e(8,1,2)(curve,vair,-otilt) & gr_arc.e(2,3,4)(curve,vair,-otilt);
+ if straight:
+ y9-.5stem=-d-oo; x9=x4; pos9(stem,180); % end of handle
+ filldraw circ_stroke z9e..z4e;
+ else:
+ y9=-d-oo; x9=lft x4r+.5stem; % end of handle
+ pos9(stem,angle((z9-z4)xscaled3)-120); z9'r=z9'l=(z9-z4)xscaled3;
+ rt x10l=lft x10r+vair; % vertical tangents of handle
+ x10r=x4r-epsilon; assign_z4'r((-2eps,-1)); % so club.r won't get confused
+ filldraw double_circ_stroke club.e(4,10,9);
+ fi
+ numeric x_baryctr; x_baryctr=x2; % breathing placement
+enddef;
+
+cmchar "Lowercase rho with rough breathing";
+beginchar(oct"010",width#,acc_ht#,depth#);
+gen_letter_rho; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase rho with smooth breathing";
+beginchar(oct"011",width#,acc_ht#,depth#);
+gen_letter_rho; spirit(x_baryctr)>; endchar;
+
+picture savedpicture;
+
+cmchar "Uppercase Qappa";
+beginchar(oct"103",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: dish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); transform antistrofh;
+antistrofh=identity reflectedabout ((w/2,0),(w/2,1));
+picture krufo;
+krufo=currentpicture transformed antistrofh;
+picture currentpicture;
+currentpicture=krufo;
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+picture savedpicture;
+
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+cmchar "lowercase sanpi";
+beginchar(oct"136",13u#,.9body_height#,0);
+adjust_fit(0,0);
+penpos1(vstem,135); penpos2(1.2cap_stem,0);
+x2r=hround(w-.75u); y2=0;
+top y1=hround(h-u); lft x1r=0;
+fill z2l{-4/5,1}..z1l--z1r..{3/5,-1}z2r--z2l--cycle;
+penpos3(cap_stem,45); penpos4(hair,0);
+penpos8(hair,-45);
+penpos5(cap_stem,45); penpos6(hair,0);
+penpos7(hair,-45);
+x3=x8=.33x2l; x5=x7=2x3;
+x4r=x3-vstem;
+x6r=x5-.8vstem;
+y4=.5y8; y6=.5y7;
+y3=y5=0;
+y8=.66h; y7=.45h;
+filldraw circ_stroke z3e...z4e...z8e;
+filldraw circ_stroke z5e...z6e...z7e;
+penlabels(1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture;
+
+cmchar "lowercase qoppa";
+beginchar(oct"133",9u#,.5(body_height#+x_height#),0);
+adjust_fit(0,0);
+pickup pencircle xscaled vstem rotated 25;
+y1=y2=x_height; x1=1.5u; x2=7.5u;
+draw z1..z2..cycle;
+penpos3(hair,0); penpos4(1.7stem,45);
+y3=x_height-3u;
+x3=x4=4.5u; y4=0;
+filldraw circ_stroke z4e---z3e;
+penlabels(1,2,3,4);
+endchar;
+picture savedpicture;
+
+def gen_qoppa =
+pickup pencircle xscaled 1.11stem rotated 25;
+y1=0.5x_height; y2-y1=0.125d; y3=-d; y4-y1=y2-y3;
+x1=0; rt x2=w; x2-x3=.25w; x4-x1=.25w;
+draw z1--z2;
+draw z3--z2;
+draw z1--z4;
+enddef;
+
+cmchar "variation of lowercase qoppa";
+beginchar(oct"134",8u#,1.125desc_depth#,desc_depth#);
+adjust_fit(0,0);
+gen_qoppa;
+endchar;
+picture savedpicture;
+
+cmchar "Uppercase Sanpi";
+beginchar(oct"137",15u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =8/12y0;
+y5r-y5l=y6r-y6l=cap_band;
+y7=0;x7=x1+x6-x5;
+penpos7(whatever,180);
+x1r-x1l=x7r-x7l;fill z6r--z7l--z7r--z6l--z6r--cycle;
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ prime_points_inside(7,6); numeric med_jut;
+med_jut=x7l-x4l+inner_jut+x7-outer_jut;
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(7',6,e,1/2,med_jut,f,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+def gen_digamma =
+pickup pencircle xscaled 1.11stem rotated 25;
+y1=-desc_depth;
+y4=x_height=y5;
+y2=y3=.55x_height;
+lft x1=0; x2=x4=x1;
+rt x5=w; rt x3=.65w;
+draw z1--z2--z4;
+draw z4--z5;
+draw z2--z3;
+enddef;
+
+cmchar "variation of lowercase digamma";
+beginchar(oct"020",8u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+gen_digamma;
+endchar;
+
+vstem#:=cap_stem#;
+
+cmchar "lowercase digamma version 3.12.88";
+beginchar(oct"135",10u#,x_height#+2vstem#,2vstem#)
+adjust_fit(0,0);
+pickup fine.nib;
+pos0(hair,-180); pos3(1.2vstem,90);
+pos4(hair,-180); pos5(1.5vstem,-90);
+pos6(hair,-180); pos8(hair,90);
+pos7(vstem,90); pos9(hair,-90);
+pos10(hair,-180);pos11(hair,-90);
+pos12(hair,-135); pos13(hair,-180); pos14(hair,-90);
+z8=z10;
+bot y9r=-2vstem; bot y8l=0; bot y7l=0; y5=y4;
+y6=.5(y5r-y8r); y4=.5x_height+.7vstem;
+y3l=x_height; y0=x_height+2vstem; y11=.25x_height; y12l=y14l=y13l=y9l;
+x8=.5w; x9=x8+vstem; x7=.25w;
+x6=.75w; x5=x8; lft x4r=0; x3=.66w; x11=x7;
+x0=1.2w; x12l=x14l=x13l; x13=x8;
+filldraw circ_stroke z0e{down}...z3e{left}...z4e{down};
+filldraw double_circ_stroke z4e{down}...z11e{right}...z5e{right}...
+z6e{down}...z8e{left};
+filldraw circ_stroke z8e{left}...z7e{left};
+filldraw circ_stroke z9e{left}---z14e...z12e...z13e---z10e{up};
+penlabels(0,3,4,5,6,7,8,9,10);
+endchar;
+
+def gen_Digamma =
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#);
+enddef;
+
+cmchar "Uppercase digamma (in our days known as F)";
+beginchar(oct"021",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+gen_Digamma;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+
+cmchar"upper numeric stroke";
+beginchar(oct"044",5u#,acc_ht#,0);
+adjust_fit(0,0); acute(.3w);
+endchar;
+picture savedpicture;
+
+cmchar"under numeric stroke";
+beginchar(oct"046",5u#,acc_ht#,desc_depth#);
+adjust_fit(0,0); acute(.7w);
+transform katebasma;
+katebasma:=identity shifted (0,-acc_ht);
+currentpicture:=currentpicture transformed katebasma;
+transform gurisma;
+gurisma:=identity rotatedaround(.5[z21,z22] transformed katebasma,180);
+currentpicture:=currentpicture transformed gurisma;
+endchar;
+picture savedpicture;
+
+cmchar "Grave accent";
+beginchar(oct"001",9u#,acc_ht#,0);
+adjust_fit(0,0);grave(.5w);
+endchar;
+
+cmchar "Rough breathing with grave";
+beginchar(oct"002",9u#,acc_ht#,0);
+adjust_fit(0,0);spirit_grave(.5w)<;
+endchar;
+
+cmchar "Smooth breathing with grave";
+beginchar(oct"003",9u#,Circ_ht#,0);
+adjust_fit(0,0);spirit_grave(.5w)>;
+endchar;
+
+cmchar "Diaeresis with grave";
+beginchar(oct"004",9u#,acc_ht#,0);
+adjust_fit(0,0);diaeresis_grave(.5w);
+endchar;
+
+cmchar "Diaeresis with circumflex";
+beginchar(oct"005",9u#,Circ_ht#,0);
+adjust_fit(0,0);diaeresis_circumflex(.5w);
+endchar;
+
+cmchar "Breve accent";
+beginchar(oct"006",9u#,min(asc_height#,2x_height#),0);
+italcorr h#*slant+1.0vair#-1.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(1.5vair,-180); pos3(1.5vair,0);
+top y1=top y3=h; lft x1r=w-rt x3r=hround(2u-.5vair);
+numeric mid_thickness; mid_thickness=vround 1/3[vair,stem];
+pos2(mid_thickness,-90); x2=.5w;
+bot y2r=vround max(x_height+o+tiny,1/3[x_height,h]+o-.5mid_thickness);
+filldraw stroke z1e{down}...z2e{right}...{up}z3e; % stroke
+endchar;
+
+cmchar "Macron (bar) accent";
+numeric macron_breadth#; macron_breadth#=.2[vair#,stem#];
+beginchar(oct"007",9u#,.4[x_height#,asc_height#]+macron_breadth#,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric macron_breadth; macron_breadth:=Vround .2[vair,stem];
+pickup if serifs: crisp.nib else: fine.nib fi;
+pos1(macron_breadth,90); pos2(macron_breadth,90);
+top y1r=top y2r=h+o; lft x1=w-rt x2=hround 1.25u;
+filldraw stroke z1e--z2e; % bar
+endchar;
+
+old_u#:=u#; % unit width
+old_width_adj#:=width_adj#; % width adjustment for certain characters
+old_cap_serif_fit#:=cap_serif_fit#;
+old_cap_height#:=cap_height#; % height of caps
+old_desc_depth#:=desc_depth#;
+
+old_beak#:=beak#;
+old_tiny#:=tiny#; % diameter of rounded corners
+old_fine#:=fine#; % diameter of sharply rounded corners
+old_hair#:=hair#; % lowercase hairline breadth
+old_stem#:=stem#; % lowercase stem breadth
+old_curve#:=curve#; % lowercase curve breadth
+old_cap_stem#:=cap_stem#; % uppercase stem breadth
+old_o#:=o#;
+
+old_cap_jut#:=cap_jut#; % protrusion of uppercase serifs
+old_beak_jut#:=beak_jut#; % horizontal protrusion of beak serifs
+old_vair#:=vair#; % vertical diameter of hairlines
+old_slab#:=slab#; % serif and arm thickness
+old_cap_bar#:=cap_bar#; % uppercase bar thickness
+old_stem_corr#:=stem_corr#; % for small refinements of stem breadth
+old_otilt:=otilt;
+
+old_beak_darkness:=beak_darkness; % fraction of triangle inside beak serifs
+
+% parameters for the four slanted characters
+
+slant:=ysl_slant;
+font_setup;
+
+cmchar "Slanted Lowercase rho with rough breathing";
+beginchar(oct"012",width#,acc_ht#,depth#);
+gen_letter_rho; spirit(x_baryctr)<; endchar;
+
+cmchar "Slanted Lowercase rho with smooth breathing";
+beginchar(oct"013",width#,acc_ht#,depth#);
+gen_letter_rho; spirit(x_baryctr)>; endchar;
+
+cmchar "Slanted Uppercase digamma (in our days known as F)";
+beginchar(oct"023",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+gen_Digamma;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "slanted variation of lowercase digamma";
+beginchar(oct"022",8u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+gen_digamma;
+endchar;
+
+picture savedpicture;
+
+
+
+
+% parameters for the four italic characters
+
+u#:=yit_u#; % unit width
+
+hair#:=yit_hair#; % lowercase hairline breadth
+curve#:=yit_curve#; % lowercase curve breadth
+cap_stem#:=yit_cap_stem#; % uppercase stem breadth
+cap_jut#:=yit_cap_jut#; % protrusion of uppercase serifs
+beak_jut#:=yit_beak_jut#; % horizontal protrusion of beak serifs
+
+slant:=yit_slant; % tilt ratio $(\Delta x/\Delta y)$
+font_setup;
+
+def width = 8.25u enddef;
+def height = x_height enddef;
+def depth = desc_depth enddef;
+def dims = width#,height#,depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_it_rho =
+adjust_fit(0,0); pickup fine.nib;
+pos2(stem,180); pos3(vair,90); pos4(curve,0); pos5(vair,-90); pos6(stem,-180);
+lft x2r=hround(1.5u-.5stem); x2=x6; x3=x5=.5[x2,x4];
+rt x4r=hround(w-1.5u+.5curve);
+y2=y4=y6=.5[y3,y5]; top y3r=x_height+oo; bot y5r=-oo;
+filldraw circ_stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & pulled_arc.e(5,6); % bowl
+pos2'(hair,-180); z2'r=z2r; pos1(vstem,-90); pos1'(vstem,90); z1'=z1;
+pos0(hair,0); rt x0r=hround(w-u); bot y0=-d; bot y1r=vround-.9d; x1=x5;
+interim superness:=sqrt superness;
+filldraw stroke pulled_arc.e(0,1'); filldraw stroke pulled_arc.e(1,2'); % tail
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+ numeric x_baryctr; x_baryctr=x3; % breathing placement
+enddef;
+
+cmchar "Italic Lowercase rho with rough breathing";
+beginchar(oct"014",width#,acc_ht#,depth#);
+gen_it_rho; spirit(x_baryctr)<; endchar;
+
+cmchar "Italic Lowercase rho with smooth breathing";
+beginchar(oct"015",width#,acc_ht#,depth#);
+gen_it_rho; spirit(x_baryctr)>; endchar;
+
+cmchar "Italic Uppercase digamma (in our days known as F)";
+beginchar(oct"025",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+gen_Digamma;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic variation of lowercase digamma";
+beginchar(oct"024",8u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+gen_digamma;
+endchar;
+
+% parameters for the four boldface characters
+
+u#:=ybf_u#; % unit width
+width_adj#:=ybf_width_adj#; % width adjustment for certain characters
+cap_serif_fit#:=ybf_cap_serif_fit#;
+cap_height#:=ybf_cap_height#; % height of caps
+x_height#:=ybf_x_height#; % height of lowercase without ascenders
+
+tiny#:=ybf_tiny#; % diameter of rounded corners
+fine#:=ybf_fine#; % diameter of sharply rounded corners
+hair#:=ybf_hair#; % lowercase hairline breadth
+stem#:=ybf_stem#; % lowercase stem breadth
+curve#:=ybf_curve#; % lowercase curve breadth
+cap_stem#:=ybf_cap_stem#; % uppercase stem breadth
+o#:=ybf_o#;
+
+cap_jut#:=ybf_cap_jut#; % protrusion of uppercase serifs
+beak_jut#:=ybf_beak_jut#; % horizontal protrusion of beak serifs
+vair#:=ybf_vair#; % vertical diameter of hairlines
+slab#:=ybf_slab#; % serif and arm thickness
+cap_bar#:=ybf_cap_bar#; % uppercase bar thickness
+stem_corr#:=ybf_stem_corr#; % for small refinements of stem breadth
+
+slant:=ybf_slant; % tilt ratio $(\Delta x/\Delta y)$
+beak_darkness:=ybf_beak_darkness; % fraction of triangle inside beak serifs
+font_setup;
+
+cmchar "Boldface Lowercase rho with rough breathing";
+beginchar(oct"016",width#,acc_ht#,depth#);
+gen_letter_rho; spirit(x_baryctr)<; endchar;
+
+cmchar "Boldface Lowercase rho with smooth breathing";
+beginchar(oct"017",width#,acc_ht#,depth#);
+gen_letter_rho; spirit(x_baryctr)>; endchar;
+
+cmchar "Boldface Uppercase digamma (in our days known as F)";
+beginchar(oct"027",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+gen_Digamma;
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Boldface variation of lowercase digamma";
+beginchar(oct"026",8u#,x_height#,desc_depth#);
+adjust_fit(0,0);
+gen_digamma;
+endchar;
+
+u#:=old_u#; % unit width
+width_adj#:=old_width_adj#; % width adjustment for certain characters
+cap_serif_fit#:=old_cap_serif_fit#;
+cap_height#:=old_cap_height#; % height of caps
+desc_depth#:=old_desc_depth#;
+
+beak#:=old_beak#;
+tiny#:=old_tiny#; % diameter of rounded corners
+fine#:=old_fine#; % diameter of sharply rounded corners
+hair#:=old_hair#; % lowercase hairline breadth
+stem#:=old_stem#; % lowercase stem breadth
+curve#:=old_curve#; % lowercase curve breadth
+cap_stem#:=old_cap_stem#; % uppercase stem breadth
+o#:=old_o#;
+
+cap_jut#:=old_cap_jut#; % protrusion of uppercase serifs
+beak_jut#:=old_beak_jut#; % horizontal protrusion of beak serifs
+vair#:=old_vair#; % vertical diameter of hairlines
+slab#:=old_slab#; % serif and arm thickness
+cap_bar#:=old_cap_bar#; % uppercase bar thickness
+stem_corr#:=old_stem_corr#; % for small refinements of stem breadth
+otilt:=old_otilt;
+
+beak_darkness:=old_beak_darkness; % fraction of triangle inside beak serifs
+font_setup;
+
+old_ht#:=ht#; % height of characters
+old_xgap#:=xgap#; % horizontal adjustment
+old_u#:=u#; % unit width
+old_s#:=s#; % extra space at the left and the right
+old_o#:=o#; % overshoot
+old_px#:=px#; % horizontal thickness of pen
+ht#:=logo_ht#; % height of characters
+xgap#:=logo_xgap#; % horizontal adjustment
+u#:=logo_u#; % unit width
+s#:=logo_s#; % extra space at the left and the right
+o#:=logo_o#; % overshoot
+px#:=logo_px#; % horizontal thickness of pen
+ygap#:=(ht#/13.5u#)*xgap#; % vertical adjustment
+ho#:=o#; % horizontal overshoot
+leftstemloc#:=2.5u#+s#; % position of left stem
+barheight#:=.45ht#; % height of bar lines
+py#:=.9px#; % vertical pen thickness
+
+define_pixels(s,u);
+define_whole_pixels(xgap);
+define_whole_vertical_pixels(ygap);
+define_blacker_pixels(px,py);
+pickup pencircle xscaled px yscaled py;
+logo_pen:=savepen;
+define_good_x_pixels(leftstemloc);
+define_good_y_pixels(barheight);
+define_corrected_pixels(o);
+define_horizontal_corrected_pixels(ho);
+
+def beginlogochar(expr code, unit_width) =
+ beginchar(code,unit_width*u#+2s#,ht#,0);
+ pickup logo_pen enddef;
+
+def super_half(suffix i,j,k) =
+ draw z.i{0,y.j-y.i}
+ ... (.8[x.j,x.i],.8[y.i,y.j]){z.j-z.i}
+ ... z.j{x.k-x.i,0}
+ ... (.8[x.j,x.k],.8[y.k,y.j]){z.k-z.j}
+ ... z.k{0,y.k-y.j} enddef;
+
+beginlogochar(oct"030",18);
+adjust_fit(0,0);
+x1=x2=leftstemloc; x4=x5=w-x1; x3=w-x3;
+y1=y5; y2=y4; bot y1=-o;
+top y2=h+o; y3=y1+ygap;
+draw z1--z2--z3--z4--z5;
+labels(1,2,3,4,5); endchar;
+
+beginlogochar(oct"031",14);
+adjust_fit(0,0);
+x1=x2=x3=leftstemloc;
+x4=x6=w-x1+ho; x5=x4-xgap;
+y1=y6; y2=y5; y3=y4;
+bot y1=0; top y3=h; y2=barheight;
+draw z6--z1--z3--z4; draw z2--z5;
+labels(1,2,3,4,5,6); endchar;
+
+beginlogochar(oct"032",13);
+adjust_fit(0,0);
+italcorr ht#*slant + .5u#;
+if .5w<>good.x .5w: change_width; fi
+lft x1=-eps; x2=w-x1; x3=x4=.5w;
+y1=y2=y3; top y1=h; bot y4=-o;
+draw z1--z2; draw z3--z4;
+labels(1,2,3,4); endchar;
+
+beginlogochar(oct"033",15);
+adjust_fit(0,0);
+x1=.5w; x2=x4=leftstemloc; x3=x5=w-x2;
+top y1=h+o; y2=y3=barheight;
+bot y4=bot y5=-o;
+draw z4--z2--z3--z5; super_half(2,1,3);
+labels(1,2,3,4,5); endchar;
+
+beginlogochar(oct"034",15);
+adjust_fit(0,0);
+x1=x4=x5=x6=.5w; top y5=h+o; bot y6=-o; draw z5--z6;
+top y1=h-py; bot y4=py;
+x2=w-x3=good.x(1.5u+s); y2=y3=barheight;
+super_half(2,1,3); super_half(2,4,3);
+labels(1,2,3,4); endchar;
+
+beginlogochar(oct"040",14);
+adjust_fit(0,0);
+x1=x2=x3=leftstemloc;
+x4=w-x1+ho; x5=x4-xgap;
+y2=y5; y3=y4; bot y1=-o;
+top y3=h; y2=barheight;
+draw z1--z3--z4; draw z2--z5;
+labels(1,2,3,4,5); endchar;
+
+beginlogochar(oct"036",15);
+adjust_fit(0,0);
+x1=x4=.5w; top y1=h+o; bot y4=-o;
+x2=w-x3=good.x(1.5u+s); y2=y3=barheight;
+super_half(2,1,3); super_half(2,4,3);
+labels(1,2,3,4); endchar;
+
+beginlogochar(oct"037",15);
+adjust_fit(0,0);
+x1=x2=leftstemloc; x3=x4=x5=w-x1;
+bot y1=bot y4=-o;
+top y2=top y5=h+o; y3=y4+ygap;
+draw z1--z2--z3; draw z4--z5;
+labels(1,2,3,4,5); endchar;
+
+ht#:=old_ht#; % height of characters
+xgap#:=old_xgap#; % horizontal adjustment
+u#:=old_u#; % unit width
+s#:=old_s#; % extra space at the left and the right
+o#:=old_o#; % overshoot
+px#:=old_px#; % horizontal thickness of pen
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/gen_m_acc.mf b/Master/texmf-dist/fonts/source/public/yannisgr/gen_m_acc.mf
new file mode 100644
index 00000000000..fa444ada679
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/gen_m_acc.mf
@@ -0,0 +1,69 @@
+def separator=max(1,vround(1/12x_height)) enddef;
+
+
+vardef diaeresis(expr center)=
+ generate_diaeresis(center,dot_size,dot_size+1/8w,h,x_height+separator);
+enddef;
+
+vardef generate_diaeresis(expr center,target_dot_diam,sep,eff_h,base)=
+pickup tiny.nib; numeric dot_diam;
+dot_diam:=max(tiny.breadth,hround(target_dot_diam));
+pos31(dot_diam,0); pos32(dot_diam,90); x31=x32; top y32r=vround(eff_h);
+if bot y32l<base: y32l:=min(y32r-eps,base+.5currentbreadth); fi
+y31=.5[y32l,y32r];
+pos33(dot_diam,0); penpos34(y32r-y32l,90); y33=y34=y31; x33=x34;
+if sep>0 : center=.5[x31,x33]; x33-x31=sep;
+else:
+ y35l=y35r=.5[y31,y32]; z35l=whatever[z21l,z22l]; z35r=whatever[z21r,z22r];
+ rt x31r=hround((min(x35l,x35r)-.5currentbreadth)-.05w);
+ lft x33l=hround((max(x35l,x35r)+.5currentbreadth)+.05w);
+fi
+dot(31,32); dot(33,34);
+penlabels(31,32,33,34,35);
+enddef;
+
+vardef generate_universal(expr center)=
+x91=center+.15u;x94=center-.15u;
+y91=y94=x_height+1.5separator;
+x92=x91+.3univ_acc_breadth*(body_height-x_height);
+x93=x91-.3univ_acc_breadth*(body_height-x_height);
+y93=y92=y91+univ_acc_breadth*(body_height-x_height);
+fill z91--z92--z93--z94--cycle;
+enddef;
+
+vardef universal(expr center)=
+generate_universal(center);
+enddef;
+
+vardef diaeresis_universal(expr center)=
+x91=center;
+y91=x_height+separator+dot_size;
+x92=x91+.5univ_acc_breadth*(body_height-x_height);
+x93=x91-.5univ_acc_breadth*(body_height-x_height);
+y93=y92=y91+.866univ_acc_breadth*(body_height-x_height);
+fill z91--z92--z93--cycle;
+generate_diaeresis(center,dot_size,
+1.3univ_acc_breadth*(body_height-x_height),
+.6[h,x_height],
+x_height+separator);
+enddef;
+
+def acute(expr center)=
+generate_universal(center);
+enddef;
+def circumflex(expr center)=
+generate_universal(center);
+enddef;
+def corr_circumflex(expr center,katiallo)=
+generate_universal(center);
+enddef;
+def spirit(expr center)text type =
+;
+enddef;
+def spirit_acute(expr center)text type =
+generate_universal(center);
+enddef;
+def spirit_circumflex(expr center)text type =
+generate_universal(center);
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/greekcsc.mf b/Master/texmf-dist/fonts/source/public/yannisgr/greekcsc.mf
new file mode 100644
index 00000000000..fa64c2fd9b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/greekcsc.mf
@@ -0,0 +1,34 @@
+mode_setup;
+font_setup;
+
+readfrom("gen_acc");
+readfrom("csc_misce");
+readfrom("rgrupper");
+readfrom("digits");
+readfrom("rgrpunct");
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+font_quad 18u#;
+font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#; font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+fi
+
+x_height2#:=x_height#;
+forsuffixes $ = u,width_adj, cap_serif_fit, letter_fit,
+body_height, cap_height, x_height, bar_height, comma_depth,
+flare, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+o, apex_o: $.# := lower.$.#; endfor
+font_setup;
+readfrom("scsc");
+extra_endchar := extra_endchar & ";charcode:=charcode+code_offset;";
+code_offset:=ASCII"a"-ASCII"A";
+readfrom("rgrupper");
+readfrom("ligcsc");
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/it_digits.mf b/Master/texmf-dist/fonts/source/public/yannisgr/it_digits.mf
new file mode 100644
index 00000000000..6e4bf0c967f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/it_digits.mf
@@ -0,0 +1,262 @@
+% This is ITALD.MF in text format, as of Mar 31, 1986.
+% This file contains the ten digits in so-called italic style.
+% Character codes \0060 through \0071 are generated.
+
+% The characters all have the same italic correction.
+
+cmchar "Italic numeral 0";
+beginchar("0",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair,90); penpos3(vair,-90); penpos2(curve,180); penpos4(curve,0);
+if not monospace: interim superness:=sqrt(more_super*hein_super); fi
+x2r=hround(1.5u-.5curve); x4r=w-x2r; x1=x3=.5w;
+y1r=h+o; y3r=-o; y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1) & cycle; % bowl
+penlabels(1,2,3,4); endchar;
+
+cmchar "Italic numeral 1";
+beginchar("1",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup tiny.nib;
+numeric light_stem; light_stem=hround .4[stem',cap_stem'];
+pos1(light_stem,0); pos2(light_stem,0);
+lft x1l=lft x2l=hround(.5(w+.5u)-.5cap_stem'); top y1=h+apex_o; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+dish_serif(2,1,a,1/3,min(2.25u,lft x2l-1.5u),
+ b,1/3,min(2.25u,w-1.25u-rt x2r)); % serif
+pickup crisp.nib; pos3(slab,-90); pos4(bar,-90);
+top y3l=h+apex_o; top y4l=.8h+apex_o;
+lft x4=max(1.25u,tiny.lft x1l-2.35u); tiny.rt x1r=lft x3+.25[tiny,hair];
+erase fill z3l{x4l-x3l,3(y4l-y3l)}...z4l{left}
+ --(x4l,h+apex_o+1)--(x3l,h+apex_o+1)--cycle; % erase excess at top
+filldraw stroke z3e{x4e-x3e,3(y4e-y3e)}..{left}z4e; % point
+penlabels(1,2,3,4); endchar;
+
+cmchar "Italic numeral 2";
+beginchar("2",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(curve,-360); pos7(hair,-405); pos8(hair,-360);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair);
+x3=.6[x2,x4]; lft x4r=hround(u-.5hair);
+x5=x7=.5w-.5u; rt x6r=hround(w-u); lft x8l=hround(1.5u-.5hair);
+y1=.5[x_height,h]; y2=1/3[y1,y3]; y4=x_height; bot y3r=vround .78y4;
+top y5r=h+o; y6=.5[y5,y7]; y7=.52y4; bot y8=-o;
+filldraw stroke if not hefty:z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6)
+ ...z7e{2(x7-x6),y7-y6}...{down}z8e; % main stroke
+pos9(vair,-90); pos10(vstem+curve-stem,-90); pos11(hair,0);
+x9=w-x10=2.5u; rt x11r=hround(w-.5u+.5hair);
+y9=.25[y10,y7]; bot y10r=-o; y11=.38x_height;
+filldraw stroke z8e{up}...z9e{right}..{right}z10e...{up}z11e; % bar
+penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+cmchar "Italic numeral 3";
+beginchar("3",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,45); pos2(vair,0); pos3(vair,-90); pos4(hair,-180);
+pos5(vair,-270); pos6(stem,-360); pos7(bar,-450); pos8(bar,-450);
+x1=x2-.5u; rt x2r=hround(3.5u+.5vair); x3=.5[x2,x4]; lft x4r=hround u;
+x5=x7=.5w; rt x6r=hround(w-u); x8=x7-u;
+y1=.5[x_height,h]; y2=.5[y1,y3]; y7=y8=.52h; bot y3r=vround 1/4[y7,h];
+y4=1/3[y3,y5]; top y5r=h+o; y6=.5[y5,y7];
+filldraw stroke if not hefty: z1e{2(x2-x1),y2-y1}...{down}z2e...{left}z3e...fi
+ z4e{up}...pulled_arc.e(5,6) & pulled_arc.e(6,7)..z8e; % upper arc
+pos7'(vair,90); z7'l=z7r;
+pos9(curve,0); pos10(vair,-90); pos11(hair,-180); pos12(flare,-180);
+rt x9r=hround(w-u); x10=.5w-.5u; lft x11r=hround .75u;
+y9=.25h; bot y10r=-o; y11=1/3x_height; bulb(10,11,12); % bulb
+filldraw stroke pulled_arc.e(7',9) & pulled_arc.e(9,10); % lower arc
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Italic numeral 4";
+beginchar("4",9u#,fig_height#,desc_depth#);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(stem,0); pos6(stem,0); pos7(stem,0);
+pos2(bar,-45); pos3(bar,-90); pos4(bar,-90); pos5(bar,-45);
+rt x1r=hround(.5w+.5u+.5stem); lft x2l=hround .25u;
+x3=2.75u; x4=w-2u; rt x5r=hround(w-.25u);
+rt x6r=rt x7r=hround(2/3w+.5stem);
+y1+.5stem=h+o; bot y2r=0; bot y3r=vround(.08h-.5bar);
+bot y4r=vround-.5bar; bot y5r=vround(.03h-.5bar);
+y6+.5stem=bar_height; y7-.5stem=-d;
+filldraw circ_stroke z1e{down}...{3(x2-x1),y2-y1}z2e; % diagonal
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{x5-x4,2(y5-y4)}z5e; % bar
+filldraw z6l---z7l..z7r---z6r..cycle; % stem
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic numeral 5";
+beginchar("5",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric bot_thickness,light_hair;
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+light_hair=hround(cap_hair if hefty: -\\2stem_corr fi);
+pickup tiny.nib; pos5(vair,180); pos6(vair,90);
+bot y5=vround(.53h-vair); top y6r=max(vround .61803h+o,top y6r+y5+eps-y6l);
+pos3(light_hair,0); pos4(light_hair,0);
+lft x3l=max(1.35u,2.1u-.5light_hair); x3=x4=x5; y4=y5;
+top y3=h if not hefty: +\\o fi;
+filldraw stroke z3e--z4e; % thin stem
+penpos7(cap_stem-fine,0); penpos8(bot_thickness-fine,-90);
+fine.rt x7r=hround(w-.9u); x8=.5[u,x7]; x6=.5[x5,x7];
+erase fill z5--bot z5--(x6,bot y5)--z6{left}
+ ..tension .9 and 1..{x5-x6,3(y5-y6)}cycle; % erase excess in middle
+filldraw stroke z6e{left}..tension .9 and 1..{x5-x6,3(y5-y6)}z5e; % link
+pickup fine.nib; pos6'(vair,90); z6'=z6;
+y7=.5[y6,y8]; bot y8r=-o;
+filldraw stroke pulled_arc.e(6',7) & pulled_arc.e(7,8); % bowl
+if serifs: pos9(hair,-180); y9=.5y5; lft x9r=hround .9u;
+ pos10(flare+1/3(cap_stem-stem),-180); bulb(8,9,10); % bulb
+else: pos9(3/7[bot_thickness,flare],angle(-7u,-h));
+ lft x9r=hround(tiny.lft x3l-.75u); bot y9r=vround .15h-o;
+ x9l:=good.x x9l; y9l:=good.y y9l;
+ filldraw stroke term.e(8,9,left,1,4); fi % terminal
+if hefty: pickup crisp.nib; pos1(slab,90); pos2(hair,0);
+ top y1r=h; x1=x4; rt x2r=hround(w-1.5u); y2=y1l-eps;
+ arm(1,2,a,0,0); % arm
+else: numeric flag_breadth; flag_breadth=7/8[vair,cap_curve];
+ pos1(flag_breadth,90); pos2(flag_breadth,60);
+ pos0(vair,90); top y1r=tiny.top y3; top y2r=vround .95h+o; y0r=y1r;
+ lft x1=tiny.lft x3l; x2r=.5[x1,x0]; rt x0=hround(w-1.6u);
+ erase fill top z1r--z1r...{right}z2r
+ --(x2r,top y1r)--cycle; % erase excess at top
+ filldraw stroke z1e...{right}z2e...z0e; fi % flag
+penlabels(0,1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Italic numeral 6";
+beginchar("6",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(top_thickness,-270);
+pos3(side_thickness,-180); pos4(bot_thickness,-90);
+pos5(side_thickness,0); pos6(vair,90);
+lft x3r=w-rt x5r=hround max(.75u,1.5u-.5side_thickness);
+x4=x6-.1u=x2-u=.5w;
+top y2r=h+o; y3=.5[y2,y4]; bot y4r=-o;
+y5=.5[y4,y6]; top y6=vround 5/8h+o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,180); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=min(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense; pulled_super_arc.e(4,5)(pull)
+ & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{left}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-360); pos0(flare,-360);
+ rt x0r=max(rt x2+eps,hround(w-1.2u));
+ y0=vround min(.9h-.5flare,.85h+.5flare)+o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(vround .1[top_thickness,flare],90);
+ top y1r=vround .97h+o; rt x1=hround(x5-.5);
+ filldraw stroke term.e(2,1,right,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Italic numeral 7";
+beginchar("7",9u#,fig_height#,desc_depth#);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+numeric fat_curve; fat_curve=1.4[stem,curve];
+pos1(hair,0); pos2(hair,0); pos3(vstem+curve-stem,-90);
+pos4(vair,-90); pos5(hair,0); pos6(fat_curve,0);
+top y1=h+o; y2=x_height; y3l=y5=y1;
+bot y4r=vround(.5[y2,h]-.5vair); y6-.5fat_curve=-o;
+lft x2l=hround(.5u-.5hair); x3=.5w-.5u; x4=2/3w;
+rt x5r=hround(w-.75u+.5hair); rt x6r=hround(.5w+u+.5fat_curve);
+z1=z2+whatever*(z5-z6); filldraw stroke z1e--z2e; % serif
+filldraw stroke z2e{z1-z2}...z3e{right}..{right}z4e
+ ...{2(x5-x6),y5-y6}z5e; % bar
+filldraw circ_stroke z6e{up}...{2(x5-x6),y5-y6}z5e; % diagonal
+penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Italic numeral 8";
+beginchar("8",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,mid_thickness,bot_thickness,upper_side,lower_side,theta;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+x0=.5w; y0=.54h;
+if hefty: mid_thickness=vround 2/3vair; upper_side=hround(stem-3stem_corr);
+ lower_side=hround min(.5[curve,cap_curve]-stem_corr,upper_side+.25u);
+ penpos1(top_thickness,90); penpos2(upper_side,180);
+ penpos3(mid_thickness,270); penpos8(upper_side,360);
+ penpos4(mid_thickness,90); penpos7(lower_side,180);
+ penpos6(bot_thickness,270); penpos5(lower_side,360);
+ penpos0(vair,90); z3l=z0r; z4l=z0l;
+ x1=x6=.5w; x2r=w-x8r=hround u; x7r=w-x5r=hround .75u;
+ top y1r=h+o; bot y6r=-o; y2=y8=.5[y1l,y3l]; y7=y5=.5[y4l,y6l];
+ filldraw stroke pulled_arc.e(1,2)
+ & pulled_arc.e(2,3); % left half of upper bowl
+ filldraw stroke pulled_arc.e(4,5)
+ & pulled_arc.e(5,6); % right half of lower bowl
+ filldraw stroke pulled_arc.e(6,7)
+ & pulled_arc.e(7,4); % left half of lower bowl
+ filldraw stroke pulled_arc.e(3,8)
+ & pulled_arc.e(8,1); % right half of upper bowl
+else: pickup fine.nib; theta=90-angle(18u,h); slope:=-h/18u;
+ upper_side=max(fine.breadth,hround(.5[hair,stem]-stem_corr));
+ lower_side=hround(.5[hair,stem]+stem_corr);
+ pos1(top_thickness,-90); pos6(bot_thickness,-90);
+ x1=x6=.5w; top y1l=h+o; bot y6r=-o; pos0(cap_stem,theta);
+ lft x2l=w-rt x8l=hround 1.25u; lft x7r=w-rt x5r=hround .75u;
+ x2r-x2l=upper_side-fine; x5r-x5l=lower_side-fine;
+ ellipse_set(1l,2l,3l,0l); ellipse_set(1r,2r,3r,0r);
+ ellipse_set(6l,5l,4l,0l); ellipse_set(6r,5r,4r,0r);
+ numeric tau; tau=max(.8,.20710678/(superness-.5));
+ filldraw stroke z1e{left}..tension atleast tau..z2e{down}
+ ..z3e---z4e..z5e{down}..tension atleast tau..z6e{left}; % S stroke
+ pos7(lower_side,180); pos8(upper_side,180);
+ y7=.5[y5l,y5r]; y8=.5[y2l,y2r]; pos9(vair,90); z9=z0;
+ filldraw stroke z1e{right}..tension atleast tau..z8e{down}
+ ..tension atleast tau and atleast 1..{-18u,-.618h}z9e; % upper right stroke
+ filldraw stroke z6e{left}..tension atleast tau..z7e{up}
+ ..tension atleast tau and atleast 1..{18u,.5h}z9e; fi % lower left stroke
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Italic numeral 9";
+beginchar("9",9u#,fig_height#,0);
+italcorr fig_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric top_thickness,bot_thickness,side_thickness,pull;
+top_thickness=max(fine.breadth,vround(slab-2vair_corr));
+bot_thickness=max(fine.breadth,vround(slab-vair_corr));
+side_thickness=max(fine.breadth,hround 1/3[curve,cap_curve]);
+pull=min(.25,1.5superpull);
+pickup fine.nib; pos2(bot_thickness,-90);
+pos3(side_thickness,0); pos4(top_thickness,90);
+pos5(side_thickness,180); pos6(vair,270);
+w-rt x3r=lft x5r=hround max(.75u,1.5u-.5side_thickness);
+x4-.1u=x6+.1u=x2+.75u=.5w;
+bot y2r=-o; y3=.5[y2,y4]; top y4r=h+o;
+y5=.5[y4,y6]; bot y6=vround 3/8h-o;
+path p; p=pulled_super_arc.l(3,4)(pull);
+numeric t; t=xpart(p intersectiontimes((x3r,y5)--(x4,y5)));
+pos7(thin_join,360); z7l=point t of p;
+(x,y6r)=whatever[z7l,z6l]; x6r:=max(x,.5[x5r,x6]);
+filldraw stroke pulled_super_arc.e(2,3)(pull)
+ & {{interim superness:=more_super; pulled_super_arc.e(3,4)(pull)}}
+ & {{less_tense;
+ pulled_super_arc.e(4,5)(pull) & pulled_super_arc.e(5,6)(pull)}}
+ & z6e{right}...{direction t of p}z7e; % arc and bowl
+if serifs: pos1(hair,-180); pos0(flare,-180);
+ lft x0r=min(lft x2-eps,hround 1.2u);
+ y0=vround max(.1h+.5flare,.15h-.5flare)-o;
+ {{less_tense; bulb(2,1,0)}}; % arc and bulb
+else: pos1(.1[bot_thickness,flare],-120);
+ bot y1r=vround .07h-o; lft x1r=hround 1.3u;
+ filldraw stroke term.e(2,1,left,.9,4); fi % terminal
+penlabels(0,1,2,3,4,5,6,7); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/it_lig.mf b/Master/texmf-dist/fonts/source/public/yannisgr/it_lig.mf
new file mode 100644
index 00000000000..aa6b60e8b96
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/it_lig.mf
@@ -0,0 +1,93 @@
+k#:=-.7u#;kk#:=-1.8u#;kkk#:=-2.5u#;
+diaer=oct"042"; % double quote
+ligtable "-": "-" =: oct"000"; % en-dash
+% |ligtable oct"000": "-" =: oct"177";| em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+ligtable "<":
+ "~" =: oct"100", "'" =: oct"126",% | "`" =: oct"103",|
+ "a" =: oct"001", "e" =: oct"037", "h" =: oct"007",% | "r" =: oct"373",|
+ "o" =: oct"137", "w" =: oct"015", "i" =: oct"023", "u" =: oct"031",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable ">":
+ "~" =: oct"134", "'" =: oct"136",% | "`" =: oct"137",|
+ "a" =: oct"002", "e" =: oct"040", "h" =: oct"010",% | "r" =: oct"374",|
+ "o" =: oct"140", "w" =: oct"016", "i" =: oct"024", "u" =: oct"032",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable diaer: "'" =: oct"043";% | "`" =: oct"044",|
+% | "i" =: oct"360", "u" =: oct"364";|
+% |ligtable oct"044":| % diaeresis and grave
+ % |"i" =: oct"361", "u" =: oct"365";|
+% |ligtable oct"043":| % diaeresis and acute
+ % |"i" =: oct"362", "u" =: oct"366";|
+% |ligtable oct"040":| % diaeresis and circumflex
+ % |"i" =: oct"363", "u" =: oct"367";|
+% |ligtable "`": diaer =: oct"044",|
+ % |"a" =: oct"200", "h" =: oct"230", "w" =: oct"260",|
+ % |"e" =: oct"340", "o" =: oct"344", "i" =: oct"310", "u" =: oct"314";|
+ligtable "'": diaer =: oct"043", "'" =: oct"035",
+ "a" =: oct"003", "h" =: oct"011", "w" =: oct"017",
+ "e" =: oct"044", "o" =: oct"103", "i" =: oct"025", "u" =: oct"033",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable oct"126": % rough breathing and acute,
+ "a" =: oct"004", "h" =: oct"012", "w" =: oct"020",
+ "e" =: oct"177", "o" =: oct"133", "i" =: oct"026", "u" =: oct"034",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable oct"136": % smooth breathing and acute
+ "a" =: oct"005", "h" =: oct"013", "w" =: oct"021",
+ "e" =: oct"046", "o" =: oct"135", "i" =: oct"027", "u" =: oct"166",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable "~": % |diaer =: oct"040",|
+ "a" =: oct"006", "h" =: oct"014", "w" =: oct"022",
+ "i" =: oct"030", "u" =: oct"036";
+% |ligtable oct"100":| % rough breathing and circumflex
+ % |"a" =: oct"221", "h" =: oct"251", "w" =: oct"301",|
+ % |"i" =: oct"331", "u" =: oct"335";|
+% |ligtable oct"134":| % smooth breathing and circumflex
+ % |"a" =: oct"222", "h" =: oct"252", "w" =: oct"302",|
+ % |"i" =: oct"332", "u" =: oct"336"; |
+mk#:=-1.2u#;
+ligtable "l":
+ "h" kern mk#,oct"011" kern mk#,oct"014" kern mk#,"u" kern mk#
+ ,oct"033" kern mk#,oct"036" kern mk#, "o" kern k#, oct"103" kern k#,
+ "a" kern k#, oct"003" kern k#, oct"006" kern k#, "i" kern k#,
+ oct"025" kern k#, oct"030" kern k#;
+ligtable "u": oct"033" : oct"036" : oct"031" : oct"032" : oct"034" : oct"166":
+ "g" kern k#, "r" kern -k#;
+ligtable "e": oct"044" : oct"040" : oct"037" : oct"046" : oct"177" :
+ "i" kern k#, oct"025" kern k#, oct"030" kern k#, oct"024" kern k#,
+ oct"023" kern k#, oct"027" kern k#, oct"026" kern k#, "n" kern k#;
+ligtable "D" : "u" kern k#, oct"033" kern k#, oct"036" kern k#, "h" kern mk#,
+ oct"011" kern mk#, oct"014" kern mk#;
+ligtable "k" : "o" kern k#, oct"103" kern k#;
+ligtable "R" : "a" kern k#, oct"003" kern k#, oct"006" kern k#, "w" kern k#,
+ oct"017" kern k#, oct"022" kern k#;
+ligtable "h" : oct"011" : oct"014" : oct"007" : oct"010" : oct"012" :
+ oct"013" : "m" kern -k#, "r" kern -k#;
+ligtable "m" : "n" kern k#, "a" kern k#, oct"003" kern k#, oct"006"kern k#;
+ligtable "o" : oct"137" : oct"140" : oct"103" : oct"133" : oct"135" :
+ "u" kern k#, oct"033" kern k#, oct"036" kern k#, oct"031" kern k#,
+ oct"032" kern k#, oct"034" kern k#, oct"166" kern k#, "k" kern k#,
+ "q" kern k#, "n" kern k#, "m" kern -k#;
+ligtable "r" : "m" kern -k#;
+ligtable "z" : "o" kern k#, oct"103" kern k#, "a" kern k#, oct"003" kern k#,
+ oct"006" kern k#, "h" kern k#, oct"011" kern k#, oct"014" kern k#;
+ligtable "K" : "a" kern k#, oct"003" kern k#, oct"006" kern k#;
+ligtable "w" : oct"017" : oct"022" : oct"015" : oct"016" : oct"020" :
+ oct"021" : "q" kern k#;
+ligtable "g" : "w" kern k#, oct"017" kern k#, oct"022" kern k#;
+ligtable "T" : "h" kern k#, oct"011" kern k#, oct"014" kern k#, "o" kern mk#,
+ oct"103" kern mk#;
+ligtable "x" : "o" kern k#, oct"103" kern k#, "a" kern k#, oct"003" kern k#,
+ oct"006" kern k#, oct"017" kern k#, "w" kern k#, oct"022" kern k#;
+ligtable "A" : "g" kern mk#, "d" kern k#;
+ligtable "O" : "l" kern k#;
+ligtable "a" : oct"001" : oct"002" : oct"003" : oct"004" : oct"005" :
+ oct"006" : "n" kern k#;
+ligtable "U" : "p" kern mk#;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/it_lower.mf b/Master/texmf-dist/fonts/source/public/yannisgr/it_lower.mf
new file mode 100644
index 00000000000..1e9938352b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/it_lower.mf
@@ -0,0 +1,889 @@
+%
+%
+% ALFA
+
+
+def width = 8.5u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5u# enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+.5u;
+pos0(hair,0); pos1(vair,90); pos2(curve,180); pos3(vair,270);
+pos4(stem,0); x4=x0; y4+.5stem=vround .98h;
+x1=x3=.5[x0,x2]; lft x2r=hround(1.5u-.5curve);
+rt x4r=hround(w-2.5u+.5stem);
+top y1r=h+oo; bot y3r=-oo; y0=y2=.5[y1,y3];
+filldraw stroke super_arc.e(0,1) & pulled_arc.e(1,2)
+ & pulled_arc.e(2,3) & super_arc.e(3,0); % bowl
+x5=x4; x7=w; hook_out(5,6,7); % closing hook
+filldraw circ_stroke z4e--z5e; % stem
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+ numeric x_baryctr; x_baryctr=.25[x1,x4]; %accent reference
+ numeric pos_stem; pos_stem=x_baryctr; %iota reference
+ traba(-.5u);
+enddef;
+
+cmchar "Lowercase alpha";
+beginchar("a",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase alpha with rough breathing";
+beginchar(oct"001",width#+u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing";
+beginchar(oct"002",width#+u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase alpha with acute";
+beginchar(oct"003",width#+u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase alpha with rough breathing and acute";
+beginchar(oct"004",width#+u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing and acute";
+beginchar(oct"005",width#+u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase alpha with circumflex";
+beginchar(oct"006",width#+u#,circ_ht#,0);
+this_letter; corr_circumflex(x_baryctr,u); endchar;
+
+picture pic.iota;
+picture savedpicture;
+
+% BHTA
+
+def dims = 8u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+1.5u;
+pos0(.5[hair,stem],180); pos1(.5[hair,stem],180); pos2(vair,90);
+pos3(stem,0); pos4(vair,-90); pos5(hair,-180);
+pos6(vair,-270); pos7(curve,-360); pos8(vair,-450); pos9(hair,-540);
+x0=x1=x9; lft x0l=hround(1.5u-.5hair); x2=x4=x6=x8=.5w+.25u;
+rt x3r=hround(w-1.5u); rt x7r=hround(w-1.5u+.5curve); rt x5l=hround(x4-u);
+bot y0=-d; y1=top y6r=x_height; top y2r=h+oo; y3=.5[y2,y4];
+y5=.5[y4,y6]; top y6r-bot y4r=vstem+eps; bot y8=-oo; y7=y9=.5[y6,y8];
+if y6l<y4l: y6l:=y4l:=y5; fi
+filldraw stroke z0e---z1e...pulled_arc.e(2,3)
+ & pulled_arc.e(3,4)...{up}z5e; % stem and upper bowl
+filldraw stroke z5e{up}...pulled_arc.e(6,7)
+ & pulled_arc.e(7,8)...{up}z9e; % lower bowl
+math_fit(desc_depth#*slant+.5hair#-u#,.7x_height#*slant+.5curve#-1.5u#);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase beta";
+beginchar("b",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+picture savedpicture;
+
+% GAMMA
+
+def dims = 8.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ adjust_fit(0,0); pickup fine.nib; w:=w+1.5u;
+pos1(hair,180); pos2(vstem+dw,90);
+pos4(hair,0); pos5(vair,-90); pos6(hair,-180); pos7(hair,-180);
+bot y1=.5772156649h; top y2r=h+oo; y4=y6=-.5d;
+bot y5r=-d-o; top y7=h;
+lft x1r=hround(.5u-.5hair); x2=2.5u; rt x4r=hround(w-3u); x5=.5[x4,x6];
+rt x4l-lft x6l=curve; rt x7l=hround(w-u);
+if x4l<x6l: x4l:=x6l:=x5; fi
+pos3(hair,angle(z4-z2)+90); x3=superness[x2,x4]; y3=superness[y4,y2];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4-z2}
+ ...z4e{down}...{left}z5e; % arc
+filldraw stroke z5e{left}...z6e{up}..{2(x7-x6),y7-y6}z7e; % stem
+math_fit(-.5772156649x_height#*slant,ic#-u#);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase gamma";
+beginchar("g",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+
+picture savedpicture;
+
+% DELTA
+
+
+def dims = 7.25u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ adjust_fit(0,0); pickup fine.nib; w:=w+.75u;
+pos1(hair,-180); pos2(vair,-90);
+numeric theta; theta=angle(18u,-h); pos9(hair,theta);
+pos3(stem,theta+90); pos4(stem,theta+90); pos5(1/4[hair,stem],20);
+pos6(vair,-90); pos7(curve,-180); pos8(vair,-270);
+rt x1l=hround(w-2u+.5hair); x2=.5w; x3r=3u; rt x5r=hround(w-u);
+x9l=hround(x1+u); y9=y1;
+x4=x6=x8=.5w+.5u; lft x7r=hround(1.5u-.5curve);
+top y2l=h+oo; y1=min(.9h,y2r-eps); top y8r=x_height+oo; y4=y8;
+z4-z3=whatever*(18u,-h); y5=y7=.5[y6,y8]; bot y6=-oo;
+filldraw stroke z1e{x2-x1,3(y2-y1)}...z2e{left}...z3e---z4e
+ ....z5e{down}...pulled_arc.e(6,7) & pulled_arc.e(7,8); % hook and bowl
+filldraw stroke z1{x1-x2,3(y1-y2)}...{x1-x2,3(y2-y1)}z9;
+math_fit(-.3x_height#*slant+.5curve#-u#,.7x_height#*slant-.5u#);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase delta";
+beginchar("d",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture;
+
+% EYILON
+
+
+def width = 6.5u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+1.5u;
+numeric light_vstem; light_vstem=Vround 2/3[vair,vstem];
+pos2(light_vstem,90); x2=x8=.5w+.5u; top y2r=h+o;
+x1+.5light_vstem=hround(w-u); y1=.2[y2,bar_height];
+pos1(light_vstem,angle(x1-x2,2(y1-y2))+90); pos3(hair,180); pos4(vair,270);
+pos5(hair,360); pos6(vair,450); pos7(hair,540); pos8(light_vstem,630);
+lft x3r=hround u; x4=x6=.5w; rt x5r=hround(w-2.5u); x7=x3;
+y3=.5[y2,y4]; y5=bar_height=.5[y4,y6]; y7=.5[y6,y8]; bot y8r=-o;
+top y6r-bot y4r=vstem+eps; if y6l<y4l: y6l:=y4l:=y5; fi
+x9+.5vair=hround(w-.5u); y9=1/3[y8,bar_height];
+pos9(vair,angle(x8-x9,2(y8-y9))+90);
+filldraw circ_stroke z1e{x2-x1,2(y2-y1)}...pulled_super_arc.e(2,3)(.5superpull)
+ & super_arc.e(3,4)...{up}z5e; % upper arc
+filldraw circ_stroke z9e{x8-x9,8(y8-y9)}...pulled_arc.e(8,7)
+ & super_arc.e(7,6)...{down}z5e; % lower arc
+math_fit(-.5bar_height#*slant-.5u#,ic#);
+ numeric x_baryctr; x_baryctr=x2; % accent reference
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase epsilon";
+beginchar("e",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lowercase epsilon with rough breathing";
+beginchar(oct"037",width#+1.2u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing";
+beginchar(oct"040",width#+1.2u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with acute";
+beginchar(oct"044",width#+1.2u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase epsilon with rough breathing and acute";
+beginchar(oct"177",width#+1.2u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and acute";
+beginchar(oct"046",width#+1.2u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+picture savedpicture;
+
+% ZHTA
+
+def dims = 7u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+pos0(hair,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90);
+numeric theta; theta=90-angle(25u,x_height); slope:=-x_height/25u;
+pos6(stem,theta); pos7(vair,-90); pos8(vair,-135);
+lft x0l=hround 3.5u; x1=x3=.5[x0,x2]; rt x2l=hround max(rt x0r,w-2u)+eps;
+top y0=h; top y3l=bot y1l+vstem+eps=vround(y0-.25(h-x_height)); y2=.5[y1,y3];
+if y1r>y3r: y1r:=y3r:=y2; fi
+lft x4l=hround u; x4r-x4l=(hround .6[vair,stem])-fine;
+x6+.5u=x7=w-2u; x8=.5w+.75u;
+y6=-.1d; y8=-3/4d-oo; bot y7r=-d-oo;
+ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r);
+y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r];
+filldraw circ_stroke z0e{down}...z1e{right}...{up}z2e; % opening hook
+filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}
+ ...z6e---z5e....{up}z4e
+ ..tension 1 and atleast1.5..{right}z3e...{down}z2e; % main stroke
+math_fit(-.2asc_height#*slant-.5u#,0);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase zeta";
+beginchar("z",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture;
+
+% HTA
+
+
+def width = 8.5u enddef;
+def dims = width#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = if straight: .75 else: .5 fi u#,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+.5u;
+x0=0; x1=x2; pos2(stem,0); lft x2l=hround(2.5u-.5stem); y2-.5stem=-oo;
+hook_in(0,a,1); % opening hook
+filldraw circ_stroke z2e--z1e; % left stem
+x4+.5stem=hround(w-1.5u+.5stem); ital_arch(2,3,4); % arch
+pos5(stem,0); x5=x4; y5-.5stem=-d-o;
+filldraw circ_stroke z5e--z4e; % right stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+ numeric x_baryctr; x_baryctr=.1[x3,x0]; % accent reference
+ numeric pos_stem; pos_stem=x5; % iota reference
+enddef;
+
+cmchar "Lowercase eta";
+beginchar("h",dims);
+this_letter; penlabels(0,a,1,2,3,4,5); endchar;
+
+cmchar "Lowercase eta with rough breathing";
+beginchar(oct"007",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing";
+beginchar(oct"010",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase eta with acute";
+beginchar(oct"011",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase eta with rough breathing and acute";
+beginchar(oct"012",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and acute";
+beginchar(oct"013",width#+1.3u#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase eta with circumflex";
+beginchar(oct"014",width#+1.3u#,circ_ht#,desc_depth#);
+this_letter; corr_circumflex(x_baryctr,1.5u); endchar;
+
+picture pic.iota;
+picture savedpicture;
+
+% JHTA
+
+def dims = 7u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+1.25u;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+pos2'(bar,90); pos4'(bar,90); z2'=z2l; z4'=z4l;
+filldraw stroke z2'e--z4'e; % bar
+math_fit(-.3asc_height#*slant-u#+.5curve#,ic#-.5u#);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase theta";
+beginchar("j",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+
+picture savedpicture;
+
+% IWTA
+
+
+def width = 5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = if monospace: u#,u# else:0,2curve#-3u# fi enddef;
+
+def gen_letter=
+adjust_fit(if monospace: u#,u# else: 0,0 fi); pickup fine.nib;
+pos1(stem,0); lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo;
+x2=x1-.25u; x4=w; hook_out(2,3,4)(skewed); % closing hook
+filldraw circ_stroke z1e{down}...{-u,-x_height}z2e; % stem
+math_fit(0,ic#); numeric x_baryctr; x_baryctr=x1;
+enddef;
+
+cmchar "Lowercase iota";
+beginchar("i",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+
+cmchar "Lowercase iota with rough breathing";
+beginchar(oct"023",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: +.25u fi)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing";
+beginchar(oct"024",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: -.25u fi)>; endchar;
+
+cmchar "Lowercase iota with acute";
+beginchar(oct"025",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase iota with rough breathing and acute";
+beginchar(oct"026",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing and acute";
+beginchar(oct"027",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase iota with circumflex";
+beginchar(oct"030",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+picture savedpicture;
+
+% KAPPA
+
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+.5u;
+pos1(stem,0); pos2(stem,0); pos3(vair,90); pos4(vair,90); pos5(flare,90);
+x1=x2=x3; lft x1l=hround(1.5u-.5stem); y1+.5stem=h+oo; y2-.5stem=-oo;
+filldraw z1l---z2l..z2r---z1r..cycle; % stem
+y3=bar_height; top y4r=h; x4+.5flare=hround(w-1.5u); z5r=z4r;
+path p,q; p=z3l{right}..{right}z4l; q=z5r{right}..z5l{left}...cycle;
+numeric t; t=ypart(p intersectiontimes q);
+filldraw stroke z3e{right}..{right}z4e; % upper diagonal
+filldraw subpath(0,t) of q--cycle; % bulb
+pos7(stem,0); pos8(vair,90); pos9(hair,180);
+x9+.5hair=hround(w+.5hair-epsilon); y9=1/3x_height;
+lft x7l=hround(w-2.75u-.5stem); y7=1/2y3; x8=w-1.2u; bot y8l=-oo;
+filldraw stroke z3e{right}...z7e{down}
+ ...z8e{right}...{up}z9e; % lower diagonal
+math_fit(0,ic#);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase kappa";
+beginchar("k",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+picture savedpicture;
+
+% LAMBDA
+
+def dims = 8u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25u#,-.25u# enddef;
+def krn = -.75u# enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+2.5u;
+pos1(vair,90); lft x1=hround .1u; top y1r=h;
+x2=x1+2u; y2=.7[x_height,h]; x3=w-2u; bot y4=-oo; y3=max(.07h,y4+eps);
+z4-(.25u,0)=whatever[z2,z3]; numeric theta; theta=angle(z2-z3)-90;
+pos2(stem,theta); pos3(stem,theta); pos4(stem,0);
+filldraw circ_stroke z1e{right}...z2e---z3e
+ ...{2(x4e-x3e),y4e-y3e}z4e; % long diagonal
+y5=.5[bar_height,x_height]; z5=whatever[z2,z3];
+x6=1.5u; y6-.5stem=-oo; pos5(hair,theta-90); pos6(stem,angle(z5-z6)-90);
+filldraw circ_stroke z6e--z5e;
+traba(-u);% short diagonal
+enddef;
+
+cmchar "Lowercase lambda";
+beginchar("l",dims);
+this_letter; penlabels(1,2,3,4,5,6); endchar;
+
+picture savedpicture;
+
+% MI
+
+def dims = 8.25u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5stem# enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib;
+w:=w+.75u; interim superness:=more_super;
+pos1(stem,-180); pos2(stem,-180); x1=x2=x3; lft x1r=hround(1.5u-.5stem);
+y1+.5stem=h+oo; y2-.5stem=-d-o;
+filldraw z1r---z2r..z2l---z1l..cycle; % left stem
+pos3(stem,-180); pos4(vair,-90); pos5(hair,0); x4=.5[x3,x5];
+pos6(stem,0); rt x6r=hround(w-2.5u+.5stem);
+x5=x6=x7; x9=w; hook_out(7,8,9); % closing hook
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57h; y6+.5stem=h;
+filldraw stroke super_arc.e(3,4)...{up}z5e; % left stem and arc
+filldraw circ_stroke z6e--z7e; % right stem
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+traba(-.75u);
+enddef;
+
+cmchar "Lowercase mu";
+beginchar("m",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+picture savedpicture;
+
+% NI
+
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib;
+pos3(vair,-90); pos4(stem,0); bot y3r=0; y4+.5stem=h+oo;
+x3-.5stem=hround(1.5u-.5stem); x4+.5stem=hround(w-1.5u+.5stem);
+filldraw circ_stroke z4e{down}...{-36u,-h}z3e; % diagonal
+pickup tiny.nib; pos1(stem,0); pos2(stem,0);
+top y1=h+min(oo,serif_drop); bot y2=0; x1=x2=x3;
+z=((z4{down}...{-36u,-h}z3)intersectionpoint((x2r,0)--(x2r,h)));
+filldraw z1l--z2l--z--z1r--cycle; % stem
+sloped_serif.l(1,2,a,1/3,jut,serif_drop); traba(.5u);% upper left serif
+math_fit(0,ic#-1/3x_height#*slant-.5u#); enddef;
+
+cmchar "Lowercase nu";
+beginchar("n",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+
+picture savedpicture;
+
+% XI
+
+def dims = 7u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+pos10(hair,-720); pos11(vair,-630); pos12(hair,-540); pos13(vair,-450);
+lft x10l=hround 1/3w; x11=x13=.5[x10,x12]; rt x12l=hround(w-2.5u);
+top y10=h; top y13l=bot y11l+vstem+eps=vround(y10-.25(h-x_height));
+y12=.5[y11,y13]; if y11r>y13r: y11r:=y13r:=y12; fi
+pos0(curve,-360); pos1(vair,-270); pos2(hair,-180); pos3(vair,-90);
+numeric theta; theta=90-angle(22u,x_height); slope:=-x_height/22u;
+pos6(stem,theta); pos7(vair,-90); pos8(vair,-135);
+lft x0l=hround u; x1=x3=x11; x2=x12;
+y0=.5[y13,y1]; top y3l=vround .5h=bot y1l+vstem+eps; y2=.5[y1,y3];
+if y1r>y3r: y1r:=y3r:=y2; fi
+lft x4l=hround u; x4r-x4l=hround .5[vair,stem]-fine;
+x6=x7=w-2u; x8=.5w+.5u; y6=-.3d; bot y7r=-d-oo; y8=max(-3/4d-oo,y7l);
+ellipse_set(3l,4l,5l,6l); ellipse_set(3r,4r,5r,6r);
+y4l:=.9[y6,y4l]; y4=y4r:=.9[y6,y4r];
+filldraw circ_stroke z10e{down}...z11e{right}...{up}z12e; % opening hook
+filldraw stroke z12e{up}...z13e{left}...z0e{down}
+ ...z1e{right}...{up}z2e; % upper arc
+filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e
+ ---z5e...{up}z4e...{right}z3e...{down}z2e; % main stroke
+math_fit(-.2asc_height#*slant-.5u#,0);
+traba(-.5u);
+enddef;
+
+cmchar "Lowercase xi";
+beginchar("x",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9,10,11,12,13); endchar;
+
+picture savedpicture;
+
+% OMIKRON
+
+def width = 8u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+pos1(vair,90); pos2(curve,180); pos3(vair,270); pos4(curve,360);
+x1=x3=.5w; lft x2r=hround(1.5u-.5curve); x4=w-x2;
+top y1r=h+oo; y2=y4=.5[y1,y3]; bot y3r=-oo;
+filldraw stroke pulled_arc.e(1,2) & pulled_arc.e(2,3)
+ & pulled_arc.e(3,4) & pulled_arc.e(4,1); % bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#);
+ numeric x_baryctr; x_baryctr=.1[x1,x2];
+traba(-.5u); % accent reference
+enddef;
+
+
+cmchar "Lowercase omicron";
+beginchar("o",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+
+cmchar "Lowercase omicron with rough breathing";
+beginchar(oct"137",width#+.6u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing";
+beginchar(oct"140",width#+.6u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase omicron with acute";
+beginchar(oct"103",width#+.6u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase omicron with rough breathing and acute";
+beginchar(oct"133",width#+.6u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing and acute";
+beginchar(oct"135",width#+.6u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+picture savedpicture;
+
+% PI
+
+def dims = 9u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); w:=w+u; pi_stroke; % hook and bar
+pos4(hair,0); pos6(hair,0); x4=3.5u; x6=w-4u; y4=y6=y2;
+x5=3u; x7=w-2.5u; y5=y7=.5stem-oo;
+pair v[]; v1=(z4-z5) xscaled 3.14159; v2=(z6-z7) xscaled 3.14159;
+pos5(stem,angle v1-90); pos7(stem,angle v2-90);
+filldraw circ_stroke z5e{v1}...{up}z4e; % left stem
+filldraw circ_stroke z7e{v2}...{up}z6e; % right stem
+math_fit(-.7x_height#*slant+.5hair#+.5u#,ic#-1/3x_height#*slant);
+enddef;
+
+cmchar "Lowercase pi";
+beginchar("p",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+
+picture savedpicture;
+
+% RO
+
+
+def width = 7u enddef;
+def height = x_height enddef;
+def depth = desc_depth enddef;
+def dims = width#,height#,depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+1.25u;
+pos2(stem,180); pos3(vair,90); pos4(curve,0); pos5(vair,-90); pos6(stem,-180);
+lft x2r=hround(1.5u-.5stem); x2=x6; x3=x5=.5[x2,x4];
+rt x4r=hround(w-1.5u+.5curve);
+y2=y4=y6=.5[y3,y5]; top y3r=h+oo; bot y5r=-oo;
+filldraw circ_stroke pulled_arc.e(2,3) & pulled_arc.e(3,4)
+ & pulled_arc.e(4,5) & pulled_arc.e(5,6); % bowl
+pos2'(hair,-180); z2'r=z2r; pos1(vstem,-90); pos1'(vstem,90); z1'=z1;
+pos0(hair,0); rt x0r=hround(w-u); bot y0=-d; bot y1r=vround-.9d; x1=x5;
+interim superness:=sqrt superness;
+filldraw stroke pulled_arc.e(0,1'); filldraw stroke pulled_arc.e(1,2'); % tail
+math_fit(desc_depth#*slant+.5stem#-u#,ic#);
+ numeric x_baryctr; x_baryctr=x3;
+ traba(-.5u); % breathing placement
+enddef;
+
+cmchar "Lowercase rho";
+beginchar("r",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+picture savedpicture;
+
+% SIGMA TELIKO
+
+def dims= 7u#,x_height#,.5min(desc_depth#,.5x_height#) enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+numeric heavy_vair; heavy_vair=.25[vair,vstem];
+pos1(heavy_vair,-110); pos2(vair,-90);
+x1+.5heavy_vair=hround(w-u); y1=.1[y2r,bar_height];
+x2=min(.5w+u,x1r-eps); top y2l=h+oo;
+filldraw circ_stroke z1e{x2-x1,2(y2-y1)}...{left}z2e; % upper bulb
+numeric theta; theta=90-angle(16u,x_height); slope:=-x_height/16u;
+pos6(stem,theta); pos7(vair,-90); pos8(vair,-135);
+lft x4l=hround u; x4r-x4l=(hround .5[vair,stem])-fine;
+x6=x7=w-2u; x8=.5w+u; y6=.25[y8,y2]; y8=y7+1/8d; bot y7r=-d-oo;
+ellipse_set(2l,4l,5l,6l); ellipse_set(2r,4r,5r,6r); y4=y4r;
+filldraw circ_stroke z8e{x7-x8,2(y7-y8)}...z7e{right}...z6e
+ ---z5e...{up}z4e...{right}z2e; % main stroke
+math_fit(-.5x_height#*slant-.5u#,0);
+traba(-.5u);
+enddef;
+
+cmchar "Final lowercase sigma";
+beginchar("c",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+numeric gen_sigma; gen_sigma=1;
+
+% SIGMA ARQIKO
+
+def dim_sigma = 8.75u#,x_height#,0 enddef;
+def ital_sigma = 0 enddef;
+def fit_params_sigma = 0,.75u# enddef;
+
+def mid_sigma=
+italcorr ital_sigma; adjust_fit(fit_params_sigma);
+if known pic.c: currentpicture:=pic.c; else: gen_mid_sigma; fi
+if not working_hard : picture pic.c; pic.c=currentpicture; fi
+enddef;
+
+def gen_mid_sigma =
+adjust_fit(0,0); pickup fine.nib; w:=w+1.5u;
+pos1(vstem,90); pos2(stem,0); pos3(vair,-90);
+pos4(stem,-180); pos5(vstem,-270); pos6(vstem,-270);
+x1=x3=x5=.5[x2,x4]; rt x2r=hround(w-2.5u);
+lft x4r=hround(1.5u-.5curve);x6=w-1.5u;
+top y1r=h; y2=y4=.5[y1,y3]; bot y3r=-oo; y5=y6=y1;
+filldraw circ_stroke z6e..pulled_arc.e(5,4) & pulled_arc.e(4,3)
+ & pulled_arc.e(3,2) & pulled_arc.e(2,1); % ear and bowl
+math_fit(-.3x_height#*slant+.5curve#-u#,ic#-1/3x_height#*slant);
+traba(-.5u);
+enddef;
+
+cmchar "Initial and medial lowercase sigma";
+beginchar("s",dim_sigma);
+mid_sigma; penlabels(1,2,3,4,5,6); endchar;
+
+picture savedpicture;
+
+% TAU
+
+def dims = 7.2u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); w:=w+u; pi_stroke; % hook and bar
+pos4(stem,0);
+x4-.5stem=hround(.5w-.5u-.5stem); y4=y2; x5=x4-.25u; x7=x4+3u;
+hook_out(5,6,7)(skewed);
+filldraw circ_stroke z4e{down}...{-u,-x_height}z5e; % stem
+math_fit(-.7x_height#*slant+.5hair#+.5u#,-.5u#);
+enddef;
+
+cmchar "Lowercase tau";
+beginchar("t",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+
+picture savedpicture;
+
+% UPSILON
+
+
+def width = 8.5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib;
+w:=w+.5u; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u); y3=.7[y4,y5]; bot y4r=-oo; y5=.57h;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+ numeric x_baryctr; x_baryctr=x4-u;
+enddef;
+
+cmchar "Lowercase upsilon";
+beginchar("u",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase upsilon with rough breathing";
+beginchar(oct"031",width#+.9u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase upsilon with smooth breathing";
+beginchar(oct"032",width#+.9u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase upsilon with acute";
+beginchar(oct"033",width#+.9u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with rough breathing and acute";
+beginchar(oct"034",width#+.9u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase upsilon with smooth breathing and acute";
+beginchar(oct"166",width#+.9u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase upsilon with circumflex";
+beginchar(oct"036",width#+.9u#,circ_ht#,0);
+this_letter; corr_circumflex(x_baryctr,.5u); endchar;
+
+picture savedpicture;
+
+% FI
+
+def dims = 10.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+.5u;
+pos1(hair,-180); x1=x2+.75u; top y1=h;
+pos2(hair,-180); lft x2r=hround .5u; y2=bar_height;
+pos3(vstem,-90); x3=.5(w+u); bot y3r=-oo;
+pos4(hair,0); rt x4r=hround(w-.5u); y4=y2;
+pos5(vstem,90); x5=.52[x6,x4]; top y5r=h+oo;
+pos6(hair,180); x6=x7; y6=1/3h;
+pos7(stem,180); lft x7r=hround(.5w-.5u-.5stem); y7-.5stem=-d-o;
+filldraw circ_stroke z7e---z6e...{right}z5e...{down}z4e...{left}z3e
+ ...{up}z2e...{3(x1-x2),y1-y2}z1e; % bowl and stem
+math_fit(-.3x_height#*slant,ic#);
+enddef;
+
+cmchar "Lowercase phi";
+beginchar("f",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+
+picture savedpicture;
+
+% QI
+
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+def dims = 9u#,x_height#,desc_depth# enddef;
+
+def gen_letter=
+adjust_fit(0,0); pickup fine.nib; w:=w+u;
+pos1(hair,180); pos2(vair,80); pos5(vair,80); pos6(hair,180);
+x1-.5hair=hround-.5hair; x6=w-x1; x2=w-x5=u;
+y1=y2l-h/8; top y2r=h+oo; bot y5l=-d-oo; y6=y5r+h/8;
+z0=.5[z2,z5]; z2'=z2l+(.5u,0); z5'=z5r-(.5u,0);
+numeric theta; theta=angle(z5'-z2')+90;
+pos3(stem,theta); pos4(stem,theta);
+y3r=y2r-h/8; y4l=y5l+h/8; z3l=whatever[z2',z0]; z4r=whatever[z0,z5'];
+filldraw stroke z1e{up}...z2e{right}...z3e{z4r-z3l}
+ ..z4e{z4r-z3l}...{right}z5e...{up}z6e; % major diagonal and hooks
+x8=w-x7=2u; y7+.5hair=h; y8-.5hair=-d;
+numeric theta; theta=angle(z7-z8)-90;
+pos7(hair,theta); pos8(hair,theta);
+filldraw z7l---z8l..z8r---z7r..cycle; % minor diagonal
+math_fit((desc_depth#-x_height#)*slant+ic#,ic#);traba(.3u);
+enddef;
+
+cmchar "Lowercase chi";
+beginchar("q",dims);
+this_letter; penlabels(0,1,2,2',3,4,5',5,6,7,8); endchar;
+
+picture savedpicture;
+
+% YI
+
+def dims = 10.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib;
+w:=w+.5u; interim superness:=more_super;
+x0=0; x2=x3+.25u; pos3(stem,-180); lft x3r=hround(2.5u-.5stem);
+hook_in(0,1,2)(skewed); % opening hook
+pos2'(stem,-180); z2'=z2; pos4(vair,-90); pos5(hair,0);
+x4=.5w+u; rt x5r=hround(w-.5u);
+y3=.7[y4,y5]; bot y4r=-oo; y5=.57x_height;
+filldraw stroke z2'e{-u,-x_height}...super_arc.e(3,4)
+ ..tension atleast 1.05..{up}z5e; % left stem and arc
+v_bulb(5,6); % closing bulb
+pos7(.5[hair,stem],0); pos8(.5[hair,stem],0); x7=x8=.5w+.5u;
+top y7=h; bot y8=-d-oo;
+filldraw stroke z7e--z8e; % stem
+math_fit(-2/3x_height#*slant+.5hair#+.5u#,2/3ic#);
+enddef;
+
+cmchar "Lowercase psi";
+beginchar("y",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture;
+
+% WMEGA
+
+
+def width = 8.3u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+adjust_fit(0,0); pickup fine.nib; w:=w+1.2u;
+pos2(hair,-180); lft x2r=hround.5u; y2=y4=y6=y8=bar_height;
+y1+.5hair=h; x1=x2+.75u; pos1(hair,angle(2(x1-x2),y1-y2)+90);
+pos3(vstem+dw,-90); pos4(hair,0); pos5(vair,90);
+pos6(hair,180); pos7(vstem+dw,270); pos8(hair,360);
+bot y3r=bot y7r=-oo; top y5r=vround(.2[y4,h]+.5vair);
+x3=.5[x2,x4]; x7+.25u=.5[x6,x8]; rt x8r=hround(w-.5u);
+x5+.5stem=hround(.5w+.5stem)+eps;
+x5=.5[x4,x6]; rt x4r-lft x6r=min(stem,2hair)+2eps;
+if x4l<x6l: x4l:=x6l:=x5; fi
+filldraw circ_stroke z1e{2(x2-x1),y2-y1}...z2e{down}...z3e{right}
+ ...{up}z4e...{left}z5e; % left arc
+filldraw stroke z5e{left}...z6e{down}...z7e{right}...{up}z8e; % right arc
+v_bulb(8,9); % closing bulb
+math_fit(-bar_height#*slant,2/3ic#);
+ numeric x_baryctr; x_baryctr=.5[x4,x6];
+ numeric pos_stem; pos_stem=x_baryctr; traba(-.5u);
+enddef;
+
+cmchar "Lowercase omega";
+beginchar("w",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lowercase omega with rough breathing";
+beginchar(oct"015",width#+u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing";
+beginchar(oct"016",width#+u#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase omega with acute";
+beginchar(oct"017",width#+u#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase omega with rough breathing and acute";
+beginchar(oct"020",width#+u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing and acute";
+beginchar(oct"021",width#+u#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase omega with circumflex";
+beginchar(oct"022",width#+u#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+picture pic.iota;
+picture savedpicture;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/ligcsc.mf b/Master/texmf-dist/fonts/source/public/yannisgr/ligcsc.mf
new file mode 100644
index 00000000000..ebc53f47e4b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/ligcsc.mf
@@ -0,0 +1,10 @@
+diaer=oct"042"; % double quote
+ligtable "-": "-" =: oct"000"; % en-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+ligtable diaer: "'" =: oct"042";%
+ligtable "<" : "'" =: oct"176";
+ligtable ">" : "'" =: oct"176";
+ligtable "'" : "'" =: oct"035";
+ligtable oct"034" : oct"036" kern .8u#;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/m_accent.mf b/Master/texmf-dist/fonts/source/public/yannisgr/m_accent.mf
new file mode 100644
index 00000000000..ddd405600d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/m_accent.mf
@@ -0,0 +1,55 @@
+cmchar "Diaeresis with acute";
+beginchar(oct"043",9u#,acc_ht#,0);
+adjust_fit(0,0);diaeresis_universal(.5w);
+endchar;
+
+cmchar "Acute accent";
+beginchar("'",9u#,acc_ht#,0);
+adjust_fit(0,0);universal(.5w);
+endchar;
+
+cmchar "Circumflex accent";
+beginchar("~", 9u#,circ_ht#,0);
+adjust_fit(0,0);universal(.5w);
+endchar;
+
+cmchar "Diaeresis";
+beginchar(oct"042",9u#,circ_ht#,0);
+adjust_fit(0,0);diaeresis(.5w);
+endchar;
+
+cmchar "Rough breathing";
+beginchar("<",.1u#,acc_ht#,0);
+adjust_fit(0,0);endchar;
+
+cmchar "Smooth breathing";
+beginchar(">",.1u#,acc_ht#,0);
+adjust_fit(0,0);endchar;
+
+cmchar "Rough breathing with acute";
+beginchar(oct"126", 9u#,acc_ht#,0);
+adjust_fit(0,0);universal(.5w);
+endchar;
+
+
+cmchar "Rough breathing with circumflex";
+beginchar(oct"100", 9u#,acc_ht#,0);
+adjust_fit(0,0);universal(.5w);
+endchar;
+
+cmchar "Smooth breathing with acute";
+beginchar(oct"136",9u#,acc_ht#,0);
+adjust_fit(0,0);universal(.5w);
+endchar;
+
+
+cmchar "Smooth breathing and circumflex";
+beginchar(oct"134",9u#,Circ_ht#,0);
+adjust_fit(0,0);universal(.5w);
+endchar;
+
+
+cmchar "Iota subscript";
+beginchar("|",.1u#,0,.6desc_depth#);
+adjust_fit(0,0);endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/m_greek.mf b/Master/texmf-dist/fonts/source/public/yannisgr/m_greek.mf
new file mode 100644
index 00000000000..bb47a463b00
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/m_greek.mf
@@ -0,0 +1,28 @@
+mode_setup;
+font_setup;
+
+readfrom("gen_m_acc");
+if italics:
+readfrom("it_lower");
+readfrom("it_digits");
+readfrom("it_lig");
+else:
+readfrom("rgrlower");
+readfrom("digits");
+readfrom("rgrlig"); fi
+readfrom("rgrupper");
+readfrom("m_accent");
+readfrom("rgrpunct");
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+font_quad 18u#;
+font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#; font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/mrgrbf10.mf b/Master/texmf-dist/fonts/source/public/yannisgr/mrgrbf10.mf
new file mode 100644
index 00000000000..b24da5a939b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/mrgrbf10.mf
@@ -0,0 +1,86 @@
+% Monotonic Reduced Greek Bold 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input rgrbase fi
+
+font_identifier:="mrgrbf"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders %was 70
+acc_ht#:=250/36pt#;
+circ_ht#:=230/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=13/36pt#; % lowercase hairline breadth (was 17)
+stem#:=40/36pt#; % lowercase stem breadth (was 41)
+curve#:=41/36pt#; % lowercase curve breadth (was 46)
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=41/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+univ_acc_breadth:=.5; % from 0 to 1 : breadth of the universal accent
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+italics:=false;
+
+generate m_greek;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/mrgrrg10.mf b/Master/texmf-dist/fonts/source/public/yannisgr/mrgrrg10.mf
new file mode 100644
index 00000000000..79abb501da0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/mrgrrg10.mf
@@ -0,0 +1,86 @@
+% Monotonic Reduced Greek Regular 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input rgrbase fi
+
+font_identifier:="mrgrrg"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+univ_acc_breadth:=.6; % from 0 to 1 : breadth of the universal accent
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+italics:=false;
+
+generate m_greek;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/mrgrsl10.mf b/Master/texmf-dist/fonts/source/public/yannisgr/mrgrsl10.mf
new file mode 100644
index 00000000000..da323c423f9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/mrgrsl10.mf
@@ -0,0 +1,86 @@
+% Monotonic Reduced Greek Slanted 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input rgrbase fi
+
+font_identifier:="mrgrsl"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+univ_acc_breadth:=.6; % from 0 to 1 : breadth of the universal accent
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy
+characters math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+italics:=false;
+
+generate m_greek;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/mrgrti10.mf b/Master/texmf-dist/fonts/source/public/yannisgr/mrgrti10.mf
new file mode 100644
index 00000000000..88334ae91b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/mrgrti10.mf
@@ -0,0 +1,89 @@
+% This was CMTI10.MF in text format, as of Mar 31, 1986.
+% Computer Modern Text Italic 10 point
+% and now is mrgrti10: monotonic reduced greek text italic, rgr-version 1.1
+% (experimental) as of Jan 22, 1990.
+if unknown cmbase: input cmbase fi
+if unknown grbase: input rgrbase fi
+
+font_identifier:="mrgrti"; font_size 10pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+univ_acc_breadth:=.6; % from 0 to 1 : breadth of the universal accent
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2;
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false;
+monowidth:=false;
+italics:=true;
+
+generate m_greek % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgen_acc.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgen_acc.mf
new file mode 100644
index 00000000000..3e6afd4f70b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgen_acc.mf
@@ -0,0 +1,229 @@
+% This file contains some code from Computer Modern's accent.mf.
+% It defines all Greek diacritic marks.
+
+gen_acc:=1;
+
+def separator=max(1,vround(1/20x_height)) enddef;
+
+def grave(expr center) =
+if serifs: x22-x21=1/4w; x21-.5stem=hround(center-2/3(x22-x21)-.5stem);
+else: lft x21l=hround (1/4w-.5stem); rt x22r=hround(center+.25u+.5vair); fi
+generate_grave; penlabels(21,22);
+enddef;
+
+def acute(expr center) =
+if serifs: x21-x22=1/4w; x21+.5stem=hround(center+2/3(x21-x22)+.5stem);
+else: rt x21r=hround (3/4w+.5stem); lft x22l=hround(center-.25u-.5vair); fi
+generate_grave; penlabels(21,22);
+enddef;
+
+vardef search(expr xyzzy) =
+pair p;ypart(p)=y22l;p-(x22,xyzzy)=whatever*((z21-(x22,xyzzy))rotated 90);
+length(p-(x22,xyzzy))>.5(hair-currentbreadth) enddef;
+
+vardef generate_grave=
+if serifs: pickup crisp.nib;
+ y21+.5stem=h+eps; bot y22l=max(.8[h,x_height],x_height+o+separator);
+ y22=solve search(y21,y22l); x22l=xpart(p); z22r=2z22-z22l;
+ pos21(stem,angle(z22r-z22l));
+ filldraw circ_stroke z21e--z22e; % diagonal
+else: pickup fine.nib; pos21(stem,0); pos22(vair,0);
+ top y21=h; bot y22=vround .8[h,x_height];
+ filldraw stroke z21e--z22e; % diagonal
+fi
+enddef;
+
+def corr_circumflex(expr center,corr)=
+w:=w+corr; generate_circumflex(center,false);
+w:=w-corr;
+enddef;
+
+def circumflex(expr center)=
+generate_circumflex(center,false); % variable `squeeze'
+enddef;
+
+def generate_circumflex(expr center,squeeze)=
+numeric mid_width; mid_width=if squeeze:.1 else: .5 fi [vair,stem];
+if serifs:
+pickup fine.nib; pos21(hround(mid_width-eps),180); pos22(vair,90);
+ pos23(mid_width,90); pos24(vair,90); pos25(hround(mid_width-eps),180);
+ lft x21r=w-rt x25l=hround (center-w/3); x22-x21=x23-x22=x24-x23=x25-x24;
+ bot y21=bot y24l=vround(.75[x_height,h]-vair);
+ top y22r=top y25=h; y23=.5[y22,y24];
+ filldraw stroke z21e{up}...z22e{right}..z23e..{right}z24e...{up}z25e;
+else:
+ pos21(vair,-180); pos23(vair,0); y21=y23;
+ lft x21r=hround(center-w/3); rt x23r=hround(center+w/3);
+ bot y23=vround max(x_height+o+separator,
+ if squeeze: 2/3 else: 1/3 fi [x_height,h]-.5mid_width);
+ x22=center; pos22(mid_width,90); top y22r=h;
+ filldraw stroke z21e{up}...z22e...{down}z23e;
+fi
+enddef;
+
+vardef diaeresis(expr center)=
+ generate_diaeresis(center,dot_size,dot_size+1/8w,h,x_height+separator);
+enddef;
+
+vardef diaeresis_acute(expr center)=
+ if serifs: x21-x22=1/4w; x21+.5stem=hround(center+5/6(x21-x22)+.5stem);
+ else: rt x21r=hround (3/4w+.5stem); lft x22l=hround(center-.5vair); fi
+ generate_grave; penlabels(21,22);
+ generate_diaeresis(center,.9dot_size,-1,.5[h,x_height],x_height+separator);
+enddef;
+
+vardef diaeresis_grave(expr center)=
+ if serifs: x22-x21=1/4w; x21-.5stem=hround(center-5/6(x22-x21)-.5stem);
+ else: lft x21l=hround (1/4w-.5stem); rt x22r=hround(center+.5vair); fi
+ generate_grave; penlabels(21,22);
+ generate_diaeresis(center,.9dot_size,-1,.5[h,x_height],x_height+separator);
+enddef;
+
+vardef diaeresis_circumflex(expr center)=
+ generate_circumflex(center,true);
+ numeric sp_bottom, sp_top;
+ sp_top=vround(.15[bot y21l,x_height]); sp_top+sp_bottom=bot y21l+x_height;
+ generate_diaeresis(center,5/8dot_size,5/8dot_size+1/4w,sp_top,sp_bottom);
+enddef;
+
+vardef generate_diaeresis(expr center,target_dot_diam,sep,eff_h,base)=
+pickup tiny.nib; numeric dot_diam;
+dot_diam:=max(tiny.breadth,hround(target_dot_diam));
+pos31(dot_diam,0); pos32(dot_diam,90); x31=x32; top y32r=vround(eff_h);
+if bot y32l<base: y32l:=min(y32r-eps,base+.5currentbreadth); fi
+y31=.5[y32l,y32r];
+pos33(dot_diam,0); penpos34(y32r-y32l,90); y33=y34=y31; x33=x34;
+if sep>0 : center=.5[x31,x33]; x33-x31=sep;
+else:
+ y35l=y35r=.5[y31,y32]; z35l=whatever[z21l,z22l]; z35r=whatever[z21r,z22r];
+ rt x31r=hround((min(x35l,x35r)-.5currentbreadth)-.05w);
+ lft x33l=hround((max(x35l,x35r)+.5currentbreadth)+.05w);
+fi
+dot(31,32); dot(33,34);
+penlabels(31,32,33,34,35);
+enddef;
+
+def rough(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,180); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,180); pos@1(comma_join_,180);
+ pos@2(comma_bot_,180); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; lft x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,180); pos@3(vair,-90);
+ z@1r=z$r; lft x@2r=hround(x$-.5depth+.5shear);
+ x@3+.5vair=x$+.5dot_size+shear;
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ y_:=ypart((z@1{left}...z@2{down}...z@3)
+ intersectiontimes (z$l{left}..{right}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{right}..subpath (0,y_) of (z$l{left}..{right}z$r)--cycle; % dot
+ filldraw stroke z@1e{left}...z@2e{down}...{right}z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+def smooth(suffix $,@)(expr dot_size,depth,shear) =
+ pickup fine.nib; pos$(dot_size,90);
+ if square_dots: pos$'(dot_size,0); z$'=z$; dot($',$); % squarish dot
+ comma_join_:=max(fine.breadth,floor .7dot_size);
+ comma_bot_:=max(fine.breadth,floor .5dot_size);
+ pos@0(comma_join_,0); pos@1(comma_join_,0);
+ pos@2(comma_bot_,0); y@0=y$; y@1=y$l; y@2=y@1+dot_size-depth;
+ x@0r=x@1r=x$'r; rt x@2r=good.x(x$-eps);
+ filldraw stroke z@0e--z@1e..z@2e; % tail
+ else: pos@1(vair,90); pos@2(vair,0); pos@3(vair,-90);
+ z@1r=z$r; rt x@2r=hround(x$+.5depth+.5shear);
+ x@3-.5vair=hround(x$-.5dot_size+shear);
+ y@2=.5[y@1,y@3]; bot y@3r=vround(top y@1r-depth);
+ y_:=ypart((z@1{right}...z@2{down}...z@3)
+ intersectiontimes (z$l{right}..{left}z$r)); if y_<0: y_:=1; fi
+ filldraw z$r{left}..subpath (0,y_) of (z$l{right}..{left}z$r)--cycle; % dot
+ filldraw stroke z@1e{right}...z@2e{down}...{left}z@3e; fi % tail
+ penlabels(@1,@2,@3); enddef;
+
+vardef spirit(expr center) text type=
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam);
+y31+.5dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+penlabels(31);
+enddef;
+
+vardef spirit_acute(expr center) text type =
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+if serifs: x21-x22=1/6w;
+ x21+.5stem=hround(center+.25u+.5vair+(x21-x22)+.5stem);
+else: rt x21r=hround (4/5w+.5stem); lft x22l=hround(center+.25u); fi
+generate_grave; penlabels(21,22);
+if 1type0: % spirit and accent separated by .5u (rough) or .25u (smooth)
+ x31=hround(lft x22 if serifs:r-.5sp_height else:l-.5dot_diam fi -.25u);
+else: x31+.5dot_diam=hround(lft x22 if serifs:r else: l fi -.5u); fi
+y31+.5dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+enddef;
+
+vardef spirit_grave(expr center) text type =
+numeric sp_bottom, sp_height;
+sp_bottom=h-sp_height=max(.8[h,x_height],x_height+o+separator);
+numeric dot_diam#; dot_diam# = 3/4dot_size#;
+define_whole_blacker_pixels(dot_diam);
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height)));
+if serifs: x22-x21=1/6w; x21-.5stem=hround(center+.25u);
+else: rt x22r=hround (4/5w+.5stem); lft x21l=hround(center+.25u); fi
+generate_grave; penlabels(21,22);
+if 1type0: % spirit and accent separated by .5u (rough) or .25u (smooth)
+ x31=hround(lft x21l-.5 if serifs:sp_height else:dot_diam fi -.25u);
+else: x31+.5dot_diam=hround(lft x21l-.5u); fi
+y31+.5dot_diam=h;
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+enddef;
+
+vardef spirit_circumflex(expr center) text type=
+generate_circumflex(center,true); % variable `squeeze'
+numeric sp_bottom, sp_height, sp_top, box_top;
+box_top=bot if serifs: y21l else: y22l fi;
+sp_top=sp_bottom+sp_height=vround(.15[box_top,x_height]);
+sp_top+sp_bottom=box_top+x_height;
+numeric dot_diam#; dot_diam# = 5/8dot_size#;
+define_whole_blacker_pixels(dot_diam);
+pickup fine.nib;
+dot_diam:=max(fine.breadth,min(dot_diam,floor(2/3sp_height-eps)));
+x31 if1type0:-else:+fi.5dot_diam=hround(center if1type0:-else:+fi.5dot_diam);
+y31+.5dot_diam=vround(sp_top);
+if1type0:smooth else:rough fi (31,a,dot_diam,sp_height,0);
+penlabels(31);
+enddef;
+
+def iota_sub(expr pos_stem) =
+if known pic.iota:
+ addto currentpicture also pic.iota shifted (hround(pos_stem),0);
+else:
+ picture temp_picture; temp_picture=currentpicture; clearit;
+ pickup fine.nib;
+ x51=0; pos51(stem,180); top y51=vround(-o-2separator);
+ x52=x51; pos52(stem,180); bot y52=-iota_dp;
+ filldraw circ_stroke z52e--z51e;
+%
+% edw arqizei to diko mou
+%
+% z54=z52;x53=x54+0.5(y51-y54); y53=y54;
+% pos54(stem,90); pos53(stem,90);
+% filldraw circ_stroke z54e---z53e;
+% lft x55=0.5(rt x52+x52); bot y55=0.5(y52-bot y52)+y52;
+% x56=x55;top y56=y51; pos55(stem,180); pos56(stem,180);
+% unfilldraw circ_stroke z55e--z56e;
+%
+ if not working_hard : picture pic.iota; pic.iota=currentpicture; fi
+ currentpicture:=currentpicture shifted (hround(pos_stem),0);
+ addto currentpicture also temp_picture;
+fi;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgraccent.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgraccent.mf
new file mode 100644
index 00000000000..bf593aa4086
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgraccent.mf
@@ -0,0 +1,55 @@
+cmchar "Acute accent";
+beginchar("'",9u#,acc_ht#,0);
+adjust_fit(0,0);acute(.5w);
+endchar;
+
+cmchar "Circumflex accent";
+beginchar("~",9u#,circ_ht#,0);
+adjust_fit(0,0);circumflex(.5w);
+endchar;
+
+cmchar "Diaeresis";
+beginchar(oct"042",9u#,circ_ht#,0);
+adjust_fit(0,0);diaeresis(.5w);
+endchar;
+
+cmchar "Rough breathing";
+beginchar("<",9u#,acc_ht#,0);
+adjust_fit(0,0);spirit(.5w)<;
+endchar;
+
+cmchar "Smooth breathing";
+beginchar(">",9u#,acc_ht#,0);
+adjust_fit(0,0);spirit(.5w)>;
+endchar;
+
+cmchar "Rough breathing with acute";
+beginchar(oct"126",9u#,acc_ht#,0);
+adjust_fit(0,0);spirit_acute(.5w)<;
+endchar;
+
+cmchar "Rough breathing with circumflex";
+beginchar(oct"100",9u#,acc_ht#,0);
+adjust_fit(0,0);spirit_circumflex(.5w)<;
+endchar;
+
+cmchar "Smooth breathing with acute";
+beginchar(oct"136",9u#,acc_ht#,0);
+adjust_fit(0,0);spirit_acute(.5w)>;
+endchar;
+
+cmchar "Smooth breathing and circumflex";
+beginchar(oct"134",9u#,Circ_ht#,0);
+adjust_fit(0,0);spirit_circumflex(.5w)>;
+endchar;
+
+cmchar "Diaeresis with acute";
+beginchar(oct"043",9u#,acc_ht#,0);
+adjust_fit(0,0);diaeresis_acute(.5w);
+endchar;
+
+cmchar "Iota subscript";
+beginchar("|",9u#,0,.6desc_depth#);
+adjust_fit(0,0);iota_sub(.5w);
+endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrbase.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrbase.mf
new file mode 100644
index 00000000000..54a331b74f1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrbase.mf
@@ -0,0 +1,229 @@
+numeric grbase; grbase:=1; %don't read this file twice
+
+%make reference to file in subdirectories less painful
+def readfrom(expr filename) = scantokens ("input " & filename); enddef;
+
+%we start by defining a few more font parameters:
+boolean one_accent; %are we working in |one_accent|-system?
+boolean monowidth; %are
+boolean straight; %are certain strokes straight?
+boolean italics; %are we going to make italics?
+numeric univ_acc_breadth; %from 0 to 1:the breadth of the univ. accent
+
+let old_font_setup = font_setup;
+def font_setup =
+define_whole_vertical_pixels(acc_ht,circ_ht,Circ_ht,iota_dp); %accent heights
+old_font_setup;
+enddef;
+
+%Since many of our characters are composite (for instance, s+letter),
+%we avoid recomputing many pictures by saving them.
+%But if we're using various definitions for the same letter (as when
+%running 6test.mf) we can't use this trick, so we set |working_hard:=true|.
+
+boolean working_hard;
+working_hard:=false;
+
+def this_letter =
+italcorr ital; adjust_fit(fit_params);
+if known savedpicture: currentpicture:=savedpicture; else: gen_letter; fi
+if not working_hard : picture savedpicture; savedpicture=currentpicture; fi
+enddef;
+
+%The following routines are for use with double characters.
+boolean is_double; is_double:=false;
+let oldendchar=endchar;
+
+def begindoublechar(expr c,w_sharp,h_sharp,d_sharp) =
+is_double:=true; beginchar(c,w_sharp,h_sharp,d_sharp);
+enddef;
+
+def doublecharkern(expr k_sharp) =
+if not monospace: k:=hround(k_sharp*hppp); r:=r+k; charwd:=charwd+k_sharp; fi
+enddef;
+
+def middoublechar(expr w_sharp,h_sharp,d_sharp) =
+scantokens extra_endchar;
+forsuffixes e=r,l,w,charwd: numeric first.e; first.e:=e; endfor
+
+w:=hround(w_sharp*hppp); h:=vround(h_sharp*hppp); d:=vround(d_sharp*hppp);
+charwd:=w_sharp; charht:=max(charht,h_sharp); chardp:=max(chardp,d_sharp);
+picture first.glyph; first.glyph=currentpicture;
+clearxy; clearpen; clearit; clearpen;
+enddef;
+
+def endchar =
+if is_double :
+charwd:=first.charwd+charwd;
+picture second_glyph; second_glyph=currentpicture shifted (first.r-l,0);
+currentpicture:= first.glyph; addto currentpicture also second_glyph;
+scantokens extra_endchar;
+w:=first.w+w; r:=first.r-l+r; l:=first.l;
+chardx:=first.w+w; interim xoffset:= -l;
+if proofing>0: makebox(proofrule); fi
+shipit;
+if displaying>0: makebox(screenrule); showit; fi
+endgroup;
+is_double:=false
+else : oldendchar
+fi
+enddef;
+
+%By convention, we reserve the name z1' for the direction at z1, and so on.
+%The direction at |z1r| is |z1'r|, or |zdir1r|.
+vardef zdir[]@#= z@'@# enddef;
+vardef assign_z@#(expr zz)= x@#:=xpart(zz); y@#:=ypart(zz) enddef;
+vardef sgn(expr x)= if (x>0): 1 elseif (x<0): -1 else: 0 fi enddef;
+
+vardef double_circ_stroke text t =
+forsuffixes e = l,r: path_.e:=t; endfor
+if cycle path_.l: errmessage "Beware: `stroke' isn't intended for cycles"; fi
+path_.l .. reverse path_.r .. cycle enddef;
+
+vardef drawloop(suffix $,$$,@@,@)=
+numeric temp[], sup;
+sup=superness;
+forsuffixes e=r,l:
+path curv[]e; numeric S[]e;
+curv1e=pulled_super_arc.e($,$$)(.5superpull);
+curv2e=pulled_super_arc.e(@,@@)(.5superpull); endfor
+(S1r,S2r)=curv1r intersectiontimes curv2r;
+(temp1,S2l)=curv1r intersectiontimes curv2l;
+(S1l,temp2)=curv1l intersectiontimes curv2r;
+for i=1 upto 4:
+exitif (temp1>=S1r) and (temp2>=S2r);
+begingroup
+numeric S[]r, S[]l, temp[]; pair p;
+interim superness:=(i/10)[sup,1];
+message"change in superness required; increased to "; show superness;
+curv1r:=pulled_super_arc.r($,$$)(0);
+curv2r:=pulled_super_arc.r(@,@@)(0);
+(S1r,S2r)=curv1r intersectiontimes curv2r;
+(temp1,S2l)=curv1r intersectiontimes curv2l;
+(S1l,temp2)=curv1l intersectiontimes curv2r;
+endgroup;
+endfor;
+if S1l=-1 : S1l:=2; fi
+if S2l=-1 : S2l:=2; fi
+filldraw stroke subpath(0,S1e+eps) of curv1e;
+filldraw stroke subpath(0,S2e+eps) of curv2e;
+filldraw subpath (S1r+eps,2) of curv1r...subpath(2,S2r+eps) of curv2r..cycle;
+enddef ;
+
+vardef gr_arc.r(suffix $,$$,$$$)(expr min,max,tilt)=
+pair center, corner;
+if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+center=(x$$$r,y$r); corner=(x$r,y$$$r);
+else :
+center=(x$r,y$$$r); corner=(x$$$r,y$r);
+fi
+z$r{corner-z$r}...superness[center,corner]{z$$$r-z$r}...
+{z$$$r-corner}z$$$r
+enddef;
+
+vardef gr_arc.l(suffix $,$$,$$$)(expr min,max,tilt)=
+save p,q,wdth;
+pair center, corner, temp;
+numeric wdth, t, s;
+path p,q;
+if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+center=(x$$$r,y$r); corner=(x$r,y$$$r);
+if tilt>=0 : wdth:=min; other_wdth:=max; t:=2(1-tilt);
+else : wdth:=max; other_wdth:=min; t:=-2tilt; fi
+else :
+center=(x$r,y$$$r); corner=(x$$$r,y$r);
+if tilt>=0 : wdth:=max; other_wdth:=min; t:=2(1-tilt);
+else : wdth:=min; other_wdth:=max; t:=-2tilt; fi
+fi
+p:=z$r{corner-z$r}...superness[center,corner]{z$$$r-z$r}...
+{z$$$r-corner}z$$$r;
+pos$$(wdth,angle direction t of p - 90);
+z$$r=point t of p;
+assign_z$$'l(direction t of p);
+assign_z$$'r(z$$'l);
+if other_wdth<=currentbreadth: errmessage "bad pos"; fi
+temp:=point (2-t) of p-
+(other_wdth-currentbreadth,0) rotated (angle direction (2-t) of p - 90);
+boolean k[]; k1:=false; k2:=false;
+if unknown x$l:
+k1:=true;
+assign_z$l(temp);
+assign_z$'l(direction(2-t) of p);
+if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+y$l:=2ypart center-y$l;
+x$'l:=-x$'l;
+else:
+x$l:=2xpart center-x$l;
+y$'l:=-y$'l;
+fi
+fi
+if unknown x$$$l:
+k2:=true;
+assign_z$$$l(temp);
+assign_z$$$'l(direction(2-t) of p);
+if (y$$$r-y$r)*(x$$$r-x$r) < 0 : %first or third quadrant
+x$$$l:=2xpart center-x$$$l;
+y$$$'l:=-y$$$'l;
+else:
+y$$$l:=2ypart center-y$$$l;
+x$$$'l:=-x$$$'l;
+fi
+fi
+q:=z$l{z$'l}...z$$l{z$$'l}...z$$$l{z$$$'l};
+if k1 :
+t := xpart(q intersectiontimes (center---z$r));
+if t=-1 : t:=0; fi
+assign_z$l(point t of q);
+assign_z$'l(direction t of q);
+assign_z$'r(corner-z$r);
+z$l+z$r=2z$;
+else: t:=0;
+fi
+if k2 :
+s := xpart(q intersectiontimes (center---z$$$r));
+if s=-1 : s:=2; fi
+assign_z$$$l(point s of q);
+assign_z$$$'l(direction s of q);
+assign_z$$$'r(z$$$r-corner);
+z$$$l+z$$$r=2z$$$;
+else: s:=2;
+fi
+subpath (t,s) of q
+enddef;
+
+vardef doodah(suffix $,$$,$$$)=
+if known x$$:
+vardef ward(expr gr)=
+sgn(xpart direction 1 of (z${zdir$}..(x$$,gr)..{zdir$$$}z$$$)) <> sgn(x$-x$$)
+enddef;
+y$$=solve ward(y$,y$$$);
+else:
+vardef ward(expr gr)=
+sgn(ypart direction 1 of (z${zdir$}..(gr,y$$)..{zdir$$$}z$$$)) <> sgn(y$-y$$)
+enddef;
+x$$=solve ward(x$,x$$$);
+fi
+(z${zdir$}..z$$..{zdir$$$}z$$$)
+enddef;
+
+forsuffixes e=r,l:
+vardef club.e(suffix $,$$,$$$)= doodah($e,$$e,$$$e) enddef; endfor
+
+vardef alpha_tail(suffix $,$$) =
+pos$$(hair,180); top y$$=vround 4/3[bot y$l,top y$r]; %tip of hook
+rt x$$l=hround(x$+(y$$-y$)+.5hair); %central arc is round
+enddef;
+
+vardef pi_bar =
+pos3(vstem,-90); rt x3=hround(w-.75u); top y3l=x_height; %top right
+pos2(vstem,-90); y2=y3; x2=.25w; %top left
+x1-.5hair=hround.75u; y1-.5hair=4/3[top y2l,bot y2r]; %tip of bar
+numeric slope; slope=angle((z2-z1)yscaled 2); pos1(hair,slope-90);
+forsuffixes e=l,r: z1'e=(z2e-z1e)yscaled 2; endfor
+filldraw circ_stroke z1e{z1'e}...z2e---z3e; %bar
+enddef;
+
+def traba(expr poso) = transform t; t = identity shifted (poso,0);
+currentpicture := currentpicture transformed t;
+enddef;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrbf10.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrbf10.mf
new file mode 100644
index 00000000000..ca47ca78f06
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrbf10.mf
@@ -0,0 +1,85 @@
+% Reduced Greek Bold 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input rgrbase fi
+
+font_identifier:="rgrbf"; font_size 10pt#;
+
+u#:=22/36pt#; % unit width
+width_adj#:=11/36pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=247/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=160/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=85/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders %was 70
+acc_ht#:=250/36pt#;
+circ_ht#:=230/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=13/36pt#; % diameter of rounded corners
+fine#:=10/36pt#; % diameter of sharply rounded corners
+thin_join#:=10/36pt#; % width of extrafine details
+hair#:=13/36pt#; % lowercase hairline breadth (was 17)
+stem#:=40/36pt#; % lowercase stem breadth (was 41)
+curve#:=41/36pt#; % lowercase curve breadth (was 46)
+ess#:=38/36pt#; % breadth in middle of lowercase s
+flare#:=41/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=56/36pt#; % diameter of dots
+cap_hair#:=19/36pt#; % uppercase hairline breadth
+cap_stem#:=51/36pt#; % uppercase stem breadth
+cap_curve#:=55/36pt#; % uppercase curve breadth
+cap_ess#:=53/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.6pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=10/36pt#; % vertical distance from serif base to tangent
+jut#:=25/36pt#; % protrusion of lowercase serifs
+cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=11/36pt#; % vertical diameter of hairlines (was 13)
+notch_cut#:=10/36pt#; % maximum breadth above or below notches
+bar#:=17/36pt#; % lowercase bar thickness
+slab#:=17/36pt#; % serif and arm thickness
+cap_bar#:=17/36pt#; % uppercase bar thickness
+cap_band#:=17/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=3/36pt#; % vertical drop of sloped serifs
+stem_corr#:=2/36pt#; % for small refinements of stem breadth
+vair_corr#:=1.5/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=4/36pt#; % amount of overshoot for curves
+apex_o#:=3/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=.5; % extra openness of math symbols
+superness:=8/11; % parameter for superellipses
+superpull:=1/8; % extra openness inside bowls
+beak_darkness:=.4; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; % are stem and hair more or less the same width?
+italics:=false;
+
+generate rgreek;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgreek.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgreek.mf
new file mode 100644
index 00000000000..e0b61327df6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgreek.mf
@@ -0,0 +1,29 @@
+mode_setup;
+font_setup;
+
+readfrom("rgen_acc");
+if italics:
+readfrom("it_lower");
+readfrom("it_digits");
+readfrom("it_lig");
+else:
+readfrom("rgrlower");
+readfrom("digits");
+readfrom("rgrlig"); fi
+readfrom("rgrupper");
+readfrom("rgraccent");
+readfrom("rgrpunct");
+
+
+font_slant slant; font_x_height x_height#;
+if monospace: font_normal_space 9u#; % no stretching or shrinking
+font_quad 18u#;
+font_extra_space 9u#;
+else: font_normal_space 6u#+2letter_fit#;
+font_normal_stretch 3u#; font_normal_shrink 2u#;
+font_quad 18u#+4letter_fit#;
+font_extra_space 2u#;
+fi
+
+bye.
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrlig.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrlig.mf
new file mode 100644
index 00000000000..2e2febbe930
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrlig.mf
@@ -0,0 +1,91 @@
+k#:=-.7u#;kk#:=-1.8u#;kkk#:=-2.5u#;
+diaer=oct"042"; % double quote
+ligtable "-": "-" =: oct"000"; % en-dash
+% |ligtable oct"000": "-" =: oct"177";| em-dash
+ligtable "(": "(" =: oct"173"; % open quotes
+ligtable ")": ")" =: oct"175"; % close quotes
+ligtable "<":
+ "~" =: oct"100", "'" =: oct"126",% | "`" =: oct"103",|
+ "a" =: oct"001", "e" =: oct"037", "h" =: oct"007",% | "r" =: oct"373",|
+ "o" =: oct"137", "w" =: oct"015", "i" =: oct"023", "u" =: oct"031",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable ">":
+ "~" =: oct"134", "'" =: oct"136",% | "`" =: oct"137",|
+ "a" =: oct"002", "e" =: oct"040", "h" =: oct"010",% | "r" =: oct"374",|
+ "o" =: oct"140", "w" =: oct"016", "i" =: oct"024", "u" =: oct"032",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable diaer: "'" =: oct"043";% | "`" =: oct"044",|
+% | "i" =: oct"360", "u" =: oct"364";|
+% |ligtable oct"044":| % diaeresis and grave
+ % |"i" =: oct"361", "u" =: oct"365";|
+% |ligtable oct"043":| % diaeresis and acute
+ % |"i" =: oct"362", "u" =: oct"366";|
+% |ligtable oct"040":| % diaeresis and circumflex
+ % |"i" =: oct"363", "u" =: oct"367";|
+% |ligtable "`": diaer =: oct"044",|
+ % |"a" =: oct"200", "h" =: oct"230", "w" =: oct"260",|
+ % |"e" =: oct"340", "o" =: oct"344", "i" =: oct"310", "u" =: oct"314";|
+ligtable "'": diaer =: oct"043", "'" =: oct"035",
+ "a" =: oct"003", "h" =: oct"011", "w" =: oct"017",
+ "e" =: oct"044", "o" =: oct"103", "i" =: oct"025", "u" =: oct"033",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable oct"126": % rough breathing and acute,
+ "a" =: oct"004", "h" =: oct"012", "w" =: oct"020",
+ "e" =: oct"177", "o" =: oct"133", "i" =: oct"026", "u" =: oct"034",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable oct"136": % smooth breathing and acute
+ "a" =: oct"005", "h" =: oct"013", "w" =: oct"021",
+ "e" =: oct"046", "o" =: oct"135", "i" =: oct"027", "u" =: oct"166",
+ "A" kern 2kk#, "E" kern kk#, "O" kern kkk#, "I" kern kk#, "U" kern kkk#,
+ "W" kern kk#, "H" kern kkk#;
+ligtable "~": % |diaer =: oct"040",|
+ "a" =: oct"006", "h" =: oct"014", "w" =: oct"022",
+ "i" =: oct"030", "u" =: oct"036";
+% |ligtable oct"100":| % rough breathing and circumflex
+ % |"a" =: oct"221", "h" =: oct"251", "w" =: oct"301",|
+ % |"i" =: oct"331", "u" =: oct"335";|
+% |ligtable oct"134":| % smooth breathing and circumflex
+mk#:=-1.2u#;
+ligtable "l":
+ "h" kern mk#,oct"011" kern mk#,oct"014" kern mk#,"u" kern mk#
+ ,oct"033" kern mk#,oct"036" kern mk#, "o" kern k#, oct"103" kern k#,
+ "a" kern k#, oct"003" kern k#, oct"006" kern k#, "i" kern k#,
+ oct"025" kern k#, oct"030" kern k#;
+ligtable "u": oct"033" : oct"036" : oct"031" : oct"032" : oct"034" : oct"166":
+ "g" kern k#, "r" kern -k#;
+ligtable "e": oct"044" : oct"040" : oct"037" : oct"046" : oct"177" :
+ "i" kern -k#, oct"025" kern -k#, oct"030" kern -k#, oct"024" kern -k#,
+ oct"023" kern -k#, oct"027" kern -k#, oct"026" kern -k#, "n" kern k#;
+ligtable "D" : "u" kern k#, oct"033" kern k#, oct"036" kern k#, "h" kern mk#,
+ oct"011" kern mk#, oct"014" kern mk#;
+ligtable "k" : "o" kern k#, oct"103" kern k#;
+ligtable "R" : "a" kern k#, oct"003" kern k#, oct"006" kern k#, "w" kern k#,
+ oct"017" kern k#, oct"022" kern k#;
+ligtable "h" : oct"011" : oct"014" : oct"007" : oct"010" : oct"012" :
+ oct"013" : "m" kern -k#, "r" kern -k#;
+ligtable "m" : "n" kern k#, "a" kern k#, oct"003" kern k#, oct"006"kern k#;
+ligtable "o" : oct"137" : oct"140" : oct"103" : oct"133" : oct"135" :
+ "u" kern k#, oct"033" kern k#, oct"036" kern k#, oct"031" kern k#,
+ oct"032" kern k#, oct"034" kern k#, oct"166" kern k#, "k" kern k#,
+ "q" kern k#, "n" kern k#, "m" kern -k#;
+ligtable "r" : "m" kern -k#;
+ligtable "z" : "o" kern k#, oct"103" kern k#, "a" kern k#, oct"003" kern k#,
+ oct"006" kern k#, "h" kern k#, oct"011" kern k#, oct"014" kern k#;
+ligtable "K" : "a" kern k#, oct"003" kern k#, oct"006" kern k#;
+ligtable "w" : oct"017" : oct"022" : oct"015" : oct"016" : oct"020" :
+ oct"021" : "q" kern k#;
+ligtable "g" : "w" kern k#, oct"017" kern k#, oct"022" kern k#;
+ligtable "T" : "h" kern k#, oct"011" kern k#, oct"014" kern k#, "o" kern mk#,
+ oct"103" kern mk#;
+ligtable "x" : "o" kern k#, oct"103" kern k#, "a" kern k#, oct"003" kern k#,
+ oct"006" kern k#, oct"017" kern k#, "w" kern k#, oct"022" kern k#;
+ligtable "A" : "g" kern mk#, "d" kern k#;
+ligtable "O" : "l" kern k#;
+ligtable "a" : oct"001" : oct"002" : oct"003" : oct"004" : oct"005" :
+ oct"006" : "n" kern k#;
+ligtable "U" : "p" kern mk#;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrlower.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrlower.mf
new file mode 100644
index 00000000000..331fee9f6c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrlower.mf
@@ -0,0 +1,992 @@
+% These are the lowercase letters of the rgr-package version 1.1
+% prepared on Jan 16, 1990; Lille
+%
+% ALFA
+
+def width = 9u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5u# enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos1(stem,0); top y1=x_height+oo; rt x1r=hround(w-.5u); %top right
+ pos2(vstem,-90); pos4(vstem,-270); x4=x2=.5w-u;
+ bot y2r=-oo; top y4r=x_height+oo; %bottom and top bulges
+ pos3(hair,-180); lft x3r=hround .75u; y3=.5[y2,y4]; %left bulge
+ pos6(vstem,90); x6=w-u; y6=y2; %bottom right
+ % numeric theta; theta=angle((x4-x6),2.5(y4-y6))-90;
+ pos5(hair,0); x5=.65[x4,x6]; y5=y3; %point of inflection
+ alpha_tail(6,7); %hook
+ filldraw stroke z1e{(x2-x1,2(y2-y1))}... %diagonal
+ pulled_arc.e(2,3) & pulled_arc.e(3,4) %bowl
+ ...z5e{down}...z6e{right}...{up}z7e; %diagonal and
+ numeric x_baryctr; x_baryctr= .25[x4,x1];
+ numeric pos_stem; pos_stem=x_baryctr; %iota reference
+enddef;
+
+cmchar "Lowercase alpha";
+beginchar("a",dims);
+this_letter; penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Lowercase alpha with rough breathing";
+beginchar(oct"001",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing";
+beginchar(oct"002",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase alpha with acute";
+beginchar(oct"003",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase alpha with rough breathing and acute";
+beginchar(oct"004",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase alpha with smooth breathing and acute";
+beginchar(oct"005",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase alpha with circumflex";
+beginchar(oct"006",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+picture pic.iota;
+picture savedpicture;
+
+% BHTA
+
+def dims = 9u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ numeric thin_stem; thin_stem=.6[hair,stem]; % for upper bowl
+ numeric tilt; tilt=min(2*otilt,.5); % for both bowls
+ pos1(stem,180); y1-.5stem=-d-o; % bottom left
+ pos2(hair,180); y2=.5bar_height; % self-intersection (cf. z15)
+ x1=x2; lft x1r=hround(.75u+.5(hair-stem)); % i.e., lft x2r ~ .75u
+ x3r=x2r; % beginning of curve
+ top y5r=h+oo; bot y14r=-oo; x5r=x14r; % top and bottom bulges
+ top y10r=vstem+bot y9r=x_height; x9r=x10r; % top and bottom of cusp
+ rt x12r=hround(w-.75u); % lower right bulge
+ x5r=.5[lft x2r,rt x12r]; x9r-.5vstem=hround(x5r-.5u-.5vstem);
+ % we want to simulate the following relations, to make slopes consistent
+ % (where |z7| is the upper right bulge):
+ % | z5r-z3r=whatever*(z9r-z7r)=whatever*(z14r-z12r);|
+ % | z7r-z5r=whatever*(z12r-z10r)=whatever*(z5r-z3r) yscaled -1;|
+ numeric slope;
+ slope=((y10r-y12r)+(y12r-y14r))/((x12r-x10r)+(x12r-x14r));
+ z7'r=z9r+whatever*(1,slope); z7'r=z5r+whatever*(1,-slope);
+ y7r=y7'r; rt x7r=hround rt x7'r;
+ z12r=z14r+whatever*(1,slope);
+z3r=z5r+whatever*(1,slope);
+ filldraw double_circ_stroke gr_arc.e(7,6,5)(hair,thin_stem,tilt)..
+ gr_arc.e(5,4,3)(hair,thin_stem,tilt)..{down}z2e..z1e; % top and left
+ z2=z15; pos15(hair,slope-90); % intersection pt
+ numeric slope;
+ slope=angle((z14r-z15)yscaled 2);
+ filldraw stroke z15e{dir slope}...gr_arc.e(14,13,12)(hair,stem,tilt); % bot
+ forsuffixes e=r,l:
+ path curv[]e; numeric S[]e;
+ curv1e=reverse gr_arc.e(9,8,7)(hair,thin_stem,tilt); % cusp bottom
+ curv2e=gr_arc.e(12,11,10)(hair,stem,tilt); endfor % cusp top
+ (S1r,S2r)=curv1r intersectiontimes curv2r;
+ (whatever,S2l)=curv1r intersectiontimes curv2l;
+ (S1l,whatever)=curv1l intersectiontimes curv2r;
+ if S1l=-1 : S1l:=2; fi
+ if S2l=-1 : S2l:=2; fi
+ filldraw stroke subpath(0,S1e+eps) of curv1e; % fill in cusp
+ filldraw stroke subpath(0,S2e+eps) of curv2e;
+ filldraw subpath (S1r+eps,2) of curv1r...subpath(2,S2r+eps) of curv2r..cycle;
+enddef;
+
+cmchar "Lowercase beta";
+beginchar("b",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15); endchar;
+
+picture savedpicture;
+
+% GAMMA
+
+def dims = 10u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ begingroup
+ save t; t:=superness; interim superness:=.95t;
+ pos2(curve,90); top y2r=h+oo; % top of left branch
+ pos1(hair,180); bot y1=top y2r-4/3curve; % tip of hook
+ lft x1r=hround .5u; x2-x1=y2-y1; % central arc is round
+ pos3(hair,0); pos4(hair,-180); rt x3r-lft x4r=stem; % bottom of cusp
+ y4=y3; .5[x3,x4]=.5w; bot y3=-d-oo;
+ pos5(curve,-270); top y5r=h+oo; x5+.5curve=hround(w-.75u); % right branch
+ pos5'(curve,0); z5'=z5;
+ filldraw stroke z1e{up}...z2e{right}; drawloop(2,3,4,5);
+ filldraw z5l{right}...z5'r{up}...z5r{left}--cycle; % right branch
+ if monowidth: % complete stem
+ x3'=x3r; x4'=x4r; y3'=y4'; y3'-.5stem=vround(-.8d);
+ filldraw z3r--z3'{down}...{up}z4'--z4r--cycle; fi
+ endgroup;
+enddef;
+
+cmchar "Lowercase gamma";
+beginchar("g",dims);
+this_letter; penlabels(1,2,3,3',4,4',5); endchar;
+
+picture savedpicture;
+
+% DELTA
+
+
+def dims = 8.5u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ top y1r=vround(if not monowidth:.95 fi x_height+oo); x1r=.5w; % top of loop
+ x5r=.5w; bot y5r=-oo; % bottom of ditto
+ lft x3r=w-rt x7r=hround(.75u); y3r=y7r=.5[y1r,y5r]; % left and right bulge
+ filldraw stroke gr_arc.e(1,2,3)(vair,stem,.5otilt) % three quadrants of l
+ & gr_arc.e(3,4,5)(vair,stem,.5otilt) & gr_arc.e(5,6,7)(vair,stem,.5otilt);
+
+ % we now draw the hook |z8..z9..z10|. It must satisfy the following ints:
+ % its outer contour is symmetric with respect to some axis containing |z9l|;
+ % one end is known, the width there is |thin_stem|, and the width at |z10|
+ % is, ideally, stem. (But since we may have to change that we callt |Stem|.)
+ z8l=z1l; numeric thin_stem, med_stem; thin_stem=.5[hair,Stem];
+ % the aperture, measured perpendicular to the axis, equals |Stem|
+ numeric apert; apert=2Stem+thin_stem-currentbreadth; % |apeth(z10l-z8l);|
+ numeric left_goal; lft left_goal=vround(lft x3r+.5u); % most tangent known
+ numeric top_goal; top top_goal=h+oo; % highest tangent known
+
+ % if by taking |Stem=stem| we got |apert > top_goal-y1l|, the problem might
+ % not have a solution with a horizontal tangent; in that case the
+ % constraint is on |apert|:
+ if 2stem+.7[hair,stem]-currentbreadth>top_goal-y8l: apert=top_goal-y8l;
+ else: Stem=stem; fi
+
+ % we first estimate the slope of the axis by imagining that, in the vicinity
+ % of |z9l|, the hook looks like a semicircle of diameter |apert/2|.
+ % (this value is empiric, but reasonable because the tension is high)
+ z0l=(left_goal+.25apert,top_goal-.25apert); % center of semicircle
+ numeric axis; axis=angle(z0l-z8l)+angle(length(z0l-z8l)+-+.5apert,.5apert);
+ z9l=z0l+(.25apert,0)rotated(axis); z10l=z8l+(0,-apert)rotated(axis);
+
+ % we now iterate, correcting |z9l| until the tangencies are satisfied
+ path hook; numeric left_real; numeric top_real;
+ forever:
+
+ hook:=z8l{dir(axis)}..tension 1.5..z9l..tension 1.5..{-dir(axis)}z10l;
+ if directiontime up of hook=-1:
+ left_error:=0; message "hook has no vertical tangent!";
+ else: left_error:=xpart directionpoint up of hook-left_goal; fi
+ if directiontime right of hook=-1:
+ top_error:=0; message "hook has no horizontal tangent!";
+ else: top_error:=ypart directionpoint right of hook-top_goal; fi
+
+ exitif (abs(left_error)<.05) and (abs(top_error)<.05);
+ x9l:=x9l-left_error; y9l:=y9l-top_error;
+ axis:=angle(z9l-z8l)+angle(length(z9l-z8l)+-+.5apert,.5apert);
+ x10l:=x8l+apert*sind axis; y10l:=y8l-apert*cosd axis;
+ endfor
+
+ pos8(thin_stem,axis-90); pos10(Stem,axis+90); pos9(.3[hair,Stem],axis+180);
+ filldraw stroke
+ z7e{z7'e}..{dir axis}z8e..tension 1.5..z9e..tension 1.5..{-dir axis}z10e;
+enddef;
+
+cmchar "Lowercase delta";
+beginchar("d",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+picture savedpicture;
+
+% EYILON
+
+def width = 7.25u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos2(.8vstem,90); x2=.5w; top y2r=x_height+o; % top point
+ pos7(vstem,630); x2=x7; bot y7r=-o; % bottom point
+ rt x1r=hround(w-u); bot y1l=.3[bot y2l,bar_height]; % top end
+ z1'=(x1r,y1l+.5(flare-currentbreadth)); % approximation to z1
+ numeric slope; slope=angle((z2-z1')yscaled 2); pos1(.5flare,slope-30);
+ bar_height=.5[y1,y8]; x8=x1; pos8(flare,slope+90); % bottom end
+ pos3(vstem,120); lft x3r=hround .75u; y3=.5[y4r,y2r]; % top left bulge
+ pos6(vstem,600); x6=x3; y6=.5[y5r,y7r]; % bottom left bulge
+ y6:=y6r;y3:=y3r; % for the benefit of |pulled_arc|
+ top y5r-bot y4r=curve; y5+y4=2bar_height; x5=x4=x2; % loop
+ pos4(vair,-90); pos5(vair,90);
+ filldraw stroke z1e{dir slope}...pulled_arc.e(2,3); % top
+ drawloop(3,4,5,6); % loop and bottom
+ forsuffixes e=l,r:
+ path foo.e; foo.e= z8e...pulled_arc.e(7,6);
+ if angle(direction 0 of foo.e) > angle(z8r-z8l):
+ foo.e:= z8e{z8r-z8l}...pulled_arc.e(7,6); fi
+ endfor;
+ filldraw stroke foo.e;
+ numeric x_baryctr; x_baryctr=x2; % accent reference
+enddef;
+
+cmchar "Lowercase epsilon";
+beginchar("e",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lowercase epsilon with rough breathing";
+beginchar(oct"037",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing";
+beginchar(oct"040",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase epsilon with acute";
+beginchar(oct"044",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase epsilon with rough breathing and acute";
+beginchar(oct"177",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase epsilon with smooth breathing and acute";
+beginchar(oct"046",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+picture savedpicture;
+
+% ZHTA
+
+def dims = 8.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ pos4(hair,-180); y4=bar_height; lft x4r=hround(.75u); % left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); y6=-.5stem; % bottom right
+ y3+.5stem=h+o; x3+.5stem=hround(rt x6l-.25u); % top right
+ numeric slope; slope=angle((z3-z4)xscaled 2); pos3(hair,slope+90);
+ pos5(stem,-90); bot y5r=0; x5=.5w; % inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+ pos2(stem,slope+90); z2l=z3l; filldraw double_circ_stroke
+ % bowl and tail
+ z7e{right}...z6e{up}...z5e{left}...z4e{up}...z2e{dir slope};
+ % where handle attaches
+ pos1(curve,0); lft x1l=hround(lft x4r+.25u); y1+.5curve=h+o; % end of handle
+ filldraw circ_stroke z1e{down}...z3e{dir slope};
+enddef;
+
+cmchar "Lowercase zeta";
+beginchar("z",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+picture savedpicture;
+
+% HTA
+
+def width = 8.5u enddef;
+def dims = width#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = if straight: .75 else: .5 fi u#,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ y1r-.5stem=-d-o; pos1(stem,0);
+ rt x2r=hround(w-.75u); y2r=.5x_height; pos2(hair,0);
+ lft x5r=hround(1.5u); y5-.5stem=-o; pos5(stem,-180);
+ top y4r=x_height+o; x4r=.5[lft x2l,rt x5l];
+ pos6(hair,180); y6=y2;
+ if straight:
+ x1=x2;x5=x6; pos4(stem,90);
+ filldraw double_circ_stroke z1e--pulled_arc.e(2,4)&pulled_arc.e(4,6)--z5e;
+ else:
+ x1r=x2r; z2'l=z2'r=up;
+ filldraw circ_stroke z1e{up}...gr_arc.e(2,3,4)(hair,stem,.8); % right leg
+ filldraw circ_stroke z5e{(z4-z5) yscaled 4}...z4e{-z4'e}; % left leg
+ z6r=((0,y2)--(w,y2)) intersectionpoint (z5r{(z4-z5) yscaled 4}...z4r{-z4'r});
+ fi
+ pos8(vstem,0); rt x8r=hround(lft x6r-.75u); % end of handle
+ pos7(vstem,-90); top y7l=x_height+o; z8r=z7r; % top of handle
+ filldraw circ_stroke z8e{up}...z7e{right}...z6e{down};
+ numeric x_baryctr; x_baryctr=.1[x4,x7]; % accent reference
+ numeric pos_stem; pos_stem=x5; % iota reference
+enddef;
+
+cmchar "Lowercase eta";
+beginchar("h",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lowercase eta with rough breathing";
+beginchar(oct"007",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing";
+beginchar(oct"010",width#,acc_ht#,desc_depth#);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase eta with acute";
+beginchar(oct"011",width#,acc_ht#,desc_depth#);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase eta with rough breathing and acute";
+beginchar(oct"012",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase eta with smooth breathing and acute";
+beginchar(oct"013",width#,acc_ht#,desc_depth#);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase eta with circumflex";
+beginchar(oct"014",width#,circ_ht#,desc_depth#);
+this_letter; circumflex(x_baryctr); endchar;
+
+picture pic.iota;
+picture savedpicture;
+
+% JHTA
+
+def dims = 9u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h; % left and right bulges
+ x2r=x6r=.5w; top y2r=h+o; bot y6r=-o; % top and bottom
+ filldraw stroke
+ gr_arc.e(8,1,2)(vair,stem,otilt) & gr_arc.e(2,3,4)(vair,stem,otilt) &
+ gr_arc.e(4,5,6)(vair,stem,otilt) & gr_arc.e(6,7,8)(vair,stem,otilt);
+ pos4`(bar,90); pos8`(bar,90); x4`=x4; x8`=x8; y4`=y8`=.05[y4,y2];
+ filldraw stroke z4`e--z8`e; % bar
+enddef;
+
+cmchar "Lowercase theta";
+beginchar("j",dims);
+this_letter; penlabels(1,2,3,4,4`,5,6,7,8,8`); endchar;
+
+picture savedpicture;
+
+% IWTA
+
+def width = 5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = if monospace: u#,u# else:0,2curve#-3u# fi enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ pos1(flare,180); lft x1r=hround u; top y1=x_height+oo; % top
+ numeric neck; neck=.2[hair,stem];
+ pos2(neck,180); .2[lft x2r,rt x2l]=.2[lft x1r,rt x1l]; % neck
+ pos3(curve,-90); bot y3r=-oo; % bottom
+ y2r=if monowidth:
+ 2 else: 1.5 fi[bot y3r,top y3l]; z3r-z2r=whatever*(1,-1.25);
+ if monowidth:
+ y4r+.5neck=vround y2r; x3=.5[x2,x4]; pos4(neck,0); % tip of hook
+ filldraw stroke z4e...z3e...z2e---z1e;
+ else:
+ z4l=z4r; top y4r=y2r; z4l-z3l=whatever*(1,1);
+ path p.r, p.l; forsuffixes e=r,l: p.e=z1e---z2e...z3e...z4e; endfor
+ rt x3.5r=hround(rt xpart directionpoint up of p.r);
+ z4'r=direction 3 of p.r; z3'r=direction 2 of p.r;
+ forever: % avoid bad vertical tangent between 2l and 3l
+ x2.5l:= rt xpart directionpoint down of p.l;
+ exitif abs(hround(x2.5l)-x2.5l)<.05;
+ x2l:=x2l+hround(x2.5l)-x2.5l; p.l:=(z1l---z2l...z3l...z4l);
+ endfor
+ p.r:=z1r---z2r...club.r(3,3.5,4);
+ % avoid bad vertical tangent between 3r and 4r
+ filldraw stroke p.e;
+ fi
+ numeric x_baryctr; x_baryctr=x1;
+enddef;
+
+cmchar "Lowercase iota";
+beginchar("i",dims);
+this_letter; penlabels(1,2,3,4); endchar;
+
+cmchar "Lowercase iota with rough breathing";
+beginchar(oct"023",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: +.25u fi)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing";
+beginchar(oct"024",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr if serifs: -.25u fi)>; endchar;
+
+cmchar "Lowercase iota with acute";
+beginchar(oct"025",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase iota with rough breathing and acute";
+beginchar(oct"026",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase iota with smooth breathing and acute";
+beginchar(oct"027",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase iota with circumflex";
+beginchar(oct"030",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+picture savedpicture;
+
+% KAPPA
+
+def dims = 9.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1-.5stem=-o; % lower left
+ z1+z3=(w,h); z2=.5[z1,z3]; % upper right and mid
+ z1'=(z3-z1) if monowidth: xscaled 1/2 fi; % slope at 1 and 3
+ pos1(stem,angle z1'+90); pos2(.6[hair,stem],angle z1'+90);
+ pos3(stem,angle z1'+90);
+ filldraw double_circ_stroke z1e{z1'}..z2e..{z1'}z3e; % diagonal stroke
+ z4=if monowidth: z1 else: 1/3[z1,z3] fi; z4-z1=z3-z7; % handle attachments
+ z4'=if monowidth: z1' else: (z3-z1) xscaled .25 fi; % slope at 4 and 7
+ pos4(hair,angle z4'-90); pos7(hair,angle z4'+90);
+ pos5(vstem,90); top y5r=h+o; pos6(vstem,180); z6l=z5l;
+ lft x6r=hround(x1-.5stem-.25u);
+ filldraw circ_stroke z6e{up}...z5e{right}...z4e{-z4'}; % left handle
+ pos8(.5[vstem,stem],-90); bot y8r=-o; rt x9r=hround(x3+.5stem+.25u);
+ pos9(.5[vstem,stem],0); z9l=z8l;
+ filldraw circ_stroke z9e{down}...z8e{left}...z7e{z4'}; % right handle
+enddef;
+
+cmchar "Lowercase kappa";
+beginchar("k",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+picture savedpicture;
+
+% LAMBDA
+
+def dims = 9.5u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25u#,-.25u# enddef;
+def krn = -.75u# enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1+.5stem=h; % top left
+ z1'=(1,.2); pos1(stem,angle z1'+90); % direction at z1
+ x3+x1=w; y3-.5stem=-oo; pos3(stem,-angle z1'+90); % bottom right
+ y2=x_height-.5u; x2=.5[x1,x3]; % attachment
+ z2'=(z3-z1)yscaled 2; pos2(hair,angle z2'+90); % direction at z4
+ filldraw double_circ_stroke z1e{z1'}...
+ z2e{(z3-z1)yscaled 2}...{z1' yscaled -1}z3e; % diagonal
+ lft x4l=hround.75u; bot y4l=0; % bottom left
+ numeric stem'; stem'=stem-currentbreadth; numeric slope; % from z4 to z4
+ slope=angle(z2-z4l)+angle(length(z2-z4l)+-+.5stem',.5stem');
+ x4r=x4l+(stem'/sind slope); y4r=y4l; z4=.5[z4r,z4l];
+ path p; p=z1{z1'}...z2{(z3-z1)yscaled 2}...{z1' yscaled -1}z3;
+ forsuffixes e=r,l: z5e=(z4e--(z4e+2(z2-z4))) intersectionpoint p; endfor
+ filldraw stroke z4e{(z2-z4)if not monowidth: xscaled 1.2 fi}..z5e;
+enddef;
+
+cmchar "Lowercase lambda";
+beginchar("l",dims);
+this_letter; penlabels(1,2,3,4,5); endchar;
+
+picture savedpicture;
+
+% MI
+
+def dims = 9.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,.5stem# enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ y6+.5stem=h+o; pos6(stem,0); rt x6r=hround(w-vstem); % top right
+ x5r=.5[x1,x6]; bot y5r=-oo; % bottom of bowl
+ if straight:
+ lft x1r=hround .75 u; y1+.5stem=h+o; pos1(stem,180); % top left
+ x4=x1; x9=x6; y9=y4=.5x_height; pos4(stem,180); pos9(stem,0);
+ pos5(vstem, 270);
+ filldraw double_circ_stroke z1e..pulled_arc.e(4,5)&pulled_arc.e(5,9)..z6e;
+ y8-.5stem=-d-oo; x8=x1; pos8(stem,180); % end of handle
+ filldraw circ_stroke z8e..z4e;
+ else:
+ lft x2r=rt x2l-stem=hround .75u; % vertical tangents of left bulb
+ top y1r=h+o; x1r=.5[x2r,x2l]; z1=z1l=z1r; z1'r=-z1'l=left; % top left
+ y3r=.4[y1r,y5r]; lft x3r=x1r-.5hair; % middle left
+ numeric tilt; tilt:=.6; path p.r, p.l;
+ p.l=gr_arc.l(3,4,5)(hair,.4[hair,stem],tilt)...{up}z6l;
+ p.r=subpath (2(1-tilt),2) of gr_arc.r(3,4,5)(fie,fo,fum)...{up}z6r;
+ z3.5r=z4r; z3.5'r=z4'r; z3.5l=z3l; z3.5'l=z3'l; % a hybrid
+ filldraw double_circ_stroke club.e(1,2,3.5) & p.e; % bowl
+ x8=lft x2r+.5stem; bot y8=-d-oo; % end of handle
+ pos8(stem,angle(z4'l xscaled 2)-120); z8'r=z8'l=z4'l xscaled 2;
+ assign_z3'r(z3'l); % so club.r won't get confused
+ lft x7r=rt x7l-max(hair,2)=lft x2r; % vertical tangents of handle
+ filldraw double_circ_stroke club.e(3,7,8); % handle
+ y9r=max(y4r+epsilon,-oo+2vstem); % where hook attaches
+ z9r=((0,y9r)--(w,y9r)) intersectionpoint p.r; pos9(hair,0);
+ fi
+ pos10(vstem,90); y10l=y5r; x10-x9=vstem; % bottom of hook
+ pos11(hair,180); top y11=bot y10l+4/3vstem; % tip of hook
+ rt x11l=hround(x10+(y11-y10)+.5hair); % central arc is round
+ filldraw stroke z9e{down}..z10e{right}..{up}z11e; % hook
+enddef;
+
+cmchar "Lowercase mu";
+beginchar("m",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11); endchar;
+
+picture savedpicture;
+
+% NI
+
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ rt x4r=hround(w-.75u); lft x4l-rt x4r=hround -.2[hair,stem]; % vert tangents
+ x5=lft x4l; y5+.5hair=h+oo; z5'l=z5'r=(u,-.2h); % right tip
+ pos5(hair,angle z5'l+90);
+pos3(whatever,-90); bot y3r=-oo; x3=.5w; z3'l=z3'r=z5'l xscaled -2; % bottom
+z3l+whatever*z3'l=z3r+(stem-currentbreadth)*(dir(angle z3'l-90)); % width=stem
+ filldraw circ_stroke club.e(5,4,3); % right stroke
+ y1+.5stem=h+oo; x1-.5stem=hround.75u; % left tip
+ z1'=(9u,-h); pos1(stem,angle z1'-90);
+ z2r=z3r; z2l-z3l=(hair-currentbreadth,0);
+ filldraw circ_stroke z1e{z1'}...{down}z2e; % left stroke
+enddef;
+
+cmchar "Lowercase nu";
+beginchar("n",dims);
+this_letter; penlabels(1,2,3,4,5); endchar;
+
+picture savedpicture;
+
+% XI
+
+def dims = 8.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ lft x7r=rt x7l-hair=hround(.75u); x7=.5[x7r,x7r]; % big bulge
+ pos8(stem,-90); bot y8r=0; x8=.5w; z8'r=z8'l=left; % inflection pt
+ pos9(hair,-180); rt x9l=hround(w-.75u); y9=-.5stem; % bottom right
+ y6+.5stem=x_height+o; x6+.5stem=hround(rt x9l-1.5u); % middle right
+ numeric slope; slope=angle(5(x6-x7),y6-y8); pos6(stem,slope+90);
+ z6'r=z6'l=dir slope;
+ pos10(vstem,-270); y9=.5[y10r,y8r]; x10-.5vstem=hround x8;
+ filldraw double_circ_stroke % bowl and tail
+ z10e{right}...z9e{up}...club.e(8,7,6);
+ pos5(hair,slope-90); z5l=z6r; % attachment
+ z4=.5[z3,z5]+whatever*dir slope; % small bulge
+ pos4(hair,-180); lft x4r=hround(lft x7r+1.5u);
+y3+.5stem=h+o; x3+.5stem=hround(rt x9l-.25u); pos3(hair,slope+90); % top rt
+ pos2(stem,slope+90); z2l=z3l;
+ filldraw circ_stroke z2e{-dir slope}..z4{down}...z5e{dir slope};
+ % where handle attaches
+ pos1(curve,0); lft x1l=hround(lft x7r+.25u); y1+.5curve=h+o; % end of handle
+ filldraw circ_stroke z1e{down}...z3e{dir slope};
+enddef;
+
+cmchar "Lowercase xi";
+beginchar("x",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+picture savedpicture;
+
+% OMIKRON
+
+def width = 9.5u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5x_height; % top and bottom
+ top y2r=x_height+oo; bot y6r=-oo; x2r=x6r=.5w; % right and left
+ filldraw stroke
+ gr_arc.e(8,1,2)(vair,curve,otilt) & gr_arc.e(2,3,4)(vair,curve,otilt) &
+ gr_arc.e(4,5,6)(vair,curve,otilt) & gr_arc.e(6,7,8)(vair,curve,otilt) ;
+ numeric x_baryctr; x_baryctr=x2; % accent reference
+enddef;
+
+
+cmchar "Lowercase omicron";
+beginchar("o",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Lowercase omicron with rough breathing";
+beginchar(oct"137",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing";
+beginchar(oct"140",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase omicron with acute";
+beginchar(oct"103",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase omicron with rough breathing and acute";
+beginchar(oct"133",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase omicron with smooth breathing and acute";
+beginchar(oct"135",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+picture savedpicture;
+
+% PI
+
+def dims = 9.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pi_bar; % bar
+ pos4(hair,0); pos7(hair,0); y4=y7=y2; % attachments
+ lft x4l-(x1-.5hair)=lft x7l-rt x4r=rt x3-rt x7r;
+ pos5(hair,0); pos8(hair,0); y5=y8=.5x_height; x5=x4; x8=x7; % midstems
+ x6+.5stem=hround(rt x4r if not straight:-.25u fi); y6-.5stem=-oo; % left stem
+ numeric slope; slope=angle((z5-z6)xscaled2); pos6(.44iota_dp,slope-90);
+ filldraw circ_stroke z6e...z5e---z4e;
+ x9=x7+1.5u; bot y9l=-oo; pos9(stem,90); alpha_tail(9,10); % right stem
+ filldraw stroke z10e...z9e{left}...z8e---z7e;
+enddef;
+
+cmchar "Lowercase pi";
+beginchar("p",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+picture savedpicture;
+
+% RO
+
+def width = 8.5u enddef;
+def height = x_height enddef;
+def depth = desc_depth enddef;
+def dims = width#,height#,depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=hround .75u; x8r=w-x4r; y4r=y8r=.5h; % left and right
+ top y2r=h+oo; bot y6r=-oo; x2r=x6r=.5w; % top and bottom
+ filldraw stroke
+ gr_arc.e(4,5,6)(curve,vair,-otilt) & gr_arc.e(6,7,8)(curve,vair,-otilt) &
+ gr_arc.e(8,1,2)(curve,vair,-otilt) & gr_arc.e(2,3,4)(curve,vair,-otilt);
+ if straight:
+ y9-.5stem=-d-oo; x9=x4; pos9(stem,180); % end of handle
+ filldraw circ_stroke z9e..z4e;
+ else:
+ y9=-d-oo; x9=lft x4r+.5stem; % end of handle
+ pos9(stem,angle((z9-z4)xscaled3)-120); z9'r=z9'l=(z9-z4)xscaled3;
+ rt x10l=lft x10r+vair; % vertical tangents of handle
+ x10r=x4r-epsilon; assign_z4'r((-2eps,-1)); % so club.r won't get confused
+ filldraw double_circ_stroke club.e(4,10,9);
+ fi
+ numeric x_baryctr; x_baryctr=x2; % breathing placement
+enddef;
+
+cmchar "Lowercase rho";
+beginchar("r",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+picture savedpicture;
+
+% SIGMA
+
+def dims= 8u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos4(hair,-180); y4=.5h; lft x4r=hround .75u; % left bulge
+ pos6(hair,-180); rt x6l=hround(w-.75u); y6=-.5stem; % bottom right
+ top y3r=h+oo; x3+.5stem=rt x6l; pos3(stem,90); % top right
+pos5(stem,-90); bot y5r=0; x5=.5w; % inflection pt
+ pos7(vstem,-270); y6=.5[y7r,y5r]; x7-.5vstem=hround x5;
+filldraw double_circ_stroke % bowl and tail
+ z7e{right}...z6e{up}...z5e{left}...z4e{up}...z3e{right};
+enddef;
+
+cmchar "Final lowercase sigma";
+beginchar("c",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8); endchar;
+
+numeric gen_sigma; gen_sigma=1;
+
+def dim_sigma = 9.5u#,x_height#,0 enddef;
+def ital_sigma = 0 enddef;
+def fit_params_sigma = 0,.75u# enddef;
+
+def mid_sigma=
+italcorr ital_sigma; adjust_fit(fit_params_sigma);
+if known pic.c: currentpicture:=pic.c; else: gen_mid_sigma; fi
+if not working_hard : picture pic.c; pic.c=currentpicture; fi
+enddef;
+
+def gen_mid_sigma =
+ pickup fine.nib;
+ lft x4r=hround .75u; rt x8r=w-lft x4r; % left and right bulge
+ top y2r=h; bot y6r=-oo; x2r=x6r; % top and bottom
+ numeric fake; fake=y2r-(vstem-currentbreadth); % approx height of |z2l|
+ 2y4r=y2r+y6r; 2y8r=fake+y6r;
+ (x8r-x6r)/(y8r-y6r)=-(x4r-x6r)/(y4r-y6r); % determine |x6r|
+ y1r=y2r;rt x1=hround(rt x8r+u); pos1(flare,90); % tip
+ filldraw stroke z1e..gr_arc.e(2,3,4)(vstem,curve,otilt)
+ & gr_arc.e(4,5,6)(vair,curve,otilt) % top stroke and left bowl
+ & gr_arc.e(6,7,8)(vair,curve,otilt); % bottom part of right bowl
+ z9l=z2l; pos9(vair,180); z9'l=z2'l; z9'r=left;
+ filldraw stroke z8e{z8'e}..z9e{z9'e}; % top part of right bowl
+enddef;
+
+cmchar "Initial and medial lowercase sigma";
+beginchar("s",dim_sigma);
+mid_sigma; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+picture savedpicture;
+
+% TAU
+
+def dims = 8.5u#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = -.25,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ pi_bar; % bar
+ pos4(hair,0); y4=y2; lft x4l-(x1-.5hair)=rt x3-rt x4r; % attachment
+ pos5(hair,0); y5=.5x_height; x5=x4; % midstems
+ x6=x4+1.5u; bot y6l=-oo; pos6(stem,90); alpha_tail(6,7); % stem
+ filldraw stroke z7e...z6e{left}...z5e---z4e;
+enddef;
+
+cmchar "Lowercase tau";
+beginchar("t",dims);
+this_letter; penlabels(1,2,3,6,7,8); endchar;
+
+picture savedpicture;
+
+% UPSILON
+
+def width = 9u enddef;
+def dims = width#,x_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ y2+.5stem=x_height+o; x2-.5stem=hround.75u; % left tip
+ lft x4r=hround(x2-.5stem+.75u); y4r=.5x_height; % left middle
+ y8r=y4r; rt x8r=hround(w-.75u); % right bulge
+ x6r=.5[x4r,x8r]; bot y6r=-oo; % bottom
+ numeric tilt;
+ tilt:=min(2*otilt,.5);
+ filldraw stroke
+ gr_arc.e(6,7,8)(vair,stem,tilt) ;
+ filldraw stroke
+ gr_arc.e(4,5,6)(vair,.4[vair,stem],tilt) ;
+ y9+.5hair=x_height+o; x9=x8-u; pos9(hair,angle ((z8-z9) xscaled 2)+90);
+ filldraw circ_stroke z9e...{-z8'e}z8e;
+ pos2(stem,angle((z4-z2) xscaled 2)-90);
+ filldraw circ_stroke z2e...{z4'e}z4e;
+ numeric x_baryctr; x_baryctr=.5w;
+enddef;
+
+cmchar "Lowercase upsilon";
+beginchar("u",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lowercase upsilon with rough breathing";
+beginchar(oct"031",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase upsilon with smooth breathing";
+beginchar(oct"032",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase upsilon with acute";
+beginchar(oct"033",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase upsilon with rough breathing and acute";
+beginchar(oct"034",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase upsilon with smooth breathing and acute";
+beginchar(oct"166",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase upsilon with circumflex";
+beginchar(oct"036",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+picture savedpicture;
+
+% FI
+
+def dims = 10.5u#,x_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ lft x4r=w-rt x8r=hround .75u; y4r=y8r=.5h;
+ x6r=.5[x4r,x8r]; bot y6r=-oo;
+ numeric tilt; tilt:=min(2*otilt,.5);
+ filldraw stroke gr_arc.e(6,7,8)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(4,5,6)(vair,.5[vair,stem],tilt) ;
+ y2+.5stem=h+o; x2+.5stem=hround(x6-1.5u);
+ pos2(stem,angle((z2-z4)xscaled 2)+90);
+ filldraw circ_stroke z2e...{z4'e}z4e;
+ pos10(stem,180); pos11(hair,180);
+ y10-.5stem=-d-o; y11=.25h; x10=x11=x6;
+ x9r=.5[x10r,x8r]; top y9r=h+o;
+ filldraw stroke gr_arc.e(8,20,9)(.25[vair,stem],.5[vair,stem],.5tilt);
+ filldraw circ_stroke z10e..z11e{up}..{-z9'e}z9e;
+enddef;
+
+cmchar "Lowercase phi";
+beginchar("f",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10,11,12,20,21); endchar;
+
+picture savedpicture;
+
+% QI
+
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+def dims = 10u#,x_height#,desc_depth# enddef;
+
+def gen_letter=
+ pickup fine.nib;
+ x1-.5stem=hround .75u; y1+.5stem=h+oo; % top left
+ z1'=(1,.2); pos1(stem,angle z1'+90); % direction at z1
+ x3+x1=w; y3-.5stem=-d-oo; pos3(stem,angle z1'+90); % bottom right
+ z2=.5[z1,z3]; % attachment
+ z2'=(z3-z1)yscaled 2; pos2(hair,angle z2'+90); % direction at z4
+ filldraw double_circ_stroke z1e{z1'}... z2e{(z3-z1)yscaled 2}...{z1'}z3e;
+ lft x7l=hround .75u; bot y7l=-d-oo; z2=.5[z7l,z8r]=.5[z7r,z8l];
+ numeric stem'; stem'=stem-currentbreadth;
+ numeric theta; theta=angle(z8r-z7l)+angle((x8r-x7l)++(y8r-y7l)+-+stem',stem');
+ x7r=x7l+(stem'/sind theta); y7r=y7l;
+ filldraw stroke z7e..z8e;
+enddef;
+
+cmchar "Lowercase chi";
+beginchar("q",dims);
+this_letter; penlabels(1,2,3,7,8); endchar;
+
+picture savedpicture;
+
+% YI
+
+def dims = 10.5u#,asc_height#,desc_depth# enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ lft x2r=w-rt x6r=.75u; y2r=y6r=.6x_height; % left and right bulges
+ x4r=.5[x2r,x6r]; bot y4r=-oo; % bottom
+ numeric tilt; tilt:=min(2*otilt,.5);
+ filldraw stroke gr_arc.e(4,5,6)(vair,stem,tilt) ;
+ filldraw stroke gr_arc.e(2,3,4)(vair,.4[vair,stem],tilt) ;
+ y7+.5hair=x_height+o; x7+.5hair=hround(rt x6r-.75u); % right tip
+ pos7(hair,angle ((z6-z7) xscaled 2)+90);
+ filldraw circ_stroke z7e...{-z6'e}z6e;
+ y1+.5stem=x_height+o; x1-.5stem=hround(lft x2r+.5u); % left tip
+ pos1(stem,angle((z2-z1) xscaled 2)-90);
+ filldraw circ_stroke z1e...{z2'e}z2e;
+ pos10(stem,0); pos9(hair,0); pos8(stem,0); % vertical stroke
+ y10-.5stem=-d-o; y9=.25x_height; y8+.5stem=h+o; x10=x9=x8=x4;
+ filldraw double_circ_stroke z10e..z9e{up}..z8e;
+enddef;
+
+cmchar "Lowercase psi";
+beginchar("y",dims);
+this_letter; penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+picture savedpicture;
+
+% WMEGA
+
+def width = 12u enddef;
+def height = x_height enddef;
+def dims = width#,height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter =
+ pickup fine.nib;
+ pos2(stem,-180); pos8(stem,360); lft x2r=w-rt x8r=hround.75u;
+ y2=y8=.8bar_height; % left and right bulges
+ y4=y6=bar_height; .5[x4,x6]=.5w; rt x4r-lft x6r=stem;
+pos4(hair,0); pos6(hair,180); % left and right of loop
+ bot y3r=bot y7r=-oo; x3=.5[x2,x4]; x7+.25u=.5[x6,x8];
+ pos3(vstem,-150); pos7(vstem,330); % left and right bottom
+ top y1r=x_height+o=top y9r; % left tip
+ x1=.5[x2,.5w]; pos1(.2[stem,hair],angle(-.5w,y2-x_height)-90);
+x9=.5[x8,.5w]; pos9(.8[stem,hair],angle(-.5w,x_height-y2)-90); % rt tip
+ filldraw stroke z1e{(z2-z1) xscaled 2}...z2e{down}...z3e{right};
+ filldraw stroke z7e{right}...{up}z8e...{(z9-z8) xscaled 2}z9e;
+ drawloop(3,4,6,7);
+ numeric x_baryctr; x_baryctr=.5[x4,x6];
+ numeric pos_stem; pos_stem=x_baryctr;
+enddef;
+
+cmchar "Lowercase omega";
+beginchar("w",dims);
+this_letter; penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Lowercase omega with rough breathing";
+beginchar(oct"015",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing";
+beginchar(oct"016",width#,acc_ht#,0);
+this_letter; spirit(x_baryctr)>; endchar;
+
+cmchar "Lowercase omega with acute";
+beginchar(oct"017",width#,acc_ht#,0);
+this_letter; acute(x_baryctr); endchar;
+
+cmchar "Lowercase omega with rough breathing and acute";
+beginchar(oct"020",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)<; endchar;
+
+cmchar "Lowercase omega with smooth breathing and acute";
+beginchar(oct"021",width#,acc_ht#,0);
+this_letter; spirit_acute(x_baryctr)>; endchar;
+
+cmchar "Lowercase omega with circumflex";
+beginchar(oct"022",width#,circ_ht#,0);
+this_letter; circumflex(x_baryctr); endchar;
+
+picture pic.iota;
+picture savedpicture;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrpunct.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrpunct.mf
new file mode 100644
index 00000000000..55f7ea8ccc7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrpunct.mf
@@ -0,0 +1,235 @@
+cmchar "Open quotes (eisagwgik'a)";
+beginchar("{",7.5u#,x_height#,0);
+adjust_fit(0,0);
+pos0(.5[hair,stem],0); pos1(1.5stem,0); pos2(.5[hair,stem],0);
+pos3(.5[hair,stem],0); pos4(1.5stem,0); pos5(.5[hair,stem],0);
+y0=y3=.9h; y1=y4=.5h; y2=y5=h-y0;
+x1-.1stem=hround(.5u);
+x3r=w-u;
+x4-x1=2stem; x3-x4=x0-x1; x0=x2; x3=x5;
+if x1>=x0: x1:=x0-1; x4:=x3-1;
+x1l:=x1-.5stem; x1r:=x1+.5stem;
+x4l:=x4-.5stem; x4r:=x4+.5stem; fi
+filldraw stroke z0e---z1e---z2e;
+filldraw stroke z3e---z4e---z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Close quotes (eisagwgik'a)";
+beginchar("}",7.5u#,x_height#,0);
+adjust_fit(0,0);
+pos0(.5[hair,stem],0); pos1(1.5stem,0); pos2(.5[hair,stem],0);
+pos3(.5[hair,stem],0); pos4(1.5stem,0); pos5(.5[hair,stem],0);
+y0=y3=.9h; y1=y4=.5h; y2=y5=h-y0;
+x1+.1stem=hround(w-.5u);
+x3l=u;
+x1-x4=2stem; x3-x4=x0-x1; x0=x2; x3=x5;
+if x1<=x0: x1:=x0+1; x4:=x3+1;
+x1l:=x1-.5stem; x1r:=x1+.5stem;
+x4l:=x4-.5stem; x4r:=x4+.5stem; fi
+filldraw stroke z0e---z1e---z2e;
+filldraw stroke z3e---z4e---z5e;
+penlabels(0,1,2,3,4,5); endchar;
+
+cmchar "Exclamation point";
+beginchar("!",5u#+width_adj#,asc_height#,0);
+italcorr asc_height#*slant-2u#-.5width_adj#+.5dot_size#;
+adjust_fit(0,0);
+pickup tiny.nib; pos3(dot_size,0); pos4(dot_size,90);
+lft x3l=hround(.5w-.5dot_size); bot y4l=0; z3=z4; dot(3,4); % dot
+numeric bot_width;
+bot_width=if hefty:max(hround .8dot_size,fine.breadth) else: hair fi;
+pickup fine.nib; pos1(dot_size,0); pos2(bot_width,0);
+x1=x2=x3; bot y2=.25[top y4r,x_height]+1;
+if square_dots: top y1=h;
+ filldraw stroke z1e--z2e; % stem
+else: top z0=(x1,h+o); y1+.5dot_size=h+o;
+ filldraw z1r...z0...z1l---z2l--z2r---cycle; fi % stem and bulb
+penlabels(0,1,2,3,4); endchar;
+
+cmchar "Per cent sign";
+beginchar("% ",9u#+max(6u#,2fudge*(hair#+stem#)),
+ body_height#,body_height#-asc_height#);
+italcorr if hefty: .4asc_height#*slant-.5u# else: h#*slant-u# fi;
+adjust_fit(0,0); pickup fine.nib;
+numeric left_curve,right_curve;
+left_curve=hround 5/6[fudged.hair,fudged.stem];
+right_curve=max(fine.breadth,hround(fudged.hair if hefty:-2stem_corr fi));
+pos1(vair,90); pos2(left_curve,180); pos3(vair,270); pos4(right_curve,360);
+top y1r=h; lft x2r=hround u; rt x4r=hround(.5w-1.5u);
+bot y3r=floor(if monospace: .7 else: .5 fi\\ asc_height);
+x1=x3=.5[x2,x4]; y2=y4=.5[y1,y3];
+filldraw stroke pulled_super_arc.e(1,2)(superpull)
+ & pulled_super_arc.e(2,3)(superpull); % left half of upper bowl
+filldraw stroke super_arc.e(3,4)
+ & super_arc.e(4,1); % right half of upper bowl
+pos5(vair,90); pos6(left_curve,180); pos7(vair,270); pos8(right_curve,360);
+bot y7r=-d; rt x8r=hround(w-u); lft x6r=hround(.5w+1.5u);
+top y5r=vround(if monospace: .3 else: .5 fi\\ asc_height);
+x5=x7=.5[x6,x8]; y6=y8=.5[y5,y7];
+filldraw stroke pulled_super_arc.e(5,6)(superpull)
+ & pulled_super_arc.e(6,7)(superpull); % left half of lower bowl
+filldraw stroke super_arc.e(7,8) & super_arc.e(8,5); % right half of lower bo
+pickup rule.nib; top y9=h; bot y10=-d;
+if hefty: x9=good.x(x5-eps); x10=good.x(x1+eps);
+ draw z9--z10; % diagonal
+else: rt x9=hround(w-2.5u); lft x10=hround 2.5u; draw z9--z10; % diagonal
+ pickup fine.nib; pos9(rule_thickness,angle(z9-z10)+90);
+ pos11(vair,angle(z1r-z4r)-90); pos12(vair,angle(z9-z10)+90);
+ path p; p=super_arc.r(1,4); z11r=point 2/3 of p; z12r=z9r;
+ filldraw stroke z11e{direction 2/3 of p}...{z9-z10}z12e; fi % link
+penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+def dims = 6u#,asc_height#,0 enddef;
+def ital = 0 enddef;
+def fit_params = 0,0 enddef;
+
+def gen_letter=
+x1-.5dot_size=hround(.5w-u-.5dot_size); y1+.5dot_size=h;
+if monospace: comma(1,a,dot_size,.28u,vround 1.5comma_depth); % large comma
+else: comma(1,a,dot_size,.25u,comma_depth); fi % comma with increased jut
+enddef;
+
+cmchar "Apostrophe";
+beginchar(oct"035",dims);
+this_letter; penlabels(1); endchar;
+
+picture savedpicture;
+
+cmchar "Left parenthesis";
+beginchar("(",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+rt x1r=rt x3r=hround(w-u); lft x2l=hround(x1-4u if monospace: +4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Right parenthesis";
+beginchar(")",7u# if monospace: -u# fi,body_height#,paren_depth#);
+italcorr math_axis#*slant-.5u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(vair,0); pos2(.75[hair,stem],0); pos3(vair,0);
+lft x1l=lft x3l=hround u; rt x2r=hround(x1+4u if monospace: -4/3u fi);
+top y1=h; y2=.5[y1,y3]=math_axis;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...z2e
+ ...{3(x3e-x2e),y3-y2}z3e; % arc
+penlabels(1,2,3); endchar;
+
+cmchar "Asterisk";
+beginchar("*",9u#,
+ if low_asterisk:math_axis#+.5x_height# else: body_height# fi,0);
+italcorr h#*slant-.75u#;
+adjust_fit(0,0);
+numeric ast_flare; ast_flare=hround .7[thin_join,stem];
+x0=.5w; y0=h-.5x_height;
+for d=-150 step 60 until 150: z[d]=z0+.5dir d xscaled 7.5u yscaled x_height;
+ numeric theta; theta=angle(z[d]-z0);
+ fill z0+.5(0,-thin_join)rotated theta
+ ---z[d]+.5(-ast_flare,-ast_flare)rotated theta
+ ..z[d]..z[d]+.5(-ast_flare,ast_flare)rotated theta
+ ---z0+.5(0,thin_join)rotated theta--cycle; endfor % diagonal at angle |d|
+labels(0,[-150],[-90],[-30],30,90,150); endchar;
+
+cmchar "Plus sign";
+beginarithchar("+"); pickup rule.nib;
+x1=x2=good.x .5w; top y1=h+eps; .5[y1,y2]=math_axis;
+lft x3=hround u-eps; x4=w-x3; y3=y4=math_axis;
+draw z1--z2; % stem
+draw z3--z4; % crossbar
+labels(1,2,3,4); endchar;
+
+cmchar "Comma";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(",",5u#,dot_diam#,comma_depth#);
+adjust_fit(0,0);
+x1-.5dot_diam=hround(.5w-.5dot_diam); y1-.5dot_diam=0;
+comma(1,a,dot_diam,.2u,comma_depth); % dot and tail
+penlabels(1); endchar;
+
+cmchar "Period";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(".",5u#,dot_diam#,0);
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); bot y2l=0; z1=z2; dot(1,2); % dot
+penlabels(1,2); endchar;
+
+cmchar "Virgule (slash)";
+beginchar("/",9u#,body_height#,paren_depth#);
+italcorr body_height#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+rt x1=hround(w-u)+eps; top y1=h+eps;
+lft x2=hround u-eps; bot y2=-d-eps;
+draw z1--z2; % diagonal
+penlabels(1,2); endchar;
+
+cmchar "Colon";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(":",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+pos3(dot_diam,0); pos4(dot_diam,90);
+x3=x1; bot y4l=0; z3=z4; dot(3,4); % lower dot
+penlabels(1,2,3,4); endchar;
+
+cmchar "'Anw tele'ia";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar(";",5u#,x_height#,0);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+penlabels(1,2); endchar;
+
+cmchar "Question mark";
+numeric dot_diam#; dot_diam#=if monospace: 5/4 fi\\ dot_size#;
+define_whole_blacker_pixels(dot_diam);
+beginchar("?",5u#,x_height#,comma_depth#);
+italcorr x_height#*slant+.5dot_diam#-2u#;
+adjust_fit(0,0); pickup fine.nib;
+pos1(dot_diam,0); pos2(dot_diam,90);
+lft x1l=hround(.5w-.5dot_diam); top y2r=h; z1=z2; dot(1,2); % upper dot
+x3-.5dot_diam=hround(.5w-.5dot_diam); y3-.5dot_diam=0;
+comma(3,a,dot_diam,.05u,comma_depth); % lower dot and tail
+penlabels(1,2,3); endchar;
+
+cmchar "Equals sign";
+compute_spread(.45x_height#,.55x_height#);
+beginchar("=",14u#,v_center(spread#+rule_thickness#));
+italcorr h#*slant-.5u#;
+adjust_fit(0,0); pickup rule.nib;
+lft x1=hround u-eps; x3=x1; x2=x4=w-x1;
+y1=y2; y3=y4; y1-y3=spread; .5[y1,y3]=math_axis;
+draw z1--z2; % upper bar
+draw z3--z4; % lower bar
+labels(1,2,3,4); endchar;
+
+
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+cmchar "En dash";
+beginchar(oct"000",9u#,x_height#,0);
+italcorr .61803x_height#*slant+.5u#;
+adjust_fit(0,0);
+pickup crisp.nib; pos1(vair,90); pos2(vair,90);
+top y1r=top y2r=vround(.61803h+.5vair); lft x1=-eps; rt x2=w+eps;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrrg10.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrrg10.mf
new file mode 100644
index 00000000000..0c36d51e702
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrrg10.mf
@@ -0,0 +1,85 @@
+% Reduced Greek Regular 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input rgrbase fi
+
+font_identifier:="rgrrg"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+italics:=false;
+
+generate rgreek;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrsc10.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrsc10.mf
new file mode 100644
index 00000000000..18ac98eaff8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrsc10.mf
@@ -0,0 +1,171 @@
+% Greek Small Capitals 10 point yannis.Berlin.29.11.88 and Lille 5.2.90
+
+if unknown cmbase: input cmbase fi
+if unknown grbase: input rgrbase fi
+
+font_identifier:="rgrsc"; font_size 10pt#;
+
+% first come parameters used to set the uppercase letters
+% including for lowercase.
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false;
+monowidth:=false;
+italics:=false;
+% now come replacements used to set the lowercase caps
+
+lower.u#:=16/36pt#; % unit width
+lower.width_adj#:=0pt#; % width adjustment for certain characters
+lower.cap_serif_fit#:=4/36pt#; % extra sidebar near uppercase serifs
+lower.letter_fit#:=0pt#; % extra space added to all sidebars
+
+lower.body_height#:=200/36pt#; % height of tallest characters
+lower.cap_height#:=185/36pt#; % height of caps
+lower.x_height#:=116/36pt#; % height of lowercase without ascenders
+lower.bar_height#:=65/36pt#; % height of crossbar in lowercase e
+lower.comma_depth#:=52/36pt#; % depth of comma below baseline
+
+lower.flare#:=22/36pt#; % diameter of bulbs or breadth of terminals
+lower.cap_hair#:=9.1/36pt#; % uppercase hairline breadth
+lower.stem#:=22/36pt#; % lowercase stem breadth
+lower.cap_stem#:=26/36pt#; % uppercase stem breadth
+lower.cap_curve#:=31/36pt#; % uppercase curve breadth
+lower.cap_ess#:=28/36pt#; % breadth in middle of uppercase s
+
+lower.cap_jut#:=26/36pt#; % protrusion of uppercase serifs
+lower.beak_jut#:=7/36pt#; % horizontal protrusion of beak serifs
+lower.beak#:=52/36pt#; % vertical protrusion of beak serifs
+lower.slab#:=9.1/36pt#; % serif and arm thickness
+lower.cap_bar#:=9.1/36pt#; % uppercase bar thickness
+lower.cap_band#:=9.1/36pt#; % uppercase thickness above/below lobes
+lower.cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+
+lower.o#:=5/36pt#; % amount of overshoot for curves
+lower.apex_o#:=4/36pt#; % amount of overshoot for diagonal junctions
+
+lower.fudge:=1; % factor applied to weights of heavy characters
+italics:=false;
+
+% parameters for the four slanted characters
+
+ysl_slant:=1/6;
+
+% parameters for the four italic characters
+
+yit_u#:=19/36pt#; % unit width
+
+yit_hair#:=11/36pt#; % lowercase hairline breadth
+yit_curve#:=28/36pt#; % lowercase curve breadth
+yit_cap_stem#:=29/36pt#; % uppercase stem breadth
+yit_cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+yit_beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+
+yit_slant:=1/4; % tilt ratio $(\Delta x/\Delta y)$
+
+% parameters for the four boldface characters
+
+ybf_u#:=22/36pt#; % unit width
+ybf_width_adj#:=11/36pt#; % width adjustment for certain characters
+ybf_cap_serif_fit#:=7/36pt#; % extra sidebar near uppercase serifs
+ybf_cap_height#:=247/36pt#; % height of caps
+ybf_x_height#:=160/36pt#; % height of lowercase without ascenders
+
+ybf_tiny#:=13/36pt#; % diameter of rounded corners
+ybf_fine#:=10/36pt#; % diameter of sharply rounded corners
+ybf_hair#:=13/36pt#; % lowercase hairline breadth
+ybf_stem#:=50/36pt#; % lowercase stem breadth
+ybf_curve#:=41/36pt#; % lowercase curve breadth
+ybf_cap_stem#:=51/36pt#; % uppercase stem breadth
+ybf_o#:=4/36pt#;
+
+ybf_cap_jut#:=39/36pt#; % protrusion of uppercase serifs
+ybf_beak_jut#:=11/36pt#; % horizontal protrusion of beak serifs
+ybf_vair#:=11/36pt#; % vertical diameter of hairlines
+ybf_slab#:=17/36pt#; % serif and arm thickness
+ybf_cap_bar#:=17/36pt#; % uppercase bar thickness
+ybf_stem_corr#:=2/36pt#; % for small refinements of stem breadth
+
+ybf_slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+ybf_beak_darkness:=.4/30; % fraction of triangle inside beak serifs
+
+logo_ht#:=6pt#; % height of characters
+logo_xgap#:=0.6pt#; % horizontal adjustment
+logo_u#:=4/9pt#; % unit width
+logo_s#:=0; % extra space at the left and the right
+logo_o#:=1/9pt#; % overshoot
+logo_px#:=2/3pt#; % horizontal thickness of pen
+
+generate greekcsc; % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrsl10.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrsl10.mf
new file mode 100644
index 00000000000..1663e95c390
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrsl10.mf
@@ -0,0 +1,85 @@
+% Reduced Greek Slanted 10 point
+if unknown cmbase: input cmbase fi
+if unknown grbase: input rgrbase fi
+
+font_identifier:="rgrsl"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=82/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=90/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=30/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=27/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=1/6; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2; % tilt of inner bowl for the letter omicron
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at th
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false; % should stems, etc. be straight?
+monowidth:=false; %are stem and hair more or less the same width?
+italics:=false;
+
+generate rgreek;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrti10.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrti10.mf
new file mode 100644
index 00000000000..1c3d0d94389
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrti10.mf
@@ -0,0 +1,88 @@
+% This was CMTI10.MF in text format, as of Mar 31, 1986.
+% Computer Modern Text Italic 10 point
+% and now is rgrti10: reduced greek text italic, rgr-version 1.1 (experimental)
+% as of Jan 22, 1990.
+if unknown cmbase: input cmbase fi
+if unknown grbase: input rgrbase fi
+
+font_identifier:="rgrti"; font_size 10pt#;
+
+u#:=19/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=9.2/36pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+acc_ht#:=250/36pt#;
+circ_ht#:=225/36pt#;
+Circ_ht#:=250/36pt#;
+iota_dp#:=72/36pt#;
+
+crisp#:=8/36pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=11/36pt#; % lowercase hairline breadth
+stem#:=23/36pt#; % lowercase stem breadth
+curve#:=28/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=29/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=29/36pt#; % uppercase stem breadth
+cap_curve#:=34/36pt#; % uppercase curve breadth
+cap_ess#:=31/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=30/36pt#; % protrusion of lowercase serifs
+cap_jut#:=34/36pt#; % protrusion of uppercase serifs
+beak_jut#:=9/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=.25; % tilt ratio $(\Delta x/\Delta y)$
+otilt:=.2;
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=true; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+straight:=false;
+monowidth:=false;
+italics:=true;
+
+generate rgreek % switch to the driver file
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/rgrupper.mf b/Master/texmf-dist/fonts/source/public/yannisgr/rgrupper.mf
new file mode 100644
index 00000000000..3c62514b396
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/rgrupper.mf
@@ -0,0 +1,614 @@
+% This file is a rearrangement of code in Computer Modern's romanu.mf
+% It contains definitions for Greek capitals.
+
+cmchar "Uppercase alpha";
+beginchar("A",13u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,alpha;
+right_stem=cap_stem-stem_corr;
+left_stem=min(cap_hair if hefty: -3stem_corr fi,right_stem);
+outer_jut=.8cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+penpos5(whatever,angle(z2-z1)); z5=whatever[z1,z2];
+penpos6(whatever,angle(z3-z4)); z6=whatever[z3,z4]; y6=y5;
+if hefty: y5r else: y5 fi =5/12y0;
+y5r-y5l=y6r-y6l=cap_band; penstroke z5e--z6e; % bar line
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase beta";
+beginchar("B",12.5u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+numeric left_stem,right_curve,middle_weight;
+left_stem=cap_stem-hround 2stem_corr; middle_weight=.6vair+.5;
+pickup tiny.nib; pos1(left_stem,0); pos2(left_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5left_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos6(middle_weight,-90); penpos7(middle_weight,-90);
+penpos8(middle_weight,90); penpos9(middle_weight,90);
+penpos5(right_curve-stem_corr,0); penpos10(right_curve,0);
+penpos11(cap_band,-90); penpos12(cap_band,-90);
+z3r=top z1; y4=y3; y5=.5[y4,y6]; y6=y7; y7l-y8l=vair;
+z12r=bot z2; y11=y12; y10=.5[y11,y9]; y8=y9; .5[y7l,y8l]=.52h;
+x4=x6; x9=x11=x4+.5u; x7=x8=x1; x9l:=x4+.25u;
+x5r=hround(w-1.5u); x10r=hround(w-u);
+if serifs: right_curve=cap_curve-stem_corr; x4=.5[x1,w-1.5u];
+else: right_curve=cap_curve-3stem_corr; x4=.5[x1,w-2.5u];
+ x4l:=x4l-.5u; x9l:=x9l-.5u; fi
+x6l:=x6l-.5u; x11l:=x11l-.5u;
+fill stroke z3e..super_arc.e(4,5) & super_arc.e(5,6)..z7e; % upper lobe
+fill stroke z8e..super_arc.e(9,10) & super_arc.e(10,11)..z12e; % lower lobe
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9,10,11,12); endchar;
+
+cmchar "Uppercase epsilon";
+beginchar("E",12u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.52[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4.4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and seri
+pos8(slab if not serifs:+2stem_corr fi,-90); pos9(hair,0);
+bot y8r=0; x8=x2; y9=good.y(y8l+7/6beak)+eps;
+arm(8,9,h,beak_darkness,1.5beak_jut); % lower arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,.5cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Uppercase eta";
+beginchar("H",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5=y6=.52h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,inner_jut); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,inner_jut,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase iota";
+beginchar("I",max(6u#,4u#+cap_stem#),cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+if serifs: dish_serif(1,2,a,1/3,1.05cap_jut,b,1/3,1.05cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.05cap_jut,d,1/3,1.05cap_jut); fi % lower serif
+math_fit(0,.5ic#); penlabels(1,2); endchar;
+
+cmchar "Uppercase kappa";
+beginchar("K",13.5u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric right_jut,stem[],alpha[];
+if serifs: right_jut=.6cap_jut;
+else: right_jut=.4tiny; fi
+pickup tiny.nib; pos1(fudged.cap_stem,0); pos2(fudged.cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5fudged.cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+stem2=max(tiny.breadth,fudged.cap_stem-3stem_corr);
+stem1=max(tiny.breadth,fudged.hair if hefty:-3stem_corr fi);
+top y3=h; rt x3r=hround(r-letter_fit-u-right_jut);
+bot y6=0; rt x6r=hround(r-letter_fit-.75u-right_jut);
+x4=x1; y4=1/3h;
+alpha1=diag_ratio(1,.5(stem1-tiny),y3-y4,x3r-x4);
+penpos3(alpha1*(stem1-tiny),0); penpos4(whatever,-90);
+alpha2=diag_ratio(1,.5(stem2-tiny),y1-y6,x6r-x1);
+penpos6(alpha2*(stem2-tiny),0);
+forsuffixes $=l,r: y3'$=h; y6'$=0; z4$=z3'$+whatever*(z3-z4);
+ z5$=z6'$+whatever*(z1-z6)=whatever[z3,z4]; endfor
+z5=.5[z5l,z5r];
+z3'r=z3r+penoffset z3-z4 of currentpen+whatever*(z3-z4);
+% we have also |z3'l=z3l+penoffset z4-z3 of currentpen+whatever*(z3-z4)|;\]
+z6'r=z6r+penoffset z1-z6 of currentpen+whatever*(z1-z6);
+z6'l=z6l+penoffset z6-z1 of currentpen+whatever*(z1-z6);
+fill z4r--diag_end(4r,3'r,1,.5,3'l,4l)--z4l--cycle; % upper diagonal
+fill z5l--diag_end(5l,6'l,.5,1,6'r,5r)--z5r--cycle; % lower diagonal
+if serifs: numeric inner_jut;
+ if rt x2r+cap_jut+.5u+1<=lft x6l-cap_jut: inner_jut=cap_jut;
+ else: rt x2r+cap_jut+.5u+1=lft x6l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,cap_jut); % upper stem serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,cap_jut); % lower stem serif
+ dish_serif(3,4,e,2/3,1.2cap_jut,f,1/2,right_jut)(dark); % upper diagonal seri
+ dish_serif(6,5,g,1/2,inner_jut,h,1/3,right_jut)(dark);fi % lower diagonal ser
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase mu";
+beginchar("M",16u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[]; % thicknesses of the four strokes
+stem1=hround(fudged.hair+stem_corr);
+stem2=hround(fudged.cap_stem-4stem_corr);
+stem3=hround(fudged.hair-stem_corr);
+stem4=hround(fudged.cap_stem-3stem_corr);
+if stem4<stem1: stem4:=stem1; fi
+pickup tiny.nib; pos1(stem1,0); pos2(stem1,0);
+pos3(stem4,0); pos4(stem4,0);
+x1=x2; x3=x4; x1l=w-x3r; rt x3r=hround min(w-2u,w-3u+.5stem4);
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(stem2,0); penpos6(stem2,0); penpos7(stem3,0); penpos8(stem3,0);
+x5l=x1; x6l=x7l; x8=lft x3l; x6-x5=x8-x7; y5=y8=h; y6=y7;
+if hefty: y6=if monospace: vround 1/3h else: o fi;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=y6+cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x3'=lft x3l; z3'=whatever[z7r,z8r];
+ z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ if y3'<upper_notch: ...{up}(x3'-1,upper_notch){right} fi
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}
+ if y0<=lower_notch: ..{z7-z8}z0{z5-z6}..
+ else: ...{down}(x0+.5,lower_notch)--(x0-.5,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonals
+else: y6=0; z0=whatever[z5r,z6r]=whatever[z7l,z8l];
+ fill z5l..{z6-z5}diag_in(5l,6l,1,6r)..diag_out(7l,1,7r,8r){z8-z7}
+ ..z8r--diag_out(8r,1,8l,7l){z7-z8}..{z7-z8}z0{z5-z6}
+ ..{z5-z6}diag_in(6r,5r,1,5l)--cycle; fi % diagonals
+if serifs: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ serif(3,4,d,1/3,cap_jut); % upper right serif
+ dish_serif(4,3,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower right serif
+math_fit(0,max(.5ic#-.5u#,0));
+penlabels(0,1,1',2,3,3',4,5,6,7,8); endchar;
+
+cmchar "Uppercase nu";
+beginchar("N",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric thin_stem; thin_stem=hround(fudged.hair+stem_corr);
+pickup tiny.nib; pos1(thin_stem,0); pos2(thin_stem,0);
+pos3(thin_stem,0); pos4(thin_stem,0);
+pickup tiny.nib; top y1=top y3=h; bot y2=bot y4=0;
+x1=x2; x3=x4; x1l=w-x3r;
+rt x3r=hround min(w-2u,w-3u+.5fudged.cap_stem);
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+if hefty: penpos5(fudged.cap_stem,0); penpos6(fudged.cap_stem,0);
+ x5l=x1; x6r=x4; y5=h; y6=0;
+ numeric upper_notch,lower_notch;
+ upper_notch=h-cap_notch_cut; lower_notch=cap_notch_cut;
+ x1'=rt x1r; z1'=whatever[z5l,z6l]; x4'=lft x4l; z4'=whatever[z5r,z6r];
+ fill z5l..
+ if y1'<upper_notch: {right}(x1'+1,upper_notch){down}... fi
+ {z6-z5}diag_in(5l,6l,1,6r)--z6r..
+ if y4'>lower_notch: {left}(x4'-1,lower_notch){up}... fi
+ {z5-z6}diag_in(6r,5r,1,5l)--cycle; % diagonal
+else: penpos5(whatever,0); penpos6(whatever,90);
+ z5l=z1l; z6l=z4l;
+ z7=z6l+(max(eps,cap_stem-3stem_corr-tiny),0) rotated (angle(z5l-z6l)-90);
+ z5r=z7+whatever*(z5l-z6l); z6r=z7+whatever*(z5l-z6l);
+ filldraw stroke z5e..z6e; fi % diagonal
+if serifs: if hefty: serif(1,2,a,1/3,-cap_jut); % upper left serif
+ else: serif(5,6,a,1/3,-cap_jut); fi % upper left serif
+ dish_serif(2,1,b,1/2,cap_jut,c,1/2,cap_jut)(dark); % lower left serif
+ dish_serif(3,4,e,1/2,cap_jut,f,1/2,cap_jut)(dark); fi % upper right serif
+math_fit(0,max(.5ic#-.5u#,0)); penlabels(1,1',2,3,4,4',5,6,7); endchar;
+
+cmchar "Uppercase omicron";
+beginchar("O",14u#-width_adj#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+penpos1(vair',90); penpos3(vround(vair+1.5vair_corr),-90);
+penpos2(cap_curve,180); penpos4(cap_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y3r=-o;
+y2=y4=.5h-vair_corr; y2l:=y4l:=.52h;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase rho";
+beginchar("R",12u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(cap_serif_fit#,0);
+pickup tiny.nib; penpos1(cap_stem'-tiny,0); penpos2(cap_stem-tiny,0);
+pos0(cap_stem',0); pos0'(cap_stem,0);
+lft x1l=hround max(2u,3u-.5cap_stem'); top y1=h; bot y2=0;
+x1l=x2l=x0l=x0'l; y0=y0'=y7;
+penpos3(cap_band,90); penpos4(cap_band,90);
+penpos5(cap_curve if hefty:-3stem_corr fi,0);
+penpos6(.5[vair,cap_band],-90); penpos7(.5[vair,cap_band],-90);
+z3r=top z1; y4=y3; y5=.5[y4l,y6l]; y6=y7;
+x7=x2; y7l=vround .5h; x4=x6=.5w+.75u; x5r=hround(w-u);
+x4l:=x6l:=x4-.25cap_curve;
+filldraw stroke z1e--z0e--z0'e--z2e; % stem
+fill stroke z3e..pulled_arc.e(4,5) & pulled_arc.e(5,6)..z7e; % lobe
+if serifs: dish_serif(1,0,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,0',c,1/3,cap_jut,d,1/3,cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7); endchar;
+
+cmchar "Uppercase tau";
+beginchar("T",13u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.65u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,.7beak_jut); % right arm and beak
+pos5(hair,180); x5=w-x4; y5=y4;
+arm(3,5,f,beak_darkness,-.7beak_jut); % left arm and beak
+if serifs: dish_serif(1,2,a,1/3,.5cap_jut,b,1/3,.5cap_jut); % upper bracketin
+ dish_serif(2,1,c,1/3,1.414cap_jut,d,1/3,1.414cap_jut); fi % lower serif
+math_fit(-.75cap_height#*slant,ic#-2.5u#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase chi";
+beginchar("Q",13u#,cap_height#,0);
+italcorr cap_height#*slant-.25u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric stem[],outer_jut,xjut,alpha[];
+stem1=cap_stem-2stem_corr; stem2=min(cap_hair,stem1);
+outer_jut=.75cap_jut; xjut= if serifs: (stem1-stem2)/4 else: 0 fi;
+x1l=l+letter_fit+.5u+outer_jut; x2r=r-letter_fit-u-outer_jut-xjut;
+x3l=l+letter_fit+.25u+outer_jut+xjut; x4r=r-letter_fit-.25u-outer_jut;
+y1=y2=h; y3=y4=0;
+alpha1=diag_ratio(1,stem1,h,x4r-x1l);
+alpha2=diag_ratio(1,stem2,h,x2r-x3l);
+penpos1(alpha1*stem1,0); penpos2(alpha2*stem2,0);
+penpos3(alpha2*stem2,0); penpos4(alpha1*stem1,0);
+if hefty: z0=whatever[z1,z4]=whatever[z2,z3];
+ x12=x34=x0; y13=y24=y0;
+ z12=whatever[z2l,z3l]; z13=whatever[z2l,z3l];
+ z24=whatever[z2r,z3r]; z34=whatever[z2r,z3r];
+ forsuffixes $=13,24,34: z$'=.1[z$,z0]; endfor
+ fill diag_end(12,1r,.5,1,1l,13')--z13'--diag_end(13',3l,1,.5,3r,34')--z34'
+ --diag_end(34',4l,.5,1,4r,24')--z24'
+ --diag_end(24',2r,1,.5,2l,12)--z12--cycle; % diagonals
+else: fill diag_end(4r,1r,.5,1,1l,4l)
+ --diag_end(1l,4l,.5,1,4r,1r)--cycle; % left diagonal
+ fill diag_end(2l,3l,.5,1,3r,2r)
+ --diag_end(3r,2r,.5,1,2l,3l)--cycle; fi % right diagonal
+if serifs: numeric inner_jut[]; pickup tiny.nib;
+ prime_points_inside(1,4); prime_points_inside(2,3);
+ prime_points_inside(3,2); prime_points_inside(4,1);
+ if rt x1'r+cap_jut+.5u+1<=lft x2'l-cap_jut-xjut: inner_jut1=cap_jut;
+ else: rt x1'r+inner_jut1+.5u+1=lft x2'l-inner_jut1-xjut; fi
+ if rt x3'r+cap_jut+.5u+1<=lft x4'l-cap_jut-xjut: inner_jut2=cap_jut;
+ else: rt x3'r+inner_jut2+.5u+1=lft x4'l-inner_jut2-xjut; fi
+ dish_serif(1',4,a,1/3,outer_jut,b,2/3,inner_jut1); % upper left serif
+ dish_serif(4',1,c,2/3,inner_jut2,d,1/3,outer_jut); % lower right serif
+ dish_serif(2',3,e,2/3,inner_jut1+xjut,
+ f,1/2,outer_jut+xjut)(dark); % upper right serif
+ dish_serif(3',2,g,1/2,outer_jut+xjut,
+ h,2/3,inner_jut2+xjut)(dark); fi % lower left serif
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,12,13,24,34); endchar;
+
+cmchar "Uppercase zeta";
+beginchar("Z",11u#,cap_height#,0);
+italcorr cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric arm_thickness[],z_stem;
+if hefty: arm_thickness1=Vround(slab-vair_corr); arm_thickness2=slab;
+ z_stem=.8[vair,cap_stem];
+else: arm_thickness1=slab; arm_thickness2=vround(slab+vair_corr);
+ z_stem=.9[vair,cap_stem]; fi
+pickup tiny.nib; x3l=x4l=w-x1r=w-x2r; lft x3l=hround u;
+top y1=h; y2=min(y1,h-2/3arm_thickness1);
+bot y4=0; y3=max(y4,2/3arm_thickness2);
+numeric alpha; alpha=diag_ratio(1,z_stem-tiny,y2-y3,x2r-x3l);
+penpos1(alpha*(z_stem-tiny),0); penpos2(alpha*(z_stem-tiny),0);
+penpos3(alpha*(z_stem-tiny),0); penpos4(alpha*(z_stem-tiny),0);
+pair delta; delta=penoffset z3-z2 of currentpen;
+fill top lft z1l--z2l+delta---z3l+delta..lft z3l---lft z4l..bot z4l
+ ---bot rt z4r--z3r-delta---z2r-delta..rt z2r---rt z1r..top z1r
+ ---cycle; % diagonal
+pickup crisp.nib; pos5(arm_thickness1,90); pos6(hair,180);
+top y5r=h; x5=x1; lft x6r=hround 1.25u; y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness**.8,-.4beak_jut); % upper arm and beak
+pos7(arm_thickness2,-90); pos8(hair,0);
+bot y7r=0; x7=x4; rt x8r=hround(w-.9u); y8=good.y(y7l+1.2beak)+eps;
+arm(7,8,b,beak_darkness**.9,.6beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase gamma";
+beginchar("G",11u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % arm and beak
+if serifs: dish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(1,2,3,4); endchar;
+
+cmchar "Uppercase delta";
+beginchar("D",15u#,cap_height#,0);
+adjust_fit(0,0);
+numeric left_stem,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+x1l=w-x4r=.75u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+fill diag_end(2l,1l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)--cycle; % triangle
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+y5=y6=cap_vstem; z5=whatever[z1r,z2r]; z6=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ unfill z0+.5right{down}...{z4-z3}z6--z5{z2-z1}
+ ...{up}z0+.5left--cycle; % counter
+else: unfill z0--z5--z6--cycle; fi % counter
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase theta";
+beginchar("J",14u#,cap_height#,0);
+italcorr .7cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric light_curve; light_curve=hround(cap_curve-2stem_corr);
+penpos1(vair,90); penpos3(vround(vair+.5vair_corr),-90);
+penpos2(light_curve,180); penpos4(light_curve,0);
+if monospace: x2r=hround 1.5u;
+ interim superness:=sqrt superness; % make |"O"|, not |"0"|
+else: x2r=hround u; fi
+x4r=w-x2r; x1=x3=.5w; y1r=h+o; y2=y4=.5h-vair_corr; y3r=-o;
+penstroke pulled_super_arc.e(1,2)(.5superpull)
+ & pulled_super_arc.e(2,3)(.5superpull)
+ & pulled_super_arc.e(3,4)(.5superpull)
+ & pulled_super_arc.e(4,1)(.5superpull) & cycle; % bowl
+pickup crisp.nib; pos5(cap_vstem,90); pos6(cap_vstem,90);
+lft x5=w-rt x6=hround(x2l+u)+1; y5=y6=.5[y1l,y3l];
+filldraw stroke z5e--z6e; % bar
+if serifs: pos7(hair,0); pos8(hair,0); pos9(hair,0); pos10(hair,0);
+ x7l=x8l=x5; x9r=x10r=x6;
+ y7-y5r=y9-y6r=y5l-y8=y6l-y10=vround .05h;
+ filldraw stroke z7e--z8e; % left serif
+ filldraw stroke z9e--z10e; fi % right serif
+math_fit(-.3cap_height#*slant-.5u#,ic#-.5u#);
+penlabels(1,2,3,4,5,6,7,8,9,10); endchar;
+
+cmchar "Uppercase lambda";
+beginchar("L",12u#,cap_height#,0);
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,outer_jut,alpha;
+left_stem=cap_hair if hefty: -3stem_corr fi;
+outer_jut=.7cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.5u; y1=y4=0;
+x2-x1=x4-x3; x3r=x2r+apex_corr; y2=y3=h+apex_o+apex_oo;
+alpha=diag_ratio(2,left_stem,y2-y1,x4r-x1l-apex_corr);
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*cap_stem,0); penpos4(alpha*cap_stem,0);
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0<h-cap_notch_cut: y0:=h-cap_notch_cut;
+ fill z0+.5right{down}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)
+ --diag_end(4r,3r,1,1,2l,1l)--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{up}z0+.5left--cycle; % left and right diagonals
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--diag_end(4r,3r,1,1,2l,1l)
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % left and right diagonals
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/2,outer_jut,b,.6,inner_jut)(dark); % left serif
+ dish_serif(4',3,c,1/2,inner_jut,d,1/3,outer_jut); fi % right serif
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase xi";
+beginchar("X",12u#,cap_height#,0);
+italcorr cap_height#*slant-.35u#;
+adjust_fit(0,0);
+h:=vround(h-2stem_corr);
+numeric shaved_stem; shaved_stem=hround .9[vair,.85cap_stem];
+pickup crisp.nib; pos1(shaved_stem,90); pos2(hair,0);
+top y1r=h; x1=.5w; rt x2r=hround(w-.85u); y2=good.y(y1l-4/9beak)-eps;
+arm(1,2,a,.4beak_darkness,.3beak_jut); % upper right arm and beak
+pos3(hair,180); x3=w-x2; y3=y2;
+arm(1,3,b,.4beak_darkness,-.3beak_jut); % upper left arm and beak
+pos4(shaved_stem,-90); pos5(hair,0);
+bot y4r=0; x4=.5w; rt x5r=hround(w-.75u); y5=good.y(y4l+.5beak)+eps;
+arm(4,5,c,.4beak_darkness,.3beak_jut); % lower right arm and beak
+pos6(hair,180); x6=w-x5; y6=y5;
+arm(4,6,d,.4beak_darkness,-.3beak_jut); % lower left arm and beak
+pos7(shaved_stem,90); pos8(shaved_stem,90);
+lft x7=w-rt x8=hround if serifs: 2.5 else: 2 fi\\ u;
+top y7r=top y8r=vround(.52h+.5shaved_stem);
+filldraw stroke z7e--z8e; % middle bar
+if serifs: numeric xjut;
+ if bot y2>top y7r+.75cap_jut: xjut=.5cap_jut;
+ else: bot y2=top y7r+1.5xjut; fi
+ pos11(hair,0); pos12(hair,0); y11=y12;
+ pos13(hair,0); pos14(hair,0); y13=y14;
+ lft x11l=lft x13l=w-rt x12r=w-rt x14r=hround 2.5u;
+ top y11-bot y13=shaved_stem+2xjut; .5[y11,y13]=y7;
+ filldraw stroke z11e--z13e; filldraw stroke z12e--z14e; fi % middle serifs
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,11,12,13,14); endchar;
+
+cmchar "Uppercase pi";
+beginchar("P",13u#+width_adj#,cap_height#,0);
+italcorr cap_height#*slant-cap_serif_fit#+cap_jut#-2.5u#+min(.5cap_stem#,u#);
+adjust_fit(cap_serif_fit#,cap_serif_fit#); pickup tiny.nib;
+h:=vround(h-stem_corr);
+pos1(cap_stem,0); pos2(cap_stem,0); pos3(cap_stem,0); pos4(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); x3=x4=w-x1;
+top y1=top y3=h; bot y2=bot y4=0;
+filldraw stroke z1e--z2e; % left stem
+filldraw stroke z3e--z4e; % right stem
+penpos5(cap_bar,90); penpos6(cap_bar,90);
+x5=x1; x6=x3; y5r=y6r=h;
+fill stroke z5e--z6e; % bar
+if serifs: numeric inner_jut;
+ if rt x1r+cap_jut+.5u+1<=lft x3l-cap_jut: inner_jut=cap_jut;
+ else: rt x1r+inner_jut+.5u+1=lft x3l-inner_jut; fi
+ dish_serif(1,2,a,1/3,cap_jut,b,1/3,eps); % upper left serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,inner_jut); % lower left serif
+ dish_serif(3,4,e,1/3,eps,f,1/3,cap_jut); % upper left serif
+ dish_serif(4,3,g,1/3,inner_jut,h,1/3,cap_jut); fi % lower left serif
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase sigma";
+beginchar("S",13u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(0,0);
+numeric bot_arm_thickness;
+bot_arm_thickness=Vround .25[slab,cap_vstem];
+pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l;
+top y1=h; bot y2=h-slab; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0);
+penpos3(alpha1*(cap_stem-tiny),0);
+alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(cap_hair-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
+arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "Uppercase upsilon";
+beginchar("U",13u#,cap_height#,0);
+italcorr cap_height#*slant+.45u#;
+adjust_fit(cap_serif_fit#,cap_serif_fit#);
+numeric left_stem,right_stem,outer_jut,dy,alpha;
+left_stem=cap_stem-stem_corr;
+right_stem=min(cap_hair if hefty:-2stem_corr fi,left_stem);
+outer_jut=.75cap_jut; x1l=w-x4r=l+letter_fit+outer_jut+.05u;
+x2l=x5l=hround(.5w-.5left_stem); x3r=x5r; y1=y4=h; y2=y3=y5=.4h;
+dy=y1-y2; alpha=((x2l-x1l)++dy)/dy;
+penpos1(alpha*left_stem,0); penpos2(alpha*left_stem,0);
+penpos3(alpha*right_stem,0); penpos4(alpha*right_stem,0);
+penpos5(left_stem,0); penpos6(left_stem,0); x5=x6; y6=0;
+z0=whatever[z1r,z2r]=whatever[z3l,z4l];
+if y0>y2+cap_notch_cut: y0:=y2+cap_notch_cut;
+ fill z0+.5right{up}...{z4-z3}diag_end(3l,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l--diag_end(2l,1l,1,1,1r,2r){z2-z1}
+ ...{down}z0+.5left--cycle; % diagonals and stem
+else: fill z0--diag_end(0,4l,1,1,4r,3r)--z5r
+ --diag_end(5r,6r,1,1,6l,5l)--z5l
+ --diag_end(2l,1l,1,1,1r,0)--cycle; fi % diagonals and stem
+if serifs: numeric inner_jut; pickup tiny.nib;
+ prime_points_inside(1,2); prime_points_inside(4,3); prime_points_inside(6,5);
+ if rt x1'r+cap_jut+.5u+1<=lft x4'l-cap_jut: inner_jut=cap_jut;
+ else: rt x1'r+inner_jut+.5u+1=lft x4'l-inner_jut; fi
+ dish_serif(1',2,a,1/3,outer_jut,b,1/2,inner_jut); % upper left serif
+ dish_serif(4',3,c,.6,inner_jut,d,1/2,outer_jut)(dark); % upper right serif
+ dish_serif(6',5,e,1/3,cap_jut,f,1/3,cap_jut); fi % lower serif
+math_fit(.5u#-cap_height#*slant,ic#-4u#);
+penlabels(0,1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase phi";
+beginchar("F",13u#,cap_height#,0);
+italcorr .5cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem,light_curve;
+shaved_stem=cap_stem-hround 2stem_corr;
+light_curve=cap_curve-hround stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+penpos3(vair,90); penpos5(vair,-90);
+penpos4(light_curve,180); penpos6(light_curve,0);
+x4r=hround u; x6r=w-x4r; x3=x5=.5w;
+y3r=vround(.85h if serifs:-slab fi); y4=y6=.5[y3,y5];
+y5r=vround(.15h if serifs:+slab fi);
+penstroke pulled_arc.e(3,4) & pulled_arc.e(4,5)
+ & pulled_arc.e(5,6) & pulled_arc.e(6,3) & cycle; % bowl
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.5cap_height#*slant-.5u#,ic#); penlabels(1,2,3,4,5,6); endchar;
+
+cmchar "Uppercase psi";
+beginchar("Y",14u#,cap_height#,0);
+italcorr .8cap_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric shaved_stem;
+shaved_stem=cap_stem-hround 2stem_corr;
+pickup tiny.nib; pos1(shaved_stem,0); pos2(shaved_stem,0);
+lft x1l=lft x2l=hround(.5w-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pos3(shaved_stem,-180); pos4(shaved_stem,-180);
+pos5(vair,-90); x5=x1; bot y5r=vround(.15h if serifs:+slab fi);
+pos6(shaved_stem,0); pos7(shaved_stem,0);
+lft x3r=hround u; x7=w-x3; lft x4r=hround(3u-.5shaved_stem); x6=w-x4;
+pos3'(vair,90); pos7'(vair,90); z3'r=z3r; z7'r=z7r;
+y3=y7; y4=y6=.6h; y3=good.y(y3+.84h if serifs:-slab fi-y3');
+interim superness:=more_super;
+filldraw z3'l{right}...z4r{down} & super_arc.r(4,5)
+ & super_arc.r(5,6) & z6r{up}...z7'l{right}
+ --z7r---z7l...z6l{down} & super_arc.l(6,5)
+ & super_arc.l(5,4) & z4l{up}...z3l---z3r--cycle; % stroke
+if serifs: dish_serif(1,2,a,1/3,1.25cap_jut,b,1/3,1.25cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,1.25cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(-.8cap_height#*slant-.5u#,.4cap_height#*slant-1.25u#);
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Uppercase omega";
+beginchar("W",13u#,cap_height#,0);
+italcorr .75cap_height#*slant-.5u#;
+adjust_fit(0,0);
+pickup tiny.nib; pos1(vair,90); pos2(cap_curve,180);
+pos3(vair,180); pos4(cap_curve,0); pos5(vair,0);
+x1=.5w; top y1r=h+o; lft x2r=hround u; y2=y4=2/3h; x4=w-x2;
+rt x3l=hround(1/3(w+.5u)+.5hair); bot y3=bot y5=0; x5=w-x3;
+filldraw stroke z3e{up}...{up}z2e
+ & pulled_super_arc.e(2,1)(.5superpull)
+ & pulled_super_arc.e(1,4)(.5superpull)
+ & z4e{down}...{down}z5e; % bowl
+numeric arm_thickness; path p; p=z3{up}...{up}z2;
+arm_thickness=Vround(if hefty:slab+2stem_corr else:.75[slab,cap_vstem] fi);
+pickup crisp.nib; pos6(arm_thickness,-90); pos7(fudged.hair,-180);
+bot y6r=0; x6=x3; lft x7r=hround .8u; y7=good.y(y6l+.5beak)+eps;
+(x,y)=p intersectionpoint((0,y6l)--(w,y6l)); x6l:=x;
+arm(6,7,a,.5beak_darkness,-1.2beak_jut); % left arm and beak
+pos8(arm_thickness,-90); pos9(fudged.hair,0);
+y8=y6; y9=y7; x8+x6=x9+x7=w; x8l:=w-x6l;
+arm(8,9,b,.5beak_darkness,1.2beak_jut); % right arm and beak
+math_fit(0,.5ic#); penlabels(1,2,3,4,5,6,7,8,9); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/yannisgr/scsc.mf b/Master/texmf-dist/fonts/source/public/yannisgr/scsc.mf
new file mode 100644
index 00000000000..773c00ca25e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yannisgr/scsc.mf
@@ -0,0 +1,46 @@
+cmchar "Small capital sigma";
+beginchar("c",13u#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.5u#;
+adjust_fit(0,0);
+numeric bot_arm_thickness;
+bot_arm_thickness=Vround .25[slab,cap_vstem];
+pickup tiny.nib; lft x1l=hround u; x1l=x2l=x4l;
+top y1=h; bot y2=h-slab; bot y4=0; x3l-x1l=4/11(w-2u); y3=.5h;
+numeric alpha[]; alpha1=((x3l-x1l)++(y2-y3))/(y2-y3);
+penpos1(alpha1*(cap_stem-tiny),0); penpos2(alpha1*(cap_stem-tiny),0);
+penpos3(alpha1*(cap_stem-tiny),0);
+alpha2=diag_ratio(1,cap_hair-tiny,y3-y4,x3r-x4l);
+penpos4(alpha2*(cap_hair-tiny),0);
+z0=whatever[z2l,z3l]=z4l+whatever*(z3r-z4r);
+filldraw z1l--z2l--z0--z4l--z4r--z3r--z2r--z1r--cycle; % diagonals
+pickup crisp.nib; pos5(slab,90); pos6(hair,0);
+top y5r=h; x5=x1; rt x6r=hround(w-u); y6=good.y(y5l-beak)-eps;
+arm(5,6,a,beak_darkness,beak_jut); % upper arm and beak
+pos7(bot_arm_thickness,-90); pos8(hair,0);
+bot y7r=0; z7l=whatever[z4,z3]; x7r:=x4; x8=x6; y8=good.y(y7l+beak)+eps;
+arm(7,8,b,beak_darkness,beak_jut); % lower arm and beak
+math_fit(0,.5ic#); penlabels(0,1,2,3,4,5,6,7,8); endchar;
+
+cmchar "The letter small capital digamma";
+beginchar(oct"140",11.5u#-width_adj#,cap_height#,0);
+italcorr cap_height#*slant-beak_jut#-.25u#;
+adjust_fit(cap_serif_fit#,0);
+h:=vround(h-stem_corr);
+pickup tiny.nib; pos1(cap_stem,0); pos2(cap_stem,0);
+lft x1l=lft x2l=hround max(2u,3u-.5cap_stem); top y1=h; bot y2=0;
+filldraw stroke z1e--z2e; % stem
+pickup crisp.nib; pos3(slab,90); pos4(hair,0);
+top y3r=h; x3=x1; rt x4r=hround(w-.75u); y4=good.y(y3l-beak)-eps;
+arm(3,4,e,beak_darkness,beak_jut); % upper arm and beak
+pos5(cap_bar,-90); pos6(hair,0);
+top y5l=vround(.5[y2,y1]+.5cap_bar); x5=x1;
+pos0(cap_bar,90); pos7(hair,0);
+z0=z5; x6=x7; y6-y5l=y0l-y7;
+if serifs: rt x6r=hround(w-4u+.5hair); y6=good.y(y5l+.6beak)+eps;
+ rt x9r=hround(w-.5u);
+else: rt x6r=hround(w-1.5u); y6=y5l+eps; rt x9r=hround(w-.75u); fi
+arm(5,6,f,beak_darkness,0); arm(0,7,g,beak_darkness,0); % middle arm and serif
+if serifs: nodish_serif(1,2,a,1/3,cap_jut,b,1/3,.5cap_jut); % upper serif
+ dish_serif(2,1,c,1/3,cap_jut,d,1/3,1.25cap_jut); fi % lower serif
+math_fit(0,ic#-2.5u#); penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
diff --git a/Master/texmf-dist/fonts/source/public/yhmath/yhbigacc.mf b/Master/texmf-dist/fonts/source/public/yhmath/yhbigacc.mf
new file mode 100644
index 00000000000..2fca340c802
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yhmath/yhbigacc.mf
@@ -0,0 +1,259 @@
+%%
+%% This is file `yhbigacc.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% yhmath.dtx (with options: `mffiled')
+%%
+charlist oct"142": oct"322": oct"143": oct"323": oct"144":
+oct"324": oct"325": oct"326": oct"327": oct"330": oct"331":
+oct"332": oct"333"; % circumflexes
+charlist oct"145": oct"334": oct"146": oct"335": oct"147":
+oct"336": oct"337": oct"340": oct"341": oct"342": oct"343":
+oct"344": oct"345"; % tildes
+charlist oct"346": oct"347": oct"350": oct"351": oct"352":
+oct"353": oct"354": oct"355": oct"356": oct"357": oct"360":
+oct"361": oct"362"; % triangles
+charlist oct"363": oct"364": oct"365": oct"366": oct"367":
+oct"370": oct"371": oct"372": oct"373": oct"374": oct"375":
+oct"376": oct"377"; % hor parentheses
+
+numeric mikro; mikro=1.2(asc_height#-x_height#);
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"142",10u#,.5[asc_height#,body_height#],0);
+big_hat; endchar;
+
+cmchar "Wider circumflex (hat) accent";
+beginchar(oct"143",18u#,body_height#,0);
+big_hat; endchar;
+
+cmchar "Widest circumflex (hat) accent";
+beginchar(oct"144",26u#,body_height#+.1(mikro),0);
+big_hat; endchar;
+
+cmchar "Wide tilde (squiggle) accent";
+beginchar(oct"145",10u#,.5[asc_height#,body_height#],0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"146",18u#,body_height#,0);
+big_tilde; endchar;
+
+cmchar "Widest tilde (squiggle) accent";
+beginchar(oct"147",26u#,body_height#+.1(mikro),0);
+big_tilde; endchar;
+
+%%%%%%% NEW STUFF (YH 1996-01-04)
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"322",14u#,body_height#,0);
+big_hat; endchar;
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"323",22u#,body_height#+.05(mikro),0);
+big_hat; endchar;
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"324",30u#,body_height#+.15(mikro),0);
+big_hat; endchar;
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"325",38u#,body_height#+.2(mikro),0);
+big_hat; endchar;
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"326",46u#,body_height#+.25(mikro),0);
+big_hat; endchar;
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"327",54u#,body_height#+.3(mikro),0);
+big_hat; endchar;
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"330",62u#,body_height#+.35(mikro),0);
+big_hat; endchar;
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"331",70u#,body_height#+.4(mikro),0);
+big_hat; endchar;
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"332",78u#,body_height#+.45(mikro),0);
+big_hat; endchar;
+
+cmchar "Wide circumflex (hat) accent";
+beginchar(oct"333",86u#,body_height#+.5(mikro),0);
+big_hat; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"334",14u#,body_height#,0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"335",22u#,body_height#+.05(mikro),0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"336",30u#,body_height#+.15(mikro),0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"337",38u#,body_height#+.2(mikro),0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"340",46u#,body_height#+.25(mikro),0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"341",54u#,body_height#+.3(mikro),0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"342",62u#,body_height#+.35(mikro),0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"343",70u#,body_height#+.4(mikro),0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"344",78u#,body_height#+.45(mikro),0);
+big_tilde; endchar;
+
+cmchar "Wider tilde (squiggle) accent";
+beginchar(oct"345",86u#,body_height#+.5(mikro),0);
+big_tilde; endchar;
+
+def big_triangle_accent =
+adjust_fit(0,0);
+pickup pencircle scaled .2[vair,stem];
+top y2 = h+o; x2 = .5w; x1=w-x3=good.x-eps;
+y1=y3=.5[x_height,y2]; draw z1--z2--z3--z1;
+penlabels(1,2,3); enddef;
+
+cmchar "Wide triangle accent";
+beginchar(oct"346",10u#,body_height#,0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"347",14u#,body_height#,0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"350",18u#,body_height#,0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"351",22u#,body_height#+.05(mikro),0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"352",26u#,body_height#+.1(mikro),0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"353",30u#,body_height#+.15(mikro),0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"354",38u#,body_height#+.2(mikro),0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"355",46u#,body_height#+.25(mikro),0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"356",54u#,body_height#+.3(mikro),0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"357",62u#,body_height#+.35(mikro),0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"360",70u#,body_height#+.4(mikro),0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"361",78u#,body_height#+.45(mikro),0);
+big_triangle_accent; endchar;
+
+cmchar "Wide triangle accent";
+beginchar(oct"362",86u#,body_height#+.5(mikro),0);
+big_triangle_accent; endchar;
+
+def big_hor_paren_accent(expr max_breadth) =
+ adjust_fit(0,0); pickup crisp.nib;
+ numeric theta;
+ theta=angle((.5w,h+.5(asc_height-x_height))-(0,.5[x_height,asc_height]));
+ numeric mid_width; mid_width=.4[vair,stem];
+ pos1(vair,theta-90); pos2(vair,theta-90);
+ pos3(vair,-theta-90); pos4(vair,-theta-90);
+ z2-z1=(mid_width-crisp)*dir theta;
+ z4-z3=(mid_width-crisp)*dir(-theta);
+ pos5(vround max_breadth,-90);
+ lft x1r=w-rt x4l=0; top y5l=h; y1=y4; x5=.5w;
+ y1=vround(.5[x_height,asc_height]);
+ filldraw stroke z1e---z2e...z5e{right}...z3e---z4e; % stroke
+ penlabels(1,2,3,4,5); enddef;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"363",10u#,body_height#,0);
+big_hor_paren_accent(.5[stem,bold]); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"364",14u#,body_height#,0);
+big_hor_paren_accent(.75[stem,bold]); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"365",18u#,body_height#,0);
+big_hor_paren_accent(bold); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"366",22u#,body_height#+.05(mikro),0);
+big_hor_paren_accent(bold+.25dw); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"367",26u#,body_height#+.1(mikro),0);
+big_hor_paren_accent(bold+.5dw); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"370",30u#,body_height#+.15(mikro),0);
+big_hor_paren_accent(bold+.75dw); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"371",38u#,body_height#+.2(mikro),0);
+big_hor_paren_accent(bold+dw); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"372",46u#,body_height#+.25(mikro),0);
+big_hor_paren_accent(bold+1.25dw); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"373",54u#,body_height#+.3(mikro),0);
+big_hor_paren_accent(bold+1.5dw); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"374",62u#,body_height#+.35(mikro),0);
+big_hor_paren_accent(bold+1.75dw); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"375",70u#,body_height#+.4(mikro),0);
+big_hor_paren_accent(bold+1.75dw); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"376",78u#,body_height#+.45(mikro),0);
+big_hor_paren_accent(bold+1.75dw); endchar;
+
+cmchar "Wide horizontal parenthesis accent";
+beginchar(oct"377",86u#,body_height#+.5(mikro),0);
+big_hor_paren_accent(bold+1.75dw); endchar;
+
+endinput;
+\endinput
+%%
+%% End of file `yhbigacc.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/yhmath/yhbigdel.mf b/Master/texmf-dist/fonts/source/public/yhmath/yhbigdel.mf
new file mode 100644
index 00000000000..0783adf0fdd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yhmath/yhbigdel.mf
@@ -0,0 +1,1046 @@
+%%
+%% This is file `yhbigdel.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% yhmath.dtx (with options: `mffilec')
+%%
+
+
+
+charlist oct"000": oct"200": oct"020": oct"201":
+oct"022": oct"202": oct"040": oct"203":
+oct"204": oct"205": oct"206": oct"207": oct"210": oct"211":
+oct"060"; % left parentheses
+charlist oct"001": oct"212": oct"021": oct"213":
+oct"023": oct"214": oct"041": oct"215":
+oct"216": oct"217": oct"220": oct"221": oct"222": oct"223":
+oct"061"; % right parentheses
+charlist oct"002": oct"224": oct"150": oct"225": oct"024": oct"226": oct"042": oct"062"; % left brackets
+charlist oct"003": oct"227": oct"151": oct"230": oct"025": oct"231": oct"043": oct"063"; % right brackets
+charlist oct"004": oct"232": oct"152": oct"233": oct"026": oct"234": oct"044": oct"064"; % left floors
+charlist oct"005": oct"235": oct"153": oct"236": oct"027": oct"237": oct"045": oct"065"; % right floors
+charlist oct"006": oct"240": oct"154": oct"241": oct"030": oct"242": oct"046": oct"066"; % left ceilings
+charlist oct"007": oct"243": oct"155": oct"244": oct"031": oct"245": oct"047": oct"067"; % right ceilings
+charlist oct"010": oct"246": oct"156": oct"247": oct"032": oct"250": oct"050": oct"070"; % left braces
+charlist oct"011": oct"251": oct"157": oct"252": oct"033": oct"253": oct"051": oct"071"; % right braces
+charlist oct"012": oct"254": oct"104": oct"255":
+oct"034": oct"256": oct"052": oct"257":
+oct"260": oct"261": oct"262": oct"263": oct"264": oct"265"; % left angle brackets
+charlist oct"013": oct"266": oct"105": oct"267":
+oct"035": oct"270": oct"053": oct"271":
+oct"272": oct"273": oct"274": oct"275": oct"276": oct"277"; % right angle brackets
+charlist oct"016": oct"300": oct"056": oct"301":
+oct"036": oct"302": oct"054": oct"303"; % slashes
+charlist oct"017": oct"304": oct"057": oct"305":
+oct"037": oct"306": oct"055": oct"307"; % backslashes
+charlist oct"160": oct"310": oct"161": oct"311":
+oct"162": oct"312": oct"163": oct"313":
+oct"314": oct"315": oct"316": oct"317": oct"320": oct"321":
+oct"164"; % radical signs
+
+extensible oct"014": 0,0,0,oct"014"; % vertical line
+extensible oct"015": 0,0,0,oct"015"; % double vertical line
+extensible oct"060": oct"060",0,oct"100",oct"102"; % left parenthesis
+extensible oct"061": oct"061",0,oct"101",oct"103"; % right parenthesis
+extensible oct"062": oct"062",0,oct"064",oct"066"; % left bracket
+extensible oct"063": oct"063",0,oct"065",oct"067"; % right bracket
+extensible oct"064": 0,0,oct"064",oct"066"; % left floor bracket
+extensible oct"065": 0,0,oct"065",oct"067"; % right floor bracket
+extensible oct"066": oct"062",0,0,oct"066"; % left ceiling bracket
+extensible oct"067": oct"063",0,0,oct"067"; % right ceiling bracket
+extensible oct"070": oct"070",oct"074",oct"072",oct"076"; % left brace
+extensible oct"071": oct"071",oct"075",oct"073",oct"076"; % right brace
+extensible oct"072": oct"070",0,oct"072",oct"076"; % sharp left parenthesis
+extensible oct"073": oct"071",0,oct"073",oct"076"; % sharp right parenthesis
+extensible oct"074": 0,0,0,oct"077"; % arrow extension modules only
+extensible oct"075": 0,0,0,oct"167"; % double arrow extension modules only
+extensible oct"076": 0,0,0,oct"076"; % brace extension modules only
+extensible oct"077": oct"170",0,oct"171",oct"077"; % updownarrow
+extensible oct"100": oct"070",0,oct"073",oct"076"; % left moustache
+extensible oct"101": oct"071",0,oct"072",oct"076"; % right moustache
+extensible oct"102": 0,0,0,oct"102"; % left parenthesis extension modules only
+extensible oct"103": 0,0,0,oct"103"; % right parenthesis extension modules only
+extensible oct"164": oct"166",0,oct"164",oct"165"; % radical sign
+extensible oct"167": oct"176",0,oct"177",oct"167"; % double updownarrow
+extensible oct"170": oct"170",0,0,oct"077"; % uparrow
+extensible oct"171": 0,0,oct"171",oct"077"; % downarrow
+extensible oct"176": oct"176",0,0,oct"167"; % double uparrow
+extensible oct"177": 0,0,oct"177",oct"167"; % double downarrow
+
+cmchar "\big left parenthesis";
+beginchar(oct"000",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(1.5u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\Big left parenthesis";
+beginchar(oct"020",9u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(2u#,-.25u#); left_paren(rule_thickness,.5[stem,bold]); endchar;
+
+cmchar "\bigg left parenthesis";
+beginchar(oct"022",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(2.5u#,-.25u#); left_paren(rule_thickness+.2dw,bold); endchar;
+
+cmchar "\Bigg left parenthesis";
+beginchar(oct"040",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,-.25u#); left_paren(rule_thickness+.4dw,bold+dw); endchar;
+
+cmchar "Extensible left parenthesis---top";
+beginchar(oct"060",12u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,-.25u#); pickup fine.nib;
+numeric min_breadth,max_breadth;
+min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
+pos1(hround min_breadth,0); pos2(hround max_breadth,0);
+rt x1r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u;
+top y1=h-1; y2=-d-eps;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...{down}z2e; % upper arc
+penlabels(1,2); endchar;
+
+cmchar "Extensible left parenthesis---bottom";
+beginchar(oct"100",12u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,-.25u#); pickup fine.nib;
+numeric min_breadth,max_breadth;
+min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
+pos3(hround min_breadth,0); pos2(hround max_breadth,0);
+rt x3r=hround(w-1.25u+.5min_breadth); lft x2l=hround 1.25u;
+bot y3=1-d; y2=h+eps;
+filldraw stroke z3e{3(x2e-x3e),y2-y3}...{up}z2e; % lower arc
+penlabels(2,3); endchar;
+
+cmchar "Extensible left parenthesis---extension module";
+beginchar(oct"102",12u#,0,dh#);
+adjust_fit(4u#,-.25u#); pickup fine.nib;
+numeric max_breadth; max_breadth=bold+2dw;
+pos2(hround max_breadth,0); pos2'(hround max_breadth,0);
+lft x2l=lft x2'l=hround 1.25u; y2=h+eps; y2'=-d-eps;
+filldraw stroke z2e--z2'e; % link
+penlabels(2,2'); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"001",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(-.25u#,1.5u#); right_paren(hair,stem); endchar;
+
+cmchar "\Big right parenthesis";
+beginchar(oct"021",9u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(-.25u#,2u#); right_paren(rule_thickness,.5[stem,bold]); endchar;
+
+cmchar "\bigg right parenthesis";
+beginchar(oct"023",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(-.25u#,2.5u#); right_paren(rule_thickness+.2dw,bold); endchar;
+
+cmchar "\Bigg right parenthesis";
+beginchar(oct"041",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(-.25u#,3u#); right_paren(rule_thickness+.4dw,bold+dw); endchar;
+
+cmchar "Extensible right parenthesis---top";
+beginchar(oct"061",12u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(-.25u#,4u#); pickup fine.nib;
+numeric min_breadth,max_breadth;
+min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
+pos1(hround min_breadth,0); pos2(hround max_breadth,0);
+lft x1l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u);
+top y1=h-1; y2=-d-eps;
+filldraw stroke z1e{3(x2e-x1e),y2-y1}...{down}z2e; % upper arc
+penlabels(1,2); endchar;
+
+cmchar "Extensible right parenthesis---bottom";
+beginchar(oct"101",12u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(-.25u#,4u#); pickup fine.nib;
+numeric min_breadth,max_breadth;
+min_breadth=rule_thickness+.6dw; max_breadth=bold+2dw;
+pos3(hround min_breadth,0); pos2(hround max_breadth,0);
+lft x3l=hround(1.25u-.5min_breadth); rt x2r=hround(w-1.25u);
+bot y3=1-d; y2=h+eps;
+filldraw stroke z3e{3(x2e-x3e),y2-y3}...{up}z2e; % lower arc
+penlabels(2,3); endchar;
+
+cmchar "Extensible right parenthesis---extension module";
+beginchar(oct"103",12u#,0,dh#);
+adjust_fit(-.25u#,4u#); pickup fine.nib;
+numeric max_breadth; max_breadth=bold+2dw;
+pos2(hround max_breadth,0); pos2'(hround max_breadth,0);
+rt x2r=rt x2'r=hround(w-1.25u); y2=h+eps; y2'=-d-eps;
+filldraw stroke z2e--z2'e; % link
+penlabels(2,2'); endchar;
+
+cmchar "\big left bracket";
+beginchar(oct"002",6u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(1.5u#,0); left_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\Big left bracket";
+beginchar(oct"150",6.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],true,true); endchar;
+
+cmchar "\bigg left bracket";
+beginchar(oct"024",7u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],true,true); endchar;
+
+cmchar "\Bigg left bracket";
+beginchar(oct"042",7.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],true,true); endchar;
+
+cmchar "Extensible left bracket---top";
+beginchar(oct"062",8u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,0); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+top y1=h-1; y2=-d-eps; lft x1l=lft x2l=hround(2.5u-.5stem);
+filldraw stroke z1e--z2e; % stem
+pos3(stem,90); pos4(stem,90);
+x3=x1l; rt x4=hround(w-.75u+.5stem); y3r=y4r=y1;
+filldraw stroke z3e--z4e; % upper bar
+penlabels(1,2,3,4); endchar;
+
+cmchar "Extensible left bracket---bottom";
+beginchar(oct"064",8u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(4u#,0); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+eps; bot y2=1-d; lft x1l=lft x2l=hround(2.5u-.5stem);
+filldraw stroke z1e--z2e; % stem
+pos5(stem,90); pos6(stem,90);
+x5=x1l; rt x6=hround(w-.75u+.5stem); y5l=y6l=y2;
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,5,6); endchar;
+
+cmchar "Extensible left bracket---extension module";
+beginchar(oct"066",8u#,0,dh#);
+adjust_fit(4u#,0); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+1+eps; bot y2=-d-1-eps; lft x1l=lft x2l=hround(2.5u-.5stem);
+filldraw stroke z1e--z2e; % stem
+penlabels(1,2); endchar;
+
+cmchar "\big right bracket";
+beginchar(oct"003",6u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(0,1.5u#); right_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\Big right bracket";
+beginchar(oct"151",6.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,2u#); right_bracket(.25[rule_thickness,stem],true,true); endchar;
+
+cmchar "\bigg right bracket";
+beginchar(oct"025",7u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(0,2.5u#); right_bracket(.5[rule_thickness,stem],true,true); endchar;
+
+cmchar "\Bigg right bracket";
+beginchar(oct"043",7.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(0,3u#); right_bracket(.75[rule_thickness,stem],true,true); endchar;
+
+cmchar "Extensible right bracket---top";
+beginchar(oct"063",8u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,4u#); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+top y1=h-1; y2=-d-eps; rt x1r=rt x2r=hround(w-2.5u+.5stem);
+filldraw stroke z1e--z2e; % stem
+pos3(stem,90); pos4(stem,90);
+x3=x1r; lft x4=hround(.75u-.5stem); y3r=y4r=y1;
+filldraw stroke z3e--z4e; % upper bar
+penlabels(1,2,3,4); endchar;
+
+cmchar "Extensible right bracket---bottom";
+beginchar(oct"065",8u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,4u#); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+eps; bot y2=1-d; rt x1r=rt x2r=hround(w-2.5u+.5stem);
+filldraw stroke z1e--z2e; % stem
+pos5(stem,90); pos6(stem,90);
+x5=x1r; lft x6=hround(.75u-.5stem); y5l=y6l=y2;
+filldraw stroke z5e--z6e; % lower bar
+penlabels(1,2,5,6); endchar;
+
+cmchar "Extensible right bracket---extension module";
+beginchar(oct"067",8u#,0,dh#);
+adjust_fit(0,4u#); pickup crisp.nib;
+pos1(stem,0); pos2(stem,0);
+y1=h+1+eps; bot y2=-d-1-eps; rt x1r=rt x2r=hround(w-2.5u+.5stem);
+filldraw stroke z1e--z2e; % stem
+penlabels(1,2); endchar;
+
+cmchar "\big left floor bracket";
+beginchar(oct"004",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(1.5u#,0); left_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\Big left floor bracket";
+beginchar(oct"152",7.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],false,true); endchar;
+
+cmchar "\bigg left floor bracket";
+beginchar(oct"026",8u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],false,true); endchar;
+
+cmchar "\Bigg left floor bracket";
+beginchar(oct"044",8.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],false,true); endchar;
+
+cmchar "\big right floor bracket";
+beginchar(oct"005",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(0,1.5u#); right_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\Big right floor bracket";
+beginchar(oct"153",7.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,2u#); right_bracket(.25[rule_thickness,stem],false,true); endchar;
+
+cmchar "\bigg right floor bracket";
+beginchar(oct"027",8u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(0,2.5u#); right_bracket(.5[rule_thickness,stem],false,true); endchar;
+
+cmchar "\Bigg right floor bracket";
+beginchar(oct"045",8.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(0,3u#); right_bracket(.75[rule_thickness,stem],false,true); endchar;
+
+cmchar "\big left ceiling bracket";
+beginchar(oct"006",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(1.5u#,0); left_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\Big left ceiling bracket";
+beginchar(oct"154",7.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(2u#,0); left_bracket(.25[rule_thickness,stem],true,false); endchar;
+
+cmchar "\bigg left ceiling bracket";
+beginchar(oct"030",8u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(2.5u#,0); left_bracket(.5[rule_thickness,stem],true,false); endchar;
+
+cmchar "\Bigg left ceiling bracket";
+beginchar(oct"046",8.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,0); left_bracket(.75[rule_thickness,stem],true,false); endchar;
+
+cmchar "\big right ceiling bracket";
+beginchar(oct"007",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(0,1.5u#); right_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\Big right ceiling bracket";
+beginchar(oct"155",7.5u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(0,2u#); right_bracket(.25[rule_thickness,stem],true,false); endchar;
+
+cmchar "\bigg right ceiling bracket";
+beginchar(oct"031",8u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(0,2.5u#); right_bracket(.5[rule_thickness,stem],true,false); endchar;
+
+cmchar "\Bigg right ceiling bracket";
+beginchar(oct"047",8.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(0,3u#); right_bracket(.75[rule_thickness,stem],true,false); endchar;
+
+cmchar "\big left curly brace";
+beginchar(oct"010",9u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); left_curly(hair,stem); endchar;
+
+cmchar "\Big left curly brace";
+beginchar(oct"156",10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); left_curly(rule_thickness,.5[stem,bold]); endchar;
+
+cmchar "\bigg left curly brace";
+beginchar(oct"032",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); left_curly(rule_thickness+.2dw,bold); endchar;
+
+cmchar "\Bigg left curly brace";
+beginchar(oct"050",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); left_curly(rule_thickness+.4dw,bold+dw); endchar;
+
+cmchar "Extensible left curly brace---top";
+beginchar(oct"070",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos1(min_breadth,0); pos1'(min_breadth,0);
+pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0);
+rt x1r=rt x1'r=hround(w-1.5u+.5min_breadth);
+lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness);
+top y1=h-1; y3=-d-eps; y2=.5[y1,y3]; y1-y1'=min_breadth-fine;
+filldraw z1l{3(x2l-x1l),y2-y1}...z2l---z3l
+ --z3r---z2r...{3(x1r-x2r),y1'-y2}z1'r--z1r--cycle; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Extensible left curly brace---bottom";
+beginchar(oct"072",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos7(min_breadth,0); pos7'(min_breadth,0);
+pos5(heavy_rule_thickness,0); pos6(heavy_rule_thickness,0);
+rt x7r=rt x7'r=hround(w-1.5u+.5min_breadth);
+lft x5l=lft x6l=hround(.5w-.5heavy_rule_thickness);
+y5=h+eps; bot y7=1-d; y6=.5[y5,y7]; y7'-y7=min_breadth-fine;
+filldraw z5l---z6l...{3(x7l-x6l),y7-y6}z7l
+ --z7r--z7'r{3(x6r-x7r),y6-y7'}...z6r---z5r--cycle; % stroke
+penlabels(5,6,7); endchar;
+
+cmchar "Extensible left curly brace---middle";
+beginchar(oct"074",12u#,0,3dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos4(min_breadth,0); pos4'(min_breadth,0);
+forsuffixes $=2,3,5,6: pos$(heavy_rule_thickness,0); endfor
+lft x4l=lft x4'l=hround(1.5u-.5min_breadth);
+x2=x3=x5=x6; lft x2l=hround(.5w-.5heavy_rule_thickness);
+y2=h+eps; y6=-d-eps; .5[y4,y4']=.5[y2,y6]=.5[y3,y5];
+y3-y4=(y2-y6)/4; y4-y4'=min_breadth-fine;
+filldraw z2l---z3l...{3(x4l-x3l),y4-y3}z4l
+ --z4'l{3(x5l-x4l),y5-y4'}...z5l---z6l--z6r---z5r
+ ...{3(x4r-x5r),.5[y4,y4']-y5}.5[z4r,z4'r]{3(x3r-x4r),y3-.5[y4,y4']}
+ ...z3r---z2r--cycle; % stroke
+penlabels(2,3,4,5,6); endchar;
+
+cmchar "Extensible curly brace---extension module";
+beginchar(oct"076",12u#,0,.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0);
+lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness); y2=h+eps; y3=-d-eps;
+filldraw stroke z2e--z3e; % stem
+penlabels(2,3); endchar;
+
+cmchar "\big right curly brace";
+beginchar(oct"011",9u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); right_curly(hair,stem); endchar;
+
+cmchar "\Big right curly brace";
+beginchar(oct"157",10u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); right_curly(rule_thickness,.5[stem,bold]); endchar;
+
+cmchar "\bigg right curly brace";
+beginchar(oct"033",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); right_curly(rule_thickness+.2dw,bold); endchar;
+
+cmchar "\Bigg right curly brace";
+beginchar(oct"051",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); right_curly(rule_thickness+.4dw,bold+dw); endchar;
+
+cmchar "Extensible right curly brace---top";
+beginchar(oct"071",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos1(min_breadth,0); pos1'(min_breadth,0);
+pos2(heavy_rule_thickness,0); pos3(heavy_rule_thickness,0);
+lft x1l=lft x1'l=hround(1.5u-.5min_breadth);
+lft x2l=lft x3l=hround(.5w-.5heavy_rule_thickness);
+top y1=h-1; y3=-d-eps; y2=.5[y1,y3]; y1-y1'=min_breadth-fine;
+filldraw z1r{3(x2r-x1r),y2-y1}...z2r---z3r
+ --z3l---z2l...{3(x1l-x2l),y1'-y2}z1'l--z1l--cycle; % stroke
+penlabels(1,2,3); endchar;
+
+cmchar "Extensible right curly brace---bottom";
+beginchar(oct"073",12u#,0,1.5dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos7(min_breadth,0); pos7'(min_breadth,0);
+pos5(heavy_rule_thickness,0); pos6(heavy_rule_thickness,0);
+lft x7l=lft x7'l=hround(1.5u-.5min_breadth);
+lft x5l=lft x6l=hround(.5w-.5heavy_rule_thickness);
+y5=h+eps; bot y7=1-d; y6=.5[y5,y7]; y7'-y7=min_breadth-fine;
+filldraw z5r---z6r...{3(x7r-x6r),y7-y6}z7r
+ --z7l--z7'l{3(x6l-x7l),y6-y7'}...z6l---z5l--cycle; % stroke
+penlabels(5,6,7); endchar;
+
+cmchar "Extensible right curly brace---middle";
+beginchar(oct"075",12u#,0,3dh#);
+adjust_fit(2u#,2u#); pickup fine.nib;
+numeric min_breadth; min_breadth=hround(rule_thickness+.6dw);
+pos4(min_breadth,0); pos4'(min_breadth,0);
+forsuffixes $=2,3,5,6: pos$(heavy_rule_thickness,0); endfor
+rt x4r=rt x4'r=hround(w-1.5u+.5min_breadth);
+x2=x3=x5=x6; lft x2l=hround(.5w-.5heavy_rule_thickness);
+y2=h+eps; y6=-d-eps; .5[y4,y4']=.5[y2,y6]=.5[y3,y5];
+y3-y4=(y2-y6)/4; y4-y4'=min_breadth-fine;
+filldraw z2r---z3r...{3(x4r-x3r),y4-y3}z4r
+ --z4'r{3(x5r-x4r),y5-y4'}...z5r---z6r--z6l---z5l
+ ...{3(x4l-x5l),.5[y4,y4']-y5}.5[z4l,z4'l]{3(x3l-x4l),y3-.5[y4,y4']}
+ ...z3l---z2l--cycle; % stroke
+penlabels(2,3,4,5,6); endchar;
+
+cmchar "Horizontal curly brace tip---down and left";
+beginchar(oct"172",.75dh#,3rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth);
+.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine;
+filldraw z1r{x2-x1,3(y2r-y1r)}...{right}z2r
+ --z2l{left}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Horizontal curly brace tip---down and right";
+beginchar(oct"173",.75dh#,3rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; bot y1l=bot y1'l=vround(y2-4.5u-.5min_breadth);
+.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine;
+filldraw z1r{x2-x1,3(y2r-y1r)}...{left}z2r
+ --z2l{right}...{x1'-x2,3(y1-y2)}z1'l--z1l--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Horizontal curly brace tip---up and left";
+beginchar(oct"174",.75dh#,3rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth);
+.5[x1,x1']=-eps; x2=w+shrink_fit+eps; x1'-x1=min_breadth-fine;
+filldraw z1l{x2-x1,3(y2l-y1l)}...{right}z2l
+ --z2r{left}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "Horizontal curly brace tip---up and right";
+beginchar(oct"175",.75dh#,3rule_thickness#,0);
+adjust_fit(0,0); pickup fine.nib;
+numeric min_breadth; min_breadth=vround(rule_thickness+.6dw);
+pos1(min_breadth,90); pos1'(min_breadth,90);
+pos2(heavy_rule_thickness,90);
+bot y2l=0; top y1r=top y1'r=vround(y2+4.5u+.5min_breadth);
+.5[x1,x1']=w+shrink_fit+eps; x2=-eps; x1-x1'=min_breadth-fine;
+filldraw z1l{x2-x1,3(y2l-y1l)}...{left}z2l
+ --z2r{right}...{x1'-x2,3(y1-y2)}z1'r--z1r--cycle; % stroke
+penlabels(1,2); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"012",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\Big left angle bracket";
+beginchar(oct"104",9u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); left_angle(.25[rule_thickness,stem]); endchar;
+
+cmchar "\bigg left angle bracket";
+beginchar(oct"034",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); left_angle(.5[rule_thickness,stem]); endchar;
+
+cmchar "\Bigg left angle bracket";
+beginchar(oct"052",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); left_angle(.75[rule_thickness,stem]); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"013",7u#,rule_thickness#,2dh#-rule_thickness#);
+adjust_fit(.75u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\Big right angle bracket";
+beginchar(oct"105",9u#,rule_thickness#,3dh#-rule_thickness#);
+adjust_fit(u#,u#); right_angle(.25[rule_thickness,stem]); endchar;
+
+cmchar "\bigg right angle bracket";
+beginchar(oct"035",11u#,rule_thickness#,4dh#-rule_thickness#);
+adjust_fit(1.25u#,1.25u#); right_angle(.5[rule_thickness,stem]); endchar;
+
+cmchar "\Bigg right angle bracket";
+beginchar(oct"053",11.5u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,1.5u#); right_angle(.75[rule_thickness,stem]); endchar;
+
+cmchar "\big slash";
+beginchar(oct"016",10.4u#,rule_thickness#,2dh#-rule_thickness#);
+big_slash(rule_thickness+.2dw); endchar;
+
+cmchar "\Big slash";
+beginchar(oct"056",14.6u#,rule_thickness#,3dh#-rule_thickness#);
+big_slash(rule_thickness+.6dw); endchar;
+
+cmchar "\bigg slash";
+beginchar(oct"036",18.8u#,rule_thickness#,4dh#-rule_thickness#);
+big_slash(rule_thickness+dw); endchar;
+
+cmchar "\Bigg slash";
+beginchar(oct"054",23u#,rule_thickness#,5dh#-rule_thickness#);
+big_slash(rule_thickness+1.5dw); endchar;
+
+cmchar "\big backslash";
+beginchar(oct"017",10.4u#,rule_thickness#,2dh#-rule_thickness#);
+big_blash(rule_thickness+.2dw); endchar;
+
+cmchar "\Big backslash";
+beginchar(oct"057",14.6u#,rule_thickness#,3dh#-rule_thickness#);
+big_blash(rule_thickness+.6dw); endchar;
+
+cmchar "\bigg backslash";
+beginchar(oct"037",18.8u#,rule_thickness#,4dh#-rule_thickness#);
+big_blash(rule_thickness+dw); endchar;
+
+cmchar "\Bigg backslash";
+beginchar(oct"055",23u#,rule_thickness#,5dh#-rule_thickness#);
+big_blash(rule_thickness+1.5dw); endchar;
+
+cmchar "Extensible vertical line---extension module";
+beginchar(oct"014",6u#,0,dh#);
+adjust_fit(0,0); pickup pencircle scaled(rule_thickness+.2dw);
+x1=x2=good.x .5w; y1=eps; y2=-d-eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+cmchar "Extensible double vertical line---extension module";
+beginchar(oct"015",10u#,0,dh#);
+adjust_fit(0,0); pickup pencircle scaled(rule_thickness+.2dw);
+x1=x2=good.x .3w; x3=x4=w-x1; y1=y3=eps; y2=y4=-d-eps;
+draw z1--z2; draw z3--z4; % stems
+labels(1,2,3,4); endchar;
+
+cmchar "Extensible vertical arrow--top";
+beginchar(oct"170",12u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness,barr;
+thickness=hround(rule_thickness+.2dw); barr=Vround .6[bar,thickness];
+pos1(thickness,0); pos2(thickness,0); pos3(barr,90); pos4(barr,90);
+lft x1l=hround(.5w-.5thickness); y1=-d-eps;
+x0=x1=x2; top y0=h; x0-x3=x4-x0=4u+eps;
+y3=y4=y0-.29asc_height-eps;
+pos5(barr,angle(z4-z0)); z5l=z0;
+pos6(barr,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --z2r---z1r--z1l---z2l--subpath (t,0) of\\(z3l{z9-z3}..z5r)
+ --z3r{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+cmchar "Extensible vertical arrow--bottom";
+beginchar(oct"171",12u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness,barr;
+thickness=hround(rule_thickness+.2dw); barr=Vround .6[bar,thickness];
+pos1(thickness,0); pos2(thickness,0); pos3(barr,90); pos4(barr,90);
+lft x1l=hround(.5w-.5thickness); y1=h+eps;
+x0=x1=x2; bot y0=-d; x0-x3=x4-x0=4u+eps;
+y3=y4=y0+.29asc_height+eps;
+pos5(barr,angle(z4-z0)); z5l=z0;
+pos6(barr,angle(z3-z0)); z6l=z0;
+z9=.381966[.5[z3,z4],z0];
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x2r,-d)--(x2r,h))); y2=ypart point t of p;
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --z2r---z1r--z1l---z2l--subpath (t,0) of\\(z3r{z9-z3}..z5r)
+ --z3l{z9-z3}..z0 & cycle; % arrowhead and stem
+penlabels(0,1,2,3,4,5,6,9); endchar;
+
+"Extensible vertical arrow--extension module";
+beginchar(oct"077",12u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness; thickness=hround(rule_thickness+.2dw);
+pos1(thickness,0); pos2(thickness,0);
+lft x1l=hround(.5w-.5thickness); x2=x1; y1=h+1+eps; y2=-d-1-eps;
+filldraw stroke z1e--z2e; % stem
+penlabels(1,2); endchar;
+
+cmchar "Extensible double vertical arrow--top";
+beginchar(oct"176",14u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness; thickness=Vround(rule_thickness+.2dw);
+pos1(thickness,0); pos2(thickness,0); pos7(thickness,0); pos8(thickness,0);
+y1=y2=-d-eps; y7=y8=h; top y0=h+eps; x1=x7; x2=x8;
+rt x1r=hround(.5w+2u+.5thickness); .5[x1,x2]=x0=good.x .5w;
+filldraw stroke z1e--z7e; filldraw stroke z2e--z8e; % bars
+pos3(thickness,90); pos4(thickness,90);
+x2-x3=x4-x1=4u+eps; y3=y4=y0-.48asc_height-eps;
+pos5(thickness,angle(z4-z0)); z5l=z0;
+pos6(thickness,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,h)
+ --(x4,h)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4l{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4r--subpath (0,t) of\\(z4l{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3l{z9-z3}..z5r)--z3r{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+cmchar "Extensible double vertical arrow--bottom";
+beginchar(oct"177",14u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness; thickness=Vround(rule_thickness+.2dw);
+pos1(thickness,0); pos2(thickness,0); pos7(thickness,0); pos8(thickness,0);
+y1=y2=h+eps; y7=y8=-d; bot y0=-d-eps; x1=x7; x2=x8;
+rt x1r=hround(.5w+2u+.5thickness); .5[x1,x2]=x0=good.x .5w;
+filldraw stroke z1e--z7e; filldraw stroke z2e--z8e; % bars
+pos3(thickness,90); pos4(thickness,90);
+x2-x3=x4-x1=4u+eps; y3=y4=y0+.48asc_height-eps;
+pos5(thickness,angle(z4-z0)); z5l=z0;
+pos6(thickness,angle(z3-z0)); z6l=z0; z9=.381966[.5[z3,z4],z0];
+erase filldraw z0..{z3-z9}z3--(x3,-d)
+ --(x4,-d)--z4{z9-z4}..z0 & cycle; % erase excess
+numeric t; path p; p=z4r{z9-z4}..z6r;
+t=xpart(p intersectiontimes((x0,-d)--(x0,h)));
+filldraw z0..{z4-z9}z4l--subpath (0,t) of\\(z4r{z9-z4}..z6r)
+ --subpath (t,0) of\\(z3r{z9-z3}..z5r)--z3l{z9-z3}..z0 & cycle; % arrowhead
+penlabels(0,1,2,3,4,5,6,7,8,9); endchar;
+
+"Extensible double vertical arrow--extension module";
+beginchar(oct"167",14u#,0,dh#);
+adjust_fit(0,0); pickup crisp.nib;
+numeric thickness; thickness=Vround(rule_thickness+.2dw);
+pos1(thickness,0); pos2(thickness,0); pos7(thickness,0); pos8(thickness,0);
+y1=y2=h+1+eps; y7=y8=-d-1-eps; x1=x7; x2=x8;
+rt x1r=hround(.5w+2u+.5thickness); .5[x1,x2]=good.x .5w;
+filldraw stroke z1e--z7e; filldraw stroke z2e--z8e; % bars
+penlabels(1,2,7,8); endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"160",18u#,rule_thickness#,2dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\Big radical sign";
+beginchar(oct"161",18u#,rule_thickness#,3dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\bigg radical sign";
+beginchar(oct"162",18u#,rule_thickness#,4dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\Bigg radical sign";
+beginchar(oct"163",18u#,rule_thickness#,5dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "Extensible radical sign---bottom";
+beginchar(oct"164",19u#,0,3dh#);
+adjust_fit(0,-letter_fit#); pickup rule.nib;
+x1=x2=good.x(w-6u); bot y1=1-d; y2=h+eps;
+draw z1--z2; % diagonal
+pickup crisp.nib; pos3(max(curve,rule_thickness),0);
+x3l=good.x 3u; y3=.9[y1,y2];
+pos4(rule_thickness,0); x4=x1; bot y4=-d;
+pos5(vair,-45); x5l=good.x(x3l-u); z5l=whatever[z3r,(x2,body_height)];
+z6=z5r+whatever*((x2,body_height)-z3r)=whatever[z3l,z4l];
+z7=whatever[z1,z2]=z3r+whatever*(z4l-z3l);
+filldraw z5r--z6--z4l--z4--z7--z3r--z5l--cycle; % left diagonal and serif
+penlabels(1,2,3,4,5,6,7); endchar;
+
+cmchar "Extensible radical sign---extension module";
+beginchar(oct"165",19u#,0,dh#);
+adjust_fit(0,-letter_fit#); pickup rule.nib;
+x1=x2=good.x(w-6u); y1=-d-eps; y2=h+eps;
+draw z1--z2; % stem
+labels(1,2); endchar;
+
+cmchar "Extensible radical sign---top";
+beginchar(oct"166",19u#,rule_thickness#,dh#-rule_thickness#);
+adjust_fit(0,-letter_fit#); pickup rule.nib;
+x1=x2=good.x(w-6u); x3=good.x(w+.5); y1=-d-eps; bot y2=bot y3=0;
+draw z1--z2--z3; % stem and link
+labels(1,2,3); endchar;
+
+%%%%%%% NEW STUFF (YH 1996-01-04)
+
+cmchar "\big left parenthesis";
+beginchar(oct"200",8u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(1.75u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big left parenthesis";
+beginchar(oct"201",10u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(2.25u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big left parenthesis";
+beginchar(oct"202",12u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(2.75u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big left parenthesis";
+beginchar(oct"203",13u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(3u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big left parenthesis";
+beginchar(oct"204",15u#,rule_thickness#,6dh#-rule_thickness#);
+adjust_fit(3.5u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big left parenthesis";
+beginchar(oct"205",17u#,rule_thickness#,7dh#-rule_thickness#);
+adjust_fit(4u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big left parenthesis";
+beginchar(oct"206",19u#,rule_thickness#,8dh#-rule_thickness#);
+adjust_fit(4.5u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big left parenthesis";
+beginchar(oct"207",21u#,rule_thickness#,9dh#-rule_thickness#);
+adjust_fit(5u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big left parenthesis";
+beginchar(oct"210",23u#,rule_thickness#,10dh#-rule_thickness#);
+adjust_fit(5.5u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big left parenthesis";
+beginchar(oct"211",25u#,rule_thickness#,11dh#-rule_thickness#);
+adjust_fit(6u#,-.25u#); left_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"212",8u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(-.25u#,1.75u#); right_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"213",10u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(-.25u#,2.25u#); right_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"214",12u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(-.25u#,2.75u#); right_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"215",13u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(-.25u#,3u#); right_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"216",15u#,rule_thickness#,6dh#-rule_thickness#);
+adjust_fit(-.25u#,3.5u#); right_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"217",17u#,rule_thickness#,7dh#-rule_thickness#);
+adjust_fit(-.25u#,4u#); right_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"220",19u#,rule_thickness#,8dh#-rule_thickness#);
+adjust_fit(-.25u#,4.5u#); right_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"221",21u#,rule_thickness#,9dh#-rule_thickness#);
+adjust_fit(-.25u#,5u#); right_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"222",23u#,rule_thickness#,10dh#-rule_thickness#);
+adjust_fit(-.25u#,5.5u#); right_paren(hair,stem); endchar;
+
+cmchar "\big right parenthesis";
+beginchar(oct"223",25u#,rule_thickness#,11dh#-rule_thickness#);
+adjust_fit(-.25u#,6u#); right_paren(hair,stem); endchar;
+
+cmchar "\big left bracket";
+beginchar(oct"224",6.25u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(1.75u#,0); left_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\big left bracket";
+beginchar(oct"225",6.75u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(2.25u#,0); left_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\big left bracket";
+beginchar(oct"226",7.25u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(2.75u#,0); left_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\big right bracket";
+beginchar(oct"227",6.25u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(0,1.75u#); right_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\big right bracket";
+beginchar(oct"230",6.75u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(0,2.25u#); right_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\big right bracket";
+beginchar(oct"231",7.25u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(0,2.75u#); right_bracket(rule_thickness,true,true); endchar;
+
+cmchar "\big left floor bracket";
+beginchar(oct"232",7.25u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(1.75u#,0); left_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\big left floor bracket";
+beginchar(oct"233",7.75u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(2.25u#,0); left_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\big left floor bracket";
+beginchar(oct"234",8.25u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(2.75u#,0); left_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\big right floor bracket";
+beginchar(oct"235",7.25u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(0,1.75u#); right_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\big right floor bracket";
+beginchar(oct"236",7.75u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(0,2.25u#); right_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\big right floor bracket";
+beginchar(oct"237",8.25u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(0,2.75u#); right_bracket(rule_thickness,false,true); endchar;
+
+cmchar "\big left ceiling bracket";
+beginchar(oct"240",7.25u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(1.75u#,0); left_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\big left ceiling bracket";
+beginchar(oct"241",7.75u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(2.25u#,0); left_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\big left ceiling bracket";
+beginchar(oct"242",8.25u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(2.75u#,0); left_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\big right ceiling bracket";
+beginchar(oct"243",7.25u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(0,1.75u#); right_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\big right ceiling bracket";
+beginchar(oct"244",7.75u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(0,2.25u#); right_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\big right ceiling bracket";
+beginchar(oct"245",8.25u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(0,2.75u#); right_bracket(rule_thickness,true,false); endchar;
+
+cmchar "\big left curly brace";
+beginchar(oct"246",9.5u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(.875u#,.75u#); left_curly(hair,stem); endchar;
+
+cmchar "\big left curly brace";
+beginchar(oct"247",10.5u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(1.125u#,.75u#); left_curly(hair,stem); endchar;
+
+cmchar "\big left curly brace";
+beginchar(oct"250",11.5u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(1.375u#,.75u#); left_curly(hair,stem); endchar;
+
+cmchar "\big right curly brace";
+beginchar(oct"251",9.5u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(.875u#,.75u#); right_curly(hair,stem); endchar;
+
+cmchar "\big right curly brace";
+beginchar(oct"252",10.5u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(1.125u#,.75u#); right_curly(hair,stem); endchar;
+
+cmchar "\big right curly brace";
+beginchar(oct"253",11.5u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(1.375u#,.75u#); right_curly(hair,stem); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"254",8u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(.875u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"255",10u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(1.125u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"256",12u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(1.375u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"257",13u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"260",15u#,rule_thickness#,6dh#-rule_thickness#);
+adjust_fit(1.75u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"261",17u#,rule_thickness#,7dh#-rule_thickness#);
+adjust_fit(2u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"262",19u#,rule_thickness#,8dh#-rule_thickness#);
+adjust_fit(2.25u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"263",21u#,rule_thickness#,9dh#-rule_thickness#);
+adjust_fit(2.5u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"264",23u#,rule_thickness#,10dh#-rule_thickness#);
+adjust_fit(2.75u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big left angle bracket";
+beginchar(oct"265",25u#,rule_thickness#,11dh#-rule_thickness#);
+adjust_fit(3u#,.75u#); left_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"266",8u#,rule_thickness#,2.5dh#-rule_thickness#);
+adjust_fit(.875u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"267",10u#,rule_thickness#,3.5dh#-rule_thickness#);
+adjust_fit(1.125u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"270",12u#,rule_thickness#,4.5dh#-rule_thickness#);
+adjust_fit(1.375u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"271",13u#,rule_thickness#,5dh#-rule_thickness#);
+adjust_fit(1.5u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"272",15u#,rule_thickness#,6dh#-rule_thickness#);
+adjust_fit(1.75u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"273",17u#,rule_thickness#,7dh#-rule_thickness#);
+adjust_fit(2u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"274",19u#,rule_thickness#,8dh#-rule_thickness#);
+adjust_fit(2.25u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"275",21u#,rule_thickness#,9dh#-rule_thickness#);
+adjust_fit(2.5u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"276",23u#,rule_thickness#,10dh#-rule_thickness#);
+adjust_fit(2.75u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big right angle bracket";
+beginchar(oct"277",25u#,rule_thickness#,11dh#-rule_thickness#);
+adjust_fit(3u#,.75u#); right_angle(rule_thickness); endchar;
+
+cmchar "\big slash";
+beginchar(oct"300",12.5u#,rule_thickness#,2.5dh#-rule_thickness#);
+big_slash(rule_thickness+.4dw); endchar;
+
+cmchar "\big slash";
+beginchar(oct"301",16.7u#,rule_thickness#,3.5dh#-rule_thickness#);
+big_slash(rule_thickness+.8dw); endchar;
+
+cmchar "\big slash";
+beginchar(oct"302",20.9u#,rule_thickness#,4.5dh#-rule_thickness#);
+big_slash(rule_thickness+1.2dw); endchar;
+
+cmchar "\big slash";
+beginchar(oct"303",23u#,rule_thickness#,5dh#-rule_thickness#);
+big_slash(rule_thickness+1.4dw); endchar;
+
+cmchar "\big backslash";
+beginchar(oct"304",12.5u#,rule_thickness#,2.5dh#-rule_thickness#);
+big_blash(rule_thickness+.4dw); endchar;
+
+cmchar "\big backslash";
+beginchar(oct"305",16.7u#,rule_thickness#,3.5dh#-rule_thickness#);
+big_blash(rule_thickness+.8dw); endchar;
+
+cmchar "\big backslash";
+beginchar(oct"306",20.9u#,rule_thickness#,4.5dh#-rule_thickness#);
+big_blash(rule_thickness+1.2dw); endchar;
+
+cmchar "\big backslash";
+beginchar(oct"307",23u#,rule_thickness#,5dh#-rule_thickness#);
+big_blash(rule_thickness+1.4dw); endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"310",18u#,rule_thickness#,2.5dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"311",18u#,rule_thickness#,3.5dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"312",18u#,rule_thickness#,4.5dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"313",18u#,rule_thickness#,5dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"314",18u#,rule_thickness#,6dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"315",18u#,rule_thickness#,7dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"316",18u#,rule_thickness#,8dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"317",18u#,rule_thickness#,9dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"320",18u#,rule_thickness#,10dh#-rule_thickness#);
+big_sqrt; endchar;
+
+cmchar "\big radical sign";
+beginchar(oct"321",18u#,rule_thickness#,11dh#-rule_thickness#);
+big_sqrt; endchar;
+
+endinput;
+\endinput
+%%
+%% End of file `yhbigdel.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/yhmath/yhcmex10.mf b/Master/texmf-dist/fonts/source/public/yhmath/yhcmex10.mf
new file mode 100644
index 00000000000..1ad3ea0af84
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yhmath/yhcmex10.mf
@@ -0,0 +1,93 @@
+%%
+%% This is file `yhcmex10.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% yhmath.dtx (with options: `mffilea')
+%%
+if unknown cmbase: input cmbase fi
+
+font_identifier:="YHCMEX"; font_size 10pt#;
+
+u#:=20/36pt#; % unit width
+width_adj#:=0pt#; % width adjustment for certain characters
+serif_fit#:=0pt#; % extra sidebar near lowercase serifs
+cap_serif_fit#:=5/36pt#; % extra sidebar near uppercase serifs
+letter_fit#:=0pt#; % extra space added to all sidebars
+
+body_height#:=270/36pt#; % height of tallest characters
+asc_height#:=250/36pt#; % height of lowercase ascenders
+cap_height#:=246/36pt#; % height of caps
+fig_height#:=232/36pt#; % height of numerals
+x_height#:=155/36pt#; % height of lowercase without ascenders
+math_axis#:=90/36pt#; % axis of symmetry for math symbols
+bar_height#:=87/36pt#; % height of crossbar in lowercase e
+comma_depth#:=70/36pt#; % depth of comma below baseline
+desc_depth#:=70/36pt#; % depth of lowercase descenders
+
+crisp#:=0pt#; % diameter of serif corners
+tiny#:=8/36pt#; % diameter of rounded corners
+fine#:=7/36pt#; % diameter of sharply rounded corners
+thin_join#:=7/36pt#; % width of extrafine details
+hair#:=9/36pt#; % lowercase hairline breadth
+stem#:=25/36pt#; % lowercase stem breadth
+curve#:=30/36pt#; % lowercase curve breadth
+ess#:=27/36pt#; % breadth in middle of lowercase s
+flare#:=33/36pt#; % diameter of bulbs or breadth of terminals
+dot_size#:=38/36pt#; % diameter of dots
+cap_hair#:=11/36pt#; % uppercase hairline breadth
+cap_stem#:=32/36pt#; % uppercase stem breadth
+cap_curve#:=37/36pt#; % uppercase curve breadth
+cap_ess#:=35/36pt#; % breadth in middle of uppercase s
+rule_thickness#:=.4pt#; % thickness of lines in math symbols
+
+dish#:=1/36pt#; % amount erased at top or bottom of serifs
+bracket#:=20/36pt#; % vertical distance from serif base to tangent
+jut#:=28/36pt#; % protrusion of lowercase serifs
+cap_jut#:=37/36pt#; % protrusion of uppercase serifs
+beak_jut#:=10/36pt#; % horizontal protrusion of beak serifs
+beak#:=70/36pt#; % vertical protrusion of beak serifs
+vair#:=8/36pt#; % vertical diameter of hairlines
+notch_cut#:=10pt#; % maximum breadth above or below notches
+bar#:=11/36pt#; % lowercase bar thickness
+slab#:=11/36pt#; % serif and arm thickness
+cap_bar#:=11/36pt#; % uppercase bar thickness
+cap_band#:=11/36pt#; % uppercase thickness above/below lobes
+cap_notch_cut#:=10pt#; % max breadth above/below uppercase notches
+serif_drop#:=4/36pt#; % vertical drop of sloped serifs
+stem_corr#:=1/36pt#; % for small refinements of stem breadth
+vair_corr#:=1/36pt#; % for small refinements of hairline height
+apex_corr#:=0pt#; % extra width at diagonal junctions
+
+o#:=8/36pt#; % amount of overshoot for curves
+apex_o#:=8/36pt#; % amount of overshoot for diagonal junctions
+
+slant:=0; % tilt ratio $(\Delta x/\Delta y)$
+fudge:=1; % factor applied to weights of heavy characters
+math_spread:=0; % extra openness of math symbols
+superness:=1/sqrt2; % parameter for superellipses
+superpull:=1/6; % extra openness inside bowls
+beak_darkness:=11/30; % fraction of triangle inside beak serifs
+ligs:=2; % level of ligatures to be included
+
+square_dots:=false; % should dots be square?
+hefty:=false; % should we try hard not to be overweight?
+serifs:=true; % should serifs and bulbs be attached?
+monospace:=false; % should all characters have the same width?
+variant_g:=false; % should an italic-style g be used?
+low_asterisk:=false; % should the asterisk be centered at the axis?
+math_fitting:=false; % should math-mode spacing be used?
+
+fontdimen 8: % parameters $\xi_8$ through $\xi_{13}$ will now be listed
+ rule_thickness#, % default\_rule\_thickness
+ 40/36pt#, % big\_op\_spacing1
+ 60/36pt#, % big\_op\_spacing2
+ 72/36pt#, % big\_op\_spacing3
+ 216/36pt#, % big\_op\_spacing4
+ 36/36pt#; % big\_op\_spacing5
+
+generate yhmathex % switch to the driver file
+\endinput
+%%
+%% End of file `yhcmex10.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/yhmath/yhmathex.mf b/Master/texmf-dist/fonts/source/public/yhmath/yhmathex.mf
new file mode 100644
index 00000000000..4c8d1160fd8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yhmath/yhmathex.mf
@@ -0,0 +1,21 @@
+%%
+%% This is file `yhmathex.mf',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% yhmath.dtx (with options: `mffileb')
+%%
+font_coding_scheme:="TeX math extension";
+mode_setup; font_setup;
+
+input yhbigdel; % large delimiters
+input bigop; % large operators
+input yhbigacc; % large accents
+
+font_x_height x_height#;
+font_quad 18u#+4letter_fit#;
+bye.
+\endinput
+%%
+%% End of file `yhmathex.mf'.
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yib-1.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yib-1.mf
new file mode 100644
index 00000000000..2d2b9641487
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yib-1.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part I of V.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yibparms;
+\input yirdefs;
+\input yis-1;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yib-2.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yib-2.mf
new file mode 100644
index 00000000000..6d2f5b641e4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yib-2.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part II of V.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yibparms;
+\input yirdefs;
+\input yis-2;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yib-3.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yib-3.mf
new file mode 100644
index 00000000000..cb117744fae
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yib-3.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part III of V.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yibparms;
+\input yirdefs;
+\input yis-3;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yib-4.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yib-4.mf
new file mode 100644
index 00000000000..99ef042d4af
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yib-4.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part IV of V.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yibparms;
+\input yirdefs;
+\input yis-4;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yib-5.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yib-5.mf
new file mode 100644
index 00000000000..98bed0c2296
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yib-5.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part V of V.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yibparms;
+\input yirdefs;
+\input yis-5;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yibparms.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yibparms.mf
new file mode 100644
index 00000000000..1b0214dfdf0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yibparms.mf
@@ -0,0 +1,31 @@
+
+mode_setup;
+ mg:=5/5;
+ height#:=mg*12pt#;
+ depth#:=mg*2pt#;
+ width#:=mg*8pt#;
+ thick#:=mg*3/4pt#;
+ thin#:=mg*3/8pt#;
+ b#:=mg*1/2pt#;
+ hp#:=mg*2/2pt#;
+
+ charwidth#:=mg*8.5pt#;
+
+ define_pixels(height,depth,width);
+ define_blacker_pixels(thin,thick);
+
+ oben:=10/12height;
+ lir:=1/8width;
+ rer:=7/8width;
+ hm:=1/2width;
+ vm:=5/12height;
+ hp:=1/12height;
+ wp:=1/16width;
+
+ font_size 12pt#;
+ font_normal_space 1/4width#;
+ font_x_height height#;
+ font_quad width#;
+ font_extra_space 1/4width#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yir-1.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yir-1.mf
new file mode 100644
index 00000000000..66769e35a2c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yir-1.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yirparms;
+\input yirdefs;
+\input yis-1;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yir-2.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yir-2.mf
new file mode 100644
index 00000000000..08c94f18276
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yir-2.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yirparms;
+\input yirdefs;
+\input yis-2;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yir-3.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yir-3.mf
new file mode 100644
index 00000000000..bde8406d778
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yir-3.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yirparms;
+\input yirdefs;
+\input yis-3;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yir-4.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yir-4.mf
new file mode 100644
index 00000000000..47d1f068521
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yir-4.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yirparms;
+\input yirdefs;
+\input yis-4;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yir-5.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yir-5.mf
new file mode 100644
index 00000000000..a8f9d38154a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yir-5.mf
@@ -0,0 +1,11 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+\input yirparms;
+\input yirdefs;
+\input yis-5;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yirdefs.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yirdefs.mf
new file mode 100644
index 00000000000..766cb0087d9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yirdefs.mf
@@ -0,0 +1,519 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% Common definitions.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def getpen =
+ pickup pencircle scaled thick;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def eyebrow = % nnnX syllables are covered by this!
+ x97=5/16width;
+ x98=4/8width;
+ x99=11/16width;
+ y97=y99=11/12height;
+ y98=23/24height;
+ getpen;
+ draw z97..z98..z99;
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def gong(expr lx, uy, rx, ly) = % The gong-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1:=lx; y1:=uy;
+ x2:=rx; y2:=uy;
+ x3:=lx; y3:=ly;
+ x4:=rx; y4:=ly;
+ z5=1/2[z1,z2];
+ z6=1/2[z3,z4];
+ getpen;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Ddash(expr lx, uy, rx, ly) = % The Double Dash-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ z1=(lx,uy);
+ z2=1/3[z1,z4];
+ z3=2/3[z1,z4];
+ z4=(rx,ly);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Er(expr lx, uy, rx, ly) =% The er-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1=lx; y1=uy;
+ x2=rx; y2=uy;
+ x3=lx; y3=ly;
+ x4=rx; y4=ly;
+ getpen;
+ draw z1--z2; draw z3--z4;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def san(expr lx, uy, rx, ly) =% The san-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1=lx; y1=uy;
+ x2=rx; y2=uy;
+ x3=lx; y3=ly;
+ x4=rx; y4=ly;
+ x5=lx; y5=1/2[ly,uy];
+ x6=rx; y6=1/2[ly,uy];
+ getpen;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def H(expr lx, uy, rx, ly) = % The H-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1:=lx; y1:=uy;
+ x2:=lx; y2:=ly;
+ x3:=rx; y3:=uy;
+ x4:=rx; y4:=ly;
+ z5=1/2[z1,z2];
+ z6=1/2[z3,z4];
+ getpen;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Ih(expr lx, uy, rx, ly) = % The Single Dash-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ z1=(lx,uy);
+ z2=(rx,ly);
+ getpen;
+ draw z1--z2;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def II(expr lx, uy, rx, ly) =% The II-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1:=lx; y1:=uy;
+ x2:=lx; y2:=ly;
+ x3:=rx; y3:=uy;
+ x4:=rx; y4:=ly;
+ getpen;
+ draw z1--z2; draw z3--z4;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def III(expr lx, uy, rx, ly) =% The III-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1=lx; y1=uy;
+ x2=lx; y2=ly;
+ x3=rx; y3=uy;
+ x4=rx; y4=ly;
+ x5=1/2[lx,rx]; y5=uy;
+ x6=1/2[lx,rx]; y6=ly;
+ getpen;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def N(expr lx, uy, rx, ly) = % The N-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1:=lx; y1:=ly;
+ x2:=lx; y2:=uy;
+ x3:=rx; y3:=ly;
+ x4:=rx; y4:=uy;
+ getpen;
+ draw z1--z2--z3--z4;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Oh(expr lx, uy, rx, ly) = % The O-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x51:=x53:=1/2[lx,rx];
+ y51:=uy;
+ x52:=rx;
+ y52:=y54:=1/2[uy,ly];
+ y53:=ly;
+ x54:=lx;
+ getpen;
+ draw z51..z52..z53..z54..cycle;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Otense(expr lx, uy, rx, ly, t) = % The O-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1=x3=1/2[lx,rx];
+ y1=uy;
+ x2=rx;
+ y2=y4=1/2[uy,ly];
+ y3=ly;
+ x4=lx;
+ getpen;
+ draw z1..tension t..z2..tension t..z3..tension t..z4..tension t..cycle;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def S(expr lx, uy, rx, ly) = % The S-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ z1=(rx,5/6[ly,uy]);
+ z2=(1/2[lx,rx],uy);
+ z3=(lx,1/4[uy,ly]);
+ z4=(x2,1/2[uy,ly]);
+ z5=(rx,1/4[ly,uy]);
+ z6=(x2,ly);
+ z7=(lx,1/6[ly,uy]);
+ getpen;
+ draw z1..{left}z2{left}..z3..z4..z5..{left}z6{left}..z7;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def T(expr lx, uy, rx, ly) = % The Single Dash-shape appearing so often.
+ Ih(lx,uy,rx,uy);
+ Ih(1/2[lx,rx],uy,1/2[lx,rx],ly);
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Tdash(expr px, uy, ly) = % The Triple Dash-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ z1=(px,uy);
+ z2=(x1,1/5[uy,ly]);
+ z3=(x1,2/5[uy,ly]);
+ z4=(x1,3/5[uy,ly]);
+ z5=(x1,4/5[uy,ly]);
+ z6=(x1,ly);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def U(expr lx, uy, rx, ly) = % The U-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ z1=(lx,uy);
+ z2=(lx,2/3[uy,ly]);
+ z3=(1/2[lx,rx],ly);
+ z4=(rx,y2);
+ z5=(rx,uy);
+
+ getpen;
+ draw z1---z2..z3..z4---z5;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def X(expr lx, uy, rx, ly) = % The X-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1:=lx; y1:=uy;
+ x2:=rx; y2:=uy;
+ x3:=lx; y3:=ly;
+ x4:=rx; y4:=ly;
+ getpen;
+ draw z1--z4; draw z2--z3;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Xi(expr lx, uy, rx, ly) = % The XI-shape appearing so often.
+ numeric x[]; % Since there is a syllable
+ numeric y[]; % "XI" in the corpus this one
+ x1:=lx; y1:=uy; % is given as 'Xi'; see also
+ x2:=rx; y2:=uy; % "O" and 'Oh'. This helps us
+ x3:=lx; y3:=ly; % to avoid confusion.
+ x4:=rx; y4:=ly;
+ getpen;
+ draw z1--z4--z2--z3;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def IXI(expr lx, uy, rx, ly) = % The IXI-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1:=lx; y1:=uy;
+ x2:=rx; y2:=uy;
+ x3:=lx; y3:=ly;
+ x4:=rx; y4:=ly;
+ getpen;
+ draw z1--z4--z2--z3--cycle;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Z(expr lx, uy, rx, ly) = % the inverted Z-shape
+ numeric x[];
+ numeric y[];
+ x1:=lx;
+ x4:=rx;
+ x2:=x3:=1/2[x1,x4];
+ y2:=ly;
+ y3:=uy;
+ y1:=1/6[y2,y3];
+ y4:=5/6[y2,y3];
+ getpen;
+ draw z1--z2--z3--z4;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Zdash(expr lx, uy, rx, ly) = % the inverted Z-shape with dash
+ numeric x[];
+ numeric y[];
+ x1:=lx;
+ x4:=rx;
+ x2:=x3:=1/2[x1,x4];
+ y2:=ly;
+ y3:=uy;
+ y1:=1/6[y2,y3];
+ y4:=5/6[y2,y3];
+ z5=(lx,1/2[uy,ly]); z6=(rx,y5);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZPimmel(expr lx, uy, rx, ly) = % the inverted Z-shape with Pimmel
+ numeric x[];
+ numeric y[];
+ x1:=lx;
+ x4:=rx;
+ x2:=x3:=1/2[x1,x4];
+ y2:=ly;
+ y3:=uy;
+ y1:=1/6[y2,y3];
+ y4:=5/6[y2,y3];
+ z5=(1/2[lx,rx],2/5[uy,ly]); z6=(7/8[lx,rx],1/4[ly,uy]);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{z2-z1}..{down}z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Arsch(expr lx, uy, rx, ly) = % the Arsch-shape
+ numeric x[];
+ numeric y[];
+ z1=(1/2[lx,rx],uy);
+ z2=(rx,6/24[ly,uy]);
+ z3=(1/2[x2,x4],ly);
+ z4=(x1,y2);
+ z5=(1/2[x4,x6],ly);
+ z6=(lx,y2);
+ getpen;
+ draw z1{right}..tension 1.5..z2{down}..z3..{up}z4 &
+ z4{down}..z5..{up}z6..tension 1.5..{right}z1..cycle;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Blitz(expr lx, uy, rx, ly) = % the Blitz-shape
+ numeric x[];
+ numeric y[];
+ z1=(1/2[lx,rx],uy);
+ z2=(lx,1/3[ly,uy]);
+ z3=(rx,1/3[uy,ly]);
+ z4=(x1,ly);
+ getpen;
+ draw z1--z2--z3--z4;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Brunnen(expr lx, uy, rx, ly) = % the Brunnen (jing)-shape
+ numeric x[];
+ numeric y[];
+ z1=(1/4[lx,rx],uy);
+ z2=(x1,ly);
+ z3=(3/4[lx,rx],uy);
+ z4=(x3,ly);
+ z5=(lx,1/4[uy,ly]);
+ z6=(rx,y5);
+ z7=(lx,3/4[uy,ly]);
+ z8=(rx,y7);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Busen(expr lx, uy, rx, ly) = % the Busen-shape
+ numeric x[];
+ numeric y[];
+ x11:=lx;
+ x15:=rx;
+ x13:=1/2[x11,x15];
+ x12:=1/2[x11,x13];
+ x14:=1/2[x13,x15];
+ y11:=y13:=y15:=uy;
+ y12:=y14:=ly;
+
+ getpen;
+ draw z11{down}..z12..{up}z13 & z13{down}..z14..{up}z15;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Gasmaske(expr lx, uy, rx, ly) = % the Gasmaske-shape
+ numeric x[];
+ numeric y[];
+ Oh(lx,uy,1/3[lx,rx],5/12[uy,ly]);
+ Oh(2/3[lx,rx],uy,rx,5/12[uy,ly]);
+ Oh(1/3[lx,rx],7/12[uy,ly],2/3[lx,rx],ly);
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Huegel(expr lx, uy, rx, ly) = % the Huegel-shape
+ numeric x[];
+ numeric y[];
+ z1=(lx,ly);
+ z2=(1/2[lx,rx],uy);
+ z3=(rx,ly);
+ getpen;
+ draw z1{up}..tension 1.2..z2..tension 1.2..{down}z3;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Jalousie(expr lx, uy, rx, ly) = % The Jalousie-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ z1=(lx,uy);
+ z2=(rx,1/5[uy,ly]);
+ z3=(x1,2/5[uy,ly]);
+ z4=(x2,3/5[uy,ly]);
+ z5=(x1,4/5[uy,ly]);
+ z6=(x2,ly);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Liane(expr lx, uy, rx, ly) = % the Liane-shape
+ numeric x[];
+ numeric y[];
+ z1=(lx,uy);
+ z2=(1/2[lx,rx],ly);
+ z3=(rx,uy);
+ getpen;
+ draw z1{down}..tension 1.2..z2..tension 1.2..{up}z3;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Plus(expr lx, uy, rx, ly) = % The Plus-shape appearing so often.
+ numeric x[];
+ numeric y[];
+ x1=1/2[lx,rx]; y1=uy;
+ x2=rx; y2=1/2[uy,ly];
+ x3=lx; y3=y2;
+ x4=x1; y4=ly;
+ getpen;
+ draw z1--z4; draw z2--z3;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Quad(expr lx, uy, rx, ly) = % the Four Strokes-shape
+ numeric x[];
+ numeric y[];
+ z1=(lx,uy);
+ z2=(lx,1/3[uy,ly]);
+ z3=(lx,2/3[uy,ly]);
+ z4=(lx,ly);
+ z5=(rx,y1);
+ z6=(rx,y2);
+ z7=(rx,y3);
+ z8=(rx,y4);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Sanduhr(expr lx, uy, rx, ly) = % the Sanduhr-shape
+ numeric x[];
+ numeric y[];
+ z1=(lx,uy);
+ z2=(rx,uy);
+ z3=(lx,ly);
+ z4=(rx,ly);
+ getpen;
+ draw z1--z2--z3--z4--cycle;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Sichel(expr lx, uy, rx, ly) = % the Sichel-shape
+ numeric x[];
+ numeric y[];
+ x1:=x5:=x6:=lx;
+ x3:=x4:=rx;
+ x2:=1/2[x1,x3];
+
+ y2:=uy;
+ y6:=ly;
+ y1:=y3:=1/6[y2,y6];
+ y4:=y5:=11/16[y2,y6];
+ x7:=rx; y7:=ly; % Ein Hilfspunkt!
+ getpen;
+ draw z1..z2..z3---z4{z4-z3}..{z5-z7}z5&z5--z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def Smiley(expr lx, uy, rx, ly) = % the Smiley-shape
+ numeric x[];
+ numeric y[];
+ z1=(lx,uy);
+ z2=(lx,1/3[uy,ly]);
+ z3=(rx,y1);
+ z4=(rx,y2);
+ z5=(1/2[lx,rx],2/3[uy,ly]);
+ z6=(x5,ly);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ numeric x[];
+ numeric y[];
+enddef;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font, Common Definitions, ends here. %%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yirparms.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yirparms.mf
new file mode 100644
index 00000000000..d91a105c7ad
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yirparms.mf
@@ -0,0 +1,31 @@
+
+mode_setup;
+ mg:=5/5;
+ height#:=mg*12pt#;
+ depth#:=mg*2pt#;
+ width#:=mg*8pt#;
+ thick#:=mg*2/4pt#;
+ thin#:=mg*2/8pt#;
+ b#:=mg*1/2pt#;
+ hp#:=mg*2/2pt#;
+
+ charwidth#:=mg*9pt#;
+
+ define_pixels(height,depth,width);
+ define_blacker_pixels(thin,thick);
+
+ oben:=10/12height;
+ lir:=1/8width;
+ rer:=7/8width;
+ hm:=1/2width;
+ vm:=5/12height;
+ hp:=1/12height;
+ wp:=1/16width;
+
+ font_size 12pt#;
+ font_normal_space 1/4width#;
+ font_x_height height#;
+ font_quad width#;
+ font_extra_space 1/4width#;
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yis-1.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yis-1.mf
new file mode 100644
index 00000000000..ca1cbf1a0e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yis-1.mf
@@ -0,0 +1,3526 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part I
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% This file contains 74 eyebrows.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(0, charwidth#,height#+2hp#,depth#);
+ "The syllable BIT";
+ Oh(lir,oben,5/8width,0);
+ X(3/8width,8hp,rer,1/4height);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BI =
+ % Punktfolge:
+ % 1 5
+ % 3 6 4
+ % 2 7
+ %
+ x1=x2=x3=lir;
+ y1=y5=oben;
+ y2=y7=0;
+ y3=y4=y6=5hp;
+ x4=x5=x7=rer;
+ x6=1/3[x3,x4];
+
+ getpen;
+ draw z1--z2; draw z3--z4;
+ getpen;
+ draw z5..z6..z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(1, charwidth#,height#+2hp#,depth#);
+ "The syllable BIX";
+ eyebrow;
+ BI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(2, charwidth#,height#+2hp#,depth#);
+ "The syllable BI";
+ BI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(3, charwidth#,height#+2hp#,depth#);
+ "The syllable BIP";
+
+ x1=x5=x2=lir;
+ x3=x4=12wp;
+ x7=x9=13wp;
+ x6=14wp;
+ x8=1/4[x5,x6];
+ y1=0;
+ y2=y4=oben;
+ y3=7hp;
+ y7=6hp;
+ y9=1hp;
+ y5=y8=y6=1/2[y7,y9];
+
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+ draw z7{z5-z6}...z8...z9{z6-z5};
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(4, charwidth#,height#+2hp#,depth#);
+ "The syllable BIET";
+ Oh(lir,19/24height,hm,1/24height);
+ x10=hm;x11=x12=x14=rer;
+ x13=1/3[x10,x12];
+ y12=oben;
+ y14=0;
+ y10=y11=y13=1/2[y12,y14];
+
+ getpen;
+ draw z10--z11;
+ draw z12..z13..z14;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BIE =
+ Oh(lir,oben,rer,0);
+ x10=lir; y10=0;
+ x12=rer; y12=oben;
+ z11=1/8[z10,z12];
+ getpen;
+ draw z11--z12;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(5, charwidth#,height#+2hp#,depth#);
+ "The syllable BIEX";
+ eyebrow;
+ BIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(6, charwidth#,height#+2hp#,depth#);
+ "The syllable BIE";
+ BIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(7, charwidth#,height#+2hp#,depth#);
+ "The syllable BIEP";
+ Oh(lir,oben,9wp,0);
+ x10=x12=6/8width;
+ x11=9wp;
+ x13=width;
+ y10=19/24height;
+ y12=1/24height;
+ y11=y13=1/2[y10,y12];
+
+ getpen;
+ draw z10..{z11-z13}z11&z11{z13-z11}..z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(8, charwidth#,height#+2hp#,depth#);
+ "The syllable BAT";
+ H(1/4width,oben,3/4width,1/2height);
+ Oh(1/4width,vm,3/4width,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BA =
+ H(1/4width,oben,3/4width,vm);
+ Busen(lir,3hp,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(9, charwidth#,height#+2hp#,depth#);
+ "The syllable BAX";
+ eyebrow;
+ BA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(10, charwidth#,height#+2hp#,depth#);
+ "The syllable BA";
+ BA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(11, charwidth#,height#+2hp#,depth#);
+ "The syllable BAP";
+ H(1/4width,oben,3/4width,vm);
+ x10=lir; x11=1/3width; x12=2/3width; x13=rer;
+ y10=y13=0;
+ y11=y12=3hp;
+ getpen;
+ draw z10--z11; draw z12--z13;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BUO =
+ Sichel(lir,oben,rer,0);
+ gong(1/3width,8hp,5/8width,4hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(12, charwidth#,height#+2hp#,depth#);
+ "The syllable BUOX";
+ eyebrow;
+ BUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(13, charwidth#,height#+2hp#,depth#);
+ "The syllable BUO";
+ BUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(14, charwidth#,height#+2hp#,depth#);
+ "The syllable BUOP";
+ gong(lir,oben,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(15, charwidth#,height#+2hp#,depth#);
+ "The syllable BOT";
+ x1=x3=x5=rer;
+ x2=x4=9wp;
+ y1=0;
+ y5=oben;
+ y3=y6=1/2[y1,y5];
+ y2=1/2[y1,y3];
+ y4=1/2[y3,y5];
+
+ x6=2/8width;
+
+ x7=x10=3wp;
+ x8=x9=3/5[x6,x2];
+ y7=1/3[y1,y3];
+ y8=5/6[y1,y3];
+ y9=1/6[y3,y5];
+ y10=2/3[y3,y5];
+
+ getpen;
+ draw z1..z2..z3 & z3..z4..z5;
+ draw z2..z6..z4;
+ draw z7--z8; draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BO =
+ Oh(lir,oben,rer,0);
+ gong(1/3width,8hp,2/3width,4/24height);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(16, charwidth#,height#+2hp#,depth#);
+ "The syllable BOX";
+ eyebrow;
+ BO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(17, charwidth#,height#+2hp#,depth#);
+ "The syllable BO";
+ BO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(18, charwidth#,height#+2hp#,depth#);
+ "The syllable BOP";
+ gong(lir,oben,rer,6hp);
+ gong(lir,4hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BE =
+ x1=x5-1wp=lir;
+ x2=x4=x6=x8=hm;
+ x3=x7+1wp=rer;
+ y1=y3=8hp;
+ y2=6hp;
+ y4=y5=y7=3hp;
+ y6=0;
+ y8=1/2[y2,y4];
+ y9=y10=oben;
+ x9=1/2[x1,x2];
+ x10=1/2[x2,x3];
+
+ getpen;
+ draw z1{z8-z4}..z9..{z4-z8}z2 & z2{z8-z4}..z10..{z4-z8}z3;
+ draw z5..tension 1.2..z6..tension 1.2..z7;
+ draw z4--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(19, charwidth#,height#+2hp#,depth#);
+ "The syllable BEX";
+ eyebrow;
+ BE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(20, charwidth#,height#+2hp#,depth#);
+ "The syllable BE";
+ BE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(21, charwidth#,height#+2hp#,depth#);
+ "The syllable BEP";
+ gong(lir,oben,rer,0);
+ x7=x9=lir;
+ x8=x10=rer;
+ y7=y8=8hp;
+ y9=y10=2hp;
+
+ getpen;
+ draw z7--z10;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(22, charwidth#,height#+2hp#,depth#);
+ "The syllable BUT";
+ Oh(lir,oben,rer,vm);
+ x5=x6=hm;
+ y5=5hp;
+ y6=0;
+ x7=x8=12wp;
+ y7=4hp;
+ y8=3hp;
+
+ getpen;
+ draw z5--z6; draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BU =
+ x1=3wp;
+ x2=x3=hm;
+ x4=x5=12wp;
+ y1=5/24height;
+ y2=0;
+ y3=oben;
+ y4=1hp;
+ y5=6hp;
+
+ getpen;
+ draw z1--z2--z3; draw z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(23, charwidth#,height#+2hp#,depth#);
+ "The syllable BUX";
+ eyebrow;
+ BU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(24, charwidth#,height#+2hp#,depth#);
+ "The syllable BU";
+ BU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(25, charwidth#,height#+2hp#,depth#);
+ "The syllable BUP";
+ x1=x3=x4=x6=rer;
+ x2=2/8width;
+ x5=hm;
+ y1=oben;
+ y2=y5=5hp;
+ y4=8hp;
+ y6=2hp;
+ y3=0;
+
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BUR =
+ z1=(lir+1wp,oben);
+ z2=(hm-1wp,0);
+ z3=(11wp,9hp);
+ z4=(rer,oben);
+ z5=(hm-1wp,6.5hp);
+ z6=(rer,6.5hp);
+ z7=(hm-1wp,4hp);
+ z8=(rer,4hp);
+ getpen;
+ draw z1{down}..tension 1.8..z2..tension 1.8..{up}z3..z4;
+ draw z5--z6; draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(26, charwidth#,height#+2hp#,depth#);
+ "The syllable BURX";
+ eyebrow;
+ BUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(27, charwidth#,height#+2hp#,depth#);
+ "The syllable BUR";
+ BUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(28, charwidth#,height#+2hp#,depth#);
+ "The syllable BYT";
+ Z(lir,oben,rer-2wp,0);
+ x1=x3=rer-1wp;
+ x2=x4=1/2[lir,rer-2wp];
+ y1=y4=7hp;
+ y2=y3=2hp;
+ getpen;
+ draw z1{down}..z2; draw z3{up}..z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BY =
+ Z(lir,oben,rer-2wp,0);
+ x1=x3=x5=rer-1wp;
+ x2=x4=1/2[lir,rer-2wp];
+ y1=7hp;
+ y2=1/2[y1,y3];
+ y3=1/2[y1,y5];
+ y4=1/2[y3,y5];
+ y5=1hp;
+ getpen;
+ draw z1--z2--z3--z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(29, charwidth#,height#+2hp#,depth#);
+ "The syllable BYX";
+ eyebrow;
+ BY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(30, charwidth#,height#+2hp#,depth#);
+ "The syllable BY";
+ BY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(31, charwidth#,height#+2hp#,depth#);
+ "The syllable BYP";
+ x1=x9=lir;x2=3/8width;
+ x3=x4=1/2[x1,x2];
+ y1=y2=y3-1/24height=1.5hp;
+ y4=y7=oben;
+ x5=x6=x7=hm+1wp;
+ x8=rer;
+ y5=y8=8hp;
+ y6=0;
+ x10=hm-1/8width;
+ y9=y10=5hp;
+ getpen;
+ draw z1{down}..{up}z2;
+ draw z3--z4--z5;
+ draw z6--z7--z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BYR =
+ % z1 .. z5 : "d"
+ z1=(rer,8hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ % Fuellung!
+ % Linke kleine Striche.
+ z11=(1/2[lir,x2],5.5hp);
+ z12=(x11,0.5hp);
+ draw z11--z12;
+ z13=(1/2[lir,x11],4hp);
+ z14=(x13,3.5hp);
+ z15=(x13,2.5hp);
+ z16=(x13,2hp);
+ draw z13--z14;
+ draw z15--z16;
+ % Rechte kleine Striche.
+ z17=(1/2[x11,x2],4.5hp);
+ z18=(x17,3.5hp);
+ z19=(x17,2.5hp);
+ z20=(x17,1.5hp);
+ draw z17--z18;
+ draw z19--z20;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(32, charwidth#,height#+2hp#,depth#);
+ "The syllable BYRX";
+ eyebrow;
+ BYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(33, charwidth#,height#+2hp#,depth#);
+ "The syllable BYR";
+ BYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(34, charwidth#,height#+2hp#,depth#);
+ "The syllable BBIT";
+ Oh(4wp,oben,12wp,3hp);
+ % Zwei horizontale Striche
+ y10=y11=1/3[oben,3hp];
+ y12=y13=2/3[oben,3hp];
+ x10=x12=5wp;
+ x11=x13=11wp;
+ draw z10--z11; draw z12--z13;
+ Busen(lir,3hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BBI =
+ X(lir,9hp,rer,2hp);
+ x10=x11=hm;
+ y10=oben;
+ y11=0;
+ getpen;
+ draw z10--z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(35, charwidth#,height#+2hp#,depth#);
+ "The syllable BBIX";
+ eyebrow;
+ BBI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(36, charwidth#,height#+2hp#,depth#);
+ "The syllable BBI";
+ BBI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(37, charwidth#,height#+2hp#,depth#);
+ "The syllable BBIP";
+ Oh(lir,oben,rer,0);
+ x1=x3=lir;
+ x4=x6=rer;
+ x2+1.5wp=x5-1.5wp=hm;
+ y1=y4=oben;
+ y2=y5=5hp;
+ y3=y6=0;
+ getpen;
+ draw z1..z2..z3; draw z4..z5..z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(38, charwidth#,height#+2hp#,depth#);
+ "The syllable BBIET";
+ Oh(1/6width,oben,5/6width,1/2height);
+ Busen(lir,1/2height,rer,3hp);
+ x30=x31=hm;
+ y30=2hp;
+ y31=0;
+ draw z30--z31;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BBIE =
+ Z(lir,8hp,4/8width,0);
+ x1=x3=x4=x6=rer;
+ x2=4/8width;
+ x5=11wp;
+ x7=1/2[x2,x5];
+ x8=rer;
+ y1=oben;
+ y2=y5=y7=y8=5hp;
+ y4=8hp;
+ y6=2hp;
+ y3=0;
+
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+ draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(39, charwidth#,height#+2hp#,depth#);
+ "The syllable BBIEX";
+ eyebrow;
+ BBIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(40, charwidth#,height#+2hp#,depth#);
+ "The syllable BBIE";
+ BBIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(41, charwidth#,height#+2hp#,depth#);
+ "The syllable BBIEP";
+ x1=x7=x3=lir;
+ x4=x8=x6=rer;
+ x2+1.5wp=x5-1.5wp=hm;
+ y1=y4=oben;
+ y7=y2=y5=y8=5hp;
+ y3=y6=0;
+
+ getpen;
+ draw z1..z2..z3; draw z4..z5..z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(42, charwidth#,height#+2hp#,depth#);
+ "The syllable BBAT";
+ x1=x3=lir;
+ x4=x6=rer;
+ x2+3wp=x5-3wp=hm;
+ y1=y4=oben;
+ y2=y5=5hp;
+ y3=y6=0;
+ x7= x9=hm-8/32width;
+ x8=x10=hm+8/32width;
+ y7=y8=8hp;
+ y9=y10=2hp;
+ getpen;
+ draw z1..z2..z3; draw z4..z5..z6;
+ draw z2--z5; draw z7--z8; draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BBA =
+ x1=x4=lir;x5=x8=5wp;
+ x2=x3=hm-2wp;
+ x6=x7=rer;
+ y1=8hp;
+ y2=2hp;
+ y3=8hp;
+ y4=2hp;
+ y5=y7=oben;
+ y6=y8=0;
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6--z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(43, charwidth#,height#+2hp#,depth#);
+ "The syllable BBAX";
+ eyebrow;
+ BBA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(44, charwidth#,height#+2hp#,depth#);
+ "The syllable BBA";
+ BBA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(45, charwidth#,height#+2hp#,depth#);
+ "The syllable BBAP";
+ Busen(lir,oben,rer,6hp);
+ x1=x3+1/32width=1/4width;
+ x2=x4-1/32width=3/4width;
+ y1=y2=4hp;
+ y3=y4=2hp;
+
+ getpen;
+ draw z1--z2; draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BBUO =
+ N(lir,oben,hm+2wp,6.5hp);
+ x1=x3=1/8width;
+ x2=x4=hm+2wp;
+ y1=y2=5hp;
+ y3=y4=3.5hp;
+ x5=x1+1wp;
+ x6=x7=13wp;
+ y5=2hp;
+ y6=0;
+ y7=oben;
+ getpen;
+ draw z1--z2; draw z3--z4; draw z5--z6--z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(46, charwidth#,height#+2hp#,depth#);
+ "The syllable BBUOX";
+ eyebrow;
+ BBUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(47, charwidth#,height#+2hp#,depth#);
+ "The syllable BBUO";
+ BBUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(48, charwidth#,height#+2hp#,depth#);
+ "The syllable BBUOP";
+ Oh(2/8width,oben,6/8width,0);
+ x1=x2=x3=x4=lir;
+ x5=x6=x7=x8=rer;
+ y1=y5=oben-1hp;
+ y4=y8=1hp;
+ y2=y6=1/4[y1,y4];
+ y3=y7=3/4[y1,y4];
+
+ getpen;
+ draw z1--z2; draw z3--z4;
+ draw z5--z6; draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(49, charwidth#,height#+2hp#,depth#);
+ "The syllable BBOT";
+ x1=x2=x3=x4=hm+1wp;
+ x5=x6=rer-1wp;
+ y1=oben;
+ y2=y5=8hp;
+ y3=y6=2hp;
+ y4=0;
+ getpen;
+ draw z1--z4;
+ draw z2{left}..{right}z3;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BBO =
+ x1=x2=hm;
+ y1=oben; y2=0;
+ x3=x6=x7=x9=lir;
+ x4=x5=x8=x10=rer;
+ y3=y5=9hp;
+ y4=y6=4hp;
+ y7=y8=2hp;
+ y9=y10=0;
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(50, charwidth#,height#+2hp#,depth#);
+ "The syllable BBOX";
+ eyebrow;
+ BBO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(51, charwidth#,height#+2hp#,depth#);
+ "The syllable BBO";
+ BBO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(52, charwidth#,height#+2hp#,depth#);
+ "The syllable BBOP";
+ x1=x5-1wp=lir;
+ x2=x4=x6=x8=hm;
+ x3=x7+1wp=rer;
+ y1=y3=8hp;
+ y2=6hp;
+ y4+2/24height=y5=y7=5/24height;
+ y6=0;
+ y8=2/5[y2,y4];
+ y9=y10=oben;
+ x9=1/2[x1,x2];
+ x10=1/2[x2,x3];
+
+ x11=lir;
+ x12=rer;
+ y11=y12=7/24height;
+
+ getpen;
+ draw z1{z8-z4}..z9..{z4-z8}z2 & z2{z8-z4}..z10..{z4-z8}z3;
+ draw z5..tension 1.2..z6..tension 1.2..z7;
+ draw z4--z8;
+ draw z11..z2..z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BBE =
+ N(5wp,oben,11wp,7hp);
+ N(lir,13/24height,rer,7/24height);
+ numeric x[];
+ numeric y[];
+ x1=x3=5wp;
+ x2=x4=11wp;
+ y1=y2=5/24height;
+ y3=y4=2/24height;
+ getpen;
+ draw z1--z2; draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(53, charwidth#,height#+2hp#,depth#);
+ "The syllable BBEX";
+ eyebrow;
+ BBE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(54, charwidth#,height#+2hp#,depth#);
+ "The syllable BBE";
+ BBE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(55, charwidth#,height#+2hp#,depth#);
+ "The syllable BBEP";
+ N(lir,oben,hm,6hp);
+ x2=hm;
+ x1=1/8width;
+ y1=y2=y8=4.5hp;
+ x5=x1+1wp;
+ x6=x7=x8=10wp;
+ x9=rer;
+ y5=2hp;
+ y6=0;
+ y7=oben;
+ y9=7hp;
+ getpen;
+ draw z1--z2; draw z5--z6--z7; draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(56, charwidth#,height#+2hp#,depth#);
+ "The syllable BBUT";
+ z1=(hm-1wp,0);
+ z2=(x1,5.5hp);
+ z3=(hm+1wp,4.5hp);
+ z4=(x3,oben);
+ z5=(3wp,oben);
+ z6=(x5,6.5hp);
+ z7=(lir,3.5hp);
+ z8=(x7,0);
+ z9=(rer,oben);
+ z10=(x9,y6);
+ z11=(13wp,y7);
+ z12=(x11,0);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{right}..{left}z6;
+ draw z7{right}..{left}z8;
+ draw z9{left}..{right}z10;
+ draw z11{left}..{right}z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BBU =
+ Z(lir,8hp,hm,3hp);
+ z1=(hm,0);
+ z2=(x1,9hp);
+ z3=(3/4width,8hp);
+ z4=(x3,oben);
+ z5=(x3,6.5hp);
+ z6=(x3,3hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(57, charwidth#,height#+2hp#,depth#);
+ "The syllable BBUX";
+ eyebrow;
+ BBU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(58, charwidth#,height#+2hp#,depth#);
+ "The syllable BBU";
+ BBU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(59, charwidth#,height#+2hp#,depth#);
+ "The syllable BBUP";
+ z1=(lir+1wp,0);
+ z2=(lir+1wp,3hp);
+ z3=(hm+1wp,2hp);
+ z4=(hm+1wp,oben);
+ z5=(3/4width,8.5hp);
+ z6=(lir,6hp);
+ z7=(lir,8hp);
+ z8=(x4,7hp);
+ z9=(x5,6.5hp);
+ z10=(x5,4hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6--z7--z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BBUR =
+ z1=(lir,4hp);
+ z2=(x1,8hp);
+ z3=(11wp,4hp);
+ z4=(x3,oben);
+ z5=(1/4width,0);
+ z6=(1/2[x5,x7],y3);
+ z7=(rer,0);
+ z8=(x6,1/2[y3,0]);
+ z9=(x8,0);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{up}..z6..{down}z7;
+ draw z8--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(60, charwidth#,height#+2hp#,depth#);
+ "The syllable BBURX";
+ eyebrow;
+ BBUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(61, charwidth#,height#+2hp#,depth#);
+ "The syllable BBUR";
+ BBUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(62, charwidth#,height#+2hp#,depth#);
+ "The syllable BBYT";
+ x1=lir; y1=2hp;
+ x2=x3=1/4width;
+ y2=y6=0; y3=y7=oben;
+ x4=x6=x7=3/4width;
+ x5=x6-1/8width;
+ y5=2hp;
+ y4=8hp;
+ x8=rer; y8=9hp;
+ x9=x10=hm;
+ y9=7hp;
+ y10=5.5hp;
+ x11=x2; x12=x6;
+ y11=y12=4hp;
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6--z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def BBY =
+ lb:=3wp;
+ rb:=13wp;
+ Z(lb,oben,rb,0);
+ lb=x1=x2;
+ rb=x3=x4;
+ y1=0;
+ y2=3hp;
+ y3=oben;
+ y4=7hp;
+
+ getpen;
+ draw z1--z2; draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(63, charwidth#,height#+2hp#,depth#);
+ "The syllable BBYX";
+ eyebrow;
+ BBY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(64, charwidth#,height#+2hp#,depth#);
+ "The syllable BBY";
+ BBY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(65, charwidth#,height#+2hp#,depth#);
+ "The syllable BBYP";
+ Z(lir,oben,rer,0);
+ x1=lir; x2=x3=hm; x4=rer;
+ y1=8hp;
+ y2=6hp;
+ y3=4hp;
+ y4=2hp;
+ getpen;
+ draw z1--z2; draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(66, charwidth#,height#+2hp#,depth#);
+ "The syllable CIT";
+ x2=x3=1/4width;
+ y2=y6=0; y3=y7=oben;
+ x4=x6=x7=3/4width;
+ y4=8hp;
+ x8=rer; y8=9hp;
+ x9=x10=hm;
+ y9=7hp;
+ y10=5hp;
+ getpen;
+ draw z2--z3--z4;
+ draw z6--z7--z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CI =
+ x1=x2=hm;
+ x3=rer=x5;
+ x4=lir;
+ y1=0;
+ y2=oben;
+ y3=8hp;
+ y4=y5=5hp;
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(67, charwidth#,height#+2hp#,depth#);
+ "The syllable CIX";
+ eyebrow;
+ CI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(68, charwidth#,height#+2hp#,depth#);
+ "The syllable CI";
+ CI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(69, charwidth#,height#+2hp#,depth#);
+ "The syllable CIP";
+ Sanduhr(lir,oben,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(70, charwidth#,height#+2hp#,depth#);
+ "The syllable CIET";
+ Z(6wp,7hp,10wp,2hp);
+ x1=lir; y1=2hp;
+ x2=x3=1/4width;
+ y2=y6=0; y3=y7=oben;
+ x4=x6=x7=3/4width;
+ y4=8hp;
+ x8=rer; y8=9hp;
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z6--z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CIE =
+ Oh(lir,oben,11wp,0);
+ x1=11wp;
+ x2=x3=rer;
+ y1=5hp;
+ y2=6.5hp;
+ y3=8.5hp;
+
+ getpen;
+ draw z1..z2---z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(71, charwidth#,height#+2hp#,depth#);
+ "The syllable CIEX";
+ eyebrow;
+ CIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(72, charwidth#,height#+2hp#,depth#);
+ "The syllable CIE";
+ CIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(73, charwidth#,height#+2hp#,depth#);
+ "The syllable CIEP";
+ Oh(lir,6hp,rer,0);
+ x1=lir; x2=x5=rer;
+ x3=x4=hm;
+ y3=6hp;
+ y4=oben;
+ y5=8hp;
+ y6=0;
+ y1=y2=1/2[y3,y6];
+ getpen;
+ draw z1--z2;
+ draw z3--z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(74, charwidth#,height#+2hp#,depth#);
+ "The syllable CAT";
+ Oh(lir,oben,rer,0);
+ % Z(5wp,8hp,11wp,2hp);
+ x1=x2=x3=9wp;
+ x4=x5=5wp;
+ y1=8hp;
+ y2=y4-2hp=5hp;
+ y3=y5-2hp=2hp;
+
+ getpen;
+ draw z1--z3--z5;
+ draw z2--z4;
+
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CA =
+ Oh(lir,oben,rer,0);
+ Z(5wp,8hp,11wp,2hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(75, charwidth#,height#+2hp#,depth#);
+ "The syllable CAX";
+ eyebrow;
+ CA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(76, charwidth#,height#+2hp#,depth#);
+ "The syllable CA";
+ CA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(77, charwidth#,height#+2hp#,depth#);
+ "The syllable CAP";
+ Sichel(lir,oben,11wp,0);
+ Z(3wp,8hp,9wp,3.5hp);
+ x1=11wp;
+ x2=x3=rer;
+ y1=5hp;
+ y2=6.5hp;
+ y3=8.5hp;
+
+ getpen;
+ draw z1..z2---z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CUO =
+ Z(4wp,oben,12wp,0);
+
+ x1=x2=x3=hm;
+ y1=1/4[oben,0];
+ y2=2/4[oben,0];
+ y3=3/4[oben,0];
+ getpen;
+ draw z1{right}..{left}z2{left}..{right}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(78, charwidth#,height#+2hp#,depth#);
+ "The syllable CUOX";
+ eyebrow;
+ CUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(79, charwidth#,height#+2hp#,depth#);
+ "The syllable CUO";
+ CUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(80, charwidth#,height#+2hp#,depth#);
+ "The syllable CUOP";
+ x1=x4=lir;
+ x2=x3=rer;
+ y1=y3=oben;
+ y2=y4=0;
+ x5=x6=hm;
+ y5=3.5hp;
+ y6=1hp;
+ getpen;
+ draw z1..{down}z2;
+ draw z3..{down}z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(81, charwidth#,height#+2hp#,depth#);
+ "The syllable COT";
+ U(5wp,oben,12wp,0);
+ z1=(lir,4hp);
+ z2=(3wp,3.5hp);
+ z3=(x2,6hp);
+ z4=(rer,vm);
+ z5=(x4,9.5hp);
+ z6=(x4,1hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CO =
+ Otense(6wp,oben,12wp,0,1.1);
+ z1=(lir,4hp);
+ z2=(4wp,3.5hp);
+ z3=(x2,6hp);
+ z4=(rer,y1);
+ z5=(x4,8hp);
+ z6=(x4,2hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(82, charwidth#,height#+2hp#,depth#);
+ "The syllable COX";
+ eyebrow;
+ CO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(83, charwidth#,height#+2hp#,depth#);
+ "The syllable CO";
+ CO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(84, charwidth#,height#+2hp#,depth#);
+ "The syllable COP";
+ Oh(4wp,oben,11wp,0);
+
+ x13=lir;
+ x14=x15=x16=rer;
+
+ y13=y14=5hp;
+ y15=oben;
+ y16=0;
+
+ getpen;
+
+ draw z13--z14; %Horizontale
+ draw z15--z16; %Vertikale
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CE =
+ Oh(lir,oben,rer,0);
+ x1=x3=6wp;
+ x2=x1+1wp;
+ y1=8hp;
+ y3=2hp;
+ y2=1/2[y1,y3];
+ getpen;
+ draw z1..{left}z2&z2{right}..z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(85, charwidth#,height#+2hp#,depth#);
+ "The syllable CEX";
+ eyebrow;
+ CE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(86, charwidth#,height#+2hp#,depth#);
+ "The syllable CE";
+ CE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(87, charwidth#,height#+2hp#,depth#);
+ "The syllable CEP";
+ Busen(lir,oben,rer,6.5hp);
+ Busen(lir,3.5hp,rer,0);
+ x1=x2=1/4[lir,rer]; x3=x4=3/4[lir,rer];
+ y1=y3=5hp;
+ y2=y4=3hp;
+ getpen;
+ draw z1--z2; draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(88, charwidth#,height#+2hp#,depth#);
+ "The syllable CUT";
+ hip=12wp; %Hilfsliniengeber
+ Oh(5wp,oben,hip,0);
+ x13=hip;
+ x10=x12=1.5/8width;
+ x11=5wp;
+ x14=x15=x16=rer;
+
+ y11=y13=y14=5hp;
+ y15=9hp;
+ y10=19/24height;
+ y12=y16-1/24height=1/24height;
+
+ getpen;
+ draw z10..tension 1.2..{z13-z11}z11
+ & z11{z11-z13}..tension 1.2..z12;
+
+ draw z13--z14; %Horizontale
+ draw z15--z16; %Vertikale
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CU =
+ x1=x5=x9=x10=lir;
+ x2=x3=x4=12wp;
+ x6=x7=x8=rer;
+ y1=y4=oben;
+ y2=0;
+ y3=y7=1/2[y2,y4];
+ y5=0;
+ y6=3hp;
+ y8=7hp;
+ y9=6hp;
+ y10=4hp;
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6--z8; draw z3--z7;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(89, charwidth#,height#+2hp#,depth#);
+ "The syllable CUX";
+ eyebrow;
+ CU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(90, charwidth#,height#+2hp#,depth#);
+ "The syllable CU";
+ CU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(91, charwidth#,height#+2hp#,depth#);
+ "The syllable CUP";
+ z1=(lir+1wp,0);
+ z2=(lir+1wp,3hp);
+ z3=(hm+2wp,2hp);
+ z4=(hm+2wp,oben);
+ z5=(rer,8.5hp);
+ z6=(lir,oben);
+ z7=(x4,6hp);
+ z8=(1/2[x1,x3],8hp);
+ z9=(x3,y8);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6{down}..{right}z7;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CUR =
+ hip:=10wp; %Hilfsliniengeber
+ Oh(2wp,oben,hip,0);
+ x13:=hip;
+ x14=x15=x16=rer;
+
+ y13=y14=5hp;
+ y15=9hp;
+ y16-1/24height=1/24height;
+
+ getpen;
+ draw z13--z14; %Horizontale
+ draw z15--z16; %Vertikale
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(92, charwidth#,height#+2hp#,depth#);
+ "The syllable CURX";
+ eyebrow;
+ CUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(93, charwidth#,height#+2hp#,depth#);
+ "The syllable CUR";
+ CUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(94, charwidth#,height#+2hp#,depth#);
+ "The syllable CYT";
+ x1=x4=x5=lir;
+ x2=x3=x6=rer;
+ y1=y3=oben;
+ y2=1/3[y6,y3];
+ y4=y6=0;
+ y5=2/3[y6,y3];
+ getpen;
+ draw z1--z2--z3; draw z4--z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CY =
+ X(3wp,oben,13wp,0);
+ x21=x22=13wp;
+ y21=7hp;
+ y22=3hp;
+ getpen;
+ draw z21--z22;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(95, charwidth#,height#+2hp#,depth#);
+ "The syllable CYX";
+ eyebrow;
+ CY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(96, charwidth#,height#+2hp#,depth#);
+ "The syllable CY";
+ CY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(97, charwidth#,height#+2hp#,depth#);
+ "The syllable CYP";
+ Z(3wp,oben,13wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CYR =
+ X(lir,oben,rer,vm);
+ z1=(lir,3hp);
+ z2=(rer,y1);
+ z3=(hm,6hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2; draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(98, charwidth#,height#+2hp#,depth#);
+ "The syllable CYRX";
+ eyebrow;
+ CYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(99, charwidth#,height#+2hp#,depth#);
+ "The syllable CYR";
+ CYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(100, charwidth#,height#+2hp#,depth#);
+ "The syllable CHAT";
+ x1=x2=hm;
+ x3=rer;
+ x4=lir;
+ y1=0;
+ y2=oben;
+ y3=8hp;
+ z5=(lir,1hp);
+ z6=(rer-1wp,7hp);
+ z7=(lir+1wp,y6);
+ z8=(rer,y5);
+ getpen;
+ draw z1--z2--z3;
+ draw z5--z6--z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CHA =
+ Oh(3wp,8hp,13wp,4.5hp);
+ z1=(hm,0);
+ z2=(x1,oben);
+ z3=(rer,8hp);
+ z4=(lir,0);
+ z5=(hm,3.5hp);
+ z6=(rer,0);
+ getpen;
+ draw z1--z2--z3;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(101, charwidth#,height#+2hp#,depth#);
+ "The syllable CHAX";
+ eyebrow;
+ CHA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(102, charwidth#,height#+2hp#,depth#);
+ "The syllable CHA";
+ CHA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(103, charwidth#,height#+2hp#,depth#);
+ "The syllable CHAP";
+ Oh(4wp,9hp,12wp,4.5hp);
+ z1=(hm,0);
+ z2=(x1,6hp);
+ z3=(rer,8hp);
+ z4=(lir,0);
+ z5=(hm,3.5hp);
+ z6=(rer,0);
+ z7=(x1,y3);
+ z8=(x1,oben);
+ getpen;
+ draw z1--z2;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(104, charwidth#,height#+2hp#,depth#);
+ "The syllable CHUOT";
+ x1=lir; y1=2hp;
+ x2=x3=lir;
+ y2=y6=0; y3=y7=9hp;
+ x4=x6=x7=10wp;
+ x5=x6-1/8width;
+ y5=2hp;
+ y4=y3-1.5hp;
+ x8=3/4width; y8=y7-1hp;
+ x9=x10=1/2[x2,x6];
+ y9=6.5hp;
+ y10=5.5hp;
+ x11=x2; x12=x6;
+ y11=y12=4hp;
+ z13=(rer,oben);
+ z14=(rer,6hp);
+ getpen;
+ draw z2--z3--z4;
+ draw z6--z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+ draw z13..z8..z14;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CHUO =
+ Z(lir,oben,hm,0);
+ Z(hm,oben,rer,0);
+ x1=lir+1wp;
+ x2+1wp=x3=hm;
+ x4=1/2[hm,rer];
+ y1=y3=6hp;
+ y2=4hp;
+ y4=5hp;
+ getpen;
+ draw z1--z2; draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(105, charwidth#,height#+2hp#,depth#);
+ "The syllable CHUOX";
+ eyebrow;
+ CHUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(106, charwidth#,height#+2hp#,depth#);
+ "The syllable CHUO";
+ CHUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(107, charwidth#,height#+2hp#,depth#);
+ "The syllable CHUOP";
+ x1=x5=lir;
+ x2=x3=x4=3/4width;
+ x6=rer;
+ x7=x8=x9=x10=hm-1wp;
+ y1=y4=9hp;
+ y2=y5=1hp;
+ y3=y6=1/2[y2,y4];
+ y7=oben;
+ y8=1/8[oben,0];
+ y9=7/8[oben,0];
+ y10=0;
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z3--z6;
+ draw z7--z8; draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(108, charwidth#,height#+2hp#,depth#);
+ "The syllable CHOT";
+ Z(lir,oben,1/2width,0);
+ Z(1/2width,oben,rer,0);
+ x1=1/2[lir,hm];
+ x2=1/2[rer,hm];
+ y1=y2=5hp;
+ x3=x4=x5=x6=hm;
+ y3=7hp;
+ y4=6hp;
+ y5=4hp;
+ y6=3hp;
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CHO =
+ N(lir,oben,rer,7hp);
+ N(lir,vm,rer,2hp);
+ x1=x2=hm;
+ y1=1/2[oben,7hp];
+ y2=0;
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(109, charwidth#,height#+2hp#,depth#);
+ "The syllable CHOX";
+ eyebrow;
+ CHO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(110, charwidth#,height#+2hp#,depth#);
+ "The syllable CHO";
+ CHO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(111, charwidth#,height#+2hp#,depth#);
+ "The syllable CHOP";
+ Z(lir,oben,hm,0);
+ Z(hm,oben,rer,0);
+ x1=1/2[lir,hm];
+ x2=1/2[rer,hm];
+ y1=y2=5hp;
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(112, charwidth#,height#+2hp#,depth#);
+ "The syllable CHET";
+ z1=(hm,oben);
+ z2=(x1,0);
+ z5=(lir,1hp);
+ z6=(rer-1wp,oben);
+ z7=(lir+1wp,y6);
+ z8=(rer,y5);
+ z11=(x7,7hp);
+ z12=(x7,vm);
+ z13=(x6,7hp);
+ z14=(x6,vm);
+ getpen;
+ draw z1--z2;
+ draw z5--z6--z7--z8;
+ draw z11--z12;
+ draw z13--z14;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CHE =
+ z1=(hm,3hp);
+ z2=(x1,0);
+ z3=(lir,6hp);
+ z4=(rer,y3);
+ z5=(lir,1hp);
+ z6=(rer-1wp,oben);
+ z7=(lir+1wp,y6);
+ z8=(rer,y5);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6--z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(113, charwidth#,height#+2hp#,depth#);
+ "The syllable CHEX";
+ eyebrow;
+ CHE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(114, charwidth#,height#+2hp#,depth#);
+ "The syllable CHE";
+ CHE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(115, charwidth#,height#+2hp#,depth#);
+ "The syllable CHEP";
+ N(lir,7.5hp,rer,4.5hp);
+ z1=(hm,3hp);
+ z2=(x1,0);
+ z5=(lir,1hp);
+ z6=(rer-1wp,oben);
+ z7=(lir+1wp,y6);
+ z8=(rer,y5);
+ getpen;
+ draw z1--z2;
+ draw z5--z6--z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CHU =
+ linie:=9wp;
+ Oh(lir,oben,linie,0);
+ z1=(1/2[lir,linie],6hp);
+ z2=(x1,4hp);
+ z3=(linie,y1);
+ z4=(rer,y1);
+ z5=(linie,y2);
+ z6=(rer,y2);
+ z7=(rer,8hp);
+ z8=(rer,2hp);
+ z9=(1/2[linie,rer],8hp);
+ z10=(x9,2hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(116, charwidth#,height#+2hp#,depth#);
+ "The syllable CHUX";
+ eyebrow;
+ CHU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(117, charwidth#,height#+2hp#,depth#);
+ "The syllable CHU";
+ CHU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(118, charwidth#,height#+2hp#,depth#);
+ "The syllable CHUP";
+ linie:=9wp;
+ Oh(lir,oben,linie,0);
+ z1=(1/2[lir,linie],6hp);
+ z2=(x1,4hp);
+ z3=(linie,y1);
+ z4=(rer,y1);
+ z5=(linie,y2);
+ z6=(rer,y2);
+ z7=(1/2[linie,rer],9hp);
+ z8=(x7,7hp);
+ z9=(x7,3hp);
+ z10=(x7,1hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CHUR =
+ Z(lir,oben,7wp,1hp);
+ z1=(rer-1wp,oben);
+ z2=(x1,8hp);
+ z3=(9wp,9hp);
+ z4=(9wp,1hp);
+ z5=(x1,2hp);
+ z6=(x1,0);
+ z7=(lir,1/2[oben,1hp]);
+ z8=(7wp,y7);
+ getpen;
+ draw z1--z2--z3--z4--z5--z6;
+ draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(119, charwidth#,height#+2hp#,depth#);
+ "The syllable CHURX";
+ eyebrow;
+ CHUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(120, charwidth#,height#+2hp#,depth#);
+ "The syllable CHUR";
+ CHUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(121, charwidth#,height#+2hp#,depth#);
+ "The syllable CHYT";
+ z1=(hm,0);
+ z2=(x1,9hp);
+ z3=(3/4width,8hp);
+ z4=(x3,oben);
+ z5=(lir,2hp);
+ z6=(lir,4.5hp);
+ z7=(rer,y6);
+ z8=(lir,oben);
+ z9=(hm-1wp,8hp);
+ z10=(lir,6hp);
+ z11=(lir,8.5hp);
+ z12=(lir,7.5hp);
+ getpen;
+ draw z5--z1--z2--z3--z4;
+ draw z6--z7;
+ draw z8{right}..tension 1.5..z9..tension 1.5..{left}z10;
+ draw z11--z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CHY =
+ N(lir,oben,rer,7hp);
+ Oh(lir+1wp,vm,rer-1wp,0);
+ x1=x2=hm;
+ y1=1/2[oben,7hp];
+ y2=5hp;
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(122, charwidth#,height#+2hp#,depth#);
+ "The syllable CHYX";
+ eyebrow;
+ CHY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(123, charwidth#,height#+2hp#,depth#);
+ "The syllable CHY";
+ CHY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(124, charwidth#,height#+2hp#,depth#);
+ "The syllable CHYP";
+ z1=(rer,oben);
+ z2=(rer,0);
+ z3=(5wp,2hp);
+ z4=(lir,1/2[y6,y7]); % Horizontaler Balken
+ z5=(3/4width,y4); % Vertikaler Balken
+ z6=(1/2[x4,x5],oben);
+ z7=(x6,3hp);
+ % Linke kleine Striche
+ z8=(2/5[lir,x6],9.5hp);
+ z9=(x8,7.5hp);
+ z10=(x8,5.5hp);
+ z11=(x8,3.5hp);
+ % Rechte kleine Striche
+ z12=(3/5[x6,x5],y8);
+ z13=(x12,y9);
+ z14=(x12,y10);
+ z15=(x12,y11);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+ draw z8--z9;
+ draw z10--z11;
+ draw z12--z13;
+ draw z14--z15;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def CHYR =
+ z1=(hm,0);
+ z2=(x1,9hp);
+ z3=(13wp,8hp);
+ z4=(x3,oben);
+ z6=(lir,4.25hp);
+ z7=(rer,y6);
+ z13=(lir,2.25hp);
+ z14=(rer,y13);
+ z8=(lir,oben);
+ z9=(hm-1wp,8hp);
+ z10=(lir,6hp);
+ z11=(lir,8.5hp);
+ z12=(lir,7.5hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z6--z7;
+ draw z8{right}..tension 1.5..z9..tension 1.5..{left}z10;
+ draw z11--z12;
+ draw z13--z14;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(125, charwidth#,height#+2hp#,depth#);
+ "The syllable CHYRX";
+ eyebrow;
+ CHYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(126, charwidth#,height#+2hp#,depth#);
+ "The syllable CHYR";
+ CHYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(127, charwidth#,height#+2hp#,depth#);
+ "The syllable DIT";
+ N(lir,9hp,2/4width,1/2height);
+ N(lir,4hp,2/4width,1hp);
+ x10=x11=x13=5/8width;
+ y10=oben;
+ y11=0;
+ x12=x14=6/8width;
+ y12=9hp;
+ y14=1hp;
+ y13=1/2[y12,y14];
+ y20=y21=0;
+ x20=0; x21=1;
+ getpen;
+ draw z10--z11;
+ draw z12..{z20-z21}z13&z13{z21-z20}..z14;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DI =
+ z1=(lir+1wp,0);
+ z2=(lir+1wp,3hp);
+ z3=(hm+2wp,2hp);
+ z4=(hm+2wp,oben);
+ z5=(rer,8.5hp);
+ z6=(lir,8hp);
+ z7=(12/32width,7hp);
+ z8=(5wp,oben);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6..tension 1.5..z7..tension 1.6..z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(128, charwidth#,height#+2hp#,depth#);
+ "The syllable DIX";
+ eyebrow;
+ DI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(129, charwidth#,height#+2hp#,depth#);
+ "The syllable DI";
+ DI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(130, charwidth#,height#+2hp#,depth#);
+ "The syllable DIP";
+ Blitz(3/8width,oben,5/8width,7.5hp);
+ Busen(lir,7.5hp,rer,4hp);
+ z1=(5wp,4hp);
+ z2=(hm,0);
+ z3=(11wp,y1);
+ z4=(hm,3hp);
+ z5=(x4,2hp);
+ getpen;
+ draw z1{down}..z2..{up}z3;
+ draw z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DIE =
+ Z(lir,7hp,4/8width,0);
+ x1=x3=x4=x6=rer;
+ x2=4/8width;
+ x5=11wp;
+ y1=oben;
+ y2=y5=y7=y8=5hp;
+ y4=8hp;
+ y6=2hp;
+ y3=0;
+
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(131, charwidth#,height#+2hp#,depth#);
+ "The syllable DIEX";
+ eyebrow;
+ DIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(132, charwidth#,height#+2hp#,depth#);
+ "The syllable DIE";
+ DIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(133, charwidth#,height#+2hp#,depth#);
+ "The syllable DIEP";
+ N(lir,7hp,rer,3hp);
+ X(1/4width,oben,3/4width,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(134, charwidth#,height#+2hp#,depth#);
+ "The syllable DAT";
+ U(lir,oben,9wp,0);
+ z1=(lir,vm);
+ z2=(rer,y1);
+ z3=(1/2[9wp,rer],9hp);
+ z4=(x3,6hp);
+ z5=(x3,4hp);
+ z6=(x3,1hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DA =
+ z1=(lir,oben);
+ z2=(rer,0);
+ z3=(rer,oben);
+ z4=(lir,0);
+ x5=x6=lir;
+ y5=7hp;
+ y6=3hp;
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(135, charwidth#,height#+2hp#,depth#);
+ "The syllable DAX";
+ eyebrow;
+ DA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(136, charwidth#,height#+2hp#,depth#);
+ "The syllable DA";
+ DA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(137, charwidth#,height#+2hp#,depth#);
+ "The syllable DAP";
+ Z(lir,7hp,3/8width,3hp);
+ z1=(1/4width,oben);
+ z2=(rer,0);
+ z3=(rer,oben);
+ z4=(x1,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DUO =
+ z1=(rer-1wp,oben);
+ z2=(x1,0);
+ z3=(3wp,2hp);
+ z4=(5/8width,9hp);
+ z5=(x4,3hp);
+ z6=(lir,vm);
+ z7=(lir,6.5hp);
+ z8=(lir,3.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+ draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(138, charwidth#,height#+2hp#,depth#);
+ "The syllable DUOX";
+ eyebrow;
+ DUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(139, charwidth#,height#+2hp#,depth#);
+ "The syllable DUO";
+ DUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(140, charwidth#,height#+2hp#,depth#);
+ "The syllable DOT";
+ Oh(lir,9hp,rer,0);
+ x10=x20=hm;
+ y10=11hp;
+ y20=7hp;
+ getpen;
+ draw z10--z20;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DO =
+ z1=(lir+1wp,0);
+ z2=(lir+1wp,3hp);
+ z3=(hm+1wp,2hp);
+ z4=(hm+1wp,oben);
+ z5=(rer,8.5hp);
+ z6=(x1,6hp);
+ z7=(rer,y6);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6--z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(141, charwidth#,height#+2hp#,depth#);
+ "The syllable DOX";
+ eyebrow;
+ DO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(142, charwidth#,height#+2hp#,depth#);
+ "The syllable DO";
+ DO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(143, charwidth#,height#+2hp#,depth#);
+ "The syllable DOP";
+ Z(lir,oben,rer,0);
+ x1=lir; x2=rer;
+ getpen;
+ y1=y2=5hp;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DE =
+ Z(1/4width,oben,3/4width,0);
+ Sanduhr(lir,7hp,rer,3hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(144, charwidth#,height#+2hp#,depth#);
+ "The syllable DEX";
+ eyebrow;
+ DE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(145, charwidth#,height#+2hp#,depth#);
+ "The syllable DE";
+ DE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(146, charwidth#,height#+2hp#,depth#);
+ "The syllable DEP";
+ N(lir,oben,rer,6.5hp);
+ z1=(hm,1/2[oben,6.5hp]);
+ z2=(x1,0);
+ z3=(lir,1/24height);
+ z4=(x1,vm);
+ z5=(rer,y3);
+ getpen;
+ draw z1--z2;
+ draw z3{up}..z4..{down}z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(147, charwidth#,height#+2hp#,depth#);
+ "The syllable DUT";
+ z1=(rer,oben);
+ z2=(rer,0);
+ z3=(5wp,1.5hp);
+ z4=(1/4width,oben);
+ z5=(hm-1wp,1/2[y4,y6]);
+ z6=(x4,3hp);
+ z7=(11wp,1/2[y4,y5]);
+ z8=(x7,1/2[y5,y6]);
+ getpen;
+ draw z1--z2--z3;
+ draw z4{left}..{right}z5&z5{left}..{right}z6;
+ draw z7{left}..{right}z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DU =
+ z1=(3/4width,oben);
+ z2=(hm,7.5hp);
+ z3=(2wp,9hp);
+ z4=(5wp,oben);
+ z5=(x2,3/24height);
+ z6=(13wp,y5);
+ z7=(4wp,6hp);
+ z8=(x7,3.5hp);
+ z9=(x2,y7);
+ z10=(x6,y7);
+ z11=(x2,y8);
+ z12=(x6,y8);
+ getpen;
+ draw z1..z2..z3..z4..z2---z5{down}..{up}z6;
+ draw z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(148, charwidth#,height#+2hp#,depth#);
+ "The syllable DUX";
+ eyebrow;
+ DU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(149, charwidth#,height#+2hp#,depth#);
+ "The syllable DU";
+ DU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(150, charwidth#,height#+2hp#,depth#);
+ "The syllable DUP";
+ Oh(lir,oben,rer,vm);
+ z1=(hm,vm);
+ z2=(x1,2hp);
+ z3=(5/8width,0);
+ z4=(rer,0);
+ z5=(x1,3hp);
+ z6=(rer,y5);
+ getpen;
+ draw z1--z2{down}..{right}z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DUR =
+ x1=x2=hm;
+ x3=rer=x5;
+ x4=lir;
+ x6=x7=4wp;
+ y1=0;
+ y2=oben;
+ y3=8hp;
+ y4=y5=5hp;
+ y6=3.5hp;
+ y7=1.5hp;
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(151, charwidth#,height#+2hp#,depth#);
+ "The syllable DURX";
+ eyebrow;
+ DUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(152, charwidth#,height#+2hp#,depth#);
+ "The syllable DUR";
+ DUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(153, charwidth#,height#+2hp#,depth#);
+ "The syllable DDIT";
+ N(lir,oben,rer,6hp);
+ z1=(hm,1/2[oben,6hp]);
+ z2=(x1,0);
+ z3=(3wp,4.5hp);
+ z4=(13wp,y3);
+ z5=(x3,1.5hp);
+ z6=(x4,y5);
+ getpen;
+ draw z1--z2;
+ draw z3--z5;
+ draw z4--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DDI =
+ Z(1/4width,oben,3/4width,0);
+ z1=(lir,oben);
+ z2=(5wp,8.5hp);
+ z3=(lir,8hp);
+ z4=(x2,6.5hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(154, charwidth#,height#+2hp#,depth#);
+ "The syllable DDIX";
+ eyebrow;
+ DDI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(155, charwidth#,height#+2hp#,depth#);
+ "The syllable DDI";
+ DDI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(156, charwidth#,height#+2hp#,depth#);
+ "The syllable DDIP";
+ N(lir,9hp,rer,vm);
+ z1=(hm,oben);
+ z2=(x1,0);
+ z3=(3wp,3hp);
+ z4=(13wp,y3);
+ z5=(x3,0);
+ z6=(x4,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DDIE =
+ H(lir,9hp,rer,vm);
+ z1=(hm,oben);
+ z2=(x1,0);
+ z3=(3wp,3hp);
+ z4=(13wp,y3);
+ z5=(x3,0);
+ z6=(x4,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(157, charwidth#,height#+2hp#,depth#);
+ "The syllable DDIEX";
+ eyebrow;
+ DDIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(158, charwidth#,height#+2hp#,depth#);
+ "The syllable DDIE";
+ DDIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(159, charwidth#,height#+2hp#,depth#);
+ "The syllable DDIEP";
+ H(lir,9hp,rer,6.5hp);
+ z1=(hm,oben);
+ z2=(x1,0);
+ z3=(lir,1/24height);
+ z4=(x1,vm);
+ z5=(rer,y3);
+ getpen;
+ draw z1--z2;
+ draw z3{up}..z4..{down}z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(160, charwidth#,height#+2hp#,depth#);
+ "The syllable DDAT";
+ gong(lir,oben,rer,0);
+ Oh(lir,8hp,rer,2hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DDA =
+ z1=(hm,oben-1/24height);
+ z2=(x1,0);
+ z3=(3wp,2.5hp);
+ z4=(13wp,y3);
+ z5=(x3,0);
+ z6=(x4,0);
+ z7=(x3,y1);
+ z8=(x4,y1);
+ z11=(lir,4hp);
+ z12=(rer,8hp);
+ z13=(rer,y11);
+ z14=(lir,y12);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ draw z11--z12--z13--z14;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(161, charwidth#,height#+2hp#,depth#);
+ "The syllable DDAX";
+ eyebrow;
+ DDA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(162, charwidth#,height#+2hp#,depth#);
+ "The syllable DDA";
+ DDA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(163, charwidth#,height#+2hp#,depth#);
+ "The syllable DDAP";
+ N(lir,6.5hp,rer,3.5hp);
+ z1=(hm,oben);
+ z2=(x1,0);
+ z3=(3wp,2.5hp);
+ z4=(13wp,y3);
+ z5=(x3,0);
+ z6=(x4,0);
+ z7=(x3,oben);
+ z8=(x4,oben);
+ z9=(x3,7.5hp);
+ z10=(x4,y9);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DDUO =
+ Oh(lir,7hp,rer,0);
+ x10=lir;
+ x11=rer;
+ y10=y11=y12=oben-1/24height;
+ x12=x13=hm;
+ y13=7hp;
+
+ getpen;
+ draw z10--z11; draw z12--z13;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(164, charwidth#,height#+2hp#,depth#);
+ "The syllable DDUOX";
+ eyebrow;
+ DDUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(165, charwidth#,height#+2hp#,depth#);
+ "The syllable DDUO";
+ DDUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(166, charwidth#,height#+2hp#,depth#);
+ "The syllable DDUOP";
+ x1=x5=x7=lir;
+ x2=x6=x8=rer;
+ x3=x4=hm;
+ y1=y2=y3=oben;
+ y4=y6=y7=8hp;
+ y5=y8=0;
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6--z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(167, charwidth#,height#+2hp#,depth#);
+ "The syllable DDOT";
+ z1=(3wp,7.25hp);
+ z2=(13wp,y1);
+ z3=(hm,oben);
+ z4=(x3,3hp);
+ z5=(lir,5.5hp);
+ z6=(hm,3hp);
+ z7=(rer,y5);
+ z8=(x2,8.5hp);
+ z9=(x8,oben);
+ z15=(x1,1.5hp);
+ z16=(x1,0);
+ z17=(hm,y15);
+ z18=(hm,0);
+ z19=(x2,y15);
+ z20=(x2,0);
+ getpen;
+ %draw z1--z2;
+ draw z8--z3--z4;
+ draw z5..z6..z7;
+ draw z15--z16;
+ draw z17--z18;
+ draw z19--z20;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DDO =
+ U(lir,oben,rer,3hp);
+ z1=(lir,7.5hp);
+ z2=(rer,y1);
+ z3=(hm,oben);
+ z4=(hm,3hp);
+ z5=(lir,1.5hp);
+ z6=(lir,0);
+ z7=(hm,y5);
+ z8=(hm,0);
+ z9=(rer,y5);
+ z10=(rer,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(168, charwidth#,height#+2hp#,depth#);
+ "The syllable DDOX";
+ eyebrow;
+ DDO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(169, charwidth#,height#+2hp#,depth#);
+ "The syllable DDO";
+ DDO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(170, charwidth#,height#+2hp#,depth#);
+ "The syllable DDOP";
+ z1=(3wp,7.25hp);
+ z2=(13wp,y1);
+ z3=(hm,oben);
+ z4=(x3,4.5hp);
+ z5=(lir,5.5hp);
+ z6=(hm,3hp);
+ z7=(rer,y5);
+ z8=(x2,8.5hp);
+ z9=(x8,oben);
+ z15=(x1,1.5hp);
+ z16=(x1,0);
+ z17=(hm,y15);
+ z18=(hm,0);
+ z19=(x2,y15);
+ z20=(x2,0);
+ getpen;
+ draw z1--z2;
+ draw z9--z8--z3--z4;
+ draw z5..z6..z7;
+ draw z15--z16;
+ draw z17--z18;
+ draw z19--z20;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DDE =
+ z1=(lir,oben);
+ z2=(3/4width,vm);
+ z3=(lir,0);
+ z4=(rer,oben);
+ z5=(1/4width,y2);
+ z6=(rer,0);
+ z7=(hm,6hp);
+ z8=(x7,4hp);
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+ draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(171, charwidth#,height#+2hp#,depth#);
+ "The syllable DDEX";
+ eyebrow;
+ DDE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(172, charwidth#,height#+2hp#,depth#);
+ "The syllable DDE";
+ DDE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(173, charwidth#,height#+2hp#,depth#);
+ "The syllable DDEP";
+ % z1 .. z5 : "d"
+ z1=(rer,8hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ z6=(lir,8hp);
+ z7=(5wp,7hp);
+ z8=(x7,oben);
+ draw z6--z7--z8;
+ z9=(x7,1/2[y7,y8]);
+ z10=(x2,y9);
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(174, charwidth#,height#+2hp#,depth#);
+ "The syllable DDUT";
+ Sanduhr(lir,oben,3/4width,0);
+ x5=1/2[lir,3/4width];
+ y5=1/2[oben,0];
+ z6=(rer,y5);
+ z7=(rer,7hp);
+ z8=(rer,3hp);
+ getpen;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DDU =
+ Liane(lir,19/24height,rer,6hp);
+ z1=(hm,oben);
+ z2=(x1,0);
+ z6=(1/4width,vm);
+ z7=(x6,2.5hp);
+ getpen;
+ draw z1--z2;
+ draw z6--z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(175, charwidth#,height#+2hp#,depth#);
+ "The syllable DDUX";
+ eyebrow;
+ DDU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(176, charwidth#,height#+2hp#,depth#);
+ "The syllable DDU";
+ DDU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(177, charwidth#,height#+2hp#,depth#);
+ "The syllable DDUP";
+ z1=(10wp,oben);
+ z2=(x1,0);
+ z3=(lir,1/4[y1,0]);
+ z4=(x1,2/4[y1,0]);
+ z5=(lir,3/4[y1,0]);
+ z6=(rer,y4);
+ z7=(rer,8.25hp);
+ z8=(rer,1.75hp);
+ getpen;
+ draw z1--z2&z2{left}..z5..{right}z4&z4{left}..z3..{right}z1;
+ draw z4--z6; draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def DDUR =
+ U(lir,oben,rer,0);
+ z1=(hm,oben);
+ z2=(hm,0);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(178, charwidth#,height#+2hp#,depth#);
+ "The syllable DDURX";
+ eyebrow;
+ DDUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(179, charwidth#,height#+2hp#,depth#);
+ "The syllable DDUR";
+ DDUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(180, charwidth#,height#+2hp#,depth#);
+ "The syllable FIT";
+ Arsch(lir+1wp,oben,rer-1wp,0);
+ z1=(lir,7.5hp);
+ z2=(6wp,y1);
+ z3=(10wp,y1);
+ z4=(rer,y1);
+ z5=(lir,6hp);
+ z6=(6wp,y5);
+ z7=(10wp,y5);
+ z8=(rer,y5);
+ getpen;
+ draw z1--z2; draw z3--z4;
+ draw z5--z6; draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def FI =
+ Z(lir+1wp,oben,rer-1wp,0);
+ z1=(lir+1wp,8hp);
+ z2=(x1,vm);
+ z3=(x1,1/2[y1,y2]);
+ z4=(hm,y3);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(181, charwidth#,height#+2hp#,depth#);
+ "The syllable FIX";
+ eyebrow;
+ FI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(182, charwidth#,height#+2hp#,depth#);
+ "The syllable FI";
+ FI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(183, charwidth#,height#+2hp#,depth#);
+ "The syllable FIP";
+ z1=(lir+1wp,0);
+ z2=(lir+1wp,3hp);
+ z3=(hm+1wp,2hp);
+ z4=(hm+1wp,oben);
+ z5=(rer,8.5hp);
+ z6=(lir,8hp);
+ z7=(lir,vm);
+ z8=(lir,6.5hp);
+ z9=(x3,6.5hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6--z7; draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(184, charwidth#,height#+2hp#,depth#);
+ "The syllable FAT";
+ Oh(6wp,9hp,10wp,6hp);
+ Oh(6wp,4hp,10wp,1hp);
+ x1=lir; y1=2hp;
+ x2=x3=1/4width;
+ y2=y6=0; y3=y7=oben;
+ x4=x6=x7=3/4width;
+ y4=8hp;
+ x8=rer; y8=8hp;
+ z9=(x2,vm);
+ z10=(x6,y9);
+ getpen;
+ draw z1--z2--z3;
+ draw z6--z7--z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def FA =
+ N(lir,oben,rer,6hp);
+ z1=(5wp,6hp);
+ z2=(x1,3/24height);
+ z3=(11wp,y1);
+ z4=(x3,y2);
+ z5=(lir,2hp);
+ z6=(hm,0);
+ z7=(rer,y5);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5..z6..z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(185, charwidth#,height#+2hp#,depth#);
+ "The syllable FAX";
+ eyebrow;
+ FA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(186, charwidth#,height#+2hp#,depth#);
+ "The syllable FA";
+ FA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(187, charwidth#,height#+2hp#,depth#);
+ "The syllable FAP";
+ N(lir,oben,rer,6hp);
+ z1=(5wp,11/24height);
+ z2=(x1,7/24height);
+ z3=(11wp,y1);
+ z4=(x3,y2);
+ z5=(lir,7/24height);
+ z6=(hm,0);
+ z7=(rer,y5);
+ z8=(hm,3/24height);
+ z9=(x8,y5);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z8--z9;
+ draw z5..z6..z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def FO =
+ z1=(3/4width,oben);
+ z2=(x1,0);
+ z3=(6wp,oben);
+ z4=(x1,8hp);
+ z5=(x3,vm);
+ z6=(x1,2hp);
+ z7=(x3,0);
+ z8=(lir,y4);
+ z9=(lir,y6);
+ getpen;
+ draw z1--z2;
+ draw z3--z4 & z4{left}..z5..{right}z6 & z6--z7;
+ draw z8..z5..z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(188, charwidth#,height#+2hp#,depth#);
+ "The syllable FOX";
+ eyebrow;
+ FO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(189, charwidth#,height#+2hp#,depth#);
+ "The syllable FO";
+ FO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(190, charwidth#,height#+2hp#,depth#);
+ "The syllable FOP";
+ z1=(9wp,oben);
+ z2=(x1,0);
+ z3=(2wp,oben);
+ z4=(x1,8hp);
+ z5=(x3,vm);
+ z6=(x1,2hp);
+ z7=(x3,0);
+ z11=(x1,y5);
+ z12=(rer,y5);
+ z13=(1/2[x1,rer],9hp);
+ z14=(x13,6.5hp);
+ z15=(x13,3.5hp);
+ z16=(x13,1hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4 & z4{left}..z5..{right}z6 & z6--z7;
+ draw z11--z12;
+ draw z13--z14;
+ draw z15--z16;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(191, charwidth#,height#+2hp#,depth#);
+ "The syllable FUT";
+ x1=x2=hm;
+ x3=rer;
+ y1=0;
+ y2=oben;
+ y3=8hp;
+ z4=(1/4width,9hp);
+ z5=(x4,6.25hp);
+ z6=(x4,4.25hp);
+ z7=(x4,1.5hp);
+ z8=(13wp,6hp);
+ z9=(x8,3hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def FU =
+ z1=(1/4width,oben);
+ z2=(x1,0);
+ z3=(3/4width,oben);
+ z4=(x3,0);
+ z5=(x1,3hp);
+ z6=(x3,y5);
+ z7=(lir,9hp);
+ z8=(x1,6hp);
+ z9=(rer,y7);
+ z10=(x3,y8);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7{down}..z8;
+ draw z9{down}..z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(192, charwidth#,height#+2hp#,depth#);
+ "The syllable FUX";
+ eyebrow;
+ FU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(193, charwidth#,height#+2hp#,depth#);
+ "The syllable FU";
+ FU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(194, charwidth#,height#+2hp#,depth#);
+ "The syllable FUP";
+ z1=(1/4width,oben);
+ z2=(x1,8hp);
+ z3=(x1,2hp);
+ z4=(x1,0);
+ z5=(3/4width,y1);
+ z6=(x5,y2);
+ z7=(x5,y3);
+ z8=(x5,y4);
+ z11=(rer,7hp);
+ z12=(lir,3hp);
+ z13=(lir,y11);
+ z14=(rer,y12);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ draw z11..tension 7..z12..tension 6..z13..tension 7..z14;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def FUR =
+ z1=(hm,0);
+ z2=(x1,9hp);
+ z3=(13wp,8hp);
+ z4=(x3,oben);
+ z8=(lir,8hp);
+ z9=(hm-1wp,1/2[y8,y10]);
+ z10=(lir,2hp);
+ z11=(lir,4hp);
+ z12=(lir,6hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z8{right}..tension 1.2..z9..tension 1.2..{left}z10;
+ draw z11--z12;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(195, charwidth#,height#+2hp#,depth#);
+ "The syllable FURX";
+ eyebrow;
+ FUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(196, charwidth#,height#+2hp#,depth#);
+ "The syllable FUR";
+ FUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(197, charwidth#,height#+2hp#,depth#);
+ "The syllable FYT";
+ z1=(hm,oben);
+ z2=(x1,1hp);
+ z6=(lir,3hp);
+ z7=(lir,0);
+ z3=(x1,6hp);
+ z4=(rer,9hp);
+ z8=(x1,4hp);
+ z9=(x4,7hp);
+ getpen;
+ draw z1--z2--z6--z7;
+ draw z3--z4; draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def FY =
+ z1=(9wp,oben);
+ z2=(x1,1hp);
+ z3=(1/4width,19/24height);
+ z4=(x1,6hp);
+ z5=(rer,y3);
+ z6=(lir,3hp);
+ z7=(lir,0);
+ z8=(1/2[x1,x3],9hp);
+ z9=(x3,6hp);
+ getpen;
+ draw z1--z2--z6--z7;
+ draw z3{down}..z4..{up}z5;
+ draw z8--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(198, charwidth#,height#+2hp#,depth#);
+ "The syllable FYX";
+ eyebrow;
+ FY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(199, charwidth#,height#+2hp#,depth#);
+ "The syllable FY";
+ FY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(200, charwidth#,height#+2hp#,depth#);
+ "The syllable FYP";
+ z1=(8wp,6hp);
+ z2=(x1,1hp);
+ z3=(lir,19/24height);
+ z4=(x1,6hp);
+ z5=(rer,y3);
+ z6=(lir,3hp);
+ z7=(lir,0);
+ z8=(3/4[x1,rer],4.5hp);
+ z9=(x1,3hp);
+ getpen;
+ draw z1--z2--z6--z7;
+ draw z3{down}..z4..{up}z5;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(201, charwidth#,height#+2hp#,depth#);
+ "The syllable GIT";
+ Sichel(lir,oben,3/4width,0);
+ z1=(rer,8.5hp);
+ z2=(rer,3.5hp);
+ z3=(3/4width,1/2[y1,y2]);
+ z4=(rer,y3);
+ draw z1--z2;
+ draw z3--z4;
+ getpen;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GI =
+ Sichel(lir,oben,rer,0);
+ x20=x21=1/3width;
+ y20=4hp;
+ y21=7hp;
+ getpen;
+ draw z20--z21;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(202, charwidth#,height#+2hp#,depth#);
+ "The syllable GIX";
+ eyebrow;
+ GI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(203, charwidth#,height#+2hp#,depth#);
+ "The syllable GI";
+ GI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(204, charwidth#,height#+2hp#,depth#);
+ "The syllable GIP";
+ z1=(3wp,5.5hp);
+ z2=(13wp,y1);
+ z3=(hm,oben);
+ z4=(x3,1.5hp);
+ z5=(lir,2.5hp);
+ z6=(hm,0);
+ z7=(rer,y5);
+ z8=(x2,8hp);
+ z9=(x8,oben);
+ getpen;
+ draw z1--z2;
+ draw z9--z8--z3--z4;
+ draw z5..z6..z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(205, charwidth#,height#+2hp#,depth#);
+ "The syllable GIET";
+ z1=(1/4width,vm);
+ z2=(3/4width,y1);
+ z3=(hm,oben);
+ z4=(x3,0);
+ z5=(lir,2.5hp);
+ z6=(hm,0);
+ z7=(rer,y5);
+ z8=(lir,7.5hp);
+ z9=(hm,oben);
+ z10=(rer,y8);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5..z6..z7;
+ draw z8..z9..z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GIE =
+ z1=(1/4width,oben);
+ z2=(hm,7.5hp);
+ z3=(3/4width,oben);
+ z4=(lir,9hp);
+ z5=(x2,5.75hp);
+ z6=(rer,y4);
+ z7=(x2,1.5hp);
+ z8=(1/4width,y7);
+ getpen;
+ draw z1{down}..z2..{up}z3;
+ draw z4{down}..tension 1.2..z5..tension 1.2..{up}z6;
+ draw z5--z7{down}..{up}z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(206, charwidth#,height#+2hp#,depth#);
+ "The syllable GIEX";
+ eyebrow;
+ GIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(207, charwidth#,height#+2hp#,depth#);
+ "The syllable GIE";
+ GIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(208, charwidth#,height#+2hp#,depth#);
+ "The syllable GIEP";
+ z1=(3wp,6.5hp);
+ z2=(13wp,y1);
+ z3=(hm,oben);
+ z4=(x3,1.5hp);
+ z5=(lir,2.5hp);
+ z6=(hm,0);
+ z7=(rer,y5);
+ z8=(x2,8hp);
+ z9=(x8,oben);
+ z11=(1/2[x1,x3],vm);
+ z12=(x11,2.5hp);
+ z13=(1/2[x2,x3],y11);
+ z14=(x13,y12);
+ getpen;
+ draw z1--z2;
+ draw z9--z8--z3--z4;
+ draw z5..z6..z7;
+ draw z11--z12; draw z13--z14;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(209, charwidth#,height#+2hp#,depth#);
+ "The syllable GAT";
+ z1=(1/4width,oben);
+ z2=(hm,7.5hp);
+ z3=(3/4width,oben);
+ z4=(lir,9hp);
+ z5=(x2,5.75hp);
+ z6=(rer,y4);
+ z7=(x1,0);
+ z8=(x2,2.5hp);
+ z9=(x3,0);
+ z10=(x4,1hp);
+ z11=(x2,4.25hp);
+ z12=(x6,y10);
+ getpen;
+ draw z1{down}..z2..{up}z3;
+ draw z4{down}..tension 1.2..z5..tension 1.2..{up}z6;
+ draw z7{up}..z8..{down}z9;
+ draw z10{up}..tension 1.2..z11..tension 1.2..{down}z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GA =
+ x1=x6=lir;x2=x7=hm;x3=x8=rer;
+ y1=y3=oben;
+ y2=6hp;
+ y7=4hp;
+ y6=y8=0;
+ getpen;
+ draw z1{down}..tension 1.2..z2..tension 1.2..{up}z3;
+ draw z6{up}..tension 1.2..z7..tension 1.2..{down}z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(210, charwidth#,height#+2hp#,depth#);
+ "The syllable GAX";
+ eyebrow;
+ GA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(211, charwidth#,height#+2hp#,depth#);
+ "The syllable GA";
+ GA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(212, charwidth#,height#+2hp#,depth#);
+ "The syllable GAP";
+ Oh(lir,oben,rer,0);
+ lix:=5wp;
+ rex:=11wp;
+ oby:=7hp;
+ uny:=3hp;
+ z1=(lix,oby);
+ z2=(rex,oby);
+ z3=(lix,uny);
+ z4=(rex,uny);
+ getpen;
+ draw z1{down}..{up}z2;
+ draw z3{up}..{down}z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(213, charwidth#,height#+2hp#,depth#);
+ "The syllable GUOT";
+ z1=(lir,oben);
+ z2=(11wp,0);
+ z3=(x2,oben);
+ z4=(x1,0);
+ z5=(rer,8hp);
+ z6=(x2,vm);
+ z7=(rer,2hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5..z6..z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GUO =
+ z1=(lir,oben);
+ z2=(11wp,0);
+ z3=(x2,oben);
+ z4=(x1,0);
+ z5=(rer,9hp);
+ z6=(x2,7.5hp);
+ z7=(rer,6hp);
+ z8=(rer,4hp);
+ z9=(x2,2.5hp);
+ z10=(rer,1hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5..z6..z7;
+ draw z8..z9..z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(214, charwidth#,height#+2hp#,depth#);
+ "The syllable GUOX";
+ eyebrow;
+ GUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(215, charwidth#,height#+2hp#,depth#);
+ "The syllable GUO";
+ GUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(216, charwidth#,height#+2hp#,depth#);
+ "The syllable GUOP";
+ Oh(lir,oben,rer,0);
+ x1=x2= 6wp;
+ x3=x4=10wp;
+ x5=4wp; x6=12wp;
+ x7=x8=hm;
+ y1=y3=oben-2hp;
+ y2=y4=6.5hp;
+ y5=y6=5hp;
+ y7=3.5hp;
+ y8=2hp;
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(217, charwidth#,height#+2hp#,depth#);
+ "The syllable GOT";
+ U(lir,oben,1/3[lir,rer],vm);
+ U(1/3[lir,rer],oben,2/3[lir,rer],vm);
+ U(2/3[lir,rer],oben,rer,vm);
+ U(1/6[lir,rer],vm,hm,0);
+ U(hm,vm,5/6[lir,rer],0);
+ z1=(1/3[lir,rer],4hp);
+ z2=(1/3[lir,rer],2.5hp);
+ z3=(2/3[lir,rer],4hp);
+ z4=(2/3[lir,rer],2.5hp);
+ getpen;
+ draw z1--z2; draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GO =
+ z1=(lir,oben);
+ z2=(6wp,8.5hp);
+ z3=(lir,8hp);
+ z4=(x2,6.5hp);
+ z5=(1/4width,2hp);
+ z6=(9wp,0);
+ z7=(x6,oben);
+ z8=(x6,vm);
+ z9=(rer,9hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6--z7;
+ draw z8--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(218, charwidth#,height#+2hp#,depth#);
+ "The syllable GOX";
+ eyebrow;
+ GO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(219, charwidth#,height#+2hp#,depth#);
+ "The syllable GO";
+ GO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(220, charwidth#,height#+2hp#,depth#);
+ "The syllable GOP";
+ x1=x2=1/4width;
+ x3=x4=3/4width;
+ x5=lir; x6=rer;
+ x7=x8=hm;
+ y1=y3=oben-1hp;
+ y2=y4=6.5hp;
+ y5=y6=5hp;
+ y7=3.5hp;
+ y8=1hp;
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(221, charwidth#,height#+2hp#,depth#);
+ "The syllable GET";
+ z1=(3wp,0);
+ z2=(x1,3hp);
+ z3=(hm,2hp);
+ z4=(hm,oben);
+ z5=(rer,8.5hp);
+ z6=(rer,7hp);
+ z7=(rer,4hp);
+ z8=(rer,5.5hp);
+ z9=(x3,y8);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6--z7; draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GE =
+ Z(lir+1wp,oben,rer-1wp,0);
+ z1=(3wp,8hp);
+ z2=(x1,vm);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(222, charwidth#,height#+2hp#,depth#);
+ "The syllable GEX";
+ eyebrow;
+ GE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(223, charwidth#,height#+2hp#,depth#);
+ "The syllable GE";
+ GE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(224, charwidth#,height#+2hp#,depth#);
+ "The syllable GEP";
+ z1=(lir+1wp,0);
+ z2=(lir+1wp,3hp);
+ z3=(hm+1wp,2hp);
+ z4=(hm+1wp,oben);
+ z5=(rer,8.5hp);
+ z6=(x1,9.5hp);
+ z7=(x6,6hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(225, charwidth#,height#+2hp#,depth#);
+ "The syllable GUT";
+ Oh(3/8width,oben,rer,0);
+ z1=(lir,oben);
+ z2=(3/8width-1wp,vm);
+ z3=(lir,0);
+ z4=(3/8width,y2);
+ z5=(rer,y2);
+ z6=(1/2[x4,x5],8hp);
+ z7=(x6,6hp);
+ z8=(x6,4hp);
+ z9=(x6,2hp);
+ getpen;
+ draw z1..z2..z3;
+ draw z4--z5;
+ draw z6--z7;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GU =
+ U(lir,oben,rer,0);
+ z1=(lir,8hp);
+ z2=(rer,y1);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(226, charwidth#,height#+2hp#,depth#);
+ "The syllable GUX";
+ eyebrow;
+ GU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(227, charwidth#,height#+2hp#,depth#);
+ "The syllable GU";
+ GU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(228, charwidth#,height#+2hp#,depth#);
+ "The syllable GUP";
+ Oh(lir,oben,rer,0);
+ U(5wp,7hp,11wp,2hp);
+ z5=(5wp,6hp);
+ z6=(11wp,y5);
+ getpen;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GUR =
+ U(lir,oben,rer,1hp);
+ z1=(lir,0);
+ z2=(5wp,4hp);
+ z3=(rer,0);
+ z4=(11wp,4hp);
+ z5=(lir,8hp);
+ z6=(rer,y5);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(229, charwidth#,height#+2hp#,depth#);
+ "The syllable GURX";
+ eyebrow;
+ GUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(230, charwidth#,height#+2hp#,depth#);
+ "The syllable GUR";
+ GUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(231, charwidth#,height#+2hp#,depth#);
+ "The syllable GGIT";
+ z1=(6wp,1hp);
+ z2=(lir,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(lir,1/2[y3,y5]);
+ z5=(hm,oben);
+ z6=(rer,y4);
+ z7=(10wp,y3);
+ z8=(rer,y2);
+ z9=(x7,y1);
+ z10=(hm,0);
+ z11=(x10,3hp);
+ getpen;
+ draw z1..z2..z3&z3..z4..z5..z6..z7&z7..z8..z9;
+ draw z10--z11;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GGI =
+ z1=(rer-1wp,oben);
+ z2=(x1,0);
+ z3=(3wp,2.5hp);
+ z4=(lir,9hp);
+ z5=(1/3[lir,x7],1/2[y4,y6]);
+ z6=(lir,4hp);
+ z7=(5/8width,y4);
+ z8=(2/3[lir,x7],y5);
+ z9=(x7,y6);
+ getpen;
+ draw z1--z2--z3;
+ draw z4..z5..z6;
+ draw z7..z8..z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(232, charwidth#,height#+2hp#,depth#);
+ "The syllable GGIX";
+ eyebrow;
+ GGI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(233, charwidth#,height#+2hp#,depth#);
+ "The syllable GGI";
+ GGI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GGIE =
+ z1=(11wp,9hp);
+ z2=(1/4width,8hp);
+ z3=(hm+1wp,7.25hp);
+ z4=(x2,5.5hp);
+ z5=(x3,3.75hp);
+ z6=(x2,2hp);
+ z7=(1/2[x2,x3],oben-1/24height);
+ z8=(x1,0);
+ z9=(x1,oben);
+ z10=(rer,9hp);
+ getpen;
+ draw z1..z7..z2{down}..{up}z3{up}..{down}z4{down}..{up}z5{up}..{down}z6;
+ draw z8--z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(234, charwidth#,height#+2hp#,depth#);
+ "The syllable GGIEX";
+ eyebrow;
+ GGIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(235, charwidth#,height#+2hp#,depth#);
+ "The syllable GGIE";
+ GGIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(236, charwidth#,height#+2hp#,depth#);
+ "The syllable GGIEP";
+ z1=(lir,7/24height);
+ z2=(lir,14/24height);
+ z3=(rer,9/24height);
+ z4=(rer,9hp);
+ z5=(1/4width,oben);
+ z6=(x5,13.5/24height);
+ z7=(3/4width,9.5/24height);
+ z8=(x7,0);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(237, charwidth#,height#+2hp#,depth#);
+ "The syllable GGAT";
+ H(1/4width,oben,rer-1wp,1hp);
+ z1=(lir,0);
+ z2=(lir,2hp);
+ z3=(1/4width,1hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GGA =
+ S(lir,oben,rer,vm);
+ z1=(hm,vm);
+ z2=(x1,0);
+ z3=(lir,3.5hp);
+ z4=(rer,y3);
+ z5=(x3,2hp);
+ z6=(rer,y5);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(238, charwidth#,height#+2hp#,depth#);
+ "The syllable GGAX";
+ eyebrow;
+ GGA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(239, charwidth#,height#+2hp#,depth#);
+ "The syllable GGA";
+ GGA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(240, charwidth#,height#+2hp#,depth#);
+ "The syllable GGAP";
+ z1=(lir+1wp,0);
+ z2=(lir+1wp,3hp);
+ z3=(hm+0.5wp,2hp);
+ z4=(hm+0.5wp,oben);
+ z6=(x1,9.5hp);
+ z7=(x6,6hp);
+ z8=(rer,oben);
+ z9=(x3,1/2[y8,y10]);
+ z10=(x8,vm);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z6--z7;
+ draw z8{left}..z9..{right}z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(241, charwidth#,height#+2hp#,depth#);
+ "The syllable GGUOT";
+ z1=(lir,0);
+ z2=(hm,3.5hp);
+ z3=(rer,0);
+ z4=(lir,vm);
+ z5=(x2,oben);
+ z6=(3wp,9hp);
+ z7=(x6,6.5hp);
+ getpen;
+ draw z1{up}..z2..{down}z3;
+ draw z4--z2--z5;
+ draw z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GGUO =
+ x1=x6=lir;x2=x7=hm;x3=x8=rer;
+ x4=1/2[lir,hm];
+ x5=1/2[rer,hm];
+ y1=y3=y4=y5=9hp;
+ y2=0;
+ y7=4hp;
+ y6=y8=0;
+ getpen;
+ draw z1{up}..z4..tension 1.8..z2..tension 1.8..z5..{down}z3;
+ draw z6{up}..z7..{down}z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(242, charwidth#,height#+2hp#,depth#);
+ "The syllable GGUOX";
+ eyebrow;
+ GGUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(243, charwidth#,height#+2hp#,depth#);
+ "The syllable GGUO";
+ GGUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(244, charwidth#,height#+2hp#,depth#);
+ "The syllable GGUOP";
+ Oh(lir,oben,rer,6.5hp);
+ z1=(hm,6.5hp);
+ z2=(x1,0);
+ z3=(1/4width,1.5hp);
+ z4=(lir,vm);
+ z5=(rer,y4);
+ z6=(x4,3hp);
+ z7=(rer,y6);
+ z8=(x1,9hp);
+ z9=(x1,7.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5; draw z6--z7; draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(245, charwidth#,height#+2hp#,depth#);
+ "The syllable GGOT";
+ N(lir,13/24height,rer,7/24height);
+ Z(1/4width,oben,3/4width,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GGO =
+ z1=(rer-1wp,oben);
+ z2=(x1,0);
+ z3=(lir,2.5hp);
+ z7=(lir,vm);
+ z8=(lir,0);
+ getpen;
+ draw z1--z2--z3;
+ draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(246, charwidth#,height#+2hp#,depth#);
+ "The syllable GGOX";
+ eyebrow;
+ GGO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(247, charwidth#,height#+2hp#,depth#);
+ "The syllable GGO";
+ GGO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(248, charwidth#,height#+2hp#,depth#);
+ "The syllable GGOP";
+ z1=(lir+1wp,0);
+ z2=(lir+1wp,3hp);
+ z3=(12wp,2hp);
+ z4=(12wp,oben);
+ z6=(x1,9.5hp);
+ z7=(x6,6hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(249, charwidth#,height#+2hp#,depth#);
+ "The syllable GGET";
+ Z(3/8width,oben,rer,0);
+ z4=(lir,1/2[y6,y7]); % Horizontaler Balken
+ z5=(7/16[3/8width,rer],y4); % Vertikaler Balken
+ z6=(1/2[x4,x5],oben);
+ z7=(x6,3hp);
+ % Linke kleine Striche
+ z8=(4/8[lir,x6],9.5hp);
+ z9=(x8,7.5hp);
+ z10=(x8,5.5hp);
+ z11=(x8,3.5hp);
+ % Rechte kleine Striche
+ z12=(3/8[x6,x5],y8);
+ z13=(x12,y9);
+ z14=(x12,y10);
+ z15=(x12,y11);
+ getpen;
+ draw z4--z5;
+ draw z8--z9;
+ draw z10--z11;
+ draw z12--z13;
+ draw z14--z15;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GGE =
+ z1=(lir,oben);
+ z2=(x1,0);
+ z3=(rer,oben);
+ z4=(x3,0);
+ z5=(hm,oben);
+ z10=(x5,0);
+ y6=1/5[y5,y10];
+ y7=2/5[y5,y10];
+ y8=3/5[y5,y10];
+ y9=4/5[y5,y10];
+ z6=(x5,y6);
+ z7=(x5,y7);
+ z8=(x5,y8);
+ z9=(x5,y9);
+ z10=(x5,y10);
+ getpen;
+ draw z1--z2; draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(250, charwidth#,height#+2hp#,depth#);
+ "The syllable GGEX";
+ eyebrow;
+ GGE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(251, charwidth#,height#+2hp#,depth#);
+ "The syllable GGE";
+ GGE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(252, charwidth#,height#+2hp#,depth#);
+ "The syllable GGEP";
+ Z(3/8width,oben,rer,0);
+ Oh(lir,9hp,7wp,3hp);
+ z4=(7wp,6hp); % Horizontaler Balken
+ z5=(7/16[3/8width,rer],y4); % Vertikaler Balken
+ % Rechte kleine Striche
+ z12=(4/8[x4,x5],9hp);
+ z13=(x12,7hp);
+ z14=(x12,vm);
+ z15=(x12,3hp);
+ getpen;
+ draw z4--z5;
+ draw z12--z13;
+ draw z14--z15;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(253, charwidth#,height#+2hp#,depth#);
+ "The syllable GGUT";
+ z1=(hm,0);
+ z2=(x1,9hp);
+ z3=(13wp,8hp);
+ z4=(x3,oben);
+ getpen;
+ draw z1--z2--z3--z4;
+ z5=(x1,vm);
+ z6=(lir,7hp);
+ z7=(1/2[x6,x1],y6);
+ z8=(lir,2hp);
+ draw z5..z6{up}..{down}z7..z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GGU =
+ Xi(lir,oben,rer,5.5hp);
+ Xi(lir,4.5hp,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(254, charwidth#,height#+2hp#,depth#);
+ "The syllable GGUX";
+ eyebrow;
+ GGU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(255, charwidth#,height#+2hp#,depth#);
+ "The syllable GGU";
+ GGU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+end.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font, Part I, ends here. %%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yis-2.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yis-2.mf
new file mode 100644
index 00000000000..a559eeb54e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yis-2.mf
@@ -0,0 +1,3201 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part II
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% This file contains 74 eyebrows.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 0,charwidth#,height#+2hp#,depth#);
+ "The syllable GGUP";
+ Xi(lir,oben,rer,6hp);
+ Plus(lir,6hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def GGUR =
+ Oh(lir,oben,rer,6hp);
+ Oh(lir,4hp,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 1,charwidth#,height#+2hp#,depth#);
+ "The syllable GGURX";
+ eyebrow;
+ GGUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 2,charwidth#,height#+2hp#,depth#);
+ "The syllable GGUR";
+ GGUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 3,charwidth#,height#+2hp#,depth#);
+ "The syllable HIT";
+ z1=(rer,8hp);
+ z2=(x3,oben);
+ z3=(5/8width,0);
+ z4=(1/4width,8.5hp);
+ z5=(x3,vm);
+ z6=(x4,1.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4{z4-z2}..{right}z5 & z5{left}..{z3-z6}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HIE =
+ Z(5wp,oben,rer,0);
+ z1=(4wp,9hp);
+ z2=(8.75wp,1/2[y1,y3]);
+ z3=(x1,3hp);
+ getpen;
+ draw z1{z3-z2}..{right}z2 & z2{left}..{z2-z1}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 4,charwidth#,height#+2hp#,depth#);
+ "The syllable HIEX";
+ eyebrow;
+ HIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 5,charwidth#,height#+2hp#,depth#);
+ "The syllable HIE";
+ HIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 6,charwidth#,height#+2hp#,depth#);
+ "The syllable HAT";
+ Huegel(lir,4hp,rer,0);
+ z1=(hm,0);
+ z2=(hm,9hp);
+ z3=(rer,7.5hp);
+ z4=(rer,oben);
+ z5=(11wp,6hp);
+ z6=(x5,oben);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HA =
+ Oh(4wp,oben,14wp,4.5hp);
+ Plus(4wp,oben,14wp,4.5hp);
+ z1=(lir,2hp);
+ z2=(x1,4hp);
+ z3=(9wp,2.75hp);
+ z4=(x3,5hp);
+ z5=(1/4width,0);
+ z6=(1/2[x5,x7],y3-.25hp);
+ z7=(rer,0);
+ z8=(x3,1/2[y3,0]);
+ z9=(x8,0);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{up}..z6..{down}z7;
+ draw z8--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 7,charwidth#,height#+2hp#,depth#);
+ "The syllable HAX";
+ eyebrow;
+ HA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 8,charwidth#,height#+2hp#,depth#);
+ "The syllable HA";
+ HA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 9,charwidth#,height#+2hp#,depth#);
+ "The syllable HAP";
+ Oh(5wp,oben,13wp,5hp);
+ z1=(lir,2hp);
+ z2=(x1,4hp);
+ z3=(9wp,2.75hp);
+ z4=(x3,5hp);
+ z5=(1/4width,0);
+ z6=(1/2[x5,x7],y3-.25hp);
+ z7=(rer,0);
+ z8=(x3,1/2[y3,0]);
+ z9=(x8,0);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{up}..z6..{down}z7;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 10,charwidth#,height#+2hp#,depth#);
+ "The syllable HUOT";
+ Oh(lir,oben,hm-2wp,7hp);
+ x1=x2=hm;
+ x3=rer=x5;
+ x4=1/8width;
+ y1=0;
+ y2=oben;
+ y3=8hp;
+ y4=y5=5.5hp;
+ z6=(x4,3hp);
+ z7=(x5,y6);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HUO =
+ Oh(lir,6.5hp,5wp,4hp);
+ z1=(9wp,0);
+ z2=(x1,oben);
+ z3=(14wp,8hp);
+ z8=(lir,8.5hp);
+ z9=(hm,1/2[y8,y10]);
+ z10=(lir,2hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z8{right}..tension 1.2..z9..tension 1.2..{left}z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 11,charwidth#,height#+2hp#,depth#);
+ "The syllable HUOX";
+ eyebrow;
+ HUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 12,charwidth#,height#+2hp#,depth#);
+ "The syllable HUO";
+ HUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 13,charwidth#,height#+2hp#,depth#);
+ "The syllable HUOP";
+ Huegel(2wp,4hp,14wp,0);
+ Oh(5/32width,8hp,11/32width,6hp);
+ z1=(hm,10hp); z2=(x1,0);
+ z3=(lir,10hp);
+ z4=(lir,9hp);
+ z5=(hm,y4);
+ z6=(rer,1/2[y4,y8]);
+ z7=(hm,y8);
+ z8=(lir,5hp);
+ getpen;
+ draw z1--z2;
+ draw z4---z5..z6..z7---z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 14,charwidth#,height#+2hp#,depth#);
+ "The syllable HOT";
+ z1=(hm,oben);
+ z2=(lir,1/2[y1,y3]);
+ z3=(hm,1/2[y1,y5]);
+ z4=(lir,1/2[y3,y5]);
+ z5=(hm,0);
+ z6=(rer,y2);
+ z7=(rer,y4);
+ getpen;
+ draw z1{left}..z2..{right}z3 &
+ z3{left}..z4..{right}z5;
+ draw z6{left}..z3..{right}z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HO =
+ Oh(lir,oben,rer,0);
+ Oh(6wp,7hp,10wp,3hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 15,charwidth#,height#+2hp#,depth#);
+ "The syllable HOX";
+ eyebrow;
+ HO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 16,charwidth#,height#+2hp#,depth#);
+ "The syllable HO";
+ HO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 17,charwidth#,height#+2hp#,depth#);
+ "The syllable HOP";
+ X(lir,oben,3/4width,0);
+ Oh(11wp,6.75hp,rer,3.25hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HE =
+ Huegel(lir,5hp,8wp,1hp);
+ z1=(14wp,8hp);
+ z2=(x1,8hp);
+ z3=(10.5wp,oben);
+ z4=(x3,0);
+ z5=(x3,8hp);
+ z6=(5wp,oben);
+ z7=(x6,0);
+
+ getpen;
+ draw z2--z3--z4;
+ draw z5--z6--z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 18,charwidth#,height#+2hp#,depth#);
+ "The syllable HEX";
+ eyebrow;
+ HE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 19,charwidth#,height#+2hp#,depth#);
+ "The syllable HE";
+ HE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 20,charwidth#,height#+2hp#,depth#);
+ "The syllable HEP";
+ Oh(4wp,oben,12wp,2.5hp);
+ Huegel(lir+1wp,2.5hp,rer-1wp,0);
+ z1=(lir,7.5hp);
+ z2=(7wp,y1);
+ z3=(x1,5hp);
+ z4=(x2,y3);
+ z5=(hm,1.5hp);
+ z6=(x5,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 21,charwidth#,height#+2hp#,depth#);
+ "The syllable HMIT";
+ Z(2wp,oben,14wp,0);
+ z1=(lir+1wp,6.5hp);
+ z2=(x1,3.5hp);
+ z3=(rer-1wp,y1);
+ z4=(x3,y2);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HMI =
+ Liane(3wp,9.5hp,13wp,6.5hp);
+ Huegel(lir,4hp,rer,0);
+ z1=(hm,oben);
+ z2=(hm,0);
+ z3=(lir,5.25hp);
+ z4=(rer,y3);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 22,charwidth#,height#+2hp#,depth#);
+ "The syllable HMIX";
+ eyebrow;
+ HMI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 23,charwidth#,height#+2hp#,depth#);
+ "The syllable HMI";
+ HMI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 24,charwidth#,height#+2hp#,depth#);
+ "The syllable HMIP";
+ Oh(lir,oben,rer,0);
+ Oh(6wp,7hp,10wp,3hp);
+ z1=(hm,oben);
+ z2=(hm,7hp);
+ z3=(3wp,4/24height);
+ z4=(6wp,7/24height);
+ z5=(13wp,y3);
+ z6=(10wp,y4);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HMIE =
+ Liane(2wp,oben,14wp,6hp);
+ II(5wp,oben,11wp,8.5hp);
+ z1=(hm,oben);
+ z2=(hm,1.5hp);
+ z3=(lir,y2);
+
+ getpen;
+ draw z1---z2{down}..{up}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 25,charwidth#,height#+2hp#,depth#);
+ "The syllable HMIEX";
+ eyebrow;
+ HMIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 26,charwidth#,height#+2hp#,depth#);
+ "The syllable HMIE";
+ HMIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 27,charwidth#,height#+2hp#,depth#);
+ "The syllable HMIEP";
+ II(3wp,5.5hp,13wp,2.5hp);
+ getpen;
+ z1=(3/4width,oben); z2=(x1,7hp);
+ z3=(hm,8.5hp); z4=(x3,0);
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 28,charwidth#,height#+2hp#,depth#);
+ "The syllable HMAT";
+ Z(1/4width,oben,3/4width,0);
+ z1=(9.6wp,6.05hp);
+ z2=(10.5wp,5.85hp);
+ z3=(11.8wp,5.45hp);
+ z4=(12.7wp,4.95hp);
+ z5=(13.5wp,4.25hp);
+ z6=(14.2wp,3.35hp);
+
+ getpen;
+ draw z1..z2; draw z3..{z6-z3}z4; draw z5..{down}z6;
+ % Pimmel
+ z7=(hm,5hp);
+ z8=(13wp,2hp);
+ draw z7..{down}z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HMA =
+ Oh(7wp,4.5hp,rer,0);
+ z1=(lir,2hp);
+ z2=(x1,8hp);
+ z3=(11wp,4.75hp);
+ z4=(x3,oben);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 29,charwidth#,height#+2hp#,depth#);
+ "The syllable HMAX";
+ eyebrow;
+ HMA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 30,charwidth#,height#+2hp#,depth#);
+ "The syllable HMA";
+ HMA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 31,charwidth#,height#+2hp#,depth#);
+ "The syllable HMAP";
+ z1=(3wp,8.5hp);
+ z2=(7wp,1/2[y1,y3]);
+ z3=(x1,1.5hp);
+ z4=(rer,8.5hp);
+ z5=(10wp,oben);
+ z6=(x5,0);
+ z7=(lir,y2);
+ z8=(x5,y2);
+ getpen;
+ draw z1..z2..z3;
+ draw z4--z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HMUO =
+ z4=(rer,8.5hp);
+ z5=(10wp,oben);
+ z6=(x5,1.25hp);
+ z7=(1/4width,2.5hp);
+ z8=(x7,0);
+ z9=(rer,7hp);
+ z10=(x5,5hp);
+ z11=(6.2wp,9.5hp);
+ z12=(6wp,5.25hp);
+ z13=(lir,6.75hp);
+ getpen;
+ draw z5--z6--z7--z8;
+ draw z9--z10;
+ draw z11{down}..tension 4..z12..tension 4..{z13-z12}z13;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 32,charwidth#,height#+2hp#,depth#);
+ "The syllable HMUOX";
+ eyebrow;
+ HMUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 33,charwidth#,height#+2hp#,depth#);
+ "The syllable HMUO";
+ HMUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 34,charwidth#,height#+2hp#,depth#);
+ "The syllable HMUOP";
+ z4=(rer,8.5hp);
+ z5=(9.5wp,oben);
+ z6=(x5,1.25hp);
+ z7=(1/4width,2.5hp);
+ z8=(x7,0);
+ z9=(x5,6.5hp);
+ z10=(rer,5hp);
+ z11=(5wp,9.5hp);
+ z12=(5wp,6hp);
+ getpen;
+ draw z4--z5--z6--z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 35,charwidth#,height#+2hp#,depth#);
+ "The syllable HMOT";
+ % z1 .. z5 : "d"
+ z1=(rer,8hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ Oh(5wp,9/24height,9wp,1.5hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HMO =
+ % z1 .. z5 : "d"
+ z1=(rer,8hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ z4=(1/8width,4hp);
+ z5=(rer,3hp);
+ z6=(5.5wp,8.5hp);
+ z7=(x6,6.5hp);
+ z8=(7wp,3.5hp);
+ z9=(x8,1.75hp);
+ z10=(rer,6.75hp);
+ z11=(rer,5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{z1-z2}z5;
+ draw z6--z7; draw z8--z9; draw z10--z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 36,charwidth#,height#+2hp#,depth#);
+ "The syllable HMOX";
+ eyebrow;
+ HMO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 37,charwidth#,height#+2hp#,depth#);
+ "The syllable HMO";
+ HMO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 38,charwidth#,height#+2hp#,depth#);
+ "The syllable HMOP";
+ S(lir,oben,rer,0);
+ Oh(3/8width,4hp,5/8width,1hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 39,charwidth#,height#+2hp#,depth#);
+ "The syllable HMUT";
+ Sanduhr(lir,oben,3/4width,0);
+ z7=(3/4width,7hp);
+ z8=(x7,3hp);
+ getpen;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HMU =
+ Quad(lir,9hp,9wp,3.5hp);
+ z1=(13wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ getpen;
+ draw z1---z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 40,charwidth#,height#+2hp#,depth#);
+ "The syllable HMUX";
+ eyebrow;
+ HMU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 41,charwidth#,height#+2hp#,depth#);
+ "The syllable HMU";
+ HMU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 42,charwidth#,height#+2hp#,depth#);
+ "The syllable HMUP";
+ Oh(lir,oben,rer,0);
+ Quad(5.5wp,8hp,10.5wp,2hp);
+ z1=(hm,oben);
+ z2=(x1,0);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HMUR =
+ Liane(lir,oben,rer,5hp);
+ z1=(hm,oben);
+ z2=(x1,8hp);
+ z3=(1/4width,4hp);
+ z4=(x3,0);
+ z5=(3/4width,y3);
+ z6=(x5,0);
+
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 43,charwidth#,height#+2hp#,depth#);
+ "The syllable HMURX";
+ eyebrow;
+ HMUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 44,charwidth#,height#+2hp#,depth#);
+ "The syllable HMUR";
+ HMUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HMY =
+ z1=(hm,oben);
+ z2=(hm,0);
+ z3=(lir,2hp);
+ z5=(hm,5hp);
+ z6=(rer,2hp);
+ z7=(1/4width,8hp);
+ z8=(x7,4.5hp);
+ z9=(13wp,9hp);
+ z10=(x9,6hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z5..{down}z6;
+ draw z7--z8;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 45,charwidth#,height#+2hp#,depth#);
+ "The syllable HMYX";
+ eyebrow;
+ HMY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 46,charwidth#,height#+2hp#,depth#);
+ "The syllable HMY";
+ HMY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 47,charwidth#,height#+2hp#,depth#);
+ "The syllable HMYP";
+ II(lir,9.5hp,8wp,8.25hp);
+ II(lir,7hp,8wp,5.75hp);
+ II(lir,4.5hp,8wp,3.25hp);
+ z4=(rer,8.5hp);
+ z5=(11wp,oben);
+ z6=(x5,1.5hp);
+ z7=(1/4width,2.5hp);
+ z8=(x7,0);
+ z9=(5.5wp,9.75hp);
+ z10=(x9,4.5hp);
+ z11=(lir,5.5hp);
+
+ getpen;
+ draw z5--z6--z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HMYR =
+ Oh(3wp,oben,13wp,5hp);
+ Plus(3wp,oben,13wp,5hp);
+ Busen(lir,3hp,rer,0);
+ II(5wp,4.25hp,11wp,2.75hp);
+ z1=(hm,5hp);
+ z2=(x1,3hp);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 48,charwidth#,height#+2hp#,depth#);
+ "The syllable HMYRX";
+ eyebrow;
+ HMYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 49,charwidth#,height#+2hp#,depth#);
+ "The syllable HMYR";
+ HMYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 50,charwidth#,height#+2hp#,depth#);
+ "The syllable HNIT";
+ x1=x2=hm;
+ x3=rer=x5;
+ x4=lir;
+ y1=0;
+ y2=oben;
+ y3=8hp;
+ y4=y5=5.5hp;
+ z6=(x4,3hp);
+ z7=(x5,y6);
+ z8=(1/4width,oben);
+ z9=(lir,8.5hp);
+ z10=(x8,7hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+ draw z8..z9..z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HNI =
+ x1=x2=hm;
+ x3=rer=x5;
+ x4=lir;
+ y1=0;
+ y2=oben;
+ y3=8hp;
+ y4=y5=5.5hp;
+ z6=(x4,3hp);
+ z7=(x5,y6);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 51,charwidth#,height#+2hp#,depth#);
+ "The syllable HNIX";
+ eyebrow;
+ HNI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 52,charwidth#,height#+2hp#,depth#);
+ "The syllable HNI";
+ HNI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 53,charwidth#,height#+2hp#,depth#);
+ "The syllable HNIP";
+ Huegel(lir,3.75hp,rer,0);
+ Liane(lir,7.5hp,rer,5hp);
+ x1=x2=hm;
+ x3=13wp;
+ y1=0;
+ y2=oben;
+ y3=8.5hp;
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 54,charwidth#,height#+2hp#,depth#);
+ "The syllable HNIET";
+ Huegel(lir,4hp,rer,0);
+ x1=x2=hm;
+ x3=rer=x5;
+ x4=lir;
+ y1=4hp;
+ y2=oben;
+ y3=8hp;
+ y4=y5=5.75hp;
+ z6=(hm,2hp);
+ z7=(x6,0);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HNIE =
+ Liane(lir,oben,rer,6hp);
+ z5=(8wp,oben);
+ z6=(x5,2hp);
+ z7=(1/4width,3hp);
+ z8=(x7,0);
+ z9=(11wp,3hp);
+ z10=(7wp,0.5hp);
+ getpen;
+ draw z5--z6--z7--z8;
+ draw z9{down}..z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 55,charwidth#,height#+2hp#,depth#);
+ "The syllable HNIEX";
+ eyebrow;
+ HNIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 56,charwidth#,height#+2hp#,depth#);
+ "The syllable HNIE";
+ HNIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 57,charwidth#,height#+2hp#,depth#);
+ "The syllable HNIEP";
+ II(lir,9hp,8.5wp,6.5hp);
+ z4=(rer,8.5hp);
+ z5=(11wp,oben);
+ z6=(x5,1.5hp);
+ z7=(1/4width,3hp);
+ z8=(x7,0);
+ z9=(5.5wp,9.75hp);
+ z10=(x9,4.5hp);
+ z11=(lir,5.5hp);
+
+ getpen;
+ draw z4--z5--z6--z7--z8;
+ draw z9--z10--z11;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 58,charwidth#,height#+2hp#,depth#);
+ "The syllable HNAT";
+ z3=(13wp,oben);
+ z4=(x3,7.5hp);
+ z5=(7wp,8.75hp);
+ z6=(x5,0);
+ z7=(1/4width,2.5hp);
+ z8=(x7,0);
+
+ z11=(lir,5.5hp);
+ z12=(12wp,y11);
+ z13=(x11,3hp);
+ z14=(x12,y13);
+ z15=(rer,6hp);
+ z16=(rer,2.5hp);
+
+ getpen;
+ draw z3--z4--z5--z6;
+ draw z11--z12;
+ draw z13--z14;
+ draw z15--z16;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HNA =
+ z3=(13wp,oben);
+ z4=(x3,7.5hp);
+ z5=(8.5wp,8.75hp);
+ z6=(x5,0);
+ z7=(1/4width,2.5hp);
+ z8=(x7,0);
+
+ z9=(lir,4.25hp);
+ z10=(5wp,3.25hp);
+ z11=(x10,7.25hp);
+ z12=(rer,5.75hp);
+ z13=(7.5wp,oben);
+ z14=(x13,y10);
+ getpen;
+ draw z3--z4--z5--z6;
+ draw z9--z10--z11--z12;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 59,charwidth#,height#+2hp#,depth#);
+ "The syllable HNAX";
+ eyebrow;
+ HNA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 60,charwidth#,height#+2hp#,depth#);
+ "The syllable HNA";
+ HNA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 61,charwidth#,height#+2hp#,depth#);
+ "The syllable HNAP";
+ Z(5wp,4.75hp,11wp,0);
+ z1=(lir,4hp);
+ z2=(3/4width,oben);
+ z3=(1/4width,oben);
+ z4=(rer,y1);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HNUO =
+ Oh(4.5wp,oben,11.5wp,0);
+ N(lir,7hp,rer,3hp);
+ Ih(hm,oben,hm,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 62,charwidth#,height#+2hp#,depth#);
+ "The syllable HNUOX";
+ eyebrow;
+ HNUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 63,charwidth#,height#+2hp#,depth#);
+ "The syllable HNUO";
+ HNUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 64,charwidth#,height#+2hp#,depth#);
+ "The syllable HNOT";
+ Gasmaske(3wp,oben,9wp,4.5hp);
+ z4=(rer,8.5hp);
+ z5=(11wp,oben);
+ z6=(x5,1.25hp);
+ z7=(1/4width,2.5hp);
+ z8=(x7,0);
+ getpen;
+ draw z4--z5--z6--z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HNO =
+ Smiley(3wp,9.5hp,7.5wp,4.5hp);
+ z4=(rer,8.5hp);
+ z5=(11wp,oben);
+ z6=(x5,1.25hp);
+ z7=(1/4width,2.5hp);
+ z8=(x7,0);
+ getpen;
+ draw z4--z5--z6--z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 65,charwidth#,height#+2hp#,depth#);
+ "The syllable HNOX";
+ eyebrow;
+ HNO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 66,charwidth#,height#+2hp#,depth#);
+ "The syllable HNOP";
+ HNO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HNE =
+ Z(3.25/8width,oben,4.75/8width,7.25hp);
+ Z(3.25/8width,2.75hp,4.75/8width,0);
+ x1=x3=lir;
+ x4=x6=rer;
+ x2-2wp=x5+2wp=hm;
+ y1=y4=7hp;
+ y2=y5=5hp;
+ y3=y6=3hp;
+ getpen;
+ draw z1{right}..tension 1.5..z2..tension 1.5..{left}z3;
+ draw z4{left}..tension 1.5..z5..tension 1.5..{right}z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 67,charwidth#,height#+2hp#,depth#);
+ "The syllable HNEX";
+ eyebrow;
+ HNE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 68,charwidth#,height#+2hp#,depth#);
+ "The syllable HNE";
+ HNE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 69,charwidth#,height#+2hp#,depth#);
+ "The syllable HNEP";
+ Z(3.25/8width,oben,4.75/8width,6.25hp);
+ Z(3.25/8width,3.75hp,4.75/8width,0);
+ x1=x3=lir;
+ x4=x6=rer;
+ x2+3wp=x5-3wp=hm;
+ y1=y4=oben;
+ y2=y5=5hp;
+ y3=y6=0;
+ getpen;
+ draw z1..z2..z3; draw z4..z5..z6;
+ draw z2--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 70,charwidth#,height#+2hp#,depth#);
+ "The syllable HNUT";
+ z4=(rer,8.5hp);
+ z5=(11wp,oben);
+ z6=(x5,1.25hp);
+ z7=(1/4width,2.5hp);
+ z8=(x7,0);
+
+ z21=(9wp,oben);
+ z22=(x21,7.5hp);
+ z23=(x21,6.5hp);
+ z24=(x21,4hp);
+ z25=(5wp,13.5/24[y21,y22]);
+ z26=(5wp,10.5/24[y23,y24]);
+
+ getpen;
+ draw z4--z5--z6--z7--z8;
+ draw z21{left}..{right}z22;
+ draw z23{left}..{right}z24;
+ draw z25{left}..tension 1.1..{right}z26;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 71,charwidth#,height#+2hp#,depth#);
+ "The syllable HLIT";
+ Liane(4wp,oben,12wp,8hp);
+ N(lir,7hp,rer,3.5hp);
+ Huegel(3wp,3.5hp,13wp,0);
+ z1=(hm,8hp); z2=(x1,0);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLI =
+ Liane(4wp,oben,12wp,8hp);
+ Huegel(3wp,3hp,13wp,0);
+ z1=(hm,8hp); z2=(x1,0);
+ z3=(rer,8hp);
+ z4=(rer,7hp);
+ z5=(hm,y4);
+ z6=(lir,1/2[y4,y8]);
+ z7=(hm,y8);
+ z8=(rer,4hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4---z5..z6..z7---z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 72,charwidth#,height#+2hp#,depth#);
+ "The syllable HLIX";
+ eyebrow;
+ HLI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 73,charwidth#,height#+2hp#,depth#);
+ "The syllable HLI";
+ HLI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 74,charwidth#,height#+2hp#,depth#);
+ "The syllable HLIP";
+ Oh(lir,oben,rer,1.5hp);
+ Liane(lir,oben,rer,7hp);
+ z1=(lir,1.5hp);
+ z2=(hm,0);
+ z3=(rer,y1);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLIE =
+ Oh(5wp,oben,11wp,7hp);
+ N(lir,7hp,rer,3.5hp);
+ Huegel(3wp,3.5hp,13wp,0);
+ z1=(hm,7hp); z2=(x1,0);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 75,charwidth#,height#+2hp#,depth#);
+ "The syllable HLIEX";
+ eyebrow;
+ HLIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 76,charwidth#,height#+2hp#,depth#);
+ "The syllable HLIE";
+ HLIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 77,charwidth#,height#+2hp#,depth#);
+ "The syllable HLIEP";
+ Liane(5wp,oben,11wp,8.5hp);
+ Huegel(lir,4hp,13wp,0);
+ z1=(rer,oben);
+ z2=(x1,6.5hp);
+ z3=(7.5wp,7.25hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 78,charwidth#,height#+2hp#,depth#);
+ "The syllable HLAT";
+ Oh(lir,oben,5/8width,0);
+ N(3/8width,8hp,rer,1/4height);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLA =
+ z1=(10wp,oben); z2=(x1,0);
+ z3=(13wp,9hp); z4=(x3,1/5[y3,y8]);
+ z5=(x3,2/5[y3,y8]); z6=(x3,3/5[y3,y8]);
+ z7=(x3,4/5[y3,y8]); z8=(x3,1hp);
+ z9=(x1,8hp); z10=(lir,vm); z11=(x1,2hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4; draw z5--z6; draw z7--z8;
+ draw z9{left}..z10..{right}z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 79,charwidth#,height#+2hp#,depth#);
+ "The syllable HLAX";
+ eyebrow;
+ HLA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 80,charwidth#,height#+2hp#,depth#);
+ "The syllable HLA";
+ HLA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 81,charwidth#,height#+2hp#,depth#);
+ "The syllable HLAP";
+ Sichel(lir,oben,11wp,0);
+ Liane(hm,7.5hp,rer,4.5hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLUO =
+ z1=(lir,oben);
+ z2=(3/4width,vm);
+ z3=(lir,0);
+ z4=(rer,oben);
+ z5=(1/4width,y2);
+ z6=(rer,0);
+ z7=(hm,4.25hp);
+ z8=(x7,2.5hp);
+ z9=(lir,vm);
+ z10=(rer,y9);
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+ draw z7--z8;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 82,charwidth#,height#+2hp#,depth#);
+ "The syllable HLUOX";
+ eyebrow;
+ HLUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 83,charwidth#,height#+2hp#,depth#);
+ "The syllable HLUO";
+ HLUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 84,charwidth#,height#+2hp#,depth#);
+ "The syllable HLUOP";
+ Oh(lir,oben,rer,0);
+ Liane(lir,oben,rer,6hp);
+ z1=(hm,4hp);
+ z2=(hm,2hp);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLO =
+ z1=(5wp,oben);
+ z2=(x1,0);
+ z3=(lir,2hp);
+ z4=(9.5wp,9.5hp);
+ z5=(x4,0);
+ z6=(x1,6hp); z7=(13wp,y6);
+ z8=(rer,7hp); z9=(rer,9.5hp);
+
+ z16=(x1,2hp); z17=(13wp,y16);
+ z18=(rer,3hp); z19=(rer,5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7{right}..{up}z8--z9;
+ draw z16--z17{right}..{up}z18--z19;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 85,charwidth#,height#+2hp#,depth#);
+ "The syllable HLOX";
+ eyebrow;
+ HLO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 86,charwidth#,height#+2hp#,depth#);
+ "The syllable HLO";
+ HLO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 87,charwidth#,height#+2hp#,depth#);
+ "The syllable HLOP";
+ Oh(lir,oben,rer,0);
+ z1=(lir,oben);
+ z2=(hm,6hp);
+ z3=(rer,oben);
+ getpen;
+ draw z1{down}..tension 1.2..z2..tension 1.2..{up}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLE =
+ Oh(lir,oben,rer,0);
+ z1=(3wp,7hp);
+ z2=(rer,vm);
+ z3=(x1,3hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 88,charwidth#,height#+2hp#,depth#);
+ "The syllable HLEX";
+ eyebrow;
+ HLE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 89,charwidth#,height#+2hp#,depth#);
+ "The syllable HLE";
+ HLE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 90,charwidth#,height#+2hp#,depth#);
+ "The syllable HLEP";
+ Oh(lir,oben,rer,0);
+ z1=(lir,vm);
+ z2=(rer,y1);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 91,charwidth#,height#+2hp#,depth#);
+ "The syllable HLUT";
+ z4=(rer,8.5hp);
+ z5=(8wp,oben);
+ z6=(x5,1.25hp);
+ z7=(lir,2.5hp);
+ z8=(x7,0);
+ z9=(lir,6.5hp);
+ z10=(rer,y9);
+ z11=(lir,4.5hp);
+ z12=(rer,y11);
+
+ getpen;
+ draw z4--z5--z6--z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLU =
+ z1=(rer,oben);
+ z2=(7wp,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,0);
+ z6=(5wp,9.5hp);
+ z7=(3wp,1/2[y6,y8]);
+ z8=(x6,6hp);
+ z9=(x6,4hp);
+ z10=(x7,1/2[y9,y11]);
+ z11=(x6,0.5hp);
+ getpen;
+ draw z1{left}..z2..{right}z3 &
+ z3{left}..z4..{right}z5;
+ draw z6..z7..z8;
+ draw z9..z10..z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 92,charwidth#,height#+2hp#,depth#);
+ "The syllable HLUX";
+ eyebrow;
+ HLU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 93,charwidth#,height#+2hp#,depth#);
+ "The syllable HLU";
+ HLU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 94,charwidth#,height#+2hp#,depth#);
+ "The syllable HLUP";
+ Oh(lir,oben,rer,6.25hp);
+ z1=(5/8width,6.3hp);
+ z2=(7wp,1/2[y1,y3]);
+ z3=(13wp,1/2[y1,y5]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(rer,0);
+ z6=(3wp,5.5hp); z7=(x6,4hp);
+ z9=(x6,2.5hp); z10=(x6,1hp);
+ getpen;
+ draw z1{left}..z2..{right}z3 &
+ z3{left}..z4..{right}z5;
+ draw z6--z7;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLUR =
+ Oh(lir,oben,rer,0);
+ z1=(lir,0);
+ z2=(5wp,4hp);
+ z3=(rer,0);
+ z4=(11wp,4hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 95,charwidth#,height#+2hp#,depth#);
+ "The syllable HLURX";
+ eyebrow;
+ HLUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 96,charwidth#,height#+2hp#,depth#);
+ "The syllable HLUR";
+ HLUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 97,charwidth#,height#+2hp#,depth#);
+ "The syllable HLYT";
+ Liane(5wp,oben,rer,7hp);
+ Huegel(lir,3hp,11wp,0);
+ z1=(1/2[5wp,rer],7hp);
+ z2=(x1,4.25hp);
+ z3=(x4,5.75hp);
+ z4=(1/2[lir,11wp],3hp);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLY =
+ Liane(lir,oben,rer,5.5hp);
+ z1=(hm,oben);
+ z2=(hm,0);
+ z3=(hm,3.5hp);
+ z4=(lir,4.5hp);
+ z5=(lir,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 98,charwidth#,height#+2hp#,depth#);
+ "The syllable HLYX";
+ eyebrow;
+ HLY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 99,charwidth#,height#+2hp#,depth#);
+ "The syllable HLY";
+ HLY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(100,charwidth#,height#+2hp#,depth#);
+ "The syllable HLYP";
+ Huegel(6wp,oben,13wp,8hp);
+ Z(lir,8hp,7wp,0);
+ Z(9wp,8hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HLYR =
+ z4=(rer,8.5hp);
+ z5=(11wp,oben);
+ z6=(x5,1.5hp);
+ z7=(1/4width,3hp);
+ z8=(x7,0);
+ z9=(lir,5.75hp);
+ z10=(x7,5.25hp);
+ z11=(x10,8.25hp);
+ z12=(x5,6.75hp);
+ z13=(7.5wp,oben);
+ z14=(x13,y10);
+
+ getpen;
+ draw z4--z5--z6--z7--z8;
+ draw z9--z10--z11--z12;
+ draw z13--z14;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(101,charwidth#,height#+2hp#,depth#);
+ "The syllable HLYRX";
+ eyebrow;
+ HLYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(102,charwidth#,height#+2hp#,depth#);
+ "The syllable HLYR";
+ HLYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(103,charwidth#,height#+2hp#,depth#);
+ "The syllable HXIT";
+ N(lir,oben,rer,6hp);
+ N(lir,4hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HXI =
+ IXI(lir,9hp,rer,1hp);
+ z1=(hm,oben);
+ z2=(x1,8hp);
+ z3=(x1,2hp);
+ z4=(hm,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(104,charwidth#,height#+2hp#,depth#);
+ "The syllable HXIX";
+ eyebrow;
+ HXI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(105,charwidth#,height#+2hp#,depth#);
+ "The syllable HXI";
+ HXI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(106,charwidth#,height#+2hp#,depth#);
+ "The syllable HXIP";
+ z1=(lir,oben);
+ z2=(rer,oben);
+ z3=(3/4width,oben);
+ z4=(x3,0);
+ z5=(x3,9hp);
+ z6=(3wp,1/2[y5,y7]);
+ z7=(x3,1/2[y5,y4]);
+ z8=(x6,1/2[y7,y4]);
+
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5{left}..z6..{right}z7&z7{left}..z8..{right}z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(107,charwidth#,height#+2hp#,depth#);
+ "The syllable HXIET";
+ II(3wp,9hp,9wp,6hp);
+ z1=(13wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ z4=(lir,4.5hp);
+ z5=(10wp,y4);
+ getpen;
+ draw z1---z2--z3;
+ draw z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HXIE =
+ Z(lir,7hp,4/8width,0);
+ x1=x3=rer;
+ x2=4/8width;
+ y1=oben;
+ y2=1/2[y1,y3];
+ y3=1hp;
+ z4=(x2,5.75hp);
+ z5=(13wp,3.75hp);
+ z6=(x5,6.75hp);
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+ draw z4--z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(108,charwidth#,height#+2hp#,depth#);
+ "The syllable HXIEX";
+ eyebrow;
+ HXIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(109,charwidth#,height#+2hp#,depth#);
+ "The syllable HXIE";
+ HXIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(110,charwidth#,height#+2hp#,depth#);
+ "The syllable HXIEP";
+ Oh(lir,oben,10wp,0);
+ z1=(10wp,vm);
+ z2=(rer,y1);
+ z3=(1/2[x1,x2],9hp);
+ z4=(x3,6.5hp);
+ z5=(x3,3.5hp);
+ z6=(x3,1hp);
+
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(111,charwidth#,height#+2hp#,depth#);
+ "The syllable HXAT";
+ z11=(13wp,8hp);
+ z12=(17/32width,oben);
+ z13=(x12,2hp);
+ z14=(lir,y13);
+ z15=(x12,4hp);
+ z16=(x11,y15);
+
+ z1=(1/4width,8hp);
+ z2=(hm,6hp);
+ z3=(3wp,oben);
+ z4=(lir,1/2[y3,y5]);
+ z5=(x3,6hp);
+ getpen;
+ draw z1--z2;
+ draw z3..z4..z5;
+ draw z11--z12---z13{down}..z14..{right}z15..z16;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HXA =
+ Z(1/4width,oben,13wp,0);
+ z1=(1/4width,8hp);
+ z2=(8wp,6hp);
+ z3=(3wp,oben);
+ z4=(lir,8hp);
+ z5=(x3,6hp);
+ getpen;
+ draw z1--z2;
+ draw z3..z4..z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(112,charwidth#,height#+2hp#,depth#);
+ "The syllable HXAX";
+ eyebrow;
+ HXA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(113,charwidth#,height#+2hp#,depth#);
+ "The syllable HXA";
+ HXA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(114,charwidth#,height#+2hp#,depth#);
+ "The syllable HXAP";
+ Z(1/4width,oben,13wp,0);
+ z1=(1/4width,8hp);
+ z2=(8wp,6hp);
+ z3=(3wp,oben);
+ z4=(lir,7.5hp);
+ z5=(x3,5hp);
+ z6=(1/2[x3,hm],9.5hp);
+ z7=(x6,8.25hp);
+ z8=(x6,6.25hp);
+ z9=(x6,5hp);
+ getpen;
+ draw z1--z2;
+ draw z3..z4..z5;
+ draw z6--z7;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(115,charwidth#,height#+2hp#,depth#);
+ "The syllable HXUOT";
+ Liane(lir,oben,7wp,5.5hp);
+ Liane(9wp,oben,rer,5.5hp);
+ Liane(1/2[lir,7wp],4.5hp,1/2[9wp,rer],0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HXUO =
+ z1=(rer,oben);
+ z2=(1/4width,vm);
+ z3=(rer,0);
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(116,charwidth#,height#+2hp#,depth#);
+ "The syllable HXUOX";
+ eyebrow;
+ HXUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(117,charwidth#,height#+2hp#,depth#);
+ "The syllable HXUO";
+ HXUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(118,charwidth#,height#+2hp#,depth#);
+ "The syllable HXUOP";
+ Liane(lir,oben,7wp,5.5hp);
+ Liane(9wp,oben,rer,5.5hp);
+ Oh(1/2[lir,7wp],4.5hp,1/2[9wp,rer],0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(119,charwidth#,height#+2hp#,depth#);
+ "The syllable HXOT";
+ S(lir,8hp,3/4width,2hp);
+ z1=(lir,oben);
+ z2=(3/4width,oben);
+ z3=(rer,9hp);
+ z4=(rer,1hp);
+ z5=(x2,0);
+ z6=(lir,0);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HXO =
+ Z(1/4width,oben,13wp,0);
+ z1=(1/4width,8hp);
+ z2=(8wp,6hp);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(120,charwidth#,height#+2hp#,depth#);
+ "The syllable HXOX";
+ eyebrow;
+ HXO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(121,charwidth#,height#+2hp#,depth#);
+ "The syllable HXO";
+ HXO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(122,charwidth#,height#+2hp#,depth#);
+ "The syllable HXOP";
+ IXI(lir,oben,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def HXE =
+ Liane(lir,oben,rer,7.5hp);
+ Oh(lir+1wp,6.5hp,rer-1wp,3.5hp);
+ Huegel(lir,2.5hp,rer,0);
+ z1=(hm,oben);
+ z2=(hm,0);
+
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(123,charwidth#,height#+2hp#,depth#);
+ "The syllable HXEX";
+ eyebrow;
+ HXE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(124,charwidth#,height#+2hp#,depth#);
+ "The syllable HXE";
+ HXE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(125,charwidth#,height#+2hp#,depth#);
+ "The syllable HXEP";
+ z4=(rer,8.5hp);
+ z5=(10wp,oben);
+ z6=(x5,0);
+
+ z1=(lir,5.75hp);
+ z2=(x1,9hp);
+ z3=(x5,7.5hp);
+ z7=(x1,1hp);
+ z8=(x1,4.25hp);
+ z9=(x5,2.75hp);
+ getpen;
+ draw z4--z5--z6;
+ draw z1--z2--z3;
+ draw z7--z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(126,charwidth#,height#+2hp#,depth#);
+ "The syllable JIT";
+ N(lir,6.75hp,rer,3.25hp);
+ Huegel(3wp,oben,13wp,8hp);
+ Liane(3wp,2hp,13wp,0);
+ z1=(hm,8hp);
+ z2=(x1,2hp);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JI =
+ N(lir,7.5hp,rer,2.5hp);
+ z1=(hm,oben);
+ z2=(x1,7hp);
+ z3=(x1,3hp);
+ z4=(x1,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(127,charwidth#,height#+2hp#,depth#);
+ "The syllable JIX";
+ eyebrow;
+ JI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(128,charwidth#,height#+2hp#,depth#);
+ "The syllable JI";
+ JI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(129,charwidth#,height#+2hp#,depth#);
+ "The syllable JIP";
+ z1=(lir,oben);
+ z2=(rer,oben);
+ z3=(lir,0);
+ z4=(rer,0);
+ z5=4/5[z1,z2];
+ z6=(x5,4.5hp);
+ z7=(x8,5.5hp);
+ z8=1/5[z3,z4];
+ z9=(hm,8.5hp);
+ z10=(hm,7hp);
+ z11=(hm,3hp);
+ z12=(hm,1.5hp);
+ getpen;
+ draw z1--z2; draw z3--z4; draw z5--z6--z7--z8;
+ draw z9--z10; draw z11--z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(130,charwidth#,height#+2hp#,depth#);
+ "The syllable JIET";
+ x1=lir; y1=2hp;
+ x2=x3=lir+4wp;
+ y2=y6=0; y3=y7=oben;
+ x4=x6=x7=12wp;
+ x5=x6-2.5/8width;
+ y5=2hp;
+ y4=y3-1.5hp;
+ x8=14wp; y8=y7-1hp;
+ z11=(lir,7hp);
+ z12=(x2,6hp);
+ z13=(lir,4hp);
+ z14=(x2,3hp);
+ z15=(lir,1hp);
+ z16=(x2,0hp);
+ z17=(hm+0.5wp,y11);
+ z18=(x6,y12);
+ z19=(x17,y13);
+ z20=(x6,y14);
+ z21=(x17,y15);
+ z22=(x6,y16);
+ getpen;
+ draw z2--z3--z4;
+ draw z6--z7--z8;
+ draw z11--z12;
+ draw z13--z14;
+ draw z15--z16;
+ draw z17--z18;
+ draw z19--z20;
+ draw z21--z22;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JIE =
+ z1=(4wp,vm);
+ z2=(12wp,y1);
+ z3=(rer,oben);
+ z4=(rer,8hp);
+ z5=(x2,9hp);
+ z6=(x5,0);
+ z13=(x1,oben);
+ z14=(x13,1hp);
+ z15=(lir,2hp);
+ z16=(x15,0);
+ z7=(hm,9hp);
+ z8=(hm,6.75hp);
+ z9=(hm,3.25hp);
+ z10=(hm,1hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4--z5--z6;
+ draw z13--z14--z15--z16;
+ draw z7--z8;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(131,charwidth#,height#+2hp#,depth#);
+ "The syllable JIEX";
+ eyebrow;
+ JIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(132,charwidth#,height#+2hp#,depth#);
+ "The syllable JIE";
+ JIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(133,charwidth#,height#+2hp#,depth#);
+ "The syllable JIEP";
+ z1=(lir,oben);
+ z2=(3/4width,vm);
+ z3=(lir,0);
+ z4=(rer,oben);
+ z5=(1/4width,y2);
+ z6=(rer,0);
+ z7=(lir,6hp);
+ z8=(rer,y7);
+ z9=(lir,4hp);
+ z10=(rer,y9);
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+ draw z7--z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(134,charwidth#,height#+2hp#,depth#);
+ "The syllable JUOT";
+ Oh(lir,oben,rer,0);
+ Liane(lir,oben,rer,7hp);
+ Huegel(lir,3hp,rer,0);
+ z1=(hm,12/24height);
+ z2=(hm,8/24height);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JUO =
+ Liane(5wp,oben,11wp,7.5hp);
+ Busen(lir,7.5hp,rer,4.5hp);
+ z1=(hm,4hp);
+ z2=(x1,0hp);
+ z3=(lir,y2);
+ getpen;
+ draw z1---z2;%
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(135,charwidth#,height#+2hp#,depth#);
+ "The syllable JUOX";
+ eyebrow;
+ JUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(136,charwidth#,height#+2hp#,depth#);
+ "The syllable JUO";
+ JUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(137,charwidth#,height#+2hp#,depth#);
+ "The syllable JUOP";
+ Oh(lir,oben,5/8width,0);
+ Z(4wp,8hp,8wp,2hp);
+ z4=(rer,9hp);
+ z5=(5/8width,vm);
+ z6=(rer,1hp);
+ getpen;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(138,charwidth#,height#+2hp#,depth#);
+ "The syllable JOT";
+ Busen(lir,oben,rer,6hp);
+ Plus(lir+1wp,5.5hp,rer-1wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JO =
+ Busen(lir,oben,rer,6hp);
+ z1=(hm,5.75hp);
+ z2=(x1,2hp);
+ z3=(lir,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(139,charwidth#,height#+2hp#,depth#);
+ "The syllable JOX";
+ eyebrow;
+ JO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(140,charwidth#,height#+2hp#,depth#);
+ "The syllable JO";
+ JO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(141,charwidth#,height#+2hp#,depth#);
+ "The syllable JOP";
+ Liane(5wp,oben,11wp,7.5hp);
+ Busen(lir,7.5hp,rer,4.5hp);
+ z1=(hm,4hp);
+ z2=(x1,2hp);
+ z3=(lir,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(142,charwidth#,height#+2hp#,depth#);
+ "The syllable JUT";
+ Oh(lir,oben,rer,0);
+ Z(5wp,8hp,11wp,2hp);
+ z1=(5wp,vm);
+ z2=(11wp,y1);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JU =
+ Oh(9wp,7hp,rer,3hp);
+ z4=(rer,oben);
+ z5=(1/4width,vm);
+ z6=(rer,0);
+ getpen;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(143,charwidth#,height#+2hp#,depth#);
+ "The syllable JUX";
+ eyebrow;
+ JU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(144,charwidth#,height#+2hp#,depth#);
+ "The syllable JU";
+ JU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(145,charwidth#,height#+2hp#,depth#);
+ "The syllable JUP";
+ Oh(3.25/8width,6.5hp,5.5/8width,3hp);
+ z1=(rer,2hp);
+ z2=(hm,0);
+ z3=(lir,5hp);
+ z4=(hm,9hp);
+ z5=(rer,7.5hp);
+ z6=(rer,oben);
+ getpen;
+ draw z1..z2..z3..z4..z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JUR =
+ U(lir,oben,rer,0);
+ Z(5wp,9hp,11wp,2hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(146,charwidth#,height#+2hp#,depth#);
+ "The syllable JURX";
+ eyebrow;
+ JUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(147,charwidth#,height#+2hp#,depth#);
+ "The syllable JUR";
+ JUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(148,charwidth#,height#+2hp#,depth#);
+ "The syllable JYT";
+ x1=x2=hm;
+ x3=3/4width=x5;
+ x4=1/4width;
+ y1=0;
+ y2=oben;
+ y3=8hp;
+ y4=y5=vm;
+ z6=(4wp,7.5hp);
+ z7=(lir,vm);
+ z8=(4wp,2.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6..z7..z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JY =
+ z1=(rer,9hp);
+ z2=(7wp,oben);
+ z3=(6.5wp,9.5hp);
+ z4=(x3,0.5hp);
+ z5=(x2,0);
+ z6=(x1,1hp);
+ z7=(3wp,8hp);
+ z8=(x7,2hp);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+ draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(149,charwidth#,height#+2hp#,depth#);
+ "The syllable JYX";
+ eyebrow;
+ JY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(150,charwidth#,height#+2hp#,depth#);
+ "The syllable JY";
+ JY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(151,charwidth#,height#+2hp#,depth#);
+ "The syllable JYP";
+ Plus(5wp,8hp,rer,2hp);
+ z1=(rer,9hp);
+ z2=(x3+1/32width,oben);
+ z3=(3wp,9.5hp);
+ z4=(x3,0.5hp);
+ z5=(x2,0);
+ z6=(x1,1hp);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JYR =
+ z1=(13wp,oben);
+ z2=(x1,7.75hp);
+ z3=(9wp,9hp);
+ z4=(x3,0);
+ z5=(5wp,6hp);
+ z6=(x3,y5);
+ z7=(x5,8.5hp);
+ z8=(lir,6hp);
+ z9=(x5,3.5hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+ draw z7..z8..z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(152,charwidth#,height#+2hp#,depth#);
+ "The syllable JYRX";
+ eyebrow;
+ JYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(153,charwidth#,height#+2hp#,depth#);
+ "The syllable JYR";
+ JYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(154,charwidth#,height#+2hp#,depth#);
+ "The syllable JJIT";
+ Liane(lir,oben,rer,6.5hp);
+ II(3wp,6hp,13wp,4hp);
+ Huegel(lir,3.5hp,rer,0);
+ z1=(hm,6.5hp); z2=(x1,3.5hp);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JJI =
+ Brunnen(lir,oben,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(155,charwidth#,height#+2hp#,depth#);
+ "The syllable JJIX";
+ eyebrow;
+ JJI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(156,charwidth#,height#+2hp#,depth#);
+ "The syllable JJI";
+ JJI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(157,charwidth#,height#+2hp#,depth#);
+ "The syllable JJIP";
+ z1=(rer,8hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ z4=(3wp,1/2[y5,0]);
+ z5=(x2,6hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ z6=(2.5wp,oben);
+ z7=(7wp,1/2[y6,y8]);
+ z8=(x6,6hp);
+ z9=(lir,1/2[y6,y8]);
+ z10=(x2,y9);
+ draw z6{right}..tension 1.2..z7..tension 1.2..{left}z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(158,charwidth#,height#+2hp#,depth#);
+ "The syllable JJIET";
+ Liane(2wp,oben,14wp,6hp);
+ z1=(hm,6hp);
+ z2=(hm,1.5hp);
+ z3=(lir,y2);
+ z5=(4wp,vm);
+ z6=(x5,3hp);
+ z7=(12wp,y5);
+ z8=(x7,y6);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JJIE =
+ z1=(3wp,9hp);
+ z2=(6wp,y1);
+ z3=(hm,5.5hp);
+ z4=(10wp,y1);
+ z5=(13wp,y1);
+ z6=(1/4width,4.5hp);
+ z7=(3/4width,y6);
+
+ z8=(hm,1hp);
+ z9=(1/4width,y8);
+
+ getpen;
+ draw z1{up}..{down}z2..tension 1.6..z3..tension 1.6..z4{up}..{down}z5;
+ draw z6--z7;
+ draw z3---z8{down}..{up}z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(159,charwidth#,height#+2hp#,depth#);
+ "The syllable JJIEX";
+ eyebrow;
+ JJIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(160,charwidth#,height#+2hp#,depth#);
+ "The syllable JJIE";
+ JJIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(161,charwidth#,height#+2hp#,depth#);
+ "The syllable JJIEP";
+ Liane(lir,oben,rer,6hp);
+ II(1/4width,4.5hp,3/4width,2.5hp);
+ z1=(hm,6hp); z2=(x1,0);
+ z3=(hm,oben); z4=(x3,8.5hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JJUO =
+ x7=x9=lir;
+ x4=x6=rer;
+ x8+1.5wp=x5-1.5wp=hm;
+ y7=y4=oben;
+ y8=y5=1/2[y4,y6];
+ y6=y9=4hp;
+ getpen;
+ draw z4..z5..z6;
+ draw z7..z8..z9;
+
+ x1=lir;x2=hm;x3=rer;
+ y1=y3=0;
+ y2=4hp;
+ getpen;
+ draw z1{up}..tension 1.2..z2..tension 1.2..{down}z3;
+
+ z11=(lir,2/3[y7,y9]);
+ z12=(lir,1/3[y7,y9]);
+ z13=(rer,y11);
+ z14=(rer,y12);
+ z15=(hm,2.5hp);
+ z16=(hm,1/24height);
+ draw z11--z12;
+ draw z13--z14;
+ draw z15--z16;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(162,charwidth#,height#+2hp#,depth#);
+ "The syllable JJUOX";
+ eyebrow;
+ JJUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(163,charwidth#,height#+2hp#,depth#);
+ "The syllable JJUO";
+ JJUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(164,charwidth#,height#+2hp#,depth#);
+ "The syllable JJUOP";
+ Oh(lir,6.5hp,5wp,3.5hp);
+ x1=x6=1/4width;x2=x7=hm;x3=x8=rer;
+ y1=y3=oben;
+ y2=6hp;
+ y7=4hp;
+ y6=y8=0;
+ getpen;
+ draw z1{down}..tension 1.2..z2..tension 1.2..{up}z3;
+ draw z6{up}..tension 1.2..z7..tension 1.2..{down}z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(165,charwidth#,height#+2hp#,depth#);
+ "The syllable JJOT";
+ Huegel(lir,8hp,8wp,5hp);
+ Huegel(lir,4hp,8wp,1hp);
+ z1=(14wp,oben);
+ z2=(x1,7.75hp);
+ z3=(10wp,9hp);
+ z4=(x3,0);
+ z5=(x3,8hp);
+ z6=(5wp,oben);
+ z7=(x6,0);
+
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JJO =
+ z1=(14wp,oben);
+ z2=(x1,8hp);
+ z3=(10wp,10hp);
+ z4=(x3,0);
+ z5=(x3,8hp);
+ z6=(5wp,oben);
+ z7=(x6,0);
+
+ z8=(lir,6hp);
+ z9=(8wp,y8);
+ z10=(lir,4hp);
+ z11=(x9,y10);
+ getpen;
+ draw z2--z3--z4;
+ draw z5--z6--z7;
+ draw z8--z9; draw z10--z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(166,charwidth#,height#+2hp#,depth#);
+ "The syllable JJOX";
+ eyebrow;
+ JJO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(167,charwidth#,height#+2hp#,depth#);
+ "The syllable JJO";
+ JJO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(168,charwidth#,height#+2hp#,depth#);
+ "The syllable JJOP";
+ x7=x9=lir;
+ x4=x6=rer;
+ x8+1.5wp=x5-1.5wp=hm;
+ y7=y4=oben;
+ y8=y5=1/2[y4,y6];
+ y6=y9=4hp;
+ getpen;
+ draw z4..z5..z6;
+ draw z7..z8..z9;
+
+ x1=lir;x2=hm;x3=rer;
+ y1=y3=0;
+ y2=4hp;
+ getpen;
+ draw z1{up}..tension 1.2..z2..tension 1.2..{down}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(169,charwidth#,height#+2hp#,depth#);
+ "The syllable JJUT";
+ Oh(2wp,oben,14wp,5.75hp);
+ z1=(hm,5.75hp);
+ z2=(hm,4.5hp);
+ z3=(lir,2.5hp);
+ z4=(hm,0);
+ z5=(rer,2hp);
+ getpen;
+ draw z1--z2{left}..z3..z4..z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JJU =
+ Huegel(2wp,4hp,14wp,0);
+ z1=(hm,10hp); z2=(x1,0);
+ z3=(rer,10hp);
+ z4=(rer,9hp);
+ z5=(hm,y4);
+ z6=(lir,1/2[y4,y8]);
+ z7=(hm,y8);
+ z8=(rer,5hp);
+ z9=(rer,y6);
+ getpen;
+ draw z1--z2;
+ draw z3--z4---z5..z6..z7---z8;
+ draw z6--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(170,charwidth#,height#+2hp#,depth#);
+ "The syllable JJUX";
+ eyebrow;
+ JJU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(171,charwidth#,height#+2hp#,depth#);
+ "The syllable JJU";
+ JJU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(172,charwidth#,height#+2hp#,depth#);
+ "The syllable JJUP";
+ z1=(hm,oben);
+ z2=(6wp,vm);
+ z3=(hm,0);
+ z4=(10wp,vm);
+ z5=(hm,1.75hp);
+ z6=(hm,3.75hp);
+ z7=(hm,6.25hp);
+ z8=(hm,8.25hp);
+ getpen;
+ draw z1{left}..{right}z2 &
+ z2{left}..{right}z3{right}..{left}z4 &
+ z4{right}..{left}z1 .. cycle;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JJUR =
+ Huegel(2wp,4hp,14wp,0);
+ z1=(hm,10hp); z2=(x1,0);
+ z3=(rer,10hp);
+ z4=(x3,9hp);
+ z5=(hm,y4);
+ z6=(lir,1/2[y4,y8]);
+ z7=(hm,y8);
+ z8=(x3,5hp);
+ getpen;
+ draw z1--z2;
+ draw z4---z5..z6..z7---z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(173,charwidth#,height#+2hp#,depth#);
+ "The syllable JJURX";
+ eyebrow;
+ JJUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(174,charwidth#,height#+2hp#,depth#);
+ "The syllable JJUR";
+ JJUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(175,charwidth#,height#+2hp#,depth#);
+ "The syllable JJYT";
+ N(lir,oben,rer,6.75hp);
+ N(lir,3.25hp,rer,0);
+ z1=(hm,1/2[oben,6.75hp]);
+ z2=(x1,1/2[0,3.25hp]);
+ z3=(1/4width,5.75hp);
+ z4=(x3,4.25hp);
+ z5=(3/4width,y3);
+ z6=(x5,y4);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def JJY =
+ Liane(3.5wp,oben,12.5wp,6hp);
+ z1=(hm,6hp);
+ z2=(hm,1.5hp);
+ z3=(lir,y2);
+ z5=(2wp,oben);
+ z6=(5wp,oben);
+ z7=(11wp,y5);
+ z8=(14wp,y5);
+ z9=(3wp,4.5hp);
+ z10=(13wp,y9);
+
+ getpen;
+ draw z1---z2{down}..{up}z3;
+ draw z5--z6;
+ draw z7--z8;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(176,charwidth#,height#+2hp#,depth#);
+ "The syllable JJYX";
+ eyebrow;
+ JJY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(177,charwidth#,height#+2hp#,depth#);
+ "The syllable JJY";
+ JJY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(178,charwidth#,height#+2hp#,depth#);
+ "The syllable JJYP";
+ ono=8.5hp;
+ onu=5.5hp;
+ uno=4.5hp;
+ unu=1.5hp;
+ II(lir,ono,7wp,onu);
+ II(lir,uno,7wp,unu);
+ z4=(rer,8hp);
+ z5=(10wp,oben);
+ z6=(x5,0);
+ z7=(lir,1/2[ono,onu]);
+ z8=(x5,y7);
+ z9=(lir,1/2[uno,unu]);
+ z10=(x5,y9);
+ getpen;
+ draw z4--z5--z6;
+ draw z7--z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(179,charwidth#,height#+2hp#,depth#);
+ "The syllable KIT";
+ san(6wp,9hp,rer,3hp);
+ z1=(rer,9hp);
+ z2=(x3+1/32width,oben);
+ z3=(3wp,10hp);
+ z4=(x3,0.5hp);
+ z5=(x2,0);
+ z6=(x1,1hp);
+ getpen;
+ draw z3---z4..z5---z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def KI =
+ Arsch(lir+1wp,oben,rer-1wp,0);
+ z1=(lir,7.5hp);
+ z2=(6wp,y1);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(180,charwidth#,height#+2hp#,depth#);
+ "The syllable KIX";
+ eyebrow;
+ KI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(181,charwidth#,height#+2hp#,depth#);
+ "The syllable KI";
+ KI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(182,charwidth#,height#+2hp#,depth#);
+ "The syllable KIP";
+ Sanduhr(lir,oben,rer,0);
+ z1=(hm,9hp);
+ z2=(x1,7hp);
+ z3=(x1,3hp);
+ z4=(x1,1hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def KIE =
+ N(lir,6.25hp,rer,2.5hp);
+ z1=(13wp,oben);
+ z2=(x1,7.75hp);
+ z3=(1/2width,9hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(183,charwidth#,height#+2hp#,depth#);
+ "The syllable KIEX";
+ eyebrow;
+ KIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(184,charwidth#,height#+2hp#,depth#);
+ "The syllable KIE";
+ KIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(185,charwidth#,height#+2hp#,depth#);
+ "The syllable KIEP";
+ IXI(lir,9hp,rer,1hp);
+ z1=(hm,oben);
+ z2=(x1,0);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(186,charwidth#,height#+2hp#,depth#);
+ "The syllable KAT";
+ z1=(rer,9hp);
+ z2=(x3+1/32width,oben);
+ z3=(6wp,9.5hp);
+ z4=(x3,0.5hp);
+ z5=(x2,0);
+ z6=(x1,1hp);
+ z7=(3wp,8hp);
+ z8=(x7,2hp);
+ z9=(x7,1/2[y7,y8]);
+ z10=(x3,y9);
+ z11=(10.5wp,7hp);
+ z12=(x11,3hp);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+ draw z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def KA =
+ Xi(lir,9hp,rer,1hp);
+ z1=(lir,vm);
+ z2=(rer,y1);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(187,charwidth#,height#+2hp#,depth#);
+ "The syllable KAX";
+ eyebrow;
+ KA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(188,charwidth#,height#+2hp#,depth#);
+ "The syllable KA";
+ KA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(189,charwidth#,height#+2hp#,depth#);
+ "The syllable KAP";
+ z4=(rer,8.5hp);
+ z5=(9wp,oben);
+ z6=(x5,1.5hp);
+ z7=(1/4width,3hp);
+ z8=(x7,0);
+
+ z11=(1/4width,9.5hp);
+ z12=(x11,6hp);
+ z13=(rer,7hp);
+ z14=(x13,3hp);
+ z15=(x5,1/2[y13,y14]);
+ z16=(rer,y15);
+
+ getpen;
+ draw z4--z5--z6--z7--z8;
+ draw z11--z12;
+ draw z13--z14;
+ draw z15--z16;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def KUO =
+ ZPimmel(1/4width,oben,13wp,0);
+ Smiley(lir,9hp,6wp,3hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(190,charwidth#,height#+2hp#,depth#);
+ "The syllable KUOX";
+ eyebrow;
+ KUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(191,charwidth#,height#+2hp#,depth#);
+ "The syllable KUO";
+ KUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(192,charwidth#,height#+2hp#,depth#);
+ "The syllable KUOP";
+ Z(lir,oben,3/4width,2.25hp);
+ Oh(2.5wp,8hp,12wp,4hp);
+ Huegel(1/4width,2.25hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(193,charwidth#,height#+2hp#,depth#);
+ "The syllable KOT";
+ z1=(14wp,oben);
+ z2=(x1,8hp);
+ z3=(8wp,9hp);
+ z4=(x3,0);
+ z5=(2wp,7.5hp);
+ z6=(x3,y5);
+
+ z8=(x3,5hp);
+ z9=(14wp,y8);
+ z10=(2wp,2.5hp);
+ z11=(x3,y10);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6;
+ draw z8--z9; draw z10--z11;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def KO =
+ ZPimmel(lir,oben,rer,0);
+ z1=(lir,oben);
+ z2=(5wp,y1-1hp);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,y3-1hp);
+ z5=(x1,5hp);
+ z6=(x2,y5-1hp);
+ getpen;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(194,charwidth#,height#+2hp#,depth#);
+ "The syllable KOX";
+ eyebrow;
+ KO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(195,charwidth#,height#+2hp#,depth#);
+ "The syllable KO";
+ KO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(196,charwidth#,height#+2hp#,depth#);
+ "The syllable KOP";
+ z1=(rer,8hp);
+ z2=(hm,oben);
+ z3=(x2,0);
+ z4=(rer,6.5hp);
+ z5=(lir,1/2[y4,y6]);
+ z6=(rer,2.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4{left}..tension 1.2..z5..tension 1.2..{right}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(197,charwidth#,height#+2hp#,depth#);
+ "The syllable KET";
+ Liane(2.5/8width,oben,5.5/8width,7.5hp);
+ Busen(lir,7.5hp,rer,4hp);
+ z1=(4wp,4hp);
+ z2=(hm,0);
+ z3=(12wp,y1);
+ getpen;
+ draw z1{down}..z2..{up}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def KE =
+ Smiley(1/4width,9.5hp,3/4width,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(198,charwidth#,height#+2hp#,depth#);
+ "The syllable KEX";
+ eyebrow;
+ KE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(199,charwidth#,height#+2hp#,depth#);
+ "The syllable KE";
+ KE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(200,charwidth#,height#+2hp#,depth#);
+ "The syllable KEP";
+ Liane(lir,oben,rer,5hp);
+ III(lir,3.5hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(201,charwidth#,height#+2hp#,depth#);
+ "The syllable KUT";
+ Liane(lir,oben,rer,6hp);
+ z1=(hm,oben);
+ z2=(x1,0);
+ z3=(lir,3.5hp);
+ z4=(rer,y3);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def KU =
+ N(lir,7.5hp,10wp,4.5hp);
+ z1=(12.5wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ z10=(6wp,9hp);
+ z11=(x10,3hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z10--z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(202,charwidth#,height#+2hp#,depth#);
+ "The syllable KUX";
+ eyebrow;
+ KU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(203,charwidth#,height#+2hp#,depth#);
+ "The syllable KU";
+ KU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(204,charwidth#,height#+2hp#,depth#);
+ "The syllable KUP";
+ z1=(hm,oben);
+ z2=(x1,1.5hp);
+ z3=(lir,3hp);
+ z4=(lir,0);
+ z5=(lir,8hp);
+ z6=(rer,y5);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5..z1..z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def KUR =
+ Zdash(lir,oben,9.5wp,3hp);
+ z1=(12.5wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(205,charwidth#,height#+2hp#,depth#);
+ "The syllable KURX";
+ eyebrow;
+ KUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(206,charwidth#,height#+2hp#,depth#);
+ "The syllable KUR";
+ KUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(207,charwidth#,height#+2hp#,depth#);
+ "The syllable LIT";
+ N(lir,6.25hp,rer,2.5hp);
+ z3=(13wp,oben);
+ z4=(x3,7.75hp);
+ z5=(7wp,9hp);
+ z6=(x5,0);
+ z7=(10wp,6.5hp);
+ z8=(x7,2hp);
+ getpen;
+ draw z3--z4--z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LI =
+ z1=(12wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ z10=(5wp,9hp);
+ z11=(x10,4hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z10--z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(208,charwidth#,height#+2hp#,depth#);
+ "The syllable LIX";
+ eyebrow;
+ LI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(209,charwidth#,height#+2hp#,depth#);
+ "The syllable LI";
+ LI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(210,charwidth#,height#+2hp#,depth#);
+ "The syllable LIP";
+ Oh(lir,oben,rer,0);
+ z1=(lir,vm);
+ z2=(rer,y1);
+ z3=(hm,oben);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(211,charwidth#,height#+2hp#,depth#);
+ "The syllable LIET";
+ z1=(12.5wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ z6=(lir,3.5hp);
+ z7=(lir,1/2[y6,y11]);
+ z8=(9wp,y6);
+ z9=(x8,y7);
+ z10=(5.5wp,y7);
+ z11=(x10,9hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z6--z7; draw z8--z9;
+ draw z10--z11;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LIE =
+ z1=(12.5wp,oben);
+ z2=(x1,2hp);
+ z3=(10.5wp,0);
+ z4=(4wp,3hp);
+ z5=(8.5wp,y4);
+ z6=(x4,0);
+
+ z10=(5.5wp,5.5hp);
+ z11=(x10,9hp);
+ getpen;
+ draw z1---z2{down}..z3..tension 1.4..{up}z4{up}..{down}z5..tension 2..z6;
+ draw z10--z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(212,charwidth#,height#+2hp#,depth#);
+ "The syllable LIEX";
+ eyebrow;
+ LIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(213,charwidth#,height#+2hp#,depth#);
+ "The syllable LIE";
+ LIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(214,charwidth#,height#+2hp#,depth#);
+ "The syllable LIEP";
+ Oh(lir,9hp,9.5wp,3.5hp);
+ z1=(12.5wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(215,charwidth#,height#+2hp#,depth#);
+ "The syllable LAT";
+ H(lir,oben,11wp,0);
+ Tdash(rer,oben,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LA =
+ z1=(3/4width,oben);
+ z2=(x1,0);
+ z3=(9wp,2hp);
+ z4=(7wp,8hp);
+ z5=(1/4width,oben);
+ z6=(x5,0);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(216,charwidth#,height#+2hp#,depth#);
+ "The syllable LAX";
+ eyebrow;
+ LA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(217,charwidth#,height#+2hp#,depth#);
+ "The syllable LA";
+ LA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(218,charwidth#,height#+2hp#,depth#);
+ "The syllable LAP";
+ z4=(rer,8.75hp);
+ z5=(9.5wp,oben);
+ z6=(x5,1.25hp);
+ z7=(3wp,2.25hp);
+ z8=(x7,0);
+ z9=(5.5wp,7.5hp);
+ z10=(rer,y9);
+ z11=(x9,4.5hp);
+ z12=(rer,y11);
+
+ z13=(5wp,9.25hp);
+ z14=(x13,1/2[y13,y15]);
+ z15=(x13,3hp);
+ getpen;
+ draw z4--z5--z6--z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+ draw z13{left}..{right}z14&z14{left}..{right}z15;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(219,charwidth#,height#+2hp#,depth#);
+ "The syllable LUOT";
+ z1=(rer,2hp);
+ z2=(hm,0);
+ z3=(lir,1/2[y1,y5]);
+ z4=(hm,7.5hp);
+ z5=(rer,5.75hp);
+ z6=(rer,oben);
+ z7=(3wp,oben); z8=(x7,8.5hp);
+ z9=(7wp,y7); z10=(x9,y8);
+ z11=(11wp,y7); z12=(x11,y8);
+ getpen;
+ draw z1..z2..z3..z4..z5--z6;
+
+ draw z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LUO =
+ Liane(lir,2.5hp,rer,0);
+ Oh(4wp,7hp,12wp,3hp);
+ z1=(hm,0); z2=(x1,oben); z3=(rer,8hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(220,charwidth#,height#+2hp#,depth#);
+ "The syllable LUOX";
+ eyebrow;
+ LUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(221,charwidth#,height#+2hp#,depth#);
+ "The syllable LUO";
+ LUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(222,charwidth#,height#+2hp#,depth#);
+ "The syllable LUOP";
+ Huegel(lir,3.5hp,rer,0);
+ Huegel(lir,7hp,rer,3.5hp);
+ z1=(3wp,oben); z2=(hm,0); z3=(13wp,oben);
+ getpen;
+ draw z1{down}..tension 1.5..z2..tension 1.5..{up}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(223,charwidth#,height#+2hp#,depth#);
+ "The syllable LOT";
+ Liane(lir,oben,rer,6hp);
+ Smiley(5wp,oben,11wp,7hp);
+ z1=(hm,6hp);
+ z2=(hm,1.5hp);
+ z3=(lir,y2);
+ z5=(3wp,4.5hp);
+ z6=(13wp,y5);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LO =
+ Z(lir,oben,rer,0);
+ Oh(3wp,7hp,13wp,3hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(224,charwidth#,height#+2hp#,depth#);
+ "The syllable LOX";
+ eyebrow;
+ LO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(225,charwidth#,height#+2hp#,depth#);
+ "The syllable LO";
+ LO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(226,charwidth#,height#+2hp#,depth#);
+ "The syllable LOP";
+ Arsch(lir,oben,rer,0);
+ z1=(7/32width,6.75hp);
+ z2=(25/32width,y1);
+ z3=(3wp,4.5hp);
+ z4=(13wp,y3);
+ z5=(hm,oben);
+ z6=(x5,2.5hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LE =
+ z1=(3/4width,oben);
+ z2=(x1,1.25hp);
+ z3=(1/4width,2.5hp);
+ z4=(x3,0);
+ z5=(7wp,8hp);
+ z6=(x5,5hp);
+ z7=(5wp,oben);
+ z8=(lir,6.5hp);
+ z9=(1/4width,4hp);
+ getpen;
+ draw z1--z2--z3--z4;draw z5--z6;
+ draw z7..z8..z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(227,charwidth#,height#+2hp#,depth#);
+ "The syllable LEX";
+ eyebrow;
+ LE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(228,charwidth#,height#+2hp#,depth#);
+ "The syllable LE";
+ LE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(229,charwidth#,height#+2hp#,depth#);
+ "The syllable LEP";
+ N(lir,oben,rer,6.5hp);
+ Busen(lir,3.5hp,rer,0);
+ z1=(hm,1/2[oben,6.75hp]);
+ z2=(x1,1/2[0,3.25hp]);
+ z3=(hm,6.25hp);
+ z4=(x3,4.75hp);
+ z5=(3/4width,y3);
+ z6=(x5,y4);
+ getpen;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(230,charwidth#,height#+2hp#,depth#);
+ "The syllable LUT";
+ Smiley(3/8width,8hp,5/8width,2hp);
+ Oh(lir,oben,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LU =
+ Busen(lir,oben,rer,5.5hp);
+ z1=(4wp,5.5hp);
+ z2=(hm,0);
+ z3=(12wp,y1);
+ z4=(hm,3.75hp);
+ z5=(x4,2.25hp);
+ getpen;
+ draw z1{down}..tension 1.2..z2..tension 1.2..{up}z3;
+ draw z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(231,charwidth#,height#+2hp#,depth#);
+ "The syllable LUX";
+ eyebrow;
+ LU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(232,charwidth#,height#+2hp#,depth#);
+ "The syllable LU";
+ LU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(233,charwidth#,height#+2hp#,depth#);
+ "The syllable LUP";
+ X(lir,oben,rer,0);
+ z1=1/6[(lir,oben),(rer,0)];
+ z2=(lir,vm);
+ z3=1/6[(lir,0),(rer,oben)];
+ z4=(x1+1/32width,6hp);
+ z5=(x4,4hp);
+ getpen;
+ draw z1..z2..z3;
+ draw z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LUR =
+ X(lir,oben,rer,0);
+ z1=(hm,oben);
+ z2=(x1,8.5hp);
+ z3=(x1,1.5hp);
+ z4=(x1,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(234,charwidth#,height#+2hp#,depth#);
+ "The syllable LURX";
+ eyebrow;
+ LUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(235,charwidth#,height#+2hp#,depth#);
+ "The syllable LUR";
+ LUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(236,charwidth#,height#+2hp#,depth#);
+ "The syllable LYT";
+ Liane(1/4width,19/24height,rer,6hp);
+ Z(lir,5hp,hm,0);
+ z1=(hm+2/32width,oben);
+ z2=(x1,0);
+ z6=(14/32width,3hp);
+ z7=(x6,1hp);
+ getpen;
+ draw z1--z2;
+ draw z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LY =
+ N(lir,oben,rer,6hp);
+ z1=(hm,8hp);
+ z2=(hm,2hp);
+ z3=(3wp,2hp);
+ z4=(hm,0);
+ z5=(13wp,y3);
+ getpen;
+ draw z1--z2;
+ draw z3..tension 1.2..z4..tension 1.2..z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(237,charwidth#,height#+2hp#,depth#);
+ "The syllable LYX";
+ eyebrow;
+ LY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(238,charwidth#,height#+2hp#,depth#);
+ "The syllable LY";
+ LY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(239,charwidth#,height#+2hp#,depth#);
+ "The syllable LYP";
+ N(lir,oben,rer,6hp);
+ z1=(hm,8hp);
+ z2=(hm,1.5hp);
+ z3=(4wp,3hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def LYR =
+ S(lir,oben,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(240,charwidth#,height#+2hp#,depth#);
+ "The syllable LYRX";
+ eyebrow;
+ LYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(241,charwidth#,height#+2hp#,depth#);
+ "The syllable LYR";
+ LYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(242,charwidth#,height#+2hp#,depth#);
+ "The syllable MIT";
+ Oh(lir,oben,rer,0);
+ z1=(5wp,7hp);
+ z2=(hm,4hp);
+ z3=(11wp,7hp);
+
+ z4=(x1,y2);
+ z5=(x3,y2);
+ z6=(6wp,2.5hp);
+ z7=(10wp,y6);
+
+ getpen;
+ draw z1{(rer,oben)-(lir,0)}..{down}z2 &
+ z2{up}..{(rer,0)-(lir,oben)}z3;
+ draw z4--z5;
+ draw z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MI =
+ z3=(13wp,oben);
+ z4=(x3,8hp);
+ z5=(5.5wp,9hp);
+ z6=(x5,0);
+ z7=(3wp,2hp);
+ z8=(x7,0);
+ z9=(rer,6.5hp);
+ z10=(x5,1/2[y9,y11]);
+ z11=(x9,2hp);
+
+ getpen;
+ draw z3--z4--z5--z6--z7;
+ draw z9--z10--z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(243,charwidth#,height#+2hp#,depth#);
+ "The syllable MIX";
+ eyebrow;
+ MI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(244,charwidth#,height#+2hp#,depth#);
+ "The syllable MI";
+ MI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(245,charwidth#,height#+2hp#,depth#);
+ "The syllable MIP";
+ z3=(13wp,oben);
+ z4=(x3,8hp);
+ z5=(8wp,9hp);
+ z6=(x5,0);
+ z7=(3wp,2hp);
+ z8=(x7,0);
+ z9=(lir,6hp);
+ z10=(rer,y9);
+ z11=(x9,4hp);
+ z12=(rer,y11);
+ getpen;
+ draw z3--z4--z5--z6--z7;
+ draw z9--z10;
+ draw z11--z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MIE =
+ X(9/32width,9hp,23/32width,1hp);
+ Oh(lir,oben,rer,0);
+ z4=(23/32width,6hp);
+ z5=(x4,4hp);
+ getpen;
+ draw z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(246,charwidth#,height#+2hp#,depth#);
+ "The syllable MIEX";
+ eyebrow;
+ MIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(247,charwidth#,height#+2hp#,depth#);
+ "The syllable MIE";
+ MIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(248,charwidth#,height#+2hp#,depth#);
+ "The syllable MIEP";
+ II(3wp,5.5hp,13wp,3hp);
+ z1=(3/4width,oben); z2=(x1,7hp);
+ z3=(hm,8.5hp);z4=(x3,0); z5=(lir,2hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(249,charwidth#,height#+2hp#,depth#);
+ "The syllable MAT";
+ x1=lir; y1=2hp;
+ x2=x3=lir+1wp;
+ y2=y6=0; y3=y7=oben;
+ x4=x6=x7=12wp;
+ x5=x6-2.5/8width;
+ y5=2hp;
+ y4=y3-1.5hp;
+ x8=14wp; y8=y7-1hp;
+ x9=x10=1/2[x2,x6];
+ y9=9.25hp;
+ y10=0hp;
+ x11=x2; x12=x6;
+ y11=y12=5hp;
+ getpen;
+ draw z2--z3--z4;
+ draw z6--z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MA =
+ Oh(1/4width,oben,3/4width,0);
+ Ih(lir,vm,rer,vm);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(250,charwidth#,height#+2hp#,depth#);
+ "The syllable MAX";
+ eyebrow;
+ MA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(251,charwidth#,height#+2hp#,depth#);
+ "The syllable MA";
+ MA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(252,charwidth#,height#+2hp#,depth#);
+ "The syllable MAP";
+ Busen(lir,oben,rer,6hp);
+ z1=(hm,5.5hp);
+ z2=(hm,0);
+ z3=(1/4width,4hp);
+ z4=(3/4width,y3);
+ z5=(x3,2hp);
+ z6=(x4,y5);
+ getpen;
+ draw z1--z2; draw z3--z4; draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(253,charwidth#,height#+2hp#,depth#);
+ "The syllable MUOT";
+ U(lir,oben,rer,0);
+ Jalousie(6.5wp,oben,9.5wp,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MUO =
+ Z(lir,8hp,7wp,2.5hp);
+ Z(1/4width,oben,3/4width,0)
+ z1=(hm,6.5hp);
+ z2=(3/4width,5.25hp);
+ z3=(x1,3.5hp);
+ z4=(x2,2.25hp);
+ getpen;
+ draw z1--z2; draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(254,charwidth#,height#+2hp#,depth#);
+ "The syllable MUOX";
+ eyebrow;
+ MUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(255,charwidth#,height#+2hp#,depth#);
+ "The syllable MUO";
+ MUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+end.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font, Part II, ends here. %%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yis-3.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yis-3.mf
new file mode 100644
index 00000000000..17f948eed68
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yis-3.mf
@@ -0,0 +1,2914 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part III
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% This file contains 79 eyebrows.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 0,charwidth#,height#+2hp#,depth#);
+ "The syllable MUOP";
+ Z(lir,oben,8wp,0);
+ Oh(8wp,9.5hp,rer,0.5hp);
+ z1=(3wp,6.5hp);
+ z2=(6.5wp,y1);
+ z3=(x1,3.5hp);
+ z4=(x2,y3);
+ z5=(11wp,y1);
+ z6=(x5,y3);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 1,charwidth#,height#+2hp#,depth#);
+ "The syllable MOT";
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ z6=(7wp,8/24height);
+ z7=(x6,1.75hp);
+ draw z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MO =
+ Huegel(lir,4hp,rer,0);
+ z1=(hm,0);
+ z2=(hm,oben);
+ z3=(13wp,8hp);
+ z4=(hm,7.75hp);
+ z5=(12wp,1/2[y4,y6]);
+ z6=(hm,5.25hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4{right}..z5..{left}z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 2,charwidth#,height#+2hp#,depth#);
+ "The syllable MOX";
+ eyebrow;
+ MO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 3,charwidth#,height#+2hp#,depth#);
+ "The syllable MO";
+ MO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 4,charwidth#,height#+2hp#,depth#);
+ "The syllable MOP";
+ Sichel(lir,oben,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ME =
+ Oh(9wp,7.5hp,rer,2.5hp);
+ z1=(5.5wp,oben);
+ z2=(x1,0);
+ z3=(2wp,2hp);
+ z4=(lir,vm);
+ z6=(9wp,vm);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 5,charwidth#,height#+2hp#,depth#);
+ "The syllable MEX";
+ eyebrow;
+ ME;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 6,charwidth#,height#+2hp#,depth#);
+ "The syllable ME";
+ ME;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 7,charwidth#,height#+2hp#,depth#);
+ "The syllable MUT";
+ II(lir,8hp,5.5wp,4.5hp);
+ z1=(8.5wp,oben);
+ z2=(x1,0);
+ z3=(3wp,2hp);
+ z4=(11wp,9hp);
+ z5=(x1,1/2[y4,y6]);
+ z6=(x4,1hp);
+ % Zwei Hilfspunkte!
+ z7=(lir,y4);
+ z8=(lir,y6);
+ getpen;
+ draw z1--z2--z3;
+ draw z4{z5-z7}..{left}z5&z5{right}..{z8-z5}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MU =
+ z1=(5wp,oben);
+ z2=(x1,0);
+ z3=(2wp,2hp);
+ z4=(x1,vm);
+ z6=(12wp,vm);
+ z7=(x6,oben);
+ z8=(x7,0);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z6;
+ draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 8,charwidth#,height#+2hp#,depth#);
+ "The syllable MUX";
+ eyebrow;
+ MU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 9,charwidth#,height#+2hp#,depth#);
+ "The syllable MU";
+ MU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 10,charwidth#,height#+2hp#,depth#);
+ "The syllable MUP";
+ Oh(lir,6hp,rer,3hp);
+ z1=(3/4width,oben);
+ z2=(hm,7.75hp);
+ z3=(2wp,9hp);
+ z4=(5wp,oben);
+ z5=(x2,2/24height);
+ z6=(3wp,3/24height);
+ z7=(4wp,6hp);
+ z8=(x7,3.5hp);
+ z9=(x2,y7);
+ z10=(x6,y7);
+ z11=(x2,y8);
+ z12=(x6,y8);
+ getpen;
+ draw z1..z2..z3..z4..z2---z5{down}..{z6-(hm,0)}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MUR =
+ z1=(9wp,oben);
+ z2=(x1,0);
+ z3=(3wp,2hp);
+ z4=(5wp,8hp);
+ z5=(x4,4hp);
+ z6=(x1,y4);
+ z7=(rer,y6);
+ z8=(x1,2.5hp);
+ z9=(x7,y8);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7;
+ draw z8--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 11,charwidth#,height#+2hp#,depth#);
+ "The syllable MURX";
+ eyebrow;
+ MUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 12,charwidth#,height#+2hp#,depth#);
+ "The syllable MUR";
+ MUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 13,charwidth#,height#+2hp#,depth#);
+ "The syllable MYT";
+ z1=(11wp,oben);
+ z2=(x1,8hp);
+ z3=(2wp,9hp);
+ z4=(x3,0);
+ z5=(lir,7hp);
+ z6=(11wp,1/2[y5,y7]);
+ z7=(x5,1hp);
+ z8=(rer,y5);
+ z9=(5wp,y6);
+ z10=(x8,y7);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{right}..z6..{left}z7;
+ draw z8{left}..z9..{right}z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MY =
+ Liane(lir,oben,rer,vm);
+ II(3wp,4hp,13wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 14,charwidth#,height#+2hp#,depth#);
+ "The syllable MYX";
+ eyebrow;
+ MY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 15,charwidth#,height#+2hp#,depth#);
+ "The syllable MY";
+ MY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 16,charwidth#,height#+2hp#,depth#);
+ "The syllable MYP";
+ z1=(5wp,oben);
+ z2=(x1,0);
+ z3=(lir,vm);
+ z4=(rer,y3);
+ z5=(11wp,9hp);
+ z6=(x5,6.5hp);
+ z7=(x5,3.5hp);
+ z8=(x5,1hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MGIE =
+ z1=(rer,8hp);
+ z2=(11.5wp,oben);
+ z3=(x2,0);
+ z4=(x2,y1);
+ z5=(6.5wp,oben);
+ z6=(x5,0);
+ z7=(x5,9hp);
+ z8=(lir,1/2[y7,y9]);
+ z9=(x5,1/2[y7,0]);
+ z10=(lir,1/2[y9,0]);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+ draw z7..z8..z9&z9..z10..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 17,charwidth#,height#+2hp#,depth#);
+ "The syllable MGIEX";
+ eyebrow;
+ MGIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 18,charwidth#,height#+2hp#,depth#);
+ "The syllable MGIE";
+ MGIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 19,charwidth#,height#+2hp#,depth#);
+ "The syllable MGAT";
+ Oh(1/4width,oben,rer,0);
+ Ih(10/32width,7hp,26/32width,7hp);
+ Ih(lir,1.5hp,7wp,3.5hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MGA =
+ x2=x3=lir+1wp;
+ y2=y6=0; y3=y7=oben;
+ x4=x9=x10=1/2[x2,x6];
+ x6=x7=11wp;
+ x5=x6-2.5/8width;
+ y5=2hp;
+ y4=y3-1.5hp;
+ x8=14wp; y8=y7-1.5hp;
+ y9=y11=y12=5hp;
+ y10=0hp;
+ x11=x2; x12=x6;
+ getpen;
+ draw z2--z3--z4;
+ draw z6--z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 20,charwidth#,height#+2hp#,depth#);
+ "The syllable MGAX";
+ eyebrow;
+ MGA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 21,charwidth#,height#+2hp#,depth#);
+ "The syllable MGA";
+ MGA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 22,charwidth#,height#+2hp#,depth#);
+ "The syllable MGAP";
+ z1=(7.5wp,oben);
+ z2=(x1,2hp);
+ z3=(3wp,4hp);
+ z4=(x3,0);
+ z5=(x1,7hp);
+ z6=(10wp,y5);
+ z7=(13wp,oben);
+ z8=(x7,4hp);
+ getpen;
+ draw z1--z2--z3--z4; draw z5--z6;
+ draw z7..z6..z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MGUO =
+ Oh(lir,9hp,rer,6.25hp);
+ Oh(lir,3.75hp,rer,1hp);
+ II(3wp,5.5hp,13wp,4.5hp);
+ z1=(hm,oben);
+ z2=(x1,0);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 23,charwidth#,height#+2hp#,depth#);
+ "The syllable MGUOX";
+ eyebrow;
+ MGUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 24,charwidth#,height#+2hp#,depth#);
+ "The syllable MGUO";
+ MGUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 25,charwidth#,height#+2hp#,depth#);
+ "The syllable MGUOP";
+ Oh(3wp,oben,13wp,5.5hp);
+ Huegel(lir,3.5hp,rer,0);
+ Ih(hm,5.5hp,hm,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 26,charwidth#,height#+2hp#,depth#);
+ "The syllable MGOT";
+ Plus(3wp,oben,13wp,5.5hp);
+ Oh(3wp,oben,13wp,5.5hp);
+ Huegel(lir,3.5hp,rer,0);
+ Ih(hm,5.5hp,hm,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MGO =
+ Oh(4wp,oben,rer,6.75hp);
+ Huegel(lir,3.25hp,rer,0);
+ z1=(9.75wp,6.75hp);
+ z2=(x1,4.75hp);
+ z3=(7.5wp,5.25hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 27,charwidth#,height#+2hp#,depth#);
+ "The syllable MGOX";
+ eyebrow;
+ MGO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 28,charwidth#,height#+2hp#,depth#);
+ "The syllable MGO";
+ MGO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 29,charwidth#,height#+2hp#,depth#);
+ "The syllable MGOP";
+ Ih(lir,vm,7wp,vm);
+ z1=(rer,oben);
+ z2=(9wp,1/2[y1,y3]);
+ z3=(rer,vm);
+ z4=(x2,1/2[y5,y3]);
+ z5=(rer,0);
+ z6=(4.5wp,vm);
+ getpen;
+ draw z1..z2..z3&z3..z4..z5;
+ draw z2..z6..z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MGE =
+ Ih(13wp,8.5hp,13wp,7hp);
+ Ih(13wp,1.5hp,13wp,3hp);
+ Ih(6wp,6hp,6wp,4hp);
+ z1=(rer,oben);
+ z2=(8.5wp,1/2[y1,y3]);
+ z3=(x1,5.5hp);
+ z4=(x1,4.5hp);
+ z5=(x2,1/2[y4,y6]);
+ z6=(x1,0);
+ z7=(7wp,y2);
+ z8=(lir,vm);
+ z9=(x7,y5);
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+ draw z4..tension 1.2..z5..tension 1.2..z6; draw z7..z8..z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 30,charwidth#,height#+2hp#,depth#);
+ "The syllable MGEX";
+ eyebrow;
+ MGE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 31,charwidth#,height#+2hp#,depth#);
+ "The syllable MGE";
+ MGE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 32,charwidth#,height#+2hp#,depth#);
+ "The syllable MGEP";
+ Oh(lir,oben,11wp,0);
+ Ih(11wp,vm,rer,vm);
+ z1=(rer,oben);
+ z2=(7wp,vm);
+ z3=(rer,0);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 33,charwidth#,height#+2hp#,depth#);
+ "The syllable MGUT";
+ U(4.5wp,oben,11.5wp,0);
+ Liane(6wp,9hp,10wp,7hp);
+ Liane(6wp,5hp,10wp,3hp);
+ z1=(lir,9hp);
+ z2=(1/4width,1/2[y1,y3]);
+ z3=(lir,2hp);
+ z4=(rer,y1);
+ z5=(3/4width,y2);
+ z6=(rer,y3);
+ getpen;
+ draw z1..z2..z3;
+ draw z4..z5..z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MGU =
+ Ih(3wp,9hp,rer,7hp);
+ Ih(lir,vm,rer,vm);
+ Ih(3wp,1hp,rer,3hp);
+ z1=(rer,oben);
+ z2=(7wp,vm);
+ z3=(rer,0);
+ getpen;
+ draw z1..z2..z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 34,charwidth#,height#+2hp#,depth#);
+ "The syllable MGUX";
+ eyebrow;
+ MGU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 35,charwidth#,height#+2hp#,depth#);
+ "The syllable MGU";
+ MGU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 36,charwidth#,height#+2hp#,depth#);
+ "The syllable MGUP";
+ Liane(lir,oben,rer,6hp);
+ Er(3wp,4.5hp,13wp,3hp);
+ z1=(hm,6hp);
+ z2=(hm,1.5hp);
+ z3=(lir,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def MGUR =
+ U(lir,oben,rer,0);
+ Blitz(6wp,oben,10wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 37,charwidth#,height#+2hp#,depth#);
+ "The syllable MGURX";
+ eyebrow;
+ MGUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 38,charwidth#,height#+2hp#,depth#);
+ "The syllable MGUR";
+ MGUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 39,charwidth#,height#+2hp#,depth#);
+ "The syllable NIT";
+ Ddash(lir,7hp,lir,0);
+ Ddash(rer,7hp,rer,0);
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ z4=(4wp,1/2[y5,0]);
+ z5=(x2,6.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NI =
+ H(8.5wp,oben,13wp,0);
+ Ih(5.5wp,1.5hp,8.5wp,0);
+ II(2.5wp,9hp,6.5wp,5.75hp);
+ Ih(lir,4.5hp,6.75wp,4.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 40,charwidth#,height#+2hp#,depth#);
+ "The syllable NIX";
+ eyebrow;
+ NI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 41,charwidth#,height#+2hp#,depth#);
+ "The syllable NI";
+ NI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 42,charwidth#,height#+2hp#,depth#);
+ "The syllable NIP";
+ Ih(6/32width,2hp,rer,6.5hp);
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(10wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NIE =
+ Oh(6.5wp,oben,rer,0);
+ z1=(lir,3hp);
+ z2=(4wp,2hp);
+ z3=(x2,6.5hp);
+ z4=(rer,4.5hp);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 43,charwidth#,height#+2hp#,depth#);
+ "The syllable NIEX";
+ eyebrow;
+ NIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 44,charwidth#,height#+2hp#,depth#);
+ "The syllable NIE";
+ NIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 45,charwidth#,height#+2hp#,depth#);
+ "The syllable NIEP";
+ Z(1/4width,oben,3/4width,0);
+ Ih(hm,3.5hp,rer,6.5hp);
+ z1=(hm,6.5hp);
+ z2=(rer,1/2[y1,y3]);
+ z3=(hm,2hp);
+ getpen;
+ draw z1{right}..z2..{left}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NA =
+ Ih(8wp,4.5hp,rer,4.5hp);
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,2.25hp);
+ z4=(5.75wp,3.5hp);
+ z5=(x4,0);
+ z6=(lir,6hp);
+ z7=(5wp,5hp);
+ z8=(x7,8.5hp);
+ z9=(rer,6.5hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6--z7--z8--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 46,charwidth#,height#+2hp#,depth#);
+ "The syllable NAX";
+ eyebrow;
+ NA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 47,charwidth#,height#+2hp#,depth#);
+ "The syllable NA";
+ NA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 48,charwidth#,height#+2hp#,depth#);
+ "The syllable NAP";
+ z4=(rer,8.5hp);
+ z5=(9.5wp,oben);
+ z6=(x5,1.25hp);
+ z7=(1/4width,2.5hp);
+ z8=(x7,0);
+ z9=(5wp,7hp);
+ z10=(rer,y9);
+ z11=(x9,4.5hp);
+ z12=(rer,y11);
+ z13=(3wp,7.5hp);
+ z14=(x13,4hp);
+ getpen;
+ draw z4--z5--z6--z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+ draw z13--z14;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NUO =
+ Z(3wp,oben,14wp,0);
+ z1=(lir,oben);
+ z2=(hm,1/2[y1,y3]);
+ z3=(lir,5.5hp);
+ getpen;
+ draw z1{right}..z2..{left}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 49,charwidth#,height#+2hp#,depth#);
+ "The syllable NUOX";
+ eyebrow;
+ NUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 50,charwidth#,height#+2hp#,depth#);
+ "The syllable NUO";
+ NUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 51,charwidth#,height#+2hp#,depth#);
+ "The syllable NUOP";
+ Ih(lir,oben,lir,0);
+ Oh(5wp,oben,rer,0);
+ Ih(9.5wp,6hp,9.5wp,4hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 52,charwidth#,height#+2hp#,depth#);
+ "The syllable NOT";
+ Oh(lir,oben,11wp,0);
+ Er(5/32width,6.75hp,rer,3.25hp);
+ Ih(rer,9hp,rer,1hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NO =
+ Plus(lir,8.75hp,9wp,5.75hp);
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,2.25hp);
+ z4=(5wp,3.5hp);
+ z5=(x4,0);
+ z6=(lir,8.75hp);
+ z7=(5.5wp,9.75hp);
+ z8=(9wp,y6);
+ z10=(lir,5.75hp);
+ z11=(x7,4.75hp);
+ z12=(x8,y10);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6..z7..z8;
+ draw z10..z11..z12;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 53,charwidth#,height#+2hp#,depth#);
+ "The syllable NOX";
+ eyebrow;
+ NO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 54,charwidth#,height#+2hp#,depth#);
+ "The syllable NO";
+ NO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 55,charwidth#,height#+2hp#,depth#);
+ "The syllable NOP";
+ Liane(lir,9.75hp,8.5wp,7.75hp);
+ Liane(lir,7hp,8.5wp,5hp);
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,2.25hp);
+ z4=(5wp,3.5hp);
+ z5=(x4,0);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NE =
+ Z(5wp,oben,14wp,0);
+ Ih(4wp,8hp,9.5wp,6hp);
+ Ih(4wp,5hp,9.5wp,3hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 56,charwidth#,height#+2hp#,depth#);
+ "The syllable NEX";
+ eyebrow;
+ NE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 57,charwidth#,height#+2hp#,depth#);
+ "The syllable NE";
+ NE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 58,charwidth#,height#+2hp#,depth#);
+ "The syllable NEP";
+ Ih(4wp,9hp,10.5wp,7hp);
+ Ih(4wp,6.75hp,10.5wp,4.75hp);
+ z1=(rer,8.5hp);
+ z2=(10.5wp,oben);
+ z3=(x2,2.25hp);
+ z4=(5wp,3.5hp);
+ z5=(x4,0);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 59,charwidth#,height#+2hp#,depth#);
+ "The syllable NUT";
+ II(3wp,8hp,6.5wp,5hp);
+ Z(5wp,oben,14wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NU =
+ Z(5.5wp,oben,14wp,0);
+ Liane(lir,oben,7wp,8.5hp);
+ Liane(lir,7.5hp,7wp,6hp);
+ Liane(lir,5hp,7wp,3.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 60,charwidth#,height#+2hp#,depth#);
+ "The syllable NUX";
+ eyebrow;
+ NU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 61,charwidth#,height#+2hp#,depth#);
+ "The syllable NU";
+ NU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 62,charwidth#,height#+2hp#,depth#);
+ "The syllable NUP";
+ II(3wp,8.5hp,6.5wp,6hp);
+ Z(5wp,oben,14wp,0);
+ z1=(lir,5.25hp);
+ z2=(1/2[x1,x3],4.5hp);
+ z3=(7.5wp,y1);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NUR =
+ II(3wp,8.5hp,6.5wp,6hp);
+ ZPimmel(5wp,oben,13.5wp,0);
+ z1=(lir,4.75hp);
+ z3=(6.75wp,y1);
+ getpen;
+ draw z1--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 63,charwidth#,height#+2hp#,depth#);
+ "The syllable NURX";
+ eyebrow;
+ NUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 64,charwidth#,height#+2hp#,depth#);
+ "The syllable NUR";
+ NUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 65,charwidth#,height#+2hp#,depth#);
+ "The syllable NBIT";
+ II(9wp,6.5hp,13wp,2hp);
+ Ih(5wp,4.5hp,13wp,4.5hp);
+ Ddash(lir,9hp,lir,1.25hp);
+ z1=(rer,8hp);
+ z2=(5wp,oben);
+ z3=(x2,0);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NBI =
+ Oh(lir,oben,rer,3.75hp);
+ Plus(lir,oben,rer,3.75hp);
+ Ih(11wp,3hp,11wp,2hp);
+ z1=(hm,3.75hp);
+ z2=(hm,2hp);
+ z3=(1/3[x2,x4],0);
+ z4=(rer,1.25hp);
+ getpen;
+ draw z1--z2{down}..z3..z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 66,charwidth#,height#+2hp#,depth#);
+ "The syllable NBIX";
+ eyebrow;
+ NBI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 67,charwidth#,height#+2hp#,depth#);
+ "The syllable NBI";
+ NBI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 68,charwidth#,height#+2hp#,depth#);
+ "The syllable NBIP";
+ Er(6wp,5hp,13wp,2.5hp);
+ z1=(rer,8.5hp);
+ z2=(9.5wp,oben);
+ z3=(x2,0);
+ z4=(x2,y1);
+ z5=(3wp,oben);
+ z6=(x5,0);
+ getpen;
+ draw z1--z2--z3; draw z4--z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NBIE =
+ Er(lir,6.75hp,11wp,3.25hp);
+ Ih(7wp,oben,7wp,0);
+ z1=(lir,oben);
+ z2=(11.5wp,oben);
+ z3=(rer,7hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 69,charwidth#,height#+2hp#,depth#);
+ "The syllable NBIEX";
+ eyebrow;
+ NBIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 70,charwidth#,height#+2hp#,depth#);
+ "The syllable NBIE";
+ NBIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 71,charwidth#,height#+2hp#,depth#);
+ "The syllable NBIEP";
+ Er(lir,7.25hp,rer,2.75hp);
+ Ih(hm,oben,hm,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 72,charwidth#,height#+2hp#,depth#);
+ "The syllable NBAT";
+ Arsch(lir,oben,10wp,0);
+ z1=(10wp,vm);
+ z2=(rer,y1);
+ z3=(1/2[x1,x2],7.75hp);
+ z4=(x3,6.25hp);
+ z5=(x3,3.75hp);
+ z6=(x3,2.25hp);
+ z7=(rer,8hp);
+ z8=(rer,2hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NBA =
+ Er(lir,7.75hp,rer,2.25hp);
+ X(lir,oben,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 73,charwidth#,height#+2hp#,depth#);
+ "The syllable NBAX";
+ eyebrow;
+ NBA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 74,charwidth#,height#+2hp#,depth#);
+ "The syllable NBA";
+ NBA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 75,charwidth#,height#+2hp#,depth#);
+ "The syllable NBAP";
+ X(4wp,9hp,12wp,1hp);
+ II(lir,oben,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 76,charwidth#,height#+2hp#,depth#);
+ "The syllable NBOT";
+ Ih(3/4width,6.5hp,3/4width,3.5hp);
+ z1=(rer,oben);
+ z2=(rer,7.5hp);
+ z3=(6wp,9hp);
+ z4=(6wp,1hp);
+ z5=(rer,2.5hp);
+ z6=(rer,0);
+ z7=(lir,4hp);
+ z8=(3wp,5.5hp);
+ z9=(x3,7hp);
+ getpen;
+ draw z1--z2--z3--z4--z5--z6;
+ draw z7..z8..z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NBO =
+ Busen(lir,oben,rer,6hp);
+ Plus(4wp,5.5hp,12wp,1.5hp);
+ Liane(lir,2hp,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 77,charwidth#,height#+2hp#,depth#);
+ "The syllable NBOX";
+ eyebrow;
+ NBO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 78,charwidth#,height#+2hp#,depth#);
+ "The syllable NBO";
+ NBO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 79,charwidth#,height#+2hp#,depth#);
+ "The syllable NBOP";
+ Busen(lir,oben,rer,6hp);
+ Ih(8wp,5hp,8wp,2hp);
+ Liane(lir,2hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 80,charwidth#,height#+2hp#,depth#);
+ "The syllable NBUT";
+ Ih(9wp,0,9wp,8.5hp);
+ Ih(9wp,4.75hp,rer,4.75hp);
+ % "Grosses C"
+ z1=(rer,1.5hp);
+ z2=(hm,0);
+ z3=(lir,1/2[y1,y5]);
+ z4=(hm,8.5hp);
+ z5=(rer,7.75hp);
+ z6=(rer,oben);
+ getpen;
+ draw z1..z2..z3..z4..z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NBU =
+ Ih(1/4width,oben,1/4width,8hp);
+ Ih(1/4width,0,1/4width,2hp);
+ Otense(7.5wp,oben,rer,0,1.25);
+ z1=(7.5wp,6.5hp);
+ z2=(lir,1/2[y1,y3]);
+ z3=(x1,3.5hp);
+ getpen;
+ draw z1{left}..z2..{right}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 81,charwidth#,height#+2hp#,depth#);
+ "The syllable NBUX";
+ eyebrow;
+ NBU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 82,charwidth#,height#+2hp#,depth#);
+ "The syllable NBU";
+ NBU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 83,charwidth#,height#+2hp#,depth#);
+ "The syllable NBUP";
+ Ih(hm,oben,hm,0);
+ Oh(lir,8hp,rer,2hp);
+ Ih(10.75wp,5.75hp,10.75wp,4.25hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NBUR =
+ Otense(lir,oben,6.25wp,0,2);
+ Otense(9.75wp,oben,rer,0,2);
+ Ih(6.25wp,vm,9.75wp,vm);
+ Ih(hm,9.5hp,hm,8.25hp);
+ Ih(hm,0.5hp,hm,1.75hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 84,charwidth#,height#+2hp#,depth#);
+ "The syllable NBURX";
+ eyebrow;
+ NBUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 85,charwidth#,height#+2hp#,depth#);
+ "The syllable NBUR";
+ NBUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 86,charwidth#,height#+2hp#,depth#);
+ "The syllable NBYT";
+ Oh(lir,oben,11wp,0);
+ Ih(7wp,vm,rer,vm);
+ Ih(rer,8.5hp,rer,6.5hp);
+ Ih(rer,3.5hp,rer,1.5hp);
+ z1=(rer,oben);
+ z2=(7wp,vm);
+ z3=(rer,0);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NBY =
+ U(lir,oben,rer,0);
+ Ih(hm,oben,hm,0);
+ Ih(lir,5.5hp,hm,5.5hp);
+ Tdash(11wp,9hp,2hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 87,charwidth#,height#+2hp#,depth#);
+ "The syllable NBYX";
+ eyebrow;
+ NBY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 88,charwidth#,height#+2hp#,depth#);
+ "The syllable NBY";
+ NBY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 89,charwidth#,height#+2hp#,depth#);
+ "The syllable NBYP";
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,2.25hp);
+ z4=(5wp,3.5hp);
+ z5=(x4,0);
+ z6=(9wp,oben);
+ z7=(6.5wp,1/2[y6,y8]);
+ z8=(x6,1/2[y6,y10]);
+ z9=(x7,1/2[y8,y10]);
+ z10=(x6,4hp);
+ z11=(lir,9hp);
+ z12=(4.75wp,1/2[y11,y13]);
+ z13=(x11,5hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6..z7..z8&z8..z9..z10;
+ draw z11..z12..z13;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NBYR =
+ IXI(3wp,8.5hp,13wp,1.5hp);
+ Ih(8wp,oben,8wp,0);
+ Ih(3wp,vm,13wp,vm);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 90,charwidth#,height#+2hp#,depth#);
+ "The syllable NBYRX";
+ eyebrow;
+ NBYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 91,charwidth#,height#+2hp#,depth#);
+ "The syllable NBYR";
+ NBYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 92,charwidth#,height#+2hp#,depth#);
+ "The syllable NDIT";
+ Ih(hm,oben,hm,7.5hp);
+ N(lir,7hp,rer,3.5hp);
+ III(1/4width,2.5hp,3/4width,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NDI =
+ Ih(4wp,oben,4wp,6.5hp);
+ Ih(4wp,8.25hp,12wp,8.25hp);
+ Ih(4wp,4.75hp,4wp,1.25hp);
+ z1=(12wp,oben);
+ z2=(x1,0);
+ z3=(4wp,3hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 93,charwidth#,height#+2hp#,depth#);
+ "The syllable NDIX";
+ eyebrow;
+ NDI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 94,charwidth#,height#+2hp#,depth#);
+ "The syllable NDI";
+ NDI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 95,charwidth#,height#+2hp#,depth#);
+ "The syllable NDIP";
+ Arsch(lir,oben,rer,0);
+ z1=(hm,7hp);
+ z2=(hm,4.75hp);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NDIE =
+ Z(1/4width,oben,3/4width,0);
+ Er(6wp,6hp,10wp,4hp);
+ z1=(3wp,7hp);
+ z2=(4.5wp,vm);
+ z3=(x1,3hp);
+ z4=(13wp,y1);
+ z5=(11.5wp,vm);
+ z6=(x4,y3);
+ getpen;
+ draw z1..z2..z3; draw z4..z5..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 96,charwidth#,height#+2hp#,depth#);
+ "The syllable NDIEX";
+ eyebrow;
+ NDIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 97,charwidth#,height#+2hp#,depth#);
+ "The syllable NDIE";
+ NDIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 98,charwidth#,height#+2hp#,depth#);
+ "The syllable NDAT";
+ Oh(lir,oben,7.5wp,6hp);
+ Ih(7.5wp,8hp,11wp,8hp);
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,2hp);
+ z4=(5wp,3.25hp);
+ z5=(x4,0);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NDA =
+ Oh(lir,oben,7.5wp,6.75hp);
+ Ih(4wp,5.5hp,14wp,5.5hp);
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,2hp);
+ z4=(5wp,3.25hp);
+ z5=(x4,0);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 99,charwidth#,height#+2hp#,depth#);
+ "The syllable NDAX";
+ eyebrow;
+ NDA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(100,charwidth#,height#+2hp#,depth#);
+ "The syllable NDA";
+ NDA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(101,charwidth#,height#+2hp#,depth#);
+ "The syllable NDAP";
+ Oh(lir,9hp,6wp,5hp);
+ z1=(8wp,oben);
+ z2=(x1,0);
+ z3=(lir,2hp);
+ z4=(11wp,9.5hp);
+ z5=(x4,y3);
+ z6=(14wp,y4);
+ z7=(x6,6.5hp);
+ z8=(x5,4.5hp);
+ z9=(x1,y8);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+ draw z6--z7{down}..{left}z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(102,charwidth#,height#+2hp#,depth#);
+ "The syllable NDOT";
+ Ih(lir,7hp,rer,7hp);
+ z1=(8.5wp,oben);
+ z2=(x1,2.75hp);
+ z3=(4wp,3.75hp);
+ z4=(x3,0);
+ z5=(rer,9hp);
+ z6=(lir,1/2[y5,y7]);
+ z7=(rer,5hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{left}..tension 1.2..z6..tension 1.2..{right}z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NDO =
+ Oh(5wp,9hp,9wp,6hp);
+ z1=(11.5wp,oben);
+ z2=(x1,2.5hp);
+ z3=(5wp,3.75hp);
+ z4=(x3,0);
+ z5=(4.5wp,10hp);
+ z6=(2.5wp,1/2[y5,y7]);
+ z7=(3wp,6hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5..tension 1.2..z6..tension 1.2..z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(103,charwidth#,height#+2hp#,depth#);
+ "The syllable NDOX";
+ eyebrow;
+ NDO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(104,charwidth#,height#+2hp#,depth#);
+ "The syllable NDO";
+ NDO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(105,charwidth#,height#+2hp#,depth#);
+ "The syllable NDOP";
+ Smiley(5wp,8.75hp,9wp,5hp);
+ z1=(11.5wp,oben);
+ z2=(x1,2.5hp);
+ z3=(5wp,3.75hp);
+ z4=(x3,0);
+ z5=(4.5wp,10hp);
+ z6=(2.5wp,1/2[y5,y7]);
+ z7=(3wp,6hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5..tension 1.2..z6..tension 1.2..z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NDE =
+ Oh(lir,oben,6wp,6.5hp);
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(106,charwidth#,height#+2hp#,depth#);
+ "The syllable NDEX";
+ eyebrow;
+ NDE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(107,charwidth#,height#+2hp#,depth#);
+ "The syllable NDE";
+ NDE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(108,charwidth#,height#+2hp#,depth#);
+ "The syllable NDEP";
+ Z(5wp,oben,13wp,0);
+ Oh(4wp,oben,7wp,7.25hp);
+ z1=(lir,9hp);
+ z2=(3.5wp,6.5hp);
+ z3=(9wp,5hp);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(109,charwidth#,height#+2hp#,depth#);
+ "The syllable NDUT";
+ X(lir,oben,13wp,0);
+ z1=(hm,vm);
+ z2=(rer,vm);
+ z3=(rer,7.25hp);
+ z4=(rer,2.75hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NDU =
+ z1=(lir,2hp);
+ z2=(hm,0);
+ z3=(rer,y1);
+ z4=(8wp,10hp);
+ z5=(x4,0);
+ z6=(12wp,9.5hp);
+ z7=(x6,6hp);
+ z8=(x5,4hp);
+ z9=(x4,y8);
+ getpen;
+ draw z1..z2..z3;
+ draw z4--z5;
+ draw z6--z7{down}..{left}z8--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(110,charwidth#,height#+2hp#,depth#);
+ "The syllable NDUX";
+ eyebrow;
+ NDU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(111,charwidth#,height#+2hp#,depth#);
+ "The syllable NDU";
+ NDU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(112,charwidth#,height#+2hp#,depth#);
+ "The syllable NDUP";
+ Oh(lir,oben,rer,6hp);
+ Er(lir,4hp,rer,2hp);
+ Ih(hm,6hp,hm,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NDUR =
+ Oh(lir,oben,rer,6hp);
+ Er(lir,4hp,hm,2hp);
+ Ih(hm,6hp,hm,0);
+ Ih(3/4width,4hp,3/4width,2hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(113,charwidth#,height#+2hp#,depth#);
+ "The syllable NDURX";
+ eyebrow;
+ NDUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(114,charwidth#,height#+2hp#,depth#);
+ "The syllable NDUR";
+ NDUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NGIE =
+ Z(3wp,oben,13wp,3hp);
+ Busen(lir,2.5hp,rer,0);
+ Ih(1/4width,8.5hp,1/4width,6.5hp);
+ Ih(3/4width,6.75hp,3/4width,4.75hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(115,charwidth#,height#+2hp#,depth#);
+ "The syllable NGIEX";
+ eyebrow;
+ NGIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(116,charwidth#,height#+2hp#,depth#);
+ "The syllable NGIE";
+ NGIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(117,charwidth#,height#+2hp#,depth#);
+ "The syllable NGIEP";
+ Z(1/4width,oben,3/4width,0);
+ Plus(lir,7hp,6.25wp,3hp);
+ Plus(9.75wp,7hp,rer,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(118,charwidth#,height#+2hp#,depth#);
+ "The syllable NGAT";
+ U(lir,oben,11wp,0);
+ z1=(lir,6hp);
+ z2=(11wp,5hp);
+ z3=(rer,6hp);
+ z4=(rer,9hp);
+ getpen;
+ draw z1--z2{right}..{up}z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NGA =
+ N(3wp,oben,rer,5.75hp);
+ z1=(8.5wp,oben);
+ z2=(x1,2hp);
+ z3=(5.5wp,3.5hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(119,charwidth#,height#+2hp#,depth#);
+ "The syllable NGAX";
+ eyebrow;
+ NGA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(120,charwidth#,height#+2hp#,depth#);
+ "The syllable NGA";
+ NGA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(121,charwidth#,height#+2hp#,depth#);
+ "The syllable NGAP";
+ Plus(lir,9hp,7.5wp,4hp);
+ z1=(9wp,oben);
+ z2=(x1,0);
+ z3=(3wp,2hp);
+ z4=(x1,7.5hp);
+ z5=(rer,1/2[y4,y6]);
+ z6=(x4,2.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4{right}..z5..{left}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(122,charwidth#,height#+2hp#,depth#);
+ "The syllable NGUOT";
+ Huegel(lir,oben,rer,8hp);
+ X(1/4width,7.5hp,3/4width,2.5hp);
+ Liane(lir,2hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NGUO =
+ Huegel(4.5wp,oben,11.5wp,7hp);
+ Ih(hm,9hp,hm,8hp);
+ z1=(lir,0);
+ z2=(13wp,7hp);
+ z3=(3wp,y2);
+ z4=(rer,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(123,charwidth#,height#+2hp#,depth#);
+ "The syllable NGUOX";
+ eyebrow;
+ NGUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(124,charwidth#,height#+2hp#,depth#);
+ "The syllable NGUO";
+ NGUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(125,charwidth#,height#+2hp#,depth#);
+ "The syllable NGOT";
+ z1=(lir,oben);
+ z2=(hm,vm);
+ z3=(lir,0);
+ z4=(rer,oben);
+ z5=(rer,0);
+ getpen;
+ draw z1..z2..z3;
+ draw z4..z2..z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NGO =
+ Huegel(4wp,oben,12wp,6.5hp);
+ Oh(lir,7hp,rer,0);
+ Ih(hm,4.5hp,hm,2.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(126,charwidth#,height#+2hp#,depth#);
+ "The syllable NGOX";
+ eyebrow;
+ NGO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(127,charwidth#,height#+2hp#,depth#);
+ "The syllable NGO";
+ NGO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(128,charwidth#,height#+2hp#,depth#);
+ "The syllable NGOP";
+ z1=(hm,oben);
+ z2=(hm,0);
+ z3=(lir,2hp);
+ z4=(6wp,8hp);
+ z5=(x4,5.5hp);
+ z6=(4.5wp,5hp);
+ z7=(3wp,5.75hp);
+ z8=(rer,9hp);
+ z9=(x1,6hp);
+ z10=(13wp,1/2[y9,y11]);
+ z11=(x1,2hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4---z5{down}..z6---z7;
+ draw z8--z9&z9..z10..z11;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NGE =
+ Plus(lir,oben,10wp,3.5hp);
+ z1=(12wp,oben);
+ z2=(x1,0);
+ z3=(2wp,2hp);
+ z4=(x1,vm);
+ z6=(12wp,vm);
+ z7=(x6,oben);
+ z8=(x7,0);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(129,charwidth#,height#+2hp#,depth#);
+ "The syllable NGEX";
+ eyebrow;
+ NGE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(130,charwidth#,height#+2hp#,depth#);
+ "The syllable NGE";
+ NGE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(131,charwidth#,height#+2hp#,depth#);
+ "The syllable NGEP";
+ Oh(lir,oben,4.5/8width,0);
+ Oh(5.25/8width,7hp,rer,3hp);
+ Ih(lir,7hp,4.25/8width,7hp);
+ Ih(lir,5hp,5.25/8width,5hp);
+ Ih(lir,3hp,4.25/8width,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(132,charwidth#,height#+2hp#,depth#);
+ "The syllable NZIT";
+ z1=(1/4width,oben);
+ z2=(13wp,y1);
+ z3=(8.5wp,oben);
+ z4=(x3,8.5hp);
+ z5=(lir,2hp);
+ z6=(7wp,0);
+ z7=(x6,8.75hp);
+ z8=(rer,7hp);
+ z9=(12wp,5.5hp);
+ z10=(x9,2hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6--z7--z8;
+ draw z9--z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZI =
+ Quad(1/4width,oben,3/4width,0);
+ Ih(lir,vm,rer,vm);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(133,charwidth#,height#+2hp#,depth#);
+ "The syllable NZIX";
+ eyebrow;
+ NZI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(134,charwidth#,height#+2hp#,depth#);
+ "The syllable NZI";
+ NZI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(135,charwidth#,height#+2hp#,depth#);
+ "The syllable NZIP";
+ Ih(4wp,9hp,4wp,6hp);
+ Ih(4wp,4hp,4wp,1hp);
+ x10=x11=x13=4/8width;
+ y10=oben;
+ y11=0;
+ x12=x14=6/8width;
+ y12=9hp;
+ y14=1hp;
+ y13=1/2[y12,y14];
+ y20=y21=0;
+ x20=0; x21=1;
+ getpen;
+ draw z10--z11;
+ draw z12..{z20-z21}z13&z13{z21-z20}..z14;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZIE =
+ U(lir,oben,9.5wp,0);
+ Ih(lir,5hp,9.5wp,5hp);
+ Ih(5.75wp,8.5hp,5.75wp,6.5hp);
+ Ih(5.75wp,3.5hp,5.75wp,1.5hp);
+ z4=(12wp,9hp);
+ z5=(9.75wp,1/2[y4,y6]);
+ z6=(x4,1hp);
+ % Zwei Hilfspunkte!
+ z7=(lir,y4);
+ z8=(lir,y6);
+ getpen;
+ draw z4{z5-z7}..{left}z5&z5{right}..{z8-z5}z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(136,charwidth#,height#+2hp#,depth#);
+ "The syllable NZIEX";
+ eyebrow;
+ NZIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(137,charwidth#,height#+2hp#,depth#);
+ "The syllable NZIE";
+ NZIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(138,charwidth#,height#+2hp#,depth#);
+ "The syllable NZIEP";
+ U(lir,oben,9.5wp,0);
+ z4=(12wp,9hp);
+ z5=(9.75wp,1/2[y4,y6]);
+ z6=(x4,1hp);
+ % Zwei Hilfspunkte!
+ z7=(lir,y4);
+ z8=(lir,y6);
+ getpen;
+ draw z4{z5-z7}..{left}z5&z5{right}..{z8-z5}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(139,charwidth#,height#+2hp#,depth#);
+ "The syllable NZAT";
+ Plus(3wp,oben,13wp,7hp);
+ Z(3wp,6hp,13wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZA =
+ Plus(3wp,oben,13wp,7hp);
+ Zdash(3wp,6hp,13wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(140,charwidth#,height#+2hp#,depth#);
+ "The syllable NZAX";
+ eyebrow;
+ NZA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(141,charwidth#,height#+2hp#,depth#);
+ "The syllable NZA";
+ NZA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(142,charwidth#,height#+2hp#,depth#);
+ "The syllable NZAP";
+ Quad(10wp,7hp,rer,1.5hp);
+ z1=(13wp,8hp);
+ z2=(x5,oben);
+ z3=(x5,0);
+ z4=(4wp,8hp);
+ z5=(6.25wp,1/2[y4,y6]);
+ z6=(x4,2hp);
+ % Zwei Hilfspunkte!
+ z7=(rer,y4);
+ z8=(rer,y6);
+ getpen;
+ draw z1--z2--z3;
+ draw z4{z5-z7}..{right}z5&z5{left}..{z8-z5}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZUO =
+ Liane(5wp,oben,11wp,8hp);
+ Busen(lir,8hp,rer,6hp);
+ Ih(hm,8hp,hm,0);
+ X(3.5wp,4.75hp,12.5wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(143,charwidth#,height#+2hp#,depth#);
+ "The syllable NZUOX";
+ eyebrow;
+ NZUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(144,charwidth#,height#+2hp#,depth#);
+ "The syllable NZUO";
+ NZUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZO =
+ Oh(lir,4.5hp,rer,0);
+ z1=(hm,4.5hp);
+ z2=(hm,8.75hp);
+ z3=(13wp,7.5hp);
+ z4=(x3,oben);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(145,charwidth#,height#+2hp#,depth#);
+ "The syllable NZOX";
+ eyebrow;
+ NZO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(146,charwidth#,height#+2hp#,depth#);
+ "The syllable NZOP";
+ NZO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZE =
+ Plus(lir,oben,rer,7hp);
+ Ih(11wp,4.5hp,11wp,1.5hp);
+ z1=(rer,5.25hp);
+ z2=(3wp,7hp);
+ z3=(3wp,0);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(147,charwidth#,height#+2hp#,depth#);
+ "The syllable NZEX";
+ eyebrow;
+ NZE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(148,charwidth#,height#+2hp#,depth#);
+ "The syllable NZE";
+ NZE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZU =
+ Plus(5wp,oben,11wp,7hp);
+ Busen(lir,7hp,rer,4.5hp);
+ Plus(4wp,4hp,12wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(149,charwidth#,height#+2hp#,depth#);
+ "The syllable NZUX";
+ eyebrow;
+ NZU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(150,charwidth#,height#+2hp#,depth#);
+ "The syllable NZU";
+ NZU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(151,charwidth#,height#+2hp#,depth#);
+ "The syllable NZUP";
+ Plus(5wp,oben,11wp,7.5hp);
+ Er(1/4width,3.75hp,3/4width,2.25hp);
+ z1=(lir,8.25hp);
+ z2=(5wp,7.5hp);
+ z3=(hm,5.75hp);
+ z4=(11wp,y2);
+ z5=(rer,y1);
+ z6=(hm,0);
+ getpen;
+ draw z1{down}..{up}z2&z2{down}..z3..{up}z4&z4{down}..{up}z5;
+ draw z3--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZUR =
+ U(lir,oben,rer,0);
+ z1=(lir,8hp);
+ z2=(rer,y1);
+ z3=(hm,y1); z4=(x3,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(152,charwidth#,height#+2hp#,depth#);
+ "The syllable NZURX";
+ eyebrow;
+ NZUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(153,charwidth#,height#+2hp#,depth#);
+ "The syllable NZUR";
+ NZUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(154,charwidth#,height#+2hp#,depth#);
+ "The syllable NZYT";
+ z1=(rer,oben);
+ z2=(7wp,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,0);
+ z6=(5wp,9.5hp);
+ z7=(3wp,1/2[y6,y8]);
+ z8=(x6,6hp);
+ z9=(x6,4hp);
+ z10=(x7,1/2[y9,y11]);
+ z11=(x6,0.5hp);
+ getpen;
+ draw z1{left}..z2..{right}z3 &
+ z3{left}..z4..{right}z5&z5--z1;
+ draw z6..z7..z8;
+ draw z9..z10..z11;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZY =
+ Ih(5wp,oben,5wp,0);
+ z1=(rer,oben);
+ z2=(5wp,7.5hp);
+ z3=(3/4width,vm);
+ z4=(x2,2.5hp);
+ z5=(rer,0);
+ getpen;
+ draw z1--z2&z2{right}..z3..{left}z4&z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(155,charwidth#,height#+2hp#,depth#);
+ "The syllable NZYX";
+ eyebrow;
+ NZY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(156,charwidth#,height#+2hp#,depth#);
+ "The syllable NZY";
+ NZY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(157,charwidth#,height#+2hp#,depth#);
+ "The syllable NZYP";
+ Oh(lir,oben,rer,0);
+ Brunnen(5/32width,16/24height,27/32width,4/24height);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NZYR =
+ Smiley(5.5wp,9hp,10.5wp,2hp);
+ U(lir,oben,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(158,charwidth#,height#+2hp#,depth#);
+ "The syllable NZYRX";
+ eyebrow;
+ NZYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(159,charwidth#,height#+2hp#,depth#);
+ "The syllable NZYR";
+ NZYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(160,charwidth#,height#+2hp#,depth#);
+ "The syllable NRAT";
+ Oh(lir,oben,rer,0);
+ z3=(lir,vm);
+ z4=(rer,y3);
+ z6=(hm,8hp);
+ z7=(x6,6.25hp);
+ z8=(x6,3.75hp);
+ z9=(x6,2hp);
+ getpen;
+ draw z3--z4;
+ draw z6--z7;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NRA =
+ Oh(2/8width,oben,6/8width,0);
+ x1=x2=x3=x4=lir;
+ x5=x6=x7=x8=rer;
+ y1=y5=oben-1hp;
+ y4=y8=1hp;
+ y2=y6=1/4[y1,y4];
+ y3=y7=3/4[y1,y4];
+ z9=(lir,vm);
+ z10=(rer,y9);
+ draw z9--z10;
+ getpen;
+ draw z1--z2; draw z3--z4;
+ draw z5--z6; draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(161,charwidth#,height#+2hp#,depth#);
+ "The syllable NRAX";
+ eyebrow;
+ NRA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(162,charwidth#,height#+2hp#,depth#);
+ "The syllable NRA";
+ NRA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(163,charwidth#,height#+2hp#,depth#);
+ "The syllable NRAP";
+ II(5wp,oben,11wp,0);
+ z1=(lir,1.5hp);
+ z2=(5wp,2.75hp);
+ z3=(11wp,7.25hp);
+ z4=(rer,8.5hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NRO =
+ Sichel(lir,oben,13wp,0);
+ Plus(4wp,8hp,10wp,4hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(164,charwidth#,height#+2hp#,depth#);
+ "The syllable NROX";
+ eyebrow;
+ NRO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(165,charwidth#,height#+2hp#,depth#);
+ "The syllable NRO";
+ NRO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(166,charwidth#,height#+2hp#,depth#);
+ "The syllable NROP";
+ Sichel(lir,8.5hp,13wp,0);
+ Liane(4wp,oben,12wp,6hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(167,charwidth#,height#+2hp#,depth#);
+ "The syllable NRET";
+ Ih(lir,6hp,rer,6hp);
+ II(3wp,4.5hp,13wp,2hp);
+ z1=(13wp,oben);
+ z2=(x1,7.5hp);
+ z3=(hm,8.75hp);
+ z4=(hm,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NRE =
+ z1=(4wp,vm);
+ z2=(12wp,y1);
+ z3=(rer,oben);
+ z4=(rer,8hp);
+ z5=(x2,9hp);
+ z6=(x5,0);
+ z13=(x1,oben);
+ z14=(x13,1hp);
+ z15=(lir,2hp);
+ z16=(x15,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4--z5--z6;
+ draw z13--z14--z15--z16;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(168,charwidth#,height#+2hp#,depth#);
+ "The syllable NREX";
+ eyebrow;
+ NRE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(169,charwidth#,height#+2hp#,depth#);
+ "The syllable NRE";
+ NRE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(170,charwidth#,height#+2hp#,depth#);
+ "The syllable NREP";
+ % z1 .. z5 : "d"
+ z1=(13wp,8.5hp);
+ z2=(9.5wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ z6=(rer,7.5hp);
+ z7=(x2,1/2[y6,y8]);
+ z8=(x6,1.5hp);
+ z9=(x8,y7);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ draw z6..z7..z8;
+ draw z7--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(171,charwidth#,height#+2hp#,depth#);
+ "The syllable NRUT";
+ Oh(lir,oben,11wp,0);
+ N(7wp,8.5hp,rer,5.75hp);
+ N(7wp,4.25hp,rer,1.5hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NRU =
+ Oh(lir,9.25hp,6.5wp,5.75hp);
+ Ih(6.5wp,7.25hp,10.5wp,7.25hp);
+ Oh(lir,4.25hp,6.5wp,0.75hp);
+ Ih(6.5wp,2.75hp,10.5wp,2.75hp);
+ z1=(14wp,oben);
+ z2=(x1,8hp);
+ z3=(10.5wp,10hp);
+ z4=(x3,0);
+ getpen;
+ draw z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(172,charwidth#,height#+2hp#,depth#);
+ "The syllable NRUX";
+ eyebrow;
+ NRU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(173,charwidth#,height#+2hp#,depth#);
+ "The syllable NRU";
+ NRU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(174,charwidth#,height#+2hp#,depth#);
+ "The syllable NRUP";
+ Liane(lir,oben,rer,6.5hp);
+ Plus(lir,6hp,6.25wp,3.5hp);
+ Plus(9.75wp,6hp,rer,3.5hp);
+ z1=(8wp,6.5hp);
+ z2=(x1,1.25hp);
+ z3=(5wp,2.5hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NRUR =
+ Oh(2wp,oben,14wp,5hp);
+ z1=(hm,5hp);
+ z2=(hm,1.5hp);
+ z3=(lir,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(175,charwidth#,height#+2hp#,depth#);
+ "The syllable NRURX";
+ eyebrow;
+ NRUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(176,charwidth#,height#+2hp#,depth#);
+ "The syllable NRUR";
+ NRUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(177,charwidth#,height#+2hp#,depth#);
+ "The syllable NRYT";
+ Xi(lir,9hp,rer,4.25hp);
+ z1=(8wp,10hp);
+ z2=(x1,1.25hp);
+ z3=(4wp,2.5hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NRY =
+ II(4.5wp,oben,13wp,0);
+ z1=(lir,1.5hp);
+ z2=(7wp,4hp);
+ z3=(4.5wp,6.75hp);
+ z4=(13wp,y3);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(178,charwidth#,height#+2hp#,depth#);
+ "The syllable NRYX";
+ eyebrow;
+ NRY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(179,charwidth#,height#+2hp#,depth#);
+ "The syllable NRY";
+ NRY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(180,charwidth#,height#+2hp#,depth#);
+ "The syllable NRYP";
+ Ih(8.5wp,oben,8.5wp,0);
+ Ih(3wp,9.5hp,3wp,4.5hp);
+ Ih(3wp,7hp,8.5wp,7hp);
+ Ih(lir,0,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NRYR =
+ Z(lir,oben,3/4width,0);
+ Oh(8.75wp,4.5hp,11.75wp,1.5hp);
+ z1=(7wp,6hp);
+ z2=(13wp,4.5hp);
+ z3=(rer,3hp);
+ getpen;
+ draw z1..z2..z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(181,charwidth#,height#+2hp#,depth#);
+ "The syllable NRYRX";
+ eyebrow;
+ NRYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(182,charwidth#,height#+2hp#,depth#);
+ "The syllable NRYR";
+ NRYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(183,charwidth#,height#+2hp#,depth#);
+ "The syllable NJIT";
+ z1=(8.5wp,oben);
+ z2=(x1,1.5hp);
+ z3=(lir,y2);
+ z4=(rer,9hp);
+ z5=(lir,1/2[y4,y6]);
+ z6=(rer,5hp);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+ draw z4{left}..z5..{right}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NJI =
+ Liane(2wp,oben,14wp,6hp);
+ z1=(hm,oben);
+ z2=(hm,1.5hp);
+ z3=(lir,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(184,charwidth#,height#+2hp#,depth#);
+ "The syllable NJIX";
+ eyebrow;
+ NJI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(185,charwidth#,height#+2hp#,depth#);
+ "The syllable NJI";
+ NJI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(186,charwidth#,height#+2hp#,depth#);
+ "The syllable NJIP";
+ hip:=11wp; %Hilfsliniengeber
+ U(lir,oben,hip,0);
+ z1=(lir,8hp);
+ z2=(hip,y1);
+ z3=(rer,1/2[y2,y4]);
+ z4=(x2,5hp);
+ getpen;
+ draw z1---z2{right}..z3..{left}z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(187,charwidth#,height#+2hp#,depth#);
+ "The syllable NJIET";
+ Busen(lir,oben,rer,6hp);
+ III(1/4width,4.25hp,3/4width,1.75hp);
+ Ih(1/4width,0,3/4width,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NJIE =
+ Oh(4.5wp,oben,11.5wp,0);
+ N(lir,7hp,rer,3hp);
+ z1=(hm,8.5hp);
+ z2=(hm,6.75hp);
+ z3=(hm,3.25hp);
+ z4=(hm,1.5hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(188,charwidth#,height#+2hp#,depth#);
+ "The syllable NJIEX";
+ eyebrow;
+ NJIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(189,charwidth#,height#+2hp#,depth#);
+ "The syllable NJIE";
+ NJIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(190,charwidth#,height#+2hp#,depth#);
+ "The syllable NJIEP";
+ Oh(3wp,oben,13wp,6hp);
+ Ih(lir,4.5hp,rer,4.5hp);
+ Ih(hm,6hp,hm,1hp);
+ II(4wp,3.5hp,12wp,2.25hp);
+ z1=(lir,2hp);
+ z2=(hm,0);
+ z3=(rer,y1);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NJUO =
+ Busen(lir,3hp,rer,0);
+ z1=(4wp,4hp);
+ z2=(x1,oben);
+ z3=(12wp,8.5hp);
+ z4=(x3,y1);
+ z5=(x3,y2);
+ z6=(rer,y3);
+ z7=(x1,5.5hp);
+ z8=(x3,y7);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+ draw z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(191,charwidth#,height#+2hp#,depth#);
+ "The syllable NJUOX";
+ eyebrow;
+ NJUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(192,charwidth#,height#+2hp#,depth#);
+ "The syllable NJUO";
+ NJUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(193,charwidth#,height#+2hp#,depth#);
+ "The syllable NJOT";
+ IXI(lir,oben,11wp,0);
+ Tdash(rer,oben,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NJO =
+ IXI(lir,oben,9.5wp,0);
+ z4=(12wp,9hp);
+ z5=(9.75wp,1/2[y4,y6]);
+ z6=(x4,1hp);
+ % Zwei Hilfspunkte!
+ z7=(lir,y4);
+ z8=(lir,y6);
+ getpen;
+ draw z4{z5-z7}..{left}z5&z5{right}..{z8-z5}z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(194,charwidth#,height#+2hp#,depth#);
+ "The syllable NJOX";
+ eyebrow;
+ NJO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(195,charwidth#,height#+2hp#,depth#);
+ "The syllable NJO";
+ NJO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(196,charwidth#,height#+2hp#,depth#);
+ "The syllable NJOP";
+ N(lir,7hp,rer,3hp);
+ z1=(1/4width,10hp);
+ z2=(11wp,vm);
+ z3=(x1,0hp);
+ z4=(3/4width,y1);
+ z5=(5wp,vm);
+ z6=(x4,y3);
+ getpen;
+ draw z1..z2..z3;
+ draw z4..z5..z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NJU =
+ Ih(4wp,vm,rer,vm);
+ Ih(11wp,8.25hp,11wp,6.75hp);
+ Ih(11wp,3.25hp,11wp,1.75hp);
+ z1=(13wp,oben);
+ z2=(4wp,vm);
+ z3=(x1,0);
+ getpen;
+ draw z1..z2..z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(197,charwidth#,height#+2hp#,depth#);
+ "The syllable NJUX";
+ eyebrow;
+ NJU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(198,charwidth#,height#+2hp#,depth#);
+ "The syllable NJU";
+ NJU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(199,charwidth#,height#+2hp#,depth#);
+ "The syllable NJUP";
+ Ih(4wp,vm,11wp,vm);
+ z1=(13wp,oben);
+ z2=(4wp,vm);
+ z3=(x1,0);
+ z4=(11wp,7.5hp);
+ z5=(rer,vm);
+ z6=(x4,2.5hp);
+ getpen;
+ draw z1..z2..z3;
+ draw z4..z5..z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NJUR =
+ Ih(5wp,7hp,14wp,7hp);
+ z1=(rer,8.5hp);
+ z2=(10.5wp,oben);
+ z3=(x2,2hp);
+ z4=(6wp,3.25hp);
+ z5=(x4,0);
+ z15=(7.5wp,4.5hp);
+ z16=(4.25wp,1/2[y15,y17]);
+ z17=(3.75wp,3hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z15..tension 1.2..z16..tension 1.2..z17;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(200,charwidth#,height#+2hp#,depth#);
+ "The syllable NJURX";
+ eyebrow;
+ NJUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(201,charwidth#,height#+2hp#,depth#);
+ "The syllable NJUR";
+ NJUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(202,charwidth#,height#+2hp#,depth#);
+ "The syllable NJYT";
+ S(2wp,oben,10.5wp,0);
+ Oh(10.5wp,oben,rer,6.75hp);
+ Ih(2wp,3hp,2wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NJY =
+ X(1/4width,9hp,rer,4.25hp);
+ z1=(9wp,10hp);
+ z2=(x1,1.5hp);
+ z3=(3wp,3hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(203,charwidth#,height#+2hp#,depth#);
+ "The syllable NJYX";
+ eyebrow;
+ NJY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(204,charwidth#,height#+2hp#,depth#);
+ "The syllable NJY";
+ NJY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(205,charwidth#,height#+2hp#,depth#);
+ "The syllable NJYP";
+ II(1/4width,oben,3/4width,9hp);
+ Z(lir,8hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NJYR =
+ z1=(rer,8.5hp);
+ z2=(10.5wp,oben);
+ z3=(x2,2hp);
+ z4=(5.25wp,3.25hp);
+ z5=(x4,0);
+ z6=(6.5wp,9.75hp);
+ z7=(x6,4.75hp);
+ z8=(lir,5.75hp);
+ z9=(lir,8.5hp);
+ z10=(x7,7.5hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6--z7--z8;
+ draw z9--z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(206,charwidth#,height#+2hp#,depth#);
+ "The syllable NJYRX";
+ eyebrow;
+ NJYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(207,charwidth#,height#+2hp#,depth#);
+ "The syllable NJYR";
+ NJYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(208,charwidth#,height#+2hp#,depth#);
+ "The syllable NYIT";
+ Liane(lir,oben,rer,7.25hp);
+ Huegel(lir,6.25hp,rer,3.5hp);
+ z1=(8wp,10hp);
+ z2=(x1,1.25hp);
+ z3=(4wp,2.5hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NYI =
+ san(lir,6.5hp,rer,2.5hp);
+ z1=(rer,8hp);
+ z2=(hm,oben);
+ z3=(hm,0);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(209,charwidth#,height#+2hp#,depth#);
+ "The syllable NYIX";
+ eyebrow;
+ NYI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(210,charwidth#,height#+2hp#,depth#);
+ "The syllable NYI";
+ NYI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(211,charwidth#,height#+2hp#,depth#);
+ "The syllable NYIP";
+ z1=(4wp,0);
+ z2=(x1,oben);
+ z3=(12wp,8hp);
+ z10=(11wp,2hp);
+ z11=(x10,6hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z10--z11;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(212,charwidth#,height#+2hp#,depth#);
+ "The syllable NYIET";
+ Liane(6wp,oben,10wp,6.75hp);
+ Huegel(6wp,3.25hp,10wp,0);
+ z1=(lir,oben);
+ z2=(4.75wp,vm);
+ z3=(lir,0);
+ z4=(rer,oben);
+ z5=(11.25wp,y2);
+ z6=(rer,0);
+ getpen;
+ draw z1..z2..z3;
+ draw z4..z5..z6;
+ draw z2--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NYIE =
+ Ih(8wp,oben,8wp,6.75hp);
+ Huegel(6.5wp,3.25hp,10.25wp,0);
+ z1=(4.5wp,oben);
+ z2=(4.5wp,0);
+ z3=(lir,1.5hp);
+ z4=(rer,oben);
+ z5=(11.25wp,vm);
+ z6=(rer,0);
+ getpen;
+ draw z1--z2--z3;
+ draw z4..z5..z6;
+ draw (x2,vm)--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(213,charwidth#,height#+2hp#,depth#);
+ "The syllable NYIEX";
+ eyebrow;
+ NYIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(214,charwidth#,height#+2hp#,depth#);
+ "The syllable NYIE";
+ NYIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(215,charwidth#,height#+2hp#,depth#);
+ "The syllable NYIEP";
+ Ddash(hm,oben,hm,0);
+ z1=(lir,oben);
+ z2=(5wp,vm);
+ z3=(lir,0);
+ z4=(rer,oben);
+ z5=(11wp,y2);
+ z6=(rer,0);
+ getpen;
+ draw z1..z2..z3;
+ draw z4..z5..z6;
+ draw z2--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NYUO =
+ Oh(3wp,oben,13wp,5hp);
+ Ih(hm,8.15hp,hm,6.85hp);
+ z1=(lir,3.75hp);
+ z2=(rer,y1);
+ z3=(x1,0);
+ z4=(x2,y3);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(216,charwidth#,height#+2hp#,depth#);
+ "The syllable NYUOX";
+ eyebrow;
+ NYUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(217,charwidth#,height#+2hp#,depth#);
+ "The syllable NYUO";
+ NYUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(218,charwidth#,height#+2hp#,depth#);
+ "The syllable NYUOP";
+ Liane(5wp,oben,10.5wp,7hp);
+ Liane(lir,9hp,rer,5.5hp);
+ H(3wp,5hp,13wp,1.75hp);
+ Ih(hm,5.5hp,hm,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(219,charwidth#,height#+2hp#,depth#);
+ "The syllable NYOT";
+ Ih(hm,oben,hm,0);
+ z1=(lir,9hp);
+ z2=(6wp,vm);
+ z3=(lir,1hp);
+ z4=(rer,y1);
+ z5=(10wp,vm);
+ z6=(rer,y3);
+ getpen;
+ draw z1..z2..z3;
+ draw z4..z5..z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NYO =
+ Z(3wp,oben,13wp,0);
+ N(lir,7.5hp,rer,5.5hp);
+ N(lir,4.5hp,rer,2.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(220,charwidth#,height#+2hp#,depth#);
+ "The syllable NYOX";
+ eyebrow;
+ NYO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(221,charwidth#,height#+2hp#,depth#);
+ "The syllable NYO";
+ NYO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(222,charwidth#,height#+2hp#,depth#);
+ "The syllable NYOP";
+ Arsch(lir,oben,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(223,charwidth#,height#+2hp#,depth#);
+ "The syllable NYUT";
+ Oh(lir,oben,rer,0);
+ z1=(hm,6.25hp);
+ z2=(x1,3.75hp);
+ z3=(lir,vm);
+ z4=(rer,y3);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def NYU =
+ II(4wp,oben,10.5wp,0);
+ z1=(4wp,8hp);
+ z2=(rer,6.25hp);
+ z3=(13wp,4hp);
+ z4=(13wp,2hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(224,charwidth#,height#+2hp#,depth#);
+ "The syllable NYUX";
+ eyebrow;
+ NYU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(225,charwidth#,height#+2hp#,depth#);
+ "The syllable NYU";
+ NYU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(226,charwidth#,height#+2hp#,depth#);
+ "The syllable NYUP";
+ Ih(8.5wp,oben,8.5wp,0);
+ Ih(13wp,3.25hp,13wp,1.5hp);
+ z4=(rer,9hp);
+ z5=(lir,1/2[y4,y6]);
+ z6=(rer,4.75hp);
+ getpen;
+ draw z4{left}..z5..{right}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(227,charwidth#,height#+2hp#,depth#);
+ "The syllable PIT";
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ z6=(3wp,4hp);
+ z7=(x2,y6);
+ z8=(3wp,2hp);
+ z9=(x2,y8);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ draw z6--z7;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PI =
+ Oh(5wp,oben,rer,0);
+ z1=(lir,8.5hp);
+ z2=(x1,4hp);
+ z3=(rer,vm);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(228,charwidth#,height#+2hp#,depth#);
+ "The syllable PIX";
+ eyebrow;
+ PI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(229,charwidth#,height#+2hp#,depth#);
+ "The syllable PI";
+ PI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(230,charwidth#,height#+2hp#,depth#);
+ "The syllable PIP";
+ X(1/4width,oben,3/4width,0);
+ II(11.5wp,6.75hp,rer,3.25hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PIE =
+ Oh(lir,oben,9.25wp,0);
+ Ih(lir,vm,9wp,vm);
+ II(11.5wp,7.5hp,rer,2.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(231,charwidth#,height#+2hp#,depth#);
+ "The syllable PIEX";
+ eyebrow;
+ PIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(232,charwidth#,height#+2hp#,depth#);
+ "The syllable PIE";
+ PIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(233,charwidth#,height#+2hp#,depth#);
+ "The syllable PIEP";
+ Oh(3wp,oben,13wp,5hp);
+ Busen(lir,3hp,rer,0);
+ Ih(hm,8.25hp,hm,6.75hp);
+ Ih(hm,5hp,hm,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(234,charwidth#,height#+2hp#,depth#);
+ "The syllable PAT";
+ H(lir,oben,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PA =
+ U(lir,oben,rer,0);
+ z1=(lir,6.5hp);
+ z2=(rer,y1);
+ z3=(hm,oben); z4=(x3,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(235,charwidth#,height#+2hp#,depth#);
+ "The syllable PAX";
+ eyebrow;
+ PA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(236,charwidth#,height#+2hp#,depth#);
+ "The syllable PA";
+ PA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(237,charwidth#,height#+2hp#,depth#);
+ "The syllable PAP";
+ hip:=10wp; %Hilfsliniengeber
+ U(2wp,oben,hip,0);
+ x13:=hip;
+ x14=x15=x16=rer;
+ y13=y14=5hp;
+ y15=9hp;
+ y16-1/24height=1/24height;
+ getpen;
+ draw z13--z14; %Horizontale
+ draw z15--z16; %Vertikale
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PUO =
+ II(lir,4.5hp,3/8width,2hp);
+ Ih(lir,8hp,rer,8hp);
+ Ih(5/8width,6hp,5/8width,0);
+ Ih(7/8width,4.5hp,7/8width,2hp);
+ z1=(rer,oben);
+ z2=(lir,8hp);
+ z3=(rer,6hp);
+ getpen;
+ draw z1{left}..z2..{right}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(238,charwidth#,height#+2hp#,depth#);
+ "The syllable PUOX";
+ eyebrow;
+ PUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(239,charwidth#,height#+2hp#,depth#);
+ "The syllable PUO";
+ PUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(240,charwidth#,height#+2hp#,depth#);
+ "The syllable PUOP";
+ Plus(lir,9.8hp,rer,3.7hp);
+ z1=(rer,oben);
+ z2=(rer,2.5hp);
+ z3=(9wp,0);
+ z4=(lir,2hp);
+ z5=(hm,9.8hp);
+ z6=(lir,1/2[y1,y8]);
+ z7=(hm,3.7hp);
+ z8=(rer,3.5hp);
+ getpen;
+ draw z1---z2..z3..z4;
+ draw z1{left}..z5..z6..z7..{right}z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(241,charwidth#,height#+2hp#,depth#);
+ "The syllable POT";
+ Otense(4wp,oben,9.5wp,0,1.4);
+ Er(lir,6hp,6wp,4hp);
+ z4=(12wp,9hp);
+ z5=(9.75wp,1/2[y4,y6]);
+ z6=(x4,1hp);
+ % Zwei Hilfspunkte!
+ z7=(lir,y4);
+ z8=(lir,y6);
+ getpen;
+ draw z4{z5-z7}..{left}z5&z5{right}..{z8-z5}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PO =
+ Liane(lir,9.5hp,rer,4.75hp);
+ Ih(hm,oben,hm,4.75hp);
+ Er(lir,3hp,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(242,charwidth#,height#+2hp#,depth#);
+ "The syllable POX";
+ eyebrow;
+ PO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(243,charwidth#,height#+2hp#,depth#);
+ "The syllable PO";
+ PO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(244,charwidth#,height#+2hp#,depth#);
+ "The syllable POP";
+ Er(lir,4hp,rer,2hp);
+ Ih(hm,6hp,hm,0);
+ Ih(lir,8hp,rer,8hp);
+ z1=(rer,oben);
+ z2=(lir,8hp);
+ z3=(rer,6hp);
+ getpen;
+ draw z1{left}..z2..{right}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(245,charwidth#,height#+2hp#,depth#);
+ "The syllable PUT";
+ z1=(13wp,oben);
+ z2=(x1,7hp);
+ z3=(3wp,9hp);
+ z4=(x3,1hp);
+ z5=(x1,3hp);
+ z6=(x1,0);
+ getpen;
+ draw z1--z2--z3--z4--z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PU =
+ Ih(rer,oben,rer,0);
+ z1=(hm,oben);
+ z2=(lir,1/2[y1,y3]);
+ z3=(x1,1/3[y1,y7]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,2/3[y1,y7]);
+ z6=(x2,1/2[y5,y7]);
+ z7=(x1,0);
+ getpen;
+ draw z1{left}..z2..{right}z3&
+ z3{left}..z4..{right}z5&
+ z5{left}..z6..{right}z7;
+ draw z1--(rer,oben);
+ draw z3--(rer,y3);
+ draw z5--(rer,y5);
+ draw z7--(rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(246,charwidth#,height#+2hp#,depth#);
+ "The syllable PUX";
+ eyebrow;
+ PU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(247,charwidth#,height#+2hp#,depth#);
+ "The syllable PU";
+ PU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(248,charwidth#,height#+2hp#,depth#);
+ "The syllable PUP";
+ Z(1/4width,oben,3/4width,0);
+ Ih(5.5wp,6hp,5.5wp,4hp);
+ z1=(hm,7.5hp);
+ z2=(lir,vm);
+ z3=(hm,2.5hp);
+ getpen;
+ draw z1{left}..z2..{right}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PUR =
+ Oh(lir,oben,9.25wp,0);
+ Ih(5.75wp,6hp,5.75wp,4hp);
+ Ih(9.25wp,vm,rer,vm);
+ II(11.5wp,7.5hp,rer,2.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(249,charwidth#,height#+2hp#,depth#);
+ "The syllable PURX";
+ eyebrow;
+ PUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(250,charwidth#,height#+2hp#,depth#);
+ "The syllable PUR";
+ PUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(251,charwidth#,height#+2hp#,depth#);
+ "The syllable PYT";
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(10wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PY =
+ IXI(lir,oben,rer,0);
+ Ih(11.5wp,6hp,11.5wp,4hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(252,charwidth#,height#+2hp#,depth#);
+ "The syllable PYX";
+ eyebrow;
+ PY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(253,charwidth#,height#+2hp#,depth#);
+ "The syllable PY";
+ PY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(254,charwidth#,height#+2hp#,depth#);
+ "The syllable PYP";
+ Ih(2.5wp,7hp,8wp,7hp);
+ Ih(rer,7hp,rer,3hp);
+ Liane(lir,2hp,8.25wp,0);
+ z1=(rer,8.5hp);
+ z2=(10.5wp,oben);
+ z3=(x2,0);
+ z4=(x2,y1);
+ z5=(5.25wp,y2);
+ z6=(x5,2hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PYR =
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(10wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ z6=(1/4width,oben);
+ z7=(x6,7.5hp);
+ z8=(rer,y5);
+ z9=(x8,3hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ draw z6--z7;
+ draw z8--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(255,charwidth#,height#+2hp#,depth#);
+ "The syllable PYRX";
+ eyebrow;
+ PYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+end.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font, Part III, ends here. %%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yis-4.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yis-4.mf
new file mode 100644
index 00000000000..19a7e8cf52d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yis-4.mf
@@ -0,0 +1,2855 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part IV
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% This file contains 76 eyebrows.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def PYR =
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(10wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ z6=(1/4width,oben);
+ z7=(x6,7.5hp);
+ z8=(rer,y5);
+ z9=(x8,3hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ draw z6--z7;
+ draw z8--z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 0,charwidth#,height#+2hp#,depth#);
+ "The syllable PYR";
+ PYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 1,charwidth#,height#+2hp#,depth#);
+ "The syllable QIT";
+ Ih(9wp,4hp,9wp,2.5hp);
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(12wp,oben);
+ z3=(x2,0);
+ z4=(6wp,1/2[y5,0]);
+ z5=(x2,6.5hp);
+ z14=(4wp,y5);
+ z15=(x4,1/2[y14,y16]);
+ z16=(x14,y3);
+ % Zwei Hilfspunkte!
+ z17=(rer,y14);
+ z18=(rer,y16);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ draw z14{z15-z17}..{right}z15&z15{left}..{z18-z15}z16;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def QI =
+ X(lir,oben,rer,0);
+ II(lir,7hp,rer,3hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 2,charwidth#,height#+2hp#,depth#);
+ "The syllable QIX";
+ eyebrow;
+ QI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 3,charwidth#,height#+2hp#,depth#);
+ "The syllable QI";
+ QI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 4,charwidth#,height#+2hp#,depth#);
+ "The syllable QIP";
+ Oh(lir,oben,rer,0);
+ z1=(hm,6hp);
+ z2=(x1,4hp);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 5,charwidth#,height#+2hp#,depth#);
+ "The syllable QIET";
+ Sanduhr(2wp,oben,9wp,0);
+ X(9.5wp,8hp,14wp,2hp);
+ z1=(5.5wp,vm);
+ z2=(11.75wp,vm);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def QIE =
+ X(7.5wp,9hp,14wp,1hp);
+ z1=(5wp,vm);
+ z2=(rer,vm);
+ z3=(x1,oben);
+ z4=(x1,0);
+ z5=(lir,1.5hp);
+ getpen;
+ draw z1--z2;
+ draw z3--z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 6,charwidth#,height#+2hp#,depth#);
+ "The syllable QIEX";
+ eyebrow;
+ QIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 7,charwidth#,height#+2hp#,depth#);
+ "The syllable QIE";
+ QIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 8,charwidth#,height#+2hp#,depth#);
+ "The syllable QIEP";
+ X(2wp,oben,9wp,0);
+ X(9.5wp,8hp,14wp,2hp);
+ z1=(5.5wp,vm);
+ z2=(rer,vm);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 9,charwidth#,height#+2hp#,depth#);
+ "The syllable QUOT";
+ Er(3wp,4.5hp,rer,3hp);
+ z1=(rer,oben);
+ z2=(rer,2hp);
+ z3=(9wp,0);
+ z4=(lir,1.5hp);
+ z5=(lir,1/2[y1,y6]);
+ z6=(x1,6hp);
+ getpen;
+ draw z1---z2{down}..z3..z4;
+ draw z1{left}..z5..{right}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def QUO =
+ II(lir,oben,rer,0);
+ Ih(lir,5hp,hm,5hp);
+ Ih(hm,8hp,rer,8hp);
+ Ih(hm,2hp,rer,2hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 10,charwidth#,height#+2hp#,depth#);
+ "The syllable QUOX";
+ eyebrow;
+ QUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 11,charwidth#,height#+2hp#,depth#);
+ "The syllable QUO";
+ QUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 12,charwidth#,height#+2hp#,depth#);
+ "The syllable QUOP";
+ U(lir,oben,rer,0);
+ Ih(lir,5.5hp,hm,5.5hp);
+ Ih(hm,8hp,rer,8hp);
+ Ih(hm,3hp,rer,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 13,charwidth#,height#+2hp#,depth#);
+ "The syllable QOT";
+ Ddash(3wp,8.5hp,3wp,1.5hp);
+ Ih(hm,oben,hm,0);
+ Ih(13wp,7.25hp,13wp,2.75hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def QO =
+ Otense(lir,oben,8.5wp,0,1.3);
+ Oh(10.5wp,7hp,rer,3hp);
+ Ih(5.75wp,vm,10.5wp,vm);
+ Ih(2.75wp,8.75hp,5wp,7.5hp);
+ Ih(2.75wp,1.25hp,5wp,2.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 14,charwidth#,height#+2hp#,depth#);
+ "The syllable QOX";
+ eyebrow;
+ QO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 15,charwidth#,height#+2hp#,depth#);
+ "The syllable QO";
+ QO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 16,charwidth#,height#+2hp#,depth#);
+ "The syllable QOP";
+ Oh(lir,oben,rer,0);
+ z1=(hm,oben);
+ z2=(hm,7hp);
+ z3=(3wp,4/24height);
+ z4=(6wp,7/24height);
+ z5=(13wp,y3);
+ z6=(10wp,y4);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 17,charwidth#,height#+2hp#,depth#);
+ "The syllable QUT";
+ Otense(lir,oben,10wp,0,1.1);
+ san(10wp,8hp,rer,2hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def QU =
+ Oh(lir,oben,rer,0);
+ z1=(hm,3hp);
+ z2=(x1,0);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 18,charwidth#,height#+2hp#,depth#);
+ "The syllable QUX";
+ eyebrow;
+ QU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 19,charwidth#,height#+2hp#,depth#);
+ "The syllable QU";
+ QU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 20,charwidth#,height#+2hp#,depth#);
+ "The syllable QUP";
+ Ih(9.5wp,8hp,9.5wp,5hp);
+ z1=(13wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ z14=(4wp,10hp);
+ z15=(7wp,1/2[y14,y16]);
+ z16=(x14,3hp);
+ % Zwei Hilfspunkte!
+ z17=(rer,y14);
+ z18=(rer,y16);
+ getpen;
+ draw z1--z2--z3;
+ draw z14{z15-z17}..{right}z15&z15{left}..{z18-z15}z16;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def QUR =
+ Oh(lir,oben,rer,0);
+ z1=(6.5wp,3hp);
+ z2=(x1,0.5hp);
+ z3=(9.5wp,y1);
+ z4=(x3,y2);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 21,charwidth#,height#+2hp#,depth#);
+ "The syllable QURX";
+ eyebrow;
+ QUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 22,charwidth#,height#+2hp#,depth#);
+ "The syllable QUR";
+ QUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 23,charwidth#,height#+2hp#,depth#);
+ "The syllable QYT";
+ Xi(lir,9hp,rer,1hp);
+ z1=(hm,oben);
+ z2=(x1,0);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def QY =
+ Liane(lir,oben,rer,5.75hp);
+ z1=(hm,5.75hp);
+ z2=(hm,0);
+ z3=(hm,3.25hp);
+ z4=(lir,4.25hp);
+ z5=(lir,0);
+ z7=(hm,oben);
+ z8=(hm,8.5hp);
+ getpen;
+ % draw z7--z8;
+ draw z1--z3--z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 24,charwidth#,height#+2hp#,depth#);
+ "The syllable QYX";
+ eyebrow;
+ QY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 25,charwidth#,height#+2hp#,depth#);
+ "The syllable QY";
+ QY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 26,charwidth#,height#+2hp#,depth#);
+ "The syllable QYP";
+ Liane(lir,oben,rer,5.75hp);
+ Oh(6wp,oben,10wp,7hp);
+ z1=(hm,5.75hp);
+ z2=(hm,0);
+ z3=(hm,3.25hp);
+ z4=(lir,4.25hp);
+ z5=(lir,0);
+ z7=(hm,oben);
+ z8=(hm,8.5hp);
+ getpen;
+ % draw z7--z8;
+ draw z1--z3--z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def QYR =
+ Ih(hm,8hp,hm,0);
+ IXI(2wp,10hp,14wp,6hp);
+ X(3.5wp,5hp,12.5wp,0hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 27,charwidth#,height#+2hp#,depth#);
+ "The syllable QYRX";
+ eyebrow;
+ QYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 28,charwidth#,height#+2hp#,depth#);
+ "The syllable QYR";
+ QYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 29,charwidth#,height#+2hp#,depth#);
+ "The syllable RAT";
+ Huegel(lir,6hp,rer,1hp);
+ Ih(6wp,2.5hp,10wp,2.5hp);
+ z1=(hm,0);
+ z2=(x1,oben);
+ z3=(13wp,8hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RA =
+ Otense(2wp,oben,8wp,0,1.2);
+ X(9.75wp,8hp,14wp,2hp);
+ Ih(8wp,vm,rer,vm);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 30,charwidth#,height#+2hp#,depth#);
+ "The syllable RAX";
+ eyebrow;
+ RA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 31,charwidth#,height#+2hp#,depth#);
+ "The syllable RA";
+ RA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 32,charwidth#,height#+2hp#,depth#);
+ "The syllable RAP";
+ Oh(lir,oben,11wp,0);
+ z1=(rer,oben);
+ z2=(8wp,vm);
+ z3=(rer,0);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RUO =
+ Oh(6wp,7hp,10wp,3hp);
+ z1=(3/4width,oben);
+ z2=(x1,0);
+ z3=(9wp,2hp);
+ z4=(7wp,8hp);
+ z5=(1/4width,oben);
+ z6=(x5,0);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 33,charwidth#,height#+2hp#,depth#);
+ "The syllable RUOX";
+ eyebrow;
+ RUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 34,charwidth#,height#+2hp#,depth#);
+ "The syllable RUO";
+ RUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 35,charwidth#,height#+2hp#,depth#);
+ "The syllable RUOP";
+ X(5wp,9hp,14wp,1hp);
+ z1=(lir,vm);
+ z2=(rer,vm);
+ z3=(lir,oben);
+ z4=(lir,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 36,charwidth#,height#+2hp#,depth#);
+ "The syllable ROT";
+ Ih(5wp,oben,rer,3.25hp);
+ Ih(lir,6.75hp,11wp,0);
+ Ih(lir,3.25hp,11wp,oben);
+ Ih(5wp,0,rer,6.75hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RO =
+ Oh(lir,oben,5/8width,0);
+ Oh(3/8width,8hp,rer,2hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 37,charwidth#,height#+2hp#,depth#);
+ "The syllable ROX";
+ eyebrow;
+ RO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 38,charwidth#,height#+2hp#,depth#);
+ "The syllable RO";
+ RO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 39,charwidth#,height#+2hp#,depth#);
+ "The syllable ROP";
+ X(1/4width,oben,3/4width,0);
+ Oh(11wp,6.75hp,rer,3.25hp);
+ Oh(lir,6.75hp,5wp,3.25hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RE =
+ Oh(3wp,oben,13wp,6.5hp);
+ Xi(lir,5.75hp,rer,2hp);
+ Ih(hm,6.5hp,hm,0hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 40,charwidth#,height#+2hp#,depth#);
+ "The syllable REX";
+ eyebrow;
+ RE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 41,charwidth#,height#+2hp#,depth#);
+ "The syllable RE";
+ RE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 42,charwidth#,height#+2hp#,depth#);
+ "The syllable REP";
+ Oh(6wp,oben,14wp,0);
+ Xi(lir,7hp,10wp,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 43,charwidth#,height#+2hp#,depth#);
+ "The syllable RUT";
+ Ih(hm,oben,hm,0);
+ X(2wp,9.5hp,14wp,5hp);
+ II(1/4width,4.25hp,3/4width,3.25hp);
+ Ih(2wp,0,14wp,0);
+ Ih(2.5wp,2hp,13.5wp,2hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RU =
+ Ih(4.5wp,oben,11.5wp,oben);
+ Ih(hm,oben,hm,0);
+ N(2wp,9hp,14wp,5.25hp);
+ II(1/4width,4.25hp,3/4width,1.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 44,charwidth#,height#+2hp#,depth#);
+ "The syllable RUX";
+ eyebrow;
+ RU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 45,charwidth#,height#+2hp#,depth#);
+ "The syllable RU";
+ RU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 46,charwidth#,height#+2hp#,depth#);
+ "The syllable RUP";
+ Xi(lir,7.5hp,rer,2.5hp);
+ z1=(lir,oben);
+ z2=(6wp,oben);
+ z3=(hm,9hp);
+ z4=(hm,1hp);
+ z5=(x2,0);
+ z6=(lir,0);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RUR =
+ Ih(hm,oben,hm,0);
+ X(2wp,9.5hp,14wp,5.25hp);
+ II(1/4width,4.25hp,3/4width,1.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 47,charwidth#,height#+2hp#,depth#);
+ "The syllable RURX";
+ eyebrow;
+ RUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 48,charwidth#,height#+2hp#,depth#);
+ "The syllable RUR";
+ RUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 49,charwidth#,height#+2hp#,depth#);
+ "The syllable RYT";
+ Liane(5wp,oben,rer,7hp);
+ Huegel(lir,3hp,11wp,0);
+ z1=(1/2[5wp,rer],oben);
+ z2=(x1,4.25hp);
+ z3=(x4,5.75hp);
+ z4=(1/2[lir,11wp],0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RY =
+ Brunnen(3wp,6.75hp,rer,0);
+ z1=(13wp,oben);
+ z2=(x1,7.25hp);
+ z3=(lir,9hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 50,charwidth#,height#+2hp#,depth#);
+ "The syllable RYX";
+ eyebrow;
+ RY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 51,charwidth#,height#+2hp#,depth#);
+ "The syllable RY";
+ RY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 52,charwidth#,height#+2hp#,depth#);
+ "The syllable RYP";
+ z1=(3wp,7hp);
+ z2=(9.5wp,0.75hp);
+ z3=(11wp,0.75hp);
+ z4=(x3,oben);
+ z5=(rer,8.5hp);
+ z6=(lir,5hp);
+ z7=(9wp,4hp);
+ z8=(6.5wp,6.5hp);
+ z9=(4.5wp,2.5hp);
+ getpen;
+ draw z1---z2..z3---z4--z5;
+ draw z6--z7--z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RYR =
+ z1=(rer,oben);
+ z2=(7.5wp,1/2[y1,y3]);
+ z3=(x1,1/3[y1,y7]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,2/3[y1,y7]);
+ z6=(x2,1/2[y5,y7]);
+ z7=(x1,0);
+ z8=(lir,y2);
+ z9=(5.5wp,vm);
+ z10=(lir,y6);
+ getpen;
+ draw z1{left}..z2..{right}z3 &
+ z3{left}..z4..{right}z5 &
+ z5{left}..z6..{right}z7;
+ draw z8..z9..z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 53,charwidth#,height#+2hp#,depth#);
+ "The syllable RYRX";
+ eyebrow;
+ RYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 54,charwidth#,height#+2hp#,depth#);
+ "The syllable RYR";
+ RYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RRA =
+ Z(lir,9.5hp,11wp,0);
+ Plus(lir,9.5hp,5wp,5hp);
+ z1=(rer,8.5hp);
+ z2=(11wp,oben);
+ z3=(x2,0);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 55,charwidth#,height#+2hp#,depth#);
+ "The syllable RRAX";
+ eyebrow;
+ RRA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 56,charwidth#,height#+2hp#,depth#);
+ "The syllable RRA";
+ RRA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RRUO =
+ Ddash(12wp,9hp,12wp,1hp);
+ Oh(lir,8.5hp,6.5wp,4.5hp);
+ z1=(9wp,oben);
+ z2=(x1,0);
+ z3=(x1-1/4width,2hp);
+ z4=(x1,vm);
+ z5=(rer,vm);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 57,charwidth#,height#+2hp#,depth#);
+ "The syllable RRUOX";
+ eyebrow;
+ RRUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 58,charwidth#,height#+2hp#,depth#);
+ "The syllable RRUO";
+ RRUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 59,charwidth#,height#+2hp#,depth#);
+ "The syllable RROT";
+ Ih(3wp,8.5hp,3wp,4.5hp);
+ Liane(7.75wp,9hp,rer,6.00hp);
+ Huegel(7.75wp,4hp,rer,1.00hp);
+ z1=(6wp,oben);
+ z2=(x1,0);
+ z3=(x1-1/4width,2hp);
+ z4=(x1,vm);
+ z5=(rer,vm);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RRO =
+ Arsch(lir,oben,rer,0);
+ z1=(4wp,7hp);
+ z2=(12wp,y1);
+ z3=(3wp,vm);
+ z4=(13wp,y3);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 60,charwidth#,height#+2hp#,depth#);
+ "The syllable RROX";
+ eyebrow;
+ RRO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 61,charwidth#,height#+2hp#,depth#);
+ "The syllable RRO";
+ RRO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 62,charwidth#,height#+2hp#,depth#);
+ "The syllable RROP";
+ Sichel(lir,oben,rer,0);
+ Smiley(5wp,8hp,11.5wp,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 63,charwidth#,height#+2hp#,depth#);
+ "The syllable RRET";
+ Plus(lir,4.5hp,6.25wp,1.25hp);
+ Ih(lir,5.75hp,14wp,5.75hp);
+ z1=(13wp,oben);
+ z2=(x1,7.5hp);
+ z3=(8.0wp,8.75hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RRE =
+ Ih(lir,vm,rer,vm);
+ z1=(lir,oben);
+ z2=(3/4width,oben);
+ z3=(rer,9hp);
+ z4=(rer,1hp);
+ z5=(x2,0);
+ z6=(lir,0);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 64,charwidth#,height#+2hp#,depth#);
+ "The syllable RREX";
+ eyebrow;
+ RRE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 65,charwidth#,height#+2hp#,depth#);
+ "The syllable RRE";
+ RRE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 66,charwidth#,height#+2hp#,depth#);
+ "The syllable RREP";
+ N(lir,oben,rer,6.5hp);
+ Ih(3wp,4.75hp,13wp,4.75hp);
+ z1=(hm,8hp);
+ z2=(x1,2hp);
+ z3=(3wp,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 67,charwidth#,height#+2hp#,depth#);
+ "The syllable RRUT";
+ z1=(3/4width,oben);
+ z2=(x1,0);
+ z3=(9wp,2hp);
+ z4=(7wp,8hp);
+ z5=(1/4width,oben);
+ z6=(x5,0);
+ z7=(hm,6hp);
+ z8=(x7,4hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+ draw z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RRU =
+ Gasmaske(lir,oben,rer,0);
+ Ih(1/6[lir,rer],5/12[oben,0],9/24[lir,rer],7/12[oben,0]);
+ Ih(5/6[lir,rer],5/12[oben,0],15/24[lir,rer],7/12[oben,0]);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 68,charwidth#,height#+2hp#,depth#);
+ "The syllable RRUX";
+ eyebrow;
+ RRU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 69,charwidth#,height#+2hp#,depth#);
+ "The syllable RRU";
+ RRU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 70,charwidth#,height#+2hp#,depth#);
+ "The syllable RRUP";
+ Ih(lir,vm,rer,vm);
+ z1=(3wp,oben);
+ z2=(7wp,vm);
+ z3=(x1,0);
+ z4=(x2,oben);
+ z5=(x1,vm);
+ z6=(x4,0);
+ z11=(13wp,oben);
+ z12=(9wp,vm);
+ z13=(x11,0);
+ z14=(x12,oben);
+ z15=(x11,vm);
+ z16=(x14,0);
+ getpen;
+ draw z1..z2..z3;
+ draw z4..z5..z6;
+ draw z11..z12..z13;
+ draw z14..z15..z16;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RRUR =
+ Ih(hm,6hp,hm,4hp);
+ z1=(7.5wp,oben);
+ z2=(13wp,vm);
+ z3=(x1,0);
+ z4=(7wp,7.75hp);
+ z5=(3wp,vm);
+ z6=(x4,2.25hp);
+ getpen;
+ draw z1..z2..z3;
+ draw z4..z5..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 71,charwidth#,height#+2hp#,depth#);
+ "The syllable RRURX";
+ eyebrow;
+ RRUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 72,charwidth#,height#+2hp#,depth#);
+ "The syllable RRUR";
+ RRUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 73,charwidth#,height#+2hp#,depth#);
+ "The syllable RRYT";
+ II(9.5wp,9hp,13wp,3hp);
+ Ih(6wp,6hp,13wp,6hp);
+ z1=(6wp,oben);
+ z2=(x1,1.5hp);
+ z3=(3wp,3hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RRY =
+ Ih(13wp,7hp,13wp,2hp);
+ z1=(10wp,oben);
+ z2=(x1,2hp);
+ z3=(3wp,4hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 74,charwidth#,height#+2hp#,depth#);
+ "The syllable RRYX";
+ eyebrow;
+ RRY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 75,charwidth#,height#+2hp#,depth#);
+ "The syllable RRY";
+ RRY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 76,charwidth#,height#+2hp#,depth#);
+ "The syllable RRYP";
+ Ih(12.5wp,5.5hp,12.5wp,3hp);
+ z1=(10wp,9hp);
+ z2=(3wp,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,1/2[y3,0]);
+ z5=(x1,0);
+ z6=(x1,oben);
+ z7=(rer,8hp);
+ getpen;
+ draw z1{left}..z2..{right}z3&z3{left}..z4..{right}z5;
+ draw z5--z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def RRYR =
+ Plus(lir,9.5hp,6.25wp,6.25hp);
+ Huegel(lir,4hp,14wp,0);
+ z1=(13wp,oben);
+ z2=(x1,7.5hp);
+ z3=(8.0wp,8.75hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 77,charwidth#,height#+2hp#,depth#);
+ "The syllable RRYRX";
+ eyebrow;
+ RRYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 78,charwidth#,height#+2hp#,depth#);
+ "The syllable RRYR";
+ RRYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 79,charwidth#,height#+2hp#,depth#);
+ "The syllable SIT";
+ H(7.5wp,oben,rer,0);
+ Ih(5.25wp,2hp,7.5wp,0);
+ z5=(4wp,0);
+ z6=(3wp,2hp);
+ z7=(5.5wp,4hp);
+ getpen;
+ draw z5..z6..z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SI =
+ Oh(lir,oben,rer,2.5hp);
+ Huegel(lir,2.5hp,rer,0);
+ z1=(3wp,8hp);
+ z2=(13wp,y1);
+ z3=(x1,5hp);
+ z4=(x2,y3);
+ z5=(hm,1.5hp);
+ z6=(x5,0);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+ draw z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 80,charwidth#,height#+2hp#,depth#);
+ "The syllable SIX";
+ eyebrow;
+ SI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 81,charwidth#,height#+2hp#,depth#);
+ "The syllable SI";
+ SI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 82,charwidth#,height#+2hp#,depth#);
+ "The syllable SIP";
+ Ddash(4wp,9hp,4wp,2hp);
+ z1=(8wp,0);
+ z2=(x1,oben);
+ z3=(13wp,8.5hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SIE =
+ Liane(3wp,9.5hp,rer,5.5hp);
+ z1=(8.5wp,10hp);
+ z2=(x1,1.25hp);
+ z3=(7.5wp,0);
+ z4=(4.75wp,1.75hp);
+ z5=(4wp,0);
+ z6=(3wp,2hp);
+ z7=(5.5wp,4hp);
+ getpen;
+ draw z1---z2{down}..z3..tension 1.4..{z4-z3}z4;
+ draw z5..z6..z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 83,charwidth#,height#+2hp#,depth#);
+ "The syllable SIEX";
+ eyebrow;
+ SIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 84,charwidth#,height#+2hp#,depth#);
+ "The syllable SIE";
+ SIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 85,charwidth#,height#+2hp#,depth#);
+ "The syllable SIEP";
+ Liane(2wp,9.5hp,rer,5.5hp);
+ z1=(8wp,10hp);
+ z2=(x1,2hp);
+ z3=(6wp,1hp);
+ z4=(4wp,2.00hp);
+ z5=(6wp,3.5hp);
+ z6=(10wp,2hp);
+ z7=(9.75wp,0hp);
+ getpen;
+ draw z1---z2..z3..z4..z5..z6..z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 86,charwidth#,height#+2hp#,depth#);
+ "The syllable SAT";
+ Ih(4wp,9hp,4wp,4.75hp);
+ z1=(8wp,oben);
+ z2=(x1,0);
+ z3=(2wp,2hp);
+ z4=(rer,9hp);
+ z5=(x1,1/2[y4,y6]);
+ z6=(x4,5.75hp);
+ z7=(x4,4.25hp);
+ z8=(x1,1/2[y7,y9]);
+ z9=(x4,1hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4{left}..z5..{right}z6;
+ draw z7{left}..z8..{right}z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SA =
+ Ih(4wp,7.5hp,4wp,4.25hp);
+ Ddash(13wp,8.75hp,13wp,1.25hp);
+ Er(8.5wp,7.5hp,13wp,2.5hp);
+ z1=(8.5wp,oben);
+ z2=(x1,0);
+ z3=(2wp,2hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 87,charwidth#,height#+2hp#,depth#);
+ "The syllable SAX";
+ eyebrow;
+ SA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 88,charwidth#,height#+2hp#,depth#);
+ "The syllable SA";
+ SA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 89,charwidth#,height#+2hp#,depth#);
+ "The syllable SAP";
+ Huegel(3wp,oben,11.5wp,8.5hp);
+ z1=(rer,2hp);
+ z2=(hm,0);
+ z3=(lir,1/2[y1,y5]);
+ z4=(hm,7.5hp);
+ z5=(rer,5.75hp);
+ z6=(rer,oben);
+ z7=(3wp,oben); z8=(x7,8.5hp);
+ z9=(7wp,y7); z10=(x9,y8);
+ z11=(11wp,y7); z12=(x11,y8);
+ getpen;
+ draw z1..z2..z3..z4..z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SUO =
+ II(8wp,6hp,13wp,2hp);
+ z1=(13wp,8hp);
+ z2=(3wp,oben);
+ z3=(x2,0);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 90,charwidth#,height#+2hp#,depth#);
+ "The syllable SUOX";
+ eyebrow;
+ SUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 91,charwidth#,height#+2hp#,depth#);
+ "The syllable SUO";
+ SUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 92,charwidth#,height#+2hp#,depth#);
+ "The syllable SUOP";
+ X(7wp,6hp,13wp,2hp);
+ z1=(13wp,8hp);
+ z2=(3wp,oben);
+ z3=(x2,0);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 93,charwidth#,height#+2hp#,depth#);
+ "The syllable SOT";
+ S(lir,oben,rer,0);
+ Ih(7wp,7.75hp,10wp,7.00hp);
+ Ih(9wp,2.25hp,6wp,3.00hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SO =
+ Z(1/4width,oben,3/4width,0);
+ Ih(3wp,8hp,6wp,7.00hp);
+ Ih(10wp,6.00hp,13wp,5hp);
+ Ih(3wp,5hp,6wp,4.00hp);
+ Ih(10wp,3.00hp,13wp,2hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 94,charwidth#,height#+2hp#,depth#);
+ "The syllable SOX";
+ eyebrow;
+ SO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 95,charwidth#,height#+2hp#,depth#);
+ "The syllable SO";
+ SO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 96,charwidth#,height#+2hp#,depth#);
+ "The syllable SOP";
+ S(lir,oben,rer,0);
+ Ih(6.25wp,8.25hp,6.25wp,7.00hp);
+ Ih(9.75wp,8.00hp,9.75wp,6.75hp);
+ Ih(9.75wp,1.75hp,9.75wp,3.00hp);
+ Ih(6.25wp,2.00hp,6.25wp,3.25hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SE =
+ z1=(rer,8hp);
+ z2=(10.75wp,oben);
+ z3=(x2,0);
+ z4=(5.25wp,9.75hp);
+ z5=(x4,7.75hp);
+ z6=(x4,2.25hp);
+ z7=(x4,0.25hp);
+ z8=(x2,7hp);
+ z9=(3wp,1/2[y8,y10]);
+ z10=(x2,3hp);
+ getpen;
+ draw z1--z2--z3; draw z4--z5; draw z6--z7;
+ draw z8{left}..z9..{right}z10;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 97,charwidth#,height#+2hp#,depth#);
+ "The syllable SEX";
+ eyebrow;
+ SE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 98,charwidth#,height#+2hp#,depth#);
+ "The syllable SE";
+ SE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 99,charwidth#,height#+2hp#,depth#);
+ "The syllable SEP";
+ II(4wp,9hp,13wp,6.75hp);
+ II(3wp,3.75hp,12wp,1hp);
+ z1=(9.5wp,oben);
+ z2=(x1,4.75hp);
+ z3=(6.5wp,5.75hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(100,charwidth#,height#+2hp#,depth#);
+ "The syllable SUT";
+ Liane(3wp,oben,13wp,7.5hp);
+ Busen(lir,6.25hp,rer,3.5hp);
+ Huegel(3wp,2.5hp,13wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SU =
+ Ddash(12wp,9hp,12wp,1hp);
+ z1=(7.5wp,oben);
+ z2=(x1,0);
+ z3=(3wp,2.5hp);
+ z4=(x1,vm);
+ z5=(rer,vm);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(101,charwidth#,height#+2hp#,depth#);
+ "The syllable SUX";
+ eyebrow;
+ SU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(102,charwidth#,height#+2hp#,depth#);
+ "The syllable SU";
+ SU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(103,charwidth#,height#+2hp#,depth#);
+ "The syllable SUP";
+ Oh(5wp,oben,rer,0);
+ z3=(lir,vm);
+ z4=(hm,vm);
+ getpen;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SUR =
+ Ddash(12wp,9hp,12wp,1hp);
+ Plus(lir,8.5hp,7wp,4hp);
+ z1=(9wp,oben);
+ z2=(x1,0);
+ z3=(x1-1/4width,2hp);
+ z4=(x1,vm);
+ z5=(rer,vm);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(104,charwidth#,height#+2hp#,depth#);
+ "The syllable SURX";
+ eyebrow;
+ SUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(105,charwidth#,height#+2hp#,depth#);
+ "The syllable SUR";
+ SUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(106,charwidth#,height#+2hp#,depth#);
+ "The syllable SYT";
+ Liane(lir,oben,rer,6hp);
+ Plus(3wp,4.5hp,13wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SY =
+ Liane(lir,oben,rer,6hp);
+ z1=(hm,6hp);
+ z2=(hm,1.5hp);
+ z3=(lir,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(107,charwidth#,height#+2hp#,depth#);
+ "The syllable SYX";
+ eyebrow;
+ SY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(108,charwidth#,height#+2hp#,depth#);
+ "The syllable SY";
+ SY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(109,charwidth#,height#+2hp#,depth#);
+ "The syllable SYP";
+ Er(4wp,8hp,rer,5hp);
+ z1=(9wp,oben);
+ z2=(x1,1.5hp);
+ z3=(lir,3hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SYR =
+ Liane(lir,oben,rer,6hp);
+ Ih(hm,4hp,hm,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(110,charwidth#,height#+2hp#,depth#);
+ "The syllable SYRX";
+ eyebrow;
+ SYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(111,charwidth#,height#+2hp#,depth#);
+ "The syllable SYR";
+ SYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(112,charwidth#,height#+2hp#,depth#);
+ "The syllable SSIT";
+ Ih(13wp,6hp,13wp,2.5hp);
+ Ddash(3wp,8.25hp,3wp,2hp);
+ Er(3wp,7.25hp,8wp,3hp);
+ z1=(13wp,oben);
+ z2=(x1,7.25hp);
+ z3=(8wp,9hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SSI =
+ Plus(4.5wp,6.75hp,rer,1hp);
+ z1=(13wp,oben);
+ z2=(x1,7.25hp);
+ z3=(lir,9hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(113,charwidth#,height#+2hp#,depth#);
+ "The syllable SSIX";
+ eyebrow;
+ SSI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(114,charwidth#,height#+2hp#,depth#);
+ "The syllable SSI";
+ SSI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(115,charwidth#,height#+2hp#,depth#);
+ "The syllable SSIP";
+ Plus(8.5wp,6.25hp,rer,2.5hp);
+ Er(lir,7hp,7wp,2.5hp);
+ z1=(13wp,oben);
+ z2=(x1,7.25hp);
+ z3=(7wp,9hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SSIE =
+ N(lir,oben,rer,6.5hp);
+ Ddash(4.5wp,5.75hp,4.5wp,1.5hp);
+ Ih(11.5wp,5.25hp,11.5wp,3.50hp);
+ z1=(hm,8hp);
+ z2=(x1,2hp);
+ z3=(13wp,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(116,charwidth#,height#+2hp#,depth#);
+ "The syllable SSIEX";
+ eyebrow;
+ SSIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(117,charwidth#,height#+2hp#,depth#);
+ "The syllable SSIE";
+ SSIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(118,charwidth#,height#+2hp#,depth#);
+ "The syllable SSIEP";
+ N(lir,oben,rer,6.25hp);
+ Ih(3wp,0,13wp,0);
+ II(4wp,4.75hp,12wp,2.50hp);
+ z1=(hm,8hp);
+ z2=(x1,0);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(119,charwidth#,height#+2hp#,depth#);
+ "The syllable SSAT";
+ Busen(lir,oben,rer,6.5hp);
+ Busen(lir,3.5hp,rer,0);
+ II(5wp,5hp,11wp,2.75hp);
+ Ih(hm,8hp,hm,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SSA =
+ Oh(lir,9hp,rer,6.25hp);
+ Oh(lir,3.75hp,rer,1hp);
+ II(3wp,5.5hp,13wp,4.5hp);
+ z1=(hm,6.25hp);
+ z2=(x1,3.75hp);
+ getpen;
+ draw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(120,charwidth#,height#+2hp#,depth#);
+ "The syllable SSAX";
+ eyebrow;
+ SSA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(121,charwidth#,height#+2hp#,depth#);
+ "The syllable SSA";
+ SSA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(122,charwidth#,height#+2hp#,depth#);
+ "The syllable SSAP";
+ Oh(lir,9hp,rer,6.25hp);
+ Oh(lir,3.75hp,rer,1hp);
+ z1=(hm,6.25hp);
+ z2=(x1,3.75hp);
+ z3=(lir,vm);
+ z4=(rer,vm);
+ getpen;
+ draw z1--z2; draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(123,charwidth#,height#+2hp#,depth#);
+ "The syllable SSOT";
+ Ih(3wp,8.25hp,3wp,3hp);
+ Er(3wp,7.25hp,8wp,4hp);
+ z1=(13wp,oben);
+ z2=(x1,7.25hp);
+ z3=(8wp,9hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SSO =
+ Oh(lir,oben,rer,0);
+ z1=(hm,vm);
+ z2=(x1,0);
+ z3=(lir,vm);
+ z4=(rer,vm);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(124,charwidth#,height#+2hp#,depth#);
+ "The syllable SSOX";
+ eyebrow;
+ SSO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(125,charwidth#,height#+2hp#,depth#);
+ "The syllable SSO";
+ SSO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(126,charwidth#,height#+2hp#,depth#);
+ "The syllable SSOP";
+ Oh(6wp,6.5hp,10wp,2.5hp);
+ x2=x3=1/4width;
+ y2=y6=0; y3=y7=oben;
+ x4=x6=x7=3/4width;
+ y4=8hp;
+ x8=rer; y8=9hp;
+ getpen;
+ draw z2--z3--z4;
+ draw z6--z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SSE =
+ ZPimmel(lir,oben,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(127,charwidth#,height#+2hp#,depth#);
+ "The syllable SSEX";
+ eyebrow;
+ SSE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(128,charwidth#,height#+2hp#,depth#);
+ "The syllable SSE";
+ SSE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(129,charwidth#,height#+2hp#,depth#);
+ "The syllable SSEP";
+ Oh(lir,oben,rer,0);
+ ZPimmel(5wp,8hp,11wp,2hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(130,charwidth#,height#+2hp#,depth#);
+ "The syllable SSUT";
+ Ih(4.5wp,7hp,4.5wp,4.75hp);
+ Ih(lir,8.5hp,rer,8.5hp);
+ Ih(10.5wp,5.5hp,rer,5.5hp);
+ z1=(10.5wp,oben);
+ z2=(x1,1.5hp);
+ z3=(4wp,3hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SSU =
+ Plus(3.75wp,8hp,9.25wp,4hp);
+ z1=(rer,8.5hp);
+ z2=(11.25wp,oben);
+ z3=(x2,1.5hp);
+ z4=(5wp,3hp);
+ z5=(x4,0);
+ z6=(lir,7.5hp);
+ z7=(x6,9.5hp);
+ z8=(x2,8.5hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6--z7--z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(131,charwidth#,height#+2hp#,depth#);
+ "The syllable SSUX";
+ eyebrow;
+ SSU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(132,charwidth#,height#+2hp#,depth#);
+ "The syllable SSU";
+ SSU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(133,charwidth#,height#+2hp#,depth#);
+ "The syllable SSUP";
+ z1=(lir,2.25hp);
+ z2=(x1,5.75hp);
+ z3=(9wp,4hp);
+ z4=(x3,oben);
+ z5=(1/4width,0);
+ z6=(1/2[x5,x7],y3);
+ z7=(rer,0);
+ z8=(x6,2/5[0,y3]);
+ z9=(x8,0);
+ z11=(4wp,9.5hp);
+ z12=(x3,8.0hp);
+ z13=(14wp,y11);
+ z14=(x11,7.5hp);
+ z15=(x3,6.25hp);
+ z16=(x13,y14);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{up}..z6..{down}z7;
+ draw z8--z9;
+ draw z11..z12..z13;
+ draw z14..z15..z16;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(134,charwidth#,height#+2hp#,depth#);
+ "The syllable SSYT";
+ II(lir,oben,8.5wp,0);
+ Tdash(5.25wp,9hp,1hp);
+ z4=(12wp,9hp);
+ z5=(9wp,1/2[y4,y6]);
+ z6=(x4,1hp);
+ % Zwei Hilfspunkte!
+ z7=(lir,y4);
+ z8=(lir,y6);
+ getpen;
+ draw z4{z5-z7}..{left}z5&z5{right}..{z8-z5}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SSY =
+ z1=(13.5wp,8.5hp);
+ z2=(8.5wp,oben);
+ z3=(x2,1.5hp);
+ z4=(3wp,3hp);
+ z5=(x4,0);
+ z6=(rer,7.25hp);
+ z7=(3wp,1/2[y6,y8]);
+ z8=(rer,3.5hp);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+ draw z6{left}..z7..{right}z8;
+ draw (x2,y7)--(x6,y7);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(135,charwidth#,height#+2hp#,depth#);
+ "The syllable SSYX";
+ eyebrow;
+ SSY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(136,charwidth#,height#+2hp#,depth#);
+ "The syllable SSY";
+ SSY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(137,charwidth#,height#+2hp#,depth#);
+ "The syllable SSYP";
+ Sichel(lir,oben,11.5wp,0);
+ Plus(3wp,8hp,9.5wp,4hp);
+ Tdash(rer,oben,1.5hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SSYR =
+ Ih(3wp,4.25hp,13wp,4.25hp);
+ III(4wp,2.75hp,12wp,0);
+ z1=(lir,7hp);
+ z2=(1/4[lir,rer],oben);
+ z3=(hm,4.25hp);
+ z4=(3/4[lir,rer],oben);
+ z5=(rer,y1);
+ getpen;
+ draw z1{up}..z2..tension 1.3..{down}z3 &
+ z3{up}..tension 1.3..z4..{down}z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(138,charwidth#,height#+2hp#,depth#);
+ "The syllable SSYRX";
+ eyebrow;
+ SSYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(139,charwidth#,height#+2hp#,depth#);
+ "The syllable SSYR";
+ SSYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(140,charwidth#,height#+2hp#,depth#);
+ "The syllable SHAT";
+ Xi(lir,oben,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SHA =
+ II(3wp,8.5hp,6.75wp,2hp);
+ Ih(3wp,5.25hp,10.5wp,5.25hp);
+ z1=(14wp,8.5hp);
+ z2=(10.5wp,oben);
+ z3=(x2,0);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(141,charwidth#,height#+2hp#,depth#);
+ "The syllable SHAX";
+ eyebrow;
+ SHA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(142,charwidth#,height#+2hp#,depth#);
+ "The syllable SHA";
+ SHA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(143,charwidth#,height#+2hp#,depth#);
+ "The syllable SHAP";
+ III(4wp,oben,12wp,0);
+ Er(4wp,7hp,12wp,4hp);
+ Ih(lir,2hp,4wp,0);
+ Ih(12wp,oben,rer,8hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SHUO =
+ Ih(hm,oben,hm,0);
+ X(2wp,6hp,14wp,0);
+ Ih(2wp,oben,14wp,oben);
+ Ih(2.5wp,7.5hp,13.5wp,7.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(144,charwidth#,height#+2hp#,depth#);
+ "The syllable SHUOX";
+ eyebrow;
+ SHUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(145,charwidth#,height#+2hp#,depth#);
+ "The syllable SHUO";
+ SHUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(146,charwidth#,height#+2hp#,depth#);
+ "The syllable SHUOP";
+ N(lir,oben,rer,6.5hp);
+ Ih(hm,8.25hp,hm,0);
+ X(3wp,5.5hp,13wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(147,charwidth#,height#+2hp#,depth#);
+ "The syllable SHOT";
+ Ih(12wp,7.5hp,12wp,2.5hp);
+ z1=(rer,9hp);
+ z2=(8wp,oben);
+ z3=(7.25wp,9hp);
+ z4=(x3,1hp);
+ z5=(x2,0);
+ z6=(x1,1hp);
+ z14=(4wp,9hp);
+ z15=(x3,1/2[y14,y16]);
+ z16=(x14,1hp);
+ % Zwei Hilfspunkte!
+ z17=(rer,y14);
+ z18=(rer,y16);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+ draw z14{z15-z17}..{right}z15&z15{left}..{z18-z15}z16;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SHO =
+ Ih(hm,oben,hm,8.75hp);
+ Liane(3/16[lir,rer],9.5hp,13/16[lir,rer],7.5hp);
+ Busen(lir,7.5hp,rer,4.25hp);
+ Liane(3/16[lir,rer],4.25hp,13/16[lir,rer],0);
+ Ih(hm,3.25hp,hm,2hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(148,charwidth#,height#+2hp#,depth#);
+ "The syllable SHOX";
+ eyebrow;
+ SHO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(149,charwidth#,height#+2hp#,depth#);
+ "The syllable SHO";
+ SHO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(150,charwidth#,height#+2hp#,depth#);
+ "The syllable SHOP";
+ z1=(9wp,10hp);
+ z2=(4wp,7.5hp);
+ z3=(lir,8.75hp);
+ z4=(x2,oben);
+ z5=(7.00wp,8.25hp);
+ z6=(rer,1.75hp);
+ z7=(x6,8.25hp);
+ z8=(x5,1.75hp);
+ z9=(x4,0);
+ z10=(x3,1.25hp);
+ z11=(x2,2.5hp);
+ z12=(x1,0);
+ getpen;
+ draw z1{down}..z2..z3..z4..z5---z6--z7---z8..z9..z10..z11..{down}z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(151,charwidth#,height#+2hp#,depth#);
+ "The syllable SHET";
+ II(5wp,8.5hp,13wp,6.5hp);
+ z1=(lir,2.25hp);
+ z2=(x1,5.75hp);
+ z3=(9wp,4hp);
+ z4=(x3,oben);
+ z5=(1/4width,0);
+ z6=(1/2[x5,x7],y3);
+ z7=(rer,0);
+ z8=(x6,2/5[0,y3]);
+ z9=(x8,0);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{up}..z6..{down}z7;
+ draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SHE =
+ Ih(11.5wp,7.25hp,11.5wp,5.5hp);
+ Ih(3wp,oben,3wp,7hp);
+ Ih(3wp,8.5hp,8.5wp,8.5hp);
+ N(lir,5.5hp,rer,2hp);
+ z1=(8.5wp,0);
+ z2=(x1,oben);
+ z3=(13wp,8.5hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(152,charwidth#,height#+2hp#,depth#);
+ "The syllable SHEX";
+ eyebrow;
+ SHE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(153,charwidth#,height#+2hp#,depth#);
+ "The syllable SHE";
+ SHE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(154,charwidth#,height#+2hp#,depth#);
+ "The syllable SHEP";
+ Ih(11.5wp,7.25hp,11.5wp,5.5hp);
+ Ih(4.5wp,8.65hp,4.5wp,7.6hp);
+ N(lir,5.25hp,rer,2hp);
+ z1=(8.5wp,0);
+ z2=(x1,oben);
+ z3=(13wp,8.5hp);
+ z4=(3.5wp,9.75hp);
+ z5=(x1,1/2[y4,y6]);
+ z6=(x4,6.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4{right}..z5..{left}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(155,charwidth#,height#+2hp#,depth#);
+ "The syllable SHUT";
+ Ih(hm,oben,hm,0);
+ Liane(lir,9hp,rer,6.5hp);
+ Liane(lir,5.75hp,rer,3.25hp);
+ Liane(lir,2.5hp,rer,0hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SHU =
+ Ih(9.75wp,9.5hp,9.75wp,0.25hp);
+ z1=(5.5wp,oben);
+ z2=(x1,0);
+ z3=(2wp,2hp);
+ z4=(x1,3hp);
+ z5=(9.75wp,y4);
+ z6=(rer,5hp);
+ z7=(rer,9.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4---z5..z6---z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(156,charwidth#,height#+2hp#,depth#);
+ "The syllable SHUX";
+ eyebrow;
+ SHU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(157,charwidth#,height#+2hp#,depth#);
+ "The syllable SHU";
+ SHU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(158,charwidth#,height#+2hp#,depth#);
+ "The syllable SHUP";
+ Oh(2wp,10hp,rer,6hp);
+ z1=(8wp,6hp);
+ z2=(x1,3.5hp);
+ z3=(6wp,2hp);
+ z4=(4wp,3.00hp);
+ z5=(6wp,4.5hp);
+ z6=(10wp,3hp);
+ z7=(9.75wp,0hp);
+ getpen;
+ draw z1---z2..z3..z4..z5..z6..z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SHUR =
+ z1=(13wp,oben);
+ z2=(7wp,5.75hp);
+ z3=(3wp,1/2[y2,y4]);
+ z4=(x2,9hp);
+ z5=(x1,vm);
+ z6=(x4,1hp);
+ z7=(x3,1/2[y6,y8]);
+ z8=(x2,4.25hp);
+ z9=(x1,0);
+ getpen;
+ draw z1{down}..z2..z3..z4..z5..z6..z7..z8..{down}z9;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(159,charwidth#,height#+2hp#,depth#);
+ "The syllable SHURX";
+ eyebrow;
+ SHUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(160,charwidth#,height#+2hp#,depth#);
+ "The syllable SHUR";
+ SHUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(161,charwidth#,height#+2hp#,depth#);
+ "The syllable SHYT";
+ II(6wp,oben,10wp,0);
+ N(lir,7hp,rer,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SHY =
+ z1=(rer,oben);
+ z2=(lir,1/2[oben,vm]);
+ z3=(rer,vm);
+ z4=(lir,1/2[vm,0]);
+ z5=(rer,0);
+ getpen;
+ draw z1{left}..z2..{right}z3&z3{left}..z4..{right}z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(162,charwidth#,height#+2hp#,depth#);
+ "The syllable SHYX";
+ eyebrow;
+ SHY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(163,charwidth#,height#+2hp#,depth#);
+ "The syllable SHY";
+ SHY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(164,charwidth#,height#+2hp#,depth#);
+ "The syllable SHYP";
+ Liane(lir,oben,rer,5.75hp);
+ z1=(hm,oben);
+ z2=(hm,0);
+ z3=(hm,3.25hp);
+ z4=(lir,4.25hp);
+ z5=(lir,0);
+ getpen;
+ % draw z1--z2;
+ draw z1--z3--z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def SHYR =
+ Tdash(lir,oben,0);
+ Ih(5wp,vm,rer,vm);
+ z1=(rer,oben);
+ z2=(5wp,vm);
+ z3=(rer,0);
+ getpen;
+ draw z1..z2..z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(165,charwidth#,height#+2hp#,depth#);
+ "The syllable SHYRX";
+ eyebrow;
+ SHYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(166,charwidth#,height#+2hp#,depth#);
+ "The syllable SHYR";
+ SHYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(167,charwidth#,height#+2hp#,depth#);
+ "The syllable TIT";
+ Zdash(lir,8.75hp,rer,0);
+ Ih(3wp,oben,13wp,oben);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def TI =
+ Er(6wp,8hp,13wp,5hp);
+ Ih(3wp,8.5hp,3wp,4.5hp);
+ z1=(9.5wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(168,charwidth#,height#+2hp#,depth#);
+ "The syllable TIX";
+ eyebrow;
+ TI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(169,charwidth#,height#+2hp#,depth#);
+ "The syllable TI";
+ TI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(170,charwidth#,height#+2hp#,depth#);
+ "The syllable TIP";
+ Ih(lir,4.25hp,rer,4.25hp);
+ z1=(13wp,oben);
+ z2=(x1,7hp);
+ z3=(8wp,8.5hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def TIE =
+ Zdash(4wp,oben,14wp,0);
+ z1=(5wp,oben);
+ z2=(5wp,7.25hp);
+ z3=(lir,8hp);
+ getpen;
+ draw z1{(rer,0)-z1}..z2..{z3-(rer,2hp)}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(171,charwidth#,height#+2hp#,depth#);
+ "The syllable TIEX";
+ eyebrow;
+ TIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(172,charwidth#,height#+2hp#,depth#);
+ "The syllable TIE";
+ TIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(173,charwidth#,height#+2hp#,depth#);
+ "The syllable TIEP";
+ Liane(3wp,9hp,10wp,6.50hp);
+ Huegel(3wp,5.25hp,10wp,2.75hp);
+ z1=(12wp,oben);
+ z2=(x1,0);
+ z3=(5wp,2hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(174,charwidth#,height#+2hp#,depth#);
+ "The syllable TAT";
+ z1=(lir,oben);
+ z2=(3/4width,oben);
+ z3=(rer,9hp);
+ z4=(rer,1hp);
+ z5=(x2,0);
+ z6=(lir,0);
+ z7=(9wp,8hp);
+ z8=(3.5wp,vm);
+ z9=(9wp,2hp);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+ draw z7..tension 1.3..z8..tension 1.3..z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def TA =
+ II(1/4width,oben,3/4width,7.75hp);
+ II(1/4width,2.25hp,3/4width,0);
+ z1=(lir,6.5hp);
+ z2=(10wp,y1);
+ z3=(rer,vm);
+ z4=(x2,y5);
+ z5=(lir,3.5hp);
+ getpen;
+ draw z1---z2..z3..z4---z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(175,charwidth#,height#+2hp#,depth#);
+ "The syllable TAX";
+ eyebrow;
+ TA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(176,charwidth#,height#+2hp#,depth#);
+ "The syllable TA";
+ TA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(177,charwidth#,height#+2hp#,depth#);
+ "The syllable TAP";
+ san(lir,7.5hp,11wp,2.5hp);
+ z1=(lir,oben);
+ z2=(3/4width,oben);
+ z3=(rer,9hp);
+ z4=(rer,1hp);
+ z5=(x2,0);
+ z6=(lir,0);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(178,charwidth#,height#+2hp#,depth#);
+ "The syllable TUOT";
+ Ih(hm,oben,hm,7.5hp);
+ Ih(hm,0,hm,2.5hp);
+ z1=(lir,oben);
+ z2=(5.5wp,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,0);
+ z11=(rer,oben);
+ z12=(10.5wp,1/2[y11,y13]);
+ z13=(x11,1/2[y11,y15]);
+ z14=(x12,1/2[y13,y15]);
+ z15=(x11,0);
+ getpen;
+ draw z1..z2..z3&z3..z4..z5;
+ draw z11..z12..z13&z13..z14..z15;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def TUO =
+ san(3wp,9hp,13wp,5hp);
+ z1=(13wp,oben);
+ z2=(x1,1.5hp);
+ z3=(4wp,3hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(179,charwidth#,height#+2hp#,depth#);
+ "The syllable TUOX";
+ eyebrow;
+ TUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(180,charwidth#,height#+2hp#,depth#);
+ "The syllable TUO";
+ TUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(181,charwidth#,height#+2hp#,depth#);
+ "The syllable TUOP";
+ Tdash(8wp,9.5hp,1.5hp);
+ z1=(5wp,oben);
+ z2=(x1,0);
+ z3=(2wp,2hp);
+ z4=(11wp,0);
+ z5=(x4,9hp);
+ z6=(rer,8hp);
+ z7=(rer,oben);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5--z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(182,charwidth#,height#+2hp#,depth#);
+ "The syllable TOT";
+ Z(3wp,oben,12wp,0);
+ Ih(7.5wp,7hp,13wp,5.25hp);
+ Ih(7.5wp,4.25hp,13wp,2.5hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def TO =
+ Ih(4wp,9hp,4wp,6hp);
+ Ih(8.5wp,7.25hp,rer,5.5hp);
+ Ih(8.5wp,5hp,rer,3.25hp);
+ z1=(13wp,8.5hp);
+ z2=(8.5wp,oben);
+ z3=(x2,1.5hp);
+ z4=(3wp,3hp);
+ z5=(x4,0);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(183,charwidth#,height#+2hp#,depth#);
+ "The syllable TOX";
+ eyebrow;
+ TO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(184,charwidth#,height#+2hp#,depth#);
+ "The syllable TO";
+ TO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(185,charwidth#,height#+2hp#,depth#);
+ "The syllable TOP";
+ Tdash(hm,9hp,1hp);
+ z1=(10wp,oben);
+ z2=(rer,1/2[y1,y3]);
+ z3=(x1,1/3[y1,y7]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,2/3[y1,y7]);
+ z6=(x2,1/2[y5,y7]);
+ z7=(x1,0);
+ z11=(6wp,oben);
+ z12=(lir,1/2[y11,y13]);
+ z13=(x11,1/3[y11,y17]);
+ z14=(x12,1/2[y13,y15]);
+ z15=(x11,2/3[y11,y17]);
+ z16=(x12,1/2[y15,y17]);
+ z17=(x11,0);
+ getpen;
+ draw z1{right}..z2..{left}z3 &
+ z3{right}..z4..{left}z5 &
+ z5{right}..z6..{left}z7;
+ draw z11{left}..z12..{right}z13 &
+ z13{left}..z14..{right}z15 &
+ z15{left}..z16..{right}z17;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def TE =
+ X(3wp,9hp,10wp,5.75hp);
+ Ih(6.5wp,oben,6.5wp,2.75hp);
+ Ih(3wp,4.25hp,10wp,4.25hp);
+ z1=(12wp,oben);
+ z2=(x1,0);
+ z3=(5wp,2hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(186,charwidth#,height#+2hp#,depth#);
+ "The syllable TEX";
+ eyebrow;
+ TE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(187,charwidth#,height#+2hp#,depth#);
+ "The syllable TE";
+ TE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(188,charwidth#,height#+2hp#,depth#);
+ "The syllable TEP";
+ Huegel(lir,4hp,rer,0hp);
+ Ih(8wp,7.5hp,13wp,6hp);
+ z1=(hm,0);
+ z2=(x1,oben);
+ z3=(13wp,8.5hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(189,charwidth#,height#+2hp#,depth#);
+ "The syllable TUT";
+ Oh(lir,oben,10wp,0hp);
+ Ih(13wp,6hp,13wp,4hp);
+ z1=(rer,9.5hp);
+ z2=(10wp,5hp);
+ z3=(rer,0.5hp);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def TU =
+ Oh(lir,oben,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(190,charwidth#,height#+2hp#,depth#);
+ "The syllable TUX";
+ eyebrow;
+ TU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(191,charwidth#,height#+2hp#,depth#);
+ "The syllable TU";
+ TU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(192,charwidth#,height#+2hp#,depth#);
+ "The syllable TUP";
+ Oh(lir,oben,rer,6hp);
+ II(lir,3.5hp,12wp,1.5hp);
+ z1=(9.5wp,6hp);
+ z2=(x1,3hp);
+ z3=(6.5wp,4.25hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def TUR =
+ Z(lir,8hp,6.5wp,3hp);
+ Z(3wp,oben,13wp,0);
+ Ih(8wp,5hp,rer,5hp);
+ II(11wp,7hp,rer,3hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(193,charwidth#,height#+2hp#,depth#);
+ "The syllable TURX";
+ eyebrow;
+ TUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(194,charwidth#,height#+2hp#,depth#);
+ "The syllable TUR";
+ TUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(195,charwidth#,height#+2hp#,depth#);
+ "The syllable VIT";
+ Liane(lir,oben,rer,5.75hp);
+ z1=(hm,5.75hp);
+ z2=(hm,0);
+ z3=(hm,3.25hp);
+ z4=(lir,4.25hp);
+ z5=(lir,0);
+ z7=(hm,oben);
+ z8=(hm,8.5hp);
+ getpen;
+ draw z7--z8;
+ draw z1--z3--z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def VI =
+ Z(lir,6.5hp,9.5wp,0hp);
+ z1=(rer,oben);
+ z2=(10wp,5hp);
+ z3=(rer,0.5hp);
+ getpen;
+ draw z1..z2..z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(196,charwidth#,height#+2hp#,depth#);
+ "The syllable VIX";
+ eyebrow;
+ VI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(197,charwidth#,height#+2hp#,depth#);
+ "The syllable VI";
+ VI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(198,charwidth#,height#+2hp#,depth#);
+ "The syllable VIP";
+ N(lir,oben,rer,7hp);
+ Ih(hm,8.25hp,hm,0);
+ Ih(1/4width,6hp,1/4width,2hp);
+ z1=(hm,6.5hp);
+ z2=(13wp,1/2[y1,y3]);
+ z3=(hm,1.5hp);
+ getpen;
+ draw z1{right}..z2..{left}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(199,charwidth#,height#+2hp#,depth#);
+ "The syllable VIET";
+ Ih(3wp,9.5hp,3wp,5.75hp);
+ z1=(8wp,oben);
+ z2=(x1,0);
+ z3=(2wp,2hp);
+ z4=(x1,4hp);
+ z5=(10.5wp,y4);
+ z6=(13wp,5.5hp);
+ z7=(13wp,9.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4---z5..z6---z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def VIE =
+ Ih(hm,oben,hm,0);
+ X(2wp,9.5hp,14wp,4hp);
+ II(lir,7.5hp,rer,6hp);
+ Ih(2wp,0,14wp,0);
+ Ih(2.5wp,2.5hp,13.5wp,2.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(200,charwidth#,height#+2hp#,depth#);
+ "The syllable VIEX";
+ eyebrow;
+ VIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(201,charwidth#,height#+2hp#,depth#);
+ "The syllable VIE";
+ VIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(202,charwidth#,height#+2hp#,depth#);
+ "The syllable VIEP";
+ gong(lir,oben,rer,0);
+ Ih(1/4width,7.5hp,1/4width,2.5hp);
+ z1=(hm,7.5hp);
+ z2=(13wp,1/2[y1,y3]);
+ z3=(hm,2.5hp);
+ getpen;
+ draw z1{right}..z2..{left}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(203,charwidth#,height#+2hp#,depth#);
+ "The syllable VAT";
+ Oh(lir,oben,rer,0);
+ z1=(3wp,7hp);
+ z2=(13wp,y1);
+ z3=(x1,3hp);
+ z4=(x2,y3);
+ getpen;
+ draw z1--z2;
+ draw z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def VA =
+ Liane(lir,oben,rer,3.5hp);
+ Huegel(lir,6.5hp,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(204,charwidth#,height#+2hp#,depth#);
+ "The syllable VAX";
+ eyebrow;
+ VA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(205,charwidth#,height#+2hp#,depth#);
+ "The syllable VA";
+ VA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(206,charwidth#,height#+2hp#,depth#);
+ "The syllable VAP";
+ Xi(lir,7hp,rer,3hp);
+ Z(1/4width,oben,3/4width,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(207,charwidth#,height#+2hp#,depth#);
+ "The syllable VOT";
+ N(lir,8hp,rer,4hp);
+ U(5wp,oben,11wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def VO =
+ Oh(3wp,9hp,7.5wp,5hp);
+ z1=(10wp,oben);
+ z2=(x1,0);
+ z3=(4wp,2hp);
+ z4=(rer,8.5hp);
+ z5=(x1,5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(208,charwidth#,height#+2hp#,depth#);
+ "The syllable VOX";
+ eyebrow;
+ VO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(209,charwidth#,height#+2hp#,depth#);
+ "The syllable VO";
+ VO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(210,charwidth#,height#+2hp#,depth#);
+ "The syllable VOP";
+ Ih(11.5wp,oben,11.5wp,6hp);
+ z1=(9wp,8hp);
+ z2=(3wp,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,1/2[y3,0]);
+ z5=(x1,0);
+ z6=(x1,9hp);
+ z7=(rer,7hp);
+ z8=(rer,oben);
+ getpen;
+ draw z1{left}..z2..{right}z3&z3{left}..z4..{right}z5;
+ draw z5--z6--z7--z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def VEP =
+ z1=(7wp,oben);
+ z2=(rer,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,0);
+ z6=(6wp,8hp);
+ z7=(lir,y3);
+ z8=(x6,2hp);
+ getpen;
+ draw z1{right}..z2..{left}z3&z3{right}..z4..{left}z5;
+ draw z6..z7..z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(211,charwidth#,height#+2hp#,depth#);
+ "The syllable VEX";
+ eyebrow;
+ VEP;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(212,charwidth#,height#+2hp#,depth#);
+ "The syllable VEP";
+ VEP;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(213,charwidth#,height#+2hp#,depth#);
+ "The syllable VUT";
+ z1=(3wp,7hp);
+ z2=(9.5wp,0.75hp);
+ z3=(11wp,0.75hp);
+ z4=(x3,oben);
+ z5=(rer,8.5hp);
+ z6=(lir,4.5hp);
+ z7=(6.5wp,6.5hp);
+ z8=(4wp,3hp);
+ z9=(8.5wp,5hp);
+ getpen;
+ draw z1---z2..z3---z4--z5;
+ draw z6--z7; draw z8--z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def VU =
+ Er(lir,6hp,7wp,4hp);
+ z1=(lir,oben);
+ z2=(11.5wp,vm);
+ z3=(lir,0);
+ z4=(rer,oben);
+ z5=(4.5wp,y2);
+ z6=(rer,0);
+ getpen;
+ draw z1..tension 1.2..z2..tension 1.2..z3;
+ draw z4..tension 1.2..z5..tension 1.2..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(214,charwidth#,height#+2hp#,depth#);
+ "The syllable VUX";
+ eyebrow;
+ VU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(215,charwidth#,height#+2hp#,depth#);
+ "The syllable VU";
+ VU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(216,charwidth#,height#+2hp#,depth#);
+ "The syllable VUP";
+ Ih(8wp,1.5hp,8wp,0);
+ z1=(lir,1hp);
+ z2=(13wp,8.5hp);
+ z3=(3wp,y2);
+ z4=(rer,y1);
+ z5=(11wp,oben);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def VUR =
+ Er(lir,5hp,8wp,2hp);
+ % z1 .. z5 : "d"
+ z2=(12wp,oben);
+ z3=(x2,0);
+ z4=(4.5wp,1/2[y5,0]);
+ z5=(x2,7hp);
+ getpen;
+ draw z2--z3;
+ draw z3{left}..z4..{right}z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(217,charwidth#,height#+2hp#,depth#);
+ "The syllable VURX";
+ eyebrow;
+ VUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(218,charwidth#,height#+2hp#,depth#);
+ "The syllable VUR";
+ VUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(219,charwidth#,height#+2hp#,depth#);
+ "The syllable VYT";
+ Huegel(lir,2.75hp,rer,0hp);
+ Liane(lir,7.5hp,rer,4.75hp);
+ II(4wp,4.25hp,12wp,3.25hp);
+ z1=(hm,0);
+ z2=(x1,oben);
+ z3=(13wp,8.5hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def VY =
+ Liane(lir,oben,rer,6hp);
+ Smiley(4wp,4.75hp,12wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(220,charwidth#,height#+2hp#,depth#);
+ "The syllable VYX";
+ eyebrow;
+ VY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(221,charwidth#,height#+2hp#,depth#);
+ "The syllable VY";
+ VY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(222,charwidth#,height#+2hp#,depth#);
+ "The syllable VYP";
+ Ih(13wp,5.5hp,13wp,4.5hp);
+ Liane(2wp,7.75hp,14wp,5.75hp);
+ Huegel(lir,4.25hp,rer,2.25hp);
+ Z(1/4width,oben,3/4width,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def VYR =
+ Ih(hm,oben,hm,0);
+ Liane(2wp,9.5hp,14wp,6.5hp);
+ II(1/4width,5.75hp,3/4width,4.25hp);
+ Ih(2.5wp,3hp,13.5wp,3hp);
+ Ih(2wp,0,14wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(223,charwidth#,height#+2hp#,depth#);
+ "The syllable VYRX";
+ eyebrow;
+ VYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(224,charwidth#,height#+2hp#,depth#);
+ "The syllable VYR";
+ VYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(225,charwidth#,height#+2hp#,depth#);
+ "The syllable WAT";
+ N(4wp,8hp,rer,4hp);
+ U(6.5wp,oben,11.5wp,0);
+ Ih(9wp,4.25hp,9wp,2.5hp);
+ z1=(lir,5hp);
+ z2=(4wp,4hp);
+ getpen;
+ draw z1--z2;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def WA =
+ N(lir,oben,rer,5.5hp);
+ Er(3wp,3.5hp,13wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(226,charwidth#,height#+2hp#,depth#);
+ "The syllable WAX";
+ eyebrow;
+ WA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(227,charwidth#,height#+2hp#,depth#);
+ "The syllable WA";
+ WA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(228,charwidth#,height#+2hp#,depth#);
+ "The syllable WAP";
+ N(lir,oben,rer,5.5hp);
+ II(4wp,4hp,12wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def WUO =
+ Ih(rer,6hp,rer,4hp);
+ Ih(4.75wp,2.25hp,7.5wp,0.5hp);
+ z1=(2.5wp,oben);
+ z2=(10.75wp,vm);
+ z3=(x1,0);
+ z4=(13.5wp,oben);
+ z5=(5.25wp,y2);
+ z6=(x4,0);
+ getpen;
+ draw z1..tension 1.4..z2..tension 1.4..z3;
+ draw z4..tension 1.4..z5..tension 1.4..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(229,charwidth#,height#+2hp#,depth#);
+ "The syllable WUOX";
+ eyebrow;
+ WUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(230,charwidth#,height#+2hp#,depth#);
+ "The syllable WUO";
+ WUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(231,charwidth#,height#+2hp#,depth#);
+ "The syllable WUOP";
+ Huegel(lir,4hp,rer,0hp);
+ z1=(3wp,8hp);
+ z2=(hm,y1);
+ z3=(12wp,1/2[y2,y4]);
+ z4=(x2,5hp);
+ z5=(x1,y4);
+ z11=(hm,0);
+ z12=(x11,oben);
+ z13=(13wp,8.5hp);
+ getpen;
+ draw z1---z2..z3..z4---z5;
+ draw z11--z12--z13;
+ draw (x1,y3)--(hm,y3);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def WO =
+ Er(4wp,6hp,13wp,4hp);
+ z1=(12wp,oben);
+ z2=(5wp,8hp);
+ z3=(3wp,9hp);
+ z4=(x2,y1);
+ z5=(8.5wp,7hp);
+ z6=(x5,2hp);
+ z7=(5.75wp,0);
+ z8=(x3,2hp);
+ getpen;
+ draw z1..z2..z3..z4..z5..z6..z7..{z8-z7}z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(232,charwidth#,height#+2hp#,depth#);
+ "The syllable WOX";
+ eyebrow;
+ WO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(233,charwidth#,height#+2hp#,depth#);
+ "The syllable WO";
+ WO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(234,charwidth#,height#+2hp#,depth#);
+ "The syllable WOP";
+ Ih(rer,6.5hp,rer,3.5hp);
+ X(2wp,oben,14wp,0);
+ Ih(3wp,4.5hp,7wp,1hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def WE =
+ Huegel(lir,4hp,rer,0hp);
+ Ih(lir,oben,6wp,8.75hp);
+ Ih(lir,8.50hp,6wp,7.25hp);
+ Ih(lir,7.00hp,6wp,5.75hp);
+ z1=(hm,0);
+ z2=(x1,oben);
+ z3=(13wp,8.5hp);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(235,charwidth#,height#+2hp#,depth#);
+ "The syllable WEX";
+ eyebrow;
+ WE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(236,charwidth#,height#+2hp#,depth#);
+ "The syllable WE";
+ WE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(237,charwidth#,height#+2hp#,depth#);
+ "The syllable WEP";
+ Ih(11.5wp,7.5hp,11.5wp,6hp);
+ N(lir,6.5hp,rer,3.25hp);
+ z1=(hm,0);
+ z2=(x1,oben);
+ z3=(13wp,8.5hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(238,charwidth#,height#+2hp#,depth#);
+ "The syllable XIT";
+ Busen(lir,oben,rer,6.5hp);
+ X(4wp,5.25hp,12wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def XI =
+ X(lir,oben,11wp,0);
+ z1=(rer,oben);
+ z2=(x1,4.5hp);
+ z3=(11wp,5.5hp);
+ z4=(12.5wp,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(239,charwidth#,height#+2hp#,depth#);
+ "The syllable XIX";
+ eyebrow;
+ XI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(240,charwidth#,height#+2hp#,depth#);
+ "The syllable XI";
+ XI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(241,charwidth#,height#+2hp#,depth#);
+ "The syllable XIP";
+ Oh(3.75wp,10hp,9.25wp,7.00hp);
+ Oh(3.75wp,5.75hp,9.25wp,2.75hp);
+ z1=(12wp,oben);
+ z2=(x1,0);
+ z3=(5wp,2hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(242,charwidth#,height#+2hp#,depth#);
+ "The syllable XIET";
+ Busen(lir,oben,rer,6.25hp);
+ Liane(3/16[lir,rer],6.25hp,13/16[lir,rer],3.5hp);
+ z1=(hm,5.5hp);
+ z2=(x1,1.5hp);
+ z3=(5wp,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def XIE =
+ Busen(lir,oben,rer,6hp);
+ z1=(1/4[lir,rer],6hp);
+ z2=(x1,1.5hp);
+ z3=(2wp,y2);
+ z11=(3/4[lir,rer],6hp);
+ z12=(x11,1.5hp);
+ z13=(8wp,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+ draw z11---z12{down}..{up}z13;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(243,charwidth#,height#+2hp#,depth#);
+ "The syllable XIEX";
+ eyebrow;
+ XIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(244,charwidth#,height#+2hp#,depth#);
+ "The syllable XIE";
+ XIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(245,charwidth#,height#+2hp#,depth#);
+ "The syllable XIEP";
+ X(lir,oben,10wp,0);
+ Er(10wp,5.25hp,rer,2.75hp);
+ z1=(rer,oben);
+ z2=(x1,7hp);
+ z3=(12wp,8hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def XUO =
+ Liane(lir,9.5hp,rer,6.5hp);
+ Oh(3wp,6.5hp,13wp,0);
+ Ih(3wp,3.25hp,13wp,3.25hp);
+ Ih(hm,oben,hm,8.75hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(246,charwidth#,height#+2hp#,depth#);
+ "The syllable XUOX";
+ eyebrow;
+ XUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(247,charwidth#,height#+2hp#,depth#);
+ "The syllable XUO";
+ XUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(248,charwidth#,height#+2hp#,depth#);
+ "The syllable XOT";
+ Busen(lir,oben,rer,7hp);
+ z1=(5wp,5.5hp);
+ z2=(hm,4.5hp);
+ z3=(11wp,y1);
+ z11=(x1,3.5hp);
+ z12=(hm,2.5hp);
+ z13=(x3,y11);
+ z21=(lir,2hp);
+ z22=(hm,0hp);
+ z23=(rer,y21);
+ getpen;
+ draw z1..z2..z3;
+ draw z11..z12..z13;
+ draw z21..z22..z23;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def XO =
+ Oh(lir,6.75hp,9wp,3.25hp);
+ z1=(5.5wp,0);
+ z2=(x1,oben);
+ z3=(11wp,8.5hp);
+ z11=(11wp,0);
+ z12=(x11,oben);
+ z13=(14wp,8.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z11--z12--z13;
+ numeric x[];
+ numeric y[];
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(249,charwidth#,height#+2hp#,depth#);
+ "The syllable XOX";
+ eyebrow;
+ XO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(250,charwidth#,height#+2hp#,depth#);
+ "The syllable XO";
+ XO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(251,charwidth#,height#+2hp#,depth#);
+ "The syllable XOP";
+ Xi(lir,6.75hp,8.5wp,3.25hp);
+ z1=(5.25wp,0);
+ z2=(x1,oben);
+ z3=(11wp,8.5hp);
+ z11=(11wp,0);
+ z12=(x11,oben);
+ z13=(14wp,8.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z11--z12--z13;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(252,charwidth#,height#+2hp#,depth#);
+ "The syllable XYT";
+ Liane(4wp,oben,12wp,8hp);
+ N(lir,7.25hp,rer,2.75hp);
+ Ih(hm,8hp,hm,0);
+ Ih(3wp,0,13wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def XY =
+ N(lir,7.5hp,rer,2.5hp);
+ Ih(hm,oben,hm,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(253,charwidth#,height#+2hp#,depth#);
+ "The syllable XYX";
+ eyebrow;
+ XY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(254,charwidth#,height#+2hp#,depth#);
+ "The syllable XY";
+ XY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(255,charwidth#,height#+2hp#,depth#);
+ "The syllable XYP";
+ Liane(4wp,oben,12wp,8hp);
+ N(lir,7.5hp,rer,2.5hp);
+ Ih(hm,8hp,hm,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+end.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font, Part IV, ends here. %%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/public/yi4latex/yis-5.mf b/Master/texmf-dist/fonts/source/public/yi4latex/yis-5.mf
new file mode 100644
index 00000000000..6ea4803fd52
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/yi4latex/yis-5.mf
@@ -0,0 +1,1517 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font. Part V
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% (c) Oliver Corff, Berlin/Beijing/Ulaanbaatar 1997.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% This file contains 42 eyebrows.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def XYR =
+ Liane(lir,9.5hp,rer,4.5hp);
+ N(2wp,3.5hp,14wp,0);
+ Ih(hm,oben,hm,1.75hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 0,charwidth#,height#+2hp#,depth#);
+ "The syllable XYRX";
+ eyebrow;
+ XYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 1,charwidth#,height#+2hp#,depth#);
+ "The syllable XYR";
+ XYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 2,charwidth#,height#+2hp#,depth#);
+ "The syllable YIT";
+ Plus(2.5wp,5.65hp,11wp,0.35hp);
+ % z2 .. z6 : "d"
+ z1=(rer,oben);
+ z2=(rer,7.5hp);
+ z3=(11wp,8.75hp);
+ z4=(x3,0);
+ z5=(lir,1/2[y4,y6]);
+ z6=(x3,6hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z4{left}..z5..{right}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def YI =
+ H(lir,oben,5.25wp,5hp);
+ Sichel(7wp,oben,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 3,charwidth#,height#+2hp#,depth#);
+ "The syllable YIX";
+ eyebrow;
+ YI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 4,charwidth#,height#+2hp#,depth#);
+ "The syllable YI";
+ YI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 5,charwidth#,height#+2hp#,depth#);
+ "The syllable YIP";
+ Z(lir,oben,rer,0);
+ X(6/32width,14/24height,26/32width,6/24height);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 6,charwidth#,height#+2hp#,depth#);
+ "The syllable YIET";
+ % z2 .. z6 : "d"
+ z1=(rer,oben);
+ z2=(rer,7.5hp);
+ z3=(11wp,8.75hp);
+ z4=(x3,0);
+ z5=(3wp,1/2[y4,y6]);
+ z6=(x3,6hp);
+ z7=(lir,0hp);
+ z8=(6wp,1/2[y7,y9]);
+ z9=(lir,y6+0.25hp);
+ z10=(rer,0.25hp);
+ z11=(8.5wp,1/2[y10,y12]);
+ z12=(rer,5.75hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z4{left}..z5..{right}z6;
+ draw z7..z8..z9;
+ draw z10..z11..z12;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def YIE =
+ Er(lir,5hp,rer,2.5hp);
+ z1=(13wp,oben);
+ z2=(x1,7hp);
+ z3=(8wp,8.5hp);
+ z4=(x3,0);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 7,charwidth#,height#+2hp#,depth#);
+ "The syllable YIEX";
+ eyebrow;
+ YIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 8,charwidth#,height#+2hp#,depth#);
+ "The syllable YIE";
+ YIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 9,charwidth#,height#+2hp#,depth#);
+ "The syllable YIEP";
+ Z(lir,oben,rer,0);
+ Oh(lir,7.5hp,rer,2.5hp);
+ X(8/32width,13/24height,24/32width,7/24height);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 10,charwidth#,height#+2hp#,depth#);
+ "The syllable YUOT";
+ Z(5wp,oben,14wp,0);
+ Liane(lir,9.5hp,7.5wp,7hp);
+ Huegel(lir,5.5hp,7.5wp,3hp);
+ Ih(9.5wp,7hp,rer,5hp);
+ Ih(9.5wp,4.25hp,rer,2.25hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def YUO =
+ ZPimmel(5wp,oben,14wp,0);
+ Otense(lir,oben,7wp,4.25hp,1.1);
+ Ih(lir,7.125hp,7wp,7.125hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 11,charwidth#,height#+2hp#,depth#);
+ "The syllable YUOX";
+ eyebrow;
+ YUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 12,charwidth#,height#+2hp#,depth#);
+ "The syllable YUO";
+ YUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 13,charwidth#,height#+2hp#,depth#);
+ "The syllable YUOP";
+ Plus(lir,oben,11wp,7.25hp);
+ Ih(2wp,3.25hp,11wp,3.25hp);
+ % "Grosses C"
+ z1=(14wp,1.5hp);
+ z2=(hm,0);
+ z3=(2wp,1/2[y1,y5]);
+ z4=(hm,6.25hp);
+ z5=(13wp,5.00hp);
+ z6=(x5,oben);
+ getpen;
+ draw z1..z2..z3..z4..z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 14,charwidth#,height#+2hp#,depth#);
+ "The syllable YOT";
+ Z(5wp,oben,14wp,0);
+ Huegel(lir,9.5hp,7.5wp,7hp);
+ Liane(lir,5.5hp,7.5wp,3hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def YO =
+ Ih(3wp,4.75hp,11wp,4.75hp);
+ % "Grosses C"
+ z1=(13wp,1.5hp);
+ z2=(hm,0);
+ z3=(3wp,1/2[y1,y5]);
+ z4=(hm,9.5hp);
+ z5=(x1,7.75hp);
+ z6=(x1,oben);
+ getpen;
+ draw z1..z2..z3..z4..z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 15,charwidth#,height#+2hp#,depth#);
+ "The syllable YOX";
+ eyebrow;
+ YO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 16,charwidth#,height#+2hp#,depth#);
+ "The syllable YO";
+ YO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 17,charwidth#,height#+2hp#,depth#);
+ "The syllable YOP";
+ Liane(lir,oben,rer,6hp);
+ Ih(hm,3.5hp,13wp,5hp);
+ z1=(hm,6hp);
+ z2=(hm,1.5hp);
+ z3=(rer,y2);
+ getpen;
+ draw z1---z2{down}..{up}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 18,charwidth#,height#+2hp#,depth#);
+ "The syllable YUT";
+ N(lir,7.75hp,rer,5.25hp);
+ Ih(5wp,4.25hp,11wp,4.25hp);
+ z1=(13wp,8.75hp);
+ z2=(8wp,oben);
+ z3=(x2,1.5hp);
+ z4=(3wp,3hp);
+ z5=(x4,0);
+ getpen;
+ draw z1--z2--z3--z4--z5;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def YU =
+ Plus(5wp,oben,11wp,6.25hp);
+ Liane(3wp,8.25hp,13wp,5.25hp);
+ Ih(hm,5.25hp,hm,3.5hp);
+ Busen(lir,3.5hp,rer,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 19,charwidth#,height#+2hp#,depth#);
+ "The syllable YUX";
+ eyebrow;
+ YU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 20,charwidth#,height#+2hp#,depth#);
+ "The syllable YU";
+ YU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 21,charwidth#,height#+2hp#,depth#);
+ "The syllable YUP";
+ II(3wp,9hp,8wp,3hp);
+ Ih(3wp,6.00hp,13wp,6.00hp);
+ z1=(13wp,oben);
+ z2=(x1,0);
+ z3=(4wp,1.75hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def YUR =
+ Z(3.5wp,oben,12.5wp,0);
+ N(lir,7.25hp,rer,4.5hp);
+ Ih(4wp,3.5hp,12wp,3.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 22,charwidth#,height#+2hp#,depth#);
+ "The syllable YURX";
+ eyebrow;
+ YUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 23,charwidth#,height#+2hp#,depth#);
+ "The syllable YUR";
+ YUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 24,charwidth#,height#+2hp#,depth#);
+ "The syllable YYT";
+ Liane(lir,9.25hp,rer,6.25hp);
+ Ih(hm,oben,hm,6.25hp);
+ Ih(3wp,vm,13wp,vm);
+ Huegel(lir,3.75hp,rer,.75hp);
+ Ih(hm,3.75hp,hm,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def YY =
+ z1=(12wp,oben); z2=(x1,0);
+ z9=(x1,8hp); z10=(lir,vm); z11=(x1,2hp);
+ pickup pencircle scaled thick;
+ draw z1--z2;
+ draw z9{left}..z10..{right}z11;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 25,charwidth#,height#+2hp#,depth#);
+ "The syllable YYX";
+ eyebrow;
+ YY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 26,charwidth#,height#+2hp#,depth#);
+ "The syllable YY";
+ YY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 27,charwidth#,height#+2hp#,depth#);
+ "The syllable YYP";
+ z1=(rer,oben);
+ z2=(8wp,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,0);
+ z6=(x2,y2+.5hp);
+ z7=(lir,y3);
+ z8=(x4,y4-.5hp);
+ getpen;
+ draw z1{left}..z2..{right}z3 &
+ z3{left}..z4..{right}z5;
+ draw z6{left}..z7..{right}z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def YYR =
+ Plus(3wp,oben,13wp,0);
+ z1=(2.5wp,9.5hp);
+ z2=(2.5wp,6hp);
+ z3=(2.5wp,4hp);
+ z4=(2.5wp,.5hp);
+ z5=(13.5wp,9.5hp);
+ z6=(13.5wp,6hp);
+ z7=(13.5wp,4hp);
+ z8=(13.5wp,.5hp);
+ getpen;
+ draw z1{right}..{left}z2;
+ draw z3{right}..{left}z4;
+ draw z5{left}..{right}z6;
+ draw z7{left}..{right}z8;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 28,charwidth#,height#+2hp#,depth#);
+ "The syllable YYRX";
+ eyebrow;
+ YYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 29,charwidth#,height#+2hp#,depth#);
+ "The syllable YYR";
+ YYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 30,charwidth#,height#+2hp#,depth#);
+ "The syllable ZIT";
+ Ih(8wp,oben,8wp,0);
+ Liane(2wp,9.75hp,14.00wp,6.5hp);
+ II(2wp,5.5hp,5wp,2hp);
+ Ih(lir,3.75hp,8wp,3.75hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZI =
+ Liane(4.5wp,oben,11.5wp,6.75hp);
+ Busen(lir,6.75hp,rer,3hp);
+ Huegel(3wp,3hp,6.75wp,0);
+ Huegel(9.25wp,3hp,13wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 31,charwidth#,height#+2hp#,depth#);
+ "The syllable ZIX";
+ eyebrow;
+ ZI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 32,charwidth#,height#+2hp#,depth#);
+ "The syllable ZI";
+ ZI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 33,charwidth#,height#+2hp#,depth#);
+ "The syllable ZIP";
+ Ih(8.5wp,6.25hp,8.5wp,3.5hp);
+ % "Grosses C"
+ z1=(13wp,1.5hp);
+ z2=(hm,0);
+ z3=(3wp,1/2[y1,y5]);
+ z4=(hm,9.5hp);
+ z5=(x1,7.75hp);
+ z6=(x1,oben);
+ getpen;
+ draw z1..z2..z3..z4..z5--z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZIE =
+ II(2wp,9.5hp,5.5wp,4hp);
+ Ih(lir,6.75hp,rer,6.75hp);
+ Er(6.50wp,2.5hp,14.00wp,0);
+ Ih(10.5wp,oben,10.5wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 34,charwidth#,height#+2hp#,depth#);
+ "The syllable ZIEX";
+ eyebrow;
+ ZIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 35,charwidth#,height#+2hp#,depth#);
+ "The syllable ZIE";
+ ZIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 36,charwidth#,height#+2hp#,depth#);
+ "The syllable ZIEP";
+ II(3wp,8hp,6.5wp,3.5hp);
+ Ih(6.5wp,5.25hp,13wp,5.25hp);
+ z1=(14wp,8hp);
+ z2=(10wp,oben);
+ z3=(x2,0);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 37,charwidth#,height#+2hp#,depth#);
+ "The syllable ZAT";
+ Ih(3.5wp,7.25hp,3.5wp,6.25hp);
+ Ih(12.5wp,4hp,12.5wp,3.0hp);
+ z1=(14wp,oben);
+ z2=(x1,8hp);
+ z3=(8.5wp,9hp);
+ z4=(x3,0hp);
+ z5=(lir,9hp);
+ z6=(x3,1/2[y5,y7]);
+ z7=(lir,4.5hp);
+ z8=(rer,6hp);
+ z9=(x3,1/2[y8,y10]);
+ z10=(rer,1hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5{right}..z6..{left}z7;
+ draw z8{left}..z9..{right}z10;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZA =
+ Ih(4.75wp,5.75hp,4.75wp,4.25hp);
+ z1=(13wp,oben);
+ z2=(7wp,1/2[y1,y3]);
+ z3=(x1,1/3[y1,y7]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,2/3[y1,y7]);
+ z6=(x2,1/2[y5,y7]);
+ z7=(x1,0);
+ z8=(2wp,y4);
+ getpen;
+ draw z1{left}..z2..{right}z3 &
+ z3{left}..z4..{right}z5 &
+ z5{left}..z6..{right}z7;
+ draw z2..z8..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 38,charwidth#,height#+2hp#,depth#);
+ "The syllable ZAX";
+ eyebrow;
+ ZA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 39,charwidth#,height#+2hp#,depth#);
+ "The syllable ZA";
+ ZA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 40,charwidth#,height#+2hp#,depth#);
+ "The syllable ZAP";
+ Liane(4.5wp,oben,11.5wp,6.25hp);
+ Busen(lir,6.25hp,rer,2.5hp);
+ Ddash(3wp,0,13wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZUO =
+ Oh(6.5wp,oben,rer,0);
+ Er(lir,6.5hp,9wp,3.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 41,charwidth#,height#+2hp#,depth#);
+ "The syllable ZUOX";
+ eyebrow;
+ ZUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 42,charwidth#,height#+2hp#,depth#);
+ "The syllable ZUO";
+ ZUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 43,charwidth#,height#+2hp#,depth#);
+ "The syllable ZUOP";
+ Oh(8wp,9hp,rer,3.5hp);
+ Ih(6wp,5.25hp,13.5wp,5.25hp);
+ Ih(8.25wp,7hp,13.5wp,7hp);
+ z1=(6wp,oben);
+ z2=(x1,0);
+ z3=(lir,2hp);
+ getpen;
+ draw z1--z2--z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 44,charwidth#,height#+2hp#,depth#);
+ "The syllable ZOT";
+ z1=(lir,vm);
+ z2=(hm,oben);
+ z3=(rer,vm);
+ z4=(lir,0);
+ z5=(hm,vm);
+ z6=(rer,0);
+ getpen;
+ draw z1--z2--z3--cycle;
+ draw z4--z5--z6--cycle;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZO =
+ z1=(rer,oben);
+ z2=(x1,8hp);
+ z3=(12wp,9hp);
+ z4=(x3,0hp);
+ z5=(x3,2.25hp);
+ z6=(x13,1/2[y5,y7]);
+ z7=(x5,7.75hp);
+ z11=(lir,0);
+ z12=(x11,2hp);
+ z13=(4wp,1hp);
+ z14=(x13,10hp);
+ getpen;
+ draw z1--z2--z3--z4;
+ draw z5--z6--z7;
+ draw z11--z12--z13--z14;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 45,charwidth#,height#+2hp#,depth#);
+ "The syllable ZOX";
+ eyebrow;
+ ZO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 46,charwidth#,height#+2hp#,depth#);
+ "The syllable ZO";
+ ZO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 47,charwidth#,height#+2hp#,depth#);
+ "The syllable ZOP";
+ Oh(lir,oben,rer,6.7hp);
+ Oh(lir,6.7hp,rer,3.3hp);
+ Oh(lir,3.3hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZE =
+ Er(4.75wp,6hp,11.25wp,3.25hp);
+ II(3wp,6.25hp,13wp,3.00hp);
+ z1=(13wp,8hp);
+ z2=(8wp,oben);
+ z3=(x2,0);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 48,charwidth#,height#+2hp#,depth#);
+ "The syllable ZEX";
+ eyebrow;
+ ZE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 49,charwidth#,height#+2hp#,depth#);
+ "The syllable ZE";
+ ZE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 50,charwidth#,height#+2hp#,depth#);
+ "The syllable ZEP";
+ Ih(3wp,5.75hp,13wp,5.75hp);
+ X(4.5wp,5.75hp,13wp,0.5hp);
+ z1=(12wp,oben);
+ z2=(x1,7.5hp);
+ z3=(3wp,8.75hp);
+ z4=(x3,0hp);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 51,charwidth#,height#+2hp#,depth#);
+ "The syllable ZUT";
+ Oh(lir,oben,10.5wp,0);
+ z1=(10.5wp,6.5hp);
+ z2=(12wp,6.5hp);
+ z3=(14wp,7.5hp);
+ z4=(14wp,9.5hp);
+ z5=(10.25wp,2.25hp);
+ z6=(12wp,2.25hp);
+ z7=(14wp,3.25hp);
+ z8=(14wp,4.75hp);
+ getpen;
+ draw z1---z2{right}..{up}z3---z4;
+ draw z5---z6{right}..{up}z7---z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZU =
+ Ih(4wp,9.75hp,12wp,8.50hp);
+ Ih(4wp,4.00hp,12wp,2.75hp);
+ z1=(12wp,oben);
+ z2=(x1,5.50hp);
+ z3=(4wp,7.00hp);
+ z4=(x1,4.50hp);
+ z5=(x1,0);
+ z6=(x3,1.25hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4--z5--z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 52,charwidth#,height#+2hp#,depth#);
+ "The syllable ZUX";
+ eyebrow;
+ ZU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 53,charwidth#,height#+2hp#,depth#);
+ "The syllable ZU";
+ ZU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 54,charwidth#,height#+2hp#,depth#);
+ "The syllable ZUP";
+ Huegel(lir,oben,rer,6hp);
+ Ih(hm,7hp,hm,5.75hp);
+ Huegel(lir,4.5hp,rer,0.5hp);
+ Ih(hm,1.25hp,hm,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZUR =
+ Xi(lir,oben,11wp,0);
+ Ih(lir,oben,lir,7hp);
+ z1=(11wp,6hp);
+ z2=(14wp,7.5hp);
+ z3=(14wp,9.5hp);
+ z4=(11wp,1.25hp);
+ z5=(14wp,2.75hp);
+ z6=(14wp,4.75hp);
+ getpen;
+ draw z1{right}..{up}z2---z3;
+ draw z4{right}..{up}z5---z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 55,charwidth#,height#+2hp#,depth#);
+ "The syllable ZURX";
+ eyebrow;
+ ZUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 56,charwidth#,height#+2hp#,depth#);
+ "The syllable ZUR";
+ ZUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 57,charwidth#,height#+2hp#,depth#);
+ "The syllable ZYT";
+ X(6wp,9.5hp,13wp,6.5hp);
+ X(3wp,3.5hp,10wp,0.5hp);
+ z1=(9.5wp,oben);
+ z2=(x1,4.5hp);
+ z3=(6.5wp,5.5hp);
+ z4=(x3,0hp);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZY =
+ X(4.5wp,oben,13wp,0);
+ z1=(4.25wp,3hp);
+ z2=(3.75wp,1hp);
+ z3=(8wp,.25hp);
+ pickup pencircle scaled 2.5thick;
+ undraw (4.5wp,0)--1/10[(5wp,0),(13wp,oben)];
+ getpen;
+ draw z1{(4.5wp,0)-(13wp,oben)}..z2..{right}z3;
+ % This command twice! In order to eliminate the
+ % undraw effects on my bow trajectory ... ... ...
+ draw z1{(4.5wp,0)-(13wp,oben)}..z2..{right}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 58,charwidth#,height#+2hp#,depth#);
+ "The syllable ZYX";
+ eyebrow;
+ ZY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 59,charwidth#,height#+2hp#,depth#);
+ "The syllable ZY";
+ ZY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 60,charwidth#,height#+2hp#,depth#);
+ "The syllable ZYP";
+ Tdash(3wp,9.5hp,.5hp);
+ z1=(13wp,oben);
+ z2=(6wp,1/2[y1,y3]);
+ z3=(x1,1/3[y1,y7]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,2/3[y1,y7]);
+ z6=(x2,1/2[y5,y7]);
+ z7=(x1,0);
+ getpen;
+ draw z1{left}..z2..{right}z3 &
+ z3{left}..z4..{right}z5 &
+ z5{left}..z6..{right}z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZYR =
+ Tdash(lir,9.5hp,0.5hp);
+ z1=(9wp,oben);
+ z2=(4.5wp,1/2[y1,y3]);
+ z3=(x1+wp,1/2[y1,y5]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,0);
+ z6=(rer,y2);
+ z7=(rer,y4);
+ getpen;
+ draw z1{(lir,vm)-z6}..z2..{right}z3 &
+ z3{left}..z4..{z7-(lir,vm)}z5;
+ draw z6{left}..tension 1.1..z3..tension 1.1..{right}z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 61,charwidth#,height#+2hp#,depth#);
+ "The syllable ZYRX";
+ eyebrow;
+ ZYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 62,charwidth#,height#+2hp#,depth#);
+ "The syllable ZYR";
+ ZYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 63,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZIT";
+ N(lir,oben,rer,6.5hp);
+ Ih(4.25wp,9.15hp,4.25wp,0);
+ Ih(11.75wp,6.85hp,11.75wp,0);
+ Ih(4.25wp,4hp,11.75wp,4hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZZI =
+ Ih(4wp,9.75hp,6.5wp,8.75hp);
+ Ih(3.5wp,8.25hp,6.00wp,7.25hp);
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(10wp,oben);
+ z3=(x2,0);
+ z4=(lir,1/2[y5,0]);
+ z5=(x2,6hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 64,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZIX";
+ eyebrow;
+ ZZI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 65,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZI";
+ ZZI;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 66,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZIP";
+ Quad(7wp,6.5hp,13wp,1hp);
+ z1=(12wp,oben);
+ z2=(x1,7.5hp);
+ z3=(3wp,8.75hp);
+ z4=(x3,0hp);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 67,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZIET";
+ T(2wp,oben,14wp,0);
+ Jalousie(lir,8.5hp,6wp,2hp);
+ Jalousie(10wp,8.5hp,rer,2hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZZIE =
+ T(4wp,7.5hp,12wp,0);
+ II(4wp,4.75hp,12wp,2.25hp);
+ z1=(lir,8.00hp);
+ z2=(hm,oben);
+ z3=(rer,y1);
+ getpen;
+ draw z1..z2..z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 68,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZIEX";
+ eyebrow;
+ ZZIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 69,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZIE";
+ ZZIE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 70,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZIEP";
+ N(lir,oben,rer,6.5hp);
+ Smiley(4.5wp,0,11.5wp,6hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 71,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZAT";
+ gong(lir,oben,12wp,0);
+ Xi(2.5wp,7.25hp,11.5wp,2.75hp);
+ Ih(11.5wp,vm,14wp,vm);
+ Ih(14wp,7.25hp,14wp,2.75hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZZA =
+ X(lir,oben,10.5wp,0);
+ Quad(10.5wp,7.5hp,rer,2.5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 72,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZAX";
+ eyebrow;
+ ZZA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 73,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZA";
+ ZZA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 74,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZAP";
+ X(lir,oben,10.5wp,0);
+ II(10.5wp,7hp,rer,4.75hp);
+ Ih(10.5wp,3.5hp,rer,3.5hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZZO =
+ Er(4wp,6.75hp,12wp,5hp);
+ Oh(3wp,3.5hp,13wp,0);
+ z1=(13wp,oben);
+ z2=(x1,8hp);
+ z3=(8wp,9hp);
+ z4=(x3,3.5hp);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 75,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZOX";
+ eyebrow;
+ ZZO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 76,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZO";
+ ZZO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 77,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZOP";
+ Plus(4wp,oben,12wp,3.50hp);
+ Liane(lir,6.25hp,rer,3.25hp);
+ Huegel(4wp,3.25hp,12wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZZE =
+ Oh(3.25wp,oben,12.75wp,2.5hp);
+ z1=(hm,2.5hp);
+ z2=(hm,1.5hp);
+ z3=(rer,1.5hp);
+ % Zwei horizontale Striche
+ y10=y11=1/3[oben,y1];
+ y12=y13=2/3[oben,y1];
+ x10=x12=4wp;
+ x11=x13=12wp;
+ draw z1---z2{down}..{up}z3;
+ draw z10--z11; draw z12--z13;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 78,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZEX";
+ eyebrow;
+ ZZE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 79,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZE";
+ ZZE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 80,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZEP";
+ Ih(12wp,9hp,12wp,5.75hp);
+ z1=(9wp,oben);
+ z2=(2wp,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,1/2[y3,y5]);
+ z5=(x1,2.5hp);
+ z6=(x1,1.5hp);
+ z7=(13.75wp,1.5hp);
+ getpen;
+ draw z1{left}..z2..{right}z3&z3{left}..z4..{right}z5;
+ draw z1---z6..z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZZU =
+ Oh(4wp,6hp,12wp,1.5hp);
+ Liane(lir,2hp,rer,0);
+ z1=(13wp,8hp);
+ z2=(hm,oben);
+ z3=(x2,6hp);
+ z4=(lir,2hp);
+ z5=(hm,0);
+ z6=(rer,2hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z4..z5..z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 81,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZUX";
+ eyebrow;
+ ZZU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 82,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZU";
+ ZZU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 83,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZUP";
+ Z(3wp,oben,13.00wp,0);
+ II(11wp,6.75hp,rer,3.25hp);
+ Ih(8wp,5.00hp,14wp,5.00hp);
+ z1=(hm,7.75hp);
+ z2=(2wp,vm);
+ z3=(hm,2.25hp);
+ getpen;
+ draw z1{left}..z2..{right}z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZZUR =
+ II(7.75wp,7.25hp,12.5wp,2hp);
+ Ih(3wp,4.75hp,12.5wp,4.75hp);
+ z1=(13wp,8.5hp);
+ z2=(3wp,oben);
+ z3=(x2,0);
+ getpen;
+ draw z1--z2--z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 84,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZURX";
+ eyebrow;
+ ZZUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 85,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZUR";
+ ZZUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 86,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZYT";
+ Jalousie(6.5wp,oben,lir,0hp);
+ Jalousie(9.5wp,oben,rer,0hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZZY =
+ Xi(3wp,6.25hp,13wp,2.5hp);
+ z1=(12wp,oben);
+ z2=(x1,7.5hp);
+ z3=(8wp,8.75hp);
+ z4=(x3,0hp);
+ getpen;
+ draw z1--z2--z3--z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 87,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZYX";
+ eyebrow;
+ ZZY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 88,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZY";
+ ZZY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 89,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZYP";
+ z1=(3wp,1/2[y6,y7]);
+ z2=(13wp,5hp);
+ z3=(3.5wp,1/2[y2,y4]);
+ z4=(x2,oben);
+ z5=(x2,0);
+ z6=(x1,0);
+ z7=(x1,3.5hp);
+ getpen;
+ draw z1--z2 & z2{left}..z3..{right}z4 & z4--z5;
+ draw z6--z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZZYR =
+ U(6wp,0,13wp,oben);
+ z1=(3wp,0.5hp);
+ z2=(x1,3.5hp);
+ z3=(4wp,5hp);
+ z4=(13wp,5hp);
+ getpen;
+ draw z1---z2{up}..{right}z3---z4;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 90,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZYRX";
+ eyebrow;
+ ZZYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 91,charwidth#,height#+2hp#,depth#);
+ "The syllable ZZYR";
+ ZZYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 92,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHAT";
+ Otense(lir,oben,9.5wp,0,1.1);
+ Ih(5.75wp,6.25hp,5.75wp,3.75hp);
+ Ih(13wp,8.5hp,13wp,7.25hp);
+ Ih(13wp,1.5hp,13wp,2.75hp);
+ z1=(rer,oben);
+ z2=(9.5wp,1/2[y1,y3]);
+ z3=(x1,5.75hp);
+ z4=(x1,4.25hp);
+ z5=(x2,1/2[y4,y6]);
+ z6=(x1,0);
+ getpen;
+ draw z1{left}..z2..{right}z3;
+ draw z4{left}..z5..{right}z6;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZHA =
+ Smiley(4.5wp,7hp,11.5wp,oben);
+ N(lir,6.5hp,rer,3.5hp);
+ Smiley(4.5wp,3hp,11.5wp,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 93,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHAX";
+ eyebrow;
+ ZHA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 94,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHA";
+ ZHA;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 95,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHAP";
+ Ih(3wp,6hp,3wp,4hp);
+ z1=(13wp,oben);
+ z2=(x1,7.5hp);
+ z3=(7wp,8.75hp);
+ z4=(x3,1.25hp);
+ z5=(x1,2.5hp);
+ z6=(x1,0);
+ z7=(lir,8.5hp);
+ z8=(x3,vm);
+ z9=(x7,1.5hp);
+ getpen;
+ draw z1--z2--z3--z4--z5--z6;
+ draw z7..z8..z9;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZHUO =
+ Ih(3wp,4.5hp,13wp,4.5hp);
+ z1=(8.5wp,0);
+ z2=(x1,oben);
+ z3=(13wp,8hp);
+ z11=(6wp,9.5hp);
+ z12=(4.5wp,6.75hp);
+ z13=(lir,7.5hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z11{down}..z12..{z13-(rer,2hp)}z13;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar( 96,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHUOX";
+ eyebrow;
+ ZHUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 97,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHUO";
+ ZHUO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 98,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHUOP";
+ Ih(4wp,4.5hp,4wp,2.75hp);
+ z1=(13wp,oben);
+ z2=(x1,2.5hp);
+ z3=(9wp,0);
+ z4=(lir,1.75hp);
+ z5=(hm,9.8hp);
+ z6=(3wp,1/2[y1,y8]);
+ z7=(hm,5.2hp);
+ z8=(x1,5hp);
+ getpen;
+ draw z1---z2..z3..z4;
+ draw z1{left}..z5..z6..z7..{right}z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar( 99,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHOT";
+ Huegel(lir,4hp,rer,0hp);
+ z1=(hm,0);
+ z2=(hm,oben);
+ z3=(13wp,8hp);
+ z11=(6wp,9.5hp);
+ z12=(4.5wp,7.25hp);
+ z13=(lir,8hp);
+ getpen;
+ draw z1--z2--z3;
+ draw z11{down}..z12..{z13-(rer,2hp)}z13;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZHO =
+ x2=x3=lir+1wp;
+ y2=y6=0; y3=y7=oben;
+ x9=x10=1/2[x2,x6];
+ x4=x6=x7=11wp;
+ x5=x6-2.5/8width;
+ y5=2hp;
+ y4=y3-2hp;
+ x8=14wp; y8=y7-1.5hp;
+ y11=y12=2.5hp;
+ y9=6.5hp;
+ y10=4.5hp;
+ x11=x2; x12=x6;
+ getpen;
+ draw z2--z3--z4;
+ draw z6--z7--z8;
+ draw z9--z10;
+ draw z11--z12;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(100,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHOX";
+ eyebrow;
+ ZHO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(101,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHO";
+ ZHO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(102,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHOP";
+ X(4wp,oben,12wp,0);
+ N(lir,6.5hp,rer,3.5hp);
+ Ih(hm,oben,hm,9hp);
+ Ih(hm,1hp,hm,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(103,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHET";
+ Liane(lir,3hp,rer,0);
+ II(4wp,6.5hp,12wp,4.25hp);
+ z1=(hm,0);
+ z2=(hm,9hp);
+ z3=(13wp,8hp);
+ z4=(x3,oben);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZHE =
+ Liane(lir,3hp,rer,0);
+ Ih(hm,oben,hm,0);
+ II(4wp,7.5hp,12wp,4.25hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(104,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHEX";
+ eyebrow;
+ ZHE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(105,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHE";
+ ZHE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(106,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHEP";
+ U(lir,oben,rer,0);
+ Ih(hm,oben,hm,0);
+ Quad(5wp,9hp,11wp,2.5hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(107,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHUT";
+ Z(lir,oben,7.5wp,1.5hp);
+ Otense(7.5wp,oben,rer,1.5hp,1.2);
+ Ih(10.75wp,3hp,10.75wp,0hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZHU =
+ Oh(11wp,oben,rer,6.5hp);
+ z1=(8.5wp,9hp);
+ z2=(2wp,1/2[y1,y3]);
+ z3=(x1,1/2[y1,y5]);
+ z4=(x2,1/2[y3,0]);
+ z5=(x1,0);
+ z6=(x1,10hp);
+ z7=(10.5wp,8.5hp);
+ getpen;
+ draw z1{left}..z2..{right}z3&z3{left}..z4..{right}z5;
+ draw z5--z6--z7;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(108,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHUX";
+ eyebrow;
+ ZHU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(109,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHU";
+ ZHU;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(110,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHUP";
+ Gasmaske(lir,0,rer,oben);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZHUR =
+ Oh(10.5wp,oben,rer,6.25hp);
+ Z(2wp,oben,10.5wp,0);
+ Ih(2wp,8.5hp,6.25wp,6.5hp);
+ Ih(2wp,5.25hp,6.25wp,3.25hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(111,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHURX";
+ eyebrow;
+ ZHUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(112,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHUR";
+ ZHUR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(113,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHYT";
+ S(lir,oben,rer,4hp);
+ Er(lir,2hp,rer,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZHY =
+ Ih(12.5wp,5.75hp,12.5wp,4.25hp);
+ Liane(2wp,9.5hp,14wp,6.25hp);
+ Huegel(lir,3.75hp,rer,0.5hp);
+ Ih(hm,oben,hm,0);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(114,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHYX";
+ eyebrow;
+ ZHY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(115,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHY";
+ ZHY;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(116,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHYP";
+ N(3wp,oben,13wp,7.5hp);
+ N(3wp,6.25hp,13wp,3.75hp);
+ N(3wp,2.5hp,13wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def ZHYR =
+ Ih(3wp,8hp,3wp,2hp);
+ Ih(6.5wp,vm,rer,vm);
+ z1=(rer,9hp);
+ z2=(7wp,oben);
+ z3=(6.5wp,9.5hp);
+ z4=(x3,0.5hp);
+ z5=(x2,0);
+ z6=(x1,1hp);
+ getpen;
+ draw z1---z2..z3---z4..z5---z6;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(117,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHYRX";
+ eyebrow;
+ ZHYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(118,charwidth#,height#+2hp#,depth#);
+ "The syllable ZHYR";
+ ZHYR;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(119,charwidth#,height#+2hp#,depth#);
+ "The syllable IT";
+ U(5wp,oben,rer,0);
+ Ih(5wp,8.5hp,rer,8.5hp);
+ Ih(lir,3.5hp,7.5wp,3.5hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def I =
+ U(5wp,oben,rer,0);
+ Ih(5wp,8.5hp,rer,8.5hp);
+ z1=(lir,1hp);
+ z2=(10wp,1/2[y1,y3]);
+ z3=(lir,6hp);
+ getpen;
+ draw z1{right}..z2..{left}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(120,charwidth#,height#+2hp#,depth#);
+ "The syllable IX";
+ eyebrow;
+ I;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(121,charwidth#,height#+2hp#,depth#);
+ "The syllable I";
+ I;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(122,charwidth#,height#+2hp#,depth#);
+ "The syllable IP";
+ % z1 .. z5 : "d"
+ z1=(rer,8.5hp);
+ z2=(10wp,oben);
+ z3=(x2,0);
+ z4=(3wp,1/2[y5,0]);
+ z5=(x2,6hp);
+ z6=(lir,0);
+ z7=(7wp,1/2[y6,y8]);
+ z8=(lir,y5);
+ getpen;
+ draw z1--z2--z3;
+ draw z3{left}..z4..{right}z5;
+ draw z6{right}..z7..{left}z8;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(123,charwidth#,height#+2hp#,depth#);
+ "The syllable IET";
+ Liane(3wp,oben,rer,6.75hp);
+ Otense(4wp,oben,13wp,0,1.1);
+ Ih(lir,3.25hp,6.75wp,3.25hp);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def IE =
+ Z(3wp,oben,13wp,0);
+ Oh(3wp,7hp,13wp,3hp);
+ z1=(hm,7hp);
+ z2=(hm,3hp);
+ getpen;
+ undraw z1--z2;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(124,charwidth#,height#+2hp#,depth#);
+ "The syllable IEX";
+ eyebrow;
+ IE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(125,charwidth#,height#+2hp#,depth#);
+ "The syllable IE";
+ IE;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(126,charwidth#,height#+2hp#,depth#);
+ "The syllable IEP";
+ Otense(lir,oben,9.75wp,0,1.1);
+ Ih(rer,oben,rer,7hp);
+ Ih(rer,3hp,rer,0);
+ z1=(rer,8.5hp);
+ z2=(6.25wp,1/2[y1,y3]);
+ z3=(rer,1.5hp);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(127,charwidth#,height#+2hp#,depth#);
+ "The syllable AT";
+ Ih(lir,7hp,hm,4.5hp);
+ z1=(13wp,oben);
+ z2=(x1,7hp);
+ z3=(8wp,8.5hp);
+ z4=(x3,0hp);
+ getpen;
+ draw z1--z2--z3--z4;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def A =
+ Z(3wp,oben,12wp,0);
+ Ih(12wp,oben,12wp,0hp);
+ Ih(lir,7hp,7.5wp,5hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(128,charwidth#,height#+2hp#,depth#);
+ "The syllable AX";
+ eyebrow;
+ A;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(129,charwidth#,height#+2hp#,depth#);
+ "The syllable A";
+ A;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(130,charwidth#,height#+2hp#,depth#);
+ "The syllable AP";
+ Z(2.5wp,9.5hp,11.5wp,0);
+ Ih(lir,7hp,7wp,5hp);
+ z1=(rer,oben);
+ z2=(11.5wp,1/2[y1,y3]);
+ z3=(x1,5hp);
+ getpen;
+ draw z1..z2..z3;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def UO =
+ H(3wp,oben,13wp,0);
+ Ih(hm,9hp,hm,6.75hp);
+ Ih(hm,1hp,hm,3.25hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(131,charwidth#,height#+2hp#,depth#);
+ "The syllable UOX";
+ eyebrow;
+ UO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(132,charwidth#,height#+2hp#,depth#);
+ "The syllable UO";
+ UO;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(133,charwidth#,height#+2hp#,depth#);
+ "The syllable UOP";
+ Oh(lir,oben,6.5wp,6.5hp);
+ Oh(9.5wp,oben,rer,6.5hp);
+ Liane(4.25wp,6.5hp,11.75wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(134,charwidth#,height#+2hp#,depth#);
+ "The syllable OT";
+ Oh(lir,oben,rer,6hp);
+ z1=(hm,oben);
+ z2=(x1,5hp);
+ z3=(3wp,1/2[y2,y4]);
+ z4=(x2,11/24[y2,y6]);
+ z5=(2.5wp,1/2[y4,y6]);
+ z6=(7wp,0);
+ z7=(9wp,0.25hp);
+ getpen;
+ draw z1--z2 &
+ z2{left}..z3..{right}z4 &
+ z4{left}..z5..{right}z6..z7;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def O =
+ Z(lir,9hp,7wp,1hp);
+ Otense(7wp,oben,rer,0,1.2);
+ Ih(10.5wp,6hp,10.5wp,4hp);
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(135,charwidth#,height#+2hp#,depth#);
+ "The syllable OX";
+ eyebrow;
+ O;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(136,charwidth#,height#+2hp#,depth#);
+ "The syllable O";
+ O;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(137,charwidth#,height#+2hp#,depth#);
+ "The syllable OP";
+ Z(lir,9hp,7wp,1hp);
+ Otense(7wp,oben,rer,0,1.2);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+def E =
+ mip:=5.75hp;
+ Z(6wp,oben,14wp,0);
+ Ih(4wp,mip,10wp,mip);
+ z1=(lir,9hp);
+ z2=(4wp,mip);
+ z3=(x1,2.5hp);
+ draw z1{right}..z2 & z2..{left}z3;
+enddef;
+% % % % % % % % % % % % % % % % % % % % % % % % % % % % % % % %
+beginchar(138,charwidth#,height#+2hp#,depth#);
+ "The syllable EX";
+ eyebrow;
+ E;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(139,charwidth#,height#+2hp#,depth#);
+ "The syllable E";
+ E;
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+beginchar(140,charwidth#,height#+2hp#,depth#);
+ "The syllable W";
+ Busen(lir,oben,rer,6hp);
+ II(5wp,4hp,11wp,0);
+endchar;
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+end.
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+%%%%% The Yi Syllable Font, Part V, ends here. %%%%%%%%%%%%%%%%%
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnaccent.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnaccent.mf
new file mode 100644
index 00000000000..1aa76f8db04
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnaccent.mf
@@ -0,0 +1,505 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define accents for vietnamese letters
+
+vn_accent_gap# := max(.15x_height#, .5stem#);
+vn_letter_height# := if case_ = small: x_height# else: cap_height# fi;
+vn_max_ac_top# := 0;
+
+vn_tt_corr# := if low_asterisk: crisp# else: 0 fi;
+define_pixels(vn_tt_corr);
+
+if serifs:
+ vn_acute_stem# := .8stem#;
+ vn_acute_hair# := min(hair#, .4vn_acute_stem#);
+else:
+ vn_acute_stem# := .7[vair#, stem#];
+ vn_acute_hair# := .9vair#;
+fi
+
+vn_acute_side_thickness# := .6vn_acute_stem#;
+vn_acute_corner# := .5vn_acute_hair#;
+vn_tt_corner_corr# := .25vn_tt_corr#;
+vn_corner_corr# := vn_acute_corner# + vn_tt_corner_corr#;
+vn_acute_width# := 4u#;
+ds# := vn_acute_corner# + vn_acute_side_thickness#;
+vn_acute_height# := max(.4x_height#, (vn_acute_width# - ds#)*tand(30) + ds#);
+vn_slant_width_corr# := slant*(vn_acute_height# - ds#);
+vn_slant_weight_corr := if slant > 0:
+ if crisp > 0: .2 else: .3 fi slant
+ else: 0 fi;
+define_blacker_pixels(vn_acute_stem, vn_acute_hair, vn_acute_side_thickness);
+
+define_accent_dimens(
+ acute_,
+ vn_acute_width# - vn_slant_width_corr#,
+ vn_acute_height#
+);
+
+begin_accent(acute_);
+ if serifs:
+ pickup crisp.nib;
+ x1 = w - vn_acute_side_thickness;
+ y1 = h - vn_acute_side_thickness;
+ x2 = hp(vn_corner_corr#);
+ y2 = vp(vn_corner_corr#);
+ vn_acute_theta := angle(charwd - vn_corner_corr# - vn_acute_side_thickness#,
+ charht - vn_corner_corr# - vn_acute_side_thickness#);
+ pos1(vn_acute_stem*(1 + vn_slant_weight_corr), vn_acute_theta + 90);
+ pos2(vn_acute_hair*(1 + vn_slant_weight_corr), vn_acute_theta + 90);
+ filldraw circ_stroke z1e -- z2e; % diagonal
+ vn_set_ac_join(acute_, .4w, .4w#, h# - vn_acute_side_thickness#);
+ else:
+ pickup fine.nib;
+ % the following magic lines are to calculate the slope angle according
+ % to vn_acute_stem and vn_acute_hair by solving the equation
+ % tand(theta)*(w - .5(vn_acute_stem + vn_acute_hair)/sind(theta)) = h;
+ A := charwd/charht;
+ B := .5(vn_acute_stem# + vn_acute_hair#)/charht;
+ vn_acute_theta := angle(A*sqrt(A*A + 1 - B*B) - B, A*A + 1);
+ pos1(vn_acute_stem/sind(vn_acute_theta), 0);
+ pos2(vn_acute_hair/sind(vn_acute_theta), 0);
+ rt x1r = w;
+ lft x2l = 0;
+ top y1 = h;
+ bot y2 = 0;
+ filldraw stroke z1e -- z2e;
+ vn_set_ac_join(acute_, .3w, .3w#, h#);
+ fi % diagonal
+ penlabels(1, 2);
+end_accent;
+
+define_accent_dimens(
+ grave_,
+ vn_acute_width# + vn_slant_width_corr#,
+ vn_acute_height#
+);
+
+begin_accent(grave_);
+ if serifs:
+ pickup crisp.nib;
+ x1 = vn_acute_side_thickness;
+ y1 = h - vn_acute_side_thickness;
+ x2 = w - hp(vn_corner_corr#);
+ y2 = vp(vn_corner_corr#);
+ vn_grave_theta := 180 - angle(z1 - z2);
+ pos1(vn_acute_stem*(1 - vn_slant_weight_corr), 90 - vn_grave_theta);
+ pos2(vn_acute_hair*(1 - vn_slant_weight_corr), 90 - vn_grave_theta);
+ filldraw circ_stroke z1e -- z2e;
+ vn_set_ac_join(grave_, .7w, .7w#, vn_corner_corr#);
+ else:
+ pickup fine.nib;
+ pos1(vn_acute_stem/sind(vn_acute_theta), 0);
+ pos2(vn_acute_hair/sind(vn_acute_theta), 0);
+ lft x1l = 0;
+ rt x2r = w;
+ top y1 = h;
+ bot y2 = 0;
+ filldraw stroke z1e -- z2e;
+ vn_set_ac_join(grave_, .7w, .7w#, 0);
+ fi % diagonal
+ penlabels(1, 2);
+end_accent;
+
+define_accent_dimens(
+ dotless_question_,
+ 4.5u#,
+ if serifs: .6min(asc_height#, 1.5x_height#)
+ else: .6min(asc_height#, 1.3x_height#) fi
+);
+
+hook_scale_stem := .65;
+
+begin_accent(dotless_question_); % based on roman question mark
+ numeric bot_width;
+ bot_width = hook_scale_stem *
+ if hefty: max(hround .8dot_size, fine.breadth) else: hair fi;
+ pickup fine.nib;
+ pos2(hook_scale_stem*vair, 90);
+ pos3(hook_scale_stem*curve, 0);
+ pos4(hook_scale_stem*vair, -90);
+ pos5(hook_scale_stem*bot_width, 0);
+ pos6(hook_scale_stem*bot_width, 0);
+ x2 = x4 = x5 = x6 = .5w - .125u;
+ rt x3r = hround(w - .5u);
+ bot_hook# := .15[dot_size#, x_height#]
+ if serifs: + .2x_height# - .5dot_size# - .75vn_tt_corr#
+ else: + .1x_height# - .5dot_size# fi;
+ define_pixels(bot_hook);
+ bot y6 = 1 + bot_hook;
+ top y2r = h + oo;
+% y3 = .75[y6, y2];
+ y3 = .7[y6, y2];
+ if serifs:
+% y4 = .5[y6, y2];
+ y4 = .45[y6, y2];
+ else:
+ y4 = .45[y6, y2];
+ fi
+ y5 = .1[y6, y2];
+ {{interim superness := more_super;
+ filldraw stroke pulled_super_arc.e(2, 3)(superpull)
+ & subpath (0, 1) of super_arc.e(3, 4) .. z5e --- z6e\\}}; % arc and stem
+ if serifs:
+ pos1(hook_scale_stem*hair, 180);
+ pos0(hook_scale_stem*flare, 180);
+ lft x1r = hround .5u;
+ y1 = y3;
+ bulb(2, 1, 0); % bulb
+ else:
+ pos1(Vround 5/7[hook_scale_stem*vair, hook_scale_stem*flare], 110);
+ lft x1r = hround .5u;
+ top y1r = vround .8[y6, top y2r];
+ filldraw stroke term.e(2, 1, left, 1, 4);
+ fi % terminal
+ penlabels(0, 1, 2, 3, 4, 5, 6);
+% now we need to calculate the accent dimens:
+% lft x1r = hround .5u;
+% rt x3r = hround(w - .5u);
+ vn_hook_width# := w# - u#;
+% bot y6 = 1 + bot_hook;
+% top y2r = h + oo;
+% oo:=vround(.5o#*hppp*o_correction)+eps;
+ vn_hook_height# := h# + .5o#*o_correction - bot_hook#;
+ vn_hook_shift_y := bot_hook;
+ vn_hook_shift_x := .5u + vn_hook_shift_y*slant;
+% x2 = x4 = x5 = x6 = .5w - .125u;
+ vn_hook_join_x := .5w - .125u - .5u;
+ vn_hook_join_x# := .5w# - .25u# - .5u#;
+end_accent;
+
+define_accent_dimens(
+ hook_,
+ vn_hook_width#,
+ vn_hook_height#
+);
+
+def bboxcolor = blue enddef;
+begin_accent(hook_);
+ currentpicture := vn_pic(dotless_question_)
+ shifted -(vn_hook_shift_x, vn_hook_shift_y);
+ vn_set_ac_join(hook_, vn_hook_join_x, vn_hook_join_x#, .75h#);
+end_accent;
+def bboxcolor = red enddef;
+
+vn_circumflex_width# := 1.5vn_acute_width#;
+if serifs:
+vn_left_theta := .8vn_acute_theta;
+vn_right_theta := .8vn_grave_theta;
+vn_circumflex_height# := vn_corner_corr# + .5vn_acute_stem# +
+ (.5vn_circumflex_width# - vn_corner_corr#)*tand(vn_left_theta);
+else:
+vn_circumflex_height# := vn_acute_height#;
+fi
+define_accent_dimens(
+ circumflex_,
+ vn_circumflex_width#,
+ vn_circumflex_height#
+);
+
+begin_accent(circumflex_);
+ if serifs:
+ pickup crisp.nib;
+ x1 = w - x3 = hp(vn_corner_corr#);
+ if vn_tt_corr = 0:
+ y1 = y3 + .3vp(vn_slant_width_corr#)
+ else:
+ y1 = y3
+ fi
+ = vp(vn_corner_corr#);
+ pos1(vn_acute_hair*(1 + vn_slant_weight_corr), vn_left_theta + 90);
+ pos3(vn_acute_hair*(1 - vn_slant_weight_corr), 90 - vn_right_theta);
+ pos2(.9vn_acute_stem, 90);
+ x2 = .5w - .3hp(vn_slant_width_corr#);
+ z1 - z2 = whatever * dir vn_left_theta;
+ filldraw stroke z1e -- z2e -- z3e; % diagonals
+ penlabels(0, 1, 2, 3, 4);
+ vn_set_ac_join(circumflex_, .5w, .5w#, 0);
+ else:
+ pickup fine.nib;
+ % similiarly to acute
+ A := .5(charwd + vn_acute_stem#)/charht;
+ B := .5(vn_acute_stem# + vn_acute_hair#)/charht;
+ theta := angle(A*sqrt(A*A + 1 - B*B) - B, A*A + 1);
+ pos1(vn_acute_hair/sind(theta), 0);
+ pos2(min(stem/sind(theta), .6h), 0);
+ pos3(vn_acute_hair/sind(theta), 0);
+ lft x1l = w - rt x3r = 0;
+ bot y1 = bot y3 = 0;
+ x2 = 1/2w;
+ top y2 = h;
+ z0 = whatever[z1r, z2r] = whatever[z2l, z3l];
+ y4l = y4r = y2;
+ x4l = good.x 1/5[x2l, x2];
+ x4r = w - x4l;
+ filldraw z4l -- z1l -- z1r -- z0 -- z3l -- z3r -- z4r -- cycle;
+ penlabels(0, 1, 2, 3, 4);
+ vn_set_ac_join(circumflex_, .5w, .5w#, 0);
+ fi % diagonals
+end_accent;
+
+vn_breve_width# := .9vn_circumflex_width#;
+vn_breve_height# := min(if not serifs: .8 fi vn_circumflex_height#, .5vn_breve_width#);
+
+define_accent_dimens(
+ breve_,
+ vn_breve_width#,
+ vn_breve_height#
+);
+
+begin_accent(breve_);
+ if serifs:
+ pickup crisp.nib;
+ vn_breve_stem := .8vn_acute_stem;
+ vn_breve_vair := vn_acute_hair;
+ else:
+ pickup fine.nib;
+ vn_breve_stem := .9vair;
+ vn_breve_vair := .9vair;
+ fi
+ pos1(vn_breve_vair, -180);
+ pos3(vn_breve_vair, 0);
+ top y1 = top y3 = h;
+ lft x1r = w - rt x3r = 0;
+ pos2(vn_breve_stem, -90);
+ x2 = .5w;
+ bot y2r = 0;
+ filldraw stroke z1e{down} ... z2e{right} ... {up}z3e;
+ penlabels(1, 2, 3);
+ vn_set_ac_join(breve_, .5w, .5w#, 0);
+end_accent;
+
+vn_tilde_h# := min(asc_height# - x_height#, 3/7x_height# + .5dot_size#);
+if serifs:
+ vn_tilde_width# := vn_breve_width#;
+ vn_tilde_height# := .4vn_tilde_h# + .5vn_tt_corr# + .2stem#
+ if beak_jut < 0: + .4vn_tilde_h# fi;
+else:
+ vn_tilde_width# := vn_circumflex_width#;
+ vn_tilde_height# := .7vn_breve_height# + .2stem#;
+fi
+vn_tilde_h := vp(vn_tilde_h#);
+
+define_accent_dimens(
+ tilde_,
+ vn_tilde_width#,
+ vn_tilde_height#
+);
+
+vn_gap(tilde_) := .1x_height#;
+
+begin_accent(tilde_);
+ if serifs:
+ vn_tilde_stem := min(vn_acute_stem, .2w);
+ vn_tilde_vair := max(vair, .5vn_tilde_stem);
+ theta := angle(1/4(4u - vn_tilde_vair), 1/4vn_tilde_h);
+ pickup crisp.nib;
+ numeric vn_mid_width;
+% vn_mid_width = .4[vn_tilde_vair, vn_tilde_stem];
+ vn_mid_width = .4[vn_tilde_vair, stem];
+ pos1(vn_tilde_vair, theta + 90);
+ pos2(vn_tilde_vair, theta + 90);
+ pos3(vn_tilde_vair, theta + 90);
+ pos4(vn_tilde_vair, theta + 90);
+ z2 - z1 = z4 - z3 = min(vn_mid_width - .8crisp - .2vn_tt_corr, .3w)*dir theta;
+ lft x1r = w - rt x4l = 0;
+ bot y1l = 0;
+ top y4r = vround(top y4r + max(.3vn_tilde_h, y2r + .25vn_tilde_vair) - bot y4l);
+ pair delta;
+ ypart delta = min(3*(y3l - y1l), 1.6h);
+ delta = whatever*dir theta;
+ filldraw z1l .. controls(z1l + delta) and (z3l - delta)
+ .. z3l .. z4l -- z4r .. controls(z4r - delta) and (z2r + delta)
+ .. z2r .. z1r -- cycle; % stroke
+ else:
+ pickup fine.nib;
+ vn_tilde_vair := min(vair, .5vn_tilde_h);
+ pos1(vn_tilde_vair, 180);
+ pos2(vn_tilde_vair, 90);
+ pos3(.5[vn_tilde_vair, slab], 90);
+ pos4(vn_tilde_vair, 90);
+ pos5(vn_tilde_vair, 180);
+ lft x1r = w - rt x5l = 0;
+ x2 - x1 = x3 - x2 = x4 - x3 = x5 - x4;
+ bot y1 = bot y4l = 0;
+ top y2r = top y5 = h;
+ y3 = .5[y2, y4];
+ filldraw stroke z1e{up} ... z2e{right} .. z3e .. {right}z4e ... {up}z5e;
+ fi % stroke
+ vn_set_ac_join(tilde_, .5w, .5w#, 0);
+ penlabels(1, 2, 3, 4, 5);
+end_accent;
+
+vn_dot_diam# := max(.8max(dot_size#, cap_curve#), flare#);
+define_whole_blacker_pixels(vn_dot_diam);
+vn_bot(dot_) := max(vn_accent_gap#, .7vn_dot_diam#) + vn_dot_diam#;
+
+define_accent_dimens(
+ dot_,
+ vn_dot_diam#,
+ vn_dot_diam#
+);
+
+begin_accent(dot_);
+ pickup tiny.nib;
+ pos1(h, 0);
+ pos2(h, 90);
+ lft x1l = 0;
+ x1 = x2;
+ top y2r = h;
+ y1 = 1/2[y2l, y2r];
+ dot(1, 2); % dot
+ vn_set_ac_join(dot_, .5w, .5w#, .5h#);
+ penlabels(1, 2);
+end_accent;
+
+
+if not square_dots:
+ vn_horn_dot_size# := min(dot_size#, .3x_height#);
+% vn_horn_dot_size# := 1.2stem# + .1vn_tt_corr#;
+ vn_horn_stem# := if vn_tt_corr# = 0: 1.3 fi vair#;
+ vn_ohorn_width# := vn_horn_dot_size# + .1stem# + .2vn_tt_corr#;
+ vn_ohorn_height# := 1.6vn_horn_dot_size# + .2vn_tt_corr#;
+ vn_uhorn_width# := vn_horn_dot_size# + .2u# +
+ if case_ = small: .1u# + .4stem# - .2vn_slant_width_corr#
+ else: .4cap_hair# fi;
+ vn_uhorn_height# := 1.7vn_horn_dot_size#;
+else:
+ vn_horn_dot_size# := max(dot_size#, .8cap_curve#);
+ vn_horn_stem# := .7vn_horn_dot_size#;
+ vn_ohorn_width# := vn_horn_dot_size# + .3stem# + .3u#;
+ vn_ohorn_height# := 1.7vn_horn_dot_size#;
+ vn_uhorn_width# := vn_horn_dot_size# + .5stem# + .3u#;
+ vn_uhorn_height# := 1.8vn_horn_dot_size#;
+fi
+
+vn_horn_top# := vn_letter_height# + vn_horn_dot_size#;
+
+define_accent_dimens(
+ ohorn_,
+ vn_ohorn_width#,
+ vn_ohorn_height#
+);
+
+begin_accent(ohorn_);
+ vn_draw_horn(ohorn_, vn_horn_dot_size#, vn_horn_stem#, 45);
+ vn_bot(ohorn_) := vn_horn_top# - vn_height(ohorn_);
+end_accent;
+
+define_accent_dimens(
+ uhorn_,
+ vn_uhorn_width#,
+ vn_uhorn_height#
+);
+
+begin_accent(uhorn_);
+ vn_draw_horn(uhorn_, vn_horn_dot_size#,
+ if case_ <> small: min(vn_horn_stem#, hair#) else: vn_horn_stem# fi, 0);
+ vn_bot(uhorn_) := vn_horn_top# - vn_height(uhorn_);
+end_accent;
+
+vn_ac_top := vn_max_ac_top#;
+
+if serifs:
+ vn_breve_acute_gap# := -.02x_height# + .3stem# + .1vn_tt_corr#;
+else:
+ vn_breve_acute_gap# := .15x_height# - .4stem#;
+ vn_acute_botwidth# := vn_acute_hair#/sind(vn_acute_theta); % arcording to ss acute
+fi
+
+define_double_accent(
+ breve_, acute_,
+ if serifs:
+ .8vn_left_side(breve_) + .2vn_tt_corr#
+ else:
+ vn_left_side(breve_) - .5vn_acute_botwidth# - .5u#
+ fi,
+ vn_breve_acute_gap#
+);
+
+define_double_accent(
+ breve_, grave_,
+ vn_align_right(breve_, grave_)
+ if serifs:
+ - .7vn_right_side(breve_)
+ - vn_sl_shift(breve_)
+ - .2vn_tt_corr#
+ else:
+ - vn_right_side(breve_)
+ + .7vn_acute_botwidth#
+ - vn_sl_shift(breve_)
+ fi,
+ vn_breve_acute_gap#
+);
+
+define_double_accent(
+ breve_, hook_,
+ vn_align_join(breve_, hook_),
+ vn_breve_acute_gap#
+);
+
+vn_breve_tilde_gap# := .04x_height# + .3stem# + .1vn_tt_corr#;
+
+define_double_accent(
+ breve_, tilde_,
+ vn_align_join(breve_, tilde_),
+ vn_breve_tilde_gap#
+);
+
+if not serifs:
+vn_acute_botshift# := .5vn_acute_hair#/sind(vn_acute_theta) +
+ .7vn_acute_stem#/sind(vn_acute_theta) + u#; % arcording to ss acute
+fi
+
+define_double_accent(
+ circumflex_, acute_,
+ if serifs:
+ .3vn_left_side(circumflex_)
+ + .2vn_tt_corr#
+ else:
+ vn_left_side(circumflex_)
+ - vn_acute_botshift#
+ fi,
+ vn_breve_acute_gap#
+);
+
+define_double_accent(
+ circumflex_, grave_,
+ vn_align_right(circumflex_, grave_)
+ if serifs:
+ - .3vn_right_side(circumflex_)
+ - vn_sl_shift(circumflex_)
+ - .2vn_tt_corr#
+ else:
+ - vn_right_side(circumflex_)
+ + vn_acute_botshift#
+ - vn_sl_shift(circumflex_)
+ fi,
+ vn_breve_acute_gap#
+);
+
+define_double_accent(
+ circumflex_, hook_,
+ vn_align_join(circumflex_, hook_)
+ if serifs:
+ + .3vn_right_side(circumflex_)
+ - vn_sl_shift(circumflex_)
+ - .2vn_tt_corr#
+ else:
+ + .7vn_right_side(circumflex_)
+ - vn_sl_shift(circumflex_)
+ fi,
+ vn_breve_acute_gap#
+);
+
+define_double_accent(
+ circumflex_, tilde_,
+ vn_align_join(circumflex_, tilde_),
+ vn_breve_tilde_gap#
+);
+
+vn_double_ac_top := vn_max_ac_top#;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnacomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnacomp.mf
new file mode 100644
index 00000000000..27a172ea5e2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnacomp.mf
@@ -0,0 +1,58 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define [aA]-based accented letters
+
+vnchar casename "a with acute";
+define_vnchar(a, acute_);
+
+vnchar casename "a with grave";
+define_vnchar(a, grave_);
+
+vnchar casename "a with hook";
+define_vnchar(a, hook_);
+
+vnchar casename "a with tilde";
+define_vnchar(a, tilde_);
+
+vnchar casename "a with dot";
+define_vnchar_dot(a);
+
+vnchar casename "a with breve ";
+define_vnchar(a, breve_);
+
+vnchar casename "a with breve and acute";
+define_vnchar(a, breve_.acute_);
+
+vnchar casename "a with breve and grave";
+define_vnchar(a, breve_.grave_);
+
+vnchar casename "a with breve and hook";
+define_vnchar(a, breve_.hook_);
+
+vnchar casename "a with breve and tilde";
+define_vnchar(a, breve_.tilde_);
+
+vnchar casename "a with breve and dot";
+define_vnchar_dot_ac(a, breve_);
+
+vnchar casename "a with circumflex ";
+define_vnchar(a, circumflex_);
+
+vnchar casename "a with circumflex and acute";
+define_vnchar(a, circumflex_.acute_);
+
+vnchar casename "a with circumflex and grave";
+define_vnchar(a, circumflex_.grave_);
+
+vnchar casename "a with circumflex and hook";
+define_vnchar(a, circumflex_.hook_);
+
+vnchar casename "a with circumflex and tilde";
+define_vnchar(a, circumflex_.tilde_);
+
+vnchar casename "a with circumflex and dot";
+define_vnchar_dot_ac(a, circumflex_);
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnb10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnb10.mf
new file mode 100644
index 00000000000..ddee29dcf6d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnb10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecrb;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbase.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbase.mf
new file mode 100644
index 00000000000..a87e32ce6c8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbase.mf
@@ -0,0 +1,954 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% basic macros for all vnr fonts
+
+% get_acc_pos := 1;
+% gen_t5_supp := 1;
+
+if known get_acc_pos or known gen_t5_supp:
+ mag := 100.375;
+fi
+
+% define which letters should be generated when testing > 0
+def testchars =
+% a.acute_,
+% a.dot_,
+% a.grave_,
+% a.hook_,
+% a.tilde_,
+% a.breve_,
+% a.breve_.acute_,
+% a.breve_.dot_,
+% a.breve_.grave_,
+% a.breve_.hook_,
+% a.breve_.tilde_,
+% a.circumflex_,
+% a.circumflex_.acute_,
+% a.circumflex_.dot_,
+% a.circumflex_.grave_,
+% a.circumflex_.hook_,
+% a.circumflex_.tilde_,
+% d.bar_,
+% e.acute_,
+% e.dot_,
+% e.grave_,
+% e.hook_,
+% e.tilde_,
+% e.circumflex_,
+% e.circumflex_.acute_,
+% e.circumflex_.dot_,
+% e.circumflex_.grave_,
+% e.circumflex_.hook_,
+% e.circumflex_.tilde_,
+% i.acute_,
+% i.dot_,
+% i.grave_,
+% i.hook_,
+% i.tilde_,
+% o.acute_,
+% o.dot_,
+% o.grave_,
+% o.hook_,
+% o.tilde_,
+% o.circumflex_,
+% o.circumflex_.acute_,
+% o.circumflex_.dot_,
+% o.circumflex_.grave_,
+% o.circumflex_.hook_,
+% o.circumflex_.tilde_,
+o.horn_,
+o.horn_.acute_,
+o.horn_.dot_,
+o.horn_.grave_,
+o.horn_.hook_,
+o.horn_.tilde_,
+% u.acute_,
+% u.dot_,
+% u.grave_,
+% u.hook_,
+% u.tilde_,
+u.horn_,
+u.horn_.acute_,
+u.horn_.dot_,
+u.horn_.grave_,
+u.horn_.hook_,
+u.horn_.tilde_,
+% y.acute_,
+% y.dot_,
+% y.grave_,
+% y.hook_,
+% y.tilde_,
+last
+enddef;
+
+C.l.last := 256;
+C.u.last := 256;
+
+% copied from plain.mf to make metapost run with ec sources, as mfplain.mp is not
+% up-to-date with plain.mf
+vardef whatever = save ?; ? enddef;
+def killtext text t = enddef;
+
+
+if known testing: % turn testing on
+% proofcolor := .4[white, black];
+ defaultfont := "Times-Roman";
+ defaultscale := 1;
+ prologues := 1;
+ show_labels := 1;
+ if known gensize:
+ mag := 20/gensize;
+ else:
+ mag := 2;
+ fi
+fi
+
+if unknown exbase:
+ input exbase;
+fi
+
+if unknown displaying:
+ displaying := 0;
+fi
+
+let vnchar = ecchar;
+let cmchar = ecchar;
+
+input vncode; % character encoding
+
+if known testing:
+string inputstr;
+forsuffixes _u =
+ A_fam_used, D_fam_used, E_fam_used, I_fam_used, O_fam_used, U_fam_used, Y_fam_used,
+ a_fam_used, d_fam_used, e_fam_used, i_fam_used, o_fam_used, u_fam_used, y_fam_used:
+ boolean _u;
+ _u := false;
+endfor;
+
+def test_fam(text _f, _u, _c) =
+ n_ := 0;
+ if not _u:
+ forsuffixes $ = _f(,) 257:
+ n_ := n_ + 1;
+ if (($ < 32) or ($ > 127)) % check for vn chars only
+ and ($ = C.u._c) or ($ = C.l._c):
+ _u := true;
+ fi
+ endfor
+ fi
+enddef;
+
+forsuffixes _c = testchars:
+ test_fam(A_fam)(A_fam_used)(_c);
+ test_fam(D_fam)(D_fam_used)(_c);
+ test_fam(E_fam)(E_fam_used)(_c);
+ test_fam(I_fam)(I_fam_used)(_c);
+ test_fam(O_fam)(O_fam_used)(_c);
+ test_fam(U_fam)(U_fam_used)(_c);
+ test_fam(Y_fam)(Y_fam_used)(_c);
+
+ test_fam(a_fam)(a_fam_used)(_c);
+ test_fam(d_fam)(d_fam_used)(_c);
+ test_fam(e_fam)(e_fam_used)(_c);
+ test_fam(i_fam)(i_fam_used)(_c);
+ test_fam(o_fam)(o_fam_used)(_c);
+ test_fam(u_fam)(u_fam_used)(_c);
+ test_fam(y_fam)(y_fam_used)(_c);
+
+ test_fam(U_horn_fam)(U_fam_used)(_c);
+ test_fam(u_horn_fam)(u_fam_used)(_c);
+endfor
+
+def input_ur_fam =
+ inputstr := "";
+ if A_fam_used: inputstr := inputstr & "input vnuar; "; fi
+ if D_fam_used: inputstr := inputstr & "input vnudr; "; fi
+ if E_fam_used: inputstr := inputstr & "input vnuer; "; fi
+ if I_fam_used: inputstr := inputstr & "input vnuir; "; fi
+ if O_fam_used: inputstr := inputstr & "input vnuor; "; fi
+ if U_fam_used: inputstr := inputstr & "input vnuur; "; fi
+ if Y_fam_used: inputstr := inputstr & "input vnuyr; "; fi
+ scantokens(inputstr);
+enddef;
+
+def input_lr_fam =
+ inputstr := "";
+ if a_fam_used: inputstr := inputstr & "input vnlar; "; fi
+ if d_fam_used: inputstr := inputstr & "input vnldr; "; fi
+ if e_fam_used: inputstr := inputstr & "input vnler; "; fi
+ if i_fam_used: inputstr := inputstr & "input vnlir; "; fi
+ if o_fam_used: inputstr := inputstr & "input vnlor; "; fi
+ if u_fam_used: inputstr := inputstr & "input vnlur; "; fi
+ if y_fam_used: inputstr := inputstr & "input vnlyr; "; fi
+ scantokens(inputstr);
+enddef;
+
+def input_sc_fam =
+ inputstr := "";
+ if a_fam_used: inputstr := inputstr & "input vnuar; "; fi
+ if d_fam_used: inputstr := inputstr & "input vnudr; "; fi
+ if e_fam_used: inputstr := inputstr & "input vnuer; "; fi
+ if i_fam_used: inputstr := inputstr & "input vnuir; "; fi
+ if o_fam_used: inputstr := inputstr & "input vnuor; "; fi
+ if u_fam_used: inputstr := inputstr & "input vnuur; "; fi
+ if y_fam_used: inputstr := inputstr & "input vnuyr; "; fi
+ scantokens(inputstr);
+enddef;
+
+def input_li_fam =
+ inputstr := "";
+ if a_fam_used: inputstr := inputstr & "input vnlai; "; fi
+ if d_fam_used: inputstr := inputstr & "input vnldi; "; fi
+ if e_fam_used: inputstr := inputstr & "input vnlei; "; fi
+ if i_fam_used: inputstr := inputstr & "input vnlii; "; fi
+ if o_fam_used: inputstr := inputstr & "input vnloi; "; fi
+ if u_fam_used: inputstr := inputstr & "input vnlui; "; fi
+ if y_fam_used: inputstr := inputstr & "input vnlyi; "; fi
+ scantokens(inputstr);
+enddef;
+
+% def endchar =
+% scantokens extra_endchar;
+% if proofing>0: makebox(proofrule); fi
+% chardx:=w; % desired width of the character in pixels
+% shipit;
+% endgroup enddef;
+
+% def makebox(text rule) =
+% for y=0,asc_height,body_height,x_height,bar_height,-desc_depth,-body_depth:
+% rule((l,y)t_,(r,y)t_); endfor % horizontals
+% for x=l,r: rule((x,-body_depth)t_,(x,body_height)t_); endfor % verticals
+% for x=u*(1+floor(l/u)) step u until r-1:
+% rule((x,-body_depth)t_,(x,body_height)t_); endfor % more verticals
+% if charic<>0:
+% rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+% enddef;
+
+def bboxcolor = red enddef;
+def bboxrule(expr w,z) =
+ begingroup interim linecap:=squared;
+ draw w..z withpen pencircle scaled (.4/bp_per_pixel) withcolor bboxcolor;
+ endgroup
+enddef;
+
+def makebox(text rule) =
+ for y=0,(cap_height+acc_height),
+ asc_height,body_height,x_height,bar_height,-desc_depth,-body_depth:
+ rule((l,y),(r,y)); endfor % horizontals
+
+ for y=-3.5pt,8.5pt,(x_height+acc_height):
+ rule((l-4pt,y),(l-2pt,y)); endfor
+ for x=l,r: rule((x,-body_depth),(x,body_height)); endfor % verticals
+ for x=u*(1+floor(l/u)) step u until r-1:
+ rule((x,-body_depth),(x,body_height)); endfor % more verticals
+
+ for x=0.5w:
+ rule((x,-body_depth-1pt),(x,-body_depth-1.5pt));
+ rule((x,cap_height+acc_height+1pt),(x,cap_height+acc_height+1.5pt));
+ endfor
+ if charic<>0:
+ rule((r+charic*pt,h.o_),(r+charic*pt,.5h.o_)); fi % italic correction
+ enddef;
+
+def makebbox(text rule) =
+ for x=0,w: bboxrule((x,-d),(x,h)); endfor % verticals
+ for y = 0,h,-d: bboxrule((0, y), (w, y)); endfor
+enddef;
+
+def endchar =
+ scantokens extra_endchar;
+ if proofing>0:
+% makebox(proofrule);
+ makebbox(proofrule);
+ fi
+ shipit;
+endgroup
+enddef;
+
+fi % known testing
+
+% if (known show_labels) and (known testing):
+% if (known show_labels):
+% def makebox(text r) =
+% for y = 0, h, -d:
+% r((0, y), (w, y));
+% endfor % horizontals
+% for x = 0, w:
+% r((x, -d), (x, h));
+% endfor % verticals
+% enddef;
+% def draw_box(expr x, y, w, h, p) =
+% pickup pencircle scaled p;
+% draw (x, y) -- (x, y + h) -- (x + w, y + h) -- (x + w, y) -- (x, y);
+% enddef;
+% else:
+% def makebox(text r) = enddef;
+% def draw_box(expr x, y, w, h) = enddef;
+% def penlabels(text r) = enddef;
+% proofcolor := black;
+% fi;
+
+numeric case_;
+small := 0;
+capital := 1;
+smallcap := 2;
+
+def set_lowercase =
+ case_ := small;
+ def vncase = l enddef;
+enddef;
+
+def set_uppercase =
+ case_ := capital;
+ def vncase = u enddef;
+enddef;
+
+def set_smallcap =
+ case_ := smallcap;
+ def vncase = l enddef;
+enddef;
+
+def casename expr _name =
+if not known testing:
+ "The " &
+ if case_ = capital:
+ "capital"
+ elseif case_ = small:
+ "small"
+ else:
+ "smallcap"
+ fi &
+ " letter " & _name
+fi
+enddef;
+
+def ifknown(suffix _a)(expr _b) =
+ if known _a: _a
+ else: _b
+ fi
+enddef;
+
+def tand(expr _d) =
+ (sind(_d)/cosd(_d))
+enddef;
+
+def vn_code(suffix _n) =
+ C.vncase._n
+enddef;
+
+def vn_pic(suffix _n) =
+ vn.vncase._n.pic
+enddef;
+
+def vn_width(suffix _n) =
+ vn.vncase._n.w#
+enddef;
+
+def vn_height(suffix _n) =
+ vn.vncase._n.h#
+enddef;
+
+def vn_top(suffix _n) =
+ vn.vncase._n.top#
+enddef;
+
+def vn_depth(suffix _n) =
+ vn.vncase._n.d#
+enddef;
+
+def vn_bot(suffix _n) =
+ vn.vncase._n.bot#
+enddef;
+
+def vn_ic(suffix _n) =
+ vn.vncase._n.ic#
+enddef;
+
+def vn_left_adj(suffix _n) =
+ vn.vncase._n.left_adj#
+enddef;
+
+def vn_right_adj(suffix _n) =
+ vn.vncase._n.right_adj#
+enddef;
+
+def vn_gap(suffix _n) =
+ vn.vncase._n.gap#
+enddef;
+
+def vn_join_xp(suffix _n) =
+ vn.vncase._n.join.x
+enddef;
+
+def vn_join_x(suffix _n) =
+ vn.vncase._n.join.x#
+enddef;
+
+def vn_rt(suffix _n) =
+ vn.vncase._n.rt#
+enddef;
+
+def vn_dot_shift_y(suffix _n) =
+ vn.vncase._n.dot_shift.y#
+enddef;
+
+def vn_ac_top =
+ vn.vncase.accent_top#
+enddef;
+
+def vn_double_ac_top =
+ vn.vncase.double_accent_top#
+enddef;
+
+let vn_left_side = vn_join_x;
+
+def vn_right_side(suffix _a) =
+ (vn_width(_a) - vn_left_side(_a))
+enddef;
+
+def align_left(suffix _a, _b) =
+ 0
+enddef;
+
+def vn_align_join(suffix _a, _b) =
+ (vn_join_x(_a) - vn_join_x(_b))
+enddef;
+
+def vn_align_right(suffix _a, _b) =
+ (vn_width(_a) - vn_width(_b))
+enddef;
+
+def define_accent_dimens(suffix _a)(expr _w, _h) =
+ vn_width(_a) := _w;
+ vn_height(_a) := _h;
+ vn_top(_a) := vn_height(_a) + vn_letter_height# + vn_accent_gap#;
+ vn_max_ac_top# := max(vn_max_ac_top#, vn_top(_a));
+enddef;
+
+def vn_set_ac_join(suffix _a)(expr _xp, _x, _rt) =
+ vn_join_xp(_a) := _xp;
+ vn_join_x(_a) := _x;
+ vn_rt(_a) := _rt;
+ if known show_labels:
+ makelabel("j", (vn_join_xp(_a), 0));
+ makelabel("J", (hp(vn_join_x(_a)), 0));
+ makelabel("r", (hp(vn_width(_a)), vp(vn_rt(_a))));
+ makelabel("o", (0,0));
+ fi
+enddef;
+
+def set_letter_join(suffix _l)(expr _xp, _x) =
+ vn_join_xp(_l) := _xp;
+ vn_join_x(_l) := _x;
+ if known show_labels:
+ makelabel("j", (vn_join_xp(_l), vp(vn_height(_l))));
+ makelabel("J", (hp(vn_join_x(_l)), vp(vn_height(_l))));
+ fi
+enddef;
+
+def set_adj_gap(suffix _l, _a) =
+ adj_gap# := ifknown(vn_gap(_l._a), ifknown(vn_gap(_a), 0));
+enddef;
+
+def get_join_xp(suffix _l, _a) =
+ ifknown(vn_join_xp(_l._a), vn_join_xp(_l))
+enddef;
+
+def get_join_x(suffix _l, _a) =
+ ifknown(vn_join_x(_l._a), vn_join_x(_l))
+enddef;
+
+def get_top(suffix _a) =
+ max(vn_top(_a) + adj_gap#,
+ if vn_top(_a) <= vn_ac_top:
+ vn_ac_top
+ else:
+ vn_double_ac_top
+ fi)
+enddef;
+
+def set_shift(suffix _l, _a) =
+ shift.y := vp(vn_top(_a) - vn_height(_a));
+ shift.x := get_join_xp(_l, _a) - vn_join_xp(_a) + slant*shift.y;
+ shift.y# := vn_top(_a) - vn_height(_a);
+ shift.x# := get_join_x(_l, _a) - vn_join_x(_a) + slant*shift.y#;
+enddef;
+
+def set_ic(suffix _l, _a) =
+ italcorr max(vn_ic(_l),
+ vn_width(_a) + shift.x#
+ + slant*(vn_rt(_a) + shift.y#)
+ - w# + .5u#);
+enddef;
+
+def set_lic(suffix _l) =
+ italcorr vn_ic(_l);
+enddef;
+
+def set_fit(suffix _l) =
+ adjust_fit(vn_left_adj(_l), vn_right_adj(_l));
+enddef;
+
+C.l.idot.dot_ = 256;
+C.u.idot.dot_ = 256; % to avoid error when calling set_dot_shift(idot)
+
+def set_dot_shift(suffix _l) =
+ shift.y := - vp(ifknown(vn_dot_shift_y(_l), vn_bot(dot_)));
+ shift.x := get_join_xp(_l, dot_) - vn_join_xp(dot_) + slant*shift.y;
+enddef;
+
+% vardef xpos@#(expr b ,d) =
+% pos@#(max(currentbreadth + eps, b), d)
+% enddef;
+vardef pos@#(expr b,d) =
+ if known b: if b<=currentbreadth:
+ (x@#r-x@#l,y@#r-y@#l)=(eps,0) rotated d;
+ else: (x@#r-x@#l,y@#r-y@#l)=(b-currentbreadth,0) rotated d; fi
+ else: (x@#r-x@#l,y@#r-y@#l)=(b-currentbreadth,0) rotated d; fi
+ x@#=.5(x@#l+x@#r); y@#=.5(y@#l+y@#r)
+enddef;
+
+def hp(expr _x) =
+ hround(_x*hppp)
+enddef;
+
+def vp(expr _y) =
+ vround(_y*vppp)
+enddef;
+
+def begin_pic(suffix _n) =
+ begingroup
+ clearxy;
+ clearit;
+ clearpen;
+ picture vn.vncase._n.pic;
+ vn.vncase._n.pic :=
+ begingroup
+enddef;
+
+def end_pic =
+ if known testing:
+% makebox(proofrule);
+ makebbox(proofrule);
+ fi
+ currentpicture % continuation of `vn_pic(_n) :='
+ endgroup;
+ endgroup
+enddef;
+
+def set_letter_dimens(suffix _l)(expr _w, _h, _d, _ic, _lft, _rt) =
+ set_char_dimens(_w, _h, _d);
+ vn_width(_l) := _w;
+ vn_height(_l) := _h;
+ vn_depth(_l) := _d;
+ vn_ic(_l) := _ic;
+ vn_left_adj(_l) := _lft;
+ vn_right_adj(_l) := _rt;
+ adjust_fit(_lft, _rt);
+enddef;
+
+def begin_accent(suffix _a) =
+ begin_pic(_a);
+ set_char_dimens(vn_width(_a), vn_height(_a), 0)
+enddef;
+let end_accent = end_pic;
+
+let begin_letter = begin_pic;
+let end_letter = end_pic;
+
+def vn_sl_shift(suffix _a) =
+% .5slant*(adj_y# + vn_height(_a))
+ 0
+enddef;
+
+def set_char_dimens(expr _w, _h, _d) =
+ charwd := _w;
+ charht := _h;
+ chardp := _d;
+ w := hp(charwd);
+ h := vp(charht);
+ d := vp(chardp);
+ charic := 0;
+enddef;
+
+def abs_round(expr _e) =
+ if _e < 0:
+ ceiling(_e - .5)
+ else:
+ floor(_e + .5)
+ fi
+enddef;
+
+def write_shift_xy(suffix _l, _a)(expr _sx, _sy) =
+ if known get_acc_pos and known bp_per_pixel:
+ message "CC " &
+ if case_ = capital:
+ "capital"
+ elseif case_ = small:
+ "small"
+ else:
+ "smallcap"
+ fi & " " &
+ str _l & " " &
+ str _a & " " &
+ decimal(abs_round(_sx*bp_per_pixel*10/designsize)) & " " &
+ decimal(abs_round(_sy*bp_per_pixel*10/designsize));
+ fi
+enddef;
+
+
+def define_double_accent(suffix _a, _b)(expr _adj_x, _adj_y) =
+ shift.y# := _adj_y + vn_height(_a);
+ shift.x# := _adj_x + slant*shift.y#;
+ define_accent_dimens(_a._b, vn_width(_a), vn_height(_b) + shift.y#);
+ begin_accent(_a._b);
+ currentpicture := vn_pic(_a);
+ addto currentpicture also vn_pic(_b)
+ shifted (hp(shift.x#), vp(shift.y#));
+ write_shift_xy(_a, _b)(hp(shift.x#), vp(shift.y#));
+ vn_set_ac_join(_a._b, vn_join_xp(_a), vn_join_x(_a),
+ if vn_width(_a) + slant*vn_rt(_a) >
+ vn_width(_b) + shift.x# + slant*(vn_rt(_b) + shift.y#):
+ vn_rt(_a)
+ else:
+ vn_rt(_b) + shift.y#
+ fi);
+ end_accent;
+enddef;
+
+if not known testing:
+vardef used_char(expr _code) = true enddef;
+else:
+vardef used_char(expr _code) =
+ boolean _is_used;
+ _is_used := false;
+ forsuffixes $ = testchars:
+ if _code = vn_code($):
+ _is_used := true;
+ fi;
+ endfor;
+ _is_used
+enddef;
+fi
+
+def define_vnaccent(expr _c)(suffix _a) =
+ beginchar(_c, vn_width(_a), vn_height(_a), 0);
+ currentpicture := vn_pic(_a);
+ endchar
+enddef;
+
+def define_vnchar(suffix _l, _a) =
+if used_char(vn_code(_l._a)):
+ set_adj_gap(_l, _a); % set adj_gap#
+ beginchar(vn_code(_l._a),
+ vn_width(_l),
+ get_top(_a),
+ vn_depth(_l));
+ set_shift(_l, _a); % set shift.x, shift.y, shift.x# and shift.y#
+ set_ic(_l, _a); % call italcorr
+ set_fit(_l); % call adjust_fit
+ currentpicture := vn_pic(_l);
+ addto currentpicture also vn_pic(_a)
+ shifted (shift.x, shift.y + vp(adj_gap#));
+ write_shift_xy(_l, _a)
+ (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y + vp(adj_gap#));
+% message "vn_left_adj: " & decimal hp(vn_left_adj(_l));
+% message "letter_fit: " & decimal letter_fit;
+ endchar
+fi
+enddef;
+
+def define_vnchar_dot(suffix _l) =
+if used_char(vn_code(_l.dot_)):
+ % test for the small i letter with dot
+ if (case_ = small) and (vn_code(_l.dot_) = vn_code(i.dot_)):
+ beginchar(vn_code(i.dot_),
+ vn_width(idot),
+ vn_height(idot),
+ vn_bot(dot_));
+ set_dot_shift(idot); % set shift.x and shift.y
+ set_lic(idot); % call italcorr
+ set_fit(idot); % call adjust_fit
+ currentpicture := vn_pic(idot);
+ else:
+ beginchar(vn_code(_l.dot_),
+ vn_width(_l),
+ vn_height(_l),
+ ifknown(vn_depth(_l.dot_), max(vn_bot(dot_), vn_depth(_l))));
+ set_dot_shift(_l);
+ set_lic(_l);
+ set_fit(_l);
+ currentpicture := vn_pic(_l);
+ fi
+ addto currentpicture also vn_pic(dot_)
+ shifted (shift.x, shift.y);
+ write_shift_xy(_l, dot_)
+ (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y);
+ endchar
+fi
+enddef;
+
+def define_vnchar_dot_ac(suffix _l, _a) =
+if used_char(vn_code(_l._a.dot_)):
+ set_adj_gap(_l, _a);
+ beginchar(vn_code(_l._a.dot_),
+ vn_width(_l),
+ get_top(_a),
+ max(vn_bot(dot_), vn_depth(_l)));
+ set_shift(_l, _a);
+ set_ic(_l, _a);
+ set_fit(_l);
+ currentpicture := vn_pic(_l);
+ addto currentpicture also vn_pic(_a)
+ shifted (shift.x, shift.y + vp(adj_gap#));
+ set_dot_shift(_l);
+ addto currentpicture also vn_pic(dot_)
+ shifted (shift.x, shift.y);
+ write_shift_xy(_l._a, dot_)
+ (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y);
+ endchar
+fi
+enddef;
+
+def define_vnchar_horn(suffix _l) =
+if used_char(vn_code(_l.horn_)):
+ select_horn(_l);
+ set_shift_horn(_l);
+ update_horn_width(_l);
+ beginchar(vn_code(_l.horn_),
+ updated_width#,
+ vn_top(cur_horn_),
+ vn_depth(_l));
+ set_ic(_l, cur_horn_);
+ set_fit(_l);
+ select_letter_u(_l);
+ addto currentpicture also vn_pic(cur_horn_)
+ shifted (shift.x, shift.y);
+ endchar
+fi
+enddef;
+
+def select_horn(suffix _l) = % set cur_horn_ to uhorn_ or ohorn_ according to _l
+ if vn_code(_l.horn_) = vn_code(u.horn_):
+ def cur_horn_ = uhorn_ enddef;
+ else:
+ def cur_horn_ = ohorn_ enddef;
+ fi
+enddef;
+
+def update_horn_width(suffix _l) =
+ _du := (shift.x + hp(vn_width(cur_horn_))) -
+ (hp(vn_width(_l) + vn_left_adj(_l) + vn_right_adj(_l)) + 2letter_fit) -
+ slant*(shift.y + vp(vn_height(cur_horn_)));
+ updated_width# := vn_width(_l)
+ if _du > .5u:
+ + .5u#*floor(_du/.5u)
+ fi
+enddef;
+
+def set_shift_horn(suffix _l) =
+ shift.y := vp(vn_bot(cur_horn_));
+ shift.x := vn_join_xp(_l.horn_join) - vn_join_xp(cur_horn_) +
+ slant*(shift.y);
+enddef;
+
+def select_letter_u(suffix _l) =
+ % test for the serif capital u letter with horn
+ if serifs and (case_ <> small) and (vn_code(_l.horn_) = vn_code(u.horn_)):
+ % use the modified "U" (without right part of the right serif)
+ currentpicture := vn_pic(Uhorn)
+ else:
+ currentpicture := vn_pic(_l)
+ fi
+enddef;
+
+def define_vnchar_horn_ac(suffix _l, _a) =
+if used_char(vn_code(_l.horn_._a)):
+ select_horn(_l); % set cur_horn_ to uhorn_ or ohorn_ according to _l
+ set_adj_gap(_l, _a);
+ set_shift_horn(_l);
+ update_horn_width(_l);
+ beginchar(vn_code(_l.horn_._a),
+ updated_width#,
+ get_top(_a),
+ vn_depth(_l));
+ set_ic(_l, cur_horn_);
+ set_fit(_l);
+ select_letter_u(_l);
+ addto currentpicture also vn_pic(cur_horn_)
+ shifted (shift.x, shift.y);
+ set_shift(_l.horn_, _a);
+% if serifs and (vn_code(_l.horn_._a) = vn_code(o.horn_.grave_)):
+% shift.x := shift.x + max(0, u - .3stem);
+% fi
+ set_ic(_l, _a);
+ addto currentpicture also vn_pic(_a)
+ shifted (shift.x, shift.y + vp(adj_gap#));
+ write_shift_xy(_l.horn_, _a)
+ (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y + vp(adj_gap#));
+ endchar
+fi
+enddef;
+
+def define_vnchar_horn_dot(suffix _l) =
+if used_char(vn_code(_l.horn_.dot_)):
+ select_horn(_l); % set cur_horn_ to uhorn_ or ohorn_ according to _l
+ set_shift_horn(_l);
+ update_horn_width(_l);
+ beginchar(vn_code(_l.horn_.dot_),
+ updated_width#,
+ vn_top(cur_horn_),
+ max(vn_bot(dot_), vn_depth(_l)));
+ set_ic(_l, cur_horn_);
+ set_fit(_l);
+ select_letter_u(_l);
+ addto currentpicture also vn_pic(cur_horn_)
+ shifted (shift.x, shift.y);
+ set_dot_shift(_l);
+% if serifs and (vn_tt_corr = 0) and (vn_code(_l.horn_) = vn_code(o.horn_)):
+% shift.x := shift.x + .1dot_size;
+% fi
+ addto currentpicture also vn_pic(dot_)
+ shifted (shift.x, shift.y);
+ write_shift_xy(_l.horn_, dot_)
+ (shift.x + hp(vn_left_adj(_l)) + letter_fit, shift.y);
+ endchar
+fi
+enddef;
+
+% hook_arc is based on super_arc from exbase.mf
+vardef hook_arc.r(suffix $, $$)(expr _superness, _swap) =
+ pair center, corner;
+ if (y$ = y$r) or _swap:
+ center = (x$$r, y$r);
+ corner = (x$r, y$$r);
+ else:
+ center = (x$r, y$$r);
+ corner = (x$$r, y$r);
+ fi
+ z$.r{corner - z$.r} ... _superness[center, corner]{z$$.r - z$.r} ...
+ {z$$.r - corner}z$$.r
+enddef;
+
+vardef hook_arc.l(suffix $, $$)(expr _superness, _swap) =
+ pair center, corner;
+ if (y$ = y$r) or _swap:
+ center = (x$$l, y$l);
+ corner = (x$l, y$$l);
+ else:
+ center = (x$l, y$$l);
+ corner = (x$$l, y$l);
+ fi
+ z$l{corner - z$l} ... _superness[center, corner]{z$$l - z$l} ...
+ {z$$l - corner}z$$l
+enddef;
+
+% vn_hook_bulb is based on bulb from exbase.mf
+def vn_hook_bulb(suffix $, $$, $$$) =
+ z$$$r = z$$r;
+ path_.l := z$l{x$$r - x$r, 0} ... {0, y$$r - y$r}z$$l;
+ filldraw path_.l -- z$$r{0, y$r - y$$r} ... {x$r - x$$r, 0}z$r -- cycle; % link
+ path_.r := z$$$l{0, y$r - y$$r} .. z$$$r{0, y$$r - y$r}; % near - circle
+ filldraw subpath(0, xpart(path_.r intersectiontimes path_.l)) of path_.r
+ -- z$$r{0, y$$r - y$r} .. cycle; % bulb
+enddef;
+
+def vn_draw_horn(suffix _a)(expr _dotsize, _horn_stem, _horn_bot_theta) =
+ cur_dotsize# := _dotsize;
+ cur_stem# := _horn_stem;
+ define_blacker_pixels(cur_dotsize, cur_stem);
+ if not square_dots:
+ pickup crisp.nib;
+ pos4(cur_dotsize, 90);
+ top y4r = h;
+ x4 = w - .5cur_dotsize;
+ pos1(cur_stem, 90);
+ pos2(cur_stem, 0);
+ pos3(cur_stem, _horn_bot_theta - 90);
+ z1r = z4r;
+ rt x2r = hround(x4 + .5cur_dotsize) + 2eps;
+ lft x3l = 0;
+ bot y3r = 0;
+ y2 = 1/3[y1, y3];
+ y_ := ypart((z1{right} ... z2{down} ... z3)
+ intersectiontimes (z4l{right} .. {left}z4r));
+ if y_ < 0:
+ y_ := 1;
+ fi
+ filldraw z4r{left} .. subpath (0, y_) of (z4l{right} .. {left}z4r)
+ -- cycle; % dot
+ filldraw stroke z1e{right} ... z2e{down} ... {left}z3e;
+ filldraw z1r--z2r--z4l--cycle;
+ penlabels(0, 1, 2, 3, 4);
+ vn_set_ac_join(_a, x3, .5cur_stem*sind(_horn_bot_theta),
+ h# - .5cur_dotsize#);
+ else:
+ pickup fine.nib;
+ pos4(cur_dotsize, 90);
+ top y4r = h;
+ x4 = w - .5cur_dotsize;
+ pos4'(cur_dotsize, 0);
+ z4' = z4;
+ dot(4', 4); % squarish dot
+ horn_join := max(fine.breadth, floor cur_stem);
+ horn_bot := max(fine.breadth, floor .8cur_stem);
+ pos0(horn_join, 0);
+ pos1(horn_join, 0);
+ pos2(horn_bot, 0);
+ y0 = y4;
+ y1 = y4l;
+ x0r = x1r = x4'r;
+ lft x2l = 0;
+ bot y2r = 0;
+ z2' = whatever[z1, z2];
+ numeric _vn_bot_width;
+ pos2'(_vn_bot_width, -90 + _horn_bot_theta);
+ z2l = z2'l;
+ filldraw stroke z0e -- z1e .. z2'e; % tail
+ penlabels(0, 1, 2', 3, 4);
+ vn_set_ac_join(_a, x2', 0, h#);
+ fi
+ vn_bot(_a) := vn_top(_a) - vn_height(_a);
+enddef;
+
+def set_horn_join(suffix _l)(expr _pl, _pr) =
+ select_horn(_l); % set cur_horn_ to uhorn_ or ohorn_ according to _l
+ path bot_line;
+ pair L, R;
+ bot_line := (.5w, vp(vn_bot(cur_horn_))) -- (w, vp(vn_bot(cur_horn_)));
+ L := point xpart(bot_line intersectiontimes _pl) of bot_line;
+ R := point xpart(bot_line intersectiontimes _pr) of bot_line;
+ vn_set_ac_join(_l.horn_join, xpart .5[L, R], 0, 0);
+enddef;
+
+def lig_CGQ_table(expr k) =
+ "C" kern k, "G" kern k, "Q" kern k
+enddef;
+
+def end_ligtable = 0 kern 0 enddef;
+
+% define input_lig to generate only char oct"031" from excspl.mf
+def input_lig suffix @# =
+ let save_endchar = endchar;
+ let endchar = lig_endchar;
+ scantokens("input " & str @#);
+ relax;
+ let endchar = save_endchar;
+enddef;
+
+def lig_endchar =
+ if charcode = oct"031":
+ save_endchar
+ else:
+ endgroup
+ fi
+enddef;
+
+def generate suffix @# =
+ scantokens("input null"); % can't figure out why it's needed
+ scantokens("input vn" & substring(2, length(str @#)) of str @#);
+enddef;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx10.mf
new file mode 100644
index 00000000000..f93910b82b1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecbx;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx12.mf
new file mode 100644
index 00000000000..5a7d6884bc9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx12.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=12;
+input vnbase;
+input ecbx;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx5.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx5.mf
new file mode 100644
index 00000000000..63079ae073f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx5.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=5;
+input vnbase;
+input ecbx;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx6.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx6.mf
new file mode 100644
index 00000000000..ca194c2945b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx6.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=6;
+input vnbase;
+input ecbx;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx7.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx7.mf
new file mode 100644
index 00000000000..4144d6d1e20
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx7.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=7;
+input vnbase;
+input ecbx;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx8.mf
new file mode 100644
index 00000000000..a4870a73e7b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx8.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=8;
+input vnbase;
+input ecbx;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbx9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx9.mf
new file mode 100644
index 00000000000..2cdaeea5da1
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbx9.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=9;
+input vnbase;
+input ecbx;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbxsl10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbxsl10.mf
new file mode 100644
index 00000000000..4766ea9b3bd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbxsl10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecbl;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnbxti10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnbxti10.mf
new file mode 100644
index 00000000000..869f08b8322
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnbxti10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecbi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncligtb.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncligtb.mf
new file mode 100644
index 00000000000..8e5b35e2af4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncligtb.mf
@@ -0,0 +1,159 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% ligatures and kerns for smallcap fonts
+
+ligtable
+ "-": "-" =: oct"025",
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+ligtable
+ oct"025": "-"=:oct"026"; % "---" => emdash
+
+ligtable "<": "<" =: oct"023"; % "<<"
+ligtable ">": ">" =: oct"024"; % ">>"
+ligtable ",": "," =: oct"022"; % ",,"
+
+ligtable
+ "`": "`"=:oct"020",
+ oct"020" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "'": "'"=:oct"021",
+ oct"021" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ k#:=-.5u#; ku#:=-1.0u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning
+
+ligtable boundarychar:
+ oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#,
+ oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#;
+
+ligtable oct"022":
+ oct"015" kern 2u#, "," kern 2u#,
+ oct"015":
+ oct"022" kern 2u#,
+ y_fam(kern ku#,)
+ "v" kern ku#, "w" kern k#, "V" kern kkk#, "W" kern kk#, Y_fam(kern kk#,)
+
+ O_fam(kern k#,) lig_CGQ_table(k#),
+ boundarychar kern -kk#;
+
+ligtable oct"020":
+ oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"021":
+ oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"024": % ">>"
+ "." kern kk#, "," kern kk#;
+
+ ligtable
+ "P":
+ "T":
+ Y_fam(:) a_fam(kern kk#,)
+ A_fam(kern kk#,)
+ end_ligtable;
+ ligtable
+ "F":
+ "V":
+ "W":
+ if serifs:
+ a_fam(kern kkk#,)
+ A_fam(kern kkk#,)
+ else:
+ a_fam(kern kk#,)
+ A_fam(kern kk#,)
+ fi
+ "K":
+ "X": o_fam(kern k#,)
+ O_fam(kern k#,)
+ "c" kern k#,
+ lig_CGQ_table(k#),
+ "g" kern k#,
+ "q" kern k#;
+ ligtable
+ O_fam(:)
+ D_fam(:) "x" kern k#,
+ "X" kern k#,
+ "w" kern k#,
+ "W" kern k#,
+ a_fam(kern k#,)
+ A_fam(kern k#,)
+ y_fam(kern k#,)
+ Y_fam(kern k#,)
+ "v" kern k#,
+ "V" kern k#;
+ ligtable
+ A_fam(:)
+ if serifs:
+ "R":
+ fi
+ "c" kern k#,
+ lig_CGQ_table(k#),
+ o_fam(kern k#,)
+ O_fam(kern k#,)
+ "g" kern k#,
+ u_fam(kern k#,)
+ U_fam(kern k#,)
+ "q" kern k#,
+ "L":
+ "T" kern kk#,
+ "t" kern kk#,
+ Y_fam(kern kk#,)
+ y_fam(kern kk#,)
+ "V" kern kkk#,
+ "v" kern kkk#,
+ "W" kern kkk#,
+ "w" kern kkk#;
+ ligtable
+ "I": "I" kern -k#; % Richard III
+
+ k#:=-.5u#; kk#:=-1.5u#; kkk#:=-2u#; % three degrees of kerning
+
+ ligtable
+ "p":
+ "t":
+ y_fam(:) a_fam(kern kk#,)
+ end_ligtable;
+ ligtable
+ "f":
+ "v":
+ "w":
+ if serifs:
+ a_fam(kern kkk#,)
+ else:
+ a_fam(kern kk#,)
+ fi
+ "k":
+ "x": o_fam(kern k#,)
+ "c" kern k#,
+ "g" kern k#,
+ "q" kern k#;
+ ligtable
+ o_fam(:)
+ d_fam(:) "x" kern k#,
+ "w" kern k#,
+ a_fam(kern k#,)
+ y_fam(kern k#,)
+ "v" kern k#;
+ ligtable
+ a_fam(:)
+ if serifs: "r": fi
+ "c" kern k#,
+ o_fam(kern k#,)
+ "g" kern k#,
+ u_fam(kern k#,)
+ "q" kern k#,
+ "l": "'" kern kk#,
+ "t" kern kk#,
+ y_fam(kern kk#,)
+ "v" kern kkk#,
+ "w" kern kkk#;
+ ligtable
+ "i": "i" kern -k#; % skiing
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncode.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncode.mf
new file mode 100644
index 00000000000..b83d2257291
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncode.mf
@@ -0,0 +1,339 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% T5 encoding -- Vietnamese font encoding for TeX
+
+C.u.y.hook_ := 26;
+C.l.y.hook_ := 27;
+C.u.y.dot_ := 28;
+C.l.y.dot_ := 29;
+C.u.d.bar_ := 30;
+C.l.d.bar_ := 31;
+C.u.a.grave_ := 128;
+C.u.a.acute_ := 129;
+C.u.a.tilde_ := 130;
+C.u.a.hook_ := 131;
+C.u.a.dot_ := 132;
+C.u.a.circumflex_ := 133;
+C.u.a.circumflex_.grave_ := 134;
+C.u.a.circumflex_.acute_ := 135;
+C.u.a.circumflex_.tilde_ := 136;
+C.u.a.circumflex_.hook_ := 137;
+C.u.a.circumflex_.dot_ := 138;
+C.u.a.breve_ := 139;
+C.u.a.breve_.grave_ := 140;
+C.u.a.breve_.acute_ := 141;
+C.u.a.breve_.tilde_ := 142;
+C.u.a.breve_.hook_ := 143;
+C.u.a.breve_.dot_ := 144;
+C.u.e.grave_ := 145;
+C.u.e.acute_ := 146;
+C.u.e.tilde_ := 147;
+C.u.e.hook_ := 148;
+C.u.e.dot_ := 149;
+C.u.e.circumflex_ := 150;
+C.u.e.circumflex_.grave_ := 151;
+C.u.e.circumflex_.acute_ := 152;
+C.u.e.circumflex_.tilde_ := 153;
+C.u.e.circumflex_.hook_ := 154;
+C.u.e.circumflex_.dot_ := 155;
+C.u.i.grave_ := 156;
+C.u.i.acute_ := 157;
+C.u.i.tilde_ := 158;
+C.u.i.hook_ := 159;
+C.l.a.grave_ := 160;
+C.l.a.acute_ := 161;
+C.l.a.tilde_ := 162;
+C.l.a.hook_ := 163;
+C.l.a.dot_ := 164;
+C.l.a.circumflex_ := 165;
+C.l.a.circumflex_.grave_ := 166;
+C.l.a.circumflex_.acute_ := 167;
+C.l.a.circumflex_.tilde_ := 168;
+C.l.a.circumflex_.hook_ := 169;
+C.l.a.circumflex_.dot_ := 170;
+C.l.a.breve_ := 171;
+C.l.a.breve_.grave_ := 172;
+C.l.a.breve_.acute_ := 173;
+C.l.a.breve_.tilde_ := 174;
+C.l.a.breve_.hook_ := 175;
+C.l.a.breve_.dot_ := 176;
+C.l.e.grave_ := 177;
+C.l.e.acute_ := 178;
+C.l.e.tilde_ := 179;
+C.l.e.hook_ := 180;
+C.l.e.dot_ := 181;
+C.l.e.circumflex_ := 182;
+C.l.e.circumflex_.grave_ := 183;
+C.l.e.circumflex_.acute_ := 184;
+C.l.e.circumflex_.tilde_ := 185;
+C.l.e.circumflex_.hook_ := 186;
+C.l.e.circumflex_.dot_ := 187;
+C.l.i.grave_ := 188;
+C.l.i.acute_ := 189;
+C.l.i.tilde_ := 190;
+C.l.i.hook_ := 191;
+C.u.i.dot_ := 192;
+C.u.o.grave_ := 193;
+C.u.o.acute_ := 194;
+C.u.o.tilde_ := 195;
+C.u.o.hook_ := 196;
+C.u.o.dot_ := 197;
+C.u.o.circumflex_ := 198;
+C.u.o.circumflex_.grave_ := 199;
+C.u.o.circumflex_.acute_ := 200;
+C.u.o.circumflex_.tilde_ := 201;
+C.u.o.circumflex_.hook_ := 202;
+C.u.o.circumflex_.dot_ := 203;
+C.u.o.horn_ := 204;
+C.u.o.horn_.grave_ := 205;
+C.u.o.horn_.acute_ := 206;
+C.u.o.horn_.tilde_ := 207;
+C.u.o.horn_.hook_ := 208;
+C.u.o.horn_.dot_ := 209;
+C.u.u.grave_ := 210;
+C.u.u.acute_ := 211;
+C.u.u.tilde_ := 212;
+C.u.u.hook_ := 213;
+C.u.u.dot_ := 214;
+C.u.u.horn_ := 215;
+C.u.u.horn_.grave_ := 216;
+C.u.u.horn_.acute_ := 217;
+C.u.u.horn_.tilde_ := 218;
+C.u.u.horn_.hook_ := 219;
+C.u.u.horn_.dot_ := 220;
+C.u.y.grave_ := 221;
+C.u.y.acute_ := 222;
+C.u.y.tilde_ := 223;
+C.l.i.dot_ := 224;
+C.l.o.grave_ := 225;
+C.l.o.acute_ := 226;
+C.l.o.tilde_ := 227;
+C.l.o.hook_ := 228;
+C.l.o.dot_ := 229;
+C.l.o.circumflex_ := 230;
+C.l.o.circumflex_.grave_ := 231;
+C.l.o.circumflex_.acute_ := 232;
+C.l.o.circumflex_.tilde_ := 233;
+C.l.o.circumflex_.hook_ := 234;
+C.l.o.circumflex_.dot_ := 235;
+C.l.o.horn_ := 236;
+C.l.o.horn_.grave_ := 237;
+C.l.o.horn_.acute_ := 238;
+C.l.o.horn_.tilde_ := 239;
+C.l.o.horn_.hook_ := 240;
+C.l.o.horn_.dot_ := 241;
+C.l.u.grave_ := 242;
+C.l.u.acute_ := 243;
+C.l.u.tilde_ := 244;
+C.l.u.hook_ := 245;
+C.l.u.dot_ := 246;
+C.l.u.horn_ := 247;
+C.l.u.horn_.grave_ := 248;
+C.l.u.horn_.acute_ := 249;
+C.l.u.horn_.tilde_ := 250;
+C.l.u.horn_.hook_ := 251;
+C.l.u.horn_.dot_ := 252;
+C.l.y.grave_ := 253;
+C.l.y.acute_ := 254;
+C.l.y.tilde_ := 255;
+
+def A_fam(text _t) =
+ 65 _t % "A"
+ C.u.a.acute_ _t
+ C.u.a.dot_ _t
+ C.u.a.grave_ _t
+ C.u.a.hook_ _t
+ C.u.a.tilde_ _t
+ C.u.a.breve_ _t
+ C.u.a.breve_.acute_ _t
+ C.u.a.breve_.dot_ _t
+ C.u.a.breve_.grave_ _t
+ C.u.a.breve_.hook_ _t
+ C.u.a.breve_.tilde_ _t
+ C.u.a.circumflex_ _t
+ C.u.a.circumflex_.acute_ _t
+ C.u.a.circumflex_.dot_ _t
+ C.u.a.circumflex_.grave_ _t
+ C.u.a.circumflex_.hook_ _t
+ C.u.a.circumflex_.tilde_ _t
+enddef;
+
+def D_fam(text _t) =
+ 68 _t % "D"
+ C.u.d.bar_ _t
+enddef;
+
+def E_fam(text _t) =
+ 69 _t % "E"
+ C.u.e.acute_ _t
+ C.u.e.dot_ _t
+ C.u.e.grave_ _t
+ C.u.e.hook_ _t
+ C.u.e.tilde_ _t
+ C.u.e.circumflex_ _t
+ C.u.e.circumflex_.acute_ _t
+ C.u.e.circumflex_.dot_ _t
+ C.u.e.circumflex_.grave_ _t
+ C.u.e.circumflex_.hook_ _t
+ C.u.e.circumflex_.tilde_ _t
+enddef;
+
+def I_fam(text _t) =
+ 73 _t % "I"
+ C.u.i.acute_ _t
+ C.u.i.dot_ _t
+ C.u.i.grave_ _t
+ C.u.i.hook_ _t
+ C.u.i.tilde_ _t
+enddef;
+
+def O_fam(text _t) =
+ 79 _t % "O"
+ C.u.o.acute_ _t
+ C.u.o.dot_ _t
+ C.u.o.grave_ _t
+ C.u.o.hook_ _t
+ C.u.o.tilde_ _t
+ C.u.o.circumflex_ _t
+ C.u.o.circumflex_.acute_ _t
+ C.u.o.circumflex_.dot_ _t
+ C.u.o.circumflex_.grave_ _t
+ C.u.o.circumflex_.hook_ _t
+ C.u.o.circumflex_.tilde_ _t
+ C.u.o.horn_ _t
+ C.u.o.horn_.acute_ _t
+ C.u.o.horn_.dot_ _t
+ C.u.o.horn_.grave_ _t
+ C.u.o.horn_.hook_ _t
+ C.u.o.horn_.tilde_ _t
+enddef;
+
+def U_fam(text _t) =
+ 85 _t % "U"
+ C.u.u.acute_ _t
+ C.u.u.dot_ _t
+ C.u.u.grave_ _t
+ C.u.u.hook_ _t
+ C.u.u.tilde_ _t
+enddef;
+
+def U_horn_fam(text _t) =
+ C.u.u.horn_ _t
+ C.u.u.horn_.acute_ _t
+ C.u.u.horn_.dot_ _t
+ C.u.u.horn_.grave_ _t
+ C.u.u.horn_.hook_ _t
+ C.u.u.horn_.tilde_ _t
+enddef;
+
+def Y_fam(text _t) =
+ 89 _t % "Y"
+ C.u.y.acute_ _t
+ C.u.y.dot_ _t
+ C.u.y.grave_ _t
+ C.u.y.hook_ _t
+ C.u.y.tilde_ _t
+enddef;
+
+
+def a_fam(text _t) =
+ 97 _t % "a"
+ C.l.a.acute_ _t
+ C.l.a.dot_ _t
+ C.l.a.grave_ _t
+ C.l.a.hook_ _t
+ C.l.a.tilde_ _t
+ C.l.a.breve_ _t
+ C.l.a.breve_.acute_ _t
+ C.l.a.breve_.dot_ _t
+ C.l.a.breve_.grave_ _t
+ C.l.a.breve_.hook_ _t
+ C.l.a.breve_.tilde_ _t
+ C.l.a.circumflex_ _t
+ C.l.a.circumflex_.acute_ _t
+ C.l.a.circumflex_.dot_ _t
+ C.l.a.circumflex_.grave_ _t
+ C.l.a.circumflex_.hook_ _t
+ C.l.a.circumflex_.tilde_ _t
+enddef;
+
+def d_fam(text _t) =
+ 100 _t % "d"
+ C.l.d.bar_ _t
+enddef;
+
+def e_fam(text _t) =
+ 101 _t % "e"
+ C.l.e.acute_ _t
+ C.l.e.dot_ _t
+ C.l.e.grave_ _t
+ C.l.e.hook_ _t
+ C.l.e.tilde_ _t
+ C.l.e.circumflex_ _t
+ C.l.e.circumflex_.acute_ _t
+ C.l.e.circumflex_.dot_ _t
+ C.l.e.circumflex_.grave_ _t
+ C.l.e.circumflex_.hook_ _t
+ C.l.e.circumflex_.tilde_ _t
+enddef;
+
+def i_fam(text _t) =
+ 105 _t % "i"
+ C.l.i.acute_ _t
+ C.l.i.dot_ _t
+ C.l.i.grave_ _t
+ C.l.i.hook_ _t
+ C.l.i.tilde_ _t
+enddef;
+
+def o_fam(text _t) =
+ 111 _t % "o"
+ C.l.o.acute_ _t
+ C.l.o.dot_ _t
+ C.l.o.grave_ _t
+ C.l.o.hook_ _t
+ C.l.o.tilde_ _t
+ C.l.o.circumflex_ _t
+ C.l.o.circumflex_.acute_ _t
+ C.l.o.circumflex_.dot_ _t
+ C.l.o.circumflex_.grave_ _t
+ C.l.o.circumflex_.hook_ _t
+ C.l.o.circumflex_.tilde_ _t
+ C.l.o.horn_ _t
+ C.l.o.horn_.acute_ _t
+ C.l.o.horn_.dot_ _t
+ C.l.o.horn_.grave_ _t
+ C.l.o.horn_.hook_ _t
+ C.l.o.horn_.tilde_ _t
+enddef;
+
+def u_fam(text _t) =
+ 117 _t % "u"
+ C.l.u.acute_ _t
+ C.l.u.dot_ _t
+ C.l.u.grave_ _t
+ C.l.u.hook_ _t
+ C.l.u.tilde_ _t
+enddef;
+
+def u_horn_fam(text _t) =
+ C.l.u.horn_ _t
+ C.l.u.horn_.acute_ _t
+ C.l.u.horn_.dot_ _t
+ C.l.u.horn_.grave_ _t
+ C.l.u.horn_.hook_ _t
+ C.l.u.horn_.tilde_ _t
+enddef;
+
+def y_fam(text _t) =
+ 121 _t % "y"
+ C.l.y.acute_ _t
+ C.l.y.dot_ _t
+ C.l.y.grave_ _t
+ C.l.y.hook_ _t
+ C.l.y.tilde_ _t
+enddef;
+
+% endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncombac.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncombac.mf
new file mode 100644
index 00000000000..8dd2fa230c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncombac.mf
@@ -0,0 +1,28 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define combining accents
+
+vnchar "Vietnamese grave accent";
+define_vnaccent(oct"000", grave_);
+
+vnchar "Vietnamese acute accent";
+define_vnaccent(oct"001", acute_);
+
+vnchar "Vietnamese circumflex accent";
+define_vnaccent(oct"002", circumflex_);
+
+vnchar "Vietnamese tilde accent";
+define_vnaccent(oct"003", tilde_);
+
+vnchar "Vietnamese dot accent";
+define_vnaccent(oct"005", dot_);
+
+vnchar "Vietnamese breve accent";
+define_vnaccent(oct"010", breve_);
+
+vnchar "Vietnamese hook accent";
+define_vnaccent(oct"014", hook_);
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncsc.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncsc.mf
new file mode 100644
index 00000000000..ceff20fa1fa
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncsc.mf
@@ -0,0 +1,164 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% driver for cap and smallcap fonts (based on eccsc.mf)
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input exaccess; % accessories for polish special letters
+input expseudo; % pseudoparameters
+
+mode_setup;
+font_setup;
+pseudo_setup;
+
+if known testing:
+ set_uppercase;
+ input vnaccent;
+ input_ur_fam;
+elseif known gen_t5_supp:
+ input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040)
+ input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !)
+ input exsign; % zero for mille, " # $ % @ pound sign
+ set_uppercase;
+ input vnaccent;
+ input vnuacc;
+ input vnuor; % Ohorn
+ input vnuur; % Uhorn
+ input vnudr; % D-bar
+else:
+ input exrulett; % upper case (majuscules)
+ input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040)
+ input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !)
+ input exsign; % zero for mille, " # $ % @ pound sign
+ input exromp; % (roman punctuation) & ? (spanish ?)
+ input exrdigit; % roman digits
+
+ set_uppercase;
+ input vnaccent;
+ input vnuar; % modified/accented "A"
+ input vnuer; % modified/accented "E"
+ input vnuir; % accented "I"
+ input vnuor; % modified/accented "O"
+ input vnuur; % modified/accented "U"
+ input vnuyr; % accented "Y"
+ input vnudr; % D-bar
+fi % known testing/gen_t5_supp
+
+boolean is_small_cap; is_small_cap:=true;
+%%% fine higher
+% the `higher' values are used while putting accents and attaching ogoneks
+forsuffixes $=u,o,letter_fit,x_height,bar_height,body_height,stem:
+ higher.$.#:=$.#; higher.$:=$;
+endfor
+
+%%% fine lower
+begingroup
+forsuffixes $= u, width_adj, cap_serif_fit, letter_fit,
+ body_height, cap_height, x_height, bar_height, comma_depth,
+ flare, dot_size, cap_hair, stem, cap_stem, cap_curve, cap_ess,
+ cap_jut, beak_jut, beak, slab, cap_bar, cap_band, cap_notch_cut,
+ o, apex_o: save $; $.#:=lower.$.#; endfor
+fudge:=lower.fudge;
+
+% optional part:
+forsuffixes $ = depth_corr, left_corr, top_breadth_corr, tip_breadth_corr,
+ tip_xcorr, tip_ycorr, pre_angle, post_angle, pre_limit, post_limit,
+ pre_lightness, post_lightness, pre_deflexion, post_deflexion, cap_flat,
+ ogonek_pen#: if known lower.$: $:=lower.$; fi
+endfor
+
+input expseudo; % Recalculate pseudoparameters
+
+font_setup;
+pseudo_setup; % now try again with |lower| settings
+
+if unknown testing and unknown gen_t5_supp:
+ input_lig excspl; % dotless i,j; letter ligatures FF FI FL FFI FFL D-
+fi
+
+if known testing:
+ set_smallcap;
+ input vnaccent;
+ input_sc_fam;
+ def next= endgroup endinput enddef;
+elseif known gen_t5_supp:
+ set_smallcap;
+ input vnaccent;
+ input vnlacc;
+ input vnuor; % Ohorn
+ input vnuur; % Uhorn
+ input vnudr; % D-bar
+ input txpseudo; % Recalculate pseudoparameters for capital accents
+ font_setup;
+ pseudo_setup;
+ input txaccent; % Accents for capital letters with small cap parameters
+ input vndothook;% dotbelow and hookabove
+ input vnminus; % minus iff monospace:
+ def next= endgroup endinput enddef;
+else:
+ let next=relax;
+fi % known testing/gen_t5_supp
+next;
+
+extra_endchar:=extra_endchar&"charcode:=charcode+code_offset";
+code_offset:=ASCII"a" - ASCII"A";
+
+input exrulett; % upper case (majuscules)
+
+suppress_i_dot := true;
+
+code_offset:=0;
+
+set_smallcap;
+input vnaccent;
+input vnuar; % modified/accented "A"
+input vnuer; % modified/accented "E"
+input vnuir; % accented "I"
+input vnuor; % modified/accented "O"
+input vnuur; % modified/accented "U"
+input vnuyr; % accented "Y"
+input vnudr; % D-bar
+
+input txpseudo; % Recalculate pseudoparameters for capital accents
+font_setup;
+pseudo_setup;
+input txaccent; % Accents for capital letters with small cap parameters
+input vndothook;% dotbelow and hookabove
+input vnminus; % minus iff monospace:
+
+endgroup;
+
+
+% Fontparameter
+%
+font_coding_scheme := "Vietnamese TeX Font Encoding";
+boundarychar := oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (cap_height#+acc_height#);
+font_desc_depth desc_depth#;
+font_max_height (max(asc_height#,body_height#, cap_height#+acc_height#));
+font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+font_baselineskip max(1.2*designsize,body_height#+paren_depth#);
+
+if monospace:
+ font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ input vnmligtb; % do the monospace ligature programs
+else:
+ font_normal_space 6u# + 2letter_fit#;
+ font_normal_stretch 3u#;
+ font_normal_shrink 2u#;
+ font_quad 18u# + 4letter_fit#;
+ font_extra_space 2u#;
+ input vncligtb; % do the ligature programs, not for monospaced fonts
+fi
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vncsc10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vncsc10.mf
new file mode 100644
index 00000000000..94931d21c76
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vncsc10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input eccc;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vndothook.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vndothook.mf
new file mode 100644
index 00000000000..e2a25ccb6dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vndothook.mf
@@ -0,0 +1,19 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+vnchar "Vietnamese dotbelow accent";
+beginchar(oct"005", 5u#, 0, desc_depth#);
+ adjust_fit(0,0);
+ currentpicture := vn_pic(dot_) shifted (.5w - .5hp(vn_width(dot_)),
+ -vn_bot(dot_));
+endchar;
+
+vnchar "Vietnamese hookabove accent";
+beginchar(oct"014",9u#,x_height#+acc_height#,0);
+ adjust_fit(0,0);
+ currentpicture := vn_pic(hook_) shifted (.5w - .5hp(vn_width(hook_)),
+ vp(vn_top(hook_) - vn_height(hook_)));
+endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vndunh10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vndunh10.mf
new file mode 100644
index 00000000000..fb287b695f4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vndunh10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecdh;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnecomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnecomp.mf
new file mode 100644
index 00000000000..109d809f9fb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnecomp.mf
@@ -0,0 +1,40 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define [eE]-based accented letters
+
+vnchar casename "e with acute";
+define_vnchar(e, acute_);
+
+vnchar casename "e with grave";
+define_vnchar(e, grave_);
+
+vnchar casename "e with hook";
+define_vnchar(e, hook_);
+
+vnchar casename "e with tilde";
+define_vnchar(e, tilde_);
+
+vnchar casename "e with dot";
+define_vnchar_dot(e);
+
+vnchar casename "e with circumflex ";
+define_vnchar(e, circumflex_);
+
+vnchar casename "e with circumflex and acute";
+define_vnchar(e, circumflex_.acute_);
+
+vnchar casename "e with circumflex and grave";
+define_vnchar(e, circumflex_.grave_);
+
+vnchar casename "e with circumflex and hook";
+define_vnchar(e, circumflex_.hook_);
+
+vnchar casename "e with circumflex and tilde";
+define_vnchar(e, circumflex_.tilde_);
+
+vnchar casename "e with circumflex and dot";
+define_vnchar_dot_ac(e, circumflex_);
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnff10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnff10.mf
new file mode 100644
index 00000000000..2e73500b760
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnff10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecff;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnfi10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnfi10.mf
new file mode 100644
index 00000000000..0270375f248
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnfi10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecfi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnfib8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnfib8.mf
new file mode 100644
index 00000000000..83a2714a75a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnfib8.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=8;
+input vnbase;
+input ecfb;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnicomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnicomp.mf
new file mode 100644
index 00000000000..9bd32d45f96
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnicomp.mf
@@ -0,0 +1,22 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define [iI]-based accented letters
+
+vnchar casename "i with acute";
+define_vnchar(i, acute_);
+
+vnchar casename "i with grave";
+define_vnchar(i, grave_);
+
+vnchar casename "i with hook";
+define_vnchar(i, hook_);
+
+vnchar casename "i with tilde";
+define_vnchar(i, tilde_);
+
+vnchar casename "i with dot";
+define_vnchar_dot(i);
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vniligtb.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vniligtb.mf
new file mode 100644
index 00000000000..7bc8e90b0ca
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vniligtb.mf
@@ -0,0 +1,135 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% ligatures and kerns for italic fonts
+
+ligtable
+ "`": "`"=:oct"020",
+ oct"020" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "'": "'"=:oct"021",
+ oct"021" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "-": "-" =: oct"025",
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+
+ligtable
+ oct"025": "-"=:oct"026"; % "---" => emdash
+
+ligtable "<": "<" =: oct"023"; % "<<"
+ligtable ">": ">" =: oct"024"; % ">>"
+ligtable ",": "," =: oct"022"; % ",,"
+
+k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning
+
+ligtable boundarychar:
+ oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#,
+ oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#;
+
+ligtable oct"022":
+ oct"015" kern 2u#, "," kern 2u#,
+ oct"015":
+ oct"022" kern 2u#,
+ "v" kern kk#, "w" kern kk#,
+ "T" kern kk#, "V" kern kkk#, "W" kern kkk#,
+ Y_fam(kern kk#,)
+ O_fam(kern k#,) lig_CGQ_table(k#),
+ boundarychar kern -kk#;
+
+ligtable oct"020":
+ oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"021":
+ oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"024": % ">>"
+ "." kern kk#, "," kern kk#;
+
+ligtable
+ d_fam(:) "w": "l":
+ "l" kern +u#;
+ligtable
+ "F": "W": "V":
+ o_fam(kern kk#,)
+ e_fam(kern kk#,)
+ u_fam(kern kk#,)
+ "r" kern kk#, "n" kern kk#, "v" kern kk#,
+ a_fam(kern kk#,)
+ A_fam(kern kkk#,)
+ "X": O_fam(kern k#,)
+ lig_CGQ_table(k#);
+
+ligtable
+ "K": "v" kern k#,
+ "w" kern k#,
+ O_fam(kern k#,)
+ lig_CGQ_table(k#);
+
+ligtable
+ "T":
+ y_fam(kern kk#,)
+ Y_fam(:)
+ e_fam(kern kk#,)
+ o_fam(kern kk#,)
+ "r" kern kk#,
+ a_fam(kern kk#,)
+ u_fam(kern kk#,)
+ "P":
+ A_fam(kern kk#,)
+ end_ligtable;
+ligtable
+ O_fam(:)
+ D_fam(:)
+ "X" kern k#,
+ "W" kern k#,
+ A_fam(kern k#,)
+ Y_fam(kern k#,)
+ "V" kern k#;
+ligtable
+ A_fam(:)
+ y_fam(kern k#,)
+ "R":
+ "n" kern k#,
+ "l" kern k#,
+ "r" kern k#,
+ u_fam(kern k#,)
+ "m" kern k#,
+ "t" kern k#,
+ i_fam(kern k#,)
+ "h" kern k#,
+ "b" kern k#,
+ "k" kern k#,
+ "v" kern k#,
+ "w" kern k#,
+ lig_CGQ_table(k#),
+ O_fam(kern k#,)
+ U_fam(kern k#,)
+ "L":
+ "T" kern kk#,
+ Y_fam(kern kk#,)
+ "V" kern kkk#,
+ "W" kern kkk#,
+ "b":
+ "c":
+ e_fam(:)
+ o_fam(:)
+ "p":
+ "r": e_fam(kern -u#,)
+ a_fam(kern -u#,)
+ o_fam(kern -u#,)
+ d_fam(kern -u#,)
+ "c" kern -u#,
+ "g" kern -u#,
+ "q" kern -u#;
+ligtable
+ "n": "'" kern kkk#;
+
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnitt10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnitt10.mf
new file mode 100644
index 00000000000..d051804bbc3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnitt10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecit;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlacc.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlacc.mf
new file mode 100644
index 00000000000..347a3b8515f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlacc.mf
@@ -0,0 +1,28 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define lowercase accents
+
+vnchar casename "grave accent";
+define_vnaccent(128, grave_);
+
+vnchar casename "acute accent";
+define_vnaccent(129, acute_);
+
+vnchar casename "circumflex accent";
+define_vnaccent(130, circumflex_);
+
+vnchar casename "tilde accent";
+define_vnaccent(131, tilde_);
+
+vnchar casename "dot accent";
+define_vnaccent(132, dot_);
+
+vnchar casename "breve accent";
+define_vnaccent(133, breve_);
+
+vnchar casename "hook accent";
+define_vnaccent(134, hook_);
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlai.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlai.mf
new file mode 100644
index 00000000000..bd5649715e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlai.mf
@@ -0,0 +1,45 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman Italic lower case "a" precomposed glyphs:
+% Inclusion:
+% a' a` a? a~ a.
+% a( a(' a(` a(? a(~ a(.
+% a^ a^' a^` a^? a^~ a^.
+
+begin_letter(a);
+ set_letter_dimens(a)(
+ 9u#, x_height#, 0,
+ 1/3x_height#*slant + .5hair# + .5u#,
+ 0, 0
+ );
+ pickup fine.nib;
+ pos0(hair, 0);
+ pos1(vair, 90);
+ pos2(curve, 180);
+ pos3(vair, 270);
+ pos4(stem, 0);
+ x4 = x0;
+ y4 + .5stem = vround .98h;
+ x1 = x3 = .5[x0, x2];
+ lft x2r = hround(1.5u - .5curve);
+ rt x4r = hround(w - 2.5u + .5stem);
+ top y1r = h+oo;
+ bot y3r=-oo;
+ y0 = y2 = .5[y1, y3];
+ filldraw stroke super_arc.e(0, 1) & pulled_arc.e(1, 2)
+ & pulled_arc.e(2, 3) & super_arc.e(3, 0); % bowl
+ x5 = x4;
+ x7 = w;
+ hook_out(5, 6, 7); % closing hook
+ filldraw circ_stroke z4e -- z5e; % stem
+ math_fit( - .3x_height#*slant + .5curve# - u#, ic#);
+ penlabels(0, 1, 2, 3, 4, 5, 6, 7);
+ set_letter_join(a, x1 + .25u, 4.5u#);
+ set_letter_join(a.dot_, x1 + .5u, .5w# + .5u#);
+end_letter;
+
+input vnacomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlar.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlar.mf
new file mode 100644
index 00000000000..7f547ba4163
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlar.mf
@@ -0,0 +1,112 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman lower case "a" precomposed glyphs:
+% Inclusion:
+% a' a` a? a~ a.
+% a( a(' a(` a(? a(~ a(.
+% a^ a^' a^` a^? a^~ a^.
+
+begin_letter(a);
+ bh# := min(bar_height#, 1.14x_height# - bar_height#);
+ define_pixels(bh);
+ set_letter_dimens(a)(
+ 9u#, x_height#, 0,
+ 1/3[bh#, x_height#] * slant + .5stem# - serif_fit# - 2u#,
+ 0, serif_fit# if serifs: if hair# + .5stem# > 1.5u#: -.25u# fi\\fi
+ );
+ pickup fine.nib;
+ top y3r = h+vround 1.5oo;
+ if serifs: pos1(flare, 180);
+ pos2(hair, 180);
+ pos3(vair, 90);
+ lft x1r = hround max(u, 2.1u - .5flare);
+ x3 = .5w - .5u;
+ y1 = min(bh + .5flare + 2vair + 2, .9[bh, h] - .5flare);
+ bulb(3, 2, 1); % bulb
+ else: pos1(5/7[vair, flare], 95);
+ x1l = good.x 1.5u;
+ x1r := good.x x1r;
+ pos3(1/8[vair, thin_join], 90);
+ x3 = .5w - .2u;
+ top y1r = vround .82[bh, top y3r];
+ filldraw stroke term.e(3, 1, left, .9, 4);
+ fi % terminal
+ pos4(stem, 0);
+ rt x4r = hround(w - 2.5u + .5stem);
+ y4 = 1/3[bh, h];
+ pos5(stem, 0);
+ x5 = x4;
+ y5 = max(.55bh, 2vair);
+ filldraw stroke super_arc.e(3, 4)&z4e .. z5e; % arc and stem
+ pos6(.3[thin_join, vair], 90);
+ x6 = x4;
+ bot y6 = bh;
+ pos7(hround(curve - 2stem_corr), 180);
+ lft x7r = hround max(.5u, 1.5u - .5curve);
+ y7 = 1/3[top y8l, top y6r];
+ pos8(vair, 270);
+ x8l = .5w - .75u;
+ bot y8r=-oo;
+ pos9(thin_join, 360);
+ z9l = z5l;
+ (x, y8r) = whatever[z8l, z9l];
+ x8r := max(x, x8 - u);
+ {{interim superness := more_super;
+ filldraw stroke z9e{down} ... z8e{left} ... {up}z7e&super_arc.e(7, 6)}}; % bowl
+ if serifs: numeric shaved_stem;
+ shaved_stem = hround(stem - 3stem_corr);
+ if hair# + .5stem# > 1.5u#: pickup tiny.nib;
+ pos5'(shaved_stem, 0);
+ rt x5'r = fine.rt x5r;
+ y5' = y5;
+ pos10(shaved_stem, 0);
+ x10 = x5';
+ y10 = .2[.5tiny, bh];
+ pos11(shaved_stem, 0);
+ rt x11r = hround(w - .25u);
+ bot y11 = 0;
+ pos12(shaved_stem, 0);
+ x11 = x12;
+ top y12 = slab + eps;
+ filldraw z5'l --- z10l ... z11l{right} -- z11r
+ -- z12r{left} ... z10r + .75(z12 - z11) --- z5'r -- cycle; % foot
+ else: pickup crisp.nib;
+ pos5'(shaved_stem, 0);
+ rt x5'r = fine.rt x5r;
+ y5' = y5;
+ pos10(shaved_stem, 0);
+ x10 = x5';
+ y10 = 1/3bh;
+ pos11(.2[vair, stem], 90);
+ x11r = .5[x10r, x12r];
+ bot y11l=-vround .5oo;
+ pos12(hair, 180);
+ rt x12l = hround(w - .1u);
+ y12 = max(y10, y11 + vair);
+ pos13(hair, 180);
+ x13 = x12;
+ top y13 = max(vround .6bh, top y12);
+ (x', y11l) = whatever[z11r, z12r];
+ x11l := max(x', x10);
+ filldraw stroke z5'e --- z10e ... z11e{right} ... z12e --- z13e;
+ fi % hook
+ else: numeric shaved_stem;
+ shaved_stem = hround(stem - stem_corr);
+ pickup tiny.nib;
+ pos5'(shaved_stem, 0);
+ rt x5'r = fine.rt x5r;
+ y5' = y5;
+ pos10(shaved_stem, 0);
+ x10 = x5';
+ bot y10 = 0;
+ filldraw stroke z5'e -- z10e;
+ fi % base of stem
+ set_letter_join(a, x3 if serifs: + .25u fi, .5w#);
+ penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);
+end_letter;
+
+input vnacomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnldi.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnldi.mf
new file mode 100644
index 00000000000..d9b6536db77
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnldi.mf
@@ -0,0 +1,55 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman Italic "d-bar" precomposed glyph:
+% Inclusion:
+% dd
+
+vnchar casename "dd";
+beginchar(vn_code(d.bar_), 9u#, max(asc_height#, 1.45x_height#), 0);
+ italcorr max(1/3x_height#*slant + .5hair# + .5u#,
+ h#*slant + .5stem# - 2u#) if math_fitting: -.5u# fi;
+ adjust_fit(0, 0);
+ pickup fine.nib;
+ pos0(hair, 0);
+ pos1(vair, 90);
+ pos2(curve, 180);
+ pos3(vair, 270);
+ x0 = x4;
+ x1 = x3 = .5[x0, x2];
+ lft x2r = hround(1.5u - .5curve);
+ x4 + .5stem = hround(w - 2.5u + .5stem);
+ top y1r = x_height + oo;
+ bot y3r=-oo;
+ y0 = y2 = .5[y1, y3];
+ filldraw stroke super_arc.e(0, 1) & pulled_arc.e(1, 2)
+ & pulled_arc.e(2, 3) & super_arc.e(3, 0); % bowl
+ x5 = x0;
+ x7 = w;
+ hook_out(5, 6, 7); % closing hook
+ pickup tiny.nib;
+ pos5'(stem, 0);
+ pos4(stem, 0);
+ z5' = z5;
+ top y4 = h;
+ filldraw stroke z4e -- z5'e; % stem
+ sloped_serif.l(4, 5', a, 1/3, jut, serif_drop); % serif
+ bar_thickness := .3[vair, stem];
+ pos8(bar_thickness, 90);
+ pos9(bar_thickness, 90);
+ if serifs:
+ top y8r = top y9r = .6[y1, h - (serif_drop + slab)] + .5bar_thickness;
+ lft x8 = hround(tiny.lft x0l - 1.5max(jut, u)) - eps;
+ rt x9 = hround(tiny.rt x0r + max(jut, u)) + eps;
+ else:
+ top y8r = top y9r = .6[y1, y4] + .5bar_thickness;
+ lft x8 = hround(tiny.lft x0l - 1.5vair) - eps;
+ rt x9 = hround(tiny.rt x0r + vair) + eps;
+ fi
+ filldraw stroke z8e -- z9e; % bar
+ math_fit( - .3x_height#*slant + .5curve# - u#, ic#);
+ penlabels(0, 1, 2, 3, 4, 5, 6, 7);
+endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnldr.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnldr.mf
new file mode 100644
index 00000000000..d06cf787252
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnldr.mf
@@ -0,0 +1,70 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman "d-bar" precomposed glyph:
+% Inclusion:
+% dd
+
+vnchar casename "d with bar";
+beginchar(vn_code(d.bar_), 10u# + serif_fit#, max(asc_height#, 1.45x_height#), 0);
+ italcorr asc_height#*slant - serif_fit# + .5stem# - 2u#;
+ adjust_fit(0, serif_fit#);
+ pickup tiny.nib;
+ pos1(stem', 0);
+ pos2(stem, 0);
+ pos0'(stem', 0);
+ pos0(stem, 0);
+ z0r = z0'r;
+ x0' = x1;
+ x0 = x2;
+ rt x1r = hround(w - 2.5u + .5stem');
+ top y1 = h;
+ numeric edge;
+ edge = lft x2l;
+ pickup fine.nib;
+ pos3(if hefty: thin_join else: hair fi, 0);
+ pos4(vair, 90);
+ pos5(curve, 180);
+ pos6(vair, 270);
+ penpos7(x3r - x3l, 360);
+ lft x3l = min(lft x3l - (rt x3r - tiny.rt x2r), 1/3[lft x2, edge]);
+ y3 = 1/8[bar_height, x_height];
+ x4l = .5(w - serif_fit) - .3u;
+ top y4r = x_height + oo;
+ lft x5r = hround max(1.35u - .5curve, .6u);
+ y5 = .5x_height;
+ x6l = x4l - .2u;
+ bot y6r=-oo;
+ x7 = x3;
+ y7 = min(y3, y6 + y4 - y3 + .6vair);
+ (x, y4r) = whatever[z3l, z4l];
+ x4r := max(x, .5[x5r, x4]);
+ (x', y6r) = whatever[z7l, z6l];
+ x6r := max(x', .5[x5r, x6]);
+ filldraw stroke z3e{up} ... pulled_arc.e(4, 5)
+ & pulled_arc.e(5, 6) ... {up}z7e; % bowl
+ y0 = ypart(((edge, h) -- (edge, 0))intersectionpoint(z3l{up} ... {left}z4l));
+ pickup tiny.nib;
+ bot y2 = if serifs: -min(oo, serif_drop) else: 0 fi;
+ filldraw stroke z1e -- z0'e -- z0e -- z2e; % stem
+ if serifs: sloped_serif.l(1, 0', a, 1/3, jut, serif_drop); % upper serif
+ sloped_serif.r(2, 0, b, 1/3, jut, min(oo, serif_drop));
+ fi % lower serif
+ bar_thickness := .3[vair, stem];
+ pos8(bar_thickness, 90);
+ pos9(bar_thickness, 90);
+ if serifs:
+ top y8r = top y9r = .6[y4, h - (serif_drop + slab)] + .5bar_thickness;
+ lft x8 = hround(tiny.lft x0l - 1.5max(jut, u)) - eps;
+ rt x9 = hround(tiny.rt x0r + max(jut, u)) + eps;
+ else:
+ top y8r = top y9r = .6[y4, y1] + .5bar_thickness;
+ lft x8 = hround(tiny.lft x0l - 1.5vair) - eps;
+ rt x9 = hround(tiny.rt x0r + vair) + eps;
+ fi
+ filldraw stroke z8e -- z9e; % bar
+ penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
+endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlei.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlei.mf
new file mode 100644
index 00000000000..724faa620c5
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlei.mf
@@ -0,0 +1,48 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman Italic lower case "e" precomposed glyphs:
+% Inclusion:
+% e' e` e? e~ e.
+% e^ e^' e^` e^? e^~ e^.
+
+begin_letter(e);
+ set_letter_dimens(e)(
+ 8u#, x_height#, 0,
+ max(1/3x_height#*slant, x_height#*slant + .5(.2[hair#, stem#]) - u#),
+ 0, 0
+ );
+ pickup fine.nib;
+ numeric heavy_hair;
+ heavy_hair = hround .2[hair, stem];
+ pos0(vair, -90);
+ pos1(heavy_hair, 0);
+ pos2(vair, 90);
+ pos3(curve, 180);
+ pos4(vair, 270);
+ pos5(hair, 320);
+ x0 = rt x3l;
+ rt x1r = hround(w - 1.5u + .5heavy_hair);
+ x2 = x4 = .5(w + u);
+ lft x3r = hround(1.5u - .5curve);
+ x5r = good.x(w - eps);
+ x6 = x5;
+ y0 = y3 = y6 = bar_height;
+ y1 = .5[y0, y2];
+ top y2r = h+oo;
+ bot y4r = -oo;
+ top y5l = vround .5bar_height;
+ path p;
+ p = z4{right} .. z5 .. z6;
+ filldraw stroke z0e{right} ... z1e{up} ... pulled_arc.e(2, 3)
+ & pulled_arc.e(3, 4) ... {direction 1 of p}z5e; % arc
+ math_fit( - .3x_height#*slant + .5curve# - u#, ic#);
+ penlabels(0, 1, 2, 3, 4, 5, 6);
+ set_letter_join(e, x2, .5w#);
+% set_letter_join(e.dot_, .5w + .5u, .5w# + .5u#);
+end_letter;
+
+input vnecomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnler.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnler.mf
new file mode 100644
index 00000000000..acfa7d71648
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnler.mf
@@ -0,0 +1,73 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman lower case "e" precomposed glyphs:
+% Inclusion:
+% e' e` e? e~ e.
+% e^ e^' e^` e^? e^~ e^.
+
+begin_letter(e);
+ set_letter_dimens(e)(
+ 7.25u# + max(.75u#, .5curve#), x_height#, 0,
+ .5[bar_height#, x_height#]*slant + .5min(curve# - 1.5u#, 0),
+ if monospace: .25u#, .5u# else: 0, 0 fi
+ );
+ numeric left_curve, right_curve;
+ left_curve = right_curve + 6stem_corr = curve if not serifs: -3stem_corr fi;
+ if right_curve < tiny.breadth: right_curve := tiny.breadth;
+ fi
+ if left_curve < tiny.breadth: left_curve := tiny.breadth;
+ fi
+ pickup tiny.nib;
+ pos1(right_curve, 0);
+ pos2(vair, 90);
+ pos3(left_curve, 180);
+ y1 = good.y bar_height;
+ top y2r = h+vround 1.5oo;
+ y0l = bot y1;
+ rt x1r = hround min(w - .5u, w - u+.5right_curve);
+ lft x3r = hround max(.5u, 1.25u - .5left_curve);
+ x2 = .5w + .25u;
+ {{interim superness := more_super;
+ filldraw stroke super_arc.e(1, 2)}}; % right bowl
+ y3 = .5[y2, y4];
+ bot y4r=-oo;
+ x4 = x2 + .25u;
+ if serifs: pos4(vair', 270);
+ pos5(hair, 360);
+ y5 = max(good.y(.5bar_height - .9), y4l + vair);
+ x5r = x1r;
+ (x, y4l) = whatever[z4r, z5];
+ x4l := min(x, x4l + .5u);
+ filldraw stroke pulled_arc.e(2, 3) & pulled_arc.e(3, 4)
+ ... {x5 - x4, 5(y5 - y4)}z5e; % left bowl, arc, and terminal
+ else: pos4(vair, 270);
+ filldraw stroke super_arc.e(2, 3) & super_arc.e(3, 4); % left bowl and arc
+ pickup fine.nib;
+ pos4'(vair, 270);
+ z4 = z4';
+ pos5(.5[vair, flare], 275);
+ rt x5r = hround(w - .6u);
+ y5r = good.y(y5r + 1/3bar_height - y5);
+ y5l := good.y y5l;
+ x5l := good.x x5l;
+ filldraw stroke term.e(4', 5, right, 1, 4);
+ fi % terminal
+ path testpath;
+ testpath = super_arc.r(2, 3) & super_arc.r(3, 4);
+ y1'r = y0r = y0l + .6[thin_join, vair];
+ y1'l = y0l;
+ x1'l = x1'r = x1;
+ forsuffixes $ = l, r:
+ x0$ = xpart(((0, y0$) -- (x1, y0$)) intersectionpoint testpath);
+ endfor
+ fill stroke z0e -- z1'e; % crossbar
+ penlabels(0, 1, 2, 3, 4, 5);
+ set_letter_join(e, x2, .5w#);
+% set_letter_join(e.dot_, .5w + .5u, .5w# + .5u#);
+end_letter;
+
+input vnecomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlii.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlii.mf
new file mode 100644
index 00000000000..6c80e1d5ddd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlii.mf
@@ -0,0 +1,62 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman Italic lower case "i" precomposed glyphs:
+% Inclusion:
+% i' i` i? i~ i.
+
+begin_letter(i);
+ set_letter_dimens(i)(
+ 5u#, x_height#, 0,
+ 1/3x_height#*slant + .5hair# + .5u#,
+ if monospace: u#, u# else: 0, 0 fi
+ );
+ pickup fine.nib;
+ x0 = 0;
+ x5 = w;
+ x2 = .5w + .25u;
+ x3 = .5w - .25u;
+ hook_in(0, 1, 2)(skewed);
+ hook_out(3, 4, 5)(skewed); % hooks
+ filldraw stroke z2e -- z3e; % stem
+ math_fit( - 2/3x_height#*slant + .5hair# + .5u#, ic#);
+ penlabels(0, 1, 2, 3, 4, 5);
+ set_letter_join(i, x1, .25w# + .15u#);
+ set_letter_join(i.dot_, x4, .75w# + .1u#);
+end_letter;
+
+begin_letter(idot);
+ idot_h# := min(asc_height#, 10/7x_height# + .5flare#);
+ set_letter_dimens(idot)(
+ 5u#, idot_h#, 0,
+ max(1/3x_height#*slant + .5hair# + .5u#, idot_h#*slant + .5flare# - 2u#),
+ if monospace: u#, u# else: 0, 0 fi
+ );
+ pickup fine.nib;
+ x0 = 0;
+ x5 = w;
+ x2 = .5w + .25u;
+ x3 = .5w - .25u;
+ hook_in(0, 1, 2)(skewed);
+ hook_out(3, 4, 5)(skewed); % hooks
+ filldraw stroke z2e -- z3e; % stem
+ pos8(flare, 0);
+ pos9(flare, 90);
+ x8 = .5w if not monospace: -.4(h - x_height)*slant fi;
+ top y9r = h + 1;
+ if bot y9l - top y1 < slab:
+ y9l := min(y9r - eps, y1 + fine + slab);
+ fi
+ x8 = x9;
+ y8 = .5[y9l, y9r];
+ dot(8, 9); % dot
+ math_fit( - 2/3x_height#*slant + .5hair# + .5u#, ic#);
+ penlabels(0, 1, 2, 3, 4, 5, 8, 9);
+ set_letter_join(idot, x1, .25w# + .15u#);
+ set_letter_join(idot.dot_, x4, .75w# + .1u#);
+end_letter;
+
+input vnicomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlir.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlir.mf
new file mode 100644
index 00000000000..e626565502f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlir.mf
@@ -0,0 +1,74 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman lower case "i" precomposed glyphs:
+% Inclusion:
+% i' i` i? i~ i.
+
+begin_letter(i);
+ set_letter_dimens(i)(
+ 5u#, x_height#, 0,
+ x_height#*slant - serif_fit# + .5stem# - 2u#,
+ serif_fit# + stem_shift# if monospace: +.25u#fi, serif_fit# - stem_shift#
+ );
+ pickup tiny.nib;
+ pos1(stem', 0);
+ pos2(stem', 0);
+ lft x1l = hround(.5w - .5stem');
+ x1 = x2;
+ top y1 = x_height if serifs: + min(oo, serif_drop) fi;
+ bot y2 = 0;
+ filldraw stroke z1e -- z2e;
+ % stem
+ if serifs:
+ sloped_serif.l(1, 2, a, 1/3, .95jut, serif_drop); % upper serif
+ dish_serif(2, 1, b, 1/3, jut, c, 1/3, .9jut); % lower serif
+ fi
+ penlabels(1, 2);
+ set_letter_join(i, x1, .5w#);
+end_letter;
+
+begin_letter(idot);
+ idot_h# := min(asc_height#, 10/7x_height# + .5vn_dot_diam#);
+ set_letter_dimens(idot)(
+ 5u#, idot_h#, 0,
+ idot_h#*slant - serif_fit# + .5vn_dot_diam# -2u#,
+ serif_fit# + stem_shift# if monospace: +.25u# fi,
+ serif_fit# - stem_shift#
+ );
+ pickup tiny.nib;
+ pos1(stem', 0);
+ pos2(stem', 0);
+ if odd(w - stem'):
+ change_width;
+ fi
+ lft x1l = hround(.5w - .5stem');
+ x1 = x2;
+ top y1 = x_height if serifs: +min(oo, serif_drop) fi;
+ bot y2 = 0;
+ filldraw stroke z1e -- z2e; % stem
+ pos3(vn_dot_diam, 0);
+ pos4(vn_dot_diam, 90);
+ if serifs:
+ x3r = max(x1r, hround(x1 + .5vn_dot_diam - .2jut) - .5tiny)
+ else:
+ x3 = x1 - .5
+ fi;
+ top y4r = h + 1;
+ if bot y4l - top y1 < slab: y4l := min(y4r - eps, y1 + tiny + slab);
+ fi
+ x3 = x4;
+ y3 = .5[y4l, y4r];
+ dot(3, 4); % dot
+ if serifs:
+ sloped_serif.l(1, 2, a, 1/3, .95jut, serif_drop); % upper serif
+ dish_serif(2, 1, b, 1/3, jut, c, 1/3, .9jut);
+ fi % lower serif
+ penlabels(1, 2, 3, 4);
+ set_letter_join(idot, x1, .5w#);
+end_letter;
+
+input vnicomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnloi.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnloi.mf
new file mode 100644
index 00000000000..191e1c31227
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnloi.mf
@@ -0,0 +1,38 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman Italic lower case "o" precomposed glyphs:
+% Inclusion:
+% o' o` o? o~ o.
+% o+ o+' o+` o+? o+~ o+.
+
+begin_letter(o);
+ set_letter_dimens(o)(
+ 9u#, x_height#, 0,
+ .7x_height#*slant + .5curve# - u# if math_fitting: -.5u# fi,
+ 0, 0
+ );
+ pickup fine.nib;
+ pos1(vair, 90);
+ pos2(curve, 180);
+ pos3(vair, 270);
+ pos4(curve, 360);
+ x1 = x3 = .5w;
+ lft x2r = hround(1.5u - .5curve);
+ x4 = w-x2;
+ top y1r = h+oo;
+ y2 = y4 = .5[y1, y3];
+ bot y3r = -oo;
+ filldraw stroke pulled_arc.e(1, 2) & pulled_arc.e(2, 3)
+ & pulled_arc.e(3, 4) & pulled_arc.e(4, 1); % bowl
+ math_fit( - .3x_height#*slant + .5curve# - u#, ic#);
+ penlabels(1, 2, 3, 4);
+ set_letter_join(o, x1, .5w#);
+ set_letter_join(o.horn_, x1, .5w#);
+ set_horn_join(o, pulled_arc.l(4, 1), pulled_arc.r(4, 1));
+end_letter;
+
+input vnocomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlor.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlor.mf
new file mode 100644
index 00000000000..8f5a34d320b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlor.mf
@@ -0,0 +1,38 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman lower case "o" precomposed glyphs:
+% Inclusion:
+% o' o` o? o~ o.
+% o^ o^' o^` o^? o^~ o^.
+% o+ o+' o+` o+? o+~ o+.
+
+begin_letter(o);
+ set_letter_dimens(o)(
+ 9u#, x_height#, 0,
+ .7x_height#*slant,
+ if monospace: .5u#, .5u# else: 0, 0 fi
+ );
+ penpos1(vair, 90);
+ penpos3(vair', -90);
+ penpos2(curve, 180);
+ penpos4(curve, 0);
+ x2r = hround max(.5u, 1.25u - .5curve);
+ x4r = w-x2r;
+ x1 = x3 = .5w;
+ y1r = h + vround 1.5oo;
+ y3r = -oo;
+ y2 = y4 = .5h - vair_corr;
+ y2l := y4l := .52h;
+ penstroke pulled_arc.e(1, 2) & pulled_arc.e(2, 3)
+ & pulled_arc.e(3, 4) & pulled_arc.e(4, 1) & cycle; % bowl
+ penlabels(1, 2, 3, 4);
+ set_letter_join(o, x1, .5w#);
+ set_letter_join(o.horn_, x1 + .1dot_size, .5w# + .1dot_size#);
+ set_horn_join(o, pulled_arc.l(4, 1), pulled_arc.r(4, 1));
+end_letter;
+
+input vnocomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlui.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlui.mf
new file mode 100644
index 00000000000..91d07df2e95
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlui.mf
@@ -0,0 +1,50 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman Italic lower case "u" precomposed glyphs:
+% Inclusion:
+% u' u` u? u~ u.
+% u+ u+' u+` u+? u+~ u+.
+
+begin_letter(u);
+ set_letter_dimens(u)(
+ 9.5u#, x_height#, 0,
+ 1/3x_height#*slant + .5hair# + .5u#,
+ 0, 0
+ );
+ pickup fine.nib;
+ interim superness := more_super;
+ x0 = 0;
+ x2 = x3 + .25u;
+ pos3(stem, -180);
+ lft x3r = hround(2.5u - .5stem);
+ hook_in(0, 1, 2)(skewed); % opening hook
+ pos2'(stem, -180);
+ z2' = z2;
+ pos4(vair, -90);
+ pos5(hair, 0);
+ x4 = .5[x3, x5];
+ pos6(stem, 0);
+ rt x6r = hround(w - 2.5u + .5stem);
+ x5 = x6 = x7;
+ x9 = w;
+ hook_out(7, 8, 9); % closing hook
+ y3 = .7[y4, y5];
+ bot y4r=-oo;
+ y5 = .57h;
+ y6 + .5stem = h;
+ filldraw stroke z2'e{ - u, -x_height}
+ ... super_arc.e(3, 4) ... {up}z5e; % left stem and arc
+ filldraw circ_stroke z6e -- z7e; % right stem
+ math_fit( - 2/3x_height#*slant + .5hair# + .5u#, ic#);
+ penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
+ set_letter_join(u, x4, .5w#);
+ set_letter_join(u.horn_, x4, .5w#);
+ set_letter_join(u.dot_, x4 + .5u, .5w# + .5u#);
+ set_horn_join(u, z5 -- z6, z5 -- z6);
+end_letter;
+
+input vnucomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlur.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlur.mf
new file mode 100644
index 00000000000..10b02f81e95
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlur.mf
@@ -0,0 +1,70 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman lower case "u" precomposed glyphs:
+% Inclusion:
+% u' u` u? u~ u.
+% u+ u+' u+` u+? u+~ u+.
+
+begin_letter(u);
+ set_letter_dimens(u)(
+ 10u#, x_height#, 0,
+ x_height#*slant - serif_fit# + .5stem# - 2u#,
+ serif_fit# + stem_shift#, serif_fit# - stem_shift#
+ );
+ numeric light_vair;
+ light_vair = vair if hefty: -vround 2vair_corr fi;
+ if light_vair < fine.breadth: light_vair := fine.breadth;
+ fi
+ pickup tiny.nib;
+ pos1(stem, 0);
+ pos2(stem, 0);
+ pos3(stem, 0);
+ pos4(stem', 0);
+ lft x1l = hround(2.5u - .5stem);
+ x1 = x2;
+ x3 = w - x1;
+ x3r = x4r;
+ if serifs: top y1 = h+min(oo, serif_drop);
+ bot y4 = -min(oo, serif_drop);
+ else: top y1 = h;
+ bot y4 = 0;
+ fi
+ pos0(stem, 0);
+ pos0'(stem', 0);
+ x0 = x3;
+ x0' = x4;
+ y0 = y0';
+ penpos2'(stem - fine, -180);
+ z2' = z2;
+ y3 = y1;
+ y2 = .5bar_height;
+ penpos5(max(eps, light_vair - fine), -90);
+ penpos6(thin_join - fine, 0);
+ y6 = y0 = 2/3bar_height;
+ filldraw stroke z1e -- z2e; % left stem
+ filldraw stroke z3e .. z0e -- z0'e .. z4e; % right stem
+ pickup fine.nib;
+ bot y5r=-oo;
+ x5l = .5w - .25u;
+ lft x6l = tiny.lft x0l;
+ (x, y5r) = whatever[z5l, z6l];
+ x5r := max(x, .5[x5, x2'r]);
+ filldraw stroke {{interim superness := hein_super;
+ pulled_arc.e(2', 5)}} & z5e{right} ... {up}z6e; % arc
+ if serifs: sloped_serif.l(1, 2, a, 1/3, jut, serif_drop); % upper left serif
+ sloped_serif.l(3, 0, b, 1/3, jut, serif_drop); % upper right serif
+ sloped_serif.r(4, 0', c, 1/3, jut, min(oo, serif_drop));
+ fi % lower right serif
+ penlabels(1, 2, 3, 4, 5, 7);
+ labels(6);
+ set_letter_join(u, x5, .5w#);
+ set_letter_join(u.horn_, x5 + .3dot_size, .5w# + .3dot_size#);
+ set_letter_join(u.dot_, x5 + .5u, .5w# + .5u#);
+ set_horn_join(u, z3 -- z4, z3 -- z4);
+end_letter;
+
+input vnucomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlyi.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlyi.mf
new file mode 100644
index 00000000000..d0c6717298f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlyi.mf
@@ -0,0 +1,57 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman Italic lower case "y" precomposed glyphs:
+% Inclusion:
+% y' y` y? y~ y.
+
+begin_letter(y);
+ set_letter_dimens(y)(
+ 8.5u#, x_height#, desc_depth#,
+ x_height#*slant + .5stem# - u#,
+ 0, 0
+ );
+ pickup fine.nib;
+ interim superness := more_super;
+ x0 = 0;
+ x2 = x3 + .25u;
+ pos3(stem, -180);
+ lft x3r = hround(2.5u - .5stem);
+ hook_in(0, 1, 2)(skewed); % opening hook
+ pos2'(stem, -180);
+ z2' = z2;
+ pos4(vair, -90);
+ pos5(hair, 0);
+ x4 = .5[x3, x5];
+ pos6(stem, 0);
+ rt x6r = hround(w - 1.5u + .5stem);
+ pos7(stem, 0);
+ pos8(vair, -90);
+ y3 = .7[y4, y5];
+ bot y4r=-oo;
+ y5 = .57h;
+ y6 + .5stem = h;
+ y7 = 0;
+ bot y8r=-d - oo;
+ x5 = x6 = x7;
+ x8 = .5w;
+ pos9(hair, -180);
+ pos10(flare, -180);
+ y9=-.5d;
+ lft x9r = hround(2.75u - .5flare);
+ bulb(8, 9, 10); % bulb
+ filldraw stroke z2'e{ - u, -x_height}
+ ... super_arc.e(3, 4) ... {up}z5e; % left stem and arc
+ filldraw circ_stroke z6e --- z7e ... {left}z8e; % right stem and link
+ math_fit( - 2/3x_height#*slant + .5hair# + .5u#, ic# - 1/3x_height#*slant);
+ penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
+ set_letter_join(y, x4, .5w#);
+ set_letter_join(y.dot_, x5, .5w#);
+ vn_dot_shift_y(y) := vn_depth(y) + vn_height(dot_);
+ vn_depth(y) := vn_dot_shift_y(y);
+end_letter;
+
+input vnycomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnlyr.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnlyr.mf
new file mode 100644
index 00000000000..39edb6b398b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnlyr.mf
@@ -0,0 +1,101 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman lower case "y" precomposed glyphs:
+% Inclusion:
+% y' y` y? y~ y.
+
+begin_letter(y);
+ set_letter_dimens(y)(
+ if serifs: 9.5u# else: 9u# fi, x_height#, desc_depth#,
+ x_height#*slant + .25u#,
+ serif_fit# if monospace: +\\.5u#, .5u#+ else: ,fi\\ serif_fit#
+ );
+ numeric left_stem, right_stem, bot_stem, bot_vair, outer_jut;
+ left_stem = fudged.stem - stem_corr;
+ right_stem = fudged.hair if hefty: -2stem_corr fi;
+ bot_stem = fudged.hair if hefty: -8stem_corr fi;
+ bot_vair = Vround(if serifs: vair else: .5[vair, bot_stem] fi);
+ outer_jut = .75jut;
+ x1l = w-x4r = l+letter_fit + outer_jut + .25u;
+ y1 = y4r = h;
+ y2 = y3 = 0;
+ x2l = x3l;
+ numeric alpha, alpha[];
+ x9 = 3u;
+ y9 = bot_vair - d-oo;
+ alpha1 = diag_ratio(2, bot_stem, y1 - y3, x4r - x1l - apex_corr);
+ alpha2 = diag_ratio(1, bot_stem, y1 - y9, x4r - x9);
+ if alpha1 < alpha2: x2l - x1l = x4r - x3r + apex_corr;
+ alpha = alpha1;
+ else: alpha = alpha2;
+ z3l = whatever[z9, z4r - (alpha*bot_stem, 0)];
+ fi
+ penpos3(alpha*bot_stem, 0);
+ penpos4(alpha*right_stem, 0);
+ alpha3 = (y1 ++ (x2l - x1l))/y1;
+ penpos1(alpha3*left_stem, 0);
+ penpos2(alpha3*left_stem, 0);
+ z0 = whatever[z1r, z2r] = z4l + whatever*(z3r - z4r);
+ if y0 > notch_cut: y0 := notch_cut;
+ fill z0 + .5right{up} ... {z4r - z3r}diag_end(0, 4l, 1, 1, 4r, 3r)
+ -- z3r -- z2l -- diag_end(2l, 1l, 1, 1, 1r, 2r){z2 - z1}
+ ... {down}z0 + .5left -- cycle; % left and right diagonals
+ else: fill z0 -- diag_end(0, 4l, 1, 1, 4r, 3r) -- z3r -- z2l
+ -- diag_end(2l, 1l, 1, 1, 1r, 0) -- cycle;
+ fi % left and right diagonals
+ penpos5(alpha*bot_stem, 0);
+ z5r = whatever[z3r, z4r];
+ y5 - .5vair=-.5d;
+ if serifs: numeric light_bulb;
+ light_bulb = hround 7/8[hair, flare];
+ clearpen;
+ penpos6(vair, -90);
+ penpos7(hair, -180);
+ penpos8(light_bulb, -180);
+ x6 = 2u;
+ y6r=-d - oo;
+ y8 - .5light_bulb=-.85d;
+ x8r = hround .35u;
+ fill stroke z3e --- z5e ... {left}z6e;
+ bulb(6, 7, 8); % arc and bulb
+ numeric inner_jut;
+ pickup tiny.nib;
+ prime_points_inside(1, 2);
+ prime_points_inside(4, 3);
+ if rt x1'r + jut + .5u + 1<=lft x4'l - jut: inner_jut = jut;
+ else: rt x1'r + inner_jut + .5u + 1=lft x4'l - inner_jut;
+ fi
+ dish_serif(1', 2, a, 1/3, outer_jut, b, 1/2, inner_jut); % left serif
+ dish_serif(4', 3, c, .6, inner_jut, d, 1/2, outer_jut)(dark); % right serif
+ else: penpos6(bot_vair, -90);
+ x6 = 2.5u;
+ y6r=-d - oo;
+ fill stroke z3e --- z5e ... {left}z6e; % arc
+ pickup fine.nib;
+ pos6'(bot_vair, -90);
+ z6' = z6;
+ pos7(2/3[bot_vair, flare], -85);
+ lft x7l = hround u;
+ bot y7r = vround - .96d - oo;
+ y7l := good.y y7l;
+ filldraw stroke term.e(6', 7, left, 1, 4);
+ fi % arc and terminal
+ penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
+ set_letter_join(y, x3, .5w#);
+ path dot_join_line;
+ dot_join_y := vp(max(vn_depth(y), vn_bot(dot_)) - .5vn_height(dot_));
+ dot_join_line := (0, -dot_join_y) -- (w, -dot_join_y);
+ z2' = whatever[z1, z2];
+ y2' = -dot_join_y;
+ set_letter_join(y.dot_, xpart point xpart(dot_join_line intersectiontimes
+ (z2 -- z2')) of dot_join_line,
+ .5w#);
+ vn_dot_shift_y(y) := max(vn_depth(y), vn_bot(dot_));
+ vn_depth(y.dot_) := vn_dot_shift_y(y);
+end_letter;
+
+input vnycomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnminus.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnminus.mf
new file mode 100644
index 00000000000..6bcce5038d6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnminus.mf
@@ -0,0 +1,39 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+iff monospace:
+cmchar "Hyphen";
+beginchar("-",6u#,x_height#,0);
+italcorr .5x_height#*slant-.5u#;
+adjust_fit(0,0);
+numeric thickness; thickness=if hefty:bar else:.75[hair,stem] fi;
+pickup crisp.nib; pos1(thickness,90); pos2(thickness,90);
+top y1r=top y2r=vround(.5h+.5thickness); rt x2=hround(w-u)+eps;
+if monospace: x2=w-x1 else: lft x1=hround .2u-eps fi;
+filldraw stroke z1e--z2e; % bar
+penlabels(1,2); endchar;
+
+% ecchar "Less than sign";
+% compute_spread(5/4x_height#,3/2x_height#);
+% beginchar("<",14u#,v_center(spread#+rule_thickness#));
+% italcorr h#*slant-u#;
+% adjust_fit(0,0); pickup extra_rule.nib;
+% lft x2=hround 1.5u-eps; x1=x3=w-x2;
+% y1-y3=spread; y2=.5[y1,y3]=math_axis;
+% x2' = x2; y2' = y2 if known gen_t5_supp: - .1 fi;
+% draw z1--z2...z2'--z3; % diagonals
+% labels(1,2,2',3); endchar;
+%
+% ecchar "Greater than sign";
+% compute_spread(5/4x_height#,3/2x_height#);
+% beginchar(">",14u#,v_center(spread#+rule_thickness#));
+% italcorr math_axis#*slant-u#;
+% adjust_fit(0,0); pickup extra_rule.nib;
+% rt x2=hround(w-1.5u)+eps; x1=x3=w-x2;
+% y1-y3=spread; y2=.5[y1,y3]=math_axis;
+% x2' = x2; y2' = y2 if known gen_t5_supp: - .1 fi;
+% draw z1--z2..z2'--z3; % diagonals
+% labels(1,2,3); endchar;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnmligtb.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnmligtb.mf
new file mode 100644
index 00000000000..58fed0c99df
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnmligtb.mf
@@ -0,0 +1,16 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% ligatures and kerns for monospace fonts
+
+ligtable "`": "`" =: oct"020";
+ligtable "'": "'" =: oct"021";
+ligtable "-": "-" =: oct"025", % number range dash equals "-"
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+ligtable "<": "<" =: oct"023"; % "<<"
+ligtable ">": ">" =: oct"024"; % ">>"
+ligtable ",": "," =: oct"022"; % ",,"
+% ligtable "!": "`" =: oct"275"; % spanish shriek
+% ligtable "?": "`" =: oct"276"; % spanish query
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnocomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnocomp.mf
new file mode 100644
index 00000000000..eb6fa8f3eb6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnocomp.mf
@@ -0,0 +1,65 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define [oO]-based accented letters
+
+vnchar casename "o with horn ";
+define_vnchar_horn(o);
+
+if known gen_t5_supp:
+ let next = endinput;
+else:
+ let next = relax;
+fi % known gen_t5_supp
+next;
+
+vnchar casename "o with acute";
+define_vnchar(o, acute_);
+
+vnchar casename "o with grave";
+define_vnchar(o, grave_);
+
+vnchar casename "o with hook";
+define_vnchar(o, hook_);
+
+vnchar casename "o with tilde";
+define_vnchar(o, tilde_);
+
+vnchar casename "o with dot";
+define_vnchar_dot(o);
+
+vnchar casename "o with circumflex ";
+define_vnchar(o, circumflex_);
+
+vnchar casename "o with circumflex and acute";
+define_vnchar(o, circumflex_.acute_);
+
+vnchar casename "o with circumflex and grave";
+define_vnchar(o, circumflex_.grave_);
+
+vnchar casename "o with circumflex and hook";
+define_vnchar(o, circumflex_.hook_);
+
+vnchar casename "o with circumflex and tilde";
+define_vnchar(o, circumflex_.tilde_);
+
+vnchar casename "o with circumflex and dot";
+define_vnchar_dot_ac(o, circumflex_);
+
+vnchar casename "o with horn and acute";
+define_vnchar_horn_ac(o, acute_);
+
+vnchar casename "o with horn and grave";
+define_vnchar_horn_ac(o, grave_);
+
+vnchar casename "o with horn and hook";
+define_vnchar_horn_ac(o, hook_);
+
+vnchar casename "o with horn and tilde";
+define_vnchar_horn_ac(o, tilde_);
+
+vnchar casename "o with horn and dot";
+define_vnchar_horn_dot(o);
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr10.mf
new file mode 100644
index 00000000000..ab2b6a1eced
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecrm;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr12.mf
new file mode 100644
index 00000000000..75f768d8bc9
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr12.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=12;
+input vnbase;
+input ecrm;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr17.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr17.mf
new file mode 100644
index 00000000000..ce039f402b6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr17.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=17;
+input vnbase;
+input ecrm;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr5.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr5.mf
new file mode 100644
index 00000000000..34081c7eea6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr5.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=5;
+input vnbase;
+input ecrm;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr6.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr6.mf
new file mode 100644
index 00000000000..51aa1512ca8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr6.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=6;
+input vnbase;
+input ecrm;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr7.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr7.mf
new file mode 100644
index 00000000000..ac5e9c4c212
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr7.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=7;
+input vnbase;
+input ecrm;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr8.mf
new file mode 100644
index 00000000000..55696dc0787
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr8.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=8;
+input vnbase;
+input ecrm;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnr9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnr9.mf
new file mode 100644
index 00000000000..4eed29ea529
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnr9.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=9;
+input vnbase;
+input ecrm;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnrligtb.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnrligtb.mf
new file mode 100644
index 00000000000..ab01c05540b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnrligtb.mf
@@ -0,0 +1,211 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% ligatures and kerns for roman fonts
+
+ligtable
+ "`": "`"=:oct"020",
+ oct"020" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "'": "'"=:oct"021",
+ oct"021" kern 2u#,
+ "?" kern 2u#,
+ "!" kern 2u#;
+
+ligtable
+ "-": "-" =: oct"025",
+ oct"177" =: oct"177"; % <hyphen><hyphenchar> => <hyphenchar>
+
+ligtable
+ oct"025": "-"=:oct"026"; % "---" => emdash
+
+ligtable "<": "<" =: oct"023"; % "<<"
+ligtable ">": ">" =: oct"024"; % ">>"
+ligtable ",": "," =: oct"022"; % ",,"
+
+k#:=-.5u#; ku#:=-1u#; kk#:=-1.5u#; kkk#:=-2u#; % four degrees of kerning
+
+ligtable boundarychar:
+ oct"020" kern -kk#, oct"021" kern -kk#, oct"022" kern -kk#,
+ oct"055" kern -kk#, oct"140" kern -kk#, oct"047" kern -kk#;
+
+ligtable oct"022":
+ oct"015" kern 2u#, "," kern 2u#,
+ oct"015":
+ oct"022" kern 2u#,
+ "j" kern -kkk#, oct"032" kern -kkk#, "g" kern -ku#,
+ y_fam(kern -ku#,)
+ "v" kern kk#, "w" kern ku#, "V" kern kkk#, "W" kern kk#,
+ Y_fam(kern kk#,)
+ O_fam(kern k#,)
+ lig_CGQ_table(k#),
+ boundarychar kern -kk#;
+
+ligtable oct"020":
+ oct"140" kern 2u#, oct"020" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"021":
+ oct"047" kern 2u#, oct"021" kern 2u#, boundarychar kern -kk#;
+
+ligtable oct"024": % ">>"
+ "." kern kk#, "," kern kk#;
+
+ligtable
+ "k": "W" kern kk#, "V" kern kk#,
+ if serifs: "v": a_fam(kern -u#,) fi
+ "w": e_fam(kern k#,)
+ a_fam(kern k#,)
+ o_fam(kern k#,)
+ "c" kern k#;
+
+ligtable
+ "P": A_fam(kern kk#,)
+ y_fam(:)
+ o_fam(kern k#,)
+ e_fam(kern k#,)
+ a_fam(kern k#,)
+ "." kern kk#,
+ "," kern kk#;
+ligtable
+ "F":"V": "W":
+ if serifs:
+ o_fam(kern kk#,)
+ a_fam(kern kk#,)
+ e_fam(kern kk#,)
+ y_fam(kern kk#,)
+ u_fam(kern kk#,)
+ "r" kern kk#,
+ "v" kern kk#,
+ "s" kern kk#,
+ "c" kern kk#,
+ d_fam(kern kk#,)
+ "g" kern kk#,
+ "m" kern kk#,
+ "n" kern kk#,
+ "p" kern kk#,
+ "w" kern kk#,
+ "z" kern kk#,
+ A_fam(kern kkk#,)
+ else:
+ o_fam(kern k#,)
+ a_fam(kern k#,)
+ e_fam(kern k#,)
+ y_fam(kern k#,)
+ u_fam(kern k#,)
+ "r" kern k#,
+ "v" kern k#,
+ "s" kern k#,
+ "c" kern k#,
+ d_fam(kern k#,)
+ "g" kern k#,
+ "m" kern k#,
+ "n" kern k#,
+ "p" kern k#,
+ "w" kern k#,
+ "z" kern k#,
+ A_fam(kern kk#,)
+ fi
+ "X": O_fam(kern k#,)
+ lig_CGQ_table(k#);
+
+ligtable "K": if serifs:
+ "v" kern kk#,
+ "w" kern k#,
+ else:
+ "v" kern k#,
+ fi
+ o_fam(kern k#,)
+ lig_CGQ_table(k#);
+
+ligtable
+ "T":
+ y_fam(kern if serifs: k# else: kk# fi,)
+ Y_fam(:)
+ A_fam(kern kk#,)
+ e_fam(kern kk#,)
+ o_fam(kern kk#,)
+ "r" kern kk#,
+ a_fam(kern kk#,)
+ u_fam(kern kk#,)
+ "n" kern kk#,
+ oct"031" kern kk#, % \i
+ "c" kern kk#,
+ d_fam(kern kk#,)
+ "g" kern kk#,
+ "p" kern kk#,
+ "s" kern kk#,
+ "v" kern kk#,
+ "w" kern kk#,
+ "x" kern kk#,
+ "z" kern kk#;
+ligtable
+ O_fam(:)
+ D_fam(:)
+ "X" kern k#,
+ "W" kern k#,
+ A_fam(kern k#,)
+ Y_fam(kern k#,)
+ "V" kern k#;
+if serifs:
+ligtable
+ "m": "n": "h":
+ "W" kern kk#, "V" kern kk#,
+ "t" kern k#,
+ u_fam(kern k#,)
+ "b" kern k#,
+ y_fam(kern k#,)
+ "v" kern k#,
+ "w" kern k#;
+ligtable
+ "c":
+ "h" kern k#,
+ "k" kern k#;
+fi
+ligtable
+ o_fam(:)
+ "b": "p": e_fam(kern -k#,)
+ o_fam(kern -k#,)
+ "x" kern k#,
+ d_fam(kern -k#,)
+ "c" kern -k#,
+ "q" kern -k#,
+ a_fam(:)
+ if serifs:
+ "v" kern k#,
+ "j" kern u#,
+ else:
+ "r" kern k#,
+ fi
+ "t":
+ y_fam(kern k#,)
+ u_fam(:)
+ "w" kern k#;
+ligtable
+ A_fam(:)
+ y_fam(kern if serifs: kk# else: k# fi,)
+ "v" kern if serifs: kkk# else: k# fi,
+ "w" kern if serifs: kk# else: k# fi,
+ "c" kern k#,
+ d_fam(kern k#,)
+ e_fam(kern k#,)
+ o_fam(kern k#,)
+ "q" kern k#,
+ if serifs: "R": fi
+ "t" kern k#,
+ lig_CGQ_table(k#),
+ O_fam(kern k#,)
+ U_fam(kern k#,)
+ "L":
+ "T" kern kk#,
+ Y_fam(kern kk#,)
+ "V" kern kkk#,
+ "W" kern kkk#;
+ligtable "g": "j" kern -k#; % logjam
+ligtable "I": "I" kern -k#; % Richard III
+ligtable e_fam(:) "V" kern kk#; % eV
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnrm.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnrm.mf
new file mode 100644
index 00000000000..f0d74ef59dd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnrm.mf
@@ -0,0 +1,97 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% ecrm.mf
+%
+% (c) Copyright 1995, 1996, 1997 J"org Knappen
+% (c) Copyright 1990, 1992 Norbert Schwarz
+%
+% This file is part of ecfonts version 1.0
+%
+% Please read the files 00readme.txt, 00inst.txt, 00error.txt, and
+% copyrite.txt for further information
+%
+% You find some documentation in ecdoc.tex (needs LaTeX2e)
+%
+% Content:
+%
+% Parameter for
+%
+% European Computer Modern Roman Medium
+%
+%
+font_identifier:="ECRM";
+font_size gensize*pt#;
+basedef ( 5, 6, 7, 8, 9, 10, 12, 17.28);
+gendef [1/36pt#]( u# )( 12.5, 14, 15.5, 17, 18.5, 20, 23.5, 32.5);
+gendef [1/36pt#]( width_adj# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( serif_fit# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( cap_serif_fit# )( 2, 2.8, 3.5, 4.1, 4.6, 5, 5.8, 8);
+gendef [1/36pt#]( letter_fit# )( 5, 3, 2, 0, 0, 0, 0, [-.1]);
+gendef [1/36pt#]( body_height# )( 135, 162, 189, 216, 243, 270, 324, 466);
+gendef [1/36pt#]( asc_height# )( 125, 150, 175, 200, 225, 250, 300, 432);
+gendef [1/36pt#]( cap_height# )( 123, 147.6, 172.2, 196.8, 221.4, 246, 295.2, 425);
+gendef [1/36pt#]( fig_height# )( 116, 139.2, 162.4, 185.6, 208.8, 232, 278.4, 401);
+gendef [1/36pt#]( x_height# )( 77.5, 93, 108.5, 124, 139.5, 155, 186, 267.8);
+gendef [1/36pt#]( math_axis# )( 45, 54, 63, 72, 81, 90, 108, 155.5);
+gendef [1/36pt#]( bar_height# )( 43.5, 52.2, 60.9, 69.6, 78.3, 87, 104.4, 150);
+gendef [1/36pt#]( comma_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( desc_depth# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( acc_height# )( 42.5, 49, 55.5, 62, 68.5, 75, 90, 127.5);
+%gendef [1/36pt#]( dot_height# )( 32, 36.6, 41.2, 46, 50.4, 56, 67.2, 90);
+gendef [1/36pt#]( dot_height# )( 42, 46.6, 51.2, 56, 60.4, 66, 77.2, 100);
+gendef [1/36pt#]( udot_height# )( 33.5, 38.5, 43.3, 48.4, 53.1, 59, 70.8, 95);
+gendef [1/36pt#]( crisp# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( tiny# )( 6, 7, 7, 8, 8, 8, 8, 8);
+gendef [1/36pt#]( fine# )( 5, 6, 6, 7, 7, 7, 7, 7);
+gendef [1/36pt#]( thin_join# )( 5, 6, 6, 7, 7, 7, 7.5, 9);
+gendef [1/36pt#]( hair# )( 7.5, 8, 8.5, 9, 9, 9, 9.5, 11);
+gendef [1/36pt#]( stem# )( 16, 18, 20, 22, 24, 25, 28, 33);
+gendef [1/36pt#]( curve# )( 18, 20.5, 23, 25.5, 28, 30, 33, 40);
+gendef [1/36pt#]( ess# )( 12, 17, 21, 23, 25, 27, 30, 35);
+gendef [1/36pt#]( flare# )( 19, 21, 24, 27, 30, 33, 36, 45);
+gendef [1/36pt#]( dot_size# )( 22, 26, 29, 32, 35, 38, 42, 51);
+gendef [1/36pt#]( cap_hair# )( 8, 8.5, 9, 9.5, 10, 11, 11.5, 13);
+gendef [1/36pt#]( cap_stem# )( 19, 21.5, 24, 26.5, 29, 32, 35, 41);
+gendef [1/36pt#]( cap_curve# )( 21, 24, 27, 30, 33, 37, 40, 47);
+gendef [1/36pt#]( cap_ess# )( 14, 19, 23, 27, 31, 35, 38, 43);
+gendef [pt#]( rule_thickness#)( .28, .31, .34, .36, .38, .4, .44, .6);
+gendef [1/36pt#]( dish# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( bracket# )( 10, 12, 14, 16, 18, 20, 24, 34);
+gendef [1/36pt#]( jut# )( 15, 17, 19, 22, 25, 28, 33, 42);
+gendef [1/36pt#]( cap_jut# )( 20, 23, 26, 29, 33, 37, 41, 50);
+gendef [1/36pt#]( beak_jut# )( 6, 6.8, 7.6, 8.4, 9.2, 10, 11.4, 15);
+gendef [1/36pt#]( beak# )( 35, 42, 49, 56, 63, 70, 84, 121);
+gendef [1/36pt#]( vair# )( 6, 7, 7, 8, 8, 8, 8.5, 10);
+gendef [pt#]( notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( slab# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_bar# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [1/36pt#]( cap_band# )( 8, 8.5, 9, 9.5, 10, 11, 12.5, 16);
+gendef [pt#]( cap_notch_cut# )( 5, 6, 7, 8, 9, 10, 12, 17);
+gendef [1/36pt#]( serif_drop# )( 2, 2.4, 2.8, 3.2, 3.6, 4, 4.8, 7);
+gendef [1/36pt#]( stem_corr# )( .7, .8, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( vair_corr# )( .5, .7, .9, 1, 1, 1, 1, 1);
+gendef [1/36pt#]( apex_corr# )( 0, 0, 0, 0, 0, 0, 0, 0);
+gendef [1/36pt#]( o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+gendef [1/36pt#]( apex_o# )( 4, 4.5, 5, 6, 7, 8, 9, 10);
+slant:=0;
+gendef ( fudge )( 1, 1, 1, 1, 1, 1, 1, 1);
+gendef ( math_spread )( 1, .8, .6, .4, .2, 0, [-.2], [-.2]);
+superness:=1/sqrt 2;
+superpull:=1/6;
+beak_darkness:=11/30;
+square_dots:=false;
+hefty:=false;
+serifs:=true;
+monospace:=false;
+variant_g:=false;
+low_asterisk:=false;
+math_fitting:=false;
+
+clear_extra_memory;
+
+generate vnroman
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnroman.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnroman.mf
new file mode 100644
index 00000000000..daab6e21e78
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnroman.mf
@@ -0,0 +1,119 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% driver for roman fonts (based on exroman.mf)
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input exaccess; % accessories for polish special letters
+input expseudo; % pseudoparameters
+
+mode_setup;
+font_setup;
+pseudo_setup;
+
+if known testing:
+ set_lowercase;
+ input vnaccent;
+ input_lr_fam;
+ set_uppercase;
+ input vnaccent;
+ input_ur_fam;
+ let next = endinput;
+else:
+ let next = relax;
+fi % known testing
+next;
+
+if known gen_t5_supp:
+ input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040)
+ input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !)
+ input exaccent; %
+ input exsign; % zero for mille, " # $ % @ pound sign
+ set_lowercase;
+ input vnaccent;
+ input vndothook;% dotbelow and hookabove
+ input vnminus; % minus iff monospace:
+ input vnlacc; % lowercase accents
+ input vnlor; % ohorn
+ input vnlur; % uhorn
+ input vnldr; % dcroat
+ set_uppercase;
+ input vnaccent;
+ input vnuacc; % lowercase accents
+ input vnuor; % Ohorn
+ input vnuur; % Uhorn
+ input vnudr; % Dcroat
+ let next = endinput;
+else:
+ let next = relax;
+fi % known gen_t5_supp
+next;
+
+
+input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040)
+input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !)
+input exaccent; %
+input exsign; % zero for mille, " # $ % @ pound sign
+input exrlig; % dotless i,j; letter ligatures ff fi fl ffi ffl
+input exromp; % (roman punctuation) & ? (spanish ?)
+input exrulett; % upper case (majuscules)
+input exrllett; % lower case (minuscules)
+input exrdigit; % roman digits
+
+set_lowercase; % set `case_' and `vncase' for lowercase letters
+input vnaccent; % define the accents for lowercase letters
+input vnlar; % modified/accented "a"
+input vnler; % modified/accented "e"
+input vnlir; % accented "i"
+input vnlor; % modified/accented "o"
+input vnlur; % modified/accented "u"
+input vnlyr; % accented "y"
+input vnldr; % d-bar
+
+input vndothook;% dotbelow and hookabove
+input vnminus; % minus for monospace font
+
+set_uppercase; % set `case_' and `vncase' for uppercase letters
+input vnaccent; % define the accents for uppercase letters
+input vnuar; % modified/accented "A"
+input vnuer; % modified/accented "E"
+input vnuir; % accented "I"
+input vnuor; % modified/accented "O"
+input vnuur; % modified/accented "U"
+input vnuyr; % accented "Y"
+input vnudr; % D-bar
+
+%
+% Fontparameter
+%
+font_coding_scheme := "Vietnamese TeX Font Encoding";
+boundarychar := oct"027";
+font_slant slant;
+font_x_height x_height#;
+ font_cap_height cap_height#;
+ font_asc_height asc_height#;
+ font_acc_cap_height (cap_height#+acc_height#);
+ font_desc_depth desc_depth#;
+ font_max_height (max(asc_height#,body_height#, cap_height#+acc_height#));
+ font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+ font_baselineskip max(1.2*designsize,body_height#+paren_depth#);
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+
+if monospace:
+ font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ input vnmligtb; % do the ligature programs for monospaced fonts
+else:
+ font_normal_space 6u# + 2letter_fit#;
+ font_normal_stretch 3u#;
+ font_normal_shrink 2u#;
+ font_quad 18u# + 4letter_fit#;
+ font_extra_space 2u#;
+ input vnrligtb; % do the ligature programs, not for monospaced fonts
+fi
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsl10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl10.mf
new file mode 100644
index 00000000000..2ec52bdfdf4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecsl;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsl12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl12.mf
new file mode 100644
index 00000000000..399da5a8a2e
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl12.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=12;
+input vnbase;
+input ecsl;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsl8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl8.mf
new file mode 100644
index 00000000000..393b97e72e6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl8.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=8;
+input vnbase;
+input ecsl;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsl9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl9.mf
new file mode 100644
index 00000000000..1bed44e8e12
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsl9.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=9;
+input vnbase;
+input ecsl;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnsltt10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnsltt10.mf
new file mode 100644
index 00000000000..27cdc63c594
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnsltt10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecst;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss10.mf
new file mode 100644
index 00000000000..e083af4645b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecss;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss12.mf
new file mode 100644
index 00000000000..6d8b182ac3a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss12.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=12;
+input vnbase;
+input ecss;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss17.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss17.mf
new file mode 100644
index 00000000000..49d097d2205
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss17.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=17;
+input vnbase;
+input ecss;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss8.mf
new file mode 100644
index 00000000000..3e69c28b94c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss8.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=8;
+input vnbase;
+input ecss;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnss9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnss9.mf
new file mode 100644
index 00000000000..a4b646a0e8b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnss9.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=9;
+input vnbase;
+input ecss;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssbx10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssbx10.mf
new file mode 100644
index 00000000000..cc8d79408a0
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssbx10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecsx;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssdc10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssdc10.mf
new file mode 100644
index 00000000000..36be405eb9c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssdc10.mf
@@ -0,0 +1,7 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+input vnbase;
+input ecssdc10;
+end.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi10.mf
new file mode 100644
index 00000000000..5802b1bbb44
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecsi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi12.mf
new file mode 100644
index 00000000000..c523e8c979d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi12.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=12;
+input vnbase;
+input ecsi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi17.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi17.mf
new file mode 100644
index 00000000000..72aa1da2a6c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi17.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=17;
+input vnbase;
+input ecsi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi8.mf
new file mode 100644
index 00000000000..6f00ec6ccf4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi8.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=8;
+input vnbase;
+input ecsi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssi9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi9.mf
new file mode 100644
index 00000000000..3a91300a3ce
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssi9.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=9;
+input vnbase;
+input ecsi;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssq8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssq8.mf
new file mode 100644
index 00000000000..87cbe040bef
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssq8.mf
@@ -0,0 +1,7 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+input vnbase;
+input ecsq8;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnssqi8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnssqi8.mf
new file mode 100644
index 00000000000..1d407b8e03f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnssqi8.mf
@@ -0,0 +1,7 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+input vnbase;
+input ecqi8;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntcsc10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntcsc10.mf
new file mode 100644
index 00000000000..02eb8d63e89
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntcsc10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ectc;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntextit.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntextit.mf
new file mode 100644
index 00000000000..391925d8d31
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntextit.mf
@@ -0,0 +1,120 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% driver for italic fonts (based on extextit.mf)
+
+version_check(1,0); % |version_check| was introduced in dc1.3
+
+input exaccess; % accessories for polish special letters
+input expseudo; % pseudoparameters
+
+mode_setup;
+font_setup;
+pseudo_setup;
+
+if known testing:
+ set_lowercase;
+ input vnaccent;
+ input_li_fam;
+ set_uppercase;
+ input vnaccent;
+ input_ur_fam;
+ let next = endinput;
+else:
+ let next = relax;
+fi % known testing
+next;
+
+if known gen_t5_supp:
+ input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040)
+ input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !)
+ input exaccent; %
+ input exsign; % zero for mille, " # $ % @ pound sign
+ set_lowercase;
+ input vnaccent;
+ input vndothook;% dotbelow and hookabove
+ input vnminus; % minus iff monospace:
+ input vnlacc; % lowercase accents
+ input vnloi; % ohorn
+ input vnlui; % uhorn
+ input vnldi; % dcroat
+ set_uppercase;
+ input vnaccent;
+ input vnuacc; % lowercase accents
+ input vnuor; % Ohorn
+ input vnuur; % Uhorn
+ input vnudr; % Dcroat
+ let next = endinput;
+else:
+ let next = relax;
+fi % known gen_t5_supp
+next;
+
+input exbraces; % ^ ~ cwm ( ) < | > [ ] \ { } _ - (177) space (040)
+input expunct; % < << > >> ! ` ' * + , . / = ; : (spanish !)
+input exaccent; %
+input exsign; % zero for mille, " # $ % @ pound sign
+input exilig; % dotless i,j; letter ligatures ff fi fl ffi ffl
+input exitalp; % $ ? # &
+input exrulett; % upper case (majuscules)
+input exillett; % lower case (minuscules)
+input exidigit; % digits
+
+set_lowercase; % set `case_' and `vncase' for lowercase letters
+input vnaccent; % define the accents for lowercase letters
+input vnlai; % modified/accented "a"
+input vnlei; % modified/accented "e"
+input vnlii; % accented "i"
+input vnloi; % modified/accented "o"
+input vnlui; % modified/accented "u"
+input vnlyi; % accented "y"
+input vnldi; % d-bar
+
+input vndothook;% dotbelow and hookabove
+input vnminus; % minus iff monospace:
+
+set_uppercase; % set `case_' and `vncase' for uppercase letters
+input vnaccent; % define the accents for uppercase letters
+input vnuar; % modified/accented "A"
+input vnuer; % modified/accented "E"
+input vnuir; % accented "I"
+input vnuor; % modified/accented "O"
+input vnuur; % modified/accented "U"
+input vnuyr; % accented "Y"
+input vnudr; % D-bar
+
+%
+% Fontparameter
+%
+font_coding_scheme := "Vietnamese TeX Font Encoding";
+boundarychar := oct"027";
+font_slant slant;
+font_x_height x_height#;
+font_cap_height cap_height#;
+font_asc_height asc_height#;
+font_acc_cap_height (cap_height#+acc_height#);
+font_desc_depth desc_depth#;
+font_max_height (max(asc_height#,body_height#,
+ cap_height#+acc_height#));
+font_max_depth (max(desc_depth#,paren_depth#,the_ogonek_depth#));
+% font_digit_width % set inside the digits file
+% font_cap_stem % set after the programme of the capital I
+font_baselineskip max(1.2*designsize,body_height#+paren_depth#);
+
+if monospace:
+ font_normal_space 9u#; % no stretching or shrinking
+ font_quad 18u#;
+ font_extra_space 9u#;
+ letter_fit#:=letter_fit:=0;
+ input vnmligtb; % do the ligature programmes for monospaced fonts
+else:
+ font_normal_space 6u#+2letter_fit#;
+ font_normal_stretch 3u#;
+ font_normal_shrink 2u#;
+ font_quad 18u#+4letter_fit#;
+ font_extra_space 2u#;
+ input vniligtb; % do the ligature programmes for proportionally spaced fonts
+fi
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti10.mf
new file mode 100644
index 00000000000..358f976f363
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecti;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti12.mf
new file mode 100644
index 00000000000..f240fd61d3d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti12.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=12;
+input vnbase;
+input ecti;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti7.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti7.mf
new file mode 100644
index 00000000000..73adbda21f6
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti7.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=7;
+input vnbase;
+input ecti;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti8.mf
new file mode 100644
index 00000000000..61b918fd7eb
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti8.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=8;
+input vnbase;
+input ecti;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnti9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnti9.mf
new file mode 100644
index 00000000000..2cd6b5ad561
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnti9.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=9;
+input vnbase;
+input ecti;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntt10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntt10.mf
new file mode 100644
index 00000000000..ae989a1cf16
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntt10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ectt;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntt12.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntt12.mf
new file mode 100644
index 00000000000..d22c26d62e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntt12.mf
@@ -0,0 +1,9 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=12;
+input vnbase;
+input ectt;
+bye.
+relax;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntt8.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntt8.mf
new file mode 100644
index 00000000000..54336b533a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntt8.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=8;
+input vnbase;
+input ectt;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vntt9.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vntt9.mf
new file mode 100644
index 00000000000..03052a34f72
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vntt9.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=9;
+input vnbase;
+input ectt;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnu10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnu10.mf
new file mode 100644
index 00000000000..49e45f08c49
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnu10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecui;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuacc.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuacc.mf
new file mode 100644
index 00000000000..aa4616c9be7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuacc.mf
@@ -0,0 +1,28 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define uppercase accents
+
+vnchar casename "grave accent";
+define_vnaccent(135, grave_);
+
+vnchar casename "acute accent";
+define_vnaccent(136, acute_);
+
+vnchar casename "circumflex accent";
+define_vnaccent(137, circumflex_);
+
+vnchar casename "tilde accent";
+define_vnaccent(138, tilde_);
+
+vnchar casename "dot accent";
+define_vnaccent(139, dot_);
+
+vnchar casename "breve accent";
+define_vnaccent(140, breve_);
+
+vnchar casename "hook accent";
+define_vnaccent(141, hook_);
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuar.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuar.mf
new file mode 100644
index 00000000000..8f7aa111941
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuar.mf
@@ -0,0 +1,65 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman upper case "A" precomposed glyphs:
+% Inclusion:
+% A' A` A? A~ A.
+% A( A(' A(` A(? A(~ A(.
+% A^ A^' A^` A^? A^~ A^.
+
+begin_letter(a);
+ set_letter_dimens(a)(
+ 13u#, cap_height#, 0,
+ 0,
+ cap_serif_fit#, cap_serif_fit#
+ );
+ numeric left_stem, right_stem, outer_jut, alpha;
+ right_stem = cap_stem - stem_corr;
+ left_stem = min(cap_hair if hefty: -3stem_corr fi, right_stem);
+ outer_jut = .8cap_jut;
+ x1l = w - x4r = l + letter_fit + outer_jut + .5u;
+ y1 = y4 = 0;
+ x2 - x1 = x4 - x3;
+ x3r = x2r + apex_corr;
+ y2 = y3 = h+apex_o + apex_oo;
+ alpha = diag_ratio(2, left_stem, y2 - y1, x4r - x1l - apex_corr);
+ penpos1(alpha*left_stem, 0);
+ penpos2(alpha*left_stem, 0);
+ penpos3(alpha*right_stem, 0);
+ penpos4(alpha*right_stem, 0);
+ z0 = whatever[z1r, z2r] = whatever[z3l, z4l];
+ if y0 < h-cap_notch_cut: y0 := h - cap_notch_cut;
+ fill z0 + .5right{down} ... {z4 - z3}diag_end(3l, 4l, 1, 1, 4r, 3r)
+ -- diag_end(4r, 3r, 1, 1, 2l, 1l) -- diag_end(2l, 1l, 1, 1, 1r, 2r){z2 - z1}
+ ... {up}z0 + .5left -- cycle; % left and right diagonals
+ else: fill z0 -- diag_end(0, 4l, 1, 1, 4r, 3r) -- diag_end(4r, 3r, 1, 1, 2l, 1l)
+ -- diag_end(2l, 1l, 1, 1, 1r, 0) -- cycle;
+ fi % left and right diagonals
+ penpos5(whatever, angle(z2 - z1));
+ z5 = whatever[z1, z2];
+ penpos6(whatever, angle(z3 - z4));
+ z6 = whatever[z3, z4];
+ y6 = y5;
+ if hefty: y5r else: y5 fi =5/12y0;
+ y5r - y5l = y6r - y6l = cap_band;
+ penstroke z5e -- z6e; % bar line
+ if serifs: numeric inner_jut;
+ pickup tiny.nib;
+ prime_points_inside(1, 2);
+ prime_points_inside(4, 3);
+ if rt x1'r + cap_jut + .5u + 1<=lft x4'l - cap_jut: inner_jut = cap_jut;
+ else: rt x1'r + inner_jut + .5u + 1=lft x4'l - inner_jut;
+ fi
+ dish_serif(1', 2, a, 1/2, outer_jut, b, .6, inner_jut)(dark); % left serif
+ dish_serif(4', 3, c, 1/2, inner_jut, d, 1/3, outer_jut);
+ set_letter_join(a, max(x2, x3), 6.5u#);
+ else:
+ set_letter_join(a, x0, 6.5u#);
+ fi % right serif
+ penlabels(0, 1, 2, 3, 4, 5, 6);
+end_pic;
+
+input vnacomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnucomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnucomp.mf
new file mode 100644
index 00000000000..e2088689bde
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnucomp.mf
@@ -0,0 +1,47 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define [uU]-based accented letters
+
+vnchar casename "u with horn ";
+define_vnchar_horn(u);
+
+if known gen_t5_supp:
+ let next = endinput;
+else:
+ let next = relax;
+fi % known gen_t5_supp
+next;
+
+vnchar casename "u with acute";
+define_vnchar(u, acute_);
+
+vnchar casename "u with grave";
+define_vnchar(u, grave_);
+
+vnchar casename "u with hook";
+define_vnchar(u, hook_);
+
+vnchar casename "u with tilde";
+define_vnchar(u, tilde_);
+
+vnchar casename "u with dot";
+define_vnchar_dot(u);
+
+vnchar casename "u with horn and acute";
+define_vnchar_horn_ac(u, acute_);
+
+vnchar casename "u with horn and grave";
+define_vnchar_horn_ac(u, grave_);
+
+vnchar casename "u with horn and hook";
+define_vnchar_horn_ac(u, hook_);
+
+vnchar casename "u with horn and tilde";
+define_vnchar_horn_ac(u, tilde_);
+
+vnchar casename "u with horn and dot";
+define_vnchar_horn_dot(u);
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnudr.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnudr.mf
new file mode 100644
index 00000000000..f1567638b3c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnudr.mf
@@ -0,0 +1,58 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman "D-bar" precomposed glyph:
+% Inclusion:
+% DD
+
+numeric bar_thickness#;
+bar_thickness# := vair#;
+define_whole_pixels(bar_thickness);
+
+vnchar casename "d with bar";
+beginchar(vn_code(d.bar_), 13.5u#, cap_height#, 0);
+ italcorr .7cap_height# * slant - .5u#;
+ adjust_fit(cap_serif_fit#, 0);
+ pickup tiny.nib;
+ pos1(cap_stem', 0);
+ pos2(cap_stem', 0);
+ lft x1l = lft x2l = hround max(2u, 3u - .5cap_stem');
+ top y1 = h;
+ bot y2 = 0;
+ filldraw stroke z1e -- z2e; % stem
+ penpos3(cap_band, 90);
+ penpos4(cap_band, 90);
+ penpos5(cap_curve - stem_corr, 0);
+ penpos6(cap_band, -90);
+ penpos7(cap_band, -90);
+ z3r = top z1;
+ y4 = y3;
+ y5 = .51[y4, y6];
+ y6 = y7;
+ z7r = bot z2;
+ x4 = x6 = .5w + .25u;
+ x5r = hround(w - u);
+ x4l := x6l := x4 - .25cap_curve;
+ fill stroke z3e .. pulled_arc.e(4, 5) & pulled_arc.e(5, 6) .. z7e;% lobe
+ if serifs:
+ nodish_serif(1, 2 ,a ,1/3, cap_jut, b, 1/3, .5cap_jut); % upper serif
+ nodish_serif(2, 1, c, 1/3, cap_jut, d, 1/3, .5cap_jut); % lower serif
+ fi
+ pos8(bar_thickness, 90);
+ pos9(bar_thickness, 90);
+ top y8r = top y9r = vround(y5 + .8bar_thickness) + eps;
+ if serifs:
+ lft x8 = hround(tiny.lft x2l - max(cap_jut, cap_hair)) - eps;
+ rt x9 = hround(tiny.rt x2r + max(cap_jut, cap_hair)) + eps;
+ else:
+ lft x8 = hround(tiny.lft x2l - .8vair) - eps;
+ rt x9 = hround(tiny.rt x2r + .8vair) + eps;
+ fi
+ filldraw stroke z8e -- z9e; % bar
+ penlabels(1, 2, 3, 4, 5, 6, 7, 8, 9);
+endchar;
+
+endinput;
+
+% eof
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuer.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuer.mf
new file mode 100644
index 00000000000..bda37a19646
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuer.mf
@@ -0,0 +1,72 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman upper case "E" precomposed glyphs:
+% Inclusion:
+% E' E` E? E~ E.
+% E^ E^' E^` E^? E^~ E^.
+
+begin_letter(e);
+ set_letter_dimens(e)(
+ 12u# - width_adj#, cap_height#, 0,
+ cap_height#*slant - beak_jut# - .5u#,
+ cap_serif_fit#, 0
+ );
+ h := vround(h - stem_corr);
+ pickup tiny.nib;
+ pos1(cap_stem, 0);
+ pos2(cap_stem, 0);
+ lft x1l = lft x2l = hround max(2u, 3u - .5cap_stem);
+ top y1 = h;
+ bot y2 = 0;
+ filldraw stroke z1e -- z2e; % stem
+ pickup crisp.nib;
+ pos3(slab, 90);
+ pos4(hair, 0);
+ top y3r = h;
+ x3 = x1;
+ rt x4r = hround(w - u);
+ y4 = good.y(y3l - beak) - eps;
+ arm(3, 4, e, beak_darkness, beak_jut); % upper arm and beak
+ pos5(cap_bar, -90);
+ pos6(hair, 0);
+ top y5l = vround(.52[y2, y1] + .5cap_bar);
+ x5 = x1;
+ pos0(cap_bar, 90);
+ pos7(hair, 0);
+ z0 = z5;
+ x6 = x7;
+ y6 - y5l = y0l - y7;
+ if serifs: rt x6r = hround(w - 4.4u + .5hair);
+ y6 = good.y(y5l + .6beak) + eps;
+ rt x9r = hround(w - .5u);
+ else: rt x6r = hround(w - 1.5u);
+ y6 = y5l + eps;
+ rt x9r = hround(w - .75u);
+ fi
+ arm(5, 6, f, beak_darkness, 0);
+ arm(0, 7, g, beak_darkness, 0); % middle arm and serif
+ pos8(slab if not serifs: +2stem_corr fi, -90);
+ pos9(hair, 0);
+ bot y8r = 0;
+ x8 = x2;
+ y9 = good.y(y8l + 7/6beak) + eps;
+ arm(8, 9, h, beak_darkness, 1.5beak_jut); % lower arm and beak
+ if serifs: nodish_serif(1, 2, a, 1/3, cap_jut, b, 1/3, .5cap_jut); % upper serif
+ nodish_serif(2, 1, c, 1/3, cap_jut, d, 1/3, .5cap_jut);
+ fi % lower serif
+ math_fit(0, .5ic#);
+ if serifs:
+ set_letter_join(e, .5[x.a1, max(x4r, x9r)], .5w#);
+% set_letter_join(e, x.f2, .5w#);
+% set_letter_join(e.grave_, x.e2, .5w#);
+ else:
+ set_letter_join(e, .5[x3, x4], .5w#);
+ fi
+ penlabels(0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
+end_letter;
+
+input vnecomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuir.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuir.mf
new file mode 100644
index 00000000000..443f3d87d12
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuir.mf
@@ -0,0 +1,32 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman upper case "I" precomposed glyphs:
+% Inclusion:
+% I' I` I? I~ I.
+
+begin_letter(i);
+ set_letter_dimens(i)(
+ max(6u#, 4u# + cap_stem#), cap_height#, 0,
+ cap_height#*slant - .25u#,
+ cap_serif_fit#, cap_serif_fit#
+ );
+ pickup tiny.nib;
+ pos1(cap_stem, 0);
+ pos2(cap_stem, 0);
+ lft x1l = lft x2l = hround(.5w - .5cap_stem);
+ top y1 = h;
+ bot y2 = 0;
+ filldraw stroke z1e -- z2e; % stem
+ if serifs: dish_serif(1, 2, a, 1/3, 1.05cap_jut, b, 1/3, 1.05cap_jut); % upper serif
+ dish_serif(2, 1, c, 1/3, 1.05cap_jut, d, 1/3, 1.05cap_jut);
+ fi % lower serif
+ math_fit(0, .5ic#);
+ set_letter_join(i, x1, .5w#);
+ penlabels(1, 2);
+end_letter;
+
+input vnicomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuor.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuor.mf
new file mode 100644
index 00000000000..be36887ae3d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuor.mf
@@ -0,0 +1,44 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman upper case "O" precomposed glyphs:
+% Inclusion:
+% O' O` O? O~ O.
+% O+ O+' O+` O+? O+~ O+.
+
+begin_letter(o);
+ set_letter_dimens(o)(
+ 14u# - width_adj#, cap_height#, 0,
+ .7cap_height#*slant - .5u#,
+ 0, 0
+ );
+ penpos1(vair', 90);
+ penpos3(vround(vair + 1.5vair_corr), -90);
+ penpos2(cap_curve, 180);
+ penpos4(cap_curve, 0);
+ if monospace: x2r = hround 1.5u;
+ interim superness := sqrt superness; % make |"O"|, not |"0"|
+ else: x2r = hround u;
+ fi
+ x4r = w-x2r;
+ x1 = x3 = .5w;
+ y1r = h+o;
+ y3r=-o;
+ y2 = y4 = .5h - vair_corr;
+ y2l := y4l := .52h;
+ penstroke pulled_super_arc.e(1, 2)(.5superpull)
+ & pulled_super_arc.e(2, 3)(.5superpull)
+ & pulled_super_arc.e(3, 4)(.5superpull)
+ & pulled_super_arc.e(4, 1)(.5superpull) & cycle; % bowl
+ math_fit( - .3cap_height#*slant - .5u#, ic# - .5u#);
+ penlabels(1, 2, 3, 4);
+ set_letter_join(o, x1, .5w#);
+ set_letter_join(o.horn_, x1 + .1dot_size, .5w# + .1dot_size#);
+ set_horn_join(o, pulled_super_arc.l(4, 1)(.5superpull),
+ pulled_super_arc.r(4, 1)(.5superpull));
+end_letter;
+
+input vnocomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuur.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuur.mf
new file mode 100644
index 00000000000..072afda9898
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuur.mf
@@ -0,0 +1,94 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman upper case "U" precomposed glyphs:
+% Inclusion:
+% U' U` U? U~ U.
+% U+ U+' U+` U+? U+~ U+.
+
+begin_letter(u);
+ set_letter_dimens(u)(
+ 13u# + .5width_adj#, cap_height#, 0,
+ cap_height#*slant - cap_serif_fit# + cap_jut# - 2.5u# + min(.5cap_stem#, u#),
+ if monospace:
+ cap_serif_fit# - .5u#, cap_serif_fit# - .5u#
+ else:
+ cap_serif_fit#, cap_serif_fit#
+ fi
+ );
+ pickup tiny.nib;
+ pos1(cap_stem, 0);
+ pos2(cap_stem, 0);
+ pos2'(cap_stem, 180);
+ z2' = z2;
+ pos3(cap_band, -90);
+ pos4(cap_hair, 0);
+ pos5(cap_hair, 0);
+ x1 = x2;
+ x3 = .5[x1, x5];
+ x4 = x5;
+ x1l = w-x5r;
+ top y1 = top y5 = h;
+ y2 = y4 = 1/3h;
+ bot y3r=-o;
+ lft x1l = hround max(2u, 3u - .5cap_stem);
+ filldraw stroke z1e -- z2e; % left stem
+ filldraw stroke pulled_arc.e(2', 3)
+ & pulled_arc.e(3, 4)&z4e -- z5e; % arc and right stem
+ if serifs: dish_serif(1, 2, a, 1/3, cap_jut, b, 1/3, cap_jut); % left serif
+ dish_serif(5, 4, c, 1/2, cap_jut, d, 1/2, cap_jut)(dark);
+ fi % right serif
+ math_fit( - cap_serif_fit# - .3cap_height#*slant - min(cap_height#*slant, u#),
+ max(.5ic# - .5u#, 0));
+ set_letter_join(u, x3, .5w#);
+ set_letter_join(u.dot_, x3 + .5u, .5w# + .5u#);
+ set_horn_join(u, z4 -- z5, z4 -- z5);
+ penlabels(1, 2, 3, 4, 5);
+end_letter;
+
+% for accented capital u with horn we need another letter "U" without right
+% part of the right serif, however all calculations are done via dimensions of
+% the above letter to make the macros simply
+
+begin_letter(Uhorn);
+ set_letter_dimens(Uhorn)(
+ 13u# + .5width_adj#, cap_height#, 0,
+ cap_height#*slant - cap_serif_fit# + cap_jut# - 2.5u# + min(.5cap_stem#, u#),
+ if monospace:
+ cap_serif_fit# - .5u#, cap_serif_fit# - .5u#
+ else:
+ cap_serif_fit#, cap_serif_fit#
+ fi
+ );
+ pickup tiny.nib;
+ pos1(cap_stem, 0);
+ pos2(cap_stem, 0);
+ pos2'(cap_stem, 180);
+ z2' = z2;
+ pos3(cap_band, -90);
+ pos4(cap_hair, 0);
+ pos5(cap_hair, 0);
+ x1 = x2;
+ x3 = .5[x1, x5];
+ x4 = x5;
+ x1l = w - x5r;
+ top y1 = top y5 = h;
+ y2 = y4 = 1/3h;
+ bot y3r = -o;
+ lft x1l = hround max(2u, 3u - .5cap_stem);
+ filldraw stroke z1e -- z2e; % left stem
+ filldraw stroke pulled_arc.e(2', 3)
+ & pulled_arc.e(3, 4)&z4e -- z5e; % arc and right stem
+ if serifs: dish_serif(1, 2, a, 1/3, cap_jut, b, 1/3, cap_jut); % left serif
+ dish_serif(5, 4, c, 1/2, cap_jut, d, 1/2, 0)(dark);
+ fi % right serif
+ math_fit( - cap_serif_fit# - .3cap_height#*slant - min(cap_height#*slant, u#),
+ max(.5ic# - .5u#, 0));
+ set_letter_join(u.horn_, x3 + .2dot_size, .5w# + .2dot_size#);
+ penlabels(1, 2, 3, 4, 5);
+end_letter;
+
+input vnucomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnuyr.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnuyr.mf
new file mode 100644
index 00000000000..9e95ab33773
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnuyr.mf
@@ -0,0 +1,63 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% Computer Modern Roman upper case "Y" precomposed glyphs:
+% Inclusion:
+% Y' Y` Y? Y~ Y.
+
+begin_letter(y);
+ set_letter_dimens(y)(
+ 13u#, cap_height#, 0,
+ cap_height#*slant + .45u#,
+ cap_serif_fit#, cap_serif_fit#
+ );
+ numeric left_stem, right_stem, outer_jut, dy, alpha;
+ left_stem = cap_stem - stem_corr;
+ right_stem = min(cap_hair if hefty: -2stem_corr fi, left_stem);
+ outer_jut = .75cap_jut;
+ x1l = w - x4r = l + letter_fit + outer_jut + .05u;
+ x2l = x5l = hround(.5w - .5left_stem);
+ x3r = x5r;
+ y1 = y4 = h;
+ y2 = y3 = y5 = .4h;
+ dy = y1 - y2;
+ alpha = ((x2l - x1l) ++ dy)/dy;
+ penpos1(alpha*left_stem, 0);
+ penpos2(alpha*left_stem, 0);
+ penpos3(alpha*right_stem, 0);
+ penpos4(alpha*right_stem, 0);
+ penpos5(left_stem, 0);
+ penpos6(left_stem, 0);
+ x5 = x6;
+ y6 = 0;
+ z0 = whatever[z1r, z2r] = whatever[z3l, z4l];
+ if y0 > y2 + cap_notch_cut: y0 := y2 + cap_notch_cut;
+ fill z0 + .5right{up} ... {z4 - z3}diag_end(3l, 4l, 1, 1, 4r, 3r) -- z5r
+ -- diag_end(5r, 6r, 1, 1, 6l, 5l) -- z5l -- diag_end(2l, 1l, 1, 1, 1r, 2r){z2 - z1}
+ ... {down}z0 + .5left -- cycle; % diagonals and stem
+ else: fill z0 -- diag_end(0, 4l, 1, 1, 4r, 3r) -- z5r
+ -- diag_end(5r, 6r, 1, 1, 6l, 5l) -- z5l
+ -- diag_end(2l, 1l, 1, 1, 1r, 0) -- cycle;
+ fi % diagonals and stem
+ if serifs: numeric inner_jut;
+ pickup tiny.nib;
+ prime_points_inside(1, 2);
+ prime_points_inside(4, 3);
+ prime_points_inside(6, 5);
+ if rt x1'r + cap_jut + .5u + 1<=lft x4'l - cap_jut: inner_jut = cap_jut;
+ else: rt x1'r + inner_jut + .5u + 1=lft x4'l - inner_jut;
+ fi
+ dish_serif(1', 2, a, 1/3, outer_jut, b, 1/2, inner_jut); % upper left serif
+ dish_serif(4', 3, c, .6, inner_jut, d, 1/2, outer_jut)(dark); % upper right serif
+ dish_serif(6', 5, e, 1/3, cap_jut, f, 1/3, cap_jut);
+ fi % lower serif
+ math_fit(.5u# - cap_height#*slant, ic# - 4u#);
+ set_letter_join(y, x6 if serifs: + .3max(0, left_stem - right_stem) fi,
+ .5w#);
+ penlabels(0, 1, 2, 3, 4, 5, 6);
+end_letter;
+
+input vnycomp;
+
+endinput;
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnvtt10.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnvtt10.mf
new file mode 100644
index 00000000000..3b70f64df25
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnvtt10.mf
@@ -0,0 +1,8 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+gensize:=10;
+input vnbase;
+input ecvt;
+bye.
diff --git a/Master/texmf-dist/fonts/source/vntex/vnr/vnycomp.mf b/Master/texmf-dist/fonts/source/vntex/vnr/vnycomp.mf
new file mode 100644
index 00000000000..98ca2558fc2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/vntex/vnr/vnycomp.mf
@@ -0,0 +1,22 @@
+% Copyright 2003-2005 Han The Thanh <hanthethanh@gmx.net>.
+% This file is part of vntex. License: LPPL, version 1.3 or newer,
+% according to http://www.latex-project.org/lppl.txt
+
+% define [yY]-based accented letters
+
+vnchar casename "y with acute";
+define_vnchar(y, acute_);
+
+vnchar casename "y with grave";
+define_vnchar(y, grave_);
+
+vnchar casename "y with hook";
+define_vnchar(y, hook_);
+
+vnchar casename "y with tilde";
+define_vnchar(y, tilde_);
+
+vnchar casename "y with dot";
+define_vnchar_dot(y);
+
+endinput;